From 8606048ab4eee1b240e43c6359379f4cc9972429 Mon Sep 17 00:00:00 2001 From: Cheng Yangyang Date: Thu, 11 Jul 2024 10:39:56 +0800 Subject: [PATCH] [chromium114] Add swiftshader support. --- chromium114/README.md | 4 +- ...gArch-Add-swiftshader-loongarch-supp.patch | 431664 +++++++++++++++ 2 files changed, 431667 insertions(+), 1 deletion(-) create mode 100644 chromium114/old-world/0001-Swiftshader-LoongArch-Add-swiftshader-loongarch-supp.patch diff --git a/chromium114/README.md b/chromium114/README.md index e8389b2..765b0fd 100644 --- a/chromium114/README.md +++ b/chromium114/README.md @@ -17,6 +17,7 @@ * `cross-toolchain (llvm_install_15.0.7.tar.bz2): ` 点击[下载](http://ftp.loongnix.cn/browser/build/toolchain/llvm_install_15.0.7.tar.bz2) * `适配patch (0001-CH114-old-world-Add-llvm-cross-build-support-for-loo.patch): ` 点击[下载](./old-world/0001-CH114-old-world-Add-llvm-cross-build-support-for-loo.patch) * `适配patch (0001-Add-chromium-114-loongarch64-all-in-one-patch-v1.2.patch): ` 点击[下载](./0001-Add-chromium-114-loongarch64-all-in-one-patch-v1.2.patch) `包含指令集加速` +* `适配patch (0001-Swiftshader-LoongArch-Add-swiftshader-loongarch-supp.patch): ` 点击[下载](./old-world/0001-Swiftshader-LoongArch-Add-swiftshader-loongarch-supp.patch) `swiftshader支持` 然后基于已获取chromium源码的`src`目录进行如下操作: @@ -45,7 +46,8 @@ $ patch -Np1 -i 0001-CH114-old-world-Add-llvm-cross-build-support-for-loo.patch **注意:** > 1, old-world目录直接提供[build/cross-build.sh](./old-world/build/cross-build.sh)脚本,由于适配patch中的该文件是diff文件。 2, 基于同一套代码,如果您有同时构建兼容新、旧世界的需求,请打入`0001-Add-chromium-114-loongarch64-all-in-one-patch-v1.2.patch`,默认走的是旧世界分支; 设置`loongarch_is_legacy = false`,能够启用新世界分支。除此之外,还加入指令集加速的优化,以使您的chromium在loongarch平台运行的更流畅。 - 3, 如果版本差异导致此处patch打入失败,需要额外修补。有问题可以与我们联系(browser@loongson.cn)。 + 3, 如果您的项目需要支持swiftshader功能,请打入`0001-Swiftshader-LoongArch-Add-swiftshader-loongarch-supp.patch`,可能会有冲突。 + 4, 如果版本差异导致此处patch打入失败,需要额外修补。有问题可以与我们联系(browser@loongson.cn)。 完成上述操作后,我们还需要编译构建自动生成ffmpeg的配置文件,具体操作如下: diff --git a/chromium114/old-world/0001-Swiftshader-LoongArch-Add-swiftshader-loongarch-supp.patch b/chromium114/old-world/0001-Swiftshader-LoongArch-Add-swiftshader-loongarch-supp.patch new file mode 100644 index 0000000..bb98fab --- /dev/null +++ b/chromium114/old-world/0001-Swiftshader-LoongArch-Add-swiftshader-loongarch-supp.patch @@ -0,0 +1,431664 @@ +From 0c956c6bba73233c718a61e32ecf5cc8abc62c42 Mon Sep 17 00:00:00 2001 +From: Wang Qing +Date: Thu, 7 Sep 2023 20:53:20 +0800 +Subject: [PATCH] [Swiftshader][LoongArch] Add swiftshader loongarch support + with llvm-10.0. + +Issue: http://10.140.3.201:3000/issues/5860 +Change-Id: I5917ecde9c6286a9a6504f433a7fa4feef342ce3 +--- + build/cross-build.sh | 5 +- + cc/BUILD.gn | 3 +- + components/viz/service/BUILD.gn | 3 +- + .../viz/test/test_gpu_service_holder.cc | 4 +- + .../gpu_data_manager_impl_private_unittest.cc | 6 +- + gpu/BUILD.gn | 7 +- + gpu/command_buffer/tests/webgpu_test.cc | 4 + + .../src/Reactor/ExecutableMemory.cpp | 2 + + .../swiftshader/src/Reactor/LLVMJIT.cpp | 2 +- + .../src/Reactor/SubzeroReactor.cpp | 2 +- + .../swiftshader/src/System/Linux/MemFd.cpp | 2 + + .../third_party/llvm-10.0/BUILD.gn | 35 +- + .../LoongArch/AsmParser/cmake_install.cmake | 43 + + .../Disassembler/cmake_install.cmake | 43 + + .../LoongArch/LoongArchGenAsmMatcher.inc | 7825 + + .../LoongArch/LoongArchGenAsmMatcher.inc.d | 1 + + .../LoongArch/LoongArchGenAsmWriter.inc | 6541 + + .../LoongArch/LoongArchGenAsmWriter.inc.d | 1 + + .../LoongArch/LoongArchGenCallingConv.inc | 667 + + .../LoongArch/LoongArchGenCallingConv.inc.d | 1 + + .../Target/LoongArch/LoongArchGenDAGISel.inc | 333924 +++++++++++++++ + .../LoongArch/LoongArchGenDAGISel.inc.d | 1 + + .../LoongArchGenDisassemblerTables.inc | 6730 + + .../LoongArchGenDisassemblerTables.inc.d | 1 + + .../LoongArch/LoongArchGenInstrInfo.inc | 12264 + + .../LoongArch/LoongArchGenInstrInfo.inc.d | 1 + + .../LoongArch/LoongArchGenMCCodeEmitter.inc | 8988 + + .../LoongArch/LoongArchGenMCCodeEmitter.inc.d | 1 + + .../LoongArchGenMCPseudoLowering.inc | 881 + + .../LoongArchGenMCPseudoLowering.inc.d | 1 + + .../LoongArch/LoongArchGenRegisterInfo.inc | 3177 + + .../LoongArch/LoongArchGenRegisterInfo.inc.d | 1 + + .../LoongArch/LoongArchGenSubtargetInfo.inc | 217 + + .../LoongArch/LoongArchGenSubtargetInfo.inc.d | 1 + + .../MCTargetDesc/cmake_install.cmake | 43 + + .../LoongArch/TargetInfo/cmake_install.cmake | 43 + + .../lib/Target/LoongArch/cmake_install.cmake | 52 + + .../linux/include/llvm/Config/AsmParsers.def | 3 + + .../linux/include/llvm/Config/AsmPrinters.def | 3 + + .../include/llvm/Config/Disassemblers.def | 3 + + .../linux/include/llvm/Config/Targets.def | 3 + + .../linux/include/llvm/Config/config.h | 2 + + .../linux/include/llvm/Config/llvm-config.h | 18 + + .../llvm-10.0/llvm/include/llvm/ADT/Triple.h | 17 + + .../llvm/include/llvm/BinaryFormat/ELF.h | 17 + + .../llvm/BinaryFormat/ELFRelocs/LoongArch.def | 64 + + .../include/llvm/Demangle/ItaniumDemangle.h | 2 +- + .../llvm/ExecutionEngine/Orc/OrcABISupport.h | 27 + + .../llvm/include/llvm/IR/CMakeLists.txt | 1 + + .../llvm/include/llvm/IR/InlineAsm.h | 5 +- + .../llvm/include/llvm/IR/Intrinsics.td | 1 + + .../include/llvm/IR/IntrinsicsLoongArch.h | 1495 + + .../include/llvm/IR/IntrinsicsLoongArch.td | 3618 + + .../llvm/include/llvm/MC/MCContext.h | 2 +- + .../llvm/include/llvm/Object/ELFObjectFile.h | 13 + + .../llvm/include/llvm/Support/Signals.h | 1 + + .../llvm/include/llvm/module.modulemap | 1 + + .../llvm/lib/CodeGen/LLVMTargetMachine.cpp | 3 - + .../lib/CodeGen/SelectionDAG/InstrEmitter.cpp | 3 + + .../CodeGen/TargetLoweringObjectFileImpl.cpp | 10 + + .../llvm/lib/CodeGen/XRayInstrumentation.cpp | 2 + + .../ExecutionEngine/Orc/IndirectionUtils.cpp | 5 + + .../lib/ExecutionEngine/Orc/LazyReexports.cpp | 4 + + .../lib/ExecutionEngine/Orc/OrcABISupport.cpp | 233 + + .../RuntimeDyld/RuntimeDyldELF.cpp | 242 + + .../RuntimeDyld/RuntimeDyldELF.h | 10 + + .../llvm-10.0/llvm/lib/IR/Function.cpp | 1 + + .../llvm-10.0/llvm/lib/MC/MCAsmStreamer.cpp | 2 + + .../llvm/lib/MC/MCObjectFileInfo.cpp | 6 + + .../llvm-10.0/llvm/lib/Object/ELF.cpp | 7 + + .../llvm/lib/Object/RelocationResolver.cpp | 26 + + .../llvm-10.0/llvm/lib/ObjectYAML/ELFYAML.cpp | 9 + + .../llvm-10.0/llvm/lib/Support/Host.cpp | 69 + + .../llvm-10.0/llvm/lib/Support/Triple.cpp | 21 + + .../llvm-10.0/llvm/lib/Target/LLVMBuild.txt | 1 + + .../Target/LoongArch/AsmParser/CMakeLists.txt | 3 + + .../Target/LoongArch/AsmParser/LLVMBuild.txt | 22 + + .../AsmParser/LoongArchAsmParser.cpp | 2273 + + .../llvm/lib/Target/LoongArch/CMakeLists.txt | 37 + + .../LoongArch/Disassembler/CMakeLists.txt | 3 + + .../LoongArch/Disassembler/LLVMBuild.txt | 22 + + .../Disassembler/LoongArchDisassembler.cpp | 940 + + .../llvm/lib/Target/LoongArch/LLVMBuild.txt | 43 + + .../llvm/lib/Target/LoongArch/LoongArch.h | 37 + + .../llvm/lib/Target/LoongArch/LoongArch.td | 103 + + .../Target/LoongArch/LoongArch32InstrInfo.td | 716 + + .../Target/LoongArch/LoongArchAsmPrinter.cpp | 638 + + .../Target/LoongArch/LoongArchAsmPrinter.h | 138 + + .../lib/Target/LoongArch/LoongArchCCState.cpp | 165 + + .../lib/Target/LoongArch/LoongArchCCState.h | 165 + + .../Target/LoongArch/LoongArchCallingConv.td | 310 + + .../LoongArch/LoongArchExpandPseudo.cpp | 2471 + + .../LoongArch/LoongArchFrameLowering.cpp | 563 + + .../Target/LoongArch/LoongArchFrameLowering.h | 71 + + .../LoongArch/LoongArchISelDAGToDAG.cpp | 878 + + .../Target/LoongArch/LoongArchISelDAGToDAG.h | 151 + + .../LoongArch/LoongArchISelLowering.cpp | 8213 + + .../Target/LoongArch/LoongArchISelLowering.h | 568 + + .../Target/LoongArch/LoongArchInstrFormats.td | 790 + + .../Target/LoongArch/LoongArchInstrInfo.cpp | 1041 + + .../lib/Target/LoongArch/LoongArchInstrInfo.h | 245 + + .../Target/LoongArch/LoongArchInstrInfo.td | 1888 + + .../Target/LoongArch/LoongArchInstrInfoF.td | 630 + + .../LoongArch/LoongArchLASXInstrFormats.td | 448 + + .../LoongArch/LoongArchLASXInstrInfo.td | 5644 + + .../LoongArch/LoongArchLSXInstrFormats.td | 449 + + .../Target/LoongArch/LoongArchLSXInstrInfo.td | 5904 + + .../Target/LoongArch/LoongArchMCInstLower.cpp | 342 + + .../Target/LoongArch/LoongArchMCInstLower.h | 55 + + .../LoongArch/LoongArchMachineFunction.cpp | 58 + + .../LoongArch/LoongArchMachineFunction.h | 103 + + .../LoongArch/LoongArchModuleISelDAGToDAG.cpp | 53 + + .../LoongArch/LoongArchRegisterInfo.cpp | 357 + + .../Target/LoongArch/LoongArchRegisterInfo.h | 80 + + .../Target/LoongArch/LoongArchRegisterInfo.td | 373 + + .../Target/LoongArch/LoongArchSubtarget.cpp | 105 + + .../lib/Target/LoongArch/LoongArchSubtarget.h | 143 + + .../LoongArch/LoongArchTargetMachine.cpp | 195 + + .../Target/LoongArch/LoongArchTargetMachine.h | 60 + + .../LoongArch/LoongArchTargetObjectFile.cpp | 26 + + .../LoongArch/LoongArchTargetObjectFile.h | 24 + + .../LoongArch/LoongArchTargetStreamer.h | 130 + + .../LoongArchTargetTransformInfo.cpp | 328 + + .../LoongArch/LoongArchTargetTransformInfo.h | 89 + + .../LoongArch/MCTargetDesc/CMakeLists.txt | 13 + + .../LoongArch/MCTargetDesc/LLVMBuild.txt | 22 + + .../MCTargetDesc/LoongArchABIInfo.cpp | 106 + + .../LoongArch/MCTargetDesc/LoongArchABIInfo.h | 76 + + .../LoongArchAnalyzeImmediate.cpp | 64 + + .../MCTargetDesc/LoongArchAnalyzeImmediate.h | 29 + + .../MCTargetDesc/LoongArchAsmBackend.cpp | 213 + + .../MCTargetDesc/LoongArchAsmBackend.h | 99 + + .../MCTargetDesc/LoongArchBaseInfo.h | 128 + + .../MCTargetDesc/LoongArchELFObjectWriter.cpp | 186 + + .../MCTargetDesc/LoongArchELFStreamer.cpp | 131 + + .../MCTargetDesc/LoongArchELFStreamer.h | 53 + + .../MCTargetDesc/LoongArchFixupKinds.h | 90 + + .../MCTargetDesc/LoongArchInstPrinter.cpp | 252 + + .../MCTargetDesc/LoongArchInstPrinter.h | 118 + + .../MCTargetDesc/LoongArchMCAsmInfo.cpp | 38 + + .../MCTargetDesc/LoongArchMCAsmInfo.h | 31 + + .../MCTargetDesc/LoongArchMCCodeEmitter.cpp | 1433 + + .../MCTargetDesc/LoongArchMCCodeEmitter.h | 146 + + .../MCTargetDesc/LoongArchMCExpr.cpp | 158 + + .../LoongArch/MCTargetDesc/LoongArchMCExpr.h | 97 + + .../MCTargetDesc/LoongArchMCTargetDesc.cpp | 187 + + .../MCTargetDesc/LoongArchMCTargetDesc.h | 68 + + .../MCTargetDesc/LoongArchTargetStreamer.cpp | 328 + + .../LoongArch/TargetInfo/CMakeLists.txt | 3 + + .../Target/LoongArch/TargetInfo/LLVMBuild.txt | 22 + + .../TargetInfo/LoongArchTargetInfo.cpp | 34 + + .../TargetInfo/LoongArchTargetInfo.h | 21 + + .../Instrumentation/AddressSanitizer.cpp | 5 + + .../Instrumentation/DataFlowSanitizer.cpp | 6 + + .../Instrumentation/MemorySanitizer.cpp | 130 + + .../llvm/lib/XRay/InstrumentationMap.cpp | 3 +- + 156 files changed, 429827 insertions(+), 26 deletions(-) + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/AsmParser/cmake_install.cmake + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/Disassembler/cmake_install.cmake + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenAsmMatcher.inc + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenAsmMatcher.inc.d + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenAsmWriter.inc + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenAsmWriter.inc.d + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenCallingConv.inc + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenCallingConv.inc.d + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenDAGISel.inc + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenDAGISel.inc.d + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenDisassemblerTables.inc + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenDisassemblerTables.inc.d + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenInstrInfo.inc + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenInstrInfo.inc.d + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenMCCodeEmitter.inc + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenMCCodeEmitter.inc.d + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenMCPseudoLowering.inc + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenMCPseudoLowering.inc.d + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenRegisterInfo.inc + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenRegisterInfo.inc.d + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenSubtargetInfo.inc + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenSubtargetInfo.inc.d + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/MCTargetDesc/cmake_install.cmake + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/TargetInfo/cmake_install.cmake + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/cmake_install.cmake + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/BinaryFormat/ELFRelocs/LoongArch.def + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/IR/IntrinsicsLoongArch.h + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/IR/IntrinsicsLoongArch.td + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/AsmParser/CMakeLists.txt + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/AsmParser/LLVMBuild.txt + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/AsmParser/LoongArchAsmParser.cpp + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/CMakeLists.txt + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/Disassembler/CMakeLists.txt + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/Disassembler/LLVMBuild.txt + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/Disassembler/LoongArchDisassembler.cpp + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LLVMBuild.txt + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArch.h + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArch.td + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArch32InstrInfo.td + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchAsmPrinter.cpp + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchAsmPrinter.h + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchCCState.cpp + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchCCState.h + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchCallingConv.td + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchExpandPseudo.cpp + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchFrameLowering.cpp + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchFrameLowering.h + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchISelDAGToDAG.cpp + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchISelDAGToDAG.h + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchISelLowering.h + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchInstrFormats.td + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchInstrInfo.cpp + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchInstrInfo.h + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchInstrInfo.td + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchInstrInfoF.td + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchLASXInstrFormats.td + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchLASXInstrInfo.td + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchLSXInstrFormats.td + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchLSXInstrInfo.td + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchMCInstLower.cpp + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchMCInstLower.h + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchMachineFunction.cpp + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchMachineFunction.h + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchModuleISelDAGToDAG.cpp + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchRegisterInfo.cpp + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchRegisterInfo.h + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchRegisterInfo.td + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchSubtarget.cpp + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchSubtarget.h + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchTargetMachine.cpp + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchTargetMachine.h + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchTargetObjectFile.cpp + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchTargetObjectFile.h + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchTargetStreamer.h + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchTargetTransformInfo.cpp + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchTargetTransformInfo.h + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/CMakeLists.txt + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LLVMBuild.txt + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchABIInfo.cpp + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchABIInfo.h + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAnalyzeImmediate.cpp + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAnalyzeImmediate.h + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.h + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchBaseInfo.h + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchELFObjectWriter.cpp + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchELFStreamer.cpp + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchELFStreamer.h + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchFixupKinds.h + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchInstPrinter.cpp + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchInstPrinter.h + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCAsmInfo.cpp + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCAsmInfo.h + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCCodeEmitter.cpp + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCCodeEmitter.h + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCExpr.cpp + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCExpr.h + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCTargetDesc.cpp + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCTargetDesc.h + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchTargetStreamer.cpp + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/TargetInfo/CMakeLists.txt + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/TargetInfo/LLVMBuild.txt + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/TargetInfo/LoongArchTargetInfo.cpp + create mode 100644 third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/TargetInfo/LoongArchTargetInfo.h + +diff --git a/build/cross-build.sh b/build/cross-build.sh +index 46842d56c85..0fb26dea75c 100755 +--- a/build/cross-build.sh ++++ b/build/cross-build.sh +@@ -98,12 +98,9 @@ export GN_CONFIG=( + 'google_api_key="AIzaSyDxKL42zsPjbke5O8_rPVpVrLrJ8aeE9rQ"' + 'google_default_client_id="595013732528-llk8trb03f0ldpqq6nprjp1s79596646.apps.googleusercontent.com"' + 'google_default_client_secret="5ntt6GbbkjnTVXx-MSxbmx5e"' +-'enable_swiftshader=false' +-'angle_enable_swiftshader=false' +-'enable_swiftshader_vulkan=false' ++'enable_swiftshader=true' + 'enable_uos=false' + 'enable_zyj=false' +-'dawn_use_swiftshader=false' + 'enable_widevine=false' + 'fatal_linker_warnings=false' + 'disable_fieldtrial_testing_config=true' +diff --git a/cc/BUILD.gn b/cc/BUILD.gn +index cd3983d9363..0661ead007d 100644 +--- a/cc/BUILD.gn ++++ b/cc/BUILD.gn +@@ -863,7 +863,8 @@ cc_test("cc_unittests") { + "test/run_all_unittests.cc", + ] + +- if (enable_swiftshader) { ++ # 3c5000 no graphics card device. ++ if (enable_swiftshader && current_cpu != "loong64") { + sources += [ + "trees/layer_tree_host_pixeltest_blending.cc", + "trees/layer_tree_host_pixeltest_filters.cc", +diff --git a/components/viz/service/BUILD.gn b/components/viz/service/BUILD.gn +index 74ba2df97d2..39a8c96cc7c 100644 +--- a/components/viz/service/BUILD.gn ++++ b/components/viz/service/BUILD.gn +@@ -520,7 +520,8 @@ viz_source_set("unit_tests") { + "transitions/transferable_resource_tracker_unittest.cc", + ] + +- if (!enable_swiftshader) { ++ # 3c5000 no graphics card device. ++ if (!enable_swiftshader || current_cpu == "loong64") { + sources -= [ + "display/copy_output_scaling_pixeltest.cc", + "display/renderer_pixeltest.cc", +diff --git a/components/viz/test/test_gpu_service_holder.cc b/components/viz/test/test_gpu_service_holder.cc +index be92a03c8f3..75283bcda09 100644 +--- a/components/viz/test/test_gpu_service_holder.cc ++++ b/components/viz/test/test_gpu_service_holder.cc +@@ -264,7 +264,7 @@ void TestGpuServiceHolder::InitializeOnGpuThread( + #endif + + if (gpu_preferences.use_vulkan != gpu::VulkanImplementationName::kNone) { +-#if BUILDFLAG(ENABLE_VULKAN) ++#if BUILDFLAG(ENABLE_VULKAN) && !defined(ARCH_CPU_LOONG64) + bool use_swiftshader = gpu_preferences.use_vulkan == + gpu::VulkanImplementationName::kSwiftshader; + vulkan_implementation_ = gpu::CreateVulkanImplementation(use_swiftshader); +@@ -311,7 +311,7 @@ void TestGpuServiceHolder::InitializeOnGpuThread( + /*gpu_info_for_hardware_gpu=*/gpu::GPUInfo(), + /*gpu_feature_info_for_hardware_gpu=*/gpu::GpuFeatureInfo(), + /*gpu_extra_info=*/gfx::GpuExtraInfo(), +-#if BUILDFLAG(ENABLE_VULKAN) ++#if BUILDFLAG(ENABLE_VULKAN) && !defined(ARCH_CPU_LOONG64) + vulkan_implementation_.get(), + #else + /*vulkan_implementation=*/nullptr, +diff --git a/content/browser/gpu/gpu_data_manager_impl_private_unittest.cc b/content/browser/gpu/gpu_data_manager_impl_private_unittest.cc +index b3d2c19eda0..f2a2791ddb3 100644 +--- a/content/browser/gpu/gpu_data_manager_impl_private_unittest.cc ++++ b/content/browser/gpu/gpu_data_manager_impl_private_unittest.cc +@@ -461,7 +461,7 @@ INSTANTIATE_TEST_SUITE_P(GpuDataManagerImplPrivateTest, + // Android and Chrome OS do not support software compositing, while Fuchsia does + // not support falling back to software from Vulkan. + #if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CHROMEOS_ASH) && !BUILDFLAG(IS_IOS) +-#if !BUILDFLAG(IS_FUCHSIA) && !defined(ARCH_CPU_LOONG64) ++#if !BUILDFLAG(IS_FUCHSIA) + TEST_F(GpuDataManagerImplPrivateTest, FallbackToSwiftShader) { + ScopedGpuDataManagerImplPrivate manager; + EXPECT_EQ(gpu::GpuMode::HARDWARE_GL, manager->GetGpuMode()); +@@ -482,7 +482,7 @@ TEST_F(GpuDataManagerImplPrivateTest, FallbackWithSwiftShaderDisabled) { + } + #endif // !BUILDFLAG(IS_FUCHSIA) + +-#if !defined(CAST_AUDIO_ONLY) && !defined(ARCH_CPU_LOONG64) ++#if !defined(CAST_AUDIO_ONLY) + TEST_F(GpuDataManagerImplPrivateTest, GpuStartsWithGpuDisabled) { + base::CommandLine::ForCurrentProcess()->AppendSwitch(switches::kDisableGpu); + ScopedGpuDataManagerImplPrivate manager; +@@ -531,7 +531,6 @@ TEST_F(GpuDataManagerImplPrivateTest, FallbackFromVulkanToGL) { + EXPECT_EQ(gpu::GpuMode::HARDWARE_GL, manager->GetGpuMode()); + } + +-#if !defined(ARCH_CPU_LOONG64) + TEST_F(GpuDataManagerImplPrivateTest, VulkanInitializationFails) { + base::test::ScopedFeatureList feature_list; + feature_list.InitAndEnableFeature(features::kVulkan); +@@ -572,7 +571,6 @@ TEST_F(GpuDataManagerImplPrivateTest, FallbackFromVulkanWithGLDisabled) { + } + #endif // !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CHROMEOS_ASH) && + // !BUILDFLAG(IS_IOS) +-#endif // !defined(ARCH_CPU_LOONG64) + #endif // !BUILDFLAG(IS_FUCHSIA) + #endif // !IS_CHROMEOS_LACROS + #endif // BUILDFLAG(ENABLE_VULKAN) +diff --git a/gpu/BUILD.gn b/gpu/BUILD.gn +index ac130931204..e754f2cb4ce 100644 +--- a/gpu/BUILD.gn ++++ b/gpu/BUILD.gn +@@ -376,10 +376,13 @@ test("gl_tests") { + sources += [ + "command_buffer/service/webgpu_decoder_unittest.cc", + "command_buffer/tests/shared_image_gl_backing_produce_dawn_unittest.cc", +- "command_buffer/tests/webgpu_mailbox_unittest.cc", + "command_buffer/tests/webgpu_test.cc", + "command_buffer/tests/webgpu_test.h", + ] ++ # 3c5000 no graphics card device. ++ if (current_cpu != "loong64") { ++ sources += [ "command_buffer/tests/webgpu_mailbox_unittest.cc" ] ++ } + } + + defines = [ "GL_GLEXT_PROTOTYPES" ] +@@ -447,7 +450,7 @@ test("gl_tests") { + } else if (is_linux || is_chromeos) { + # Simply loading the Vulkan driver leaks crbug.com/1134681 + # CFI error in third_party/vulkan_memory_allocator crbug.com/1139916 +- if (enable_vulkan && !is_lsan && !is_cfi && enable_swiftshader) { ++ if (enable_vulkan && !is_lsan && !is_cfi && enable_swiftshader && current_cpu != "loong64") { + sources += [ "command_buffer/service/shared_image/external_vk_image_backing_factory_unittest.cc" ] + } + } +diff --git a/gpu/command_buffer/tests/webgpu_test.cc b/gpu/command_buffer/tests/webgpu_test.cc +index 7f5b0b7785c..a483bbd32da 100644 +--- a/gpu/command_buffer/tests/webgpu_test.cc ++++ b/gpu/command_buffer/tests/webgpu_test.cc +@@ -459,7 +459,11 @@ TEST_F(WebGPUTest, ImplicitFallbackAdapterIsDisallowed) { + wgpu::AdapterProperties properties; + adapter_.GetProperties(&properties); + // If we got an Adapter, it must not be a CPU adapter. ++#if defined(ARCH_CPU_LOONG64) ++ EXPECT_EQ(properties.adapterType, wgpu::AdapterType::CPU); ++#else + EXPECT_NE(properties.adapterType, wgpu::AdapterType::CPU); ++#endif + } + } + +diff --git a/third_party/swiftshader/src/Reactor/ExecutableMemory.cpp b/third_party/swiftshader/src/Reactor/ExecutableMemory.cpp +index d35f3d5f76b..0b2bc5b66a1 100644 +--- a/third_party/swiftshader/src/Reactor/ExecutableMemory.cpp ++++ b/third_party/swiftshader/src/Reactor/ExecutableMemory.cpp +@@ -158,6 +158,8 @@ static int memfd_create(const char *name, unsigned int flags) + # define __NR_memfd_create 356 + # elif __x86_64__ + # define __NR_memfd_create 319 ++# elif __loongarch64 ++# define __NR_memfd_create 279 + # endif /* __NR_memfd_create__ */ + # ifdef __NR_memfd_create + // In the event of no system call this returns -1 with errno set +diff --git a/third_party/swiftshader/src/Reactor/LLVMJIT.cpp b/third_party/swiftshader/src/Reactor/LLVMJIT.cpp +index fad747af06c..330f48d4668 100644 +--- a/third_party/swiftshader/src/Reactor/LLVMJIT.cpp ++++ b/third_party/swiftshader/src/Reactor/LLVMJIT.cpp +@@ -211,7 +211,7 @@ JITGlobals *JITGlobals::get() + bool ok = llvm::sys::getHostCPUFeatures(cpuFeatures); + + #if defined(__i386__) || defined(__x86_64__) || \ +- (defined(__linux__) && (defined(__arm__) || defined(__aarch64__))) ++ (defined(__linux__) && (defined(__arm__) || defined(__aarch64__) || defined(__loongarch64))) + ASSERT_MSG(ok, "llvm::sys::getHostCPUFeatures returned false"); + #else + (void)ok; // getHostCPUFeatures always returns false on other platforms +diff --git a/third_party/swiftshader/src/Reactor/SubzeroReactor.cpp b/third_party/swiftshader/src/Reactor/SubzeroReactor.cpp +index 531f5f25427..db9e725e6d4 100644 +--- a/third_party/swiftshader/src/Reactor/SubzeroReactor.cpp ++++ b/third_party/swiftshader/src/Reactor/SubzeroReactor.cpp +@@ -660,7 +660,7 @@ std::vector loadImage(uint8_t *const elfImage, const std::vectore_machine == EM_MIPS); + #elif defined(__loongarch64) +- ASSERT(sizeof(void *) == 8 && elfHeader->e_machine == EM_LOONGARCH); ++ ASSERT(sizeof(void *) == 4 && elfHeader->e_machine == EM_LOONGARCH); + #else + # error "Unsupported platform" + #endif +diff --git a/third_party/swiftshader/src/System/Linux/MemFd.cpp b/third_party/swiftshader/src/System/Linux/MemFd.cpp +index 1319d112127..b613ca71207 100644 +--- a/third_party/swiftshader/src/System/Linux/MemFd.cpp ++++ b/third_party/swiftshader/src/System/Linux/MemFd.cpp +@@ -27,6 +27,8 @@ + + #if __aarch64__ + # define __NR_memfd_create 279 ++#elif __loongarch64 ++# define __NR_memfd_create 279 + #elif __arm__ + # define __NR_memfd_create 279 + #elif __powerpc64__ +diff --git a/third_party/swiftshader/third_party/llvm-10.0/BUILD.gn b/third_party/swiftshader/third_party/llvm-10.0/BUILD.gn +index 82764b0e1b9..07222fbde6e 100644 +--- a/third_party/swiftshader/third_party/llvm-10.0/BUILD.gn ++++ b/third_party/swiftshader/third_party/llvm-10.0/BUILD.gn +@@ -85,6 +85,7 @@ llvm_include_dirs = [ + "llvm/include/", + "llvm/lib/Target/AArch64/", + "llvm/lib/Target/ARM/", ++ "llvm/lib/Target/LoongArch/", + "llvm/lib/Target/Mips/", + "llvm/lib/Target/PowerPC/", + "llvm/lib/Target/RISCV/", +@@ -93,6 +94,7 @@ llvm_include_dirs = [ + "configs/common/lib/IR/", + "configs/common/lib/Target/AArch64/", + "configs/common/lib/Target/ARM/", ++ "configs/common/lib/Target/LoongArch/", + "configs/common/lib/Target/Mips/", + "configs/common/lib/Target/PowerPC/", + "configs/common/lib/Target/RISCV/", +@@ -1333,8 +1335,37 @@ swiftshader_llvm_source_set("swiftshader_llvm_x86") { + } + + swiftshader_llvm_source_set("swiftshader_llvm_loong64") { +- # TODO: Add support llvm-10 for loongarch. +- sources = [] ++ sources = [ ++ "llvm/lib/Target/LoongArch/AsmParser/LoongArchAsmParser.cpp", ++ "llvm/lib/Target/LoongArch/Disassembler/LoongArchDisassembler.cpp", ++ "llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchABIInfo.cpp", ++ "llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAnalyzeImmediate.cpp", ++ "llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp", ++ "llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchELFObjectWriter.cpp", ++ "llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchELFStreamer.cpp", ++ "llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchInstPrinter.cpp", ++ "llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCAsmInfo.cpp", ++ "llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCCodeEmitter.cpp", ++ "llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCExpr.cpp", ++ "llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCTargetDesc.cpp", ++ "llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchTargetStreamer.cpp", ++ "llvm/lib/Target/LoongArch/LoongArchAsmPrinter.cpp", ++ "llvm/lib/Target/LoongArch/LoongArchCCState.cpp", ++ "llvm/lib/Target/LoongArch/LoongArchExpandPseudo.cpp", ++ "llvm/lib/Target/LoongArch/LoongArchFrameLowering.cpp", ++ "llvm/lib/Target/LoongArch/LoongArchInstrInfo.cpp", ++ "llvm/lib/Target/LoongArch/LoongArchISelDAGToDAG.cpp", ++ "llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp", ++ "llvm/lib/Target/LoongArch/LoongArchMachineFunction.cpp", ++ "llvm/lib/Target/LoongArch/LoongArchMCInstLower.cpp", ++ "llvm/lib/Target/LoongArch/LoongArchModuleISelDAGToDAG.cpp", ++ "llvm/lib/Target/LoongArch/LoongArchRegisterInfo.cpp", ++ "llvm/lib/Target/LoongArch/LoongArchSubtarget.cpp", ++ "llvm/lib/Target/LoongArch/LoongArchTargetMachine.cpp", ++ "llvm/lib/Target/LoongArch/LoongArchTargetTransformInfo.cpp", ++ "llvm/lib/Target/LoongArch/LoongArchTargetObjectFile.cpp", ++ "llvm/lib/Target/LoongArch/TargetInfo/LoongArchTargetInfo.cpp", ++ ] + } + + swiftshader_llvm_source_set("swiftshader_llvm_riscv64") { +diff --git a/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/AsmParser/cmake_install.cmake b/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/AsmParser/cmake_install.cmake +new file mode 100644 +index 00000000000..83e3fe0e5c3 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/AsmParser/cmake_install.cmake +@@ -0,0 +1,43 @@ ++# Install script for directory: /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/AsmParser ++ ++# Set the install prefix ++if(NOT DEFINED CMAKE_INSTALL_PREFIX) ++ set(CMAKE_INSTALL_PREFIX "/usr/local") ++endif() ++string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") ++ ++# Set the install configuration name. ++if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) ++ if(BUILD_TYPE) ++ string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" ++ CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") ++ else() ++ set(CMAKE_INSTALL_CONFIG_NAME "Release") ++ endif() ++ message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") ++endif() ++ ++# Set the component getting installed. ++if(NOT CMAKE_INSTALL_COMPONENT) ++ if(COMPONENT) ++ message(STATUS "Install component: \"${COMPONENT}\"") ++ set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") ++ else() ++ set(CMAKE_INSTALL_COMPONENT) ++ endif() ++endif() ++ ++# Install shared libraries without execute permission? ++if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) ++ set(CMAKE_INSTALL_SO_NO_EXE "1") ++endif() ++ ++# Is this installation the result of a crosscompile? ++if(NOT DEFINED CMAKE_CROSSCOMPILING) ++ set(CMAKE_CROSSCOMPILING "FALSE") ++endif() ++ ++if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xLLVMLoongArchAsmParserx" OR NOT CMAKE_INSTALL_COMPONENT) ++ file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE STATIC_LIBRARY FILES "/mnt/wangqing/work/llvm-project/build/lib/libLLVMLoongArchAsmParser.a") ++endif() ++ +diff --git a/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/Disassembler/cmake_install.cmake b/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/Disassembler/cmake_install.cmake +new file mode 100644 +index 00000000000..90fa49f6d58 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/Disassembler/cmake_install.cmake +@@ -0,0 +1,43 @@ ++# Install script for directory: /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/Disassembler ++ ++# Set the install prefix ++if(NOT DEFINED CMAKE_INSTALL_PREFIX) ++ set(CMAKE_INSTALL_PREFIX "/usr/local") ++endif() ++string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") ++ ++# Set the install configuration name. ++if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) ++ if(BUILD_TYPE) ++ string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" ++ CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") ++ else() ++ set(CMAKE_INSTALL_CONFIG_NAME "Release") ++ endif() ++ message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") ++endif() ++ ++# Set the component getting installed. ++if(NOT CMAKE_INSTALL_COMPONENT) ++ if(COMPONENT) ++ message(STATUS "Install component: \"${COMPONENT}\"") ++ set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") ++ else() ++ set(CMAKE_INSTALL_COMPONENT) ++ endif() ++endif() ++ ++# Install shared libraries without execute permission? ++if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) ++ set(CMAKE_INSTALL_SO_NO_EXE "1") ++endif() ++ ++# Is this installation the result of a crosscompile? ++if(NOT DEFINED CMAKE_CROSSCOMPILING) ++ set(CMAKE_CROSSCOMPILING "FALSE") ++endif() ++ ++if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xLLVMLoongArchDisassemblerx" OR NOT CMAKE_INSTALL_COMPONENT) ++ file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE STATIC_LIBRARY FILES "/mnt/wangqing/work/llvm-project/build/lib/libLLVMLoongArchDisassembler.a") ++endif() ++ +diff --git a/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenAsmMatcher.inc b/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenAsmMatcher.inc +new file mode 100644 +index 00000000000..01e38985cf0 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenAsmMatcher.inc +@@ -0,0 +1,7825 @@ ++/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\ ++|* *| ++|* Assembly Matcher Source Fragment *| ++|* *| ++|* Automatically generated file, do not edit! *| ++|* *| ++\*===----------------------------------------------------------------------===*/ ++ ++ ++#ifdef GET_ASSEMBLER_HEADER ++#undef GET_ASSEMBLER_HEADER ++ // This should be included into the middle of the declaration of ++ // your subclasses implementation of MCTargetAsmParser. ++ FeatureBitset ComputeAvailableFeatures(const FeatureBitset& FB) const; ++ void convertToMCInst(unsigned Kind, MCInst &Inst, unsigned Opcode, ++ const OperandVector &Operands); ++ void convertToMapAndConstraints(unsigned Kind, ++ const OperandVector &Operands) override; ++ unsigned MatchInstructionImpl(const OperandVector &Operands, ++ MCInst &Inst, ++ uint64_t &ErrorInfo, ++ FeatureBitset &MissingFeatures, ++ bool matchingInlineAsm, ++ unsigned VariantID = 0); ++ unsigned MatchInstructionImpl(const OperandVector &Operands, ++ MCInst &Inst, ++ uint64_t &ErrorInfo, ++ bool matchingInlineAsm, ++ unsigned VariantID = 0) { ++ FeatureBitset MissingFeatures; ++ return MatchInstructionImpl(Operands, Inst, ErrorInfo, MissingFeatures, ++ matchingInlineAsm, VariantID); ++ } ++ ++ OperandMatchResultTy MatchOperandParserImpl( ++ OperandVector &Operands, ++ StringRef Mnemonic, ++ bool ParseForAllFeatures = false); ++ OperandMatchResultTy tryCustomParseOperand( ++ OperandVector &Operands, ++ unsigned MCK); ++ ++#endif // GET_ASSEMBLER_HEADER_INFO ++ ++ ++#ifdef GET_OPERAND_DIAGNOSTIC_TYPES ++#undef GET_OPERAND_DIAGNOSTIC_TYPES ++ ++ Match_Immz, ++ Match_InvalidImm0_1, ++ Match_InvalidImm0_127, ++ Match_InvalidImm0_15, ++ Match_InvalidImm0_16383, ++ Match_InvalidImm0_255, ++ Match_InvalidImm0_3, ++ Match_InvalidImm0_31, ++ Match_InvalidImm0_32767, ++ Match_InvalidImm0_4095, ++ Match_InvalidImm0_63, ++ Match_InvalidImm0_7, ++ Match_InvalidSImm12, ++ Match_InvalidSImm14, ++ Match_InvalidSImm15, ++ Match_InvalidSImm16, ++ Match_InvalidSImm2, ++ Match_InvalidSImm20, ++ Match_InvalidSImm21, ++ Match_InvalidSImm26, ++ Match_InvalidSImm3, ++ Match_InvalidSImm5, ++ Match_InvalidSImm8, ++ Match_MemSImm10, ++ Match_MemSImm10Lsl2, ++ Match_MemSImm11, ++ Match_MemSImm11Lsl1, ++ Match_MemSImm12, ++ Match_MemSImm14, ++ Match_MemSImm14Lsl2, ++ Match_MemSImm9, ++ Match_MemSImm9Lsl3, ++ Match_MemSImmPtr, ++ Match_MemZeroOff, ++ Match_SImm10_0, ++ Match_SImm10_Lsl1, ++ Match_SImm10_Lsl2, ++ Match_SImm11_0, ++ Match_SImm11_Lsl1, ++ Match_SImm12_Relaxed, ++ Match_SImm14_Lsl2, ++ Match_SImm16_Relaxed, ++ Match_SImm32, ++ Match_SImm32_Relaxed, ++ Match_SImm4_0, ++ Match_SImm5_0, ++ Match_SImm6_0, ++ Match_SImm7_Lsl2, ++ Match_SImm8_Lsl1, ++ Match_SImm8_Lsl2, ++ Match_SImm8_Lsl3, ++ Match_SImm9_0, ++ Match_SImm9_Lsl3, ++ Match_UImm10_0, ++ Match_UImm12_Relaxed, ++ Match_UImm16_Relaxed, ++ Match_UImm1_0, ++ Match_UImm20_0, ++ Match_UImm26_0, ++ Match_UImm2_0, ++ Match_UImm2_1, ++ Match_UImm32_Coerced, ++ Match_UImm3_0, ++ Match_UImm4_0, ++ Match_UImm5_0, ++ Match_UImm5_0_Report_UImm6, ++ Match_UImm5_1, ++ Match_UImm5_32, ++ Match_UImm5_33, ++ Match_UImm5_Lsl2, ++ Match_UImm6_0, ++ Match_UImm6_Lsl2, ++ Match_UImm7_0, ++ Match_UImm7_N1, ++ Match_UImm8_0, ++ Match_UImmRange2_64, ++ END_OPERAND_DIAGNOSTIC_TYPES ++#endif // GET_OPERAND_DIAGNOSTIC_TYPES ++ ++ ++#ifdef GET_REGISTER_MATCHER ++#undef GET_REGISTER_MATCHER ++ ++// Bits for subtarget features that participate in instruction matching. ++enum SubtargetFeatureBits : uint8_t { ++ Feature_HasLSXBit = 1, ++ Feature_HasLASXBit = 0, ++ Feature_IsGP64bitBit = 3, ++ Feature_IsGP32bitBit = 2, ++ Feature_IsNotSoftFloatBit = 4, ++}; ++ ++#endif // GET_REGISTER_MATCHER ++ ++ ++#ifdef GET_SUBTARGET_FEATURE_NAME ++#undef GET_SUBTARGET_FEATURE_NAME ++ ++// User-level names for subtarget features that participate in ++// instruction matching. ++static const char *getSubtargetFeatureName(uint64_t Val) { ++ switch(Val) { ++ case Feature_HasLSXBit: return ""; ++ case Feature_HasLASXBit: return ""; ++ case Feature_IsGP64bitBit: return ""; ++ case Feature_IsGP32bitBit: return ""; ++ case Feature_IsNotSoftFloatBit: return ""; ++ default: return "(unknown)"; ++ } ++} ++ ++#endif // GET_SUBTARGET_FEATURE_NAME ++ ++ ++#ifdef GET_MATCHER_IMPLEMENTATION ++#undef GET_MATCHER_IMPLEMENTATION ++ ++enum { ++ Tie0_1_1, ++}; ++ ++static const uint8_t TiedAsmOperandTable[][3] = { ++ /* Tie0_1_1 */ { 0, 1, 1 }, ++}; ++ ++namespace { ++enum OperatorConversionKind { ++ CVT_Done, ++ CVT_Reg, ++ CVT_Tied, ++ CVT_95_addGPR64AsmRegOperands, ++ CVT_95_addGPR32AsmRegOperands, ++ CVT_95_addImmOperands, ++ CVT_95_addConstantUImmOperands_LT_2_44__32_1_GT_, ++ CVT_95_addMemOperands, ++ CVT_95_addUImmOperands_LT_12_GT_, ++ CVT_95_addFCFRAsmRegOperands, ++ CVT_imm_95_0, ++ CVT_95_addUImmOperands_LT_15_GT_, ++ CVT_95_addUImmOperands_LT_16_GT_, ++ CVT_95_addUImmOperands_LT_5_GT_, ++ CVT_95_addUImmOperands_LT_3_GT_, ++ CVT_95_addUImmOperands_LT_2_GT_, ++ CVT_95_addUImmOperands_LT_14_GT_, ++ CVT_95_addFGR64AsmRegOperands, ++ CVT_95_addFGR32AsmRegOperands, ++ CVT_regZERO_64, ++ CVT_95_addUImmOperands_LT_8_GT_, ++ CVT_95_addConstantUImmOperands_LT_32_GT_, ++ CVT_regZERO, ++ CVT_95_addFCSRAsmRegOperands, ++ CVT_95_addLSX128AsmRegOperands, ++ CVT_95_addConstantUImmOperands_LT_5_44__32_0_GT_, ++ CVT_95_addConstantUImmOperands_LT_8_44__32_0_GT_, ++ CVT_95_addConstantUImmOperands_LT_4_44__32_0_GT_, ++ CVT_95_addLASX256AsmRegOperands, ++ CVT_95_addConstantUImmOperands_LT_1_44__32_0_GT_, ++ CVT_95_addConstantSImmOperands_LT_10_44__32_0_GT_, ++ CVT_95_addConstantUImmOperands_LT_3_44__32_0_GT_, ++ CVT_95_addConstantUImmOperands_LT_2_44__32_0_GT_, ++ CVT_95_addConstantUImmOperands_LT_6_44__32_0_GT_, ++ CVT_95_addConstantUImmOperands_LT_7_44__32_0_GT_, ++ CVT_NUM_CONVERTERS ++}; ++ ++enum InstructionConversionKind { ++ Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2, ++ Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__GPR32AsmReg1_2, ++ Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__SImm121_2, ++ Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__SImm121_2, ++ Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__SImm161_2, ++ Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2__ConstantUImm2_11_3, ++ Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__GPR32AsmReg1_2__ConstantUImm2_11_3, ++ Convert__GPR64AsmReg1_0__GPR32AsmReg1_1__GPR32AsmReg1_2__ConstantUImm2_11_3, ++ Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__AMem2_2, ++ Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__AMem2_2, ++ Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__UImm121_2, ++ Convert__GPR64AsmReg1_0__GPR64AsmReg1_1, ++ Convert__JumpTarget1_0, ++ Convert__FCFRAsmReg1_0__JumpTarget1_1, ++ Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__JumpTarget1_2, ++ Convert__GPR64AsmReg1_0__JumpTarget1_1, ++ Convert__GPR32AsmReg1_0__GPR32AsmReg1_1, ++ Convert__imm_95_0, ++ Convert__UImm151_0, ++ Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__UImm61_2__UImm61_3__Tie0_1_1, ++ Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__UImm51_2__UImm51_3__Tie0_1_1, ++ Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__UImm61_2__UImm61_3, ++ Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__UImm51_2__UImm51_3, ++ Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2__UImm31_3, ++ Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__GPR32AsmReg1_2__UImm21_3, ++ Convert__UImm51_0__GPR32AsmReg1_1__SImm121_2, ++ Convert__UImm51_0__GPR64AsmReg1_1__SImm121_2, ++ Convert__GPR32AsmReg1_0__GPR64AsmReg1_1__GPR32AsmReg1_2, ++ Convert__GPR32AsmReg1_0__UImm141_1, ++ Convert__GPR64AsmReg1_0__UImm141_1, ++ Convert__GPR32AsmReg1_0__Tie0_1_1__UImm141_1, ++ Convert__GPR64AsmReg1_0__Tie0_1_1__UImm141_1, ++ Convert__GPR32AsmReg1_0__Tie0_1_1__GPR32AsmReg1_1__UImm141_2, ++ Convert__GPR64AsmReg1_0__Tie0_1_1__GPR64AsmReg1_1__UImm141_2, ++ Convert_NoOperands, ++ Convert__FGR64AsmReg1_0__FGR64AsmReg1_1, ++ Convert__FGR32AsmReg1_0__FGR32AsmReg1_1, ++ Convert__FGR64AsmReg1_0__FGR64AsmReg1_1__FGR64AsmReg1_2, ++ Convert__FGR32AsmReg1_0__FGR32AsmReg1_1__FGR32AsmReg1_2, ++ Convert__FCFRAsmReg1_0__FGR64AsmReg1_1__FGR64AsmReg1_2, ++ Convert__FCFRAsmReg1_0__FGR32AsmReg1_1__FGR32AsmReg1_2, ++ Convert__FGR64AsmReg1_0__FGR32AsmReg1_1, ++ Convert__FGR32AsmReg1_0__FGR64AsmReg1_1, ++ Convert__FGR64AsmReg1_0__Mem2_1, ++ Convert__FGR32AsmReg1_0__Mem2_1, ++ Convert__FGR64AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2, ++ Convert__FGR32AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2, ++ Convert__FGR64AsmReg1_0__GPR32AsmReg1_1__GPR32AsmReg1_2, ++ Convert__FGR32AsmReg1_0__GPR32AsmReg1_1__GPR32AsmReg1_2, ++ Convert__FGR64AsmReg1_0__FGR64AsmReg1_1__FGR64AsmReg1_2__FGR64AsmReg1_3, ++ Convert__FGR32AsmReg1_0__FGR32AsmReg1_1__FGR32AsmReg1_2__FGR32AsmReg1_3, ++ Convert__FGR32AsmReg1_0__FCFRAsmReg1_3__FGR32AsmReg1_1__FGR32AsmReg1_2, ++ Convert__UImm51_0__GPR64AsmReg1_1__GPR64AsmReg1_2, ++ Convert__GPR64AsmReg1_0__GPR32AsmReg1_1, ++ Convert__regZERO_64__GPR64AsmReg1_0__imm_95_0, ++ Convert__GPR64AsmReg1_0__Imm1_1, ++ Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__Imm1_2, ++ Convert__GPR64AsmReg1_0__Mem2_1, ++ Convert__GPR64AsmReg1_0__MemOffsetSimmPtr2_1, ++ Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__UImm81_2, ++ Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__UImm81_2, ++ Convert__GPR32AsmReg1_0__UImm81_1, ++ Convert__GPR64AsmReg1_0__UImm81_1, ++ Convert__GPR64AsmReg1_0__MemOffsetSimm14_22_1, ++ Convert__GPR64AsmReg1_0__GPR32AsmReg1_1__GPR32AsmReg1_2, ++ Convert__GPR32AsmReg1_0__UImm32_Coerced1_1, ++ Convert__GPR32AsmReg1_0__MemOffsetSimm14_22_1, ++ Convert__GPR64AsmReg1_0__SImm201_1, ++ Convert__FGR64AsmReg1_0__FCFRAsmReg1_1, ++ Convert__GPR64AsmReg1_0__FCFRAsmReg1_1, ++ Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__regZERO, ++ Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__regZERO_64, ++ Convert__GPR64AsmReg1_0__FCSRAsmReg1_1, ++ Convert__FCFRAsmReg1_0__FGR64AsmReg1_1, ++ Convert__GPR64AsmReg1_0__FGR64AsmReg1_1, ++ Convert__GPR32AsmReg1_0__FGR32AsmReg1_1, ++ Convert__FCFRAsmReg1_0__GPR64AsmReg1_1, ++ Convert__FCSRAsmReg1_0__GPR64AsmReg1_1, ++ Convert__FGR64AsmReg1_0__GPR64AsmReg1_1, ++ Convert__FGR32AsmReg1_0__GPR32AsmReg1_1, ++ Convert__FGR64AsmReg1_0__GPR32AsmReg1_1, ++ Convert__regZERO_64__regZERO_64__imm_95_0, ++ Convert__GPR32AsmReg1_1__SImm121_2__UImm51_0, ++ Convert__GPR64AsmReg1_1__SImm121_2__UImm51_0, ++ Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__GPR32AsmReg1_2, ++ Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__UImm61_2, ++ Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__UImm51_2, ++ Convert__GPR64AsmReg1_0__Tie0_1_1__MemOffsetSimm14_22_1, ++ Convert__GPR32AsmReg1_0__Tie0_1_1__MemOffsetSimm14_22_1, ++ Convert__GPR32AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2, ++ Convert__GPR32AsmReg1_0__GPR64AsmReg1_1__SImm121_2, ++ Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, ++ Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm5_01_2, ++ Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm8_01_2, ++ Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__UImm31_2, ++ Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__UImm61_2, ++ Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm4_01_2, ++ Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__UImm51_2, ++ Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2__LSX128AsmReg1_3, ++ Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__ConstantUImm8_01_2, ++ Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, ++ Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, ++ Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__LSX128AsmReg1_2, ++ Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__UImm51_2, ++ Convert__LSX128AsmReg1_0__Tie0_1_1__GPR32AsmReg1_1__ConstantUImm4_01_2, ++ Convert__LSX128AsmReg1_0__Tie0_1_1__GPR64AsmReg1_1__ConstantUImm1_01_2, ++ Convert__LSX128AsmReg1_0__Tie0_1_1__GPR32AsmReg1_1__UImm31_2, ++ Convert__LSX128AsmReg1_0__Tie0_1_1__GPR32AsmReg1_1__UImm21_2, ++ Convert__LSX128AsmReg1_0__Mem2_1, ++ Convert__LSX128AsmReg1_0__Imm1_1, ++ Convert__LSX128AsmReg1_0__ConstantSImm10_01_1, ++ Convert__LSX128AsmReg1_0__MemOffsetSimm9_32_1, ++ Convert__LSX128AsmReg1_0__MemOffsetSimm11_12_1, ++ Convert__LSX128AsmReg1_0__MemOffsetSimm10_22_1, ++ Convert__LSX128AsmReg1_0__GPR32AsmReg1_1__GPR64AsmReg1_2, ++ Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__SImm51_2, ++ Convert__GPR32AsmReg1_0__LSX128AsmReg1_1__ConstantUImm4_01_2, ++ Convert__GPR64AsmReg1_0__LSX128AsmReg1_1__ConstantUImm1_01_2, ++ Convert__GPR32AsmReg1_0__LSX128AsmReg1_1__ConstantUImm3_01_2, ++ Convert__GPR32AsmReg1_0__LSX128AsmReg1_1__ConstantUImm2_01_2, ++ Convert__LSX128AsmReg1_0__GPR32AsmReg1_1, ++ Convert__LSX128AsmReg1_0__GPR64AsmReg1_1, ++ Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__GPR32AsmReg1_2, ++ Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm1_01_2, ++ Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm3_01_2, ++ Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm2_01_2, ++ Convert__FCFRAsmReg1_0__LSX128AsmReg1_1, ++ Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm6_01_2, ++ Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__ConstantUImm4_01_2, ++ Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__ConstantUImm7_01_2, ++ Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__UImm61_2, ++ Convert__LSX128AsmReg1_0__MemOffsetSimm122_1, ++ Convert__LSX128AsmReg1_0__GPR32AsmReg1_1__SImm81_2__ConstantUImm4_01_3, ++ Convert__LSX128AsmReg1_0__GPR32AsmReg1_1__Simm8_Lsl31_2__ConstantUImm1_01_3, ++ Convert__LSX128AsmReg1_0__GPR32AsmReg1_1__Simm8_Lsl11_2__UImm31_3, ++ Convert__LSX128AsmReg1_0__GPR32AsmReg1_1__Simm8_Lsl21_2__UImm21_3, ++ Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, ++ Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm51_2, ++ Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__ConstantUImm8_01_2, ++ Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm31_2, ++ Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm61_2, ++ Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__ConstantUImm4_01_2, ++ Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2__LASX256AsmReg1_3, ++ Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__ConstantUImm8_01_2, ++ Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__LASX256AsmReg1_2, ++ Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__UImm51_2, ++ Convert__LASX256AsmReg1_0__Tie0_1_1__GPR64AsmReg1_1__ConstantUImm2_01_2, ++ Convert__LASX256AsmReg1_0__Tie0_1_1__GPR32AsmReg1_1__ConstantUImm3_01_2, ++ Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__UImm21_2, ++ Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__UImm31_2, ++ Convert__LASX256AsmReg1_0__Mem2_1, ++ Convert__LASX256AsmReg1_0__Imm1_1, ++ Convert__LASX256AsmReg1_0__ConstantSImm10_01_1, ++ Convert__LASX256AsmReg1_0__MemOffsetSimm9_32_1, ++ Convert__LASX256AsmReg1_0__MemOffsetSimm11_12_1, ++ Convert__LASX256AsmReg1_0__MemOffsetSimm10_22_1, ++ Convert__LASX256AsmReg1_0__GPR32AsmReg1_1__GPR64AsmReg1_2, ++ Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__SImm51_2, ++ Convert__GPR64AsmReg1_0__LASX256AsmReg1_1__ConstantUImm2_01_2, ++ Convert__GPR32AsmReg1_0__LASX256AsmReg1_1__ConstantUImm3_01_2, ++ Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__ConstantUImm1_01_2, ++ Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm21_2, ++ Convert__LASX256AsmReg1_0__GPR32AsmReg1_1, ++ Convert__LASX256AsmReg1_0__GPR64AsmReg1_1, ++ Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__GPR32AsmReg1_2, ++ Convert__FCFRAsmReg1_0__LASX256AsmReg1_1, ++ Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__ConstantUImm4_01_2, ++ Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__ConstantUImm7_01_2, ++ Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__UImm61_2, ++ Convert__LASX256AsmReg1_0__MemOffsetSimm122_1, ++ Convert__LASX256AsmReg1_0__GPR32AsmReg1_1__SImm81_2__UImm51_3, ++ Convert__LASX256AsmReg1_0__GPR32AsmReg1_1__Simm8_Lsl31_2__UImm21_3, ++ Convert__LASX256AsmReg1_0__GPR32AsmReg1_1__Simm8_Lsl11_2__ConstantUImm4_01_3, ++ Convert__LASX256AsmReg1_0__GPR32AsmReg1_1__Simm8_Lsl21_2__UImm31_3, ++ CVT_NUM_SIGNATURES ++}; ++ ++} // end anonymous namespace ++ ++static const uint8_t ConversionTable[CVT_NUM_SIGNATURES][11] = { ++ // Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2 ++ { CVT_95_addGPR64AsmRegOperands, 1, CVT_95_addGPR64AsmRegOperands, 2, CVT_95_addGPR64AsmRegOperands, 3, CVT_Done }, ++ // Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__GPR32AsmReg1_2 ++ { CVT_95_addGPR32AsmRegOperands, 1, CVT_95_addGPR32AsmRegOperands, 2, CVT_95_addGPR32AsmRegOperands, 3, CVT_Done }, ++ // Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__SImm121_2 ++ { CVT_95_addGPR64AsmRegOperands, 1, CVT_95_addGPR64AsmRegOperands, 2, CVT_95_addImmOperands, 3, CVT_Done }, ++ // Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__SImm121_2 ++ { CVT_95_addGPR32AsmRegOperands, 1, CVT_95_addGPR32AsmRegOperands, 2, CVT_95_addImmOperands, 3, CVT_Done }, ++ // Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__SImm161_2 ++ { CVT_95_addGPR64AsmRegOperands, 1, CVT_95_addGPR64AsmRegOperands, 2, CVT_95_addImmOperands, 3, CVT_Done }, ++ // Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2__ConstantUImm2_11_3 ++ { CVT_95_addGPR64AsmRegOperands, 1, CVT_95_addGPR64AsmRegOperands, 2, CVT_95_addGPR64AsmRegOperands, 3, CVT_95_addConstantUImmOperands_LT_2_44__32_1_GT_, 4, CVT_Done }, ++ // Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__GPR32AsmReg1_2__ConstantUImm2_11_3 ++ { CVT_95_addGPR32AsmRegOperands, 1, CVT_95_addGPR32AsmRegOperands, 2, CVT_95_addGPR32AsmRegOperands, 3, CVT_95_addConstantUImmOperands_LT_2_44__32_1_GT_, 4, CVT_Done }, ++ // Convert__GPR64AsmReg1_0__GPR32AsmReg1_1__GPR32AsmReg1_2__ConstantUImm2_11_3 ++ { CVT_95_addGPR64AsmRegOperands, 1, CVT_95_addGPR32AsmRegOperands, 2, CVT_95_addGPR32AsmRegOperands, 3, CVT_95_addConstantUImmOperands_LT_2_44__32_1_GT_, 4, CVT_Done }, ++ // Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__AMem2_2 ++ { CVT_95_addGPR64AsmRegOperands, 1, CVT_95_addGPR64AsmRegOperands, 2, CVT_95_addMemOperands, 3, CVT_Done }, ++ // Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__AMem2_2 ++ { CVT_95_addGPR32AsmRegOperands, 1, CVT_95_addGPR32AsmRegOperands, 2, CVT_95_addMemOperands, 3, CVT_Done }, ++ // Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__UImm121_2 ++ { CVT_95_addGPR64AsmRegOperands, 1, CVT_95_addGPR64AsmRegOperands, 2, CVT_95_addUImmOperands_LT_12_GT_, 3, CVT_Done }, ++ // Convert__GPR64AsmReg1_0__GPR64AsmReg1_1 ++ { CVT_95_addGPR64AsmRegOperands, 1, CVT_95_addGPR64AsmRegOperands, 2, CVT_Done }, ++ // Convert__JumpTarget1_0 ++ { CVT_95_addImmOperands, 1, CVT_Done }, ++ // Convert__FCFRAsmReg1_0__JumpTarget1_1 ++ { CVT_95_addFCFRAsmRegOperands, 1, CVT_95_addImmOperands, 2, CVT_Done }, ++ // Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__JumpTarget1_2 ++ { CVT_95_addGPR64AsmRegOperands, 1, CVT_95_addGPR64AsmRegOperands, 2, CVT_95_addImmOperands, 3, CVT_Done }, ++ // Convert__GPR64AsmReg1_0__JumpTarget1_1 ++ { CVT_95_addGPR64AsmRegOperands, 1, CVT_95_addImmOperands, 2, CVT_Done }, ++ // Convert__GPR32AsmReg1_0__GPR32AsmReg1_1 ++ { CVT_95_addGPR32AsmRegOperands, 1, CVT_95_addGPR32AsmRegOperands, 2, CVT_Done }, ++ // Convert__imm_95_0 ++ { CVT_imm_95_0, 0, CVT_Done }, ++ // Convert__UImm151_0 ++ { CVT_95_addUImmOperands_LT_15_GT_, 1, CVT_Done }, ++ // Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__UImm61_2__UImm61_3__Tie0_1_1 ++ { CVT_95_addGPR64AsmRegOperands, 1, CVT_95_addGPR64AsmRegOperands, 2, CVT_95_addUImmOperands_LT_16_GT_, 3, CVT_95_addUImmOperands_LT_16_GT_, 4, CVT_Tied, Tie0_1_1, CVT_Done }, ++ // Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__UImm51_2__UImm51_3__Tie0_1_1 ++ { CVT_95_addGPR32AsmRegOperands, 1, CVT_95_addGPR32AsmRegOperands, 2, CVT_95_addUImmOperands_LT_5_GT_, 3, CVT_95_addUImmOperands_LT_5_GT_, 4, CVT_Tied, Tie0_1_1, CVT_Done }, ++ // Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__UImm61_2__UImm61_3 ++ { CVT_95_addGPR64AsmRegOperands, 1, CVT_95_addGPR64AsmRegOperands, 2, CVT_95_addUImmOperands_LT_16_GT_, 3, CVT_95_addUImmOperands_LT_16_GT_, 4, CVT_Done }, ++ // Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__UImm51_2__UImm51_3 ++ { CVT_95_addGPR32AsmRegOperands, 1, CVT_95_addGPR32AsmRegOperands, 2, CVT_95_addUImmOperands_LT_5_GT_, 3, CVT_95_addUImmOperands_LT_5_GT_, 4, CVT_Done }, ++ // Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2__UImm31_3 ++ { CVT_95_addGPR64AsmRegOperands, 1, CVT_95_addGPR64AsmRegOperands, 2, CVT_95_addGPR64AsmRegOperands, 3, CVT_95_addUImmOperands_LT_3_GT_, 4, CVT_Done }, ++ // Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__GPR32AsmReg1_2__UImm21_3 ++ { CVT_95_addGPR32AsmRegOperands, 1, CVT_95_addGPR32AsmRegOperands, 2, CVT_95_addGPR32AsmRegOperands, 3, CVT_95_addUImmOperands_LT_2_GT_, 4, CVT_Done }, ++ // Convert__UImm51_0__GPR32AsmReg1_1__SImm121_2 ++ { CVT_95_addUImmOperands_LT_5_GT_, 1, CVT_95_addGPR32AsmRegOperands, 2, CVT_95_addImmOperands, 3, CVT_Done }, ++ // Convert__UImm51_0__GPR64AsmReg1_1__SImm121_2 ++ { CVT_95_addUImmOperands_LT_5_GT_, 1, CVT_95_addGPR64AsmRegOperands, 2, CVT_95_addImmOperands, 3, CVT_Done }, ++ // Convert__GPR32AsmReg1_0__GPR64AsmReg1_1__GPR32AsmReg1_2 ++ { CVT_95_addGPR32AsmRegOperands, 1, CVT_95_addGPR64AsmRegOperands, 2, CVT_95_addGPR32AsmRegOperands, 3, CVT_Done }, ++ // Convert__GPR32AsmReg1_0__UImm141_1 ++ { CVT_95_addGPR32AsmRegOperands, 1, CVT_95_addUImmOperands_LT_14_GT_, 2, CVT_Done }, ++ // Convert__GPR64AsmReg1_0__UImm141_1 ++ { CVT_95_addGPR64AsmRegOperands, 1, CVT_95_addUImmOperands_LT_14_GT_, 2, CVT_Done }, ++ // Convert__GPR32AsmReg1_0__Tie0_1_1__UImm141_1 ++ { CVT_95_addGPR32AsmRegOperands, 1, CVT_Tied, Tie0_1_1, CVT_95_addUImmOperands_LT_14_GT_, 2, CVT_Done }, ++ // Convert__GPR64AsmReg1_0__Tie0_1_1__UImm141_1 ++ { CVT_95_addGPR64AsmRegOperands, 1, CVT_Tied, Tie0_1_1, CVT_95_addUImmOperands_LT_14_GT_, 2, CVT_Done }, ++ // Convert__GPR32AsmReg1_0__Tie0_1_1__GPR32AsmReg1_1__UImm141_2 ++ { CVT_95_addGPR32AsmRegOperands, 1, CVT_Tied, Tie0_1_1, CVT_95_addGPR32AsmRegOperands, 2, CVT_95_addUImmOperands_LT_14_GT_, 3, CVT_Done }, ++ // Convert__GPR64AsmReg1_0__Tie0_1_1__GPR64AsmReg1_1__UImm141_2 ++ { CVT_95_addGPR64AsmRegOperands, 1, CVT_Tied, Tie0_1_1, CVT_95_addGPR64AsmRegOperands, 2, CVT_95_addUImmOperands_LT_14_GT_, 3, CVT_Done }, ++ // Convert_NoOperands ++ { CVT_Done }, ++ // Convert__FGR64AsmReg1_0__FGR64AsmReg1_1 ++ { CVT_95_addFGR64AsmRegOperands, 1, CVT_95_addFGR64AsmRegOperands, 2, CVT_Done }, ++ // Convert__FGR32AsmReg1_0__FGR32AsmReg1_1 ++ { CVT_95_addFGR32AsmRegOperands, 1, CVT_95_addFGR32AsmRegOperands, 2, CVT_Done }, ++ // Convert__FGR64AsmReg1_0__FGR64AsmReg1_1__FGR64AsmReg1_2 ++ { CVT_95_addFGR64AsmRegOperands, 1, CVT_95_addFGR64AsmRegOperands, 2, CVT_95_addFGR64AsmRegOperands, 3, CVT_Done }, ++ // Convert__FGR32AsmReg1_0__FGR32AsmReg1_1__FGR32AsmReg1_2 ++ { CVT_95_addFGR32AsmRegOperands, 1, CVT_95_addFGR32AsmRegOperands, 2, CVT_95_addFGR32AsmRegOperands, 3, CVT_Done }, ++ // Convert__FCFRAsmReg1_0__FGR64AsmReg1_1__FGR64AsmReg1_2 ++ { CVT_95_addFCFRAsmRegOperands, 1, CVT_95_addFGR64AsmRegOperands, 2, CVT_95_addFGR64AsmRegOperands, 3, CVT_Done }, ++ // Convert__FCFRAsmReg1_0__FGR32AsmReg1_1__FGR32AsmReg1_2 ++ { CVT_95_addFCFRAsmRegOperands, 1, CVT_95_addFGR32AsmRegOperands, 2, CVT_95_addFGR32AsmRegOperands, 3, CVT_Done }, ++ // Convert__FGR64AsmReg1_0__FGR32AsmReg1_1 ++ { CVT_95_addFGR64AsmRegOperands, 1, CVT_95_addFGR32AsmRegOperands, 2, CVT_Done }, ++ // Convert__FGR32AsmReg1_0__FGR64AsmReg1_1 ++ { CVT_95_addFGR32AsmRegOperands, 1, CVT_95_addFGR64AsmRegOperands, 2, CVT_Done }, ++ // Convert__FGR64AsmReg1_0__Mem2_1 ++ { CVT_95_addFGR64AsmRegOperands, 1, CVT_95_addMemOperands, 2, CVT_Done }, ++ // Convert__FGR32AsmReg1_0__Mem2_1 ++ { CVT_95_addFGR32AsmRegOperands, 1, CVT_95_addMemOperands, 2, CVT_Done }, ++ // Convert__FGR64AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2 ++ { CVT_95_addFGR64AsmRegOperands, 1, CVT_95_addGPR64AsmRegOperands, 2, CVT_95_addGPR64AsmRegOperands, 3, CVT_Done }, ++ // Convert__FGR32AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2 ++ { CVT_95_addFGR32AsmRegOperands, 1, CVT_95_addGPR64AsmRegOperands, 2, CVT_95_addGPR64AsmRegOperands, 3, CVT_Done }, ++ // Convert__FGR64AsmReg1_0__GPR32AsmReg1_1__GPR32AsmReg1_2 ++ { CVT_95_addFGR64AsmRegOperands, 1, CVT_95_addGPR32AsmRegOperands, 2, CVT_95_addGPR32AsmRegOperands, 3, CVT_Done }, ++ // Convert__FGR32AsmReg1_0__GPR32AsmReg1_1__GPR32AsmReg1_2 ++ { CVT_95_addFGR32AsmRegOperands, 1, CVT_95_addGPR32AsmRegOperands, 2, CVT_95_addGPR32AsmRegOperands, 3, CVT_Done }, ++ // Convert__FGR64AsmReg1_0__FGR64AsmReg1_1__FGR64AsmReg1_2__FGR64AsmReg1_3 ++ { CVT_95_addFGR64AsmRegOperands, 1, CVT_95_addFGR64AsmRegOperands, 2, CVT_95_addFGR64AsmRegOperands, 3, CVT_95_addFGR64AsmRegOperands, 4, CVT_Done }, ++ // Convert__FGR32AsmReg1_0__FGR32AsmReg1_1__FGR32AsmReg1_2__FGR32AsmReg1_3 ++ { CVT_95_addFGR32AsmRegOperands, 1, CVT_95_addFGR32AsmRegOperands, 2, CVT_95_addFGR32AsmRegOperands, 3, CVT_95_addFGR32AsmRegOperands, 4, CVT_Done }, ++ // Convert__FGR32AsmReg1_0__FCFRAsmReg1_3__FGR32AsmReg1_1__FGR32AsmReg1_2 ++ { CVT_95_addFGR32AsmRegOperands, 1, CVT_95_addFCFRAsmRegOperands, 4, CVT_95_addFGR32AsmRegOperands, 2, CVT_95_addFGR32AsmRegOperands, 3, CVT_Done }, ++ // Convert__UImm51_0__GPR64AsmReg1_1__GPR64AsmReg1_2 ++ { CVT_95_addUImmOperands_LT_5_GT_, 1, CVT_95_addGPR64AsmRegOperands, 2, CVT_95_addGPR64AsmRegOperands, 3, CVT_Done }, ++ // Convert__GPR64AsmReg1_0__GPR32AsmReg1_1 ++ { CVT_95_addGPR64AsmRegOperands, 1, CVT_95_addGPR32AsmRegOperands, 2, CVT_Done }, ++ // Convert__regZERO_64__GPR64AsmReg1_0__imm_95_0 ++ { CVT_regZERO_64, 0, CVT_95_addGPR64AsmRegOperands, 1, CVT_imm_95_0, 0, CVT_Done }, ++ // Convert__GPR64AsmReg1_0__Imm1_1 ++ { CVT_95_addGPR64AsmRegOperands, 1, CVT_95_addImmOperands, 2, CVT_Done }, ++ // Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__Imm1_2 ++ { CVT_95_addGPR64AsmRegOperands, 1, CVT_95_addGPR64AsmRegOperands, 2, CVT_95_addImmOperands, 3, CVT_Done }, ++ // Convert__GPR64AsmReg1_0__Mem2_1 ++ { CVT_95_addGPR64AsmRegOperands, 1, CVT_95_addMemOperands, 2, CVT_Done }, ++ // Convert__GPR64AsmReg1_0__MemOffsetSimmPtr2_1 ++ { CVT_95_addGPR64AsmRegOperands, 1, CVT_95_addMemOperands, 2, CVT_Done }, ++ // Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__UImm81_2 ++ { CVT_95_addGPR32AsmRegOperands, 1, CVT_95_addGPR32AsmRegOperands, 2, CVT_95_addUImmOperands_LT_8_GT_, 3, CVT_Done }, ++ // Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__UImm81_2 ++ { CVT_95_addGPR64AsmRegOperands, 1, CVT_95_addGPR64AsmRegOperands, 2, CVT_95_addUImmOperands_LT_8_GT_, 3, CVT_Done }, ++ // Convert__GPR32AsmReg1_0__UImm81_1 ++ { CVT_95_addGPR32AsmRegOperands, 1, CVT_95_addUImmOperands_LT_8_GT_, 2, CVT_Done }, ++ // Convert__GPR64AsmReg1_0__UImm81_1 ++ { CVT_95_addGPR64AsmRegOperands, 1, CVT_95_addUImmOperands_LT_8_GT_, 2, CVT_Done }, ++ // Convert__GPR64AsmReg1_0__MemOffsetSimm14_22_1 ++ { CVT_95_addGPR64AsmRegOperands, 1, CVT_95_addMemOperands, 2, CVT_Done }, ++ // Convert__GPR64AsmReg1_0__GPR32AsmReg1_1__GPR32AsmReg1_2 ++ { CVT_95_addGPR64AsmRegOperands, 1, CVT_95_addGPR32AsmRegOperands, 2, CVT_95_addGPR32AsmRegOperands, 3, CVT_Done }, ++ // Convert__GPR32AsmReg1_0__UImm32_Coerced1_1 ++ { CVT_95_addGPR32AsmRegOperands, 1, CVT_95_addConstantUImmOperands_LT_32_GT_, 2, CVT_Done }, ++ // Convert__GPR32AsmReg1_0__MemOffsetSimm14_22_1 ++ { CVT_95_addGPR32AsmRegOperands, 1, CVT_95_addMemOperands, 2, CVT_Done }, ++ // Convert__GPR64AsmReg1_0__SImm201_1 ++ { CVT_95_addGPR64AsmRegOperands, 1, CVT_95_addImmOperands, 2, CVT_Done }, ++ // Convert__FGR64AsmReg1_0__FCFRAsmReg1_1 ++ { CVT_95_addFGR64AsmRegOperands, 1, CVT_95_addFCFRAsmRegOperands, 2, CVT_Done }, ++ // Convert__GPR64AsmReg1_0__FCFRAsmReg1_1 ++ { CVT_95_addGPR64AsmRegOperands, 1, CVT_95_addFCFRAsmRegOperands, 2, CVT_Done }, ++ // Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__regZERO ++ { CVT_95_addGPR32AsmRegOperands, 1, CVT_95_addGPR32AsmRegOperands, 2, CVT_regZERO, 0, CVT_Done }, ++ // Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__regZERO_64 ++ { CVT_95_addGPR64AsmRegOperands, 1, CVT_95_addGPR64AsmRegOperands, 2, CVT_regZERO_64, 0, CVT_Done }, ++ // Convert__GPR64AsmReg1_0__FCSRAsmReg1_1 ++ { CVT_95_addGPR64AsmRegOperands, 1, CVT_95_addFCSRAsmRegOperands, 2, CVT_Done }, ++ // Convert__FCFRAsmReg1_0__FGR64AsmReg1_1 ++ { CVT_95_addFCFRAsmRegOperands, 1, CVT_95_addFGR64AsmRegOperands, 2, CVT_Done }, ++ // Convert__GPR64AsmReg1_0__FGR64AsmReg1_1 ++ { CVT_95_addGPR64AsmRegOperands, 1, CVT_95_addFGR64AsmRegOperands, 2, CVT_Done }, ++ // Convert__GPR32AsmReg1_0__FGR32AsmReg1_1 ++ { CVT_95_addGPR32AsmRegOperands, 1, CVT_95_addFGR32AsmRegOperands, 2, CVT_Done }, ++ // Convert__FCFRAsmReg1_0__GPR64AsmReg1_1 ++ { CVT_95_addFCFRAsmRegOperands, 1, CVT_95_addGPR64AsmRegOperands, 2, CVT_Done }, ++ // Convert__FCSRAsmReg1_0__GPR64AsmReg1_1 ++ { CVT_95_addFCSRAsmRegOperands, 1, CVT_95_addGPR64AsmRegOperands, 2, CVT_Done }, ++ // Convert__FGR64AsmReg1_0__GPR64AsmReg1_1 ++ { CVT_95_addFGR64AsmRegOperands, 1, CVT_95_addGPR64AsmRegOperands, 2, CVT_Done }, ++ // Convert__FGR32AsmReg1_0__GPR32AsmReg1_1 ++ { CVT_95_addFGR32AsmRegOperands, 1, CVT_95_addGPR32AsmRegOperands, 2, CVT_Done }, ++ // Convert__FGR64AsmReg1_0__GPR32AsmReg1_1 ++ { CVT_95_addFGR64AsmRegOperands, 1, CVT_95_addGPR32AsmRegOperands, 2, CVT_Done }, ++ // Convert__regZERO_64__regZERO_64__imm_95_0 ++ { CVT_regZERO_64, 0, CVT_regZERO_64, 0, CVT_imm_95_0, 0, CVT_Done }, ++ // Convert__GPR32AsmReg1_1__SImm121_2__UImm51_0 ++ { CVT_95_addGPR32AsmRegOperands, 2, CVT_95_addImmOperands, 3, CVT_95_addUImmOperands_LT_5_GT_, 1, CVT_Done }, ++ // Convert__GPR64AsmReg1_1__SImm121_2__UImm51_0 ++ { CVT_95_addGPR64AsmRegOperands, 2, CVT_95_addImmOperands, 3, CVT_95_addUImmOperands_LT_5_GT_, 1, CVT_Done }, ++ // Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__GPR32AsmReg1_2 ++ { CVT_95_addGPR64AsmRegOperands, 1, CVT_95_addGPR64AsmRegOperands, 2, CVT_95_addGPR32AsmRegOperands, 3, CVT_Done }, ++ // Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__UImm61_2 ++ { CVT_95_addGPR64AsmRegOperands, 1, CVT_95_addGPR64AsmRegOperands, 2, CVT_95_addUImmOperands_LT_16_GT_, 3, CVT_Done }, ++ // Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__UImm51_2 ++ { CVT_95_addGPR32AsmRegOperands, 1, CVT_95_addGPR32AsmRegOperands, 2, CVT_95_addUImmOperands_LT_5_GT_, 3, CVT_Done }, ++ // Convert__GPR64AsmReg1_0__Tie0_1_1__MemOffsetSimm14_22_1 ++ { CVT_95_addGPR64AsmRegOperands, 1, CVT_Tied, Tie0_1_1, CVT_95_addMemOperands, 2, CVT_Done }, ++ // Convert__GPR32AsmReg1_0__Tie0_1_1__MemOffsetSimm14_22_1 ++ { CVT_95_addGPR32AsmRegOperands, 1, CVT_Tied, Tie0_1_1, CVT_95_addMemOperands, 2, CVT_Done }, ++ // Convert__GPR32AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2 ++ { CVT_95_addGPR32AsmRegOperands, 1, CVT_95_addGPR64AsmRegOperands, 2, CVT_95_addGPR64AsmRegOperands, 3, CVT_Done }, ++ // Convert__GPR32AsmReg1_0__GPR64AsmReg1_1__SImm121_2 ++ { CVT_95_addGPR32AsmRegOperands, 1, CVT_95_addGPR64AsmRegOperands, 2, CVT_95_addImmOperands, 3, CVT_Done }, ++ // Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2 ++ { CVT_95_addLSX128AsmRegOperands, 1, CVT_95_addLSX128AsmRegOperands, 2, CVT_95_addLSX128AsmRegOperands, 3, CVT_Done }, ++ // Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm5_01_2 ++ { CVT_95_addLSX128AsmRegOperands, 1, CVT_95_addLSX128AsmRegOperands, 2, CVT_95_addConstantUImmOperands_LT_5_44__32_0_GT_, 3, CVT_Done }, ++ // Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm8_01_2 ++ { CVT_95_addLSX128AsmRegOperands, 1, CVT_95_addLSX128AsmRegOperands, 2, CVT_95_addConstantUImmOperands_LT_8_44__32_0_GT_, 3, CVT_Done }, ++ // Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__UImm31_2 ++ { CVT_95_addLSX128AsmRegOperands, 1, CVT_95_addLSX128AsmRegOperands, 2, CVT_95_addUImmOperands_LT_3_GT_, 3, CVT_Done }, ++ // Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__UImm61_2 ++ { CVT_95_addLSX128AsmRegOperands, 1, CVT_95_addLSX128AsmRegOperands, 2, CVT_95_addUImmOperands_LT_16_GT_, 3, CVT_Done }, ++ // Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm4_01_2 ++ { CVT_95_addLSX128AsmRegOperands, 1, CVT_95_addLSX128AsmRegOperands, 2, CVT_95_addConstantUImmOperands_LT_4_44__32_0_GT_, 3, CVT_Done }, ++ // Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__UImm51_2 ++ { CVT_95_addLSX128AsmRegOperands, 1, CVT_95_addLSX128AsmRegOperands, 2, CVT_95_addUImmOperands_LT_5_GT_, 3, CVT_Done }, ++ // Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2__LSX128AsmReg1_3 ++ { CVT_95_addLSX128AsmRegOperands, 1, CVT_95_addLSX128AsmRegOperands, 2, CVT_95_addLSX128AsmRegOperands, 3, CVT_95_addLSX128AsmRegOperands, 4, CVT_Done }, ++ // Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__ConstantUImm8_01_2 ++ { CVT_95_addLSX128AsmRegOperands, 1, CVT_Tied, Tie0_1_1, CVT_95_addLSX128AsmRegOperands, 2, CVT_95_addConstantUImmOperands_LT_8_44__32_0_GT_, 3, CVT_Done }, ++ // Convert__LSX128AsmReg1_0__LSX128AsmReg1_1 ++ { CVT_95_addLSX128AsmRegOperands, 1, CVT_95_addLSX128AsmRegOperands, 2, CVT_Done }, ++ // Convert__LASX256AsmReg1_0__LASX256AsmReg1_1 ++ { CVT_95_addLASX256AsmRegOperands, 1, CVT_95_addLASX256AsmRegOperands, 2, CVT_Done }, ++ // Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__LSX128AsmReg1_2 ++ { CVT_95_addLSX128AsmRegOperands, 1, CVT_Tied, Tie0_1_1, CVT_95_addLSX128AsmRegOperands, 2, CVT_95_addLSX128AsmRegOperands, 3, CVT_Done }, ++ // Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__UImm51_2 ++ { CVT_95_addLSX128AsmRegOperands, 1, CVT_Tied, Tie0_1_1, CVT_95_addLSX128AsmRegOperands, 2, CVT_95_addUImmOperands_LT_5_GT_, 3, CVT_Done }, ++ // Convert__LSX128AsmReg1_0__Tie0_1_1__GPR32AsmReg1_1__ConstantUImm4_01_2 ++ { CVT_95_addLSX128AsmRegOperands, 1, CVT_Tied, Tie0_1_1, CVT_95_addGPR32AsmRegOperands, 2, CVT_95_addConstantUImmOperands_LT_4_44__32_0_GT_, 3, CVT_Done }, ++ // Convert__LSX128AsmReg1_0__Tie0_1_1__GPR64AsmReg1_1__ConstantUImm1_01_2 ++ { CVT_95_addLSX128AsmRegOperands, 1, CVT_Tied, Tie0_1_1, CVT_95_addGPR64AsmRegOperands, 2, CVT_95_addConstantUImmOperands_LT_1_44__32_0_GT_, 3, CVT_Done }, ++ // Convert__LSX128AsmReg1_0__Tie0_1_1__GPR32AsmReg1_1__UImm31_2 ++ { CVT_95_addLSX128AsmRegOperands, 1, CVT_Tied, Tie0_1_1, CVT_95_addGPR32AsmRegOperands, 2, CVT_95_addUImmOperands_LT_3_GT_, 3, CVT_Done }, ++ // Convert__LSX128AsmReg1_0__Tie0_1_1__GPR32AsmReg1_1__UImm21_2 ++ { CVT_95_addLSX128AsmRegOperands, 1, CVT_Tied, Tie0_1_1, CVT_95_addGPR32AsmRegOperands, 2, CVT_95_addUImmOperands_LT_2_GT_, 3, CVT_Done }, ++ // Convert__LSX128AsmReg1_0__Mem2_1 ++ { CVT_95_addLSX128AsmRegOperands, 1, CVT_95_addMemOperands, 2, CVT_Done }, ++ // Convert__LSX128AsmReg1_0__Imm1_1 ++ { CVT_95_addLSX128AsmRegOperands, 1, CVT_95_addImmOperands, 2, CVT_Done }, ++ // Convert__LSX128AsmReg1_0__ConstantSImm10_01_1 ++ { CVT_95_addLSX128AsmRegOperands, 1, CVT_95_addConstantSImmOperands_LT_10_44__32_0_GT_, 2, CVT_Done }, ++ // Convert__LSX128AsmReg1_0__MemOffsetSimm9_32_1 ++ { CVT_95_addLSX128AsmRegOperands, 1, CVT_95_addMemOperands, 2, CVT_Done }, ++ // Convert__LSX128AsmReg1_0__MemOffsetSimm11_12_1 ++ { CVT_95_addLSX128AsmRegOperands, 1, CVT_95_addMemOperands, 2, CVT_Done }, ++ // Convert__LSX128AsmReg1_0__MemOffsetSimm10_22_1 ++ { CVT_95_addLSX128AsmRegOperands, 1, CVT_95_addMemOperands, 2, CVT_Done }, ++ // Convert__LSX128AsmReg1_0__GPR32AsmReg1_1__GPR64AsmReg1_2 ++ { CVT_95_addLSX128AsmRegOperands, 1, CVT_95_addGPR32AsmRegOperands, 2, CVT_95_addGPR64AsmRegOperands, 3, CVT_Done }, ++ // Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__SImm51_2 ++ { CVT_95_addLSX128AsmRegOperands, 1, CVT_95_addLSX128AsmRegOperands, 2, CVT_95_addImmOperands, 3, CVT_Done }, ++ // Convert__GPR32AsmReg1_0__LSX128AsmReg1_1__ConstantUImm4_01_2 ++ { CVT_95_addGPR32AsmRegOperands, 1, CVT_95_addLSX128AsmRegOperands, 2, CVT_95_addConstantUImmOperands_LT_4_44__32_0_GT_, 3, CVT_Done }, ++ // Convert__GPR64AsmReg1_0__LSX128AsmReg1_1__ConstantUImm1_01_2 ++ { CVT_95_addGPR64AsmRegOperands, 1, CVT_95_addLSX128AsmRegOperands, 2, CVT_95_addConstantUImmOperands_LT_1_44__32_0_GT_, 3, CVT_Done }, ++ // Convert__GPR32AsmReg1_0__LSX128AsmReg1_1__ConstantUImm3_01_2 ++ { CVT_95_addGPR32AsmRegOperands, 1, CVT_95_addLSX128AsmRegOperands, 2, CVT_95_addConstantUImmOperands_LT_3_44__32_0_GT_, 3, CVT_Done }, ++ // Convert__GPR32AsmReg1_0__LSX128AsmReg1_1__ConstantUImm2_01_2 ++ { CVT_95_addGPR32AsmRegOperands, 1, CVT_95_addLSX128AsmRegOperands, 2, CVT_95_addConstantUImmOperands_LT_2_44__32_0_GT_, 3, CVT_Done }, ++ // Convert__LSX128AsmReg1_0__GPR32AsmReg1_1 ++ { CVT_95_addLSX128AsmRegOperands, 1, CVT_95_addGPR32AsmRegOperands, 2, CVT_Done }, ++ // Convert__LSX128AsmReg1_0__GPR64AsmReg1_1 ++ { CVT_95_addLSX128AsmRegOperands, 1, CVT_95_addGPR64AsmRegOperands, 2, CVT_Done }, ++ // Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__GPR32AsmReg1_2 ++ { CVT_95_addLSX128AsmRegOperands, 1, CVT_95_addLSX128AsmRegOperands, 2, CVT_95_addGPR32AsmRegOperands, 3, CVT_Done }, ++ // Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm1_01_2 ++ { CVT_95_addLSX128AsmRegOperands, 1, CVT_95_addLSX128AsmRegOperands, 2, CVT_95_addConstantUImmOperands_LT_1_44__32_0_GT_, 3, CVT_Done }, ++ // Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm3_01_2 ++ { CVT_95_addLSX128AsmRegOperands, 1, CVT_95_addLSX128AsmRegOperands, 2, CVT_95_addConstantUImmOperands_LT_3_44__32_0_GT_, 3, CVT_Done }, ++ // Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm2_01_2 ++ { CVT_95_addLSX128AsmRegOperands, 1, CVT_95_addLSX128AsmRegOperands, 2, CVT_95_addConstantUImmOperands_LT_2_44__32_0_GT_, 3, CVT_Done }, ++ // Convert__FCFRAsmReg1_0__LSX128AsmReg1_1 ++ { CVT_95_addFCFRAsmRegOperands, 1, CVT_95_addLSX128AsmRegOperands, 2, CVT_Done }, ++ // Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm6_01_2 ++ { CVT_95_addLSX128AsmRegOperands, 1, CVT_95_addLSX128AsmRegOperands, 2, CVT_95_addConstantUImmOperands_LT_6_44__32_0_GT_, 3, CVT_Done }, ++ // Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__ConstantUImm4_01_2 ++ { CVT_95_addLSX128AsmRegOperands, 1, CVT_Tied, Tie0_1_1, CVT_95_addLSX128AsmRegOperands, 2, CVT_95_addConstantUImmOperands_LT_4_44__32_0_GT_, 3, CVT_Done }, ++ // Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__ConstantUImm7_01_2 ++ { CVT_95_addLSX128AsmRegOperands, 1, CVT_Tied, Tie0_1_1, CVT_95_addLSX128AsmRegOperands, 2, CVT_95_addConstantUImmOperands_LT_7_44__32_0_GT_, 3, CVT_Done }, ++ // Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__UImm61_2 ++ { CVT_95_addLSX128AsmRegOperands, 1, CVT_Tied, Tie0_1_1, CVT_95_addLSX128AsmRegOperands, 2, CVT_95_addUImmOperands_LT_16_GT_, 3, CVT_Done }, ++ // Convert__LSX128AsmReg1_0__MemOffsetSimm122_1 ++ { CVT_95_addLSX128AsmRegOperands, 1, CVT_95_addMemOperands, 2, CVT_Done }, ++ // Convert__LSX128AsmReg1_0__GPR32AsmReg1_1__SImm81_2__ConstantUImm4_01_3 ++ { CVT_95_addLSX128AsmRegOperands, 1, CVT_95_addGPR32AsmRegOperands, 2, CVT_95_addImmOperands, 3, CVT_95_addConstantUImmOperands_LT_4_44__32_0_GT_, 4, CVT_Done }, ++ // Convert__LSX128AsmReg1_0__GPR32AsmReg1_1__Simm8_Lsl31_2__ConstantUImm1_01_3 ++ { CVT_95_addLSX128AsmRegOperands, 1, CVT_95_addGPR32AsmRegOperands, 2, CVT_95_addImmOperands, 3, CVT_95_addConstantUImmOperands_LT_1_44__32_0_GT_, 4, CVT_Done }, ++ // Convert__LSX128AsmReg1_0__GPR32AsmReg1_1__Simm8_Lsl11_2__UImm31_3 ++ { CVT_95_addLSX128AsmRegOperands, 1, CVT_95_addGPR32AsmRegOperands, 2, CVT_95_addImmOperands, 3, CVT_95_addUImmOperands_LT_3_GT_, 4, CVT_Done }, ++ // Convert__LSX128AsmReg1_0__GPR32AsmReg1_1__Simm8_Lsl21_2__UImm21_3 ++ { CVT_95_addLSX128AsmRegOperands, 1, CVT_95_addGPR32AsmRegOperands, 2, CVT_95_addImmOperands, 3, CVT_95_addUImmOperands_LT_2_GT_, 4, CVT_Done }, ++ // Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2 ++ { CVT_95_addLASX256AsmRegOperands, 1, CVT_95_addLASX256AsmRegOperands, 2, CVT_95_addLASX256AsmRegOperands, 3, CVT_Done }, ++ // Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm51_2 ++ { CVT_95_addLASX256AsmRegOperands, 1, CVT_95_addLASX256AsmRegOperands, 2, CVT_95_addUImmOperands_LT_5_GT_, 3, CVT_Done }, ++ // Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__ConstantUImm8_01_2 ++ { CVT_95_addLASX256AsmRegOperands, 1, CVT_95_addLASX256AsmRegOperands, 2, CVT_95_addConstantUImmOperands_LT_8_44__32_0_GT_, 3, CVT_Done }, ++ // Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm31_2 ++ { CVT_95_addLASX256AsmRegOperands, 1, CVT_95_addLASX256AsmRegOperands, 2, CVT_95_addUImmOperands_LT_3_GT_, 3, CVT_Done }, ++ // Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm61_2 ++ { CVT_95_addLASX256AsmRegOperands, 1, CVT_95_addLASX256AsmRegOperands, 2, CVT_95_addUImmOperands_LT_16_GT_, 3, CVT_Done }, ++ // Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__ConstantUImm4_01_2 ++ { CVT_95_addLASX256AsmRegOperands, 1, CVT_95_addLASX256AsmRegOperands, 2, CVT_95_addConstantUImmOperands_LT_4_44__32_0_GT_, 3, CVT_Done }, ++ // Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2__LASX256AsmReg1_3 ++ { CVT_95_addLASX256AsmRegOperands, 1, CVT_95_addLASX256AsmRegOperands, 2, CVT_95_addLASX256AsmRegOperands, 3, CVT_95_addLASX256AsmRegOperands, 4, CVT_Done }, ++ // Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__ConstantUImm8_01_2 ++ { CVT_95_addLASX256AsmRegOperands, 1, CVT_Tied, Tie0_1_1, CVT_95_addLASX256AsmRegOperands, 2, CVT_95_addConstantUImmOperands_LT_8_44__32_0_GT_, 3, CVT_Done }, ++ // Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__LASX256AsmReg1_2 ++ { CVT_95_addLASX256AsmRegOperands, 1, CVT_Tied, Tie0_1_1, CVT_95_addLASX256AsmRegOperands, 2, CVT_95_addLASX256AsmRegOperands, 3, CVT_Done }, ++ // Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__UImm51_2 ++ { CVT_95_addLASX256AsmRegOperands, 1, CVT_Tied, Tie0_1_1, CVT_95_addLASX256AsmRegOperands, 2, CVT_95_addUImmOperands_LT_5_GT_, 3, CVT_Done }, ++ // Convert__LASX256AsmReg1_0__Tie0_1_1__GPR64AsmReg1_1__ConstantUImm2_01_2 ++ { CVT_95_addLASX256AsmRegOperands, 1, CVT_Tied, Tie0_1_1, CVT_95_addGPR64AsmRegOperands, 2, CVT_95_addConstantUImmOperands_LT_2_44__32_0_GT_, 3, CVT_Done }, ++ // Convert__LASX256AsmReg1_0__Tie0_1_1__GPR32AsmReg1_1__ConstantUImm3_01_2 ++ { CVT_95_addLASX256AsmRegOperands, 1, CVT_Tied, Tie0_1_1, CVT_95_addGPR32AsmRegOperands, 2, CVT_95_addConstantUImmOperands_LT_3_44__32_0_GT_, 3, CVT_Done }, ++ // Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__UImm21_2 ++ { CVT_95_addLASX256AsmRegOperands, 1, CVT_Tied, Tie0_1_1, CVT_95_addLASX256AsmRegOperands, 2, CVT_95_addUImmOperands_LT_2_GT_, 3, CVT_Done }, ++ // Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__UImm31_2 ++ { CVT_95_addLASX256AsmRegOperands, 1, CVT_Tied, Tie0_1_1, CVT_95_addLASX256AsmRegOperands, 2, CVT_95_addUImmOperands_LT_3_GT_, 3, CVT_Done }, ++ // Convert__LASX256AsmReg1_0__Mem2_1 ++ { CVT_95_addLASX256AsmRegOperands, 1, CVT_95_addMemOperands, 2, CVT_Done }, ++ // Convert__LASX256AsmReg1_0__Imm1_1 ++ { CVT_95_addLASX256AsmRegOperands, 1, CVT_95_addImmOperands, 2, CVT_Done }, ++ // Convert__LASX256AsmReg1_0__ConstantSImm10_01_1 ++ { CVT_95_addLASX256AsmRegOperands, 1, CVT_95_addConstantSImmOperands_LT_10_44__32_0_GT_, 2, CVT_Done }, ++ // Convert__LASX256AsmReg1_0__MemOffsetSimm9_32_1 ++ { CVT_95_addLASX256AsmRegOperands, 1, CVT_95_addMemOperands, 2, CVT_Done }, ++ // Convert__LASX256AsmReg1_0__MemOffsetSimm11_12_1 ++ { CVT_95_addLASX256AsmRegOperands, 1, CVT_95_addMemOperands, 2, CVT_Done }, ++ // Convert__LASX256AsmReg1_0__MemOffsetSimm10_22_1 ++ { CVT_95_addLASX256AsmRegOperands, 1, CVT_95_addMemOperands, 2, CVT_Done }, ++ // Convert__LASX256AsmReg1_0__GPR32AsmReg1_1__GPR64AsmReg1_2 ++ { CVT_95_addLASX256AsmRegOperands, 1, CVT_95_addGPR32AsmRegOperands, 2, CVT_95_addGPR64AsmRegOperands, 3, CVT_Done }, ++ // Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__SImm51_2 ++ { CVT_95_addLASX256AsmRegOperands, 1, CVT_95_addLASX256AsmRegOperands, 2, CVT_95_addImmOperands, 3, CVT_Done }, ++ // Convert__GPR64AsmReg1_0__LASX256AsmReg1_1__ConstantUImm2_01_2 ++ { CVT_95_addGPR64AsmRegOperands, 1, CVT_95_addLASX256AsmRegOperands, 2, CVT_95_addConstantUImmOperands_LT_2_44__32_0_GT_, 3, CVT_Done }, ++ // Convert__GPR32AsmReg1_0__LASX256AsmReg1_1__ConstantUImm3_01_2 ++ { CVT_95_addGPR32AsmRegOperands, 1, CVT_95_addLASX256AsmRegOperands, 2, CVT_95_addConstantUImmOperands_LT_3_44__32_0_GT_, 3, CVT_Done }, ++ // Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__ConstantUImm1_01_2 ++ { CVT_95_addLASX256AsmRegOperands, 1, CVT_95_addLASX256AsmRegOperands, 2, CVT_95_addConstantUImmOperands_LT_1_44__32_0_GT_, 3, CVT_Done }, ++ // Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm21_2 ++ { CVT_95_addLASX256AsmRegOperands, 1, CVT_95_addLASX256AsmRegOperands, 2, CVT_95_addUImmOperands_LT_2_GT_, 3, CVT_Done }, ++ // Convert__LASX256AsmReg1_0__GPR32AsmReg1_1 ++ { CVT_95_addLASX256AsmRegOperands, 1, CVT_95_addGPR32AsmRegOperands, 2, CVT_Done }, ++ // Convert__LASX256AsmReg1_0__GPR64AsmReg1_1 ++ { CVT_95_addLASX256AsmRegOperands, 1, CVT_95_addGPR64AsmRegOperands, 2, CVT_Done }, ++ // Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__GPR32AsmReg1_2 ++ { CVT_95_addLASX256AsmRegOperands, 1, CVT_95_addLASX256AsmRegOperands, 2, CVT_95_addGPR32AsmRegOperands, 3, CVT_Done }, ++ // Convert__FCFRAsmReg1_0__LASX256AsmReg1_1 ++ { CVT_95_addFCFRAsmRegOperands, 1, CVT_95_addLASX256AsmRegOperands, 2, CVT_Done }, ++ // Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__ConstantUImm4_01_2 ++ { CVT_95_addLASX256AsmRegOperands, 1, CVT_Tied, Tie0_1_1, CVT_95_addLASX256AsmRegOperands, 2, CVT_95_addConstantUImmOperands_LT_4_44__32_0_GT_, 3, CVT_Done }, ++ // Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__ConstantUImm7_01_2 ++ { CVT_95_addLASX256AsmRegOperands, 1, CVT_Tied, Tie0_1_1, CVT_95_addLASX256AsmRegOperands, 2, CVT_95_addConstantUImmOperands_LT_7_44__32_0_GT_, 3, CVT_Done }, ++ // Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__UImm61_2 ++ { CVT_95_addLASX256AsmRegOperands, 1, CVT_Tied, Tie0_1_1, CVT_95_addLASX256AsmRegOperands, 2, CVT_95_addUImmOperands_LT_16_GT_, 3, CVT_Done }, ++ // Convert__LASX256AsmReg1_0__MemOffsetSimm122_1 ++ { CVT_95_addLASX256AsmRegOperands, 1, CVT_95_addMemOperands, 2, CVT_Done }, ++ // Convert__LASX256AsmReg1_0__GPR32AsmReg1_1__SImm81_2__UImm51_3 ++ { CVT_95_addLASX256AsmRegOperands, 1, CVT_95_addGPR32AsmRegOperands, 2, CVT_95_addImmOperands, 3, CVT_95_addUImmOperands_LT_5_GT_, 4, CVT_Done }, ++ // Convert__LASX256AsmReg1_0__GPR32AsmReg1_1__Simm8_Lsl31_2__UImm21_3 ++ { CVT_95_addLASX256AsmRegOperands, 1, CVT_95_addGPR32AsmRegOperands, 2, CVT_95_addImmOperands, 3, CVT_95_addUImmOperands_LT_2_GT_, 4, CVT_Done }, ++ // Convert__LASX256AsmReg1_0__GPR32AsmReg1_1__Simm8_Lsl11_2__ConstantUImm4_01_3 ++ { CVT_95_addLASX256AsmRegOperands, 1, CVT_95_addGPR32AsmRegOperands, 2, CVT_95_addImmOperands, 3, CVT_95_addConstantUImmOperands_LT_4_44__32_0_GT_, 4, CVT_Done }, ++ // Convert__LASX256AsmReg1_0__GPR32AsmReg1_1__Simm8_Lsl21_2__UImm31_3 ++ { CVT_95_addLASX256AsmRegOperands, 1, CVT_95_addGPR32AsmRegOperands, 2, CVT_95_addImmOperands, 3, CVT_95_addUImmOperands_LT_3_GT_, 4, CVT_Done }, ++}; ++ ++void LoongArchAsmParser:: ++convertToMCInst(unsigned Kind, MCInst &Inst, unsigned Opcode, ++ const OperandVector &Operands) { ++ assert(Kind < CVT_NUM_SIGNATURES && "Invalid signature!"); ++ const uint8_t *Converter = ConversionTable[Kind]; ++ unsigned OpIdx; ++ Inst.setOpcode(Opcode); ++ for (const uint8_t *p = Converter; *p; p+= 2) { ++ OpIdx = *(p + 1); ++ switch (*p) { ++ default: llvm_unreachable("invalid conversion entry!"); ++ case CVT_Reg: ++ static_cast(*Operands[OpIdx]).addRegOperands(Inst, 1); ++ break; ++ case CVT_Tied: { ++ assert(OpIdx < (size_t)(std::end(TiedAsmOperandTable) - ++ std::begin(TiedAsmOperandTable)) && ++ "Tied operand not found"); ++ unsigned TiedResOpnd = TiedAsmOperandTable[OpIdx][0]; ++ if (TiedResOpnd != (uint8_t) -1) ++ Inst.addOperand(Inst.getOperand(TiedResOpnd)); ++ break; ++ } ++ case CVT_95_addGPR64AsmRegOperands: ++ static_cast(*Operands[OpIdx]).addGPR64AsmRegOperands(Inst, 1); ++ break; ++ case CVT_95_addGPR32AsmRegOperands: ++ static_cast(*Operands[OpIdx]).addGPR32AsmRegOperands(Inst, 1); ++ break; ++ case CVT_95_addImmOperands: ++ static_cast(*Operands[OpIdx]).addImmOperands(Inst, 1); ++ break; ++ case CVT_95_addConstantUImmOperands_LT_2_44__32_1_GT_: ++ static_cast(*Operands[OpIdx]).addConstantUImmOperands<2, 1>(Inst, 1); ++ break; ++ case CVT_95_addMemOperands: ++ static_cast(*Operands[OpIdx]).addMemOperands(Inst, 2); ++ break; ++ case CVT_95_addUImmOperands_LT_12_GT_: ++ static_cast(*Operands[OpIdx]).addUImmOperands<12>(Inst, 1); ++ break; ++ case CVT_95_addFCFRAsmRegOperands: ++ static_cast(*Operands[OpIdx]).addFCFRAsmRegOperands(Inst, 1); ++ break; ++ case CVT_imm_95_0: ++ Inst.addOperand(MCOperand::createImm(0)); ++ break; ++ case CVT_95_addUImmOperands_LT_15_GT_: ++ static_cast(*Operands[OpIdx]).addUImmOperands<15>(Inst, 1); ++ break; ++ case CVT_95_addUImmOperands_LT_16_GT_: ++ static_cast(*Operands[OpIdx]).addUImmOperands<16>(Inst, 1); ++ break; ++ case CVT_95_addUImmOperands_LT_5_GT_: ++ static_cast(*Operands[OpIdx]).addUImmOperands<5>(Inst, 1); ++ break; ++ case CVT_95_addUImmOperands_LT_3_GT_: ++ static_cast(*Operands[OpIdx]).addUImmOperands<3>(Inst, 1); ++ break; ++ case CVT_95_addUImmOperands_LT_2_GT_: ++ static_cast(*Operands[OpIdx]).addUImmOperands<2>(Inst, 1); ++ break; ++ case CVT_95_addUImmOperands_LT_14_GT_: ++ static_cast(*Operands[OpIdx]).addUImmOperands<14>(Inst, 1); ++ break; ++ case CVT_95_addFGR64AsmRegOperands: ++ static_cast(*Operands[OpIdx]).addFGR64AsmRegOperands(Inst, 1); ++ break; ++ case CVT_95_addFGR32AsmRegOperands: ++ static_cast(*Operands[OpIdx]).addFGR32AsmRegOperands(Inst, 1); ++ break; ++ case CVT_regZERO_64: ++ Inst.addOperand(MCOperand::createReg(LoongArch::ZERO_64)); ++ break; ++ case CVT_95_addUImmOperands_LT_8_GT_: ++ static_cast(*Operands[OpIdx]).addUImmOperands<8>(Inst, 1); ++ break; ++ case CVT_95_addConstantUImmOperands_LT_32_GT_: ++ static_cast(*Operands[OpIdx]).addConstantUImmOperands<32>(Inst, 1); ++ break; ++ case CVT_regZERO: ++ Inst.addOperand(MCOperand::createReg(LoongArch::ZERO)); ++ break; ++ case CVT_95_addFCSRAsmRegOperands: ++ static_cast(*Operands[OpIdx]).addFCSRAsmRegOperands(Inst, 1); ++ break; ++ case CVT_95_addLSX128AsmRegOperands: ++ static_cast(*Operands[OpIdx]).addLSX128AsmRegOperands(Inst, 1); ++ break; ++ case CVT_95_addConstantUImmOperands_LT_5_44__32_0_GT_: ++ static_cast(*Operands[OpIdx]).addConstantUImmOperands<5, 0>(Inst, 1); ++ break; ++ case CVT_95_addConstantUImmOperands_LT_8_44__32_0_GT_: ++ static_cast(*Operands[OpIdx]).addConstantUImmOperands<8, 0>(Inst, 1); ++ break; ++ case CVT_95_addConstantUImmOperands_LT_4_44__32_0_GT_: ++ static_cast(*Operands[OpIdx]).addConstantUImmOperands<4, 0>(Inst, 1); ++ break; ++ case CVT_95_addLASX256AsmRegOperands: ++ static_cast(*Operands[OpIdx]).addLASX256AsmRegOperands(Inst, 1); ++ break; ++ case CVT_95_addConstantUImmOperands_LT_1_44__32_0_GT_: ++ static_cast(*Operands[OpIdx]).addConstantUImmOperands<1, 0>(Inst, 1); ++ break; ++ case CVT_95_addConstantSImmOperands_LT_10_44__32_0_GT_: ++ static_cast(*Operands[OpIdx]).addConstantSImmOperands<10, 0>(Inst, 1); ++ break; ++ case CVT_95_addConstantUImmOperands_LT_3_44__32_0_GT_: ++ static_cast(*Operands[OpIdx]).addConstantUImmOperands<3, 0>(Inst, 1); ++ break; ++ case CVT_95_addConstantUImmOperands_LT_2_44__32_0_GT_: ++ static_cast(*Operands[OpIdx]).addConstantUImmOperands<2, 0>(Inst, 1); ++ break; ++ case CVT_95_addConstantUImmOperands_LT_6_44__32_0_GT_: ++ static_cast(*Operands[OpIdx]).addConstantUImmOperands<6, 0>(Inst, 1); ++ break; ++ case CVT_95_addConstantUImmOperands_LT_7_44__32_0_GT_: ++ static_cast(*Operands[OpIdx]).addConstantUImmOperands<7, 0>(Inst, 1); ++ break; ++ } ++ } ++} ++ ++void LoongArchAsmParser:: ++convertToMapAndConstraints(unsigned Kind, ++ const OperandVector &Operands) { ++ assert(Kind < CVT_NUM_SIGNATURES && "Invalid signature!"); ++ unsigned NumMCOperands = 0; ++ const uint8_t *Converter = ConversionTable[Kind]; ++ for (const uint8_t *p = Converter; *p; p+= 2) { ++ switch (*p) { ++ default: llvm_unreachable("invalid conversion entry!"); ++ case CVT_Reg: ++ Operands[*(p + 1)]->setMCOperandNum(NumMCOperands); ++ Operands[*(p + 1)]->setConstraint("r"); ++ ++NumMCOperands; ++ break; ++ case CVT_Tied: ++ ++NumMCOperands; ++ break; ++ case CVT_95_addGPR64AsmRegOperands: ++ Operands[*(p + 1)]->setMCOperandNum(NumMCOperands); ++ Operands[*(p + 1)]->setConstraint("m"); ++ NumMCOperands += 1; ++ break; ++ case CVT_95_addGPR32AsmRegOperands: ++ Operands[*(p + 1)]->setMCOperandNum(NumMCOperands); ++ Operands[*(p + 1)]->setConstraint("m"); ++ NumMCOperands += 1; ++ break; ++ case CVT_95_addImmOperands: ++ Operands[*(p + 1)]->setMCOperandNum(NumMCOperands); ++ Operands[*(p + 1)]->setConstraint("m"); ++ NumMCOperands += 1; ++ break; ++ case CVT_95_addConstantUImmOperands_LT_2_44__32_1_GT_: ++ Operands[*(p + 1)]->setMCOperandNum(NumMCOperands); ++ Operands[*(p + 1)]->setConstraint("m"); ++ NumMCOperands += 1; ++ break; ++ case CVT_95_addMemOperands: ++ Operands[*(p + 1)]->setMCOperandNum(NumMCOperands); ++ Operands[*(p + 1)]->setConstraint("m"); ++ NumMCOperands += 2; ++ break; ++ case CVT_95_addUImmOperands_LT_12_GT_: ++ Operands[*(p + 1)]->setMCOperandNum(NumMCOperands); ++ Operands[*(p + 1)]->setConstraint("m"); ++ NumMCOperands += 1; ++ break; ++ case CVT_95_addFCFRAsmRegOperands: ++ Operands[*(p + 1)]->setMCOperandNum(NumMCOperands); ++ Operands[*(p + 1)]->setConstraint("m"); ++ NumMCOperands += 1; ++ break; ++ case CVT_imm_95_0: ++ Operands[*(p + 1)]->setMCOperandNum(NumMCOperands); ++ Operands[*(p + 1)]->setConstraint(""); ++ ++NumMCOperands; ++ break; ++ case CVT_95_addUImmOperands_LT_15_GT_: ++ Operands[*(p + 1)]->setMCOperandNum(NumMCOperands); ++ Operands[*(p + 1)]->setConstraint("m"); ++ NumMCOperands += 1; ++ break; ++ case CVT_95_addUImmOperands_LT_16_GT_: ++ Operands[*(p + 1)]->setMCOperandNum(NumMCOperands); ++ Operands[*(p + 1)]->setConstraint("m"); ++ NumMCOperands += 1; ++ break; ++ case CVT_95_addUImmOperands_LT_5_GT_: ++ Operands[*(p + 1)]->setMCOperandNum(NumMCOperands); ++ Operands[*(p + 1)]->setConstraint("m"); ++ NumMCOperands += 1; ++ break; ++ case CVT_95_addUImmOperands_LT_3_GT_: ++ Operands[*(p + 1)]->setMCOperandNum(NumMCOperands); ++ Operands[*(p + 1)]->setConstraint("m"); ++ NumMCOperands += 1; ++ break; ++ case CVT_95_addUImmOperands_LT_2_GT_: ++ Operands[*(p + 1)]->setMCOperandNum(NumMCOperands); ++ Operands[*(p + 1)]->setConstraint("m"); ++ NumMCOperands += 1; ++ break; ++ case CVT_95_addUImmOperands_LT_14_GT_: ++ Operands[*(p + 1)]->setMCOperandNum(NumMCOperands); ++ Operands[*(p + 1)]->setConstraint("m"); ++ NumMCOperands += 1; ++ break; ++ case CVT_95_addFGR64AsmRegOperands: ++ Operands[*(p + 1)]->setMCOperandNum(NumMCOperands); ++ Operands[*(p + 1)]->setConstraint("m"); ++ NumMCOperands += 1; ++ break; ++ case CVT_95_addFGR32AsmRegOperands: ++ Operands[*(p + 1)]->setMCOperandNum(NumMCOperands); ++ Operands[*(p + 1)]->setConstraint("m"); ++ NumMCOperands += 1; ++ break; ++ case CVT_regZERO_64: ++ Operands[*(p + 1)]->setMCOperandNum(NumMCOperands); ++ Operands[*(p + 1)]->setConstraint("m"); ++ ++NumMCOperands; ++ break; ++ case CVT_95_addUImmOperands_LT_8_GT_: ++ Operands[*(p + 1)]->setMCOperandNum(NumMCOperands); ++ Operands[*(p + 1)]->setConstraint("m"); ++ NumMCOperands += 1; ++ break; ++ case CVT_95_addConstantUImmOperands_LT_32_GT_: ++ Operands[*(p + 1)]->setMCOperandNum(NumMCOperands); ++ Operands[*(p + 1)]->setConstraint("m"); ++ NumMCOperands += 1; ++ break; ++ case CVT_regZERO: ++ Operands[*(p + 1)]->setMCOperandNum(NumMCOperands); ++ Operands[*(p + 1)]->setConstraint("m"); ++ ++NumMCOperands; ++ break; ++ case CVT_95_addFCSRAsmRegOperands: ++ Operands[*(p + 1)]->setMCOperandNum(NumMCOperands); ++ Operands[*(p + 1)]->setConstraint("m"); ++ NumMCOperands += 1; ++ break; ++ case CVT_95_addLSX128AsmRegOperands: ++ Operands[*(p + 1)]->setMCOperandNum(NumMCOperands); ++ Operands[*(p + 1)]->setConstraint("m"); ++ NumMCOperands += 1; ++ break; ++ case CVT_95_addConstantUImmOperands_LT_5_44__32_0_GT_: ++ Operands[*(p + 1)]->setMCOperandNum(NumMCOperands); ++ Operands[*(p + 1)]->setConstraint("m"); ++ NumMCOperands += 1; ++ break; ++ case CVT_95_addConstantUImmOperands_LT_8_44__32_0_GT_: ++ Operands[*(p + 1)]->setMCOperandNum(NumMCOperands); ++ Operands[*(p + 1)]->setConstraint("m"); ++ NumMCOperands += 1; ++ break; ++ case CVT_95_addConstantUImmOperands_LT_4_44__32_0_GT_: ++ Operands[*(p + 1)]->setMCOperandNum(NumMCOperands); ++ Operands[*(p + 1)]->setConstraint("m"); ++ NumMCOperands += 1; ++ break; ++ case CVT_95_addLASX256AsmRegOperands: ++ Operands[*(p + 1)]->setMCOperandNum(NumMCOperands); ++ Operands[*(p + 1)]->setConstraint("m"); ++ NumMCOperands += 1; ++ break; ++ case CVT_95_addConstantUImmOperands_LT_1_44__32_0_GT_: ++ Operands[*(p + 1)]->setMCOperandNum(NumMCOperands); ++ Operands[*(p + 1)]->setConstraint("m"); ++ NumMCOperands += 1; ++ break; ++ case CVT_95_addConstantSImmOperands_LT_10_44__32_0_GT_: ++ Operands[*(p + 1)]->setMCOperandNum(NumMCOperands); ++ Operands[*(p + 1)]->setConstraint("m"); ++ NumMCOperands += 1; ++ break; ++ case CVT_95_addConstantUImmOperands_LT_3_44__32_0_GT_: ++ Operands[*(p + 1)]->setMCOperandNum(NumMCOperands); ++ Operands[*(p + 1)]->setConstraint("m"); ++ NumMCOperands += 1; ++ break; ++ case CVT_95_addConstantUImmOperands_LT_2_44__32_0_GT_: ++ Operands[*(p + 1)]->setMCOperandNum(NumMCOperands); ++ Operands[*(p + 1)]->setConstraint("m"); ++ NumMCOperands += 1; ++ break; ++ case CVT_95_addConstantUImmOperands_LT_6_44__32_0_GT_: ++ Operands[*(p + 1)]->setMCOperandNum(NumMCOperands); ++ Operands[*(p + 1)]->setConstraint("m"); ++ NumMCOperands += 1; ++ break; ++ case CVT_95_addConstantUImmOperands_LT_7_44__32_0_GT_: ++ Operands[*(p + 1)]->setMCOperandNum(NumMCOperands); ++ Operands[*(p + 1)]->setConstraint("m"); ++ NumMCOperands += 1; ++ break; ++ } ++ } ++} ++ ++namespace { ++ ++/// MatchClassKind - The kinds of classes which participate in ++/// instruction matching. ++enum MatchClassKind { ++ InvalidMatchClass = 0, ++ OptionalMatchClass = 1, ++ MCK_0, // '0' ++ MCK_LAST_TOKEN = MCK_0, ++ MCK_Reg11, // derived register class ++ MCK_SP32, // register class 'SP32' ++ MCK_SP64, // register class 'SP64' ++ MCK_TP32, // register class 'TP32' ++ MCK_TP64, // register class 'TP64' ++ MCK_FCSR, // register class 'FCSR' ++ MCK_FCFR, // register class 'FCFR' ++ MCK_GPRTC64, // register class 'GPRTC64' ++ MCK_FGR32, // register class 'FGR32' ++ MCK_FGR64, // register class 'FGR64' ++ MCK_GPR32, // register class 'GPR32' ++ MCK_GPR64, // register class 'GPR64' ++ MCK_LASX256B, // register class 'LASX256B,LASX256D,LASX256H,LASX256W' ++ MCK_LSX128B, // register class 'LSX128B,LSX128D,LSX128H,LSX128W' ++ MCK_LAST_REGISTER = MCK_LSX128B, ++ MCK_FCFRAsmReg, // user defined class 'FCFRAsmOperand' ++ MCK_FCSRAsmReg, // user defined class 'FCSRAsmOperand' ++ MCK_FGR32AsmReg, // user defined class 'FGR32AsmOperand' ++ MCK_FGR64AsmReg, // user defined class 'FGR64AsmOperand' ++ MCK_GPR32AsmReg, // user defined class 'GPR32AsmOperand' ++ MCK_GPR64AsmReg, // user defined class 'GPR64AsmOperand' ++ MCK_Imm, // user defined class 'ImmAsmOperand' ++ MCK_LASX256AsmReg, // user defined class 'LASX256AsmOperand' ++ MCK_LSX128AsmReg, // user defined class 'LSX128AsmOperand' ++ MCK_AMem, // user defined class 'LoongArchAMemAsmOperand' ++ MCK_JumpTarget, // user defined class 'LoongArchJumpTargetAsmOperand' ++ MCK_MemOffsetSimm10, // user defined class 'LoongArchMemSimm10AsmOperand' ++ MCK_MemOffsetSimm10_2, // user defined class 'LoongArchMemSimm10Lsl2AsmOperand' ++ MCK_MemOffsetSimm11, // user defined class 'LoongArchMemSimm11AsmOperand' ++ MCK_MemOffsetSimm11_1, // user defined class 'LoongArchMemSimm11Lsl1AsmOperand' ++ MCK_MemOffsetSimm12, // user defined class 'LoongArchMemSimm12AsmOperand' ++ MCK_MemOffsetSimm14, // user defined class 'LoongArchMemSimm14AsmOperand' ++ MCK_MemOffsetSimm14_2, // user defined class 'LoongArchMemSimm14Lsl2AsmOperand' ++ MCK_MemOffsetSimm9, // user defined class 'LoongArchMemSimm9AsmOperand' ++ MCK_MemOffsetSimm9_3, // user defined class 'LoongArchMemSimm9Lsl3AsmOperand' ++ MCK_MemOffsetSimmPtr, // user defined class 'LoongArchMemSimmPtrAsmOperand' ++ MCK_Mem, // user defined class 'LoongArchMemAsmOperand' ++ MCK_ConstantImmz, // user defined class 'ConstantImmzAsmOperandClass' ++ MCK_ConstantUImm1_0, // user defined class 'ConstantUImm1AsmOperandClass' ++ MCK_ConstantUImm2_0, // user defined class 'ConstantUImm2AsmOperandClass' ++ MCK_ConstantUImm3_0, // user defined class 'ConstantUImm3AsmOperandClass' ++ MCK_ConstantSImm4_0, // user defined class 'ConstantSImm4AsmOperandClass' ++ MCK_ConstantUImm4_0, // user defined class 'ConstantUImm4AsmOperandClass' ++ MCK_ConstantSImm5_0, // user defined class 'ConstantSImm5AsmOperandClass' ++ MCK_ConstantUImm5_0, // user defined class 'ConstantUImm5AsmOperandClass' ++ MCK_ConstantUImm5_1, // user defined class 'ConstantUImm5Plus1AsmOperandClass' ++ MCK_ConstantUImm5_Plus1_Report_UImm6, // user defined class 'ConstantUImm5Plus1ReportUImm6AsmOperandClass' ++ MCK_ConstantUImm5_32_Norm, // user defined class 'ConstantUImm5Plus32NormalizeAsmOperandClass' ++ MCK_ConstantUImm5_32, // user defined class 'ConstantUImm5Plus32AsmOperandClass' ++ MCK_ConstantUImm5_0_Report_UImm6, // user defined class 'ConstantUImm5ReportUImm6AsmOperandClass' ++ MCK_ConstantUImm5_33, // user defined class 'ConstantUImm5Plus33AsmOperandClass' ++ MCK_ConstantUImmRange2_64, // user defined class 'ConstantUImm5_Range2_64AsmOperandClass' ++ MCK_UImm5Lsl2, // user defined class 'ConstantUImm5Lsl2AsmOperandClass' ++ MCK_ConstantSImm6_0, // user defined class 'ConstantSImm6AsmOperandClass' ++ MCK_ConstantUImm6_0, // user defined class 'ConstantUImm6AsmOperandClass' ++ MCK_UImm6Lsl2, // user defined class 'ConstantUImm6Lsl2AsmOperandClass' ++ MCK_ConstantUImm7_0, // user defined class 'ConstantUImm7AsmOperandClass' ++ MCK_UImm7_N1, // user defined class 'ConstantUImm7Sub1AsmOperandClass' ++ MCK_ConstantUImm8_0, // user defined class 'ConstantUImm8AsmOperandClass' ++ MCK_SImm7Lsl2, // user defined class 'ConstantSImm7Lsl2AsmOperandClass' ++ MCK_ConstantSImm9_0, // user defined class 'ConstantSImm9AsmOperandClass' ++ MCK_ConstantSImm10_0, // user defined class 'ConstantSImm10AsmOperandClass' ++ MCK_ConstantUImm10_0, // user defined class 'ConstantUImm10AsmOperandClass' ++ MCK_SImm10Lsl1, // user defined class 'ConstantSImm10Lsl1AsmOperandClass' ++ MCK_ConstantSImm11_0, // user defined class 'ConstantSImm11AsmOperandClass' ++ MCK_SImm10Lsl2, // user defined class 'ConstantSImm10Lsl2AsmOperandClass' ++ MCK_SImm11Lsl1, // user defined class 'ConstantSImm11Lsl1AsmOperandClass' ++ MCK_SImm9Lsl3, // user defined class 'ConstantSImm9Lsl3AsmOperandClass' ++ MCK_SImm12, // user defined class 'SImm12Operand' ++ MCK_SImm14, // user defined class 'SImm14Operand' ++ MCK_SImm15, // user defined class 'SImm15Operand' ++ MCK_SImm16, // user defined class 'SImm16Operand' ++ MCK_SImm20, // user defined class 'SImm20Operand' ++ MCK_SImm21, // user defined class 'SImm21Operand' ++ MCK_SImm26, // user defined class 'SImm26Operand' ++ MCK_SImm2, // user defined class 'SImm2Operand' ++ MCK_SImm3, // user defined class 'SImm3Operand' ++ MCK_SImm5, // user defined class 'SImm5Operand' ++ MCK_SImm8, // user defined class 'SImm8Operand' ++ MCK_Simm10_Lsl2, // user defined class 'Simm10Lsl2AsmOperand' ++ MCK_Simm11_Lsl1, // user defined class 'Simm11Lsl1AsmOperand' ++ MCK_Simm8_Lsl1, // user defined class 'Simm8Lsl1AsmOperand' ++ MCK_Simm8_Lsl2, // user defined class 'Simm8Lsl2AsmOperand' ++ MCK_Simm8_Lsl3, // user defined class 'Simm8Lsl3AsmOperand' ++ MCK_Simm9_Lsl3, // user defined class 'Simm9Lsl3AsmOperand' ++ MCK_UImm12, // user defined class 'UImm12Operand' ++ MCK_UImm14, // user defined class 'UImm14Operand' ++ MCK_UImm15, // user defined class 'UImm15Operand' ++ MCK_UImm1, // user defined class 'UImm1Operand' ++ MCK_UImm2, // user defined class 'UImm2Operand' ++ MCK_SImm14Lsl2, // user defined class 'ConstantSImm14Lsl2AsmOperandClass' ++ MCK_SImm12_Relaxed, // user defined class 'SImm12RelaxedAsmOperandClass' ++ MCK_SImm16_Relaxed, // user defined class 'SImm16RelaxedAsmOperandClass' ++ MCK_ConstantUImm2_1, // user defined class 'ConstantUImm2Plus1AsmOperandClass' ++ MCK_UImm12_Relaxed, // user defined class 'UImm12RelaxedAsmOperandClass' ++ MCK_UImm16_Relaxed, // user defined class 'UImm16RelaxedAsmOperandClass' ++ MCK_ConstantUImm20_0, // user defined class 'ConstantUImm20AsmOperandClass' ++ MCK_ConstantUImm26_0, // user defined class 'ConstantUImm26AsmOperandClass' ++ MCK_SImm32, // user defined class 'SImm32AsmOperandClass' ++ MCK_SImm32_Relaxed, // user defined class 'SImm32RelaxedAsmOperandClass' ++ MCK_UImm32_Coerced, // user defined class 'UImm32CoercedAsmOperandClass' ++ MCK_UImm3, // user defined class 'UImm3Operand' ++ MCK_UImm4, // user defined class 'UImm4Operand' ++ MCK_UImm5, // user defined class 'UImm5Operand' ++ MCK_UImm6, // user defined class 'UImm6Operand' ++ MCK_UImm7, // user defined class 'UImm7Operand' ++ MCK_UImm8, // user defined class 'UImm8Operand' ++ NumMatchClassKinds ++}; ++ ++} // end anonymous namespace ++ ++static unsigned getDiagKindFromRegisterClass(MatchClassKind RegisterClass) { ++ return MCTargetAsmParser::Match_InvalidOperand; ++} ++ ++static MatchClassKind matchTokenString(StringRef Name) { ++ switch (Name.size()) { ++ default: break; ++ case 1: // 1 string to match. ++ if (Name[0] != '0') ++ break; ++ return MCK_0; // "0" ++ } ++ return InvalidMatchClass; ++} ++ ++/// isSubclass - Compute whether \p A is a subclass of \p B. ++static bool isSubclass(MatchClassKind A, MatchClassKind B) { ++ if (A == B) ++ return true; ++ ++ switch (A) { ++ default: ++ return false; ++ ++ case MCK_Reg11: ++ return B == MCK_FCSR; ++ ++ case MCK_SP32: ++ return B == MCK_GPR32; ++ ++ case MCK_SP64: ++ return B == MCK_GPR64; ++ ++ case MCK_TP32: ++ return B == MCK_GPR32; ++ ++ case MCK_TP64: ++ return B == MCK_GPR64; ++ ++ case MCK_GPRTC64: ++ return B == MCK_GPR64; ++ ++ case MCK_MemOffsetSimm10: ++ return B == MCK_Mem; ++ ++ case MCK_MemOffsetSimm10_2: ++ return B == MCK_Mem; ++ ++ case MCK_MemOffsetSimm11: ++ return B == MCK_Mem; ++ ++ case MCK_MemOffsetSimm11_1: ++ return B == MCK_Mem; ++ ++ case MCK_MemOffsetSimm12: ++ return B == MCK_Mem; ++ ++ case MCK_MemOffsetSimm14: ++ return B == MCK_Mem; ++ ++ case MCK_MemOffsetSimm14_2: ++ return B == MCK_Mem; ++ ++ case MCK_MemOffsetSimm9: ++ return B == MCK_Mem; ++ ++ case MCK_MemOffsetSimm9_3: ++ return B == MCK_Mem; ++ ++ case MCK_MemOffsetSimmPtr: ++ return B == MCK_Mem; ++ ++ case MCK_ConstantImmz: ++ switch (B) { ++ default: return false; ++ case MCK_ConstantUImm1_0: return true; ++ case MCK_ConstantUImm2_0: return true; ++ case MCK_ConstantUImm3_0: return true; ++ case MCK_ConstantSImm4_0: return true; ++ case MCK_ConstantUImm4_0: return true; ++ case MCK_ConstantSImm5_0: return true; ++ case MCK_ConstantUImm5_0: return true; ++ case MCK_ConstantUImm5_1: return true; ++ case MCK_ConstantUImm5_Plus1_Report_UImm6: return true; ++ case MCK_ConstantUImm5_32_Norm: return true; ++ case MCK_ConstantUImm5_32: return true; ++ case MCK_ConstantUImm5_0_Report_UImm6: return true; ++ case MCK_ConstantUImm5_33: return true; ++ case MCK_ConstantUImmRange2_64: return true; ++ case MCK_UImm5Lsl2: return true; ++ case MCK_ConstantSImm6_0: return true; ++ case MCK_ConstantUImm6_0: return true; ++ case MCK_UImm6Lsl2: return true; ++ case MCK_ConstantUImm7_0: return true; ++ case MCK_UImm7_N1: return true; ++ case MCK_ConstantUImm8_0: return true; ++ case MCK_SImm7Lsl2: return true; ++ case MCK_ConstantSImm9_0: return true; ++ case MCK_ConstantSImm10_0: return true; ++ case MCK_ConstantUImm10_0: return true; ++ case MCK_SImm10Lsl1: return true; ++ case MCK_ConstantSImm11_0: return true; ++ case MCK_SImm10Lsl2: return true; ++ case MCK_SImm12: return true; ++ } ++ ++ case MCK_ConstantUImm1_0: ++ switch (B) { ++ default: return false; ++ case MCK_ConstantUImm2_0: return true; ++ case MCK_ConstantUImm3_0: return true; ++ case MCK_ConstantSImm4_0: return true; ++ case MCK_ConstantUImm4_0: return true; ++ case MCK_ConstantSImm5_0: return true; ++ case MCK_ConstantUImm5_0: return true; ++ case MCK_ConstantUImm5_1: return true; ++ case MCK_ConstantUImm5_Plus1_Report_UImm6: return true; ++ case MCK_ConstantUImm5_32_Norm: return true; ++ case MCK_ConstantUImm5_32: return true; ++ case MCK_ConstantUImm5_0_Report_UImm6: return true; ++ case MCK_ConstantUImm5_33: return true; ++ case MCK_ConstantUImmRange2_64: return true; ++ case MCK_UImm5Lsl2: return true; ++ case MCK_ConstantSImm6_0: return true; ++ case MCK_ConstantUImm6_0: return true; ++ case MCK_UImm6Lsl2: return true; ++ case MCK_ConstantUImm7_0: return true; ++ case MCK_UImm7_N1: return true; ++ case MCK_ConstantUImm8_0: return true; ++ case MCK_SImm7Lsl2: return true; ++ case MCK_ConstantSImm9_0: return true; ++ case MCK_ConstantSImm10_0: return true; ++ case MCK_ConstantUImm10_0: return true; ++ case MCK_SImm10Lsl1: return true; ++ case MCK_ConstantSImm11_0: return true; ++ case MCK_SImm10Lsl2: return true; ++ case MCK_SImm12: return true; ++ } ++ ++ case MCK_ConstantUImm2_0: ++ switch (B) { ++ default: return false; ++ case MCK_ConstantUImm3_0: return true; ++ case MCK_ConstantSImm4_0: return true; ++ case MCK_ConstantUImm4_0: return true; ++ case MCK_ConstantSImm5_0: return true; ++ case MCK_ConstantUImm5_0: return true; ++ case MCK_ConstantUImm5_1: return true; ++ case MCK_ConstantUImm5_Plus1_Report_UImm6: return true; ++ case MCK_ConstantUImm5_32_Norm: return true; ++ case MCK_ConstantUImm5_32: return true; ++ case MCK_ConstantUImm5_0_Report_UImm6: return true; ++ case MCK_ConstantUImm5_33: return true; ++ case MCK_ConstantUImmRange2_64: return true; ++ case MCK_UImm5Lsl2: return true; ++ case MCK_ConstantSImm6_0: return true; ++ case MCK_ConstantUImm6_0: return true; ++ case MCK_UImm6Lsl2: return true; ++ case MCK_ConstantUImm7_0: return true; ++ case MCK_UImm7_N1: return true; ++ case MCK_ConstantUImm8_0: return true; ++ case MCK_SImm7Lsl2: return true; ++ case MCK_ConstantSImm9_0: return true; ++ case MCK_ConstantSImm10_0: return true; ++ case MCK_ConstantUImm10_0: return true; ++ case MCK_SImm10Lsl1: return true; ++ case MCK_ConstantSImm11_0: return true; ++ case MCK_SImm10Lsl2: return true; ++ case MCK_SImm12: return true; ++ } ++ ++ case MCK_ConstantUImm3_0: ++ switch (B) { ++ default: return false; ++ case MCK_ConstantSImm4_0: return true; ++ case MCK_ConstantUImm4_0: return true; ++ case MCK_ConstantSImm5_0: return true; ++ case MCK_ConstantUImm5_0: return true; ++ case MCK_ConstantUImm5_1: return true; ++ case MCK_ConstantUImm5_Plus1_Report_UImm6: return true; ++ case MCK_ConstantUImm5_32_Norm: return true; ++ case MCK_ConstantUImm5_32: return true; ++ case MCK_ConstantUImm5_0_Report_UImm6: return true; ++ case MCK_ConstantUImm5_33: return true; ++ case MCK_ConstantUImmRange2_64: return true; ++ case MCK_UImm5Lsl2: return true; ++ case MCK_ConstantSImm6_0: return true; ++ case MCK_ConstantUImm6_0: return true; ++ case MCK_UImm6Lsl2: return true; ++ case MCK_ConstantUImm7_0: return true; ++ case MCK_UImm7_N1: return true; ++ case MCK_ConstantUImm8_0: return true; ++ case MCK_SImm7Lsl2: return true; ++ case MCK_ConstantSImm9_0: return true; ++ case MCK_ConstantSImm10_0: return true; ++ case MCK_ConstantUImm10_0: return true; ++ case MCK_SImm10Lsl1: return true; ++ case MCK_ConstantSImm11_0: return true; ++ case MCK_SImm10Lsl2: return true; ++ case MCK_SImm12: return true; ++ } ++ ++ case MCK_ConstantSImm4_0: ++ switch (B) { ++ default: return false; ++ case MCK_ConstantUImm4_0: return true; ++ case MCK_ConstantSImm5_0: return true; ++ case MCK_ConstantUImm5_0: return true; ++ case MCK_ConstantUImm5_1: return true; ++ case MCK_ConstantUImm5_Plus1_Report_UImm6: return true; ++ case MCK_ConstantUImm5_32_Norm: return true; ++ case MCK_ConstantUImm5_32: return true; ++ case MCK_ConstantUImm5_0_Report_UImm6: return true; ++ case MCK_ConstantUImm5_33: return true; ++ case MCK_ConstantUImmRange2_64: return true; ++ case MCK_UImm5Lsl2: return true; ++ case MCK_ConstantSImm6_0: return true; ++ case MCK_ConstantUImm6_0: return true; ++ case MCK_UImm6Lsl2: return true; ++ case MCK_ConstantUImm7_0: return true; ++ case MCK_UImm7_N1: return true; ++ case MCK_ConstantUImm8_0: return true; ++ case MCK_SImm7Lsl2: return true; ++ case MCK_ConstantSImm9_0: return true; ++ case MCK_ConstantSImm10_0: return true; ++ case MCK_ConstantUImm10_0: return true; ++ case MCK_SImm10Lsl1: return true; ++ case MCK_ConstantSImm11_0: return true; ++ case MCK_SImm10Lsl2: return true; ++ case MCK_SImm12: return true; ++ } ++ ++ case MCK_ConstantUImm4_0: ++ switch (B) { ++ default: return false; ++ case MCK_ConstantSImm5_0: return true; ++ case MCK_ConstantUImm5_0: return true; ++ case MCK_ConstantUImm5_1: return true; ++ case MCK_ConstantUImm5_Plus1_Report_UImm6: return true; ++ case MCK_ConstantUImm5_32_Norm: return true; ++ case MCK_ConstantUImm5_32: return true; ++ case MCK_ConstantUImm5_0_Report_UImm6: return true; ++ case MCK_ConstantUImm5_33: return true; ++ case MCK_ConstantUImmRange2_64: return true; ++ case MCK_UImm5Lsl2: return true; ++ case MCK_ConstantSImm6_0: return true; ++ case MCK_ConstantUImm6_0: return true; ++ case MCK_UImm6Lsl2: return true; ++ case MCK_ConstantUImm7_0: return true; ++ case MCK_UImm7_N1: return true; ++ case MCK_ConstantUImm8_0: return true; ++ case MCK_SImm7Lsl2: return true; ++ case MCK_ConstantSImm9_0: return true; ++ case MCK_ConstantSImm10_0: return true; ++ case MCK_ConstantUImm10_0: return true; ++ case MCK_SImm10Lsl1: return true; ++ case MCK_ConstantSImm11_0: return true; ++ case MCK_SImm10Lsl2: return true; ++ case MCK_SImm12: return true; ++ } ++ ++ case MCK_ConstantSImm5_0: ++ switch (B) { ++ default: return false; ++ case MCK_ConstantUImm5_0: return true; ++ case MCK_ConstantUImm5_1: return true; ++ case MCK_ConstantUImm5_Plus1_Report_UImm6: return true; ++ case MCK_ConstantUImm5_32_Norm: return true; ++ case MCK_ConstantUImm5_32: return true; ++ case MCK_ConstantUImm5_0_Report_UImm6: return true; ++ case MCK_ConstantUImm5_33: return true; ++ case MCK_ConstantUImmRange2_64: return true; ++ case MCK_UImm5Lsl2: return true; ++ case MCK_ConstantSImm6_0: return true; ++ case MCK_ConstantUImm6_0: return true; ++ case MCK_UImm6Lsl2: return true; ++ case MCK_ConstantUImm7_0: return true; ++ case MCK_UImm7_N1: return true; ++ case MCK_ConstantUImm8_0: return true; ++ case MCK_SImm7Lsl2: return true; ++ case MCK_ConstantSImm9_0: return true; ++ case MCK_ConstantSImm10_0: return true; ++ case MCK_ConstantUImm10_0: return true; ++ case MCK_SImm10Lsl1: return true; ++ case MCK_ConstantSImm11_0: return true; ++ case MCK_SImm10Lsl2: return true; ++ case MCK_SImm12: return true; ++ } ++ ++ case MCK_ConstantUImm5_0: ++ switch (B) { ++ default: return false; ++ case MCK_ConstantUImm5_1: return true; ++ case MCK_ConstantUImm5_Plus1_Report_UImm6: return true; ++ case MCK_ConstantUImm5_32_Norm: return true; ++ case MCK_ConstantUImm5_32: return true; ++ case MCK_ConstantUImm5_0_Report_UImm6: return true; ++ case MCK_ConstantUImm5_33: return true; ++ case MCK_ConstantUImmRange2_64: return true; ++ case MCK_UImm5Lsl2: return true; ++ case MCK_ConstantSImm6_0: return true; ++ case MCK_ConstantUImm6_0: return true; ++ case MCK_UImm6Lsl2: return true; ++ case MCK_ConstantUImm7_0: return true; ++ case MCK_UImm7_N1: return true; ++ case MCK_ConstantUImm8_0: return true; ++ case MCK_SImm7Lsl2: return true; ++ case MCK_ConstantSImm9_0: return true; ++ case MCK_ConstantSImm10_0: return true; ++ case MCK_ConstantUImm10_0: return true; ++ case MCK_SImm10Lsl1: return true; ++ case MCK_ConstantSImm11_0: return true; ++ case MCK_SImm10Lsl2: return true; ++ case MCK_SImm12: return true; ++ } ++ ++ case MCK_ConstantUImm5_1: ++ switch (B) { ++ default: return false; ++ case MCK_ConstantUImm5_Plus1_Report_UImm6: return true; ++ case MCK_ConstantUImm5_32_Norm: return true; ++ case MCK_ConstantUImm5_32: return true; ++ case MCK_ConstantUImm5_0_Report_UImm6: return true; ++ case MCK_ConstantUImm5_33: return true; ++ case MCK_ConstantUImmRange2_64: return true; ++ case MCK_UImm5Lsl2: return true; ++ case MCK_ConstantSImm6_0: return true; ++ case MCK_ConstantUImm6_0: return true; ++ case MCK_UImm6Lsl2: return true; ++ case MCK_ConstantUImm7_0: return true; ++ case MCK_UImm7_N1: return true; ++ case MCK_ConstantUImm8_0: return true; ++ case MCK_SImm7Lsl2: return true; ++ case MCK_ConstantSImm9_0: return true; ++ case MCK_ConstantSImm10_0: return true; ++ case MCK_ConstantUImm10_0: return true; ++ case MCK_SImm10Lsl1: return true; ++ case MCK_ConstantSImm11_0: return true; ++ case MCK_SImm10Lsl2: return true; ++ case MCK_SImm12: return true; ++ } ++ ++ case MCK_ConstantUImm5_Plus1_Report_UImm6: ++ switch (B) { ++ default: return false; ++ case MCK_ConstantUImm5_32_Norm: return true; ++ case MCK_ConstantUImm5_32: return true; ++ case MCK_ConstantUImm5_0_Report_UImm6: return true; ++ case MCK_ConstantUImm5_33: return true; ++ case MCK_ConstantUImmRange2_64: return true; ++ case MCK_UImm5Lsl2: return true; ++ case MCK_ConstantSImm6_0: return true; ++ case MCK_ConstantUImm6_0: return true; ++ case MCK_UImm6Lsl2: return true; ++ case MCK_ConstantUImm7_0: return true; ++ case MCK_UImm7_N1: return true; ++ case MCK_ConstantUImm8_0: return true; ++ case MCK_SImm7Lsl2: return true; ++ case MCK_ConstantSImm9_0: return true; ++ case MCK_ConstantSImm10_0: return true; ++ case MCK_ConstantUImm10_0: return true; ++ case MCK_SImm10Lsl1: return true; ++ case MCK_ConstantSImm11_0: return true; ++ case MCK_SImm10Lsl2: return true; ++ case MCK_SImm12: return true; ++ } ++ ++ case MCK_ConstantUImm5_32_Norm: ++ switch (B) { ++ default: return false; ++ case MCK_ConstantUImm5_32: return true; ++ case MCK_ConstantUImm5_0_Report_UImm6: return true; ++ case MCK_ConstantUImm5_33: return true; ++ case MCK_ConstantUImmRange2_64: return true; ++ case MCK_UImm5Lsl2: return true; ++ case MCK_ConstantSImm6_0: return true; ++ case MCK_ConstantUImm6_0: return true; ++ case MCK_UImm6Lsl2: return true; ++ case MCK_ConstantUImm7_0: return true; ++ case MCK_UImm7_N1: return true; ++ case MCK_ConstantUImm8_0: return true; ++ case MCK_SImm7Lsl2: return true; ++ case MCK_ConstantSImm9_0: return true; ++ case MCK_ConstantSImm10_0: return true; ++ case MCK_ConstantUImm10_0: return true; ++ case MCK_SImm10Lsl1: return true; ++ case MCK_ConstantSImm11_0: return true; ++ case MCK_SImm10Lsl2: return true; ++ case MCK_SImm12: return true; ++ } ++ ++ case MCK_ConstantUImm5_32: ++ switch (B) { ++ default: return false; ++ case MCK_ConstantUImm5_0_Report_UImm6: return true; ++ case MCK_ConstantUImm5_33: return true; ++ case MCK_ConstantUImmRange2_64: return true; ++ case MCK_UImm5Lsl2: return true; ++ case MCK_ConstantSImm6_0: return true; ++ case MCK_ConstantUImm6_0: return true; ++ case MCK_UImm6Lsl2: return true; ++ case MCK_ConstantUImm7_0: return true; ++ case MCK_UImm7_N1: return true; ++ case MCK_ConstantUImm8_0: return true; ++ case MCK_SImm7Lsl2: return true; ++ case MCK_ConstantSImm9_0: return true; ++ case MCK_ConstantSImm10_0: return true; ++ case MCK_ConstantUImm10_0: return true; ++ case MCK_SImm10Lsl1: return true; ++ case MCK_ConstantSImm11_0: return true; ++ case MCK_SImm10Lsl2: return true; ++ case MCK_SImm12: return true; ++ } ++ ++ case MCK_ConstantUImm5_0_Report_UImm6: ++ switch (B) { ++ default: return false; ++ case MCK_ConstantUImm5_33: return true; ++ case MCK_ConstantUImmRange2_64: return true; ++ case MCK_UImm5Lsl2: return true; ++ case MCK_ConstantSImm6_0: return true; ++ case MCK_ConstantUImm6_0: return true; ++ case MCK_UImm6Lsl2: return true; ++ case MCK_ConstantUImm7_0: return true; ++ case MCK_UImm7_N1: return true; ++ case MCK_ConstantUImm8_0: return true; ++ case MCK_SImm7Lsl2: return true; ++ case MCK_ConstantSImm9_0: return true; ++ case MCK_ConstantSImm10_0: return true; ++ case MCK_ConstantUImm10_0: return true; ++ case MCK_SImm10Lsl1: return true; ++ case MCK_ConstantSImm11_0: return true; ++ case MCK_SImm10Lsl2: return true; ++ case MCK_SImm12: return true; ++ } ++ ++ case MCK_ConstantUImm5_33: ++ switch (B) { ++ default: return false; ++ case MCK_ConstantUImmRange2_64: return true; ++ case MCK_UImm5Lsl2: return true; ++ case MCK_ConstantSImm6_0: return true; ++ case MCK_ConstantUImm6_0: return true; ++ case MCK_UImm6Lsl2: return true; ++ case MCK_ConstantUImm7_0: return true; ++ case MCK_UImm7_N1: return true; ++ case MCK_ConstantUImm8_0: return true; ++ case MCK_SImm7Lsl2: return true; ++ case MCK_ConstantSImm9_0: return true; ++ case MCK_ConstantSImm10_0: return true; ++ case MCK_ConstantUImm10_0: return true; ++ case MCK_SImm10Lsl1: return true; ++ case MCK_ConstantSImm11_0: return true; ++ case MCK_SImm10Lsl2: return true; ++ case MCK_SImm12: return true; ++ } ++ ++ case MCK_ConstantUImmRange2_64: ++ switch (B) { ++ default: return false; ++ case MCK_UImm5Lsl2: return true; ++ case MCK_ConstantSImm6_0: return true; ++ case MCK_ConstantUImm6_0: return true; ++ case MCK_UImm6Lsl2: return true; ++ case MCK_ConstantUImm7_0: return true; ++ case MCK_UImm7_N1: return true; ++ case MCK_ConstantUImm8_0: return true; ++ case MCK_SImm7Lsl2: return true; ++ case MCK_ConstantSImm9_0: return true; ++ case MCK_ConstantSImm10_0: return true; ++ case MCK_ConstantUImm10_0: return true; ++ case MCK_SImm10Lsl1: return true; ++ case MCK_ConstantSImm11_0: return true; ++ case MCK_SImm10Lsl2: return true; ++ case MCK_SImm12: return true; ++ } ++ ++ case MCK_UImm5Lsl2: ++ switch (B) { ++ default: return false; ++ case MCK_ConstantSImm6_0: return true; ++ case MCK_ConstantUImm6_0: return true; ++ case MCK_UImm6Lsl2: return true; ++ case MCK_ConstantUImm7_0: return true; ++ case MCK_UImm7_N1: return true; ++ case MCK_ConstantUImm8_0: return true; ++ case MCK_SImm7Lsl2: return true; ++ case MCK_ConstantSImm9_0: return true; ++ case MCK_ConstantSImm10_0: return true; ++ case MCK_ConstantUImm10_0: return true; ++ case MCK_SImm10Lsl1: return true; ++ case MCK_ConstantSImm11_0: return true; ++ case MCK_SImm10Lsl2: return true; ++ case MCK_SImm12: return true; ++ } ++ ++ case MCK_ConstantSImm6_0: ++ switch (B) { ++ default: return false; ++ case MCK_ConstantUImm6_0: return true; ++ case MCK_UImm6Lsl2: return true; ++ case MCK_ConstantUImm7_0: return true; ++ case MCK_UImm7_N1: return true; ++ case MCK_ConstantUImm8_0: return true; ++ case MCK_SImm7Lsl2: return true; ++ case MCK_ConstantSImm9_0: return true; ++ case MCK_ConstantSImm10_0: return true; ++ case MCK_ConstantUImm10_0: return true; ++ case MCK_SImm10Lsl1: return true; ++ case MCK_ConstantSImm11_0: return true; ++ case MCK_SImm10Lsl2: return true; ++ case MCK_SImm12: return true; ++ } ++ ++ case MCK_ConstantUImm6_0: ++ switch (B) { ++ default: return false; ++ case MCK_UImm6Lsl2: return true; ++ case MCK_ConstantUImm7_0: return true; ++ case MCK_UImm7_N1: return true; ++ case MCK_ConstantUImm8_0: return true; ++ case MCK_SImm7Lsl2: return true; ++ case MCK_ConstantSImm9_0: return true; ++ case MCK_ConstantSImm10_0: return true; ++ case MCK_ConstantUImm10_0: return true; ++ case MCK_SImm10Lsl1: return true; ++ case MCK_ConstantSImm11_0: return true; ++ case MCK_SImm10Lsl2: return true; ++ case MCK_SImm12: return true; ++ } ++ ++ case MCK_UImm6Lsl2: ++ switch (B) { ++ default: return false; ++ case MCK_ConstantUImm7_0: return true; ++ case MCK_UImm7_N1: return true; ++ case MCK_ConstantUImm8_0: return true; ++ case MCK_SImm7Lsl2: return true; ++ case MCK_ConstantSImm9_0: return true; ++ case MCK_ConstantSImm10_0: return true; ++ case MCK_ConstantUImm10_0: return true; ++ case MCK_SImm10Lsl1: return true; ++ case MCK_ConstantSImm11_0: return true; ++ case MCK_SImm10Lsl2: return true; ++ case MCK_SImm12: return true; ++ } ++ ++ case MCK_ConstantUImm7_0: ++ switch (B) { ++ default: return false; ++ case MCK_UImm7_N1: return true; ++ case MCK_ConstantUImm8_0: return true; ++ case MCK_SImm7Lsl2: return true; ++ case MCK_ConstantSImm9_0: return true; ++ case MCK_ConstantSImm10_0: return true; ++ case MCK_ConstantUImm10_0: return true; ++ case MCK_SImm10Lsl1: return true; ++ case MCK_ConstantSImm11_0: return true; ++ case MCK_SImm10Lsl2: return true; ++ case MCK_SImm12: return true; ++ } ++ ++ case MCK_UImm7_N1: ++ switch (B) { ++ default: return false; ++ case MCK_ConstantUImm8_0: return true; ++ case MCK_SImm7Lsl2: return true; ++ case MCK_ConstantSImm9_0: return true; ++ case MCK_ConstantSImm10_0: return true; ++ case MCK_ConstantUImm10_0: return true; ++ case MCK_SImm10Lsl1: return true; ++ case MCK_ConstantSImm11_0: return true; ++ case MCK_SImm10Lsl2: return true; ++ case MCK_SImm12: return true; ++ } ++ ++ case MCK_ConstantUImm8_0: ++ switch (B) { ++ default: return false; ++ case MCK_SImm7Lsl2: return true; ++ case MCK_ConstantSImm9_0: return true; ++ case MCK_ConstantSImm10_0: return true; ++ case MCK_ConstantUImm10_0: return true; ++ case MCK_SImm10Lsl1: return true; ++ case MCK_ConstantSImm11_0: return true; ++ case MCK_SImm10Lsl2: return true; ++ case MCK_SImm12: return true; ++ } ++ ++ case MCK_SImm7Lsl2: ++ switch (B) { ++ default: return false; ++ case MCK_ConstantSImm9_0: return true; ++ case MCK_ConstantSImm10_0: return true; ++ case MCK_ConstantUImm10_0: return true; ++ case MCK_SImm10Lsl1: return true; ++ case MCK_ConstantSImm11_0: return true; ++ case MCK_SImm10Lsl2: return true; ++ case MCK_SImm12: return true; ++ } ++ ++ case MCK_ConstantSImm9_0: ++ switch (B) { ++ default: return false; ++ case MCK_ConstantSImm10_0: return true; ++ case MCK_ConstantUImm10_0: return true; ++ case MCK_SImm10Lsl1: return true; ++ case MCK_ConstantSImm11_0: return true; ++ case MCK_SImm10Lsl2: return true; ++ case MCK_SImm12: return true; ++ } ++ ++ case MCK_ConstantSImm10_0: ++ switch (B) { ++ default: return false; ++ case MCK_ConstantUImm10_0: return true; ++ case MCK_SImm10Lsl1: return true; ++ case MCK_ConstantSImm11_0: return true; ++ case MCK_SImm10Lsl2: return true; ++ case MCK_SImm12: return true; ++ } ++ ++ case MCK_ConstantUImm10_0: ++ switch (B) { ++ default: return false; ++ case MCK_SImm10Lsl1: return true; ++ case MCK_ConstantSImm11_0: return true; ++ case MCK_SImm10Lsl2: return true; ++ case MCK_SImm12: return true; ++ } ++ ++ case MCK_SImm10Lsl1: ++ switch (B) { ++ default: return false; ++ case MCK_ConstantSImm11_0: return true; ++ case MCK_SImm10Lsl2: return true; ++ case MCK_SImm12: return true; ++ } ++ ++ case MCK_ConstantSImm11_0: ++ switch (B) { ++ default: return false; ++ case MCK_SImm10Lsl2: return true; ++ case MCK_SImm12: return true; ++ } ++ ++ case MCK_SImm10Lsl2: ++ return B == MCK_SImm12; ++ ++ case MCK_SImm11Lsl1: ++ return B == MCK_SImm12; ++ ++ case MCK_SImm9Lsl3: ++ return B == MCK_SImm12; ++ ++ case MCK_SImm14Lsl2: ++ switch (B) { ++ default: return false; ++ case MCK_UImm16_Relaxed: return true; ++ case MCK_ConstantUImm20_0: return true; ++ case MCK_ConstantUImm26_0: return true; ++ case MCK_SImm32: return true; ++ case MCK_SImm32_Relaxed: return true; ++ case MCK_UImm32_Coerced: return true; ++ } ++ ++ case MCK_SImm12_Relaxed: ++ switch (B) { ++ default: return false; ++ case MCK_UImm12_Relaxed: return true; ++ case MCK_ConstantUImm20_0: return true; ++ case MCK_ConstantUImm26_0: return true; ++ case MCK_SImm32: return true; ++ case MCK_SImm32_Relaxed: return true; ++ case MCK_UImm32_Coerced: return true; ++ } ++ ++ case MCK_SImm16_Relaxed: ++ switch (B) { ++ default: return false; ++ case MCK_UImm16_Relaxed: return true; ++ case MCK_ConstantUImm20_0: return true; ++ case MCK_ConstantUImm26_0: return true; ++ case MCK_SImm32: return true; ++ case MCK_SImm32_Relaxed: return true; ++ case MCK_UImm32_Coerced: return true; ++ } ++ ++ case MCK_ConstantUImm2_1: ++ switch (B) { ++ default: return false; ++ case MCK_ConstantUImm20_0: return true; ++ case MCK_ConstantUImm26_0: return true; ++ case MCK_SImm32: return true; ++ case MCK_SImm32_Relaxed: return true; ++ case MCK_UImm32_Coerced: return true; ++ } ++ ++ case MCK_UImm12_Relaxed: ++ switch (B) { ++ default: return false; ++ case MCK_ConstantUImm20_0: return true; ++ case MCK_ConstantUImm26_0: return true; ++ case MCK_SImm32: return true; ++ case MCK_SImm32_Relaxed: return true; ++ case MCK_UImm32_Coerced: return true; ++ } ++ ++ case MCK_UImm16_Relaxed: ++ switch (B) { ++ default: return false; ++ case MCK_ConstantUImm20_0: return true; ++ case MCK_ConstantUImm26_0: return true; ++ case MCK_SImm32: return true; ++ case MCK_SImm32_Relaxed: return true; ++ case MCK_UImm32_Coerced: return true; ++ } ++ ++ case MCK_ConstantUImm20_0: ++ switch (B) { ++ default: return false; ++ case MCK_ConstantUImm26_0: return true; ++ case MCK_SImm32: return true; ++ case MCK_SImm32_Relaxed: return true; ++ case MCK_UImm32_Coerced: return true; ++ } ++ ++ case MCK_ConstantUImm26_0: ++ switch (B) { ++ default: return false; ++ case MCK_SImm32: return true; ++ case MCK_SImm32_Relaxed: return true; ++ case MCK_UImm32_Coerced: return true; ++ } ++ ++ case MCK_SImm32: ++ switch (B) { ++ default: return false; ++ case MCK_SImm32_Relaxed: return true; ++ case MCK_UImm32_Coerced: return true; ++ } ++ ++ case MCK_SImm32_Relaxed: ++ return B == MCK_UImm32_Coerced; ++ } ++} ++ ++static unsigned validateOperandClass(MCParsedAsmOperand &GOp, MatchClassKind Kind) { ++ LoongArchOperand &Operand = (LoongArchOperand&)GOp; ++ if (Kind == InvalidMatchClass) ++ return MCTargetAsmParser::Match_InvalidOperand; ++ ++ if (Operand.isToken() && Kind <= MCK_LAST_TOKEN) ++ return isSubclass(matchTokenString(Operand.getToken()), Kind) ? ++ MCTargetAsmParser::Match_Success : ++ MCTargetAsmParser::Match_InvalidOperand; ++ ++ switch (Kind) { ++ default: break; ++ // 'FCFRAsmReg' class ++ case MCK_FCFRAsmReg: { ++ DiagnosticPredicate DP(Operand.isFCFRAsmReg()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ break; ++ } ++ // 'FCSRAsmReg' class ++ case MCK_FCSRAsmReg: { ++ DiagnosticPredicate DP(Operand.isFCSRAsmReg()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ break; ++ } ++ // 'FGR32AsmReg' class ++ case MCK_FGR32AsmReg: { ++ DiagnosticPredicate DP(Operand.isFGRAsmReg()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ break; ++ } ++ // 'FGR64AsmReg' class ++ case MCK_FGR64AsmReg: { ++ DiagnosticPredicate DP(Operand.isFGRAsmReg()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ break; ++ } ++ // 'GPR32AsmReg' class ++ case MCK_GPR32AsmReg: { ++ DiagnosticPredicate DP(Operand.isGPRAsmReg()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ break; ++ } ++ // 'GPR64AsmReg' class ++ case MCK_GPR64AsmReg: { ++ DiagnosticPredicate DP(Operand.isGPRAsmReg()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ break; ++ } ++ // 'Imm' class ++ case MCK_Imm: { ++ DiagnosticPredicate DP(Operand.isImm()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ break; ++ } ++ // 'LASX256AsmReg' class ++ case MCK_LASX256AsmReg: { ++ DiagnosticPredicate DP(Operand.isLASX256AsmReg()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ break; ++ } ++ // 'LSX128AsmReg' class ++ case MCK_LSX128AsmReg: { ++ DiagnosticPredicate DP(Operand.isLSX128AsmReg()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ break; ++ } ++ // 'AMem' class ++ case MCK_AMem: { ++ DiagnosticPredicate DP(Operand.isZeroMemOff()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_MemZeroOff; ++ break; ++ } ++ // 'JumpTarget' class ++ case MCK_JumpTarget: { ++ DiagnosticPredicate DP(Operand.isImm()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ break; ++ } ++ // 'MemOffsetSimm10' class ++ case MCK_MemOffsetSimm10: { ++ DiagnosticPredicate DP(Operand.isMemWithSimmOffset<10>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_MemSImm10; ++ break; ++ } ++ // 'MemOffsetSimm10_2' class ++ case MCK_MemOffsetSimm10_2: { ++ DiagnosticPredicate DP(Operand.isMemWithSimmOffset<10, 2>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_MemSImm10Lsl2; ++ break; ++ } ++ // 'MemOffsetSimm11' class ++ case MCK_MemOffsetSimm11: { ++ DiagnosticPredicate DP(Operand.isMemWithSimmOffset<11>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_MemSImm11; ++ break; ++ } ++ // 'MemOffsetSimm11_1' class ++ case MCK_MemOffsetSimm11_1: { ++ DiagnosticPredicate DP(Operand.isMemWithSimmOffset<11, 1>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_MemSImm11Lsl1; ++ break; ++ } ++ // 'MemOffsetSimm12' class ++ case MCK_MemOffsetSimm12: { ++ DiagnosticPredicate DP(Operand.isMemWithSimmOffset<12>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_MemSImm12; ++ break; ++ } ++ // 'MemOffsetSimm14' class ++ case MCK_MemOffsetSimm14: { ++ DiagnosticPredicate DP(Operand.isMemWithSimmOffset<14>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_MemSImm14; ++ break; ++ } ++ // 'MemOffsetSimm14_2' class ++ case MCK_MemOffsetSimm14_2: { ++ DiagnosticPredicate DP(Operand.isMemWithSimmOffset<14, 2>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_MemSImm14Lsl2; ++ break; ++ } ++ // 'MemOffsetSimm9' class ++ case MCK_MemOffsetSimm9: { ++ DiagnosticPredicate DP(Operand.isMemWithSimmOffset<9>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_MemSImm9; ++ break; ++ } ++ // 'MemOffsetSimm9_3' class ++ case MCK_MemOffsetSimm9_3: { ++ DiagnosticPredicate DP(Operand.isMemWithSimmOffset<9, 3>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_MemSImm9Lsl3; ++ break; ++ } ++ // 'MemOffsetSimmPtr' class ++ case MCK_MemOffsetSimmPtr: { ++ DiagnosticPredicate DP(Operand.isMemWithPtrSizeOffset()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_MemSImmPtr; ++ break; ++ } ++ // 'Mem' class ++ case MCK_Mem: { ++ DiagnosticPredicate DP(Operand.isMem()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ break; ++ } ++ // 'ConstantImmz' class ++ case MCK_ConstantImmz: { ++ DiagnosticPredicate DP(Operand.isConstantImmz()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_Immz; ++ break; ++ } ++ // 'ConstantUImm1_0' class ++ case MCK_ConstantUImm1_0: { ++ DiagnosticPredicate DP(Operand.isConstantUImm<1, 0>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_UImm1_0; ++ break; ++ } ++ // 'ConstantUImm2_0' class ++ case MCK_ConstantUImm2_0: { ++ DiagnosticPredicate DP(Operand.isConstantUImm<2, 0>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_UImm2_0; ++ break; ++ } ++ // 'ConstantUImm3_0' class ++ case MCK_ConstantUImm3_0: { ++ DiagnosticPredicate DP(Operand.isConstantUImm<3, 0>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_UImm3_0; ++ break; ++ } ++ // 'ConstantSImm4_0' class ++ case MCK_ConstantSImm4_0: { ++ DiagnosticPredicate DP(Operand.isConstantSImm<4, 0>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_SImm4_0; ++ break; ++ } ++ // 'ConstantUImm4_0' class ++ case MCK_ConstantUImm4_0: { ++ DiagnosticPredicate DP(Operand.isConstantUImm<4, 0>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_UImm4_0; ++ break; ++ } ++ // 'ConstantSImm5_0' class ++ case MCK_ConstantSImm5_0: { ++ DiagnosticPredicate DP(Operand.isConstantSImm<5, 0>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_SImm5_0; ++ break; ++ } ++ // 'ConstantUImm5_0' class ++ case MCK_ConstantUImm5_0: { ++ DiagnosticPredicate DP(Operand.isConstantUImm<5, 0>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_UImm5_0; ++ break; ++ } ++ // 'ConstantUImm5_1' class ++ case MCK_ConstantUImm5_1: { ++ DiagnosticPredicate DP(Operand.isConstantUImm<5, 1>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_UImm5_1; ++ break; ++ } ++ // 'ConstantUImm5_Plus1_Report_UImm6' class ++ case MCK_ConstantUImm5_Plus1_Report_UImm6: { ++ DiagnosticPredicate DP(Operand.isConstantUImm<5, 1>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_UImm5_1; ++ break; ++ } ++ // 'ConstantUImm5_32_Norm' class ++ case MCK_ConstantUImm5_32_Norm: { ++ DiagnosticPredicate DP(Operand.isConstantUImm<5, 32>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_UImm5_32; ++ break; ++ } ++ // 'ConstantUImm5_32' class ++ case MCK_ConstantUImm5_32: { ++ DiagnosticPredicate DP(Operand.isConstantUImm<5, 32>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_UImm5_32; ++ break; ++ } ++ // 'ConstantUImm5_0_Report_UImm6' class ++ case MCK_ConstantUImm5_0_Report_UImm6: { ++ DiagnosticPredicate DP(Operand.isConstantUImm<5, 0>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_UImm5_0_Report_UImm6; ++ break; ++ } ++ // 'ConstantUImm5_33' class ++ case MCK_ConstantUImm5_33: { ++ DiagnosticPredicate DP(Operand.isConstantUImm<5, 33>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_UImm5_33; ++ break; ++ } ++ // 'ConstantUImmRange2_64' class ++ case MCK_ConstantUImmRange2_64: { ++ DiagnosticPredicate DP(Operand.isConstantUImmRange<2, 64>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_UImmRange2_64; ++ break; ++ } ++ // 'UImm5Lsl2' class ++ case MCK_UImm5Lsl2: { ++ DiagnosticPredicate DP(Operand.isScaledUImm<5, 2>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_UImm5_Lsl2; ++ break; ++ } ++ // 'ConstantSImm6_0' class ++ case MCK_ConstantSImm6_0: { ++ DiagnosticPredicate DP(Operand.isConstantSImm<6, 0>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_SImm6_0; ++ break; ++ } ++ // 'ConstantUImm6_0' class ++ case MCK_ConstantUImm6_0: { ++ DiagnosticPredicate DP(Operand.isConstantUImm<6, 0>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_UImm6_0; ++ break; ++ } ++ // 'UImm6Lsl2' class ++ case MCK_UImm6Lsl2: { ++ DiagnosticPredicate DP(Operand.isScaledUImm<6, 2>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_UImm6_Lsl2; ++ break; ++ } ++ // 'ConstantUImm7_0' class ++ case MCK_ConstantUImm7_0: { ++ DiagnosticPredicate DP(Operand.isConstantUImm<7, 0>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_UImm7_0; ++ break; ++ } ++ // 'UImm7_N1' class ++ case MCK_UImm7_N1: { ++ DiagnosticPredicate DP(Operand.isConstantUImm<7, -1>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_UImm7_N1; ++ break; ++ } ++ // 'ConstantUImm8_0' class ++ case MCK_ConstantUImm8_0: { ++ DiagnosticPredicate DP(Operand.isConstantUImm<8, 0>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_UImm8_0; ++ break; ++ } ++ // 'SImm7Lsl2' class ++ case MCK_SImm7Lsl2: { ++ DiagnosticPredicate DP(Operand.isScaledSImm<7, 2>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_SImm7_Lsl2; ++ break; ++ } ++ // 'ConstantSImm9_0' class ++ case MCK_ConstantSImm9_0: { ++ DiagnosticPredicate DP(Operand.isConstantSImm<9, 0>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_SImm9_0; ++ break; ++ } ++ // 'ConstantSImm10_0' class ++ case MCK_ConstantSImm10_0: { ++ DiagnosticPredicate DP(Operand.isConstantSImm<10, 0>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_SImm10_0; ++ break; ++ } ++ // 'ConstantUImm10_0' class ++ case MCK_ConstantUImm10_0: { ++ DiagnosticPredicate DP(Operand.isConstantUImm<10, 0>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_UImm10_0; ++ break; ++ } ++ // 'SImm10Lsl1' class ++ case MCK_SImm10Lsl1: { ++ DiagnosticPredicate DP(Operand.isScaledSImm<10, 1>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_SImm10_Lsl1; ++ break; ++ } ++ // 'ConstantSImm11_0' class ++ case MCK_ConstantSImm11_0: { ++ DiagnosticPredicate DP(Operand.isConstantSImm<11, 0>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_SImm11_0; ++ break; ++ } ++ // 'SImm10Lsl2' class ++ case MCK_SImm10Lsl2: { ++ DiagnosticPredicate DP(Operand.isScaledSImm<10, 2>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_SImm10_Lsl2; ++ break; ++ } ++ // 'SImm11Lsl1' class ++ case MCK_SImm11Lsl1: { ++ DiagnosticPredicate DP(Operand.isScaledSImm<11, 1>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_SImm11_Lsl1; ++ break; ++ } ++ // 'SImm9Lsl3' class ++ case MCK_SImm9Lsl3: { ++ DiagnosticPredicate DP(Operand.isScaledSImm<9, 3>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_SImm9_Lsl3; ++ break; ++ } ++ // 'SImm12' class ++ case MCK_SImm12: { ++ DiagnosticPredicate DP(Operand.isSImm<12>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_InvalidSImm12; ++ break; ++ } ++ // 'SImm14' class ++ case MCK_SImm14: { ++ DiagnosticPredicate DP(Operand.isSImm<14>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_InvalidSImm14; ++ break; ++ } ++ // 'SImm15' class ++ case MCK_SImm15: { ++ DiagnosticPredicate DP(Operand.isSImm<15>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_InvalidSImm15; ++ break; ++ } ++ // 'SImm16' class ++ case MCK_SImm16: { ++ DiagnosticPredicate DP(Operand.isSImm<16>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_InvalidSImm16; ++ break; ++ } ++ // 'SImm20' class ++ case MCK_SImm20: { ++ DiagnosticPredicate DP(Operand.isSImm<20>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_InvalidSImm20; ++ break; ++ } ++ // 'SImm21' class ++ case MCK_SImm21: { ++ DiagnosticPredicate DP(Operand.isSImm<21>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_InvalidSImm21; ++ break; ++ } ++ // 'SImm26' class ++ case MCK_SImm26: { ++ DiagnosticPredicate DP(Operand.isSImm<26>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_InvalidSImm26; ++ break; ++ } ++ // 'SImm2' class ++ case MCK_SImm2: { ++ DiagnosticPredicate DP(Operand.isSImm<2>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_InvalidSImm2; ++ break; ++ } ++ // 'SImm3' class ++ case MCK_SImm3: { ++ DiagnosticPredicate DP(Operand.isSImm<3>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_InvalidSImm3; ++ break; ++ } ++ // 'SImm5' class ++ case MCK_SImm5: { ++ DiagnosticPredicate DP(Operand.isSImm<5>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_InvalidSImm5; ++ break; ++ } ++ // 'SImm8' class ++ case MCK_SImm8: { ++ DiagnosticPredicate DP(Operand.isSImm<8>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_InvalidSImm8; ++ break; ++ } ++ // 'Simm10_Lsl2' class ++ case MCK_Simm10_Lsl2: { ++ DiagnosticPredicate DP(Operand.isScaledSImm<10, 2>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_SImm10_Lsl2; ++ break; ++ } ++ // 'Simm11_Lsl1' class ++ case MCK_Simm11_Lsl1: { ++ DiagnosticPredicate DP(Operand.isScaledSImm<11, 1>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_SImm11_Lsl1; ++ break; ++ } ++ // 'Simm8_Lsl1' class ++ case MCK_Simm8_Lsl1: { ++ DiagnosticPredicate DP(Operand.isScaledSImm<8, 1>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_SImm8_Lsl1; ++ break; ++ } ++ // 'Simm8_Lsl2' class ++ case MCK_Simm8_Lsl2: { ++ DiagnosticPredicate DP(Operand.isScaledSImm<8, 2>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_SImm8_Lsl2; ++ break; ++ } ++ // 'Simm8_Lsl3' class ++ case MCK_Simm8_Lsl3: { ++ DiagnosticPredicate DP(Operand.isScaledSImm<8, 3>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_SImm8_Lsl3; ++ break; ++ } ++ // 'Simm9_Lsl3' class ++ case MCK_Simm9_Lsl3: { ++ DiagnosticPredicate DP(Operand.isScaledSImm<9, 3>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_SImm9_Lsl3; ++ break; ++ } ++ // 'UImm12' class ++ case MCK_UImm12: { ++ DiagnosticPredicate DP(Operand.isUImm<12>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_InvalidImm0_4095; ++ break; ++ } ++ // 'UImm14' class ++ case MCK_UImm14: { ++ DiagnosticPredicate DP(Operand.isUImm<14>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_InvalidImm0_16383; ++ break; ++ } ++ // 'UImm15' class ++ case MCK_UImm15: { ++ DiagnosticPredicate DP(Operand.isUImm<15>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_InvalidImm0_32767; ++ break; ++ } ++ // 'UImm1' class ++ case MCK_UImm1: { ++ DiagnosticPredicate DP(Operand.isUImm<1>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_InvalidImm0_1; ++ break; ++ } ++ // 'UImm2' class ++ case MCK_UImm2: { ++ DiagnosticPredicate DP(Operand.isUImm<2>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_InvalidImm0_3; ++ break; ++ } ++ // 'SImm14Lsl2' class ++ case MCK_SImm14Lsl2: { ++ DiagnosticPredicate DP(Operand.isScaledSImm<14, 2>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_SImm14_Lsl2; ++ break; ++ } ++ // 'SImm12_Relaxed' class ++ case MCK_SImm12_Relaxed: { ++ DiagnosticPredicate DP(Operand.isAnyImm<12>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_SImm12_Relaxed; ++ break; ++ } ++ // 'SImm16_Relaxed' class ++ case MCK_SImm16_Relaxed: { ++ DiagnosticPredicate DP(Operand.isAnyImm<16>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_SImm16_Relaxed; ++ break; ++ } ++ // 'ConstantUImm2_1' class ++ case MCK_ConstantUImm2_1: { ++ DiagnosticPredicate DP(Operand.isConstantUImm<2, 1>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_UImm2_1; ++ break; ++ } ++ // 'UImm12_Relaxed' class ++ case MCK_UImm12_Relaxed: { ++ DiagnosticPredicate DP(Operand.isAnyImm<12>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_UImm12_Relaxed; ++ break; ++ } ++ // 'UImm16_Relaxed' class ++ case MCK_UImm16_Relaxed: { ++ DiagnosticPredicate DP(Operand.isAnyImm<16>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_UImm16_Relaxed; ++ break; ++ } ++ // 'ConstantUImm20_0' class ++ case MCK_ConstantUImm20_0: { ++ DiagnosticPredicate DP(Operand.isConstantUImm<20, 0>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_UImm20_0; ++ break; ++ } ++ // 'ConstantUImm26_0' class ++ case MCK_ConstantUImm26_0: { ++ DiagnosticPredicate DP(Operand.isConstantUImm<26, 0>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_UImm26_0; ++ break; ++ } ++ // 'SImm32' class ++ case MCK_SImm32: { ++ DiagnosticPredicate DP(Operand.isSImm<32>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_SImm32; ++ break; ++ } ++ // 'SImm32_Relaxed' class ++ case MCK_SImm32_Relaxed: { ++ DiagnosticPredicate DP(Operand.isAnyImm<33>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_SImm32_Relaxed; ++ break; ++ } ++ // 'UImm32_Coerced' class ++ case MCK_UImm32_Coerced: { ++ DiagnosticPredicate DP(Operand.isSImm<33>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_UImm32_Coerced; ++ break; ++ } ++ // 'UImm3' class ++ case MCK_UImm3: { ++ DiagnosticPredicate DP(Operand.isUImm<3>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_InvalidImm0_7; ++ break; ++ } ++ // 'UImm4' class ++ case MCK_UImm4: { ++ DiagnosticPredicate DP(Operand.isUImm<4>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_InvalidImm0_15; ++ break; ++ } ++ // 'UImm5' class ++ case MCK_UImm5: { ++ DiagnosticPredicate DP(Operand.isUImm<5>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_InvalidImm0_31; ++ break; ++ } ++ // 'UImm6' class ++ case MCK_UImm6: { ++ DiagnosticPredicate DP(Operand.isUImm<6>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_InvalidImm0_63; ++ break; ++ } ++ // 'UImm7' class ++ case MCK_UImm7: { ++ DiagnosticPredicate DP(Operand.isUImm<7>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_InvalidImm0_127; ++ break; ++ } ++ // 'UImm8' class ++ case MCK_UImm8: { ++ DiagnosticPredicate DP(Operand.isUImm<8>()); ++ if (DP.isMatch()) ++ return MCTargetAsmParser::Match_Success; ++ if (DP.isNearMatch()) ++ return LoongArchAsmParser::Match_InvalidImm0_255; ++ break; ++ } ++ } // end switch (Kind) ++ ++ if (Operand.isReg()) { ++ MatchClassKind OpKind; ++ switch (Operand.getReg()) { ++ default: OpKind = InvalidMatchClass; break; ++ case LoongArch::ZERO: OpKind = MCK_GPR32; break; ++ case LoongArch::RA: OpKind = MCK_GPR32; break; ++ case LoongArch::TP: OpKind = MCK_TP32; break; ++ case LoongArch::SP: OpKind = MCK_SP32; break; ++ case LoongArch::A0: OpKind = MCK_GPR32; break; ++ case LoongArch::A1: OpKind = MCK_GPR32; break; ++ case LoongArch::A2: OpKind = MCK_GPR32; break; ++ case LoongArch::A3: OpKind = MCK_GPR32; break; ++ case LoongArch::A4: OpKind = MCK_GPR32; break; ++ case LoongArch::A5: OpKind = MCK_GPR32; break; ++ case LoongArch::A6: OpKind = MCK_GPR32; break; ++ case LoongArch::A7: OpKind = MCK_GPR32; break; ++ case LoongArch::T0: OpKind = MCK_GPR32; break; ++ case LoongArch::T1: OpKind = MCK_GPR32; break; ++ case LoongArch::T2: OpKind = MCK_GPR32; break; ++ case LoongArch::T3: OpKind = MCK_GPR32; break; ++ case LoongArch::T4: OpKind = MCK_GPR32; break; ++ case LoongArch::T5: OpKind = MCK_GPR32; break; ++ case LoongArch::T6: OpKind = MCK_GPR32; break; ++ case LoongArch::T7: OpKind = MCK_GPR32; break; ++ case LoongArch::T8: OpKind = MCK_GPR32; break; ++ case LoongArch::T9: OpKind = MCK_GPR32; break; ++ case LoongArch::FP: OpKind = MCK_GPR32; break; ++ case LoongArch::S0: OpKind = MCK_GPR32; break; ++ case LoongArch::S1: OpKind = MCK_GPR32; break; ++ case LoongArch::S2: OpKind = MCK_GPR32; break; ++ case LoongArch::S3: OpKind = MCK_GPR32; break; ++ case LoongArch::S4: OpKind = MCK_GPR32; break; ++ case LoongArch::S5: OpKind = MCK_GPR32; break; ++ case LoongArch::S6: OpKind = MCK_GPR32; break; ++ case LoongArch::S7: OpKind = MCK_GPR32; break; ++ case LoongArch::S8: OpKind = MCK_GPR32; break; ++ case LoongArch::ZERO_64: OpKind = MCK_GPR64; break; ++ case LoongArch::RA_64: OpKind = MCK_GPR64; break; ++ case LoongArch::TP_64: OpKind = MCK_TP64; break; ++ case LoongArch::SP_64: OpKind = MCK_SP64; break; ++ case LoongArch::A0_64: OpKind = MCK_GPRTC64; break; ++ case LoongArch::A1_64: OpKind = MCK_GPRTC64; break; ++ case LoongArch::A2_64: OpKind = MCK_GPRTC64; break; ++ case LoongArch::A3_64: OpKind = MCK_GPRTC64; break; ++ case LoongArch::A4_64: OpKind = MCK_GPRTC64; break; ++ case LoongArch::A5_64: OpKind = MCK_GPRTC64; break; ++ case LoongArch::A6_64: OpKind = MCK_GPRTC64; break; ++ case LoongArch::A7_64: OpKind = MCK_GPRTC64; break; ++ case LoongArch::T0_64: OpKind = MCK_GPRTC64; break; ++ case LoongArch::T1_64: OpKind = MCK_GPRTC64; break; ++ case LoongArch::T2_64: OpKind = MCK_GPRTC64; break; ++ case LoongArch::T3_64: OpKind = MCK_GPRTC64; break; ++ case LoongArch::T4_64: OpKind = MCK_GPRTC64; break; ++ case LoongArch::T5_64: OpKind = MCK_GPRTC64; break; ++ case LoongArch::T6_64: OpKind = MCK_GPRTC64; break; ++ case LoongArch::T7_64: OpKind = MCK_GPRTC64; break; ++ case LoongArch::T8_64: OpKind = MCK_GPRTC64; break; ++ case LoongArch::T9_64: OpKind = MCK_GPR64; break; ++ case LoongArch::FP_64: OpKind = MCK_GPR64; break; ++ case LoongArch::S0_64: OpKind = MCK_GPR64; break; ++ case LoongArch::S1_64: OpKind = MCK_GPR64; break; ++ case LoongArch::S2_64: OpKind = MCK_GPR64; break; ++ case LoongArch::S3_64: OpKind = MCK_GPR64; break; ++ case LoongArch::S4_64: OpKind = MCK_GPR64; break; ++ case LoongArch::S5_64: OpKind = MCK_GPR64; break; ++ case LoongArch::S6_64: OpKind = MCK_GPR64; break; ++ case LoongArch::S7_64: OpKind = MCK_GPR64; break; ++ case LoongArch::S8_64: OpKind = MCK_GPR64; break; ++ case LoongArch::F0: OpKind = MCK_FGR32; break; ++ case LoongArch::F1: OpKind = MCK_FGR32; break; ++ case LoongArch::F2: OpKind = MCK_FGR32; break; ++ case LoongArch::F3: OpKind = MCK_FGR32; break; ++ case LoongArch::F4: OpKind = MCK_FGR32; break; ++ case LoongArch::F5: OpKind = MCK_FGR32; break; ++ case LoongArch::F6: OpKind = MCK_FGR32; break; ++ case LoongArch::F7: OpKind = MCK_FGR32; break; ++ case LoongArch::F8: OpKind = MCK_FGR32; break; ++ case LoongArch::F9: OpKind = MCK_FGR32; break; ++ case LoongArch::F10: OpKind = MCK_FGR32; break; ++ case LoongArch::F11: OpKind = MCK_FGR32; break; ++ case LoongArch::F12: OpKind = MCK_FGR32; break; ++ case LoongArch::F13: OpKind = MCK_FGR32; break; ++ case LoongArch::F14: OpKind = MCK_FGR32; break; ++ case LoongArch::F15: OpKind = MCK_FGR32; break; ++ case LoongArch::F16: OpKind = MCK_FGR32; break; ++ case LoongArch::F17: OpKind = MCK_FGR32; break; ++ case LoongArch::F18: OpKind = MCK_FGR32; break; ++ case LoongArch::F19: OpKind = MCK_FGR32; break; ++ case LoongArch::F20: OpKind = MCK_FGR32; break; ++ case LoongArch::F21: OpKind = MCK_FGR32; break; ++ case LoongArch::F22: OpKind = MCK_FGR32; break; ++ case LoongArch::F23: OpKind = MCK_FGR32; break; ++ case LoongArch::F24: OpKind = MCK_FGR32; break; ++ case LoongArch::F25: OpKind = MCK_FGR32; break; ++ case LoongArch::F26: OpKind = MCK_FGR32; break; ++ case LoongArch::F27: OpKind = MCK_FGR32; break; ++ case LoongArch::F28: OpKind = MCK_FGR32; break; ++ case LoongArch::F29: OpKind = MCK_FGR32; break; ++ case LoongArch::F30: OpKind = MCK_FGR32; break; ++ case LoongArch::F31: OpKind = MCK_FGR32; break; ++ case LoongArch::F0_64: OpKind = MCK_FGR64; break; ++ case LoongArch::F1_64: OpKind = MCK_FGR64; break; ++ case LoongArch::F2_64: OpKind = MCK_FGR64; break; ++ case LoongArch::F3_64: OpKind = MCK_FGR64; break; ++ case LoongArch::F4_64: OpKind = MCK_FGR64; break; ++ case LoongArch::F5_64: OpKind = MCK_FGR64; break; ++ case LoongArch::F6_64: OpKind = MCK_FGR64; break; ++ case LoongArch::F7_64: OpKind = MCK_FGR64; break; ++ case LoongArch::F8_64: OpKind = MCK_FGR64; break; ++ case LoongArch::F9_64: OpKind = MCK_FGR64; break; ++ case LoongArch::F10_64: OpKind = MCK_FGR64; break; ++ case LoongArch::F11_64: OpKind = MCK_FGR64; break; ++ case LoongArch::F12_64: OpKind = MCK_FGR64; break; ++ case LoongArch::F13_64: OpKind = MCK_FGR64; break; ++ case LoongArch::F14_64: OpKind = MCK_FGR64; break; ++ case LoongArch::F15_64: OpKind = MCK_FGR64; break; ++ case LoongArch::F16_64: OpKind = MCK_FGR64; break; ++ case LoongArch::F17_64: OpKind = MCK_FGR64; break; ++ case LoongArch::F18_64: OpKind = MCK_FGR64; break; ++ case LoongArch::F19_64: OpKind = MCK_FGR64; break; ++ case LoongArch::F20_64: OpKind = MCK_FGR64; break; ++ case LoongArch::F21_64: OpKind = MCK_FGR64; break; ++ case LoongArch::F22_64: OpKind = MCK_FGR64; break; ++ case LoongArch::F23_64: OpKind = MCK_FGR64; break; ++ case LoongArch::F24_64: OpKind = MCK_FGR64; break; ++ case LoongArch::F25_64: OpKind = MCK_FGR64; break; ++ case LoongArch::F26_64: OpKind = MCK_FGR64; break; ++ case LoongArch::F27_64: OpKind = MCK_FGR64; break; ++ case LoongArch::F28_64: OpKind = MCK_FGR64; break; ++ case LoongArch::F29_64: OpKind = MCK_FGR64; break; ++ case LoongArch::F30_64: OpKind = MCK_FGR64; break; ++ case LoongArch::F31_64: OpKind = MCK_FGR64; break; ++ case LoongArch::FCC0: OpKind = MCK_FCFR; break; ++ case LoongArch::FCC1: OpKind = MCK_FCFR; break; ++ case LoongArch::FCC2: OpKind = MCK_FCFR; break; ++ case LoongArch::FCC3: OpKind = MCK_FCFR; break; ++ case LoongArch::FCC4: OpKind = MCK_FCFR; break; ++ case LoongArch::FCC5: OpKind = MCK_FCFR; break; ++ case LoongArch::FCC6: OpKind = MCK_FCFR; break; ++ case LoongArch::FCC7: OpKind = MCK_FCFR; break; ++ case LoongArch::FCSR1: OpKind = MCK_FCSR; break; ++ case LoongArch::FCSR2: OpKind = MCK_FCSR; break; ++ case LoongArch::FCSR3: OpKind = MCK_FCSR; break; ++ case LoongArch::FCSR0: OpKind = MCK_Reg11; break; ++ case LoongArch::VR0: OpKind = MCK_LSX128B; break; ++ case LoongArch::VR1: OpKind = MCK_LSX128B; break; ++ case LoongArch::VR2: OpKind = MCK_LSX128B; break; ++ case LoongArch::VR3: OpKind = MCK_LSX128B; break; ++ case LoongArch::VR4: OpKind = MCK_LSX128B; break; ++ case LoongArch::VR5: OpKind = MCK_LSX128B; break; ++ case LoongArch::VR6: OpKind = MCK_LSX128B; break; ++ case LoongArch::VR7: OpKind = MCK_LSX128B; break; ++ case LoongArch::VR8: OpKind = MCK_LSX128B; break; ++ case LoongArch::VR9: OpKind = MCK_LSX128B; break; ++ case LoongArch::VR10: OpKind = MCK_LSX128B; break; ++ case LoongArch::VR11: OpKind = MCK_LSX128B; break; ++ case LoongArch::VR12: OpKind = MCK_LSX128B; break; ++ case LoongArch::VR13: OpKind = MCK_LSX128B; break; ++ case LoongArch::VR14: OpKind = MCK_LSX128B; break; ++ case LoongArch::VR15: OpKind = MCK_LSX128B; break; ++ case LoongArch::VR16: OpKind = MCK_LSX128B; break; ++ case LoongArch::VR17: OpKind = MCK_LSX128B; break; ++ case LoongArch::VR18: OpKind = MCK_LSX128B; break; ++ case LoongArch::VR19: OpKind = MCK_LSX128B; break; ++ case LoongArch::VR20: OpKind = MCK_LSX128B; break; ++ case LoongArch::VR21: OpKind = MCK_LSX128B; break; ++ case LoongArch::VR22: OpKind = MCK_LSX128B; break; ++ case LoongArch::VR23: OpKind = MCK_LSX128B; break; ++ case LoongArch::VR24: OpKind = MCK_LSX128B; break; ++ case LoongArch::VR25: OpKind = MCK_LSX128B; break; ++ case LoongArch::VR26: OpKind = MCK_LSX128B; break; ++ case LoongArch::VR27: OpKind = MCK_LSX128B; break; ++ case LoongArch::VR28: OpKind = MCK_LSX128B; break; ++ case LoongArch::VR29: OpKind = MCK_LSX128B; break; ++ case LoongArch::VR30: OpKind = MCK_LSX128B; break; ++ case LoongArch::VR31: OpKind = MCK_LSX128B; break; ++ case LoongArch::XR0: OpKind = MCK_LASX256B; break; ++ case LoongArch::XR1: OpKind = MCK_LASX256B; break; ++ case LoongArch::XR2: OpKind = MCK_LASX256B; break; ++ case LoongArch::XR3: OpKind = MCK_LASX256B; break; ++ case LoongArch::XR4: OpKind = MCK_LASX256B; break; ++ case LoongArch::XR5: OpKind = MCK_LASX256B; break; ++ case LoongArch::XR6: OpKind = MCK_LASX256B; break; ++ case LoongArch::XR7: OpKind = MCK_LASX256B; break; ++ case LoongArch::XR8: OpKind = MCK_LASX256B; break; ++ case LoongArch::XR9: OpKind = MCK_LASX256B; break; ++ case LoongArch::XR10: OpKind = MCK_LASX256B; break; ++ case LoongArch::XR11: OpKind = MCK_LASX256B; break; ++ case LoongArch::XR12: OpKind = MCK_LASX256B; break; ++ case LoongArch::XR13: OpKind = MCK_LASX256B; break; ++ case LoongArch::XR14: OpKind = MCK_LASX256B; break; ++ case LoongArch::XR15: OpKind = MCK_LASX256B; break; ++ case LoongArch::XR16: OpKind = MCK_LASX256B; break; ++ case LoongArch::XR17: OpKind = MCK_LASX256B; break; ++ case LoongArch::XR18: OpKind = MCK_LASX256B; break; ++ case LoongArch::XR19: OpKind = MCK_LASX256B; break; ++ case LoongArch::XR20: OpKind = MCK_LASX256B; break; ++ case LoongArch::XR21: OpKind = MCK_LASX256B; break; ++ case LoongArch::XR22: OpKind = MCK_LASX256B; break; ++ case LoongArch::XR23: OpKind = MCK_LASX256B; break; ++ case LoongArch::XR24: OpKind = MCK_LASX256B; break; ++ case LoongArch::XR25: OpKind = MCK_LASX256B; break; ++ case LoongArch::XR26: OpKind = MCK_LASX256B; break; ++ case LoongArch::XR27: OpKind = MCK_LASX256B; break; ++ case LoongArch::XR28: OpKind = MCK_LASX256B; break; ++ case LoongArch::XR29: OpKind = MCK_LASX256B; break; ++ case LoongArch::XR30: OpKind = MCK_LASX256B; break; ++ case LoongArch::XR31: OpKind = MCK_LASX256B; break; ++ } ++ return isSubclass(OpKind, Kind) ? (unsigned)MCTargetAsmParser::Match_Success : ++ getDiagKindFromRegisterClass(Kind); ++ } ++ ++ if (Kind > MCK_LAST_TOKEN && Kind <= MCK_LAST_REGISTER) ++ return getDiagKindFromRegisterClass(Kind); ++ ++ return MCTargetAsmParser::Match_InvalidOperand; ++} ++ ++#ifndef NDEBUG ++const char *getMatchClassName(MatchClassKind Kind) { ++ switch (Kind) { ++ case InvalidMatchClass: return "InvalidMatchClass"; ++ case OptionalMatchClass: return "OptionalMatchClass"; ++ case MCK_0: return "MCK_0"; ++ case MCK_Reg11: return "MCK_Reg11"; ++ case MCK_SP32: return "MCK_SP32"; ++ case MCK_SP64: return "MCK_SP64"; ++ case MCK_TP32: return "MCK_TP32"; ++ case MCK_TP64: return "MCK_TP64"; ++ case MCK_FCSR: return "MCK_FCSR"; ++ case MCK_FCFR: return "MCK_FCFR"; ++ case MCK_GPRTC64: return "MCK_GPRTC64"; ++ case MCK_FGR32: return "MCK_FGR32"; ++ case MCK_FGR64: return "MCK_FGR64"; ++ case MCK_GPR32: return "MCK_GPR32"; ++ case MCK_GPR64: return "MCK_GPR64"; ++ case MCK_LASX256B: return "MCK_LASX256B"; ++ case MCK_LSX128B: return "MCK_LSX128B"; ++ case MCK_FCFRAsmReg: return "MCK_FCFRAsmReg"; ++ case MCK_FCSRAsmReg: return "MCK_FCSRAsmReg"; ++ case MCK_FGR32AsmReg: return "MCK_FGR32AsmReg"; ++ case MCK_FGR64AsmReg: return "MCK_FGR64AsmReg"; ++ case MCK_GPR32AsmReg: return "MCK_GPR32AsmReg"; ++ case MCK_GPR64AsmReg: return "MCK_GPR64AsmReg"; ++ case MCK_Imm: return "MCK_Imm"; ++ case MCK_LASX256AsmReg: return "MCK_LASX256AsmReg"; ++ case MCK_LSX128AsmReg: return "MCK_LSX128AsmReg"; ++ case MCK_AMem: return "MCK_AMem"; ++ case MCK_JumpTarget: return "MCK_JumpTarget"; ++ case MCK_MemOffsetSimm10: return "MCK_MemOffsetSimm10"; ++ case MCK_MemOffsetSimm10_2: return "MCK_MemOffsetSimm10_2"; ++ case MCK_MemOffsetSimm11: return "MCK_MemOffsetSimm11"; ++ case MCK_MemOffsetSimm11_1: return "MCK_MemOffsetSimm11_1"; ++ case MCK_MemOffsetSimm12: return "MCK_MemOffsetSimm12"; ++ case MCK_MemOffsetSimm14: return "MCK_MemOffsetSimm14"; ++ case MCK_MemOffsetSimm14_2: return "MCK_MemOffsetSimm14_2"; ++ case MCK_MemOffsetSimm9: return "MCK_MemOffsetSimm9"; ++ case MCK_MemOffsetSimm9_3: return "MCK_MemOffsetSimm9_3"; ++ case MCK_MemOffsetSimmPtr: return "MCK_MemOffsetSimmPtr"; ++ case MCK_Mem: return "MCK_Mem"; ++ case MCK_ConstantImmz: return "MCK_ConstantImmz"; ++ case MCK_ConstantUImm1_0: return "MCK_ConstantUImm1_0"; ++ case MCK_ConstantUImm2_0: return "MCK_ConstantUImm2_0"; ++ case MCK_ConstantUImm3_0: return "MCK_ConstantUImm3_0"; ++ case MCK_ConstantSImm4_0: return "MCK_ConstantSImm4_0"; ++ case MCK_ConstantUImm4_0: return "MCK_ConstantUImm4_0"; ++ case MCK_ConstantSImm5_0: return "MCK_ConstantSImm5_0"; ++ case MCK_ConstantUImm5_0: return "MCK_ConstantUImm5_0"; ++ case MCK_ConstantUImm5_1: return "MCK_ConstantUImm5_1"; ++ case MCK_ConstantUImm5_Plus1_Report_UImm6: return "MCK_ConstantUImm5_Plus1_Report_UImm6"; ++ case MCK_ConstantUImm5_32_Norm: return "MCK_ConstantUImm5_32_Norm"; ++ case MCK_ConstantUImm5_32: return "MCK_ConstantUImm5_32"; ++ case MCK_ConstantUImm5_0_Report_UImm6: return "MCK_ConstantUImm5_0_Report_UImm6"; ++ case MCK_ConstantUImm5_33: return "MCK_ConstantUImm5_33"; ++ case MCK_ConstantUImmRange2_64: return "MCK_ConstantUImmRange2_64"; ++ case MCK_UImm5Lsl2: return "MCK_UImm5Lsl2"; ++ case MCK_ConstantSImm6_0: return "MCK_ConstantSImm6_0"; ++ case MCK_ConstantUImm6_0: return "MCK_ConstantUImm6_0"; ++ case MCK_UImm6Lsl2: return "MCK_UImm6Lsl2"; ++ case MCK_ConstantUImm7_0: return "MCK_ConstantUImm7_0"; ++ case MCK_UImm7_N1: return "MCK_UImm7_N1"; ++ case MCK_ConstantUImm8_0: return "MCK_ConstantUImm8_0"; ++ case MCK_SImm7Lsl2: return "MCK_SImm7Lsl2"; ++ case MCK_ConstantSImm9_0: return "MCK_ConstantSImm9_0"; ++ case MCK_ConstantSImm10_0: return "MCK_ConstantSImm10_0"; ++ case MCK_ConstantUImm10_0: return "MCK_ConstantUImm10_0"; ++ case MCK_SImm10Lsl1: return "MCK_SImm10Lsl1"; ++ case MCK_ConstantSImm11_0: return "MCK_ConstantSImm11_0"; ++ case MCK_SImm10Lsl2: return "MCK_SImm10Lsl2"; ++ case MCK_SImm11Lsl1: return "MCK_SImm11Lsl1"; ++ case MCK_SImm9Lsl3: return "MCK_SImm9Lsl3"; ++ case MCK_SImm12: return "MCK_SImm12"; ++ case MCK_SImm14: return "MCK_SImm14"; ++ case MCK_SImm15: return "MCK_SImm15"; ++ case MCK_SImm16: return "MCK_SImm16"; ++ case MCK_SImm20: return "MCK_SImm20"; ++ case MCK_SImm21: return "MCK_SImm21"; ++ case MCK_SImm26: return "MCK_SImm26"; ++ case MCK_SImm2: return "MCK_SImm2"; ++ case MCK_SImm3: return "MCK_SImm3"; ++ case MCK_SImm5: return "MCK_SImm5"; ++ case MCK_SImm8: return "MCK_SImm8"; ++ case MCK_Simm10_Lsl2: return "MCK_Simm10_Lsl2"; ++ case MCK_Simm11_Lsl1: return "MCK_Simm11_Lsl1"; ++ case MCK_Simm8_Lsl1: return "MCK_Simm8_Lsl1"; ++ case MCK_Simm8_Lsl2: return "MCK_Simm8_Lsl2"; ++ case MCK_Simm8_Lsl3: return "MCK_Simm8_Lsl3"; ++ case MCK_Simm9_Lsl3: return "MCK_Simm9_Lsl3"; ++ case MCK_UImm12: return "MCK_UImm12"; ++ case MCK_UImm14: return "MCK_UImm14"; ++ case MCK_UImm15: return "MCK_UImm15"; ++ case MCK_UImm1: return "MCK_UImm1"; ++ case MCK_UImm2: return "MCK_UImm2"; ++ case MCK_SImm14Lsl2: return "MCK_SImm14Lsl2"; ++ case MCK_SImm12_Relaxed: return "MCK_SImm12_Relaxed"; ++ case MCK_SImm16_Relaxed: return "MCK_SImm16_Relaxed"; ++ case MCK_ConstantUImm2_1: return "MCK_ConstantUImm2_1"; ++ case MCK_UImm12_Relaxed: return "MCK_UImm12_Relaxed"; ++ case MCK_UImm16_Relaxed: return "MCK_UImm16_Relaxed"; ++ case MCK_ConstantUImm20_0: return "MCK_ConstantUImm20_0"; ++ case MCK_ConstantUImm26_0: return "MCK_ConstantUImm26_0"; ++ case MCK_SImm32: return "MCK_SImm32"; ++ case MCK_SImm32_Relaxed: return "MCK_SImm32_Relaxed"; ++ case MCK_UImm32_Coerced: return "MCK_UImm32_Coerced"; ++ case MCK_UImm3: return "MCK_UImm3"; ++ case MCK_UImm4: return "MCK_UImm4"; ++ case MCK_UImm5: return "MCK_UImm5"; ++ case MCK_UImm6: return "MCK_UImm6"; ++ case MCK_UImm7: return "MCK_UImm7"; ++ case MCK_UImm8: return "MCK_UImm8"; ++ case NumMatchClassKinds: return "NumMatchClassKinds"; ++ } ++ llvm_unreachable("unhandled MatchClassKind!"); ++} ++ ++#endif // NDEBUG ++FeatureBitset LoongArchAsmParser:: ++ComputeAvailableFeatures(const FeatureBitset& FB) const { ++ FeatureBitset Features; ++ if ((FB[LoongArch::FeatureLSX])) ++ Features.set(Feature_HasLSXBit); ++ if ((FB[LoongArch::FeatureLASX])) ++ Features.set(Feature_HasLASXBit); ++ if ((FB[LoongArch::Feature64Bit])) ++ Features.set(Feature_IsGP64bitBit); ++ if ((!FB[LoongArch::Feature64Bit])) ++ Features.set(Feature_IsGP32bitBit); ++ if ((!FB[LoongArch::FeatureSoftFloat])) ++ Features.set(Feature_IsNotSoftFloatBit); ++ return Features; ++} ++ ++static bool checkAsmTiedOperandConstraints(const LoongArchAsmParser&AsmParser, ++ unsigned Kind, ++ const OperandVector &Operands, ++ uint64_t &ErrorInfo) { ++ assert(Kind < CVT_NUM_SIGNATURES && "Invalid signature!"); ++ const uint8_t *Converter = ConversionTable[Kind]; ++ for (const uint8_t *p = Converter; *p; p+= 2) { ++ switch (*p) { ++ case CVT_Tied: { ++ unsigned OpIdx = *(p+1); ++ assert(OpIdx < (size_t)(std::end(TiedAsmOperandTable) - ++ std::begin(TiedAsmOperandTable)) && ++ "Tied operand not found"); ++ unsigned OpndNum1 = TiedAsmOperandTable[OpIdx][1]; ++ unsigned OpndNum2 = TiedAsmOperandTable[OpIdx][2]; ++ if (OpndNum1 != OpndNum2) { ++ auto &SrcOp1 = Operands[OpndNum1]; ++ auto &SrcOp2 = Operands[OpndNum2]; ++ if (SrcOp1->isReg() && SrcOp2->isReg()) { ++ if (!AsmParser.regsEqual(*SrcOp1, *SrcOp2)) { ++ ErrorInfo = OpndNum2; ++ return false; ++ } ++ } ++ } ++ break; ++ } ++ default: ++ break; ++ } ++ } ++ return true; ++} ++ ++static const char *const MnemonicTable = ++ "\005add.d\005add.w\006addi.d\006addi.w\taddu16i.d\006alsl.d\006alsl.w\007" ++ "alsl.wu\007amadd.d\007amadd.w\namadd_db.d\namadd_db.w\007amand.d\007ama" ++ "nd.w\namand_db.d\namand_db.w\007ammax.d\010ammax.du\007ammax.w\010ammax" ++ ".wu\nammax_db.d\013ammax_db.du\nammax_db.w\013ammax_db.wu\007ammin.d\010" ++ "ammin.du\007ammin.w\010ammin.wu\nammin_db.d\013ammin_db.du\nammin_db.w\013" ++ "ammin_db.wu\006amor.d\006amor.w\tamor_db.d\tamor_db.w\010amswap.d\010am" ++ "swap.w\013amswap_db.d\013amswap_db.w\007amxor.d\007amxor.w\namxor_db.d\n" ++ "amxor_db.w\003and\004andi\004andn\010asrtgt.d\010asrtle.d\001b\005bceqz" ++ "\005bcnez\003beq\004beqz\003bge\004bgeu\tbitrev.4b\tbitrev.8b\010bitrev" ++ ".d\010bitrev.w\002bl\003blt\004bltu\003bne\004bnez\005break\tbstrins.d\t" ++ "bstrins.w\nbstrpick.d\nbstrpick.w\nbytepick.d\nbytepick.w\005cacop\005c" ++ "lo.d\005clo.w\005clz.d\005clz.w\006cpucfg\tcrc.w.b.w\tcrc.w.d.w\tcrc.w." ++ "h.w\tcrc.w.w.w\ncrcc.w.b.w\ncrcc.w.d.w\ncrcc.w.h.w\ncrcc.w.w.w\005csrrd" ++ "\005csrwr\007csrxchg\005cto.d\005cto.w\005ctz.d\005ctz.w\004dbar\004dbc" ++ "l\005div.d\006div.du\005div.w\006div.wu\004ertn\007ext.w.b\007ext.w.h\006" ++ "fabs.d\006fabs.s\006fadd.d\006fadd.s\010fclass.d\010fclass.s\nfcmp.caf." ++ "d\nfcmp.caf.s\nfcmp.ceq.d\nfcmp.ceq.s\nfcmp.cle.d\nfcmp.cle.s\nfcmp.clt" ++ ".d\nfcmp.clt.s\nfcmp.cne.d\nfcmp.cne.s\nfcmp.cor.d\nfcmp.cor.s\013fcmp." ++ "cueq.d\013fcmp.cueq.s\013fcmp.cule.d\013fcmp.cule.s\013fcmp.cult.d\013f" ++ "cmp.cult.s\nfcmp.cun.d\nfcmp.cun.s\013fcmp.cune.d\013fcmp.cune.s\nfcmp." ++ "saf.d\nfcmp.saf.s\nfcmp.seq.d\nfcmp.seq.s\nfcmp.sle.d\nfcmp.sle.s\nfcmp" ++ ".slt.d\nfcmp.slt.s\nfcmp.sne.d\nfcmp.sne.s\nfcmp.sor.d\nfcmp.sor.s\013f" ++ "cmp.sueq.d\013fcmp.sueq.s\013fcmp.sule.d\013fcmp.sule.s\013fcmp.sult.d\013" ++ "fcmp.sult.s\nfcmp.sun.d\nfcmp.sun.s\013fcmp.sune.d\013fcmp.sune.s\013fc" ++ "opysign.d\013fcopysign.s\010fcvt.d.s\010fcvt.s.d\006fdiv.d\006fdiv.s\tf" ++ "fint.d.l\tffint.d.w\tffint.s.l\tffint.s.w\005fld.d\005fld.s\007fldgt.d\007" ++ "fldgt.s\007fldle.d\007fldle.s\006fldx.d\006fldx.s\007flogb.d\007flogb.s" ++ "\007fmadd.d\007fmadd.s\006fmax.d\006fmax.s\007fmaxa.d\007fmaxa.s\006fmi" ++ "n.d\006fmin.s\007fmina.d\007fmina.s\006fmov.d\006fmov.s\007fmsub.d\007f" ++ "msub.s\006fmul.d\006fmul.s\006fneg.d\006fneg.s\010fnmadd.d\010fnmadd.s\010" ++ "fnmsub.d\010fnmsub.s\010frecip.d\010frecip.s\007frint.d\007frint.s\010f" ++ "rsqrt.d\010frsqrt.s\tfscaleb.d\tfscaleb.s\004fsel\007fsqrt.d\007fsqrt.s" ++ "\005fst.d\005fst.s\007fstgt.d\007fstgt.s\007fstle.d\007fstle.s\006fstx." ++ "d\006fstx.s\006fsub.d\006fsub.s\tftint.l.d\tftint.l.s\tftint.w.d\tftint" ++ ".w.s\013ftintrm.l.d\013ftintrm.l.s\013ftintrm.w.d\013ftintrm.w.s\014fti" ++ "ntrne.l.d\014ftintrne.l.s\014ftintrne.w.d\014ftintrne.w.s\013ftintrp.l." ++ "d\013ftintrp.l.s\013ftintrp.w.d\013ftintrp.w.s\013ftintrz.l.d\013ftintr" ++ "z.l.s\013ftintrz.w.d\013ftintrz.w.s\007hypcall\004ibar\004idle\006invtl" ++ "b\tiocsrrd.b\tiocsrrd.d\tiocsrrd.h\tiocsrrd.w\tiocsrwr.b\tiocsrwr.d\tio" ++ "csrwr.h\tiocsrwr.w\004jirl\002jr\002la\tla.global\006la.got\010la.local" ++ "\010la.pcrel\tla.tls.gd\tla.tls.ie\tla.tls.ld\tla.tls.le\004ld.b\005ld." ++ "bu\004ld.d\004ld.h\005ld.hu\004ld.w\005ld.wu\005lddir\006ldgt.b\006ldgt" ++ ".d\006ldgt.h\006ldgt.w\006ldle.b\006ldle.d\006ldle.h\006ldle.w\005ldpte" ++ "\007ldptr.d\007ldptr.w\005ldx.b\006ldx.bu\005ldx.d\005ldx.h\006ldx.hu\005" ++ "ldx.w\006ldx.wu\004li.d\004li.w\004ll.d\004ll.w\007lu12i.w\007lu32i.d\007" ++ "lu52i.d\007maskeqz\007masknez\005mod.d\006mod.du\005mod.w\006mod.wu\010" ++ "movcf2fr\010movcf2gr\004move\nmovfcsr2gr\010movfr2cf\nmovfr2gr.d\nmovfr" ++ "2gr.s\013movfrh2gr.s\010movgr2cf\nmovgr2fcsr\nmovgr2fr.d\nmovgr2fr.w\013" ++ "movgr2frh.w\005mul.d\005mul.w\006mulh.d\007mulh.du\006mulh.w\007mulh.wu" ++ "\010mulw.d.w\tmulw.d.wu\003nop\003nor\002or\003ori\003orn\006pcaddi\tpc" ++ "addu12i\tpcaddu18i\tpcalau12i\005preld\010rdtime.d\trdtimeh.w\trdtimel." ++ "w\007revb.2h\007revb.2w\007revb.4h\006revb.d\007revh.2w\006revh.d\006ro" ++ "tr.d\006rotr.w\007rotri.d\007rotri.w\004sc.d\004sc.w\005sll.d\005sll.w\006" ++ "slli.d\006slli.w\003slt\004slti\004sltu\005sltui\005sra.d\005sra.w\006s" ++ "rai.d\006srai.w\005srl.d\005srl.w\006srli.d\006srli.w\004st.b\004st.d\004" ++ "st.h\004st.w\006stgt.b\006stgt.d\006stgt.h\006stgt.w\006stle.b\006stle." ++ "d\006stle.h\006stle.w\007stptr.d\007stptr.w\005stx.b\005stx.d\005stx.h\005" ++ "stx.w\005sub.d\005sub.w\007syscall\006tlbclr\007tlbfill\010tlbflush\005" ++ "tlbrd\007tlbsrch\005tlbwr\007vabsd.b\010vabsd.bu\007vabsd.d\010vabsd.du" ++ "\007vabsd.h\010vabsd.hu\007vabsd.w\010vabsd.wu\006vadd.b\006vadd.d\006v" ++ "add.h\006vadd.q\006vadd.w\007vadda.b\007vadda.d\007vadda.h\007vadda.w\010" ++ "vaddi.bu\010vaddi.du\010vaddi.hu\010vaddi.wu\013vaddwev.d.w\014vaddwev." ++ "d.wu\016vaddwev.d.wu.w\013vaddwev.h.b\014vaddwev.h.bu\016vaddwev.h.bu.b" ++ "\013vaddwev.q.d\014vaddwev.q.du\016vaddwev.q.du.d\013vaddwev.w.h\014vad" ++ "dwev.w.hu\016vaddwev.w.hu.h\013vaddwod.d.w\014vaddwod.d.wu\016vaddwod.d" ++ ".wu.w\013vaddwod.h.b\014vaddwod.h.bu\016vaddwod.h.bu.b\013vaddwod.q.d\014" ++ "vaddwod.q.du\016vaddwod.q.du.d\013vaddwod.w.h\014vaddwod.w.hu\016vaddwo" ++ "d.w.hu.h\006vand.v\007vandi.b\007vandn.v\006vavg.b\007vavg.bu\006vavg.d" ++ "\007vavg.du\006vavg.h\007vavg.hu\006vavg.w\007vavg.wu\007vavgr.b\010vav" ++ "gr.bu\007vavgr.d\010vavgr.du\007vavgr.h\010vavgr.hu\007vavgr.w\010vavgr" ++ ".wu\tvbitclr.b\tvbitclr.d\tvbitclr.h\tvbitclr.w\nvbitclri.b\nvbitclri.d" ++ "\nvbitclri.h\nvbitclri.w\tvbitrev.b\tvbitrev.d\tvbitrev.h\tvbitrev.w\nv" ++ "bitrevi.b\nvbitrevi.d\nvbitrevi.h\nvbitrevi.w\tvbitsel.v\nvbitseli.b\tv" ++ "bitset.b\tvbitset.d\tvbitset.h\tvbitset.w\nvbitseti.b\nvbitseti.d\nvbit" ++ "seti.h\nvbitseti.w\007vbsll.v\007vbsrl.v\006vclo.b\006vclo.d\006vclo.h\006" ++ "vclo.w\006vclz.b\006vclz.d\006vclz.h\006vclz.w\006vdiv.b\007vdiv.bu\006" ++ "vdiv.d\007vdiv.du\006vdiv.h\007vdiv.hu\006vdiv.w\007vdiv.wu\013vext2xv." ++ "d.b\013vext2xv.d.h\013vext2xv.d.w\015vext2xv.du.bu\015vext2xv.du.hu\015" ++ "vext2xv.du.wu\013vext2xv.h.b\015vext2xv.hu.bu\013vext2xv.w.b\013vext2xv" ++ ".w.h\015vext2xv.wu.bu\015vext2xv.wu.hu\tvexth.d.w\013vexth.du.wu\tvexth" ++ ".h.b\013vexth.hu.bu\tvexth.q.d\013vexth.qu.du\tvexth.w.h\013vexth.wu.hu" ++ "\tvextl.q.d\013vextl.qu.du\nvextrins.b\nvextrins.d\nvextrins.h\nvextrin" ++ "s.w\007vfadd.d\007vfadd.s\tvfclass.d\tvfclass.s\013vfcmp.caf.d\013vfcmp" ++ ".caf.s\013vfcmp.ceq.d\013vfcmp.ceq.s\013vfcmp.cle.d\013vfcmp.cle.s\013v" ++ "fcmp.clt.d\013vfcmp.clt.s\013vfcmp.cne.d\013vfcmp.cne.s\013vfcmp.cor.d\013" ++ "vfcmp.cor.s\014vfcmp.cueq.d\014vfcmp.cueq.s\014vfcmp.cule.d\014vfcmp.cu" ++ "le.s\014vfcmp.cult.d\014vfcmp.cult.s\013vfcmp.cun.d\013vfcmp.cun.s\014v" ++ "fcmp.cune.d\014vfcmp.cune.s\013vfcmp.saf.d\013vfcmp.saf.s\013vfcmp.seq." ++ "d\013vfcmp.seq.s\013vfcmp.sle.d\013vfcmp.sle.s\013vfcmp.slt.d\013vfcmp." ++ "slt.s\013vfcmp.sne.d\013vfcmp.sne.s\013vfcmp.sor.d\013vfcmp.sor.s\014vf" ++ "cmp.sueq.d\014vfcmp.sueq.s\014vfcmp.sule.d\014vfcmp.sule.s\014vfcmp.sul" ++ "t.d\014vfcmp.sult.s\013vfcmp.sun.d\013vfcmp.sun.s\014vfcmp.sune.d\014vf" ++ "cmp.sune.s\tvfcvt.h.s\tvfcvt.s.d\nvfcvth.d.s\nvfcvth.s.h\nvfcvtl.d.s\nv" ++ "fcvtl.s.h\007vfdiv.d\007vfdiv.s\nvffint.d.l\013vffint.d.lu\nvffint.s.l\n" ++ "vffint.s.w\013vffint.s.wu\013vffinth.d.w\013vffintl.d.w\010vflogb.d\010" ++ "vflogb.s\010vfmadd.d\010vfmadd.s\007vfmax.d\007vfmax.s\010vfmaxa.d\010v" ++ "fmaxa.s\007vfmin.d\007vfmin.s\010vfmina.d\010vfmina.s\010vfmsub.d\010vf" ++ "msub.s\007vfmul.d\007vfmul.s\tvfnmadd.d\tvfnmadd.s\tvfnmsub.d\tvfnmsub." ++ "s\tvfrecip.d\tvfrecip.s\010vfrint.d\010vfrint.s\nvfrintrm.d\nvfrintrm.s" ++ "\013vfrintrne.d\013vfrintrne.s\nvfrintrp.d\nvfrintrp.s\nvfrintrz.d\nvfr" ++ "intrz.s\tvfrsqrt.d\tvfrsqrt.s\010vfrstp.b\010vfrstp.h\tvfrstpi.b\tvfrst" ++ "pi.h\010vfsqrt.d\010vfsqrt.s\007vfsub.d\007vfsub.s\nvftint.l.d\013vftin" ++ "t.lu.d\nvftint.w.d\nvftint.w.s\013vftint.wu.s\013vftinth.l.s\013vftintl" ++ ".l.s\014vftintrm.l.d\014vftintrm.w.d\014vftintrm.w.s\015vftintrmh.l.s\015" ++ "vftintrml.l.s\015vftintrne.l.d\015vftintrne.w.d\015vftintrne.w.s\016vft" ++ "intrneh.l.s\016vftintrnel.l.s\014vftintrp.l.d\014vftintrp.w.d\014vftint" ++ "rp.w.s\015vftintrph.l.s\015vftintrpl.l.s\014vftintrz.l.d\015vftintrz.lu" ++ ".d\014vftintrz.w.d\014vftintrz.w.s\015vftintrz.wu.s\015vftintrzh.l.s\015" ++ "vftintrzl.l.s\nvhaddw.d.w\014vhaddw.du.wu\nvhaddw.h.b\014vhaddw.hu.bu\n" ++ "vhaddw.q.d\014vhaddw.qu.du\nvhaddw.w.h\014vhaddw.wu.hu\nvhsubw.d.w\014v" ++ "hsubw.du.wu\nvhsubw.h.b\014vhsubw.hu.bu\nvhsubw.q.d\014vhsubw.qu.du\nvh" ++ "subw.w.h\014vhsubw.wu.hu\007vilvh.b\007vilvh.d\007vilvh.h\007vilvh.w\007" ++ "vilvl.b\007vilvl.d\007vilvl.h\007vilvl.w\013vinsgr2vr.b\013vinsgr2vr.d\013" ++ "vinsgr2vr.h\013vinsgr2vr.w\003vld\004vldi\tvldrepl.b\tvldrepl.d\tvldrep" ++ "l.h\tvldrepl.w\004vldx\007vmadd.b\007vmadd.d\007vmadd.h\007vmadd.w\014v" ++ "maddwev.d.w\015vmaddwev.d.wu\017vmaddwev.d.wu.w\014vmaddwev.h.b\015vmad" ++ "dwev.h.bu\017vmaddwev.h.bu.b\014vmaddwev.q.d\015vmaddwev.q.du\017vmaddw" ++ "ev.q.du.d\014vmaddwev.w.h\015vmaddwev.w.hu\017vmaddwev.w.hu.h\014vmaddw" ++ "od.d.w\015vmaddwod.d.wu\017vmaddwod.d.wu.w\014vmaddwod.h.b\015vmaddwod." ++ "h.bu\017vmaddwod.h.bu.b\014vmaddwod.q.d\015vmaddwod.q.du\017vmaddwod.q." ++ "du.d\014vmaddwod.w.h\015vmaddwod.w.hu\017vmaddwod.w.hu.h\006vmax.b\007v" ++ "max.bu\006vmax.d\007vmax.du\006vmax.h\007vmax.hu\006vmax.w\007vmax.wu\007" ++ "vmaxi.b\010vmaxi.bu\007vmaxi.d\010vmaxi.du\007vmaxi.h\010vmaxi.hu\007vm" ++ "axi.w\010vmaxi.wu\006vmin.b\007vmin.bu\006vmin.d\007vmin.du\006vmin.h\007" ++ "vmin.hu\006vmin.w\007vmin.wu\007vmini.b\010vmini.bu\007vmini.d\010vmini" ++ ".du\007vmini.h\010vmini.hu\007vmini.w\010vmini.wu\006vmod.b\007vmod.bu\006" ++ "vmod.d\007vmod.du\006vmod.h\007vmod.hu\006vmod.w\007vmod.wu\tvmskgez.b\t" ++ "vmskltz.b\tvmskltz.d\tvmskltz.h\tvmskltz.w\010vmsknz.b\007vmsub.b\007vm" ++ "sub.d\007vmsub.h\007vmsub.w\006vmuh.b\007vmuh.bu\006vmuh.d\007vmuh.du\006" ++ "vmuh.h\007vmuh.hu\006vmuh.w\007vmuh.wu\006vmul.b\006vmul.d\006vmul.h\006" ++ "vmul.w\013vmulwev.d.w\014vmulwev.d.wu\016vmulwev.d.wu.w\013vmulwev.h.b\014" ++ "vmulwev.h.bu\016vmulwev.h.bu.b\013vmulwev.q.d\014vmulwev.q.du\016vmulwe" ++ "v.q.du.d\013vmulwev.w.h\014vmulwev.w.hu\016vmulwev.w.hu.h\013vmulwod.d." ++ "w\014vmulwod.d.wu\016vmulwod.d.wu.w\013vmulwod.h.b\014vmulwod.h.bu\016v" ++ "mulwod.h.bu.b\013vmulwod.q.d\014vmulwod.q.du\016vmulwod.q.du.d\013vmulw" ++ "od.w.h\014vmulwod.w.hu\016vmulwod.w.hu.h\006vneg.b\006vneg.d\006vneg.h\006" ++ "vneg.w\006vnor.v\007vnori.b\005vor.v\006vori.b\006vorn.v\tvpackev.b\tvp" ++ "ackev.d\tvpackev.h\tvpackev.w\tvpackod.b\tvpackod.d\tvpackod.h\tvpackod" ++ ".w\007vpcnt.b\007vpcnt.d\007vpcnt.h\007vpcnt.w\010vpermi.w\tvpickev.b\t" ++ "vpickev.d\tvpickev.h\tvpickev.w\tvpickod.b\tvpickod.d\tvpickod.h\tvpick" ++ "od.w\014vpickve2gr.b\015vpickve2gr.bu\014vpickve2gr.d\015vpickve2gr.du\014" ++ "vpickve2gr.h\015vpickve2gr.hu\014vpickve2gr.w\015vpickve2gr.wu\014vrepl" ++ "gr2vr.b\014vreplgr2vr.d\014vreplgr2vr.h\014vreplgr2vr.w\tvreplve.b\tvre" ++ "plve.d\tvreplve.h\tvreplve.w\nvreplvei.b\nvreplvei.d\nvreplvei.h\nvrepl" ++ "vei.w\007vrotr.b\007vrotr.d\007vrotr.h\007vrotr.w\010vrotri.b\010vrotri" ++ ".d\010vrotri.h\010vrotri.w\007vsadd.b\010vsadd.bu\007vsadd.d\010vsadd.d" ++ "u\007vsadd.h\010vsadd.hu\007vsadd.w\010vsadd.wu\006vsat.b\007vsat.bu\006" ++ "vsat.d\007vsat.du\006vsat.h\007vsat.hu\006vsat.w\007vsat.wu\006vseq.b\006" ++ "vseq.d\006vseq.h\006vseq.w\007vseqi.b\007vseqi.d\007vseqi.h\007vseqi.w\014" ++ "vsetallnez.b\014vsetallnez.d\014vsetallnez.h\014vsetallnez.w\014vsetany" ++ "eqz.b\014vsetanyeqz.d\014vsetanyeqz.h\014vsetanyeqz.w\tvseteqz.v\tvsetn" ++ "ez.v\007vshuf.b\007vshuf.d\007vshuf.h\007vshuf.w\tvshuf4i.b\tvshuf4i.d\t" ++ "vshuf4i.h\tvshuf4i.w\nvsigncov.b\nvsigncov.d\nvsigncov.h\nvsigncov.w\006" ++ "vsle.b\007vsle.bu\006vsle.d\007vsle.du\006vsle.h\007vsle.hu\006vsle.w\007" ++ "vsle.wu\007vslei.b\010vslei.bu\007vslei.d\010vslei.du\007vslei.h\010vsl" ++ "ei.hu\007vslei.w\010vslei.wu\006vsll.b\006vsll.d\006vsll.h\006vsll.w\007" ++ "vslli.b\007vslli.d\007vslli.h\007vslli.w\013vsllwil.d.w\015vsllwil.du.w" ++ "u\013vsllwil.h.b\015vsllwil.hu.bu\013vsllwil.w.h\015vsllwil.wu.hu\006vs" ++ "lt.b\007vslt.bu\006vslt.d\007vslt.du\006vslt.h\007vslt.hu\006vslt.w\007" ++ "vslt.wu\007vslti.b\010vslti.bu\007vslti.d\010vslti.du\007vslti.h\010vsl" ++ "ti.hu\007vslti.w\010vslti.wu\006vsra.b\006vsra.d\006vsra.h\006vsra.w\007" ++ "vsrai.b\007vsrai.d\007vsrai.h\007vsrai.w\tvsran.b.h\tvsran.h.w\tvsran.w" ++ ".d\nvsrani.b.h\nvsrani.d.q\nvsrani.h.w\nvsrani.w.d\007vsrar.b\007vsrar." ++ "d\007vsrar.h\007vsrar.w\010vsrari.b\010vsrari.d\010vsrari.h\010vsrari.w" ++ "\nvsrarn.b.h\nvsrarn.h.w\nvsrarn.w.d\013vsrarni.b.h\013vsrarni.d.q\013v" ++ "srarni.h.w\013vsrarni.w.d\006vsrl.b\006vsrl.d\006vsrl.h\006vsrl.w\007vs" ++ "rli.b\007vsrli.d\007vsrli.h\007vsrli.w\tvsrln.b.h\tvsrln.h.w\tvsrln.w.d" ++ "\nvsrlni.b.h\nvsrlni.d.q\nvsrlni.h.w\nvsrlni.w.d\007vsrlr.b\007vsrlr.d\007" ++ "vsrlr.h\007vsrlr.w\010vsrlri.b\010vsrlri.d\010vsrlri.h\010vsrlri.w\nvsr" ++ "lrn.b.h\nvsrlrn.h.w\nvsrlrn.w.d\013vsrlrni.b.h\013vsrlrni.d.q\013vsrlrn" ++ "i.h.w\013vsrlrni.w.d\nvssran.b.h\013vssran.bu.h\nvssran.h.w\013vssran.h" ++ "u.w\nvssran.w.d\013vssran.wu.d\013vssrani.b.h\014vssrani.bu.h\013vssran" ++ "i.d.q\014vssrani.du.q\013vssrani.h.w\014vssrani.hu.w\013vssrani.w.d\014" ++ "vssrani.wu.d\013vssrarn.b.h\014vssrarn.bu.h\013vssrarn.h.w\014vssrarn.h" ++ "u.w\013vssrarn.w.d\014vssrarn.wu.d\014vssrarni.b.h\015vssrarni.bu.h\014" ++ "vssrarni.d.q\015vssrarni.du.q\014vssrarni.h.w\015vssrarni.hu.w\014vssra" ++ "rni.w.d\015vssrarni.wu.d\nvssrln.b.h\013vssrln.bu.h\nvssrln.h.w\013vssr" ++ "ln.hu.w\nvssrln.w.d\013vssrln.wu.d\013vssrlni.b.h\014vssrlni.bu.h\013vs" ++ "srlni.d.q\014vssrlni.du.q\013vssrlni.h.w\014vssrlni.hu.w\013vssrlni.w.d" ++ "\014vssrlni.wu.d\013vssrlrn.b.h\014vssrlrn.bu.h\013vssrlrn.h.w\014vssrl" ++ "rn.hu.w\013vssrlrn.w.d\014vssrlrn.wu.d\014vssrlrni.b.h\015vssrlrni.bu.h" ++ "\014vssrlrni.d.q\015vssrlrni.du.q\014vssrlrni.h.w\015vssrlrni.hu.w\014v" ++ "ssrlrni.w.d\015vssrlrni.wu.d\007vssub.b\010vssub.bu\007vssub.d\010vssub" ++ ".du\007vssub.h\010vssub.hu\007vssub.w\010vssub.wu\003vst\010vstelm.b\010" ++ "vstelm.d\010vstelm.h\010vstelm.w\004vstx\006vsub.b\006vsub.d\006vsub.h\006" ++ "vsub.q\006vsub.w\010vsubi.bu\010vsubi.du\010vsubi.hu\010vsubi.wu\013vsu" ++ "bwev.d.w\014vsubwev.d.wu\013vsubwev.h.b\014vsubwev.h.bu\013vsubwev.q.d\014" ++ "vsubwev.q.du\013vsubwev.w.h\014vsubwev.w.hu\013vsubwod.d.w\014vsubwod.d" ++ ".wu\013vsubwod.h.b\014vsubwod.h.bu\013vsubwod.q.d\014vsubwod.q.du\013vs" ++ "ubwod.w.h\014vsubwod.w.hu\006vxor.v\007vxori.b\003xor\004xori\010xvabsd" ++ ".b\txvabsd.bu\010xvabsd.d\txvabsd.du\010xvabsd.h\txvabsd.hu\010xvabsd.w" ++ "\txvabsd.wu\007xvadd.b\007xvadd.d\007xvadd.h\007xvadd.q\007xvadd.w\010x" ++ "vadda.b\010xvadda.d\010xvadda.h\010xvadda.w\txvaddi.bu\txvaddi.du\txvad" ++ "di.hu\txvaddi.wu\014xvaddwev.d.w\015xvaddwev.d.wu\017xvaddwev.d.wu.w\014" ++ "xvaddwev.h.b\015xvaddwev.h.bu\017xvaddwev.h.bu.b\014xvaddwev.q.d\015xva" ++ "ddwev.q.du\017xvaddwev.q.du.d\014xvaddwev.w.h\015xvaddwev.w.hu\017xvadd" ++ "wev.w.hu.h\014xvaddwod.d.w\015xvaddwod.d.wu\017xvaddwod.d.wu.w\014xvadd" ++ "wod.h.b\015xvaddwod.h.bu\017xvaddwod.h.bu.b\014xvaddwod.q.d\015xvaddwod" ++ ".q.du\017xvaddwod.q.du.d\014xvaddwod.w.h\015xvaddwod.w.hu\017xvaddwod.w" ++ ".hu.h\007xvand.v\010xvandi.b\010xvandn.v\007xvavg.b\010xvavg.bu\007xvav" ++ "g.d\010xvavg.du\007xvavg.h\010xvavg.hu\007xvavg.w\010xvavg.wu\010xvavgr" ++ ".b\txvavgr.bu\010xvavgr.d\txvavgr.du\010xvavgr.h\txvavgr.hu\010xvavgr.w" ++ "\txvavgr.wu\nxvbitclr.b\nxvbitclr.d\nxvbitclr.h\nxvbitclr.w\013xvbitclr" ++ "i.b\013xvbitclri.d\013xvbitclri.h\013xvbitclri.w\nxvbitrev.b\nxvbitrev." ++ "d\nxvbitrev.h\nxvbitrev.w\013xvbitrevi.b\013xvbitrevi.d\013xvbitrevi.h\013" ++ "xvbitrevi.w\nxvbitsel.v\013xvbitseli.b\nxvbitset.b\nxvbitset.d\nxvbitse" ++ "t.h\nxvbitset.w\013xvbitseti.b\013xvbitseti.d\013xvbitseti.h\013xvbitse" ++ "ti.w\010xvbsll.v\010xvbsrl.v\007xvclo.b\007xvclo.d\007xvclo.h\007xvclo." ++ "w\007xvclz.b\007xvclz.d\007xvclz.h\007xvclz.w\007xvdiv.b\010xvdiv.bu\007" ++ "xvdiv.d\010xvdiv.du\007xvdiv.h\010xvdiv.hu\007xvdiv.w\010xvdiv.wu\nxvex" ++ "th.d.w\014xvexth.du.wu\nxvexth.h.b\014xvexth.hu.bu\nxvexth.q.d\014xvext" ++ "h.qu.du\nxvexth.w.h\014xvexth.wu.hu\nxvextl.q.d\014xvextl.qu.du\013xvex" ++ "trins.b\013xvextrins.d\013xvextrins.h\013xvextrins.w\010xvfadd.d\010xvf" ++ "add.s\nxvfclass.d\nxvfclass.s\014xvfcmp.caf.d\014xvfcmp.caf.s\014xvfcmp" ++ ".ceq.d\014xvfcmp.ceq.s\014xvfcmp.cle.d\014xvfcmp.cle.s\014xvfcmp.clt.d\014" ++ "xvfcmp.clt.s\014xvfcmp.cne.d\014xvfcmp.cne.s\014xvfcmp.cor.d\014xvfcmp." ++ "cor.s\015xvfcmp.cueq.d\015xvfcmp.cueq.s\015xvfcmp.cule.d\015xvfcmp.cule" ++ ".s\015xvfcmp.cult.d\015xvfcmp.cult.s\014xvfcmp.cun.d\014xvfcmp.cun.s\015" ++ "xvfcmp.cune.d\015xvfcmp.cune.s\014xvfcmp.saf.d\014xvfcmp.saf.s\014xvfcm" ++ "p.seq.d\014xvfcmp.seq.s\014xvfcmp.sle.d\014xvfcmp.sle.s\014xvfcmp.slt.d" ++ "\014xvfcmp.slt.s\014xvfcmp.sne.d\014xvfcmp.sne.s\014xvfcmp.sor.d\014xvf" ++ "cmp.sor.s\015xvfcmp.sueq.d\015xvfcmp.sueq.s\015xvfcmp.sule.d\015xvfcmp." ++ "sule.s\015xvfcmp.sult.d\015xvfcmp.sult.s\014xvfcmp.sun.d\014xvfcmp.sun." ++ "s\015xvfcmp.sune.d\015xvfcmp.sune.s\nxvfcvt.h.s\nxvfcvt.s.d\013xvfcvth." ++ "d.s\013xvfcvth.s.h\013xvfcvtl.d.s\013xvfcvtl.s.h\010xvfdiv.d\010xvfdiv." ++ "s\013xvffint.d.l\014xvffint.d.lu\013xvffint.s.l\013xvffint.s.w\014xvffi" ++ "nt.s.wu\014xvffinth.d.w\014xvffintl.d.w\txvflogb.d\txvflogb.s\txvfmadd." ++ "d\txvfmadd.s\010xvfmax.d\010xvfmax.s\txvfmaxa.d\txvfmaxa.s\010xvfmin.d\010" ++ "xvfmin.s\txvfmina.d\txvfmina.s\txvfmsub.d\txvfmsub.s\010xvfmul.d\010xvf" ++ "mul.s\nxvfnmadd.d\nxvfnmadd.s\nxvfnmsub.d\nxvfnmsub.s\nxvfrecip.d\nxvfr" ++ "ecip.s\txvfrint.d\txvfrint.s\013xvfrintrm.d\013xvfrintrm.s\014xvfrintrn" ++ "e.d\014xvfrintrne.s\013xvfrintrp.d\013xvfrintrp.s\013xvfrintrz.d\013xvf" ++ "rintrz.s\nxvfrsqrt.d\nxvfrsqrt.s\txvfrstp.b\txvfrstp.h\nxvfrstpi.b\nxvf" ++ "rstpi.h\txvfsqrt.d\txvfsqrt.s\010xvfsub.d\010xvfsub.s\013xvftint.l.d\014" ++ "xvftint.lu.d\013xvftint.w.d\013xvftint.w.s\014xvftint.wu.s\014xvftinth." ++ "l.s\014xvftintl.l.s\015xvftintrm.l.d\015xvftintrm.w.d\015xvftintrm.w.s\016" ++ "xvftintrmh.l.s\016xvftintrml.l.s\016xvftintrne.l.d\016xvftintrne.w.d\016" ++ "xvftintrne.w.s\017xvftintrneh.l.s\017xvftintrnel.l.s\015xvftintrp.l.d\015" ++ "xvftintrp.w.d\015xvftintrp.w.s\016xvftintrph.l.s\016xvftintrpl.l.s\015x" ++ "vftintrz.l.d\016xvftintrz.lu.d\015xvftintrz.w.d\015xvftintrz.w.s\016xvf" ++ "tintrz.wu.s\016xvftintrzh.l.s\016xvftintrzl.l.s\013xvhaddw.d.w\015xvhad" ++ "dw.du.wu\013xvhaddw.h.b\015xvhaddw.hu.bu\013xvhaddw.q.d\015xvhaddw.qu.d" ++ "u\013xvhaddw.w.h\015xvhaddw.wu.hu\txvhseli.d\013xvhsubw.d.w\015xvhsubw." ++ "du.wu\013xvhsubw.h.b\015xvhsubw.hu.bu\013xvhsubw.q.d\015xvhsubw.qu.du\013" ++ "xvhsubw.w.h\015xvhsubw.wu.hu\010xvilvh.b\010xvilvh.d\010xvilvh.h\010xvi" ++ "lvh.w\010xvilvl.b\010xvilvl.d\010xvilvl.h\010xvilvl.w\014xvinsgr2vr.d\014" ++ "xvinsgr2vr.w\nxvinsve0.d\nxvinsve0.w\004xvld\005xvldi\nxvldrepl.b\nxvld" ++ "repl.d\nxvldrepl.h\nxvldrepl.w\005xvldx\010xvmadd.b\010xvmadd.d\010xvma" ++ "dd.h\010xvmadd.w\015xvmaddwev.d.w\016xvmaddwev.d.wu\020xvmaddwev.d.wu.w" ++ "\015xvmaddwev.h.b\016xvmaddwev.h.bu\020xvmaddwev.h.bu.b\015xvmaddwev.q." ++ "d\016xvmaddwev.q.du\020xvmaddwev.q.du.d\015xvmaddwev.w.h\016xvmaddwev.w" ++ ".hu\020xvmaddwev.w.hu.h\015xvmaddwod.d.w\016xvmaddwod.d.wu\020xvmaddwod" ++ ".d.wu.w\015xvmaddwod.h.b\016xvmaddwod.h.bu\020xvmaddwod.h.bu.b\015xvmad" ++ "dwod.q.d\016xvmaddwod.q.du\020xvmaddwod.q.du.d\015xvmaddwod.w.h\016xvma" ++ "ddwod.w.hu\020xvmaddwod.w.hu.h\007xvmax.b\010xvmax.bu\007xvmax.d\010xvm" ++ "ax.du\007xvmax.h\010xvmax.hu\007xvmax.w\010xvmax.wu\010xvmaxi.b\txvmaxi" ++ ".bu\010xvmaxi.d\txvmaxi.du\010xvmaxi.h\txvmaxi.hu\010xvmaxi.w\txvmaxi.w" ++ "u\007xvmin.b\010xvmin.bu\007xvmin.d\010xvmin.du\007xvmin.h\010xvmin.hu\007" ++ "xvmin.w\010xvmin.wu\010xvmini.b\txvmini.bu\010xvmini.d\txvmini.du\010xv" ++ "mini.h\txvmini.hu\010xvmini.w\txvmini.wu\007xvmod.b\010xvmod.bu\007xvmo" ++ "d.d\010xvmod.du\007xvmod.h\010xvmod.hu\007xvmod.w\010xvmod.wu\nxvmskgez" ++ ".b\nxvmskltz.b\nxvmskltz.d\nxvmskltz.h\nxvmskltz.w\txvmsknz.b\010xvmsub" ++ ".b\010xvmsub.d\010xvmsub.h\010xvmsub.w\007xvmuh.b\010xvmuh.bu\007xvmuh." ++ "d\010xvmuh.du\007xvmuh.h\010xvmuh.hu\007xvmuh.w\010xvmuh.wu\007xvmul.b\007" ++ "xvmul.d\007xvmul.h\007xvmul.w\014xvmulwev.d.w\015xvmulwev.d.wu\017xvmul" ++ "wev.d.wu.w\014xvmulwev.h.b\015xvmulwev.h.bu\017xvmulwev.h.bu.b\014xvmul" ++ "wev.q.d\015xvmulwev.q.du\017xvmulwev.q.du.d\014xvmulwev.w.h\015xvmulwev" ++ ".w.hu\017xvmulwev.w.hu.h\014xvmulwod.d.w\015xvmulwod.d.wu\017xvmulwod.d" ++ ".wu.w\014xvmulwod.h.b\015xvmulwod.h.bu\017xvmulwod.h.bu.b\014xvmulwod.q" ++ ".d\015xvmulwod.q.du\017xvmulwod.q.du.d\014xvmulwod.w.h\015xvmulwod.w.hu" ++ "\017xvmulwod.w.hu.h\007xvneg.b\007xvneg.d\007xvneg.h\007xvneg.w\007xvno" ++ "r.v\010xvnori.b\006xvor.v\007xvori.b\007xvorn.v\nxvpackev.b\nxvpackev.d" ++ "\nxvpackev.h\nxvpackev.w\nxvpackod.b\nxvpackod.d\nxvpackod.h\nxvpackod." ++ "w\010xvpcnt.b\010xvpcnt.d\010xvpcnt.h\010xvpcnt.w\010xvperm.w\txvpermi." ++ "d\txvpermi.q\txvpermi.w\nxvpickev.b\nxvpickev.d\nxvpickev.h\nxvpickev.w" ++ "\nxvpickod.b\nxvpickod.d\nxvpickod.h\nxvpickod.w\nxvpickve.d\nxvpickve." ++ "w\015xvpickve2gr.d\016xvpickve2gr.du\015xvpickve2gr.w\016xvpickve2gr.wu" ++ "\016xvrepl128vei.b\016xvrepl128vei.d\016xvrepl128vei.h\016xvrepl128vei." ++ "w\015xvreplgr2vr.b\015xvreplgr2vr.d\015xvreplgr2vr.h\015xvreplgr2vr.w\n" ++ "xvreplve.b\nxvreplve.d\nxvreplve.h\nxvreplve.w\013xvreplve0.b\013xvrepl" ++ "ve0.d\013xvreplve0.h\013xvreplve0.q\013xvreplve0.w\010xvrotr.b\010xvrot" ++ "r.d\010xvrotr.h\010xvrotr.w\txvrotri.b\txvrotri.d\txvrotri.h\txvrotri.w" ++ "\010xvsadd.b\txvsadd.bu\010xvsadd.d\txvsadd.du\010xvsadd.h\txvsadd.hu\010" ++ "xvsadd.w\txvsadd.wu\007xvsat.b\010xvsat.bu\007xvsat.d\010xvsat.du\007xv" ++ "sat.h\010xvsat.hu\007xvsat.w\010xvsat.wu\007xvseq.b\007xvseq.d\007xvseq" ++ ".h\007xvseq.w\010xvseqi.b\010xvseqi.d\010xvseqi.h\010xvseqi.w\015xvseta" ++ "llnez.b\015xvsetallnez.d\015xvsetallnez.h\015xvsetallnez.w\015xvsetanye" ++ "qz.b\015xvsetanyeqz.d\015xvsetanyeqz.h\015xvsetanyeqz.w\nxvseteqz.v\nxv" ++ "setnez.v\010xvshuf.b\010xvshuf.d\010xvshuf.h\010xvshuf.w\nxvshuf4i.b\nx" ++ "vshuf4i.d\nxvshuf4i.h\nxvshuf4i.w\013xvsigncov.b\013xvsigncov.d\013xvsi" ++ "gncov.h\013xvsigncov.w\007xvsle.b\010xvsle.bu\007xvsle.d\010xvsle.du\007" ++ "xvsle.h\010xvsle.hu\007xvsle.w\010xvsle.wu\010xvslei.b\txvslei.bu\010xv" ++ "slei.d\txvslei.du\010xvslei.h\txvslei.hu\010xvslei.w\txvslei.wu\007xvsl" ++ "l.b\007xvsll.d\007xvsll.h\007xvsll.w\010xvslli.b\010xvslli.d\010xvslli." ++ "h\010xvslli.w\014xvsllwil.d.w\016xvsllwil.du.wu\014xvsllwil.h.b\016xvsl" ++ "lwil.hu.bu\014xvsllwil.w.h\016xvsllwil.wu.hu\007xvslt.b\010xvslt.bu\007" ++ "xvslt.d\010xvslt.du\007xvslt.h\010xvslt.hu\007xvslt.w\010xvslt.wu\010xv" ++ "slti.b\txvslti.bu\010xvslti.d\txvslti.du\010xvslti.h\txvslti.hu\010xvsl" ++ "ti.w\txvslti.wu\007xvsra.b\007xvsra.d\007xvsra.h\007xvsra.w\010xvsrai.b" ++ "\010xvsrai.d\010xvsrai.h\010xvsrai.w\nxvsran.b.h\nxvsran.h.w\nxvsran.w." ++ "d\013xvsrani.b.h\013xvsrani.d.q\013xvsrani.h.w\013xvsrani.w.d\010xvsrar" ++ ".b\010xvsrar.d\010xvsrar.h\010xvsrar.w\txvsrari.b\txvsrari.d\txvsrari.h" ++ "\txvsrari.w\013xvsrarn.b.h\013xvsrarn.h.w\013xvsrarn.w.d\014xvsrarni.b." ++ "h\014xvsrarni.d.q\014xvsrarni.h.w\014xvsrarni.w.d\007xvsrl.b\007xvsrl.d" ++ "\007xvsrl.h\007xvsrl.w\010xvsrli.b\010xvsrli.d\010xvsrli.h\010xvsrli.w\n" ++ "xvsrln.b.h\nxvsrln.h.w\nxvsrln.w.d\013xvsrlni.b.h\013xvsrlni.d.q\013xvs" ++ "rlni.h.w\013xvsrlni.w.d\010xvsrlr.b\010xvsrlr.d\010xvsrlr.h\010xvsrlr.w" ++ "\txvsrlri.b\txvsrlri.d\txvsrlri.h\txvsrlri.w\013xvsrlrn.b.h\013xvsrlrn." ++ "h.w\013xvsrlrn.w.d\014xvsrlrni.b.h\014xvsrlrni.d.q\014xvsrlrni.h.w\014x" ++ "vsrlrni.w.d\013xvssran.b.h\014xvssran.bu.h\013xvssran.h.w\014xvssran.hu" ++ ".w\013xvssran.w.d\014xvssran.wu.d\014xvssrani.b.h\015xvssrani.bu.h\014x" ++ "vssrani.d.q\015xvssrani.du.q\014xvssrani.h.w\015xvssrani.hu.w\014xvssra" ++ "ni.w.d\015xvssrani.wu.d\014xvssrarn.b.h\015xvssrarn.bu.h\014xvssrarn.h." ++ "w\015xvssrarn.hu.w\014xvssrarn.w.d\015xvssrarn.wu.d\015xvssrarni.b.h\016" ++ "xvssrarni.bu.h\015xvssrarni.d.q\016xvssrarni.du.q\015xvssrarni.h.w\016x" ++ "vssrarni.hu.w\015xvssrarni.w.d\016xvssrarni.wu.d\013xvssrln.b.h\014xvss" ++ "rln.bu.h\013xvssrln.h.w\014xvssrln.hu.w\013xvssrln.w.d\014xvssrln.wu.d\014" ++ "xvssrlni.b.h\015xvssrlni.bu.h\014xvssrlni.d.q\015xvssrlni.du.q\014xvssr" ++ "lni.h.w\015xvssrlni.hu.w\014xvssrlni.w.d\015xvssrlni.wu.d\014xvssrlrn.b" ++ ".h\015xvssrlrn.bu.h\014xvssrlrn.h.w\015xvssrlrn.hu.w\014xvssrlrn.w.d\015" ++ "xvssrlrn.wu.d\015xvssrlrni.b.h\016xvssrlrni.bu.h\015xvssrlrni.d.q\016xv" ++ "ssrlrni.du.q\015xvssrlrni.h.w\016xvssrlrni.hu.w\015xvssrlrni.w.d\016xvs" ++ "srlrni.wu.d\010xvssub.b\txvssub.bu\010xvssub.d\txvssub.du\010xvssub.h\t" ++ "xvssub.hu\010xvssub.w\txvssub.wu\004xvst\txvstelm.b\txvstelm.d\txvstelm" ++ ".h\txvstelm.w\005xvstx\007xvsub.b\007xvsub.d\007xvsub.h\007xvsub.q\007x" ++ "vsub.w\txvsubi.bu\txvsubi.du\txvsubi.hu\txvsubi.wu\014xvsubwev.d.w\015x" ++ "vsubwev.d.wu\014xvsubwev.h.b\015xvsubwev.h.bu\014xvsubwev.q.d\015xvsubw" ++ "ev.q.du\014xvsubwev.w.h\015xvsubwev.w.hu\014xvsubwod.d.w\015xvsubwod.d." ++ "wu\014xvsubwod.h.b\015xvsubwod.h.bu\014xvsubwod.q.d\015xvsubwod.q.du\014" ++ "xvsubwod.w.h\015xvsubwod.w.hu\007xvxor.v\010xvxori.b"; ++ ++// Feature bitsets. ++enum : uint8_t { ++ AMFBS_None, ++ AMFBS_IsGP32bit, ++ AMFBS_IsGP64bit, ++}; ++ ++static constexpr FeatureBitset FeatureBitsets[] = { ++ {}, // AMFBS_None ++ {Feature_IsGP32bitBit, }, ++ {Feature_IsGP64bitBit, }, ++}; ++ ++namespace { ++ struct MatchEntry { ++ uint16_t Mnemonic; ++ uint16_t Opcode; ++ uint8_t ConvertFn; ++ uint8_t RequiredFeaturesIdx; ++ uint8_t Classes[4]; ++ StringRef getMnemonic() const { ++ return StringRef(MnemonicTable + Mnemonic + 1, ++ MnemonicTable[Mnemonic]); ++ } ++ }; ++ ++ // Predicate for searching for an opcode. ++ struct LessOpcode { ++ bool operator()(const MatchEntry &LHS, StringRef RHS) { ++ return LHS.getMnemonic() < RHS; ++ } ++ bool operator()(StringRef LHS, const MatchEntry &RHS) { ++ return LHS < RHS.getMnemonic(); ++ } ++ bool operator()(const MatchEntry &LHS, const MatchEntry &RHS) { ++ return LHS.getMnemonic() < RHS.getMnemonic(); ++ } ++ }; ++} // end anonymous namespace ++ ++static const MatchEntry MatchTable0[] = { ++ { 0 /* add.d */, LoongArch::ADD_D, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 6 /* add.w */, LoongArch::ADD_W, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__GPR32AsmReg1_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg, MCK_GPR32AsmReg }, }, ++ { 12 /* addi.d */, LoongArch::ADDI_D, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__SImm121_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_SImm12 }, }, ++ { 19 /* addi.w */, LoongArch::ADDI_W, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__SImm121_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg, MCK_SImm12 }, }, ++ { 19 /* addi.w */, LoongArch::ADDI_W64, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__SImm121_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_SImm12 }, }, ++ { 26 /* addu16i.d */, LoongArch::ADDU16I_D, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__SImm161_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_SImm16 }, }, ++ { 36 /* alsl.d */, LoongArch::ALSL_D, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2__ConstantUImm2_11_3, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_ConstantUImm2_1 }, }, ++ { 43 /* alsl.w */, LoongArch::ALSL_W, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__GPR32AsmReg1_2__ConstantUImm2_11_3, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg, MCK_GPR32AsmReg, MCK_ConstantUImm2_1 }, }, ++ { 50 /* alsl.wu */, LoongArch::ALSL_WU, Convert__GPR64AsmReg1_0__GPR32AsmReg1_1__GPR32AsmReg1_2__ConstantUImm2_11_3, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR32AsmReg, MCK_GPR32AsmReg, MCK_ConstantUImm2_1 }, }, ++ { 58 /* amadd.d */, LoongArch::AMADD_D, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__AMem2_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_AMem }, }, ++ { 66 /* amadd.w */, LoongArch::AMADD_W, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__AMem2_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg, MCK_AMem }, }, ++ { 74 /* amadd_db.d */, LoongArch::AMADD_DB_D, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__AMem2_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_AMem }, }, ++ { 85 /* amadd_db.w */, LoongArch::AMADD_DB_W, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__AMem2_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg, MCK_AMem }, }, ++ { 96 /* amand.d */, LoongArch::AMAND_D, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__AMem2_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_AMem }, }, ++ { 104 /* amand.w */, LoongArch::AMAND_W, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__AMem2_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg, MCK_AMem }, }, ++ { 112 /* amand_db.d */, LoongArch::AMAND_DB_D, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__AMem2_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_AMem }, }, ++ { 123 /* amand_db.w */, LoongArch::AMAND_DB_W, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__AMem2_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg, MCK_AMem }, }, ++ { 134 /* ammax.d */, LoongArch::AMMAX_D, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__AMem2_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_AMem }, }, ++ { 142 /* ammax.du */, LoongArch::AMMAX_DU, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__AMem2_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_AMem }, }, ++ { 151 /* ammax.w */, LoongArch::AMMAX_W, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__AMem2_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg, MCK_AMem }, }, ++ { 159 /* ammax.wu */, LoongArch::AMMAX_WU, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__AMem2_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg, MCK_AMem }, }, ++ { 168 /* ammax_db.d */, LoongArch::AMMAX_DB_D, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__AMem2_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_AMem }, }, ++ { 179 /* ammax_db.du */, LoongArch::AMMAX_DB_DU, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__AMem2_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_AMem }, }, ++ { 191 /* ammax_db.w */, LoongArch::AMMAX_DB_W, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__AMem2_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg, MCK_AMem }, }, ++ { 202 /* ammax_db.wu */, LoongArch::AMMAX_DB_WU, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__AMem2_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg, MCK_AMem }, }, ++ { 214 /* ammin.d */, LoongArch::AMMIN_D, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__AMem2_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_AMem }, }, ++ { 222 /* ammin.du */, LoongArch::AMMIN_DU, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__AMem2_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_AMem }, }, ++ { 231 /* ammin.w */, LoongArch::AMMIN_W, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__AMem2_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg, MCK_AMem }, }, ++ { 239 /* ammin.wu */, LoongArch::AMMIN_WU, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__AMem2_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg, MCK_AMem }, }, ++ { 248 /* ammin_db.d */, LoongArch::AMMIN_DB_D, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__AMem2_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_AMem }, }, ++ { 259 /* ammin_db.du */, LoongArch::AMMIN_DB_DU, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__AMem2_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_AMem }, }, ++ { 271 /* ammin_db.w */, LoongArch::AMMIN_DB_W, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__AMem2_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg, MCK_AMem }, }, ++ { 282 /* ammin_db.wu */, LoongArch::AMMIN_DB_WU, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__AMem2_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg, MCK_AMem }, }, ++ { 294 /* amor.d */, LoongArch::AMOR_D, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__AMem2_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_AMem }, }, ++ { 301 /* amor.w */, LoongArch::AMOR_W, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__AMem2_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg, MCK_AMem }, }, ++ { 308 /* amor_db.d */, LoongArch::AMOR_DB_D, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__AMem2_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_AMem }, }, ++ { 318 /* amor_db.w */, LoongArch::AMOR_DB_W, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__AMem2_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg, MCK_AMem }, }, ++ { 328 /* amswap.d */, LoongArch::AMSWAP_D, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__AMem2_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_AMem }, }, ++ { 337 /* amswap.w */, LoongArch::AMSWAP_W, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__AMem2_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg, MCK_AMem }, }, ++ { 346 /* amswap_db.d */, LoongArch::AMSWAP_DB_D, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__AMem2_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_AMem }, }, ++ { 358 /* amswap_db.w */, LoongArch::AMSWAP_DB_W, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__AMem2_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg, MCK_AMem }, }, ++ { 370 /* amxor.d */, LoongArch::AMXOR_D, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__AMem2_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_AMem }, }, ++ { 378 /* amxor.w */, LoongArch::AMXOR_W, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__AMem2_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg, MCK_AMem }, }, ++ { 386 /* amxor_db.d */, LoongArch::AMXOR_DB_D, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__AMem2_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_AMem }, }, ++ { 397 /* amxor_db.w */, LoongArch::AMXOR_DB_W, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__AMem2_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg, MCK_AMem }, }, ++ { 408 /* and */, LoongArch::AND, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 412 /* andi */, LoongArch::ANDI, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__UImm121_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_UImm12 }, }, ++ { 417 /* andn */, LoongArch::ANDN, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 422 /* asrtgt.d */, LoongArch::ASRTGT_D, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 431 /* asrtle.d */, LoongArch::ASRTLE_D, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 440 /* b */, LoongArch::B, Convert__JumpTarget1_0, AMFBS_None, { MCK_JumpTarget }, }, ++ { 442 /* bceqz */, LoongArch::BCEQZ, Convert__FCFRAsmReg1_0__JumpTarget1_1, AMFBS_None, { MCK_FCFRAsmReg, MCK_JumpTarget }, }, ++ { 448 /* bcnez */, LoongArch::BCNEZ, Convert__FCFRAsmReg1_0__JumpTarget1_1, AMFBS_None, { MCK_FCFRAsmReg, MCK_JumpTarget }, }, ++ { 454 /* beq */, LoongArch::BEQ, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__JumpTarget1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_JumpTarget }, }, ++ { 458 /* beqz */, LoongArch::BEQZ, Convert__GPR64AsmReg1_0__JumpTarget1_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_JumpTarget }, }, ++ { 463 /* bge */, LoongArch::BGE, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__JumpTarget1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_JumpTarget }, }, ++ { 467 /* bgeu */, LoongArch::BGEU, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__JumpTarget1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_JumpTarget }, }, ++ { 472 /* bitrev.4b */, LoongArch::BITREV_4B, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg }, }, ++ { 482 /* bitrev.8b */, LoongArch::BITREV_8B, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 492 /* bitrev.d */, LoongArch::BITREV_D, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 501 /* bitrev.w */, LoongArch::BITREV_W, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg }, }, ++ { 510 /* bl */, LoongArch::BL, Convert__JumpTarget1_0, AMFBS_None, { MCK_JumpTarget }, }, ++ { 513 /* blt */, LoongArch::BLT, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__JumpTarget1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_JumpTarget }, }, ++ { 517 /* bltu */, LoongArch::BLTU, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__JumpTarget1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_JumpTarget }, }, ++ { 522 /* bne */, LoongArch::BNE, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__JumpTarget1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_JumpTarget }, }, ++ { 526 /* bnez */, LoongArch::BNEZ, Convert__GPR64AsmReg1_0__JumpTarget1_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_JumpTarget }, }, ++ { 531 /* break */, LoongArch::BREAK, Convert__imm_95_0, AMFBS_None, { }, }, ++ { 531 /* break */, LoongArch::BREAK, Convert__UImm151_0, AMFBS_None, { MCK_UImm15 }, }, ++ { 537 /* bstrins.d */, LoongArch::BSTRINS_D, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__UImm61_2__UImm61_3__Tie0_1_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_UImm6, MCK_UImm6 }, }, ++ { 547 /* bstrins.w */, LoongArch::BSTRINS_W, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__UImm51_2__UImm51_3__Tie0_1_1, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg, MCK_UImm5, MCK_UImm5 }, }, ++ { 557 /* bstrpick.d */, LoongArch::BSTRPICK_D, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__UImm61_2__UImm61_3, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_UImm6, MCK_UImm6 }, }, ++ { 568 /* bstrpick.w */, LoongArch::BSTRPICK_W, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__UImm51_2__UImm51_3, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg, MCK_UImm5, MCK_UImm5 }, }, ++ { 579 /* bytepick.d */, LoongArch::BYTEPICK_D, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2__UImm31_3, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_UImm3 }, }, ++ { 590 /* bytepick.w */, LoongArch::BYTEPICK_W, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__GPR32AsmReg1_2__UImm21_3, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg, MCK_GPR32AsmReg, MCK_UImm2 }, }, ++ { 601 /* cacop */, LoongArch::CACOP32, Convert__UImm51_0__GPR32AsmReg1_1__SImm121_2, AMFBS_None, { MCK_UImm5, MCK_GPR32AsmReg, MCK_SImm12 }, }, ++ { 601 /* cacop */, LoongArch::CACOP, Convert__UImm51_0__GPR64AsmReg1_1__SImm121_2, AMFBS_None, { MCK_UImm5, MCK_GPR64AsmReg, MCK_SImm12 }, }, ++ { 607 /* clo.d */, LoongArch::CLO_D, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 613 /* clo.w */, LoongArch::CLO_W, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg }, }, ++ { 619 /* clz.d */, LoongArch::CLZ_D, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 625 /* clz.w */, LoongArch::CLZ_W, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg }, }, ++ { 631 /* cpucfg */, LoongArch::CPUCFG, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg }, }, ++ { 638 /* crc.w.b.w */, LoongArch::CRC_W_B_W, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__GPR32AsmReg1_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg, MCK_GPR32AsmReg }, }, ++ { 648 /* crc.w.d.w */, LoongArch::CRC_W_D_W, Convert__GPR32AsmReg1_0__GPR64AsmReg1_1__GPR32AsmReg1_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR64AsmReg, MCK_GPR32AsmReg }, }, ++ { 658 /* crc.w.h.w */, LoongArch::CRC_W_H_W, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__GPR32AsmReg1_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg, MCK_GPR32AsmReg }, }, ++ { 668 /* crc.w.w.w */, LoongArch::CRC_W_W_W, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__GPR32AsmReg1_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg, MCK_GPR32AsmReg }, }, ++ { 678 /* crcc.w.b.w */, LoongArch::CRCC_W_B_W, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__GPR32AsmReg1_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg, MCK_GPR32AsmReg }, }, ++ { 689 /* crcc.w.d.w */, LoongArch::CRCC_W_D_W, Convert__GPR32AsmReg1_0__GPR64AsmReg1_1__GPR32AsmReg1_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR64AsmReg, MCK_GPR32AsmReg }, }, ++ { 700 /* crcc.w.h.w */, LoongArch::CRCC_W_H_W, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__GPR32AsmReg1_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg, MCK_GPR32AsmReg }, }, ++ { 711 /* crcc.w.w.w */, LoongArch::CRCC_W_W_W, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__GPR32AsmReg1_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg, MCK_GPR32AsmReg }, }, ++ { 722 /* csrrd */, LoongArch::CSRRD32, Convert__GPR32AsmReg1_0__UImm141_1, AMFBS_None, { MCK_GPR32AsmReg, MCK_UImm14 }, }, ++ { 722 /* csrrd */, LoongArch::CSRRD, Convert__GPR64AsmReg1_0__UImm141_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_UImm14 }, }, ++ { 728 /* csrwr */, LoongArch::CSRWR32, Convert__GPR32AsmReg1_0__Tie0_1_1__UImm141_1, AMFBS_None, { MCK_GPR32AsmReg, MCK_UImm14 }, }, ++ { 728 /* csrwr */, LoongArch::CSRWR, Convert__GPR64AsmReg1_0__Tie0_1_1__UImm141_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_UImm14 }, }, ++ { 734 /* csrxchg */, LoongArch::CSRXCHG32, Convert__GPR32AsmReg1_0__Tie0_1_1__GPR32AsmReg1_1__UImm141_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg, MCK_UImm14 }, }, ++ { 734 /* csrxchg */, LoongArch::CSRXCHG, Convert__GPR64AsmReg1_0__Tie0_1_1__GPR64AsmReg1_1__UImm141_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_UImm14 }, }, ++ { 742 /* cto.d */, LoongArch::CTO_D, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 748 /* cto.w */, LoongArch::CTO_W, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg }, }, ++ { 754 /* ctz.d */, LoongArch::CTZ_D, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 760 /* ctz.w */, LoongArch::CTZ_W, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg }, }, ++ { 766 /* dbar */, LoongArch::DBAR, Convert__UImm151_0, AMFBS_None, { MCK_UImm15 }, }, ++ { 771 /* dbcl */, LoongArch::DBCL, Convert__UImm151_0, AMFBS_None, { MCK_UImm15 }, }, ++ { 776 /* div.d */, LoongArch::DIV_D, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 782 /* div.du */, LoongArch::DIV_DU, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 789 /* div.w */, LoongArch::DIV_W, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__GPR32AsmReg1_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg, MCK_GPR32AsmReg }, }, ++ { 795 /* div.wu */, LoongArch::DIV_WU, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__GPR32AsmReg1_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg, MCK_GPR32AsmReg }, }, ++ { 802 /* ertn */, LoongArch::ERTN, Convert_NoOperands, AMFBS_None, { }, }, ++ { 807 /* ext.w.b */, LoongArch::EXT_W_B, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 815 /* ext.w.h */, LoongArch::EXT_W_H, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 823 /* fabs.d */, LoongArch::FABS_D, Convert__FGR64AsmReg1_0__FGR64AsmReg1_1, AMFBS_None, { MCK_FGR64AsmReg, MCK_FGR64AsmReg }, }, ++ { 830 /* fabs.s */, LoongArch::FABS_S, Convert__FGR32AsmReg1_0__FGR32AsmReg1_1, AMFBS_None, { MCK_FGR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 837 /* fadd.d */, LoongArch::FADD_D, Convert__FGR64AsmReg1_0__FGR64AsmReg1_1__FGR64AsmReg1_2, AMFBS_None, { MCK_FGR64AsmReg, MCK_FGR64AsmReg, MCK_FGR64AsmReg }, }, ++ { 844 /* fadd.s */, LoongArch::FADD_S, Convert__FGR32AsmReg1_0__FGR32AsmReg1_1__FGR32AsmReg1_2, AMFBS_None, { MCK_FGR32AsmReg, MCK_FGR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 851 /* fclass.d */, LoongArch::FCLASS_D, Convert__FGR64AsmReg1_0__FGR64AsmReg1_1, AMFBS_None, { MCK_FGR64AsmReg, MCK_FGR64AsmReg }, }, ++ { 860 /* fclass.s */, LoongArch::FCLASS_S, Convert__FGR32AsmReg1_0__FGR32AsmReg1_1, AMFBS_None, { MCK_FGR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 869 /* fcmp.caf.d */, LoongArch::FCMP_CAF_D, Convert__FCFRAsmReg1_0__FGR64AsmReg1_1__FGR64AsmReg1_2, AMFBS_None, { MCK_FCFRAsmReg, MCK_FGR64AsmReg, MCK_FGR64AsmReg }, }, ++ { 880 /* fcmp.caf.s */, LoongArch::FCMP_CAF_S, Convert__FCFRAsmReg1_0__FGR32AsmReg1_1__FGR32AsmReg1_2, AMFBS_None, { MCK_FCFRAsmReg, MCK_FGR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 891 /* fcmp.ceq.d */, LoongArch::FCMP_CEQ_D, Convert__FCFRAsmReg1_0__FGR64AsmReg1_1__FGR64AsmReg1_2, AMFBS_None, { MCK_FCFRAsmReg, MCK_FGR64AsmReg, MCK_FGR64AsmReg }, }, ++ { 902 /* fcmp.ceq.s */, LoongArch::FCMP_CEQ_S, Convert__FCFRAsmReg1_0__FGR32AsmReg1_1__FGR32AsmReg1_2, AMFBS_None, { MCK_FCFRAsmReg, MCK_FGR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 913 /* fcmp.cle.d */, LoongArch::FCMP_CLE_D, Convert__FCFRAsmReg1_0__FGR64AsmReg1_1__FGR64AsmReg1_2, AMFBS_None, { MCK_FCFRAsmReg, MCK_FGR64AsmReg, MCK_FGR64AsmReg }, }, ++ { 924 /* fcmp.cle.s */, LoongArch::FCMP_CLE_S, Convert__FCFRAsmReg1_0__FGR32AsmReg1_1__FGR32AsmReg1_2, AMFBS_None, { MCK_FCFRAsmReg, MCK_FGR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 935 /* fcmp.clt.d */, LoongArch::FCMP_CLT_D, Convert__FCFRAsmReg1_0__FGR64AsmReg1_1__FGR64AsmReg1_2, AMFBS_None, { MCK_FCFRAsmReg, MCK_FGR64AsmReg, MCK_FGR64AsmReg }, }, ++ { 946 /* fcmp.clt.s */, LoongArch::FCMP_CLT_S, Convert__FCFRAsmReg1_0__FGR32AsmReg1_1__FGR32AsmReg1_2, AMFBS_None, { MCK_FCFRAsmReg, MCK_FGR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 957 /* fcmp.cne.d */, LoongArch::FCMP_CNE_D, Convert__FCFRAsmReg1_0__FGR64AsmReg1_1__FGR64AsmReg1_2, AMFBS_None, { MCK_FCFRAsmReg, MCK_FGR64AsmReg, MCK_FGR64AsmReg }, }, ++ { 968 /* fcmp.cne.s */, LoongArch::FCMP_CNE_S, Convert__FCFRAsmReg1_0__FGR32AsmReg1_1__FGR32AsmReg1_2, AMFBS_None, { MCK_FCFRAsmReg, MCK_FGR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 979 /* fcmp.cor.d */, LoongArch::FCMP_COR_D, Convert__FCFRAsmReg1_0__FGR64AsmReg1_1__FGR64AsmReg1_2, AMFBS_None, { MCK_FCFRAsmReg, MCK_FGR64AsmReg, MCK_FGR64AsmReg }, }, ++ { 990 /* fcmp.cor.s */, LoongArch::FCMP_COR_S, Convert__FCFRAsmReg1_0__FGR32AsmReg1_1__FGR32AsmReg1_2, AMFBS_None, { MCK_FCFRAsmReg, MCK_FGR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 1001 /* fcmp.cueq.d */, LoongArch::FCMP_CUEQ_D, Convert__FCFRAsmReg1_0__FGR64AsmReg1_1__FGR64AsmReg1_2, AMFBS_None, { MCK_FCFRAsmReg, MCK_FGR64AsmReg, MCK_FGR64AsmReg }, }, ++ { 1013 /* fcmp.cueq.s */, LoongArch::FCMP_CUEQ_S, Convert__FCFRAsmReg1_0__FGR32AsmReg1_1__FGR32AsmReg1_2, AMFBS_None, { MCK_FCFRAsmReg, MCK_FGR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 1025 /* fcmp.cule.d */, LoongArch::FCMP_CULE_D, Convert__FCFRAsmReg1_0__FGR64AsmReg1_1__FGR64AsmReg1_2, AMFBS_None, { MCK_FCFRAsmReg, MCK_FGR64AsmReg, MCK_FGR64AsmReg }, }, ++ { 1037 /* fcmp.cule.s */, LoongArch::FCMP_CULE_S, Convert__FCFRAsmReg1_0__FGR32AsmReg1_1__FGR32AsmReg1_2, AMFBS_None, { MCK_FCFRAsmReg, MCK_FGR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 1049 /* fcmp.cult.d */, LoongArch::FCMP_CULT_D, Convert__FCFRAsmReg1_0__FGR64AsmReg1_1__FGR64AsmReg1_2, AMFBS_None, { MCK_FCFRAsmReg, MCK_FGR64AsmReg, MCK_FGR64AsmReg }, }, ++ { 1061 /* fcmp.cult.s */, LoongArch::FCMP_CULT_S, Convert__FCFRAsmReg1_0__FGR32AsmReg1_1__FGR32AsmReg1_2, AMFBS_None, { MCK_FCFRAsmReg, MCK_FGR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 1073 /* fcmp.cun.d */, LoongArch::FCMP_CUN_D, Convert__FCFRAsmReg1_0__FGR64AsmReg1_1__FGR64AsmReg1_2, AMFBS_None, { MCK_FCFRAsmReg, MCK_FGR64AsmReg, MCK_FGR64AsmReg }, }, ++ { 1084 /* fcmp.cun.s */, LoongArch::FCMP_CUN_S, Convert__FCFRAsmReg1_0__FGR32AsmReg1_1__FGR32AsmReg1_2, AMFBS_None, { MCK_FCFRAsmReg, MCK_FGR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 1095 /* fcmp.cune.d */, LoongArch::FCMP_CUNE_D, Convert__FCFRAsmReg1_0__FGR64AsmReg1_1__FGR64AsmReg1_2, AMFBS_None, { MCK_FCFRAsmReg, MCK_FGR64AsmReg, MCK_FGR64AsmReg }, }, ++ { 1107 /* fcmp.cune.s */, LoongArch::FCMP_CUNE_S, Convert__FCFRAsmReg1_0__FGR32AsmReg1_1__FGR32AsmReg1_2, AMFBS_None, { MCK_FCFRAsmReg, MCK_FGR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 1119 /* fcmp.saf.d */, LoongArch::FCMP_SAF_D, Convert__FCFRAsmReg1_0__FGR64AsmReg1_1__FGR64AsmReg1_2, AMFBS_None, { MCK_FCFRAsmReg, MCK_FGR64AsmReg, MCK_FGR64AsmReg }, }, ++ { 1130 /* fcmp.saf.s */, LoongArch::FCMP_SAF_S, Convert__FCFRAsmReg1_0__FGR32AsmReg1_1__FGR32AsmReg1_2, AMFBS_None, { MCK_FCFRAsmReg, MCK_FGR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 1141 /* fcmp.seq.d */, LoongArch::FCMP_SEQ_D, Convert__FCFRAsmReg1_0__FGR64AsmReg1_1__FGR64AsmReg1_2, AMFBS_None, { MCK_FCFRAsmReg, MCK_FGR64AsmReg, MCK_FGR64AsmReg }, }, ++ { 1152 /* fcmp.seq.s */, LoongArch::FCMP_SEQ_S, Convert__FCFRAsmReg1_0__FGR32AsmReg1_1__FGR32AsmReg1_2, AMFBS_None, { MCK_FCFRAsmReg, MCK_FGR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 1163 /* fcmp.sle.d */, LoongArch::FCMP_SLE_D, Convert__FCFRAsmReg1_0__FGR64AsmReg1_1__FGR64AsmReg1_2, AMFBS_None, { MCK_FCFRAsmReg, MCK_FGR64AsmReg, MCK_FGR64AsmReg }, }, ++ { 1174 /* fcmp.sle.s */, LoongArch::FCMP_SLE_S, Convert__FCFRAsmReg1_0__FGR32AsmReg1_1__FGR32AsmReg1_2, AMFBS_None, { MCK_FCFRAsmReg, MCK_FGR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 1185 /* fcmp.slt.d */, LoongArch::FCMP_SLT_D, Convert__FCFRAsmReg1_0__FGR64AsmReg1_1__FGR64AsmReg1_2, AMFBS_None, { MCK_FCFRAsmReg, MCK_FGR64AsmReg, MCK_FGR64AsmReg }, }, ++ { 1196 /* fcmp.slt.s */, LoongArch::FCMP_SLT_S, Convert__FCFRAsmReg1_0__FGR32AsmReg1_1__FGR32AsmReg1_2, AMFBS_None, { MCK_FCFRAsmReg, MCK_FGR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 1207 /* fcmp.sne.d */, LoongArch::FCMP_SNE_D, Convert__FCFRAsmReg1_0__FGR64AsmReg1_1__FGR64AsmReg1_2, AMFBS_None, { MCK_FCFRAsmReg, MCK_FGR64AsmReg, MCK_FGR64AsmReg }, }, ++ { 1218 /* fcmp.sne.s */, LoongArch::FCMP_SNE_S, Convert__FCFRAsmReg1_0__FGR32AsmReg1_1__FGR32AsmReg1_2, AMFBS_None, { MCK_FCFRAsmReg, MCK_FGR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 1229 /* fcmp.sor.d */, LoongArch::FCMP_SOR_D, Convert__FCFRAsmReg1_0__FGR64AsmReg1_1__FGR64AsmReg1_2, AMFBS_None, { MCK_FCFRAsmReg, MCK_FGR64AsmReg, MCK_FGR64AsmReg }, }, ++ { 1240 /* fcmp.sor.s */, LoongArch::FCMP_SOR_S, Convert__FCFRAsmReg1_0__FGR32AsmReg1_1__FGR32AsmReg1_2, AMFBS_None, { MCK_FCFRAsmReg, MCK_FGR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 1251 /* fcmp.sueq.d */, LoongArch::FCMP_SUEQ_D, Convert__FCFRAsmReg1_0__FGR64AsmReg1_1__FGR64AsmReg1_2, AMFBS_None, { MCK_FCFRAsmReg, MCK_FGR64AsmReg, MCK_FGR64AsmReg }, }, ++ { 1263 /* fcmp.sueq.s */, LoongArch::FCMP_SUEQ_S, Convert__FCFRAsmReg1_0__FGR32AsmReg1_1__FGR32AsmReg1_2, AMFBS_None, { MCK_FCFRAsmReg, MCK_FGR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 1275 /* fcmp.sule.d */, LoongArch::FCMP_SULE_D, Convert__FCFRAsmReg1_0__FGR64AsmReg1_1__FGR64AsmReg1_2, AMFBS_None, { MCK_FCFRAsmReg, MCK_FGR64AsmReg, MCK_FGR64AsmReg }, }, ++ { 1287 /* fcmp.sule.s */, LoongArch::FCMP_SULE_S, Convert__FCFRAsmReg1_0__FGR32AsmReg1_1__FGR32AsmReg1_2, AMFBS_None, { MCK_FCFRAsmReg, MCK_FGR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 1299 /* fcmp.sult.d */, LoongArch::FCMP_SULT_D, Convert__FCFRAsmReg1_0__FGR64AsmReg1_1__FGR64AsmReg1_2, AMFBS_None, { MCK_FCFRAsmReg, MCK_FGR64AsmReg, MCK_FGR64AsmReg }, }, ++ { 1311 /* fcmp.sult.s */, LoongArch::FCMP_SULT_S, Convert__FCFRAsmReg1_0__FGR32AsmReg1_1__FGR32AsmReg1_2, AMFBS_None, { MCK_FCFRAsmReg, MCK_FGR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 1323 /* fcmp.sun.d */, LoongArch::FCMP_SUN_D, Convert__FCFRAsmReg1_0__FGR64AsmReg1_1__FGR64AsmReg1_2, AMFBS_None, { MCK_FCFRAsmReg, MCK_FGR64AsmReg, MCK_FGR64AsmReg }, }, ++ { 1334 /* fcmp.sun.s */, LoongArch::FCMP_SUN_S, Convert__FCFRAsmReg1_0__FGR32AsmReg1_1__FGR32AsmReg1_2, AMFBS_None, { MCK_FCFRAsmReg, MCK_FGR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 1345 /* fcmp.sune.d */, LoongArch::FCMP_SUNE_D, Convert__FCFRAsmReg1_0__FGR64AsmReg1_1__FGR64AsmReg1_2, AMFBS_None, { MCK_FCFRAsmReg, MCK_FGR64AsmReg, MCK_FGR64AsmReg }, }, ++ { 1357 /* fcmp.sune.s */, LoongArch::FCMP_SUNE_S, Convert__FCFRAsmReg1_0__FGR32AsmReg1_1__FGR32AsmReg1_2, AMFBS_None, { MCK_FCFRAsmReg, MCK_FGR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 1369 /* fcopysign.d */, LoongArch::FCOPYSIGN_D, Convert__FGR64AsmReg1_0__FGR64AsmReg1_1__FGR64AsmReg1_2, AMFBS_None, { MCK_FGR64AsmReg, MCK_FGR64AsmReg, MCK_FGR64AsmReg }, }, ++ { 1381 /* fcopysign.s */, LoongArch::FCOPYSIGN_S, Convert__FGR32AsmReg1_0__FGR32AsmReg1_1__FGR32AsmReg1_2, AMFBS_None, { MCK_FGR32AsmReg, MCK_FGR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 1393 /* fcvt.d.s */, LoongArch::FCVT_D_S, Convert__FGR64AsmReg1_0__FGR32AsmReg1_1, AMFBS_None, { MCK_FGR64AsmReg, MCK_FGR32AsmReg }, }, ++ { 1402 /* fcvt.s.d */, LoongArch::FCVT_S_D, Convert__FGR32AsmReg1_0__FGR64AsmReg1_1, AMFBS_None, { MCK_FGR32AsmReg, MCK_FGR64AsmReg }, }, ++ { 1411 /* fdiv.d */, LoongArch::FDIV_D, Convert__FGR64AsmReg1_0__FGR64AsmReg1_1__FGR64AsmReg1_2, AMFBS_None, { MCK_FGR64AsmReg, MCK_FGR64AsmReg, MCK_FGR64AsmReg }, }, ++ { 1418 /* fdiv.s */, LoongArch::FDIV_S, Convert__FGR32AsmReg1_0__FGR32AsmReg1_1__FGR32AsmReg1_2, AMFBS_None, { MCK_FGR32AsmReg, MCK_FGR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 1425 /* ffint.d.l */, LoongArch::FFINT_D_L, Convert__FGR64AsmReg1_0__FGR64AsmReg1_1, AMFBS_None, { MCK_FGR64AsmReg, MCK_FGR64AsmReg }, }, ++ { 1435 /* ffint.d.w */, LoongArch::FFINT_D_W, Convert__FGR64AsmReg1_0__FGR32AsmReg1_1, AMFBS_None, { MCK_FGR64AsmReg, MCK_FGR32AsmReg }, }, ++ { 1445 /* ffint.s.l */, LoongArch::FFINT_S_L, Convert__FGR32AsmReg1_0__FGR64AsmReg1_1, AMFBS_None, { MCK_FGR32AsmReg, MCK_FGR64AsmReg }, }, ++ { 1455 /* ffint.s.w */, LoongArch::FFINT_S_W, Convert__FGR32AsmReg1_0__FGR32AsmReg1_1, AMFBS_None, { MCK_FGR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 1465 /* fld.d */, LoongArch::FLD_D, Convert__FGR64AsmReg1_0__Mem2_1, AMFBS_None, { MCK_FGR64AsmReg, MCK_Mem }, }, ++ { 1471 /* fld.s */, LoongArch::FLD_S, Convert__FGR32AsmReg1_0__Mem2_1, AMFBS_None, { MCK_FGR32AsmReg, MCK_Mem }, }, ++ { 1477 /* fldgt.d */, LoongArch::FLDGT_D, Convert__FGR64AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2, AMFBS_None, { MCK_FGR64AsmReg, MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 1485 /* fldgt.s */, LoongArch::FLDGT_S, Convert__FGR32AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2, AMFBS_None, { MCK_FGR32AsmReg, MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 1493 /* fldle.d */, LoongArch::FLDLE_D, Convert__FGR64AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2, AMFBS_None, { MCK_FGR64AsmReg, MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 1501 /* fldle.s */, LoongArch::FLDLE_S, Convert__FGR32AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2, AMFBS_None, { MCK_FGR32AsmReg, MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 1509 /* fldx.d */, LoongArch::FLDX_D, Convert__FGR64AsmReg1_0__GPR32AsmReg1_1__GPR32AsmReg1_2, AMFBS_None, { MCK_FGR64AsmReg, MCK_GPR32AsmReg, MCK_GPR32AsmReg }, }, ++ { 1516 /* fldx.s */, LoongArch::FLDX_S, Convert__FGR32AsmReg1_0__GPR32AsmReg1_1__GPR32AsmReg1_2, AMFBS_None, { MCK_FGR32AsmReg, MCK_GPR32AsmReg, MCK_GPR32AsmReg }, }, ++ { 1523 /* flogb.d */, LoongArch::FLOGB_D, Convert__FGR64AsmReg1_0__FGR64AsmReg1_1, AMFBS_None, { MCK_FGR64AsmReg, MCK_FGR64AsmReg }, }, ++ { 1531 /* flogb.s */, LoongArch::FLOGB_S, Convert__FGR32AsmReg1_0__FGR32AsmReg1_1, AMFBS_None, { MCK_FGR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 1539 /* fmadd.d */, LoongArch::FMADD_D, Convert__FGR64AsmReg1_0__FGR64AsmReg1_1__FGR64AsmReg1_2__FGR64AsmReg1_3, AMFBS_None, { MCK_FGR64AsmReg, MCK_FGR64AsmReg, MCK_FGR64AsmReg, MCK_FGR64AsmReg }, }, ++ { 1547 /* fmadd.s */, LoongArch::FMADD_S, Convert__FGR32AsmReg1_0__FGR32AsmReg1_1__FGR32AsmReg1_2__FGR32AsmReg1_3, AMFBS_None, { MCK_FGR32AsmReg, MCK_FGR32AsmReg, MCK_FGR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 1555 /* fmax.d */, LoongArch::FMAX_D, Convert__FGR64AsmReg1_0__FGR64AsmReg1_1__FGR64AsmReg1_2, AMFBS_None, { MCK_FGR64AsmReg, MCK_FGR64AsmReg, MCK_FGR64AsmReg }, }, ++ { 1562 /* fmax.s */, LoongArch::FMAX_S, Convert__FGR32AsmReg1_0__FGR32AsmReg1_1__FGR32AsmReg1_2, AMFBS_None, { MCK_FGR32AsmReg, MCK_FGR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 1569 /* fmaxa.d */, LoongArch::FMAXA_D, Convert__FGR64AsmReg1_0__FGR64AsmReg1_1__FGR64AsmReg1_2, AMFBS_None, { MCK_FGR64AsmReg, MCK_FGR64AsmReg, MCK_FGR64AsmReg }, }, ++ { 1577 /* fmaxa.s */, LoongArch::FMAXA_S, Convert__FGR32AsmReg1_0__FGR32AsmReg1_1__FGR32AsmReg1_2, AMFBS_None, { MCK_FGR32AsmReg, MCK_FGR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 1585 /* fmin.d */, LoongArch::FMIN_D, Convert__FGR64AsmReg1_0__FGR64AsmReg1_1__FGR64AsmReg1_2, AMFBS_None, { MCK_FGR64AsmReg, MCK_FGR64AsmReg, MCK_FGR64AsmReg }, }, ++ { 1592 /* fmin.s */, LoongArch::FMIN_S, Convert__FGR32AsmReg1_0__FGR32AsmReg1_1__FGR32AsmReg1_2, AMFBS_None, { MCK_FGR32AsmReg, MCK_FGR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 1599 /* fmina.d */, LoongArch::FMINA_D, Convert__FGR64AsmReg1_0__FGR64AsmReg1_1__FGR64AsmReg1_2, AMFBS_None, { MCK_FGR64AsmReg, MCK_FGR64AsmReg, MCK_FGR64AsmReg }, }, ++ { 1607 /* fmina.s */, LoongArch::FMINA_S, Convert__FGR32AsmReg1_0__FGR32AsmReg1_1__FGR32AsmReg1_2, AMFBS_None, { MCK_FGR32AsmReg, MCK_FGR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 1615 /* fmov.d */, LoongArch::FMOV_D, Convert__FGR64AsmReg1_0__FGR64AsmReg1_1, AMFBS_None, { MCK_FGR64AsmReg, MCK_FGR64AsmReg }, }, ++ { 1622 /* fmov.s */, LoongArch::FMOV_S, Convert__FGR32AsmReg1_0__FGR32AsmReg1_1, AMFBS_None, { MCK_FGR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 1629 /* fmsub.d */, LoongArch::FMSUB_D, Convert__FGR64AsmReg1_0__FGR64AsmReg1_1__FGR64AsmReg1_2__FGR64AsmReg1_3, AMFBS_None, { MCK_FGR64AsmReg, MCK_FGR64AsmReg, MCK_FGR64AsmReg, MCK_FGR64AsmReg }, }, ++ { 1637 /* fmsub.s */, LoongArch::FMSUB_S, Convert__FGR32AsmReg1_0__FGR32AsmReg1_1__FGR32AsmReg1_2__FGR32AsmReg1_3, AMFBS_None, { MCK_FGR32AsmReg, MCK_FGR32AsmReg, MCK_FGR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 1645 /* fmul.d */, LoongArch::FMUL_D, Convert__FGR64AsmReg1_0__FGR64AsmReg1_1__FGR64AsmReg1_2, AMFBS_None, { MCK_FGR64AsmReg, MCK_FGR64AsmReg, MCK_FGR64AsmReg }, }, ++ { 1652 /* fmul.s */, LoongArch::FMUL_S, Convert__FGR32AsmReg1_0__FGR32AsmReg1_1__FGR32AsmReg1_2, AMFBS_None, { MCK_FGR32AsmReg, MCK_FGR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 1659 /* fneg.d */, LoongArch::FNEG_D, Convert__FGR64AsmReg1_0__FGR64AsmReg1_1, AMFBS_None, { MCK_FGR64AsmReg, MCK_FGR64AsmReg }, }, ++ { 1666 /* fneg.s */, LoongArch::FNEG_S, Convert__FGR32AsmReg1_0__FGR32AsmReg1_1, AMFBS_None, { MCK_FGR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 1673 /* fnmadd.d */, LoongArch::FNMADD_D, Convert__FGR64AsmReg1_0__FGR64AsmReg1_1__FGR64AsmReg1_2__FGR64AsmReg1_3, AMFBS_None, { MCK_FGR64AsmReg, MCK_FGR64AsmReg, MCK_FGR64AsmReg, MCK_FGR64AsmReg }, }, ++ { 1682 /* fnmadd.s */, LoongArch::FNMADD_S, Convert__FGR32AsmReg1_0__FGR32AsmReg1_1__FGR32AsmReg1_2__FGR32AsmReg1_3, AMFBS_None, { MCK_FGR32AsmReg, MCK_FGR32AsmReg, MCK_FGR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 1691 /* fnmsub.d */, LoongArch::FNMSUB_D, Convert__FGR64AsmReg1_0__FGR64AsmReg1_1__FGR64AsmReg1_2__FGR64AsmReg1_3, AMFBS_None, { MCK_FGR64AsmReg, MCK_FGR64AsmReg, MCK_FGR64AsmReg, MCK_FGR64AsmReg }, }, ++ { 1700 /* fnmsub.s */, LoongArch::FNMSUB_S, Convert__FGR32AsmReg1_0__FGR32AsmReg1_1__FGR32AsmReg1_2__FGR32AsmReg1_3, AMFBS_None, { MCK_FGR32AsmReg, MCK_FGR32AsmReg, MCK_FGR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 1709 /* frecip.d */, LoongArch::FRECIP_D, Convert__FGR64AsmReg1_0__FGR64AsmReg1_1, AMFBS_None, { MCK_FGR64AsmReg, MCK_FGR64AsmReg }, }, ++ { 1718 /* frecip.s */, LoongArch::FRECIP_S, Convert__FGR32AsmReg1_0__FGR32AsmReg1_1, AMFBS_None, { MCK_FGR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 1727 /* frint.d */, LoongArch::FRINT_D, Convert__FGR64AsmReg1_0__FGR64AsmReg1_1, AMFBS_None, { MCK_FGR64AsmReg, MCK_FGR64AsmReg }, }, ++ { 1735 /* frint.s */, LoongArch::FRINT_S, Convert__FGR32AsmReg1_0__FGR32AsmReg1_1, AMFBS_None, { MCK_FGR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 1743 /* frsqrt.d */, LoongArch::FRSQRT_D, Convert__FGR64AsmReg1_0__FGR64AsmReg1_1, AMFBS_None, { MCK_FGR64AsmReg, MCK_FGR64AsmReg }, }, ++ { 1752 /* frsqrt.s */, LoongArch::FRSQRT_S, Convert__FGR32AsmReg1_0__FGR32AsmReg1_1, AMFBS_None, { MCK_FGR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 1761 /* fscaleb.d */, LoongArch::FSCALEB_D, Convert__FGR64AsmReg1_0__FGR64AsmReg1_1__FGR64AsmReg1_2, AMFBS_None, { MCK_FGR64AsmReg, MCK_FGR64AsmReg, MCK_FGR64AsmReg }, }, ++ { 1771 /* fscaleb.s */, LoongArch::FSCALEB_S, Convert__FGR32AsmReg1_0__FGR32AsmReg1_1__FGR32AsmReg1_2, AMFBS_None, { MCK_FGR32AsmReg, MCK_FGR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 1781 /* fsel */, LoongArch::FSEL_T_S, Convert__FGR32AsmReg1_0__FCFRAsmReg1_3__FGR32AsmReg1_1__FGR32AsmReg1_2, AMFBS_None, { MCK_FGR32AsmReg, MCK_FGR32AsmReg, MCK_FGR32AsmReg, MCK_FCFRAsmReg }, }, ++ { 1786 /* fsqrt.d */, LoongArch::FSQRT_D, Convert__FGR64AsmReg1_0__FGR64AsmReg1_1, AMFBS_None, { MCK_FGR64AsmReg, MCK_FGR64AsmReg }, }, ++ { 1794 /* fsqrt.s */, LoongArch::FSQRT_S, Convert__FGR32AsmReg1_0__FGR32AsmReg1_1, AMFBS_None, { MCK_FGR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 1802 /* fst.d */, LoongArch::FST_D, Convert__FGR64AsmReg1_0__Mem2_1, AMFBS_None, { MCK_FGR64AsmReg, MCK_Mem }, }, ++ { 1808 /* fst.s */, LoongArch::FST_S, Convert__FGR32AsmReg1_0__Mem2_1, AMFBS_None, { MCK_FGR32AsmReg, MCK_Mem }, }, ++ { 1814 /* fstgt.d */, LoongArch::FSTGT_D, Convert__FGR64AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2, AMFBS_None, { MCK_FGR64AsmReg, MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 1822 /* fstgt.s */, LoongArch::FSTGT_S, Convert__FGR32AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2, AMFBS_None, { MCK_FGR32AsmReg, MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 1830 /* fstle.d */, LoongArch::FSTLE_D, Convert__FGR64AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2, AMFBS_None, { MCK_FGR64AsmReg, MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 1838 /* fstle.s */, LoongArch::FSTLE_S, Convert__FGR32AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2, AMFBS_None, { MCK_FGR32AsmReg, MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 1846 /* fstx.d */, LoongArch::FSTX_D, Convert__FGR64AsmReg1_0__GPR32AsmReg1_1__GPR32AsmReg1_2, AMFBS_None, { MCK_FGR64AsmReg, MCK_GPR32AsmReg, MCK_GPR32AsmReg }, }, ++ { 1853 /* fstx.s */, LoongArch::FSTX_S, Convert__FGR32AsmReg1_0__GPR32AsmReg1_1__GPR32AsmReg1_2, AMFBS_None, { MCK_FGR32AsmReg, MCK_GPR32AsmReg, MCK_GPR32AsmReg }, }, ++ { 1860 /* fsub.d */, LoongArch::FSUB_D, Convert__FGR64AsmReg1_0__FGR64AsmReg1_1__FGR64AsmReg1_2, AMFBS_None, { MCK_FGR64AsmReg, MCK_FGR64AsmReg, MCK_FGR64AsmReg }, }, ++ { 1867 /* fsub.s */, LoongArch::FSUB_S, Convert__FGR32AsmReg1_0__FGR32AsmReg1_1__FGR32AsmReg1_2, AMFBS_None, { MCK_FGR32AsmReg, MCK_FGR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 1874 /* ftint.l.d */, LoongArch::FTINT_L_D, Convert__FGR64AsmReg1_0__FGR64AsmReg1_1, AMFBS_None, { MCK_FGR64AsmReg, MCK_FGR64AsmReg }, }, ++ { 1884 /* ftint.l.s */, LoongArch::FTINT_L_S, Convert__FGR64AsmReg1_0__FGR32AsmReg1_1, AMFBS_None, { MCK_FGR64AsmReg, MCK_FGR32AsmReg }, }, ++ { 1894 /* ftint.w.d */, LoongArch::FTINT_W_D, Convert__FGR32AsmReg1_0__FGR64AsmReg1_1, AMFBS_None, { MCK_FGR32AsmReg, MCK_FGR64AsmReg }, }, ++ { 1904 /* ftint.w.s */, LoongArch::FTINT_W_S, Convert__FGR32AsmReg1_0__FGR32AsmReg1_1, AMFBS_None, { MCK_FGR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 1914 /* ftintrm.l.d */, LoongArch::FTINTRM_L_D, Convert__FGR64AsmReg1_0__FGR64AsmReg1_1, AMFBS_None, { MCK_FGR64AsmReg, MCK_FGR64AsmReg }, }, ++ { 1926 /* ftintrm.l.s */, LoongArch::FTINTRM_L_S, Convert__FGR32AsmReg1_0__FGR32AsmReg1_1, AMFBS_None, { MCK_FGR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 1938 /* ftintrm.w.d */, LoongArch::FTINTRM_W_D, Convert__FGR64AsmReg1_0__FGR64AsmReg1_1, AMFBS_None, { MCK_FGR64AsmReg, MCK_FGR64AsmReg }, }, ++ { 1950 /* ftintrm.w.s */, LoongArch::FTINTRM_W_S, Convert__FGR32AsmReg1_0__FGR32AsmReg1_1, AMFBS_None, { MCK_FGR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 1962 /* ftintrne.l.d */, LoongArch::FTINTRNE_L_D, Convert__FGR64AsmReg1_0__FGR64AsmReg1_1, AMFBS_None, { MCK_FGR64AsmReg, MCK_FGR64AsmReg }, }, ++ { 1975 /* ftintrne.l.s */, LoongArch::FTINTRNE_L_S, Convert__FGR32AsmReg1_0__FGR32AsmReg1_1, AMFBS_None, { MCK_FGR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 1988 /* ftintrne.w.d */, LoongArch::FTINTRNE_W_D, Convert__FGR64AsmReg1_0__FGR64AsmReg1_1, AMFBS_None, { MCK_FGR64AsmReg, MCK_FGR64AsmReg }, }, ++ { 2001 /* ftintrne.w.s */, LoongArch::FTINTRNE_W_S, Convert__FGR32AsmReg1_0__FGR32AsmReg1_1, AMFBS_None, { MCK_FGR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 2014 /* ftintrp.l.d */, LoongArch::FTINTRP_L_D, Convert__FGR64AsmReg1_0__FGR64AsmReg1_1, AMFBS_None, { MCK_FGR64AsmReg, MCK_FGR64AsmReg }, }, ++ { 2026 /* ftintrp.l.s */, LoongArch::FTINTRP_L_S, Convert__FGR32AsmReg1_0__FGR32AsmReg1_1, AMFBS_None, { MCK_FGR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 2038 /* ftintrp.w.d */, LoongArch::FTINTRP_W_D, Convert__FGR64AsmReg1_0__FGR64AsmReg1_1, AMFBS_None, { MCK_FGR64AsmReg, MCK_FGR64AsmReg }, }, ++ { 2050 /* ftintrp.w.s */, LoongArch::FTINTRP_W_S, Convert__FGR32AsmReg1_0__FGR32AsmReg1_1, AMFBS_None, { MCK_FGR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 2062 /* ftintrz.l.d */, LoongArch::FTINTRZ_L_D, Convert__FGR64AsmReg1_0__FGR64AsmReg1_1, AMFBS_None, { MCK_FGR64AsmReg, MCK_FGR64AsmReg }, }, ++ { 2074 /* ftintrz.l.s */, LoongArch::FTINTRZ_L_S, Convert__FGR64AsmReg1_0__FGR32AsmReg1_1, AMFBS_None, { MCK_FGR64AsmReg, MCK_FGR32AsmReg }, }, ++ { 2086 /* ftintrz.w.d */, LoongArch::TRUNC_W_D, Convert__FGR32AsmReg1_0__FGR64AsmReg1_1, AMFBS_None, { MCK_FGR32AsmReg, MCK_FGR64AsmReg }, }, ++ { 2098 /* ftintrz.w.s */, LoongArch::FTINTRZ_W_S, Convert__FGR32AsmReg1_0__FGR32AsmReg1_1, AMFBS_None, { MCK_FGR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 2110 /* hypcall */, LoongArch::HYPCALL, Convert__UImm151_0, AMFBS_None, { MCK_UImm15 }, }, ++ { 2118 /* ibar */, LoongArch::IBAR, Convert__UImm151_0, AMFBS_None, { MCK_UImm15 }, }, ++ { 2123 /* idle */, LoongArch::IDLE, Convert__UImm151_0, AMFBS_None, { MCK_UImm15 }, }, ++ { 2128 /* invtlb */, LoongArch::INVTLB, Convert__UImm51_0__GPR64AsmReg1_1__GPR64AsmReg1_2, AMFBS_None, { MCK_UImm5, MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 2135 /* iocsrrd.b */, LoongArch::IOCSRRD_B32, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg }, }, ++ { 2135 /* iocsrrd.b */, LoongArch::IOCSRRD_B, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 2145 /* iocsrrd.d */, LoongArch::IOCSRRD_D, Convert__GPR64AsmReg1_0__GPR32AsmReg1_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR32AsmReg }, }, ++ { 2155 /* iocsrrd.h */, LoongArch::IOCSRRD_H32, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg }, }, ++ { 2155 /* iocsrrd.h */, LoongArch::IOCSRRD_H, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 2165 /* iocsrrd.w */, LoongArch::IOCSRRD_W32, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg }, }, ++ { 2165 /* iocsrrd.w */, LoongArch::IOCSRRD_W, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 2175 /* iocsrwr.b */, LoongArch::IOCSRWR_B32, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg }, }, ++ { 2185 /* iocsrwr.d */, LoongArch::IOCSRWR_D, Convert__GPR64AsmReg1_0__GPR32AsmReg1_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR32AsmReg }, }, ++ { 2195 /* iocsrwr.h */, LoongArch::IOCSRWR_H32, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg }, }, ++ { 2205 /* iocsrwr.w */, LoongArch::IOCSRWR_W32, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg }, }, ++ { 2215 /* jirl */, LoongArch::JIRLR, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg, MCK_0 }, }, ++ { 2215 /* jirl */, LoongArch::JIRL, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__SImm161_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_SImm16 }, }, ++ { 2220 /* jr */, LoongArch::JIRL, Convert__regZERO_64__GPR64AsmReg1_0__imm_95_0, AMFBS_None, { MCK_GPR64AsmReg }, }, ++ { 2223 /* la */, LoongArch::LoadAddrGlobal_Alias, Convert__GPR64AsmReg1_0__Imm1_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_Imm }, }, ++ { 2226 /* la.global */, LoongArch::LoadAddrGlobal, Convert__GPR64AsmReg1_0__Imm1_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_Imm }, }, ++ { 2226 /* la.global */, LoongArch::LoadAddrGlobalRR, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__Imm1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_Imm }, }, ++ { 2236 /* la.got */, LoongArch::LoadAddrGlobal, Convert__GPR64AsmReg1_0__Imm1_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_Imm }, }, ++ { 2243 /* la.local */, LoongArch::LoadAddrLocal, Convert__GPR64AsmReg1_0__Imm1_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_Imm }, }, ++ { 2243 /* la.local */, LoongArch::LoadAddrLocalRR, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__Imm1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_Imm }, }, ++ { 2252 /* la.pcrel */, LoongArch::LoadAddrLocal, Convert__GPR64AsmReg1_0__Imm1_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_Imm }, }, ++ { 2261 /* la.tls.gd */, LoongArch::LoadAddrTLS_GD, Convert__GPR64AsmReg1_0__Imm1_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_Imm }, }, ++ { 2261 /* la.tls.gd */, LoongArch::LoadAddrTLS_GD_RR, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__Imm1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_Imm }, }, ++ { 2271 /* la.tls.ie */, LoongArch::LoadAddrTLS_IE, Convert__GPR64AsmReg1_0__Imm1_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_Imm }, }, ++ { 2271 /* la.tls.ie */, LoongArch::LoadAddrTLS_IE_RR, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__Imm1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_Imm }, }, ++ { 2281 /* la.tls.ld */, LoongArch::LoadAddrTLS_LD, Convert__GPR64AsmReg1_0__Imm1_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_Imm }, }, ++ { 2281 /* la.tls.ld */, LoongArch::LoadAddrTLS_LD_RR, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__Imm1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_Imm }, }, ++ { 2291 /* la.tls.le */, LoongArch::LoadAddrTLS_LE, Convert__GPR64AsmReg1_0__Imm1_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_Imm }, }, ++ { 2301 /* ld.b */, LoongArch::LD_B, Convert__GPR64AsmReg1_0__Mem2_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_Mem }, }, ++ { 2306 /* ld.bu */, LoongArch::LD_BU, Convert__GPR64AsmReg1_0__Mem2_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_Mem }, }, ++ { 2312 /* ld.d */, LoongArch::LD_D, Convert__GPR64AsmReg1_0__MemOffsetSimmPtr2_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_MemOffsetSimmPtr }, }, ++ { 2317 /* ld.h */, LoongArch::LD_H, Convert__GPR64AsmReg1_0__Mem2_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_Mem }, }, ++ { 2322 /* ld.hu */, LoongArch::LD_HU, Convert__GPR64AsmReg1_0__Mem2_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_Mem }, }, ++ { 2328 /* ld.w */, LoongArch::LD_W, Convert__GPR64AsmReg1_0__Mem2_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_Mem }, }, ++ { 2333 /* ld.wu */, LoongArch::LD_WU, Convert__GPR64AsmReg1_0__Mem2_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_Mem }, }, ++ { 2339 /* lddir */, LoongArch::LDDIR32, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__UImm81_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg, MCK_UImm8 }, }, ++ { 2339 /* lddir */, LoongArch::LDDIR, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__UImm81_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_UImm8 }, }, ++ { 2345 /* ldgt.b */, LoongArch::LDGT_B, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 2352 /* ldgt.d */, LoongArch::LDGT_D, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 2359 /* ldgt.h */, LoongArch::LDGT_H, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 2366 /* ldgt.w */, LoongArch::LDGT_W, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 2373 /* ldle.b */, LoongArch::LDLE_B, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 2380 /* ldle.d */, LoongArch::LDLE_D, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 2387 /* ldle.h */, LoongArch::LDLE_H, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 2394 /* ldle.w */, LoongArch::LDLE_W, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 2401 /* ldpte */, LoongArch::LDPTE32, Convert__GPR32AsmReg1_0__UImm81_1, AMFBS_None, { MCK_GPR32AsmReg, MCK_UImm8 }, }, ++ { 2401 /* ldpte */, LoongArch::LDPTE, Convert__GPR64AsmReg1_0__UImm81_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_UImm8 }, }, ++ { 2407 /* ldptr.d */, LoongArch::LDPTR_D, Convert__GPR64AsmReg1_0__MemOffsetSimm14_22_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_MemOffsetSimm14_2 }, }, ++ { 2415 /* ldptr.w */, LoongArch::LDPTR_W, Convert__GPR64AsmReg1_0__MemOffsetSimm14_22_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_MemOffsetSimm14_2 }, }, ++ { 2423 /* ldx.b */, LoongArch::LDX_B, Convert__GPR64AsmReg1_0__GPR32AsmReg1_1__GPR32AsmReg1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR32AsmReg, MCK_GPR32AsmReg }, }, ++ { 2429 /* ldx.bu */, LoongArch::LDX_BU, Convert__GPR64AsmReg1_0__GPR32AsmReg1_1__GPR32AsmReg1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR32AsmReg, MCK_GPR32AsmReg }, }, ++ { 2436 /* ldx.d */, LoongArch::LDX_D, Convert__GPR64AsmReg1_0__GPR32AsmReg1_1__GPR32AsmReg1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR32AsmReg, MCK_GPR32AsmReg }, }, ++ { 2442 /* ldx.h */, LoongArch::LDX_H, Convert__GPR64AsmReg1_0__GPR32AsmReg1_1__GPR32AsmReg1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR32AsmReg, MCK_GPR32AsmReg }, }, ++ { 2448 /* ldx.hu */, LoongArch::LDX_HU, Convert__GPR64AsmReg1_0__GPR32AsmReg1_1__GPR32AsmReg1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR32AsmReg, MCK_GPR32AsmReg }, }, ++ { 2455 /* ldx.w */, LoongArch::LDX_W, Convert__GPR64AsmReg1_0__GPR32AsmReg1_1__GPR32AsmReg1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR32AsmReg, MCK_GPR32AsmReg }, }, ++ { 2461 /* ldx.wu */, LoongArch::LDX_WU, Convert__GPR64AsmReg1_0__GPR32AsmReg1_1__GPR32AsmReg1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR32AsmReg, MCK_GPR32AsmReg }, }, ++ { 2468 /* li.d */, LoongArch::LoadImm64, Convert__GPR64AsmReg1_0__Imm1_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_Imm }, }, ++ { 2473 /* li.w */, LoongArch::LoadImm32, Convert__GPR32AsmReg1_0__UImm32_Coerced1_1, AMFBS_None, { MCK_GPR32AsmReg, MCK_UImm32_Coerced }, }, ++ { 2478 /* ll.d */, LoongArch::LL_D, Convert__GPR64AsmReg1_0__MemOffsetSimm14_22_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_MemOffsetSimm14_2 }, }, ++ { 2483 /* ll.w */, LoongArch::LL_W, Convert__GPR32AsmReg1_0__MemOffsetSimm14_22_1, AMFBS_None, { MCK_GPR32AsmReg, MCK_MemOffsetSimm14_2 }, }, ++ { 2488 /* lu12i.w */, LoongArch::LU12I_W, Convert__GPR64AsmReg1_0__SImm201_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_SImm20 }, }, ++ { 2496 /* lu32i.d */, LoongArch::LU32I_D, Convert__GPR64AsmReg1_0__SImm201_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_SImm20 }, }, ++ { 2504 /* lu52i.d */, LoongArch::LU52I_D, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__SImm121_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_SImm12 }, }, ++ { 2512 /* maskeqz */, LoongArch::MASKEQZ, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 2520 /* masknez */, LoongArch::MASKNEZ, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 2528 /* mod.d */, LoongArch::MOD_D, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 2534 /* mod.du */, LoongArch::MOD_DU, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 2541 /* mod.w */, LoongArch::MOD_W, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__GPR32AsmReg1_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg, MCK_GPR32AsmReg }, }, ++ { 2547 /* mod.wu */, LoongArch::MOD_WU, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__GPR32AsmReg1_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg, MCK_GPR32AsmReg }, }, ++ { 2554 /* movcf2fr */, LoongArch::MOVCF2FR, Convert__FGR64AsmReg1_0__FCFRAsmReg1_1, AMFBS_None, { MCK_FGR64AsmReg, MCK_FCFRAsmReg }, }, ++ { 2563 /* movcf2gr */, LoongArch::MOVCF2GR, Convert__GPR64AsmReg1_0__FCFRAsmReg1_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_FCFRAsmReg }, }, ++ { 2572 /* move */, LoongArch::OR32, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__regZERO, AMFBS_IsGP32bit, { MCK_GPR32AsmReg, MCK_GPR32AsmReg }, }, ++ { 2572 /* move */, LoongArch::OR, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__regZERO_64, AMFBS_IsGP64bit, { MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 2577 /* movfcsr2gr */, LoongArch::MOVFCSR2GR, Convert__GPR64AsmReg1_0__FCSRAsmReg1_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_FCSRAsmReg }, }, ++ { 2588 /* movfr2cf */, LoongArch::MOVFR2CF, Convert__FCFRAsmReg1_0__FGR64AsmReg1_1, AMFBS_None, { MCK_FCFRAsmReg, MCK_FGR64AsmReg }, }, ++ { 2597 /* movfr2gr.d */, LoongArch::MOVFR2GR_D, Convert__GPR64AsmReg1_0__FGR64AsmReg1_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_FGR64AsmReg }, }, ++ { 2608 /* movfr2gr.s */, LoongArch::MOVFR2GR_S, Convert__GPR32AsmReg1_0__FGR32AsmReg1_1, AMFBS_None, { MCK_GPR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 2619 /* movfrh2gr.s */, LoongArch::MOVFRH2GR_S, Convert__GPR32AsmReg1_0__FGR32AsmReg1_1, AMFBS_None, { MCK_GPR32AsmReg, MCK_FGR32AsmReg }, }, ++ { 2631 /* movgr2cf */, LoongArch::MOVGR2CF, Convert__FCFRAsmReg1_0__GPR64AsmReg1_1, AMFBS_None, { MCK_FCFRAsmReg, MCK_GPR64AsmReg }, }, ++ { 2640 /* movgr2fcsr */, LoongArch::MOVGR2FCSR, Convert__FCSRAsmReg1_0__GPR64AsmReg1_1, AMFBS_None, { MCK_FCSRAsmReg, MCK_GPR64AsmReg }, }, ++ { 2651 /* movgr2fr.d */, LoongArch::MOVGR2FR_D, Convert__FGR64AsmReg1_0__GPR64AsmReg1_1, AMFBS_None, { MCK_FGR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 2662 /* movgr2fr.w */, LoongArch::MOVGR2FR_W, Convert__FGR32AsmReg1_0__GPR32AsmReg1_1, AMFBS_None, { MCK_FGR32AsmReg, MCK_GPR32AsmReg }, }, ++ { 2673 /* movgr2frh.w */, LoongArch::MOVGR2FRH_W, Convert__FGR64AsmReg1_0__GPR32AsmReg1_1, AMFBS_None, { MCK_FGR64AsmReg, MCK_GPR32AsmReg }, }, ++ { 2685 /* mul.d */, LoongArch::MUL_D, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 2691 /* mul.w */, LoongArch::MUL_W, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__GPR32AsmReg1_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg, MCK_GPR32AsmReg }, }, ++ { 2697 /* mulh.d */, LoongArch::MULH_D, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 2704 /* mulh.du */, LoongArch::MULH_DU, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 2712 /* mulh.w */, LoongArch::MULH_W, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__GPR32AsmReg1_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg, MCK_GPR32AsmReg }, }, ++ { 2719 /* mulh.wu */, LoongArch::MULH_WU, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__GPR32AsmReg1_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg, MCK_GPR32AsmReg }, }, ++ { 2727 /* mulw.d.w */, LoongArch::MULW_D_W, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 2736 /* mulw.d.wu */, LoongArch::MULW_D_WU, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 2746 /* nop */, LoongArch::ANDI, Convert__regZERO_64__regZERO_64__imm_95_0, AMFBS_None, { }, }, ++ { 2750 /* nor */, LoongArch::NOR, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 2754 /* or */, LoongArch::OR, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 2757 /* ori */, LoongArch::ORI, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__UImm121_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_UImm12 }, }, ++ { 2761 /* orn */, LoongArch::ORN, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 2765 /* pcaddi */, LoongArch::PCADDI, Convert__GPR64AsmReg1_0__SImm201_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_SImm20 }, }, ++ { 2772 /* pcaddu12i */, LoongArch::PCADDU12I, Convert__GPR64AsmReg1_0__SImm201_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_SImm20 }, }, ++ { 2782 /* pcaddu18i */, LoongArch::PCADDU18I, Convert__GPR64AsmReg1_0__SImm201_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_SImm20 }, }, ++ { 2792 /* pcalau12i */, LoongArch::PCALAU12I, Convert__GPR64AsmReg1_0__SImm201_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_SImm20 }, }, ++ { 2802 /* preld */, LoongArch::PRELD_Raw32, Convert__GPR32AsmReg1_1__SImm121_2__UImm51_0, AMFBS_None, { MCK_UImm5, MCK_GPR32AsmReg, MCK_SImm12 }, }, ++ { 2802 /* preld */, LoongArch::PRELD_Raw, Convert__GPR64AsmReg1_1__SImm121_2__UImm51_0, AMFBS_None, { MCK_UImm5, MCK_GPR64AsmReg, MCK_SImm12 }, }, ++ { 2808 /* rdtime.d */, LoongArch::RDTIME_D, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 2817 /* rdtimeh.w */, LoongArch::RDTIMEH_W32, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg }, }, ++ { 2817 /* rdtimeh.w */, LoongArch::RDTIMEH_W, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 2827 /* rdtimel.w */, LoongArch::RDTIMEL_W32, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg }, }, ++ { 2827 /* rdtimel.w */, LoongArch::RDTIMEL_W, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 2837 /* revb.2h */, LoongArch::REVB_2H, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg }, }, ++ { 2845 /* revb.2w */, LoongArch::REVB_2W, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 2853 /* revb.4h */, LoongArch::REVB_4H, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 2861 /* revb.d */, LoongArch::REVB_D, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 2868 /* revh.2w */, LoongArch::REVH_2W, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 2876 /* revh.d */, LoongArch::REVH_D, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 2883 /* rotr.d */, LoongArch::ROTR_D, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__GPR32AsmReg1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_GPR32AsmReg }, }, ++ { 2890 /* rotr.w */, LoongArch::ROTR_W, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__GPR32AsmReg1_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg, MCK_GPR32AsmReg }, }, ++ { 2897 /* rotri.d */, LoongArch::ROTRI_D, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__UImm61_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_UImm6 }, }, ++ { 2905 /* rotri.w */, LoongArch::ROTRI_W, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__UImm51_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg, MCK_UImm5 }, }, ++ { 2913 /* sc.d */, LoongArch::SC_D, Convert__GPR64AsmReg1_0__Tie0_1_1__MemOffsetSimm14_22_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_MemOffsetSimm14_2 }, }, ++ { 2918 /* sc.w */, LoongArch::SC_W, Convert__GPR32AsmReg1_0__Tie0_1_1__MemOffsetSimm14_22_1, AMFBS_None, { MCK_GPR32AsmReg, MCK_MemOffsetSimm14_2 }, }, ++ { 2923 /* sll.d */, LoongArch::SLL_D, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__GPR32AsmReg1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_GPR32AsmReg }, }, ++ { 2929 /* sll.w */, LoongArch::SLL_W, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__GPR32AsmReg1_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg, MCK_GPR32AsmReg }, }, ++ { 2935 /* slli.d */, LoongArch::SLLI_D, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__UImm61_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_UImm6 }, }, ++ { 2942 /* slli.w */, LoongArch::SLLI_W, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__UImm51_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg, MCK_UImm5 }, }, ++ { 2949 /* slt */, LoongArch::SLT, Convert__GPR32AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 2953 /* slti */, LoongArch::SLTI, Convert__GPR32AsmReg1_0__GPR64AsmReg1_1__SImm121_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR64AsmReg, MCK_SImm12 }, }, ++ { 2958 /* sltu */, LoongArch::SLTU, Convert__GPR32AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 2963 /* sltui */, LoongArch::SLTUI, Convert__GPR32AsmReg1_0__GPR64AsmReg1_1__SImm121_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR64AsmReg, MCK_SImm12 }, }, ++ { 2969 /* sra.d */, LoongArch::SRA_D, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__GPR32AsmReg1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_GPR32AsmReg }, }, ++ { 2975 /* sra.w */, LoongArch::SRA_W, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__GPR32AsmReg1_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg, MCK_GPR32AsmReg }, }, ++ { 2981 /* srai.d */, LoongArch::SRAI_D, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__UImm61_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_UImm6 }, }, ++ { 2988 /* srai.w */, LoongArch::SRAI_W, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__UImm51_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg, MCK_UImm5 }, }, ++ { 2995 /* srl.d */, LoongArch::SRL_D, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__GPR32AsmReg1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_GPR32AsmReg }, }, ++ { 3001 /* srl.w */, LoongArch::SRL_W, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__GPR32AsmReg1_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg, MCK_GPR32AsmReg }, }, ++ { 3007 /* srli.d */, LoongArch::SRLI_D, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__UImm61_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_UImm6 }, }, ++ { 3014 /* srli.w */, LoongArch::SRLI_W, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__UImm51_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg, MCK_UImm5 }, }, ++ { 3021 /* st.b */, LoongArch::ST_B, Convert__GPR64AsmReg1_0__Mem2_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_Mem }, }, ++ { 3026 /* st.d */, LoongArch::ST_D, Convert__GPR64AsmReg1_0__MemOffsetSimmPtr2_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_MemOffsetSimmPtr }, }, ++ { 3031 /* st.h */, LoongArch::ST_H, Convert__GPR64AsmReg1_0__Mem2_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_Mem }, }, ++ { 3036 /* st.w */, LoongArch::ST_W, Convert__GPR64AsmReg1_0__Mem2_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_Mem }, }, ++ { 3041 /* stgt.b */, LoongArch::STGT_B, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 3048 /* stgt.d */, LoongArch::STGT_D, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 3055 /* stgt.h */, LoongArch::STGT_H, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 3062 /* stgt.w */, LoongArch::STGT_W, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 3069 /* stle.b */, LoongArch::STLE_B, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 3076 /* stle.d */, LoongArch::STLE_D, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 3083 /* stle.h */, LoongArch::STLE_H, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 3090 /* stle.w */, LoongArch::STLE_W, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 3097 /* stptr.d */, LoongArch::STPTR_D, Convert__GPR64AsmReg1_0__MemOffsetSimm14_22_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_MemOffsetSimm14_2 }, }, ++ { 3105 /* stptr.w */, LoongArch::STPTR_W, Convert__GPR64AsmReg1_0__MemOffsetSimm14_22_1, AMFBS_None, { MCK_GPR64AsmReg, MCK_MemOffsetSimm14_2 }, }, ++ { 3113 /* stx.b */, LoongArch::STX_B, Convert__GPR64AsmReg1_0__GPR32AsmReg1_1__GPR32AsmReg1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR32AsmReg, MCK_GPR32AsmReg }, }, ++ { 3119 /* stx.d */, LoongArch::STX_D, Convert__GPR64AsmReg1_0__GPR32AsmReg1_1__GPR32AsmReg1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR32AsmReg, MCK_GPR32AsmReg }, }, ++ { 3125 /* stx.h */, LoongArch::STX_H, Convert__GPR64AsmReg1_0__GPR32AsmReg1_1__GPR32AsmReg1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR32AsmReg, MCK_GPR32AsmReg }, }, ++ { 3131 /* stx.w */, LoongArch::STX_W, Convert__GPR64AsmReg1_0__GPR32AsmReg1_1__GPR32AsmReg1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR32AsmReg, MCK_GPR32AsmReg }, }, ++ { 3137 /* sub.d */, LoongArch::SUB_D, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 3143 /* sub.w */, LoongArch::SUB_W, Convert__GPR32AsmReg1_0__GPR32AsmReg1_1__GPR32AsmReg1_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_GPR32AsmReg, MCK_GPR32AsmReg }, }, ++ { 3149 /* syscall */, LoongArch::SYSCALL, Convert__UImm151_0, AMFBS_None, { MCK_UImm15 }, }, ++ { 3157 /* tlbclr */, LoongArch::TLBCLR, Convert_NoOperands, AMFBS_None, { }, }, ++ { 3164 /* tlbfill */, LoongArch::TLBFILL, Convert_NoOperands, AMFBS_None, { }, }, ++ { 3172 /* tlbflush */, LoongArch::TLBFLUSH, Convert_NoOperands, AMFBS_None, { }, }, ++ { 3181 /* tlbrd */, LoongArch::TLBRD, Convert_NoOperands, AMFBS_None, { }, }, ++ { 3187 /* tlbsrch */, LoongArch::TLBSRCH, Convert_NoOperands, AMFBS_None, { }, }, ++ { 3195 /* tlbwr */, LoongArch::TLBWR, Convert_NoOperands, AMFBS_None, { }, }, ++ { 3201 /* vabsd.b */, LoongArch::VABSD_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3209 /* vabsd.bu */, LoongArch::VABSD_BU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3218 /* vabsd.d */, LoongArch::VABSD_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3226 /* vabsd.du */, LoongArch::VABSD_DU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3235 /* vabsd.h */, LoongArch::VABSD_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3243 /* vabsd.hu */, LoongArch::VABSD_HU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3252 /* vabsd.w */, LoongArch::VABSD_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3260 /* vabsd.wu */, LoongArch::VABSD_WU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3269 /* vadd.b */, LoongArch::VADD_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3276 /* vadd.d */, LoongArch::VADD_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3283 /* vadd.h */, LoongArch::VADD_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3290 /* vadd.q */, LoongArch::VADD_Q, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3297 /* vadd.w */, LoongArch::VADD_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3304 /* vadda.b */, LoongArch::VADDA_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3312 /* vadda.d */, LoongArch::VADDA_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3320 /* vadda.h */, LoongArch::VADDA_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3328 /* vadda.w */, LoongArch::VADDA_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3336 /* vaddi.bu */, LoongArch::VADDI_BU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm5_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm5_0 }, }, ++ { 3345 /* vaddi.du */, LoongArch::VADDI_DU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm5_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm5_0 }, }, ++ { 3354 /* vaddi.hu */, LoongArch::VADDI_HU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm5_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm5_0 }, }, ++ { 3363 /* vaddi.wu */, LoongArch::VADDI_WU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm5_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm5_0 }, }, ++ { 3372 /* vaddwev.d.w */, LoongArch::VADDWEV_D_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3384 /* vaddwev.d.wu */, LoongArch::VADDWEV_D_WU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3397 /* vaddwev.d.wu.w */, LoongArch::VADDWEV_D_WU_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3412 /* vaddwev.h.b */, LoongArch::VADDWEV_H_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3424 /* vaddwev.h.bu */, LoongArch::VADDWEV_H_BU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3437 /* vaddwev.h.bu.b */, LoongArch::VADDWEV_H_BU_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3452 /* vaddwev.q.d */, LoongArch::VADDWEV_Q_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3464 /* vaddwev.q.du */, LoongArch::VADDWEV_Q_DU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3477 /* vaddwev.q.du.d */, LoongArch::VADDWEV_Q_DU_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3492 /* vaddwev.w.h */, LoongArch::VADDWEV_W_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3504 /* vaddwev.w.hu */, LoongArch::VADDWEV_W_HU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3517 /* vaddwev.w.hu.h */, LoongArch::VADDWEV_W_HU_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3532 /* vaddwod.d.w */, LoongArch::VADDWOD_D_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3544 /* vaddwod.d.wu */, LoongArch::VADDWOD_D_WU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3557 /* vaddwod.d.wu.w */, LoongArch::VADDWOD_D_WU_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3572 /* vaddwod.h.b */, LoongArch::VADDWOD_H_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3584 /* vaddwod.h.bu */, LoongArch::VADDWOD_H_BU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3597 /* vaddwod.h.bu.b */, LoongArch::VADDWOD_H_BU_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3612 /* vaddwod.q.d */, LoongArch::VADDWOD_Q_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3624 /* vaddwod.q.du */, LoongArch::VADDWOD_Q_DU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3637 /* vaddwod.q.du.d */, LoongArch::VADDWOD_Q_DU_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3652 /* vaddwod.w.h */, LoongArch::VADDWOD_W_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3664 /* vaddwod.w.hu */, LoongArch::VADDWOD_W_HU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3677 /* vaddwod.w.hu.h */, LoongArch::VADDWOD_W_HU_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3692 /* vand.v */, LoongArch::VAND_V, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3699 /* vandi.b */, LoongArch::VANDI_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm8_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm8_0 }, }, ++ { 3707 /* vandn.v */, LoongArch::VANDN_V, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3715 /* vavg.b */, LoongArch::VAVG_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3722 /* vavg.bu */, LoongArch::VAVG_BU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3730 /* vavg.d */, LoongArch::VAVG_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3737 /* vavg.du */, LoongArch::VAVG_DU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3745 /* vavg.h */, LoongArch::VAVG_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3752 /* vavg.hu */, LoongArch::VAVG_HU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3760 /* vavg.w */, LoongArch::VAVG_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3767 /* vavg.wu */, LoongArch::VAVG_WU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3775 /* vavgr.b */, LoongArch::VAVGR_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3783 /* vavgr.bu */, LoongArch::VAVGR_BU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3792 /* vavgr.d */, LoongArch::VAVGR_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3800 /* vavgr.du */, LoongArch::VAVGR_DU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3809 /* vavgr.h */, LoongArch::VAVGR_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3817 /* vavgr.hu */, LoongArch::VAVGR_HU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3826 /* vavgr.w */, LoongArch::VAVGR_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3834 /* vavgr.wu */, LoongArch::VAVGR_WU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3843 /* vbitclr.b */, LoongArch::VBITCLR_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3853 /* vbitclr.d */, LoongArch::VBITCLR_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3863 /* vbitclr.h */, LoongArch::VBITCLR_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3873 /* vbitclr.w */, LoongArch::VBITCLR_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3883 /* vbitclri.b */, LoongArch::VBITCLRI_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__UImm31_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm3 }, }, ++ { 3894 /* vbitclri.d */, LoongArch::VBITCLRI_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__UImm61_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm6 }, }, ++ { 3905 /* vbitclri.h */, LoongArch::VBITCLRI_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm4_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm4_0 }, }, ++ { 3916 /* vbitclri.w */, LoongArch::VBITCLRI_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm5 }, }, ++ { 3927 /* vbitrev.b */, LoongArch::VBITREV_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3937 /* vbitrev.d */, LoongArch::VBITREV_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3947 /* vbitrev.h */, LoongArch::VBITREV_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3957 /* vbitrev.w */, LoongArch::VBITREV_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 3967 /* vbitrevi.b */, LoongArch::VBITREVI_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__UImm31_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm3 }, }, ++ { 3978 /* vbitrevi.d */, LoongArch::VBITREVI_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__UImm61_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm6 }, }, ++ { 3989 /* vbitrevi.h */, LoongArch::VBITREVI_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm4_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm4_0 }, }, ++ { 4000 /* vbitrevi.w */, LoongArch::VBITREVI_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm5 }, }, ++ { 4011 /* vbitsel.v */, LoongArch::VBITSEL_V, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2__LSX128AsmReg1_3, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4021 /* vbitseli.b */, LoongArch::VBITSELI_B, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__ConstantUImm8_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm8_0 }, }, ++ { 4032 /* vbitset.b */, LoongArch::VBITSET_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4042 /* vbitset.d */, LoongArch::VBITSET_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4052 /* vbitset.h */, LoongArch::VBITSET_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4062 /* vbitset.w */, LoongArch::VBITSET_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4072 /* vbitseti.b */, LoongArch::VBITSETI_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__UImm31_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm3 }, }, ++ { 4083 /* vbitseti.d */, LoongArch::VBITSETI_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__UImm61_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm6 }, }, ++ { 4094 /* vbitseti.h */, LoongArch::VBITSETI_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm4_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm4_0 }, }, ++ { 4105 /* vbitseti.w */, LoongArch::VBITSETI_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm5 }, }, ++ { 4116 /* vbsll.v */, LoongArch::VBSLL_V, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm5 }, }, ++ { 4124 /* vbsrl.v */, LoongArch::VBSRL_V, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm5 }, }, ++ { 4132 /* vclo.b */, LoongArch::VCLO_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4139 /* vclo.d */, LoongArch::VCLO_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4146 /* vclo.h */, LoongArch::VCLO_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4153 /* vclo.w */, LoongArch::VCLO_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4160 /* vclz.b */, LoongArch::VCLZ_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4167 /* vclz.d */, LoongArch::VCLZ_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4174 /* vclz.h */, LoongArch::VCLZ_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4181 /* vclz.w */, LoongArch::VCLZ_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4188 /* vdiv.b */, LoongArch::VDIV_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4195 /* vdiv.bu */, LoongArch::VDIV_BU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4203 /* vdiv.d */, LoongArch::VDIV_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4210 /* vdiv.du */, LoongArch::VDIV_DU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4218 /* vdiv.h */, LoongArch::VDIV_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4225 /* vdiv.hu */, LoongArch::VDIV_HU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4233 /* vdiv.w */, LoongArch::VDIV_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4240 /* vdiv.wu */, LoongArch::VDIV_WU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4248 /* vext2xv.d.b */, LoongArch::VEXT2XV_D_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 4260 /* vext2xv.d.h */, LoongArch::VEXT2XV_D_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 4272 /* vext2xv.d.w */, LoongArch::VEXT2XV_D_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 4284 /* vext2xv.du.bu */, LoongArch::VEXT2XV_DU_BU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 4298 /* vext2xv.du.hu */, LoongArch::VEXT2XV_DU_HU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 4312 /* vext2xv.du.wu */, LoongArch::VEXT2XV_DU_WU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 4326 /* vext2xv.h.b */, LoongArch::VEXT2XV_H_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 4338 /* vext2xv.hu.bu */, LoongArch::VEXT2XV_HU_BU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 4352 /* vext2xv.w.b */, LoongArch::VEXT2XV_W_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 4364 /* vext2xv.w.h */, LoongArch::VEXT2XV_W_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 4376 /* vext2xv.wu.bu */, LoongArch::VEXT2XV_WU_BU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 4390 /* vext2xv.wu.hu */, LoongArch::VEXT2XV_WU_HU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 4404 /* vexth.d.w */, LoongArch::VEXTH_D_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4414 /* vexth.du.wu */, LoongArch::VEXTH_DU_WU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4426 /* vexth.h.b */, LoongArch::VEXTH_H_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4436 /* vexth.hu.bu */, LoongArch::VEXTH_HU_BU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4448 /* vexth.q.d */, LoongArch::VEXTH_Q_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4458 /* vexth.qu.du */, LoongArch::VEXTH_QU_DU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4470 /* vexth.w.h */, LoongArch::VEXTH_W_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4480 /* vexth.wu.hu */, LoongArch::VEXTH_WU_HU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4492 /* vextl.q.d */, LoongArch::VEXTL_Q_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4502 /* vextl.qu.du */, LoongArch::VEXTL_QU_DU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4514 /* vextrins.b */, LoongArch::VEXTRINS_B, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__ConstantUImm8_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm8_0 }, }, ++ { 4525 /* vextrins.d */, LoongArch::VEXTRINS_D, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__ConstantUImm8_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm8_0 }, }, ++ { 4536 /* vextrins.h */, LoongArch::VEXTRINS_H, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__ConstantUImm8_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm8_0 }, }, ++ { 4547 /* vextrins.w */, LoongArch::VEXTRINS_W, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__ConstantUImm8_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm8_0 }, }, ++ { 4558 /* vfadd.d */, LoongArch::VFADD_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4566 /* vfadd.s */, LoongArch::VFADD_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4574 /* vfclass.d */, LoongArch::VFCLASS_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4584 /* vfclass.s */, LoongArch::VFCLASS_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4594 /* vfcmp.caf.d */, LoongArch::VFCMP_CAF_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4606 /* vfcmp.caf.s */, LoongArch::VFCMP_CAF_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4618 /* vfcmp.ceq.d */, LoongArch::VFCMP_CEQ_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4630 /* vfcmp.ceq.s */, LoongArch::VFCMP_CEQ_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4642 /* vfcmp.cle.d */, LoongArch::VFCMP_CLE_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4654 /* vfcmp.cle.s */, LoongArch::VFCMP_CLE_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4666 /* vfcmp.clt.d */, LoongArch::VFCMP_CLT_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4678 /* vfcmp.clt.s */, LoongArch::VFCMP_CLT_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4690 /* vfcmp.cne.d */, LoongArch::VFCMP_CNE_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4702 /* vfcmp.cne.s */, LoongArch::VFCMP_CNE_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4714 /* vfcmp.cor.d */, LoongArch::VFCMP_COR_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4726 /* vfcmp.cor.s */, LoongArch::VFCMP_COR_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4738 /* vfcmp.cueq.d */, LoongArch::VFCMP_CUEQ_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4751 /* vfcmp.cueq.s */, LoongArch::VFCMP_CUEQ_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4764 /* vfcmp.cule.d */, LoongArch::VFCMP_CULE_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4777 /* vfcmp.cule.s */, LoongArch::VFCMP_CULE_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4790 /* vfcmp.cult.d */, LoongArch::VFCMP_CULT_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4803 /* vfcmp.cult.s */, LoongArch::VFCMP_CULT_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4816 /* vfcmp.cun.d */, LoongArch::VFCMP_CUN_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4828 /* vfcmp.cun.s */, LoongArch::VFCMP_CUN_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4840 /* vfcmp.cune.d */, LoongArch::VFCMP_CUNE_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4853 /* vfcmp.cune.s */, LoongArch::VFCMP_CUNE_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4866 /* vfcmp.saf.d */, LoongArch::VFCMP_SAF_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4878 /* vfcmp.saf.s */, LoongArch::VFCMP_SAF_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4890 /* vfcmp.seq.d */, LoongArch::VFCMP_SEQ_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4902 /* vfcmp.seq.s */, LoongArch::VFCMP_SEQ_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4914 /* vfcmp.sle.d */, LoongArch::VFCMP_SLE_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4926 /* vfcmp.sle.s */, LoongArch::VFCMP_SLE_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4938 /* vfcmp.slt.d */, LoongArch::VFCMP_SLT_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4950 /* vfcmp.slt.s */, LoongArch::VFCMP_SLT_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4962 /* vfcmp.sne.d */, LoongArch::VFCMP_SNE_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4974 /* vfcmp.sne.s */, LoongArch::VFCMP_SNE_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4986 /* vfcmp.sor.d */, LoongArch::VFCMP_SOR_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 4998 /* vfcmp.sor.s */, LoongArch::VFCMP_SOR_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5010 /* vfcmp.sueq.d */, LoongArch::VFCMP_SUEQ_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5023 /* vfcmp.sueq.s */, LoongArch::VFCMP_SUEQ_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5036 /* vfcmp.sule.d */, LoongArch::VFCMP_SULE_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5049 /* vfcmp.sule.s */, LoongArch::VFCMP_SULE_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5062 /* vfcmp.sult.d */, LoongArch::VFCMP_SULT_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5075 /* vfcmp.sult.s */, LoongArch::VFCMP_SULT_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5088 /* vfcmp.sun.d */, LoongArch::VFCMP_SUN_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5100 /* vfcmp.sun.s */, LoongArch::VFCMP_SUN_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5112 /* vfcmp.sune.d */, LoongArch::VFCMP_SUNE_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5125 /* vfcmp.sune.s */, LoongArch::VFCMP_SUNE_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5138 /* vfcvt.h.s */, LoongArch::VFCVT_H_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5148 /* vfcvt.s.d */, LoongArch::VFCVT_S_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5158 /* vfcvth.d.s */, LoongArch::VFCVTH_D_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5169 /* vfcvth.s.h */, LoongArch::VFCVTH_S_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5180 /* vfcvtl.d.s */, LoongArch::VFCVTL_D_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5191 /* vfcvtl.s.h */, LoongArch::VFCVTL_S_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5202 /* vfdiv.d */, LoongArch::VFDIV_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5210 /* vfdiv.s */, LoongArch::VFDIV_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5218 /* vffint.d.l */, LoongArch::VFFINT_D_L, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5229 /* vffint.d.lu */, LoongArch::VFFINT_D_LU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5241 /* vffint.s.l */, LoongArch::VFFINT_S_L, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5252 /* vffint.s.w */, LoongArch::VFFINT_S_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5263 /* vffint.s.wu */, LoongArch::VFFINT_S_WU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5275 /* vffinth.d.w */, LoongArch::VFFINTH_D_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5287 /* vffintl.d.w */, LoongArch::VFFINTL_D_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5299 /* vflogb.d */, LoongArch::VFLOGB_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5308 /* vflogb.s */, LoongArch::VFLOGB_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5317 /* vfmadd.d */, LoongArch::VFMADD_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2__LSX128AsmReg1_3, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5326 /* vfmadd.s */, LoongArch::VFMADD_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2__LSX128AsmReg1_3, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5335 /* vfmax.d */, LoongArch::VFMAX_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5343 /* vfmax.s */, LoongArch::VFMAX_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5351 /* vfmaxa.d */, LoongArch::VFMAXA_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5360 /* vfmaxa.s */, LoongArch::VFMAXA_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5369 /* vfmin.d */, LoongArch::VFMIN_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5377 /* vfmin.s */, LoongArch::VFMIN_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5385 /* vfmina.d */, LoongArch::VFMINA_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5394 /* vfmina.s */, LoongArch::VFMINA_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5403 /* vfmsub.d */, LoongArch::VFMSUB_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2__LSX128AsmReg1_3, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5412 /* vfmsub.s */, LoongArch::VFMSUB_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2__LSX128AsmReg1_3, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5421 /* vfmul.d */, LoongArch::VFMUL_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5429 /* vfmul.s */, LoongArch::VFMUL_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5437 /* vfnmadd.d */, LoongArch::VFNMADD_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2__LSX128AsmReg1_3, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5447 /* vfnmadd.s */, LoongArch::VFNMADD_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2__LSX128AsmReg1_3, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5457 /* vfnmsub.d */, LoongArch::VFNMSUB_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2__LSX128AsmReg1_3, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5467 /* vfnmsub.s */, LoongArch::VFNMSUB_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2__LSX128AsmReg1_3, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5477 /* vfrecip.d */, LoongArch::VFRECIP_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5487 /* vfrecip.s */, LoongArch::VFRECIP_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5497 /* vfrint.d */, LoongArch::VFRINT_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5506 /* vfrint.s */, LoongArch::VFRINT_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5515 /* vfrintrm.d */, LoongArch::VFRINTRM_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5526 /* vfrintrm.s */, LoongArch::VFRINTRM_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5537 /* vfrintrne.d */, LoongArch::VFRINTRNE_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5549 /* vfrintrne.s */, LoongArch::VFRINTRNE_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5561 /* vfrintrp.d */, LoongArch::VFRINTRP_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5572 /* vfrintrp.s */, LoongArch::VFRINTRP_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5583 /* vfrintrz.d */, LoongArch::VFRINTRZ_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5594 /* vfrintrz.s */, LoongArch::VFRINTRZ_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5605 /* vfrsqrt.d */, LoongArch::VFRSQRT_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5615 /* vfrsqrt.s */, LoongArch::VFRSQRT_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5625 /* vfrstp.b */, LoongArch::VFRSTP_B, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5634 /* vfrstp.h */, LoongArch::VFRSTP_H, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5643 /* vfrstpi.b */, LoongArch::VFRSTPI_B, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm5 }, }, ++ { 5653 /* vfrstpi.h */, LoongArch::VFRSTPI_H, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm5 }, }, ++ { 5663 /* vfsqrt.d */, LoongArch::VFSQRT_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5672 /* vfsqrt.s */, LoongArch::VFSQRT_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5681 /* vfsub.d */, LoongArch::VFSUB_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5689 /* vfsub.s */, LoongArch::VFSUB_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5697 /* vftint.l.d */, LoongArch::VFTINT_L_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5708 /* vftint.lu.d */, LoongArch::VFTINT_LU_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5720 /* vftint.w.d */, LoongArch::VFTINT_W_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5731 /* vftint.w.s */, LoongArch::VFTINT_W_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5742 /* vftint.wu.s */, LoongArch::VFTINT_WU_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5754 /* vftinth.l.s */, LoongArch::VFTINTH_L_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5766 /* vftintl.l.s */, LoongArch::VFTINTL_L_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5778 /* vftintrm.l.d */, LoongArch::VFTINTRM_L_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5791 /* vftintrm.w.d */, LoongArch::VFTINTRM_W_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5804 /* vftintrm.w.s */, LoongArch::VFTINTRM_W_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5817 /* vftintrmh.l.s */, LoongArch::VFTINTRMH_L_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5831 /* vftintrml.l.s */, LoongArch::VFTINTRML_L_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5845 /* vftintrne.l.d */, LoongArch::VFTINTRNE_L_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5859 /* vftintrne.w.d */, LoongArch::VFTINTRNE_W_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5873 /* vftintrne.w.s */, LoongArch::VFTINTRNE_W_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5887 /* vftintrneh.l.s */, LoongArch::VFTINTRNEH_L_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5902 /* vftintrnel.l.s */, LoongArch::VFTINTRNEL_L_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5917 /* vftintrp.l.d */, LoongArch::VFTINTRP_L_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5930 /* vftintrp.w.d */, LoongArch::VFTINTRP_W_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5943 /* vftintrp.w.s */, LoongArch::VFTINTRP_W_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5956 /* vftintrph.l.s */, LoongArch::VFTINTRPH_L_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5970 /* vftintrpl.l.s */, LoongArch::VFTINTRPL_L_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5984 /* vftintrz.l.d */, LoongArch::VFTINTRZ_L_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 5997 /* vftintrz.lu.d */, LoongArch::VFTINTRZ_LU_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6011 /* vftintrz.w.d */, LoongArch::VFTINTRZ_W_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6024 /* vftintrz.w.s */, LoongArch::VFTINTRZ_W_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6037 /* vftintrz.wu.s */, LoongArch::VFTINTRZ_WU_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6051 /* vftintrzh.l.s */, LoongArch::VFTINTRZH_L_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6065 /* vftintrzl.l.s */, LoongArch::VFTINTRZL_L_S, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6079 /* vhaddw.d.w */, LoongArch::VHADDW_D_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6090 /* vhaddw.du.wu */, LoongArch::VHADDW_DU_WU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6103 /* vhaddw.h.b */, LoongArch::VHADDW_H_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6114 /* vhaddw.hu.bu */, LoongArch::VHADDW_HU_BU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6127 /* vhaddw.q.d */, LoongArch::VHADDW_Q_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6138 /* vhaddw.qu.du */, LoongArch::VHADDW_QU_DU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6151 /* vhaddw.w.h */, LoongArch::VHADDW_W_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6162 /* vhaddw.wu.hu */, LoongArch::VHADDW_WU_HU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6175 /* vhsubw.d.w */, LoongArch::VHSUBW_D_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6186 /* vhsubw.du.wu */, LoongArch::VHSUBW_DU_WU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6199 /* vhsubw.h.b */, LoongArch::VHSUBW_H_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6210 /* vhsubw.hu.bu */, LoongArch::VHSUBW_HU_BU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6223 /* vhsubw.q.d */, LoongArch::VHSUBW_Q_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6234 /* vhsubw.qu.du */, LoongArch::VHSUBW_QU_DU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6247 /* vhsubw.w.h */, LoongArch::VHSUBW_W_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6258 /* vhsubw.wu.hu */, LoongArch::VHSUBW_WU_HU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6271 /* vilvh.b */, LoongArch::VILVH_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6279 /* vilvh.d */, LoongArch::VILVH_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6287 /* vilvh.h */, LoongArch::VILVH_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6295 /* vilvh.w */, LoongArch::VILVH_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6303 /* vilvl.b */, LoongArch::VILVL_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6311 /* vilvl.d */, LoongArch::VILVL_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6319 /* vilvl.h */, LoongArch::VILVL_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6327 /* vilvl.w */, LoongArch::VILVL_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6335 /* vinsgr2vr.b */, LoongArch::VINSGR2VR_B, Convert__LSX128AsmReg1_0__Tie0_1_1__GPR32AsmReg1_1__ConstantUImm4_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_GPR32AsmReg, MCK_ConstantUImm4_0 }, }, ++ { 6347 /* vinsgr2vr.d */, LoongArch::VINSGR2VR_D, Convert__LSX128AsmReg1_0__Tie0_1_1__GPR64AsmReg1_1__ConstantUImm1_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_GPR64AsmReg, MCK_ConstantUImm1_0 }, }, ++ { 6359 /* vinsgr2vr.h */, LoongArch::VINSGR2VR_H, Convert__LSX128AsmReg1_0__Tie0_1_1__GPR32AsmReg1_1__UImm31_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_GPR32AsmReg, MCK_UImm3 }, }, ++ { 6371 /* vinsgr2vr.w */, LoongArch::VINSGR2VR_W, Convert__LSX128AsmReg1_0__Tie0_1_1__GPR32AsmReg1_1__UImm21_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_GPR32AsmReg, MCK_UImm2 }, }, ++ { 6383 /* vld */, LoongArch::VLD, Convert__LSX128AsmReg1_0__Mem2_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_Mem }, }, ++ { 6387 /* vldi */, LoongArch::VLDI, Convert__LSX128AsmReg1_0__Imm1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_Imm }, }, ++ { 6387 /* vldi */, LoongArch::VLDI_B, Convert__LSX128AsmReg1_0__ConstantSImm10_01_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_ConstantSImm10_0 }, }, ++ { 6387 /* vldi */, LoongArch::VLDI_D, Convert__LSX128AsmReg1_0__ConstantSImm10_01_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_ConstantSImm10_0 }, }, ++ { 6387 /* vldi */, LoongArch::VLDI_H, Convert__LSX128AsmReg1_0__ConstantSImm10_01_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_ConstantSImm10_0 }, }, ++ { 6387 /* vldi */, LoongArch::VLDI_W, Convert__LSX128AsmReg1_0__ConstantSImm10_01_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_ConstantSImm10_0 }, }, ++ { 6392 /* vldrepl.b */, LoongArch::VLDREPL_B, Convert__LSX128AsmReg1_0__Mem2_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_Mem }, }, ++ { 6402 /* vldrepl.d */, LoongArch::VLDREPL_D, Convert__LSX128AsmReg1_0__MemOffsetSimm9_32_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_MemOffsetSimm9_3 }, }, ++ { 6412 /* vldrepl.h */, LoongArch::VLDREPL_H, Convert__LSX128AsmReg1_0__MemOffsetSimm11_12_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_MemOffsetSimm11_1 }, }, ++ { 6422 /* vldrepl.w */, LoongArch::VLDREPL_W, Convert__LSX128AsmReg1_0__MemOffsetSimm10_22_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_MemOffsetSimm10_2 }, }, ++ { 6432 /* vldx */, LoongArch::VLDX, Convert__LSX128AsmReg1_0__GPR32AsmReg1_1__GPR64AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_GPR32AsmReg, MCK_GPR64AsmReg }, }, ++ { 6437 /* vmadd.b */, LoongArch::VMADD_B, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6445 /* vmadd.d */, LoongArch::VMADD_D, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6453 /* vmadd.h */, LoongArch::VMADD_H, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6461 /* vmadd.w */, LoongArch::VMADD_W, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6469 /* vmaddwev.d.w */, LoongArch::VMADDWEV_D_W, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6482 /* vmaddwev.d.wu */, LoongArch::VMADDWEV_D_WU, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6496 /* vmaddwev.d.wu.w */, LoongArch::VMADDWEV_D_WU_W, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6512 /* vmaddwev.h.b */, LoongArch::VMADDWEV_H_B, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6525 /* vmaddwev.h.bu */, LoongArch::VMADDWEV_H_BU, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6539 /* vmaddwev.h.bu.b */, LoongArch::VMADDWEV_H_BU_B, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6555 /* vmaddwev.q.d */, LoongArch::VMADDWEV_Q_D, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6568 /* vmaddwev.q.du */, LoongArch::VMADDWEV_Q_DU, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6582 /* vmaddwev.q.du.d */, LoongArch::VMADDWEV_Q_DU_D, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6598 /* vmaddwev.w.h */, LoongArch::VMADDWEV_W_H, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6611 /* vmaddwev.w.hu */, LoongArch::VMADDWEV_W_HU, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6625 /* vmaddwev.w.hu.h */, LoongArch::VMADDWEV_W_HU_H, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6641 /* vmaddwod.d.w */, LoongArch::VMADDWOD_D_W, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6654 /* vmaddwod.d.wu */, LoongArch::VMADDWOD_D_WU, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6668 /* vmaddwod.d.wu.w */, LoongArch::VMADDWOD_D_WU_W, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6684 /* vmaddwod.h.b */, LoongArch::VMADDWOD_H_B, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6697 /* vmaddwod.h.bu */, LoongArch::VMADDWOD_H_BU, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6711 /* vmaddwod.h.bu.b */, LoongArch::VMADDWOD_H_BU_B, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6727 /* vmaddwod.q.d */, LoongArch::VMADDWOD_Q_D, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6740 /* vmaddwod.q.du */, LoongArch::VMADDWOD_Q_DU, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6754 /* vmaddwod.q.du.d */, LoongArch::VMADDWOD_Q_DU_D, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6770 /* vmaddwod.w.h */, LoongArch::VMADDWOD_W_H, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6783 /* vmaddwod.w.hu */, LoongArch::VMADDWOD_W_HU, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6797 /* vmaddwod.w.hu.h */, LoongArch::VMADDWOD_W_HU_H, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6813 /* vmax.b */, LoongArch::VMAX_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6820 /* vmax.bu */, LoongArch::VMAX_BU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6828 /* vmax.d */, LoongArch::VMAX_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6835 /* vmax.du */, LoongArch::VMAX_DU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6843 /* vmax.h */, LoongArch::VMAX_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6850 /* vmax.hu */, LoongArch::VMAX_HU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6858 /* vmax.w */, LoongArch::VMAX_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6865 /* vmax.wu */, LoongArch::VMAX_WU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6873 /* vmaxi.b */, LoongArch::VMAXI_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__SImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_SImm5 }, }, ++ { 6881 /* vmaxi.bu */, LoongArch::VMAXI_BU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm5 }, }, ++ { 6890 /* vmaxi.d */, LoongArch::VMAXI_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__SImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_SImm5 }, }, ++ { 6898 /* vmaxi.du */, LoongArch::VMAXI_DU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm5 }, }, ++ { 6907 /* vmaxi.h */, LoongArch::VMAXI_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__SImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_SImm5 }, }, ++ { 6915 /* vmaxi.hu */, LoongArch::VMAXI_HU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm5 }, }, ++ { 6924 /* vmaxi.w */, LoongArch::VMAXI_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__SImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_SImm5 }, }, ++ { 6932 /* vmaxi.wu */, LoongArch::VMAXI_WU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm5 }, }, ++ { 6941 /* vmin.b */, LoongArch::VMIN_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6948 /* vmin.bu */, LoongArch::VMIN_BU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6956 /* vmin.d */, LoongArch::VMIN_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6963 /* vmin.du */, LoongArch::VMIN_DU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6971 /* vmin.h */, LoongArch::VMIN_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6978 /* vmin.hu */, LoongArch::VMIN_HU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6986 /* vmin.w */, LoongArch::VMIN_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 6993 /* vmin.wu */, LoongArch::VMIN_WU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7001 /* vmini.b */, LoongArch::VMINI_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__SImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_SImm5 }, }, ++ { 7009 /* vmini.bu */, LoongArch::VMINI_BU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm5_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm5_0 }, }, ++ { 7018 /* vmini.d */, LoongArch::VMINI_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__SImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_SImm5 }, }, ++ { 7026 /* vmini.du */, LoongArch::VMINI_DU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm5_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm5_0 }, }, ++ { 7035 /* vmini.h */, LoongArch::VMINI_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__SImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_SImm5 }, }, ++ { 7043 /* vmini.hu */, LoongArch::VMINI_HU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm5_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm5_0 }, }, ++ { 7052 /* vmini.w */, LoongArch::VMINI_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__SImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_SImm5 }, }, ++ { 7060 /* vmini.wu */, LoongArch::VMINI_WU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm5_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm5_0 }, }, ++ { 7069 /* vmod.b */, LoongArch::VMOD_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7076 /* vmod.bu */, LoongArch::VMOD_BU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7084 /* vmod.d */, LoongArch::VMOD_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7091 /* vmod.du */, LoongArch::VMOD_DU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7099 /* vmod.h */, LoongArch::VMOD_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7106 /* vmod.hu */, LoongArch::VMOD_HU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7114 /* vmod.w */, LoongArch::VMOD_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7121 /* vmod.wu */, LoongArch::VMOD_WU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7129 /* vmskgez.b */, LoongArch::VMSKGEZ_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7139 /* vmskltz.b */, LoongArch::VMSKLTZ_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7149 /* vmskltz.d */, LoongArch::VMSKLTZ_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7159 /* vmskltz.h */, LoongArch::VMSKLTZ_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7169 /* vmskltz.w */, LoongArch::VMSKLTZ_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7179 /* vmsknz.b */, LoongArch::VMSKNZ_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7188 /* vmsub.b */, LoongArch::VMSUB_B, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7196 /* vmsub.d */, LoongArch::VMSUB_D, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7204 /* vmsub.h */, LoongArch::VMSUB_H, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7212 /* vmsub.w */, LoongArch::VMSUB_W, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7220 /* vmuh.b */, LoongArch::VMUH_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7227 /* vmuh.bu */, LoongArch::VMUH_BU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7235 /* vmuh.d */, LoongArch::VMUH_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7242 /* vmuh.du */, LoongArch::VMUH_DU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7250 /* vmuh.h */, LoongArch::VMUH_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7257 /* vmuh.hu */, LoongArch::VMUH_HU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7265 /* vmuh.w */, LoongArch::VMUH_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7272 /* vmuh.wu */, LoongArch::VMUH_WU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7280 /* vmul.b */, LoongArch::VMUL_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7287 /* vmul.d */, LoongArch::VMUL_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7294 /* vmul.h */, LoongArch::VMUL_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7301 /* vmul.w */, LoongArch::VMUL_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7308 /* vmulwev.d.w */, LoongArch::VMULWEV_D_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7320 /* vmulwev.d.wu */, LoongArch::VMULWEV_D_WU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7333 /* vmulwev.d.wu.w */, LoongArch::VMULWEV_D_WU_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7348 /* vmulwev.h.b */, LoongArch::VMULWEV_H_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7360 /* vmulwev.h.bu */, LoongArch::VMULWEV_H_BU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7373 /* vmulwev.h.bu.b */, LoongArch::VMULWEV_H_BU_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7388 /* vmulwev.q.d */, LoongArch::VMULWEV_Q_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7400 /* vmulwev.q.du */, LoongArch::VMULWEV_Q_DU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7413 /* vmulwev.q.du.d */, LoongArch::VMULWEV_Q_DU_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7428 /* vmulwev.w.h */, LoongArch::VMULWEV_W_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7440 /* vmulwev.w.hu */, LoongArch::VMULWEV_W_HU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7453 /* vmulwev.w.hu.h */, LoongArch::VMULWEV_W_HU_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7468 /* vmulwod.d.w */, LoongArch::VMULWOD_D_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7480 /* vmulwod.d.wu */, LoongArch::VMULWOD_D_WU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7493 /* vmulwod.d.wu.w */, LoongArch::VMULWOD_D_WU_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7508 /* vmulwod.h.b */, LoongArch::VMULWOD_H_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7520 /* vmulwod.h.bu */, LoongArch::VMULWOD_H_BU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7533 /* vmulwod.h.bu.b */, LoongArch::VMULWOD_H_BU_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7548 /* vmulwod.q.d */, LoongArch::VMULWOD_Q_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7560 /* vmulwod.q.du */, LoongArch::VMULWOD_Q_DU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7573 /* vmulwod.q.du.d */, LoongArch::VMULWOD_Q_DU_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7588 /* vmulwod.w.h */, LoongArch::VMULWOD_W_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7600 /* vmulwod.w.hu */, LoongArch::VMULWOD_W_HU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7613 /* vmulwod.w.hu.h */, LoongArch::VMULWOD_W_HU_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7628 /* vneg.b */, LoongArch::VNEG_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7635 /* vneg.d */, LoongArch::VNEG_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7642 /* vneg.h */, LoongArch::VNEG_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7649 /* vneg.w */, LoongArch::VNEG_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7656 /* vnor.v */, LoongArch::VNOR_V, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7663 /* vnori.b */, LoongArch::VNORI_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm8_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm8_0 }, }, ++ { 7671 /* vor.v */, LoongArch::VOR_V, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7677 /* vori.b */, LoongArch::VORI_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm8_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm8_0 }, }, ++ { 7684 /* vorn.v */, LoongArch::VORN_V, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7691 /* vpackev.b */, LoongArch::VPACKEV_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7701 /* vpackev.d */, LoongArch::VPACKEV_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7711 /* vpackev.h */, LoongArch::VPACKEV_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7721 /* vpackev.w */, LoongArch::VPACKEV_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7731 /* vpackod.b */, LoongArch::VPACKOD_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7741 /* vpackod.d */, LoongArch::VPACKOD_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7751 /* vpackod.h */, LoongArch::VPACKOD_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7761 /* vpackod.w */, LoongArch::VPACKOD_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7771 /* vpcnt.b */, LoongArch::VPCNT_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7779 /* vpcnt.d */, LoongArch::VPCNT_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7787 /* vpcnt.h */, LoongArch::VPCNT_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7795 /* vpcnt.w */, LoongArch::VPCNT_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7803 /* vpermi.w */, LoongArch::VPERMI_W, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__ConstantUImm8_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm8_0 }, }, ++ { 7812 /* vpickev.b */, LoongArch::VPICKEV_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7822 /* vpickev.d */, LoongArch::VPICKEV_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7832 /* vpickev.h */, LoongArch::VPICKEV_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7842 /* vpickev.w */, LoongArch::VPICKEV_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7852 /* vpickod.b */, LoongArch::VPICKOD_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7862 /* vpickod.d */, LoongArch::VPICKOD_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7872 /* vpickod.h */, LoongArch::VPICKOD_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7882 /* vpickod.w */, LoongArch::VPICKOD_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 7892 /* vpickve2gr.b */, LoongArch::VPICKVE2GR_B, Convert__GPR32AsmReg1_0__LSX128AsmReg1_1__ConstantUImm4_01_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm4_0 }, }, ++ { 7905 /* vpickve2gr.bu */, LoongArch::VPICKVE2GR_BU, Convert__GPR32AsmReg1_0__LSX128AsmReg1_1__ConstantUImm4_01_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm4_0 }, }, ++ { 7919 /* vpickve2gr.d */, LoongArch::VPICKVE2GR_D, Convert__GPR64AsmReg1_0__LSX128AsmReg1_1__ConstantUImm1_01_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm1_0 }, }, ++ { 7932 /* vpickve2gr.du */, LoongArch::VPICKVE2GR_DU, Convert__GPR64AsmReg1_0__LSX128AsmReg1_1__ConstantUImm1_01_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm1_0 }, }, ++ { 7946 /* vpickve2gr.h */, LoongArch::VPICKVE2GR_H, Convert__GPR32AsmReg1_0__LSX128AsmReg1_1__ConstantUImm3_01_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm3_0 }, }, ++ { 7959 /* vpickve2gr.hu */, LoongArch::VPICKVE2GR_HU, Convert__GPR32AsmReg1_0__LSX128AsmReg1_1__ConstantUImm3_01_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm3_0 }, }, ++ { 7973 /* vpickve2gr.w */, LoongArch::VPICKVE2GR_W, Convert__GPR32AsmReg1_0__LSX128AsmReg1_1__ConstantUImm2_01_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm2_0 }, }, ++ { 7986 /* vpickve2gr.wu */, LoongArch::VPICKVE2GR_WU, Convert__GPR32AsmReg1_0__LSX128AsmReg1_1__ConstantUImm2_01_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm2_0 }, }, ++ { 8000 /* vreplgr2vr.b */, LoongArch::VREPLGR2VR_B, Convert__LSX128AsmReg1_0__GPR32AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_GPR32AsmReg }, }, ++ { 8013 /* vreplgr2vr.d */, LoongArch::VREPLGR2VR_D, Convert__LSX128AsmReg1_0__GPR64AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_GPR64AsmReg }, }, ++ { 8026 /* vreplgr2vr.h */, LoongArch::VREPLGR2VR_H, Convert__LSX128AsmReg1_0__GPR32AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_GPR32AsmReg }, }, ++ { 8039 /* vreplgr2vr.w */, LoongArch::VREPLGR2VR_W, Convert__LSX128AsmReg1_0__GPR32AsmReg1_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_GPR32AsmReg }, }, ++ { 8052 /* vreplve.b */, LoongArch::VREPLVE_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__GPR32AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_GPR32AsmReg }, }, ++ { 8062 /* vreplve.d */, LoongArch::VREPLVE_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__GPR32AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_GPR32AsmReg }, }, ++ { 8072 /* vreplve.h */, LoongArch::VREPLVE_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__GPR32AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_GPR32AsmReg }, }, ++ { 8082 /* vreplve.w */, LoongArch::VREPLVE_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__GPR32AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_GPR32AsmReg }, }, ++ { 8092 /* vreplvei.b */, LoongArch::VREPLVEI_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm4_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm4_0 }, }, ++ { 8103 /* vreplvei.d */, LoongArch::VREPLVEI_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm1_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm1_0 }, }, ++ { 8114 /* vreplvei.h */, LoongArch::VREPLVEI_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm3_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm3_0 }, }, ++ { 8125 /* vreplvei.w */, LoongArch::VREPLVEI_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm2_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm2_0 }, }, ++ { 8136 /* vrotr.b */, LoongArch::VROTR_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 8144 /* vrotr.d */, LoongArch::VROTR_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 8152 /* vrotr.h */, LoongArch::VROTR_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 8160 /* vrotr.w */, LoongArch::VROTR_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 8168 /* vrotri.b */, LoongArch::VROTRI_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__UImm31_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm3 }, }, ++ { 8177 /* vrotri.d */, LoongArch::VROTRI_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__UImm61_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm6 }, }, ++ { 8186 /* vrotri.h */, LoongArch::VROTRI_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm4_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm4_0 }, }, ++ { 8195 /* vrotri.w */, LoongArch::VROTRI_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm5 }, }, ++ { 8204 /* vsadd.b */, LoongArch::VSADD_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 8212 /* vsadd.bu */, LoongArch::VSADD_BU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 8221 /* vsadd.d */, LoongArch::VSADD_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 8229 /* vsadd.du */, LoongArch::VSADD_DU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 8238 /* vsadd.h */, LoongArch::VSADD_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 8246 /* vsadd.hu */, LoongArch::VSADD_HU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 8255 /* vsadd.w */, LoongArch::VSADD_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 8263 /* vsadd.wu */, LoongArch::VSADD_WU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 8272 /* vsat.b */, LoongArch::VSAT_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__UImm31_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm3 }, }, ++ { 8279 /* vsat.bu */, LoongArch::VSAT_BU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__UImm31_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm3 }, }, ++ { 8287 /* vsat.d */, LoongArch::VSAT_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__UImm61_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm6 }, }, ++ { 8294 /* vsat.du */, LoongArch::VSAT_DU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__UImm61_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm6 }, }, ++ { 8302 /* vsat.h */, LoongArch::VSAT_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm4_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm4_0 }, }, ++ { 8309 /* vsat.hu */, LoongArch::VSAT_HU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm4_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm4_0 }, }, ++ { 8317 /* vsat.w */, LoongArch::VSAT_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm5 }, }, ++ { 8324 /* vsat.wu */, LoongArch::VSAT_WU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm5 }, }, ++ { 8332 /* vseq.b */, LoongArch::VSEQ_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 8339 /* vseq.d */, LoongArch::VSEQ_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 8346 /* vseq.h */, LoongArch::VSEQ_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 8353 /* vseq.w */, LoongArch::VSEQ_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 8360 /* vseqi.b */, LoongArch::VSEQI_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__SImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_SImm5 }, }, ++ { 8368 /* vseqi.d */, LoongArch::VSEQI_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__SImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_SImm5 }, }, ++ { 8376 /* vseqi.h */, LoongArch::VSEQI_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__SImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_SImm5 }, }, ++ { 8384 /* vseqi.w */, LoongArch::VSEQI_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__SImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_SImm5 }, }, ++ { 8392 /* vsetallnez.b */, LoongArch::VSETALLNEZ_B, Convert__FCFRAsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_FCFRAsmReg, MCK_LSX128AsmReg }, }, ++ { 8405 /* vsetallnez.d */, LoongArch::VSETALLNEZ_D, Convert__FCFRAsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_FCFRAsmReg, MCK_LSX128AsmReg }, }, ++ { 8418 /* vsetallnez.h */, LoongArch::VSETALLNEZ_H, Convert__FCFRAsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_FCFRAsmReg, MCK_LSX128AsmReg }, }, ++ { 8431 /* vsetallnez.w */, LoongArch::VSETALLNEZ_W, Convert__FCFRAsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_FCFRAsmReg, MCK_LSX128AsmReg }, }, ++ { 8444 /* vsetanyeqz.b */, LoongArch::VSETANYEQZ_B, Convert__FCFRAsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_FCFRAsmReg, MCK_LSX128AsmReg }, }, ++ { 8457 /* vsetanyeqz.d */, LoongArch::VSETANYEQZ_D, Convert__FCFRAsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_FCFRAsmReg, MCK_LSX128AsmReg }, }, ++ { 8470 /* vsetanyeqz.h */, LoongArch::VSETANYEQZ_H, Convert__FCFRAsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_FCFRAsmReg, MCK_LSX128AsmReg }, }, ++ { 8483 /* vsetanyeqz.w */, LoongArch::VSETANYEQZ_W, Convert__FCFRAsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_FCFRAsmReg, MCK_LSX128AsmReg }, }, ++ { 8496 /* vseteqz.v */, LoongArch::VSETEQZ_V, Convert__FCFRAsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_FCFRAsmReg, MCK_LSX128AsmReg }, }, ++ { 8506 /* vsetnez.v */, LoongArch::VSETNEZ_V, Convert__FCFRAsmReg1_0__LSX128AsmReg1_1, AMFBS_None, { MCK_FCFRAsmReg, MCK_LSX128AsmReg }, }, ++ { 8516 /* vshuf.b */, LoongArch::VSHUF_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2__LSX128AsmReg1_3, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 8524 /* vshuf.d */, LoongArch::VSHUF_D, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 8532 /* vshuf.h */, LoongArch::VSHUF_H, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 8540 /* vshuf.w */, LoongArch::VSHUF_W, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 8548 /* vshuf4i.b */, LoongArch::VSHUF4I_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm8_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm8_0 }, }, ++ { 8558 /* vshuf4i.d */, LoongArch::VSHUF4I_D, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__ConstantUImm8_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm8_0 }, }, ++ { 8568 /* vshuf4i.h */, LoongArch::VSHUF4I_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm8_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm8_0 }, }, ++ { 8578 /* vshuf4i.w */, LoongArch::VSHUF4I_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm8_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm8_0 }, }, ++ { 8588 /* vsigncov.b */, LoongArch::VSIGNCOV_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 8599 /* vsigncov.d */, LoongArch::VSIGNCOV_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 8610 /* vsigncov.h */, LoongArch::VSIGNCOV_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 8621 /* vsigncov.w */, LoongArch::VSIGNCOV_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 8632 /* vsle.b */, LoongArch::VSLE_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 8639 /* vsle.bu */, LoongArch::VSLE_BU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 8647 /* vsle.d */, LoongArch::VSLE_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 8654 /* vsle.du */, LoongArch::VSLE_DU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 8662 /* vsle.h */, LoongArch::VSLE_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 8669 /* vsle.hu */, LoongArch::VSLE_HU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 8677 /* vsle.w */, LoongArch::VSLE_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 8684 /* vsle.wu */, LoongArch::VSLE_WU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 8692 /* vslei.b */, LoongArch::VSLEI_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__SImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_SImm5 }, }, ++ { 8700 /* vslei.bu */, LoongArch::VSLEI_BU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm5 }, }, ++ { 8709 /* vslei.d */, LoongArch::VSLEI_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__SImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_SImm5 }, }, ++ { 8717 /* vslei.du */, LoongArch::VSLEI_DU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm5 }, }, ++ { 8726 /* vslei.h */, LoongArch::VSLEI_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__SImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_SImm5 }, }, ++ { 8734 /* vslei.hu */, LoongArch::VSLEI_HU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm5 }, }, ++ { 8743 /* vslei.w */, LoongArch::VSLEI_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__SImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_SImm5 }, }, ++ { 8751 /* vslei.wu */, LoongArch::VSLEI_WU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm5 }, }, ++ { 8760 /* vsll.b */, LoongArch::VSLL_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 8767 /* vsll.d */, LoongArch::VSLL_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 8774 /* vsll.h */, LoongArch::VSLL_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 8781 /* vsll.w */, LoongArch::VSLL_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 8788 /* vslli.b */, LoongArch::VSLLI_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm3_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm3_0 }, }, ++ { 8796 /* vslli.d */, LoongArch::VSLLI_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm6_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm6_0 }, }, ++ { 8804 /* vslli.h */, LoongArch::VSLLI_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm4_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm4_0 }, }, ++ { 8812 /* vslli.w */, LoongArch::VSLLI_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm5_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm5_0 }, }, ++ { 8820 /* vsllwil.d.w */, LoongArch::VSLLWIL_D_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm5 }, }, ++ { 8832 /* vsllwil.du.wu */, LoongArch::VSLLWIL_DU_WU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm5 }, }, ++ { 8846 /* vsllwil.h.b */, LoongArch::VSLLWIL_H_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__UImm31_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm3 }, }, ++ { 8858 /* vsllwil.hu.bu */, LoongArch::VSLLWIL_HU_BU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__UImm31_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm3 }, }, ++ { 8872 /* vsllwil.w.h */, LoongArch::VSLLWIL_W_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm4_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm4_0 }, }, ++ { 8884 /* vsllwil.wu.hu */, LoongArch::VSLLWIL_WU_HU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm4_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm4_0 }, }, ++ { 8898 /* vslt.b */, LoongArch::VSLT_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 8905 /* vslt.bu */, LoongArch::VSLT_BU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 8913 /* vslt.d */, LoongArch::VSLT_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 8920 /* vslt.du */, LoongArch::VSLT_DU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 8928 /* vslt.h */, LoongArch::VSLT_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 8935 /* vslt.hu */, LoongArch::VSLT_HU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 8943 /* vslt.w */, LoongArch::VSLT_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 8950 /* vslt.wu */, LoongArch::VSLT_WU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 8958 /* vslti.b */, LoongArch::VSLTI_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__SImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_SImm5 }, }, ++ { 8966 /* vslti.bu */, LoongArch::VSLTI_BU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm5 }, }, ++ { 8975 /* vslti.d */, LoongArch::VSLTI_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__SImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_SImm5 }, }, ++ { 8983 /* vslti.du */, LoongArch::VSLTI_DU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm5 }, }, ++ { 8992 /* vslti.h */, LoongArch::VSLTI_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__SImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_SImm5 }, }, ++ { 9000 /* vslti.hu */, LoongArch::VSLTI_HU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm5 }, }, ++ { 9009 /* vslti.w */, LoongArch::VSLTI_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__SImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_SImm5 }, }, ++ { 9017 /* vslti.wu */, LoongArch::VSLTI_WU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm5 }, }, ++ { 9026 /* vsra.b */, LoongArch::VSRA_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 9033 /* vsra.d */, LoongArch::VSRA_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 9040 /* vsra.h */, LoongArch::VSRA_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 9047 /* vsra.w */, LoongArch::VSRA_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 9054 /* vsrai.b */, LoongArch::VSRAI_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__UImm31_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm3 }, }, ++ { 9062 /* vsrai.d */, LoongArch::VSRAI_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__UImm61_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm6 }, }, ++ { 9070 /* vsrai.h */, LoongArch::VSRAI_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm4_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm4_0 }, }, ++ { 9078 /* vsrai.w */, LoongArch::VSRAI_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm5 }, }, ++ { 9086 /* vsran.b.h */, LoongArch::VSRAN_B_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 9096 /* vsran.h.w */, LoongArch::VSRAN_H_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 9106 /* vsran.w.d */, LoongArch::VSRAN_W_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 9116 /* vsrani.b.h */, LoongArch::VSRANI_B_H, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__ConstantUImm4_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm4_0 }, }, ++ { 9127 /* vsrani.d.q */, LoongArch::VSRANI_D_Q, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__ConstantUImm7_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm7_0 }, }, ++ { 9138 /* vsrani.h.w */, LoongArch::VSRANI_H_W, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm5 }, }, ++ { 9149 /* vsrani.w.d */, LoongArch::VSRANI_W_D, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__UImm61_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm6 }, }, ++ { 9160 /* vsrar.b */, LoongArch::VSRAR_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 9168 /* vsrar.d */, LoongArch::VSRAR_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 9176 /* vsrar.h */, LoongArch::VSRAR_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 9184 /* vsrar.w */, LoongArch::VSRAR_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 9192 /* vsrari.b */, LoongArch::VSRARI_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__UImm31_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm3 }, }, ++ { 9201 /* vsrari.d */, LoongArch::VSRARI_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__UImm61_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm6 }, }, ++ { 9210 /* vsrari.h */, LoongArch::VSRARI_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm4_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm4_0 }, }, ++ { 9219 /* vsrari.w */, LoongArch::VSRARI_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm5 }, }, ++ { 9228 /* vsrarn.b.h */, LoongArch::VSRARN_B_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 9239 /* vsrarn.h.w */, LoongArch::VSRARN_H_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 9250 /* vsrarn.w.d */, LoongArch::VSRARN_W_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 9261 /* vsrarni.b.h */, LoongArch::VSRARNI_B_H, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__ConstantUImm4_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm4_0 }, }, ++ { 9273 /* vsrarni.d.q */, LoongArch::VSRARNI_D_Q, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__ConstantUImm7_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm7_0 }, }, ++ { 9285 /* vsrarni.h.w */, LoongArch::VSRARNI_H_W, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm5 }, }, ++ { 9297 /* vsrarni.w.d */, LoongArch::VSRARNI_W_D, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__UImm61_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm6 }, }, ++ { 9309 /* vsrl.b */, LoongArch::VSRL_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 9316 /* vsrl.d */, LoongArch::VSRL_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 9323 /* vsrl.h */, LoongArch::VSRL_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 9330 /* vsrl.w */, LoongArch::VSRL_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 9337 /* vsrli.b */, LoongArch::VSRLI_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm3_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm3_0 }, }, ++ { 9345 /* vsrli.d */, LoongArch::VSRLI_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm6_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm6_0 }, }, ++ { 9353 /* vsrli.h */, LoongArch::VSRLI_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm4_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm4_0 }, }, ++ { 9361 /* vsrli.w */, LoongArch::VSRLI_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm5_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm5_0 }, }, ++ { 9369 /* vsrln.b.h */, LoongArch::VSRLN_B_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 9379 /* vsrln.h.w */, LoongArch::VSRLN_H_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 9389 /* vsrln.w.d */, LoongArch::VSRLN_W_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 9399 /* vsrlni.b.h */, LoongArch::VSRLNI_B_H, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__ConstantUImm4_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm4_0 }, }, ++ { 9410 /* vsrlni.d.q */, LoongArch::VSRLNI_D_Q, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__ConstantUImm7_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm7_0 }, }, ++ { 9421 /* vsrlni.h.w */, LoongArch::VSRLNI_H_W, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm5 }, }, ++ { 9432 /* vsrlni.w.d */, LoongArch::VSRLNI_W_D, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__UImm61_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm6 }, }, ++ { 9443 /* vsrlr.b */, LoongArch::VSRLR_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 9451 /* vsrlr.d */, LoongArch::VSRLR_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 9459 /* vsrlr.h */, LoongArch::VSRLR_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 9467 /* vsrlr.w */, LoongArch::VSRLR_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 9475 /* vsrlri.b */, LoongArch::VSRLRI_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__UImm31_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm3 }, }, ++ { 9484 /* vsrlri.d */, LoongArch::VSRLRI_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__UImm61_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm6 }, }, ++ { 9493 /* vsrlri.h */, LoongArch::VSRLRI_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm4_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm4_0 }, }, ++ { 9502 /* vsrlri.w */, LoongArch::VSRLRI_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm5 }, }, ++ { 9511 /* vsrlrn.b.h */, LoongArch::VSRLRN_B_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 9522 /* vsrlrn.h.w */, LoongArch::VSRLRN_H_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 9533 /* vsrlrn.w.d */, LoongArch::VSRLRN_W_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 9544 /* vsrlrni.b.h */, LoongArch::VSRLRNI_B_H, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__ConstantUImm4_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm4_0 }, }, ++ { 9556 /* vsrlrni.d.q */, LoongArch::VSRLRNI_D_Q, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__ConstantUImm7_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm7_0 }, }, ++ { 9568 /* vsrlrni.h.w */, LoongArch::VSRLRNI_H_W, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm5 }, }, ++ { 9580 /* vsrlrni.w.d */, LoongArch::VSRLRNI_W_D, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__UImm61_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm6 }, }, ++ { 9592 /* vssran.b.h */, LoongArch::VSSRAN_B_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 9603 /* vssran.bu.h */, LoongArch::VSSRAN_BU_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 9615 /* vssran.h.w */, LoongArch::VSSRAN_H_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 9626 /* vssran.hu.w */, LoongArch::VSSRAN_HU_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 9638 /* vssran.w.d */, LoongArch::VSSRAN_W_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 9649 /* vssran.wu.d */, LoongArch::VSSRAN_WU_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 9661 /* vssrani.b.h */, LoongArch::VSSRANI_B_H, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__ConstantUImm4_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm4_0 }, }, ++ { 9673 /* vssrani.bu.h */, LoongArch::VSSRANI_BU_H, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__ConstantUImm4_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm4_0 }, }, ++ { 9686 /* vssrani.d.q */, LoongArch::VSSRANI_D_Q, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__ConstantUImm7_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm7_0 }, }, ++ { 9698 /* vssrani.du.q */, LoongArch::VSSRANI_DU_Q, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__ConstantUImm7_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm7_0 }, }, ++ { 9711 /* vssrani.h.w */, LoongArch::VSSRANI_H_W, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm5 }, }, ++ { 9723 /* vssrani.hu.w */, LoongArch::VSSRANI_HU_W, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm5 }, }, ++ { 9736 /* vssrani.w.d */, LoongArch::VSSRANI_W_D, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__UImm61_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm6 }, }, ++ { 9748 /* vssrani.wu.d */, LoongArch::VSSRANI_WU_D, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__UImm61_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm6 }, }, ++ { 9761 /* vssrarn.b.h */, LoongArch::VSSRARN_B_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 9773 /* vssrarn.bu.h */, LoongArch::VSSRARN_BU_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 9786 /* vssrarn.h.w */, LoongArch::VSSRARN_H_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 9798 /* vssrarn.hu.w */, LoongArch::VSSRARN_HU_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 9811 /* vssrarn.w.d */, LoongArch::VSSRARN_W_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 9823 /* vssrarn.wu.d */, LoongArch::VSSRARN_WU_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 9836 /* vssrarni.b.h */, LoongArch::VSSRARNI_B_H, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__ConstantUImm4_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm4_0 }, }, ++ { 9849 /* vssrarni.bu.h */, LoongArch::VSSRARNI_BU_H, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__ConstantUImm4_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm4_0 }, }, ++ { 9863 /* vssrarni.d.q */, LoongArch::VSSRARNI_D_Q, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__ConstantUImm7_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm7_0 }, }, ++ { 9876 /* vssrarni.du.q */, LoongArch::VSSRARNI_DU_Q, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__ConstantUImm7_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm7_0 }, }, ++ { 9890 /* vssrarni.h.w */, LoongArch::VSSRARNI_H_W, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm5 }, }, ++ { 9903 /* vssrarni.hu.w */, LoongArch::VSSRARNI_HU_W, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm5 }, }, ++ { 9917 /* vssrarni.w.d */, LoongArch::VSSRARNI_W_D, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__UImm61_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm6 }, }, ++ { 9930 /* vssrarni.wu.d */, LoongArch::VSSRARNI_WU_D, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__UImm61_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm6 }, }, ++ { 9944 /* vssrln.b.h */, LoongArch::VSSRLN_B_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 9955 /* vssrln.bu.h */, LoongArch::VSSRLN_BU_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 9967 /* vssrln.h.w */, LoongArch::VSSRLN_H_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 9978 /* vssrln.hu.w */, LoongArch::VSSRLN_HU_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 9990 /* vssrln.w.d */, LoongArch::VSSRLN_W_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 10001 /* vssrln.wu.d */, LoongArch::VSSRLN_WU_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 10013 /* vssrlni.b.h */, LoongArch::VSSRLNI_B_H, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__ConstantUImm4_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm4_0 }, }, ++ { 10025 /* vssrlni.bu.h */, LoongArch::VSSRLNI_BU_H, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__ConstantUImm4_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm4_0 }, }, ++ { 10038 /* vssrlni.d.q */, LoongArch::VSSRLNI_D_Q, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__ConstantUImm7_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm7_0 }, }, ++ { 10050 /* vssrlni.du.q */, LoongArch::VSSRLNI_DU_Q, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__ConstantUImm7_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm7_0 }, }, ++ { 10063 /* vssrlni.h.w */, LoongArch::VSSRLNI_H_W, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm5 }, }, ++ { 10075 /* vssrlni.hu.w */, LoongArch::VSSRLNI_HU_W, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm5 }, }, ++ { 10088 /* vssrlni.w.d */, LoongArch::VSSRLNI_W_D, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__UImm61_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm6 }, }, ++ { 10100 /* vssrlni.wu.d */, LoongArch::VSSRLNI_WU_D, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__UImm61_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm6 }, }, ++ { 10113 /* vssrlrn.b.h */, LoongArch::VSSRLRN_B_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 10125 /* vssrlrn.bu.h */, LoongArch::VSSRLRN_BU_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 10138 /* vssrlrn.h.w */, LoongArch::VSSRLRN_H_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 10150 /* vssrlrn.hu.w */, LoongArch::VSSRLRN_HU_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 10163 /* vssrlrn.w.d */, LoongArch::VSSRLRN_W_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 10175 /* vssrlrn.wu.d */, LoongArch::VSSRLRN_WU_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 10188 /* vssrlrni.b.h */, LoongArch::VSSRLRNI_B_H, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__ConstantUImm4_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm4_0 }, }, ++ { 10201 /* vssrlrni.bu.h */, LoongArch::VSSRLRNI_BU_H, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__ConstantUImm4_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm4_0 }, }, ++ { 10215 /* vssrlrni.d.q */, LoongArch::VSSRLRNI_D_Q, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__ConstantUImm7_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm7_0 }, }, ++ { 10228 /* vssrlrni.du.q */, LoongArch::VSSRLRNI_DU_Q, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__ConstantUImm7_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm7_0 }, }, ++ { 10242 /* vssrlrni.h.w */, LoongArch::VSSRLRNI_H_W, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm5 }, }, ++ { 10255 /* vssrlrni.hu.w */, LoongArch::VSSRLRNI_HU_W, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm5 }, }, ++ { 10269 /* vssrlrni.w.d */, LoongArch::VSSRLRNI_W_D, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__UImm61_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm6 }, }, ++ { 10282 /* vssrlrni.wu.d */, LoongArch::VSSRLRNI_WU_D, Convert__LSX128AsmReg1_0__Tie0_1_1__LSX128AsmReg1_1__UImm61_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_UImm6 }, }, ++ { 10296 /* vssub.b */, LoongArch::VSSUB_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 10304 /* vssub.bu */, LoongArch::VSSUB_BU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 10313 /* vssub.d */, LoongArch::VSSUB_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 10321 /* vssub.du */, LoongArch::VSSUB_DU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 10330 /* vssub.h */, LoongArch::VSSUB_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 10338 /* vssub.hu */, LoongArch::VSSUB_HU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 10347 /* vssub.w */, LoongArch::VSSUB_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 10355 /* vssub.wu */, LoongArch::VSSUB_WU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 10364 /* vst */, LoongArch::VST, Convert__LSX128AsmReg1_0__MemOffsetSimm122_1, AMFBS_None, { MCK_LSX128AsmReg, MCK_MemOffsetSimm12 }, }, ++ { 10368 /* vstelm.b */, LoongArch::VSTELM_B, Convert__LSX128AsmReg1_0__GPR32AsmReg1_1__SImm81_2__ConstantUImm4_01_3, AMFBS_None, { MCK_LSX128AsmReg, MCK_GPR32AsmReg, MCK_SImm8, MCK_ConstantUImm4_0 }, }, ++ { 10377 /* vstelm.d */, LoongArch::VSTELM_D, Convert__LSX128AsmReg1_0__GPR32AsmReg1_1__Simm8_Lsl31_2__ConstantUImm1_01_3, AMFBS_None, { MCK_LSX128AsmReg, MCK_GPR32AsmReg, MCK_Simm8_Lsl3, MCK_ConstantUImm1_0 }, }, ++ { 10386 /* vstelm.h */, LoongArch::VSTELM_H, Convert__LSX128AsmReg1_0__GPR32AsmReg1_1__Simm8_Lsl11_2__UImm31_3, AMFBS_None, { MCK_LSX128AsmReg, MCK_GPR32AsmReg, MCK_Simm8_Lsl1, MCK_UImm3 }, }, ++ { 10395 /* vstelm.w */, LoongArch::VSTELM_W, Convert__LSX128AsmReg1_0__GPR32AsmReg1_1__Simm8_Lsl21_2__UImm21_3, AMFBS_None, { MCK_LSX128AsmReg, MCK_GPR32AsmReg, MCK_Simm8_Lsl2, MCK_UImm2 }, }, ++ { 10404 /* vstx */, LoongArch::VSTX, Convert__LSX128AsmReg1_0__GPR32AsmReg1_1__GPR64AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_GPR32AsmReg, MCK_GPR64AsmReg }, }, ++ { 10409 /* vsub.b */, LoongArch::VSUB_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 10416 /* vsub.d */, LoongArch::VSUB_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 10423 /* vsub.h */, LoongArch::VSUB_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 10430 /* vsub.q */, LoongArch::VSUB_Q, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 10437 /* vsub.w */, LoongArch::VSUB_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 10444 /* vsubi.bu */, LoongArch::VSUBI_BU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm5_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm5_0 }, }, ++ { 10453 /* vsubi.du */, LoongArch::VSUBI_DU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm5_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm5_0 }, }, ++ { 10462 /* vsubi.hu */, LoongArch::VSUBI_HU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm5_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm5_0 }, }, ++ { 10471 /* vsubi.wu */, LoongArch::VSUBI_WU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm5_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm5_0 }, }, ++ { 10480 /* vsubwev.d.w */, LoongArch::VSUBWEV_D_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 10492 /* vsubwev.d.wu */, LoongArch::VSUBWEV_D_WU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 10505 /* vsubwev.h.b */, LoongArch::VSUBWEV_H_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 10517 /* vsubwev.h.bu */, LoongArch::VSUBWEV_H_BU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 10530 /* vsubwev.q.d */, LoongArch::VSUBWEV_Q_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 10542 /* vsubwev.q.du */, LoongArch::VSUBWEV_Q_DU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 10555 /* vsubwev.w.h */, LoongArch::VSUBWEV_W_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 10567 /* vsubwev.w.hu */, LoongArch::VSUBWEV_W_HU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 10580 /* vsubwod.d.w */, LoongArch::VSUBWOD_D_W, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 10592 /* vsubwod.d.wu */, LoongArch::VSUBWOD_D_WU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 10605 /* vsubwod.h.b */, LoongArch::VSUBWOD_H_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 10617 /* vsubwod.h.bu */, LoongArch::VSUBWOD_H_BU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 10630 /* vsubwod.q.d */, LoongArch::VSUBWOD_Q_D, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 10642 /* vsubwod.q.du */, LoongArch::VSUBWOD_Q_DU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 10655 /* vsubwod.w.h */, LoongArch::VSUBWOD_W_H, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 10667 /* vsubwod.w.hu */, LoongArch::VSUBWOD_W_HU, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 10680 /* vxor.v */, LoongArch::VXOR_V, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__LSX128AsmReg1_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_LSX128AsmReg }, }, ++ { 10687 /* vxori.b */, LoongArch::VXORI_B, Convert__LSX128AsmReg1_0__LSX128AsmReg1_1__ConstantUImm8_01_2, AMFBS_None, { MCK_LSX128AsmReg, MCK_LSX128AsmReg, MCK_ConstantUImm8_0 }, }, ++ { 10695 /* xor */, LoongArch::XOR, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__GPR64AsmReg1_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_GPR64AsmReg }, }, ++ { 10699 /* xori */, LoongArch::XORI, Convert__GPR64AsmReg1_0__GPR64AsmReg1_1__UImm121_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_GPR64AsmReg, MCK_UImm12 }, }, ++ { 10704 /* xvabsd.b */, LoongArch::XVABSD_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 10713 /* xvabsd.bu */, LoongArch::XVABSD_BU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 10723 /* xvabsd.d */, LoongArch::XVABSD_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 10732 /* xvabsd.du */, LoongArch::XVABSD_DU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 10742 /* xvabsd.h */, LoongArch::XVABSD_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 10751 /* xvabsd.hu */, LoongArch::XVABSD_HU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 10761 /* xvabsd.w */, LoongArch::XVABSD_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 10770 /* xvabsd.wu */, LoongArch::XVABSD_WU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 10780 /* xvadd.b */, LoongArch::XVADD_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 10788 /* xvadd.d */, LoongArch::XVADD_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 10796 /* xvadd.h */, LoongArch::XVADD_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 10804 /* xvadd.q */, LoongArch::XVADD_Q, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 10812 /* xvadd.w */, LoongArch::XVADD_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 10820 /* xvadda.b */, LoongArch::XVADDA_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 10829 /* xvadda.d */, LoongArch::XVADDA_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 10838 /* xvadda.h */, LoongArch::XVADDA_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 10847 /* xvadda.w */, LoongArch::XVADDA_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 10856 /* xvaddi.bu */, LoongArch::XVADDI_BU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm5 }, }, ++ { 10866 /* xvaddi.du */, LoongArch::XVADDI_DU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm5 }, }, ++ { 10876 /* xvaddi.hu */, LoongArch::XVADDI_HU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm5 }, }, ++ { 10886 /* xvaddi.wu */, LoongArch::XVADDI_WU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm5 }, }, ++ { 10896 /* xvaddwev.d.w */, LoongArch::XVADDWEV_D_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 10909 /* xvaddwev.d.wu */, LoongArch::XVADDWEV_D_WU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 10923 /* xvaddwev.d.wu.w */, LoongArch::XVADDWEV_D_WU_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 10939 /* xvaddwev.h.b */, LoongArch::XVADDWEV_H_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 10952 /* xvaddwev.h.bu */, LoongArch::XVADDWEV_H_BU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 10966 /* xvaddwev.h.bu.b */, LoongArch::XVADDWEV_H_BU_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 10982 /* xvaddwev.q.d */, LoongArch::XVADDWEV_Q_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 10995 /* xvaddwev.q.du */, LoongArch::XVADDWEV_Q_DU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11009 /* xvaddwev.q.du.d */, LoongArch::XVADDWEV_Q_DU_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11025 /* xvaddwev.w.h */, LoongArch::XVADDWEV_W_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11038 /* xvaddwev.w.hu */, LoongArch::XVADDWEV_W_HU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11052 /* xvaddwev.w.hu.h */, LoongArch::XVADDWEV_W_HU_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11068 /* xvaddwod.d.w */, LoongArch::XVADDWOD_D_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11081 /* xvaddwod.d.wu */, LoongArch::XVADDWOD_D_WU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11095 /* xvaddwod.d.wu.w */, LoongArch::XVADDWOD_D_WU_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11111 /* xvaddwod.h.b */, LoongArch::XVADDWOD_H_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11124 /* xvaddwod.h.bu */, LoongArch::XVADDWOD_H_BU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11138 /* xvaddwod.h.bu.b */, LoongArch::XVADDWOD_H_BU_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11154 /* xvaddwod.q.d */, LoongArch::XVADDWOD_Q_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11167 /* xvaddwod.q.du */, LoongArch::XVADDWOD_Q_DU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11181 /* xvaddwod.q.du.d */, LoongArch::XVADDWOD_Q_DU_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11197 /* xvaddwod.w.h */, LoongArch::XVADDWOD_W_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11210 /* xvaddwod.w.hu */, LoongArch::XVADDWOD_W_HU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11224 /* xvaddwod.w.hu.h */, LoongArch::XVADDWOD_W_HU_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11240 /* xvand.v */, LoongArch::XVAND_V, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11248 /* xvandi.b */, LoongArch::XVANDI_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__ConstantUImm8_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm8_0 }, }, ++ { 11257 /* xvandn.v */, LoongArch::XVANDN_V, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11266 /* xvavg.b */, LoongArch::XVAVG_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11274 /* xvavg.bu */, LoongArch::XVAVG_BU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11283 /* xvavg.d */, LoongArch::XVAVG_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11291 /* xvavg.du */, LoongArch::XVAVG_DU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11300 /* xvavg.h */, LoongArch::XVAVG_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11308 /* xvavg.hu */, LoongArch::XVAVG_HU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11317 /* xvavg.w */, LoongArch::XVAVG_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11325 /* xvavg.wu */, LoongArch::XVAVG_WU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11334 /* xvavgr.b */, LoongArch::XVAVGR_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11343 /* xvavgr.bu */, LoongArch::XVAVGR_BU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11353 /* xvavgr.d */, LoongArch::XVAVGR_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11362 /* xvavgr.du */, LoongArch::XVAVGR_DU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11372 /* xvavgr.h */, LoongArch::XVAVGR_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11381 /* xvavgr.hu */, LoongArch::XVAVGR_HU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11391 /* xvavgr.w */, LoongArch::XVAVGR_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11400 /* xvavgr.wu */, LoongArch::XVAVGR_WU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11410 /* xvbitclr.b */, LoongArch::XVBITCLR_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11421 /* xvbitclr.d */, LoongArch::XVBITCLR_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11432 /* xvbitclr.h */, LoongArch::XVBITCLR_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11443 /* xvbitclr.w */, LoongArch::XVBITCLR_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11454 /* xvbitclri.b */, LoongArch::XVBITCLRI_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm31_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm3 }, }, ++ { 11466 /* xvbitclri.d */, LoongArch::XVBITCLRI_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm61_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm6 }, }, ++ { 11478 /* xvbitclri.h */, LoongArch::XVBITCLRI_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__ConstantUImm4_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm4_0 }, }, ++ { 11490 /* xvbitclri.w */, LoongArch::XVBITCLRI_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm5 }, }, ++ { 11502 /* xvbitrev.b */, LoongArch::XVBITREV_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11513 /* xvbitrev.d */, LoongArch::XVBITREV_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11524 /* xvbitrev.h */, LoongArch::XVBITREV_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11535 /* xvbitrev.w */, LoongArch::XVBITREV_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11546 /* xvbitrevi.b */, LoongArch::XVBITREVI_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm31_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm3 }, }, ++ { 11558 /* xvbitrevi.d */, LoongArch::XVBITREVI_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm61_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm6 }, }, ++ { 11570 /* xvbitrevi.h */, LoongArch::XVBITREVI_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__ConstantUImm4_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm4_0 }, }, ++ { 11582 /* xvbitrevi.w */, LoongArch::XVBITREVI_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm5 }, }, ++ { 11594 /* xvbitsel.v */, LoongArch::XVBITSEL_V, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2__LASX256AsmReg1_3, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11605 /* xvbitseli.b */, LoongArch::XVBITSELI_B, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__ConstantUImm8_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm8_0 }, }, ++ { 11617 /* xvbitset.b */, LoongArch::XVBITSET_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11628 /* xvbitset.d */, LoongArch::XVBITSET_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11639 /* xvbitset.h */, LoongArch::XVBITSET_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11650 /* xvbitset.w */, LoongArch::XVBITSET_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11661 /* xvbitseti.b */, LoongArch::XVBITSETI_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm31_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm3 }, }, ++ { 11673 /* xvbitseti.d */, LoongArch::XVBITSETI_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm61_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm6 }, }, ++ { 11685 /* xvbitseti.h */, LoongArch::XVBITSETI_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__ConstantUImm4_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm4_0 }, }, ++ { 11697 /* xvbitseti.w */, LoongArch::XVBITSETI_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm5 }, }, ++ { 11709 /* xvbsll.v */, LoongArch::XVBSLL_V, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm5 }, }, ++ { 11718 /* xvbsrl.v */, LoongArch::XVBSRL_V, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm5 }, }, ++ { 11727 /* xvclo.b */, LoongArch::XVCLO_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11735 /* xvclo.d */, LoongArch::XVCLO_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11743 /* xvclo.h */, LoongArch::XVCLO_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11751 /* xvclo.w */, LoongArch::XVCLO_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11759 /* xvclz.b */, LoongArch::XVCLZ_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11767 /* xvclz.d */, LoongArch::XVCLZ_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11775 /* xvclz.h */, LoongArch::XVCLZ_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11783 /* xvclz.w */, LoongArch::XVCLZ_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11791 /* xvdiv.b */, LoongArch::XVDIV_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11799 /* xvdiv.bu */, LoongArch::XVDIV_BU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11808 /* xvdiv.d */, LoongArch::XVDIV_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11816 /* xvdiv.du */, LoongArch::XVDIV_DU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11825 /* xvdiv.h */, LoongArch::XVDIV_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11833 /* xvdiv.hu */, LoongArch::XVDIV_HU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11842 /* xvdiv.w */, LoongArch::XVDIV_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11850 /* xvdiv.wu */, LoongArch::XVDIV_WU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11859 /* xvexth.d.w */, LoongArch::XVEXTH_D_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11870 /* xvexth.du.wu */, LoongArch::XVEXTH_DU_WU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11883 /* xvexth.h.b */, LoongArch::XVEXTH_H_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11894 /* xvexth.hu.bu */, LoongArch::XVEXTH_HU_BU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11907 /* xvexth.q.d */, LoongArch::XVEXTH_Q_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11918 /* xvexth.qu.du */, LoongArch::XVEXTH_QU_DU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11931 /* xvexth.w.h */, LoongArch::XVEXTH_W_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11942 /* xvexth.wu.hu */, LoongArch::XVEXTH_WU_HU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11955 /* xvextl.q.d */, LoongArch::XVEXTL_Q_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11966 /* xvextl.qu.du */, LoongArch::XVEXTL_QU_DU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 11979 /* xvextrins.b */, LoongArch::XVEXTRINS_B, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__ConstantUImm8_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm8_0 }, }, ++ { 11991 /* xvextrins.d */, LoongArch::XVEXTRINS_D, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__ConstantUImm8_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm8_0 }, }, ++ { 12003 /* xvextrins.h */, LoongArch::XVEXTRINS_H, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__ConstantUImm8_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm8_0 }, }, ++ { 12015 /* xvextrins.w */, LoongArch::XVEXTRINS_W, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__ConstantUImm8_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm8_0 }, }, ++ { 12027 /* xvfadd.d */, LoongArch::XVFADD_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12036 /* xvfadd.s */, LoongArch::XVFADD_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12045 /* xvfclass.d */, LoongArch::XVFCLASS_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12056 /* xvfclass.s */, LoongArch::XVFCLASS_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12067 /* xvfcmp.caf.d */, LoongArch::XVFCMP_CAF_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12080 /* xvfcmp.caf.s */, LoongArch::XVFCMP_CAF_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12093 /* xvfcmp.ceq.d */, LoongArch::XVFCMP_CEQ_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12106 /* xvfcmp.ceq.s */, LoongArch::XVFCMP_CEQ_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12119 /* xvfcmp.cle.d */, LoongArch::XVFCMP_CLE_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12132 /* xvfcmp.cle.s */, LoongArch::XVFCMP_CLE_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12145 /* xvfcmp.clt.d */, LoongArch::XVFCMP_CLT_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12158 /* xvfcmp.clt.s */, LoongArch::XVFCMP_CLT_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12171 /* xvfcmp.cne.d */, LoongArch::XVFCMP_CNE_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12184 /* xvfcmp.cne.s */, LoongArch::XVFCMP_CNE_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12197 /* xvfcmp.cor.d */, LoongArch::XVFCMP_COR_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12210 /* xvfcmp.cor.s */, LoongArch::XVFCMP_COR_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12223 /* xvfcmp.cueq.d */, LoongArch::XVFCMP_CUEQ_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12237 /* xvfcmp.cueq.s */, LoongArch::XVFCMP_CUEQ_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12251 /* xvfcmp.cule.d */, LoongArch::XVFCMP_CULE_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12265 /* xvfcmp.cule.s */, LoongArch::XVFCMP_CULE_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12279 /* xvfcmp.cult.d */, LoongArch::XVFCMP_CULT_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12293 /* xvfcmp.cult.s */, LoongArch::XVFCMP_CULT_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12307 /* xvfcmp.cun.d */, LoongArch::XVFCMP_CUN_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12320 /* xvfcmp.cun.s */, LoongArch::XVFCMP_CUN_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12333 /* xvfcmp.cune.d */, LoongArch::XVFCMP_CUNE_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12347 /* xvfcmp.cune.s */, LoongArch::XVFCMP_CUNE_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12361 /* xvfcmp.saf.d */, LoongArch::XVFCMP_SAF_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12374 /* xvfcmp.saf.s */, LoongArch::XVFCMP_SAF_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12387 /* xvfcmp.seq.d */, LoongArch::XVFCMP_SEQ_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12400 /* xvfcmp.seq.s */, LoongArch::XVFCMP_SEQ_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12413 /* xvfcmp.sle.d */, LoongArch::XVFCMP_SLE_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12426 /* xvfcmp.sle.s */, LoongArch::XVFCMP_SLE_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12439 /* xvfcmp.slt.d */, LoongArch::XVFCMP_SLT_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12452 /* xvfcmp.slt.s */, LoongArch::XVFCMP_SLT_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12465 /* xvfcmp.sne.d */, LoongArch::XVFCMP_SNE_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12478 /* xvfcmp.sne.s */, LoongArch::XVFCMP_SNE_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12491 /* xvfcmp.sor.d */, LoongArch::XVFCMP_SOR_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12504 /* xvfcmp.sor.s */, LoongArch::XVFCMP_SOR_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12517 /* xvfcmp.sueq.d */, LoongArch::XVFCMP_SUEQ_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12531 /* xvfcmp.sueq.s */, LoongArch::XVFCMP_SUEQ_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12545 /* xvfcmp.sule.d */, LoongArch::XVFCMP_SULE_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12559 /* xvfcmp.sule.s */, LoongArch::XVFCMP_SULE_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12573 /* xvfcmp.sult.d */, LoongArch::XVFCMP_SULT_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12587 /* xvfcmp.sult.s */, LoongArch::XVFCMP_SULT_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12601 /* xvfcmp.sun.d */, LoongArch::XVFCMP_SUN_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12614 /* xvfcmp.sun.s */, LoongArch::XVFCMP_SUN_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12627 /* xvfcmp.sune.d */, LoongArch::XVFCMP_SUNE_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12641 /* xvfcmp.sune.s */, LoongArch::XVFCMP_SUNE_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12655 /* xvfcvt.h.s */, LoongArch::XVFCVT_H_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12666 /* xvfcvt.s.d */, LoongArch::XVFCVT_S_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12677 /* xvfcvth.d.s */, LoongArch::XVFCVTH_D_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12689 /* xvfcvth.s.h */, LoongArch::XVFCVTH_S_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12701 /* xvfcvtl.d.s */, LoongArch::XVFCVTL_D_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12713 /* xvfcvtl.s.h */, LoongArch::XVFCVTL_S_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12725 /* xvfdiv.d */, LoongArch::XVFDIV_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12734 /* xvfdiv.s */, LoongArch::XVFDIV_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12743 /* xvffint.d.l */, LoongArch::XVFFINT_D_L, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12755 /* xvffint.d.lu */, LoongArch::XVFFINT_D_LU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12768 /* xvffint.s.l */, LoongArch::XVFFINT_S_L, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12780 /* xvffint.s.w */, LoongArch::XVFFINT_S_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12792 /* xvffint.s.wu */, LoongArch::XVFFINT_S_WU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12805 /* xvffinth.d.w */, LoongArch::XVFFINTH_D_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12818 /* xvffintl.d.w */, LoongArch::XVFFINTL_D_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12831 /* xvflogb.d */, LoongArch::XVFLOGB_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12841 /* xvflogb.s */, LoongArch::XVFLOGB_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12851 /* xvfmadd.d */, LoongArch::XVFMADD_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2__LASX256AsmReg1_3, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12861 /* xvfmadd.s */, LoongArch::XVFMADD_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2__LASX256AsmReg1_3, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12871 /* xvfmax.d */, LoongArch::XVFMAX_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12880 /* xvfmax.s */, LoongArch::XVFMAX_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12889 /* xvfmaxa.d */, LoongArch::XVFMAXA_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12899 /* xvfmaxa.s */, LoongArch::XVFMAXA_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12909 /* xvfmin.d */, LoongArch::XVFMIN_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12918 /* xvfmin.s */, LoongArch::XVFMIN_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12927 /* xvfmina.d */, LoongArch::XVFMINA_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12937 /* xvfmina.s */, LoongArch::XVFMINA_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12947 /* xvfmsub.d */, LoongArch::XVFMSUB_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2__LASX256AsmReg1_3, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12957 /* xvfmsub.s */, LoongArch::XVFMSUB_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2__LASX256AsmReg1_3, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12967 /* xvfmul.d */, LoongArch::XVFMUL_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12976 /* xvfmul.s */, LoongArch::XVFMUL_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12985 /* xvfnmadd.d */, LoongArch::XVFNMADD_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2__LASX256AsmReg1_3, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 12996 /* xvfnmadd.s */, LoongArch::XVFNMADD_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2__LASX256AsmReg1_3, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13007 /* xvfnmsub.d */, LoongArch::XVFNMSUB_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2__LASX256AsmReg1_3, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13018 /* xvfnmsub.s */, LoongArch::XVFNMSUB_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2__LASX256AsmReg1_3, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13029 /* xvfrecip.d */, LoongArch::XVFRECIP_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13040 /* xvfrecip.s */, LoongArch::XVFRECIP_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13051 /* xvfrint.d */, LoongArch::XVFRINT_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13061 /* xvfrint.s */, LoongArch::XVFRINT_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13071 /* xvfrintrm.d */, LoongArch::XVFRINTRM_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13083 /* xvfrintrm.s */, LoongArch::XVFRINTRM_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13095 /* xvfrintrne.d */, LoongArch::XVFRINTRNE_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13108 /* xvfrintrne.s */, LoongArch::XVFRINTRNE_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13121 /* xvfrintrp.d */, LoongArch::XVFRINTRP_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13133 /* xvfrintrp.s */, LoongArch::XVFRINTRP_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13145 /* xvfrintrz.d */, LoongArch::XVFRINTRZ_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13157 /* xvfrintrz.s */, LoongArch::XVFRINTRZ_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13169 /* xvfrsqrt.d */, LoongArch::XVFRSQRT_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13180 /* xvfrsqrt.s */, LoongArch::XVFRSQRT_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13191 /* xvfrstp.b */, LoongArch::XVFRSTP_B, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13201 /* xvfrstp.h */, LoongArch::XVFRSTP_H, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13211 /* xvfrstpi.b */, LoongArch::XVFRSTPI_B, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm5 }, }, ++ { 13222 /* xvfrstpi.h */, LoongArch::XVFRSTPI_H, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm5 }, }, ++ { 13233 /* xvfsqrt.d */, LoongArch::XVFSQRT_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13243 /* xvfsqrt.s */, LoongArch::XVFSQRT_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13253 /* xvfsub.d */, LoongArch::XVFSUB_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13262 /* xvfsub.s */, LoongArch::XVFSUB_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13271 /* xvftint.l.d */, LoongArch::XVFTINT_L_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13283 /* xvftint.lu.d */, LoongArch::XVFTINT_LU_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13296 /* xvftint.w.d */, LoongArch::XVFTINT_W_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13308 /* xvftint.w.s */, LoongArch::XVFTINT_W_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13320 /* xvftint.wu.s */, LoongArch::XVFTINT_WU_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13333 /* xvftinth.l.s */, LoongArch::XVFTINTH_L_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13346 /* xvftintl.l.s */, LoongArch::XVFTINTL_L_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13359 /* xvftintrm.l.d */, LoongArch::XVFTINTRM_L_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13373 /* xvftintrm.w.d */, LoongArch::XVFTINTRM_W_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13387 /* xvftintrm.w.s */, LoongArch::XVFTINTRM_W_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13401 /* xvftintrmh.l.s */, LoongArch::XVFTINTRMH_L_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13416 /* xvftintrml.l.s */, LoongArch::XVFTINTRML_L_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13431 /* xvftintrne.l.d */, LoongArch::XVFTINTRNE_L_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13446 /* xvftintrne.w.d */, LoongArch::XVFTINTRNE_W_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13461 /* xvftintrne.w.s */, LoongArch::XVFTINTRNE_W_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13476 /* xvftintrneh.l.s */, LoongArch::XVFTINTRNEH_L_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13492 /* xvftintrnel.l.s */, LoongArch::XVFTINTRNEL_L_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13508 /* xvftintrp.l.d */, LoongArch::XVFTINTRP_L_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13522 /* xvftintrp.w.d */, LoongArch::XVFTINTRP_W_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13536 /* xvftintrp.w.s */, LoongArch::XVFTINTRP_W_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13550 /* xvftintrph.l.s */, LoongArch::XVFTINTRPH_L_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13565 /* xvftintrpl.l.s */, LoongArch::XVFTINTRPL_L_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13580 /* xvftintrz.l.d */, LoongArch::XVFTINTRZ_L_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13594 /* xvftintrz.lu.d */, LoongArch::XVFTINTRZ_LU_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13609 /* xvftintrz.w.d */, LoongArch::XVFTINTRZ_W_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13623 /* xvftintrz.w.s */, LoongArch::XVFTINTRZ_W_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13637 /* xvftintrz.wu.s */, LoongArch::XVFTINTRZ_WU_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13652 /* xvftintrzh.l.s */, LoongArch::XVFTINTRZH_L_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13667 /* xvftintrzl.l.s */, LoongArch::XVFTINTRZL_L_S, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13682 /* xvhaddw.d.w */, LoongArch::XVHADDW_D_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13694 /* xvhaddw.du.wu */, LoongArch::XVHADDW_DU_WU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13708 /* xvhaddw.h.b */, LoongArch::XVHADDW_H_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13720 /* xvhaddw.hu.bu */, LoongArch::XVHADDW_HU_BU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13734 /* xvhaddw.q.d */, LoongArch::XVHADDW_Q_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13746 /* xvhaddw.qu.du */, LoongArch::XVHADDW_QU_DU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13760 /* xvhaddw.w.h */, LoongArch::XVHADDW_W_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13772 /* xvhaddw.wu.hu */, LoongArch::XVHADDW_WU_HU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13786 /* xvhseli.d */, LoongArch::XVHSELI_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm5 }, }, ++ { 13796 /* xvhsubw.d.w */, LoongArch::XVHSUBW_D_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13808 /* xvhsubw.du.wu */, LoongArch::XVHSUBW_DU_WU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13822 /* xvhsubw.h.b */, LoongArch::XVHSUBW_H_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13834 /* xvhsubw.hu.bu */, LoongArch::XVHSUBW_HU_BU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13848 /* xvhsubw.q.d */, LoongArch::XVHSUBW_Q_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13860 /* xvhsubw.qu.du */, LoongArch::XVHSUBW_QU_DU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13874 /* xvhsubw.w.h */, LoongArch::XVHSUBW_W_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13886 /* xvhsubw.wu.hu */, LoongArch::XVHSUBW_WU_HU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13900 /* xvilvh.b */, LoongArch::XVILVH_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13909 /* xvilvh.d */, LoongArch::XVILVH_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13918 /* xvilvh.h */, LoongArch::XVILVH_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13927 /* xvilvh.w */, LoongArch::XVILVH_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13936 /* xvilvl.b */, LoongArch::XVILVL_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13945 /* xvilvl.d */, LoongArch::XVILVL_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13954 /* xvilvl.h */, LoongArch::XVILVL_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13963 /* xvilvl.w */, LoongArch::XVILVL_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 13972 /* xvinsgr2vr.d */, LoongArch::XVINSGR2VR_D, Convert__LASX256AsmReg1_0__Tie0_1_1__GPR64AsmReg1_1__ConstantUImm2_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_GPR64AsmReg, MCK_ConstantUImm2_0 }, }, ++ { 13985 /* xvinsgr2vr.w */, LoongArch::XVINSGR2VR_W, Convert__LASX256AsmReg1_0__Tie0_1_1__GPR32AsmReg1_1__ConstantUImm3_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_GPR32AsmReg, MCK_ConstantUImm3_0 }, }, ++ { 13998 /* xvinsve0.d */, LoongArch::XVINSVE0_D, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__UImm21_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm2 }, }, ++ { 14009 /* xvinsve0.w */, LoongArch::XVINSVE0_W, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__UImm31_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm3 }, }, ++ { 14020 /* xvld */, LoongArch::XVLD, Convert__LASX256AsmReg1_0__Mem2_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_Mem }, }, ++ { 14025 /* xvldi */, LoongArch::XVLDI, Convert__LASX256AsmReg1_0__Imm1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_Imm }, }, ++ { 14025 /* xvldi */, LoongArch::XVLDI_B, Convert__LASX256AsmReg1_0__ConstantSImm10_01_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_ConstantSImm10_0 }, }, ++ { 14025 /* xvldi */, LoongArch::XVLDI_D, Convert__LASX256AsmReg1_0__ConstantSImm10_01_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_ConstantSImm10_0 }, }, ++ { 14025 /* xvldi */, LoongArch::XVLDI_H, Convert__LASX256AsmReg1_0__ConstantSImm10_01_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_ConstantSImm10_0 }, }, ++ { 14025 /* xvldi */, LoongArch::XVLDI_W, Convert__LASX256AsmReg1_0__ConstantSImm10_01_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_ConstantSImm10_0 }, }, ++ { 14031 /* xvldrepl.b */, LoongArch::XVLDREPL_B, Convert__LASX256AsmReg1_0__Mem2_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_Mem }, }, ++ { 14042 /* xvldrepl.d */, LoongArch::XVLDREPL_D, Convert__LASX256AsmReg1_0__MemOffsetSimm9_32_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_MemOffsetSimm9_3 }, }, ++ { 14053 /* xvldrepl.h */, LoongArch::XVLDREPL_H, Convert__LASX256AsmReg1_0__MemOffsetSimm11_12_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_MemOffsetSimm11_1 }, }, ++ { 14064 /* xvldrepl.w */, LoongArch::XVLDREPL_W, Convert__LASX256AsmReg1_0__MemOffsetSimm10_22_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_MemOffsetSimm10_2 }, }, ++ { 14075 /* xvldx */, LoongArch::XVLDX, Convert__LASX256AsmReg1_0__GPR32AsmReg1_1__GPR64AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_GPR32AsmReg, MCK_GPR64AsmReg }, }, ++ { 14081 /* xvmadd.b */, LoongArch::XVMADD_B, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14090 /* xvmadd.d */, LoongArch::XVMADD_D, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14099 /* xvmadd.h */, LoongArch::XVMADD_H, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14108 /* xvmadd.w */, LoongArch::XVMADD_W, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14117 /* xvmaddwev.d.w */, LoongArch::XVMADDWEV_D_W, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14131 /* xvmaddwev.d.wu */, LoongArch::XVMADDWEV_D_WU, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14146 /* xvmaddwev.d.wu.w */, LoongArch::XVMADDWEV_D_WU_W, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14163 /* xvmaddwev.h.b */, LoongArch::XVMADDWEV_H_B, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14177 /* xvmaddwev.h.bu */, LoongArch::XVMADDWEV_H_BU, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14192 /* xvmaddwev.h.bu.b */, LoongArch::XVMADDWEV_H_BU_B, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14209 /* xvmaddwev.q.d */, LoongArch::XVMADDWEV_Q_D, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14223 /* xvmaddwev.q.du */, LoongArch::XVMADDWEV_Q_DU, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14238 /* xvmaddwev.q.du.d */, LoongArch::XVMADDWEV_Q_DU_D, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14255 /* xvmaddwev.w.h */, LoongArch::XVMADDWEV_W_H, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14269 /* xvmaddwev.w.hu */, LoongArch::XVMADDWEV_W_HU, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14284 /* xvmaddwev.w.hu.h */, LoongArch::XVMADDWEV_W_HU_H, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14301 /* xvmaddwod.d.w */, LoongArch::XVMADDWOD_D_W, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14315 /* xvmaddwod.d.wu */, LoongArch::XVMADDWOD_D_WU, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14330 /* xvmaddwod.d.wu.w */, LoongArch::XVMADDWOD_D_WU_W, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14347 /* xvmaddwod.h.b */, LoongArch::XVMADDWOD_H_B, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14361 /* xvmaddwod.h.bu */, LoongArch::XVMADDWOD_H_BU, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14376 /* xvmaddwod.h.bu.b */, LoongArch::XVMADDWOD_H_BU_B, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14393 /* xvmaddwod.q.d */, LoongArch::XVMADDWOD_Q_D, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14407 /* xvmaddwod.q.du */, LoongArch::XVMADDWOD_Q_DU, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14422 /* xvmaddwod.q.du.d */, LoongArch::XVMADDWOD_Q_DU_D, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14439 /* xvmaddwod.w.h */, LoongArch::XVMADDWOD_W_H, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14453 /* xvmaddwod.w.hu */, LoongArch::XVMADDWOD_W_HU, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14468 /* xvmaddwod.w.hu.h */, LoongArch::XVMADDWOD_W_HU_H, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14485 /* xvmax.b */, LoongArch::XVMAX_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14493 /* xvmax.bu */, LoongArch::XVMAX_BU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14502 /* xvmax.d */, LoongArch::XVMAX_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14510 /* xvmax.du */, LoongArch::XVMAX_DU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14519 /* xvmax.h */, LoongArch::XVMAX_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14527 /* xvmax.hu */, LoongArch::XVMAX_HU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14536 /* xvmax.w */, LoongArch::XVMAX_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14544 /* xvmax.wu */, LoongArch::XVMAX_WU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14553 /* xvmaxi.b */, LoongArch::XVMAXI_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__SImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_SImm5 }, }, ++ { 14562 /* xvmaxi.bu */, LoongArch::XVMAXI_BU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm5 }, }, ++ { 14572 /* xvmaxi.d */, LoongArch::XVMAXI_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__SImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_SImm5 }, }, ++ { 14581 /* xvmaxi.du */, LoongArch::XVMAXI_DU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm5 }, }, ++ { 14591 /* xvmaxi.h */, LoongArch::XVMAXI_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__SImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_SImm5 }, }, ++ { 14600 /* xvmaxi.hu */, LoongArch::XVMAXI_HU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm5 }, }, ++ { 14610 /* xvmaxi.w */, LoongArch::XVMAXI_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__SImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_SImm5 }, }, ++ { 14619 /* xvmaxi.wu */, LoongArch::XVMAXI_WU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm5 }, }, ++ { 14629 /* xvmin.b */, LoongArch::XVMIN_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14637 /* xvmin.bu */, LoongArch::XVMIN_BU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14646 /* xvmin.d */, LoongArch::XVMIN_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14654 /* xvmin.du */, LoongArch::XVMIN_DU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14663 /* xvmin.h */, LoongArch::XVMIN_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14671 /* xvmin.hu */, LoongArch::XVMIN_HU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14680 /* xvmin.w */, LoongArch::XVMIN_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14688 /* xvmin.wu */, LoongArch::XVMIN_WU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14697 /* xvmini.b */, LoongArch::XVMINI_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__SImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_SImm5 }, }, ++ { 14706 /* xvmini.bu */, LoongArch::XVMINI_BU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm5 }, }, ++ { 14716 /* xvmini.d */, LoongArch::XVMINI_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__SImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_SImm5 }, }, ++ { 14725 /* xvmini.du */, LoongArch::XVMINI_DU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm5 }, }, ++ { 14735 /* xvmini.h */, LoongArch::XVMINI_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__SImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_SImm5 }, }, ++ { 14744 /* xvmini.hu */, LoongArch::XVMINI_HU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm5 }, }, ++ { 14754 /* xvmini.w */, LoongArch::XVMINI_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__SImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_SImm5 }, }, ++ { 14763 /* xvmini.wu */, LoongArch::XVMINI_WU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm5 }, }, ++ { 14773 /* xvmod.b */, LoongArch::XVMOD_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14781 /* xvmod.bu */, LoongArch::XVMOD_BU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14790 /* xvmod.d */, LoongArch::XVMOD_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14798 /* xvmod.du */, LoongArch::XVMOD_DU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14807 /* xvmod.h */, LoongArch::XVMOD_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14815 /* xvmod.hu */, LoongArch::XVMOD_HU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14824 /* xvmod.w */, LoongArch::XVMOD_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14832 /* xvmod.wu */, LoongArch::XVMOD_WU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14841 /* xvmskgez.b */, LoongArch::XVMSKGEZ_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14852 /* xvmskltz.b */, LoongArch::XVMSKLTZ_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14863 /* xvmskltz.d */, LoongArch::XVMSKLTZ_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14874 /* xvmskltz.h */, LoongArch::XVMSKLTZ_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14885 /* xvmskltz.w */, LoongArch::XVMSKLTZ_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14896 /* xvmsknz.b */, LoongArch::XVMSKNZ_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14906 /* xvmsub.b */, LoongArch::XVMSUB_B, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14915 /* xvmsub.d */, LoongArch::XVMSUB_D, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14924 /* xvmsub.h */, LoongArch::XVMSUB_H, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14933 /* xvmsub.w */, LoongArch::XVMSUB_W, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14942 /* xvmuh.b */, LoongArch::XVMUH_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14950 /* xvmuh.bu */, LoongArch::XVMUH_BU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14959 /* xvmuh.d */, LoongArch::XVMUH_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14967 /* xvmuh.du */, LoongArch::XVMUH_DU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14976 /* xvmuh.h */, LoongArch::XVMUH_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14984 /* xvmuh.hu */, LoongArch::XVMUH_HU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 14993 /* xvmuh.w */, LoongArch::XVMUH_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15001 /* xvmuh.wu */, LoongArch::XVMUH_WU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15010 /* xvmul.b */, LoongArch::XVMUL_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15018 /* xvmul.d */, LoongArch::XVMUL_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15026 /* xvmul.h */, LoongArch::XVMUL_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15034 /* xvmul.w */, LoongArch::XVMUL_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15042 /* xvmulwev.d.w */, LoongArch::XVMULWEV_D_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15055 /* xvmulwev.d.wu */, LoongArch::XVMULWEV_D_WU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15069 /* xvmulwev.d.wu.w */, LoongArch::XVMULWEV_D_WU_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15085 /* xvmulwev.h.b */, LoongArch::XVMULWEV_H_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15098 /* xvmulwev.h.bu */, LoongArch::XVMULWEV_H_BU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15112 /* xvmulwev.h.bu.b */, LoongArch::XVMULWEV_H_BU_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15128 /* xvmulwev.q.d */, LoongArch::XVMULWEV_Q_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15141 /* xvmulwev.q.du */, LoongArch::XVMULWEV_Q_DU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15155 /* xvmulwev.q.du.d */, LoongArch::XVMULWEV_Q_DU_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15171 /* xvmulwev.w.h */, LoongArch::XVMULWEV_W_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15184 /* xvmulwev.w.hu */, LoongArch::XVMULWEV_W_HU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15198 /* xvmulwev.w.hu.h */, LoongArch::XVMULWEV_W_HU_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15214 /* xvmulwod.d.w */, LoongArch::XVMULWOD_D_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15227 /* xvmulwod.d.wu */, LoongArch::XVMULWOD_D_WU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15241 /* xvmulwod.d.wu.w */, LoongArch::XVMULWOD_D_WU_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15257 /* xvmulwod.h.b */, LoongArch::XVMULWOD_H_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15270 /* xvmulwod.h.bu */, LoongArch::XVMULWOD_H_BU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15284 /* xvmulwod.h.bu.b */, LoongArch::XVMULWOD_H_BU_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15300 /* xvmulwod.q.d */, LoongArch::XVMULWOD_Q_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15313 /* xvmulwod.q.du */, LoongArch::XVMULWOD_Q_DU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15327 /* xvmulwod.q.du.d */, LoongArch::XVMULWOD_Q_DU_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15343 /* xvmulwod.w.h */, LoongArch::XVMULWOD_W_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15356 /* xvmulwod.w.hu */, LoongArch::XVMULWOD_W_HU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15370 /* xvmulwod.w.hu.h */, LoongArch::XVMULWOD_W_HU_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15386 /* xvneg.b */, LoongArch::XVNEG_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15394 /* xvneg.d */, LoongArch::XVNEG_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15402 /* xvneg.h */, LoongArch::XVNEG_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15410 /* xvneg.w */, LoongArch::XVNEG_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15418 /* xvnor.v */, LoongArch::XVNOR_V, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15426 /* xvnori.b */, LoongArch::XVNORI_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__ConstantUImm8_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm8_0 }, }, ++ { 15435 /* xvor.v */, LoongArch::XVOR_V, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15442 /* xvori.b */, LoongArch::XVORI_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__ConstantUImm8_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm8_0 }, }, ++ { 15450 /* xvorn.v */, LoongArch::XVORN_V, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15458 /* xvpackev.b */, LoongArch::XVPACKEV_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15469 /* xvpackev.d */, LoongArch::XVPACKEV_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15480 /* xvpackev.h */, LoongArch::XVPACKEV_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15491 /* xvpackev.w */, LoongArch::XVPACKEV_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15502 /* xvpackod.b */, LoongArch::XVPACKOD_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15513 /* xvpackod.d */, LoongArch::XVPACKOD_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15524 /* xvpackod.h */, LoongArch::XVPACKOD_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15535 /* xvpackod.w */, LoongArch::XVPACKOD_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15546 /* xvpcnt.b */, LoongArch::XVPCNT_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15555 /* xvpcnt.d */, LoongArch::XVPCNT_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15564 /* xvpcnt.h */, LoongArch::XVPCNT_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15573 /* xvpcnt.w */, LoongArch::XVPCNT_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15582 /* xvperm.w */, LoongArch::XVPERM_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15591 /* xvpermi.d */, LoongArch::XVPERMI_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__ConstantUImm8_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm8_0 }, }, ++ { 15601 /* xvpermi.q */, LoongArch::XVPERMI_Q, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__ConstantUImm8_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm8_0 }, }, ++ { 15611 /* xvpermi.w */, LoongArch::XVPERMI_W, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__ConstantUImm8_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm8_0 }, }, ++ { 15621 /* xvpickev.b */, LoongArch::XVPICKEV_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15632 /* xvpickev.d */, LoongArch::XVPICKEV_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15643 /* xvpickev.h */, LoongArch::XVPICKEV_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15654 /* xvpickev.w */, LoongArch::XVPICKEV_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15665 /* xvpickod.b */, LoongArch::XVPICKOD_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15676 /* xvpickod.d */, LoongArch::XVPICKOD_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15687 /* xvpickod.h */, LoongArch::XVPICKOD_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15698 /* xvpickod.w */, LoongArch::XVPICKOD_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15709 /* xvpickve.d */, LoongArch::XVPICKVE_D, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__UImm21_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm2 }, }, ++ { 15720 /* xvpickve.w */, LoongArch::XVPICKVE_W, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__UImm31_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm3 }, }, ++ { 15731 /* xvpickve2gr.d */, LoongArch::XVPICKVE2GR_D, Convert__GPR64AsmReg1_0__LASX256AsmReg1_1__ConstantUImm2_01_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm2_0 }, }, ++ { 15745 /* xvpickve2gr.du */, LoongArch::XVPICKVE2GR_DU, Convert__GPR64AsmReg1_0__LASX256AsmReg1_1__ConstantUImm2_01_2, AMFBS_None, { MCK_GPR64AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm2_0 }, }, ++ { 15760 /* xvpickve2gr.w */, LoongArch::XVPICKVE2GR_W, Convert__GPR32AsmReg1_0__LASX256AsmReg1_1__ConstantUImm3_01_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm3_0 }, }, ++ { 15774 /* xvpickve2gr.wu */, LoongArch::XVPICKVE2GR_WU, Convert__GPR32AsmReg1_0__LASX256AsmReg1_1__ConstantUImm3_01_2, AMFBS_None, { MCK_GPR32AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm3_0 }, }, ++ { 15789 /* xvrepl128vei.b */, LoongArch::XVREPL128VEI_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__ConstantUImm4_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm4_0 }, }, ++ { 15804 /* xvrepl128vei.d */, LoongArch::XVREPL128VEI_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__ConstantUImm1_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm1_0 }, }, ++ { 15819 /* xvrepl128vei.h */, LoongArch::XVREPL128VEI_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm31_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm3 }, }, ++ { 15834 /* xvrepl128vei.w */, LoongArch::XVREPL128VEI_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm21_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm2 }, }, ++ { 15849 /* xvreplgr2vr.b */, LoongArch::XVREPLGR2VR_B, Convert__LASX256AsmReg1_0__GPR32AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_GPR32AsmReg }, }, ++ { 15863 /* xvreplgr2vr.d */, LoongArch::XVREPLGR2VR_D, Convert__LASX256AsmReg1_0__GPR64AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_GPR64AsmReg }, }, ++ { 15877 /* xvreplgr2vr.h */, LoongArch::XVREPLGR2VR_H, Convert__LASX256AsmReg1_0__GPR32AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_GPR32AsmReg }, }, ++ { 15891 /* xvreplgr2vr.w */, LoongArch::XVREPLGR2VR_W, Convert__LASX256AsmReg1_0__GPR32AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_GPR32AsmReg }, }, ++ { 15905 /* xvreplve.b */, LoongArch::XVREPLVE_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__GPR32AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_GPR32AsmReg }, }, ++ { 15916 /* xvreplve.d */, LoongArch::XVREPLVE_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__GPR32AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_GPR32AsmReg }, }, ++ { 15927 /* xvreplve.h */, LoongArch::XVREPLVE_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__GPR32AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_GPR32AsmReg }, }, ++ { 15938 /* xvreplve.w */, LoongArch::XVREPLVE_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__GPR32AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_GPR32AsmReg }, }, ++ { 15949 /* xvreplve0.b */, LoongArch::XVREPLVE0_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15961 /* xvreplve0.d */, LoongArch::XVREPLVE0_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15973 /* xvreplve0.h */, LoongArch::XVREPLVE0_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15985 /* xvreplve0.q */, LoongArch::XVREPLVE0_Q, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 15997 /* xvreplve0.w */, LoongArch::XVREPLVE0_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 16009 /* xvrotr.b */, LoongArch::XVROTR_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 16018 /* xvrotr.d */, LoongArch::XVROTR_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 16027 /* xvrotr.h */, LoongArch::XVROTR_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 16036 /* xvrotr.w */, LoongArch::XVROTR_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 16045 /* xvrotri.b */, LoongArch::XVROTRI_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm31_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm3 }, }, ++ { 16055 /* xvrotri.d */, LoongArch::XVROTRI_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm61_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm6 }, }, ++ { 16065 /* xvrotri.h */, LoongArch::XVROTRI_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__ConstantUImm4_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm4_0 }, }, ++ { 16075 /* xvrotri.w */, LoongArch::XVROTRI_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm5 }, }, ++ { 16085 /* xvsadd.b */, LoongArch::XVSADD_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 16094 /* xvsadd.bu */, LoongArch::XVSADD_BU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 16104 /* xvsadd.d */, LoongArch::XVSADD_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 16113 /* xvsadd.du */, LoongArch::XVSADD_DU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 16123 /* xvsadd.h */, LoongArch::XVSADD_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 16132 /* xvsadd.hu */, LoongArch::XVSADD_HU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 16142 /* xvsadd.w */, LoongArch::XVSADD_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 16151 /* xvsadd.wu */, LoongArch::XVSADD_WU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 16161 /* xvsat.b */, LoongArch::XVSAT_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm31_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm3 }, }, ++ { 16169 /* xvsat.bu */, LoongArch::XVSAT_BU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm31_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm3 }, }, ++ { 16178 /* xvsat.d */, LoongArch::XVSAT_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm61_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm6 }, }, ++ { 16186 /* xvsat.du */, LoongArch::XVSAT_DU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm61_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm6 }, }, ++ { 16195 /* xvsat.h */, LoongArch::XVSAT_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__ConstantUImm4_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm4_0 }, }, ++ { 16203 /* xvsat.hu */, LoongArch::XVSAT_HU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__ConstantUImm4_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm4_0 }, }, ++ { 16212 /* xvsat.w */, LoongArch::XVSAT_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm5 }, }, ++ { 16220 /* xvsat.wu */, LoongArch::XVSAT_WU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm5 }, }, ++ { 16229 /* xvseq.b */, LoongArch::XVSEQ_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 16237 /* xvseq.d */, LoongArch::XVSEQ_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 16245 /* xvseq.h */, LoongArch::XVSEQ_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 16253 /* xvseq.w */, LoongArch::XVSEQ_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 16261 /* xvseqi.b */, LoongArch::XVSEQI_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__SImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_SImm5 }, }, ++ { 16270 /* xvseqi.d */, LoongArch::XVSEQI_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__SImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_SImm5 }, }, ++ { 16279 /* xvseqi.h */, LoongArch::XVSEQI_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__SImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_SImm5 }, }, ++ { 16288 /* xvseqi.w */, LoongArch::XVSEQI_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__SImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_SImm5 }, }, ++ { 16297 /* xvsetallnez.b */, LoongArch::XVSETALLNEZ_B, Convert__FCFRAsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_FCFRAsmReg, MCK_LASX256AsmReg }, }, ++ { 16311 /* xvsetallnez.d */, LoongArch::XVSETALLNEZ_D, Convert__FCFRAsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_FCFRAsmReg, MCK_LASX256AsmReg }, }, ++ { 16325 /* xvsetallnez.h */, LoongArch::XVSETALLNEZ_H, Convert__FCFRAsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_FCFRAsmReg, MCK_LASX256AsmReg }, }, ++ { 16339 /* xvsetallnez.w */, LoongArch::XVSETALLNEZ_W, Convert__FCFRAsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_FCFRAsmReg, MCK_LASX256AsmReg }, }, ++ { 16353 /* xvsetanyeqz.b */, LoongArch::XVSETANYEQZ_B, Convert__FCFRAsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_FCFRAsmReg, MCK_LASX256AsmReg }, }, ++ { 16367 /* xvsetanyeqz.d */, LoongArch::XVSETANYEQZ_D, Convert__FCFRAsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_FCFRAsmReg, MCK_LASX256AsmReg }, }, ++ { 16381 /* xvsetanyeqz.h */, LoongArch::XVSETANYEQZ_H, Convert__FCFRAsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_FCFRAsmReg, MCK_LASX256AsmReg }, }, ++ { 16395 /* xvsetanyeqz.w */, LoongArch::XVSETANYEQZ_W, Convert__FCFRAsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_FCFRAsmReg, MCK_LASX256AsmReg }, }, ++ { 16409 /* xvseteqz.v */, LoongArch::XVSETEQZ_V, Convert__FCFRAsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_FCFRAsmReg, MCK_LASX256AsmReg }, }, ++ { 16420 /* xvsetnez.v */, LoongArch::XVSETNEZ_V, Convert__FCFRAsmReg1_0__LASX256AsmReg1_1, AMFBS_None, { MCK_FCFRAsmReg, MCK_LASX256AsmReg }, }, ++ { 16431 /* xvshuf.b */, LoongArch::XVSHUF_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2__LASX256AsmReg1_3, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 16440 /* xvshuf.d */, LoongArch::XVSHUF_D, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 16449 /* xvshuf.h */, LoongArch::XVSHUF_H, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 16458 /* xvshuf.w */, LoongArch::XVSHUF_W, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 16467 /* xvshuf4i.b */, LoongArch::XVSHUF4I_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__ConstantUImm8_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm8_0 }, }, ++ { 16478 /* xvshuf4i.d */, LoongArch::XVSHUF4I_D, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__ConstantUImm8_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm8_0 }, }, ++ { 16489 /* xvshuf4i.h */, LoongArch::XVSHUF4I_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__ConstantUImm8_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm8_0 }, }, ++ { 16500 /* xvshuf4i.w */, LoongArch::XVSHUF4I_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__ConstantUImm8_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm8_0 }, }, ++ { 16511 /* xvsigncov.b */, LoongArch::XVSIGNCOV_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 16523 /* xvsigncov.d */, LoongArch::XVSIGNCOV_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 16535 /* xvsigncov.h */, LoongArch::XVSIGNCOV_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 16547 /* xvsigncov.w */, LoongArch::XVSIGNCOV_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 16559 /* xvsle.b */, LoongArch::XVSLE_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 16567 /* xvsle.bu */, LoongArch::XVSLE_BU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 16576 /* xvsle.d */, LoongArch::XVSLE_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 16584 /* xvsle.du */, LoongArch::XVSLE_DU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 16593 /* xvsle.h */, LoongArch::XVSLE_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 16601 /* xvsle.hu */, LoongArch::XVSLE_HU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 16610 /* xvsle.w */, LoongArch::XVSLE_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 16618 /* xvsle.wu */, LoongArch::XVSLE_WU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 16627 /* xvslei.b */, LoongArch::XVSLEI_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__SImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_SImm5 }, }, ++ { 16636 /* xvslei.bu */, LoongArch::XVSLEI_BU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm5 }, }, ++ { 16646 /* xvslei.d */, LoongArch::XVSLEI_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__SImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_SImm5 }, }, ++ { 16655 /* xvslei.du */, LoongArch::XVSLEI_DU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm5 }, }, ++ { 16665 /* xvslei.h */, LoongArch::XVSLEI_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__SImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_SImm5 }, }, ++ { 16674 /* xvslei.hu */, LoongArch::XVSLEI_HU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm5 }, }, ++ { 16684 /* xvslei.w */, LoongArch::XVSLEI_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__SImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_SImm5 }, }, ++ { 16693 /* xvslei.wu */, LoongArch::XVSLEI_WU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm5 }, }, ++ { 16703 /* xvsll.b */, LoongArch::XVSLL_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 16711 /* xvsll.d */, LoongArch::XVSLL_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 16719 /* xvsll.h */, LoongArch::XVSLL_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 16727 /* xvsll.w */, LoongArch::XVSLL_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 16735 /* xvslli.b */, LoongArch::XVSLLI_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm31_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm3 }, }, ++ { 16744 /* xvslli.d */, LoongArch::XVSLLI_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm61_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm6 }, }, ++ { 16753 /* xvslli.h */, LoongArch::XVSLLI_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__ConstantUImm4_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm4_0 }, }, ++ { 16762 /* xvslli.w */, LoongArch::XVSLLI_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm5 }, }, ++ { 16771 /* xvsllwil.d.w */, LoongArch::XVSLLWIL_D_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm5 }, }, ++ { 16784 /* xvsllwil.du.wu */, LoongArch::XVSLLWIL_DU_WU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm5 }, }, ++ { 16799 /* xvsllwil.h.b */, LoongArch::XVSLLWIL_H_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm31_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm3 }, }, ++ { 16812 /* xvsllwil.hu.bu */, LoongArch::XVSLLWIL_HU_BU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm31_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm3 }, }, ++ { 16827 /* xvsllwil.w.h */, LoongArch::XVSLLWIL_W_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__ConstantUImm4_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm4_0 }, }, ++ { 16840 /* xvsllwil.wu.hu */, LoongArch::XVSLLWIL_WU_HU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__ConstantUImm4_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm4_0 }, }, ++ { 16855 /* xvslt.b */, LoongArch::XVSLT_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 16863 /* xvslt.bu */, LoongArch::XVSLT_BU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 16872 /* xvslt.d */, LoongArch::XVSLT_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 16880 /* xvslt.du */, LoongArch::XVSLT_DU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 16889 /* xvslt.h */, LoongArch::XVSLT_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 16897 /* xvslt.hu */, LoongArch::XVSLT_HU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 16906 /* xvslt.w */, LoongArch::XVSLT_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 16914 /* xvslt.wu */, LoongArch::XVSLT_WU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 16923 /* xvslti.b */, LoongArch::XVSLTI_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__SImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_SImm5 }, }, ++ { 16932 /* xvslti.bu */, LoongArch::XVSLTI_BU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm5 }, }, ++ { 16942 /* xvslti.d */, LoongArch::XVSLTI_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__SImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_SImm5 }, }, ++ { 16951 /* xvslti.du */, LoongArch::XVSLTI_DU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm5 }, }, ++ { 16961 /* xvslti.h */, LoongArch::XVSLTI_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__SImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_SImm5 }, }, ++ { 16970 /* xvslti.hu */, LoongArch::XVSLTI_HU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm5 }, }, ++ { 16980 /* xvslti.w */, LoongArch::XVSLTI_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__SImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_SImm5 }, }, ++ { 16989 /* xvslti.wu */, LoongArch::XVSLTI_WU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm5 }, }, ++ { 16999 /* xvsra.b */, LoongArch::XVSRA_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 17007 /* xvsra.d */, LoongArch::XVSRA_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 17015 /* xvsra.h */, LoongArch::XVSRA_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 17023 /* xvsra.w */, LoongArch::XVSRA_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 17031 /* xvsrai.b */, LoongArch::XVSRAI_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm31_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm3 }, }, ++ { 17040 /* xvsrai.d */, LoongArch::XVSRAI_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm61_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm6 }, }, ++ { 17049 /* xvsrai.h */, LoongArch::XVSRAI_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__ConstantUImm4_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm4_0 }, }, ++ { 17058 /* xvsrai.w */, LoongArch::XVSRAI_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm5 }, }, ++ { 17067 /* xvsran.b.h */, LoongArch::XVSRAN_B_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 17078 /* xvsran.h.w */, LoongArch::XVSRAN_H_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 17089 /* xvsran.w.d */, LoongArch::XVSRAN_W_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 17100 /* xvsrani.b.h */, LoongArch::XVSRANI_B_H, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__ConstantUImm4_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm4_0 }, }, ++ { 17112 /* xvsrani.d.q */, LoongArch::XVSRANI_D_Q, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__ConstantUImm7_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm7_0 }, }, ++ { 17124 /* xvsrani.h.w */, LoongArch::XVSRANI_H_W, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm5 }, }, ++ { 17136 /* xvsrani.w.d */, LoongArch::XVSRANI_W_D, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__UImm61_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm6 }, }, ++ { 17148 /* xvsrar.b */, LoongArch::XVSRAR_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 17157 /* xvsrar.d */, LoongArch::XVSRAR_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 17166 /* xvsrar.h */, LoongArch::XVSRAR_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 17175 /* xvsrar.w */, LoongArch::XVSRAR_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 17184 /* xvsrari.b */, LoongArch::XVSRARI_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm31_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm3 }, }, ++ { 17194 /* xvsrari.d */, LoongArch::XVSRARI_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm61_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm6 }, }, ++ { 17204 /* xvsrari.h */, LoongArch::XVSRARI_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__ConstantUImm4_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm4_0 }, }, ++ { 17214 /* xvsrari.w */, LoongArch::XVSRARI_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm5 }, }, ++ { 17224 /* xvsrarn.b.h */, LoongArch::XVSRARN_B_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 17236 /* xvsrarn.h.w */, LoongArch::XVSRARN_H_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 17248 /* xvsrarn.w.d */, LoongArch::XVSRARN_W_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 17260 /* xvsrarni.b.h */, LoongArch::XVSRARNI_B_H, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__ConstantUImm4_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm4_0 }, }, ++ { 17273 /* xvsrarni.d.q */, LoongArch::XVSRARNI_D_Q, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__ConstantUImm7_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm7_0 }, }, ++ { 17286 /* xvsrarni.h.w */, LoongArch::XVSRARNI_H_W, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm5 }, }, ++ { 17299 /* xvsrarni.w.d */, LoongArch::XVSRARNI_W_D, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__UImm61_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm6 }, }, ++ { 17312 /* xvsrl.b */, LoongArch::XVSRL_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 17320 /* xvsrl.d */, LoongArch::XVSRL_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 17328 /* xvsrl.h */, LoongArch::XVSRL_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 17336 /* xvsrl.w */, LoongArch::XVSRL_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 17344 /* xvsrli.b */, LoongArch::XVSRLI_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm31_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm3 }, }, ++ { 17353 /* xvsrli.d */, LoongArch::XVSRLI_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm61_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm6 }, }, ++ { 17362 /* xvsrli.h */, LoongArch::XVSRLI_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__ConstantUImm4_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm4_0 }, }, ++ { 17371 /* xvsrli.w */, LoongArch::XVSRLI_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm5 }, }, ++ { 17380 /* xvsrln.b.h */, LoongArch::XVSRLN_B_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 17391 /* xvsrln.h.w */, LoongArch::XVSRLN_H_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 17402 /* xvsrln.w.d */, LoongArch::XVSRLN_W_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 17413 /* xvsrlni.b.h */, LoongArch::XVSRLNI_B_H, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__ConstantUImm4_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm4_0 }, }, ++ { 17425 /* xvsrlni.d.q */, LoongArch::XVSRLNI_D_Q, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__ConstantUImm7_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm7_0 }, }, ++ { 17437 /* xvsrlni.h.w */, LoongArch::XVSRLNI_H_W, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm5 }, }, ++ { 17449 /* xvsrlni.w.d */, LoongArch::XVSRLNI_W_D, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__UImm61_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm6 }, }, ++ { 17461 /* xvsrlr.b */, LoongArch::XVSRLR_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 17470 /* xvsrlr.d */, LoongArch::XVSRLR_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 17479 /* xvsrlr.h */, LoongArch::XVSRLR_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 17488 /* xvsrlr.w */, LoongArch::XVSRLR_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 17497 /* xvsrlri.b */, LoongArch::XVSRLRI_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm31_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm3 }, }, ++ { 17507 /* xvsrlri.d */, LoongArch::XVSRLRI_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm61_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm6 }, }, ++ { 17517 /* xvsrlri.h */, LoongArch::XVSRLRI_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__ConstantUImm4_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm4_0 }, }, ++ { 17527 /* xvsrlri.w */, LoongArch::XVSRLRI_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm5 }, }, ++ { 17537 /* xvsrlrn.b.h */, LoongArch::XVSRLRN_B_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 17549 /* xvsrlrn.h.w */, LoongArch::XVSRLRN_H_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 17561 /* xvsrlrn.w.d */, LoongArch::XVSRLRN_W_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 17573 /* xvsrlrni.b.h */, LoongArch::XVSRLRNI_B_H, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__ConstantUImm4_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm4_0 }, }, ++ { 17586 /* xvsrlrni.d.q */, LoongArch::XVSRLRNI_D_Q, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__ConstantUImm7_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm7_0 }, }, ++ { 17599 /* xvsrlrni.h.w */, LoongArch::XVSRLRNI_H_W, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm5 }, }, ++ { 17612 /* xvsrlrni.w.d */, LoongArch::XVSRLRNI_W_D, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__UImm61_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm6 }, }, ++ { 17625 /* xvssran.b.h */, LoongArch::XVSSRAN_B_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 17637 /* xvssran.bu.h */, LoongArch::XVSSRAN_BU_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 17650 /* xvssran.h.w */, LoongArch::XVSSRAN_H_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 17662 /* xvssran.hu.w */, LoongArch::XVSSRAN_HU_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 17675 /* xvssran.w.d */, LoongArch::XVSSRAN_W_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 17687 /* xvssran.wu.d */, LoongArch::XVSSRAN_WU_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 17700 /* xvssrani.b.h */, LoongArch::XVSSRANI_B_H, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__ConstantUImm4_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm4_0 }, }, ++ { 17713 /* xvssrani.bu.h */, LoongArch::XVSSRANI_BU_H, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__ConstantUImm4_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm4_0 }, }, ++ { 17727 /* xvssrani.d.q */, LoongArch::XVSSRANI_D_Q, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__ConstantUImm7_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm7_0 }, }, ++ { 17740 /* xvssrani.du.q */, LoongArch::XVSSRANI_DU_Q, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__ConstantUImm7_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm7_0 }, }, ++ { 17754 /* xvssrani.h.w */, LoongArch::XVSSRANI_H_W, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm5 }, }, ++ { 17767 /* xvssrani.hu.w */, LoongArch::XVSSRANI_HU_W, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm5 }, }, ++ { 17781 /* xvssrani.w.d */, LoongArch::XVSSRANI_W_D, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__UImm61_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm6 }, }, ++ { 17794 /* xvssrani.wu.d */, LoongArch::XVSSRANI_WU_D, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__UImm61_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm6 }, }, ++ { 17808 /* xvssrarn.b.h */, LoongArch::XVSSRARN_B_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 17821 /* xvssrarn.bu.h */, LoongArch::XVSSRARN_BU_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 17835 /* xvssrarn.h.w */, LoongArch::XVSSRARN_H_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 17848 /* xvssrarn.hu.w */, LoongArch::XVSSRARN_HU_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 17862 /* xvssrarn.w.d */, LoongArch::XVSSRARN_W_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 17875 /* xvssrarn.wu.d */, LoongArch::XVSSRARN_WU_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 17889 /* xvssrarni.b.h */, LoongArch::XVSSRARNI_B_H, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__ConstantUImm4_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm4_0 }, }, ++ { 17903 /* xvssrarni.bu.h */, LoongArch::XVSSRARNI_BU_H, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__ConstantUImm4_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm4_0 }, }, ++ { 17918 /* xvssrarni.d.q */, LoongArch::XVSSRARNI_D_Q, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__ConstantUImm7_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm7_0 }, }, ++ { 17932 /* xvssrarni.du.q */, LoongArch::XVSSRARNI_DU_Q, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__ConstantUImm7_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm7_0 }, }, ++ { 17947 /* xvssrarni.h.w */, LoongArch::XVSSRARNI_H_W, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm5 }, }, ++ { 17961 /* xvssrarni.hu.w */, LoongArch::XVSSRARNI_HU_W, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm5 }, }, ++ { 17976 /* xvssrarni.w.d */, LoongArch::XVSSRARNI_W_D, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__UImm61_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm6 }, }, ++ { 17990 /* xvssrarni.wu.d */, LoongArch::XVSSRARNI_WU_D, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__UImm61_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm6 }, }, ++ { 18005 /* xvssrln.b.h */, LoongArch::XVSSRLN_B_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 18017 /* xvssrln.bu.h */, LoongArch::XVSSRLN_BU_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 18030 /* xvssrln.h.w */, LoongArch::XVSSRLN_H_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 18042 /* xvssrln.hu.w */, LoongArch::XVSSRLN_HU_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 18055 /* xvssrln.w.d */, LoongArch::XVSSRLN_W_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 18067 /* xvssrln.wu.d */, LoongArch::XVSSRLN_WU_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 18080 /* xvssrlni.b.h */, LoongArch::XVSSRLNI_B_H, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__ConstantUImm4_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm4_0 }, }, ++ { 18093 /* xvssrlni.bu.h */, LoongArch::XVSSRLNI_BU_H, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__ConstantUImm4_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm4_0 }, }, ++ { 18107 /* xvssrlni.d.q */, LoongArch::XVSSRLNI_D_Q, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__ConstantUImm7_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm7_0 }, }, ++ { 18120 /* xvssrlni.du.q */, LoongArch::XVSSRLNI_DU_Q, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__ConstantUImm7_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm7_0 }, }, ++ { 18134 /* xvssrlni.h.w */, LoongArch::XVSSRLNI_H_W, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm5 }, }, ++ { 18147 /* xvssrlni.hu.w */, LoongArch::XVSSRLNI_HU_W, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm5 }, }, ++ { 18161 /* xvssrlni.w.d */, LoongArch::XVSSRLNI_W_D, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__UImm61_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm6 }, }, ++ { 18174 /* xvssrlni.wu.d */, LoongArch::XVSSRLNI_WU_D, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__UImm61_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm6 }, }, ++ { 18188 /* xvssrlrn.b.h */, LoongArch::XVSSRLRN_B_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 18201 /* xvssrlrn.bu.h */, LoongArch::XVSSRLRN_BU_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 18215 /* xvssrlrn.h.w */, LoongArch::XVSSRLRN_H_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 18228 /* xvssrlrn.hu.w */, LoongArch::XVSSRLRN_HU_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 18242 /* xvssrlrn.w.d */, LoongArch::XVSSRLRN_W_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 18255 /* xvssrlrn.wu.d */, LoongArch::XVSSRLRN_WU_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 18269 /* xvssrlrni.b.h */, LoongArch::XVSSRLRNI_B_H, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__ConstantUImm4_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm4_0 }, }, ++ { 18283 /* xvssrlrni.bu.h */, LoongArch::XVSSRLRNI_BU_H, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__ConstantUImm4_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm4_0 }, }, ++ { 18298 /* xvssrlrni.d.q */, LoongArch::XVSSRLRNI_D_Q, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__ConstantUImm7_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm7_0 }, }, ++ { 18312 /* xvssrlrni.du.q */, LoongArch::XVSSRLRNI_DU_Q, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__ConstantUImm7_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm7_0 }, }, ++ { 18327 /* xvssrlrni.h.w */, LoongArch::XVSSRLRNI_H_W, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm5 }, }, ++ { 18341 /* xvssrlrni.hu.w */, LoongArch::XVSSRLRNI_HU_W, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm5 }, }, ++ { 18356 /* xvssrlrni.w.d */, LoongArch::XVSSRLRNI_W_D, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__UImm61_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm6 }, }, ++ { 18370 /* xvssrlrni.wu.d */, LoongArch::XVSSRLRNI_WU_D, Convert__LASX256AsmReg1_0__Tie0_1_1__LASX256AsmReg1_1__UImm61_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm6 }, }, ++ { 18385 /* xvssub.b */, LoongArch::XVSSUB_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 18394 /* xvssub.bu */, LoongArch::XVSSUB_BU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 18404 /* xvssub.d */, LoongArch::XVSSUB_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 18413 /* xvssub.du */, LoongArch::XVSSUB_DU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 18423 /* xvssub.h */, LoongArch::XVSSUB_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 18432 /* xvssub.hu */, LoongArch::XVSSUB_HU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 18442 /* xvssub.w */, LoongArch::XVSSUB_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 18451 /* xvssub.wu */, LoongArch::XVSSUB_WU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 18461 /* xvst */, LoongArch::XVST, Convert__LASX256AsmReg1_0__MemOffsetSimm122_1, AMFBS_None, { MCK_LASX256AsmReg, MCK_MemOffsetSimm12 }, }, ++ { 18466 /* xvstelm.b */, LoongArch::XVSTELM_B, Convert__LASX256AsmReg1_0__GPR32AsmReg1_1__SImm81_2__UImm51_3, AMFBS_None, { MCK_LASX256AsmReg, MCK_GPR32AsmReg, MCK_SImm8, MCK_UImm5 }, }, ++ { 18476 /* xvstelm.d */, LoongArch::XVSTELM_D, Convert__LASX256AsmReg1_0__GPR32AsmReg1_1__Simm8_Lsl31_2__UImm21_3, AMFBS_None, { MCK_LASX256AsmReg, MCK_GPR32AsmReg, MCK_Simm8_Lsl3, MCK_UImm2 }, }, ++ { 18486 /* xvstelm.h */, LoongArch::XVSTELM_H, Convert__LASX256AsmReg1_0__GPR32AsmReg1_1__Simm8_Lsl11_2__ConstantUImm4_01_3, AMFBS_None, { MCK_LASX256AsmReg, MCK_GPR32AsmReg, MCK_Simm8_Lsl1, MCK_ConstantUImm4_0 }, }, ++ { 18496 /* xvstelm.w */, LoongArch::XVSTELM_W, Convert__LASX256AsmReg1_0__GPR32AsmReg1_1__Simm8_Lsl21_2__UImm31_3, AMFBS_None, { MCK_LASX256AsmReg, MCK_GPR32AsmReg, MCK_Simm8_Lsl2, MCK_UImm3 }, }, ++ { 18506 /* xvstx */, LoongArch::XVSTX, Convert__LASX256AsmReg1_0__GPR32AsmReg1_1__GPR64AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_GPR32AsmReg, MCK_GPR64AsmReg }, }, ++ { 18512 /* xvsub.b */, LoongArch::XVSUB_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 18520 /* xvsub.d */, LoongArch::XVSUB_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 18528 /* xvsub.h */, LoongArch::XVSUB_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 18536 /* xvsub.q */, LoongArch::XVSUB_Q, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 18544 /* xvsub.w */, LoongArch::XVSUB_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 18552 /* xvsubi.bu */, LoongArch::XVSUBI_BU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm5 }, }, ++ { 18562 /* xvsubi.du */, LoongArch::XVSUBI_DU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm5 }, }, ++ { 18572 /* xvsubi.hu */, LoongArch::XVSUBI_HU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm5 }, }, ++ { 18582 /* xvsubi.wu */, LoongArch::XVSUBI_WU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__UImm51_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_UImm5 }, }, ++ { 18592 /* xvsubwev.d.w */, LoongArch::XVSUBWEV_D_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 18605 /* xvsubwev.d.wu */, LoongArch::XVSUBWEV_D_WU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 18619 /* xvsubwev.h.b */, LoongArch::XVSUBWEV_H_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 18632 /* xvsubwev.h.bu */, LoongArch::XVSUBWEV_H_BU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 18646 /* xvsubwev.q.d */, LoongArch::XVSUBWEV_Q_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 18659 /* xvsubwev.q.du */, LoongArch::XVSUBWEV_Q_DU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 18673 /* xvsubwev.w.h */, LoongArch::XVSUBWEV_W_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 18686 /* xvsubwev.w.hu */, LoongArch::XVSUBWEV_W_HU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 18700 /* xvsubwod.d.w */, LoongArch::XVSUBWOD_D_W, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 18713 /* xvsubwod.d.wu */, LoongArch::XVSUBWOD_D_WU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 18727 /* xvsubwod.h.b */, LoongArch::XVSUBWOD_H_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 18740 /* xvsubwod.h.bu */, LoongArch::XVSUBWOD_H_BU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 18754 /* xvsubwod.q.d */, LoongArch::XVSUBWOD_Q_D, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 18767 /* xvsubwod.q.du */, LoongArch::XVSUBWOD_Q_DU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 18781 /* xvsubwod.w.h */, LoongArch::XVSUBWOD_W_H, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 18794 /* xvsubwod.w.hu */, LoongArch::XVSUBWOD_W_HU, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 18808 /* xvxor.v */, LoongArch::XVXOR_V, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__LASX256AsmReg1_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_LASX256AsmReg }, }, ++ { 18816 /* xvxori.b */, LoongArch::XVXORI_B, Convert__LASX256AsmReg1_0__LASX256AsmReg1_1__ConstantUImm8_01_2, AMFBS_None, { MCK_LASX256AsmReg, MCK_LASX256AsmReg, MCK_ConstantUImm8_0 }, }, ++}; ++ ++#include "llvm/Support/Debug.h" ++#include "llvm/Support/Format.h" ++ ++unsigned LoongArchAsmParser:: ++MatchInstructionImpl(const OperandVector &Operands, ++ MCInst &Inst, ++ uint64_t &ErrorInfo, ++ FeatureBitset &MissingFeatures, ++ bool matchingInlineAsm, unsigned VariantID) { ++ // Eliminate obvious mismatches. ++ if (Operands.size() > 5) { ++ ErrorInfo = 5; ++ return Match_InvalidOperand; ++ } ++ ++ // Get the current feature set. ++ const FeatureBitset &AvailableFeatures = getAvailableFeatures(); ++ ++ // Get the instruction mnemonic, which is the first token. ++ StringRef Mnemonic = ((LoongArchOperand&)*Operands[0]).getToken(); ++ ++ // Some state to try to produce better error messages. ++ bool HadMatchOtherThanFeatures = false; ++ bool HadMatchOtherThanPredicate = false; ++ unsigned RetCode = Match_InvalidOperand; ++ MissingFeatures.set(); ++ // Set ErrorInfo to the operand that mismatches if it is ++ // wrong for all instances of the instruction. ++ ErrorInfo = ~0ULL; ++ // Find the appropriate table for this asm variant. ++ const MatchEntry *Start, *End; ++ switch (VariantID) { ++ default: llvm_unreachable("invalid variant!"); ++ case 0: Start = std::begin(MatchTable0); End = std::end(MatchTable0); break; ++ } ++ // Search the table. ++ auto MnemonicRange = std::equal_range(Start, End, Mnemonic, LessOpcode()); ++ ++ DEBUG_WITH_TYPE("asm-matcher", dbgs() << "AsmMatcher: found " << ++ std::distance(MnemonicRange.first, MnemonicRange.second) << ++ " encodings with mnemonic '" << Mnemonic << "'\n"); ++ ++ // Return a more specific error code if no mnemonics match. ++ if (MnemonicRange.first == MnemonicRange.second) ++ return Match_MnemonicFail; ++ ++ for (const MatchEntry *it = MnemonicRange.first, *ie = MnemonicRange.second; ++ it != ie; ++it) { ++ const FeatureBitset &RequiredFeatures = FeatureBitsets[it->RequiredFeaturesIdx]; ++ bool HasRequiredFeatures = ++ (AvailableFeatures & RequiredFeatures) == RequiredFeatures; ++ DEBUG_WITH_TYPE("asm-matcher", dbgs() << "Trying to match opcode " ++ << MII.getName(it->Opcode) << "\n"); ++ // equal_range guarantees that instruction mnemonic matches. ++ assert(Mnemonic == it->getMnemonic()); ++ bool OperandsValid = true; ++ for (unsigned FormalIdx = 0, ActualIdx = 1; FormalIdx != 4; ++FormalIdx) { ++ auto Formal = static_cast(it->Classes[FormalIdx]); ++ DEBUG_WITH_TYPE("asm-matcher", ++ dbgs() << " Matching formal operand class " << getMatchClassName(Formal) ++ << " against actual operand at index " << ActualIdx); ++ if (ActualIdx < Operands.size()) ++ DEBUG_WITH_TYPE("asm-matcher", dbgs() << " ("; ++ Operands[ActualIdx]->print(dbgs()); dbgs() << "): "); ++ else ++ DEBUG_WITH_TYPE("asm-matcher", dbgs() << ": "); ++ if (ActualIdx >= Operands.size()) { ++ DEBUG_WITH_TYPE("asm-matcher", dbgs() << "actual operand index out of range "); ++ OperandsValid = (Formal == InvalidMatchClass) || isSubclass(Formal, OptionalMatchClass); ++ if (!OperandsValid) ErrorInfo = ActualIdx; ++ break; ++ } ++ MCParsedAsmOperand &Actual = *Operands[ActualIdx]; ++ unsigned Diag = validateOperandClass(Actual, Formal); ++ if (Diag == Match_Success) { ++ DEBUG_WITH_TYPE("asm-matcher", ++ dbgs() << "match success using generic matcher\n"); ++ ++ActualIdx; ++ continue; ++ } ++ // If the generic handler indicates an invalid operand ++ // failure, check for a special case. ++ if (Diag != Match_Success) { ++ unsigned TargetDiag = validateTargetOperandClass(Actual, Formal); ++ if (TargetDiag == Match_Success) { ++ DEBUG_WITH_TYPE("asm-matcher", ++ dbgs() << "match success using target matcher\n"); ++ ++ActualIdx; ++ continue; ++ } ++ // If the target matcher returned a specific error code use ++ // that, else use the one from the generic matcher. ++ if (TargetDiag != Match_InvalidOperand && HasRequiredFeatures) ++ Diag = TargetDiag; ++ } ++ // If current formal operand wasn't matched and it is optional ++ // then try to match next formal operand ++ if (Diag == Match_InvalidOperand && isSubclass(Formal, OptionalMatchClass)) { ++ DEBUG_WITH_TYPE("asm-matcher", dbgs() << "ignoring optional operand\n"); ++ continue; ++ } ++ // If this operand is broken for all of the instances of this ++ // mnemonic, keep track of it so we can report loc info. ++ // If we already had a match that only failed due to a ++ // target predicate, that diagnostic is preferred. ++ if (!HadMatchOtherThanPredicate && ++ (it == MnemonicRange.first || ErrorInfo <= ActualIdx)) { ++ if (HasRequiredFeatures && (ErrorInfo != ActualIdx || Diag != Match_InvalidOperand)) ++ RetCode = Diag; ++ ErrorInfo = ActualIdx; ++ } ++ // Otherwise, just reject this instance of the mnemonic. ++ OperandsValid = false; ++ break; ++ } ++ ++ if (!OperandsValid) { ++ DEBUG_WITH_TYPE("asm-matcher", dbgs() << "Opcode result: multiple " ++ "operand mismatches, ignoring " ++ "this opcode\n"); ++ continue; ++ } ++ if (!HasRequiredFeatures) { ++ HadMatchOtherThanFeatures = true; ++ FeatureBitset NewMissingFeatures = RequiredFeatures & ~AvailableFeatures; ++ DEBUG_WITH_TYPE("asm-matcher", dbgs() << "Missing target features:"; ++ for (unsigned I = 0, E = NewMissingFeatures.size(); I != E; ++I) ++ if (NewMissingFeatures[I]) ++ dbgs() << ' ' << I; ++ dbgs() << "\n"); ++ if (NewMissingFeatures.count() <= ++ MissingFeatures.count()) ++ MissingFeatures = NewMissingFeatures; ++ continue; ++ } ++ ++ Inst.clear(); ++ ++ Inst.setOpcode(it->Opcode); ++ // We have a potential match but have not rendered the operands. ++ // Check the target predicate to handle any context sensitive ++ // constraints. ++ // For example, Ties that are referenced multiple times must be ++ // checked here to ensure the input is the same for each match ++ // constraints. If we leave it any later the ties will have been ++ // canonicalized ++ unsigned MatchResult; ++ if ((MatchResult = checkEarlyTargetMatchPredicate(Inst, Operands)) != Match_Success) { ++ Inst.clear(); ++ DEBUG_WITH_TYPE( ++ "asm-matcher", ++ dbgs() << "Early target match predicate failed with diag code " ++ << MatchResult << "\n"); ++ RetCode = MatchResult; ++ HadMatchOtherThanPredicate = true; ++ continue; ++ } ++ ++ if (matchingInlineAsm) { ++ convertToMapAndConstraints(it->ConvertFn, Operands); ++ if (!checkAsmTiedOperandConstraints(*this, it->ConvertFn, Operands, ErrorInfo)) ++ return Match_InvalidTiedOperand; ++ ++ return Match_Success; ++ } ++ ++ // We have selected a definite instruction, convert the parsed ++ // operands into the appropriate MCInst. ++ convertToMCInst(it->ConvertFn, Inst, it->Opcode, Operands); ++ ++ // We have a potential match. Check the target predicate to ++ // handle any context sensitive constraints. ++ if ((MatchResult = checkTargetMatchPredicate(Inst)) != Match_Success) { ++ DEBUG_WITH_TYPE("asm-matcher", ++ dbgs() << "Target match predicate failed with diag code " ++ << MatchResult << "\n"); ++ Inst.clear(); ++ RetCode = MatchResult; ++ HadMatchOtherThanPredicate = true; ++ continue; ++ } ++ ++ if (!checkAsmTiedOperandConstraints(*this, it->ConvertFn, Operands, ErrorInfo)) ++ return Match_InvalidTiedOperand; ++ ++ DEBUG_WITH_TYPE( ++ "asm-matcher", ++ dbgs() << "Opcode result: complete match, selecting this opcode\n"); ++ return Match_Success; ++ } ++ ++ // Okay, we had no match. Try to return a useful error code. ++ if (HadMatchOtherThanPredicate || !HadMatchOtherThanFeatures) ++ return RetCode; ++ ++ ErrorInfo = 0; ++ return Match_MissingFeature; ++} ++ ++namespace { ++ struct OperandMatchEntry { ++ uint16_t Mnemonic; ++ uint8_t OperandMask; ++ uint8_t Class; ++ uint8_t RequiredFeaturesIdx; ++ ++ StringRef getMnemonic() const { ++ return StringRef(MnemonicTable + Mnemonic + 1, ++ MnemonicTable[Mnemonic]); ++ } ++ }; ++ ++ // Predicate for searching for an opcode. ++ struct LessOpcodeOperand { ++ bool operator()(const OperandMatchEntry &LHS, StringRef RHS) { ++ return LHS.getMnemonic() < RHS; ++ } ++ bool operator()(StringRef LHS, const OperandMatchEntry &RHS) { ++ return LHS < RHS.getMnemonic(); ++ } ++ bool operator()(const OperandMatchEntry &LHS, const OperandMatchEntry &RHS) { ++ return LHS.getMnemonic() < RHS.getMnemonic(); ++ } ++ }; ++} // end anonymous namespace ++ ++static const OperandMatchEntry OperandMatchTable[2096] = { ++ /* Operand List Mnemonic, Mask, Operand Class, Features */ ++ { 0 /* add.d */, 7 /* 0, 1, 2 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 6 /* add.w */, 7 /* 0, 1, 2 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 12 /* addi.d */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 19 /* addi.w */, 3 /* 0, 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 19 /* addi.w */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 26 /* addu16i.d */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 36 /* alsl.d */, 7 /* 0, 1, 2 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 43 /* alsl.w */, 7 /* 0, 1, 2 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 50 /* alsl.wu */, 6 /* 1, 2 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 50 /* alsl.wu */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 58 /* amadd.d */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 58 /* amadd.d */, 4 /* 2 */, MCK_AMem, AMFBS_None }, ++ { 66 /* amadd.w */, 3 /* 0, 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 66 /* amadd.w */, 4 /* 2 */, MCK_AMem, AMFBS_None }, ++ { 74 /* amadd_db.d */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 74 /* amadd_db.d */, 4 /* 2 */, MCK_AMem, AMFBS_None }, ++ { 85 /* amadd_db.w */, 3 /* 0, 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 85 /* amadd_db.w */, 4 /* 2 */, MCK_AMem, AMFBS_None }, ++ { 96 /* amand.d */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 96 /* amand.d */, 4 /* 2 */, MCK_AMem, AMFBS_None }, ++ { 104 /* amand.w */, 3 /* 0, 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 104 /* amand.w */, 4 /* 2 */, MCK_AMem, AMFBS_None }, ++ { 112 /* amand_db.d */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 112 /* amand_db.d */, 4 /* 2 */, MCK_AMem, AMFBS_None }, ++ { 123 /* amand_db.w */, 3 /* 0, 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 123 /* amand_db.w */, 4 /* 2 */, MCK_AMem, AMFBS_None }, ++ { 134 /* ammax.d */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 134 /* ammax.d */, 4 /* 2 */, MCK_AMem, AMFBS_None }, ++ { 142 /* ammax.du */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 142 /* ammax.du */, 4 /* 2 */, MCK_AMem, AMFBS_None }, ++ { 151 /* ammax.w */, 3 /* 0, 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 151 /* ammax.w */, 4 /* 2 */, MCK_AMem, AMFBS_None }, ++ { 159 /* ammax.wu */, 3 /* 0, 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 159 /* ammax.wu */, 4 /* 2 */, MCK_AMem, AMFBS_None }, ++ { 168 /* ammax_db.d */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 168 /* ammax_db.d */, 4 /* 2 */, MCK_AMem, AMFBS_None }, ++ { 179 /* ammax_db.du */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 179 /* ammax_db.du */, 4 /* 2 */, MCK_AMem, AMFBS_None }, ++ { 191 /* ammax_db.w */, 3 /* 0, 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 191 /* ammax_db.w */, 4 /* 2 */, MCK_AMem, AMFBS_None }, ++ { 202 /* ammax_db.wu */, 3 /* 0, 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 202 /* ammax_db.wu */, 4 /* 2 */, MCK_AMem, AMFBS_None }, ++ { 214 /* ammin.d */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 214 /* ammin.d */, 4 /* 2 */, MCK_AMem, AMFBS_None }, ++ { 222 /* ammin.du */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 222 /* ammin.du */, 4 /* 2 */, MCK_AMem, AMFBS_None }, ++ { 231 /* ammin.w */, 3 /* 0, 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 231 /* ammin.w */, 4 /* 2 */, MCK_AMem, AMFBS_None }, ++ { 239 /* ammin.wu */, 3 /* 0, 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 239 /* ammin.wu */, 4 /* 2 */, MCK_AMem, AMFBS_None }, ++ { 248 /* ammin_db.d */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 248 /* ammin_db.d */, 4 /* 2 */, MCK_AMem, AMFBS_None }, ++ { 259 /* ammin_db.du */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 259 /* ammin_db.du */, 4 /* 2 */, MCK_AMem, AMFBS_None }, ++ { 271 /* ammin_db.w */, 3 /* 0, 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 271 /* ammin_db.w */, 4 /* 2 */, MCK_AMem, AMFBS_None }, ++ { 282 /* ammin_db.wu */, 3 /* 0, 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 282 /* ammin_db.wu */, 4 /* 2 */, MCK_AMem, AMFBS_None }, ++ { 294 /* amor.d */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 294 /* amor.d */, 4 /* 2 */, MCK_AMem, AMFBS_None }, ++ { 301 /* amor.w */, 3 /* 0, 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 301 /* amor.w */, 4 /* 2 */, MCK_AMem, AMFBS_None }, ++ { 308 /* amor_db.d */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 308 /* amor_db.d */, 4 /* 2 */, MCK_AMem, AMFBS_None }, ++ { 318 /* amor_db.w */, 3 /* 0, 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 318 /* amor_db.w */, 4 /* 2 */, MCK_AMem, AMFBS_None }, ++ { 328 /* amswap.d */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 328 /* amswap.d */, 4 /* 2 */, MCK_AMem, AMFBS_None }, ++ { 337 /* amswap.w */, 3 /* 0, 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 337 /* amswap.w */, 4 /* 2 */, MCK_AMem, AMFBS_None }, ++ { 346 /* amswap_db.d */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 346 /* amswap_db.d */, 4 /* 2 */, MCK_AMem, AMFBS_None }, ++ { 358 /* amswap_db.w */, 3 /* 0, 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 358 /* amswap_db.w */, 4 /* 2 */, MCK_AMem, AMFBS_None }, ++ { 370 /* amxor.d */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 370 /* amxor.d */, 4 /* 2 */, MCK_AMem, AMFBS_None }, ++ { 378 /* amxor.w */, 3 /* 0, 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 378 /* amxor.w */, 4 /* 2 */, MCK_AMem, AMFBS_None }, ++ { 386 /* amxor_db.d */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 386 /* amxor_db.d */, 4 /* 2 */, MCK_AMem, AMFBS_None }, ++ { 397 /* amxor_db.w */, 3 /* 0, 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 397 /* amxor_db.w */, 4 /* 2 */, MCK_AMem, AMFBS_None }, ++ { 408 /* and */, 7 /* 0, 1, 2 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 412 /* andi */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 417 /* andn */, 7 /* 0, 1, 2 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 422 /* asrtgt.d */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 431 /* asrtle.d */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 440 /* b */, 1 /* 0 */, MCK_JumpTarget, AMFBS_None }, ++ { 442 /* bceqz */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 442 /* bceqz */, 2 /* 1 */, MCK_JumpTarget, AMFBS_None }, ++ { 448 /* bcnez */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 448 /* bcnez */, 2 /* 1 */, MCK_JumpTarget, AMFBS_None }, ++ { 454 /* beq */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 454 /* beq */, 4 /* 2 */, MCK_JumpTarget, AMFBS_None }, ++ { 458 /* beqz */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 458 /* beqz */, 2 /* 1 */, MCK_JumpTarget, AMFBS_None }, ++ { 463 /* bge */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 463 /* bge */, 4 /* 2 */, MCK_JumpTarget, AMFBS_None }, ++ { 467 /* bgeu */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 467 /* bgeu */, 4 /* 2 */, MCK_JumpTarget, AMFBS_None }, ++ { 472 /* bitrev.4b */, 3 /* 0, 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 482 /* bitrev.8b */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 492 /* bitrev.d */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 501 /* bitrev.w */, 3 /* 0, 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 510 /* bl */, 1 /* 0 */, MCK_JumpTarget, AMFBS_None }, ++ { 513 /* blt */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 513 /* blt */, 4 /* 2 */, MCK_JumpTarget, AMFBS_None }, ++ { 517 /* bltu */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 517 /* bltu */, 4 /* 2 */, MCK_JumpTarget, AMFBS_None }, ++ { 522 /* bne */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 522 /* bne */, 4 /* 2 */, MCK_JumpTarget, AMFBS_None }, ++ { 526 /* bnez */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 526 /* bnez */, 2 /* 1 */, MCK_JumpTarget, AMFBS_None }, ++ { 537 /* bstrins.d */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 547 /* bstrins.w */, 3 /* 0, 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 557 /* bstrpick.d */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 568 /* bstrpick.w */, 3 /* 0, 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 579 /* bytepick.d */, 7 /* 0, 1, 2 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 590 /* bytepick.w */, 7 /* 0, 1, 2 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 601 /* cacop */, 2 /* 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 601 /* cacop */, 2 /* 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 607 /* clo.d */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 613 /* clo.w */, 3 /* 0, 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 619 /* clz.d */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 625 /* clz.w */, 3 /* 0, 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 631 /* cpucfg */, 3 /* 0, 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 638 /* crc.w.b.w */, 7 /* 0, 1, 2 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 648 /* crc.w.d.w */, 5 /* 0, 2 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 648 /* crc.w.d.w */, 2 /* 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 658 /* crc.w.h.w */, 7 /* 0, 1, 2 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 668 /* crc.w.w.w */, 7 /* 0, 1, 2 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 678 /* crcc.w.b.w */, 7 /* 0, 1, 2 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 689 /* crcc.w.d.w */, 5 /* 0, 2 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 689 /* crcc.w.d.w */, 2 /* 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 700 /* crcc.w.h.w */, 7 /* 0, 1, 2 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 711 /* crcc.w.w.w */, 7 /* 0, 1, 2 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 722 /* csrrd */, 1 /* 0 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 722 /* csrrd */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 728 /* csrwr */, 1 /* 0 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 728 /* csrwr */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 734 /* csrxchg */, 3 /* 0, 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 734 /* csrxchg */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 742 /* cto.d */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 748 /* cto.w */, 3 /* 0, 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 754 /* ctz.d */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 760 /* ctz.w */, 3 /* 0, 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 776 /* div.d */, 7 /* 0, 1, 2 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 782 /* div.du */, 7 /* 0, 1, 2 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 789 /* div.w */, 7 /* 0, 1, 2 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 795 /* div.wu */, 7 /* 0, 1, 2 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 807 /* ext.w.b */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 815 /* ext.w.h */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 823 /* fabs.d */, 3 /* 0, 1 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 830 /* fabs.s */, 3 /* 0, 1 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 837 /* fadd.d */, 7 /* 0, 1, 2 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 844 /* fadd.s */, 7 /* 0, 1, 2 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 851 /* fclass.d */, 3 /* 0, 1 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 860 /* fclass.s */, 3 /* 0, 1 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 869 /* fcmp.caf.d */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 869 /* fcmp.caf.d */, 6 /* 1, 2 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 880 /* fcmp.caf.s */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 880 /* fcmp.caf.s */, 6 /* 1, 2 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 891 /* fcmp.ceq.d */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 891 /* fcmp.ceq.d */, 6 /* 1, 2 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 902 /* fcmp.ceq.s */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 902 /* fcmp.ceq.s */, 6 /* 1, 2 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 913 /* fcmp.cle.d */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 913 /* fcmp.cle.d */, 6 /* 1, 2 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 924 /* fcmp.cle.s */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 924 /* fcmp.cle.s */, 6 /* 1, 2 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 935 /* fcmp.clt.d */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 935 /* fcmp.clt.d */, 6 /* 1, 2 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 946 /* fcmp.clt.s */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 946 /* fcmp.clt.s */, 6 /* 1, 2 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 957 /* fcmp.cne.d */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 957 /* fcmp.cne.d */, 6 /* 1, 2 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 968 /* fcmp.cne.s */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 968 /* fcmp.cne.s */, 6 /* 1, 2 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 979 /* fcmp.cor.d */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 979 /* fcmp.cor.d */, 6 /* 1, 2 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 990 /* fcmp.cor.s */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 990 /* fcmp.cor.s */, 6 /* 1, 2 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1001 /* fcmp.cueq.d */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 1001 /* fcmp.cueq.d */, 6 /* 1, 2 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 1013 /* fcmp.cueq.s */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 1013 /* fcmp.cueq.s */, 6 /* 1, 2 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1025 /* fcmp.cule.d */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 1025 /* fcmp.cule.d */, 6 /* 1, 2 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 1037 /* fcmp.cule.s */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 1037 /* fcmp.cule.s */, 6 /* 1, 2 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1049 /* fcmp.cult.d */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 1049 /* fcmp.cult.d */, 6 /* 1, 2 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 1061 /* fcmp.cult.s */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 1061 /* fcmp.cult.s */, 6 /* 1, 2 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1073 /* fcmp.cun.d */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 1073 /* fcmp.cun.d */, 6 /* 1, 2 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 1084 /* fcmp.cun.s */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 1084 /* fcmp.cun.s */, 6 /* 1, 2 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1095 /* fcmp.cune.d */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 1095 /* fcmp.cune.d */, 6 /* 1, 2 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 1107 /* fcmp.cune.s */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 1107 /* fcmp.cune.s */, 6 /* 1, 2 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1119 /* fcmp.saf.d */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 1119 /* fcmp.saf.d */, 6 /* 1, 2 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 1130 /* fcmp.saf.s */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 1130 /* fcmp.saf.s */, 6 /* 1, 2 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1141 /* fcmp.seq.d */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 1141 /* fcmp.seq.d */, 6 /* 1, 2 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 1152 /* fcmp.seq.s */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 1152 /* fcmp.seq.s */, 6 /* 1, 2 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1163 /* fcmp.sle.d */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 1163 /* fcmp.sle.d */, 6 /* 1, 2 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 1174 /* fcmp.sle.s */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 1174 /* fcmp.sle.s */, 6 /* 1, 2 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1185 /* fcmp.slt.d */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 1185 /* fcmp.slt.d */, 6 /* 1, 2 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 1196 /* fcmp.slt.s */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 1196 /* fcmp.slt.s */, 6 /* 1, 2 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1207 /* fcmp.sne.d */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 1207 /* fcmp.sne.d */, 6 /* 1, 2 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 1218 /* fcmp.sne.s */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 1218 /* fcmp.sne.s */, 6 /* 1, 2 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1229 /* fcmp.sor.d */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 1229 /* fcmp.sor.d */, 6 /* 1, 2 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 1240 /* fcmp.sor.s */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 1240 /* fcmp.sor.s */, 6 /* 1, 2 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1251 /* fcmp.sueq.d */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 1251 /* fcmp.sueq.d */, 6 /* 1, 2 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 1263 /* fcmp.sueq.s */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 1263 /* fcmp.sueq.s */, 6 /* 1, 2 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1275 /* fcmp.sule.d */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 1275 /* fcmp.sule.d */, 6 /* 1, 2 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 1287 /* fcmp.sule.s */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 1287 /* fcmp.sule.s */, 6 /* 1, 2 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1299 /* fcmp.sult.d */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 1299 /* fcmp.sult.d */, 6 /* 1, 2 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 1311 /* fcmp.sult.s */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 1311 /* fcmp.sult.s */, 6 /* 1, 2 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1323 /* fcmp.sun.d */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 1323 /* fcmp.sun.d */, 6 /* 1, 2 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 1334 /* fcmp.sun.s */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 1334 /* fcmp.sun.s */, 6 /* 1, 2 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1345 /* fcmp.sune.d */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 1345 /* fcmp.sune.d */, 6 /* 1, 2 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 1357 /* fcmp.sune.s */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 1357 /* fcmp.sune.s */, 6 /* 1, 2 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1369 /* fcopysign.d */, 7 /* 0, 1, 2 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 1381 /* fcopysign.s */, 7 /* 0, 1, 2 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1393 /* fcvt.d.s */, 2 /* 1 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1393 /* fcvt.d.s */, 1 /* 0 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 1402 /* fcvt.s.d */, 1 /* 0 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1402 /* fcvt.s.d */, 2 /* 1 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 1411 /* fdiv.d */, 7 /* 0, 1, 2 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 1418 /* fdiv.s */, 7 /* 0, 1, 2 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1425 /* ffint.d.l */, 3 /* 0, 1 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 1435 /* ffint.d.w */, 2 /* 1 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1435 /* ffint.d.w */, 1 /* 0 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 1445 /* ffint.s.l */, 1 /* 0 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1445 /* ffint.s.l */, 2 /* 1 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 1455 /* ffint.s.w */, 3 /* 0, 1 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1465 /* fld.d */, 1 /* 0 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 1465 /* fld.d */, 2 /* 1 */, MCK_Mem, AMFBS_None }, ++ { 1471 /* fld.s */, 1 /* 0 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1471 /* fld.s */, 2 /* 1 */, MCK_Mem, AMFBS_None }, ++ { 1477 /* fldgt.d */, 1 /* 0 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 1477 /* fldgt.d */, 6 /* 1, 2 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 1485 /* fldgt.s */, 1 /* 0 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1485 /* fldgt.s */, 6 /* 1, 2 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 1493 /* fldle.d */, 1 /* 0 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 1493 /* fldle.d */, 6 /* 1, 2 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 1501 /* fldle.s */, 1 /* 0 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1501 /* fldle.s */, 6 /* 1, 2 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 1509 /* fldx.d */, 1 /* 0 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 1509 /* fldx.d */, 6 /* 1, 2 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 1516 /* fldx.s */, 1 /* 0 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1516 /* fldx.s */, 6 /* 1, 2 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 1523 /* flogb.d */, 3 /* 0, 1 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 1531 /* flogb.s */, 3 /* 0, 1 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1539 /* fmadd.d */, 15 /* 0, 1, 2, 3 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 1547 /* fmadd.s */, 15 /* 0, 1, 2, 3 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1555 /* fmax.d */, 7 /* 0, 1, 2 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 1562 /* fmax.s */, 7 /* 0, 1, 2 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1569 /* fmaxa.d */, 7 /* 0, 1, 2 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 1577 /* fmaxa.s */, 7 /* 0, 1, 2 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1585 /* fmin.d */, 7 /* 0, 1, 2 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 1592 /* fmin.s */, 7 /* 0, 1, 2 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1599 /* fmina.d */, 7 /* 0, 1, 2 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 1607 /* fmina.s */, 7 /* 0, 1, 2 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1615 /* fmov.d */, 3 /* 0, 1 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 1622 /* fmov.s */, 3 /* 0, 1 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1629 /* fmsub.d */, 15 /* 0, 1, 2, 3 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 1637 /* fmsub.s */, 15 /* 0, 1, 2, 3 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1645 /* fmul.d */, 7 /* 0, 1, 2 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 1652 /* fmul.s */, 7 /* 0, 1, 2 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1659 /* fneg.d */, 3 /* 0, 1 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 1666 /* fneg.s */, 3 /* 0, 1 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1673 /* fnmadd.d */, 15 /* 0, 1, 2, 3 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 1682 /* fnmadd.s */, 15 /* 0, 1, 2, 3 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1691 /* fnmsub.d */, 15 /* 0, 1, 2, 3 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 1700 /* fnmsub.s */, 15 /* 0, 1, 2, 3 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1709 /* frecip.d */, 3 /* 0, 1 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 1718 /* frecip.s */, 3 /* 0, 1 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1727 /* frint.d */, 3 /* 0, 1 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 1735 /* frint.s */, 3 /* 0, 1 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1743 /* frsqrt.d */, 3 /* 0, 1 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 1752 /* frsqrt.s */, 3 /* 0, 1 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1761 /* fscaleb.d */, 7 /* 0, 1, 2 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 1771 /* fscaleb.s */, 7 /* 0, 1, 2 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1781 /* fsel */, 8 /* 3 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 1781 /* fsel */, 7 /* 0, 1, 2 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1786 /* fsqrt.d */, 3 /* 0, 1 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 1794 /* fsqrt.s */, 3 /* 0, 1 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1802 /* fst.d */, 1 /* 0 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 1802 /* fst.d */, 2 /* 1 */, MCK_Mem, AMFBS_None }, ++ { 1808 /* fst.s */, 1 /* 0 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1808 /* fst.s */, 2 /* 1 */, MCK_Mem, AMFBS_None }, ++ { 1814 /* fstgt.d */, 1 /* 0 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 1814 /* fstgt.d */, 6 /* 1, 2 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 1822 /* fstgt.s */, 1 /* 0 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1822 /* fstgt.s */, 6 /* 1, 2 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 1830 /* fstle.d */, 1 /* 0 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 1830 /* fstle.d */, 6 /* 1, 2 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 1838 /* fstle.s */, 1 /* 0 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1838 /* fstle.s */, 6 /* 1, 2 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 1846 /* fstx.d */, 1 /* 0 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 1846 /* fstx.d */, 6 /* 1, 2 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 1853 /* fstx.s */, 1 /* 0 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1853 /* fstx.s */, 6 /* 1, 2 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 1860 /* fsub.d */, 7 /* 0, 1, 2 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 1867 /* fsub.s */, 7 /* 0, 1, 2 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1874 /* ftint.l.d */, 3 /* 0, 1 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 1884 /* ftint.l.s */, 2 /* 1 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1884 /* ftint.l.s */, 1 /* 0 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 1894 /* ftint.w.d */, 1 /* 0 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1894 /* ftint.w.d */, 2 /* 1 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 1904 /* ftint.w.s */, 3 /* 0, 1 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1914 /* ftintrm.l.d */, 3 /* 0, 1 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 1926 /* ftintrm.l.s */, 3 /* 0, 1 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1938 /* ftintrm.w.d */, 3 /* 0, 1 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 1950 /* ftintrm.w.s */, 3 /* 0, 1 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1962 /* ftintrne.l.d */, 3 /* 0, 1 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 1975 /* ftintrne.l.s */, 3 /* 0, 1 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 1988 /* ftintrne.w.d */, 3 /* 0, 1 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 2001 /* ftintrne.w.s */, 3 /* 0, 1 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 2014 /* ftintrp.l.d */, 3 /* 0, 1 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 2026 /* ftintrp.l.s */, 3 /* 0, 1 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 2038 /* ftintrp.w.d */, 3 /* 0, 1 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 2050 /* ftintrp.w.s */, 3 /* 0, 1 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 2062 /* ftintrz.l.d */, 3 /* 0, 1 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 2074 /* ftintrz.l.s */, 2 /* 1 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 2074 /* ftintrz.l.s */, 1 /* 0 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 2086 /* ftintrz.w.d */, 1 /* 0 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 2086 /* ftintrz.w.d */, 2 /* 1 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 2098 /* ftintrz.w.s */, 3 /* 0, 1 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 2128 /* invtlb */, 6 /* 1, 2 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2135 /* iocsrrd.b */, 3 /* 0, 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 2135 /* iocsrrd.b */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2145 /* iocsrrd.d */, 2 /* 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 2145 /* iocsrrd.d */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2155 /* iocsrrd.h */, 3 /* 0, 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 2155 /* iocsrrd.h */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2165 /* iocsrrd.w */, 3 /* 0, 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 2165 /* iocsrrd.w */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2175 /* iocsrwr.b */, 3 /* 0, 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 2185 /* iocsrwr.d */, 2 /* 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 2185 /* iocsrwr.d */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2195 /* iocsrwr.h */, 3 /* 0, 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 2205 /* iocsrwr.w */, 3 /* 0, 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 2215 /* jirl */, 3 /* 0, 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 2215 /* jirl */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2220 /* jr */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2223 /* la */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2226 /* la.global */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2226 /* la.global */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2236 /* la.got */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2243 /* la.local */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2243 /* la.local */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2252 /* la.pcrel */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2261 /* la.tls.gd */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2261 /* la.tls.gd */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2271 /* la.tls.ie */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2271 /* la.tls.ie */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2281 /* la.tls.ld */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2281 /* la.tls.ld */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2291 /* la.tls.le */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2301 /* ld.b */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2301 /* ld.b */, 2 /* 1 */, MCK_Mem, AMFBS_None }, ++ { 2306 /* ld.bu */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2306 /* ld.bu */, 2 /* 1 */, MCK_Mem, AMFBS_None }, ++ { 2312 /* ld.d */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2312 /* ld.d */, 2 /* 1 */, MCK_MemOffsetSimmPtr, AMFBS_None }, ++ { 2317 /* ld.h */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2317 /* ld.h */, 2 /* 1 */, MCK_Mem, AMFBS_None }, ++ { 2322 /* ld.hu */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2322 /* ld.hu */, 2 /* 1 */, MCK_Mem, AMFBS_None }, ++ { 2328 /* ld.w */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2328 /* ld.w */, 2 /* 1 */, MCK_Mem, AMFBS_None }, ++ { 2333 /* ld.wu */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2333 /* ld.wu */, 2 /* 1 */, MCK_Mem, AMFBS_None }, ++ { 2339 /* lddir */, 3 /* 0, 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 2339 /* lddir */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2345 /* ldgt.b */, 7 /* 0, 1, 2 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2352 /* ldgt.d */, 7 /* 0, 1, 2 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2359 /* ldgt.h */, 7 /* 0, 1, 2 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2366 /* ldgt.w */, 7 /* 0, 1, 2 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2373 /* ldle.b */, 7 /* 0, 1, 2 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2380 /* ldle.d */, 7 /* 0, 1, 2 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2387 /* ldle.h */, 7 /* 0, 1, 2 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2394 /* ldle.w */, 7 /* 0, 1, 2 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2401 /* ldpte */, 1 /* 0 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 2401 /* ldpte */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2407 /* ldptr.d */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2407 /* ldptr.d */, 2 /* 1 */, MCK_MemOffsetSimm14_2, AMFBS_None }, ++ { 2415 /* ldptr.w */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2415 /* ldptr.w */, 2 /* 1 */, MCK_MemOffsetSimm14_2, AMFBS_None }, ++ { 2423 /* ldx.b */, 6 /* 1, 2 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 2423 /* ldx.b */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2429 /* ldx.bu */, 6 /* 1, 2 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 2429 /* ldx.bu */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2436 /* ldx.d */, 6 /* 1, 2 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 2436 /* ldx.d */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2442 /* ldx.h */, 6 /* 1, 2 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 2442 /* ldx.h */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2448 /* ldx.hu */, 6 /* 1, 2 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 2448 /* ldx.hu */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2455 /* ldx.w */, 6 /* 1, 2 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 2455 /* ldx.w */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2461 /* ldx.wu */, 6 /* 1, 2 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 2461 /* ldx.wu */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2468 /* li.d */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2473 /* li.w */, 1 /* 0 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 2478 /* ll.d */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2478 /* ll.d */, 2 /* 1 */, MCK_MemOffsetSimm14_2, AMFBS_None }, ++ { 2483 /* ll.w */, 1 /* 0 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 2483 /* ll.w */, 2 /* 1 */, MCK_MemOffsetSimm14_2, AMFBS_None }, ++ { 2488 /* lu12i.w */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2496 /* lu32i.d */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2504 /* lu52i.d */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2512 /* maskeqz */, 7 /* 0, 1, 2 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2520 /* masknez */, 7 /* 0, 1, 2 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2528 /* mod.d */, 7 /* 0, 1, 2 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2534 /* mod.du */, 7 /* 0, 1, 2 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2541 /* mod.w */, 7 /* 0, 1, 2 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 2547 /* mod.wu */, 7 /* 0, 1, 2 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 2554 /* movcf2fr */, 2 /* 1 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 2554 /* movcf2fr */, 1 /* 0 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 2563 /* movcf2gr */, 2 /* 1 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 2563 /* movcf2gr */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2572 /* move */, 3 /* 0, 1 */, MCK_GPR32AsmReg, AMFBS_IsGP32bit }, ++ { 2572 /* move */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_IsGP64bit }, ++ { 2577 /* movfcsr2gr */, 2 /* 1 */, MCK_FCSRAsmReg, AMFBS_None }, ++ { 2577 /* movfcsr2gr */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2588 /* movfr2cf */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 2588 /* movfr2cf */, 2 /* 1 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 2597 /* movfr2gr.d */, 2 /* 1 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 2597 /* movfr2gr.d */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2608 /* movfr2gr.s */, 2 /* 1 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 2608 /* movfr2gr.s */, 1 /* 0 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 2619 /* movfrh2gr.s */, 2 /* 1 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 2619 /* movfrh2gr.s */, 1 /* 0 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 2631 /* movgr2cf */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 2631 /* movgr2cf */, 2 /* 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2640 /* movgr2fcsr */, 1 /* 0 */, MCK_FCSRAsmReg, AMFBS_None }, ++ { 2640 /* movgr2fcsr */, 2 /* 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2651 /* movgr2fr.d */, 1 /* 0 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 2651 /* movgr2fr.d */, 2 /* 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2662 /* movgr2fr.w */, 1 /* 0 */, MCK_FGR32AsmReg, AMFBS_None }, ++ { 2662 /* movgr2fr.w */, 2 /* 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 2673 /* movgr2frh.w */, 1 /* 0 */, MCK_FGR64AsmReg, AMFBS_None }, ++ { 2673 /* movgr2frh.w */, 2 /* 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 2685 /* mul.d */, 7 /* 0, 1, 2 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2691 /* mul.w */, 7 /* 0, 1, 2 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 2697 /* mulh.d */, 7 /* 0, 1, 2 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2704 /* mulh.du */, 7 /* 0, 1, 2 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2712 /* mulh.w */, 7 /* 0, 1, 2 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 2719 /* mulh.wu */, 7 /* 0, 1, 2 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 2727 /* mulw.d.w */, 7 /* 0, 1, 2 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2736 /* mulw.d.wu */, 7 /* 0, 1, 2 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2750 /* nor */, 7 /* 0, 1, 2 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2754 /* or */, 7 /* 0, 1, 2 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2757 /* ori */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2761 /* orn */, 7 /* 0, 1, 2 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2765 /* pcaddi */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2772 /* pcaddu12i */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2782 /* pcaddu18i */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2792 /* pcalau12i */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2802 /* preld */, 2 /* 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 2802 /* preld */, 2 /* 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2808 /* rdtime.d */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2817 /* rdtimeh.w */, 3 /* 0, 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 2817 /* rdtimeh.w */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2827 /* rdtimel.w */, 3 /* 0, 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 2827 /* rdtimel.w */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2837 /* revb.2h */, 3 /* 0, 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 2845 /* revb.2w */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2853 /* revb.4h */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2861 /* revb.d */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2868 /* revh.2w */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2876 /* revh.d */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2883 /* rotr.d */, 4 /* 2 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 2883 /* rotr.d */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2890 /* rotr.w */, 7 /* 0, 1, 2 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 2897 /* rotri.d */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2905 /* rotri.w */, 3 /* 0, 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 2913 /* sc.d */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2913 /* sc.d */, 2 /* 1 */, MCK_MemOffsetSimm14_2, AMFBS_None }, ++ { 2918 /* sc.w */, 1 /* 0 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 2918 /* sc.w */, 2 /* 1 */, MCK_MemOffsetSimm14_2, AMFBS_None }, ++ { 2923 /* sll.d */, 4 /* 2 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 2923 /* sll.d */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2929 /* sll.w */, 7 /* 0, 1, 2 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 2935 /* slli.d */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2942 /* slli.w */, 3 /* 0, 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 2949 /* slt */, 1 /* 0 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 2949 /* slt */, 6 /* 1, 2 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2953 /* slti */, 1 /* 0 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 2953 /* slti */, 2 /* 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2958 /* sltu */, 1 /* 0 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 2958 /* sltu */, 6 /* 1, 2 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2963 /* sltui */, 1 /* 0 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 2963 /* sltui */, 2 /* 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2969 /* sra.d */, 4 /* 2 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 2969 /* sra.d */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2975 /* sra.w */, 7 /* 0, 1, 2 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 2981 /* srai.d */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 2988 /* srai.w */, 3 /* 0, 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 2995 /* srl.d */, 4 /* 2 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 2995 /* srl.d */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 3001 /* srl.w */, 7 /* 0, 1, 2 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 3007 /* srli.d */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 3014 /* srli.w */, 3 /* 0, 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 3021 /* st.b */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 3021 /* st.b */, 2 /* 1 */, MCK_Mem, AMFBS_None }, ++ { 3026 /* st.d */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 3026 /* st.d */, 2 /* 1 */, MCK_MemOffsetSimmPtr, AMFBS_None }, ++ { 3031 /* st.h */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 3031 /* st.h */, 2 /* 1 */, MCK_Mem, AMFBS_None }, ++ { 3036 /* st.w */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 3036 /* st.w */, 2 /* 1 */, MCK_Mem, AMFBS_None }, ++ { 3041 /* stgt.b */, 7 /* 0, 1, 2 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 3048 /* stgt.d */, 7 /* 0, 1, 2 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 3055 /* stgt.h */, 7 /* 0, 1, 2 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 3062 /* stgt.w */, 7 /* 0, 1, 2 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 3069 /* stle.b */, 7 /* 0, 1, 2 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 3076 /* stle.d */, 7 /* 0, 1, 2 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 3083 /* stle.h */, 7 /* 0, 1, 2 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 3090 /* stle.w */, 7 /* 0, 1, 2 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 3097 /* stptr.d */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 3097 /* stptr.d */, 2 /* 1 */, MCK_MemOffsetSimm14_2, AMFBS_None }, ++ { 3105 /* stptr.w */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 3105 /* stptr.w */, 2 /* 1 */, MCK_MemOffsetSimm14_2, AMFBS_None }, ++ { 3113 /* stx.b */, 6 /* 1, 2 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 3113 /* stx.b */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 3119 /* stx.d */, 6 /* 1, 2 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 3119 /* stx.d */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 3125 /* stx.h */, 6 /* 1, 2 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 3125 /* stx.h */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 3131 /* stx.w */, 6 /* 1, 2 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 3131 /* stx.w */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 3137 /* sub.d */, 7 /* 0, 1, 2 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 3143 /* sub.w */, 7 /* 0, 1, 2 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 3201 /* vabsd.b */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3209 /* vabsd.bu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3218 /* vabsd.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3226 /* vabsd.du */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3235 /* vabsd.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3243 /* vabsd.hu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3252 /* vabsd.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3260 /* vabsd.wu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3269 /* vadd.b */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3276 /* vadd.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3283 /* vadd.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3290 /* vadd.q */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3297 /* vadd.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3304 /* vadda.b */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3312 /* vadda.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3320 /* vadda.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3328 /* vadda.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3336 /* vaddi.bu */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3345 /* vaddi.du */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3354 /* vaddi.hu */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3363 /* vaddi.wu */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3372 /* vaddwev.d.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3384 /* vaddwev.d.wu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3397 /* vaddwev.d.wu.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3412 /* vaddwev.h.b */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3424 /* vaddwev.h.bu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3437 /* vaddwev.h.bu.b */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3452 /* vaddwev.q.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3464 /* vaddwev.q.du */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3477 /* vaddwev.q.du.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3492 /* vaddwev.w.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3504 /* vaddwev.w.hu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3517 /* vaddwev.w.hu.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3532 /* vaddwod.d.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3544 /* vaddwod.d.wu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3557 /* vaddwod.d.wu.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3572 /* vaddwod.h.b */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3584 /* vaddwod.h.bu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3597 /* vaddwod.h.bu.b */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3612 /* vaddwod.q.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3624 /* vaddwod.q.du */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3637 /* vaddwod.q.du.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3652 /* vaddwod.w.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3664 /* vaddwod.w.hu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3677 /* vaddwod.w.hu.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3692 /* vand.v */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3699 /* vandi.b */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3707 /* vandn.v */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3715 /* vavg.b */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3722 /* vavg.bu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3730 /* vavg.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3737 /* vavg.du */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3745 /* vavg.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3752 /* vavg.hu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3760 /* vavg.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3767 /* vavg.wu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3775 /* vavgr.b */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3783 /* vavgr.bu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3792 /* vavgr.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3800 /* vavgr.du */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3809 /* vavgr.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3817 /* vavgr.hu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3826 /* vavgr.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3834 /* vavgr.wu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3843 /* vbitclr.b */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3853 /* vbitclr.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3863 /* vbitclr.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3873 /* vbitclr.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3883 /* vbitclri.b */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3894 /* vbitclri.d */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3905 /* vbitclri.h */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3916 /* vbitclri.w */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3927 /* vbitrev.b */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3937 /* vbitrev.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3947 /* vbitrev.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3957 /* vbitrev.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3967 /* vbitrevi.b */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3978 /* vbitrevi.d */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 3989 /* vbitrevi.h */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4000 /* vbitrevi.w */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4011 /* vbitsel.v */, 15 /* 0, 1, 2, 3 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4021 /* vbitseli.b */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4032 /* vbitset.b */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4042 /* vbitset.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4052 /* vbitset.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4062 /* vbitset.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4072 /* vbitseti.b */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4083 /* vbitseti.d */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4094 /* vbitseti.h */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4105 /* vbitseti.w */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4116 /* vbsll.v */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4124 /* vbsrl.v */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4132 /* vclo.b */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4139 /* vclo.d */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4146 /* vclo.h */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4153 /* vclo.w */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4160 /* vclz.b */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4167 /* vclz.d */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4174 /* vclz.h */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4181 /* vclz.w */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4188 /* vdiv.b */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4195 /* vdiv.bu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4203 /* vdiv.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4210 /* vdiv.du */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4218 /* vdiv.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4225 /* vdiv.hu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4233 /* vdiv.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4240 /* vdiv.wu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4248 /* vext2xv.d.b */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 4260 /* vext2xv.d.h */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 4272 /* vext2xv.d.w */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 4284 /* vext2xv.du.bu */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 4298 /* vext2xv.du.hu */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 4312 /* vext2xv.du.wu */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 4326 /* vext2xv.h.b */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 4338 /* vext2xv.hu.bu */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 4352 /* vext2xv.w.b */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 4364 /* vext2xv.w.h */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 4376 /* vext2xv.wu.bu */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 4390 /* vext2xv.wu.hu */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 4404 /* vexth.d.w */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4414 /* vexth.du.wu */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4426 /* vexth.h.b */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4436 /* vexth.hu.bu */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4448 /* vexth.q.d */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4458 /* vexth.qu.du */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4470 /* vexth.w.h */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4480 /* vexth.wu.hu */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4492 /* vextl.q.d */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4502 /* vextl.qu.du */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4514 /* vextrins.b */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4525 /* vextrins.d */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4536 /* vextrins.h */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4547 /* vextrins.w */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4558 /* vfadd.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4566 /* vfadd.s */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4574 /* vfclass.d */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4584 /* vfclass.s */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4594 /* vfcmp.caf.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4606 /* vfcmp.caf.s */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4618 /* vfcmp.ceq.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4630 /* vfcmp.ceq.s */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4642 /* vfcmp.cle.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4654 /* vfcmp.cle.s */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4666 /* vfcmp.clt.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4678 /* vfcmp.clt.s */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4690 /* vfcmp.cne.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4702 /* vfcmp.cne.s */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4714 /* vfcmp.cor.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4726 /* vfcmp.cor.s */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4738 /* vfcmp.cueq.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4751 /* vfcmp.cueq.s */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4764 /* vfcmp.cule.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4777 /* vfcmp.cule.s */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4790 /* vfcmp.cult.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4803 /* vfcmp.cult.s */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4816 /* vfcmp.cun.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4828 /* vfcmp.cun.s */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4840 /* vfcmp.cune.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4853 /* vfcmp.cune.s */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4866 /* vfcmp.saf.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4878 /* vfcmp.saf.s */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4890 /* vfcmp.seq.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4902 /* vfcmp.seq.s */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4914 /* vfcmp.sle.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4926 /* vfcmp.sle.s */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4938 /* vfcmp.slt.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4950 /* vfcmp.slt.s */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4962 /* vfcmp.sne.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4974 /* vfcmp.sne.s */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4986 /* vfcmp.sor.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 4998 /* vfcmp.sor.s */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5010 /* vfcmp.sueq.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5023 /* vfcmp.sueq.s */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5036 /* vfcmp.sule.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5049 /* vfcmp.sule.s */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5062 /* vfcmp.sult.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5075 /* vfcmp.sult.s */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5088 /* vfcmp.sun.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5100 /* vfcmp.sun.s */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5112 /* vfcmp.sune.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5125 /* vfcmp.sune.s */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5138 /* vfcvt.h.s */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5148 /* vfcvt.s.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5158 /* vfcvth.d.s */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5169 /* vfcvth.s.h */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5180 /* vfcvtl.d.s */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5191 /* vfcvtl.s.h */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5202 /* vfdiv.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5210 /* vfdiv.s */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5218 /* vffint.d.l */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5229 /* vffint.d.lu */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5241 /* vffint.s.l */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5252 /* vffint.s.w */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5263 /* vffint.s.wu */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5275 /* vffinth.d.w */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5287 /* vffintl.d.w */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5299 /* vflogb.d */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5308 /* vflogb.s */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5317 /* vfmadd.d */, 15 /* 0, 1, 2, 3 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5326 /* vfmadd.s */, 15 /* 0, 1, 2, 3 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5335 /* vfmax.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5343 /* vfmax.s */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5351 /* vfmaxa.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5360 /* vfmaxa.s */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5369 /* vfmin.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5377 /* vfmin.s */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5385 /* vfmina.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5394 /* vfmina.s */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5403 /* vfmsub.d */, 15 /* 0, 1, 2, 3 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5412 /* vfmsub.s */, 15 /* 0, 1, 2, 3 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5421 /* vfmul.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5429 /* vfmul.s */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5437 /* vfnmadd.d */, 15 /* 0, 1, 2, 3 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5447 /* vfnmadd.s */, 15 /* 0, 1, 2, 3 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5457 /* vfnmsub.d */, 15 /* 0, 1, 2, 3 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5467 /* vfnmsub.s */, 15 /* 0, 1, 2, 3 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5477 /* vfrecip.d */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5487 /* vfrecip.s */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5497 /* vfrint.d */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5506 /* vfrint.s */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5515 /* vfrintrm.d */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5526 /* vfrintrm.s */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5537 /* vfrintrne.d */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5549 /* vfrintrne.s */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5561 /* vfrintrp.d */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5572 /* vfrintrp.s */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5583 /* vfrintrz.d */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5594 /* vfrintrz.s */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5605 /* vfrsqrt.d */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5615 /* vfrsqrt.s */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5625 /* vfrstp.b */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5634 /* vfrstp.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5643 /* vfrstpi.b */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5653 /* vfrstpi.h */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5663 /* vfsqrt.d */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5672 /* vfsqrt.s */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5681 /* vfsub.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5689 /* vfsub.s */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5697 /* vftint.l.d */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5708 /* vftint.lu.d */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5720 /* vftint.w.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5731 /* vftint.w.s */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5742 /* vftint.wu.s */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5754 /* vftinth.l.s */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5766 /* vftintl.l.s */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5778 /* vftintrm.l.d */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5791 /* vftintrm.w.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5804 /* vftintrm.w.s */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5817 /* vftintrmh.l.s */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5831 /* vftintrml.l.s */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5845 /* vftintrne.l.d */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5859 /* vftintrne.w.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5873 /* vftintrne.w.s */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5887 /* vftintrneh.l.s */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5902 /* vftintrnel.l.s */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5917 /* vftintrp.l.d */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5930 /* vftintrp.w.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5943 /* vftintrp.w.s */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5956 /* vftintrph.l.s */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5970 /* vftintrpl.l.s */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5984 /* vftintrz.l.d */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 5997 /* vftintrz.lu.d */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6011 /* vftintrz.w.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6024 /* vftintrz.w.s */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6037 /* vftintrz.wu.s */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6051 /* vftintrzh.l.s */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6065 /* vftintrzl.l.s */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6079 /* vhaddw.d.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6090 /* vhaddw.du.wu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6103 /* vhaddw.h.b */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6114 /* vhaddw.hu.bu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6127 /* vhaddw.q.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6138 /* vhaddw.qu.du */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6151 /* vhaddw.w.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6162 /* vhaddw.wu.hu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6175 /* vhsubw.d.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6186 /* vhsubw.du.wu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6199 /* vhsubw.h.b */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6210 /* vhsubw.hu.bu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6223 /* vhsubw.q.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6234 /* vhsubw.qu.du */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6247 /* vhsubw.w.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6258 /* vhsubw.wu.hu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6271 /* vilvh.b */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6279 /* vilvh.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6287 /* vilvh.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6295 /* vilvh.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6303 /* vilvl.b */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6311 /* vilvl.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6319 /* vilvl.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6327 /* vilvl.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6335 /* vinsgr2vr.b */, 2 /* 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 6335 /* vinsgr2vr.b */, 1 /* 0 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6347 /* vinsgr2vr.d */, 2 /* 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 6347 /* vinsgr2vr.d */, 1 /* 0 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6359 /* vinsgr2vr.h */, 2 /* 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 6359 /* vinsgr2vr.h */, 1 /* 0 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6371 /* vinsgr2vr.w */, 2 /* 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 6371 /* vinsgr2vr.w */, 1 /* 0 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6383 /* vld */, 1 /* 0 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6383 /* vld */, 2 /* 1 */, MCK_Mem, AMFBS_None }, ++ { 6387 /* vldi */, 1 /* 0 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6387 /* vldi */, 1 /* 0 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6387 /* vldi */, 1 /* 0 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6387 /* vldi */, 1 /* 0 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6387 /* vldi */, 1 /* 0 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6392 /* vldrepl.b */, 1 /* 0 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6392 /* vldrepl.b */, 2 /* 1 */, MCK_Mem, AMFBS_None }, ++ { 6402 /* vldrepl.d */, 1 /* 0 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6402 /* vldrepl.d */, 2 /* 1 */, MCK_MemOffsetSimm9_3, AMFBS_None }, ++ { 6412 /* vldrepl.h */, 1 /* 0 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6412 /* vldrepl.h */, 2 /* 1 */, MCK_MemOffsetSimm11_1, AMFBS_None }, ++ { 6422 /* vldrepl.w */, 1 /* 0 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6422 /* vldrepl.w */, 2 /* 1 */, MCK_MemOffsetSimm10_2, AMFBS_None }, ++ { 6432 /* vldx */, 2 /* 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 6432 /* vldx */, 4 /* 2 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 6432 /* vldx */, 1 /* 0 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6437 /* vmadd.b */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6445 /* vmadd.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6453 /* vmadd.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6461 /* vmadd.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6469 /* vmaddwev.d.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6482 /* vmaddwev.d.wu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6496 /* vmaddwev.d.wu.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6512 /* vmaddwev.h.b */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6525 /* vmaddwev.h.bu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6539 /* vmaddwev.h.bu.b */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6555 /* vmaddwev.q.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6568 /* vmaddwev.q.du */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6582 /* vmaddwev.q.du.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6598 /* vmaddwev.w.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6611 /* vmaddwev.w.hu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6625 /* vmaddwev.w.hu.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6641 /* vmaddwod.d.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6654 /* vmaddwod.d.wu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6668 /* vmaddwod.d.wu.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6684 /* vmaddwod.h.b */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6697 /* vmaddwod.h.bu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6711 /* vmaddwod.h.bu.b */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6727 /* vmaddwod.q.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6740 /* vmaddwod.q.du */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6754 /* vmaddwod.q.du.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6770 /* vmaddwod.w.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6783 /* vmaddwod.w.hu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6797 /* vmaddwod.w.hu.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6813 /* vmax.b */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6820 /* vmax.bu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6828 /* vmax.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6835 /* vmax.du */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6843 /* vmax.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6850 /* vmax.hu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6858 /* vmax.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6865 /* vmax.wu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6873 /* vmaxi.b */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6881 /* vmaxi.bu */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6890 /* vmaxi.d */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6898 /* vmaxi.du */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6907 /* vmaxi.h */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6915 /* vmaxi.hu */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6924 /* vmaxi.w */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6932 /* vmaxi.wu */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6941 /* vmin.b */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6948 /* vmin.bu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6956 /* vmin.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6963 /* vmin.du */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6971 /* vmin.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6978 /* vmin.hu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6986 /* vmin.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 6993 /* vmin.wu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7001 /* vmini.b */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7009 /* vmini.bu */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7018 /* vmini.d */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7026 /* vmini.du */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7035 /* vmini.h */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7043 /* vmini.hu */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7052 /* vmini.w */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7060 /* vmini.wu */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7069 /* vmod.b */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7076 /* vmod.bu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7084 /* vmod.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7091 /* vmod.du */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7099 /* vmod.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7106 /* vmod.hu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7114 /* vmod.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7121 /* vmod.wu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7129 /* vmskgez.b */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7139 /* vmskltz.b */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7149 /* vmskltz.d */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7159 /* vmskltz.h */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7169 /* vmskltz.w */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7179 /* vmsknz.b */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7188 /* vmsub.b */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7196 /* vmsub.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7204 /* vmsub.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7212 /* vmsub.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7220 /* vmuh.b */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7227 /* vmuh.bu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7235 /* vmuh.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7242 /* vmuh.du */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7250 /* vmuh.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7257 /* vmuh.hu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7265 /* vmuh.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7272 /* vmuh.wu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7280 /* vmul.b */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7287 /* vmul.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7294 /* vmul.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7301 /* vmul.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7308 /* vmulwev.d.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7320 /* vmulwev.d.wu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7333 /* vmulwev.d.wu.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7348 /* vmulwev.h.b */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7360 /* vmulwev.h.bu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7373 /* vmulwev.h.bu.b */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7388 /* vmulwev.q.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7400 /* vmulwev.q.du */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7413 /* vmulwev.q.du.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7428 /* vmulwev.w.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7440 /* vmulwev.w.hu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7453 /* vmulwev.w.hu.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7468 /* vmulwod.d.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7480 /* vmulwod.d.wu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7493 /* vmulwod.d.wu.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7508 /* vmulwod.h.b */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7520 /* vmulwod.h.bu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7533 /* vmulwod.h.bu.b */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7548 /* vmulwod.q.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7560 /* vmulwod.q.du */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7573 /* vmulwod.q.du.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7588 /* vmulwod.w.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7600 /* vmulwod.w.hu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7613 /* vmulwod.w.hu.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7628 /* vneg.b */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7635 /* vneg.d */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7642 /* vneg.h */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7649 /* vneg.w */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7656 /* vnor.v */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7663 /* vnori.b */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7671 /* vor.v */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7677 /* vori.b */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7684 /* vorn.v */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7691 /* vpackev.b */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7701 /* vpackev.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7711 /* vpackev.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7721 /* vpackev.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7731 /* vpackod.b */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7741 /* vpackod.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7751 /* vpackod.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7761 /* vpackod.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7771 /* vpcnt.b */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7779 /* vpcnt.d */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7787 /* vpcnt.h */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7795 /* vpcnt.w */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7803 /* vpermi.w */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7812 /* vpickev.b */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7822 /* vpickev.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7832 /* vpickev.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7842 /* vpickev.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7852 /* vpickod.b */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7862 /* vpickod.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7872 /* vpickod.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7882 /* vpickod.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7892 /* vpickve2gr.b */, 1 /* 0 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 7892 /* vpickve2gr.b */, 2 /* 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7905 /* vpickve2gr.bu */, 1 /* 0 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 7905 /* vpickve2gr.bu */, 2 /* 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7919 /* vpickve2gr.d */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 7919 /* vpickve2gr.d */, 2 /* 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7932 /* vpickve2gr.du */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 7932 /* vpickve2gr.du */, 2 /* 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7946 /* vpickve2gr.h */, 1 /* 0 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 7946 /* vpickve2gr.h */, 2 /* 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7959 /* vpickve2gr.hu */, 1 /* 0 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 7959 /* vpickve2gr.hu */, 2 /* 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7973 /* vpickve2gr.w */, 1 /* 0 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 7973 /* vpickve2gr.w */, 2 /* 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 7986 /* vpickve2gr.wu */, 1 /* 0 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 7986 /* vpickve2gr.wu */, 2 /* 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8000 /* vreplgr2vr.b */, 2 /* 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 8000 /* vreplgr2vr.b */, 1 /* 0 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8013 /* vreplgr2vr.d */, 2 /* 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 8013 /* vreplgr2vr.d */, 1 /* 0 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8026 /* vreplgr2vr.h */, 2 /* 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 8026 /* vreplgr2vr.h */, 1 /* 0 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8039 /* vreplgr2vr.w */, 2 /* 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 8039 /* vreplgr2vr.w */, 1 /* 0 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8052 /* vreplve.b */, 4 /* 2 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 8052 /* vreplve.b */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8062 /* vreplve.d */, 4 /* 2 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 8062 /* vreplve.d */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8072 /* vreplve.h */, 4 /* 2 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 8072 /* vreplve.h */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8082 /* vreplve.w */, 4 /* 2 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 8082 /* vreplve.w */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8092 /* vreplvei.b */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8103 /* vreplvei.d */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8114 /* vreplvei.h */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8125 /* vreplvei.w */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8136 /* vrotr.b */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8144 /* vrotr.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8152 /* vrotr.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8160 /* vrotr.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8168 /* vrotri.b */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8177 /* vrotri.d */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8186 /* vrotri.h */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8195 /* vrotri.w */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8204 /* vsadd.b */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8212 /* vsadd.bu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8221 /* vsadd.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8229 /* vsadd.du */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8238 /* vsadd.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8246 /* vsadd.hu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8255 /* vsadd.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8263 /* vsadd.wu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8272 /* vsat.b */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8279 /* vsat.bu */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8287 /* vsat.d */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8294 /* vsat.du */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8302 /* vsat.h */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8309 /* vsat.hu */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8317 /* vsat.w */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8324 /* vsat.wu */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8332 /* vseq.b */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8339 /* vseq.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8346 /* vseq.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8353 /* vseq.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8360 /* vseqi.b */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8368 /* vseqi.d */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8376 /* vseqi.h */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8384 /* vseqi.w */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8392 /* vsetallnez.b */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 8392 /* vsetallnez.b */, 2 /* 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8405 /* vsetallnez.d */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 8405 /* vsetallnez.d */, 2 /* 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8418 /* vsetallnez.h */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 8418 /* vsetallnez.h */, 2 /* 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8431 /* vsetallnez.w */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 8431 /* vsetallnez.w */, 2 /* 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8444 /* vsetanyeqz.b */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 8444 /* vsetanyeqz.b */, 2 /* 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8457 /* vsetanyeqz.d */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 8457 /* vsetanyeqz.d */, 2 /* 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8470 /* vsetanyeqz.h */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 8470 /* vsetanyeqz.h */, 2 /* 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8483 /* vsetanyeqz.w */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 8483 /* vsetanyeqz.w */, 2 /* 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8496 /* vseteqz.v */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 8496 /* vseteqz.v */, 2 /* 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8506 /* vsetnez.v */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 8506 /* vsetnez.v */, 2 /* 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8516 /* vshuf.b */, 15 /* 0, 1, 2, 3 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8524 /* vshuf.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8532 /* vshuf.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8540 /* vshuf.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8548 /* vshuf4i.b */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8558 /* vshuf4i.d */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8568 /* vshuf4i.h */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8578 /* vshuf4i.w */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8588 /* vsigncov.b */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8599 /* vsigncov.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8610 /* vsigncov.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8621 /* vsigncov.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8632 /* vsle.b */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8639 /* vsle.bu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8647 /* vsle.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8654 /* vsle.du */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8662 /* vsle.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8669 /* vsle.hu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8677 /* vsle.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8684 /* vsle.wu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8692 /* vslei.b */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8700 /* vslei.bu */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8709 /* vslei.d */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8717 /* vslei.du */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8726 /* vslei.h */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8734 /* vslei.hu */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8743 /* vslei.w */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8751 /* vslei.wu */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8760 /* vsll.b */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8767 /* vsll.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8774 /* vsll.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8781 /* vsll.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8788 /* vslli.b */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8796 /* vslli.d */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8804 /* vslli.h */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8812 /* vslli.w */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8820 /* vsllwil.d.w */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8832 /* vsllwil.du.wu */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8846 /* vsllwil.h.b */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8858 /* vsllwil.hu.bu */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8872 /* vsllwil.w.h */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8884 /* vsllwil.wu.hu */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8898 /* vslt.b */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8905 /* vslt.bu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8913 /* vslt.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8920 /* vslt.du */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8928 /* vslt.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8935 /* vslt.hu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8943 /* vslt.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8950 /* vslt.wu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8958 /* vslti.b */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8966 /* vslti.bu */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8975 /* vslti.d */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8983 /* vslti.du */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 8992 /* vslti.h */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9000 /* vslti.hu */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9009 /* vslti.w */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9017 /* vslti.wu */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9026 /* vsra.b */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9033 /* vsra.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9040 /* vsra.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9047 /* vsra.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9054 /* vsrai.b */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9062 /* vsrai.d */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9070 /* vsrai.h */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9078 /* vsrai.w */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9086 /* vsran.b.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9096 /* vsran.h.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9106 /* vsran.w.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9116 /* vsrani.b.h */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9127 /* vsrani.d.q */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9138 /* vsrani.h.w */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9149 /* vsrani.w.d */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9160 /* vsrar.b */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9168 /* vsrar.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9176 /* vsrar.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9184 /* vsrar.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9192 /* vsrari.b */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9201 /* vsrari.d */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9210 /* vsrari.h */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9219 /* vsrari.w */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9228 /* vsrarn.b.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9239 /* vsrarn.h.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9250 /* vsrarn.w.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9261 /* vsrarni.b.h */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9273 /* vsrarni.d.q */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9285 /* vsrarni.h.w */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9297 /* vsrarni.w.d */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9309 /* vsrl.b */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9316 /* vsrl.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9323 /* vsrl.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9330 /* vsrl.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9337 /* vsrli.b */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9345 /* vsrli.d */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9353 /* vsrli.h */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9361 /* vsrli.w */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9369 /* vsrln.b.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9379 /* vsrln.h.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9389 /* vsrln.w.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9399 /* vsrlni.b.h */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9410 /* vsrlni.d.q */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9421 /* vsrlni.h.w */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9432 /* vsrlni.w.d */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9443 /* vsrlr.b */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9451 /* vsrlr.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9459 /* vsrlr.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9467 /* vsrlr.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9475 /* vsrlri.b */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9484 /* vsrlri.d */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9493 /* vsrlri.h */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9502 /* vsrlri.w */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9511 /* vsrlrn.b.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9522 /* vsrlrn.h.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9533 /* vsrlrn.w.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9544 /* vsrlrni.b.h */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9556 /* vsrlrni.d.q */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9568 /* vsrlrni.h.w */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9580 /* vsrlrni.w.d */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9592 /* vssran.b.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9603 /* vssran.bu.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9615 /* vssran.h.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9626 /* vssran.hu.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9638 /* vssran.w.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9649 /* vssran.wu.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9661 /* vssrani.b.h */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9673 /* vssrani.bu.h */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9686 /* vssrani.d.q */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9698 /* vssrani.du.q */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9711 /* vssrani.h.w */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9723 /* vssrani.hu.w */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9736 /* vssrani.w.d */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9748 /* vssrani.wu.d */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9761 /* vssrarn.b.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9773 /* vssrarn.bu.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9786 /* vssrarn.h.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9798 /* vssrarn.hu.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9811 /* vssrarn.w.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9823 /* vssrarn.wu.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9836 /* vssrarni.b.h */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9849 /* vssrarni.bu.h */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9863 /* vssrarni.d.q */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9876 /* vssrarni.du.q */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9890 /* vssrarni.h.w */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9903 /* vssrarni.hu.w */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9917 /* vssrarni.w.d */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9930 /* vssrarni.wu.d */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9944 /* vssrln.b.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9955 /* vssrln.bu.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9967 /* vssrln.h.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9978 /* vssrln.hu.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 9990 /* vssrln.w.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10001 /* vssrln.wu.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10013 /* vssrlni.b.h */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10025 /* vssrlni.bu.h */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10038 /* vssrlni.d.q */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10050 /* vssrlni.du.q */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10063 /* vssrlni.h.w */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10075 /* vssrlni.hu.w */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10088 /* vssrlni.w.d */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10100 /* vssrlni.wu.d */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10113 /* vssrlrn.b.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10125 /* vssrlrn.bu.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10138 /* vssrlrn.h.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10150 /* vssrlrn.hu.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10163 /* vssrlrn.w.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10175 /* vssrlrn.wu.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10188 /* vssrlrni.b.h */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10201 /* vssrlrni.bu.h */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10215 /* vssrlrni.d.q */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10228 /* vssrlrni.du.q */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10242 /* vssrlrni.h.w */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10255 /* vssrlrni.hu.w */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10269 /* vssrlrni.w.d */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10282 /* vssrlrni.wu.d */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10296 /* vssub.b */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10304 /* vssub.bu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10313 /* vssub.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10321 /* vssub.du */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10330 /* vssub.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10338 /* vssub.hu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10347 /* vssub.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10355 /* vssub.wu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10364 /* vst */, 1 /* 0 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10364 /* vst */, 2 /* 1 */, MCK_MemOffsetSimm12, AMFBS_None }, ++ { 10368 /* vstelm.b */, 2 /* 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 10368 /* vstelm.b */, 1 /* 0 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10377 /* vstelm.d */, 2 /* 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 10377 /* vstelm.d */, 1 /* 0 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10386 /* vstelm.h */, 2 /* 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 10386 /* vstelm.h */, 1 /* 0 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10395 /* vstelm.w */, 2 /* 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 10395 /* vstelm.w */, 1 /* 0 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10404 /* vstx */, 2 /* 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 10404 /* vstx */, 4 /* 2 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 10404 /* vstx */, 1 /* 0 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10409 /* vsub.b */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10416 /* vsub.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10423 /* vsub.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10430 /* vsub.q */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10437 /* vsub.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10444 /* vsubi.bu */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10453 /* vsubi.du */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10462 /* vsubi.hu */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10471 /* vsubi.wu */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10480 /* vsubwev.d.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10492 /* vsubwev.d.wu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10505 /* vsubwev.h.b */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10517 /* vsubwev.h.bu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10530 /* vsubwev.q.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10542 /* vsubwev.q.du */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10555 /* vsubwev.w.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10567 /* vsubwev.w.hu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10580 /* vsubwod.d.w */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10592 /* vsubwod.d.wu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10605 /* vsubwod.h.b */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10617 /* vsubwod.h.bu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10630 /* vsubwod.q.d */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10642 /* vsubwod.q.du */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10655 /* vsubwod.w.h */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10667 /* vsubwod.w.hu */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10680 /* vxor.v */, 7 /* 0, 1, 2 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10687 /* vxori.b */, 3 /* 0, 1 */, MCK_LSX128AsmReg, AMFBS_None }, ++ { 10695 /* xor */, 7 /* 0, 1, 2 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 10699 /* xori */, 3 /* 0, 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 10704 /* xvabsd.b */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 10713 /* xvabsd.bu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 10723 /* xvabsd.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 10732 /* xvabsd.du */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 10742 /* xvabsd.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 10751 /* xvabsd.hu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 10761 /* xvabsd.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 10770 /* xvabsd.wu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 10780 /* xvadd.b */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 10788 /* xvadd.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 10796 /* xvadd.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 10804 /* xvadd.q */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 10812 /* xvadd.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 10820 /* xvadda.b */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 10829 /* xvadda.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 10838 /* xvadda.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 10847 /* xvadda.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 10856 /* xvaddi.bu */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 10866 /* xvaddi.du */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 10876 /* xvaddi.hu */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 10886 /* xvaddi.wu */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 10896 /* xvaddwev.d.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 10909 /* xvaddwev.d.wu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 10923 /* xvaddwev.d.wu.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 10939 /* xvaddwev.h.b */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 10952 /* xvaddwev.h.bu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 10966 /* xvaddwev.h.bu.b */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 10982 /* xvaddwev.q.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 10995 /* xvaddwev.q.du */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11009 /* xvaddwev.q.du.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11025 /* xvaddwev.w.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11038 /* xvaddwev.w.hu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11052 /* xvaddwev.w.hu.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11068 /* xvaddwod.d.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11081 /* xvaddwod.d.wu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11095 /* xvaddwod.d.wu.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11111 /* xvaddwod.h.b */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11124 /* xvaddwod.h.bu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11138 /* xvaddwod.h.bu.b */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11154 /* xvaddwod.q.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11167 /* xvaddwod.q.du */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11181 /* xvaddwod.q.du.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11197 /* xvaddwod.w.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11210 /* xvaddwod.w.hu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11224 /* xvaddwod.w.hu.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11240 /* xvand.v */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11248 /* xvandi.b */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11257 /* xvandn.v */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11266 /* xvavg.b */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11274 /* xvavg.bu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11283 /* xvavg.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11291 /* xvavg.du */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11300 /* xvavg.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11308 /* xvavg.hu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11317 /* xvavg.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11325 /* xvavg.wu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11334 /* xvavgr.b */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11343 /* xvavgr.bu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11353 /* xvavgr.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11362 /* xvavgr.du */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11372 /* xvavgr.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11381 /* xvavgr.hu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11391 /* xvavgr.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11400 /* xvavgr.wu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11410 /* xvbitclr.b */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11421 /* xvbitclr.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11432 /* xvbitclr.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11443 /* xvbitclr.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11454 /* xvbitclri.b */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11466 /* xvbitclri.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11478 /* xvbitclri.h */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11490 /* xvbitclri.w */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11502 /* xvbitrev.b */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11513 /* xvbitrev.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11524 /* xvbitrev.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11535 /* xvbitrev.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11546 /* xvbitrevi.b */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11558 /* xvbitrevi.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11570 /* xvbitrevi.h */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11582 /* xvbitrevi.w */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11594 /* xvbitsel.v */, 15 /* 0, 1, 2, 3 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11605 /* xvbitseli.b */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11617 /* xvbitset.b */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11628 /* xvbitset.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11639 /* xvbitset.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11650 /* xvbitset.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11661 /* xvbitseti.b */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11673 /* xvbitseti.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11685 /* xvbitseti.h */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11697 /* xvbitseti.w */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11709 /* xvbsll.v */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11718 /* xvbsrl.v */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11727 /* xvclo.b */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11735 /* xvclo.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11743 /* xvclo.h */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11751 /* xvclo.w */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11759 /* xvclz.b */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11767 /* xvclz.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11775 /* xvclz.h */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11783 /* xvclz.w */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11791 /* xvdiv.b */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11799 /* xvdiv.bu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11808 /* xvdiv.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11816 /* xvdiv.du */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11825 /* xvdiv.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11833 /* xvdiv.hu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11842 /* xvdiv.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11850 /* xvdiv.wu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11859 /* xvexth.d.w */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11870 /* xvexth.du.wu */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11883 /* xvexth.h.b */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11894 /* xvexth.hu.bu */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11907 /* xvexth.q.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11918 /* xvexth.qu.du */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11931 /* xvexth.w.h */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11942 /* xvexth.wu.hu */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11955 /* xvextl.q.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11966 /* xvextl.qu.du */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11979 /* xvextrins.b */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 11991 /* xvextrins.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12003 /* xvextrins.h */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12015 /* xvextrins.w */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12027 /* xvfadd.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12036 /* xvfadd.s */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12045 /* xvfclass.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12056 /* xvfclass.s */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12067 /* xvfcmp.caf.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12080 /* xvfcmp.caf.s */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12093 /* xvfcmp.ceq.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12106 /* xvfcmp.ceq.s */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12119 /* xvfcmp.cle.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12132 /* xvfcmp.cle.s */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12145 /* xvfcmp.clt.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12158 /* xvfcmp.clt.s */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12171 /* xvfcmp.cne.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12184 /* xvfcmp.cne.s */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12197 /* xvfcmp.cor.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12210 /* xvfcmp.cor.s */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12223 /* xvfcmp.cueq.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12237 /* xvfcmp.cueq.s */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12251 /* xvfcmp.cule.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12265 /* xvfcmp.cule.s */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12279 /* xvfcmp.cult.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12293 /* xvfcmp.cult.s */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12307 /* xvfcmp.cun.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12320 /* xvfcmp.cun.s */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12333 /* xvfcmp.cune.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12347 /* xvfcmp.cune.s */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12361 /* xvfcmp.saf.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12374 /* xvfcmp.saf.s */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12387 /* xvfcmp.seq.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12400 /* xvfcmp.seq.s */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12413 /* xvfcmp.sle.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12426 /* xvfcmp.sle.s */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12439 /* xvfcmp.slt.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12452 /* xvfcmp.slt.s */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12465 /* xvfcmp.sne.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12478 /* xvfcmp.sne.s */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12491 /* xvfcmp.sor.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12504 /* xvfcmp.sor.s */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12517 /* xvfcmp.sueq.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12531 /* xvfcmp.sueq.s */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12545 /* xvfcmp.sule.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12559 /* xvfcmp.sule.s */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12573 /* xvfcmp.sult.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12587 /* xvfcmp.sult.s */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12601 /* xvfcmp.sun.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12614 /* xvfcmp.sun.s */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12627 /* xvfcmp.sune.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12641 /* xvfcmp.sune.s */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12655 /* xvfcvt.h.s */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12666 /* xvfcvt.s.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12677 /* xvfcvth.d.s */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12689 /* xvfcvth.s.h */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12701 /* xvfcvtl.d.s */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12713 /* xvfcvtl.s.h */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12725 /* xvfdiv.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12734 /* xvfdiv.s */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12743 /* xvffint.d.l */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12755 /* xvffint.d.lu */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12768 /* xvffint.s.l */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12780 /* xvffint.s.w */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12792 /* xvffint.s.wu */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12805 /* xvffinth.d.w */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12818 /* xvffintl.d.w */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12831 /* xvflogb.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12841 /* xvflogb.s */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12851 /* xvfmadd.d */, 15 /* 0, 1, 2, 3 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12861 /* xvfmadd.s */, 15 /* 0, 1, 2, 3 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12871 /* xvfmax.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12880 /* xvfmax.s */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12889 /* xvfmaxa.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12899 /* xvfmaxa.s */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12909 /* xvfmin.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12918 /* xvfmin.s */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12927 /* xvfmina.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12937 /* xvfmina.s */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12947 /* xvfmsub.d */, 15 /* 0, 1, 2, 3 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12957 /* xvfmsub.s */, 15 /* 0, 1, 2, 3 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12967 /* xvfmul.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12976 /* xvfmul.s */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12985 /* xvfnmadd.d */, 15 /* 0, 1, 2, 3 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 12996 /* xvfnmadd.s */, 15 /* 0, 1, 2, 3 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13007 /* xvfnmsub.d */, 15 /* 0, 1, 2, 3 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13018 /* xvfnmsub.s */, 15 /* 0, 1, 2, 3 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13029 /* xvfrecip.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13040 /* xvfrecip.s */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13051 /* xvfrint.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13061 /* xvfrint.s */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13071 /* xvfrintrm.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13083 /* xvfrintrm.s */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13095 /* xvfrintrne.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13108 /* xvfrintrne.s */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13121 /* xvfrintrp.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13133 /* xvfrintrp.s */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13145 /* xvfrintrz.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13157 /* xvfrintrz.s */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13169 /* xvfrsqrt.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13180 /* xvfrsqrt.s */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13191 /* xvfrstp.b */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13201 /* xvfrstp.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13211 /* xvfrstpi.b */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13222 /* xvfrstpi.h */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13233 /* xvfsqrt.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13243 /* xvfsqrt.s */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13253 /* xvfsub.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13262 /* xvfsub.s */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13271 /* xvftint.l.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13283 /* xvftint.lu.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13296 /* xvftint.w.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13308 /* xvftint.w.s */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13320 /* xvftint.wu.s */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13333 /* xvftinth.l.s */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13346 /* xvftintl.l.s */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13359 /* xvftintrm.l.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13373 /* xvftintrm.w.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13387 /* xvftintrm.w.s */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13401 /* xvftintrmh.l.s */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13416 /* xvftintrml.l.s */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13431 /* xvftintrne.l.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13446 /* xvftintrne.w.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13461 /* xvftintrne.w.s */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13476 /* xvftintrneh.l.s */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13492 /* xvftintrnel.l.s */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13508 /* xvftintrp.l.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13522 /* xvftintrp.w.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13536 /* xvftintrp.w.s */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13550 /* xvftintrph.l.s */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13565 /* xvftintrpl.l.s */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13580 /* xvftintrz.l.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13594 /* xvftintrz.lu.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13609 /* xvftintrz.w.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13623 /* xvftintrz.w.s */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13637 /* xvftintrz.wu.s */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13652 /* xvftintrzh.l.s */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13667 /* xvftintrzl.l.s */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13682 /* xvhaddw.d.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13694 /* xvhaddw.du.wu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13708 /* xvhaddw.h.b */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13720 /* xvhaddw.hu.bu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13734 /* xvhaddw.q.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13746 /* xvhaddw.qu.du */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13760 /* xvhaddw.w.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13772 /* xvhaddw.wu.hu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13786 /* xvhseli.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13796 /* xvhsubw.d.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13808 /* xvhsubw.du.wu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13822 /* xvhsubw.h.b */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13834 /* xvhsubw.hu.bu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13848 /* xvhsubw.q.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13860 /* xvhsubw.qu.du */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13874 /* xvhsubw.w.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13886 /* xvhsubw.wu.hu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13900 /* xvilvh.b */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13909 /* xvilvh.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13918 /* xvilvh.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13927 /* xvilvh.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13936 /* xvilvl.b */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13945 /* xvilvl.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13954 /* xvilvl.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13963 /* xvilvl.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13972 /* xvinsgr2vr.d */, 2 /* 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 13972 /* xvinsgr2vr.d */, 1 /* 0 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13985 /* xvinsgr2vr.w */, 2 /* 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 13985 /* xvinsgr2vr.w */, 1 /* 0 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 13998 /* xvinsve0.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14009 /* xvinsve0.w */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14020 /* xvld */, 1 /* 0 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14020 /* xvld */, 2 /* 1 */, MCK_Mem, AMFBS_None }, ++ { 14025 /* xvldi */, 1 /* 0 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14025 /* xvldi */, 1 /* 0 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14025 /* xvldi */, 1 /* 0 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14025 /* xvldi */, 1 /* 0 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14025 /* xvldi */, 1 /* 0 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14031 /* xvldrepl.b */, 1 /* 0 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14031 /* xvldrepl.b */, 2 /* 1 */, MCK_Mem, AMFBS_None }, ++ { 14042 /* xvldrepl.d */, 1 /* 0 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14042 /* xvldrepl.d */, 2 /* 1 */, MCK_MemOffsetSimm9_3, AMFBS_None }, ++ { 14053 /* xvldrepl.h */, 1 /* 0 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14053 /* xvldrepl.h */, 2 /* 1 */, MCK_MemOffsetSimm11_1, AMFBS_None }, ++ { 14064 /* xvldrepl.w */, 1 /* 0 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14064 /* xvldrepl.w */, 2 /* 1 */, MCK_MemOffsetSimm10_2, AMFBS_None }, ++ { 14075 /* xvldx */, 2 /* 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 14075 /* xvldx */, 4 /* 2 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 14075 /* xvldx */, 1 /* 0 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14081 /* xvmadd.b */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14090 /* xvmadd.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14099 /* xvmadd.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14108 /* xvmadd.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14117 /* xvmaddwev.d.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14131 /* xvmaddwev.d.wu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14146 /* xvmaddwev.d.wu.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14163 /* xvmaddwev.h.b */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14177 /* xvmaddwev.h.bu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14192 /* xvmaddwev.h.bu.b */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14209 /* xvmaddwev.q.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14223 /* xvmaddwev.q.du */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14238 /* xvmaddwev.q.du.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14255 /* xvmaddwev.w.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14269 /* xvmaddwev.w.hu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14284 /* xvmaddwev.w.hu.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14301 /* xvmaddwod.d.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14315 /* xvmaddwod.d.wu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14330 /* xvmaddwod.d.wu.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14347 /* xvmaddwod.h.b */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14361 /* xvmaddwod.h.bu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14376 /* xvmaddwod.h.bu.b */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14393 /* xvmaddwod.q.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14407 /* xvmaddwod.q.du */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14422 /* xvmaddwod.q.du.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14439 /* xvmaddwod.w.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14453 /* xvmaddwod.w.hu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14468 /* xvmaddwod.w.hu.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14485 /* xvmax.b */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14493 /* xvmax.bu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14502 /* xvmax.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14510 /* xvmax.du */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14519 /* xvmax.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14527 /* xvmax.hu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14536 /* xvmax.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14544 /* xvmax.wu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14553 /* xvmaxi.b */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14562 /* xvmaxi.bu */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14572 /* xvmaxi.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14581 /* xvmaxi.du */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14591 /* xvmaxi.h */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14600 /* xvmaxi.hu */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14610 /* xvmaxi.w */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14619 /* xvmaxi.wu */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14629 /* xvmin.b */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14637 /* xvmin.bu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14646 /* xvmin.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14654 /* xvmin.du */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14663 /* xvmin.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14671 /* xvmin.hu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14680 /* xvmin.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14688 /* xvmin.wu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14697 /* xvmini.b */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14706 /* xvmini.bu */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14716 /* xvmini.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14725 /* xvmini.du */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14735 /* xvmini.h */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14744 /* xvmini.hu */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14754 /* xvmini.w */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14763 /* xvmini.wu */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14773 /* xvmod.b */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14781 /* xvmod.bu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14790 /* xvmod.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14798 /* xvmod.du */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14807 /* xvmod.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14815 /* xvmod.hu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14824 /* xvmod.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14832 /* xvmod.wu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14841 /* xvmskgez.b */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14852 /* xvmskltz.b */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14863 /* xvmskltz.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14874 /* xvmskltz.h */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14885 /* xvmskltz.w */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14896 /* xvmsknz.b */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14906 /* xvmsub.b */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14915 /* xvmsub.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14924 /* xvmsub.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14933 /* xvmsub.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14942 /* xvmuh.b */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14950 /* xvmuh.bu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14959 /* xvmuh.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14967 /* xvmuh.du */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14976 /* xvmuh.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14984 /* xvmuh.hu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 14993 /* xvmuh.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15001 /* xvmuh.wu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15010 /* xvmul.b */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15018 /* xvmul.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15026 /* xvmul.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15034 /* xvmul.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15042 /* xvmulwev.d.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15055 /* xvmulwev.d.wu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15069 /* xvmulwev.d.wu.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15085 /* xvmulwev.h.b */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15098 /* xvmulwev.h.bu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15112 /* xvmulwev.h.bu.b */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15128 /* xvmulwev.q.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15141 /* xvmulwev.q.du */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15155 /* xvmulwev.q.du.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15171 /* xvmulwev.w.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15184 /* xvmulwev.w.hu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15198 /* xvmulwev.w.hu.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15214 /* xvmulwod.d.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15227 /* xvmulwod.d.wu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15241 /* xvmulwod.d.wu.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15257 /* xvmulwod.h.b */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15270 /* xvmulwod.h.bu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15284 /* xvmulwod.h.bu.b */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15300 /* xvmulwod.q.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15313 /* xvmulwod.q.du */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15327 /* xvmulwod.q.du.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15343 /* xvmulwod.w.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15356 /* xvmulwod.w.hu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15370 /* xvmulwod.w.hu.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15386 /* xvneg.b */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15394 /* xvneg.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15402 /* xvneg.h */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15410 /* xvneg.w */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15418 /* xvnor.v */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15426 /* xvnori.b */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15435 /* xvor.v */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15442 /* xvori.b */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15450 /* xvorn.v */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15458 /* xvpackev.b */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15469 /* xvpackev.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15480 /* xvpackev.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15491 /* xvpackev.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15502 /* xvpackod.b */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15513 /* xvpackod.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15524 /* xvpackod.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15535 /* xvpackod.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15546 /* xvpcnt.b */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15555 /* xvpcnt.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15564 /* xvpcnt.h */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15573 /* xvpcnt.w */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15582 /* xvperm.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15591 /* xvpermi.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15601 /* xvpermi.q */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15611 /* xvpermi.w */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15621 /* xvpickev.b */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15632 /* xvpickev.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15643 /* xvpickev.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15654 /* xvpickev.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15665 /* xvpickod.b */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15676 /* xvpickod.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15687 /* xvpickod.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15698 /* xvpickod.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15709 /* xvpickve.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15720 /* xvpickve.w */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15731 /* xvpickve2gr.d */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 15731 /* xvpickve2gr.d */, 2 /* 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15745 /* xvpickve2gr.du */, 1 /* 0 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 15745 /* xvpickve2gr.du */, 2 /* 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15760 /* xvpickve2gr.w */, 1 /* 0 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 15760 /* xvpickve2gr.w */, 2 /* 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15774 /* xvpickve2gr.wu */, 1 /* 0 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 15774 /* xvpickve2gr.wu */, 2 /* 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15789 /* xvrepl128vei.b */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15804 /* xvrepl128vei.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15819 /* xvrepl128vei.h */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15834 /* xvrepl128vei.w */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15849 /* xvreplgr2vr.b */, 2 /* 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 15849 /* xvreplgr2vr.b */, 1 /* 0 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15863 /* xvreplgr2vr.d */, 2 /* 1 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 15863 /* xvreplgr2vr.d */, 1 /* 0 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15877 /* xvreplgr2vr.h */, 2 /* 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 15877 /* xvreplgr2vr.h */, 1 /* 0 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15891 /* xvreplgr2vr.w */, 2 /* 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 15891 /* xvreplgr2vr.w */, 1 /* 0 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15905 /* xvreplve.b */, 4 /* 2 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 15905 /* xvreplve.b */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15916 /* xvreplve.d */, 4 /* 2 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 15916 /* xvreplve.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15927 /* xvreplve.h */, 4 /* 2 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 15927 /* xvreplve.h */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15938 /* xvreplve.w */, 4 /* 2 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 15938 /* xvreplve.w */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15949 /* xvreplve0.b */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15961 /* xvreplve0.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15973 /* xvreplve0.h */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15985 /* xvreplve0.q */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 15997 /* xvreplve0.w */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16009 /* xvrotr.b */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16018 /* xvrotr.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16027 /* xvrotr.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16036 /* xvrotr.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16045 /* xvrotri.b */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16055 /* xvrotri.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16065 /* xvrotri.h */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16075 /* xvrotri.w */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16085 /* xvsadd.b */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16094 /* xvsadd.bu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16104 /* xvsadd.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16113 /* xvsadd.du */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16123 /* xvsadd.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16132 /* xvsadd.hu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16142 /* xvsadd.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16151 /* xvsadd.wu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16161 /* xvsat.b */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16169 /* xvsat.bu */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16178 /* xvsat.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16186 /* xvsat.du */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16195 /* xvsat.h */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16203 /* xvsat.hu */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16212 /* xvsat.w */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16220 /* xvsat.wu */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16229 /* xvseq.b */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16237 /* xvseq.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16245 /* xvseq.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16253 /* xvseq.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16261 /* xvseqi.b */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16270 /* xvseqi.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16279 /* xvseqi.h */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16288 /* xvseqi.w */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16297 /* xvsetallnez.b */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 16297 /* xvsetallnez.b */, 2 /* 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16311 /* xvsetallnez.d */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 16311 /* xvsetallnez.d */, 2 /* 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16325 /* xvsetallnez.h */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 16325 /* xvsetallnez.h */, 2 /* 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16339 /* xvsetallnez.w */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 16339 /* xvsetallnez.w */, 2 /* 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16353 /* xvsetanyeqz.b */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 16353 /* xvsetanyeqz.b */, 2 /* 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16367 /* xvsetanyeqz.d */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 16367 /* xvsetanyeqz.d */, 2 /* 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16381 /* xvsetanyeqz.h */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 16381 /* xvsetanyeqz.h */, 2 /* 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16395 /* xvsetanyeqz.w */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 16395 /* xvsetanyeqz.w */, 2 /* 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16409 /* xvseteqz.v */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 16409 /* xvseteqz.v */, 2 /* 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16420 /* xvsetnez.v */, 1 /* 0 */, MCK_FCFRAsmReg, AMFBS_None }, ++ { 16420 /* xvsetnez.v */, 2 /* 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16431 /* xvshuf.b */, 15 /* 0, 1, 2, 3 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16440 /* xvshuf.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16449 /* xvshuf.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16458 /* xvshuf.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16467 /* xvshuf4i.b */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16478 /* xvshuf4i.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16489 /* xvshuf4i.h */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16500 /* xvshuf4i.w */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16511 /* xvsigncov.b */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16523 /* xvsigncov.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16535 /* xvsigncov.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16547 /* xvsigncov.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16559 /* xvsle.b */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16567 /* xvsle.bu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16576 /* xvsle.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16584 /* xvsle.du */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16593 /* xvsle.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16601 /* xvsle.hu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16610 /* xvsle.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16618 /* xvsle.wu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16627 /* xvslei.b */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16636 /* xvslei.bu */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16646 /* xvslei.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16655 /* xvslei.du */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16665 /* xvslei.h */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16674 /* xvslei.hu */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16684 /* xvslei.w */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16693 /* xvslei.wu */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16703 /* xvsll.b */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16711 /* xvsll.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16719 /* xvsll.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16727 /* xvsll.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16735 /* xvslli.b */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16744 /* xvslli.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16753 /* xvslli.h */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16762 /* xvslli.w */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16771 /* xvsllwil.d.w */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16784 /* xvsllwil.du.wu */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16799 /* xvsllwil.h.b */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16812 /* xvsllwil.hu.bu */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16827 /* xvsllwil.w.h */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16840 /* xvsllwil.wu.hu */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16855 /* xvslt.b */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16863 /* xvslt.bu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16872 /* xvslt.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16880 /* xvslt.du */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16889 /* xvslt.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16897 /* xvslt.hu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16906 /* xvslt.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16914 /* xvslt.wu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16923 /* xvslti.b */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16932 /* xvslti.bu */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16942 /* xvslti.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16951 /* xvslti.du */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16961 /* xvslti.h */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16970 /* xvslti.hu */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16980 /* xvslti.w */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16989 /* xvslti.wu */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 16999 /* xvsra.b */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17007 /* xvsra.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17015 /* xvsra.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17023 /* xvsra.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17031 /* xvsrai.b */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17040 /* xvsrai.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17049 /* xvsrai.h */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17058 /* xvsrai.w */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17067 /* xvsran.b.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17078 /* xvsran.h.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17089 /* xvsran.w.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17100 /* xvsrani.b.h */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17112 /* xvsrani.d.q */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17124 /* xvsrani.h.w */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17136 /* xvsrani.w.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17148 /* xvsrar.b */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17157 /* xvsrar.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17166 /* xvsrar.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17175 /* xvsrar.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17184 /* xvsrari.b */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17194 /* xvsrari.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17204 /* xvsrari.h */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17214 /* xvsrari.w */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17224 /* xvsrarn.b.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17236 /* xvsrarn.h.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17248 /* xvsrarn.w.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17260 /* xvsrarni.b.h */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17273 /* xvsrarni.d.q */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17286 /* xvsrarni.h.w */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17299 /* xvsrarni.w.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17312 /* xvsrl.b */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17320 /* xvsrl.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17328 /* xvsrl.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17336 /* xvsrl.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17344 /* xvsrli.b */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17353 /* xvsrli.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17362 /* xvsrli.h */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17371 /* xvsrli.w */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17380 /* xvsrln.b.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17391 /* xvsrln.h.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17402 /* xvsrln.w.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17413 /* xvsrlni.b.h */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17425 /* xvsrlni.d.q */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17437 /* xvsrlni.h.w */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17449 /* xvsrlni.w.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17461 /* xvsrlr.b */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17470 /* xvsrlr.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17479 /* xvsrlr.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17488 /* xvsrlr.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17497 /* xvsrlri.b */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17507 /* xvsrlri.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17517 /* xvsrlri.h */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17527 /* xvsrlri.w */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17537 /* xvsrlrn.b.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17549 /* xvsrlrn.h.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17561 /* xvsrlrn.w.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17573 /* xvsrlrni.b.h */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17586 /* xvsrlrni.d.q */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17599 /* xvsrlrni.h.w */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17612 /* xvsrlrni.w.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17625 /* xvssran.b.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17637 /* xvssran.bu.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17650 /* xvssran.h.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17662 /* xvssran.hu.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17675 /* xvssran.w.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17687 /* xvssran.wu.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17700 /* xvssrani.b.h */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17713 /* xvssrani.bu.h */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17727 /* xvssrani.d.q */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17740 /* xvssrani.du.q */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17754 /* xvssrani.h.w */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17767 /* xvssrani.hu.w */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17781 /* xvssrani.w.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17794 /* xvssrani.wu.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17808 /* xvssrarn.b.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17821 /* xvssrarn.bu.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17835 /* xvssrarn.h.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17848 /* xvssrarn.hu.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17862 /* xvssrarn.w.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17875 /* xvssrarn.wu.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17889 /* xvssrarni.b.h */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17903 /* xvssrarni.bu.h */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17918 /* xvssrarni.d.q */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17932 /* xvssrarni.du.q */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17947 /* xvssrarni.h.w */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17961 /* xvssrarni.hu.w */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17976 /* xvssrarni.w.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 17990 /* xvssrarni.wu.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18005 /* xvssrln.b.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18017 /* xvssrln.bu.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18030 /* xvssrln.h.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18042 /* xvssrln.hu.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18055 /* xvssrln.w.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18067 /* xvssrln.wu.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18080 /* xvssrlni.b.h */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18093 /* xvssrlni.bu.h */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18107 /* xvssrlni.d.q */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18120 /* xvssrlni.du.q */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18134 /* xvssrlni.h.w */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18147 /* xvssrlni.hu.w */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18161 /* xvssrlni.w.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18174 /* xvssrlni.wu.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18188 /* xvssrlrn.b.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18201 /* xvssrlrn.bu.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18215 /* xvssrlrn.h.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18228 /* xvssrlrn.hu.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18242 /* xvssrlrn.w.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18255 /* xvssrlrn.wu.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18269 /* xvssrlrni.b.h */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18283 /* xvssrlrni.bu.h */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18298 /* xvssrlrni.d.q */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18312 /* xvssrlrni.du.q */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18327 /* xvssrlrni.h.w */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18341 /* xvssrlrni.hu.w */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18356 /* xvssrlrni.w.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18370 /* xvssrlrni.wu.d */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18385 /* xvssub.b */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18394 /* xvssub.bu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18404 /* xvssub.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18413 /* xvssub.du */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18423 /* xvssub.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18432 /* xvssub.hu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18442 /* xvssub.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18451 /* xvssub.wu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18461 /* xvst */, 1 /* 0 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18461 /* xvst */, 2 /* 1 */, MCK_MemOffsetSimm12, AMFBS_None }, ++ { 18466 /* xvstelm.b */, 2 /* 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 18466 /* xvstelm.b */, 1 /* 0 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18476 /* xvstelm.d */, 2 /* 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 18476 /* xvstelm.d */, 1 /* 0 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18486 /* xvstelm.h */, 2 /* 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 18486 /* xvstelm.h */, 1 /* 0 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18496 /* xvstelm.w */, 2 /* 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 18496 /* xvstelm.w */, 1 /* 0 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18506 /* xvstx */, 2 /* 1 */, MCK_GPR32AsmReg, AMFBS_None }, ++ { 18506 /* xvstx */, 4 /* 2 */, MCK_GPR64AsmReg, AMFBS_None }, ++ { 18506 /* xvstx */, 1 /* 0 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18512 /* xvsub.b */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18520 /* xvsub.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18528 /* xvsub.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18536 /* xvsub.q */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18544 /* xvsub.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18552 /* xvsubi.bu */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18562 /* xvsubi.du */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18572 /* xvsubi.hu */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18582 /* xvsubi.wu */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18592 /* xvsubwev.d.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18605 /* xvsubwev.d.wu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18619 /* xvsubwev.h.b */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18632 /* xvsubwev.h.bu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18646 /* xvsubwev.q.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18659 /* xvsubwev.q.du */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18673 /* xvsubwev.w.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18686 /* xvsubwev.w.hu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18700 /* xvsubwod.d.w */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18713 /* xvsubwod.d.wu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18727 /* xvsubwod.h.b */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18740 /* xvsubwod.h.bu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18754 /* xvsubwod.q.d */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18767 /* xvsubwod.q.du */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18781 /* xvsubwod.w.h */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18794 /* xvsubwod.w.hu */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18808 /* xvxor.v */, 7 /* 0, 1, 2 */, MCK_LASX256AsmReg, AMFBS_None }, ++ { 18816 /* xvxori.b */, 3 /* 0, 1 */, MCK_LASX256AsmReg, AMFBS_None }, ++}; ++ ++OperandMatchResultTy LoongArchAsmParser:: ++tryCustomParseOperand(OperandVector &Operands, ++ unsigned MCK) { ++ ++ switch(MCK) { ++ case MCK_FCFRAsmReg: ++ return parseAnyRegister(Operands); ++ case MCK_FCSRAsmReg: ++ return parseAnyRegister(Operands); ++ case MCK_FGR32AsmReg: ++ return parseAnyRegister(Operands); ++ case MCK_FGR64AsmReg: ++ return parseAnyRegister(Operands); ++ case MCK_GPR32AsmReg: ++ return parseAnyRegister(Operands); ++ case MCK_GPR64AsmReg: ++ return parseAnyRegister(Operands); ++ case MCK_LASX256AsmReg: ++ return parseAnyRegister(Operands); ++ case MCK_LSX128AsmReg: ++ return parseAnyRegister(Operands); ++ case MCK_AMem: ++ return parseAMemOperand(Operands); ++ case MCK_JumpTarget: ++ return parseJumpTarget(Operands); ++ case MCK_MemOffsetSimm10: ++ return parseMemOperand(Operands); ++ case MCK_MemOffsetSimm10_2: ++ return parseMemOperand(Operands); ++ case MCK_MemOffsetSimm11: ++ return parseMemOperand(Operands); ++ case MCK_MemOffsetSimm11_1: ++ return parseMemOperand(Operands); ++ case MCK_MemOffsetSimm12: ++ return parseMemOperand(Operands); ++ case MCK_MemOffsetSimm14: ++ return parseMemOperand(Operands); ++ case MCK_MemOffsetSimm14_2: ++ return parseMemOperand(Operands); ++ case MCK_MemOffsetSimm9: ++ return parseMemOperand(Operands); ++ case MCK_MemOffsetSimm9_3: ++ return parseMemOperand(Operands); ++ case MCK_MemOffsetSimmPtr: ++ return parseMemOperand(Operands); ++ case MCK_Mem: ++ return parseMemOperand(Operands); ++ default: ++ return MatchOperand_NoMatch; ++ } ++ return MatchOperand_NoMatch; ++} ++ ++OperandMatchResultTy LoongArchAsmParser:: ++MatchOperandParserImpl(OperandVector &Operands, ++ StringRef Mnemonic, ++ bool ParseForAllFeatures) { ++ // Get the current feature set. ++ const FeatureBitset &AvailableFeatures = getAvailableFeatures(); ++ ++ // Get the next operand index. ++ unsigned NextOpNum = Operands.size() - 1; ++ // Search the table. ++ auto MnemonicRange = ++ std::equal_range(std::begin(OperandMatchTable), std::end(OperandMatchTable), ++ Mnemonic, LessOpcodeOperand()); ++ ++ if (MnemonicRange.first == MnemonicRange.second) ++ return MatchOperand_NoMatch; ++ ++ for (const OperandMatchEntry *it = MnemonicRange.first, ++ *ie = MnemonicRange.second; it != ie; ++it) { ++ // equal_range guarantees that instruction mnemonic matches. ++ assert(Mnemonic == it->getMnemonic()); ++ ++ // check if the available features match ++ const FeatureBitset &RequiredFeatures = FeatureBitsets[it->RequiredFeaturesIdx]; ++ if (!ParseForAllFeatures && (AvailableFeatures & RequiredFeatures) != RequiredFeatures) ++ continue; ++ ++ // check if the operand in question has a custom parser. ++ if (!(it->OperandMask & (1 << NextOpNum))) ++ continue; ++ ++ // call custom parse method to handle the operand ++ OperandMatchResultTy Result = tryCustomParseOperand(Operands, it->Class); ++ if (Result != MatchOperand_NoMatch) ++ return Result; ++ } ++ ++ // Okay, we had no match. ++ return MatchOperand_NoMatch; ++} ++ ++#endif // GET_MATCHER_IMPLEMENTATION ++ ++ ++#ifdef GET_MNEMONIC_SPELL_CHECKER ++#undef GET_MNEMONIC_SPELL_CHECKER ++ ++static std::string LoongArchMnemonicSpellCheck(StringRef S, const FeatureBitset &FBS, unsigned VariantID) { ++ const unsigned MaxEditDist = 2; ++ std::vector Candidates; ++ StringRef Prev = ""; ++ ++ // Find the appropriate table for this asm variant. ++ const MatchEntry *Start, *End; ++ switch (VariantID) { ++ default: llvm_unreachable("invalid variant!"); ++ case 0: Start = std::begin(MatchTable0); End = std::end(MatchTable0); break; ++ } ++ ++ for (auto I = Start; I < End; I++) { ++ // Ignore unsupported instructions. ++ const FeatureBitset &RequiredFeatures = FeatureBitsets[I->RequiredFeaturesIdx]; ++ if ((FBS & RequiredFeatures) != RequiredFeatures) ++ continue; ++ ++ StringRef T = I->getMnemonic(); ++ // Avoid recomputing the edit distance for the same string. ++ if (T.equals(Prev)) ++ continue; ++ ++ Prev = T; ++ unsigned Dist = S.edit_distance(T, false, MaxEditDist); ++ if (Dist <= MaxEditDist) ++ Candidates.push_back(T); ++ } ++ ++ if (Candidates.empty()) ++ return ""; ++ ++ std::string Res = ", did you mean: "; ++ unsigned i = 0; ++ for( ; i < Candidates.size() - 1; i++) ++ Res += Candidates[i].str() + ", "; ++ return Res + Candidates[i].str() + "?"; ++} ++ ++#endif // GET_MNEMONIC_SPELL_CHECKER ++ +diff --git a/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenAsmMatcher.inc.d b/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenAsmMatcher.inc.d +new file mode 100644 +index 00000000000..3d2a1cf6981 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenAsmMatcher.inc.d +@@ -0,0 +1 @@ ++lib/Target/LoongArch/LoongArchGenAsmMatcher.inc: /mnt/wangqing/work/llvm-project/llvm/include/llvm/CodeGen/SDNodeProperties.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/CodeGen/ValueTypes.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/Intrinsics.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsAArch64.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsAMDGPU.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsARM.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsBPF.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsHexagon.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsLoongArch.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsMips.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsNVVM.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsPowerPC.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsRISCV.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsSystemZ.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsWebAssembly.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsX86.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsXCore.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/GenericOpcodes.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/GlobalISel/RegisterBank.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/GlobalISel/SelectionDAGCompat.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/GlobalISel/Target.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/Target.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetCallingConv.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetInstrPredicate.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetItinerary.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetPfmCounters.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetSchedule.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetSelectionDAG.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArch32InstrInfo.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchCallingConv.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchInstrFormats.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchInstrInfo.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchInstrInfoF.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchLASXInstrFormats.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchLASXInstrInfo.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchLSXInstrFormats.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchLSXInstrInfo.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchRegisterInfo.td +diff --git a/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenAsmWriter.inc b/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenAsmWriter.inc +new file mode 100644 +index 00000000000..ea33a3ab988 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenAsmWriter.inc +@@ -0,0 +1,6541 @@ ++/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\ ++|* *| ++|* Assembly Writer Source Fragment *| ++|* *| ++|* Automatically generated file, do not edit! *| ++|* *| ++\*===----------------------------------------------------------------------===*/ ++ ++/// printInstruction - This method is automatically generated by tablegen ++/// from the instruction set description. ++void LoongArchInstPrinter::printInstruction(const MCInst *MI, uint64_t Address, raw_ostream &O) { ++ static const char AsmStrs[] = { ++ /* 0 */ 'l', 'a', 9, 0, ++ /* 4 */ 'x', 'v', 'r', 'e', 'p', 'l', 'v', 'e', '0', '.', 'b', 9, 0, ++ /* 17 */ 'x', 'v', 'a', 'd', 'd', 'a', '.', 'b', 9, 0, ++ /* 27 */ 'x', 'v', 's', 'r', 'a', '.', 'b', 9, 0, ++ /* 36 */ 'x', 'v', 'm', 's', 'u', 'b', '.', 'b', 9, 0, ++ /* 46 */ 'x', 'v', 's', 's', 'u', 'b', '.', 'b', 9, 0, ++ /* 56 */ 'x', 'v', 's', 'u', 'b', '.', 'b', 9, 0, ++ /* 65 */ 'v', 'e', 'x', 't', '2', 'x', 'v', '.', 'd', '.', 'b', 9, 0, ++ /* 78 */ 'x', 'v', 'm', 'a', 'd', 'd', '.', 'b', 9, 0, ++ /* 88 */ 'x', 'v', 's', 'a', 'd', 'd', '.', 'b', 9, 0, ++ /* 98 */ 'x', 'v', 'a', 'd', 'd', '.', 'b', 9, 0, ++ /* 107 */ 'l', 'd', '.', 'b', 9, 0, ++ /* 113 */ 'x', 'v', 'p', 'a', 'c', 'k', 'o', 'd', '.', 'b', 9, 0, ++ /* 125 */ 'x', 'v', 'p', 'i', 'c', 'k', 'o', 'd', '.', 'b', 9, 0, ++ /* 137 */ 'x', 'v', 'm', 'o', 'd', '.', 'b', 9, 0, ++ /* 146 */ 'i', 'o', 'c', 's', 'r', 'r', 'd', '.', 'b', 9, 0, ++ /* 157 */ 'x', 'v', 'a', 'b', 's', 'd', '.', 'b', 9, 0, ++ /* 167 */ 'l', 'd', 'l', 'e', '.', 'b', 9, 0, ++ /* 175 */ 'x', 'v', 's', 'l', 'e', '.', 'b', 9, 0, ++ /* 184 */ 's', 't', 'l', 'e', '.', 'b', 9, 0, ++ /* 192 */ 'x', 'v', 'r', 'e', 'p', 'l', 'v', 'e', '.', 'b', 9, 0, ++ /* 204 */ 'x', 'v', 's', 'h', 'u', 'f', '.', 'b', 9, 0, ++ /* 214 */ 'x', 'v', 'n', 'e', 'g', '.', 'b', 9, 0, ++ /* 223 */ 'x', 'v', 'a', 'v', 'g', '.', 'b', 9, 0, ++ /* 232 */ 'x', 'v', 's', 'u', 'b', 'w', 'o', 'd', '.', 'h', '.', 'b', 9, 0, ++ /* 246 */ 'x', 'v', 'm', 'a', 'd', 'd', 'w', 'o', 'd', '.', 'h', '.', 'b', 9, 0, ++ /* 261 */ 'x', 'v', 'a', 'd', 'd', 'w', 'o', 'd', '.', 'h', '.', 'b', 9, 0, ++ /* 275 */ 'x', 'v', 'm', 'u', 'l', 'w', 'o', 'd', '.', 'h', '.', 'b', 9, 0, ++ /* 289 */ 'x', 'v', 'e', 'x', 't', 'h', '.', 'h', '.', 'b', 9, 0, ++ /* 301 */ 'x', 'v', 's', 'l', 'l', 'w', 'i', 'l', '.', 'h', '.', 'b', 9, 0, ++ /* 315 */ 'x', 'v', 's', 'u', 'b', 'w', 'e', 'v', '.', 'h', '.', 'b', 9, 0, ++ /* 329 */ 'x', 'v', 'm', 'a', 'd', 'd', 'w', 'e', 'v', '.', 'h', '.', 'b', 9, 0, ++ /* 344 */ 'x', 'v', 'a', 'd', 'd', 'w', 'e', 'v', '.', 'h', '.', 'b', 9, 0, ++ /* 358 */ 'x', 'v', 'm', 'u', 'l', 'w', 'e', 'v', '.', 'h', '.', 'b', 9, 0, ++ /* 372 */ 'v', 'e', 'x', 't', '2', 'x', 'v', '.', 'h', '.', 'b', 9, 0, ++ /* 385 */ 'x', 'v', 'h', 's', 'u', 'b', 'w', '.', 'h', '.', 'b', 9, 0, ++ /* 398 */ 'x', 'v', 'h', 'a', 'd', 'd', 'w', '.', 'h', '.', 'b', 9, 0, ++ /* 411 */ 'x', 'v', 'm', 'u', 'h', '.', 'b', 9, 0, ++ /* 420 */ 'x', 'v', 'i', 'l', 'v', 'h', '.', 'b', 9, 0, ++ /* 430 */ 'x', 'v', 's', 'h', 'u', 'f', '4', 'i', '.', 'b', 9, 0, ++ /* 442 */ 'x', 'v', 's', 'r', 'a', 'i', '.', 'b', 9, 0, ++ /* 452 */ 'x', 'v', 'a', 'n', 'd', 'i', '.', 'b', 9, 0, ++ /* 462 */ 'x', 'v', 's', 'l', 'e', 'i', '.', 'b', 9, 0, ++ /* 472 */ 'x', 'v', 'r', 'e', 'p', 'l', '1', '2', '8', 'v', 'e', 'i', '.', 'b', 9, 0, ++ /* 488 */ 'v', 'r', 'e', 'p', 'l', 'v', 'e', 'i', '.', 'b', 9, 0, ++ /* 500 */ 'x', 'v', 'b', 'i', 't', 's', 'e', 'l', 'i', '.', 'b', 9, 0, ++ /* 513 */ 'x', 'v', 's', 'l', 'l', 'i', '.', 'b', 9, 0, ++ /* 523 */ 'x', 'v', 's', 'r', 'l', 'i', '.', 'b', 9, 0, ++ /* 533 */ 'x', 'v', 'm', 'i', 'n', 'i', '.', 'b', 9, 0, ++ /* 543 */ 'x', 'v', 'f', 'r', 's', 't', 'p', 'i', '.', 'b', 9, 0, ++ /* 555 */ 'x', 'v', 's', 'e', 'q', 'i', '.', 'b', 9, 0, ++ /* 565 */ 'x', 'v', 's', 'r', 'a', 'r', 'i', '.', 'b', 9, 0, ++ /* 576 */ 'x', 'v', 'b', 'i', 't', 'c', 'l', 'r', 'i', '.', 'b', 9, 0, ++ /* 589 */ 'x', 'v', 's', 'r', 'l', 'r', 'i', '.', 'b', 9, 0, ++ /* 600 */ 'x', 'v', 'n', 'o', 'r', 'i', '.', 'b', 9, 0, ++ /* 610 */ 'x', 'v', 'o', 'r', 'i', '.', 'b', 9, 0, ++ /* 619 */ 'x', 'v', 'x', 'o', 'r', 'i', '.', 'b', 9, 0, ++ /* 629 */ 'x', 'v', 'r', 'o', 't', 'r', 'i', '.', 'b', 9, 0, ++ /* 640 */ 'x', 'v', 'b', 'i', 't', 's', 'e', 't', 'i', '.', 'b', 9, 0, ++ /* 653 */ 'x', 'v', 's', 'l', 't', 'i', '.', 'b', 9, 0, ++ /* 663 */ 'x', 'v', 'b', 'i', 't', 'r', 'e', 'v', 'i', '.', 'b', 9, 0, ++ /* 676 */ 'x', 'v', 'm', 'a', 'x', 'i', '.', 'b', 9, 0, ++ /* 686 */ 'x', 'v', 's', 'l', 'l', '.', 'b', 9, 0, ++ /* 695 */ 'x', 'v', 'l', 'd', 'r', 'e', 'p', 'l', '.', 'b', 9, 0, ++ /* 707 */ 'x', 'v', 's', 'r', 'l', '.', 'b', 9, 0, ++ /* 716 */ 'x', 'v', 'm', 'u', 'l', '.', 'b', 9, 0, ++ /* 725 */ 'x', 'v', 'i', 'l', 'v', 'l', '.', 'b', 9, 0, ++ /* 735 */ 'x', 'v', 's', 't', 'e', 'l', 'm', '.', 'b', 9, 0, ++ /* 746 */ 'x', 'v', 'm', 'i', 'n', '.', 'b', 9, 0, ++ /* 755 */ 'x', 'v', 'c', 'l', 'o', '.', 'b', 9, 0, ++ /* 764 */ 'x', 'v', 'f', 'r', 's', 't', 'p', '.', 'b', 9, 0, ++ /* 775 */ 'x', 'v', 's', 'e', 'q', '.', 'b', 9, 0, ++ /* 784 */ 'x', 'v', 's', 'r', 'a', 'r', '.', 'b', 9, 0, ++ /* 794 */ 'v', 'p', 'i', 'c', 'k', 'v', 'e', '2', 'g', 'r', '.', 'b', 9, 0, ++ /* 808 */ 'x', 'v', 'a', 'v', 'g', 'r', '.', 'b', 9, 0, ++ /* 818 */ 'x', 'v', 'b', 'i', 't', 'c', 'l', 'r', '.', 'b', 9, 0, ++ /* 830 */ 'x', 'v', 's', 'r', 'l', 'r', '.', 'b', 9, 0, ++ /* 840 */ 'x', 'v', 'r', 'o', 't', 'r', '.', 'b', 9, 0, ++ /* 850 */ 'x', 'v', 'r', 'e', 'p', 'l', 'g', 'r', '2', 'v', 'r', '.', 'b', 9, 0, ++ /* 865 */ 'v', 'i', 'n', 's', 'g', 'r', '2', 'v', 'r', '.', 'b', 9, 0, ++ /* 878 */ 'i', 'o', 'c', 's', 'r', 'w', 'r', '.', 'b', 9, 0, ++ /* 889 */ 'x', 'v', 'e', 'x', 't', 'r', 'i', 'n', 's', '.', 'b', 9, 0, ++ /* 902 */ 'x', 'v', 's', 'a', 't', '.', 'b', 9, 0, ++ /* 911 */ 'x', 'v', 'b', 'i', 't', 's', 'e', 't', '.', 'b', 9, 0, ++ /* 923 */ 'l', 'd', 'g', 't', '.', 'b', 9, 0, ++ /* 931 */ 's', 't', 'g', 't', '.', 'b', 9, 0, ++ /* 939 */ 'x', 'v', 's', 'l', 't', '.', 'b', 9, 0, ++ /* 948 */ 'x', 'v', 'p', 'c', 'n', 't', '.', 'b', 9, 0, ++ /* 958 */ 's', 't', '.', 'b', 9, 0, ++ /* 964 */ 'x', 'v', 'm', 'a', 'd', 'd', 'w', 'o', 'd', '.', 'h', '.', 'b', 'u', '.', 'b', 9, 0, ++ /* 982 */ 'x', 'v', 'a', 'd', 'd', 'w', 'o', 'd', '.', 'h', '.', 'b', 'u', '.', 'b', 9, 0, ++ /* 999 */ 'x', 'v', 'm', 'u', 'l', 'w', 'o', 'd', '.', 'h', '.', 'b', 'u', '.', 'b', 9, 0, ++ /* 1016 */ 'x', 'v', 'm', 'a', 'd', 'd', 'w', 'e', 'v', '.', 'h', '.', 'b', 'u', '.', 'b', 9, 0, ++ /* 1034 */ 'x', 'v', 'a', 'd', 'd', 'w', 'e', 'v', '.', 'h', '.', 'b', 'u', '.', 'b', 9, 0, ++ /* 1051 */ 'x', 'v', 'm', 'u', 'l', 'w', 'e', 'v', '.', 'h', '.', 'b', 'u', '.', 'b', 9, 0, ++ /* 1068 */ 'x', 'v', 'p', 'a', 'c', 'k', 'e', 'v', '.', 'b', 9, 0, ++ /* 1080 */ 'x', 'v', 'p', 'i', 'c', 'k', 'e', 'v', '.', 'b', 9, 0, ++ /* 1092 */ 'x', 'v', 'b', 'i', 't', 'r', 'e', 'v', '.', 'b', 9, 0, ++ /* 1104 */ 'x', 'v', 'd', 'i', 'v', '.', 'b', 9, 0, ++ /* 1113 */ 'x', 'v', 's', 'i', 'g', 'n', 'c', 'o', 'v', '.', 'b', 9, 0, ++ /* 1126 */ 'e', 'x', 't', '.', 'w', '.', 'b', 9, 0, ++ /* 1135 */ 'v', 'e', 'x', 't', '2', 'x', 'v', '.', 'w', '.', 'b', 9, 0, ++ /* 1148 */ 'x', 'v', 'm', 'a', 'x', '.', 'b', 9, 0, ++ /* 1157 */ 'l', 'd', 'x', '.', 'b', 9, 0, ++ /* 1164 */ 's', 't', 'x', '.', 'b', 9, 0, ++ /* 1171 */ 'x', 'v', 'm', 's', 'k', 'g', 'e', 'z', '.', 'b', 9, 0, ++ /* 1183 */ 'x', 'v', 's', 'e', 't', 'a', 'l', 'l', 'n', 'e', 'z', '.', 'b', 9, 0, ++ /* 1198 */ 'x', 'v', 'c', 'l', 'z', '.', 'b', 9, 0, ++ /* 1207 */ 'x', 'v', 'm', 's', 'k', 'n', 'z', '.', 'b', 9, 0, ++ /* 1218 */ 'x', 'v', 's', 'e', 't', 'a', 'n', 'y', 'e', 'q', 'z', '.', 'b', 9, 0, ++ /* 1233 */ 'x', 'v', 'm', 's', 'k', 'l', 't', 'z', '.', 'b', 9, 0, ++ /* 1245 */ 'b', 'i', 't', 'r', 'e', 'v', '.', '4', 'b', 9, 0, ++ /* 1256 */ 'b', 'i', 't', 'r', 'e', 'v', '.', '8', 'b', 9, 0, ++ /* 1267 */ 'i', 'n', 'v', 't', 'l', 'b', 9, 0, ++ /* 1275 */ 'x', 'v', 'r', 'e', 'p', 'l', 'v', 'e', '0', '.', 'd', 9, 0, ++ /* 1288 */ 'x', 'v', 'i', 'n', 's', 'v', 'e', '0', '.', 'd', 9, 0, ++ /* 1300 */ 'x', 'v', 'a', 'd', 'd', 'a', '.', 'd', 9, 0, ++ /* 1310 */ 'x', 'v', 'f', 'm', 'i', 'n', 'a', '.', 'd', 9, 0, ++ /* 1321 */ 'x', 'v', 's', 'r', 'a', '.', 'd', 9, 0, ++ /* 1330 */ 'x', 'v', 'f', 'm', 'a', 'x', 'a', '.', 'd', 9, 0, ++ /* 1341 */ 'a', 'm', 'a', 'd', 'd', '_', 'd', 'b', '.', 'd', 9, 0, ++ /* 1353 */ 'a', 'm', 'a', 'n', 'd', '_', 'd', 'b', '.', 'd', 9, 0, ++ /* 1365 */ 'a', 'm', 'm', 'i', 'n', '_', 'd', 'b', '.', 'd', 9, 0, ++ /* 1377 */ 'a', 'm', 's', 'w', 'a', 'p', '_', 'd', 'b', '.', 'd', 9, 0, ++ /* 1390 */ 'a', 'm', 'o', 'r', '_', 'd', 'b', '.', 'd', 9, 0, ++ /* 1401 */ 'a', 'm', 'x', 'o', 'r', '_', 'd', 'b', '.', 'd', 9, 0, ++ /* 1413 */ 'a', 'm', 'm', 'a', 'x', '_', 'd', 'b', '.', 'd', 9, 0, ++ /* 1425 */ 'f', 's', 'c', 'a', 'l', 'e', 'b', '.', 'd', 9, 0, ++ /* 1436 */ 'x', 'v', 'f', 'l', 'o', 'g', 'b', '.', 'd', 9, 0, ++ /* 1447 */ 'x', 'v', 'f', 's', 'u', 'b', '.', 'd', 9, 0, ++ /* 1457 */ 'x', 'v', 'f', 'm', 's', 'u', 'b', '.', 'd', 9, 0, ++ /* 1468 */ 'x', 'v', 'f', 'n', 'm', 's', 'u', 'b', '.', 'd', 9, 0, ++ /* 1480 */ 'x', 'v', 'm', 's', 'u', 'b', '.', 'd', 9, 0, ++ /* 1490 */ 'x', 'v', 's', 's', 'u', 'b', '.', 'd', 9, 0, ++ /* 1500 */ 'x', 'v', 's', 'u', 'b', '.', 'd', 9, 0, ++ /* 1509 */ 'r', 'e', 'v', 'b', '.', 'd', 9, 0, ++ /* 1517 */ 's', 'c', '.', 'd', 9, 0, ++ /* 1523 */ 'x', 'v', 'f', 'a', 'd', 'd', '.', 'd', 9, 0, ++ /* 1533 */ 'a', 'm', 'a', 'd', 'd', '.', 'd', 9, 0, ++ /* 1542 */ 'x', 'v', 'f', 'm', 'a', 'd', 'd', '.', 'd', 9, 0, ++ /* 1553 */ 'x', 'v', 'f', 'n', 'm', 'a', 'd', 'd', '.', 'd', 9, 0, ++ /* 1565 */ 'x', 'v', 'm', 'a', 'd', 'd', '.', 'd', 9, 0, ++ /* 1575 */ 'x', 'v', 's', 'a', 'd', 'd', '.', 'd', 9, 0, ++ /* 1585 */ 'x', 'v', 'a', 'd', 'd', '.', 'd', 9, 0, ++ /* 1594 */ 'f', 'l', 'd', '.', 'd', 9, 0, ++ /* 1601 */ 'a', 'm', 'a', 'n', 'd', '.', 'd', 9, 0, ++ /* 1610 */ 'x', 'v', 'p', 'a', 'c', 'k', 'o', 'd', '.', 'd', 9, 0, ++ /* 1622 */ 'x', 'v', 'p', 'i', 'c', 'k', 'o', 'd', '.', 'd', 9, 0, ++ /* 1634 */ 'x', 'v', 'm', 'o', 'd', '.', 'd', 9, 0, ++ /* 1643 */ 'i', 'o', 'c', 's', 'r', 'r', 'd', '.', 'd', 9, 0, ++ /* 1654 */ 'x', 'v', 'a', 'b', 's', 'd', '.', 'd', 9, 0, ++ /* 1664 */ 'x', 'v', 'f', 'c', 'm', 'p', '.', 'c', 'l', 'e', '.', 'd', 9, 0, ++ /* 1678 */ 'f', 'l', 'd', 'l', 'e', '.', 'd', 9, 0, ++ /* 1687 */ 'x', 'v', 'f', 'c', 'm', 'p', '.', 's', 'l', 'e', '.', 'd', 9, 0, ++ /* 1701 */ 'x', 'v', 's', 'l', 'e', '.', 'd', 9, 0, ++ /* 1710 */ 'a', 's', 'r', 't', 'l', 'e', '.', 'd', 9, 0, ++ /* 1720 */ 'f', 's', 't', 'l', 'e', '.', 'd', 9, 0, ++ /* 1729 */ 'x', 'v', 'f', 'c', 'm', 'p', '.', 'c', 'u', 'l', 'e', '.', 'd', 9, 0, ++ /* 1744 */ 'x', 'v', 'f', 'c', 'm', 'p', '.', 's', 'u', 'l', 'e', '.', 'd', 9, 0, ++ /* 1759 */ 'r', 'd', 't', 'i', 'm', 'e', '.', 'd', 9, 0, ++ /* 1769 */ 'x', 'v', 'f', 'c', 'm', 'p', '.', 'c', 'n', 'e', '.', 'd', 9, 0, ++ /* 1783 */ 'x', 'v', 'f', 'r', 'i', 'n', 't', 'r', 'n', 'e', '.', 'd', 9, 0, ++ /* 1797 */ 'x', 'v', 'f', 'c', 'm', 'p', '.', 's', 'n', 'e', '.', 'd', 9, 0, ++ /* 1811 */ 'x', 'v', 'f', 'c', 'm', 'p', '.', 'c', 'u', 'n', 'e', '.', 'd', 9, 0, ++ /* 1826 */ 'x', 'v', 'f', 'c', 'm', 'p', '.', 's', 'u', 'n', 'e', '.', 'd', 9, 0, ++ /* 1841 */ 'x', 'v', 'p', 'i', 'c', 'k', 'v', 'e', '.', 'd', 9, 0, ++ /* 1853 */ 'x', 'v', 'r', 'e', 'p', 'l', 'v', 'e', '.', 'd', 9, 0, ++ /* 1865 */ 'x', 'v', 'f', 'c', 'm', 'p', '.', 'c', 'a', 'f', '.', 'd', 9, 0, ++ /* 1879 */ 'x', 'v', 'f', 'c', 'm', 'p', '.', 's', 'a', 'f', '.', 'd', 9, 0, ++ /* 1893 */ 'x', 'v', 's', 'h', 'u', 'f', '.', 'd', 9, 0, ++ /* 1903 */ 'f', 'n', 'e', 'g', '.', 'd', 9, 0, ++ /* 1911 */ 'x', 'v', 'n', 'e', 'g', '.', 'd', 9, 0, ++ /* 1920 */ 'x', 'v', 'a', 'v', 'g', '.', 'd', 9, 0, ++ /* 1929 */ 'm', 'u', 'l', 'h', '.', 'd', 9, 0, ++ /* 1937 */ 'x', 'v', 'm', 'u', 'h', '.', 'd', 9, 0, ++ /* 1946 */ 'r', 'e', 'v', 'h', '.', 'd', 9, 0, ++ /* 1954 */ 'x', 'v', 'i', 'l', 'v', 'h', '.', 'd', 9, 0, ++ /* 1964 */ 'l', 'u', '3', '2', 'i', '.', 'd', 9, 0, ++ /* 1973 */ 'l', 'u', '5', '2', 'i', '.', 'd', 9, 0, ++ /* 1982 */ 'x', 'v', 's', 'h', 'u', 'f', '4', 'i', '.', 'd', 9, 0, ++ /* 1994 */ 'a', 'd', 'd', 'u', '1', '6', 'i', '.', 'd', 9, 0, ++ /* 2005 */ 'x', 'v', 's', 'r', 'a', 'i', '.', 'd', 9, 0, ++ /* 2015 */ 'a', 'd', 'd', 'i', '.', 'd', 9, 0, ++ /* 2023 */ 'x', 'v', 's', 'l', 'e', 'i', '.', 'd', 9, 0, ++ /* 2033 */ 'x', 'v', 'r', 'e', 'p', 'l', '1', '2', '8', 'v', 'e', 'i', '.', 'd', 9, 0, ++ /* 2049 */ 'v', 'r', 'e', 'p', 'l', 'v', 'e', 'i', '.', 'd', 9, 0, ++ /* 2061 */ 'x', 'v', 'h', 's', 'e', 'l', 'i', '.', 'd', 9, 0, ++ /* 2072 */ 'x', 'v', 's', 'l', 'l', 'i', '.', 'd', 9, 0, ++ /* 2082 */ 'x', 'v', 's', 'r', 'l', 'i', '.', 'd', 9, 0, ++ /* 2092 */ 'x', 'v', 'p', 'e', 'r', 'm', 'i', '.', 'd', 9, 0, ++ /* 2103 */ 'x', 'v', 'm', 'i', 'n', 'i', '.', 'd', 9, 0, ++ /* 2113 */ 'x', 'v', 's', 'e', 'q', 'i', '.', 'd', 9, 0, ++ /* 2123 */ 'x', 'v', 's', 'r', 'a', 'r', 'i', '.', 'd', 9, 0, ++ /* 2134 */ 'x', 'v', 'b', 'i', 't', 'c', 'l', 'r', 'i', '.', 'd', 9, 0, ++ /* 2147 */ 'x', 'v', 's', 'r', 'l', 'r', 'i', '.', 'd', 9, 0, ++ /* 2158 */ 'x', 'v', 'r', 'o', 't', 'r', 'i', '.', 'd', 9, 0, ++ /* 2169 */ 'x', 'v', 'b', 'i', 't', 's', 'e', 't', 'i', '.', 'd', 9, 0, ++ /* 2182 */ 'x', 'v', 's', 'l', 't', 'i', '.', 'd', 9, 0, ++ /* 2192 */ 'x', 'v', 'b', 'i', 't', 'r', 'e', 'v', 'i', '.', 'd', 9, 0, ++ /* 2205 */ 'x', 'v', 'm', 'a', 'x', 'i', '.', 'd', 9, 0, ++ /* 2215 */ 'b', 'y', 't', 'e', 'p', 'i', 'c', 'k', '.', 'd', 9, 0, ++ /* 2227 */ 'b', 's', 't', 'r', 'p', 'i', 'c', 'k', '.', 'd', 9, 0, ++ /* 2239 */ 'x', 'v', 'f', 't', 'i', 'n', 't', 'r', 'n', 'e', '.', 'l', '.', 'd', 9, 0, ++ /* 2255 */ 'x', 'v', 'f', 't', 'i', 'n', 't', 'r', 'm', '.', 'l', '.', 'd', 9, 0, ++ /* 2270 */ 'x', 'v', 'f', 't', 'i', 'n', 't', 'r', 'p', '.', 'l', '.', 'd', 9, 0, ++ /* 2285 */ 'x', 'v', 'f', 't', 'i', 'n', 't', '.', 'l', '.', 'd', 9, 0, ++ /* 2298 */ 'x', 'v', 'f', 't', 'i', 'n', 't', 'r', 'z', '.', 'l', '.', 'd', 9, 0, ++ /* 2313 */ 'x', 'v', 's', 'l', 'l', '.', 'd', 9, 0, ++ /* 2322 */ 'x', 'v', 'l', 'd', 'r', 'e', 'p', 'l', '.', 'd', 9, 0, ++ /* 2334 */ 'x', 'v', 's', 'r', 'l', '.', 'd', 9, 0, ++ /* 2343 */ 'a', 'l', 's', 'l', '.', 'd', 9, 0, ++ /* 2351 */ 'x', 'v', 'f', 'm', 'u', 'l', '.', 'd', 9, 0, ++ /* 2361 */ 'x', 'v', 'm', 'u', 'l', '.', 'd', 9, 0, ++ /* 2370 */ 'x', 'v', 'i', 'l', 'v', 'l', '.', 'd', 9, 0, ++ /* 2380 */ 'x', 'v', 's', 't', 'e', 'l', 'm', '.', 'd', 9, 0, ++ /* 2391 */ 'x', 'v', 'f', 'r', 'i', 'n', 't', 'r', 'm', '.', 'd', 9, 0, ++ /* 2404 */ 'f', 'c', 'o', 'p', 'y', 's', 'i', 'g', 'n', '.', 'd', 9, 0, ++ /* 2417 */ 'x', 'v', 'f', 'm', 'i', 'n', '.', 'd', 9, 0, ++ /* 2427 */ 'a', 'm', 'm', 'i', 'n', '.', 'd', 9, 0, ++ /* 2436 */ 'x', 'v', 'm', 'i', 'n', '.', 'd', 9, 0, ++ /* 2445 */ 'x', 'v', 'f', 'c', 'm', 'p', '.', 'c', 'u', 'n', '.', 'd', 9, 0, ++ /* 2459 */ 'x', 'v', 'f', 'c', 'm', 'p', '.', 's', 'u', 'n', '.', 'd', 9, 0, ++ /* 2473 */ 'x', 'v', 'c', 'l', 'o', '.', 'd', 9, 0, ++ /* 2482 */ 'c', 't', 'o', '.', 'd', 9, 0, ++ /* 2489 */ 'a', 'm', 's', 'w', 'a', 'p', '.', 'd', 9, 0, ++ /* 2499 */ 'x', 'v', 'f', 'r', 'e', 'c', 'i', 'p', '.', 'd', 9, 0, ++ /* 2511 */ 'x', 'v', 'f', 'r', 'i', 'n', 't', 'r', 'p', '.', 'd', 9, 0, ++ /* 2524 */ 'x', 'v', 's', 'u', 'b', 'w', 'o', 'd', '.', 'q', '.', 'd', 9, 0, ++ /* 2538 */ 'x', 'v', 'm', 'a', 'd', 'd', 'w', 'o', 'd', '.', 'q', '.', 'd', 9, 0, ++ /* 2553 */ 'x', 'v', 'a', 'd', 'd', 'w', 'o', 'd', '.', 'q', '.', 'd', 9, 0, ++ /* 2567 */ 'x', 'v', 'm', 'u', 'l', 'w', 'o', 'd', '.', 'q', '.', 'd', 9, 0, ++ /* 2581 */ 'x', 'v', 'e', 'x', 't', 'h', '.', 'q', '.', 'd', 9, 0, ++ /* 2593 */ 'x', 'v', 'e', 'x', 't', 'l', '.', 'q', '.', 'd', 9, 0, ++ /* 2605 */ 'x', 'v', 's', 'u', 'b', 'w', 'e', 'v', '.', 'q', '.', 'd', 9, 0, ++ /* 2619 */ 'x', 'v', 'm', 'a', 'd', 'd', 'w', 'e', 'v', '.', 'q', '.', 'd', 9, 0, ++ /* 2634 */ 'x', 'v', 'a', 'd', 'd', 'w', 'e', 'v', '.', 'q', '.', 'd', 9, 0, ++ /* 2648 */ 'x', 'v', 'm', 'u', 'l', 'w', 'e', 'v', '.', 'q', '.', 'd', 9, 0, ++ /* 2662 */ 'x', 'v', 'h', 's', 'u', 'b', 'w', '.', 'q', '.', 'd', 9, 0, ++ /* 2675 */ 'x', 'v', 'h', 'a', 'd', 'd', 'w', '.', 'q', '.', 'd', 9, 0, ++ /* 2688 */ 'x', 'v', 'f', 'c', 'm', 'p', '.', 'c', 'e', 'q', '.', 'd', 9, 0, ++ /* 2702 */ 'x', 'v', 'f', 'c', 'm', 'p', '.', 's', 'e', 'q', '.', 'd', 9, 0, ++ /* 2716 */ 'x', 'v', 's', 'e', 'q', '.', 'd', 9, 0, ++ /* 2725 */ 'x', 'v', 'f', 'c', 'm', 'p', '.', 'c', 'u', 'e', 'q', '.', 'd', 9, 0, ++ /* 2740 */ 'x', 'v', 'f', 'c', 'm', 'p', '.', 's', 'u', 'e', 'q', '.', 'd', 9, 0, ++ /* 2755 */ 'x', 'v', 's', 'r', 'a', 'r', '.', 'd', 9, 0, ++ /* 2765 */ 'm', 'o', 'v', 'g', 'r', '2', 'f', 'r', '.', 'd', 9, 0, ++ /* 2777 */ 'x', 'v', 'p', 'i', 'c', 'k', 'v', 'e', '2', 'g', 'r', '.', 'd', 9, 0, ++ /* 2792 */ 'm', 'o', 'v', 'f', 'r', '2', 'g', 'r', '.', 'd', 9, 0, ++ /* 2804 */ 'x', 'v', 'a', 'v', 'g', 'r', '.', 'd', 9, 0, ++ /* 2814 */ 'x', 'v', 'b', 'i', 't', 'c', 'l', 'r', '.', 'd', 9, 0, ++ /* 2826 */ 'x', 'v', 's', 'r', 'l', 'r', '.', 'd', 9, 0, ++ /* 2836 */ 'x', 'v', 'f', 'c', 'm', 'p', '.', 'c', 'o', 'r', '.', 'd', 9, 0, ++ /* 2850 */ 'a', 'm', 'o', 'r', '.', 'd', 9, 0, ++ /* 2858 */ 'x', 'v', 'f', 'c', 'm', 'p', '.', 's', 'o', 'r', '.', 'd', 9, 0, ++ /* 2872 */ 'a', 'm', 'x', 'o', 'r', '.', 'd', 9, 0, ++ /* 2881 */ 'x', 'v', 'r', 'o', 't', 'r', '.', 'd', 9, 0, ++ /* 2891 */ 'l', 'd', 'p', 't', 'r', '.', 'd', 9, 0, ++ /* 2900 */ 's', 't', 'p', 't', 'r', '.', 'd', 9, 0, ++ /* 2909 */ 'x', 'v', 'r', 'e', 'p', 'l', 'g', 'r', '2', 'v', 'r', '.', 'd', 9, 0, ++ /* 2924 */ 'x', 'v', 'i', 'n', 's', 'g', 'r', '2', 'v', 'r', '.', 'd', 9, 0, ++ /* 2938 */ 'i', 'o', 'c', 's', 'r', 'w', 'r', '.', 'd', 9, 0, ++ /* 2949 */ 'x', 'v', 'f', 'c', 'v', 't', '.', 's', '.', 'd', 9, 0, ++ /* 2961 */ 'f', 'a', 'b', 's', '.', 'd', 9, 0, ++ /* 2969 */ 'b', 's', 't', 'r', 'i', 'n', 's', '.', 'd', 9, 0, ++ /* 2980 */ 'x', 'v', 'e', 'x', 't', 'r', 'i', 'n', 's', '.', 'd', 9, 0, ++ /* 2993 */ 'x', 'v', 'f', 'c', 'l', 'a', 's', 's', '.', 'd', 9, 0, ++ /* 3005 */ 'x', 'v', 's', 'a', 't', '.', 'd', 9, 0, ++ /* 3014 */ 'x', 'v', 'b', 'i', 't', 's', 'e', 't', '.', 'd', 9, 0, ++ /* 3026 */ 'f', 'l', 'd', 'g', 't', '.', 'd', 9, 0, ++ /* 3035 */ 'a', 's', 'r', 't', 'g', 't', '.', 'd', 9, 0, ++ /* 3045 */ 'f', 's', 't', 'g', 't', '.', 'd', 9, 0, ++ /* 3054 */ 'x', 'v', 'f', 'c', 'm', 'p', '.', 'c', 'l', 't', '.', 'd', 9, 0, ++ /* 3068 */ 'x', 'v', 'f', 'c', 'm', 'p', '.', 's', 'l', 't', '.', 'd', 9, 0, ++ /* 3082 */ 'x', 'v', 's', 'l', 't', '.', 'd', 9, 0, ++ /* 3091 */ 'x', 'v', 'f', 'c', 'm', 'p', '.', 'c', 'u', 'l', 't', '.', 'd', 9, 0, ++ /* 3106 */ 'x', 'v', 'f', 'c', 'm', 'p', '.', 's', 'u', 'l', 't', '.', 'd', 9, 0, ++ /* 3121 */ 'x', 'v', 'p', 'c', 'n', 't', '.', 'd', 9, 0, ++ /* 3131 */ 'x', 'v', 'f', 'r', 'i', 'n', 't', '.', 'd', 9, 0, ++ /* 3142 */ 'x', 'v', 'f', 's', 'q', 'r', 't', '.', 'd', 9, 0, ++ /* 3153 */ 'x', 'v', 'f', 'r', 's', 'q', 'r', 't', '.', 'd', 9, 0, ++ /* 3165 */ 'f', 's', 't', '.', 'd', 9, 0, ++ /* 3172 */ 'x', 'v', 'm', 'a', 'd', 'd', 'w', 'o', 'd', '.', 'q', '.', 'd', 'u', '.', 'd', 9, 0, ++ /* 3190 */ 'x', 'v', 'a', 'd', 'd', 'w', 'o', 'd', '.', 'q', '.', 'd', 'u', '.', 'd', 9, 0, ++ /* 3207 */ 'x', 'v', 'm', 'u', 'l', 'w', 'o', 'd', '.', 'q', '.', 'd', 'u', '.', 'd', 9, 0, ++ /* 3224 */ 'x', 'v', 'm', 'a', 'd', 'd', 'w', 'e', 'v', '.', 'q', '.', 'd', 'u', '.', 'd', 9, 0, ++ /* 3242 */ 'x', 'v', 'a', 'd', 'd', 'w', 'e', 'v', '.', 'q', '.', 'd', 'u', '.', 'd', 9, 0, ++ /* 3259 */ 'x', 'v', 'm', 'u', 'l', 'w', 'e', 'v', '.', 'q', '.', 'd', 'u', '.', 'd', 9, 0, ++ /* 3276 */ 'x', 'v', 'f', 't', 'i', 'n', 't', '.', 'l', 'u', '.', 'd', 9, 0, ++ /* 3290 */ 'x', 'v', 'f', 't', 'i', 'n', 't', 'r', 'z', '.', 'l', 'u', '.', 'd', 9, 0, ++ /* 3306 */ 'x', 'v', 's', 's', 'r', 'a', 'n', 'i', '.', 'w', 'u', '.', 'd', 9, 0, ++ /* 3321 */ 'x', 'v', 's', 's', 'r', 'l', 'n', 'i', '.', 'w', 'u', '.', 'd', 9, 0, ++ /* 3336 */ 'x', 'v', 's', 's', 'r', 'a', 'r', 'n', 'i', '.', 'w', 'u', '.', 'd', 9, 0, ++ /* 3352 */ 'x', 'v', 's', 's', 'r', 'l', 'r', 'n', 'i', '.', 'w', 'u', '.', 'd', 9, 0, ++ /* 3368 */ 'x', 'v', 's', 's', 'r', 'a', 'n', '.', 'w', 'u', '.', 'd', 9, 0, ++ /* 3382 */ 'x', 'v', 's', 's', 'r', 'l', 'n', '.', 'w', 'u', '.', 'd', 9, 0, ++ /* 3396 */ 'x', 'v', 's', 's', 'r', 'a', 'r', 'n', '.', 'w', 'u', '.', 'd', 9, 0, ++ /* 3411 */ 'x', 'v', 's', 's', 'r', 'l', 'r', 'n', '.', 'w', 'u', '.', 'd', 9, 0, ++ /* 3426 */ 'x', 'v', 'p', 'a', 'c', 'k', 'e', 'v', '.', 'd', 9, 0, ++ /* 3438 */ 'x', 'v', 'p', 'i', 'c', 'k', 'e', 'v', '.', 'd', 9, 0, ++ /* 3450 */ 'x', 'v', 'b', 'i', 't', 'r', 'e', 'v', '.', 'd', 9, 0, ++ /* 3462 */ 'x', 'v', 'f', 'd', 'i', 'v', '.', 'd', 9, 0, ++ /* 3472 */ 'x', 'v', 'd', 'i', 'v', '.', 'd', 9, 0, ++ /* 3481 */ 'x', 'v', 's', 'i', 'g', 'n', 'c', 'o', 'v', '.', 'd', 9, 0, ++ /* 3494 */ 'f', 'm', 'o', 'v', '.', 'd', 9, 0, ++ /* 3502 */ 'x', 'v', 'f', 't', 'i', 'n', 't', 'r', 'n', 'e', '.', 'w', '.', 'd', 9, 0, ++ /* 3518 */ 'x', 'v', 's', 's', 'r', 'a', 'n', 'i', '.', 'w', '.', 'd', 9, 0, ++ /* 3532 */ 'x', 'v', 's', 'r', 'a', 'n', 'i', '.', 'w', '.', 'd', 9, 0, ++ /* 3545 */ 'x', 'v', 's', 's', 'r', 'l', 'n', 'i', '.', 'w', '.', 'd', 9, 0, ++ /* 3559 */ 'x', 'v', 's', 'r', 'l', 'n', 'i', '.', 'w', '.', 'd', 9, 0, ++ /* 3572 */ 'x', 'v', 's', 's', 'r', 'a', 'r', 'n', 'i', '.', 'w', '.', 'd', 9, 0, ++ /* 3587 */ 'x', 'v', 's', 'r', 'a', 'r', 'n', 'i', '.', 'w', '.', 'd', 9, 0, ++ /* 3601 */ 'x', 'v', 's', 's', 'r', 'l', 'r', 'n', 'i', '.', 'w', '.', 'd', 9, 0, ++ /* 3616 */ 'x', 'v', 's', 'r', 'l', 'r', 'n', 'i', '.', 'w', '.', 'd', 9, 0, ++ /* 3630 */ 'x', 'v', 'f', 't', 'i', 'n', 't', 'r', 'm', '.', 'w', '.', 'd', 9, 0, ++ /* 3645 */ 'x', 'v', 's', 's', 'r', 'a', 'n', '.', 'w', '.', 'd', 9, 0, ++ /* 3658 */ 'x', 'v', 's', 'r', 'a', 'n', '.', 'w', '.', 'd', 9, 0, ++ /* 3670 */ 'x', 'v', 's', 's', 'r', 'l', 'n', '.', 'w', '.', 'd', 9, 0, ++ /* 3683 */ 'x', 'v', 's', 'r', 'l', 'n', '.', 'w', '.', 'd', 9, 0, ++ /* 3695 */ 'x', 'v', 's', 's', 'r', 'a', 'r', 'n', '.', 'w', '.', 'd', 9, 0, ++ /* 3709 */ 'x', 'v', 's', 'r', 'a', 'r', 'n', '.', 'w', '.', 'd', 9, 0, ++ /* 3722 */ 'x', 'v', 's', 's', 'r', 'l', 'r', 'n', '.', 'w', '.', 'd', 9, 0, ++ /* 3736 */ 'x', 'v', 's', 'r', 'l', 'r', 'n', '.', 'w', '.', 'd', 9, 0, ++ /* 3749 */ 'x', 'v', 'f', 't', 'i', 'n', 't', 'r', 'p', '.', 'w', '.', 'd', 9, 0, ++ /* 3764 */ 'x', 'v', 'f', 't', 'i', 'n', 't', '.', 'w', '.', 'd', 9, 0, ++ /* 3777 */ 'x', 'v', 'f', 't', 'i', 'n', 't', 'r', 'z', '.', 'w', '.', 'd', 9, 0, ++ /* 3792 */ 'x', 'v', 'f', 'm', 'a', 'x', '.', 'd', 9, 0, ++ /* 3802 */ 'a', 'm', 'm', 'a', 'x', '.', 'd', 9, 0, ++ /* 3811 */ 'x', 'v', 'm', 'a', 'x', '.', 'd', 9, 0, ++ /* 3820 */ 'f', 'l', 'd', 'x', '.', 'd', 9, 0, ++ /* 3828 */ 'f', 's', 't', 'x', '.', 'd', 9, 0, ++ /* 3836 */ 'x', 'v', 's', 'e', 't', 'a', 'l', 'l', 'n', 'e', 'z', '.', 'd', 9, 0, ++ /* 3851 */ 'x', 'v', 'c', 'l', 'z', '.', 'd', 9, 0, ++ /* 3860 */ 'x', 'v', 's', 'e', 't', 'a', 'n', 'y', 'e', 'q', 'z', '.', 'd', 9, 0, ++ /* 3875 */ 'x', 'v', 'f', 'r', 'i', 'n', 't', 'r', 'z', '.', 'd', 9, 0, ++ /* 3888 */ 'c', 't', 'z', '.', 'd', 9, 0, ++ /* 3895 */ 'x', 'v', 'm', 's', 'k', 'l', 't', 'z', '.', 'd', 9, 0, ++ /* 3907 */ 'l', 'a', '.', 't', 'l', 's', '.', 'g', 'd', 9, 0, ++ /* 3918 */ 'l', 'a', '.', 't', 'l', 's', '.', 'l', 'd', 9, 0, ++ /* 3929 */ 'p', 'r', 'e', 'l', 'd', 9, 0, ++ /* 3936 */ 'x', 'v', 'l', 'd', 9, 0, ++ /* 3942 */ 'a', 'n', 'd', 9, 0, ++ /* 3947 */ 'c', 's', 'r', 'r', 'd', 9, 0, ++ /* 3954 */ 'b', 'g', 'e', 9, 0, ++ /* 3959 */ 'l', 'a', '.', 't', 'l', 's', '.', 'i', 'e', 9, 0, ++ /* 3970 */ 'l', 'a', '.', 't', 'l', 's', '.', 'l', 'e', 9, 0, ++ /* 3981 */ 'i', 'd', 'l', 'e', 9, 0, ++ /* 3987 */ 'b', 'n', 'e', 9, 0, ++ /* 3992 */ 'l', 'd', 'p', 't', 'e', 9, 0, ++ /* 3999 */ 'm', 'o', 'v', 'f', 'r', '2', 'c', 'f', 9, 0, ++ /* 4009 */ 'm', 'o', 'v', 'g', 'r', '2', 'c', 'f', 9, 0, ++ /* 4019 */ 'c', 'p', 'u', 'c', 'f', 'g', 9, 0, ++ /* 4027 */ 'c', 's', 'r', 'x', 'c', 'h', 'g', 9, 0, ++ /* 4036 */ 'x', 'v', 'r', 'e', 'p', 'l', 'v', 'e', '0', '.', 'h', 9, 0, ++ /* 4049 */ 'x', 'v', 'a', 'd', 'd', 'a', '.', 'h', 9, 0, ++ /* 4059 */ 'x', 'v', 's', 'r', 'a', '.', 'h', 9, 0, ++ /* 4068 */ 'x', 'v', 's', 's', 'r', 'a', 'n', 'i', '.', 'b', '.', 'h', 9, 0, ++ /* 4082 */ 'x', 'v', 's', 'r', 'a', 'n', 'i', '.', 'b', '.', 'h', 9, 0, ++ /* 4095 */ 'x', 'v', 's', 's', 'r', 'l', 'n', 'i', '.', 'b', '.', 'h', 9, 0, ++ /* 4109 */ 'x', 'v', 's', 'r', 'l', 'n', 'i', '.', 'b', '.', 'h', 9, 0, ++ /* 4122 */ 'x', 'v', 's', 's', 'r', 'a', 'r', 'n', 'i', '.', 'b', '.', 'h', 9, 0, ++ /* 4137 */ 'x', 'v', 's', 'r', 'a', 'r', 'n', 'i', '.', 'b', '.', 'h', 9, 0, ++ /* 4151 */ 'x', 'v', 's', 's', 'r', 'l', 'r', 'n', 'i', '.', 'b', '.', 'h', 9, 0, ++ /* 4166 */ 'x', 'v', 's', 'r', 'l', 'r', 'n', 'i', '.', 'b', '.', 'h', 9, 0, ++ /* 4180 */ 'x', 'v', 's', 's', 'r', 'a', 'n', '.', 'b', '.', 'h', 9, 0, ++ /* 4193 */ 'x', 'v', 's', 'r', 'a', 'n', '.', 'b', '.', 'h', 9, 0, ++ /* 4205 */ 'x', 'v', 's', 's', 'r', 'l', 'n', '.', 'b', '.', 'h', 9, 0, ++ /* 4218 */ 'x', 'v', 's', 'r', 'l', 'n', '.', 'b', '.', 'h', 9, 0, ++ /* 4230 */ 'x', 'v', 's', 's', 'r', 'a', 'r', 'n', '.', 'b', '.', 'h', 9, 0, ++ /* 4244 */ 'x', 'v', 's', 'r', 'a', 'r', 'n', '.', 'b', '.', 'h', 9, 0, ++ /* 4257 */ 'x', 'v', 's', 's', 'r', 'l', 'r', 'n', '.', 'b', '.', 'h', 9, 0, ++ /* 4271 */ 'x', 'v', 's', 'r', 'l', 'r', 'n', '.', 'b', '.', 'h', 9, 0, ++ /* 4284 */ 'x', 'v', 'm', 's', 'u', 'b', '.', 'h', 9, 0, ++ /* 4294 */ 'x', 'v', 's', 's', 'u', 'b', '.', 'h', 9, 0, ++ /* 4304 */ 'x', 'v', 's', 'u', 'b', '.', 'h', 9, 0, ++ /* 4313 */ 'v', 'e', 'x', 't', '2', 'x', 'v', '.', 'd', '.', 'h', 9, 0, ++ /* 4326 */ 'x', 'v', 'm', 'a', 'd', 'd', '.', 'h', 9, 0, ++ /* 4336 */ 'x', 'v', 's', 'a', 'd', 'd', '.', 'h', 9, 0, ++ /* 4346 */ 'x', 'v', 'a', 'd', 'd', '.', 'h', 9, 0, ++ /* 4355 */ 'l', 'd', '.', 'h', 9, 0, ++ /* 4361 */ 'x', 'v', 'p', 'a', 'c', 'k', 'o', 'd', '.', 'h', 9, 0, ++ /* 4373 */ 'x', 'v', 'p', 'i', 'c', 'k', 'o', 'd', '.', 'h', 9, 0, ++ /* 4385 */ 'x', 'v', 'm', 'o', 'd', '.', 'h', 9, 0, ++ /* 4394 */ 'i', 'o', 'c', 's', 'r', 'r', 'd', '.', 'h', 9, 0, ++ /* 4405 */ 'x', 'v', 'a', 'b', 's', 'd', '.', 'h', 9, 0, ++ /* 4415 */ 'l', 'd', 'l', 'e', '.', 'h', 9, 0, ++ /* 4423 */ 'x', 'v', 's', 'l', 'e', '.', 'h', 9, 0, ++ /* 4432 */ 's', 't', 'l', 'e', '.', 'h', 9, 0, ++ /* 4440 */ 'x', 'v', 'r', 'e', 'p', 'l', 'v', 'e', '.', 'h', 9, 0, ++ /* 4452 */ 'x', 'v', 's', 'h', 'u', 'f', '.', 'h', 9, 0, ++ /* 4462 */ 'x', 'v', 'n', 'e', 'g', '.', 'h', 9, 0, ++ /* 4471 */ 'x', 'v', 'a', 'v', 'g', '.', 'h', 9, 0, ++ /* 4480 */ 'x', 'v', 'm', 'u', 'h', '.', 'h', 9, 0, ++ /* 4489 */ 'x', 'v', 'i', 'l', 'v', 'h', '.', 'h', 9, 0, ++ /* 4499 */ 'x', 'v', 's', 'h', 'u', 'f', '4', 'i', '.', 'h', 9, 0, ++ /* 4511 */ 'x', 'v', 's', 'r', 'a', 'i', '.', 'h', 9, 0, ++ /* 4521 */ 'x', 'v', 's', 'l', 'e', 'i', '.', 'h', 9, 0, ++ /* 4531 */ 'x', 'v', 'r', 'e', 'p', 'l', '1', '2', '8', 'v', 'e', 'i', '.', 'h', 9, 0, ++ /* 4547 */ 'v', 'r', 'e', 'p', 'l', 'v', 'e', 'i', '.', 'h', 9, 0, ++ /* 4559 */ 'x', 'v', 's', 'l', 'l', 'i', '.', 'h', 9, 0, ++ /* 4569 */ 'x', 'v', 's', 'r', 'l', 'i', '.', 'h', 9, 0, ++ /* 4579 */ 'x', 'v', 'm', 'i', 'n', 'i', '.', 'h', 9, 0, ++ /* 4589 */ 'x', 'v', 'f', 'r', 's', 't', 'p', 'i', '.', 'h', 9, 0, ++ /* 4601 */ 'x', 'v', 's', 'e', 'q', 'i', '.', 'h', 9, 0, ++ /* 4611 */ 'x', 'v', 's', 'r', 'a', 'r', 'i', '.', 'h', 9, 0, ++ /* 4622 */ 'x', 'v', 'b', 'i', 't', 'c', 'l', 'r', 'i', '.', 'h', 9, 0, ++ /* 4635 */ 'x', 'v', 's', 'r', 'l', 'r', 'i', '.', 'h', 9, 0, ++ /* 4646 */ 'x', 'v', 'r', 'o', 't', 'r', 'i', '.', 'h', 9, 0, ++ /* 4657 */ 'x', 'v', 'b', 'i', 't', 's', 'e', 't', 'i', '.', 'h', 9, 0, ++ /* 4670 */ 'x', 'v', 's', 'l', 't', 'i', '.', 'h', 9, 0, ++ /* 4680 */ 'x', 'v', 'b', 'i', 't', 'r', 'e', 'v', 'i', '.', 'h', 9, 0, ++ /* 4693 */ 'x', 'v', 'm', 'a', 'x', 'i', '.', 'h', 9, 0, ++ /* 4703 */ 'x', 'v', 's', 'l', 'l', '.', 'h', 9, 0, ++ /* 4712 */ 'x', 'v', 'l', 'd', 'r', 'e', 'p', 'l', '.', 'h', 9, 0, ++ /* 4724 */ 'x', 'v', 's', 'r', 'l', '.', 'h', 9, 0, ++ /* 4733 */ 'x', 'v', 'm', 'u', 'l', '.', 'h', 9, 0, ++ /* 4742 */ 'x', 'v', 'i', 'l', 'v', 'l', '.', 'h', 9, 0, ++ /* 4752 */ 'x', 'v', 's', 't', 'e', 'l', 'm', '.', 'h', 9, 0, ++ /* 4763 */ 'x', 'v', 'm', 'i', 'n', '.', 'h', 9, 0, ++ /* 4772 */ 'x', 'v', 'c', 'l', 'o', '.', 'h', 9, 0, ++ /* 4781 */ 'x', 'v', 'f', 'r', 's', 't', 'p', '.', 'h', 9, 0, ++ /* 4792 */ 'x', 'v', 's', 'e', 'q', '.', 'h', 9, 0, ++ /* 4801 */ 'x', 'v', 's', 'r', 'a', 'r', '.', 'h', 9, 0, ++ /* 4811 */ 'v', 'p', 'i', 'c', 'k', 'v', 'e', '2', 'g', 'r', '.', 'h', 9, 0, ++ /* 4825 */ 'x', 'v', 'a', 'v', 'g', 'r', '.', 'h', 9, 0, ++ /* 4835 */ 'x', 'v', 'b', 'i', 't', 'c', 'l', 'r', '.', 'h', 9, 0, ++ /* 4847 */ 'x', 'v', 's', 'r', 'l', 'r', '.', 'h', 9, 0, ++ /* 4857 */ 'x', 'v', 'r', 'o', 't', 'r', '.', 'h', 9, 0, ++ /* 4867 */ 'x', 'v', 'r', 'e', 'p', 'l', 'g', 'r', '2', 'v', 'r', '.', 'h', 9, 0, ++ /* 4882 */ 'v', 'i', 'n', 's', 'g', 'r', '2', 'v', 'r', '.', 'h', 9, 0, ++ /* 4895 */ 'i', 'o', 'c', 's', 'r', 'w', 'r', '.', 'h', 9, 0, ++ /* 4906 */ 'x', 'v', 'f', 'c', 'v', 't', 'h', '.', 's', '.', 'h', 9, 0, ++ /* 4919 */ 'x', 'v', 'f', 'c', 'v', 't', 'l', '.', 's', '.', 'h', 9, 0, ++ /* 4932 */ 'x', 'v', 'e', 'x', 't', 'r', 'i', 'n', 's', '.', 'h', 9, 0, ++ /* 4945 */ 'x', 'v', 's', 'a', 't', '.', 'h', 9, 0, ++ /* 4954 */ 'x', 'v', 'b', 'i', 't', 's', 'e', 't', '.', 'h', 9, 0, ++ /* 4966 */ 'l', 'd', 'g', 't', '.', 'h', 9, 0, ++ /* 4974 */ 's', 't', 'g', 't', '.', 'h', 9, 0, ++ /* 4982 */ 'x', 'v', 's', 'l', 't', '.', 'h', 9, 0, ++ /* 4991 */ 'x', 'v', 'p', 'c', 'n', 't', '.', 'h', 9, 0, ++ /* 5001 */ 's', 't', '.', 'h', 9, 0, ++ /* 5007 */ 'x', 'v', 's', 's', 'r', 'a', 'n', 'i', '.', 'b', 'u', '.', 'h', 9, 0, ++ /* 5022 */ 'x', 'v', 's', 's', 'r', 'l', 'n', 'i', '.', 'b', 'u', '.', 'h', 9, 0, ++ /* 5037 */ 'x', 'v', 's', 's', 'r', 'a', 'r', 'n', 'i', '.', 'b', 'u', '.', 'h', 9, 0, ++ /* 5053 */ 'x', 'v', 's', 's', 'r', 'l', 'r', 'n', 'i', '.', 'b', 'u', '.', 'h', 9, 0, ++ /* 5069 */ 'x', 'v', 's', 's', 'r', 'a', 'n', '.', 'b', 'u', '.', 'h', 9, 0, ++ /* 5083 */ 'x', 'v', 's', 's', 'r', 'l', 'n', '.', 'b', 'u', '.', 'h', 9, 0, ++ /* 5097 */ 'x', 'v', 's', 's', 'r', 'a', 'r', 'n', '.', 'b', 'u', '.', 'h', 9, 0, ++ /* 5112 */ 'x', 'v', 's', 's', 'r', 'l', 'r', 'n', '.', 'b', 'u', '.', 'h', 9, 0, ++ /* 5127 */ 'x', 'v', 'm', 'a', 'd', 'd', 'w', 'o', 'd', '.', 'w', '.', 'h', 'u', '.', 'h', 9, 0, ++ /* 5145 */ 'x', 'v', 'a', 'd', 'd', 'w', 'o', 'd', '.', 'w', '.', 'h', 'u', '.', 'h', 9, 0, ++ /* 5162 */ 'x', 'v', 'm', 'u', 'l', 'w', 'o', 'd', '.', 'w', '.', 'h', 'u', '.', 'h', 9, 0, ++ /* 5179 */ 'x', 'v', 'm', 'a', 'd', 'd', 'w', 'e', 'v', '.', 'w', '.', 'h', 'u', '.', 'h', 9, 0, ++ /* 5197 */ 'x', 'v', 'a', 'd', 'd', 'w', 'e', 'v', '.', 'w', '.', 'h', 'u', '.', 'h', 9, 0, ++ /* 5214 */ 'x', 'v', 'm', 'u', 'l', 'w', 'e', 'v', '.', 'w', '.', 'h', 'u', '.', 'h', 9, 0, ++ /* 5231 */ 'x', 'v', 'p', 'a', 'c', 'k', 'e', 'v', '.', 'h', 9, 0, ++ /* 5243 */ 'x', 'v', 'p', 'i', 'c', 'k', 'e', 'v', '.', 'h', 9, 0, ++ /* 5255 */ 'x', 'v', 'b', 'i', 't', 'r', 'e', 'v', '.', 'h', 9, 0, ++ /* 5267 */ 'x', 'v', 'd', 'i', 'v', '.', 'h', 9, 0, ++ /* 5276 */ 'x', 'v', 's', 'i', 'g', 'n', 'c', 'o', 'v', '.', 'h', 9, 0, ++ /* 5289 */ 'x', 'v', 's', 'u', 'b', 'w', 'o', 'd', '.', 'w', '.', 'h', 9, 0, ++ /* 5303 */ 'x', 'v', 'm', 'a', 'd', 'd', 'w', 'o', 'd', '.', 'w', '.', 'h', 9, 0, ++ /* 5318 */ 'x', 'v', 'a', 'd', 'd', 'w', 'o', 'd', '.', 'w', '.', 'h', 9, 0, ++ /* 5332 */ 'x', 'v', 'm', 'u', 'l', 'w', 'o', 'd', '.', 'w', '.', 'h', 9, 0, ++ /* 5346 */ 'x', 'v', 'e', 'x', 't', 'h', '.', 'w', '.', 'h', 9, 0, ++ /* 5358 */ 'x', 'v', 's', 'l', 'l', 'w', 'i', 'l', '.', 'w', '.', 'h', 9, 0, ++ /* 5372 */ 'e', 'x', 't', '.', 'w', '.', 'h', 9, 0, ++ /* 5381 */ 'x', 'v', 's', 'u', 'b', 'w', 'e', 'v', '.', 'w', '.', 'h', 9, 0, ++ /* 5395 */ 'x', 'v', 'm', 'a', 'd', 'd', 'w', 'e', 'v', '.', 'w', '.', 'h', 9, 0, ++ /* 5410 */ 'x', 'v', 'a', 'd', 'd', 'w', 'e', 'v', '.', 'w', '.', 'h', 9, 0, ++ /* 5424 */ 'x', 'v', 'm', 'u', 'l', 'w', 'e', 'v', '.', 'w', '.', 'h', 9, 0, ++ /* 5438 */ 'v', 'e', 'x', 't', '2', 'x', 'v', '.', 'w', '.', 'h', 9, 0, ++ /* 5451 */ 'x', 'v', 'h', 's', 'u', 'b', 'w', '.', 'w', '.', 'h', 9, 0, ++ /* 5464 */ 'x', 'v', 'h', 'a', 'd', 'd', 'w', '.', 'w', '.', 'h', 9, 0, ++ /* 5477 */ 'x', 'v', 'm', 'a', 'x', '.', 'h', 9, 0, ++ /* 5486 */ 'l', 'd', 'x', '.', 'h', 9, 0, ++ /* 5493 */ 's', 't', 'x', '.', 'h', 9, 0, ++ /* 5500 */ 'x', 'v', 's', 'e', 't', 'a', 'l', 'l', 'n', 'e', 'z', '.', 'h', 9, 0, ++ /* 5515 */ 'x', 'v', 'c', 'l', 'z', '.', 'h', 9, 0, ++ /* 5524 */ 'x', 'v', 's', 'e', 't', 'a', 'n', 'y', 'e', 'q', 'z', '.', 'h', 9, 0, ++ /* 5539 */ 'x', 'v', 'm', 's', 'k', 'l', 't', 'z', '.', 'h', 9, 0, ++ /* 5551 */ 'r', 'e', 'v', 'b', '.', '2', 'h', 9, 0, ++ /* 5560 */ 'r', 'e', 'v', 'b', '.', '4', 'h', 9, 0, ++ /* 5569 */ 'p', 'c', 'a', 'l', 'a', 'u', '1', '2', 'i', 9, 0, ++ /* 5580 */ 'p', 'c', 'a', 'd', 'd', 'u', '1', '2', 'i', 9, 0, ++ /* 5591 */ 'p', 'c', 'a', 'd', 'd', 'u', '1', '8', 'i', 9, 0, ++ /* 5602 */ 'p', 'c', 'a', 'd', 'd', 'i', 9, 0, ++ /* 5610 */ 'x', 'v', 'l', 'd', 'i', 9, 0, ++ /* 5617 */ 'a', 'n', 'd', 'i', 9, 0, ++ /* 5623 */ 'x', 'o', 'r', 'i', 9, 0, ++ /* 5629 */ 's', 'l', 't', 'i', 9, 0, ++ /* 5635 */ 's', 'l', 't', 'u', 'i', 9, 0, ++ /* 5642 */ 'b', 'r', 'e', 'a', 'k', 9, 0, ++ /* 5649 */ 'x', 'v', 'f', 'f', 'i', 'n', 't', '.', 'd', '.', 'l', 9, 0, ++ /* 5662 */ 'x', 'v', 'f', 'f', 'i', 'n', 't', '.', 's', '.', 'l', 9, 0, ++ /* 5675 */ 'l', 'a', '.', 'g', 'l', 'o', 'b', 'a', 'l', 9, 0, ++ /* 5686 */ 'l', 'a', '.', 'l', 'o', 'c', 'a', 'l', 9, 0, ++ /* 5696 */ 'b', 'l', 9, 0, ++ /* 5700 */ 'd', 'b', 'c', 'l', 9, 0, ++ /* 5706 */ 'l', 'a', '.', 'p', 'c', 'r', 'e', 'l', 9, 0, ++ /* 5716 */ 'f', 's', 'e', 'l', 9, 0, ++ /* 5722 */ 'h', 'y', 'p', 'c', 'a', 'l', 'l', 9, 0, ++ /* 5731 */ 's', 'y', 's', 'c', 'a', 'l', 'l', 9, 0, ++ /* 5740 */ 'j', 'i', 'r', 'l', 9, 0, ++ /* 5746 */ 'a', 'n', 'd', 'n', 9, 0, ++ /* 5752 */ 'o', 'r', 'n', 9, 0, ++ /* 5757 */ 'c', 'a', 'c', 'o', 'p', 9, 0, ++ /* 5764 */ 'x', 'v', 'r', 'e', 'p', 'l', 'v', 'e', '0', '.', 'q', 9, 0, ++ /* 5777 */ 'x', 'v', 's', 'u', 'b', '.', 'q', 9, 0, ++ /* 5786 */ 'x', 'v', 's', 's', 'r', 'a', 'n', 'i', '.', 'd', '.', 'q', 9, 0, ++ /* 5800 */ 'x', 'v', 's', 'r', 'a', 'n', 'i', '.', 'd', '.', 'q', 9, 0, ++ /* 5813 */ 'x', 'v', 's', 's', 'r', 'l', 'n', 'i', '.', 'd', '.', 'q', 9, 0, ++ /* 5827 */ 'x', 'v', 's', 'r', 'l', 'n', 'i', '.', 'd', '.', 'q', 9, 0, ++ /* 5840 */ 'x', 'v', 's', 's', 'r', 'a', 'r', 'n', 'i', '.', 'd', '.', 'q', 9, 0, ++ /* 5855 */ 'x', 'v', 's', 'r', 'a', 'r', 'n', 'i', '.', 'd', '.', 'q', 9, 0, ++ /* 5869 */ 'x', 'v', 's', 's', 'r', 'l', 'r', 'n', 'i', '.', 'd', '.', 'q', 9, 0, ++ /* 5884 */ 'x', 'v', 's', 'r', 'l', 'r', 'n', 'i', '.', 'd', '.', 'q', 9, 0, ++ /* 5898 */ 'x', 'v', 'a', 'd', 'd', '.', 'q', 9, 0, ++ /* 5907 */ 'x', 'v', 'p', 'e', 'r', 'm', 'i', '.', 'q', 9, 0, ++ /* 5918 */ 'x', 'v', 's', 's', 'r', 'a', 'n', 'i', '.', 'd', 'u', '.', 'q', 9, 0, ++ /* 5933 */ 'x', 'v', 's', 's', 'r', 'l', 'n', 'i', '.', 'd', 'u', '.', 'q', 9, 0, ++ /* 5948 */ 'x', 'v', 's', 's', 'r', 'a', 'r', 'n', 'i', '.', 'd', 'u', '.', 'q', 9, 0, ++ /* 5964 */ 'x', 'v', 's', 's', 'r', 'l', 'r', 'n', 'i', '.', 'd', 'u', '.', 'q', 9, 0, ++ /* 5980 */ 'b', 'e', 'q', 9, 0, ++ /* 5985 */ 'd', 'b', 'a', 'r', 9, 0, ++ /* 5991 */ 'i', 'b', 'a', 'r', 9, 0, ++ /* 5997 */ 'm', 'o', 'v', 'c', 'f', '2', 'f', 'r', 9, 0, ++ /* 6007 */ 'm', 'o', 'v', 'c', 'f', '2', 'g', 'r', 9, 0, ++ /* 6017 */ 'm', 'o', 'v', 'f', 'c', 's', 'r', '2', 'g', 'r', 9, 0, ++ /* 6029 */ 'l', 'd', 'd', 'i', 'r', 9, 0, ++ /* 6036 */ 'n', 'o', 'r', 9, 0, ++ /* 6041 */ 'x', 'o', 'r', 9, 0, ++ /* 6046 */ 'm', 'o', 'v', 'g', 'r', '2', 'f', 'c', 's', 'r', 9, 0, ++ /* 6058 */ 'c', 's', 'r', 'w', 'r', 9, 0, ++ /* 6065 */ 'x', 'v', 'f', 'm', 'i', 'n', 'a', '.', 's', 9, 0, ++ /* 6076 */ 'x', 'v', 'f', 'm', 'a', 'x', 'a', '.', 's', 9, 0, ++ /* 6087 */ 'f', 's', 'c', 'a', 'l', 'e', 'b', '.', 's', 9, 0, ++ /* 6098 */ 'x', 'v', 'f', 'l', 'o', 'g', 'b', '.', 's', 9, 0, ++ /* 6109 */ 'x', 'v', 'f', 's', 'u', 'b', '.', 's', 9, 0, ++ /* 6119 */ 'x', 'v', 'f', 'm', 's', 'u', 'b', '.', 's', 9, 0, ++ /* 6130 */ 'x', 'v', 'f', 'n', 'm', 's', 'u', 'b', '.', 's', 9, 0, ++ /* 6142 */ 'x', 'v', 'f', 'c', 'v', 't', 'h', '.', 'd', '.', 's', 9, 0, ++ /* 6155 */ 'x', 'v', 'f', 'c', 'v', 't', 'l', '.', 'd', '.', 's', 9, 0, ++ /* 6168 */ 'f', 'c', 'v', 't', '.', 'd', '.', 's', 9, 0, ++ /* 6178 */ 'x', 'v', 'f', 'a', 'd', 'd', '.', 's', 9, 0, ++ /* 6188 */ 'x', 'v', 'f', 'm', 'a', 'd', 'd', '.', 's', 9, 0, ++ /* 6199 */ 'x', 'v', 'f', 'n', 'm', 'a', 'd', 'd', '.', 's', 9, 0, ++ /* 6211 */ 'f', 'l', 'd', '.', 's', 9, 0, ++ /* 6218 */ 'x', 'v', 'f', 'c', 'm', 'p', '.', 'c', 'l', 'e', '.', 's', 9, 0, ++ /* 6232 */ 'f', 'l', 'd', 'l', 'e', '.', 's', 9, 0, ++ /* 6241 */ 'x', 'v', 'f', 'c', 'm', 'p', '.', 's', 'l', 'e', '.', 's', 9, 0, ++ /* 6255 */ 'f', 's', 't', 'l', 'e', '.', 's', 9, 0, ++ /* 6264 */ 'x', 'v', 'f', 'c', 'm', 'p', '.', 'c', 'u', 'l', 'e', '.', 's', 9, 0, ++ /* 6279 */ 'x', 'v', 'f', 'c', 'm', 'p', '.', 's', 'u', 'l', 'e', '.', 's', 9, 0, ++ /* 6294 */ 'x', 'v', 'f', 'c', 'm', 'p', '.', 'c', 'n', 'e', '.', 's', 9, 0, ++ /* 6308 */ 'x', 'v', 'f', 'r', 'i', 'n', 't', 'r', 'n', 'e', '.', 's', 9, 0, ++ /* 6322 */ 'x', 'v', 'f', 'c', 'm', 'p', '.', 's', 'n', 'e', '.', 's', 9, 0, ++ /* 6336 */ 'x', 'v', 'f', 'c', 'm', 'p', '.', 'c', 'u', 'n', 'e', '.', 's', 9, 0, ++ /* 6351 */ 'x', 'v', 'f', 'c', 'm', 'p', '.', 's', 'u', 'n', 'e', '.', 's', 9, 0, ++ /* 6366 */ 'x', 'v', 'f', 'c', 'm', 'p', '.', 'c', 'a', 'f', '.', 's', 9, 0, ++ /* 6380 */ 'x', 'v', 'f', 'c', 'm', 'p', '.', 's', 'a', 'f', '.', 's', 9, 0, ++ /* 6394 */ 'f', 'n', 'e', 'g', '.', 's', 9, 0, ++ /* 6402 */ 'x', 'v', 'f', 'c', 'v', 't', '.', 'h', '.', 's', 9, 0, ++ /* 6414 */ 'f', 't', 'i', 'n', 't', 'r', 'n', 'e', '.', 'l', '.', 's', 9, 0, ++ /* 6428 */ 'x', 'v', 'f', 't', 'i', 'n', 't', 'r', 'n', 'e', 'h', '.', 'l', '.', 's', 9, 0, ++ /* 6445 */ 'x', 'v', 'f', 't', 'i', 'n', 't', 'r', 'm', 'h', '.', 'l', '.', 's', 9, 0, ++ /* 6461 */ 'x', 'v', 'f', 't', 'i', 'n', 't', 'r', 'p', 'h', '.', 'l', '.', 's', 9, 0, ++ /* 6477 */ 'x', 'v', 'f', 't', 'i', 'n', 't', 'h', '.', 'l', '.', 's', 9, 0, ++ /* 6491 */ 'x', 'v', 'f', 't', 'i', 'n', 't', 'r', 'z', 'h', '.', 'l', '.', 's', 9, 0, ++ /* 6507 */ 'x', 'v', 'f', 't', 'i', 'n', 't', 'r', 'n', 'e', 'l', '.', 'l', '.', 's', 9, 0, ++ /* 6524 */ 'x', 'v', 'f', 't', 'i', 'n', 't', 'r', 'm', 'l', '.', 'l', '.', 's', 9, 0, ++ /* 6540 */ 'x', 'v', 'f', 't', 'i', 'n', 't', 'r', 'p', 'l', '.', 'l', '.', 's', 9, 0, ++ /* 6556 */ 'x', 'v', 'f', 't', 'i', 'n', 't', 'l', '.', 'l', '.', 's', 9, 0, ++ /* 6570 */ 'x', 'v', 'f', 't', 'i', 'n', 't', 'r', 'z', 'l', '.', 'l', '.', 's', 9, 0, ++ /* 6586 */ 'f', 't', 'i', 'n', 't', 'r', 'm', '.', 'l', '.', 's', 9, 0, ++ /* 6599 */ 'f', 't', 'i', 'n', 't', 'r', 'p', '.', 'l', '.', 's', 9, 0, ++ /* 6612 */ 'f', 't', 'i', 'n', 't', '.', 'l', '.', 's', 9, 0, ++ /* 6623 */ 'f', 't', 'i', 'n', 't', 'r', 'z', '.', 'l', '.', 's', 9, 0, ++ /* 6636 */ 'x', 'v', 'f', 'm', 'u', 'l', '.', 's', 9, 0, ++ /* 6646 */ 'x', 'v', 'f', 'r', 'i', 'n', 't', 'r', 'm', '.', 's', 9, 0, ++ /* 6659 */ 'f', 'c', 'o', 'p', 'y', 's', 'i', 'g', 'n', '.', 's', 9, 0, ++ /* 6672 */ 'x', 'v', 'f', 'm', 'i', 'n', '.', 's', 9, 0, ++ /* 6682 */ 'x', 'v', 'f', 'c', 'm', 'p', '.', 'c', 'u', 'n', '.', 's', 9, 0, ++ /* 6696 */ 'x', 'v', 'f', 'c', 'm', 'p', '.', 's', 'u', 'n', '.', 's', 9, 0, ++ /* 6710 */ 'x', 'v', 'f', 'r', 'e', 'c', 'i', 'p', '.', 's', 9, 0, ++ /* 6722 */ 'x', 'v', 'f', 'r', 'i', 'n', 't', 'r', 'p', '.', 's', 9, 0, ++ /* 6735 */ 'x', 'v', 'f', 'c', 'm', 'p', '.', 'c', 'e', 'q', '.', 's', 9, 0, ++ /* 6749 */ 'x', 'v', 'f', 'c', 'm', 'p', '.', 's', 'e', 'q', '.', 's', 9, 0, ++ /* 6763 */ 'x', 'v', 'f', 'c', 'm', 'p', '.', 'c', 'u', 'e', 'q', '.', 's', 9, 0, ++ /* 6778 */ 'x', 'v', 'f', 'c', 'm', 'p', '.', 's', 'u', 'e', 'q', '.', 's', 9, 0, ++ /* 6793 */ 'm', 'o', 'v', 'f', 'r', 'h', '2', 'g', 'r', '.', 's', 9, 0, ++ /* 6806 */ 'm', 'o', 'v', 'f', 'r', '2', 'g', 'r', '.', 's', 9, 0, ++ /* 6818 */ 'x', 'v', 'f', 'c', 'm', 'p', '.', 'c', 'o', 'r', '.', 's', 9, 0, ++ /* 6832 */ 'x', 'v', 'f', 'c', 'm', 'p', '.', 's', 'o', 'r', '.', 's', 9, 0, ++ /* 6846 */ 'f', 'a', 'b', 's', '.', 's', 9, 0, ++ /* 6854 */ 'x', 'v', 'f', 'c', 'l', 'a', 's', 's', '.', 's', 9, 0, ++ /* 6866 */ 'f', 'l', 'd', 'g', 't', '.', 's', 9, 0, ++ /* 6875 */ 'f', 's', 't', 'g', 't', '.', 's', 9, 0, ++ /* 6884 */ 'x', 'v', 'f', 'c', 'm', 'p', '.', 'c', 'l', 't', '.', 's', 9, 0, ++ /* 6898 */ 'x', 'v', 'f', 'c', 'm', 'p', '.', 's', 'l', 't', '.', 's', 9, 0, ++ /* 6912 */ 'x', 'v', 'f', 'c', 'm', 'p', '.', 'c', 'u', 'l', 't', '.', 's', 9, 0, ++ /* 6927 */ 'x', 'v', 'f', 'c', 'm', 'p', '.', 's', 'u', 'l', 't', '.', 's', 9, 0, ++ /* 6942 */ 'x', 'v', 'f', 'r', 'i', 'n', 't', '.', 's', 9, 0, ++ /* 6953 */ 'x', 'v', 'f', 's', 'q', 'r', 't', '.', 's', 9, 0, ++ /* 6964 */ 'x', 'v', 'f', 'r', 's', 'q', 'r', 't', '.', 's', 9, 0, ++ /* 6976 */ 'f', 's', 't', '.', 's', 9, 0, ++ /* 6983 */ 'x', 'v', 'f', 't', 'i', 'n', 't', '.', 'w', 'u', '.', 's', 9, 0, ++ /* 6997 */ 'x', 'v', 'f', 't', 'i', 'n', 't', 'r', 'z', '.', 'w', 'u', '.', 's', 9, 0, ++ /* 7013 */ 'x', 'v', 'f', 'd', 'i', 'v', '.', 's', 9, 0, ++ /* 7023 */ 'f', 'm', 'o', 'v', '.', 's', 9, 0, ++ /* 7031 */ 'x', 'v', 'f', 't', 'i', 'n', 't', 'r', 'n', 'e', '.', 'w', '.', 's', 9, 0, ++ /* 7047 */ 'x', 'v', 'f', 't', 'i', 'n', 't', 'r', 'm', '.', 'w', '.', 's', 9, 0, ++ /* 7062 */ 'x', 'v', 'f', 't', 'i', 'n', 't', 'r', 'p', '.', 'w', '.', 's', 9, 0, ++ /* 7077 */ 'x', 'v', 'f', 't', 'i', 'n', 't', '.', 'w', '.', 's', 9, 0, ++ /* 7090 */ 'x', 'v', 'f', 't', 'i', 'n', 't', 'r', 'z', '.', 'w', '.', 's', 9, 0, ++ /* 7105 */ 'x', 'v', 'f', 'm', 'a', 'x', '.', 's', 9, 0, ++ /* 7115 */ 'f', 'l', 'd', 'x', '.', 's', 9, 0, ++ /* 7123 */ 'f', 's', 't', 'x', '.', 's', 9, 0, ++ /* 7131 */ 'x', 'v', 'f', 'r', 'i', 'n', 't', 'r', 'z', '.', 's', 9, 0, ++ /* 7144 */ 'b', 'l', 't', 9, 0, ++ /* 7149 */ 's', 'l', 't', 9, 0, ++ /* 7154 */ 'x', 'v', 's', 't', 9, 0, ++ /* 7160 */ 'x', 'v', 's', 's', 'u', 'b', '.', 'b', 'u', 9, 0, ++ /* 7171 */ 'x', 'v', 's', 'a', 'd', 'd', '.', 'b', 'u', 9, 0, ++ /* 7182 */ 'l', 'd', '.', 'b', 'u', 9, 0, ++ /* 7189 */ 'x', 'v', 'm', 'o', 'd', '.', 'b', 'u', 9, 0, ++ /* 7199 */ 'x', 'v', 'a', 'b', 's', 'd', '.', 'b', 'u', 9, 0, ++ /* 7210 */ 'x', 'v', 's', 'l', 'e', '.', 'b', 'u', 9, 0, ++ /* 7220 */ 'x', 'v', 'a', 'v', 'g', '.', 'b', 'u', 9, 0, ++ /* 7230 */ 'x', 'v', 's', 'u', 'b', 'w', 'o', 'd', '.', 'h', '.', 'b', 'u', 9, 0, ++ /* 7245 */ 'x', 'v', 'm', 'a', 'd', 'd', 'w', 'o', 'd', '.', 'h', '.', 'b', 'u', 9, 0, ++ /* 7261 */ 'x', 'v', 'a', 'd', 'd', 'w', 'o', 'd', '.', 'h', '.', 'b', 'u', 9, 0, ++ /* 7276 */ 'x', 'v', 'm', 'u', 'l', 'w', 'o', 'd', '.', 'h', '.', 'b', 'u', 9, 0, ++ /* 7291 */ 'x', 'v', 's', 'u', 'b', 'w', 'e', 'v', '.', 'h', '.', 'b', 'u', 9, 0, ++ /* 7306 */ 'x', 'v', 'm', 'a', 'd', 'd', 'w', 'e', 'v', '.', 'h', '.', 'b', 'u', 9, 0, ++ /* 7322 */ 'x', 'v', 'a', 'd', 'd', 'w', 'e', 'v', '.', 'h', '.', 'b', 'u', 9, 0, ++ /* 7337 */ 'x', 'v', 'm', 'u', 'l', 'w', 'e', 'v', '.', 'h', '.', 'b', 'u', 9, 0, ++ /* 7352 */ 'x', 'v', 'm', 'u', 'h', '.', 'b', 'u', 9, 0, ++ /* 7362 */ 'x', 'v', 's', 'u', 'b', 'i', '.', 'b', 'u', 9, 0, ++ /* 7373 */ 'x', 'v', 'a', 'd', 'd', 'i', '.', 'b', 'u', 9, 0, ++ /* 7384 */ 'x', 'v', 's', 'l', 'e', 'i', '.', 'b', 'u', 9, 0, ++ /* 7395 */ 'x', 'v', 'm', 'i', 'n', 'i', '.', 'b', 'u', 9, 0, ++ /* 7406 */ 'x', 'v', 's', 'l', 't', 'i', '.', 'b', 'u', 9, 0, ++ /* 7417 */ 'x', 'v', 'm', 'a', 'x', 'i', '.', 'b', 'u', 9, 0, ++ /* 7428 */ 'x', 'v', 'm', 'i', 'n', '.', 'b', 'u', 9, 0, ++ /* 7438 */ 'v', 'p', 'i', 'c', 'k', 'v', 'e', '2', 'g', 'r', '.', 'b', 'u', 9, 0, ++ /* 7453 */ 'x', 'v', 'a', 'v', 'g', 'r', '.', 'b', 'u', 9, 0, ++ /* 7464 */ 'x', 'v', 's', 'a', 't', '.', 'b', 'u', 9, 0, ++ /* 7474 */ 'x', 'v', 's', 'l', 't', '.', 'b', 'u', 9, 0, ++ /* 7484 */ 'v', 'e', 'x', 't', '2', 'x', 'v', '.', 'd', 'u', '.', 'b', 'u', 9, 0, ++ /* 7499 */ 'x', 'v', 'e', 'x', 't', 'h', '.', 'h', 'u', '.', 'b', 'u', 9, 0, ++ /* 7513 */ 'x', 'v', 's', 'l', 'l', 'w', 'i', 'l', '.', 'h', 'u', '.', 'b', 'u', 9, 0, ++ /* 7529 */ 'v', 'e', 'x', 't', '2', 'x', 'v', '.', 'h', 'u', '.', 'b', 'u', 9, 0, ++ /* 7544 */ 'x', 'v', 'h', 's', 'u', 'b', 'w', '.', 'h', 'u', '.', 'b', 'u', 9, 0, ++ /* 7559 */ 'x', 'v', 'h', 'a', 'd', 'd', 'w', '.', 'h', 'u', '.', 'b', 'u', 9, 0, ++ /* 7574 */ 'v', 'e', 'x', 't', '2', 'x', 'v', '.', 'w', 'u', '.', 'b', 'u', 9, 0, ++ /* 7589 */ 'x', 'v', 'd', 'i', 'v', '.', 'b', 'u', 9, 0, ++ /* 7599 */ 'x', 'v', 'm', 'a', 'x', '.', 'b', 'u', 9, 0, ++ /* 7609 */ 'l', 'd', 'x', '.', 'b', 'u', 9, 0, ++ /* 7617 */ 'a', 'm', 'm', 'i', 'n', '_', 'd', 'b', '.', 'd', 'u', 9, 0, ++ /* 7630 */ 'a', 'm', 'm', 'a', 'x', '_', 'd', 'b', '.', 'd', 'u', 9, 0, ++ /* 7643 */ 'x', 'v', 's', 's', 'u', 'b', '.', 'd', 'u', 9, 0, ++ /* 7654 */ 'x', 'v', 's', 'a', 'd', 'd', '.', 'd', 'u', 9, 0, ++ /* 7665 */ 'x', 'v', 'm', 'o', 'd', '.', 'd', 'u', 9, 0, ++ /* 7675 */ 'x', 'v', 'a', 'b', 's', 'd', '.', 'd', 'u', 9, 0, ++ /* 7686 */ 'x', 'v', 's', 'l', 'e', '.', 'd', 'u', 9, 0, ++ /* 7696 */ 'x', 'v', 'a', 'v', 'g', '.', 'd', 'u', 9, 0, ++ /* 7706 */ 'm', 'u', 'l', 'h', '.', 'd', 'u', 9, 0, ++ /* 7715 */ 'x', 'v', 'm', 'u', 'h', '.', 'd', 'u', 9, 0, ++ /* 7725 */ 'x', 'v', 's', 'u', 'b', 'i', '.', 'd', 'u', 9, 0, ++ /* 7736 */ 'x', 'v', 'a', 'd', 'd', 'i', '.', 'd', 'u', 9, 0, ++ /* 7747 */ 'x', 'v', 's', 'l', 'e', 'i', '.', 'd', 'u', 9, 0, ++ /* 7758 */ 'x', 'v', 'm', 'i', 'n', 'i', '.', 'd', 'u', 9, 0, ++ /* 7769 */ 'x', 'v', 's', 'l', 't', 'i', '.', 'd', 'u', 9, 0, ++ /* 7780 */ 'x', 'v', 'm', 'a', 'x', 'i', '.', 'd', 'u', 9, 0, ++ /* 7791 */ 'a', 'm', 'm', 'i', 'n', '.', 'd', 'u', 9, 0, ++ /* 7801 */ 'x', 'v', 'm', 'i', 'n', '.', 'd', 'u', 9, 0, ++ /* 7811 */ 'x', 'v', 's', 'u', 'b', 'w', 'o', 'd', '.', 'q', '.', 'd', 'u', 9, 0, ++ /* 7826 */ 'x', 'v', 'm', 'a', 'd', 'd', 'w', 'o', 'd', '.', 'q', '.', 'd', 'u', 9, 0, ++ /* 7842 */ 'x', 'v', 'a', 'd', 'd', 'w', 'o', 'd', '.', 'q', '.', 'd', 'u', 9, 0, ++ /* 7857 */ 'x', 'v', 'm', 'u', 'l', 'w', 'o', 'd', '.', 'q', '.', 'd', 'u', 9, 0, ++ /* 7872 */ 'x', 'v', 's', 'u', 'b', 'w', 'e', 'v', '.', 'q', '.', 'd', 'u', 9, 0, ++ /* 7887 */ 'x', 'v', 'm', 'a', 'd', 'd', 'w', 'e', 'v', '.', 'q', '.', 'd', 'u', 9, 0, ++ /* 7903 */ 'x', 'v', 'a', 'd', 'd', 'w', 'e', 'v', '.', 'q', '.', 'd', 'u', 9, 0, ++ /* 7918 */ 'x', 'v', 'm', 'u', 'l', 'w', 'e', 'v', '.', 'q', '.', 'd', 'u', 9, 0, ++ /* 7933 */ 'x', 'v', 'p', 'i', 'c', 'k', 'v', 'e', '2', 'g', 'r', '.', 'd', 'u', 9, 0, ++ /* 7949 */ 'x', 'v', 'a', 'v', 'g', 'r', '.', 'd', 'u', 9, 0, ++ /* 7960 */ 'x', 'v', 's', 'a', 't', '.', 'd', 'u', 9, 0, ++ /* 7970 */ 'x', 'v', 's', 'l', 't', '.', 'd', 'u', 9, 0, ++ /* 7980 */ 'x', 'v', 'e', 'x', 't', 'h', '.', 'q', 'u', '.', 'd', 'u', 9, 0, ++ /* 7994 */ 'x', 'v', 'e', 'x', 't', 'l', '.', 'q', 'u', '.', 'd', 'u', 9, 0, ++ /* 8008 */ 'x', 'v', 'h', 's', 'u', 'b', 'w', '.', 'q', 'u', '.', 'd', 'u', 9, 0, ++ /* 8023 */ 'x', 'v', 'h', 'a', 'd', 'd', 'w', '.', 'q', 'u', '.', 'd', 'u', 9, 0, ++ /* 8038 */ 'x', 'v', 'd', 'i', 'v', '.', 'd', 'u', 9, 0, ++ /* 8048 */ 'a', 'm', 'm', 'a', 'x', '.', 'd', 'u', 9, 0, ++ /* 8058 */ 'x', 'v', 'm', 'a', 'x', '.', 'd', 'u', 9, 0, ++ /* 8068 */ 'b', 'g', 'e', 'u', 9, 0, ++ /* 8074 */ 'x', 'v', 's', 's', 'u', 'b', '.', 'h', 'u', 9, 0, ++ /* 8085 */ 'x', 'v', 's', 'a', 'd', 'd', '.', 'h', 'u', 9, 0, ++ /* 8096 */ 'l', 'd', '.', 'h', 'u', 9, 0, ++ /* 8103 */ 'x', 'v', 'm', 'o', 'd', '.', 'h', 'u', 9, 0, ++ /* 8113 */ 'x', 'v', 'a', 'b', 's', 'd', '.', 'h', 'u', 9, 0, ++ /* 8124 */ 'x', 'v', 's', 'l', 'e', '.', 'h', 'u', 9, 0, ++ /* 8134 */ 'x', 'v', 'a', 'v', 'g', '.', 'h', 'u', 9, 0, ++ /* 8144 */ 'x', 'v', 'm', 'u', 'h', '.', 'h', 'u', 9, 0, ++ /* 8154 */ 'x', 'v', 's', 'u', 'b', 'i', '.', 'h', 'u', 9, 0, ++ /* 8165 */ 'x', 'v', 'a', 'd', 'd', 'i', '.', 'h', 'u', 9, 0, ++ /* 8176 */ 'x', 'v', 's', 'l', 'e', 'i', '.', 'h', 'u', 9, 0, ++ /* 8187 */ 'x', 'v', 'm', 'i', 'n', 'i', '.', 'h', 'u', 9, 0, ++ /* 8198 */ 'x', 'v', 's', 'l', 't', 'i', '.', 'h', 'u', 9, 0, ++ /* 8209 */ 'x', 'v', 'm', 'a', 'x', 'i', '.', 'h', 'u', 9, 0, ++ /* 8220 */ 'x', 'v', 'm', 'i', 'n', '.', 'h', 'u', 9, 0, ++ /* 8230 */ 'v', 'p', 'i', 'c', 'k', 'v', 'e', '2', 'g', 'r', '.', 'h', 'u', 9, 0, ++ /* 8245 */ 'x', 'v', 'a', 'v', 'g', 'r', '.', 'h', 'u', 9, 0, ++ /* 8256 */ 'x', 'v', 's', 'a', 't', '.', 'h', 'u', 9, 0, ++ /* 8266 */ 'x', 'v', 's', 'l', 't', '.', 'h', 'u', 9, 0, ++ /* 8276 */ 'v', 'e', 'x', 't', '2', 'x', 'v', '.', 'd', 'u', '.', 'h', 'u', 9, 0, ++ /* 8291 */ 'x', 'v', 'e', 'x', 't', 'h', '.', 'w', 'u', '.', 'h', 'u', 9, 0, ++ /* 8305 */ 'x', 'v', 's', 'l', 'l', 'w', 'i', 'l', '.', 'w', 'u', '.', 'h', 'u', 9, 0, ++ /* 8321 */ 'v', 'e', 'x', 't', '2', 'x', 'v', '.', 'w', 'u', '.', 'h', 'u', 9, 0, ++ /* 8336 */ 'x', 'v', 'h', 's', 'u', 'b', 'w', '.', 'w', 'u', '.', 'h', 'u', 9, 0, ++ /* 8351 */ 'x', 'v', 'h', 'a', 'd', 'd', 'w', '.', 'w', 'u', '.', 'h', 'u', 9, 0, ++ /* 8366 */ 'x', 'v', 'd', 'i', 'v', '.', 'h', 'u', 9, 0, ++ /* 8376 */ 'x', 'v', 's', 'u', 'b', 'w', 'o', 'd', '.', 'w', '.', 'h', 'u', 9, 0, ++ /* 8391 */ 'x', 'v', 'm', 'a', 'd', 'd', 'w', 'o', 'd', '.', 'w', '.', 'h', 'u', 9, 0, ++ /* 8407 */ 'x', 'v', 'a', 'd', 'd', 'w', 'o', 'd', '.', 'w', '.', 'h', 'u', 9, 0, ++ /* 8422 */ 'x', 'v', 'm', 'u', 'l', 'w', 'o', 'd', '.', 'w', '.', 'h', 'u', 9, 0, ++ /* 8437 */ 'x', 'v', 's', 'u', 'b', 'w', 'e', 'v', '.', 'w', '.', 'h', 'u', 9, 0, ++ /* 8452 */ 'x', 'v', 'm', 'a', 'd', 'd', 'w', 'e', 'v', '.', 'w', '.', 'h', 'u', 9, 0, ++ /* 8468 */ 'x', 'v', 'a', 'd', 'd', 'w', 'e', 'v', '.', 'w', '.', 'h', 'u', 9, 0, ++ /* 8483 */ 'x', 'v', 'm', 'u', 'l', 'w', 'e', 'v', '.', 'w', '.', 'h', 'u', 9, 0, ++ /* 8498 */ 'x', 'v', 'm', 'a', 'x', '.', 'h', 'u', 9, 0, ++ /* 8508 */ 'l', 'd', 'x', '.', 'h', 'u', 9, 0, ++ /* 8516 */ 'x', 'v', 'f', 'f', 'i', 'n', 't', '.', 'd', '.', 'l', 'u', 9, 0, ++ /* 8530 */ 'b', 'l', 't', 'u', 9, 0, ++ /* 8536 */ 's', 'l', 't', 'u', 9, 0, ++ /* 8542 */ 'a', 'm', 'm', 'i', 'n', '_', 'd', 'b', '.', 'w', 'u', 9, 0, ++ /* 8555 */ 'a', 'm', 'm', 'a', 'x', '_', 'd', 'b', '.', 'w', 'u', 9, 0, ++ /* 8568 */ 'x', 'v', 's', 's', 'u', 'b', '.', 'w', 'u', 9, 0, ++ /* 8579 */ 'x', 'v', 's', 'u', 'b', 'w', 'o', 'd', '.', 'd', '.', 'w', 'u', 9, 0, ++ /* 8594 */ 'x', 'v', 'm', 'a', 'd', 'd', 'w', 'o', 'd', '.', 'd', '.', 'w', 'u', 9, 0, ++ /* 8610 */ 'x', 'v', 'a', 'd', 'd', 'w', 'o', 'd', '.', 'd', '.', 'w', 'u', 9, 0, ++ /* 8625 */ 'x', 'v', 'm', 'u', 'l', 'w', 'o', 'd', '.', 'd', '.', 'w', 'u', 9, 0, ++ /* 8640 */ 'x', 'v', 's', 'u', 'b', 'w', 'e', 'v', '.', 'd', '.', 'w', 'u', 9, 0, ++ /* 8655 */ 'x', 'v', 'm', 'a', 'd', 'd', 'w', 'e', 'v', '.', 'd', '.', 'w', 'u', 9, 0, ++ /* 8671 */ 'x', 'v', 'a', 'd', 'd', 'w', 'e', 'v', '.', 'd', '.', 'w', 'u', 9, 0, ++ /* 8686 */ 'x', 'v', 'm', 'u', 'l', 'w', 'e', 'v', '.', 'd', '.', 'w', 'u', 9, 0, ++ /* 8701 */ 'm', 'u', 'l', 'w', '.', 'd', '.', 'w', 'u', 9, 0, ++ /* 8712 */ 'x', 'v', 's', 'a', 'd', 'd', '.', 'w', 'u', 9, 0, ++ /* 8723 */ 'l', 'd', '.', 'w', 'u', 9, 0, ++ /* 8730 */ 'x', 'v', 'm', 'o', 'd', '.', 'w', 'u', 9, 0, ++ /* 8740 */ 'x', 'v', 'a', 'b', 's', 'd', '.', 'w', 'u', 9, 0, ++ /* 8751 */ 'x', 'v', 's', 'l', 'e', '.', 'w', 'u', 9, 0, ++ /* 8761 */ 'x', 'v', 'a', 'v', 'g', '.', 'w', 'u', 9, 0, ++ /* 8771 */ 'm', 'u', 'l', 'h', '.', 'w', 'u', 9, 0, ++ /* 8780 */ 'x', 'v', 'm', 'u', 'h', '.', 'w', 'u', 9, 0, ++ /* 8790 */ 'x', 'v', 's', 'u', 'b', 'i', '.', 'w', 'u', 9, 0, ++ /* 8801 */ 'x', 'v', 'a', 'd', 'd', 'i', '.', 'w', 'u', 9, 0, ++ /* 8812 */ 'x', 'v', 's', 'l', 'e', 'i', '.', 'w', 'u', 9, 0, ++ /* 8823 */ 'x', 'v', 'm', 'i', 'n', 'i', '.', 'w', 'u', 9, 0, ++ /* 8834 */ 'x', 'v', 's', 'l', 't', 'i', '.', 'w', 'u', 9, 0, ++ /* 8845 */ 'x', 'v', 'm', 'a', 'x', 'i', '.', 'w', 'u', 9, 0, ++ /* 8856 */ 'a', 'l', 's', 'l', '.', 'w', 'u', 9, 0, ++ /* 8865 */ 'a', 'm', 'm', 'i', 'n', '.', 'w', 'u', 9, 0, ++ /* 8875 */ 'x', 'v', 'm', 'i', 'n', '.', 'w', 'u', 9, 0, ++ /* 8885 */ 'x', 'v', 'p', 'i', 'c', 'k', 'v', 'e', '2', 'g', 'r', '.', 'w', 'u', 9, 0, ++ /* 8901 */ 'x', 'v', 'a', 'v', 'g', 'r', '.', 'w', 'u', 9, 0, ++ /* 8912 */ 'x', 'v', 'f', 'f', 'i', 'n', 't', '.', 's', '.', 'w', 'u', 9, 0, ++ /* 8926 */ 'x', 'v', 's', 'a', 't', '.', 'w', 'u', 9, 0, ++ /* 8936 */ 'x', 'v', 's', 'l', 't', '.', 'w', 'u', 9, 0, ++ /* 8946 */ 'x', 'v', 'e', 'x', 't', 'h', '.', 'd', 'u', '.', 'w', 'u', 9, 0, ++ /* 8960 */ 'x', 'v', 's', 'l', 'l', 'w', 'i', 'l', '.', 'd', 'u', '.', 'w', 'u', 9, 0, ++ /* 8976 */ 'v', 'e', 'x', 't', '2', 'x', 'v', '.', 'd', 'u', '.', 'w', 'u', 9, 0, ++ /* 8991 */ 'x', 'v', 'h', 's', 'u', 'b', 'w', '.', 'd', 'u', '.', 'w', 'u', 9, 0, ++ /* 9006 */ 'x', 'v', 'h', 'a', 'd', 'd', 'w', '.', 'd', 'u', '.', 'w', 'u', 9, 0, ++ /* 9021 */ 'x', 'v', 'd', 'i', 'v', '.', 'w', 'u', 9, 0, ++ /* 9031 */ 'a', 'm', 'm', 'a', 'x', '.', 'w', 'u', 9, 0, ++ /* 9041 */ 'x', 'v', 'm', 'a', 'x', '.', 'w', 'u', 9, 0, ++ /* 9051 */ 'l', 'd', 'x', '.', 'w', 'u', 9, 0, ++ /* 9059 */ 'x', 'v', 'a', 'n', 'd', '.', 'v', 9, 0, ++ /* 9068 */ 'x', 'v', 'b', 'i', 't', 's', 'e', 'l', '.', 'v', 9, 0, ++ /* 9080 */ 'x', 'v', 'b', 's', 'l', 'l', '.', 'v', 9, 0, ++ /* 9090 */ 'x', 'v', 'b', 's', 'r', 'l', '.', 'v', 9, 0, ++ /* 9100 */ 'x', 'v', 'a', 'n', 'd', 'n', '.', 'v', 9, 0, ++ /* 9110 */ 'x', 'v', 'o', 'r', 'n', '.', 'v', 9, 0, ++ /* 9119 */ 'x', 'v', 'n', 'o', 'r', '.', 'v', 9, 0, ++ /* 9128 */ 'x', 'v', 'o', 'r', '.', 'v', 9, 0, ++ /* 9136 */ 'x', 'v', 'x', 'o', 'r', '.', 'v', 9, 0, ++ /* 9145 */ 'x', 'v', 's', 'e', 't', 'n', 'e', 'z', '.', 'v', 9, 0, ++ /* 9157 */ 'x', 'v', 's', 'e', 't', 'e', 'q', 'z', '.', 'v', 9, 0, ++ /* 9169 */ 'x', 'v', 'r', 'e', 'p', 'l', 'v', 'e', '0', '.', 'w', 9, 0, ++ /* 9182 */ 'x', 'v', 'i', 'n', 's', 'v', 'e', '0', '.', 'w', 9, 0, ++ /* 9194 */ 'x', 'v', 'a', 'd', 'd', 'a', '.', 'w', 9, 0, ++ /* 9204 */ 'x', 'v', 's', 'r', 'a', '.', 'w', 9, 0, ++ /* 9213 */ 'c', 'r', 'c', 'c', '.', 'w', '.', 'b', '.', 'w', 9, 0, ++ /* 9225 */ 'c', 'r', 'c', '.', 'w', '.', 'b', '.', 'w', 9, 0, ++ /* 9236 */ 'a', 'm', 'a', 'd', 'd', '_', 'd', 'b', '.', 'w', 9, 0, ++ /* 9248 */ 'a', 'm', 'a', 'n', 'd', '_', 'd', 'b', '.', 'w', 9, 0, ++ /* 9260 */ 'a', 'm', 'm', 'i', 'n', '_', 'd', 'b', '.', 'w', 9, 0, ++ /* 9272 */ 'a', 'm', 's', 'w', 'a', 'p', '_', 'd', 'b', '.', 'w', 9, 0, ++ /* 9285 */ 'a', 'm', 'o', 'r', '_', 'd', 'b', '.', 'w', 9, 0, ++ /* 9296 */ 'a', 'm', 'x', 'o', 'r', '_', 'd', 'b', '.', 'w', 9, 0, ++ /* 9308 */ 'a', 'm', 'm', 'a', 'x', '_', 'd', 'b', '.', 'w', 9, 0, ++ /* 9320 */ 'x', 'v', 'm', 's', 'u', 'b', '.', 'w', 9, 0, ++ /* 9330 */ 'x', 'v', 's', 's', 'u', 'b', '.', 'w', 9, 0, ++ /* 9340 */ 'x', 'v', 's', 'u', 'b', '.', 'w', 9, 0, ++ /* 9349 */ 's', 'c', '.', 'w', 9, 0, ++ /* 9355 */ 'x', 'v', 's', 'u', 'b', 'w', 'o', 'd', '.', 'd', '.', 'w', 9, 0, ++ /* 9369 */ 'x', 'v', 'm', 'a', 'd', 'd', 'w', 'o', 'd', '.', 'd', '.', 'w', 9, 0, ++ /* 9384 */ 'x', 'v', 'a', 'd', 'd', 'w', 'o', 'd', '.', 'd', '.', 'w', 9, 0, ++ /* 9398 */ 'x', 'v', 'm', 'u', 'l', 'w', 'o', 'd', '.', 'd', '.', 'w', 9, 0, ++ /* 9412 */ 'x', 'v', 'f', 'f', 'i', 'n', 't', 'h', '.', 'd', '.', 'w', 9, 0, ++ /* 9426 */ 'x', 'v', 'e', 'x', 't', 'h', '.', 'd', '.', 'w', 9, 0, ++ /* 9438 */ 'x', 'v', 's', 'l', 'l', 'w', 'i', 'l', '.', 'd', '.', 'w', 9, 0, ++ /* 9452 */ 'x', 'v', 'f', 'f', 'i', 'n', 't', 'l', '.', 'd', '.', 'w', 9, 0, ++ /* 9466 */ 'f', 'f', 'i', 'n', 't', '.', 'd', '.', 'w', 9, 0, ++ /* 9477 */ 'x', 'v', 's', 'u', 'b', 'w', 'e', 'v', '.', 'd', '.', 'w', 9, 0, ++ /* 9491 */ 'x', 'v', 'm', 'a', 'd', 'd', 'w', 'e', 'v', '.', 'd', '.', 'w', 9, 0, ++ /* 9506 */ 'x', 'v', 'a', 'd', 'd', 'w', 'e', 'v', '.', 'd', '.', 'w', 9, 0, ++ /* 9520 */ 'x', 'v', 'm', 'u', 'l', 'w', 'e', 'v', '.', 'd', '.', 'w', 9, 0, ++ /* 9534 */ 'v', 'e', 'x', 't', '2', 'x', 'v', '.', 'd', '.', 'w', 9, 0, ++ /* 9547 */ 'c', 'r', 'c', 'c', '.', 'w', '.', 'd', '.', 'w', 9, 0, ++ /* 9559 */ 'c', 'r', 'c', '.', 'w', '.', 'd', '.', 'w', 9, 0, ++ /* 9570 */ 'x', 'v', 'h', 's', 'u', 'b', 'w', '.', 'd', '.', 'w', 9, 0, ++ /* 9583 */ 'x', 'v', 'h', 'a', 'd', 'd', 'w', '.', 'd', '.', 'w', 9, 0, ++ /* 9596 */ 'm', 'u', 'l', 'w', '.', 'd', '.', 'w', 9, 0, ++ /* 9606 */ 'a', 'm', 'a', 'd', 'd', '.', 'w', 9, 0, ++ /* 9615 */ 'x', 'v', 'm', 'a', 'd', 'd', '.', 'w', 9, 0, ++ /* 9625 */ 'x', 'v', 's', 'a', 'd', 'd', '.', 'w', 9, 0, ++ /* 9635 */ 'x', 'v', 'a', 'd', 'd', '.', 'w', 9, 0, ++ /* 9644 */ 'l', 'd', '.', 'w', 9, 0, ++ /* 9650 */ 'a', 'm', 'a', 'n', 'd', '.', 'w', 9, 0, ++ /* 9659 */ 'x', 'v', 'p', 'a', 'c', 'k', 'o', 'd', '.', 'w', 9, 0, ++ /* 9671 */ 'x', 'v', 'p', 'i', 'c', 'k', 'o', 'd', '.', 'w', 9, 0, ++ /* 9683 */ 'x', 'v', 'm', 'o', 'd', '.', 'w', 9, 0, ++ /* 9692 */ 'i', 'o', 'c', 's', 'r', 'r', 'd', '.', 'w', 9, 0, ++ /* 9703 */ 'x', 'v', 'a', 'b', 's', 'd', '.', 'w', 9, 0, ++ /* 9713 */ 'l', 'd', 'l', 'e', '.', 'w', 9, 0, ++ /* 9721 */ 'x', 'v', 's', 'l', 'e', '.', 'w', 9, 0, ++ /* 9730 */ 's', 't', 'l', 'e', '.', 'w', 9, 0, ++ /* 9738 */ 'x', 'v', 'p', 'i', 'c', 'k', 'v', 'e', '.', 'w', 9, 0, ++ /* 9750 */ 'x', 'v', 'r', 'e', 'p', 'l', 'v', 'e', '.', 'w', 9, 0, ++ /* 9762 */ 'x', 'v', 's', 'h', 'u', 'f', '.', 'w', 9, 0, ++ /* 9772 */ 'x', 'v', 'n', 'e', 'g', '.', 'w', 9, 0, ++ /* 9781 */ 'x', 'v', 'a', 'v', 'g', '.', 'w', 9, 0, ++ /* 9790 */ 'x', 'v', 's', 's', 'r', 'a', 'n', 'i', '.', 'h', '.', 'w', 9, 0, ++ /* 9804 */ 'x', 'v', 's', 'r', 'a', 'n', 'i', '.', 'h', '.', 'w', 9, 0, ++ /* 9817 */ 'x', 'v', 's', 's', 'r', 'l', 'n', 'i', '.', 'h', '.', 'w', 9, 0, ++ /* 9831 */ 'x', 'v', 's', 'r', 'l', 'n', 'i', '.', 'h', '.', 'w', 9, 0, ++ /* 9844 */ 'x', 'v', 's', 's', 'r', 'a', 'r', 'n', 'i', '.', 'h', '.', 'w', 9, 0, ++ /* 9859 */ 'x', 'v', 's', 'r', 'a', 'r', 'n', 'i', '.', 'h', '.', 'w', 9, 0, ++ /* 9873 */ 'x', 'v', 's', 's', 'r', 'l', 'r', 'n', 'i', '.', 'h', '.', 'w', 9, 0, ++ /* 9888 */ 'x', 'v', 's', 'r', 'l', 'r', 'n', 'i', '.', 'h', '.', 'w', 9, 0, ++ /* 9902 */ 'x', 'v', 's', 's', 'r', 'a', 'n', '.', 'h', '.', 'w', 9, 0, ++ /* 9915 */ 'x', 'v', 's', 'r', 'a', 'n', '.', 'h', '.', 'w', 9, 0, ++ /* 9927 */ 'x', 'v', 's', 's', 'r', 'l', 'n', '.', 'h', '.', 'w', 9, 0, ++ /* 9940 */ 'x', 'v', 's', 'r', 'l', 'n', '.', 'h', '.', 'w', 9, 0, ++ /* 9952 */ 'x', 'v', 's', 's', 'r', 'a', 'r', 'n', '.', 'h', '.', 'w', 9, 0, ++ /* 9966 */ 'x', 'v', 's', 'r', 'a', 'r', 'n', '.', 'h', '.', 'w', 9, 0, ++ /* 9979 */ 'x', 'v', 's', 's', 'r', 'l', 'r', 'n', '.', 'h', '.', 'w', 9, 0, ++ /* 9993 */ 'x', 'v', 's', 'r', 'l', 'r', 'n', '.', 'h', '.', 'w', 9, 0, ++ /* 10006 */ 'c', 'r', 'c', 'c', '.', 'w', '.', 'h', '.', 'w', 9, 0, ++ /* 10018 */ 'c', 'r', 'c', '.', 'w', '.', 'h', '.', 'w', 9, 0, ++ /* 10029 */ 'r', 'd', 't', 'i', 'm', 'e', 'h', '.', 'w', 9, 0, ++ /* 10040 */ 'm', 'u', 'l', 'h', '.', 'w', 9, 0, ++ /* 10048 */ 'm', 'o', 'v', 'g', 'r', '2', 'f', 'r', 'h', '.', 'w', 9, 0, ++ /* 10061 */ 'x', 'v', 'm', 'u', 'h', '.', 'w', 9, 0, ++ /* 10070 */ 'x', 'v', 'i', 'l', 'v', 'h', '.', 'w', 9, 0, ++ /* 10080 */ 'l', 'u', '1', '2', 'i', '.', 'w', 9, 0, ++ /* 10089 */ 'x', 'v', 's', 'h', 'u', 'f', '4', 'i', '.', 'w', 9, 0, ++ /* 10101 */ 'x', 'v', 's', 'r', 'a', 'i', '.', 'w', 9, 0, ++ /* 10111 */ 'a', 'd', 'd', 'i', '.', 'w', 9, 0, ++ /* 10119 */ 'x', 'v', 's', 'l', 'e', 'i', '.', 'w', 9, 0, ++ /* 10129 */ 'x', 'v', 'r', 'e', 'p', 'l', '1', '2', '8', 'v', 'e', 'i', '.', 'w', 9, 0, ++ /* 10145 */ 'v', 'r', 'e', 'p', 'l', 'v', 'e', 'i', '.', 'w', 9, 0, ++ /* 10157 */ 'x', 'v', 's', 'l', 'l', 'i', '.', 'w', 9, 0, ++ /* 10167 */ 'x', 'v', 's', 'r', 'l', 'i', '.', 'w', 9, 0, ++ /* 10177 */ 'x', 'v', 'p', 'e', 'r', 'm', 'i', '.', 'w', 9, 0, ++ /* 10188 */ 'x', 'v', 'm', 'i', 'n', 'i', '.', 'w', 9, 0, ++ /* 10198 */ 'x', 'v', 's', 'e', 'q', 'i', '.', 'w', 9, 0, ++ /* 10208 */ 'x', 'v', 's', 'r', 'a', 'r', 'i', '.', 'w', 9, 0, ++ /* 10219 */ 'x', 'v', 'b', 'i', 't', 'c', 'l', 'r', 'i', '.', 'w', 9, 0, ++ /* 10232 */ 'x', 'v', 's', 'r', 'l', 'r', 'i', '.', 'w', 9, 0, ++ /* 10243 */ 'x', 'v', 'r', 'o', 't', 'r', 'i', '.', 'w', 9, 0, ++ /* 10254 */ 'x', 'v', 'b', 'i', 't', 's', 'e', 't', 'i', '.', 'w', 9, 0, ++ /* 10267 */ 'x', 'v', 's', 'l', 't', 'i', '.', 'w', 9, 0, ++ /* 10277 */ 'x', 'v', 'b', 'i', 't', 'r', 'e', 'v', 'i', '.', 'w', 9, 0, ++ /* 10290 */ 'x', 'v', 'm', 'a', 'x', 'i', '.', 'w', 9, 0, ++ /* 10300 */ 'b', 'y', 't', 'e', 'p', 'i', 'c', 'k', '.', 'w', 9, 0, ++ /* 10312 */ 'b', 's', 't', 'r', 'p', 'i', 'c', 'k', '.', 'w', 9, 0, ++ /* 10324 */ 'r', 'd', 't', 'i', 'm', 'e', 'l', '.', 'w', 9, 0, ++ /* 10335 */ 'x', 'v', 's', 'l', 'l', '.', 'w', 9, 0, ++ /* 10344 */ 'x', 'v', 'l', 'd', 'r', 'e', 'p', 'l', '.', 'w', 9, 0, ++ /* 10356 */ 'x', 'v', 's', 'r', 'l', '.', 'w', 9, 0, ++ /* 10365 */ 'a', 'l', 's', 'l', '.', 'w', 9, 0, ++ /* 10373 */ 'x', 'v', 'm', 'u', 'l', '.', 'w', 9, 0, ++ /* 10382 */ 'x', 'v', 'i', 'l', 'v', 'l', '.', 'w', 9, 0, ++ /* 10392 */ 'x', 'v', 's', 't', 'e', 'l', 'm', '.', 'w', 9, 0, ++ /* 10403 */ 'x', 'v', 'p', 'e', 'r', 'm', '.', 'w', 9, 0, ++ /* 10413 */ 'a', 'm', 'm', 'i', 'n', '.', 'w', 9, 0, ++ /* 10422 */ 'x', 'v', 'm', 'i', 'n', '.', 'w', 9, 0, ++ /* 10431 */ 'x', 'v', 'c', 'l', 'o', '.', 'w', 9, 0, ++ /* 10440 */ 'c', 't', 'o', '.', 'w', 9, 0, ++ /* 10447 */ 'a', 'm', 's', 'w', 'a', 'p', '.', 'w', 9, 0, ++ /* 10457 */ 'x', 'v', 's', 'e', 'q', '.', 'w', 9, 0, ++ /* 10466 */ 'x', 'v', 's', 'r', 'a', 'r', '.', 'w', 9, 0, ++ /* 10476 */ 'm', 'o', 'v', 'g', 'r', '2', 'f', 'r', '.', 'w', 9, 0, ++ /* 10488 */ 'x', 'v', 'p', 'i', 'c', 'k', 'v', 'e', '2', 'g', 'r', '.', 'w', 9, 0, ++ /* 10503 */ 'x', 'v', 'a', 'v', 'g', 'r', '.', 'w', 9, 0, ++ /* 10513 */ 'x', 'v', 'b', 'i', 't', 'c', 'l', 'r', '.', 'w', 9, 0, ++ /* 10525 */ 'x', 'v', 's', 'r', 'l', 'r', '.', 'w', 9, 0, ++ /* 10535 */ 'a', 'm', 'o', 'r', '.', 'w', 9, 0, ++ /* 10543 */ 'a', 'm', 'x', 'o', 'r', '.', 'w', 9, 0, ++ /* 10552 */ 'x', 'v', 'r', 'o', 't', 'r', '.', 'w', 9, 0, ++ /* 10562 */ 'l', 'd', 'p', 't', 'r', '.', 'w', 9, 0, ++ /* 10571 */ 's', 't', 'p', 't', 'r', '.', 'w', 9, 0, ++ /* 10580 */ 'x', 'v', 'r', 'e', 'p', 'l', 'g', 'r', '2', 'v', 'r', '.', 'w', 9, 0, ++ /* 10595 */ 'x', 'v', 'i', 'n', 's', 'g', 'r', '2', 'v', 'r', '.', 'w', 9, 0, ++ /* 10609 */ 'i', 'o', 'c', 's', 'r', 'w', 'r', '.', 'w', 9, 0, ++ /* 10620 */ 'x', 'v', 'f', 'f', 'i', 'n', 't', '.', 's', '.', 'w', 9, 0, ++ /* 10633 */ 'b', 's', 't', 'r', 'i', 'n', 's', '.', 'w', 9, 0, ++ /* 10644 */ 'x', 'v', 'e', 'x', 't', 'r', 'i', 'n', 's', '.', 'w', 9, 0, ++ /* 10657 */ 'x', 'v', 's', 'a', 't', '.', 'w', 9, 0, ++ /* 10666 */ 'x', 'v', 'b', 'i', 't', 's', 'e', 't', '.', 'w', 9, 0, ++ /* 10678 */ 'l', 'd', 'g', 't', '.', 'w', 9, 0, ++ /* 10686 */ 's', 't', 'g', 't', '.', 'w', 9, 0, ++ /* 10694 */ 'x', 'v', 's', 'l', 't', '.', 'w', 9, 0, ++ /* 10703 */ 'x', 'v', 'p', 'c', 'n', 't', '.', 'w', 9, 0, ++ /* 10713 */ 's', 't', '.', 'w', 9, 0, ++ /* 10719 */ 'x', 'v', 's', 's', 'r', 'a', 'n', 'i', '.', 'h', 'u', '.', 'w', 9, 0, ++ /* 10734 */ 'x', 'v', 's', 's', 'r', 'l', 'n', 'i', '.', 'h', 'u', '.', 'w', 9, 0, ++ /* 10749 */ 'x', 'v', 's', 's', 'r', 'a', 'r', 'n', 'i', '.', 'h', 'u', '.', 'w', 9, 0, ++ /* 10765 */ 'x', 'v', 's', 's', 'r', 'l', 'r', 'n', 'i', '.', 'h', 'u', '.', 'w', 9, 0, ++ /* 10781 */ 'x', 'v', 's', 's', 'r', 'a', 'n', '.', 'h', 'u', '.', 'w', 9, 0, ++ /* 10795 */ 'x', 'v', 's', 's', 'r', 'l', 'n', '.', 'h', 'u', '.', 'w', 9, 0, ++ /* 10809 */ 'x', 'v', 's', 's', 'r', 'a', 'r', 'n', '.', 'h', 'u', '.', 'w', 9, 0, ++ /* 10824 */ 'x', 'v', 's', 's', 'r', 'l', 'r', 'n', '.', 'h', 'u', '.', 'w', 9, 0, ++ /* 10839 */ 'x', 'v', 'm', 'a', 'd', 'd', 'w', 'o', 'd', '.', 'd', '.', 'w', 'u', '.', 'w', 9, 0, ++ /* 10857 */ 'x', 'v', 'a', 'd', 'd', 'w', 'o', 'd', '.', 'd', '.', 'w', 'u', '.', 'w', 9, 0, ++ /* 10874 */ 'x', 'v', 'm', 'u', 'l', 'w', 'o', 'd', '.', 'd', '.', 'w', 'u', '.', 'w', 9, 0, ++ /* 10891 */ 'x', 'v', 'm', 'a', 'd', 'd', 'w', 'e', 'v', '.', 'd', '.', 'w', 'u', '.', 'w', 9, 0, ++ /* 10909 */ 'x', 'v', 'a', 'd', 'd', 'w', 'e', 'v', '.', 'd', '.', 'w', 'u', '.', 'w', 9, 0, ++ /* 10926 */ 'x', 'v', 'm', 'u', 'l', 'w', 'e', 'v', '.', 'd', '.', 'w', 'u', '.', 'w', 9, 0, ++ /* 10943 */ 'x', 'v', 'p', 'a', 'c', 'k', 'e', 'v', '.', 'w', 9, 0, ++ /* 10955 */ 'x', 'v', 'p', 'i', 'c', 'k', 'e', 'v', '.', 'w', 9, 0, ++ /* 10967 */ 'x', 'v', 'b', 'i', 't', 'r', 'e', 'v', '.', 'w', 9, 0, ++ /* 10979 */ 'x', 'v', 'd', 'i', 'v', '.', 'w', 9, 0, ++ /* 10988 */ 'x', 'v', 's', 'i', 'g', 'n', 'c', 'o', 'v', '.', 'w', 9, 0, ++ /* 11001 */ 'c', 'r', 'c', 'c', '.', 'w', '.', 'w', '.', 'w', 9, 0, ++ /* 11013 */ 'c', 'r', 'c', '.', 'w', '.', 'w', '.', 'w', 9, 0, ++ /* 11024 */ 'a', 'm', 'm', 'a', 'x', '.', 'w', 9, 0, ++ /* 11033 */ 'x', 'v', 'm', 'a', 'x', '.', 'w', 9, 0, ++ /* 11042 */ 'l', 'd', 'x', '.', 'w', 9, 0, ++ /* 11049 */ 's', 't', 'x', '.', 'w', 9, 0, ++ /* 11056 */ 'x', 'v', 's', 'e', 't', 'a', 'l', 'l', 'n', 'e', 'z', '.', 'w', 9, 0, ++ /* 11071 */ 'x', 'v', 'c', 'l', 'z', '.', 'w', 9, 0, ++ /* 11080 */ 'x', 'v', 's', 'e', 't', 'a', 'n', 'y', 'e', 'q', 'z', '.', 'w', 9, 0, ++ /* 11095 */ 'c', 't', 'z', '.', 'w', 9, 0, ++ /* 11102 */ 'x', 'v', 'm', 's', 'k', 'l', 't', 'z', '.', 'w', 9, 0, ++ /* 11114 */ 'r', 'e', 'v', 'b', '.', '2', 'w', 9, 0, ++ /* 11123 */ 'r', 'e', 'v', 'h', '.', '2', 'w', 9, 0, ++ /* 11132 */ 'x', 'v', 'l', 'd', 'x', 9, 0, ++ /* 11139 */ 'x', 'v', 's', 't', 'x', 9, 0, ++ /* 11146 */ 'b', 'n', 'e', 'z', 9, 0, ++ /* 11152 */ 'b', 'c', 'n', 'e', 'z', 9, 0, ++ /* 11159 */ 'm', 'a', 's', 'k', 'n', 'e', 'z', 9, 0, ++ /* 11168 */ 'b', 'e', 'q', 'z', 9, 0, ++ /* 11174 */ 'b', 'c', 'e', 'q', 'z', 9, 0, ++ /* 11181 */ 'm', 'a', 's', 'k', 'e', 'q', 'z', 9, 0, ++ /* 11190 */ 'b', 's', 't', 'r', 'p', 'i', 'c', 'k', '.', 'd', 32, 0, ++ /* 11202 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'F', 'u', 'n', 'c', 't', 'i', 'o', 'n', 32, 'P', 'a', 't', 'c', 'h', 'a', 'b', 'l', 'e', 32, 'R', 'E', 'T', '.', 0, ++ /* 11233 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'T', 'y', 'p', 'e', 'd', 32, 'E', 'v', 'e', 'n', 't', 32, 'L', 'o', 'g', '.', 0, ++ /* 11257 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'C', 'u', 's', 't', 'o', 'm', 32, 'E', 'v', 'e', 'n', 't', 32, 'L', 'o', 'g', '.', 0, ++ /* 11282 */ 'f', 'c', 'm', 'p', '.', 0, ++ /* 11288 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'F', 'u', 'n', 'c', 't', 'i', 'o', 'n', 32, 'E', 'n', 't', 'e', 'r', '.', 0, ++ /* 11311 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'T', 'a', 'i', 'l', 32, 'C', 'a', 'l', 'l', 32, 'E', 'x', 'i', 't', '.', 0, ++ /* 11334 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'F', 'u', 'n', 'c', 't', 'i', 'o', 'n', 32, 'E', 'x', 'i', 't', '.', 0, ++ /* 11356 */ 'L', 'I', 'F', 'E', 'T', 'I', 'M', 'E', '_', 'E', 'N', 'D', 0, ++ /* 11369 */ 'B', 'U', 'N', 'D', 'L', 'E', 0, ++ /* 11376 */ 'D', 'B', 'G', '_', 'V', 'A', 'L', 'U', 'E', 0, ++ /* 11386 */ 'D', 'B', 'G', '_', 'L', 'A', 'B', 'E', 'L', 0, ++ /* 11396 */ 'L', 'I', 'F', 'E', 'T', 'I', 'M', 'E', '_', 'S', 'T', 'A', 'R', 'T', 0, ++ /* 11411 */ 't', 'l', 'b', 'r', 'd', 0, ++ /* 11417 */ 't', 'l', 'b', 's', 'r', 'c', 'h', 0, ++ /* 11425 */ 't', 'l', 'b', 'f', 'l', 'u', 's', 'h', 0, ++ /* 11434 */ '#', 32, 'F', 'E', 'n', 't', 'r', 'y', 32, 'c', 'a', 'l', 'l', 0, ++ /* 11448 */ 't', 'l', 'b', 'f', 'i', 'l', 'l', 0, ++ /* 11456 */ 'e', 'r', 't', 'n', 0, ++ /* 11461 */ 't', 'l', 'b', 'c', 'l', 'r', 0, ++ /* 11468 */ 't', 'l', 'b', 'w', 'r', 0, ++ }; ++ ++ static const uint32_t OpInfo0[] = { ++ 0U, // PHI ++ 0U, // INLINEASM ++ 0U, // INLINEASM_BR ++ 0U, // CFI_INSTRUCTION ++ 0U, // EH_LABEL ++ 0U, // GC_LABEL ++ 0U, // ANNOTATION_LABEL ++ 0U, // KILL ++ 0U, // EXTRACT_SUBREG ++ 0U, // INSERT_SUBREG ++ 0U, // IMPLICIT_DEF ++ 0U, // SUBREG_TO_REG ++ 0U, // COPY_TO_REGCLASS ++ 11377U, // DBG_VALUE ++ 11387U, // DBG_LABEL ++ 0U, // REG_SEQUENCE ++ 0U, // COPY ++ 11370U, // BUNDLE ++ 11397U, // LIFETIME_START ++ 11357U, // LIFETIME_END ++ 0U, // STACKMAP ++ 11435U, // FENTRY_CALL ++ 0U, // PATCHPOINT ++ 0U, // LOAD_STACK_GUARD ++ 0U, // STATEPOINT ++ 0U, // LOCAL_ESCAPE ++ 0U, // FAULTING_OP ++ 0U, // PATCHABLE_OP ++ 11289U, // PATCHABLE_FUNCTION_ENTER ++ 11203U, // PATCHABLE_RET ++ 11335U, // PATCHABLE_FUNCTION_EXIT ++ 11312U, // PATCHABLE_TAIL_CALL ++ 11258U, // PATCHABLE_EVENT_CALL ++ 11234U, // PATCHABLE_TYPED_EVENT_CALL ++ 0U, // ICALL_BRANCH_FUNNEL ++ 0U, // G_ADD ++ 0U, // G_SUB ++ 0U, // G_MUL ++ 0U, // G_SDIV ++ 0U, // G_UDIV ++ 0U, // G_SREM ++ 0U, // G_UREM ++ 0U, // G_AND ++ 0U, // G_OR ++ 0U, // G_XOR ++ 0U, // G_IMPLICIT_DEF ++ 0U, // G_PHI ++ 0U, // G_FRAME_INDEX ++ 0U, // G_GLOBAL_VALUE ++ 0U, // G_EXTRACT ++ 0U, // G_UNMERGE_VALUES ++ 0U, // G_INSERT ++ 0U, // G_MERGE_VALUES ++ 0U, // G_BUILD_VECTOR ++ 0U, // G_BUILD_VECTOR_TRUNC ++ 0U, // G_CONCAT_VECTORS ++ 0U, // G_PTRTOINT ++ 0U, // G_INTTOPTR ++ 0U, // G_BITCAST ++ 0U, // G_INTRINSIC_TRUNC ++ 0U, // G_INTRINSIC_ROUND ++ 0U, // G_READCYCLECOUNTER ++ 0U, // G_LOAD ++ 0U, // G_SEXTLOAD ++ 0U, // G_ZEXTLOAD ++ 0U, // G_INDEXED_LOAD ++ 0U, // G_INDEXED_SEXTLOAD ++ 0U, // G_INDEXED_ZEXTLOAD ++ 0U, // G_STORE ++ 0U, // G_INDEXED_STORE ++ 0U, // G_ATOMIC_CMPXCHG_WITH_SUCCESS ++ 0U, // G_ATOMIC_CMPXCHG ++ 0U, // G_ATOMICRMW_XCHG ++ 0U, // G_ATOMICRMW_ADD ++ 0U, // G_ATOMICRMW_SUB ++ 0U, // G_ATOMICRMW_AND ++ 0U, // G_ATOMICRMW_NAND ++ 0U, // G_ATOMICRMW_OR ++ 0U, // G_ATOMICRMW_XOR ++ 0U, // G_ATOMICRMW_MAX ++ 0U, // G_ATOMICRMW_MIN ++ 0U, // G_ATOMICRMW_UMAX ++ 0U, // G_ATOMICRMW_UMIN ++ 0U, // G_ATOMICRMW_FADD ++ 0U, // G_ATOMICRMW_FSUB ++ 0U, // G_FENCE ++ 0U, // G_BRCOND ++ 0U, // G_BRINDIRECT ++ 0U, // G_INTRINSIC ++ 0U, // G_INTRINSIC_W_SIDE_EFFECTS ++ 0U, // G_ANYEXT ++ 0U, // G_TRUNC ++ 0U, // G_CONSTANT ++ 0U, // G_FCONSTANT ++ 0U, // G_VASTART ++ 0U, // G_VAARG ++ 0U, // G_SEXT ++ 0U, // G_SEXT_INREG ++ 0U, // G_ZEXT ++ 0U, // G_SHL ++ 0U, // G_LSHR ++ 0U, // G_ASHR ++ 0U, // G_ICMP ++ 0U, // G_FCMP ++ 0U, // G_SELECT ++ 0U, // G_UADDO ++ 0U, // G_UADDE ++ 0U, // G_USUBO ++ 0U, // G_USUBE ++ 0U, // G_SADDO ++ 0U, // G_SADDE ++ 0U, // G_SSUBO ++ 0U, // G_SSUBE ++ 0U, // G_UMULO ++ 0U, // G_SMULO ++ 0U, // G_UMULH ++ 0U, // G_SMULH ++ 0U, // G_FADD ++ 0U, // G_FSUB ++ 0U, // G_FMUL ++ 0U, // G_FMA ++ 0U, // G_FMAD ++ 0U, // G_FDIV ++ 0U, // G_FREM ++ 0U, // G_FPOW ++ 0U, // G_FEXP ++ 0U, // G_FEXP2 ++ 0U, // G_FLOG ++ 0U, // G_FLOG2 ++ 0U, // G_FLOG10 ++ 0U, // G_FNEG ++ 0U, // G_FPEXT ++ 0U, // G_FPTRUNC ++ 0U, // G_FPTOSI ++ 0U, // G_FPTOUI ++ 0U, // G_SITOFP ++ 0U, // G_UITOFP ++ 0U, // G_FABS ++ 0U, // G_FCOPYSIGN ++ 0U, // G_FCANONICALIZE ++ 0U, // G_FMINNUM ++ 0U, // G_FMAXNUM ++ 0U, // G_FMINNUM_IEEE ++ 0U, // G_FMAXNUM_IEEE ++ 0U, // G_FMINIMUM ++ 0U, // G_FMAXIMUM ++ 0U, // G_PTR_ADD ++ 0U, // G_PTR_MASK ++ 0U, // G_SMIN ++ 0U, // G_SMAX ++ 0U, // G_UMIN ++ 0U, // G_UMAX ++ 0U, // G_BR ++ 0U, // G_BRJT ++ 0U, // G_INSERT_VECTOR_ELT ++ 0U, // G_EXTRACT_VECTOR_ELT ++ 0U, // G_SHUFFLE_VECTOR ++ 0U, // G_CTTZ ++ 0U, // G_CTTZ_ZERO_UNDEF ++ 0U, // G_CTLZ ++ 0U, // G_CTLZ_ZERO_UNDEF ++ 0U, // G_CTPOP ++ 0U, // G_BSWAP ++ 0U, // G_BITREVERSE ++ 0U, // G_FCEIL ++ 0U, // G_FCOS ++ 0U, // G_FSIN ++ 0U, // G_FSQRT ++ 0U, // G_FFLOOR ++ 0U, // G_FRINT ++ 0U, // G_FNEARBYINT ++ 0U, // G_ADDRSPACE_CAST ++ 0U, // G_BLOCK_ADDR ++ 0U, // G_JUMP_TABLE ++ 0U, // G_DYN_STACKALLOC ++ 0U, // G_READ_REGISTER ++ 0U, // G_WRITE_REGISTER ++ 0U, // ADJCALLSTACKDOWN ++ 0U, // ADJCALLSTACKUP ++ 0U, // AND_V_D_PSEUDO ++ 0U, // AND_V_H_PSEUDO ++ 0U, // AND_V_W_PSEUDO ++ 0U, // ATOMIC_CMP_SWAP_I16 ++ 0U, // ATOMIC_CMP_SWAP_I16_POSTRA ++ 0U, // ATOMIC_CMP_SWAP_I32 ++ 0U, // ATOMIC_CMP_SWAP_I32_POSTRA ++ 0U, // ATOMIC_CMP_SWAP_I64 ++ 0U, // ATOMIC_CMP_SWAP_I64_POSTRA ++ 0U, // ATOMIC_CMP_SWAP_I8 ++ 0U, // ATOMIC_CMP_SWAP_I8_POSTRA ++ 0U, // ATOMIC_LOAD_ADD_I16 ++ 0U, // ATOMIC_LOAD_ADD_I16_POSTRA ++ 0U, // ATOMIC_LOAD_ADD_I32 ++ 0U, // ATOMIC_LOAD_ADD_I32_POSTRA ++ 0U, // ATOMIC_LOAD_ADD_I64 ++ 0U, // ATOMIC_LOAD_ADD_I64_POSTRA ++ 0U, // ATOMIC_LOAD_ADD_I8 ++ 0U, // ATOMIC_LOAD_ADD_I8_POSTRA ++ 0U, // ATOMIC_LOAD_AND_I16 ++ 0U, // ATOMIC_LOAD_AND_I16_POSTRA ++ 0U, // ATOMIC_LOAD_AND_I32 ++ 0U, // ATOMIC_LOAD_AND_I32_POSTRA ++ 0U, // ATOMIC_LOAD_AND_I64 ++ 0U, // ATOMIC_LOAD_AND_I64_POSTRA ++ 0U, // ATOMIC_LOAD_AND_I8 ++ 0U, // ATOMIC_LOAD_AND_I8_POSTRA ++ 0U, // ATOMIC_LOAD_MAX_I16 ++ 0U, // ATOMIC_LOAD_MAX_I16_POSTRA ++ 0U, // ATOMIC_LOAD_MAX_I32 ++ 0U, // ATOMIC_LOAD_MAX_I32_POSTRA ++ 0U, // ATOMIC_LOAD_MAX_I64 ++ 0U, // ATOMIC_LOAD_MAX_I64_POSTRA ++ 0U, // ATOMIC_LOAD_MAX_I8 ++ 0U, // ATOMIC_LOAD_MAX_I8_POSTRA ++ 0U, // ATOMIC_LOAD_MIN_I16 ++ 0U, // ATOMIC_LOAD_MIN_I16_POSTRA ++ 0U, // ATOMIC_LOAD_MIN_I32 ++ 0U, // ATOMIC_LOAD_MIN_I32_POSTRA ++ 0U, // ATOMIC_LOAD_MIN_I64 ++ 0U, // ATOMIC_LOAD_MIN_I64_POSTRA ++ 0U, // ATOMIC_LOAD_MIN_I8 ++ 0U, // ATOMIC_LOAD_MIN_I8_POSTRA ++ 0U, // ATOMIC_LOAD_NAND_I16 ++ 0U, // ATOMIC_LOAD_NAND_I16_POSTRA ++ 0U, // ATOMIC_LOAD_NAND_I32 ++ 0U, // ATOMIC_LOAD_NAND_I32_POSTRA ++ 0U, // ATOMIC_LOAD_NAND_I64 ++ 0U, // ATOMIC_LOAD_NAND_I64_POSTRA ++ 0U, // ATOMIC_LOAD_NAND_I8 ++ 0U, // ATOMIC_LOAD_NAND_I8_POSTRA ++ 0U, // ATOMIC_LOAD_OR_I16 ++ 0U, // ATOMIC_LOAD_OR_I16_POSTRA ++ 0U, // ATOMIC_LOAD_OR_I32 ++ 0U, // ATOMIC_LOAD_OR_I32_POSTRA ++ 0U, // ATOMIC_LOAD_OR_I64 ++ 0U, // ATOMIC_LOAD_OR_I64_POSTRA ++ 0U, // ATOMIC_LOAD_OR_I8 ++ 0U, // ATOMIC_LOAD_OR_I8_POSTRA ++ 0U, // ATOMIC_LOAD_SUB_I16 ++ 0U, // ATOMIC_LOAD_SUB_I16_POSTRA ++ 0U, // ATOMIC_LOAD_SUB_I32 ++ 0U, // ATOMIC_LOAD_SUB_I32_POSTRA ++ 0U, // ATOMIC_LOAD_SUB_I64 ++ 0U, // ATOMIC_LOAD_SUB_I64_POSTRA ++ 0U, // ATOMIC_LOAD_SUB_I8 ++ 0U, // ATOMIC_LOAD_SUB_I8_POSTRA ++ 0U, // ATOMIC_LOAD_UMAX_I16 ++ 0U, // ATOMIC_LOAD_UMAX_I16_POSTRA ++ 0U, // ATOMIC_LOAD_UMAX_I32 ++ 0U, // ATOMIC_LOAD_UMAX_I32_POSTRA ++ 0U, // ATOMIC_LOAD_UMAX_I64 ++ 0U, // ATOMIC_LOAD_UMAX_I64_POSTRA ++ 0U, // ATOMIC_LOAD_UMAX_I8 ++ 0U, // ATOMIC_LOAD_UMAX_I8_POSTRA ++ 0U, // ATOMIC_LOAD_UMIN_I16 ++ 0U, // ATOMIC_LOAD_UMIN_I16_POSTRA ++ 0U, // ATOMIC_LOAD_UMIN_I32 ++ 0U, // ATOMIC_LOAD_UMIN_I32_POSTRA ++ 0U, // ATOMIC_LOAD_UMIN_I64 ++ 0U, // ATOMIC_LOAD_UMIN_I64_POSTRA ++ 0U, // ATOMIC_LOAD_UMIN_I8 ++ 0U, // ATOMIC_LOAD_UMIN_I8_POSTRA ++ 0U, // ATOMIC_LOAD_XOR_I16 ++ 0U, // ATOMIC_LOAD_XOR_I16_POSTRA ++ 0U, // ATOMIC_LOAD_XOR_I32 ++ 0U, // ATOMIC_LOAD_XOR_I32_POSTRA ++ 0U, // ATOMIC_LOAD_XOR_I64 ++ 0U, // ATOMIC_LOAD_XOR_I64_POSTRA ++ 0U, // ATOMIC_LOAD_XOR_I8 ++ 0U, // ATOMIC_LOAD_XOR_I8_POSTRA ++ 0U, // ATOMIC_SWAP_I16 ++ 0U, // ATOMIC_SWAP_I16_POSTRA ++ 0U, // ATOMIC_SWAP_I32 ++ 0U, // ATOMIC_SWAP_I32_POSTRA ++ 0U, // ATOMIC_SWAP_I64 ++ 0U, // ATOMIC_SWAP_I64_POSTRA ++ 0U, // ATOMIC_SWAP_I8 ++ 0U, // ATOMIC_SWAP_I8_POSTRA ++ 0U, // BSEL_B_PSEUDO ++ 0U, // BSEL_D_PSEUDO ++ 0U, // BSEL_FD_PSEUDO ++ 0U, // BSEL_FW_PSEUDO ++ 0U, // BSEL_H_PSEUDO ++ 0U, // BSEL_W_PSEUDO ++ 0U, // CONCAT_VECTORS_B_PSEUDO ++ 0U, // CONCAT_VECTORS_D_PSEUDO ++ 0U, // CONCAT_VECTORS_FD_PSEUDO ++ 0U, // CONCAT_VECTORS_FW_PSEUDO ++ 0U, // CONCAT_VECTORS_H_PSEUDO ++ 0U, // CONCAT_VECTORS_W_PSEUDO ++ 0U, // COPY_FD_PSEUDO ++ 0U, // COPY_FW_PSEUDO ++ 0U, // ERet ++ 0U, // FILL_FD_PSEUDO ++ 0U, // FILL_FW_PSEUDO ++ 0U, // INSERT_FD_PSEUDO ++ 0U, // INSERT_FW_PSEUDO ++ 0U, // INSERT_H_VIDX64_PSEUDO ++ 0U, // INSERT_H_VIDX64_PSEUDO_POSTRA ++ 0U, // JIRLRBRIND ++ 0U, // JIRLRPseudo ++ 0U, // LONG_BRANCH_ADDID ++ 0U, // LONG_BRANCH_ADDID2Op ++ 0U, // LONG_BRANCH_ADDIW ++ 0U, // LONG_BRANCH_ADDIW2Op ++ 0U, // LONG_BRANCH_PCADDU12I ++ 22060U, // LoadAddrGlobal ++ 16799276U, // LoadAddrGlobalRR ++ 16385U, // LoadAddrGlobal_Alias ++ 22071U, // LoadAddrLocal ++ 16799287U, // LoadAddrLocalRR ++ 20292U, // LoadAddrTLS_GD ++ 16797508U, // LoadAddrTLS_GD_RR ++ 20344U, // LoadAddrTLS_IE ++ 16797560U, // LoadAddrTLS_IE_RR ++ 20303U, // LoadAddrTLS_LD ++ 16797519U, // LoadAddrTLS_LD_RR ++ 20355U, // LoadAddrTLS_LE ++ 26546U, // LoadImm32 ++ 18451U, // LoadImm64 ++ 0U, // LoongArcheh_return32 ++ 0U, // LoongArcheh_return64 ++ 0U, // NOP ++ 0U, // NOR_V_D_PSEUDO ++ 0U, // NOR_V_H_PSEUDO ++ 0U, // NOR_V_W_PSEUDO ++ 0U, // OR_V_D_PSEUDO ++ 0U, // OR_V_H_PSEUDO ++ 0U, // OR_V_W_PSEUDO ++ 0U, // PseudoCall ++ 16387U, // PseudoFFINT_D_L ++ 16387U, // PseudoFFINT_D_W ++ 16387U, // PseudoFFINT_S_L ++ 16387U, // PseudoFFINT_S_W ++ 0U, // PseudoReturn ++ 0U, // PseudoReturn64 ++ 0U, // PseudoSELECTFP_F_I ++ 0U, // PseudoSELECTFP_F_I64 ++ 0U, // PseudoSELECTFP_T_I ++ 0U, // PseudoSELECTFP_T_I64 ++ 0U, // PseudoSELECT_D64 ++ 0U, // PseudoSELECT_I ++ 0U, // PseudoSELECT_I64 ++ 0U, // PseudoSELECT_S ++ 0U, // PseudoTAILIndirect ++ 0U, // PseudoTEQ ++ 0U, // PseudoTailCall ++ 0U, // PseudoTailReturn ++ 0U, // RetRA ++ 0U, // SNZ_B_PSEUDO ++ 0U, // SNZ_D_PSEUDO ++ 0U, // SNZ_H_PSEUDO ++ 0U, // SNZ_V_PSEUDO ++ 0U, // SNZ_W_PSEUDO ++ 0U, // SZ_B_PSEUDO ++ 0U, // SZ_D_PSEUDO ++ 0U, // SZ_H_PSEUDO ++ 0U, // SZ_V_PSEUDO ++ 0U, // SZ_W_PSEUDO ++ 0U, // TRAP ++ 0U, // VANDN_D_PSEUDO ++ 0U, // VANDN_H_PSEUDO ++ 0U, // VANDN_W_PSEUDO ++ 0U, // VORN_D_PSEUDO ++ 0U, // VORN_H_PSEUDO ++ 0U, // VORN_W_PSEUDO ++ 0U, // XAND_V_D_PSEUDO ++ 0U, // XAND_V_H_PSEUDO ++ 0U, // XAND_V_W_PSEUDO ++ 0U, // XBSEL_B_PSEUDO ++ 0U, // XBSEL_D_PSEUDO ++ 0U, // XBSEL_FD_PSEUDO ++ 0U, // XBSEL_FW_PSEUDO ++ 0U, // XBSEL_H_PSEUDO ++ 0U, // XBSEL_W_PSEUDO ++ 0U, // XCOPY_FD_PSEUDO ++ 0U, // XCOPY_FW_GPR_PSEUDO ++ 0U, // XCOPY_FW_PSEUDO ++ 0U, // XFILL_FD_PSEUDO ++ 0U, // XFILL_FW_PSEUDO ++ 0U, // XINSERT_B_PSEUDO ++ 0U, // XINSERT_B_VIDX64_PSEUDO ++ 0U, // XINSERT_B_VIDX64_PSEUDO_POSTRA ++ 0U, // XINSERT_B_VIDX_PSEUDO ++ 0U, // XINSERT_B_VIDX_PSEUDO_POSTRA ++ 0U, // XINSERT_FD_PSEUDO ++ 0U, // XINSERT_FW_PSEUDO ++ 0U, // XINSERT_FW_VIDX64_PSEUDO ++ 0U, // XINSERT_FW_VIDX64_PSEUDO_POSTRA ++ 0U, // XINSERT_FW_VIDX_PSEUDO ++ 0U, // XINSERT_FW_VIDX_PSEUDO_POSTRA ++ 0U, // XINSERT_H64_PSEUDO ++ 0U, // XINSERT_H_PSEUDO ++ 0U, // XNOR_V_D_PSEUDO ++ 0U, // XNOR_V_H_PSEUDO ++ 0U, // XNOR_V_W_PSEUDO ++ 0U, // XOR_V_D_PSEUDO ++ 0U, // XOR_V_H_PSEUDO ++ 0U, // XOR_V_W_PSEUDO ++ 0U, // XSNZ_B_PSEUDO ++ 0U, // XSNZ_D_PSEUDO ++ 0U, // XSNZ_H_PSEUDO ++ 0U, // XSNZ_V_PSEUDO ++ 0U, // XSNZ_W_PSEUDO ++ 0U, // XSZ_B_PSEUDO ++ 0U, // XSZ_D_PSEUDO ++ 0U, // XSZ_H_PSEUDO ++ 0U, // XSZ_V_PSEUDO ++ 0U, // XSZ_W_PSEUDO ++ 0U, // XVANDN_D_PSEUDO ++ 0U, // XVANDN_H_PSEUDO ++ 0U, // XVANDN_W_PSEUDO ++ 0U, // XVORN_D_PSEUDO ++ 0U, // XVORN_H_PSEUDO ++ 0U, // XVORN_W_PSEUDO ++ 0U, // XXOR_V_D_PSEUDO ++ 0U, // XXOR_V_H_PSEUDO ++ 0U, // XXOR_V_W_PSEUDO ++ 0U, // X_OR_V_D_PSEUDO ++ 0U, // X_OR_V_H_PSEUDO ++ 0U, // X_OR_V_W_PSEUDO ++ 16795616U, // ADDI_D ++ 16795616U, // ADDI_D_rri ++ 16795616U, // ADDI_D_rrii ++ 16803712U, // ADDI_W ++ 16803712U, // ADDI_W64 ++ 16795595U, // ADDU16I_D ++ 16795127U, // ADD_D ++ 16795127U, // ADD_D_rrr ++ 16803209U, // ADD_W ++ 16795944U, // ALSL_D ++ 16803966U, // ALSL_W ++ 16802457U, // ALSL_WU ++ 285230590U, // AMADD_D ++ 285230398U, // AMADD_DB_D ++ 285238293U, // AMADD_DB_W ++ 285238663U, // AMADD_W ++ 285230658U, // AMAND_D ++ 285230410U, // AMAND_DB_D ++ 285238305U, // AMAND_DB_W ++ 285238707U, // AMAND_W ++ 285232859U, // AMMAX_D ++ 285230470U, // AMMAX_DB_D ++ 285236687U, // AMMAX_DB_DU ++ 285238365U, // AMMAX_DB_W ++ 285237612U, // AMMAX_DB_WU ++ 285237105U, // AMMAX_DU ++ 285240081U, // AMMAX_W ++ 285238088U, // AMMAX_WU ++ 285231484U, // AMMIN_D ++ 285230422U, // AMMIN_DB_D ++ 285236674U, // AMMIN_DB_DU ++ 285238317U, // AMMIN_DB_W ++ 285237599U, // AMMIN_DB_WU ++ 285236848U, // AMMIN_DU ++ 285239470U, // AMMIN_W ++ 285237922U, // AMMIN_WU ++ 285231907U, // AMOR_D ++ 285230447U, // AMOR_DB_D ++ 285238342U, // AMOR_DB_W ++ 285239592U, // AMOR_W ++ 285231546U, // AMSWAP_D ++ 285230434U, // AMSWAP_DB_D ++ 285238329U, // AMSWAP_DB_W ++ 285239504U, // AMSWAP_W ++ 285231929U, // AMXOR_D ++ 285230458U, // AMXOR_DB_D ++ 285238353U, // AMXOR_DB_W ++ 285239600U, // AMXOR_W ++ 16797543U, // AND ++ 16797543U, // AND32 ++ 553670130U, // ANDI ++ 553670130U, // ANDI32 ++ 16799347U, // ANDN ++ 16799347U, // ANDN32 ++ 19420U, // ASRTGT_D ++ 18095U, // ASRTLE_D ++ 147471U, // B ++ 147471U, // B32 ++ 27559U, // BCEQZ ++ 27537U, // BCNEZ ++ 16799581U, // BEQ ++ 16799581U, // BEQ32 ++ 27553U, // BEQZ ++ 27553U, // BEQZ32 ++ 16797555U, // BGE ++ 16797555U, // BGE32 ++ 16801669U, // BGEU ++ 16801669U, // BGEU32 ++ 17630U, // BITREV_4B ++ 17641U, // BITREV_8B ++ 19837U, // BITREV_D ++ 27354U, // BITREV_W ++ 153153U, // BL ++ 16800745U, // BLT ++ 16800745U, // BLT32 ++ 16802131U, // BLTU ++ 16802131U, // BLTU32 ++ 16797588U, // BNE ++ 16797588U, // BNE32 ++ 27531U, // BNEZ ++ 27531U, // BNEZ32 ++ 38411U, // BREAK ++ 822102938U, // BSTRINS_D ++ 1090546058U, // BSTRINS_W ++ 822102196U, // BSTRPICK_D ++ 1090545737U, // BSTRPICK_W ++ 16795816U, // BYTEPICK_D ++ 16803901U, // BYTEPICK_W ++ 54910U, // CACOP ++ 54910U, // CACOP32 ++ 18860U, // CLO_D ++ 26818U, // CLO_W ++ 20238U, // CLZ_D ++ 27458U, // CLZ_W ++ 20404U, // CPUCFG ++ 16802814U, // CRCC_W_B_W ++ 16803148U, // CRCC_W_D_W ++ 16803607U, // CRCC_W_H_W ++ 16804602U, // CRCC_W_W_W ++ 16802826U, // CRC_W_B_W ++ 16803160U, // CRC_W_D_W ++ 16803619U, // CRC_W_H_W ++ 16804614U, // CRC_W_W_W ++ 1068908U, // CSRRD ++ 1068908U, // CSRRD32 ++ 333739U, // CSRWR ++ 333739U, // CSRWR32 ++ 2559932U, // CSRXCHG ++ 2559932U, // CSRXCHG32 ++ 18867U, // CTO_D ++ 26825U, // CTO_W ++ 20273U, // CTZ_D ++ 27480U, // CTZ_W ++ 38754U, // DBAR ++ 38469U, // DBCL ++ 16797066U, // DIV_D ++ 16801641U, // DIV_DU ++ 16804582U, // DIV_W ++ 16802624U, // DIV_WU ++ 11457U, // ERTN ++ 17511U, // EXT_W_B ++ 17511U, // EXT_W_B32 ++ 21757U, // EXT_W_H ++ 21757U, // EXT_W_H32 ++ 19346U, // FABS_D ++ 23231U, // FABS_S ++ 16795126U, // FADD_D ++ 16799781U, // FADD_S ++ 19380U, // FCLASS_D ++ 23241U, // FCLASS_S ++ 16795468U, // FCMP_CAF_D ++ 16799969U, // FCMP_CAF_S ++ 16796291U, // FCMP_CEQ_D ++ 16800338U, // FCMP_CEQ_S ++ 16795267U, // FCMP_CLE_D ++ 16799821U, // FCMP_CLE_S ++ 16796657U, // FCMP_CLT_D ++ 16800487U, // FCMP_CLT_S ++ 16795372U, // FCMP_CNE_D ++ 16799897U, // FCMP_CNE_S ++ 16796439U, // FCMP_COR_D ++ 16800421U, // FCMP_COR_S ++ 16796328U, // FCMP_CUEQ_D ++ 16800366U, // FCMP_CUEQ_S ++ 16795332U, // FCMP_CULE_D ++ 16799867U, // FCMP_CULE_S ++ 16796694U, // FCMP_CULT_D ++ 16800515U, // FCMP_CULT_S ++ 16795414U, // FCMP_CUNE_D ++ 16799939U, // FCMP_CUNE_S ++ 16796048U, // FCMP_CUN_D ++ 16800285U, // FCMP_CUN_S ++ 617491U, // FCMP_D64 ++ 748563U, // FCMP_S32 ++ 16795482U, // FCMP_SAF_D ++ 16799983U, // FCMP_SAF_S ++ 16796305U, // FCMP_SEQ_D ++ 16800352U, // FCMP_SEQ_S ++ 16795290U, // FCMP_SLE_D ++ 16799844U, // FCMP_SLE_S ++ 16796671U, // FCMP_SLT_D ++ 16800501U, // FCMP_SLT_S ++ 16795400U, // FCMP_SNE_D ++ 16799925U, // FCMP_SNE_S ++ 16796461U, // FCMP_SOR_D ++ 16800435U, // FCMP_SOR_S ++ 16796343U, // FCMP_SUEQ_D ++ 16800381U, // FCMP_SUEQ_S ++ 16795347U, // FCMP_SULE_D ++ 16799882U, // FCMP_SULE_S ++ 16796709U, // FCMP_SULT_D ++ 16800530U, // FCMP_SULT_S ++ 16795429U, // FCMP_SUNE_D ++ 16799954U, // FCMP_SUNE_S ++ 16796062U, // FCMP_SUN_D ++ 16800299U, // FCMP_SUN_S ++ 16796005U, // FCOPYSIGN_D ++ 16800260U, // FCOPYSIGN_S ++ 22553U, // FCVT_D_S ++ 19336U, // FCVT_S_D ++ 16797065U, // FDIV_D ++ 16800616U, // FDIV_S ++ 22036U, // FFINT_D_L ++ 25851U, // FFINT_D_W ++ 22049U, // FFINT_S_L ++ 27007U, // FFINT_S_W ++ 16796627U, // FLDGT_D ++ 16800467U, // FLDGT_S ++ 16795279U, // FLDLE_D ++ 16799833U, // FLDLE_S ++ 16797421U, // FLDX_D ++ 16800716U, // FLDX_S ++ 3163707U, // FLD_D ++ 3168324U, // FLD_S ++ 17823U, // FLOGB_D ++ 22485U, // FLOGB_S ++ 16795145U, // FMADD_D ++ 16799791U, // FMADD_S ++ 16794933U, // FMAXA_D ++ 16799679U, // FMAXA_S ++ 16797395U, // FMAX_D ++ 16800708U, // FMAX_S ++ 16794913U, // FMINA_D ++ 16799668U, // FMINA_S ++ 16796020U, // FMIN_D ++ 16800275U, // FMIN_S ++ 19879U, // FMOV_D ++ 23408U, // FMOV_S ++ 16795060U, // FMSUB_D ++ 16799722U, // FMSUB_S ++ 16795954U, // FMUL_D ++ 16800239U, // FMUL_S ++ 18288U, // FNEG_D ++ 22779U, // FNEG_S ++ 16795156U, // FNMADD_D ++ 16799802U, // FNMADD_S ++ 16795071U, // FNMSUB_D ++ 16799733U, // FNMSUB_S ++ 18886U, // FRECIP_D ++ 23097U, // FRECIP_S ++ 19518U, // FRINT_D ++ 23329U, // FRINT_S ++ 19540U, // FRSQRT_D ++ 23351U, // FRSQRT_S ++ 16795026U, // FSCALEB_D ++ 16799688U, // FSCALEB_S ++ 1379948117U, // FSEL_T_D ++ 1379948117U, // FSEL_T_S ++ 19529U, // FSQRT_D ++ 23340U, // FSQRT_S ++ 16796646U, // FSTGT_D ++ 16800476U, // FSTGT_S ++ 16795321U, // FSTLE_D ++ 16799856U, // FSTLE_S ++ 16797429U, // FSTX_D ++ 16800724U, // FSTX_S ++ 3165278U, // FST_D ++ 3169089U, // FST_S ++ 16795050U, // FSUB_D ++ 16799712U, // FSUB_S ++ 18642U, // FTINTRM_L_D ++ 22971U, // FTINTRM_L_S ++ 20017U, // FTINTRM_W_D ++ 23434U, // FTINTRM_W_S ++ 18626U, // FTINTRNE_L_D ++ 22799U, // FTINTRNE_L_S ++ 19889U, // FTINTRNE_W_D ++ 23418U, // FTINTRNE_W_S ++ 18657U, // FTINTRP_L_D ++ 22984U, // FTINTRP_L_S ++ 20136U, // FTINTRP_W_D ++ 23449U, // FTINTRP_W_S ++ 18685U, // FTINTRZ_L_D ++ 23008U, // FTINTRZ_L_S ++ 23477U, // FTINTRZ_W_S ++ 18672U, // FTINT_L_D ++ 22997U, // FTINT_L_S ++ 20151U, // FTINT_W_D ++ 23464U, // FTINT_W_S ++ 38491U, // HYPCALL ++ 38760U, // IBAR ++ 36750U, // IDLE ++ 50420U, // INVTLB ++ 16531U, // IOCSRRD_B ++ 16531U, // IOCSRRD_B32 ++ 18028U, // IOCSRRD_D ++ 20779U, // IOCSRRD_H ++ 20779U, // IOCSRRD_H32 ++ 26077U, // IOCSRRD_W ++ 26077U, // IOCSRRD_W32 ++ 17263U, // IOCSRWR_B32 ++ 19323U, // IOCSRWR_D ++ 21280U, // IOCSRWR_H32 ++ 26994U, // IOCSRWR_W32 ++ 16799341U, // JIRL ++ 16799341U, // JIRL32 ++ 50353773U, // JIRLR ++ 16799341U, // JIRL_CALL ++ 5264971U, // LAPCREL ++ 1627412366U, // LDDIR ++ 1627412366U, // LDDIR32 ++ 16794524U, // LDGT_B ++ 16796628U, // LDGT_D ++ 16798567U, // LDGT_H ++ 16804279U, // LDGT_W ++ 16793768U, // LDLE_B ++ 16795280U, // LDLE_D ++ 16798016U, // LDLE_H ++ 16803314U, // LDLE_W ++ 6311833U, // LDPTE ++ 6311833U, // LDPTE32 ++ 3165004U, // LDPTR_D ++ 3172675U, // LDPTR_W ++ 3172675U, // LDPTR_W32 ++ 16794758U, // LDX_B ++ 16794758U, // LDX_B32 ++ 16801210U, // LDX_BU ++ 16801210U, // LDX_BU32 ++ 16797422U, // LDX_D ++ 16797422U, // LDX_D_rrr ++ 16799087U, // LDX_H ++ 16799087U, // LDX_H32 ++ 16802109U, // LDX_HU ++ 16802109U, // LDX_HU32 ++ 16804643U, // LDX_W ++ 16804643U, // LDX_W32 ++ 16802652U, // LDX_WU ++ 3162220U, // LD_B ++ 3162220U, // LD_B32 ++ 3169295U, // LD_BU ++ 3169295U, // LD_BU32 ++ 3163708U, // LD_D ++ 3163708U, // LD_D_rri ++ 16795196U, // LD_D_rrii ++ 3166468U, // LD_H ++ 3166468U, // LD_H32 ++ 3170209U, // LD_HU ++ 3170209U, // LD_HU32 ++ 3171757U, // LD_W ++ 3171757U, // LD_W32 ++ 3170836U, // LD_WU ++ 7358432U, // LEA_ADDI_D ++ 7366528U, // LEA_ADDI_W ++ 3164429U, // LL_D ++ 3172451U, // LL_W ++ 26465U, // LU12I_W ++ 26465U, // LU12I_W32 ++ 26465U, // LU12I_W_ri ++ 18349U, // LU32I_D ++ 8849325U, // LU32I_D_R2 ++ 18349U, // LU32I_D_ri ++ 18349U, // LU32I_D_rii ++ 16795574U, // LU52I_D ++ 16795574U, // LU52I_D_rri ++ 16795574U, // LU52I_D_rrii ++ 16804782U, // MASKEQZ ++ 16804782U, // MASKEQZ32 ++ 16804760U, // MASKNEZ ++ 16804760U, // MASKNEZ32 ++ 16795237U, // MOD_D ++ 16801268U, // MOD_DU ++ 16803286U, // MOD_W ++ 16802333U, // MOD_WU ++ 22382U, // MOVCF2FR ++ 22382U, // MOVCF2FR32 ++ 22392U, // MOVCF2GR ++ 22392U, // MOVCF2GR32 ++ 22402U, // MOVFCSR2GR ++ 20384U, // MOVFR2CF ++ 20384U, // MOVFR2CF32 ++ 19177U, // MOVFR2GR_D ++ 23191U, // MOVFR2GR_DS ++ 23191U, // MOVFR2GR_S ++ 23178U, // MOVFRH2GR_S ++ 20394U, // MOVGR2CF ++ 20394U, // MOVGR2CF32 ++ 22431U, // MOVGR2FCSR ++ 26433U, // MOVGR2FRH_W ++ 19150U, // MOVGR2FR_D ++ 26861U, // MOVGR2FR_W ++ 16795530U, // MULH_D ++ 16801307U, // MULH_DU ++ 16803641U, // MULH_W ++ 16802372U, // MULH_WU ++ 16803197U, // MULW_D_W ++ 16802302U, // MULW_D_WU ++ 16795955U, // MUL_D ++ 16803976U, // MUL_W ++ 16799637U, // NOR ++ 16799637U, // NOR32 ++ 16799638U, // OR ++ 16799638U, // OR32 ++ 553670137U, // ORI ++ 553670137U, // ORI32 ++ 553670137U, // ORI_rri ++ 553670137U, // ORI_rrii ++ 16799353U, // ORN ++ 16799353U, // ORN32 ++ 21987U, // PCADDI ++ 21987U, // PCADDI32 ++ 21965U, // PCADDU12I ++ 21965U, // PCADDU12I32 ++ 21965U, // PCADDU12I_ri ++ 21965U, // PCADDU12I_rii ++ 21976U, // PCADDU18I ++ 21954U, // PCALAU12I ++ 21954U, // PCALAU12I32 ++ 102234U, // PRELD ++ 102234U, // PRELD32 ++ 118618U, // PRELD_Raw ++ 118618U, // PRELD_Raw32 ++ 26414U, // RDTIMEH_W ++ 26414U, // RDTIMEH_W32 ++ 26709U, // RDTIMEL_W ++ 26709U, // RDTIMEL_W32 ++ 18144U, // RDTIME_D ++ 21936U, // REVB_2H ++ 27499U, // REVB_2W ++ 27499U, // REVB_2W_32 ++ 21945U, // REVB_4H ++ 17894U, // REVB_D ++ 27508U, // REVH_2W ++ 27508U, // REVH_2W_32 ++ 18331U, // REVH_D ++ 822102129U, // ROTRI_D ++ 1090545670U, // ROTRI_W ++ 16796484U, // ROTR_D ++ 16804155U, // ROTR_W ++ 853486U, // SC_D ++ 861318U, // SC_W ++ 822102043U, // SLLI_D ++ 67127323U, // SLLI_D_64_32 ++ 1090545584U, // SLLI_W ++ 50358192U, // SLLI_W_64_32 ++ 50358192U, // SLLI_W_64_64 ++ 16795916U, // SLL_D ++ 16803938U, // SLL_W ++ 16800750U, // SLT ++ 16800750U, // SLT32 ++ 16799230U, // SLTI ++ 16799230U, // SLTI32 ++ 16802137U, // SLTU ++ 16802137U, // SLTU32 ++ 16799236U, // SLTUI ++ 16799236U, // SLTUI32 ++ 16799236U, // SLTUI_64 ++ 822101976U, // SRAI_D ++ 1090545528U, // SRAI_W ++ 16794924U, // SRA_D ++ 16802807U, // SRA_W ++ 822102053U, // SRLI_D ++ 1090545594U, // SRLI_W ++ 16795937U, // SRL_D ++ 16803959U, // SRL_W ++ 16794532U, // STGT_B ++ 16796647U, // STGT_D ++ 16798575U, // STGT_H ++ 16804287U, // STGT_W ++ 16793785U, // STLE_B ++ 16795322U, // STLE_D ++ 16798033U, // STLE_H ++ 16803331U, // STLE_W ++ 3165013U, // STPTR_D ++ 3172684U, // STPTR_W ++ 3172684U, // STPTR_W32 ++ 16794765U, // STX_B ++ 16794765U, // STX_B32 ++ 16797430U, // STX_D ++ 16799094U, // STX_H ++ 16799094U, // STX_H32 ++ 16804650U, // STX_W ++ 16804650U, // STX_W32 ++ 3163071U, // ST_B ++ 3163071U, // ST_B32 ++ 3165279U, // ST_D ++ 3167114U, // ST_H ++ 3167114U, // ST_H32 ++ 3172826U, // ST_W ++ 3172826U, // ST_W32 ++ 16795051U, // SUB_D ++ 16802924U, // SUB_W ++ 38500U, // SYSCALL ++ 11462U, // TLBCLR ++ 11449U, // TLBFILL ++ 11426U, // TLBFLUSH ++ 11412U, // TLBRD ++ 11418U, // TLBSRCH ++ 11469U, // TLBWR ++ 20164U, // TRUNC_W_D ++ 16793759U, // VABSD_B ++ 16800801U, // VABSD_BU ++ 16795256U, // VABSD_D ++ 16801277U, // VABSD_DU ++ 16798007U, // VABSD_H ++ 16801715U, // VABSD_HU ++ 16803305U, // VABSD_W ++ 16802342U, // VABSD_WU ++ 16793619U, // VADDA_B ++ 16794902U, // VADDA_D ++ 16797651U, // VADDA_H ++ 16802796U, // VADDA_W ++ 1090542799U, // VADDI_BU ++ 1090543162U, // VADDI_DU ++ 1090543591U, // VADDI_HU ++ 1090544227U, // VADDI_WU ++ 16803108U, // VADDWEV_D_W ++ 16802273U, // VADDWEV_D_WU ++ 16804511U, // VADDWEV_D_WU_W ++ 16793946U, // VADDWEV_H_B ++ 16800924U, // VADDWEV_H_BU ++ 16794636U, // VADDWEV_H_BU_B ++ 16796236U, // VADDWEV_Q_D ++ 16801505U, // VADDWEV_Q_DU ++ 16796844U, // VADDWEV_Q_DU_D ++ 16799012U, // VADDWEV_W_H ++ 16802070U, // VADDWEV_W_HU ++ 16798799U, // VADDWEV_W_HU_H ++ 16802986U, // VADDWOD_D_W ++ 16802212U, // VADDWOD_D_WU ++ 16804459U, // VADDWOD_D_WU_W ++ 16793863U, // VADDWOD_H_B ++ 16800863U, // VADDWOD_H_BU ++ 16794584U, // VADDWOD_H_BU_B ++ 16796155U, // VADDWOD_Q_D ++ 16801444U, // VADDWOD_Q_DU ++ 16796792U, // VADDWOD_Q_DU_D ++ 16798920U, // VADDWOD_W_H ++ 16802009U, // VADDWOD_W_HU ++ 16798747U, // VADDWOD_W_HU_H ++ 16793700U, // VADD_B ++ 16795187U, // VADD_D ++ 16797948U, // VADD_H ++ 16799500U, // VADD_Q ++ 16803237U, // VADD_W ++ 1627406790U, // VANDI_B ++ 1627406790U, // VANDI_B_N ++ 16802702U, // VANDN_V ++ 16802661U, // VAND_V ++ 16794410U, // VAVGR_B ++ 16801055U, // VAVGR_BU ++ 16796406U, // VAVGR_D ++ 16801551U, // VAVGR_DU ++ 16798427U, // VAVGR_H ++ 16801847U, // VAVGR_HU ++ 16804105U, // VAVGR_W ++ 16802503U, // VAVGR_WU ++ 16793825U, // VAVG_B ++ 16800822U, // VAVG_BU ++ 16795522U, // VAVG_D ++ 16801298U, // VAVG_DU ++ 16798073U, // VAVG_H ++ 16801736U, // VAVG_HU ++ 16803383U, // VAVG_W ++ 16802363U, // VAVG_WU ++ 1895842370U, // VBITCLRI_B ++ 822102104U, // VBITCLRI_D ++ 2164281872U, // VBITCLRI_H ++ 1090545645U, // VBITCLRI_W ++ 16794420U, // VBITCLR_B ++ 16796416U, // VBITCLR_D ++ 16798437U, // VBITCLR_H ++ 16804115U, // VBITCLR_W ++ 1895842457U, // VBITREVI_B ++ 822102162U, // VBITREVI_D ++ 2164281930U, // VBITREVI_H ++ 1090545703U, // VBITREVI_W ++ 16794694U, // VBITREV_B ++ 16797052U, // VBITREV_D ++ 16798857U, // VBITREV_H ++ 16804569U, // VBITREV_W ++ 88097270U, // VBITSELI_B ++ 88097270U, // VBITSELI_B_N ++ 16802670U, // VBITSEL_V ++ 1895842434U, // VBITSETI_B ++ 822102139U, // VBITSETI_D ++ 2164281907U, // VBITSETI_H ++ 1090545680U, // VBITSETI_W ++ 16794513U, // VBITSET_B ++ 16796616U, // VBITSET_D ++ 16798556U, // VBITSET_H ++ 16804268U, // VBITSET_W ++ 1090544506U, // VBSLL_V ++ 1090544516U, // VBSRL_V ++ 17141U, // VCLO_B ++ 18859U, // VCLO_D ++ 21158U, // VCLO_H ++ 26817U, // VCLO_W ++ 17584U, // VCLZ_B ++ 20237U, // VCLZ_D ++ 21901U, // VCLZ_H ++ 27457U, // VCLZ_W ++ 16794706U, // VDIV_B ++ 16801191U, // VDIV_BU ++ 16797074U, // VDIV_D ++ 16801640U, // VDIV_DU ++ 16798869U, // VDIV_H ++ 16801968U, // VDIV_HU ++ 16804581U, // VDIV_W ++ 16802623U, // VDIV_WU ++ 23869U, // VEXT2XV_DU_BU ++ 24661U, // VEXT2XV_DU_HU ++ 25361U, // VEXT2XV_DU_WU ++ 16450U, // VEXT2XV_D_B ++ 20698U, // VEXT2XV_D_H ++ 25919U, // VEXT2XV_D_W ++ 23914U, // VEXT2XV_HU_BU ++ 16757U, // VEXT2XV_H_B ++ 23959U, // VEXT2XV_WU_BU ++ 24706U, // VEXT2XV_WU_HU ++ 17520U, // VEXT2XV_W_B ++ 21823U, // VEXT2XV_W_H ++ 25332U, // VEXTH_DU_WU ++ 25812U, // VEXTH_D_W ++ 23885U, // VEXTH_HU_BU ++ 16675U, // VEXTH_H_B ++ 24366U, // VEXTH_QU_DU ++ 18967U, // VEXTH_Q_D ++ 24677U, // VEXTH_WU_HU ++ 21732U, // VEXTH_W_H ++ 24380U, // VEXTL_QU_DU ++ 18979U, // VEXTL_Q_D ++ 88097659U, // VEXTRINS_B ++ 88099750U, // VEXTRINS_D ++ 88101702U, // VEXTRINS_H ++ 88107414U, // VEXTRINS_W ++ 16795125U, // VFADD_D ++ 16799780U, // VFADD_S ++ 19379U, // VFCLASS_D ++ 23240U, // VFCLASS_S ++ 16795467U, // VFCMP_CAF_D ++ 16799968U, // VFCMP_CAF_S ++ 16796290U, // VFCMP_CEQ_D ++ 16800337U, // VFCMP_CEQ_S ++ 16795266U, // VFCMP_CLE_D ++ 16799820U, // VFCMP_CLE_S ++ 16796656U, // VFCMP_CLT_D ++ 16800486U, // VFCMP_CLT_S ++ 16795371U, // VFCMP_CNE_D ++ 16799896U, // VFCMP_CNE_S ++ 16796438U, // VFCMP_COR_D ++ 16800420U, // VFCMP_COR_S ++ 16796327U, // VFCMP_CUEQ_D ++ 16800365U, // VFCMP_CUEQ_S ++ 16795331U, // VFCMP_CULE_D ++ 16799866U, // VFCMP_CULE_S ++ 16796693U, // VFCMP_CULT_D ++ 16800514U, // VFCMP_CULT_S ++ 16795413U, // VFCMP_CUNE_D ++ 16799938U, // VFCMP_CUNE_S ++ 16796047U, // VFCMP_CUN_D ++ 16800284U, // VFCMP_CUN_S ++ 16795481U, // VFCMP_SAF_D ++ 16799982U, // VFCMP_SAF_S ++ 16796304U, // VFCMP_SEQ_D ++ 16800351U, // VFCMP_SEQ_S ++ 16795289U, // VFCMP_SLE_D ++ 16799843U, // VFCMP_SLE_S ++ 16796670U, // VFCMP_SLT_D ++ 16800500U, // VFCMP_SLT_S ++ 16795399U, // VFCMP_SNE_D ++ 16799924U, // VFCMP_SNE_S ++ 16796460U, // VFCMP_SOR_D ++ 16800434U, // VFCMP_SOR_S ++ 16796342U, // VFCMP_SUEQ_D ++ 16800380U, // VFCMP_SUEQ_S ++ 16795346U, // VFCMP_SULE_D ++ 16799881U, // VFCMP_SULE_S ++ 16796708U, // VFCMP_SULT_D ++ 16800529U, // VFCMP_SULT_S ++ 16795428U, // VFCMP_SUNE_D ++ 16799953U, // VFCMP_SUNE_S ++ 16796061U, // VFCMP_SUN_D ++ 16800298U, // VFCMP_SUN_S ++ 22528U, // VFCVTH_D_S ++ 21292U, // VFCVTH_S_H ++ 22541U, // VFCVTL_D_S ++ 21305U, // VFCVTL_S_H ++ 16800004U, // VFCVT_H_S ++ 16796551U, // VFCVT_S_D ++ 16797064U, // VFDIV_D ++ 16800615U, // VFDIV_S ++ 25798U, // VFFINTH_D_W ++ 25838U, // VFFINTL_D_W ++ 22035U, // VFFINT_D_L ++ 24902U, // VFFINT_D_LU ++ 16799264U, // VFFINT_S_L ++ 27006U, // VFFINT_S_W ++ 25298U, // VFFINT_S_WU ++ 17822U, // VFLOGB_D ++ 22484U, // VFLOGB_S ++ 16795144U, // VFMADD_D ++ 16799790U, // VFMADD_S ++ 16794932U, // VFMAXA_D ++ 16799678U, // VFMAXA_S ++ 16797394U, // VFMAX_D ++ 16800707U, // VFMAX_S ++ 16794912U, // VFMINA_D ++ 16799667U, // VFMINA_S ++ 16796019U, // VFMIN_D ++ 16800274U, // VFMIN_S ++ 16795059U, // VFMSUB_D ++ 16799721U, // VFMSUB_S ++ 16795953U, // VFMUL_D ++ 16800238U, // VFMUL_S ++ 16795155U, // VFNMADD_D ++ 16799801U, // VFNMADD_S ++ 16795070U, // VFNMSUB_D ++ 16799732U, // VFNMSUB_S ++ 18885U, // VFRECIP_D ++ 23096U, // VFRECIP_S ++ 18777U, // VFRINTRM_D ++ 23032U, // VFRINTRM_S ++ 18169U, // VFRINTRNE_D ++ 22694U, // VFRINTRNE_S ++ 18897U, // VFRINTRP_D ++ 23108U, // VFRINTRP_S ++ 20261U, // VFRINTRZ_D ++ 23517U, // VFRINTRZ_S ++ 19517U, // VFRINT_D ++ 23328U, // VFRINT_S ++ 19539U, // VFRSQRT_D ++ 23350U, // VFRSQRT_S ++ 104874529U, // VFRSTPI_B ++ 104878575U, // VFRSTPI_H ++ 2453684990U, // VFRSTP_B ++ 2453689007U, // VFRSTP_H ++ 19528U, // VFSQRT_D ++ 23339U, // VFSQRT_S ++ 16795049U, // VFSUB_D ++ 16799711U, // VFSUB_S ++ 22863U, // VFTINTH_L_S ++ 22942U, // VFTINTL_L_S ++ 22831U, // VFTINTRMH_L_S ++ 22910U, // VFTINTRML_L_S ++ 18641U, // VFTINTRM_L_D ++ 16797232U, // VFTINTRM_W_D ++ 23433U, // VFTINTRM_W_S ++ 22814U, // VFTINTRNEH_L_S ++ 22893U, // VFTINTRNEL_L_S ++ 18625U, // VFTINTRNE_L_D ++ 16797104U, // VFTINTRNE_W_D ++ 23417U, // VFTINTRNE_W_S ++ 22847U, // VFTINTRPH_L_S ++ 22926U, // VFTINTRPL_L_S ++ 18656U, // VFTINTRP_L_D ++ 16797351U, // VFTINTRP_W_D ++ 23448U, // VFTINTRP_W_S ++ 22877U, // VFTINTRZH_L_S ++ 22956U, // VFTINTRZL_L_S ++ 19676U, // VFTINTRZ_LU_D ++ 18684U, // VFTINTRZ_L_D ++ 23383U, // VFTINTRZ_WU_S ++ 16797379U, // VFTINTRZ_W_D ++ 23476U, // VFTINTRZ_W_S ++ 19662U, // VFTINT_LU_D ++ 18671U, // VFTINT_L_D ++ 23369U, // VFTINT_WU_S ++ 16797366U, // VFTINT_W_D ++ 23463U, // VFTINT_W_S ++ 16802608U, // VHADDW_DU_WU ++ 16803185U, // VHADDW_D_W ++ 16801161U, // VHADDW_HU_BU ++ 16794000U, // VHADDW_H_B ++ 16801625U, // VHADDW_QU_DU ++ 16796277U, // VHADDW_Q_D ++ 16801953U, // VHADDW_WU_HU ++ 16799066U, // VHADDW_W_H ++ 16802593U, // VHSUBW_DU_WU ++ 16803172U, // VHSUBW_D_W ++ 16801146U, // VHSUBW_HU_BU ++ 16793987U, // VHSUBW_H_B ++ 16801610U, // VHSUBW_QU_DU ++ 16796264U, // VHSUBW_Q_D ++ 16801938U, // VHSUBW_WU_HU ++ 16799053U, // VHSUBW_W_H ++ 16794022U, // VILVH_B ++ 16795556U, // VILVH_D ++ 16798091U, // VILVH_H ++ 16803672U, // VILVH_W ++ 16794327U, // VILVL_B ++ 16795972U, // VILVL_D ++ 16798344U, // VILVL_H ++ 16803984U, // VILVL_W ++ 121652066U, // VINSGR2VR_B ++ 138431342U, // VINSGR2VR_D ++ 155210515U, // VINSGR2VR_H ++ 171993445U, // VINSGR2VR_W ++ 3166050U, // VLD ++ 21996U, // VLDI ++ 21996U, // VLDI_B ++ 21996U, // VLDI_D ++ 21996U, // VLDI_H ++ 21996U, // VLDI_W ++ 3162809U, // VLDREPL_B ++ 3164436U, // VLDREPL_D ++ 3166826U, // VLDREPL_H ++ 3172458U, // VLDREPL_W ++ 16804734U, // VLDX ++ 3166050U, // VLD_D ++ 3166050U, // VLD_H ++ 3166050U, // VLD_W ++ 2453693717U, // VMADDWEV_D_W ++ 2453692881U, // VMADDWEV_D_WU ++ 2453695117U, // VMADDWEV_D_WU_W ++ 2453684555U, // VMADDWEV_H_B ++ 2453691532U, // VMADDWEV_H_BU ++ 2453685242U, // VMADDWEV_H_BU_B ++ 2453686845U, // VMADDWEV_Q_D ++ 2453692113U, // VMADDWEV_Q_DU ++ 2453687450U, // VMADDWEV_Q_DU_D ++ 2453689621U, // VMADDWEV_W_H ++ 2453692678U, // VMADDWEV_W_HU ++ 2453689405U, // VMADDWEV_W_HU_H ++ 2453693595U, // VMADDWOD_D_W ++ 2453692820U, // VMADDWOD_D_WU ++ 2453695065U, // VMADDWOD_D_WU_W ++ 2453684472U, // VMADDWOD_H_B ++ 2453691471U, // VMADDWOD_H_BU ++ 2453685190U, // VMADDWOD_H_BU_B ++ 2453686764U, // VMADDWOD_Q_D ++ 2453692052U, // VMADDWOD_Q_DU ++ 2453687398U, // VMADDWOD_Q_DU_D ++ 2453689529U, // VMADDWOD_W_H ++ 2453692617U, // VMADDWOD_W_HU ++ 2453689353U, // VMADDWOD_W_HU_H ++ 2453684304U, // VMADD_B ++ 2453685791U, // VMADD_D ++ 2453688552U, // VMADD_H ++ 2453693841U, // VMADD_W ++ 16794278U, // VMAXI_B ++ 1090542843U, // VMAXI_BU ++ 1090542843U, // VMAXI_BU_N ++ 16794278U, // VMAXI_B_N ++ 16795807U, // VMAXI_D ++ 1090543206U, // VMAXI_DU ++ 1090543206U, // VMAXI_DU_N ++ 16795807U, // VMAXI_D_N ++ 16798295U, // VMAXI_H ++ 1090543635U, // VMAXI_HU ++ 1090543635U, // VMAXI_HU_N ++ 16798295U, // VMAXI_H_N ++ 16803892U, // VMAXI_W ++ 1090544271U, // VMAXI_WU ++ 1090544271U, // VMAXI_WU_N ++ 16803892U, // VMAXI_W_N ++ 16794750U, // VMAX_B ++ 16801201U, // VMAX_BU ++ 16797413U, // VMAX_D ++ 16801660U, // VMAX_DU ++ 16799079U, // VMAX_H ++ 16802100U, // VMAX_HU ++ 16804635U, // VMAX_W ++ 16802643U, // VMAX_WU ++ 16794135U, // VMINI_B ++ 1090542821U, // VMINI_BU ++ 16794135U, // VMINI_B_N ++ 16795705U, // VMINI_D ++ 1090543184U, // VMINI_DU ++ 16795705U, // VMINI_D_N ++ 16798181U, // VMINI_H ++ 1090543613U, // VMINI_HU ++ 16798181U, // VMINI_H_N ++ 16803790U, // VMINI_W ++ 1090544249U, // VMINI_WU ++ 16803790U, // VMINI_W_N ++ 16794348U, // VMIN_B ++ 16801030U, // VMIN_BU ++ 16796038U, // VMIN_D ++ 16801403U, // VMIN_DU ++ 16798365U, // VMIN_H ++ 16801822U, // VMIN_HU ++ 16804024U, // VMIN_W ++ 16802477U, // VMIN_WU ++ 16793739U, // VMOD_B ++ 16800791U, // VMOD_BU ++ 16795236U, // VMOD_D ++ 16801267U, // VMOD_DU ++ 16797987U, // VMOD_H ++ 16801705U, // VMOD_HU ++ 16803285U, // VMOD_W ++ 16802332U, // VMOD_WU ++ 17557U, // VMSKGEZ_B ++ 17619U, // VMSKLTZ_B ++ 20281U, // VMSKLTZ_D ++ 21925U, // VMSKLTZ_H ++ 27488U, // VMSKLTZ_W ++ 17593U, // VMSKNZ_B ++ 2453684262U, // VMSUB_B ++ 2453685706U, // VMSUB_D ++ 2453688510U, // VMSUB_H ++ 2453693546U, // VMSUB_W ++ 16794013U, // VMUH_B ++ 16800954U, // VMUH_BU ++ 16795539U, // VMUH_D ++ 16801317U, // VMUH_DU ++ 16798082U, // VMUH_H ++ 16801746U, // VMUH_HU ++ 16803663U, // VMUH_W ++ 16802382U, // VMUH_WU ++ 16803122U, // VMULWEV_D_W ++ 16802288U, // VMULWEV_D_WU ++ 16804528U, // VMULWEV_D_WU_W ++ 16793960U, // VMULWEV_H_B ++ 16800939U, // VMULWEV_H_BU ++ 16794653U, // VMULWEV_H_BU_B ++ 16796250U, // VMULWEV_Q_D ++ 16801520U, // VMULWEV_Q_DU ++ 16796861U, // VMULWEV_Q_DU_D ++ 16799026U, // VMULWEV_W_H ++ 16802085U, // VMULWEV_W_HU ++ 16798816U, // VMULWEV_W_HU_H ++ 16803000U, // VMULWOD_D_W ++ 16802227U, // VMULWOD_D_WU ++ 16804476U, // VMULWOD_D_WU_W ++ 16793877U, // VMULWOD_H_B ++ 16800878U, // VMULWOD_H_BU ++ 16794601U, // VMULWOD_H_BU_B ++ 16796169U, // VMULWOD_Q_D ++ 16801459U, // VMULWOD_Q_DU ++ 16796809U, // VMULWOD_Q_DU_D ++ 16798934U, // VMULWOD_W_H ++ 16802024U, // VMULWOD_W_HU ++ 16798764U, // VMULWOD_W_HU_H ++ 16794318U, // VMUL_B ++ 16795963U, // VMUL_D ++ 16798335U, // VMUL_H ++ 16803975U, // VMUL_W ++ 16600U, // VNEG_B ++ 18297U, // VNEG_D ++ 20848U, // VNEG_H ++ 26158U, // VNEG_W ++ 1627406938U, // VNORI_B ++ 16802721U, // VNOR_V ++ 1627406948U, // VORI_B ++ 16802712U, // VORN_V ++ 16802730U, // VOR_V ++ 16794670U, // VPACKEV_B ++ 16797028U, // VPACKEV_D ++ 16798833U, // VPACKEV_H ++ 16804545U, // VPACKEV_W ++ 16793715U, // VPACKOD_B ++ 16795212U, // VPACKOD_D ++ 16797963U, // VPACKOD_H ++ 16803261U, // VPACKOD_W ++ 17334U, // VPCNT_B ++ 19507U, // VPCNT_D ++ 21377U, // VPCNT_H ++ 27089U, // VPCNT_W ++ 88106947U, // VPERMI_W ++ 16794682U, // VPICKEV_B ++ 16797040U, // VPICKEV_D ++ 16798845U, // VPICKEV_H ++ 16804557U, // VPICKEV_W ++ 16793727U, // VPICKOD_B ++ 16795224U, // VPICKOD_D ++ 16797975U, // VPICKOD_H ++ 16803273U, // VPICKOD_W ++ 2164278043U, // VPICKVE2GR_B ++ 2164284687U, // VPICKVE2GR_BU ++ 2701150939U, // VPICKVE2GR_D ++ 2701156095U, // VPICKVE2GR_DU ++ 1895846604U, // VPICKVE2GR_H ++ 1895850023U, // VPICKVE2GR_HU ++ 2969594106U, // VPICKVE2GR_W ++ 2969592503U, // VPICKVE2GR_WU ++ 17236U, // VREPLGR2VR_B ++ 19295U, // VREPLGR2VR_D ++ 21253U, // VREPLGR2VR_H ++ 26966U, // VREPLGR2VR_W ++ 2164277737U, // VREPLVEI_B ++ 2701150210U, // VREPLVEI_D ++ 1895846340U, // VREPLVEI_H ++ 2969593762U, // VREPLVEI_W ++ 16793794U, // VREPLVE_B ++ 16795455U, // VREPLVE_D ++ 16798042U, // VREPLVE_H ++ 16803352U, // VREPLVE_W ++ 1895842423U, // VROTRI_B ++ 822102128U, // VROTRI_D ++ 2164281896U, // VROTRI_H ++ 1090545669U, // VROTRI_W ++ 16794442U, // VROTR_B ++ 16796483U, // VROTR_D ++ 16798459U, // VROTR_H ++ 16804154U, // VROTR_W ++ 16793690U, // VSADD_B ++ 16800773U, // VSADD_BU ++ 16795177U, // VSADD_D ++ 16801256U, // VSADD_DU ++ 16797938U, // VSADD_H ++ 16801687U, // VSADD_HU ++ 16803227U, // VSADD_W ++ 16802314U, // VSADD_WU ++ 1895842696U, // VSAT_B ++ 1895849258U, // VSAT_BU ++ 822102975U, // VSAT_D ++ 822107930U, // VSAT_DU ++ 2164282195U, // VSAT_H ++ 2164285506U, // VSAT_HU ++ 1090546083U, // VSAT_W ++ 1090544352U, // VSAT_WU ++ 16794157U, // VSEQI_B ++ 16794157U, // VSEQI_B_N ++ 16795715U, // VSEQI_D ++ 16795715U, // VSEQI_D_N ++ 16798203U, // VSEQI_H ++ 16798203U, // VSEQI_H_N ++ 16803800U, // VSEQI_W ++ 16803800U, // VSEQI_W_N ++ 16794377U, // VSEQ_B ++ 16796318U, // VSEQ_D ++ 16798394U, // VSEQ_H ++ 16804059U, // VSEQ_W ++ 17569U, // VSETALLNEZ_B ++ 20222U, // VSETALLNEZ_D ++ 21886U, // VSETALLNEZ_H ++ 27442U, // VSETALLNEZ_W ++ 17604U, // VSETANYEQZ_B ++ 20246U, // VSETANYEQZ_D ++ 21910U, // VSETANYEQZ_H ++ 27466U, // VSETANYEQZ_W ++ 25543U, // VSETEQZ_V ++ 25531U, // VSETNEZ_V ++ 1627406768U, // VSHUF4I_B ++ 88098752U, // VSHUF4I_D ++ 1627410837U, // VSHUF4I_H ++ 1627416427U, // VSHUF4I_W ++ 16793806U, // VSHUF_B ++ 2453686119U, // VSHUF_D ++ 2453688678U, // VSHUF_H ++ 2453693988U, // VSHUF_W ++ 16794715U, // VSIGNCOV_B ++ 16797083U, // VSIGNCOV_D ++ 16798878U, // VSIGNCOV_H ++ 16804590U, // VSIGNCOV_W ++ 16794064U, // VSLEI_B ++ 1090542810U, // VSLEI_BU ++ 1090542810U, // VSLEI_BU_N ++ 16794064U, // VSLEI_B_N ++ 16795625U, // VSLEI_D ++ 1090543173U, // VSLEI_DU ++ 1090543173U, // VSLEI_DU_N ++ 16795625U, // VSLEI_D_N ++ 16798123U, // VSLEI_H ++ 1090543602U, // VSLEI_HU ++ 1090543602U, // VSLEI_HU_N ++ 16798123U, // VSLEI_H_N ++ 16803721U, // VSLEI_W ++ 1090544238U, // VSLEI_WU ++ 1090544238U, // VSLEI_WU_N ++ 16803721U, // VSLEI_W_N ++ 16793777U, // VSLE_B ++ 16800812U, // VSLE_BU ++ 16795303U, // VSLE_D ++ 16801288U, // VSLE_DU ++ 16798025U, // VSLE_H ++ 16801726U, // VSLE_HU ++ 16803323U, // VSLE_W ++ 16802353U, // VSLE_WU ++ 1895842307U, // VSLLI_B ++ 822102042U, // VSLLI_D ++ 2164281809U, // VSLLI_H ++ 1090545583U, // VSLLI_W ++ 1090544386U, // VSLLWIL_DU_WU ++ 1090544864U, // VSLLWIL_D_W ++ 1895849307U, // VSLLWIL_HU_BU ++ 1895842095U, // VSLLWIL_H_B ++ 2164285555U, // VSLLWIL_WU_HU ++ 2164282608U, // VSLLWIL_W_H ++ 16794288U, // VSLL_B ++ 16795915U, // VSLL_D ++ 16798305U, // VSLL_H ++ 16803937U, // VSLL_W ++ 16794255U, // VSLTI_B ++ 1090542832U, // VSLTI_BU ++ 1090542832U, // VSLTI_BU_N ++ 16794255U, // VSLTI_B_N ++ 16795784U, // VSLTI_D ++ 1090543195U, // VSLTI_DU ++ 1090543195U, // VSLTI_DU_N ++ 16795784U, // VSLTI_D_N ++ 16798272U, // VSLTI_H ++ 1090543624U, // VSLTI_HU ++ 1090543624U, // VSLTI_HU_N ++ 16798272U, // VSLTI_H_N ++ 16803869U, // VSLTI_W ++ 1090544260U, // VSLTI_WU ++ 1090544260U, // VSLTI_WU_N ++ 16803869U, // VSLTI_W_N ++ 16794541U, // VSLT_B ++ 16801076U, // VSLT_BU ++ 16796684U, // VSLT_D ++ 16801572U, // VSLT_DU ++ 16798584U, // VSLT_H ++ 16801868U, // VSLT_HU ++ 16804296U, // VSLT_W ++ 16802538U, // VSLT_WU ++ 1895842236U, // VSRAI_B ++ 1895842236U, // VSRAI_B_N ++ 822101975U, // VSRAI_D ++ 822101975U, // VSRAI_D_N ++ 2164281761U, // VSRAI_H ++ 2164281761U, // VSRAI_H_N ++ 1090545527U, // VSRAI_W ++ 1090545527U, // VSRAI_W_N ++ 121655284U, // VSRANI_B_H ++ 188765866U, // VSRANI_D_Q ++ 104883790U, // VSRANI_H_W ++ 205540814U, // VSRANI_W_D ++ 16797795U, // VSRAN_B_H ++ 16803517U, // VSRAN_H_W ++ 16797260U, // VSRAN_W_D ++ 1895842359U, // VSRARI_B ++ 822102093U, // VSRARI_D ++ 2164281861U, // VSRARI_H ++ 1090545634U, // VSRARI_W ++ 121655339U, // VSRARNI_B_H ++ 188765921U, // VSRARNI_D_Q ++ 104883845U, // VSRARNI_H_W ++ 205540869U, // VSRARNI_W_D ++ 16797846U, // VSRARN_B_H ++ 16803568U, // VSRARN_H_W ++ 16797311U, // VSRARN_W_D ++ 16794386U, // VSRAR_B ++ 16796357U, // VSRAR_D ++ 16798403U, // VSRAR_H ++ 16804068U, // VSRAR_W ++ 16793629U, // VSRA_B ++ 16794923U, // VSRA_D ++ 16797661U, // VSRA_H ++ 16802806U, // VSRA_W ++ 1895842317U, // VSRLI_B ++ 822102052U, // VSRLI_D ++ 2164281819U, // VSRLI_H ++ 1090545593U, // VSRLI_W ++ 121655311U, // VSRLNI_B_H ++ 188765893U, // VSRLNI_D_Q ++ 104883817U, // VSRLNI_H_W ++ 205540841U, // VSRLNI_W_D ++ 16797820U, // VSRLN_B_H ++ 16803542U, // VSRLN_H_W ++ 16797285U, // VSRLN_W_D ++ 1895842383U, // VSRLRI_B ++ 822102117U, // VSRLRI_D ++ 2164281885U, // VSRLRI_H ++ 1090545658U, // VSRLRI_W ++ 121655368U, // VSRLRNI_B_H ++ 188765950U, // VSRLRNI_D_Q ++ 104883874U, // VSRLRNI_H_W ++ 205540898U, // VSRLRNI_W_D ++ 16797873U, // VSRLRN_B_H ++ 16803595U, // VSRLRN_H_W ++ 16797338U, // VSRLRN_W_D ++ 16794432U, // VSRLR_B ++ 16796428U, // VSRLR_D ++ 16798449U, // VSRLR_H ++ 16804127U, // VSRLR_W ++ 16794309U, // VSRL_B ++ 16795936U, // VSRL_D ++ 16798326U, // VSRL_H ++ 16803958U, // VSRL_W ++ 121656209U, // VSSRANI_BU_H ++ 121655270U, // VSSRANI_B_H ++ 188765984U, // VSSRANI_DU_Q ++ 188765852U, // VSSRANI_D_Q ++ 104884705U, // VSSRANI_HU_W ++ 104883776U, // VSSRANI_H_W ++ 205540588U, // VSSRANI_WU_D ++ 205540800U, // VSSRANI_W_D ++ 16798671U, // VSSRAN_BU_H ++ 16797782U, // VSSRAN_B_H ++ 16804383U, // VSSRAN_HU_W ++ 16803504U, // VSSRAN_H_W ++ 16796970U, // VSSRAN_WU_D ++ 16797247U, // VSSRAN_W_D ++ 121656239U, // VSSRARNI_BU_H ++ 121655324U, // VSSRARNI_B_H ++ 188766014U, // VSSRARNI_DU_Q ++ 188765906U, // VSSRARNI_D_Q ++ 104884735U, // VSSRARNI_HU_W ++ 104883830U, // VSSRARNI_H_W ++ 205540618U, // VSSRARNI_WU_D ++ 205540854U, // VSSRARNI_W_D ++ 16798699U, // VSSRARN_BU_H ++ 16797832U, // VSSRARN_B_H ++ 16804411U, // VSSRARN_HU_W ++ 16803554U, // VSSRARN_H_W ++ 16796998U, // VSSRARN_WU_D ++ 16797297U, // VSSRARN_W_D ++ 121656224U, // VSSRLNI_BU_H ++ 121655297U, // VSSRLNI_B_H ++ 188765999U, // VSSRLNI_DU_Q ++ 188765879U, // VSSRLNI_D_Q ++ 104884720U, // VSSRLNI_HU_W ++ 104883803U, // VSSRLNI_H_W ++ 205540603U, // VSSRLNI_WU_D ++ 205540827U, // VSSRLNI_W_D ++ 16798685U, // VSSRLN_BU_H ++ 16797807U, // VSSRLN_B_H ++ 16804397U, // VSSRLN_HU_W ++ 16803529U, // VSSRLN_H_W ++ 16796984U, // VSSRLN_WU_D ++ 16797272U, // VSSRLN_W_D ++ 121656255U, // VSSRLRNI_BU_H ++ 121655353U, // VSSRLRNI_B_H ++ 188766030U, // VSSRLRNI_DU_Q ++ 188765935U, // VSSRLRNI_D_Q ++ 104884751U, // VSSRLRNI_HU_W ++ 104883859U, // VSSRLRNI_H_W ++ 205540634U, // VSSRLRNI_WU_D ++ 205540883U, // VSSRLRNI_W_D ++ 16798714U, // VSSRLRN_BU_H ++ 16797859U, // VSSRLRN_B_H ++ 16804426U, // VSSRLRN_HU_W ++ 16803581U, // VSSRLRN_H_W ++ 16797013U, // VSSRLRN_WU_D ++ 16797324U, // VSSRLRN_W_D ++ 16793648U, // VSSUB_B ++ 16800762U, // VSSUB_BU ++ 16795092U, // VSSUB_D ++ 16801245U, // VSSUB_DU ++ 16797896U, // VSSUB_H ++ 16801676U, // VSSUB_HU ++ 16802932U, // VSSUB_W ++ 16802170U, // VSSUB_WU ++ 3169268U, // VST ++ 16794337U, // VSTELM_B ++ 16795982U, // VSTELM_D ++ 16798354U, // VSTELM_H ++ 16803994U, // VSTELM_W ++ 16804741U, // VSTX ++ 3169268U, // VST_D ++ 3169268U, // VST_H ++ 3169268U, // VST_W ++ 1090542788U, // VSUBI_BU ++ 1090543151U, // VSUBI_DU ++ 1090543580U, // VSUBI_HU ++ 1090544216U, // VSUBI_WU ++ 16803079U, // VSUBWEV_D_W ++ 16802242U, // VSUBWEV_D_WU ++ 16793917U, // VSUBWEV_H_B ++ 16800893U, // VSUBWEV_H_BU ++ 16796207U, // VSUBWEV_Q_D ++ 16801474U, // VSUBWEV_Q_DU ++ 16798983U, // VSUBWEV_W_H ++ 16802039U, // VSUBWEV_W_HU ++ 16802957U, // VSUBWOD_D_W ++ 16802181U, // VSUBWOD_D_WU ++ 16793834U, // VSUBWOD_H_B ++ 16800832U, // VSUBWOD_H_BU ++ 16796126U, // VSUBWOD_Q_D ++ 16801413U, // VSUBWOD_Q_DU ++ 16798891U, // VSUBWOD_W_H ++ 16801978U, // VSUBWOD_W_HU ++ 16793658U, // VSUB_B ++ 16795102U, // VSUB_D ++ 16797906U, // VSUB_H ++ 16799379U, // VSUB_Q ++ 16802942U, // VSUB_W ++ 1627406957U, // VXORI_B ++ 1627406957U, // VXORI_B_N ++ 16802738U, // VXOR_V ++ 16799642U, // XOR ++ 16799642U, // XOR32 ++ 553670136U, // XORI ++ 553670136U, // XORI32 ++ 16793758U, // XVABSD_B ++ 16800800U, // XVABSD_BU ++ 16795255U, // XVABSD_D ++ 16801276U, // XVABSD_DU ++ 16798006U, // XVABSD_H ++ 16801714U, // XVABSD_HU ++ 16803304U, // XVABSD_W ++ 16802341U, // XVABSD_WU ++ 16793618U, // XVADDA_B ++ 16794901U, // XVADDA_D ++ 16797650U, // XVADDA_H ++ 16802795U, // XVADDA_W ++ 1090542798U, // XVADDI_BU ++ 1090542798U, // XVADDI_BU_N ++ 1090543161U, // XVADDI_DU ++ 1090543161U, // XVADDI_DU_N ++ 1090543590U, // XVADDI_HU ++ 1090543590U, // XVADDI_HU_N ++ 1090544226U, // XVADDI_WU ++ 1090544226U, // XVADDI_WU_N ++ 16803107U, // XVADDWEV_D_W ++ 16802272U, // XVADDWEV_D_WU ++ 16804510U, // XVADDWEV_D_WU_W ++ 16793945U, // XVADDWEV_H_B ++ 16800923U, // XVADDWEV_H_BU ++ 16794635U, // XVADDWEV_H_BU_B ++ 16796235U, // XVADDWEV_Q_D ++ 16801504U, // XVADDWEV_Q_DU ++ 16796843U, // XVADDWEV_Q_DU_D ++ 16799011U, // XVADDWEV_W_H ++ 16802069U, // XVADDWEV_W_HU ++ 16798798U, // XVADDWEV_W_HU_H ++ 16802985U, // XVADDWOD_D_W ++ 16802211U, // XVADDWOD_D_WU ++ 16804458U, // XVADDWOD_D_WU_W ++ 16793862U, // XVADDWOD_H_B ++ 16800862U, // XVADDWOD_H_BU ++ 16794583U, // XVADDWOD_H_BU_B ++ 16796154U, // XVADDWOD_Q_D ++ 16801443U, // XVADDWOD_Q_DU ++ 16796791U, // XVADDWOD_Q_DU_D ++ 16798919U, // XVADDWOD_W_H ++ 16802008U, // XVADDWOD_W_HU ++ 16798746U, // XVADDWOD_W_HU_H ++ 16793699U, // XVADD_B ++ 16795186U, // XVADD_D ++ 16797947U, // XVADD_H ++ 16799499U, // XVADD_Q ++ 16803236U, // XVADD_W ++ 1627406789U, // XVANDI_B ++ 1627406789U, // XVANDI_B_N ++ 16802701U, // XVANDN_V ++ 16802660U, // XVAND_V ++ 16794409U, // XVAVGR_B ++ 16801054U, // XVAVGR_BU ++ 16796405U, // XVAVGR_D ++ 16801550U, // XVAVGR_DU ++ 16798426U, // XVAVGR_H ++ 16801846U, // XVAVGR_HU ++ 16804104U, // XVAVGR_W ++ 16802502U, // XVAVGR_WU ++ 16793824U, // XVAVG_B ++ 16800821U, // XVAVG_BU ++ 16795521U, // XVAVG_D ++ 16801297U, // XVAVG_DU ++ 16798072U, // XVAVG_H ++ 16801735U, // XVAVG_HU ++ 16803382U, // XVAVG_W ++ 16802362U, // XVAVG_WU ++ 1895842369U, // XVBITCLRI_B ++ 822102103U, // XVBITCLRI_D ++ 2164281871U, // XVBITCLRI_H ++ 1090545644U, // XVBITCLRI_W ++ 16794419U, // XVBITCLR_B ++ 16796415U, // XVBITCLR_D ++ 16798436U, // XVBITCLR_H ++ 16804114U, // XVBITCLR_W ++ 1895842456U, // XVBITREVI_B ++ 822102161U, // XVBITREVI_D ++ 2164281929U, // XVBITREVI_H ++ 1090545702U, // XVBITREVI_W ++ 16794693U, // XVBITREV_B ++ 16797051U, // XVBITREV_D ++ 16798856U, // XVBITREV_H ++ 16804568U, // XVBITREV_W ++ 88097269U, // XVBITSELI_B ++ 88097269U, // XVBITSELI_B_N ++ 16802669U, // XVBITSEL_V ++ 1895842433U, // XVBITSETI_B ++ 822102138U, // XVBITSETI_D ++ 2164281906U, // XVBITSETI_H ++ 1090545679U, // XVBITSETI_W ++ 16794512U, // XVBITSET_B ++ 16796615U, // XVBITSET_D ++ 16798555U, // XVBITSET_H ++ 16804267U, // XVBITSET_W ++ 1090544505U, // XVBSLL_V ++ 1090544515U, // XVBSRL_V ++ 17140U, // XVCLO_B ++ 18858U, // XVCLO_D ++ 21157U, // XVCLO_H ++ 26816U, // XVCLO_W ++ 17583U, // XVCLZ_B ++ 20236U, // XVCLZ_D ++ 21900U, // XVCLZ_H ++ 27456U, // XVCLZ_W ++ 16794705U, // XVDIV_B ++ 16801190U, // XVDIV_BU ++ 16797073U, // XVDIV_D ++ 16801639U, // XVDIV_DU ++ 16798868U, // XVDIV_H ++ 16801967U, // XVDIV_HU ++ 16804580U, // XVDIV_W ++ 16802622U, // XVDIV_WU ++ 25331U, // XVEXTH_DU_WU ++ 25811U, // XVEXTH_D_W ++ 23884U, // XVEXTH_HU_BU ++ 16674U, // XVEXTH_H_B ++ 24365U, // XVEXTH_QU_DU ++ 18966U, // XVEXTH_Q_D ++ 24676U, // XVEXTH_WU_HU ++ 21731U, // XVEXTH_W_H ++ 24379U, // XVEXTL_QU_DU ++ 18978U, // XVEXTL_Q_D ++ 88097658U, // XVEXTRINS_B ++ 88099749U, // XVEXTRINS_D ++ 88101701U, // XVEXTRINS_H ++ 88107413U, // XVEXTRINS_W ++ 16795124U, // XVFADD_D ++ 16799779U, // XVFADD_S ++ 19378U, // XVFCLASS_D ++ 23239U, // XVFCLASS_S ++ 16795466U, // XVFCMP_CAF_D ++ 16799967U, // XVFCMP_CAF_S ++ 16796289U, // XVFCMP_CEQ_D ++ 16800336U, // XVFCMP_CEQ_S ++ 16795265U, // XVFCMP_CLE_D ++ 16799819U, // XVFCMP_CLE_S ++ 16796655U, // XVFCMP_CLT_D ++ 16800485U, // XVFCMP_CLT_S ++ 16795370U, // XVFCMP_CNE_D ++ 16799895U, // XVFCMP_CNE_S ++ 16796437U, // XVFCMP_COR_D ++ 16800419U, // XVFCMP_COR_S ++ 16796326U, // XVFCMP_CUEQ_D ++ 16800364U, // XVFCMP_CUEQ_S ++ 16795330U, // XVFCMP_CULE_D ++ 16799865U, // XVFCMP_CULE_S ++ 16796692U, // XVFCMP_CULT_D ++ 16800513U, // XVFCMP_CULT_S ++ 16795412U, // XVFCMP_CUNE_D ++ 16799937U, // XVFCMP_CUNE_S ++ 16796046U, // XVFCMP_CUN_D ++ 16800283U, // XVFCMP_CUN_S ++ 16795480U, // XVFCMP_SAF_D ++ 16799981U, // XVFCMP_SAF_S ++ 16796303U, // XVFCMP_SEQ_D ++ 16800350U, // XVFCMP_SEQ_S ++ 16795288U, // XVFCMP_SLE_D ++ 16799842U, // XVFCMP_SLE_S ++ 16796669U, // XVFCMP_SLT_D ++ 16800499U, // XVFCMP_SLT_S ++ 16795398U, // XVFCMP_SNE_D ++ 16799923U, // XVFCMP_SNE_S ++ 16796459U, // XVFCMP_SOR_D ++ 16800433U, // XVFCMP_SOR_S ++ 16796341U, // XVFCMP_SUEQ_D ++ 16800379U, // XVFCMP_SUEQ_S ++ 16795345U, // XVFCMP_SULE_D ++ 16799880U, // XVFCMP_SULE_S ++ 16796707U, // XVFCMP_SULT_D ++ 16800528U, // XVFCMP_SULT_S ++ 16795427U, // XVFCMP_SUNE_D ++ 16799952U, // XVFCMP_SUNE_S ++ 16796060U, // XVFCMP_SUN_D ++ 16800297U, // XVFCMP_SUN_S ++ 22527U, // XVFCVTH_D_S ++ 21291U, // XVFCVTH_S_H ++ 22540U, // XVFCVTL_D_S ++ 21304U, // XVFCVTL_S_H ++ 16800003U, // XVFCVT_H_S ++ 16796550U, // XVFCVT_S_D ++ 16797063U, // XVFDIV_D ++ 16800614U, // XVFDIV_S ++ 25797U, // XVFFINTH_D_W ++ 25837U, // XVFFINTL_D_W ++ 22034U, // XVFFINT_D_L ++ 24901U, // XVFFINT_D_LU ++ 16799263U, // XVFFINT_S_L ++ 27005U, // XVFFINT_S_W ++ 25297U, // XVFFINT_S_WU ++ 17821U, // XVFLOGB_D ++ 22483U, // XVFLOGB_S ++ 16795143U, // XVFMADD_D ++ 16799789U, // XVFMADD_S ++ 16794931U, // XVFMAXA_D ++ 16799677U, // XVFMAXA_S ++ 16797393U, // XVFMAX_D ++ 16800706U, // XVFMAX_S ++ 16794911U, // XVFMINA_D ++ 16799666U, // XVFMINA_S ++ 16796018U, // XVFMIN_D ++ 16800273U, // XVFMIN_S ++ 16795058U, // XVFMSUB_D ++ 16799720U, // XVFMSUB_S ++ 16795952U, // XVFMUL_D ++ 16800237U, // XVFMUL_S ++ 16795154U, // XVFNMADD_D ++ 16799800U, // XVFNMADD_S ++ 16795069U, // XVFNMSUB_D ++ 16799731U, // XVFNMSUB_S ++ 18884U, // XVFRECIP_D ++ 23095U, // XVFRECIP_S ++ 18776U, // XVFRINTRM_D ++ 23031U, // XVFRINTRM_S ++ 18168U, // XVFRINTRNE_D ++ 22693U, // XVFRINTRNE_S ++ 18896U, // XVFRINTRP_D ++ 23107U, // XVFRINTRP_S ++ 20260U, // XVFRINTRZ_D ++ 23516U, // XVFRINTRZ_S ++ 19516U, // XVFRINT_D ++ 23327U, // XVFRINT_S ++ 19538U, // XVFRSQRT_D ++ 23349U, // XVFRSQRT_S ++ 104874528U, // XVFRSTPI_B ++ 104878574U, // XVFRSTPI_H ++ 2453684989U, // XVFRSTP_B ++ 2453689006U, // XVFRSTP_H ++ 19527U, // XVFSQRT_D ++ 23338U, // XVFSQRT_S ++ 16795048U, // XVFSUB_D ++ 16799710U, // XVFSUB_S ++ 22862U, // XVFTINTH_L_S ++ 22941U, // XVFTINTL_L_S ++ 22830U, // XVFTINTRMH_L_S ++ 22909U, // XVFTINTRML_L_S ++ 18640U, // XVFTINTRM_L_D ++ 16797231U, // XVFTINTRM_W_D ++ 23432U, // XVFTINTRM_W_S ++ 22813U, // XVFTINTRNEH_L_S ++ 22892U, // XVFTINTRNEL_L_S ++ 18624U, // XVFTINTRNE_L_D ++ 16797103U, // XVFTINTRNE_W_D ++ 23416U, // XVFTINTRNE_W_S ++ 22846U, // XVFTINTRPH_L_S ++ 22925U, // XVFTINTRPL_L_S ++ 18655U, // XVFTINTRP_L_D ++ 16797350U, // XVFTINTRP_W_D ++ 23447U, // XVFTINTRP_W_S ++ 22876U, // XVFTINTRZH_L_S ++ 22955U, // XVFTINTRZL_L_S ++ 19675U, // XVFTINTRZ_LU_D ++ 18683U, // XVFTINTRZ_L_D ++ 23382U, // XVFTINTRZ_WU_S ++ 16797378U, // XVFTINTRZ_W_D ++ 23475U, // XVFTINTRZ_W_S ++ 19661U, // XVFTINT_LU_D ++ 18670U, // XVFTINT_L_D ++ 23368U, // XVFTINT_WU_S ++ 16797365U, // XVFTINT_W_D ++ 23462U, // XVFTINT_W_S ++ 16802607U, // XVHADDW_DU_WU ++ 16803184U, // XVHADDW_D_W ++ 16801160U, // XVHADDW_HU_BU ++ 16793999U, // XVHADDW_H_B ++ 16801624U, // XVHADDW_QU_DU ++ 16796276U, // XVHADDW_Q_D ++ 16801952U, // XVHADDW_WU_HU ++ 16799065U, // XVHADDW_W_H ++ 1090537486U, // XVHSELI_D ++ 16802592U, // XVHSUBW_DU_WU ++ 16803171U, // XVHSUBW_D_W ++ 16801145U, // XVHSUBW_HU_BU ++ 16793986U, // XVHSUBW_H_B ++ 16801609U, // XVHSUBW_QU_DU ++ 16796263U, // XVHSUBW_Q_D ++ 16801937U, // XVHSUBW_WU_HU ++ 16799052U, // XVHSUBW_W_H ++ 16794021U, // XVILVH_B ++ 16795555U, // XVILVH_D ++ 16798090U, // XVILVH_H ++ 16803671U, // XVILVH_W ++ 16794326U, // XVILVL_B ++ 16795971U, // XVILVL_D ++ 16798343U, // XVILVL_H ++ 16803983U, // XVILVL_W ++ 171985773U, // XVINSGR2VR_D ++ 155216228U, // XVINSGR2VR_W ++ 171984137U, // XVINSVE0_D ++ 155214815U, // XVINSVE0_W ++ 3166049U, // XVLD ++ 21995U, // XVLDI ++ 21995U, // XVLDI_B ++ 21995U, // XVLDI_D ++ 21995U, // XVLDI_H ++ 21995U, // XVLDI_W ++ 3162808U, // XVLDREPL_B ++ 3164435U, // XVLDREPL_D ++ 3166825U, // XVLDREPL_H ++ 3172457U, // XVLDREPL_W ++ 16804733U, // XVLDX ++ 3166049U, // XVLD_D ++ 3166049U, // XVLD_H ++ 3166049U, // XVLD_W ++ 2453693716U, // XVMADDWEV_D_W ++ 2453692880U, // XVMADDWEV_D_WU ++ 2453695116U, // XVMADDWEV_D_WU_W ++ 2453684554U, // XVMADDWEV_H_B ++ 2453691531U, // XVMADDWEV_H_BU ++ 2453685241U, // XVMADDWEV_H_BU_B ++ 2453686844U, // XVMADDWEV_Q_D ++ 2453692112U, // XVMADDWEV_Q_DU ++ 2453687449U, // XVMADDWEV_Q_DU_D ++ 2453689620U, // XVMADDWEV_W_H ++ 2453692677U, // XVMADDWEV_W_HU ++ 2453689404U, // XVMADDWEV_W_HU_H ++ 2453693594U, // XVMADDWOD_D_W ++ 2453692819U, // XVMADDWOD_D_WU ++ 2453695064U, // XVMADDWOD_D_WU_W ++ 2453684471U, // XVMADDWOD_H_B ++ 2453691470U, // XVMADDWOD_H_BU ++ 2453685189U, // XVMADDWOD_H_BU_B ++ 2453686763U, // XVMADDWOD_Q_D ++ 2453692051U, // XVMADDWOD_Q_DU ++ 2453687397U, // XVMADDWOD_Q_DU_D ++ 2453689528U, // XVMADDWOD_W_H ++ 2453692616U, // XVMADDWOD_W_HU ++ 2453689352U, // XVMADDWOD_W_HU_H ++ 2453684303U, // XVMADD_B ++ 2453685790U, // XVMADD_D ++ 2453688551U, // XVMADD_H ++ 2453693840U, // XVMADD_W ++ 16794277U, // XVMAXI_B ++ 1090542842U, // XVMAXI_BU ++ 1090542842U, // XVMAXI_BU_N ++ 16794277U, // XVMAXI_B_N ++ 16795806U, // XVMAXI_D ++ 1090543205U, // XVMAXI_DU ++ 1090543205U, // XVMAXI_DU_N ++ 16795806U, // XVMAXI_D_N ++ 16798294U, // XVMAXI_H ++ 1090543634U, // XVMAXI_HU ++ 1090543634U, // XVMAXI_HU_N ++ 16798294U, // XVMAXI_H_N ++ 16803891U, // XVMAXI_W ++ 1090544270U, // XVMAXI_WU ++ 1090544270U, // XVMAXI_WU_N ++ 16803891U, // XVMAXI_W_N ++ 16794749U, // XVMAX_B ++ 16801200U, // XVMAX_BU ++ 16797412U, // XVMAX_D ++ 16801659U, // XVMAX_DU ++ 16799078U, // XVMAX_H ++ 16802099U, // XVMAX_HU ++ 16804634U, // XVMAX_W ++ 16802642U, // XVMAX_WU ++ 16794134U, // XVMINI_B ++ 1090542820U, // XVMINI_BU ++ 1090542820U, // XVMINI_BU_N ++ 16794134U, // XVMINI_B_N ++ 16795704U, // XVMINI_D ++ 1090543183U, // XVMINI_DU ++ 1090543183U, // XVMINI_DU_N ++ 16795704U, // XVMINI_D_N ++ 16798180U, // XVMINI_H ++ 1090543612U, // XVMINI_HU ++ 1090543612U, // XVMINI_HU_N ++ 16798180U, // XVMINI_H_N ++ 16803789U, // XVMINI_W ++ 1090544248U, // XVMINI_WU ++ 1090544248U, // XVMINI_WU_N ++ 16803789U, // XVMINI_W_N ++ 16794347U, // XVMIN_B ++ 16801029U, // XVMIN_BU ++ 16796037U, // XVMIN_D ++ 16801402U, // XVMIN_DU ++ 16798364U, // XVMIN_H ++ 16801821U, // XVMIN_HU ++ 16804023U, // XVMIN_W ++ 16802476U, // XVMIN_WU ++ 16793738U, // XVMOD_B ++ 16800790U, // XVMOD_BU ++ 16795235U, // XVMOD_D ++ 16801266U, // XVMOD_DU ++ 16797986U, // XVMOD_H ++ 16801704U, // XVMOD_HU ++ 16803284U, // XVMOD_W ++ 16802331U, // XVMOD_WU ++ 17556U, // XVMSKGEZ_B ++ 17618U, // XVMSKLTZ_B ++ 20280U, // XVMSKLTZ_D ++ 21924U, // XVMSKLTZ_H ++ 27487U, // XVMSKLTZ_W ++ 17592U, // XVMSKNZ_B ++ 2453684261U, // XVMSUB_B ++ 2453685705U, // XVMSUB_D ++ 2453688509U, // XVMSUB_H ++ 2453693545U, // XVMSUB_W ++ 16794012U, // XVMUH_B ++ 16800953U, // XVMUH_BU ++ 16795538U, // XVMUH_D ++ 16801316U, // XVMUH_DU ++ 16798081U, // XVMUH_H ++ 16801745U, // XVMUH_HU ++ 16803662U, // XVMUH_W ++ 16802381U, // XVMUH_WU ++ 16803121U, // XVMULWEV_D_W ++ 16802287U, // XVMULWEV_D_WU ++ 16804527U, // XVMULWEV_D_WU_W ++ 16793959U, // XVMULWEV_H_B ++ 16800938U, // XVMULWEV_H_BU ++ 16794652U, // XVMULWEV_H_BU_B ++ 16796249U, // XVMULWEV_Q_D ++ 16801519U, // XVMULWEV_Q_DU ++ 16796860U, // XVMULWEV_Q_DU_D ++ 16799025U, // XVMULWEV_W_H ++ 16802084U, // XVMULWEV_W_HU ++ 16798815U, // XVMULWEV_W_HU_H ++ 16802999U, // XVMULWOD_D_W ++ 16802226U, // XVMULWOD_D_WU ++ 16804475U, // XVMULWOD_D_WU_W ++ 16793876U, // XVMULWOD_H_B ++ 16800877U, // XVMULWOD_H_BU ++ 16794600U, // XVMULWOD_H_BU_B ++ 16796168U, // XVMULWOD_Q_D ++ 16801458U, // XVMULWOD_Q_DU ++ 16796808U, // XVMULWOD_Q_DU_D ++ 16798933U, // XVMULWOD_W_H ++ 16802023U, // XVMULWOD_W_HU ++ 16798763U, // XVMULWOD_W_HU_H ++ 16794317U, // XVMUL_B ++ 16795962U, // XVMUL_D ++ 16798334U, // XVMUL_H ++ 16803974U, // XVMUL_W ++ 16599U, // XVNEG_B ++ 18296U, // XVNEG_D ++ 20847U, // XVNEG_H ++ 26157U, // XVNEG_W ++ 1627406937U, // XVNORI_B ++ 16802720U, // XVNOR_V ++ 1627406947U, // XVORI_B ++ 16802711U, // XVORN_V ++ 16802729U, // XVOR_V ++ 16794669U, // XVPACKEV_B ++ 16797027U, // XVPACKEV_D ++ 16798832U, // XVPACKEV_H ++ 16804544U, // XVPACKEV_W ++ 16793714U, // XVPACKOD_B ++ 16795211U, // XVPACKOD_D ++ 16797962U, // XVPACKOD_H ++ 16803260U, // XVPACKOD_W ++ 17333U, // XVPCNT_B ++ 19506U, // XVPCNT_D ++ 21376U, // XVPCNT_H ++ 27088U, // XVPCNT_W ++ 1627408429U, // XVPERMI_D ++ 88102676U, // XVPERMI_Q ++ 88102676U, // XVPERMI_QD ++ 88102676U, // XVPERMI_QH ++ 88102676U, // XVPERMI_QW ++ 88106946U, // XVPERMI_W ++ 16804004U, // XVPERM_W ++ 16794681U, // XVPICKEV_B ++ 16797039U, // XVPICKEV_D ++ 16798844U, // XVPICKEV_H ++ 16804556U, // XVPICKEV_W ++ 16793726U, // XVPICKOD_B ++ 16795223U, // XVPICKOD_D ++ 16797974U, // XVPICKOD_H ++ 16803272U, // XVPICKOD_W ++ 2969586394U, // XVPICKVE2GR_D ++ 2969591550U, // XVPICKVE2GR_DU ++ 1895852281U, // XVPICKVE2GR_W ++ 1895850678U, // XVPICKVE2GR_WU ++ 171984690U, // XVPICKVE_D ++ 155215371U, // XVPICKVE_W ++ 2164277721U, // XVREPL128VEI_B ++ 2701150194U, // XVREPL128VEI_D ++ 1895846324U, // XVREPL128VEI_H ++ 2969593746U, // XVREPL128VEI_W ++ 17235U, // XVREPLGR2VR_B ++ 19294U, // XVREPLGR2VR_D ++ 21252U, // XVREPLGR2VR_H ++ 26965U, // XVREPLGR2VR_W ++ 16389U, // XVREPLVE0_B ++ 17660U, // XVREPLVE0_D ++ 20421U, // XVREPLVE0_H ++ 22149U, // XVREPLVE0_Q ++ 25554U, // XVREPLVE0_W ++ 16793793U, // XVREPLVE_B ++ 16795454U, // XVREPLVE_D ++ 16798041U, // XVREPLVE_H ++ 16803351U, // XVREPLVE_W ++ 16803351U, // XVREPLVE_W_N ++ 1895842422U, // XVROTRI_B ++ 822102127U, // XVROTRI_D ++ 2164281895U, // XVROTRI_H ++ 1090545668U, // XVROTRI_W ++ 16794441U, // XVROTR_B ++ 16796482U, // XVROTR_D ++ 16798458U, // XVROTR_H ++ 16804153U, // XVROTR_W ++ 16793689U, // XVSADD_B ++ 16800772U, // XVSADD_BU ++ 16795176U, // XVSADD_D ++ 16801255U, // XVSADD_DU ++ 16797937U, // XVSADD_H ++ 16801686U, // XVSADD_HU ++ 16803226U, // XVSADD_W ++ 16802313U, // XVSADD_WU ++ 1895842695U, // XVSAT_B ++ 1895849257U, // XVSAT_BU ++ 822102974U, // XVSAT_D ++ 822107929U, // XVSAT_DU ++ 2164282194U, // XVSAT_H ++ 2164285505U, // XVSAT_HU ++ 1090546082U, // XVSAT_W ++ 1090544351U, // XVSAT_WU ++ 16794156U, // XVSEQI_B ++ 16794156U, // XVSEQI_B_N ++ 16795714U, // XVSEQI_D ++ 16795714U, // XVSEQI_D_N ++ 16798202U, // XVSEQI_H ++ 16798202U, // XVSEQI_H_N ++ 16803799U, // XVSEQI_W ++ 16803799U, // XVSEQI_W_N ++ 16794376U, // XVSEQ_B ++ 16796317U, // XVSEQ_D ++ 16798393U, // XVSEQ_H ++ 16804058U, // XVSEQ_W ++ 17568U, // XVSETALLNEZ_B ++ 20221U, // XVSETALLNEZ_D ++ 21885U, // XVSETALLNEZ_H ++ 27441U, // XVSETALLNEZ_W ++ 17603U, // XVSETANYEQZ_B ++ 20245U, // XVSETANYEQZ_D ++ 21909U, // XVSETANYEQZ_H ++ 27465U, // XVSETANYEQZ_W ++ 25542U, // XVSETEQZ_V ++ 25530U, // XVSETNEZ_V ++ 1627406767U, // XVSHUF4I_B ++ 88098751U, // XVSHUF4I_D ++ 1627410836U, // XVSHUF4I_H ++ 1627416426U, // XVSHUF4I_W ++ 16793805U, // XVSHUF_B ++ 2453686118U, // XVSHUF_D ++ 2453688677U, // XVSHUF_H ++ 2453693987U, // XVSHUF_W ++ 16794714U, // XVSIGNCOV_B ++ 16797082U, // XVSIGNCOV_D ++ 16798877U, // XVSIGNCOV_H ++ 16804589U, // XVSIGNCOV_W ++ 16794063U, // XVSLEI_B ++ 1090542809U, // XVSLEI_BU ++ 1090542809U, // XVSLEI_BU_N ++ 16794063U, // XVSLEI_B_N ++ 16795624U, // XVSLEI_D ++ 1090543172U, // XVSLEI_DU ++ 1090543172U, // XVSLEI_DU_N ++ 16795624U, // XVSLEI_D_N ++ 16798122U, // XVSLEI_H ++ 1090543601U, // XVSLEI_HU ++ 1090543601U, // XVSLEI_HU_N ++ 16798122U, // XVSLEI_H_N ++ 16803720U, // XVSLEI_W ++ 1090544237U, // XVSLEI_WU ++ 1090544237U, // XVSLEI_WU_N ++ 16803720U, // XVSLEI_W_N ++ 16793776U, // XVSLE_B ++ 16800811U, // XVSLE_BU ++ 16795302U, // XVSLE_D ++ 16801287U, // XVSLE_DU ++ 16798024U, // XVSLE_H ++ 16801725U, // XVSLE_HU ++ 16803322U, // XVSLE_W ++ 16802352U, // XVSLE_WU ++ 1895842306U, // XVSLLI_B ++ 1895842306U, // XVSLLI_B_N ++ 822102041U, // XVSLLI_D ++ 822102041U, // XVSLLI_D_N ++ 2164281808U, // XVSLLI_H ++ 2164281808U, // XVSLLI_H_N ++ 1090545582U, // XVSLLI_W ++ 1090545582U, // XVSLLI_W_N ++ 1090544385U, // XVSLLWIL_DU_WU ++ 1090544863U, // XVSLLWIL_D_W ++ 1895849306U, // XVSLLWIL_HU_BU ++ 1895842094U, // XVSLLWIL_H_B ++ 2164285554U, // XVSLLWIL_WU_HU ++ 2164282607U, // XVSLLWIL_W_H ++ 16794287U, // XVSLL_B ++ 16795914U, // XVSLL_D ++ 16798304U, // XVSLL_H ++ 16803936U, // XVSLL_W ++ 16794254U, // XVSLTI_B ++ 1090542831U, // XVSLTI_BU ++ 1090542831U, // XVSLTI_BU_N ++ 16794254U, // XVSLTI_B_N ++ 16795783U, // XVSLTI_D ++ 1090543194U, // XVSLTI_DU ++ 1090543194U, // XVSLTI_DU_N ++ 16795783U, // XVSLTI_D_N ++ 16798271U, // XVSLTI_H ++ 1090543623U, // XVSLTI_HU ++ 1090543623U, // XVSLTI_HU_N ++ 16798271U, // XVSLTI_H_N ++ 16803868U, // XVSLTI_W ++ 1090544259U, // XVSLTI_WU ++ 1090544259U, // XVSLTI_WU_N ++ 16803868U, // XVSLTI_W_N ++ 16794540U, // XVSLT_B ++ 16801075U, // XVSLT_BU ++ 16796683U, // XVSLT_D ++ 16801571U, // XVSLT_DU ++ 16798583U, // XVSLT_H ++ 16801867U, // XVSLT_HU ++ 16804295U, // XVSLT_W ++ 16802537U, // XVSLT_WU ++ 1895842235U, // XVSRAI_B ++ 1895842235U, // XVSRAI_B_N ++ 822101974U, // XVSRAI_D ++ 822101974U, // XVSRAI_D_N ++ 2164281760U, // XVSRAI_H ++ 2164281760U, // XVSRAI_H_N ++ 1090545526U, // XVSRAI_W ++ 1090545526U, // XVSRAI_W_N ++ 121655283U, // XVSRANI_B_H ++ 188765865U, // XVSRANI_D_Q ++ 104883789U, // XVSRANI_H_W ++ 205540813U, // XVSRANI_W_D ++ 16797794U, // XVSRAN_B_H ++ 16803516U, // XVSRAN_H_W ++ 16797259U, // XVSRAN_W_D ++ 1895842358U, // XVSRARI_B ++ 822102092U, // XVSRARI_D ++ 2164281860U, // XVSRARI_H ++ 1090545633U, // XVSRARI_W ++ 121655338U, // XVSRARNI_B_H ++ 188765920U, // XVSRARNI_D_Q ++ 104883844U, // XVSRARNI_H_W ++ 205540868U, // XVSRARNI_W_D ++ 16797845U, // XVSRARN_B_H ++ 16803567U, // XVSRARN_H_W ++ 16797310U, // XVSRARN_W_D ++ 16794385U, // XVSRAR_B ++ 16796356U, // XVSRAR_D ++ 16798402U, // XVSRAR_H ++ 16804067U, // XVSRAR_W ++ 16793628U, // XVSRA_B ++ 16794922U, // XVSRA_D ++ 16797660U, // XVSRA_H ++ 16802805U, // XVSRA_W ++ 1895842316U, // XVSRLI_B ++ 1895842316U, // XVSRLI_B_N ++ 822102051U, // XVSRLI_D ++ 822102051U, // XVSRLI_D_N ++ 2164281818U, // XVSRLI_H ++ 2164281818U, // XVSRLI_H_N ++ 1090545592U, // XVSRLI_W ++ 1090545592U, // XVSRLI_W_N ++ 121655310U, // XVSRLNI_B_H ++ 188765892U, // XVSRLNI_D_Q ++ 104883816U, // XVSRLNI_H_W ++ 205540840U, // XVSRLNI_W_D ++ 16797819U, // XVSRLN_B_H ++ 16803541U, // XVSRLN_H_W ++ 16797284U, // XVSRLN_W_D ++ 1895842382U, // XVSRLRI_B ++ 822102116U, // XVSRLRI_D ++ 2164281884U, // XVSRLRI_H ++ 1090545657U, // XVSRLRI_W ++ 121655367U, // XVSRLRNI_B_H ++ 188765949U, // XVSRLRNI_D_Q ++ 104883873U, // XVSRLRNI_H_W ++ 205540897U, // XVSRLRNI_W_D ++ 16797872U, // XVSRLRN_B_H ++ 16803594U, // XVSRLRN_H_W ++ 16797337U, // XVSRLRN_W_D ++ 16794431U, // XVSRLR_B ++ 16796427U, // XVSRLR_D ++ 16798448U, // XVSRLR_H ++ 16804126U, // XVSRLR_W ++ 16794308U, // XVSRL_B ++ 16795935U, // XVSRL_D ++ 16798325U, // XVSRL_H ++ 16803957U, // XVSRL_W ++ 121656208U, // XVSSRANI_BU_H ++ 121655269U, // XVSSRANI_B_H ++ 188765983U, // XVSSRANI_DU_Q ++ 188765851U, // XVSSRANI_D_Q ++ 104884704U, // XVSSRANI_HU_W ++ 104883775U, // XVSSRANI_H_W ++ 205540587U, // XVSSRANI_WU_D ++ 205540799U, // XVSSRANI_W_D ++ 16798670U, // XVSSRAN_BU_H ++ 16797781U, // XVSSRAN_B_H ++ 16804382U, // XVSSRAN_HU_W ++ 16803503U, // XVSSRAN_H_W ++ 16796969U, // XVSSRAN_WU_D ++ 16797246U, // XVSSRAN_W_D ++ 121656238U, // XVSSRARNI_BU_H ++ 121655323U, // XVSSRARNI_B_H ++ 188766013U, // XVSSRARNI_DU_Q ++ 188765905U, // XVSSRARNI_D_Q ++ 104884734U, // XVSSRARNI_HU_W ++ 104883829U, // XVSSRARNI_H_W ++ 205540617U, // XVSSRARNI_WU_D ++ 205540853U, // XVSSRARNI_W_D ++ 16798698U, // XVSSRARN_BU_H ++ 16797831U, // XVSSRARN_B_H ++ 16804410U, // XVSSRARN_HU_W ++ 16803553U, // XVSSRARN_H_W ++ 16796997U, // XVSSRARN_WU_D ++ 16797296U, // XVSSRARN_W_D ++ 121656223U, // XVSSRLNI_BU_H ++ 121655296U, // XVSSRLNI_B_H ++ 188765998U, // XVSSRLNI_DU_Q ++ 188765878U, // XVSSRLNI_D_Q ++ 104884719U, // XVSSRLNI_HU_W ++ 104883802U, // XVSSRLNI_H_W ++ 205540602U, // XVSSRLNI_WU_D ++ 205540826U, // XVSSRLNI_W_D ++ 16798684U, // XVSSRLN_BU_H ++ 16797806U, // XVSSRLN_B_H ++ 16804396U, // XVSSRLN_HU_W ++ 16803528U, // XVSSRLN_H_W ++ 16796983U, // XVSSRLN_WU_D ++ 16797271U, // XVSSRLN_W_D ++ 121656254U, // XVSSRLRNI_BU_H ++ 121655352U, // XVSSRLRNI_B_H ++ 188766029U, // XVSSRLRNI_DU_Q ++ 188765934U, // XVSSRLRNI_D_Q ++ 104884750U, // XVSSRLRNI_HU_W ++ 104883858U, // XVSSRLRNI_H_W ++ 205540633U, // XVSSRLRNI_WU_D ++ 205540882U, // XVSSRLRNI_W_D ++ 16798713U, // XVSSRLRN_BU_H ++ 16797858U, // XVSSRLRN_B_H ++ 16804425U, // XVSSRLRN_HU_W ++ 16803580U, // XVSSRLRN_H_W ++ 16797012U, // XVSSRLRN_WU_D ++ 16797323U, // XVSSRLRN_W_D ++ 16793647U, // XVSSUB_B ++ 16800761U, // XVSSUB_BU ++ 16795091U, // XVSSUB_D ++ 16801244U, // XVSSUB_DU ++ 16797895U, // XVSSUB_H ++ 16801675U, // XVSSUB_HU ++ 16802931U, // XVSSUB_W ++ 16802169U, // XVSSUB_WU ++ 3169267U, // XVST ++ 16794336U, // XVSTELM_B ++ 16795981U, // XVSTELM_D ++ 16798353U, // XVSTELM_H ++ 16803993U, // XVSTELM_W ++ 16804740U, // XVSTX ++ 3169267U, // XVST_D ++ 3169267U, // XVST_H ++ 3169267U, // XVST_W ++ 1090542787U, // XVSUBI_BU ++ 1090542787U, // XVSUBI_BU_N ++ 1090543150U, // XVSUBI_DU ++ 1090543150U, // XVSUBI_DU_N ++ 1090543579U, // XVSUBI_HU ++ 1090543579U, // XVSUBI_HU_N ++ 1090544215U, // XVSUBI_WU ++ 1090544215U, // XVSUBI_WU_N ++ 16803078U, // XVSUBWEV_D_W ++ 16802241U, // XVSUBWEV_D_WU ++ 16793916U, // XVSUBWEV_H_B ++ 16800892U, // XVSUBWEV_H_BU ++ 16796206U, // XVSUBWEV_Q_D ++ 16801473U, // XVSUBWEV_Q_DU ++ 16798982U, // XVSUBWEV_W_H ++ 16802038U, // XVSUBWEV_W_HU ++ 16802956U, // XVSUBWOD_D_W ++ 16802180U, // XVSUBWOD_D_WU ++ 16793833U, // XVSUBWOD_H_B ++ 16800831U, // XVSUBWOD_H_BU ++ 16796125U, // XVSUBWOD_Q_D ++ 16801412U, // XVSUBWOD_Q_DU ++ 16798890U, // XVSUBWOD_W_H ++ 16801977U, // XVSUBWOD_W_HU ++ 16793657U, // XVSUB_B ++ 16795101U, // XVSUB_D ++ 16797905U, // XVSUB_H ++ 16799378U, // XVSUB_Q ++ 16802941U, // XVSUB_W ++ 1627406956U, // XVXORI_B ++ 1627406956U, // XVXORI_B_N ++ 16802737U, // XVXOR_V ++ 822111159U, // ZEXT64_32 ++ }; ++ ++ static const uint8_t OpInfo1[] = { ++ 0U, // PHI ++ 0U, // INLINEASM ++ 0U, // INLINEASM_BR ++ 0U, // CFI_INSTRUCTION ++ 0U, // EH_LABEL ++ 0U, // GC_LABEL ++ 0U, // ANNOTATION_LABEL ++ 0U, // KILL ++ 0U, // EXTRACT_SUBREG ++ 0U, // INSERT_SUBREG ++ 0U, // IMPLICIT_DEF ++ 0U, // SUBREG_TO_REG ++ 0U, // COPY_TO_REGCLASS ++ 0U, // DBG_VALUE ++ 0U, // DBG_LABEL ++ 0U, // REG_SEQUENCE ++ 0U, // COPY ++ 0U, // BUNDLE ++ 0U, // LIFETIME_START ++ 0U, // LIFETIME_END ++ 0U, // STACKMAP ++ 0U, // FENTRY_CALL ++ 0U, // PATCHPOINT ++ 0U, // LOAD_STACK_GUARD ++ 0U, // STATEPOINT ++ 0U, // LOCAL_ESCAPE ++ 0U, // FAULTING_OP ++ 0U, // PATCHABLE_OP ++ 0U, // PATCHABLE_FUNCTION_ENTER ++ 0U, // PATCHABLE_RET ++ 0U, // PATCHABLE_FUNCTION_EXIT ++ 0U, // PATCHABLE_TAIL_CALL ++ 0U, // PATCHABLE_EVENT_CALL ++ 0U, // PATCHABLE_TYPED_EVENT_CALL ++ 0U, // ICALL_BRANCH_FUNNEL ++ 0U, // G_ADD ++ 0U, // G_SUB ++ 0U, // G_MUL ++ 0U, // G_SDIV ++ 0U, // G_UDIV ++ 0U, // G_SREM ++ 0U, // G_UREM ++ 0U, // G_AND ++ 0U, // G_OR ++ 0U, // G_XOR ++ 0U, // G_IMPLICIT_DEF ++ 0U, // G_PHI ++ 0U, // G_FRAME_INDEX ++ 0U, // G_GLOBAL_VALUE ++ 0U, // G_EXTRACT ++ 0U, // G_UNMERGE_VALUES ++ 0U, // G_INSERT ++ 0U, // G_MERGE_VALUES ++ 0U, // G_BUILD_VECTOR ++ 0U, // G_BUILD_VECTOR_TRUNC ++ 0U, // G_CONCAT_VECTORS ++ 0U, // G_PTRTOINT ++ 0U, // G_INTTOPTR ++ 0U, // G_BITCAST ++ 0U, // G_INTRINSIC_TRUNC ++ 0U, // G_INTRINSIC_ROUND ++ 0U, // G_READCYCLECOUNTER ++ 0U, // G_LOAD ++ 0U, // G_SEXTLOAD ++ 0U, // G_ZEXTLOAD ++ 0U, // G_INDEXED_LOAD ++ 0U, // G_INDEXED_SEXTLOAD ++ 0U, // G_INDEXED_ZEXTLOAD ++ 0U, // G_STORE ++ 0U, // G_INDEXED_STORE ++ 0U, // G_ATOMIC_CMPXCHG_WITH_SUCCESS ++ 0U, // G_ATOMIC_CMPXCHG ++ 0U, // G_ATOMICRMW_XCHG ++ 0U, // G_ATOMICRMW_ADD ++ 0U, // G_ATOMICRMW_SUB ++ 0U, // G_ATOMICRMW_AND ++ 0U, // G_ATOMICRMW_NAND ++ 0U, // G_ATOMICRMW_OR ++ 0U, // G_ATOMICRMW_XOR ++ 0U, // G_ATOMICRMW_MAX ++ 0U, // G_ATOMICRMW_MIN ++ 0U, // G_ATOMICRMW_UMAX ++ 0U, // G_ATOMICRMW_UMIN ++ 0U, // G_ATOMICRMW_FADD ++ 0U, // G_ATOMICRMW_FSUB ++ 0U, // G_FENCE ++ 0U, // G_BRCOND ++ 0U, // G_BRINDIRECT ++ 0U, // G_INTRINSIC ++ 0U, // G_INTRINSIC_W_SIDE_EFFECTS ++ 0U, // G_ANYEXT ++ 0U, // G_TRUNC ++ 0U, // G_CONSTANT ++ 0U, // G_FCONSTANT ++ 0U, // G_VASTART ++ 0U, // G_VAARG ++ 0U, // G_SEXT ++ 0U, // G_SEXT_INREG ++ 0U, // G_ZEXT ++ 0U, // G_SHL ++ 0U, // G_LSHR ++ 0U, // G_ASHR ++ 0U, // G_ICMP ++ 0U, // G_FCMP ++ 0U, // G_SELECT ++ 0U, // G_UADDO ++ 0U, // G_UADDE ++ 0U, // G_USUBO ++ 0U, // G_USUBE ++ 0U, // G_SADDO ++ 0U, // G_SADDE ++ 0U, // G_SSUBO ++ 0U, // G_SSUBE ++ 0U, // G_UMULO ++ 0U, // G_SMULO ++ 0U, // G_UMULH ++ 0U, // G_SMULH ++ 0U, // G_FADD ++ 0U, // G_FSUB ++ 0U, // G_FMUL ++ 0U, // G_FMA ++ 0U, // G_FMAD ++ 0U, // G_FDIV ++ 0U, // G_FREM ++ 0U, // G_FPOW ++ 0U, // G_FEXP ++ 0U, // G_FEXP2 ++ 0U, // G_FLOG ++ 0U, // G_FLOG2 ++ 0U, // G_FLOG10 ++ 0U, // G_FNEG ++ 0U, // G_FPEXT ++ 0U, // G_FPTRUNC ++ 0U, // G_FPTOSI ++ 0U, // G_FPTOUI ++ 0U, // G_SITOFP ++ 0U, // G_UITOFP ++ 0U, // G_FABS ++ 0U, // G_FCOPYSIGN ++ 0U, // G_FCANONICALIZE ++ 0U, // G_FMINNUM ++ 0U, // G_FMAXNUM ++ 0U, // G_FMINNUM_IEEE ++ 0U, // G_FMAXNUM_IEEE ++ 0U, // G_FMINIMUM ++ 0U, // G_FMAXIMUM ++ 0U, // G_PTR_ADD ++ 0U, // G_PTR_MASK ++ 0U, // G_SMIN ++ 0U, // G_SMAX ++ 0U, // G_UMIN ++ 0U, // G_UMAX ++ 0U, // G_BR ++ 0U, // G_BRJT ++ 0U, // G_INSERT_VECTOR_ELT ++ 0U, // G_EXTRACT_VECTOR_ELT ++ 0U, // G_SHUFFLE_VECTOR ++ 0U, // G_CTTZ ++ 0U, // G_CTTZ_ZERO_UNDEF ++ 0U, // G_CTLZ ++ 0U, // G_CTLZ_ZERO_UNDEF ++ 0U, // G_CTPOP ++ 0U, // G_BSWAP ++ 0U, // G_BITREVERSE ++ 0U, // G_FCEIL ++ 0U, // G_FCOS ++ 0U, // G_FSIN ++ 0U, // G_FSQRT ++ 0U, // G_FFLOOR ++ 0U, // G_FRINT ++ 0U, // G_FNEARBYINT ++ 0U, // G_ADDRSPACE_CAST ++ 0U, // G_BLOCK_ADDR ++ 0U, // G_JUMP_TABLE ++ 0U, // G_DYN_STACKALLOC ++ 0U, // G_READ_REGISTER ++ 0U, // G_WRITE_REGISTER ++ 0U, // ADJCALLSTACKDOWN ++ 0U, // ADJCALLSTACKUP ++ 0U, // AND_V_D_PSEUDO ++ 0U, // AND_V_H_PSEUDO ++ 0U, // AND_V_W_PSEUDO ++ 0U, // ATOMIC_CMP_SWAP_I16 ++ 0U, // ATOMIC_CMP_SWAP_I16_POSTRA ++ 0U, // ATOMIC_CMP_SWAP_I32 ++ 0U, // ATOMIC_CMP_SWAP_I32_POSTRA ++ 0U, // ATOMIC_CMP_SWAP_I64 ++ 0U, // ATOMIC_CMP_SWAP_I64_POSTRA ++ 0U, // ATOMIC_CMP_SWAP_I8 ++ 0U, // ATOMIC_CMP_SWAP_I8_POSTRA ++ 0U, // ATOMIC_LOAD_ADD_I16 ++ 0U, // ATOMIC_LOAD_ADD_I16_POSTRA ++ 0U, // ATOMIC_LOAD_ADD_I32 ++ 0U, // ATOMIC_LOAD_ADD_I32_POSTRA ++ 0U, // ATOMIC_LOAD_ADD_I64 ++ 0U, // ATOMIC_LOAD_ADD_I64_POSTRA ++ 0U, // ATOMIC_LOAD_ADD_I8 ++ 0U, // ATOMIC_LOAD_ADD_I8_POSTRA ++ 0U, // ATOMIC_LOAD_AND_I16 ++ 0U, // ATOMIC_LOAD_AND_I16_POSTRA ++ 0U, // ATOMIC_LOAD_AND_I32 ++ 0U, // ATOMIC_LOAD_AND_I32_POSTRA ++ 0U, // ATOMIC_LOAD_AND_I64 ++ 0U, // ATOMIC_LOAD_AND_I64_POSTRA ++ 0U, // ATOMIC_LOAD_AND_I8 ++ 0U, // ATOMIC_LOAD_AND_I8_POSTRA ++ 0U, // ATOMIC_LOAD_MAX_I16 ++ 0U, // ATOMIC_LOAD_MAX_I16_POSTRA ++ 0U, // ATOMIC_LOAD_MAX_I32 ++ 0U, // ATOMIC_LOAD_MAX_I32_POSTRA ++ 0U, // ATOMIC_LOAD_MAX_I64 ++ 0U, // ATOMIC_LOAD_MAX_I64_POSTRA ++ 0U, // ATOMIC_LOAD_MAX_I8 ++ 0U, // ATOMIC_LOAD_MAX_I8_POSTRA ++ 0U, // ATOMIC_LOAD_MIN_I16 ++ 0U, // ATOMIC_LOAD_MIN_I16_POSTRA ++ 0U, // ATOMIC_LOAD_MIN_I32 ++ 0U, // ATOMIC_LOAD_MIN_I32_POSTRA ++ 0U, // ATOMIC_LOAD_MIN_I64 ++ 0U, // ATOMIC_LOAD_MIN_I64_POSTRA ++ 0U, // ATOMIC_LOAD_MIN_I8 ++ 0U, // ATOMIC_LOAD_MIN_I8_POSTRA ++ 0U, // ATOMIC_LOAD_NAND_I16 ++ 0U, // ATOMIC_LOAD_NAND_I16_POSTRA ++ 0U, // ATOMIC_LOAD_NAND_I32 ++ 0U, // ATOMIC_LOAD_NAND_I32_POSTRA ++ 0U, // ATOMIC_LOAD_NAND_I64 ++ 0U, // ATOMIC_LOAD_NAND_I64_POSTRA ++ 0U, // ATOMIC_LOAD_NAND_I8 ++ 0U, // ATOMIC_LOAD_NAND_I8_POSTRA ++ 0U, // ATOMIC_LOAD_OR_I16 ++ 0U, // ATOMIC_LOAD_OR_I16_POSTRA ++ 0U, // ATOMIC_LOAD_OR_I32 ++ 0U, // ATOMIC_LOAD_OR_I32_POSTRA ++ 0U, // ATOMIC_LOAD_OR_I64 ++ 0U, // ATOMIC_LOAD_OR_I64_POSTRA ++ 0U, // ATOMIC_LOAD_OR_I8 ++ 0U, // ATOMIC_LOAD_OR_I8_POSTRA ++ 0U, // ATOMIC_LOAD_SUB_I16 ++ 0U, // ATOMIC_LOAD_SUB_I16_POSTRA ++ 0U, // ATOMIC_LOAD_SUB_I32 ++ 0U, // ATOMIC_LOAD_SUB_I32_POSTRA ++ 0U, // ATOMIC_LOAD_SUB_I64 ++ 0U, // ATOMIC_LOAD_SUB_I64_POSTRA ++ 0U, // ATOMIC_LOAD_SUB_I8 ++ 0U, // ATOMIC_LOAD_SUB_I8_POSTRA ++ 0U, // ATOMIC_LOAD_UMAX_I16 ++ 0U, // ATOMIC_LOAD_UMAX_I16_POSTRA ++ 0U, // ATOMIC_LOAD_UMAX_I32 ++ 0U, // ATOMIC_LOAD_UMAX_I32_POSTRA ++ 0U, // ATOMIC_LOAD_UMAX_I64 ++ 0U, // ATOMIC_LOAD_UMAX_I64_POSTRA ++ 0U, // ATOMIC_LOAD_UMAX_I8 ++ 0U, // ATOMIC_LOAD_UMAX_I8_POSTRA ++ 0U, // ATOMIC_LOAD_UMIN_I16 ++ 0U, // ATOMIC_LOAD_UMIN_I16_POSTRA ++ 0U, // ATOMIC_LOAD_UMIN_I32 ++ 0U, // ATOMIC_LOAD_UMIN_I32_POSTRA ++ 0U, // ATOMIC_LOAD_UMIN_I64 ++ 0U, // ATOMIC_LOAD_UMIN_I64_POSTRA ++ 0U, // ATOMIC_LOAD_UMIN_I8 ++ 0U, // ATOMIC_LOAD_UMIN_I8_POSTRA ++ 0U, // ATOMIC_LOAD_XOR_I16 ++ 0U, // ATOMIC_LOAD_XOR_I16_POSTRA ++ 0U, // ATOMIC_LOAD_XOR_I32 ++ 0U, // ATOMIC_LOAD_XOR_I32_POSTRA ++ 0U, // ATOMIC_LOAD_XOR_I64 ++ 0U, // ATOMIC_LOAD_XOR_I64_POSTRA ++ 0U, // ATOMIC_LOAD_XOR_I8 ++ 0U, // ATOMIC_LOAD_XOR_I8_POSTRA ++ 0U, // ATOMIC_SWAP_I16 ++ 0U, // ATOMIC_SWAP_I16_POSTRA ++ 0U, // ATOMIC_SWAP_I32 ++ 0U, // ATOMIC_SWAP_I32_POSTRA ++ 0U, // ATOMIC_SWAP_I64 ++ 0U, // ATOMIC_SWAP_I64_POSTRA ++ 0U, // ATOMIC_SWAP_I8 ++ 0U, // ATOMIC_SWAP_I8_POSTRA ++ 0U, // BSEL_B_PSEUDO ++ 0U, // BSEL_D_PSEUDO ++ 0U, // BSEL_FD_PSEUDO ++ 0U, // BSEL_FW_PSEUDO ++ 0U, // BSEL_H_PSEUDO ++ 0U, // BSEL_W_PSEUDO ++ 0U, // CONCAT_VECTORS_B_PSEUDO ++ 0U, // CONCAT_VECTORS_D_PSEUDO ++ 0U, // CONCAT_VECTORS_FD_PSEUDO ++ 0U, // CONCAT_VECTORS_FW_PSEUDO ++ 0U, // CONCAT_VECTORS_H_PSEUDO ++ 0U, // CONCAT_VECTORS_W_PSEUDO ++ 0U, // COPY_FD_PSEUDO ++ 0U, // COPY_FW_PSEUDO ++ 0U, // ERet ++ 0U, // FILL_FD_PSEUDO ++ 0U, // FILL_FW_PSEUDO ++ 0U, // INSERT_FD_PSEUDO ++ 0U, // INSERT_FW_PSEUDO ++ 0U, // INSERT_H_VIDX64_PSEUDO ++ 0U, // INSERT_H_VIDX64_PSEUDO_POSTRA ++ 0U, // JIRLRBRIND ++ 0U, // JIRLRPseudo ++ 0U, // LONG_BRANCH_ADDID ++ 0U, // LONG_BRANCH_ADDID2Op ++ 0U, // LONG_BRANCH_ADDIW ++ 0U, // LONG_BRANCH_ADDIW2Op ++ 0U, // LONG_BRANCH_PCADDU12I ++ 0U, // LoadAddrGlobal ++ 0U, // LoadAddrGlobalRR ++ 0U, // LoadAddrGlobal_Alias ++ 0U, // LoadAddrLocal ++ 0U, // LoadAddrLocalRR ++ 0U, // LoadAddrTLS_GD ++ 0U, // LoadAddrTLS_GD_RR ++ 0U, // LoadAddrTLS_IE ++ 0U, // LoadAddrTLS_IE_RR ++ 0U, // LoadAddrTLS_LD ++ 0U, // LoadAddrTLS_LD_RR ++ 0U, // LoadAddrTLS_LE ++ 0U, // LoadImm32 ++ 0U, // LoadImm64 ++ 0U, // LoongArcheh_return32 ++ 0U, // LoongArcheh_return64 ++ 0U, // NOP ++ 0U, // NOR_V_D_PSEUDO ++ 0U, // NOR_V_H_PSEUDO ++ 0U, // NOR_V_W_PSEUDO ++ 0U, // OR_V_D_PSEUDO ++ 0U, // OR_V_H_PSEUDO ++ 0U, // OR_V_W_PSEUDO ++ 0U, // PseudoCall ++ 0U, // PseudoFFINT_D_L ++ 0U, // PseudoFFINT_D_W ++ 0U, // PseudoFFINT_S_L ++ 0U, // PseudoFFINT_S_W ++ 0U, // PseudoReturn ++ 0U, // PseudoReturn64 ++ 0U, // PseudoSELECTFP_F_I ++ 0U, // PseudoSELECTFP_F_I64 ++ 0U, // PseudoSELECTFP_T_I ++ 0U, // PseudoSELECTFP_T_I64 ++ 0U, // PseudoSELECT_D64 ++ 0U, // PseudoSELECT_I ++ 0U, // PseudoSELECT_I64 ++ 0U, // PseudoSELECT_S ++ 0U, // PseudoTAILIndirect ++ 0U, // PseudoTEQ ++ 0U, // PseudoTailCall ++ 0U, // PseudoTailReturn ++ 0U, // RetRA ++ 0U, // SNZ_B_PSEUDO ++ 0U, // SNZ_D_PSEUDO ++ 0U, // SNZ_H_PSEUDO ++ 0U, // SNZ_V_PSEUDO ++ 0U, // SNZ_W_PSEUDO ++ 0U, // SZ_B_PSEUDO ++ 0U, // SZ_D_PSEUDO ++ 0U, // SZ_H_PSEUDO ++ 0U, // SZ_V_PSEUDO ++ 0U, // SZ_W_PSEUDO ++ 0U, // TRAP ++ 0U, // VANDN_D_PSEUDO ++ 0U, // VANDN_H_PSEUDO ++ 0U, // VANDN_W_PSEUDO ++ 0U, // VORN_D_PSEUDO ++ 0U, // VORN_H_PSEUDO ++ 0U, // VORN_W_PSEUDO ++ 0U, // XAND_V_D_PSEUDO ++ 0U, // XAND_V_H_PSEUDO ++ 0U, // XAND_V_W_PSEUDO ++ 0U, // XBSEL_B_PSEUDO ++ 0U, // XBSEL_D_PSEUDO ++ 0U, // XBSEL_FD_PSEUDO ++ 0U, // XBSEL_FW_PSEUDO ++ 0U, // XBSEL_H_PSEUDO ++ 0U, // XBSEL_W_PSEUDO ++ 0U, // XCOPY_FD_PSEUDO ++ 0U, // XCOPY_FW_GPR_PSEUDO ++ 0U, // XCOPY_FW_PSEUDO ++ 0U, // XFILL_FD_PSEUDO ++ 0U, // XFILL_FW_PSEUDO ++ 0U, // XINSERT_B_PSEUDO ++ 0U, // XINSERT_B_VIDX64_PSEUDO ++ 0U, // XINSERT_B_VIDX64_PSEUDO_POSTRA ++ 0U, // XINSERT_B_VIDX_PSEUDO ++ 0U, // XINSERT_B_VIDX_PSEUDO_POSTRA ++ 0U, // XINSERT_FD_PSEUDO ++ 0U, // XINSERT_FW_PSEUDO ++ 0U, // XINSERT_FW_VIDX64_PSEUDO ++ 0U, // XINSERT_FW_VIDX64_PSEUDO_POSTRA ++ 0U, // XINSERT_FW_VIDX_PSEUDO ++ 0U, // XINSERT_FW_VIDX_PSEUDO_POSTRA ++ 0U, // XINSERT_H64_PSEUDO ++ 0U, // XINSERT_H_PSEUDO ++ 0U, // XNOR_V_D_PSEUDO ++ 0U, // XNOR_V_H_PSEUDO ++ 0U, // XNOR_V_W_PSEUDO ++ 0U, // XOR_V_D_PSEUDO ++ 0U, // XOR_V_H_PSEUDO ++ 0U, // XOR_V_W_PSEUDO ++ 0U, // XSNZ_B_PSEUDO ++ 0U, // XSNZ_D_PSEUDO ++ 0U, // XSNZ_H_PSEUDO ++ 0U, // XSNZ_V_PSEUDO ++ 0U, // XSNZ_W_PSEUDO ++ 0U, // XSZ_B_PSEUDO ++ 0U, // XSZ_D_PSEUDO ++ 0U, // XSZ_H_PSEUDO ++ 0U, // XSZ_V_PSEUDO ++ 0U, // XSZ_W_PSEUDO ++ 0U, // XVANDN_D_PSEUDO ++ 0U, // XVANDN_H_PSEUDO ++ 0U, // XVANDN_W_PSEUDO ++ 0U, // XVORN_D_PSEUDO ++ 0U, // XVORN_H_PSEUDO ++ 0U, // XVORN_W_PSEUDO ++ 0U, // XXOR_V_D_PSEUDO ++ 0U, // XXOR_V_H_PSEUDO ++ 0U, // XXOR_V_W_PSEUDO ++ 0U, // X_OR_V_D_PSEUDO ++ 0U, // X_OR_V_H_PSEUDO ++ 0U, // X_OR_V_W_PSEUDO ++ 0U, // ADDI_D ++ 0U, // ADDI_D_rri ++ 0U, // ADDI_D_rrii ++ 0U, // ADDI_W ++ 0U, // ADDI_W64 ++ 0U, // ADDU16I_D ++ 0U, // ADD_D ++ 0U, // ADD_D_rrr ++ 0U, // ADD_W ++ 1U, // ALSL_D ++ 1U, // ALSL_W ++ 1U, // ALSL_WU ++ 0U, // AMADD_D ++ 0U, // AMADD_DB_D ++ 0U, // AMADD_DB_W ++ 0U, // AMADD_W ++ 0U, // AMAND_D ++ 0U, // AMAND_DB_D ++ 0U, // AMAND_DB_W ++ 0U, // AMAND_W ++ 0U, // AMMAX_D ++ 0U, // AMMAX_DB_D ++ 0U, // AMMAX_DB_DU ++ 0U, // AMMAX_DB_W ++ 0U, // AMMAX_DB_WU ++ 0U, // AMMAX_DU ++ 0U, // AMMAX_W ++ 0U, // AMMAX_WU ++ 0U, // AMMIN_D ++ 0U, // AMMIN_DB_D ++ 0U, // AMMIN_DB_DU ++ 0U, // AMMIN_DB_W ++ 0U, // AMMIN_DB_WU ++ 0U, // AMMIN_DU ++ 0U, // AMMIN_W ++ 0U, // AMMIN_WU ++ 0U, // AMOR_D ++ 0U, // AMOR_DB_D ++ 0U, // AMOR_DB_W ++ 0U, // AMOR_W ++ 0U, // AMSWAP_D ++ 0U, // AMSWAP_DB_D ++ 0U, // AMSWAP_DB_W ++ 0U, // AMSWAP_W ++ 0U, // AMXOR_D ++ 0U, // AMXOR_DB_D ++ 0U, // AMXOR_DB_W ++ 0U, // AMXOR_W ++ 0U, // AND ++ 0U, // AND32 ++ 0U, // ANDI ++ 0U, // ANDI32 ++ 0U, // ANDN ++ 0U, // ANDN32 ++ 0U, // ASRTGT_D ++ 0U, // ASRTLE_D ++ 0U, // B ++ 0U, // B32 ++ 0U, // BCEQZ ++ 0U, // BCNEZ ++ 0U, // BEQ ++ 0U, // BEQ32 ++ 0U, // BEQZ ++ 0U, // BEQZ32 ++ 0U, // BGE ++ 0U, // BGE32 ++ 0U, // BGEU ++ 0U, // BGEU32 ++ 0U, // BITREV_4B ++ 0U, // BITREV_8B ++ 0U, // BITREV_D ++ 0U, // BITREV_W ++ 0U, // BL ++ 0U, // BLT ++ 0U, // BLT32 ++ 0U, // BLTU ++ 0U, // BLTU32 ++ 0U, // BNE ++ 0U, // BNE32 ++ 0U, // BNEZ ++ 0U, // BNEZ32 ++ 0U, // BREAK ++ 3U, // BSTRINS_D ++ 5U, // BSTRINS_W ++ 3U, // BSTRPICK_D ++ 5U, // BSTRPICK_W ++ 7U, // BYTEPICK_D ++ 9U, // BYTEPICK_W ++ 0U, // CACOP ++ 0U, // CACOP32 ++ 0U, // CLO_D ++ 0U, // CLO_W ++ 0U, // CLZ_D ++ 0U, // CLZ_W ++ 0U, // CPUCFG ++ 0U, // CRCC_W_B_W ++ 0U, // CRCC_W_D_W ++ 0U, // CRCC_W_H_W ++ 0U, // CRCC_W_W_W ++ 0U, // CRC_W_B_W ++ 0U, // CRC_W_D_W ++ 0U, // CRC_W_H_W ++ 0U, // CRC_W_W_W ++ 0U, // CSRRD ++ 0U, // CSRRD32 ++ 0U, // CSRWR ++ 0U, // CSRWR32 ++ 0U, // CSRXCHG ++ 0U, // CSRXCHG32 ++ 0U, // CTO_D ++ 0U, // CTO_W ++ 0U, // CTZ_D ++ 0U, // CTZ_W ++ 0U, // DBAR ++ 0U, // DBCL ++ 0U, // DIV_D ++ 0U, // DIV_DU ++ 0U, // DIV_W ++ 0U, // DIV_WU ++ 0U, // ERTN ++ 0U, // EXT_W_B ++ 0U, // EXT_W_B32 ++ 0U, // EXT_W_H ++ 0U, // EXT_W_H32 ++ 0U, // FABS_D ++ 0U, // FABS_S ++ 0U, // FADD_D ++ 0U, // FADD_S ++ 0U, // FCLASS_D ++ 0U, // FCLASS_S ++ 0U, // FCMP_CAF_D ++ 0U, // FCMP_CAF_S ++ 0U, // FCMP_CEQ_D ++ 0U, // FCMP_CEQ_S ++ 0U, // FCMP_CLE_D ++ 0U, // FCMP_CLE_S ++ 0U, // FCMP_CLT_D ++ 0U, // FCMP_CLT_S ++ 0U, // FCMP_CNE_D ++ 0U, // FCMP_CNE_S ++ 0U, // FCMP_COR_D ++ 0U, // FCMP_COR_S ++ 0U, // FCMP_CUEQ_D ++ 0U, // FCMP_CUEQ_S ++ 0U, // FCMP_CULE_D ++ 0U, // FCMP_CULE_S ++ 0U, // FCMP_CULT_D ++ 0U, // FCMP_CULT_S ++ 0U, // FCMP_CUNE_D ++ 0U, // FCMP_CUNE_S ++ 0U, // FCMP_CUN_D ++ 0U, // FCMP_CUN_S ++ 0U, // FCMP_D64 ++ 0U, // FCMP_S32 ++ 0U, // FCMP_SAF_D ++ 0U, // FCMP_SAF_S ++ 0U, // FCMP_SEQ_D ++ 0U, // FCMP_SEQ_S ++ 0U, // FCMP_SLE_D ++ 0U, // FCMP_SLE_S ++ 0U, // FCMP_SLT_D ++ 0U, // FCMP_SLT_S ++ 0U, // FCMP_SNE_D ++ 0U, // FCMP_SNE_S ++ 0U, // FCMP_SOR_D ++ 0U, // FCMP_SOR_S ++ 0U, // FCMP_SUEQ_D ++ 0U, // FCMP_SUEQ_S ++ 0U, // FCMP_SULE_D ++ 0U, // FCMP_SULE_S ++ 0U, // FCMP_SULT_D ++ 0U, // FCMP_SULT_S ++ 0U, // FCMP_SUNE_D ++ 0U, // FCMP_SUNE_S ++ 0U, // FCMP_SUN_D ++ 0U, // FCMP_SUN_S ++ 0U, // FCOPYSIGN_D ++ 0U, // FCOPYSIGN_S ++ 0U, // FCVT_D_S ++ 0U, // FCVT_S_D ++ 0U, // FDIV_D ++ 0U, // FDIV_S ++ 0U, // FFINT_D_L ++ 0U, // FFINT_D_W ++ 0U, // FFINT_S_L ++ 0U, // FFINT_S_W ++ 0U, // FLDGT_D ++ 0U, // FLDGT_S ++ 0U, // FLDLE_D ++ 0U, // FLDLE_S ++ 0U, // FLDX_D ++ 0U, // FLDX_S ++ 0U, // FLD_D ++ 0U, // FLD_S ++ 0U, // FLOGB_D ++ 0U, // FLOGB_S ++ 11U, // FMADD_D ++ 11U, // FMADD_S ++ 0U, // FMAXA_D ++ 0U, // FMAXA_S ++ 0U, // FMAX_D ++ 0U, // FMAX_S ++ 0U, // FMINA_D ++ 0U, // FMINA_S ++ 0U, // FMIN_D ++ 0U, // FMIN_S ++ 0U, // FMOV_D ++ 0U, // FMOV_S ++ 11U, // FMSUB_D ++ 11U, // FMSUB_S ++ 0U, // FMUL_D ++ 0U, // FMUL_S ++ 0U, // FNEG_D ++ 0U, // FNEG_S ++ 11U, // FNMADD_D ++ 11U, // FNMADD_S ++ 11U, // FNMSUB_D ++ 11U, // FNMSUB_S ++ 0U, // FRECIP_D ++ 0U, // FRECIP_S ++ 0U, // FRINT_D ++ 0U, // FRINT_S ++ 0U, // FRSQRT_D ++ 0U, // FRSQRT_S ++ 0U, // FSCALEB_D ++ 0U, // FSCALEB_S ++ 0U, // FSEL_T_D ++ 0U, // FSEL_T_S ++ 0U, // FSQRT_D ++ 0U, // FSQRT_S ++ 0U, // FSTGT_D ++ 0U, // FSTGT_S ++ 0U, // FSTLE_D ++ 0U, // FSTLE_S ++ 0U, // FSTX_D ++ 0U, // FSTX_S ++ 0U, // FST_D ++ 0U, // FST_S ++ 0U, // FSUB_D ++ 0U, // FSUB_S ++ 0U, // FTINTRM_L_D ++ 0U, // FTINTRM_L_S ++ 0U, // FTINTRM_W_D ++ 0U, // FTINTRM_W_S ++ 0U, // FTINTRNE_L_D ++ 0U, // FTINTRNE_L_S ++ 0U, // FTINTRNE_W_D ++ 0U, // FTINTRNE_W_S ++ 0U, // FTINTRP_L_D ++ 0U, // FTINTRP_L_S ++ 0U, // FTINTRP_W_D ++ 0U, // FTINTRP_W_S ++ 0U, // FTINTRZ_L_D ++ 0U, // FTINTRZ_L_S ++ 0U, // FTINTRZ_W_S ++ 0U, // FTINT_L_D ++ 0U, // FTINT_L_S ++ 0U, // FTINT_W_D ++ 0U, // FTINT_W_S ++ 0U, // HYPCALL ++ 0U, // IBAR ++ 0U, // IDLE ++ 0U, // INVTLB ++ 0U, // IOCSRRD_B ++ 0U, // IOCSRRD_B32 ++ 0U, // IOCSRRD_D ++ 0U, // IOCSRRD_H ++ 0U, // IOCSRRD_H32 ++ 0U, // IOCSRRD_W ++ 0U, // IOCSRRD_W32 ++ 0U, // IOCSRWR_B32 ++ 0U, // IOCSRWR_D ++ 0U, // IOCSRWR_H32 ++ 0U, // IOCSRWR_W32 ++ 0U, // JIRL ++ 0U, // JIRL32 ++ 0U, // JIRLR ++ 0U, // JIRL_CALL ++ 0U, // LAPCREL ++ 0U, // LDDIR ++ 0U, // LDDIR32 ++ 0U, // LDGT_B ++ 0U, // LDGT_D ++ 0U, // LDGT_H ++ 0U, // LDGT_W ++ 0U, // LDLE_B ++ 0U, // LDLE_D ++ 0U, // LDLE_H ++ 0U, // LDLE_W ++ 0U, // LDPTE ++ 0U, // LDPTE32 ++ 0U, // LDPTR_D ++ 0U, // LDPTR_W ++ 0U, // LDPTR_W32 ++ 0U, // LDX_B ++ 0U, // LDX_B32 ++ 0U, // LDX_BU ++ 0U, // LDX_BU32 ++ 0U, // LDX_D ++ 0U, // LDX_D_rrr ++ 0U, // LDX_H ++ 0U, // LDX_H32 ++ 0U, // LDX_HU ++ 0U, // LDX_HU32 ++ 0U, // LDX_W ++ 0U, // LDX_W32 ++ 0U, // LDX_WU ++ 0U, // LD_B ++ 0U, // LD_B32 ++ 0U, // LD_BU ++ 0U, // LD_BU32 ++ 0U, // LD_D ++ 0U, // LD_D_rri ++ 0U, // LD_D_rrii ++ 0U, // LD_H ++ 0U, // LD_H32 ++ 0U, // LD_HU ++ 0U, // LD_HU32 ++ 0U, // LD_W ++ 0U, // LD_W32 ++ 0U, // LD_WU ++ 0U, // LEA_ADDI_D ++ 0U, // LEA_ADDI_W ++ 0U, // LL_D ++ 0U, // LL_W ++ 0U, // LU12I_W ++ 0U, // LU12I_W32 ++ 0U, // LU12I_W_ri ++ 0U, // LU32I_D ++ 0U, // LU32I_D_R2 ++ 0U, // LU32I_D_ri ++ 0U, // LU32I_D_rii ++ 0U, // LU52I_D ++ 0U, // LU52I_D_rri ++ 0U, // LU52I_D_rrii ++ 0U, // MASKEQZ ++ 0U, // MASKEQZ32 ++ 0U, // MASKNEZ ++ 0U, // MASKNEZ32 ++ 0U, // MOD_D ++ 0U, // MOD_DU ++ 0U, // MOD_W ++ 0U, // MOD_WU ++ 0U, // MOVCF2FR ++ 0U, // MOVCF2FR32 ++ 0U, // MOVCF2GR ++ 0U, // MOVCF2GR32 ++ 0U, // MOVFCSR2GR ++ 0U, // MOVFR2CF ++ 0U, // MOVFR2CF32 ++ 0U, // MOVFR2GR_D ++ 0U, // MOVFR2GR_DS ++ 0U, // MOVFR2GR_S ++ 0U, // MOVFRH2GR_S ++ 0U, // MOVGR2CF ++ 0U, // MOVGR2CF32 ++ 0U, // MOVGR2FCSR ++ 0U, // MOVGR2FRH_W ++ 0U, // MOVGR2FR_D ++ 0U, // MOVGR2FR_W ++ 0U, // MULH_D ++ 0U, // MULH_DU ++ 0U, // MULH_W ++ 0U, // MULH_WU ++ 0U, // MULW_D_W ++ 0U, // MULW_D_WU ++ 0U, // MUL_D ++ 0U, // MUL_W ++ 0U, // NOR ++ 0U, // NOR32 ++ 0U, // OR ++ 0U, // OR32 ++ 0U, // ORI ++ 0U, // ORI32 ++ 0U, // ORI_rri ++ 0U, // ORI_rrii ++ 0U, // ORN ++ 0U, // ORN32 ++ 0U, // PCADDI ++ 0U, // PCADDI32 ++ 0U, // PCADDU12I ++ 0U, // PCADDU12I32 ++ 0U, // PCADDU12I_ri ++ 0U, // PCADDU12I_rii ++ 0U, // PCADDU18I ++ 0U, // PCALAU12I ++ 0U, // PCALAU12I32 ++ 0U, // PRELD ++ 0U, // PRELD32 ++ 0U, // PRELD_Raw ++ 0U, // PRELD_Raw32 ++ 0U, // RDTIMEH_W ++ 0U, // RDTIMEH_W32 ++ 0U, // RDTIMEL_W ++ 0U, // RDTIMEL_W32 ++ 0U, // RDTIME_D ++ 0U, // REVB_2H ++ 0U, // REVB_2W ++ 0U, // REVB_2W_32 ++ 0U, // REVB_4H ++ 0U, // REVB_D ++ 0U, // REVH_2W ++ 0U, // REVH_2W_32 ++ 0U, // REVH_D ++ 0U, // ROTRI_D ++ 0U, // ROTRI_W ++ 0U, // ROTR_D ++ 0U, // ROTR_W ++ 0U, // SC_D ++ 0U, // SC_W ++ 0U, // SLLI_D ++ 0U, // SLLI_D_64_32 ++ 0U, // SLLI_W ++ 0U, // SLLI_W_64_32 ++ 0U, // SLLI_W_64_64 ++ 0U, // SLL_D ++ 0U, // SLL_W ++ 0U, // SLT ++ 0U, // SLT32 ++ 0U, // SLTI ++ 0U, // SLTI32 ++ 0U, // SLTU ++ 0U, // SLTU32 ++ 0U, // SLTUI ++ 0U, // SLTUI32 ++ 0U, // SLTUI_64 ++ 0U, // SRAI_D ++ 0U, // SRAI_W ++ 0U, // SRA_D ++ 0U, // SRA_W ++ 0U, // SRLI_D ++ 0U, // SRLI_W ++ 0U, // SRL_D ++ 0U, // SRL_W ++ 0U, // STGT_B ++ 0U, // STGT_D ++ 0U, // STGT_H ++ 0U, // STGT_W ++ 0U, // STLE_B ++ 0U, // STLE_D ++ 0U, // STLE_H ++ 0U, // STLE_W ++ 0U, // STPTR_D ++ 0U, // STPTR_W ++ 0U, // STPTR_W32 ++ 0U, // STX_B ++ 0U, // STX_B32 ++ 0U, // STX_D ++ 0U, // STX_H ++ 0U, // STX_H32 ++ 0U, // STX_W ++ 0U, // STX_W32 ++ 0U, // ST_B ++ 0U, // ST_B32 ++ 0U, // ST_D ++ 0U, // ST_H ++ 0U, // ST_H32 ++ 0U, // ST_W ++ 0U, // ST_W32 ++ 0U, // SUB_D ++ 0U, // SUB_W ++ 0U, // SYSCALL ++ 0U, // TLBCLR ++ 0U, // TLBFILL ++ 0U, // TLBFLUSH ++ 0U, // TLBRD ++ 0U, // TLBSRCH ++ 0U, // TLBWR ++ 0U, // TRUNC_W_D ++ 0U, // VABSD_B ++ 0U, // VABSD_BU ++ 0U, // VABSD_D ++ 0U, // VABSD_DU ++ 0U, // VABSD_H ++ 0U, // VABSD_HU ++ 0U, // VABSD_W ++ 0U, // VABSD_WU ++ 0U, // VADDA_B ++ 0U, // VADDA_D ++ 0U, // VADDA_H ++ 0U, // VADDA_W ++ 0U, // VADDI_BU ++ 0U, // VADDI_DU ++ 0U, // VADDI_HU ++ 0U, // VADDI_WU ++ 0U, // VADDWEV_D_W ++ 0U, // VADDWEV_D_WU ++ 0U, // VADDWEV_D_WU_W ++ 0U, // VADDWEV_H_B ++ 0U, // VADDWEV_H_BU ++ 0U, // VADDWEV_H_BU_B ++ 0U, // VADDWEV_Q_D ++ 0U, // VADDWEV_Q_DU ++ 0U, // VADDWEV_Q_DU_D ++ 0U, // VADDWEV_W_H ++ 0U, // VADDWEV_W_HU ++ 0U, // VADDWEV_W_HU_H ++ 0U, // VADDWOD_D_W ++ 0U, // VADDWOD_D_WU ++ 0U, // VADDWOD_D_WU_W ++ 0U, // VADDWOD_H_B ++ 0U, // VADDWOD_H_BU ++ 0U, // VADDWOD_H_BU_B ++ 0U, // VADDWOD_Q_D ++ 0U, // VADDWOD_Q_DU ++ 0U, // VADDWOD_Q_DU_D ++ 0U, // VADDWOD_W_H ++ 0U, // VADDWOD_W_HU ++ 0U, // VADDWOD_W_HU_H ++ 0U, // VADD_B ++ 0U, // VADD_D ++ 0U, // VADD_H ++ 0U, // VADD_Q ++ 0U, // VADD_W ++ 0U, // VANDI_B ++ 0U, // VANDI_B_N ++ 0U, // VANDN_V ++ 0U, // VAND_V ++ 0U, // VAVGR_B ++ 0U, // VAVGR_BU ++ 0U, // VAVGR_D ++ 0U, // VAVGR_DU ++ 0U, // VAVGR_H ++ 0U, // VAVGR_HU ++ 0U, // VAVGR_W ++ 0U, // VAVGR_WU ++ 0U, // VAVG_B ++ 0U, // VAVG_BU ++ 0U, // VAVG_D ++ 0U, // VAVG_DU ++ 0U, // VAVG_H ++ 0U, // VAVG_HU ++ 0U, // VAVG_W ++ 0U, // VAVG_WU ++ 0U, // VBITCLRI_B ++ 0U, // VBITCLRI_D ++ 0U, // VBITCLRI_H ++ 0U, // VBITCLRI_W ++ 0U, // VBITCLR_B ++ 0U, // VBITCLR_D ++ 0U, // VBITCLR_H ++ 0U, // VBITCLR_W ++ 0U, // VBITREVI_B ++ 0U, // VBITREVI_D ++ 0U, // VBITREVI_H ++ 0U, // VBITREVI_W ++ 0U, // VBITREV_B ++ 0U, // VBITREV_D ++ 0U, // VBITREV_H ++ 0U, // VBITREV_W ++ 0U, // VBITSELI_B ++ 0U, // VBITSELI_B_N ++ 11U, // VBITSEL_V ++ 0U, // VBITSETI_B ++ 0U, // VBITSETI_D ++ 0U, // VBITSETI_H ++ 0U, // VBITSETI_W ++ 0U, // VBITSET_B ++ 0U, // VBITSET_D ++ 0U, // VBITSET_H ++ 0U, // VBITSET_W ++ 0U, // VBSLL_V ++ 0U, // VBSRL_V ++ 0U, // VCLO_B ++ 0U, // VCLO_D ++ 0U, // VCLO_H ++ 0U, // VCLO_W ++ 0U, // VCLZ_B ++ 0U, // VCLZ_D ++ 0U, // VCLZ_H ++ 0U, // VCLZ_W ++ 0U, // VDIV_B ++ 0U, // VDIV_BU ++ 0U, // VDIV_D ++ 0U, // VDIV_DU ++ 0U, // VDIV_H ++ 0U, // VDIV_HU ++ 0U, // VDIV_W ++ 0U, // VDIV_WU ++ 0U, // VEXT2XV_DU_BU ++ 0U, // VEXT2XV_DU_HU ++ 0U, // VEXT2XV_DU_WU ++ 0U, // VEXT2XV_D_B ++ 0U, // VEXT2XV_D_H ++ 0U, // VEXT2XV_D_W ++ 0U, // VEXT2XV_HU_BU ++ 0U, // VEXT2XV_H_B ++ 0U, // VEXT2XV_WU_BU ++ 0U, // VEXT2XV_WU_HU ++ 0U, // VEXT2XV_W_B ++ 0U, // VEXT2XV_W_H ++ 0U, // VEXTH_DU_WU ++ 0U, // VEXTH_D_W ++ 0U, // VEXTH_HU_BU ++ 0U, // VEXTH_H_B ++ 0U, // VEXTH_QU_DU ++ 0U, // VEXTH_Q_D ++ 0U, // VEXTH_WU_HU ++ 0U, // VEXTH_W_H ++ 0U, // VEXTL_QU_DU ++ 0U, // VEXTL_Q_D ++ 0U, // VEXTRINS_B ++ 0U, // VEXTRINS_D ++ 0U, // VEXTRINS_H ++ 0U, // VEXTRINS_W ++ 0U, // VFADD_D ++ 0U, // VFADD_S ++ 0U, // VFCLASS_D ++ 0U, // VFCLASS_S ++ 0U, // VFCMP_CAF_D ++ 0U, // VFCMP_CAF_S ++ 0U, // VFCMP_CEQ_D ++ 0U, // VFCMP_CEQ_S ++ 0U, // VFCMP_CLE_D ++ 0U, // VFCMP_CLE_S ++ 0U, // VFCMP_CLT_D ++ 0U, // VFCMP_CLT_S ++ 0U, // VFCMP_CNE_D ++ 0U, // VFCMP_CNE_S ++ 0U, // VFCMP_COR_D ++ 0U, // VFCMP_COR_S ++ 0U, // VFCMP_CUEQ_D ++ 0U, // VFCMP_CUEQ_S ++ 0U, // VFCMP_CULE_D ++ 0U, // VFCMP_CULE_S ++ 0U, // VFCMP_CULT_D ++ 0U, // VFCMP_CULT_S ++ 0U, // VFCMP_CUNE_D ++ 0U, // VFCMP_CUNE_S ++ 0U, // VFCMP_CUN_D ++ 0U, // VFCMP_CUN_S ++ 0U, // VFCMP_SAF_D ++ 0U, // VFCMP_SAF_S ++ 0U, // VFCMP_SEQ_D ++ 0U, // VFCMP_SEQ_S ++ 0U, // VFCMP_SLE_D ++ 0U, // VFCMP_SLE_S ++ 0U, // VFCMP_SLT_D ++ 0U, // VFCMP_SLT_S ++ 0U, // VFCMP_SNE_D ++ 0U, // VFCMP_SNE_S ++ 0U, // VFCMP_SOR_D ++ 0U, // VFCMP_SOR_S ++ 0U, // VFCMP_SUEQ_D ++ 0U, // VFCMP_SUEQ_S ++ 0U, // VFCMP_SULE_D ++ 0U, // VFCMP_SULE_S ++ 0U, // VFCMP_SULT_D ++ 0U, // VFCMP_SULT_S ++ 0U, // VFCMP_SUNE_D ++ 0U, // VFCMP_SUNE_S ++ 0U, // VFCMP_SUN_D ++ 0U, // VFCMP_SUN_S ++ 0U, // VFCVTH_D_S ++ 0U, // VFCVTH_S_H ++ 0U, // VFCVTL_D_S ++ 0U, // VFCVTL_S_H ++ 0U, // VFCVT_H_S ++ 0U, // VFCVT_S_D ++ 0U, // VFDIV_D ++ 0U, // VFDIV_S ++ 0U, // VFFINTH_D_W ++ 0U, // VFFINTL_D_W ++ 0U, // VFFINT_D_L ++ 0U, // VFFINT_D_LU ++ 0U, // VFFINT_S_L ++ 0U, // VFFINT_S_W ++ 0U, // VFFINT_S_WU ++ 0U, // VFLOGB_D ++ 0U, // VFLOGB_S ++ 11U, // VFMADD_D ++ 11U, // VFMADD_S ++ 0U, // VFMAXA_D ++ 0U, // VFMAXA_S ++ 0U, // VFMAX_D ++ 0U, // VFMAX_S ++ 0U, // VFMINA_D ++ 0U, // VFMINA_S ++ 0U, // VFMIN_D ++ 0U, // VFMIN_S ++ 11U, // VFMSUB_D ++ 11U, // VFMSUB_S ++ 0U, // VFMUL_D ++ 0U, // VFMUL_S ++ 11U, // VFNMADD_D ++ 11U, // VFNMADD_S ++ 11U, // VFNMSUB_D ++ 11U, // VFNMSUB_S ++ 0U, // VFRECIP_D ++ 0U, // VFRECIP_S ++ 0U, // VFRINTRM_D ++ 0U, // VFRINTRM_S ++ 0U, // VFRINTRNE_D ++ 0U, // VFRINTRNE_S ++ 0U, // VFRINTRP_D ++ 0U, // VFRINTRP_S ++ 0U, // VFRINTRZ_D ++ 0U, // VFRINTRZ_S ++ 0U, // VFRINT_D ++ 0U, // VFRINT_S ++ 0U, // VFRSQRT_D ++ 0U, // VFRSQRT_S ++ 0U, // VFRSTPI_B ++ 0U, // VFRSTPI_H ++ 0U, // VFRSTP_B ++ 0U, // VFRSTP_H ++ 0U, // VFSQRT_D ++ 0U, // VFSQRT_S ++ 0U, // VFSUB_D ++ 0U, // VFSUB_S ++ 0U, // VFTINTH_L_S ++ 0U, // VFTINTL_L_S ++ 0U, // VFTINTRMH_L_S ++ 0U, // VFTINTRML_L_S ++ 0U, // VFTINTRM_L_D ++ 0U, // VFTINTRM_W_D ++ 0U, // VFTINTRM_W_S ++ 0U, // VFTINTRNEH_L_S ++ 0U, // VFTINTRNEL_L_S ++ 0U, // VFTINTRNE_L_D ++ 0U, // VFTINTRNE_W_D ++ 0U, // VFTINTRNE_W_S ++ 0U, // VFTINTRPH_L_S ++ 0U, // VFTINTRPL_L_S ++ 0U, // VFTINTRP_L_D ++ 0U, // VFTINTRP_W_D ++ 0U, // VFTINTRP_W_S ++ 0U, // VFTINTRZH_L_S ++ 0U, // VFTINTRZL_L_S ++ 0U, // VFTINTRZ_LU_D ++ 0U, // VFTINTRZ_L_D ++ 0U, // VFTINTRZ_WU_S ++ 0U, // VFTINTRZ_W_D ++ 0U, // VFTINTRZ_W_S ++ 0U, // VFTINT_LU_D ++ 0U, // VFTINT_L_D ++ 0U, // VFTINT_WU_S ++ 0U, // VFTINT_W_D ++ 0U, // VFTINT_W_S ++ 0U, // VHADDW_DU_WU ++ 0U, // VHADDW_D_W ++ 0U, // VHADDW_HU_BU ++ 0U, // VHADDW_H_B ++ 0U, // VHADDW_QU_DU ++ 0U, // VHADDW_Q_D ++ 0U, // VHADDW_WU_HU ++ 0U, // VHADDW_W_H ++ 0U, // VHSUBW_DU_WU ++ 0U, // VHSUBW_D_W ++ 0U, // VHSUBW_HU_BU ++ 0U, // VHSUBW_H_B ++ 0U, // VHSUBW_QU_DU ++ 0U, // VHSUBW_Q_D ++ 0U, // VHSUBW_WU_HU ++ 0U, // VHSUBW_W_H ++ 0U, // VILVH_B ++ 0U, // VILVH_D ++ 0U, // VILVH_H ++ 0U, // VILVH_W ++ 0U, // VILVL_B ++ 0U, // VILVL_D ++ 0U, // VILVL_H ++ 0U, // VILVL_W ++ 0U, // VINSGR2VR_B ++ 0U, // VINSGR2VR_D ++ 0U, // VINSGR2VR_H ++ 0U, // VINSGR2VR_W ++ 0U, // VLD ++ 0U, // VLDI ++ 0U, // VLDI_B ++ 0U, // VLDI_D ++ 0U, // VLDI_H ++ 0U, // VLDI_W ++ 0U, // VLDREPL_B ++ 0U, // VLDREPL_D ++ 0U, // VLDREPL_H ++ 0U, // VLDREPL_W ++ 0U, // VLDX ++ 0U, // VLD_D ++ 0U, // VLD_H ++ 0U, // VLD_W ++ 0U, // VMADDWEV_D_W ++ 0U, // VMADDWEV_D_WU ++ 0U, // VMADDWEV_D_WU_W ++ 0U, // VMADDWEV_H_B ++ 0U, // VMADDWEV_H_BU ++ 0U, // VMADDWEV_H_BU_B ++ 0U, // VMADDWEV_Q_D ++ 0U, // VMADDWEV_Q_DU ++ 0U, // VMADDWEV_Q_DU_D ++ 0U, // VMADDWEV_W_H ++ 0U, // VMADDWEV_W_HU ++ 0U, // VMADDWEV_W_HU_H ++ 0U, // VMADDWOD_D_W ++ 0U, // VMADDWOD_D_WU ++ 0U, // VMADDWOD_D_WU_W ++ 0U, // VMADDWOD_H_B ++ 0U, // VMADDWOD_H_BU ++ 0U, // VMADDWOD_H_BU_B ++ 0U, // VMADDWOD_Q_D ++ 0U, // VMADDWOD_Q_DU ++ 0U, // VMADDWOD_Q_DU_D ++ 0U, // VMADDWOD_W_H ++ 0U, // VMADDWOD_W_HU ++ 0U, // VMADDWOD_W_HU_H ++ 0U, // VMADD_B ++ 0U, // VMADD_D ++ 0U, // VMADD_H ++ 0U, // VMADD_W ++ 0U, // VMAXI_B ++ 0U, // VMAXI_BU ++ 0U, // VMAXI_BU_N ++ 0U, // VMAXI_B_N ++ 0U, // VMAXI_D ++ 0U, // VMAXI_DU ++ 0U, // VMAXI_DU_N ++ 0U, // VMAXI_D_N ++ 0U, // VMAXI_H ++ 0U, // VMAXI_HU ++ 0U, // VMAXI_HU_N ++ 0U, // VMAXI_H_N ++ 0U, // VMAXI_W ++ 0U, // VMAXI_WU ++ 0U, // VMAXI_WU_N ++ 0U, // VMAXI_W_N ++ 0U, // VMAX_B ++ 0U, // VMAX_BU ++ 0U, // VMAX_D ++ 0U, // VMAX_DU ++ 0U, // VMAX_H ++ 0U, // VMAX_HU ++ 0U, // VMAX_W ++ 0U, // VMAX_WU ++ 0U, // VMINI_B ++ 0U, // VMINI_BU ++ 0U, // VMINI_B_N ++ 0U, // VMINI_D ++ 0U, // VMINI_DU ++ 0U, // VMINI_D_N ++ 0U, // VMINI_H ++ 0U, // VMINI_HU ++ 0U, // VMINI_H_N ++ 0U, // VMINI_W ++ 0U, // VMINI_WU ++ 0U, // VMINI_W_N ++ 0U, // VMIN_B ++ 0U, // VMIN_BU ++ 0U, // VMIN_D ++ 0U, // VMIN_DU ++ 0U, // VMIN_H ++ 0U, // VMIN_HU ++ 0U, // VMIN_W ++ 0U, // VMIN_WU ++ 0U, // VMOD_B ++ 0U, // VMOD_BU ++ 0U, // VMOD_D ++ 0U, // VMOD_DU ++ 0U, // VMOD_H ++ 0U, // VMOD_HU ++ 0U, // VMOD_W ++ 0U, // VMOD_WU ++ 0U, // VMSKGEZ_B ++ 0U, // VMSKLTZ_B ++ 0U, // VMSKLTZ_D ++ 0U, // VMSKLTZ_H ++ 0U, // VMSKLTZ_W ++ 0U, // VMSKNZ_B ++ 0U, // VMSUB_B ++ 0U, // VMSUB_D ++ 0U, // VMSUB_H ++ 0U, // VMSUB_W ++ 0U, // VMUH_B ++ 0U, // VMUH_BU ++ 0U, // VMUH_D ++ 0U, // VMUH_DU ++ 0U, // VMUH_H ++ 0U, // VMUH_HU ++ 0U, // VMUH_W ++ 0U, // VMUH_WU ++ 0U, // VMULWEV_D_W ++ 0U, // VMULWEV_D_WU ++ 0U, // VMULWEV_D_WU_W ++ 0U, // VMULWEV_H_B ++ 0U, // VMULWEV_H_BU ++ 0U, // VMULWEV_H_BU_B ++ 0U, // VMULWEV_Q_D ++ 0U, // VMULWEV_Q_DU ++ 0U, // VMULWEV_Q_DU_D ++ 0U, // VMULWEV_W_H ++ 0U, // VMULWEV_W_HU ++ 0U, // VMULWEV_W_HU_H ++ 0U, // VMULWOD_D_W ++ 0U, // VMULWOD_D_WU ++ 0U, // VMULWOD_D_WU_W ++ 0U, // VMULWOD_H_B ++ 0U, // VMULWOD_H_BU ++ 0U, // VMULWOD_H_BU_B ++ 0U, // VMULWOD_Q_D ++ 0U, // VMULWOD_Q_DU ++ 0U, // VMULWOD_Q_DU_D ++ 0U, // VMULWOD_W_H ++ 0U, // VMULWOD_W_HU ++ 0U, // VMULWOD_W_HU_H ++ 0U, // VMUL_B ++ 0U, // VMUL_D ++ 0U, // VMUL_H ++ 0U, // VMUL_W ++ 0U, // VNEG_B ++ 0U, // VNEG_D ++ 0U, // VNEG_H ++ 0U, // VNEG_W ++ 0U, // VNORI_B ++ 0U, // VNOR_V ++ 0U, // VORI_B ++ 0U, // VORN_V ++ 0U, // VOR_V ++ 0U, // VPACKEV_B ++ 0U, // VPACKEV_D ++ 0U, // VPACKEV_H ++ 0U, // VPACKEV_W ++ 0U, // VPACKOD_B ++ 0U, // VPACKOD_D ++ 0U, // VPACKOD_H ++ 0U, // VPACKOD_W ++ 0U, // VPCNT_B ++ 0U, // VPCNT_D ++ 0U, // VPCNT_H ++ 0U, // VPCNT_W ++ 0U, // VPERMI_W ++ 0U, // VPICKEV_B ++ 0U, // VPICKEV_D ++ 0U, // VPICKEV_H ++ 0U, // VPICKEV_W ++ 0U, // VPICKOD_B ++ 0U, // VPICKOD_D ++ 0U, // VPICKOD_H ++ 0U, // VPICKOD_W ++ 0U, // VPICKVE2GR_B ++ 0U, // VPICKVE2GR_BU ++ 0U, // VPICKVE2GR_D ++ 0U, // VPICKVE2GR_DU ++ 0U, // VPICKVE2GR_H ++ 0U, // VPICKVE2GR_HU ++ 0U, // VPICKVE2GR_W ++ 0U, // VPICKVE2GR_WU ++ 0U, // VREPLGR2VR_B ++ 0U, // VREPLGR2VR_D ++ 0U, // VREPLGR2VR_H ++ 0U, // VREPLGR2VR_W ++ 0U, // VREPLVEI_B ++ 0U, // VREPLVEI_D ++ 0U, // VREPLVEI_H ++ 0U, // VREPLVEI_W ++ 0U, // VREPLVE_B ++ 0U, // VREPLVE_D ++ 0U, // VREPLVE_H ++ 0U, // VREPLVE_W ++ 0U, // VROTRI_B ++ 0U, // VROTRI_D ++ 0U, // VROTRI_H ++ 0U, // VROTRI_W ++ 0U, // VROTR_B ++ 0U, // VROTR_D ++ 0U, // VROTR_H ++ 0U, // VROTR_W ++ 0U, // VSADD_B ++ 0U, // VSADD_BU ++ 0U, // VSADD_D ++ 0U, // VSADD_DU ++ 0U, // VSADD_H ++ 0U, // VSADD_HU ++ 0U, // VSADD_W ++ 0U, // VSADD_WU ++ 0U, // VSAT_B ++ 0U, // VSAT_BU ++ 0U, // VSAT_D ++ 0U, // VSAT_DU ++ 0U, // VSAT_H ++ 0U, // VSAT_HU ++ 0U, // VSAT_W ++ 0U, // VSAT_WU ++ 0U, // VSEQI_B ++ 0U, // VSEQI_B_N ++ 0U, // VSEQI_D ++ 0U, // VSEQI_D_N ++ 0U, // VSEQI_H ++ 0U, // VSEQI_H_N ++ 0U, // VSEQI_W ++ 0U, // VSEQI_W_N ++ 0U, // VSEQ_B ++ 0U, // VSEQ_D ++ 0U, // VSEQ_H ++ 0U, // VSEQ_W ++ 0U, // VSETALLNEZ_B ++ 0U, // VSETALLNEZ_D ++ 0U, // VSETALLNEZ_H ++ 0U, // VSETALLNEZ_W ++ 0U, // VSETANYEQZ_B ++ 0U, // VSETANYEQZ_D ++ 0U, // VSETANYEQZ_H ++ 0U, // VSETANYEQZ_W ++ 0U, // VSETEQZ_V ++ 0U, // VSETNEZ_V ++ 0U, // VSHUF4I_B ++ 0U, // VSHUF4I_D ++ 0U, // VSHUF4I_H ++ 0U, // VSHUF4I_W ++ 11U, // VSHUF_B ++ 0U, // VSHUF_D ++ 0U, // VSHUF_H ++ 0U, // VSHUF_W ++ 0U, // VSIGNCOV_B ++ 0U, // VSIGNCOV_D ++ 0U, // VSIGNCOV_H ++ 0U, // VSIGNCOV_W ++ 0U, // VSLEI_B ++ 0U, // VSLEI_BU ++ 0U, // VSLEI_BU_N ++ 0U, // VSLEI_B_N ++ 0U, // VSLEI_D ++ 0U, // VSLEI_DU ++ 0U, // VSLEI_DU_N ++ 0U, // VSLEI_D_N ++ 0U, // VSLEI_H ++ 0U, // VSLEI_HU ++ 0U, // VSLEI_HU_N ++ 0U, // VSLEI_H_N ++ 0U, // VSLEI_W ++ 0U, // VSLEI_WU ++ 0U, // VSLEI_WU_N ++ 0U, // VSLEI_W_N ++ 0U, // VSLE_B ++ 0U, // VSLE_BU ++ 0U, // VSLE_D ++ 0U, // VSLE_DU ++ 0U, // VSLE_H ++ 0U, // VSLE_HU ++ 0U, // VSLE_W ++ 0U, // VSLE_WU ++ 0U, // VSLLI_B ++ 0U, // VSLLI_D ++ 0U, // VSLLI_H ++ 0U, // VSLLI_W ++ 0U, // VSLLWIL_DU_WU ++ 0U, // VSLLWIL_D_W ++ 0U, // VSLLWIL_HU_BU ++ 0U, // VSLLWIL_H_B ++ 0U, // VSLLWIL_WU_HU ++ 0U, // VSLLWIL_W_H ++ 0U, // VSLL_B ++ 0U, // VSLL_D ++ 0U, // VSLL_H ++ 0U, // VSLL_W ++ 0U, // VSLTI_B ++ 0U, // VSLTI_BU ++ 0U, // VSLTI_BU_N ++ 0U, // VSLTI_B_N ++ 0U, // VSLTI_D ++ 0U, // VSLTI_DU ++ 0U, // VSLTI_DU_N ++ 0U, // VSLTI_D_N ++ 0U, // VSLTI_H ++ 0U, // VSLTI_HU ++ 0U, // VSLTI_HU_N ++ 0U, // VSLTI_H_N ++ 0U, // VSLTI_W ++ 0U, // VSLTI_WU ++ 0U, // VSLTI_WU_N ++ 0U, // VSLTI_W_N ++ 0U, // VSLT_B ++ 0U, // VSLT_BU ++ 0U, // VSLT_D ++ 0U, // VSLT_DU ++ 0U, // VSLT_H ++ 0U, // VSLT_HU ++ 0U, // VSLT_W ++ 0U, // VSLT_WU ++ 0U, // VSRAI_B ++ 0U, // VSRAI_B_N ++ 0U, // VSRAI_D ++ 0U, // VSRAI_D_N ++ 0U, // VSRAI_H ++ 0U, // VSRAI_H_N ++ 0U, // VSRAI_W ++ 0U, // VSRAI_W_N ++ 0U, // VSRANI_B_H ++ 0U, // VSRANI_D_Q ++ 0U, // VSRANI_H_W ++ 0U, // VSRANI_W_D ++ 0U, // VSRAN_B_H ++ 0U, // VSRAN_H_W ++ 0U, // VSRAN_W_D ++ 0U, // VSRARI_B ++ 0U, // VSRARI_D ++ 0U, // VSRARI_H ++ 0U, // VSRARI_W ++ 0U, // VSRARNI_B_H ++ 0U, // VSRARNI_D_Q ++ 0U, // VSRARNI_H_W ++ 0U, // VSRARNI_W_D ++ 0U, // VSRARN_B_H ++ 0U, // VSRARN_H_W ++ 0U, // VSRARN_W_D ++ 0U, // VSRAR_B ++ 0U, // VSRAR_D ++ 0U, // VSRAR_H ++ 0U, // VSRAR_W ++ 0U, // VSRA_B ++ 0U, // VSRA_D ++ 0U, // VSRA_H ++ 0U, // VSRA_W ++ 0U, // VSRLI_B ++ 0U, // VSRLI_D ++ 0U, // VSRLI_H ++ 0U, // VSRLI_W ++ 0U, // VSRLNI_B_H ++ 0U, // VSRLNI_D_Q ++ 0U, // VSRLNI_H_W ++ 0U, // VSRLNI_W_D ++ 0U, // VSRLN_B_H ++ 0U, // VSRLN_H_W ++ 0U, // VSRLN_W_D ++ 0U, // VSRLRI_B ++ 0U, // VSRLRI_D ++ 0U, // VSRLRI_H ++ 0U, // VSRLRI_W ++ 0U, // VSRLRNI_B_H ++ 0U, // VSRLRNI_D_Q ++ 0U, // VSRLRNI_H_W ++ 0U, // VSRLRNI_W_D ++ 0U, // VSRLRN_B_H ++ 0U, // VSRLRN_H_W ++ 0U, // VSRLRN_W_D ++ 0U, // VSRLR_B ++ 0U, // VSRLR_D ++ 0U, // VSRLR_H ++ 0U, // VSRLR_W ++ 0U, // VSRL_B ++ 0U, // VSRL_D ++ 0U, // VSRL_H ++ 0U, // VSRL_W ++ 0U, // VSSRANI_BU_H ++ 0U, // VSSRANI_B_H ++ 0U, // VSSRANI_DU_Q ++ 0U, // VSSRANI_D_Q ++ 0U, // VSSRANI_HU_W ++ 0U, // VSSRANI_H_W ++ 0U, // VSSRANI_WU_D ++ 0U, // VSSRANI_W_D ++ 0U, // VSSRAN_BU_H ++ 0U, // VSSRAN_B_H ++ 0U, // VSSRAN_HU_W ++ 0U, // VSSRAN_H_W ++ 0U, // VSSRAN_WU_D ++ 0U, // VSSRAN_W_D ++ 0U, // VSSRARNI_BU_H ++ 0U, // VSSRARNI_B_H ++ 0U, // VSSRARNI_DU_Q ++ 0U, // VSSRARNI_D_Q ++ 0U, // VSSRARNI_HU_W ++ 0U, // VSSRARNI_H_W ++ 0U, // VSSRARNI_WU_D ++ 0U, // VSSRARNI_W_D ++ 0U, // VSSRARN_BU_H ++ 0U, // VSSRARN_B_H ++ 0U, // VSSRARN_HU_W ++ 0U, // VSSRARN_H_W ++ 0U, // VSSRARN_WU_D ++ 0U, // VSSRARN_W_D ++ 0U, // VSSRLNI_BU_H ++ 0U, // VSSRLNI_B_H ++ 0U, // VSSRLNI_DU_Q ++ 0U, // VSSRLNI_D_Q ++ 0U, // VSSRLNI_HU_W ++ 0U, // VSSRLNI_H_W ++ 0U, // VSSRLNI_WU_D ++ 0U, // VSSRLNI_W_D ++ 0U, // VSSRLN_BU_H ++ 0U, // VSSRLN_B_H ++ 0U, // VSSRLN_HU_W ++ 0U, // VSSRLN_H_W ++ 0U, // VSSRLN_WU_D ++ 0U, // VSSRLN_W_D ++ 0U, // VSSRLRNI_BU_H ++ 0U, // VSSRLRNI_B_H ++ 0U, // VSSRLRNI_DU_Q ++ 0U, // VSSRLRNI_D_Q ++ 0U, // VSSRLRNI_HU_W ++ 0U, // VSSRLRNI_H_W ++ 0U, // VSSRLRNI_WU_D ++ 0U, // VSSRLRNI_W_D ++ 0U, // VSSRLRN_BU_H ++ 0U, // VSSRLRN_B_H ++ 0U, // VSSRLRN_HU_W ++ 0U, // VSSRLRN_H_W ++ 0U, // VSSRLRN_WU_D ++ 0U, // VSSRLRN_W_D ++ 0U, // VSSUB_B ++ 0U, // VSSUB_BU ++ 0U, // VSSUB_D ++ 0U, // VSSUB_DU ++ 0U, // VSSUB_H ++ 0U, // VSSUB_HU ++ 0U, // VSSUB_W ++ 0U, // VSSUB_WU ++ 0U, // VST ++ 13U, // VSTELM_B ++ 15U, // VSTELM_D ++ 7U, // VSTELM_H ++ 9U, // VSTELM_W ++ 0U, // VSTX ++ 0U, // VST_D ++ 0U, // VST_H ++ 0U, // VST_W ++ 0U, // VSUBI_BU ++ 0U, // VSUBI_DU ++ 0U, // VSUBI_HU ++ 0U, // VSUBI_WU ++ 0U, // VSUBWEV_D_W ++ 0U, // VSUBWEV_D_WU ++ 0U, // VSUBWEV_H_B ++ 0U, // VSUBWEV_H_BU ++ 0U, // VSUBWEV_Q_D ++ 0U, // VSUBWEV_Q_DU ++ 0U, // VSUBWEV_W_H ++ 0U, // VSUBWEV_W_HU ++ 0U, // VSUBWOD_D_W ++ 0U, // VSUBWOD_D_WU ++ 0U, // VSUBWOD_H_B ++ 0U, // VSUBWOD_H_BU ++ 0U, // VSUBWOD_Q_D ++ 0U, // VSUBWOD_Q_DU ++ 0U, // VSUBWOD_W_H ++ 0U, // VSUBWOD_W_HU ++ 0U, // VSUB_B ++ 0U, // VSUB_D ++ 0U, // VSUB_H ++ 0U, // VSUB_Q ++ 0U, // VSUB_W ++ 0U, // VXORI_B ++ 0U, // VXORI_B_N ++ 0U, // VXOR_V ++ 0U, // XOR ++ 0U, // XOR32 ++ 0U, // XORI ++ 0U, // XORI32 ++ 0U, // XVABSD_B ++ 0U, // XVABSD_BU ++ 0U, // XVABSD_D ++ 0U, // XVABSD_DU ++ 0U, // XVABSD_H ++ 0U, // XVABSD_HU ++ 0U, // XVABSD_W ++ 0U, // XVABSD_WU ++ 0U, // XVADDA_B ++ 0U, // XVADDA_D ++ 0U, // XVADDA_H ++ 0U, // XVADDA_W ++ 0U, // XVADDI_BU ++ 0U, // XVADDI_BU_N ++ 0U, // XVADDI_DU ++ 0U, // XVADDI_DU_N ++ 0U, // XVADDI_HU ++ 0U, // XVADDI_HU_N ++ 0U, // XVADDI_WU ++ 0U, // XVADDI_WU_N ++ 0U, // XVADDWEV_D_W ++ 0U, // XVADDWEV_D_WU ++ 0U, // XVADDWEV_D_WU_W ++ 0U, // XVADDWEV_H_B ++ 0U, // XVADDWEV_H_BU ++ 0U, // XVADDWEV_H_BU_B ++ 0U, // XVADDWEV_Q_D ++ 0U, // XVADDWEV_Q_DU ++ 0U, // XVADDWEV_Q_DU_D ++ 0U, // XVADDWEV_W_H ++ 0U, // XVADDWEV_W_HU ++ 0U, // XVADDWEV_W_HU_H ++ 0U, // XVADDWOD_D_W ++ 0U, // XVADDWOD_D_WU ++ 0U, // XVADDWOD_D_WU_W ++ 0U, // XVADDWOD_H_B ++ 0U, // XVADDWOD_H_BU ++ 0U, // XVADDWOD_H_BU_B ++ 0U, // XVADDWOD_Q_D ++ 0U, // XVADDWOD_Q_DU ++ 0U, // XVADDWOD_Q_DU_D ++ 0U, // XVADDWOD_W_H ++ 0U, // XVADDWOD_W_HU ++ 0U, // XVADDWOD_W_HU_H ++ 0U, // XVADD_B ++ 0U, // XVADD_D ++ 0U, // XVADD_H ++ 0U, // XVADD_Q ++ 0U, // XVADD_W ++ 0U, // XVANDI_B ++ 0U, // XVANDI_B_N ++ 0U, // XVANDN_V ++ 0U, // XVAND_V ++ 0U, // XVAVGR_B ++ 0U, // XVAVGR_BU ++ 0U, // XVAVGR_D ++ 0U, // XVAVGR_DU ++ 0U, // XVAVGR_H ++ 0U, // XVAVGR_HU ++ 0U, // XVAVGR_W ++ 0U, // XVAVGR_WU ++ 0U, // XVAVG_B ++ 0U, // XVAVG_BU ++ 0U, // XVAVG_D ++ 0U, // XVAVG_DU ++ 0U, // XVAVG_H ++ 0U, // XVAVG_HU ++ 0U, // XVAVG_W ++ 0U, // XVAVG_WU ++ 0U, // XVBITCLRI_B ++ 0U, // XVBITCLRI_D ++ 0U, // XVBITCLRI_H ++ 0U, // XVBITCLRI_W ++ 0U, // XVBITCLR_B ++ 0U, // XVBITCLR_D ++ 0U, // XVBITCLR_H ++ 0U, // XVBITCLR_W ++ 0U, // XVBITREVI_B ++ 0U, // XVBITREVI_D ++ 0U, // XVBITREVI_H ++ 0U, // XVBITREVI_W ++ 0U, // XVBITREV_B ++ 0U, // XVBITREV_D ++ 0U, // XVBITREV_H ++ 0U, // XVBITREV_W ++ 0U, // XVBITSELI_B ++ 0U, // XVBITSELI_B_N ++ 11U, // XVBITSEL_V ++ 0U, // XVBITSETI_B ++ 0U, // XVBITSETI_D ++ 0U, // XVBITSETI_H ++ 0U, // XVBITSETI_W ++ 0U, // XVBITSET_B ++ 0U, // XVBITSET_D ++ 0U, // XVBITSET_H ++ 0U, // XVBITSET_W ++ 0U, // XVBSLL_V ++ 0U, // XVBSRL_V ++ 0U, // XVCLO_B ++ 0U, // XVCLO_D ++ 0U, // XVCLO_H ++ 0U, // XVCLO_W ++ 0U, // XVCLZ_B ++ 0U, // XVCLZ_D ++ 0U, // XVCLZ_H ++ 0U, // XVCLZ_W ++ 0U, // XVDIV_B ++ 0U, // XVDIV_BU ++ 0U, // XVDIV_D ++ 0U, // XVDIV_DU ++ 0U, // XVDIV_H ++ 0U, // XVDIV_HU ++ 0U, // XVDIV_W ++ 0U, // XVDIV_WU ++ 0U, // XVEXTH_DU_WU ++ 0U, // XVEXTH_D_W ++ 0U, // XVEXTH_HU_BU ++ 0U, // XVEXTH_H_B ++ 0U, // XVEXTH_QU_DU ++ 0U, // XVEXTH_Q_D ++ 0U, // XVEXTH_WU_HU ++ 0U, // XVEXTH_W_H ++ 0U, // XVEXTL_QU_DU ++ 0U, // XVEXTL_Q_D ++ 0U, // XVEXTRINS_B ++ 0U, // XVEXTRINS_D ++ 0U, // XVEXTRINS_H ++ 0U, // XVEXTRINS_W ++ 0U, // XVFADD_D ++ 0U, // XVFADD_S ++ 0U, // XVFCLASS_D ++ 0U, // XVFCLASS_S ++ 0U, // XVFCMP_CAF_D ++ 0U, // XVFCMP_CAF_S ++ 0U, // XVFCMP_CEQ_D ++ 0U, // XVFCMP_CEQ_S ++ 0U, // XVFCMP_CLE_D ++ 0U, // XVFCMP_CLE_S ++ 0U, // XVFCMP_CLT_D ++ 0U, // XVFCMP_CLT_S ++ 0U, // XVFCMP_CNE_D ++ 0U, // XVFCMP_CNE_S ++ 0U, // XVFCMP_COR_D ++ 0U, // XVFCMP_COR_S ++ 0U, // XVFCMP_CUEQ_D ++ 0U, // XVFCMP_CUEQ_S ++ 0U, // XVFCMP_CULE_D ++ 0U, // XVFCMP_CULE_S ++ 0U, // XVFCMP_CULT_D ++ 0U, // XVFCMP_CULT_S ++ 0U, // XVFCMP_CUNE_D ++ 0U, // XVFCMP_CUNE_S ++ 0U, // XVFCMP_CUN_D ++ 0U, // XVFCMP_CUN_S ++ 0U, // XVFCMP_SAF_D ++ 0U, // XVFCMP_SAF_S ++ 0U, // XVFCMP_SEQ_D ++ 0U, // XVFCMP_SEQ_S ++ 0U, // XVFCMP_SLE_D ++ 0U, // XVFCMP_SLE_S ++ 0U, // XVFCMP_SLT_D ++ 0U, // XVFCMP_SLT_S ++ 0U, // XVFCMP_SNE_D ++ 0U, // XVFCMP_SNE_S ++ 0U, // XVFCMP_SOR_D ++ 0U, // XVFCMP_SOR_S ++ 0U, // XVFCMP_SUEQ_D ++ 0U, // XVFCMP_SUEQ_S ++ 0U, // XVFCMP_SULE_D ++ 0U, // XVFCMP_SULE_S ++ 0U, // XVFCMP_SULT_D ++ 0U, // XVFCMP_SULT_S ++ 0U, // XVFCMP_SUNE_D ++ 0U, // XVFCMP_SUNE_S ++ 0U, // XVFCMP_SUN_D ++ 0U, // XVFCMP_SUN_S ++ 0U, // XVFCVTH_D_S ++ 0U, // XVFCVTH_S_H ++ 0U, // XVFCVTL_D_S ++ 0U, // XVFCVTL_S_H ++ 0U, // XVFCVT_H_S ++ 0U, // XVFCVT_S_D ++ 0U, // XVFDIV_D ++ 0U, // XVFDIV_S ++ 0U, // XVFFINTH_D_W ++ 0U, // XVFFINTL_D_W ++ 0U, // XVFFINT_D_L ++ 0U, // XVFFINT_D_LU ++ 0U, // XVFFINT_S_L ++ 0U, // XVFFINT_S_W ++ 0U, // XVFFINT_S_WU ++ 0U, // XVFLOGB_D ++ 0U, // XVFLOGB_S ++ 11U, // XVFMADD_D ++ 11U, // XVFMADD_S ++ 0U, // XVFMAXA_D ++ 0U, // XVFMAXA_S ++ 0U, // XVFMAX_D ++ 0U, // XVFMAX_S ++ 0U, // XVFMINA_D ++ 0U, // XVFMINA_S ++ 0U, // XVFMIN_D ++ 0U, // XVFMIN_S ++ 11U, // XVFMSUB_D ++ 11U, // XVFMSUB_S ++ 0U, // XVFMUL_D ++ 0U, // XVFMUL_S ++ 11U, // XVFNMADD_D ++ 11U, // XVFNMADD_S ++ 11U, // XVFNMSUB_D ++ 11U, // XVFNMSUB_S ++ 0U, // XVFRECIP_D ++ 0U, // XVFRECIP_S ++ 0U, // XVFRINTRM_D ++ 0U, // XVFRINTRM_S ++ 0U, // XVFRINTRNE_D ++ 0U, // XVFRINTRNE_S ++ 0U, // XVFRINTRP_D ++ 0U, // XVFRINTRP_S ++ 0U, // XVFRINTRZ_D ++ 0U, // XVFRINTRZ_S ++ 0U, // XVFRINT_D ++ 0U, // XVFRINT_S ++ 0U, // XVFRSQRT_D ++ 0U, // XVFRSQRT_S ++ 0U, // XVFRSTPI_B ++ 0U, // XVFRSTPI_H ++ 0U, // XVFRSTP_B ++ 0U, // XVFRSTP_H ++ 0U, // XVFSQRT_D ++ 0U, // XVFSQRT_S ++ 0U, // XVFSUB_D ++ 0U, // XVFSUB_S ++ 0U, // XVFTINTH_L_S ++ 0U, // XVFTINTL_L_S ++ 0U, // XVFTINTRMH_L_S ++ 0U, // XVFTINTRML_L_S ++ 0U, // XVFTINTRM_L_D ++ 0U, // XVFTINTRM_W_D ++ 0U, // XVFTINTRM_W_S ++ 0U, // XVFTINTRNEH_L_S ++ 0U, // XVFTINTRNEL_L_S ++ 0U, // XVFTINTRNE_L_D ++ 0U, // XVFTINTRNE_W_D ++ 0U, // XVFTINTRNE_W_S ++ 0U, // XVFTINTRPH_L_S ++ 0U, // XVFTINTRPL_L_S ++ 0U, // XVFTINTRP_L_D ++ 0U, // XVFTINTRP_W_D ++ 0U, // XVFTINTRP_W_S ++ 0U, // XVFTINTRZH_L_S ++ 0U, // XVFTINTRZL_L_S ++ 0U, // XVFTINTRZ_LU_D ++ 0U, // XVFTINTRZ_L_D ++ 0U, // XVFTINTRZ_WU_S ++ 0U, // XVFTINTRZ_W_D ++ 0U, // XVFTINTRZ_W_S ++ 0U, // XVFTINT_LU_D ++ 0U, // XVFTINT_L_D ++ 0U, // XVFTINT_WU_S ++ 0U, // XVFTINT_W_D ++ 0U, // XVFTINT_W_S ++ 0U, // XVHADDW_DU_WU ++ 0U, // XVHADDW_D_W ++ 0U, // XVHADDW_HU_BU ++ 0U, // XVHADDW_H_B ++ 0U, // XVHADDW_QU_DU ++ 0U, // XVHADDW_Q_D ++ 0U, // XVHADDW_WU_HU ++ 0U, // XVHADDW_W_H ++ 0U, // XVHSELI_D ++ 0U, // XVHSUBW_DU_WU ++ 0U, // XVHSUBW_D_W ++ 0U, // XVHSUBW_HU_BU ++ 0U, // XVHSUBW_H_B ++ 0U, // XVHSUBW_QU_DU ++ 0U, // XVHSUBW_Q_D ++ 0U, // XVHSUBW_WU_HU ++ 0U, // XVHSUBW_W_H ++ 0U, // XVILVH_B ++ 0U, // XVILVH_D ++ 0U, // XVILVH_H ++ 0U, // XVILVH_W ++ 0U, // XVILVL_B ++ 0U, // XVILVL_D ++ 0U, // XVILVL_H ++ 0U, // XVILVL_W ++ 0U, // XVINSGR2VR_D ++ 0U, // XVINSGR2VR_W ++ 0U, // XVINSVE0_D ++ 0U, // XVINSVE0_W ++ 0U, // XVLD ++ 0U, // XVLDI ++ 0U, // XVLDI_B ++ 0U, // XVLDI_D ++ 0U, // XVLDI_H ++ 0U, // XVLDI_W ++ 0U, // XVLDREPL_B ++ 0U, // XVLDREPL_D ++ 0U, // XVLDREPL_H ++ 0U, // XVLDREPL_W ++ 0U, // XVLDX ++ 0U, // XVLD_D ++ 0U, // XVLD_H ++ 0U, // XVLD_W ++ 0U, // XVMADDWEV_D_W ++ 0U, // XVMADDWEV_D_WU ++ 0U, // XVMADDWEV_D_WU_W ++ 0U, // XVMADDWEV_H_B ++ 0U, // XVMADDWEV_H_BU ++ 0U, // XVMADDWEV_H_BU_B ++ 0U, // XVMADDWEV_Q_D ++ 0U, // XVMADDWEV_Q_DU ++ 0U, // XVMADDWEV_Q_DU_D ++ 0U, // XVMADDWEV_W_H ++ 0U, // XVMADDWEV_W_HU ++ 0U, // XVMADDWEV_W_HU_H ++ 0U, // XVMADDWOD_D_W ++ 0U, // XVMADDWOD_D_WU ++ 0U, // XVMADDWOD_D_WU_W ++ 0U, // XVMADDWOD_H_B ++ 0U, // XVMADDWOD_H_BU ++ 0U, // XVMADDWOD_H_BU_B ++ 0U, // XVMADDWOD_Q_D ++ 0U, // XVMADDWOD_Q_DU ++ 0U, // XVMADDWOD_Q_DU_D ++ 0U, // XVMADDWOD_W_H ++ 0U, // XVMADDWOD_W_HU ++ 0U, // XVMADDWOD_W_HU_H ++ 0U, // XVMADD_B ++ 0U, // XVMADD_D ++ 0U, // XVMADD_H ++ 0U, // XVMADD_W ++ 0U, // XVMAXI_B ++ 0U, // XVMAXI_BU ++ 0U, // XVMAXI_BU_N ++ 0U, // XVMAXI_B_N ++ 0U, // XVMAXI_D ++ 0U, // XVMAXI_DU ++ 0U, // XVMAXI_DU_N ++ 0U, // XVMAXI_D_N ++ 0U, // XVMAXI_H ++ 0U, // XVMAXI_HU ++ 0U, // XVMAXI_HU_N ++ 0U, // XVMAXI_H_N ++ 0U, // XVMAXI_W ++ 0U, // XVMAXI_WU ++ 0U, // XVMAXI_WU_N ++ 0U, // XVMAXI_W_N ++ 0U, // XVMAX_B ++ 0U, // XVMAX_BU ++ 0U, // XVMAX_D ++ 0U, // XVMAX_DU ++ 0U, // XVMAX_H ++ 0U, // XVMAX_HU ++ 0U, // XVMAX_W ++ 0U, // XVMAX_WU ++ 0U, // XVMINI_B ++ 0U, // XVMINI_BU ++ 0U, // XVMINI_BU_N ++ 0U, // XVMINI_B_N ++ 0U, // XVMINI_D ++ 0U, // XVMINI_DU ++ 0U, // XVMINI_DU_N ++ 0U, // XVMINI_D_N ++ 0U, // XVMINI_H ++ 0U, // XVMINI_HU ++ 0U, // XVMINI_HU_N ++ 0U, // XVMINI_H_N ++ 0U, // XVMINI_W ++ 0U, // XVMINI_WU ++ 0U, // XVMINI_WU_N ++ 0U, // XVMINI_W_N ++ 0U, // XVMIN_B ++ 0U, // XVMIN_BU ++ 0U, // XVMIN_D ++ 0U, // XVMIN_DU ++ 0U, // XVMIN_H ++ 0U, // XVMIN_HU ++ 0U, // XVMIN_W ++ 0U, // XVMIN_WU ++ 0U, // XVMOD_B ++ 0U, // XVMOD_BU ++ 0U, // XVMOD_D ++ 0U, // XVMOD_DU ++ 0U, // XVMOD_H ++ 0U, // XVMOD_HU ++ 0U, // XVMOD_W ++ 0U, // XVMOD_WU ++ 0U, // XVMSKGEZ_B ++ 0U, // XVMSKLTZ_B ++ 0U, // XVMSKLTZ_D ++ 0U, // XVMSKLTZ_H ++ 0U, // XVMSKLTZ_W ++ 0U, // XVMSKNZ_B ++ 0U, // XVMSUB_B ++ 0U, // XVMSUB_D ++ 0U, // XVMSUB_H ++ 0U, // XVMSUB_W ++ 0U, // XVMUH_B ++ 0U, // XVMUH_BU ++ 0U, // XVMUH_D ++ 0U, // XVMUH_DU ++ 0U, // XVMUH_H ++ 0U, // XVMUH_HU ++ 0U, // XVMUH_W ++ 0U, // XVMUH_WU ++ 0U, // XVMULWEV_D_W ++ 0U, // XVMULWEV_D_WU ++ 0U, // XVMULWEV_D_WU_W ++ 0U, // XVMULWEV_H_B ++ 0U, // XVMULWEV_H_BU ++ 0U, // XVMULWEV_H_BU_B ++ 0U, // XVMULWEV_Q_D ++ 0U, // XVMULWEV_Q_DU ++ 0U, // XVMULWEV_Q_DU_D ++ 0U, // XVMULWEV_W_H ++ 0U, // XVMULWEV_W_HU ++ 0U, // XVMULWEV_W_HU_H ++ 0U, // XVMULWOD_D_W ++ 0U, // XVMULWOD_D_WU ++ 0U, // XVMULWOD_D_WU_W ++ 0U, // XVMULWOD_H_B ++ 0U, // XVMULWOD_H_BU ++ 0U, // XVMULWOD_H_BU_B ++ 0U, // XVMULWOD_Q_D ++ 0U, // XVMULWOD_Q_DU ++ 0U, // XVMULWOD_Q_DU_D ++ 0U, // XVMULWOD_W_H ++ 0U, // XVMULWOD_W_HU ++ 0U, // XVMULWOD_W_HU_H ++ 0U, // XVMUL_B ++ 0U, // XVMUL_D ++ 0U, // XVMUL_H ++ 0U, // XVMUL_W ++ 0U, // XVNEG_B ++ 0U, // XVNEG_D ++ 0U, // XVNEG_H ++ 0U, // XVNEG_W ++ 0U, // XVNORI_B ++ 0U, // XVNOR_V ++ 0U, // XVORI_B ++ 0U, // XVORN_V ++ 0U, // XVOR_V ++ 0U, // XVPACKEV_B ++ 0U, // XVPACKEV_D ++ 0U, // XVPACKEV_H ++ 0U, // XVPACKEV_W ++ 0U, // XVPACKOD_B ++ 0U, // XVPACKOD_D ++ 0U, // XVPACKOD_H ++ 0U, // XVPACKOD_W ++ 0U, // XVPCNT_B ++ 0U, // XVPCNT_D ++ 0U, // XVPCNT_H ++ 0U, // XVPCNT_W ++ 0U, // XVPERMI_D ++ 0U, // XVPERMI_Q ++ 0U, // XVPERMI_QD ++ 0U, // XVPERMI_QH ++ 0U, // XVPERMI_QW ++ 0U, // XVPERMI_W ++ 0U, // XVPERM_W ++ 0U, // XVPICKEV_B ++ 0U, // XVPICKEV_D ++ 0U, // XVPICKEV_H ++ 0U, // XVPICKEV_W ++ 0U, // XVPICKOD_B ++ 0U, // XVPICKOD_D ++ 0U, // XVPICKOD_H ++ 0U, // XVPICKOD_W ++ 0U, // XVPICKVE2GR_D ++ 0U, // XVPICKVE2GR_DU ++ 0U, // XVPICKVE2GR_W ++ 0U, // XVPICKVE2GR_WU ++ 0U, // XVPICKVE_D ++ 0U, // XVPICKVE_W ++ 0U, // XVREPL128VEI_B ++ 0U, // XVREPL128VEI_D ++ 0U, // XVREPL128VEI_H ++ 0U, // XVREPL128VEI_W ++ 0U, // XVREPLGR2VR_B ++ 0U, // XVREPLGR2VR_D ++ 0U, // XVREPLGR2VR_H ++ 0U, // XVREPLGR2VR_W ++ 0U, // XVREPLVE0_B ++ 0U, // XVREPLVE0_D ++ 0U, // XVREPLVE0_H ++ 0U, // XVREPLVE0_Q ++ 0U, // XVREPLVE0_W ++ 0U, // XVREPLVE_B ++ 0U, // XVREPLVE_D ++ 0U, // XVREPLVE_H ++ 0U, // XVREPLVE_W ++ 0U, // XVREPLVE_W_N ++ 0U, // XVROTRI_B ++ 0U, // XVROTRI_D ++ 0U, // XVROTRI_H ++ 0U, // XVROTRI_W ++ 0U, // XVROTR_B ++ 0U, // XVROTR_D ++ 0U, // XVROTR_H ++ 0U, // XVROTR_W ++ 0U, // XVSADD_B ++ 0U, // XVSADD_BU ++ 0U, // XVSADD_D ++ 0U, // XVSADD_DU ++ 0U, // XVSADD_H ++ 0U, // XVSADD_HU ++ 0U, // XVSADD_W ++ 0U, // XVSADD_WU ++ 0U, // XVSAT_B ++ 0U, // XVSAT_BU ++ 0U, // XVSAT_D ++ 0U, // XVSAT_DU ++ 0U, // XVSAT_H ++ 0U, // XVSAT_HU ++ 0U, // XVSAT_W ++ 0U, // XVSAT_WU ++ 0U, // XVSEQI_B ++ 0U, // XVSEQI_B_N ++ 0U, // XVSEQI_D ++ 0U, // XVSEQI_D_N ++ 0U, // XVSEQI_H ++ 0U, // XVSEQI_H_N ++ 0U, // XVSEQI_W ++ 0U, // XVSEQI_W_N ++ 0U, // XVSEQ_B ++ 0U, // XVSEQ_D ++ 0U, // XVSEQ_H ++ 0U, // XVSEQ_W ++ 0U, // XVSETALLNEZ_B ++ 0U, // XVSETALLNEZ_D ++ 0U, // XVSETALLNEZ_H ++ 0U, // XVSETALLNEZ_W ++ 0U, // XVSETANYEQZ_B ++ 0U, // XVSETANYEQZ_D ++ 0U, // XVSETANYEQZ_H ++ 0U, // XVSETANYEQZ_W ++ 0U, // XVSETEQZ_V ++ 0U, // XVSETNEZ_V ++ 0U, // XVSHUF4I_B ++ 0U, // XVSHUF4I_D ++ 0U, // XVSHUF4I_H ++ 0U, // XVSHUF4I_W ++ 11U, // XVSHUF_B ++ 0U, // XVSHUF_D ++ 0U, // XVSHUF_H ++ 0U, // XVSHUF_W ++ 0U, // XVSIGNCOV_B ++ 0U, // XVSIGNCOV_D ++ 0U, // XVSIGNCOV_H ++ 0U, // XVSIGNCOV_W ++ 0U, // XVSLEI_B ++ 0U, // XVSLEI_BU ++ 0U, // XVSLEI_BU_N ++ 0U, // XVSLEI_B_N ++ 0U, // XVSLEI_D ++ 0U, // XVSLEI_DU ++ 0U, // XVSLEI_DU_N ++ 0U, // XVSLEI_D_N ++ 0U, // XVSLEI_H ++ 0U, // XVSLEI_HU ++ 0U, // XVSLEI_HU_N ++ 0U, // XVSLEI_H_N ++ 0U, // XVSLEI_W ++ 0U, // XVSLEI_WU ++ 0U, // XVSLEI_WU_N ++ 0U, // XVSLEI_W_N ++ 0U, // XVSLE_B ++ 0U, // XVSLE_BU ++ 0U, // XVSLE_D ++ 0U, // XVSLE_DU ++ 0U, // XVSLE_H ++ 0U, // XVSLE_HU ++ 0U, // XVSLE_W ++ 0U, // XVSLE_WU ++ 0U, // XVSLLI_B ++ 0U, // XVSLLI_B_N ++ 0U, // XVSLLI_D ++ 0U, // XVSLLI_D_N ++ 0U, // XVSLLI_H ++ 0U, // XVSLLI_H_N ++ 0U, // XVSLLI_W ++ 0U, // XVSLLI_W_N ++ 0U, // XVSLLWIL_DU_WU ++ 0U, // XVSLLWIL_D_W ++ 0U, // XVSLLWIL_HU_BU ++ 0U, // XVSLLWIL_H_B ++ 0U, // XVSLLWIL_WU_HU ++ 0U, // XVSLLWIL_W_H ++ 0U, // XVSLL_B ++ 0U, // XVSLL_D ++ 0U, // XVSLL_H ++ 0U, // XVSLL_W ++ 0U, // XVSLTI_B ++ 0U, // XVSLTI_BU ++ 0U, // XVSLTI_BU_N ++ 0U, // XVSLTI_B_N ++ 0U, // XVSLTI_D ++ 0U, // XVSLTI_DU ++ 0U, // XVSLTI_DU_N ++ 0U, // XVSLTI_D_N ++ 0U, // XVSLTI_H ++ 0U, // XVSLTI_HU ++ 0U, // XVSLTI_HU_N ++ 0U, // XVSLTI_H_N ++ 0U, // XVSLTI_W ++ 0U, // XVSLTI_WU ++ 0U, // XVSLTI_WU_N ++ 0U, // XVSLTI_W_N ++ 0U, // XVSLT_B ++ 0U, // XVSLT_BU ++ 0U, // XVSLT_D ++ 0U, // XVSLT_DU ++ 0U, // XVSLT_H ++ 0U, // XVSLT_HU ++ 0U, // XVSLT_W ++ 0U, // XVSLT_WU ++ 0U, // XVSRAI_B ++ 0U, // XVSRAI_B_N ++ 0U, // XVSRAI_D ++ 0U, // XVSRAI_D_N ++ 0U, // XVSRAI_H ++ 0U, // XVSRAI_H_N ++ 0U, // XVSRAI_W ++ 0U, // XVSRAI_W_N ++ 0U, // XVSRANI_B_H ++ 0U, // XVSRANI_D_Q ++ 0U, // XVSRANI_H_W ++ 0U, // XVSRANI_W_D ++ 0U, // XVSRAN_B_H ++ 0U, // XVSRAN_H_W ++ 0U, // XVSRAN_W_D ++ 0U, // XVSRARI_B ++ 0U, // XVSRARI_D ++ 0U, // XVSRARI_H ++ 0U, // XVSRARI_W ++ 0U, // XVSRARNI_B_H ++ 0U, // XVSRARNI_D_Q ++ 0U, // XVSRARNI_H_W ++ 0U, // XVSRARNI_W_D ++ 0U, // XVSRARN_B_H ++ 0U, // XVSRARN_H_W ++ 0U, // XVSRARN_W_D ++ 0U, // XVSRAR_B ++ 0U, // XVSRAR_D ++ 0U, // XVSRAR_H ++ 0U, // XVSRAR_W ++ 0U, // XVSRA_B ++ 0U, // XVSRA_D ++ 0U, // XVSRA_H ++ 0U, // XVSRA_W ++ 0U, // XVSRLI_B ++ 0U, // XVSRLI_B_N ++ 0U, // XVSRLI_D ++ 0U, // XVSRLI_D_N ++ 0U, // XVSRLI_H ++ 0U, // XVSRLI_H_N ++ 0U, // XVSRLI_W ++ 0U, // XVSRLI_W_N ++ 0U, // XVSRLNI_B_H ++ 0U, // XVSRLNI_D_Q ++ 0U, // XVSRLNI_H_W ++ 0U, // XVSRLNI_W_D ++ 0U, // XVSRLN_B_H ++ 0U, // XVSRLN_H_W ++ 0U, // XVSRLN_W_D ++ 0U, // XVSRLRI_B ++ 0U, // XVSRLRI_D ++ 0U, // XVSRLRI_H ++ 0U, // XVSRLRI_W ++ 0U, // XVSRLRNI_B_H ++ 0U, // XVSRLRNI_D_Q ++ 0U, // XVSRLRNI_H_W ++ 0U, // XVSRLRNI_W_D ++ 0U, // XVSRLRN_B_H ++ 0U, // XVSRLRN_H_W ++ 0U, // XVSRLRN_W_D ++ 0U, // XVSRLR_B ++ 0U, // XVSRLR_D ++ 0U, // XVSRLR_H ++ 0U, // XVSRLR_W ++ 0U, // XVSRL_B ++ 0U, // XVSRL_D ++ 0U, // XVSRL_H ++ 0U, // XVSRL_W ++ 0U, // XVSSRANI_BU_H ++ 0U, // XVSSRANI_B_H ++ 0U, // XVSSRANI_DU_Q ++ 0U, // XVSSRANI_D_Q ++ 0U, // XVSSRANI_HU_W ++ 0U, // XVSSRANI_H_W ++ 0U, // XVSSRANI_WU_D ++ 0U, // XVSSRANI_W_D ++ 0U, // XVSSRAN_BU_H ++ 0U, // XVSSRAN_B_H ++ 0U, // XVSSRAN_HU_W ++ 0U, // XVSSRAN_H_W ++ 0U, // XVSSRAN_WU_D ++ 0U, // XVSSRAN_W_D ++ 0U, // XVSSRARNI_BU_H ++ 0U, // XVSSRARNI_B_H ++ 0U, // XVSSRARNI_DU_Q ++ 0U, // XVSSRARNI_D_Q ++ 0U, // XVSSRARNI_HU_W ++ 0U, // XVSSRARNI_H_W ++ 0U, // XVSSRARNI_WU_D ++ 0U, // XVSSRARNI_W_D ++ 0U, // XVSSRARN_BU_H ++ 0U, // XVSSRARN_B_H ++ 0U, // XVSSRARN_HU_W ++ 0U, // XVSSRARN_H_W ++ 0U, // XVSSRARN_WU_D ++ 0U, // XVSSRARN_W_D ++ 0U, // XVSSRLNI_BU_H ++ 0U, // XVSSRLNI_B_H ++ 0U, // XVSSRLNI_DU_Q ++ 0U, // XVSSRLNI_D_Q ++ 0U, // XVSSRLNI_HU_W ++ 0U, // XVSSRLNI_H_W ++ 0U, // XVSSRLNI_WU_D ++ 0U, // XVSSRLNI_W_D ++ 0U, // XVSSRLN_BU_H ++ 0U, // XVSSRLN_B_H ++ 0U, // XVSSRLN_HU_W ++ 0U, // XVSSRLN_H_W ++ 0U, // XVSSRLN_WU_D ++ 0U, // XVSSRLN_W_D ++ 0U, // XVSSRLRNI_BU_H ++ 0U, // XVSSRLRNI_B_H ++ 0U, // XVSSRLRNI_DU_Q ++ 0U, // XVSSRLRNI_D_Q ++ 0U, // XVSSRLRNI_HU_W ++ 0U, // XVSSRLRNI_H_W ++ 0U, // XVSSRLRNI_WU_D ++ 0U, // XVSSRLRNI_W_D ++ 0U, // XVSSRLRN_BU_H ++ 0U, // XVSSRLRN_B_H ++ 0U, // XVSSRLRN_HU_W ++ 0U, // XVSSRLRN_H_W ++ 0U, // XVSSRLRN_WU_D ++ 0U, // XVSSRLRN_W_D ++ 0U, // XVSSUB_B ++ 0U, // XVSSUB_BU ++ 0U, // XVSSUB_D ++ 0U, // XVSSUB_DU ++ 0U, // XVSSUB_H ++ 0U, // XVSSUB_HU ++ 0U, // XVSSUB_W ++ 0U, // XVSSUB_WU ++ 0U, // XVST ++ 5U, // XVSTELM_B ++ 9U, // XVSTELM_D ++ 13U, // XVSTELM_H ++ 7U, // XVSTELM_W ++ 0U, // XVSTX ++ 0U, // XVST_D ++ 0U, // XVST_H ++ 0U, // XVST_W ++ 0U, // XVSUBI_BU ++ 0U, // XVSUBI_BU_N ++ 0U, // XVSUBI_DU ++ 0U, // XVSUBI_DU_N ++ 0U, // XVSUBI_HU ++ 0U, // XVSUBI_HU_N ++ 0U, // XVSUBI_WU ++ 0U, // XVSUBI_WU_N ++ 0U, // XVSUBWEV_D_W ++ 0U, // XVSUBWEV_D_WU ++ 0U, // XVSUBWEV_H_B ++ 0U, // XVSUBWEV_H_BU ++ 0U, // XVSUBWEV_Q_D ++ 0U, // XVSUBWEV_Q_DU ++ 0U, // XVSUBWEV_W_H ++ 0U, // XVSUBWEV_W_HU ++ 0U, // XVSUBWOD_D_W ++ 0U, // XVSUBWOD_D_WU ++ 0U, // XVSUBWOD_H_B ++ 0U, // XVSUBWOD_H_BU ++ 0U, // XVSUBWOD_Q_D ++ 0U, // XVSUBWOD_Q_DU ++ 0U, // XVSUBWOD_W_H ++ 0U, // XVSUBWOD_W_HU ++ 0U, // XVSUB_B ++ 0U, // XVSUB_D ++ 0U, // XVSUB_H ++ 0U, // XVSUB_Q ++ 0U, // XVSUB_W ++ 0U, // XVXORI_B ++ 0U, // XVXORI_B_N ++ 0U, // XVXOR_V ++ 3U, // ZEXT64_32 ++ }; ++ ++ O << "\t"; ++ ++ // Emit the opcode for the instruction. ++ uint64_t Bits = 0; ++ Bits |= (uint64_t)OpInfo0[MI->getOpcode()] << 0; ++ Bits |= (uint64_t)OpInfo1[MI->getOpcode()] << 32; ++ assert(Bits != 0 && "Cannot print this instruction."); ++ O << AsmStrs+(Bits & 16383)-1; ++ ++ ++ // Fragment 0 encoded into 3 bits for 8 unique commands. ++ switch ((Bits >> 14) & 7) { ++ default: llvm_unreachable("Invalid command number."); ++ case 0: ++ // DBG_VALUE, DBG_LABEL, BUNDLE, LIFETIME_START, LIFETIME_END, FENTRY_CAL... ++ return; ++ break; ++ case 1: ++ // LoadAddrGlobal, LoadAddrGlobalRR, LoadAddrGlobal_Alias, LoadAddrLocal,... ++ printOperand(MI, 0, O); ++ break; ++ case 2: ++ // BREAK, DBAR, DBCL, HYPCALL, IBAR, IDLE, SYSCALL ++ printUImm<15>(MI, 0, O); ++ return; ++ break; ++ case 3: ++ // CACOP, CACOP32, INVTLB ++ printUImm<5>(MI, 0, O); ++ O << ", "; ++ printOperand(MI, 1, O); ++ O << ", "; ++ printOperand(MI, 2, O); ++ return; ++ break; ++ case 4: ++ // CSRWR, CSRWR32, CSRXCHG, CSRXCHG32, LU32I_D_R2, SC_D, SC_W ++ printOperand(MI, 1, O); ++ O << ", "; ++ break; ++ case 5: ++ // FCMP_D64, FCMP_S32 ++ printFCCOperand(MI, 2, O); ++ break; ++ case 6: ++ // PRELD, PRELD32 ++ printUImm<5>(MI, 3, O); ++ O << ", "; ++ printOperand(MI, 0, O); ++ O << ", "; ++ printMemOperand(MI, 1, O); ++ return; ++ break; ++ case 7: ++ // PRELD_Raw, PRELD_Raw32 ++ printUImm<5>(MI, 2, O); ++ O << ", "; ++ printOperand(MI, 0, O); ++ O << ", "; ++ printOperand(MI, 1, O); ++ return; ++ break; ++ } ++ ++ ++ // Fragment 1 encoded into 3 bits for 7 unique commands. ++ switch ((Bits >> 17) & 7) { ++ default: llvm_unreachable("Invalid command number."); ++ case 0: ++ // LoadAddrGlobal, LoadAddrGlobalRR, LoadAddrGlobal_Alias, LoadAddrLocal,... ++ O << ", "; ++ break; ++ case 1: ++ // B, B32, BL ++ return; ++ break; ++ case 2: ++ // CSRWR, CSRWR32 ++ printUImm<14>(MI, 2, O); ++ return; ++ break; ++ case 3: ++ // CSRXCHG, CSRXCHG32, LU32I_D_R2 ++ printOperand(MI, 2, O); ++ break; ++ case 4: ++ // FCMP_D64 ++ O << ".d\t$fcc0, "; ++ printOperand(MI, 0, O); ++ O << ", "; ++ printOperand(MI, 1, O); ++ return; ++ break; ++ case 5: ++ // FCMP_S32 ++ O << ".s\t$fcc0, "; ++ printOperand(MI, 0, O); ++ O << ", "; ++ printOperand(MI, 1, O); ++ return; ++ break; ++ case 6: ++ // SC_D, SC_W ++ printMemOperand(MI, 2, O); ++ return; ++ break; ++ } ++ ++ ++ // Fragment 2 encoded into 4 bits for 9 unique commands. ++ switch ((Bits >> 20) & 15) { ++ default: llvm_unreachable("Invalid command number."); ++ case 0: ++ // LoadAddrGlobal, LoadAddrGlobalRR, LoadAddrGlobal_Alias, LoadAddrLocal,... ++ printOperand(MI, 1, O); ++ break; ++ case 1: ++ // CSRRD, CSRRD32 ++ printUImm<14>(MI, 1, O); ++ return; ++ break; ++ case 2: ++ // CSRXCHG, CSRXCHG32 ++ O << ", "; ++ printUImm<14>(MI, 3, O); ++ return; ++ break; ++ case 3: ++ // FLD_D, FLD_S, FST_D, FST_S, LDPTR_D, LDPTR_W, LDPTR_W32, LD_B, LD_B32,... ++ printMemOperand(MI, 1, O); ++ return; ++ break; ++ case 4: ++ // FSEL_T_D, FSEL_T_S, VBITSELI_B, VBITSELI_B_N, VEXTRINS_B, VEXTRINS_D, ... ++ printOperand(MI, 2, O); ++ O << ", "; ++ break; ++ case 5: ++ // LAPCREL ++ printUImm<16>(MI, 1, O); ++ return; ++ break; ++ case 6: ++ // LDPTE, LDPTE32 ++ printUImm<8>(MI, 1, O); ++ return; ++ break; ++ case 7: ++ // LEA_ADDI_D, LEA_ADDI_W ++ printMemOperandEA(MI, 1, O); ++ return; ++ break; ++ case 8: ++ // LU32I_D_R2 ++ return; ++ break; ++ } ++ ++ ++ // Fragment 3 encoded into 4 bits for 13 unique commands. ++ switch ((Bits >> 24) & 15) { ++ default: llvm_unreachable("Invalid command number."); ++ case 0: ++ // LoadAddrGlobal, LoadAddrGlobal_Alias, LoadAddrLocal, LoadAddrTLS_GD, L... ++ return; ++ break; ++ case 1: ++ // LoadAddrGlobalRR, LoadAddrLocalRR, LoadAddrTLS_GD_RR, LoadAddrTLS_IE_R... ++ O << ", "; ++ break; ++ case 2: ++ // FSEL_T_D, FSEL_T_S, VFRSTP_B, VFRSTP_H, VMADDWEV_D_W, VMADDWEV_D_WU, V... ++ printOperand(MI, 3, O); ++ break; ++ case 3: ++ // JIRLR, SLLI_W_64_32, SLLI_W_64_64 ++ O << ", 0"; ++ return; ++ break; ++ case 4: ++ // SLLI_D_64_32 ++ O << ", 32"; ++ return; ++ break; ++ case 5: ++ // VBITSELI_B, VBITSELI_B_N, VEXTRINS_B, VEXTRINS_D, VEXTRINS_H, VEXTRINS... ++ printUImm<8>(MI, 3, O); ++ return; ++ break; ++ case 6: ++ // VFRSTPI_B, VFRSTPI_H, VSRANI_H_W, VSRARNI_H_W, VSRLNI_H_W, VSRLRNI_H_W... ++ printUImm<5>(MI, 3, O); ++ return; ++ break; ++ case 7: ++ // VINSGR2VR_B, VSRANI_B_H, VSRARNI_B_H, VSRLNI_B_H, VSRLRNI_B_H, VSSRANI... ++ printUImm<4>(MI, 3, O); ++ return; ++ break; ++ case 8: ++ // VINSGR2VR_D ++ printUImm<1>(MI, 3, O); ++ return; ++ break; ++ case 9: ++ // VINSGR2VR_H, XVINSGR2VR_W, XVINSVE0_W, XVPICKVE_W ++ printUImm<3>(MI, 3, O); ++ return; ++ break; ++ case 10: ++ // VINSGR2VR_W, XVINSGR2VR_D, XVINSVE0_D, XVPICKVE_D ++ printUImm<2>(MI, 3, O); ++ return; ++ break; ++ case 11: ++ // VSRANI_D_Q, VSRARNI_D_Q, VSRLNI_D_Q, VSRLRNI_D_Q, VSSRANI_DU_Q, VSSRAN... ++ printUImm<7>(MI, 3, O); ++ return; ++ break; ++ case 12: ++ // VSRANI_W_D, VSRARNI_W_D, VSRLNI_W_D, VSRLRNI_W_D, VSSRANI_WU_D, VSSRAN... ++ printUImm<6>(MI, 3, O); ++ return; ++ break; ++ } ++ ++ ++ // Fragment 4 encoded into 4 bits for 12 unique commands. ++ switch ((Bits >> 28) & 15) { ++ default: llvm_unreachable("Invalid command number."); ++ case 0: ++ // LoadAddrGlobalRR, LoadAddrLocalRR, LoadAddrTLS_GD_RR, LoadAddrTLS_IE_R... ++ printOperand(MI, 2, O); ++ break; ++ case 1: ++ // AMADD_D, AMADD_DB_D, AMADD_DB_W, AMADD_W, AMAND_D, AMAND_DB_D, AMAND_D... ++ printAMemOperand(MI, 2, O); ++ return; ++ break; ++ case 2: ++ // ANDI, ANDI32, ORI, ORI32, ORI_rri, ORI_rrii, XORI, XORI32 ++ printUImm<12>(MI, 2, O); ++ return; ++ break; ++ case 3: ++ // BSTRINS_D, BSTRPICK_D, ROTRI_D, SLLI_D, SRAI_D, SRLI_D, VBITCLRI_D, VB... ++ printUImm<6>(MI, 2, O); ++ break; ++ case 4: ++ // BSTRINS_W, BSTRPICK_W, ROTRI_W, SLLI_W, SRAI_W, SRLI_W, VADDI_BU, VADD... ++ printUImm<5>(MI, 2, O); ++ break; ++ case 5: ++ // FSEL_T_D, FSEL_T_S ++ O << ", "; ++ printOperand(MI, 1, O); ++ return; ++ break; ++ case 6: ++ // LDDIR, LDDIR32, VANDI_B, VANDI_B_N, VNORI_B, VORI_B, VSHUF4I_B, VSHUF4... ++ printUImm<8>(MI, 2, O); ++ return; ++ break; ++ case 7: ++ // VBITCLRI_B, VBITREVI_B, VBITSETI_B, VPICKVE2GR_H, VPICKVE2GR_HU, VREPL... ++ printUImm<3>(MI, 2, O); ++ return; ++ break; ++ case 8: ++ // VBITCLRI_H, VBITREVI_H, VBITSETI_H, VPICKVE2GR_B, VPICKVE2GR_BU, VREPL... ++ printUImm<4>(MI, 2, O); ++ return; ++ break; ++ case 9: ++ // VFRSTP_B, VFRSTP_H, VMADDWEV_D_W, VMADDWEV_D_WU, VMADDWEV_D_WU_W, VMAD... ++ return; ++ break; ++ case 10: ++ // VPICKVE2GR_D, VPICKVE2GR_DU, VREPLVEI_D, XVREPL128VEI_D ++ printUImm<1>(MI, 2, O); ++ return; ++ break; ++ case 11: ++ // VPICKVE2GR_W, VPICKVE2GR_WU, VREPLVEI_W, XVPICKVE2GR_D, XVPICKVE2GR_DU... ++ printUImm<2>(MI, 2, O); ++ return; ++ break; ++ } ++ ++ ++ // Fragment 5 encoded into 1 bits for 2 unique commands. ++ if ((Bits >> 32) & 1) { ++ // ALSL_D, ALSL_W, ALSL_WU, BSTRINS_D, BSTRINS_W, BSTRPICK_D, BSTRPICK_W,... ++ O << ", "; ++ } else { ++ // LoadAddrGlobalRR, LoadAddrLocalRR, LoadAddrTLS_GD_RR, LoadAddrTLS_IE_R... ++ return; ++ } ++ ++ ++ // Fragment 6 encoded into 3 bits for 8 unique commands. ++ switch ((Bits >> 33) & 7) { ++ default: llvm_unreachable("Invalid command number."); ++ case 0: ++ // ALSL_D, ALSL_W, ALSL_WU ++ printUImm<2, 1>(MI, 3, O); ++ return; ++ break; ++ case 1: ++ // BSTRINS_D, BSTRPICK_D, ZEXT64_32 ++ printUImm<6>(MI, 3, O); ++ return; ++ break; ++ case 2: ++ // BSTRINS_W, BSTRPICK_W, XVSTELM_B ++ printUImm<5>(MI, 3, O); ++ return; ++ break; ++ case 3: ++ // BYTEPICK_D, VSTELM_H, XVSTELM_W ++ printUImm<3>(MI, 3, O); ++ return; ++ break; ++ case 4: ++ // BYTEPICK_W, VSTELM_W, XVSTELM_D ++ printUImm<2>(MI, 3, O); ++ return; ++ break; ++ case 5: ++ // FMADD_D, FMADD_S, FMSUB_D, FMSUB_S, FNMADD_D, FNMADD_S, FNMSUB_D, FNMS... ++ printOperand(MI, 3, O); ++ return; ++ break; ++ case 6: ++ // VSTELM_B, XVSTELM_H ++ printUImm<4>(MI, 3, O); ++ return; ++ break; ++ case 7: ++ // VSTELM_D ++ printUImm<1>(MI, 3, O); ++ return; ++ break; ++ } ++ ++} ++ ++ ++/// getRegisterName - This method is automatically generated by tblgen ++/// from the register set description. This returns the assembler name ++/// for the specified register. ++const char *LoongArchInstPrinter::getRegisterName(unsigned RegNo) { ++ assert(RegNo && RegNo < 210 && "Invalid register number!"); ++ ++ static const char AsmStrs[] = { ++ /* 0 */ 'f', '1', '0', 0, ++ /* 4 */ 'v', 'r', '1', '0', 0, ++ /* 9 */ 'x', 'r', '1', '0', 0, ++ /* 14 */ 'f', '2', '0', 0, ++ /* 18 */ 'v', 'r', '2', '0', 0, ++ /* 23 */ 'x', 'r', '2', '0', 0, ++ /* 28 */ 'f', '3', '0', 0, ++ /* 32 */ 'v', 'r', '3', '0', 0, ++ /* 37 */ 'x', 'r', '3', '0', 0, ++ /* 42 */ 'f', 'c', 'c', '0', 0, ++ /* 47 */ 'f', '0', 0, ++ /* 50 */ 'f', 'c', 's', 'r', '0', 0, ++ /* 56 */ 'v', 'r', '0', 0, ++ /* 60 */ 'x', 'r', '0', 0, ++ /* 64 */ 'f', '1', '1', 0, ++ /* 68 */ 'v', 'r', '1', '1', 0, ++ /* 73 */ 'x', 'r', '1', '1', 0, ++ /* 78 */ 'f', '2', '1', 0, ++ /* 82 */ 'v', 'r', '2', '1', 0, ++ /* 87 */ 'x', 'r', '2', '1', 0, ++ /* 92 */ 'f', '3', '1', 0, ++ /* 96 */ 'v', 'r', '3', '1', 0, ++ /* 101 */ 'x', 'r', '3', '1', 0, ++ /* 106 */ 'f', 'c', 'c', '1', 0, ++ /* 111 */ 'f', '1', 0, ++ /* 114 */ 'f', 'c', 's', 'r', '1', 0, ++ /* 120 */ 'v', 'r', '1', 0, ++ /* 124 */ 'x', 'r', '1', 0, ++ /* 128 */ 'f', '1', '2', 0, ++ /* 132 */ 'v', 'r', '1', '2', 0, ++ /* 137 */ 'x', 'r', '1', '2', 0, ++ /* 142 */ 'f', '2', '2', 0, ++ /* 146 */ 'v', 'r', '2', '2', 0, ++ /* 151 */ 'x', 'r', '2', '2', 0, ++ /* 156 */ 'f', 'c', 'c', '2', 0, ++ /* 161 */ 'f', '2', 0, ++ /* 164 */ 'f', 'c', 's', 'r', '2', 0, ++ /* 170 */ 'v', 'r', '2', 0, ++ /* 174 */ 'x', 'r', '2', 0, ++ /* 178 */ 'f', '1', '3', 0, ++ /* 182 */ 'v', 'r', '1', '3', 0, ++ /* 187 */ 'x', 'r', '1', '3', 0, ++ /* 192 */ 'f', '2', '3', 0, ++ /* 196 */ 'v', 'r', '2', '3', 0, ++ /* 201 */ 'x', 'r', '2', '3', 0, ++ /* 206 */ 'f', 'c', 'c', '3', 0, ++ /* 211 */ 'f', '3', 0, ++ /* 214 */ 'f', 'c', 's', 'r', '3', 0, ++ /* 220 */ 'v', 'r', '3', 0, ++ /* 224 */ 'x', 'r', '3', 0, ++ /* 228 */ 'f', '1', '4', 0, ++ /* 232 */ 'v', 'r', '1', '4', 0, ++ /* 237 */ 'x', 'r', '1', '4', 0, ++ /* 242 */ 'f', '2', '4', 0, ++ /* 246 */ 'v', 'r', '2', '4', 0, ++ /* 251 */ 'x', 'r', '2', '4', 0, ++ /* 256 */ 'f', 'c', 'c', '4', 0, ++ /* 261 */ 'f', '4', 0, ++ /* 264 */ 'v', 'r', '4', 0, ++ /* 268 */ 'x', 'r', '4', 0, ++ /* 272 */ 'f', '1', '5', 0, ++ /* 276 */ 'v', 'r', '1', '5', 0, ++ /* 281 */ 'x', 'r', '1', '5', 0, ++ /* 286 */ 'f', '2', '5', 0, ++ /* 290 */ 'v', 'r', '2', '5', 0, ++ /* 295 */ 'x', 'r', '2', '5', 0, ++ /* 300 */ 'f', 'c', 'c', '5', 0, ++ /* 305 */ 'f', '5', 0, ++ /* 308 */ 'v', 'r', '5', 0, ++ /* 312 */ 'x', 'r', '5', 0, ++ /* 316 */ 'f', '1', '6', 0, ++ /* 320 */ 'v', 'r', '1', '6', 0, ++ /* 325 */ 'x', 'r', '1', '6', 0, ++ /* 330 */ 'f', '2', '6', 0, ++ /* 334 */ 'v', 'r', '2', '6', 0, ++ /* 339 */ 'x', 'r', '2', '6', 0, ++ /* 344 */ 'f', 'c', 'c', '6', 0, ++ /* 349 */ 'f', '6', 0, ++ /* 352 */ 'v', 'r', '6', 0, ++ /* 356 */ 'x', 'r', '6', 0, ++ /* 360 */ 'f', '1', '7', 0, ++ /* 364 */ 'v', 'r', '1', '7', 0, ++ /* 369 */ 'x', 'r', '1', '7', 0, ++ /* 374 */ 'f', '2', '7', 0, ++ /* 378 */ 'v', 'r', '2', '7', 0, ++ /* 383 */ 'x', 'r', '2', '7', 0, ++ /* 388 */ 'f', 'c', 'c', '7', 0, ++ /* 393 */ 'f', '7', 0, ++ /* 396 */ 'v', 'r', '7', 0, ++ /* 400 */ 'x', 'r', '7', 0, ++ /* 404 */ 'f', '1', '8', 0, ++ /* 408 */ 'v', 'r', '1', '8', 0, ++ /* 413 */ 'x', 'r', '1', '8', 0, ++ /* 418 */ 'f', '2', '8', 0, ++ /* 422 */ 'v', 'r', '2', '8', 0, ++ /* 427 */ 'x', 'r', '2', '8', 0, ++ /* 432 */ 'f', '8', 0, ++ /* 435 */ 'v', 'r', '8', 0, ++ /* 439 */ 'x', 'r', '8', 0, ++ /* 443 */ 'f', '1', '9', 0, ++ /* 447 */ 'v', 'r', '1', '9', 0, ++ /* 452 */ 'x', 'r', '1', '9', 0, ++ /* 457 */ 'f', '2', '9', 0, ++ /* 461 */ 'v', 'r', '2', '9', 0, ++ /* 466 */ 'x', 'r', '2', '9', 0, ++ /* 471 */ 'f', '9', 0, ++ /* 474 */ 'v', 'r', '9', 0, ++ /* 478 */ 'x', 'r', '9', 0, ++ /* 482 */ 'r', 'a', 0, ++ /* 485 */ 'p', 'c', 0, ++ /* 488 */ 'z', 'e', 'r', 'o', 0, ++ /* 493 */ 's', 'p', 0, ++ /* 496 */ 't', 'p', 0, ++ }; ++ ++ static const uint16_t RegAsmOffset[] = { ++ 147, 485, 482, 493, 496, 488, 265, 309, 353, 397, 436, 475, 5, 69, ++ 47, 111, 161, 211, 261, 305, 349, 393, 432, 471, 0, 64, 128, 178, ++ 228, 272, 316, 360, 404, 443, 14, 78, 142, 192, 242, 286, 330, 374, ++ 418, 457, 28, 92, 42, 106, 156, 206, 256, 300, 344, 388, 50, 114, ++ 164, 214, 147, 482, 197, 247, 291, 335, 379, 423, 462, 33, 97, 493, ++ 133, 183, 233, 277, 321, 365, 409, 448, 19, 83, 496, 265, 309, 56, ++ 120, 170, 220, 264, 308, 352, 396, 435, 474, 4, 68, 132, 182, 232, ++ 276, 320, 364, 408, 447, 18, 82, 146, 196, 246, 290, 334, 378, 422, ++ 461, 32, 96, 60, 124, 174, 224, 268, 312, 356, 400, 439, 478, 9, ++ 73, 137, 187, 237, 281, 325, 369, 413, 452, 23, 87, 151, 201, 251, ++ 295, 339, 383, 427, 466, 37, 101, 488, 265, 309, 353, 397, 436, 475, ++ 5, 69, 47, 111, 161, 211, 261, 305, 349, 393, 432, 471, 0, 64, ++ 128, 178, 228, 272, 316, 360, 404, 443, 14, 78, 142, 192, 242, 286, ++ 330, 374, 418, 457, 28, 92, 197, 247, 291, 335, 379, 423, 462, 33, ++ 97, 133, 183, 233, 277, 321, 365, 409, 448, 19, 83, 265, 309, ++ }; ++ ++ assert (*(AsmStrs+RegAsmOffset[RegNo-1]) && ++ "Invalid alt name index for register!"); ++ return AsmStrs+RegAsmOffset[RegNo-1]; ++} ++ ++#ifdef PRINT_ALIAS_INSTR ++#undef PRINT_ALIAS_INSTR ++ ++bool LoongArchInstPrinter::printAliasInstr(const MCInst *MI, raw_ostream &OS) { ++ static const PatternsForOpcode OpToPatterns[] = { ++ {LoongArch::LoadAddrGlobal, 0, 1 }, ++ {LoongArch::LoadAddrLocal, 1, 1 }, ++ {LoongArch::ANDI, 2, 1 }, ++ {LoongArch::JIRL, 3, 1 }, ++ {LoongArch::OR, 4, 1 }, ++ {LoongArch::OR32, 5, 1 }, ++ }; ++ ++ static const AliasPattern Patterns[] = { ++ // LoongArch::LoadAddrGlobal - 0 ++ {0, 0, 2, 1 }, ++ // LoongArch::LoadAddrLocal - 1 ++ {14, 1, 2, 1 }, ++ // LoongArch::ANDI - 2 ++ {30, 2, 3, 3 }, ++ // LoongArch::JIRL - 3 ++ {34, 5, 3, 3 }, ++ // LoongArch::OR - 4 ++ {40, 8, 3, 3 }, ++ // LoongArch::OR32 - 5 ++ {40, 11, 3, 3 }, ++ }; ++ ++ static const AliasPatternCond Conds[] = { ++ // (LoadAddrGlobal GPR64Opnd:$rd, imm64:$imm) - 0 ++ {AliasPatternCond::K_RegClass, LoongArch::GPR64RegClassID}, ++ // (LoadAddrLocal GPR64Opnd:$rd, imm64:$imm) - 1 ++ {AliasPatternCond::K_RegClass, LoongArch::GPR64RegClassID}, ++ // (ANDI ZERO_64, ZERO_64, 0) - 2 ++ {AliasPatternCond::K_Reg, LoongArch::ZERO_64}, ++ {AliasPatternCond::K_Reg, LoongArch::ZERO_64}, ++ {AliasPatternCond::K_Imm, uint32_t(0)}, ++ // (JIRL ZERO_64, GPR64Opnd:$rd, 0) - 5 ++ {AliasPatternCond::K_Reg, LoongArch::ZERO_64}, ++ {AliasPatternCond::K_RegClass, LoongArch::GPR64RegClassID}, ++ {AliasPatternCond::K_Imm, uint32_t(0)}, ++ // (OR GPR64Opnd:$dst, GPR64Opnd:$src, ZERO_64) - 8 ++ {AliasPatternCond::K_RegClass, LoongArch::GPR64RegClassID}, ++ {AliasPatternCond::K_RegClass, LoongArch::GPR64RegClassID}, ++ {AliasPatternCond::K_Reg, LoongArch::ZERO_64}, ++ // (OR32 GPR32Opnd:$dst, GPR32Opnd:$src, ZERO) - 11 ++ {AliasPatternCond::K_RegClass, LoongArch::GPR32RegClassID}, ++ {AliasPatternCond::K_RegClass, LoongArch::GPR32RegClassID}, ++ {AliasPatternCond::K_Reg, LoongArch::ZERO}, ++ }; ++ ++ static const char AsmStrings[] = ++ /* 0 */ "la.got $\x01, $\x02\0" ++ /* 14 */ "la.pcrel $\x01, $\x02\0" ++ /* 30 */ "nop\0" ++ /* 34 */ "jr $\x02\0" ++ /* 40 */ "move $\x01, $\x02\0" ++ ; ++ ++#ifndef NDEBUG ++ static struct SortCheck { ++ SortCheck(ArrayRef OpToPatterns) { ++ assert(std::is_sorted( ++ OpToPatterns.begin(), OpToPatterns.end(), ++ [](const PatternsForOpcode &L, const PatternsForOpcode &R) { ++ return L.Opcode < R.Opcode; ++ }) && ++ "tablegen failed to sort opcode patterns"); ++ } ++ } sortCheckVar(OpToPatterns); ++#endif ++ ++ AliasMatchingData M { ++ makeArrayRef(OpToPatterns), ++ makeArrayRef(Patterns), ++ makeArrayRef(Conds), ++ StringRef(AsmStrings, array_lengthof(AsmStrings)), ++ nullptr, ++ }; ++ const char *AsmString = matchAliasPatterns(MI, nullptr, M); ++ if (!AsmString) return false; ++ ++ unsigned I = 0; ++ while (AsmString[I] != ' ' && AsmString[I] != '\t' && ++ AsmString[I] != '$' && AsmString[I] != '\0') ++ ++I; ++ OS << '\t' << StringRef(AsmString, I); ++ if (AsmString[I] != '\0') { ++ if (AsmString[I] == ' ' || AsmString[I] == '\t') { ++ OS << '\t'; ++ ++I; ++ } ++ do { ++ if (AsmString[I] == '$') { ++ ++I; ++ if (AsmString[I] == (char)0xff) { ++ ++I; ++ int OpIdx = AsmString[I++] - 1; ++ int PrintMethodIdx = AsmString[I++] - 1; ++ printCustomAliasOperand(MI, OpIdx, PrintMethodIdx, OS); ++ } else ++ printOperand(MI, unsigned(AsmString[I++]) - 1, OS); ++ } else { ++ OS << AsmString[I++]; ++ } ++ } while (AsmString[I] != '\0'); ++ } ++ ++ return true; ++} ++ ++void LoongArchInstPrinter::printCustomAliasOperand( ++ const MCInst *MI, unsigned OpIdx, ++ unsigned PrintMethodIdx, ++ raw_ostream &OS) { ++ llvm_unreachable("Unknown PrintMethod kind"); ++} ++ ++#endif // PRINT_ALIAS_INSTR +diff --git a/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenAsmWriter.inc.d b/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenAsmWriter.inc.d +new file mode 100644 +index 00000000000..7642590e750 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenAsmWriter.inc.d +@@ -0,0 +1 @@ ++lib/Target/LoongArch/LoongArchGenAsmWriter.inc: /mnt/wangqing/work/llvm-project/llvm/include/llvm/CodeGen/SDNodeProperties.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/CodeGen/ValueTypes.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/Intrinsics.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsAArch64.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsAMDGPU.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsARM.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsBPF.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsHexagon.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsLoongArch.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsMips.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsNVVM.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsPowerPC.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsRISCV.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsSystemZ.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsWebAssembly.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsX86.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsXCore.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/GenericOpcodes.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/GlobalISel/RegisterBank.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/GlobalISel/SelectionDAGCompat.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/GlobalISel/Target.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/Target.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetCallingConv.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetInstrPredicate.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetItinerary.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetPfmCounters.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetSchedule.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetSelectionDAG.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArch32InstrInfo.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchCallingConv.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchInstrFormats.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchInstrInfo.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchInstrInfoF.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchLASXInstrFormats.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchLASXInstrInfo.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchLSXInstrFormats.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchLSXInstrInfo.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchRegisterInfo.td +diff --git a/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenCallingConv.inc b/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenCallingConv.inc +new file mode 100644 +index 00000000000..1e6c751cd8f +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenCallingConv.inc +@@ -0,0 +1,667 @@ ++/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\ ++|* *| ++|* Calling Convention Implementation Fragment *| ++|* *| ++|* Automatically generated file, do not edit! *| ++|* *| ++\*===----------------------------------------------------------------------===*/ ++ ++static bool CC_LoongArch(unsigned ValNo, MVT ValVT, ++ MVT LocVT, CCValAssign::LocInfo LocInfo, ++ ISD::ArgFlagsTy ArgFlags, CCState &State); ++static bool CC_LoongArchLP32(unsigned ValNo, MVT ValVT, ++ MVT LocVT, CCValAssign::LocInfo LocInfo, ++ ISD::ArgFlagsTy ArgFlags, CCState &State); ++static bool CC_LoongArchLP32_FP(unsigned ValNo, MVT ValVT, ++ MVT LocVT, CCValAssign::LocInfo LocInfo, ++ ISD::ArgFlagsTy ArgFlags, CCState &State); ++static bool CC_LoongArchLP64LPX32(unsigned ValNo, MVT ValVT, ++ MVT LocVT, CCValAssign::LocInfo LocInfo, ++ ISD::ArgFlagsTy ArgFlags, CCState &State); ++static bool CC_LoongArchLP64LPX32_SoftFloat(unsigned ValNo, MVT ValVT, ++ MVT LocVT, CCValAssign::LocInfo LocInfo, ++ ISD::ArgFlagsTy ArgFlags, CCState &State); ++static bool CC_LoongArchLP64LPX32_VarArg(unsigned ValNo, MVT ValVT, ++ MVT LocVT, CCValAssign::LocInfo LocInfo, ++ ISD::ArgFlagsTy ArgFlags, CCState &State); ++static bool CC_LoongArch_ByVal(unsigned ValNo, MVT ValVT, ++ MVT LocVT, CCValAssign::LocInfo LocInfo, ++ ISD::ArgFlagsTy ArgFlags, CCState &State); ++static bool CC_LoongArch_FixedArg(unsigned ValNo, MVT ValVT, ++ MVT LocVT, CCValAssign::LocInfo LocInfo, ++ ISD::ArgFlagsTy ArgFlags, CCState &State); ++static bool CC_LoongArch_VarArg(unsigned ValNo, MVT ValVT, ++ MVT LocVT, CCValAssign::LocInfo LocInfo, ++ ISD::ArgFlagsTy ArgFlags, CCState &State); ++static bool RetCC_F128(unsigned ValNo, MVT ValVT, ++ MVT LocVT, CCValAssign::LocInfo LocInfo, ++ ISD::ArgFlagsTy ArgFlags, CCState &State); ++static bool RetCC_F128HardFloat(unsigned ValNo, MVT ValVT, ++ MVT LocVT, CCValAssign::LocInfo LocInfo, ++ ISD::ArgFlagsTy ArgFlags, CCState &State); ++static bool RetCC_F128SoftFloat(unsigned ValNo, MVT ValVT, ++ MVT LocVT, CCValAssign::LocInfo LocInfo, ++ ISD::ArgFlagsTy ArgFlags, CCState &State); ++static bool RetCC_LoongArch(unsigned ValNo, MVT ValVT, ++ MVT LocVT, CCValAssign::LocInfo LocInfo, ++ ISD::ArgFlagsTy ArgFlags, CCState &State); ++static bool RetCC_LoongArchLP32(unsigned ValNo, MVT ValVT, ++ MVT LocVT, CCValAssign::LocInfo LocInfo, ++ ISD::ArgFlagsTy ArgFlags, CCState &State); ++static bool RetCC_LoongArchLP64LPX32(unsigned ValNo, MVT ValVT, ++ MVT LocVT, CCValAssign::LocInfo LocInfo, ++ ISD::ArgFlagsTy ArgFlags, CCState &State); ++ ++ ++static bool CC_LoongArch(unsigned ValNo, MVT ValVT, ++ MVT LocVT, CCValAssign::LocInfo LocInfo, ++ ISD::ArgFlagsTy ArgFlags, CCState &State) { ++ ++ if (State.isVarArg()) { ++ if (!static_cast(&State)->IsCallOperandFixed(ValNo)) { ++ if (!CC_LoongArch_VarArg(ValNo, ValVT, LocVT, LocInfo, ArgFlags, State)) ++ return false; ++ } ++ } ++ ++ if (!CC_LoongArch_FixedArg(ValNo, ValVT, LocVT, LocInfo, ArgFlags, State)) ++ return false; ++ ++ return true; // CC didn't match. ++} ++ ++ ++static bool CC_LoongArchLP32(unsigned ValNo, MVT ValVT, ++ MVT LocVT, CCValAssign::LocInfo LocInfo, ++ ISD::ArgFlagsTy ArgFlags, CCState &State) { ++ ++ if (LocVT == MVT::i1 || ++ LocVT == MVT::i8 || ++ LocVT == MVT::i16) { ++ LocVT = MVT::i32; ++ if (ArgFlags.isSExt()) ++ LocInfo = CCValAssign::SExt; ++ else if (ArgFlags.isZExt()) ++ LocInfo = CCValAssign::ZExt; ++ else ++ LocInfo = CCValAssign::AExt; ++ } ++ ++ if (LocVT == MVT::i32 || ++ LocVT == MVT::f32) { ++ unsigned Offset1 = State.AllocateStack(4, 4); ++ State.addLoc(CCValAssign::getMem(ValNo, ValVT, Offset1, LocVT, LocInfo)); ++ return false; ++ } ++ ++ if (LocVT == MVT::f64) { ++ unsigned Offset2 = State.AllocateStack(8, 8); ++ State.addLoc(CCValAssign::getMem(ValNo, ValVT, Offset2, LocVT, LocInfo)); ++ return false; ++ } ++ ++ return true; // CC didn't match. ++} ++ ++ ++static bool CC_LoongArchLP32_FP(unsigned ValNo, MVT ValVT, ++ MVT LocVT, CCValAssign::LocInfo LocInfo, ++ ISD::ArgFlagsTy ArgFlags, CCState &State) { ++ ++ if (!static_cast(State.getMachineFunction().getSubtarget()).isFP64bit()) { ++ if (!CC_LoongArchLP32_FP32(ValNo, ValVT, LocVT, LocInfo, ArgFlags, State)) ++ return false; ++ } ++ ++ if (static_cast(State.getMachineFunction().getSubtarget()).isFP64bit()) { ++ if (!CC_LoongArchLP32_FP64(ValNo, ValVT, LocVT, LocInfo, ArgFlags, State)) ++ return false; ++ } ++ ++ return true; // CC didn't match. ++} ++ ++ ++static bool CC_LoongArchLP64LPX32(unsigned ValNo, MVT ValVT, ++ MVT LocVT, CCValAssign::LocInfo LocInfo, ++ ISD::ArgFlagsTy ArgFlags, CCState &State) { ++ ++ if (LocVT == MVT::i8 || ++ LocVT == MVT::i16 || ++ LocVT == MVT::i32) { ++ if (!static_cast(&State)->WasOriginalArgFloat(ValNo)) { ++ LocVT = MVT::i64; ++ if (ArgFlags.isSExt()) ++ LocInfo = CCValAssign::SExt; ++ else if (ArgFlags.isZExt()) ++ LocInfo = CCValAssign::ZExt; ++ else ++ LocInfo = CCValAssign::AExt; ++ } ++ } ++ ++ if (static_cast(State.getMachineFunction().getSubtarget()).useSoftFloat()) { ++ if (LocVT == MVT::i32) { ++ if (!CC_LoongArchLP64LPX32_SoftFloat(ValNo, ValVT, LocVT, LocInfo, ArgFlags, State)) ++ return false; ++ } ++ } ++ ++ if (LocVT == MVT::i64) { ++ static const MCPhysReg RegList1[] = { ++ LoongArch::A0_64, LoongArch::A1_64, LoongArch::A2_64, LoongArch::A3_64, LoongArch::A4_64, LoongArch::A5_64, LoongArch::A6_64, LoongArch::A7_64 ++ }; ++ if (unsigned Reg = State.AllocateReg(RegList1)) { ++ State.addLoc(CCValAssign::getReg(ValNo, ValVT, Reg, LocVT, LocInfo)); ++ return false; ++ } ++ } ++ ++ if (LocVT == MVT::f32) { ++ static const MCPhysReg RegList2[] = { ++ LoongArch::F0, LoongArch::F1, LoongArch::F2, LoongArch::F3, LoongArch::F4, LoongArch::F5, LoongArch::F6, LoongArch::F7 ++ }; ++ if (unsigned Reg = State.AllocateReg(RegList2)) { ++ State.addLoc(CCValAssign::getReg(ValNo, ValVT, Reg, LocVT, LocInfo)); ++ return false; ++ } ++ } ++ ++ if (LocVT == MVT::f64) { ++ static const MCPhysReg RegList3[] = { ++ LoongArch::F0_64, LoongArch::F1_64, LoongArch::F2_64, LoongArch::F3_64, LoongArch::F4_64, LoongArch::F5_64, LoongArch::F6_64, LoongArch::F7_64 ++ }; ++ if (unsigned Reg = State.AllocateReg(RegList3)) { ++ State.addLoc(CCValAssign::getReg(ValNo, ValVT, Reg, LocVT, LocInfo)); ++ return false; ++ } ++ } ++ ++ if (LocVT == MVT::f32) { ++ static const MCPhysReg RegList4[] = { ++ LoongArch::A0, LoongArch::A1, LoongArch::A2, LoongArch::A3, LoongArch::A4, LoongArch::A5, LoongArch::A6, LoongArch::A7 ++ }; ++ if (unsigned Reg = State.AllocateReg(RegList4)) { ++ State.addLoc(CCValAssign::getReg(ValNo, ValVT, Reg, LocVT, LocInfo)); ++ return false; ++ } ++ } ++ ++ if (LocVT == MVT::f64) { ++ static const MCPhysReg RegList5[] = { ++ LoongArch::A0_64, LoongArch::A1_64, LoongArch::A2_64, LoongArch::A3_64, LoongArch::A4_64, LoongArch::A5_64, LoongArch::A6_64, LoongArch::A7_64 ++ }; ++ if (unsigned Reg = State.AllocateReg(RegList5)) { ++ State.addLoc(CCValAssign::getReg(ValNo, ValVT, Reg, LocVT, LocInfo)); ++ return false; ++ } ++ } ++ ++ if (static_cast(State.getMachineFunction().getSubtarget()).hasLSX()) { ++ if (LocVT == MVT::v16i8 || ++ LocVT == MVT::v8i16 || ++ LocVT == MVT::v4i32 || ++ LocVT == MVT::v2i64 || ++ LocVT == MVT::v4f32 || ++ LocVT == MVT::v2f64) { ++ static const MCPhysReg RegList6[] = { ++ LoongArch::VR0, LoongArch::VR1, LoongArch::VR2, LoongArch::VR3, LoongArch::VR4, LoongArch::VR5, LoongArch::VR6, LoongArch::VR7 ++ }; ++ static const MCPhysReg RegList7[] = { ++ LoongArch::A0_64, LoongArch::A1_64, LoongArch::A2_64, LoongArch::A3_64, LoongArch::A4_64, LoongArch::A5_64, LoongArch::A6_64, LoongArch::A7_64 ++ }; ++ if (unsigned Reg = State.AllocateReg(RegList6, RegList7)) { ++ State.addLoc(CCValAssign::getReg(ValNo, ValVT, Reg, LocVT, LocInfo)); ++ return false; ++ } ++ } ++ } ++ ++ if (static_cast(State.getMachineFunction().getSubtarget()).hasLASX()) { ++ if (LocVT == MVT::v32i8 || ++ LocVT == MVT::v16i16 || ++ LocVT == MVT::v8i32 || ++ LocVT == MVT::v4i64 || ++ LocVT == MVT::v8f32 || ++ LocVT == MVT::v4f64) { ++ static const MCPhysReg RegList8[] = { ++ LoongArch::XR0, LoongArch::XR1, LoongArch::XR2, LoongArch::XR3, LoongArch::XR4, LoongArch::XR5, LoongArch::XR6, LoongArch::XR7 ++ }; ++ static const MCPhysReg RegList9[] = { ++ LoongArch::A0_64, LoongArch::A1_64, LoongArch::A2_64, LoongArch::A3_64, LoongArch::A4_64, LoongArch::A5_64, LoongArch::A6_64, LoongArch::A7_64 ++ }; ++ if (unsigned Reg = State.AllocateReg(RegList8, RegList9)) { ++ State.addLoc(CCValAssign::getReg(ValNo, ValVT, Reg, LocVT, LocInfo)); ++ return false; ++ } ++ } ++ } ++ ++ if (LocVT == MVT::f32) { ++ unsigned Offset10 = State.AllocateStack(4, 8); ++ State.addLoc(CCValAssign::getMem(ValNo, ValVT, Offset10, LocVT, LocInfo)); ++ return false; ++ } ++ ++ if (LocVT == MVT::i64 || ++ LocVT == MVT::f64) { ++ unsigned Offset11 = State.AllocateStack(8, 8); ++ State.addLoc(CCValAssign::getMem(ValNo, ValVT, Offset11, LocVT, LocInfo)); ++ return false; ++ } ++ ++ if (LocVT == MVT::v16i8 || ++ LocVT == MVT::v8i16 || ++ LocVT == MVT::v4i32 || ++ LocVT == MVT::v2i64 || ++ LocVT == MVT::v4f32 || ++ LocVT == MVT::v2f64) { ++ unsigned Offset12 = State.AllocateStack(16, 16); ++ State.addLoc(CCValAssign::getMem(ValNo, ValVT, Offset12, LocVT, LocInfo)); ++ return false; ++ } ++ ++ if (LocVT == MVT::v32i8 || ++ LocVT == MVT::v16i16 || ++ LocVT == MVT::v8i32 || ++ LocVT == MVT::v4i64 || ++ LocVT == MVT::v8f32 || ++ LocVT == MVT::v4f64) { ++ unsigned Offset13 = State.AllocateStack(32, 32); ++ State.addLoc(CCValAssign::getMem(ValNo, ValVT, Offset13, LocVT, LocInfo)); ++ return false; ++ } ++ ++ return true; // CC didn't match. ++} ++ ++ ++static bool CC_LoongArchLP64LPX32_SoftFloat(unsigned ValNo, MVT ValVT, ++ MVT LocVT, CCValAssign::LocInfo LocInfo, ++ ISD::ArgFlagsTy ArgFlags, CCState &State) { ++ ++ static const MCPhysReg RegList1[] = { ++ LoongArch::A0, LoongArch::A1, LoongArch::A2, LoongArch::A3, LoongArch::A4, LoongArch::A5, LoongArch::A6, LoongArch::A7 ++ }; ++ if (unsigned Reg = State.AllocateReg(RegList1)) { ++ State.addLoc(CCValAssign::getReg(ValNo, ValVT, Reg, LocVT, LocInfo)); ++ return false; ++ } ++ ++ unsigned Offset2 = State.AllocateStack(4, 8); ++ State.addLoc(CCValAssign::getMem(ValNo, ValVT, Offset2, LocVT, LocInfo)); ++ return false; ++ ++ return true; // CC didn't match. ++} ++ ++ ++static bool CC_LoongArchLP64LPX32_VarArg(unsigned ValNo, MVT ValVT, ++ MVT LocVT, CCValAssign::LocInfo LocInfo, ++ ISD::ArgFlagsTy ArgFlags, CCState &State) { ++ ++ if (LocVT == MVT::i8 || ++ LocVT == MVT::i16 || ++ LocVT == MVT::i32) { ++ LocVT = MVT::i64; ++ if (ArgFlags.isSExt()) ++ LocInfo = CCValAssign::SExt; ++ else if (ArgFlags.isZExt()) ++ LocInfo = CCValAssign::ZExt; ++ else ++ LocInfo = CCValAssign::AExt; ++ } ++ ++ if (LocVT == MVT::f32) { ++ static const MCPhysReg RegList1[] = { ++ LoongArch::A0, LoongArch::A1, LoongArch::A2, LoongArch::A3, LoongArch::A4, LoongArch::A5, LoongArch::A6, LoongArch::A7 ++ }; ++ if (unsigned Reg = State.AllocateReg(RegList1)) { ++ State.addLoc(CCValAssign::getReg(ValNo, ValVT, Reg, LocVT, LocInfo)); ++ return false; ++ } ++ } ++ ++ if (LocVT == MVT::i64) { ++ if (static_cast(&State)->WasOriginalArgF128(ValNo)) { ++ if (!CC_LoongArch_F128(ValNo, ValVT, LocVT, LocInfo, ArgFlags, State)) ++ return false; ++ } ++ } ++ ++ if (LocVT == MVT::i64 || ++ LocVT == MVT::f64) { ++ static const MCPhysReg RegList2[] = { ++ LoongArch::A0_64, LoongArch::A1_64, LoongArch::A2_64, LoongArch::A3_64, LoongArch::A4_64, LoongArch::A5_64, LoongArch::A6_64, LoongArch::A7_64 ++ }; ++ if (unsigned Reg = State.AllocateReg(RegList2)) { ++ State.addLoc(CCValAssign::getReg(ValNo, ValVT, Reg, LocVT, LocInfo)); ++ return false; ++ } ++ } ++ ++ if (LocVT == MVT::f32) { ++ unsigned Offset3 = State.AllocateStack(4, 8); ++ State.addLoc(CCValAssign::getMem(ValNo, ValVT, Offset3, LocVT, LocInfo)); ++ return false; ++ } ++ ++ if (LocVT == MVT::i64 || ++ LocVT == MVT::f64) { ++ unsigned Offset4 = State.AllocateStack(8, 8); ++ State.addLoc(CCValAssign::getMem(ValNo, ValVT, Offset4, LocVT, LocInfo)); ++ return false; ++ } ++ ++ return true; // CC didn't match. ++} ++ ++ ++static bool CC_LoongArch_ByVal(unsigned ValNo, MVT ValVT, ++ MVT LocVT, CCValAssign::LocInfo LocInfo, ++ ISD::ArgFlagsTy ArgFlags, CCState &State) { ++ ++ if (static_cast(State.getMachineFunction().getSubtarget()).isABI_LP32()) { ++ if (ArgFlags.isByVal()) { ++ State.HandleByVal(ValNo, ValVT, LocVT, LocInfo, 4, 4, ArgFlags); ++ return false; ++ } ++ } ++ ++ if (ArgFlags.isByVal()) { ++ State.HandleByVal(ValNo, ValVT, LocVT, LocInfo, 8, 8, ArgFlags); ++ return false; ++ } ++ ++ return true; // CC didn't match. ++} ++ ++ ++static bool CC_LoongArch_FixedArg(unsigned ValNo, MVT ValVT, ++ MVT LocVT, CCValAssign::LocInfo LocInfo, ++ ISD::ArgFlagsTy ArgFlags, CCState &State) { ++ ++ if (ArgFlags.isByVal()) { ++ if (!CC_LoongArch_ByVal(ValNo, ValVT, LocVT, LocInfo, ArgFlags, State)) ++ return false; ++ } ++ ++ if (LocVT == MVT::i64) { ++ if (!static_cast(State.getMachineFunction().getSubtarget()).useSoftFloat()) { ++ if (static_cast(&State)->WasOriginalArgF128(ValNo)) { ++ LocVT = MVT::i64; ++ LocInfo = CCValAssign::BCvt; ++ } ++ } ++ } ++ ++ if (static_cast(State.getMachineFunction().getSubtarget()).isABI_LP32()) { ++ if (!CC_LoongArchLP32_FP(ValNo, ValVT, LocVT, LocInfo, ArgFlags, State)) ++ return false; ++ } ++ ++ if (!CC_LoongArchLP64LPX32(ValNo, ValVT, LocVT, LocInfo, ArgFlags, State)) ++ return false; ++ ++ return true; // CC didn't match. ++} ++ ++ ++static bool CC_LoongArch_VarArg(unsigned ValNo, MVT ValVT, ++ MVT LocVT, CCValAssign::LocInfo LocInfo, ++ ISD::ArgFlagsTy ArgFlags, CCState &State) { ++ ++ if (ArgFlags.isByVal()) { ++ if (!CC_LoongArch_ByVal(ValNo, ValVT, LocVT, LocInfo, ArgFlags, State)) ++ return false; ++ } ++ ++ if (static_cast(State.getMachineFunction().getSubtarget()).isABI_LP32()) { ++ if (!CC_LoongArchLP32_FP(ValNo, ValVT, LocVT, LocInfo, ArgFlags, State)) ++ return false; ++ } ++ ++ if (!CC_LoongArchLP64LPX32_VarArg(ValNo, ValVT, LocVT, LocInfo, ArgFlags, State)) ++ return false; ++ ++ return true; // CC didn't match. ++} ++ ++ ++static bool RetCC_F128(unsigned ValNo, MVT ValVT, ++ MVT LocVT, CCValAssign::LocInfo LocInfo, ++ ISD::ArgFlagsTy ArgFlags, CCState &State) { ++ ++ if (static_cast(State.getMachineFunction().getSubtarget()).useSoftFloat()) { ++ if (LocVT == MVT::i64) { ++ if (!RetCC_F128SoftFloat(ValNo, ValVT, LocVT, LocInfo, ArgFlags, State)) ++ return false; ++ } ++ } ++ ++ if (!static_cast(State.getMachineFunction().getSubtarget()).useSoftFloat()) { ++ if (LocVT == MVT::i64) { ++ if (!RetCC_F128HardFloat(ValNo, ValVT, LocVT, LocInfo, ArgFlags, State)) ++ return false; ++ } ++ } ++ ++ return true; // CC didn't match. ++} ++ ++ ++static bool RetCC_F128HardFloat(unsigned ValNo, MVT ValVT, ++ MVT LocVT, CCValAssign::LocInfo LocInfo, ++ ISD::ArgFlagsTy ArgFlags, CCState &State) { ++ ++ if (ArgFlags.isInReg()) { ++ static const MCPhysReg RegList1[] = { ++ LoongArch::A0_64, LoongArch::A1_64 ++ }; ++ if (unsigned Reg = State.AllocateReg(RegList1)) { ++ State.addLoc(CCValAssign::getReg(ValNo, ValVT, Reg, LocVT, LocInfo)); ++ return false; ++ } ++ } ++ ++ static const MCPhysReg RegList2[] = { ++ LoongArch::A0_64, LoongArch::A1_64 ++ }; ++ if (unsigned Reg = State.AllocateReg(RegList2)) { ++ State.addLoc(CCValAssign::getReg(ValNo, ValVT, Reg, LocVT, LocInfo)); ++ return false; ++ } ++ ++ return true; // CC didn't match. ++} ++ ++ ++static bool RetCC_F128SoftFloat(unsigned ValNo, MVT ValVT, ++ MVT LocVT, CCValAssign::LocInfo LocInfo, ++ ISD::ArgFlagsTy ArgFlags, CCState &State) { ++ ++ static const MCPhysReg RegList1[] = { ++ LoongArch::A0_64, LoongArch::A1_64 ++ }; ++ if (unsigned Reg = State.AllocateReg(RegList1)) { ++ State.addLoc(CCValAssign::getReg(ValNo, ValVT, Reg, LocVT, LocInfo)); ++ return false; ++ } ++ ++ return true; // CC didn't match. ++} ++ ++ ++static bool RetCC_LoongArch(unsigned ValNo, MVT ValVT, ++ MVT LocVT, CCValAssign::LocInfo LocInfo, ++ ISD::ArgFlagsTy ArgFlags, CCState &State) { ++ ++ if (static_cast(State.getMachineFunction().getSubtarget()).isABI_LPX32()) { ++ if (!RetCC_LoongArchLP64LPX32(ValNo, ValVT, LocVT, LocInfo, ArgFlags, State)) ++ return false; ++ } ++ ++ if (static_cast(State.getMachineFunction().getSubtarget()).isABI_LP64()) { ++ if (!RetCC_LoongArchLP64LPX32(ValNo, ValVT, LocVT, LocInfo, ArgFlags, State)) ++ return false; ++ } ++ ++ if (!RetCC_LoongArchLP32(ValNo, ValVT, LocVT, LocInfo, ArgFlags, State)) ++ return false; ++ ++ return true; // CC didn't match. ++} ++ ++ ++static bool RetCC_LoongArchLP32(unsigned ValNo, MVT ValVT, ++ MVT LocVT, CCValAssign::LocInfo LocInfo, ++ ISD::ArgFlagsTy ArgFlags, CCState &State) { ++ ++ if (LocVT == MVT::i1 || ++ LocVT == MVT::i8 || ++ LocVT == MVT::i16) { ++ LocVT = MVT::i32; ++ if (ArgFlags.isSExt()) ++ LocInfo = CCValAssign::SExt; ++ else if (ArgFlags.isZExt()) ++ LocInfo = CCValAssign::ZExt; ++ else ++ LocInfo = CCValAssign::AExt; ++ } ++ ++ if (!static_cast(&State)->WasOriginalRetVectorFloat(ValNo)) { ++ if (LocVT == MVT::i32) { ++ static const MCPhysReg RegList1[] = { ++ LoongArch::A0, LoongArch::A1 ++ }; ++ if (unsigned Reg = State.AllocateReg(RegList1)) { ++ State.addLoc(CCValAssign::getReg(ValNo, ValVT, Reg, LocVT, LocInfo)); ++ return false; ++ } ++ } ++ } ++ ++ if (LocVT == MVT::f32) { ++ static const MCPhysReg RegList2[] = { ++ LoongArch::F0, LoongArch::F1 ++ }; ++ if (unsigned Reg = State.AllocateReg(RegList2)) { ++ State.addLoc(CCValAssign::getReg(ValNo, ValVT, Reg, LocVT, LocInfo)); ++ return false; ++ } ++ } ++ ++ if (LocVT == MVT::f64) { ++ if (static_cast(State.getMachineFunction().getSubtarget()).isFP64bit()) { ++ static const MCPhysReg RegList3[] = { ++ LoongArch::F0_64, LoongArch::F1_64 ++ }; ++ if (unsigned Reg = State.AllocateReg(RegList3)) { ++ State.addLoc(CCValAssign::getReg(ValNo, ValVT, Reg, LocVT, LocInfo)); ++ return false; ++ } ++ } ++ } ++ ++ return true; // CC didn't match. ++} ++ ++ ++static bool RetCC_LoongArchLP64LPX32(unsigned ValNo, MVT ValVT, ++ MVT LocVT, CCValAssign::LocInfo LocInfo, ++ ISD::ArgFlagsTy ArgFlags, CCState &State) { ++ ++ if (LocVT == MVT::i64) { ++ if (static_cast(&State)->WasOriginalArgF128(ValNo)) { ++ if (!RetCC_F128(ValNo, ValVT, LocVT, LocInfo, ArgFlags, State)) ++ return false; ++ } ++ } ++ ++ if (LocVT == MVT::i8 || ++ LocVT == MVT::i16 || ++ LocVT == MVT::i32 || ++ LocVT == MVT::i64) { ++ if (ArgFlags.isInReg()) { ++ LocVT = MVT::i64; ++ if (ArgFlags.isSExt()) ++ LocInfo = CCValAssign::SExt; ++ else if (ArgFlags.isZExt()) ++ LocInfo = CCValAssign::ZExt; ++ else ++ LocInfo = CCValAssign::AExt; ++ } ++ } ++ ++ if (LocVT == MVT::i64) { ++ static const MCPhysReg RegList1[] = { ++ LoongArch::A0_64, LoongArch::A1_64 ++ }; ++ if (unsigned Reg = State.AllocateReg(RegList1)) { ++ State.addLoc(CCValAssign::getReg(ValNo, ValVT, Reg, LocVT, LocInfo)); ++ return false; ++ } ++ } ++ ++ if (static_cast(State.getMachineFunction().getSubtarget()).hasLSX()) { ++ if (LocVT == MVT::v16i8 || ++ LocVT == MVT::v8i16 || ++ LocVT == MVT::v4i32 || ++ LocVT == MVT::v2i64 || ++ LocVT == MVT::v4f32 || ++ LocVT == MVT::v2f64) { ++ if (unsigned Reg = State.AllocateReg(LoongArch::VR0)) { ++ State.addLoc(CCValAssign::getReg(ValNo, ValVT, Reg, LocVT, LocInfo)); ++ return false; ++ } ++ } ++ } ++ ++ if (static_cast(State.getMachineFunction().getSubtarget()).hasLASX()) { ++ if (LocVT == MVT::v32i8 || ++ LocVT == MVT::v16i16 || ++ LocVT == MVT::v8i32 || ++ LocVT == MVT::v4i64 || ++ LocVT == MVT::v8f32 || ++ LocVT == MVT::v4f64) { ++ if (unsigned Reg = State.AllocateReg(LoongArch::XR0)) { ++ State.addLoc(CCValAssign::getReg(ValNo, ValVT, Reg, LocVT, LocInfo)); ++ return false; ++ } ++ } ++ } ++ ++ if (static_cast(State.getMachineFunction().getSubtarget()).hasLASX()) { ++ if (LocVT == MVT::i64) { ++ static const MCPhysReg RegList2[] = { ++ LoongArch::A0_64, LoongArch::A1_64 ++ }; ++ if (unsigned Reg = State.AllocateReg(RegList2)) { ++ State.addLoc(CCValAssign::getReg(ValNo, ValVT, Reg, LocVT, LocInfo)); ++ return false; ++ } ++ } ++ } ++ ++ if (LocVT == MVT::f32) { ++ static const MCPhysReg RegList3[] = { ++ LoongArch::F0, LoongArch::F1 ++ }; ++ if (unsigned Reg = State.AllocateReg(RegList3)) { ++ State.addLoc(CCValAssign::getReg(ValNo, ValVT, Reg, LocVT, LocInfo)); ++ return false; ++ } ++ } ++ ++ if (LocVT == MVT::f64) { ++ static const MCPhysReg RegList4[] = { ++ LoongArch::F0_64, LoongArch::F1_64 ++ }; ++ if (unsigned Reg = State.AllocateReg(RegList4)) { ++ State.addLoc(CCValAssign::getReg(ValNo, ValVT, Reg, LocVT, LocInfo)); ++ return false; ++ } ++ } ++ ++ return true; // CC didn't match. ++} +diff --git a/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenCallingConv.inc.d b/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenCallingConv.inc.d +new file mode 100644 +index 00000000000..4de0da44bc7 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenCallingConv.inc.d +@@ -0,0 +1 @@ ++lib/Target/LoongArch/LoongArchGenCallingConv.inc: /mnt/wangqing/work/llvm-project/llvm/include/llvm/CodeGen/SDNodeProperties.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/CodeGen/ValueTypes.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/Intrinsics.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsAArch64.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsAMDGPU.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsARM.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsBPF.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsHexagon.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsLoongArch.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsMips.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsNVVM.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsPowerPC.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsRISCV.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsSystemZ.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsWebAssembly.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsX86.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsXCore.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/GenericOpcodes.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/GlobalISel/RegisterBank.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/GlobalISel/SelectionDAGCompat.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/GlobalISel/Target.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/Target.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetCallingConv.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetInstrPredicate.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetItinerary.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetPfmCounters.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetSchedule.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetSelectionDAG.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArch32InstrInfo.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchCallingConv.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchInstrFormats.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchInstrInfo.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchInstrInfoF.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchLASXInstrFormats.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchLASXInstrInfo.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchLSXInstrFormats.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchLSXInstrInfo.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchRegisterInfo.td +diff --git a/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenDAGISel.inc b/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenDAGISel.inc +new file mode 100644 +index 00000000000..dae825714bd +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenDAGISel.inc +@@ -0,0 +1,333924 @@ ++/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\ ++|* *| ++|* DAG Instruction Selector for the LoongArch target *| ++|* *| ++|* Automatically generated file, do not edit! *| ++|* *| ++\*===----------------------------------------------------------------------===*/ ++ ++// *** NOTE: This file is #included into the middle of the target ++// *** instruction selector class. These functions are really methods. ++ ++// If GET_DAGISEL_DECL is #defined with any value, only function ++// declarations will be included when this file is included. ++// If GET_DAGISEL_BODY is #defined, its value should be the name of ++// the instruction selector class. Function bodies will be emitted ++// and each function's name will be qualified with the name of the ++// class. ++// ++// When neither of the GET_DAGISEL* macros is defined, the functions ++// are emitted inline. ++ ++#if defined(GET_DAGISEL_DECL) && defined(GET_DAGISEL_BODY) ++#error GET_DAGISEL_DECL and GET_DAGISEL_BODY cannot be both defined, undef both for inline definitions ++#endif ++ ++#ifdef GET_DAGISEL_BODY ++#define LOCAL_DAGISEL_STRINGIZE(X) LOCAL_DAGISEL_STRINGIZE_(X) ++#define LOCAL_DAGISEL_STRINGIZE_(X) #X ++static_assert(sizeof(LOCAL_DAGISEL_STRINGIZE(GET_DAGISEL_BODY)) > 1, ++ "GET_DAGISEL_BODY is empty: it should be defined with the class name"); ++#undef LOCAL_DAGISEL_STRINGIZE_ ++#undef LOCAL_DAGISEL_STRINGIZE ++#endif ++ ++#if !defined(GET_DAGISEL_DECL) && !defined(GET_DAGISEL_BODY) ++#define DAGISEL_INLINE 1 ++#else ++#define DAGISEL_INLINE 0 ++#endif ++ ++#if !DAGISEL_INLINE ++#define DAGISEL_CLASS_COLONCOLON GET_DAGISEL_BODY :: ++#else ++#define DAGISEL_CLASS_COLONCOLON ++#endif ++ ++#ifdef GET_DAGISEL_DECL ++void SelectCode(SDNode *N); ++#endif ++#if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE ++void DAGISEL_CLASS_COLONCOLON SelectCode(SDNode *N) ++{ ++ // Some target values are emitted as 2 bytes, TARGET_VAL handles ++ // this. ++ #define TARGET_VAL(X) X & 255, unsigned(X) >> 8 ++ static const unsigned char MatcherTable[] = { ++/* 0*/ OPC_SwitchOpcode /*130 cases */, 34|128,9/*1186*/, TARGET_VAL(ISD::LOAD),// ->1191 ++/* 5*/ OPC_RecordMemRef, ++/* 6*/ OPC_RecordNode, // #0 = 'ld' chained node ++/* 7*/ OPC_Scope, 5|128,2/*261*/, /*->271*/ // 7 children in Scope ++/* 10*/ OPC_RecordChild1, // #1 = $a ++/* 11*/ OPC_CheckPredicate, 0, // Predicate_unindexedload ++/* 13*/ OPC_SwitchType /*2 cases */, 21|128,1/*149*/, MVT::i64,// ->166 ++/* 17*/ OPC_Scope, 49, /*->68*/ // 5 children in Scope ++/* 19*/ OPC_CheckPredicate, 1, // Predicate_sextload ++/* 21*/ OPC_Scope, 14, /*->37*/ // 3 children in Scope ++/* 23*/ OPC_CheckPredicate, 2, // Predicate_sextloadi8 ++/* 25*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddrRegImm:$a #2 #3 ++/* 28*/ OPC_EmitMergeInputChains1_0, ++/* 29*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_B), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i64, 2/*#Ops*/, 2, 3, ++ // Src: (ld:{ *:[i64] } addrRegImm:{ *:[iPTR] }:$a)<><><> - Complexity = 53 ++ // Dst: (LD_B:{ *:[i64] } addrRegImm:{ *:[iPTR] }:$a) ++/* 37*/ /*Scope*/ 14, /*->52*/ ++/* 38*/ OPC_CheckPredicate, 3, // Predicate_sextloadi16 ++/* 40*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddrRegImm:$a #2 #3 ++/* 43*/ OPC_EmitMergeInputChains1_0, ++/* 44*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_H), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i64, 2/*#Ops*/, 2, 3, ++ // Src: (ld:{ *:[i64] } addrRegImm:{ *:[iPTR] }:$a)<><><> - Complexity = 53 ++ // Dst: (LD_H:{ *:[i64] } addrRegImm:{ *:[iPTR] }:$a) ++/* 52*/ /*Scope*/ 14, /*->67*/ ++/* 53*/ OPC_CheckPredicate, 4, // Predicate_sextloadi32 ++/* 55*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddrRegImm:$a #2 #3 ++/* 58*/ OPC_EmitMergeInputChains1_0, ++/* 59*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_W), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i64, 2/*#Ops*/, 2, 3, ++ // Src: (ld:{ *:[i64] } addrRegImm:{ *:[iPTR] }:$a)<><><> - Complexity = 53 ++ // Dst: (LD_W:{ *:[i64] } addrRegImm:{ *:[iPTR] }:$a) ++/* 67*/ 0, /*End of Scope*/ ++/* 68*/ /*Scope*/ 14, /*->83*/ ++/* 69*/ OPC_CheckPredicate, 5, // Predicate_load ++/* 71*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddrRegImm:$a #2 #3 ++/* 74*/ OPC_EmitMergeInputChains1_0, ++/* 75*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_D), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i64, 2/*#Ops*/, 2, 3, ++ // Src: (ld:{ *:[i64] } addrRegImm:{ *:[iPTR] }:$a)<><> - Complexity = 53 ++ // Dst: (LD_D:{ *:[i64] } addrRegImm:{ *:[iPTR] }:$a) ++/* 83*/ /*Scope*/ 49, /*->133*/ ++/* 84*/ OPC_CheckPredicate, 6, // Predicate_zextload ++/* 86*/ OPC_Scope, 14, /*->102*/ // 3 children in Scope ++/* 88*/ OPC_CheckPredicate, 2, // Predicate_zextloadi8 ++/* 90*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddrRegImm:$a #2 #3 ++/* 93*/ OPC_EmitMergeInputChains1_0, ++/* 94*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_BU), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i64, 2/*#Ops*/, 2, 3, ++ // Src: (ld:{ *:[i64] } addrRegImm:{ *:[iPTR] }:$a)<><><> - Complexity = 53 ++ // Dst: (LD_BU:{ *:[i64] } addrRegImm:{ *:[iPTR] }:$a) ++/* 102*/ /*Scope*/ 14, /*->117*/ ++/* 103*/ OPC_CheckPredicate, 3, // Predicate_zextloadi16 ++/* 105*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddrRegImm:$a #2 #3 ++/* 108*/ OPC_EmitMergeInputChains1_0, ++/* 109*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_HU), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i64, 2/*#Ops*/, 2, 3, ++ // Src: (ld:{ *:[i64] } addrRegImm:{ *:[iPTR] }:$a)<><><> - Complexity = 53 ++ // Dst: (LD_HU:{ *:[i64] } addrRegImm:{ *:[iPTR] }:$a) ++/* 117*/ /*Scope*/ 14, /*->132*/ ++/* 118*/ OPC_CheckPredicate, 4, // Predicate_zextloadi32 ++/* 120*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddrRegImm:$a #2 #3 ++/* 123*/ OPC_EmitMergeInputChains1_0, ++/* 124*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_WU), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i64, 2/*#Ops*/, 2, 3, ++ // Src: (ld:{ *:[i64] } addrRegImm:{ *:[iPTR] }:$a)<><><> - Complexity = 53 ++ // Dst: (LD_WU:{ *:[i64] } addrRegImm:{ *:[iPTR] }:$a) ++/* 132*/ 0, /*End of Scope*/ ++/* 133*/ /*Scope*/ 16, /*->150*/ ++/* 134*/ OPC_CheckPredicate, 1, // Predicate_sextload ++/* 136*/ OPC_CheckPredicate, 4, // Predicate_sextloadi32 ++/* 138*/ OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectIntAddrSImm14Lsl2:$a #2 #3 ++/* 141*/ OPC_EmitMergeInputChains1_0, ++/* 142*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LDPTR_W), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i64, 2/*#Ops*/, 2, 3, ++ // Src: (ld:{ *:[i64] } addrimm14lsl2:{ *:[iPTR] }:$a)<><><> - Complexity = 53 ++ // Dst: (LDPTR_W:{ *:[i64] } addrimm14lsl2:{ *:[iPTR] }:$a) ++/* 150*/ /*Scope*/ 14, /*->165*/ ++/* 151*/ OPC_CheckPredicate, 5, // Predicate_load ++/* 153*/ OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectIntAddrSImm14Lsl2:$a #2 #3 ++/* 156*/ OPC_EmitMergeInputChains1_0, ++/* 157*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LDPTR_D), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i64, 2/*#Ops*/, 2, 3, ++ // Src: (ld:{ *:[i64] } addrimm14lsl2:{ *:[iPTR] }:$a)<><> - Complexity = 53 ++ // Dst: (LDPTR_D:{ *:[i64] } addrimm14lsl2:{ *:[iPTR] }:$a) ++/* 165*/ 0, /*End of Scope*/ ++/* 166*/ /*SwitchType*/ 102, MVT::i32,// ->270 ++/* 168*/ OPC_Scope, 34, /*->204*/ // 4 children in Scope ++/* 170*/ OPC_CheckPredicate, 1, // Predicate_sextload ++/* 172*/ OPC_Scope, 14, /*->188*/ // 2 children in Scope ++/* 174*/ OPC_CheckPredicate, 2, // Predicate_sextloadi8 ++/* 176*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddrRegImm:$a #2 #3 ++/* 179*/ OPC_EmitMergeInputChains1_0, ++/* 180*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_B32), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 2, 3, ++ // Src: (ld:{ *:[i32] } addrRegImm:{ *:[iPTR] }:$a)<><><> - Complexity = 53 ++ // Dst: (LD_B32:{ *:[i32] } addrRegImm:{ *:[iPTR] }:$a) ++/* 188*/ /*Scope*/ 14, /*->203*/ ++/* 189*/ OPC_CheckPredicate, 3, // Predicate_sextloadi16 ++/* 191*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddrRegImm:$a #2 #3 ++/* 194*/ OPC_EmitMergeInputChains1_0, ++/* 195*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_H32), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 2, 3, ++ // Src: (ld:{ *:[i32] } addrRegImm:{ *:[iPTR] }:$a)<><><> - Complexity = 53 ++ // Dst: (LD_H32:{ *:[i32] } addrRegImm:{ *:[iPTR] }:$a) ++/* 203*/ 0, /*End of Scope*/ ++/* 204*/ /*Scope*/ 14, /*->219*/ ++/* 205*/ OPC_CheckPredicate, 5, // Predicate_load ++/* 207*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddrRegImm:$a #2 #3 ++/* 210*/ OPC_EmitMergeInputChains1_0, ++/* 211*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_W32), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 2, 3, ++ // Src: (ld:{ *:[i32] } addrRegImm:{ *:[iPTR] }:$a)<><> - Complexity = 53 ++ // Dst: (LD_W32:{ *:[i32] } addrRegImm:{ *:[iPTR] }:$a) ++/* 219*/ /*Scope*/ 34, /*->254*/ ++/* 220*/ OPC_CheckPredicate, 6, // Predicate_zextload ++/* 222*/ OPC_Scope, 14, /*->238*/ // 2 children in Scope ++/* 224*/ OPC_CheckPredicate, 2, // Predicate_zextloadi8 ++/* 226*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddrRegImm:$a #2 #3 ++/* 229*/ OPC_EmitMergeInputChains1_0, ++/* 230*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_BU32), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 2, 3, ++ // Src: (ld:{ *:[i32] } addrRegImm:{ *:[iPTR] }:$a)<><><> - Complexity = 53 ++ // Dst: (LD_BU32:{ *:[i32] } addrRegImm:{ *:[iPTR] }:$a) ++/* 238*/ /*Scope*/ 14, /*->253*/ ++/* 239*/ OPC_CheckPredicate, 3, // Predicate_zextloadi16 ++/* 241*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddrRegImm:$a #2 #3 ++/* 244*/ OPC_EmitMergeInputChains1_0, ++/* 245*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_HU32), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 2, 3, ++ // Src: (ld:{ *:[i32] } addrRegImm:{ *:[iPTR] }:$a)<><><> - Complexity = 53 ++ // Dst: (LD_HU32:{ *:[i32] } addrRegImm:{ *:[iPTR] }:$a) ++/* 253*/ 0, /*End of Scope*/ ++/* 254*/ /*Scope*/ 14, /*->269*/ ++/* 255*/ OPC_CheckPredicate, 5, // Predicate_load ++/* 257*/ OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectIntAddrSImm14Lsl2:$a #2 #3 ++/* 260*/ OPC_EmitMergeInputChains1_0, ++/* 261*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LDPTR_W32), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 2, 3, ++ // Src: (ld:{ *:[i32] } addrimm14lsl2:{ *:[iPTR] }:$a)<><> - Complexity = 53 ++ // Dst: (LDPTR_W32:{ *:[i32] } addrimm14lsl2:{ *:[iPTR] }:$a) ++/* 269*/ 0, /*End of Scope*/ ++/* 270*/ 0, // EndSwitchType ++/* 271*/ /*Scope*/ 69|128,1/*197*/, /*->470*/ ++/* 273*/ OPC_MoveChild1, ++/* 274*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/* 277*/ OPC_RecordChild0, // #1 = $rj ++/* 278*/ OPC_RecordChild1, // #2 = $rk ++/* 279*/ OPC_MoveParent, ++/* 280*/ OPC_CheckPredicate, 0, // Predicate_unindexedload ++/* 282*/ OPC_SwitchType /*2 cases */, 110, MVT::i64,// ->395 ++/* 285*/ OPC_Scope, 40, /*->327*/ // 5 children in Scope ++/* 287*/ OPC_CheckPredicate, 1, // Predicate_sextload ++/* 289*/ OPC_Scope, 11, /*->302*/ // 3 children in Scope ++/* 291*/ OPC_CheckPredicate, 2, // Predicate_sextloadi8 ++/* 293*/ OPC_EmitMergeInputChains1_0, ++/* 294*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LDX_B), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i64, 2/*#Ops*/, 1, 2, ++ // Src: (ld:{ *:[i64] } (add:{ *:[iPTR] } iPTR:{ *:[iPTR] }:$rj, iPTR:{ *:[iPTR] }:$rk))<><><> - Complexity = 27 ++ // Dst: (LDX_B:{ *:[i64] } iPTR:{ *:[iPTR] }:$rj, iPTR:{ *:[iPTR] }:$rk) ++/* 302*/ /*Scope*/ 11, /*->314*/ ++/* 303*/ OPC_CheckPredicate, 3, // Predicate_sextloadi16 ++/* 305*/ OPC_EmitMergeInputChains1_0, ++/* 306*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LDX_H), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i64, 2/*#Ops*/, 1, 2, ++ // Src: (ld:{ *:[i64] } (add:{ *:[iPTR] } iPTR:{ *:[iPTR] }:$rj, iPTR:{ *:[iPTR] }:$rk))<><><> - Complexity = 27 ++ // Dst: (LDX_H:{ *:[i64] } iPTR:{ *:[iPTR] }:$rj, iPTR:{ *:[iPTR] }:$rk) ++/* 314*/ /*Scope*/ 11, /*->326*/ ++/* 315*/ OPC_CheckPredicate, 4, // Predicate_sextloadi32 ++/* 317*/ OPC_EmitMergeInputChains1_0, ++/* 318*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LDX_W), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i64, 2/*#Ops*/, 1, 2, ++ // Src: (ld:{ *:[i64] } (add:{ *:[iPTR] } iPTR:{ *:[iPTR] }:$rj, iPTR:{ *:[iPTR] }:$rk))<><><> - Complexity = 27 ++ // Dst: (LDX_W:{ *:[i64] } iPTR:{ *:[iPTR] }:$rj, iPTR:{ *:[iPTR] }:$rk) ++/* 326*/ 0, /*End of Scope*/ ++/* 327*/ /*Scope*/ 11, /*->339*/ ++/* 328*/ OPC_CheckPredicate, 5, // Predicate_load ++/* 330*/ OPC_EmitMergeInputChains1_0, ++/* 331*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LDX_D), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i64, 2/*#Ops*/, 1, 2, ++ // Src: (ld:{ *:[i64] } (add:{ *:[iPTR] } iPTR:{ *:[iPTR] }:$rj, iPTR:{ *:[iPTR] }:$rk))<><> - Complexity = 27 ++ // Dst: (LDX_D:{ *:[i64] } iPTR:{ *:[iPTR] }:$rj, iPTR:{ *:[iPTR] }:$rk) ++/* 339*/ /*Scope*/ 28, /*->368*/ ++/* 340*/ OPC_CheckPredicate, 7, // Predicate_extload ++/* 342*/ OPC_Scope, 11, /*->355*/ // 2 children in Scope ++/* 344*/ OPC_CheckPredicate, 2, // Predicate_extloadi8 ++/* 346*/ OPC_EmitMergeInputChains1_0, ++/* 347*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LDX_BU), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i64, 2/*#Ops*/, 1, 2, ++ // Src: (ld:{ *:[i64] } (add:{ *:[iPTR] } iPTR:{ *:[iPTR] }:$rj, iPTR:{ *:[iPTR] }:$rk))<><><> - Complexity = 27 ++ // Dst: (LDX_BU:{ *:[i64] } iPTR:{ *:[iPTR] }:$rj, iPTR:{ *:[iPTR] }:$rk) ++/* 355*/ /*Scope*/ 11, /*->367*/ ++/* 356*/ OPC_CheckPredicate, 3, // Predicate_extloadi16 ++/* 358*/ OPC_EmitMergeInputChains1_0, ++/* 359*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LDX_HU), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i64, 2/*#Ops*/, 1, 2, ++ // Src: (ld:{ *:[i64] } (add:{ *:[iPTR] } iPTR:{ *:[iPTR] }:$rj, iPTR:{ *:[iPTR] }:$rk))<><><> - Complexity = 27 ++ // Dst: (LDX_HU:{ *:[i64] } iPTR:{ *:[iPTR] }:$rj, iPTR:{ *:[iPTR] }:$rk) ++/* 367*/ 0, /*End of Scope*/ ++/* 368*/ /*Scope*/ 13, /*->382*/ ++/* 369*/ OPC_CheckPredicate, 6, // Predicate_zextload ++/* 371*/ OPC_CheckPredicate, 4, // Predicate_zextloadi32 ++/* 373*/ OPC_EmitMergeInputChains1_0, ++/* 374*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LDX_WU), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i64, 2/*#Ops*/, 1, 2, ++ // Src: (ld:{ *:[i64] } (add:{ *:[iPTR] } iPTR:{ *:[iPTR] }:$rj, iPTR:{ *:[iPTR] }:$rk))<><><> - Complexity = 27 ++ // Dst: (LDX_WU:{ *:[i64] } iPTR:{ *:[iPTR] }:$rj, iPTR:{ *:[iPTR] }:$rk) ++/* 382*/ /*Scope*/ 11, /*->394*/ ++/* 383*/ OPC_CheckPredicate, 5, // Predicate_load ++/* 385*/ OPC_EmitMergeInputChains1_0, ++/* 386*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LDX_D_rrr), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i64, 2/*#Ops*/, 1, 2, ++ // Src: (ld:{ *:[i64] } (add:{ *:[iPTR] } iPTR:{ *:[iPTR] }:$rj, iPTR:{ *:[iPTR] }:$rk))<><> - Complexity = 27 ++ // Dst: (LDX_D_rrr:{ *:[i64] } iPTR:{ *:[iPTR] }:$rj, iPTR:{ *:[iPTR] }:$rk) ++/* 394*/ 0, /*End of Scope*/ ++/* 395*/ /*SwitchType*/ 72, MVT::i32,// ->469 ++/* 397*/ OPC_Scope, 11, /*->410*/ // 3 children in Scope ++/* 399*/ OPC_CheckPredicate, 5, // Predicate_load ++/* 401*/ OPC_EmitMergeInputChains1_0, ++/* 402*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LDX_W32), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 1, 2, ++ // Src: (ld:{ *:[i32] } (add:{ *:[iPTR] } iPTR:{ *:[iPTR] }:$rj, iPTR:{ *:[iPTR] }:$rk))<><> - Complexity = 27 ++ // Dst: (LDX_W32:{ *:[i32] } iPTR:{ *:[iPTR] }:$rj, iPTR:{ *:[iPTR] }:$rk) ++/* 410*/ /*Scope*/ 28, /*->439*/ ++/* 411*/ OPC_CheckPredicate, 7, // Predicate_extload ++/* 413*/ OPC_Scope, 11, /*->426*/ // 2 children in Scope ++/* 415*/ OPC_CheckPredicate, 3, // Predicate_extloadi16 ++/* 417*/ OPC_EmitMergeInputChains1_0, ++/* 418*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LDX_HU32), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 1, 2, ++ // Src: (ld:{ *:[i32] } (add:{ *:[iPTR] } iPTR:{ *:[iPTR] }:$rj, iPTR:{ *:[iPTR] }:$rk))<><><> - Complexity = 27 ++ // Dst: (LDX_HU32:{ *:[i32] } iPTR:{ *:[iPTR] }:$rj, iPTR:{ *:[iPTR] }:$rk) ++/* 426*/ /*Scope*/ 11, /*->438*/ ++/* 427*/ OPC_CheckPredicate, 2, // Predicate_extloadi8 ++/* 429*/ OPC_EmitMergeInputChains1_0, ++/* 430*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LDX_BU32), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 1, 2, ++ // Src: (ld:{ *:[i32] } (add:{ *:[iPTR] } iPTR:{ *:[iPTR] }:$rj, iPTR:{ *:[iPTR] }:$rk))<><><> - Complexity = 27 ++ // Dst: (LDX_BU32:{ *:[i32] } iPTR:{ *:[iPTR] }:$rj, iPTR:{ *:[iPTR] }:$rk) ++/* 438*/ 0, /*End of Scope*/ ++/* 439*/ /*Scope*/ 28, /*->468*/ ++/* 440*/ OPC_CheckPredicate, 1, // Predicate_sextload ++/* 442*/ OPC_Scope, 11, /*->455*/ // 2 children in Scope ++/* 444*/ OPC_CheckPredicate, 3, // Predicate_sextloadi16 ++/* 446*/ OPC_EmitMergeInputChains1_0, ++/* 447*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LDX_H32), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 1, 2, ++ // Src: (ld:{ *:[i32] } (add:{ *:[iPTR] } iPTR:{ *:[iPTR] }:$rj, iPTR:{ *:[iPTR] }:$rk))<><><> - Complexity = 27 ++ // Dst: (LDX_H32:{ *:[i32] } iPTR:{ *:[iPTR] }:$rj, iPTR:{ *:[iPTR] }:$rk) ++/* 455*/ /*Scope*/ 11, /*->467*/ ++/* 456*/ OPC_CheckPredicate, 2, // Predicate_sextloadi8 ++/* 458*/ OPC_EmitMergeInputChains1_0, ++/* 459*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LDX_B32), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 1, 2, ++ // Src: (ld:{ *:[i32] } (add:{ *:[iPTR] } iPTR:{ *:[iPTR] }:$rj, iPTR:{ *:[iPTR] }:$rk))<><><> - Complexity = 27 ++ // Dst: (LDX_B32:{ *:[i32] } iPTR:{ *:[iPTR] }:$rj, iPTR:{ *:[iPTR] }:$rk) ++/* 467*/ 0, /*End of Scope*/ ++/* 468*/ 0, /*End of Scope*/ ++/* 469*/ 0, // EndSwitchType ++/* 470*/ /*Scope*/ 7|128,3/*391*/, /*->863*/ ++/* 472*/ OPC_RecordChild1, // #1 = $addr ++/* 473*/ OPC_CheckPredicate, 0, // Predicate_unindexedload ++/* 475*/ OPC_Scope, 51, /*->528*/ // 9 children in Scope ++/* 477*/ OPC_CheckPredicate, 1, // Predicate_sextload ++/* 479*/ OPC_CheckType, MVT::i64, ++/* 481*/ OPC_Scope, 14, /*->497*/ // 3 children in Scope ++/* 483*/ OPC_CheckPredicate, 2, // Predicate_sextloadi8 ++/* 485*/ OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectIntAddr:$addr #2 #3 ++/* 488*/ OPC_EmitMergeInputChains1_0, ++/* 489*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_B), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i64, 2/*#Ops*/, 2, 3, ++ // Src: (ld:{ *:[i64] } addr:{ *:[iPTR] }:$addr)<><><> - Complexity = 13 ++ // Dst: (LD_B:{ *:[i64] } addr:{ *:[iPTR] }:$addr) ++/* 497*/ /*Scope*/ 14, /*->512*/ ++/* 498*/ OPC_CheckPredicate, 3, // Predicate_sextloadi16 ++/* 500*/ OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectIntAddr:$addr #2 #3 ++/* 503*/ OPC_EmitMergeInputChains1_0, ++/* 504*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_H), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i64, 2/*#Ops*/, 2, 3, ++ // Src: (ld:{ *:[i64] } addr:{ *:[iPTR] }:$addr)<><><> - Complexity = 13 ++ // Dst: (LD_H:{ *:[i64] } addr:{ *:[iPTR] }:$addr) ++/* 512*/ /*Scope*/ 14, /*->527*/ ++/* 513*/ OPC_CheckPredicate, 4, // Predicate_sextloadi32 ++/* 515*/ OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectIntAddr:$addr #2 #3 ++/* 518*/ OPC_EmitMergeInputChains1_0, ++/* 519*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_W), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i64, 2/*#Ops*/, 2, 3, ++ // Src: (ld:{ *:[i64] } addr:{ *:[iPTR] }:$addr)<><><> - Complexity = 13 ++ // Dst: (LD_W:{ *:[i64] } addr:{ *:[iPTR] }:$addr) ++/* 527*/ 0, /*End of Scope*/ ++/* 528*/ /*Scope*/ 16, /*->545*/ ++/* 529*/ OPC_CheckPredicate, 5, // Predicate_load ++/* 531*/ OPC_CheckType, MVT::i64, ++/* 533*/ OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectIntAddr:$addr #2 #3 ++/* 536*/ OPC_EmitMergeInputChains1_0, ++/* 537*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_D), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i64, 2/*#Ops*/, 2, 3, ++ // Src: (ld:{ *:[i64] } addr:{ *:[iPTR] }:$addr)<><> - Complexity = 13 ++ // Dst: (LD_D:{ *:[i64] } addr:{ *:[iPTR] }:$addr) ++/* 545*/ /*Scope*/ 51, /*->597*/ ++/* 546*/ OPC_CheckPredicate, 6, // Predicate_zextload ++/* 548*/ OPC_CheckType, MVT::i64, ++/* 550*/ OPC_Scope, 14, /*->566*/ // 3 children in Scope ++/* 552*/ OPC_CheckPredicate, 2, // Predicate_zextloadi8 ++/* 554*/ OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectIntAddr:$addr #2 #3 ++/* 557*/ OPC_EmitMergeInputChains1_0, ++/* 558*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_BU), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i64, 2/*#Ops*/, 2, 3, ++ // Src: (ld:{ *:[i64] } addr:{ *:[iPTR] }:$addr)<><><> - Complexity = 13 ++ // Dst: (LD_BU:{ *:[i64] } addr:{ *:[iPTR] }:$addr) ++/* 566*/ /*Scope*/ 14, /*->581*/ ++/* 567*/ OPC_CheckPredicate, 3, // Predicate_zextloadi16 ++/* 569*/ OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectIntAddr:$addr #2 #3 ++/* 572*/ OPC_EmitMergeInputChains1_0, ++/* 573*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_HU), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i64, 2/*#Ops*/, 2, 3, ++ // Src: (ld:{ *:[i64] } addr:{ *:[iPTR] }:$addr)<><><> - Complexity = 13 ++ // Dst: (LD_HU:{ *:[i64] } addr:{ *:[iPTR] }:$addr) ++/* 581*/ /*Scope*/ 14, /*->596*/ ++/* 582*/ OPC_CheckPredicate, 4, // Predicate_zextloadi32 ++/* 584*/ OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectIntAddr:$addr #2 #3 ++/* 587*/ OPC_EmitMergeInputChains1_0, ++/* 588*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_WU), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i64, 2/*#Ops*/, 2, 3, ++ // Src: (ld:{ *:[i64] } addr:{ *:[iPTR] }:$addr)<><><> - Complexity = 13 ++ // Dst: (LD_WU:{ *:[i64] } addr:{ *:[iPTR] }:$addr) ++/* 596*/ 0, /*End of Scope*/ ++/* 597*/ /*Scope*/ 74, /*->672*/ ++/* 598*/ OPC_CheckPredicate, 7, // Predicate_extload ++/* 600*/ OPC_CheckType, MVT::i64, ++/* 602*/ OPC_Scope, 16, /*->620*/ // 4 children in Scope ++/* 604*/ OPC_CheckPredicate, 8, // Predicate_extloadi1 ++/* 606*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/* 608*/ OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectIntAddr:$src #2 #3 ++/* 611*/ OPC_EmitMergeInputChains1_0, ++/* 612*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_B), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i64, 2/*#Ops*/, 2, 3, ++ // Src: (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<><><> - Complexity = 13 ++ // Dst: (LD_B:{ *:[i64] } addr:{ *:[iPTR] }:$src) ++/* 620*/ /*Scope*/ 16, /*->637*/ ++/* 621*/ OPC_CheckPredicate, 2, // Predicate_extloadi8 ++/* 623*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/* 625*/ OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectIntAddr:$src #2 #3 ++/* 628*/ OPC_EmitMergeInputChains1_0, ++/* 629*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_B), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i64, 2/*#Ops*/, 2, 3, ++ // Src: (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<><><> - Complexity = 13 ++ // Dst: (LD_B:{ *:[i64] } addr:{ *:[iPTR] }:$src) ++/* 637*/ /*Scope*/ 16, /*->654*/ ++/* 638*/ OPC_CheckPredicate, 3, // Predicate_extloadi16 ++/* 640*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/* 642*/ OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectIntAddr:$src #2 #3 ++/* 645*/ OPC_EmitMergeInputChains1_0, ++/* 646*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_H), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i64, 2/*#Ops*/, 2, 3, ++ // Src: (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<><><> - Complexity = 13 ++ // Dst: (LD_H:{ *:[i64] } addr:{ *:[iPTR] }:$src) ++/* 654*/ /*Scope*/ 16, /*->671*/ ++/* 655*/ OPC_CheckPredicate, 4, // Predicate_extloadi32 ++/* 657*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/* 659*/ OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectIntAddr:$src #2 #3 ++/* 662*/ OPC_EmitMergeInputChains1_0, ++/* 663*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_W), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i64, 2/*#Ops*/, 2, 3, ++ // Src: (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<><><> - Complexity = 13 ++ // Dst: (LD_W:{ *:[i64] } addr:{ *:[iPTR] }:$src) ++/* 671*/ 0, /*End of Scope*/ ++/* 672*/ /*Scope*/ 36, /*->709*/ ++/* 673*/ OPC_CheckPredicate, 1, // Predicate_sextload ++/* 675*/ OPC_CheckType, MVT::i32, ++/* 677*/ OPC_Scope, 14, /*->693*/ // 2 children in Scope ++/* 679*/ OPC_CheckPredicate, 2, // Predicate_sextloadi8 ++/* 681*/ OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectIntAddr:$addr #2 #3 ++/* 684*/ OPC_EmitMergeInputChains1_0, ++/* 685*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_B32), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 2, 3, ++ // Src: (ld:{ *:[i32] } addr:{ *:[iPTR] }:$addr)<><><> - Complexity = 13 ++ // Dst: (LD_B32:{ *:[i32] } addr:{ *:[iPTR] }:$addr) ++/* 693*/ /*Scope*/ 14, /*->708*/ ++/* 694*/ OPC_CheckPredicate, 3, // Predicate_sextloadi16 ++/* 696*/ OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectAddrDefault:$addr #2 #3 ++/* 699*/ OPC_EmitMergeInputChains1_0, ++/* 700*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_H32), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 2, 3, ++ // Src: (ld:{ *:[i32] } addrDefault:{ *:[iPTR] }:$addr)<><><> - Complexity = 13 ++ // Dst: (LD_H32:{ *:[i32] } addrDefault:{ *:[iPTR] }:$addr) ++/* 708*/ 0, /*End of Scope*/ ++/* 709*/ /*Scope*/ 16, /*->726*/ ++/* 710*/ OPC_CheckPredicate, 5, // Predicate_load ++/* 712*/ OPC_CheckType, MVT::i32, ++/* 714*/ OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectAddrDefault:$addr #2 #3 ++/* 717*/ OPC_EmitMergeInputChains1_0, ++/* 718*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_W32), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 2, 3, ++ // Src: (ld:{ *:[i32] } addrDefault:{ *:[iPTR] }:$addr)<><> - Complexity = 13 ++ // Dst: (LD_W32:{ *:[i32] } addrDefault:{ *:[iPTR] }:$addr) ++/* 726*/ /*Scope*/ 36, /*->763*/ ++/* 727*/ OPC_CheckPredicate, 6, // Predicate_zextload ++/* 729*/ OPC_CheckType, MVT::i32, ++/* 731*/ OPC_Scope, 14, /*->747*/ // 2 children in Scope ++/* 733*/ OPC_CheckPredicate, 2, // Predicate_zextloadi8 ++/* 735*/ OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectAddrDefault:$addr #2 #3 ++/* 738*/ OPC_EmitMergeInputChains1_0, ++/* 739*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_BU32), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 2, 3, ++ // Src: (ld:{ *:[i32] } addrDefault:{ *:[iPTR] }:$addr)<><><> - Complexity = 13 ++ // Dst: (LD_BU32:{ *:[i32] } addrDefault:{ *:[iPTR] }:$addr) ++/* 747*/ /*Scope*/ 14, /*->762*/ ++/* 748*/ OPC_CheckPredicate, 3, // Predicate_zextloadi16 ++/* 750*/ OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectIntAddr:$addr #2 #3 ++/* 753*/ OPC_EmitMergeInputChains1_0, ++/* 754*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_HU32), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 2, 3, ++ // Src: (ld:{ *:[i32] } addr:{ *:[iPTR] }:$addr)<><><> - Complexity = 13 ++ // Dst: (LD_HU32:{ *:[i32] } addr:{ *:[iPTR] }:$addr) ++/* 762*/ 0, /*End of Scope*/ ++/* 763*/ /*Scope*/ 51, /*->815*/ ++/* 764*/ OPC_CheckPredicate, 7, // Predicate_extload ++/* 766*/ OPC_CheckType, MVT::i32, ++/* 768*/ OPC_Scope, 14, /*->784*/ // 3 children in Scope ++/* 770*/ OPC_CheckPredicate, 8, // Predicate_extloadi1 ++/* 772*/ OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectIntAddr:$src #2 #3 ++/* 775*/ OPC_EmitMergeInputChains1_0, ++/* 776*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_BU32), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 2, 3, ++ // Src: (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<><><> - Complexity = 13 ++ // Dst: (LD_BU32:{ *:[i32] } addr:{ *:[iPTR] }:$src) ++/* 784*/ /*Scope*/ 14, /*->799*/ ++/* 785*/ OPC_CheckPredicate, 2, // Predicate_extloadi8 ++/* 787*/ OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectIntAddr:$src #2 #3 ++/* 790*/ OPC_EmitMergeInputChains1_0, ++/* 791*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_BU32), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 2, 3, ++ // Src: (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<><><> - Complexity = 13 ++ // Dst: (LD_BU32:{ *:[i32] } addr:{ *:[iPTR] }:$src) ++/* 799*/ /*Scope*/ 14, /*->814*/ ++/* 800*/ OPC_CheckPredicate, 3, // Predicate_extloadi16 ++/* 802*/ OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectIntAddr:$src #2 #3 ++/* 805*/ OPC_EmitMergeInputChains1_0, ++/* 806*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_HU32), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 2, 3, ++ // Src: (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<><><> - Complexity = 13 ++ // Dst: (LD_HU32:{ *:[i32] } addr:{ *:[iPTR] }:$src) ++/* 814*/ 0, /*End of Scope*/ ++/* 815*/ /*Scope*/ 46, /*->862*/ ++/* 816*/ OPC_CheckPredicate, 5, // Predicate_load ++/* 818*/ OPC_SwitchType /*3 cases */, 12, MVT::i64,// ->833 ++/* 821*/ OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectIntAddr:$addr #2 #3 ++/* 824*/ OPC_EmitMergeInputChains1_0, ++/* 825*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_D_rri), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i64, 2/*#Ops*/, 2, 3, ++ // Src: (ld:{ *:[i64] } addr:{ *:[iPTR] }:$addr)<><> - Complexity = 13 ++ // Dst: (LD_D_rri:{ *:[i64] } addr:{ *:[iPTR] }:$addr) ++/* 833*/ /*SwitchType*/ 12, MVT::f32,// ->847 ++/* 835*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddrRegImm:$a #2 #3 ++/* 838*/ OPC_EmitMergeInputChains1_0, ++/* 839*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FLD_S), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::f32, 2/*#Ops*/, 2, 3, ++ // Src: (ld:{ *:[f32] } addrRegImm:{ *:[iPTR] }:$a)<><> - Complexity = 53 ++ // Dst: (FLD_S:{ *:[f32] } addrRegImm:{ *:[iPTR] }:$a) ++/* 847*/ /*SwitchType*/ 12, MVT::f64,// ->861 ++/* 849*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddrRegImm:$a #2 #3 ++/* 852*/ OPC_EmitMergeInputChains1_0, ++/* 853*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FLD_D), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::f64, 2/*#Ops*/, 2, 3, ++ // Src: (ld:{ *:[f64] } addrRegImm:{ *:[iPTR] }:$a)<><> - Complexity = 53 ++ // Dst: (FLD_D:{ *:[f64] } addrRegImm:{ *:[iPTR] }:$a) ++/* 861*/ 0, // EndSwitchType ++/* 862*/ 0, /*End of Scope*/ ++/* 863*/ /*Scope*/ 35, /*->899*/ ++/* 864*/ OPC_MoveChild1, ++/* 865*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/* 868*/ OPC_RecordChild0, // #1 = $rj ++/* 869*/ OPC_RecordChild1, // #2 = $rk ++/* 870*/ OPC_MoveParent, ++/* 871*/ OPC_CheckPredicate, 0, // Predicate_unindexedload ++/* 873*/ OPC_CheckPredicate, 5, // Predicate_load ++/* 875*/ OPC_SwitchType /*2 cases */, 9, MVT::f32,// ->887 ++/* 878*/ OPC_EmitMergeInputChains1_0, ++/* 879*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FLDX_S), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::f32, 2/*#Ops*/, 1, 2, ++ // Src: (ld:{ *:[f32] } (add:{ *:[iPTR] } iPTR:{ *:[iPTR] }:$rj, iPTR:{ *:[iPTR] }:$rk))<><> - Complexity = 27 ++ // Dst: (FLDX_S:{ *:[f32] } iPTR:{ *:[iPTR] }:$rj, iPTR:{ *:[iPTR] }:$rk) ++/* 887*/ /*SwitchType*/ 9, MVT::f64,// ->898 ++/* 889*/ OPC_EmitMergeInputChains1_0, ++/* 890*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FLDX_D), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::f64, 2/*#Ops*/, 1, 2, ++ // Src: (ld:{ *:[f64] } (add:{ *:[iPTR] } iPTR:{ *:[iPTR] }:$rj, iPTR:{ *:[iPTR] }:$rk))<><> - Complexity = 27 ++ // Dst: (FLDX_D:{ *:[f64] } iPTR:{ *:[iPTR] }:$rj, iPTR:{ *:[iPTR] }:$rk) ++/* 898*/ 0, // EndSwitchType ++/* 899*/ /*Scope*/ 19|128,1/*147*/, /*->1048*/ ++/* 901*/ OPC_RecordChild1, // #1 = $addr ++/* 902*/ OPC_CheckPredicate, 0, // Predicate_unindexedload ++/* 904*/ OPC_CheckPredicate, 5, // Predicate_load ++/* 906*/ OPC_SwitchType /*10 cases */, 12, MVT::f32,// ->921 ++/* 909*/ OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectAddrDefault:$addr #2 #3 ++/* 912*/ OPC_EmitMergeInputChains1_0, ++/* 913*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FLD_S), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::f32, 2/*#Ops*/, 2, 3, ++ // Src: (ld:{ *:[f32] } addrDefault:{ *:[iPTR] }:$addr)<><> - Complexity = 13 ++ // Dst: (FLD_S:{ *:[f32] } addrDefault:{ *:[iPTR] }:$addr) ++/* 921*/ /*SwitchType*/ 12, MVT::f64,// ->935 ++/* 923*/ OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectAddrDefault:$addr #2 #3 ++/* 926*/ OPC_EmitMergeInputChains1_0, ++/* 927*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FLD_D), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::f64, 2/*#Ops*/, 2, 3, ++ // Src: (ld:{ *:[f64] } addrDefault:{ *:[iPTR] }:$addr)<><> - Complexity = 13 ++ // Dst: (FLD_D:{ *:[f64] } addrDefault:{ *:[iPTR] }:$addr) ++/* 935*/ /*SwitchType*/ 12, MVT::v16i8,// ->949 ++/* 937*/ OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectIntAddr:$addr #2 #3 ++/* 940*/ OPC_EmitMergeInputChains1_0, ++/* 941*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VLD), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::v16i8, 2/*#Ops*/, 2, 3, ++ // Src: (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$addr)<><> - Complexity = 13 ++ // Dst: (VLD:{ *:[v16i8] } addr:{ *:[iPTR] }:$addr) ++/* 949*/ /*SwitchType*/ 12, MVT::v8i16,// ->963 ++/* 951*/ OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectIntAddr:$addr #2 #3 ++/* 954*/ OPC_EmitMergeInputChains1_0, ++/* 955*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VLD_H), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::v8i16, 2/*#Ops*/, 2, 3, ++ // Src: (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$addr)<><> - Complexity = 13 ++ // Dst: (VLD_H:{ *:[v8i16] } addr:{ *:[iPTR] }:$addr) ++/* 963*/ /*SwitchType*/ 12, MVT::v4i32,// ->977 ++/* 965*/ OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectIntAddr:$addr #2 #3 ++/* 968*/ OPC_EmitMergeInputChains1_0, ++/* 969*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VLD_W), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::v4i32, 2/*#Ops*/, 2, 3, ++ // Src: (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$addr)<><> - Complexity = 13 ++ // Dst: (VLD_W:{ *:[v4i32] } addr:{ *:[iPTR] }:$addr) ++/* 977*/ /*SwitchType*/ 12, MVT::v2i64,// ->991 ++/* 979*/ OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectIntAddr:$addr #2 #3 ++/* 982*/ OPC_EmitMergeInputChains1_0, ++/* 983*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VLD_D), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::v2i64, 2/*#Ops*/, 2, 3, ++ // Src: (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$addr)<><> - Complexity = 13 ++ // Dst: (VLD_D:{ *:[v2i64] } addr:{ *:[iPTR] }:$addr) ++/* 991*/ /*SwitchType*/ 12, MVT::v32i8,// ->1005 ++/* 993*/ OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectIntAddr:$addr #2 #3 ++/* 996*/ OPC_EmitMergeInputChains1_0, ++/* 997*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVLD), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::v32i8, 2/*#Ops*/, 2, 3, ++ // Src: (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$addr)<><> - Complexity = 13 ++ // Dst: (XVLD:{ *:[v32i8] } addr:{ *:[iPTR] }:$addr) ++/* 1005*/ /*SwitchType*/ 12, MVT::v16i16,// ->1019 ++/* 1007*/ OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectIntAddr:$addr #2 #3 ++/* 1010*/ OPC_EmitMergeInputChains1_0, ++/* 1011*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVLD_H), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::v16i16, 2/*#Ops*/, 2, 3, ++ // Src: (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$addr)<><> - Complexity = 13 ++ // Dst: (XVLD_H:{ *:[v16i16] } addr:{ *:[iPTR] }:$addr) ++/* 1019*/ /*SwitchType*/ 12, MVT::v8i32,// ->1033 ++/* 1021*/ OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectIntAddr:$addr #2 #3 ++/* 1024*/ OPC_EmitMergeInputChains1_0, ++/* 1025*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVLD_W), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::v8i32, 2/*#Ops*/, 2, 3, ++ // Src: (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$addr)<><> - Complexity = 13 ++ // Dst: (XVLD_W:{ *:[v8i32] } addr:{ *:[iPTR] }:$addr) ++/* 1033*/ /*SwitchType*/ 12, MVT::v4i64,// ->1047 ++/* 1035*/ OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectIntAddr:$addr #2 #3 ++/* 1038*/ OPC_EmitMergeInputChains1_0, ++/* 1039*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVLD_D), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::v4i64, 2/*#Ops*/, 2, 3, ++ // Src: (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$addr)<><> - Complexity = 13 ++ // Dst: (XVLD_D:{ *:[v4i64] } addr:{ *:[iPTR] }:$addr) ++/* 1047*/ 0, // EndSwitchType ++/* 1048*/ /*Scope*/ 69, /*->1118*/ ++/* 1049*/ OPC_MoveChild1, ++/* 1050*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/* 1053*/ OPC_RecordChild0, // #1 = $vj ++/* 1054*/ OPC_RecordChild1, // #2 = $vk ++/* 1055*/ OPC_Scope, 20, /*->1077*/ // 3 children in Scope ++/* 1057*/ OPC_CheckType, MVT::i64, ++/* 1059*/ OPC_MoveParent, ++/* 1060*/ OPC_CheckPredicate, 0, // Predicate_unindexedload ++/* 1062*/ OPC_CheckPredicate, 5, // Predicate_load ++/* 1064*/ OPC_CheckType, MVT::v16i8, ++/* 1066*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 1068*/ OPC_EmitMergeInputChains1_0, ++/* 1069*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VLDX), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::v16i8, 2/*#Ops*/, 1, 2, ++ // Src: (ld:{ *:[v16i8] } (add:{ *:[i64] } iPTR:{ *:[i64] }:$vj, GPR64Opnd:{ *:[i64] }:$vk))<><> - Complexity = 7 ++ // Dst: (VLDX:{ *:[v16i8] } PtrRC:{ *:[i64] }:$vj, GPR64Opnd:{ *:[i64] }:$vk) ++/* 1077*/ /*Scope*/ 18, /*->1096*/ ++/* 1078*/ OPC_MoveParent, ++/* 1079*/ OPC_CheckPredicate, 0, // Predicate_unindexedload ++/* 1081*/ OPC_CheckPredicate, 5, // Predicate_load ++/* 1083*/ OPC_CheckType, MVT::v32i8, ++/* 1085*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 1087*/ OPC_EmitMergeInputChains1_0, ++/* 1088*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVLDX), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::v32i8, 2/*#Ops*/, 1, 2, ++ // Src: (ld:{ *:[v32i8] } (add:{ *:[iPTR] } iPTR:{ *:[iPTR] }:$xj, iPTR:{ *:[iPTR] }:$xk))<><> - Complexity = 7 ++ // Dst: (XVLDX:{ *:[v32i8] } PtrRC:{ *:[iPTR] }:$xj, PtrRC:{ *:[i64] }:$xk) ++/* 1096*/ /*Scope*/ 20, /*->1117*/ ++/* 1097*/ OPC_CheckType, MVT::i64, ++/* 1099*/ OPC_MoveParent, ++/* 1100*/ OPC_CheckPredicate, 0, // Predicate_unindexedload ++/* 1102*/ OPC_CheckPredicate, 5, // Predicate_load ++/* 1104*/ OPC_CheckType, MVT::v16i8, ++/* 1106*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 1108*/ OPC_EmitMergeInputChains1_0, ++/* 1109*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VLDX), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::v16i8, 2/*#Ops*/, 2, 1, ++ // Src: (ld:{ *:[v16i8] } (add:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$vk, iPTR:{ *:[i64] }:$vj))<><> - Complexity = 7 ++ // Dst: (VLDX:{ *:[v16i8] } PtrRC:{ *:[i64] }:$vj, GPR64Opnd:{ *:[i64] }:$vk) ++/* 1117*/ 0, /*End of Scope*/ ++/* 1118*/ /*Scope*/ 71, /*->1190*/ ++/* 1119*/ OPC_RecordChild1, // #1 = $addr ++/* 1120*/ OPC_CheckPredicate, 0, // Predicate_unindexedload ++/* 1122*/ OPC_CheckPredicate, 5, // Predicate_load ++/* 1124*/ OPC_SwitchType /*4 cases */, 14, MVT::v4f32,// ->1141 ++/* 1127*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 1129*/ OPC_CheckComplexPat, /*CP*/4, /*#*/1, // selectIntAddrSImm12:$addr #2 #3 ++/* 1132*/ OPC_EmitMergeInputChains1_0, ++/* 1133*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VLD_W), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::v4f32, 2/*#Ops*/, 2, 3, ++ // Src: (ld:{ *:[v4f32] } addrimm12:{ *:[iPTR] }:$addr)<><> - Complexity = 13 ++ // Dst: (VLD_W:{ *:[v4f32] } addrimm12:{ *:[iPTR] }:$addr) ++/* 1141*/ /*SwitchType*/ 14, MVT::v2f64,// ->1157 ++/* 1143*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 1145*/ OPC_CheckComplexPat, /*CP*/4, /*#*/1, // selectIntAddrSImm12:$addr #2 #3 ++/* 1148*/ OPC_EmitMergeInputChains1_0, ++/* 1149*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VLD_D), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::v2f64, 2/*#Ops*/, 2, 3, ++ // Src: (ld:{ *:[v2f64] } addrimm12:{ *:[iPTR] }:$addr)<><> - Complexity = 13 ++ // Dst: (VLD_D:{ *:[v2f64] } addrimm12:{ *:[iPTR] }:$addr) ++/* 1157*/ /*SwitchType*/ 14, MVT::v8f32,// ->1173 ++/* 1159*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 1161*/ OPC_CheckComplexPat, /*CP*/4, /*#*/1, // selectIntAddrSImm12:$addr #2 #3 ++/* 1164*/ OPC_EmitMergeInputChains1_0, ++/* 1165*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVLD_W), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::v8f32, 2/*#Ops*/, 2, 3, ++ // Src: (ld:{ *:[v8f32] } addrimm12:{ *:[iPTR] }:$addr)<><> - Complexity = 13 ++ // Dst: (XVLD_W:{ *:[v8f32] } addrimm12:{ *:[iPTR] }:$addr) ++/* 1173*/ /*SwitchType*/ 14, MVT::v4f64,// ->1189 ++/* 1175*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 1177*/ OPC_CheckComplexPat, /*CP*/4, /*#*/1, // selectIntAddrSImm12:$addr #2 #3 ++/* 1180*/ OPC_EmitMergeInputChains1_0, ++/* 1181*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVLD_D), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::v4f64, 2/*#Ops*/, 2, 3, ++ // Src: (ld:{ *:[v4f64] } addrimm12:{ *:[iPTR] }:$addr)<><> - Complexity = 13 ++ // Dst: (XVLD_D:{ *:[v4f64] } addrimm12:{ *:[iPTR] }:$addr) ++/* 1189*/ 0, // EndSwitchType ++/* 1190*/ 0, /*End of Scope*/ ++/* 1191*/ /*SwitchOpcode*/ 63|128,7/*959*/, TARGET_VAL(ISD::STORE),// ->2154 ++/* 1195*/ OPC_RecordMemRef, ++/* 1196*/ OPC_RecordNode, // #0 = 'st' chained node ++/* 1197*/ OPC_Scope, 12|128,3/*396*/, /*->1596*/ // 4 children in Scope ++/* 1200*/ OPC_RecordChild1, // #1 = $v ++/* 1201*/ OPC_Scope, 44|128,1/*172*/, /*->1376*/ // 4 children in Scope ++/* 1204*/ OPC_CheckChild1Type, MVT::i64, ++/* 1206*/ OPC_Scope, 102, /*->1310*/ // 2 children in Scope ++/* 1208*/ OPC_RecordChild2, // #2 = $a ++/* 1209*/ OPC_CheckPredicate, 9, // Predicate_unindexedstore ++/* 1211*/ OPC_Scope, 49, /*->1262*/ // 4 children in Scope ++/* 1213*/ OPC_CheckPredicate, 10, // Predicate_truncstore ++/* 1215*/ OPC_Scope, 14, /*->1231*/ // 3 children in Scope ++/* 1217*/ OPC_CheckPredicate, 2, // Predicate_truncstorei8 ++/* 1219*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddrRegImm:$a #3 #4 ++/* 1222*/ OPC_EmitMergeInputChains1_0, ++/* 1223*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_B), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 1, 3, 4, ++ // Src: (st i64:{ *:[i64] }:$v, addrRegImm:{ *:[iPTR] }:$a)<><><> - Complexity = 53 ++ // Dst: (ST_B i64:{ *:[i64] }:$v, addrRegImm:{ *:[iPTR] }:$a) ++/* 1231*/ /*Scope*/ 14, /*->1246*/ ++/* 1232*/ OPC_CheckPredicate, 3, // Predicate_truncstorei16 ++/* 1234*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddrRegImm:$a #3 #4 ++/* 1237*/ OPC_EmitMergeInputChains1_0, ++/* 1238*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_H), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 1, 3, 4, ++ // Src: (st i64:{ *:[i64] }:$v, addrRegImm:{ *:[iPTR] }:$a)<><><> - Complexity = 53 ++ // Dst: (ST_H i64:{ *:[i64] }:$v, addrRegImm:{ *:[iPTR] }:$a) ++/* 1246*/ /*Scope*/ 14, /*->1261*/ ++/* 1247*/ OPC_CheckPredicate, 4, // Predicate_truncstorei32 ++/* 1249*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddrRegImm:$a #3 #4 ++/* 1252*/ OPC_EmitMergeInputChains1_0, ++/* 1253*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_W), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 1, 3, 4, ++ // Src: (st i64:{ *:[i64] }:$v, addrRegImm:{ *:[iPTR] }:$a)<><><> - Complexity = 53 ++ // Dst: (ST_W i64:{ *:[i64] }:$v, addrRegImm:{ *:[iPTR] }:$a) ++/* 1261*/ 0, /*End of Scope*/ ++/* 1262*/ /*Scope*/ 14, /*->1277*/ ++/* 1263*/ OPC_CheckPredicate, 11, // Predicate_store ++/* 1265*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddrRegImm:$a #3 #4 ++/* 1268*/ OPC_EmitMergeInputChains1_0, ++/* 1269*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_D), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 1, 3, 4, ++ // Src: (st i64:{ *:[i64] }:$v, addrRegImm:{ *:[iPTR] }:$a)<><> - Complexity = 53 ++ // Dst: (ST_D i64:{ *:[i64] }:$v, addrRegImm:{ *:[iPTR] }:$a) ++/* 1277*/ /*Scope*/ 16, /*->1294*/ ++/* 1278*/ OPC_CheckPredicate, 10, // Predicate_truncstore ++/* 1280*/ OPC_CheckPredicate, 4, // Predicate_truncstorei32 ++/* 1282*/ OPC_CheckComplexPat, /*CP*/1, /*#*/2, // selectIntAddrSImm14Lsl2:$a #3 #4 ++/* 1285*/ OPC_EmitMergeInputChains1_0, ++/* 1286*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::STPTR_W), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 1, 3, 4, ++ // Src: (st i64:{ *:[i64] }:$v, addrimm14lsl2:{ *:[iPTR] }:$a)<><><> - Complexity = 53 ++ // Dst: (STPTR_W i64:{ *:[i64] }:$v, addrimm14lsl2:{ *:[iPTR] }:$a) ++/* 1294*/ /*Scope*/ 14, /*->1309*/ ++/* 1295*/ OPC_CheckPredicate, 11, // Predicate_store ++/* 1297*/ OPC_CheckComplexPat, /*CP*/1, /*#*/2, // selectIntAddrSImm14Lsl2:$a #3 #4 ++/* 1300*/ OPC_EmitMergeInputChains1_0, ++/* 1301*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::STPTR_D), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 1, 3, 4, ++ // Src: (st i64:{ *:[i64] }:$v, addrimm14lsl2:{ *:[iPTR] }:$a)<><> - Complexity = 53 ++ // Dst: (STPTR_D i64:{ *:[i64] }:$v, addrimm14lsl2:{ *:[iPTR] }:$a) ++/* 1309*/ 0, /*End of Scope*/ ++/* 1310*/ /*Scope*/ 64, /*->1375*/ ++/* 1311*/ OPC_MoveChild2, ++/* 1312*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/* 1315*/ OPC_RecordChild0, // #2 = $rj ++/* 1316*/ OPC_RecordChild1, // #3 = $rk ++/* 1317*/ OPC_MoveParent, ++/* 1318*/ OPC_CheckPredicate, 9, // Predicate_unindexedstore ++/* 1320*/ OPC_Scope, 40, /*->1362*/ // 2 children in Scope ++/* 1322*/ OPC_CheckPredicate, 10, // Predicate_truncstore ++/* 1324*/ OPC_Scope, 11, /*->1337*/ // 3 children in Scope ++/* 1326*/ OPC_CheckPredicate, 2, // Predicate_truncstorei8 ++/* 1328*/ OPC_EmitMergeInputChains1_0, ++/* 1329*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::STX_B), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 1, 2, 3, ++ // Src: (st GPR64Opnd:{ *:[i64] }:$rd, (add:{ *:[iPTR] } iPTR:{ *:[iPTR] }:$rj, iPTR:{ *:[iPTR] }:$rk))<><><> - Complexity = 27 ++ // Dst: (STX_B GPR64Opnd:{ *:[i64] }:$rd, iPTR:{ *:[iPTR] }:$rj, iPTR:{ *:[iPTR] }:$rk) ++/* 1337*/ /*Scope*/ 11, /*->1349*/ ++/* 1338*/ OPC_CheckPredicate, 3, // Predicate_truncstorei16 ++/* 1340*/ OPC_EmitMergeInputChains1_0, ++/* 1341*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::STX_H), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 1, 2, 3, ++ // Src: (st GPR64Opnd:{ *:[i64] }:$rd, (add:{ *:[iPTR] } iPTR:{ *:[iPTR] }:$rj, iPTR:{ *:[iPTR] }:$rk))<><><> - Complexity = 27 ++ // Dst: (STX_H GPR64Opnd:{ *:[i64] }:$rd, iPTR:{ *:[iPTR] }:$rj, iPTR:{ *:[iPTR] }:$rk) ++/* 1349*/ /*Scope*/ 11, /*->1361*/ ++/* 1350*/ OPC_CheckPredicate, 4, // Predicate_truncstorei32 ++/* 1352*/ OPC_EmitMergeInputChains1_0, ++/* 1353*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::STX_W), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 1, 2, 3, ++ // Src: (st GPR64Opnd:{ *:[i64] }:$rd, (add:{ *:[iPTR] } iPTR:{ *:[iPTR] }:$rj, iPTR:{ *:[iPTR] }:$rk))<><><> - Complexity = 27 ++ // Dst: (STX_W GPR64Opnd:{ *:[i64] }:$rd, iPTR:{ *:[iPTR] }:$rj, iPTR:{ *:[iPTR] }:$rk) ++/* 1361*/ 0, /*End of Scope*/ ++/* 1362*/ /*Scope*/ 11, /*->1374*/ ++/* 1363*/ OPC_CheckPredicate, 11, // Predicate_store ++/* 1365*/ OPC_EmitMergeInputChains1_0, ++/* 1366*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::STX_D), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 1, 2, 3, ++ // Src: (st GPR64Opnd:{ *:[i64] }:$rd, (add:{ *:[iPTR] } iPTR:{ *:[iPTR] }:$rj, iPTR:{ *:[iPTR] }:$rk))<><> - Complexity = 27 ++ // Dst: (STX_D GPR64Opnd:{ *:[i64] }:$rd, iPTR:{ *:[iPTR] }:$rj, iPTR:{ *:[iPTR] }:$rk) ++/* 1374*/ 0, /*End of Scope*/ ++/* 1375*/ 0, /*End of Scope*/ ++/* 1376*/ /*Scope*/ 1|128,1/*129*/, /*->1507*/ ++/* 1378*/ OPC_CheckChild1Type, MVT::i32, ++/* 1380*/ OPC_Scope, 71, /*->1453*/ // 2 children in Scope ++/* 1382*/ OPC_RecordChild2, // #2 = $a ++/* 1383*/ OPC_CheckPredicate, 9, // Predicate_unindexedstore ++/* 1385*/ OPC_Scope, 34, /*->1421*/ // 2 children in Scope ++/* 1387*/ OPC_CheckPredicate, 10, // Predicate_truncstore ++/* 1389*/ OPC_Scope, 14, /*->1405*/ // 2 children in Scope ++/* 1391*/ OPC_CheckPredicate, 2, // Predicate_truncstorei8 ++/* 1393*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddrRegImm:$a #3 #4 ++/* 1396*/ OPC_EmitMergeInputChains1_0, ++/* 1397*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_B32), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 1, 3, 4, ++ // Src: (st i32:{ *:[i32] }:$v, addrRegImm:{ *:[iPTR] }:$a)<><><> - Complexity = 53 ++ // Dst: (ST_B32 i32:{ *:[i32] }:$v, addrRegImm:{ *:[iPTR] }:$a) ++/* 1405*/ /*Scope*/ 14, /*->1420*/ ++/* 1406*/ OPC_CheckPredicate, 3, // Predicate_truncstorei16 ++/* 1408*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddrRegImm:$a #3 #4 ++/* 1411*/ OPC_EmitMergeInputChains1_0, ++/* 1412*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_H32), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 1, 3, 4, ++ // Src: (st i32:{ *:[i32] }:$v, addrRegImm:{ *:[iPTR] }:$a)<><><> - Complexity = 53 ++ // Dst: (ST_H32 i32:{ *:[i32] }:$v, addrRegImm:{ *:[iPTR] }:$a) ++/* 1420*/ 0, /*End of Scope*/ ++/* 1421*/ /*Scope*/ 30, /*->1452*/ ++/* 1422*/ OPC_CheckPredicate, 11, // Predicate_store ++/* 1424*/ OPC_Scope, 12, /*->1438*/ // 2 children in Scope ++/* 1426*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddrRegImm:$a #3 #4 ++/* 1429*/ OPC_EmitMergeInputChains1_0, ++/* 1430*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_W32), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 1, 3, 4, ++ // Src: (st i32:{ *:[i32] }:$v, addrRegImm:{ *:[iPTR] }:$a)<><> - Complexity = 53 ++ // Dst: (ST_W32 i32:{ *:[i32] }:$v, addrRegImm:{ *:[iPTR] }:$a) ++/* 1438*/ /*Scope*/ 12, /*->1451*/ ++/* 1439*/ OPC_CheckComplexPat, /*CP*/1, /*#*/2, // selectIntAddrSImm14Lsl2:$a #3 #4 ++/* 1442*/ OPC_EmitMergeInputChains1_0, ++/* 1443*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::STPTR_W32), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 1, 3, 4, ++ // Src: (st i32:{ *:[i32] }:$v, addrimm14lsl2:{ *:[iPTR] }:$a)<><> - Complexity = 53 ++ // Dst: (STPTR_W32 i32:{ *:[i32] }:$v, addrimm14lsl2:{ *:[iPTR] }:$a) ++/* 1451*/ 0, /*End of Scope*/ ++/* 1452*/ 0, /*End of Scope*/ ++/* 1453*/ /*Scope*/ 52, /*->1506*/ ++/* 1454*/ OPC_MoveChild2, ++/* 1455*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/* 1458*/ OPC_RecordChild0, // #2 = $rj ++/* 1459*/ OPC_RecordChild1, // #3 = $rk ++/* 1460*/ OPC_MoveParent, ++/* 1461*/ OPC_CheckPredicate, 9, // Predicate_unindexedstore ++/* 1463*/ OPC_Scope, 11, /*->1476*/ // 2 children in Scope ++/* 1465*/ OPC_CheckPredicate, 11, // Predicate_store ++/* 1467*/ OPC_EmitMergeInputChains1_0, ++/* 1468*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::STX_W32), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 1, 2, 3, ++ // Src: (st GPR32Opnd:{ *:[i32] }:$rd, (add:{ *:[iPTR] } iPTR:{ *:[iPTR] }:$rj, iPTR:{ *:[iPTR] }:$rk))<><> - Complexity = 27 ++ // Dst: (STX_W32 GPR32Opnd:{ *:[i32] }:$rd, iPTR:{ *:[iPTR] }:$rj, iPTR:{ *:[iPTR] }:$rk) ++/* 1476*/ /*Scope*/ 28, /*->1505*/ ++/* 1477*/ OPC_CheckPredicate, 10, // Predicate_truncstore ++/* 1479*/ OPC_Scope, 11, /*->1492*/ // 2 children in Scope ++/* 1481*/ OPC_CheckPredicate, 2, // Predicate_truncstorei8 ++/* 1483*/ OPC_EmitMergeInputChains1_0, ++/* 1484*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::STX_B32), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 1, 2, 3, ++ // Src: (st GPR32Opnd:{ *:[i32] }:$rd, (add:{ *:[iPTR] } iPTR:{ *:[iPTR] }:$rj, iPTR:{ *:[iPTR] }:$rk))<><><> - Complexity = 27 ++ // Dst: (STX_B32 GPR32Opnd:{ *:[i32] }:$rd, iPTR:{ *:[iPTR] }:$rj, iPTR:{ *:[iPTR] }:$rk) ++/* 1492*/ /*Scope*/ 11, /*->1504*/ ++/* 1493*/ OPC_CheckPredicate, 3, // Predicate_truncstorei16 ++/* 1495*/ OPC_EmitMergeInputChains1_0, ++/* 1496*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::STX_H32), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 1, 2, 3, ++ // Src: (st GPR32Opnd:{ *:[i32] }:$rd, (add:{ *:[iPTR] } iPTR:{ *:[iPTR] }:$rj, iPTR:{ *:[iPTR] }:$rk))<><><> - Complexity = 27 ++ // Dst: (STX_H32 GPR32Opnd:{ *:[i32] }:$rd, iPTR:{ *:[iPTR] }:$rj, iPTR:{ *:[iPTR] }:$rk) ++/* 1504*/ 0, /*End of Scope*/ ++/* 1505*/ 0, /*End of Scope*/ ++/* 1506*/ 0, /*End of Scope*/ ++/* 1507*/ /*Scope*/ 43, /*->1551*/ ++/* 1508*/ OPC_CheckChild1Type, MVT::f32, ++/* 1510*/ OPC_Scope, 17, /*->1529*/ // 2 children in Scope ++/* 1512*/ OPC_RecordChild2, // #2 = $a ++/* 1513*/ OPC_CheckPredicate, 9, // Predicate_unindexedstore ++/* 1515*/ OPC_CheckPredicate, 11, // Predicate_store ++/* 1517*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddrRegImm:$a #3 #4 ++/* 1520*/ OPC_EmitMergeInputChains1_0, ++/* 1521*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::FST_S), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 1, 3, 4, ++ // Src: (st f32:{ *:[f32] }:$v, addrRegImm:{ *:[iPTR] }:$a)<><> - Complexity = 53 ++ // Dst: (FST_S f32:{ *:[f32] }:$v, addrRegImm:{ *:[iPTR] }:$a) ++/* 1529*/ /*Scope*/ 20, /*->1550*/ ++/* 1530*/ OPC_MoveChild2, ++/* 1531*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/* 1534*/ OPC_RecordChild0, // #2 = $rj ++/* 1535*/ OPC_RecordChild1, // #3 = $rk ++/* 1536*/ OPC_MoveParent, ++/* 1537*/ OPC_CheckPredicate, 9, // Predicate_unindexedstore ++/* 1539*/ OPC_CheckPredicate, 11, // Predicate_store ++/* 1541*/ OPC_EmitMergeInputChains1_0, ++/* 1542*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::FSTX_S), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 1, 2, 3, ++ // Src: (st FGR32Opnd:{ *:[f32] }:$fd, (add:{ *:[iPTR] } iPTR:{ *:[iPTR] }:$rj, iPTR:{ *:[iPTR] }:$rk))<><> - Complexity = 27 ++ // Dst: (FSTX_S FGR32Opnd:{ *:[f32] }:$fd, iPTR:{ *:[iPTR] }:$rj, iPTR:{ *:[iPTR] }:$rk) ++/* 1550*/ 0, /*End of Scope*/ ++/* 1551*/ /*Scope*/ 43, /*->1595*/ ++/* 1552*/ OPC_CheckChild1Type, MVT::f64, ++/* 1554*/ OPC_Scope, 17, /*->1573*/ // 2 children in Scope ++/* 1556*/ OPC_RecordChild2, // #2 = $a ++/* 1557*/ OPC_CheckPredicate, 9, // Predicate_unindexedstore ++/* 1559*/ OPC_CheckPredicate, 11, // Predicate_store ++/* 1561*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddrRegImm:$a #3 #4 ++/* 1564*/ OPC_EmitMergeInputChains1_0, ++/* 1565*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::FST_D), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 1, 3, 4, ++ // Src: (st f64:{ *:[f64] }:$v, addrRegImm:{ *:[iPTR] }:$a)<><> - Complexity = 53 ++ // Dst: (FST_D f64:{ *:[f64] }:$v, addrRegImm:{ *:[iPTR] }:$a) ++/* 1573*/ /*Scope*/ 20, /*->1594*/ ++/* 1574*/ OPC_MoveChild2, ++/* 1575*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/* 1578*/ OPC_RecordChild0, // #2 = $rj ++/* 1579*/ OPC_RecordChild1, // #3 = $rk ++/* 1580*/ OPC_MoveParent, ++/* 1581*/ OPC_CheckPredicate, 9, // Predicate_unindexedstore ++/* 1583*/ OPC_CheckPredicate, 11, // Predicate_store ++/* 1585*/ OPC_EmitMergeInputChains1_0, ++/* 1586*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::FSTX_D), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 1, 2, 3, ++ // Src: (st FGR64Opnd:{ *:[f64] }:$fd, (add:{ *:[iPTR] } iPTR:{ *:[iPTR] }:$rj, iPTR:{ *:[iPTR] }:$rk))<><> - Complexity = 27 ++ // Dst: (FSTX_D FGR64Opnd:{ *:[f64] }:$fd, iPTR:{ *:[iPTR] }:$rj, iPTR:{ *:[iPTR] }:$rk) ++/* 1594*/ 0, /*End of Scope*/ ++/* 1595*/ 0, /*End of Scope*/ ++/* 1596*/ /*Scope*/ 41, /*->1638*/ ++/* 1597*/ OPC_MoveChild1, ++/* 1598*/ OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE), ++/* 1601*/ OPC_MoveChild0, ++/* 1602*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertSext), ++/* 1605*/ OPC_RecordChild0, // #1 = $v ++/* 1606*/ OPC_MoveParent, ++/* 1607*/ OPC_CheckType, MVT::i32, ++/* 1609*/ OPC_MoveParent, ++/* 1610*/ OPC_RecordChild2, // #2 = $a ++/* 1611*/ OPC_CheckPredicate, 9, // Predicate_unindexedstore ++/* 1613*/ OPC_CheckPredicate, 11, // Predicate_store ++/* 1615*/ OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectIntAddr:$a #3 #4 ++/* 1618*/ OPC_EmitMergeInputChains1_0, ++/* 1619*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 1622*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 1, 5, // Results = #6 ++/* 1630*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_W32), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 6, 3, 4, ++ // Src: (st (trunc:{ *:[i32] } (assertsext:{ *:[i64] } GPR64:{ *:[i64] }:$v)), addr:{ *:[iPTR] }:$a)<><> - Complexity = 19 ++ // Dst: (ST_W32 (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$v, sub_32:{ *:[i32] }), addr:{ *:[iPTR] }:$a) ++/* 1638*/ /*Scope*/ 24, /*->1663*/ ++/* 1639*/ OPC_CheckChild1Integer, 0, ++/* 1641*/ OPC_CheckChild1Type, MVT::i32, ++/* 1643*/ OPC_RecordChild2, // #1 = $dst ++/* 1644*/ OPC_CheckPredicate, 9, // Predicate_unindexedstore ++/* 1646*/ OPC_CheckPredicate, 11, // Predicate_store ++/* 1648*/ OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectIntAddr:$dst #2 #3 ++/* 1651*/ OPC_EmitMergeInputChains1_0, ++/* 1652*/ OPC_EmitRegister, MVT::i32, LoongArch::ZERO, ++/* 1655*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_W32), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 4, 2, 3, ++ // Src: (st 0:{ *:[i32] }, addr:{ *:[iPTR] }:$dst)<><> - Complexity = 18 ++ // Dst: (ST_W32 ZERO:{ *:[i32] }, addr:{ *:[iPTR] }:$dst) ++/* 1663*/ /*Scope*/ 104|128,3/*488*/, /*->2153*/ ++/* 1665*/ OPC_RecordChild1, // #1 = $rd ++/* 1666*/ OPC_Scope, 72, /*->1740*/ // 16 children in Scope ++/* 1668*/ OPC_CheckChild1Type, MVT::i64, ++/* 1670*/ OPC_RecordChild2, // #2 = $addr ++/* 1671*/ OPC_CheckPredicate, 9, // Predicate_unindexedstore ++/* 1673*/ OPC_Scope, 49, /*->1724*/ // 2 children in Scope ++/* 1675*/ OPC_CheckPredicate, 10, // Predicate_truncstore ++/* 1677*/ OPC_Scope, 14, /*->1693*/ // 3 children in Scope ++/* 1679*/ OPC_CheckPredicate, 2, // Predicate_truncstorei8 ++/* 1681*/ OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectIntAddr:$addr #3 #4 ++/* 1684*/ OPC_EmitMergeInputChains1_0, ++/* 1685*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_B), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 1, 3, 4, ++ // Src: (st GPR64Opnd:{ *:[i64] }:$rd, addr:{ *:[iPTR] }:$addr)<><><> - Complexity = 13 ++ // Dst: (ST_B GPR64Opnd:{ *:[i64] }:$rd, addr:{ *:[iPTR] }:$addr) ++/* 1693*/ /*Scope*/ 14, /*->1708*/ ++/* 1694*/ OPC_CheckPredicate, 3, // Predicate_truncstorei16 ++/* 1696*/ OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectIntAddr:$addr #3 #4 ++/* 1699*/ OPC_EmitMergeInputChains1_0, ++/* 1700*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_H), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 1, 3, 4, ++ // Src: (st GPR64Opnd:{ *:[i64] }:$rd, addr:{ *:[iPTR] }:$addr)<><><> - Complexity = 13 ++ // Dst: (ST_H GPR64Opnd:{ *:[i64] }:$rd, addr:{ *:[iPTR] }:$addr) ++/* 1708*/ /*Scope*/ 14, /*->1723*/ ++/* 1709*/ OPC_CheckPredicate, 4, // Predicate_truncstorei32 ++/* 1711*/ OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectIntAddr:$addr #3 #4 ++/* 1714*/ OPC_EmitMergeInputChains1_0, ++/* 1715*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_W), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 1, 3, 4, ++ // Src: (st GPR64Opnd:{ *:[i64] }:$rd, addr:{ *:[iPTR] }:$addr)<><><> - Complexity = 13 ++ // Dst: (ST_W GPR64Opnd:{ *:[i64] }:$rd, addr:{ *:[iPTR] }:$addr) ++/* 1723*/ 0, /*End of Scope*/ ++/* 1724*/ /*Scope*/ 14, /*->1739*/ ++/* 1725*/ OPC_CheckPredicate, 11, // Predicate_store ++/* 1727*/ OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectIntAddr:$addr #3 #4 ++/* 1730*/ OPC_EmitMergeInputChains1_0, ++/* 1731*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_D), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 1, 3, 4, ++ // Src: (st GPR64Opnd:{ *:[i64] }:$rd, addr:{ *:[iPTR] }:$addr)<><> - Complexity = 13 ++ // Dst: (ST_D GPR64Opnd:{ *:[i64] }:$rd, addr:{ *:[iPTR] }:$addr) ++/* 1739*/ 0, /*End of Scope*/ ++/* 1740*/ /*Scope*/ 57, /*->1798*/ ++/* 1741*/ OPC_CheckChild1Type, MVT::i32, ++/* 1743*/ OPC_RecordChild2, // #2 = $addr ++/* 1744*/ OPC_CheckPredicate, 9, // Predicate_unindexedstore ++/* 1746*/ OPC_Scope, 34, /*->1782*/ // 2 children in Scope ++/* 1748*/ OPC_CheckPredicate, 10, // Predicate_truncstore ++/* 1750*/ OPC_Scope, 14, /*->1766*/ // 2 children in Scope ++/* 1752*/ OPC_CheckPredicate, 2, // Predicate_truncstorei8 ++/* 1754*/ OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectIntAddr:$addr #3 #4 ++/* 1757*/ OPC_EmitMergeInputChains1_0, ++/* 1758*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_B32), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 1, 3, 4, ++ // Src: (st GPR32Opnd:{ *:[i32] }:$rd, addr:{ *:[iPTR] }:$addr)<><><> - Complexity = 13 ++ // Dst: (ST_B32 GPR32Opnd:{ *:[i32] }:$rd, addr:{ *:[iPTR] }:$addr) ++/* 1766*/ /*Scope*/ 14, /*->1781*/ ++/* 1767*/ OPC_CheckPredicate, 3, // Predicate_truncstorei16 ++/* 1769*/ OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectIntAddr:$addr #3 #4 ++/* 1772*/ OPC_EmitMergeInputChains1_0, ++/* 1773*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_H32), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 1, 3, 4, ++ // Src: (st GPR32Opnd:{ *:[i32] }:$rd, addr:{ *:[iPTR] }:$addr)<><><> - Complexity = 13 ++ // Dst: (ST_H32 GPR32Opnd:{ *:[i32] }:$rd, addr:{ *:[iPTR] }:$addr) ++/* 1781*/ 0, /*End of Scope*/ ++/* 1782*/ /*Scope*/ 14, /*->1797*/ ++/* 1783*/ OPC_CheckPredicate, 11, // Predicate_store ++/* 1785*/ OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectIntAddr:$addr #3 #4 ++/* 1788*/ OPC_EmitMergeInputChains1_0, ++/* 1789*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_W32), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 1, 3, 4, ++ // Src: (st GPR32Opnd:{ *:[i32] }:$rd, addr:{ *:[iPTR] }:$addr)<><> - Complexity = 13 ++ // Dst: (ST_W32 GPR32Opnd:{ *:[i32] }:$rd, addr:{ *:[iPTR] }:$addr) ++/* 1797*/ 0, /*End of Scope*/ ++/* 1798*/ /*Scope*/ 19, /*->1818*/ ++/* 1799*/ OPC_CheckChild1Type, MVT::f32, ++/* 1801*/ OPC_RecordChild2, // #2 = $addr ++/* 1802*/ OPC_CheckPredicate, 9, // Predicate_unindexedstore ++/* 1804*/ OPC_CheckPredicate, 11, // Predicate_store ++/* 1806*/ OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectAddrDefault:$addr #3 #4 ++/* 1809*/ OPC_EmitMergeInputChains1_0, ++/* 1810*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::FST_S), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 1, 3, 4, ++ // Src: (st FGR32Opnd:{ *:[f32] }:$rd, addrDefault:{ *:[iPTR] }:$addr)<><> - Complexity = 13 ++ // Dst: (FST_S FGR32Opnd:{ *:[f32] }:$rd, addrDefault:{ *:[iPTR] }:$addr) ++/* 1818*/ /*Scope*/ 19, /*->1838*/ ++/* 1819*/ OPC_CheckChild1Type, MVT::f64, ++/* 1821*/ OPC_RecordChild2, // #2 = $addr ++/* 1822*/ OPC_CheckPredicate, 9, // Predicate_unindexedstore ++/* 1824*/ OPC_CheckPredicate, 11, // Predicate_store ++/* 1826*/ OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectAddrDefault:$addr #3 #4 ++/* 1829*/ OPC_EmitMergeInputChains1_0, ++/* 1830*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::FST_D), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 1, 3, 4, ++ // Src: (st FGR64Opnd:{ *:[f64] }:$rd, addrDefault:{ *:[iPTR] }:$addr)<><> - Complexity = 13 ++ // Dst: (FST_D FGR64Opnd:{ *:[f64] }:$rd, addrDefault:{ *:[iPTR] }:$addr) ++/* 1838*/ /*Scope*/ 59, /*->1898*/ ++/* 1839*/ OPC_CheckChild1Type, MVT::v16i8, ++/* 1841*/ OPC_Scope, 17, /*->1860*/ // 2 children in Scope ++/* 1843*/ OPC_RecordChild2, // #2 = $addr ++/* 1844*/ OPC_CheckPredicate, 9, // Predicate_unindexedstore ++/* 1846*/ OPC_CheckPredicate, 11, // Predicate_store ++/* 1848*/ OPC_CheckComplexPat, /*CP*/4, /*#*/2, // selectIntAddrSImm12:$addr #3 #4 ++/* 1851*/ OPC_EmitMergeInputChains1_0, ++/* 1852*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::VST), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 1, 3, 4, ++ // Src: (st LSX128BOpnd:{ *:[v16i8] }:$vd, addrimm12:{ *:[iPTR] }:$addr)<><> - Complexity = 13 ++ // Dst: (VST LSX128BOpnd:{ *:[v16i8] }:$vd, addrimm12:{ *:[iPTR] }:$addr) ++/* 1860*/ /*Scope*/ 36, /*->1897*/ ++/* 1861*/ OPC_MoveChild2, ++/* 1862*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/* 1865*/ OPC_RecordChild0, // #2 = $vj ++/* 1866*/ OPC_RecordChild1, // #3 = $vk ++/* 1867*/ OPC_CheckType, MVT::i64, ++/* 1869*/ OPC_MoveParent, ++/* 1870*/ OPC_CheckPredicate, 9, // Predicate_unindexedstore ++/* 1872*/ OPC_CheckPredicate, 11, // Predicate_store ++/* 1874*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 1876*/ OPC_EmitMergeInputChains1_0, ++/* 1877*/ OPC_Scope, 8, /*->1887*/ // 2 children in Scope ++/* 1879*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::VSTX), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 1, 2, 3, ++ // Src: (st LSX128B:{ *:[v16i8] }:$vd, (add:{ *:[i64] } iPTR:{ *:[i64] }:$vj, GPR64Opnd:{ *:[i64] }:$vk))<><> - Complexity = 7 ++ // Dst: (VSTX LSX128B:{ *:[v16i8] }:$vd, PtrRC:{ *:[i64] }:$vj, GPR64Opnd:{ *:[i64] }:$vk) ++/* 1887*/ /*Scope*/ 8, /*->1896*/ ++/* 1888*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::VSTX), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 1, 3, 2, ++ // Src: (st LSX128B:{ *:[v16i8] }:$vd, (add:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$vk, iPTR:{ *:[i64] }:$vj))<><> - Complexity = 7 ++ // Dst: (VSTX LSX128B:{ *:[v16i8] }:$vd, PtrRC:{ *:[i64] }:$vj, GPR64Opnd:{ *:[i64] }:$vk) ++/* 1896*/ 0, /*End of Scope*/ ++/* 1897*/ 0, /*End of Scope*/ ++/* 1898*/ /*Scope*/ 19, /*->1918*/ ++/* 1899*/ OPC_CheckChild1Type, MVT::v8i16, ++/* 1901*/ OPC_RecordChild2, // #2 = $addr ++/* 1902*/ OPC_CheckPredicate, 9, // Predicate_unindexedstore ++/* 1904*/ OPC_CheckPredicate, 11, // Predicate_store ++/* 1906*/ OPC_CheckComplexPat, /*CP*/4, /*#*/2, // selectIntAddrSImm12:$addr #3 #4 ++/* 1909*/ OPC_EmitMergeInputChains1_0, ++/* 1910*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::VST_H), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 1, 3, 4, ++ // Src: (st LSX128HOpnd:{ *:[v8i16] }:$vd, addrimm12:{ *:[iPTR] }:$addr)<><> - Complexity = 13 ++ // Dst: (VST_H LSX128HOpnd:{ *:[v8i16] }:$vd, addrimm12:{ *:[iPTR] }:$addr) ++/* 1918*/ /*Scope*/ 19, /*->1938*/ ++/* 1919*/ OPC_CheckChild1Type, MVT::v4i32, ++/* 1921*/ OPC_RecordChild2, // #2 = $addr ++/* 1922*/ OPC_CheckPredicate, 9, // Predicate_unindexedstore ++/* 1924*/ OPC_CheckPredicate, 11, // Predicate_store ++/* 1926*/ OPC_CheckComplexPat, /*CP*/4, /*#*/2, // selectIntAddrSImm12:$addr #3 #4 ++/* 1929*/ OPC_EmitMergeInputChains1_0, ++/* 1930*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::VST_W), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 1, 3, 4, ++ // Src: (st LSX128WOpnd:{ *:[v4i32] }:$vd, addrimm12:{ *:[iPTR] }:$addr)<><> - Complexity = 13 ++ // Dst: (VST_W LSX128WOpnd:{ *:[v4i32] }:$vd, addrimm12:{ *:[iPTR] }:$addr) ++/* 1938*/ /*Scope*/ 19, /*->1958*/ ++/* 1939*/ OPC_CheckChild1Type, MVT::v2i64, ++/* 1941*/ OPC_RecordChild2, // #2 = $addr ++/* 1942*/ OPC_CheckPredicate, 9, // Predicate_unindexedstore ++/* 1944*/ OPC_CheckPredicate, 11, // Predicate_store ++/* 1946*/ OPC_CheckComplexPat, /*CP*/4, /*#*/2, // selectIntAddrSImm12:$addr #3 #4 ++/* 1949*/ OPC_EmitMergeInputChains1_0, ++/* 1950*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::VST_D), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 1, 3, 4, ++ // Src: (st LSX128DOpnd:{ *:[v2i64] }:$vd, addrimm12:{ *:[iPTR] }:$addr)<><> - Complexity = 13 ++ // Dst: (VST_D LSX128DOpnd:{ *:[v2i64] }:$vd, addrimm12:{ *:[iPTR] }:$addr) ++/* 1958*/ /*Scope*/ 21, /*->1980*/ ++/* 1959*/ OPC_CheckChild1Type, MVT::v4f32, ++/* 1961*/ OPC_RecordChild2, // #2 = $addr ++/* 1962*/ OPC_CheckPredicate, 9, // Predicate_unindexedstore ++/* 1964*/ OPC_CheckPredicate, 11, // Predicate_store ++/* 1966*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 1968*/ OPC_CheckComplexPat, /*CP*/4, /*#*/2, // selectIntAddrSImm12:$addr #3 #4 ++/* 1971*/ OPC_EmitMergeInputChains1_0, ++/* 1972*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::VST_W), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 1, 3, 4, ++ // Src: (st LSX128W:{ *:[v4f32] }:$vj, addrimm12:{ *:[iPTR] }:$addr)<><> - Complexity = 13 ++ // Dst: (VST_W LSX128W:{ *:[v4f32] }:$vj, addrimm12:{ *:[iPTR] }:$addr) ++/* 1980*/ /*Scope*/ 21, /*->2002*/ ++/* 1981*/ OPC_CheckChild1Type, MVT::v2f64, ++/* 1983*/ OPC_RecordChild2, // #2 = $addr ++/* 1984*/ OPC_CheckPredicate, 9, // Predicate_unindexedstore ++/* 1986*/ OPC_CheckPredicate, 11, // Predicate_store ++/* 1988*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 1990*/ OPC_CheckComplexPat, /*CP*/4, /*#*/2, // selectIntAddrSImm12:$addr #3 #4 ++/* 1993*/ OPC_EmitMergeInputChains1_0, ++/* 1994*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::VST_D), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 1, 3, 4, ++ // Src: (st LSX128D:{ *:[v2f64] }:$vj, addrimm12:{ *:[iPTR] }:$addr)<><> - Complexity = 13 ++ // Dst: (VST_D LSX128D:{ *:[v2f64] }:$vj, addrimm12:{ *:[iPTR] }:$addr) ++/* 2002*/ /*Scope*/ 45, /*->2048*/ ++/* 2003*/ OPC_CheckChild1Type, MVT::v32i8, ++/* 2005*/ OPC_Scope, 17, /*->2024*/ // 2 children in Scope ++/* 2007*/ OPC_RecordChild2, // #2 = $addr ++/* 2008*/ OPC_CheckPredicate, 9, // Predicate_unindexedstore ++/* 2010*/ OPC_CheckPredicate, 11, // Predicate_store ++/* 2012*/ OPC_CheckComplexPat, /*CP*/4, /*#*/2, // selectIntAddrSImm12:$addr #3 #4 ++/* 2015*/ OPC_EmitMergeInputChains1_0, ++/* 2016*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::XVST), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 1, 3, 4, ++ // Src: (st LASX256BOpnd:{ *:[v32i8] }:$xd, addrimm12:{ *:[iPTR] }:$addr)<><> - Complexity = 13 ++ // Dst: (XVST LASX256BOpnd:{ *:[v32i8] }:$xd, addrimm12:{ *:[iPTR] }:$addr) ++/* 2024*/ /*Scope*/ 22, /*->2047*/ ++/* 2025*/ OPC_MoveChild2, ++/* 2026*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/* 2029*/ OPC_RecordChild0, // #2 = $xj ++/* 2030*/ OPC_RecordChild1, // #3 = $xk ++/* 2031*/ OPC_MoveParent, ++/* 2032*/ OPC_CheckPredicate, 9, // Predicate_unindexedstore ++/* 2034*/ OPC_CheckPredicate, 11, // Predicate_store ++/* 2036*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 2038*/ OPC_EmitMergeInputChains1_0, ++/* 2039*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::XVSTX), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 1, 2, 3, ++ // Src: (st LASX256B:{ *:[v32i8] }:$xd, (add:{ *:[iPTR] } iPTR:{ *:[iPTR] }:$xj, iPTR:{ *:[iPTR] }:$xk))<><> - Complexity = 7 ++ // Dst: (XVSTX LASX256B:{ *:[v32i8] }:$xd, PtrRC:{ *:[iPTR] }:$xj, PtrRC:{ *:[i64] }:$xk) ++/* 2047*/ 0, /*End of Scope*/ ++/* 2048*/ /*Scope*/ 19, /*->2068*/ ++/* 2049*/ OPC_CheckChild1Type, MVT::v16i16, ++/* 2051*/ OPC_RecordChild2, // #2 = $addr ++/* 2052*/ OPC_CheckPredicate, 9, // Predicate_unindexedstore ++/* 2054*/ OPC_CheckPredicate, 11, // Predicate_store ++/* 2056*/ OPC_CheckComplexPat, /*CP*/4, /*#*/2, // selectIntAddrSImm12:$addr #3 #4 ++/* 2059*/ OPC_EmitMergeInputChains1_0, ++/* 2060*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::XVST_H), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 1, 3, 4, ++ // Src: (st LASX256HOpnd:{ *:[v16i16] }:$xd, addrimm12:{ *:[iPTR] }:$addr)<><> - Complexity = 13 ++ // Dst: (XVST_H LASX256HOpnd:{ *:[v16i16] }:$xd, addrimm12:{ *:[iPTR] }:$addr) ++/* 2068*/ /*Scope*/ 19, /*->2088*/ ++/* 2069*/ OPC_CheckChild1Type, MVT::v8i32, ++/* 2071*/ OPC_RecordChild2, // #2 = $addr ++/* 2072*/ OPC_CheckPredicate, 9, // Predicate_unindexedstore ++/* 2074*/ OPC_CheckPredicate, 11, // Predicate_store ++/* 2076*/ OPC_CheckComplexPat, /*CP*/4, /*#*/2, // selectIntAddrSImm12:$addr #3 #4 ++/* 2079*/ OPC_EmitMergeInputChains1_0, ++/* 2080*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::XVST_W), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 1, 3, 4, ++ // Src: (st LASX256WOpnd:{ *:[v8i32] }:$xd, addrimm12:{ *:[iPTR] }:$addr)<><> - Complexity = 13 ++ // Dst: (XVST_W LASX256WOpnd:{ *:[v8i32] }:$xd, addrimm12:{ *:[iPTR] }:$addr) ++/* 2088*/ /*Scope*/ 19, /*->2108*/ ++/* 2089*/ OPC_CheckChild1Type, MVT::v4i64, ++/* 2091*/ OPC_RecordChild2, // #2 = $addr ++/* 2092*/ OPC_CheckPredicate, 9, // Predicate_unindexedstore ++/* 2094*/ OPC_CheckPredicate, 11, // Predicate_store ++/* 2096*/ OPC_CheckComplexPat, /*CP*/4, /*#*/2, // selectIntAddrSImm12:$addr #3 #4 ++/* 2099*/ OPC_EmitMergeInputChains1_0, ++/* 2100*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::XVST_D), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 1, 3, 4, ++ // Src: (st LASX256DOpnd:{ *:[v4i64] }:$xd, addrimm12:{ *:[iPTR] }:$addr)<><> - Complexity = 13 ++ // Dst: (XVST_D LASX256DOpnd:{ *:[v4i64] }:$xd, addrimm12:{ *:[iPTR] }:$addr) ++/* 2108*/ /*Scope*/ 21, /*->2130*/ ++/* 2109*/ OPC_CheckChild1Type, MVT::v8f32, ++/* 2111*/ OPC_RecordChild2, // #2 = $addr ++/* 2112*/ OPC_CheckPredicate, 9, // Predicate_unindexedstore ++/* 2114*/ OPC_CheckPredicate, 11, // Predicate_store ++/* 2116*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 2118*/ OPC_CheckComplexPat, /*CP*/4, /*#*/2, // selectIntAddrSImm12:$addr #3 #4 ++/* 2121*/ OPC_EmitMergeInputChains1_0, ++/* 2122*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::XVST_W), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 1, 3, 4, ++ // Src: (st LASX256W:{ *:[v8f32] }:$xj, addrimm12:{ *:[iPTR] }:$addr)<><> - Complexity = 13 ++ // Dst: (XVST_W LASX256W:{ *:[v8f32] }:$xj, addrimm12:{ *:[iPTR] }:$addr) ++/* 2130*/ /*Scope*/ 21, /*->2152*/ ++/* 2131*/ OPC_CheckChild1Type, MVT::v4f64, ++/* 2133*/ OPC_RecordChild2, // #2 = $addr ++/* 2134*/ OPC_CheckPredicate, 9, // Predicate_unindexedstore ++/* 2136*/ OPC_CheckPredicate, 11, // Predicate_store ++/* 2138*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 2140*/ OPC_CheckComplexPat, /*CP*/4, /*#*/2, // selectIntAddrSImm12:$addr #3 #4 ++/* 2143*/ OPC_EmitMergeInputChains1_0, ++/* 2144*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::XVST_D), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 1, 3, 4, ++ // Src: (st LASX256D:{ *:[v4f64] }:$xj, addrimm12:{ *:[iPTR] }:$addr)<><> - Complexity = 13 ++ // Dst: (XVST_D LASX256D:{ *:[v4f64] }:$xj, addrimm12:{ *:[iPTR] }:$addr) ++/* 2152*/ 0, /*End of Scope*/ ++/* 2153*/ 0, /*End of Scope*/ ++/* 2154*/ /*SwitchOpcode*/ 71|128,18/*2375*/, TARGET_VAL(ISD::SIGN_EXTEND),// ->4533 ++/* 2158*/ OPC_Scope, 93|128,17/*2269*/, /*->4430*/ // 2 children in Scope ++/* 2161*/ OPC_MoveChild0, ++/* 2162*/ OPC_SwitchOpcode /*14 cases */, 51|128,1/*179*/, TARGET_VAL(ISD::AND),// ->2346 ++/* 2167*/ OPC_MoveChild0, ++/* 2168*/ OPC_SwitchOpcode /*2 cases */, 85, TARGET_VAL(ISD::TRUNCATE),// ->2257 ++/* 2172*/ OPC_MoveChild0, ++/* 2173*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertSext), ++/* 2176*/ OPC_RecordChild0, // #0 = $rj ++/* 2177*/ OPC_MoveParent, ++/* 2178*/ OPC_MoveParent, ++/* 2179*/ OPC_MoveChild1, ++/* 2180*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 2183*/ OPC_MoveChild0, ++/* 2184*/ OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE), ++/* 2187*/ OPC_MoveChild0, ++/* 2188*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertSext), ++/* 2191*/ OPC_RecordChild0, // #1 = $rk ++/* 2192*/ OPC_MoveParent, ++/* 2193*/ OPC_MoveParent, ++/* 2194*/ OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, ++/* 2205*/ OPC_MoveParent, ++/* 2206*/ OPC_MoveParent, ++/* 2207*/ OPC_CheckType, MVT::i64, ++/* 2209*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::i64, 0/*#Ops*/, // Results = #2 ++/* 2215*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 2218*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 0, 3, // Results = #4 ++/* 2226*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 2229*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 1, 5, // Results = #6 ++/* 2237*/ OPC_EmitNode1, TARGET_VAL(LoongArch::ANDN32), 0, ++ MVT::i32, 2/*#Ops*/, 4, 6, // Results = #7 ++/* 2245*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 2248*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::i64, 3/*#Ops*/, 2, 7, 8, ++ // Src: (sext:{ *:[i64] } (and:{ *:[i32] } (trunc:{ *:[i32] } (assertsext:{ *:[i64] } GPR64:{ *:[i64] }:$rj)), (xor:{ *:[i32] } (trunc:{ *:[i32] } (assertsext:{ *:[i64] } GPR64:{ *:[i64] }:$rk)), -1:{ *:[i32] }))) - Complexity = 26 ++ // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ANDN32:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$rj, sub_32:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$rk, sub_32:{ *:[i32] })), sub_32:{ *:[i32] }) ++/* 2257*/ /*SwitchOpcode*/ 85, TARGET_VAL(ISD::XOR),// ->2345 ++/* 2260*/ OPC_MoveChild0, ++/* 2261*/ OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE), ++/* 2264*/ OPC_MoveChild0, ++/* 2265*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertSext), ++/* 2268*/ OPC_RecordChild0, // #0 = $rk ++/* 2269*/ OPC_MoveParent, ++/* 2270*/ OPC_MoveParent, ++/* 2271*/ OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, ++/* 2282*/ OPC_MoveParent, ++/* 2283*/ OPC_MoveChild1, ++/* 2284*/ OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE), ++/* 2287*/ OPC_MoveChild0, ++/* 2288*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertSext), ++/* 2291*/ OPC_RecordChild0, // #1 = $rj ++/* 2292*/ OPC_MoveParent, ++/* 2293*/ OPC_MoveParent, ++/* 2294*/ OPC_MoveParent, ++/* 2295*/ OPC_CheckType, MVT::i64, ++/* 2297*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::i64, 0/*#Ops*/, // Results = #2 ++/* 2303*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 2306*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 1, 3, // Results = #4 ++/* 2314*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 2317*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 0, 5, // Results = #6 ++/* 2325*/ OPC_EmitNode1, TARGET_VAL(LoongArch::ANDN32), 0, ++ MVT::i32, 2/*#Ops*/, 4, 6, // Results = #7 ++/* 2333*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 2336*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::i64, 3/*#Ops*/, 2, 7, 8, ++ // Src: (sext:{ *:[i64] } (and:{ *:[i32] } (xor:{ *:[i32] } (trunc:{ *:[i32] } (assertsext:{ *:[i64] } GPR64:{ *:[i64] }:$rk)), -1:{ *:[i32] }), (trunc:{ *:[i32] } (assertsext:{ *:[i64] } GPR64:{ *:[i64] }:$rj)))) - Complexity = 26 ++ // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ANDN32:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$rj, sub_32:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$rk, sub_32:{ *:[i32] })), sub_32:{ *:[i32] }) ++/* 2345*/ 0, // EndSwitchOpcode ++/* 2346*/ /*SwitchOpcode*/ 85|128,2/*341*/, TARGET_VAL(ISD::OR),// ->2691 ++/* 2350*/ OPC_Scope, 26|128,2/*282*/, /*->2635*/ // 2 children in Scope ++/* 2353*/ OPC_MoveChild0, ++/* 2354*/ OPC_SwitchOpcode /*2 cases */, 59|128,1/*187*/, TARGET_VAL(ISD::TRUNCATE),// ->2546 ++/* 2359*/ OPC_MoveChild0, ++/* 2360*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertSext), ++/* 2363*/ OPC_RecordChild0, // #0 = $rj ++/* 2364*/ OPC_MoveParent, ++/* 2365*/ OPC_MoveParent, ++/* 2366*/ OPC_Scope, 78, /*->2446*/ // 2 children in Scope ++/* 2368*/ OPC_MoveChild1, ++/* 2369*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 2372*/ OPC_MoveChild0, ++/* 2373*/ OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE), ++/* 2376*/ OPC_MoveChild0, ++/* 2377*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertSext), ++/* 2380*/ OPC_RecordChild0, // #1 = $rk ++/* 2381*/ OPC_MoveParent, ++/* 2382*/ OPC_MoveParent, ++/* 2383*/ OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, ++/* 2394*/ OPC_MoveParent, ++/* 2395*/ OPC_MoveParent, ++/* 2396*/ OPC_CheckType, MVT::i64, ++/* 2398*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::i64, 0/*#Ops*/, // Results = #2 ++/* 2404*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 2407*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 0, 3, // Results = #4 ++/* 2415*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 2418*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 1, 5, // Results = #6 ++/* 2426*/ OPC_EmitNode1, TARGET_VAL(LoongArch::ORN32), 0, ++ MVT::i32, 2/*#Ops*/, 4, 6, // Results = #7 ++/* 2434*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 2437*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::i64, 3/*#Ops*/, 2, 7, 8, ++ // Src: (sext:{ *:[i64] } (or:{ *:[i32] } (trunc:{ *:[i32] } (assertsext:{ *:[i64] } GPR64:{ *:[i64] }:$rj)), (xor:{ *:[i32] } (trunc:{ *:[i32] } (assertsext:{ *:[i64] } GPR64:{ *:[i64] }:$rk)), -1:{ *:[i32] }))) - Complexity = 26 ++ // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORN32:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$rj, sub_32:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$rk, sub_32:{ *:[i32] })), sub_32:{ *:[i32] }) ++/* 2446*/ /*Scope*/ 98, /*->2545*/ ++/* 2447*/ OPC_RecordChild1, // #1 = $imm12 ++/* 2448*/ OPC_Scope, 51, /*->2501*/ // 2 children in Scope ++/* 2450*/ OPC_MoveChild1, ++/* 2451*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 2454*/ OPC_CheckPredicate, 12, // Predicate_uimm12_32 ++/* 2456*/ OPC_MoveParent, ++/* 2457*/ OPC_MoveParent, ++/* 2458*/ OPC_CheckType, MVT::i64, ++/* 2460*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/* 2462*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::i64, 0/*#Ops*/, // Results = #2 ++/* 2468*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 2471*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 0, 3, // Results = #4 ++/* 2479*/ OPC_EmitConvertToTarget, 1, ++/* 2481*/ OPC_EmitNode1, TARGET_VAL(LoongArch::ORI32), 0, ++ MVT::i32, 2/*#Ops*/, 4, 5, // Results = #6 ++/* 2489*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 2492*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::i64, 3/*#Ops*/, 2, 6, 7, ++ // Src: (sext:{ *:[i64] } (or:{ *:[i32] } (trunc:{ *:[i32] } (assertsext:{ *:[i64] } GPR64:{ *:[i64] }:$rj)), (imm:{ *:[i32] })<>:$imm12)) - Complexity = 16 ++ // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI32:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$rj, sub_32:{ *:[i32] }), (imm:{ *:[i32] })<>:$imm12), sub_32:{ *:[i32] }) ++/* 2501*/ /*Scope*/ 42, /*->2544*/ ++/* 2502*/ OPC_MoveParent, ++/* 2503*/ OPC_CheckType, MVT::i64, ++/* 2505*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/* 2507*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::i64, 0/*#Ops*/, // Results = #2 ++/* 2513*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 2516*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 0, 3, // Results = #4 ++/* 2524*/ OPC_EmitNode1, TARGET_VAL(LoongArch::OR32), 0, ++ MVT::i32, 2/*#Ops*/, 4, 1, // Results = #5 ++/* 2532*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 2535*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::i64, 3/*#Ops*/, 2, 5, 6, ++ // Src: (sext:{ *:[i64] } (or:{ *:[i32] } (trunc:{ *:[i32] } (assertsext:{ *:[i64] } GPR64:{ *:[i64] }:$rj)), GPR32:{ *:[i32] }:$rk)) - Complexity = 12 ++ // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (OR32:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$rj, sub_32:{ *:[i32] }), GPR32:{ *:[i32] }:$rk), sub_32:{ *:[i32] }) ++/* 2544*/ 0, /*End of Scope*/ ++/* 2545*/ 0, /*End of Scope*/ ++/* 2546*/ /*SwitchOpcode*/ 85, TARGET_VAL(ISD::XOR),// ->2634 ++/* 2549*/ OPC_MoveChild0, ++/* 2550*/ OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE), ++/* 2553*/ OPC_MoveChild0, ++/* 2554*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertSext), ++/* 2557*/ OPC_RecordChild0, // #0 = $rk ++/* 2558*/ OPC_MoveParent, ++/* 2559*/ OPC_MoveParent, ++/* 2560*/ OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, ++/* 2571*/ OPC_MoveParent, ++/* 2572*/ OPC_MoveChild1, ++/* 2573*/ OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE), ++/* 2576*/ OPC_MoveChild0, ++/* 2577*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertSext), ++/* 2580*/ OPC_RecordChild0, // #1 = $rj ++/* 2581*/ OPC_MoveParent, ++/* 2582*/ OPC_MoveParent, ++/* 2583*/ OPC_MoveParent, ++/* 2584*/ OPC_CheckType, MVT::i64, ++/* 2586*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::i64, 0/*#Ops*/, // Results = #2 ++/* 2592*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 2595*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 1, 3, // Results = #4 ++/* 2603*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 2606*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 0, 5, // Results = #6 ++/* 2614*/ OPC_EmitNode1, TARGET_VAL(LoongArch::ORN32), 0, ++ MVT::i32, 2/*#Ops*/, 4, 6, // Results = #7 ++/* 2622*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 2625*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::i64, 3/*#Ops*/, 2, 7, 8, ++ // Src: (sext:{ *:[i64] } (or:{ *:[i32] } (xor:{ *:[i32] } (trunc:{ *:[i32] } (assertsext:{ *:[i64] } GPR64:{ *:[i64] }:$rk)), -1:{ *:[i32] }), (trunc:{ *:[i32] } (assertsext:{ *:[i64] } GPR64:{ *:[i64] }:$rj)))) - Complexity = 26 ++ // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORN32:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$rj, sub_32:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$rk, sub_32:{ *:[i32] })), sub_32:{ *:[i32] }) ++/* 2634*/ 0, // EndSwitchOpcode ++/* 2635*/ /*Scope*/ 54, /*->2690*/ ++/* 2636*/ OPC_RecordChild0, // #0 = $rk ++/* 2637*/ OPC_MoveChild1, ++/* 2638*/ OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE), ++/* 2641*/ OPC_MoveChild0, ++/* 2642*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertSext), ++/* 2645*/ OPC_RecordChild0, // #1 = $rj ++/* 2646*/ OPC_MoveParent, ++/* 2647*/ OPC_MoveParent, ++/* 2648*/ OPC_MoveParent, ++/* 2649*/ OPC_CheckType, MVT::i64, ++/* 2651*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/* 2653*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::i64, 0/*#Ops*/, // Results = #2 ++/* 2659*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 2662*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 1, 3, // Results = #4 ++/* 2670*/ OPC_EmitNode1, TARGET_VAL(LoongArch::OR32), 0, ++ MVT::i32, 2/*#Ops*/, 4, 0, // Results = #5 ++/* 2678*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 2681*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::i64, 3/*#Ops*/, 2, 5, 6, ++ // Src: (sext:{ *:[i64] } (or:{ *:[i32] } GPR32:{ *:[i32] }:$rk, (trunc:{ *:[i32] } (assertsext:{ *:[i64] } GPR64:{ *:[i64] }:$rj)))) - Complexity = 12 ++ // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (OR32:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$rj, sub_32:{ *:[i32] }), GPR32:{ *:[i32] }:$rk), sub_32:{ *:[i32] }) ++/* 2690*/ 0, /*End of Scope*/ ++/* 2691*/ /*SwitchOpcode*/ 80|128,3/*464*/, TARGET_VAL(ISD::XOR),// ->3159 ++/* 2695*/ OPC_Scope, 21|128,3/*405*/, /*->3103*/ // 2 children in Scope ++/* 2698*/ OPC_MoveChild0, ++/* 2699*/ OPC_SwitchOpcode /*2 cases */, 85, TARGET_VAL(ISD::OR),// ->2788 ++/* 2703*/ OPC_MoveChild0, ++/* 2704*/ OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE), ++/* 2707*/ OPC_MoveChild0, ++/* 2708*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertSext), ++/* 2711*/ OPC_RecordChild0, // #0 = $rj ++/* 2712*/ OPC_MoveParent, ++/* 2713*/ OPC_MoveParent, ++/* 2714*/ OPC_MoveChild1, ++/* 2715*/ OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE), ++/* 2718*/ OPC_MoveChild0, ++/* 2719*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertSext), ++/* 2722*/ OPC_RecordChild0, // #1 = $rk ++/* 2723*/ OPC_MoveParent, ++/* 2724*/ OPC_MoveParent, ++/* 2725*/ OPC_MoveParent, ++/* 2726*/ OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, ++/* 2737*/ OPC_MoveParent, ++/* 2738*/ OPC_CheckType, MVT::i64, ++/* 2740*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::i64, 0/*#Ops*/, // Results = #2 ++/* 2746*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 2749*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 0, 3, // Results = #4 ++/* 2757*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 2760*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 1, 5, // Results = #6 ++/* 2768*/ OPC_EmitNode1, TARGET_VAL(LoongArch::NOR32), 0, ++ MVT::i32, 2/*#Ops*/, 4, 6, // Results = #7 ++/* 2776*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 2779*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::i64, 3/*#Ops*/, 2, 7, 8, ++ // Src: (sext:{ *:[i64] } (xor:{ *:[i32] } (or:{ *:[i32] } (trunc:{ *:[i32] } (assertsext:{ *:[i64] } GPR64:{ *:[i64] }:$rj)), (trunc:{ *:[i32] } (assertsext:{ *:[i64] } GPR64:{ *:[i64] }:$rk))), -1:{ *:[i32] })) - Complexity = 26 ++ // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (NOR32:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$rj, sub_32:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$rk, sub_32:{ *:[i32] })), sub_32:{ *:[i32] }) ++/* 2788*/ /*SwitchOpcode*/ 54|128,2/*310*/, TARGET_VAL(ISD::TRUNCATE),// ->3102 ++/* 2792*/ OPC_MoveChild0, ++/* 2793*/ OPC_SwitchOpcode /*2 cases */, 76, TARGET_VAL(ISD::OR),// ->2873 ++/* 2797*/ OPC_MoveChild0, ++/* 2798*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertSext), ++/* 2801*/ OPC_RecordChild0, // #0 = $rj ++/* 2802*/ OPC_MoveParent, ++/* 2803*/ OPC_MoveChild1, ++/* 2804*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertSext), ++/* 2807*/ OPC_RecordChild0, // #1 = $rk ++/* 2808*/ OPC_MoveParent, ++/* 2809*/ OPC_MoveParent, ++/* 2810*/ OPC_MoveParent, ++/* 2811*/ OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, ++/* 2822*/ OPC_MoveParent, ++/* 2823*/ OPC_CheckType, MVT::i64, ++/* 2825*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::i64, 0/*#Ops*/, // Results = #2 ++/* 2831*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 2834*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 1, 3, // Results = #4 ++/* 2842*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 2845*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 0, 5, // Results = #6 ++/* 2853*/ OPC_EmitNode1, TARGET_VAL(LoongArch::NOR32), 0, ++ MVT::i32, 2/*#Ops*/, 4, 6, // Results = #7 ++/* 2861*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 2864*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::i64, 3/*#Ops*/, 2, 7, 8, ++ // Src: (sext:{ *:[i64] } (xor:{ *:[i32] } (trunc:{ *:[i32] } (or:{ *:[i64] } (assertsext:{ *:[i64] } GPR64:{ *:[i64] }:$rj), (assertsext:{ *:[i64] } GPR64:{ *:[i64] }:$rk))), -1:{ *:[i32] })) - Complexity = 23 ++ // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (NOR32:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$rk, sub_32:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$rj, sub_32:{ *:[i32] })), sub_32:{ *:[i32] }) ++/* 2873*/ /*SwitchOpcode*/ 96|128,1/*224*/, TARGET_VAL(ISD::AssertSext),// ->3101 ++/* 2877*/ OPC_RecordChild0, // #0 = $rj ++/* 2878*/ OPC_MoveParent, ++/* 2879*/ OPC_MoveParent, ++/* 2880*/ OPC_Scope, 64, /*->2946*/ // 3 children in Scope ++/* 2882*/ OPC_MoveChild1, ++/* 2883*/ OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE), ++/* 2886*/ OPC_MoveChild0, ++/* 2887*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertSext), ++/* 2890*/ OPC_RecordChild0, // #1 = $rk ++/* 2891*/ OPC_MoveParent, ++/* 2892*/ OPC_MoveParent, ++/* 2893*/ OPC_MoveParent, ++/* 2894*/ OPC_CheckType, MVT::i64, ++/* 2896*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/* 2898*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::i64, 0/*#Ops*/, // Results = #2 ++/* 2904*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 2907*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 0, 3, // Results = #4 ++/* 2915*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 2918*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 1, 5, // Results = #6 ++/* 2926*/ OPC_EmitNode1, TARGET_VAL(LoongArch::XOR32), 0, ++ MVT::i32, 2/*#Ops*/, 4, 6, // Results = #7 ++/* 2934*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 2937*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::i64, 3/*#Ops*/, 2, 7, 8, ++ // Src: (sext:{ *:[i64] } (xor:{ *:[i32] } (trunc:{ *:[i32] } (assertsext:{ *:[i64] } GPR64:{ *:[i64] }:$rj)), (trunc:{ *:[i32] } (assertsext:{ *:[i64] } GPR64:{ *:[i64] }:$rk)))) - Complexity = 18 ++ // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (XOR32:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$rj, sub_32:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$rk, sub_32:{ *:[i32] })), sub_32:{ *:[i32] }) ++/* 2946*/ /*Scope*/ 54, /*->3001*/ ++/* 2947*/ OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, ++/* 2958*/ OPC_MoveParent, ++/* 2959*/ OPC_CheckType, MVT::i64, ++/* 2961*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::i64, 0/*#Ops*/, // Results = #1 ++/* 2967*/ OPC_EmitRegister, MVT::i32, LoongArch::ZERO, ++/* 2970*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 2973*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 0, 3, // Results = #4 ++/* 2981*/ OPC_EmitNode1, TARGET_VAL(LoongArch::NOR32), 0, ++ MVT::i32, 2/*#Ops*/, 2, 4, // Results = #5 ++/* 2989*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 2992*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::i64, 3/*#Ops*/, 1, 5, 6, ++ // Src: (sext:{ *:[i64] } (xor:{ *:[i32] } (trunc:{ *:[i32] } (assertsext:{ *:[i64] } GPR64:{ *:[i64] }:$rj)), -1:{ *:[i32] })) - Complexity = 17 ++ // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (NOR32:{ *:[i32] } ZERO:{ *:[i32] }, (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$rj, sub_32:{ *:[i32] })), sub_32:{ *:[i32] }) ++/* 3001*/ /*Scope*/ 98, /*->3100*/ ++/* 3002*/ OPC_RecordChild1, // #1 = $imm12 ++/* 3003*/ OPC_Scope, 51, /*->3056*/ // 2 children in Scope ++/* 3005*/ OPC_MoveChild1, ++/* 3006*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 3009*/ OPC_CheckPredicate, 13, // Predicate_immZExt12 ++/* 3011*/ OPC_MoveParent, ++/* 3012*/ OPC_MoveParent, ++/* 3013*/ OPC_CheckType, MVT::i64, ++/* 3015*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/* 3017*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::i64, 0/*#Ops*/, // Results = #2 ++/* 3023*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 3026*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 0, 3, // Results = #4 ++/* 3034*/ OPC_EmitConvertToTarget, 1, ++/* 3036*/ OPC_EmitNode1, TARGET_VAL(LoongArch::XORI32), 0, ++ MVT::i32, 2/*#Ops*/, 4, 5, // Results = #6 ++/* 3044*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 3047*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::i64, 3/*#Ops*/, 2, 6, 7, ++ // Src: (sext:{ *:[i64] } (xor:{ *:[i32] } (trunc:{ *:[i32] } (assertsext:{ *:[i64] } GPR64:{ *:[i64] }:$rj)), (imm:{ *:[i32] })<>:$imm12)) - Complexity = 16 ++ // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (XORI32:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$rj, sub_32:{ *:[i32] }), (imm:{ *:[i32] })<>:$imm12), sub_32:{ *:[i32] }) ++/* 3056*/ /*Scope*/ 42, /*->3099*/ ++/* 3057*/ OPC_MoveParent, ++/* 3058*/ OPC_CheckType, MVT::i64, ++/* 3060*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/* 3062*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::i64, 0/*#Ops*/, // Results = #2 ++/* 3068*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 3071*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 0, 3, // Results = #4 ++/* 3079*/ OPC_EmitNode1, TARGET_VAL(LoongArch::XOR32), 0, ++ MVT::i32, 2/*#Ops*/, 4, 1, // Results = #5 ++/* 3087*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 3090*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::i64, 3/*#Ops*/, 2, 5, 6, ++ // Src: (sext:{ *:[i64] } (xor:{ *:[i32] } (trunc:{ *:[i32] } (assertsext:{ *:[i64] } GPR64:{ *:[i64] }:$rj)), GPR32:{ *:[i32] }:$rk)) - Complexity = 12 ++ // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (XOR32:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$rj, sub_32:{ *:[i32] }), GPR32:{ *:[i32] }:$rk), sub_32:{ *:[i32] }) ++/* 3099*/ 0, /*End of Scope*/ ++/* 3100*/ 0, /*End of Scope*/ ++/* 3101*/ 0, // EndSwitchOpcode ++/* 3102*/ 0, // EndSwitchOpcode ++/* 3103*/ /*Scope*/ 54, /*->3158*/ ++/* 3104*/ OPC_RecordChild0, // #0 = $rk ++/* 3105*/ OPC_MoveChild1, ++/* 3106*/ OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE), ++/* 3109*/ OPC_MoveChild0, ++/* 3110*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertSext), ++/* 3113*/ OPC_RecordChild0, // #1 = $rj ++/* 3114*/ OPC_MoveParent, ++/* 3115*/ OPC_MoveParent, ++/* 3116*/ OPC_MoveParent, ++/* 3117*/ OPC_CheckType, MVT::i64, ++/* 3119*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/* 3121*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::i64, 0/*#Ops*/, // Results = #2 ++/* 3127*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 3130*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 1, 3, // Results = #4 ++/* 3138*/ OPC_EmitNode1, TARGET_VAL(LoongArch::XOR32), 0, ++ MVT::i32, 2/*#Ops*/, 4, 0, // Results = #5 ++/* 3146*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 3149*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::i64, 3/*#Ops*/, 2, 5, 6, ++ // Src: (sext:{ *:[i64] } (xor:{ *:[i32] } GPR32:{ *:[i32] }:$rk, (trunc:{ *:[i32] } (assertsext:{ *:[i64] } GPR64:{ *:[i64] }:$rj)))) - Complexity = 12 ++ // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (XOR32:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$rj, sub_32:{ *:[i32] }), GPR32:{ *:[i32] }:$rk), sub_32:{ *:[i32] }) ++/* 3158*/ 0, /*End of Scope*/ ++/* 3159*/ /*SwitchOpcode*/ 81|128,1/*209*/, TARGET_VAL(ISD::ADD),// ->3372 ++/* 3163*/ OPC_Scope, 3|128,1/*131*/, /*->3297*/ // 2 children in Scope ++/* 3166*/ OPC_MoveChild0, ++/* 3167*/ OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE), ++/* 3170*/ OPC_MoveChild0, ++/* 3171*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertSext), ++/* 3174*/ OPC_RecordChild0, // #0 = $rj ++/* 3175*/ OPC_MoveParent, ++/* 3176*/ OPC_MoveParent, ++/* 3177*/ OPC_Scope, 64, /*->3243*/ // 2 children in Scope ++/* 3179*/ OPC_MoveChild1, ++/* 3180*/ OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE), ++/* 3183*/ OPC_MoveChild0, ++/* 3184*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertSext), ++/* 3187*/ OPC_RecordChild0, // #1 = $rk ++/* 3188*/ OPC_MoveParent, ++/* 3189*/ OPC_MoveParent, ++/* 3190*/ OPC_MoveParent, ++/* 3191*/ OPC_CheckType, MVT::i64, ++/* 3193*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/* 3195*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::i64, 0/*#Ops*/, // Results = #2 ++/* 3201*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 3204*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 0, 3, // Results = #4 ++/* 3212*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 3215*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 1, 5, // Results = #6 ++/* 3223*/ OPC_EmitNode1, TARGET_VAL(LoongArch::ADD_W), 0, ++ MVT::i32, 2/*#Ops*/, 4, 6, // Results = #7 ++/* 3231*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 3234*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::i64, 3/*#Ops*/, 2, 7, 8, ++ // Src: (sext:{ *:[i64] } (add:{ *:[i32] } (trunc:{ *:[i32] } (assertsext:{ *:[i64] } GPR64:{ *:[i64] }:$rj)), (trunc:{ *:[i32] } (assertsext:{ *:[i64] } GPR64:{ *:[i64] }:$rk)))) - Complexity = 18 ++ // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ADD_W:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$rj, sub_32:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$rk, sub_32:{ *:[i32] })), sub_32:{ *:[i32] }) ++/* 3243*/ /*Scope*/ 52, /*->3296*/ ++/* 3244*/ OPC_RecordChild1, // #1 = $imm12 ++/* 3245*/ OPC_MoveChild1, ++/* 3246*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 3249*/ OPC_CheckPredicate, 14, // Predicate_immSExt12 ++/* 3251*/ OPC_MoveParent, ++/* 3252*/ OPC_MoveParent, ++/* 3253*/ OPC_CheckType, MVT::i64, ++/* 3255*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/* 3257*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::i64, 0/*#Ops*/, // Results = #2 ++/* 3263*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 3266*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 0, 3, // Results = #4 ++/* 3274*/ OPC_EmitConvertToTarget, 1, ++/* 3276*/ OPC_EmitNode1, TARGET_VAL(LoongArch::ADDI_W), 0, ++ MVT::i32, 2/*#Ops*/, 4, 5, // Results = #6 ++/* 3284*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 3287*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::i64, 3/*#Ops*/, 2, 6, 7, ++ // Src: (sext:{ *:[i64] } (add:{ *:[i32] } (trunc:{ *:[i32] } (assertsext:{ *:[i64] } GPR64:{ *:[i64] }:$rj)), (imm:{ *:[i32] })<>:$imm12)) - Complexity = 16 ++ // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ADDI_W:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$rj, sub_32:{ *:[i32] }), (imm:{ *:[i32] })<>:$imm12), sub_32:{ *:[i32] }) ++/* 3296*/ 0, /*End of Scope*/ ++/* 3297*/ /*Scope*/ 73, /*->3371*/ ++/* 3298*/ OPC_RecordChild0, // #0 = $src ++/* 3299*/ OPC_RecordChild1, // #1 = $imm12 ++/* 3300*/ OPC_Scope, 38, /*->3340*/ // 2 children in Scope ++/* 3302*/ OPC_MoveChild1, ++/* 3303*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 3306*/ OPC_CheckPredicate, 14, // Predicate_immSExt12 ++/* 3308*/ OPC_MoveParent, ++/* 3309*/ OPC_MoveParent, ++/* 3310*/ OPC_CheckType, MVT::i64, ++/* 3312*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::i64, 0/*#Ops*/, // Results = #2 ++/* 3318*/ OPC_EmitConvertToTarget, 1, ++/* 3320*/ OPC_EmitNode1, TARGET_VAL(LoongArch::ADDI_W), 0, ++ MVT::i32, 2/*#Ops*/, 0, 3, // Results = #4 ++/* 3328*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 3331*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::i64, 3/*#Ops*/, 2, 4, 5, ++ // Src: (sext:{ *:[i64] } (add:{ *:[i32] } GPR32:{ *:[i32] }:$src, (imm:{ *:[i32] })<>:$imm12)) - Complexity = 10 ++ // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ADDI_W:{ *:[i32] } GPR32:{ *:[i32] }:$src, (imm:{ *:[i32] })<>:$imm12), sub_32:{ *:[i32] }) ++/* 3340*/ /*Scope*/ 29, /*->3370*/ ++/* 3341*/ OPC_MoveParent, ++/* 3342*/ OPC_CheckType, MVT::i64, ++/* 3344*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::i64, 0/*#Ops*/, // Results = #2 ++/* 3350*/ OPC_EmitNode1, TARGET_VAL(LoongArch::ADD_W), 0, ++ MVT::i32, 2/*#Ops*/, 0, 1, // Results = #3 ++/* 3358*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 3361*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::i64, 3/*#Ops*/, 2, 3, 4, ++ // Src: (sext:{ *:[i64] } (add:{ *:[i32] } GPR32:{ *:[i32] }:$src, GPR32:{ *:[i32] }:$src2)) - Complexity = 6 ++ // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ADD_W:{ *:[i32] } GPR32:{ *:[i32] }:$src, GPR32:{ *:[i32] }:$src2), sub_32:{ *:[i32] }) ++/* 3370*/ 0, /*End of Scope*/ ++/* 3371*/ 0, /*End of Scope*/ ++/* 3372*/ /*SwitchOpcode*/ 30|128,1/*158*/, TARGET_VAL(ISD::SRA),// ->3534 ++/* 3376*/ OPC_Scope, 77, /*->3455*/ // 2 children in Scope ++/* 3378*/ OPC_MoveChild0, ++/* 3379*/ OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE), ++/* 3382*/ OPC_MoveChild0, ++/* 3383*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertSext), ++/* 3386*/ OPC_RecordChild0, // #0 = $rj ++/* 3387*/ OPC_MoveParent, ++/* 3388*/ OPC_MoveParent, ++/* 3389*/ OPC_MoveChild1, ++/* 3390*/ OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE), ++/* 3393*/ OPC_MoveChild0, ++/* 3394*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertSext), ++/* 3397*/ OPC_RecordChild0, // #1 = $rk ++/* 3398*/ OPC_MoveParent, ++/* 3399*/ OPC_CheckType, MVT::i32, ++/* 3401*/ OPC_MoveParent, ++/* 3402*/ OPC_MoveParent, ++/* 3403*/ OPC_CheckType, MVT::i64, ++/* 3405*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/* 3407*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::i64, 0/*#Ops*/, // Results = #2 ++/* 3413*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 3416*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 0, 3, // Results = #4 ++/* 3424*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 3427*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 1, 5, // Results = #6 ++/* 3435*/ OPC_EmitNode1, TARGET_VAL(LoongArch::SRA_W), 0, ++ MVT::i32, 2/*#Ops*/, 4, 6, // Results = #7 ++/* 3443*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 3446*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::i64, 3/*#Ops*/, 2, 7, 8, ++ // Src: (sext:{ *:[i64] } (sra:{ *:[i32] } (trunc:{ *:[i32] } (assertsext:{ *:[i64] } GPR64:{ *:[i64] }:$rj)), (trunc:{ *:[i32] } (assertsext:{ *:[i64] } GPR64:{ *:[i64] }:$rk)))) - Complexity = 18 ++ // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (SRA_W:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$rj, sub_32:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$rk, sub_32:{ *:[i32] })), sub_32:{ *:[i32] }) ++/* 3455*/ /*Scope*/ 77, /*->3533*/ ++/* 3456*/ OPC_RecordChild0, // #0 = $src ++/* 3457*/ OPC_RecordChild1, // #1 = $imm5 ++/* 3458*/ OPC_Scope, 40, /*->3500*/ // 2 children in Scope ++/* 3460*/ OPC_MoveChild1, ++/* 3461*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 3464*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 3466*/ OPC_CheckType, MVT::i32, ++/* 3468*/ OPC_MoveParent, ++/* 3469*/ OPC_MoveParent, ++/* 3470*/ OPC_CheckType, MVT::i64, ++/* 3472*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::i64, 0/*#Ops*/, // Results = #2 ++/* 3478*/ OPC_EmitConvertToTarget, 1, ++/* 3480*/ OPC_EmitNode1, TARGET_VAL(LoongArch::SRAI_W), 0, ++ MVT::i32, 2/*#Ops*/, 0, 3, // Results = #4 ++/* 3488*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 3491*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::i64, 3/*#Ops*/, 2, 4, 5, ++ // Src: (sext:{ *:[i64] } (sra:{ *:[i32] } GPR32:{ *:[i32] }:$src, (imm:{ *:[i32] })<>:$imm5)) - Complexity = 10 ++ // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (SRAI_W:{ *:[i32] } GPR32:{ *:[i32] }:$src, (imm:{ *:[i32] })<>:$imm5), sub_32:{ *:[i32] }) ++/* 3500*/ /*Scope*/ 31, /*->3532*/ ++/* 3501*/ OPC_CheckChild1Type, MVT::i32, ++/* 3503*/ OPC_MoveParent, ++/* 3504*/ OPC_CheckType, MVT::i64, ++/* 3506*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::i64, 0/*#Ops*/, // Results = #2 ++/* 3512*/ OPC_EmitNode1, TARGET_VAL(LoongArch::SRA_W), 0, ++ MVT::i32, 2/*#Ops*/, 0, 1, // Results = #3 ++/* 3520*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 3523*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::i64, 3/*#Ops*/, 2, 3, 4, ++ // Src: (sext:{ *:[i64] } (sra:{ *:[i32] } GPR32:{ *:[i32] }:$src, GPR32:{ *:[i32] }:$src2)) - Complexity = 6 ++ // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (SRA_W:{ *:[i32] } GPR32:{ *:[i32] }:$src, GPR32:{ *:[i32] }:$src2), sub_32:{ *:[i32] }) ++/* 3532*/ 0, /*End of Scope*/ ++/* 3533*/ 0, /*End of Scope*/ ++/* 3534*/ /*SwitchOpcode*/ 30|128,1/*158*/, TARGET_VAL(ISD::SRL),// ->3696 ++/* 3538*/ OPC_Scope, 77, /*->3617*/ // 2 children in Scope ++/* 3540*/ OPC_MoveChild0, ++/* 3541*/ OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE), ++/* 3544*/ OPC_MoveChild0, ++/* 3545*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertSext), ++/* 3548*/ OPC_RecordChild0, // #0 = $rj ++/* 3549*/ OPC_MoveParent, ++/* 3550*/ OPC_MoveParent, ++/* 3551*/ OPC_MoveChild1, ++/* 3552*/ OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE), ++/* 3555*/ OPC_MoveChild0, ++/* 3556*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertSext), ++/* 3559*/ OPC_RecordChild0, // #1 = $rk ++/* 3560*/ OPC_MoveParent, ++/* 3561*/ OPC_CheckType, MVT::i32, ++/* 3563*/ OPC_MoveParent, ++/* 3564*/ OPC_MoveParent, ++/* 3565*/ OPC_CheckType, MVT::i64, ++/* 3567*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/* 3569*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::i64, 0/*#Ops*/, // Results = #2 ++/* 3575*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 3578*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 0, 3, // Results = #4 ++/* 3586*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 3589*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 1, 5, // Results = #6 ++/* 3597*/ OPC_EmitNode1, TARGET_VAL(LoongArch::SRL_W), 0, ++ MVT::i32, 2/*#Ops*/, 4, 6, // Results = #7 ++/* 3605*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 3608*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::i64, 3/*#Ops*/, 2, 7, 8, ++ // Src: (sext:{ *:[i64] } (srl:{ *:[i32] } (trunc:{ *:[i32] } (assertsext:{ *:[i64] } GPR64:{ *:[i64] }:$rj)), (trunc:{ *:[i32] } (assertsext:{ *:[i64] } GPR64:{ *:[i64] }:$rk)))) - Complexity = 18 ++ // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (SRL_W:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$rj, sub_32:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$rk, sub_32:{ *:[i32] })), sub_32:{ *:[i32] }) ++/* 3617*/ /*Scope*/ 77, /*->3695*/ ++/* 3618*/ OPC_RecordChild0, // #0 = $src ++/* 3619*/ OPC_RecordChild1, // #1 = $imm5 ++/* 3620*/ OPC_Scope, 40, /*->3662*/ // 2 children in Scope ++/* 3622*/ OPC_MoveChild1, ++/* 3623*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 3626*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 3628*/ OPC_CheckType, MVT::i32, ++/* 3630*/ OPC_MoveParent, ++/* 3631*/ OPC_MoveParent, ++/* 3632*/ OPC_CheckType, MVT::i64, ++/* 3634*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::i64, 0/*#Ops*/, // Results = #2 ++/* 3640*/ OPC_EmitConvertToTarget, 1, ++/* 3642*/ OPC_EmitNode1, TARGET_VAL(LoongArch::SRLI_W), 0, ++ MVT::i32, 2/*#Ops*/, 0, 3, // Results = #4 ++/* 3650*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 3653*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::i64, 3/*#Ops*/, 2, 4, 5, ++ // Src: (sext:{ *:[i64] } (srl:{ *:[i32] } GPR32:{ *:[i32] }:$src, (imm:{ *:[i32] })<>:$imm5)) - Complexity = 10 ++ // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (SRLI_W:{ *:[i32] } GPR32:{ *:[i32] }:$src, (imm:{ *:[i32] })<>:$imm5), sub_32:{ *:[i32] }) ++/* 3662*/ /*Scope*/ 31, /*->3694*/ ++/* 3663*/ OPC_CheckChild1Type, MVT::i32, ++/* 3665*/ OPC_MoveParent, ++/* 3666*/ OPC_CheckType, MVT::i64, ++/* 3668*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::i64, 0/*#Ops*/, // Results = #2 ++/* 3674*/ OPC_EmitNode1, TARGET_VAL(LoongArch::SRL_W), 0, ++ MVT::i32, 2/*#Ops*/, 0, 1, // Results = #3 ++/* 3682*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 3685*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::i64, 3/*#Ops*/, 2, 3, 4, ++ // Src: (sext:{ *:[i64] } (srl:{ *:[i32] } GPR32:{ *:[i32] }:$src, GPR32:{ *:[i32] }:$src2)) - Complexity = 6 ++ // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (SRL_W:{ *:[i32] } GPR32:{ *:[i32] }:$src, GPR32:{ *:[i32] }:$src2), sub_32:{ *:[i32] }) ++/* 3694*/ 0, /*End of Scope*/ ++/* 3695*/ 0, /*End of Scope*/ ++/* 3696*/ /*SwitchOpcode*/ 110, TARGET_VAL(ISD::MUL),// ->3809 ++/* 3699*/ OPC_Scope, 75, /*->3776*/ // 2 children in Scope ++/* 3701*/ OPC_MoveChild0, ++/* 3702*/ OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE), ++/* 3705*/ OPC_MoveChild0, ++/* 3706*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertSext), ++/* 3709*/ OPC_RecordChild0, // #0 = $rj ++/* 3710*/ OPC_MoveParent, ++/* 3711*/ OPC_MoveParent, ++/* 3712*/ OPC_MoveChild1, ++/* 3713*/ OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE), ++/* 3716*/ OPC_MoveChild0, ++/* 3717*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertSext), ++/* 3720*/ OPC_RecordChild0, // #1 = $rk ++/* 3721*/ OPC_MoveParent, ++/* 3722*/ OPC_MoveParent, ++/* 3723*/ OPC_MoveParent, ++/* 3724*/ OPC_CheckType, MVT::i64, ++/* 3726*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/* 3728*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::i64, 0/*#Ops*/, // Results = #2 ++/* 3734*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 3737*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 0, 3, // Results = #4 ++/* 3745*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 3748*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 1, 5, // Results = #6 ++/* 3756*/ OPC_EmitNode1, TARGET_VAL(LoongArch::MUL_W), 0, ++ MVT::i32, 2/*#Ops*/, 4, 6, // Results = #7 ++/* 3764*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 3767*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::i64, 3/*#Ops*/, 2, 7, 8, ++ // Src: (sext:{ *:[i64] } (mul:{ *:[i32] } (trunc:{ *:[i32] } (assertsext:{ *:[i64] } GPR64:{ *:[i64] }:$rj)), (trunc:{ *:[i32] } (assertsext:{ *:[i64] } GPR64:{ *:[i64] }:$rk)))) - Complexity = 18 ++ // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (MUL_W:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$rj, sub_32:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$rk, sub_32:{ *:[i32] })), sub_32:{ *:[i32] }) ++/* 3776*/ /*Scope*/ 31, /*->3808*/ ++/* 3777*/ OPC_RecordChild0, // #0 = $src ++/* 3778*/ OPC_RecordChild1, // #1 = $src2 ++/* 3779*/ OPC_MoveParent, ++/* 3780*/ OPC_CheckType, MVT::i64, ++/* 3782*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::i64, 0/*#Ops*/, // Results = #2 ++/* 3788*/ OPC_EmitNode1, TARGET_VAL(LoongArch::MUL_W), 0, ++ MVT::i32, 2/*#Ops*/, 0, 1, // Results = #3 ++/* 3796*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 3799*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::i64, 3/*#Ops*/, 2, 3, 4, ++ // Src: (sext:{ *:[i64] } (mul:{ *:[i32] } GPR32:{ *:[i32] }:$src, GPR32:{ *:[i32] }:$src2)) - Complexity = 6 ++ // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (MUL_W:{ *:[i32] } GPR32:{ *:[i32] }:$src, GPR32:{ *:[i32] }:$src2), sub_32:{ *:[i32] }) ++/* 3808*/ 0, /*End of Scope*/ ++/* 3809*/ /*SwitchOpcode*/ 30|128,1/*158*/, TARGET_VAL(ISD::SHL),// ->3971 ++/* 3813*/ OPC_Scope, 77, /*->3892*/ // 2 children in Scope ++/* 3815*/ OPC_MoveChild0, ++/* 3816*/ OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE), ++/* 3819*/ OPC_MoveChild0, ++/* 3820*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertSext), ++/* 3823*/ OPC_RecordChild0, // #0 = $rj ++/* 3824*/ OPC_MoveParent, ++/* 3825*/ OPC_MoveParent, ++/* 3826*/ OPC_MoveChild1, ++/* 3827*/ OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE), ++/* 3830*/ OPC_MoveChild0, ++/* 3831*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertSext), ++/* 3834*/ OPC_RecordChild0, // #1 = $rk ++/* 3835*/ OPC_MoveParent, ++/* 3836*/ OPC_CheckType, MVT::i32, ++/* 3838*/ OPC_MoveParent, ++/* 3839*/ OPC_MoveParent, ++/* 3840*/ OPC_CheckType, MVT::i64, ++/* 3842*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/* 3844*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::i64, 0/*#Ops*/, // Results = #2 ++/* 3850*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 3853*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 0, 3, // Results = #4 ++/* 3861*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 3864*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 1, 5, // Results = #6 ++/* 3872*/ OPC_EmitNode1, TARGET_VAL(LoongArch::SLL_W), 0, ++ MVT::i32, 2/*#Ops*/, 4, 6, // Results = #7 ++/* 3880*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 3883*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::i64, 3/*#Ops*/, 2, 7, 8, ++ // Src: (sext:{ *:[i64] } (shl:{ *:[i32] } (trunc:{ *:[i32] } (assertsext:{ *:[i64] } GPR64:{ *:[i64] }:$rj)), (trunc:{ *:[i32] } (assertsext:{ *:[i64] } GPR64:{ *:[i64] }:$rk)))) - Complexity = 18 ++ // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (SLL_W:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$rj, sub_32:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$rk, sub_32:{ *:[i32] })), sub_32:{ *:[i32] }) ++/* 3892*/ /*Scope*/ 77, /*->3970*/ ++/* 3893*/ OPC_RecordChild0, // #0 = $src ++/* 3894*/ OPC_RecordChild1, // #1 = $imm5 ++/* 3895*/ OPC_Scope, 40, /*->3937*/ // 2 children in Scope ++/* 3897*/ OPC_MoveChild1, ++/* 3898*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 3901*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 3903*/ OPC_CheckType, MVT::i32, ++/* 3905*/ OPC_MoveParent, ++/* 3906*/ OPC_MoveParent, ++/* 3907*/ OPC_CheckType, MVT::i64, ++/* 3909*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::i64, 0/*#Ops*/, // Results = #2 ++/* 3915*/ OPC_EmitConvertToTarget, 1, ++/* 3917*/ OPC_EmitNode1, TARGET_VAL(LoongArch::SLLI_W), 0, ++ MVT::i32, 2/*#Ops*/, 0, 3, // Results = #4 ++/* 3925*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 3928*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::i64, 3/*#Ops*/, 2, 4, 5, ++ // Src: (sext:{ *:[i64] } (shl:{ *:[i32] } GPR32:{ *:[i32] }:$src, (imm:{ *:[i32] })<>:$imm5)) - Complexity = 10 ++ // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (SLLI_W:{ *:[i32] } GPR32:{ *:[i32] }:$src, (imm:{ *:[i32] })<>:$imm5), sub_32:{ *:[i32] }) ++/* 3937*/ /*Scope*/ 31, /*->3969*/ ++/* 3938*/ OPC_CheckChild1Type, MVT::i32, ++/* 3940*/ OPC_MoveParent, ++/* 3941*/ OPC_CheckType, MVT::i64, ++/* 3943*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::i64, 0/*#Ops*/, // Results = #2 ++/* 3949*/ OPC_EmitNode1, TARGET_VAL(LoongArch::SLL_W), 0, ++ MVT::i32, 2/*#Ops*/, 0, 1, // Results = #3 ++/* 3957*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 3960*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::i64, 3/*#Ops*/, 2, 3, 4, ++ // Src: (sext:{ *:[i64] } (shl:{ *:[i32] } GPR32:{ *:[i32] }:$src, GPR32:{ *:[i32] }:$src2)) - Complexity = 6 ++ // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (SLL_W:{ *:[i32] } GPR32:{ *:[i32] }:$src, GPR32:{ *:[i32] }:$src2), sub_32:{ *:[i32] }) ++/* 3969*/ 0, /*End of Scope*/ ++/* 3970*/ 0, /*End of Scope*/ ++/* 3971*/ /*SwitchOpcode*/ 110, TARGET_VAL(ISD::SUB),// ->4084 ++/* 3974*/ OPC_Scope, 75, /*->4051*/ // 2 children in Scope ++/* 3976*/ OPC_MoveChild0, ++/* 3977*/ OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE), ++/* 3980*/ OPC_MoveChild0, ++/* 3981*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertSext), ++/* 3984*/ OPC_RecordChild0, // #0 = $rj ++/* 3985*/ OPC_MoveParent, ++/* 3986*/ OPC_MoveParent, ++/* 3987*/ OPC_MoveChild1, ++/* 3988*/ OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE), ++/* 3991*/ OPC_MoveChild0, ++/* 3992*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertSext), ++/* 3995*/ OPC_RecordChild0, // #1 = $rk ++/* 3996*/ OPC_MoveParent, ++/* 3997*/ OPC_MoveParent, ++/* 3998*/ OPC_MoveParent, ++/* 3999*/ OPC_CheckType, MVT::i64, ++/* 4001*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/* 4003*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::i64, 0/*#Ops*/, // Results = #2 ++/* 4009*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 4012*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 0, 3, // Results = #4 ++/* 4020*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 4023*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 1, 5, // Results = #6 ++/* 4031*/ OPC_EmitNode1, TARGET_VAL(LoongArch::SUB_W), 0, ++ MVT::i32, 2/*#Ops*/, 4, 6, // Results = #7 ++/* 4039*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 4042*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::i64, 3/*#Ops*/, 2, 7, 8, ++ // Src: (sext:{ *:[i64] } (sub:{ *:[i32] } (trunc:{ *:[i32] } (assertsext:{ *:[i64] } GPR64:{ *:[i64] }:$rj)), (trunc:{ *:[i32] } (assertsext:{ *:[i64] } GPR64:{ *:[i64] }:$rk)))) - Complexity = 18 ++ // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (SUB_W:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$rj, sub_32:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$rk, sub_32:{ *:[i32] })), sub_32:{ *:[i32] }) ++/* 4051*/ /*Scope*/ 31, /*->4083*/ ++/* 4052*/ OPC_RecordChild0, // #0 = $src ++/* 4053*/ OPC_RecordChild1, // #1 = $src2 ++/* 4054*/ OPC_MoveParent, ++/* 4055*/ OPC_CheckType, MVT::i64, ++/* 4057*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::i64, 0/*#Ops*/, // Results = #2 ++/* 4063*/ OPC_EmitNode1, TARGET_VAL(LoongArch::SUB_W), 0, ++ MVT::i32, 2/*#Ops*/, 0, 1, // Results = #3 ++/* 4071*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 4074*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::i64, 3/*#Ops*/, 2, 3, 4, ++ // Src: (sext:{ *:[i64] } (sub:{ *:[i32] } GPR32:{ *:[i32] }:$src, GPR32:{ *:[i32] }:$src2)) - Complexity = 6 ++ // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (SUB_W:{ *:[i32] } GPR32:{ *:[i32] }:$src, GPR32:{ *:[i32] }:$src2), sub_32:{ *:[i32] }) ++/* 4083*/ 0, /*End of Scope*/ ++/* 4084*/ /*SwitchOpcode*/ 92, TARGET_VAL(ISD::SELECT),// ->4179 ++/* 4087*/ OPC_RecordChild0, // #0 = $cond ++/* 4088*/ OPC_CheckChild0Type, MVT::i32, ++/* 4090*/ OPC_MoveChild1, ++/* 4091*/ OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE), ++/* 4094*/ OPC_MoveChild0, ++/* 4095*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertSext), ++/* 4098*/ OPC_RecordChild0, // #1 = $t ++/* 4099*/ OPC_MoveParent, ++/* 4100*/ OPC_MoveParent, ++/* 4101*/ OPC_MoveChild2, ++/* 4102*/ OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE), ++/* 4105*/ OPC_MoveChild0, ++/* 4106*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertSext), ++/* 4109*/ OPC_RecordChild0, // #2 = $f ++/* 4110*/ OPC_MoveParent, ++/* 4111*/ OPC_MoveParent, ++/* 4112*/ OPC_MoveParent, ++/* 4113*/ OPC_CheckType, MVT::i64, ++/* 4115*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::i64, 0/*#Ops*/, // Results = #3 ++/* 4121*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 4124*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 1, 4, // Results = #5 ++/* 4132*/ OPC_EmitNode1, TARGET_VAL(LoongArch::MASKEQZ32), 0, ++ MVT::i32, 2/*#Ops*/, 5, 0, // Results = #6 ++/* 4140*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 4143*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 2, 7, // Results = #8 ++/* 4151*/ OPC_EmitNode1, TARGET_VAL(LoongArch::MASKNEZ32), 0, ++ MVT::i32, 2/*#Ops*/, 8, 0, // Results = #9 ++/* 4159*/ OPC_EmitNode1, TARGET_VAL(LoongArch::OR32), 0, ++ MVT::i32, 2/*#Ops*/, 6, 9, // Results = #10 ++/* 4167*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 4170*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::i64, 3/*#Ops*/, 3, 10, 11, ++ // Src: (sext:{ *:[i64] } (select:{ *:[i32] } i32:{ *:[i32] }:$cond, (trunc:{ *:[i32] } (assertsext:{ *:[i64] } GPR64:{ *:[i64] }:$t)), (trunc:{ *:[i32] } (assertsext:{ *:[i64] } GPR64:{ *:[i64] }:$f)))) - Complexity = 18 ++ // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (OR32:{ *:[i32] } (MASKEQZ32:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$t, sub_32:{ *:[i32] }), i32:{ *:[i32] }:$cond), (MASKNEZ32:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$f, sub_32:{ *:[i32] }), i32:{ *:[i32] }:$cond)), sub_32:{ *:[i32] }) ++/* 4179*/ /*SwitchOpcode*/ 75, TARGET_VAL(ISD::SREM),// ->4257 ++/* 4182*/ OPC_MoveChild0, ++/* 4183*/ OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE), ++/* 4186*/ OPC_MoveChild0, ++/* 4187*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertSext), ++/* 4190*/ OPC_RecordChild0, // #0 = $rj ++/* 4191*/ OPC_MoveParent, ++/* 4192*/ OPC_MoveParent, ++/* 4193*/ OPC_MoveChild1, ++/* 4194*/ OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE), ++/* 4197*/ OPC_MoveChild0, ++/* 4198*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertSext), ++/* 4201*/ OPC_RecordChild0, // #1 = $rk ++/* 4202*/ OPC_MoveParent, ++/* 4203*/ OPC_MoveParent, ++/* 4204*/ OPC_MoveParent, ++/* 4205*/ OPC_CheckType, MVT::i64, ++/* 4207*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/* 4209*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::i64, 0/*#Ops*/, // Results = #2 ++/* 4215*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 4218*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 0, 3, // Results = #4 ++/* 4226*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 4229*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 1, 5, // Results = #6 ++/* 4237*/ OPC_EmitNode1, TARGET_VAL(LoongArch::MOD_W), 0, ++ MVT::i32, 2/*#Ops*/, 4, 6, // Results = #7 ++/* 4245*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 4248*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::i64, 3/*#Ops*/, 2, 7, 8, ++ // Src: (sext:{ *:[i64] } (srem:{ *:[i32] } (trunc:{ *:[i32] } (assertsext:{ *:[i64] } GPR64:{ *:[i64] }:$rj)), (trunc:{ *:[i32] } (assertsext:{ *:[i64] } GPR64:{ *:[i64] }:$rk)))) - Complexity = 18 ++ // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (MOD_W:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$rj, sub_32:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$rk, sub_32:{ *:[i32] })), sub_32:{ *:[i32] }) ++/* 4257*/ /*SwitchOpcode*/ 75, TARGET_VAL(ISD::UDIV),// ->4335 ++/* 4260*/ OPC_MoveChild0, ++/* 4261*/ OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE), ++/* 4264*/ OPC_MoveChild0, ++/* 4265*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertSext), ++/* 4268*/ OPC_RecordChild0, // #0 = $rj ++/* 4269*/ OPC_MoveParent, ++/* 4270*/ OPC_MoveParent, ++/* 4271*/ OPC_MoveChild1, ++/* 4272*/ OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE), ++/* 4275*/ OPC_MoveChild0, ++/* 4276*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertSext), ++/* 4279*/ OPC_RecordChild0, // #1 = $rk ++/* 4280*/ OPC_MoveParent, ++/* 4281*/ OPC_MoveParent, ++/* 4282*/ OPC_MoveParent, ++/* 4283*/ OPC_CheckType, MVT::i64, ++/* 4285*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/* 4287*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::i64, 0/*#Ops*/, // Results = #2 ++/* 4293*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 4296*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 0, 3, // Results = #4 ++/* 4304*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 4307*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 1, 5, // Results = #6 ++/* 4315*/ OPC_EmitNode1, TARGET_VAL(LoongArch::DIV_WU), 0, ++ MVT::i32, 2/*#Ops*/, 4, 6, // Results = #7 ++/* 4323*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 4326*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::i64, 3/*#Ops*/, 2, 7, 8, ++ // Src: (sext:{ *:[i64] } (udiv:{ *:[i32] } (trunc:{ *:[i32] } (assertsext:{ *:[i64] } GPR64:{ *:[i64] }:$rj)), (trunc:{ *:[i32] } (assertsext:{ *:[i64] } GPR64:{ *:[i64] }:$rk)))) - Complexity = 18 ++ // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (DIV_WU:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$rj, sub_32:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$rk, sub_32:{ *:[i32] })), sub_32:{ *:[i32] }) ++/* 4335*/ /*SwitchOpcode*/ 75, TARGET_VAL(ISD::UREM),// ->4413 ++/* 4338*/ OPC_MoveChild0, ++/* 4339*/ OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE), ++/* 4342*/ OPC_MoveChild0, ++/* 4343*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertSext), ++/* 4346*/ OPC_RecordChild0, // #0 = $rj ++/* 4347*/ OPC_MoveParent, ++/* 4348*/ OPC_MoveParent, ++/* 4349*/ OPC_MoveChild1, ++/* 4350*/ OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE), ++/* 4353*/ OPC_MoveChild0, ++/* 4354*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertSext), ++/* 4357*/ OPC_RecordChild0, // #1 = $rk ++/* 4358*/ OPC_MoveParent, ++/* 4359*/ OPC_MoveParent, ++/* 4360*/ OPC_MoveParent, ++/* 4361*/ OPC_CheckType, MVT::i64, ++/* 4363*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/* 4365*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::i64, 0/*#Ops*/, // Results = #2 ++/* 4371*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 4374*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 0, 3, // Results = #4 ++/* 4382*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 4385*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 1, 5, // Results = #6 ++/* 4393*/ OPC_EmitNode1, TARGET_VAL(LoongArch::MOD_WU), 0, ++ MVT::i32, 2/*#Ops*/, 4, 6, // Results = #7 ++/* 4401*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 4404*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::i64, 3/*#Ops*/, 2, 7, 8, ++ // Src: (sext:{ *:[i64] } (urem:{ *:[i32] } (trunc:{ *:[i32] } (assertsext:{ *:[i64] } GPR64:{ *:[i64] }:$rj)), (trunc:{ *:[i32] } (assertsext:{ *:[i64] } GPR64:{ *:[i64] }:$rk)))) - Complexity = 18 ++ // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (MOD_WU:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$rj, sub_32:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$rk, sub_32:{ *:[i32] })), sub_32:{ *:[i32] }) ++/* 4413*/ /*SwitchOpcode*/ 13, TARGET_VAL(ISD::BITCAST),// ->4429 ++/* 4416*/ OPC_RecordChild0, // #0 = $src ++/* 4417*/ OPC_CheckChild0Type, MVT::f32, ++/* 4419*/ OPC_MoveParent, ++/* 4420*/ OPC_CheckType, MVT::i64, ++/* 4422*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MOVFR2GR_DS), 0, ++ MVT::i64, 1/*#Ops*/, 0, ++ // Src: (sext:{ *:[i64] } (bitconvert:{ *:[i32] } FGR32Opnd:{ *:[f32] }:$src)) - Complexity = 6 ++ // Dst: (MOVFR2GR_DS:{ *:[i64] } FGR32Opnd:{ *:[f32] }:$src) ++/* 4429*/ 0, // EndSwitchOpcode ++/* 4430*/ /*Scope*/ 101, /*->4532*/ ++/* 4431*/ OPC_RecordChild0, // #0 = $src ++/* 4432*/ OPC_SwitchType /*4 cases */, 9, MVT::i64,// ->4444 ++/* 4435*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/* 4437*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLLI_W_64_32), 0, ++ MVT::i64, 1/*#Ops*/, 0, ++ // Src: (sext:{ *:[i64] } GPR32:{ *:[i32] }:$src) - Complexity = 3 ++ // Dst: (SLLI_W_64_32:{ *:[i64] } GPR32:{ *:[i32] }:$src) ++/* 4444*/ /*SwitchType*/ 27, MVT::v16i16,// ->4473 ++/* 4446*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 4448*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::v32i8, 0/*#Ops*/, // Results = #1 ++/* 4454*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/* 4457*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::v32i8, 3/*#Ops*/, 1, 0, 2, // Results = #3 ++/* 4466*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VEXT2XV_H_B), 0, ++ MVT::v16i16, 1/*#Ops*/, 3, ++ // Src: (sext:{ *:[v16i16] } LSX128B:{ *:[v16i8] }:$vj) - Complexity = 3 ++ // Dst: (VEXT2XV_H_B:{ *:[v16i16] } (INSERT_SUBREG:{ *:[v32i8] } (IMPLICIT_DEF:{ *:[v32i8] }), LSX128B:{ *:[v16i8] }:$vj, sub_128:{ *:[i32] })) ++/* 4473*/ /*SwitchType*/ 27, MVT::v8i32,// ->4502 ++/* 4475*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 4477*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::v16i16, 0/*#Ops*/, // Results = #1 ++/* 4483*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/* 4486*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::v16i16, 3/*#Ops*/, 1, 0, 2, // Results = #3 ++/* 4495*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VEXT2XV_W_H), 0, ++ MVT::v8i32, 1/*#Ops*/, 3, ++ // Src: (sext:{ *:[v8i32] } LSX128H:{ *:[v8i16] }:$vj) - Complexity = 3 ++ // Dst: (VEXT2XV_W_H:{ *:[v8i32] } (INSERT_SUBREG:{ *:[v16i16] } (IMPLICIT_DEF:{ *:[v16i16] }), LSX128H:{ *:[v8i16] }:$vj, sub_128:{ *:[i32] })) ++/* 4502*/ /*SwitchType*/ 27, MVT::v4i64,// ->4531 ++/* 4504*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 4506*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::v8i32, 0/*#Ops*/, // Results = #1 ++/* 4512*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/* 4515*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::v8i32, 3/*#Ops*/, 1, 0, 2, // Results = #3 ++/* 4524*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VEXT2XV_D_W), 0, ++ MVT::v4i64, 1/*#Ops*/, 3, ++ // Src: (sext:{ *:[v4i64] } LSX128W:{ *:[v4i32] }:$vj) - Complexity = 3 ++ // Dst: (VEXT2XV_D_W:{ *:[v4i64] } (INSERT_SUBREG:{ *:[v8i32] } (IMPLICIT_DEF:{ *:[v8i32] }), LSX128W:{ *:[v4i32] }:$vj, sub_128:{ *:[i32] })) ++/* 4531*/ 0, // EndSwitchType ++/* 4532*/ 0, /*End of Scope*/ ++/* 4533*/ /*SwitchOpcode*/ 123|128,3/*507*/, TARGET_VAL(ISD::SELECT),// ->5044 ++/* 4537*/ OPC_Scope, 94, /*->4633*/ // 4 children in Scope ++/* 4539*/ OPC_MoveChild0, ++/* 4540*/ OPC_CheckOpcode, TARGET_VAL(ISD::SETCC), ++/* 4543*/ OPC_MoveChild0, ++/* 4544*/ OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE), ++/* 4547*/ OPC_MoveChild0, ++/* 4548*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertSext), ++/* 4551*/ OPC_RecordChild0, // #0 = $cond ++/* 4552*/ OPC_MoveParent, ++/* 4553*/ OPC_CheckType, MVT::i32, ++/* 4555*/ OPC_MoveParent, ++/* 4556*/ OPC_MoveChild1, ++/* 4557*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 4560*/ OPC_CheckPredicate, 16, // Predicate_immz ++/* 4562*/ OPC_MoveParent, ++/* 4563*/ OPC_CheckType, MVT::i32, ++/* 4565*/ OPC_Scope, 32, /*->4599*/ // 2 children in Scope ++/* 4567*/ OPC_CheckChild2CondCode, ISD::SETNE, ++/* 4569*/ OPC_MoveParent, ++/* 4570*/ OPC_MoveChild1, ++/* 4571*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 4574*/ OPC_CheckPredicate, 16, // Predicate_immz ++/* 4576*/ OPC_MoveParent, ++/* 4577*/ OPC_RecordChild2, // #1 = $f ++/* 4578*/ OPC_CheckType, MVT::i32, ++/* 4580*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 4583*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 0, 2, // Results = #3 ++/* 4591*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MASKNEZ32), 0, ++ MVT::i32, 2/*#Ops*/, 1, 3, ++ // Src: (select:{ *:[i32] } (setcc:{ *:[i32] } (trunc:{ *:[i32] } (assertsext:{ *:[i64] } GPR64:{ *:[i64] }:$cond)), (imm:{ *:[i32] })<>, SETNE:{ *:[Other] }), (imm:{ *:[i32] })<>, i32:{ *:[i32] }:$f) - Complexity = 20 ++ // Dst: (MASKNEZ32:{ *:[i32] } i32:{ *:[i32] }:$f, (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$cond, sub_32:{ *:[i32] })) ++/* 4599*/ /*Scope*/ 32, /*->4632*/ ++/* 4600*/ OPC_CheckChild2CondCode, ISD::SETEQ, ++/* 4602*/ OPC_MoveParent, ++/* 4603*/ OPC_MoveChild1, ++/* 4604*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 4607*/ OPC_CheckPredicate, 16, // Predicate_immz ++/* 4609*/ OPC_MoveParent, ++/* 4610*/ OPC_RecordChild2, // #1 = $f ++/* 4611*/ OPC_CheckType, MVT::i32, ++/* 4613*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 4616*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 0, 2, // Results = #3 ++/* 4624*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MASKEQZ32), 0, ++ MVT::i32, 2/*#Ops*/, 1, 3, ++ // Src: (select:{ *:[i32] } (setcc:{ *:[i32] } (trunc:{ *:[i32] } (assertsext:{ *:[i64] } GPR64:{ *:[i64] }:$cond)), (imm:{ *:[i32] })<>, SETEQ:{ *:[Other] }), (imm:{ *:[i32] })<>, i32:{ *:[i32] }:$f) - Complexity = 20 ++ // Dst: (MASKEQZ32:{ *:[i32] } i32:{ *:[i32] }:$f, (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$cond, sub_32:{ *:[i32] })) ++/* 4632*/ 0, /*End of Scope*/ ++/* 4633*/ /*Scope*/ 73, /*->4707*/ ++/* 4634*/ OPC_RecordChild0, // #0 = $cond ++/* 4635*/ OPC_CheckChild0Type, MVT::i32, ++/* 4637*/ OPC_MoveChild1, ++/* 4638*/ OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE), ++/* 4641*/ OPC_MoveChild0, ++/* 4642*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertSext), ++/* 4645*/ OPC_RecordChild0, // #1 = $t ++/* 4646*/ OPC_MoveParent, ++/* 4647*/ OPC_MoveParent, ++/* 4648*/ OPC_MoveChild2, ++/* 4649*/ OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE), ++/* 4652*/ OPC_MoveChild0, ++/* 4653*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertSext), ++/* 4656*/ OPC_RecordChild0, // #2 = $f ++/* 4657*/ OPC_MoveParent, ++/* 4658*/ OPC_MoveParent, ++/* 4659*/ OPC_CheckType, MVT::i32, ++/* 4661*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 4664*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 1, 3, // Results = #4 ++/* 4672*/ OPC_EmitNode1, TARGET_VAL(LoongArch::MASKEQZ32), 0, ++ MVT::i32, 2/*#Ops*/, 4, 0, // Results = #5 ++/* 4680*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 4683*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 2, 6, // Results = #7 ++/* 4691*/ OPC_EmitNode1, TARGET_VAL(LoongArch::MASKNEZ32), 0, ++ MVT::i32, 2/*#Ops*/, 7, 0, // Results = #8 ++/* 4699*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::OR32), 0, ++ MVT::i32, 2/*#Ops*/, 5, 8, ++ // Src: (select:{ *:[i32] } i32:{ *:[i32] }:$cond, (trunc:{ *:[i32] } (assertsext:{ *:[i64] } GPR64:{ *:[i64] }:$t)), (trunc:{ *:[i32] } (assertsext:{ *:[i64] } GPR64:{ *:[i64] }:$f))) - Complexity = 15 ++ // Dst: (OR32:{ *:[i32] } (MASKEQZ32:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$t, sub_32:{ *:[i32] }), i32:{ *:[i32] }:$cond), (MASKNEZ32:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$f, sub_32:{ *:[i32] }), i32:{ *:[i32] }:$cond)) ++/* 4707*/ /*Scope*/ 42|128,1/*170*/, /*->4879*/ ++/* 4709*/ OPC_MoveChild0, ++/* 4710*/ OPC_CheckOpcode, TARGET_VAL(ISD::SETCC), ++/* 4713*/ OPC_RecordChild0, // #0 = $cond ++/* 4714*/ OPC_CheckChild0Type, MVT::i32, ++/* 4716*/ OPC_MoveChild1, ++/* 4717*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 4720*/ OPC_CheckPredicate, 16, // Predicate_immz ++/* 4722*/ OPC_MoveParent, ++/* 4723*/ OPC_CheckType, MVT::i32, ++/* 4725*/ OPC_Scope, 21, /*->4748*/ // 6 children in Scope ++/* 4727*/ OPC_CheckChild2CondCode, ISD::SETEQ, ++/* 4729*/ OPC_MoveParent, ++/* 4730*/ OPC_RecordChild1, // #1 = $t ++/* 4731*/ OPC_MoveChild2, ++/* 4732*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 4735*/ OPC_CheckPredicate, 16, // Predicate_immz ++/* 4737*/ OPC_MoveParent, ++/* 4738*/ OPC_CheckType, MVT::i32, ++/* 4740*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MASKNEZ32), 0, ++ MVT::i32, 2/*#Ops*/, 1, 0, ++ // Src: (select:{ *:[i32] } (setcc:{ *:[i32] } i32:{ *:[i32] }:$cond, (imm:{ *:[i32] })<>, SETEQ:{ *:[Other] }), i32:{ *:[i32] }:$t, (imm:{ *:[i32] })<>) - Complexity = 14 ++ // Dst: (MASKNEZ32:{ *:[i32] } i32:{ *:[i32] }:$t, i32:{ *:[i32] }:$cond) ++/* 4748*/ /*Scope*/ 21, /*->4770*/ ++/* 4749*/ OPC_CheckChild2CondCode, ISD::SETNE, ++/* 4751*/ OPC_MoveParent, ++/* 4752*/ OPC_RecordChild1, // #1 = $t ++/* 4753*/ OPC_MoveChild2, ++/* 4754*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 4757*/ OPC_CheckPredicate, 16, // Predicate_immz ++/* 4759*/ OPC_MoveParent, ++/* 4760*/ OPC_CheckType, MVT::i32, ++/* 4762*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MASKEQZ32), 0, ++ MVT::i32, 2/*#Ops*/, 1, 0, ++ // Src: (select:{ *:[i32] } (setcc:{ *:[i32] } i32:{ *:[i32] }:$cond, (imm:{ *:[i32] })<>, SETNE:{ *:[Other] }), i32:{ *:[i32] }:$t, (imm:{ *:[i32] })<>) - Complexity = 14 ++ // Dst: (MASKEQZ32:{ *:[i32] } i32:{ *:[i32] }:$t, i32:{ *:[i32] }:$cond) ++/* 4770*/ /*Scope*/ 21, /*->4792*/ ++/* 4771*/ OPC_CheckChild2CondCode, ISD::SETEQ, ++/* 4773*/ OPC_MoveParent, ++/* 4774*/ OPC_MoveChild1, ++/* 4775*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 4778*/ OPC_CheckPredicate, 16, // Predicate_immz ++/* 4780*/ OPC_MoveParent, ++/* 4781*/ OPC_RecordChild2, // #1 = $f ++/* 4782*/ OPC_CheckType, MVT::i32, ++/* 4784*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MASKEQZ32), 0, ++ MVT::i32, 2/*#Ops*/, 1, 0, ++ // Src: (select:{ *:[i32] } (setcc:{ *:[i32] } i32:{ *:[i32] }:$cond, (imm:{ *:[i32] })<>, SETEQ:{ *:[Other] }), (imm:{ *:[i32] })<>, i32:{ *:[i32] }:$f) - Complexity = 14 ++ // Dst: (MASKEQZ32:{ *:[i32] } i32:{ *:[i32] }:$f, i32:{ *:[i32] }:$cond) ++/* 4792*/ /*Scope*/ 21, /*->4814*/ ++/* 4793*/ OPC_CheckChild2CondCode, ISD::SETNE, ++/* 4795*/ OPC_MoveParent, ++/* 4796*/ OPC_MoveChild1, ++/* 4797*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 4800*/ OPC_CheckPredicate, 16, // Predicate_immz ++/* 4802*/ OPC_MoveParent, ++/* 4803*/ OPC_RecordChild2, // #1 = $f ++/* 4804*/ OPC_CheckType, MVT::i32, ++/* 4806*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MASKNEZ32), 0, ++ MVT::i32, 2/*#Ops*/, 1, 0, ++ // Src: (select:{ *:[i32] } (setcc:{ *:[i32] } i32:{ *:[i32] }:$cond, (imm:{ *:[i32] })<>, SETNE:{ *:[Other] }), (imm:{ *:[i32] })<>, i32:{ *:[i32] }:$f) - Complexity = 14 ++ // Dst: (MASKNEZ32:{ *:[i32] } i32:{ *:[i32] }:$f, i32:{ *:[i32] }:$cond) ++/* 4814*/ /*Scope*/ 31, /*->4846*/ ++/* 4815*/ OPC_CheckChild2CondCode, ISD::SETEQ, ++/* 4817*/ OPC_MoveParent, ++/* 4818*/ OPC_RecordChild1, // #1 = $t ++/* 4819*/ OPC_RecordChild2, // #2 = $f ++/* 4820*/ OPC_CheckType, MVT::i32, ++/* 4822*/ OPC_EmitNode1, TARGET_VAL(LoongArch::MASKNEZ32), 0, ++ MVT::i32, 2/*#Ops*/, 1, 0, // Results = #3 ++/* 4830*/ OPC_EmitNode1, TARGET_VAL(LoongArch::MASKEQZ32), 0, ++ MVT::i32, 2/*#Ops*/, 2, 0, // Results = #4 ++/* 4838*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::OR32), 0, ++ MVT::i32, 2/*#Ops*/, 3, 4, ++ // Src: (select:{ *:[i32] } (setcc:{ *:[i32] } i32:{ *:[i32] }:$cond, (imm:{ *:[i32] })<>, SETEQ:{ *:[Other] }), i32:{ *:[i32] }:$t, i32:{ *:[i32] }:$f) - Complexity = 10 ++ // Dst: (OR32:{ *:[i32] } (MASKNEZ32:{ *:[i32] } i32:{ *:[i32] }:$t, i32:{ *:[i32] }:$cond), (MASKEQZ32:{ *:[i32] } i32:{ *:[i32] }:$f, i32:{ *:[i32] }:$cond)) ++/* 4846*/ /*Scope*/ 31, /*->4878*/ ++/* 4847*/ OPC_CheckChild2CondCode, ISD::SETNE, ++/* 4849*/ OPC_MoveParent, ++/* 4850*/ OPC_RecordChild1, // #1 = $t ++/* 4851*/ OPC_RecordChild2, // #2 = $f ++/* 4852*/ OPC_CheckType, MVT::i32, ++/* 4854*/ OPC_EmitNode1, TARGET_VAL(LoongArch::MASKEQZ32), 0, ++ MVT::i32, 2/*#Ops*/, 1, 0, // Results = #3 ++/* 4862*/ OPC_EmitNode1, TARGET_VAL(LoongArch::MASKNEZ32), 0, ++ MVT::i32, 2/*#Ops*/, 2, 0, // Results = #4 ++/* 4870*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::OR32), 0, ++ MVT::i32, 2/*#Ops*/, 3, 4, ++ // Src: (select:{ *:[i32] } (setcc:{ *:[i32] } i32:{ *:[i32] }:$cond, (imm:{ *:[i32] })<>, SETNE:{ *:[Other] }), i32:{ *:[i32] }:$t, i32:{ *:[i32] }:$f) - Complexity = 10 ++ // Dst: (OR32:{ *:[i32] } (MASKEQZ32:{ *:[i32] } i32:{ *:[i32] }:$t, i32:{ *:[i32] }:$cond), (MASKNEZ32:{ *:[i32] } i32:{ *:[i32] }:$f, i32:{ *:[i32] }:$cond)) ++/* 4878*/ 0, /*End of Scope*/ ++/* 4879*/ /*Scope*/ 34|128,1/*162*/, /*->5043*/ ++/* 4881*/ OPC_RecordChild0, // #0 = $cond ++/* 4882*/ OPC_CheckChild0Type, MVT::i32, ++/* 4884*/ OPC_Scope, 18, /*->4904*/ // 3 children in Scope ++/* 4886*/ OPC_RecordChild1, // #1 = $t ++/* 4887*/ OPC_MoveChild2, ++/* 4888*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 4891*/ OPC_CheckPredicate, 16, // Predicate_immz ++/* 4893*/ OPC_MoveParent, ++/* 4894*/ OPC_CheckType, MVT::i32, ++/* 4896*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MASKEQZ32), 0, ++ MVT::i32, 2/*#Ops*/, 1, 0, ++ // Src: (select:{ *:[i32] } i32:{ *:[i32] }:$cond, i32:{ *:[i32] }:$t, (imm:{ *:[i32] })<>) - Complexity = 7 ++ // Dst: (MASKEQZ32:{ *:[i32] } i32:{ *:[i32] }:$t, i32:{ *:[i32] }:$cond) ++/* 4904*/ /*Scope*/ 18, /*->4923*/ ++/* 4905*/ OPC_MoveChild1, ++/* 4906*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 4909*/ OPC_CheckPredicate, 16, // Predicate_immz ++/* 4911*/ OPC_MoveParent, ++/* 4912*/ OPC_RecordChild2, // #1 = $f ++/* 4913*/ OPC_CheckType, MVT::i32, ++/* 4915*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MASKNEZ32), 0, ++ MVT::i32, 2/*#Ops*/, 1, 0, ++ // Src: (select:{ *:[i32] } i32:{ *:[i32] }:$cond, (imm:{ *:[i32] })<>, i32:{ *:[i32] }:$f) - Complexity = 7 ++ // Dst: (MASKNEZ32:{ *:[i32] } i32:{ *:[i32] }:$f, i32:{ *:[i32] }:$cond) ++/* 4923*/ /*Scope*/ 118, /*->5042*/ ++/* 4924*/ OPC_RecordChild1, // #1 = $t ++/* 4925*/ OPC_RecordChild2, // #2 = $f ++/* 4926*/ OPC_SwitchType /*4 cases */, 37, MVT::i32,// ->4966 ++/* 4929*/ OPC_Scope, 24, /*->4955*/ // 2 children in Scope ++/* 4931*/ OPC_EmitNode1, TARGET_VAL(LoongArch::MASKEQZ32), 0, ++ MVT::i32, 2/*#Ops*/, 1, 0, // Results = #3 ++/* 4939*/ OPC_EmitNode1, TARGET_VAL(LoongArch::MASKNEZ32), 0, ++ MVT::i32, 2/*#Ops*/, 2, 0, // Results = #4 ++/* 4947*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::OR32), 0, ++ MVT::i32, 2/*#Ops*/, 3, 4, ++ // Src: (select:{ *:[i32] } i32:{ *:[i32] }:$cond, i32:{ *:[i32] }:$t, i32:{ *:[i32] }:$f) - Complexity = 3 ++ // Dst: (OR32:{ *:[i32] } (MASKEQZ32:{ *:[i32] } i32:{ *:[i32] }:$t, i32:{ *:[i32] }:$cond), (MASKNEZ32:{ *:[i32] } i32:{ *:[i32] }:$f, i32:{ *:[i32] }:$cond)) ++/* 4955*/ /*Scope*/ 9, /*->4965*/ ++/* 4956*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::PseudoSELECT_I), 0, ++ MVT::i32, 3/*#Ops*/, 0, 1, 2, ++ // Src: (select:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$cond, GPR32Opnd:{ *:[i32] }:$T, GPR32Opnd:{ *:[i32] }:$F) - Complexity = 3 ++ // Dst: (PseudoSELECT_I:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$cond, GPR32Opnd:{ *:[i32] }:$T, GPR32Opnd:{ *:[i32] }:$F) ++/* 4965*/ 0, /*End of Scope*/ ++/* 4966*/ /*SwitchType*/ 51, MVT::i64,// ->5019 ++/* 4968*/ OPC_Scope, 38, /*->5008*/ // 2 children in Scope ++/* 4970*/ OPC_EmitNode1, TARGET_VAL(LoongArch::SLLI_W_64_32), 0, ++ MVT::i64, 1/*#Ops*/, 0, // Results = #3 ++/* 4977*/ OPC_EmitNode1, TARGET_VAL(LoongArch::MASKEQZ), 0, ++ MVT::i64, 2/*#Ops*/, 1, 3, // Results = #4 ++/* 4985*/ OPC_EmitNode1, TARGET_VAL(LoongArch::SLLI_W_64_32), 0, ++ MVT::i64, 1/*#Ops*/, 0, // Results = #5 ++/* 4992*/ OPC_EmitNode1, TARGET_VAL(LoongArch::MASKNEZ), 0, ++ MVT::i64, 2/*#Ops*/, 2, 5, // Results = #6 ++/* 5000*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::OR), 0, ++ MVT::i64, 2/*#Ops*/, 4, 6, ++ // Src: (select:{ *:[i64] } i32:{ *:[i32] }:$cond, i64:{ *:[i64] }:$t, i64:{ *:[i64] }:$f) - Complexity = 3 ++ // Dst: (OR:{ *:[i64] } (MASKEQZ:{ *:[i64] } i64:{ *:[i64] }:$t, (SLLI_W_64_32:{ *:[i64] } i32:{ *:[i32] }:$cond)), (MASKNEZ:{ *:[i64] } i64:{ *:[i64] }:$f, (SLLI_W_64_32:{ *:[i64] } i32:{ *:[i32] }:$cond))) ++/* 5008*/ /*Scope*/ 9, /*->5018*/ ++/* 5009*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::PseudoSELECT_I64), 0, ++ MVT::i64, 3/*#Ops*/, 0, 1, 2, ++ // Src: (select:{ *:[i64] } GPR32Opnd:{ *:[i32] }:$cond, GPR64Opnd:{ *:[i64] }:$T, GPR64Opnd:{ *:[i64] }:$F) - Complexity = 3 ++ // Dst: (PseudoSELECT_I64:{ *:[i64] } GPR32Opnd:{ *:[i32] }:$cond, GPR64Opnd:{ *:[i64] }:$T, GPR64Opnd:{ *:[i64] }:$F) ++/* 5018*/ 0, /*End of Scope*/ ++/* 5019*/ /*SwitchType*/ 9, MVT::f32,// ->5030 ++/* 5021*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::PseudoSELECT_S), 0, ++ MVT::f32, 3/*#Ops*/, 0, 1, 2, ++ // Src: (select:{ *:[f32] } GPR32Opnd:{ *:[i32] }:$cond, FGR32Opnd:{ *:[f32] }:$T, FGR32Opnd:{ *:[f32] }:$F) - Complexity = 3 ++ // Dst: (PseudoSELECT_S:{ *:[f32] } GPR32Opnd:{ *:[i32] }:$cond, FGR32Opnd:{ *:[f32] }:$T, FGR32Opnd:{ *:[f32] }:$F) ++/* 5030*/ /*SwitchType*/ 9, MVT::f64,// ->5041 ++/* 5032*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::PseudoSELECT_D64), 0, ++ MVT::f64, 3/*#Ops*/, 0, 1, 2, ++ // Src: (select:{ *:[f64] } GPR32Opnd:{ *:[i32] }:$cond, FGR64Opnd:{ *:[f64] }:$T, FGR64Opnd:{ *:[f64] }:$F) - Complexity = 3 ++ // Dst: (PseudoSELECT_D64:{ *:[f64] } GPR32Opnd:{ *:[i32] }:$cond, FGR64Opnd:{ *:[f64] }:$T, FGR64Opnd:{ *:[f64] }:$F) ++/* 5041*/ 0, // EndSwitchType ++/* 5042*/ 0, /*End of Scope*/ ++/* 5043*/ 0, /*End of Scope*/ ++/* 5044*/ /*SwitchOpcode*/ 94|128,1/*222*/, TARGET_VAL(ISD::ATOMIC_STORE),// ->5270 ++/* 5048*/ OPC_RecordMemRef, ++/* 5049*/ OPC_RecordNode, // #0 = 'atomic_store' chained node ++/* 5050*/ OPC_RecordChild1, // #1 = $a ++/* 5051*/ OPC_Scope, 40, /*->5093*/ // 2 children in Scope ++/* 5053*/ OPC_MoveChild2, ++/* 5054*/ OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE), ++/* 5057*/ OPC_MoveChild0, ++/* 5058*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertSext), ++/* 5061*/ OPC_RecordChild0, // #2 = $rj ++/* 5062*/ OPC_MoveParent, ++/* 5063*/ OPC_CheckType, MVT::i32, ++/* 5065*/ OPC_MoveParent, ++/* 5066*/ OPC_CheckPredicate, 4, // Predicate_atomic_store_32 ++/* 5068*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/* 5070*/ OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectIntAddr:$a #3 #4 ++/* 5073*/ OPC_EmitMergeInputChains1_0, ++/* 5074*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 5077*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 2, 5, // Results = #6 ++/* 5085*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_W32), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 6, 3, 4, ++ // Src: (atomic_store addr:{ *:[iPTR] }:$a, (trunc:{ *:[i32] } (assertsext:{ *:[i64] } GPR64:{ *:[i64] }:$rj)))<> - Complexity = 19 ++ // Dst: (ST_W32 (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$rj, sub_32:{ *:[i32] }), addr:{ *:[iPTR] }:$a) ++/* 5093*/ /*Scope*/ 46|128,1/*174*/, /*->5269*/ ++/* 5095*/ OPC_RecordChild2, // #2 = $v ++/* 5096*/ OPC_Scope, 104, /*->5202*/ // 2 children in Scope ++/* 5098*/ OPC_CheckChild2Type, MVT::i64, ++/* 5100*/ OPC_Scope, 16, /*->5118*/ // 4 children in Scope ++/* 5102*/ OPC_CheckPredicate, 2, // Predicate_atomic_store_8 ++/* 5104*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/* 5106*/ OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectIntAddr:$a #3 #4 ++/* 5109*/ OPC_EmitMergeInputChains1_0, ++/* 5110*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_B), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 2, 3, 4, ++ // Src: (atomic_store addr:{ *:[iPTR] }:$a, GPR64:{ *:[i64] }:$v)<> - Complexity = 13 ++ // Dst: (ST_B GPR64:{ *:[i64] }:$v, addr:{ *:[iPTR] }:$a) ++/* 5118*/ /*Scope*/ 16, /*->5135*/ ++/* 5119*/ OPC_CheckPredicate, 3, // Predicate_atomic_store_16 ++/* 5121*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/* 5123*/ OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectIntAddr:$a #3 #4 ++/* 5126*/ OPC_EmitMergeInputChains1_0, ++/* 5127*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_H), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 2, 3, 4, ++ // Src: (atomic_store addr:{ *:[iPTR] }:$a, GPR64:{ *:[i64] }:$v)<> - Complexity = 13 ++ // Dst: (ST_H GPR64:{ *:[i64] }:$v, addr:{ *:[iPTR] }:$a) ++/* 5135*/ /*Scope*/ 32, /*->5168*/ ++/* 5136*/ OPC_CheckPredicate, 4, // Predicate_atomic_store_32 ++/* 5138*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/* 5140*/ OPC_Scope, 12, /*->5154*/ // 2 children in Scope ++/* 5142*/ OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectIntAddrSImm14Lsl2:$a #3 #4 ++/* 5145*/ OPC_EmitMergeInputChains1_0, ++/* 5146*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::STPTR_W), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 2, 3, 4, ++ // Src: (atomic_store addrimm14lsl2:{ *:[iPTR] }:$a, GPR64:{ *:[i64] }:$v)<> - Complexity = 13 ++ // Dst: (STPTR_W GPR64:{ *:[i64] }:$v, addrimm14lsl2:{ *:[iPTR] }:$a) ++/* 5154*/ /*Scope*/ 12, /*->5167*/ ++/* 5155*/ OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectIntAddr:$a #3 #4 ++/* 5158*/ OPC_EmitMergeInputChains1_0, ++/* 5159*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_W), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 2, 3, 4, ++ // Src: (atomic_store addr:{ *:[iPTR] }:$a, GPR64:{ *:[i64] }:$v)<> - Complexity = 13 ++ // Dst: (ST_W GPR64:{ *:[i64] }:$v, addr:{ *:[iPTR] }:$a) ++/* 5167*/ 0, /*End of Scope*/ ++/* 5168*/ /*Scope*/ 32, /*->5201*/ ++/* 5169*/ OPC_CheckPredicate, 17, // Predicate_atomic_store_64 ++/* 5171*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/* 5173*/ OPC_Scope, 12, /*->5187*/ // 2 children in Scope ++/* 5175*/ OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectIntAddrSImm14Lsl2:$a #3 #4 ++/* 5178*/ OPC_EmitMergeInputChains1_0, ++/* 5179*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::STPTR_D), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 2, 3, 4, ++ // Src: (atomic_store addrimm14lsl2:{ *:[iPTR] }:$a, GPR64:{ *:[i64] }:$v)<> - Complexity = 13 ++ // Dst: (STPTR_D GPR64:{ *:[i64] }:$v, addrimm14lsl2:{ *:[iPTR] }:$a) ++/* 5187*/ /*Scope*/ 12, /*->5200*/ ++/* 5188*/ OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectIntAddr:$a #3 #4 ++/* 5191*/ OPC_EmitMergeInputChains1_0, ++/* 5192*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_D), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 2, 3, 4, ++ // Src: (atomic_store addr:{ *:[iPTR] }:$a, GPR64:{ *:[i64] }:$v)<> - Complexity = 13 ++ // Dst: (ST_D GPR64:{ *:[i64] }:$v, addr:{ *:[iPTR] }:$a) ++/* 5200*/ 0, /*End of Scope*/ ++/* 5201*/ 0, /*End of Scope*/ ++/* 5202*/ /*Scope*/ 65, /*->5268*/ ++/* 5203*/ OPC_CheckChild2Type, MVT::i32, ++/* 5205*/ OPC_Scope, 14, /*->5221*/ // 3 children in Scope ++/* 5207*/ OPC_CheckPredicate, 2, // Predicate_atomic_store_8 ++/* 5209*/ OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectIntAddr:$a #3 #4 ++/* 5212*/ OPC_EmitMergeInputChains1_0, ++/* 5213*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_B32), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 2, 3, 4, ++ // Src: (atomic_store addr:{ *:[iPTR] }:$a, GPR32:{ *:[i32] }:$v)<> - Complexity = 13 ++ // Dst: (ST_B32 GPR32:{ *:[i32] }:$v, addr:{ *:[iPTR] }:$a) ++/* 5221*/ /*Scope*/ 14, /*->5236*/ ++/* 5222*/ OPC_CheckPredicate, 3, // Predicate_atomic_store_16 ++/* 5224*/ OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectIntAddr:$a #3 #4 ++/* 5227*/ OPC_EmitMergeInputChains1_0, ++/* 5228*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_H32), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 2, 3, 4, ++ // Src: (atomic_store addr:{ *:[iPTR] }:$a, GPR32:{ *:[i32] }:$v)<> - Complexity = 13 ++ // Dst: (ST_H32 GPR32:{ *:[i32] }:$v, addr:{ *:[iPTR] }:$a) ++/* 5236*/ /*Scope*/ 30, /*->5267*/ ++/* 5237*/ OPC_CheckPredicate, 4, // Predicate_atomic_store_32 ++/* 5239*/ OPC_Scope, 12, /*->5253*/ // 2 children in Scope ++/* 5241*/ OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectIntAddrSImm14Lsl2:$a #3 #4 ++/* 5244*/ OPC_EmitMergeInputChains1_0, ++/* 5245*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::STPTR_W32), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 2, 3, 4, ++ // Src: (atomic_store addrimm14lsl2:{ *:[iPTR] }:$a, GPR32:{ *:[i32] }:$v)<> - Complexity = 13 ++ // Dst: (STPTR_W32 GPR32:{ *:[i32] }:$v, addrimm14lsl2:{ *:[iPTR] }:$a) ++/* 5253*/ /*Scope*/ 12, /*->5266*/ ++/* 5254*/ OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectIntAddr:$a #3 #4 ++/* 5257*/ OPC_EmitMergeInputChains1_0, ++/* 5258*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_W32), 0|OPFL_Chain|OPFL_MemRefs, ++ 3/*#Ops*/, 2, 3, 4, ++ // Src: (atomic_store addr:{ *:[iPTR] }:$a, GPR32:{ *:[i32] }:$v)<> - Complexity = 13 ++ // Dst: (ST_W32 GPR32:{ *:[i32] }:$v, addr:{ *:[iPTR] }:$a) ++/* 5266*/ 0, /*End of Scope*/ ++/* 5267*/ 0, /*End of Scope*/ ++/* 5268*/ 0, /*End of Scope*/ ++/* 5269*/ 0, /*End of Scope*/ ++/* 5270*/ /*SwitchOpcode*/ 9|128,6/*777*/, TARGET_VAL(ISD::BRCOND),// ->6051 ++/* 5274*/ OPC_RecordNode, // #0 = 'brcond' chained node ++/* 5275*/ OPC_Scope, 108|128,5/*748*/, /*->6026*/ // 2 children in Scope ++/* 5278*/ OPC_MoveChild1, ++/* 5279*/ OPC_CheckOpcode, TARGET_VAL(ISD::SETCC), ++/* 5282*/ OPC_Scope, 45, /*->5329*/ // 2 children in Scope ++/* 5284*/ OPC_MoveChild0, ++/* 5285*/ OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE), ++/* 5288*/ OPC_MoveChild0, ++/* 5289*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertSext), ++/* 5292*/ OPC_RecordChild0, // #1 = $rj ++/* 5293*/ OPC_MoveParent, ++/* 5294*/ OPC_CheckType, MVT::i32, ++/* 5296*/ OPC_MoveParent, ++/* 5297*/ OPC_CheckChild1Integer, 0, ++/* 5299*/ OPC_CheckChild2CondCode, ISD::SETEQ, ++/* 5301*/ OPC_CheckType, MVT::i32, ++/* 5303*/ OPC_MoveParent, ++/* 5304*/ OPC_RecordChild2, // #2 = $offs21 ++/* 5305*/ OPC_MoveChild2, ++/* 5306*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), ++/* 5309*/ OPC_MoveParent, ++/* 5310*/ OPC_EmitMergeInputChains1_0, ++/* 5311*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 5314*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 1, 3, // Results = #4 ++/* 5322*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BEQZ32), 0|OPFL_Chain, ++ 2/*#Ops*/, 4, 2, ++ // Src: (brcond (setcc:{ *:[i32] } (trunc:{ *:[i32] } (assertsext:{ *:[i64] } GPR64:{ *:[i64] }:$rj)), 0:{ *:[i32] }, SETEQ:{ *:[Other] }), (bb:{ *:[Other] }):$offs21) - Complexity = 17 ++ // Dst: (BEQZ32 (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$rj, sub_32:{ *:[i32] }), brtarget:{ *:[Other] }:$offs21) ++/* 5329*/ /*Scope*/ 54|128,5/*694*/, /*->6025*/ ++/* 5331*/ OPC_RecordChild0, // #1 = $rj ++/* 5332*/ OPC_Scope, 37|128,1/*165*/, /*->5500*/ // 2 children in Scope ++/* 5335*/ OPC_CheckChild0Type, MVT::i64, ++/* 5337*/ OPC_CheckType, MVT::i32, ++/* 5339*/ OPC_Scope, 40, /*->5381*/ // 2 children in Scope ++/* 5341*/ OPC_CheckChild1Integer, 0, ++/* 5343*/ OPC_Scope, 17, /*->5362*/ // 2 children in Scope ++/* 5345*/ OPC_CheckChild2CondCode, ISD::SETEQ, ++/* 5347*/ OPC_MoveParent, ++/* 5348*/ OPC_RecordChild2, // #2 = $offs21 ++/* 5349*/ OPC_MoveChild2, ++/* 5350*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), ++/* 5353*/ OPC_MoveParent, ++/* 5354*/ OPC_EmitMergeInputChains1_0, ++/* 5355*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BEQZ), 0|OPFL_Chain, ++ 2/*#Ops*/, 1, 2, ++ // Src: (brcond (setcc:{ *:[i32] } GPR64Opnd:{ *:[i64] }:$rj, 0:{ *:[i64] }, SETEQ:{ *:[Other] }), (bb:{ *:[Other] }):$offs21) - Complexity = 11 ++ // Dst: (BEQZ GPR64Opnd:{ *:[i64] }:$rj, (bb:{ *:[Other] }):$offs21) ++/* 5362*/ /*Scope*/ 17, /*->5380*/ ++/* 5363*/ OPC_CheckChild2CondCode, ISD::SETNE, ++/* 5365*/ OPC_MoveParent, ++/* 5366*/ OPC_RecordChild2, // #2 = $offs21 ++/* 5367*/ OPC_MoveChild2, ++/* 5368*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), ++/* 5371*/ OPC_MoveParent, ++/* 5372*/ OPC_EmitMergeInputChains1_0, ++/* 5373*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BNEZ), 0|OPFL_Chain, ++ 2/*#Ops*/, 1, 2, ++ // Src: (brcond (setcc:{ *:[i32] } GPR64Opnd:{ *:[i64] }:$rj, 0:{ *:[i64] }, SETNE:{ *:[Other] }), (bb:{ *:[Other] }):$offs21) - Complexity = 11 ++ // Dst: (BNEZ GPR64Opnd:{ *:[i64] }:$rj, (bb:{ *:[Other] }):$offs21) ++/* 5380*/ 0, /*End of Scope*/ ++/* 5381*/ /*Scope*/ 117, /*->5499*/ ++/* 5382*/ OPC_RecordChild1, // #2 = $rd ++/* 5383*/ OPC_Scope, 18, /*->5403*/ // 6 children in Scope ++/* 5385*/ OPC_CheckChild2CondCode, ISD::SETEQ, ++/* 5387*/ OPC_MoveParent, ++/* 5388*/ OPC_RecordChild2, // #3 = $offs16 ++/* 5389*/ OPC_MoveChild2, ++/* 5390*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), ++/* 5393*/ OPC_MoveParent, ++/* 5394*/ OPC_EmitMergeInputChains1_0, ++/* 5395*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BEQ), 0|OPFL_Chain, ++ 3/*#Ops*/, 1, 2, 3, ++ // Src: (brcond (setcc:{ *:[i32] } GPR64Opnd:{ *:[i64] }:$rj, GPR64Opnd:{ *:[i64] }:$rd, SETEQ:{ *:[Other] }), (bb:{ *:[Other] }):$offs16) - Complexity = 6 ++ // Dst: (BEQ GPR64Opnd:{ *:[i64] }:$rj, GPR64Opnd:{ *:[i64] }:$rd, (bb:{ *:[Other] }):$offs16) ++/* 5403*/ /*Scope*/ 18, /*->5422*/ ++/* 5404*/ OPC_CheckChild2CondCode, ISD::SETNE, ++/* 5406*/ OPC_MoveParent, ++/* 5407*/ OPC_RecordChild2, // #3 = $offs16 ++/* 5408*/ OPC_MoveChild2, ++/* 5409*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), ++/* 5412*/ OPC_MoveParent, ++/* 5413*/ OPC_EmitMergeInputChains1_0, ++/* 5414*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BNE), 0|OPFL_Chain, ++ 3/*#Ops*/, 1, 2, 3, ++ // Src: (brcond (setcc:{ *:[i32] } GPR64Opnd:{ *:[i64] }:$rj, GPR64Opnd:{ *:[i64] }:$rd, SETNE:{ *:[Other] }), (bb:{ *:[Other] }):$offs16) - Complexity = 6 ++ // Dst: (BNE GPR64Opnd:{ *:[i64] }:$rj, GPR64Opnd:{ *:[i64] }:$rd, (bb:{ *:[Other] }):$offs16) ++/* 5422*/ /*Scope*/ 18, /*->5441*/ ++/* 5423*/ OPC_CheckChild2CondCode, ISD::SETLT, ++/* 5425*/ OPC_MoveParent, ++/* 5426*/ OPC_RecordChild2, // #3 = $offs16 ++/* 5427*/ OPC_MoveChild2, ++/* 5428*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), ++/* 5431*/ OPC_MoveParent, ++/* 5432*/ OPC_EmitMergeInputChains1_0, ++/* 5433*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BLT), 0|OPFL_Chain, ++ 3/*#Ops*/, 1, 2, 3, ++ // Src: (brcond (setcc:{ *:[i32] } GPR64Opnd:{ *:[i64] }:$rj, GPR64Opnd:{ *:[i64] }:$rd, SETLT:{ *:[Other] }), (bb:{ *:[Other] }):$offs16) - Complexity = 6 ++ // Dst: (BLT GPR64Opnd:{ *:[i64] }:$rj, GPR64Opnd:{ *:[i64] }:$rd, (bb:{ *:[Other] }):$offs16) ++/* 5441*/ /*Scope*/ 18, /*->5460*/ ++/* 5442*/ OPC_CheckChild2CondCode, ISD::SETGE, ++/* 5444*/ OPC_MoveParent, ++/* 5445*/ OPC_RecordChild2, // #3 = $offs16 ++/* 5446*/ OPC_MoveChild2, ++/* 5447*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), ++/* 5450*/ OPC_MoveParent, ++/* 5451*/ OPC_EmitMergeInputChains1_0, ++/* 5452*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BGE), 0|OPFL_Chain, ++ 3/*#Ops*/, 1, 2, 3, ++ // Src: (brcond (setcc:{ *:[i32] } GPR64Opnd:{ *:[i64] }:$rj, GPR64Opnd:{ *:[i64] }:$rd, SETGE:{ *:[Other] }), (bb:{ *:[Other] }):$offs16) - Complexity = 6 ++ // Dst: (BGE GPR64Opnd:{ *:[i64] }:$rj, GPR64Opnd:{ *:[i64] }:$rd, (bb:{ *:[Other] }):$offs16) ++/* 5460*/ /*Scope*/ 18, /*->5479*/ ++/* 5461*/ OPC_CheckChild2CondCode, ISD::SETULT, ++/* 5463*/ OPC_MoveParent, ++/* 5464*/ OPC_RecordChild2, // #3 = $offs16 ++/* 5465*/ OPC_MoveChild2, ++/* 5466*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), ++/* 5469*/ OPC_MoveParent, ++/* 5470*/ OPC_EmitMergeInputChains1_0, ++/* 5471*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BLTU), 0|OPFL_Chain, ++ 3/*#Ops*/, 1, 2, 3, ++ // Src: (brcond (setcc:{ *:[i32] } GPR64Opnd:{ *:[i64] }:$rj, GPR64Opnd:{ *:[i64] }:$rd, SETULT:{ *:[Other] }), (bb:{ *:[Other] }):$offs16) - Complexity = 6 ++ // Dst: (BLTU GPR64Opnd:{ *:[i64] }:$rj, GPR64Opnd:{ *:[i64] }:$rd, (bb:{ *:[Other] }):$offs16) ++/* 5479*/ /*Scope*/ 18, /*->5498*/ ++/* 5480*/ OPC_CheckChild2CondCode, ISD::SETUGE, ++/* 5482*/ OPC_MoveParent, ++/* 5483*/ OPC_RecordChild2, // #3 = $offs16 ++/* 5484*/ OPC_MoveChild2, ++/* 5485*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), ++/* 5488*/ OPC_MoveParent, ++/* 5489*/ OPC_EmitMergeInputChains1_0, ++/* 5490*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BGEU), 0|OPFL_Chain, ++ 3/*#Ops*/, 1, 2, 3, ++ // Src: (brcond (setcc:{ *:[i32] } GPR64Opnd:{ *:[i64] }:$rj, GPR64Opnd:{ *:[i64] }:$rd, SETUGE:{ *:[Other] }), (bb:{ *:[Other] }):$offs16) - Complexity = 6 ++ // Dst: (BGEU GPR64Opnd:{ *:[i64] }:$rj, GPR64Opnd:{ *:[i64] }:$rd, (bb:{ *:[Other] }):$offs16) ++/* 5498*/ 0, /*End of Scope*/ ++/* 5499*/ 0, /*End of Scope*/ ++/* 5500*/ /*Scope*/ 10|128,4/*522*/, /*->6024*/ ++/* 5502*/ OPC_CheckChild0Type, MVT::i32, ++/* 5504*/ OPC_Scope, 84, /*->5590*/ // 2 children in Scope ++/* 5506*/ OPC_CheckChild1Integer, 0, ++/* 5508*/ OPC_CheckType, MVT::i32, ++/* 5510*/ OPC_Scope, 17, /*->5529*/ // 3 children in Scope ++/* 5512*/ OPC_CheckChild2CondCode, ISD::SETEQ, ++/* 5514*/ OPC_MoveParent, ++/* 5515*/ OPC_RecordChild2, // #2 = $offs21 ++/* 5516*/ OPC_MoveChild2, ++/* 5517*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), ++/* 5520*/ OPC_MoveParent, ++/* 5521*/ OPC_EmitMergeInputChains1_0, ++/* 5522*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BEQZ32), 0|OPFL_Chain, ++ 2/*#Ops*/, 1, 2, ++ // Src: (brcond (setcc:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, 0:{ *:[i32] }, SETEQ:{ *:[Other] }), (bb:{ *:[Other] }):$offs21) - Complexity = 11 ++ // Dst: (BEQZ32 GPR32Opnd:{ *:[i32] }:$rj, (bb:{ *:[Other] }):$offs21) ++/* 5529*/ /*Scope*/ 35, /*->5565*/ ++/* 5530*/ OPC_CheckChild2CondCode, ISD::SETNE, ++/* 5532*/ OPC_MoveParent, ++/* 5533*/ OPC_RecordChild2, // #2 = $offs21 ++/* 5534*/ OPC_MoveChild2, ++/* 5535*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), ++/* 5538*/ OPC_MoveParent, ++/* 5539*/ OPC_Scope, 8, /*->5549*/ // 2 children in Scope ++/* 5541*/ OPC_EmitMergeInputChains1_0, ++/* 5542*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BNEZ32), 0|OPFL_Chain, ++ 2/*#Ops*/, 1, 2, ++ // Src: (brcond (setcc:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, 0:{ *:[i32] }, SETNE:{ *:[Other] }), (bb:{ *:[Other] }):$offs21) - Complexity = 11 ++ // Dst: (BNEZ32 GPR32Opnd:{ *:[i32] }:$rj, (bb:{ *:[Other] }):$offs21) ++/* 5549*/ /*Scope*/ 14, /*->5564*/ ++/* 5550*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/* 5552*/ OPC_EmitMergeInputChains1_0, ++/* 5553*/ OPC_EmitRegister, MVT::i32, LoongArch::ZERO, ++/* 5556*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BNE32), 0|OPFL_Chain, ++ 3/*#Ops*/, 1, 3, 2, ++ // Src: (brcond (setcc:{ *:[i32] } GPR32:{ *:[i32] }:$lhs, 0:{ *:[i32] }, SETNE:{ *:[Other] }), (bb:{ *:[Other] }):$dst) - Complexity = 11 ++ // Dst: (BNE32 GPR32:{ *:[i32] }:$lhs, ZERO:{ *:[i32] }, (bb:{ *:[Other] }):$dst) ++/* 5564*/ 0, /*End of Scope*/ ++/* 5565*/ /*Scope*/ 23, /*->5589*/ ++/* 5566*/ OPC_CheckChild2CondCode, ISD::SETEQ, ++/* 5568*/ OPC_MoveParent, ++/* 5569*/ OPC_RecordChild2, // #2 = $dst ++/* 5570*/ OPC_MoveChild2, ++/* 5571*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), ++/* 5574*/ OPC_MoveParent, ++/* 5575*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/* 5577*/ OPC_EmitMergeInputChains1_0, ++/* 5578*/ OPC_EmitRegister, MVT::i32, LoongArch::ZERO, ++/* 5581*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BEQ32), 0|OPFL_Chain, ++ 3/*#Ops*/, 1, 3, 2, ++ // Src: (brcond (setcc:{ *:[i32] } GPR32:{ *:[i32] }:$lhs, 0:{ *:[i32] }, SETEQ:{ *:[Other] }), (bb:{ *:[Other] }):$dst) - Complexity = 11 ++ // Dst: (BEQ32 GPR32:{ *:[i32] }:$lhs, ZERO:{ *:[i32] }, (bb:{ *:[Other] }):$dst) ++/* 5589*/ 0, /*End of Scope*/ ++/* 5590*/ /*Scope*/ 47|128,3/*431*/, /*->6023*/ ++/* 5592*/ OPC_RecordChild1, // #2 = $rhs ++/* 5593*/ OPC_Scope, 36|128,1/*164*/, /*->5760*/ // 11 children in Scope ++/* 5596*/ OPC_MoveChild1, ++/* 5597*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 5600*/ OPC_Scope, 75, /*->5677*/ // 2 children in Scope ++/* 5602*/ OPC_CheckPredicate, 14, // Predicate_immSExt12 ++/* 5604*/ OPC_MoveParent, ++/* 5605*/ OPC_CheckType, MVT::i32, ++/* 5607*/ OPC_Scope, 33, /*->5642*/ // 2 children in Scope ++/* 5609*/ OPC_CheckChild2CondCode, ISD::SETGE, ++/* 5611*/ OPC_MoveParent, ++/* 5612*/ OPC_RecordChild2, // #3 = $dst ++/* 5613*/ OPC_MoveChild2, ++/* 5614*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), ++/* 5617*/ OPC_MoveParent, ++/* 5618*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/* 5620*/ OPC_EmitMergeInputChains1_0, ++/* 5621*/ OPC_EmitConvertToTarget, 2, ++/* 5623*/ OPC_EmitNode1, TARGET_VAL(LoongArch::SLTI32), 0|OPFL_Chain, ++ MVT::i32, 2/*#Ops*/, 1, 4, // Results = #5 ++/* 5631*/ OPC_EmitRegister, MVT::i32, LoongArch::ZERO, ++/* 5634*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BEQ32), 0|OPFL_Chain, ++ 3/*#Ops*/, 5, 6, 3, ++ // Src: (brcond (setcc:{ *:[i32] } GPR32:{ *:[i32] }:$lhs, (imm:{ *:[i32] })<>:$rhs, SETGE:{ *:[Other] }), (bb:{ *:[Other] }):$dst) - Complexity = 10 ++ // Dst: (BEQ32 (SLTI32:{ *:[i32] } GPR32:{ *:[i32] }:$lhs, (imm:{ *:[i32] })<>:$rhs), ZERO:{ *:[i32] }, (bb:{ *:[Other] }):$dst) ++/* 5642*/ /*Scope*/ 33, /*->5676*/ ++/* 5643*/ OPC_CheckChild2CondCode, ISD::SETUGE, ++/* 5645*/ OPC_MoveParent, ++/* 5646*/ OPC_RecordChild2, // #3 = $dst ++/* 5647*/ OPC_MoveChild2, ++/* 5648*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), ++/* 5651*/ OPC_MoveParent, ++/* 5652*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/* 5654*/ OPC_EmitMergeInputChains1_0, ++/* 5655*/ OPC_EmitConvertToTarget, 2, ++/* 5657*/ OPC_EmitNode1, TARGET_VAL(LoongArch::SLTUI32), 0, ++ MVT::i32, 2/*#Ops*/, 1, 4, // Results = #5 ++/* 5665*/ OPC_EmitRegister, MVT::i32, LoongArch::ZERO, ++/* 5668*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BEQ32), 0|OPFL_Chain, ++ 3/*#Ops*/, 5, 6, 3, ++ // Src: (brcond (setcc:{ *:[i32] } GPR32:{ *:[i32] }:$lhs, (imm:{ *:[i32] })<>:$rhs, SETUGE:{ *:[Other] }), (bb:{ *:[Other] }):$dst) - Complexity = 10 ++ // Dst: (BEQ32 (SLTUI32:{ *:[i32] } GPR32:{ *:[i32] }:$lhs, (imm:{ *:[i32] })<>:$rhs), ZERO:{ *:[i32] }, (bb:{ *:[Other] }):$dst) ++/* 5676*/ 0, /*End of Scope*/ ++/* 5677*/ /*Scope*/ 81, /*->5759*/ ++/* 5678*/ OPC_CheckPredicate, 18, // Predicate_immSExt12Plus1 ++/* 5680*/ OPC_MoveParent, ++/* 5681*/ OPC_CheckType, MVT::i32, ++/* 5683*/ OPC_Scope, 36, /*->5721*/ // 2 children in Scope ++/* 5685*/ OPC_CheckChild2CondCode, ISD::SETGT, ++/* 5687*/ OPC_MoveParent, ++/* 5688*/ OPC_RecordChild2, // #3 = $dst ++/* 5689*/ OPC_MoveChild2, ++/* 5690*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), ++/* 5693*/ OPC_MoveParent, ++/* 5694*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/* 5696*/ OPC_EmitMergeInputChains1_0, ++/* 5697*/ OPC_EmitConvertToTarget, 2, ++/* 5699*/ OPC_EmitNodeXForm, 0, 4, // Plus1 ++/* 5702*/ OPC_EmitNode1, TARGET_VAL(LoongArch::SLTI32), 0|OPFL_Chain, ++ MVT::i32, 2/*#Ops*/, 1, 5, // Results = #6 ++/* 5710*/ OPC_EmitRegister, MVT::i32, LoongArch::ZERO, ++/* 5713*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BEQ32), 0|OPFL_Chain, ++ 3/*#Ops*/, 6, 7, 3, ++ // Src: (brcond (setcc:{ *:[i32] } GPR32:{ *:[i32] }:$lhs, (imm:{ *:[i32] })<>:$rhs, SETGT:{ *:[Other] }), (bb:{ *:[Other] }):$dst) - Complexity = 10 ++ // Dst: (BEQ32 (SLTI32:{ *:[i32] } GPR32:{ *:[i32] }:$lhs, (Plus1:{ *:[i32] } (imm:{ *:[i32] }):$rhs)), ZERO:{ *:[i32] }, (bb:{ *:[Other] }):$dst) ++/* 5721*/ /*Scope*/ 36, /*->5758*/ ++/* 5722*/ OPC_CheckChild2CondCode, ISD::SETUGT, ++/* 5724*/ OPC_MoveParent, ++/* 5725*/ OPC_RecordChild2, // #3 = $dst ++/* 5726*/ OPC_MoveChild2, ++/* 5727*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), ++/* 5730*/ OPC_MoveParent, ++/* 5731*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/* 5733*/ OPC_EmitMergeInputChains1_0, ++/* 5734*/ OPC_EmitConvertToTarget, 2, ++/* 5736*/ OPC_EmitNodeXForm, 0, 4, // Plus1 ++/* 5739*/ OPC_EmitNode1, TARGET_VAL(LoongArch::SLTUI32), 0, ++ MVT::i32, 2/*#Ops*/, 1, 5, // Results = #6 ++/* 5747*/ OPC_EmitRegister, MVT::i32, LoongArch::ZERO, ++/* 5750*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BEQ32), 0|OPFL_Chain, ++ 3/*#Ops*/, 6, 7, 3, ++ // Src: (brcond (setcc:{ *:[i32] } GPR32:{ *:[i32] }:$lhs, (imm:{ *:[i32] })<>:$rhs, SETUGT:{ *:[Other] }), (bb:{ *:[Other] }):$dst) - Complexity = 10 ++ // Dst: (BEQ32 (SLTUI32:{ *:[i32] } GPR32:{ *:[i32] }:$lhs, (Plus1:{ *:[i32] } (imm:{ *:[i32] }):$rhs)), ZERO:{ *:[i32] }, (bb:{ *:[Other] }):$dst) ++/* 5758*/ 0, /*End of Scope*/ ++/* 5759*/ 0, /*End of Scope*/ ++/* 5760*/ /*Scope*/ 20, /*->5781*/ ++/* 5761*/ OPC_CheckChild2CondCode, ISD::SETEQ, ++/* 5763*/ OPC_CheckType, MVT::i32, ++/* 5765*/ OPC_MoveParent, ++/* 5766*/ OPC_RecordChild2, // #3 = $offs16 ++/* 5767*/ OPC_MoveChild2, ++/* 5768*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), ++/* 5771*/ OPC_MoveParent, ++/* 5772*/ OPC_EmitMergeInputChains1_0, ++/* 5773*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BEQ32), 0|OPFL_Chain, ++ 3/*#Ops*/, 1, 2, 3, ++ // Src: (brcond (setcc:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rd, SETEQ:{ *:[Other] }), (bb:{ *:[Other] }):$offs16) - Complexity = 6 ++ // Dst: (BEQ32 GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rd, (bb:{ *:[Other] }):$offs16) ++/* 5781*/ /*Scope*/ 20, /*->5802*/ ++/* 5782*/ OPC_CheckChild2CondCode, ISD::SETNE, ++/* 5784*/ OPC_CheckType, MVT::i32, ++/* 5786*/ OPC_MoveParent, ++/* 5787*/ OPC_RecordChild2, // #3 = $offs16 ++/* 5788*/ OPC_MoveChild2, ++/* 5789*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), ++/* 5792*/ OPC_MoveParent, ++/* 5793*/ OPC_EmitMergeInputChains1_0, ++/* 5794*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BNE32), 0|OPFL_Chain, ++ 3/*#Ops*/, 1, 2, 3, ++ // Src: (brcond (setcc:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rd, SETNE:{ *:[Other] }), (bb:{ *:[Other] }):$offs16) - Complexity = 6 ++ // Dst: (BNE32 GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rd, (bb:{ *:[Other] }):$offs16) ++/* 5802*/ /*Scope*/ 20, /*->5823*/ ++/* 5803*/ OPC_CheckChild2CondCode, ISD::SETLT, ++/* 5805*/ OPC_CheckType, MVT::i32, ++/* 5807*/ OPC_MoveParent, ++/* 5808*/ OPC_RecordChild2, // #3 = $offs16 ++/* 5809*/ OPC_MoveChild2, ++/* 5810*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), ++/* 5813*/ OPC_MoveParent, ++/* 5814*/ OPC_EmitMergeInputChains1_0, ++/* 5815*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BLT32), 0|OPFL_Chain, ++ 3/*#Ops*/, 1, 2, 3, ++ // Src: (brcond (setcc:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rd, SETLT:{ *:[Other] }), (bb:{ *:[Other] }):$offs16) - Complexity = 6 ++ // Dst: (BLT32 GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rd, (bb:{ *:[Other] }):$offs16) ++/* 5823*/ /*Scope*/ 20, /*->5844*/ ++/* 5824*/ OPC_CheckChild2CondCode, ISD::SETGE, ++/* 5826*/ OPC_CheckType, MVT::i32, ++/* 5828*/ OPC_MoveParent, ++/* 5829*/ OPC_RecordChild2, // #3 = $offs16 ++/* 5830*/ OPC_MoveChild2, ++/* 5831*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), ++/* 5834*/ OPC_MoveParent, ++/* 5835*/ OPC_EmitMergeInputChains1_0, ++/* 5836*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BGE32), 0|OPFL_Chain, ++ 3/*#Ops*/, 1, 2, 3, ++ // Src: (brcond (setcc:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rd, SETGE:{ *:[Other] }), (bb:{ *:[Other] }):$offs16) - Complexity = 6 ++ // Dst: (BGE32 GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rd, (bb:{ *:[Other] }):$offs16) ++/* 5844*/ /*Scope*/ 20, /*->5865*/ ++/* 5845*/ OPC_CheckChild2CondCode, ISD::SETULT, ++/* 5847*/ OPC_CheckType, MVT::i32, ++/* 5849*/ OPC_MoveParent, ++/* 5850*/ OPC_RecordChild2, // #3 = $offs16 ++/* 5851*/ OPC_MoveChild2, ++/* 5852*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), ++/* 5855*/ OPC_MoveParent, ++/* 5856*/ OPC_EmitMergeInputChains1_0, ++/* 5857*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BLTU32), 0|OPFL_Chain, ++ 3/*#Ops*/, 1, 2, 3, ++ // Src: (brcond (setcc:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rd, SETULT:{ *:[Other] }), (bb:{ *:[Other] }):$offs16) - Complexity = 6 ++ // Dst: (BLTU32 GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rd, (bb:{ *:[Other] }):$offs16) ++/* 5865*/ /*Scope*/ 20, /*->5886*/ ++/* 5866*/ OPC_CheckChild2CondCode, ISD::SETUGE, ++/* 5868*/ OPC_CheckType, MVT::i32, ++/* 5870*/ OPC_MoveParent, ++/* 5871*/ OPC_RecordChild2, // #3 = $offs16 ++/* 5872*/ OPC_MoveChild2, ++/* 5873*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), ++/* 5876*/ OPC_MoveParent, ++/* 5877*/ OPC_EmitMergeInputChains1_0, ++/* 5878*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BGEU32), 0|OPFL_Chain, ++ 3/*#Ops*/, 1, 2, 3, ++ // Src: (brcond (setcc:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rd, SETUGE:{ *:[Other] }), (bb:{ *:[Other] }):$offs16) - Complexity = 6 ++ // Dst: (BGEU32 GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rd, (bb:{ *:[Other] }):$offs16) ++/* 5886*/ /*Scope*/ 33, /*->5920*/ ++/* 5887*/ OPC_CheckChild2CondCode, ISD::SETGE, ++/* 5889*/ OPC_CheckType, MVT::i32, ++/* 5891*/ OPC_MoveParent, ++/* 5892*/ OPC_RecordChild2, // #3 = $dst ++/* 5893*/ OPC_MoveChild2, ++/* 5894*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), ++/* 5897*/ OPC_MoveParent, ++/* 5898*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/* 5900*/ OPC_EmitMergeInputChains1_0, ++/* 5901*/ OPC_EmitNode1, TARGET_VAL(LoongArch::SLT32), 0, ++ MVT::i32, 2/*#Ops*/, 1, 2, // Results = #4 ++/* 5909*/ OPC_EmitRegister, MVT::i32, LoongArch::ZERO, ++/* 5912*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BEQ32), 0|OPFL_Chain, ++ 3/*#Ops*/, 4, 5, 3, ++ // Src: (brcond (setcc:{ *:[i32] } GPR32:{ *:[i32] }:$lhs, GPR32:{ *:[i32] }:$rhs, SETGE:{ *:[Other] }), (bb:{ *:[Other] }):$dst) - Complexity = 6 ++ // Dst: (BEQ32 (SLT32:{ *:[i32] } GPR32:{ *:[i32] }:$lhs, GPR32:{ *:[i32] }:$rhs), ZERO:{ *:[i32] }, (bb:{ *:[Other] }):$dst) ++/* 5920*/ /*Scope*/ 33, /*->5954*/ ++/* 5921*/ OPC_CheckChild2CondCode, ISD::SETUGE, ++/* 5923*/ OPC_CheckType, MVT::i32, ++/* 5925*/ OPC_MoveParent, ++/* 5926*/ OPC_RecordChild2, // #3 = $dst ++/* 5927*/ OPC_MoveChild2, ++/* 5928*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), ++/* 5931*/ OPC_MoveParent, ++/* 5932*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/* 5934*/ OPC_EmitMergeInputChains1_0, ++/* 5935*/ OPC_EmitNode1, TARGET_VAL(LoongArch::SLTU32), 0, ++ MVT::i32, 2/*#Ops*/, 1, 2, // Results = #4 ++/* 5943*/ OPC_EmitRegister, MVT::i32, LoongArch::ZERO, ++/* 5946*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BEQ32), 0|OPFL_Chain, ++ 3/*#Ops*/, 4, 5, 3, ++ // Src: (brcond (setcc:{ *:[i32] } GPR32:{ *:[i32] }:$lhs, GPR32:{ *:[i32] }:$rhs, SETUGE:{ *:[Other] }), (bb:{ *:[Other] }):$dst) - Complexity = 6 ++ // Dst: (BEQ32 (SLTU32:{ *:[i32] } GPR32:{ *:[i32] }:$lhs, GPR32:{ *:[i32] }:$rhs), ZERO:{ *:[i32] }, (bb:{ *:[Other] }):$dst) ++/* 5954*/ /*Scope*/ 33, /*->5988*/ ++/* 5955*/ OPC_CheckChild2CondCode, ISD::SETLE, ++/* 5957*/ OPC_CheckType, MVT::i32, ++/* 5959*/ OPC_MoveParent, ++/* 5960*/ OPC_RecordChild2, // #3 = $dst ++/* 5961*/ OPC_MoveChild2, ++/* 5962*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), ++/* 5965*/ OPC_MoveParent, ++/* 5966*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/* 5968*/ OPC_EmitMergeInputChains1_0, ++/* 5969*/ OPC_EmitNode1, TARGET_VAL(LoongArch::SLT32), 0, ++ MVT::i32, 2/*#Ops*/, 2, 1, // Results = #4 ++/* 5977*/ OPC_EmitRegister, MVT::i32, LoongArch::ZERO, ++/* 5980*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BEQ32), 0|OPFL_Chain, ++ 3/*#Ops*/, 4, 5, 3, ++ // Src: (brcond (setcc:{ *:[i32] } GPR32:{ *:[i32] }:$lhs, GPR32:{ *:[i32] }:$rhs, SETLE:{ *:[Other] }), (bb:{ *:[Other] }):$dst) - Complexity = 6 ++ // Dst: (BEQ32 (SLT32:{ *:[i32] } GPR32:{ *:[i32] }:$rhs, GPR32:{ *:[i32] }:$lhs), ZERO:{ *:[i32] }, (bb:{ *:[Other] }):$dst) ++/* 5988*/ /*Scope*/ 33, /*->6022*/ ++/* 5989*/ OPC_CheckChild2CondCode, ISD::SETULE, ++/* 5991*/ OPC_CheckType, MVT::i32, ++/* 5993*/ OPC_MoveParent, ++/* 5994*/ OPC_RecordChild2, // #3 = $dst ++/* 5995*/ OPC_MoveChild2, ++/* 5996*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), ++/* 5999*/ OPC_MoveParent, ++/* 6000*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/* 6002*/ OPC_EmitMergeInputChains1_0, ++/* 6003*/ OPC_EmitNode1, TARGET_VAL(LoongArch::SLTU32), 0, ++ MVT::i32, 2/*#Ops*/, 2, 1, // Results = #4 ++/* 6011*/ OPC_EmitRegister, MVT::i32, LoongArch::ZERO, ++/* 6014*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BEQ32), 0|OPFL_Chain, ++ 3/*#Ops*/, 4, 5, 3, ++ // Src: (brcond (setcc:{ *:[i32] } GPR32:{ *:[i32] }:$lhs, GPR32:{ *:[i32] }:$rhs, SETULE:{ *:[Other] }), (bb:{ *:[Other] }):$dst) - Complexity = 6 ++ // Dst: (BEQ32 (SLTU32:{ *:[i32] } GPR32:{ *:[i32] }:$rhs, GPR32:{ *:[i32] }:$lhs), ZERO:{ *:[i32] }, (bb:{ *:[Other] }):$dst) ++/* 6022*/ 0, /*End of Scope*/ ++/* 6023*/ 0, /*End of Scope*/ ++/* 6024*/ 0, /*End of Scope*/ ++/* 6025*/ 0, /*End of Scope*/ ++/* 6026*/ /*Scope*/ 23, /*->6050*/ ++/* 6027*/ OPC_RecordChild1, // #1 = $cond ++/* 6028*/ OPC_CheckChild1Type, MVT::i32, ++/* 6030*/ OPC_RecordChild2, // #2 = $dst ++/* 6031*/ OPC_MoveChild2, ++/* 6032*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), ++/* 6035*/ OPC_MoveParent, ++/* 6036*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/* 6038*/ OPC_EmitMergeInputChains1_0, ++/* 6039*/ OPC_EmitRegister, MVT::i32, LoongArch::ZERO, ++/* 6042*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BNE32), 0|OPFL_Chain, ++ 3/*#Ops*/, 1, 3, 2, ++ // Src: (brcond GPR32:{ *:[i32] }:$cond, (bb:{ *:[Other] }):$dst) - Complexity = 3 ++ // Dst: (BNE32 GPR32:{ *:[i32] }:$cond, ZERO:{ *:[i32] }, (bb:{ *:[Other] }):$dst) ++/* 6050*/ 0, /*End of Scope*/ ++/* 6051*/ /*SwitchOpcode*/ 65|128,2/*321*/, TARGET_VAL(ISD::ZERO_EXTEND),// ->6376 ++/* 6055*/ OPC_Scope, 81|128,1/*209*/, /*->6267*/ // 2 children in Scope ++/* 6058*/ OPC_MoveChild0, ++/* 6059*/ OPC_SwitchOpcode /*3 cases */, 85, TARGET_VAL(ISD::SETCC),// ->6148 ++/* 6063*/ OPC_Scope, 60, /*->6125*/ // 2 children in Scope ++/* 6065*/ OPC_MoveChild0, ++/* 6066*/ OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE), ++/* 6069*/ OPC_MoveChild0, ++/* 6070*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertSext), ++/* 6073*/ OPC_RecordChild0, // #0 = $rj ++/* 6074*/ OPC_MoveParent, ++/* 6075*/ OPC_CheckType, MVT::i32, ++/* 6077*/ OPC_MoveParent, ++/* 6078*/ OPC_CheckChild1Integer, 0, ++/* 6080*/ OPC_CheckChild2CondCode, ISD::SETEQ, ++/* 6082*/ OPC_MoveParent, ++/* 6083*/ OPC_CheckType, MVT::i64, ++/* 6085*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::i64, 0/*#Ops*/, // Results = #1 ++/* 6091*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 6094*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 0, 2, // Results = #3 ++/* 6102*/ OPC_EmitInteger, MVT::i32, 1, ++/* 6105*/ OPC_EmitNode1, TARGET_VAL(LoongArch::SLTUI32), 0, ++ MVT::i32, 2/*#Ops*/, 3, 4, // Results = #5 ++/* 6113*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 6116*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::i64, 3/*#Ops*/, 1, 5, 6, ++ // Src: (zext:{ *:[i64] } (setcc:{ *:[i32] } (trunc:{ *:[i32] } (assertsext:{ *:[i64] } GPR64:{ *:[i64] }:$rj)), 0:{ *:[i32] }, SETEQ:{ *:[Other] })) - Complexity = 17 ++ // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (SLTUI32:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$rj, sub_32:{ *:[i32] }), 1:{ *:[i32] }), sub_32:{ *:[i32] }) ++/* 6125*/ /*Scope*/ 21, /*->6147*/ ++/* 6126*/ OPC_RecordChild0, // #0 = $rj ++/* 6127*/ OPC_CheckChild0Type, MVT::i64, ++/* 6129*/ OPC_CheckChild1Integer, 0, ++/* 6131*/ OPC_CheckChild2CondCode, ISD::SETEQ, ++/* 6133*/ OPC_MoveParent, ++/* 6134*/ OPC_CheckType, MVT::i64, ++/* 6136*/ OPC_EmitInteger, MVT::i64, 1, ++/* 6139*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLTUI_64), 0, ++ MVT::i64, 2/*#Ops*/, 0, 1, ++ // Src: (zext:{ *:[i64] } (setcc:{ *:[i32] } GPR64:{ *:[i64] }:$rj, 0:{ *:[i64] }, SETEQ:{ *:[Other] })) - Complexity = 11 ++ // Dst: (SLTUI_64:{ *:[i64] } GPR64:{ *:[i64] }:$rj, 1:{ *:[i64] }) ++/* 6147*/ 0, /*End of Scope*/ ++/* 6148*/ /*SwitchOpcode*/ 66, TARGET_VAL(ISD::ADD),// ->6217 ++/* 6151*/ OPC_Scope, 31, /*->6184*/ // 2 children in Scope ++/* 6153*/ OPC_RecordChild0, // #0 = $rk ++/* 6154*/ OPC_MoveChild1, ++/* 6155*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 6158*/ OPC_RecordChild0, // #1 = $rj ++/* 6159*/ OPC_RecordChild1, // #2 = $sa ++/* 6160*/ OPC_MoveChild1, ++/* 6161*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 6164*/ OPC_CheckPredicate, 19, // Predicate_immZExt2Alsl ++/* 6166*/ OPC_CheckType, MVT::i32, ++/* 6168*/ OPC_MoveParent, ++/* 6169*/ OPC_MoveParent, ++/* 6170*/ OPC_MoveParent, ++/* 6171*/ OPC_CheckType, MVT::i64, ++/* 6173*/ OPC_EmitConvertToTarget, 2, ++/* 6175*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ALSL_WU), 0, ++ MVT::i64, 3/*#Ops*/, 1, 0, 3, ++ // Src: (zext:{ *:[i64] } (add:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rk, (shl:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, (imm:{ *:[i32] })<>:$sa))) - Complexity = 13 ++ // Dst: (ALSL_WU:{ *:[i64] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rk, (imm:{ *:[i32] }):$sa) ++/* 6184*/ /*Scope*/ 31, /*->6216*/ ++/* 6185*/ OPC_MoveChild0, ++/* 6186*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 6189*/ OPC_RecordChild0, // #0 = $rj ++/* 6190*/ OPC_RecordChild1, // #1 = $sa ++/* 6191*/ OPC_MoveChild1, ++/* 6192*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 6195*/ OPC_CheckPredicate, 19, // Predicate_immZExt2Alsl ++/* 6197*/ OPC_CheckType, MVT::i32, ++/* 6199*/ OPC_MoveParent, ++/* 6200*/ OPC_MoveParent, ++/* 6201*/ OPC_RecordChild1, // #2 = $rk ++/* 6202*/ OPC_MoveParent, ++/* 6203*/ OPC_CheckType, MVT::i64, ++/* 6205*/ OPC_EmitConvertToTarget, 1, ++/* 6207*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ALSL_WU), 0, ++ MVT::i64, 3/*#Ops*/, 0, 2, 3, ++ // Src: (zext:{ *:[i64] } (add:{ *:[i32] } (shl:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, (imm:{ *:[i32] })<>:$sa), GPR32Opnd:{ *:[i32] }:$rk)) - Complexity = 13 ++ // Dst: (ALSL_WU:{ *:[i64] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rk, (imm:{ *:[i32] }):$sa) ++/* 6216*/ 0, /*End of Scope*/ ++/* 6217*/ /*SwitchOpcode*/ 46, TARGET_VAL(ISD::SRL),// ->6266 ++/* 6220*/ OPC_RecordChild0, // #0 = $src ++/* 6221*/ OPC_RecordChild1, // #1 = $imm5 ++/* 6222*/ OPC_MoveChild1, ++/* 6223*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 6226*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 6228*/ OPC_CheckType, MVT::i32, ++/* 6230*/ OPC_MoveParent, ++/* 6231*/ OPC_MoveParent, ++/* 6232*/ OPC_CheckType, MVT::i64, ++/* 6234*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::i64, 0/*#Ops*/, // Results = #2 ++/* 6240*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 6243*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::i64, 3/*#Ops*/, 2, 0, 3, // Results = #4 ++/* 6252*/ OPC_EmitInteger, MVT::i32, 31, ++/* 6255*/ OPC_EmitConvertToTarget, 1, ++/* 6257*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::BSTRPICK_D), 0, ++ MVT::i64, 3/*#Ops*/, 4, 5, 6, ++ // Src: (zext:{ *:[i64] } (srl:{ *:[i32] } GPR32:{ *:[i32] }:$src, (imm:{ *:[i32] })<>:$imm5)) - Complexity = 10 ++ // Dst: (BSTRPICK_D:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GPR32:{ *:[i32] }:$src, sub_32:{ *:[i32] }), 31:{ *:[i32] }, (imm:{ *:[i32] })<>:$imm5) ++/* 6266*/ 0, // EndSwitchOpcode ++/* 6267*/ /*Scope*/ 107, /*->6375*/ ++/* 6268*/ OPC_RecordChild0, // #0 = $src ++/* 6269*/ OPC_SwitchType /*4 cases */, 15, MVT::i64,// ->6287 ++/* 6272*/ OPC_EmitInteger, MVT::i32, 31, ++/* 6275*/ OPC_EmitInteger, MVT::i32, 0, ++/* 6278*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ZEXT64_32), 0, ++ MVT::i64, 3/*#Ops*/, 0, 1, 2, ++ // Src: (zext:{ *:[i64] } GPR32:{ *:[i32] }:$src) - Complexity = 3 ++ // Dst: (ZEXT64_32:{ *:[i64] } GPR32:{ *:[i32] }:$src, 31:{ *:[i32] }, 0:{ *:[i32] }) ++/* 6287*/ /*SwitchType*/ 27, MVT::v16i16,// ->6316 ++/* 6289*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 6291*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::v32i8, 0/*#Ops*/, // Results = #1 ++/* 6297*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/* 6300*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::v32i8, 3/*#Ops*/, 1, 0, 2, // Results = #3 ++/* 6309*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VEXT2XV_HU_BU), 0, ++ MVT::v16i16, 1/*#Ops*/, 3, ++ // Src: (zext:{ *:[v16i16] } LSX128B:{ *:[v16i8] }:$vj) - Complexity = 3 ++ // Dst: (VEXT2XV_HU_BU:{ *:[v16i16] } (INSERT_SUBREG:{ *:[v32i8] } (IMPLICIT_DEF:{ *:[v32i8] }), LSX128B:{ *:[v16i8] }:$vj, sub_128:{ *:[i32] })) ++/* 6316*/ /*SwitchType*/ 27, MVT::v8i32,// ->6345 ++/* 6318*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 6320*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::v16i16, 0/*#Ops*/, // Results = #1 ++/* 6326*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/* 6329*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::v16i16, 3/*#Ops*/, 1, 0, 2, // Results = #3 ++/* 6338*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VEXT2XV_WU_HU), 0, ++ MVT::v8i32, 1/*#Ops*/, 3, ++ // Src: (zext:{ *:[v8i32] } LSX128H:{ *:[v8i16] }:$vj) - Complexity = 3 ++ // Dst: (VEXT2XV_WU_HU:{ *:[v8i32] } (INSERT_SUBREG:{ *:[v16i16] } (IMPLICIT_DEF:{ *:[v16i16] }), LSX128H:{ *:[v8i16] }:$vj, sub_128:{ *:[i32] })) ++/* 6345*/ /*SwitchType*/ 27, MVT::v4i64,// ->6374 ++/* 6347*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 6349*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::v8i32, 0/*#Ops*/, // Results = #1 ++/* 6355*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/* 6358*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::v8i32, 3/*#Ops*/, 1, 0, 2, // Results = #3 ++/* 6367*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VEXT2XV_DU_WU), 0, ++ MVT::v4i64, 1/*#Ops*/, 3, ++ // Src: (zext:{ *:[v4i64] } LSX128W:{ *:[v4i32] }:$vj) - Complexity = 3 ++ // Dst: (VEXT2XV_DU_WU:{ *:[v4i64] } (INSERT_SUBREG:{ *:[v8i32] } (IMPLICIT_DEF:{ *:[v8i32] }), LSX128W:{ *:[v4i32] }:$vj, sub_128:{ *:[i32] })) ++/* 6374*/ 0, // EndSwitchType ++/* 6375*/ 0, /*End of Scope*/ ++/* 6376*/ /*SwitchOpcode*/ 107|128,4/*619*/, TARGET_VAL(ISD::INTRINSIC_VOID),// ->6999 ++/* 6380*/ OPC_RecordNode, // #0 = 'intrinsic_void' chained node ++/* 6381*/ OPC_Scope, 33, /*->6416*/ // 28 children in Scope ++/* 6383*/ OPC_CheckChild1Integer, 68|128,28/*3652*/, ++/* 6386*/ OPC_RecordChild2, // #1 = $op ++/* 6387*/ OPC_MoveChild2, ++/* 6388*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 6391*/ OPC_CheckPredicate, 20, // Predicate_uimm5 ++/* 6393*/ OPC_MoveParent, ++/* 6394*/ OPC_RecordChild3, // #2 = $rj ++/* 6395*/ OPC_RecordChild4, // #3 = $si12 ++/* 6396*/ OPC_MoveChild4, ++/* 6397*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 6400*/ OPC_CheckPredicate, 21, // Predicate_simm12 ++/* 6402*/ OPC_MoveParent, ++/* 6403*/ OPC_EmitMergeInputChains1_0, ++/* 6404*/ OPC_EmitConvertToTarget, 1, ++/* 6406*/ OPC_EmitConvertToTarget, 3, ++/* 6408*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::CACOP), 0|OPFL_Chain, ++ 3/*#Ops*/, 4, 2, 5, ++ // Src: (intrinsic_void 3652:{ *:[iPTR] }, (imm:{ *:[i32] })<>:$op, GPR64Opnd:{ *:[i64] }:$rj, (imm:{ *:[i64] })<>:$si12) - Complexity = 16 ++ // Dst: (CACOP (imm:{ *:[i32] }):$op, GPR64Opnd:{ *:[i64] }:$rj, (imm:{ *:[i64] }):$si12) ++/* 6416*/ /*Scope*/ 33, /*->6450*/ ++/* 6417*/ OPC_CheckChild1Integer, 54|128,28/*3638*/, ++/* 6420*/ OPC_RecordChild2, // #1 = $op ++/* 6421*/ OPC_MoveChild2, ++/* 6422*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 6425*/ OPC_CheckPredicate, 20, // Predicate_uimm5 ++/* 6427*/ OPC_MoveParent, ++/* 6428*/ OPC_RecordChild3, // #2 = $rj ++/* 6429*/ OPC_RecordChild4, // #3 = $si12 ++/* 6430*/ OPC_MoveChild4, ++/* 6431*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 6434*/ OPC_CheckPredicate, 21, // Predicate_simm12_32 ++/* 6436*/ OPC_MoveParent, ++/* 6437*/ OPC_EmitMergeInputChains1_0, ++/* 6438*/ OPC_EmitConvertToTarget, 1, ++/* 6440*/ OPC_EmitConvertToTarget, 3, ++/* 6442*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::CACOP32), 0|OPFL_Chain, ++ 3/*#Ops*/, 4, 2, 5, ++ // Src: (intrinsic_void 3638:{ *:[iPTR] }, (imm:{ *:[i32] })<>:$op, GPR32Opnd:{ *:[i32] }:$rj, (imm:{ *:[i32] })<>:$si12) - Complexity = 16 ++ // Dst: (CACOP32 (imm:{ *:[i32] }):$op, GPR32Opnd:{ *:[i32] }:$rj, (imm:{ *:[i32] }):$si12) ++/* 6450*/ /*Scope*/ 35, /*->6486*/ ++/* 6451*/ OPC_CheckChild1Integer, 79|128,39/*5071*/, ++/* 6454*/ OPC_RecordChild2, // #1 = $vd ++/* 6455*/ OPC_RecordChild3, // #2 = $rj ++/* 6456*/ OPC_RecordChild4, // #3 = $si8 ++/* 6457*/ OPC_MoveChild4, ++/* 6458*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 6461*/ OPC_CheckPredicate, 22, // Predicate_immSExt8 ++/* 6463*/ OPC_MoveParent, ++/* 6464*/ OPC_RecordChild5, // #4 = $idx ++/* 6465*/ OPC_MoveChild5, ++/* 6466*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 6469*/ OPC_CheckPredicate, 23, // Predicate_immZExt4 ++/* 6471*/ OPC_MoveParent, ++/* 6472*/ OPC_EmitMergeInputChains1_0, ++/* 6473*/ OPC_EmitConvertToTarget, 3, ++/* 6475*/ OPC_EmitConvertToTarget, 4, ++/* 6477*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::VSTELM_B), 0|OPFL_Chain, ++ 4/*#Ops*/, 1, 2, 5, 6, ++ // Src: (intrinsic_void 5071:{ *:[iPTR] }, LSX128BOpnd:{ *:[v16i8] }:$vd, iPTR:{ *:[iPTR] }:$rj, (imm:{ *:[i32] })<>:$si8, (imm:{ *:[i32] })<>:$idx) - Complexity = 16 ++ // Dst: (VSTELM_B LSX128BOpnd:{ *:[v16i8] }:$vd, iPTR:{ *:[iPTR] }:$rj, (imm:{ *:[i32] }):$si8, (imm:{ *:[i32] }):$idx) ++/* 6486*/ /*Scope*/ 35, /*->6522*/ ++/* 6487*/ OPC_CheckChild1Integer, 81|128,39/*5073*/, ++/* 6490*/ OPC_RecordChild2, // #1 = $vd ++/* 6491*/ OPC_RecordChild3, // #2 = $rj ++/* 6492*/ OPC_RecordChild4, // #3 = $si8 ++/* 6493*/ OPC_MoveChild4, ++/* 6494*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 6497*/ OPC_CheckPredicate, 22, // Predicate_immSExt8 ++/* 6499*/ OPC_MoveParent, ++/* 6500*/ OPC_RecordChild5, // #4 = $idx ++/* 6501*/ OPC_MoveChild5, ++/* 6502*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 6505*/ OPC_CheckPredicate, 24, // Predicate_immZExt3 ++/* 6507*/ OPC_MoveParent, ++/* 6508*/ OPC_EmitMergeInputChains1_0, ++/* 6509*/ OPC_EmitConvertToTarget, 3, ++/* 6511*/ OPC_EmitConvertToTarget, 4, ++/* 6513*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::VSTELM_H), 0|OPFL_Chain, ++ 4/*#Ops*/, 1, 2, 5, 6, ++ // Src: (intrinsic_void 5073:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vd, iPTR:{ *:[iPTR] }:$rj, (imm:{ *:[i32] })<>:$si8, (imm:{ *:[i32] })<>:$idx) - Complexity = 16 ++ // Dst: (VSTELM_H LSX128HOpnd:{ *:[v8i16] }:$vd, iPTR:{ *:[iPTR] }:$rj, (imm:{ *:[i32] }):$si8, (imm:{ *:[i32] }):$idx) ++/* 6522*/ /*Scope*/ 35, /*->6558*/ ++/* 6523*/ OPC_CheckChild1Integer, 82|128,39/*5074*/, ++/* 6526*/ OPC_RecordChild2, // #1 = $vd ++/* 6527*/ OPC_RecordChild3, // #2 = $rj ++/* 6528*/ OPC_RecordChild4, // #3 = $si8 ++/* 6529*/ OPC_MoveChild4, ++/* 6530*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 6533*/ OPC_CheckPredicate, 22, // Predicate_immSExt8 ++/* 6535*/ OPC_MoveParent, ++/* 6536*/ OPC_RecordChild5, // #4 = $idx ++/* 6537*/ OPC_MoveChild5, ++/* 6538*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 6541*/ OPC_CheckPredicate, 25, // Predicate_immZExt2 ++/* 6543*/ OPC_MoveParent, ++/* 6544*/ OPC_EmitMergeInputChains1_0, ++/* 6545*/ OPC_EmitConvertToTarget, 3, ++/* 6547*/ OPC_EmitConvertToTarget, 4, ++/* 6549*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::VSTELM_W), 0|OPFL_Chain, ++ 4/*#Ops*/, 1, 2, 5, 6, ++ // Src: (intrinsic_void 5074:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vd, iPTR:{ *:[iPTR] }:$rj, (imm:{ *:[i32] })<>:$si8, (imm:{ *:[i32] })<>:$idx) - Complexity = 16 ++ // Dst: (VSTELM_W LSX128WOpnd:{ *:[v4i32] }:$vd, iPTR:{ *:[iPTR] }:$rj, (imm:{ *:[i32] }):$si8, (imm:{ *:[i32] }):$idx) ++/* 6558*/ /*Scope*/ 35, /*->6594*/ ++/* 6559*/ OPC_CheckChild1Integer, 80|128,39/*5072*/, ++/* 6562*/ OPC_RecordChild2, // #1 = $vd ++/* 6563*/ OPC_RecordChild3, // #2 = $rj ++/* 6564*/ OPC_RecordChild4, // #3 = $si8 ++/* 6565*/ OPC_MoveChild4, ++/* 6566*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 6569*/ OPC_CheckPredicate, 22, // Predicate_immSExt8 ++/* 6571*/ OPC_MoveParent, ++/* 6572*/ OPC_RecordChild5, // #4 = $idx ++/* 6573*/ OPC_MoveChild5, ++/* 6574*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 6577*/ OPC_CheckPredicate, 26, // Predicate_immZExt1 ++/* 6579*/ OPC_MoveParent, ++/* 6580*/ OPC_EmitMergeInputChains1_0, ++/* 6581*/ OPC_EmitConvertToTarget, 3, ++/* 6583*/ OPC_EmitConvertToTarget, 4, ++/* 6585*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::VSTELM_D), 0|OPFL_Chain, ++ 4/*#Ops*/, 1, 2, 5, 6, ++ // Src: (intrinsic_void 5072:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vd, iPTR:{ *:[iPTR] }:$rj, (imm:{ *:[i32] })<>:$si8, (imm:{ *:[i32] })<>:$idx) - Complexity = 16 ++ // Dst: (VSTELM_D LSX128DOpnd:{ *:[v2i64] }:$vd, iPTR:{ *:[iPTR] }:$rj, (imm:{ *:[i32] }):$si8, (imm:{ *:[i32] }):$idx) ++/* 6594*/ /*Scope*/ 35, /*->6630*/ ++/* 6595*/ OPC_CheckChild1Integer, 11|128,34/*4363*/, ++/* 6598*/ OPC_RecordChild2, // #1 = $xd ++/* 6599*/ OPC_RecordChild3, // #2 = $rj ++/* 6600*/ OPC_RecordChild4, // #3 = $si8 ++/* 6601*/ OPC_MoveChild4, ++/* 6602*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 6605*/ OPC_CheckPredicate, 22, // Predicate_immSExt8 ++/* 6607*/ OPC_MoveParent, ++/* 6608*/ OPC_RecordChild5, // #4 = $idx ++/* 6609*/ OPC_MoveChild5, ++/* 6610*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 6613*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 6615*/ OPC_MoveParent, ++/* 6616*/ OPC_EmitMergeInputChains1_0, ++/* 6617*/ OPC_EmitConvertToTarget, 3, ++/* 6619*/ OPC_EmitConvertToTarget, 4, ++/* 6621*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::XVSTELM_B), 0|OPFL_Chain, ++ 4/*#Ops*/, 1, 2, 5, 6, ++ // Src: (intrinsic_void 4363:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xd, iPTR:{ *:[iPTR] }:$rj, (imm:{ *:[i32] })<>:$si8, (imm:{ *:[i32] })<>:$idx) - Complexity = 16 ++ // Dst: (XVSTELM_B LASX256BOpnd:{ *:[v32i8] }:$xd, iPTR:{ *:[iPTR] }:$rj, (imm:{ *:[i32] }):$si8, (imm:{ *:[i32] }):$idx) ++/* 6630*/ /*Scope*/ 35, /*->6666*/ ++/* 6631*/ OPC_CheckChild1Integer, 13|128,34/*4365*/, ++/* 6634*/ OPC_RecordChild2, // #1 = $xd ++/* 6635*/ OPC_RecordChild3, // #2 = $rj ++/* 6636*/ OPC_RecordChild4, // #3 = $si8 ++/* 6637*/ OPC_MoveChild4, ++/* 6638*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 6641*/ OPC_CheckPredicate, 22, // Predicate_immSExt8 ++/* 6643*/ OPC_MoveParent, ++/* 6644*/ OPC_RecordChild5, // #4 = $idx ++/* 6645*/ OPC_MoveChild5, ++/* 6646*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 6649*/ OPC_CheckPredicate, 23, // Predicate_immZExt4 ++/* 6651*/ OPC_MoveParent, ++/* 6652*/ OPC_EmitMergeInputChains1_0, ++/* 6653*/ OPC_EmitConvertToTarget, 3, ++/* 6655*/ OPC_EmitConvertToTarget, 4, ++/* 6657*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::XVSTELM_H), 0|OPFL_Chain, ++ 4/*#Ops*/, 1, 2, 5, 6, ++ // Src: (intrinsic_void 4365:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xd, iPTR:{ *:[iPTR] }:$rj, (imm:{ *:[i32] })<>:$si8, (imm:{ *:[i32] })<>:$idx) - Complexity = 16 ++ // Dst: (XVSTELM_H LASX256HOpnd:{ *:[v16i16] }:$xd, iPTR:{ *:[iPTR] }:$rj, (imm:{ *:[i32] }):$si8, (imm:{ *:[i32] }):$idx) ++/* 6666*/ /*Scope*/ 35, /*->6702*/ ++/* 6667*/ OPC_CheckChild1Integer, 14|128,34/*4366*/, ++/* 6670*/ OPC_RecordChild2, // #1 = $xd ++/* 6671*/ OPC_RecordChild3, // #2 = $rj ++/* 6672*/ OPC_RecordChild4, // #3 = $si8 ++/* 6673*/ OPC_MoveChild4, ++/* 6674*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 6677*/ OPC_CheckPredicate, 22, // Predicate_immSExt8 ++/* 6679*/ OPC_MoveParent, ++/* 6680*/ OPC_RecordChild5, // #4 = $idx ++/* 6681*/ OPC_MoveChild5, ++/* 6682*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 6685*/ OPC_CheckPredicate, 24, // Predicate_immZExt3 ++/* 6687*/ OPC_MoveParent, ++/* 6688*/ OPC_EmitMergeInputChains1_0, ++/* 6689*/ OPC_EmitConvertToTarget, 3, ++/* 6691*/ OPC_EmitConvertToTarget, 4, ++/* 6693*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::XVSTELM_W), 0|OPFL_Chain, ++ 4/*#Ops*/, 1, 2, 5, 6, ++ // Src: (intrinsic_void 4366:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xd, iPTR:{ *:[iPTR] }:$rj, (imm:{ *:[i32] })<>:$si8, (imm:{ *:[i32] })<>:$idx) - Complexity = 16 ++ // Dst: (XVSTELM_W LASX256WOpnd:{ *:[v8i32] }:$xd, iPTR:{ *:[iPTR] }:$rj, (imm:{ *:[i32] }):$si8, (imm:{ *:[i32] }):$idx) ++/* 6702*/ /*Scope*/ 35, /*->6738*/ ++/* 6703*/ OPC_CheckChild1Integer, 12|128,34/*4364*/, ++/* 6706*/ OPC_RecordChild2, // #1 = $xd ++/* 6707*/ OPC_RecordChild3, // #2 = $rj ++/* 6708*/ OPC_RecordChild4, // #3 = $si8 ++/* 6709*/ OPC_MoveChild4, ++/* 6710*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 6713*/ OPC_CheckPredicate, 22, // Predicate_immSExt8 ++/* 6715*/ OPC_MoveParent, ++/* 6716*/ OPC_RecordChild5, // #4 = $idx ++/* 6717*/ OPC_MoveChild5, ++/* 6718*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 6721*/ OPC_CheckPredicate, 25, // Predicate_immZExt2 ++/* 6723*/ OPC_MoveParent, ++/* 6724*/ OPC_EmitMergeInputChains1_0, ++/* 6725*/ OPC_EmitConvertToTarget, 3, ++/* 6727*/ OPC_EmitConvertToTarget, 4, ++/* 6729*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::XVSTELM_D), 0|OPFL_Chain, ++ 4/*#Ops*/, 1, 2, 5, 6, ++ // Src: (intrinsic_void 4364:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xd, iPTR:{ *:[iPTR] }:$rj, (imm:{ *:[i32] })<>:$si8, (imm:{ *:[i32] })<>:$idx) - Complexity = 16 ++ // Dst: (XVSTELM_D LASX256DOpnd:{ *:[v4i64] }:$xd, iPTR:{ *:[iPTR] }:$rj, (imm:{ *:[i32] }):$si8, (imm:{ *:[i32] }):$idx) ++/* 6738*/ /*Scope*/ 20, /*->6759*/ ++/* 6739*/ OPC_CheckChild1Integer, 53|128,28/*3637*/, ++/* 6742*/ OPC_RecordChild2, // #1 = $Code ++/* 6743*/ OPC_MoveChild2, ++/* 6744*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 6747*/ OPC_CheckPredicate, 27, // Predicate_uimm15 ++/* 6749*/ OPC_MoveParent, ++/* 6750*/ OPC_EmitMergeInputChains1_0, ++/* 6751*/ OPC_EmitConvertToTarget, 1, ++/* 6753*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BREAK), 0|OPFL_Chain, ++ 1/*#Ops*/, 2, ++ // Src: (intrinsic_void 3637:{ *:[iPTR] }, (imm:{ *:[i64] })<>:$Code) - Complexity = 12 ++ // Dst: (BREAK (imm:{ *:[i64] }):$Code) ++/* 6759*/ /*Scope*/ 20, /*->6780*/ ++/* 6760*/ OPC_CheckChild1Integer, 111|128,39/*5103*/, ++/* 6763*/ OPC_RecordChild2, // #1 = $Code ++/* 6764*/ OPC_MoveChild2, ++/* 6765*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 6768*/ OPC_CheckPredicate, 27, // Predicate_uimm15 ++/* 6770*/ OPC_MoveParent, ++/* 6771*/ OPC_EmitMergeInputChains1_0, ++/* 6772*/ OPC_EmitConvertToTarget, 1, ++/* 6774*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::SYSCALL), 0|OPFL_Chain, ++ 1/*#Ops*/, 2, ++ // Src: (intrinsic_void 5103:{ *:[iPTR] }, (imm:{ *:[i64] })<>:$Code) - Complexity = 12 ++ // Dst: (SYSCALL (imm:{ *:[i64] }):$Code) ++/* 6780*/ /*Scope*/ 20, /*->6801*/ ++/* 6781*/ OPC_CheckChild1Integer, 72|128,28/*3656*/, ++/* 6784*/ OPC_RecordChild2, // #1 = $hint ++/* 6785*/ OPC_MoveChild2, ++/* 6786*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 6789*/ OPC_CheckPredicate, 27, // Predicate_uimm15 ++/* 6791*/ OPC_MoveParent, ++/* 6792*/ OPC_EmitMergeInputChains1_0, ++/* 6793*/ OPC_EmitConvertToTarget, 1, ++/* 6795*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::IBAR), 0|OPFL_Chain, ++ 1/*#Ops*/, 2, ++ // Src: (intrinsic_void 3656:{ *:[iPTR] }, (imm:{ *:[i64] })<>:$hint) - Complexity = 12 ++ // Dst: (IBAR (imm:{ *:[i64] }):$hint) ++/* 6801*/ /*Scope*/ 20, /*->6822*/ ++/* 6802*/ OPC_CheckChild1Integer, 67|128,28/*3651*/, ++/* 6805*/ OPC_RecordChild2, // #1 = $hint ++/* 6806*/ OPC_MoveChild2, ++/* 6807*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 6810*/ OPC_CheckPredicate, 27, // Predicate_uimm15 ++/* 6812*/ OPC_MoveParent, ++/* 6813*/ OPC_EmitMergeInputChains1_0, ++/* 6814*/ OPC_EmitConvertToTarget, 1, ++/* 6816*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::DBAR), 0|OPFL_Chain, ++ 1/*#Ops*/, 2, ++ // Src: (intrinsic_void 3651:{ *:[iPTR] }, (imm:{ *:[i64] })<>:$hint) - Complexity = 12 ++ // Dst: (DBAR (imm:{ *:[i64] }):$hint) ++/* 6822*/ /*Scope*/ 13, /*->6836*/ ++/* 6823*/ OPC_CheckChild1Integer, 52|128,28/*3636*/, ++/* 6826*/ OPC_RecordChild2, // #1 = $rj ++/* 6827*/ OPC_RecordChild3, // #2 = $rk ++/* 6828*/ OPC_EmitMergeInputChains1_0, ++/* 6829*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ASRTLE_D), 0|OPFL_Chain, ++ 2/*#Ops*/, 1, 2, ++ // Src: (intrinsic_void 3636:{ *:[iPTR] }, GPR64Opnd:{ *:[i64] }:$rj, GPR64Opnd:{ *:[i64] }:$rk) - Complexity = 8 ++ // Dst: (ASRTLE_D GPR64Opnd:{ *:[i64] }:$rj, GPR64Opnd:{ *:[i64] }:$rk) ++/* 6836*/ /*Scope*/ 13, /*->6850*/ ++/* 6837*/ OPC_CheckChild1Integer, 51|128,28/*3635*/, ++/* 6840*/ OPC_RecordChild2, // #1 = $rj ++/* 6841*/ OPC_RecordChild3, // #2 = $rk ++/* 6842*/ OPC_EmitMergeInputChains1_0, ++/* 6843*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ASRTGT_D), 0|OPFL_Chain, ++ 2/*#Ops*/, 1, 2, ++ // Src: (intrinsic_void 3635:{ *:[iPTR] }, GPR64Opnd:{ *:[i64] }:$rj, GPR64Opnd:{ *:[i64] }:$rk) - Complexity = 8 ++ // Dst: (ASRTGT_D GPR64Opnd:{ *:[i64] }:$rj, GPR64Opnd:{ *:[i64] }:$rk) ++/* 6850*/ /*Scope*/ 13, /*->6864*/ ++/* 6851*/ OPC_CheckChild1Integer, 78|128,28/*3662*/, ++/* 6854*/ OPC_RecordChild2, // #1 = $rd ++/* 6855*/ OPC_RecordChild3, // #2 = $rj ++/* 6856*/ OPC_EmitMergeInputChains1_0, ++/* 6857*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::IOCSRWR_D), 0|OPFL_Chain, ++ 2/*#Ops*/, 1, 2, ++ // Src: (intrinsic_void 3662:{ *:[iPTR] }, GPR64Opnd:{ *:[i64] }:$rd, GPR32Opnd:{ *:[i32] }:$rj) - Complexity = 8 ++ // Dst: (IOCSRWR_D GPR64Opnd:{ *:[i64] }:$rd, GPR32Opnd:{ *:[i32] }:$rj) ++/* 6864*/ /*Scope*/ 9, /*->6874*/ ++/* 6865*/ OPC_CheckChild1Integer, 112|128,39/*5104*/, ++/* 6868*/ OPC_EmitMergeInputChains1_0, ++/* 6869*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::TLBCLR), 0|OPFL_Chain, ++ 0/*#Ops*/, ++ // Src: (intrinsic_void 5104:{ *:[iPTR] }) - Complexity = 8 ++ // Dst: (TLBCLR) ++/* 6874*/ /*Scope*/ 9, /*->6884*/ ++/* 6875*/ OPC_CheckChild1Integer, 114|128,39/*5106*/, ++/* 6878*/ OPC_EmitMergeInputChains1_0, ++/* 6879*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::TLBFLUSH), 0|OPFL_Chain, ++ 0/*#Ops*/, ++ // Src: (intrinsic_void 5106:{ *:[iPTR] }) - Complexity = 8 ++ // Dst: (TLBFLUSH) ++/* 6884*/ /*Scope*/ 9, /*->6894*/ ++/* 6885*/ OPC_CheckChild1Integer, 116|128,39/*5108*/, ++/* 6888*/ OPC_EmitMergeInputChains1_0, ++/* 6889*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::TLBSRCH), 0|OPFL_Chain, ++ 0/*#Ops*/, ++ // Src: (intrinsic_void 5108:{ *:[iPTR] }) - Complexity = 8 ++ // Dst: (TLBSRCH) ++/* 6894*/ /*Scope*/ 9, /*->6904*/ ++/* 6895*/ OPC_CheckChild1Integer, 115|128,39/*5107*/, ++/* 6898*/ OPC_EmitMergeInputChains1_0, ++/* 6899*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::TLBRD), 0|OPFL_Chain, ++ 0/*#Ops*/, ++ // Src: (intrinsic_void 5107:{ *:[iPTR] }) - Complexity = 8 ++ // Dst: (TLBRD) ++/* 6904*/ /*Scope*/ 9, /*->6914*/ ++/* 6905*/ OPC_CheckChild1Integer, 117|128,39/*5109*/, ++/* 6908*/ OPC_EmitMergeInputChains1_0, ++/* 6909*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::TLBWR), 0|OPFL_Chain, ++ 0/*#Ops*/, ++ // Src: (intrinsic_void 5109:{ *:[iPTR] }) - Complexity = 8 ++ // Dst: (TLBWR) ++/* 6914*/ /*Scope*/ 9, /*->6924*/ ++/* 6915*/ OPC_CheckChild1Integer, 113|128,39/*5105*/, ++/* 6918*/ OPC_EmitMergeInputChains1_0, ++/* 6919*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::TLBFILL), 0|OPFL_Chain, ++ 0/*#Ops*/, ++ // Src: (intrinsic_void 5105:{ *:[iPTR] }) - Complexity = 8 ++ // Dst: (TLBFILL) ++/* 6924*/ /*Scope*/ 13, /*->6938*/ ++/* 6925*/ OPC_CheckChild1Integer, 77|128,28/*3661*/, ++/* 6928*/ OPC_RecordChild2, // #1 = $rd ++/* 6929*/ OPC_RecordChild3, // #2 = $rj ++/* 6930*/ OPC_EmitMergeInputChains1_0, ++/* 6931*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::IOCSRWR_B32), 0|OPFL_Chain, ++ 2/*#Ops*/, 1, 2, ++ // Src: (intrinsic_void 3661:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rd, GPR32Opnd:{ *:[i32] }:$rj) - Complexity = 8 ++ // Dst: (IOCSRWR_B32 GPR32Opnd:{ *:[i32] }:$rd, GPR32Opnd:{ *:[i32] }:$rj) ++/* 6938*/ /*Scope*/ 13, /*->6952*/ ++/* 6939*/ OPC_CheckChild1Integer, 79|128,28/*3663*/, ++/* 6942*/ OPC_RecordChild2, // #1 = $rd ++/* 6943*/ OPC_RecordChild3, // #2 = $rj ++/* 6944*/ OPC_EmitMergeInputChains1_0, ++/* 6945*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::IOCSRWR_H32), 0|OPFL_Chain, ++ 2/*#Ops*/, 1, 2, ++ // Src: (intrinsic_void 3663:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rd, GPR32Opnd:{ *:[i32] }:$rj) - Complexity = 8 ++ // Dst: (IOCSRWR_H32 GPR32Opnd:{ *:[i32] }:$rd, GPR32Opnd:{ *:[i32] }:$rj) ++/* 6952*/ /*Scope*/ 13, /*->6966*/ ++/* 6953*/ OPC_CheckChild1Integer, 80|128,28/*3664*/, ++/* 6956*/ OPC_RecordChild2, // #1 = $rd ++/* 6957*/ OPC_RecordChild3, // #2 = $rj ++/* 6958*/ OPC_EmitMergeInputChains1_0, ++/* 6959*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::IOCSRWR_W32), 0|OPFL_Chain, ++ 2/*#Ops*/, 1, 2, ++ // Src: (intrinsic_void 3664:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rd, GPR32Opnd:{ *:[i32] }:$rj) - Complexity = 8 ++ // Dst: (IOCSRWR_W32 GPR32Opnd:{ *:[i32] }:$rd, GPR32Opnd:{ *:[i32] }:$rj) ++/* 6966*/ /*Scope*/ 15, /*->6982*/ ++/* 6967*/ OPC_CheckChild1Integer, 83|128,39/*5075*/, ++/* 6970*/ OPC_RecordChild2, // #1 = $vd ++/* 6971*/ OPC_RecordChild3, // #2 = $rj ++/* 6972*/ OPC_RecordChild4, // #3 = $rk ++/* 6973*/ OPC_EmitMergeInputChains1_0, ++/* 6974*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::VSTX), 0|OPFL_Chain, ++ 3/*#Ops*/, 1, 2, 3, ++ // Src: (intrinsic_void 5075:{ *:[iPTR] }, LSX128BOpnd:{ *:[v16i8] }:$vd, iPTR:{ *:[iPTR] }:$rj, GPR64Opnd:{ *:[i64] }:$rk) - Complexity = 8 ++ // Dst: (VSTX LSX128BOpnd:{ *:[v16i8] }:$vd, iPTR:{ *:[iPTR] }:$rj, GPR64Opnd:{ *:[i64] }:$rk) ++/* 6982*/ /*Scope*/ 15, /*->6998*/ ++/* 6983*/ OPC_CheckChild1Integer, 15|128,34/*4367*/, ++/* 6986*/ OPC_RecordChild2, // #1 = $xd ++/* 6987*/ OPC_RecordChild3, // #2 = $rj ++/* 6988*/ OPC_RecordChild4, // #3 = $rk ++/* 6989*/ OPC_EmitMergeInputChains1_0, ++/* 6990*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::XVSTX), 0|OPFL_Chain, ++ 3/*#Ops*/, 1, 2, 3, ++ // Src: (intrinsic_void 4367:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xd, iPTR:{ *:[iPTR] }:$rj, GPR64Opnd:{ *:[i64] }:$rk) - Complexity = 8 ++ // Dst: (XVSTX LASX256BOpnd:{ *:[v32i8] }:$xd, iPTR:{ *:[iPTR] }:$rj, GPR64Opnd:{ *:[i64] }:$rk) ++/* 6998*/ 0, /*End of Scope*/ ++/* 6999*/ /*SwitchOpcode*/ 60|128,18/*2364*/, TARGET_VAL(ISD::SETCC),// ->9367 ++/* 7003*/ OPC_Scope, 41, /*->7046*/ // 2 children in Scope ++/* 7005*/ OPC_MoveChild0, ++/* 7006*/ OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE), ++/* 7009*/ OPC_MoveChild0, ++/* 7010*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertSext), ++/* 7013*/ OPC_RecordChild0, // #0 = $rj ++/* 7014*/ OPC_MoveParent, ++/* 7015*/ OPC_CheckType, MVT::i32, ++/* 7017*/ OPC_MoveParent, ++/* 7018*/ OPC_CheckChild1Integer, 0, ++/* 7020*/ OPC_CheckChild2CondCode, ISD::SETNE, ++/* 7022*/ OPC_CheckType, MVT::i32, ++/* 7024*/ OPC_EmitRegister, MVT::i32, LoongArch::ZERO, ++/* 7027*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/* 7030*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 0, 2, // Results = #3 ++/* 7038*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLTU32), 0, ++ MVT::i32, 2/*#Ops*/, 1, 3, ++ // Src: (setcc:{ *:[i32] } (trunc:{ *:[i32] } (assertsext:{ *:[i64] } GPR64:{ *:[i64] }:$rj)), 0:{ *:[i32] }, SETNE:{ *:[Other] }) - Complexity = 14 ++ // Dst: (SLTU32:{ *:[i32] } ZERO:{ *:[i32] }, (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$rj, sub_32:{ *:[i32] })) ++/* 7046*/ /*Scope*/ 14|128,18/*2318*/, /*->9366*/ ++/* 7048*/ OPC_RecordChild0, // #0 = $lhs ++/* 7049*/ OPC_Scope, 44|128,2/*300*/, /*->7352*/ // 14 children in Scope ++/* 7052*/ OPC_CheckChild0Type, MVT::i32, ++/* 7054*/ OPC_Scope, 34, /*->7090*/ // 2 children in Scope ++/* 7056*/ OPC_CheckChild1Integer, 0, ++/* 7058*/ OPC_CheckType, MVT::i32, ++/* 7060*/ OPC_Scope, 13, /*->7075*/ // 2 children in Scope ++/* 7062*/ OPC_CheckChild2CondCode, ISD::SETEQ, ++/* 7064*/ OPC_EmitInteger, MVT::i32, 1, ++/* 7067*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLTUI32), 0, ++ MVT::i32, 2/*#Ops*/, 0, 1, ++ // Src: (setcc:{ *:[i32] } GPR32:{ *:[i32] }:$lhs, 0:{ *:[i32] }, SETEQ:{ *:[Other] }) - Complexity = 8 ++ // Dst: (SLTUI32:{ *:[i32] } GPR32:{ *:[i32] }:$lhs, 1:{ *:[i32] }) ++/* 7075*/ /*Scope*/ 13, /*->7089*/ ++/* 7076*/ OPC_CheckChild2CondCode, ISD::SETNE, ++/* 7078*/ OPC_EmitRegister, MVT::i32, LoongArch::ZERO, ++/* 7081*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLTU32), 0, ++ MVT::i32, 2/*#Ops*/, 1, 0, ++ // Src: (setcc:{ *:[i32] } GPR32:{ *:[i32] }:$lhs, 0:{ *:[i32] }, SETNE:{ *:[Other] }) - Complexity = 8 ++ // Dst: (SLTU32:{ *:[i32] } ZERO:{ *:[i32] }, GPR32:{ *:[i32] }:$lhs) ++/* 7089*/ 0, /*End of Scope*/ ++/* 7090*/ /*Scope*/ 3|128,2/*259*/, /*->7351*/ ++/* 7092*/ OPC_RecordChild1, // #1 = $rhs ++/* 7093*/ OPC_Scope, 59, /*->7154*/ // 11 children in Scope ++/* 7095*/ OPC_MoveChild1, ++/* 7096*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 7099*/ OPC_CheckPredicate, 14, // Predicate_immSExt12 ++/* 7101*/ OPC_MoveParent, ++/* 7102*/ OPC_CheckType, MVT::i32, ++/* 7104*/ OPC_Scope, 23, /*->7129*/ // 2 children in Scope ++/* 7106*/ OPC_CheckChild2CondCode, ISD::SETGE, ++/* 7108*/ OPC_EmitConvertToTarget, 1, ++/* 7110*/ OPC_EmitNode1, TARGET_VAL(LoongArch::SLTI32), 0, ++ MVT::i32, 2/*#Ops*/, 0, 2, // Results = #3 ++/* 7118*/ OPC_EmitInteger, MVT::i32, 1, ++/* 7121*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XORI32), 0, ++ MVT::i32, 2/*#Ops*/, 3, 4, ++ // Src: (setcc:{ *:[i32] } GPR32:{ *:[i32] }:$lhs, (imm:{ *:[i32] })<>:$rhs, SETGE:{ *:[Other] }) - Complexity = 7 ++ // Dst: (XORI32:{ *:[i32] } (SLTI32:{ *:[i32] } GPR32:{ *:[i32] }:$lhs, (imm:{ *:[i32] })<>:$rhs), 1:{ *:[i32] }) ++/* 7129*/ /*Scope*/ 23, /*->7153*/ ++/* 7130*/ OPC_CheckChild2CondCode, ISD::SETUGE, ++/* 7132*/ OPC_EmitConvertToTarget, 1, ++/* 7134*/ OPC_EmitNode1, TARGET_VAL(LoongArch::SLTUI32), 0, ++ MVT::i32, 2/*#Ops*/, 0, 2, // Results = #3 ++/* 7142*/ OPC_EmitInteger, MVT::i32, 1, ++/* 7145*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XORI32), 0, ++ MVT::i32, 2/*#Ops*/, 3, 4, ++ // Src: (setcc:{ *:[i32] } GPR32:{ *:[i32] }:$lhs, (imm:{ *:[i32] })<>:$rhs, SETUGE:{ *:[Other] }) - Complexity = 7 ++ // Dst: (XORI32:{ *:[i32] } (SLTUI32:{ *:[i32] } GPR32:{ *:[i32] }:$lhs, (imm:{ *:[i32] })<>:$rhs), 1:{ *:[i32] }) ++/* 7153*/ 0, /*End of Scope*/ ++/* 7154*/ /*Scope*/ 12, /*->7167*/ ++/* 7155*/ OPC_CheckChild2CondCode, ISD::SETLT, ++/* 7157*/ OPC_CheckType, MVT::i32, ++/* 7159*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLT32), 0, ++ MVT::i32, 2/*#Ops*/, 0, 1, ++ // Src: (setcc:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rk, SETLT:{ *:[Other] }) - Complexity = 3 ++ // Dst: (SLT32:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) ++/* 7167*/ /*Scope*/ 12, /*->7180*/ ++/* 7168*/ OPC_CheckChild2CondCode, ISD::SETULT, ++/* 7170*/ OPC_CheckType, MVT::i32, ++/* 7172*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLTU32), 0, ++ MVT::i32, 2/*#Ops*/, 0, 1, ++ // Src: (setcc:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rk, SETULT:{ *:[Other] }) - Complexity = 3 ++ // Dst: (SLTU32:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) ++/* 7180*/ /*Scope*/ 12, /*->7193*/ ++/* 7181*/ OPC_CheckChild2CondCode, ISD::SETGT, ++/* 7183*/ OPC_CheckType, MVT::i32, ++/* 7185*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLT32), 0, ++ MVT::i32, 2/*#Ops*/, 1, 0, ++ // Src: (setcc:{ *:[i32] } GPR32:{ *:[i32] }:$lhs, GPR32:{ *:[i32] }:$rhs, SETGT:{ *:[Other] }) - Complexity = 3 ++ // Dst: (SLT32:{ *:[i32] } GPR32:{ *:[i32] }:$rhs, GPR32:{ *:[i32] }:$lhs) ++/* 7193*/ /*Scope*/ 12, /*->7206*/ ++/* 7194*/ OPC_CheckChild2CondCode, ISD::SETUGT, ++/* 7196*/ OPC_CheckType, MVT::i32, ++/* 7198*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLTU32), 0, ++ MVT::i32, 2/*#Ops*/, 1, 0, ++ // Src: (setcc:{ *:[i32] } GPR32:{ *:[i32] }:$lhs, GPR32:{ *:[i32] }:$rhs, SETUGT:{ *:[Other] }) - Complexity = 3 ++ // Dst: (SLTU32:{ *:[i32] } GPR32:{ *:[i32] }:$rhs, GPR32:{ *:[i32] }:$lhs) ++/* 7206*/ /*Scope*/ 23, /*->7230*/ ++/* 7207*/ OPC_CheckChild2CondCode, ISD::SETEQ, ++/* 7209*/ OPC_CheckType, MVT::i32, ++/* 7211*/ OPC_EmitNode1, TARGET_VAL(LoongArch::XOR32), 0, ++ MVT::i32, 2/*#Ops*/, 0, 1, // Results = #2 ++/* 7219*/ OPC_EmitInteger, MVT::i32, 1, ++/* 7222*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLTUI32), 0, ++ MVT::i32, 2/*#Ops*/, 2, 3, ++ // Src: (setcc:{ *:[i32] } GPR32:{ *:[i32] }:$lhs, GPR32:{ *:[i32] }:$rhs, SETEQ:{ *:[Other] }) - Complexity = 3 ++ // Dst: (SLTUI32:{ *:[i32] } (XOR32:{ *:[i32] } GPR32:{ *:[i32] }:$lhs, GPR32:{ *:[i32] }:$rhs), 1:{ *:[i32] }) ++/* 7230*/ /*Scope*/ 23, /*->7254*/ ++/* 7231*/ OPC_CheckChild2CondCode, ISD::SETNE, ++/* 7233*/ OPC_CheckType, MVT::i32, ++/* 7235*/ OPC_EmitRegister, MVT::i32, LoongArch::ZERO, ++/* 7238*/ OPC_EmitNode1, TARGET_VAL(LoongArch::XOR32), 0, ++ MVT::i32, 2/*#Ops*/, 0, 1, // Results = #3 ++/* 7246*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLTU32), 0, ++ MVT::i32, 2/*#Ops*/, 2, 3, ++ // Src: (setcc:{ *:[i32] } GPR32:{ *:[i32] }:$lhs, GPR32:{ *:[i32] }:$rhs, SETNE:{ *:[Other] }) - Complexity = 3 ++ // Dst: (SLTU32:{ *:[i32] } ZERO:{ *:[i32] }, (XOR32:{ *:[i32] } GPR32:{ *:[i32] }:$lhs, GPR32:{ *:[i32] }:$rhs)) ++/* 7254*/ /*Scope*/ 23, /*->7278*/ ++/* 7255*/ OPC_CheckChild2CondCode, ISD::SETLE, ++/* 7257*/ OPC_CheckType, MVT::i32, ++/* 7259*/ OPC_EmitNode1, TARGET_VAL(LoongArch::SLT32), 0, ++ MVT::i32, 2/*#Ops*/, 1, 0, // Results = #2 ++/* 7267*/ OPC_EmitInteger, MVT::i32, 1, ++/* 7270*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XORI32), 0, ++ MVT::i32, 2/*#Ops*/, 2, 3, ++ // Src: (setcc:{ *:[i32] } GPR32:{ *:[i32] }:$lhs, GPR32:{ *:[i32] }:$rhs, SETLE:{ *:[Other] }) - Complexity = 3 ++ // Dst: (XORI32:{ *:[i32] } (SLT32:{ *:[i32] } GPR32:{ *:[i32] }:$rhs, GPR32:{ *:[i32] }:$lhs), 1:{ *:[i32] }) ++/* 7278*/ /*Scope*/ 23, /*->7302*/ ++/* 7279*/ OPC_CheckChild2CondCode, ISD::SETULE, ++/* 7281*/ OPC_CheckType, MVT::i32, ++/* 7283*/ OPC_EmitNode1, TARGET_VAL(LoongArch::SLTU32), 0, ++ MVT::i32, 2/*#Ops*/, 1, 0, // Results = #2 ++/* 7291*/ OPC_EmitInteger, MVT::i32, 1, ++/* 7294*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XORI32), 0, ++ MVT::i32, 2/*#Ops*/, 2, 3, ++ // Src: (setcc:{ *:[i32] } GPR32:{ *:[i32] }:$lhs, GPR32:{ *:[i32] }:$rhs, SETULE:{ *:[Other] }) - Complexity = 3 ++ // Dst: (XORI32:{ *:[i32] } (SLTU32:{ *:[i32] } GPR32:{ *:[i32] }:$rhs, GPR32:{ *:[i32] }:$lhs), 1:{ *:[i32] }) ++/* 7302*/ /*Scope*/ 23, /*->7326*/ ++/* 7303*/ OPC_CheckChild2CondCode, ISD::SETGE, ++/* 7305*/ OPC_CheckType, MVT::i32, ++/* 7307*/ OPC_EmitNode1, TARGET_VAL(LoongArch::SLT32), 0, ++ MVT::i32, 2/*#Ops*/, 0, 1, // Results = #2 ++/* 7315*/ OPC_EmitInteger, MVT::i32, 1, ++/* 7318*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XORI32), 0, ++ MVT::i32, 2/*#Ops*/, 2, 3, ++ // Src: (setcc:{ *:[i32] } GPR32:{ *:[i32] }:$lhs, GPR32:{ *:[i32] }:$rhs, SETGE:{ *:[Other] }) - Complexity = 3 ++ // Dst: (XORI32:{ *:[i32] } (SLT32:{ *:[i32] } GPR32:{ *:[i32] }:$lhs, GPR32:{ *:[i32] }:$rhs), 1:{ *:[i32] }) ++/* 7326*/ /*Scope*/ 23, /*->7350*/ ++/* 7327*/ OPC_CheckChild2CondCode, ISD::SETUGE, ++/* 7329*/ OPC_CheckType, MVT::i32, ++/* 7331*/ OPC_EmitNode1, TARGET_VAL(LoongArch::SLTU32), 0, ++ MVT::i32, 2/*#Ops*/, 0, 1, // Results = #2 ++/* 7339*/ OPC_EmitInteger, MVT::i32, 1, ++/* 7342*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XORI32), 0, ++ MVT::i32, 2/*#Ops*/, 2, 3, ++ // Src: (setcc:{ *:[i32] } GPR32:{ *:[i32] }:$lhs, GPR32:{ *:[i32] }:$rhs, SETUGE:{ *:[Other] }) - Complexity = 3 ++ // Dst: (XORI32:{ *:[i32] } (SLTU32:{ *:[i32] } GPR32:{ *:[i32] }:$lhs, GPR32:{ *:[i32] }:$rhs), 1:{ *:[i32] }) ++/* 7350*/ 0, /*End of Scope*/ ++/* 7351*/ 0, /*End of Scope*/ ++/* 7352*/ /*Scope*/ 105|128,2/*361*/, /*->7715*/ ++/* 7354*/ OPC_CheckChild0Type, MVT::i64, ++/* 7356*/ OPC_Scope, 38, /*->7396*/ // 2 children in Scope ++/* 7358*/ OPC_CheckChild1Integer, 0, ++/* 7360*/ OPC_CheckType, MVT::i32, ++/* 7362*/ OPC_Scope, 15, /*->7379*/ // 2 children in Scope ++/* 7364*/ OPC_CheckChild2CondCode, ISD::SETEQ, ++/* 7366*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/* 7368*/ OPC_EmitInteger, MVT::i64, 1, ++/* 7371*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLTUI), 0, ++ MVT::i32, 2/*#Ops*/, 0, 1, ++ // Src: (setcc:{ *:[i32] } GPR64:{ *:[i64] }:$lhs, 0:{ *:[i64] }, SETEQ:{ *:[Other] }) - Complexity = 8 ++ // Dst: (SLTUI:{ *:[i32] } GPR64:{ *:[i64] }:$lhs, 1:{ *:[i64] }) ++/* 7379*/ /*Scope*/ 15, /*->7395*/ ++/* 7380*/ OPC_CheckChild2CondCode, ISD::SETNE, ++/* 7382*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/* 7384*/ OPC_EmitRegister, MVT::i64, LoongArch::ZERO_64, ++/* 7387*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLTU), 0, ++ MVT::i32, 2/*#Ops*/, 1, 0, ++ // Src: (setcc:{ *:[i32] } GPR64:{ *:[i64] }:$lhs, 0:{ *:[i64] }, SETNE:{ *:[Other] }) - Complexity = 8 ++ // Dst: (SLTU:{ *:[i32] } ZERO_64:{ *:[i64] }, GPR64:{ *:[i64] }:$lhs) ++/* 7395*/ 0, /*End of Scope*/ ++/* 7396*/ /*Scope*/ 60|128,2/*316*/, /*->7714*/ ++/* 7398*/ OPC_RecordChild1, // #1 = $imm12 ++/* 7399*/ OPC_Scope, 100, /*->7501*/ // 11 children in Scope ++/* 7401*/ OPC_MoveChild1, ++/* 7402*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 7405*/ OPC_Scope, 33, /*->7440*/ // 2 children in Scope ++/* 7407*/ OPC_CheckPredicate, 21, // Predicate_simm12 ++/* 7409*/ OPC_MoveParent, ++/* 7410*/ OPC_CheckType, MVT::i32, ++/* 7412*/ OPC_Scope, 12, /*->7426*/ // 2 children in Scope ++/* 7414*/ OPC_CheckChild2CondCode, ISD::SETLT, ++/* 7416*/ OPC_EmitConvertToTarget, 1, ++/* 7418*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLTI), 0, ++ MVT::i32, 2/*#Ops*/, 0, 2, ++ // Src: (setcc:{ *:[i32] } GPR64Opnd:{ *:[i64] }:$rj, (imm:{ *:[i64] })<>:$imm12, SETLT:{ *:[Other] }) - Complexity = 7 ++ // Dst: (SLTI:{ *:[i32] } GPR64Opnd:{ *:[i64] }:$rj, (imm:{ *:[i64] }):$imm12) ++/* 7426*/ /*Scope*/ 12, /*->7439*/ ++/* 7427*/ OPC_CheckChild2CondCode, ISD::SETULT, ++/* 7429*/ OPC_EmitConvertToTarget, 1, ++/* 7431*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLTUI), 0, ++ MVT::i32, 2/*#Ops*/, 0, 2, ++ // Src: (setcc:{ *:[i32] } GPR64Opnd:{ *:[i64] }:$rj, (imm:{ *:[i64] })<>:$imm12, SETULT:{ *:[Other] }) - Complexity = 7 ++ // Dst: (SLTUI:{ *:[i32] } GPR64Opnd:{ *:[i64] }:$rj, (imm:{ *:[i64] }):$imm12) ++/* 7439*/ 0, /*End of Scope*/ ++/* 7440*/ /*Scope*/ 59, /*->7500*/ ++/* 7441*/ OPC_CheckPredicate, 14, // Predicate_immSExt12 ++/* 7443*/ OPC_MoveParent, ++/* 7444*/ OPC_CheckType, MVT::i32, ++/* 7446*/ OPC_Scope, 25, /*->7473*/ // 2 children in Scope ++/* 7448*/ OPC_CheckChild2CondCode, ISD::SETGE, ++/* 7450*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/* 7452*/ OPC_EmitConvertToTarget, 1, ++/* 7454*/ OPC_EmitNode1, TARGET_VAL(LoongArch::SLTI), 0, ++ MVT::i32, 2/*#Ops*/, 0, 2, // Results = #3 ++/* 7462*/ OPC_EmitInteger, MVT::i32, 1, ++/* 7465*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XORI32), 0, ++ MVT::i32, 2/*#Ops*/, 3, 4, ++ // Src: (setcc:{ *:[i32] } GPR64:{ *:[i64] }:$lhs, (imm:{ *:[i64] })<>:$rhs, SETGE:{ *:[Other] }) - Complexity = 7 ++ // Dst: (XORI32:{ *:[i32] } (SLTI:{ *:[i32] } GPR64:{ *:[i64] }:$lhs, (imm:{ *:[i64] })<>:$rhs), 1:{ *:[i32] }) ++/* 7473*/ /*Scope*/ 25, /*->7499*/ ++/* 7474*/ OPC_CheckChild2CondCode, ISD::SETUGE, ++/* 7476*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/* 7478*/ OPC_EmitConvertToTarget, 1, ++/* 7480*/ OPC_EmitNode1, TARGET_VAL(LoongArch::SLTUI), 0, ++ MVT::i32, 2/*#Ops*/, 0, 2, // Results = #3 ++/* 7488*/ OPC_EmitInteger, MVT::i32, 1, ++/* 7491*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XORI32), 0, ++ MVT::i32, 2/*#Ops*/, 3, 4, ++ // Src: (setcc:{ *:[i32] } GPR64:{ *:[i64] }:$lhs, (imm:{ *:[i64] })<>:$rhs, SETUGE:{ *:[Other] }) - Complexity = 7 ++ // Dst: (XORI32:{ *:[i32] } (SLTUI:{ *:[i32] } GPR64:{ *:[i64] }:$lhs, (imm:{ *:[i64] })<>:$rhs), 1:{ *:[i32] }) ++/* 7499*/ 0, /*End of Scope*/ ++/* 7500*/ 0, /*End of Scope*/ ++/* 7501*/ /*Scope*/ 12, /*->7514*/ ++/* 7502*/ OPC_CheckChild2CondCode, ISD::SETLT, ++/* 7504*/ OPC_CheckType, MVT::i32, ++/* 7506*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLT), 0, ++ MVT::i32, 2/*#Ops*/, 0, 1, ++ // Src: (setcc:{ *:[i32] } GPR64Opnd:{ *:[i64] }:$rj, GPR64Opnd:{ *:[i64] }:$rk, SETLT:{ *:[Other] }) - Complexity = 3 ++ // Dst: (SLT:{ *:[i32] } GPR64Opnd:{ *:[i64] }:$rj, GPR64Opnd:{ *:[i64] }:$rk) ++/* 7514*/ /*Scope*/ 12, /*->7527*/ ++/* 7515*/ OPC_CheckChild2CondCode, ISD::SETULT, ++/* 7517*/ OPC_CheckType, MVT::i32, ++/* 7519*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLTU), 0, ++ MVT::i32, 2/*#Ops*/, 0, 1, ++ // Src: (setcc:{ *:[i32] } GPR64Opnd:{ *:[i64] }:$rj, GPR64Opnd:{ *:[i64] }:$rk, SETULT:{ *:[Other] }) - Complexity = 3 ++ // Dst: (SLTU:{ *:[i32] } GPR64Opnd:{ *:[i64] }:$rj, GPR64Opnd:{ *:[i64] }:$rk) ++/* 7527*/ /*Scope*/ 14, /*->7542*/ ++/* 7528*/ OPC_CheckChild2CondCode, ISD::SETGT, ++/* 7530*/ OPC_CheckType, MVT::i32, ++/* 7532*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/* 7534*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLT), 0, ++ MVT::i32, 2/*#Ops*/, 1, 0, ++ // Src: (setcc:{ *:[i32] } GPR64:{ *:[i64] }:$lhs, GPR64:{ *:[i64] }:$rhs, SETGT:{ *:[Other] }) - Complexity = 3 ++ // Dst: (SLT:{ *:[i32] } GPR64:{ *:[i64] }:$rhs, GPR64:{ *:[i64] }:$lhs) ++/* 7542*/ /*Scope*/ 14, /*->7557*/ ++/* 7543*/ OPC_CheckChild2CondCode, ISD::SETUGT, ++/* 7545*/ OPC_CheckType, MVT::i32, ++/* 7547*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/* 7549*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLTU), 0, ++ MVT::i32, 2/*#Ops*/, 1, 0, ++ // Src: (setcc:{ *:[i32] } GPR64:{ *:[i64] }:$lhs, GPR64:{ *:[i64] }:$rhs, SETUGT:{ *:[Other] }) - Complexity = 3 ++ // Dst: (SLTU:{ *:[i32] } GPR64:{ *:[i64] }:$rhs, GPR64:{ *:[i64] }:$lhs) ++/* 7557*/ /*Scope*/ 25, /*->7583*/ ++/* 7558*/ OPC_CheckChild2CondCode, ISD::SETEQ, ++/* 7560*/ OPC_CheckType, MVT::i32, ++/* 7562*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/* 7564*/ OPC_EmitNode1, TARGET_VAL(LoongArch::XOR), 0, ++ MVT::i64, 2/*#Ops*/, 0, 1, // Results = #2 ++/* 7572*/ OPC_EmitInteger, MVT::i64, 1, ++/* 7575*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLTUI), 0, ++ MVT::i32, 2/*#Ops*/, 2, 3, ++ // Src: (setcc:{ *:[i32] } GPR64:{ *:[i64] }:$lhs, GPR64:{ *:[i64] }:$rhs, SETEQ:{ *:[Other] }) - Complexity = 3 ++ // Dst: (SLTUI:{ *:[i32] } (XOR:{ *:[i64] } GPR64:{ *:[i64] }:$lhs, GPR64:{ *:[i64] }:$rhs), 1:{ *:[i64] }) ++/* 7583*/ /*Scope*/ 25, /*->7609*/ ++/* 7584*/ OPC_CheckChild2CondCode, ISD::SETNE, ++/* 7586*/ OPC_CheckType, MVT::i32, ++/* 7588*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/* 7590*/ OPC_EmitRegister, MVT::i64, LoongArch::ZERO_64, ++/* 7593*/ OPC_EmitNode1, TARGET_VAL(LoongArch::XOR), 0, ++ MVT::i64, 2/*#Ops*/, 0, 1, // Results = #3 ++/* 7601*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLTU), 0, ++ MVT::i32, 2/*#Ops*/, 2, 3, ++ // Src: (setcc:{ *:[i32] } GPR64:{ *:[i64] }:$lhs, GPR64:{ *:[i64] }:$rhs, SETNE:{ *:[Other] }) - Complexity = 3 ++ // Dst: (SLTU:{ *:[i32] } ZERO_64:{ *:[i64] }, (XOR:{ *:[i64] } GPR64:{ *:[i64] }:$lhs, GPR64:{ *:[i64] }:$rhs)) ++/* 7609*/ /*Scope*/ 25, /*->7635*/ ++/* 7610*/ OPC_CheckChild2CondCode, ISD::SETLE, ++/* 7612*/ OPC_CheckType, MVT::i32, ++/* 7614*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/* 7616*/ OPC_EmitNode1, TARGET_VAL(LoongArch::SLT), 0, ++ MVT::i32, 2/*#Ops*/, 1, 0, // Results = #2 ++/* 7624*/ OPC_EmitInteger, MVT::i32, 1, ++/* 7627*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XORI32), 0, ++ MVT::i32, 2/*#Ops*/, 2, 3, ++ // Src: (setcc:{ *:[i32] } GPR64:{ *:[i64] }:$lhs, GPR64:{ *:[i64] }:$rhs, SETLE:{ *:[Other] }) - Complexity = 3 ++ // Dst: (XORI32:{ *:[i32] } (SLT:{ *:[i32] } GPR64:{ *:[i64] }:$rhs, GPR64:{ *:[i64] }:$lhs), 1:{ *:[i32] }) ++/* 7635*/ /*Scope*/ 25, /*->7661*/ ++/* 7636*/ OPC_CheckChild2CondCode, ISD::SETULE, ++/* 7638*/ OPC_CheckType, MVT::i32, ++/* 7640*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/* 7642*/ OPC_EmitNode1, TARGET_VAL(LoongArch::SLTU), 0, ++ MVT::i32, 2/*#Ops*/, 1, 0, // Results = #2 ++/* 7650*/ OPC_EmitInteger, MVT::i32, 1, ++/* 7653*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XORI32), 0, ++ MVT::i32, 2/*#Ops*/, 2, 3, ++ // Src: (setcc:{ *:[i32] } GPR64:{ *:[i64] }:$lhs, GPR64:{ *:[i64] }:$rhs, SETULE:{ *:[Other] }) - Complexity = 3 ++ // Dst: (XORI32:{ *:[i32] } (SLTU:{ *:[i32] } GPR64:{ *:[i64] }:$rhs, GPR64:{ *:[i64] }:$lhs), 1:{ *:[i32] }) ++/* 7661*/ /*Scope*/ 25, /*->7687*/ ++/* 7662*/ OPC_CheckChild2CondCode, ISD::SETGE, ++/* 7664*/ OPC_CheckType, MVT::i32, ++/* 7666*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/* 7668*/ OPC_EmitNode1, TARGET_VAL(LoongArch::SLT), 0, ++ MVT::i32, 2/*#Ops*/, 0, 1, // Results = #2 ++/* 7676*/ OPC_EmitInteger, MVT::i32, 1, ++/* 7679*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XORI32), 0, ++ MVT::i32, 2/*#Ops*/, 2, 3, ++ // Src: (setcc:{ *:[i32] } GPR64:{ *:[i64] }:$lhs, GPR64:{ *:[i64] }:$rhs, SETGE:{ *:[Other] }) - Complexity = 3 ++ // Dst: (XORI32:{ *:[i32] } (SLT:{ *:[i32] } GPR64:{ *:[i64] }:$lhs, GPR64:{ *:[i64] }:$rhs), 1:{ *:[i32] }) ++/* 7687*/ /*Scope*/ 25, /*->7713*/ ++/* 7688*/ OPC_CheckChild2CondCode, ISD::SETUGE, ++/* 7690*/ OPC_CheckType, MVT::i32, ++/* 7692*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/* 7694*/ OPC_EmitNode1, TARGET_VAL(LoongArch::SLTU), 0, ++ MVT::i32, 2/*#Ops*/, 0, 1, // Results = #2 ++/* 7702*/ OPC_EmitInteger, MVT::i32, 1, ++/* 7705*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XORI32), 0, ++ MVT::i32, 2/*#Ops*/, 2, 3, ++ // Src: (setcc:{ *:[i32] } GPR64:{ *:[i64] }:$lhs, GPR64:{ *:[i64] }:$rhs, SETUGE:{ *:[Other] }) - Complexity = 3 ++ // Dst: (XORI32:{ *:[i32] } (SLTU:{ *:[i32] } GPR64:{ *:[i64] }:$lhs, GPR64:{ *:[i64] }:$rhs), 1:{ *:[i32] }) ++/* 7713*/ 0, /*End of Scope*/ ++/* 7714*/ 0, /*End of Scope*/ ++/* 7715*/ /*Scope*/ 4|128,1/*132*/, /*->7849*/ ++/* 7717*/ OPC_CheckChild0Type, MVT::v16i8, ++/* 7719*/ OPC_RecordChild1, // #1 = $si5 ++/* 7720*/ OPC_CheckType, MVT::v16i8, ++/* 7722*/ OPC_Scope, 13, /*->7737*/ // 10 children in Scope ++/* 7724*/ OPC_CheckChild2CondCode, ISD::SETEQ, ++/* 7726*/ OPC_CheckComplexPat, /*CP*/5, /*#*/1, // selectVSplatSimm5:$si5 #2 ++/* 7729*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSEQI_B_N), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 2, ++ // Src: (vsetcc:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, vsplati8_simm5:{ *:[v16i8] }:$si5, SETEQ:{ *:[Other] }) - Complexity = 9 ++ // Dst: (VSEQI_B_N:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, vsplati8_simm5:{ *:[v16i8] }:$si5) ++/* 7737*/ /*Scope*/ 13, /*->7751*/ ++/* 7738*/ OPC_CheckChild2CondCode, ISD::SETLE, ++/* 7740*/ OPC_CheckComplexPat, /*CP*/5, /*#*/1, // selectVSplatSimm5:$si5 #2 ++/* 7743*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLEI_B_N), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 2, ++ // Src: (vsetcc:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, vsplati8_simm5:{ *:[v16i8] }:$si5, SETLE:{ *:[Other] }) - Complexity = 9 ++ // Dst: (VSLEI_B_N:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, vsplati8_simm5:{ *:[v16i8] }:$si5) ++/* 7751*/ /*Scope*/ 13, /*->7765*/ ++/* 7752*/ OPC_CheckChild2CondCode, ISD::SETULE, ++/* 7754*/ OPC_CheckComplexPat, /*CP*/6, /*#*/1, // selectVSplatUimm5:$ui5 #2 ++/* 7757*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLEI_BU_N), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 2, ++ // Src: (vsetcc:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, vsplati8_uimm5:{ *:[v16i8] }:$ui5, SETULE:{ *:[Other] }) - Complexity = 9 ++ // Dst: (VSLEI_BU_N:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, vsplati8_uimm5:{ *:[v16i8] }:$ui5) ++/* 7765*/ /*Scope*/ 13, /*->7779*/ ++/* 7766*/ OPC_CheckChild2CondCode, ISD::SETLT, ++/* 7768*/ OPC_CheckComplexPat, /*CP*/5, /*#*/1, // selectVSplatSimm5:$si5 #2 ++/* 7771*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLTI_B_N), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 2, ++ // Src: (vsetcc:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, vsplati8_simm5:{ *:[v16i8] }:$si5, SETLT:{ *:[Other] }) - Complexity = 9 ++ // Dst: (VSLTI_B_N:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, vsplati8_simm5:{ *:[v16i8] }:$si5) ++/* 7779*/ /*Scope*/ 13, /*->7793*/ ++/* 7780*/ OPC_CheckChild2CondCode, ISD::SETULT, ++/* 7782*/ OPC_CheckComplexPat, /*CP*/6, /*#*/1, // selectVSplatUimm5:$ui5 #2 ++/* 7785*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLTI_BU_N), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 2, ++ // Src: (vsetcc:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, vsplati8_uimm5:{ *:[v16i8] }:$ui5, SETULT:{ *:[Other] }) - Complexity = 9 ++ // Dst: (VSLTI_BU_N:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, vsplati8_uimm5:{ *:[v16i8] }:$ui5) ++/* 7793*/ /*Scope*/ 10, /*->7804*/ ++/* 7794*/ OPC_CheckChild2CondCode, ISD::SETEQ, ++/* 7796*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSEQ_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (vsetcc:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk, SETEQ:{ *:[Other] }) - Complexity = 3 ++ // Dst: (VSEQ_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/* 7804*/ /*Scope*/ 10, /*->7815*/ ++/* 7805*/ OPC_CheckChild2CondCode, ISD::SETLE, ++/* 7807*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLE_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (vsetcc:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk, SETLE:{ *:[Other] }) - Complexity = 3 ++ // Dst: (VSLE_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/* 7815*/ /*Scope*/ 10, /*->7826*/ ++/* 7816*/ OPC_CheckChild2CondCode, ISD::SETULE, ++/* 7818*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLE_BU), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (vsetcc:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk, SETULE:{ *:[Other] }) - Complexity = 3 ++ // Dst: (VSLE_BU:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/* 7826*/ /*Scope*/ 10, /*->7837*/ ++/* 7827*/ OPC_CheckChild2CondCode, ISD::SETLT, ++/* 7829*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLT_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (vsetcc:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk, SETLT:{ *:[Other] }) - Complexity = 3 ++ // Dst: (VSLT_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/* 7837*/ /*Scope*/ 10, /*->7848*/ ++/* 7838*/ OPC_CheckChild2CondCode, ISD::SETULT, ++/* 7840*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLT_BU), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (vsetcc:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk, SETULT:{ *:[Other] }) - Complexity = 3 ++ // Dst: (VSLT_BU:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/* 7848*/ 0, /*End of Scope*/ ++/* 7849*/ /*Scope*/ 4|128,1/*132*/, /*->7983*/ ++/* 7851*/ OPC_CheckChild0Type, MVT::v8i16, ++/* 7853*/ OPC_RecordChild1, // #1 = $si5 ++/* 7854*/ OPC_CheckType, MVT::v8i16, ++/* 7856*/ OPC_Scope, 13, /*->7871*/ // 10 children in Scope ++/* 7858*/ OPC_CheckChild2CondCode, ISD::SETEQ, ++/* 7860*/ OPC_CheckComplexPat, /*CP*/7, /*#*/1, // selectVSplatSimm5:$si5 #2 ++/* 7863*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSEQI_H_N), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 2, ++ // Src: (vsetcc:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, vsplati16_simm5:{ *:[v8i16] }:$si5, SETEQ:{ *:[Other] }) - Complexity = 9 ++ // Dst: (VSEQI_H_N:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, vsplati16_simm5:{ *:[v8i16] }:$si5) ++/* 7871*/ /*Scope*/ 13, /*->7885*/ ++/* 7872*/ OPC_CheckChild2CondCode, ISD::SETLE, ++/* 7874*/ OPC_CheckComplexPat, /*CP*/7, /*#*/1, // selectVSplatSimm5:$si5 #2 ++/* 7877*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLEI_H_N), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 2, ++ // Src: (vsetcc:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, vsplati16_simm5:{ *:[v8i16] }:$si5, SETLE:{ *:[Other] }) - Complexity = 9 ++ // Dst: (VSLEI_H_N:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, vsplati16_simm5:{ *:[v8i16] }:$si5) ++/* 7885*/ /*Scope*/ 13, /*->7899*/ ++/* 7886*/ OPC_CheckChild2CondCode, ISD::SETULE, ++/* 7888*/ OPC_CheckComplexPat, /*CP*/8, /*#*/1, // selectVSplatUimm5:$ui5 #2 ++/* 7891*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLEI_HU_N), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 2, ++ // Src: (vsetcc:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, vsplati16_uimm5:{ *:[v8i16] }:$ui5, SETULE:{ *:[Other] }) - Complexity = 9 ++ // Dst: (VSLEI_HU_N:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, vsplati16_uimm5:{ *:[v8i16] }:$ui5) ++/* 7899*/ /*Scope*/ 13, /*->7913*/ ++/* 7900*/ OPC_CheckChild2CondCode, ISD::SETLT, ++/* 7902*/ OPC_CheckComplexPat, /*CP*/7, /*#*/1, // selectVSplatSimm5:$si5 #2 ++/* 7905*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLTI_H_N), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 2, ++ // Src: (vsetcc:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, vsplati16_simm5:{ *:[v8i16] }:$si5, SETLT:{ *:[Other] }) - Complexity = 9 ++ // Dst: (VSLTI_H_N:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, vsplati16_simm5:{ *:[v8i16] }:$si5) ++/* 7913*/ /*Scope*/ 13, /*->7927*/ ++/* 7914*/ OPC_CheckChild2CondCode, ISD::SETULT, ++/* 7916*/ OPC_CheckComplexPat, /*CP*/8, /*#*/1, // selectVSplatUimm5:$ui5 #2 ++/* 7919*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLTI_HU_N), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 2, ++ // Src: (vsetcc:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, vsplati16_uimm5:{ *:[v8i16] }:$ui5, SETULT:{ *:[Other] }) - Complexity = 9 ++ // Dst: (VSLTI_HU_N:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, vsplati16_uimm5:{ *:[v8i16] }:$ui5) ++/* 7927*/ /*Scope*/ 10, /*->7938*/ ++/* 7928*/ OPC_CheckChild2CondCode, ISD::SETEQ, ++/* 7930*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSEQ_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (vsetcc:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk, SETEQ:{ *:[Other] }) - Complexity = 3 ++ // Dst: (VSEQ_H:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/* 7938*/ /*Scope*/ 10, /*->7949*/ ++/* 7939*/ OPC_CheckChild2CondCode, ISD::SETLE, ++/* 7941*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLE_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (vsetcc:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk, SETLE:{ *:[Other] }) - Complexity = 3 ++ // Dst: (VSLE_H:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/* 7949*/ /*Scope*/ 10, /*->7960*/ ++/* 7950*/ OPC_CheckChild2CondCode, ISD::SETULE, ++/* 7952*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLE_HU), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (vsetcc:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk, SETULE:{ *:[Other] }) - Complexity = 3 ++ // Dst: (VSLE_HU:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/* 7960*/ /*Scope*/ 10, /*->7971*/ ++/* 7961*/ OPC_CheckChild2CondCode, ISD::SETLT, ++/* 7963*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLT_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (vsetcc:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk, SETLT:{ *:[Other] }) - Complexity = 3 ++ // Dst: (VSLT_H:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/* 7971*/ /*Scope*/ 10, /*->7982*/ ++/* 7972*/ OPC_CheckChild2CondCode, ISD::SETULT, ++/* 7974*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLT_HU), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (vsetcc:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk, SETULT:{ *:[Other] }) - Complexity = 3 ++ // Dst: (VSLT_HU:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/* 7982*/ 0, /*End of Scope*/ ++/* 7983*/ /*Scope*/ 4|128,1/*132*/, /*->8117*/ ++/* 7985*/ OPC_CheckChild0Type, MVT::v4i32, ++/* 7987*/ OPC_RecordChild1, // #1 = $si5 ++/* 7988*/ OPC_CheckType, MVT::v4i32, ++/* 7990*/ OPC_Scope, 13, /*->8005*/ // 10 children in Scope ++/* 7992*/ OPC_CheckChild2CondCode, ISD::SETEQ, ++/* 7994*/ OPC_CheckComplexPat, /*CP*/9, /*#*/1, // selectVSplatSimm5:$si5 #2 ++/* 7997*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSEQI_W_N), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 2, ++ // Src: (vsetcc:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, vsplati32_simm5:{ *:[v4i32] }:$si5, SETEQ:{ *:[Other] }) - Complexity = 9 ++ // Dst: (VSEQI_W_N:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, vsplati32_simm5:{ *:[v4i32] }:$si5) ++/* 8005*/ /*Scope*/ 13, /*->8019*/ ++/* 8006*/ OPC_CheckChild2CondCode, ISD::SETLE, ++/* 8008*/ OPC_CheckComplexPat, /*CP*/9, /*#*/1, // selectVSplatSimm5:$si5 #2 ++/* 8011*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLEI_W_N), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 2, ++ // Src: (vsetcc:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, vsplati32_simm5:{ *:[v4i32] }:$si5, SETLE:{ *:[Other] }) - Complexity = 9 ++ // Dst: (VSLEI_W_N:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, vsplati32_simm5:{ *:[v4i32] }:$si5) ++/* 8019*/ /*Scope*/ 13, /*->8033*/ ++/* 8020*/ OPC_CheckChild2CondCode, ISD::SETULE, ++/* 8022*/ OPC_CheckComplexPat, /*CP*/10, /*#*/1, // selectVSplatUimm5:$ui5 #2 ++/* 8025*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLEI_WU_N), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 2, ++ // Src: (vsetcc:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, vsplati32_uimm5:{ *:[v4i32] }:$ui5, SETULE:{ *:[Other] }) - Complexity = 9 ++ // Dst: (VSLEI_WU_N:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, vsplati32_uimm5:{ *:[v4i32] }:$ui5) ++/* 8033*/ /*Scope*/ 13, /*->8047*/ ++/* 8034*/ OPC_CheckChild2CondCode, ISD::SETLT, ++/* 8036*/ OPC_CheckComplexPat, /*CP*/9, /*#*/1, // selectVSplatSimm5:$si5 #2 ++/* 8039*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLTI_W_N), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 2, ++ // Src: (vsetcc:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, vsplati32_simm5:{ *:[v4i32] }:$si5, SETLT:{ *:[Other] }) - Complexity = 9 ++ // Dst: (VSLTI_W_N:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, vsplati32_simm5:{ *:[v4i32] }:$si5) ++/* 8047*/ /*Scope*/ 13, /*->8061*/ ++/* 8048*/ OPC_CheckChild2CondCode, ISD::SETULT, ++/* 8050*/ OPC_CheckComplexPat, /*CP*/10, /*#*/1, // selectVSplatUimm5:$ui5 #2 ++/* 8053*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLTI_WU_N), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 2, ++ // Src: (vsetcc:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, vsplati32_uimm5:{ *:[v4i32] }:$ui5, SETULT:{ *:[Other] }) - Complexity = 9 ++ // Dst: (VSLTI_WU_N:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, vsplati32_uimm5:{ *:[v4i32] }:$ui5) ++/* 8061*/ /*Scope*/ 10, /*->8072*/ ++/* 8062*/ OPC_CheckChild2CondCode, ISD::SETEQ, ++/* 8064*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSEQ_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (vsetcc:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk, SETEQ:{ *:[Other] }) - Complexity = 3 ++ // Dst: (VSEQ_W:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/* 8072*/ /*Scope*/ 10, /*->8083*/ ++/* 8073*/ OPC_CheckChild2CondCode, ISD::SETLE, ++/* 8075*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLE_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (vsetcc:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk, SETLE:{ *:[Other] }) - Complexity = 3 ++ // Dst: (VSLE_W:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/* 8083*/ /*Scope*/ 10, /*->8094*/ ++/* 8084*/ OPC_CheckChild2CondCode, ISD::SETULE, ++/* 8086*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLE_WU), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (vsetcc:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk, SETULE:{ *:[Other] }) - Complexity = 3 ++ // Dst: (VSLE_WU:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/* 8094*/ /*Scope*/ 10, /*->8105*/ ++/* 8095*/ OPC_CheckChild2CondCode, ISD::SETLT, ++/* 8097*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLT_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (vsetcc:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk, SETLT:{ *:[Other] }) - Complexity = 3 ++ // Dst: (VSLT_W:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/* 8105*/ /*Scope*/ 10, /*->8116*/ ++/* 8106*/ OPC_CheckChild2CondCode, ISD::SETULT, ++/* 8108*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLT_WU), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (vsetcc:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk, SETULT:{ *:[Other] }) - Complexity = 3 ++ // Dst: (VSLT_WU:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/* 8116*/ 0, /*End of Scope*/ ++/* 8117*/ /*Scope*/ 4|128,1/*132*/, /*->8251*/ ++/* 8119*/ OPC_CheckChild0Type, MVT::v2i64, ++/* 8121*/ OPC_RecordChild1, // #1 = $si5 ++/* 8122*/ OPC_CheckType, MVT::v2i64, ++/* 8124*/ OPC_Scope, 13, /*->8139*/ // 10 children in Scope ++/* 8126*/ OPC_CheckChild2CondCode, ISD::SETEQ, ++/* 8128*/ OPC_CheckComplexPat, /*CP*/11, /*#*/1, // selectVSplatSimm5:$si5 #2 ++/* 8131*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSEQI_D_N), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 2, ++ // Src: (vsetcc:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, vsplati64_simm5:{ *:[v2i64] }:$si5, SETEQ:{ *:[Other] }) - Complexity = 9 ++ // Dst: (VSEQI_D_N:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, vsplati64_simm5:{ *:[v2i64] }:$si5) ++/* 8139*/ /*Scope*/ 13, /*->8153*/ ++/* 8140*/ OPC_CheckChild2CondCode, ISD::SETLE, ++/* 8142*/ OPC_CheckComplexPat, /*CP*/11, /*#*/1, // selectVSplatSimm5:$si5 #2 ++/* 8145*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLEI_D_N), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 2, ++ // Src: (vsetcc:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, vsplati64_simm5:{ *:[v2i64] }:$si5, SETLE:{ *:[Other] }) - Complexity = 9 ++ // Dst: (VSLEI_D_N:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, vsplati64_simm5:{ *:[v2i64] }:$si5) ++/* 8153*/ /*Scope*/ 13, /*->8167*/ ++/* 8154*/ OPC_CheckChild2CondCode, ISD::SETULE, ++/* 8156*/ OPC_CheckComplexPat, /*CP*/12, /*#*/1, // selectVSplatUimm5:$ui5 #2 ++/* 8159*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLEI_DU_N), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 2, ++ // Src: (vsetcc:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, vsplati64_uimm5:{ *:[v2i64] }:$ui5, SETULE:{ *:[Other] }) - Complexity = 9 ++ // Dst: (VSLEI_DU_N:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, vsplati64_uimm5:{ *:[v2i64] }:$ui5) ++/* 8167*/ /*Scope*/ 13, /*->8181*/ ++/* 8168*/ OPC_CheckChild2CondCode, ISD::SETLT, ++/* 8170*/ OPC_CheckComplexPat, /*CP*/11, /*#*/1, // selectVSplatSimm5:$si5 #2 ++/* 8173*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLTI_D_N), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 2, ++ // Src: (vsetcc:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, vsplati64_simm5:{ *:[v2i64] }:$si5, SETLT:{ *:[Other] }) - Complexity = 9 ++ // Dst: (VSLTI_D_N:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, vsplati64_simm5:{ *:[v2i64] }:$si5) ++/* 8181*/ /*Scope*/ 13, /*->8195*/ ++/* 8182*/ OPC_CheckChild2CondCode, ISD::SETULT, ++/* 8184*/ OPC_CheckComplexPat, /*CP*/12, /*#*/1, // selectVSplatUimm5:$ui5 #2 ++/* 8187*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLTI_DU_N), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 2, ++ // Src: (vsetcc:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, vsplati64_uimm5:{ *:[v2i64] }:$ui5, SETULT:{ *:[Other] }) - Complexity = 9 ++ // Dst: (VSLTI_DU_N:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, vsplati64_uimm5:{ *:[v2i64] }:$ui5) ++/* 8195*/ /*Scope*/ 10, /*->8206*/ ++/* 8196*/ OPC_CheckChild2CondCode, ISD::SETEQ, ++/* 8198*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSEQ_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (vsetcc:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk, SETEQ:{ *:[Other] }) - Complexity = 3 ++ // Dst: (VSEQ_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 8206*/ /*Scope*/ 10, /*->8217*/ ++/* 8207*/ OPC_CheckChild2CondCode, ISD::SETLE, ++/* 8209*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLE_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (vsetcc:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk, SETLE:{ *:[Other] }) - Complexity = 3 ++ // Dst: (VSLE_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 8217*/ /*Scope*/ 10, /*->8228*/ ++/* 8218*/ OPC_CheckChild2CondCode, ISD::SETULE, ++/* 8220*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLE_DU), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (vsetcc:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk, SETULE:{ *:[Other] }) - Complexity = 3 ++ // Dst: (VSLE_DU:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 8228*/ /*Scope*/ 10, /*->8239*/ ++/* 8229*/ OPC_CheckChild2CondCode, ISD::SETLT, ++/* 8231*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLT_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (vsetcc:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk, SETLT:{ *:[Other] }) - Complexity = 3 ++ // Dst: (VSLT_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 8239*/ /*Scope*/ 10, /*->8250*/ ++/* 8240*/ OPC_CheckChild2CondCode, ISD::SETULT, ++/* 8242*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLT_DU), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (vsetcc:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk, SETULT:{ *:[Other] }) - Complexity = 3 ++ // Dst: (VSLT_DU:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 8250*/ 0, /*End of Scope*/ ++/* 8251*/ /*Scope*/ 4|128,1/*132*/, /*->8385*/ ++/* 8253*/ OPC_CheckChild0Type, MVT::v32i8, ++/* 8255*/ OPC_RecordChild1, // #1 = $si5 ++/* 8256*/ OPC_CheckType, MVT::v32i8, ++/* 8258*/ OPC_Scope, 13, /*->8273*/ // 10 children in Scope ++/* 8260*/ OPC_CheckChild2CondCode, ISD::SETEQ, ++/* 8262*/ OPC_CheckComplexPat, /*CP*/13, /*#*/1, // selectVSplatSimm5:$si5 #2 ++/* 8265*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSEQI_B_N), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 2, ++ // Src: (vsetcc:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, xvsplati8_simm5:{ *:[v32i8] }:$si5, SETEQ:{ *:[Other] }) - Complexity = 9 ++ // Dst: (XVSEQI_B_N:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, xvsplati8_simm5:{ *:[v32i8] }:$si5) ++/* 8273*/ /*Scope*/ 13, /*->8287*/ ++/* 8274*/ OPC_CheckChild2CondCode, ISD::SETLE, ++/* 8276*/ OPC_CheckComplexPat, /*CP*/13, /*#*/1, // selectVSplatSimm5:$si5 #2 ++/* 8279*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLEI_B_N), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 2, ++ // Src: (vsetcc:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, xvsplati8_simm5:{ *:[v32i8] }:$si5, SETLE:{ *:[Other] }) - Complexity = 9 ++ // Dst: (XVSLEI_B_N:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, xvsplati8_simm5:{ *:[v32i8] }:$si5) ++/* 8287*/ /*Scope*/ 13, /*->8301*/ ++/* 8288*/ OPC_CheckChild2CondCode, ISD::SETULE, ++/* 8290*/ OPC_CheckComplexPat, /*CP*/14, /*#*/1, // selectVSplatUimm5:$ui5 #2 ++/* 8293*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLEI_BU_N), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 2, ++ // Src: (vsetcc:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, xvsplati8_uimm5:{ *:[v32i8] }:$ui5, SETULE:{ *:[Other] }) - Complexity = 9 ++ // Dst: (XVSLEI_BU_N:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, xvsplati8_uimm5:{ *:[v32i8] }:$ui5) ++/* 8301*/ /*Scope*/ 13, /*->8315*/ ++/* 8302*/ OPC_CheckChild2CondCode, ISD::SETLT, ++/* 8304*/ OPC_CheckComplexPat, /*CP*/13, /*#*/1, // selectVSplatSimm5:$si5 #2 ++/* 8307*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLTI_B_N), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 2, ++ // Src: (vsetcc:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, xvsplati8_simm5:{ *:[v32i8] }:$si5, SETLT:{ *:[Other] }) - Complexity = 9 ++ // Dst: (XVSLTI_B_N:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, xvsplati8_simm5:{ *:[v32i8] }:$si5) ++/* 8315*/ /*Scope*/ 13, /*->8329*/ ++/* 8316*/ OPC_CheckChild2CondCode, ISD::SETULT, ++/* 8318*/ OPC_CheckComplexPat, /*CP*/14, /*#*/1, // selectVSplatUimm5:$ui5 #2 ++/* 8321*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLTI_BU_N), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 2, ++ // Src: (vsetcc:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, xvsplati8_uimm5:{ *:[v32i8] }:$ui5, SETULT:{ *:[Other] }) - Complexity = 9 ++ // Dst: (XVSLTI_BU_N:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, xvsplati8_uimm5:{ *:[v32i8] }:$ui5) ++/* 8329*/ /*Scope*/ 10, /*->8340*/ ++/* 8330*/ OPC_CheckChild2CondCode, ISD::SETEQ, ++/* 8332*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSEQ_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (vsetcc:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk, SETEQ:{ *:[Other] }) - Complexity = 3 ++ // Dst: (XVSEQ_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 8340*/ /*Scope*/ 10, /*->8351*/ ++/* 8341*/ OPC_CheckChild2CondCode, ISD::SETLE, ++/* 8343*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLE_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (vsetcc:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk, SETLE:{ *:[Other] }) - Complexity = 3 ++ // Dst: (XVSLE_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 8351*/ /*Scope*/ 10, /*->8362*/ ++/* 8352*/ OPC_CheckChild2CondCode, ISD::SETULE, ++/* 8354*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLE_BU), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (vsetcc:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk, SETULE:{ *:[Other] }) - Complexity = 3 ++ // Dst: (XVSLE_BU:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 8362*/ /*Scope*/ 10, /*->8373*/ ++/* 8363*/ OPC_CheckChild2CondCode, ISD::SETLT, ++/* 8365*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLT_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (vsetcc:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk, SETLT:{ *:[Other] }) - Complexity = 3 ++ // Dst: (XVSLT_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 8373*/ /*Scope*/ 10, /*->8384*/ ++/* 8374*/ OPC_CheckChild2CondCode, ISD::SETULT, ++/* 8376*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLT_BU), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (vsetcc:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk, SETULT:{ *:[Other] }) - Complexity = 3 ++ // Dst: (XVSLT_BU:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 8384*/ 0, /*End of Scope*/ ++/* 8385*/ /*Scope*/ 4|128,1/*132*/, /*->8519*/ ++/* 8387*/ OPC_CheckChild0Type, MVT::v16i16, ++/* 8389*/ OPC_RecordChild1, // #1 = $si5 ++/* 8390*/ OPC_CheckType, MVT::v16i16, ++/* 8392*/ OPC_Scope, 13, /*->8407*/ // 10 children in Scope ++/* 8394*/ OPC_CheckChild2CondCode, ISD::SETEQ, ++/* 8396*/ OPC_CheckComplexPat, /*CP*/15, /*#*/1, // selectVSplatSimm5:$si5 #2 ++/* 8399*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSEQI_H_N), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 2, ++ // Src: (vsetcc:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, xvsplati16_simm5:{ *:[v16i16] }:$si5, SETEQ:{ *:[Other] }) - Complexity = 9 ++ // Dst: (XVSEQI_H_N:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, xvsplati16_simm5:{ *:[v16i16] }:$si5) ++/* 8407*/ /*Scope*/ 13, /*->8421*/ ++/* 8408*/ OPC_CheckChild2CondCode, ISD::SETLE, ++/* 8410*/ OPC_CheckComplexPat, /*CP*/15, /*#*/1, // selectVSplatSimm5:$si5 #2 ++/* 8413*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLEI_H_N), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 2, ++ // Src: (vsetcc:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, xvsplati16_simm5:{ *:[v16i16] }:$si5, SETLE:{ *:[Other] }) - Complexity = 9 ++ // Dst: (XVSLEI_H_N:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, xvsplati16_simm5:{ *:[v16i16] }:$si5) ++/* 8421*/ /*Scope*/ 13, /*->8435*/ ++/* 8422*/ OPC_CheckChild2CondCode, ISD::SETULE, ++/* 8424*/ OPC_CheckComplexPat, /*CP*/16, /*#*/1, // selectVSplatUimm5:$ui5 #2 ++/* 8427*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLEI_HU_N), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 2, ++ // Src: (vsetcc:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, xvsplati16_uimm5:{ *:[v16i16] }:$ui5, SETULE:{ *:[Other] }) - Complexity = 9 ++ // Dst: (XVSLEI_HU_N:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, xvsplati16_uimm5:{ *:[v16i16] }:$ui5) ++/* 8435*/ /*Scope*/ 13, /*->8449*/ ++/* 8436*/ OPC_CheckChild2CondCode, ISD::SETLT, ++/* 8438*/ OPC_CheckComplexPat, /*CP*/15, /*#*/1, // selectVSplatSimm5:$si5 #2 ++/* 8441*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLTI_H_N), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 2, ++ // Src: (vsetcc:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, xvsplati16_simm5:{ *:[v16i16] }:$si5, SETLT:{ *:[Other] }) - Complexity = 9 ++ // Dst: (XVSLTI_H_N:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, xvsplati16_simm5:{ *:[v16i16] }:$si5) ++/* 8449*/ /*Scope*/ 13, /*->8463*/ ++/* 8450*/ OPC_CheckChild2CondCode, ISD::SETULT, ++/* 8452*/ OPC_CheckComplexPat, /*CP*/16, /*#*/1, // selectVSplatUimm5:$ui5 #2 ++/* 8455*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLTI_HU_N), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 2, ++ // Src: (vsetcc:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, xvsplati16_uimm5:{ *:[v16i16] }:$ui5, SETULT:{ *:[Other] }) - Complexity = 9 ++ // Dst: (XVSLTI_HU_N:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, xvsplati16_uimm5:{ *:[v16i16] }:$ui5) ++/* 8463*/ /*Scope*/ 10, /*->8474*/ ++/* 8464*/ OPC_CheckChild2CondCode, ISD::SETEQ, ++/* 8466*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSEQ_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (vsetcc:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk, SETEQ:{ *:[Other] }) - Complexity = 3 ++ // Dst: (XVSEQ_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 8474*/ /*Scope*/ 10, /*->8485*/ ++/* 8475*/ OPC_CheckChild2CondCode, ISD::SETLE, ++/* 8477*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLE_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (vsetcc:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk, SETLE:{ *:[Other] }) - Complexity = 3 ++ // Dst: (XVSLE_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 8485*/ /*Scope*/ 10, /*->8496*/ ++/* 8486*/ OPC_CheckChild2CondCode, ISD::SETULE, ++/* 8488*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLE_HU), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (vsetcc:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk, SETULE:{ *:[Other] }) - Complexity = 3 ++ // Dst: (XVSLE_HU:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 8496*/ /*Scope*/ 10, /*->8507*/ ++/* 8497*/ OPC_CheckChild2CondCode, ISD::SETLT, ++/* 8499*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLT_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (vsetcc:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk, SETLT:{ *:[Other] }) - Complexity = 3 ++ // Dst: (XVSLT_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 8507*/ /*Scope*/ 10, /*->8518*/ ++/* 8508*/ OPC_CheckChild2CondCode, ISD::SETULT, ++/* 8510*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLT_HU), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (vsetcc:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk, SETULT:{ *:[Other] }) - Complexity = 3 ++ // Dst: (XVSLT_HU:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 8518*/ 0, /*End of Scope*/ ++/* 8519*/ /*Scope*/ 4|128,1/*132*/, /*->8653*/ ++/* 8521*/ OPC_CheckChild0Type, MVT::v8i32, ++/* 8523*/ OPC_RecordChild1, // #1 = $si5 ++/* 8524*/ OPC_CheckType, MVT::v8i32, ++/* 8526*/ OPC_Scope, 13, /*->8541*/ // 10 children in Scope ++/* 8528*/ OPC_CheckChild2CondCode, ISD::SETEQ, ++/* 8530*/ OPC_CheckComplexPat, /*CP*/17, /*#*/1, // selectVSplatSimm5:$si5 #2 ++/* 8533*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSEQI_W_N), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 2, ++ // Src: (vsetcc:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, xvsplati32_simm5:{ *:[v8i32] }:$si5, SETEQ:{ *:[Other] }) - Complexity = 9 ++ // Dst: (XVSEQI_W_N:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, xvsplati32_simm5:{ *:[v8i32] }:$si5) ++/* 8541*/ /*Scope*/ 13, /*->8555*/ ++/* 8542*/ OPC_CheckChild2CondCode, ISD::SETLE, ++/* 8544*/ OPC_CheckComplexPat, /*CP*/17, /*#*/1, // selectVSplatSimm5:$si5 #2 ++/* 8547*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLEI_W_N), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 2, ++ // Src: (vsetcc:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, xvsplati32_simm5:{ *:[v8i32] }:$si5, SETLE:{ *:[Other] }) - Complexity = 9 ++ // Dst: (XVSLEI_W_N:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, xvsplati32_simm5:{ *:[v8i32] }:$si5) ++/* 8555*/ /*Scope*/ 13, /*->8569*/ ++/* 8556*/ OPC_CheckChild2CondCode, ISD::SETULE, ++/* 8558*/ OPC_CheckComplexPat, /*CP*/18, /*#*/1, // selectVSplatUimm5:$ui5 #2 ++/* 8561*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLEI_WU_N), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 2, ++ // Src: (vsetcc:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, xvsplati32_uimm5:{ *:[v8i32] }:$ui5, SETULE:{ *:[Other] }) - Complexity = 9 ++ // Dst: (XVSLEI_WU_N:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, xvsplati32_uimm5:{ *:[v8i32] }:$ui5) ++/* 8569*/ /*Scope*/ 13, /*->8583*/ ++/* 8570*/ OPC_CheckChild2CondCode, ISD::SETLT, ++/* 8572*/ OPC_CheckComplexPat, /*CP*/17, /*#*/1, // selectVSplatSimm5:$si5 #2 ++/* 8575*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLTI_W_N), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 2, ++ // Src: (vsetcc:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, xvsplati32_simm5:{ *:[v8i32] }:$si5, SETLT:{ *:[Other] }) - Complexity = 9 ++ // Dst: (XVSLTI_W_N:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, xvsplati32_simm5:{ *:[v8i32] }:$si5) ++/* 8583*/ /*Scope*/ 13, /*->8597*/ ++/* 8584*/ OPC_CheckChild2CondCode, ISD::SETULT, ++/* 8586*/ OPC_CheckComplexPat, /*CP*/18, /*#*/1, // selectVSplatUimm5:$ui5 #2 ++/* 8589*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLTI_WU_N), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 2, ++ // Src: (vsetcc:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, xvsplati32_uimm5:{ *:[v8i32] }:$ui5, SETULT:{ *:[Other] }) - Complexity = 9 ++ // Dst: (XVSLTI_WU_N:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, xvsplati32_uimm5:{ *:[v8i32] }:$ui5) ++/* 8597*/ /*Scope*/ 10, /*->8608*/ ++/* 8598*/ OPC_CheckChild2CondCode, ISD::SETEQ, ++/* 8600*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSEQ_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (vsetcc:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk, SETEQ:{ *:[Other] }) - Complexity = 3 ++ // Dst: (XVSEQ_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 8608*/ /*Scope*/ 10, /*->8619*/ ++/* 8609*/ OPC_CheckChild2CondCode, ISD::SETLE, ++/* 8611*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLE_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (vsetcc:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk, SETLE:{ *:[Other] }) - Complexity = 3 ++ // Dst: (XVSLE_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 8619*/ /*Scope*/ 10, /*->8630*/ ++/* 8620*/ OPC_CheckChild2CondCode, ISD::SETULE, ++/* 8622*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLE_WU), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (vsetcc:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk, SETULE:{ *:[Other] }) - Complexity = 3 ++ // Dst: (XVSLE_WU:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 8630*/ /*Scope*/ 10, /*->8641*/ ++/* 8631*/ OPC_CheckChild2CondCode, ISD::SETLT, ++/* 8633*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLT_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (vsetcc:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk, SETLT:{ *:[Other] }) - Complexity = 3 ++ // Dst: (XVSLT_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 8641*/ /*Scope*/ 10, /*->8652*/ ++/* 8642*/ OPC_CheckChild2CondCode, ISD::SETULT, ++/* 8644*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLT_WU), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (vsetcc:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk, SETULT:{ *:[Other] }) - Complexity = 3 ++ // Dst: (XVSLT_WU:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 8652*/ 0, /*End of Scope*/ ++/* 8653*/ /*Scope*/ 4|128,1/*132*/, /*->8787*/ ++/* 8655*/ OPC_CheckChild0Type, MVT::v4i64, ++/* 8657*/ OPC_RecordChild1, // #1 = $si5 ++/* 8658*/ OPC_CheckType, MVT::v4i64, ++/* 8660*/ OPC_Scope, 13, /*->8675*/ // 10 children in Scope ++/* 8662*/ OPC_CheckChild2CondCode, ISD::SETEQ, ++/* 8664*/ OPC_CheckComplexPat, /*CP*/19, /*#*/1, // selectVSplatSimm5:$si5 #2 ++/* 8667*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSEQI_D_N), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 2, ++ // Src: (vsetcc:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, xvsplati64_simm5:{ *:[v4i64] }:$si5, SETEQ:{ *:[Other] }) - Complexity = 9 ++ // Dst: (XVSEQI_D_N:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, xvsplati64_simm5:{ *:[v4i64] }:$si5) ++/* 8675*/ /*Scope*/ 13, /*->8689*/ ++/* 8676*/ OPC_CheckChild2CondCode, ISD::SETLE, ++/* 8678*/ OPC_CheckComplexPat, /*CP*/19, /*#*/1, // selectVSplatSimm5:$si5 #2 ++/* 8681*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLEI_D_N), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 2, ++ // Src: (vsetcc:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, xvsplati64_simm5:{ *:[v4i64] }:$si5, SETLE:{ *:[Other] }) - Complexity = 9 ++ // Dst: (XVSLEI_D_N:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, xvsplati64_simm5:{ *:[v4i64] }:$si5) ++/* 8689*/ /*Scope*/ 13, /*->8703*/ ++/* 8690*/ OPC_CheckChild2CondCode, ISD::SETULE, ++/* 8692*/ OPC_CheckComplexPat, /*CP*/20, /*#*/1, // selectVSplatUimm5:$ui5 #2 ++/* 8695*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLEI_DU_N), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 2, ++ // Src: (vsetcc:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, xvsplati64_uimm5:{ *:[v4i64] }:$ui5, SETULE:{ *:[Other] }) - Complexity = 9 ++ // Dst: (XVSLEI_DU_N:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, xvsplati64_uimm5:{ *:[v4i64] }:$ui5) ++/* 8703*/ /*Scope*/ 13, /*->8717*/ ++/* 8704*/ OPC_CheckChild2CondCode, ISD::SETLT, ++/* 8706*/ OPC_CheckComplexPat, /*CP*/19, /*#*/1, // selectVSplatSimm5:$si5 #2 ++/* 8709*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLTI_D_N), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 2, ++ // Src: (vsetcc:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, xvsplati64_simm5:{ *:[v4i64] }:$si5, SETLT:{ *:[Other] }) - Complexity = 9 ++ // Dst: (XVSLTI_D_N:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, xvsplati64_simm5:{ *:[v4i64] }:$si5) ++/* 8717*/ /*Scope*/ 13, /*->8731*/ ++/* 8718*/ OPC_CheckChild2CondCode, ISD::SETULT, ++/* 8720*/ OPC_CheckComplexPat, /*CP*/20, /*#*/1, // selectVSplatUimm5:$ui5 #2 ++/* 8723*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLTI_DU_N), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 2, ++ // Src: (vsetcc:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, xvsplati64_uimm5:{ *:[v4i64] }:$ui5, SETULT:{ *:[Other] }) - Complexity = 9 ++ // Dst: (XVSLTI_DU_N:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, xvsplati64_uimm5:{ *:[v4i64] }:$ui5) ++/* 8731*/ /*Scope*/ 10, /*->8742*/ ++/* 8732*/ OPC_CheckChild2CondCode, ISD::SETEQ, ++/* 8734*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSEQ_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (vsetcc:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk, SETEQ:{ *:[Other] }) - Complexity = 3 ++ // Dst: (XVSEQ_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 8742*/ /*Scope*/ 10, /*->8753*/ ++/* 8743*/ OPC_CheckChild2CondCode, ISD::SETLE, ++/* 8745*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLE_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (vsetcc:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk, SETLE:{ *:[Other] }) - Complexity = 3 ++ // Dst: (XVSLE_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 8753*/ /*Scope*/ 10, /*->8764*/ ++/* 8754*/ OPC_CheckChild2CondCode, ISD::SETULE, ++/* 8756*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLE_DU), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (vsetcc:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk, SETULE:{ *:[Other] }) - Complexity = 3 ++ // Dst: (XVSLE_DU:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 8764*/ /*Scope*/ 10, /*->8775*/ ++/* 8765*/ OPC_CheckChild2CondCode, ISD::SETLT, ++/* 8767*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLT_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (vsetcc:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk, SETLT:{ *:[Other] }) - Complexity = 3 ++ // Dst: (XVSLT_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 8775*/ /*Scope*/ 10, /*->8786*/ ++/* 8776*/ OPC_CheckChild2CondCode, ISD::SETULT, ++/* 8778*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLT_DU), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (vsetcc:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk, SETULT:{ *:[Other] }) - Complexity = 3 ++ // Dst: (XVSLT_DU:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 8786*/ 0, /*End of Scope*/ ++/* 8787*/ /*Scope*/ 41|128,1/*169*/, /*->8958*/ ++/* 8789*/ OPC_CheckChild0Type, MVT::v4f32, ++/* 8791*/ OPC_RecordChild1, // #1 = $vk ++/* 8792*/ OPC_CheckType, MVT::v4i32, ++/* 8794*/ OPC_Scope, 10, /*->8806*/ // 14 children in Scope ++/* 8796*/ OPC_CheckChild2CondCode, ISD::SETO, ++/* 8798*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_COR_S), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (vfsetcc:{ *:[v4i32] } LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk, SETO:{ *:[Other] }) - Complexity = 3 ++ // Dst: (VFCMP_COR_S:{ *:[v4i32] } LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk) ++/* 8806*/ /*Scope*/ 10, /*->8817*/ ++/* 8807*/ OPC_CheckChild2CondCode, ISD::SETUO, ++/* 8809*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_CUN_S), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (vfsetcc:{ *:[v4i32] } LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk, SETUO:{ *:[Other] }) - Complexity = 3 ++ // Dst: (VFCMP_CUN_S:{ *:[v4i32] } LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk) ++/* 8817*/ /*Scope*/ 10, /*->8828*/ ++/* 8818*/ OPC_CheckChild2CondCode, ISD::SETUNE, ++/* 8820*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_CUNE_S), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (vfsetcc:{ *:[v4i32] } LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk, SETUNE:{ *:[Other] }) - Complexity = 3 ++ // Dst: (VFCMP_CUNE_S:{ *:[v4i32] } LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk) ++/* 8828*/ /*Scope*/ 10, /*->8839*/ ++/* 8829*/ OPC_CheckChild2CondCode, ISD::SETUEQ, ++/* 8831*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_CUEQ_S), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (vfsetcc:{ *:[v4i32] } LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk, SETUEQ:{ *:[Other] }) - Complexity = 3 ++ // Dst: (VFCMP_CUEQ_S:{ *:[v4i32] } LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk) ++/* 8839*/ /*Scope*/ 10, /*->8850*/ ++/* 8840*/ OPC_CheckChild2CondCode, ISD::SETOEQ, ++/* 8842*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_CEQ_S), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (vfsetcc:{ *:[v4i32] } LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk, SETOEQ:{ *:[Other] }) - Complexity = 3 ++ // Dst: (VFCMP_CEQ_S:{ *:[v4i32] } LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk) ++/* 8850*/ /*Scope*/ 10, /*->8861*/ ++/* 8851*/ OPC_CheckChild2CondCode, ISD::SETONE, ++/* 8853*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_CNE_S), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (vfsetcc:{ *:[v4i32] } LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk, SETONE:{ *:[Other] }) - Complexity = 3 ++ // Dst: (VFCMP_CNE_S:{ *:[v4i32] } LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk) ++/* 8861*/ /*Scope*/ 10, /*->8872*/ ++/* 8862*/ OPC_CheckChild2CondCode, ISD::SETOLT, ++/* 8864*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_CLT_S), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (vfsetcc:{ *:[v4i32] } LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk, SETOLT:{ *:[Other] }) - Complexity = 3 ++ // Dst: (VFCMP_CLT_S:{ *:[v4i32] } LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk) ++/* 8872*/ /*Scope*/ 10, /*->8883*/ ++/* 8873*/ OPC_CheckChild2CondCode, ISD::SETULT, ++/* 8875*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_CULT_S), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (vfsetcc:{ *:[v4i32] } LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk, SETULT:{ *:[Other] }) - Complexity = 3 ++ // Dst: (VFCMP_CULT_S:{ *:[v4i32] } LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk) ++/* 8883*/ /*Scope*/ 10, /*->8894*/ ++/* 8884*/ OPC_CheckChild2CondCode, ISD::SETOLE, ++/* 8886*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_CLE_S), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (vfsetcc:{ *:[v4i32] } LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk, SETOLE:{ *:[Other] }) - Complexity = 3 ++ // Dst: (VFCMP_CLE_S:{ *:[v4i32] } LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk) ++/* 8894*/ /*Scope*/ 10, /*->8905*/ ++/* 8895*/ OPC_CheckChild2CondCode, ISD::SETULE, ++/* 8897*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_CULE_S), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (vfsetcc:{ *:[v4i32] } LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk, SETULE:{ *:[Other] }) - Complexity = 3 ++ // Dst: (VFCMP_CULE_S:{ *:[v4i32] } LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk) ++/* 8905*/ /*Scope*/ 12, /*->8918*/ ++/* 8906*/ OPC_CheckChild2CondCode, ISD::SETEQ, ++/* 8908*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 8910*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_CEQ_S), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (vfsetcc:{ *:[v4i32] } LSX128WOpnd:{ *:[v4f32] }:$a, LSX128WOpnd:{ *:[v4f32] }:$b, SETEQ:{ *:[Other] }) - Complexity = 3 ++ // Dst: (VFCMP_CEQ_S:{ *:[v4i32] } LSX128WOpnd:{ *:[v4f32] }:$a, LSX128WOpnd:{ *:[v4f32] }:$b) ++/* 8918*/ /*Scope*/ 12, /*->8931*/ ++/* 8919*/ OPC_CheckChild2CondCode, ISD::SETLE, ++/* 8921*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 8923*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_CLE_S), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (vfsetcc:{ *:[v4i32] } LSX128WOpnd:{ *:[v4f32] }:$a, LSX128WOpnd:{ *:[v4f32] }:$b, SETLE:{ *:[Other] }) - Complexity = 3 ++ // Dst: (VFCMP_CLE_S:{ *:[v4i32] } LSX128WOpnd:{ *:[v4f32] }:$a, LSX128WOpnd:{ *:[v4f32] }:$b) ++/* 8931*/ /*Scope*/ 12, /*->8944*/ ++/* 8932*/ OPC_CheckChild2CondCode, ISD::SETLT, ++/* 8934*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 8936*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_CLT_S), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (vfsetcc:{ *:[v4i32] } LSX128WOpnd:{ *:[v4f32] }:$a, LSX128WOpnd:{ *:[v4f32] }:$b, SETLT:{ *:[Other] }) - Complexity = 3 ++ // Dst: (VFCMP_CLT_S:{ *:[v4i32] } LSX128WOpnd:{ *:[v4f32] }:$a, LSX128WOpnd:{ *:[v4f32] }:$b) ++/* 8944*/ /*Scope*/ 12, /*->8957*/ ++/* 8945*/ OPC_CheckChild2CondCode, ISD::SETNE, ++/* 8947*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 8949*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_CNE_S), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (vfsetcc:{ *:[v4i32] } LSX128WOpnd:{ *:[v4f32] }:$a, LSX128WOpnd:{ *:[v4f32] }:$b, SETNE:{ *:[Other] }) - Complexity = 3 ++ // Dst: (VFCMP_CNE_S:{ *:[v4i32] } LSX128WOpnd:{ *:[v4f32] }:$a, LSX128WOpnd:{ *:[v4f32] }:$b) ++/* 8957*/ 0, /*End of Scope*/ ++/* 8958*/ /*Scope*/ 41|128,1/*169*/, /*->9129*/ ++/* 8960*/ OPC_CheckChild0Type, MVT::v2f64, ++/* 8962*/ OPC_RecordChild1, // #1 = $vk ++/* 8963*/ OPC_CheckType, MVT::v2i64, ++/* 8965*/ OPC_Scope, 10, /*->8977*/ // 14 children in Scope ++/* 8967*/ OPC_CheckChild2CondCode, ISD::SETO, ++/* 8969*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_COR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (vfsetcc:{ *:[v2i64] } LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk, SETO:{ *:[Other] }) - Complexity = 3 ++ // Dst: (VFCMP_COR_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk) ++/* 8977*/ /*Scope*/ 10, /*->8988*/ ++/* 8978*/ OPC_CheckChild2CondCode, ISD::SETUO, ++/* 8980*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_CUN_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (vfsetcc:{ *:[v2i64] } LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk, SETUO:{ *:[Other] }) - Complexity = 3 ++ // Dst: (VFCMP_CUN_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk) ++/* 8988*/ /*Scope*/ 10, /*->8999*/ ++/* 8989*/ OPC_CheckChild2CondCode, ISD::SETUNE, ++/* 8991*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_CUNE_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (vfsetcc:{ *:[v2i64] } LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk, SETUNE:{ *:[Other] }) - Complexity = 3 ++ // Dst: (VFCMP_CUNE_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk) ++/* 8999*/ /*Scope*/ 10, /*->9010*/ ++/* 9000*/ OPC_CheckChild2CondCode, ISD::SETUEQ, ++/* 9002*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_CUEQ_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (vfsetcc:{ *:[v2i64] } LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk, SETUEQ:{ *:[Other] }) - Complexity = 3 ++ // Dst: (VFCMP_CUEQ_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk) ++/* 9010*/ /*Scope*/ 10, /*->9021*/ ++/* 9011*/ OPC_CheckChild2CondCode, ISD::SETOEQ, ++/* 9013*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_CEQ_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (vfsetcc:{ *:[v2i64] } LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk, SETOEQ:{ *:[Other] }) - Complexity = 3 ++ // Dst: (VFCMP_CEQ_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk) ++/* 9021*/ /*Scope*/ 10, /*->9032*/ ++/* 9022*/ OPC_CheckChild2CondCode, ISD::SETONE, ++/* 9024*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_CNE_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (vfsetcc:{ *:[v2i64] } LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk, SETONE:{ *:[Other] }) - Complexity = 3 ++ // Dst: (VFCMP_CNE_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk) ++/* 9032*/ /*Scope*/ 10, /*->9043*/ ++/* 9033*/ OPC_CheckChild2CondCode, ISD::SETOLT, ++/* 9035*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_CLT_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (vfsetcc:{ *:[v2i64] } LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk, SETOLT:{ *:[Other] }) - Complexity = 3 ++ // Dst: (VFCMP_CLT_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk) ++/* 9043*/ /*Scope*/ 10, /*->9054*/ ++/* 9044*/ OPC_CheckChild2CondCode, ISD::SETULT, ++/* 9046*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_CULT_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (vfsetcc:{ *:[v2i64] } LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk, SETULT:{ *:[Other] }) - Complexity = 3 ++ // Dst: (VFCMP_CULT_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk) ++/* 9054*/ /*Scope*/ 10, /*->9065*/ ++/* 9055*/ OPC_CheckChild2CondCode, ISD::SETOLE, ++/* 9057*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_CLE_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (vfsetcc:{ *:[v2i64] } LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk, SETOLE:{ *:[Other] }) - Complexity = 3 ++ // Dst: (VFCMP_CLE_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk) ++/* 9065*/ /*Scope*/ 10, /*->9076*/ ++/* 9066*/ OPC_CheckChild2CondCode, ISD::SETULE, ++/* 9068*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_CULE_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (vfsetcc:{ *:[v2i64] } LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk, SETULE:{ *:[Other] }) - Complexity = 3 ++ // Dst: (VFCMP_CULE_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk) ++/* 9076*/ /*Scope*/ 12, /*->9089*/ ++/* 9077*/ OPC_CheckChild2CondCode, ISD::SETEQ, ++/* 9079*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 9081*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_CEQ_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (vfsetcc:{ *:[v2i64] } LSX128DOpnd:{ *:[v2f64] }:$a, LSX128DOpnd:{ *:[v2f64] }:$b, SETEQ:{ *:[Other] }) - Complexity = 3 ++ // Dst: (VFCMP_CEQ_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2f64] }:$a, LSX128DOpnd:{ *:[v2f64] }:$b) ++/* 9089*/ /*Scope*/ 12, /*->9102*/ ++/* 9090*/ OPC_CheckChild2CondCode, ISD::SETLE, ++/* 9092*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 9094*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_CLE_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (vfsetcc:{ *:[v2i64] } LSX128DOpnd:{ *:[v2f64] }:$a, LSX128DOpnd:{ *:[v2f64] }:$b, SETLE:{ *:[Other] }) - Complexity = 3 ++ // Dst: (VFCMP_CLE_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2f64] }:$a, LSX128DOpnd:{ *:[v2f64] }:$b) ++/* 9102*/ /*Scope*/ 12, /*->9115*/ ++/* 9103*/ OPC_CheckChild2CondCode, ISD::SETLT, ++/* 9105*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 9107*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_CLT_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (vfsetcc:{ *:[v2i64] } LSX128DOpnd:{ *:[v2f64] }:$a, LSX128DOpnd:{ *:[v2f64] }:$b, SETLT:{ *:[Other] }) - Complexity = 3 ++ // Dst: (VFCMP_CLT_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2f64] }:$a, LSX128DOpnd:{ *:[v2f64] }:$b) ++/* 9115*/ /*Scope*/ 12, /*->9128*/ ++/* 9116*/ OPC_CheckChild2CondCode, ISD::SETNE, ++/* 9118*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 9120*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_CNE_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (vfsetcc:{ *:[v2i64] } LSX128DOpnd:{ *:[v2f64] }:$a, LSX128DOpnd:{ *:[v2f64] }:$b, SETNE:{ *:[Other] }) - Complexity = 3 ++ // Dst: (VFCMP_CNE_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2f64] }:$a, LSX128DOpnd:{ *:[v2f64] }:$b) ++/* 9128*/ 0, /*End of Scope*/ ++/* 9129*/ /*Scope*/ 117, /*->9247*/ ++/* 9130*/ OPC_CheckChild0Type, MVT::v8f32, ++/* 9132*/ OPC_RecordChild1, // #1 = $xk ++/* 9133*/ OPC_CheckType, MVT::v8i32, ++/* 9135*/ OPC_Scope, 10, /*->9147*/ // 10 children in Scope ++/* 9137*/ OPC_CheckChild2CondCode, ISD::SETO, ++/* 9139*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_COR_S), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (vfsetcc:{ *:[v8i32] } LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk, SETO:{ *:[Other] }) - Complexity = 3 ++ // Dst: (XVFCMP_COR_S:{ *:[v8i32] } LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk) ++/* 9147*/ /*Scope*/ 10, /*->9158*/ ++/* 9148*/ OPC_CheckChild2CondCode, ISD::SETUO, ++/* 9150*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_CUN_S), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (vfsetcc:{ *:[v8i32] } LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk, SETUO:{ *:[Other] }) - Complexity = 3 ++ // Dst: (XVFCMP_CUN_S:{ *:[v8i32] } LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk) ++/* 9158*/ /*Scope*/ 10, /*->9169*/ ++/* 9159*/ OPC_CheckChild2CondCode, ISD::SETUNE, ++/* 9161*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_CUNE_S), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (vfsetcc:{ *:[v8i32] } LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk, SETUNE:{ *:[Other] }) - Complexity = 3 ++ // Dst: (XVFCMP_CUNE_S:{ *:[v8i32] } LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk) ++/* 9169*/ /*Scope*/ 10, /*->9180*/ ++/* 9170*/ OPC_CheckChild2CondCode, ISD::SETUEQ, ++/* 9172*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_CUEQ_S), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (vfsetcc:{ *:[v8i32] } LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk, SETUEQ:{ *:[Other] }) - Complexity = 3 ++ // Dst: (XVFCMP_CUEQ_S:{ *:[v8i32] } LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk) ++/* 9180*/ /*Scope*/ 10, /*->9191*/ ++/* 9181*/ OPC_CheckChild2CondCode, ISD::SETOEQ, ++/* 9183*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_CEQ_S), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (vfsetcc:{ *:[v8i32] } LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk, SETOEQ:{ *:[Other] }) - Complexity = 3 ++ // Dst: (XVFCMP_CEQ_S:{ *:[v8i32] } LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk) ++/* 9191*/ /*Scope*/ 10, /*->9202*/ ++/* 9192*/ OPC_CheckChild2CondCode, ISD::SETONE, ++/* 9194*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_CNE_S), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (vfsetcc:{ *:[v8i32] } LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk, SETONE:{ *:[Other] }) - Complexity = 3 ++ // Dst: (XVFCMP_CNE_S:{ *:[v8i32] } LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk) ++/* 9202*/ /*Scope*/ 10, /*->9213*/ ++/* 9203*/ OPC_CheckChild2CondCode, ISD::SETOLT, ++/* 9205*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_CLT_S), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (vfsetcc:{ *:[v8i32] } LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk, SETOLT:{ *:[Other] }) - Complexity = 3 ++ // Dst: (XVFCMP_CLT_S:{ *:[v8i32] } LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk) ++/* 9213*/ /*Scope*/ 10, /*->9224*/ ++/* 9214*/ OPC_CheckChild2CondCode, ISD::SETULT, ++/* 9216*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_CULT_S), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (vfsetcc:{ *:[v8i32] } LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk, SETULT:{ *:[Other] }) - Complexity = 3 ++ // Dst: (XVFCMP_CULT_S:{ *:[v8i32] } LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk) ++/* 9224*/ /*Scope*/ 10, /*->9235*/ ++/* 9225*/ OPC_CheckChild2CondCode, ISD::SETOLE, ++/* 9227*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_CLE_S), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (vfsetcc:{ *:[v8i32] } LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk, SETOLE:{ *:[Other] }) - Complexity = 3 ++ // Dst: (XVFCMP_CLE_S:{ *:[v8i32] } LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk) ++/* 9235*/ /*Scope*/ 10, /*->9246*/ ++/* 9236*/ OPC_CheckChild2CondCode, ISD::SETULE, ++/* 9238*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_CULE_S), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (vfsetcc:{ *:[v8i32] } LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk, SETULE:{ *:[Other] }) - Complexity = 3 ++ // Dst: (XVFCMP_CULE_S:{ *:[v8i32] } LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk) ++/* 9246*/ 0, /*End of Scope*/ ++/* 9247*/ /*Scope*/ 117, /*->9365*/ ++/* 9248*/ OPC_CheckChild0Type, MVT::v4f64, ++/* 9250*/ OPC_RecordChild1, // #1 = $xk ++/* 9251*/ OPC_CheckType, MVT::v4i64, ++/* 9253*/ OPC_Scope, 10, /*->9265*/ // 10 children in Scope ++/* 9255*/ OPC_CheckChild2CondCode, ISD::SETO, ++/* 9257*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_COR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (vfsetcc:{ *:[v4i64] } LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk, SETO:{ *:[Other] }) - Complexity = 3 ++ // Dst: (XVFCMP_COR_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) ++/* 9265*/ /*Scope*/ 10, /*->9276*/ ++/* 9266*/ OPC_CheckChild2CondCode, ISD::SETUO, ++/* 9268*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_CUN_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (vfsetcc:{ *:[v4i64] } LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk, SETUO:{ *:[Other] }) - Complexity = 3 ++ // Dst: (XVFCMP_CUN_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) ++/* 9276*/ /*Scope*/ 10, /*->9287*/ ++/* 9277*/ OPC_CheckChild2CondCode, ISD::SETUNE, ++/* 9279*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_CUNE_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (vfsetcc:{ *:[v4i64] } LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk, SETUNE:{ *:[Other] }) - Complexity = 3 ++ // Dst: (XVFCMP_CUNE_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) ++/* 9287*/ /*Scope*/ 10, /*->9298*/ ++/* 9288*/ OPC_CheckChild2CondCode, ISD::SETUEQ, ++/* 9290*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_CUEQ_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (vfsetcc:{ *:[v4i64] } LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk, SETUEQ:{ *:[Other] }) - Complexity = 3 ++ // Dst: (XVFCMP_CUEQ_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) ++/* 9298*/ /*Scope*/ 10, /*->9309*/ ++/* 9299*/ OPC_CheckChild2CondCode, ISD::SETOEQ, ++/* 9301*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_CEQ_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (vfsetcc:{ *:[v4i64] } LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk, SETOEQ:{ *:[Other] }) - Complexity = 3 ++ // Dst: (XVFCMP_CEQ_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) ++/* 9309*/ /*Scope*/ 10, /*->9320*/ ++/* 9310*/ OPC_CheckChild2CondCode, ISD::SETONE, ++/* 9312*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_CNE_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (vfsetcc:{ *:[v4i64] } LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk, SETONE:{ *:[Other] }) - Complexity = 3 ++ // Dst: (XVFCMP_CNE_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) ++/* 9320*/ /*Scope*/ 10, /*->9331*/ ++/* 9321*/ OPC_CheckChild2CondCode, ISD::SETOLT, ++/* 9323*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_CLT_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (vfsetcc:{ *:[v4i64] } LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk, SETOLT:{ *:[Other] }) - Complexity = 3 ++ // Dst: (XVFCMP_CLT_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) ++/* 9331*/ /*Scope*/ 10, /*->9342*/ ++/* 9332*/ OPC_CheckChild2CondCode, ISD::SETULT, ++/* 9334*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_CULT_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (vfsetcc:{ *:[v4i64] } LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk, SETULT:{ *:[Other] }) - Complexity = 3 ++ // Dst: (XVFCMP_CULT_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) ++/* 9342*/ /*Scope*/ 10, /*->9353*/ ++/* 9343*/ OPC_CheckChild2CondCode, ISD::SETOLE, ++/* 9345*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_CLE_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (vfsetcc:{ *:[v4i64] } LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk, SETOLE:{ *:[Other] }) - Complexity = 3 ++ // Dst: (XVFCMP_CLE_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) ++/* 9353*/ /*Scope*/ 10, /*->9364*/ ++/* 9354*/ OPC_CheckChild2CondCode, ISD::SETULE, ++/* 9356*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_CULE_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (vfsetcc:{ *:[v4i64] } LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk, SETULE:{ *:[Other] }) - Complexity = 3 ++ // Dst: (XVFCMP_CULE_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) ++/* 9364*/ 0, /*End of Scope*/ ++/* 9365*/ 0, /*End of Scope*/ ++/* 9366*/ 0, /*End of Scope*/ ++/* 9367*/ /*SwitchOpcode*/ 46|128,1/*174*/, TARGET_VAL(ISD::ATOMIC_LOAD),// ->9545 ++/* 9371*/ OPC_RecordMemRef, ++/* 9372*/ OPC_RecordNode, // #0 = 'atomic_load' chained node ++/* 9373*/ OPC_RecordChild1, // #1 = $a ++/* 9374*/ OPC_SwitchType /*2 cases */, 102, MVT::i64,// ->9479 ++/* 9377*/ OPC_Scope, 16, /*->9395*/ // 4 children in Scope ++/* 9379*/ OPC_CheckPredicate, 2, // Predicate_atomic_load_8 ++/* 9381*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/* 9383*/ OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectIntAddr:$a #2 #3 ++/* 9386*/ OPC_EmitMergeInputChains1_0, ++/* 9387*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_B), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i64, 2/*#Ops*/, 2, 3, ++ // Src: (atomic_load:{ *:[i64] } addr:{ *:[iPTR] }:$a)<> - Complexity = 13 ++ // Dst: (LD_B:{ *:[i64] } addr:{ *:[iPTR] }:$a) ++/* 9395*/ /*Scope*/ 16, /*->9412*/ ++/* 9396*/ OPC_CheckPredicate, 3, // Predicate_atomic_load_16 ++/* 9398*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/* 9400*/ OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectIntAddr:$a #2 #3 ++/* 9403*/ OPC_EmitMergeInputChains1_0, ++/* 9404*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_H), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i64, 2/*#Ops*/, 2, 3, ++ // Src: (atomic_load:{ *:[i64] } addr:{ *:[iPTR] }:$a)<> - Complexity = 13 ++ // Dst: (LD_H:{ *:[i64] } addr:{ *:[iPTR] }:$a) ++/* 9412*/ /*Scope*/ 32, /*->9445*/ ++/* 9413*/ OPC_CheckPredicate, 4, // Predicate_atomic_load_32 ++/* 9415*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/* 9417*/ OPC_Scope, 12, /*->9431*/ // 2 children in Scope ++/* 9419*/ OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectIntAddrSImm14Lsl2:$a #2 #3 ++/* 9422*/ OPC_EmitMergeInputChains1_0, ++/* 9423*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LDPTR_W), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i64, 2/*#Ops*/, 2, 3, ++ // Src: (atomic_load:{ *:[i64] } addrimm14lsl2:{ *:[iPTR] }:$a)<> - Complexity = 13 ++ // Dst: (LDPTR_W:{ *:[i64] } addrimm14lsl2:{ *:[iPTR] }:$a) ++/* 9431*/ /*Scope*/ 12, /*->9444*/ ++/* 9432*/ OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectIntAddr:$a #2 #3 ++/* 9435*/ OPC_EmitMergeInputChains1_0, ++/* 9436*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_W), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i64, 2/*#Ops*/, 2, 3, ++ // Src: (atomic_load:{ *:[i64] } addr:{ *:[iPTR] }:$a)<> - Complexity = 13 ++ // Dst: (LD_W:{ *:[i64] } addr:{ *:[iPTR] }:$a) ++/* 9444*/ 0, /*End of Scope*/ ++/* 9445*/ /*Scope*/ 32, /*->9478*/ ++/* 9446*/ OPC_CheckPredicate, 17, // Predicate_atomic_load_64 ++/* 9448*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/* 9450*/ OPC_Scope, 12, /*->9464*/ // 2 children in Scope ++/* 9452*/ OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectIntAddrSImm14Lsl2:$a #2 #3 ++/* 9455*/ OPC_EmitMergeInputChains1_0, ++/* 9456*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LDPTR_D), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i64, 2/*#Ops*/, 2, 3, ++ // Src: (atomic_load:{ *:[i64] } addrimm14lsl2:{ *:[iPTR] }:$a)<> - Complexity = 13 ++ // Dst: (LDPTR_D:{ *:[i64] } addrimm14lsl2:{ *:[iPTR] }:$a) ++/* 9464*/ /*Scope*/ 12, /*->9477*/ ++/* 9465*/ OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectIntAddr:$a #2 #3 ++/* 9468*/ OPC_EmitMergeInputChains1_0, ++/* 9469*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_D), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i64, 2/*#Ops*/, 2, 3, ++ // Src: (atomic_load:{ *:[i64] } addr:{ *:[iPTR] }:$a)<> - Complexity = 13 ++ // Dst: (LD_D:{ *:[i64] } addr:{ *:[iPTR] }:$a) ++/* 9477*/ 0, /*End of Scope*/ ++/* 9478*/ 0, /*End of Scope*/ ++/* 9479*/ /*SwitchType*/ 63, MVT::i32,// ->9544 ++/* 9481*/ OPC_Scope, 14, /*->9497*/ // 3 children in Scope ++/* 9483*/ OPC_CheckPredicate, 2, // Predicate_atomic_load_8 ++/* 9485*/ OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectIntAddr:$a #2 #3 ++/* 9488*/ OPC_EmitMergeInputChains1_0, ++/* 9489*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_B32), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 2, 3, ++ // Src: (atomic_load:{ *:[i32] } addr:{ *:[iPTR] }:$a)<> - Complexity = 13 ++ // Dst: (LD_B32:{ *:[i32] } addr:{ *:[iPTR] }:$a) ++/* 9497*/ /*Scope*/ 14, /*->9512*/ ++/* 9498*/ OPC_CheckPredicate, 3, // Predicate_atomic_load_16 ++/* 9500*/ OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectIntAddr:$a #2 #3 ++/* 9503*/ OPC_EmitMergeInputChains1_0, ++/* 9504*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_H32), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 2, 3, ++ // Src: (atomic_load:{ *:[i32] } addr:{ *:[iPTR] }:$a)<> - Complexity = 13 ++ // Dst: (LD_H32:{ *:[i32] } addr:{ *:[iPTR] }:$a) ++/* 9512*/ /*Scope*/ 30, /*->9543*/ ++/* 9513*/ OPC_CheckPredicate, 4, // Predicate_atomic_load_32 ++/* 9515*/ OPC_Scope, 12, /*->9529*/ // 2 children in Scope ++/* 9517*/ OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectIntAddrSImm14Lsl2:$a #2 #3 ++/* 9520*/ OPC_EmitMergeInputChains1_0, ++/* 9521*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LDPTR_W32), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 2, 3, ++ // Src: (atomic_load:{ *:[i32] } addrimm14lsl2:{ *:[iPTR] }:$a)<> - Complexity = 13 ++ // Dst: (LDPTR_W32:{ *:[i32] } addrimm14lsl2:{ *:[iPTR] }:$a) ++/* 9529*/ /*Scope*/ 12, /*->9542*/ ++/* 9530*/ OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectIntAddr:$a #2 #3 ++/* 9533*/ OPC_EmitMergeInputChains1_0, ++/* 9534*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_W32), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 2, 3, ++ // Src: (atomic_load:{ *:[i32] } addr:{ *:[iPTR] }:$a)<> - Complexity = 13 ++ // Dst: (LD_W32:{ *:[i32] } addr:{ *:[iPTR] }:$a) ++/* 9542*/ 0, /*End of Scope*/ ++/* 9543*/ 0, /*End of Scope*/ ++/* 9544*/ 0, // EndSwitchType ++/* 9545*/ /*SwitchOpcode*/ 106|128,2/*362*/, TARGET_VAL(ISD::INTRINSIC_W_CHAIN),// ->9911 ++/* 9549*/ OPC_RecordNode, // #0 = 'intrinsic_w_chain' chained node ++/* 9550*/ OPC_Scope, 21, /*->9573*/ // 21 children in Scope ++/* 9552*/ OPC_CheckChild1Integer, 69|128,28/*3653*/, ++/* 9555*/ OPC_RecordChild2, // #1 = $csr ++/* 9556*/ OPC_MoveChild2, ++/* 9557*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 9560*/ OPC_CheckPredicate, 28, // Predicate_uimm14 ++/* 9562*/ OPC_MoveParent, ++/* 9563*/ OPC_EmitMergeInputChains1_0, ++/* 9564*/ OPC_EmitConvertToTarget, 1, ++/* 9566*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CSRRD), 0|OPFL_Chain, ++ MVT::i64, 1/*#Ops*/, 2, ++ // Src: (intrinsic_w_chain:{ *:[i64] } 3653:{ *:[iPTR] }, (imm:{ *:[i64] })<>:$csr) - Complexity = 12 ++ // Dst: (CSRRD:{ *:[i64] } (imm:{ *:[i64] }):$csr) ++/* 9573*/ /*Scope*/ 23, /*->9597*/ ++/* 9574*/ OPC_CheckChild1Integer, 70|128,28/*3654*/, ++/* 9577*/ OPC_RecordChild2, // #1 = $rd ++/* 9578*/ OPC_RecordChild3, // #2 = $csr ++/* 9579*/ OPC_MoveChild3, ++/* 9580*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 9583*/ OPC_CheckPredicate, 28, // Predicate_uimm14 ++/* 9585*/ OPC_MoveParent, ++/* 9586*/ OPC_EmitMergeInputChains1_0, ++/* 9587*/ OPC_EmitConvertToTarget, 2, ++/* 9589*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CSRWR), 0|OPFL_Chain, ++ MVT::i64, 2/*#Ops*/, 1, 3, ++ // Src: (intrinsic_w_chain:{ *:[i64] } 3654:{ *:[iPTR] }, GPR64Opnd:{ *:[i64] }:$rd, (imm:{ *:[i64] })<>:$csr) - Complexity = 12 ++ // Dst: (CSRWR:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rd, (imm:{ *:[i64] }):$csr) ++/* 9597*/ /*Scope*/ 25, /*->9623*/ ++/* 9598*/ OPC_CheckChild1Integer, 71|128,28/*3655*/, ++/* 9601*/ OPC_RecordChild2, // #1 = $rd ++/* 9602*/ OPC_RecordChild3, // #2 = $rj ++/* 9603*/ OPC_RecordChild4, // #3 = $csr ++/* 9604*/ OPC_MoveChild4, ++/* 9605*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 9608*/ OPC_CheckPredicate, 28, // Predicate_uimm14 ++/* 9610*/ OPC_MoveParent, ++/* 9611*/ OPC_EmitMergeInputChains1_0, ++/* 9612*/ OPC_EmitConvertToTarget, 3, ++/* 9614*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CSRXCHG), 0|OPFL_Chain, ++ MVT::i64, 3/*#Ops*/, 1, 2, 4, ++ // Src: (intrinsic_w_chain:{ *:[i64] } 3655:{ *:[iPTR] }, GPR64Opnd:{ *:[i64] }:$rd, GPR64Opnd:{ *:[i64] }:$rj, (imm:{ *:[i64] })<>:$csr) - Complexity = 12 ++ // Dst: (CSRXCHG:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rd, GPR64Opnd:{ *:[i64] }:$rj, (imm:{ *:[i64] }):$csr) ++/* 9623*/ /*Scope*/ 21, /*->9645*/ ++/* 9624*/ OPC_CheckChild1Integer, 64|128,28/*3648*/, ++/* 9627*/ OPC_RecordChild2, // #1 = $csr ++/* 9628*/ OPC_MoveChild2, ++/* 9629*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 9632*/ OPC_CheckPredicate, 28, // Predicate_uimm14_32 ++/* 9634*/ OPC_MoveParent, ++/* 9635*/ OPC_EmitMergeInputChains1_0, ++/* 9636*/ OPC_EmitConvertToTarget, 1, ++/* 9638*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CSRRD32), 0|OPFL_Chain, ++ MVT::i32, 1/*#Ops*/, 2, ++ // Src: (intrinsic_w_chain:{ *:[i32] } 3648:{ *:[iPTR] }, (imm:{ *:[i32] })<>:$csr) - Complexity = 12 ++ // Dst: (CSRRD32:{ *:[i32] } (imm:{ *:[i32] }):$csr) ++/* 9645*/ /*Scope*/ 23, /*->9669*/ ++/* 9646*/ OPC_CheckChild1Integer, 65|128,28/*3649*/, ++/* 9649*/ OPC_RecordChild2, // #1 = $rd ++/* 9650*/ OPC_RecordChild3, // #2 = $csr ++/* 9651*/ OPC_MoveChild3, ++/* 9652*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 9655*/ OPC_CheckPredicate, 28, // Predicate_uimm14_32 ++/* 9657*/ OPC_MoveParent, ++/* 9658*/ OPC_EmitMergeInputChains1_0, ++/* 9659*/ OPC_EmitConvertToTarget, 2, ++/* 9661*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CSRWR32), 0|OPFL_Chain, ++ MVT::i32, 2/*#Ops*/, 1, 3, ++ // Src: (intrinsic_w_chain:{ *:[i32] } 3649:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rd, (imm:{ *:[i32] })<>:$csr) - Complexity = 12 ++ // Dst: (CSRWR32:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rd, (imm:{ *:[i32] }):$csr) ++/* 9669*/ /*Scope*/ 25, /*->9695*/ ++/* 9670*/ OPC_CheckChild1Integer, 66|128,28/*3650*/, ++/* 9673*/ OPC_RecordChild2, // #1 = $rd ++/* 9674*/ OPC_RecordChild3, // #2 = $rj ++/* 9675*/ OPC_RecordChild4, // #3 = $csr ++/* 9676*/ OPC_MoveChild4, ++/* 9677*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 9680*/ OPC_CheckPredicate, 28, // Predicate_uimm14_32 ++/* 9682*/ OPC_MoveParent, ++/* 9683*/ OPC_EmitMergeInputChains1_0, ++/* 9684*/ OPC_EmitConvertToTarget, 3, ++/* 9686*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CSRXCHG32), 0|OPFL_Chain, ++ MVT::i32, 3/*#Ops*/, 1, 2, 4, ++ // Src: (intrinsic_w_chain:{ *:[i32] } 3650:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rd, GPR32Opnd:{ *:[i32] }:$rj, (imm:{ *:[i32] })<>:$csr) - Complexity = 12 ++ // Dst: (CSRXCHG32:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rd, GPR32Opnd:{ *:[i32] }:$rj, (imm:{ *:[i32] }):$csr) ++/* 9695*/ /*Scope*/ 14, /*->9710*/ ++/* 9696*/ OPC_CheckChild1Integer, 57|128,28/*3641*/, ++/* 9699*/ OPC_RecordChild2, // #1 = $rj ++/* 9700*/ OPC_RecordChild3, // #2 = $rk ++/* 9701*/ OPC_EmitMergeInputChains1_0, ++/* 9702*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CRC_W_D_W), 0|OPFL_Chain, ++ MVT::i32, 2/*#Ops*/, 1, 2, ++ // Src: (intrinsic_w_chain:{ *:[i32] } 3641:{ *:[iPTR] }, GPR64Opnd:{ *:[i64] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) - Complexity = 8 ++ // Dst: (CRC_W_D_W:{ *:[i32] } GPR64Opnd:{ *:[i64] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) ++/* 9710*/ /*Scope*/ 14, /*->9725*/ ++/* 9711*/ OPC_CheckChild1Integer, 61|128,28/*3645*/, ++/* 9714*/ OPC_RecordChild2, // #1 = $rj ++/* 9715*/ OPC_RecordChild3, // #2 = $rk ++/* 9716*/ OPC_EmitMergeInputChains1_0, ++/* 9717*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CRCC_W_D_W), 0|OPFL_Chain, ++ MVT::i32, 2/*#Ops*/, 1, 2, ++ // Src: (intrinsic_w_chain:{ *:[i32] } 3645:{ *:[iPTR] }, GPR64Opnd:{ *:[i64] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) - Complexity = 8 ++ // Dst: (CRCC_W_D_W:{ *:[i32] } GPR64Opnd:{ *:[i64] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) ++/* 9725*/ /*Scope*/ 12, /*->9738*/ ++/* 9726*/ OPC_CheckChild1Integer, 74|128,28/*3658*/, ++/* 9729*/ OPC_RecordChild2, // #1 = $rj ++/* 9730*/ OPC_EmitMergeInputChains1_0, ++/* 9731*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::IOCSRRD_D), 0|OPFL_Chain, ++ MVT::i64, 1/*#Ops*/, 1, ++ // Src: (intrinsic_w_chain:{ *:[i64] } 3658:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rj) - Complexity = 8 ++ // Dst: (IOCSRRD_D:{ *:[i64] } GPR32Opnd:{ *:[i32] }:$rj) ++/* 9738*/ /*Scope*/ 12, /*->9751*/ ++/* 9739*/ OPC_CheckChild1Integer, 55|128,28/*3639*/, ++/* 9742*/ OPC_RecordChild2, // #1 = $rj ++/* 9743*/ OPC_EmitMergeInputChains1_0, ++/* 9744*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CPUCFG), 0|OPFL_Chain, ++ MVT::i32, 1/*#Ops*/, 1, ++ // Src: (intrinsic_w_chain:{ *:[i32] } 3639:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rj) - Complexity = 8 ++ // Dst: (CPUCFG:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj) ++/* 9751*/ /*Scope*/ 14, /*->9766*/ ++/* 9752*/ OPC_CheckChild1Integer, 56|128,28/*3640*/, ++/* 9755*/ OPC_RecordChild2, // #1 = $rj ++/* 9756*/ OPC_RecordChild3, // #2 = $rk ++/* 9757*/ OPC_EmitMergeInputChains1_0, ++/* 9758*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CRC_W_B_W), 0|OPFL_Chain, ++ MVT::i32, 2/*#Ops*/, 1, 2, ++ // Src: (intrinsic_w_chain:{ *:[i32] } 3640:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) - Complexity = 8 ++ // Dst: (CRC_W_B_W:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) ++/* 9766*/ /*Scope*/ 14, /*->9781*/ ++/* 9767*/ OPC_CheckChild1Integer, 58|128,28/*3642*/, ++/* 9770*/ OPC_RecordChild2, // #1 = $rj ++/* 9771*/ OPC_RecordChild3, // #2 = $rk ++/* 9772*/ OPC_EmitMergeInputChains1_0, ++/* 9773*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CRC_W_H_W), 0|OPFL_Chain, ++ MVT::i32, 2/*#Ops*/, 1, 2, ++ // Src: (intrinsic_w_chain:{ *:[i32] } 3642:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) - Complexity = 8 ++ // Dst: (CRC_W_H_W:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) ++/* 9781*/ /*Scope*/ 14, /*->9796*/ ++/* 9782*/ OPC_CheckChild1Integer, 59|128,28/*3643*/, ++/* 9785*/ OPC_RecordChild2, // #1 = $rj ++/* 9786*/ OPC_RecordChild3, // #2 = $rk ++/* 9787*/ OPC_EmitMergeInputChains1_0, ++/* 9788*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CRC_W_W_W), 0|OPFL_Chain, ++ MVT::i32, 2/*#Ops*/, 1, 2, ++ // Src: (intrinsic_w_chain:{ *:[i32] } 3643:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) - Complexity = 8 ++ // Dst: (CRC_W_W_W:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) ++/* 9796*/ /*Scope*/ 14, /*->9811*/ ++/* 9797*/ OPC_CheckChild1Integer, 60|128,28/*3644*/, ++/* 9800*/ OPC_RecordChild2, // #1 = $rj ++/* 9801*/ OPC_RecordChild3, // #2 = $rk ++/* 9802*/ OPC_EmitMergeInputChains1_0, ++/* 9803*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CRCC_W_B_W), 0|OPFL_Chain, ++ MVT::i32, 2/*#Ops*/, 1, 2, ++ // Src: (intrinsic_w_chain:{ *:[i32] } 3644:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) - Complexity = 8 ++ // Dst: (CRCC_W_B_W:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) ++/* 9811*/ /*Scope*/ 14, /*->9826*/ ++/* 9812*/ OPC_CheckChild1Integer, 62|128,28/*3646*/, ++/* 9815*/ OPC_RecordChild2, // #1 = $rj ++/* 9816*/ OPC_RecordChild3, // #2 = $rk ++/* 9817*/ OPC_EmitMergeInputChains1_0, ++/* 9818*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CRCC_W_H_W), 0|OPFL_Chain, ++ MVT::i32, 2/*#Ops*/, 1, 2, ++ // Src: (intrinsic_w_chain:{ *:[i32] } 3646:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) - Complexity = 8 ++ // Dst: (CRCC_W_H_W:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) ++/* 9826*/ /*Scope*/ 14, /*->9841*/ ++/* 9827*/ OPC_CheckChild1Integer, 63|128,28/*3647*/, ++/* 9830*/ OPC_RecordChild2, // #1 = $rj ++/* 9831*/ OPC_RecordChild3, // #2 = $rk ++/* 9832*/ OPC_EmitMergeInputChains1_0, ++/* 9833*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CRCC_W_W_W), 0|OPFL_Chain, ++ MVT::i32, 2/*#Ops*/, 1, 2, ++ // Src: (intrinsic_w_chain:{ *:[i32] } 3647:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) - Complexity = 8 ++ // Dst: (CRCC_W_W_W:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) ++/* 9841*/ /*Scope*/ 12, /*->9854*/ ++/* 9842*/ OPC_CheckChild1Integer, 73|128,28/*3657*/, ++/* 9845*/ OPC_RecordChild2, // #1 = $rj ++/* 9846*/ OPC_EmitMergeInputChains1_0, ++/* 9847*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::IOCSRRD_B32), 0|OPFL_Chain, ++ MVT::i32, 1/*#Ops*/, 1, ++ // Src: (intrinsic_w_chain:{ *:[i32] } 3657:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rj) - Complexity = 8 ++ // Dst: (IOCSRRD_B32:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj) ++/* 9854*/ /*Scope*/ 12, /*->9867*/ ++/* 9855*/ OPC_CheckChild1Integer, 75|128,28/*3659*/, ++/* 9858*/ OPC_RecordChild2, // #1 = $rj ++/* 9859*/ OPC_EmitMergeInputChains1_0, ++/* 9860*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::IOCSRRD_H32), 0|OPFL_Chain, ++ MVT::i32, 1/*#Ops*/, 1, ++ // Src: (intrinsic_w_chain:{ *:[i32] } 3659:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rj) - Complexity = 8 ++ // Dst: (IOCSRRD_H32:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj) ++/* 9867*/ /*Scope*/ 12, /*->9880*/ ++/* 9868*/ OPC_CheckChild1Integer, 76|128,28/*3660*/, ++/* 9871*/ OPC_RecordChild2, // #1 = $rj ++/* 9872*/ OPC_EmitMergeInputChains1_0, ++/* 9873*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::IOCSRRD_W32), 0|OPFL_Chain, ++ MVT::i32, 1/*#Ops*/, 1, ++ // Src: (intrinsic_w_chain:{ *:[i32] } 3660:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rj) - Complexity = 8 ++ // Dst: (IOCSRRD_W32:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj) ++/* 9880*/ /*Scope*/ 14, /*->9895*/ ++/* 9881*/ OPC_CheckChild1Integer, 87|128,36/*4695*/, ++/* 9884*/ OPC_RecordChild2, // #1 = $rj ++/* 9885*/ OPC_RecordChild3, // #2 = $rk ++/* 9886*/ OPC_EmitMergeInputChains1_0, ++/* 9887*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VLDX), 0|OPFL_Chain, ++ MVT::v16i8, 2/*#Ops*/, 1, 2, ++ // Src: (intrinsic_w_chain:{ *:[v16i8] } 4695:{ *:[iPTR] }, iPTR:{ *:[iPTR] }:$rj, GPR64Opnd:{ *:[i64] }:$rk) - Complexity = 8 ++ // Dst: (VLDX:{ *:[v16i8] } iPTR:{ *:[iPTR] }:$rj, GPR64Opnd:{ *:[i64] }:$rk) ++/* 9895*/ /*Scope*/ 14, /*->9910*/ ++/* 9896*/ OPC_CheckChild1Integer, 9|128,31/*3977*/, ++/* 9899*/ OPC_RecordChild2, // #1 = $rj ++/* 9900*/ OPC_RecordChild3, // #2 = $rk ++/* 9901*/ OPC_EmitMergeInputChains1_0, ++/* 9902*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVLDX), 0|OPFL_Chain, ++ MVT::v32i8, 2/*#Ops*/, 1, 2, ++ // Src: (intrinsic_w_chain:{ *:[v32i8] } 3977:{ *:[iPTR] }, iPTR:{ *:[iPTR] }:$rj, GPR64Opnd:{ *:[i64] }:$rk) - Complexity = 8 ++ // Dst: (XVLDX:{ *:[v32i8] } iPTR:{ *:[iPTR] }:$rj, GPR64Opnd:{ *:[i64] }:$rk) ++/* 9910*/ 0, /*End of Scope*/ ++/* 9911*/ /*SwitchOpcode*/ 35|128,38|128,1/*21283*/, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),// ->31199 ++/* 9916*/ OPC_Scope, 22, /*->9940*/ // 1255 children in Scope ++/* 9918*/ OPC_CheckChild0Integer, 107|128,37/*4843*/, ++/* 9921*/ OPC_RecordChild1, // #0 = $vj ++/* 9922*/ OPC_RecordChild2, // #1 = $ui1 ++/* 9923*/ OPC_MoveChild2, ++/* 9924*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 9927*/ OPC_CheckPredicate, 26, // Predicate_immZExt1 ++/* 9929*/ OPC_MoveParent, ++/* 9930*/ OPC_EmitConvertToTarget, 1, ++/* 9932*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VPICKVE2GR_DU), 0, ++ MVT::i64, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[i64] } 4843:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj, (imm:{ *:[i32] })<>:$ui1) - Complexity = 12 ++ // Dst: (VPICKVE2GR_DU:{ *:[i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, (imm:{ *:[i32] }):$ui1) ++/* 9940*/ /*Scope*/ 24, /*->9965*/ ++/* 9941*/ OPC_CheckChild0Integer, 104|128,37/*4840*/, ++/* 9944*/ OPC_RecordChild1, // #0 = $vj ++/* 9945*/ OPC_RecordChild2, // #1 = $ui4 ++/* 9946*/ OPC_MoveChild2, ++/* 9947*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 9950*/ OPC_CheckPredicate, 23, // Predicate_immZExt4 ++/* 9952*/ OPC_MoveParent, ++/* 9953*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 9955*/ OPC_EmitConvertToTarget, 1, ++/* 9957*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VPICKVE2GR_B), 0, ++ MVT::i32, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[i32] } 4840:{ *:[iPTR] }, LSX128B:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$ui4) - Complexity = 12 ++ // Dst: (VPICKVE2GR_B:{ *:[i32] } LSX128B:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$ui4) ++/* 9965*/ /*Scope*/ 24, /*->9990*/ ++/* 9966*/ OPC_CheckChild0Integer, 108|128,37/*4844*/, ++/* 9969*/ OPC_RecordChild1, // #0 = $vj ++/* 9970*/ OPC_RecordChild2, // #1 = $ui3 ++/* 9971*/ OPC_MoveChild2, ++/* 9972*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 9975*/ OPC_CheckPredicate, 24, // Predicate_immZExt3 ++/* 9977*/ OPC_MoveParent, ++/* 9978*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 9980*/ OPC_EmitConvertToTarget, 1, ++/* 9982*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VPICKVE2GR_H), 0, ++ MVT::i32, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[i32] } 4844:{ *:[iPTR] }, LSX128H:{ *:[v8i16] }:$vj, (imm:{ *:[i32] })<>:$ui3) - Complexity = 12 ++ // Dst: (VPICKVE2GR_H:{ *:[i32] } LSX128H:{ *:[v8i16] }:$vj, (imm:{ *:[i32] })<>:$ui3) ++/* 9990*/ /*Scope*/ 24, /*->10015*/ ++/* 9991*/ OPC_CheckChild0Integer, 110|128,37/*4846*/, ++/* 9994*/ OPC_RecordChild1, // #0 = $vj ++/* 9995*/ OPC_RecordChild2, // #1 = $ui2 ++/* 9996*/ OPC_MoveChild2, ++/* 9997*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 10000*/ OPC_CheckPredicate, 25, // Predicate_immZExt2 ++/* 10002*/ OPC_MoveParent, ++/* 10003*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 10005*/ OPC_EmitConvertToTarget, 1, ++/* 10007*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VPICKVE2GR_W), 0, ++ MVT::i32, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[i32] } 4846:{ *:[iPTR] }, LSX128W:{ *:[v4i32] }:$vj, (imm:{ *:[i32] })<>:$ui2) - Complexity = 12 ++ // Dst: (VPICKVE2GR_W:{ *:[i32] } LSX128W:{ *:[v4i32] }:$vj, (imm:{ *:[i32] })<>:$ui2) ++/* 10015*/ /*Scope*/ 24, /*->10040*/ ++/* 10016*/ OPC_CheckChild0Integer, 106|128,37/*4842*/, ++/* 10019*/ OPC_RecordChild1, // #0 = $vj ++/* 10020*/ OPC_RecordChild2, // #1 = $ui1 ++/* 10021*/ OPC_MoveChild2, ++/* 10022*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 10025*/ OPC_CheckPredicate, 26, // Predicate_immZExt1 ++/* 10027*/ OPC_MoveParent, ++/* 10028*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 10030*/ OPC_EmitConvertToTarget, 1, ++/* 10032*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VPICKVE2GR_D), 0, ++ MVT::i64, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[i64] } 4842:{ *:[iPTR] }, LSX128D:{ *:[v2i64] }:$vj, (imm:{ *:[i32] })<>:$ui1) - Complexity = 12 ++ // Dst: (VPICKVE2GR_D:{ *:[i64] } LSX128D:{ *:[v2i64] }:$vj, (imm:{ *:[i32] })<>:$ui1) ++/* 10040*/ /*Scope*/ 24, /*->10065*/ ++/* 10041*/ OPC_CheckChild0Integer, 105|128,37/*4841*/, ++/* 10044*/ OPC_RecordChild1, // #0 = $vj ++/* 10045*/ OPC_RecordChild2, // #1 = $ui4 ++/* 10046*/ OPC_MoveChild2, ++/* 10047*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 10050*/ OPC_CheckPredicate, 23, // Predicate_immZExt4 ++/* 10052*/ OPC_MoveParent, ++/* 10053*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 10055*/ OPC_EmitConvertToTarget, 1, ++/* 10057*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VPICKVE2GR_BU), 0, ++ MVT::i32, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[i32] } 4841:{ *:[iPTR] }, LSX128B:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$ui4) - Complexity = 12 ++ // Dst: (VPICKVE2GR_BU:{ *:[i32] } LSX128B:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$ui4) ++/* 10065*/ /*Scope*/ 24, /*->10090*/ ++/* 10066*/ OPC_CheckChild0Integer, 109|128,37/*4845*/, ++/* 10069*/ OPC_RecordChild1, // #0 = $vj ++/* 10070*/ OPC_RecordChild2, // #1 = $ui3 ++/* 10071*/ OPC_MoveChild2, ++/* 10072*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 10075*/ OPC_CheckPredicate, 24, // Predicate_immZExt3 ++/* 10077*/ OPC_MoveParent, ++/* 10078*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 10080*/ OPC_EmitConvertToTarget, 1, ++/* 10082*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VPICKVE2GR_HU), 0, ++ MVT::i32, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[i32] } 4845:{ *:[iPTR] }, LSX128H:{ *:[v8i16] }:$vj, (imm:{ *:[i32] })<>:$ui3) - Complexity = 12 ++ // Dst: (VPICKVE2GR_HU:{ *:[i32] } LSX128H:{ *:[v8i16] }:$vj, (imm:{ *:[i32] })<>:$ui3) ++/* 10090*/ /*Scope*/ 24, /*->10115*/ ++/* 10091*/ OPC_CheckChild0Integer, 111|128,37/*4847*/, ++/* 10094*/ OPC_RecordChild1, // #0 = $vj ++/* 10095*/ OPC_RecordChild2, // #1 = $ui2 ++/* 10096*/ OPC_MoveChild2, ++/* 10097*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 10100*/ OPC_CheckPredicate, 25, // Predicate_immZExt2 ++/* 10102*/ OPC_MoveParent, ++/* 10103*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 10105*/ OPC_EmitConvertToTarget, 1, ++/* 10107*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VPICKVE2GR_WU), 0, ++ MVT::i32, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[i32] } 4847:{ *:[iPTR] }, LSX128W:{ *:[v4i32] }:$vj, (imm:{ *:[i32] })<>:$ui2) - Complexity = 12 ++ // Dst: (VPICKVE2GR_WU:{ *:[i32] } LSX128W:{ *:[v4i32] }:$vj, (imm:{ *:[i32] })<>:$ui2) ++/* 10115*/ /*Scope*/ 24, /*->10140*/ ++/* 10116*/ OPC_CheckChild0Integer, 33|128,32/*4129*/, ++/* 10119*/ OPC_RecordChild1, // #0 = $xj ++/* 10120*/ OPC_RecordChild2, // #1 = $ui3 ++/* 10121*/ OPC_MoveChild2, ++/* 10122*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 10125*/ OPC_CheckPredicate, 24, // Predicate_immZExt3 ++/* 10127*/ OPC_MoveParent, ++/* 10128*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 10130*/ OPC_EmitConvertToTarget, 1, ++/* 10132*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPICKVE2GR_W), 0, ++ MVT::i32, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[i32] } 4129:{ *:[iPTR] }, LASX256W:{ *:[v8i32] }:$xj, (imm:{ *:[i32] })<>:$ui3) - Complexity = 12 ++ // Dst: (XVPICKVE2GR_W:{ *:[i32] } LASX256W:{ *:[v8i32] }:$xj, (imm:{ *:[i32] })<>:$ui3) ++/* 10140*/ /*Scope*/ 24, /*->10165*/ ++/* 10141*/ OPC_CheckChild0Integer, 31|128,32/*4127*/, ++/* 10144*/ OPC_RecordChild1, // #0 = $xj ++/* 10145*/ OPC_RecordChild2, // #1 = $ui2 ++/* 10146*/ OPC_MoveChild2, ++/* 10147*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 10150*/ OPC_CheckPredicate, 25, // Predicate_immZExt2 ++/* 10152*/ OPC_MoveParent, ++/* 10153*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 10155*/ OPC_EmitConvertToTarget, 1, ++/* 10157*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPICKVE2GR_D), 0, ++ MVT::i64, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[i64] } 4127:{ *:[iPTR] }, LASX256D:{ *:[v4i64] }:$xj, (imm:{ *:[i32] })<>:$ui2) - Complexity = 12 ++ // Dst: (XVPICKVE2GR_D:{ *:[i64] } LASX256D:{ *:[v4i64] }:$xj, (imm:{ *:[i32] })<>:$ui2) ++/* 10165*/ /*Scope*/ 24, /*->10190*/ ++/* 10166*/ OPC_CheckChild0Integer, 34|128,32/*4130*/, ++/* 10169*/ OPC_RecordChild1, // #0 = $xj ++/* 10170*/ OPC_RecordChild2, // #1 = $ui3 ++/* 10171*/ OPC_MoveChild2, ++/* 10172*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 10175*/ OPC_CheckPredicate, 24, // Predicate_immZExt3 ++/* 10177*/ OPC_MoveParent, ++/* 10178*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 10180*/ OPC_EmitConvertToTarget, 1, ++/* 10182*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPICKVE2GR_WU), 0, ++ MVT::i32, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[i32] } 4130:{ *:[iPTR] }, LASX256W:{ *:[v8i32] }:$xj, (imm:{ *:[i32] })<>:$ui3) - Complexity = 12 ++ // Dst: (XVPICKVE2GR_WU:{ *:[i32] } LASX256W:{ *:[v8i32] }:$xj, (imm:{ *:[i32] })<>:$ui3) ++/* 10190*/ /*Scope*/ 24, /*->10215*/ ++/* 10191*/ OPC_CheckChild0Integer, 32|128,32/*4128*/, ++/* 10194*/ OPC_RecordChild1, // #0 = $xj ++/* 10195*/ OPC_RecordChild2, // #1 = $ui2 ++/* 10196*/ OPC_MoveChild2, ++/* 10197*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 10200*/ OPC_CheckPredicate, 25, // Predicate_immZExt2 ++/* 10202*/ OPC_MoveParent, ++/* 10203*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 10205*/ OPC_EmitConvertToTarget, 1, ++/* 10207*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPICKVE2GR_DU), 0, ++ MVT::i64, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[i64] } 4128:{ *:[iPTR] }, LASX256D:{ *:[v4i64] }:$xj, (imm:{ *:[i32] })<>:$ui2) - Complexity = 12 ++ // Dst: (XVPICKVE2GR_DU:{ *:[i64] } LASX256D:{ *:[v4i64] }:$xj, (imm:{ *:[i32] })<>:$ui2) ++/* 10215*/ /*Scope*/ 11, /*->10227*/ ++/* 10216*/ OPC_CheckChild0Integer, 43|128,34/*4395*/, ++/* 10219*/ OPC_RecordChild1, // #0 = $vj ++/* 10220*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SNZ_B_PSEUDO), 0, ++ MVT::i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[i32] } 4395:{ *:[iPTR] }, LSX128B:{ *:[v16i8] }:$vj) - Complexity = 8 ++ // Dst: (SNZ_B_PSEUDO:{ *:[i32] } LSX128B:{ *:[v16i8] }:$vj) ++/* 10227*/ /*Scope*/ 11, /*->10239*/ ++/* 10228*/ OPC_CheckChild0Integer, 45|128,34/*4397*/, ++/* 10231*/ OPC_RecordChild1, // #0 = $vj ++/* 10232*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SNZ_H_PSEUDO), 0, ++ MVT::i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[i32] } 4397:{ *:[iPTR] }, LSX128H:{ *:[v8i16] }:$vj) - Complexity = 8 ++ // Dst: (SNZ_H_PSEUDO:{ *:[i32] } LSX128H:{ *:[v8i16] }:$vj) ++/* 10239*/ /*Scope*/ 11, /*->10251*/ ++/* 10240*/ OPC_CheckChild0Integer, 47|128,34/*4399*/, ++/* 10243*/ OPC_RecordChild1, // #0 = $vj ++/* 10244*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SNZ_W_PSEUDO), 0, ++ MVT::i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[i32] } 4399:{ *:[iPTR] }, LSX128W:{ *:[v4i32] }:$vj) - Complexity = 8 ++ // Dst: (SNZ_W_PSEUDO:{ *:[i32] } LSX128W:{ *:[v4i32] }:$vj) ++/* 10251*/ /*Scope*/ 11, /*->10263*/ ++/* 10252*/ OPC_CheckChild0Integer, 44|128,34/*4396*/, ++/* 10255*/ OPC_RecordChild1, // #0 = $vj ++/* 10256*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SNZ_D_PSEUDO), 0, ++ MVT::i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[i32] } 4396:{ *:[iPTR] }, LSX128D:{ *:[v2i64] }:$vj) - Complexity = 8 ++ // Dst: (SNZ_D_PSEUDO:{ *:[i32] } LSX128D:{ *:[v2i64] }:$vj) ++/* 10263*/ /*Scope*/ 11, /*->10275*/ ++/* 10264*/ OPC_CheckChild0Integer, 46|128,34/*4398*/, ++/* 10267*/ OPC_RecordChild1, // #0 = $vj ++/* 10268*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SNZ_V_PSEUDO), 0, ++ MVT::i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[i32] } 4398:{ *:[iPTR] }, LSX128B:{ *:[v16i8] }:$vj) - Complexity = 8 ++ // Dst: (SNZ_V_PSEUDO:{ *:[i32] } LSX128B:{ *:[v16i8] }:$vj) ++/* 10275*/ /*Scope*/ 11, /*->10287*/ ++/* 10276*/ OPC_CheckChild0Integer, 48|128,34/*4400*/, ++/* 10279*/ OPC_RecordChild1, // #0 = $vj ++/* 10280*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SZ_B_PSEUDO), 0, ++ MVT::i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[i32] } 4400:{ *:[iPTR] }, LSX128B:{ *:[v16i8] }:$vj) - Complexity = 8 ++ // Dst: (SZ_B_PSEUDO:{ *:[i32] } LSX128B:{ *:[v16i8] }:$vj) ++/* 10287*/ /*Scope*/ 11, /*->10299*/ ++/* 10288*/ OPC_CheckChild0Integer, 50|128,34/*4402*/, ++/* 10291*/ OPC_RecordChild1, // #0 = $vj ++/* 10292*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SZ_H_PSEUDO), 0, ++ MVT::i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[i32] } 4402:{ *:[iPTR] }, LSX128H:{ *:[v8i16] }:$vj) - Complexity = 8 ++ // Dst: (SZ_H_PSEUDO:{ *:[i32] } LSX128H:{ *:[v8i16] }:$vj) ++/* 10299*/ /*Scope*/ 11, /*->10311*/ ++/* 10300*/ OPC_CheckChild0Integer, 52|128,34/*4404*/, ++/* 10303*/ OPC_RecordChild1, // #0 = $vj ++/* 10304*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SZ_W_PSEUDO), 0, ++ MVT::i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[i32] } 4404:{ *:[iPTR] }, LSX128W:{ *:[v4i32] }:$vj) - Complexity = 8 ++ // Dst: (SZ_W_PSEUDO:{ *:[i32] } LSX128W:{ *:[v4i32] }:$vj) ++/* 10311*/ /*Scope*/ 11, /*->10323*/ ++/* 10312*/ OPC_CheckChild0Integer, 49|128,34/*4401*/, ++/* 10315*/ OPC_RecordChild1, // #0 = $vj ++/* 10316*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SZ_D_PSEUDO), 0, ++ MVT::i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[i32] } 4401:{ *:[iPTR] }, LSX128D:{ *:[v2i64] }:$vj) - Complexity = 8 ++ // Dst: (SZ_D_PSEUDO:{ *:[i32] } LSX128D:{ *:[v2i64] }:$vj) ++/* 10323*/ /*Scope*/ 11, /*->10335*/ ++/* 10324*/ OPC_CheckChild0Integer, 51|128,34/*4403*/, ++/* 10327*/ OPC_RecordChild1, // #0 = $vj ++/* 10328*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SZ_V_PSEUDO), 0, ++ MVT::i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[i32] } 4403:{ *:[iPTR] }, LSX128B:{ *:[v16i8] }:$vj) - Complexity = 8 ++ // Dst: (SZ_V_PSEUDO:{ *:[i32] } LSX128B:{ *:[v16i8] }:$vj) ++/* 10335*/ /*Scope*/ 11, /*->10347*/ ++/* 10336*/ OPC_CheckChild0Integer, 93|128,28/*3677*/, ++/* 10339*/ OPC_RecordChild1, // #0 = $xj ++/* 10340*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XSNZ_B_PSEUDO), 0, ++ MVT::i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[i32] } 3677:{ *:[iPTR] }, LASX256B:{ *:[v32i8] }:$xj) - Complexity = 8 ++ // Dst: (XSNZ_B_PSEUDO:{ *:[i32] } LASX256B:{ *:[v32i8] }:$xj) ++/* 10347*/ /*Scope*/ 11, /*->10359*/ ++/* 10348*/ OPC_CheckChild0Integer, 95|128,28/*3679*/, ++/* 10351*/ OPC_RecordChild1, // #0 = $xj ++/* 10352*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XSNZ_H_PSEUDO), 0, ++ MVT::i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[i32] } 3679:{ *:[iPTR] }, LASX256H:{ *:[v16i16] }:$xj) - Complexity = 8 ++ // Dst: (XSNZ_H_PSEUDO:{ *:[i32] } LASX256H:{ *:[v16i16] }:$xj) ++/* 10359*/ /*Scope*/ 11, /*->10371*/ ++/* 10360*/ OPC_CheckChild0Integer, 97|128,28/*3681*/, ++/* 10363*/ OPC_RecordChild1, // #0 = $xj ++/* 10364*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XSNZ_W_PSEUDO), 0, ++ MVT::i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[i32] } 3681:{ *:[iPTR] }, LASX256W:{ *:[v8i32] }:$xj) - Complexity = 8 ++ // Dst: (XSNZ_W_PSEUDO:{ *:[i32] } LASX256W:{ *:[v8i32] }:$xj) ++/* 10371*/ /*Scope*/ 11, /*->10383*/ ++/* 10372*/ OPC_CheckChild0Integer, 94|128,28/*3678*/, ++/* 10375*/ OPC_RecordChild1, // #0 = $xj ++/* 10376*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XSNZ_D_PSEUDO), 0, ++ MVT::i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[i32] } 3678:{ *:[iPTR] }, LASX256D:{ *:[v4i64] }:$xj) - Complexity = 8 ++ // Dst: (XSNZ_D_PSEUDO:{ *:[i32] } LASX256D:{ *:[v4i64] }:$xj) ++/* 10383*/ /*Scope*/ 11, /*->10395*/ ++/* 10384*/ OPC_CheckChild0Integer, 96|128,28/*3680*/, ++/* 10387*/ OPC_RecordChild1, // #0 = $xj ++/* 10388*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XSNZ_V_PSEUDO), 0, ++ MVT::i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[i32] } 3680:{ *:[iPTR] }, LASX256B:{ *:[v32i8] }:$xj) - Complexity = 8 ++ // Dst: (XSNZ_V_PSEUDO:{ *:[i32] } LASX256B:{ *:[v32i8] }:$xj) ++/* 10395*/ /*Scope*/ 11, /*->10407*/ ++/* 10396*/ OPC_CheckChild0Integer, 98|128,28/*3682*/, ++/* 10399*/ OPC_RecordChild1, // #0 = $xj ++/* 10400*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XSZ_B_PSEUDO), 0, ++ MVT::i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[i32] } 3682:{ *:[iPTR] }, LASX256B:{ *:[v32i8] }:$xj) - Complexity = 8 ++ // Dst: (XSZ_B_PSEUDO:{ *:[i32] } LASX256B:{ *:[v32i8] }:$xj) ++/* 10407*/ /*Scope*/ 11, /*->10419*/ ++/* 10408*/ OPC_CheckChild0Integer, 100|128,28/*3684*/, ++/* 10411*/ OPC_RecordChild1, // #0 = $xj ++/* 10412*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XSZ_H_PSEUDO), 0, ++ MVT::i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[i32] } 3684:{ *:[iPTR] }, LASX256H:{ *:[v16i16] }:$xj) - Complexity = 8 ++ // Dst: (XSZ_H_PSEUDO:{ *:[i32] } LASX256H:{ *:[v16i16] }:$xj) ++/* 10419*/ /*Scope*/ 11, /*->10431*/ ++/* 10420*/ OPC_CheckChild0Integer, 102|128,28/*3686*/, ++/* 10423*/ OPC_RecordChild1, // #0 = $xj ++/* 10424*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XSZ_W_PSEUDO), 0, ++ MVT::i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[i32] } 3686:{ *:[iPTR] }, LASX256W:{ *:[v8i32] }:$xj) - Complexity = 8 ++ // Dst: (XSZ_W_PSEUDO:{ *:[i32] } LASX256W:{ *:[v8i32] }:$xj) ++/* 10431*/ /*Scope*/ 11, /*->10443*/ ++/* 10432*/ OPC_CheckChild0Integer, 99|128,28/*3683*/, ++/* 10435*/ OPC_RecordChild1, // #0 = $xj ++/* 10436*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XSZ_D_PSEUDO), 0, ++ MVT::i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[i32] } 3683:{ *:[iPTR] }, LASX256D:{ *:[v4i64] }:$xj) - Complexity = 8 ++ // Dst: (XSZ_D_PSEUDO:{ *:[i32] } LASX256D:{ *:[v4i64] }:$xj) ++/* 10443*/ /*Scope*/ 11, /*->10455*/ ++/* 10444*/ OPC_CheckChild0Integer, 101|128,28/*3685*/, ++/* 10447*/ OPC_RecordChild1, // #0 = $xj ++/* 10448*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XSZ_V_PSEUDO), 0, ++ MVT::i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[i32] } 3685:{ *:[iPTR] }, LASX256B:{ *:[v32i8] }:$xj) - Complexity = 8 ++ // Dst: (XSZ_V_PSEUDO:{ *:[i32] } LASX256B:{ *:[v32i8] }:$xj) ++/* 10455*/ /*Scope*/ 22, /*->10478*/ ++/* 10456*/ OPC_CheckChild0Integer, 24|128,38/*4888*/, ++/* 10459*/ OPC_RecordChild1, // #0 = $vj ++/* 10460*/ OPC_RecordChild2, // #1 = $si5 ++/* 10461*/ OPC_MoveChild2, ++/* 10462*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 10465*/ OPC_CheckPredicate, 29, // Predicate_immSExt5 ++/* 10467*/ OPC_MoveParent, ++/* 10468*/ OPC_EmitConvertToTarget, 1, ++/* 10470*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSEQI_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4888:{ *:[iPTR] }, LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$si5) - Complexity = 12 ++ // Dst: (VSEQI_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[i32] }):$si5) ++/* 10478*/ /*Scope*/ 22, /*->10501*/ ++/* 10479*/ OPC_CheckChild0Integer, 26|128,38/*4890*/, ++/* 10482*/ OPC_RecordChild1, // #0 = $vj ++/* 10483*/ OPC_RecordChild2, // #1 = $si5 ++/* 10484*/ OPC_MoveChild2, ++/* 10485*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 10488*/ OPC_CheckPredicate, 29, // Predicate_immSExt5 ++/* 10490*/ OPC_MoveParent, ++/* 10491*/ OPC_EmitConvertToTarget, 1, ++/* 10493*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSEQI_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4890:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vj, (imm:{ *:[i32] })<>:$si5) - Complexity = 12 ++ // Dst: (VSEQI_H:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, (imm:{ *:[i32] }):$si5) ++/* 10501*/ /*Scope*/ 22, /*->10524*/ ++/* 10502*/ OPC_CheckChild0Integer, 27|128,38/*4891*/, ++/* 10505*/ OPC_RecordChild1, // #0 = $vj ++/* 10506*/ OPC_RecordChild2, // #1 = $si5 ++/* 10507*/ OPC_MoveChild2, ++/* 10508*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 10511*/ OPC_CheckPredicate, 29, // Predicate_immSExt5 ++/* 10513*/ OPC_MoveParent, ++/* 10514*/ OPC_EmitConvertToTarget, 1, ++/* 10516*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSEQI_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4891:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vj, (imm:{ *:[i32] })<>:$si5) - Complexity = 12 ++ // Dst: (VSEQI_W:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, (imm:{ *:[i32] }):$si5) ++/* 10524*/ /*Scope*/ 22, /*->10547*/ ++/* 10525*/ OPC_CheckChild0Integer, 25|128,38/*4889*/, ++/* 10528*/ OPC_RecordChild1, // #0 = $vj ++/* 10529*/ OPC_RecordChild2, // #1 = $si5 ++/* 10530*/ OPC_MoveChild2, ++/* 10531*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 10534*/ OPC_CheckPredicate, 29, // Predicate_immSExt5 ++/* 10536*/ OPC_MoveParent, ++/* 10537*/ OPC_EmitConvertToTarget, 1, ++/* 10539*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSEQI_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4889:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj, (imm:{ *:[i32] })<>:$si5) - Complexity = 12 ++ // Dst: (VSEQI_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, (imm:{ *:[i32] }):$si5) ++/* 10547*/ /*Scope*/ 22, /*->10570*/ ++/* 10548*/ OPC_CheckChild0Integer, 48|128,38/*4912*/, ++/* 10551*/ OPC_RecordChild1, // #0 = $vj ++/* 10552*/ OPC_RecordChild2, // #1 = $si5 ++/* 10553*/ OPC_MoveChild2, ++/* 10554*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 10557*/ OPC_CheckPredicate, 29, // Predicate_immSExt5 ++/* 10559*/ OPC_MoveParent, ++/* 10560*/ OPC_EmitConvertToTarget, 1, ++/* 10562*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLEI_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4912:{ *:[iPTR] }, LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$si5) - Complexity = 12 ++ // Dst: (VSLEI_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[i32] }):$si5) ++/* 10570*/ /*Scope*/ 22, /*->10593*/ ++/* 10571*/ OPC_CheckChild0Integer, 52|128,38/*4916*/, ++/* 10574*/ OPC_RecordChild1, // #0 = $vj ++/* 10575*/ OPC_RecordChild2, // #1 = $si5 ++/* 10576*/ OPC_MoveChild2, ++/* 10577*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 10580*/ OPC_CheckPredicate, 29, // Predicate_immSExt5 ++/* 10582*/ OPC_MoveParent, ++/* 10583*/ OPC_EmitConvertToTarget, 1, ++/* 10585*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLEI_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4916:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vj, (imm:{ *:[i32] })<>:$si5) - Complexity = 12 ++ // Dst: (VSLEI_H:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, (imm:{ *:[i32] }):$si5) ++/* 10593*/ /*Scope*/ 22, /*->10616*/ ++/* 10594*/ OPC_CheckChild0Integer, 54|128,38/*4918*/, ++/* 10597*/ OPC_RecordChild1, // #0 = $vj ++/* 10598*/ OPC_RecordChild2, // #1 = $si5 ++/* 10599*/ OPC_MoveChild2, ++/* 10600*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 10603*/ OPC_CheckPredicate, 29, // Predicate_immSExt5 ++/* 10605*/ OPC_MoveParent, ++/* 10606*/ OPC_EmitConvertToTarget, 1, ++/* 10608*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLEI_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4918:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vj, (imm:{ *:[i32] })<>:$si5) - Complexity = 12 ++ // Dst: (VSLEI_W:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, (imm:{ *:[i32] }):$si5) ++/* 10616*/ /*Scope*/ 22, /*->10639*/ ++/* 10617*/ OPC_CheckChild0Integer, 50|128,38/*4914*/, ++/* 10620*/ OPC_RecordChild1, // #0 = $vj ++/* 10621*/ OPC_RecordChild2, // #1 = $si5 ++/* 10622*/ OPC_MoveChild2, ++/* 10623*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 10626*/ OPC_CheckPredicate, 29, // Predicate_immSExt5 ++/* 10628*/ OPC_MoveParent, ++/* 10629*/ OPC_EmitConvertToTarget, 1, ++/* 10631*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLEI_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4914:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj, (imm:{ *:[i32] })<>:$si5) - Complexity = 12 ++ // Dst: (VSLEI_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, (imm:{ *:[i32] }):$si5) ++/* 10639*/ /*Scope*/ 22, /*->10662*/ ++/* 10640*/ OPC_CheckChild0Integer, 49|128,38/*4913*/, ++/* 10643*/ OPC_RecordChild1, // #0 = $vj ++/* 10644*/ OPC_RecordChild2, // #1 = $ui5 ++/* 10645*/ OPC_MoveChild2, ++/* 10646*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 10649*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 10651*/ OPC_MoveParent, ++/* 10652*/ OPC_EmitConvertToTarget, 1, ++/* 10654*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLEI_BU), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4913:{ *:[iPTR] }, LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (VSLEI_BU:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[i32] }):$ui5) ++/* 10662*/ /*Scope*/ 22, /*->10685*/ ++/* 10663*/ OPC_CheckChild0Integer, 53|128,38/*4917*/, ++/* 10666*/ OPC_RecordChild1, // #0 = $vj ++/* 10667*/ OPC_RecordChild2, // #1 = $ui5 ++/* 10668*/ OPC_MoveChild2, ++/* 10669*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 10672*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 10674*/ OPC_MoveParent, ++/* 10675*/ OPC_EmitConvertToTarget, 1, ++/* 10677*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLEI_HU), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4917:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (VSLEI_HU:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, (imm:{ *:[i32] }):$ui5) ++/* 10685*/ /*Scope*/ 22, /*->10708*/ ++/* 10686*/ OPC_CheckChild0Integer, 55|128,38/*4919*/, ++/* 10689*/ OPC_RecordChild1, // #0 = $vj ++/* 10690*/ OPC_RecordChild2, // #1 = $ui5 ++/* 10691*/ OPC_MoveChild2, ++/* 10692*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 10695*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 10697*/ OPC_MoveParent, ++/* 10698*/ OPC_EmitConvertToTarget, 1, ++/* 10700*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLEI_WU), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4919:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (VSLEI_WU:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, (imm:{ *:[i32] }):$ui5) ++/* 10708*/ /*Scope*/ 22, /*->10731*/ ++/* 10709*/ OPC_CheckChild0Integer, 51|128,38/*4915*/, ++/* 10712*/ OPC_RecordChild1, // #0 = $vj ++/* 10713*/ OPC_RecordChild2, // #1 = $ui5 ++/* 10714*/ OPC_MoveChild2, ++/* 10715*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 10718*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 10720*/ OPC_MoveParent, ++/* 10721*/ OPC_EmitConvertToTarget, 1, ++/* 10723*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLEI_DU), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4915:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (VSLEI_DU:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, (imm:{ *:[i32] }):$ui5) ++/* 10731*/ /*Scope*/ 22, /*->10754*/ ++/* 10732*/ OPC_CheckChild0Integer, 78|128,38/*4942*/, ++/* 10735*/ OPC_RecordChild1, // #0 = $vj ++/* 10736*/ OPC_RecordChild2, // #1 = $si5 ++/* 10737*/ OPC_MoveChild2, ++/* 10738*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 10741*/ OPC_CheckPredicate, 29, // Predicate_immSExt5 ++/* 10743*/ OPC_MoveParent, ++/* 10744*/ OPC_EmitConvertToTarget, 1, ++/* 10746*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLTI_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4942:{ *:[iPTR] }, LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$si5) - Complexity = 12 ++ // Dst: (VSLTI_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[i32] }):$si5) ++/* 10754*/ /*Scope*/ 22, /*->10777*/ ++/* 10755*/ OPC_CheckChild0Integer, 82|128,38/*4946*/, ++/* 10758*/ OPC_RecordChild1, // #0 = $vj ++/* 10759*/ OPC_RecordChild2, // #1 = $si5 ++/* 10760*/ OPC_MoveChild2, ++/* 10761*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 10764*/ OPC_CheckPredicate, 29, // Predicate_immSExt5 ++/* 10766*/ OPC_MoveParent, ++/* 10767*/ OPC_EmitConvertToTarget, 1, ++/* 10769*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLTI_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4946:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vj, (imm:{ *:[i32] })<>:$si5) - Complexity = 12 ++ // Dst: (VSLTI_H:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, (imm:{ *:[i32] }):$si5) ++/* 10777*/ /*Scope*/ 22, /*->10800*/ ++/* 10778*/ OPC_CheckChild0Integer, 84|128,38/*4948*/, ++/* 10781*/ OPC_RecordChild1, // #0 = $vj ++/* 10782*/ OPC_RecordChild2, // #1 = $si5 ++/* 10783*/ OPC_MoveChild2, ++/* 10784*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 10787*/ OPC_CheckPredicate, 29, // Predicate_immSExt5 ++/* 10789*/ OPC_MoveParent, ++/* 10790*/ OPC_EmitConvertToTarget, 1, ++/* 10792*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLTI_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4948:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vj, (imm:{ *:[i32] })<>:$si5) - Complexity = 12 ++ // Dst: (VSLTI_W:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, (imm:{ *:[i32] }):$si5) ++/* 10800*/ /*Scope*/ 22, /*->10823*/ ++/* 10801*/ OPC_CheckChild0Integer, 80|128,38/*4944*/, ++/* 10804*/ OPC_RecordChild1, // #0 = $vj ++/* 10805*/ OPC_RecordChild2, // #1 = $si5 ++/* 10806*/ OPC_MoveChild2, ++/* 10807*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 10810*/ OPC_CheckPredicate, 29, // Predicate_immSExt5 ++/* 10812*/ OPC_MoveParent, ++/* 10813*/ OPC_EmitConvertToTarget, 1, ++/* 10815*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLTI_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4944:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj, (imm:{ *:[i32] })<>:$si5) - Complexity = 12 ++ // Dst: (VSLTI_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, (imm:{ *:[i32] }):$si5) ++/* 10823*/ /*Scope*/ 22, /*->10846*/ ++/* 10824*/ OPC_CheckChild0Integer, 79|128,38/*4943*/, ++/* 10827*/ OPC_RecordChild1, // #0 = $vj ++/* 10828*/ OPC_RecordChild2, // #1 = $ui5 ++/* 10829*/ OPC_MoveChild2, ++/* 10830*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 10833*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 10835*/ OPC_MoveParent, ++/* 10836*/ OPC_EmitConvertToTarget, 1, ++/* 10838*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLTI_BU), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4943:{ *:[iPTR] }, LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (VSLTI_BU:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[i32] }):$ui5) ++/* 10846*/ /*Scope*/ 22, /*->10869*/ ++/* 10847*/ OPC_CheckChild0Integer, 83|128,38/*4947*/, ++/* 10850*/ OPC_RecordChild1, // #0 = $vj ++/* 10851*/ OPC_RecordChild2, // #1 = $ui5 ++/* 10852*/ OPC_MoveChild2, ++/* 10853*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 10856*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 10858*/ OPC_MoveParent, ++/* 10859*/ OPC_EmitConvertToTarget, 1, ++/* 10861*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLTI_HU), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4947:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (VSLTI_HU:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, (imm:{ *:[i32] }):$ui5) ++/* 10869*/ /*Scope*/ 22, /*->10892*/ ++/* 10870*/ OPC_CheckChild0Integer, 85|128,38/*4949*/, ++/* 10873*/ OPC_RecordChild1, // #0 = $vj ++/* 10874*/ OPC_RecordChild2, // #1 = $ui5 ++/* 10875*/ OPC_MoveChild2, ++/* 10876*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 10879*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 10881*/ OPC_MoveParent, ++/* 10882*/ OPC_EmitConvertToTarget, 1, ++/* 10884*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLTI_WU), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4949:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (VSLTI_WU:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, (imm:{ *:[i32] }):$ui5) ++/* 10892*/ /*Scope*/ 22, /*->10915*/ ++/* 10893*/ OPC_CheckChild0Integer, 81|128,38/*4945*/, ++/* 10896*/ OPC_RecordChild1, // #0 = $vj ++/* 10897*/ OPC_RecordChild2, // #1 = $ui5 ++/* 10898*/ OPC_MoveChild2, ++/* 10899*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 10902*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 10904*/ OPC_MoveParent, ++/* 10905*/ OPC_EmitConvertToTarget, 1, ++/* 10907*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLTI_DU), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4945:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (VSLTI_DU:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, (imm:{ *:[i32] }):$ui5) ++/* 10915*/ /*Scope*/ 22, /*->10938*/ ++/* 10916*/ OPC_CheckChild0Integer, 124|128,36/*4732*/, ++/* 10919*/ OPC_RecordChild1, // #0 = $vj ++/* 10920*/ OPC_RecordChild2, // #1 = $si5 ++/* 10921*/ OPC_MoveChild2, ++/* 10922*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 10925*/ OPC_CheckPredicate, 29, // Predicate_immSExt5 ++/* 10927*/ OPC_MoveParent, ++/* 10928*/ OPC_EmitConvertToTarget, 1, ++/* 10930*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMAXI_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4732:{ *:[iPTR] }, LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$si5) - Complexity = 12 ++ // Dst: (VMAXI_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[i32] }):$si5) ++/* 10938*/ /*Scope*/ 22, /*->10961*/ ++/* 10939*/ OPC_CheckChild0Integer, 0|128,37/*4736*/, ++/* 10942*/ OPC_RecordChild1, // #0 = $vj ++/* 10943*/ OPC_RecordChild2, // #1 = $si5 ++/* 10944*/ OPC_MoveChild2, ++/* 10945*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 10948*/ OPC_CheckPredicate, 29, // Predicate_immSExt5 ++/* 10950*/ OPC_MoveParent, ++/* 10951*/ OPC_EmitConvertToTarget, 1, ++/* 10953*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMAXI_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4736:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vj, (imm:{ *:[i32] })<>:$si5) - Complexity = 12 ++ // Dst: (VMAXI_H:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, (imm:{ *:[i32] }):$si5) ++/* 10961*/ /*Scope*/ 22, /*->10984*/ ++/* 10962*/ OPC_CheckChild0Integer, 2|128,37/*4738*/, ++/* 10965*/ OPC_RecordChild1, // #0 = $vj ++/* 10966*/ OPC_RecordChild2, // #1 = $si5 ++/* 10967*/ OPC_MoveChild2, ++/* 10968*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 10971*/ OPC_CheckPredicate, 29, // Predicate_immSExt5 ++/* 10973*/ OPC_MoveParent, ++/* 10974*/ OPC_EmitConvertToTarget, 1, ++/* 10976*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMAXI_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4738:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vj, (imm:{ *:[i32] })<>:$si5) - Complexity = 12 ++ // Dst: (VMAXI_W:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, (imm:{ *:[i32] }):$si5) ++/* 10984*/ /*Scope*/ 22, /*->11007*/ ++/* 10985*/ OPC_CheckChild0Integer, 126|128,36/*4734*/, ++/* 10988*/ OPC_RecordChild1, // #0 = $vj ++/* 10989*/ OPC_RecordChild2, // #1 = $si5 ++/* 10990*/ OPC_MoveChild2, ++/* 10991*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 10994*/ OPC_CheckPredicate, 29, // Predicate_immSExt5 ++/* 10996*/ OPC_MoveParent, ++/* 10997*/ OPC_EmitConvertToTarget, 1, ++/* 10999*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMAXI_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4734:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj, (imm:{ *:[i32] })<>:$si5) - Complexity = 12 ++ // Dst: (VMAXI_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, (imm:{ *:[i32] }):$si5) ++/* 11007*/ /*Scope*/ 22, /*->11030*/ ++/* 11008*/ OPC_CheckChild0Integer, 12|128,37/*4748*/, ++/* 11011*/ OPC_RecordChild1, // #0 = $vj ++/* 11012*/ OPC_RecordChild2, // #1 = $si5 ++/* 11013*/ OPC_MoveChild2, ++/* 11014*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 11017*/ OPC_CheckPredicate, 29, // Predicate_immSExt5 ++/* 11019*/ OPC_MoveParent, ++/* 11020*/ OPC_EmitConvertToTarget, 1, ++/* 11022*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMINI_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4748:{ *:[iPTR] }, LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$si5) - Complexity = 12 ++ // Dst: (VMINI_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[i32] }):$si5) ++/* 11030*/ /*Scope*/ 22, /*->11053*/ ++/* 11031*/ OPC_CheckChild0Integer, 16|128,37/*4752*/, ++/* 11034*/ OPC_RecordChild1, // #0 = $vj ++/* 11035*/ OPC_RecordChild2, // #1 = $si5 ++/* 11036*/ OPC_MoveChild2, ++/* 11037*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 11040*/ OPC_CheckPredicate, 29, // Predicate_immSExt5 ++/* 11042*/ OPC_MoveParent, ++/* 11043*/ OPC_EmitConvertToTarget, 1, ++/* 11045*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMINI_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4752:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vj, (imm:{ *:[i32] })<>:$si5) - Complexity = 12 ++ // Dst: (VMINI_H:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, (imm:{ *:[i32] }):$si5) ++/* 11053*/ /*Scope*/ 22, /*->11076*/ ++/* 11054*/ OPC_CheckChild0Integer, 18|128,37/*4754*/, ++/* 11057*/ OPC_RecordChild1, // #0 = $vj ++/* 11058*/ OPC_RecordChild2, // #1 = $si5 ++/* 11059*/ OPC_MoveChild2, ++/* 11060*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 11063*/ OPC_CheckPredicate, 29, // Predicate_immSExt5 ++/* 11065*/ OPC_MoveParent, ++/* 11066*/ OPC_EmitConvertToTarget, 1, ++/* 11068*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMINI_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4754:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vj, (imm:{ *:[i32] })<>:$si5) - Complexity = 12 ++ // Dst: (VMINI_W:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, (imm:{ *:[i32] }):$si5) ++/* 11076*/ /*Scope*/ 22, /*->11099*/ ++/* 11077*/ OPC_CheckChild0Integer, 14|128,37/*4750*/, ++/* 11080*/ OPC_RecordChild1, // #0 = $vj ++/* 11081*/ OPC_RecordChild2, // #1 = $si5 ++/* 11082*/ OPC_MoveChild2, ++/* 11083*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 11086*/ OPC_CheckPredicate, 29, // Predicate_immSExt5 ++/* 11088*/ OPC_MoveParent, ++/* 11089*/ OPC_EmitConvertToTarget, 1, ++/* 11091*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMINI_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4750:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj, (imm:{ *:[i32] })<>:$si5) - Complexity = 12 ++ // Dst: (VMINI_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, (imm:{ *:[i32] }):$si5) ++/* 11099*/ /*Scope*/ 22, /*->11122*/ ++/* 11100*/ OPC_CheckChild0Integer, 125|128,36/*4733*/, ++/* 11103*/ OPC_RecordChild1, // #0 = $vj ++/* 11104*/ OPC_RecordChild2, // #1 = $ui5 ++/* 11105*/ OPC_MoveChild2, ++/* 11106*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 11109*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 11111*/ OPC_MoveParent, ++/* 11112*/ OPC_EmitConvertToTarget, 1, ++/* 11114*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMAXI_BU), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4733:{ *:[iPTR] }, LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (VMAXI_BU:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[i32] }):$ui5) ++/* 11122*/ /*Scope*/ 22, /*->11145*/ ++/* 11123*/ OPC_CheckChild0Integer, 1|128,37/*4737*/, ++/* 11126*/ OPC_RecordChild1, // #0 = $vj ++/* 11127*/ OPC_RecordChild2, // #1 = $ui5 ++/* 11128*/ OPC_MoveChild2, ++/* 11129*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 11132*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 11134*/ OPC_MoveParent, ++/* 11135*/ OPC_EmitConvertToTarget, 1, ++/* 11137*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMAXI_HU), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4737:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (VMAXI_HU:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, (imm:{ *:[i32] }):$ui5) ++/* 11145*/ /*Scope*/ 22, /*->11168*/ ++/* 11146*/ OPC_CheckChild0Integer, 3|128,37/*4739*/, ++/* 11149*/ OPC_RecordChild1, // #0 = $vj ++/* 11150*/ OPC_RecordChild2, // #1 = $ui5 ++/* 11151*/ OPC_MoveChild2, ++/* 11152*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 11155*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 11157*/ OPC_MoveParent, ++/* 11158*/ OPC_EmitConvertToTarget, 1, ++/* 11160*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMAXI_WU), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4739:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (VMAXI_WU:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, (imm:{ *:[i32] }):$ui5) ++/* 11168*/ /*Scope*/ 22, /*->11191*/ ++/* 11169*/ OPC_CheckChild0Integer, 127|128,36/*4735*/, ++/* 11172*/ OPC_RecordChild1, // #0 = $vj ++/* 11173*/ OPC_RecordChild2, // #1 = $ui5 ++/* 11174*/ OPC_MoveChild2, ++/* 11175*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 11178*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 11180*/ OPC_MoveParent, ++/* 11181*/ OPC_EmitConvertToTarget, 1, ++/* 11183*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMAXI_DU), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4735:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (VMAXI_DU:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, (imm:{ *:[i32] }):$ui5) ++/* 11191*/ /*Scope*/ 22, /*->11214*/ ++/* 11192*/ OPC_CheckChild0Integer, 90|128,38/*4954*/, ++/* 11195*/ OPC_RecordChild1, // #0 = $vj ++/* 11196*/ OPC_RecordChild2, // #1 = $ui3 ++/* 11197*/ OPC_MoveChild2, ++/* 11198*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 11201*/ OPC_CheckPredicate, 24, // Predicate_immZExt3 ++/* 11203*/ OPC_MoveParent, ++/* 11204*/ OPC_EmitConvertToTarget, 1, ++/* 11206*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRAI_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4954:{ *:[iPTR] }, LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$ui3) - Complexity = 12 ++ // Dst: (VSRAI_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[i32] }):$ui3) ++/* 11214*/ /*Scope*/ 22, /*->11237*/ ++/* 11215*/ OPC_CheckChild0Integer, 92|128,38/*4956*/, ++/* 11218*/ OPC_RecordChild1, // #0 = $vj ++/* 11219*/ OPC_RecordChild2, // #1 = $ui4 ++/* 11220*/ OPC_MoveChild2, ++/* 11221*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 11224*/ OPC_CheckPredicate, 23, // Predicate_immZExt4 ++/* 11226*/ OPC_MoveParent, ++/* 11227*/ OPC_EmitConvertToTarget, 1, ++/* 11229*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRAI_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4956:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vj, (imm:{ *:[i32] })<>:$ui4) - Complexity = 12 ++ // Dst: (VSRAI_H:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, (imm:{ *:[i32] }):$ui4) ++/* 11237*/ /*Scope*/ 22, /*->11260*/ ++/* 11238*/ OPC_CheckChild0Integer, 93|128,38/*4957*/, ++/* 11241*/ OPC_RecordChild1, // #0 = $vj ++/* 11242*/ OPC_RecordChild2, // #1 = $ui5 ++/* 11243*/ OPC_MoveChild2, ++/* 11244*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 11247*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 11249*/ OPC_MoveParent, ++/* 11250*/ OPC_EmitConvertToTarget, 1, ++/* 11252*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRAI_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4957:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (VSRAI_W:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, (imm:{ *:[i32] }):$ui5) ++/* 11260*/ /*Scope*/ 22, /*->11283*/ ++/* 11261*/ OPC_CheckChild0Integer, 91|128,38/*4955*/, ++/* 11264*/ OPC_RecordChild1, // #0 = $vj ++/* 11265*/ OPC_RecordChild2, // #1 = $ui6 ++/* 11266*/ OPC_MoveChild2, ++/* 11267*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 11270*/ OPC_CheckPredicate, 30, // Predicate_immZExt6 ++/* 11272*/ OPC_MoveParent, ++/* 11273*/ OPC_EmitConvertToTarget, 1, ++/* 11275*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRAI_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4955:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj, (imm:{ *:[i32] })<>:$ui6) - Complexity = 12 ++ // Dst: (VSRAI_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, (imm:{ *:[i32] }):$ui6) ++/* 11283*/ /*Scope*/ 24, /*->11308*/ ++/* 11284*/ OPC_CheckChild0Integer, 33|128,38/*4897*/, ++/* 11287*/ OPC_RecordChild1, // #0 = $vd_in ++/* 11288*/ OPC_RecordChild2, // #1 = $vj ++/* 11289*/ OPC_RecordChild3, // #2 = $ui8 ++/* 11290*/ OPC_MoveChild3, ++/* 11291*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 11294*/ OPC_CheckPredicate, 31, // Predicate_immZExt8 ++/* 11296*/ OPC_MoveParent, ++/* 11297*/ OPC_EmitConvertToTarget, 2, ++/* 11299*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSHUF4I_D), 0, ++ MVT::v2i64, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4897:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vd_in, LSX128DOpnd:{ *:[v2i64] }:$vj, (imm:{ *:[i32] })<>:$ui8) - Complexity = 12 ++ // Dst: (VSHUF4I_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vd_in, LSX128DOpnd:{ *:[v2i64] }:$vj, (imm:{ *:[i32] }):$ui8) ++/* 11308*/ /*Scope*/ 22, /*->11331*/ ++/* 11309*/ OPC_CheckChild0Integer, 16|128,35/*4496*/, ++/* 11312*/ OPC_RecordChild1, // #0 = $vj ++/* 11313*/ OPC_RecordChild2, // #1 = $ui5 ++/* 11314*/ OPC_MoveChild2, ++/* 11315*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 11318*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 11320*/ OPC_MoveParent, ++/* 11321*/ OPC_EmitConvertToTarget, 1, ++/* 11323*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBSRL_V), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4496:{ *:[iPTR] }, LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (VBSRL_V:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[i32] }):$ui5) ++/* 11331*/ /*Scope*/ 22, /*->11354*/ ++/* 11332*/ OPC_CheckChild0Integer, 15|128,35/*4495*/, ++/* 11335*/ OPC_RecordChild1, // #0 = $vj ++/* 11336*/ OPC_RecordChild2, // #1 = $ui5 ++/* 11337*/ OPC_MoveChild2, ++/* 11338*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 11341*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 11343*/ OPC_MoveParent, ++/* 11344*/ OPC_EmitConvertToTarget, 1, ++/* 11346*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBSLL_V), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4495:{ *:[iPTR] }, LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (VBSLL_V:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[i32] }):$ui5) ++/* 11354*/ /*Scope*/ 24, /*->11379*/ ++/* 11355*/ OPC_CheckChild0Integer, 18|128,36/*4626*/, ++/* 11358*/ OPC_RecordChild1, // #0 = $vd_in ++/* 11359*/ OPC_RecordChild2, // #1 = $vj ++/* 11360*/ OPC_RecordChild3, // #2 = $ui5 ++/* 11361*/ OPC_MoveChild3, ++/* 11362*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 11365*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 11367*/ OPC_MoveParent, ++/* 11368*/ OPC_EmitConvertToTarget, 2, ++/* 11370*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFRSTPI_B), 0, ++ MVT::v16i8, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4626:{ *:[iPTR] }, LSX128BOpnd:{ *:[v16i8] }:$vd_in, LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (VFRSTPI_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vd_in, LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[i32] }):$ui5) ++/* 11379*/ /*Scope*/ 24, /*->11404*/ ++/* 11380*/ OPC_CheckChild0Integer, 19|128,36/*4627*/, ++/* 11383*/ OPC_RecordChild1, // #0 = $vd_in ++/* 11384*/ OPC_RecordChild2, // #1 = $vj ++/* 11385*/ OPC_RecordChild3, // #2 = $ui5 ++/* 11386*/ OPC_MoveChild3, ++/* 11387*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 11390*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 11392*/ OPC_MoveParent, ++/* 11393*/ OPC_EmitConvertToTarget, 2, ++/* 11395*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFRSTPI_H), 0, ++ MVT::v8i16, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4627:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vd_in, LSX128HOpnd:{ *:[v8i16] }:$vj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (VFRSTPI_H:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vd_in, LSX128HOpnd:{ *:[v8i16] }:$vj, (imm:{ *:[i32] }):$ui5) ++/* 11404*/ /*Scope*/ 22, /*->11427*/ ++/* 11405*/ OPC_CheckChild0Integer, 66|128,38/*4930*/, ++/* 11408*/ OPC_RecordChild1, // #0 = $vj ++/* 11409*/ OPC_RecordChild2, // #1 = $ui3 ++/* 11410*/ OPC_MoveChild2, ++/* 11411*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 11414*/ OPC_CheckPredicate, 24, // Predicate_immZExt3 ++/* 11416*/ OPC_MoveParent, ++/* 11417*/ OPC_EmitConvertToTarget, 1, ++/* 11419*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLLWIL_H_B), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4930:{ *:[iPTR] }, LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$ui3) - Complexity = 12 ++ // Dst: (VSLLWIL_H_B:{ *:[v8i16] } LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[i32] }):$ui3) ++/* 11427*/ /*Scope*/ 22, /*->11450*/ ++/* 11428*/ OPC_CheckChild0Integer, 68|128,38/*4932*/, ++/* 11431*/ OPC_RecordChild1, // #0 = $vj ++/* 11432*/ OPC_RecordChild2, // #1 = $ui4 ++/* 11433*/ OPC_MoveChild2, ++/* 11434*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 11437*/ OPC_CheckPredicate, 23, // Predicate_immZExt4 ++/* 11439*/ OPC_MoveParent, ++/* 11440*/ OPC_EmitConvertToTarget, 1, ++/* 11442*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLLWIL_W_H), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4932:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vj, (imm:{ *:[i32] })<>:$ui4) - Complexity = 12 ++ // Dst: (VSLLWIL_W_H:{ *:[v4i32] } LSX128HOpnd:{ *:[v8i16] }:$vj, (imm:{ *:[i32] }):$ui4) ++/* 11450*/ /*Scope*/ 22, /*->11473*/ ++/* 11451*/ OPC_CheckChild0Integer, 64|128,38/*4928*/, ++/* 11454*/ OPC_RecordChild1, // #0 = $vj ++/* 11455*/ OPC_RecordChild2, // #1 = $ui5 ++/* 11456*/ OPC_MoveChild2, ++/* 11457*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 11460*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 11462*/ OPC_MoveParent, ++/* 11463*/ OPC_EmitConvertToTarget, 1, ++/* 11465*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLLWIL_D_W), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4928:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (VSLLWIL_D_W:{ *:[v2i64] } LSX128WOpnd:{ *:[v4i32] }:$vj, (imm:{ *:[i32] }):$ui5) ++/* 11473*/ /*Scope*/ 22, /*->11496*/ ++/* 11474*/ OPC_CheckChild0Integer, 67|128,38/*4931*/, ++/* 11477*/ OPC_RecordChild1, // #0 = $vj ++/* 11478*/ OPC_RecordChild2, // #1 = $ui3 ++/* 11479*/ OPC_MoveChild2, ++/* 11480*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 11483*/ OPC_CheckPredicate, 24, // Predicate_immZExt3 ++/* 11485*/ OPC_MoveParent, ++/* 11486*/ OPC_EmitConvertToTarget, 1, ++/* 11488*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLLWIL_HU_BU), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4931:{ *:[iPTR] }, LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$ui3) - Complexity = 12 ++ // Dst: (VSLLWIL_HU_BU:{ *:[v8i16] } LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[i32] }):$ui3) ++/* 11496*/ /*Scope*/ 22, /*->11519*/ ++/* 11497*/ OPC_CheckChild0Integer, 69|128,38/*4933*/, ++/* 11500*/ OPC_RecordChild1, // #0 = $vj ++/* 11501*/ OPC_RecordChild2, // #1 = $ui4 ++/* 11502*/ OPC_MoveChild2, ++/* 11503*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 11506*/ OPC_CheckPredicate, 23, // Predicate_immZExt4 ++/* 11508*/ OPC_MoveParent, ++/* 11509*/ OPC_EmitConvertToTarget, 1, ++/* 11511*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLLWIL_WU_HU), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4933:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vj, (imm:{ *:[i32] })<>:$ui4) - Complexity = 12 ++ // Dst: (VSLLWIL_WU_HU:{ *:[v4i32] } LSX128HOpnd:{ *:[v8i16] }:$vj, (imm:{ *:[i32] }):$ui4) ++/* 11519*/ /*Scope*/ 22, /*->11542*/ ++/* 11520*/ OPC_CheckChild0Integer, 65|128,38/*4929*/, ++/* 11523*/ OPC_RecordChild1, // #0 = $vj ++/* 11524*/ OPC_RecordChild2, // #1 = $ui5 ++/* 11525*/ OPC_MoveChild2, ++/* 11526*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 11529*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 11531*/ OPC_MoveParent, ++/* 11532*/ OPC_EmitConvertToTarget, 1, ++/* 11534*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLLWIL_DU_WU), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4929:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (VSLLWIL_DU_WU:{ *:[v2i64] } LSX128WOpnd:{ *:[v4i32] }:$vj, (imm:{ *:[i32] }):$ui5) ++/* 11542*/ /*Scope*/ 22, /*->11565*/ ++/* 11543*/ OPC_CheckChild0Integer, 121|128,34/*4473*/, ++/* 11546*/ OPC_RecordChild1, // #0 = $vj ++/* 11547*/ OPC_RecordChild2, // #1 = $ui3 ++/* 11548*/ OPC_MoveChild2, ++/* 11549*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 11552*/ OPC_CheckPredicate, 24, // Predicate_immZExt3 ++/* 11554*/ OPC_MoveParent, ++/* 11555*/ OPC_EmitConvertToTarget, 1, ++/* 11557*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLRI_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4473:{ *:[iPTR] }, LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$ui3) - Complexity = 12 ++ // Dst: (VBITCLRI_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[i32] }):$ui3) ++/* 11565*/ /*Scope*/ 22, /*->11588*/ ++/* 11566*/ OPC_CheckChild0Integer, 123|128,34/*4475*/, ++/* 11569*/ OPC_RecordChild1, // #0 = $vj ++/* 11570*/ OPC_RecordChild2, // #1 = $ui4 ++/* 11571*/ OPC_MoveChild2, ++/* 11572*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 11575*/ OPC_CheckPredicate, 23, // Predicate_immZExt4 ++/* 11577*/ OPC_MoveParent, ++/* 11578*/ OPC_EmitConvertToTarget, 1, ++/* 11580*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLRI_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4475:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vj, (imm:{ *:[i32] })<>:$ui4) - Complexity = 12 ++ // Dst: (VBITCLRI_H:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, (imm:{ *:[i32] }):$ui4) ++/* 11588*/ /*Scope*/ 22, /*->11611*/ ++/* 11589*/ OPC_CheckChild0Integer, 124|128,34/*4476*/, ++/* 11592*/ OPC_RecordChild1, // #0 = $vj ++/* 11593*/ OPC_RecordChild2, // #1 = $ui5 ++/* 11594*/ OPC_MoveChild2, ++/* 11595*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 11598*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 11600*/ OPC_MoveParent, ++/* 11601*/ OPC_EmitConvertToTarget, 1, ++/* 11603*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLRI_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4476:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (VBITCLRI_W:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, (imm:{ *:[i32] }):$ui5) ++/* 11611*/ /*Scope*/ 22, /*->11634*/ ++/* 11612*/ OPC_CheckChild0Integer, 122|128,34/*4474*/, ++/* 11615*/ OPC_RecordChild1, // #0 = $vj ++/* 11616*/ OPC_RecordChild2, // #1 = $ui6 ++/* 11617*/ OPC_MoveChild2, ++/* 11618*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 11621*/ OPC_CheckPredicate, 30, // Predicate_immZExt6 ++/* 11623*/ OPC_MoveParent, ++/* 11624*/ OPC_EmitConvertToTarget, 1, ++/* 11626*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLRI_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4474:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj, (imm:{ *:[i32] })<>:$ui6) - Complexity = 12 ++ // Dst: (VBITCLRI_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, (imm:{ *:[i32] }):$ui6) ++/* 11634*/ /*Scope*/ 22, /*->11657*/ ++/* 11635*/ OPC_CheckChild0Integer, 11|128,35/*4491*/, ++/* 11638*/ OPC_RecordChild1, // #0 = $vj ++/* 11639*/ OPC_RecordChild2, // #1 = $ui3 ++/* 11640*/ OPC_MoveChild2, ++/* 11641*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 11644*/ OPC_CheckPredicate, 24, // Predicate_immZExt3 ++/* 11646*/ OPC_MoveParent, ++/* 11647*/ OPC_EmitConvertToTarget, 1, ++/* 11649*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITSETI_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4491:{ *:[iPTR] }, LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$ui3) - Complexity = 12 ++ // Dst: (VBITSETI_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[i32] }):$ui3) ++/* 11657*/ /*Scope*/ 22, /*->11680*/ ++/* 11658*/ OPC_CheckChild0Integer, 13|128,35/*4493*/, ++/* 11661*/ OPC_RecordChild1, // #0 = $vj ++/* 11662*/ OPC_RecordChild2, // #1 = $ui4 ++/* 11663*/ OPC_MoveChild2, ++/* 11664*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 11667*/ OPC_CheckPredicate, 23, // Predicate_immZExt4 ++/* 11669*/ OPC_MoveParent, ++/* 11670*/ OPC_EmitConvertToTarget, 1, ++/* 11672*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITSETI_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4493:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vj, (imm:{ *:[i32] })<>:$ui4) - Complexity = 12 ++ // Dst: (VBITSETI_H:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, (imm:{ *:[i32] }):$ui4) ++/* 11680*/ /*Scope*/ 22, /*->11703*/ ++/* 11681*/ OPC_CheckChild0Integer, 14|128,35/*4494*/, ++/* 11684*/ OPC_RecordChild1, // #0 = $vj ++/* 11685*/ OPC_RecordChild2, // #1 = $ui5 ++/* 11686*/ OPC_MoveChild2, ++/* 11687*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 11690*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 11692*/ OPC_MoveParent, ++/* 11693*/ OPC_EmitConvertToTarget, 1, ++/* 11695*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITSETI_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4494:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (VBITSETI_W:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, (imm:{ *:[i32] }):$ui5) ++/* 11703*/ /*Scope*/ 22, /*->11726*/ ++/* 11704*/ OPC_CheckChild0Integer, 12|128,35/*4492*/, ++/* 11707*/ OPC_RecordChild1, // #0 = $vj ++/* 11708*/ OPC_RecordChild2, // #1 = $ui6 ++/* 11709*/ OPC_MoveChild2, ++/* 11710*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 11713*/ OPC_CheckPredicate, 30, // Predicate_immZExt6 ++/* 11715*/ OPC_MoveParent, ++/* 11716*/ OPC_EmitConvertToTarget, 1, ++/* 11718*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITSETI_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4492:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj, (imm:{ *:[i32] })<>:$ui6) - Complexity = 12 ++ // Dst: (VBITSETI_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, (imm:{ *:[i32] }):$ui6) ++/* 11726*/ /*Scope*/ 22, /*->11749*/ ++/* 11727*/ OPC_CheckChild0Integer, 1|128,35/*4481*/, ++/* 11730*/ OPC_RecordChild1, // #0 = $vj ++/* 11731*/ OPC_RecordChild2, // #1 = $ui3 ++/* 11732*/ OPC_MoveChild2, ++/* 11733*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 11736*/ OPC_CheckPredicate, 24, // Predicate_immZExt3 ++/* 11738*/ OPC_MoveParent, ++/* 11739*/ OPC_EmitConvertToTarget, 1, ++/* 11741*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITREVI_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4481:{ *:[iPTR] }, LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$ui3) - Complexity = 12 ++ // Dst: (VBITREVI_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[i32] }):$ui3) ++/* 11749*/ /*Scope*/ 22, /*->11772*/ ++/* 11750*/ OPC_CheckChild0Integer, 3|128,35/*4483*/, ++/* 11753*/ OPC_RecordChild1, // #0 = $vj ++/* 11754*/ OPC_RecordChild2, // #1 = $ui4 ++/* 11755*/ OPC_MoveChild2, ++/* 11756*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 11759*/ OPC_CheckPredicate, 23, // Predicate_immZExt4 ++/* 11761*/ OPC_MoveParent, ++/* 11762*/ OPC_EmitConvertToTarget, 1, ++/* 11764*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITREVI_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4483:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vj, (imm:{ *:[i32] })<>:$ui4) - Complexity = 12 ++ // Dst: (VBITREVI_H:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, (imm:{ *:[i32] }):$ui4) ++/* 11772*/ /*Scope*/ 22, /*->11795*/ ++/* 11773*/ OPC_CheckChild0Integer, 4|128,35/*4484*/, ++/* 11776*/ OPC_RecordChild1, // #0 = $vj ++/* 11777*/ OPC_RecordChild2, // #1 = $ui5 ++/* 11778*/ OPC_MoveChild2, ++/* 11779*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 11782*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 11784*/ OPC_MoveParent, ++/* 11785*/ OPC_EmitConvertToTarget, 1, ++/* 11787*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITREVI_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4484:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (VBITREVI_W:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, (imm:{ *:[i32] }):$ui5) ++/* 11795*/ /*Scope*/ 22, /*->11818*/ ++/* 11796*/ OPC_CheckChild0Integer, 2|128,35/*4482*/, ++/* 11799*/ OPC_RecordChild1, // #0 = $vj ++/* 11800*/ OPC_RecordChild2, // #1 = $ui6 ++/* 11801*/ OPC_MoveChild2, ++/* 11802*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 11805*/ OPC_CheckPredicate, 30, // Predicate_immZExt6 ++/* 11807*/ OPC_MoveParent, ++/* 11808*/ OPC_EmitConvertToTarget, 1, ++/* 11810*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITREVI_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4482:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj, (imm:{ *:[i32] })<>:$ui6) - Complexity = 12 ++ // Dst: (VBITREVI_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, (imm:{ *:[i32] }):$ui6) ++/* 11818*/ /*Scope*/ 24, /*->11843*/ ++/* 11819*/ OPC_CheckChild0Integer, 62|128,39/*5054*/, ++/* 11822*/ OPC_RecordChild1, // #0 = $vd_in ++/* 11823*/ OPC_RecordChild2, // #1 = $vj ++/* 11824*/ OPC_RecordChild3, // #2 = $ui4 ++/* 11825*/ OPC_MoveChild3, ++/* 11826*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 11829*/ OPC_CheckPredicate, 23, // Predicate_immZExt4 ++/* 11831*/ OPC_MoveParent, ++/* 11832*/ OPC_EmitConvertToTarget, 2, ++/* 11834*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRLRNI_B_H), 0, ++ MVT::v16i8, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 5054:{ *:[iPTR] }, LSX128BOpnd:{ *:[v16i8] }:$vd_in, LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$ui4) - Complexity = 12 ++ // Dst: (VSSRLRNI_B_H:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vd_in, LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[i32] }):$ui4) ++/* 11843*/ /*Scope*/ 24, /*->11868*/ ++/* 11844*/ OPC_CheckChild0Integer, 66|128,39/*5058*/, ++/* 11847*/ OPC_RecordChild1, // #0 = $vd_in ++/* 11848*/ OPC_RecordChild2, // #1 = $vj ++/* 11849*/ OPC_RecordChild3, // #2 = $ui5 ++/* 11850*/ OPC_MoveChild3, ++/* 11851*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 11854*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 11856*/ OPC_MoveParent, ++/* 11857*/ OPC_EmitConvertToTarget, 2, ++/* 11859*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRLRNI_H_W), 0, ++ MVT::v8i16, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 5058:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vd_in, LSX128HOpnd:{ *:[v8i16] }:$vj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (VSSRLRNI_H_W:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vd_in, LSX128HOpnd:{ *:[v8i16] }:$vj, (imm:{ *:[i32] }):$ui5) ++/* 11868*/ /*Scope*/ 24, /*->11893*/ ++/* 11869*/ OPC_CheckChild0Integer, 68|128,39/*5060*/, ++/* 11872*/ OPC_RecordChild1, // #0 = $vd_in ++/* 11873*/ OPC_RecordChild2, // #1 = $vj ++/* 11874*/ OPC_RecordChild3, // #2 = $ui6 ++/* 11875*/ OPC_MoveChild3, ++/* 11876*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 11879*/ OPC_CheckPredicate, 30, // Predicate_immZExt6 ++/* 11881*/ OPC_MoveParent, ++/* 11882*/ OPC_EmitConvertToTarget, 2, ++/* 11884*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRLRNI_W_D), 0, ++ MVT::v4i32, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5060:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vd_in, LSX128WOpnd:{ *:[v4i32] }:$vj, (imm:{ *:[i32] })<>:$ui6) - Complexity = 12 ++ // Dst: (VSSRLRNI_W_D:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vd_in, LSX128WOpnd:{ *:[v4i32] }:$vj, (imm:{ *:[i32] }):$ui6) ++/* 11893*/ /*Scope*/ 24, /*->11918*/ ++/* 11894*/ OPC_CheckChild0Integer, 64|128,39/*5056*/, ++/* 11897*/ OPC_RecordChild1, // #0 = $vd_in ++/* 11898*/ OPC_RecordChild2, // #1 = $vj ++/* 11899*/ OPC_RecordChild3, // #2 = $ui7 ++/* 11900*/ OPC_MoveChild3, ++/* 11901*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 11904*/ OPC_CheckPredicate, 32, // Predicate_immZExt7 ++/* 11906*/ OPC_MoveParent, ++/* 11907*/ OPC_EmitConvertToTarget, 2, ++/* 11909*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRLRNI_D_Q), 0, ++ MVT::v2i64, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5056:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vd_in, LSX128DOpnd:{ *:[v2i64] }:$vj, (imm:{ *:[i32] })<>:$ui7) - Complexity = 12 ++ // Dst: (VSSRLRNI_D_Q:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vd_in, LSX128DOpnd:{ *:[v2i64] }:$vj, (imm:{ *:[i32] }):$ui7) ++/* 11918*/ /*Scope*/ 24, /*->11943*/ ++/* 11919*/ OPC_CheckChild0Integer, 97|128,38/*4961*/, ++/* 11922*/ OPC_RecordChild1, // #0 = $vd_in ++/* 11923*/ OPC_RecordChild2, // #1 = $vj ++/* 11924*/ OPC_RecordChild3, // #2 = $ui4 ++/* 11925*/ OPC_MoveChild3, ++/* 11926*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 11929*/ OPC_CheckPredicate, 23, // Predicate_immZExt4 ++/* 11931*/ OPC_MoveParent, ++/* 11932*/ OPC_EmitConvertToTarget, 2, ++/* 11934*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRANI_B_H), 0, ++ MVT::v16i8, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4961:{ *:[iPTR] }, LSX128BOpnd:{ *:[v16i8] }:$vd_in, LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$ui4) - Complexity = 12 ++ // Dst: (VSRANI_B_H:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vd_in, LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[i32] }):$ui4) ++/* 11943*/ /*Scope*/ 24, /*->11968*/ ++/* 11944*/ OPC_CheckChild0Integer, 99|128,38/*4963*/, ++/* 11947*/ OPC_RecordChild1, // #0 = $vd_in ++/* 11948*/ OPC_RecordChild2, // #1 = $vj ++/* 11949*/ OPC_RecordChild3, // #2 = $ui5 ++/* 11950*/ OPC_MoveChild3, ++/* 11951*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 11954*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 11956*/ OPC_MoveParent, ++/* 11957*/ OPC_EmitConvertToTarget, 2, ++/* 11959*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRANI_H_W), 0, ++ MVT::v8i16, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4963:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vd_in, LSX128HOpnd:{ *:[v8i16] }:$vj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (VSRANI_H_W:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vd_in, LSX128HOpnd:{ *:[v8i16] }:$vj, (imm:{ *:[i32] }):$ui5) ++/* 11968*/ /*Scope*/ 24, /*->11993*/ ++/* 11969*/ OPC_CheckChild0Integer, 100|128,38/*4964*/, ++/* 11972*/ OPC_RecordChild1, // #0 = $vd_in ++/* 11973*/ OPC_RecordChild2, // #1 = $vj ++/* 11974*/ OPC_RecordChild3, // #2 = $ui6 ++/* 11975*/ OPC_MoveChild3, ++/* 11976*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 11979*/ OPC_CheckPredicate, 30, // Predicate_immZExt6 ++/* 11981*/ OPC_MoveParent, ++/* 11982*/ OPC_EmitConvertToTarget, 2, ++/* 11984*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRANI_W_D), 0, ++ MVT::v4i32, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4964:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vd_in, LSX128WOpnd:{ *:[v4i32] }:$vj, (imm:{ *:[i32] })<>:$ui6) - Complexity = 12 ++ // Dst: (VSRANI_W_D:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vd_in, LSX128WOpnd:{ *:[v4i32] }:$vj, (imm:{ *:[i32] }):$ui6) ++/* 11993*/ /*Scope*/ 24, /*->12018*/ ++/* 11994*/ OPC_CheckChild0Integer, 98|128,38/*4962*/, ++/* 11997*/ OPC_RecordChild1, // #0 = $vd_in ++/* 11998*/ OPC_RecordChild2, // #1 = $vj ++/* 11999*/ OPC_RecordChild3, // #2 = $ui7 ++/* 12000*/ OPC_MoveChild3, ++/* 12001*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 12004*/ OPC_CheckPredicate, 32, // Predicate_immZExt7 ++/* 12006*/ OPC_MoveParent, ++/* 12007*/ OPC_EmitConvertToTarget, 2, ++/* 12009*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRANI_D_Q), 0, ++ MVT::v2i64, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4962:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vd_in, LSX128DOpnd:{ *:[v2i64] }:$vj, (imm:{ *:[i32] })<>:$ui7) - Complexity = 12 ++ // Dst: (VSRANI_D_Q:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vd_in, LSX128DOpnd:{ *:[v2i64] }:$vj, (imm:{ *:[i32] }):$ui7) ++/* 12018*/ /*Scope*/ 24, /*->12043*/ ++/* 12019*/ OPC_CheckChild0Integer, 43|128,35/*4523*/, ++/* 12022*/ OPC_RecordChild1, // #0 = $vd_in ++/* 12023*/ OPC_RecordChild2, // #1 = $vj ++/* 12024*/ OPC_RecordChild3, // #2 = $ui8 ++/* 12025*/ OPC_MoveChild3, ++/* 12026*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 12029*/ OPC_CheckPredicate, 31, // Predicate_immZExt8 ++/* 12031*/ OPC_MoveParent, ++/* 12032*/ OPC_EmitConvertToTarget, 2, ++/* 12034*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VEXTRINS_B), 0, ++ MVT::v16i8, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4523:{ *:[iPTR] }, LSX128BOpnd:{ *:[v16i8] }:$vd_in, LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$ui8) - Complexity = 12 ++ // Dst: (VEXTRINS_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vd_in, LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[i32] }):$ui8) ++/* 12043*/ /*Scope*/ 24, /*->12068*/ ++/* 12044*/ OPC_CheckChild0Integer, 45|128,35/*4525*/, ++/* 12047*/ OPC_RecordChild1, // #0 = $vd_in ++/* 12048*/ OPC_RecordChild2, // #1 = $vj ++/* 12049*/ OPC_RecordChild3, // #2 = $ui8 ++/* 12050*/ OPC_MoveChild3, ++/* 12051*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 12054*/ OPC_CheckPredicate, 31, // Predicate_immZExt8 ++/* 12056*/ OPC_MoveParent, ++/* 12057*/ OPC_EmitConvertToTarget, 2, ++/* 12059*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VEXTRINS_H), 0, ++ MVT::v8i16, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4525:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vd_in, LSX128HOpnd:{ *:[v8i16] }:$vj, (imm:{ *:[i32] })<>:$ui8) - Complexity = 12 ++ // Dst: (VEXTRINS_H:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vd_in, LSX128HOpnd:{ *:[v8i16] }:$vj, (imm:{ *:[i32] }):$ui8) ++/* 12068*/ /*Scope*/ 24, /*->12093*/ ++/* 12069*/ OPC_CheckChild0Integer, 46|128,35/*4526*/, ++/* 12072*/ OPC_RecordChild1, // #0 = $vd_in ++/* 12073*/ OPC_RecordChild2, // #1 = $vj ++/* 12074*/ OPC_RecordChild3, // #2 = $ui8 ++/* 12075*/ OPC_MoveChild3, ++/* 12076*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 12079*/ OPC_CheckPredicate, 31, // Predicate_immZExt8 ++/* 12081*/ OPC_MoveParent, ++/* 12082*/ OPC_EmitConvertToTarget, 2, ++/* 12084*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VEXTRINS_W), 0, ++ MVT::v4i32, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4526:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vd_in, LSX128WOpnd:{ *:[v4i32] }:$vj, (imm:{ *:[i32] })<>:$ui8) - Complexity = 12 ++ // Dst: (VEXTRINS_W:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vd_in, LSX128WOpnd:{ *:[v4i32] }:$vj, (imm:{ *:[i32] }):$ui8) ++/* 12093*/ /*Scope*/ 24, /*->12118*/ ++/* 12094*/ OPC_CheckChild0Integer, 44|128,35/*4524*/, ++/* 12097*/ OPC_RecordChild1, // #0 = $vd_in ++/* 12098*/ OPC_RecordChild2, // #1 = $vj ++/* 12099*/ OPC_RecordChild3, // #2 = $ui8 ++/* 12100*/ OPC_MoveChild3, ++/* 12101*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 12104*/ OPC_CheckPredicate, 31, // Predicate_immZExt8 ++/* 12106*/ OPC_MoveParent, ++/* 12107*/ OPC_EmitConvertToTarget, 2, ++/* 12109*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VEXTRINS_D), 0, ++ MVT::v2i64, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4524:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vd_in, LSX128DOpnd:{ *:[v2i64] }:$vj, (imm:{ *:[i32] })<>:$ui8) - Complexity = 12 ++ // Dst: (VEXTRINS_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vd_in, LSX128DOpnd:{ *:[v2i64] }:$vj, (imm:{ *:[i32] }):$ui8) ++/* 12118*/ /*Scope*/ 24, /*->12143*/ ++/* 12119*/ OPC_CheckChild0Integer, 6|128,35/*4486*/, ++/* 12122*/ OPC_RecordChild1, // #0 = $vd_in ++/* 12123*/ OPC_RecordChild2, // #1 = $vj ++/* 12124*/ OPC_RecordChild3, // #2 = $ui8 ++/* 12125*/ OPC_MoveChild3, ++/* 12126*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 12129*/ OPC_CheckPredicate, 31, // Predicate_immZExt8 ++/* 12131*/ OPC_MoveParent, ++/* 12132*/ OPC_EmitConvertToTarget, 2, ++/* 12134*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITSELI_B), 0, ++ MVT::v16i8, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4486:{ *:[iPTR] }, LSX128BOpnd:{ *:[v16i8] }:$vd_in, LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$ui8) - Complexity = 12 ++ // Dst: (VBITSELI_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vd_in, LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[i32] }):$ui8) ++/* 12143*/ /*Scope*/ 22, /*->12166*/ ++/* 12144*/ OPC_CheckChild0Integer, 99|128,34/*4451*/, ++/* 12147*/ OPC_RecordChild1, // #0 = $vj ++/* 12148*/ OPC_RecordChild2, // #1 = $ui8 ++/* 12149*/ OPC_MoveChild2, ++/* 12150*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 12153*/ OPC_CheckPredicate, 31, // Predicate_immZExt8 ++/* 12155*/ OPC_MoveParent, ++/* 12156*/ OPC_EmitConvertToTarget, 1, ++/* 12158*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VANDI_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4451:{ *:[iPTR] }, LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$ui8) - Complexity = 12 ++ // Dst: (VANDI_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[i32] }):$ui8) ++/* 12166*/ /*Scope*/ 22, /*->12189*/ ++/* 12167*/ OPC_CheckChild0Integer, 81|128,37/*4817*/, ++/* 12170*/ OPC_RecordChild1, // #0 = $vj ++/* 12171*/ OPC_RecordChild2, // #1 = $ui8 ++/* 12172*/ OPC_MoveChild2, ++/* 12173*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 12176*/ OPC_CheckPredicate, 31, // Predicate_immZExt8 ++/* 12178*/ OPC_MoveParent, ++/* 12179*/ OPC_EmitConvertToTarget, 1, ++/* 12181*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VORI_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4817:{ *:[iPTR] }, LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$ui8) - Complexity = 12 ++ // Dst: (VORI_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[i32] }):$ui8) ++/* 12189*/ /*Scope*/ 22, /*->12212*/ ++/* 12190*/ OPC_CheckChild0Integer, 110|128,39/*5102*/, ++/* 12193*/ OPC_RecordChild1, // #0 = $vj ++/* 12194*/ OPC_RecordChild2, // #1 = $ui8 ++/* 12195*/ OPC_MoveChild2, ++/* 12196*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 12199*/ OPC_CheckPredicate, 31, // Predicate_immZExt8 ++/* 12201*/ OPC_MoveParent, ++/* 12202*/ OPC_EmitConvertToTarget, 1, ++/* 12204*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VXORI_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 5102:{ *:[iPTR] }, LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$ui8) - Complexity = 12 ++ // Dst: (VXORI_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[i32] }):$ui8) ++/* 12212*/ /*Scope*/ 22, /*->12235*/ ++/* 12213*/ OPC_CheckChild0Integer, 79|128,37/*4815*/, ++/* 12216*/ OPC_RecordChild1, // #0 = $vj ++/* 12217*/ OPC_RecordChild2, // #1 = $ui8 ++/* 12218*/ OPC_MoveChild2, ++/* 12219*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 12222*/ OPC_CheckPredicate, 31, // Predicate_immZExt8 ++/* 12224*/ OPC_MoveParent, ++/* 12225*/ OPC_EmitConvertToTarget, 1, ++/* 12227*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VNORI_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4815:{ *:[iPTR] }, LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$ui8) - Complexity = 12 ++ // Dst: (VNORI_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[i32] }):$ui8) ++/* 12235*/ /*Scope*/ 20, /*->12256*/ ++/* 12236*/ OPC_CheckChild0Integer, 82|128,36/*4690*/, ++/* 12239*/ OPC_RecordChild1, // #0 = $i13 ++/* 12240*/ OPC_MoveChild1, ++/* 12241*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 12244*/ OPC_CheckPredicate, 33, // Predicate_simm13 ++/* 12246*/ OPC_MoveParent, ++/* 12247*/ OPC_EmitConvertToTarget, 0, ++/* 12249*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VLDI), 0, ++ MVT::v2i64, 1/*#Ops*/, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4690:{ *:[iPTR] }, (imm:{ *:[i32] })<>:$i13) - Complexity = 12 ++ // Dst: (VLDI:{ *:[v2i64] } (imm:{ *:[i32] }):$i13) ++/* 12256*/ /*Scope*/ 24, /*->12281*/ ++/* 12257*/ OPC_CheckChild0Integer, 95|128,37/*4831*/, ++/* 12260*/ OPC_RecordChild1, // #0 = $vd_in ++/* 12261*/ OPC_RecordChild2, // #1 = $vj ++/* 12262*/ OPC_RecordChild3, // #2 = $ui8 ++/* 12263*/ OPC_MoveChild3, ++/* 12264*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 12267*/ OPC_CheckPredicate, 31, // Predicate_immZExt8 ++/* 12269*/ OPC_MoveParent, ++/* 12270*/ OPC_EmitConvertToTarget, 2, ++/* 12272*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VPERMI_W), 0, ++ MVT::v4i32, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4831:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vd_in, LSX128WOpnd:{ *:[v4i32] }:$vj, (imm:{ *:[i32] })<>:$ui8) - Complexity = 12 ++ // Dst: (VPERMI_W:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vd_in, LSX128WOpnd:{ *:[v4i32] }:$vj, (imm:{ *:[i32] }):$ui8) ++/* 12281*/ /*Scope*/ 24, /*->12306*/ ++/* 12282*/ OPC_CheckChild0Integer, 7|128,39/*4999*/, ++/* 12285*/ OPC_RecordChild1, // #0 = $vj ++/* 12286*/ OPC_RecordChild2, // #1 = $ui3 ++/* 12287*/ OPC_MoveChild2, ++/* 12288*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 12291*/ OPC_CheckPredicate, 24, // Predicate_immZExt3 ++/* 12293*/ OPC_MoveParent, ++/* 12294*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 12296*/ OPC_EmitConvertToTarget, 1, ++/* 12298*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRLRI_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4999:{ *:[iPTR] }, LSX128B:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$ui3) - Complexity = 12 ++ // Dst: (VSRLRI_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$ui3) ++/* 12306*/ /*Scope*/ 24, /*->12331*/ ++/* 12307*/ OPC_CheckChild0Integer, 9|128,39/*5001*/, ++/* 12310*/ OPC_RecordChild1, // #0 = $vj ++/* 12311*/ OPC_RecordChild2, // #1 = $ui4 ++/* 12312*/ OPC_MoveChild2, ++/* 12313*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 12316*/ OPC_CheckPredicate, 23, // Predicate_immZExt4 ++/* 12318*/ OPC_MoveParent, ++/* 12319*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 12321*/ OPC_EmitConvertToTarget, 1, ++/* 12323*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRLRI_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 5001:{ *:[iPTR] }, LSX128H:{ *:[v8i16] }:$vj, (imm:{ *:[i32] })<>:$ui4) - Complexity = 12 ++ // Dst: (VSRLRI_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vj, (imm:{ *:[i32] })<>:$ui4) ++/* 12331*/ /*Scope*/ 24, /*->12356*/ ++/* 12332*/ OPC_CheckChild0Integer, 10|128,39/*5002*/, ++/* 12335*/ OPC_RecordChild1, // #0 = $vj ++/* 12336*/ OPC_RecordChild2, // #1 = $ui5 ++/* 12337*/ OPC_MoveChild2, ++/* 12338*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 12341*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 12343*/ OPC_MoveParent, ++/* 12344*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 12346*/ OPC_EmitConvertToTarget, 1, ++/* 12348*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRLRI_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5002:{ *:[iPTR] }, LSX128W:{ *:[v4i32] }:$vj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (VSRLRI_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vj, (imm:{ *:[i32] })<>:$ui5) ++/* 12356*/ /*Scope*/ 24, /*->12381*/ ++/* 12357*/ OPC_CheckChild0Integer, 8|128,39/*5000*/, ++/* 12360*/ OPC_RecordChild1, // #0 = $vj ++/* 12361*/ OPC_RecordChild2, // #1 = $ui6 ++/* 12362*/ OPC_MoveChild2, ++/* 12363*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 12366*/ OPC_CheckPredicate, 30, // Predicate_immZExt6 ++/* 12368*/ OPC_MoveParent, ++/* 12369*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 12371*/ OPC_EmitConvertToTarget, 1, ++/* 12373*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRLRI_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5000:{ *:[iPTR] }, LSX128D:{ *:[v2i64] }:$vj, (imm:{ *:[i32] })<>:$ui6) - Complexity = 12 ++ // Dst: (VSRLRI_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vj, (imm:{ *:[i32] })<>:$ui6) ++/* 12381*/ /*Scope*/ 24, /*->12406*/ ++/* 12382*/ OPC_CheckChild0Integer, 105|128,38/*4969*/, ++/* 12385*/ OPC_RecordChild1, // #0 = $vj ++/* 12386*/ OPC_RecordChild2, // #1 = $ui3 ++/* 12387*/ OPC_MoveChild2, ++/* 12388*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 12391*/ OPC_CheckPredicate, 24, // Predicate_immZExt3 ++/* 12393*/ OPC_MoveParent, ++/* 12394*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 12396*/ OPC_EmitConvertToTarget, 1, ++/* 12398*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRARI_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4969:{ *:[iPTR] }, LSX128B:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$ui3) - Complexity = 12 ++ // Dst: (VSRARI_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$ui3) ++/* 12406*/ /*Scope*/ 24, /*->12431*/ ++/* 12407*/ OPC_CheckChild0Integer, 107|128,38/*4971*/, ++/* 12410*/ OPC_RecordChild1, // #0 = $vj ++/* 12411*/ OPC_RecordChild2, // #1 = $ui4 ++/* 12412*/ OPC_MoveChild2, ++/* 12413*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 12416*/ OPC_CheckPredicate, 23, // Predicate_immZExt4 ++/* 12418*/ OPC_MoveParent, ++/* 12419*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 12421*/ OPC_EmitConvertToTarget, 1, ++/* 12423*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRARI_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4971:{ *:[iPTR] }, LSX128H:{ *:[v8i16] }:$vj, (imm:{ *:[i32] })<>:$ui4) - Complexity = 12 ++ // Dst: (VSRARI_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vj, (imm:{ *:[i32] })<>:$ui4) ++/* 12431*/ /*Scope*/ 24, /*->12456*/ ++/* 12432*/ OPC_CheckChild0Integer, 108|128,38/*4972*/, ++/* 12435*/ OPC_RecordChild1, // #0 = $vj ++/* 12436*/ OPC_RecordChild2, // #1 = $ui5 ++/* 12437*/ OPC_MoveChild2, ++/* 12438*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 12441*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 12443*/ OPC_MoveParent, ++/* 12444*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 12446*/ OPC_EmitConvertToTarget, 1, ++/* 12448*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRARI_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4972:{ *:[iPTR] }, LSX128W:{ *:[v4i32] }:$vj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (VSRARI_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vj, (imm:{ *:[i32] })<>:$ui5) ++/* 12456*/ /*Scope*/ 24, /*->12481*/ ++/* 12457*/ OPC_CheckChild0Integer, 106|128,38/*4970*/, ++/* 12460*/ OPC_RecordChild1, // #0 = $vj ++/* 12461*/ OPC_RecordChild2, // #1 = $ui6 ++/* 12462*/ OPC_MoveChild2, ++/* 12463*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 12466*/ OPC_CheckPredicate, 30, // Predicate_immZExt6 ++/* 12468*/ OPC_MoveParent, ++/* 12469*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 12471*/ OPC_EmitConvertToTarget, 1, ++/* 12473*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRARI_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4970:{ *:[iPTR] }, LSX128D:{ *:[v2i64] }:$vj, (imm:{ *:[i32] })<>:$ui6) - Complexity = 12 ++ // Dst: (VSRARI_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vj, (imm:{ *:[i32] })<>:$ui6) ++/* 12481*/ /*Scope*/ 26, /*->12508*/ ++/* 12482*/ OPC_CheckChild0Integer, 77|128,36/*4685*/, ++/* 12485*/ OPC_RecordChild1, // #0 = $vj ++/* 12486*/ OPC_RecordChild2, // #1 = $rj ++/* 12487*/ OPC_RecordChild3, // #2 = $ui4 ++/* 12488*/ OPC_MoveChild3, ++/* 12489*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 12492*/ OPC_CheckPredicate, 23, // Predicate_immZExt4 ++/* 12494*/ OPC_MoveParent, ++/* 12495*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 12497*/ OPC_EmitConvertToTarget, 2, ++/* 12499*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VINSGR2VR_B), 0, ++ MVT::v16i8, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4685:{ *:[iPTR] }, LSX128B:{ *:[v16i8] }:$vj, GPR32Opnd:{ *:[i32] }:$rj, (imm:{ *:[i32] })<>:$ui4) - Complexity = 12 ++ // Dst: (VINSGR2VR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$vj, GPR32Opnd:{ *:[i32] }:$rj, (imm:{ *:[i32] })<>:$ui4) ++/* 12508*/ /*Scope*/ 26, /*->12535*/ ++/* 12509*/ OPC_CheckChild0Integer, 79|128,36/*4687*/, ++/* 12512*/ OPC_RecordChild1, // #0 = $vj ++/* 12513*/ OPC_RecordChild2, // #1 = $rj ++/* 12514*/ OPC_RecordChild3, // #2 = $ui3 ++/* 12515*/ OPC_MoveChild3, ++/* 12516*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 12519*/ OPC_CheckPredicate, 24, // Predicate_immZExt3 ++/* 12521*/ OPC_MoveParent, ++/* 12522*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 12524*/ OPC_EmitConvertToTarget, 2, ++/* 12526*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VINSGR2VR_H), 0, ++ MVT::v8i16, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4687:{ *:[iPTR] }, LSX128H:{ *:[v8i16] }:$vj, GPR32Opnd:{ *:[i32] }:$rj, (imm:{ *:[i32] })<>:$ui3) - Complexity = 12 ++ // Dst: (VINSGR2VR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vj, GPR32Opnd:{ *:[i32] }:$rj, (imm:{ *:[i32] })<>:$ui3) ++/* 12535*/ /*Scope*/ 26, /*->12562*/ ++/* 12536*/ OPC_CheckChild0Integer, 80|128,36/*4688*/, ++/* 12539*/ OPC_RecordChild1, // #0 = $vj ++/* 12540*/ OPC_RecordChild2, // #1 = $rj ++/* 12541*/ OPC_RecordChild3, // #2 = $ui2 ++/* 12542*/ OPC_MoveChild3, ++/* 12543*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 12546*/ OPC_CheckPredicate, 25, // Predicate_immZExt2 ++/* 12548*/ OPC_MoveParent, ++/* 12549*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 12551*/ OPC_EmitConvertToTarget, 2, ++/* 12553*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VINSGR2VR_W), 0, ++ MVT::v4i32, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4688:{ *:[iPTR] }, LSX128W:{ *:[v4i32] }:$vj, GPR32Opnd:{ *:[i32] }:$rj, (imm:{ *:[i32] })<>:$ui2) - Complexity = 12 ++ // Dst: (VINSGR2VR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vj, GPR32Opnd:{ *:[i32] }:$rj, (imm:{ *:[i32] })<>:$ui2) ++/* 12562*/ /*Scope*/ 26, /*->12589*/ ++/* 12563*/ OPC_CheckChild0Integer, 78|128,36/*4686*/, ++/* 12566*/ OPC_RecordChild1, // #0 = $vj ++/* 12567*/ OPC_RecordChild2, // #1 = $rj ++/* 12568*/ OPC_RecordChild3, // #2 = $ui1 ++/* 12569*/ OPC_MoveChild3, ++/* 12570*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 12573*/ OPC_CheckPredicate, 26, // Predicate_immZExt1 ++/* 12575*/ OPC_MoveParent, ++/* 12576*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 12578*/ OPC_EmitConvertToTarget, 2, ++/* 12580*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VINSGR2VR_D), 0, ++ MVT::v2i64, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4686:{ *:[iPTR] }, LSX128D:{ *:[v2i64] }:$vj, GPR64Opnd:{ *:[i64] }:$rj, (imm:{ *:[i32] })<>:$ui1) - Complexity = 12 ++ // Dst: (VINSGR2VR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vj, GPR64Opnd:{ *:[i64] }:$rj, (imm:{ *:[i32] })<>:$ui1) ++/* 12589*/ /*Scope*/ 24, /*->12614*/ ++/* 12590*/ OPC_CheckChild0Integer, 12|128,38/*4876*/, ++/* 12593*/ OPC_RecordChild1, // #0 = $vj ++/* 12594*/ OPC_RecordChild2, // #1 = $ui3 ++/* 12595*/ OPC_MoveChild2, ++/* 12596*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 12599*/ OPC_CheckPredicate, 24, // Predicate_immZExt3 ++/* 12601*/ OPC_MoveParent, ++/* 12602*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 12604*/ OPC_EmitConvertToTarget, 1, ++/* 12606*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSAT_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4876:{ *:[iPTR] }, LSX128B:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$ui3) - Complexity = 12 ++ // Dst: (VSAT_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$ui3) ++/* 12614*/ /*Scope*/ 24, /*->12639*/ ++/* 12615*/ OPC_CheckChild0Integer, 16|128,38/*4880*/, ++/* 12618*/ OPC_RecordChild1, // #0 = $vj ++/* 12619*/ OPC_RecordChild2, // #1 = $ui4 ++/* 12620*/ OPC_MoveChild2, ++/* 12621*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 12624*/ OPC_CheckPredicate, 23, // Predicate_immZExt4 ++/* 12626*/ OPC_MoveParent, ++/* 12627*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 12629*/ OPC_EmitConvertToTarget, 1, ++/* 12631*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSAT_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4880:{ *:[iPTR] }, LSX128H:{ *:[v8i16] }:$vj, (imm:{ *:[i32] })<>:$ui4) - Complexity = 12 ++ // Dst: (VSAT_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vj, (imm:{ *:[i32] })<>:$ui4) ++/* 12639*/ /*Scope*/ 24, /*->12664*/ ++/* 12640*/ OPC_CheckChild0Integer, 18|128,38/*4882*/, ++/* 12643*/ OPC_RecordChild1, // #0 = $vj ++/* 12644*/ OPC_RecordChild2, // #1 = $ui5 ++/* 12645*/ OPC_MoveChild2, ++/* 12646*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 12649*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 12651*/ OPC_MoveParent, ++/* 12652*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 12654*/ OPC_EmitConvertToTarget, 1, ++/* 12656*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSAT_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4882:{ *:[iPTR] }, LSX128W:{ *:[v4i32] }:$vj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (VSAT_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vj, (imm:{ *:[i32] })<>:$ui5) ++/* 12664*/ /*Scope*/ 24, /*->12689*/ ++/* 12665*/ OPC_CheckChild0Integer, 14|128,38/*4878*/, ++/* 12668*/ OPC_RecordChild1, // #0 = $vj ++/* 12669*/ OPC_RecordChild2, // #1 = $ui6 ++/* 12670*/ OPC_MoveChild2, ++/* 12671*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 12674*/ OPC_CheckPredicate, 30, // Predicate_immZExt6 ++/* 12676*/ OPC_MoveParent, ++/* 12677*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 12679*/ OPC_EmitConvertToTarget, 1, ++/* 12681*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSAT_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4878:{ *:[iPTR] }, LSX128D:{ *:[v2i64] }:$vj, (imm:{ *:[i32] })<>:$ui6) - Complexity = 12 ++ // Dst: (VSAT_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vj, (imm:{ *:[i32] })<>:$ui6) ++/* 12689*/ /*Scope*/ 24, /*->12714*/ ++/* 12690*/ OPC_CheckChild0Integer, 13|128,38/*4877*/, ++/* 12693*/ OPC_RecordChild1, // #0 = $vj ++/* 12694*/ OPC_RecordChild2, // #1 = $ui3 ++/* 12695*/ OPC_MoveChild2, ++/* 12696*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 12699*/ OPC_CheckPredicate, 24, // Predicate_immZExt3 ++/* 12701*/ OPC_MoveParent, ++/* 12702*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 12704*/ OPC_EmitConvertToTarget, 1, ++/* 12706*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSAT_BU), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4877:{ *:[iPTR] }, LSX128B:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$ui3) - Complexity = 12 ++ // Dst: (VSAT_BU:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$ui3) ++/* 12714*/ /*Scope*/ 24, /*->12739*/ ++/* 12715*/ OPC_CheckChild0Integer, 17|128,38/*4881*/, ++/* 12718*/ OPC_RecordChild1, // #0 = $vj ++/* 12719*/ OPC_RecordChild2, // #1 = $ui4 ++/* 12720*/ OPC_MoveChild2, ++/* 12721*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 12724*/ OPC_CheckPredicate, 23, // Predicate_immZExt4 ++/* 12726*/ OPC_MoveParent, ++/* 12727*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 12729*/ OPC_EmitConvertToTarget, 1, ++/* 12731*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSAT_HU), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4881:{ *:[iPTR] }, LSX128H:{ *:[v8i16] }:$vj, (imm:{ *:[i32] })<>:$ui4) - Complexity = 12 ++ // Dst: (VSAT_HU:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vj, (imm:{ *:[i32] })<>:$ui4) ++/* 12739*/ /*Scope*/ 24, /*->12764*/ ++/* 12740*/ OPC_CheckChild0Integer, 19|128,38/*4883*/, ++/* 12743*/ OPC_RecordChild1, // #0 = $vj ++/* 12744*/ OPC_RecordChild2, // #1 = $ui5 ++/* 12745*/ OPC_MoveChild2, ++/* 12746*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 12749*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 12751*/ OPC_MoveParent, ++/* 12752*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 12754*/ OPC_EmitConvertToTarget, 1, ++/* 12756*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSAT_WU), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4883:{ *:[iPTR] }, LSX128W:{ *:[v4i32] }:$vj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (VSAT_WU:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vj, (imm:{ *:[i32] })<>:$ui5) ++/* 12764*/ /*Scope*/ 24, /*->12789*/ ++/* 12765*/ OPC_CheckChild0Integer, 15|128,38/*4879*/, ++/* 12768*/ OPC_RecordChild1, // #0 = $vj ++/* 12769*/ OPC_RecordChild2, // #1 = $ui6 ++/* 12770*/ OPC_MoveChild2, ++/* 12771*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 12774*/ OPC_CheckPredicate, 30, // Predicate_immZExt6 ++/* 12776*/ OPC_MoveParent, ++/* 12777*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 12779*/ OPC_EmitConvertToTarget, 1, ++/* 12781*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSAT_DU), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4879:{ *:[iPTR] }, LSX128D:{ *:[v2i64] }:$vj, (imm:{ *:[i32] })<>:$ui6) - Complexity = 12 ++ // Dst: (VSAT_DU:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vj, (imm:{ *:[i32] })<>:$ui6) ++/* 12789*/ /*Scope*/ 26, /*->12816*/ ++/* 12790*/ OPC_CheckChild0Integer, 127|128,38/*4991*/, ++/* 12793*/ OPC_RecordChild1, // #0 = $vd_in ++/* 12794*/ OPC_RecordChild2, // #1 = $vj ++/* 12795*/ OPC_RecordChild3, // #2 = $ui4 ++/* 12796*/ OPC_MoveChild3, ++/* 12797*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 12800*/ OPC_CheckPredicate, 23, // Predicate_immZExt4 ++/* 12802*/ OPC_MoveParent, ++/* 12803*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 12805*/ OPC_EmitConvertToTarget, 2, ++/* 12807*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRLNI_B_H), 0, ++ MVT::v16i8, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4991:{ *:[iPTR] }, LSX128B:{ *:[v16i8] }:$vd_in, LSX128B:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$ui4) - Complexity = 12 ++ // Dst: (VSRLNI_B_H:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$vd_in, LSX128B:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$ui4) ++/* 12816*/ /*Scope*/ 26, /*->12843*/ ++/* 12817*/ OPC_CheckChild0Integer, 1|128,39/*4993*/, ++/* 12820*/ OPC_RecordChild1, // #0 = $vd_in ++/* 12821*/ OPC_RecordChild2, // #1 = $vj ++/* 12822*/ OPC_RecordChild3, // #2 = $ui5 ++/* 12823*/ OPC_MoveChild3, ++/* 12824*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 12827*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 12829*/ OPC_MoveParent, ++/* 12830*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 12832*/ OPC_EmitConvertToTarget, 2, ++/* 12834*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRLNI_H_W), 0, ++ MVT::v8i16, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4993:{ *:[iPTR] }, LSX128H:{ *:[v8i16] }:$vd_in, LSX128H:{ *:[v8i16] }:$vj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (VSRLNI_H_W:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vd_in, LSX128H:{ *:[v8i16] }:$vj, (imm:{ *:[i32] })<>:$ui5) ++/* 12843*/ /*Scope*/ 26, /*->12870*/ ++/* 12844*/ OPC_CheckChild0Integer, 2|128,39/*4994*/, ++/* 12847*/ OPC_RecordChild1, // #0 = $vd_in ++/* 12848*/ OPC_RecordChild2, // #1 = $vj ++/* 12849*/ OPC_RecordChild3, // #2 = $ui6 ++/* 12850*/ OPC_MoveChild3, ++/* 12851*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 12854*/ OPC_CheckPredicate, 30, // Predicate_immZExt6 ++/* 12856*/ OPC_MoveParent, ++/* 12857*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 12859*/ OPC_EmitConvertToTarget, 2, ++/* 12861*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRLNI_W_D), 0, ++ MVT::v4i32, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4994:{ *:[iPTR] }, LSX128W:{ *:[v4i32] }:$vd_in, LSX128W:{ *:[v4i32] }:$vj, (imm:{ *:[i32] })<>:$ui6) - Complexity = 12 ++ // Dst: (VSRLNI_W_D:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vd_in, LSX128W:{ *:[v4i32] }:$vj, (imm:{ *:[i32] })<>:$ui6) ++/* 12870*/ /*Scope*/ 26, /*->12897*/ ++/* 12871*/ OPC_CheckChild0Integer, 0|128,39/*4992*/, ++/* 12874*/ OPC_RecordChild1, // #0 = $vd_in ++/* 12875*/ OPC_RecordChild2, // #1 = $vj ++/* 12876*/ OPC_RecordChild3, // #2 = $ui7 ++/* 12877*/ OPC_MoveChild3, ++/* 12878*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 12881*/ OPC_CheckPredicate, 32, // Predicate_immZExt7 ++/* 12883*/ OPC_MoveParent, ++/* 12884*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 12886*/ OPC_EmitConvertToTarget, 2, ++/* 12888*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRLNI_D_Q), 0, ++ MVT::v2i64, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4992:{ *:[iPTR] }, LSX128D:{ *:[v2i64] }:$vd_in, LSX128D:{ *:[v2i64] }:$vj, (imm:{ *:[i32] })<>:$ui7) - Complexity = 12 ++ // Dst: (VSRLNI_D_Q:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vd_in, LSX128D:{ *:[v2i64] }:$vj, (imm:{ *:[i32] })<>:$ui7) ++/* 12897*/ /*Scope*/ 26, /*->12924*/ ++/* 12898*/ OPC_CheckChild0Integer, 48|128,39/*5040*/, ++/* 12901*/ OPC_RecordChild1, // #0 = $vd_in ++/* 12902*/ OPC_RecordChild2, // #1 = $vj ++/* 12903*/ OPC_RecordChild3, // #2 = $ui4 ++/* 12904*/ OPC_MoveChild3, ++/* 12905*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 12908*/ OPC_CheckPredicate, 23, // Predicate_immZExt4 ++/* 12910*/ OPC_MoveParent, ++/* 12911*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 12913*/ OPC_EmitConvertToTarget, 2, ++/* 12915*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRLNI_B_H), 0, ++ MVT::v16i8, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 5040:{ *:[iPTR] }, LSX128B:{ *:[v16i8] }:$vd_in, LSX128B:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$ui4) - Complexity = 12 ++ // Dst: (VSSRLNI_B_H:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$vd_in, LSX128B:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$ui4) ++/* 12924*/ /*Scope*/ 26, /*->12951*/ ++/* 12925*/ OPC_CheckChild0Integer, 52|128,39/*5044*/, ++/* 12928*/ OPC_RecordChild1, // #0 = $vd_in ++/* 12929*/ OPC_RecordChild2, // #1 = $vj ++/* 12930*/ OPC_RecordChild3, // #2 = $ui5 ++/* 12931*/ OPC_MoveChild3, ++/* 12932*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 12935*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 12937*/ OPC_MoveParent, ++/* 12938*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 12940*/ OPC_EmitConvertToTarget, 2, ++/* 12942*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRLNI_H_W), 0, ++ MVT::v8i16, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 5044:{ *:[iPTR] }, LSX128H:{ *:[v8i16] }:$vd_in, LSX128H:{ *:[v8i16] }:$vj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (VSSRLNI_H_W:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vd_in, LSX128H:{ *:[v8i16] }:$vj, (imm:{ *:[i32] })<>:$ui5) ++/* 12951*/ /*Scope*/ 26, /*->12978*/ ++/* 12952*/ OPC_CheckChild0Integer, 54|128,39/*5046*/, ++/* 12955*/ OPC_RecordChild1, // #0 = $vd_in ++/* 12956*/ OPC_RecordChild2, // #1 = $vj ++/* 12957*/ OPC_RecordChild3, // #2 = $ui6 ++/* 12958*/ OPC_MoveChild3, ++/* 12959*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 12962*/ OPC_CheckPredicate, 30, // Predicate_immZExt6 ++/* 12964*/ OPC_MoveParent, ++/* 12965*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 12967*/ OPC_EmitConvertToTarget, 2, ++/* 12969*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRLNI_W_D), 0, ++ MVT::v4i32, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5046:{ *:[iPTR] }, LSX128W:{ *:[v4i32] }:$vd_in, LSX128W:{ *:[v4i32] }:$vj, (imm:{ *:[i32] })<>:$ui6) - Complexity = 12 ++ // Dst: (VSSRLNI_W_D:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vd_in, LSX128W:{ *:[v4i32] }:$vj, (imm:{ *:[i32] })<>:$ui6) ++/* 12978*/ /*Scope*/ 26, /*->13005*/ ++/* 12979*/ OPC_CheckChild0Integer, 50|128,39/*5042*/, ++/* 12982*/ OPC_RecordChild1, // #0 = $vd_in ++/* 12983*/ OPC_RecordChild2, // #1 = $vj ++/* 12984*/ OPC_RecordChild3, // #2 = $ui7 ++/* 12985*/ OPC_MoveChild3, ++/* 12986*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 12989*/ OPC_CheckPredicate, 32, // Predicate_immZExt7 ++/* 12991*/ OPC_MoveParent, ++/* 12992*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 12994*/ OPC_EmitConvertToTarget, 2, ++/* 12996*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRLNI_D_Q), 0, ++ MVT::v2i64, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5042:{ *:[iPTR] }, LSX128D:{ *:[v2i64] }:$vd_in, LSX128D:{ *:[v2i64] }:$vj, (imm:{ *:[i32] })<>:$ui7) - Complexity = 12 ++ // Dst: (VSSRLNI_D_Q:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vd_in, LSX128D:{ *:[v2i64] }:$vj, (imm:{ *:[i32] })<>:$ui7) ++/* 13005*/ /*Scope*/ 26, /*->13032*/ ++/* 13006*/ OPC_CheckChild0Integer, 49|128,39/*5041*/, ++/* 13009*/ OPC_RecordChild1, // #0 = $vd_in ++/* 13010*/ OPC_RecordChild2, // #1 = $vj ++/* 13011*/ OPC_RecordChild3, // #2 = $ui4 ++/* 13012*/ OPC_MoveChild3, ++/* 13013*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 13016*/ OPC_CheckPredicate, 23, // Predicate_immZExt4 ++/* 13018*/ OPC_MoveParent, ++/* 13019*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 13021*/ OPC_EmitConvertToTarget, 2, ++/* 13023*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRLNI_BU_H), 0, ++ MVT::v16i8, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 5041:{ *:[iPTR] }, LSX128B:{ *:[v16i8] }:$vd_in, LSX128B:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$ui4) - Complexity = 12 ++ // Dst: (VSSRLNI_BU_H:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$vd_in, LSX128B:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$ui4) ++/* 13032*/ /*Scope*/ 26, /*->13059*/ ++/* 13033*/ OPC_CheckChild0Integer, 53|128,39/*5045*/, ++/* 13036*/ OPC_RecordChild1, // #0 = $vd_in ++/* 13037*/ OPC_RecordChild2, // #1 = $vj ++/* 13038*/ OPC_RecordChild3, // #2 = $ui5 ++/* 13039*/ OPC_MoveChild3, ++/* 13040*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 13043*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 13045*/ OPC_MoveParent, ++/* 13046*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 13048*/ OPC_EmitConvertToTarget, 2, ++/* 13050*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRLNI_HU_W), 0, ++ MVT::v8i16, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 5045:{ *:[iPTR] }, LSX128H:{ *:[v8i16] }:$vd_in, LSX128H:{ *:[v8i16] }:$vj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (VSSRLNI_HU_W:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vd_in, LSX128H:{ *:[v8i16] }:$vj, (imm:{ *:[i32] })<>:$ui5) ++/* 13059*/ /*Scope*/ 26, /*->13086*/ ++/* 13060*/ OPC_CheckChild0Integer, 55|128,39/*5047*/, ++/* 13063*/ OPC_RecordChild1, // #0 = $vd_in ++/* 13064*/ OPC_RecordChild2, // #1 = $vj ++/* 13065*/ OPC_RecordChild3, // #2 = $ui6 ++/* 13066*/ OPC_MoveChild3, ++/* 13067*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 13070*/ OPC_CheckPredicate, 30, // Predicate_immZExt6 ++/* 13072*/ OPC_MoveParent, ++/* 13073*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 13075*/ OPC_EmitConvertToTarget, 2, ++/* 13077*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRLNI_WU_D), 0, ++ MVT::v4i32, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5047:{ *:[iPTR] }, LSX128W:{ *:[v4i32] }:$vd_in, LSX128W:{ *:[v4i32] }:$vj, (imm:{ *:[i32] })<>:$ui6) - Complexity = 12 ++ // Dst: (VSSRLNI_WU_D:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vd_in, LSX128W:{ *:[v4i32] }:$vj, (imm:{ *:[i32] })<>:$ui6) ++/* 13086*/ /*Scope*/ 26, /*->13113*/ ++/* 13087*/ OPC_CheckChild0Integer, 51|128,39/*5043*/, ++/* 13090*/ OPC_RecordChild1, // #0 = $vd_in ++/* 13091*/ OPC_RecordChild2, // #1 = $vj ++/* 13092*/ OPC_RecordChild3, // #2 = $ui7 ++/* 13093*/ OPC_MoveChild3, ++/* 13094*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 13097*/ OPC_CheckPredicate, 32, // Predicate_immZExt7 ++/* 13099*/ OPC_MoveParent, ++/* 13100*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 13102*/ OPC_EmitConvertToTarget, 2, ++/* 13104*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRLNI_DU_Q), 0, ++ MVT::v2i64, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5043:{ *:[iPTR] }, LSX128D:{ *:[v2i64] }:$vd_in, LSX128D:{ *:[v2i64] }:$vj, (imm:{ *:[i32] })<>:$ui7) - Complexity = 12 ++ // Dst: (VSSRLNI_DU_Q:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vd_in, LSX128D:{ *:[v2i64] }:$vj, (imm:{ *:[i32] })<>:$ui7) ++/* 13113*/ /*Scope*/ 26, /*->13140*/ ++/* 13114*/ OPC_CheckChild0Integer, 63|128,39/*5055*/, ++/* 13117*/ OPC_RecordChild1, // #0 = $vd_in ++/* 13118*/ OPC_RecordChild2, // #1 = $vj ++/* 13119*/ OPC_RecordChild3, // #2 = $ui4 ++/* 13120*/ OPC_MoveChild3, ++/* 13121*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 13124*/ OPC_CheckPredicate, 23, // Predicate_immZExt4 ++/* 13126*/ OPC_MoveParent, ++/* 13127*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 13129*/ OPC_EmitConvertToTarget, 2, ++/* 13131*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRLRNI_BU_H), 0, ++ MVT::v16i8, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 5055:{ *:[iPTR] }, LSX128B:{ *:[v16i8] }:$vd_in, LSX128B:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$ui4) - Complexity = 12 ++ // Dst: (VSSRLRNI_BU_H:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$vd_in, LSX128B:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$ui4) ++/* 13140*/ /*Scope*/ 26, /*->13167*/ ++/* 13141*/ OPC_CheckChild0Integer, 67|128,39/*5059*/, ++/* 13144*/ OPC_RecordChild1, // #0 = $vd_in ++/* 13145*/ OPC_RecordChild2, // #1 = $vj ++/* 13146*/ OPC_RecordChild3, // #2 = $ui5 ++/* 13147*/ OPC_MoveChild3, ++/* 13148*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 13151*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 13153*/ OPC_MoveParent, ++/* 13154*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 13156*/ OPC_EmitConvertToTarget, 2, ++/* 13158*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRLRNI_HU_W), 0, ++ MVT::v8i16, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 5059:{ *:[iPTR] }, LSX128H:{ *:[v8i16] }:$vd_in, LSX128H:{ *:[v8i16] }:$vj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (VSSRLRNI_HU_W:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vd_in, LSX128H:{ *:[v8i16] }:$vj, (imm:{ *:[i32] })<>:$ui5) ++/* 13167*/ /*Scope*/ 26, /*->13194*/ ++/* 13168*/ OPC_CheckChild0Integer, 69|128,39/*5061*/, ++/* 13171*/ OPC_RecordChild1, // #0 = $vd_in ++/* 13172*/ OPC_RecordChild2, // #1 = $vj ++/* 13173*/ OPC_RecordChild3, // #2 = $ui6 ++/* 13174*/ OPC_MoveChild3, ++/* 13175*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 13178*/ OPC_CheckPredicate, 30, // Predicate_immZExt6 ++/* 13180*/ OPC_MoveParent, ++/* 13181*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 13183*/ OPC_EmitConvertToTarget, 2, ++/* 13185*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRLRNI_WU_D), 0, ++ MVT::v4i32, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5061:{ *:[iPTR] }, LSX128W:{ *:[v4i32] }:$vd_in, LSX128W:{ *:[v4i32] }:$vj, (imm:{ *:[i32] })<>:$ui6) - Complexity = 12 ++ // Dst: (VSSRLRNI_WU_D:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vd_in, LSX128W:{ *:[v4i32] }:$vj, (imm:{ *:[i32] })<>:$ui6) ++/* 13194*/ /*Scope*/ 26, /*->13221*/ ++/* 13195*/ OPC_CheckChild0Integer, 65|128,39/*5057*/, ++/* 13198*/ OPC_RecordChild1, // #0 = $vd_in ++/* 13199*/ OPC_RecordChild2, // #1 = $vj ++/* 13200*/ OPC_RecordChild3, // #2 = $ui7 ++/* 13201*/ OPC_MoveChild3, ++/* 13202*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 13205*/ OPC_CheckPredicate, 32, // Predicate_immZExt7 ++/* 13207*/ OPC_MoveParent, ++/* 13208*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 13210*/ OPC_EmitConvertToTarget, 2, ++/* 13212*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRLRNI_DU_Q), 0, ++ MVT::v2i64, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5057:{ *:[iPTR] }, LSX128D:{ *:[v2i64] }:$vd_in, LSX128D:{ *:[v2i64] }:$vj, (imm:{ *:[i32] })<>:$ui7) - Complexity = 12 ++ // Dst: (VSSRLRNI_DU_Q:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vd_in, LSX128D:{ *:[v2i64] }:$vj, (imm:{ *:[i32] })<>:$ui7) ++/* 13221*/ /*Scope*/ 26, /*->13248*/ ++/* 13222*/ OPC_CheckChild0Integer, 112|128,38/*4976*/, ++/* 13225*/ OPC_RecordChild1, // #0 = $vd_in ++/* 13226*/ OPC_RecordChild2, // #1 = $vj ++/* 13227*/ OPC_RecordChild3, // #2 = $ui4 ++/* 13228*/ OPC_MoveChild3, ++/* 13229*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 13232*/ OPC_CheckPredicate, 23, // Predicate_immZExt4 ++/* 13234*/ OPC_MoveParent, ++/* 13235*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 13237*/ OPC_EmitConvertToTarget, 2, ++/* 13239*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRARNI_B_H), 0, ++ MVT::v16i8, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4976:{ *:[iPTR] }, LSX128B:{ *:[v16i8] }:$vd_in, LSX128B:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$ui4) - Complexity = 12 ++ // Dst: (VSRARNI_B_H:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$vd_in, LSX128B:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$ui4) ++/* 13248*/ /*Scope*/ 26, /*->13275*/ ++/* 13249*/ OPC_CheckChild0Integer, 114|128,38/*4978*/, ++/* 13252*/ OPC_RecordChild1, // #0 = $vd_in ++/* 13253*/ OPC_RecordChild2, // #1 = $vj ++/* 13254*/ OPC_RecordChild3, // #2 = $ui5 ++/* 13255*/ OPC_MoveChild3, ++/* 13256*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 13259*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 13261*/ OPC_MoveParent, ++/* 13262*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 13264*/ OPC_EmitConvertToTarget, 2, ++/* 13266*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRARNI_H_W), 0, ++ MVT::v8i16, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4978:{ *:[iPTR] }, LSX128H:{ *:[v8i16] }:$vd_in, LSX128H:{ *:[v8i16] }:$vj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (VSRARNI_H_W:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vd_in, LSX128H:{ *:[v8i16] }:$vj, (imm:{ *:[i32] })<>:$ui5) ++/* 13275*/ /*Scope*/ 26, /*->13302*/ ++/* 13276*/ OPC_CheckChild0Integer, 115|128,38/*4979*/, ++/* 13279*/ OPC_RecordChild1, // #0 = $vd_in ++/* 13280*/ OPC_RecordChild2, // #1 = $vj ++/* 13281*/ OPC_RecordChild3, // #2 = $ui6 ++/* 13282*/ OPC_MoveChild3, ++/* 13283*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 13286*/ OPC_CheckPredicate, 30, // Predicate_immZExt6 ++/* 13288*/ OPC_MoveParent, ++/* 13289*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 13291*/ OPC_EmitConvertToTarget, 2, ++/* 13293*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRARNI_W_D), 0, ++ MVT::v4i32, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4979:{ *:[iPTR] }, LSX128W:{ *:[v4i32] }:$vd_in, LSX128W:{ *:[v4i32] }:$vj, (imm:{ *:[i32] })<>:$ui6) - Complexity = 12 ++ // Dst: (VSRARNI_W_D:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vd_in, LSX128W:{ *:[v4i32] }:$vj, (imm:{ *:[i32] })<>:$ui6) ++/* 13302*/ /*Scope*/ 26, /*->13329*/ ++/* 13303*/ OPC_CheckChild0Integer, 113|128,38/*4977*/, ++/* 13306*/ OPC_RecordChild1, // #0 = $vd_in ++/* 13307*/ OPC_RecordChild2, // #1 = $vj ++/* 13308*/ OPC_RecordChild3, // #2 = $ui7 ++/* 13309*/ OPC_MoveChild3, ++/* 13310*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 13313*/ OPC_CheckPredicate, 32, // Predicate_immZExt7 ++/* 13315*/ OPC_MoveParent, ++/* 13316*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 13318*/ OPC_EmitConvertToTarget, 2, ++/* 13320*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRARNI_D_Q), 0, ++ MVT::v2i64, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4977:{ *:[iPTR] }, LSX128D:{ *:[v2i64] }:$vd_in, LSX128D:{ *:[v2i64] }:$vj, (imm:{ *:[i32] })<>:$ui7) - Complexity = 12 ++ // Dst: (VSRARNI_D_Q:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vd_in, LSX128D:{ *:[v2i64] }:$vj, (imm:{ *:[i32] })<>:$ui7) ++/* 13329*/ /*Scope*/ 26, /*->13356*/ ++/* 13330*/ OPC_CheckChild0Integer, 20|128,39/*5012*/, ++/* 13333*/ OPC_RecordChild1, // #0 = $vd_in ++/* 13334*/ OPC_RecordChild2, // #1 = $vj ++/* 13335*/ OPC_RecordChild3, // #2 = $ui4 ++/* 13336*/ OPC_MoveChild3, ++/* 13337*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 13340*/ OPC_CheckPredicate, 23, // Predicate_immZExt4 ++/* 13342*/ OPC_MoveParent, ++/* 13343*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 13345*/ OPC_EmitConvertToTarget, 2, ++/* 13347*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRANI_B_H), 0, ++ MVT::v16i8, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 5012:{ *:[iPTR] }, LSX128B:{ *:[v16i8] }:$vd_in, LSX128B:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$ui4) - Complexity = 12 ++ // Dst: (VSSRANI_B_H:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$vd_in, LSX128B:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$ui4) ++/* 13356*/ /*Scope*/ 26, /*->13383*/ ++/* 13357*/ OPC_CheckChild0Integer, 24|128,39/*5016*/, ++/* 13360*/ OPC_RecordChild1, // #0 = $vd_in ++/* 13361*/ OPC_RecordChild2, // #1 = $vj ++/* 13362*/ OPC_RecordChild3, // #2 = $ui5 ++/* 13363*/ OPC_MoveChild3, ++/* 13364*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 13367*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 13369*/ OPC_MoveParent, ++/* 13370*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 13372*/ OPC_EmitConvertToTarget, 2, ++/* 13374*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRANI_H_W), 0, ++ MVT::v8i16, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 5016:{ *:[iPTR] }, LSX128H:{ *:[v8i16] }:$vd_in, LSX128H:{ *:[v8i16] }:$vj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (VSSRANI_H_W:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vd_in, LSX128H:{ *:[v8i16] }:$vj, (imm:{ *:[i32] })<>:$ui5) ++/* 13383*/ /*Scope*/ 26, /*->13410*/ ++/* 13384*/ OPC_CheckChild0Integer, 26|128,39/*5018*/, ++/* 13387*/ OPC_RecordChild1, // #0 = $vd_in ++/* 13388*/ OPC_RecordChild2, // #1 = $vj ++/* 13389*/ OPC_RecordChild3, // #2 = $ui6 ++/* 13390*/ OPC_MoveChild3, ++/* 13391*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 13394*/ OPC_CheckPredicate, 30, // Predicate_immZExt6 ++/* 13396*/ OPC_MoveParent, ++/* 13397*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 13399*/ OPC_EmitConvertToTarget, 2, ++/* 13401*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRANI_W_D), 0, ++ MVT::v4i32, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5018:{ *:[iPTR] }, LSX128W:{ *:[v4i32] }:$vd_in, LSX128W:{ *:[v4i32] }:$vj, (imm:{ *:[i32] })<>:$ui6) - Complexity = 12 ++ // Dst: (VSSRANI_W_D:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vd_in, LSX128W:{ *:[v4i32] }:$vj, (imm:{ *:[i32] })<>:$ui6) ++/* 13410*/ /*Scope*/ 26, /*->13437*/ ++/* 13411*/ OPC_CheckChild0Integer, 22|128,39/*5014*/, ++/* 13414*/ OPC_RecordChild1, // #0 = $vd_in ++/* 13415*/ OPC_RecordChild2, // #1 = $vj ++/* 13416*/ OPC_RecordChild3, // #2 = $ui7 ++/* 13417*/ OPC_MoveChild3, ++/* 13418*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 13421*/ OPC_CheckPredicate, 32, // Predicate_immZExt7 ++/* 13423*/ OPC_MoveParent, ++/* 13424*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 13426*/ OPC_EmitConvertToTarget, 2, ++/* 13428*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRANI_D_Q), 0, ++ MVT::v2i64, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5014:{ *:[iPTR] }, LSX128D:{ *:[v2i64] }:$vd_in, LSX128D:{ *:[v2i64] }:$vj, (imm:{ *:[i32] })<>:$ui7) - Complexity = 12 ++ // Dst: (VSSRANI_D_Q:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vd_in, LSX128D:{ *:[v2i64] }:$vj, (imm:{ *:[i32] })<>:$ui7) ++/* 13437*/ /*Scope*/ 26, /*->13464*/ ++/* 13438*/ OPC_CheckChild0Integer, 21|128,39/*5013*/, ++/* 13441*/ OPC_RecordChild1, // #0 = $vd_in ++/* 13442*/ OPC_RecordChild2, // #1 = $vj ++/* 13443*/ OPC_RecordChild3, // #2 = $ui4 ++/* 13444*/ OPC_MoveChild3, ++/* 13445*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 13448*/ OPC_CheckPredicate, 23, // Predicate_immZExt4 ++/* 13450*/ OPC_MoveParent, ++/* 13451*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 13453*/ OPC_EmitConvertToTarget, 2, ++/* 13455*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRANI_BU_H), 0, ++ MVT::v16i8, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 5013:{ *:[iPTR] }, LSX128B:{ *:[v16i8] }:$vd_in, LSX128B:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$ui4) - Complexity = 12 ++ // Dst: (VSSRANI_BU_H:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$vd_in, LSX128B:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$ui4) ++/* 13464*/ /*Scope*/ 26, /*->13491*/ ++/* 13465*/ OPC_CheckChild0Integer, 25|128,39/*5017*/, ++/* 13468*/ OPC_RecordChild1, // #0 = $vd_in ++/* 13469*/ OPC_RecordChild2, // #1 = $vj ++/* 13470*/ OPC_RecordChild3, // #2 = $ui5 ++/* 13471*/ OPC_MoveChild3, ++/* 13472*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 13475*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 13477*/ OPC_MoveParent, ++/* 13478*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 13480*/ OPC_EmitConvertToTarget, 2, ++/* 13482*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRANI_HU_W), 0, ++ MVT::v8i16, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 5017:{ *:[iPTR] }, LSX128H:{ *:[v8i16] }:$vd_in, LSX128H:{ *:[v8i16] }:$vj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (VSSRANI_HU_W:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vd_in, LSX128H:{ *:[v8i16] }:$vj, (imm:{ *:[i32] })<>:$ui5) ++/* 13491*/ /*Scope*/ 26, /*->13518*/ ++/* 13492*/ OPC_CheckChild0Integer, 27|128,39/*5019*/, ++/* 13495*/ OPC_RecordChild1, // #0 = $vd_in ++/* 13496*/ OPC_RecordChild2, // #1 = $vj ++/* 13497*/ OPC_RecordChild3, // #2 = $ui6 ++/* 13498*/ OPC_MoveChild3, ++/* 13499*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 13502*/ OPC_CheckPredicate, 30, // Predicate_immZExt6 ++/* 13504*/ OPC_MoveParent, ++/* 13505*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 13507*/ OPC_EmitConvertToTarget, 2, ++/* 13509*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRANI_WU_D), 0, ++ MVT::v4i32, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5019:{ *:[iPTR] }, LSX128W:{ *:[v4i32] }:$vd_in, LSX128W:{ *:[v4i32] }:$vj, (imm:{ *:[i32] })<>:$ui6) - Complexity = 12 ++ // Dst: (VSSRANI_WU_D:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vd_in, LSX128W:{ *:[v4i32] }:$vj, (imm:{ *:[i32] })<>:$ui6) ++/* 13518*/ /*Scope*/ 26, /*->13545*/ ++/* 13519*/ OPC_CheckChild0Integer, 23|128,39/*5015*/, ++/* 13522*/ OPC_RecordChild1, // #0 = $vd_in ++/* 13523*/ OPC_RecordChild2, // #1 = $vj ++/* 13524*/ OPC_RecordChild3, // #2 = $ui7 ++/* 13525*/ OPC_MoveChild3, ++/* 13526*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 13529*/ OPC_CheckPredicate, 32, // Predicate_immZExt7 ++/* 13531*/ OPC_MoveParent, ++/* 13532*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 13534*/ OPC_EmitConvertToTarget, 2, ++/* 13536*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRANI_DU_Q), 0, ++ MVT::v2i64, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5015:{ *:[iPTR] }, LSX128D:{ *:[v2i64] }:$vd_in, LSX128D:{ *:[v2i64] }:$vj, (imm:{ *:[i32] })<>:$ui7) - Complexity = 12 ++ // Dst: (VSSRANI_DU_Q:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vd_in, LSX128D:{ *:[v2i64] }:$vj, (imm:{ *:[i32] })<>:$ui7) ++/* 13545*/ /*Scope*/ 26, /*->13572*/ ++/* 13546*/ OPC_CheckChild0Integer, 34|128,39/*5026*/, ++/* 13549*/ OPC_RecordChild1, // #0 = $vd_in ++/* 13550*/ OPC_RecordChild2, // #1 = $vj ++/* 13551*/ OPC_RecordChild3, // #2 = $ui4 ++/* 13552*/ OPC_MoveChild3, ++/* 13553*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 13556*/ OPC_CheckPredicate, 23, // Predicate_immZExt4 ++/* 13558*/ OPC_MoveParent, ++/* 13559*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 13561*/ OPC_EmitConvertToTarget, 2, ++/* 13563*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRARNI_B_H), 0, ++ MVT::v16i8, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 5026:{ *:[iPTR] }, LSX128B:{ *:[v16i8] }:$vd_in, LSX128B:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$ui4) - Complexity = 12 ++ // Dst: (VSSRARNI_B_H:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$vd_in, LSX128B:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$ui4) ++/* 13572*/ /*Scope*/ 26, /*->13599*/ ++/* 13573*/ OPC_CheckChild0Integer, 38|128,39/*5030*/, ++/* 13576*/ OPC_RecordChild1, // #0 = $vd_in ++/* 13577*/ OPC_RecordChild2, // #1 = $vj ++/* 13578*/ OPC_RecordChild3, // #2 = $ui5 ++/* 13579*/ OPC_MoveChild3, ++/* 13580*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 13583*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 13585*/ OPC_MoveParent, ++/* 13586*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 13588*/ OPC_EmitConvertToTarget, 2, ++/* 13590*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRARNI_H_W), 0, ++ MVT::v8i16, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 5030:{ *:[iPTR] }, LSX128H:{ *:[v8i16] }:$vd_in, LSX128H:{ *:[v8i16] }:$vj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (VSSRARNI_H_W:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vd_in, LSX128H:{ *:[v8i16] }:$vj, (imm:{ *:[i32] })<>:$ui5) ++/* 13599*/ /*Scope*/ 26, /*->13626*/ ++/* 13600*/ OPC_CheckChild0Integer, 40|128,39/*5032*/, ++/* 13603*/ OPC_RecordChild1, // #0 = $vd_in ++/* 13604*/ OPC_RecordChild2, // #1 = $vj ++/* 13605*/ OPC_RecordChild3, // #2 = $ui6 ++/* 13606*/ OPC_MoveChild3, ++/* 13607*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 13610*/ OPC_CheckPredicate, 30, // Predicate_immZExt6 ++/* 13612*/ OPC_MoveParent, ++/* 13613*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 13615*/ OPC_EmitConvertToTarget, 2, ++/* 13617*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRARNI_W_D), 0, ++ MVT::v4i32, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5032:{ *:[iPTR] }, LSX128W:{ *:[v4i32] }:$vd_in, LSX128W:{ *:[v4i32] }:$vj, (imm:{ *:[i32] })<>:$ui6) - Complexity = 12 ++ // Dst: (VSSRARNI_W_D:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vd_in, LSX128W:{ *:[v4i32] }:$vj, (imm:{ *:[i32] })<>:$ui6) ++/* 13626*/ /*Scope*/ 26, /*->13653*/ ++/* 13627*/ OPC_CheckChild0Integer, 36|128,39/*5028*/, ++/* 13630*/ OPC_RecordChild1, // #0 = $vd_in ++/* 13631*/ OPC_RecordChild2, // #1 = $vj ++/* 13632*/ OPC_RecordChild3, // #2 = $ui7 ++/* 13633*/ OPC_MoveChild3, ++/* 13634*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 13637*/ OPC_CheckPredicate, 32, // Predicate_immZExt7 ++/* 13639*/ OPC_MoveParent, ++/* 13640*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 13642*/ OPC_EmitConvertToTarget, 2, ++/* 13644*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRARNI_D_Q), 0, ++ MVT::v2i64, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5028:{ *:[iPTR] }, LSX128D:{ *:[v2i64] }:$vd_in, LSX128D:{ *:[v2i64] }:$vj, (imm:{ *:[i32] })<>:$ui7) - Complexity = 12 ++ // Dst: (VSSRARNI_D_Q:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vd_in, LSX128D:{ *:[v2i64] }:$vj, (imm:{ *:[i32] })<>:$ui7) ++/* 13653*/ /*Scope*/ 26, /*->13680*/ ++/* 13654*/ OPC_CheckChild0Integer, 35|128,39/*5027*/, ++/* 13657*/ OPC_RecordChild1, // #0 = $vd_in ++/* 13658*/ OPC_RecordChild2, // #1 = $vj ++/* 13659*/ OPC_RecordChild3, // #2 = $ui4 ++/* 13660*/ OPC_MoveChild3, ++/* 13661*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 13664*/ OPC_CheckPredicate, 23, // Predicate_immZExt4 ++/* 13666*/ OPC_MoveParent, ++/* 13667*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 13669*/ OPC_EmitConvertToTarget, 2, ++/* 13671*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRARNI_BU_H), 0, ++ MVT::v16i8, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 5027:{ *:[iPTR] }, LSX128B:{ *:[v16i8] }:$vd_in, LSX128B:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$ui4) - Complexity = 12 ++ // Dst: (VSSRARNI_BU_H:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$vd_in, LSX128B:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$ui4) ++/* 13680*/ /*Scope*/ 26, /*->13707*/ ++/* 13681*/ OPC_CheckChild0Integer, 39|128,39/*5031*/, ++/* 13684*/ OPC_RecordChild1, // #0 = $vd_in ++/* 13685*/ OPC_RecordChild2, // #1 = $vj ++/* 13686*/ OPC_RecordChild3, // #2 = $ui5 ++/* 13687*/ OPC_MoveChild3, ++/* 13688*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 13691*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 13693*/ OPC_MoveParent, ++/* 13694*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 13696*/ OPC_EmitConvertToTarget, 2, ++/* 13698*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRARNI_HU_W), 0, ++ MVT::v8i16, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 5031:{ *:[iPTR] }, LSX128H:{ *:[v8i16] }:$vd_in, LSX128H:{ *:[v8i16] }:$vj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (VSSRARNI_HU_W:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vd_in, LSX128H:{ *:[v8i16] }:$vj, (imm:{ *:[i32] })<>:$ui5) ++/* 13707*/ /*Scope*/ 26, /*->13734*/ ++/* 13708*/ OPC_CheckChild0Integer, 41|128,39/*5033*/, ++/* 13711*/ OPC_RecordChild1, // #0 = $vd_in ++/* 13712*/ OPC_RecordChild2, // #1 = $vj ++/* 13713*/ OPC_RecordChild3, // #2 = $ui6 ++/* 13714*/ OPC_MoveChild3, ++/* 13715*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 13718*/ OPC_CheckPredicate, 30, // Predicate_immZExt6 ++/* 13720*/ OPC_MoveParent, ++/* 13721*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 13723*/ OPC_EmitConvertToTarget, 2, ++/* 13725*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRARNI_WU_D), 0, ++ MVT::v4i32, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5033:{ *:[iPTR] }, LSX128W:{ *:[v4i32] }:$vd_in, LSX128W:{ *:[v4i32] }:$vj, (imm:{ *:[i32] })<>:$ui6) - Complexity = 12 ++ // Dst: (VSSRARNI_WU_D:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vd_in, LSX128W:{ *:[v4i32] }:$vj, (imm:{ *:[i32] })<>:$ui6) ++/* 13734*/ /*Scope*/ 26, /*->13761*/ ++/* 13735*/ OPC_CheckChild0Integer, 37|128,39/*5029*/, ++/* 13738*/ OPC_RecordChild1, // #0 = $vd_in ++/* 13739*/ OPC_RecordChild2, // #1 = $vj ++/* 13740*/ OPC_RecordChild3, // #2 = $ui7 ++/* 13741*/ OPC_MoveChild3, ++/* 13742*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 13745*/ OPC_CheckPredicate, 32, // Predicate_immZExt7 ++/* 13747*/ OPC_MoveParent, ++/* 13748*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 13750*/ OPC_EmitConvertToTarget, 2, ++/* 13752*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRARNI_DU_Q), 0, ++ MVT::v2i64, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5029:{ *:[iPTR] }, LSX128D:{ *:[v2i64] }:$vd_in, LSX128D:{ *:[v2i64] }:$vj, (imm:{ *:[i32] })<>:$ui7) - Complexity = 12 ++ // Dst: (VSSRARNI_DU_Q:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vd_in, LSX128D:{ *:[v2i64] }:$vj, (imm:{ *:[i32] })<>:$ui7) ++/* 13761*/ /*Scope*/ 22, /*->13784*/ ++/* 13762*/ OPC_CheckChild0Integer, 80|128,32/*4176*/, ++/* 13765*/ OPC_RecordChild1, // #0 = $xj ++/* 13766*/ OPC_RecordChild2, // #1 = $si5 ++/* 13767*/ OPC_MoveChild2, ++/* 13768*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 13771*/ OPC_CheckPredicate, 29, // Predicate_immSExt5 ++/* 13773*/ OPC_MoveParent, ++/* 13774*/ OPC_EmitConvertToTarget, 1, ++/* 13776*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSEQI_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4176:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] })<>:$si5) - Complexity = 12 ++ // Dst: (XVSEQI_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] }):$si5) ++/* 13784*/ /*Scope*/ 22, /*->13807*/ ++/* 13785*/ OPC_CheckChild0Integer, 82|128,32/*4178*/, ++/* 13788*/ OPC_RecordChild1, // #0 = $xj ++/* 13789*/ OPC_RecordChild2, // #1 = $si5 ++/* 13790*/ OPC_MoveChild2, ++/* 13791*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 13794*/ OPC_CheckPredicate, 29, // Predicate_immSExt5 ++/* 13796*/ OPC_MoveParent, ++/* 13797*/ OPC_EmitConvertToTarget, 1, ++/* 13799*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSEQI_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4178:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] })<>:$si5) - Complexity = 12 ++ // Dst: (XVSEQI_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] }):$si5) ++/* 13807*/ /*Scope*/ 22, /*->13830*/ ++/* 13808*/ OPC_CheckChild0Integer, 83|128,32/*4179*/, ++/* 13811*/ OPC_RecordChild1, // #0 = $xj ++/* 13812*/ OPC_RecordChild2, // #1 = $si5 ++/* 13813*/ OPC_MoveChild2, ++/* 13814*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 13817*/ OPC_CheckPredicate, 29, // Predicate_immSExt5 ++/* 13819*/ OPC_MoveParent, ++/* 13820*/ OPC_EmitConvertToTarget, 1, ++/* 13822*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSEQI_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4179:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] })<>:$si5) - Complexity = 12 ++ // Dst: (XVSEQI_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] }):$si5) ++/* 13830*/ /*Scope*/ 22, /*->13853*/ ++/* 13831*/ OPC_CheckChild0Integer, 81|128,32/*4177*/, ++/* 13834*/ OPC_RecordChild1, // #0 = $xj ++/* 13835*/ OPC_RecordChild2, // #1 = $si5 ++/* 13836*/ OPC_MoveChild2, ++/* 13837*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 13840*/ OPC_CheckPredicate, 29, // Predicate_immSExt5 ++/* 13842*/ OPC_MoveParent, ++/* 13843*/ OPC_EmitConvertToTarget, 1, ++/* 13845*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSEQI_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4177:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] })<>:$si5) - Complexity = 12 ++ // Dst: (XVSEQI_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] }):$si5) ++/* 13853*/ /*Scope*/ 22, /*->13876*/ ++/* 13854*/ OPC_CheckChild0Integer, 104|128,32/*4200*/, ++/* 13857*/ OPC_RecordChild1, // #0 = $xj ++/* 13858*/ OPC_RecordChild2, // #1 = $si5 ++/* 13859*/ OPC_MoveChild2, ++/* 13860*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 13863*/ OPC_CheckPredicate, 29, // Predicate_immSExt5 ++/* 13865*/ OPC_MoveParent, ++/* 13866*/ OPC_EmitConvertToTarget, 1, ++/* 13868*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLEI_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4200:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] })<>:$si5) - Complexity = 12 ++ // Dst: (XVSLEI_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] }):$si5) ++/* 13876*/ /*Scope*/ 22, /*->13899*/ ++/* 13877*/ OPC_CheckChild0Integer, 108|128,32/*4204*/, ++/* 13880*/ OPC_RecordChild1, // #0 = $xj ++/* 13881*/ OPC_RecordChild2, // #1 = $si5 ++/* 13882*/ OPC_MoveChild2, ++/* 13883*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 13886*/ OPC_CheckPredicate, 29, // Predicate_immSExt5 ++/* 13888*/ OPC_MoveParent, ++/* 13889*/ OPC_EmitConvertToTarget, 1, ++/* 13891*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLEI_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4204:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] })<>:$si5) - Complexity = 12 ++ // Dst: (XVSLEI_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] }):$si5) ++/* 13899*/ /*Scope*/ 22, /*->13922*/ ++/* 13900*/ OPC_CheckChild0Integer, 110|128,32/*4206*/, ++/* 13903*/ OPC_RecordChild1, // #0 = $xj ++/* 13904*/ OPC_RecordChild2, // #1 = $si5 ++/* 13905*/ OPC_MoveChild2, ++/* 13906*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 13909*/ OPC_CheckPredicate, 29, // Predicate_immSExt5 ++/* 13911*/ OPC_MoveParent, ++/* 13912*/ OPC_EmitConvertToTarget, 1, ++/* 13914*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLEI_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4206:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] })<>:$si5) - Complexity = 12 ++ // Dst: (XVSLEI_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] }):$si5) ++/* 13922*/ /*Scope*/ 22, /*->13945*/ ++/* 13923*/ OPC_CheckChild0Integer, 106|128,32/*4202*/, ++/* 13926*/ OPC_RecordChild1, // #0 = $xj ++/* 13927*/ OPC_RecordChild2, // #1 = $si5 ++/* 13928*/ OPC_MoveChild2, ++/* 13929*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 13932*/ OPC_CheckPredicate, 29, // Predicate_immSExt5 ++/* 13934*/ OPC_MoveParent, ++/* 13935*/ OPC_EmitConvertToTarget, 1, ++/* 13937*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLEI_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4202:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] })<>:$si5) - Complexity = 12 ++ // Dst: (XVSLEI_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] }):$si5) ++/* 13945*/ /*Scope*/ 22, /*->13968*/ ++/* 13946*/ OPC_CheckChild0Integer, 105|128,32/*4201*/, ++/* 13949*/ OPC_RecordChild1, // #0 = $xj ++/* 13950*/ OPC_RecordChild2, // #1 = $ui5 ++/* 13951*/ OPC_MoveChild2, ++/* 13952*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 13955*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 13957*/ OPC_MoveParent, ++/* 13958*/ OPC_EmitConvertToTarget, 1, ++/* 13960*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLEI_BU), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4201:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (XVSLEI_BU:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] }):$ui5) ++/* 13968*/ /*Scope*/ 22, /*->13991*/ ++/* 13969*/ OPC_CheckChild0Integer, 109|128,32/*4205*/, ++/* 13972*/ OPC_RecordChild1, // #0 = $xj ++/* 13973*/ OPC_RecordChild2, // #1 = $ui5 ++/* 13974*/ OPC_MoveChild2, ++/* 13975*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 13978*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 13980*/ OPC_MoveParent, ++/* 13981*/ OPC_EmitConvertToTarget, 1, ++/* 13983*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLEI_HU), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4205:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (XVSLEI_HU:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] }):$ui5) ++/* 13991*/ /*Scope*/ 22, /*->14014*/ ++/* 13992*/ OPC_CheckChild0Integer, 111|128,32/*4207*/, ++/* 13995*/ OPC_RecordChild1, // #0 = $xj ++/* 13996*/ OPC_RecordChild2, // #1 = $ui5 ++/* 13997*/ OPC_MoveChild2, ++/* 13998*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 14001*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 14003*/ OPC_MoveParent, ++/* 14004*/ OPC_EmitConvertToTarget, 1, ++/* 14006*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLEI_WU), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4207:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (XVSLEI_WU:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] }):$ui5) ++/* 14014*/ /*Scope*/ 22, /*->14037*/ ++/* 14015*/ OPC_CheckChild0Integer, 107|128,32/*4203*/, ++/* 14018*/ OPC_RecordChild1, // #0 = $xj ++/* 14019*/ OPC_RecordChild2, // #1 = $ui5 ++/* 14020*/ OPC_MoveChild2, ++/* 14021*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 14024*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 14026*/ OPC_MoveParent, ++/* 14027*/ OPC_EmitConvertToTarget, 1, ++/* 14029*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLEI_DU), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4203:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (XVSLEI_DU:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] }):$ui5) ++/* 14037*/ /*Scope*/ 22, /*->14060*/ ++/* 14038*/ OPC_CheckChild0Integer, 6|128,33/*4230*/, ++/* 14041*/ OPC_RecordChild1, // #0 = $xj ++/* 14042*/ OPC_RecordChild2, // #1 = $si5 ++/* 14043*/ OPC_MoveChild2, ++/* 14044*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 14047*/ OPC_CheckPredicate, 29, // Predicate_immSExt5 ++/* 14049*/ OPC_MoveParent, ++/* 14050*/ OPC_EmitConvertToTarget, 1, ++/* 14052*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLTI_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4230:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] })<>:$si5) - Complexity = 12 ++ // Dst: (XVSLTI_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] }):$si5) ++/* 14060*/ /*Scope*/ 22, /*->14083*/ ++/* 14061*/ OPC_CheckChild0Integer, 10|128,33/*4234*/, ++/* 14064*/ OPC_RecordChild1, // #0 = $xj ++/* 14065*/ OPC_RecordChild2, // #1 = $si5 ++/* 14066*/ OPC_MoveChild2, ++/* 14067*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 14070*/ OPC_CheckPredicate, 29, // Predicate_immSExt5 ++/* 14072*/ OPC_MoveParent, ++/* 14073*/ OPC_EmitConvertToTarget, 1, ++/* 14075*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLTI_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4234:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] })<>:$si5) - Complexity = 12 ++ // Dst: (XVSLTI_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] }):$si5) ++/* 14083*/ /*Scope*/ 22, /*->14106*/ ++/* 14084*/ OPC_CheckChild0Integer, 12|128,33/*4236*/, ++/* 14087*/ OPC_RecordChild1, // #0 = $xj ++/* 14088*/ OPC_RecordChild2, // #1 = $si5 ++/* 14089*/ OPC_MoveChild2, ++/* 14090*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 14093*/ OPC_CheckPredicate, 29, // Predicate_immSExt5 ++/* 14095*/ OPC_MoveParent, ++/* 14096*/ OPC_EmitConvertToTarget, 1, ++/* 14098*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLTI_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4236:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] })<>:$si5) - Complexity = 12 ++ // Dst: (XVSLTI_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] }):$si5) ++/* 14106*/ /*Scope*/ 22, /*->14129*/ ++/* 14107*/ OPC_CheckChild0Integer, 8|128,33/*4232*/, ++/* 14110*/ OPC_RecordChild1, // #0 = $xj ++/* 14111*/ OPC_RecordChild2, // #1 = $si5 ++/* 14112*/ OPC_MoveChild2, ++/* 14113*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 14116*/ OPC_CheckPredicate, 29, // Predicate_immSExt5 ++/* 14118*/ OPC_MoveParent, ++/* 14119*/ OPC_EmitConvertToTarget, 1, ++/* 14121*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLTI_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4232:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] })<>:$si5) - Complexity = 12 ++ // Dst: (XVSLTI_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] }):$si5) ++/* 14129*/ /*Scope*/ 22, /*->14152*/ ++/* 14130*/ OPC_CheckChild0Integer, 7|128,33/*4231*/, ++/* 14133*/ OPC_RecordChild1, // #0 = $xj ++/* 14134*/ OPC_RecordChild2, // #1 = $ui5 ++/* 14135*/ OPC_MoveChild2, ++/* 14136*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 14139*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 14141*/ OPC_MoveParent, ++/* 14142*/ OPC_EmitConvertToTarget, 1, ++/* 14144*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLTI_BU), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4231:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (XVSLTI_BU:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] }):$ui5) ++/* 14152*/ /*Scope*/ 22, /*->14175*/ ++/* 14153*/ OPC_CheckChild0Integer, 11|128,33/*4235*/, ++/* 14156*/ OPC_RecordChild1, // #0 = $xj ++/* 14157*/ OPC_RecordChild2, // #1 = $ui5 ++/* 14158*/ OPC_MoveChild2, ++/* 14159*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 14162*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 14164*/ OPC_MoveParent, ++/* 14165*/ OPC_EmitConvertToTarget, 1, ++/* 14167*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLTI_HU), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4235:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (XVSLTI_HU:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] }):$ui5) ++/* 14175*/ /*Scope*/ 22, /*->14198*/ ++/* 14176*/ OPC_CheckChild0Integer, 13|128,33/*4237*/, ++/* 14179*/ OPC_RecordChild1, // #0 = $xj ++/* 14180*/ OPC_RecordChild2, // #1 = $ui5 ++/* 14181*/ OPC_MoveChild2, ++/* 14182*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 14185*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 14187*/ OPC_MoveParent, ++/* 14188*/ OPC_EmitConvertToTarget, 1, ++/* 14190*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLTI_WU), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4237:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (XVSLTI_WU:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] }):$ui5) ++/* 14198*/ /*Scope*/ 22, /*->14221*/ ++/* 14199*/ OPC_CheckChild0Integer, 9|128,33/*4233*/, ++/* 14202*/ OPC_RecordChild1, // #0 = $xj ++/* 14203*/ OPC_RecordChild2, // #1 = $ui5 ++/* 14204*/ OPC_MoveChild2, ++/* 14205*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 14208*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 14210*/ OPC_MoveParent, ++/* 14211*/ OPC_EmitConvertToTarget, 1, ++/* 14213*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLTI_DU), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4233:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (XVSLTI_DU:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] }):$ui5) ++/* 14221*/ /*Scope*/ 22, /*->14244*/ ++/* 14222*/ OPC_CheckChild0Integer, 120|128,28/*3704*/, ++/* 14225*/ OPC_RecordChild1, // #0 = $xj ++/* 14226*/ OPC_RecordChild2, // #1 = $ui5 ++/* 14227*/ OPC_MoveChild2, ++/* 14228*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 14231*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 14233*/ OPC_MoveParent, ++/* 14234*/ OPC_EmitConvertToTarget, 1, ++/* 14236*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVADDI_BU), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 3704:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (XVADDI_BU:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] }):$ui5) ++/* 14244*/ /*Scope*/ 22, /*->14267*/ ++/* 14245*/ OPC_CheckChild0Integer, 122|128,28/*3706*/, ++/* 14248*/ OPC_RecordChild1, // #0 = $xj ++/* 14249*/ OPC_RecordChild2, // #1 = $ui5 ++/* 14250*/ OPC_MoveChild2, ++/* 14251*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 14254*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 14256*/ OPC_MoveParent, ++/* 14257*/ OPC_EmitConvertToTarget, 1, ++/* 14259*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVADDI_HU), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 3706:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (XVADDI_HU:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] }):$ui5) ++/* 14267*/ /*Scope*/ 22, /*->14290*/ ++/* 14268*/ OPC_CheckChild0Integer, 123|128,28/*3707*/, ++/* 14271*/ OPC_RecordChild1, // #0 = $xj ++/* 14272*/ OPC_RecordChild2, // #1 = $ui5 ++/* 14273*/ OPC_MoveChild2, ++/* 14274*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 14277*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 14279*/ OPC_MoveParent, ++/* 14280*/ OPC_EmitConvertToTarget, 1, ++/* 14282*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVADDI_WU), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3707:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (XVADDI_WU:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] }):$ui5) ++/* 14290*/ /*Scope*/ 22, /*->14313*/ ++/* 14291*/ OPC_CheckChild0Integer, 121|128,28/*3705*/, ++/* 14294*/ OPC_RecordChild1, // #0 = $xj ++/* 14295*/ OPC_RecordChild2, // #1 = $ui5 ++/* 14296*/ OPC_MoveChild2, ++/* 14297*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 14300*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 14302*/ OPC_MoveParent, ++/* 14303*/ OPC_EmitConvertToTarget, 1, ++/* 14305*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVADDI_DU), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3705:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (XVADDI_DU:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] }):$ui5) ++/* 14313*/ /*Scope*/ 22, /*->14336*/ ++/* 14314*/ OPC_CheckChild0Integer, 21|128,34/*4373*/, ++/* 14317*/ OPC_RecordChild1, // #0 = $xj ++/* 14318*/ OPC_RecordChild2, // #1 = $ui5 ++/* 14319*/ OPC_MoveChild2, ++/* 14320*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 14323*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 14325*/ OPC_MoveParent, ++/* 14326*/ OPC_EmitConvertToTarget, 1, ++/* 14328*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSUBI_BU), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4373:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (XVSUBI_BU:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] }):$ui5) ++/* 14336*/ /*Scope*/ 22, /*->14359*/ ++/* 14337*/ OPC_CheckChild0Integer, 23|128,34/*4375*/, ++/* 14340*/ OPC_RecordChild1, // #0 = $xj ++/* 14341*/ OPC_RecordChild2, // #1 = $ui5 ++/* 14342*/ OPC_MoveChild2, ++/* 14343*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 14346*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 14348*/ OPC_MoveParent, ++/* 14349*/ OPC_EmitConvertToTarget, 1, ++/* 14351*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSUBI_HU), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4375:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (XVSUBI_HU:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] }):$ui5) ++/* 14359*/ /*Scope*/ 22, /*->14382*/ ++/* 14360*/ OPC_CheckChild0Integer, 24|128,34/*4376*/, ++/* 14363*/ OPC_RecordChild1, // #0 = $xj ++/* 14364*/ OPC_RecordChild2, // #1 = $ui5 ++/* 14365*/ OPC_MoveChild2, ++/* 14366*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 14369*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 14371*/ OPC_MoveParent, ++/* 14372*/ OPC_EmitConvertToTarget, 1, ++/* 14374*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSUBI_WU), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4376:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (XVSUBI_WU:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] }):$ui5) ++/* 14382*/ /*Scope*/ 22, /*->14405*/ ++/* 14383*/ OPC_CheckChild0Integer, 22|128,34/*4374*/, ++/* 14386*/ OPC_RecordChild1, // #0 = $xj ++/* 14387*/ OPC_RecordChild2, // #1 = $ui5 ++/* 14388*/ OPC_MoveChild2, ++/* 14389*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 14392*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 14394*/ OPC_MoveParent, ++/* 14395*/ OPC_EmitConvertToTarget, 1, ++/* 14397*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSUBI_DU), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4374:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (XVSUBI_DU:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] }):$ui5) ++/* 14405*/ /*Scope*/ 22, /*->14428*/ ++/* 14406*/ OPC_CheckChild0Integer, 65|128,29/*3777*/, ++/* 14409*/ OPC_RecordChild1, // #0 = $xj ++/* 14410*/ OPC_RecordChild2, // #1 = $ui5 ++/* 14411*/ OPC_MoveChild2, ++/* 14412*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 14415*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 14417*/ OPC_MoveParent, ++/* 14418*/ OPC_EmitConvertToTarget, 1, ++/* 14420*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBSLL_V), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 3777:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (XVBSLL_V:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] }):$ui5) ++/* 14428*/ /*Scope*/ 22, /*->14451*/ ++/* 14429*/ OPC_CheckChild0Integer, 66|128,29/*3778*/, ++/* 14432*/ OPC_RecordChild1, // #0 = $xj ++/* 14433*/ OPC_RecordChild2, // #1 = $ui5 ++/* 14434*/ OPC_MoveChild2, ++/* 14435*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 14438*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 14440*/ OPC_MoveParent, ++/* 14441*/ OPC_EmitConvertToTarget, 1, ++/* 14443*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBSRL_V), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 3778:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (XVBSRL_V:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] }):$ui5) ++/* 14451*/ /*Scope*/ 22, /*->14474*/ ++/* 14452*/ OPC_CheckChild0Integer, 46|128,31/*4014*/, ++/* 14455*/ OPC_RecordChild1, // #0 = $xj ++/* 14456*/ OPC_RecordChild2, // #1 = $si5 ++/* 14457*/ OPC_MoveChild2, ++/* 14458*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 14461*/ OPC_CheckPredicate, 29, // Predicate_immSExt5 ++/* 14463*/ OPC_MoveParent, ++/* 14464*/ OPC_EmitConvertToTarget, 1, ++/* 14466*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMAXI_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4014:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] })<>:$si5) - Complexity = 12 ++ // Dst: (XVMAXI_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] }):$si5) ++/* 14474*/ /*Scope*/ 22, /*->14497*/ ++/* 14475*/ OPC_CheckChild0Integer, 50|128,31/*4018*/, ++/* 14478*/ OPC_RecordChild1, // #0 = $xj ++/* 14479*/ OPC_RecordChild2, // #1 = $si5 ++/* 14480*/ OPC_MoveChild2, ++/* 14481*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 14484*/ OPC_CheckPredicate, 29, // Predicate_immSExt5 ++/* 14486*/ OPC_MoveParent, ++/* 14487*/ OPC_EmitConvertToTarget, 1, ++/* 14489*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMAXI_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4018:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] })<>:$si5) - Complexity = 12 ++ // Dst: (XVMAXI_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] }):$si5) ++/* 14497*/ /*Scope*/ 22, /*->14520*/ ++/* 14498*/ OPC_CheckChild0Integer, 52|128,31/*4020*/, ++/* 14501*/ OPC_RecordChild1, // #0 = $xj ++/* 14502*/ OPC_RecordChild2, // #1 = $si5 ++/* 14503*/ OPC_MoveChild2, ++/* 14504*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 14507*/ OPC_CheckPredicate, 29, // Predicate_immSExt5 ++/* 14509*/ OPC_MoveParent, ++/* 14510*/ OPC_EmitConvertToTarget, 1, ++/* 14512*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMAXI_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4020:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] })<>:$si5) - Complexity = 12 ++ // Dst: (XVMAXI_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] }):$si5) ++/* 14520*/ /*Scope*/ 22, /*->14543*/ ++/* 14521*/ OPC_CheckChild0Integer, 48|128,31/*4016*/, ++/* 14524*/ OPC_RecordChild1, // #0 = $xj ++/* 14525*/ OPC_RecordChild2, // #1 = $si5 ++/* 14526*/ OPC_MoveChild2, ++/* 14527*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 14530*/ OPC_CheckPredicate, 29, // Predicate_immSExt5 ++/* 14532*/ OPC_MoveParent, ++/* 14533*/ OPC_EmitConvertToTarget, 1, ++/* 14535*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMAXI_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4016:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] })<>:$si5) - Complexity = 12 ++ // Dst: (XVMAXI_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] }):$si5) ++/* 14543*/ /*Scope*/ 22, /*->14566*/ ++/* 14544*/ OPC_CheckChild0Integer, 62|128,31/*4030*/, ++/* 14547*/ OPC_RecordChild1, // #0 = $xj ++/* 14548*/ OPC_RecordChild2, // #1 = $si5 ++/* 14549*/ OPC_MoveChild2, ++/* 14550*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 14553*/ OPC_CheckPredicate, 29, // Predicate_immSExt5 ++/* 14555*/ OPC_MoveParent, ++/* 14556*/ OPC_EmitConvertToTarget, 1, ++/* 14558*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMINI_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4030:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] })<>:$si5) - Complexity = 12 ++ // Dst: (XVMINI_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] }):$si5) ++/* 14566*/ /*Scope*/ 22, /*->14589*/ ++/* 14567*/ OPC_CheckChild0Integer, 66|128,31/*4034*/, ++/* 14570*/ OPC_RecordChild1, // #0 = $xj ++/* 14571*/ OPC_RecordChild2, // #1 = $si5 ++/* 14572*/ OPC_MoveChild2, ++/* 14573*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 14576*/ OPC_CheckPredicate, 29, // Predicate_immSExt5 ++/* 14578*/ OPC_MoveParent, ++/* 14579*/ OPC_EmitConvertToTarget, 1, ++/* 14581*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMINI_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4034:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] })<>:$si5) - Complexity = 12 ++ // Dst: (XVMINI_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] }):$si5) ++/* 14589*/ /*Scope*/ 22, /*->14612*/ ++/* 14590*/ OPC_CheckChild0Integer, 68|128,31/*4036*/, ++/* 14593*/ OPC_RecordChild1, // #0 = $xj ++/* 14594*/ OPC_RecordChild2, // #1 = $si5 ++/* 14595*/ OPC_MoveChild2, ++/* 14596*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 14599*/ OPC_CheckPredicate, 29, // Predicate_immSExt5 ++/* 14601*/ OPC_MoveParent, ++/* 14602*/ OPC_EmitConvertToTarget, 1, ++/* 14604*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMINI_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4036:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] })<>:$si5) - Complexity = 12 ++ // Dst: (XVMINI_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] }):$si5) ++/* 14612*/ /*Scope*/ 22, /*->14635*/ ++/* 14613*/ OPC_CheckChild0Integer, 64|128,31/*4032*/, ++/* 14616*/ OPC_RecordChild1, // #0 = $xj ++/* 14617*/ OPC_RecordChild2, // #1 = $si5 ++/* 14618*/ OPC_MoveChild2, ++/* 14619*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 14622*/ OPC_CheckPredicate, 29, // Predicate_immSExt5 ++/* 14624*/ OPC_MoveParent, ++/* 14625*/ OPC_EmitConvertToTarget, 1, ++/* 14627*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMINI_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4032:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] })<>:$si5) - Complexity = 12 ++ // Dst: (XVMINI_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] }):$si5) ++/* 14635*/ /*Scope*/ 22, /*->14658*/ ++/* 14636*/ OPC_CheckChild0Integer, 47|128,31/*4015*/, ++/* 14639*/ OPC_RecordChild1, // #0 = $xj ++/* 14640*/ OPC_RecordChild2, // #1 = $ui5 ++/* 14641*/ OPC_MoveChild2, ++/* 14642*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 14645*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 14647*/ OPC_MoveParent, ++/* 14648*/ OPC_EmitConvertToTarget, 1, ++/* 14650*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMAXI_BU), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4015:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (XVMAXI_BU:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] }):$ui5) ++/* 14658*/ /*Scope*/ 22, /*->14681*/ ++/* 14659*/ OPC_CheckChild0Integer, 51|128,31/*4019*/, ++/* 14662*/ OPC_RecordChild1, // #0 = $xj ++/* 14663*/ OPC_RecordChild2, // #1 = $ui5 ++/* 14664*/ OPC_MoveChild2, ++/* 14665*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 14668*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 14670*/ OPC_MoveParent, ++/* 14671*/ OPC_EmitConvertToTarget, 1, ++/* 14673*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMAXI_HU), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4019:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (XVMAXI_HU:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] }):$ui5) ++/* 14681*/ /*Scope*/ 22, /*->14704*/ ++/* 14682*/ OPC_CheckChild0Integer, 53|128,31/*4021*/, ++/* 14685*/ OPC_RecordChild1, // #0 = $xj ++/* 14686*/ OPC_RecordChild2, // #1 = $ui5 ++/* 14687*/ OPC_MoveChild2, ++/* 14688*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 14691*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 14693*/ OPC_MoveParent, ++/* 14694*/ OPC_EmitConvertToTarget, 1, ++/* 14696*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMAXI_WU), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4021:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (XVMAXI_WU:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] }):$ui5) ++/* 14704*/ /*Scope*/ 22, /*->14727*/ ++/* 14705*/ OPC_CheckChild0Integer, 49|128,31/*4017*/, ++/* 14708*/ OPC_RecordChild1, // #0 = $xj ++/* 14709*/ OPC_RecordChild2, // #1 = $ui5 ++/* 14710*/ OPC_MoveChild2, ++/* 14711*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 14714*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 14716*/ OPC_MoveParent, ++/* 14717*/ OPC_EmitConvertToTarget, 1, ++/* 14719*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMAXI_DU), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4017:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (XVMAXI_DU:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] }):$ui5) ++/* 14727*/ /*Scope*/ 22, /*->14750*/ ++/* 14728*/ OPC_CheckChild0Integer, 63|128,31/*4031*/, ++/* 14731*/ OPC_RecordChild1, // #0 = $xj ++/* 14732*/ OPC_RecordChild2, // #1 = $ui5 ++/* 14733*/ OPC_MoveChild2, ++/* 14734*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 14737*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 14739*/ OPC_MoveParent, ++/* 14740*/ OPC_EmitConvertToTarget, 1, ++/* 14742*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMINI_BU), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4031:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (XVMINI_BU:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] }):$ui5) ++/* 14750*/ /*Scope*/ 22, /*->14773*/ ++/* 14751*/ OPC_CheckChild0Integer, 67|128,31/*4035*/, ++/* 14754*/ OPC_RecordChild1, // #0 = $xj ++/* 14755*/ OPC_RecordChild2, // #1 = $ui5 ++/* 14756*/ OPC_MoveChild2, ++/* 14757*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 14760*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 14762*/ OPC_MoveParent, ++/* 14763*/ OPC_EmitConvertToTarget, 1, ++/* 14765*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMINI_HU), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4035:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (XVMINI_HU:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] }):$ui5) ++/* 14773*/ /*Scope*/ 22, /*->14796*/ ++/* 14774*/ OPC_CheckChild0Integer, 69|128,31/*4037*/, ++/* 14777*/ OPC_RecordChild1, // #0 = $xj ++/* 14778*/ OPC_RecordChild2, // #1 = $ui5 ++/* 14779*/ OPC_MoveChild2, ++/* 14780*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 14783*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 14785*/ OPC_MoveParent, ++/* 14786*/ OPC_EmitConvertToTarget, 1, ++/* 14788*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMINI_WU), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4037:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (XVMINI_WU:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] }):$ui5) ++/* 14796*/ /*Scope*/ 22, /*->14819*/ ++/* 14797*/ OPC_CheckChild0Integer, 65|128,31/*4033*/, ++/* 14800*/ OPC_RecordChild1, // #0 = $xj ++/* 14801*/ OPC_RecordChild2, // #1 = $ui5 ++/* 14802*/ OPC_MoveChild2, ++/* 14803*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 14806*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 14808*/ OPC_MoveParent, ++/* 14809*/ OPC_EmitConvertToTarget, 1, ++/* 14811*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMINI_DU), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4033:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (XVMINI_DU:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] }):$ui5) ++/* 14819*/ /*Scope*/ 24, /*->14844*/ ++/* 14820*/ OPC_CheckChild0Integer, 68|128,30/*3908*/, ++/* 14823*/ OPC_RecordChild1, // #0 = $xd_in ++/* 14824*/ OPC_RecordChild2, // #1 = $xj ++/* 14825*/ OPC_RecordChild3, // #2 = $ui5 ++/* 14826*/ OPC_MoveChild3, ++/* 14827*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 14830*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 14832*/ OPC_MoveParent, ++/* 14833*/ OPC_EmitConvertToTarget, 2, ++/* 14835*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFRSTPI_B), 0, ++ MVT::v32i8, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 3908:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xd_in, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (XVFRSTPI_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xd_in, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] }):$ui5) ++/* 14844*/ /*Scope*/ 24, /*->14869*/ ++/* 14845*/ OPC_CheckChild0Integer, 69|128,30/*3909*/, ++/* 14848*/ OPC_RecordChild1, // #0 = $xd_in ++/* 14849*/ OPC_RecordChild2, // #1 = $xj ++/* 14850*/ OPC_RecordChild3, // #2 = $ui5 ++/* 14851*/ OPC_MoveChild3, ++/* 14852*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 14855*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 14857*/ OPC_MoveParent, ++/* 14858*/ OPC_EmitConvertToTarget, 2, ++/* 14860*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFRSTPI_H), 0, ++ MVT::v16i16, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 3909:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xd_in, LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (XVFRSTPI_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xd_in, LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] }):$ui5) ++/* 14869*/ /*Scope*/ 22, /*->14892*/ ++/* 14870*/ OPC_CheckChild0Integer, 56|128,32/*4152*/, ++/* 14873*/ OPC_RecordChild1, // #0 = $xj ++/* 14874*/ OPC_RecordChild2, // #1 = $ui3 ++/* 14875*/ OPC_MoveChild2, ++/* 14876*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 14879*/ OPC_CheckPredicate, 24, // Predicate_immZExt3 ++/* 14881*/ OPC_MoveParent, ++/* 14882*/ OPC_EmitConvertToTarget, 1, ++/* 14884*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVROTRI_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4152:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] })<>:$ui3) - Complexity = 12 ++ // Dst: (XVROTRI_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] }):$ui3) ++/* 14892*/ /*Scope*/ 22, /*->14915*/ ++/* 14893*/ OPC_CheckChild0Integer, 58|128,32/*4154*/, ++/* 14896*/ OPC_RecordChild1, // #0 = $xj ++/* 14897*/ OPC_RecordChild2, // #1 = $ui4 ++/* 14898*/ OPC_MoveChild2, ++/* 14899*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 14902*/ OPC_CheckPredicate, 23, // Predicate_immZExt4 ++/* 14904*/ OPC_MoveParent, ++/* 14905*/ OPC_EmitConvertToTarget, 1, ++/* 14907*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVROTRI_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4154:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] })<>:$ui4) - Complexity = 12 ++ // Dst: (XVROTRI_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] }):$ui4) ++/* 14915*/ /*Scope*/ 22, /*->14938*/ ++/* 14916*/ OPC_CheckChild0Integer, 59|128,32/*4155*/, ++/* 14919*/ OPC_RecordChild1, // #0 = $xj ++/* 14920*/ OPC_RecordChild2, // #1 = $ui5 ++/* 14921*/ OPC_MoveChild2, ++/* 14922*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 14925*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 14927*/ OPC_MoveParent, ++/* 14928*/ OPC_EmitConvertToTarget, 1, ++/* 14930*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVROTRI_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4155:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (XVROTRI_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] }):$ui5) ++/* 14938*/ /*Scope*/ 22, /*->14961*/ ++/* 14939*/ OPC_CheckChild0Integer, 57|128,32/*4153*/, ++/* 14942*/ OPC_RecordChild1, // #0 = $xj ++/* 14943*/ OPC_RecordChild2, // #1 = $ui6 ++/* 14944*/ OPC_MoveChild2, ++/* 14945*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 14948*/ OPC_CheckPredicate, 30, // Predicate_immZExt6 ++/* 14950*/ OPC_MoveParent, ++/* 14951*/ OPC_EmitConvertToTarget, 1, ++/* 14953*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVROTRI_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4153:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] })<>:$ui6) - Complexity = 12 ++ // Dst: (XVROTRI_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] }):$ui6) ++/* 14961*/ /*Scope*/ 22, /*->14984*/ ++/* 14962*/ OPC_CheckChild0Integer, 63|128,33/*4287*/, ++/* 14965*/ OPC_RecordChild1, // #0 = $xj ++/* 14966*/ OPC_RecordChild2, // #1 = $ui3 ++/* 14967*/ OPC_MoveChild2, ++/* 14968*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 14971*/ OPC_CheckPredicate, 24, // Predicate_immZExt3 ++/* 14973*/ OPC_MoveParent, ++/* 14974*/ OPC_EmitConvertToTarget, 1, ++/* 14976*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRLRI_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4287:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] })<>:$ui3) - Complexity = 12 ++ // Dst: (XVSRLRI_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] }):$ui3) ++/* 14984*/ /*Scope*/ 22, /*->15007*/ ++/* 14985*/ OPC_CheckChild0Integer, 65|128,33/*4289*/, ++/* 14988*/ OPC_RecordChild1, // #0 = $xj ++/* 14989*/ OPC_RecordChild2, // #1 = $ui4 ++/* 14990*/ OPC_MoveChild2, ++/* 14991*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 14994*/ OPC_CheckPredicate, 23, // Predicate_immZExt4 ++/* 14996*/ OPC_MoveParent, ++/* 14997*/ OPC_EmitConvertToTarget, 1, ++/* 14999*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRLRI_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4289:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] })<>:$ui4) - Complexity = 12 ++ // Dst: (XVSRLRI_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] }):$ui4) ++/* 15007*/ /*Scope*/ 22, /*->15030*/ ++/* 15008*/ OPC_CheckChild0Integer, 66|128,33/*4290*/, ++/* 15011*/ OPC_RecordChild1, // #0 = $xj ++/* 15012*/ OPC_RecordChild2, // #1 = $ui5 ++/* 15013*/ OPC_MoveChild2, ++/* 15014*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 15017*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 15019*/ OPC_MoveParent, ++/* 15020*/ OPC_EmitConvertToTarget, 1, ++/* 15022*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRLRI_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4290:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (XVSRLRI_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] }):$ui5) ++/* 15030*/ /*Scope*/ 22, /*->15053*/ ++/* 15031*/ OPC_CheckChild0Integer, 64|128,33/*4288*/, ++/* 15034*/ OPC_RecordChild1, // #0 = $xj ++/* 15035*/ OPC_RecordChild2, // #1 = $ui6 ++/* 15036*/ OPC_MoveChild2, ++/* 15037*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 15040*/ OPC_CheckPredicate, 30, // Predicate_immZExt6 ++/* 15042*/ OPC_MoveParent, ++/* 15043*/ OPC_EmitConvertToTarget, 1, ++/* 15045*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRLRI_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4288:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] })<>:$ui6) - Complexity = 12 ++ // Dst: (XVSRLRI_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] }):$ui6) ++/* 15053*/ /*Scope*/ 22, /*->15076*/ ++/* 15054*/ OPC_CheckChild0Integer, 33|128,33/*4257*/, ++/* 15057*/ OPC_RecordChild1, // #0 = $xj ++/* 15058*/ OPC_RecordChild2, // #1 = $ui3 ++/* 15059*/ OPC_MoveChild2, ++/* 15060*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 15063*/ OPC_CheckPredicate, 24, // Predicate_immZExt3 ++/* 15065*/ OPC_MoveParent, ++/* 15066*/ OPC_EmitConvertToTarget, 1, ++/* 15068*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRARI_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4257:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] })<>:$ui3) - Complexity = 12 ++ // Dst: (XVSRARI_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] }):$ui3) ++/* 15076*/ /*Scope*/ 22, /*->15099*/ ++/* 15077*/ OPC_CheckChild0Integer, 35|128,33/*4259*/, ++/* 15080*/ OPC_RecordChild1, // #0 = $xj ++/* 15081*/ OPC_RecordChild2, // #1 = $ui4 ++/* 15082*/ OPC_MoveChild2, ++/* 15083*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 15086*/ OPC_CheckPredicate, 23, // Predicate_immZExt4 ++/* 15088*/ OPC_MoveParent, ++/* 15089*/ OPC_EmitConvertToTarget, 1, ++/* 15091*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRARI_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4259:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] })<>:$ui4) - Complexity = 12 ++ // Dst: (XVSRARI_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] }):$ui4) ++/* 15099*/ /*Scope*/ 22, /*->15122*/ ++/* 15100*/ OPC_CheckChild0Integer, 36|128,33/*4260*/, ++/* 15103*/ OPC_RecordChild1, // #0 = $xj ++/* 15104*/ OPC_RecordChild2, // #1 = $ui5 ++/* 15105*/ OPC_MoveChild2, ++/* 15106*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 15109*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 15111*/ OPC_MoveParent, ++/* 15112*/ OPC_EmitConvertToTarget, 1, ++/* 15114*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRARI_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4260:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (XVSRARI_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] }):$ui5) ++/* 15122*/ /*Scope*/ 22, /*->15145*/ ++/* 15123*/ OPC_CheckChild0Integer, 34|128,33/*4258*/, ++/* 15126*/ OPC_RecordChild1, // #0 = $xj ++/* 15127*/ OPC_RecordChild2, // #1 = $ui6 ++/* 15128*/ OPC_MoveChild2, ++/* 15129*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 15132*/ OPC_CheckPredicate, 30, // Predicate_immZExt6 ++/* 15134*/ OPC_MoveParent, ++/* 15135*/ OPC_EmitConvertToTarget, 1, ++/* 15137*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRARI_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4258:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] })<>:$ui6) - Complexity = 12 ++ // Dst: (XVSRARI_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] }):$ui6) ++/* 15145*/ /*Scope*/ 22, /*->15168*/ ++/* 15146*/ OPC_CheckChild0Integer, 35|128,32/*4131*/, ++/* 15149*/ OPC_RecordChild1, // #0 = $xj ++/* 15150*/ OPC_RecordChild2, // #1 = $ui4 ++/* 15151*/ OPC_MoveChild2, ++/* 15152*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 15155*/ OPC_CheckPredicate, 23, // Predicate_immZExt4 ++/* 15157*/ OPC_MoveParent, ++/* 15158*/ OPC_EmitConvertToTarget, 1, ++/* 15160*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVREPL128VEI_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4131:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] })<>:$ui4) - Complexity = 12 ++ // Dst: (XVREPL128VEI_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] }):$ui4) ++/* 15168*/ /*Scope*/ 22, /*->15191*/ ++/* 15169*/ OPC_CheckChild0Integer, 37|128,32/*4133*/, ++/* 15172*/ OPC_RecordChild1, // #0 = $xj ++/* 15173*/ OPC_RecordChild2, // #1 = $ui3 ++/* 15174*/ OPC_MoveChild2, ++/* 15175*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 15178*/ OPC_CheckPredicate, 24, // Predicate_immZExt3 ++/* 15180*/ OPC_MoveParent, ++/* 15181*/ OPC_EmitConvertToTarget, 1, ++/* 15183*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVREPL128VEI_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4133:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] })<>:$ui3) - Complexity = 12 ++ // Dst: (XVREPL128VEI_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] }):$ui3) ++/* 15191*/ /*Scope*/ 22, /*->15214*/ ++/* 15192*/ OPC_CheckChild0Integer, 38|128,32/*4134*/, ++/* 15195*/ OPC_RecordChild1, // #0 = $xj ++/* 15196*/ OPC_RecordChild2, // #1 = $ui2 ++/* 15197*/ OPC_MoveChild2, ++/* 15198*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 15201*/ OPC_CheckPredicate, 25, // Predicate_immZExt2 ++/* 15203*/ OPC_MoveParent, ++/* 15204*/ OPC_EmitConvertToTarget, 1, ++/* 15206*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVREPL128VEI_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4134:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] })<>:$ui2) - Complexity = 12 ++ // Dst: (XVREPL128VEI_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] }):$ui2) ++/* 15214*/ /*Scope*/ 22, /*->15237*/ ++/* 15215*/ OPC_CheckChild0Integer, 36|128,32/*4132*/, ++/* 15218*/ OPC_RecordChild1, // #0 = $xj ++/* 15219*/ OPC_RecordChild2, // #1 = $ui1 ++/* 15220*/ OPC_MoveChild2, ++/* 15221*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 15224*/ OPC_CheckPredicate, 26, // Predicate_immZExt1 ++/* 15226*/ OPC_MoveParent, ++/* 15227*/ OPC_EmitConvertToTarget, 1, ++/* 15229*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVREPL128VEI_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4132:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] })<>:$ui1) - Complexity = 12 ++ // Dst: (XVREPL128VEI_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] }):$ui1) ++/* 15237*/ /*Scope*/ 24, /*->15262*/ ++/* 15238*/ OPC_CheckChild0Integer, 2|128,31/*3970*/, ++/* 15241*/ OPC_RecordChild1, // #0 = $xd_in ++/* 15242*/ OPC_RecordChild2, // #1 = $xj ++/* 15243*/ OPC_RecordChild3, // #2 = $ui3 ++/* 15244*/ OPC_MoveChild3, ++/* 15245*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 15248*/ OPC_CheckPredicate, 24, // Predicate_immZExt3 ++/* 15250*/ OPC_MoveParent, ++/* 15251*/ OPC_EmitConvertToTarget, 2, ++/* 15253*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVINSVE0_W), 0, ++ MVT::v8i32, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3970:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xd_in, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] })<>:$ui3) - Complexity = 12 ++ // Dst: (XVINSVE0_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xd_in, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] }):$ui3) ++/* 15262*/ /*Scope*/ 24, /*->15287*/ ++/* 15263*/ OPC_CheckChild0Integer, 1|128,31/*3969*/, ++/* 15266*/ OPC_RecordChild1, // #0 = $xd_in ++/* 15267*/ OPC_RecordChild2, // #1 = $xj ++/* 15268*/ OPC_RecordChild3, // #2 = $ui2 ++/* 15269*/ OPC_MoveChild3, ++/* 15270*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 15273*/ OPC_CheckPredicate, 25, // Predicate_immZExt2 ++/* 15275*/ OPC_MoveParent, ++/* 15276*/ OPC_EmitConvertToTarget, 2, ++/* 15278*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVINSVE0_D), 0, ++ MVT::v4i64, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3969:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] })<>:$ui2) - Complexity = 12 ++ // Dst: (XVINSVE0_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] }):$ui2) ++/* 15287*/ /*Scope*/ 22, /*->15310*/ ++/* 15288*/ OPC_CheckChild0Integer, 122|128,32/*4218*/, ++/* 15291*/ OPC_RecordChild1, // #0 = $xj ++/* 15292*/ OPC_RecordChild2, // #1 = $ui3 ++/* 15293*/ OPC_MoveChild2, ++/* 15294*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 15297*/ OPC_CheckPredicate, 24, // Predicate_immZExt3 ++/* 15299*/ OPC_MoveParent, ++/* 15300*/ OPC_EmitConvertToTarget, 1, ++/* 15302*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLLWIL_H_B), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4218:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] })<>:$ui3) - Complexity = 12 ++ // Dst: (XVSLLWIL_H_B:{ *:[v16i16] } LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] }):$ui3) ++/* 15310*/ /*Scope*/ 22, /*->15333*/ ++/* 15311*/ OPC_CheckChild0Integer, 124|128,32/*4220*/, ++/* 15314*/ OPC_RecordChild1, // #0 = $xj ++/* 15315*/ OPC_RecordChild2, // #1 = $ui4 ++/* 15316*/ OPC_MoveChild2, ++/* 15317*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 15320*/ OPC_CheckPredicate, 23, // Predicate_immZExt4 ++/* 15322*/ OPC_MoveParent, ++/* 15323*/ OPC_EmitConvertToTarget, 1, ++/* 15325*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLLWIL_W_H), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4220:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] })<>:$ui4) - Complexity = 12 ++ // Dst: (XVSLLWIL_W_H:{ *:[v8i32] } LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] }):$ui4) ++/* 15333*/ /*Scope*/ 22, /*->15356*/ ++/* 15334*/ OPC_CheckChild0Integer, 120|128,32/*4216*/, ++/* 15337*/ OPC_RecordChild1, // #0 = $xj ++/* 15338*/ OPC_RecordChild2, // #1 = $ui5 ++/* 15339*/ OPC_MoveChild2, ++/* 15340*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 15343*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 15345*/ OPC_MoveParent, ++/* 15346*/ OPC_EmitConvertToTarget, 1, ++/* 15348*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLLWIL_D_W), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4216:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (XVSLLWIL_D_W:{ *:[v4i64] } LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] }):$ui5) ++/* 15356*/ /*Scope*/ 22, /*->15379*/ ++/* 15357*/ OPC_CheckChild0Integer, 123|128,32/*4219*/, ++/* 15360*/ OPC_RecordChild1, // #0 = $xj ++/* 15361*/ OPC_RecordChild2, // #1 = $ui3 ++/* 15362*/ OPC_MoveChild2, ++/* 15363*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 15366*/ OPC_CheckPredicate, 24, // Predicate_immZExt3 ++/* 15368*/ OPC_MoveParent, ++/* 15369*/ OPC_EmitConvertToTarget, 1, ++/* 15371*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLLWIL_HU_BU), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4219:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] })<>:$ui3) - Complexity = 12 ++ // Dst: (XVSLLWIL_HU_BU:{ *:[v16i16] } LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] }):$ui3) ++/* 15379*/ /*Scope*/ 22, /*->15402*/ ++/* 15380*/ OPC_CheckChild0Integer, 125|128,32/*4221*/, ++/* 15383*/ OPC_RecordChild1, // #0 = $xj ++/* 15384*/ OPC_RecordChild2, // #1 = $ui4 ++/* 15385*/ OPC_MoveChild2, ++/* 15386*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 15389*/ OPC_CheckPredicate, 23, // Predicate_immZExt4 ++/* 15391*/ OPC_MoveParent, ++/* 15392*/ OPC_EmitConvertToTarget, 1, ++/* 15394*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLLWIL_WU_HU), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4221:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] })<>:$ui4) - Complexity = 12 ++ // Dst: (XVSLLWIL_WU_HU:{ *:[v8i32] } LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] }):$ui4) ++/* 15402*/ /*Scope*/ 22, /*->15425*/ ++/* 15403*/ OPC_CheckChild0Integer, 121|128,32/*4217*/, ++/* 15406*/ OPC_RecordChild1, // #0 = $xj ++/* 15407*/ OPC_RecordChild2, // #1 = $ui5 ++/* 15408*/ OPC_MoveChild2, ++/* 15409*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 15412*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 15414*/ OPC_MoveParent, ++/* 15415*/ OPC_EmitConvertToTarget, 1, ++/* 15417*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLLWIL_DU_WU), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4217:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (XVSLLWIL_DU_WU:{ *:[v4i64] } LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] }):$ui5) ++/* 15425*/ /*Scope*/ 22, /*->15448*/ ++/* 15426*/ OPC_CheckChild0Integer, 43|128,29/*3755*/, ++/* 15429*/ OPC_RecordChild1, // #0 = $xj ++/* 15430*/ OPC_RecordChild2, // #1 = $ui3 ++/* 15431*/ OPC_MoveChild2, ++/* 15432*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 15435*/ OPC_CheckPredicate, 24, // Predicate_immZExt3 ++/* 15437*/ OPC_MoveParent, ++/* 15438*/ OPC_EmitConvertToTarget, 1, ++/* 15440*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLRI_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 3755:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] })<>:$ui3) - Complexity = 12 ++ // Dst: (XVBITCLRI_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] }):$ui3) ++/* 15448*/ /*Scope*/ 22, /*->15471*/ ++/* 15449*/ OPC_CheckChild0Integer, 45|128,29/*3757*/, ++/* 15452*/ OPC_RecordChild1, // #0 = $xj ++/* 15453*/ OPC_RecordChild2, // #1 = $ui4 ++/* 15454*/ OPC_MoveChild2, ++/* 15455*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 15458*/ OPC_CheckPredicate, 23, // Predicate_immZExt4 ++/* 15460*/ OPC_MoveParent, ++/* 15461*/ OPC_EmitConvertToTarget, 1, ++/* 15463*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLRI_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 3757:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] })<>:$ui4) - Complexity = 12 ++ // Dst: (XVBITCLRI_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] }):$ui4) ++/* 15471*/ /*Scope*/ 22, /*->15494*/ ++/* 15472*/ OPC_CheckChild0Integer, 46|128,29/*3758*/, ++/* 15475*/ OPC_RecordChild1, // #0 = $xj ++/* 15476*/ OPC_RecordChild2, // #1 = $ui5 ++/* 15477*/ OPC_MoveChild2, ++/* 15478*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 15481*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 15483*/ OPC_MoveParent, ++/* 15484*/ OPC_EmitConvertToTarget, 1, ++/* 15486*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLRI_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3758:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (XVBITCLRI_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] }):$ui5) ++/* 15494*/ /*Scope*/ 22, /*->15517*/ ++/* 15495*/ OPC_CheckChild0Integer, 44|128,29/*3756*/, ++/* 15498*/ OPC_RecordChild1, // #0 = $xj ++/* 15499*/ OPC_RecordChild2, // #1 = $ui6 ++/* 15500*/ OPC_MoveChild2, ++/* 15501*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 15504*/ OPC_CheckPredicate, 30, // Predicate_immZExt6 ++/* 15506*/ OPC_MoveParent, ++/* 15507*/ OPC_EmitConvertToTarget, 1, ++/* 15509*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLRI_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3756:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] })<>:$ui6) - Complexity = 12 ++ // Dst: (XVBITCLRI_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] }):$ui6) ++/* 15517*/ /*Scope*/ 22, /*->15540*/ ++/* 15518*/ OPC_CheckChild0Integer, 61|128,29/*3773*/, ++/* 15521*/ OPC_RecordChild1, // #0 = $xj ++/* 15522*/ OPC_RecordChild2, // #1 = $ui3 ++/* 15523*/ OPC_MoveChild2, ++/* 15524*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 15527*/ OPC_CheckPredicate, 24, // Predicate_immZExt3 ++/* 15529*/ OPC_MoveParent, ++/* 15530*/ OPC_EmitConvertToTarget, 1, ++/* 15532*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITSETI_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 3773:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] })<>:$ui3) - Complexity = 12 ++ // Dst: (XVBITSETI_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] }):$ui3) ++/* 15540*/ /*Scope*/ 22, /*->15563*/ ++/* 15541*/ OPC_CheckChild0Integer, 63|128,29/*3775*/, ++/* 15544*/ OPC_RecordChild1, // #0 = $xj ++/* 15545*/ OPC_RecordChild2, // #1 = $ui4 ++/* 15546*/ OPC_MoveChild2, ++/* 15547*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 15550*/ OPC_CheckPredicate, 23, // Predicate_immZExt4 ++/* 15552*/ OPC_MoveParent, ++/* 15553*/ OPC_EmitConvertToTarget, 1, ++/* 15555*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITSETI_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 3775:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] })<>:$ui4) - Complexity = 12 ++ // Dst: (XVBITSETI_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] }):$ui4) ++/* 15563*/ /*Scope*/ 22, /*->15586*/ ++/* 15564*/ OPC_CheckChild0Integer, 64|128,29/*3776*/, ++/* 15567*/ OPC_RecordChild1, // #0 = $xj ++/* 15568*/ OPC_RecordChild2, // #1 = $ui5 ++/* 15569*/ OPC_MoveChild2, ++/* 15570*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 15573*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 15575*/ OPC_MoveParent, ++/* 15576*/ OPC_EmitConvertToTarget, 1, ++/* 15578*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITSETI_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3776:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (XVBITSETI_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] }):$ui5) ++/* 15586*/ /*Scope*/ 22, /*->15609*/ ++/* 15587*/ OPC_CheckChild0Integer, 62|128,29/*3774*/, ++/* 15590*/ OPC_RecordChild1, // #0 = $xj ++/* 15591*/ OPC_RecordChild2, // #1 = $ui6 ++/* 15592*/ OPC_MoveChild2, ++/* 15593*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 15596*/ OPC_CheckPredicate, 30, // Predicate_immZExt6 ++/* 15598*/ OPC_MoveParent, ++/* 15599*/ OPC_EmitConvertToTarget, 1, ++/* 15601*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITSETI_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3774:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] })<>:$ui6) - Complexity = 12 ++ // Dst: (XVBITSETI_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] }):$ui6) ++/* 15609*/ /*Scope*/ 22, /*->15632*/ ++/* 15610*/ OPC_CheckChild0Integer, 51|128,29/*3763*/, ++/* 15613*/ OPC_RecordChild1, // #0 = $xj ++/* 15614*/ OPC_RecordChild2, // #1 = $ui3 ++/* 15615*/ OPC_MoveChild2, ++/* 15616*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 15619*/ OPC_CheckPredicate, 24, // Predicate_immZExt3 ++/* 15621*/ OPC_MoveParent, ++/* 15622*/ OPC_EmitConvertToTarget, 1, ++/* 15624*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITREVI_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 3763:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] })<>:$ui3) - Complexity = 12 ++ // Dst: (XVBITREVI_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] }):$ui3) ++/* 15632*/ /*Scope*/ 22, /*->15655*/ ++/* 15633*/ OPC_CheckChild0Integer, 53|128,29/*3765*/, ++/* 15636*/ OPC_RecordChild1, // #0 = $xj ++/* 15637*/ OPC_RecordChild2, // #1 = $ui4 ++/* 15638*/ OPC_MoveChild2, ++/* 15639*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 15642*/ OPC_CheckPredicate, 23, // Predicate_immZExt4 ++/* 15644*/ OPC_MoveParent, ++/* 15645*/ OPC_EmitConvertToTarget, 1, ++/* 15647*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITREVI_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 3765:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] })<>:$ui4) - Complexity = 12 ++ // Dst: (XVBITREVI_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] }):$ui4) ++/* 15655*/ /*Scope*/ 22, /*->15678*/ ++/* 15656*/ OPC_CheckChild0Integer, 54|128,29/*3766*/, ++/* 15659*/ OPC_RecordChild1, // #0 = $xj ++/* 15660*/ OPC_RecordChild2, // #1 = $ui5 ++/* 15661*/ OPC_MoveChild2, ++/* 15662*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 15665*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 15667*/ OPC_MoveParent, ++/* 15668*/ OPC_EmitConvertToTarget, 1, ++/* 15670*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITREVI_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3766:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (XVBITREVI_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] }):$ui5) ++/* 15678*/ /*Scope*/ 22, /*->15701*/ ++/* 15679*/ OPC_CheckChild0Integer, 52|128,29/*3764*/, ++/* 15682*/ OPC_RecordChild1, // #0 = $xj ++/* 15683*/ OPC_RecordChild2, // #1 = $ui6 ++/* 15684*/ OPC_MoveChild2, ++/* 15685*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 15688*/ OPC_CheckPredicate, 30, // Predicate_immZExt6 ++/* 15690*/ OPC_MoveParent, ++/* 15691*/ OPC_EmitConvertToTarget, 1, ++/* 15693*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITREVI_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3764:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] })<>:$ui6) - Complexity = 12 ++ // Dst: (XVBITREVI_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] }):$ui6) ++/* 15701*/ /*Scope*/ 22, /*->15724*/ ++/* 15702*/ OPC_CheckChild0Integer, 68|128,32/*4164*/, ++/* 15705*/ OPC_RecordChild1, // #0 = $xj ++/* 15706*/ OPC_RecordChild2, // #1 = $ui3 ++/* 15707*/ OPC_MoveChild2, ++/* 15708*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 15711*/ OPC_CheckPredicate, 24, // Predicate_immZExt3 ++/* 15713*/ OPC_MoveParent, ++/* 15714*/ OPC_EmitConvertToTarget, 1, ++/* 15716*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSAT_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4164:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] })<>:$ui3) - Complexity = 12 ++ // Dst: (XVSAT_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] }):$ui3) ++/* 15724*/ /*Scope*/ 22, /*->15747*/ ++/* 15725*/ OPC_CheckChild0Integer, 72|128,32/*4168*/, ++/* 15728*/ OPC_RecordChild1, // #0 = $xj ++/* 15729*/ OPC_RecordChild2, // #1 = $ui4 ++/* 15730*/ OPC_MoveChild2, ++/* 15731*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 15734*/ OPC_CheckPredicate, 23, // Predicate_immZExt4 ++/* 15736*/ OPC_MoveParent, ++/* 15737*/ OPC_EmitConvertToTarget, 1, ++/* 15739*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSAT_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4168:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] })<>:$ui4) - Complexity = 12 ++ // Dst: (XVSAT_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] }):$ui4) ++/* 15747*/ /*Scope*/ 22, /*->15770*/ ++/* 15748*/ OPC_CheckChild0Integer, 74|128,32/*4170*/, ++/* 15751*/ OPC_RecordChild1, // #0 = $xj ++/* 15752*/ OPC_RecordChild2, // #1 = $ui5 ++/* 15753*/ OPC_MoveChild2, ++/* 15754*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 15757*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 15759*/ OPC_MoveParent, ++/* 15760*/ OPC_EmitConvertToTarget, 1, ++/* 15762*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSAT_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4170:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (XVSAT_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] }):$ui5) ++/* 15770*/ /*Scope*/ 22, /*->15793*/ ++/* 15771*/ OPC_CheckChild0Integer, 70|128,32/*4166*/, ++/* 15774*/ OPC_RecordChild1, // #0 = $xj ++/* 15775*/ OPC_RecordChild2, // #1 = $ui6 ++/* 15776*/ OPC_MoveChild2, ++/* 15777*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 15780*/ OPC_CheckPredicate, 30, // Predicate_immZExt6 ++/* 15782*/ OPC_MoveParent, ++/* 15783*/ OPC_EmitConvertToTarget, 1, ++/* 15785*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSAT_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4166:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] })<>:$ui6) - Complexity = 12 ++ // Dst: (XVSAT_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] }):$ui6) ++/* 15793*/ /*Scope*/ 22, /*->15816*/ ++/* 15794*/ OPC_CheckChild0Integer, 69|128,32/*4165*/, ++/* 15797*/ OPC_RecordChild1, // #0 = $xj ++/* 15798*/ OPC_RecordChild2, // #1 = $ui3 ++/* 15799*/ OPC_MoveChild2, ++/* 15800*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 15803*/ OPC_CheckPredicate, 24, // Predicate_immZExt3 ++/* 15805*/ OPC_MoveParent, ++/* 15806*/ OPC_EmitConvertToTarget, 1, ++/* 15808*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSAT_BU), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4165:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] })<>:$ui3) - Complexity = 12 ++ // Dst: (XVSAT_BU:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] }):$ui3) ++/* 15816*/ /*Scope*/ 22, /*->15839*/ ++/* 15817*/ OPC_CheckChild0Integer, 73|128,32/*4169*/, ++/* 15820*/ OPC_RecordChild1, // #0 = $xj ++/* 15821*/ OPC_RecordChild2, // #1 = $ui4 ++/* 15822*/ OPC_MoveChild2, ++/* 15823*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 15826*/ OPC_CheckPredicate, 23, // Predicate_immZExt4 ++/* 15828*/ OPC_MoveParent, ++/* 15829*/ OPC_EmitConvertToTarget, 1, ++/* 15831*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSAT_HU), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4169:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] })<>:$ui4) - Complexity = 12 ++ // Dst: (XVSAT_HU:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] }):$ui4) ++/* 15839*/ /*Scope*/ 22, /*->15862*/ ++/* 15840*/ OPC_CheckChild0Integer, 75|128,32/*4171*/, ++/* 15843*/ OPC_RecordChild1, // #0 = $xj ++/* 15844*/ OPC_RecordChild2, // #1 = $ui5 ++/* 15845*/ OPC_MoveChild2, ++/* 15846*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 15849*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 15851*/ OPC_MoveParent, ++/* 15852*/ OPC_EmitConvertToTarget, 1, ++/* 15854*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSAT_WU), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4171:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (XVSAT_WU:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] }):$ui5) ++/* 15862*/ /*Scope*/ 22, /*->15885*/ ++/* 15863*/ OPC_CheckChild0Integer, 71|128,32/*4167*/, ++/* 15866*/ OPC_RecordChild1, // #0 = $xj ++/* 15867*/ OPC_RecordChild2, // #1 = $ui6 ++/* 15868*/ OPC_MoveChild2, ++/* 15869*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 15872*/ OPC_CheckPredicate, 30, // Predicate_immZExt6 ++/* 15874*/ OPC_MoveParent, ++/* 15875*/ OPC_EmitConvertToTarget, 1, ++/* 15877*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSAT_DU), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4167:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] })<>:$ui6) - Complexity = 12 ++ // Dst: (XVSAT_DU:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] }):$ui6) ++/* 15885*/ /*Scope*/ 22, /*->15908*/ ++/* 15886*/ OPC_CheckChild0Integer, 116|128,32/*4212*/, ++/* 15889*/ OPC_RecordChild1, // #0 = $xj ++/* 15890*/ OPC_RecordChild2, // #1 = $ui3 ++/* 15891*/ OPC_MoveChild2, ++/* 15892*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 15895*/ OPC_CheckPredicate, 24, // Predicate_immZExt3 ++/* 15897*/ OPC_MoveParent, ++/* 15898*/ OPC_EmitConvertToTarget, 1, ++/* 15900*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLLI_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4212:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] })<>:$ui3) - Complexity = 12 ++ // Dst: (XVSLLI_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] }):$ui3) ++/* 15908*/ /*Scope*/ 22, /*->15931*/ ++/* 15909*/ OPC_CheckChild0Integer, 118|128,32/*4214*/, ++/* 15912*/ OPC_RecordChild1, // #0 = $xj ++/* 15913*/ OPC_RecordChild2, // #1 = $ui4 ++/* 15914*/ OPC_MoveChild2, ++/* 15915*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 15918*/ OPC_CheckPredicate, 23, // Predicate_immZExt4 ++/* 15920*/ OPC_MoveParent, ++/* 15921*/ OPC_EmitConvertToTarget, 1, ++/* 15923*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLLI_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4214:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] })<>:$ui4) - Complexity = 12 ++ // Dst: (XVSLLI_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] }):$ui4) ++/* 15931*/ /*Scope*/ 22, /*->15954*/ ++/* 15932*/ OPC_CheckChild0Integer, 119|128,32/*4215*/, ++/* 15935*/ OPC_RecordChild1, // #0 = $xj ++/* 15936*/ OPC_RecordChild2, // #1 = $ui5 ++/* 15937*/ OPC_MoveChild2, ++/* 15938*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 15941*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 15943*/ OPC_MoveParent, ++/* 15944*/ OPC_EmitConvertToTarget, 1, ++/* 15946*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLLI_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4215:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (XVSLLI_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] }):$ui5) ++/* 15954*/ /*Scope*/ 22, /*->15977*/ ++/* 15955*/ OPC_CheckChild0Integer, 117|128,32/*4213*/, ++/* 15958*/ OPC_RecordChild1, // #0 = $xj ++/* 15959*/ OPC_RecordChild2, // #1 = $ui6 ++/* 15960*/ OPC_MoveChild2, ++/* 15961*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 15964*/ OPC_CheckPredicate, 30, // Predicate_immZExt6 ++/* 15966*/ OPC_MoveParent, ++/* 15967*/ OPC_EmitConvertToTarget, 1, ++/* 15969*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLLI_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4213:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] })<>:$ui6) - Complexity = 12 ++ // Dst: (XVSLLI_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] }):$ui6) ++/* 15977*/ /*Scope*/ 22, /*->16000*/ ++/* 15978*/ OPC_CheckChild0Integer, 48|128,33/*4272*/, ++/* 15981*/ OPC_RecordChild1, // #0 = $xj ++/* 15982*/ OPC_RecordChild2, // #1 = $ui3 ++/* 15983*/ OPC_MoveChild2, ++/* 15984*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 15987*/ OPC_CheckPredicate, 24, // Predicate_immZExt3 ++/* 15989*/ OPC_MoveParent, ++/* 15990*/ OPC_EmitConvertToTarget, 1, ++/* 15992*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRLI_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4272:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] })<>:$ui3) - Complexity = 12 ++ // Dst: (XVSRLI_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] }):$ui3) ++/* 16000*/ /*Scope*/ 22, /*->16023*/ ++/* 16001*/ OPC_CheckChild0Integer, 50|128,33/*4274*/, ++/* 16004*/ OPC_RecordChild1, // #0 = $xj ++/* 16005*/ OPC_RecordChild2, // #1 = $ui4 ++/* 16006*/ OPC_MoveChild2, ++/* 16007*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 16010*/ OPC_CheckPredicate, 23, // Predicate_immZExt4 ++/* 16012*/ OPC_MoveParent, ++/* 16013*/ OPC_EmitConvertToTarget, 1, ++/* 16015*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRLI_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4274:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] })<>:$ui4) - Complexity = 12 ++ // Dst: (XVSRLI_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] }):$ui4) ++/* 16023*/ /*Scope*/ 22, /*->16046*/ ++/* 16024*/ OPC_CheckChild0Integer, 51|128,33/*4275*/, ++/* 16027*/ OPC_RecordChild1, // #0 = $xj ++/* 16028*/ OPC_RecordChild2, // #1 = $ui5 ++/* 16029*/ OPC_MoveChild2, ++/* 16030*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 16033*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 16035*/ OPC_MoveParent, ++/* 16036*/ OPC_EmitConvertToTarget, 1, ++/* 16038*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRLI_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4275:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (XVSRLI_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] }):$ui5) ++/* 16046*/ /*Scope*/ 22, /*->16069*/ ++/* 16047*/ OPC_CheckChild0Integer, 49|128,33/*4273*/, ++/* 16050*/ OPC_RecordChild1, // #0 = $xj ++/* 16051*/ OPC_RecordChild2, // #1 = $ui6 ++/* 16052*/ OPC_MoveChild2, ++/* 16053*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 16056*/ OPC_CheckPredicate, 30, // Predicate_immZExt6 ++/* 16058*/ OPC_MoveParent, ++/* 16059*/ OPC_EmitConvertToTarget, 1, ++/* 16061*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRLI_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4273:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] })<>:$ui6) - Complexity = 12 ++ // Dst: (XVSRLI_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] }):$ui6) ++/* 16069*/ /*Scope*/ 22, /*->16092*/ ++/* 16070*/ OPC_CheckChild0Integer, 18|128,33/*4242*/, ++/* 16073*/ OPC_RecordChild1, // #0 = $xj ++/* 16074*/ OPC_RecordChild2, // #1 = $ui3 ++/* 16075*/ OPC_MoveChild2, ++/* 16076*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 16079*/ OPC_CheckPredicate, 24, // Predicate_immZExt3 ++/* 16081*/ OPC_MoveParent, ++/* 16082*/ OPC_EmitConvertToTarget, 1, ++/* 16084*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRAI_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4242:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] })<>:$ui3) - Complexity = 12 ++ // Dst: (XVSRAI_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] }):$ui3) ++/* 16092*/ /*Scope*/ 22, /*->16115*/ ++/* 16093*/ OPC_CheckChild0Integer, 20|128,33/*4244*/, ++/* 16096*/ OPC_RecordChild1, // #0 = $xj ++/* 16097*/ OPC_RecordChild2, // #1 = $ui4 ++/* 16098*/ OPC_MoveChild2, ++/* 16099*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 16102*/ OPC_CheckPredicate, 23, // Predicate_immZExt4 ++/* 16104*/ OPC_MoveParent, ++/* 16105*/ OPC_EmitConvertToTarget, 1, ++/* 16107*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRAI_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4244:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] })<>:$ui4) - Complexity = 12 ++ // Dst: (XVSRAI_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] }):$ui4) ++/* 16115*/ /*Scope*/ 22, /*->16138*/ ++/* 16116*/ OPC_CheckChild0Integer, 21|128,33/*4245*/, ++/* 16119*/ OPC_RecordChild1, // #0 = $xj ++/* 16120*/ OPC_RecordChild2, // #1 = $ui5 ++/* 16121*/ OPC_MoveChild2, ++/* 16122*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 16125*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 16127*/ OPC_MoveParent, ++/* 16128*/ OPC_EmitConvertToTarget, 1, ++/* 16130*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRAI_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4245:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (XVSRAI_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] }):$ui5) ++/* 16138*/ /*Scope*/ 22, /*->16161*/ ++/* 16139*/ OPC_CheckChild0Integer, 19|128,33/*4243*/, ++/* 16142*/ OPC_RecordChild1, // #0 = $xj ++/* 16143*/ OPC_RecordChild2, // #1 = $ui6 ++/* 16144*/ OPC_MoveChild2, ++/* 16145*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 16148*/ OPC_CheckPredicate, 30, // Predicate_immZExt6 ++/* 16150*/ OPC_MoveParent, ++/* 16151*/ OPC_EmitConvertToTarget, 1, ++/* 16153*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRAI_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4243:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] })<>:$ui6) - Complexity = 12 ++ // Dst: (XVSRAI_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] }):$ui6) ++/* 16161*/ /*Scope*/ 24, /*->16186*/ ++/* 16162*/ OPC_CheckChild0Integer, 55|128,33/*4279*/, ++/* 16165*/ OPC_RecordChild1, // #0 = $xd_in ++/* 16166*/ OPC_RecordChild2, // #1 = $xj ++/* 16167*/ OPC_RecordChild3, // #2 = $ui4 ++/* 16168*/ OPC_MoveChild3, ++/* 16169*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 16172*/ OPC_CheckPredicate, 23, // Predicate_immZExt4 ++/* 16174*/ OPC_MoveParent, ++/* 16175*/ OPC_EmitConvertToTarget, 2, ++/* 16177*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRLNI_B_H), 0, ++ MVT::v32i8, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4279:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xd_in, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] })<>:$ui4) - Complexity = 12 ++ // Dst: (XVSRLNI_B_H:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xd_in, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] }):$ui4) ++/* 16186*/ /*Scope*/ 24, /*->16211*/ ++/* 16187*/ OPC_CheckChild0Integer, 57|128,33/*4281*/, ++/* 16190*/ OPC_RecordChild1, // #0 = $xd_in ++/* 16191*/ OPC_RecordChild2, // #1 = $xj ++/* 16192*/ OPC_RecordChild3, // #2 = $ui5 ++/* 16193*/ OPC_MoveChild3, ++/* 16194*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 16197*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 16199*/ OPC_MoveParent, ++/* 16200*/ OPC_EmitConvertToTarget, 2, ++/* 16202*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRLNI_H_W), 0, ++ MVT::v16i16, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4281:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xd_in, LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (XVSRLNI_H_W:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xd_in, LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] }):$ui5) ++/* 16211*/ /*Scope*/ 24, /*->16236*/ ++/* 16212*/ OPC_CheckChild0Integer, 58|128,33/*4282*/, ++/* 16215*/ OPC_RecordChild1, // #0 = $xd_in ++/* 16216*/ OPC_RecordChild2, // #1 = $xj ++/* 16217*/ OPC_RecordChild3, // #2 = $ui6 ++/* 16218*/ OPC_MoveChild3, ++/* 16219*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 16222*/ OPC_CheckPredicate, 30, // Predicate_immZExt6 ++/* 16224*/ OPC_MoveParent, ++/* 16225*/ OPC_EmitConvertToTarget, 2, ++/* 16227*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRLNI_W_D), 0, ++ MVT::v8i32, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4282:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xd_in, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] })<>:$ui6) - Complexity = 12 ++ // Dst: (XVSRLNI_W_D:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xd_in, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] }):$ui6) ++/* 16236*/ /*Scope*/ 24, /*->16261*/ ++/* 16237*/ OPC_CheckChild0Integer, 56|128,33/*4280*/, ++/* 16240*/ OPC_RecordChild1, // #0 = $xd_in ++/* 16241*/ OPC_RecordChild2, // #1 = $xj ++/* 16242*/ OPC_RecordChild3, // #2 = $ui7 ++/* 16243*/ OPC_MoveChild3, ++/* 16244*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 16247*/ OPC_CheckPredicate, 32, // Predicate_immZExt7 ++/* 16249*/ OPC_MoveParent, ++/* 16250*/ OPC_EmitConvertToTarget, 2, ++/* 16252*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRLNI_D_Q), 0, ++ MVT::v4i64, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4280:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] })<>:$ui7) - Complexity = 12 ++ // Dst: (XVSRLNI_D_Q:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] }):$ui7) ++/* 16261*/ /*Scope*/ 24, /*->16286*/ ++/* 16262*/ OPC_CheckChild0Integer, 70|128,33/*4294*/, ++/* 16265*/ OPC_RecordChild1, // #0 = $xd_in ++/* 16266*/ OPC_RecordChild2, // #1 = $xj ++/* 16267*/ OPC_RecordChild3, // #2 = $ui4 ++/* 16268*/ OPC_MoveChild3, ++/* 16269*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 16272*/ OPC_CheckPredicate, 23, // Predicate_immZExt4 ++/* 16274*/ OPC_MoveParent, ++/* 16275*/ OPC_EmitConvertToTarget, 2, ++/* 16277*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRLRNI_B_H), 0, ++ MVT::v32i8, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4294:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xd_in, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] })<>:$ui4) - Complexity = 12 ++ // Dst: (XVSRLRNI_B_H:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xd_in, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] }):$ui4) ++/* 16286*/ /*Scope*/ 24, /*->16311*/ ++/* 16287*/ OPC_CheckChild0Integer, 72|128,33/*4296*/, ++/* 16290*/ OPC_RecordChild1, // #0 = $xd_in ++/* 16291*/ OPC_RecordChild2, // #1 = $xj ++/* 16292*/ OPC_RecordChild3, // #2 = $ui5 ++/* 16293*/ OPC_MoveChild3, ++/* 16294*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 16297*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 16299*/ OPC_MoveParent, ++/* 16300*/ OPC_EmitConvertToTarget, 2, ++/* 16302*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRLRNI_H_W), 0, ++ MVT::v16i16, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4296:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xd_in, LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (XVSRLRNI_H_W:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xd_in, LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] }):$ui5) ++/* 16311*/ /*Scope*/ 24, /*->16336*/ ++/* 16312*/ OPC_CheckChild0Integer, 73|128,33/*4297*/, ++/* 16315*/ OPC_RecordChild1, // #0 = $xd_in ++/* 16316*/ OPC_RecordChild2, // #1 = $xj ++/* 16317*/ OPC_RecordChild3, // #2 = $ui6 ++/* 16318*/ OPC_MoveChild3, ++/* 16319*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 16322*/ OPC_CheckPredicate, 30, // Predicate_immZExt6 ++/* 16324*/ OPC_MoveParent, ++/* 16325*/ OPC_EmitConvertToTarget, 2, ++/* 16327*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRLRNI_W_D), 0, ++ MVT::v8i32, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4297:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xd_in, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] })<>:$ui6) - Complexity = 12 ++ // Dst: (XVSRLRNI_W_D:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xd_in, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] }):$ui6) ++/* 16336*/ /*Scope*/ 24, /*->16361*/ ++/* 16337*/ OPC_CheckChild0Integer, 71|128,33/*4295*/, ++/* 16340*/ OPC_RecordChild1, // #0 = $xd_in ++/* 16341*/ OPC_RecordChild2, // #1 = $xj ++/* 16342*/ OPC_RecordChild3, // #2 = $ui7 ++/* 16343*/ OPC_MoveChild3, ++/* 16344*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 16347*/ OPC_CheckPredicate, 32, // Predicate_immZExt7 ++/* 16349*/ OPC_MoveParent, ++/* 16350*/ OPC_EmitConvertToTarget, 2, ++/* 16352*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRLRNI_D_Q), 0, ++ MVT::v4i64, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4295:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] })<>:$ui7) - Complexity = 12 ++ // Dst: (XVSRLRNI_D_Q:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] }):$ui7) ++/* 16361*/ /*Scope*/ 24, /*->16386*/ ++/* 16362*/ OPC_CheckChild0Integer, 108|128,33/*4332*/, ++/* 16365*/ OPC_RecordChild1, // #0 = $xd_in ++/* 16366*/ OPC_RecordChild2, // #1 = $xj ++/* 16367*/ OPC_RecordChild3, // #2 = $ui4 ++/* 16368*/ OPC_MoveChild3, ++/* 16369*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 16372*/ OPC_CheckPredicate, 23, // Predicate_immZExt4 ++/* 16374*/ OPC_MoveParent, ++/* 16375*/ OPC_EmitConvertToTarget, 2, ++/* 16377*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRLNI_B_H), 0, ++ MVT::v32i8, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4332:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xd_in, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] })<>:$ui4) - Complexity = 12 ++ // Dst: (XVSSRLNI_B_H:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xd_in, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] }):$ui4) ++/* 16386*/ /*Scope*/ 24, /*->16411*/ ++/* 16387*/ OPC_CheckChild0Integer, 112|128,33/*4336*/, ++/* 16390*/ OPC_RecordChild1, // #0 = $xd_in ++/* 16391*/ OPC_RecordChild2, // #1 = $xj ++/* 16392*/ OPC_RecordChild3, // #2 = $ui5 ++/* 16393*/ OPC_MoveChild3, ++/* 16394*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 16397*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 16399*/ OPC_MoveParent, ++/* 16400*/ OPC_EmitConvertToTarget, 2, ++/* 16402*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRLNI_H_W), 0, ++ MVT::v16i16, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4336:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xd_in, LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (XVSSRLNI_H_W:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xd_in, LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] }):$ui5) ++/* 16411*/ /*Scope*/ 24, /*->16436*/ ++/* 16412*/ OPC_CheckChild0Integer, 114|128,33/*4338*/, ++/* 16415*/ OPC_RecordChild1, // #0 = $xd_in ++/* 16416*/ OPC_RecordChild2, // #1 = $xj ++/* 16417*/ OPC_RecordChild3, // #2 = $ui6 ++/* 16418*/ OPC_MoveChild3, ++/* 16419*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 16422*/ OPC_CheckPredicate, 30, // Predicate_immZExt6 ++/* 16424*/ OPC_MoveParent, ++/* 16425*/ OPC_EmitConvertToTarget, 2, ++/* 16427*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRLNI_W_D), 0, ++ MVT::v8i32, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4338:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xd_in, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] })<>:$ui6) - Complexity = 12 ++ // Dst: (XVSSRLNI_W_D:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xd_in, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] }):$ui6) ++/* 16436*/ /*Scope*/ 24, /*->16461*/ ++/* 16437*/ OPC_CheckChild0Integer, 110|128,33/*4334*/, ++/* 16440*/ OPC_RecordChild1, // #0 = $xd_in ++/* 16441*/ OPC_RecordChild2, // #1 = $xj ++/* 16442*/ OPC_RecordChild3, // #2 = $ui7 ++/* 16443*/ OPC_MoveChild3, ++/* 16444*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 16447*/ OPC_CheckPredicate, 32, // Predicate_immZExt7 ++/* 16449*/ OPC_MoveParent, ++/* 16450*/ OPC_EmitConvertToTarget, 2, ++/* 16452*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRLNI_D_Q), 0, ++ MVT::v4i64, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4334:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] })<>:$ui7) - Complexity = 12 ++ // Dst: (XVSSRLNI_D_Q:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] }):$ui7) ++/* 16461*/ /*Scope*/ 24, /*->16486*/ ++/* 16462*/ OPC_CheckChild0Integer, 109|128,33/*4333*/, ++/* 16465*/ OPC_RecordChild1, // #0 = $xd_in ++/* 16466*/ OPC_RecordChild2, // #1 = $xj ++/* 16467*/ OPC_RecordChild3, // #2 = $ui4 ++/* 16468*/ OPC_MoveChild3, ++/* 16469*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 16472*/ OPC_CheckPredicate, 23, // Predicate_immZExt4 ++/* 16474*/ OPC_MoveParent, ++/* 16475*/ OPC_EmitConvertToTarget, 2, ++/* 16477*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRLNI_BU_H), 0, ++ MVT::v32i8, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4333:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xd_in, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] })<>:$ui4) - Complexity = 12 ++ // Dst: (XVSSRLNI_BU_H:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xd_in, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] }):$ui4) ++/* 16486*/ /*Scope*/ 24, /*->16511*/ ++/* 16487*/ OPC_CheckChild0Integer, 113|128,33/*4337*/, ++/* 16490*/ OPC_RecordChild1, // #0 = $xd_in ++/* 16491*/ OPC_RecordChild2, // #1 = $xj ++/* 16492*/ OPC_RecordChild3, // #2 = $ui5 ++/* 16493*/ OPC_MoveChild3, ++/* 16494*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 16497*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 16499*/ OPC_MoveParent, ++/* 16500*/ OPC_EmitConvertToTarget, 2, ++/* 16502*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRLNI_HU_W), 0, ++ MVT::v16i16, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4337:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xd_in, LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (XVSSRLNI_HU_W:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xd_in, LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] }):$ui5) ++/* 16511*/ /*Scope*/ 24, /*->16536*/ ++/* 16512*/ OPC_CheckChild0Integer, 115|128,33/*4339*/, ++/* 16515*/ OPC_RecordChild1, // #0 = $xd_in ++/* 16516*/ OPC_RecordChild2, // #1 = $xj ++/* 16517*/ OPC_RecordChild3, // #2 = $ui6 ++/* 16518*/ OPC_MoveChild3, ++/* 16519*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 16522*/ OPC_CheckPredicate, 30, // Predicate_immZExt6 ++/* 16524*/ OPC_MoveParent, ++/* 16525*/ OPC_EmitConvertToTarget, 2, ++/* 16527*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRLNI_WU_D), 0, ++ MVT::v8i32, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4339:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xd_in, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] })<>:$ui6) - Complexity = 12 ++ // Dst: (XVSSRLNI_WU_D:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xd_in, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] }):$ui6) ++/* 16536*/ /*Scope*/ 24, /*->16561*/ ++/* 16537*/ OPC_CheckChild0Integer, 111|128,33/*4335*/, ++/* 16540*/ OPC_RecordChild1, // #0 = $xd_in ++/* 16541*/ OPC_RecordChild2, // #1 = $xj ++/* 16542*/ OPC_RecordChild3, // #2 = $ui7 ++/* 16543*/ OPC_MoveChild3, ++/* 16544*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 16547*/ OPC_CheckPredicate, 32, // Predicate_immZExt7 ++/* 16549*/ OPC_MoveParent, ++/* 16550*/ OPC_EmitConvertToTarget, 2, ++/* 16552*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRLNI_DU_Q), 0, ++ MVT::v4i64, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4335:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] })<>:$ui7) - Complexity = 12 ++ // Dst: (XVSSRLNI_DU_Q:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] }):$ui7) ++/* 16561*/ /*Scope*/ 24, /*->16586*/ ++/* 16562*/ OPC_CheckChild0Integer, 122|128,33/*4346*/, ++/* 16565*/ OPC_RecordChild1, // #0 = $xd_in ++/* 16566*/ OPC_RecordChild2, // #1 = $xj ++/* 16567*/ OPC_RecordChild3, // #2 = $ui4 ++/* 16568*/ OPC_MoveChild3, ++/* 16569*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 16572*/ OPC_CheckPredicate, 23, // Predicate_immZExt4 ++/* 16574*/ OPC_MoveParent, ++/* 16575*/ OPC_EmitConvertToTarget, 2, ++/* 16577*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRLRNI_B_H), 0, ++ MVT::v32i8, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4346:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xd_in, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] })<>:$ui4) - Complexity = 12 ++ // Dst: (XVSSRLRNI_B_H:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xd_in, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] }):$ui4) ++/* 16586*/ /*Scope*/ 24, /*->16611*/ ++/* 16587*/ OPC_CheckChild0Integer, 126|128,33/*4350*/, ++/* 16590*/ OPC_RecordChild1, // #0 = $xd_in ++/* 16591*/ OPC_RecordChild2, // #1 = $xj ++/* 16592*/ OPC_RecordChild3, // #2 = $ui5 ++/* 16593*/ OPC_MoveChild3, ++/* 16594*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 16597*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 16599*/ OPC_MoveParent, ++/* 16600*/ OPC_EmitConvertToTarget, 2, ++/* 16602*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRLRNI_H_W), 0, ++ MVT::v16i16, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4350:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xd_in, LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (XVSSRLRNI_H_W:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xd_in, LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] }):$ui5) ++/* 16611*/ /*Scope*/ 24, /*->16636*/ ++/* 16612*/ OPC_CheckChild0Integer, 0|128,34/*4352*/, ++/* 16615*/ OPC_RecordChild1, // #0 = $xd_in ++/* 16616*/ OPC_RecordChild2, // #1 = $xj ++/* 16617*/ OPC_RecordChild3, // #2 = $ui6 ++/* 16618*/ OPC_MoveChild3, ++/* 16619*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 16622*/ OPC_CheckPredicate, 30, // Predicate_immZExt6 ++/* 16624*/ OPC_MoveParent, ++/* 16625*/ OPC_EmitConvertToTarget, 2, ++/* 16627*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRLRNI_W_D), 0, ++ MVT::v8i32, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4352:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xd_in, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] })<>:$ui6) - Complexity = 12 ++ // Dst: (XVSSRLRNI_W_D:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xd_in, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] }):$ui6) ++/* 16636*/ /*Scope*/ 24, /*->16661*/ ++/* 16637*/ OPC_CheckChild0Integer, 124|128,33/*4348*/, ++/* 16640*/ OPC_RecordChild1, // #0 = $xd_in ++/* 16641*/ OPC_RecordChild2, // #1 = $xj ++/* 16642*/ OPC_RecordChild3, // #2 = $ui7 ++/* 16643*/ OPC_MoveChild3, ++/* 16644*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 16647*/ OPC_CheckPredicate, 32, // Predicate_immZExt7 ++/* 16649*/ OPC_MoveParent, ++/* 16650*/ OPC_EmitConvertToTarget, 2, ++/* 16652*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRLRNI_D_Q), 0, ++ MVT::v4i64, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4348:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] })<>:$ui7) - Complexity = 12 ++ // Dst: (XVSSRLRNI_D_Q:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] }):$ui7) ++/* 16661*/ /*Scope*/ 24, /*->16686*/ ++/* 16662*/ OPC_CheckChild0Integer, 123|128,33/*4347*/, ++/* 16665*/ OPC_RecordChild1, // #0 = $xd_in ++/* 16666*/ OPC_RecordChild2, // #1 = $xj ++/* 16667*/ OPC_RecordChild3, // #2 = $ui4 ++/* 16668*/ OPC_MoveChild3, ++/* 16669*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 16672*/ OPC_CheckPredicate, 23, // Predicate_immZExt4 ++/* 16674*/ OPC_MoveParent, ++/* 16675*/ OPC_EmitConvertToTarget, 2, ++/* 16677*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRLRNI_BU_H), 0, ++ MVT::v32i8, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4347:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xd_in, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] })<>:$ui4) - Complexity = 12 ++ // Dst: (XVSSRLRNI_BU_H:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xd_in, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] }):$ui4) ++/* 16686*/ /*Scope*/ 24, /*->16711*/ ++/* 16687*/ OPC_CheckChild0Integer, 127|128,33/*4351*/, ++/* 16690*/ OPC_RecordChild1, // #0 = $xd_in ++/* 16691*/ OPC_RecordChild2, // #1 = $xj ++/* 16692*/ OPC_RecordChild3, // #2 = $ui5 ++/* 16693*/ OPC_MoveChild3, ++/* 16694*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 16697*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 16699*/ OPC_MoveParent, ++/* 16700*/ OPC_EmitConvertToTarget, 2, ++/* 16702*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRLRNI_HU_W), 0, ++ MVT::v16i16, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4351:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xd_in, LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (XVSSRLRNI_HU_W:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xd_in, LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] }):$ui5) ++/* 16711*/ /*Scope*/ 24, /*->16736*/ ++/* 16712*/ OPC_CheckChild0Integer, 1|128,34/*4353*/, ++/* 16715*/ OPC_RecordChild1, // #0 = $xd_in ++/* 16716*/ OPC_RecordChild2, // #1 = $xj ++/* 16717*/ OPC_RecordChild3, // #2 = $ui6 ++/* 16718*/ OPC_MoveChild3, ++/* 16719*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 16722*/ OPC_CheckPredicate, 30, // Predicate_immZExt6 ++/* 16724*/ OPC_MoveParent, ++/* 16725*/ OPC_EmitConvertToTarget, 2, ++/* 16727*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRLRNI_WU_D), 0, ++ MVT::v8i32, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4353:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xd_in, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] })<>:$ui6) - Complexity = 12 ++ // Dst: (XVSSRLRNI_WU_D:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xd_in, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] }):$ui6) ++/* 16736*/ /*Scope*/ 24, /*->16761*/ ++/* 16737*/ OPC_CheckChild0Integer, 125|128,33/*4349*/, ++/* 16740*/ OPC_RecordChild1, // #0 = $xd_in ++/* 16741*/ OPC_RecordChild2, // #1 = $xj ++/* 16742*/ OPC_RecordChild3, // #2 = $ui7 ++/* 16743*/ OPC_MoveChild3, ++/* 16744*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 16747*/ OPC_CheckPredicate, 32, // Predicate_immZExt7 ++/* 16749*/ OPC_MoveParent, ++/* 16750*/ OPC_EmitConvertToTarget, 2, ++/* 16752*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRLRNI_DU_Q), 0, ++ MVT::v4i64, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4349:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] })<>:$ui7) - Complexity = 12 ++ // Dst: (XVSSRLRNI_DU_Q:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] }):$ui7) ++/* 16761*/ /*Scope*/ 24, /*->16786*/ ++/* 16762*/ OPC_CheckChild0Integer, 25|128,33/*4249*/, ++/* 16765*/ OPC_RecordChild1, // #0 = $xd_in ++/* 16766*/ OPC_RecordChild2, // #1 = $xj ++/* 16767*/ OPC_RecordChild3, // #2 = $ui4 ++/* 16768*/ OPC_MoveChild3, ++/* 16769*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 16772*/ OPC_CheckPredicate, 23, // Predicate_immZExt4 ++/* 16774*/ OPC_MoveParent, ++/* 16775*/ OPC_EmitConvertToTarget, 2, ++/* 16777*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRANI_B_H), 0, ++ MVT::v32i8, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4249:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xd_in, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] })<>:$ui4) - Complexity = 12 ++ // Dst: (XVSRANI_B_H:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xd_in, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] }):$ui4) ++/* 16786*/ /*Scope*/ 24, /*->16811*/ ++/* 16787*/ OPC_CheckChild0Integer, 27|128,33/*4251*/, ++/* 16790*/ OPC_RecordChild1, // #0 = $xd_in ++/* 16791*/ OPC_RecordChild2, // #1 = $xj ++/* 16792*/ OPC_RecordChild3, // #2 = $ui5 ++/* 16793*/ OPC_MoveChild3, ++/* 16794*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 16797*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 16799*/ OPC_MoveParent, ++/* 16800*/ OPC_EmitConvertToTarget, 2, ++/* 16802*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRANI_H_W), 0, ++ MVT::v16i16, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4251:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xd_in, LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (XVSRANI_H_W:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xd_in, LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] }):$ui5) ++/* 16811*/ /*Scope*/ 24, /*->16836*/ ++/* 16812*/ OPC_CheckChild0Integer, 28|128,33/*4252*/, ++/* 16815*/ OPC_RecordChild1, // #0 = $xd_in ++/* 16816*/ OPC_RecordChild2, // #1 = $xj ++/* 16817*/ OPC_RecordChild3, // #2 = $ui6 ++/* 16818*/ OPC_MoveChild3, ++/* 16819*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 16822*/ OPC_CheckPredicate, 30, // Predicate_immZExt6 ++/* 16824*/ OPC_MoveParent, ++/* 16825*/ OPC_EmitConvertToTarget, 2, ++/* 16827*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRANI_W_D), 0, ++ MVT::v8i32, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4252:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xd_in, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] })<>:$ui6) - Complexity = 12 ++ // Dst: (XVSRANI_W_D:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xd_in, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] }):$ui6) ++/* 16836*/ /*Scope*/ 24, /*->16861*/ ++/* 16837*/ OPC_CheckChild0Integer, 26|128,33/*4250*/, ++/* 16840*/ OPC_RecordChild1, // #0 = $xd_in ++/* 16841*/ OPC_RecordChild2, // #1 = $xj ++/* 16842*/ OPC_RecordChild3, // #2 = $ui7 ++/* 16843*/ OPC_MoveChild3, ++/* 16844*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 16847*/ OPC_CheckPredicate, 32, // Predicate_immZExt7 ++/* 16849*/ OPC_MoveParent, ++/* 16850*/ OPC_EmitConvertToTarget, 2, ++/* 16852*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRANI_D_Q), 0, ++ MVT::v4i64, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4250:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] })<>:$ui7) - Complexity = 12 ++ // Dst: (XVSRANI_D_Q:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] }):$ui7) ++/* 16861*/ /*Scope*/ 24, /*->16886*/ ++/* 16862*/ OPC_CheckChild0Integer, 40|128,33/*4264*/, ++/* 16865*/ OPC_RecordChild1, // #0 = $xd_in ++/* 16866*/ OPC_RecordChild2, // #1 = $xj ++/* 16867*/ OPC_RecordChild3, // #2 = $ui4 ++/* 16868*/ OPC_MoveChild3, ++/* 16869*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 16872*/ OPC_CheckPredicate, 23, // Predicate_immZExt4 ++/* 16874*/ OPC_MoveParent, ++/* 16875*/ OPC_EmitConvertToTarget, 2, ++/* 16877*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRARNI_B_H), 0, ++ MVT::v32i8, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4264:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xd_in, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] })<>:$ui4) - Complexity = 12 ++ // Dst: (XVSRARNI_B_H:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xd_in, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] }):$ui4) ++/* 16886*/ /*Scope*/ 24, /*->16911*/ ++/* 16887*/ OPC_CheckChild0Integer, 42|128,33/*4266*/, ++/* 16890*/ OPC_RecordChild1, // #0 = $xd_in ++/* 16891*/ OPC_RecordChild2, // #1 = $xj ++/* 16892*/ OPC_RecordChild3, // #2 = $ui5 ++/* 16893*/ OPC_MoveChild3, ++/* 16894*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 16897*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 16899*/ OPC_MoveParent, ++/* 16900*/ OPC_EmitConvertToTarget, 2, ++/* 16902*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRARNI_H_W), 0, ++ MVT::v16i16, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4266:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xd_in, LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (XVSRARNI_H_W:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xd_in, LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] }):$ui5) ++/* 16911*/ /*Scope*/ 24, /*->16936*/ ++/* 16912*/ OPC_CheckChild0Integer, 43|128,33/*4267*/, ++/* 16915*/ OPC_RecordChild1, // #0 = $xd_in ++/* 16916*/ OPC_RecordChild2, // #1 = $xj ++/* 16917*/ OPC_RecordChild3, // #2 = $ui6 ++/* 16918*/ OPC_MoveChild3, ++/* 16919*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 16922*/ OPC_CheckPredicate, 30, // Predicate_immZExt6 ++/* 16924*/ OPC_MoveParent, ++/* 16925*/ OPC_EmitConvertToTarget, 2, ++/* 16927*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRARNI_W_D), 0, ++ MVT::v8i32, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4267:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xd_in, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] })<>:$ui6) - Complexity = 12 ++ // Dst: (XVSRARNI_W_D:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xd_in, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] }):$ui6) ++/* 16936*/ /*Scope*/ 24, /*->16961*/ ++/* 16937*/ OPC_CheckChild0Integer, 41|128,33/*4265*/, ++/* 16940*/ OPC_RecordChild1, // #0 = $xd_in ++/* 16941*/ OPC_RecordChild2, // #1 = $xj ++/* 16942*/ OPC_RecordChild3, // #2 = $ui7 ++/* 16943*/ OPC_MoveChild3, ++/* 16944*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 16947*/ OPC_CheckPredicate, 32, // Predicate_immZExt7 ++/* 16949*/ OPC_MoveParent, ++/* 16950*/ OPC_EmitConvertToTarget, 2, ++/* 16952*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRARNI_D_Q), 0, ++ MVT::v4i64, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4265:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] })<>:$ui7) - Complexity = 12 ++ // Dst: (XVSRARNI_D_Q:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] }):$ui7) ++/* 16961*/ /*Scope*/ 24, /*->16986*/ ++/* 16962*/ OPC_CheckChild0Integer, 80|128,33/*4304*/, ++/* 16965*/ OPC_RecordChild1, // #0 = $xd_in ++/* 16966*/ OPC_RecordChild2, // #1 = $xj ++/* 16967*/ OPC_RecordChild3, // #2 = $ui4 ++/* 16968*/ OPC_MoveChild3, ++/* 16969*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 16972*/ OPC_CheckPredicate, 23, // Predicate_immZExt4 ++/* 16974*/ OPC_MoveParent, ++/* 16975*/ OPC_EmitConvertToTarget, 2, ++/* 16977*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRANI_B_H), 0, ++ MVT::v32i8, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4304:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xd_in, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] })<>:$ui4) - Complexity = 12 ++ // Dst: (XVSSRANI_B_H:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xd_in, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] }):$ui4) ++/* 16986*/ /*Scope*/ 24, /*->17011*/ ++/* 16987*/ OPC_CheckChild0Integer, 84|128,33/*4308*/, ++/* 16990*/ OPC_RecordChild1, // #0 = $xd_in ++/* 16991*/ OPC_RecordChild2, // #1 = $xj ++/* 16992*/ OPC_RecordChild3, // #2 = $ui5 ++/* 16993*/ OPC_MoveChild3, ++/* 16994*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 16997*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 16999*/ OPC_MoveParent, ++/* 17000*/ OPC_EmitConvertToTarget, 2, ++/* 17002*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRANI_H_W), 0, ++ MVT::v16i16, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4308:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xd_in, LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (XVSSRANI_H_W:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xd_in, LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] }):$ui5) ++/* 17011*/ /*Scope*/ 24, /*->17036*/ ++/* 17012*/ OPC_CheckChild0Integer, 86|128,33/*4310*/, ++/* 17015*/ OPC_RecordChild1, // #0 = $xd_in ++/* 17016*/ OPC_RecordChild2, // #1 = $xj ++/* 17017*/ OPC_RecordChild3, // #2 = $ui6 ++/* 17018*/ OPC_MoveChild3, ++/* 17019*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 17022*/ OPC_CheckPredicate, 30, // Predicate_immZExt6 ++/* 17024*/ OPC_MoveParent, ++/* 17025*/ OPC_EmitConvertToTarget, 2, ++/* 17027*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRANI_W_D), 0, ++ MVT::v8i32, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4310:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xd_in, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] })<>:$ui6) - Complexity = 12 ++ // Dst: (XVSSRANI_W_D:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xd_in, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] }):$ui6) ++/* 17036*/ /*Scope*/ 24, /*->17061*/ ++/* 17037*/ OPC_CheckChild0Integer, 82|128,33/*4306*/, ++/* 17040*/ OPC_RecordChild1, // #0 = $xd_in ++/* 17041*/ OPC_RecordChild2, // #1 = $xj ++/* 17042*/ OPC_RecordChild3, // #2 = $ui7 ++/* 17043*/ OPC_MoveChild3, ++/* 17044*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 17047*/ OPC_CheckPredicate, 32, // Predicate_immZExt7 ++/* 17049*/ OPC_MoveParent, ++/* 17050*/ OPC_EmitConvertToTarget, 2, ++/* 17052*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRANI_D_Q), 0, ++ MVT::v4i64, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4306:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] })<>:$ui7) - Complexity = 12 ++ // Dst: (XVSSRANI_D_Q:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] }):$ui7) ++/* 17061*/ /*Scope*/ 24, /*->17086*/ ++/* 17062*/ OPC_CheckChild0Integer, 81|128,33/*4305*/, ++/* 17065*/ OPC_RecordChild1, // #0 = $xd_in ++/* 17066*/ OPC_RecordChild2, // #1 = $xj ++/* 17067*/ OPC_RecordChild3, // #2 = $ui4 ++/* 17068*/ OPC_MoveChild3, ++/* 17069*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 17072*/ OPC_CheckPredicate, 23, // Predicate_immZExt4 ++/* 17074*/ OPC_MoveParent, ++/* 17075*/ OPC_EmitConvertToTarget, 2, ++/* 17077*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRANI_BU_H), 0, ++ MVT::v32i8, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4305:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xd_in, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] })<>:$ui4) - Complexity = 12 ++ // Dst: (XVSSRANI_BU_H:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xd_in, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] }):$ui4) ++/* 17086*/ /*Scope*/ 24, /*->17111*/ ++/* 17087*/ OPC_CheckChild0Integer, 85|128,33/*4309*/, ++/* 17090*/ OPC_RecordChild1, // #0 = $xd_in ++/* 17091*/ OPC_RecordChild2, // #1 = $xj ++/* 17092*/ OPC_RecordChild3, // #2 = $ui5 ++/* 17093*/ OPC_MoveChild3, ++/* 17094*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 17097*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 17099*/ OPC_MoveParent, ++/* 17100*/ OPC_EmitConvertToTarget, 2, ++/* 17102*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRANI_HU_W), 0, ++ MVT::v16i16, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4309:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xd_in, LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (XVSSRANI_HU_W:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xd_in, LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] }):$ui5) ++/* 17111*/ /*Scope*/ 24, /*->17136*/ ++/* 17112*/ OPC_CheckChild0Integer, 87|128,33/*4311*/, ++/* 17115*/ OPC_RecordChild1, // #0 = $xd_in ++/* 17116*/ OPC_RecordChild2, // #1 = $xj ++/* 17117*/ OPC_RecordChild3, // #2 = $ui6 ++/* 17118*/ OPC_MoveChild3, ++/* 17119*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 17122*/ OPC_CheckPredicate, 30, // Predicate_immZExt6 ++/* 17124*/ OPC_MoveParent, ++/* 17125*/ OPC_EmitConvertToTarget, 2, ++/* 17127*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRANI_WU_D), 0, ++ MVT::v8i32, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4311:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xd_in, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] })<>:$ui6) - Complexity = 12 ++ // Dst: (XVSSRANI_WU_D:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xd_in, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] }):$ui6) ++/* 17136*/ /*Scope*/ 24, /*->17161*/ ++/* 17137*/ OPC_CheckChild0Integer, 83|128,33/*4307*/, ++/* 17140*/ OPC_RecordChild1, // #0 = $xd_in ++/* 17141*/ OPC_RecordChild2, // #1 = $xj ++/* 17142*/ OPC_RecordChild3, // #2 = $ui7 ++/* 17143*/ OPC_MoveChild3, ++/* 17144*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 17147*/ OPC_CheckPredicate, 32, // Predicate_immZExt7 ++/* 17149*/ OPC_MoveParent, ++/* 17150*/ OPC_EmitConvertToTarget, 2, ++/* 17152*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRANI_DU_Q), 0, ++ MVT::v4i64, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4307:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] })<>:$ui7) - Complexity = 12 ++ // Dst: (XVSSRANI_DU_Q:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] }):$ui7) ++/* 17161*/ /*Scope*/ 24, /*->17186*/ ++/* 17162*/ OPC_CheckChild0Integer, 94|128,33/*4318*/, ++/* 17165*/ OPC_RecordChild1, // #0 = $xd_in ++/* 17166*/ OPC_RecordChild2, // #1 = $xj ++/* 17167*/ OPC_RecordChild3, // #2 = $ui4 ++/* 17168*/ OPC_MoveChild3, ++/* 17169*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 17172*/ OPC_CheckPredicate, 23, // Predicate_immZExt4 ++/* 17174*/ OPC_MoveParent, ++/* 17175*/ OPC_EmitConvertToTarget, 2, ++/* 17177*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRARNI_B_H), 0, ++ MVT::v32i8, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4318:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xd_in, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] })<>:$ui4) - Complexity = 12 ++ // Dst: (XVSSRARNI_B_H:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xd_in, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] }):$ui4) ++/* 17186*/ /*Scope*/ 24, /*->17211*/ ++/* 17187*/ OPC_CheckChild0Integer, 98|128,33/*4322*/, ++/* 17190*/ OPC_RecordChild1, // #0 = $xd_in ++/* 17191*/ OPC_RecordChild2, // #1 = $xj ++/* 17192*/ OPC_RecordChild3, // #2 = $ui5 ++/* 17193*/ OPC_MoveChild3, ++/* 17194*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 17197*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 17199*/ OPC_MoveParent, ++/* 17200*/ OPC_EmitConvertToTarget, 2, ++/* 17202*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRARNI_H_W), 0, ++ MVT::v16i16, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4322:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xd_in, LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (XVSSRARNI_H_W:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xd_in, LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] }):$ui5) ++/* 17211*/ /*Scope*/ 24, /*->17236*/ ++/* 17212*/ OPC_CheckChild0Integer, 100|128,33/*4324*/, ++/* 17215*/ OPC_RecordChild1, // #0 = $xd_in ++/* 17216*/ OPC_RecordChild2, // #1 = $xj ++/* 17217*/ OPC_RecordChild3, // #2 = $ui6 ++/* 17218*/ OPC_MoveChild3, ++/* 17219*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 17222*/ OPC_CheckPredicate, 30, // Predicate_immZExt6 ++/* 17224*/ OPC_MoveParent, ++/* 17225*/ OPC_EmitConvertToTarget, 2, ++/* 17227*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRARNI_W_D), 0, ++ MVT::v8i32, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4324:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xd_in, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] })<>:$ui6) - Complexity = 12 ++ // Dst: (XVSSRARNI_W_D:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xd_in, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] }):$ui6) ++/* 17236*/ /*Scope*/ 24, /*->17261*/ ++/* 17237*/ OPC_CheckChild0Integer, 96|128,33/*4320*/, ++/* 17240*/ OPC_RecordChild1, // #0 = $xd_in ++/* 17241*/ OPC_RecordChild2, // #1 = $xj ++/* 17242*/ OPC_RecordChild3, // #2 = $ui7 ++/* 17243*/ OPC_MoveChild3, ++/* 17244*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 17247*/ OPC_CheckPredicate, 32, // Predicate_immZExt7 ++/* 17249*/ OPC_MoveParent, ++/* 17250*/ OPC_EmitConvertToTarget, 2, ++/* 17252*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRARNI_D_Q), 0, ++ MVT::v4i64, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4320:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] })<>:$ui7) - Complexity = 12 ++ // Dst: (XVSSRARNI_D_Q:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] }):$ui7) ++/* 17261*/ /*Scope*/ 24, /*->17286*/ ++/* 17262*/ OPC_CheckChild0Integer, 95|128,33/*4319*/, ++/* 17265*/ OPC_RecordChild1, // #0 = $xd_in ++/* 17266*/ OPC_RecordChild2, // #1 = $xj ++/* 17267*/ OPC_RecordChild3, // #2 = $ui4 ++/* 17268*/ OPC_MoveChild3, ++/* 17269*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 17272*/ OPC_CheckPredicate, 23, // Predicate_immZExt4 ++/* 17274*/ OPC_MoveParent, ++/* 17275*/ OPC_EmitConvertToTarget, 2, ++/* 17277*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRARNI_BU_H), 0, ++ MVT::v32i8, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4319:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xd_in, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] })<>:$ui4) - Complexity = 12 ++ // Dst: (XVSSRARNI_BU_H:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xd_in, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] }):$ui4) ++/* 17286*/ /*Scope*/ 24, /*->17311*/ ++/* 17287*/ OPC_CheckChild0Integer, 99|128,33/*4323*/, ++/* 17290*/ OPC_RecordChild1, // #0 = $xd_in ++/* 17291*/ OPC_RecordChild2, // #1 = $xj ++/* 17292*/ OPC_RecordChild3, // #2 = $ui5 ++/* 17293*/ OPC_MoveChild3, ++/* 17294*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 17297*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/* 17299*/ OPC_MoveParent, ++/* 17300*/ OPC_EmitConvertToTarget, 2, ++/* 17302*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRARNI_HU_W), 0, ++ MVT::v16i16, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4323:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xd_in, LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 12 ++ // Dst: (XVSSRARNI_HU_W:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xd_in, LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] }):$ui5) ++/* 17311*/ /*Scope*/ 24, /*->17336*/ ++/* 17312*/ OPC_CheckChild0Integer, 101|128,33/*4325*/, ++/* 17315*/ OPC_RecordChild1, // #0 = $xd_in ++/* 17316*/ OPC_RecordChild2, // #1 = $xj ++/* 17317*/ OPC_RecordChild3, // #2 = $ui6 ++/* 17318*/ OPC_MoveChild3, ++/* 17319*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 17322*/ OPC_CheckPredicate, 30, // Predicate_immZExt6 ++/* 17324*/ OPC_MoveParent, ++/* 17325*/ OPC_EmitConvertToTarget, 2, ++/* 17327*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRARNI_WU_D), 0, ++ MVT::v8i32, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4325:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xd_in, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] })<>:$ui6) - Complexity = 12 ++ // Dst: (XVSSRARNI_WU_D:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xd_in, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] }):$ui6) ++/* 17336*/ /*Scope*/ 24, /*->17361*/ ++/* 17337*/ OPC_CheckChild0Integer, 97|128,33/*4321*/, ++/* 17340*/ OPC_RecordChild1, // #0 = $xd_in ++/* 17341*/ OPC_RecordChild2, // #1 = $xj ++/* 17342*/ OPC_RecordChild3, // #2 = $ui7 ++/* 17343*/ OPC_MoveChild3, ++/* 17344*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 17347*/ OPC_CheckPredicate, 32, // Predicate_immZExt7 ++/* 17349*/ OPC_MoveParent, ++/* 17350*/ OPC_EmitConvertToTarget, 2, ++/* 17352*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRARNI_DU_Q), 0, ++ MVT::v4i64, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4321:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] })<>:$ui7) - Complexity = 12 ++ // Dst: (XVSSRARNI_DU_Q:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] }):$ui7) ++/* 17361*/ /*Scope*/ 24, /*->17386*/ ++/* 17362*/ OPC_CheckChild0Integer, 93|128,29/*3805*/, ++/* 17365*/ OPC_RecordChild1, // #0 = $xd_in ++/* 17366*/ OPC_RecordChild2, // #1 = $xj ++/* 17367*/ OPC_RecordChild3, // #2 = $ui8 ++/* 17368*/ OPC_MoveChild3, ++/* 17369*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 17372*/ OPC_CheckPredicate, 31, // Predicate_immZExt8 ++/* 17374*/ OPC_MoveParent, ++/* 17375*/ OPC_EmitConvertToTarget, 2, ++/* 17377*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVEXTRINS_B), 0, ++ MVT::v32i8, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 3805:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xd_in, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] })<>:$ui8) - Complexity = 12 ++ // Dst: (XVEXTRINS_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xd_in, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] }):$ui8) ++/* 17386*/ /*Scope*/ 24, /*->17411*/ ++/* 17387*/ OPC_CheckChild0Integer, 95|128,29/*3807*/, ++/* 17390*/ OPC_RecordChild1, // #0 = $xd_in ++/* 17391*/ OPC_RecordChild2, // #1 = $xj ++/* 17392*/ OPC_RecordChild3, // #2 = $ui8 ++/* 17393*/ OPC_MoveChild3, ++/* 17394*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 17397*/ OPC_CheckPredicate, 31, // Predicate_immZExt8 ++/* 17399*/ OPC_MoveParent, ++/* 17400*/ OPC_EmitConvertToTarget, 2, ++/* 17402*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVEXTRINS_H), 0, ++ MVT::v16i16, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 3807:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xd_in, LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] })<>:$ui8) - Complexity = 12 ++ // Dst: (XVEXTRINS_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xd_in, LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] }):$ui8) ++/* 17411*/ /*Scope*/ 24, /*->17436*/ ++/* 17412*/ OPC_CheckChild0Integer, 96|128,29/*3808*/, ++/* 17415*/ OPC_RecordChild1, // #0 = $xd_in ++/* 17416*/ OPC_RecordChild2, // #1 = $xj ++/* 17417*/ OPC_RecordChild3, // #2 = $ui8 ++/* 17418*/ OPC_MoveChild3, ++/* 17419*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 17422*/ OPC_CheckPredicate, 31, // Predicate_immZExt8 ++/* 17424*/ OPC_MoveParent, ++/* 17425*/ OPC_EmitConvertToTarget, 2, ++/* 17427*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVEXTRINS_W), 0, ++ MVT::v8i32, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3808:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xd_in, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] })<>:$ui8) - Complexity = 12 ++ // Dst: (XVEXTRINS_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xd_in, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] }):$ui8) ++/* 17436*/ /*Scope*/ 24, /*->17461*/ ++/* 17437*/ OPC_CheckChild0Integer, 94|128,29/*3806*/, ++/* 17440*/ OPC_RecordChild1, // #0 = $xd_in ++/* 17441*/ OPC_RecordChild2, // #1 = $xj ++/* 17442*/ OPC_RecordChild3, // #2 = $ui8 ++/* 17443*/ OPC_MoveChild3, ++/* 17444*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 17447*/ OPC_CheckPredicate, 31, // Predicate_immZExt8 ++/* 17449*/ OPC_MoveParent, ++/* 17450*/ OPC_EmitConvertToTarget, 2, ++/* 17452*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVEXTRINS_D), 0, ++ MVT::v4i64, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3806:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] })<>:$ui8) - Complexity = 12 ++ // Dst: (XVEXTRINS_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] }):$ui8) ++/* 17461*/ /*Scope*/ 22, /*->17484*/ ++/* 17462*/ OPC_CheckChild0Integer, 88|128,32/*4184*/, ++/* 17465*/ OPC_RecordChild1, // #0 = $xj ++/* 17466*/ OPC_RecordChild2, // #1 = $ui8 ++/* 17467*/ OPC_MoveChild2, ++/* 17468*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 17471*/ OPC_CheckPredicate, 31, // Predicate_immZExt8 ++/* 17473*/ OPC_MoveParent, ++/* 17474*/ OPC_EmitConvertToTarget, 1, ++/* 17476*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSHUF4I_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4184:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] })<>:$ui8) - Complexity = 12 ++ // Dst: (XVSHUF4I_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] }):$ui8) ++/* 17484*/ /*Scope*/ 22, /*->17507*/ ++/* 17485*/ OPC_CheckChild0Integer, 90|128,32/*4186*/, ++/* 17488*/ OPC_RecordChild1, // #0 = $xj ++/* 17489*/ OPC_RecordChild2, // #1 = $ui8 ++/* 17490*/ OPC_MoveChild2, ++/* 17491*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 17494*/ OPC_CheckPredicate, 31, // Predicate_immZExt8 ++/* 17496*/ OPC_MoveParent, ++/* 17497*/ OPC_EmitConvertToTarget, 1, ++/* 17499*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSHUF4I_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4186:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] })<>:$ui8) - Complexity = 12 ++ // Dst: (XVSHUF4I_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, (imm:{ *:[i32] }):$ui8) ++/* 17507*/ /*Scope*/ 22, /*->17530*/ ++/* 17508*/ OPC_CheckChild0Integer, 91|128,32/*4187*/, ++/* 17511*/ OPC_RecordChild1, // #0 = $xj ++/* 17512*/ OPC_RecordChild2, // #1 = $ui8 ++/* 17513*/ OPC_MoveChild2, ++/* 17514*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 17517*/ OPC_CheckPredicate, 31, // Predicate_immZExt8 ++/* 17519*/ OPC_MoveParent, ++/* 17520*/ OPC_EmitConvertToTarget, 1, ++/* 17522*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSHUF4I_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4187:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] })<>:$ui8) - Complexity = 12 ++ // Dst: (XVSHUF4I_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] }):$ui8) ++/* 17530*/ /*Scope*/ 24, /*->17555*/ ++/* 17531*/ OPC_CheckChild0Integer, 89|128,32/*4185*/, ++/* 17534*/ OPC_RecordChild1, // #0 = $xd_in ++/* 17535*/ OPC_RecordChild2, // #1 = $xj ++/* 17536*/ OPC_RecordChild3, // #2 = $ui8 ++/* 17537*/ OPC_MoveChild3, ++/* 17538*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 17541*/ OPC_CheckPredicate, 31, // Predicate_immZExt8 ++/* 17543*/ OPC_MoveParent, ++/* 17544*/ OPC_EmitConvertToTarget, 2, ++/* 17546*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSHUF4I_D), 0, ++ MVT::v4i64, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4185:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] })<>:$ui8) - Complexity = 12 ++ // Dst: (XVSHUF4I_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] }):$ui8) ++/* 17555*/ /*Scope*/ 24, /*->17580*/ ++/* 17556*/ OPC_CheckChild0Integer, 56|128,29/*3768*/, ++/* 17559*/ OPC_RecordChild1, // #0 = $xd_in ++/* 17560*/ OPC_RecordChild2, // #1 = $xj ++/* 17561*/ OPC_RecordChild3, // #2 = $ui8 ++/* 17562*/ OPC_MoveChild3, ++/* 17563*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 17566*/ OPC_CheckPredicate, 31, // Predicate_immZExt8 ++/* 17568*/ OPC_MoveParent, ++/* 17569*/ OPC_EmitConvertToTarget, 2, ++/* 17571*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITSELI_B), 0, ++ MVT::v32i8, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 3768:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xd_in, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] })<>:$ui8) - Complexity = 12 ++ // Dst: (XVBITSELI_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xd_in, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] }):$ui8) ++/* 17580*/ /*Scope*/ 22, /*->17603*/ ++/* 17581*/ OPC_CheckChild0Integer, 21|128,29/*3733*/, ++/* 17584*/ OPC_RecordChild1, // #0 = $xj ++/* 17585*/ OPC_RecordChild2, // #1 = $ui8 ++/* 17586*/ OPC_MoveChild2, ++/* 17587*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 17590*/ OPC_CheckPredicate, 31, // Predicate_immZExt8 ++/* 17592*/ OPC_MoveParent, ++/* 17593*/ OPC_EmitConvertToTarget, 1, ++/* 17595*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVANDI_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 3733:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] })<>:$ui8) - Complexity = 12 ++ // Dst: (XVANDI_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] }):$ui8) ++/* 17603*/ /*Scope*/ 22, /*->17626*/ ++/* 17604*/ OPC_CheckChild0Integer, 3|128,32/*4099*/, ++/* 17607*/ OPC_RecordChild1, // #0 = $xj ++/* 17608*/ OPC_RecordChild2, // #1 = $ui8 ++/* 17609*/ OPC_MoveChild2, ++/* 17610*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 17613*/ OPC_CheckPredicate, 31, // Predicate_immZExt8 ++/* 17615*/ OPC_MoveParent, ++/* 17616*/ OPC_EmitConvertToTarget, 1, ++/* 17618*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVORI_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4099:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] })<>:$ui8) - Complexity = 12 ++ // Dst: (XVORI_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] }):$ui8) ++/* 17626*/ /*Scope*/ 22, /*->17649*/ ++/* 17627*/ OPC_CheckChild0Integer, 42|128,34/*4394*/, ++/* 17630*/ OPC_RecordChild1, // #0 = $xj ++/* 17631*/ OPC_RecordChild2, // #1 = $ui8 ++/* 17632*/ OPC_MoveChild2, ++/* 17633*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 17636*/ OPC_CheckPredicate, 31, // Predicate_immZExt8 ++/* 17638*/ OPC_MoveParent, ++/* 17639*/ OPC_EmitConvertToTarget, 1, ++/* 17641*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVXORI_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4394:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] })<>:$ui8) - Complexity = 12 ++ // Dst: (XVXORI_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] }):$ui8) ++/* 17649*/ /*Scope*/ 22, /*->17672*/ ++/* 17650*/ OPC_CheckChild0Integer, 1|128,32/*4097*/, ++/* 17653*/ OPC_RecordChild1, // #0 = $xj ++/* 17654*/ OPC_RecordChild2, // #1 = $ui8 ++/* 17655*/ OPC_MoveChild2, ++/* 17656*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 17659*/ OPC_CheckPredicate, 31, // Predicate_immZExt8 ++/* 17661*/ OPC_MoveParent, ++/* 17662*/ OPC_EmitConvertToTarget, 1, ++/* 17664*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVNORI_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4097:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] })<>:$ui8) - Complexity = 12 ++ // Dst: (XVNORI_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] }):$ui8) ++/* 17672*/ /*Scope*/ 20, /*->17693*/ ++/* 17673*/ OPC_CheckChild0Integer, 4|128,31/*3972*/, ++/* 17676*/ OPC_RecordChild1, // #0 = $i13 ++/* 17677*/ OPC_MoveChild1, ++/* 17678*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 17681*/ OPC_CheckPredicate, 33, // Predicate_simm13 ++/* 17683*/ OPC_MoveParent, ++/* 17684*/ OPC_EmitConvertToTarget, 0, ++/* 17686*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVLDI), 0, ++ MVT::v4i64, 1/*#Ops*/, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3972:{ *:[iPTR] }, (imm:{ *:[i32] })<>:$i13) - Complexity = 12 ++ // Dst: (XVLDI:{ *:[v4i64] } (imm:{ *:[i32] }):$i13) ++/* 17693*/ /*Scope*/ 24, /*->17718*/ ++/* 17694*/ OPC_CheckChild0Integer, 20|128,32/*4116*/, ++/* 17697*/ OPC_RecordChild1, // #0 = $xd_in ++/* 17698*/ OPC_RecordChild2, // #1 = $xj ++/* 17699*/ OPC_RecordChild3, // #2 = $ui8 ++/* 17700*/ OPC_MoveChild3, ++/* 17701*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 17704*/ OPC_CheckPredicate, 31, // Predicate_immZExt8 ++/* 17706*/ OPC_MoveParent, ++/* 17707*/ OPC_EmitConvertToTarget, 2, ++/* 17709*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPERMI_W), 0, ++ MVT::v8i32, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4116:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xd_in, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] })<>:$ui8) - Complexity = 12 ++ // Dst: (XVPERMI_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xd_in, LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[i32] }):$ui8) ++/* 17718*/ /*Scope*/ 22, /*->17741*/ ++/* 17719*/ OPC_CheckChild0Integer, 18|128,32/*4114*/, ++/* 17722*/ OPC_RecordChild1, // #0 = $xj ++/* 17723*/ OPC_RecordChild2, // #1 = $ui8 ++/* 17724*/ OPC_MoveChild2, ++/* 17725*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 17728*/ OPC_CheckPredicate, 31, // Predicate_immZExt8 ++/* 17730*/ OPC_MoveParent, ++/* 17731*/ OPC_EmitConvertToTarget, 1, ++/* 17733*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPERMI_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4114:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] })<>:$ui8) - Complexity = 12 ++ // Dst: (XVPERMI_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[i32] }):$ui8) ++/* 17741*/ /*Scope*/ 24, /*->17766*/ ++/* 17742*/ OPC_CheckChild0Integer, 19|128,32/*4115*/, ++/* 17745*/ OPC_RecordChild1, // #0 = $xd_in ++/* 17746*/ OPC_RecordChild2, // #1 = $xj ++/* 17747*/ OPC_RecordChild3, // #2 = $ui8 ++/* 17748*/ OPC_MoveChild3, ++/* 17749*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 17752*/ OPC_CheckPredicate, 31, // Predicate_immZExt8 ++/* 17754*/ OPC_MoveParent, ++/* 17755*/ OPC_EmitConvertToTarget, 2, ++/* 17757*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPERMI_Q), 0, ++ MVT::v32i8, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4115:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xd_in, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] })<>:$ui8) - Complexity = 12 ++ // Dst: (XVPERMI_Q:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xd_in, LASX256BOpnd:{ *:[v32i8] }:$xj, (imm:{ *:[i32] }):$ui8) ++/* 17766*/ /*Scope*/ 26, /*->17793*/ ++/* 17767*/ OPC_CheckChild0Integer, 0|128,31/*3968*/, ++/* 17770*/ OPC_RecordChild1, // #0 = $xj ++/* 17771*/ OPC_RecordChild2, // #1 = $rj ++/* 17772*/ OPC_RecordChild3, // #2 = $ui3 ++/* 17773*/ OPC_MoveChild3, ++/* 17774*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 17777*/ OPC_CheckPredicate, 24, // Predicate_immZExt3 ++/* 17779*/ OPC_MoveParent, ++/* 17780*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 17782*/ OPC_EmitConvertToTarget, 2, ++/* 17784*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVINSGR2VR_W), 0, ++ MVT::v8i32, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3968:{ *:[iPTR] }, LASX256W:{ *:[v8i32] }:$xj, GPR32Opnd:{ *:[i32] }:$rj, (imm:{ *:[i32] })<>:$ui3) - Complexity = 12 ++ // Dst: (XVINSGR2VR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$xj, GPR32Opnd:{ *:[i32] }:$rj, (imm:{ *:[i32] })<>:$ui3) ++/* 17793*/ /*Scope*/ 26, /*->17820*/ ++/* 17794*/ OPC_CheckChild0Integer, 127|128,30/*3967*/, ++/* 17797*/ OPC_RecordChild1, // #0 = $xj ++/* 17798*/ OPC_RecordChild2, // #1 = $rj ++/* 17799*/ OPC_RecordChild3, // #2 = $ui2 ++/* 17800*/ OPC_MoveChild3, ++/* 17801*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 17804*/ OPC_CheckPredicate, 25, // Predicate_immZExt2 ++/* 17806*/ OPC_MoveParent, ++/* 17807*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 17809*/ OPC_EmitConvertToTarget, 2, ++/* 17811*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVINSGR2VR_D), 0, ++ MVT::v4i64, 3/*#Ops*/, 0, 1, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3967:{ *:[iPTR] }, LASX256D:{ *:[v4i64] }:$xj, GPR64Opnd:{ *:[i64] }:$rj, (imm:{ *:[i32] })<>:$ui2) - Complexity = 12 ++ // Dst: (XVINSGR2VR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$xj, GPR64Opnd:{ *:[i64] }:$rj, (imm:{ *:[i32] })<>:$ui2) ++/* 17820*/ /*Scope*/ 31, /*->17852*/ ++/* 17821*/ OPC_CheckChild0Integer, 30|128,32/*4126*/, ++/* 17824*/ OPC_RecordChild1, // #0 = $xj ++/* 17825*/ OPC_RecordChild2, // #1 = $ui3 ++/* 17826*/ OPC_MoveChild2, ++/* 17827*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 17830*/ OPC_CheckPredicate, 24, // Predicate_immZExt3 ++/* 17832*/ OPC_MoveParent, ++/* 17833*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 17835*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::v8i32, 0/*#Ops*/, // Results = #2 ++/* 17841*/ OPC_EmitConvertToTarget, 1, ++/* 17843*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPICKVE_W), 0, ++ MVT::v8i32, 3/*#Ops*/, 2, 0, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4126:{ *:[iPTR] }, LASX256W:{ *:[v8i32] }:$xj, (imm:{ *:[i32] })<>:$ui3) - Complexity = 12 ++ // Dst: (XVPICKVE_W:{ *:[v8i32] } (IMPLICIT_DEF:{ *:[v8i32] }), LASX256W:{ *:[v8i32] }:$xj, (imm:{ *:[i32] })<>:$ui3) ++/* 17852*/ /*Scope*/ 31, /*->17884*/ ++/* 17853*/ OPC_CheckChild0Integer, 29|128,32/*4125*/, ++/* 17856*/ OPC_RecordChild1, // #0 = $xj ++/* 17857*/ OPC_RecordChild2, // #1 = $ui2 ++/* 17858*/ OPC_MoveChild2, ++/* 17859*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 17862*/ OPC_CheckPredicate, 25, // Predicate_immZExt2 ++/* 17864*/ OPC_MoveParent, ++/* 17865*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 17867*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::v4i64, 0/*#Ops*/, // Results = #2 ++/* 17873*/ OPC_EmitConvertToTarget, 1, ++/* 17875*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPICKVE_D), 0, ++ MVT::v4i64, 3/*#Ops*/, 2, 0, 3, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4125:{ *:[iPTR] }, LASX256D:{ *:[v4i64] }:$xj, (imm:{ *:[i32] })<>:$ui2) - Complexity = 12 ++ // Dst: (XVPICKVE_D:{ *:[v4i64] } (IMPLICIT_DEF:{ *:[v4i64] }), LASX256D:{ *:[v4i64] }:$xj, (imm:{ *:[i32] })<>:$ui2) ++/* 17884*/ /*Scope*/ 13, /*->17898*/ ++/* 17885*/ OPC_CheckChild0Integer, 52|128,35/*4532*/, ++/* 17888*/ OPC_RecordChild1, // #0 = $vj ++/* 17889*/ OPC_RecordChild2, // #1 = $vk ++/* 17890*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_CAF_S), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4532:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk) - Complexity = 8 ++ // Dst: (VFCMP_CAF_S:{ *:[v4i32] } LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk) ++/* 17898*/ /*Scope*/ 13, /*->17912*/ ++/* 17899*/ OPC_CheckChild0Integer, 51|128,35/*4531*/, ++/* 17902*/ OPC_RecordChild1, // #0 = $vj ++/* 17903*/ OPC_RecordChild2, // #1 = $vk ++/* 17904*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_CAF_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4531:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk) - Complexity = 8 ++ // Dst: (VFCMP_CAF_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk) ++/* 17912*/ /*Scope*/ 13, /*->17926*/ ++/* 17913*/ OPC_CheckChild0Integer, 74|128,35/*4554*/, ++/* 17916*/ OPC_RecordChild1, // #0 = $vj ++/* 17917*/ OPC_RecordChild2, // #1 = $vk ++/* 17918*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_SAF_S), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4554:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk) - Complexity = 8 ++ // Dst: (VFCMP_SAF_S:{ *:[v4i32] } LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk) ++/* 17926*/ /*Scope*/ 13, /*->17940*/ ++/* 17927*/ OPC_CheckChild0Integer, 73|128,35/*4553*/, ++/* 17930*/ OPC_RecordChild1, // #0 = $vj ++/* 17931*/ OPC_RecordChild2, // #1 = $vk ++/* 17932*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_SAF_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4553:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk) - Complexity = 8 ++ // Dst: (VFCMP_SAF_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk) ++/* 17940*/ /*Scope*/ 13, /*->17954*/ ++/* 17941*/ OPC_CheckChild0Integer, 84|128,35/*4564*/, ++/* 17944*/ OPC_RecordChild1, // #0 = $vj ++/* 17945*/ OPC_RecordChild2, // #1 = $vk ++/* 17946*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_SOR_S), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4564:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk) - Complexity = 8 ++ // Dst: (VFCMP_SOR_S:{ *:[v4i32] } LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk) ++/* 17954*/ /*Scope*/ 13, /*->17968*/ ++/* 17955*/ OPC_CheckChild0Integer, 83|128,35/*4563*/, ++/* 17958*/ OPC_RecordChild1, // #0 = $vj ++/* 17959*/ OPC_RecordChild2, // #1 = $vk ++/* 17960*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_SOR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4563:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk) - Complexity = 8 ++ // Dst: (VFCMP_SOR_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk) ++/* 17968*/ /*Scope*/ 13, /*->17982*/ ++/* 17969*/ OPC_CheckChild0Integer, 92|128,35/*4572*/, ++/* 17972*/ OPC_RecordChild1, // #0 = $vj ++/* 17973*/ OPC_RecordChild2, // #1 = $vk ++/* 17974*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_SUN_S), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4572:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk) - Complexity = 8 ++ // Dst: (VFCMP_SUN_S:{ *:[v4i32] } LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk) ++/* 17982*/ /*Scope*/ 13, /*->17996*/ ++/* 17983*/ OPC_CheckChild0Integer, 91|128,35/*4571*/, ++/* 17986*/ OPC_RecordChild1, // #0 = $vj ++/* 17987*/ OPC_RecordChild2, // #1 = $vk ++/* 17988*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_SUN_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4571:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk) - Complexity = 8 ++ // Dst: (VFCMP_SUN_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk) ++/* 17996*/ /*Scope*/ 13, /*->18010*/ ++/* 17997*/ OPC_CheckChild0Integer, 94|128,35/*4574*/, ++/* 18000*/ OPC_RecordChild1, // #0 = $vj ++/* 18001*/ OPC_RecordChild2, // #1 = $vk ++/* 18002*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_SUNE_S), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4574:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk) - Complexity = 8 ++ // Dst: (VFCMP_SUNE_S:{ *:[v4i32] } LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk) ++/* 18010*/ /*Scope*/ 13, /*->18024*/ ++/* 18011*/ OPC_CheckChild0Integer, 93|128,35/*4573*/, ++/* 18014*/ OPC_RecordChild1, // #0 = $vj ++/* 18015*/ OPC_RecordChild2, // #1 = $vk ++/* 18016*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_SUNE_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4573:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk) - Complexity = 8 ++ // Dst: (VFCMP_SUNE_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk) ++/* 18024*/ /*Scope*/ 13, /*->18038*/ ++/* 18025*/ OPC_CheckChild0Integer, 86|128,35/*4566*/, ++/* 18028*/ OPC_RecordChild1, // #0 = $vj ++/* 18029*/ OPC_RecordChild2, // #1 = $vk ++/* 18030*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_SUEQ_S), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4566:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk) - Complexity = 8 ++ // Dst: (VFCMP_SUEQ_S:{ *:[v4i32] } LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk) ++/* 18038*/ /*Scope*/ 13, /*->18052*/ ++/* 18039*/ OPC_CheckChild0Integer, 85|128,35/*4565*/, ++/* 18042*/ OPC_RecordChild1, // #0 = $vj ++/* 18043*/ OPC_RecordChild2, // #1 = $vk ++/* 18044*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_SUEQ_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4565:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk) - Complexity = 8 ++ // Dst: (VFCMP_SUEQ_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk) ++/* 18052*/ /*Scope*/ 13, /*->18066*/ ++/* 18053*/ OPC_CheckChild0Integer, 76|128,35/*4556*/, ++/* 18056*/ OPC_RecordChild1, // #0 = $vj ++/* 18057*/ OPC_RecordChild2, // #1 = $vk ++/* 18058*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_SEQ_S), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4556:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk) - Complexity = 8 ++ // Dst: (VFCMP_SEQ_S:{ *:[v4i32] } LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk) ++/* 18066*/ /*Scope*/ 13, /*->18080*/ ++/* 18067*/ OPC_CheckChild0Integer, 75|128,35/*4555*/, ++/* 18070*/ OPC_RecordChild1, // #0 = $vj ++/* 18071*/ OPC_RecordChild2, // #1 = $vk ++/* 18072*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_SEQ_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4555:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk) - Complexity = 8 ++ // Dst: (VFCMP_SEQ_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk) ++/* 18080*/ /*Scope*/ 13, /*->18094*/ ++/* 18081*/ OPC_CheckChild0Integer, 82|128,35/*4562*/, ++/* 18084*/ OPC_RecordChild1, // #0 = $vj ++/* 18085*/ OPC_RecordChild2, // #1 = $vk ++/* 18086*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_SNE_S), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4562:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk) - Complexity = 8 ++ // Dst: (VFCMP_SNE_S:{ *:[v4i32] } LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk) ++/* 18094*/ /*Scope*/ 13, /*->18108*/ ++/* 18095*/ OPC_CheckChild0Integer, 81|128,35/*4561*/, ++/* 18098*/ OPC_RecordChild1, // #0 = $vj ++/* 18099*/ OPC_RecordChild2, // #1 = $vk ++/* 18100*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_SNE_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4561:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk) - Complexity = 8 ++ // Dst: (VFCMP_SNE_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk) ++/* 18108*/ /*Scope*/ 13, /*->18122*/ ++/* 18109*/ OPC_CheckChild0Integer, 80|128,35/*4560*/, ++/* 18112*/ OPC_RecordChild1, // #0 = $vj ++/* 18113*/ OPC_RecordChild2, // #1 = $vk ++/* 18114*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_SLT_S), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4560:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk) - Complexity = 8 ++ // Dst: (VFCMP_SLT_S:{ *:[v4i32] } LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk) ++/* 18122*/ /*Scope*/ 13, /*->18136*/ ++/* 18123*/ OPC_CheckChild0Integer, 79|128,35/*4559*/, ++/* 18126*/ OPC_RecordChild1, // #0 = $vj ++/* 18127*/ OPC_RecordChild2, // #1 = $vk ++/* 18128*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_SLT_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4559:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk) - Complexity = 8 ++ // Dst: (VFCMP_SLT_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk) ++/* 18136*/ /*Scope*/ 13, /*->18150*/ ++/* 18137*/ OPC_CheckChild0Integer, 90|128,35/*4570*/, ++/* 18140*/ OPC_RecordChild1, // #0 = $vj ++/* 18141*/ OPC_RecordChild2, // #1 = $vk ++/* 18142*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_SULT_S), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4570:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk) - Complexity = 8 ++ // Dst: (VFCMP_SULT_S:{ *:[v4i32] } LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk) ++/* 18150*/ /*Scope*/ 13, /*->18164*/ ++/* 18151*/ OPC_CheckChild0Integer, 89|128,35/*4569*/, ++/* 18154*/ OPC_RecordChild1, // #0 = $vj ++/* 18155*/ OPC_RecordChild2, // #1 = $vk ++/* 18156*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_SULT_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4569:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk) - Complexity = 8 ++ // Dst: (VFCMP_SULT_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk) ++/* 18164*/ /*Scope*/ 13, /*->18178*/ ++/* 18165*/ OPC_CheckChild0Integer, 78|128,35/*4558*/, ++/* 18168*/ OPC_RecordChild1, // #0 = $vj ++/* 18169*/ OPC_RecordChild2, // #1 = $vk ++/* 18170*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_SLE_S), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4558:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk) - Complexity = 8 ++ // Dst: (VFCMP_SLE_S:{ *:[v4i32] } LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk) ++/* 18178*/ /*Scope*/ 13, /*->18192*/ ++/* 18179*/ OPC_CheckChild0Integer, 77|128,35/*4557*/, ++/* 18182*/ OPC_RecordChild1, // #0 = $vj ++/* 18183*/ OPC_RecordChild2, // #1 = $vk ++/* 18184*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_SLE_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4557:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk) - Complexity = 8 ++ // Dst: (VFCMP_SLE_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk) ++/* 18192*/ /*Scope*/ 13, /*->18206*/ ++/* 18193*/ OPC_CheckChild0Integer, 88|128,35/*4568*/, ++/* 18196*/ OPC_RecordChild1, // #0 = $vj ++/* 18197*/ OPC_RecordChild2, // #1 = $vk ++/* 18198*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_SULE_S), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4568:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk) - Complexity = 8 ++ // Dst: (VFCMP_SULE_S:{ *:[v4i32] } LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk) ++/* 18206*/ /*Scope*/ 13, /*->18220*/ ++/* 18207*/ OPC_CheckChild0Integer, 87|128,35/*4567*/, ++/* 18210*/ OPC_RecordChild1, // #0 = $vj ++/* 18211*/ OPC_RecordChild2, // #1 = $vk ++/* 18212*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_SULE_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4567:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk) - Complexity = 8 ++ // Dst: (VFCMP_SULE_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk) ++/* 18220*/ /*Scope*/ 15, /*->18236*/ ++/* 18221*/ OPC_CheckChild0Integer, 5|128,35/*4485*/, ++/* 18224*/ OPC_RecordChild1, // #0 = $vj ++/* 18225*/ OPC_RecordChild2, // #1 = $vk ++/* 18226*/ OPC_RecordChild3, // #2 = $va ++/* 18227*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITSEL_V), 0, ++ MVT::v16i8, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4485:{ *:[iPTR] }, LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk, LSX128BOpnd:{ *:[v16i8] }:$va) - Complexity = 8 ++ // Dst: (VBITSEL_V:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk, LSX128BOpnd:{ *:[v16i8] }:$va) ++/* 18236*/ /*Scope*/ 13, /*->18250*/ ++/* 18237*/ OPC_CheckChild0Integer, 77|128,34/*4429*/, ++/* 18240*/ OPC_RecordChild1, // #0 = $vj ++/* 18241*/ OPC_RecordChild2, // #1 = $vk ++/* 18242*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VADDWEV_H_B), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4429:{ *:[iPTR] }, LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) - Complexity = 8 ++ // Dst: (VADDWEV_H_B:{ *:[v8i16] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/* 18250*/ /*Scope*/ 13, /*->18264*/ ++/* 18251*/ OPC_CheckChild0Integer, 83|128,34/*4435*/, ++/* 18254*/ OPC_RecordChild1, // #0 = $vj ++/* 18255*/ OPC_RecordChild2, // #1 = $vk ++/* 18256*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VADDWEV_W_H), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4435:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VADDWEV_W_H:{ *:[v4i32] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/* 18264*/ /*Scope*/ 13, /*->18278*/ ++/* 18265*/ OPC_CheckChild0Integer, 74|128,34/*4426*/, ++/* 18268*/ OPC_RecordChild1, // #0 = $vj ++/* 18269*/ OPC_RecordChild2, // #1 = $vk ++/* 18270*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VADDWEV_D_W), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4426:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VADDWEV_D_W:{ *:[v2i64] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/* 18278*/ /*Scope*/ 13, /*->18292*/ ++/* 18279*/ OPC_CheckChild0Integer, 80|128,34/*4432*/, ++/* 18282*/ OPC_RecordChild1, // #0 = $vj ++/* 18283*/ OPC_RecordChild2, // #1 = $vk ++/* 18284*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VADDWEV_Q_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4432:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VADDWEV_Q_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 18292*/ /*Scope*/ 13, /*->18306*/ ++/* 18293*/ OPC_CheckChild0Integer, 95|128,39/*5087*/, ++/* 18296*/ OPC_RecordChild1, // #0 = $vj ++/* 18297*/ OPC_RecordChild2, // #1 = $vk ++/* 18298*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSUBWEV_H_B), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 5087:{ *:[iPTR] }, LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) - Complexity = 8 ++ // Dst: (VSUBWEV_H_B:{ *:[v8i16] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/* 18306*/ /*Scope*/ 13, /*->18320*/ ++/* 18307*/ OPC_CheckChild0Integer, 99|128,39/*5091*/, ++/* 18310*/ OPC_RecordChild1, // #0 = $vj ++/* 18311*/ OPC_RecordChild2, // #1 = $vk ++/* 18312*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSUBWEV_W_H), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5091:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VSUBWEV_W_H:{ *:[v4i32] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/* 18320*/ /*Scope*/ 13, /*->18334*/ ++/* 18321*/ OPC_CheckChild0Integer, 93|128,39/*5085*/, ++/* 18324*/ OPC_RecordChild1, // #0 = $vj ++/* 18325*/ OPC_RecordChild2, // #1 = $vk ++/* 18326*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSUBWEV_D_W), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5085:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VSUBWEV_D_W:{ *:[v2i64] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/* 18334*/ /*Scope*/ 13, /*->18348*/ ++/* 18335*/ OPC_CheckChild0Integer, 97|128,39/*5089*/, ++/* 18338*/ OPC_RecordChild1, // #0 = $vj ++/* 18339*/ OPC_RecordChild2, // #1 = $vk ++/* 18340*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSUBWEV_Q_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5089:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VSUBWEV_Q_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 18348*/ /*Scope*/ 13, /*->18362*/ ++/* 18349*/ OPC_CheckChild0Integer, 89|128,34/*4441*/, ++/* 18352*/ OPC_RecordChild1, // #0 = $vj ++/* 18353*/ OPC_RecordChild2, // #1 = $vk ++/* 18354*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VADDWOD_H_B), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4441:{ *:[iPTR] }, LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) - Complexity = 8 ++ // Dst: (VADDWOD_H_B:{ *:[v8i16] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/* 18362*/ /*Scope*/ 13, /*->18376*/ ++/* 18363*/ OPC_CheckChild0Integer, 95|128,34/*4447*/, ++/* 18366*/ OPC_RecordChild1, // #0 = $vj ++/* 18367*/ OPC_RecordChild2, // #1 = $vk ++/* 18368*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VADDWOD_W_H), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4447:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VADDWOD_W_H:{ *:[v4i32] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/* 18376*/ /*Scope*/ 13, /*->18390*/ ++/* 18377*/ OPC_CheckChild0Integer, 86|128,34/*4438*/, ++/* 18380*/ OPC_RecordChild1, // #0 = $vj ++/* 18381*/ OPC_RecordChild2, // #1 = $vk ++/* 18382*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VADDWOD_D_W), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4438:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VADDWOD_D_W:{ *:[v2i64] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/* 18390*/ /*Scope*/ 13, /*->18404*/ ++/* 18391*/ OPC_CheckChild0Integer, 92|128,34/*4444*/, ++/* 18394*/ OPC_RecordChild1, // #0 = $vj ++/* 18395*/ OPC_RecordChild2, // #1 = $vk ++/* 18396*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VADDWOD_Q_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4444:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VADDWOD_Q_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 18404*/ /*Scope*/ 13, /*->18418*/ ++/* 18405*/ OPC_CheckChild0Integer, 103|128,39/*5095*/, ++/* 18408*/ OPC_RecordChild1, // #0 = $vj ++/* 18409*/ OPC_RecordChild2, // #1 = $vk ++/* 18410*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSUBWOD_H_B), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 5095:{ *:[iPTR] }, LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) - Complexity = 8 ++ // Dst: (VSUBWOD_H_B:{ *:[v8i16] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/* 18418*/ /*Scope*/ 13, /*->18432*/ ++/* 18419*/ OPC_CheckChild0Integer, 107|128,39/*5099*/, ++/* 18422*/ OPC_RecordChild1, // #0 = $vj ++/* 18423*/ OPC_RecordChild2, // #1 = $vk ++/* 18424*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSUBWOD_W_H), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5099:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VSUBWOD_W_H:{ *:[v4i32] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/* 18432*/ /*Scope*/ 13, /*->18446*/ ++/* 18433*/ OPC_CheckChild0Integer, 101|128,39/*5093*/, ++/* 18436*/ OPC_RecordChild1, // #0 = $vj ++/* 18437*/ OPC_RecordChild2, // #1 = $vk ++/* 18438*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSUBWOD_D_W), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5093:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VSUBWOD_D_W:{ *:[v2i64] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/* 18446*/ /*Scope*/ 13, /*->18460*/ ++/* 18447*/ OPC_CheckChild0Integer, 105|128,39/*5097*/, ++/* 18450*/ OPC_RecordChild1, // #0 = $vj ++/* 18451*/ OPC_RecordChild2, // #1 = $vk ++/* 18452*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSUBWOD_Q_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5097:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VSUBWOD_Q_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 18460*/ /*Scope*/ 13, /*->18474*/ ++/* 18461*/ OPC_CheckChild0Integer, 78|128,34/*4430*/, ++/* 18464*/ OPC_RecordChild1, // #0 = $vj ++/* 18465*/ OPC_RecordChild2, // #1 = $vk ++/* 18466*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VADDWEV_H_BU), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4430:{ *:[iPTR] }, LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) - Complexity = 8 ++ // Dst: (VADDWEV_H_BU:{ *:[v8i16] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/* 18474*/ /*Scope*/ 13, /*->18488*/ ++/* 18475*/ OPC_CheckChild0Integer, 84|128,34/*4436*/, ++/* 18478*/ OPC_RecordChild1, // #0 = $vj ++/* 18479*/ OPC_RecordChild2, // #1 = $vk ++/* 18480*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VADDWEV_W_HU), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4436:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VADDWEV_W_HU:{ *:[v4i32] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/* 18488*/ /*Scope*/ 13, /*->18502*/ ++/* 18489*/ OPC_CheckChild0Integer, 75|128,34/*4427*/, ++/* 18492*/ OPC_RecordChild1, // #0 = $vj ++/* 18493*/ OPC_RecordChild2, // #1 = $vk ++/* 18494*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VADDWEV_D_WU), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4427:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VADDWEV_D_WU:{ *:[v2i64] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/* 18502*/ /*Scope*/ 13, /*->18516*/ ++/* 18503*/ OPC_CheckChild0Integer, 81|128,34/*4433*/, ++/* 18506*/ OPC_RecordChild1, // #0 = $vj ++/* 18507*/ OPC_RecordChild2, // #1 = $vk ++/* 18508*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VADDWEV_Q_DU), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4433:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VADDWEV_Q_DU:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 18516*/ /*Scope*/ 13, /*->18530*/ ++/* 18517*/ OPC_CheckChild0Integer, 96|128,39/*5088*/, ++/* 18520*/ OPC_RecordChild1, // #0 = $vj ++/* 18521*/ OPC_RecordChild2, // #1 = $vk ++/* 18522*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSUBWEV_H_BU), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 5088:{ *:[iPTR] }, LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) - Complexity = 8 ++ // Dst: (VSUBWEV_H_BU:{ *:[v8i16] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/* 18530*/ /*Scope*/ 13, /*->18544*/ ++/* 18531*/ OPC_CheckChild0Integer, 100|128,39/*5092*/, ++/* 18534*/ OPC_RecordChild1, // #0 = $vj ++/* 18535*/ OPC_RecordChild2, // #1 = $vk ++/* 18536*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSUBWEV_W_HU), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5092:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VSUBWEV_W_HU:{ *:[v4i32] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/* 18544*/ /*Scope*/ 13, /*->18558*/ ++/* 18545*/ OPC_CheckChild0Integer, 94|128,39/*5086*/, ++/* 18548*/ OPC_RecordChild1, // #0 = $vj ++/* 18549*/ OPC_RecordChild2, // #1 = $vk ++/* 18550*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSUBWEV_D_WU), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5086:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VSUBWEV_D_WU:{ *:[v2i64] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/* 18558*/ /*Scope*/ 13, /*->18572*/ ++/* 18559*/ OPC_CheckChild0Integer, 98|128,39/*5090*/, ++/* 18562*/ OPC_RecordChild1, // #0 = $vj ++/* 18563*/ OPC_RecordChild2, // #1 = $vk ++/* 18564*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSUBWEV_Q_DU), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5090:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VSUBWEV_Q_DU:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 18572*/ /*Scope*/ 13, /*->18586*/ ++/* 18573*/ OPC_CheckChild0Integer, 90|128,34/*4442*/, ++/* 18576*/ OPC_RecordChild1, // #0 = $vj ++/* 18577*/ OPC_RecordChild2, // #1 = $vk ++/* 18578*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VADDWOD_H_BU), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4442:{ *:[iPTR] }, LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) - Complexity = 8 ++ // Dst: (VADDWOD_H_BU:{ *:[v8i16] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/* 18586*/ /*Scope*/ 13, /*->18600*/ ++/* 18587*/ OPC_CheckChild0Integer, 96|128,34/*4448*/, ++/* 18590*/ OPC_RecordChild1, // #0 = $vj ++/* 18591*/ OPC_RecordChild2, // #1 = $vk ++/* 18592*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VADDWOD_W_HU), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4448:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VADDWOD_W_HU:{ *:[v4i32] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/* 18600*/ /*Scope*/ 13, /*->18614*/ ++/* 18601*/ OPC_CheckChild0Integer, 87|128,34/*4439*/, ++/* 18604*/ OPC_RecordChild1, // #0 = $vj ++/* 18605*/ OPC_RecordChild2, // #1 = $vk ++/* 18606*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VADDWOD_D_WU), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4439:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VADDWOD_D_WU:{ *:[v2i64] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/* 18614*/ /*Scope*/ 13, /*->18628*/ ++/* 18615*/ OPC_CheckChild0Integer, 93|128,34/*4445*/, ++/* 18618*/ OPC_RecordChild1, // #0 = $vj ++/* 18619*/ OPC_RecordChild2, // #1 = $vk ++/* 18620*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VADDWOD_Q_DU), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4445:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VADDWOD_Q_DU:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 18628*/ /*Scope*/ 13, /*->18642*/ ++/* 18629*/ OPC_CheckChild0Integer, 104|128,39/*5096*/, ++/* 18632*/ OPC_RecordChild1, // #0 = $vj ++/* 18633*/ OPC_RecordChild2, // #1 = $vk ++/* 18634*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSUBWOD_H_BU), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 5096:{ *:[iPTR] }, LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) - Complexity = 8 ++ // Dst: (VSUBWOD_H_BU:{ *:[v8i16] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/* 18642*/ /*Scope*/ 13, /*->18656*/ ++/* 18643*/ OPC_CheckChild0Integer, 108|128,39/*5100*/, ++/* 18646*/ OPC_RecordChild1, // #0 = $vj ++/* 18647*/ OPC_RecordChild2, // #1 = $vk ++/* 18648*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSUBWOD_W_HU), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5100:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VSUBWOD_W_HU:{ *:[v4i32] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/* 18656*/ /*Scope*/ 13, /*->18670*/ ++/* 18657*/ OPC_CheckChild0Integer, 102|128,39/*5094*/, ++/* 18660*/ OPC_RecordChild1, // #0 = $vj ++/* 18661*/ OPC_RecordChild2, // #1 = $vk ++/* 18662*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSUBWOD_D_WU), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5094:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VSUBWOD_D_WU:{ *:[v2i64] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/* 18670*/ /*Scope*/ 13, /*->18684*/ ++/* 18671*/ OPC_CheckChild0Integer, 106|128,39/*5098*/, ++/* 18674*/ OPC_RecordChild1, // #0 = $vj ++/* 18675*/ OPC_RecordChild2, // #1 = $vk ++/* 18676*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSUBWOD_Q_DU), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5098:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VSUBWOD_Q_DU:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 18684*/ /*Scope*/ 13, /*->18698*/ ++/* 18685*/ OPC_CheckChild0Integer, 79|128,34/*4431*/, ++/* 18688*/ OPC_RecordChild1, // #0 = $vj ++/* 18689*/ OPC_RecordChild2, // #1 = $vk ++/* 18690*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VADDWEV_H_BU_B), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4431:{ *:[iPTR] }, LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) - Complexity = 8 ++ // Dst: (VADDWEV_H_BU_B:{ *:[v8i16] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/* 18698*/ /*Scope*/ 13, /*->18712*/ ++/* 18699*/ OPC_CheckChild0Integer, 85|128,34/*4437*/, ++/* 18702*/ OPC_RecordChild1, // #0 = $vj ++/* 18703*/ OPC_RecordChild2, // #1 = $vk ++/* 18704*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VADDWEV_W_HU_H), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4437:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VADDWEV_W_HU_H:{ *:[v4i32] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/* 18712*/ /*Scope*/ 13, /*->18726*/ ++/* 18713*/ OPC_CheckChild0Integer, 76|128,34/*4428*/, ++/* 18716*/ OPC_RecordChild1, // #0 = $vj ++/* 18717*/ OPC_RecordChild2, // #1 = $vk ++/* 18718*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VADDWEV_D_WU_W), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4428:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VADDWEV_D_WU_W:{ *:[v2i64] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/* 18726*/ /*Scope*/ 13, /*->18740*/ ++/* 18727*/ OPC_CheckChild0Integer, 82|128,34/*4434*/, ++/* 18730*/ OPC_RecordChild1, // #0 = $vj ++/* 18731*/ OPC_RecordChild2, // #1 = $vk ++/* 18732*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VADDWEV_Q_DU_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4434:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VADDWEV_Q_DU_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 18740*/ /*Scope*/ 13, /*->18754*/ ++/* 18741*/ OPC_CheckChild0Integer, 91|128,34/*4443*/, ++/* 18744*/ OPC_RecordChild1, // #0 = $vj ++/* 18745*/ OPC_RecordChild2, // #1 = $vk ++/* 18746*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VADDWOD_H_BU_B), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4443:{ *:[iPTR] }, LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) - Complexity = 8 ++ // Dst: (VADDWOD_H_BU_B:{ *:[v8i16] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/* 18754*/ /*Scope*/ 13, /*->18768*/ ++/* 18755*/ OPC_CheckChild0Integer, 97|128,34/*4449*/, ++/* 18758*/ OPC_RecordChild1, // #0 = $vj ++/* 18759*/ OPC_RecordChild2, // #1 = $vk ++/* 18760*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VADDWOD_W_HU_H), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4449:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VADDWOD_W_HU_H:{ *:[v4i32] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/* 18768*/ /*Scope*/ 13, /*->18782*/ ++/* 18769*/ OPC_CheckChild0Integer, 88|128,34/*4440*/, ++/* 18772*/ OPC_RecordChild1, // #0 = $vj ++/* 18773*/ OPC_RecordChild2, // #1 = $vk ++/* 18774*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VADDWOD_D_WU_W), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4440:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VADDWOD_D_WU_W:{ *:[v2i64] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/* 18782*/ /*Scope*/ 13, /*->18796*/ ++/* 18783*/ OPC_CheckChild0Integer, 94|128,34/*4446*/, ++/* 18786*/ OPC_RecordChild1, // #0 = $vj ++/* 18787*/ OPC_RecordChild2, // #1 = $vk ++/* 18788*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VADDWOD_Q_DU_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4446:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VADDWOD_Q_DU_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 18796*/ /*Scope*/ 13, /*->18810*/ ++/* 18797*/ OPC_CheckChild0Integer, 57|128,36/*4665*/, ++/* 18800*/ OPC_RecordChild1, // #0 = $vj ++/* 18801*/ OPC_RecordChild2, // #1 = $vk ++/* 18802*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VHADDW_Q_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4665:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VHADDW_Q_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 18810*/ /*Scope*/ 13, /*->18824*/ ++/* 18811*/ OPC_CheckChild0Integer, 65|128,36/*4673*/, ++/* 18814*/ OPC_RecordChild1, // #0 = $vj ++/* 18815*/ OPC_RecordChild2, // #1 = $vk ++/* 18816*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VHSUBW_Q_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4673:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VHSUBW_Q_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 18824*/ /*Scope*/ 13, /*->18838*/ ++/* 18825*/ OPC_CheckChild0Integer, 58|128,36/*4666*/, ++/* 18828*/ OPC_RecordChild1, // #0 = $vj ++/* 18829*/ OPC_RecordChild2, // #1 = $vk ++/* 18830*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VHADDW_QU_DU), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4666:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VHADDW_QU_DU:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 18838*/ /*Scope*/ 13, /*->18852*/ ++/* 18839*/ OPC_CheckChild0Integer, 66|128,36/*4674*/, ++/* 18842*/ OPC_RecordChild1, // #0 = $vj ++/* 18843*/ OPC_RecordChild2, // #1 = $vk ++/* 18844*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VHSUBW_QU_DU), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4674:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VHSUBW_QU_DU:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 18852*/ /*Scope*/ 13, /*->18866*/ ++/* 18853*/ OPC_CheckChild0Integer, 38|128,37/*4774*/, ++/* 18856*/ OPC_RecordChild1, // #0 = $vj ++/* 18857*/ OPC_RecordChild2, // #1 = $vk ++/* 18858*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMUH_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4774:{ *:[iPTR] }, LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) - Complexity = 8 ++ // Dst: (VMUH_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/* 18866*/ /*Scope*/ 13, /*->18880*/ ++/* 18867*/ OPC_CheckChild0Integer, 42|128,37/*4778*/, ++/* 18870*/ OPC_RecordChild1, // #0 = $vj ++/* 18871*/ OPC_RecordChild2, // #1 = $vk ++/* 18872*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMUH_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4778:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VMUH_H:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/* 18880*/ /*Scope*/ 13, /*->18894*/ ++/* 18881*/ OPC_CheckChild0Integer, 44|128,37/*4780*/, ++/* 18884*/ OPC_RecordChild1, // #0 = $vj ++/* 18885*/ OPC_RecordChild2, // #1 = $vk ++/* 18886*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMUH_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4780:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VMUH_W:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/* 18894*/ /*Scope*/ 13, /*->18908*/ ++/* 18895*/ OPC_CheckChild0Integer, 40|128,37/*4776*/, ++/* 18898*/ OPC_RecordChild1, // #0 = $vj ++/* 18899*/ OPC_RecordChild2, // #1 = $vk ++/* 18900*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMUH_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4776:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VMUH_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 18908*/ /*Scope*/ 13, /*->18922*/ ++/* 18909*/ OPC_CheckChild0Integer, 39|128,37/*4775*/, ++/* 18912*/ OPC_RecordChild1, // #0 = $vj ++/* 18913*/ OPC_RecordChild2, // #1 = $vk ++/* 18914*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMUH_BU), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4775:{ *:[iPTR] }, LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) - Complexity = 8 ++ // Dst: (VMUH_BU:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/* 18922*/ /*Scope*/ 13, /*->18936*/ ++/* 18923*/ OPC_CheckChild0Integer, 43|128,37/*4779*/, ++/* 18926*/ OPC_RecordChild1, // #0 = $vj ++/* 18927*/ OPC_RecordChild2, // #1 = $vk ++/* 18928*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMUH_HU), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4779:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VMUH_HU:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/* 18936*/ /*Scope*/ 13, /*->18950*/ ++/* 18937*/ OPC_CheckChild0Integer, 45|128,37/*4781*/, ++/* 18940*/ OPC_RecordChild1, // #0 = $vj ++/* 18941*/ OPC_RecordChild2, // #1 = $vk ++/* 18942*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMUH_WU), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4781:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VMUH_WU:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/* 18950*/ /*Scope*/ 13, /*->18964*/ ++/* 18951*/ OPC_CheckChild0Integer, 41|128,37/*4777*/, ++/* 18954*/ OPC_RecordChild1, // #0 = $vj ++/* 18955*/ OPC_RecordChild2, // #1 = $vk ++/* 18956*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMUH_DU), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4777:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VMUH_DU:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 18964*/ /*Scope*/ 13, /*->18978*/ ++/* 18965*/ OPC_CheckChild0Integer, 53|128,37/*4789*/, ++/* 18968*/ OPC_RecordChild1, // #0 = $vj ++/* 18969*/ OPC_RecordChild2, // #1 = $vk ++/* 18970*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMULWEV_H_B), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4789:{ *:[iPTR] }, LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) - Complexity = 8 ++ // Dst: (VMULWEV_H_B:{ *:[v8i16] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/* 18978*/ /*Scope*/ 13, /*->18992*/ ++/* 18979*/ OPC_CheckChild0Integer, 59|128,37/*4795*/, ++/* 18982*/ OPC_RecordChild1, // #0 = $vj ++/* 18983*/ OPC_RecordChild2, // #1 = $vk ++/* 18984*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMULWEV_W_H), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4795:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VMULWEV_W_H:{ *:[v4i32] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/* 18992*/ /*Scope*/ 13, /*->19006*/ ++/* 18993*/ OPC_CheckChild0Integer, 50|128,37/*4786*/, ++/* 18996*/ OPC_RecordChild1, // #0 = $vj ++/* 18997*/ OPC_RecordChild2, // #1 = $vk ++/* 18998*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMULWEV_D_W), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4786:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VMULWEV_D_W:{ *:[v2i64] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/* 19006*/ /*Scope*/ 13, /*->19020*/ ++/* 19007*/ OPC_CheckChild0Integer, 56|128,37/*4792*/, ++/* 19010*/ OPC_RecordChild1, // #0 = $vj ++/* 19011*/ OPC_RecordChild2, // #1 = $vk ++/* 19012*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMULWEV_Q_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4792:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VMULWEV_Q_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 19020*/ /*Scope*/ 13, /*->19034*/ ++/* 19021*/ OPC_CheckChild0Integer, 65|128,37/*4801*/, ++/* 19024*/ OPC_RecordChild1, // #0 = $vj ++/* 19025*/ OPC_RecordChild2, // #1 = $vk ++/* 19026*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMULWOD_H_B), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4801:{ *:[iPTR] }, LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) - Complexity = 8 ++ // Dst: (VMULWOD_H_B:{ *:[v8i16] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/* 19034*/ /*Scope*/ 13, /*->19048*/ ++/* 19035*/ OPC_CheckChild0Integer, 71|128,37/*4807*/, ++/* 19038*/ OPC_RecordChild1, // #0 = $vj ++/* 19039*/ OPC_RecordChild2, // #1 = $vk ++/* 19040*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMULWOD_W_H), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4807:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VMULWOD_W_H:{ *:[v4i32] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/* 19048*/ /*Scope*/ 13, /*->19062*/ ++/* 19049*/ OPC_CheckChild0Integer, 62|128,37/*4798*/, ++/* 19052*/ OPC_RecordChild1, // #0 = $vj ++/* 19053*/ OPC_RecordChild2, // #1 = $vk ++/* 19054*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMULWOD_D_W), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4798:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VMULWOD_D_W:{ *:[v2i64] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/* 19062*/ /*Scope*/ 13, /*->19076*/ ++/* 19063*/ OPC_CheckChild0Integer, 68|128,37/*4804*/, ++/* 19066*/ OPC_RecordChild1, // #0 = $vj ++/* 19067*/ OPC_RecordChild2, // #1 = $vk ++/* 19068*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMULWOD_Q_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4804:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VMULWOD_Q_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 19076*/ /*Scope*/ 13, /*->19090*/ ++/* 19077*/ OPC_CheckChild0Integer, 54|128,37/*4790*/, ++/* 19080*/ OPC_RecordChild1, // #0 = $vj ++/* 19081*/ OPC_RecordChild2, // #1 = $vk ++/* 19082*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMULWEV_H_BU), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4790:{ *:[iPTR] }, LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) - Complexity = 8 ++ // Dst: (VMULWEV_H_BU:{ *:[v8i16] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/* 19090*/ /*Scope*/ 13, /*->19104*/ ++/* 19091*/ OPC_CheckChild0Integer, 60|128,37/*4796*/, ++/* 19094*/ OPC_RecordChild1, // #0 = $vj ++/* 19095*/ OPC_RecordChild2, // #1 = $vk ++/* 19096*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMULWEV_W_HU), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4796:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VMULWEV_W_HU:{ *:[v4i32] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/* 19104*/ /*Scope*/ 13, /*->19118*/ ++/* 19105*/ OPC_CheckChild0Integer, 51|128,37/*4787*/, ++/* 19108*/ OPC_RecordChild1, // #0 = $vj ++/* 19109*/ OPC_RecordChild2, // #1 = $vk ++/* 19110*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMULWEV_D_WU), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4787:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VMULWEV_D_WU:{ *:[v2i64] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/* 19118*/ /*Scope*/ 13, /*->19132*/ ++/* 19119*/ OPC_CheckChild0Integer, 57|128,37/*4793*/, ++/* 19122*/ OPC_RecordChild1, // #0 = $vj ++/* 19123*/ OPC_RecordChild2, // #1 = $vk ++/* 19124*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMULWEV_Q_DU), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4793:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VMULWEV_Q_DU:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 19132*/ /*Scope*/ 13, /*->19146*/ ++/* 19133*/ OPC_CheckChild0Integer, 66|128,37/*4802*/, ++/* 19136*/ OPC_RecordChild1, // #0 = $vj ++/* 19137*/ OPC_RecordChild2, // #1 = $vk ++/* 19138*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMULWOD_H_BU), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4802:{ *:[iPTR] }, LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) - Complexity = 8 ++ // Dst: (VMULWOD_H_BU:{ *:[v8i16] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/* 19146*/ /*Scope*/ 13, /*->19160*/ ++/* 19147*/ OPC_CheckChild0Integer, 72|128,37/*4808*/, ++/* 19150*/ OPC_RecordChild1, // #0 = $vj ++/* 19151*/ OPC_RecordChild2, // #1 = $vk ++/* 19152*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMULWOD_W_HU), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4808:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VMULWOD_W_HU:{ *:[v4i32] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/* 19160*/ /*Scope*/ 13, /*->19174*/ ++/* 19161*/ OPC_CheckChild0Integer, 63|128,37/*4799*/, ++/* 19164*/ OPC_RecordChild1, // #0 = $vj ++/* 19165*/ OPC_RecordChild2, // #1 = $vk ++/* 19166*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMULWOD_D_WU), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4799:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VMULWOD_D_WU:{ *:[v2i64] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/* 19174*/ /*Scope*/ 13, /*->19188*/ ++/* 19175*/ OPC_CheckChild0Integer, 69|128,37/*4805*/, ++/* 19178*/ OPC_RecordChild1, // #0 = $vj ++/* 19179*/ OPC_RecordChild2, // #1 = $vk ++/* 19180*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMULWOD_Q_DU), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4805:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VMULWOD_Q_DU:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 19188*/ /*Scope*/ 13, /*->19202*/ ++/* 19189*/ OPC_CheckChild0Integer, 55|128,37/*4791*/, ++/* 19192*/ OPC_RecordChild1, // #0 = $vj ++/* 19193*/ OPC_RecordChild2, // #1 = $vk ++/* 19194*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMULWEV_H_BU_B), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4791:{ *:[iPTR] }, LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) - Complexity = 8 ++ // Dst: (VMULWEV_H_BU_B:{ *:[v8i16] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/* 19202*/ /*Scope*/ 13, /*->19216*/ ++/* 19203*/ OPC_CheckChild0Integer, 61|128,37/*4797*/, ++/* 19206*/ OPC_RecordChild1, // #0 = $vj ++/* 19207*/ OPC_RecordChild2, // #1 = $vk ++/* 19208*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMULWEV_W_HU_H), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4797:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VMULWEV_W_HU_H:{ *:[v4i32] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/* 19216*/ /*Scope*/ 13, /*->19230*/ ++/* 19217*/ OPC_CheckChild0Integer, 52|128,37/*4788*/, ++/* 19220*/ OPC_RecordChild1, // #0 = $vj ++/* 19221*/ OPC_RecordChild2, // #1 = $vk ++/* 19222*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMULWEV_D_WU_W), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4788:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VMULWEV_D_WU_W:{ *:[v2i64] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/* 19230*/ /*Scope*/ 13, /*->19244*/ ++/* 19231*/ OPC_CheckChild0Integer, 58|128,37/*4794*/, ++/* 19234*/ OPC_RecordChild1, // #0 = $vj ++/* 19235*/ OPC_RecordChild2, // #1 = $vk ++/* 19236*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMULWEV_Q_DU_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4794:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VMULWEV_Q_DU_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 19244*/ /*Scope*/ 13, /*->19258*/ ++/* 19245*/ OPC_CheckChild0Integer, 67|128,37/*4803*/, ++/* 19248*/ OPC_RecordChild1, // #0 = $vj ++/* 19249*/ OPC_RecordChild2, // #1 = $vk ++/* 19250*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMULWOD_H_BU_B), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4803:{ *:[iPTR] }, LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) - Complexity = 8 ++ // Dst: (VMULWOD_H_BU_B:{ *:[v8i16] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/* 19258*/ /*Scope*/ 13, /*->19272*/ ++/* 19259*/ OPC_CheckChild0Integer, 73|128,37/*4809*/, ++/* 19262*/ OPC_RecordChild1, // #0 = $vj ++/* 19263*/ OPC_RecordChild2, // #1 = $vk ++/* 19264*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMULWOD_W_HU_H), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4809:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VMULWOD_W_HU_H:{ *:[v4i32] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/* 19272*/ /*Scope*/ 13, /*->19286*/ ++/* 19273*/ OPC_CheckChild0Integer, 64|128,37/*4800*/, ++/* 19276*/ OPC_RecordChild1, // #0 = $vj ++/* 19277*/ OPC_RecordChild2, // #1 = $vk ++/* 19278*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMULWOD_D_WU_W), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4800:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VMULWOD_D_WU_W:{ *:[v2i64] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/* 19286*/ /*Scope*/ 13, /*->19300*/ ++/* 19287*/ OPC_CheckChild0Integer, 70|128,37/*4806*/, ++/* 19290*/ OPC_RecordChild1, // #0 = $vj ++/* 19291*/ OPC_RecordChild2, // #1 = $vk ++/* 19292*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMULWOD_Q_DU_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4806:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VMULWOD_Q_DU_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 19300*/ /*Scope*/ 15, /*->19316*/ ++/* 19301*/ OPC_CheckChild0Integer, 95|128,36/*4703*/, ++/* 19304*/ OPC_RecordChild1, // #0 = $vd_in ++/* 19305*/ OPC_RecordChild2, // #1 = $vj ++/* 19306*/ OPC_RecordChild3, // #2 = $vk ++/* 19307*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMADDWEV_H_B), 0, ++ MVT::v8i16, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4703:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vd_in, LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) - Complexity = 8 ++ // Dst: (VMADDWEV_H_B:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vd_in, LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/* 19316*/ /*Scope*/ 15, /*->19332*/ ++/* 19317*/ OPC_CheckChild0Integer, 101|128,36/*4709*/, ++/* 19320*/ OPC_RecordChild1, // #0 = $vd_in ++/* 19321*/ OPC_RecordChild2, // #1 = $vj ++/* 19322*/ OPC_RecordChild3, // #2 = $vk ++/* 19323*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMADDWEV_W_H), 0, ++ MVT::v4i32, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4709:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vd_in, LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VMADDWEV_W_H:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vd_in, LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/* 19332*/ /*Scope*/ 15, /*->19348*/ ++/* 19333*/ OPC_CheckChild0Integer, 92|128,36/*4700*/, ++/* 19336*/ OPC_RecordChild1, // #0 = $vd_in ++/* 19337*/ OPC_RecordChild2, // #1 = $vj ++/* 19338*/ OPC_RecordChild3, // #2 = $vk ++/* 19339*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMADDWEV_D_W), 0, ++ MVT::v2i64, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4700:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vd_in, LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VMADDWEV_D_W:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vd_in, LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/* 19348*/ /*Scope*/ 15, /*->19364*/ ++/* 19349*/ OPC_CheckChild0Integer, 98|128,36/*4706*/, ++/* 19352*/ OPC_RecordChild1, // #0 = $vd_in ++/* 19353*/ OPC_RecordChild2, // #1 = $vj ++/* 19354*/ OPC_RecordChild3, // #2 = $vk ++/* 19355*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMADDWEV_Q_D), 0, ++ MVT::v2i64, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4706:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vd_in, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VMADDWEV_Q_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vd_in, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 19364*/ /*Scope*/ 15, /*->19380*/ ++/* 19365*/ OPC_CheckChild0Integer, 107|128,36/*4715*/, ++/* 19368*/ OPC_RecordChild1, // #0 = $vd_in ++/* 19369*/ OPC_RecordChild2, // #1 = $vj ++/* 19370*/ OPC_RecordChild3, // #2 = $vk ++/* 19371*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMADDWOD_H_B), 0, ++ MVT::v8i16, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4715:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vd_in, LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) - Complexity = 8 ++ // Dst: (VMADDWOD_H_B:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vd_in, LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/* 19380*/ /*Scope*/ 15, /*->19396*/ ++/* 19381*/ OPC_CheckChild0Integer, 113|128,36/*4721*/, ++/* 19384*/ OPC_RecordChild1, // #0 = $vd_in ++/* 19385*/ OPC_RecordChild2, // #1 = $vj ++/* 19386*/ OPC_RecordChild3, // #2 = $vk ++/* 19387*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMADDWOD_W_H), 0, ++ MVT::v4i32, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4721:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vd_in, LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VMADDWOD_W_H:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vd_in, LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/* 19396*/ /*Scope*/ 15, /*->19412*/ ++/* 19397*/ OPC_CheckChild0Integer, 104|128,36/*4712*/, ++/* 19400*/ OPC_RecordChild1, // #0 = $vd_in ++/* 19401*/ OPC_RecordChild2, // #1 = $vj ++/* 19402*/ OPC_RecordChild3, // #2 = $vk ++/* 19403*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMADDWOD_D_W), 0, ++ MVT::v2i64, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4712:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vd_in, LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VMADDWOD_D_W:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vd_in, LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/* 19412*/ /*Scope*/ 15, /*->19428*/ ++/* 19413*/ OPC_CheckChild0Integer, 110|128,36/*4718*/, ++/* 19416*/ OPC_RecordChild1, // #0 = $vd_in ++/* 19417*/ OPC_RecordChild2, // #1 = $vj ++/* 19418*/ OPC_RecordChild3, // #2 = $vk ++/* 19419*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMADDWOD_Q_D), 0, ++ MVT::v2i64, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4718:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vd_in, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VMADDWOD_Q_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vd_in, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 19428*/ /*Scope*/ 15, /*->19444*/ ++/* 19429*/ OPC_CheckChild0Integer, 96|128,36/*4704*/, ++/* 19432*/ OPC_RecordChild1, // #0 = $vd_in ++/* 19433*/ OPC_RecordChild2, // #1 = $vj ++/* 19434*/ OPC_RecordChild3, // #2 = $vk ++/* 19435*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMADDWEV_H_BU), 0, ++ MVT::v8i16, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4704:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vd_in, LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) - Complexity = 8 ++ // Dst: (VMADDWEV_H_BU:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vd_in, LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/* 19444*/ /*Scope*/ 15, /*->19460*/ ++/* 19445*/ OPC_CheckChild0Integer, 102|128,36/*4710*/, ++/* 19448*/ OPC_RecordChild1, // #0 = $vd_in ++/* 19449*/ OPC_RecordChild2, // #1 = $vj ++/* 19450*/ OPC_RecordChild3, // #2 = $vk ++/* 19451*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMADDWEV_W_HU), 0, ++ MVT::v4i32, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4710:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vd_in, LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VMADDWEV_W_HU:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vd_in, LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/* 19460*/ /*Scope*/ 15, /*->19476*/ ++/* 19461*/ OPC_CheckChild0Integer, 93|128,36/*4701*/, ++/* 19464*/ OPC_RecordChild1, // #0 = $vd_in ++/* 19465*/ OPC_RecordChild2, // #1 = $vj ++/* 19466*/ OPC_RecordChild3, // #2 = $vk ++/* 19467*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMADDWEV_D_WU), 0, ++ MVT::v2i64, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4701:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vd_in, LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VMADDWEV_D_WU:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vd_in, LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/* 19476*/ /*Scope*/ 15, /*->19492*/ ++/* 19477*/ OPC_CheckChild0Integer, 99|128,36/*4707*/, ++/* 19480*/ OPC_RecordChild1, // #0 = $vd_in ++/* 19481*/ OPC_RecordChild2, // #1 = $vj ++/* 19482*/ OPC_RecordChild3, // #2 = $vk ++/* 19483*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMADDWEV_Q_DU), 0, ++ MVT::v2i64, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4707:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vd_in, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VMADDWEV_Q_DU:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vd_in, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 19492*/ /*Scope*/ 15, /*->19508*/ ++/* 19493*/ OPC_CheckChild0Integer, 108|128,36/*4716*/, ++/* 19496*/ OPC_RecordChild1, // #0 = $vd_in ++/* 19497*/ OPC_RecordChild2, // #1 = $vj ++/* 19498*/ OPC_RecordChild3, // #2 = $vk ++/* 19499*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMADDWOD_H_BU), 0, ++ MVT::v8i16, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4716:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vd_in, LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) - Complexity = 8 ++ // Dst: (VMADDWOD_H_BU:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vd_in, LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/* 19508*/ /*Scope*/ 15, /*->19524*/ ++/* 19509*/ OPC_CheckChild0Integer, 114|128,36/*4722*/, ++/* 19512*/ OPC_RecordChild1, // #0 = $vd_in ++/* 19513*/ OPC_RecordChild2, // #1 = $vj ++/* 19514*/ OPC_RecordChild3, // #2 = $vk ++/* 19515*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMADDWOD_W_HU), 0, ++ MVT::v4i32, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4722:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vd_in, LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VMADDWOD_W_HU:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vd_in, LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/* 19524*/ /*Scope*/ 15, /*->19540*/ ++/* 19525*/ OPC_CheckChild0Integer, 105|128,36/*4713*/, ++/* 19528*/ OPC_RecordChild1, // #0 = $vd_in ++/* 19529*/ OPC_RecordChild2, // #1 = $vj ++/* 19530*/ OPC_RecordChild3, // #2 = $vk ++/* 19531*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMADDWOD_D_WU), 0, ++ MVT::v2i64, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4713:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vd_in, LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VMADDWOD_D_WU:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vd_in, LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/* 19540*/ /*Scope*/ 15, /*->19556*/ ++/* 19541*/ OPC_CheckChild0Integer, 111|128,36/*4719*/, ++/* 19544*/ OPC_RecordChild1, // #0 = $vd_in ++/* 19545*/ OPC_RecordChild2, // #1 = $vj ++/* 19546*/ OPC_RecordChild3, // #2 = $vk ++/* 19547*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMADDWOD_Q_DU), 0, ++ MVT::v2i64, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4719:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vd_in, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VMADDWOD_Q_DU:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vd_in, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 19556*/ /*Scope*/ 15, /*->19572*/ ++/* 19557*/ OPC_CheckChild0Integer, 97|128,36/*4705*/, ++/* 19560*/ OPC_RecordChild1, // #0 = $vd_in ++/* 19561*/ OPC_RecordChild2, // #1 = $vj ++/* 19562*/ OPC_RecordChild3, // #2 = $vk ++/* 19563*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMADDWEV_H_BU_B), 0, ++ MVT::v8i16, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4705:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vd_in, LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) - Complexity = 8 ++ // Dst: (VMADDWEV_H_BU_B:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vd_in, LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/* 19572*/ /*Scope*/ 15, /*->19588*/ ++/* 19573*/ OPC_CheckChild0Integer, 103|128,36/*4711*/, ++/* 19576*/ OPC_RecordChild1, // #0 = $vd_in ++/* 19577*/ OPC_RecordChild2, // #1 = $vj ++/* 19578*/ OPC_RecordChild3, // #2 = $vk ++/* 19579*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMADDWEV_W_HU_H), 0, ++ MVT::v4i32, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4711:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vd_in, LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VMADDWEV_W_HU_H:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vd_in, LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/* 19588*/ /*Scope*/ 15, /*->19604*/ ++/* 19589*/ OPC_CheckChild0Integer, 94|128,36/*4702*/, ++/* 19592*/ OPC_RecordChild1, // #0 = $vd_in ++/* 19593*/ OPC_RecordChild2, // #1 = $vj ++/* 19594*/ OPC_RecordChild3, // #2 = $vk ++/* 19595*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMADDWEV_D_WU_W), 0, ++ MVT::v2i64, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4702:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vd_in, LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VMADDWEV_D_WU_W:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vd_in, LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/* 19604*/ /*Scope*/ 15, /*->19620*/ ++/* 19605*/ OPC_CheckChild0Integer, 100|128,36/*4708*/, ++/* 19608*/ OPC_RecordChild1, // #0 = $vd_in ++/* 19609*/ OPC_RecordChild2, // #1 = $vj ++/* 19610*/ OPC_RecordChild3, // #2 = $vk ++/* 19611*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMADDWEV_Q_DU_D), 0, ++ MVT::v2i64, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4708:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vd_in, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VMADDWEV_Q_DU_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vd_in, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 19620*/ /*Scope*/ 15, /*->19636*/ ++/* 19621*/ OPC_CheckChild0Integer, 109|128,36/*4717*/, ++/* 19624*/ OPC_RecordChild1, // #0 = $vd_in ++/* 19625*/ OPC_RecordChild2, // #1 = $vj ++/* 19626*/ OPC_RecordChild3, // #2 = $vk ++/* 19627*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMADDWOD_H_BU_B), 0, ++ MVT::v8i16, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4717:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vd_in, LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) - Complexity = 8 ++ // Dst: (VMADDWOD_H_BU_B:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vd_in, LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/* 19636*/ /*Scope*/ 15, /*->19652*/ ++/* 19637*/ OPC_CheckChild0Integer, 115|128,36/*4723*/, ++/* 19640*/ OPC_RecordChild1, // #0 = $vd_in ++/* 19641*/ OPC_RecordChild2, // #1 = $vj ++/* 19642*/ OPC_RecordChild3, // #2 = $vk ++/* 19643*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMADDWOD_W_HU_H), 0, ++ MVT::v4i32, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4723:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vd_in, LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VMADDWOD_W_HU_H:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vd_in, LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/* 19652*/ /*Scope*/ 15, /*->19668*/ ++/* 19653*/ OPC_CheckChild0Integer, 106|128,36/*4714*/, ++/* 19656*/ OPC_RecordChild1, // #0 = $vd_in ++/* 19657*/ OPC_RecordChild2, // #1 = $vj ++/* 19658*/ OPC_RecordChild3, // #2 = $vk ++/* 19659*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMADDWOD_D_WU_W), 0, ++ MVT::v2i64, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4714:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vd_in, LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VMADDWOD_D_WU_W:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vd_in, LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/* 19668*/ /*Scope*/ 15, /*->19684*/ ++/* 19669*/ OPC_CheckChild0Integer, 112|128,36/*4720*/, ++/* 19672*/ OPC_RecordChild1, // #0 = $vd_in ++/* 19673*/ OPC_RecordChild2, // #1 = $vj ++/* 19674*/ OPC_RecordChild3, // #2 = $vk ++/* 19675*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMADDWOD_Q_DU_D), 0, ++ MVT::v2i64, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4720:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vd_in, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VMADDWOD_Q_DU_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vd_in, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 19684*/ /*Scope*/ 13, /*->19698*/ ++/* 19685*/ OPC_CheckChild0Integer, 124|128,38/*4988*/, ++/* 19688*/ OPC_RecordChild1, // #0 = $vj ++/* 19689*/ OPC_RecordChild2, // #1 = $vk ++/* 19690*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRLN_B_H), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4988:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VSRLN_B_H:{ *:[v16i8] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/* 19698*/ /*Scope*/ 13, /*->19712*/ ++/* 19699*/ OPC_CheckChild0Integer, 125|128,38/*4989*/, ++/* 19702*/ OPC_RecordChild1, // #0 = $vj ++/* 19703*/ OPC_RecordChild2, // #1 = $vk ++/* 19704*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRLN_H_W), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4989:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VSRLN_H_W:{ *:[v8i16] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/* 19712*/ /*Scope*/ 13, /*->19726*/ ++/* 19713*/ OPC_CheckChild0Integer, 126|128,38/*4990*/, ++/* 19716*/ OPC_RecordChild1, // #0 = $vj ++/* 19717*/ OPC_RecordChild2, // #1 = $vk ++/* 19718*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRLN_W_D), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4990:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VSRLN_W_D:{ *:[v4i32] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 19726*/ /*Scope*/ 13, /*->19740*/ ++/* 19727*/ OPC_CheckChild0Integer, 94|128,38/*4958*/, ++/* 19730*/ OPC_RecordChild1, // #0 = $vj ++/* 19731*/ OPC_RecordChild2, // #1 = $vk ++/* 19732*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRAN_B_H), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4958:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VSRAN_B_H:{ *:[v16i8] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/* 19740*/ /*Scope*/ 13, /*->19754*/ ++/* 19741*/ OPC_CheckChild0Integer, 95|128,38/*4959*/, ++/* 19744*/ OPC_RecordChild1, // #0 = $vj ++/* 19745*/ OPC_RecordChild2, // #1 = $vk ++/* 19746*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRAN_H_W), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4959:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VSRAN_H_W:{ *:[v8i16] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/* 19754*/ /*Scope*/ 13, /*->19768*/ ++/* 19755*/ OPC_CheckChild0Integer, 96|128,38/*4960*/, ++/* 19758*/ OPC_RecordChild1, // #0 = $vj ++/* 19759*/ OPC_RecordChild2, // #1 = $vk ++/* 19760*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRAN_W_D), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4960:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VSRAN_W_D:{ *:[v4i32] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 19768*/ /*Scope*/ 13, /*->19782*/ ++/* 19769*/ OPC_CheckChild0Integer, 11|128,39/*5003*/, ++/* 19772*/ OPC_RecordChild1, // #0 = $vj ++/* 19773*/ OPC_RecordChild2, // #1 = $vk ++/* 19774*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRLRN_B_H), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 5003:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VSRLRN_B_H:{ *:[v16i8] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/* 19782*/ /*Scope*/ 13, /*->19796*/ ++/* 19783*/ OPC_CheckChild0Integer, 12|128,39/*5004*/, ++/* 19786*/ OPC_RecordChild1, // #0 = $vj ++/* 19787*/ OPC_RecordChild2, // #1 = $vk ++/* 19788*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRLRN_H_W), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 5004:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VSRLRN_H_W:{ *:[v8i16] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/* 19796*/ /*Scope*/ 13, /*->19810*/ ++/* 19797*/ OPC_CheckChild0Integer, 13|128,39/*5005*/, ++/* 19800*/ OPC_RecordChild1, // #0 = $vj ++/* 19801*/ OPC_RecordChild2, // #1 = $vk ++/* 19802*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRLRN_W_D), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5005:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VSRLRN_W_D:{ *:[v4i32] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 19810*/ /*Scope*/ 13, /*->19824*/ ++/* 19811*/ OPC_CheckChild0Integer, 109|128,38/*4973*/, ++/* 19814*/ OPC_RecordChild1, // #0 = $vj ++/* 19815*/ OPC_RecordChild2, // #1 = $vk ++/* 19816*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRARN_B_H), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4973:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VSRARN_B_H:{ *:[v16i8] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/* 19824*/ /*Scope*/ 13, /*->19838*/ ++/* 19825*/ OPC_CheckChild0Integer, 110|128,38/*4974*/, ++/* 19828*/ OPC_RecordChild1, // #0 = $vj ++/* 19829*/ OPC_RecordChild2, // #1 = $vk ++/* 19830*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRARN_H_W), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4974:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VSRARN_H_W:{ *:[v8i16] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/* 19838*/ /*Scope*/ 13, /*->19852*/ ++/* 19839*/ OPC_CheckChild0Integer, 111|128,38/*4975*/, ++/* 19842*/ OPC_RecordChild1, // #0 = $vj ++/* 19843*/ OPC_RecordChild2, // #1 = $vk ++/* 19844*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRARN_W_D), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4975:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VSRARN_W_D:{ *:[v4i32] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 19852*/ /*Scope*/ 13, /*->19866*/ ++/* 19853*/ OPC_CheckChild0Integer, 42|128,39/*5034*/, ++/* 19856*/ OPC_RecordChild1, // #0 = $vj ++/* 19857*/ OPC_RecordChild2, // #1 = $vk ++/* 19858*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRLN_B_H), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 5034:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VSSRLN_B_H:{ *:[v16i8] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/* 19866*/ /*Scope*/ 13, /*->19880*/ ++/* 19867*/ OPC_CheckChild0Integer, 44|128,39/*5036*/, ++/* 19870*/ OPC_RecordChild1, // #0 = $vj ++/* 19871*/ OPC_RecordChild2, // #1 = $vk ++/* 19872*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRLN_H_W), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 5036:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VSSRLN_H_W:{ *:[v8i16] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/* 19880*/ /*Scope*/ 13, /*->19894*/ ++/* 19881*/ OPC_CheckChild0Integer, 46|128,39/*5038*/, ++/* 19884*/ OPC_RecordChild1, // #0 = $vj ++/* 19885*/ OPC_RecordChild2, // #1 = $vk ++/* 19886*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRLN_W_D), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5038:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VSSRLN_W_D:{ *:[v4i32] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 19894*/ /*Scope*/ 13, /*->19908*/ ++/* 19895*/ OPC_CheckChild0Integer, 14|128,39/*5006*/, ++/* 19898*/ OPC_RecordChild1, // #0 = $vj ++/* 19899*/ OPC_RecordChild2, // #1 = $vk ++/* 19900*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRAN_B_H), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 5006:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VSSRAN_B_H:{ *:[v16i8] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/* 19908*/ /*Scope*/ 13, /*->19922*/ ++/* 19909*/ OPC_CheckChild0Integer, 16|128,39/*5008*/, ++/* 19912*/ OPC_RecordChild1, // #0 = $vj ++/* 19913*/ OPC_RecordChild2, // #1 = $vk ++/* 19914*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRAN_H_W), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 5008:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VSSRAN_H_W:{ *:[v8i16] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/* 19922*/ /*Scope*/ 13, /*->19936*/ ++/* 19923*/ OPC_CheckChild0Integer, 18|128,39/*5010*/, ++/* 19926*/ OPC_RecordChild1, // #0 = $vj ++/* 19927*/ OPC_RecordChild2, // #1 = $vk ++/* 19928*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRAN_W_D), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5010:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VSSRAN_W_D:{ *:[v4i32] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 19936*/ /*Scope*/ 13, /*->19950*/ ++/* 19937*/ OPC_CheckChild0Integer, 56|128,39/*5048*/, ++/* 19940*/ OPC_RecordChild1, // #0 = $vj ++/* 19941*/ OPC_RecordChild2, // #1 = $vk ++/* 19942*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRLRN_B_H), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 5048:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VSSRLRN_B_H:{ *:[v16i8] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/* 19950*/ /*Scope*/ 13, /*->19964*/ ++/* 19951*/ OPC_CheckChild0Integer, 58|128,39/*5050*/, ++/* 19954*/ OPC_RecordChild1, // #0 = $vj ++/* 19955*/ OPC_RecordChild2, // #1 = $vk ++/* 19956*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRLRN_H_W), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 5050:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VSSRLRN_H_W:{ *:[v8i16] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/* 19964*/ /*Scope*/ 13, /*->19978*/ ++/* 19965*/ OPC_CheckChild0Integer, 60|128,39/*5052*/, ++/* 19968*/ OPC_RecordChild1, // #0 = $vj ++/* 19969*/ OPC_RecordChild2, // #1 = $vk ++/* 19970*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRLRN_W_D), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5052:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VSSRLRN_W_D:{ *:[v4i32] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 19978*/ /*Scope*/ 13, /*->19992*/ ++/* 19979*/ OPC_CheckChild0Integer, 28|128,39/*5020*/, ++/* 19982*/ OPC_RecordChild1, // #0 = $vj ++/* 19983*/ OPC_RecordChild2, // #1 = $vk ++/* 19984*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRARN_B_H), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 5020:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VSSRARN_B_H:{ *:[v16i8] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/* 19992*/ /*Scope*/ 13, /*->20006*/ ++/* 19993*/ OPC_CheckChild0Integer, 30|128,39/*5022*/, ++/* 19996*/ OPC_RecordChild1, // #0 = $vj ++/* 19997*/ OPC_RecordChild2, // #1 = $vk ++/* 19998*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRARN_H_W), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 5022:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VSSRARN_H_W:{ *:[v8i16] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/* 20006*/ /*Scope*/ 13, /*->20020*/ ++/* 20007*/ OPC_CheckChild0Integer, 32|128,39/*5024*/, ++/* 20010*/ OPC_RecordChild1, // #0 = $vj ++/* 20011*/ OPC_RecordChild2, // #1 = $vk ++/* 20012*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRARN_W_D), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5024:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VSSRARN_W_D:{ *:[v4i32] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 20020*/ /*Scope*/ 13, /*->20034*/ ++/* 20021*/ OPC_CheckChild0Integer, 43|128,39/*5035*/, ++/* 20024*/ OPC_RecordChild1, // #0 = $vj ++/* 20025*/ OPC_RecordChild2, // #1 = $vk ++/* 20026*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRLN_BU_H), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 5035:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VSSRLN_BU_H:{ *:[v16i8] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/* 20034*/ /*Scope*/ 13, /*->20048*/ ++/* 20035*/ OPC_CheckChild0Integer, 45|128,39/*5037*/, ++/* 20038*/ OPC_RecordChild1, // #0 = $vj ++/* 20039*/ OPC_RecordChild2, // #1 = $vk ++/* 20040*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRLN_HU_W), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 5037:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VSSRLN_HU_W:{ *:[v8i16] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/* 20048*/ /*Scope*/ 13, /*->20062*/ ++/* 20049*/ OPC_CheckChild0Integer, 47|128,39/*5039*/, ++/* 20052*/ OPC_RecordChild1, // #0 = $vj ++/* 20053*/ OPC_RecordChild2, // #1 = $vk ++/* 20054*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRLN_WU_D), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5039:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VSSRLN_WU_D:{ *:[v4i32] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 20062*/ /*Scope*/ 13, /*->20076*/ ++/* 20063*/ OPC_CheckChild0Integer, 15|128,39/*5007*/, ++/* 20066*/ OPC_RecordChild1, // #0 = $vj ++/* 20067*/ OPC_RecordChild2, // #1 = $vk ++/* 20068*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRAN_BU_H), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 5007:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VSSRAN_BU_H:{ *:[v16i8] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/* 20076*/ /*Scope*/ 13, /*->20090*/ ++/* 20077*/ OPC_CheckChild0Integer, 17|128,39/*5009*/, ++/* 20080*/ OPC_RecordChild1, // #0 = $vj ++/* 20081*/ OPC_RecordChild2, // #1 = $vk ++/* 20082*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRAN_HU_W), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 5009:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VSSRAN_HU_W:{ *:[v8i16] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/* 20090*/ /*Scope*/ 13, /*->20104*/ ++/* 20091*/ OPC_CheckChild0Integer, 19|128,39/*5011*/, ++/* 20094*/ OPC_RecordChild1, // #0 = $vj ++/* 20095*/ OPC_RecordChild2, // #1 = $vk ++/* 20096*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRAN_WU_D), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5011:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VSSRAN_WU_D:{ *:[v4i32] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 20104*/ /*Scope*/ 13, /*->20118*/ ++/* 20105*/ OPC_CheckChild0Integer, 57|128,39/*5049*/, ++/* 20108*/ OPC_RecordChild1, // #0 = $vj ++/* 20109*/ OPC_RecordChild2, // #1 = $vk ++/* 20110*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRLRN_BU_H), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 5049:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VSSRLRN_BU_H:{ *:[v16i8] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/* 20118*/ /*Scope*/ 13, /*->20132*/ ++/* 20119*/ OPC_CheckChild0Integer, 59|128,39/*5051*/, ++/* 20122*/ OPC_RecordChild1, // #0 = $vj ++/* 20123*/ OPC_RecordChild2, // #1 = $vk ++/* 20124*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRLRN_HU_W), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 5051:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VSSRLRN_HU_W:{ *:[v8i16] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/* 20132*/ /*Scope*/ 13, /*->20146*/ ++/* 20133*/ OPC_CheckChild0Integer, 61|128,39/*5053*/, ++/* 20136*/ OPC_RecordChild1, // #0 = $vj ++/* 20137*/ OPC_RecordChild2, // #1 = $vk ++/* 20138*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRLRN_WU_D), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5053:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VSSRLRN_WU_D:{ *:[v4i32] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 20146*/ /*Scope*/ 13, /*->20160*/ ++/* 20147*/ OPC_CheckChild0Integer, 29|128,39/*5021*/, ++/* 20150*/ OPC_RecordChild1, // #0 = $vj ++/* 20151*/ OPC_RecordChild2, // #1 = $vk ++/* 20152*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRARN_BU_H), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 5021:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VSSRARN_BU_H:{ *:[v16i8] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/* 20160*/ /*Scope*/ 13, /*->20174*/ ++/* 20161*/ OPC_CheckChild0Integer, 31|128,39/*5023*/, ++/* 20164*/ OPC_RecordChild1, // #0 = $vj ++/* 20165*/ OPC_RecordChild2, // #1 = $vk ++/* 20166*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRARN_HU_W), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 5023:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VSSRARN_HU_W:{ *:[v8i16] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/* 20174*/ /*Scope*/ 13, /*->20188*/ ++/* 20175*/ OPC_CheckChild0Integer, 33|128,39/*5025*/, ++/* 20178*/ OPC_RecordChild1, // #0 = $vj ++/* 20179*/ OPC_RecordChild2, // #1 = $vk ++/* 20180*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSRARN_WU_D), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5025:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VSSRARN_WU_D:{ *:[v4i32] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 20188*/ /*Scope*/ 13, /*->20202*/ ++/* 20189*/ OPC_CheckChild0Integer, 100|128,34/*4452*/, ++/* 20192*/ OPC_RecordChild1, // #0 = $vj ++/* 20193*/ OPC_RecordChild2, // #1 = $vk ++/* 20194*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VANDN_V), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4452:{ *:[iPTR] }, LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) - Complexity = 8 ++ // Dst: (VANDN_V:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/* 20202*/ /*Scope*/ 13, /*->20216*/ ++/* 20203*/ OPC_CheckChild0Integer, 82|128,37/*4818*/, ++/* 20206*/ OPC_RecordChild1, // #0 = $vj ++/* 20207*/ OPC_RecordChild2, // #1 = $vk ++/* 20208*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VORN_V), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4818:{ *:[iPTR] }, LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) - Complexity = 8 ++ // Dst: (VORN_V:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/* 20216*/ /*Scope*/ 15, /*->20232*/ ++/* 20217*/ OPC_CheckChild0Integer, 16|128,36/*4624*/, ++/* 20220*/ OPC_RecordChild1, // #0 = $vd_in ++/* 20221*/ OPC_RecordChild2, // #1 = $vj ++/* 20222*/ OPC_RecordChild3, // #2 = $vk ++/* 20223*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFRSTP_B), 0, ++ MVT::v16i8, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4624:{ *:[iPTR] }, LSX128BOpnd:{ *:[v16i8] }:$vd_in, LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) - Complexity = 8 ++ // Dst: (VFRSTP_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vd_in, LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/* 20232*/ /*Scope*/ 15, /*->20248*/ ++/* 20233*/ OPC_CheckChild0Integer, 17|128,36/*4625*/, ++/* 20236*/ OPC_RecordChild1, // #0 = $vd_in ++/* 20237*/ OPC_RecordChild2, // #1 = $vj ++/* 20238*/ OPC_RecordChild3, // #2 = $vk ++/* 20239*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFRSTP_H), 0, ++ MVT::v8i16, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4625:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vd_in, LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VFRSTP_H:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vd_in, LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/* 20248*/ /*Scope*/ 13, /*->20262*/ ++/* 20249*/ OPC_CheckChild0Integer, 64|128,34/*4416*/, ++/* 20252*/ OPC_RecordChild1, // #0 = $vj ++/* 20253*/ OPC_RecordChild2, // #1 = $vk ++/* 20254*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VADD_Q), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4416:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VADD_Q:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 20262*/ /*Scope*/ 13, /*->20276*/ ++/* 20263*/ OPC_CheckChild0Integer, 87|128,39/*5079*/, ++/* 20266*/ OPC_RecordChild1, // #0 = $vj ++/* 20267*/ OPC_RecordChild2, // #1 = $vk ++/* 20268*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSUB_Q), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5079:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VSUB_Q:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 20276*/ /*Scope*/ 13, /*->20290*/ ++/* 20277*/ OPC_CheckChild0Integer, 36|128,38/*4900*/, ++/* 20280*/ OPC_RecordChild1, // #0 = $vj ++/* 20281*/ OPC_RecordChild2, // #1 = $vk ++/* 20282*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSIGNCOV_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4900:{ *:[iPTR] }, LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) - Complexity = 8 ++ // Dst: (VSIGNCOV_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/* 20290*/ /*Scope*/ 13, /*->20304*/ ++/* 20291*/ OPC_CheckChild0Integer, 38|128,38/*4902*/, ++/* 20294*/ OPC_RecordChild1, // #0 = $vj ++/* 20295*/ OPC_RecordChild2, // #1 = $vk ++/* 20296*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSIGNCOV_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4902:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VSIGNCOV_H:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/* 20304*/ /*Scope*/ 13, /*->20318*/ ++/* 20305*/ OPC_CheckChild0Integer, 39|128,38/*4903*/, ++/* 20308*/ OPC_RecordChild1, // #0 = $vj ++/* 20309*/ OPC_RecordChild2, // #1 = $vk ++/* 20310*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSIGNCOV_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4903:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VSIGNCOV_W:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/* 20318*/ /*Scope*/ 13, /*->20332*/ ++/* 20319*/ OPC_CheckChild0Integer, 37|128,38/*4901*/, ++/* 20322*/ OPC_RecordChild1, // #0 = $vj ++/* 20323*/ OPC_RecordChild2, // #1 = $vk ++/* 20324*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSIGNCOV_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4901:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VSIGNCOV_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 20332*/ /*Scope*/ 13, /*->20346*/ ++/* 20333*/ OPC_CheckChild0Integer, 95|128,35/*4575*/, ++/* 20336*/ OPC_RecordChild1, // #0 = $vj ++/* 20337*/ OPC_RecordChild2, // #1 = $vk ++/* 20338*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCVT_H_S), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4575:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk) - Complexity = 8 ++ // Dst: (VFCVT_H_S:{ *:[v8i16] } LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk) ++/* 20346*/ /*Scope*/ 13, /*->20360*/ ++/* 20347*/ OPC_CheckChild0Integer, 26|128,36/*4634*/, ++/* 20350*/ OPC_RecordChild1, // #0 = $vj ++/* 20351*/ OPC_RecordChild2, // #1 = $vk ++/* 20352*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFTINT_W_D), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4634:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk) - Complexity = 8 ++ // Dst: (VFTINT_W_D:{ *:[v4i32] } LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk) ++/* 20360*/ /*Scope*/ 13, /*->20374*/ ++/* 20361*/ OPC_CheckChild0Integer, 48|128,36/*4656*/, ++/* 20364*/ OPC_RecordChild1, // #0 = $vj ++/* 20365*/ OPC_RecordChild2, // #1 = $vk ++/* 20366*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFTINTRZ_W_D), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4656:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk) - Complexity = 8 ++ // Dst: (VFTINTRZ_W_D:{ *:[v4i32] } LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk) ++/* 20374*/ /*Scope*/ 13, /*->20388*/ ++/* 20375*/ OPC_CheckChild0Integer, 42|128,36/*4650*/, ++/* 20378*/ OPC_RecordChild1, // #0 = $vj ++/* 20379*/ OPC_RecordChild2, // #1 = $vk ++/* 20380*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFTINTRP_W_D), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4650:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk) - Complexity = 8 ++ // Dst: (VFTINTRP_W_D:{ *:[v4i32] } LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk) ++/* 20388*/ /*Scope*/ 13, /*->20402*/ ++/* 20389*/ OPC_CheckChild0Integer, 32|128,36/*4640*/, ++/* 20392*/ OPC_RecordChild1, // #0 = $vj ++/* 20393*/ OPC_RecordChild2, // #1 = $vk ++/* 20394*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFTINTRM_W_D), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4640:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk) - Complexity = 8 ++ // Dst: (VFTINTRM_W_D:{ *:[v4i32] } LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk) ++/* 20402*/ /*Scope*/ 13, /*->20416*/ ++/* 20403*/ OPC_CheckChild0Integer, 37|128,36/*4645*/, ++/* 20406*/ OPC_RecordChild1, // #0 = $vj ++/* 20407*/ OPC_RecordChild2, // #1 = $vk ++/* 20408*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFTINTRNE_W_D), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4645:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk) - Complexity = 8 ++ // Dst: (VFTINTRNE_W_D:{ *:[v4i32] } LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk) ++/* 20416*/ /*Scope*/ 11, /*->20428*/ ++/* 20417*/ OPC_CheckChild0Integer, 74|128,37/*4810*/, ++/* 20420*/ OPC_RecordChild1, // #0 = $vj ++/* 20421*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VNEG_B), 0, ++ MVT::v16i8, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4810:{ *:[iPTR] }, LSX128BOpnd:{ *:[v16i8] }:$vj) - Complexity = 8 ++ // Dst: (VNEG_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj) ++/* 20428*/ /*Scope*/ 11, /*->20440*/ ++/* 20429*/ OPC_CheckChild0Integer, 76|128,37/*4812*/, ++/* 20432*/ OPC_RecordChild1, // #0 = $vj ++/* 20433*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VNEG_H), 0, ++ MVT::v8i16, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4812:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vj) - Complexity = 8 ++ // Dst: (VNEG_H:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj) ++/* 20440*/ /*Scope*/ 11, /*->20452*/ ++/* 20441*/ OPC_CheckChild0Integer, 77|128,37/*4813*/, ++/* 20444*/ OPC_RecordChild1, // #0 = $vj ++/* 20445*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VNEG_W), 0, ++ MVT::v4i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4813:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vj) - Complexity = 8 ++ // Dst: (VNEG_W:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj) ++/* 20452*/ /*Scope*/ 11, /*->20464*/ ++/* 20453*/ OPC_CheckChild0Integer, 75|128,37/*4811*/, ++/* 20456*/ OPC_RecordChild1, // #0 = $vj ++/* 20457*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VNEG_D), 0, ++ MVT::v2i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4811:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj) - Complexity = 8 ++ // Dst: (VNEG_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj) ++/* 20464*/ /*Scope*/ 11, /*->20476*/ ++/* 20465*/ OPC_CheckChild0Integer, 28|128,37/*4764*/, ++/* 20468*/ OPC_RecordChild1, // #0 = $vj ++/* 20469*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMSKGEZ_B), 0, ++ MVT::v16i8, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4764:{ *:[iPTR] }, LSX128BOpnd:{ *:[v16i8] }:$vj) - Complexity = 8 ++ // Dst: (VMSKGEZ_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj) ++/* 20476*/ /*Scope*/ 11, /*->20488*/ ++/* 20477*/ OPC_CheckChild0Integer, 33|128,37/*4769*/, ++/* 20480*/ OPC_RecordChild1, // #0 = $vj ++/* 20481*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMSKNZ_B), 0, ++ MVT::v16i8, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4769:{ *:[iPTR] }, LSX128BOpnd:{ *:[v16i8] }:$vj) - Complexity = 8 ++ // Dst: (VMSKNZ_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj) ++/* 20488*/ /*Scope*/ 11, /*->20500*/ ++/* 20489*/ OPC_CheckChild0Integer, 7|128,36/*4615*/, ++/* 20492*/ OPC_RecordChild1, // #0 = $vj ++/* 20493*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFRINTRM_S), 0, ++ MVT::v4i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4615:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4f32] }:$vj) - Complexity = 8 ++ // Dst: (VFRINTRM_S:{ *:[v4i32] } LSX128WOpnd:{ *:[v4f32] }:$vj) ++/* 20500*/ /*Scope*/ 11, /*->20512*/ ++/* 20501*/ OPC_CheckChild0Integer, 6|128,36/*4614*/, ++/* 20504*/ OPC_RecordChild1, // #0 = $vj ++/* 20505*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFRINTRM_D), 0, ++ MVT::v2i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4614:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2f64] }:$vj) - Complexity = 8 ++ // Dst: (VFRINTRM_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2f64] }:$vj) ++/* 20512*/ /*Scope*/ 11, /*->20524*/ ++/* 20513*/ OPC_CheckChild0Integer, 11|128,36/*4619*/, ++/* 20516*/ OPC_RecordChild1, // #0 = $vj ++/* 20517*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFRINTRP_S), 0, ++ MVT::v4i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4619:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4f32] }:$vj) - Complexity = 8 ++ // Dst: (VFRINTRP_S:{ *:[v4i32] } LSX128WOpnd:{ *:[v4f32] }:$vj) ++/* 20524*/ /*Scope*/ 11, /*->20536*/ ++/* 20525*/ OPC_CheckChild0Integer, 10|128,36/*4618*/, ++/* 20528*/ OPC_RecordChild1, // #0 = $vj ++/* 20529*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFRINTRP_D), 0, ++ MVT::v2i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4618:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2f64] }:$vj) - Complexity = 8 ++ // Dst: (VFRINTRP_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2f64] }:$vj) ++/* 20536*/ /*Scope*/ 11, /*->20548*/ ++/* 20537*/ OPC_CheckChild0Integer, 13|128,36/*4621*/, ++/* 20540*/ OPC_RecordChild1, // #0 = $vj ++/* 20541*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFRINTRZ_S), 0, ++ MVT::v4i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4621:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4f32] }:$vj) - Complexity = 8 ++ // Dst: (VFRINTRZ_S:{ *:[v4i32] } LSX128WOpnd:{ *:[v4f32] }:$vj) ++/* 20548*/ /*Scope*/ 11, /*->20560*/ ++/* 20549*/ OPC_CheckChild0Integer, 12|128,36/*4620*/, ++/* 20552*/ OPC_RecordChild1, // #0 = $vj ++/* 20553*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFRINTRZ_D), 0, ++ MVT::v2i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4620:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2f64] }:$vj) - Complexity = 8 ++ // Dst: (VFRINTRZ_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2f64] }:$vj) ++/* 20560*/ /*Scope*/ 11, /*->20572*/ ++/* 20561*/ OPC_CheckChild0Integer, 9|128,36/*4617*/, ++/* 20564*/ OPC_RecordChild1, // #0 = $vj ++/* 20565*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFRINTRNE_S), 0, ++ MVT::v4i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4617:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4f32] }:$vj) - Complexity = 8 ++ // Dst: (VFRINTRNE_S:{ *:[v4i32] } LSX128WOpnd:{ *:[v4f32] }:$vj) ++/* 20572*/ /*Scope*/ 11, /*->20584*/ ++/* 20573*/ OPC_CheckChild0Integer, 8|128,36/*4616*/, ++/* 20576*/ OPC_RecordChild1, // #0 = $vj ++/* 20577*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFRINTRNE_D), 0, ++ MVT::v2i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4616:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2f64] }:$vj) - Complexity = 8 ++ // Dst: (VFRINTRNE_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2f64] }:$vj) ++/* 20584*/ /*Scope*/ 11, /*->20596*/ ++/* 20585*/ OPC_CheckChild0Integer, 33|128,36/*4641*/, ++/* 20588*/ OPC_RecordChild1, // #0 = $vj ++/* 20589*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFTINTRM_W_S), 0, ++ MVT::v4i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4641:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4f32] }:$vj) - Complexity = 8 ++ // Dst: (VFTINTRM_W_S:{ *:[v4i32] } LSX128WOpnd:{ *:[v4f32] }:$vj) ++/* 20596*/ /*Scope*/ 11, /*->20608*/ ++/* 20597*/ OPC_CheckChild0Integer, 31|128,36/*4639*/, ++/* 20600*/ OPC_RecordChild1, // #0 = $vj ++/* 20601*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFTINTRM_L_D), 0, ++ MVT::v2i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4639:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2f64] }:$vj) - Complexity = 8 ++ // Dst: (VFTINTRM_L_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2f64] }:$vj) ++/* 20608*/ /*Scope*/ 11, /*->20620*/ ++/* 20609*/ OPC_CheckChild0Integer, 43|128,36/*4651*/, ++/* 20612*/ OPC_RecordChild1, // #0 = $vj ++/* 20613*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFTINTRP_W_S), 0, ++ MVT::v4i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4651:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4f32] }:$vj) - Complexity = 8 ++ // Dst: (VFTINTRP_W_S:{ *:[v4i32] } LSX128WOpnd:{ *:[v4f32] }:$vj) ++/* 20620*/ /*Scope*/ 11, /*->20632*/ ++/* 20621*/ OPC_CheckChild0Integer, 41|128,36/*4649*/, ++/* 20624*/ OPC_RecordChild1, // #0 = $vj ++/* 20625*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFTINTRP_L_D), 0, ++ MVT::v2i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4649:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2f64] }:$vj) - Complexity = 8 ++ // Dst: (VFTINTRP_L_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2f64] }:$vj) ++/* 20632*/ /*Scope*/ 11, /*->20644*/ ++/* 20633*/ OPC_CheckChild0Integer, 38|128,36/*4646*/, ++/* 20636*/ OPC_RecordChild1, // #0 = $vj ++/* 20637*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFTINTRNE_W_S), 0, ++ MVT::v4i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4646:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4f32] }:$vj) - Complexity = 8 ++ // Dst: (VFTINTRNE_W_S:{ *:[v4i32] } LSX128WOpnd:{ *:[v4f32] }:$vj) ++/* 20644*/ /*Scope*/ 11, /*->20656*/ ++/* 20645*/ OPC_CheckChild0Integer, 36|128,36/*4644*/, ++/* 20648*/ OPC_RecordChild1, // #0 = $vj ++/* 20649*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFTINTRNE_L_D), 0, ++ MVT::v2i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4644:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2f64] }:$vj) - Complexity = 8 ++ // Dst: (VFTINTRNE_L_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2f64] }:$vj) ++/* 20656*/ /*Scope*/ 11, /*->20668*/ ++/* 20657*/ OPC_CheckChild0Integer, 30|128,36/*4638*/, ++/* 20660*/ OPC_RecordChild1, // #0 = $vj ++/* 20661*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFTINTL_L_S), 0, ++ MVT::v2i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4638:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4f32] }:$vj) - Complexity = 8 ++ // Dst: (VFTINTL_L_S:{ *:[v2i64] } LSX128WOpnd:{ *:[v4f32] }:$vj) ++/* 20668*/ /*Scope*/ 11, /*->20680*/ ++/* 20669*/ OPC_CheckChild0Integer, 29|128,36/*4637*/, ++/* 20672*/ OPC_RecordChild1, // #0 = $vj ++/* 20673*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFTINTH_L_S), 0, ++ MVT::v2i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4637:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4f32] }:$vj) - Complexity = 8 ++ // Dst: (VFTINTH_L_S:{ *:[v2i64] } LSX128WOpnd:{ *:[v4f32] }:$vj) ++/* 20680*/ /*Scope*/ 11, /*->20692*/ ++/* 20681*/ OPC_CheckChild0Integer, 35|128,36/*4643*/, ++/* 20684*/ OPC_RecordChild1, // #0 = $vj ++/* 20685*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFTINTRML_L_S), 0, ++ MVT::v2i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4643:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4f32] }:$vj) - Complexity = 8 ++ // Dst: (VFTINTRML_L_S:{ *:[v2i64] } LSX128WOpnd:{ *:[v4f32] }:$vj) ++/* 20692*/ /*Scope*/ 11, /*->20704*/ ++/* 20693*/ OPC_CheckChild0Integer, 34|128,36/*4642*/, ++/* 20696*/ OPC_RecordChild1, // #0 = $vj ++/* 20697*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFTINTRMH_L_S), 0, ++ MVT::v2i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4642:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4f32] }:$vj) - Complexity = 8 ++ // Dst: (VFTINTRMH_L_S:{ *:[v2i64] } LSX128WOpnd:{ *:[v4f32] }:$vj) ++/* 20704*/ /*Scope*/ 11, /*->20716*/ ++/* 20705*/ OPC_CheckChild0Integer, 45|128,36/*4653*/, ++/* 20708*/ OPC_RecordChild1, // #0 = $vj ++/* 20709*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFTINTRPL_L_S), 0, ++ MVT::v2i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4653:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4f32] }:$vj) - Complexity = 8 ++ // Dst: (VFTINTRPL_L_S:{ *:[v2i64] } LSX128WOpnd:{ *:[v4f32] }:$vj) ++/* 20716*/ /*Scope*/ 11, /*->20728*/ ++/* 20717*/ OPC_CheckChild0Integer, 44|128,36/*4652*/, ++/* 20720*/ OPC_RecordChild1, // #0 = $vj ++/* 20721*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFTINTRPH_L_S), 0, ++ MVT::v2i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4652:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4f32] }:$vj) - Complexity = 8 ++ // Dst: (VFTINTRPH_L_S:{ *:[v2i64] } LSX128WOpnd:{ *:[v4f32] }:$vj) ++/* 20728*/ /*Scope*/ 11, /*->20740*/ ++/* 20729*/ OPC_CheckChild0Integer, 52|128,36/*4660*/, ++/* 20732*/ OPC_RecordChild1, // #0 = $vj ++/* 20733*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFTINTRZL_L_S), 0, ++ MVT::v2i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4660:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4f32] }:$vj) - Complexity = 8 ++ // Dst: (VFTINTRZL_L_S:{ *:[v2i64] } LSX128WOpnd:{ *:[v4f32] }:$vj) ++/* 20740*/ /*Scope*/ 11, /*->20752*/ ++/* 20741*/ OPC_CheckChild0Integer, 51|128,36/*4659*/, ++/* 20744*/ OPC_RecordChild1, // #0 = $vj ++/* 20745*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFTINTRZH_L_S), 0, ++ MVT::v2i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4659:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4f32] }:$vj) - Complexity = 8 ++ // Dst: (VFTINTRZH_L_S:{ *:[v2i64] } LSX128WOpnd:{ *:[v4f32] }:$vj) ++/* 20752*/ /*Scope*/ 11, /*->20764*/ ++/* 20753*/ OPC_CheckChild0Integer, 40|128,36/*4648*/, ++/* 20756*/ OPC_RecordChild1, // #0 = $vj ++/* 20757*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFTINTRNEL_L_S), 0, ++ MVT::v2i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4648:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4f32] }:$vj) - Complexity = 8 ++ // Dst: (VFTINTRNEL_L_S:{ *:[v2i64] } LSX128WOpnd:{ *:[v4f32] }:$vj) ++/* 20764*/ /*Scope*/ 11, /*->20776*/ ++/* 20765*/ OPC_CheckChild0Integer, 39|128,36/*4647*/, ++/* 20768*/ OPC_RecordChild1, // #0 = $vj ++/* 20769*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFTINTRNEH_L_S), 0, ++ MVT::v2i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4647:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4f32] }:$vj) - Complexity = 8 ++ // Dst: (VFTINTRNEH_L_S:{ *:[v2i64] } LSX128WOpnd:{ *:[v4f32] }:$vj) ++/* 20776*/ /*Scope*/ 11, /*->20788*/ ++/* 20777*/ OPC_CheckChild0Integer, 35|128,35/*4515*/, ++/* 20780*/ OPC_RecordChild1, // #0 = $vj ++/* 20781*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VEXTH_H_B), 0, ++ MVT::v8i16, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4515:{ *:[iPTR] }, LSX128BOpnd:{ *:[v16i8] }:$vj) - Complexity = 8 ++ // Dst: (VEXTH_H_B:{ *:[v8i16] } LSX128BOpnd:{ *:[v16i8] }:$vj) ++/* 20788*/ /*Scope*/ 11, /*->20800*/ ++/* 20789*/ OPC_CheckChild0Integer, 39|128,35/*4519*/, ++/* 20792*/ OPC_RecordChild1, // #0 = $vj ++/* 20793*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VEXTH_W_H), 0, ++ MVT::v4i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4519:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vj) - Complexity = 8 ++ // Dst: (VEXTH_W_H:{ *:[v4i32] } LSX128HOpnd:{ *:[v8i16] }:$vj) ++/* 20800*/ /*Scope*/ 11, /*->20812*/ ++/* 20801*/ OPC_CheckChild0Integer, 33|128,35/*4513*/, ++/* 20804*/ OPC_RecordChild1, // #0 = $vj ++/* 20805*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VEXTH_D_W), 0, ++ MVT::v2i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4513:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vj) - Complexity = 8 ++ // Dst: (VEXTH_D_W:{ *:[v2i64] } LSX128WOpnd:{ *:[v4i32] }:$vj) ++/* 20812*/ /*Scope*/ 11, /*->20824*/ ++/* 20813*/ OPC_CheckChild0Integer, 37|128,35/*4517*/, ++/* 20816*/ OPC_RecordChild1, // #0 = $vj ++/* 20817*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VEXTH_Q_D), 0, ++ MVT::v2i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4517:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj) - Complexity = 8 ++ // Dst: (VEXTH_Q_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj) ++/* 20824*/ /*Scope*/ 11, /*->20836*/ ++/* 20825*/ OPC_CheckChild0Integer, 36|128,35/*4516*/, ++/* 20828*/ OPC_RecordChild1, // #0 = $vj ++/* 20829*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VEXTH_HU_BU), 0, ++ MVT::v8i16, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4516:{ *:[iPTR] }, LSX128BOpnd:{ *:[v16i8] }:$vj) - Complexity = 8 ++ // Dst: (VEXTH_HU_BU:{ *:[v8i16] } LSX128BOpnd:{ *:[v16i8] }:$vj) ++/* 20836*/ /*Scope*/ 11, /*->20848*/ ++/* 20837*/ OPC_CheckChild0Integer, 40|128,35/*4520*/, ++/* 20840*/ OPC_RecordChild1, // #0 = $vj ++/* 20841*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VEXTH_WU_HU), 0, ++ MVT::v4i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4520:{ *:[iPTR] }, LSX128HOpnd:{ *:[v8i16] }:$vj) - Complexity = 8 ++ // Dst: (VEXTH_WU_HU:{ *:[v4i32] } LSX128HOpnd:{ *:[v8i16] }:$vj) ++/* 20848*/ /*Scope*/ 11, /*->20860*/ ++/* 20849*/ OPC_CheckChild0Integer, 34|128,35/*4514*/, ++/* 20852*/ OPC_RecordChild1, // #0 = $vj ++/* 20853*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VEXTH_DU_WU), 0, ++ MVT::v2i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4514:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vj) - Complexity = 8 ++ // Dst: (VEXTH_DU_WU:{ *:[v2i64] } LSX128WOpnd:{ *:[v4i32] }:$vj) ++/* 20860*/ /*Scope*/ 11, /*->20872*/ ++/* 20861*/ OPC_CheckChild0Integer, 38|128,35/*4518*/, ++/* 20864*/ OPC_RecordChild1, // #0 = $vj ++/* 20865*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VEXTH_QU_DU), 0, ++ MVT::v2i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4518:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj) - Complexity = 8 ++ // Dst: (VEXTH_QU_DU:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj) ++/* 20872*/ /*Scope*/ 11, /*->20884*/ ++/* 20873*/ OPC_CheckChild0Integer, 41|128,35/*4521*/, ++/* 20876*/ OPC_RecordChild1, // #0 = $vj ++/* 20877*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VEXTL_Q_D), 0, ++ MVT::v2i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4521:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj) - Complexity = 8 ++ // Dst: (VEXTL_Q_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj) ++/* 20884*/ /*Scope*/ 11, /*->20896*/ ++/* 20885*/ OPC_CheckChild0Integer, 42|128,35/*4522*/, ++/* 20888*/ OPC_RecordChild1, // #0 = $vj ++/* 20889*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VEXTL_QU_DU), 0, ++ MVT::v2i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4522:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj) - Complexity = 8 ++ // Dst: (VEXTL_QU_DU:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj) ++/* 20896*/ /*Scope*/ 15, /*->20912*/ ++/* 20897*/ OPC_CheckChild0Integer, 20|128,38/*4884*/, ++/* 20900*/ OPC_RecordChild1, // #0 = $vj ++/* 20901*/ OPC_RecordChild2, // #1 = $vk ++/* 20902*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 20904*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSEQ_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4884:{ *:[iPTR] }, LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) - Complexity = 8 ++ // Dst: (VSEQ_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) ++/* 20912*/ /*Scope*/ 15, /*->20928*/ ++/* 20913*/ OPC_CheckChild0Integer, 22|128,38/*4886*/, ++/* 20916*/ OPC_RecordChild1, // #0 = $vj ++/* 20917*/ OPC_RecordChild2, // #1 = $vk ++/* 20918*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 20920*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSEQ_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4886:{ *:[iPTR] }, LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VSEQ_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) ++/* 20928*/ /*Scope*/ 15, /*->20944*/ ++/* 20929*/ OPC_CheckChild0Integer, 23|128,38/*4887*/, ++/* 20932*/ OPC_RecordChild1, // #0 = $vj ++/* 20933*/ OPC_RecordChild2, // #1 = $vk ++/* 20934*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 20936*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSEQ_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4887:{ *:[iPTR] }, LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VSEQ_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) ++/* 20944*/ /*Scope*/ 15, /*->20960*/ ++/* 20945*/ OPC_CheckChild0Integer, 21|128,38/*4885*/, ++/* 20948*/ OPC_RecordChild1, // #0 = $vj ++/* 20949*/ OPC_RecordChild2, // #1 = $vk ++/* 20950*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 20952*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSEQ_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4885:{ *:[iPTR] }, LSX128D:{ *:[v2i64] }:$vj, LSX128D:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VSEQ_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vj, LSX128D:{ *:[v2i64] }:$vk) ++/* 20960*/ /*Scope*/ 15, /*->20976*/ ++/* 20961*/ OPC_CheckChild0Integer, 40|128,38/*4904*/, ++/* 20964*/ OPC_RecordChild1, // #0 = $vj ++/* 20965*/ OPC_RecordChild2, // #1 = $vk ++/* 20966*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 20968*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLE_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4904:{ *:[iPTR] }, LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) - Complexity = 8 ++ // Dst: (VSLE_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) ++/* 20976*/ /*Scope*/ 15, /*->20992*/ ++/* 20977*/ OPC_CheckChild0Integer, 44|128,38/*4908*/, ++/* 20980*/ OPC_RecordChild1, // #0 = $vj ++/* 20981*/ OPC_RecordChild2, // #1 = $vk ++/* 20982*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 20984*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLE_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4908:{ *:[iPTR] }, LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VSLE_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) ++/* 20992*/ /*Scope*/ 15, /*->21008*/ ++/* 20993*/ OPC_CheckChild0Integer, 46|128,38/*4910*/, ++/* 20996*/ OPC_RecordChild1, // #0 = $vj ++/* 20997*/ OPC_RecordChild2, // #1 = $vk ++/* 20998*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21000*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLE_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4910:{ *:[iPTR] }, LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VSLE_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) ++/* 21008*/ /*Scope*/ 15, /*->21024*/ ++/* 21009*/ OPC_CheckChild0Integer, 42|128,38/*4906*/, ++/* 21012*/ OPC_RecordChild1, // #0 = $vj ++/* 21013*/ OPC_RecordChild2, // #1 = $vk ++/* 21014*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21016*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLE_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4906:{ *:[iPTR] }, LSX128D:{ *:[v2i64] }:$vj, LSX128D:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VSLE_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vj, LSX128D:{ *:[v2i64] }:$vk) ++/* 21024*/ /*Scope*/ 15, /*->21040*/ ++/* 21025*/ OPC_CheckChild0Integer, 41|128,38/*4905*/, ++/* 21028*/ OPC_RecordChild1, // #0 = $vj ++/* 21029*/ OPC_RecordChild2, // #1 = $vk ++/* 21030*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21032*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLE_BU), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4905:{ *:[iPTR] }, LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) - Complexity = 8 ++ // Dst: (VSLE_BU:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) ++/* 21040*/ /*Scope*/ 15, /*->21056*/ ++/* 21041*/ OPC_CheckChild0Integer, 45|128,38/*4909*/, ++/* 21044*/ OPC_RecordChild1, // #0 = $vj ++/* 21045*/ OPC_RecordChild2, // #1 = $vk ++/* 21046*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21048*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLE_HU), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4909:{ *:[iPTR] }, LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VSLE_HU:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) ++/* 21056*/ /*Scope*/ 15, /*->21072*/ ++/* 21057*/ OPC_CheckChild0Integer, 47|128,38/*4911*/, ++/* 21060*/ OPC_RecordChild1, // #0 = $vj ++/* 21061*/ OPC_RecordChild2, // #1 = $vk ++/* 21062*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21064*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLE_WU), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4911:{ *:[iPTR] }, LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VSLE_WU:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) ++/* 21072*/ /*Scope*/ 15, /*->21088*/ ++/* 21073*/ OPC_CheckChild0Integer, 43|128,38/*4907*/, ++/* 21076*/ OPC_RecordChild1, // #0 = $vj ++/* 21077*/ OPC_RecordChild2, // #1 = $vk ++/* 21078*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21080*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLE_DU), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4907:{ *:[iPTR] }, LSX128D:{ *:[v2i64] }:$vj, LSX128D:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VSLE_DU:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vj, LSX128D:{ *:[v2i64] }:$vk) ++/* 21088*/ /*Scope*/ 15, /*->21104*/ ++/* 21089*/ OPC_CheckChild0Integer, 70|128,38/*4934*/, ++/* 21092*/ OPC_RecordChild1, // #0 = $vj ++/* 21093*/ OPC_RecordChild2, // #1 = $vk ++/* 21094*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21096*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLT_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4934:{ *:[iPTR] }, LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) - Complexity = 8 ++ // Dst: (VSLT_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) ++/* 21104*/ /*Scope*/ 15, /*->21120*/ ++/* 21105*/ OPC_CheckChild0Integer, 74|128,38/*4938*/, ++/* 21108*/ OPC_RecordChild1, // #0 = $vj ++/* 21109*/ OPC_RecordChild2, // #1 = $vk ++/* 21110*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21112*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLT_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4938:{ *:[iPTR] }, LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VSLT_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) ++/* 21120*/ /*Scope*/ 15, /*->21136*/ ++/* 21121*/ OPC_CheckChild0Integer, 76|128,38/*4940*/, ++/* 21124*/ OPC_RecordChild1, // #0 = $vj ++/* 21125*/ OPC_RecordChild2, // #1 = $vk ++/* 21126*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21128*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLT_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4940:{ *:[iPTR] }, LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VSLT_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) ++/* 21136*/ /*Scope*/ 15, /*->21152*/ ++/* 21137*/ OPC_CheckChild0Integer, 72|128,38/*4936*/, ++/* 21140*/ OPC_RecordChild1, // #0 = $vj ++/* 21141*/ OPC_RecordChild2, // #1 = $vk ++/* 21142*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21144*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLT_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4936:{ *:[iPTR] }, LSX128D:{ *:[v2i64] }:$vj, LSX128D:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VSLT_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vj, LSX128D:{ *:[v2i64] }:$vk) ++/* 21152*/ /*Scope*/ 15, /*->21168*/ ++/* 21153*/ OPC_CheckChild0Integer, 71|128,38/*4935*/, ++/* 21156*/ OPC_RecordChild1, // #0 = $vj ++/* 21157*/ OPC_RecordChild2, // #1 = $vk ++/* 21158*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21160*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLT_BU), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4935:{ *:[iPTR] }, LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) - Complexity = 8 ++ // Dst: (VSLT_BU:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) ++/* 21168*/ /*Scope*/ 15, /*->21184*/ ++/* 21169*/ OPC_CheckChild0Integer, 75|128,38/*4939*/, ++/* 21172*/ OPC_RecordChild1, // #0 = $vj ++/* 21173*/ OPC_RecordChild2, // #1 = $vk ++/* 21174*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21176*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLT_HU), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4939:{ *:[iPTR] }, LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VSLT_HU:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) ++/* 21184*/ /*Scope*/ 15, /*->21200*/ ++/* 21185*/ OPC_CheckChild0Integer, 77|128,38/*4941*/, ++/* 21188*/ OPC_RecordChild1, // #0 = $vj ++/* 21189*/ OPC_RecordChild2, // #1 = $vk ++/* 21190*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21192*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLT_WU), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4941:{ *:[iPTR] }, LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VSLT_WU:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) ++/* 21200*/ /*Scope*/ 15, /*->21216*/ ++/* 21201*/ OPC_CheckChild0Integer, 73|128,38/*4937*/, ++/* 21204*/ OPC_RecordChild1, // #0 = $vj ++/* 21205*/ OPC_RecordChild2, // #1 = $vk ++/* 21206*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21208*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLT_DU), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4937:{ *:[iPTR] }, LSX128D:{ *:[v2i64] }:$vj, LSX128D:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VSLT_DU:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vj, LSX128D:{ *:[v2i64] }:$vk) ++/* 21216*/ /*Scope*/ 15, /*->21232*/ ++/* 21217*/ OPC_CheckChild0Integer, 61|128,34/*4413*/, ++/* 21220*/ OPC_RecordChild1, // #0 = $vj ++/* 21221*/ OPC_RecordChild2, // #1 = $vk ++/* 21222*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21224*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VADD_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4413:{ *:[iPTR] }, LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) - Complexity = 8 ++ // Dst: (VADD_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) ++/* 21232*/ /*Scope*/ 15, /*->21248*/ ++/* 21233*/ OPC_CheckChild0Integer, 63|128,34/*4415*/, ++/* 21236*/ OPC_RecordChild1, // #0 = $vj ++/* 21237*/ OPC_RecordChild2, // #1 = $vk ++/* 21238*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21240*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VADD_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4415:{ *:[iPTR] }, LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VADD_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) ++/* 21248*/ /*Scope*/ 15, /*->21264*/ ++/* 21249*/ OPC_CheckChild0Integer, 65|128,34/*4417*/, ++/* 21252*/ OPC_RecordChild1, // #0 = $vj ++/* 21253*/ OPC_RecordChild2, // #1 = $vk ++/* 21254*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21256*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VADD_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4417:{ *:[iPTR] }, LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VADD_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) ++/* 21264*/ /*Scope*/ 15, /*->21280*/ ++/* 21265*/ OPC_CheckChild0Integer, 62|128,34/*4414*/, ++/* 21268*/ OPC_RecordChild1, // #0 = $vj ++/* 21269*/ OPC_RecordChild2, // #1 = $vk ++/* 21270*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21272*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VADD_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4414:{ *:[iPTR] }, LSX128D:{ *:[v2i64] }:$vj, LSX128D:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VADD_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vj, LSX128D:{ *:[v2i64] }:$vk) ++/* 21280*/ /*Scope*/ 15, /*->21296*/ ++/* 21281*/ OPC_CheckChild0Integer, 84|128,39/*5076*/, ++/* 21284*/ OPC_RecordChild1, // #0 = $vj ++/* 21285*/ OPC_RecordChild2, // #1 = $vk ++/* 21286*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21288*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSUB_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 5076:{ *:[iPTR] }, LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) - Complexity = 8 ++ // Dst: (VSUB_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) ++/* 21296*/ /*Scope*/ 15, /*->21312*/ ++/* 21297*/ OPC_CheckChild0Integer, 86|128,39/*5078*/, ++/* 21300*/ OPC_RecordChild1, // #0 = $vj ++/* 21301*/ OPC_RecordChild2, // #1 = $vk ++/* 21302*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21304*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSUB_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 5078:{ *:[iPTR] }, LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VSUB_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) ++/* 21312*/ /*Scope*/ 15, /*->21328*/ ++/* 21313*/ OPC_CheckChild0Integer, 88|128,39/*5080*/, ++/* 21316*/ OPC_RecordChild1, // #0 = $vj ++/* 21317*/ OPC_RecordChild2, // #1 = $vk ++/* 21318*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21320*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSUB_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5080:{ *:[iPTR] }, LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VSUB_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) ++/* 21328*/ /*Scope*/ 15, /*->21344*/ ++/* 21329*/ OPC_CheckChild0Integer, 85|128,39/*5077*/, ++/* 21332*/ OPC_RecordChild1, // #0 = $vj ++/* 21333*/ OPC_RecordChild2, // #1 = $vk ++/* 21334*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21336*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSUB_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5077:{ *:[iPTR] }, LSX128D:{ *:[v2i64] }:$vj, LSX128D:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VSUB_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vj, LSX128D:{ *:[v2i64] }:$vk) ++/* 21344*/ /*Scope*/ 15, /*->21360*/ ++/* 21345*/ OPC_CheckChild0Integer, 4|128,38/*4868*/, ++/* 21348*/ OPC_RecordChild1, // #0 = $vj ++/* 21349*/ OPC_RecordChild2, // #1 = $vk ++/* 21350*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21352*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSADD_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4868:{ *:[iPTR] }, LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) - Complexity = 8 ++ // Dst: (VSADD_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) ++/* 21360*/ /*Scope*/ 15, /*->21376*/ ++/* 21361*/ OPC_CheckChild0Integer, 8|128,38/*4872*/, ++/* 21364*/ OPC_RecordChild1, // #0 = $vj ++/* 21365*/ OPC_RecordChild2, // #1 = $vk ++/* 21366*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21368*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSADD_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4872:{ *:[iPTR] }, LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VSADD_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) ++/* 21376*/ /*Scope*/ 15, /*->21392*/ ++/* 21377*/ OPC_CheckChild0Integer, 10|128,38/*4874*/, ++/* 21380*/ OPC_RecordChild1, // #0 = $vj ++/* 21381*/ OPC_RecordChild2, // #1 = $vk ++/* 21382*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21384*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSADD_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4874:{ *:[iPTR] }, LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VSADD_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) ++/* 21392*/ /*Scope*/ 15, /*->21408*/ ++/* 21393*/ OPC_CheckChild0Integer, 6|128,38/*4870*/, ++/* 21396*/ OPC_RecordChild1, // #0 = $vj ++/* 21397*/ OPC_RecordChild2, // #1 = $vk ++/* 21398*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21400*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSADD_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4870:{ *:[iPTR] }, LSX128D:{ *:[v2i64] }:$vj, LSX128D:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VSADD_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vj, LSX128D:{ *:[v2i64] }:$vk) ++/* 21408*/ /*Scope*/ 15, /*->21424*/ ++/* 21409*/ OPC_CheckChild0Integer, 70|128,39/*5062*/, ++/* 21412*/ OPC_RecordChild1, // #0 = $vj ++/* 21413*/ OPC_RecordChild2, // #1 = $vk ++/* 21414*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21416*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSUB_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 5062:{ *:[iPTR] }, LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) - Complexity = 8 ++ // Dst: (VSSUB_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) ++/* 21424*/ /*Scope*/ 15, /*->21440*/ ++/* 21425*/ OPC_CheckChild0Integer, 74|128,39/*5066*/, ++/* 21428*/ OPC_RecordChild1, // #0 = $vj ++/* 21429*/ OPC_RecordChild2, // #1 = $vk ++/* 21430*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21432*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSUB_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 5066:{ *:[iPTR] }, LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VSSUB_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) ++/* 21440*/ /*Scope*/ 15, /*->21456*/ ++/* 21441*/ OPC_CheckChild0Integer, 76|128,39/*5068*/, ++/* 21444*/ OPC_RecordChild1, // #0 = $vj ++/* 21445*/ OPC_RecordChild2, // #1 = $vk ++/* 21446*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21448*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSUB_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5068:{ *:[iPTR] }, LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VSSUB_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) ++/* 21456*/ /*Scope*/ 15, /*->21472*/ ++/* 21457*/ OPC_CheckChild0Integer, 72|128,39/*5064*/, ++/* 21460*/ OPC_RecordChild1, // #0 = $vj ++/* 21461*/ OPC_RecordChild2, // #1 = $vk ++/* 21462*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21464*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSUB_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5064:{ *:[iPTR] }, LSX128D:{ *:[v2i64] }:$vj, LSX128D:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VSSUB_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vj, LSX128D:{ *:[v2i64] }:$vk) ++/* 21472*/ /*Scope*/ 15, /*->21488*/ ++/* 21473*/ OPC_CheckChild0Integer, 5|128,38/*4869*/, ++/* 21476*/ OPC_RecordChild1, // #0 = $vj ++/* 21477*/ OPC_RecordChild2, // #1 = $vk ++/* 21478*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21480*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSADD_BU), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4869:{ *:[iPTR] }, LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) - Complexity = 8 ++ // Dst: (VSADD_BU:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) ++/* 21488*/ /*Scope*/ 15, /*->21504*/ ++/* 21489*/ OPC_CheckChild0Integer, 9|128,38/*4873*/, ++/* 21492*/ OPC_RecordChild1, // #0 = $vj ++/* 21493*/ OPC_RecordChild2, // #1 = $vk ++/* 21494*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21496*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSADD_HU), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4873:{ *:[iPTR] }, LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VSADD_HU:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) ++/* 21504*/ /*Scope*/ 15, /*->21520*/ ++/* 21505*/ OPC_CheckChild0Integer, 11|128,38/*4875*/, ++/* 21508*/ OPC_RecordChild1, // #0 = $vj ++/* 21509*/ OPC_RecordChild2, // #1 = $vk ++/* 21510*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21512*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSADD_WU), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4875:{ *:[iPTR] }, LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VSADD_WU:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) ++/* 21520*/ /*Scope*/ 15, /*->21536*/ ++/* 21521*/ OPC_CheckChild0Integer, 7|128,38/*4871*/, ++/* 21524*/ OPC_RecordChild1, // #0 = $vj ++/* 21525*/ OPC_RecordChild2, // #1 = $vk ++/* 21526*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21528*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSADD_DU), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4871:{ *:[iPTR] }, LSX128D:{ *:[v2i64] }:$vj, LSX128D:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VSADD_DU:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vj, LSX128D:{ *:[v2i64] }:$vk) ++/* 21536*/ /*Scope*/ 15, /*->21552*/ ++/* 21537*/ OPC_CheckChild0Integer, 71|128,39/*5063*/, ++/* 21540*/ OPC_RecordChild1, // #0 = $vj ++/* 21541*/ OPC_RecordChild2, // #1 = $vk ++/* 21542*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21544*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSUB_BU), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 5063:{ *:[iPTR] }, LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) - Complexity = 8 ++ // Dst: (VSSUB_BU:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) ++/* 21552*/ /*Scope*/ 15, /*->21568*/ ++/* 21553*/ OPC_CheckChild0Integer, 75|128,39/*5067*/, ++/* 21556*/ OPC_RecordChild1, // #0 = $vj ++/* 21557*/ OPC_RecordChild2, // #1 = $vk ++/* 21558*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21560*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSUB_HU), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 5067:{ *:[iPTR] }, LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VSSUB_HU:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) ++/* 21568*/ /*Scope*/ 15, /*->21584*/ ++/* 21569*/ OPC_CheckChild0Integer, 77|128,39/*5069*/, ++/* 21572*/ OPC_RecordChild1, // #0 = $vj ++/* 21573*/ OPC_RecordChild2, // #1 = $vk ++/* 21574*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21576*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSUB_WU), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5069:{ *:[iPTR] }, LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VSSUB_WU:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) ++/* 21584*/ /*Scope*/ 15, /*->21600*/ ++/* 21585*/ OPC_CheckChild0Integer, 73|128,39/*5065*/, ++/* 21588*/ OPC_RecordChild1, // #0 = $vj ++/* 21589*/ OPC_RecordChild2, // #1 = $vk ++/* 21590*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21592*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSSUB_DU), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5065:{ *:[iPTR] }, LSX128D:{ *:[v2i64] }:$vj, LSX128D:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VSSUB_DU:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vj, LSX128D:{ *:[v2i64] }:$vk) ++/* 21600*/ /*Scope*/ 15, /*->21616*/ ++/* 21601*/ OPC_CheckChild0Integer, 55|128,36/*4663*/, ++/* 21604*/ OPC_RecordChild1, // #0 = $vj ++/* 21605*/ OPC_RecordChild2, // #1 = $vk ++/* 21606*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21608*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VHADDW_H_B), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4663:{ *:[iPTR] }, LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) - Complexity = 8 ++ // Dst: (VHADDW_H_B:{ *:[v8i16] } LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) ++/* 21616*/ /*Scope*/ 15, /*->21632*/ ++/* 21617*/ OPC_CheckChild0Integer, 59|128,36/*4667*/, ++/* 21620*/ OPC_RecordChild1, // #0 = $vj ++/* 21621*/ OPC_RecordChild2, // #1 = $vk ++/* 21622*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21624*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VHADDW_W_H), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4667:{ *:[iPTR] }, LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VHADDW_W_H:{ *:[v4i32] } LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) ++/* 21632*/ /*Scope*/ 15, /*->21648*/ ++/* 21633*/ OPC_CheckChild0Integer, 53|128,36/*4661*/, ++/* 21636*/ OPC_RecordChild1, // #0 = $vj ++/* 21637*/ OPC_RecordChild2, // #1 = $vk ++/* 21638*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21640*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VHADDW_D_W), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4661:{ *:[iPTR] }, LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VHADDW_D_W:{ *:[v2i64] } LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) ++/* 21648*/ /*Scope*/ 15, /*->21664*/ ++/* 21649*/ OPC_CheckChild0Integer, 63|128,36/*4671*/, ++/* 21652*/ OPC_RecordChild1, // #0 = $vj ++/* 21653*/ OPC_RecordChild2, // #1 = $vk ++/* 21654*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21656*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VHSUBW_H_B), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4671:{ *:[iPTR] }, LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) - Complexity = 8 ++ // Dst: (VHSUBW_H_B:{ *:[v8i16] } LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) ++/* 21664*/ /*Scope*/ 15, /*->21680*/ ++/* 21665*/ OPC_CheckChild0Integer, 67|128,36/*4675*/, ++/* 21668*/ OPC_RecordChild1, // #0 = $vj ++/* 21669*/ OPC_RecordChild2, // #1 = $vk ++/* 21670*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21672*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VHSUBW_W_H), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4675:{ *:[iPTR] }, LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VHSUBW_W_H:{ *:[v4i32] } LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) ++/* 21680*/ /*Scope*/ 15, /*->21696*/ ++/* 21681*/ OPC_CheckChild0Integer, 61|128,36/*4669*/, ++/* 21684*/ OPC_RecordChild1, // #0 = $vj ++/* 21685*/ OPC_RecordChild2, // #1 = $vk ++/* 21686*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21688*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VHSUBW_D_W), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4669:{ *:[iPTR] }, LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VHSUBW_D_W:{ *:[v2i64] } LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) ++/* 21696*/ /*Scope*/ 15, /*->21712*/ ++/* 21697*/ OPC_CheckChild0Integer, 56|128,36/*4664*/, ++/* 21700*/ OPC_RecordChild1, // #0 = $vj ++/* 21701*/ OPC_RecordChild2, // #1 = $vk ++/* 21702*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21704*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VHADDW_HU_BU), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4664:{ *:[iPTR] }, LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) - Complexity = 8 ++ // Dst: (VHADDW_HU_BU:{ *:[v8i16] } LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) ++/* 21712*/ /*Scope*/ 15, /*->21728*/ ++/* 21713*/ OPC_CheckChild0Integer, 60|128,36/*4668*/, ++/* 21716*/ OPC_RecordChild1, // #0 = $vj ++/* 21717*/ OPC_RecordChild2, // #1 = $vk ++/* 21718*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21720*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VHADDW_WU_HU), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4668:{ *:[iPTR] }, LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VHADDW_WU_HU:{ *:[v4i32] } LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) ++/* 21728*/ /*Scope*/ 15, /*->21744*/ ++/* 21729*/ OPC_CheckChild0Integer, 54|128,36/*4662*/, ++/* 21732*/ OPC_RecordChild1, // #0 = $vj ++/* 21733*/ OPC_RecordChild2, // #1 = $vk ++/* 21734*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21736*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VHADDW_DU_WU), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4662:{ *:[iPTR] }, LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VHADDW_DU_WU:{ *:[v2i64] } LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) ++/* 21744*/ /*Scope*/ 15, /*->21760*/ ++/* 21745*/ OPC_CheckChild0Integer, 64|128,36/*4672*/, ++/* 21748*/ OPC_RecordChild1, // #0 = $vj ++/* 21749*/ OPC_RecordChild2, // #1 = $vk ++/* 21750*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21752*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VHSUBW_HU_BU), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4672:{ *:[iPTR] }, LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) - Complexity = 8 ++ // Dst: (VHSUBW_HU_BU:{ *:[v8i16] } LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) ++/* 21760*/ /*Scope*/ 15, /*->21776*/ ++/* 21761*/ OPC_CheckChild0Integer, 68|128,36/*4676*/, ++/* 21764*/ OPC_RecordChild1, // #0 = $vj ++/* 21765*/ OPC_RecordChild2, // #1 = $vk ++/* 21766*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21768*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VHSUBW_WU_HU), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4676:{ *:[iPTR] }, LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VHSUBW_WU_HU:{ *:[v4i32] } LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) ++/* 21776*/ /*Scope*/ 15, /*->21792*/ ++/* 21777*/ OPC_CheckChild0Integer, 62|128,36/*4670*/, ++/* 21780*/ OPC_RecordChild1, // #0 = $vj ++/* 21781*/ OPC_RecordChild2, // #1 = $vk ++/* 21782*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21784*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VHSUBW_DU_WU), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4670:{ *:[iPTR] }, LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VHSUBW_DU_WU:{ *:[v2i64] } LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) ++/* 21792*/ /*Scope*/ 15, /*->21808*/ ++/* 21793*/ OPC_CheckChild0Integer, 66|128,34/*4418*/, ++/* 21796*/ OPC_RecordChild1, // #0 = $vj ++/* 21797*/ OPC_RecordChild2, // #1 = $vk ++/* 21798*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21800*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VADDA_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4418:{ *:[iPTR] }, LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) - Complexity = 8 ++ // Dst: (VADDA_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) ++/* 21808*/ /*Scope*/ 15, /*->21824*/ ++/* 21809*/ OPC_CheckChild0Integer, 68|128,34/*4420*/, ++/* 21812*/ OPC_RecordChild1, // #0 = $vj ++/* 21813*/ OPC_RecordChild2, // #1 = $vk ++/* 21814*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21816*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VADDA_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4420:{ *:[iPTR] }, LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VADDA_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) ++/* 21824*/ /*Scope*/ 15, /*->21840*/ ++/* 21825*/ OPC_CheckChild0Integer, 69|128,34/*4421*/, ++/* 21828*/ OPC_RecordChild1, // #0 = $vj ++/* 21829*/ OPC_RecordChild2, // #1 = $vk ++/* 21830*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21832*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VADDA_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4421:{ *:[iPTR] }, LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VADDA_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) ++/* 21840*/ /*Scope*/ 15, /*->21856*/ ++/* 21841*/ OPC_CheckChild0Integer, 67|128,34/*4419*/, ++/* 21844*/ OPC_RecordChild1, // #0 = $vj ++/* 21845*/ OPC_RecordChild2, // #1 = $vk ++/* 21846*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21848*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VADDA_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4419:{ *:[iPTR] }, LSX128D:{ *:[v2i64] }:$vj, LSX128D:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VADDA_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vj, LSX128D:{ *:[v2i64] }:$vk) ++/* 21856*/ /*Scope*/ 15, /*->21872*/ ++/* 21857*/ OPC_CheckChild0Integer, 53|128,34/*4405*/, ++/* 21860*/ OPC_RecordChild1, // #0 = $vj ++/* 21861*/ OPC_RecordChild2, // #1 = $vk ++/* 21862*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21864*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VABSD_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4405:{ *:[iPTR] }, LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) - Complexity = 8 ++ // Dst: (VABSD_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) ++/* 21872*/ /*Scope*/ 15, /*->21888*/ ++/* 21873*/ OPC_CheckChild0Integer, 57|128,34/*4409*/, ++/* 21876*/ OPC_RecordChild1, // #0 = $vj ++/* 21877*/ OPC_RecordChild2, // #1 = $vk ++/* 21878*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21880*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VABSD_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4409:{ *:[iPTR] }, LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VABSD_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) ++/* 21888*/ /*Scope*/ 15, /*->21904*/ ++/* 21889*/ OPC_CheckChild0Integer, 59|128,34/*4411*/, ++/* 21892*/ OPC_RecordChild1, // #0 = $vj ++/* 21893*/ OPC_RecordChild2, // #1 = $vk ++/* 21894*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21896*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VABSD_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4411:{ *:[iPTR] }, LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VABSD_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) ++/* 21904*/ /*Scope*/ 15, /*->21920*/ ++/* 21905*/ OPC_CheckChild0Integer, 55|128,34/*4407*/, ++/* 21908*/ OPC_RecordChild1, // #0 = $vj ++/* 21909*/ OPC_RecordChild2, // #1 = $vk ++/* 21910*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21912*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VABSD_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4407:{ *:[iPTR] }, LSX128D:{ *:[v2i64] }:$vj, LSX128D:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VABSD_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vj, LSX128D:{ *:[v2i64] }:$vk) ++/* 21920*/ /*Scope*/ 15, /*->21936*/ ++/* 21921*/ OPC_CheckChild0Integer, 54|128,34/*4406*/, ++/* 21924*/ OPC_RecordChild1, // #0 = $vj ++/* 21925*/ OPC_RecordChild2, // #1 = $vk ++/* 21926*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21928*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VABSD_BU), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4406:{ *:[iPTR] }, LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) - Complexity = 8 ++ // Dst: (VABSD_BU:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) ++/* 21936*/ /*Scope*/ 15, /*->21952*/ ++/* 21937*/ OPC_CheckChild0Integer, 58|128,34/*4410*/, ++/* 21940*/ OPC_RecordChild1, // #0 = $vj ++/* 21941*/ OPC_RecordChild2, // #1 = $vk ++/* 21942*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21944*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VABSD_HU), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4410:{ *:[iPTR] }, LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VABSD_HU:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) ++/* 21952*/ /*Scope*/ 15, /*->21968*/ ++/* 21953*/ OPC_CheckChild0Integer, 60|128,34/*4412*/, ++/* 21956*/ OPC_RecordChild1, // #0 = $vj ++/* 21957*/ OPC_RecordChild2, // #1 = $vk ++/* 21958*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21960*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VABSD_WU), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4412:{ *:[iPTR] }, LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VABSD_WU:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) ++/* 21968*/ /*Scope*/ 15, /*->21984*/ ++/* 21969*/ OPC_CheckChild0Integer, 56|128,34/*4408*/, ++/* 21972*/ OPC_RecordChild1, // #0 = $vj ++/* 21973*/ OPC_RecordChild2, // #1 = $vk ++/* 21974*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21976*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VABSD_DU), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4408:{ *:[iPTR] }, LSX128D:{ *:[v2i64] }:$vj, LSX128D:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VABSD_DU:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vj, LSX128D:{ *:[v2i64] }:$vk) ++/* 21984*/ /*Scope*/ 15, /*->22000*/ ++/* 21985*/ OPC_CheckChild0Integer, 101|128,34/*4453*/, ++/* 21988*/ OPC_RecordChild1, // #0 = $vj ++/* 21989*/ OPC_RecordChild2, // #1 = $vk ++/* 21990*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 21992*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4453:{ *:[iPTR] }, LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) - Complexity = 8 ++ // Dst: (VAVG_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) ++/* 22000*/ /*Scope*/ 15, /*->22016*/ ++/* 22001*/ OPC_CheckChild0Integer, 105|128,34/*4457*/, ++/* 22004*/ OPC_RecordChild1, // #0 = $vj ++/* 22005*/ OPC_RecordChild2, // #1 = $vk ++/* 22006*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22008*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4457:{ *:[iPTR] }, LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VAVG_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) ++/* 22016*/ /*Scope*/ 15, /*->22032*/ ++/* 22017*/ OPC_CheckChild0Integer, 107|128,34/*4459*/, ++/* 22020*/ OPC_RecordChild1, // #0 = $vj ++/* 22021*/ OPC_RecordChild2, // #1 = $vk ++/* 22022*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22024*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4459:{ *:[iPTR] }, LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VAVG_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) ++/* 22032*/ /*Scope*/ 15, /*->22048*/ ++/* 22033*/ OPC_CheckChild0Integer, 103|128,34/*4455*/, ++/* 22036*/ OPC_RecordChild1, // #0 = $vj ++/* 22037*/ OPC_RecordChild2, // #1 = $vk ++/* 22038*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22040*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4455:{ *:[iPTR] }, LSX128D:{ *:[v2i64] }:$vj, LSX128D:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VAVG_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vj, LSX128D:{ *:[v2i64] }:$vk) ++/* 22048*/ /*Scope*/ 15, /*->22064*/ ++/* 22049*/ OPC_CheckChild0Integer, 102|128,34/*4454*/, ++/* 22052*/ OPC_RecordChild1, // #0 = $vj ++/* 22053*/ OPC_RecordChild2, // #1 = $vk ++/* 22054*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22056*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_BU), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4454:{ *:[iPTR] }, LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) - Complexity = 8 ++ // Dst: (VAVG_BU:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) ++/* 22064*/ /*Scope*/ 15, /*->22080*/ ++/* 22065*/ OPC_CheckChild0Integer, 106|128,34/*4458*/, ++/* 22068*/ OPC_RecordChild1, // #0 = $vj ++/* 22069*/ OPC_RecordChild2, // #1 = $vk ++/* 22070*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22072*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_HU), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4458:{ *:[iPTR] }, LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VAVG_HU:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) ++/* 22080*/ /*Scope*/ 15, /*->22096*/ ++/* 22081*/ OPC_CheckChild0Integer, 108|128,34/*4460*/, ++/* 22084*/ OPC_RecordChild1, // #0 = $vj ++/* 22085*/ OPC_RecordChild2, // #1 = $vk ++/* 22086*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22088*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_WU), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4460:{ *:[iPTR] }, LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VAVG_WU:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) ++/* 22096*/ /*Scope*/ 15, /*->22112*/ ++/* 22097*/ OPC_CheckChild0Integer, 104|128,34/*4456*/, ++/* 22100*/ OPC_RecordChild1, // #0 = $vj ++/* 22101*/ OPC_RecordChild2, // #1 = $vk ++/* 22102*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22104*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_DU), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4456:{ *:[iPTR] }, LSX128D:{ *:[v2i64] }:$vj, LSX128D:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VAVG_DU:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vj, LSX128D:{ *:[v2i64] }:$vk) ++/* 22112*/ /*Scope*/ 15, /*->22128*/ ++/* 22113*/ OPC_CheckChild0Integer, 109|128,34/*4461*/, ++/* 22116*/ OPC_RecordChild1, // #0 = $vj ++/* 22117*/ OPC_RecordChild2, // #1 = $vk ++/* 22118*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22120*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4461:{ *:[iPTR] }, LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) - Complexity = 8 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) ++/* 22128*/ /*Scope*/ 15, /*->22144*/ ++/* 22129*/ OPC_CheckChild0Integer, 113|128,34/*4465*/, ++/* 22132*/ OPC_RecordChild1, // #0 = $vj ++/* 22133*/ OPC_RecordChild2, // #1 = $vk ++/* 22134*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22136*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4465:{ *:[iPTR] }, LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) ++/* 22144*/ /*Scope*/ 15, /*->22160*/ ++/* 22145*/ OPC_CheckChild0Integer, 115|128,34/*4467*/, ++/* 22148*/ OPC_RecordChild1, // #0 = $vj ++/* 22149*/ OPC_RecordChild2, // #1 = $vk ++/* 22150*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22152*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4467:{ *:[iPTR] }, LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) ++/* 22160*/ /*Scope*/ 15, /*->22176*/ ++/* 22161*/ OPC_CheckChild0Integer, 111|128,34/*4463*/, ++/* 22164*/ OPC_RecordChild1, // #0 = $vj ++/* 22165*/ OPC_RecordChild2, // #1 = $vk ++/* 22166*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22168*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4463:{ *:[iPTR] }, LSX128D:{ *:[v2i64] }:$vj, LSX128D:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vj, LSX128D:{ *:[v2i64] }:$vk) ++/* 22176*/ /*Scope*/ 15, /*->22192*/ ++/* 22177*/ OPC_CheckChild0Integer, 110|128,34/*4462*/, ++/* 22180*/ OPC_RecordChild1, // #0 = $vj ++/* 22181*/ OPC_RecordChild2, // #1 = $vk ++/* 22182*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22184*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_BU), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4462:{ *:[iPTR] }, LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) - Complexity = 8 ++ // Dst: (VAVGR_BU:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) ++/* 22192*/ /*Scope*/ 15, /*->22208*/ ++/* 22193*/ OPC_CheckChild0Integer, 114|128,34/*4466*/, ++/* 22196*/ OPC_RecordChild1, // #0 = $vj ++/* 22197*/ OPC_RecordChild2, // #1 = $vk ++/* 22198*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22200*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_HU), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4466:{ *:[iPTR] }, LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VAVGR_HU:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) ++/* 22208*/ /*Scope*/ 15, /*->22224*/ ++/* 22209*/ OPC_CheckChild0Integer, 116|128,34/*4468*/, ++/* 22212*/ OPC_RecordChild1, // #0 = $vj ++/* 22213*/ OPC_RecordChild2, // #1 = $vk ++/* 22214*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22216*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_WU), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4468:{ *:[iPTR] }, LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VAVGR_WU:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) ++/* 22224*/ /*Scope*/ 15, /*->22240*/ ++/* 22225*/ OPC_CheckChild0Integer, 112|128,34/*4464*/, ++/* 22228*/ OPC_RecordChild1, // #0 = $vj ++/* 22229*/ OPC_RecordChild2, // #1 = $vk ++/* 22230*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22232*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_DU), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4464:{ *:[iPTR] }, LSX128D:{ *:[v2i64] }:$vj, LSX128D:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VAVGR_DU:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vj, LSX128D:{ *:[v2i64] }:$vk) ++/* 22240*/ /*Scope*/ 15, /*->22256*/ ++/* 22241*/ OPC_CheckChild0Integer, 3|128,39/*4995*/, ++/* 22244*/ OPC_RecordChild1, // #0 = $vj ++/* 22245*/ OPC_RecordChild2, // #1 = $vk ++/* 22246*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22248*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRLR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4995:{ *:[iPTR] }, LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) - Complexity = 8 ++ // Dst: (VSRLR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) ++/* 22256*/ /*Scope*/ 15, /*->22272*/ ++/* 22257*/ OPC_CheckChild0Integer, 5|128,39/*4997*/, ++/* 22260*/ OPC_RecordChild1, // #0 = $vj ++/* 22261*/ OPC_RecordChild2, // #1 = $vk ++/* 22262*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22264*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRLR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4997:{ *:[iPTR] }, LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VSRLR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) ++/* 22272*/ /*Scope*/ 15, /*->22288*/ ++/* 22273*/ OPC_CheckChild0Integer, 6|128,39/*4998*/, ++/* 22276*/ OPC_RecordChild1, // #0 = $vj ++/* 22277*/ OPC_RecordChild2, // #1 = $vk ++/* 22278*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22280*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRLR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4998:{ *:[iPTR] }, LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VSRLR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) ++/* 22288*/ /*Scope*/ 15, /*->22304*/ ++/* 22289*/ OPC_CheckChild0Integer, 4|128,39/*4996*/, ++/* 22292*/ OPC_RecordChild1, // #0 = $vj ++/* 22293*/ OPC_RecordChild2, // #1 = $vk ++/* 22294*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22296*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRLR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4996:{ *:[iPTR] }, LSX128D:{ *:[v2i64] }:$vj, LSX128D:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VSRLR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vj, LSX128D:{ *:[v2i64] }:$vk) ++/* 22304*/ /*Scope*/ 15, /*->22320*/ ++/* 22305*/ OPC_CheckChild0Integer, 101|128,38/*4965*/, ++/* 22308*/ OPC_RecordChild1, // #0 = $vj ++/* 22309*/ OPC_RecordChild2, // #1 = $vk ++/* 22310*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22312*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRAR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4965:{ *:[iPTR] }, LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) - Complexity = 8 ++ // Dst: (VSRAR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) ++/* 22320*/ /*Scope*/ 15, /*->22336*/ ++/* 22321*/ OPC_CheckChild0Integer, 103|128,38/*4967*/, ++/* 22324*/ OPC_RecordChild1, // #0 = $vj ++/* 22325*/ OPC_RecordChild2, // #1 = $vk ++/* 22326*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22328*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRAR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4967:{ *:[iPTR] }, LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VSRAR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) ++/* 22336*/ /*Scope*/ 15, /*->22352*/ ++/* 22337*/ OPC_CheckChild0Integer, 104|128,38/*4968*/, ++/* 22340*/ OPC_RecordChild1, // #0 = $vj ++/* 22341*/ OPC_RecordChild2, // #1 = $vk ++/* 22342*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22344*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRAR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4968:{ *:[iPTR] }, LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VSRAR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) ++/* 22352*/ /*Scope*/ 15, /*->22368*/ ++/* 22353*/ OPC_CheckChild0Integer, 102|128,38/*4966*/, ++/* 22356*/ OPC_RecordChild1, // #0 = $vj ++/* 22357*/ OPC_RecordChild2, // #1 = $vk ++/* 22358*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22360*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRAR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4966:{ *:[iPTR] }, LSX128D:{ *:[v2i64] }:$vj, LSX128D:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VSRAR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vj, LSX128D:{ *:[v2i64] }:$vk) ++/* 22368*/ /*Scope*/ 15, /*->22384*/ ++/* 22369*/ OPC_CheckChild0Integer, 7|128,35/*4487*/, ++/* 22372*/ OPC_RecordChild1, // #0 = $vj ++/* 22373*/ OPC_RecordChild2, // #1 = $vk ++/* 22374*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22376*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITSET_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4487:{ *:[iPTR] }, LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) - Complexity = 8 ++ // Dst: (VBITSET_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) ++/* 22384*/ /*Scope*/ 15, /*->22400*/ ++/* 22385*/ OPC_CheckChild0Integer, 9|128,35/*4489*/, ++/* 22388*/ OPC_RecordChild1, // #0 = $vj ++/* 22389*/ OPC_RecordChild2, // #1 = $vk ++/* 22390*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22392*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITSET_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4489:{ *:[iPTR] }, LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VBITSET_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) ++/* 22400*/ /*Scope*/ 15, /*->22416*/ ++/* 22401*/ OPC_CheckChild0Integer, 10|128,35/*4490*/, ++/* 22404*/ OPC_RecordChild1, // #0 = $vj ++/* 22405*/ OPC_RecordChild2, // #1 = $vk ++/* 22406*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22408*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITSET_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4490:{ *:[iPTR] }, LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VBITSET_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) ++/* 22416*/ /*Scope*/ 15, /*->22432*/ ++/* 22417*/ OPC_CheckChild0Integer, 8|128,35/*4488*/, ++/* 22420*/ OPC_RecordChild1, // #0 = $vj ++/* 22421*/ OPC_RecordChild2, // #1 = $vk ++/* 22422*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22424*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITSET_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4488:{ *:[iPTR] }, LSX128D:{ *:[v2i64] }:$vj, LSX128D:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VBITSET_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vj, LSX128D:{ *:[v2i64] }:$vk) ++/* 22432*/ /*Scope*/ 15, /*->22448*/ ++/* 22433*/ OPC_CheckChild0Integer, 125|128,34/*4477*/, ++/* 22436*/ OPC_RecordChild1, // #0 = $vj ++/* 22437*/ OPC_RecordChild2, // #1 = $vk ++/* 22438*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22440*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITREV_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4477:{ *:[iPTR] }, LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) - Complexity = 8 ++ // Dst: (VBITREV_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) ++/* 22448*/ /*Scope*/ 15, /*->22464*/ ++/* 22449*/ OPC_CheckChild0Integer, 127|128,34/*4479*/, ++/* 22452*/ OPC_RecordChild1, // #0 = $vj ++/* 22453*/ OPC_RecordChild2, // #1 = $vk ++/* 22454*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22456*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITREV_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4479:{ *:[iPTR] }, LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VBITREV_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) ++/* 22464*/ /*Scope*/ 15, /*->22480*/ ++/* 22465*/ OPC_CheckChild0Integer, 0|128,35/*4480*/, ++/* 22468*/ OPC_RecordChild1, // #0 = $vj ++/* 22469*/ OPC_RecordChild2, // #1 = $vk ++/* 22470*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22472*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITREV_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4480:{ *:[iPTR] }, LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) - Complexity = 8 ++ // Dst: (VBITREV_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) ++/* 22480*/ /*Scope*/ 15, /*->22496*/ ++/* 22481*/ OPC_CheckChild0Integer, 126|128,34/*4478*/, ++/* 22484*/ OPC_RecordChild1, // #0 = $vj ++/* 22485*/ OPC_RecordChild2, // #1 = $vk ++/* 22486*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22488*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITREV_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4478:{ *:[iPTR] }, LSX128D:{ *:[v2i64] }:$vj, LSX128D:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VBITREV_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vj, LSX128D:{ *:[v2i64] }:$vk) ++/* 22496*/ /*Scope*/ 13, /*->22510*/ ++/* 22497*/ OPC_CheckChild0Integer, 17|128,35/*4497*/, ++/* 22500*/ OPC_RecordChild1, // #0 = $vj ++/* 22501*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22503*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VCLO_B), 0, ++ MVT::v16i8, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4497:{ *:[iPTR] }, LSX128B:{ *:[v16i8] }:$vj) - Complexity = 8 ++ // Dst: (VCLO_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$vj) ++/* 22510*/ /*Scope*/ 13, /*->22524*/ ++/* 22511*/ OPC_CheckChild0Integer, 19|128,35/*4499*/, ++/* 22514*/ OPC_RecordChild1, // #0 = $vj ++/* 22515*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22517*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VCLO_H), 0, ++ MVT::v8i16, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4499:{ *:[iPTR] }, LSX128H:{ *:[v8i16] }:$vj) - Complexity = 8 ++ // Dst: (VCLO_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vj) ++/* 22524*/ /*Scope*/ 13, /*->22538*/ ++/* 22525*/ OPC_CheckChild0Integer, 20|128,35/*4500*/, ++/* 22528*/ OPC_RecordChild1, // #0 = $vj ++/* 22529*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22531*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VCLO_W), 0, ++ MVT::v4i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4500:{ *:[iPTR] }, LSX128W:{ *:[v4i32] }:$vj) - Complexity = 8 ++ // Dst: (VCLO_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vj) ++/* 22538*/ /*Scope*/ 13, /*->22552*/ ++/* 22539*/ OPC_CheckChild0Integer, 18|128,35/*4498*/, ++/* 22542*/ OPC_RecordChild1, // #0 = $vj ++/* 22543*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22545*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VCLO_D), 0, ++ MVT::v2i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4498:{ *:[iPTR] }, LSX128D:{ *:[v2i64] }:$vj) - Complexity = 8 ++ // Dst: (VCLO_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vj) ++/* 22552*/ /*Scope*/ 13, /*->22566*/ ++/* 22553*/ OPC_CheckChild0Integer, 50|128,35/*4530*/, ++/* 22556*/ OPC_RecordChild1, // #0 = $vj ++/* 22557*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22559*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCLASS_S), 0, ++ MVT::v4i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4530:{ *:[iPTR] }, LSX128W:{ *:[v4f32] }:$vj) - Complexity = 8 ++ // Dst: (VFCLASS_S:{ *:[v4i32] } LSX128W:{ *:[v4f32] }:$vj) ++/* 22566*/ /*Scope*/ 13, /*->22580*/ ++/* 22567*/ OPC_CheckChild0Integer, 49|128,35/*4529*/, ++/* 22570*/ OPC_RecordChild1, // #0 = $vj ++/* 22571*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22573*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCLASS_D), 0, ++ MVT::v2i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4529:{ *:[iPTR] }, LSX128D:{ *:[v2f64] }:$vj) - Complexity = 8 ++ // Dst: (VFCLASS_D:{ *:[v2i64] } LSX128D:{ *:[v2f64] }:$vj) ++/* 22580*/ /*Scope*/ 13, /*->22594*/ ++/* 22581*/ OPC_CheckChild0Integer, 27|128,36/*4635*/, ++/* 22584*/ OPC_RecordChild1, // #0 = $vj ++/* 22585*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22587*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFTINT_W_S), 0, ++ MVT::v4i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4635:{ *:[iPTR] }, LSX128W:{ *:[v4f32] }:$vj) - Complexity = 8 ++ // Dst: (VFTINT_W_S:{ *:[v4i32] } LSX128W:{ *:[v4f32] }:$vj) ++/* 22594*/ /*Scope*/ 13, /*->22608*/ ++/* 22595*/ OPC_CheckChild0Integer, 24|128,36/*4632*/, ++/* 22598*/ OPC_RecordChild1, // #0 = $vj ++/* 22599*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22601*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFTINT_L_D), 0, ++ MVT::v2i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4632:{ *:[iPTR] }, LSX128D:{ *:[v2f64] }:$vj) - Complexity = 8 ++ // Dst: (VFTINT_L_D:{ *:[v2i64] } LSX128D:{ *:[v2f64] }:$vj) ++/* 22608*/ /*Scope*/ 13, /*->22622*/ ++/* 22609*/ OPC_CheckChild0Integer, 28|128,36/*4636*/, ++/* 22612*/ OPC_RecordChild1, // #0 = $vj ++/* 22613*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22615*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFTINT_WU_S), 0, ++ MVT::v4i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4636:{ *:[iPTR] }, LSX128W:{ *:[v4f32] }:$vj) - Complexity = 8 ++ // Dst: (VFTINT_WU_S:{ *:[v4i32] } LSX128W:{ *:[v4f32] }:$vj) ++/* 22622*/ /*Scope*/ 13, /*->22636*/ ++/* 22623*/ OPC_CheckChild0Integer, 25|128,36/*4633*/, ++/* 22626*/ OPC_RecordChild1, // #0 = $vj ++/* 22627*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22629*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFTINT_LU_D), 0, ++ MVT::v2i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4633:{ *:[iPTR] }, LSX128D:{ *:[v2f64] }:$vj) - Complexity = 8 ++ // Dst: (VFTINT_LU_D:{ *:[v2i64] } LSX128D:{ *:[v2f64] }:$vj) ++/* 22636*/ /*Scope*/ 13, /*->22650*/ ++/* 22637*/ OPC_CheckChild0Integer, 112|128,37/*4848*/, ++/* 22640*/ OPC_RecordChild1, // #0 = $rj ++/* 22641*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22643*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VREPLGR2VR_B), 0, ++ MVT::v16i8, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4848:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rj) - Complexity = 8 ++ // Dst: (VREPLGR2VR_B:{ *:[v16i8] } GPR32Opnd:{ *:[i32] }:$rj) ++/* 22650*/ /*Scope*/ 13, /*->22664*/ ++/* 22651*/ OPC_CheckChild0Integer, 114|128,37/*4850*/, ++/* 22654*/ OPC_RecordChild1, // #0 = $rj ++/* 22655*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22657*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VREPLGR2VR_H), 0, ++ MVT::v8i16, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4850:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rj) - Complexity = 8 ++ // Dst: (VREPLGR2VR_H:{ *:[v8i16] } GPR32Opnd:{ *:[i32] }:$rj) ++/* 22664*/ /*Scope*/ 13, /*->22678*/ ++/* 22665*/ OPC_CheckChild0Integer, 115|128,37/*4851*/, ++/* 22668*/ OPC_RecordChild1, // #0 = $rj ++/* 22669*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22671*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VREPLGR2VR_W), 0, ++ MVT::v4i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4851:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rj) - Complexity = 8 ++ // Dst: (VREPLGR2VR_W:{ *:[v4i32] } GPR32Opnd:{ *:[i32] }:$rj) ++/* 22678*/ /*Scope*/ 13, /*->22692*/ ++/* 22679*/ OPC_CheckChild0Integer, 113|128,37/*4849*/, ++/* 22682*/ OPC_RecordChild1, // #0 = $rj ++/* 22683*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22685*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VREPLGR2VR_D), 0, ++ MVT::v2i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4849:{ *:[iPTR] }, GPR64Opnd:{ *:[i64] }:$rj) - Complexity = 8 ++ // Dst: (VREPLGR2VR_D:{ *:[v2i64] } GPR64Opnd:{ *:[i64] }:$rj) ++/* 22692*/ /*Scope*/ 13, /*->22706*/ ++/* 22693*/ OPC_CheckChild0Integer, 29|128,37/*4765*/, ++/* 22696*/ OPC_RecordChild1, // #0 = $vj ++/* 22697*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22699*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMSKLTZ_B), 0, ++ MVT::v16i8, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4765:{ *:[iPTR] }, LSX128B:{ *:[v16i8] }:$vj) - Complexity = 8 ++ // Dst: (VMSKLTZ_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$vj) ++/* 22706*/ /*Scope*/ 13, /*->22720*/ ++/* 22707*/ OPC_CheckChild0Integer, 31|128,37/*4767*/, ++/* 22710*/ OPC_RecordChild1, // #0 = $vj ++/* 22711*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22713*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMSKLTZ_H), 0, ++ MVT::v8i16, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4767:{ *:[iPTR] }, LSX128H:{ *:[v8i16] }:$vj) - Complexity = 8 ++ // Dst: (VMSKLTZ_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vj) ++/* 22720*/ /*Scope*/ 13, /*->22734*/ ++/* 22721*/ OPC_CheckChild0Integer, 32|128,37/*4768*/, ++/* 22724*/ OPC_RecordChild1, // #0 = $vj ++/* 22725*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22727*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMSKLTZ_W), 0, ++ MVT::v4i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4768:{ *:[iPTR] }, LSX128W:{ *:[v4i32] }:$vj) - Complexity = 8 ++ // Dst: (VMSKLTZ_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vj) ++/* 22734*/ /*Scope*/ 13, /*->22748*/ ++/* 22735*/ OPC_CheckChild0Integer, 30|128,37/*4766*/, ++/* 22738*/ OPC_RecordChild1, // #0 = $vj ++/* 22739*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22741*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMSKLTZ_D), 0, ++ MVT::v2i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4766:{ *:[iPTR] }, LSX128D:{ *:[v2i64] }:$vj) - Complexity = 8 ++ // Dst: (VMSKLTZ_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vj) ++/* 22748*/ /*Scope*/ 17, /*->22766*/ ++/* 22749*/ OPC_CheckChild0Integer, 28|128,38/*4892*/, ++/* 22752*/ OPC_RecordChild1, // #0 = $vj ++/* 22753*/ OPC_RecordChild2, // #1 = $vk ++/* 22754*/ OPC_RecordChild3, // #2 = $va ++/* 22755*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22757*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSHUF_B), 0, ++ MVT::v16i8, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4892:{ *:[iPTR] }, LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk, LSX128B:{ *:[v16i8] }:$va) - Complexity = 8 ++ // Dst: (VSHUF_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk, LSX128B:{ *:[v16i8] }:$va) ++/* 22766*/ /*Scope*/ 15, /*->22782*/ ++/* 22767*/ OPC_CheckChild0Integer, 54|128,35/*4534*/, ++/* 22770*/ OPC_RecordChild1, // #0 = $vj ++/* 22771*/ OPC_RecordChild2, // #1 = $vk ++/* 22772*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22774*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_CEQ_S), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4534:{ *:[iPTR] }, LSX128W:{ *:[v4f32] }:$vj, LSX128W:{ *:[v4f32] }:$vk) - Complexity = 8 ++ // Dst: (VFCMP_CEQ_S:{ *:[v4i32] } LSX128W:{ *:[v4f32] }:$vj, LSX128W:{ *:[v4f32] }:$vk) ++/* 22782*/ /*Scope*/ 15, /*->22798*/ ++/* 22783*/ OPC_CheckChild0Integer, 53|128,35/*4533*/, ++/* 22786*/ OPC_RecordChild1, // #0 = $vj ++/* 22787*/ OPC_RecordChild2, // #1 = $vk ++/* 22788*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22790*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_CEQ_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4533:{ *:[iPTR] }, LSX128D:{ *:[v2f64] }:$vj, LSX128D:{ *:[v2f64] }:$vk) - Complexity = 8 ++ // Dst: (VFCMP_CEQ_D:{ *:[v2i64] } LSX128D:{ *:[v2f64] }:$vj, LSX128D:{ *:[v2f64] }:$vk) ++/* 22798*/ /*Scope*/ 15, /*->22814*/ ++/* 22799*/ OPC_CheckChild0Integer, 62|128,35/*4542*/, ++/* 22802*/ OPC_RecordChild1, // #0 = $vj ++/* 22803*/ OPC_RecordChild2, // #1 = $vk ++/* 22804*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22806*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_COR_S), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4542:{ *:[iPTR] }, LSX128W:{ *:[v4f32] }:$vj, LSX128W:{ *:[v4f32] }:$vk) - Complexity = 8 ++ // Dst: (VFCMP_COR_S:{ *:[v4i32] } LSX128W:{ *:[v4f32] }:$vj, LSX128W:{ *:[v4f32] }:$vk) ++/* 22814*/ /*Scope*/ 15, /*->22830*/ ++/* 22815*/ OPC_CheckChild0Integer, 61|128,35/*4541*/, ++/* 22818*/ OPC_RecordChild1, // #0 = $vj ++/* 22819*/ OPC_RecordChild2, // #1 = $vk ++/* 22820*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22822*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_COR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4541:{ *:[iPTR] }, LSX128D:{ *:[v2f64] }:$vj, LSX128D:{ *:[v2f64] }:$vk) - Complexity = 8 ++ // Dst: (VFCMP_COR_D:{ *:[v2i64] } LSX128D:{ *:[v2f64] }:$vj, LSX128D:{ *:[v2f64] }:$vk) ++/* 22830*/ /*Scope*/ 15, /*->22846*/ ++/* 22831*/ OPC_CheckChild0Integer, 70|128,35/*4550*/, ++/* 22834*/ OPC_RecordChild1, // #0 = $vj ++/* 22835*/ OPC_RecordChild2, // #1 = $vk ++/* 22836*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22838*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_CUN_S), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4550:{ *:[iPTR] }, LSX128W:{ *:[v4f32] }:$vj, LSX128W:{ *:[v4f32] }:$vk) - Complexity = 8 ++ // Dst: (VFCMP_CUN_S:{ *:[v4i32] } LSX128W:{ *:[v4f32] }:$vj, LSX128W:{ *:[v4f32] }:$vk) ++/* 22846*/ /*Scope*/ 15, /*->22862*/ ++/* 22847*/ OPC_CheckChild0Integer, 69|128,35/*4549*/, ++/* 22850*/ OPC_RecordChild1, // #0 = $vj ++/* 22851*/ OPC_RecordChild2, // #1 = $vk ++/* 22852*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22854*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_CUN_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4549:{ *:[iPTR] }, LSX128D:{ *:[v2f64] }:$vj, LSX128D:{ *:[v2f64] }:$vk) - Complexity = 8 ++ // Dst: (VFCMP_CUN_D:{ *:[v2i64] } LSX128D:{ *:[v2f64] }:$vj, LSX128D:{ *:[v2f64] }:$vk) ++/* 22862*/ /*Scope*/ 15, /*->22878*/ ++/* 22863*/ OPC_CheckChild0Integer, 72|128,35/*4552*/, ++/* 22866*/ OPC_RecordChild1, // #0 = $vj ++/* 22867*/ OPC_RecordChild2, // #1 = $vk ++/* 22868*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22870*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_CUNE_S), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4552:{ *:[iPTR] }, LSX128W:{ *:[v4f32] }:$vj, LSX128W:{ *:[v4f32] }:$vk) - Complexity = 8 ++ // Dst: (VFCMP_CUNE_S:{ *:[v4i32] } LSX128W:{ *:[v4f32] }:$vj, LSX128W:{ *:[v4f32] }:$vk) ++/* 22878*/ /*Scope*/ 15, /*->22894*/ ++/* 22879*/ OPC_CheckChild0Integer, 71|128,35/*4551*/, ++/* 22882*/ OPC_RecordChild1, // #0 = $vj ++/* 22883*/ OPC_RecordChild2, // #1 = $vk ++/* 22884*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22886*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_CUNE_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4551:{ *:[iPTR] }, LSX128D:{ *:[v2f64] }:$vj, LSX128D:{ *:[v2f64] }:$vk) - Complexity = 8 ++ // Dst: (VFCMP_CUNE_D:{ *:[v2i64] } LSX128D:{ *:[v2f64] }:$vj, LSX128D:{ *:[v2f64] }:$vk) ++/* 22894*/ /*Scope*/ 15, /*->22910*/ ++/* 22895*/ OPC_CheckChild0Integer, 64|128,35/*4544*/, ++/* 22898*/ OPC_RecordChild1, // #0 = $vj ++/* 22899*/ OPC_RecordChild2, // #1 = $vk ++/* 22900*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22902*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_CUEQ_S), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4544:{ *:[iPTR] }, LSX128W:{ *:[v4f32] }:$vj, LSX128W:{ *:[v4f32] }:$vk) - Complexity = 8 ++ // Dst: (VFCMP_CUEQ_S:{ *:[v4i32] } LSX128W:{ *:[v4f32] }:$vj, LSX128W:{ *:[v4f32] }:$vk) ++/* 22910*/ /*Scope*/ 15, /*->22926*/ ++/* 22911*/ OPC_CheckChild0Integer, 63|128,35/*4543*/, ++/* 22914*/ OPC_RecordChild1, // #0 = $vj ++/* 22915*/ OPC_RecordChild2, // #1 = $vk ++/* 22916*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22918*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_CUEQ_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4543:{ *:[iPTR] }, LSX128D:{ *:[v2f64] }:$vj, LSX128D:{ *:[v2f64] }:$vk) - Complexity = 8 ++ // Dst: (VFCMP_CUEQ_D:{ *:[v2i64] } LSX128D:{ *:[v2f64] }:$vj, LSX128D:{ *:[v2f64] }:$vk) ++/* 22926*/ /*Scope*/ 15, /*->22942*/ ++/* 22927*/ OPC_CheckChild0Integer, 60|128,35/*4540*/, ++/* 22930*/ OPC_RecordChild1, // #0 = $vj ++/* 22931*/ OPC_RecordChild2, // #1 = $vk ++/* 22932*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22934*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_CNE_S), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4540:{ *:[iPTR] }, LSX128W:{ *:[v4f32] }:$vj, LSX128W:{ *:[v4f32] }:$vk) - Complexity = 8 ++ // Dst: (VFCMP_CNE_S:{ *:[v4i32] } LSX128W:{ *:[v4f32] }:$vj, LSX128W:{ *:[v4f32] }:$vk) ++/* 22942*/ /*Scope*/ 15, /*->22958*/ ++/* 22943*/ OPC_CheckChild0Integer, 59|128,35/*4539*/, ++/* 22946*/ OPC_RecordChild1, // #0 = $vj ++/* 22947*/ OPC_RecordChild2, // #1 = $vk ++/* 22948*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22950*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_CNE_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4539:{ *:[iPTR] }, LSX128D:{ *:[v2f64] }:$vj, LSX128D:{ *:[v2f64] }:$vk) - Complexity = 8 ++ // Dst: (VFCMP_CNE_D:{ *:[v2i64] } LSX128D:{ *:[v2f64] }:$vj, LSX128D:{ *:[v2f64] }:$vk) ++/* 22958*/ /*Scope*/ 15, /*->22974*/ ++/* 22959*/ OPC_CheckChild0Integer, 58|128,35/*4538*/, ++/* 22962*/ OPC_RecordChild1, // #0 = $vj ++/* 22963*/ OPC_RecordChild2, // #1 = $vk ++/* 22964*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22966*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_CLT_S), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4538:{ *:[iPTR] }, LSX128W:{ *:[v4f32] }:$vj, LSX128W:{ *:[v4f32] }:$vk) - Complexity = 8 ++ // Dst: (VFCMP_CLT_S:{ *:[v4i32] } LSX128W:{ *:[v4f32] }:$vj, LSX128W:{ *:[v4f32] }:$vk) ++/* 22974*/ /*Scope*/ 15, /*->22990*/ ++/* 22975*/ OPC_CheckChild0Integer, 57|128,35/*4537*/, ++/* 22978*/ OPC_RecordChild1, // #0 = $vj ++/* 22979*/ OPC_RecordChild2, // #1 = $vk ++/* 22980*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22982*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_CLT_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4537:{ *:[iPTR] }, LSX128D:{ *:[v2f64] }:$vj, LSX128D:{ *:[v2f64] }:$vk) - Complexity = 8 ++ // Dst: (VFCMP_CLT_D:{ *:[v2i64] } LSX128D:{ *:[v2f64] }:$vj, LSX128D:{ *:[v2f64] }:$vk) ++/* 22990*/ /*Scope*/ 15, /*->23006*/ ++/* 22991*/ OPC_CheckChild0Integer, 68|128,35/*4548*/, ++/* 22994*/ OPC_RecordChild1, // #0 = $vj ++/* 22995*/ OPC_RecordChild2, // #1 = $vk ++/* 22996*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 22998*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_CULT_S), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4548:{ *:[iPTR] }, LSX128W:{ *:[v4f32] }:$vj, LSX128W:{ *:[v4f32] }:$vk) - Complexity = 8 ++ // Dst: (VFCMP_CULT_S:{ *:[v4i32] } LSX128W:{ *:[v4f32] }:$vj, LSX128W:{ *:[v4f32] }:$vk) ++/* 23006*/ /*Scope*/ 15, /*->23022*/ ++/* 23007*/ OPC_CheckChild0Integer, 67|128,35/*4547*/, ++/* 23010*/ OPC_RecordChild1, // #0 = $vj ++/* 23011*/ OPC_RecordChild2, // #1 = $vk ++/* 23012*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 23014*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_CULT_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4547:{ *:[iPTR] }, LSX128D:{ *:[v2f64] }:$vj, LSX128D:{ *:[v2f64] }:$vk) - Complexity = 8 ++ // Dst: (VFCMP_CULT_D:{ *:[v2i64] } LSX128D:{ *:[v2f64] }:$vj, LSX128D:{ *:[v2f64] }:$vk) ++/* 23022*/ /*Scope*/ 15, /*->23038*/ ++/* 23023*/ OPC_CheckChild0Integer, 56|128,35/*4536*/, ++/* 23026*/ OPC_RecordChild1, // #0 = $vj ++/* 23027*/ OPC_RecordChild2, // #1 = $vk ++/* 23028*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 23030*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_CLE_S), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4536:{ *:[iPTR] }, LSX128W:{ *:[v4f32] }:$vj, LSX128W:{ *:[v4f32] }:$vk) - Complexity = 8 ++ // Dst: (VFCMP_CLE_S:{ *:[v4i32] } LSX128W:{ *:[v4f32] }:$vj, LSX128W:{ *:[v4f32] }:$vk) ++/* 23038*/ /*Scope*/ 15, /*->23054*/ ++/* 23039*/ OPC_CheckChild0Integer, 55|128,35/*4535*/, ++/* 23042*/ OPC_RecordChild1, // #0 = $vj ++/* 23043*/ OPC_RecordChild2, // #1 = $vk ++/* 23044*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 23046*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_CLE_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4535:{ *:[iPTR] }, LSX128D:{ *:[v2f64] }:$vj, LSX128D:{ *:[v2f64] }:$vk) - Complexity = 8 ++ // Dst: (VFCMP_CLE_D:{ *:[v2i64] } LSX128D:{ *:[v2f64] }:$vj, LSX128D:{ *:[v2f64] }:$vk) ++/* 23054*/ /*Scope*/ 15, /*->23070*/ ++/* 23055*/ OPC_CheckChild0Integer, 66|128,35/*4546*/, ++/* 23058*/ OPC_RecordChild1, // #0 = $vj ++/* 23059*/ OPC_RecordChild2, // #1 = $vk ++/* 23060*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 23062*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_CULE_S), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4546:{ *:[iPTR] }, LSX128W:{ *:[v4f32] }:$vj, LSX128W:{ *:[v4f32] }:$vk) - Complexity = 8 ++ // Dst: (VFCMP_CULE_S:{ *:[v4i32] } LSX128W:{ *:[v4f32] }:$vj, LSX128W:{ *:[v4f32] }:$vk) ++/* 23070*/ /*Scope*/ 15, /*->23086*/ ++/* 23071*/ OPC_CheckChild0Integer, 65|128,35/*4545*/, ++/* 23074*/ OPC_RecordChild1, // #0 = $vj ++/* 23075*/ OPC_RecordChild2, // #1 = $vk ++/* 23076*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 23078*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCMP_CULE_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4545:{ *:[iPTR] }, LSX128D:{ *:[v2f64] }:$vj, LSX128D:{ *:[v2f64] }:$vk) - Complexity = 8 ++ // Dst: (VFCMP_CULE_D:{ *:[v2i64] } LSX128D:{ *:[v2f64] }:$vj, LSX128D:{ *:[v2f64] }:$vk) ++/* 23086*/ /*Scope*/ 13, /*->23100*/ ++/* 23087*/ OPC_CheckChild0Integer, 49|128,36/*4657*/, ++/* 23090*/ OPC_RecordChild1, // #0 = $vj ++/* 23091*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 23093*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFTINTRZ_W_S), 0, ++ MVT::v4i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4657:{ *:[iPTR] }, LSX128W:{ *:[v4f32] }:$vj) - Complexity = 8 ++ // Dst: (VFTINTRZ_W_S:{ *:[v4i32] } LSX128W:{ *:[v4f32] }:$vj) ++/* 23100*/ /*Scope*/ 13, /*->23114*/ ++/* 23101*/ OPC_CheckChild0Integer, 46|128,36/*4654*/, ++/* 23104*/ OPC_RecordChild1, // #0 = $vj ++/* 23105*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 23107*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFTINTRZ_L_D), 0, ++ MVT::v2i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4654:{ *:[iPTR] }, LSX128D:{ *:[v2f64] }:$vj) - Complexity = 8 ++ // Dst: (VFTINTRZ_L_D:{ *:[v2i64] } LSX128D:{ *:[v2f64] }:$vj) ++/* 23114*/ /*Scope*/ 13, /*->23128*/ ++/* 23115*/ OPC_CheckChild0Integer, 102|128,29/*3814*/, ++/* 23118*/ OPC_RecordChild1, // #0 = $xj ++/* 23119*/ OPC_RecordChild2, // #1 = $xk ++/* 23120*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_CAF_S), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3814:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk) - Complexity = 8 ++ // Dst: (XVFCMP_CAF_S:{ *:[v8i32] } LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk) ++/* 23128*/ /*Scope*/ 13, /*->23142*/ ++/* 23129*/ OPC_CheckChild0Integer, 101|128,29/*3813*/, ++/* 23132*/ OPC_RecordChild1, // #0 = $xj ++/* 23133*/ OPC_RecordChild2, // #1 = $xk ++/* 23134*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_CAF_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3813:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) - Complexity = 8 ++ // Dst: (XVFCMP_CAF_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) ++/* 23142*/ /*Scope*/ 13, /*->23156*/ ++/* 23143*/ OPC_CheckChild0Integer, 124|128,29/*3836*/, ++/* 23146*/ OPC_RecordChild1, // #0 = $xj ++/* 23147*/ OPC_RecordChild2, // #1 = $xk ++/* 23148*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_SAF_S), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3836:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk) - Complexity = 8 ++ // Dst: (XVFCMP_SAF_S:{ *:[v8i32] } LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk) ++/* 23156*/ /*Scope*/ 13, /*->23170*/ ++/* 23157*/ OPC_CheckChild0Integer, 123|128,29/*3835*/, ++/* 23160*/ OPC_RecordChild1, // #0 = $xj ++/* 23161*/ OPC_RecordChild2, // #1 = $xk ++/* 23162*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_SAF_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3835:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) - Complexity = 8 ++ // Dst: (XVFCMP_SAF_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) ++/* 23170*/ /*Scope*/ 13, /*->23184*/ ++/* 23171*/ OPC_CheckChild0Integer, 6|128,30/*3846*/, ++/* 23174*/ OPC_RecordChild1, // #0 = $xj ++/* 23175*/ OPC_RecordChild2, // #1 = $xk ++/* 23176*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_SOR_S), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3846:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk) - Complexity = 8 ++ // Dst: (XVFCMP_SOR_S:{ *:[v8i32] } LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk) ++/* 23184*/ /*Scope*/ 13, /*->23198*/ ++/* 23185*/ OPC_CheckChild0Integer, 5|128,30/*3845*/, ++/* 23188*/ OPC_RecordChild1, // #0 = $xj ++/* 23189*/ OPC_RecordChild2, // #1 = $xk ++/* 23190*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_SOR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3845:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) - Complexity = 8 ++ // Dst: (XVFCMP_SOR_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) ++/* 23198*/ /*Scope*/ 13, /*->23212*/ ++/* 23199*/ OPC_CheckChild0Integer, 14|128,30/*3854*/, ++/* 23202*/ OPC_RecordChild1, // #0 = $xj ++/* 23203*/ OPC_RecordChild2, // #1 = $xk ++/* 23204*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_SUN_S), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3854:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk) - Complexity = 8 ++ // Dst: (XVFCMP_SUN_S:{ *:[v8i32] } LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk) ++/* 23212*/ /*Scope*/ 13, /*->23226*/ ++/* 23213*/ OPC_CheckChild0Integer, 13|128,30/*3853*/, ++/* 23216*/ OPC_RecordChild1, // #0 = $xj ++/* 23217*/ OPC_RecordChild2, // #1 = $xk ++/* 23218*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_SUN_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3853:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) - Complexity = 8 ++ // Dst: (XVFCMP_SUN_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) ++/* 23226*/ /*Scope*/ 13, /*->23240*/ ++/* 23227*/ OPC_CheckChild0Integer, 16|128,30/*3856*/, ++/* 23230*/ OPC_RecordChild1, // #0 = $xj ++/* 23231*/ OPC_RecordChild2, // #1 = $xk ++/* 23232*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_SUNE_S), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3856:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk) - Complexity = 8 ++ // Dst: (XVFCMP_SUNE_S:{ *:[v8i32] } LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk) ++/* 23240*/ /*Scope*/ 13, /*->23254*/ ++/* 23241*/ OPC_CheckChild0Integer, 15|128,30/*3855*/, ++/* 23244*/ OPC_RecordChild1, // #0 = $xj ++/* 23245*/ OPC_RecordChild2, // #1 = $xk ++/* 23246*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_SUNE_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3855:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) - Complexity = 8 ++ // Dst: (XVFCMP_SUNE_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) ++/* 23254*/ /*Scope*/ 13, /*->23268*/ ++/* 23255*/ OPC_CheckChild0Integer, 8|128,30/*3848*/, ++/* 23258*/ OPC_RecordChild1, // #0 = $xj ++/* 23259*/ OPC_RecordChild2, // #1 = $xk ++/* 23260*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_SUEQ_S), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3848:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk) - Complexity = 8 ++ // Dst: (XVFCMP_SUEQ_S:{ *:[v8i32] } LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk) ++/* 23268*/ /*Scope*/ 13, /*->23282*/ ++/* 23269*/ OPC_CheckChild0Integer, 7|128,30/*3847*/, ++/* 23272*/ OPC_RecordChild1, // #0 = $xj ++/* 23273*/ OPC_RecordChild2, // #1 = $xk ++/* 23274*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_SUEQ_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3847:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) - Complexity = 8 ++ // Dst: (XVFCMP_SUEQ_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) ++/* 23282*/ /*Scope*/ 13, /*->23296*/ ++/* 23283*/ OPC_CheckChild0Integer, 126|128,29/*3838*/, ++/* 23286*/ OPC_RecordChild1, // #0 = $xj ++/* 23287*/ OPC_RecordChild2, // #1 = $xk ++/* 23288*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_SEQ_S), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3838:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk) - Complexity = 8 ++ // Dst: (XVFCMP_SEQ_S:{ *:[v8i32] } LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk) ++/* 23296*/ /*Scope*/ 13, /*->23310*/ ++/* 23297*/ OPC_CheckChild0Integer, 125|128,29/*3837*/, ++/* 23300*/ OPC_RecordChild1, // #0 = $xj ++/* 23301*/ OPC_RecordChild2, // #1 = $xk ++/* 23302*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_SEQ_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3837:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) - Complexity = 8 ++ // Dst: (XVFCMP_SEQ_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) ++/* 23310*/ /*Scope*/ 13, /*->23324*/ ++/* 23311*/ OPC_CheckChild0Integer, 4|128,30/*3844*/, ++/* 23314*/ OPC_RecordChild1, // #0 = $xj ++/* 23315*/ OPC_RecordChild2, // #1 = $xk ++/* 23316*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_SNE_S), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3844:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk) - Complexity = 8 ++ // Dst: (XVFCMP_SNE_S:{ *:[v8i32] } LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk) ++/* 23324*/ /*Scope*/ 13, /*->23338*/ ++/* 23325*/ OPC_CheckChild0Integer, 3|128,30/*3843*/, ++/* 23328*/ OPC_RecordChild1, // #0 = $xj ++/* 23329*/ OPC_RecordChild2, // #1 = $xk ++/* 23330*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_SNE_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3843:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) - Complexity = 8 ++ // Dst: (XVFCMP_SNE_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) ++/* 23338*/ /*Scope*/ 13, /*->23352*/ ++/* 23339*/ OPC_CheckChild0Integer, 2|128,30/*3842*/, ++/* 23342*/ OPC_RecordChild1, // #0 = $xj ++/* 23343*/ OPC_RecordChild2, // #1 = $xk ++/* 23344*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_SLT_S), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3842:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk) - Complexity = 8 ++ // Dst: (XVFCMP_SLT_S:{ *:[v8i32] } LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk) ++/* 23352*/ /*Scope*/ 13, /*->23366*/ ++/* 23353*/ OPC_CheckChild0Integer, 1|128,30/*3841*/, ++/* 23356*/ OPC_RecordChild1, // #0 = $xj ++/* 23357*/ OPC_RecordChild2, // #1 = $xk ++/* 23358*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_SLT_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3841:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) - Complexity = 8 ++ // Dst: (XVFCMP_SLT_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) ++/* 23366*/ /*Scope*/ 13, /*->23380*/ ++/* 23367*/ OPC_CheckChild0Integer, 12|128,30/*3852*/, ++/* 23370*/ OPC_RecordChild1, // #0 = $xj ++/* 23371*/ OPC_RecordChild2, // #1 = $xk ++/* 23372*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_SULT_S), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3852:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk) - Complexity = 8 ++ // Dst: (XVFCMP_SULT_S:{ *:[v8i32] } LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk) ++/* 23380*/ /*Scope*/ 13, /*->23394*/ ++/* 23381*/ OPC_CheckChild0Integer, 11|128,30/*3851*/, ++/* 23384*/ OPC_RecordChild1, // #0 = $xj ++/* 23385*/ OPC_RecordChild2, // #1 = $xk ++/* 23386*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_SULT_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3851:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) - Complexity = 8 ++ // Dst: (XVFCMP_SULT_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) ++/* 23394*/ /*Scope*/ 13, /*->23408*/ ++/* 23395*/ OPC_CheckChild0Integer, 0|128,30/*3840*/, ++/* 23398*/ OPC_RecordChild1, // #0 = $xj ++/* 23399*/ OPC_RecordChild2, // #1 = $xk ++/* 23400*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_SLE_S), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3840:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk) - Complexity = 8 ++ // Dst: (XVFCMP_SLE_S:{ *:[v8i32] } LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk) ++/* 23408*/ /*Scope*/ 13, /*->23422*/ ++/* 23409*/ OPC_CheckChild0Integer, 127|128,29/*3839*/, ++/* 23412*/ OPC_RecordChild1, // #0 = $xj ++/* 23413*/ OPC_RecordChild2, // #1 = $xk ++/* 23414*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_SLE_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3839:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) - Complexity = 8 ++ // Dst: (XVFCMP_SLE_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) ++/* 23422*/ /*Scope*/ 13, /*->23436*/ ++/* 23423*/ OPC_CheckChild0Integer, 10|128,30/*3850*/, ++/* 23426*/ OPC_RecordChild1, // #0 = $xj ++/* 23427*/ OPC_RecordChild2, // #1 = $xk ++/* 23428*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_SULE_S), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3850:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk) - Complexity = 8 ++ // Dst: (XVFCMP_SULE_S:{ *:[v8i32] } LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk) ++/* 23436*/ /*Scope*/ 13, /*->23450*/ ++/* 23437*/ OPC_CheckChild0Integer, 9|128,30/*3849*/, ++/* 23440*/ OPC_RecordChild1, // #0 = $xj ++/* 23441*/ OPC_RecordChild2, // #1 = $xk ++/* 23442*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_SULE_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3849:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) - Complexity = 8 ++ // Dst: (XVFCMP_SULE_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) ++/* 23450*/ /*Scope*/ 15, /*->23466*/ ++/* 23451*/ OPC_CheckChild0Integer, 55|128,29/*3767*/, ++/* 23454*/ OPC_RecordChild1, // #0 = $xj ++/* 23455*/ OPC_RecordChild2, // #1 = $xk ++/* 23456*/ OPC_RecordChild3, // #2 = $xa ++/* 23457*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITSEL_V), 0, ++ MVT::v32i8, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 3767:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk, LASX256BOpnd:{ *:[v32i8] }:$xa) - Complexity = 8 ++ // Dst: (XVBITSEL_V:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk, LASX256BOpnd:{ *:[v32i8] }:$xa) ++/* 23466*/ /*Scope*/ 15, /*->23482*/ ++/* 23467*/ OPC_CheckChild0Integer, 84|128,32/*4180*/, ++/* 23470*/ OPC_RecordChild1, // #0 = $xj ++/* 23471*/ OPC_RecordChild2, // #1 = $xk ++/* 23472*/ OPC_RecordChild3, // #2 = $xa ++/* 23473*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSHUF_B), 0, ++ MVT::v32i8, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4180:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk, LASX256BOpnd:{ *:[v32i8] }:$xa) - Complexity = 8 ++ // Dst: (XVSHUF_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk, LASX256BOpnd:{ *:[v32i8] }:$xa) ++/* 23482*/ /*Scope*/ 13, /*->23496*/ ++/* 23483*/ OPC_CheckChild0Integer, 127|128,28/*3711*/, ++/* 23486*/ OPC_RecordChild1, // #0 = $xj ++/* 23487*/ OPC_RecordChild2, // #1 = $xk ++/* 23488*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVADDWEV_H_B), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 3711:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVADDWEV_H_B:{ *:[v16i16] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 23496*/ /*Scope*/ 13, /*->23510*/ ++/* 23497*/ OPC_CheckChild0Integer, 5|128,29/*3717*/, ++/* 23500*/ OPC_RecordChild1, // #0 = $xj ++/* 23501*/ OPC_RecordChild2, // #1 = $xk ++/* 23502*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVADDWEV_W_H), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3717:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVADDWEV_W_H:{ *:[v8i32] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 23510*/ /*Scope*/ 13, /*->23524*/ ++/* 23511*/ OPC_CheckChild0Integer, 124|128,28/*3708*/, ++/* 23514*/ OPC_RecordChild1, // #0 = $xj ++/* 23515*/ OPC_RecordChild2, // #1 = $xk ++/* 23516*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVADDWEV_D_W), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3708:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVADDWEV_D_W:{ *:[v4i64] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 23524*/ /*Scope*/ 13, /*->23538*/ ++/* 23525*/ OPC_CheckChild0Integer, 2|128,29/*3714*/, ++/* 23528*/ OPC_RecordChild1, // #0 = $xj ++/* 23529*/ OPC_RecordChild2, // #1 = $xk ++/* 23530*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVADDWEV_Q_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3714:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVADDWEV_Q_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 23538*/ /*Scope*/ 13, /*->23552*/ ++/* 23539*/ OPC_CheckChild0Integer, 27|128,34/*4379*/, ++/* 23542*/ OPC_RecordChild1, // #0 = $xj ++/* 23543*/ OPC_RecordChild2, // #1 = $xk ++/* 23544*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSUBWEV_H_B), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4379:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVSUBWEV_H_B:{ *:[v16i16] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 23552*/ /*Scope*/ 13, /*->23566*/ ++/* 23553*/ OPC_CheckChild0Integer, 31|128,34/*4383*/, ++/* 23556*/ OPC_RecordChild1, // #0 = $xj ++/* 23557*/ OPC_RecordChild2, // #1 = $xk ++/* 23558*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSUBWEV_W_H), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4383:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVSUBWEV_W_H:{ *:[v8i32] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 23566*/ /*Scope*/ 13, /*->23580*/ ++/* 23567*/ OPC_CheckChild0Integer, 25|128,34/*4377*/, ++/* 23570*/ OPC_RecordChild1, // #0 = $xj ++/* 23571*/ OPC_RecordChild2, // #1 = $xk ++/* 23572*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSUBWEV_D_W), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4377:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVSUBWEV_D_W:{ *:[v4i64] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 23580*/ /*Scope*/ 13, /*->23594*/ ++/* 23581*/ OPC_CheckChild0Integer, 29|128,34/*4381*/, ++/* 23584*/ OPC_RecordChild1, // #0 = $xj ++/* 23585*/ OPC_RecordChild2, // #1 = $xk ++/* 23586*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSUBWEV_Q_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4381:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVSUBWEV_Q_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 23594*/ /*Scope*/ 13, /*->23608*/ ++/* 23595*/ OPC_CheckChild0Integer, 11|128,29/*3723*/, ++/* 23598*/ OPC_RecordChild1, // #0 = $xj ++/* 23599*/ OPC_RecordChild2, // #1 = $xk ++/* 23600*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVADDWOD_H_B), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 3723:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVADDWOD_H_B:{ *:[v16i16] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 23608*/ /*Scope*/ 13, /*->23622*/ ++/* 23609*/ OPC_CheckChild0Integer, 17|128,29/*3729*/, ++/* 23612*/ OPC_RecordChild1, // #0 = $xj ++/* 23613*/ OPC_RecordChild2, // #1 = $xk ++/* 23614*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVADDWOD_W_H), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3729:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVADDWOD_W_H:{ *:[v8i32] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 23622*/ /*Scope*/ 13, /*->23636*/ ++/* 23623*/ OPC_CheckChild0Integer, 8|128,29/*3720*/, ++/* 23626*/ OPC_RecordChild1, // #0 = $xj ++/* 23627*/ OPC_RecordChild2, // #1 = $xk ++/* 23628*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVADDWOD_D_W), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3720:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVADDWOD_D_W:{ *:[v4i64] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 23636*/ /*Scope*/ 13, /*->23650*/ ++/* 23637*/ OPC_CheckChild0Integer, 14|128,29/*3726*/, ++/* 23640*/ OPC_RecordChild1, // #0 = $xj ++/* 23641*/ OPC_RecordChild2, // #1 = $xk ++/* 23642*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVADDWOD_Q_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3726:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVADDWOD_Q_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 23650*/ /*Scope*/ 13, /*->23664*/ ++/* 23651*/ OPC_CheckChild0Integer, 35|128,34/*4387*/, ++/* 23654*/ OPC_RecordChild1, // #0 = $xj ++/* 23655*/ OPC_RecordChild2, // #1 = $xk ++/* 23656*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSUBWOD_H_B), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4387:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVSUBWOD_H_B:{ *:[v16i16] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 23664*/ /*Scope*/ 13, /*->23678*/ ++/* 23665*/ OPC_CheckChild0Integer, 39|128,34/*4391*/, ++/* 23668*/ OPC_RecordChild1, // #0 = $xj ++/* 23669*/ OPC_RecordChild2, // #1 = $xk ++/* 23670*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSUBWOD_W_H), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4391:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVSUBWOD_W_H:{ *:[v8i32] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 23678*/ /*Scope*/ 13, /*->23692*/ ++/* 23679*/ OPC_CheckChild0Integer, 33|128,34/*4385*/, ++/* 23682*/ OPC_RecordChild1, // #0 = $xj ++/* 23683*/ OPC_RecordChild2, // #1 = $xk ++/* 23684*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSUBWOD_D_W), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4385:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVSUBWOD_D_W:{ *:[v4i64] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 23692*/ /*Scope*/ 13, /*->23706*/ ++/* 23693*/ OPC_CheckChild0Integer, 37|128,34/*4389*/, ++/* 23696*/ OPC_RecordChild1, // #0 = $xj ++/* 23697*/ OPC_RecordChild2, // #1 = $xk ++/* 23698*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSUBWOD_Q_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4389:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVSUBWOD_Q_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 23706*/ /*Scope*/ 13, /*->23720*/ ++/* 23707*/ OPC_CheckChild0Integer, 0|128,29/*3712*/, ++/* 23710*/ OPC_RecordChild1, // #0 = $xj ++/* 23711*/ OPC_RecordChild2, // #1 = $xk ++/* 23712*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVADDWEV_H_BU), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 3712:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVADDWEV_H_BU:{ *:[v16i16] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 23720*/ /*Scope*/ 13, /*->23734*/ ++/* 23721*/ OPC_CheckChild0Integer, 6|128,29/*3718*/, ++/* 23724*/ OPC_RecordChild1, // #0 = $xj ++/* 23725*/ OPC_RecordChild2, // #1 = $xk ++/* 23726*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVADDWEV_W_HU), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3718:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVADDWEV_W_HU:{ *:[v8i32] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 23734*/ /*Scope*/ 13, /*->23748*/ ++/* 23735*/ OPC_CheckChild0Integer, 125|128,28/*3709*/, ++/* 23738*/ OPC_RecordChild1, // #0 = $xj ++/* 23739*/ OPC_RecordChild2, // #1 = $xk ++/* 23740*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVADDWEV_D_WU), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3709:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVADDWEV_D_WU:{ *:[v4i64] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 23748*/ /*Scope*/ 13, /*->23762*/ ++/* 23749*/ OPC_CheckChild0Integer, 3|128,29/*3715*/, ++/* 23752*/ OPC_RecordChild1, // #0 = $xj ++/* 23753*/ OPC_RecordChild2, // #1 = $xk ++/* 23754*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVADDWEV_Q_DU), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3715:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVADDWEV_Q_DU:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 23762*/ /*Scope*/ 13, /*->23776*/ ++/* 23763*/ OPC_CheckChild0Integer, 28|128,34/*4380*/, ++/* 23766*/ OPC_RecordChild1, // #0 = $xj ++/* 23767*/ OPC_RecordChild2, // #1 = $xk ++/* 23768*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSUBWEV_H_BU), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4380:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVSUBWEV_H_BU:{ *:[v16i16] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 23776*/ /*Scope*/ 13, /*->23790*/ ++/* 23777*/ OPC_CheckChild0Integer, 32|128,34/*4384*/, ++/* 23780*/ OPC_RecordChild1, // #0 = $xj ++/* 23781*/ OPC_RecordChild2, // #1 = $xk ++/* 23782*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSUBWEV_W_HU), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4384:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVSUBWEV_W_HU:{ *:[v8i32] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 23790*/ /*Scope*/ 13, /*->23804*/ ++/* 23791*/ OPC_CheckChild0Integer, 26|128,34/*4378*/, ++/* 23794*/ OPC_RecordChild1, // #0 = $xj ++/* 23795*/ OPC_RecordChild2, // #1 = $xk ++/* 23796*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSUBWEV_D_WU), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4378:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVSUBWEV_D_WU:{ *:[v4i64] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 23804*/ /*Scope*/ 13, /*->23818*/ ++/* 23805*/ OPC_CheckChild0Integer, 30|128,34/*4382*/, ++/* 23808*/ OPC_RecordChild1, // #0 = $xj ++/* 23809*/ OPC_RecordChild2, // #1 = $xk ++/* 23810*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSUBWEV_Q_DU), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4382:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVSUBWEV_Q_DU:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 23818*/ /*Scope*/ 13, /*->23832*/ ++/* 23819*/ OPC_CheckChild0Integer, 12|128,29/*3724*/, ++/* 23822*/ OPC_RecordChild1, // #0 = $xj ++/* 23823*/ OPC_RecordChild2, // #1 = $xk ++/* 23824*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVADDWOD_H_BU), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 3724:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVADDWOD_H_BU:{ *:[v16i16] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 23832*/ /*Scope*/ 13, /*->23846*/ ++/* 23833*/ OPC_CheckChild0Integer, 18|128,29/*3730*/, ++/* 23836*/ OPC_RecordChild1, // #0 = $xj ++/* 23837*/ OPC_RecordChild2, // #1 = $xk ++/* 23838*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVADDWOD_W_HU), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3730:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVADDWOD_W_HU:{ *:[v8i32] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 23846*/ /*Scope*/ 13, /*->23860*/ ++/* 23847*/ OPC_CheckChild0Integer, 9|128,29/*3721*/, ++/* 23850*/ OPC_RecordChild1, // #0 = $xj ++/* 23851*/ OPC_RecordChild2, // #1 = $xk ++/* 23852*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVADDWOD_D_WU), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3721:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVADDWOD_D_WU:{ *:[v4i64] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 23860*/ /*Scope*/ 13, /*->23874*/ ++/* 23861*/ OPC_CheckChild0Integer, 15|128,29/*3727*/, ++/* 23864*/ OPC_RecordChild1, // #0 = $xj ++/* 23865*/ OPC_RecordChild2, // #1 = $xk ++/* 23866*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVADDWOD_Q_DU), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3727:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVADDWOD_Q_DU:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 23874*/ /*Scope*/ 13, /*->23888*/ ++/* 23875*/ OPC_CheckChild0Integer, 36|128,34/*4388*/, ++/* 23878*/ OPC_RecordChild1, // #0 = $xj ++/* 23879*/ OPC_RecordChild2, // #1 = $xk ++/* 23880*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSUBWOD_H_BU), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4388:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVSUBWOD_H_BU:{ *:[v16i16] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 23888*/ /*Scope*/ 13, /*->23902*/ ++/* 23889*/ OPC_CheckChild0Integer, 40|128,34/*4392*/, ++/* 23892*/ OPC_RecordChild1, // #0 = $xj ++/* 23893*/ OPC_RecordChild2, // #1 = $xk ++/* 23894*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSUBWOD_W_HU), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4392:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVSUBWOD_W_HU:{ *:[v8i32] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 23902*/ /*Scope*/ 13, /*->23916*/ ++/* 23903*/ OPC_CheckChild0Integer, 34|128,34/*4386*/, ++/* 23906*/ OPC_RecordChild1, // #0 = $xj ++/* 23907*/ OPC_RecordChild2, // #1 = $xk ++/* 23908*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSUBWOD_D_WU), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4386:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVSUBWOD_D_WU:{ *:[v4i64] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 23916*/ /*Scope*/ 13, /*->23930*/ ++/* 23917*/ OPC_CheckChild0Integer, 38|128,34/*4390*/, ++/* 23920*/ OPC_RecordChild1, // #0 = $xj ++/* 23921*/ OPC_RecordChild2, // #1 = $xk ++/* 23922*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSUBWOD_Q_DU), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4390:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVSUBWOD_Q_DU:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 23930*/ /*Scope*/ 13, /*->23944*/ ++/* 23931*/ OPC_CheckChild0Integer, 1|128,29/*3713*/, ++/* 23934*/ OPC_RecordChild1, // #0 = $xj ++/* 23935*/ OPC_RecordChild2, // #1 = $xk ++/* 23936*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVADDWEV_H_BU_B), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 3713:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVADDWEV_H_BU_B:{ *:[v16i16] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 23944*/ /*Scope*/ 13, /*->23958*/ ++/* 23945*/ OPC_CheckChild0Integer, 7|128,29/*3719*/, ++/* 23948*/ OPC_RecordChild1, // #0 = $xj ++/* 23949*/ OPC_RecordChild2, // #1 = $xk ++/* 23950*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVADDWEV_W_HU_H), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3719:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVADDWEV_W_HU_H:{ *:[v8i32] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 23958*/ /*Scope*/ 13, /*->23972*/ ++/* 23959*/ OPC_CheckChild0Integer, 126|128,28/*3710*/, ++/* 23962*/ OPC_RecordChild1, // #0 = $xj ++/* 23963*/ OPC_RecordChild2, // #1 = $xk ++/* 23964*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVADDWEV_D_WU_W), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3710:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVADDWEV_D_WU_W:{ *:[v4i64] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 23972*/ /*Scope*/ 13, /*->23986*/ ++/* 23973*/ OPC_CheckChild0Integer, 4|128,29/*3716*/, ++/* 23976*/ OPC_RecordChild1, // #0 = $xj ++/* 23977*/ OPC_RecordChild2, // #1 = $xk ++/* 23978*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVADDWEV_Q_DU_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3716:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVADDWEV_Q_DU_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 23986*/ /*Scope*/ 13, /*->24000*/ ++/* 23987*/ OPC_CheckChild0Integer, 13|128,29/*3725*/, ++/* 23990*/ OPC_RecordChild1, // #0 = $xj ++/* 23991*/ OPC_RecordChild2, // #1 = $xk ++/* 23992*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVADDWOD_H_BU_B), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 3725:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVADDWOD_H_BU_B:{ *:[v16i16] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 24000*/ /*Scope*/ 13, /*->24014*/ ++/* 24001*/ OPC_CheckChild0Integer, 19|128,29/*3731*/, ++/* 24004*/ OPC_RecordChild1, // #0 = $xj ++/* 24005*/ OPC_RecordChild2, // #1 = $xk ++/* 24006*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVADDWOD_W_HU_H), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3731:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVADDWOD_W_HU_H:{ *:[v8i32] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 24014*/ /*Scope*/ 13, /*->24028*/ ++/* 24015*/ OPC_CheckChild0Integer, 10|128,29/*3722*/, ++/* 24018*/ OPC_RecordChild1, // #0 = $xj ++/* 24019*/ OPC_RecordChild2, // #1 = $xk ++/* 24020*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVADDWOD_D_WU_W), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3722:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVADDWOD_D_WU_W:{ *:[v4i64] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 24028*/ /*Scope*/ 13, /*->24042*/ ++/* 24029*/ OPC_CheckChild0Integer, 16|128,29/*3728*/, ++/* 24032*/ OPC_RecordChild1, // #0 = $xj ++/* 24033*/ OPC_RecordChild2, // #1 = $xk ++/* 24034*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVADDWOD_Q_DU_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3728:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVADDWOD_Q_DU_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 24042*/ /*Scope*/ 13, /*->24056*/ ++/* 24043*/ OPC_CheckChild0Integer, 105|128,30/*3945*/, ++/* 24046*/ OPC_RecordChild1, // #0 = $xj ++/* 24047*/ OPC_RecordChild2, // #1 = $xk ++/* 24048*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVHADDW_H_B), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 3945:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVHADDW_H_B:{ *:[v16i16] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 24056*/ /*Scope*/ 13, /*->24070*/ ++/* 24057*/ OPC_CheckChild0Integer, 109|128,30/*3949*/, ++/* 24060*/ OPC_RecordChild1, // #0 = $xj ++/* 24061*/ OPC_RecordChild2, // #1 = $xk ++/* 24062*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVHADDW_W_H), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3949:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVHADDW_W_H:{ *:[v8i32] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 24070*/ /*Scope*/ 13, /*->24084*/ ++/* 24071*/ OPC_CheckChild0Integer, 103|128,30/*3943*/, ++/* 24074*/ OPC_RecordChild1, // #0 = $xj ++/* 24075*/ OPC_RecordChild2, // #1 = $xk ++/* 24076*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVHADDW_D_W), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3943:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVHADDW_D_W:{ *:[v4i64] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 24084*/ /*Scope*/ 13, /*->24098*/ ++/* 24085*/ OPC_CheckChild0Integer, 107|128,30/*3947*/, ++/* 24088*/ OPC_RecordChild1, // #0 = $xj ++/* 24089*/ OPC_RecordChild2, // #1 = $xk ++/* 24090*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVHADDW_Q_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3947:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVHADDW_Q_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 24098*/ /*Scope*/ 13, /*->24112*/ ++/* 24099*/ OPC_CheckChild0Integer, 113|128,30/*3953*/, ++/* 24102*/ OPC_RecordChild1, // #0 = $xj ++/* 24103*/ OPC_RecordChild2, // #1 = $xk ++/* 24104*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVHSUBW_H_B), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 3953:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVHSUBW_H_B:{ *:[v16i16] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 24112*/ /*Scope*/ 13, /*->24126*/ ++/* 24113*/ OPC_CheckChild0Integer, 117|128,30/*3957*/, ++/* 24116*/ OPC_RecordChild1, // #0 = $xj ++/* 24117*/ OPC_RecordChild2, // #1 = $xk ++/* 24118*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVHSUBW_W_H), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3957:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVHSUBW_W_H:{ *:[v8i32] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 24126*/ /*Scope*/ 13, /*->24140*/ ++/* 24127*/ OPC_CheckChild0Integer, 111|128,30/*3951*/, ++/* 24130*/ OPC_RecordChild1, // #0 = $xj ++/* 24131*/ OPC_RecordChild2, // #1 = $xk ++/* 24132*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVHSUBW_D_W), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3951:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVHSUBW_D_W:{ *:[v4i64] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 24140*/ /*Scope*/ 13, /*->24154*/ ++/* 24141*/ OPC_CheckChild0Integer, 115|128,30/*3955*/, ++/* 24144*/ OPC_RecordChild1, // #0 = $xj ++/* 24145*/ OPC_RecordChild2, // #1 = $xk ++/* 24146*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVHSUBW_Q_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3955:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVHSUBW_Q_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 24154*/ /*Scope*/ 13, /*->24168*/ ++/* 24155*/ OPC_CheckChild0Integer, 106|128,30/*3946*/, ++/* 24158*/ OPC_RecordChild1, // #0 = $xj ++/* 24159*/ OPC_RecordChild2, // #1 = $xk ++/* 24160*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVHADDW_HU_BU), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 3946:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVHADDW_HU_BU:{ *:[v16i16] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 24168*/ /*Scope*/ 13, /*->24182*/ ++/* 24169*/ OPC_CheckChild0Integer, 110|128,30/*3950*/, ++/* 24172*/ OPC_RecordChild1, // #0 = $xj ++/* 24173*/ OPC_RecordChild2, // #1 = $xk ++/* 24174*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVHADDW_WU_HU), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3950:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVHADDW_WU_HU:{ *:[v8i32] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 24182*/ /*Scope*/ 13, /*->24196*/ ++/* 24183*/ OPC_CheckChild0Integer, 104|128,30/*3944*/, ++/* 24186*/ OPC_RecordChild1, // #0 = $xj ++/* 24187*/ OPC_RecordChild2, // #1 = $xk ++/* 24188*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVHADDW_DU_WU), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3944:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVHADDW_DU_WU:{ *:[v4i64] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 24196*/ /*Scope*/ 13, /*->24210*/ ++/* 24197*/ OPC_CheckChild0Integer, 108|128,30/*3948*/, ++/* 24200*/ OPC_RecordChild1, // #0 = $xj ++/* 24201*/ OPC_RecordChild2, // #1 = $xk ++/* 24202*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVHADDW_QU_DU), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3948:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVHADDW_QU_DU:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 24210*/ /*Scope*/ 13, /*->24224*/ ++/* 24211*/ OPC_CheckChild0Integer, 114|128,30/*3954*/, ++/* 24214*/ OPC_RecordChild1, // #0 = $xj ++/* 24215*/ OPC_RecordChild2, // #1 = $xk ++/* 24216*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVHSUBW_HU_BU), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 3954:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVHSUBW_HU_BU:{ *:[v16i16] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 24224*/ /*Scope*/ 13, /*->24238*/ ++/* 24225*/ OPC_CheckChild0Integer, 118|128,30/*3958*/, ++/* 24228*/ OPC_RecordChild1, // #0 = $xj ++/* 24229*/ OPC_RecordChild2, // #1 = $xk ++/* 24230*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVHSUBW_WU_HU), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3958:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVHSUBW_WU_HU:{ *:[v8i32] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 24238*/ /*Scope*/ 13, /*->24252*/ ++/* 24239*/ OPC_CheckChild0Integer, 112|128,30/*3952*/, ++/* 24242*/ OPC_RecordChild1, // #0 = $xj ++/* 24243*/ OPC_RecordChild2, // #1 = $xk ++/* 24244*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVHSUBW_DU_WU), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3952:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVHSUBW_DU_WU:{ *:[v4i64] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 24252*/ /*Scope*/ 13, /*->24266*/ ++/* 24253*/ OPC_CheckChild0Integer, 116|128,30/*3956*/, ++/* 24256*/ OPC_RecordChild1, // #0 = $xj ++/* 24257*/ OPC_RecordChild2, // #1 = $xk ++/* 24258*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVHSUBW_QU_DU), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3956:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVHSUBW_QU_DU:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 24266*/ /*Scope*/ 13, /*->24280*/ ++/* 24267*/ OPC_CheckChild0Integer, 116|128,28/*3700*/, ++/* 24270*/ OPC_RecordChild1, // #0 = $xj ++/* 24271*/ OPC_RecordChild2, // #1 = $xk ++/* 24272*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVADDA_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 3700:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVADDA_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 24280*/ /*Scope*/ 13, /*->24294*/ ++/* 24281*/ OPC_CheckChild0Integer, 118|128,28/*3702*/, ++/* 24284*/ OPC_RecordChild1, // #0 = $xj ++/* 24285*/ OPC_RecordChild2, // #1 = $xk ++/* 24286*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVADDA_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 3702:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVADDA_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 24294*/ /*Scope*/ 13, /*->24308*/ ++/* 24295*/ OPC_CheckChild0Integer, 119|128,28/*3703*/, ++/* 24298*/ OPC_RecordChild1, // #0 = $xj ++/* 24299*/ OPC_RecordChild2, // #1 = $xk ++/* 24300*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVADDA_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3703:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVADDA_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 24308*/ /*Scope*/ 13, /*->24322*/ ++/* 24309*/ OPC_CheckChild0Integer, 117|128,28/*3701*/, ++/* 24312*/ OPC_RecordChild1, // #0 = $xj ++/* 24313*/ OPC_RecordChild2, // #1 = $xk ++/* 24314*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVADDA_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3701:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVADDA_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 24322*/ /*Scope*/ 13, /*->24336*/ ++/* 24323*/ OPC_CheckChild0Integer, 103|128,28/*3687*/, ++/* 24326*/ OPC_RecordChild1, // #0 = $xj ++/* 24327*/ OPC_RecordChild2, // #1 = $xk ++/* 24328*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVABSD_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 3687:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVABSD_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 24336*/ /*Scope*/ 13, /*->24350*/ ++/* 24337*/ OPC_CheckChild0Integer, 107|128,28/*3691*/, ++/* 24340*/ OPC_RecordChild1, // #0 = $xj ++/* 24341*/ OPC_RecordChild2, // #1 = $xk ++/* 24342*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVABSD_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 3691:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVABSD_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 24350*/ /*Scope*/ 13, /*->24364*/ ++/* 24351*/ OPC_CheckChild0Integer, 109|128,28/*3693*/, ++/* 24354*/ OPC_RecordChild1, // #0 = $xj ++/* 24355*/ OPC_RecordChild2, // #1 = $xk ++/* 24356*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVABSD_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3693:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVABSD_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 24364*/ /*Scope*/ 13, /*->24378*/ ++/* 24365*/ OPC_CheckChild0Integer, 105|128,28/*3689*/, ++/* 24368*/ OPC_RecordChild1, // #0 = $xj ++/* 24369*/ OPC_RecordChild2, // #1 = $xk ++/* 24370*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVABSD_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3689:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVABSD_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 24378*/ /*Scope*/ 13, /*->24392*/ ++/* 24379*/ OPC_CheckChild0Integer, 104|128,28/*3688*/, ++/* 24382*/ OPC_RecordChild1, // #0 = $xj ++/* 24383*/ OPC_RecordChild2, // #1 = $xk ++/* 24384*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVABSD_BU), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 3688:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVABSD_BU:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 24392*/ /*Scope*/ 13, /*->24406*/ ++/* 24393*/ OPC_CheckChild0Integer, 108|128,28/*3692*/, ++/* 24396*/ OPC_RecordChild1, // #0 = $xj ++/* 24397*/ OPC_RecordChild2, // #1 = $xk ++/* 24398*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVABSD_HU), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 3692:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVABSD_HU:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 24406*/ /*Scope*/ 13, /*->24420*/ ++/* 24407*/ OPC_CheckChild0Integer, 110|128,28/*3694*/, ++/* 24410*/ OPC_RecordChild1, // #0 = $xj ++/* 24411*/ OPC_RecordChild2, // #1 = $xk ++/* 24412*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVABSD_WU), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3694:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVABSD_WU:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 24420*/ /*Scope*/ 13, /*->24434*/ ++/* 24421*/ OPC_CheckChild0Integer, 106|128,28/*3690*/, ++/* 24424*/ OPC_RecordChild1, // #0 = $xj ++/* 24425*/ OPC_RecordChild2, // #1 = $xk ++/* 24426*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVABSD_DU), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3690:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVABSD_DU:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 24434*/ /*Scope*/ 13, /*->24448*/ ++/* 24435*/ OPC_CheckChild0Integer, 23|128,29/*3735*/, ++/* 24438*/ OPC_RecordChild1, // #0 = $xj ++/* 24439*/ OPC_RecordChild2, // #1 = $xk ++/* 24440*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 3735:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVAVG_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 24448*/ /*Scope*/ 13, /*->24462*/ ++/* 24449*/ OPC_CheckChild0Integer, 27|128,29/*3739*/, ++/* 24452*/ OPC_RecordChild1, // #0 = $xj ++/* 24453*/ OPC_RecordChild2, // #1 = $xk ++/* 24454*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 3739:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVAVG_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 24462*/ /*Scope*/ 13, /*->24476*/ ++/* 24463*/ OPC_CheckChild0Integer, 29|128,29/*3741*/, ++/* 24466*/ OPC_RecordChild1, // #0 = $xj ++/* 24467*/ OPC_RecordChild2, // #1 = $xk ++/* 24468*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3741:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVAVG_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 24476*/ /*Scope*/ 13, /*->24490*/ ++/* 24477*/ OPC_CheckChild0Integer, 25|128,29/*3737*/, ++/* 24480*/ OPC_RecordChild1, // #0 = $xj ++/* 24481*/ OPC_RecordChild2, // #1 = $xk ++/* 24482*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3737:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVAVG_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 24490*/ /*Scope*/ 13, /*->24504*/ ++/* 24491*/ OPC_CheckChild0Integer, 24|128,29/*3736*/, ++/* 24494*/ OPC_RecordChild1, // #0 = $xj ++/* 24495*/ OPC_RecordChild2, // #1 = $xk ++/* 24496*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_BU), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 3736:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVAVG_BU:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 24504*/ /*Scope*/ 13, /*->24518*/ ++/* 24505*/ OPC_CheckChild0Integer, 28|128,29/*3740*/, ++/* 24508*/ OPC_RecordChild1, // #0 = $xj ++/* 24509*/ OPC_RecordChild2, // #1 = $xk ++/* 24510*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_HU), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 3740:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVAVG_HU:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 24518*/ /*Scope*/ 13, /*->24532*/ ++/* 24519*/ OPC_CheckChild0Integer, 30|128,29/*3742*/, ++/* 24522*/ OPC_RecordChild1, // #0 = $xj ++/* 24523*/ OPC_RecordChild2, // #1 = $xk ++/* 24524*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_WU), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3742:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVAVG_WU:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 24532*/ /*Scope*/ 13, /*->24546*/ ++/* 24533*/ OPC_CheckChild0Integer, 26|128,29/*3738*/, ++/* 24536*/ OPC_RecordChild1, // #0 = $xj ++/* 24537*/ OPC_RecordChild2, // #1 = $xk ++/* 24538*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_DU), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3738:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVAVG_DU:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 24546*/ /*Scope*/ 13, /*->24560*/ ++/* 24547*/ OPC_CheckChild0Integer, 31|128,29/*3743*/, ++/* 24550*/ OPC_RecordChild1, // #0 = $xj ++/* 24551*/ OPC_RecordChild2, // #1 = $xk ++/* 24552*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 3743:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 24560*/ /*Scope*/ 13, /*->24574*/ ++/* 24561*/ OPC_CheckChild0Integer, 35|128,29/*3747*/, ++/* 24564*/ OPC_RecordChild1, // #0 = $xj ++/* 24565*/ OPC_RecordChild2, // #1 = $xk ++/* 24566*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 3747:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 24574*/ /*Scope*/ 13, /*->24588*/ ++/* 24575*/ OPC_CheckChild0Integer, 37|128,29/*3749*/, ++/* 24578*/ OPC_RecordChild1, // #0 = $xj ++/* 24579*/ OPC_RecordChild2, // #1 = $xk ++/* 24580*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3749:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 24588*/ /*Scope*/ 13, /*->24602*/ ++/* 24589*/ OPC_CheckChild0Integer, 33|128,29/*3745*/, ++/* 24592*/ OPC_RecordChild1, // #0 = $xj ++/* 24593*/ OPC_RecordChild2, // #1 = $xk ++/* 24594*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3745:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 24602*/ /*Scope*/ 13, /*->24616*/ ++/* 24603*/ OPC_CheckChild0Integer, 32|128,29/*3744*/, ++/* 24606*/ OPC_RecordChild1, // #0 = $xj ++/* 24607*/ OPC_RecordChild2, // #1 = $xk ++/* 24608*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_BU), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 3744:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVAVGR_BU:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 24616*/ /*Scope*/ 13, /*->24630*/ ++/* 24617*/ OPC_CheckChild0Integer, 36|128,29/*3748*/, ++/* 24620*/ OPC_RecordChild1, // #0 = $xj ++/* 24621*/ OPC_RecordChild2, // #1 = $xk ++/* 24622*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_HU), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 3748:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVAVGR_HU:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 24630*/ /*Scope*/ 13, /*->24644*/ ++/* 24631*/ OPC_CheckChild0Integer, 38|128,29/*3750*/, ++/* 24634*/ OPC_RecordChild1, // #0 = $xj ++/* 24635*/ OPC_RecordChild2, // #1 = $xk ++/* 24636*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_WU), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3750:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVAVGR_WU:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 24644*/ /*Scope*/ 13, /*->24658*/ ++/* 24645*/ OPC_CheckChild0Integer, 34|128,29/*3746*/, ++/* 24648*/ OPC_RecordChild1, // #0 = $xj ++/* 24649*/ OPC_RecordChild2, // #1 = $xk ++/* 24650*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_DU), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3746:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVAVGR_DU:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 24658*/ /*Scope*/ 13, /*->24672*/ ++/* 24659*/ OPC_CheckChild0Integer, 88|128,31/*4056*/, ++/* 24662*/ OPC_RecordChild1, // #0 = $xj ++/* 24663*/ OPC_RecordChild2, // #1 = $xk ++/* 24664*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMUH_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4056:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVMUH_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 24672*/ /*Scope*/ 13, /*->24686*/ ++/* 24673*/ OPC_CheckChild0Integer, 92|128,31/*4060*/, ++/* 24676*/ OPC_RecordChild1, // #0 = $xj ++/* 24677*/ OPC_RecordChild2, // #1 = $xk ++/* 24678*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMUH_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4060:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVMUH_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 24686*/ /*Scope*/ 13, /*->24700*/ ++/* 24687*/ OPC_CheckChild0Integer, 94|128,31/*4062*/, ++/* 24690*/ OPC_RecordChild1, // #0 = $xj ++/* 24691*/ OPC_RecordChild2, // #1 = $xk ++/* 24692*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMUH_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4062:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVMUH_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 24700*/ /*Scope*/ 13, /*->24714*/ ++/* 24701*/ OPC_CheckChild0Integer, 90|128,31/*4058*/, ++/* 24704*/ OPC_RecordChild1, // #0 = $xj ++/* 24705*/ OPC_RecordChild2, // #1 = $xk ++/* 24706*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMUH_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4058:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVMUH_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 24714*/ /*Scope*/ 13, /*->24728*/ ++/* 24715*/ OPC_CheckChild0Integer, 89|128,31/*4057*/, ++/* 24718*/ OPC_RecordChild1, // #0 = $xj ++/* 24719*/ OPC_RecordChild2, // #1 = $xk ++/* 24720*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMUH_BU), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4057:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVMUH_BU:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 24728*/ /*Scope*/ 13, /*->24742*/ ++/* 24729*/ OPC_CheckChild0Integer, 93|128,31/*4061*/, ++/* 24732*/ OPC_RecordChild1, // #0 = $xj ++/* 24733*/ OPC_RecordChild2, // #1 = $xk ++/* 24734*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMUH_HU), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4061:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVMUH_HU:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 24742*/ /*Scope*/ 13, /*->24756*/ ++/* 24743*/ OPC_CheckChild0Integer, 95|128,31/*4063*/, ++/* 24746*/ OPC_RecordChild1, // #0 = $xj ++/* 24747*/ OPC_RecordChild2, // #1 = $xk ++/* 24748*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMUH_WU), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4063:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVMUH_WU:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 24756*/ /*Scope*/ 13, /*->24770*/ ++/* 24757*/ OPC_CheckChild0Integer, 91|128,31/*4059*/, ++/* 24760*/ OPC_RecordChild1, // #0 = $xj ++/* 24761*/ OPC_RecordChild2, // #1 = $xk ++/* 24762*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMUH_DU), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4059:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVMUH_DU:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 24770*/ /*Scope*/ 13, /*->24784*/ ++/* 24771*/ OPC_CheckChild0Integer, 103|128,31/*4071*/, ++/* 24774*/ OPC_RecordChild1, // #0 = $xj ++/* 24775*/ OPC_RecordChild2, // #1 = $xk ++/* 24776*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMULWEV_H_B), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4071:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVMULWEV_H_B:{ *:[v16i16] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 24784*/ /*Scope*/ 13, /*->24798*/ ++/* 24785*/ OPC_CheckChild0Integer, 109|128,31/*4077*/, ++/* 24788*/ OPC_RecordChild1, // #0 = $xj ++/* 24789*/ OPC_RecordChild2, // #1 = $xk ++/* 24790*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMULWEV_W_H), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4077:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVMULWEV_W_H:{ *:[v8i32] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 24798*/ /*Scope*/ 13, /*->24812*/ ++/* 24799*/ OPC_CheckChild0Integer, 100|128,31/*4068*/, ++/* 24802*/ OPC_RecordChild1, // #0 = $xj ++/* 24803*/ OPC_RecordChild2, // #1 = $xk ++/* 24804*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMULWEV_D_W), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4068:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVMULWEV_D_W:{ *:[v4i64] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 24812*/ /*Scope*/ 13, /*->24826*/ ++/* 24813*/ OPC_CheckChild0Integer, 106|128,31/*4074*/, ++/* 24816*/ OPC_RecordChild1, // #0 = $xj ++/* 24817*/ OPC_RecordChild2, // #1 = $xk ++/* 24818*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMULWEV_Q_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4074:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVMULWEV_Q_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 24826*/ /*Scope*/ 13, /*->24840*/ ++/* 24827*/ OPC_CheckChild0Integer, 115|128,31/*4083*/, ++/* 24830*/ OPC_RecordChild1, // #0 = $xj ++/* 24831*/ OPC_RecordChild2, // #1 = $xk ++/* 24832*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMULWOD_H_B), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4083:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVMULWOD_H_B:{ *:[v16i16] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 24840*/ /*Scope*/ 13, /*->24854*/ ++/* 24841*/ OPC_CheckChild0Integer, 121|128,31/*4089*/, ++/* 24844*/ OPC_RecordChild1, // #0 = $xj ++/* 24845*/ OPC_RecordChild2, // #1 = $xk ++/* 24846*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMULWOD_W_H), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4089:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVMULWOD_W_H:{ *:[v8i32] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 24854*/ /*Scope*/ 13, /*->24868*/ ++/* 24855*/ OPC_CheckChild0Integer, 112|128,31/*4080*/, ++/* 24858*/ OPC_RecordChild1, // #0 = $xj ++/* 24859*/ OPC_RecordChild2, // #1 = $xk ++/* 24860*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMULWOD_D_W), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4080:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVMULWOD_D_W:{ *:[v4i64] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 24868*/ /*Scope*/ 13, /*->24882*/ ++/* 24869*/ OPC_CheckChild0Integer, 118|128,31/*4086*/, ++/* 24872*/ OPC_RecordChild1, // #0 = $xj ++/* 24873*/ OPC_RecordChild2, // #1 = $xk ++/* 24874*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMULWOD_Q_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4086:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVMULWOD_Q_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 24882*/ /*Scope*/ 13, /*->24896*/ ++/* 24883*/ OPC_CheckChild0Integer, 104|128,31/*4072*/, ++/* 24886*/ OPC_RecordChild1, // #0 = $xj ++/* 24887*/ OPC_RecordChild2, // #1 = $xk ++/* 24888*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMULWEV_H_BU), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4072:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVMULWEV_H_BU:{ *:[v16i16] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 24896*/ /*Scope*/ 13, /*->24910*/ ++/* 24897*/ OPC_CheckChild0Integer, 110|128,31/*4078*/, ++/* 24900*/ OPC_RecordChild1, // #0 = $xj ++/* 24901*/ OPC_RecordChild2, // #1 = $xk ++/* 24902*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMULWEV_W_HU), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4078:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVMULWEV_W_HU:{ *:[v8i32] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 24910*/ /*Scope*/ 13, /*->24924*/ ++/* 24911*/ OPC_CheckChild0Integer, 101|128,31/*4069*/, ++/* 24914*/ OPC_RecordChild1, // #0 = $xj ++/* 24915*/ OPC_RecordChild2, // #1 = $xk ++/* 24916*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMULWEV_D_WU), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4069:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVMULWEV_D_WU:{ *:[v4i64] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 24924*/ /*Scope*/ 13, /*->24938*/ ++/* 24925*/ OPC_CheckChild0Integer, 107|128,31/*4075*/, ++/* 24928*/ OPC_RecordChild1, // #0 = $xj ++/* 24929*/ OPC_RecordChild2, // #1 = $xk ++/* 24930*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMULWEV_Q_DU), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4075:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVMULWEV_Q_DU:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 24938*/ /*Scope*/ 13, /*->24952*/ ++/* 24939*/ OPC_CheckChild0Integer, 116|128,31/*4084*/, ++/* 24942*/ OPC_RecordChild1, // #0 = $xj ++/* 24943*/ OPC_RecordChild2, // #1 = $xk ++/* 24944*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMULWOD_H_BU), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4084:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVMULWOD_H_BU:{ *:[v16i16] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 24952*/ /*Scope*/ 13, /*->24966*/ ++/* 24953*/ OPC_CheckChild0Integer, 122|128,31/*4090*/, ++/* 24956*/ OPC_RecordChild1, // #0 = $xj ++/* 24957*/ OPC_RecordChild2, // #1 = $xk ++/* 24958*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMULWOD_W_HU), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4090:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVMULWOD_W_HU:{ *:[v8i32] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 24966*/ /*Scope*/ 13, /*->24980*/ ++/* 24967*/ OPC_CheckChild0Integer, 113|128,31/*4081*/, ++/* 24970*/ OPC_RecordChild1, // #0 = $xj ++/* 24971*/ OPC_RecordChild2, // #1 = $xk ++/* 24972*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMULWOD_D_WU), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4081:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVMULWOD_D_WU:{ *:[v4i64] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 24980*/ /*Scope*/ 13, /*->24994*/ ++/* 24981*/ OPC_CheckChild0Integer, 119|128,31/*4087*/, ++/* 24984*/ OPC_RecordChild1, // #0 = $xj ++/* 24985*/ OPC_RecordChild2, // #1 = $xk ++/* 24986*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMULWOD_Q_DU), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4087:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVMULWOD_Q_DU:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 24994*/ /*Scope*/ 13, /*->25008*/ ++/* 24995*/ OPC_CheckChild0Integer, 105|128,31/*4073*/, ++/* 24998*/ OPC_RecordChild1, // #0 = $xj ++/* 24999*/ OPC_RecordChild2, // #1 = $xk ++/* 25000*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMULWEV_H_BU_B), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4073:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVMULWEV_H_BU_B:{ *:[v16i16] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 25008*/ /*Scope*/ 13, /*->25022*/ ++/* 25009*/ OPC_CheckChild0Integer, 111|128,31/*4079*/, ++/* 25012*/ OPC_RecordChild1, // #0 = $xj ++/* 25013*/ OPC_RecordChild2, // #1 = $xk ++/* 25014*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMULWEV_W_HU_H), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4079:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVMULWEV_W_HU_H:{ *:[v8i32] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 25022*/ /*Scope*/ 13, /*->25036*/ ++/* 25023*/ OPC_CheckChild0Integer, 102|128,31/*4070*/, ++/* 25026*/ OPC_RecordChild1, // #0 = $xj ++/* 25027*/ OPC_RecordChild2, // #1 = $xk ++/* 25028*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMULWEV_D_WU_W), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4070:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVMULWEV_D_WU_W:{ *:[v4i64] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 25036*/ /*Scope*/ 13, /*->25050*/ ++/* 25037*/ OPC_CheckChild0Integer, 108|128,31/*4076*/, ++/* 25040*/ OPC_RecordChild1, // #0 = $xj ++/* 25041*/ OPC_RecordChild2, // #1 = $xk ++/* 25042*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMULWEV_Q_DU_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4076:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVMULWEV_Q_DU_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 25050*/ /*Scope*/ 13, /*->25064*/ ++/* 25051*/ OPC_CheckChild0Integer, 117|128,31/*4085*/, ++/* 25054*/ OPC_RecordChild1, // #0 = $xj ++/* 25055*/ OPC_RecordChild2, // #1 = $xk ++/* 25056*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMULWOD_H_BU_B), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4085:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVMULWOD_H_BU_B:{ *:[v16i16] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 25064*/ /*Scope*/ 13, /*->25078*/ ++/* 25065*/ OPC_CheckChild0Integer, 123|128,31/*4091*/, ++/* 25068*/ OPC_RecordChild1, // #0 = $xj ++/* 25069*/ OPC_RecordChild2, // #1 = $xk ++/* 25070*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMULWOD_W_HU_H), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4091:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVMULWOD_W_HU_H:{ *:[v8i32] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 25078*/ /*Scope*/ 13, /*->25092*/ ++/* 25079*/ OPC_CheckChild0Integer, 114|128,31/*4082*/, ++/* 25082*/ OPC_RecordChild1, // #0 = $xj ++/* 25083*/ OPC_RecordChild2, // #1 = $xk ++/* 25084*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMULWOD_D_WU_W), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4082:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVMULWOD_D_WU_W:{ *:[v4i64] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 25092*/ /*Scope*/ 13, /*->25106*/ ++/* 25093*/ OPC_CheckChild0Integer, 120|128,31/*4088*/, ++/* 25096*/ OPC_RecordChild1, // #0 = $xj ++/* 25097*/ OPC_RecordChild2, // #1 = $xk ++/* 25098*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMULWOD_Q_DU_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4088:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVMULWOD_Q_DU_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 25106*/ /*Scope*/ 15, /*->25122*/ ++/* 25107*/ OPC_CheckChild0Integer, 17|128,31/*3985*/, ++/* 25110*/ OPC_RecordChild1, // #0 = $xd_in ++/* 25111*/ OPC_RecordChild2, // #1 = $xj ++/* 25112*/ OPC_RecordChild3, // #2 = $xk ++/* 25113*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMADDWEV_H_B), 0, ++ MVT::v16i16, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 3985:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xd_in, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVMADDWEV_H_B:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xd_in, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 25122*/ /*Scope*/ 15, /*->25138*/ ++/* 25123*/ OPC_CheckChild0Integer, 23|128,31/*3991*/, ++/* 25126*/ OPC_RecordChild1, // #0 = $xd_in ++/* 25127*/ OPC_RecordChild2, // #1 = $xj ++/* 25128*/ OPC_RecordChild3, // #2 = $xk ++/* 25129*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMADDWEV_W_H), 0, ++ MVT::v8i32, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3991:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xd_in, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVMADDWEV_W_H:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xd_in, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 25138*/ /*Scope*/ 15, /*->25154*/ ++/* 25139*/ OPC_CheckChild0Integer, 14|128,31/*3982*/, ++/* 25142*/ OPC_RecordChild1, // #0 = $xd_in ++/* 25143*/ OPC_RecordChild2, // #1 = $xj ++/* 25144*/ OPC_RecordChild3, // #2 = $xk ++/* 25145*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMADDWEV_D_W), 0, ++ MVT::v4i64, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3982:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVMADDWEV_D_W:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 25154*/ /*Scope*/ 15, /*->25170*/ ++/* 25155*/ OPC_CheckChild0Integer, 20|128,31/*3988*/, ++/* 25158*/ OPC_RecordChild1, // #0 = $xd_in ++/* 25159*/ OPC_RecordChild2, // #1 = $xj ++/* 25160*/ OPC_RecordChild3, // #2 = $xk ++/* 25161*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMADDWEV_Q_D), 0, ++ MVT::v4i64, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3988:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVMADDWEV_Q_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 25170*/ /*Scope*/ 15, /*->25186*/ ++/* 25171*/ OPC_CheckChild0Integer, 29|128,31/*3997*/, ++/* 25174*/ OPC_RecordChild1, // #0 = $xd_in ++/* 25175*/ OPC_RecordChild2, // #1 = $xj ++/* 25176*/ OPC_RecordChild3, // #2 = $xk ++/* 25177*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMADDWOD_H_B), 0, ++ MVT::v16i16, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 3997:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xd_in, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVMADDWOD_H_B:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xd_in, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 25186*/ /*Scope*/ 15, /*->25202*/ ++/* 25187*/ OPC_CheckChild0Integer, 35|128,31/*4003*/, ++/* 25190*/ OPC_RecordChild1, // #0 = $xd_in ++/* 25191*/ OPC_RecordChild2, // #1 = $xj ++/* 25192*/ OPC_RecordChild3, // #2 = $xk ++/* 25193*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMADDWOD_W_H), 0, ++ MVT::v8i32, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4003:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xd_in, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVMADDWOD_W_H:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xd_in, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 25202*/ /*Scope*/ 15, /*->25218*/ ++/* 25203*/ OPC_CheckChild0Integer, 26|128,31/*3994*/, ++/* 25206*/ OPC_RecordChild1, // #0 = $xd_in ++/* 25207*/ OPC_RecordChild2, // #1 = $xj ++/* 25208*/ OPC_RecordChild3, // #2 = $xk ++/* 25209*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMADDWOD_D_W), 0, ++ MVT::v4i64, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3994:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVMADDWOD_D_W:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 25218*/ /*Scope*/ 15, /*->25234*/ ++/* 25219*/ OPC_CheckChild0Integer, 32|128,31/*4000*/, ++/* 25222*/ OPC_RecordChild1, // #0 = $xd_in ++/* 25223*/ OPC_RecordChild2, // #1 = $xj ++/* 25224*/ OPC_RecordChild3, // #2 = $xk ++/* 25225*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMADDWOD_Q_D), 0, ++ MVT::v4i64, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4000:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVMADDWOD_Q_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 25234*/ /*Scope*/ 15, /*->25250*/ ++/* 25235*/ OPC_CheckChild0Integer, 18|128,31/*3986*/, ++/* 25238*/ OPC_RecordChild1, // #0 = $xd_in ++/* 25239*/ OPC_RecordChild2, // #1 = $xj ++/* 25240*/ OPC_RecordChild3, // #2 = $xk ++/* 25241*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMADDWEV_H_BU), 0, ++ MVT::v16i16, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 3986:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xd_in, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVMADDWEV_H_BU:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xd_in, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 25250*/ /*Scope*/ 15, /*->25266*/ ++/* 25251*/ OPC_CheckChild0Integer, 24|128,31/*3992*/, ++/* 25254*/ OPC_RecordChild1, // #0 = $xd_in ++/* 25255*/ OPC_RecordChild2, // #1 = $xj ++/* 25256*/ OPC_RecordChild3, // #2 = $xk ++/* 25257*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMADDWEV_W_HU), 0, ++ MVT::v8i32, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3992:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xd_in, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVMADDWEV_W_HU:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xd_in, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 25266*/ /*Scope*/ 15, /*->25282*/ ++/* 25267*/ OPC_CheckChild0Integer, 15|128,31/*3983*/, ++/* 25270*/ OPC_RecordChild1, // #0 = $xd_in ++/* 25271*/ OPC_RecordChild2, // #1 = $xj ++/* 25272*/ OPC_RecordChild3, // #2 = $xk ++/* 25273*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMADDWEV_D_WU), 0, ++ MVT::v4i64, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3983:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVMADDWEV_D_WU:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 25282*/ /*Scope*/ 15, /*->25298*/ ++/* 25283*/ OPC_CheckChild0Integer, 21|128,31/*3989*/, ++/* 25286*/ OPC_RecordChild1, // #0 = $xd_in ++/* 25287*/ OPC_RecordChild2, // #1 = $xj ++/* 25288*/ OPC_RecordChild3, // #2 = $xk ++/* 25289*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMADDWEV_Q_DU), 0, ++ MVT::v4i64, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3989:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVMADDWEV_Q_DU:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 25298*/ /*Scope*/ 15, /*->25314*/ ++/* 25299*/ OPC_CheckChild0Integer, 30|128,31/*3998*/, ++/* 25302*/ OPC_RecordChild1, // #0 = $xd_in ++/* 25303*/ OPC_RecordChild2, // #1 = $xj ++/* 25304*/ OPC_RecordChild3, // #2 = $xk ++/* 25305*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMADDWOD_H_BU), 0, ++ MVT::v16i16, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 3998:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xd_in, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVMADDWOD_H_BU:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xd_in, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 25314*/ /*Scope*/ 15, /*->25330*/ ++/* 25315*/ OPC_CheckChild0Integer, 36|128,31/*4004*/, ++/* 25318*/ OPC_RecordChild1, // #0 = $xd_in ++/* 25319*/ OPC_RecordChild2, // #1 = $xj ++/* 25320*/ OPC_RecordChild3, // #2 = $xk ++/* 25321*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMADDWOD_W_HU), 0, ++ MVT::v8i32, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4004:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xd_in, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVMADDWOD_W_HU:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xd_in, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 25330*/ /*Scope*/ 15, /*->25346*/ ++/* 25331*/ OPC_CheckChild0Integer, 27|128,31/*3995*/, ++/* 25334*/ OPC_RecordChild1, // #0 = $xd_in ++/* 25335*/ OPC_RecordChild2, // #1 = $xj ++/* 25336*/ OPC_RecordChild3, // #2 = $xk ++/* 25337*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMADDWOD_D_WU), 0, ++ MVT::v4i64, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3995:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVMADDWOD_D_WU:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 25346*/ /*Scope*/ 15, /*->25362*/ ++/* 25347*/ OPC_CheckChild0Integer, 33|128,31/*4001*/, ++/* 25350*/ OPC_RecordChild1, // #0 = $xd_in ++/* 25351*/ OPC_RecordChild2, // #1 = $xj ++/* 25352*/ OPC_RecordChild3, // #2 = $xk ++/* 25353*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMADDWOD_Q_DU), 0, ++ MVT::v4i64, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4001:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVMADDWOD_Q_DU:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 25362*/ /*Scope*/ 15, /*->25378*/ ++/* 25363*/ OPC_CheckChild0Integer, 19|128,31/*3987*/, ++/* 25366*/ OPC_RecordChild1, // #0 = $xd_in ++/* 25367*/ OPC_RecordChild2, // #1 = $xj ++/* 25368*/ OPC_RecordChild3, // #2 = $xk ++/* 25369*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMADDWEV_H_BU_B), 0, ++ MVT::v16i16, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 3987:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xd_in, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVMADDWEV_H_BU_B:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xd_in, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 25378*/ /*Scope*/ 15, /*->25394*/ ++/* 25379*/ OPC_CheckChild0Integer, 25|128,31/*3993*/, ++/* 25382*/ OPC_RecordChild1, // #0 = $xd_in ++/* 25383*/ OPC_RecordChild2, // #1 = $xj ++/* 25384*/ OPC_RecordChild3, // #2 = $xk ++/* 25385*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMADDWEV_W_HU_H), 0, ++ MVT::v8i32, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3993:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xd_in, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVMADDWEV_W_HU_H:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xd_in, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 25394*/ /*Scope*/ 15, /*->25410*/ ++/* 25395*/ OPC_CheckChild0Integer, 16|128,31/*3984*/, ++/* 25398*/ OPC_RecordChild1, // #0 = $xd_in ++/* 25399*/ OPC_RecordChild2, // #1 = $xj ++/* 25400*/ OPC_RecordChild3, // #2 = $xk ++/* 25401*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMADDWEV_D_WU_W), 0, ++ MVT::v4i64, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3984:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVMADDWEV_D_WU_W:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 25410*/ /*Scope*/ 15, /*->25426*/ ++/* 25411*/ OPC_CheckChild0Integer, 22|128,31/*3990*/, ++/* 25414*/ OPC_RecordChild1, // #0 = $xd_in ++/* 25415*/ OPC_RecordChild2, // #1 = $xj ++/* 25416*/ OPC_RecordChild3, // #2 = $xk ++/* 25417*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMADDWEV_Q_DU_D), 0, ++ MVT::v4i64, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3990:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVMADDWEV_Q_DU_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 25426*/ /*Scope*/ 15, /*->25442*/ ++/* 25427*/ OPC_CheckChild0Integer, 31|128,31/*3999*/, ++/* 25430*/ OPC_RecordChild1, // #0 = $xd_in ++/* 25431*/ OPC_RecordChild2, // #1 = $xj ++/* 25432*/ OPC_RecordChild3, // #2 = $xk ++/* 25433*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMADDWOD_H_BU_B), 0, ++ MVT::v16i16, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 3999:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xd_in, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVMADDWOD_H_BU_B:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xd_in, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 25442*/ /*Scope*/ 15, /*->25458*/ ++/* 25443*/ OPC_CheckChild0Integer, 37|128,31/*4005*/, ++/* 25446*/ OPC_RecordChild1, // #0 = $xd_in ++/* 25447*/ OPC_RecordChild2, // #1 = $xj ++/* 25448*/ OPC_RecordChild3, // #2 = $xk ++/* 25449*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMADDWOD_W_HU_H), 0, ++ MVT::v8i32, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4005:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xd_in, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVMADDWOD_W_HU_H:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xd_in, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 25458*/ /*Scope*/ 15, /*->25474*/ ++/* 25459*/ OPC_CheckChild0Integer, 28|128,31/*3996*/, ++/* 25462*/ OPC_RecordChild1, // #0 = $xd_in ++/* 25463*/ OPC_RecordChild2, // #1 = $xj ++/* 25464*/ OPC_RecordChild3, // #2 = $xk ++/* 25465*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMADDWOD_D_WU_W), 0, ++ MVT::v4i64, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3996:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVMADDWOD_D_WU_W:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 25474*/ /*Scope*/ 15, /*->25490*/ ++/* 25475*/ OPC_CheckChild0Integer, 34|128,31/*4002*/, ++/* 25478*/ OPC_RecordChild1, // #0 = $xd_in ++/* 25479*/ OPC_RecordChild2, // #1 = $xj ++/* 25480*/ OPC_RecordChild3, // #2 = $xk ++/* 25481*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMADDWOD_Q_DU_D), 0, ++ MVT::v4i64, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4002:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVMADDWOD_Q_DU_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 25490*/ /*Scope*/ 13, /*->25504*/ ++/* 25491*/ OPC_CheckChild0Integer, 52|128,32/*4148*/, ++/* 25494*/ OPC_RecordChild1, // #0 = $xj ++/* 25495*/ OPC_RecordChild2, // #1 = $xk ++/* 25496*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVROTR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4148:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVROTR_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 25504*/ /*Scope*/ 13, /*->25518*/ ++/* 25505*/ OPC_CheckChild0Integer, 54|128,32/*4150*/, ++/* 25508*/ OPC_RecordChild1, // #0 = $xj ++/* 25509*/ OPC_RecordChild2, // #1 = $xk ++/* 25510*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVROTR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4150:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVROTR_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 25518*/ /*Scope*/ 13, /*->25532*/ ++/* 25519*/ OPC_CheckChild0Integer, 55|128,32/*4151*/, ++/* 25522*/ OPC_RecordChild1, // #0 = $xj ++/* 25523*/ OPC_RecordChild2, // #1 = $xk ++/* 25524*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVROTR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4151:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVROTR_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 25532*/ /*Scope*/ 13, /*->25546*/ ++/* 25533*/ OPC_CheckChild0Integer, 53|128,32/*4149*/, ++/* 25536*/ OPC_RecordChild1, // #0 = $xj ++/* 25537*/ OPC_RecordChild2, // #1 = $xk ++/* 25538*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVROTR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4149:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVROTR_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 25546*/ /*Scope*/ 13, /*->25560*/ ++/* 25547*/ OPC_CheckChild0Integer, 59|128,33/*4283*/, ++/* 25550*/ OPC_RecordChild1, // #0 = $xj ++/* 25551*/ OPC_RecordChild2, // #1 = $xk ++/* 25552*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRLR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4283:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVSRLR_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 25560*/ /*Scope*/ 13, /*->25574*/ ++/* 25561*/ OPC_CheckChild0Integer, 61|128,33/*4285*/, ++/* 25564*/ OPC_RecordChild1, // #0 = $xj ++/* 25565*/ OPC_RecordChild2, // #1 = $xk ++/* 25566*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRLR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4285:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVSRLR_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 25574*/ /*Scope*/ 13, /*->25588*/ ++/* 25575*/ OPC_CheckChild0Integer, 62|128,33/*4286*/, ++/* 25578*/ OPC_RecordChild1, // #0 = $xj ++/* 25579*/ OPC_RecordChild2, // #1 = $xk ++/* 25580*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRLR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4286:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVSRLR_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 25588*/ /*Scope*/ 13, /*->25602*/ ++/* 25589*/ OPC_CheckChild0Integer, 60|128,33/*4284*/, ++/* 25592*/ OPC_RecordChild1, // #0 = $xj ++/* 25593*/ OPC_RecordChild2, // #1 = $xk ++/* 25594*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRLR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4284:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVSRLR_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 25602*/ /*Scope*/ 13, /*->25616*/ ++/* 25603*/ OPC_CheckChild0Integer, 29|128,33/*4253*/, ++/* 25606*/ OPC_RecordChild1, // #0 = $xj ++/* 25607*/ OPC_RecordChild2, // #1 = $xk ++/* 25608*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRAR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4253:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVSRAR_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 25616*/ /*Scope*/ 13, /*->25630*/ ++/* 25617*/ OPC_CheckChild0Integer, 31|128,33/*4255*/, ++/* 25620*/ OPC_RecordChild1, // #0 = $xj ++/* 25621*/ OPC_RecordChild2, // #1 = $xk ++/* 25622*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRAR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4255:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVSRAR_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 25630*/ /*Scope*/ 13, /*->25644*/ ++/* 25631*/ OPC_CheckChild0Integer, 32|128,33/*4256*/, ++/* 25634*/ OPC_RecordChild1, // #0 = $xj ++/* 25635*/ OPC_RecordChild2, // #1 = $xk ++/* 25636*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRAR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4256:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVSRAR_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 25644*/ /*Scope*/ 13, /*->25658*/ ++/* 25645*/ OPC_CheckChild0Integer, 30|128,33/*4254*/, ++/* 25648*/ OPC_RecordChild1, // #0 = $xj ++/* 25649*/ OPC_RecordChild2, // #1 = $xk ++/* 25650*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRAR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4254:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVSRAR_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 25658*/ /*Scope*/ 13, /*->25672*/ ++/* 25659*/ OPC_CheckChild0Integer, 52|128,33/*4276*/, ++/* 25662*/ OPC_RecordChild1, // #0 = $xj ++/* 25663*/ OPC_RecordChild2, // #1 = $xk ++/* 25664*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRLN_B_H), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4276:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVSRLN_B_H:{ *:[v32i8] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 25672*/ /*Scope*/ 13, /*->25686*/ ++/* 25673*/ OPC_CheckChild0Integer, 53|128,33/*4277*/, ++/* 25676*/ OPC_RecordChild1, // #0 = $xj ++/* 25677*/ OPC_RecordChild2, // #1 = $xk ++/* 25678*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRLN_H_W), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4277:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVSRLN_H_W:{ *:[v16i16] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 25686*/ /*Scope*/ 13, /*->25700*/ ++/* 25687*/ OPC_CheckChild0Integer, 54|128,33/*4278*/, ++/* 25690*/ OPC_RecordChild1, // #0 = $xj ++/* 25691*/ OPC_RecordChild2, // #1 = $xk ++/* 25692*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRLN_W_D), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4278:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVSRLN_W_D:{ *:[v8i32] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 25700*/ /*Scope*/ 13, /*->25714*/ ++/* 25701*/ OPC_CheckChild0Integer, 22|128,33/*4246*/, ++/* 25704*/ OPC_RecordChild1, // #0 = $xj ++/* 25705*/ OPC_RecordChild2, // #1 = $xk ++/* 25706*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRAN_B_H), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4246:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVSRAN_B_H:{ *:[v32i8] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 25714*/ /*Scope*/ 13, /*->25728*/ ++/* 25715*/ OPC_CheckChild0Integer, 23|128,33/*4247*/, ++/* 25718*/ OPC_RecordChild1, // #0 = $xj ++/* 25719*/ OPC_RecordChild2, // #1 = $xk ++/* 25720*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRAN_H_W), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4247:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVSRAN_H_W:{ *:[v16i16] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 25728*/ /*Scope*/ 13, /*->25742*/ ++/* 25729*/ OPC_CheckChild0Integer, 24|128,33/*4248*/, ++/* 25732*/ OPC_RecordChild1, // #0 = $xj ++/* 25733*/ OPC_RecordChild2, // #1 = $xk ++/* 25734*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRAN_W_D), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4248:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVSRAN_W_D:{ *:[v8i32] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 25742*/ /*Scope*/ 13, /*->25756*/ ++/* 25743*/ OPC_CheckChild0Integer, 67|128,33/*4291*/, ++/* 25746*/ OPC_RecordChild1, // #0 = $xj ++/* 25747*/ OPC_RecordChild2, // #1 = $xk ++/* 25748*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRLRN_B_H), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4291:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVSRLRN_B_H:{ *:[v32i8] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 25756*/ /*Scope*/ 13, /*->25770*/ ++/* 25757*/ OPC_CheckChild0Integer, 68|128,33/*4292*/, ++/* 25760*/ OPC_RecordChild1, // #0 = $xj ++/* 25761*/ OPC_RecordChild2, // #1 = $xk ++/* 25762*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRLRN_H_W), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4292:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVSRLRN_H_W:{ *:[v16i16] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 25770*/ /*Scope*/ 13, /*->25784*/ ++/* 25771*/ OPC_CheckChild0Integer, 69|128,33/*4293*/, ++/* 25774*/ OPC_RecordChild1, // #0 = $xj ++/* 25775*/ OPC_RecordChild2, // #1 = $xk ++/* 25776*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRLRN_W_D), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4293:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVSRLRN_W_D:{ *:[v8i32] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 25784*/ /*Scope*/ 13, /*->25798*/ ++/* 25785*/ OPC_CheckChild0Integer, 37|128,33/*4261*/, ++/* 25788*/ OPC_RecordChild1, // #0 = $xj ++/* 25789*/ OPC_RecordChild2, // #1 = $xk ++/* 25790*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRARN_B_H), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4261:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVSRARN_B_H:{ *:[v32i8] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 25798*/ /*Scope*/ 13, /*->25812*/ ++/* 25799*/ OPC_CheckChild0Integer, 38|128,33/*4262*/, ++/* 25802*/ OPC_RecordChild1, // #0 = $xj ++/* 25803*/ OPC_RecordChild2, // #1 = $xk ++/* 25804*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRARN_H_W), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4262:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVSRARN_H_W:{ *:[v16i16] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 25812*/ /*Scope*/ 13, /*->25826*/ ++/* 25813*/ OPC_CheckChild0Integer, 39|128,33/*4263*/, ++/* 25816*/ OPC_RecordChild1, // #0 = $xj ++/* 25817*/ OPC_RecordChild2, // #1 = $xk ++/* 25818*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRARN_W_D), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4263:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVSRARN_W_D:{ *:[v8i32] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 25826*/ /*Scope*/ 13, /*->25840*/ ++/* 25827*/ OPC_CheckChild0Integer, 102|128,33/*4326*/, ++/* 25830*/ OPC_RecordChild1, // #0 = $xj ++/* 25831*/ OPC_RecordChild2, // #1 = $xk ++/* 25832*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRLN_B_H), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4326:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVSSRLN_B_H:{ *:[v32i8] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 25840*/ /*Scope*/ 13, /*->25854*/ ++/* 25841*/ OPC_CheckChild0Integer, 104|128,33/*4328*/, ++/* 25844*/ OPC_RecordChild1, // #0 = $xj ++/* 25845*/ OPC_RecordChild2, // #1 = $xk ++/* 25846*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRLN_H_W), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4328:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVSSRLN_H_W:{ *:[v16i16] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 25854*/ /*Scope*/ 13, /*->25868*/ ++/* 25855*/ OPC_CheckChild0Integer, 106|128,33/*4330*/, ++/* 25858*/ OPC_RecordChild1, // #0 = $xj ++/* 25859*/ OPC_RecordChild2, // #1 = $xk ++/* 25860*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRLN_W_D), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4330:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVSSRLN_W_D:{ *:[v8i32] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 25868*/ /*Scope*/ 13, /*->25882*/ ++/* 25869*/ OPC_CheckChild0Integer, 74|128,33/*4298*/, ++/* 25872*/ OPC_RecordChild1, // #0 = $xj ++/* 25873*/ OPC_RecordChild2, // #1 = $xk ++/* 25874*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRAN_B_H), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4298:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVSSRAN_B_H:{ *:[v32i8] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 25882*/ /*Scope*/ 13, /*->25896*/ ++/* 25883*/ OPC_CheckChild0Integer, 76|128,33/*4300*/, ++/* 25886*/ OPC_RecordChild1, // #0 = $xj ++/* 25887*/ OPC_RecordChild2, // #1 = $xk ++/* 25888*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRAN_H_W), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4300:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVSSRAN_H_W:{ *:[v16i16] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 25896*/ /*Scope*/ 13, /*->25910*/ ++/* 25897*/ OPC_CheckChild0Integer, 78|128,33/*4302*/, ++/* 25900*/ OPC_RecordChild1, // #0 = $xj ++/* 25901*/ OPC_RecordChild2, // #1 = $xk ++/* 25902*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRAN_W_D), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4302:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVSSRAN_W_D:{ *:[v8i32] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 25910*/ /*Scope*/ 13, /*->25924*/ ++/* 25911*/ OPC_CheckChild0Integer, 116|128,33/*4340*/, ++/* 25914*/ OPC_RecordChild1, // #0 = $xj ++/* 25915*/ OPC_RecordChild2, // #1 = $xk ++/* 25916*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRLRN_B_H), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4340:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVSSRLRN_B_H:{ *:[v32i8] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 25924*/ /*Scope*/ 13, /*->25938*/ ++/* 25925*/ OPC_CheckChild0Integer, 118|128,33/*4342*/, ++/* 25928*/ OPC_RecordChild1, // #0 = $xj ++/* 25929*/ OPC_RecordChild2, // #1 = $xk ++/* 25930*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRLRN_H_W), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4342:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVSSRLRN_H_W:{ *:[v16i16] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 25938*/ /*Scope*/ 13, /*->25952*/ ++/* 25939*/ OPC_CheckChild0Integer, 120|128,33/*4344*/, ++/* 25942*/ OPC_RecordChild1, // #0 = $xj ++/* 25943*/ OPC_RecordChild2, // #1 = $xk ++/* 25944*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRLRN_W_D), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4344:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVSSRLRN_W_D:{ *:[v8i32] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 25952*/ /*Scope*/ 13, /*->25966*/ ++/* 25953*/ OPC_CheckChild0Integer, 88|128,33/*4312*/, ++/* 25956*/ OPC_RecordChild1, // #0 = $xj ++/* 25957*/ OPC_RecordChild2, // #1 = $xk ++/* 25958*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRARN_B_H), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4312:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVSSRARN_B_H:{ *:[v32i8] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 25966*/ /*Scope*/ 13, /*->25980*/ ++/* 25967*/ OPC_CheckChild0Integer, 90|128,33/*4314*/, ++/* 25970*/ OPC_RecordChild1, // #0 = $xj ++/* 25971*/ OPC_RecordChild2, // #1 = $xk ++/* 25972*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRARN_H_W), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4314:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVSSRARN_H_W:{ *:[v16i16] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 25980*/ /*Scope*/ 13, /*->25994*/ ++/* 25981*/ OPC_CheckChild0Integer, 92|128,33/*4316*/, ++/* 25984*/ OPC_RecordChild1, // #0 = $xj ++/* 25985*/ OPC_RecordChild2, // #1 = $xk ++/* 25986*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRARN_W_D), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4316:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVSSRARN_W_D:{ *:[v8i32] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 25994*/ /*Scope*/ 13, /*->26008*/ ++/* 25995*/ OPC_CheckChild0Integer, 103|128,33/*4327*/, ++/* 25998*/ OPC_RecordChild1, // #0 = $xj ++/* 25999*/ OPC_RecordChild2, // #1 = $xk ++/* 26000*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRLN_BU_H), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4327:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVSSRLN_BU_H:{ *:[v32i8] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 26008*/ /*Scope*/ 13, /*->26022*/ ++/* 26009*/ OPC_CheckChild0Integer, 105|128,33/*4329*/, ++/* 26012*/ OPC_RecordChild1, // #0 = $xj ++/* 26013*/ OPC_RecordChild2, // #1 = $xk ++/* 26014*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRLN_HU_W), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4329:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVSSRLN_HU_W:{ *:[v16i16] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 26022*/ /*Scope*/ 13, /*->26036*/ ++/* 26023*/ OPC_CheckChild0Integer, 107|128,33/*4331*/, ++/* 26026*/ OPC_RecordChild1, // #0 = $xj ++/* 26027*/ OPC_RecordChild2, // #1 = $xk ++/* 26028*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRLN_WU_D), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4331:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVSSRLN_WU_D:{ *:[v8i32] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 26036*/ /*Scope*/ 13, /*->26050*/ ++/* 26037*/ OPC_CheckChild0Integer, 75|128,33/*4299*/, ++/* 26040*/ OPC_RecordChild1, // #0 = $xj ++/* 26041*/ OPC_RecordChild2, // #1 = $xk ++/* 26042*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRAN_BU_H), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4299:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVSSRAN_BU_H:{ *:[v32i8] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 26050*/ /*Scope*/ 13, /*->26064*/ ++/* 26051*/ OPC_CheckChild0Integer, 77|128,33/*4301*/, ++/* 26054*/ OPC_RecordChild1, // #0 = $xj ++/* 26055*/ OPC_RecordChild2, // #1 = $xk ++/* 26056*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRAN_HU_W), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4301:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVSSRAN_HU_W:{ *:[v16i16] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 26064*/ /*Scope*/ 13, /*->26078*/ ++/* 26065*/ OPC_CheckChild0Integer, 79|128,33/*4303*/, ++/* 26068*/ OPC_RecordChild1, // #0 = $xj ++/* 26069*/ OPC_RecordChild2, // #1 = $xk ++/* 26070*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRAN_WU_D), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4303:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVSSRAN_WU_D:{ *:[v8i32] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 26078*/ /*Scope*/ 13, /*->26092*/ ++/* 26079*/ OPC_CheckChild0Integer, 117|128,33/*4341*/, ++/* 26082*/ OPC_RecordChild1, // #0 = $xj ++/* 26083*/ OPC_RecordChild2, // #1 = $xk ++/* 26084*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRLRN_BU_H), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4341:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVSSRLRN_BU_H:{ *:[v32i8] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 26092*/ /*Scope*/ 13, /*->26106*/ ++/* 26093*/ OPC_CheckChild0Integer, 119|128,33/*4343*/, ++/* 26096*/ OPC_RecordChild1, // #0 = $xj ++/* 26097*/ OPC_RecordChild2, // #1 = $xk ++/* 26098*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRLRN_HU_W), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4343:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVSSRLRN_HU_W:{ *:[v16i16] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 26106*/ /*Scope*/ 13, /*->26120*/ ++/* 26107*/ OPC_CheckChild0Integer, 121|128,33/*4345*/, ++/* 26110*/ OPC_RecordChild1, // #0 = $xj ++/* 26111*/ OPC_RecordChild2, // #1 = $xk ++/* 26112*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRLRN_WU_D), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4345:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVSSRLRN_WU_D:{ *:[v8i32] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 26120*/ /*Scope*/ 13, /*->26134*/ ++/* 26121*/ OPC_CheckChild0Integer, 89|128,33/*4313*/, ++/* 26124*/ OPC_RecordChild1, // #0 = $xj ++/* 26125*/ OPC_RecordChild2, // #1 = $xk ++/* 26126*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRARN_BU_H), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4313:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVSSRARN_BU_H:{ *:[v32i8] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 26134*/ /*Scope*/ 13, /*->26148*/ ++/* 26135*/ OPC_CheckChild0Integer, 91|128,33/*4315*/, ++/* 26138*/ OPC_RecordChild1, // #0 = $xj ++/* 26139*/ OPC_RecordChild2, // #1 = $xk ++/* 26140*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRARN_HU_W), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4315:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVSSRARN_HU_W:{ *:[v16i16] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 26148*/ /*Scope*/ 13, /*->26162*/ ++/* 26149*/ OPC_CheckChild0Integer, 93|128,33/*4317*/, ++/* 26152*/ OPC_RecordChild1, // #0 = $xj ++/* 26153*/ OPC_RecordChild2, // #1 = $xk ++/* 26154*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSRARN_WU_D), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4317:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVSSRARN_WU_D:{ *:[v8i32] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 26162*/ /*Scope*/ 13, /*->26176*/ ++/* 26163*/ OPC_CheckChild0Integer, 57|128,29/*3769*/, ++/* 26166*/ OPC_RecordChild1, // #0 = $xj ++/* 26167*/ OPC_RecordChild2, // #1 = $xk ++/* 26168*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITSET_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 3769:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVBITSET_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 26176*/ /*Scope*/ 13, /*->26190*/ ++/* 26177*/ OPC_CheckChild0Integer, 59|128,29/*3771*/, ++/* 26180*/ OPC_RecordChild1, // #0 = $xj ++/* 26181*/ OPC_RecordChild2, // #1 = $xk ++/* 26182*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITSET_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 3771:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVBITSET_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 26190*/ /*Scope*/ 13, /*->26204*/ ++/* 26191*/ OPC_CheckChild0Integer, 60|128,29/*3772*/, ++/* 26194*/ OPC_RecordChild1, // #0 = $xj ++/* 26195*/ OPC_RecordChild2, // #1 = $xk ++/* 26196*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITSET_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3772:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVBITSET_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 26204*/ /*Scope*/ 13, /*->26218*/ ++/* 26205*/ OPC_CheckChild0Integer, 58|128,29/*3770*/, ++/* 26208*/ OPC_RecordChild1, // #0 = $xj ++/* 26209*/ OPC_RecordChild2, // #1 = $xk ++/* 26210*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITSET_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3770:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVBITSET_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 26218*/ /*Scope*/ 13, /*->26232*/ ++/* 26219*/ OPC_CheckChild0Integer, 47|128,29/*3759*/, ++/* 26222*/ OPC_RecordChild1, // #0 = $xj ++/* 26223*/ OPC_RecordChild2, // #1 = $xk ++/* 26224*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITREV_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 3759:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVBITREV_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 26232*/ /*Scope*/ 13, /*->26246*/ ++/* 26233*/ OPC_CheckChild0Integer, 49|128,29/*3761*/, ++/* 26236*/ OPC_RecordChild1, // #0 = $xj ++/* 26237*/ OPC_RecordChild2, // #1 = $xk ++/* 26238*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITREV_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 3761:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVBITREV_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 26246*/ /*Scope*/ 13, /*->26260*/ ++/* 26247*/ OPC_CheckChild0Integer, 50|128,29/*3762*/, ++/* 26250*/ OPC_RecordChild1, // #0 = $xj ++/* 26251*/ OPC_RecordChild2, // #1 = $xk ++/* 26252*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITREV_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3762:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVBITREV_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 26260*/ /*Scope*/ 13, /*->26274*/ ++/* 26261*/ OPC_CheckChild0Integer, 48|128,29/*3760*/, ++/* 26264*/ OPC_RecordChild1, // #0 = $xj ++/* 26265*/ OPC_RecordChild2, // #1 = $xk ++/* 26266*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITREV_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3760:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVBITREV_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 26274*/ /*Scope*/ 13, /*->26288*/ ++/* 26275*/ OPC_CheckChild0Integer, 43|128,32/*4139*/, ++/* 26278*/ OPC_RecordChild1, // #0 = $xj ++/* 26279*/ OPC_RecordChild2, // #1 = $rk ++/* 26280*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVREPLVE_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4139:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, GPR32Opnd:{ *:[i32] }:$rk) - Complexity = 8 ++ // Dst: (XVREPLVE_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, GPR32Opnd:{ *:[i32] }:$rk) ++/* 26288*/ /*Scope*/ 13, /*->26302*/ ++/* 26289*/ OPC_CheckChild0Integer, 45|128,32/*4141*/, ++/* 26292*/ OPC_RecordChild1, // #0 = $xj ++/* 26293*/ OPC_RecordChild2, // #1 = $rk ++/* 26294*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVREPLVE_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4141:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, GPR32Opnd:{ *:[i32] }:$rk) - Complexity = 8 ++ // Dst: (XVREPLVE_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, GPR32Opnd:{ *:[i32] }:$rk) ++/* 26302*/ /*Scope*/ 13, /*->26316*/ ++/* 26303*/ OPC_CheckChild0Integer, 46|128,32/*4142*/, ++/* 26306*/ OPC_RecordChild1, // #0 = $xj ++/* 26307*/ OPC_RecordChild2, // #1 = $rk ++/* 26308*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVREPLVE_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4142:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, GPR32Opnd:{ *:[i32] }:$rk) - Complexity = 8 ++ // Dst: (XVREPLVE_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, GPR32Opnd:{ *:[i32] }:$rk) ++/* 26316*/ /*Scope*/ 13, /*->26330*/ ++/* 26317*/ OPC_CheckChild0Integer, 44|128,32/*4140*/, ++/* 26320*/ OPC_RecordChild1, // #0 = $xj ++/* 26321*/ OPC_RecordChild2, // #1 = $rk ++/* 26322*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVREPLVE_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4140:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, GPR32Opnd:{ *:[i32] }:$rk) - Complexity = 8 ++ // Dst: (XVREPLVE_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, GPR32Opnd:{ *:[i32] }:$rk) ++/* 26330*/ /*Scope*/ 13, /*->26344*/ ++/* 26331*/ OPC_CheckChild0Integer, 22|128,29/*3734*/, ++/* 26334*/ OPC_RecordChild1, // #0 = $xj ++/* 26335*/ OPC_RecordChild2, // #1 = $xk ++/* 26336*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVANDN_V), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 3734:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVANDN_V:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 26344*/ /*Scope*/ 13, /*->26358*/ ++/* 26345*/ OPC_CheckChild0Integer, 4|128,32/*4100*/, ++/* 26348*/ OPC_RecordChild1, // #0 = $xj ++/* 26349*/ OPC_RecordChild2, // #1 = $xk ++/* 26350*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVORN_V), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4100:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVORN_V:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 26358*/ /*Scope*/ 15, /*->26374*/ ++/* 26359*/ OPC_CheckChild0Integer, 66|128,30/*3906*/, ++/* 26362*/ OPC_RecordChild1, // #0 = $xd_in ++/* 26363*/ OPC_RecordChild2, // #1 = $xj ++/* 26364*/ OPC_RecordChild3, // #2 = $xk ++/* 26365*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFRSTP_B), 0, ++ MVT::v32i8, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 3906:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xd_in, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVFRSTP_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xd_in, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 26374*/ /*Scope*/ 15, /*->26390*/ ++/* 26375*/ OPC_CheckChild0Integer, 67|128,30/*3907*/, ++/* 26378*/ OPC_RecordChild1, // #0 = $xd_in ++/* 26379*/ OPC_RecordChild2, // #1 = $xj ++/* 26380*/ OPC_RecordChild3, // #2 = $xk ++/* 26381*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFRSTP_H), 0, ++ MVT::v16i16, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 3907:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xd_in, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVFRSTP_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xd_in, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 26390*/ /*Scope*/ 13, /*->26404*/ ++/* 26391*/ OPC_CheckChild0Integer, 114|128,28/*3698*/, ++/* 26394*/ OPC_RecordChild1, // #0 = $xj ++/* 26395*/ OPC_RecordChild2, // #1 = $xk ++/* 26396*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVADD_Q), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3698:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVADD_Q:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 26404*/ /*Scope*/ 13, /*->26418*/ ++/* 26405*/ OPC_CheckChild0Integer, 19|128,34/*4371*/, ++/* 26408*/ OPC_RecordChild1, // #0 = $xj ++/* 26409*/ OPC_RecordChild2, // #1 = $xk ++/* 26410*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSUB_Q), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4371:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVSUB_Q:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 26418*/ /*Scope*/ 13, /*->26432*/ ++/* 26419*/ OPC_CheckChild0Integer, 92|128,32/*4188*/, ++/* 26422*/ OPC_RecordChild1, // #0 = $xj ++/* 26423*/ OPC_RecordChild2, // #1 = $xk ++/* 26424*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSIGNCOV_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4188:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVSIGNCOV_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 26432*/ /*Scope*/ 13, /*->26446*/ ++/* 26433*/ OPC_CheckChild0Integer, 94|128,32/*4190*/, ++/* 26436*/ OPC_RecordChild1, // #0 = $xj ++/* 26437*/ OPC_RecordChild2, // #1 = $xk ++/* 26438*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSIGNCOV_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4190:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVSIGNCOV_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 26446*/ /*Scope*/ 13, /*->26460*/ ++/* 26447*/ OPC_CheckChild0Integer, 95|128,32/*4191*/, ++/* 26450*/ OPC_RecordChild1, // #0 = $xj ++/* 26451*/ OPC_RecordChild2, // #1 = $xk ++/* 26452*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSIGNCOV_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4191:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVSIGNCOV_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 26460*/ /*Scope*/ 13, /*->26474*/ ++/* 26461*/ OPC_CheckChild0Integer, 93|128,32/*4189*/, ++/* 26464*/ OPC_RecordChild1, // #0 = $xj ++/* 26465*/ OPC_RecordChild2, // #1 = $xk ++/* 26466*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSIGNCOV_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4189:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVSIGNCOV_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 26474*/ /*Scope*/ 13, /*->26488*/ ++/* 26475*/ OPC_CheckChild0Integer, 17|128,30/*3857*/, ++/* 26478*/ OPC_RecordChild1, // #0 = $xj ++/* 26479*/ OPC_RecordChild2, // #1 = $xk ++/* 26480*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCVT_H_S), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 3857:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk) - Complexity = 8 ++ // Dst: (XVFCVT_H_S:{ *:[v16i16] } LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk) ++/* 26488*/ /*Scope*/ 13, /*->26502*/ ++/* 26489*/ OPC_CheckChild0Integer, 76|128,30/*3916*/, ++/* 26492*/ OPC_RecordChild1, // #0 = $xj ++/* 26493*/ OPC_RecordChild2, // #1 = $xk ++/* 26494*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFTINT_W_D), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3916:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) - Complexity = 8 ++ // Dst: (XVFTINT_W_D:{ *:[v8i32] } LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) ++/* 26502*/ /*Scope*/ 13, /*->26516*/ ++/* 26503*/ OPC_CheckChild0Integer, 82|128,30/*3922*/, ++/* 26506*/ OPC_RecordChild1, // #0 = $xj ++/* 26507*/ OPC_RecordChild2, // #1 = $xk ++/* 26508*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFTINTRM_W_D), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3922:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) - Complexity = 8 ++ // Dst: (XVFTINTRM_W_D:{ *:[v8i32] } LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) ++/* 26516*/ /*Scope*/ 13, /*->26530*/ ++/* 26517*/ OPC_CheckChild0Integer, 92|128,30/*3932*/, ++/* 26520*/ OPC_RecordChild1, // #0 = $xj ++/* 26521*/ OPC_RecordChild2, // #1 = $xk ++/* 26522*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFTINTRP_W_D), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3932:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) - Complexity = 8 ++ // Dst: (XVFTINTRP_W_D:{ *:[v8i32] } LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) ++/* 26530*/ /*Scope*/ 13, /*->26544*/ ++/* 26531*/ OPC_CheckChild0Integer, 98|128,30/*3938*/, ++/* 26534*/ OPC_RecordChild1, // #0 = $xj ++/* 26535*/ OPC_RecordChild2, // #1 = $xk ++/* 26536*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFTINTRZ_W_D), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3938:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) - Complexity = 8 ++ // Dst: (XVFTINTRZ_W_D:{ *:[v8i32] } LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) ++/* 26544*/ /*Scope*/ 13, /*->26558*/ ++/* 26545*/ OPC_CheckChild0Integer, 87|128,30/*3927*/, ++/* 26548*/ OPC_RecordChild1, // #0 = $xj ++/* 26549*/ OPC_RecordChild2, // #1 = $xk ++/* 26550*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFTINTRNE_W_D), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3927:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) - Complexity = 8 ++ // Dst: (XVFTINTRNE_W_D:{ *:[v8i32] } LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) ++/* 26558*/ /*Scope*/ 13, /*->26572*/ ++/* 26559*/ OPC_CheckChild0Integer, 17|128,32/*4113*/, ++/* 26562*/ OPC_RecordChild1, // #0 = $xj ++/* 26563*/ OPC_RecordChild2, // #1 = $xk ++/* 26564*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPERM_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4113:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVPERM_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 26572*/ /*Scope*/ 11, /*->26584*/ ++/* 26573*/ OPC_CheckChild0Integer, 67|128,29/*3779*/, ++/* 26576*/ OPC_RecordChild1, // #0 = $xj ++/* 26577*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVCLO_B), 0, ++ MVT::v32i8, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 3779:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj) - Complexity = 8 ++ // Dst: (XVCLO_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj) ++/* 26584*/ /*Scope*/ 11, /*->26596*/ ++/* 26585*/ OPC_CheckChild0Integer, 69|128,29/*3781*/, ++/* 26588*/ OPC_RecordChild1, // #0 = $xj ++/* 26589*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVCLO_H), 0, ++ MVT::v16i16, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 3781:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj) - Complexity = 8 ++ // Dst: (XVCLO_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj) ++/* 26596*/ /*Scope*/ 11, /*->26608*/ ++/* 26597*/ OPC_CheckChild0Integer, 70|128,29/*3782*/, ++/* 26600*/ OPC_RecordChild1, // #0 = $xj ++/* 26601*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVCLO_W), 0, ++ MVT::v8i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3782:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj) - Complexity = 8 ++ // Dst: (XVCLO_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj) ++/* 26608*/ /*Scope*/ 11, /*->26620*/ ++/* 26609*/ OPC_CheckChild0Integer, 68|128,29/*3780*/, ++/* 26612*/ OPC_RecordChild1, // #0 = $xj ++/* 26613*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVCLO_D), 0, ++ MVT::v4i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3780:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj) - Complexity = 8 ++ // Dst: (XVCLO_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj) ++/* 26620*/ /*Scope*/ 11, /*->26632*/ ++/* 26621*/ OPC_CheckChild0Integer, 124|128,31/*4092*/, ++/* 26624*/ OPC_RecordChild1, // #0 = $xj ++/* 26625*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVNEG_B), 0, ++ MVT::v32i8, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4092:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj) - Complexity = 8 ++ // Dst: (XVNEG_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj) ++/* 26632*/ /*Scope*/ 11, /*->26644*/ ++/* 26633*/ OPC_CheckChild0Integer, 126|128,31/*4094*/, ++/* 26636*/ OPC_RecordChild1, // #0 = $xj ++/* 26637*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVNEG_H), 0, ++ MVT::v16i16, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4094:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj) - Complexity = 8 ++ // Dst: (XVNEG_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj) ++/* 26644*/ /*Scope*/ 11, /*->26656*/ ++/* 26645*/ OPC_CheckChild0Integer, 127|128,31/*4095*/, ++/* 26648*/ OPC_RecordChild1, // #0 = $xj ++/* 26649*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVNEG_W), 0, ++ MVT::v8i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4095:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj) - Complexity = 8 ++ // Dst: (XVNEG_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj) ++/* 26656*/ /*Scope*/ 11, /*->26668*/ ++/* 26657*/ OPC_CheckChild0Integer, 125|128,31/*4093*/, ++/* 26660*/ OPC_RecordChild1, // #0 = $xj ++/* 26661*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVNEG_D), 0, ++ MVT::v4i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4093:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj) - Complexity = 8 ++ // Dst: (XVNEG_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj) ++/* 26668*/ /*Scope*/ 11, /*->26680*/ ++/* 26669*/ OPC_CheckChild0Integer, 79|128,31/*4047*/, ++/* 26672*/ OPC_RecordChild1, // #0 = $xj ++/* 26673*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMSKLTZ_B), 0, ++ MVT::v32i8, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4047:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj) - Complexity = 8 ++ // Dst: (XVMSKLTZ_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj) ++/* 26680*/ /*Scope*/ 11, /*->26692*/ ++/* 26681*/ OPC_CheckChild0Integer, 81|128,31/*4049*/, ++/* 26684*/ OPC_RecordChild1, // #0 = $xj ++/* 26685*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMSKLTZ_H), 0, ++ MVT::v16i16, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4049:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj) - Complexity = 8 ++ // Dst: (XVMSKLTZ_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj) ++/* 26692*/ /*Scope*/ 11, /*->26704*/ ++/* 26693*/ OPC_CheckChild0Integer, 82|128,31/*4050*/, ++/* 26696*/ OPC_RecordChild1, // #0 = $xj ++/* 26697*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMSKLTZ_W), 0, ++ MVT::v8i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4050:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj) - Complexity = 8 ++ // Dst: (XVMSKLTZ_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj) ++/* 26704*/ /*Scope*/ 11, /*->26716*/ ++/* 26705*/ OPC_CheckChild0Integer, 80|128,31/*4048*/, ++/* 26708*/ OPC_RecordChild1, // #0 = $xj ++/* 26709*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMSKLTZ_D), 0, ++ MVT::v4i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4048:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj) - Complexity = 8 ++ // Dst: (XVMSKLTZ_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj) ++/* 26716*/ /*Scope*/ 11, /*->26728*/ ++/* 26717*/ OPC_CheckChild0Integer, 78|128,31/*4046*/, ++/* 26720*/ OPC_RecordChild1, // #0 = $xj ++/* 26721*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMSKGEZ_B), 0, ++ MVT::v32i8, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4046:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj) - Complexity = 8 ++ // Dst: (XVMSKGEZ_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj) ++/* 26728*/ /*Scope*/ 11, /*->26740*/ ++/* 26729*/ OPC_CheckChild0Integer, 83|128,31/*4051*/, ++/* 26732*/ OPC_RecordChild1, // #0 = $xj ++/* 26733*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMSKNZ_B), 0, ++ MVT::v32i8, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4051:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj) - Complexity = 8 ++ // Dst: (XVMSKNZ_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj) ++/* 26740*/ /*Scope*/ 11, /*->26752*/ ++/* 26741*/ OPC_CheckChild0Integer, 100|128,29/*3812*/, ++/* 26744*/ OPC_RecordChild1, // #0 = $xj ++/* 26745*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCLASS_S), 0, ++ MVT::v8i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3812:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8f32] }:$xj) - Complexity = 8 ++ // Dst: (XVFCLASS_S:{ *:[v8i32] } LASX256WOpnd:{ *:[v8f32] }:$xj) ++/* 26752*/ /*Scope*/ 11, /*->26764*/ ++/* 26753*/ OPC_CheckChild0Integer, 99|128,29/*3811*/, ++/* 26756*/ OPC_RecordChild1, // #0 = $xj ++/* 26757*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCLASS_D), 0, ++ MVT::v4i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3811:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4f64] }:$xj) - Complexity = 8 ++ // Dst: (XVFCLASS_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4f64] }:$xj) ++/* 26764*/ /*Scope*/ 11, /*->26776*/ ++/* 26765*/ OPC_CheckChild0Integer, 57|128,30/*3897*/, ++/* 26768*/ OPC_RecordChild1, // #0 = $xj ++/* 26769*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFRINTRM_S), 0, ++ MVT::v8i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3897:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8f32] }:$xj) - Complexity = 8 ++ // Dst: (XVFRINTRM_S:{ *:[v8i32] } LASX256WOpnd:{ *:[v8f32] }:$xj) ++/* 26776*/ /*Scope*/ 11, /*->26788*/ ++/* 26777*/ OPC_CheckChild0Integer, 56|128,30/*3896*/, ++/* 26780*/ OPC_RecordChild1, // #0 = $xj ++/* 26781*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFRINTRM_D), 0, ++ MVT::v4i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3896:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4f64] }:$xj) - Complexity = 8 ++ // Dst: (XVFRINTRM_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4f64] }:$xj) ++/* 26788*/ /*Scope*/ 11, /*->26800*/ ++/* 26789*/ OPC_CheckChild0Integer, 61|128,30/*3901*/, ++/* 26792*/ OPC_RecordChild1, // #0 = $xj ++/* 26793*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFRINTRP_S), 0, ++ MVT::v8i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3901:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8f32] }:$xj) - Complexity = 8 ++ // Dst: (XVFRINTRP_S:{ *:[v8i32] } LASX256WOpnd:{ *:[v8f32] }:$xj) ++/* 26800*/ /*Scope*/ 11, /*->26812*/ ++/* 26801*/ OPC_CheckChild0Integer, 60|128,30/*3900*/, ++/* 26804*/ OPC_RecordChild1, // #0 = $xj ++/* 26805*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFRINTRP_D), 0, ++ MVT::v4i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3900:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4f64] }:$xj) - Complexity = 8 ++ // Dst: (XVFRINTRP_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4f64] }:$xj) ++/* 26812*/ /*Scope*/ 11, /*->26824*/ ++/* 26813*/ OPC_CheckChild0Integer, 63|128,30/*3903*/, ++/* 26816*/ OPC_RecordChild1, // #0 = $xj ++/* 26817*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFRINTRZ_S), 0, ++ MVT::v8i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3903:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8f32] }:$xj) - Complexity = 8 ++ // Dst: (XVFRINTRZ_S:{ *:[v8i32] } LASX256WOpnd:{ *:[v8f32] }:$xj) ++/* 26824*/ /*Scope*/ 11, /*->26836*/ ++/* 26825*/ OPC_CheckChild0Integer, 62|128,30/*3902*/, ++/* 26828*/ OPC_RecordChild1, // #0 = $xj ++/* 26829*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFRINTRZ_D), 0, ++ MVT::v4i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3902:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4f64] }:$xj) - Complexity = 8 ++ // Dst: (XVFRINTRZ_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4f64] }:$xj) ++/* 26836*/ /*Scope*/ 11, /*->26848*/ ++/* 26837*/ OPC_CheckChild0Integer, 59|128,30/*3899*/, ++/* 26840*/ OPC_RecordChild1, // #0 = $xj ++/* 26841*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFRINTRNE_S), 0, ++ MVT::v8i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3899:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8f32] }:$xj) - Complexity = 8 ++ // Dst: (XVFRINTRNE_S:{ *:[v8i32] } LASX256WOpnd:{ *:[v8f32] }:$xj) ++/* 26848*/ /*Scope*/ 11, /*->26860*/ ++/* 26849*/ OPC_CheckChild0Integer, 58|128,30/*3898*/, ++/* 26852*/ OPC_RecordChild1, // #0 = $xj ++/* 26853*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFRINTRNE_D), 0, ++ MVT::v4i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3898:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4f64] }:$xj) - Complexity = 8 ++ // Dst: (XVFRINTRNE_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4f64] }:$xj) ++/* 26860*/ /*Scope*/ 11, /*->26872*/ ++/* 26861*/ OPC_CheckChild0Integer, 77|128,30/*3917*/, ++/* 26864*/ OPC_RecordChild1, // #0 = $xj ++/* 26865*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFTINT_W_S), 0, ++ MVT::v8i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3917:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8f32] }:$xj) - Complexity = 8 ++ // Dst: (XVFTINT_W_S:{ *:[v8i32] } LASX256WOpnd:{ *:[v8f32] }:$xj) ++/* 26872*/ /*Scope*/ 11, /*->26884*/ ++/* 26873*/ OPC_CheckChild0Integer, 74|128,30/*3914*/, ++/* 26876*/ OPC_RecordChild1, // #0 = $xj ++/* 26877*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFTINT_L_D), 0, ++ MVT::v4i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3914:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4f64] }:$xj) - Complexity = 8 ++ // Dst: (XVFTINT_L_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4f64] }:$xj) ++/* 26884*/ /*Scope*/ 11, /*->26896*/ ++/* 26885*/ OPC_CheckChild0Integer, 83|128,30/*3923*/, ++/* 26888*/ OPC_RecordChild1, // #0 = $xj ++/* 26889*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFTINTRM_W_S), 0, ++ MVT::v8i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3923:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8f32] }:$xj) - Complexity = 8 ++ // Dst: (XVFTINTRM_W_S:{ *:[v8i32] } LASX256WOpnd:{ *:[v8f32] }:$xj) ++/* 26896*/ /*Scope*/ 11, /*->26908*/ ++/* 26897*/ OPC_CheckChild0Integer, 81|128,30/*3921*/, ++/* 26900*/ OPC_RecordChild1, // #0 = $xj ++/* 26901*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFTINTRM_L_D), 0, ++ MVT::v4i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3921:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4f64] }:$xj) - Complexity = 8 ++ // Dst: (XVFTINTRM_L_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4f64] }:$xj) ++/* 26908*/ /*Scope*/ 11, /*->26920*/ ++/* 26909*/ OPC_CheckChild0Integer, 93|128,30/*3933*/, ++/* 26912*/ OPC_RecordChild1, // #0 = $xj ++/* 26913*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFTINTRP_W_S), 0, ++ MVT::v8i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3933:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8f32] }:$xj) - Complexity = 8 ++ // Dst: (XVFTINTRP_W_S:{ *:[v8i32] } LASX256WOpnd:{ *:[v8f32] }:$xj) ++/* 26920*/ /*Scope*/ 11, /*->26932*/ ++/* 26921*/ OPC_CheckChild0Integer, 91|128,30/*3931*/, ++/* 26924*/ OPC_RecordChild1, // #0 = $xj ++/* 26925*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFTINTRP_L_D), 0, ++ MVT::v4i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3931:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4f64] }:$xj) - Complexity = 8 ++ // Dst: (XVFTINTRP_L_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4f64] }:$xj) ++/* 26932*/ /*Scope*/ 11, /*->26944*/ ++/* 26933*/ OPC_CheckChild0Integer, 88|128,30/*3928*/, ++/* 26936*/ OPC_RecordChild1, // #0 = $xj ++/* 26937*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFTINTRNE_W_S), 0, ++ MVT::v8i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3928:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8f32] }:$xj) - Complexity = 8 ++ // Dst: (XVFTINTRNE_W_S:{ *:[v8i32] } LASX256WOpnd:{ *:[v8f32] }:$xj) ++/* 26944*/ /*Scope*/ 11, /*->26956*/ ++/* 26945*/ OPC_CheckChild0Integer, 86|128,30/*3926*/, ++/* 26948*/ OPC_RecordChild1, // #0 = $xj ++/* 26949*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFTINTRNE_L_D), 0, ++ MVT::v4i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3926:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4f64] }:$xj) - Complexity = 8 ++ // Dst: (XVFTINTRNE_L_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4f64] }:$xj) ++/* 26956*/ /*Scope*/ 11, /*->26968*/ ++/* 26957*/ OPC_CheckChild0Integer, 78|128,30/*3918*/, ++/* 26960*/ OPC_RecordChild1, // #0 = $xj ++/* 26961*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFTINT_WU_S), 0, ++ MVT::v8i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3918:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8f32] }:$xj) - Complexity = 8 ++ // Dst: (XVFTINT_WU_S:{ *:[v8i32] } LASX256WOpnd:{ *:[v8f32] }:$xj) ++/* 26968*/ /*Scope*/ 11, /*->26980*/ ++/* 26969*/ OPC_CheckChild0Integer, 75|128,30/*3915*/, ++/* 26972*/ OPC_RecordChild1, // #0 = $xj ++/* 26973*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFTINT_LU_D), 0, ++ MVT::v4i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3915:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4f64] }:$xj) - Complexity = 8 ++ // Dst: (XVFTINT_LU_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4f64] }:$xj) ++/* 26980*/ /*Scope*/ 11, /*->26992*/ ++/* 26981*/ OPC_CheckChild0Integer, 80|128,30/*3920*/, ++/* 26984*/ OPC_RecordChild1, // #0 = $xj ++/* 26985*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFTINTL_L_S), 0, ++ MVT::v4i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3920:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8f32] }:$xj) - Complexity = 8 ++ // Dst: (XVFTINTL_L_S:{ *:[v4i64] } LASX256WOpnd:{ *:[v8f32] }:$xj) ++/* 26992*/ /*Scope*/ 11, /*->27004*/ ++/* 26993*/ OPC_CheckChild0Integer, 79|128,30/*3919*/, ++/* 26996*/ OPC_RecordChild1, // #0 = $xj ++/* 26997*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFTINTH_L_S), 0, ++ MVT::v4i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3919:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8f32] }:$xj) - Complexity = 8 ++ // Dst: (XVFTINTH_L_S:{ *:[v4i64] } LASX256WOpnd:{ *:[v8f32] }:$xj) ++/* 27004*/ /*Scope*/ 11, /*->27016*/ ++/* 27005*/ OPC_CheckChild0Integer, 85|128,30/*3925*/, ++/* 27008*/ OPC_RecordChild1, // #0 = $xj ++/* 27009*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFTINTRML_L_S), 0, ++ MVT::v4i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3925:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8f32] }:$xj) - Complexity = 8 ++ // Dst: (XVFTINTRML_L_S:{ *:[v4i64] } LASX256WOpnd:{ *:[v8f32] }:$xj) ++/* 27016*/ /*Scope*/ 11, /*->27028*/ ++/* 27017*/ OPC_CheckChild0Integer, 84|128,30/*3924*/, ++/* 27020*/ OPC_RecordChild1, // #0 = $xj ++/* 27021*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFTINTRMH_L_S), 0, ++ MVT::v4i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3924:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8f32] }:$xj) - Complexity = 8 ++ // Dst: (XVFTINTRMH_L_S:{ *:[v4i64] } LASX256WOpnd:{ *:[v8f32] }:$xj) ++/* 27028*/ /*Scope*/ 11, /*->27040*/ ++/* 27029*/ OPC_CheckChild0Integer, 95|128,30/*3935*/, ++/* 27032*/ OPC_RecordChild1, // #0 = $xj ++/* 27033*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFTINTRPL_L_S), 0, ++ MVT::v4i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3935:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8f32] }:$xj) - Complexity = 8 ++ // Dst: (XVFTINTRPL_L_S:{ *:[v4i64] } LASX256WOpnd:{ *:[v8f32] }:$xj) ++/* 27040*/ /*Scope*/ 11, /*->27052*/ ++/* 27041*/ OPC_CheckChild0Integer, 94|128,30/*3934*/, ++/* 27044*/ OPC_RecordChild1, // #0 = $xj ++/* 27045*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFTINTRPH_L_S), 0, ++ MVT::v4i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3934:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8f32] }:$xj) - Complexity = 8 ++ // Dst: (XVFTINTRPH_L_S:{ *:[v4i64] } LASX256WOpnd:{ *:[v8f32] }:$xj) ++/* 27052*/ /*Scope*/ 11, /*->27064*/ ++/* 27053*/ OPC_CheckChild0Integer, 102|128,30/*3942*/, ++/* 27056*/ OPC_RecordChild1, // #0 = $xj ++/* 27057*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFTINTRZL_L_S), 0, ++ MVT::v4i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3942:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8f32] }:$xj) - Complexity = 8 ++ // Dst: (XVFTINTRZL_L_S:{ *:[v4i64] } LASX256WOpnd:{ *:[v8f32] }:$xj) ++/* 27064*/ /*Scope*/ 11, /*->27076*/ ++/* 27065*/ OPC_CheckChild0Integer, 101|128,30/*3941*/, ++/* 27068*/ OPC_RecordChild1, // #0 = $xj ++/* 27069*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFTINTRZH_L_S), 0, ++ MVT::v4i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3941:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8f32] }:$xj) - Complexity = 8 ++ // Dst: (XVFTINTRZH_L_S:{ *:[v4i64] } LASX256WOpnd:{ *:[v8f32] }:$xj) ++/* 27076*/ /*Scope*/ 11, /*->27088*/ ++/* 27077*/ OPC_CheckChild0Integer, 90|128,30/*3930*/, ++/* 27080*/ OPC_RecordChild1, // #0 = $xj ++/* 27081*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFTINTRNEL_L_S), 0, ++ MVT::v4i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3930:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8f32] }:$xj) - Complexity = 8 ++ // Dst: (XVFTINTRNEL_L_S:{ *:[v4i64] } LASX256WOpnd:{ *:[v8f32] }:$xj) ++/* 27088*/ /*Scope*/ 11, /*->27100*/ ++/* 27089*/ OPC_CheckChild0Integer, 89|128,30/*3929*/, ++/* 27092*/ OPC_RecordChild1, // #0 = $xj ++/* 27093*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFTINTRNEH_L_S), 0, ++ MVT::v4i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3929:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8f32] }:$xj) - Complexity = 8 ++ // Dst: (XVFTINTRNEH_L_S:{ *:[v4i64] } LASX256WOpnd:{ *:[v8f32] }:$xj) ++/* 27100*/ /*Scope*/ 11, /*->27112*/ ++/* 27101*/ OPC_CheckChild0Integer, 85|128,29/*3797*/, ++/* 27104*/ OPC_RecordChild1, // #0 = $xj ++/* 27105*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVEXTH_H_B), 0, ++ MVT::v16i16, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 3797:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj) - Complexity = 8 ++ // Dst: (XVEXTH_H_B:{ *:[v16i16] } LASX256BOpnd:{ *:[v32i8] }:$xj) ++/* 27112*/ /*Scope*/ 11, /*->27124*/ ++/* 27113*/ OPC_CheckChild0Integer, 89|128,29/*3801*/, ++/* 27116*/ OPC_RecordChild1, // #0 = $xj ++/* 27117*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVEXTH_W_H), 0, ++ MVT::v8i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3801:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj) - Complexity = 8 ++ // Dst: (XVEXTH_W_H:{ *:[v8i32] } LASX256HOpnd:{ *:[v16i16] }:$xj) ++/* 27124*/ /*Scope*/ 11, /*->27136*/ ++/* 27125*/ OPC_CheckChild0Integer, 83|128,29/*3795*/, ++/* 27128*/ OPC_RecordChild1, // #0 = $xj ++/* 27129*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVEXTH_D_W), 0, ++ MVT::v4i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3795:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj) - Complexity = 8 ++ // Dst: (XVEXTH_D_W:{ *:[v4i64] } LASX256WOpnd:{ *:[v8i32] }:$xj) ++/* 27136*/ /*Scope*/ 11, /*->27148*/ ++/* 27137*/ OPC_CheckChild0Integer, 87|128,29/*3799*/, ++/* 27140*/ OPC_RecordChild1, // #0 = $xj ++/* 27141*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVEXTH_Q_D), 0, ++ MVT::v4i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3799:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj) - Complexity = 8 ++ // Dst: (XVEXTH_Q_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj) ++/* 27148*/ /*Scope*/ 11, /*->27160*/ ++/* 27149*/ OPC_CheckChild0Integer, 86|128,29/*3798*/, ++/* 27152*/ OPC_RecordChild1, // #0 = $xj ++/* 27153*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVEXTH_HU_BU), 0, ++ MVT::v16i16, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 3798:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj) - Complexity = 8 ++ // Dst: (XVEXTH_HU_BU:{ *:[v16i16] } LASX256BOpnd:{ *:[v32i8] }:$xj) ++/* 27160*/ /*Scope*/ 11, /*->27172*/ ++/* 27161*/ OPC_CheckChild0Integer, 90|128,29/*3802*/, ++/* 27164*/ OPC_RecordChild1, // #0 = $xj ++/* 27165*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVEXTH_WU_HU), 0, ++ MVT::v8i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3802:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj) - Complexity = 8 ++ // Dst: (XVEXTH_WU_HU:{ *:[v8i32] } LASX256HOpnd:{ *:[v16i16] }:$xj) ++/* 27172*/ /*Scope*/ 11, /*->27184*/ ++/* 27173*/ OPC_CheckChild0Integer, 84|128,29/*3796*/, ++/* 27176*/ OPC_RecordChild1, // #0 = $xj ++/* 27177*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVEXTH_DU_WU), 0, ++ MVT::v4i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3796:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj) - Complexity = 8 ++ // Dst: (XVEXTH_DU_WU:{ *:[v4i64] } LASX256WOpnd:{ *:[v8i32] }:$xj) ++/* 27184*/ /*Scope*/ 11, /*->27196*/ ++/* 27185*/ OPC_CheckChild0Integer, 88|128,29/*3800*/, ++/* 27188*/ OPC_RecordChild1, // #0 = $xj ++/* 27189*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVEXTH_QU_DU), 0, ++ MVT::v4i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3800:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj) - Complexity = 8 ++ // Dst: (XVEXTH_QU_DU:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj) ++/* 27196*/ /*Scope*/ 11, /*->27208*/ ++/* 27197*/ OPC_CheckChild0Integer, 87|128,28/*3671*/, ++/* 27200*/ OPC_RecordChild1, // #0 = $xj ++/* 27201*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VEXT2XV_H_B), 0, ++ MVT::v16i16, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 3671:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj) - Complexity = 8 ++ // Dst: (VEXT2XV_H_B:{ *:[v16i16] } LASX256BOpnd:{ *:[v32i8] }:$xj) ++/* 27208*/ /*Scope*/ 11, /*->27220*/ ++/* 27209*/ OPC_CheckChild0Integer, 89|128,28/*3673*/, ++/* 27212*/ OPC_RecordChild1, // #0 = $xj ++/* 27213*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VEXT2XV_W_B), 0, ++ MVT::v8i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3673:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj) - Complexity = 8 ++ // Dst: (VEXT2XV_W_B:{ *:[v8i32] } LASX256BOpnd:{ *:[v32i8] }:$xj) ++/* 27220*/ /*Scope*/ 11, /*->27232*/ ++/* 27221*/ OPC_CheckChild0Integer, 81|128,28/*3665*/, ++/* 27224*/ OPC_RecordChild1, // #0 = $xj ++/* 27225*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VEXT2XV_D_B), 0, ++ MVT::v4i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3665:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj) - Complexity = 8 ++ // Dst: (VEXT2XV_D_B:{ *:[v4i64] } LASX256BOpnd:{ *:[v32i8] }:$xj) ++/* 27232*/ /*Scope*/ 11, /*->27244*/ ++/* 27233*/ OPC_CheckChild0Integer, 90|128,28/*3674*/, ++/* 27236*/ OPC_RecordChild1, // #0 = $xj ++/* 27237*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VEXT2XV_W_H), 0, ++ MVT::v8i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3674:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj) - Complexity = 8 ++ // Dst: (VEXT2XV_W_H:{ *:[v8i32] } LASX256HOpnd:{ *:[v16i16] }:$xj) ++/* 27244*/ /*Scope*/ 11, /*->27256*/ ++/* 27245*/ OPC_CheckChild0Integer, 82|128,28/*3666*/, ++/* 27248*/ OPC_RecordChild1, // #0 = $xj ++/* 27249*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VEXT2XV_D_H), 0, ++ MVT::v4i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3666:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj) - Complexity = 8 ++ // Dst: (VEXT2XV_D_H:{ *:[v4i64] } LASX256HOpnd:{ *:[v16i16] }:$xj) ++/* 27256*/ /*Scope*/ 11, /*->27268*/ ++/* 27257*/ OPC_CheckChild0Integer, 83|128,28/*3667*/, ++/* 27260*/ OPC_RecordChild1, // #0 = $xj ++/* 27261*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VEXT2XV_D_W), 0, ++ MVT::v4i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3667:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj) - Complexity = 8 ++ // Dst: (VEXT2XV_D_W:{ *:[v4i64] } LASX256WOpnd:{ *:[v8i32] }:$xj) ++/* 27268*/ /*Scope*/ 11, /*->27280*/ ++/* 27269*/ OPC_CheckChild0Integer, 88|128,28/*3672*/, ++/* 27272*/ OPC_RecordChild1, // #0 = $xj ++/* 27273*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VEXT2XV_HU_BU), 0, ++ MVT::v16i16, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 3672:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj) - Complexity = 8 ++ // Dst: (VEXT2XV_HU_BU:{ *:[v16i16] } LASX256BOpnd:{ *:[v32i8] }:$xj) ++/* 27280*/ /*Scope*/ 11, /*->27292*/ ++/* 27281*/ OPC_CheckChild0Integer, 91|128,28/*3675*/, ++/* 27284*/ OPC_RecordChild1, // #0 = $xj ++/* 27285*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VEXT2XV_WU_BU), 0, ++ MVT::v8i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3675:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj) - Complexity = 8 ++ // Dst: (VEXT2XV_WU_BU:{ *:[v8i32] } LASX256BOpnd:{ *:[v32i8] }:$xj) ++/* 27292*/ /*Scope*/ 11, /*->27304*/ ++/* 27293*/ OPC_CheckChild0Integer, 84|128,28/*3668*/, ++/* 27296*/ OPC_RecordChild1, // #0 = $xj ++/* 27297*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VEXT2XV_DU_BU), 0, ++ MVT::v4i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3668:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj) - Complexity = 8 ++ // Dst: (VEXT2XV_DU_BU:{ *:[v4i64] } LASX256BOpnd:{ *:[v32i8] }:$xj) ++/* 27304*/ /*Scope*/ 11, /*->27316*/ ++/* 27305*/ OPC_CheckChild0Integer, 92|128,28/*3676*/, ++/* 27308*/ OPC_RecordChild1, // #0 = $xj ++/* 27309*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VEXT2XV_WU_HU), 0, ++ MVT::v8i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3676:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj) - Complexity = 8 ++ // Dst: (VEXT2XV_WU_HU:{ *:[v8i32] } LASX256HOpnd:{ *:[v16i16] }:$xj) ++/* 27316*/ /*Scope*/ 11, /*->27328*/ ++/* 27317*/ OPC_CheckChild0Integer, 85|128,28/*3669*/, ++/* 27320*/ OPC_RecordChild1, // #0 = $xj ++/* 27321*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VEXT2XV_DU_HU), 0, ++ MVT::v4i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3669:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj) - Complexity = 8 ++ // Dst: (VEXT2XV_DU_HU:{ *:[v4i64] } LASX256HOpnd:{ *:[v16i16] }:$xj) ++/* 27328*/ /*Scope*/ 11, /*->27340*/ ++/* 27329*/ OPC_CheckChild0Integer, 86|128,28/*3670*/, ++/* 27332*/ OPC_RecordChild1, // #0 = $xj ++/* 27333*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VEXT2XV_DU_WU), 0, ++ MVT::v4i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3670:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj) - Complexity = 8 ++ // Dst: (VEXT2XV_DU_WU:{ *:[v4i64] } LASX256WOpnd:{ *:[v8i32] }:$xj) ++/* 27340*/ /*Scope*/ 11, /*->27352*/ ++/* 27341*/ OPC_CheckChild0Integer, 47|128,32/*4143*/, ++/* 27344*/ OPC_RecordChild1, // #0 = $xj ++/* 27345*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVREPLVE0_B), 0, ++ MVT::v32i8, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4143:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj) - Complexity = 8 ++ // Dst: (XVREPLVE0_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj) ++/* 27352*/ /*Scope*/ 11, /*->27364*/ ++/* 27353*/ OPC_CheckChild0Integer, 49|128,32/*4145*/, ++/* 27356*/ OPC_RecordChild1, // #0 = $xj ++/* 27357*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVREPLVE0_H), 0, ++ MVT::v16i16, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4145:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj) - Complexity = 8 ++ // Dst: (XVREPLVE0_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj) ++/* 27364*/ /*Scope*/ 11, /*->27376*/ ++/* 27365*/ OPC_CheckChild0Integer, 51|128,32/*4147*/, ++/* 27368*/ OPC_RecordChild1, // #0 = $xj ++/* 27369*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVREPLVE0_W), 0, ++ MVT::v8i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4147:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj) - Complexity = 8 ++ // Dst: (XVREPLVE0_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj) ++/* 27376*/ /*Scope*/ 11, /*->27388*/ ++/* 27377*/ OPC_CheckChild0Integer, 50|128,32/*4146*/, ++/* 27380*/ OPC_RecordChild1, // #0 = $xj ++/* 27381*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVREPLVE0_Q), 0, ++ MVT::v32i8, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4146:{ *:[iPTR] }, LASX256BOpnd:{ *:[v32i8] }:$xj) - Complexity = 8 ++ // Dst: (XVREPLVE0_Q:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj) ++/* 27388*/ /*Scope*/ 11, /*->27400*/ ++/* 27389*/ OPC_CheckChild0Integer, 91|128,29/*3803*/, ++/* 27392*/ OPC_RecordChild1, // #0 = $xj ++/* 27393*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVEXTL_Q_D), 0, ++ MVT::v4i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3803:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj) - Complexity = 8 ++ // Dst: (XVEXTL_Q_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj) ++/* 27400*/ /*Scope*/ 11, /*->27412*/ ++/* 27401*/ OPC_CheckChild0Integer, 92|128,29/*3804*/, ++/* 27404*/ OPC_RecordChild1, // #0 = $xj ++/* 27405*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVEXTL_QU_DU), 0, ++ MVT::v4i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3804:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj) - Complexity = 8 ++ // Dst: (XVEXTL_QU_DU:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj) ++/* 27412*/ /*Scope*/ 15, /*->27428*/ ++/* 27413*/ OPC_CheckChild0Integer, 112|128,29/*3824*/, ++/* 27416*/ OPC_RecordChild1, // #0 = $xj ++/* 27417*/ OPC_RecordChild2, // #1 = $xk ++/* 27418*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 27420*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_COR_S), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3824:{ *:[iPTR] }, LASX256W:{ *:[v8f32] }:$xj, LASX256W:{ *:[v8f32] }:$xk) - Complexity = 8 ++ // Dst: (XVFCMP_COR_S:{ *:[v8i32] } LASX256W:{ *:[v8f32] }:$xj, LASX256W:{ *:[v8f32] }:$xk) ++/* 27428*/ /*Scope*/ 15, /*->27444*/ ++/* 27429*/ OPC_CheckChild0Integer, 111|128,29/*3823*/, ++/* 27432*/ OPC_RecordChild1, // #0 = $xj ++/* 27433*/ OPC_RecordChild2, // #1 = $xk ++/* 27434*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 27436*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_COR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3823:{ *:[iPTR] }, LASX256D:{ *:[v4f64] }:$xj, LASX256D:{ *:[v4f64] }:$xk) - Complexity = 8 ++ // Dst: (XVFCMP_COR_D:{ *:[v4i64] } LASX256D:{ *:[v4f64] }:$xj, LASX256D:{ *:[v4f64] }:$xk) ++/* 27444*/ /*Scope*/ 15, /*->27460*/ ++/* 27445*/ OPC_CheckChild0Integer, 120|128,29/*3832*/, ++/* 27448*/ OPC_RecordChild1, // #0 = $xj ++/* 27449*/ OPC_RecordChild2, // #1 = $xk ++/* 27450*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 27452*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_CUN_S), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3832:{ *:[iPTR] }, LASX256W:{ *:[v8f32] }:$xj, LASX256W:{ *:[v8f32] }:$xk) - Complexity = 8 ++ // Dst: (XVFCMP_CUN_S:{ *:[v8i32] } LASX256W:{ *:[v8f32] }:$xj, LASX256W:{ *:[v8f32] }:$xk) ++/* 27460*/ /*Scope*/ 15, /*->27476*/ ++/* 27461*/ OPC_CheckChild0Integer, 119|128,29/*3831*/, ++/* 27464*/ OPC_RecordChild1, // #0 = $xj ++/* 27465*/ OPC_RecordChild2, // #1 = $xk ++/* 27466*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 27468*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_CUN_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3831:{ *:[iPTR] }, LASX256D:{ *:[v4f64] }:$xj, LASX256D:{ *:[v4f64] }:$xk) - Complexity = 8 ++ // Dst: (XVFCMP_CUN_D:{ *:[v4i64] } LASX256D:{ *:[v4f64] }:$xj, LASX256D:{ *:[v4f64] }:$xk) ++/* 27476*/ /*Scope*/ 15, /*->27492*/ ++/* 27477*/ OPC_CheckChild0Integer, 122|128,29/*3834*/, ++/* 27480*/ OPC_RecordChild1, // #0 = $xj ++/* 27481*/ OPC_RecordChild2, // #1 = $xk ++/* 27482*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 27484*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_CUNE_S), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3834:{ *:[iPTR] }, LASX256W:{ *:[v8f32] }:$xj, LASX256W:{ *:[v8f32] }:$xk) - Complexity = 8 ++ // Dst: (XVFCMP_CUNE_S:{ *:[v8i32] } LASX256W:{ *:[v8f32] }:$xj, LASX256W:{ *:[v8f32] }:$xk) ++/* 27492*/ /*Scope*/ 15, /*->27508*/ ++/* 27493*/ OPC_CheckChild0Integer, 121|128,29/*3833*/, ++/* 27496*/ OPC_RecordChild1, // #0 = $xj ++/* 27497*/ OPC_RecordChild2, // #1 = $xk ++/* 27498*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 27500*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_CUNE_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3833:{ *:[iPTR] }, LASX256D:{ *:[v4f64] }:$xj, LASX256D:{ *:[v4f64] }:$xk) - Complexity = 8 ++ // Dst: (XVFCMP_CUNE_D:{ *:[v4i64] } LASX256D:{ *:[v4f64] }:$xj, LASX256D:{ *:[v4f64] }:$xk) ++/* 27508*/ /*Scope*/ 15, /*->27524*/ ++/* 27509*/ OPC_CheckChild0Integer, 114|128,29/*3826*/, ++/* 27512*/ OPC_RecordChild1, // #0 = $xj ++/* 27513*/ OPC_RecordChild2, // #1 = $xk ++/* 27514*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 27516*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_CUEQ_S), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3826:{ *:[iPTR] }, LASX256W:{ *:[v8f32] }:$xj, LASX256W:{ *:[v8f32] }:$xk) - Complexity = 8 ++ // Dst: (XVFCMP_CUEQ_S:{ *:[v8i32] } LASX256W:{ *:[v8f32] }:$xj, LASX256W:{ *:[v8f32] }:$xk) ++/* 27524*/ /*Scope*/ 15, /*->27540*/ ++/* 27525*/ OPC_CheckChild0Integer, 113|128,29/*3825*/, ++/* 27528*/ OPC_RecordChild1, // #0 = $xj ++/* 27529*/ OPC_RecordChild2, // #1 = $xk ++/* 27530*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 27532*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_CUEQ_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3825:{ *:[iPTR] }, LASX256D:{ *:[v4f64] }:$xj, LASX256D:{ *:[v4f64] }:$xk) - Complexity = 8 ++ // Dst: (XVFCMP_CUEQ_D:{ *:[v4i64] } LASX256D:{ *:[v4f64] }:$xj, LASX256D:{ *:[v4f64] }:$xk) ++/* 27540*/ /*Scope*/ 15, /*->27556*/ ++/* 27541*/ OPC_CheckChild0Integer, 104|128,29/*3816*/, ++/* 27544*/ OPC_RecordChild1, // #0 = $xj ++/* 27545*/ OPC_RecordChild2, // #1 = $xk ++/* 27546*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 27548*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_CEQ_S), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3816:{ *:[iPTR] }, LASX256W:{ *:[v8f32] }:$xj, LASX256W:{ *:[v8f32] }:$xk) - Complexity = 8 ++ // Dst: (XVFCMP_CEQ_S:{ *:[v8i32] } LASX256W:{ *:[v8f32] }:$xj, LASX256W:{ *:[v8f32] }:$xk) ++/* 27556*/ /*Scope*/ 15, /*->27572*/ ++/* 27557*/ OPC_CheckChild0Integer, 103|128,29/*3815*/, ++/* 27560*/ OPC_RecordChild1, // #0 = $xj ++/* 27561*/ OPC_RecordChild2, // #1 = $xk ++/* 27562*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 27564*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_CEQ_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3815:{ *:[iPTR] }, LASX256D:{ *:[v4f64] }:$xj, LASX256D:{ *:[v4f64] }:$xk) - Complexity = 8 ++ // Dst: (XVFCMP_CEQ_D:{ *:[v4i64] } LASX256D:{ *:[v4f64] }:$xj, LASX256D:{ *:[v4f64] }:$xk) ++/* 27572*/ /*Scope*/ 15, /*->27588*/ ++/* 27573*/ OPC_CheckChild0Integer, 110|128,29/*3822*/, ++/* 27576*/ OPC_RecordChild1, // #0 = $xj ++/* 27577*/ OPC_RecordChild2, // #1 = $xk ++/* 27578*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 27580*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_CNE_S), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3822:{ *:[iPTR] }, LASX256W:{ *:[v8f32] }:$xj, LASX256W:{ *:[v8f32] }:$xk) - Complexity = 8 ++ // Dst: (XVFCMP_CNE_S:{ *:[v8i32] } LASX256W:{ *:[v8f32] }:$xj, LASX256W:{ *:[v8f32] }:$xk) ++/* 27588*/ /*Scope*/ 15, /*->27604*/ ++/* 27589*/ OPC_CheckChild0Integer, 109|128,29/*3821*/, ++/* 27592*/ OPC_RecordChild1, // #0 = $xj ++/* 27593*/ OPC_RecordChild2, // #1 = $xk ++/* 27594*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 27596*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_CNE_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3821:{ *:[iPTR] }, LASX256D:{ *:[v4f64] }:$xj, LASX256D:{ *:[v4f64] }:$xk) - Complexity = 8 ++ // Dst: (XVFCMP_CNE_D:{ *:[v4i64] } LASX256D:{ *:[v4f64] }:$xj, LASX256D:{ *:[v4f64] }:$xk) ++/* 27604*/ /*Scope*/ 15, /*->27620*/ ++/* 27605*/ OPC_CheckChild0Integer, 108|128,29/*3820*/, ++/* 27608*/ OPC_RecordChild1, // #0 = $xj ++/* 27609*/ OPC_RecordChild2, // #1 = $xk ++/* 27610*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 27612*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_CLT_S), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3820:{ *:[iPTR] }, LASX256W:{ *:[v8f32] }:$xj, LASX256W:{ *:[v8f32] }:$xk) - Complexity = 8 ++ // Dst: (XVFCMP_CLT_S:{ *:[v8i32] } LASX256W:{ *:[v8f32] }:$xj, LASX256W:{ *:[v8f32] }:$xk) ++/* 27620*/ /*Scope*/ 15, /*->27636*/ ++/* 27621*/ OPC_CheckChild0Integer, 107|128,29/*3819*/, ++/* 27624*/ OPC_RecordChild1, // #0 = $xj ++/* 27625*/ OPC_RecordChild2, // #1 = $xk ++/* 27626*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 27628*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_CLT_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3819:{ *:[iPTR] }, LASX256D:{ *:[v4f64] }:$xj, LASX256D:{ *:[v4f64] }:$xk) - Complexity = 8 ++ // Dst: (XVFCMP_CLT_D:{ *:[v4i64] } LASX256D:{ *:[v4f64] }:$xj, LASX256D:{ *:[v4f64] }:$xk) ++/* 27636*/ /*Scope*/ 15, /*->27652*/ ++/* 27637*/ OPC_CheckChild0Integer, 118|128,29/*3830*/, ++/* 27640*/ OPC_RecordChild1, // #0 = $xj ++/* 27641*/ OPC_RecordChild2, // #1 = $xk ++/* 27642*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 27644*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_CULT_S), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3830:{ *:[iPTR] }, LASX256W:{ *:[v8f32] }:$xj, LASX256W:{ *:[v8f32] }:$xk) - Complexity = 8 ++ // Dst: (XVFCMP_CULT_S:{ *:[v8i32] } LASX256W:{ *:[v8f32] }:$xj, LASX256W:{ *:[v8f32] }:$xk) ++/* 27652*/ /*Scope*/ 15, /*->27668*/ ++/* 27653*/ OPC_CheckChild0Integer, 117|128,29/*3829*/, ++/* 27656*/ OPC_RecordChild1, // #0 = $xj ++/* 27657*/ OPC_RecordChild2, // #1 = $xk ++/* 27658*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 27660*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_CULT_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3829:{ *:[iPTR] }, LASX256D:{ *:[v4f64] }:$xj, LASX256D:{ *:[v4f64] }:$xk) - Complexity = 8 ++ // Dst: (XVFCMP_CULT_D:{ *:[v4i64] } LASX256D:{ *:[v4f64] }:$xj, LASX256D:{ *:[v4f64] }:$xk) ++/* 27668*/ /*Scope*/ 15, /*->27684*/ ++/* 27669*/ OPC_CheckChild0Integer, 106|128,29/*3818*/, ++/* 27672*/ OPC_RecordChild1, // #0 = $xj ++/* 27673*/ OPC_RecordChild2, // #1 = $xk ++/* 27674*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 27676*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_CLE_S), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3818:{ *:[iPTR] }, LASX256W:{ *:[v8f32] }:$xj, LASX256W:{ *:[v8f32] }:$xk) - Complexity = 8 ++ // Dst: (XVFCMP_CLE_S:{ *:[v8i32] } LASX256W:{ *:[v8f32] }:$xj, LASX256W:{ *:[v8f32] }:$xk) ++/* 27684*/ /*Scope*/ 15, /*->27700*/ ++/* 27685*/ OPC_CheckChild0Integer, 105|128,29/*3817*/, ++/* 27688*/ OPC_RecordChild1, // #0 = $xj ++/* 27689*/ OPC_RecordChild2, // #1 = $xk ++/* 27690*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 27692*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_CLE_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3817:{ *:[iPTR] }, LASX256D:{ *:[v4f64] }:$xj, LASX256D:{ *:[v4f64] }:$xk) - Complexity = 8 ++ // Dst: (XVFCMP_CLE_D:{ *:[v4i64] } LASX256D:{ *:[v4f64] }:$xj, LASX256D:{ *:[v4f64] }:$xk) ++/* 27700*/ /*Scope*/ 15, /*->27716*/ ++/* 27701*/ OPC_CheckChild0Integer, 116|128,29/*3828*/, ++/* 27704*/ OPC_RecordChild1, // #0 = $xj ++/* 27705*/ OPC_RecordChild2, // #1 = $xk ++/* 27706*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 27708*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_CULE_S), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3828:{ *:[iPTR] }, LASX256W:{ *:[v8f32] }:$xj, LASX256W:{ *:[v8f32] }:$xk) - Complexity = 8 ++ // Dst: (XVFCMP_CULE_S:{ *:[v8i32] } LASX256W:{ *:[v8f32] }:$xj, LASX256W:{ *:[v8f32] }:$xk) ++/* 27716*/ /*Scope*/ 15, /*->27732*/ ++/* 27717*/ OPC_CheckChild0Integer, 115|128,29/*3827*/, ++/* 27720*/ OPC_RecordChild1, // #0 = $xj ++/* 27721*/ OPC_RecordChild2, // #1 = $xk ++/* 27722*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 27724*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCMP_CULE_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3827:{ *:[iPTR] }, LASX256D:{ *:[v4f64] }:$xj, LASX256D:{ *:[v4f64] }:$xk) - Complexity = 8 ++ // Dst: (XVFCMP_CULE_D:{ *:[v4i64] } LASX256D:{ *:[v4f64] }:$xj, LASX256D:{ *:[v4f64] }:$xk) ++/* 27732*/ /*Scope*/ 15, /*->27748*/ ++/* 27733*/ OPC_CheckChild0Integer, 76|128,32/*4172*/, ++/* 27736*/ OPC_RecordChild1, // #0 = $xj ++/* 27737*/ OPC_RecordChild2, // #1 = $xk ++/* 27738*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 27740*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSEQ_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4172:{ *:[iPTR] }, LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVSEQ_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) ++/* 27748*/ /*Scope*/ 15, /*->27764*/ ++/* 27749*/ OPC_CheckChild0Integer, 78|128,32/*4174*/, ++/* 27752*/ OPC_RecordChild1, // #0 = $xj ++/* 27753*/ OPC_RecordChild2, // #1 = $xk ++/* 27754*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 27756*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSEQ_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4174:{ *:[iPTR] }, LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVSEQ_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) ++/* 27764*/ /*Scope*/ 15, /*->27780*/ ++/* 27765*/ OPC_CheckChild0Integer, 79|128,32/*4175*/, ++/* 27768*/ OPC_RecordChild1, // #0 = $xj ++/* 27769*/ OPC_RecordChild2, // #1 = $xk ++/* 27770*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 27772*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSEQ_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4175:{ *:[iPTR] }, LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVSEQ_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) ++/* 27780*/ /*Scope*/ 15, /*->27796*/ ++/* 27781*/ OPC_CheckChild0Integer, 77|128,32/*4173*/, ++/* 27784*/ OPC_RecordChild1, // #0 = $xj ++/* 27785*/ OPC_RecordChild2, // #1 = $xk ++/* 27786*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 27788*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSEQ_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4173:{ *:[iPTR] }, LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVSEQ_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) ++/* 27796*/ /*Scope*/ 15, /*->27812*/ ++/* 27797*/ OPC_CheckChild0Integer, 96|128,32/*4192*/, ++/* 27800*/ OPC_RecordChild1, // #0 = $xj ++/* 27801*/ OPC_RecordChild2, // #1 = $xk ++/* 27802*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 27804*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLE_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4192:{ *:[iPTR] }, LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVSLE_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) ++/* 27812*/ /*Scope*/ 15, /*->27828*/ ++/* 27813*/ OPC_CheckChild0Integer, 100|128,32/*4196*/, ++/* 27816*/ OPC_RecordChild1, // #0 = $xj ++/* 27817*/ OPC_RecordChild2, // #1 = $xk ++/* 27818*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 27820*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLE_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4196:{ *:[iPTR] }, LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVSLE_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) ++/* 27828*/ /*Scope*/ 15, /*->27844*/ ++/* 27829*/ OPC_CheckChild0Integer, 102|128,32/*4198*/, ++/* 27832*/ OPC_RecordChild1, // #0 = $xj ++/* 27833*/ OPC_RecordChild2, // #1 = $xk ++/* 27834*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 27836*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLE_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4198:{ *:[iPTR] }, LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVSLE_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) ++/* 27844*/ /*Scope*/ 15, /*->27860*/ ++/* 27845*/ OPC_CheckChild0Integer, 98|128,32/*4194*/, ++/* 27848*/ OPC_RecordChild1, // #0 = $xj ++/* 27849*/ OPC_RecordChild2, // #1 = $xk ++/* 27850*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 27852*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLE_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4194:{ *:[iPTR] }, LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVSLE_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) ++/* 27860*/ /*Scope*/ 15, /*->27876*/ ++/* 27861*/ OPC_CheckChild0Integer, 97|128,32/*4193*/, ++/* 27864*/ OPC_RecordChild1, // #0 = $xj ++/* 27865*/ OPC_RecordChild2, // #1 = $xk ++/* 27866*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 27868*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLE_BU), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4193:{ *:[iPTR] }, LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVSLE_BU:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) ++/* 27876*/ /*Scope*/ 15, /*->27892*/ ++/* 27877*/ OPC_CheckChild0Integer, 101|128,32/*4197*/, ++/* 27880*/ OPC_RecordChild1, // #0 = $xj ++/* 27881*/ OPC_RecordChild2, // #1 = $xk ++/* 27882*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 27884*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLE_HU), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4197:{ *:[iPTR] }, LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVSLE_HU:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) ++/* 27892*/ /*Scope*/ 15, /*->27908*/ ++/* 27893*/ OPC_CheckChild0Integer, 103|128,32/*4199*/, ++/* 27896*/ OPC_RecordChild1, // #0 = $xj ++/* 27897*/ OPC_RecordChild2, // #1 = $xk ++/* 27898*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 27900*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLE_WU), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4199:{ *:[iPTR] }, LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVSLE_WU:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) ++/* 27908*/ /*Scope*/ 15, /*->27924*/ ++/* 27909*/ OPC_CheckChild0Integer, 99|128,32/*4195*/, ++/* 27912*/ OPC_RecordChild1, // #0 = $xj ++/* 27913*/ OPC_RecordChild2, // #1 = $xk ++/* 27914*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 27916*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLE_DU), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4195:{ *:[iPTR] }, LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVSLE_DU:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) ++/* 27924*/ /*Scope*/ 15, /*->27940*/ ++/* 27925*/ OPC_CheckChild0Integer, 126|128,32/*4222*/, ++/* 27928*/ OPC_RecordChild1, // #0 = $xj ++/* 27929*/ OPC_RecordChild2, // #1 = $xk ++/* 27930*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 27932*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLT_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4222:{ *:[iPTR] }, LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVSLT_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) ++/* 27940*/ /*Scope*/ 15, /*->27956*/ ++/* 27941*/ OPC_CheckChild0Integer, 2|128,33/*4226*/, ++/* 27944*/ OPC_RecordChild1, // #0 = $xj ++/* 27945*/ OPC_RecordChild2, // #1 = $xk ++/* 27946*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 27948*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLT_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4226:{ *:[iPTR] }, LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVSLT_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) ++/* 27956*/ /*Scope*/ 15, /*->27972*/ ++/* 27957*/ OPC_CheckChild0Integer, 4|128,33/*4228*/, ++/* 27960*/ OPC_RecordChild1, // #0 = $xj ++/* 27961*/ OPC_RecordChild2, // #1 = $xk ++/* 27962*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 27964*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLT_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4228:{ *:[iPTR] }, LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVSLT_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) ++/* 27972*/ /*Scope*/ 15, /*->27988*/ ++/* 27973*/ OPC_CheckChild0Integer, 0|128,33/*4224*/, ++/* 27976*/ OPC_RecordChild1, // #0 = $xj ++/* 27977*/ OPC_RecordChild2, // #1 = $xk ++/* 27978*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 27980*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLT_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4224:{ *:[iPTR] }, LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVSLT_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) ++/* 27988*/ /*Scope*/ 15, /*->28004*/ ++/* 27989*/ OPC_CheckChild0Integer, 127|128,32/*4223*/, ++/* 27992*/ OPC_RecordChild1, // #0 = $xj ++/* 27993*/ OPC_RecordChild2, // #1 = $xk ++/* 27994*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 27996*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLT_BU), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4223:{ *:[iPTR] }, LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVSLT_BU:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) ++/* 28004*/ /*Scope*/ 15, /*->28020*/ ++/* 28005*/ OPC_CheckChild0Integer, 3|128,33/*4227*/, ++/* 28008*/ OPC_RecordChild1, // #0 = $xj ++/* 28009*/ OPC_RecordChild2, // #1 = $xk ++/* 28010*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28012*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLT_HU), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4227:{ *:[iPTR] }, LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVSLT_HU:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) ++/* 28020*/ /*Scope*/ 15, /*->28036*/ ++/* 28021*/ OPC_CheckChild0Integer, 5|128,33/*4229*/, ++/* 28024*/ OPC_RecordChild1, // #0 = $xj ++/* 28025*/ OPC_RecordChild2, // #1 = $xk ++/* 28026*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28028*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLT_WU), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4229:{ *:[iPTR] }, LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVSLT_WU:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) ++/* 28036*/ /*Scope*/ 15, /*->28052*/ ++/* 28037*/ OPC_CheckChild0Integer, 1|128,33/*4225*/, ++/* 28040*/ OPC_RecordChild1, // #0 = $xj ++/* 28041*/ OPC_RecordChild2, // #1 = $xk ++/* 28042*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28044*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLT_DU), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4225:{ *:[iPTR] }, LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVSLT_DU:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) ++/* 28052*/ /*Scope*/ 15, /*->28068*/ ++/* 28053*/ OPC_CheckChild0Integer, 111|128,28/*3695*/, ++/* 28056*/ OPC_RecordChild1, // #0 = $xj ++/* 28057*/ OPC_RecordChild2, // #1 = $xk ++/* 28058*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28060*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVADD_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 3695:{ *:[iPTR] }, LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVADD_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) ++/* 28068*/ /*Scope*/ 15, /*->28084*/ ++/* 28069*/ OPC_CheckChild0Integer, 113|128,28/*3697*/, ++/* 28072*/ OPC_RecordChild1, // #0 = $xj ++/* 28073*/ OPC_RecordChild2, // #1 = $xk ++/* 28074*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28076*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVADD_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 3697:{ *:[iPTR] }, LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVADD_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) ++/* 28084*/ /*Scope*/ 15, /*->28100*/ ++/* 28085*/ OPC_CheckChild0Integer, 115|128,28/*3699*/, ++/* 28088*/ OPC_RecordChild1, // #0 = $xj ++/* 28089*/ OPC_RecordChild2, // #1 = $xk ++/* 28090*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28092*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVADD_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3699:{ *:[iPTR] }, LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVADD_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) ++/* 28100*/ /*Scope*/ 15, /*->28116*/ ++/* 28101*/ OPC_CheckChild0Integer, 112|128,28/*3696*/, ++/* 28104*/ OPC_RecordChild1, // #0 = $xj ++/* 28105*/ OPC_RecordChild2, // #1 = $xk ++/* 28106*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28108*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVADD_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3696:{ *:[iPTR] }, LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVADD_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) ++/* 28116*/ /*Scope*/ 15, /*->28132*/ ++/* 28117*/ OPC_CheckChild0Integer, 16|128,34/*4368*/, ++/* 28120*/ OPC_RecordChild1, // #0 = $xj ++/* 28121*/ OPC_RecordChild2, // #1 = $xk ++/* 28122*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28124*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSUB_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4368:{ *:[iPTR] }, LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVSUB_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) ++/* 28132*/ /*Scope*/ 15, /*->28148*/ ++/* 28133*/ OPC_CheckChild0Integer, 18|128,34/*4370*/, ++/* 28136*/ OPC_RecordChild1, // #0 = $xj ++/* 28137*/ OPC_RecordChild2, // #1 = $xk ++/* 28138*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28140*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSUB_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4370:{ *:[iPTR] }, LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVSUB_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) ++/* 28148*/ /*Scope*/ 15, /*->28164*/ ++/* 28149*/ OPC_CheckChild0Integer, 20|128,34/*4372*/, ++/* 28152*/ OPC_RecordChild1, // #0 = $xj ++/* 28153*/ OPC_RecordChild2, // #1 = $xk ++/* 28154*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28156*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSUB_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4372:{ *:[iPTR] }, LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVSUB_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) ++/* 28164*/ /*Scope*/ 15, /*->28180*/ ++/* 28165*/ OPC_CheckChild0Integer, 17|128,34/*4369*/, ++/* 28168*/ OPC_RecordChild1, // #0 = $xj ++/* 28169*/ OPC_RecordChild2, // #1 = $xk ++/* 28170*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28172*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSUB_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4369:{ *:[iPTR] }, LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVSUB_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) ++/* 28180*/ /*Scope*/ 15, /*->28196*/ ++/* 28181*/ OPC_CheckChild0Integer, 38|128,31/*4006*/, ++/* 28184*/ OPC_RecordChild1, // #0 = $xj ++/* 28185*/ OPC_RecordChild2, // #1 = $xk ++/* 28186*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28188*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMAX_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4006:{ *:[iPTR] }, LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVMAX_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) ++/* 28196*/ /*Scope*/ 15, /*->28212*/ ++/* 28197*/ OPC_CheckChild0Integer, 42|128,31/*4010*/, ++/* 28200*/ OPC_RecordChild1, // #0 = $xj ++/* 28201*/ OPC_RecordChild2, // #1 = $xk ++/* 28202*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28204*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMAX_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4010:{ *:[iPTR] }, LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVMAX_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) ++/* 28212*/ /*Scope*/ 15, /*->28228*/ ++/* 28213*/ OPC_CheckChild0Integer, 44|128,31/*4012*/, ++/* 28216*/ OPC_RecordChild1, // #0 = $xj ++/* 28217*/ OPC_RecordChild2, // #1 = $xk ++/* 28218*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28220*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMAX_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4012:{ *:[iPTR] }, LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVMAX_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) ++/* 28228*/ /*Scope*/ 15, /*->28244*/ ++/* 28229*/ OPC_CheckChild0Integer, 40|128,31/*4008*/, ++/* 28232*/ OPC_RecordChild1, // #0 = $xj ++/* 28233*/ OPC_RecordChild2, // #1 = $xk ++/* 28234*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28236*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMAX_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4008:{ *:[iPTR] }, LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVMAX_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) ++/* 28244*/ /*Scope*/ 15, /*->28260*/ ++/* 28245*/ OPC_CheckChild0Integer, 54|128,31/*4022*/, ++/* 28248*/ OPC_RecordChild1, // #0 = $xj ++/* 28249*/ OPC_RecordChild2, // #1 = $xk ++/* 28250*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28252*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMIN_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4022:{ *:[iPTR] }, LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVMIN_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) ++/* 28260*/ /*Scope*/ 15, /*->28276*/ ++/* 28261*/ OPC_CheckChild0Integer, 58|128,31/*4026*/, ++/* 28264*/ OPC_RecordChild1, // #0 = $xj ++/* 28265*/ OPC_RecordChild2, // #1 = $xk ++/* 28266*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28268*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMIN_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4026:{ *:[iPTR] }, LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVMIN_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) ++/* 28276*/ /*Scope*/ 15, /*->28292*/ ++/* 28277*/ OPC_CheckChild0Integer, 60|128,31/*4028*/, ++/* 28280*/ OPC_RecordChild1, // #0 = $xj ++/* 28281*/ OPC_RecordChild2, // #1 = $xk ++/* 28282*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28284*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMIN_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4028:{ *:[iPTR] }, LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVMIN_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) ++/* 28292*/ /*Scope*/ 15, /*->28308*/ ++/* 28293*/ OPC_CheckChild0Integer, 56|128,31/*4024*/, ++/* 28296*/ OPC_RecordChild1, // #0 = $xj ++/* 28297*/ OPC_RecordChild2, // #1 = $xk ++/* 28298*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28300*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMIN_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4024:{ *:[iPTR] }, LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVMIN_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) ++/* 28308*/ /*Scope*/ 15, /*->28324*/ ++/* 28309*/ OPC_CheckChild0Integer, 55|128,31/*4023*/, ++/* 28312*/ OPC_RecordChild1, // #0 = $xj ++/* 28313*/ OPC_RecordChild2, // #1 = $xk ++/* 28314*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28316*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMIN_BU), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4023:{ *:[iPTR] }, LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVMIN_BU:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) ++/* 28324*/ /*Scope*/ 15, /*->28340*/ ++/* 28325*/ OPC_CheckChild0Integer, 59|128,31/*4027*/, ++/* 28328*/ OPC_RecordChild1, // #0 = $xj ++/* 28329*/ OPC_RecordChild2, // #1 = $xk ++/* 28330*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28332*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMIN_HU), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4027:{ *:[iPTR] }, LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVMIN_HU:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) ++/* 28340*/ /*Scope*/ 15, /*->28356*/ ++/* 28341*/ OPC_CheckChild0Integer, 61|128,31/*4029*/, ++/* 28344*/ OPC_RecordChild1, // #0 = $xj ++/* 28345*/ OPC_RecordChild2, // #1 = $xk ++/* 28346*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28348*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMIN_WU), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4029:{ *:[iPTR] }, LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVMIN_WU:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) ++/* 28356*/ /*Scope*/ 15, /*->28372*/ ++/* 28357*/ OPC_CheckChild0Integer, 57|128,31/*4025*/, ++/* 28360*/ OPC_RecordChild1, // #0 = $xj ++/* 28361*/ OPC_RecordChild2, // #1 = $xk ++/* 28362*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28364*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMIN_DU), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4025:{ *:[iPTR] }, LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVMIN_DU:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) ++/* 28372*/ /*Scope*/ 15, /*->28388*/ ++/* 28373*/ OPC_CheckChild0Integer, 96|128,31/*4064*/, ++/* 28376*/ OPC_RecordChild1, // #0 = $xj ++/* 28377*/ OPC_RecordChild2, // #1 = $xk ++/* 28378*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28380*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMUL_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4064:{ *:[iPTR] }, LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVMUL_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) ++/* 28388*/ /*Scope*/ 15, /*->28404*/ ++/* 28389*/ OPC_CheckChild0Integer, 98|128,31/*4066*/, ++/* 28392*/ OPC_RecordChild1, // #0 = $xj ++/* 28393*/ OPC_RecordChild2, // #1 = $xk ++/* 28394*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28396*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMUL_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4066:{ *:[iPTR] }, LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVMUL_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) ++/* 28404*/ /*Scope*/ 15, /*->28420*/ ++/* 28405*/ OPC_CheckChild0Integer, 99|128,31/*4067*/, ++/* 28408*/ OPC_RecordChild1, // #0 = $xj ++/* 28409*/ OPC_RecordChild2, // #1 = $xk ++/* 28410*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28412*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMUL_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4067:{ *:[iPTR] }, LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVMUL_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) ++/* 28420*/ /*Scope*/ 15, /*->28436*/ ++/* 28421*/ OPC_CheckChild0Integer, 97|128,31/*4065*/, ++/* 28424*/ OPC_RecordChild1, // #0 = $xj ++/* 28425*/ OPC_RecordChild2, // #1 = $xk ++/* 28426*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28428*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMUL_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4065:{ *:[iPTR] }, LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVMUL_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) ++/* 28436*/ /*Scope*/ 15, /*->28452*/ ++/* 28437*/ OPC_CheckChild0Integer, 76|128,29/*3788*/, ++/* 28440*/ OPC_RecordChild1, // #0 = $xj ++/* 28441*/ OPC_RecordChild2, // #1 = $xk ++/* 28442*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28444*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVDIV_BU), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 3788:{ *:[iPTR] }, LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVDIV_BU:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) ++/* 28452*/ /*Scope*/ 15, /*->28468*/ ++/* 28453*/ OPC_CheckChild0Integer, 80|128,29/*3792*/, ++/* 28456*/ OPC_RecordChild1, // #0 = $xj ++/* 28457*/ OPC_RecordChild2, // #1 = $xk ++/* 28458*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28460*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVDIV_HU), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 3792:{ *:[iPTR] }, LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVDIV_HU:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) ++/* 28468*/ /*Scope*/ 15, /*->28484*/ ++/* 28469*/ OPC_CheckChild0Integer, 82|128,29/*3794*/, ++/* 28472*/ OPC_RecordChild1, // #0 = $xj ++/* 28473*/ OPC_RecordChild2, // #1 = $xk ++/* 28474*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28476*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVDIV_WU), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3794:{ *:[iPTR] }, LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVDIV_WU:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) ++/* 28484*/ /*Scope*/ 15, /*->28500*/ ++/* 28485*/ OPC_CheckChild0Integer, 78|128,29/*3790*/, ++/* 28488*/ OPC_RecordChild1, // #0 = $xj ++/* 28489*/ OPC_RecordChild2, // #1 = $xk ++/* 28490*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28492*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVDIV_DU), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3790:{ *:[iPTR] }, LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVDIV_DU:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) ++/* 28500*/ /*Scope*/ 15, /*->28516*/ ++/* 28501*/ OPC_CheckChild0Integer, 112|128,32/*4208*/, ++/* 28504*/ OPC_RecordChild1, // #0 = $xj ++/* 28505*/ OPC_RecordChild2, // #1 = $xk ++/* 28506*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28508*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLL_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4208:{ *:[iPTR] }, LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVSLL_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) ++/* 28516*/ /*Scope*/ 15, /*->28532*/ ++/* 28517*/ OPC_CheckChild0Integer, 114|128,32/*4210*/, ++/* 28520*/ OPC_RecordChild1, // #0 = $xj ++/* 28521*/ OPC_RecordChild2, // #1 = $xk ++/* 28522*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28524*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLL_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4210:{ *:[iPTR] }, LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVSLL_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) ++/* 28532*/ /*Scope*/ 15, /*->28548*/ ++/* 28533*/ OPC_CheckChild0Integer, 115|128,32/*4211*/, ++/* 28536*/ OPC_RecordChild1, // #0 = $xj ++/* 28537*/ OPC_RecordChild2, // #1 = $xk ++/* 28538*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28540*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLL_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4211:{ *:[iPTR] }, LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVSLL_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) ++/* 28548*/ /*Scope*/ 15, /*->28564*/ ++/* 28549*/ OPC_CheckChild0Integer, 113|128,32/*4209*/, ++/* 28552*/ OPC_RecordChild1, // #0 = $xj ++/* 28553*/ OPC_RecordChild2, // #1 = $xk ++/* 28554*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28556*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLL_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4209:{ *:[iPTR] }, LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVSLL_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) ++/* 28564*/ /*Scope*/ 15, /*->28580*/ ++/* 28565*/ OPC_CheckChild0Integer, 44|128,33/*4268*/, ++/* 28568*/ OPC_RecordChild1, // #0 = $xj ++/* 28569*/ OPC_RecordChild2, // #1 = $xk ++/* 28570*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28572*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRL_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4268:{ *:[iPTR] }, LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVSRL_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) ++/* 28580*/ /*Scope*/ 15, /*->28596*/ ++/* 28581*/ OPC_CheckChild0Integer, 46|128,33/*4270*/, ++/* 28584*/ OPC_RecordChild1, // #0 = $xj ++/* 28585*/ OPC_RecordChild2, // #1 = $xk ++/* 28586*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28588*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRL_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4270:{ *:[iPTR] }, LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVSRL_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) ++/* 28596*/ /*Scope*/ 15, /*->28612*/ ++/* 28597*/ OPC_CheckChild0Integer, 47|128,33/*4271*/, ++/* 28600*/ OPC_RecordChild1, // #0 = $xj ++/* 28601*/ OPC_RecordChild2, // #1 = $xk ++/* 28602*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28604*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRL_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4271:{ *:[iPTR] }, LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVSRL_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) ++/* 28612*/ /*Scope*/ 15, /*->28628*/ ++/* 28613*/ OPC_CheckChild0Integer, 45|128,33/*4269*/, ++/* 28616*/ OPC_RecordChild1, // #0 = $xj ++/* 28617*/ OPC_RecordChild2, // #1 = $xk ++/* 28618*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28620*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRL_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4269:{ *:[iPTR] }, LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVSRL_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) ++/* 28628*/ /*Scope*/ 15, /*->28644*/ ++/* 28629*/ OPC_CheckChild0Integer, 14|128,33/*4238*/, ++/* 28632*/ OPC_RecordChild1, // #0 = $xj ++/* 28633*/ OPC_RecordChild2, // #1 = $xk ++/* 28634*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28636*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRA_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4238:{ *:[iPTR] }, LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVSRA_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) ++/* 28644*/ /*Scope*/ 15, /*->28660*/ ++/* 28645*/ OPC_CheckChild0Integer, 16|128,33/*4240*/, ++/* 28648*/ OPC_RecordChild1, // #0 = $xj ++/* 28649*/ OPC_RecordChild2, // #1 = $xk ++/* 28650*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28652*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRA_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4240:{ *:[iPTR] }, LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVSRA_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) ++/* 28660*/ /*Scope*/ 15, /*->28676*/ ++/* 28661*/ OPC_CheckChild0Integer, 17|128,33/*4241*/, ++/* 28664*/ OPC_RecordChild1, // #0 = $xj ++/* 28665*/ OPC_RecordChild2, // #1 = $xk ++/* 28666*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28668*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRA_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4241:{ *:[iPTR] }, LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVSRA_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) ++/* 28676*/ /*Scope*/ 15, /*->28692*/ ++/* 28677*/ OPC_CheckChild0Integer, 15|128,33/*4239*/, ++/* 28680*/ OPC_RecordChild1, // #0 = $xj ++/* 28681*/ OPC_RecordChild2, // #1 = $xk ++/* 28682*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28684*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRA_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4239:{ *:[iPTR] }, LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVSRA_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) ++/* 28692*/ /*Scope*/ 13, /*->28706*/ ++/* 28693*/ OPC_CheckChild0Integer, 39|128,32/*4135*/, ++/* 28696*/ OPC_RecordChild1, // #0 = $rj ++/* 28697*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28699*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVREPLGR2VR_B), 0, ++ MVT::v32i8, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4135:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rj) - Complexity = 8 ++ // Dst: (XVREPLGR2VR_B:{ *:[v32i8] } GPR32Opnd:{ *:[i32] }:$rj) ++/* 28706*/ /*Scope*/ 13, /*->28720*/ ++/* 28707*/ OPC_CheckChild0Integer, 41|128,32/*4137*/, ++/* 28710*/ OPC_RecordChild1, // #0 = $rj ++/* 28711*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28713*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVREPLGR2VR_H), 0, ++ MVT::v16i16, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4137:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rj) - Complexity = 8 ++ // Dst: (XVREPLGR2VR_H:{ *:[v16i16] } GPR32Opnd:{ *:[i32] }:$rj) ++/* 28720*/ /*Scope*/ 13, /*->28734*/ ++/* 28721*/ OPC_CheckChild0Integer, 42|128,32/*4138*/, ++/* 28724*/ OPC_RecordChild1, // #0 = $rj ++/* 28725*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28727*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVREPLGR2VR_W), 0, ++ MVT::v8i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4138:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rj) - Complexity = 8 ++ // Dst: (XVREPLGR2VR_W:{ *:[v8i32] } GPR32Opnd:{ *:[i32] }:$rj) ++/* 28734*/ /*Scope*/ 13, /*->28748*/ ++/* 28735*/ OPC_CheckChild0Integer, 40|128,32/*4136*/, ++/* 28738*/ OPC_RecordChild1, // #0 = $rj ++/* 28739*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28741*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVREPLGR2VR_D), 0, ++ MVT::v4i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4136:{ *:[iPTR] }, GPR64Opnd:{ *:[i64] }:$rj) - Complexity = 8 ++ // Dst: (XVREPLGR2VR_D:{ *:[v4i64] } GPR64Opnd:{ *:[i64] }:$rj) ++/* 28748*/ /*Scope*/ 13, /*->28762*/ ++/* 28749*/ OPC_CheckChild0Integer, 48|128,32/*4144*/, ++/* 28752*/ OPC_RecordChild1, // #0 = $xj ++/* 28753*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28755*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVREPLVE0_D), 0, ++ MVT::v4i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4144:{ *:[iPTR] }, LASX256D:{ *:[v4i64] }:$xj) - Complexity = 8 ++ // Dst: (XVREPLVE0_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$xj) ++/* 28762*/ /*Scope*/ 15, /*->28778*/ ++/* 28763*/ OPC_CheckChild0Integer, 75|128,29/*3787*/, ++/* 28766*/ OPC_RecordChild1, // #0 = $xj ++/* 28767*/ OPC_RecordChild2, // #1 = $xk ++/* 28768*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28770*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVDIV_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 3787:{ *:[iPTR] }, LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVDIV_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) ++/* 28778*/ /*Scope*/ 15, /*->28794*/ ++/* 28779*/ OPC_CheckChild0Integer, 79|128,29/*3791*/, ++/* 28782*/ OPC_RecordChild1, // #0 = $xj ++/* 28783*/ OPC_RecordChild2, // #1 = $xk ++/* 28784*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28786*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVDIV_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 3791:{ *:[iPTR] }, LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVDIV_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) ++/* 28794*/ /*Scope*/ 15, /*->28810*/ ++/* 28795*/ OPC_CheckChild0Integer, 81|128,29/*3793*/, ++/* 28798*/ OPC_RecordChild1, // #0 = $xj ++/* 28799*/ OPC_RecordChild2, // #1 = $xk ++/* 28800*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28802*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVDIV_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3793:{ *:[iPTR] }, LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVDIV_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) ++/* 28810*/ /*Scope*/ 15, /*->28826*/ ++/* 28811*/ OPC_CheckChild0Integer, 77|128,29/*3789*/, ++/* 28814*/ OPC_RecordChild1, // #0 = $xj ++/* 28815*/ OPC_RecordChild2, // #1 = $xk ++/* 28816*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28818*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVDIV_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3789:{ *:[iPTR] }, LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVDIV_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) ++/* 28826*/ /*Scope*/ 15, /*->28842*/ ++/* 28827*/ OPC_CheckChild0Integer, 71|128,31/*4039*/, ++/* 28830*/ OPC_RecordChild1, // #0 = $xj ++/* 28831*/ OPC_RecordChild2, // #1 = $xk ++/* 28832*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28834*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMOD_BU), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4039:{ *:[iPTR] }, LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVMOD_BU:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) ++/* 28842*/ /*Scope*/ 15, /*->28858*/ ++/* 28843*/ OPC_CheckChild0Integer, 75|128,31/*4043*/, ++/* 28846*/ OPC_RecordChild1, // #0 = $xj ++/* 28847*/ OPC_RecordChild2, // #1 = $xk ++/* 28848*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28850*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMOD_HU), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4043:{ *:[iPTR] }, LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVMOD_HU:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) ++/* 28858*/ /*Scope*/ 15, /*->28874*/ ++/* 28859*/ OPC_CheckChild0Integer, 77|128,31/*4045*/, ++/* 28862*/ OPC_RecordChild1, // #0 = $xj ++/* 28863*/ OPC_RecordChild2, // #1 = $xk ++/* 28864*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28866*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMOD_WU), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4045:{ *:[iPTR] }, LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVMOD_WU:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) ++/* 28874*/ /*Scope*/ 15, /*->28890*/ ++/* 28875*/ OPC_CheckChild0Integer, 73|128,31/*4041*/, ++/* 28878*/ OPC_RecordChild1, // #0 = $xj ++/* 28879*/ OPC_RecordChild2, // #1 = $xk ++/* 28880*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28882*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMOD_DU), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4041:{ *:[iPTR] }, LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVMOD_DU:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) ++/* 28890*/ /*Scope*/ 15, /*->28906*/ ++/* 28891*/ OPC_CheckChild0Integer, 70|128,31/*4038*/, ++/* 28894*/ OPC_RecordChild1, // #0 = $xj ++/* 28895*/ OPC_RecordChild2, // #1 = $xk ++/* 28896*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28898*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMOD_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4038:{ *:[iPTR] }, LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVMOD_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) ++/* 28906*/ /*Scope*/ 15, /*->28922*/ ++/* 28907*/ OPC_CheckChild0Integer, 74|128,31/*4042*/, ++/* 28910*/ OPC_RecordChild1, // #0 = $xj ++/* 28911*/ OPC_RecordChild2, // #1 = $xk ++/* 28912*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28914*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMOD_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4042:{ *:[iPTR] }, LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVMOD_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) ++/* 28922*/ /*Scope*/ 15, /*->28938*/ ++/* 28923*/ OPC_CheckChild0Integer, 76|128,31/*4044*/, ++/* 28926*/ OPC_RecordChild1, // #0 = $xj ++/* 28927*/ OPC_RecordChild2, // #1 = $xk ++/* 28928*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28930*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMOD_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4044:{ *:[iPTR] }, LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVMOD_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) ++/* 28938*/ /*Scope*/ 15, /*->28954*/ ++/* 28939*/ OPC_CheckChild0Integer, 72|128,31/*4040*/, ++/* 28942*/ OPC_RecordChild1, // #0 = $xj ++/* 28943*/ OPC_RecordChild2, // #1 = $xk ++/* 28944*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28946*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMOD_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4040:{ *:[iPTR] }, LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVMOD_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) ++/* 28954*/ /*Scope*/ 15, /*->28970*/ ++/* 28955*/ OPC_CheckChild0Integer, 39|128,31/*4007*/, ++/* 28958*/ OPC_RecordChild1, // #0 = $xj ++/* 28959*/ OPC_RecordChild2, // #1 = $xk ++/* 28960*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28962*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMAX_BU), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4007:{ *:[iPTR] }, LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVMAX_BU:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) ++/* 28970*/ /*Scope*/ 15, /*->28986*/ ++/* 28971*/ OPC_CheckChild0Integer, 43|128,31/*4011*/, ++/* 28974*/ OPC_RecordChild1, // #0 = $xj ++/* 28975*/ OPC_RecordChild2, // #1 = $xk ++/* 28976*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28978*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMAX_HU), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4011:{ *:[iPTR] }, LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVMAX_HU:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) ++/* 28986*/ /*Scope*/ 15, /*->29002*/ ++/* 28987*/ OPC_CheckChild0Integer, 45|128,31/*4013*/, ++/* 28990*/ OPC_RecordChild1, // #0 = $xj ++/* 28991*/ OPC_RecordChild2, // #1 = $xk ++/* 28992*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 28994*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMAX_WU), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4013:{ *:[iPTR] }, LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVMAX_WU:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) ++/* 29002*/ /*Scope*/ 15, /*->29018*/ ++/* 29003*/ OPC_CheckChild0Integer, 41|128,31/*4009*/, ++/* 29006*/ OPC_RecordChild1, // #0 = $xj ++/* 29007*/ OPC_RecordChild2, // #1 = $xk ++/* 29008*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29010*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMAX_DU), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4009:{ *:[iPTR] }, LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVMAX_DU:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) ++/* 29018*/ /*Scope*/ 15, /*->29034*/ ++/* 29019*/ OPC_CheckChild0Integer, 9|128,32/*4105*/, ++/* 29022*/ OPC_RecordChild1, // #0 = $xj ++/* 29023*/ OPC_RecordChild2, // #1 = $xk ++/* 29024*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29026*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPACKOD_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4105:{ *:[iPTR] }, LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVPACKOD_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) ++/* 29034*/ /*Scope*/ 15, /*->29050*/ ++/* 29035*/ OPC_CheckChild0Integer, 11|128,32/*4107*/, ++/* 29038*/ OPC_RecordChild1, // #0 = $xj ++/* 29039*/ OPC_RecordChild2, // #1 = $xk ++/* 29040*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29042*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPACKOD_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4107:{ *:[iPTR] }, LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVPACKOD_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) ++/* 29050*/ /*Scope*/ 15, /*->29066*/ ++/* 29051*/ OPC_CheckChild0Integer, 12|128,32/*4108*/, ++/* 29054*/ OPC_RecordChild1, // #0 = $xj ++/* 29055*/ OPC_RecordChild2, // #1 = $xk ++/* 29056*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29058*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPACKOD_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4108:{ *:[iPTR] }, LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVPACKOD_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) ++/* 29066*/ /*Scope*/ 15, /*->29082*/ ++/* 29067*/ OPC_CheckChild0Integer, 10|128,32/*4106*/, ++/* 29070*/ OPC_RecordChild1, // #0 = $xj ++/* 29071*/ OPC_RecordChild2, // #1 = $xk ++/* 29072*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29074*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPACKOD_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4106:{ *:[iPTR] }, LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVPACKOD_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) ++/* 29082*/ /*Scope*/ 15, /*->29098*/ ++/* 29083*/ OPC_CheckChild0Integer, 5|128,32/*4101*/, ++/* 29086*/ OPC_RecordChild1, // #0 = $xj ++/* 29087*/ OPC_RecordChild2, // #1 = $xk ++/* 29088*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29090*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPACKEV_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4101:{ *:[iPTR] }, LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVPACKEV_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) ++/* 29098*/ /*Scope*/ 15, /*->29114*/ ++/* 29099*/ OPC_CheckChild0Integer, 7|128,32/*4103*/, ++/* 29102*/ OPC_RecordChild1, // #0 = $xj ++/* 29103*/ OPC_RecordChild2, // #1 = $xk ++/* 29104*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29106*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPACKEV_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4103:{ *:[iPTR] }, LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVPACKEV_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) ++/* 29114*/ /*Scope*/ 15, /*->29130*/ ++/* 29115*/ OPC_CheckChild0Integer, 8|128,32/*4104*/, ++/* 29118*/ OPC_RecordChild1, // #0 = $xj ++/* 29119*/ OPC_RecordChild2, // #1 = $xk ++/* 29120*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29122*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPACKEV_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4104:{ *:[iPTR] }, LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVPACKEV_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) ++/* 29130*/ /*Scope*/ 15, /*->29146*/ ++/* 29131*/ OPC_CheckChild0Integer, 6|128,32/*4102*/, ++/* 29134*/ OPC_RecordChild1, // #0 = $xj ++/* 29135*/ OPC_RecordChild2, // #1 = $xk ++/* 29136*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29138*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPACKEV_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4102:{ *:[iPTR] }, LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVPACKEV_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) ++/* 29146*/ /*Scope*/ 15, /*->29162*/ ++/* 29147*/ OPC_CheckChild0Integer, 119|128,30/*3959*/, ++/* 29150*/ OPC_RecordChild1, // #0 = $xj ++/* 29151*/ OPC_RecordChild2, // #1 = $xk ++/* 29152*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29154*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVILVH_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 3959:{ *:[iPTR] }, LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVILVH_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) ++/* 29162*/ /*Scope*/ 15, /*->29178*/ ++/* 29163*/ OPC_CheckChild0Integer, 121|128,30/*3961*/, ++/* 29166*/ OPC_RecordChild1, // #0 = $xj ++/* 29167*/ OPC_RecordChild2, // #1 = $xk ++/* 29168*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29170*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVILVH_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 3961:{ *:[iPTR] }, LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVILVH_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) ++/* 29178*/ /*Scope*/ 15, /*->29194*/ ++/* 29179*/ OPC_CheckChild0Integer, 122|128,30/*3962*/, ++/* 29182*/ OPC_RecordChild1, // #0 = $xj ++/* 29183*/ OPC_RecordChild2, // #1 = $xk ++/* 29184*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29186*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVILVH_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3962:{ *:[iPTR] }, LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVILVH_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) ++/* 29194*/ /*Scope*/ 15, /*->29210*/ ++/* 29195*/ OPC_CheckChild0Integer, 120|128,30/*3960*/, ++/* 29198*/ OPC_RecordChild1, // #0 = $xj ++/* 29199*/ OPC_RecordChild2, // #1 = $xk ++/* 29200*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29202*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVILVH_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3960:{ *:[iPTR] }, LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVILVH_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) ++/* 29210*/ /*Scope*/ 15, /*->29226*/ ++/* 29211*/ OPC_CheckChild0Integer, 123|128,30/*3963*/, ++/* 29214*/ OPC_RecordChild1, // #0 = $xj ++/* 29215*/ OPC_RecordChild2, // #1 = $xk ++/* 29216*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29218*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVILVL_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 3963:{ *:[iPTR] }, LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVILVL_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) ++/* 29226*/ /*Scope*/ 15, /*->29242*/ ++/* 29227*/ OPC_CheckChild0Integer, 125|128,30/*3965*/, ++/* 29230*/ OPC_RecordChild1, // #0 = $xj ++/* 29231*/ OPC_RecordChild2, // #1 = $xk ++/* 29232*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29234*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVILVL_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 3965:{ *:[iPTR] }, LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVILVL_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) ++/* 29242*/ /*Scope*/ 15, /*->29258*/ ++/* 29243*/ OPC_CheckChild0Integer, 126|128,30/*3966*/, ++/* 29246*/ OPC_RecordChild1, // #0 = $xj ++/* 29247*/ OPC_RecordChild2, // #1 = $xk ++/* 29248*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29250*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVILVL_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3966:{ *:[iPTR] }, LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVILVL_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) ++/* 29258*/ /*Scope*/ 15, /*->29274*/ ++/* 29259*/ OPC_CheckChild0Integer, 124|128,30/*3964*/, ++/* 29262*/ OPC_RecordChild1, // #0 = $xj ++/* 29263*/ OPC_RecordChild2, // #1 = $xk ++/* 29264*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29266*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVILVL_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3964:{ *:[iPTR] }, LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVILVL_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) ++/* 29274*/ /*Scope*/ 15, /*->29290*/ ++/* 29275*/ OPC_CheckChild0Integer, 21|128,32/*4117*/, ++/* 29278*/ OPC_RecordChild1, // #0 = $xj ++/* 29279*/ OPC_RecordChild2, // #1 = $xk ++/* 29280*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29282*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPICKEV_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4117:{ *:[iPTR] }, LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVPICKEV_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) ++/* 29290*/ /*Scope*/ 15, /*->29306*/ ++/* 29291*/ OPC_CheckChild0Integer, 23|128,32/*4119*/, ++/* 29294*/ OPC_RecordChild1, // #0 = $xj ++/* 29295*/ OPC_RecordChild2, // #1 = $xk ++/* 29296*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29298*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPICKEV_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4119:{ *:[iPTR] }, LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVPICKEV_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) ++/* 29306*/ /*Scope*/ 15, /*->29322*/ ++/* 29307*/ OPC_CheckChild0Integer, 24|128,32/*4120*/, ++/* 29310*/ OPC_RecordChild1, // #0 = $xj ++/* 29311*/ OPC_RecordChild2, // #1 = $xk ++/* 29312*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29314*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPICKEV_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4120:{ *:[iPTR] }, LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVPICKEV_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) ++/* 29322*/ /*Scope*/ 15, /*->29338*/ ++/* 29323*/ OPC_CheckChild0Integer, 22|128,32/*4118*/, ++/* 29326*/ OPC_RecordChild1, // #0 = $xj ++/* 29327*/ OPC_RecordChild2, // #1 = $xk ++/* 29328*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29330*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPICKEV_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4118:{ *:[iPTR] }, LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVPICKEV_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) ++/* 29338*/ /*Scope*/ 15, /*->29354*/ ++/* 29339*/ OPC_CheckChild0Integer, 25|128,32/*4121*/, ++/* 29342*/ OPC_RecordChild1, // #0 = $xj ++/* 29343*/ OPC_RecordChild2, // #1 = $xk ++/* 29344*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29346*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPICKOD_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4121:{ *:[iPTR] }, LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVPICKOD_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) ++/* 29354*/ /*Scope*/ 15, /*->29370*/ ++/* 29355*/ OPC_CheckChild0Integer, 27|128,32/*4123*/, ++/* 29358*/ OPC_RecordChild1, // #0 = $xj ++/* 29359*/ OPC_RecordChild2, // #1 = $xk ++/* 29360*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29362*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPICKOD_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4123:{ *:[iPTR] }, LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVPICKOD_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) ++/* 29370*/ /*Scope*/ 15, /*->29386*/ ++/* 29371*/ OPC_CheckChild0Integer, 28|128,32/*4124*/, ++/* 29374*/ OPC_RecordChild1, // #0 = $xj ++/* 29375*/ OPC_RecordChild2, // #1 = $xk ++/* 29376*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29378*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPICKOD_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4124:{ *:[iPTR] }, LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVPICKOD_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) ++/* 29386*/ /*Scope*/ 15, /*->29402*/ ++/* 29387*/ OPC_CheckChild0Integer, 26|128,32/*4122*/, ++/* 29390*/ OPC_RecordChild1, // #0 = $xj ++/* 29391*/ OPC_RecordChild2, // #1 = $xk ++/* 29392*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29394*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPICKOD_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4122:{ *:[iPTR] }, LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVPICKOD_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) ++/* 29402*/ /*Scope*/ 15, /*->29418*/ ++/* 29403*/ OPC_CheckChild0Integer, 60|128,32/*4156*/, ++/* 29406*/ OPC_RecordChild1, // #0 = $xj ++/* 29407*/ OPC_RecordChild2, // #1 = $xk ++/* 29408*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29410*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSADD_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4156:{ *:[iPTR] }, LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVSADD_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) ++/* 29418*/ /*Scope*/ 15, /*->29434*/ ++/* 29419*/ OPC_CheckChild0Integer, 64|128,32/*4160*/, ++/* 29422*/ OPC_RecordChild1, // #0 = $xj ++/* 29423*/ OPC_RecordChild2, // #1 = $xk ++/* 29424*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29426*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSADD_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4160:{ *:[iPTR] }, LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVSADD_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) ++/* 29434*/ /*Scope*/ 15, /*->29450*/ ++/* 29435*/ OPC_CheckChild0Integer, 66|128,32/*4162*/, ++/* 29438*/ OPC_RecordChild1, // #0 = $xj ++/* 29439*/ OPC_RecordChild2, // #1 = $xk ++/* 29440*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29442*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSADD_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4162:{ *:[iPTR] }, LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVSADD_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) ++/* 29450*/ /*Scope*/ 15, /*->29466*/ ++/* 29451*/ OPC_CheckChild0Integer, 62|128,32/*4158*/, ++/* 29454*/ OPC_RecordChild1, // #0 = $xj ++/* 29455*/ OPC_RecordChild2, // #1 = $xk ++/* 29456*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29458*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSADD_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4158:{ *:[iPTR] }, LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVSADD_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) ++/* 29466*/ /*Scope*/ 15, /*->29482*/ ++/* 29467*/ OPC_CheckChild0Integer, 2|128,34/*4354*/, ++/* 29470*/ OPC_RecordChild1, // #0 = $xj ++/* 29471*/ OPC_RecordChild2, // #1 = $xk ++/* 29472*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29474*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSUB_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4354:{ *:[iPTR] }, LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVSSUB_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) ++/* 29482*/ /*Scope*/ 15, /*->29498*/ ++/* 29483*/ OPC_CheckChild0Integer, 6|128,34/*4358*/, ++/* 29486*/ OPC_RecordChild1, // #0 = $xj ++/* 29487*/ OPC_RecordChild2, // #1 = $xk ++/* 29488*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29490*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSUB_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4358:{ *:[iPTR] }, LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVSSUB_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) ++/* 29498*/ /*Scope*/ 15, /*->29514*/ ++/* 29499*/ OPC_CheckChild0Integer, 8|128,34/*4360*/, ++/* 29502*/ OPC_RecordChild1, // #0 = $xj ++/* 29503*/ OPC_RecordChild2, // #1 = $xk ++/* 29504*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29506*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSUB_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4360:{ *:[iPTR] }, LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVSSUB_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) ++/* 29514*/ /*Scope*/ 15, /*->29530*/ ++/* 29515*/ OPC_CheckChild0Integer, 4|128,34/*4356*/, ++/* 29518*/ OPC_RecordChild1, // #0 = $xj ++/* 29519*/ OPC_RecordChild2, // #1 = $xk ++/* 29520*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29522*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSUB_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4356:{ *:[iPTR] }, LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVSSUB_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) ++/* 29530*/ /*Scope*/ 15, /*->29546*/ ++/* 29531*/ OPC_CheckChild0Integer, 61|128,32/*4157*/, ++/* 29534*/ OPC_RecordChild1, // #0 = $xj ++/* 29535*/ OPC_RecordChild2, // #1 = $xk ++/* 29536*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29538*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSADD_BU), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4157:{ *:[iPTR] }, LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVSADD_BU:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) ++/* 29546*/ /*Scope*/ 15, /*->29562*/ ++/* 29547*/ OPC_CheckChild0Integer, 65|128,32/*4161*/, ++/* 29550*/ OPC_RecordChild1, // #0 = $xj ++/* 29551*/ OPC_RecordChild2, // #1 = $xk ++/* 29552*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29554*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSADD_HU), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4161:{ *:[iPTR] }, LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVSADD_HU:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) ++/* 29562*/ /*Scope*/ 15, /*->29578*/ ++/* 29563*/ OPC_CheckChild0Integer, 67|128,32/*4163*/, ++/* 29566*/ OPC_RecordChild1, // #0 = $xj ++/* 29567*/ OPC_RecordChild2, // #1 = $xk ++/* 29568*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29570*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSADD_WU), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4163:{ *:[iPTR] }, LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVSADD_WU:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) ++/* 29578*/ /*Scope*/ 15, /*->29594*/ ++/* 29579*/ OPC_CheckChild0Integer, 63|128,32/*4159*/, ++/* 29582*/ OPC_RecordChild1, // #0 = $xj ++/* 29583*/ OPC_RecordChild2, // #1 = $xk ++/* 29584*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29586*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSADD_DU), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4159:{ *:[iPTR] }, LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVSADD_DU:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) ++/* 29594*/ /*Scope*/ 15, /*->29610*/ ++/* 29595*/ OPC_CheckChild0Integer, 3|128,34/*4355*/, ++/* 29598*/ OPC_RecordChild1, // #0 = $xj ++/* 29599*/ OPC_RecordChild2, // #1 = $xk ++/* 29600*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29602*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSUB_BU), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4355:{ *:[iPTR] }, LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVSSUB_BU:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) ++/* 29610*/ /*Scope*/ 15, /*->29626*/ ++/* 29611*/ OPC_CheckChild0Integer, 7|128,34/*4359*/, ++/* 29614*/ OPC_RecordChild1, // #0 = $xj ++/* 29615*/ OPC_RecordChild2, // #1 = $xk ++/* 29616*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29618*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSUB_HU), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4359:{ *:[iPTR] }, LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVSSUB_HU:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) ++/* 29626*/ /*Scope*/ 15, /*->29642*/ ++/* 29627*/ OPC_CheckChild0Integer, 9|128,34/*4361*/, ++/* 29630*/ OPC_RecordChild1, // #0 = $xj ++/* 29631*/ OPC_RecordChild2, // #1 = $xk ++/* 29632*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29634*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSUB_WU), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4361:{ *:[iPTR] }, LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVSSUB_WU:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) ++/* 29642*/ /*Scope*/ 15, /*->29658*/ ++/* 29643*/ OPC_CheckChild0Integer, 5|128,34/*4357*/, ++/* 29646*/ OPC_RecordChild1, // #0 = $xj ++/* 29647*/ OPC_RecordChild2, // #1 = $xk ++/* 29648*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29650*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSUB_DU), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4357:{ *:[iPTR] }, LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVSSUB_DU:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) ++/* 29658*/ /*Scope*/ 17, /*->29676*/ ++/* 29659*/ OPC_CheckChild0Integer, 10|128,31/*3978*/, ++/* 29662*/ OPC_RecordChild1, // #0 = $xd_in ++/* 29663*/ OPC_RecordChild2, // #1 = $xj ++/* 29664*/ OPC_RecordChild3, // #2 = $xk ++/* 29665*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29667*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMADD_B), 0, ++ MVT::v32i8, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 3978:{ *:[iPTR] }, LASX256B:{ *:[v32i8] }:$xd_in, LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVMADD_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$xd_in, LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) ++/* 29676*/ /*Scope*/ 17, /*->29694*/ ++/* 29677*/ OPC_CheckChild0Integer, 12|128,31/*3980*/, ++/* 29680*/ OPC_RecordChild1, // #0 = $xd_in ++/* 29681*/ OPC_RecordChild2, // #1 = $xj ++/* 29682*/ OPC_RecordChild3, // #2 = $xk ++/* 29683*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29685*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMADD_H), 0, ++ MVT::v16i16, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 3980:{ *:[iPTR] }, LASX256H:{ *:[v16i16] }:$xd_in, LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVMADD_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$xd_in, LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) ++/* 29694*/ /*Scope*/ 17, /*->29712*/ ++/* 29695*/ OPC_CheckChild0Integer, 13|128,31/*3981*/, ++/* 29698*/ OPC_RecordChild1, // #0 = $xd_in ++/* 29699*/ OPC_RecordChild2, // #1 = $xj ++/* 29700*/ OPC_RecordChild3, // #2 = $xk ++/* 29701*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29703*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMADD_W), 0, ++ MVT::v8i32, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3981:{ *:[iPTR] }, LASX256W:{ *:[v8i32] }:$xd_in, LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVMADD_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$xd_in, LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) ++/* 29712*/ /*Scope*/ 17, /*->29730*/ ++/* 29713*/ OPC_CheckChild0Integer, 11|128,31/*3979*/, ++/* 29716*/ OPC_RecordChild1, // #0 = $xd_in ++/* 29717*/ OPC_RecordChild2, // #1 = $xj ++/* 29718*/ OPC_RecordChild3, // #2 = $xk ++/* 29719*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29721*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMADD_D), 0, ++ MVT::v4i64, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3979:{ *:[iPTR] }, LASX256D:{ *:[v4i64] }:$xd_in, LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVMADD_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$xd_in, LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) ++/* 29730*/ /*Scope*/ 17, /*->29748*/ ++/* 29731*/ OPC_CheckChild0Integer, 84|128,31/*4052*/, ++/* 29734*/ OPC_RecordChild1, // #0 = $xd_in ++/* 29735*/ OPC_RecordChild2, // #1 = $xj ++/* 29736*/ OPC_RecordChild3, // #2 = $xk ++/* 29737*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29739*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMSUB_B), 0, ++ MVT::v32i8, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4052:{ *:[iPTR] }, LASX256B:{ *:[v32i8] }:$xd_in, LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVMSUB_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$xd_in, LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) ++/* 29748*/ /*Scope*/ 17, /*->29766*/ ++/* 29749*/ OPC_CheckChild0Integer, 86|128,31/*4054*/, ++/* 29752*/ OPC_RecordChild1, // #0 = $xd_in ++/* 29753*/ OPC_RecordChild2, // #1 = $xj ++/* 29754*/ OPC_RecordChild3, // #2 = $xk ++/* 29755*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29757*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMSUB_H), 0, ++ MVT::v16i16, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4054:{ *:[iPTR] }, LASX256H:{ *:[v16i16] }:$xd_in, LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVMSUB_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$xd_in, LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) ++/* 29766*/ /*Scope*/ 17, /*->29784*/ ++/* 29767*/ OPC_CheckChild0Integer, 87|128,31/*4055*/, ++/* 29770*/ OPC_RecordChild1, // #0 = $xd_in ++/* 29771*/ OPC_RecordChild2, // #1 = $xj ++/* 29772*/ OPC_RecordChild3, // #2 = $xk ++/* 29773*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29775*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMSUB_W), 0, ++ MVT::v8i32, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4055:{ *:[iPTR] }, LASX256W:{ *:[v8i32] }:$xd_in, LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVMSUB_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$xd_in, LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) ++/* 29784*/ /*Scope*/ 17, /*->29802*/ ++/* 29785*/ OPC_CheckChild0Integer, 85|128,31/*4053*/, ++/* 29788*/ OPC_RecordChild1, // #0 = $xd_in ++/* 29789*/ OPC_RecordChild2, // #1 = $xj ++/* 29790*/ OPC_RecordChild3, // #2 = $xk ++/* 29791*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29793*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMSUB_D), 0, ++ MVT::v4i64, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4053:{ *:[iPTR] }, LASX256D:{ *:[v4i64] }:$xd_in, LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVMSUB_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$xd_in, LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) ++/* 29802*/ /*Scope*/ 13, /*->29816*/ ++/* 29803*/ OPC_CheckChild0Integer, 100|128,30/*3940*/, ++/* 29806*/ OPC_RecordChild1, // #0 = $xj ++/* 29807*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29809*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFTINTRZ_WU_S), 0, ++ MVT::v8i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3940:{ *:[iPTR] }, LASX256W:{ *:[v8f32] }:$xj) - Complexity = 8 ++ // Dst: (XVFTINTRZ_WU_S:{ *:[v8i32] } LASX256W:{ *:[v8f32] }:$xj) ++/* 29816*/ /*Scope*/ 13, /*->29830*/ ++/* 29817*/ OPC_CheckChild0Integer, 97|128,30/*3937*/, ++/* 29820*/ OPC_RecordChild1, // #0 = $xj ++/* 29821*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29823*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFTINTRZ_LU_D), 0, ++ MVT::v4i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3937:{ *:[iPTR] }, LASX256D:{ *:[v4f64] }:$xj) - Complexity = 8 ++ // Dst: (XVFTINTRZ_LU_D:{ *:[v4i64] } LASX256D:{ *:[v4f64] }:$xj) ++/* 29830*/ /*Scope*/ 13, /*->29844*/ ++/* 29831*/ OPC_CheckChild0Integer, 99|128,30/*3939*/, ++/* 29834*/ OPC_RecordChild1, // #0 = $xj ++/* 29835*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29837*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFTINTRZ_W_S), 0, ++ MVT::v8i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3939:{ *:[iPTR] }, LASX256W:{ *:[v8f32] }:$xj) - Complexity = 8 ++ // Dst: (XVFTINTRZ_W_S:{ *:[v8i32] } LASX256W:{ *:[v8f32] }:$xj) ++/* 29844*/ /*Scope*/ 13, /*->29858*/ ++/* 29845*/ OPC_CheckChild0Integer, 96|128,30/*3936*/, ++/* 29848*/ OPC_RecordChild1, // #0 = $xj ++/* 29849*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29851*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFTINTRZ_L_D), 0, ++ MVT::v4i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3936:{ *:[iPTR] }, LASX256D:{ *:[v4f64] }:$xj) - Complexity = 8 ++ // Dst: (XVFTINTRZ_L_D:{ *:[v4i64] } LASX256D:{ *:[v4f64] }:$xj) ++/* 29858*/ /*Scope*/ 15, /*->29874*/ ++/* 29859*/ OPC_CheckChild0Integer, 39|128,29/*3751*/, ++/* 29862*/ OPC_RecordChild1, // #0 = $xj ++/* 29863*/ OPC_RecordChild2, // #1 = $xk ++/* 29864*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29866*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 3751:{ *:[iPTR] }, LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) - Complexity = 8 ++ // Dst: (XVBITCLR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) ++/* 29874*/ /*Scope*/ 15, /*->29890*/ ++/* 29875*/ OPC_CheckChild0Integer, 41|128,29/*3753*/, ++/* 29878*/ OPC_RecordChild1, // #0 = $xj ++/* 29879*/ OPC_RecordChild2, // #1 = $xk ++/* 29880*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29882*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 3753:{ *:[iPTR] }, LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) - Complexity = 8 ++ // Dst: (XVBITCLR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) ++/* 29890*/ /*Scope*/ 15, /*->29906*/ ++/* 29891*/ OPC_CheckChild0Integer, 42|128,29/*3754*/, ++/* 29894*/ OPC_RecordChild1, // #0 = $xj ++/* 29895*/ OPC_RecordChild2, // #1 = $xk ++/* 29896*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29898*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3754:{ *:[iPTR] }, LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) - Complexity = 8 ++ // Dst: (XVBITCLR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) ++/* 29906*/ /*Scope*/ 15, /*->29922*/ ++/* 29907*/ OPC_CheckChild0Integer, 40|128,29/*3752*/, ++/* 29910*/ OPC_RecordChild1, // #0 = $xj ++/* 29911*/ OPC_RecordChild2, // #1 = $xk ++/* 29912*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29914*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3752:{ *:[iPTR] }, LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVBITCLR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) ++/* 29922*/ /*Scope*/ 13, /*->29936*/ ++/* 29923*/ OPC_CheckChild0Integer, 71|128,29/*3783*/, ++/* 29926*/ OPC_RecordChild1, // #0 = $xj ++/* 29927*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29929*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVCLZ_B), 0, ++ MVT::v32i8, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 3783:{ *:[iPTR] }, LASX256B:{ *:[v32i8] }:$xj) - Complexity = 8 ++ // Dst: (XVCLZ_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$xj) ++/* 29936*/ /*Scope*/ 13, /*->29950*/ ++/* 29937*/ OPC_CheckChild0Integer, 73|128,29/*3785*/, ++/* 29940*/ OPC_RecordChild1, // #0 = $xj ++/* 29941*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29943*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVCLZ_H), 0, ++ MVT::v16i16, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 3785:{ *:[iPTR] }, LASX256H:{ *:[v16i16] }:$xj) - Complexity = 8 ++ // Dst: (XVCLZ_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$xj) ++/* 29950*/ /*Scope*/ 13, /*->29964*/ ++/* 29951*/ OPC_CheckChild0Integer, 74|128,29/*3786*/, ++/* 29954*/ OPC_RecordChild1, // #0 = $xj ++/* 29955*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29957*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVCLZ_W), 0, ++ MVT::v8i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 3786:{ *:[iPTR] }, LASX256W:{ *:[v8i32] }:$xj) - Complexity = 8 ++ // Dst: (XVCLZ_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$xj) ++/* 29964*/ /*Scope*/ 13, /*->29978*/ ++/* 29965*/ OPC_CheckChild0Integer, 72|128,29/*3784*/, ++/* 29968*/ OPC_RecordChild1, // #0 = $xj ++/* 29969*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29971*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVCLZ_D), 0, ++ MVT::v4i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 3784:{ *:[iPTR] }, LASX256D:{ *:[v4i64] }:$xj) - Complexity = 8 ++ // Dst: (XVCLZ_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$xj) ++/* 29978*/ /*Scope*/ 13, /*->29992*/ ++/* 29979*/ OPC_CheckChild0Integer, 13|128,32/*4109*/, ++/* 29982*/ OPC_RecordChild1, // #0 = $xj ++/* 29983*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29985*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPCNT_B), 0, ++ MVT::v32i8, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v32i8] } 4109:{ *:[iPTR] }, LASX256B:{ *:[v32i8] }:$xj) - Complexity = 8 ++ // Dst: (XVPCNT_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$xj) ++/* 29992*/ /*Scope*/ 13, /*->30006*/ ++/* 29993*/ OPC_CheckChild0Integer, 15|128,32/*4111*/, ++/* 29996*/ OPC_RecordChild1, // #0 = $xj ++/* 29997*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 29999*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPCNT_H), 0, ++ MVT::v16i16, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v16i16] } 4111:{ *:[iPTR] }, LASX256H:{ *:[v16i16] }:$xj) - Complexity = 8 ++ // Dst: (XVPCNT_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$xj) ++/* 30006*/ /*Scope*/ 13, /*->30020*/ ++/* 30007*/ OPC_CheckChild0Integer, 16|128,32/*4112*/, ++/* 30010*/ OPC_RecordChild1, // #0 = $xj ++/* 30011*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 30013*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPCNT_W), 0, ++ MVT::v8i32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v8i32] } 4112:{ *:[iPTR] }, LASX256W:{ *:[v8i32] }:$xj) - Complexity = 8 ++ // Dst: (XVPCNT_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$xj) ++/* 30020*/ /*Scope*/ 13, /*->30034*/ ++/* 30021*/ OPC_CheckChild0Integer, 14|128,32/*4110*/, ++/* 30024*/ OPC_RecordChild1, // #0 = $xj ++/* 30025*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 30027*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPCNT_D), 0, ++ MVT::v4i64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4i64] } 4110:{ *:[iPTR] }, LASX256D:{ *:[v4i64] }:$xj) - Complexity = 8 ++ // Dst: (XVPCNT_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$xj) ++/* 30034*/ /*Scope*/ 15, /*->30050*/ ++/* 30035*/ OPC_CheckChild0Integer, 113|128,35/*4593*/, ++/* 30038*/ OPC_RecordChild1, // #0 = $vj ++/* 30039*/ OPC_RecordChild2, // #1 = $vk ++/* 30040*/ OPC_RecordChild3, // #2 = $va ++/* 30041*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFMADD_S), 0, ++ MVT::v4f32, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4f32] } 4593:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk, LSX128WOpnd:{ *:[v4f32] }:$va) - Complexity = 8 ++ // Dst: (VFMADD_S:{ *:[v4f32] } LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk, LSX128WOpnd:{ *:[v4f32] }:$va) ++/* 30050*/ /*Scope*/ 15, /*->30066*/ ++/* 30051*/ OPC_CheckChild0Integer, 112|128,35/*4592*/, ++/* 30054*/ OPC_RecordChild1, // #0 = $vj ++/* 30055*/ OPC_RecordChild2, // #1 = $vk ++/* 30056*/ OPC_RecordChild3, // #2 = $va ++/* 30057*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFMADD_D), 0, ++ MVT::v2f64, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v2f64] } 4592:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk, LSX128DOpnd:{ *:[v2f64] }:$va) - Complexity = 8 ++ // Dst: (VFMADD_D:{ *:[v2f64] } LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk, LSX128DOpnd:{ *:[v2f64] }:$va) ++/* 30066*/ /*Scope*/ 15, /*->30082*/ ++/* 30067*/ OPC_CheckChild0Integer, 123|128,35/*4603*/, ++/* 30070*/ OPC_RecordChild1, // #0 = $vj ++/* 30071*/ OPC_RecordChild2, // #1 = $vk ++/* 30072*/ OPC_RecordChild3, // #2 = $va ++/* 30073*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFMSUB_S), 0, ++ MVT::v4f32, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4f32] } 4603:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk, LSX128WOpnd:{ *:[v4f32] }:$va) - Complexity = 8 ++ // Dst: (VFMSUB_S:{ *:[v4f32] } LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk, LSX128WOpnd:{ *:[v4f32] }:$va) ++/* 30082*/ /*Scope*/ 15, /*->30098*/ ++/* 30083*/ OPC_CheckChild0Integer, 122|128,35/*4602*/, ++/* 30086*/ OPC_RecordChild1, // #0 = $vj ++/* 30087*/ OPC_RecordChild2, // #1 = $vk ++/* 30088*/ OPC_RecordChild3, // #2 = $va ++/* 30089*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFMSUB_D), 0, ++ MVT::v2f64, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v2f64] } 4602:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk, LSX128DOpnd:{ *:[v2f64] }:$va) - Complexity = 8 ++ // Dst: (VFMSUB_D:{ *:[v2f64] } LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk, LSX128DOpnd:{ *:[v2f64] }:$va) ++/* 30098*/ /*Scope*/ 15, /*->30114*/ ++/* 30099*/ OPC_CheckChild0Integer, 127|128,35/*4607*/, ++/* 30102*/ OPC_RecordChild1, // #0 = $vj ++/* 30103*/ OPC_RecordChild2, // #1 = $vk ++/* 30104*/ OPC_RecordChild3, // #2 = $va ++/* 30105*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFNMADD_S), 0, ++ MVT::v4f32, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4f32] } 4607:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk, LSX128WOpnd:{ *:[v4f32] }:$va) - Complexity = 8 ++ // Dst: (VFNMADD_S:{ *:[v4f32] } LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk, LSX128WOpnd:{ *:[v4f32] }:$va) ++/* 30114*/ /*Scope*/ 15, /*->30130*/ ++/* 30115*/ OPC_CheckChild0Integer, 126|128,35/*4606*/, ++/* 30118*/ OPC_RecordChild1, // #0 = $vj ++/* 30119*/ OPC_RecordChild2, // #1 = $vk ++/* 30120*/ OPC_RecordChild3, // #2 = $va ++/* 30121*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFNMADD_D), 0, ++ MVT::v2f64, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v2f64] } 4606:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk, LSX128DOpnd:{ *:[v2f64] }:$va) - Complexity = 8 ++ // Dst: (VFNMADD_D:{ *:[v2f64] } LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk, LSX128DOpnd:{ *:[v2f64] }:$va) ++/* 30130*/ /*Scope*/ 15, /*->30146*/ ++/* 30131*/ OPC_CheckChild0Integer, 1|128,36/*4609*/, ++/* 30134*/ OPC_RecordChild1, // #0 = $vj ++/* 30135*/ OPC_RecordChild2, // #1 = $vk ++/* 30136*/ OPC_RecordChild3, // #2 = $va ++/* 30137*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFNMSUB_S), 0, ++ MVT::v4f32, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4f32] } 4609:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk, LSX128WOpnd:{ *:[v4f32] }:$va) - Complexity = 8 ++ // Dst: (VFNMSUB_S:{ *:[v4f32] } LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk, LSX128WOpnd:{ *:[v4f32] }:$va) ++/* 30146*/ /*Scope*/ 15, /*->30162*/ ++/* 30147*/ OPC_CheckChild0Integer, 0|128,36/*4608*/, ++/* 30150*/ OPC_RecordChild1, // #0 = $vj ++/* 30151*/ OPC_RecordChild2, // #1 = $vk ++/* 30152*/ OPC_RecordChild3, // #2 = $va ++/* 30153*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFNMSUB_D), 0, ++ MVT::v2f64, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v2f64] } 4608:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk, LSX128DOpnd:{ *:[v2f64] }:$va) - Complexity = 8 ++ // Dst: (VFNMSUB_D:{ *:[v2f64] } LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk, LSX128DOpnd:{ *:[v2f64] }:$va) ++/* 30162*/ /*Scope*/ 13, /*->30176*/ ++/* 30163*/ OPC_CheckChild0Integer, 96|128,35/*4576*/, ++/* 30166*/ OPC_RecordChild1, // #0 = $vk ++/* 30167*/ OPC_RecordChild2, // #1 = $vj ++/* 30168*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCVT_S_D), 0, ++ MVT::v4f32, 2/*#Ops*/, 1, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4f32] } 4576:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2f64] }:$vk, LSX128DOpnd:{ *:[v2f64] }:$vj) - Complexity = 8 ++ // Dst: (VFCVT_S_D:{ *:[v4f32] } LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk) ++/* 30176*/ /*Scope*/ 13, /*->30190*/ ++/* 30177*/ OPC_CheckChild0Integer, 105|128,35/*4585*/, ++/* 30180*/ OPC_RecordChild1, // #0 = $vj ++/* 30181*/ OPC_RecordChild2, // #1 = $vk ++/* 30182*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFFINT_S_L), 0, ++ MVT::v4f32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4f32] } 4585:{ *:[iPTR] }, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 8 ++ // Dst: (VFFINT_S_L:{ *:[v4f32] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 30190*/ /*Scope*/ 11, /*->30202*/ ++/* 30191*/ OPC_CheckChild0Integer, 109|128,35/*4589*/, ++/* 30194*/ OPC_RecordChild1, // #0 = $vj ++/* 30195*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFFINTL_D_W), 0, ++ MVT::v2f64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v2f64] } 4589:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vj) - Complexity = 8 ++ // Dst: (VFFINTL_D_W:{ *:[v2f64] } LSX128WOpnd:{ *:[v4i32] }:$vj) ++/* 30202*/ /*Scope*/ 11, /*->30214*/ ++/* 30203*/ OPC_CheckChild0Integer, 108|128,35/*4588*/, ++/* 30206*/ OPC_RecordChild1, // #0 = $vj ++/* 30207*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFFINTH_D_W), 0, ++ MVT::v2f64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v2f64] } 4588:{ *:[iPTR] }, LSX128WOpnd:{ *:[v4i32] }:$vj) - Complexity = 8 ++ // Dst: (VFFINTH_D_W:{ *:[v2f64] } LSX128WOpnd:{ *:[v4i32] }:$vj) ++/* 30214*/ /*Scope*/ 15, /*->30230*/ ++/* 30215*/ OPC_CheckChild0Integer, 48|128,35/*4528*/, ++/* 30218*/ OPC_RecordChild1, // #0 = $vj ++/* 30219*/ OPC_RecordChild2, // #1 = $vk ++/* 30220*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 30222*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFADD_S), 0, ++ MVT::v4f32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4f32] } 4528:{ *:[iPTR] }, LSX128W:{ *:[v4f32] }:$vj, LSX128W:{ *:[v4f32] }:$vk) - Complexity = 8 ++ // Dst: (VFADD_S:{ *:[v4f32] } LSX128W:{ *:[v4f32] }:$vj, LSX128W:{ *:[v4f32] }:$vk) ++/* 30230*/ /*Scope*/ 15, /*->30246*/ ++/* 30231*/ OPC_CheckChild0Integer, 47|128,35/*4527*/, ++/* 30234*/ OPC_RecordChild1, // #0 = $vj ++/* 30235*/ OPC_RecordChild2, // #1 = $vk ++/* 30236*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 30238*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFADD_D), 0, ++ MVT::v2f64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2f64] } 4527:{ *:[iPTR] }, LSX128D:{ *:[v2f64] }:$vj, LSX128D:{ *:[v2f64] }:$vk) - Complexity = 8 ++ // Dst: (VFADD_D:{ *:[v2f64] } LSX128D:{ *:[v2f64] }:$vj, LSX128D:{ *:[v2f64] }:$vk) ++/* 30246*/ /*Scope*/ 15, /*->30262*/ ++/* 30247*/ OPC_CheckChild0Integer, 23|128,36/*4631*/, ++/* 30250*/ OPC_RecordChild1, // #0 = $vj ++/* 30251*/ OPC_RecordChild2, // #1 = $vk ++/* 30252*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 30254*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFSUB_S), 0, ++ MVT::v4f32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4f32] } 4631:{ *:[iPTR] }, LSX128W:{ *:[v4f32] }:$vj, LSX128W:{ *:[v4f32] }:$vk) - Complexity = 8 ++ // Dst: (VFSUB_S:{ *:[v4f32] } LSX128W:{ *:[v4f32] }:$vj, LSX128W:{ *:[v4f32] }:$vk) ++/* 30262*/ /*Scope*/ 15, /*->30278*/ ++/* 30263*/ OPC_CheckChild0Integer, 22|128,36/*4630*/, ++/* 30266*/ OPC_RecordChild1, // #0 = $vj ++/* 30267*/ OPC_RecordChild2, // #1 = $vk ++/* 30268*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 30270*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFSUB_D), 0, ++ MVT::v2f64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2f64] } 4630:{ *:[iPTR] }, LSX128D:{ *:[v2f64] }:$vj, LSX128D:{ *:[v2f64] }:$vk) - Complexity = 8 ++ // Dst: (VFSUB_D:{ *:[v2f64] } LSX128D:{ *:[v2f64] }:$vj, LSX128D:{ *:[v2f64] }:$vk) ++/* 30278*/ /*Scope*/ 15, /*->30294*/ ++/* 30279*/ OPC_CheckChild0Integer, 115|128,35/*4595*/, ++/* 30282*/ OPC_RecordChild1, // #0 = $vj ++/* 30283*/ OPC_RecordChild2, // #1 = $vk ++/* 30284*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 30286*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFMAX_S), 0, ++ MVT::v4f32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4f32] } 4595:{ *:[iPTR] }, LSX128W:{ *:[v4f32] }:$vj, LSX128W:{ *:[v4f32] }:$vk) - Complexity = 8 ++ // Dst: (VFMAX_S:{ *:[v4f32] } LSX128W:{ *:[v4f32] }:$vj, LSX128W:{ *:[v4f32] }:$vk) ++/* 30294*/ /*Scope*/ 15, /*->30310*/ ++/* 30295*/ OPC_CheckChild0Integer, 114|128,35/*4594*/, ++/* 30298*/ OPC_RecordChild1, // #0 = $vj ++/* 30299*/ OPC_RecordChild2, // #1 = $vk ++/* 30300*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 30302*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFMAX_D), 0, ++ MVT::v2f64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2f64] } 4594:{ *:[iPTR] }, LSX128D:{ *:[v2f64] }:$vj, LSX128D:{ *:[v2f64] }:$vk) - Complexity = 8 ++ // Dst: (VFMAX_D:{ *:[v2f64] } LSX128D:{ *:[v2f64] }:$vj, LSX128D:{ *:[v2f64] }:$vk) ++/* 30310*/ /*Scope*/ 15, /*->30326*/ ++/* 30311*/ OPC_CheckChild0Integer, 119|128,35/*4599*/, ++/* 30314*/ OPC_RecordChild1, // #0 = $vj ++/* 30315*/ OPC_RecordChild2, // #1 = $vk ++/* 30316*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 30318*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFMIN_S), 0, ++ MVT::v4f32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4f32] } 4599:{ *:[iPTR] }, LSX128W:{ *:[v4f32] }:$vj, LSX128W:{ *:[v4f32] }:$vk) - Complexity = 8 ++ // Dst: (VFMIN_S:{ *:[v4f32] } LSX128W:{ *:[v4f32] }:$vj, LSX128W:{ *:[v4f32] }:$vk) ++/* 30326*/ /*Scope*/ 15, /*->30342*/ ++/* 30327*/ OPC_CheckChild0Integer, 118|128,35/*4598*/, ++/* 30330*/ OPC_RecordChild1, // #0 = $vj ++/* 30331*/ OPC_RecordChild2, // #1 = $vk ++/* 30332*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 30334*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFMIN_D), 0, ++ MVT::v2f64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2f64] } 4598:{ *:[iPTR] }, LSX128D:{ *:[v2f64] }:$vj, LSX128D:{ *:[v2f64] }:$vk) - Complexity = 8 ++ // Dst: (VFMIN_D:{ *:[v2f64] } LSX128D:{ *:[v2f64] }:$vj, LSX128D:{ *:[v2f64] }:$vk) ++/* 30342*/ /*Scope*/ 15, /*->30358*/ ++/* 30343*/ OPC_CheckChild0Integer, 117|128,35/*4597*/, ++/* 30346*/ OPC_RecordChild1, // #0 = $vj ++/* 30347*/ OPC_RecordChild2, // #1 = $vk ++/* 30348*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 30350*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFMAXA_S), 0, ++ MVT::v4f32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4f32] } 4597:{ *:[iPTR] }, LSX128W:{ *:[v4f32] }:$vj, LSX128W:{ *:[v4f32] }:$vk) - Complexity = 8 ++ // Dst: (VFMAXA_S:{ *:[v4f32] } LSX128W:{ *:[v4f32] }:$vj, LSX128W:{ *:[v4f32] }:$vk) ++/* 30358*/ /*Scope*/ 15, /*->30374*/ ++/* 30359*/ OPC_CheckChild0Integer, 116|128,35/*4596*/, ++/* 30362*/ OPC_RecordChild1, // #0 = $vj ++/* 30363*/ OPC_RecordChild2, // #1 = $vk ++/* 30364*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 30366*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFMAXA_D), 0, ++ MVT::v2f64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2f64] } 4596:{ *:[iPTR] }, LSX128D:{ *:[v2f64] }:$vj, LSX128D:{ *:[v2f64] }:$vk) - Complexity = 8 ++ // Dst: (VFMAXA_D:{ *:[v2f64] } LSX128D:{ *:[v2f64] }:$vj, LSX128D:{ *:[v2f64] }:$vk) ++/* 30374*/ /*Scope*/ 15, /*->30390*/ ++/* 30375*/ OPC_CheckChild0Integer, 121|128,35/*4601*/, ++/* 30378*/ OPC_RecordChild1, // #0 = $vj ++/* 30379*/ OPC_RecordChild2, // #1 = $vk ++/* 30380*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 30382*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFMINA_S), 0, ++ MVT::v4f32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4f32] } 4601:{ *:[iPTR] }, LSX128W:{ *:[v4f32] }:$vj, LSX128W:{ *:[v4f32] }:$vk) - Complexity = 8 ++ // Dst: (VFMINA_S:{ *:[v4f32] } LSX128W:{ *:[v4f32] }:$vj, LSX128W:{ *:[v4f32] }:$vk) ++/* 30390*/ /*Scope*/ 15, /*->30406*/ ++/* 30391*/ OPC_CheckChild0Integer, 120|128,35/*4600*/, ++/* 30394*/ OPC_RecordChild1, // #0 = $vj ++/* 30395*/ OPC_RecordChild2, // #1 = $vk ++/* 30396*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 30398*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFMINA_D), 0, ++ MVT::v2f64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v2f64] } 4600:{ *:[iPTR] }, LSX128D:{ *:[v2f64] }:$vj, LSX128D:{ *:[v2f64] }:$vk) - Complexity = 8 ++ // Dst: (VFMINA_D:{ *:[v2f64] } LSX128D:{ *:[v2f64] }:$vj, LSX128D:{ *:[v2f64] }:$vk) ++/* 30406*/ /*Scope*/ 13, /*->30420*/ ++/* 30407*/ OPC_CheckChild0Integer, 111|128,35/*4591*/, ++/* 30410*/ OPC_RecordChild1, // #0 = $vj ++/* 30411*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 30413*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFLOGB_S), 0, ++ MVT::v4f32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4f32] } 4591:{ *:[iPTR] }, LSX128W:{ *:[v4f32] }:$vj) - Complexity = 8 ++ // Dst: (VFLOGB_S:{ *:[v4f32] } LSX128W:{ *:[v4f32] }:$vj) ++/* 30420*/ /*Scope*/ 13, /*->30434*/ ++/* 30421*/ OPC_CheckChild0Integer, 110|128,35/*4590*/, ++/* 30424*/ OPC_RecordChild1, // #0 = $vj ++/* 30425*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 30427*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFLOGB_D), 0, ++ MVT::v2f64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v2f64] } 4590:{ *:[iPTR] }, LSX128D:{ *:[v2f64] }:$vj) - Complexity = 8 ++ // Dst: (VFLOGB_D:{ *:[v2f64] } LSX128D:{ *:[v2f64] }:$vj) ++/* 30434*/ /*Scope*/ 13, /*->30448*/ ++/* 30435*/ OPC_CheckChild0Integer, 3|128,36/*4611*/, ++/* 30438*/ OPC_RecordChild1, // #0 = $vj ++/* 30439*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 30441*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFRECIP_S), 0, ++ MVT::v4f32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4f32] } 4611:{ *:[iPTR] }, LSX128W:{ *:[v4f32] }:$vj) - Complexity = 8 ++ // Dst: (VFRECIP_S:{ *:[v4f32] } LSX128W:{ *:[v4f32] }:$vj) ++/* 30448*/ /*Scope*/ 13, /*->30462*/ ++/* 30449*/ OPC_CheckChild0Integer, 2|128,36/*4610*/, ++/* 30452*/ OPC_RecordChild1, // #0 = $vj ++/* 30453*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 30455*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFRECIP_D), 0, ++ MVT::v2f64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v2f64] } 4610:{ *:[iPTR] }, LSX128D:{ *:[v2f64] }:$vj) - Complexity = 8 ++ // Dst: (VFRECIP_D:{ *:[v2f64] } LSX128D:{ *:[v2f64] }:$vj) ++/* 30462*/ /*Scope*/ 13, /*->30476*/ ++/* 30463*/ OPC_CheckChild0Integer, 15|128,36/*4623*/, ++/* 30466*/ OPC_RecordChild1, // #0 = $vj ++/* 30467*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 30469*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFRSQRT_S), 0, ++ MVT::v4f32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4f32] } 4623:{ *:[iPTR] }, LSX128W:{ *:[v4f32] }:$vj) - Complexity = 8 ++ // Dst: (VFRSQRT_S:{ *:[v4f32] } LSX128W:{ *:[v4f32] }:$vj) ++/* 30476*/ /*Scope*/ 13, /*->30490*/ ++/* 30477*/ OPC_CheckChild0Integer, 14|128,36/*4622*/, ++/* 30480*/ OPC_RecordChild1, // #0 = $vj ++/* 30481*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 30483*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFRSQRT_D), 0, ++ MVT::v2f64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v2f64] } 4622:{ *:[iPTR] }, LSX128D:{ *:[v2f64] }:$vj) - Complexity = 8 ++ // Dst: (VFRSQRT_D:{ *:[v2f64] } LSX128D:{ *:[v2f64] }:$vj) ++/* 30490*/ /*Scope*/ 13, /*->30504*/ ++/* 30491*/ OPC_CheckChild0Integer, 100|128,35/*4580*/, ++/* 30494*/ OPC_RecordChild1, // #0 = $vk ++/* 30495*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 30497*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCVTL_S_H), 0, ++ MVT::v4f32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4f32] } 4580:{ *:[iPTR] }, LSX128H:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VFCVTL_S_H:{ *:[v4f32] } LSX128H:{ *:[v8i16] }:$vk) ++/* 30504*/ /*Scope*/ 13, /*->30518*/ ++/* 30505*/ OPC_CheckChild0Integer, 98|128,35/*4578*/, ++/* 30508*/ OPC_RecordChild1, // #0 = $vk ++/* 30509*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 30511*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCVTH_S_H), 0, ++ MVT::v4f32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4f32] } 4578:{ *:[iPTR] }, LSX128H:{ *:[v8i16] }:$vk) - Complexity = 8 ++ // Dst: (VFCVTH_S_H:{ *:[v4f32] } LSX128H:{ *:[v8i16] }:$vk) ++/* 30518*/ /*Scope*/ 13, /*->30532*/ ++/* 30519*/ OPC_CheckChild0Integer, 99|128,35/*4579*/, ++/* 30522*/ OPC_RecordChild1, // #0 = $vj ++/* 30523*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 30525*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCVTL_D_S), 0, ++ MVT::v2f64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v2f64] } 4579:{ *:[iPTR] }, LSX128W:{ *:[v4f32] }:$vj) - Complexity = 8 ++ // Dst: (VFCVTL_D_S:{ *:[v2f64] } LSX128W:{ *:[v4f32] }:$vj) ++/* 30532*/ /*Scope*/ 13, /*->30546*/ ++/* 30533*/ OPC_CheckChild0Integer, 97|128,35/*4577*/, ++/* 30536*/ OPC_RecordChild1, // #0 = $vj ++/* 30537*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 30539*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFCVTH_D_S), 0, ++ MVT::v2f64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v2f64] } 4577:{ *:[iPTR] }, LSX128W:{ *:[v4f32] }:$vj) - Complexity = 8 ++ // Dst: (VFCVTH_D_S:{ *:[v2f64] } LSX128W:{ *:[v4f32] }:$vj) ++/* 30546*/ /*Scope*/ 15, /*->30562*/ ++/* 30547*/ OPC_CheckChild0Integer, 35|128,30/*3875*/, ++/* 30550*/ OPC_RecordChild1, // #0 = $xj ++/* 30551*/ OPC_RecordChild2, // #1 = $xk ++/* 30552*/ OPC_RecordChild3, // #2 = $xa ++/* 30553*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFMADD_S), 0, ++ MVT::v8f32, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8f32] } 3875:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk, LASX256WOpnd:{ *:[v8f32] }:$xa) - Complexity = 8 ++ // Dst: (XVFMADD_S:{ *:[v8f32] } LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk, LASX256WOpnd:{ *:[v8f32] }:$xa) ++/* 30562*/ /*Scope*/ 15, /*->30578*/ ++/* 30563*/ OPC_CheckChild0Integer, 34|128,30/*3874*/, ++/* 30566*/ OPC_RecordChild1, // #0 = $xj ++/* 30567*/ OPC_RecordChild2, // #1 = $xk ++/* 30568*/ OPC_RecordChild3, // #2 = $xa ++/* 30569*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFMADD_D), 0, ++ MVT::v4f64, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4f64] } 3874:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk, LASX256DOpnd:{ *:[v4f64] }:$xa) - Complexity = 8 ++ // Dst: (XVFMADD_D:{ *:[v4f64] } LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk, LASX256DOpnd:{ *:[v4f64] }:$xa) ++/* 30578*/ /*Scope*/ 15, /*->30594*/ ++/* 30579*/ OPC_CheckChild0Integer, 45|128,30/*3885*/, ++/* 30582*/ OPC_RecordChild1, // #0 = $xj ++/* 30583*/ OPC_RecordChild2, // #1 = $xk ++/* 30584*/ OPC_RecordChild3, // #2 = $xa ++/* 30585*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFMSUB_S), 0, ++ MVT::v8f32, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8f32] } 3885:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk, LASX256WOpnd:{ *:[v8f32] }:$xa) - Complexity = 8 ++ // Dst: (XVFMSUB_S:{ *:[v8f32] } LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk, LASX256WOpnd:{ *:[v8f32] }:$xa) ++/* 30594*/ /*Scope*/ 15, /*->30610*/ ++/* 30595*/ OPC_CheckChild0Integer, 44|128,30/*3884*/, ++/* 30598*/ OPC_RecordChild1, // #0 = $xj ++/* 30599*/ OPC_RecordChild2, // #1 = $xk ++/* 30600*/ OPC_RecordChild3, // #2 = $xa ++/* 30601*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFMSUB_D), 0, ++ MVT::v4f64, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4f64] } 3884:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk, LASX256DOpnd:{ *:[v4f64] }:$xa) - Complexity = 8 ++ // Dst: (XVFMSUB_D:{ *:[v4f64] } LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk, LASX256DOpnd:{ *:[v4f64] }:$xa) ++/* 30610*/ /*Scope*/ 15, /*->30626*/ ++/* 30611*/ OPC_CheckChild0Integer, 49|128,30/*3889*/, ++/* 30614*/ OPC_RecordChild1, // #0 = $xj ++/* 30615*/ OPC_RecordChild2, // #1 = $xk ++/* 30616*/ OPC_RecordChild3, // #2 = $xa ++/* 30617*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFNMADD_S), 0, ++ MVT::v8f32, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8f32] } 3889:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk, LASX256WOpnd:{ *:[v8f32] }:$xa) - Complexity = 8 ++ // Dst: (XVFNMADD_S:{ *:[v8f32] } LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk, LASX256WOpnd:{ *:[v8f32] }:$xa) ++/* 30626*/ /*Scope*/ 15, /*->30642*/ ++/* 30627*/ OPC_CheckChild0Integer, 48|128,30/*3888*/, ++/* 30630*/ OPC_RecordChild1, // #0 = $xj ++/* 30631*/ OPC_RecordChild2, // #1 = $xk ++/* 30632*/ OPC_RecordChild3, // #2 = $xa ++/* 30633*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFNMADD_D), 0, ++ MVT::v4f64, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4f64] } 3888:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk, LASX256DOpnd:{ *:[v4f64] }:$xa) - Complexity = 8 ++ // Dst: (XVFNMADD_D:{ *:[v4f64] } LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk, LASX256DOpnd:{ *:[v4f64] }:$xa) ++/* 30642*/ /*Scope*/ 15, /*->30658*/ ++/* 30643*/ OPC_CheckChild0Integer, 51|128,30/*3891*/, ++/* 30646*/ OPC_RecordChild1, // #0 = $xj ++/* 30647*/ OPC_RecordChild2, // #1 = $xk ++/* 30648*/ OPC_RecordChild3, // #2 = $xa ++/* 30649*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFNMSUB_S), 0, ++ MVT::v8f32, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v8f32] } 3891:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk, LASX256WOpnd:{ *:[v8f32] }:$xa) - Complexity = 8 ++ // Dst: (XVFNMSUB_S:{ *:[v8f32] } LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk, LASX256WOpnd:{ *:[v8f32] }:$xa) ++/* 30658*/ /*Scope*/ 15, /*->30674*/ ++/* 30659*/ OPC_CheckChild0Integer, 50|128,30/*3890*/, ++/* 30662*/ OPC_RecordChild1, // #0 = $xj ++/* 30663*/ OPC_RecordChild2, // #1 = $xk ++/* 30664*/ OPC_RecordChild3, // #2 = $xa ++/* 30665*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFNMSUB_D), 0, ++ MVT::v4f64, 3/*#Ops*/, 0, 1, 2, ++ // Src: (intrinsic_wo_chain:{ *:[v4f64] } 3890:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk, LASX256DOpnd:{ *:[v4f64] }:$xa) - Complexity = 8 ++ // Dst: (XVFNMSUB_D:{ *:[v4f64] } LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk, LASX256DOpnd:{ *:[v4f64] }:$xa) ++/* 30674*/ /*Scope*/ 13, /*->30688*/ ++/* 30675*/ OPC_CheckChild0Integer, 37|128,30/*3877*/, ++/* 30678*/ OPC_RecordChild1, // #0 = $xj ++/* 30679*/ OPC_RecordChild2, // #1 = $xk ++/* 30680*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFMAX_S), 0, ++ MVT::v8f32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8f32] } 3877:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk) - Complexity = 8 ++ // Dst: (XVFMAX_S:{ *:[v8f32] } LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk) ++/* 30688*/ /*Scope*/ 13, /*->30702*/ ++/* 30689*/ OPC_CheckChild0Integer, 36|128,30/*3876*/, ++/* 30692*/ OPC_RecordChild1, // #0 = $xj ++/* 30693*/ OPC_RecordChild2, // #1 = $xk ++/* 30694*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFMAX_D), 0, ++ MVT::v4f64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4f64] } 3876:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) - Complexity = 8 ++ // Dst: (XVFMAX_D:{ *:[v4f64] } LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) ++/* 30702*/ /*Scope*/ 13, /*->30716*/ ++/* 30703*/ OPC_CheckChild0Integer, 41|128,30/*3881*/, ++/* 30706*/ OPC_RecordChild1, // #0 = $xj ++/* 30707*/ OPC_RecordChild2, // #1 = $xk ++/* 30708*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFMIN_S), 0, ++ MVT::v8f32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8f32] } 3881:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk) - Complexity = 8 ++ // Dst: (XVFMIN_S:{ *:[v8f32] } LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk) ++/* 30716*/ /*Scope*/ 13, /*->30730*/ ++/* 30717*/ OPC_CheckChild0Integer, 40|128,30/*3880*/, ++/* 30720*/ OPC_RecordChild1, // #0 = $xj ++/* 30721*/ OPC_RecordChild2, // #1 = $xk ++/* 30722*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFMIN_D), 0, ++ MVT::v4f64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4f64] } 3880:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) - Complexity = 8 ++ // Dst: (XVFMIN_D:{ *:[v4f64] } LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) ++/* 30730*/ /*Scope*/ 13, /*->30744*/ ++/* 30731*/ OPC_CheckChild0Integer, 39|128,30/*3879*/, ++/* 30734*/ OPC_RecordChild1, // #0 = $xj ++/* 30735*/ OPC_RecordChild2, // #1 = $xk ++/* 30736*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFMAXA_S), 0, ++ MVT::v8f32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8f32] } 3879:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk) - Complexity = 8 ++ // Dst: (XVFMAXA_S:{ *:[v8f32] } LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk) ++/* 30744*/ /*Scope*/ 13, /*->30758*/ ++/* 30745*/ OPC_CheckChild0Integer, 38|128,30/*3878*/, ++/* 30748*/ OPC_RecordChild1, // #0 = $xj ++/* 30749*/ OPC_RecordChild2, // #1 = $xk ++/* 30750*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFMAXA_D), 0, ++ MVT::v4f64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4f64] } 3878:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) - Complexity = 8 ++ // Dst: (XVFMAXA_D:{ *:[v4f64] } LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) ++/* 30758*/ /*Scope*/ 13, /*->30772*/ ++/* 30759*/ OPC_CheckChild0Integer, 43|128,30/*3883*/, ++/* 30762*/ OPC_RecordChild1, // #0 = $xj ++/* 30763*/ OPC_RecordChild2, // #1 = $xk ++/* 30764*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFMINA_S), 0, ++ MVT::v8f32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8f32] } 3883:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk) - Complexity = 8 ++ // Dst: (XVFMINA_S:{ *:[v8f32] } LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk) ++/* 30772*/ /*Scope*/ 13, /*->30786*/ ++/* 30773*/ OPC_CheckChild0Integer, 42|128,30/*3882*/, ++/* 30776*/ OPC_RecordChild1, // #0 = $xj ++/* 30777*/ OPC_RecordChild2, // #1 = $xk ++/* 30778*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFMINA_D), 0, ++ MVT::v4f64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4f64] } 3882:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) - Complexity = 8 ++ // Dst: (XVFMINA_D:{ *:[v4f64] } LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) ++/* 30786*/ /*Scope*/ 13, /*->30800*/ ++/* 30787*/ OPC_CheckChild0Integer, 18|128,30/*3858*/, ++/* 30790*/ OPC_RecordChild1, // #0 = $xk ++/* 30791*/ OPC_RecordChild2, // #1 = $xj ++/* 30792*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCVT_S_D), 0, ++ MVT::v8f32, 2/*#Ops*/, 1, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v8f32] } 3858:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4f64] }:$xk, LASX256DOpnd:{ *:[v4f64] }:$xj) - Complexity = 8 ++ // Dst: (XVFCVT_S_D:{ *:[v8f32] } LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) ++/* 30800*/ /*Scope*/ 13, /*->30814*/ ++/* 30801*/ OPC_CheckChild0Integer, 27|128,30/*3867*/, ++/* 30804*/ OPC_RecordChild1, // #0 = $xj ++/* 30805*/ OPC_RecordChild2, // #1 = $xk ++/* 30806*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFFINT_S_L), 0, ++ MVT::v8f32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8f32] } 3867:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 8 ++ // Dst: (XVFFINT_S_L:{ *:[v8f32] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 30814*/ /*Scope*/ 11, /*->30826*/ ++/* 30815*/ OPC_CheckChild0Integer, 33|128,30/*3873*/, ++/* 30818*/ OPC_RecordChild1, // #0 = $xj ++/* 30819*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFLOGB_S), 0, ++ MVT::v8f32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v8f32] } 3873:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8f32] }:$xj) - Complexity = 8 ++ // Dst: (XVFLOGB_S:{ *:[v8f32] } LASX256WOpnd:{ *:[v8f32] }:$xj) ++/* 30826*/ /*Scope*/ 11, /*->30838*/ ++/* 30827*/ OPC_CheckChild0Integer, 32|128,30/*3872*/, ++/* 30830*/ OPC_RecordChild1, // #0 = $xj ++/* 30831*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFLOGB_D), 0, ++ MVT::v4f64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4f64] } 3872:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4f64] }:$xj) - Complexity = 8 ++ // Dst: (XVFLOGB_D:{ *:[v4f64] } LASX256DOpnd:{ *:[v4f64] }:$xj) ++/* 30838*/ /*Scope*/ 11, /*->30850*/ ++/* 30839*/ OPC_CheckChild0Integer, 53|128,30/*3893*/, ++/* 30842*/ OPC_RecordChild1, // #0 = $xj ++/* 30843*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFRECIP_S), 0, ++ MVT::v8f32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v8f32] } 3893:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8f32] }:$xj) - Complexity = 8 ++ // Dst: (XVFRECIP_S:{ *:[v8f32] } LASX256WOpnd:{ *:[v8f32] }:$xj) ++/* 30850*/ /*Scope*/ 11, /*->30862*/ ++/* 30851*/ OPC_CheckChild0Integer, 52|128,30/*3892*/, ++/* 30854*/ OPC_RecordChild1, // #0 = $xj ++/* 30855*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFRECIP_D), 0, ++ MVT::v4f64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4f64] } 3892:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4f64] }:$xj) - Complexity = 8 ++ // Dst: (XVFRECIP_D:{ *:[v4f64] } LASX256DOpnd:{ *:[v4f64] }:$xj) ++/* 30862*/ /*Scope*/ 11, /*->30874*/ ++/* 30863*/ OPC_CheckChild0Integer, 65|128,30/*3905*/, ++/* 30866*/ OPC_RecordChild1, // #0 = $xj ++/* 30867*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFRSQRT_S), 0, ++ MVT::v8f32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v8f32] } 3905:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8f32] }:$xj) - Complexity = 8 ++ // Dst: (XVFRSQRT_S:{ *:[v8f32] } LASX256WOpnd:{ *:[v8f32] }:$xj) ++/* 30874*/ /*Scope*/ 11, /*->30886*/ ++/* 30875*/ OPC_CheckChild0Integer, 64|128,30/*3904*/, ++/* 30878*/ OPC_RecordChild1, // #0 = $xj ++/* 30879*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFRSQRT_D), 0, ++ MVT::v4f64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4f64] } 3904:{ *:[iPTR] }, LASX256DOpnd:{ *:[v4f64] }:$xj) - Complexity = 8 ++ // Dst: (XVFRSQRT_D:{ *:[v4f64] } LASX256DOpnd:{ *:[v4f64] }:$xj) ++/* 30886*/ /*Scope*/ 11, /*->30898*/ ++/* 30887*/ OPC_CheckChild0Integer, 22|128,30/*3862*/, ++/* 30890*/ OPC_RecordChild1, // #0 = $xj ++/* 30891*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCVTL_S_H), 0, ++ MVT::v8f32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v8f32] } 3862:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj) - Complexity = 8 ++ // Dst: (XVFCVTL_S_H:{ *:[v8f32] } LASX256HOpnd:{ *:[v16i16] }:$xj) ++/* 30898*/ /*Scope*/ 11, /*->30910*/ ++/* 30899*/ OPC_CheckChild0Integer, 20|128,30/*3860*/, ++/* 30902*/ OPC_RecordChild1, // #0 = $xj ++/* 30903*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCVTH_S_H), 0, ++ MVT::v8f32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v8f32] } 3860:{ *:[iPTR] }, LASX256HOpnd:{ *:[v16i16] }:$xj) - Complexity = 8 ++ // Dst: (XVFCVTH_S_H:{ *:[v8f32] } LASX256HOpnd:{ *:[v16i16] }:$xj) ++/* 30910*/ /*Scope*/ 11, /*->30922*/ ++/* 30911*/ OPC_CheckChild0Integer, 21|128,30/*3861*/, ++/* 30914*/ OPC_RecordChild1, // #0 = $xj ++/* 30915*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCVTL_D_S), 0, ++ MVT::v4f64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4f64] } 3861:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8f32] }:$xj) - Complexity = 8 ++ // Dst: (XVFCVTL_D_S:{ *:[v4f64] } LASX256WOpnd:{ *:[v8f32] }:$xj) ++/* 30922*/ /*Scope*/ 11, /*->30934*/ ++/* 30923*/ OPC_CheckChild0Integer, 19|128,30/*3859*/, ++/* 30926*/ OPC_RecordChild1, // #0 = $xj ++/* 30927*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFCVTH_D_S), 0, ++ MVT::v4f64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4f64] } 3859:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8f32] }:$xj) - Complexity = 8 ++ // Dst: (XVFCVTH_D_S:{ *:[v4f64] } LASX256WOpnd:{ *:[v8f32] }:$xj) ++/* 30934*/ /*Scope*/ 11, /*->30946*/ ++/* 30935*/ OPC_CheckChild0Integer, 31|128,30/*3871*/, ++/* 30938*/ OPC_RecordChild1, // #0 = $xj ++/* 30939*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFFINTL_D_W), 0, ++ MVT::v4f64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4f64] } 3871:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj) - Complexity = 8 ++ // Dst: (XVFFINTL_D_W:{ *:[v4f64] } LASX256WOpnd:{ *:[v8i32] }:$xj) ++/* 30946*/ /*Scope*/ 11, /*->30958*/ ++/* 30947*/ OPC_CheckChild0Integer, 30|128,30/*3870*/, ++/* 30950*/ OPC_RecordChild1, // #0 = $xj ++/* 30951*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFFINTH_D_W), 0, ++ MVT::v4f64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4f64] } 3870:{ *:[iPTR] }, LASX256WOpnd:{ *:[v8i32] }:$xj) - Complexity = 8 ++ // Dst: (XVFFINTH_D_W:{ *:[v4f64] } LASX256WOpnd:{ *:[v8i32] }:$xj) ++/* 30958*/ /*Scope*/ 15, /*->30974*/ ++/* 30959*/ OPC_CheckChild0Integer, 98|128,29/*3810*/, ++/* 30962*/ OPC_RecordChild1, // #0 = $xj ++/* 30963*/ OPC_RecordChild2, // #1 = $xk ++/* 30964*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 30966*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFADD_S), 0, ++ MVT::v8f32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8f32] } 3810:{ *:[iPTR] }, LASX256W:{ *:[v8f32] }:$xj, LASX256W:{ *:[v8f32] }:$xk) - Complexity = 8 ++ // Dst: (XVFADD_S:{ *:[v8f32] } LASX256W:{ *:[v8f32] }:$xj, LASX256W:{ *:[v8f32] }:$xk) ++/* 30974*/ /*Scope*/ 15, /*->30990*/ ++/* 30975*/ OPC_CheckChild0Integer, 97|128,29/*3809*/, ++/* 30978*/ OPC_RecordChild1, // #0 = $xj ++/* 30979*/ OPC_RecordChild2, // #1 = $xk ++/* 30980*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 30982*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFADD_D), 0, ++ MVT::v4f64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4f64] } 3809:{ *:[iPTR] }, LASX256D:{ *:[v4f64] }:$xj, LASX256D:{ *:[v4f64] }:$xk) - Complexity = 8 ++ // Dst: (XVFADD_D:{ *:[v4f64] } LASX256D:{ *:[v4f64] }:$xj, LASX256D:{ *:[v4f64] }:$xk) ++/* 30990*/ /*Scope*/ 15, /*->31006*/ ++/* 30991*/ OPC_CheckChild0Integer, 73|128,30/*3913*/, ++/* 30994*/ OPC_RecordChild1, // #0 = $xj ++/* 30995*/ OPC_RecordChild2, // #1 = $xk ++/* 30996*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 30998*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFSUB_S), 0, ++ MVT::v8f32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8f32] } 3913:{ *:[iPTR] }, LASX256W:{ *:[v8f32] }:$xj, LASX256W:{ *:[v8f32] }:$xk) - Complexity = 8 ++ // Dst: (XVFSUB_S:{ *:[v8f32] } LASX256W:{ *:[v8f32] }:$xj, LASX256W:{ *:[v8f32] }:$xk) ++/* 31006*/ /*Scope*/ 15, /*->31022*/ ++/* 31007*/ OPC_CheckChild0Integer, 72|128,30/*3912*/, ++/* 31010*/ OPC_RecordChild1, // #0 = $xj ++/* 31011*/ OPC_RecordChild2, // #1 = $xk ++/* 31012*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 31014*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFSUB_D), 0, ++ MVT::v4f64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4f64] } 3912:{ *:[iPTR] }, LASX256D:{ *:[v4f64] }:$xj, LASX256D:{ *:[v4f64] }:$xk) - Complexity = 8 ++ // Dst: (XVFSUB_D:{ *:[v4f64] } LASX256D:{ *:[v4f64] }:$xj, LASX256D:{ *:[v4f64] }:$xk) ++/* 31022*/ /*Scope*/ 15, /*->31038*/ ++/* 31023*/ OPC_CheckChild0Integer, 47|128,30/*3887*/, ++/* 31026*/ OPC_RecordChild1, // #0 = $xj ++/* 31027*/ OPC_RecordChild2, // #1 = $xk ++/* 31028*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 31030*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFMUL_S), 0, ++ MVT::v8f32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8f32] } 3887:{ *:[iPTR] }, LASX256W:{ *:[v8f32] }:$xj, LASX256W:{ *:[v8f32] }:$xk) - Complexity = 8 ++ // Dst: (XVFMUL_S:{ *:[v8f32] } LASX256W:{ *:[v8f32] }:$xj, LASX256W:{ *:[v8f32] }:$xk) ++/* 31038*/ /*Scope*/ 15, /*->31054*/ ++/* 31039*/ OPC_CheckChild0Integer, 46|128,30/*3886*/, ++/* 31042*/ OPC_RecordChild1, // #0 = $xj ++/* 31043*/ OPC_RecordChild2, // #1 = $xk ++/* 31044*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 31046*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFMUL_D), 0, ++ MVT::v4f64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4f64] } 3886:{ *:[iPTR] }, LASX256D:{ *:[v4f64] }:$xj, LASX256D:{ *:[v4f64] }:$xk) - Complexity = 8 ++ // Dst: (XVFMUL_D:{ *:[v4f64] } LASX256D:{ *:[v4f64] }:$xj, LASX256D:{ *:[v4f64] }:$xk) ++/* 31054*/ /*Scope*/ 15, /*->31070*/ ++/* 31055*/ OPC_CheckChild0Integer, 24|128,30/*3864*/, ++/* 31058*/ OPC_RecordChild1, // #0 = $xj ++/* 31059*/ OPC_RecordChild2, // #1 = $xk ++/* 31060*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 31062*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFDIV_S), 0, ++ MVT::v8f32, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v8f32] } 3864:{ *:[iPTR] }, LASX256W:{ *:[v8f32] }:$xj, LASX256W:{ *:[v8f32] }:$xk) - Complexity = 8 ++ // Dst: (XVFDIV_S:{ *:[v8f32] } LASX256W:{ *:[v8f32] }:$xj, LASX256W:{ *:[v8f32] }:$xk) ++/* 31070*/ /*Scope*/ 15, /*->31086*/ ++/* 31071*/ OPC_CheckChild0Integer, 23|128,30/*3863*/, ++/* 31074*/ OPC_RecordChild1, // #0 = $xj ++/* 31075*/ OPC_RecordChild2, // #1 = $xk ++/* 31076*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 31078*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFDIV_D), 0, ++ MVT::v4f64, 2/*#Ops*/, 0, 1, ++ // Src: (intrinsic_wo_chain:{ *:[v4f64] } 3863:{ *:[iPTR] }, LASX256D:{ *:[v4f64] }:$xj, LASX256D:{ *:[v4f64] }:$xk) - Complexity = 8 ++ // Dst: (XVFDIV_D:{ *:[v4f64] } LASX256D:{ *:[v4f64] }:$xj, LASX256D:{ *:[v4f64] }:$xk) ++/* 31086*/ /*Scope*/ 13, /*->31100*/ ++/* 31087*/ OPC_CheckChild0Integer, 71|128,30/*3911*/, ++/* 31090*/ OPC_RecordChild1, // #0 = $xj ++/* 31091*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 31093*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFSQRT_S), 0, ++ MVT::v8f32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v8f32] } 3911:{ *:[iPTR] }, LASX256W:{ *:[v8f32] }:$xj) - Complexity = 8 ++ // Dst: (XVFSQRT_S:{ *:[v8f32] } LASX256W:{ *:[v8f32] }:$xj) ++/* 31100*/ /*Scope*/ 13, /*->31114*/ ++/* 31101*/ OPC_CheckChild0Integer, 70|128,30/*3910*/, ++/* 31104*/ OPC_RecordChild1, // #0 = $xj ++/* 31105*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 31107*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFSQRT_D), 0, ++ MVT::v4f64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4f64] } 3910:{ *:[iPTR] }, LASX256D:{ *:[v4f64] }:$xj) - Complexity = 8 ++ // Dst: (XVFSQRT_D:{ *:[v4f64] } LASX256D:{ *:[v4f64] }:$xj) ++/* 31114*/ /*Scope*/ 13, /*->31128*/ ++/* 31115*/ OPC_CheckChild0Integer, 28|128,30/*3868*/, ++/* 31118*/ OPC_RecordChild1, // #0 = $xj ++/* 31119*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 31121*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFFINT_S_W), 0, ++ MVT::v8f32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v8f32] } 3868:{ *:[iPTR] }, LASX256W:{ *:[v8i32] }:$xj) - Complexity = 8 ++ // Dst: (XVFFINT_S_W:{ *:[v8f32] } LASX256W:{ *:[v8i32] }:$xj) ++/* 31128*/ /*Scope*/ 13, /*->31142*/ ++/* 31129*/ OPC_CheckChild0Integer, 29|128,30/*3869*/, ++/* 31132*/ OPC_RecordChild1, // #0 = $xj ++/* 31133*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 31135*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFFINT_S_WU), 0, ++ MVT::v8f32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v8f32] } 3869:{ *:[iPTR] }, LASX256W:{ *:[v8i32] }:$xj) - Complexity = 8 ++ // Dst: (XVFFINT_S_WU:{ *:[v8f32] } LASX256W:{ *:[v8i32] }:$xj) ++/* 31142*/ /*Scope*/ 13, /*->31156*/ ++/* 31143*/ OPC_CheckChild0Integer, 25|128,30/*3865*/, ++/* 31146*/ OPC_RecordChild1, // #0 = $xj ++/* 31147*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 31149*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFFINT_D_L), 0, ++ MVT::v4f64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4f64] } 3865:{ *:[iPTR] }, LASX256D:{ *:[v4i64] }:$xj) - Complexity = 8 ++ // Dst: (XVFFINT_D_L:{ *:[v4f64] } LASX256D:{ *:[v4i64] }:$xj) ++/* 31156*/ /*Scope*/ 13, /*->31170*/ ++/* 31157*/ OPC_CheckChild0Integer, 26|128,30/*3866*/, ++/* 31160*/ OPC_RecordChild1, // #0 = $xj ++/* 31161*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 31163*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFFINT_D_LU), 0, ++ MVT::v4f64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4f64] } 3866:{ *:[iPTR] }, LASX256D:{ *:[v4i64] }:$xj) - Complexity = 8 ++ // Dst: (XVFFINT_D_LU:{ *:[v4f64] } LASX256D:{ *:[v4i64] }:$xj) ++/* 31170*/ /*Scope*/ 13, /*->31184*/ ++/* 31171*/ OPC_CheckChild0Integer, 55|128,30/*3895*/, ++/* 31174*/ OPC_RecordChild1, // #0 = $xj ++/* 31175*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 31177*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFRINT_S), 0, ++ MVT::v8f32, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v8f32] } 3895:{ *:[iPTR] }, LASX256W:{ *:[v8f32] }:$xj) - Complexity = 8 ++ // Dst: (XVFRINT_S:{ *:[v8f32] } LASX256W:{ *:[v8f32] }:$xj) ++/* 31184*/ /*Scope*/ 13, /*->31198*/ ++/* 31185*/ OPC_CheckChild0Integer, 54|128,30/*3894*/, ++/* 31188*/ OPC_RecordChild1, // #0 = $xj ++/* 31189*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 31191*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFRINT_D), 0, ++ MVT::v4f64, 1/*#Ops*/, 0, ++ // Src: (intrinsic_wo_chain:{ *:[v4f64] } 3894:{ *:[iPTR] }, LASX256D:{ *:[v4f64] }:$xj) - Complexity = 8 ++ // Dst: (XVFRINT_D:{ *:[v4f64] } LASX256D:{ *:[v4f64] }:$xj) ++/* 31198*/ 0, /*End of Scope*/ ++/* 31199*/ /*SwitchOpcode*/ 31|128,1/*159*/, TARGET_VAL(ISD::CTLZ),// ->31362 ++/* 31203*/ OPC_Scope, 42, /*->31247*/ // 2 children in Scope ++/* 31205*/ OPC_MoveChild0, ++/* 31206*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 31209*/ OPC_RecordChild0, // #0 = $rj ++/* 31210*/ OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, ++/* 31221*/ OPC_SwitchType /*2 cases */, 10, MVT::i64,// ->31234 ++/* 31224*/ OPC_MoveParent, ++/* 31225*/ OPC_CheckType, MVT::i64, ++/* 31227*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CLO_D), 0, ++ MVT::i64, 1/*#Ops*/, 0, ++ // Src: (ctlz:{ *:[i64] } (xor:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, -1:{ *:[i64] })) - Complexity = 11 ++ // Dst: (CLO_D:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj) ++/* 31234*/ /*SwitchType*/ 10, MVT::i32,// ->31246 ++/* 31236*/ OPC_MoveParent, ++/* 31237*/ OPC_CheckType, MVT::i32, ++/* 31239*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CLO_W), 0, ++ MVT::i32, 1/*#Ops*/, 0, ++ // Src: (ctlz:{ *:[i32] } (xor:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, -1:{ *:[i32] })) - Complexity = 11 ++ // Dst: (CLO_W:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj) ++/* 31246*/ 0, // EndSwitchType ++/* 31247*/ /*Scope*/ 113, /*->31361*/ ++/* 31248*/ OPC_RecordChild0, // #0 = $rj ++/* 31249*/ OPC_SwitchType /*10 cases */, 9, MVT::i64,// ->31261 ++/* 31252*/ OPC_CheckChild0Type, MVT::i64, ++/* 31254*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CLZ_D), 0, ++ MVT::i64, 1/*#Ops*/, 0, ++ // Src: (ctlz:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj) - Complexity = 3 ++ // Dst: (CLZ_D:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj) ++/* 31261*/ /*SwitchType*/ 9, MVT::i32,// ->31272 ++/* 31263*/ OPC_CheckChild0Type, MVT::i32, ++/* 31265*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CLZ_W), 0, ++ MVT::i32, 1/*#Ops*/, 0, ++ // Src: (ctlz:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj) - Complexity = 3 ++ // Dst: (CLZ_W:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj) ++/* 31272*/ /*SwitchType*/ 9, MVT::v16i8,// ->31283 ++/* 31274*/ OPC_CheckChild0Type, MVT::v16i8, ++/* 31276*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VCLZ_B), 0, ++ MVT::v16i8, 1/*#Ops*/, 0, ++ // Src: (ctlz:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj) - Complexity = 3 ++ // Dst: (VCLZ_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj) ++/* 31283*/ /*SwitchType*/ 9, MVT::v8i16,// ->31294 ++/* 31285*/ OPC_CheckChild0Type, MVT::v8i16, ++/* 31287*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VCLZ_H), 0, ++ MVT::v8i16, 1/*#Ops*/, 0, ++ // Src: (ctlz:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj) - Complexity = 3 ++ // Dst: (VCLZ_H:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj) ++/* 31294*/ /*SwitchType*/ 9, MVT::v4i32,// ->31305 ++/* 31296*/ OPC_CheckChild0Type, MVT::v4i32, ++/* 31298*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VCLZ_W), 0, ++ MVT::v4i32, 1/*#Ops*/, 0, ++ // Src: (ctlz:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj) - Complexity = 3 ++ // Dst: (VCLZ_W:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj) ++/* 31305*/ /*SwitchType*/ 9, MVT::v2i64,// ->31316 ++/* 31307*/ OPC_CheckChild0Type, MVT::v2i64, ++/* 31309*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VCLZ_D), 0, ++ MVT::v2i64, 1/*#Ops*/, 0, ++ // Src: (ctlz:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj) - Complexity = 3 ++ // Dst: (VCLZ_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj) ++/* 31316*/ /*SwitchType*/ 9, MVT::v32i8,// ->31327 ++/* 31318*/ OPC_CheckChild0Type, MVT::v32i8, ++/* 31320*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVCLZ_B), 0, ++ MVT::v32i8, 1/*#Ops*/, 0, ++ // Src: (ctlz:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj) - Complexity = 3 ++ // Dst: (XVCLZ_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj) ++/* 31327*/ /*SwitchType*/ 9, MVT::v16i16,// ->31338 ++/* 31329*/ OPC_CheckChild0Type, MVT::v16i16, ++/* 31331*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVCLZ_H), 0, ++ MVT::v16i16, 1/*#Ops*/, 0, ++ // Src: (ctlz:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj) - Complexity = 3 ++ // Dst: (XVCLZ_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj) ++/* 31338*/ /*SwitchType*/ 9, MVT::v8i32,// ->31349 ++/* 31340*/ OPC_CheckChild0Type, MVT::v8i32, ++/* 31342*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVCLZ_W), 0, ++ MVT::v8i32, 1/*#Ops*/, 0, ++ // Src: (ctlz:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj) - Complexity = 3 ++ // Dst: (XVCLZ_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj) ++/* 31349*/ /*SwitchType*/ 9, MVT::v4i64,// ->31360 ++/* 31351*/ OPC_CheckChild0Type, MVT::v4i64, ++/* 31353*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVCLZ_D), 0, ++ MVT::v4i64, 1/*#Ops*/, 0, ++ // Src: (ctlz:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj) - Complexity = 3 ++ // Dst: (XVCLZ_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj) ++/* 31360*/ 0, // EndSwitchType ++/* 31361*/ 0, /*End of Scope*/ ++/* 31362*/ /*SwitchOpcode*/ 71, TARGET_VAL(ISD::CTTZ),// ->31436 ++/* 31365*/ OPC_Scope, 42, /*->31409*/ // 2 children in Scope ++/* 31367*/ OPC_MoveChild0, ++/* 31368*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 31371*/ OPC_RecordChild0, // #0 = $rj ++/* 31372*/ OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, ++/* 31383*/ OPC_SwitchType /*2 cases */, 10, MVT::i64,// ->31396 ++/* 31386*/ OPC_MoveParent, ++/* 31387*/ OPC_CheckType, MVT::i64, ++/* 31389*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CTO_D), 0, ++ MVT::i64, 1/*#Ops*/, 0, ++ // Src: (cttz:{ *:[i64] } (xor:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, -1:{ *:[i64] })) - Complexity = 11 ++ // Dst: (CTO_D:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj) ++/* 31396*/ /*SwitchType*/ 10, MVT::i32,// ->31408 ++/* 31398*/ OPC_MoveParent, ++/* 31399*/ OPC_CheckType, MVT::i32, ++/* 31401*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CTO_W), 0, ++ MVT::i32, 1/*#Ops*/, 0, ++ // Src: (cttz:{ *:[i32] } (xor:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, -1:{ *:[i32] })) - Complexity = 11 ++ // Dst: (CTO_W:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj) ++/* 31408*/ 0, // EndSwitchType ++/* 31409*/ /*Scope*/ 25, /*->31435*/ ++/* 31410*/ OPC_RecordChild0, // #0 = $rj ++/* 31411*/ OPC_SwitchType /*2 cases */, 9, MVT::i64,// ->31423 ++/* 31414*/ OPC_CheckChild0Type, MVT::i64, ++/* 31416*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CTZ_D), 0, ++ MVT::i64, 1/*#Ops*/, 0, ++ // Src: (cttz:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj) - Complexity = 3 ++ // Dst: (CTZ_D:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj) ++/* 31423*/ /*SwitchType*/ 9, MVT::i32,// ->31434 ++/* 31425*/ OPC_CheckChild0Type, MVT::i32, ++/* 31427*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CTZ_W), 0, ++ MVT::i32, 1/*#Ops*/, 0, ++ // Src: (cttz:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj) - Complexity = 3 ++ // Dst: (CTZ_W:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj) ++/* 31434*/ 0, // EndSwitchType ++/* 31435*/ 0, /*End of Scope*/ ++/* 31436*/ /*SwitchOpcode*/ 90|128,45/*5850*/, TARGET_VAL(ISD::XOR),// ->37290 ++/* 31440*/ OPC_Scope, 40, /*->31482*/ // 30 children in Scope ++/* 31442*/ OPC_MoveChild0, ++/* 31443*/ OPC_CheckOpcode, TARGET_VAL(ISD::OR), ++/* 31446*/ OPC_RecordChild0, // #0 = $rj ++/* 31447*/ OPC_RecordChild1, // #1 = $rk ++/* 31448*/ OPC_MoveParent, ++/* 31449*/ OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, ++/* 31460*/ OPC_SwitchType /*2 cases */, 8, MVT::i64,// ->31471 ++/* 31463*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::NOR), 0, ++ MVT::i64, 2/*#Ops*/, 0, 1, ++ // Src: (xor:{ *:[i64] } (or:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, GPR64Opnd:{ *:[i64] }:$rk), -1:{ *:[i64] }) - Complexity = 11 ++ // Dst: (NOR:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, GPR64Opnd:{ *:[i64] }:$rk) ++/* 31471*/ /*SwitchType*/ 8, MVT::i32,// ->31481 ++/* 31473*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::NOR32), 0, ++ MVT::i32, 2/*#Ops*/, 0, 1, ++ // Src: (xor:{ *:[i32] } (or:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rk), -1:{ *:[i32] }) - Complexity = 11 ++ // Dst: (NOR32:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) ++/* 31481*/ 0, // EndSwitchType ++/* 31482*/ /*Scope*/ 31|128,6/*799*/, /*->32283*/ ++/* 31484*/ OPC_RecordChild0, // #0 = $rj ++/* 31485*/ OPC_Scope, 39, /*->31526*/ // 3 children in Scope ++/* 31487*/ OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, ++/* 31498*/ OPC_SwitchType /*2 cases */, 11, MVT::i32,// ->31512 ++/* 31501*/ OPC_EmitRegister, MVT::i32, LoongArch::ZERO, ++/* 31504*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::NOR32), 0, ++ MVT::i32, 2/*#Ops*/, 1, 0, ++ // Src: (xor:{ *:[i32] } GPR32:{ *:[i32] }:$rj, -1:{ *:[i32] }) - Complexity = 8 ++ // Dst: (NOR32:{ *:[i32] } ZERO:{ *:[i32] }, GPR32:{ *:[i32] }:$rj) ++/* 31512*/ /*SwitchType*/ 11, MVT::i64,// ->31525 ++/* 31514*/ OPC_EmitRegister, MVT::i64, LoongArch::ZERO_64, ++/* 31517*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::NOR), 0, ++ MVT::i64, 2/*#Ops*/, 1, 0, ++ // Src: (xor:{ *:[i64] } GPR64:{ *:[i64] }:$rj, -1:{ *:[i64] }) - Complexity = 8 ++ // Dst: (NOR:{ *:[i64] } ZERO_64:{ *:[i64] }, GPR64:{ *:[i64] }:$rj) ++/* 31525*/ 0, // EndSwitchType ++/* 31526*/ /*Scope*/ 64, /*->31591*/ ++/* 31527*/ OPC_RecordChild1, // #1 = $imm12 ++/* 31528*/ OPC_Scope, 38, /*->31568*/ // 3 children in Scope ++/* 31530*/ OPC_MoveChild1, ++/* 31531*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 31534*/ OPC_Scope, 15, /*->31551*/ // 2 children in Scope ++/* 31536*/ OPC_CheckPredicate, 12, // Predicate_uimm12 ++/* 31538*/ OPC_MoveParent, ++/* 31539*/ OPC_CheckType, MVT::i64, ++/* 31541*/ OPC_EmitConvertToTarget, 1, ++/* 31543*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XORI), 0, ++ MVT::i64, 2/*#Ops*/, 0, 2, ++ // Src: (xor:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, (imm:{ *:[i64] })<>:$imm12) - Complexity = 7 ++ // Dst: (XORI:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, (imm:{ *:[i64] }):$imm12) ++/* 31551*/ /*Scope*/ 15, /*->31567*/ ++/* 31552*/ OPC_CheckPredicate, 12, // Predicate_uimm12_32 ++/* 31554*/ OPC_MoveParent, ++/* 31555*/ OPC_CheckType, MVT::i32, ++/* 31557*/ OPC_EmitConvertToTarget, 1, ++/* 31559*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XORI32), 0, ++ MVT::i32, 2/*#Ops*/, 0, 2, ++ // Src: (xor:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, (imm:{ *:[i32] })<>:$imm12) - Complexity = 7 ++ // Dst: (XORI32:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, (imm:{ *:[i32] }):$imm12) ++/* 31567*/ 0, /*End of Scope*/ ++/* 31568*/ /*Scope*/ 10, /*->31579*/ ++/* 31569*/ OPC_CheckType, MVT::i64, ++/* 31571*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XOR), 0, ++ MVT::i64, 2/*#Ops*/, 0, 1, ++ // Src: (xor:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, GPR64Opnd:{ *:[i64] }:$rk) - Complexity = 3 ++ // Dst: (XOR:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, GPR64Opnd:{ *:[i64] }:$rk) ++/* 31579*/ /*Scope*/ 10, /*->31590*/ ++/* 31580*/ OPC_CheckType, MVT::i32, ++/* 31582*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XOR32), 0, ++ MVT::i32, 2/*#Ops*/, 0, 1, ++ // Src: (xor:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) - Complexity = 3 ++ // Dst: (XOR32:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) ++/* 31590*/ 0, /*End of Scope*/ ++/* 31591*/ /*Scope*/ 49|128,5/*689*/, /*->32282*/ ++/* 31593*/ OPC_MoveChild1, ++/* 31594*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 31597*/ OPC_MoveChild0, ++/* 31598*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 31601*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 31603*/ OPC_MoveParent, ++/* 31604*/ OPC_MoveChild1, ++/* 31605*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 31608*/ OPC_Scope, 78|128,2/*334*/, /*->31945*/ // 2 children in Scope ++/* 31611*/ OPC_RecordChild0, // #1 = $vt ++/* 31612*/ OPC_MoveChild1, ++/* 31613*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 31616*/ OPC_MoveChild0, ++/* 31617*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 31620*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 31622*/ OPC_CheckType, MVT::i32, ++/* 31624*/ OPC_MoveParent, ++/* 31625*/ OPC_MoveChild1, ++/* 31626*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 31629*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 31631*/ OPC_CheckType, MVT::i32, ++/* 31633*/ OPC_MoveParent, ++/* 31634*/ OPC_MoveChild2, ++/* 31635*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 31638*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 31640*/ OPC_CheckType, MVT::i32, ++/* 31642*/ OPC_MoveParent, ++/* 31643*/ OPC_MoveChild3, ++/* 31644*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 31647*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 31649*/ OPC_CheckType, MVT::i32, ++/* 31651*/ OPC_MoveParent, ++/* 31652*/ OPC_MoveChild4, ++/* 31653*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 31656*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 31658*/ OPC_CheckType, MVT::i32, ++/* 31660*/ OPC_MoveParent, ++/* 31661*/ OPC_MoveChild5, ++/* 31662*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 31665*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 31667*/ OPC_CheckType, MVT::i32, ++/* 31669*/ OPC_MoveParent, ++/* 31670*/ OPC_MoveChild6, ++/* 31671*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 31674*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 31676*/ OPC_CheckType, MVT::i32, ++/* 31678*/ OPC_MoveParent, ++/* 31679*/ OPC_MoveChild7, ++/* 31680*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 31683*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 31685*/ OPC_CheckType, MVT::i32, ++/* 31687*/ OPC_MoveParent, ++/* 31688*/ OPC_MoveChild, 8, ++/* 31690*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 31693*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 31695*/ OPC_CheckType, MVT::i32, ++/* 31697*/ OPC_MoveParent, ++/* 31698*/ OPC_MoveChild, 9, ++/* 31700*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 31703*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 31705*/ OPC_CheckType, MVT::i32, ++/* 31707*/ OPC_MoveParent, ++/* 31708*/ OPC_MoveChild, 10, ++/* 31710*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 31713*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 31715*/ OPC_CheckType, MVT::i32, ++/* 31717*/ OPC_MoveParent, ++/* 31718*/ OPC_MoveChild, 11, ++/* 31720*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 31723*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 31725*/ OPC_CheckType, MVT::i32, ++/* 31727*/ OPC_MoveParent, ++/* 31728*/ OPC_MoveChild, 12, ++/* 31730*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 31733*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 31735*/ OPC_CheckType, MVT::i32, ++/* 31737*/ OPC_MoveParent, ++/* 31738*/ OPC_MoveChild, 13, ++/* 31740*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 31743*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 31745*/ OPC_CheckType, MVT::i32, ++/* 31747*/ OPC_MoveParent, ++/* 31748*/ OPC_MoveChild, 14, ++/* 31750*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 31753*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 31755*/ OPC_CheckType, MVT::i32, ++/* 31757*/ OPC_MoveParent, ++/* 31758*/ OPC_MoveChild, 15, ++/* 31760*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 31763*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 31765*/ OPC_CheckType, MVT::i32, ++/* 31767*/ OPC_MoveParent, ++/* 31768*/ OPC_MoveChild, 16, ++/* 31770*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 31773*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 31775*/ OPC_CheckType, MVT::i32, ++/* 31777*/ OPC_MoveParent, ++/* 31778*/ OPC_MoveChild, 17, ++/* 31780*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 31783*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 31785*/ OPC_CheckType, MVT::i32, ++/* 31787*/ OPC_MoveParent, ++/* 31788*/ OPC_MoveChild, 18, ++/* 31790*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 31793*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 31795*/ OPC_CheckType, MVT::i32, ++/* 31797*/ OPC_MoveParent, ++/* 31798*/ OPC_MoveChild, 19, ++/* 31800*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 31803*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 31805*/ OPC_CheckType, MVT::i32, ++/* 31807*/ OPC_MoveParent, ++/* 31808*/ OPC_MoveChild, 20, ++/* 31810*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 31813*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 31815*/ OPC_CheckType, MVT::i32, ++/* 31817*/ OPC_MoveParent, ++/* 31818*/ OPC_MoveChild, 21, ++/* 31820*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 31823*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 31825*/ OPC_CheckType, MVT::i32, ++/* 31827*/ OPC_MoveParent, ++/* 31828*/ OPC_MoveChild, 22, ++/* 31830*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 31833*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 31835*/ OPC_CheckType, MVT::i32, ++/* 31837*/ OPC_MoveParent, ++/* 31838*/ OPC_MoveChild, 23, ++/* 31840*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 31843*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 31845*/ OPC_CheckType, MVT::i32, ++/* 31847*/ OPC_MoveParent, ++/* 31848*/ OPC_MoveChild, 24, ++/* 31850*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 31853*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 31855*/ OPC_CheckType, MVT::i32, ++/* 31857*/ OPC_MoveParent, ++/* 31858*/ OPC_MoveChild, 25, ++/* 31860*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 31863*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 31865*/ OPC_CheckType, MVT::i32, ++/* 31867*/ OPC_MoveParent, ++/* 31868*/ OPC_MoveChild, 26, ++/* 31870*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 31873*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 31875*/ OPC_CheckType, MVT::i32, ++/* 31877*/ OPC_MoveParent, ++/* 31878*/ OPC_MoveChild, 27, ++/* 31880*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 31883*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 31885*/ OPC_CheckType, MVT::i32, ++/* 31887*/ OPC_MoveParent, ++/* 31888*/ OPC_MoveChild, 28, ++/* 31890*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 31893*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 31895*/ OPC_CheckType, MVT::i32, ++/* 31897*/ OPC_MoveParent, ++/* 31898*/ OPC_MoveChild, 29, ++/* 31900*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 31903*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 31905*/ OPC_CheckType, MVT::i32, ++/* 31907*/ OPC_MoveParent, ++/* 31908*/ OPC_MoveChild, 30, ++/* 31910*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 31913*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 31915*/ OPC_CheckType, MVT::i32, ++/* 31917*/ OPC_MoveParent, ++/* 31918*/ OPC_MoveChild, 31, ++/* 31920*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 31923*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 31925*/ OPC_CheckType, MVT::i32, ++/* 31927*/ OPC_MoveParent, ++/* 31928*/ OPC_MoveParent, ++/* 31929*/ OPC_CheckType, MVT::v32i8, ++/* 31931*/ OPC_MoveParent, ++/* 31932*/ OPC_MoveParent, ++/* 31933*/ OPC_CheckType, MVT::v32i8, ++/* 31935*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 31937*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITREV_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (xor:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vs, (shl:{ *:[v32i8] } (build_vector:{ *:[v32i8] })<>, (and:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vt, (build_vector:{ *:[v32i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>)))) - Complexity = 144 ++ // Dst: (XVBITREV_B:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vs, v32i8:{ *:[v32i8] }:$vt) ++/* 31945*/ /*Scope*/ 78|128,2/*334*/, /*->32281*/ ++/* 31947*/ OPC_MoveChild0, ++/* 31948*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 31951*/ OPC_MoveChild0, ++/* 31952*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 31955*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 31957*/ OPC_CheckType, MVT::i32, ++/* 31959*/ OPC_MoveParent, ++/* 31960*/ OPC_MoveChild1, ++/* 31961*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 31964*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 31966*/ OPC_CheckType, MVT::i32, ++/* 31968*/ OPC_MoveParent, ++/* 31969*/ OPC_MoveChild2, ++/* 31970*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 31973*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 31975*/ OPC_CheckType, MVT::i32, ++/* 31977*/ OPC_MoveParent, ++/* 31978*/ OPC_MoveChild3, ++/* 31979*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 31982*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 31984*/ OPC_CheckType, MVT::i32, ++/* 31986*/ OPC_MoveParent, ++/* 31987*/ OPC_MoveChild4, ++/* 31988*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 31991*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 31993*/ OPC_CheckType, MVT::i32, ++/* 31995*/ OPC_MoveParent, ++/* 31996*/ OPC_MoveChild5, ++/* 31997*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32000*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32002*/ OPC_CheckType, MVT::i32, ++/* 32004*/ OPC_MoveParent, ++/* 32005*/ OPC_MoveChild6, ++/* 32006*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32009*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32011*/ OPC_CheckType, MVT::i32, ++/* 32013*/ OPC_MoveParent, ++/* 32014*/ OPC_MoveChild7, ++/* 32015*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32018*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32020*/ OPC_CheckType, MVT::i32, ++/* 32022*/ OPC_MoveParent, ++/* 32023*/ OPC_MoveChild, 8, ++/* 32025*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32028*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32030*/ OPC_CheckType, MVT::i32, ++/* 32032*/ OPC_MoveParent, ++/* 32033*/ OPC_MoveChild, 9, ++/* 32035*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32038*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32040*/ OPC_CheckType, MVT::i32, ++/* 32042*/ OPC_MoveParent, ++/* 32043*/ OPC_MoveChild, 10, ++/* 32045*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32048*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32050*/ OPC_CheckType, MVT::i32, ++/* 32052*/ OPC_MoveParent, ++/* 32053*/ OPC_MoveChild, 11, ++/* 32055*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32058*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32060*/ OPC_CheckType, MVT::i32, ++/* 32062*/ OPC_MoveParent, ++/* 32063*/ OPC_MoveChild, 12, ++/* 32065*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32068*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32070*/ OPC_CheckType, MVT::i32, ++/* 32072*/ OPC_MoveParent, ++/* 32073*/ OPC_MoveChild, 13, ++/* 32075*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32078*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32080*/ OPC_CheckType, MVT::i32, ++/* 32082*/ OPC_MoveParent, ++/* 32083*/ OPC_MoveChild, 14, ++/* 32085*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32088*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32090*/ OPC_CheckType, MVT::i32, ++/* 32092*/ OPC_MoveParent, ++/* 32093*/ OPC_MoveChild, 15, ++/* 32095*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32098*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32100*/ OPC_CheckType, MVT::i32, ++/* 32102*/ OPC_MoveParent, ++/* 32103*/ OPC_MoveChild, 16, ++/* 32105*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32108*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32110*/ OPC_CheckType, MVT::i32, ++/* 32112*/ OPC_MoveParent, ++/* 32113*/ OPC_MoveChild, 17, ++/* 32115*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32118*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32120*/ OPC_CheckType, MVT::i32, ++/* 32122*/ OPC_MoveParent, ++/* 32123*/ OPC_MoveChild, 18, ++/* 32125*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32128*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32130*/ OPC_CheckType, MVT::i32, ++/* 32132*/ OPC_MoveParent, ++/* 32133*/ OPC_MoveChild, 19, ++/* 32135*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32138*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32140*/ OPC_CheckType, MVT::i32, ++/* 32142*/ OPC_MoveParent, ++/* 32143*/ OPC_MoveChild, 20, ++/* 32145*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32148*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32150*/ OPC_CheckType, MVT::i32, ++/* 32152*/ OPC_MoveParent, ++/* 32153*/ OPC_MoveChild, 21, ++/* 32155*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32158*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32160*/ OPC_CheckType, MVT::i32, ++/* 32162*/ OPC_MoveParent, ++/* 32163*/ OPC_MoveChild, 22, ++/* 32165*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32168*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32170*/ OPC_CheckType, MVT::i32, ++/* 32172*/ OPC_MoveParent, ++/* 32173*/ OPC_MoveChild, 23, ++/* 32175*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32178*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32180*/ OPC_CheckType, MVT::i32, ++/* 32182*/ OPC_MoveParent, ++/* 32183*/ OPC_MoveChild, 24, ++/* 32185*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32188*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32190*/ OPC_CheckType, MVT::i32, ++/* 32192*/ OPC_MoveParent, ++/* 32193*/ OPC_MoveChild, 25, ++/* 32195*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32198*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32200*/ OPC_CheckType, MVT::i32, ++/* 32202*/ OPC_MoveParent, ++/* 32203*/ OPC_MoveChild, 26, ++/* 32205*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32208*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32210*/ OPC_CheckType, MVT::i32, ++/* 32212*/ OPC_MoveParent, ++/* 32213*/ OPC_MoveChild, 27, ++/* 32215*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32218*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32220*/ OPC_CheckType, MVT::i32, ++/* 32222*/ OPC_MoveParent, ++/* 32223*/ OPC_MoveChild, 28, ++/* 32225*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32228*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32230*/ OPC_CheckType, MVT::i32, ++/* 32232*/ OPC_MoveParent, ++/* 32233*/ OPC_MoveChild, 29, ++/* 32235*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32238*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32240*/ OPC_CheckType, MVT::i32, ++/* 32242*/ OPC_MoveParent, ++/* 32243*/ OPC_MoveChild, 30, ++/* 32245*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32248*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32250*/ OPC_CheckType, MVT::i32, ++/* 32252*/ OPC_MoveParent, ++/* 32253*/ OPC_MoveChild, 31, ++/* 32255*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32258*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32260*/ OPC_CheckType, MVT::i32, ++/* 32262*/ OPC_MoveParent, ++/* 32263*/ OPC_MoveParent, ++/* 32264*/ OPC_RecordChild1, // #1 = $vt ++/* 32265*/ OPC_CheckType, MVT::v32i8, ++/* 32267*/ OPC_MoveParent, ++/* 32268*/ OPC_MoveParent, ++/* 32269*/ OPC_CheckType, MVT::v32i8, ++/* 32271*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 32273*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITREV_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (xor:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vs, (shl:{ *:[v32i8] } (build_vector:{ *:[v32i8] })<>, (and:{ *:[v32i8] } (build_vector:{ *:[v32i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v32i8:{ *:[v32i8] }:$vt))) - Complexity = 144 ++ // Dst: (XVBITREV_B:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vs, v32i8:{ *:[v32i8] }:$vt) ++/* 32281*/ 0, /*End of Scope*/ ++/* 32282*/ 0, /*End of Scope*/ ++/* 32283*/ /*Scope*/ 51|128,5/*691*/, /*->32976*/ ++/* 32285*/ OPC_MoveChild0, ++/* 32286*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 32289*/ OPC_MoveChild0, ++/* 32290*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 32293*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 32295*/ OPC_MoveParent, ++/* 32296*/ OPC_MoveChild1, ++/* 32297*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 32300*/ OPC_Scope, 79|128,2/*335*/, /*->32638*/ // 2 children in Scope ++/* 32303*/ OPC_RecordChild0, // #0 = $vt ++/* 32304*/ OPC_MoveChild1, ++/* 32305*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 32308*/ OPC_MoveChild0, ++/* 32309*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32312*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32314*/ OPC_CheckType, MVT::i32, ++/* 32316*/ OPC_MoveParent, ++/* 32317*/ OPC_MoveChild1, ++/* 32318*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32321*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32323*/ OPC_CheckType, MVT::i32, ++/* 32325*/ OPC_MoveParent, ++/* 32326*/ OPC_MoveChild2, ++/* 32327*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32330*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32332*/ OPC_CheckType, MVT::i32, ++/* 32334*/ OPC_MoveParent, ++/* 32335*/ OPC_MoveChild3, ++/* 32336*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32339*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32341*/ OPC_CheckType, MVT::i32, ++/* 32343*/ OPC_MoveParent, ++/* 32344*/ OPC_MoveChild4, ++/* 32345*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32348*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32350*/ OPC_CheckType, MVT::i32, ++/* 32352*/ OPC_MoveParent, ++/* 32353*/ OPC_MoveChild5, ++/* 32354*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32357*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32359*/ OPC_CheckType, MVT::i32, ++/* 32361*/ OPC_MoveParent, ++/* 32362*/ OPC_MoveChild6, ++/* 32363*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32366*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32368*/ OPC_CheckType, MVT::i32, ++/* 32370*/ OPC_MoveParent, ++/* 32371*/ OPC_MoveChild7, ++/* 32372*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32375*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32377*/ OPC_CheckType, MVT::i32, ++/* 32379*/ OPC_MoveParent, ++/* 32380*/ OPC_MoveChild, 8, ++/* 32382*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32385*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32387*/ OPC_CheckType, MVT::i32, ++/* 32389*/ OPC_MoveParent, ++/* 32390*/ OPC_MoveChild, 9, ++/* 32392*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32395*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32397*/ OPC_CheckType, MVT::i32, ++/* 32399*/ OPC_MoveParent, ++/* 32400*/ OPC_MoveChild, 10, ++/* 32402*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32405*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32407*/ OPC_CheckType, MVT::i32, ++/* 32409*/ OPC_MoveParent, ++/* 32410*/ OPC_MoveChild, 11, ++/* 32412*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32415*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32417*/ OPC_CheckType, MVT::i32, ++/* 32419*/ OPC_MoveParent, ++/* 32420*/ OPC_MoveChild, 12, ++/* 32422*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32425*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32427*/ OPC_CheckType, MVT::i32, ++/* 32429*/ OPC_MoveParent, ++/* 32430*/ OPC_MoveChild, 13, ++/* 32432*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32435*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32437*/ OPC_CheckType, MVT::i32, ++/* 32439*/ OPC_MoveParent, ++/* 32440*/ OPC_MoveChild, 14, ++/* 32442*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32445*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32447*/ OPC_CheckType, MVT::i32, ++/* 32449*/ OPC_MoveParent, ++/* 32450*/ OPC_MoveChild, 15, ++/* 32452*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32455*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32457*/ OPC_CheckType, MVT::i32, ++/* 32459*/ OPC_MoveParent, ++/* 32460*/ OPC_MoveChild, 16, ++/* 32462*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32465*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32467*/ OPC_CheckType, MVT::i32, ++/* 32469*/ OPC_MoveParent, ++/* 32470*/ OPC_MoveChild, 17, ++/* 32472*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32475*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32477*/ OPC_CheckType, MVT::i32, ++/* 32479*/ OPC_MoveParent, ++/* 32480*/ OPC_MoveChild, 18, ++/* 32482*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32485*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32487*/ OPC_CheckType, MVT::i32, ++/* 32489*/ OPC_MoveParent, ++/* 32490*/ OPC_MoveChild, 19, ++/* 32492*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32495*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32497*/ OPC_CheckType, MVT::i32, ++/* 32499*/ OPC_MoveParent, ++/* 32500*/ OPC_MoveChild, 20, ++/* 32502*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32505*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32507*/ OPC_CheckType, MVT::i32, ++/* 32509*/ OPC_MoveParent, ++/* 32510*/ OPC_MoveChild, 21, ++/* 32512*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32515*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32517*/ OPC_CheckType, MVT::i32, ++/* 32519*/ OPC_MoveParent, ++/* 32520*/ OPC_MoveChild, 22, ++/* 32522*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32525*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32527*/ OPC_CheckType, MVT::i32, ++/* 32529*/ OPC_MoveParent, ++/* 32530*/ OPC_MoveChild, 23, ++/* 32532*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32535*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32537*/ OPC_CheckType, MVT::i32, ++/* 32539*/ OPC_MoveParent, ++/* 32540*/ OPC_MoveChild, 24, ++/* 32542*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32545*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32547*/ OPC_CheckType, MVT::i32, ++/* 32549*/ OPC_MoveParent, ++/* 32550*/ OPC_MoveChild, 25, ++/* 32552*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32555*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32557*/ OPC_CheckType, MVT::i32, ++/* 32559*/ OPC_MoveParent, ++/* 32560*/ OPC_MoveChild, 26, ++/* 32562*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32565*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32567*/ OPC_CheckType, MVT::i32, ++/* 32569*/ OPC_MoveParent, ++/* 32570*/ OPC_MoveChild, 27, ++/* 32572*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32575*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32577*/ OPC_CheckType, MVT::i32, ++/* 32579*/ OPC_MoveParent, ++/* 32580*/ OPC_MoveChild, 28, ++/* 32582*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32585*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32587*/ OPC_CheckType, MVT::i32, ++/* 32589*/ OPC_MoveParent, ++/* 32590*/ OPC_MoveChild, 29, ++/* 32592*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32595*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32597*/ OPC_CheckType, MVT::i32, ++/* 32599*/ OPC_MoveParent, ++/* 32600*/ OPC_MoveChild, 30, ++/* 32602*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32605*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32607*/ OPC_CheckType, MVT::i32, ++/* 32609*/ OPC_MoveParent, ++/* 32610*/ OPC_MoveChild, 31, ++/* 32612*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32615*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32617*/ OPC_CheckType, MVT::i32, ++/* 32619*/ OPC_MoveParent, ++/* 32620*/ OPC_MoveParent, ++/* 32621*/ OPC_CheckType, MVT::v32i8, ++/* 32623*/ OPC_MoveParent, ++/* 32624*/ OPC_MoveParent, ++/* 32625*/ OPC_RecordChild1, // #1 = $vs ++/* 32626*/ OPC_CheckType, MVT::v32i8, ++/* 32628*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 32630*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITREV_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (xor:{ *:[v32i8] } (shl:{ *:[v32i8] } (build_vector:{ *:[v32i8] })<>, (and:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vt, (build_vector:{ *:[v32i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))), v32i8:{ *:[v32i8] }:$vs) - Complexity = 144 ++ // Dst: (XVBITREV_B:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vs, v32i8:{ *:[v32i8] }:$vt) ++/* 32638*/ /*Scope*/ 79|128,2/*335*/, /*->32975*/ ++/* 32640*/ OPC_MoveChild0, ++/* 32641*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 32644*/ OPC_MoveChild0, ++/* 32645*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32648*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32650*/ OPC_CheckType, MVT::i32, ++/* 32652*/ OPC_MoveParent, ++/* 32653*/ OPC_MoveChild1, ++/* 32654*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32657*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32659*/ OPC_CheckType, MVT::i32, ++/* 32661*/ OPC_MoveParent, ++/* 32662*/ OPC_MoveChild2, ++/* 32663*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32666*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32668*/ OPC_CheckType, MVT::i32, ++/* 32670*/ OPC_MoveParent, ++/* 32671*/ OPC_MoveChild3, ++/* 32672*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32675*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32677*/ OPC_CheckType, MVT::i32, ++/* 32679*/ OPC_MoveParent, ++/* 32680*/ OPC_MoveChild4, ++/* 32681*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32684*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32686*/ OPC_CheckType, MVT::i32, ++/* 32688*/ OPC_MoveParent, ++/* 32689*/ OPC_MoveChild5, ++/* 32690*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32693*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32695*/ OPC_CheckType, MVT::i32, ++/* 32697*/ OPC_MoveParent, ++/* 32698*/ OPC_MoveChild6, ++/* 32699*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32702*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32704*/ OPC_CheckType, MVT::i32, ++/* 32706*/ OPC_MoveParent, ++/* 32707*/ OPC_MoveChild7, ++/* 32708*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32711*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32713*/ OPC_CheckType, MVT::i32, ++/* 32715*/ OPC_MoveParent, ++/* 32716*/ OPC_MoveChild, 8, ++/* 32718*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32721*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32723*/ OPC_CheckType, MVT::i32, ++/* 32725*/ OPC_MoveParent, ++/* 32726*/ OPC_MoveChild, 9, ++/* 32728*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32731*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32733*/ OPC_CheckType, MVT::i32, ++/* 32735*/ OPC_MoveParent, ++/* 32736*/ OPC_MoveChild, 10, ++/* 32738*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32741*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32743*/ OPC_CheckType, MVT::i32, ++/* 32745*/ OPC_MoveParent, ++/* 32746*/ OPC_MoveChild, 11, ++/* 32748*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32751*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32753*/ OPC_CheckType, MVT::i32, ++/* 32755*/ OPC_MoveParent, ++/* 32756*/ OPC_MoveChild, 12, ++/* 32758*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32761*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32763*/ OPC_CheckType, MVT::i32, ++/* 32765*/ OPC_MoveParent, ++/* 32766*/ OPC_MoveChild, 13, ++/* 32768*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32771*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32773*/ OPC_CheckType, MVT::i32, ++/* 32775*/ OPC_MoveParent, ++/* 32776*/ OPC_MoveChild, 14, ++/* 32778*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32781*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32783*/ OPC_CheckType, MVT::i32, ++/* 32785*/ OPC_MoveParent, ++/* 32786*/ OPC_MoveChild, 15, ++/* 32788*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32791*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32793*/ OPC_CheckType, MVT::i32, ++/* 32795*/ OPC_MoveParent, ++/* 32796*/ OPC_MoveChild, 16, ++/* 32798*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32801*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32803*/ OPC_CheckType, MVT::i32, ++/* 32805*/ OPC_MoveParent, ++/* 32806*/ OPC_MoveChild, 17, ++/* 32808*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32811*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32813*/ OPC_CheckType, MVT::i32, ++/* 32815*/ OPC_MoveParent, ++/* 32816*/ OPC_MoveChild, 18, ++/* 32818*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32821*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32823*/ OPC_CheckType, MVT::i32, ++/* 32825*/ OPC_MoveParent, ++/* 32826*/ OPC_MoveChild, 19, ++/* 32828*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32831*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32833*/ OPC_CheckType, MVT::i32, ++/* 32835*/ OPC_MoveParent, ++/* 32836*/ OPC_MoveChild, 20, ++/* 32838*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32841*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32843*/ OPC_CheckType, MVT::i32, ++/* 32845*/ OPC_MoveParent, ++/* 32846*/ OPC_MoveChild, 21, ++/* 32848*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32851*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32853*/ OPC_CheckType, MVT::i32, ++/* 32855*/ OPC_MoveParent, ++/* 32856*/ OPC_MoveChild, 22, ++/* 32858*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32861*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32863*/ OPC_CheckType, MVT::i32, ++/* 32865*/ OPC_MoveParent, ++/* 32866*/ OPC_MoveChild, 23, ++/* 32868*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32871*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32873*/ OPC_CheckType, MVT::i32, ++/* 32875*/ OPC_MoveParent, ++/* 32876*/ OPC_MoveChild, 24, ++/* 32878*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32881*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32883*/ OPC_CheckType, MVT::i32, ++/* 32885*/ OPC_MoveParent, ++/* 32886*/ OPC_MoveChild, 25, ++/* 32888*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32891*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32893*/ OPC_CheckType, MVT::i32, ++/* 32895*/ OPC_MoveParent, ++/* 32896*/ OPC_MoveChild, 26, ++/* 32898*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32901*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32903*/ OPC_CheckType, MVT::i32, ++/* 32905*/ OPC_MoveParent, ++/* 32906*/ OPC_MoveChild, 27, ++/* 32908*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32911*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32913*/ OPC_CheckType, MVT::i32, ++/* 32915*/ OPC_MoveParent, ++/* 32916*/ OPC_MoveChild, 28, ++/* 32918*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32921*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32923*/ OPC_CheckType, MVT::i32, ++/* 32925*/ OPC_MoveParent, ++/* 32926*/ OPC_MoveChild, 29, ++/* 32928*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32931*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32933*/ OPC_CheckType, MVT::i32, ++/* 32935*/ OPC_MoveParent, ++/* 32936*/ OPC_MoveChild, 30, ++/* 32938*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32941*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32943*/ OPC_CheckType, MVT::i32, ++/* 32945*/ OPC_MoveParent, ++/* 32946*/ OPC_MoveChild, 31, ++/* 32948*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 32951*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 32953*/ OPC_CheckType, MVT::i32, ++/* 32955*/ OPC_MoveParent, ++/* 32956*/ OPC_MoveParent, ++/* 32957*/ OPC_RecordChild1, // #0 = $vt ++/* 32958*/ OPC_CheckType, MVT::v32i8, ++/* 32960*/ OPC_MoveParent, ++/* 32961*/ OPC_MoveParent, ++/* 32962*/ OPC_RecordChild1, // #1 = $vs ++/* 32963*/ OPC_CheckType, MVT::v32i8, ++/* 32965*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 32967*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITREV_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (xor:{ *:[v32i8] } (shl:{ *:[v32i8] } (build_vector:{ *:[v32i8] })<>, (and:{ *:[v32i8] } (build_vector:{ *:[v32i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v32i8:{ *:[v32i8] }:$vt)), v32i8:{ *:[v32i8] }:$vs) - Complexity = 144 ++ // Dst: (XVBITREV_B:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vs, v32i8:{ *:[v32i8] }:$vt) ++/* 32975*/ 0, /*End of Scope*/ ++/* 32976*/ /*Scope*/ 27|128,4/*539*/, /*->33517*/ ++/* 32978*/ OPC_RecordChild0, // #0 = $vs ++/* 32979*/ OPC_MoveChild1, ++/* 32980*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 32983*/ OPC_MoveChild0, ++/* 32984*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 32987*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 32989*/ OPC_MoveParent, ++/* 32990*/ OPC_MoveChild1, ++/* 32991*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 32994*/ OPC_Scope, 87|128,2/*343*/, /*->33340*/ // 2 children in Scope ++/* 32997*/ OPC_RecordChild0, // #1 = $vt ++/* 32998*/ OPC_MoveChild1, ++/* 32999*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 33002*/ OPC_MoveChild0, ++/* 33003*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33006*/ OPC_CheckType, MVT::i32, ++/* 33008*/ OPC_Scope, 35|128,1/*163*/, /*->33174*/ // 2 children in Scope ++/* 33011*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33013*/ OPC_MoveParent, ++/* 33014*/ OPC_MoveChild1, ++/* 33015*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33018*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33020*/ OPC_CheckType, MVT::i32, ++/* 33022*/ OPC_MoveParent, ++/* 33023*/ OPC_MoveChild2, ++/* 33024*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33027*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33029*/ OPC_CheckType, MVT::i32, ++/* 33031*/ OPC_MoveParent, ++/* 33032*/ OPC_MoveChild3, ++/* 33033*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33036*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33038*/ OPC_CheckType, MVT::i32, ++/* 33040*/ OPC_MoveParent, ++/* 33041*/ OPC_MoveChild4, ++/* 33042*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33045*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33047*/ OPC_CheckType, MVT::i32, ++/* 33049*/ OPC_MoveParent, ++/* 33050*/ OPC_MoveChild5, ++/* 33051*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33054*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33056*/ OPC_CheckType, MVT::i32, ++/* 33058*/ OPC_MoveParent, ++/* 33059*/ OPC_MoveChild6, ++/* 33060*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33063*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33065*/ OPC_CheckType, MVT::i32, ++/* 33067*/ OPC_MoveParent, ++/* 33068*/ OPC_MoveChild7, ++/* 33069*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33072*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33074*/ OPC_CheckType, MVT::i32, ++/* 33076*/ OPC_MoveParent, ++/* 33077*/ OPC_MoveChild, 8, ++/* 33079*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33082*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33084*/ OPC_CheckType, MVT::i32, ++/* 33086*/ OPC_MoveParent, ++/* 33087*/ OPC_MoveChild, 9, ++/* 33089*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33092*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33094*/ OPC_CheckType, MVT::i32, ++/* 33096*/ OPC_MoveParent, ++/* 33097*/ OPC_MoveChild, 10, ++/* 33099*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33102*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33104*/ OPC_CheckType, MVT::i32, ++/* 33106*/ OPC_MoveParent, ++/* 33107*/ OPC_MoveChild, 11, ++/* 33109*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33112*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33114*/ OPC_CheckType, MVT::i32, ++/* 33116*/ OPC_MoveParent, ++/* 33117*/ OPC_MoveChild, 12, ++/* 33119*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33122*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33124*/ OPC_CheckType, MVT::i32, ++/* 33126*/ OPC_MoveParent, ++/* 33127*/ OPC_MoveChild, 13, ++/* 33129*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33132*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33134*/ OPC_CheckType, MVT::i32, ++/* 33136*/ OPC_MoveParent, ++/* 33137*/ OPC_MoveChild, 14, ++/* 33139*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33142*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33144*/ OPC_CheckType, MVT::i32, ++/* 33146*/ OPC_MoveParent, ++/* 33147*/ OPC_MoveChild, 15, ++/* 33149*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33152*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33154*/ OPC_CheckType, MVT::i32, ++/* 33156*/ OPC_MoveParent, ++/* 33157*/ OPC_MoveParent, ++/* 33158*/ OPC_CheckType, MVT::v16i8, ++/* 33160*/ OPC_MoveParent, ++/* 33161*/ OPC_MoveParent, ++/* 33162*/ OPC_CheckType, MVT::v16i8, ++/* 33164*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 33166*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITREV_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (xor:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vs, (shl:{ *:[v16i8] } (build_vector:{ *:[v16i8] })<>, (and:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vt, (build_vector:{ *:[v16i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>)))) - Complexity = 80 ++ // Dst: (VBITREV_B:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vs, v16i8:{ *:[v16i8] }:$vt) ++/* 33174*/ /*Scope*/ 35|128,1/*163*/, /*->33339*/ ++/* 33176*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 33178*/ OPC_MoveParent, ++/* 33179*/ OPC_MoveChild1, ++/* 33180*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33183*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 33185*/ OPC_CheckType, MVT::i32, ++/* 33187*/ OPC_MoveParent, ++/* 33188*/ OPC_MoveChild2, ++/* 33189*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33192*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 33194*/ OPC_CheckType, MVT::i32, ++/* 33196*/ OPC_MoveParent, ++/* 33197*/ OPC_MoveChild3, ++/* 33198*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33201*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 33203*/ OPC_CheckType, MVT::i32, ++/* 33205*/ OPC_MoveParent, ++/* 33206*/ OPC_MoveChild4, ++/* 33207*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33210*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 33212*/ OPC_CheckType, MVT::i32, ++/* 33214*/ OPC_MoveParent, ++/* 33215*/ OPC_MoveChild5, ++/* 33216*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33219*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 33221*/ OPC_CheckType, MVT::i32, ++/* 33223*/ OPC_MoveParent, ++/* 33224*/ OPC_MoveChild6, ++/* 33225*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33228*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 33230*/ OPC_CheckType, MVT::i32, ++/* 33232*/ OPC_MoveParent, ++/* 33233*/ OPC_MoveChild7, ++/* 33234*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33237*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 33239*/ OPC_CheckType, MVT::i32, ++/* 33241*/ OPC_MoveParent, ++/* 33242*/ OPC_MoveChild, 8, ++/* 33244*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33247*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 33249*/ OPC_CheckType, MVT::i32, ++/* 33251*/ OPC_MoveParent, ++/* 33252*/ OPC_MoveChild, 9, ++/* 33254*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33257*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 33259*/ OPC_CheckType, MVT::i32, ++/* 33261*/ OPC_MoveParent, ++/* 33262*/ OPC_MoveChild, 10, ++/* 33264*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33267*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 33269*/ OPC_CheckType, MVT::i32, ++/* 33271*/ OPC_MoveParent, ++/* 33272*/ OPC_MoveChild, 11, ++/* 33274*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33277*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 33279*/ OPC_CheckType, MVT::i32, ++/* 33281*/ OPC_MoveParent, ++/* 33282*/ OPC_MoveChild, 12, ++/* 33284*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33287*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 33289*/ OPC_CheckType, MVT::i32, ++/* 33291*/ OPC_MoveParent, ++/* 33292*/ OPC_MoveChild, 13, ++/* 33294*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33297*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 33299*/ OPC_CheckType, MVT::i32, ++/* 33301*/ OPC_MoveParent, ++/* 33302*/ OPC_MoveChild, 14, ++/* 33304*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33307*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 33309*/ OPC_CheckType, MVT::i32, ++/* 33311*/ OPC_MoveParent, ++/* 33312*/ OPC_MoveChild, 15, ++/* 33314*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33317*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 33319*/ OPC_CheckType, MVT::i32, ++/* 33321*/ OPC_MoveParent, ++/* 33322*/ OPC_MoveParent, ++/* 33323*/ OPC_CheckType, MVT::v16i16, ++/* 33325*/ OPC_MoveParent, ++/* 33326*/ OPC_MoveParent, ++/* 33327*/ OPC_CheckType, MVT::v16i16, ++/* 33329*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 33331*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITREV_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (xor:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vs, (shl:{ *:[v16i16] } (build_vector:{ *:[v16i16] })<>, (and:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vt, (build_vector:{ *:[v16i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>)))) - Complexity = 80 ++ // Dst: (XVBITREV_H:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vs, v16i16:{ *:[v16i16] }:$vt) ++/* 33339*/ 0, /*End of Scope*/ ++/* 33340*/ /*Scope*/ 46|128,1/*174*/, /*->33516*/ ++/* 33342*/ OPC_MoveChild0, ++/* 33343*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 33346*/ OPC_MoveChild0, ++/* 33347*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33350*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33352*/ OPC_CheckType, MVT::i32, ++/* 33354*/ OPC_MoveParent, ++/* 33355*/ OPC_MoveChild1, ++/* 33356*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33359*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33361*/ OPC_CheckType, MVT::i32, ++/* 33363*/ OPC_MoveParent, ++/* 33364*/ OPC_MoveChild2, ++/* 33365*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33368*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33370*/ OPC_CheckType, MVT::i32, ++/* 33372*/ OPC_MoveParent, ++/* 33373*/ OPC_MoveChild3, ++/* 33374*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33377*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33379*/ OPC_CheckType, MVT::i32, ++/* 33381*/ OPC_MoveParent, ++/* 33382*/ OPC_MoveChild4, ++/* 33383*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33386*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33388*/ OPC_CheckType, MVT::i32, ++/* 33390*/ OPC_MoveParent, ++/* 33391*/ OPC_MoveChild5, ++/* 33392*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33395*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33397*/ OPC_CheckType, MVT::i32, ++/* 33399*/ OPC_MoveParent, ++/* 33400*/ OPC_MoveChild6, ++/* 33401*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33404*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33406*/ OPC_CheckType, MVT::i32, ++/* 33408*/ OPC_MoveParent, ++/* 33409*/ OPC_MoveChild7, ++/* 33410*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33413*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33415*/ OPC_CheckType, MVT::i32, ++/* 33417*/ OPC_MoveParent, ++/* 33418*/ OPC_MoveChild, 8, ++/* 33420*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33423*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33425*/ OPC_CheckType, MVT::i32, ++/* 33427*/ OPC_MoveParent, ++/* 33428*/ OPC_MoveChild, 9, ++/* 33430*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33433*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33435*/ OPC_CheckType, MVT::i32, ++/* 33437*/ OPC_MoveParent, ++/* 33438*/ OPC_MoveChild, 10, ++/* 33440*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33443*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33445*/ OPC_CheckType, MVT::i32, ++/* 33447*/ OPC_MoveParent, ++/* 33448*/ OPC_MoveChild, 11, ++/* 33450*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33453*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33455*/ OPC_CheckType, MVT::i32, ++/* 33457*/ OPC_MoveParent, ++/* 33458*/ OPC_MoveChild, 12, ++/* 33460*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33463*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33465*/ OPC_CheckType, MVT::i32, ++/* 33467*/ OPC_MoveParent, ++/* 33468*/ OPC_MoveChild, 13, ++/* 33470*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33473*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33475*/ OPC_CheckType, MVT::i32, ++/* 33477*/ OPC_MoveParent, ++/* 33478*/ OPC_MoveChild, 14, ++/* 33480*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33483*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33485*/ OPC_CheckType, MVT::i32, ++/* 33487*/ OPC_MoveParent, ++/* 33488*/ OPC_MoveChild, 15, ++/* 33490*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33493*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33495*/ OPC_CheckType, MVT::i32, ++/* 33497*/ OPC_MoveParent, ++/* 33498*/ OPC_MoveParent, ++/* 33499*/ OPC_RecordChild1, // #1 = $vt ++/* 33500*/ OPC_CheckType, MVT::v16i8, ++/* 33502*/ OPC_MoveParent, ++/* 33503*/ OPC_MoveParent, ++/* 33504*/ OPC_CheckType, MVT::v16i8, ++/* 33506*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 33508*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITREV_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (xor:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vs, (shl:{ *:[v16i8] } (build_vector:{ *:[v16i8] })<>, (and:{ *:[v16i8] } (build_vector:{ *:[v16i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v16i8:{ *:[v16i8] }:$vt))) - Complexity = 80 ++ // Dst: (VBITREV_B:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vs, v16i8:{ *:[v16i8] }:$vt) ++/* 33516*/ 0, /*End of Scope*/ ++/* 33517*/ /*Scope*/ 115|128,2/*371*/, /*->33890*/ ++/* 33519*/ OPC_MoveChild0, ++/* 33520*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 33523*/ OPC_MoveChild0, ++/* 33524*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 33527*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 33529*/ OPC_MoveParent, ++/* 33530*/ OPC_MoveChild1, ++/* 33531*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 33534*/ OPC_Scope, 47|128,1/*175*/, /*->33712*/ // 2 children in Scope ++/* 33537*/ OPC_RecordChild0, // #0 = $vt ++/* 33538*/ OPC_MoveChild1, ++/* 33539*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 33542*/ OPC_MoveChild0, ++/* 33543*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33546*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33548*/ OPC_CheckType, MVT::i32, ++/* 33550*/ OPC_MoveParent, ++/* 33551*/ OPC_MoveChild1, ++/* 33552*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33555*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33557*/ OPC_CheckType, MVT::i32, ++/* 33559*/ OPC_MoveParent, ++/* 33560*/ OPC_MoveChild2, ++/* 33561*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33564*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33566*/ OPC_CheckType, MVT::i32, ++/* 33568*/ OPC_MoveParent, ++/* 33569*/ OPC_MoveChild3, ++/* 33570*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33573*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33575*/ OPC_CheckType, MVT::i32, ++/* 33577*/ OPC_MoveParent, ++/* 33578*/ OPC_MoveChild4, ++/* 33579*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33582*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33584*/ OPC_CheckType, MVT::i32, ++/* 33586*/ OPC_MoveParent, ++/* 33587*/ OPC_MoveChild5, ++/* 33588*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33591*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33593*/ OPC_CheckType, MVT::i32, ++/* 33595*/ OPC_MoveParent, ++/* 33596*/ OPC_MoveChild6, ++/* 33597*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33600*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33602*/ OPC_CheckType, MVT::i32, ++/* 33604*/ OPC_MoveParent, ++/* 33605*/ OPC_MoveChild7, ++/* 33606*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33609*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33611*/ OPC_CheckType, MVT::i32, ++/* 33613*/ OPC_MoveParent, ++/* 33614*/ OPC_MoveChild, 8, ++/* 33616*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33619*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33621*/ OPC_CheckType, MVT::i32, ++/* 33623*/ OPC_MoveParent, ++/* 33624*/ OPC_MoveChild, 9, ++/* 33626*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33629*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33631*/ OPC_CheckType, MVT::i32, ++/* 33633*/ OPC_MoveParent, ++/* 33634*/ OPC_MoveChild, 10, ++/* 33636*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33639*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33641*/ OPC_CheckType, MVT::i32, ++/* 33643*/ OPC_MoveParent, ++/* 33644*/ OPC_MoveChild, 11, ++/* 33646*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33649*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33651*/ OPC_CheckType, MVT::i32, ++/* 33653*/ OPC_MoveParent, ++/* 33654*/ OPC_MoveChild, 12, ++/* 33656*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33659*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33661*/ OPC_CheckType, MVT::i32, ++/* 33663*/ OPC_MoveParent, ++/* 33664*/ OPC_MoveChild, 13, ++/* 33666*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33669*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33671*/ OPC_CheckType, MVT::i32, ++/* 33673*/ OPC_MoveParent, ++/* 33674*/ OPC_MoveChild, 14, ++/* 33676*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33679*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33681*/ OPC_CheckType, MVT::i32, ++/* 33683*/ OPC_MoveParent, ++/* 33684*/ OPC_MoveChild, 15, ++/* 33686*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33689*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33691*/ OPC_CheckType, MVT::i32, ++/* 33693*/ OPC_MoveParent, ++/* 33694*/ OPC_MoveParent, ++/* 33695*/ OPC_CheckType, MVT::v16i8, ++/* 33697*/ OPC_MoveParent, ++/* 33698*/ OPC_MoveParent, ++/* 33699*/ OPC_RecordChild1, // #1 = $vs ++/* 33700*/ OPC_CheckType, MVT::v16i8, ++/* 33702*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 33704*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITREV_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (xor:{ *:[v16i8] } (shl:{ *:[v16i8] } (build_vector:{ *:[v16i8] })<>, (and:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vt, (build_vector:{ *:[v16i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))), v16i8:{ *:[v16i8] }:$vs) - Complexity = 80 ++ // Dst: (VBITREV_B:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vs, v16i8:{ *:[v16i8] }:$vt) ++/* 33712*/ /*Scope*/ 47|128,1/*175*/, /*->33889*/ ++/* 33714*/ OPC_MoveChild0, ++/* 33715*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 33718*/ OPC_MoveChild0, ++/* 33719*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33722*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33724*/ OPC_CheckType, MVT::i32, ++/* 33726*/ OPC_MoveParent, ++/* 33727*/ OPC_MoveChild1, ++/* 33728*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33731*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33733*/ OPC_CheckType, MVT::i32, ++/* 33735*/ OPC_MoveParent, ++/* 33736*/ OPC_MoveChild2, ++/* 33737*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33740*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33742*/ OPC_CheckType, MVT::i32, ++/* 33744*/ OPC_MoveParent, ++/* 33745*/ OPC_MoveChild3, ++/* 33746*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33749*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33751*/ OPC_CheckType, MVT::i32, ++/* 33753*/ OPC_MoveParent, ++/* 33754*/ OPC_MoveChild4, ++/* 33755*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33758*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33760*/ OPC_CheckType, MVT::i32, ++/* 33762*/ OPC_MoveParent, ++/* 33763*/ OPC_MoveChild5, ++/* 33764*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33767*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33769*/ OPC_CheckType, MVT::i32, ++/* 33771*/ OPC_MoveParent, ++/* 33772*/ OPC_MoveChild6, ++/* 33773*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33776*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33778*/ OPC_CheckType, MVT::i32, ++/* 33780*/ OPC_MoveParent, ++/* 33781*/ OPC_MoveChild7, ++/* 33782*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33785*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33787*/ OPC_CheckType, MVT::i32, ++/* 33789*/ OPC_MoveParent, ++/* 33790*/ OPC_MoveChild, 8, ++/* 33792*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33795*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33797*/ OPC_CheckType, MVT::i32, ++/* 33799*/ OPC_MoveParent, ++/* 33800*/ OPC_MoveChild, 9, ++/* 33802*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33805*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33807*/ OPC_CheckType, MVT::i32, ++/* 33809*/ OPC_MoveParent, ++/* 33810*/ OPC_MoveChild, 10, ++/* 33812*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33815*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33817*/ OPC_CheckType, MVT::i32, ++/* 33819*/ OPC_MoveParent, ++/* 33820*/ OPC_MoveChild, 11, ++/* 33822*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33825*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33827*/ OPC_CheckType, MVT::i32, ++/* 33829*/ OPC_MoveParent, ++/* 33830*/ OPC_MoveChild, 12, ++/* 33832*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33835*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33837*/ OPC_CheckType, MVT::i32, ++/* 33839*/ OPC_MoveParent, ++/* 33840*/ OPC_MoveChild, 13, ++/* 33842*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33845*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33847*/ OPC_CheckType, MVT::i32, ++/* 33849*/ OPC_MoveParent, ++/* 33850*/ OPC_MoveChild, 14, ++/* 33852*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33855*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33857*/ OPC_CheckType, MVT::i32, ++/* 33859*/ OPC_MoveParent, ++/* 33860*/ OPC_MoveChild, 15, ++/* 33862*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33865*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 33867*/ OPC_CheckType, MVT::i32, ++/* 33869*/ OPC_MoveParent, ++/* 33870*/ OPC_MoveParent, ++/* 33871*/ OPC_RecordChild1, // #0 = $vt ++/* 33872*/ OPC_CheckType, MVT::v16i8, ++/* 33874*/ OPC_MoveParent, ++/* 33875*/ OPC_MoveParent, ++/* 33876*/ OPC_RecordChild1, // #1 = $vs ++/* 33877*/ OPC_CheckType, MVT::v16i8, ++/* 33879*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 33881*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITREV_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (xor:{ *:[v16i8] } (shl:{ *:[v16i8] } (build_vector:{ *:[v16i8] })<>, (and:{ *:[v16i8] } (build_vector:{ *:[v16i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v16i8:{ *:[v16i8] }:$vt)), v16i8:{ *:[v16i8] }:$vs) - Complexity = 80 ++ // Dst: (VBITREV_B:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vs, v16i8:{ *:[v16i8] }:$vt) ++/* 33889*/ 0, /*End of Scope*/ ++/* 33890*/ /*Scope*/ 62|128,1/*190*/, /*->34082*/ ++/* 33892*/ OPC_RecordChild0, // #0 = $vs ++/* 33893*/ OPC_MoveChild1, ++/* 33894*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 33897*/ OPC_MoveChild0, ++/* 33898*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 33901*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 33903*/ OPC_MoveParent, ++/* 33904*/ OPC_MoveChild1, ++/* 33905*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 33908*/ OPC_MoveChild0, ++/* 33909*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 33912*/ OPC_MoveChild0, ++/* 33913*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33916*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 33918*/ OPC_CheckType, MVT::i32, ++/* 33920*/ OPC_MoveParent, ++/* 33921*/ OPC_MoveChild1, ++/* 33922*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33925*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 33927*/ OPC_CheckType, MVT::i32, ++/* 33929*/ OPC_MoveParent, ++/* 33930*/ OPC_MoveChild2, ++/* 33931*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33934*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 33936*/ OPC_CheckType, MVT::i32, ++/* 33938*/ OPC_MoveParent, ++/* 33939*/ OPC_MoveChild3, ++/* 33940*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33943*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 33945*/ OPC_CheckType, MVT::i32, ++/* 33947*/ OPC_MoveParent, ++/* 33948*/ OPC_MoveChild4, ++/* 33949*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33952*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 33954*/ OPC_CheckType, MVT::i32, ++/* 33956*/ OPC_MoveParent, ++/* 33957*/ OPC_MoveChild5, ++/* 33958*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33961*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 33963*/ OPC_CheckType, MVT::i32, ++/* 33965*/ OPC_MoveParent, ++/* 33966*/ OPC_MoveChild6, ++/* 33967*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33970*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 33972*/ OPC_CheckType, MVT::i32, ++/* 33974*/ OPC_MoveParent, ++/* 33975*/ OPC_MoveChild7, ++/* 33976*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33979*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 33981*/ OPC_CheckType, MVT::i32, ++/* 33983*/ OPC_MoveParent, ++/* 33984*/ OPC_MoveChild, 8, ++/* 33986*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33989*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 33991*/ OPC_CheckType, MVT::i32, ++/* 33993*/ OPC_MoveParent, ++/* 33994*/ OPC_MoveChild, 9, ++/* 33996*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 33999*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 34001*/ OPC_CheckType, MVT::i32, ++/* 34003*/ OPC_MoveParent, ++/* 34004*/ OPC_MoveChild, 10, ++/* 34006*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34009*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 34011*/ OPC_CheckType, MVT::i32, ++/* 34013*/ OPC_MoveParent, ++/* 34014*/ OPC_MoveChild, 11, ++/* 34016*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34019*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 34021*/ OPC_CheckType, MVT::i32, ++/* 34023*/ OPC_MoveParent, ++/* 34024*/ OPC_MoveChild, 12, ++/* 34026*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34029*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 34031*/ OPC_CheckType, MVT::i32, ++/* 34033*/ OPC_MoveParent, ++/* 34034*/ OPC_MoveChild, 13, ++/* 34036*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34039*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 34041*/ OPC_CheckType, MVT::i32, ++/* 34043*/ OPC_MoveParent, ++/* 34044*/ OPC_MoveChild, 14, ++/* 34046*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34049*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 34051*/ OPC_CheckType, MVT::i32, ++/* 34053*/ OPC_MoveParent, ++/* 34054*/ OPC_MoveChild, 15, ++/* 34056*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34059*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 34061*/ OPC_CheckType, MVT::i32, ++/* 34063*/ OPC_MoveParent, ++/* 34064*/ OPC_MoveParent, ++/* 34065*/ OPC_RecordChild1, // #1 = $vt ++/* 34066*/ OPC_CheckType, MVT::v16i16, ++/* 34068*/ OPC_MoveParent, ++/* 34069*/ OPC_MoveParent, ++/* 34070*/ OPC_CheckType, MVT::v16i16, ++/* 34072*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 34074*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITREV_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (xor:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vs, (shl:{ *:[v16i16] } (build_vector:{ *:[v16i16] })<>, (and:{ *:[v16i16] } (build_vector:{ *:[v16i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v16i16:{ *:[v16i16] }:$vt))) - Complexity = 80 ++ // Dst: (XVBITREV_H:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vs, v16i16:{ *:[v16i16] }:$vt) ++/* 34082*/ /*Scope*/ 115|128,2/*371*/, /*->34455*/ ++/* 34084*/ OPC_MoveChild0, ++/* 34085*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 34088*/ OPC_MoveChild0, ++/* 34089*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 34092*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 34094*/ OPC_MoveParent, ++/* 34095*/ OPC_MoveChild1, ++/* 34096*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 34099*/ OPC_Scope, 47|128,1/*175*/, /*->34277*/ // 2 children in Scope ++/* 34102*/ OPC_RecordChild0, // #0 = $vt ++/* 34103*/ OPC_MoveChild1, ++/* 34104*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 34107*/ OPC_MoveChild0, ++/* 34108*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34111*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 34113*/ OPC_CheckType, MVT::i32, ++/* 34115*/ OPC_MoveParent, ++/* 34116*/ OPC_MoveChild1, ++/* 34117*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34120*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 34122*/ OPC_CheckType, MVT::i32, ++/* 34124*/ OPC_MoveParent, ++/* 34125*/ OPC_MoveChild2, ++/* 34126*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34129*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 34131*/ OPC_CheckType, MVT::i32, ++/* 34133*/ OPC_MoveParent, ++/* 34134*/ OPC_MoveChild3, ++/* 34135*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34138*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 34140*/ OPC_CheckType, MVT::i32, ++/* 34142*/ OPC_MoveParent, ++/* 34143*/ OPC_MoveChild4, ++/* 34144*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34147*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 34149*/ OPC_CheckType, MVT::i32, ++/* 34151*/ OPC_MoveParent, ++/* 34152*/ OPC_MoveChild5, ++/* 34153*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34156*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 34158*/ OPC_CheckType, MVT::i32, ++/* 34160*/ OPC_MoveParent, ++/* 34161*/ OPC_MoveChild6, ++/* 34162*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34165*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 34167*/ OPC_CheckType, MVT::i32, ++/* 34169*/ OPC_MoveParent, ++/* 34170*/ OPC_MoveChild7, ++/* 34171*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34174*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 34176*/ OPC_CheckType, MVT::i32, ++/* 34178*/ OPC_MoveParent, ++/* 34179*/ OPC_MoveChild, 8, ++/* 34181*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34184*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 34186*/ OPC_CheckType, MVT::i32, ++/* 34188*/ OPC_MoveParent, ++/* 34189*/ OPC_MoveChild, 9, ++/* 34191*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34194*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 34196*/ OPC_CheckType, MVT::i32, ++/* 34198*/ OPC_MoveParent, ++/* 34199*/ OPC_MoveChild, 10, ++/* 34201*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34204*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 34206*/ OPC_CheckType, MVT::i32, ++/* 34208*/ OPC_MoveParent, ++/* 34209*/ OPC_MoveChild, 11, ++/* 34211*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34214*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 34216*/ OPC_CheckType, MVT::i32, ++/* 34218*/ OPC_MoveParent, ++/* 34219*/ OPC_MoveChild, 12, ++/* 34221*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34224*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 34226*/ OPC_CheckType, MVT::i32, ++/* 34228*/ OPC_MoveParent, ++/* 34229*/ OPC_MoveChild, 13, ++/* 34231*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34234*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 34236*/ OPC_CheckType, MVT::i32, ++/* 34238*/ OPC_MoveParent, ++/* 34239*/ OPC_MoveChild, 14, ++/* 34241*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34244*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 34246*/ OPC_CheckType, MVT::i32, ++/* 34248*/ OPC_MoveParent, ++/* 34249*/ OPC_MoveChild, 15, ++/* 34251*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34254*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 34256*/ OPC_CheckType, MVT::i32, ++/* 34258*/ OPC_MoveParent, ++/* 34259*/ OPC_MoveParent, ++/* 34260*/ OPC_CheckType, MVT::v16i16, ++/* 34262*/ OPC_MoveParent, ++/* 34263*/ OPC_MoveParent, ++/* 34264*/ OPC_RecordChild1, // #1 = $vs ++/* 34265*/ OPC_CheckType, MVT::v16i16, ++/* 34267*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 34269*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITREV_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (xor:{ *:[v16i16] } (shl:{ *:[v16i16] } (build_vector:{ *:[v16i16] })<>, (and:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vt, (build_vector:{ *:[v16i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))), v16i16:{ *:[v16i16] }:$vs) - Complexity = 80 ++ // Dst: (XVBITREV_H:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vs, v16i16:{ *:[v16i16] }:$vt) ++/* 34277*/ /*Scope*/ 47|128,1/*175*/, /*->34454*/ ++/* 34279*/ OPC_MoveChild0, ++/* 34280*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 34283*/ OPC_MoveChild0, ++/* 34284*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34287*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 34289*/ OPC_CheckType, MVT::i32, ++/* 34291*/ OPC_MoveParent, ++/* 34292*/ OPC_MoveChild1, ++/* 34293*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34296*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 34298*/ OPC_CheckType, MVT::i32, ++/* 34300*/ OPC_MoveParent, ++/* 34301*/ OPC_MoveChild2, ++/* 34302*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34305*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 34307*/ OPC_CheckType, MVT::i32, ++/* 34309*/ OPC_MoveParent, ++/* 34310*/ OPC_MoveChild3, ++/* 34311*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34314*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 34316*/ OPC_CheckType, MVT::i32, ++/* 34318*/ OPC_MoveParent, ++/* 34319*/ OPC_MoveChild4, ++/* 34320*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34323*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 34325*/ OPC_CheckType, MVT::i32, ++/* 34327*/ OPC_MoveParent, ++/* 34328*/ OPC_MoveChild5, ++/* 34329*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34332*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 34334*/ OPC_CheckType, MVT::i32, ++/* 34336*/ OPC_MoveParent, ++/* 34337*/ OPC_MoveChild6, ++/* 34338*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34341*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 34343*/ OPC_CheckType, MVT::i32, ++/* 34345*/ OPC_MoveParent, ++/* 34346*/ OPC_MoveChild7, ++/* 34347*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34350*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 34352*/ OPC_CheckType, MVT::i32, ++/* 34354*/ OPC_MoveParent, ++/* 34355*/ OPC_MoveChild, 8, ++/* 34357*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34360*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 34362*/ OPC_CheckType, MVT::i32, ++/* 34364*/ OPC_MoveParent, ++/* 34365*/ OPC_MoveChild, 9, ++/* 34367*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34370*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 34372*/ OPC_CheckType, MVT::i32, ++/* 34374*/ OPC_MoveParent, ++/* 34375*/ OPC_MoveChild, 10, ++/* 34377*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34380*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 34382*/ OPC_CheckType, MVT::i32, ++/* 34384*/ OPC_MoveParent, ++/* 34385*/ OPC_MoveChild, 11, ++/* 34387*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34390*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 34392*/ OPC_CheckType, MVT::i32, ++/* 34394*/ OPC_MoveParent, ++/* 34395*/ OPC_MoveChild, 12, ++/* 34397*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34400*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 34402*/ OPC_CheckType, MVT::i32, ++/* 34404*/ OPC_MoveParent, ++/* 34405*/ OPC_MoveChild, 13, ++/* 34407*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34410*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 34412*/ OPC_CheckType, MVT::i32, ++/* 34414*/ OPC_MoveParent, ++/* 34415*/ OPC_MoveChild, 14, ++/* 34417*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34420*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 34422*/ OPC_CheckType, MVT::i32, ++/* 34424*/ OPC_MoveParent, ++/* 34425*/ OPC_MoveChild, 15, ++/* 34427*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34430*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 34432*/ OPC_CheckType, MVT::i32, ++/* 34434*/ OPC_MoveParent, ++/* 34435*/ OPC_MoveParent, ++/* 34436*/ OPC_RecordChild1, // #0 = $vt ++/* 34437*/ OPC_CheckType, MVT::v16i16, ++/* 34439*/ OPC_MoveParent, ++/* 34440*/ OPC_MoveParent, ++/* 34441*/ OPC_RecordChild1, // #1 = $vs ++/* 34442*/ OPC_CheckType, MVT::v16i16, ++/* 34444*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 34446*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITREV_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (xor:{ *:[v16i16] } (shl:{ *:[v16i16] } (build_vector:{ *:[v16i16] })<>, (and:{ *:[v16i16] } (build_vector:{ *:[v16i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v16i16:{ *:[v16i16] }:$vt)), v16i16:{ *:[v16i16] }:$vs) - Complexity = 80 ++ // Dst: (XVBITREV_H:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vs, v16i16:{ *:[v16i16] }:$vt) ++/* 34454*/ 0, /*End of Scope*/ ++/* 34455*/ /*Scope*/ 42|128,1/*170*/, /*->34627*/ ++/* 34457*/ OPC_RecordChild0, // #0 = $xj ++/* 34458*/ OPC_MoveChild1, ++/* 34459*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 34462*/ OPC_MoveChild0, ++/* 34463*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34466*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 34468*/ OPC_CheckType, MVT::i32, ++/* 34470*/ OPC_MoveParent, ++/* 34471*/ OPC_MoveChild1, ++/* 34472*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34475*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 34477*/ OPC_CheckType, MVT::i32, ++/* 34479*/ OPC_MoveParent, ++/* 34480*/ OPC_MoveChild2, ++/* 34481*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34484*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 34486*/ OPC_CheckType, MVT::i32, ++/* 34488*/ OPC_MoveParent, ++/* 34489*/ OPC_MoveChild3, ++/* 34490*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34493*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 34495*/ OPC_CheckType, MVT::i32, ++/* 34497*/ OPC_MoveParent, ++/* 34498*/ OPC_MoveChild4, ++/* 34499*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34502*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 34504*/ OPC_CheckType, MVT::i32, ++/* 34506*/ OPC_MoveParent, ++/* 34507*/ OPC_MoveChild5, ++/* 34508*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34511*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 34513*/ OPC_CheckType, MVT::i32, ++/* 34515*/ OPC_MoveParent, ++/* 34516*/ OPC_MoveChild6, ++/* 34517*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34520*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 34522*/ OPC_CheckType, MVT::i32, ++/* 34524*/ OPC_MoveParent, ++/* 34525*/ OPC_MoveChild7, ++/* 34526*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34529*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 34531*/ OPC_CheckType, MVT::i32, ++/* 34533*/ OPC_MoveParent, ++/* 34534*/ OPC_MoveChild, 8, ++/* 34536*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34539*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 34541*/ OPC_CheckType, MVT::i32, ++/* 34543*/ OPC_MoveParent, ++/* 34544*/ OPC_MoveChild, 9, ++/* 34546*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34549*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 34551*/ OPC_CheckType, MVT::i32, ++/* 34553*/ OPC_MoveParent, ++/* 34554*/ OPC_MoveChild, 10, ++/* 34556*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34559*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 34561*/ OPC_CheckType, MVT::i32, ++/* 34563*/ OPC_MoveParent, ++/* 34564*/ OPC_MoveChild, 11, ++/* 34566*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34569*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 34571*/ OPC_CheckType, MVT::i32, ++/* 34573*/ OPC_MoveParent, ++/* 34574*/ OPC_MoveChild, 12, ++/* 34576*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34579*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 34581*/ OPC_CheckType, MVT::i32, ++/* 34583*/ OPC_MoveParent, ++/* 34584*/ OPC_MoveChild, 13, ++/* 34586*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34589*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 34591*/ OPC_CheckType, MVT::i32, ++/* 34593*/ OPC_MoveParent, ++/* 34594*/ OPC_MoveChild, 14, ++/* 34596*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34599*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 34601*/ OPC_CheckType, MVT::i32, ++/* 34603*/ OPC_MoveParent, ++/* 34604*/ OPC_MoveChild, 15, ++/* 34606*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34609*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 34611*/ OPC_CheckType, MVT::i32, ++/* 34613*/ OPC_MoveParent, ++/* 34614*/ OPC_MoveParent, ++/* 34615*/ OPC_CheckType, MVT::v16i16, ++/* 34617*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 34619*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XNOR_V_H_PSEUDO), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 0, ++ // Src: (xor:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$xj, (build_vector:{ *:[v16i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>)) - Complexity = 70 ++ // Dst: (XNOR_V_H_PSEUDO:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xj) ++/* 34627*/ /*Scope*/ 42|128,1/*170*/, /*->34799*/ ++/* 34629*/ OPC_MoveChild0, ++/* 34630*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 34633*/ OPC_MoveChild0, ++/* 34634*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34637*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 34639*/ OPC_CheckType, MVT::i32, ++/* 34641*/ OPC_MoveParent, ++/* 34642*/ OPC_MoveChild1, ++/* 34643*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34646*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 34648*/ OPC_CheckType, MVT::i32, ++/* 34650*/ OPC_MoveParent, ++/* 34651*/ OPC_MoveChild2, ++/* 34652*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34655*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 34657*/ OPC_CheckType, MVT::i32, ++/* 34659*/ OPC_MoveParent, ++/* 34660*/ OPC_MoveChild3, ++/* 34661*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34664*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 34666*/ OPC_CheckType, MVT::i32, ++/* 34668*/ OPC_MoveParent, ++/* 34669*/ OPC_MoveChild4, ++/* 34670*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34673*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 34675*/ OPC_CheckType, MVT::i32, ++/* 34677*/ OPC_MoveParent, ++/* 34678*/ OPC_MoveChild5, ++/* 34679*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34682*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 34684*/ OPC_CheckType, MVT::i32, ++/* 34686*/ OPC_MoveParent, ++/* 34687*/ OPC_MoveChild6, ++/* 34688*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34691*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 34693*/ OPC_CheckType, MVT::i32, ++/* 34695*/ OPC_MoveParent, ++/* 34696*/ OPC_MoveChild7, ++/* 34697*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34700*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 34702*/ OPC_CheckType, MVT::i32, ++/* 34704*/ OPC_MoveParent, ++/* 34705*/ OPC_MoveChild, 8, ++/* 34707*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34710*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 34712*/ OPC_CheckType, MVT::i32, ++/* 34714*/ OPC_MoveParent, ++/* 34715*/ OPC_MoveChild, 9, ++/* 34717*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34720*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 34722*/ OPC_CheckType, MVT::i32, ++/* 34724*/ OPC_MoveParent, ++/* 34725*/ OPC_MoveChild, 10, ++/* 34727*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34730*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 34732*/ OPC_CheckType, MVT::i32, ++/* 34734*/ OPC_MoveParent, ++/* 34735*/ OPC_MoveChild, 11, ++/* 34737*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34740*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 34742*/ OPC_CheckType, MVT::i32, ++/* 34744*/ OPC_MoveParent, ++/* 34745*/ OPC_MoveChild, 12, ++/* 34747*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34750*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 34752*/ OPC_CheckType, MVT::i32, ++/* 34754*/ OPC_MoveParent, ++/* 34755*/ OPC_MoveChild, 13, ++/* 34757*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34760*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 34762*/ OPC_CheckType, MVT::i32, ++/* 34764*/ OPC_MoveParent, ++/* 34765*/ OPC_MoveChild, 14, ++/* 34767*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34770*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 34772*/ OPC_CheckType, MVT::i32, ++/* 34774*/ OPC_MoveParent, ++/* 34775*/ OPC_MoveChild, 15, ++/* 34777*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34780*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 34782*/ OPC_CheckType, MVT::i32, ++/* 34784*/ OPC_MoveParent, ++/* 34785*/ OPC_MoveParent, ++/* 34786*/ OPC_RecordChild1, // #0 = $xj ++/* 34787*/ OPC_CheckType, MVT::v16i16, ++/* 34789*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 34791*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XNOR_V_H_PSEUDO), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 0, ++ // Src: (xor:{ *:[v16i16] } (build_vector:{ *:[v16i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), LASX256H:{ *:[v16i16] }:$xj) - Complexity = 70 ++ // Dst: (XNOR_V_H_PSEUDO:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xj) ++/* 34799*/ /*Scope*/ 40|128,2/*296*/, /*->35097*/ ++/* 34801*/ OPC_RecordChild0, // #0 = $vs ++/* 34802*/ OPC_MoveChild1, ++/* 34803*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 34806*/ OPC_MoveChild0, ++/* 34807*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 34810*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 34812*/ OPC_MoveParent, ++/* 34813*/ OPC_MoveChild1, ++/* 34814*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 34817*/ OPC_Scope, 53|128,1/*181*/, /*->35001*/ // 2 children in Scope ++/* 34820*/ OPC_RecordChild0, // #1 = $vt ++/* 34821*/ OPC_MoveChild1, ++/* 34822*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 34825*/ OPC_MoveChild0, ++/* 34826*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34829*/ OPC_CheckType, MVT::i32, ++/* 34831*/ OPC_Scope, 83, /*->34916*/ // 2 children in Scope ++/* 34833*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 34835*/ OPC_MoveParent, ++/* 34836*/ OPC_MoveChild1, ++/* 34837*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34840*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 34842*/ OPC_CheckType, MVT::i32, ++/* 34844*/ OPC_MoveParent, ++/* 34845*/ OPC_MoveChild2, ++/* 34846*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34849*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 34851*/ OPC_CheckType, MVT::i32, ++/* 34853*/ OPC_MoveParent, ++/* 34854*/ OPC_MoveChild3, ++/* 34855*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34858*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 34860*/ OPC_CheckType, MVT::i32, ++/* 34862*/ OPC_MoveParent, ++/* 34863*/ OPC_MoveChild4, ++/* 34864*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34867*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 34869*/ OPC_CheckType, MVT::i32, ++/* 34871*/ OPC_MoveParent, ++/* 34872*/ OPC_MoveChild5, ++/* 34873*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34876*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 34878*/ OPC_CheckType, MVT::i32, ++/* 34880*/ OPC_MoveParent, ++/* 34881*/ OPC_MoveChild6, ++/* 34882*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34885*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 34887*/ OPC_CheckType, MVT::i32, ++/* 34889*/ OPC_MoveParent, ++/* 34890*/ OPC_MoveChild7, ++/* 34891*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34894*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 34896*/ OPC_CheckType, MVT::i32, ++/* 34898*/ OPC_MoveParent, ++/* 34899*/ OPC_MoveParent, ++/* 34900*/ OPC_CheckType, MVT::v8i16, ++/* 34902*/ OPC_MoveParent, ++/* 34903*/ OPC_MoveParent, ++/* 34904*/ OPC_CheckType, MVT::v8i16, ++/* 34906*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 34908*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITREV_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (xor:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vs, (shl:{ *:[v8i16] } (build_vector:{ *:[v8i16] })<>, (and:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vt, (build_vector:{ *:[v8i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>)))) - Complexity = 48 ++ // Dst: (VBITREV_H:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vs, v8i16:{ *:[v8i16] }:$vt) ++/* 34916*/ /*Scope*/ 83, /*->35000*/ ++/* 34917*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 34919*/ OPC_MoveParent, ++/* 34920*/ OPC_MoveChild1, ++/* 34921*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34924*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 34926*/ OPC_CheckType, MVT::i32, ++/* 34928*/ OPC_MoveParent, ++/* 34929*/ OPC_MoveChild2, ++/* 34930*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34933*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 34935*/ OPC_CheckType, MVT::i32, ++/* 34937*/ OPC_MoveParent, ++/* 34938*/ OPC_MoveChild3, ++/* 34939*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34942*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 34944*/ OPC_CheckType, MVT::i32, ++/* 34946*/ OPC_MoveParent, ++/* 34947*/ OPC_MoveChild4, ++/* 34948*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34951*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 34953*/ OPC_CheckType, MVT::i32, ++/* 34955*/ OPC_MoveParent, ++/* 34956*/ OPC_MoveChild5, ++/* 34957*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34960*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 34962*/ OPC_CheckType, MVT::i32, ++/* 34964*/ OPC_MoveParent, ++/* 34965*/ OPC_MoveChild6, ++/* 34966*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34969*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 34971*/ OPC_CheckType, MVT::i32, ++/* 34973*/ OPC_MoveParent, ++/* 34974*/ OPC_MoveChild7, ++/* 34975*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 34978*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 34980*/ OPC_CheckType, MVT::i32, ++/* 34982*/ OPC_MoveParent, ++/* 34983*/ OPC_MoveParent, ++/* 34984*/ OPC_CheckType, MVT::v8i32, ++/* 34986*/ OPC_MoveParent, ++/* 34987*/ OPC_MoveParent, ++/* 34988*/ OPC_CheckType, MVT::v8i32, ++/* 34990*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 34992*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITREV_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (xor:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vs, (shl:{ *:[v8i32] } (build_vector:{ *:[v8i32] })<>, (and:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vt, (build_vector:{ *:[v8i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>)))) - Complexity = 48 ++ // Dst: (XVBITREV_W:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vs, v8i32:{ *:[v8i32] }:$vt) ++/* 35000*/ 0, /*End of Scope*/ ++/* 35001*/ /*Scope*/ 94, /*->35096*/ ++/* 35002*/ OPC_MoveChild0, ++/* 35003*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 35006*/ OPC_MoveChild0, ++/* 35007*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35010*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 35012*/ OPC_CheckType, MVT::i32, ++/* 35014*/ OPC_MoveParent, ++/* 35015*/ OPC_MoveChild1, ++/* 35016*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35019*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 35021*/ OPC_CheckType, MVT::i32, ++/* 35023*/ OPC_MoveParent, ++/* 35024*/ OPC_MoveChild2, ++/* 35025*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35028*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 35030*/ OPC_CheckType, MVT::i32, ++/* 35032*/ OPC_MoveParent, ++/* 35033*/ OPC_MoveChild3, ++/* 35034*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35037*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 35039*/ OPC_CheckType, MVT::i32, ++/* 35041*/ OPC_MoveParent, ++/* 35042*/ OPC_MoveChild4, ++/* 35043*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35046*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 35048*/ OPC_CheckType, MVT::i32, ++/* 35050*/ OPC_MoveParent, ++/* 35051*/ OPC_MoveChild5, ++/* 35052*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35055*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 35057*/ OPC_CheckType, MVT::i32, ++/* 35059*/ OPC_MoveParent, ++/* 35060*/ OPC_MoveChild6, ++/* 35061*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35064*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 35066*/ OPC_CheckType, MVT::i32, ++/* 35068*/ OPC_MoveParent, ++/* 35069*/ OPC_MoveChild7, ++/* 35070*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35073*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 35075*/ OPC_CheckType, MVT::i32, ++/* 35077*/ OPC_MoveParent, ++/* 35078*/ OPC_MoveParent, ++/* 35079*/ OPC_RecordChild1, // #1 = $vt ++/* 35080*/ OPC_CheckType, MVT::v8i16, ++/* 35082*/ OPC_MoveParent, ++/* 35083*/ OPC_MoveParent, ++/* 35084*/ OPC_CheckType, MVT::v8i16, ++/* 35086*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 35088*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITREV_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (xor:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vs, (shl:{ *:[v8i16] } (build_vector:{ *:[v8i16] })<>, (and:{ *:[v8i16] } (build_vector:{ *:[v8i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v8i16:{ *:[v8i16] }:$vt))) - Complexity = 48 ++ // Dst: (VBITREV_H:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vs, v8i16:{ *:[v8i16] }:$vt) ++/* 35096*/ 0, /*End of Scope*/ ++/* 35097*/ /*Scope*/ 81|128,1/*209*/, /*->35308*/ ++/* 35099*/ OPC_MoveChild0, ++/* 35100*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 35103*/ OPC_MoveChild0, ++/* 35104*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 35107*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 35109*/ OPC_MoveParent, ++/* 35110*/ OPC_MoveChild1, ++/* 35111*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 35114*/ OPC_Scope, 95, /*->35211*/ // 2 children in Scope ++/* 35116*/ OPC_RecordChild0, // #0 = $vt ++/* 35117*/ OPC_MoveChild1, ++/* 35118*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 35121*/ OPC_MoveChild0, ++/* 35122*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35125*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 35127*/ OPC_CheckType, MVT::i32, ++/* 35129*/ OPC_MoveParent, ++/* 35130*/ OPC_MoveChild1, ++/* 35131*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35134*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 35136*/ OPC_CheckType, MVT::i32, ++/* 35138*/ OPC_MoveParent, ++/* 35139*/ OPC_MoveChild2, ++/* 35140*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35143*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 35145*/ OPC_CheckType, MVT::i32, ++/* 35147*/ OPC_MoveParent, ++/* 35148*/ OPC_MoveChild3, ++/* 35149*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35152*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 35154*/ OPC_CheckType, MVT::i32, ++/* 35156*/ OPC_MoveParent, ++/* 35157*/ OPC_MoveChild4, ++/* 35158*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35161*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 35163*/ OPC_CheckType, MVT::i32, ++/* 35165*/ OPC_MoveParent, ++/* 35166*/ OPC_MoveChild5, ++/* 35167*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35170*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 35172*/ OPC_CheckType, MVT::i32, ++/* 35174*/ OPC_MoveParent, ++/* 35175*/ OPC_MoveChild6, ++/* 35176*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35179*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 35181*/ OPC_CheckType, MVT::i32, ++/* 35183*/ OPC_MoveParent, ++/* 35184*/ OPC_MoveChild7, ++/* 35185*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35188*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 35190*/ OPC_CheckType, MVT::i32, ++/* 35192*/ OPC_MoveParent, ++/* 35193*/ OPC_MoveParent, ++/* 35194*/ OPC_CheckType, MVT::v8i16, ++/* 35196*/ OPC_MoveParent, ++/* 35197*/ OPC_MoveParent, ++/* 35198*/ OPC_RecordChild1, // #1 = $vs ++/* 35199*/ OPC_CheckType, MVT::v8i16, ++/* 35201*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 35203*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITREV_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (xor:{ *:[v8i16] } (shl:{ *:[v8i16] } (build_vector:{ *:[v8i16] })<>, (and:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vt, (build_vector:{ *:[v8i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))), v8i16:{ *:[v8i16] }:$vs) - Complexity = 48 ++ // Dst: (VBITREV_H:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vs, v8i16:{ *:[v8i16] }:$vt) ++/* 35211*/ /*Scope*/ 95, /*->35307*/ ++/* 35212*/ OPC_MoveChild0, ++/* 35213*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 35216*/ OPC_MoveChild0, ++/* 35217*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35220*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 35222*/ OPC_CheckType, MVT::i32, ++/* 35224*/ OPC_MoveParent, ++/* 35225*/ OPC_MoveChild1, ++/* 35226*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35229*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 35231*/ OPC_CheckType, MVT::i32, ++/* 35233*/ OPC_MoveParent, ++/* 35234*/ OPC_MoveChild2, ++/* 35235*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35238*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 35240*/ OPC_CheckType, MVT::i32, ++/* 35242*/ OPC_MoveParent, ++/* 35243*/ OPC_MoveChild3, ++/* 35244*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35247*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 35249*/ OPC_CheckType, MVT::i32, ++/* 35251*/ OPC_MoveParent, ++/* 35252*/ OPC_MoveChild4, ++/* 35253*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35256*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 35258*/ OPC_CheckType, MVT::i32, ++/* 35260*/ OPC_MoveParent, ++/* 35261*/ OPC_MoveChild5, ++/* 35262*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35265*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 35267*/ OPC_CheckType, MVT::i32, ++/* 35269*/ OPC_MoveParent, ++/* 35270*/ OPC_MoveChild6, ++/* 35271*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35274*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 35276*/ OPC_CheckType, MVT::i32, ++/* 35278*/ OPC_MoveParent, ++/* 35279*/ OPC_MoveChild7, ++/* 35280*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35283*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 35285*/ OPC_CheckType, MVT::i32, ++/* 35287*/ OPC_MoveParent, ++/* 35288*/ OPC_MoveParent, ++/* 35289*/ OPC_RecordChild1, // #0 = $vt ++/* 35290*/ OPC_CheckType, MVT::v8i16, ++/* 35292*/ OPC_MoveParent, ++/* 35293*/ OPC_MoveParent, ++/* 35294*/ OPC_RecordChild1, // #1 = $vs ++/* 35295*/ OPC_CheckType, MVT::v8i16, ++/* 35297*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 35299*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITREV_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (xor:{ *:[v8i16] } (shl:{ *:[v8i16] } (build_vector:{ *:[v8i16] })<>, (and:{ *:[v8i16] } (build_vector:{ *:[v8i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v8i16:{ *:[v8i16] }:$vt)), v8i16:{ *:[v8i16] }:$vs) - Complexity = 48 ++ // Dst: (VBITREV_H:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vs, v8i16:{ *:[v8i16] }:$vt) ++/* 35307*/ 0, /*End of Scope*/ ++/* 35308*/ /*Scope*/ 110, /*->35419*/ ++/* 35309*/ OPC_RecordChild0, // #0 = $vs ++/* 35310*/ OPC_MoveChild1, ++/* 35311*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 35314*/ OPC_MoveChild0, ++/* 35315*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 35318*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 35320*/ OPC_MoveParent, ++/* 35321*/ OPC_MoveChild1, ++/* 35322*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 35325*/ OPC_MoveChild0, ++/* 35326*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 35329*/ OPC_MoveChild0, ++/* 35330*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35333*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 35335*/ OPC_CheckType, MVT::i32, ++/* 35337*/ OPC_MoveParent, ++/* 35338*/ OPC_MoveChild1, ++/* 35339*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35342*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 35344*/ OPC_CheckType, MVT::i32, ++/* 35346*/ OPC_MoveParent, ++/* 35347*/ OPC_MoveChild2, ++/* 35348*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35351*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 35353*/ OPC_CheckType, MVT::i32, ++/* 35355*/ OPC_MoveParent, ++/* 35356*/ OPC_MoveChild3, ++/* 35357*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35360*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 35362*/ OPC_CheckType, MVT::i32, ++/* 35364*/ OPC_MoveParent, ++/* 35365*/ OPC_MoveChild4, ++/* 35366*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35369*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 35371*/ OPC_CheckType, MVT::i32, ++/* 35373*/ OPC_MoveParent, ++/* 35374*/ OPC_MoveChild5, ++/* 35375*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35378*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 35380*/ OPC_CheckType, MVT::i32, ++/* 35382*/ OPC_MoveParent, ++/* 35383*/ OPC_MoveChild6, ++/* 35384*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35387*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 35389*/ OPC_CheckType, MVT::i32, ++/* 35391*/ OPC_MoveParent, ++/* 35392*/ OPC_MoveChild7, ++/* 35393*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35396*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 35398*/ OPC_CheckType, MVT::i32, ++/* 35400*/ OPC_MoveParent, ++/* 35401*/ OPC_MoveParent, ++/* 35402*/ OPC_RecordChild1, // #1 = $vt ++/* 35403*/ OPC_CheckType, MVT::v8i32, ++/* 35405*/ OPC_MoveParent, ++/* 35406*/ OPC_MoveParent, ++/* 35407*/ OPC_CheckType, MVT::v8i32, ++/* 35409*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 35411*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITREV_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (xor:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vs, (shl:{ *:[v8i32] } (build_vector:{ *:[v8i32] })<>, (and:{ *:[v8i32] } (build_vector:{ *:[v8i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v8i32:{ *:[v8i32] }:$vt))) - Complexity = 48 ++ // Dst: (XVBITREV_W:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vs, v8i32:{ *:[v8i32] }:$vt) ++/* 35419*/ /*Scope*/ 81|128,1/*209*/, /*->35630*/ ++/* 35421*/ OPC_MoveChild0, ++/* 35422*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 35425*/ OPC_MoveChild0, ++/* 35426*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 35429*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 35431*/ OPC_MoveParent, ++/* 35432*/ OPC_MoveChild1, ++/* 35433*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 35436*/ OPC_Scope, 95, /*->35533*/ // 2 children in Scope ++/* 35438*/ OPC_RecordChild0, // #0 = $vt ++/* 35439*/ OPC_MoveChild1, ++/* 35440*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 35443*/ OPC_MoveChild0, ++/* 35444*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35447*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 35449*/ OPC_CheckType, MVT::i32, ++/* 35451*/ OPC_MoveParent, ++/* 35452*/ OPC_MoveChild1, ++/* 35453*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35456*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 35458*/ OPC_CheckType, MVT::i32, ++/* 35460*/ OPC_MoveParent, ++/* 35461*/ OPC_MoveChild2, ++/* 35462*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35465*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 35467*/ OPC_CheckType, MVT::i32, ++/* 35469*/ OPC_MoveParent, ++/* 35470*/ OPC_MoveChild3, ++/* 35471*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35474*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 35476*/ OPC_CheckType, MVT::i32, ++/* 35478*/ OPC_MoveParent, ++/* 35479*/ OPC_MoveChild4, ++/* 35480*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35483*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 35485*/ OPC_CheckType, MVT::i32, ++/* 35487*/ OPC_MoveParent, ++/* 35488*/ OPC_MoveChild5, ++/* 35489*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35492*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 35494*/ OPC_CheckType, MVT::i32, ++/* 35496*/ OPC_MoveParent, ++/* 35497*/ OPC_MoveChild6, ++/* 35498*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35501*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 35503*/ OPC_CheckType, MVT::i32, ++/* 35505*/ OPC_MoveParent, ++/* 35506*/ OPC_MoveChild7, ++/* 35507*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35510*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 35512*/ OPC_CheckType, MVT::i32, ++/* 35514*/ OPC_MoveParent, ++/* 35515*/ OPC_MoveParent, ++/* 35516*/ OPC_CheckType, MVT::v8i32, ++/* 35518*/ OPC_MoveParent, ++/* 35519*/ OPC_MoveParent, ++/* 35520*/ OPC_RecordChild1, // #1 = $vs ++/* 35521*/ OPC_CheckType, MVT::v8i32, ++/* 35523*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 35525*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITREV_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (xor:{ *:[v8i32] } (shl:{ *:[v8i32] } (build_vector:{ *:[v8i32] })<>, (and:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vt, (build_vector:{ *:[v8i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))), v8i32:{ *:[v8i32] }:$vs) - Complexity = 48 ++ // Dst: (XVBITREV_W:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vs, v8i32:{ *:[v8i32] }:$vt) ++/* 35533*/ /*Scope*/ 95, /*->35629*/ ++/* 35534*/ OPC_MoveChild0, ++/* 35535*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 35538*/ OPC_MoveChild0, ++/* 35539*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35542*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 35544*/ OPC_CheckType, MVT::i32, ++/* 35546*/ OPC_MoveParent, ++/* 35547*/ OPC_MoveChild1, ++/* 35548*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35551*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 35553*/ OPC_CheckType, MVT::i32, ++/* 35555*/ OPC_MoveParent, ++/* 35556*/ OPC_MoveChild2, ++/* 35557*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35560*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 35562*/ OPC_CheckType, MVT::i32, ++/* 35564*/ OPC_MoveParent, ++/* 35565*/ OPC_MoveChild3, ++/* 35566*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35569*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 35571*/ OPC_CheckType, MVT::i32, ++/* 35573*/ OPC_MoveParent, ++/* 35574*/ OPC_MoveChild4, ++/* 35575*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35578*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 35580*/ OPC_CheckType, MVT::i32, ++/* 35582*/ OPC_MoveParent, ++/* 35583*/ OPC_MoveChild5, ++/* 35584*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35587*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 35589*/ OPC_CheckType, MVT::i32, ++/* 35591*/ OPC_MoveParent, ++/* 35592*/ OPC_MoveChild6, ++/* 35593*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35596*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 35598*/ OPC_CheckType, MVT::i32, ++/* 35600*/ OPC_MoveParent, ++/* 35601*/ OPC_MoveChild7, ++/* 35602*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35605*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 35607*/ OPC_CheckType, MVT::i32, ++/* 35609*/ OPC_MoveParent, ++/* 35610*/ OPC_MoveParent, ++/* 35611*/ OPC_RecordChild1, // #0 = $vt ++/* 35612*/ OPC_CheckType, MVT::v8i32, ++/* 35614*/ OPC_MoveParent, ++/* 35615*/ OPC_MoveParent, ++/* 35616*/ OPC_RecordChild1, // #1 = $vs ++/* 35617*/ OPC_CheckType, MVT::v8i32, ++/* 35619*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 35621*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITREV_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (xor:{ *:[v8i32] } (shl:{ *:[v8i32] } (build_vector:{ *:[v8i32] })<>, (and:{ *:[v8i32] } (build_vector:{ *:[v8i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v8i32:{ *:[v8i32] }:$vt)), v8i32:{ *:[v8i32] }:$vs) - Complexity = 48 ++ // Dst: (XVBITREV_W:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vs, v8i32:{ *:[v8i32] }:$vt) ++/* 35629*/ 0, /*End of Scope*/ ++/* 35630*/ /*Scope*/ 104, /*->35735*/ ++/* 35631*/ OPC_RecordChild0, // #0 = $vj ++/* 35632*/ OPC_MoveChild1, ++/* 35633*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 35636*/ OPC_MoveChild0, ++/* 35637*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35640*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 35642*/ OPC_CheckType, MVT::i32, ++/* 35644*/ OPC_MoveParent, ++/* 35645*/ OPC_MoveChild1, ++/* 35646*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35649*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 35651*/ OPC_CheckType, MVT::i32, ++/* 35653*/ OPC_MoveParent, ++/* 35654*/ OPC_MoveChild2, ++/* 35655*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35658*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 35660*/ OPC_CheckType, MVT::i32, ++/* 35662*/ OPC_MoveParent, ++/* 35663*/ OPC_MoveChild3, ++/* 35664*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35667*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 35669*/ OPC_CheckType, MVT::i32, ++/* 35671*/ OPC_MoveParent, ++/* 35672*/ OPC_MoveChild4, ++/* 35673*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35676*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 35678*/ OPC_CheckType, MVT::i32, ++/* 35680*/ OPC_MoveParent, ++/* 35681*/ OPC_MoveChild5, ++/* 35682*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35685*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 35687*/ OPC_CheckType, MVT::i32, ++/* 35689*/ OPC_MoveParent, ++/* 35690*/ OPC_MoveChild6, ++/* 35691*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35694*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 35696*/ OPC_CheckType, MVT::i32, ++/* 35698*/ OPC_MoveParent, ++/* 35699*/ OPC_MoveChild7, ++/* 35700*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35703*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 35705*/ OPC_CheckType, MVT::i32, ++/* 35707*/ OPC_MoveParent, ++/* 35708*/ OPC_MoveParent, ++/* 35709*/ OPC_SwitchType /*2 cases */, 10, MVT::v8i16,// ->35722 ++/* 35712*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 35714*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::NOR_V_H_PSEUDO), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 0, ++ // Src: (xor:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vj, (build_vector:{ *:[v8i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>)) - Complexity = 38 ++ // Dst: (NOR_V_H_PSEUDO:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vj) ++/* 35722*/ /*SwitchType*/ 10, MVT::v8i32,// ->35734 ++/* 35724*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 35726*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XNOR_V_W_PSEUDO), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 0, ++ // Src: (xor:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$xj, (build_vector:{ *:[v8i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>)) - Complexity = 38 ++ // Dst: (XNOR_V_W_PSEUDO:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xj) ++/* 35734*/ 0, // EndSwitchType ++/* 35735*/ /*Scope*/ 104, /*->35840*/ ++/* 35736*/ OPC_MoveChild0, ++/* 35737*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 35740*/ OPC_MoveChild0, ++/* 35741*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35744*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 35746*/ OPC_CheckType, MVT::i32, ++/* 35748*/ OPC_MoveParent, ++/* 35749*/ OPC_MoveChild1, ++/* 35750*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35753*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 35755*/ OPC_CheckType, MVT::i32, ++/* 35757*/ OPC_MoveParent, ++/* 35758*/ OPC_MoveChild2, ++/* 35759*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35762*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 35764*/ OPC_CheckType, MVT::i32, ++/* 35766*/ OPC_MoveParent, ++/* 35767*/ OPC_MoveChild3, ++/* 35768*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35771*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 35773*/ OPC_CheckType, MVT::i32, ++/* 35775*/ OPC_MoveParent, ++/* 35776*/ OPC_MoveChild4, ++/* 35777*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35780*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 35782*/ OPC_CheckType, MVT::i32, ++/* 35784*/ OPC_MoveParent, ++/* 35785*/ OPC_MoveChild5, ++/* 35786*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35789*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 35791*/ OPC_CheckType, MVT::i32, ++/* 35793*/ OPC_MoveParent, ++/* 35794*/ OPC_MoveChild6, ++/* 35795*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35798*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 35800*/ OPC_CheckType, MVT::i32, ++/* 35802*/ OPC_MoveParent, ++/* 35803*/ OPC_MoveChild7, ++/* 35804*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35807*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 35809*/ OPC_CheckType, MVT::i32, ++/* 35811*/ OPC_MoveParent, ++/* 35812*/ OPC_MoveParent, ++/* 35813*/ OPC_RecordChild1, // #0 = $vj ++/* 35814*/ OPC_SwitchType /*2 cases */, 10, MVT::v8i16,// ->35827 ++/* 35817*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 35819*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::NOR_V_H_PSEUDO), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 0, ++ // Src: (xor:{ *:[v8i16] } (build_vector:{ *:[v8i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), LSX128H:{ *:[v8i16] }:$vj) - Complexity = 38 ++ // Dst: (NOR_V_H_PSEUDO:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vj) ++/* 35827*/ /*SwitchType*/ 10, MVT::v8i32,// ->35839 ++/* 35829*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 35831*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XNOR_V_W_PSEUDO), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 0, ++ // Src: (xor:{ *:[v8i32] } (build_vector:{ *:[v8i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), LASX256W:{ *:[v8i32] }:$xj) - Complexity = 38 ++ // Dst: (XNOR_V_W_PSEUDO:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xj) ++/* 35839*/ 0, // EndSwitchType ++/* 35840*/ /*Scope*/ 8|128,1/*136*/, /*->35978*/ ++/* 35842*/ OPC_RecordChild0, // #0 = $vs ++/* 35843*/ OPC_MoveChild1, ++/* 35844*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 35847*/ OPC_MoveChild0, ++/* 35848*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 35851*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 35853*/ OPC_MoveParent, ++/* 35854*/ OPC_MoveChild1, ++/* 35855*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 35858*/ OPC_Scope, 58, /*->35918*/ // 2 children in Scope ++/* 35860*/ OPC_RecordChild0, // #1 = $vt ++/* 35861*/ OPC_MoveChild1, ++/* 35862*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 35865*/ OPC_MoveChild0, ++/* 35866*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35869*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 35871*/ OPC_CheckType, MVT::i32, ++/* 35873*/ OPC_MoveParent, ++/* 35874*/ OPC_MoveChild1, ++/* 35875*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35878*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 35880*/ OPC_CheckType, MVT::i32, ++/* 35882*/ OPC_MoveParent, ++/* 35883*/ OPC_MoveChild2, ++/* 35884*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35887*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 35889*/ OPC_CheckType, MVT::i32, ++/* 35891*/ OPC_MoveParent, ++/* 35892*/ OPC_MoveChild3, ++/* 35893*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35896*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 35898*/ OPC_CheckType, MVT::i32, ++/* 35900*/ OPC_MoveParent, ++/* 35901*/ OPC_MoveParent, ++/* 35902*/ OPC_CheckType, MVT::v4i32, ++/* 35904*/ OPC_MoveParent, ++/* 35905*/ OPC_MoveParent, ++/* 35906*/ OPC_CheckType, MVT::v4i32, ++/* 35908*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 35910*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITREV_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (xor:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vs, (shl:{ *:[v4i32] } (build_vector:{ *:[v4i32] })<>, (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vt, (build_vector:{ *:[v4i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>)))) - Complexity = 32 ++ // Dst: (VBITREV_W:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vs, v4i32:{ *:[v4i32] }:$vt) ++/* 35918*/ /*Scope*/ 58, /*->35977*/ ++/* 35919*/ OPC_MoveChild0, ++/* 35920*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 35923*/ OPC_MoveChild0, ++/* 35924*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35927*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 35929*/ OPC_CheckType, MVT::i32, ++/* 35931*/ OPC_MoveParent, ++/* 35932*/ OPC_MoveChild1, ++/* 35933*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35936*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 35938*/ OPC_CheckType, MVT::i32, ++/* 35940*/ OPC_MoveParent, ++/* 35941*/ OPC_MoveChild2, ++/* 35942*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35945*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 35947*/ OPC_CheckType, MVT::i32, ++/* 35949*/ OPC_MoveParent, ++/* 35950*/ OPC_MoveChild3, ++/* 35951*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 35954*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 35956*/ OPC_CheckType, MVT::i32, ++/* 35958*/ OPC_MoveParent, ++/* 35959*/ OPC_MoveParent, ++/* 35960*/ OPC_RecordChild1, // #1 = $vt ++/* 35961*/ OPC_CheckType, MVT::v4i32, ++/* 35963*/ OPC_MoveParent, ++/* 35964*/ OPC_MoveParent, ++/* 35965*/ OPC_CheckType, MVT::v4i32, ++/* 35967*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 35969*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITREV_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (xor:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vs, (shl:{ *:[v4i32] } (build_vector:{ *:[v4i32] })<>, (and:{ *:[v4i32] } (build_vector:{ *:[v4i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v4i32:{ *:[v4i32] }:$vt))) - Complexity = 32 ++ // Dst: (VBITREV_W:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vs, v4i32:{ *:[v4i32] }:$vt) ++/* 35977*/ 0, /*End of Scope*/ ++/* 35978*/ /*Scope*/ 9|128,1/*137*/, /*->36117*/ ++/* 35980*/ OPC_MoveChild0, ++/* 35981*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 35984*/ OPC_MoveChild0, ++/* 35985*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 35988*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 35990*/ OPC_MoveParent, ++/* 35991*/ OPC_MoveChild1, ++/* 35992*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 35995*/ OPC_Scope, 59, /*->36056*/ // 2 children in Scope ++/* 35997*/ OPC_RecordChild0, // #0 = $vt ++/* 35998*/ OPC_MoveChild1, ++/* 35999*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 36002*/ OPC_MoveChild0, ++/* 36003*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 36006*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 36008*/ OPC_CheckType, MVT::i32, ++/* 36010*/ OPC_MoveParent, ++/* 36011*/ OPC_MoveChild1, ++/* 36012*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 36015*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 36017*/ OPC_CheckType, MVT::i32, ++/* 36019*/ OPC_MoveParent, ++/* 36020*/ OPC_MoveChild2, ++/* 36021*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 36024*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 36026*/ OPC_CheckType, MVT::i32, ++/* 36028*/ OPC_MoveParent, ++/* 36029*/ OPC_MoveChild3, ++/* 36030*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 36033*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 36035*/ OPC_CheckType, MVT::i32, ++/* 36037*/ OPC_MoveParent, ++/* 36038*/ OPC_MoveParent, ++/* 36039*/ OPC_CheckType, MVT::v4i32, ++/* 36041*/ OPC_MoveParent, ++/* 36042*/ OPC_MoveParent, ++/* 36043*/ OPC_RecordChild1, // #1 = $vs ++/* 36044*/ OPC_CheckType, MVT::v4i32, ++/* 36046*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 36048*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITREV_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (xor:{ *:[v4i32] } (shl:{ *:[v4i32] } (build_vector:{ *:[v4i32] })<>, (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vt, (build_vector:{ *:[v4i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))), v4i32:{ *:[v4i32] }:$vs) - Complexity = 32 ++ // Dst: (VBITREV_W:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vs, v4i32:{ *:[v4i32] }:$vt) ++/* 36056*/ /*Scope*/ 59, /*->36116*/ ++/* 36057*/ OPC_MoveChild0, ++/* 36058*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 36061*/ OPC_MoveChild0, ++/* 36062*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 36065*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 36067*/ OPC_CheckType, MVT::i32, ++/* 36069*/ OPC_MoveParent, ++/* 36070*/ OPC_MoveChild1, ++/* 36071*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 36074*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 36076*/ OPC_CheckType, MVT::i32, ++/* 36078*/ OPC_MoveParent, ++/* 36079*/ OPC_MoveChild2, ++/* 36080*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 36083*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 36085*/ OPC_CheckType, MVT::i32, ++/* 36087*/ OPC_MoveParent, ++/* 36088*/ OPC_MoveChild3, ++/* 36089*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 36092*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 36094*/ OPC_CheckType, MVT::i32, ++/* 36096*/ OPC_MoveParent, ++/* 36097*/ OPC_MoveParent, ++/* 36098*/ OPC_RecordChild1, // #0 = $vt ++/* 36099*/ OPC_CheckType, MVT::v4i32, ++/* 36101*/ OPC_MoveParent, ++/* 36102*/ OPC_MoveParent, ++/* 36103*/ OPC_RecordChild1, // #1 = $vs ++/* 36104*/ OPC_CheckType, MVT::v4i32, ++/* 36106*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 36108*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITREV_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (xor:{ *:[v4i32] } (shl:{ *:[v4i32] } (build_vector:{ *:[v4i32] })<>, (and:{ *:[v4i32] } (build_vector:{ *:[v4i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v4i32:{ *:[v4i32] }:$vt)), v4i32:{ *:[v4i32] }:$vs) - Complexity = 32 ++ // Dst: (VBITREV_W:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vs, v4i32:{ *:[v4i32] }:$vt) ++/* 36116*/ 0, /*End of Scope*/ ++/* 36117*/ /*Scope*/ 4|128,1/*132*/, /*->36251*/ ++/* 36119*/ OPC_RecordChild0, // #0 = $vs ++/* 36120*/ OPC_MoveChild1, ++/* 36121*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 36124*/ OPC_MoveChild0, ++/* 36125*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 36128*/ OPC_MoveChild0, ++/* 36129*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 36132*/ OPC_SwitchType /*2 cases */, 74, MVT::v4i32,// ->36209 ++/* 36135*/ OPC_MoveParent, ++/* 36136*/ OPC_CheckPredicate, 39, // Predicate_vsplati64_imm_eq_1 ++/* 36138*/ OPC_MoveParent, ++/* 36139*/ OPC_MoveChild1, ++/* 36140*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 36143*/ OPC_Scope, 31, /*->36176*/ // 2 children in Scope ++/* 36145*/ OPC_RecordChild0, // #1 = $vt ++/* 36146*/ OPC_MoveChild1, ++/* 36147*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 36150*/ OPC_MoveChild0, ++/* 36151*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 36154*/ OPC_CheckType, MVT::v4i32, ++/* 36156*/ OPC_MoveParent, ++/* 36157*/ OPC_CheckPredicate, 40, // Predicate_vsplati64_imm_eq_63 ++/* 36159*/ OPC_MoveParent, ++/* 36160*/ OPC_CheckType, MVT::v2i64, ++/* 36162*/ OPC_MoveParent, ++/* 36163*/ OPC_MoveParent, ++/* 36164*/ OPC_CheckType, MVT::v2i64, ++/* 36166*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 36168*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITREV_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (xor:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vs, (shl:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] }))<>, (and:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vt, (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] }))<>))) - Complexity = 23 ++ // Dst: (VBITREV_D:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vs, v2i64:{ *:[v2i64] }:$vt) ++/* 36176*/ /*Scope*/ 31, /*->36208*/ ++/* 36177*/ OPC_MoveChild0, ++/* 36178*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 36181*/ OPC_MoveChild0, ++/* 36182*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 36185*/ OPC_CheckType, MVT::v4i32, ++/* 36187*/ OPC_MoveParent, ++/* 36188*/ OPC_CheckPredicate, 40, // Predicate_vsplati64_imm_eq_63 ++/* 36190*/ OPC_MoveParent, ++/* 36191*/ OPC_RecordChild1, // #1 = $vt ++/* 36192*/ OPC_CheckType, MVT::v2i64, ++/* 36194*/ OPC_MoveParent, ++/* 36195*/ OPC_MoveParent, ++/* 36196*/ OPC_CheckType, MVT::v2i64, ++/* 36198*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 36200*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITREV_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (xor:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vs, (shl:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] }))<>, (and:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] }))<>, v2i64:{ *:[v2i64] }:$vt))) - Complexity = 23 ++ // Dst: (VBITREV_D:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vs, v2i64:{ *:[v2i64] }:$vt) ++/* 36208*/ 0, /*End of Scope*/ ++/* 36209*/ /*SwitchType*/ 39, MVT::v8i32,// ->36250 ++/* 36211*/ OPC_MoveParent, ++/* 36212*/ OPC_CheckPredicate, 39, // Predicate_xvsplati64_imm_eq_1 ++/* 36214*/ OPC_MoveParent, ++/* 36215*/ OPC_MoveChild1, ++/* 36216*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 36219*/ OPC_RecordChild0, // #1 = $vt ++/* 36220*/ OPC_MoveChild1, ++/* 36221*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 36224*/ OPC_MoveChild0, ++/* 36225*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 36228*/ OPC_CheckType, MVT::v8i32, ++/* 36230*/ OPC_MoveParent, ++/* 36231*/ OPC_CheckPredicate, 40, // Predicate_xvsplati64_imm_eq_63 ++/* 36233*/ OPC_MoveParent, ++/* 36234*/ OPC_CheckType, MVT::v4i64, ++/* 36236*/ OPC_MoveParent, ++/* 36237*/ OPC_MoveParent, ++/* 36238*/ OPC_CheckType, MVT::v4i64, ++/* 36240*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 36242*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITREV_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (xor:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vs, (shl:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] }))<>, (and:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vt, (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] }))<>))) - Complexity = 23 ++ // Dst: (XVBITREV_D:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vs, v4i64:{ *:[v4i64] }:$vt) ++/* 36250*/ 0, // EndSwitchType ++/* 36251*/ /*Scope*/ 90, /*->36342*/ ++/* 36252*/ OPC_MoveChild0, ++/* 36253*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 36256*/ OPC_MoveChild0, ++/* 36257*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 36260*/ OPC_MoveChild0, ++/* 36261*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 36264*/ OPC_CheckType, MVT::v4i32, ++/* 36266*/ OPC_MoveParent, ++/* 36267*/ OPC_CheckPredicate, 39, // Predicate_vsplati64_imm_eq_1 ++/* 36269*/ OPC_MoveParent, ++/* 36270*/ OPC_MoveChild1, ++/* 36271*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 36274*/ OPC_Scope, 32, /*->36308*/ // 2 children in Scope ++/* 36276*/ OPC_RecordChild0, // #0 = $vt ++/* 36277*/ OPC_MoveChild1, ++/* 36278*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 36281*/ OPC_MoveChild0, ++/* 36282*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 36285*/ OPC_CheckType, MVT::v4i32, ++/* 36287*/ OPC_MoveParent, ++/* 36288*/ OPC_CheckPredicate, 40, // Predicate_vsplati64_imm_eq_63 ++/* 36290*/ OPC_MoveParent, ++/* 36291*/ OPC_CheckType, MVT::v2i64, ++/* 36293*/ OPC_MoveParent, ++/* 36294*/ OPC_MoveParent, ++/* 36295*/ OPC_RecordChild1, // #1 = $vs ++/* 36296*/ OPC_CheckType, MVT::v2i64, ++/* 36298*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 36300*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITREV_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (xor:{ *:[v2i64] } (shl:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] }))<>, (and:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vt, (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] }))<>)), v2i64:{ *:[v2i64] }:$vs) - Complexity = 23 ++ // Dst: (VBITREV_D:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vs, v2i64:{ *:[v2i64] }:$vt) ++/* 36308*/ /*Scope*/ 32, /*->36341*/ ++/* 36309*/ OPC_MoveChild0, ++/* 36310*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 36313*/ OPC_MoveChild0, ++/* 36314*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 36317*/ OPC_CheckType, MVT::v4i32, ++/* 36319*/ OPC_MoveParent, ++/* 36320*/ OPC_CheckPredicate, 40, // Predicate_vsplati64_imm_eq_63 ++/* 36322*/ OPC_MoveParent, ++/* 36323*/ OPC_RecordChild1, // #0 = $vt ++/* 36324*/ OPC_CheckType, MVT::v2i64, ++/* 36326*/ OPC_MoveParent, ++/* 36327*/ OPC_MoveParent, ++/* 36328*/ OPC_RecordChild1, // #1 = $vs ++/* 36329*/ OPC_CheckType, MVT::v2i64, ++/* 36331*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 36333*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITREV_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (xor:{ *:[v2i64] } (shl:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] }))<>, (and:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] }))<>, v2i64:{ *:[v2i64] }:$vt)), v2i64:{ *:[v2i64] }:$vs) - Complexity = 23 ++ // Dst: (VBITREV_D:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vs, v2i64:{ *:[v2i64] }:$vt) ++/* 36341*/ 0, /*End of Scope*/ ++/* 36342*/ /*Scope*/ 54, /*->36397*/ ++/* 36343*/ OPC_RecordChild0, // #0 = $vs ++/* 36344*/ OPC_MoveChild1, ++/* 36345*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 36348*/ OPC_MoveChild0, ++/* 36349*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 36352*/ OPC_MoveChild0, ++/* 36353*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 36356*/ OPC_CheckType, MVT::v8i32, ++/* 36358*/ OPC_MoveParent, ++/* 36359*/ OPC_CheckPredicate, 39, // Predicate_xvsplati64_imm_eq_1 ++/* 36361*/ OPC_MoveParent, ++/* 36362*/ OPC_MoveChild1, ++/* 36363*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 36366*/ OPC_MoveChild0, ++/* 36367*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 36370*/ OPC_MoveChild0, ++/* 36371*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 36374*/ OPC_CheckType, MVT::v8i32, ++/* 36376*/ OPC_MoveParent, ++/* 36377*/ OPC_CheckPredicate, 40, // Predicate_xvsplati64_imm_eq_63 ++/* 36379*/ OPC_MoveParent, ++/* 36380*/ OPC_RecordChild1, // #1 = $vt ++/* 36381*/ OPC_CheckType, MVT::v4i64, ++/* 36383*/ OPC_MoveParent, ++/* 36384*/ OPC_MoveParent, ++/* 36385*/ OPC_CheckType, MVT::v4i64, ++/* 36387*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 36389*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITREV_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (xor:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vs, (shl:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] }))<>, (and:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] }))<>, v4i64:{ *:[v4i64] }:$vt))) - Complexity = 23 ++ // Dst: (XVBITREV_D:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vs, v4i64:{ *:[v4i64] }:$vt) ++/* 36397*/ /*Scope*/ 90, /*->36488*/ ++/* 36398*/ OPC_MoveChild0, ++/* 36399*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 36402*/ OPC_MoveChild0, ++/* 36403*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 36406*/ OPC_MoveChild0, ++/* 36407*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 36410*/ OPC_CheckType, MVT::v8i32, ++/* 36412*/ OPC_MoveParent, ++/* 36413*/ OPC_CheckPredicate, 39, // Predicate_xvsplati64_imm_eq_1 ++/* 36415*/ OPC_MoveParent, ++/* 36416*/ OPC_MoveChild1, ++/* 36417*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 36420*/ OPC_Scope, 32, /*->36454*/ // 2 children in Scope ++/* 36422*/ OPC_RecordChild0, // #0 = $vt ++/* 36423*/ OPC_MoveChild1, ++/* 36424*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 36427*/ OPC_MoveChild0, ++/* 36428*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 36431*/ OPC_CheckType, MVT::v8i32, ++/* 36433*/ OPC_MoveParent, ++/* 36434*/ OPC_CheckPredicate, 40, // Predicate_xvsplati64_imm_eq_63 ++/* 36436*/ OPC_MoveParent, ++/* 36437*/ OPC_CheckType, MVT::v4i64, ++/* 36439*/ OPC_MoveParent, ++/* 36440*/ OPC_MoveParent, ++/* 36441*/ OPC_RecordChild1, // #1 = $vs ++/* 36442*/ OPC_CheckType, MVT::v4i64, ++/* 36444*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 36446*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITREV_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (xor:{ *:[v4i64] } (shl:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] }))<>, (and:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vt, (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] }))<>)), v4i64:{ *:[v4i64] }:$vs) - Complexity = 23 ++ // Dst: (XVBITREV_D:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vs, v4i64:{ *:[v4i64] }:$vt) ++/* 36454*/ /*Scope*/ 32, /*->36487*/ ++/* 36455*/ OPC_MoveChild0, ++/* 36456*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 36459*/ OPC_MoveChild0, ++/* 36460*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 36463*/ OPC_CheckType, MVT::v8i32, ++/* 36465*/ OPC_MoveParent, ++/* 36466*/ OPC_CheckPredicate, 40, // Predicate_xvsplati64_imm_eq_63 ++/* 36468*/ OPC_MoveParent, ++/* 36469*/ OPC_RecordChild1, // #0 = $vt ++/* 36470*/ OPC_CheckType, MVT::v4i64, ++/* 36472*/ OPC_MoveParent, ++/* 36473*/ OPC_MoveParent, ++/* 36474*/ OPC_RecordChild1, // #1 = $vs ++/* 36475*/ OPC_CheckType, MVT::v4i64, ++/* 36477*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 36479*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITREV_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (xor:{ *:[v4i64] } (shl:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] }))<>, (and:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] }))<>, v4i64:{ *:[v4i64] }:$vt)), v4i64:{ *:[v4i64] }:$vs) - Complexity = 23 ++ // Dst: (XVBITREV_D:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vs, v4i64:{ *:[v4i64] }:$vt) ++/* 36487*/ 0, /*End of Scope*/ ++/* 36488*/ /*Scope*/ 101, /*->36590*/ ++/* 36489*/ OPC_RecordChild0, // #0 = $vj ++/* 36490*/ OPC_MoveChild1, ++/* 36491*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 36494*/ OPC_MoveChild0, ++/* 36495*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 36498*/ OPC_SwitchType /*2 cases */, 43, MVT::i32,// ->36544 ++/* 36501*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 36503*/ OPC_MoveParent, ++/* 36504*/ OPC_MoveChild1, ++/* 36505*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 36508*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 36510*/ OPC_CheckType, MVT::i32, ++/* 36512*/ OPC_MoveParent, ++/* 36513*/ OPC_MoveChild2, ++/* 36514*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 36517*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 36519*/ OPC_CheckType, MVT::i32, ++/* 36521*/ OPC_MoveParent, ++/* 36522*/ OPC_MoveChild3, ++/* 36523*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 36526*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 36528*/ OPC_CheckType, MVT::i32, ++/* 36530*/ OPC_MoveParent, ++/* 36531*/ OPC_MoveParent, ++/* 36532*/ OPC_CheckType, MVT::v4i32, ++/* 36534*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 36536*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::NOR_V_W_PSEUDO), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 0, ++ // Src: (xor:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vj, (build_vector:{ *:[v4i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>)) - Complexity = 22 ++ // Dst: (NOR_V_W_PSEUDO:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vj) ++/* 36544*/ /*SwitchType*/ 43, MVT::i64,// ->36589 ++/* 36546*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 36548*/ OPC_MoveParent, ++/* 36549*/ OPC_MoveChild1, ++/* 36550*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 36553*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 36555*/ OPC_CheckType, MVT::i64, ++/* 36557*/ OPC_MoveParent, ++/* 36558*/ OPC_MoveChild2, ++/* 36559*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 36562*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 36564*/ OPC_CheckType, MVT::i64, ++/* 36566*/ OPC_MoveParent, ++/* 36567*/ OPC_MoveChild3, ++/* 36568*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 36571*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 36573*/ OPC_CheckType, MVT::i64, ++/* 36575*/ OPC_MoveParent, ++/* 36576*/ OPC_MoveParent, ++/* 36577*/ OPC_CheckType, MVT::v4i64, ++/* 36579*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 36581*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XNOR_V_D_PSEUDO), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 0, ++ // Src: (xor:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$xj, (build_vector:{ *:[v4i64] } (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>)) - Complexity = 22 ++ // Dst: (XNOR_V_D_PSEUDO:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xj) ++/* 36589*/ 0, // EndSwitchType ++/* 36590*/ /*Scope*/ 102, /*->36693*/ ++/* 36591*/ OPC_MoveChild0, ++/* 36592*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 36595*/ OPC_MoveChild0, ++/* 36596*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 36599*/ OPC_SwitchType /*2 cases */, 44, MVT::i32,// ->36646 ++/* 36602*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 36604*/ OPC_MoveParent, ++/* 36605*/ OPC_MoveChild1, ++/* 36606*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 36609*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 36611*/ OPC_CheckType, MVT::i32, ++/* 36613*/ OPC_MoveParent, ++/* 36614*/ OPC_MoveChild2, ++/* 36615*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 36618*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 36620*/ OPC_CheckType, MVT::i32, ++/* 36622*/ OPC_MoveParent, ++/* 36623*/ OPC_MoveChild3, ++/* 36624*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 36627*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 36629*/ OPC_CheckType, MVT::i32, ++/* 36631*/ OPC_MoveParent, ++/* 36632*/ OPC_MoveParent, ++/* 36633*/ OPC_RecordChild1, // #0 = $vj ++/* 36634*/ OPC_CheckType, MVT::v4i32, ++/* 36636*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 36638*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::NOR_V_W_PSEUDO), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 0, ++ // Src: (xor:{ *:[v4i32] } (build_vector:{ *:[v4i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), LSX128W:{ *:[v4i32] }:$vj) - Complexity = 22 ++ // Dst: (NOR_V_W_PSEUDO:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vj) ++/* 36646*/ /*SwitchType*/ 44, MVT::i64,// ->36692 ++/* 36648*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 36650*/ OPC_MoveParent, ++/* 36651*/ OPC_MoveChild1, ++/* 36652*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 36655*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 36657*/ OPC_CheckType, MVT::i64, ++/* 36659*/ OPC_MoveParent, ++/* 36660*/ OPC_MoveChild2, ++/* 36661*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 36664*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 36666*/ OPC_CheckType, MVT::i64, ++/* 36668*/ OPC_MoveParent, ++/* 36669*/ OPC_MoveChild3, ++/* 36670*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 36673*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 36675*/ OPC_CheckType, MVT::i64, ++/* 36677*/ OPC_MoveParent, ++/* 36678*/ OPC_MoveParent, ++/* 36679*/ OPC_RecordChild1, // #0 = $xj ++/* 36680*/ OPC_CheckType, MVT::v4i64, ++/* 36682*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 36684*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XNOR_V_D_PSEUDO), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 0, ++ // Src: (xor:{ *:[v4i64] } (build_vector:{ *:[v4i64] } (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>), LASX256D:{ *:[v4i64] }:$xj) - Complexity = 22 ++ // Dst: (XNOR_V_D_PSEUDO:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xj) ++/* 36692*/ 0, // EndSwitchType ++/* 36693*/ /*Scope*/ 36, /*->36730*/ ++/* 36694*/ OPC_RecordChild0, // #0 = $vj ++/* 36695*/ OPC_MoveChild1, ++/* 36696*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 36699*/ OPC_MoveChild0, ++/* 36700*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 36703*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 36705*/ OPC_CheckType, MVT::i64, ++/* 36707*/ OPC_MoveParent, ++/* 36708*/ OPC_MoveChild1, ++/* 36709*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 36712*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 36714*/ OPC_CheckType, MVT::i64, ++/* 36716*/ OPC_MoveParent, ++/* 36717*/ OPC_MoveParent, ++/* 36718*/ OPC_CheckType, MVT::v2i64, ++/* 36720*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 36722*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::NOR_V_D_PSEUDO), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 0, ++ // Src: (xor:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vj, (build_vector:{ *:[v2i64] } (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>)) - Complexity = 14 ++ // Dst: (NOR_V_D_PSEUDO:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vj, LSX128D:{ *:[v2i64] }:$vj) ++/* 36730*/ /*Scope*/ 36, /*->36767*/ ++/* 36731*/ OPC_MoveChild0, ++/* 36732*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 36735*/ OPC_MoveChild0, ++/* 36736*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 36739*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 36741*/ OPC_CheckType, MVT::i64, ++/* 36743*/ OPC_MoveParent, ++/* 36744*/ OPC_MoveChild1, ++/* 36745*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 36748*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 36750*/ OPC_CheckType, MVT::i64, ++/* 36752*/ OPC_MoveParent, ++/* 36753*/ OPC_MoveParent, ++/* 36754*/ OPC_RecordChild1, // #0 = $vj ++/* 36755*/ OPC_CheckType, MVT::v2i64, ++/* 36757*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 36759*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::NOR_V_D_PSEUDO), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 0, ++ // Src: (xor:{ *:[v2i64] } (build_vector:{ *:[v2i64] } (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>), LSX128D:{ *:[v2i64] }:$vj) - Complexity = 14 ++ // Dst: (NOR_V_D_PSEUDO:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vj, LSX128D:{ *:[v2i64] }:$vj) ++/* 36767*/ /*Scope*/ 59, /*->36827*/ ++/* 36768*/ OPC_RecordChild0, // #0 = $vj ++/* 36769*/ OPC_MoveChild1, ++/* 36770*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 36773*/ OPC_MoveChild0, ++/* 36774*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 36777*/ OPC_MoveChild0, ++/* 36778*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 36781*/ OPC_SwitchType /*2 cases */, 20, MVT::v4i32,// ->36804 ++/* 36784*/ OPC_MoveParent, ++/* 36785*/ OPC_CheckPredicate, 39, // Predicate_vsplati64_imm_eq_1 ++/* 36787*/ OPC_MoveParent, ++/* 36788*/ OPC_RecordChild1, // #1 = $vk ++/* 36789*/ OPC_CheckChild1Type, MVT::v2i64, ++/* 36791*/ OPC_MoveParent, ++/* 36792*/ OPC_CheckType, MVT::v2i64, ++/* 36794*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 36796*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITREV_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (xor:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vj, (shl:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] }))<>, v2i64:{ *:[v2i64] }:$vk)) - Complexity = 13 ++ // Dst: (VBITREV_D:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vj, v2i64:{ *:[v2i64] }:$vk) ++/* 36804*/ /*SwitchType*/ 20, MVT::v8i32,// ->36826 ++/* 36806*/ OPC_MoveParent, ++/* 36807*/ OPC_CheckPredicate, 39, // Predicate_xvsplati64_imm_eq_1 ++/* 36809*/ OPC_MoveParent, ++/* 36810*/ OPC_RecordChild1, // #1 = $vk ++/* 36811*/ OPC_CheckChild1Type, MVT::v4i64, ++/* 36813*/ OPC_MoveParent, ++/* 36814*/ OPC_CheckType, MVT::v4i64, ++/* 36816*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 36818*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITREV_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (xor:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vj, (shl:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] }))<>, v4i64:{ *:[v4i64] }:$vk)) - Complexity = 13 ++ // Dst: (XVBITREV_D:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vj, v4i64:{ *:[v4i64] }:$vk) ++/* 36826*/ 0, // EndSwitchType ++/* 36827*/ /*Scope*/ 60, /*->36888*/ ++/* 36828*/ OPC_MoveChild0, ++/* 36829*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 36832*/ OPC_MoveChild0, ++/* 36833*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 36836*/ OPC_MoveChild0, ++/* 36837*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 36840*/ OPC_SwitchType /*2 cases */, 21, MVT::v4i32,// ->36864 ++/* 36843*/ OPC_MoveParent, ++/* 36844*/ OPC_CheckPredicate, 39, // Predicate_vsplati64_imm_eq_1 ++/* 36846*/ OPC_MoveParent, ++/* 36847*/ OPC_RecordChild1, // #0 = $vk ++/* 36848*/ OPC_CheckChild1Type, MVT::v2i64, ++/* 36850*/ OPC_MoveParent, ++/* 36851*/ OPC_RecordChild1, // #1 = $vj ++/* 36852*/ OPC_CheckType, MVT::v2i64, ++/* 36854*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 36856*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITREV_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (xor:{ *:[v2i64] } (shl:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] }))<>, v2i64:{ *:[v2i64] }:$vk), v2i64:{ *:[v2i64] }:$vj) - Complexity = 13 ++ // Dst: (VBITREV_D:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vj, v2i64:{ *:[v2i64] }:$vk) ++/* 36864*/ /*SwitchType*/ 21, MVT::v8i32,// ->36887 ++/* 36866*/ OPC_MoveParent, ++/* 36867*/ OPC_CheckPredicate, 39, // Predicate_xvsplati64_imm_eq_1 ++/* 36869*/ OPC_MoveParent, ++/* 36870*/ OPC_RecordChild1, // #0 = $vk ++/* 36871*/ OPC_CheckChild1Type, MVT::v4i64, ++/* 36873*/ OPC_MoveParent, ++/* 36874*/ OPC_RecordChild1, // #1 = $vj ++/* 36875*/ OPC_CheckType, MVT::v4i64, ++/* 36877*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 36879*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITREV_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (xor:{ *:[v4i64] } (shl:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] }))<>, v4i64:{ *:[v4i64] }:$vk), v4i64:{ *:[v4i64] }:$vj) - Complexity = 13 ++ // Dst: (XVBITREV_D:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vj, v4i64:{ *:[v4i64] }:$vk) ++/* 36887*/ 0, // EndSwitchType ++/* 36888*/ /*Scope*/ 121, /*->37010*/ ++/* 36889*/ OPC_RecordChild0, // #0 = $vj ++/* 36890*/ OPC_MoveChild1, ++/* 36891*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 36894*/ OPC_MoveChild0, ++/* 36895*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 36898*/ OPC_Scope, 54, /*->36954*/ // 2 children in Scope ++/* 36900*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 36902*/ OPC_MoveParent, ++/* 36903*/ OPC_RecordChild1, // #1 = $vk ++/* 36904*/ OPC_Scope, 15, /*->36921*/ // 3 children in Scope ++/* 36906*/ OPC_CheckChild1Type, MVT::v16i8, ++/* 36908*/ OPC_MoveParent, ++/* 36909*/ OPC_CheckType, MVT::v16i8, ++/* 36911*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 36913*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITREV_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (xor:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vj, (shl:{ *:[v16i8] } (build_vector:{ *:[v16i8] })<>, v16i8:{ *:[v16i8] }:$vk)) - Complexity = 10 ++ // Dst: (VBITREV_B:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vj, v16i8:{ *:[v16i8] }:$vk) ++/* 36921*/ /*Scope*/ 15, /*->36937*/ ++/* 36922*/ OPC_CheckChild1Type, MVT::v8i16, ++/* 36924*/ OPC_MoveParent, ++/* 36925*/ OPC_CheckType, MVT::v8i16, ++/* 36927*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 36929*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITREV_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (xor:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vj, (shl:{ *:[v8i16] } (build_vector:{ *:[v8i16] })<>, v8i16:{ *:[v8i16] }:$vk)) - Complexity = 10 ++ // Dst: (VBITREV_H:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vj, v8i16:{ *:[v8i16] }:$vk) ++/* 36937*/ /*Scope*/ 15, /*->36953*/ ++/* 36938*/ OPC_CheckChild1Type, MVT::v4i32, ++/* 36940*/ OPC_MoveParent, ++/* 36941*/ OPC_CheckType, MVT::v4i32, ++/* 36943*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 36945*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITREV_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (xor:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vj, (shl:{ *:[v4i32] } (build_vector:{ *:[v4i32] })<>, v4i32:{ *:[v4i32] }:$vk)) - Complexity = 10 ++ // Dst: (VBITREV_W:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vj, v4i32:{ *:[v4i32] }:$vk) ++/* 36953*/ 0, /*End of Scope*/ ++/* 36954*/ /*Scope*/ 54, /*->37009*/ ++/* 36955*/ OPC_CheckPredicate, 42, // Predicate_xvsplat_imm_eq_1 ++/* 36957*/ OPC_MoveParent, ++/* 36958*/ OPC_RecordChild1, // #1 = $vk ++/* 36959*/ OPC_Scope, 15, /*->36976*/ // 3 children in Scope ++/* 36961*/ OPC_CheckChild1Type, MVT::v32i8, ++/* 36963*/ OPC_MoveParent, ++/* 36964*/ OPC_CheckType, MVT::v32i8, ++/* 36966*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 36968*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITREV_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (xor:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vj, (shl:{ *:[v32i8] } (build_vector:{ *:[v32i8] })<>, v32i8:{ *:[v32i8] }:$vk)) - Complexity = 10 ++ // Dst: (XVBITREV_B:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vj, v32i8:{ *:[v32i8] }:$vk) ++/* 36976*/ /*Scope*/ 15, /*->36992*/ ++/* 36977*/ OPC_CheckChild1Type, MVT::v16i16, ++/* 36979*/ OPC_MoveParent, ++/* 36980*/ OPC_CheckType, MVT::v16i16, ++/* 36982*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 36984*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITREV_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (xor:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vj, (shl:{ *:[v16i16] } (build_vector:{ *:[v16i16] })<>, v16i16:{ *:[v16i16] }:$vk)) - Complexity = 10 ++ // Dst: (XVBITREV_H:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vj, v16i16:{ *:[v16i16] }:$vk) ++/* 36992*/ /*Scope*/ 15, /*->37008*/ ++/* 36993*/ OPC_CheckChild1Type, MVT::v8i32, ++/* 36995*/ OPC_MoveParent, ++/* 36996*/ OPC_CheckType, MVT::v8i32, ++/* 36998*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 37000*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITREV_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (xor:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vj, (shl:{ *:[v8i32] } (build_vector:{ *:[v8i32] })<>, v8i32:{ *:[v8i32] }:$vk)) - Complexity = 10 ++ // Dst: (XVBITREV_W:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vj, v8i32:{ *:[v8i32] }:$vk) ++/* 37008*/ 0, /*End of Scope*/ ++/* 37009*/ 0, /*End of Scope*/ ++/* 37010*/ /*Scope*/ 126, /*->37137*/ ++/* 37011*/ OPC_MoveChild0, ++/* 37012*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 37015*/ OPC_MoveChild0, ++/* 37016*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 37019*/ OPC_Scope, 57, /*->37078*/ // 2 children in Scope ++/* 37021*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 37023*/ OPC_MoveParent, ++/* 37024*/ OPC_RecordChild1, // #0 = $vk ++/* 37025*/ OPC_Scope, 16, /*->37043*/ // 3 children in Scope ++/* 37027*/ OPC_CheckChild1Type, MVT::v16i8, ++/* 37029*/ OPC_MoveParent, ++/* 37030*/ OPC_RecordChild1, // #1 = $vj ++/* 37031*/ OPC_CheckType, MVT::v16i8, ++/* 37033*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 37035*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITREV_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (xor:{ *:[v16i8] } (shl:{ *:[v16i8] } (build_vector:{ *:[v16i8] })<>, v16i8:{ *:[v16i8] }:$vk), v16i8:{ *:[v16i8] }:$vj) - Complexity = 10 ++ // Dst: (VBITREV_B:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vj, v16i8:{ *:[v16i8] }:$vk) ++/* 37043*/ /*Scope*/ 16, /*->37060*/ ++/* 37044*/ OPC_CheckChild1Type, MVT::v8i16, ++/* 37046*/ OPC_MoveParent, ++/* 37047*/ OPC_RecordChild1, // #1 = $vj ++/* 37048*/ OPC_CheckType, MVT::v8i16, ++/* 37050*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 37052*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITREV_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (xor:{ *:[v8i16] } (shl:{ *:[v8i16] } (build_vector:{ *:[v8i16] })<>, v8i16:{ *:[v8i16] }:$vk), v8i16:{ *:[v8i16] }:$vj) - Complexity = 10 ++ // Dst: (VBITREV_H:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vj, v8i16:{ *:[v8i16] }:$vk) ++/* 37060*/ /*Scope*/ 16, /*->37077*/ ++/* 37061*/ OPC_CheckChild1Type, MVT::v4i32, ++/* 37063*/ OPC_MoveParent, ++/* 37064*/ OPC_RecordChild1, // #1 = $vj ++/* 37065*/ OPC_CheckType, MVT::v4i32, ++/* 37067*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 37069*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITREV_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (xor:{ *:[v4i32] } (shl:{ *:[v4i32] } (build_vector:{ *:[v4i32] })<>, v4i32:{ *:[v4i32] }:$vk), v4i32:{ *:[v4i32] }:$vj) - Complexity = 10 ++ // Dst: (VBITREV_W:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vj, v4i32:{ *:[v4i32] }:$vk) ++/* 37077*/ 0, /*End of Scope*/ ++/* 37078*/ /*Scope*/ 57, /*->37136*/ ++/* 37079*/ OPC_CheckPredicate, 42, // Predicate_xvsplat_imm_eq_1 ++/* 37081*/ OPC_MoveParent, ++/* 37082*/ OPC_RecordChild1, // #0 = $vk ++/* 37083*/ OPC_Scope, 16, /*->37101*/ // 3 children in Scope ++/* 37085*/ OPC_CheckChild1Type, MVT::v32i8, ++/* 37087*/ OPC_MoveParent, ++/* 37088*/ OPC_RecordChild1, // #1 = $vj ++/* 37089*/ OPC_CheckType, MVT::v32i8, ++/* 37091*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 37093*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITREV_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (xor:{ *:[v32i8] } (shl:{ *:[v32i8] } (build_vector:{ *:[v32i8] })<>, v32i8:{ *:[v32i8] }:$vk), v32i8:{ *:[v32i8] }:$vj) - Complexity = 10 ++ // Dst: (XVBITREV_B:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vj, v32i8:{ *:[v32i8] }:$vk) ++/* 37101*/ /*Scope*/ 16, /*->37118*/ ++/* 37102*/ OPC_CheckChild1Type, MVT::v16i16, ++/* 37104*/ OPC_MoveParent, ++/* 37105*/ OPC_RecordChild1, // #1 = $vj ++/* 37106*/ OPC_CheckType, MVT::v16i16, ++/* 37108*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 37110*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITREV_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (xor:{ *:[v16i16] } (shl:{ *:[v16i16] } (build_vector:{ *:[v16i16] })<>, v16i16:{ *:[v16i16] }:$vk), v16i16:{ *:[v16i16] }:$vj) - Complexity = 10 ++ // Dst: (XVBITREV_H:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vj, v16i16:{ *:[v16i16] }:$vk) ++/* 37118*/ /*Scope*/ 16, /*->37135*/ ++/* 37119*/ OPC_CheckChild1Type, MVT::v8i32, ++/* 37121*/ OPC_MoveParent, ++/* 37122*/ OPC_RecordChild1, // #1 = $vj ++/* 37123*/ OPC_CheckType, MVT::v8i32, ++/* 37125*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 37127*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITREV_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (xor:{ *:[v8i32] } (shl:{ *:[v8i32] } (build_vector:{ *:[v8i32] })<>, v8i32:{ *:[v8i32] }:$vk), v8i32:{ *:[v8i32] }:$vj) - Complexity = 10 ++ // Dst: (XVBITREV_W:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vj, v8i32:{ *:[v8i32] }:$vk) ++/* 37135*/ 0, /*End of Scope*/ ++/* 37136*/ 0, /*End of Scope*/ ++/* 37137*/ /*Scope*/ 22|128,1/*150*/, /*->37289*/ ++/* 37139*/ OPC_RecordChild0, // #0 = $vj ++/* 37140*/ OPC_RecordChild1, // #1 = $ui8 ++/* 37141*/ OPC_SwitchType /*8 cases */, 35, MVT::v16i8,// ->37179 ++/* 37144*/ OPC_Scope, 11, /*->37157*/ // 3 children in Scope ++/* 37146*/ OPC_CheckComplexPat, /*CP*/21, /*#*/1, // selectVSplatUimm8:$ui8 #2 ++/* 37149*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VXORI_B_N), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 2, ++ // Src: (xor:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, vsplati8_uimm8:{ *:[v16i8] }:$ui8) - Complexity = 9 ++ // Dst: (VXORI_B_N:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, vsplati8_uimm8:{ *:[v16i8] }:$ui8) ++/* 37157*/ /*Scope*/ 11, /*->37169*/ ++/* 37158*/ OPC_CheckComplexPat, /*CP*/21, /*#*/0, // selectVSplatUimm8:$ui8 #2 ++/* 37161*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VXORI_B_N), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 2, ++ // Src: (xor:{ *:[v16i8] } vsplati8_uimm8:{ *:[v16i8] }:$ui8, LSX128BOpnd:{ *:[v16i8] }:$vj) - Complexity = 9 ++ // Dst: (VXORI_B_N:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, vsplati8_uimm8:{ *:[v16i8] }:$ui8) ++/* 37169*/ /*Scope*/ 8, /*->37178*/ ++/* 37170*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VXOR_V), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (xor:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) - Complexity = 3 ++ // Dst: (VXOR_V:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/* 37178*/ 0, /*End of Scope*/ ++/* 37179*/ /*SwitchType*/ 35, MVT::v32i8,// ->37216 ++/* 37181*/ OPC_Scope, 11, /*->37194*/ // 3 children in Scope ++/* 37183*/ OPC_CheckComplexPat, /*CP*/22, /*#*/1, // selectVSplatUimm8:$ui8 #2 ++/* 37186*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVXORI_B_N), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 2, ++ // Src: (xor:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, xvsplati8_uimm8:{ *:[v32i8] }:$ui8) - Complexity = 9 ++ // Dst: (XVXORI_B_N:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, xvsplati8_uimm8:{ *:[v32i8] }:$ui8) ++/* 37194*/ /*Scope*/ 11, /*->37206*/ ++/* 37195*/ OPC_CheckComplexPat, /*CP*/22, /*#*/0, // selectVSplatUimm8:$ui8 #2 ++/* 37198*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVXORI_B_N), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 2, ++ // Src: (xor:{ *:[v32i8] } xvsplati8_uimm8:{ *:[v32i8] }:$ui8, LASX256BOpnd:{ *:[v32i8] }:$xj) - Complexity = 9 ++ // Dst: (XVXORI_B_N:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, xvsplati8_uimm8:{ *:[v32i8] }:$ui8) ++/* 37206*/ /*Scope*/ 8, /*->37215*/ ++/* 37207*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVXOR_V), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (xor:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 3 ++ // Dst: (XVXOR_V:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 37215*/ 0, /*End of Scope*/ ++/* 37216*/ /*SwitchType*/ 10, MVT::v8i16,// ->37228 ++/* 37218*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 37220*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XOR_V_H_PSEUDO), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (xor:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 3 ++ // Dst: (XOR_V_H_PSEUDO:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/* 37228*/ /*SwitchType*/ 10, MVT::v4i32,// ->37240 ++/* 37230*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 37232*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XOR_V_W_PSEUDO), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (xor:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 3 ++ // Dst: (XOR_V_W_PSEUDO:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/* 37240*/ /*SwitchType*/ 10, MVT::v2i64,// ->37252 ++/* 37242*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 37244*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XOR_V_D_PSEUDO), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (xor:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 3 ++ // Dst: (XOR_V_D_PSEUDO:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 37252*/ /*SwitchType*/ 10, MVT::v16i16,// ->37264 ++/* 37254*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 37256*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XXOR_V_H_PSEUDO), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (xor:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 3 ++ // Dst: (XXOR_V_H_PSEUDO:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 37264*/ /*SwitchType*/ 10, MVT::v8i32,// ->37276 ++/* 37266*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 37268*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XXOR_V_W_PSEUDO), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (xor:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 3 ++ // Dst: (XXOR_V_W_PSEUDO:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 37276*/ /*SwitchType*/ 10, MVT::v4i64,// ->37288 ++/* 37278*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 37280*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XXOR_V_D_PSEUDO), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (xor:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 3 ++ // Dst: (XXOR_V_D_PSEUDO:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 37288*/ 0, // EndSwitchType ++/* 37289*/ 0, /*End of Scope*/ ++/* 37290*/ /*SwitchOpcode*/ 66, TARGET_VAL(LoongArchISD::BSTRINS),// ->37359 ++/* 37293*/ OPC_RecordChild0, // #0 = $rj ++/* 37294*/ OPC_RecordChild1, // #1 = $msbd ++/* 37295*/ OPC_MoveChild1, ++/* 37296*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 37299*/ OPC_Scope, 28, /*->37329*/ // 2 children in Scope ++/* 37301*/ OPC_CheckPredicate, 43, // Predicate_uimm6 ++/* 37303*/ OPC_MoveParent, ++/* 37304*/ OPC_RecordChild2, // #2 = $lsbd ++/* 37305*/ OPC_MoveChild2, ++/* 37306*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 37309*/ OPC_CheckPredicate, 43, // Predicate_uimm6 ++/* 37311*/ OPC_MoveParent, ++/* 37312*/ OPC_RecordChild3, // #3 = $src ++/* 37313*/ OPC_CheckType, MVT::i64, ++/* 37315*/ OPC_EmitConvertToTarget, 1, ++/* 37317*/ OPC_EmitConvertToTarget, 2, ++/* 37319*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::BSTRINS_D), 0, ++ MVT::i64, 4/*#Ops*/, 0, 4, 5, 3, ++ // Src: (LoongArchBstrins:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, (imm:{ *:[i32] })<>:$msbd, (imm:{ *:[i32] })<>:$lsbd, GPR64Opnd:{ *:[i64] }:$src) - Complexity = 11 ++ // Dst: (BSTRINS_D:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, (imm:{ *:[i32] }):$msbd, (imm:{ *:[i32] }):$lsbd, GPR64Opnd:{ *:[i64] }:$src) ++/* 37329*/ /*Scope*/ 28, /*->37358*/ ++/* 37330*/ OPC_CheckPredicate, 20, // Predicate_uimm5 ++/* 37332*/ OPC_MoveParent, ++/* 37333*/ OPC_RecordChild2, // #2 = $lsbw ++/* 37334*/ OPC_MoveChild2, ++/* 37335*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 37338*/ OPC_CheckPredicate, 20, // Predicate_uimm5 ++/* 37340*/ OPC_MoveParent, ++/* 37341*/ OPC_RecordChild3, // #3 = $src ++/* 37342*/ OPC_CheckType, MVT::i32, ++/* 37344*/ OPC_EmitConvertToTarget, 1, ++/* 37346*/ OPC_EmitConvertToTarget, 2, ++/* 37348*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::BSTRINS_W), 0, ++ MVT::i32, 4/*#Ops*/, 0, 4, 5, 3, ++ // Src: (LoongArchBstrins:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, (imm:{ *:[i32] })<>:$msbw, (imm:{ *:[i32] })<>:$lsbw, GPR32Opnd:{ *:[i32] }:$src) - Complexity = 11 ++ // Dst: (BSTRINS_W:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, (imm:{ *:[i32] }):$msbw, (imm:{ *:[i32] }):$lsbw, GPR32Opnd:{ *:[i32] }:$src) ++/* 37358*/ 0, /*End of Scope*/ ++/* 37359*/ /*SwitchOpcode*/ 62, TARGET_VAL(LoongArchISD::BSTRPICK),// ->37424 ++/* 37362*/ OPC_RecordChild0, // #0 = $rj ++/* 37363*/ OPC_RecordChild1, // #1 = $msbd ++/* 37364*/ OPC_MoveChild1, ++/* 37365*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 37368*/ OPC_Scope, 26, /*->37396*/ // 2 children in Scope ++/* 37370*/ OPC_CheckPredicate, 43, // Predicate_uimm6 ++/* 37372*/ OPC_MoveParent, ++/* 37373*/ OPC_RecordChild2, // #2 = $lsbd ++/* 37374*/ OPC_MoveChild2, ++/* 37375*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 37378*/ OPC_CheckPredicate, 43, // Predicate_uimm6 ++/* 37380*/ OPC_MoveParent, ++/* 37381*/ OPC_CheckType, MVT::i64, ++/* 37383*/ OPC_EmitConvertToTarget, 1, ++/* 37385*/ OPC_EmitConvertToTarget, 2, ++/* 37387*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::BSTRPICK_D), 0, ++ MVT::i64, 3/*#Ops*/, 0, 3, 4, ++ // Src: (LoongArchBstrpick:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, (imm:{ *:[i32] })<>:$msbd, (imm:{ *:[i32] })<>:$lsbd) - Complexity = 11 ++ // Dst: (BSTRPICK_D:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, (imm:{ *:[i32] }):$msbd, (imm:{ *:[i32] }):$lsbd) ++/* 37396*/ /*Scope*/ 26, /*->37423*/ ++/* 37397*/ OPC_CheckPredicate, 20, // Predicate_uimm5 ++/* 37399*/ OPC_MoveParent, ++/* 37400*/ OPC_RecordChild2, // #2 = $lsbw ++/* 37401*/ OPC_MoveChild2, ++/* 37402*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 37405*/ OPC_CheckPredicate, 20, // Predicate_uimm5 ++/* 37407*/ OPC_MoveParent, ++/* 37408*/ OPC_CheckType, MVT::i32, ++/* 37410*/ OPC_EmitConvertToTarget, 1, ++/* 37412*/ OPC_EmitConvertToTarget, 2, ++/* 37414*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::BSTRPICK_W), 0, ++ MVT::i32, 3/*#Ops*/, 0, 3, 4, ++ // Src: (LoongArchBstrpick:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, (imm:{ *:[i32] })<>:$msbw, (imm:{ *:[i32] })<>:$lsbw) - Complexity = 11 ++ // Dst: (BSTRPICK_W:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, (imm:{ *:[i32] }):$msbw, (imm:{ *:[i32] }):$lsbw) ++/* 37423*/ 0, /*End of Scope*/ ++/* 37424*/ /*SwitchOpcode*/ 118|128,28|128,1/*20086*/, TARGET_VAL(ISD::AND),// ->57515 ++/* 37429*/ OPC_Scope, 40, /*->37471*/ // 75 children in Scope ++/* 37431*/ OPC_RecordChild0, // #0 = $rj ++/* 37432*/ OPC_MoveChild1, ++/* 37433*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 37436*/ OPC_RecordChild0, // #1 = $rk ++/* 37437*/ OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, ++/* 37448*/ OPC_MoveParent, ++/* 37449*/ OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->37460 ++/* 37452*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ANDN32), 0, ++ MVT::i32, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[i32] } GPR32:{ *:[i32] }:$rj, (xor:{ *:[i32] } GPR32:{ *:[i32] }:$rk, -1:{ *:[i32] })) - Complexity = 11 ++ // Dst: (ANDN32:{ *:[i32] } GPR32:{ *:[i32] }:$rj, GPR32:{ *:[i32] }:$rk) ++/* 37460*/ /*SwitchType*/ 8, MVT::i64,// ->37470 ++/* 37462*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ANDN), 0, ++ MVT::i64, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[i64] } GPR64:{ *:[i64] }:$rj, (xor:{ *:[i64] } GPR64:{ *:[i64] }:$rk, -1:{ *:[i64] })) - Complexity = 11 ++ // Dst: (ANDN:{ *:[i64] } GPR64:{ *:[i64] }:$rj, GPR64:{ *:[i64] }:$rk) ++/* 37470*/ 0, // EndSwitchType ++/* 37471*/ /*Scope*/ 40, /*->37512*/ ++/* 37472*/ OPC_MoveChild0, ++/* 37473*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 37476*/ OPC_RecordChild0, // #0 = $rk ++/* 37477*/ OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, ++/* 37488*/ OPC_MoveParent, ++/* 37489*/ OPC_RecordChild1, // #1 = $rj ++/* 37490*/ OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->37501 ++/* 37493*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ANDN32), 0, ++ MVT::i32, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[i32] } (xor:{ *:[i32] } GPR32:{ *:[i32] }:$rk, -1:{ *:[i32] }), GPR32:{ *:[i32] }:$rj) - Complexity = 11 ++ // Dst: (ANDN32:{ *:[i32] } GPR32:{ *:[i32] }:$rj, GPR32:{ *:[i32] }:$rk) ++/* 37501*/ /*SwitchType*/ 8, MVT::i64,// ->37511 ++/* 37503*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ANDN), 0, ++ MVT::i64, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[i64] } (xor:{ *:[i64] } GPR64:{ *:[i64] }:$rk, -1:{ *:[i64] }), GPR64:{ *:[i64] }:$rj) - Complexity = 11 ++ // Dst: (ANDN:{ *:[i64] } GPR64:{ *:[i64] }:$rj, GPR64:{ *:[i64] }:$rk) ++/* 37511*/ 0, // EndSwitchType ++/* 37512*/ /*Scope*/ 62|128,11/*1470*/, /*->38984*/ ++/* 37514*/ OPC_RecordChild0, // #0 = $rj ++/* 37515*/ OPC_Scope, 64, /*->37581*/ // 2 children in Scope ++/* 37517*/ OPC_RecordChild1, // #1 = $imm12 ++/* 37518*/ OPC_Scope, 38, /*->37558*/ // 3 children in Scope ++/* 37520*/ OPC_MoveChild1, ++/* 37521*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 37524*/ OPC_Scope, 15, /*->37541*/ // 2 children in Scope ++/* 37526*/ OPC_CheckPredicate, 12, // Predicate_uimm12 ++/* 37528*/ OPC_MoveParent, ++/* 37529*/ OPC_CheckType, MVT::i64, ++/* 37531*/ OPC_EmitConvertToTarget, 1, ++/* 37533*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ANDI), 0, ++ MVT::i64, 2/*#Ops*/, 0, 2, ++ // Src: (and:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, (imm:{ *:[i64] })<>:$imm12) - Complexity = 7 ++ // Dst: (ANDI:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, (imm:{ *:[i64] }):$imm12) ++/* 37541*/ /*Scope*/ 15, /*->37557*/ ++/* 37542*/ OPC_CheckPredicate, 12, // Predicate_uimm12_32 ++/* 37544*/ OPC_MoveParent, ++/* 37545*/ OPC_CheckType, MVT::i32, ++/* 37547*/ OPC_EmitConvertToTarget, 1, ++/* 37549*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ANDI32), 0, ++ MVT::i32, 2/*#Ops*/, 0, 2, ++ // Src: (and:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, (imm:{ *:[i32] })<>:$imm12) - Complexity = 7 ++ // Dst: (ANDI32:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, (imm:{ *:[i32] }):$imm12) ++/* 37557*/ 0, /*End of Scope*/ ++/* 37558*/ /*Scope*/ 10, /*->37569*/ ++/* 37559*/ OPC_CheckType, MVT::i64, ++/* 37561*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::AND), 0, ++ MVT::i64, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, GPR64Opnd:{ *:[i64] }:$rk) - Complexity = 3 ++ // Dst: (AND:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, GPR64Opnd:{ *:[i64] }:$rk) ++/* 37569*/ /*Scope*/ 10, /*->37580*/ ++/* 37570*/ OPC_CheckType, MVT::i32, ++/* 37572*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::AND32), 0, ++ MVT::i32, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) - Complexity = 3 ++ // Dst: (AND32:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) ++/* 37580*/ 0, /*End of Scope*/ ++/* 37581*/ /*Scope*/ 120|128,10/*1400*/, /*->38983*/ ++/* 37583*/ OPC_MoveChild1, ++/* 37584*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 37587*/ OPC_MoveChild0, ++/* 37588*/ OPC_Scope, 56|128,5/*696*/, /*->38287*/ // 2 children in Scope ++/* 37591*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 37594*/ OPC_MoveChild0, ++/* 37595*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 37598*/ OPC_CheckPredicate, 42, // Predicate_xvsplat_imm_eq_1 ++/* 37600*/ OPC_MoveParent, ++/* 37601*/ OPC_MoveChild1, ++/* 37602*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 37605*/ OPC_Scope, 82|128,2/*338*/, /*->37946*/ // 2 children in Scope ++/* 37608*/ OPC_RecordChild0, // #1 = $vt ++/* 37609*/ OPC_MoveChild1, ++/* 37610*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 37613*/ OPC_MoveChild0, ++/* 37614*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 37617*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 37619*/ OPC_CheckType, MVT::i32, ++/* 37621*/ OPC_MoveParent, ++/* 37622*/ OPC_MoveChild1, ++/* 37623*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 37626*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 37628*/ OPC_CheckType, MVT::i32, ++/* 37630*/ OPC_MoveParent, ++/* 37631*/ OPC_MoveChild2, ++/* 37632*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 37635*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 37637*/ OPC_CheckType, MVT::i32, ++/* 37639*/ OPC_MoveParent, ++/* 37640*/ OPC_MoveChild3, ++/* 37641*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 37644*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 37646*/ OPC_CheckType, MVT::i32, ++/* 37648*/ OPC_MoveParent, ++/* 37649*/ OPC_MoveChild4, ++/* 37650*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 37653*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 37655*/ OPC_CheckType, MVT::i32, ++/* 37657*/ OPC_MoveParent, ++/* 37658*/ OPC_MoveChild5, ++/* 37659*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 37662*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 37664*/ OPC_CheckType, MVT::i32, ++/* 37666*/ OPC_MoveParent, ++/* 37667*/ OPC_MoveChild6, ++/* 37668*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 37671*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 37673*/ OPC_CheckType, MVT::i32, ++/* 37675*/ OPC_MoveParent, ++/* 37676*/ OPC_MoveChild7, ++/* 37677*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 37680*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 37682*/ OPC_CheckType, MVT::i32, ++/* 37684*/ OPC_MoveParent, ++/* 37685*/ OPC_MoveChild, 8, ++/* 37687*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 37690*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 37692*/ OPC_CheckType, MVT::i32, ++/* 37694*/ OPC_MoveParent, ++/* 37695*/ OPC_MoveChild, 9, ++/* 37697*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 37700*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 37702*/ OPC_CheckType, MVT::i32, ++/* 37704*/ OPC_MoveParent, ++/* 37705*/ OPC_MoveChild, 10, ++/* 37707*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 37710*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 37712*/ OPC_CheckType, MVT::i32, ++/* 37714*/ OPC_MoveParent, ++/* 37715*/ OPC_MoveChild, 11, ++/* 37717*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 37720*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 37722*/ OPC_CheckType, MVT::i32, ++/* 37724*/ OPC_MoveParent, ++/* 37725*/ OPC_MoveChild, 12, ++/* 37727*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 37730*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 37732*/ OPC_CheckType, MVT::i32, ++/* 37734*/ OPC_MoveParent, ++/* 37735*/ OPC_MoveChild, 13, ++/* 37737*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 37740*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 37742*/ OPC_CheckType, MVT::i32, ++/* 37744*/ OPC_MoveParent, ++/* 37745*/ OPC_MoveChild, 14, ++/* 37747*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 37750*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 37752*/ OPC_CheckType, MVT::i32, ++/* 37754*/ OPC_MoveParent, ++/* 37755*/ OPC_MoveChild, 15, ++/* 37757*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 37760*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 37762*/ OPC_CheckType, MVT::i32, ++/* 37764*/ OPC_MoveParent, ++/* 37765*/ OPC_MoveChild, 16, ++/* 37767*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 37770*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 37772*/ OPC_CheckType, MVT::i32, ++/* 37774*/ OPC_MoveParent, ++/* 37775*/ OPC_MoveChild, 17, ++/* 37777*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 37780*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 37782*/ OPC_CheckType, MVT::i32, ++/* 37784*/ OPC_MoveParent, ++/* 37785*/ OPC_MoveChild, 18, ++/* 37787*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 37790*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 37792*/ OPC_CheckType, MVT::i32, ++/* 37794*/ OPC_MoveParent, ++/* 37795*/ OPC_MoveChild, 19, ++/* 37797*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 37800*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 37802*/ OPC_CheckType, MVT::i32, ++/* 37804*/ OPC_MoveParent, ++/* 37805*/ OPC_MoveChild, 20, ++/* 37807*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 37810*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 37812*/ OPC_CheckType, MVT::i32, ++/* 37814*/ OPC_MoveParent, ++/* 37815*/ OPC_MoveChild, 21, ++/* 37817*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 37820*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 37822*/ OPC_CheckType, MVT::i32, ++/* 37824*/ OPC_MoveParent, ++/* 37825*/ OPC_MoveChild, 22, ++/* 37827*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 37830*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 37832*/ OPC_CheckType, MVT::i32, ++/* 37834*/ OPC_MoveParent, ++/* 37835*/ OPC_MoveChild, 23, ++/* 37837*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 37840*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 37842*/ OPC_CheckType, MVT::i32, ++/* 37844*/ OPC_MoveParent, ++/* 37845*/ OPC_MoveChild, 24, ++/* 37847*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 37850*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 37852*/ OPC_CheckType, MVT::i32, ++/* 37854*/ OPC_MoveParent, ++/* 37855*/ OPC_MoveChild, 25, ++/* 37857*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 37860*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 37862*/ OPC_CheckType, MVT::i32, ++/* 37864*/ OPC_MoveParent, ++/* 37865*/ OPC_MoveChild, 26, ++/* 37867*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 37870*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 37872*/ OPC_CheckType, MVT::i32, ++/* 37874*/ OPC_MoveParent, ++/* 37875*/ OPC_MoveChild, 27, ++/* 37877*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 37880*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 37882*/ OPC_CheckType, MVT::i32, ++/* 37884*/ OPC_MoveParent, ++/* 37885*/ OPC_MoveChild, 28, ++/* 37887*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 37890*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 37892*/ OPC_CheckType, MVT::i32, ++/* 37894*/ OPC_MoveParent, ++/* 37895*/ OPC_MoveChild, 29, ++/* 37897*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 37900*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 37902*/ OPC_CheckType, MVT::i32, ++/* 37904*/ OPC_MoveParent, ++/* 37905*/ OPC_MoveChild, 30, ++/* 37907*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 37910*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 37912*/ OPC_CheckType, MVT::i32, ++/* 37914*/ OPC_MoveParent, ++/* 37915*/ OPC_MoveChild, 31, ++/* 37917*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 37920*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 37922*/ OPC_CheckType, MVT::i32, ++/* 37924*/ OPC_MoveParent, ++/* 37925*/ OPC_MoveParent, ++/* 37926*/ OPC_CheckType, MVT::v32i8, ++/* 37928*/ OPC_MoveParent, ++/* 37929*/ OPC_MoveParent, ++/* 37930*/ OPC_MoveChild1, ++/* 37931*/ OPC_CheckImmAllOnesV, ++/* 37932*/ OPC_MoveParent, ++/* 37933*/ OPC_MoveParent, ++/* 37934*/ OPC_CheckType, MVT::v32i8, ++/* 37936*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 37938*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vs, (xor:{ *:[v32i8] } (shl:{ *:[v32i8] } (build_vector:{ *:[v32i8] })<>, (and:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vt, (build_vector:{ *:[v32i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))), immAllOnesV:{ *:[v32i8] })) - Complexity = 151 ++ // Dst: (XVBITCLR_B:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vs, v32i8:{ *:[v32i8] }:$vt) ++/* 37946*/ /*Scope*/ 82|128,2/*338*/, /*->38286*/ ++/* 37948*/ OPC_MoveChild0, ++/* 37949*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 37952*/ OPC_MoveChild0, ++/* 37953*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 37956*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 37958*/ OPC_CheckType, MVT::i32, ++/* 37960*/ OPC_MoveParent, ++/* 37961*/ OPC_MoveChild1, ++/* 37962*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 37965*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 37967*/ OPC_CheckType, MVT::i32, ++/* 37969*/ OPC_MoveParent, ++/* 37970*/ OPC_MoveChild2, ++/* 37971*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 37974*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 37976*/ OPC_CheckType, MVT::i32, ++/* 37978*/ OPC_MoveParent, ++/* 37979*/ OPC_MoveChild3, ++/* 37980*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 37983*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 37985*/ OPC_CheckType, MVT::i32, ++/* 37987*/ OPC_MoveParent, ++/* 37988*/ OPC_MoveChild4, ++/* 37989*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 37992*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 37994*/ OPC_CheckType, MVT::i32, ++/* 37996*/ OPC_MoveParent, ++/* 37997*/ OPC_MoveChild5, ++/* 37998*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38001*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38003*/ OPC_CheckType, MVT::i32, ++/* 38005*/ OPC_MoveParent, ++/* 38006*/ OPC_MoveChild6, ++/* 38007*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38010*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38012*/ OPC_CheckType, MVT::i32, ++/* 38014*/ OPC_MoveParent, ++/* 38015*/ OPC_MoveChild7, ++/* 38016*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38019*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38021*/ OPC_CheckType, MVT::i32, ++/* 38023*/ OPC_MoveParent, ++/* 38024*/ OPC_MoveChild, 8, ++/* 38026*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38029*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38031*/ OPC_CheckType, MVT::i32, ++/* 38033*/ OPC_MoveParent, ++/* 38034*/ OPC_MoveChild, 9, ++/* 38036*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38039*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38041*/ OPC_CheckType, MVT::i32, ++/* 38043*/ OPC_MoveParent, ++/* 38044*/ OPC_MoveChild, 10, ++/* 38046*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38049*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38051*/ OPC_CheckType, MVT::i32, ++/* 38053*/ OPC_MoveParent, ++/* 38054*/ OPC_MoveChild, 11, ++/* 38056*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38059*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38061*/ OPC_CheckType, MVT::i32, ++/* 38063*/ OPC_MoveParent, ++/* 38064*/ OPC_MoveChild, 12, ++/* 38066*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38069*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38071*/ OPC_CheckType, MVT::i32, ++/* 38073*/ OPC_MoveParent, ++/* 38074*/ OPC_MoveChild, 13, ++/* 38076*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38079*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38081*/ OPC_CheckType, MVT::i32, ++/* 38083*/ OPC_MoveParent, ++/* 38084*/ OPC_MoveChild, 14, ++/* 38086*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38089*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38091*/ OPC_CheckType, MVT::i32, ++/* 38093*/ OPC_MoveParent, ++/* 38094*/ OPC_MoveChild, 15, ++/* 38096*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38099*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38101*/ OPC_CheckType, MVT::i32, ++/* 38103*/ OPC_MoveParent, ++/* 38104*/ OPC_MoveChild, 16, ++/* 38106*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38109*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38111*/ OPC_CheckType, MVT::i32, ++/* 38113*/ OPC_MoveParent, ++/* 38114*/ OPC_MoveChild, 17, ++/* 38116*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38119*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38121*/ OPC_CheckType, MVT::i32, ++/* 38123*/ OPC_MoveParent, ++/* 38124*/ OPC_MoveChild, 18, ++/* 38126*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38129*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38131*/ OPC_CheckType, MVT::i32, ++/* 38133*/ OPC_MoveParent, ++/* 38134*/ OPC_MoveChild, 19, ++/* 38136*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38139*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38141*/ OPC_CheckType, MVT::i32, ++/* 38143*/ OPC_MoveParent, ++/* 38144*/ OPC_MoveChild, 20, ++/* 38146*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38149*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38151*/ OPC_CheckType, MVT::i32, ++/* 38153*/ OPC_MoveParent, ++/* 38154*/ OPC_MoveChild, 21, ++/* 38156*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38159*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38161*/ OPC_CheckType, MVT::i32, ++/* 38163*/ OPC_MoveParent, ++/* 38164*/ OPC_MoveChild, 22, ++/* 38166*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38169*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38171*/ OPC_CheckType, MVT::i32, ++/* 38173*/ OPC_MoveParent, ++/* 38174*/ OPC_MoveChild, 23, ++/* 38176*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38179*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38181*/ OPC_CheckType, MVT::i32, ++/* 38183*/ OPC_MoveParent, ++/* 38184*/ OPC_MoveChild, 24, ++/* 38186*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38189*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38191*/ OPC_CheckType, MVT::i32, ++/* 38193*/ OPC_MoveParent, ++/* 38194*/ OPC_MoveChild, 25, ++/* 38196*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38199*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38201*/ OPC_CheckType, MVT::i32, ++/* 38203*/ OPC_MoveParent, ++/* 38204*/ OPC_MoveChild, 26, ++/* 38206*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38209*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38211*/ OPC_CheckType, MVT::i32, ++/* 38213*/ OPC_MoveParent, ++/* 38214*/ OPC_MoveChild, 27, ++/* 38216*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38219*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38221*/ OPC_CheckType, MVT::i32, ++/* 38223*/ OPC_MoveParent, ++/* 38224*/ OPC_MoveChild, 28, ++/* 38226*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38229*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38231*/ OPC_CheckType, MVT::i32, ++/* 38233*/ OPC_MoveParent, ++/* 38234*/ OPC_MoveChild, 29, ++/* 38236*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38239*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38241*/ OPC_CheckType, MVT::i32, ++/* 38243*/ OPC_MoveParent, ++/* 38244*/ OPC_MoveChild, 30, ++/* 38246*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38249*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38251*/ OPC_CheckType, MVT::i32, ++/* 38253*/ OPC_MoveParent, ++/* 38254*/ OPC_MoveChild, 31, ++/* 38256*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38259*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38261*/ OPC_CheckType, MVT::i32, ++/* 38263*/ OPC_MoveParent, ++/* 38264*/ OPC_MoveParent, ++/* 38265*/ OPC_RecordChild1, // #1 = $vt ++/* 38266*/ OPC_CheckType, MVT::v32i8, ++/* 38268*/ OPC_MoveParent, ++/* 38269*/ OPC_MoveParent, ++/* 38270*/ OPC_MoveChild1, ++/* 38271*/ OPC_CheckImmAllOnesV, ++/* 38272*/ OPC_MoveParent, ++/* 38273*/ OPC_MoveParent, ++/* 38274*/ OPC_CheckType, MVT::v32i8, ++/* 38276*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 38278*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vs, (xor:{ *:[v32i8] } (shl:{ *:[v32i8] } (build_vector:{ *:[v32i8] })<>, (and:{ *:[v32i8] } (build_vector:{ *:[v32i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v32i8:{ *:[v32i8] }:$vt)), immAllOnesV:{ *:[v32i8] })) - Complexity = 151 ++ // Dst: (XVBITCLR_B:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vs, v32i8:{ *:[v32i8] }:$vt) ++/* 38286*/ 0, /*End of Scope*/ ++/* 38287*/ /*Scope*/ 53|128,5/*693*/, /*->38982*/ ++/* 38289*/ OPC_CheckImmAllOnesV, ++/* 38290*/ OPC_MoveParent, ++/* 38291*/ OPC_MoveChild1, ++/* 38292*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 38295*/ OPC_MoveChild0, ++/* 38296*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 38299*/ OPC_CheckPredicate, 42, // Predicate_xvsplat_imm_eq_1 ++/* 38301*/ OPC_MoveParent, ++/* 38302*/ OPC_MoveChild1, ++/* 38303*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 38306*/ OPC_Scope, 79|128,2/*335*/, /*->38644*/ // 2 children in Scope ++/* 38309*/ OPC_RecordChild0, // #1 = $vt ++/* 38310*/ OPC_MoveChild1, ++/* 38311*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 38314*/ OPC_MoveChild0, ++/* 38315*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38318*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38320*/ OPC_CheckType, MVT::i32, ++/* 38322*/ OPC_MoveParent, ++/* 38323*/ OPC_MoveChild1, ++/* 38324*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38327*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38329*/ OPC_CheckType, MVT::i32, ++/* 38331*/ OPC_MoveParent, ++/* 38332*/ OPC_MoveChild2, ++/* 38333*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38336*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38338*/ OPC_CheckType, MVT::i32, ++/* 38340*/ OPC_MoveParent, ++/* 38341*/ OPC_MoveChild3, ++/* 38342*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38345*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38347*/ OPC_CheckType, MVT::i32, ++/* 38349*/ OPC_MoveParent, ++/* 38350*/ OPC_MoveChild4, ++/* 38351*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38354*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38356*/ OPC_CheckType, MVT::i32, ++/* 38358*/ OPC_MoveParent, ++/* 38359*/ OPC_MoveChild5, ++/* 38360*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38363*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38365*/ OPC_CheckType, MVT::i32, ++/* 38367*/ OPC_MoveParent, ++/* 38368*/ OPC_MoveChild6, ++/* 38369*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38372*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38374*/ OPC_CheckType, MVT::i32, ++/* 38376*/ OPC_MoveParent, ++/* 38377*/ OPC_MoveChild7, ++/* 38378*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38381*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38383*/ OPC_CheckType, MVT::i32, ++/* 38385*/ OPC_MoveParent, ++/* 38386*/ OPC_MoveChild, 8, ++/* 38388*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38391*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38393*/ OPC_CheckType, MVT::i32, ++/* 38395*/ OPC_MoveParent, ++/* 38396*/ OPC_MoveChild, 9, ++/* 38398*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38401*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38403*/ OPC_CheckType, MVT::i32, ++/* 38405*/ OPC_MoveParent, ++/* 38406*/ OPC_MoveChild, 10, ++/* 38408*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38411*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38413*/ OPC_CheckType, MVT::i32, ++/* 38415*/ OPC_MoveParent, ++/* 38416*/ OPC_MoveChild, 11, ++/* 38418*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38421*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38423*/ OPC_CheckType, MVT::i32, ++/* 38425*/ OPC_MoveParent, ++/* 38426*/ OPC_MoveChild, 12, ++/* 38428*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38431*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38433*/ OPC_CheckType, MVT::i32, ++/* 38435*/ OPC_MoveParent, ++/* 38436*/ OPC_MoveChild, 13, ++/* 38438*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38441*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38443*/ OPC_CheckType, MVT::i32, ++/* 38445*/ OPC_MoveParent, ++/* 38446*/ OPC_MoveChild, 14, ++/* 38448*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38451*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38453*/ OPC_CheckType, MVT::i32, ++/* 38455*/ OPC_MoveParent, ++/* 38456*/ OPC_MoveChild, 15, ++/* 38458*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38461*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38463*/ OPC_CheckType, MVT::i32, ++/* 38465*/ OPC_MoveParent, ++/* 38466*/ OPC_MoveChild, 16, ++/* 38468*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38471*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38473*/ OPC_CheckType, MVT::i32, ++/* 38475*/ OPC_MoveParent, ++/* 38476*/ OPC_MoveChild, 17, ++/* 38478*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38481*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38483*/ OPC_CheckType, MVT::i32, ++/* 38485*/ OPC_MoveParent, ++/* 38486*/ OPC_MoveChild, 18, ++/* 38488*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38491*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38493*/ OPC_CheckType, MVT::i32, ++/* 38495*/ OPC_MoveParent, ++/* 38496*/ OPC_MoveChild, 19, ++/* 38498*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38501*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38503*/ OPC_CheckType, MVT::i32, ++/* 38505*/ OPC_MoveParent, ++/* 38506*/ OPC_MoveChild, 20, ++/* 38508*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38511*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38513*/ OPC_CheckType, MVT::i32, ++/* 38515*/ OPC_MoveParent, ++/* 38516*/ OPC_MoveChild, 21, ++/* 38518*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38521*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38523*/ OPC_CheckType, MVT::i32, ++/* 38525*/ OPC_MoveParent, ++/* 38526*/ OPC_MoveChild, 22, ++/* 38528*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38531*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38533*/ OPC_CheckType, MVT::i32, ++/* 38535*/ OPC_MoveParent, ++/* 38536*/ OPC_MoveChild, 23, ++/* 38538*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38541*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38543*/ OPC_CheckType, MVT::i32, ++/* 38545*/ OPC_MoveParent, ++/* 38546*/ OPC_MoveChild, 24, ++/* 38548*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38551*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38553*/ OPC_CheckType, MVT::i32, ++/* 38555*/ OPC_MoveParent, ++/* 38556*/ OPC_MoveChild, 25, ++/* 38558*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38561*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38563*/ OPC_CheckType, MVT::i32, ++/* 38565*/ OPC_MoveParent, ++/* 38566*/ OPC_MoveChild, 26, ++/* 38568*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38571*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38573*/ OPC_CheckType, MVT::i32, ++/* 38575*/ OPC_MoveParent, ++/* 38576*/ OPC_MoveChild, 27, ++/* 38578*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38581*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38583*/ OPC_CheckType, MVT::i32, ++/* 38585*/ OPC_MoveParent, ++/* 38586*/ OPC_MoveChild, 28, ++/* 38588*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38591*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38593*/ OPC_CheckType, MVT::i32, ++/* 38595*/ OPC_MoveParent, ++/* 38596*/ OPC_MoveChild, 29, ++/* 38598*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38601*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38603*/ OPC_CheckType, MVT::i32, ++/* 38605*/ OPC_MoveParent, ++/* 38606*/ OPC_MoveChild, 30, ++/* 38608*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38611*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38613*/ OPC_CheckType, MVT::i32, ++/* 38615*/ OPC_MoveParent, ++/* 38616*/ OPC_MoveChild, 31, ++/* 38618*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38621*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38623*/ OPC_CheckType, MVT::i32, ++/* 38625*/ OPC_MoveParent, ++/* 38626*/ OPC_MoveParent, ++/* 38627*/ OPC_CheckType, MVT::v32i8, ++/* 38629*/ OPC_MoveParent, ++/* 38630*/ OPC_MoveParent, ++/* 38631*/ OPC_MoveParent, ++/* 38632*/ OPC_CheckType, MVT::v32i8, ++/* 38634*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 38636*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vs, (xor:{ *:[v32i8] } immAllOnesV:{ *:[v32i8] }, (shl:{ *:[v32i8] } (build_vector:{ *:[v32i8] })<>, (and:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vt, (build_vector:{ *:[v32i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))))) - Complexity = 151 ++ // Dst: (XVBITCLR_B:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vs, v32i8:{ *:[v32i8] }:$vt) ++/* 38644*/ /*Scope*/ 79|128,2/*335*/, /*->38981*/ ++/* 38646*/ OPC_MoveChild0, ++/* 38647*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 38650*/ OPC_MoveChild0, ++/* 38651*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38654*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38656*/ OPC_CheckType, MVT::i32, ++/* 38658*/ OPC_MoveParent, ++/* 38659*/ OPC_MoveChild1, ++/* 38660*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38663*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38665*/ OPC_CheckType, MVT::i32, ++/* 38667*/ OPC_MoveParent, ++/* 38668*/ OPC_MoveChild2, ++/* 38669*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38672*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38674*/ OPC_CheckType, MVT::i32, ++/* 38676*/ OPC_MoveParent, ++/* 38677*/ OPC_MoveChild3, ++/* 38678*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38681*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38683*/ OPC_CheckType, MVT::i32, ++/* 38685*/ OPC_MoveParent, ++/* 38686*/ OPC_MoveChild4, ++/* 38687*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38690*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38692*/ OPC_CheckType, MVT::i32, ++/* 38694*/ OPC_MoveParent, ++/* 38695*/ OPC_MoveChild5, ++/* 38696*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38699*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38701*/ OPC_CheckType, MVT::i32, ++/* 38703*/ OPC_MoveParent, ++/* 38704*/ OPC_MoveChild6, ++/* 38705*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38708*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38710*/ OPC_CheckType, MVT::i32, ++/* 38712*/ OPC_MoveParent, ++/* 38713*/ OPC_MoveChild7, ++/* 38714*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38717*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38719*/ OPC_CheckType, MVT::i32, ++/* 38721*/ OPC_MoveParent, ++/* 38722*/ OPC_MoveChild, 8, ++/* 38724*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38727*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38729*/ OPC_CheckType, MVT::i32, ++/* 38731*/ OPC_MoveParent, ++/* 38732*/ OPC_MoveChild, 9, ++/* 38734*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38737*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38739*/ OPC_CheckType, MVT::i32, ++/* 38741*/ OPC_MoveParent, ++/* 38742*/ OPC_MoveChild, 10, ++/* 38744*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38747*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38749*/ OPC_CheckType, MVT::i32, ++/* 38751*/ OPC_MoveParent, ++/* 38752*/ OPC_MoveChild, 11, ++/* 38754*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38757*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38759*/ OPC_CheckType, MVT::i32, ++/* 38761*/ OPC_MoveParent, ++/* 38762*/ OPC_MoveChild, 12, ++/* 38764*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38767*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38769*/ OPC_CheckType, MVT::i32, ++/* 38771*/ OPC_MoveParent, ++/* 38772*/ OPC_MoveChild, 13, ++/* 38774*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38777*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38779*/ OPC_CheckType, MVT::i32, ++/* 38781*/ OPC_MoveParent, ++/* 38782*/ OPC_MoveChild, 14, ++/* 38784*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38787*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38789*/ OPC_CheckType, MVT::i32, ++/* 38791*/ OPC_MoveParent, ++/* 38792*/ OPC_MoveChild, 15, ++/* 38794*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38797*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38799*/ OPC_CheckType, MVT::i32, ++/* 38801*/ OPC_MoveParent, ++/* 38802*/ OPC_MoveChild, 16, ++/* 38804*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38807*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38809*/ OPC_CheckType, MVT::i32, ++/* 38811*/ OPC_MoveParent, ++/* 38812*/ OPC_MoveChild, 17, ++/* 38814*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38817*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38819*/ OPC_CheckType, MVT::i32, ++/* 38821*/ OPC_MoveParent, ++/* 38822*/ OPC_MoveChild, 18, ++/* 38824*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38827*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38829*/ OPC_CheckType, MVT::i32, ++/* 38831*/ OPC_MoveParent, ++/* 38832*/ OPC_MoveChild, 19, ++/* 38834*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38837*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38839*/ OPC_CheckType, MVT::i32, ++/* 38841*/ OPC_MoveParent, ++/* 38842*/ OPC_MoveChild, 20, ++/* 38844*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38847*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38849*/ OPC_CheckType, MVT::i32, ++/* 38851*/ OPC_MoveParent, ++/* 38852*/ OPC_MoveChild, 21, ++/* 38854*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38857*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38859*/ OPC_CheckType, MVT::i32, ++/* 38861*/ OPC_MoveParent, ++/* 38862*/ OPC_MoveChild, 22, ++/* 38864*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38867*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38869*/ OPC_CheckType, MVT::i32, ++/* 38871*/ OPC_MoveParent, ++/* 38872*/ OPC_MoveChild, 23, ++/* 38874*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38877*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38879*/ OPC_CheckType, MVT::i32, ++/* 38881*/ OPC_MoveParent, ++/* 38882*/ OPC_MoveChild, 24, ++/* 38884*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38887*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38889*/ OPC_CheckType, MVT::i32, ++/* 38891*/ OPC_MoveParent, ++/* 38892*/ OPC_MoveChild, 25, ++/* 38894*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38897*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38899*/ OPC_CheckType, MVT::i32, ++/* 38901*/ OPC_MoveParent, ++/* 38902*/ OPC_MoveChild, 26, ++/* 38904*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38907*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38909*/ OPC_CheckType, MVT::i32, ++/* 38911*/ OPC_MoveParent, ++/* 38912*/ OPC_MoveChild, 27, ++/* 38914*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38917*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38919*/ OPC_CheckType, MVT::i32, ++/* 38921*/ OPC_MoveParent, ++/* 38922*/ OPC_MoveChild, 28, ++/* 38924*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38927*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38929*/ OPC_CheckType, MVT::i32, ++/* 38931*/ OPC_MoveParent, ++/* 38932*/ OPC_MoveChild, 29, ++/* 38934*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38937*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38939*/ OPC_CheckType, MVT::i32, ++/* 38941*/ OPC_MoveParent, ++/* 38942*/ OPC_MoveChild, 30, ++/* 38944*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38947*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38949*/ OPC_CheckType, MVT::i32, ++/* 38951*/ OPC_MoveParent, ++/* 38952*/ OPC_MoveChild, 31, ++/* 38954*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 38957*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 38959*/ OPC_CheckType, MVT::i32, ++/* 38961*/ OPC_MoveParent, ++/* 38962*/ OPC_MoveParent, ++/* 38963*/ OPC_RecordChild1, // #1 = $vt ++/* 38964*/ OPC_CheckType, MVT::v32i8, ++/* 38966*/ OPC_MoveParent, ++/* 38967*/ OPC_MoveParent, ++/* 38968*/ OPC_MoveParent, ++/* 38969*/ OPC_CheckType, MVT::v32i8, ++/* 38971*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 38973*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vs, (xor:{ *:[v32i8] } immAllOnesV:{ *:[v32i8] }, (shl:{ *:[v32i8] } (build_vector:{ *:[v32i8] })<>, (and:{ *:[v32i8] } (build_vector:{ *:[v32i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v32i8:{ *:[v32i8] }:$vt)))) - Complexity = 151 ++ // Dst: (XVBITCLR_B:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vs, v32i8:{ *:[v32i8] }:$vt) ++/* 38981*/ 0, /*End of Scope*/ ++/* 38982*/ 0, /*End of Scope*/ ++/* 38983*/ 0, /*End of Scope*/ ++/* 38984*/ /*Scope*/ 124|128,10/*1404*/, /*->40390*/ ++/* 38986*/ OPC_MoveChild0, ++/* 38987*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 38990*/ OPC_MoveChild0, ++/* 38991*/ OPC_Scope, 58|128,5/*698*/, /*->39692*/ // 2 children in Scope ++/* 38994*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 38997*/ OPC_MoveChild0, ++/* 38998*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 39001*/ OPC_CheckPredicate, 42, // Predicate_xvsplat_imm_eq_1 ++/* 39003*/ OPC_MoveParent, ++/* 39004*/ OPC_MoveChild1, ++/* 39005*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 39008*/ OPC_Scope, 83|128,2/*339*/, /*->39350*/ // 2 children in Scope ++/* 39011*/ OPC_RecordChild0, // #0 = $vt ++/* 39012*/ OPC_MoveChild1, ++/* 39013*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 39016*/ OPC_MoveChild0, ++/* 39017*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39020*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39022*/ OPC_CheckType, MVT::i32, ++/* 39024*/ OPC_MoveParent, ++/* 39025*/ OPC_MoveChild1, ++/* 39026*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39029*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39031*/ OPC_CheckType, MVT::i32, ++/* 39033*/ OPC_MoveParent, ++/* 39034*/ OPC_MoveChild2, ++/* 39035*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39038*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39040*/ OPC_CheckType, MVT::i32, ++/* 39042*/ OPC_MoveParent, ++/* 39043*/ OPC_MoveChild3, ++/* 39044*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39047*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39049*/ OPC_CheckType, MVT::i32, ++/* 39051*/ OPC_MoveParent, ++/* 39052*/ OPC_MoveChild4, ++/* 39053*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39056*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39058*/ OPC_CheckType, MVT::i32, ++/* 39060*/ OPC_MoveParent, ++/* 39061*/ OPC_MoveChild5, ++/* 39062*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39065*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39067*/ OPC_CheckType, MVT::i32, ++/* 39069*/ OPC_MoveParent, ++/* 39070*/ OPC_MoveChild6, ++/* 39071*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39074*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39076*/ OPC_CheckType, MVT::i32, ++/* 39078*/ OPC_MoveParent, ++/* 39079*/ OPC_MoveChild7, ++/* 39080*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39083*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39085*/ OPC_CheckType, MVT::i32, ++/* 39087*/ OPC_MoveParent, ++/* 39088*/ OPC_MoveChild, 8, ++/* 39090*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39093*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39095*/ OPC_CheckType, MVT::i32, ++/* 39097*/ OPC_MoveParent, ++/* 39098*/ OPC_MoveChild, 9, ++/* 39100*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39103*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39105*/ OPC_CheckType, MVT::i32, ++/* 39107*/ OPC_MoveParent, ++/* 39108*/ OPC_MoveChild, 10, ++/* 39110*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39113*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39115*/ OPC_CheckType, MVT::i32, ++/* 39117*/ OPC_MoveParent, ++/* 39118*/ OPC_MoveChild, 11, ++/* 39120*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39123*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39125*/ OPC_CheckType, MVT::i32, ++/* 39127*/ OPC_MoveParent, ++/* 39128*/ OPC_MoveChild, 12, ++/* 39130*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39133*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39135*/ OPC_CheckType, MVT::i32, ++/* 39137*/ OPC_MoveParent, ++/* 39138*/ OPC_MoveChild, 13, ++/* 39140*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39143*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39145*/ OPC_CheckType, MVT::i32, ++/* 39147*/ OPC_MoveParent, ++/* 39148*/ OPC_MoveChild, 14, ++/* 39150*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39153*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39155*/ OPC_CheckType, MVT::i32, ++/* 39157*/ OPC_MoveParent, ++/* 39158*/ OPC_MoveChild, 15, ++/* 39160*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39163*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39165*/ OPC_CheckType, MVT::i32, ++/* 39167*/ OPC_MoveParent, ++/* 39168*/ OPC_MoveChild, 16, ++/* 39170*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39173*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39175*/ OPC_CheckType, MVT::i32, ++/* 39177*/ OPC_MoveParent, ++/* 39178*/ OPC_MoveChild, 17, ++/* 39180*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39183*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39185*/ OPC_CheckType, MVT::i32, ++/* 39187*/ OPC_MoveParent, ++/* 39188*/ OPC_MoveChild, 18, ++/* 39190*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39193*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39195*/ OPC_CheckType, MVT::i32, ++/* 39197*/ OPC_MoveParent, ++/* 39198*/ OPC_MoveChild, 19, ++/* 39200*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39203*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39205*/ OPC_CheckType, MVT::i32, ++/* 39207*/ OPC_MoveParent, ++/* 39208*/ OPC_MoveChild, 20, ++/* 39210*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39213*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39215*/ OPC_CheckType, MVT::i32, ++/* 39217*/ OPC_MoveParent, ++/* 39218*/ OPC_MoveChild, 21, ++/* 39220*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39223*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39225*/ OPC_CheckType, MVT::i32, ++/* 39227*/ OPC_MoveParent, ++/* 39228*/ OPC_MoveChild, 22, ++/* 39230*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39233*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39235*/ OPC_CheckType, MVT::i32, ++/* 39237*/ OPC_MoveParent, ++/* 39238*/ OPC_MoveChild, 23, ++/* 39240*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39243*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39245*/ OPC_CheckType, MVT::i32, ++/* 39247*/ OPC_MoveParent, ++/* 39248*/ OPC_MoveChild, 24, ++/* 39250*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39253*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39255*/ OPC_CheckType, MVT::i32, ++/* 39257*/ OPC_MoveParent, ++/* 39258*/ OPC_MoveChild, 25, ++/* 39260*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39263*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39265*/ OPC_CheckType, MVT::i32, ++/* 39267*/ OPC_MoveParent, ++/* 39268*/ OPC_MoveChild, 26, ++/* 39270*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39273*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39275*/ OPC_CheckType, MVT::i32, ++/* 39277*/ OPC_MoveParent, ++/* 39278*/ OPC_MoveChild, 27, ++/* 39280*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39283*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39285*/ OPC_CheckType, MVT::i32, ++/* 39287*/ OPC_MoveParent, ++/* 39288*/ OPC_MoveChild, 28, ++/* 39290*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39293*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39295*/ OPC_CheckType, MVT::i32, ++/* 39297*/ OPC_MoveParent, ++/* 39298*/ OPC_MoveChild, 29, ++/* 39300*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39303*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39305*/ OPC_CheckType, MVT::i32, ++/* 39307*/ OPC_MoveParent, ++/* 39308*/ OPC_MoveChild, 30, ++/* 39310*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39313*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39315*/ OPC_CheckType, MVT::i32, ++/* 39317*/ OPC_MoveParent, ++/* 39318*/ OPC_MoveChild, 31, ++/* 39320*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39323*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39325*/ OPC_CheckType, MVT::i32, ++/* 39327*/ OPC_MoveParent, ++/* 39328*/ OPC_MoveParent, ++/* 39329*/ OPC_CheckType, MVT::v32i8, ++/* 39331*/ OPC_MoveParent, ++/* 39332*/ OPC_MoveParent, ++/* 39333*/ OPC_MoveChild1, ++/* 39334*/ OPC_CheckImmAllOnesV, ++/* 39335*/ OPC_MoveParent, ++/* 39336*/ OPC_MoveParent, ++/* 39337*/ OPC_RecordChild1, // #1 = $vs ++/* 39338*/ OPC_CheckType, MVT::v32i8, ++/* 39340*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 39342*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v32i8] } (xor:{ *:[v32i8] } (shl:{ *:[v32i8] } (build_vector:{ *:[v32i8] })<>, (and:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vt, (build_vector:{ *:[v32i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))), immAllOnesV:{ *:[v32i8] }), v32i8:{ *:[v32i8] }:$vs) - Complexity = 151 ++ // Dst: (XVBITCLR_B:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vs, v32i8:{ *:[v32i8] }:$vt) ++/* 39350*/ /*Scope*/ 83|128,2/*339*/, /*->39691*/ ++/* 39352*/ OPC_MoveChild0, ++/* 39353*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 39356*/ OPC_MoveChild0, ++/* 39357*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39360*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39362*/ OPC_CheckType, MVT::i32, ++/* 39364*/ OPC_MoveParent, ++/* 39365*/ OPC_MoveChild1, ++/* 39366*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39369*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39371*/ OPC_CheckType, MVT::i32, ++/* 39373*/ OPC_MoveParent, ++/* 39374*/ OPC_MoveChild2, ++/* 39375*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39378*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39380*/ OPC_CheckType, MVT::i32, ++/* 39382*/ OPC_MoveParent, ++/* 39383*/ OPC_MoveChild3, ++/* 39384*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39387*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39389*/ OPC_CheckType, MVT::i32, ++/* 39391*/ OPC_MoveParent, ++/* 39392*/ OPC_MoveChild4, ++/* 39393*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39396*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39398*/ OPC_CheckType, MVT::i32, ++/* 39400*/ OPC_MoveParent, ++/* 39401*/ OPC_MoveChild5, ++/* 39402*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39405*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39407*/ OPC_CheckType, MVT::i32, ++/* 39409*/ OPC_MoveParent, ++/* 39410*/ OPC_MoveChild6, ++/* 39411*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39414*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39416*/ OPC_CheckType, MVT::i32, ++/* 39418*/ OPC_MoveParent, ++/* 39419*/ OPC_MoveChild7, ++/* 39420*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39423*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39425*/ OPC_CheckType, MVT::i32, ++/* 39427*/ OPC_MoveParent, ++/* 39428*/ OPC_MoveChild, 8, ++/* 39430*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39433*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39435*/ OPC_CheckType, MVT::i32, ++/* 39437*/ OPC_MoveParent, ++/* 39438*/ OPC_MoveChild, 9, ++/* 39440*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39443*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39445*/ OPC_CheckType, MVT::i32, ++/* 39447*/ OPC_MoveParent, ++/* 39448*/ OPC_MoveChild, 10, ++/* 39450*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39453*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39455*/ OPC_CheckType, MVT::i32, ++/* 39457*/ OPC_MoveParent, ++/* 39458*/ OPC_MoveChild, 11, ++/* 39460*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39463*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39465*/ OPC_CheckType, MVT::i32, ++/* 39467*/ OPC_MoveParent, ++/* 39468*/ OPC_MoveChild, 12, ++/* 39470*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39473*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39475*/ OPC_CheckType, MVT::i32, ++/* 39477*/ OPC_MoveParent, ++/* 39478*/ OPC_MoveChild, 13, ++/* 39480*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39483*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39485*/ OPC_CheckType, MVT::i32, ++/* 39487*/ OPC_MoveParent, ++/* 39488*/ OPC_MoveChild, 14, ++/* 39490*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39493*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39495*/ OPC_CheckType, MVT::i32, ++/* 39497*/ OPC_MoveParent, ++/* 39498*/ OPC_MoveChild, 15, ++/* 39500*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39503*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39505*/ OPC_CheckType, MVT::i32, ++/* 39507*/ OPC_MoveParent, ++/* 39508*/ OPC_MoveChild, 16, ++/* 39510*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39513*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39515*/ OPC_CheckType, MVT::i32, ++/* 39517*/ OPC_MoveParent, ++/* 39518*/ OPC_MoveChild, 17, ++/* 39520*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39523*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39525*/ OPC_CheckType, MVT::i32, ++/* 39527*/ OPC_MoveParent, ++/* 39528*/ OPC_MoveChild, 18, ++/* 39530*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39533*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39535*/ OPC_CheckType, MVT::i32, ++/* 39537*/ OPC_MoveParent, ++/* 39538*/ OPC_MoveChild, 19, ++/* 39540*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39543*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39545*/ OPC_CheckType, MVT::i32, ++/* 39547*/ OPC_MoveParent, ++/* 39548*/ OPC_MoveChild, 20, ++/* 39550*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39553*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39555*/ OPC_CheckType, MVT::i32, ++/* 39557*/ OPC_MoveParent, ++/* 39558*/ OPC_MoveChild, 21, ++/* 39560*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39563*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39565*/ OPC_CheckType, MVT::i32, ++/* 39567*/ OPC_MoveParent, ++/* 39568*/ OPC_MoveChild, 22, ++/* 39570*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39573*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39575*/ OPC_CheckType, MVT::i32, ++/* 39577*/ OPC_MoveParent, ++/* 39578*/ OPC_MoveChild, 23, ++/* 39580*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39583*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39585*/ OPC_CheckType, MVT::i32, ++/* 39587*/ OPC_MoveParent, ++/* 39588*/ OPC_MoveChild, 24, ++/* 39590*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39593*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39595*/ OPC_CheckType, MVT::i32, ++/* 39597*/ OPC_MoveParent, ++/* 39598*/ OPC_MoveChild, 25, ++/* 39600*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39603*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39605*/ OPC_CheckType, MVT::i32, ++/* 39607*/ OPC_MoveParent, ++/* 39608*/ OPC_MoveChild, 26, ++/* 39610*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39613*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39615*/ OPC_CheckType, MVT::i32, ++/* 39617*/ OPC_MoveParent, ++/* 39618*/ OPC_MoveChild, 27, ++/* 39620*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39623*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39625*/ OPC_CheckType, MVT::i32, ++/* 39627*/ OPC_MoveParent, ++/* 39628*/ OPC_MoveChild, 28, ++/* 39630*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39633*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39635*/ OPC_CheckType, MVT::i32, ++/* 39637*/ OPC_MoveParent, ++/* 39638*/ OPC_MoveChild, 29, ++/* 39640*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39643*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39645*/ OPC_CheckType, MVT::i32, ++/* 39647*/ OPC_MoveParent, ++/* 39648*/ OPC_MoveChild, 30, ++/* 39650*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39653*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39655*/ OPC_CheckType, MVT::i32, ++/* 39657*/ OPC_MoveParent, ++/* 39658*/ OPC_MoveChild, 31, ++/* 39660*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39663*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39665*/ OPC_CheckType, MVT::i32, ++/* 39667*/ OPC_MoveParent, ++/* 39668*/ OPC_MoveParent, ++/* 39669*/ OPC_RecordChild1, // #0 = $vt ++/* 39670*/ OPC_CheckType, MVT::v32i8, ++/* 39672*/ OPC_MoveParent, ++/* 39673*/ OPC_MoveParent, ++/* 39674*/ OPC_MoveChild1, ++/* 39675*/ OPC_CheckImmAllOnesV, ++/* 39676*/ OPC_MoveParent, ++/* 39677*/ OPC_MoveParent, ++/* 39678*/ OPC_RecordChild1, // #1 = $vs ++/* 39679*/ OPC_CheckType, MVT::v32i8, ++/* 39681*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 39683*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v32i8] } (xor:{ *:[v32i8] } (shl:{ *:[v32i8] } (build_vector:{ *:[v32i8] })<>, (and:{ *:[v32i8] } (build_vector:{ *:[v32i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v32i8:{ *:[v32i8] }:$vt)), immAllOnesV:{ *:[v32i8] }), v32i8:{ *:[v32i8] }:$vs) - Complexity = 151 ++ // Dst: (XVBITCLR_B:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vs, v32i8:{ *:[v32i8] }:$vt) ++/* 39691*/ 0, /*End of Scope*/ ++/* 39692*/ /*Scope*/ 55|128,5/*695*/, /*->40389*/ ++/* 39694*/ OPC_CheckImmAllOnesV, ++/* 39695*/ OPC_MoveParent, ++/* 39696*/ OPC_MoveChild1, ++/* 39697*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 39700*/ OPC_MoveChild0, ++/* 39701*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 39704*/ OPC_CheckPredicate, 42, // Predicate_xvsplat_imm_eq_1 ++/* 39706*/ OPC_MoveParent, ++/* 39707*/ OPC_MoveChild1, ++/* 39708*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 39711*/ OPC_Scope, 80|128,2/*336*/, /*->40050*/ // 2 children in Scope ++/* 39714*/ OPC_RecordChild0, // #0 = $vt ++/* 39715*/ OPC_MoveChild1, ++/* 39716*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 39719*/ OPC_MoveChild0, ++/* 39720*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39723*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39725*/ OPC_CheckType, MVT::i32, ++/* 39727*/ OPC_MoveParent, ++/* 39728*/ OPC_MoveChild1, ++/* 39729*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39732*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39734*/ OPC_CheckType, MVT::i32, ++/* 39736*/ OPC_MoveParent, ++/* 39737*/ OPC_MoveChild2, ++/* 39738*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39741*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39743*/ OPC_CheckType, MVT::i32, ++/* 39745*/ OPC_MoveParent, ++/* 39746*/ OPC_MoveChild3, ++/* 39747*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39750*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39752*/ OPC_CheckType, MVT::i32, ++/* 39754*/ OPC_MoveParent, ++/* 39755*/ OPC_MoveChild4, ++/* 39756*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39759*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39761*/ OPC_CheckType, MVT::i32, ++/* 39763*/ OPC_MoveParent, ++/* 39764*/ OPC_MoveChild5, ++/* 39765*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39768*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39770*/ OPC_CheckType, MVT::i32, ++/* 39772*/ OPC_MoveParent, ++/* 39773*/ OPC_MoveChild6, ++/* 39774*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39777*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39779*/ OPC_CheckType, MVT::i32, ++/* 39781*/ OPC_MoveParent, ++/* 39782*/ OPC_MoveChild7, ++/* 39783*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39786*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39788*/ OPC_CheckType, MVT::i32, ++/* 39790*/ OPC_MoveParent, ++/* 39791*/ OPC_MoveChild, 8, ++/* 39793*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39796*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39798*/ OPC_CheckType, MVT::i32, ++/* 39800*/ OPC_MoveParent, ++/* 39801*/ OPC_MoveChild, 9, ++/* 39803*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39806*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39808*/ OPC_CheckType, MVT::i32, ++/* 39810*/ OPC_MoveParent, ++/* 39811*/ OPC_MoveChild, 10, ++/* 39813*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39816*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39818*/ OPC_CheckType, MVT::i32, ++/* 39820*/ OPC_MoveParent, ++/* 39821*/ OPC_MoveChild, 11, ++/* 39823*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39826*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39828*/ OPC_CheckType, MVT::i32, ++/* 39830*/ OPC_MoveParent, ++/* 39831*/ OPC_MoveChild, 12, ++/* 39833*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39836*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39838*/ OPC_CheckType, MVT::i32, ++/* 39840*/ OPC_MoveParent, ++/* 39841*/ OPC_MoveChild, 13, ++/* 39843*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39846*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39848*/ OPC_CheckType, MVT::i32, ++/* 39850*/ OPC_MoveParent, ++/* 39851*/ OPC_MoveChild, 14, ++/* 39853*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39856*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39858*/ OPC_CheckType, MVT::i32, ++/* 39860*/ OPC_MoveParent, ++/* 39861*/ OPC_MoveChild, 15, ++/* 39863*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39866*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39868*/ OPC_CheckType, MVT::i32, ++/* 39870*/ OPC_MoveParent, ++/* 39871*/ OPC_MoveChild, 16, ++/* 39873*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39876*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39878*/ OPC_CheckType, MVT::i32, ++/* 39880*/ OPC_MoveParent, ++/* 39881*/ OPC_MoveChild, 17, ++/* 39883*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39886*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39888*/ OPC_CheckType, MVT::i32, ++/* 39890*/ OPC_MoveParent, ++/* 39891*/ OPC_MoveChild, 18, ++/* 39893*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39896*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39898*/ OPC_CheckType, MVT::i32, ++/* 39900*/ OPC_MoveParent, ++/* 39901*/ OPC_MoveChild, 19, ++/* 39903*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39906*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39908*/ OPC_CheckType, MVT::i32, ++/* 39910*/ OPC_MoveParent, ++/* 39911*/ OPC_MoveChild, 20, ++/* 39913*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39916*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39918*/ OPC_CheckType, MVT::i32, ++/* 39920*/ OPC_MoveParent, ++/* 39921*/ OPC_MoveChild, 21, ++/* 39923*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39926*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39928*/ OPC_CheckType, MVT::i32, ++/* 39930*/ OPC_MoveParent, ++/* 39931*/ OPC_MoveChild, 22, ++/* 39933*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39936*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39938*/ OPC_CheckType, MVT::i32, ++/* 39940*/ OPC_MoveParent, ++/* 39941*/ OPC_MoveChild, 23, ++/* 39943*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39946*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39948*/ OPC_CheckType, MVT::i32, ++/* 39950*/ OPC_MoveParent, ++/* 39951*/ OPC_MoveChild, 24, ++/* 39953*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39956*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39958*/ OPC_CheckType, MVT::i32, ++/* 39960*/ OPC_MoveParent, ++/* 39961*/ OPC_MoveChild, 25, ++/* 39963*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39966*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39968*/ OPC_CheckType, MVT::i32, ++/* 39970*/ OPC_MoveParent, ++/* 39971*/ OPC_MoveChild, 26, ++/* 39973*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39976*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39978*/ OPC_CheckType, MVT::i32, ++/* 39980*/ OPC_MoveParent, ++/* 39981*/ OPC_MoveChild, 27, ++/* 39983*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39986*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39988*/ OPC_CheckType, MVT::i32, ++/* 39990*/ OPC_MoveParent, ++/* 39991*/ OPC_MoveChild, 28, ++/* 39993*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 39996*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 39998*/ OPC_CheckType, MVT::i32, ++/* 40000*/ OPC_MoveParent, ++/* 40001*/ OPC_MoveChild, 29, ++/* 40003*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40006*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 40008*/ OPC_CheckType, MVT::i32, ++/* 40010*/ OPC_MoveParent, ++/* 40011*/ OPC_MoveChild, 30, ++/* 40013*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40016*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 40018*/ OPC_CheckType, MVT::i32, ++/* 40020*/ OPC_MoveParent, ++/* 40021*/ OPC_MoveChild, 31, ++/* 40023*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40026*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 40028*/ OPC_CheckType, MVT::i32, ++/* 40030*/ OPC_MoveParent, ++/* 40031*/ OPC_MoveParent, ++/* 40032*/ OPC_CheckType, MVT::v32i8, ++/* 40034*/ OPC_MoveParent, ++/* 40035*/ OPC_MoveParent, ++/* 40036*/ OPC_MoveParent, ++/* 40037*/ OPC_RecordChild1, // #1 = $vs ++/* 40038*/ OPC_CheckType, MVT::v32i8, ++/* 40040*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 40042*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v32i8] } (xor:{ *:[v32i8] } immAllOnesV:{ *:[v32i8] }, (shl:{ *:[v32i8] } (build_vector:{ *:[v32i8] })<>, (and:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vt, (build_vector:{ *:[v32i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>)))), v32i8:{ *:[v32i8] }:$vs) - Complexity = 151 ++ // Dst: (XVBITCLR_B:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vs, v32i8:{ *:[v32i8] }:$vt) ++/* 40050*/ /*Scope*/ 80|128,2/*336*/, /*->40388*/ ++/* 40052*/ OPC_MoveChild0, ++/* 40053*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 40056*/ OPC_MoveChild0, ++/* 40057*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40060*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 40062*/ OPC_CheckType, MVT::i32, ++/* 40064*/ OPC_MoveParent, ++/* 40065*/ OPC_MoveChild1, ++/* 40066*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40069*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 40071*/ OPC_CheckType, MVT::i32, ++/* 40073*/ OPC_MoveParent, ++/* 40074*/ OPC_MoveChild2, ++/* 40075*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40078*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 40080*/ OPC_CheckType, MVT::i32, ++/* 40082*/ OPC_MoveParent, ++/* 40083*/ OPC_MoveChild3, ++/* 40084*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40087*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 40089*/ OPC_CheckType, MVT::i32, ++/* 40091*/ OPC_MoveParent, ++/* 40092*/ OPC_MoveChild4, ++/* 40093*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40096*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 40098*/ OPC_CheckType, MVT::i32, ++/* 40100*/ OPC_MoveParent, ++/* 40101*/ OPC_MoveChild5, ++/* 40102*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40105*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 40107*/ OPC_CheckType, MVT::i32, ++/* 40109*/ OPC_MoveParent, ++/* 40110*/ OPC_MoveChild6, ++/* 40111*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40114*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 40116*/ OPC_CheckType, MVT::i32, ++/* 40118*/ OPC_MoveParent, ++/* 40119*/ OPC_MoveChild7, ++/* 40120*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40123*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 40125*/ OPC_CheckType, MVT::i32, ++/* 40127*/ OPC_MoveParent, ++/* 40128*/ OPC_MoveChild, 8, ++/* 40130*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40133*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 40135*/ OPC_CheckType, MVT::i32, ++/* 40137*/ OPC_MoveParent, ++/* 40138*/ OPC_MoveChild, 9, ++/* 40140*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40143*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 40145*/ OPC_CheckType, MVT::i32, ++/* 40147*/ OPC_MoveParent, ++/* 40148*/ OPC_MoveChild, 10, ++/* 40150*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40153*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 40155*/ OPC_CheckType, MVT::i32, ++/* 40157*/ OPC_MoveParent, ++/* 40158*/ OPC_MoveChild, 11, ++/* 40160*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40163*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 40165*/ OPC_CheckType, MVT::i32, ++/* 40167*/ OPC_MoveParent, ++/* 40168*/ OPC_MoveChild, 12, ++/* 40170*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40173*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 40175*/ OPC_CheckType, MVT::i32, ++/* 40177*/ OPC_MoveParent, ++/* 40178*/ OPC_MoveChild, 13, ++/* 40180*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40183*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 40185*/ OPC_CheckType, MVT::i32, ++/* 40187*/ OPC_MoveParent, ++/* 40188*/ OPC_MoveChild, 14, ++/* 40190*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40193*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 40195*/ OPC_CheckType, MVT::i32, ++/* 40197*/ OPC_MoveParent, ++/* 40198*/ OPC_MoveChild, 15, ++/* 40200*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40203*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 40205*/ OPC_CheckType, MVT::i32, ++/* 40207*/ OPC_MoveParent, ++/* 40208*/ OPC_MoveChild, 16, ++/* 40210*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40213*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 40215*/ OPC_CheckType, MVT::i32, ++/* 40217*/ OPC_MoveParent, ++/* 40218*/ OPC_MoveChild, 17, ++/* 40220*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40223*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 40225*/ OPC_CheckType, MVT::i32, ++/* 40227*/ OPC_MoveParent, ++/* 40228*/ OPC_MoveChild, 18, ++/* 40230*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40233*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 40235*/ OPC_CheckType, MVT::i32, ++/* 40237*/ OPC_MoveParent, ++/* 40238*/ OPC_MoveChild, 19, ++/* 40240*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40243*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 40245*/ OPC_CheckType, MVT::i32, ++/* 40247*/ OPC_MoveParent, ++/* 40248*/ OPC_MoveChild, 20, ++/* 40250*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40253*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 40255*/ OPC_CheckType, MVT::i32, ++/* 40257*/ OPC_MoveParent, ++/* 40258*/ OPC_MoveChild, 21, ++/* 40260*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40263*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 40265*/ OPC_CheckType, MVT::i32, ++/* 40267*/ OPC_MoveParent, ++/* 40268*/ OPC_MoveChild, 22, ++/* 40270*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40273*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 40275*/ OPC_CheckType, MVT::i32, ++/* 40277*/ OPC_MoveParent, ++/* 40278*/ OPC_MoveChild, 23, ++/* 40280*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40283*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 40285*/ OPC_CheckType, MVT::i32, ++/* 40287*/ OPC_MoveParent, ++/* 40288*/ OPC_MoveChild, 24, ++/* 40290*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40293*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 40295*/ OPC_CheckType, MVT::i32, ++/* 40297*/ OPC_MoveParent, ++/* 40298*/ OPC_MoveChild, 25, ++/* 40300*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40303*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 40305*/ OPC_CheckType, MVT::i32, ++/* 40307*/ OPC_MoveParent, ++/* 40308*/ OPC_MoveChild, 26, ++/* 40310*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40313*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 40315*/ OPC_CheckType, MVT::i32, ++/* 40317*/ OPC_MoveParent, ++/* 40318*/ OPC_MoveChild, 27, ++/* 40320*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40323*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 40325*/ OPC_CheckType, MVT::i32, ++/* 40327*/ OPC_MoveParent, ++/* 40328*/ OPC_MoveChild, 28, ++/* 40330*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40333*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 40335*/ OPC_CheckType, MVT::i32, ++/* 40337*/ OPC_MoveParent, ++/* 40338*/ OPC_MoveChild, 29, ++/* 40340*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40343*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 40345*/ OPC_CheckType, MVT::i32, ++/* 40347*/ OPC_MoveParent, ++/* 40348*/ OPC_MoveChild, 30, ++/* 40350*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40353*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 40355*/ OPC_CheckType, MVT::i32, ++/* 40357*/ OPC_MoveParent, ++/* 40358*/ OPC_MoveChild, 31, ++/* 40360*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40363*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 40365*/ OPC_CheckType, MVT::i32, ++/* 40367*/ OPC_MoveParent, ++/* 40368*/ OPC_MoveParent, ++/* 40369*/ OPC_RecordChild1, // #0 = $vt ++/* 40370*/ OPC_CheckType, MVT::v32i8, ++/* 40372*/ OPC_MoveParent, ++/* 40373*/ OPC_MoveParent, ++/* 40374*/ OPC_MoveParent, ++/* 40375*/ OPC_RecordChild1, // #1 = $vs ++/* 40376*/ OPC_CheckType, MVT::v32i8, ++/* 40378*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 40380*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v32i8] } (xor:{ *:[v32i8] } immAllOnesV:{ *:[v32i8] }, (shl:{ *:[v32i8] } (build_vector:{ *:[v32i8] })<>, (and:{ *:[v32i8] } (build_vector:{ *:[v32i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v32i8:{ *:[v32i8] }:$vt))), v32i8:{ *:[v32i8] }:$vs) - Complexity = 151 ++ // Dst: (XVBITCLR_B:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vs, v32i8:{ *:[v32i8] }:$vt) ++/* 40388*/ 0, /*End of Scope*/ ++/* 40389*/ 0, /*End of Scope*/ ++/* 40390*/ /*Scope*/ 58|128,5/*698*/, /*->41090*/ ++/* 40392*/ OPC_RecordChild0, // #0 = $xj ++/* 40393*/ OPC_MoveChild1, ++/* 40394*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 40397*/ OPC_MoveChild0, ++/* 40398*/ OPC_SwitchOpcode /*2 cases */, 85|128,2/*341*/, TARGET_VAL(ISD::SHL),// ->40744 ++/* 40403*/ OPC_MoveChild0, ++/* 40404*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 40407*/ OPC_CheckPredicate, 42, // Predicate_xvsplat_imm_eq_1 ++/* 40409*/ OPC_MoveParent, ++/* 40410*/ OPC_RecordChild1, // #1 = $xk ++/* 40411*/ OPC_CheckChild1Type, MVT::v32i8, ++/* 40413*/ OPC_MoveParent, ++/* 40414*/ OPC_MoveChild1, ++/* 40415*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 40418*/ OPC_MoveChild0, ++/* 40419*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40422*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40424*/ OPC_CheckType, MVT::i32, ++/* 40426*/ OPC_MoveParent, ++/* 40427*/ OPC_MoveChild1, ++/* 40428*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40431*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40433*/ OPC_CheckType, MVT::i32, ++/* 40435*/ OPC_MoveParent, ++/* 40436*/ OPC_MoveChild2, ++/* 40437*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40440*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40442*/ OPC_CheckType, MVT::i32, ++/* 40444*/ OPC_MoveParent, ++/* 40445*/ OPC_MoveChild3, ++/* 40446*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40449*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40451*/ OPC_CheckType, MVT::i32, ++/* 40453*/ OPC_MoveParent, ++/* 40454*/ OPC_MoveChild4, ++/* 40455*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40458*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40460*/ OPC_CheckType, MVT::i32, ++/* 40462*/ OPC_MoveParent, ++/* 40463*/ OPC_MoveChild5, ++/* 40464*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40467*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40469*/ OPC_CheckType, MVT::i32, ++/* 40471*/ OPC_MoveParent, ++/* 40472*/ OPC_MoveChild6, ++/* 40473*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40476*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40478*/ OPC_CheckType, MVT::i32, ++/* 40480*/ OPC_MoveParent, ++/* 40481*/ OPC_MoveChild7, ++/* 40482*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40485*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40487*/ OPC_CheckType, MVT::i32, ++/* 40489*/ OPC_MoveParent, ++/* 40490*/ OPC_MoveChild, 8, ++/* 40492*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40495*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40497*/ OPC_CheckType, MVT::i32, ++/* 40499*/ OPC_MoveParent, ++/* 40500*/ OPC_MoveChild, 9, ++/* 40502*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40505*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40507*/ OPC_CheckType, MVT::i32, ++/* 40509*/ OPC_MoveParent, ++/* 40510*/ OPC_MoveChild, 10, ++/* 40512*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40515*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40517*/ OPC_CheckType, MVT::i32, ++/* 40519*/ OPC_MoveParent, ++/* 40520*/ OPC_MoveChild, 11, ++/* 40522*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40525*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40527*/ OPC_CheckType, MVT::i32, ++/* 40529*/ OPC_MoveParent, ++/* 40530*/ OPC_MoveChild, 12, ++/* 40532*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40535*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40537*/ OPC_CheckType, MVT::i32, ++/* 40539*/ OPC_MoveParent, ++/* 40540*/ OPC_MoveChild, 13, ++/* 40542*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40545*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40547*/ OPC_CheckType, MVT::i32, ++/* 40549*/ OPC_MoveParent, ++/* 40550*/ OPC_MoveChild, 14, ++/* 40552*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40555*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40557*/ OPC_CheckType, MVT::i32, ++/* 40559*/ OPC_MoveParent, ++/* 40560*/ OPC_MoveChild, 15, ++/* 40562*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40565*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40567*/ OPC_CheckType, MVT::i32, ++/* 40569*/ OPC_MoveParent, ++/* 40570*/ OPC_MoveChild, 16, ++/* 40572*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40575*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40577*/ OPC_CheckType, MVT::i32, ++/* 40579*/ OPC_MoveParent, ++/* 40580*/ OPC_MoveChild, 17, ++/* 40582*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40585*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40587*/ OPC_CheckType, MVT::i32, ++/* 40589*/ OPC_MoveParent, ++/* 40590*/ OPC_MoveChild, 18, ++/* 40592*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40595*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40597*/ OPC_CheckType, MVT::i32, ++/* 40599*/ OPC_MoveParent, ++/* 40600*/ OPC_MoveChild, 19, ++/* 40602*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40605*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40607*/ OPC_CheckType, MVT::i32, ++/* 40609*/ OPC_MoveParent, ++/* 40610*/ OPC_MoveChild, 20, ++/* 40612*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40615*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40617*/ OPC_CheckType, MVT::i32, ++/* 40619*/ OPC_MoveParent, ++/* 40620*/ OPC_MoveChild, 21, ++/* 40622*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40625*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40627*/ OPC_CheckType, MVT::i32, ++/* 40629*/ OPC_MoveParent, ++/* 40630*/ OPC_MoveChild, 22, ++/* 40632*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40635*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40637*/ OPC_CheckType, MVT::i32, ++/* 40639*/ OPC_MoveParent, ++/* 40640*/ OPC_MoveChild, 23, ++/* 40642*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40645*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40647*/ OPC_CheckType, MVT::i32, ++/* 40649*/ OPC_MoveParent, ++/* 40650*/ OPC_MoveChild, 24, ++/* 40652*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40655*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40657*/ OPC_CheckType, MVT::i32, ++/* 40659*/ OPC_MoveParent, ++/* 40660*/ OPC_MoveChild, 25, ++/* 40662*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40665*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40667*/ OPC_CheckType, MVT::i32, ++/* 40669*/ OPC_MoveParent, ++/* 40670*/ OPC_MoveChild, 26, ++/* 40672*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40675*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40677*/ OPC_CheckType, MVT::i32, ++/* 40679*/ OPC_MoveParent, ++/* 40680*/ OPC_MoveChild, 27, ++/* 40682*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40685*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40687*/ OPC_CheckType, MVT::i32, ++/* 40689*/ OPC_MoveParent, ++/* 40690*/ OPC_MoveChild, 28, ++/* 40692*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40695*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40697*/ OPC_CheckType, MVT::i32, ++/* 40699*/ OPC_MoveParent, ++/* 40700*/ OPC_MoveChild, 29, ++/* 40702*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40705*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40707*/ OPC_CheckType, MVT::i32, ++/* 40709*/ OPC_MoveParent, ++/* 40710*/ OPC_MoveChild, 30, ++/* 40712*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40715*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40717*/ OPC_CheckType, MVT::i32, ++/* 40719*/ OPC_MoveParent, ++/* 40720*/ OPC_MoveChild, 31, ++/* 40722*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40725*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40727*/ OPC_CheckType, MVT::i32, ++/* 40729*/ OPC_MoveParent, ++/* 40730*/ OPC_MoveParent, ++/* 40731*/ OPC_MoveParent, ++/* 40732*/ OPC_CheckType, MVT::v32i8, ++/* 40734*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 40736*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$xj, (xor:{ *:[v32i8] } (shl:{ *:[v32i8] } (build_vector:{ *:[v32i8] })<>, v32i8:{ *:[v32i8] }:$xk), (build_vector:{ *:[v32i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))) - Complexity = 144 ++ // Dst: (XVBITCLR_B:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$xj, v32i8:{ *:[v32i8] }:$xk) ++/* 40744*/ /*SwitchOpcode*/ 85|128,2/*341*/, TARGET_VAL(ISD::BUILD_VECTOR),// ->41089 ++/* 40748*/ OPC_MoveChild0, ++/* 40749*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40752*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40754*/ OPC_CheckType, MVT::i32, ++/* 40756*/ OPC_MoveParent, ++/* 40757*/ OPC_MoveChild1, ++/* 40758*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40761*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40763*/ OPC_CheckType, MVT::i32, ++/* 40765*/ OPC_MoveParent, ++/* 40766*/ OPC_MoveChild2, ++/* 40767*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40770*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40772*/ OPC_CheckType, MVT::i32, ++/* 40774*/ OPC_MoveParent, ++/* 40775*/ OPC_MoveChild3, ++/* 40776*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40779*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40781*/ OPC_CheckType, MVT::i32, ++/* 40783*/ OPC_MoveParent, ++/* 40784*/ OPC_MoveChild4, ++/* 40785*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40788*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40790*/ OPC_CheckType, MVT::i32, ++/* 40792*/ OPC_MoveParent, ++/* 40793*/ OPC_MoveChild5, ++/* 40794*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40797*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40799*/ OPC_CheckType, MVT::i32, ++/* 40801*/ OPC_MoveParent, ++/* 40802*/ OPC_MoveChild6, ++/* 40803*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40806*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40808*/ OPC_CheckType, MVT::i32, ++/* 40810*/ OPC_MoveParent, ++/* 40811*/ OPC_MoveChild7, ++/* 40812*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40815*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40817*/ OPC_CheckType, MVT::i32, ++/* 40819*/ OPC_MoveParent, ++/* 40820*/ OPC_MoveChild, 8, ++/* 40822*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40825*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40827*/ OPC_CheckType, MVT::i32, ++/* 40829*/ OPC_MoveParent, ++/* 40830*/ OPC_MoveChild, 9, ++/* 40832*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40835*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40837*/ OPC_CheckType, MVT::i32, ++/* 40839*/ OPC_MoveParent, ++/* 40840*/ OPC_MoveChild, 10, ++/* 40842*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40845*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40847*/ OPC_CheckType, MVT::i32, ++/* 40849*/ OPC_MoveParent, ++/* 40850*/ OPC_MoveChild, 11, ++/* 40852*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40855*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40857*/ OPC_CheckType, MVT::i32, ++/* 40859*/ OPC_MoveParent, ++/* 40860*/ OPC_MoveChild, 12, ++/* 40862*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40865*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40867*/ OPC_CheckType, MVT::i32, ++/* 40869*/ OPC_MoveParent, ++/* 40870*/ OPC_MoveChild, 13, ++/* 40872*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40875*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40877*/ OPC_CheckType, MVT::i32, ++/* 40879*/ OPC_MoveParent, ++/* 40880*/ OPC_MoveChild, 14, ++/* 40882*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40885*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40887*/ OPC_CheckType, MVT::i32, ++/* 40889*/ OPC_MoveParent, ++/* 40890*/ OPC_MoveChild, 15, ++/* 40892*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40895*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40897*/ OPC_CheckType, MVT::i32, ++/* 40899*/ OPC_MoveParent, ++/* 40900*/ OPC_MoveChild, 16, ++/* 40902*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40905*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40907*/ OPC_CheckType, MVT::i32, ++/* 40909*/ OPC_MoveParent, ++/* 40910*/ OPC_MoveChild, 17, ++/* 40912*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40915*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40917*/ OPC_CheckType, MVT::i32, ++/* 40919*/ OPC_MoveParent, ++/* 40920*/ OPC_MoveChild, 18, ++/* 40922*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40925*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40927*/ OPC_CheckType, MVT::i32, ++/* 40929*/ OPC_MoveParent, ++/* 40930*/ OPC_MoveChild, 19, ++/* 40932*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40935*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40937*/ OPC_CheckType, MVT::i32, ++/* 40939*/ OPC_MoveParent, ++/* 40940*/ OPC_MoveChild, 20, ++/* 40942*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40945*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40947*/ OPC_CheckType, MVT::i32, ++/* 40949*/ OPC_MoveParent, ++/* 40950*/ OPC_MoveChild, 21, ++/* 40952*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40955*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40957*/ OPC_CheckType, MVT::i32, ++/* 40959*/ OPC_MoveParent, ++/* 40960*/ OPC_MoveChild, 22, ++/* 40962*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40965*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40967*/ OPC_CheckType, MVT::i32, ++/* 40969*/ OPC_MoveParent, ++/* 40970*/ OPC_MoveChild, 23, ++/* 40972*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40975*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40977*/ OPC_CheckType, MVT::i32, ++/* 40979*/ OPC_MoveParent, ++/* 40980*/ OPC_MoveChild, 24, ++/* 40982*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40985*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40987*/ OPC_CheckType, MVT::i32, ++/* 40989*/ OPC_MoveParent, ++/* 40990*/ OPC_MoveChild, 25, ++/* 40992*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 40995*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 40997*/ OPC_CheckType, MVT::i32, ++/* 40999*/ OPC_MoveParent, ++/* 41000*/ OPC_MoveChild, 26, ++/* 41002*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41005*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41007*/ OPC_CheckType, MVT::i32, ++/* 41009*/ OPC_MoveParent, ++/* 41010*/ OPC_MoveChild, 27, ++/* 41012*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41015*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41017*/ OPC_CheckType, MVT::i32, ++/* 41019*/ OPC_MoveParent, ++/* 41020*/ OPC_MoveChild, 28, ++/* 41022*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41025*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41027*/ OPC_CheckType, MVT::i32, ++/* 41029*/ OPC_MoveParent, ++/* 41030*/ OPC_MoveChild, 29, ++/* 41032*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41035*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41037*/ OPC_CheckType, MVT::i32, ++/* 41039*/ OPC_MoveParent, ++/* 41040*/ OPC_MoveChild, 30, ++/* 41042*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41045*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41047*/ OPC_CheckType, MVT::i32, ++/* 41049*/ OPC_MoveParent, ++/* 41050*/ OPC_MoveChild, 31, ++/* 41052*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41055*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41057*/ OPC_CheckType, MVT::i32, ++/* 41059*/ OPC_MoveParent, ++/* 41060*/ OPC_MoveParent, ++/* 41061*/ OPC_MoveChild1, ++/* 41062*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 41065*/ OPC_MoveChild0, ++/* 41066*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 41069*/ OPC_CheckPredicate, 42, // Predicate_xvsplat_imm_eq_1 ++/* 41071*/ OPC_MoveParent, ++/* 41072*/ OPC_RecordChild1, // #1 = $xk ++/* 41073*/ OPC_CheckChild1Type, MVT::v32i8, ++/* 41075*/ OPC_MoveParent, ++/* 41076*/ OPC_MoveParent, ++/* 41077*/ OPC_CheckType, MVT::v32i8, ++/* 41079*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 41081*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$xj, (xor:{ *:[v32i8] } (build_vector:{ *:[v32i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), (shl:{ *:[v32i8] } (build_vector:{ *:[v32i8] })<>, v32i8:{ *:[v32i8] }:$xk))) - Complexity = 144 ++ // Dst: (XVBITCLR_B:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$xj, v32i8:{ *:[v32i8] }:$xk) ++/* 41089*/ 0, // EndSwitchOpcode ++/* 41090*/ /*Scope*/ 91|128,10/*1371*/, /*->42463*/ ++/* 41092*/ OPC_MoveChild0, ++/* 41093*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 41096*/ OPC_Scope, 55|128,5/*695*/, /*->41794*/ // 3 children in Scope ++/* 41099*/ OPC_MoveChild0, ++/* 41100*/ OPC_SwitchOpcode /*2 cases */, 86|128,2/*342*/, TARGET_VAL(ISD::SHL),// ->41447 ++/* 41105*/ OPC_MoveChild0, ++/* 41106*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 41109*/ OPC_CheckPredicate, 42, // Predicate_xvsplat_imm_eq_1 ++/* 41111*/ OPC_MoveParent, ++/* 41112*/ OPC_RecordChild1, // #0 = $xk ++/* 41113*/ OPC_CheckChild1Type, MVT::v32i8, ++/* 41115*/ OPC_MoveParent, ++/* 41116*/ OPC_MoveChild1, ++/* 41117*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 41120*/ OPC_MoveChild0, ++/* 41121*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41124*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41126*/ OPC_CheckType, MVT::i32, ++/* 41128*/ OPC_MoveParent, ++/* 41129*/ OPC_MoveChild1, ++/* 41130*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41133*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41135*/ OPC_CheckType, MVT::i32, ++/* 41137*/ OPC_MoveParent, ++/* 41138*/ OPC_MoveChild2, ++/* 41139*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41142*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41144*/ OPC_CheckType, MVT::i32, ++/* 41146*/ OPC_MoveParent, ++/* 41147*/ OPC_MoveChild3, ++/* 41148*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41151*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41153*/ OPC_CheckType, MVT::i32, ++/* 41155*/ OPC_MoveParent, ++/* 41156*/ OPC_MoveChild4, ++/* 41157*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41160*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41162*/ OPC_CheckType, MVT::i32, ++/* 41164*/ OPC_MoveParent, ++/* 41165*/ OPC_MoveChild5, ++/* 41166*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41169*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41171*/ OPC_CheckType, MVT::i32, ++/* 41173*/ OPC_MoveParent, ++/* 41174*/ OPC_MoveChild6, ++/* 41175*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41178*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41180*/ OPC_CheckType, MVT::i32, ++/* 41182*/ OPC_MoveParent, ++/* 41183*/ OPC_MoveChild7, ++/* 41184*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41187*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41189*/ OPC_CheckType, MVT::i32, ++/* 41191*/ OPC_MoveParent, ++/* 41192*/ OPC_MoveChild, 8, ++/* 41194*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41197*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41199*/ OPC_CheckType, MVT::i32, ++/* 41201*/ OPC_MoveParent, ++/* 41202*/ OPC_MoveChild, 9, ++/* 41204*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41207*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41209*/ OPC_CheckType, MVT::i32, ++/* 41211*/ OPC_MoveParent, ++/* 41212*/ OPC_MoveChild, 10, ++/* 41214*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41217*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41219*/ OPC_CheckType, MVT::i32, ++/* 41221*/ OPC_MoveParent, ++/* 41222*/ OPC_MoveChild, 11, ++/* 41224*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41227*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41229*/ OPC_CheckType, MVT::i32, ++/* 41231*/ OPC_MoveParent, ++/* 41232*/ OPC_MoveChild, 12, ++/* 41234*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41237*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41239*/ OPC_CheckType, MVT::i32, ++/* 41241*/ OPC_MoveParent, ++/* 41242*/ OPC_MoveChild, 13, ++/* 41244*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41247*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41249*/ OPC_CheckType, MVT::i32, ++/* 41251*/ OPC_MoveParent, ++/* 41252*/ OPC_MoveChild, 14, ++/* 41254*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41257*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41259*/ OPC_CheckType, MVT::i32, ++/* 41261*/ OPC_MoveParent, ++/* 41262*/ OPC_MoveChild, 15, ++/* 41264*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41267*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41269*/ OPC_CheckType, MVT::i32, ++/* 41271*/ OPC_MoveParent, ++/* 41272*/ OPC_MoveChild, 16, ++/* 41274*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41277*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41279*/ OPC_CheckType, MVT::i32, ++/* 41281*/ OPC_MoveParent, ++/* 41282*/ OPC_MoveChild, 17, ++/* 41284*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41287*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41289*/ OPC_CheckType, MVT::i32, ++/* 41291*/ OPC_MoveParent, ++/* 41292*/ OPC_MoveChild, 18, ++/* 41294*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41297*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41299*/ OPC_CheckType, MVT::i32, ++/* 41301*/ OPC_MoveParent, ++/* 41302*/ OPC_MoveChild, 19, ++/* 41304*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41307*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41309*/ OPC_CheckType, MVT::i32, ++/* 41311*/ OPC_MoveParent, ++/* 41312*/ OPC_MoveChild, 20, ++/* 41314*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41317*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41319*/ OPC_CheckType, MVT::i32, ++/* 41321*/ OPC_MoveParent, ++/* 41322*/ OPC_MoveChild, 21, ++/* 41324*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41327*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41329*/ OPC_CheckType, MVT::i32, ++/* 41331*/ OPC_MoveParent, ++/* 41332*/ OPC_MoveChild, 22, ++/* 41334*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41337*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41339*/ OPC_CheckType, MVT::i32, ++/* 41341*/ OPC_MoveParent, ++/* 41342*/ OPC_MoveChild, 23, ++/* 41344*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41347*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41349*/ OPC_CheckType, MVT::i32, ++/* 41351*/ OPC_MoveParent, ++/* 41352*/ OPC_MoveChild, 24, ++/* 41354*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41357*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41359*/ OPC_CheckType, MVT::i32, ++/* 41361*/ OPC_MoveParent, ++/* 41362*/ OPC_MoveChild, 25, ++/* 41364*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41367*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41369*/ OPC_CheckType, MVT::i32, ++/* 41371*/ OPC_MoveParent, ++/* 41372*/ OPC_MoveChild, 26, ++/* 41374*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41377*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41379*/ OPC_CheckType, MVT::i32, ++/* 41381*/ OPC_MoveParent, ++/* 41382*/ OPC_MoveChild, 27, ++/* 41384*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41387*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41389*/ OPC_CheckType, MVT::i32, ++/* 41391*/ OPC_MoveParent, ++/* 41392*/ OPC_MoveChild, 28, ++/* 41394*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41397*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41399*/ OPC_CheckType, MVT::i32, ++/* 41401*/ OPC_MoveParent, ++/* 41402*/ OPC_MoveChild, 29, ++/* 41404*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41407*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41409*/ OPC_CheckType, MVT::i32, ++/* 41411*/ OPC_MoveParent, ++/* 41412*/ OPC_MoveChild, 30, ++/* 41414*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41417*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41419*/ OPC_CheckType, MVT::i32, ++/* 41421*/ OPC_MoveParent, ++/* 41422*/ OPC_MoveChild, 31, ++/* 41424*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41427*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41429*/ OPC_CheckType, MVT::i32, ++/* 41431*/ OPC_MoveParent, ++/* 41432*/ OPC_MoveParent, ++/* 41433*/ OPC_MoveParent, ++/* 41434*/ OPC_RecordChild1, // #1 = $xj ++/* 41435*/ OPC_CheckType, MVT::v32i8, ++/* 41437*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 41439*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v32i8] } (xor:{ *:[v32i8] } (shl:{ *:[v32i8] } (build_vector:{ *:[v32i8] })<>, v32i8:{ *:[v32i8] }:$xk), (build_vector:{ *:[v32i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>)), v32i8:{ *:[v32i8] }:$xj) - Complexity = 144 ++ // Dst: (XVBITCLR_B:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$xj, v32i8:{ *:[v32i8] }:$xk) ++/* 41447*/ /*SwitchOpcode*/ 86|128,2/*342*/, TARGET_VAL(ISD::BUILD_VECTOR),// ->41793 ++/* 41451*/ OPC_MoveChild0, ++/* 41452*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41455*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41457*/ OPC_CheckType, MVT::i32, ++/* 41459*/ OPC_MoveParent, ++/* 41460*/ OPC_MoveChild1, ++/* 41461*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41464*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41466*/ OPC_CheckType, MVT::i32, ++/* 41468*/ OPC_MoveParent, ++/* 41469*/ OPC_MoveChild2, ++/* 41470*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41473*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41475*/ OPC_CheckType, MVT::i32, ++/* 41477*/ OPC_MoveParent, ++/* 41478*/ OPC_MoveChild3, ++/* 41479*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41482*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41484*/ OPC_CheckType, MVT::i32, ++/* 41486*/ OPC_MoveParent, ++/* 41487*/ OPC_MoveChild4, ++/* 41488*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41491*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41493*/ OPC_CheckType, MVT::i32, ++/* 41495*/ OPC_MoveParent, ++/* 41496*/ OPC_MoveChild5, ++/* 41497*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41500*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41502*/ OPC_CheckType, MVT::i32, ++/* 41504*/ OPC_MoveParent, ++/* 41505*/ OPC_MoveChild6, ++/* 41506*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41509*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41511*/ OPC_CheckType, MVT::i32, ++/* 41513*/ OPC_MoveParent, ++/* 41514*/ OPC_MoveChild7, ++/* 41515*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41518*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41520*/ OPC_CheckType, MVT::i32, ++/* 41522*/ OPC_MoveParent, ++/* 41523*/ OPC_MoveChild, 8, ++/* 41525*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41528*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41530*/ OPC_CheckType, MVT::i32, ++/* 41532*/ OPC_MoveParent, ++/* 41533*/ OPC_MoveChild, 9, ++/* 41535*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41538*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41540*/ OPC_CheckType, MVT::i32, ++/* 41542*/ OPC_MoveParent, ++/* 41543*/ OPC_MoveChild, 10, ++/* 41545*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41548*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41550*/ OPC_CheckType, MVT::i32, ++/* 41552*/ OPC_MoveParent, ++/* 41553*/ OPC_MoveChild, 11, ++/* 41555*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41558*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41560*/ OPC_CheckType, MVT::i32, ++/* 41562*/ OPC_MoveParent, ++/* 41563*/ OPC_MoveChild, 12, ++/* 41565*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41568*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41570*/ OPC_CheckType, MVT::i32, ++/* 41572*/ OPC_MoveParent, ++/* 41573*/ OPC_MoveChild, 13, ++/* 41575*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41578*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41580*/ OPC_CheckType, MVT::i32, ++/* 41582*/ OPC_MoveParent, ++/* 41583*/ OPC_MoveChild, 14, ++/* 41585*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41588*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41590*/ OPC_CheckType, MVT::i32, ++/* 41592*/ OPC_MoveParent, ++/* 41593*/ OPC_MoveChild, 15, ++/* 41595*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41598*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41600*/ OPC_CheckType, MVT::i32, ++/* 41602*/ OPC_MoveParent, ++/* 41603*/ OPC_MoveChild, 16, ++/* 41605*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41608*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41610*/ OPC_CheckType, MVT::i32, ++/* 41612*/ OPC_MoveParent, ++/* 41613*/ OPC_MoveChild, 17, ++/* 41615*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41618*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41620*/ OPC_CheckType, MVT::i32, ++/* 41622*/ OPC_MoveParent, ++/* 41623*/ OPC_MoveChild, 18, ++/* 41625*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41628*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41630*/ OPC_CheckType, MVT::i32, ++/* 41632*/ OPC_MoveParent, ++/* 41633*/ OPC_MoveChild, 19, ++/* 41635*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41638*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41640*/ OPC_CheckType, MVT::i32, ++/* 41642*/ OPC_MoveParent, ++/* 41643*/ OPC_MoveChild, 20, ++/* 41645*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41648*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41650*/ OPC_CheckType, MVT::i32, ++/* 41652*/ OPC_MoveParent, ++/* 41653*/ OPC_MoveChild, 21, ++/* 41655*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41658*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41660*/ OPC_CheckType, MVT::i32, ++/* 41662*/ OPC_MoveParent, ++/* 41663*/ OPC_MoveChild, 22, ++/* 41665*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41668*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41670*/ OPC_CheckType, MVT::i32, ++/* 41672*/ OPC_MoveParent, ++/* 41673*/ OPC_MoveChild, 23, ++/* 41675*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41678*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41680*/ OPC_CheckType, MVT::i32, ++/* 41682*/ OPC_MoveParent, ++/* 41683*/ OPC_MoveChild, 24, ++/* 41685*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41688*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41690*/ OPC_CheckType, MVT::i32, ++/* 41692*/ OPC_MoveParent, ++/* 41693*/ OPC_MoveChild, 25, ++/* 41695*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41698*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41700*/ OPC_CheckType, MVT::i32, ++/* 41702*/ OPC_MoveParent, ++/* 41703*/ OPC_MoveChild, 26, ++/* 41705*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41708*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41710*/ OPC_CheckType, MVT::i32, ++/* 41712*/ OPC_MoveParent, ++/* 41713*/ OPC_MoveChild, 27, ++/* 41715*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41718*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41720*/ OPC_CheckType, MVT::i32, ++/* 41722*/ OPC_MoveParent, ++/* 41723*/ OPC_MoveChild, 28, ++/* 41725*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41728*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41730*/ OPC_CheckType, MVT::i32, ++/* 41732*/ OPC_MoveParent, ++/* 41733*/ OPC_MoveChild, 29, ++/* 41735*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41738*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41740*/ OPC_CheckType, MVT::i32, ++/* 41742*/ OPC_MoveParent, ++/* 41743*/ OPC_MoveChild, 30, ++/* 41745*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41748*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41750*/ OPC_CheckType, MVT::i32, ++/* 41752*/ OPC_MoveParent, ++/* 41753*/ OPC_MoveChild, 31, ++/* 41755*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41758*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41760*/ OPC_CheckType, MVT::i32, ++/* 41762*/ OPC_MoveParent, ++/* 41763*/ OPC_MoveParent, ++/* 41764*/ OPC_MoveChild1, ++/* 41765*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 41768*/ OPC_MoveChild0, ++/* 41769*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 41772*/ OPC_CheckPredicate, 42, // Predicate_xvsplat_imm_eq_1 ++/* 41774*/ OPC_MoveParent, ++/* 41775*/ OPC_RecordChild1, // #0 = $xk ++/* 41776*/ OPC_CheckChild1Type, MVT::v32i8, ++/* 41778*/ OPC_MoveParent, ++/* 41779*/ OPC_MoveParent, ++/* 41780*/ OPC_RecordChild1, // #1 = $xj ++/* 41781*/ OPC_CheckType, MVT::v32i8, ++/* 41783*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 41785*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v32i8] } (xor:{ *:[v32i8] } (build_vector:{ *:[v32i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), (shl:{ *:[v32i8] } (build_vector:{ *:[v32i8] })<>, v32i8:{ *:[v32i8] }:$xk)), v32i8:{ *:[v32i8] }:$xj) - Complexity = 144 ++ // Dst: (XVBITCLR_B:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$xj, v32i8:{ *:[v32i8] }:$xk) ++/* 41793*/ 0, // EndSwitchOpcode ++/* 41794*/ /*Scope*/ 76|128,2/*332*/, /*->42128*/ ++/* 41796*/ OPC_RecordChild0, // #0 = $xj ++/* 41797*/ OPC_MoveChild1, ++/* 41798*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 41801*/ OPC_MoveChild0, ++/* 41802*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41805*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41807*/ OPC_CheckType, MVT::i32, ++/* 41809*/ OPC_MoveParent, ++/* 41810*/ OPC_MoveChild1, ++/* 41811*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41814*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41816*/ OPC_CheckType, MVT::i32, ++/* 41818*/ OPC_MoveParent, ++/* 41819*/ OPC_MoveChild2, ++/* 41820*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41823*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41825*/ OPC_CheckType, MVT::i32, ++/* 41827*/ OPC_MoveParent, ++/* 41828*/ OPC_MoveChild3, ++/* 41829*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41832*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41834*/ OPC_CheckType, MVT::i32, ++/* 41836*/ OPC_MoveParent, ++/* 41837*/ OPC_MoveChild4, ++/* 41838*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41841*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41843*/ OPC_CheckType, MVT::i32, ++/* 41845*/ OPC_MoveParent, ++/* 41846*/ OPC_MoveChild5, ++/* 41847*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41850*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41852*/ OPC_CheckType, MVT::i32, ++/* 41854*/ OPC_MoveParent, ++/* 41855*/ OPC_MoveChild6, ++/* 41856*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41859*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41861*/ OPC_CheckType, MVT::i32, ++/* 41863*/ OPC_MoveParent, ++/* 41864*/ OPC_MoveChild7, ++/* 41865*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41868*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41870*/ OPC_CheckType, MVT::i32, ++/* 41872*/ OPC_MoveParent, ++/* 41873*/ OPC_MoveChild, 8, ++/* 41875*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41878*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41880*/ OPC_CheckType, MVT::i32, ++/* 41882*/ OPC_MoveParent, ++/* 41883*/ OPC_MoveChild, 9, ++/* 41885*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41888*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41890*/ OPC_CheckType, MVT::i32, ++/* 41892*/ OPC_MoveParent, ++/* 41893*/ OPC_MoveChild, 10, ++/* 41895*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41898*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41900*/ OPC_CheckType, MVT::i32, ++/* 41902*/ OPC_MoveParent, ++/* 41903*/ OPC_MoveChild, 11, ++/* 41905*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41908*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41910*/ OPC_CheckType, MVT::i32, ++/* 41912*/ OPC_MoveParent, ++/* 41913*/ OPC_MoveChild, 12, ++/* 41915*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41918*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41920*/ OPC_CheckType, MVT::i32, ++/* 41922*/ OPC_MoveParent, ++/* 41923*/ OPC_MoveChild, 13, ++/* 41925*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41928*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41930*/ OPC_CheckType, MVT::i32, ++/* 41932*/ OPC_MoveParent, ++/* 41933*/ OPC_MoveChild, 14, ++/* 41935*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41938*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41940*/ OPC_CheckType, MVT::i32, ++/* 41942*/ OPC_MoveParent, ++/* 41943*/ OPC_MoveChild, 15, ++/* 41945*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41948*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41950*/ OPC_CheckType, MVT::i32, ++/* 41952*/ OPC_MoveParent, ++/* 41953*/ OPC_MoveChild, 16, ++/* 41955*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41958*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41960*/ OPC_CheckType, MVT::i32, ++/* 41962*/ OPC_MoveParent, ++/* 41963*/ OPC_MoveChild, 17, ++/* 41965*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41968*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41970*/ OPC_CheckType, MVT::i32, ++/* 41972*/ OPC_MoveParent, ++/* 41973*/ OPC_MoveChild, 18, ++/* 41975*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41978*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41980*/ OPC_CheckType, MVT::i32, ++/* 41982*/ OPC_MoveParent, ++/* 41983*/ OPC_MoveChild, 19, ++/* 41985*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41988*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 41990*/ OPC_CheckType, MVT::i32, ++/* 41992*/ OPC_MoveParent, ++/* 41993*/ OPC_MoveChild, 20, ++/* 41995*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 41998*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42000*/ OPC_CheckType, MVT::i32, ++/* 42002*/ OPC_MoveParent, ++/* 42003*/ OPC_MoveChild, 21, ++/* 42005*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42008*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42010*/ OPC_CheckType, MVT::i32, ++/* 42012*/ OPC_MoveParent, ++/* 42013*/ OPC_MoveChild, 22, ++/* 42015*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42018*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42020*/ OPC_CheckType, MVT::i32, ++/* 42022*/ OPC_MoveParent, ++/* 42023*/ OPC_MoveChild, 23, ++/* 42025*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42028*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42030*/ OPC_CheckType, MVT::i32, ++/* 42032*/ OPC_MoveParent, ++/* 42033*/ OPC_MoveChild, 24, ++/* 42035*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42038*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42040*/ OPC_CheckType, MVT::i32, ++/* 42042*/ OPC_MoveParent, ++/* 42043*/ OPC_MoveChild, 25, ++/* 42045*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42048*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42050*/ OPC_CheckType, MVT::i32, ++/* 42052*/ OPC_MoveParent, ++/* 42053*/ OPC_MoveChild, 26, ++/* 42055*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42058*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42060*/ OPC_CheckType, MVT::i32, ++/* 42062*/ OPC_MoveParent, ++/* 42063*/ OPC_MoveChild, 27, ++/* 42065*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42068*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42070*/ OPC_CheckType, MVT::i32, ++/* 42072*/ OPC_MoveParent, ++/* 42073*/ OPC_MoveChild, 28, ++/* 42075*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42078*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42080*/ OPC_CheckType, MVT::i32, ++/* 42082*/ OPC_MoveParent, ++/* 42083*/ OPC_MoveChild, 29, ++/* 42085*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42088*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42090*/ OPC_CheckType, MVT::i32, ++/* 42092*/ OPC_MoveParent, ++/* 42093*/ OPC_MoveChild, 30, ++/* 42095*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42098*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42100*/ OPC_CheckType, MVT::i32, ++/* 42102*/ OPC_MoveParent, ++/* 42103*/ OPC_MoveChild, 31, ++/* 42105*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42108*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42110*/ OPC_CheckType, MVT::i32, ++/* 42112*/ OPC_MoveParent, ++/* 42113*/ OPC_MoveParent, ++/* 42114*/ OPC_MoveParent, ++/* 42115*/ OPC_RecordChild1, // #1 = $xk ++/* 42116*/ OPC_CheckType, MVT::v32i8, ++/* 42118*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 42120*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVANDN_V), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v32i8] } (xor:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$xj, (build_vector:{ *:[v32i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>)), LASX256B:{ *:[v32i8] }:$xk) - Complexity = 137 ++ // Dst: (XVANDN_V:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) ++/* 42128*/ /*Scope*/ 76|128,2/*332*/, /*->42462*/ ++/* 42130*/ OPC_MoveChild0, ++/* 42131*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 42134*/ OPC_MoveChild0, ++/* 42135*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42138*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42140*/ OPC_CheckType, MVT::i32, ++/* 42142*/ OPC_MoveParent, ++/* 42143*/ OPC_MoveChild1, ++/* 42144*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42147*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42149*/ OPC_CheckType, MVT::i32, ++/* 42151*/ OPC_MoveParent, ++/* 42152*/ OPC_MoveChild2, ++/* 42153*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42156*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42158*/ OPC_CheckType, MVT::i32, ++/* 42160*/ OPC_MoveParent, ++/* 42161*/ OPC_MoveChild3, ++/* 42162*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42165*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42167*/ OPC_CheckType, MVT::i32, ++/* 42169*/ OPC_MoveParent, ++/* 42170*/ OPC_MoveChild4, ++/* 42171*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42174*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42176*/ OPC_CheckType, MVT::i32, ++/* 42178*/ OPC_MoveParent, ++/* 42179*/ OPC_MoveChild5, ++/* 42180*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42183*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42185*/ OPC_CheckType, MVT::i32, ++/* 42187*/ OPC_MoveParent, ++/* 42188*/ OPC_MoveChild6, ++/* 42189*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42192*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42194*/ OPC_CheckType, MVT::i32, ++/* 42196*/ OPC_MoveParent, ++/* 42197*/ OPC_MoveChild7, ++/* 42198*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42201*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42203*/ OPC_CheckType, MVT::i32, ++/* 42205*/ OPC_MoveParent, ++/* 42206*/ OPC_MoveChild, 8, ++/* 42208*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42211*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42213*/ OPC_CheckType, MVT::i32, ++/* 42215*/ OPC_MoveParent, ++/* 42216*/ OPC_MoveChild, 9, ++/* 42218*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42221*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42223*/ OPC_CheckType, MVT::i32, ++/* 42225*/ OPC_MoveParent, ++/* 42226*/ OPC_MoveChild, 10, ++/* 42228*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42231*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42233*/ OPC_CheckType, MVT::i32, ++/* 42235*/ OPC_MoveParent, ++/* 42236*/ OPC_MoveChild, 11, ++/* 42238*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42241*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42243*/ OPC_CheckType, MVT::i32, ++/* 42245*/ OPC_MoveParent, ++/* 42246*/ OPC_MoveChild, 12, ++/* 42248*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42251*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42253*/ OPC_CheckType, MVT::i32, ++/* 42255*/ OPC_MoveParent, ++/* 42256*/ OPC_MoveChild, 13, ++/* 42258*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42261*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42263*/ OPC_CheckType, MVT::i32, ++/* 42265*/ OPC_MoveParent, ++/* 42266*/ OPC_MoveChild, 14, ++/* 42268*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42271*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42273*/ OPC_CheckType, MVT::i32, ++/* 42275*/ OPC_MoveParent, ++/* 42276*/ OPC_MoveChild, 15, ++/* 42278*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42281*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42283*/ OPC_CheckType, MVT::i32, ++/* 42285*/ OPC_MoveParent, ++/* 42286*/ OPC_MoveChild, 16, ++/* 42288*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42291*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42293*/ OPC_CheckType, MVT::i32, ++/* 42295*/ OPC_MoveParent, ++/* 42296*/ OPC_MoveChild, 17, ++/* 42298*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42301*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42303*/ OPC_CheckType, MVT::i32, ++/* 42305*/ OPC_MoveParent, ++/* 42306*/ OPC_MoveChild, 18, ++/* 42308*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42311*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42313*/ OPC_CheckType, MVT::i32, ++/* 42315*/ OPC_MoveParent, ++/* 42316*/ OPC_MoveChild, 19, ++/* 42318*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42321*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42323*/ OPC_CheckType, MVT::i32, ++/* 42325*/ OPC_MoveParent, ++/* 42326*/ OPC_MoveChild, 20, ++/* 42328*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42331*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42333*/ OPC_CheckType, MVT::i32, ++/* 42335*/ OPC_MoveParent, ++/* 42336*/ OPC_MoveChild, 21, ++/* 42338*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42341*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42343*/ OPC_CheckType, MVT::i32, ++/* 42345*/ OPC_MoveParent, ++/* 42346*/ OPC_MoveChild, 22, ++/* 42348*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42351*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42353*/ OPC_CheckType, MVT::i32, ++/* 42355*/ OPC_MoveParent, ++/* 42356*/ OPC_MoveChild, 23, ++/* 42358*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42361*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42363*/ OPC_CheckType, MVT::i32, ++/* 42365*/ OPC_MoveParent, ++/* 42366*/ OPC_MoveChild, 24, ++/* 42368*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42371*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42373*/ OPC_CheckType, MVT::i32, ++/* 42375*/ OPC_MoveParent, ++/* 42376*/ OPC_MoveChild, 25, ++/* 42378*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42381*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42383*/ OPC_CheckType, MVT::i32, ++/* 42385*/ OPC_MoveParent, ++/* 42386*/ OPC_MoveChild, 26, ++/* 42388*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42391*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42393*/ OPC_CheckType, MVT::i32, ++/* 42395*/ OPC_MoveParent, ++/* 42396*/ OPC_MoveChild, 27, ++/* 42398*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42401*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42403*/ OPC_CheckType, MVT::i32, ++/* 42405*/ OPC_MoveParent, ++/* 42406*/ OPC_MoveChild, 28, ++/* 42408*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42411*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42413*/ OPC_CheckType, MVT::i32, ++/* 42415*/ OPC_MoveParent, ++/* 42416*/ OPC_MoveChild, 29, ++/* 42418*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42421*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42423*/ OPC_CheckType, MVT::i32, ++/* 42425*/ OPC_MoveParent, ++/* 42426*/ OPC_MoveChild, 30, ++/* 42428*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42431*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42433*/ OPC_CheckType, MVT::i32, ++/* 42435*/ OPC_MoveParent, ++/* 42436*/ OPC_MoveChild, 31, ++/* 42438*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42441*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42443*/ OPC_CheckType, MVT::i32, ++/* 42445*/ OPC_MoveParent, ++/* 42446*/ OPC_MoveParent, ++/* 42447*/ OPC_RecordChild1, // #0 = $xj ++/* 42448*/ OPC_MoveParent, ++/* 42449*/ OPC_RecordChild1, // #1 = $xk ++/* 42450*/ OPC_CheckType, MVT::v32i8, ++/* 42452*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 42454*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVANDN_V), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v32i8] } (xor:{ *:[v32i8] } (build_vector:{ *:[v32i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), LASX256B:{ *:[v32i8] }:$xj), LASX256B:{ *:[v32i8] }:$xk) - Complexity = 137 ++ // Dst: (XVANDN_V:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) ++/* 42462*/ 0, /*End of Scope*/ ++/* 42463*/ /*Scope*/ 88|128,12/*1624*/, /*->44089*/ ++/* 42465*/ OPC_RecordChild0, // #0 = $xk ++/* 42466*/ OPC_MoveChild1, ++/* 42467*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 42470*/ OPC_Scope, 75|128,2/*331*/, /*->42804*/ // 2 children in Scope ++/* 42473*/ OPC_RecordChild0, // #1 = $xj ++/* 42474*/ OPC_MoveChild1, ++/* 42475*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 42478*/ OPC_MoveChild0, ++/* 42479*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42482*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42484*/ OPC_CheckType, MVT::i32, ++/* 42486*/ OPC_MoveParent, ++/* 42487*/ OPC_MoveChild1, ++/* 42488*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42491*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42493*/ OPC_CheckType, MVT::i32, ++/* 42495*/ OPC_MoveParent, ++/* 42496*/ OPC_MoveChild2, ++/* 42497*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42500*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42502*/ OPC_CheckType, MVT::i32, ++/* 42504*/ OPC_MoveParent, ++/* 42505*/ OPC_MoveChild3, ++/* 42506*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42509*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42511*/ OPC_CheckType, MVT::i32, ++/* 42513*/ OPC_MoveParent, ++/* 42514*/ OPC_MoveChild4, ++/* 42515*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42518*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42520*/ OPC_CheckType, MVT::i32, ++/* 42522*/ OPC_MoveParent, ++/* 42523*/ OPC_MoveChild5, ++/* 42524*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42527*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42529*/ OPC_CheckType, MVT::i32, ++/* 42531*/ OPC_MoveParent, ++/* 42532*/ OPC_MoveChild6, ++/* 42533*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42536*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42538*/ OPC_CheckType, MVT::i32, ++/* 42540*/ OPC_MoveParent, ++/* 42541*/ OPC_MoveChild7, ++/* 42542*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42545*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42547*/ OPC_CheckType, MVT::i32, ++/* 42549*/ OPC_MoveParent, ++/* 42550*/ OPC_MoveChild, 8, ++/* 42552*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42555*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42557*/ OPC_CheckType, MVT::i32, ++/* 42559*/ OPC_MoveParent, ++/* 42560*/ OPC_MoveChild, 9, ++/* 42562*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42565*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42567*/ OPC_CheckType, MVT::i32, ++/* 42569*/ OPC_MoveParent, ++/* 42570*/ OPC_MoveChild, 10, ++/* 42572*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42575*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42577*/ OPC_CheckType, MVT::i32, ++/* 42579*/ OPC_MoveParent, ++/* 42580*/ OPC_MoveChild, 11, ++/* 42582*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42585*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42587*/ OPC_CheckType, MVT::i32, ++/* 42589*/ OPC_MoveParent, ++/* 42590*/ OPC_MoveChild, 12, ++/* 42592*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42595*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42597*/ OPC_CheckType, MVT::i32, ++/* 42599*/ OPC_MoveParent, ++/* 42600*/ OPC_MoveChild, 13, ++/* 42602*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42605*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42607*/ OPC_CheckType, MVT::i32, ++/* 42609*/ OPC_MoveParent, ++/* 42610*/ OPC_MoveChild, 14, ++/* 42612*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42615*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42617*/ OPC_CheckType, MVT::i32, ++/* 42619*/ OPC_MoveParent, ++/* 42620*/ OPC_MoveChild, 15, ++/* 42622*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42625*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42627*/ OPC_CheckType, MVT::i32, ++/* 42629*/ OPC_MoveParent, ++/* 42630*/ OPC_MoveChild, 16, ++/* 42632*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42635*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42637*/ OPC_CheckType, MVT::i32, ++/* 42639*/ OPC_MoveParent, ++/* 42640*/ OPC_MoveChild, 17, ++/* 42642*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42645*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42647*/ OPC_CheckType, MVT::i32, ++/* 42649*/ OPC_MoveParent, ++/* 42650*/ OPC_MoveChild, 18, ++/* 42652*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42655*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42657*/ OPC_CheckType, MVT::i32, ++/* 42659*/ OPC_MoveParent, ++/* 42660*/ OPC_MoveChild, 19, ++/* 42662*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42665*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42667*/ OPC_CheckType, MVT::i32, ++/* 42669*/ OPC_MoveParent, ++/* 42670*/ OPC_MoveChild, 20, ++/* 42672*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42675*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42677*/ OPC_CheckType, MVT::i32, ++/* 42679*/ OPC_MoveParent, ++/* 42680*/ OPC_MoveChild, 21, ++/* 42682*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42685*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42687*/ OPC_CheckType, MVT::i32, ++/* 42689*/ OPC_MoveParent, ++/* 42690*/ OPC_MoveChild, 22, ++/* 42692*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42695*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42697*/ OPC_CheckType, MVT::i32, ++/* 42699*/ OPC_MoveParent, ++/* 42700*/ OPC_MoveChild, 23, ++/* 42702*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42705*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42707*/ OPC_CheckType, MVT::i32, ++/* 42709*/ OPC_MoveParent, ++/* 42710*/ OPC_MoveChild, 24, ++/* 42712*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42715*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42717*/ OPC_CheckType, MVT::i32, ++/* 42719*/ OPC_MoveParent, ++/* 42720*/ OPC_MoveChild, 25, ++/* 42722*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42725*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42727*/ OPC_CheckType, MVT::i32, ++/* 42729*/ OPC_MoveParent, ++/* 42730*/ OPC_MoveChild, 26, ++/* 42732*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42735*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42737*/ OPC_CheckType, MVT::i32, ++/* 42739*/ OPC_MoveParent, ++/* 42740*/ OPC_MoveChild, 27, ++/* 42742*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42745*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42747*/ OPC_CheckType, MVT::i32, ++/* 42749*/ OPC_MoveParent, ++/* 42750*/ OPC_MoveChild, 28, ++/* 42752*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42755*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42757*/ OPC_CheckType, MVT::i32, ++/* 42759*/ OPC_MoveParent, ++/* 42760*/ OPC_MoveChild, 29, ++/* 42762*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42765*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42767*/ OPC_CheckType, MVT::i32, ++/* 42769*/ OPC_MoveParent, ++/* 42770*/ OPC_MoveChild, 30, ++/* 42772*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42775*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42777*/ OPC_CheckType, MVT::i32, ++/* 42779*/ OPC_MoveParent, ++/* 42780*/ OPC_MoveChild, 31, ++/* 42782*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42785*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42787*/ OPC_CheckType, MVT::i32, ++/* 42789*/ OPC_MoveParent, ++/* 42790*/ OPC_MoveParent, ++/* 42791*/ OPC_MoveParent, ++/* 42792*/ OPC_CheckType, MVT::v32i8, ++/* 42794*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 42796*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVANDN_V), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$xk, (xor:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$xj, (build_vector:{ *:[v32i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))) - Complexity = 137 ++ // Dst: (XVANDN_V:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) ++/* 42804*/ /*Scope*/ 2|128,10/*1282*/, /*->44088*/ ++/* 42806*/ OPC_MoveChild0, ++/* 42807*/ OPC_Scope, 74|128,2/*330*/, /*->43140*/ // 3 children in Scope ++/* 42810*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 42813*/ OPC_MoveChild0, ++/* 42814*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42817*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42819*/ OPC_CheckType, MVT::i32, ++/* 42821*/ OPC_MoveParent, ++/* 42822*/ OPC_MoveChild1, ++/* 42823*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42826*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42828*/ OPC_CheckType, MVT::i32, ++/* 42830*/ OPC_MoveParent, ++/* 42831*/ OPC_MoveChild2, ++/* 42832*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42835*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42837*/ OPC_CheckType, MVT::i32, ++/* 42839*/ OPC_MoveParent, ++/* 42840*/ OPC_MoveChild3, ++/* 42841*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42844*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42846*/ OPC_CheckType, MVT::i32, ++/* 42848*/ OPC_MoveParent, ++/* 42849*/ OPC_MoveChild4, ++/* 42850*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42853*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42855*/ OPC_CheckType, MVT::i32, ++/* 42857*/ OPC_MoveParent, ++/* 42858*/ OPC_MoveChild5, ++/* 42859*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42862*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42864*/ OPC_CheckType, MVT::i32, ++/* 42866*/ OPC_MoveParent, ++/* 42867*/ OPC_MoveChild6, ++/* 42868*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42871*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42873*/ OPC_CheckType, MVT::i32, ++/* 42875*/ OPC_MoveParent, ++/* 42876*/ OPC_MoveChild7, ++/* 42877*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42880*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42882*/ OPC_CheckType, MVT::i32, ++/* 42884*/ OPC_MoveParent, ++/* 42885*/ OPC_MoveChild, 8, ++/* 42887*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42890*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42892*/ OPC_CheckType, MVT::i32, ++/* 42894*/ OPC_MoveParent, ++/* 42895*/ OPC_MoveChild, 9, ++/* 42897*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42900*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42902*/ OPC_CheckType, MVT::i32, ++/* 42904*/ OPC_MoveParent, ++/* 42905*/ OPC_MoveChild, 10, ++/* 42907*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42910*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42912*/ OPC_CheckType, MVT::i32, ++/* 42914*/ OPC_MoveParent, ++/* 42915*/ OPC_MoveChild, 11, ++/* 42917*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42920*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42922*/ OPC_CheckType, MVT::i32, ++/* 42924*/ OPC_MoveParent, ++/* 42925*/ OPC_MoveChild, 12, ++/* 42927*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42930*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42932*/ OPC_CheckType, MVT::i32, ++/* 42934*/ OPC_MoveParent, ++/* 42935*/ OPC_MoveChild, 13, ++/* 42937*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42940*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42942*/ OPC_CheckType, MVT::i32, ++/* 42944*/ OPC_MoveParent, ++/* 42945*/ OPC_MoveChild, 14, ++/* 42947*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42950*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42952*/ OPC_CheckType, MVT::i32, ++/* 42954*/ OPC_MoveParent, ++/* 42955*/ OPC_MoveChild, 15, ++/* 42957*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42960*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42962*/ OPC_CheckType, MVT::i32, ++/* 42964*/ OPC_MoveParent, ++/* 42965*/ OPC_MoveChild, 16, ++/* 42967*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42970*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42972*/ OPC_CheckType, MVT::i32, ++/* 42974*/ OPC_MoveParent, ++/* 42975*/ OPC_MoveChild, 17, ++/* 42977*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42980*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42982*/ OPC_CheckType, MVT::i32, ++/* 42984*/ OPC_MoveParent, ++/* 42985*/ OPC_MoveChild, 18, ++/* 42987*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 42990*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 42992*/ OPC_CheckType, MVT::i32, ++/* 42994*/ OPC_MoveParent, ++/* 42995*/ OPC_MoveChild, 19, ++/* 42997*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43000*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 43002*/ OPC_CheckType, MVT::i32, ++/* 43004*/ OPC_MoveParent, ++/* 43005*/ OPC_MoveChild, 20, ++/* 43007*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43010*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 43012*/ OPC_CheckType, MVT::i32, ++/* 43014*/ OPC_MoveParent, ++/* 43015*/ OPC_MoveChild, 21, ++/* 43017*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43020*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 43022*/ OPC_CheckType, MVT::i32, ++/* 43024*/ OPC_MoveParent, ++/* 43025*/ OPC_MoveChild, 22, ++/* 43027*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43030*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 43032*/ OPC_CheckType, MVT::i32, ++/* 43034*/ OPC_MoveParent, ++/* 43035*/ OPC_MoveChild, 23, ++/* 43037*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43040*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 43042*/ OPC_CheckType, MVT::i32, ++/* 43044*/ OPC_MoveParent, ++/* 43045*/ OPC_MoveChild, 24, ++/* 43047*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43050*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 43052*/ OPC_CheckType, MVT::i32, ++/* 43054*/ OPC_MoveParent, ++/* 43055*/ OPC_MoveChild, 25, ++/* 43057*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43060*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 43062*/ OPC_CheckType, MVT::i32, ++/* 43064*/ OPC_MoveParent, ++/* 43065*/ OPC_MoveChild, 26, ++/* 43067*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43070*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 43072*/ OPC_CheckType, MVT::i32, ++/* 43074*/ OPC_MoveParent, ++/* 43075*/ OPC_MoveChild, 27, ++/* 43077*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43080*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 43082*/ OPC_CheckType, MVT::i32, ++/* 43084*/ OPC_MoveParent, ++/* 43085*/ OPC_MoveChild, 28, ++/* 43087*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43090*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 43092*/ OPC_CheckType, MVT::i32, ++/* 43094*/ OPC_MoveParent, ++/* 43095*/ OPC_MoveChild, 29, ++/* 43097*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43100*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 43102*/ OPC_CheckType, MVT::i32, ++/* 43104*/ OPC_MoveParent, ++/* 43105*/ OPC_MoveChild, 30, ++/* 43107*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43110*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 43112*/ OPC_CheckType, MVT::i32, ++/* 43114*/ OPC_MoveParent, ++/* 43115*/ OPC_MoveChild, 31, ++/* 43117*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43120*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 43122*/ OPC_CheckType, MVT::i32, ++/* 43124*/ OPC_MoveParent, ++/* 43125*/ OPC_MoveParent, ++/* 43126*/ OPC_RecordChild1, // #1 = $xj ++/* 43127*/ OPC_MoveParent, ++/* 43128*/ OPC_CheckType, MVT::v32i8, ++/* 43130*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 43132*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVANDN_V), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$xk, (xor:{ *:[v32i8] } (build_vector:{ *:[v32i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), LASX256B:{ *:[v32i8] }:$xj)) - Complexity = 137 ++ // Dst: (XVANDN_V:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) ++/* 43140*/ /*Scope*/ 58|128,4/*570*/, /*->43712*/ ++/* 43142*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 43145*/ OPC_MoveChild0, ++/* 43146*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 43149*/ OPC_Scope, 57|128,1/*185*/, /*->43337*/ // 3 children in Scope ++/* 43152*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 43154*/ OPC_MoveParent, ++/* 43155*/ OPC_MoveChild1, ++/* 43156*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 43159*/ OPC_RecordChild0, // #1 = $vt ++/* 43160*/ OPC_MoveChild1, ++/* 43161*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 43164*/ OPC_MoveChild0, ++/* 43165*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43168*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43170*/ OPC_CheckType, MVT::i32, ++/* 43172*/ OPC_MoveParent, ++/* 43173*/ OPC_MoveChild1, ++/* 43174*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43177*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43179*/ OPC_CheckType, MVT::i32, ++/* 43181*/ OPC_MoveParent, ++/* 43182*/ OPC_MoveChild2, ++/* 43183*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43186*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43188*/ OPC_CheckType, MVT::i32, ++/* 43190*/ OPC_MoveParent, ++/* 43191*/ OPC_MoveChild3, ++/* 43192*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43195*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43197*/ OPC_CheckType, MVT::i32, ++/* 43199*/ OPC_MoveParent, ++/* 43200*/ OPC_MoveChild4, ++/* 43201*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43204*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43206*/ OPC_CheckType, MVT::i32, ++/* 43208*/ OPC_MoveParent, ++/* 43209*/ OPC_MoveChild5, ++/* 43210*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43213*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43215*/ OPC_CheckType, MVT::i32, ++/* 43217*/ OPC_MoveParent, ++/* 43218*/ OPC_MoveChild6, ++/* 43219*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43222*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43224*/ OPC_CheckType, MVT::i32, ++/* 43226*/ OPC_MoveParent, ++/* 43227*/ OPC_MoveChild7, ++/* 43228*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43231*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43233*/ OPC_CheckType, MVT::i32, ++/* 43235*/ OPC_MoveParent, ++/* 43236*/ OPC_MoveChild, 8, ++/* 43238*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43241*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43243*/ OPC_CheckType, MVT::i32, ++/* 43245*/ OPC_MoveParent, ++/* 43246*/ OPC_MoveChild, 9, ++/* 43248*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43251*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43253*/ OPC_CheckType, MVT::i32, ++/* 43255*/ OPC_MoveParent, ++/* 43256*/ OPC_MoveChild, 10, ++/* 43258*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43261*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43263*/ OPC_CheckType, MVT::i32, ++/* 43265*/ OPC_MoveParent, ++/* 43266*/ OPC_MoveChild, 11, ++/* 43268*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43271*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43273*/ OPC_CheckType, MVT::i32, ++/* 43275*/ OPC_MoveParent, ++/* 43276*/ OPC_MoveChild, 12, ++/* 43278*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43281*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43283*/ OPC_CheckType, MVT::i32, ++/* 43285*/ OPC_MoveParent, ++/* 43286*/ OPC_MoveChild, 13, ++/* 43288*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43291*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43293*/ OPC_CheckType, MVT::i32, ++/* 43295*/ OPC_MoveParent, ++/* 43296*/ OPC_MoveChild, 14, ++/* 43298*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43301*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43303*/ OPC_CheckType, MVT::i32, ++/* 43305*/ OPC_MoveParent, ++/* 43306*/ OPC_MoveChild, 15, ++/* 43308*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43311*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43313*/ OPC_CheckType, MVT::i32, ++/* 43315*/ OPC_MoveParent, ++/* 43316*/ OPC_MoveParent, ++/* 43317*/ OPC_CheckType, MVT::v16i8, ++/* 43319*/ OPC_MoveParent, ++/* 43320*/ OPC_MoveParent, ++/* 43321*/ OPC_MoveChild1, ++/* 43322*/ OPC_CheckImmAllOnesV, ++/* 43323*/ OPC_MoveParent, ++/* 43324*/ OPC_MoveParent, ++/* 43325*/ OPC_CheckType, MVT::v16i8, ++/* 43327*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 43329*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vs, (xor:{ *:[v16i8] } (shl:{ *:[v16i8] } (build_vector:{ *:[v16i8] })<>, (and:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vt, (build_vector:{ *:[v16i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))), immAllOnesV:{ *:[v16i8] })) - Complexity = 87 ++ // Dst: (VBITCLR_B:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vs, v16i8:{ *:[v16i8] }:$vt) ++/* 43337*/ /*Scope*/ 57|128,1/*185*/, /*->43524*/ ++/* 43339*/ OPC_CheckPredicate, 42, // Predicate_xvsplat_imm_eq_1 ++/* 43341*/ OPC_MoveParent, ++/* 43342*/ OPC_MoveChild1, ++/* 43343*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 43346*/ OPC_RecordChild0, // #1 = $vt ++/* 43347*/ OPC_MoveChild1, ++/* 43348*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 43351*/ OPC_MoveChild0, ++/* 43352*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43355*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 43357*/ OPC_CheckType, MVT::i32, ++/* 43359*/ OPC_MoveParent, ++/* 43360*/ OPC_MoveChild1, ++/* 43361*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43364*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 43366*/ OPC_CheckType, MVT::i32, ++/* 43368*/ OPC_MoveParent, ++/* 43369*/ OPC_MoveChild2, ++/* 43370*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43373*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 43375*/ OPC_CheckType, MVT::i32, ++/* 43377*/ OPC_MoveParent, ++/* 43378*/ OPC_MoveChild3, ++/* 43379*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43382*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 43384*/ OPC_CheckType, MVT::i32, ++/* 43386*/ OPC_MoveParent, ++/* 43387*/ OPC_MoveChild4, ++/* 43388*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43391*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 43393*/ OPC_CheckType, MVT::i32, ++/* 43395*/ OPC_MoveParent, ++/* 43396*/ OPC_MoveChild5, ++/* 43397*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43400*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 43402*/ OPC_CheckType, MVT::i32, ++/* 43404*/ OPC_MoveParent, ++/* 43405*/ OPC_MoveChild6, ++/* 43406*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43409*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 43411*/ OPC_CheckType, MVT::i32, ++/* 43413*/ OPC_MoveParent, ++/* 43414*/ OPC_MoveChild7, ++/* 43415*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43418*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 43420*/ OPC_CheckType, MVT::i32, ++/* 43422*/ OPC_MoveParent, ++/* 43423*/ OPC_MoveChild, 8, ++/* 43425*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43428*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 43430*/ OPC_CheckType, MVT::i32, ++/* 43432*/ OPC_MoveParent, ++/* 43433*/ OPC_MoveChild, 9, ++/* 43435*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43438*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 43440*/ OPC_CheckType, MVT::i32, ++/* 43442*/ OPC_MoveParent, ++/* 43443*/ OPC_MoveChild, 10, ++/* 43445*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43448*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 43450*/ OPC_CheckType, MVT::i32, ++/* 43452*/ OPC_MoveParent, ++/* 43453*/ OPC_MoveChild, 11, ++/* 43455*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43458*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 43460*/ OPC_CheckType, MVT::i32, ++/* 43462*/ OPC_MoveParent, ++/* 43463*/ OPC_MoveChild, 12, ++/* 43465*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43468*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 43470*/ OPC_CheckType, MVT::i32, ++/* 43472*/ OPC_MoveParent, ++/* 43473*/ OPC_MoveChild, 13, ++/* 43475*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43478*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 43480*/ OPC_CheckType, MVT::i32, ++/* 43482*/ OPC_MoveParent, ++/* 43483*/ OPC_MoveChild, 14, ++/* 43485*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43488*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 43490*/ OPC_CheckType, MVT::i32, ++/* 43492*/ OPC_MoveParent, ++/* 43493*/ OPC_MoveChild, 15, ++/* 43495*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43498*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 43500*/ OPC_CheckType, MVT::i32, ++/* 43502*/ OPC_MoveParent, ++/* 43503*/ OPC_MoveParent, ++/* 43504*/ OPC_CheckType, MVT::v16i16, ++/* 43506*/ OPC_MoveParent, ++/* 43507*/ OPC_MoveParent, ++/* 43508*/ OPC_MoveChild1, ++/* 43509*/ OPC_CheckImmAllOnesV, ++/* 43510*/ OPC_MoveParent, ++/* 43511*/ OPC_MoveParent, ++/* 43512*/ OPC_CheckType, MVT::v16i16, ++/* 43514*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 43516*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vs, (xor:{ *:[v16i16] } (shl:{ *:[v16i16] } (build_vector:{ *:[v16i16] })<>, (and:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vt, (build_vector:{ *:[v16i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))), immAllOnesV:{ *:[v16i16] })) - Complexity = 87 ++ // Dst: (XVBITCLR_H:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vs, v16i16:{ *:[v16i16] }:$vt) ++/* 43524*/ /*Scope*/ 57|128,1/*185*/, /*->43711*/ ++/* 43526*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 43528*/ OPC_MoveParent, ++/* 43529*/ OPC_MoveChild1, ++/* 43530*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 43533*/ OPC_MoveChild0, ++/* 43534*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 43537*/ OPC_MoveChild0, ++/* 43538*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43541*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43543*/ OPC_CheckType, MVT::i32, ++/* 43545*/ OPC_MoveParent, ++/* 43546*/ OPC_MoveChild1, ++/* 43547*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43550*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43552*/ OPC_CheckType, MVT::i32, ++/* 43554*/ OPC_MoveParent, ++/* 43555*/ OPC_MoveChild2, ++/* 43556*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43559*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43561*/ OPC_CheckType, MVT::i32, ++/* 43563*/ OPC_MoveParent, ++/* 43564*/ OPC_MoveChild3, ++/* 43565*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43568*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43570*/ OPC_CheckType, MVT::i32, ++/* 43572*/ OPC_MoveParent, ++/* 43573*/ OPC_MoveChild4, ++/* 43574*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43577*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43579*/ OPC_CheckType, MVT::i32, ++/* 43581*/ OPC_MoveParent, ++/* 43582*/ OPC_MoveChild5, ++/* 43583*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43586*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43588*/ OPC_CheckType, MVT::i32, ++/* 43590*/ OPC_MoveParent, ++/* 43591*/ OPC_MoveChild6, ++/* 43592*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43595*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43597*/ OPC_CheckType, MVT::i32, ++/* 43599*/ OPC_MoveParent, ++/* 43600*/ OPC_MoveChild7, ++/* 43601*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43604*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43606*/ OPC_CheckType, MVT::i32, ++/* 43608*/ OPC_MoveParent, ++/* 43609*/ OPC_MoveChild, 8, ++/* 43611*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43614*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43616*/ OPC_CheckType, MVT::i32, ++/* 43618*/ OPC_MoveParent, ++/* 43619*/ OPC_MoveChild, 9, ++/* 43621*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43624*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43626*/ OPC_CheckType, MVT::i32, ++/* 43628*/ OPC_MoveParent, ++/* 43629*/ OPC_MoveChild, 10, ++/* 43631*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43634*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43636*/ OPC_CheckType, MVT::i32, ++/* 43638*/ OPC_MoveParent, ++/* 43639*/ OPC_MoveChild, 11, ++/* 43641*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43644*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43646*/ OPC_CheckType, MVT::i32, ++/* 43648*/ OPC_MoveParent, ++/* 43649*/ OPC_MoveChild, 12, ++/* 43651*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43654*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43656*/ OPC_CheckType, MVT::i32, ++/* 43658*/ OPC_MoveParent, ++/* 43659*/ OPC_MoveChild, 13, ++/* 43661*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43664*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43666*/ OPC_CheckType, MVT::i32, ++/* 43668*/ OPC_MoveParent, ++/* 43669*/ OPC_MoveChild, 14, ++/* 43671*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43674*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43676*/ OPC_CheckType, MVT::i32, ++/* 43678*/ OPC_MoveParent, ++/* 43679*/ OPC_MoveChild, 15, ++/* 43681*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43684*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43686*/ OPC_CheckType, MVT::i32, ++/* 43688*/ OPC_MoveParent, ++/* 43689*/ OPC_MoveParent, ++/* 43690*/ OPC_RecordChild1, // #1 = $vt ++/* 43691*/ OPC_CheckType, MVT::v16i8, ++/* 43693*/ OPC_MoveParent, ++/* 43694*/ OPC_MoveParent, ++/* 43695*/ OPC_MoveChild1, ++/* 43696*/ OPC_CheckImmAllOnesV, ++/* 43697*/ OPC_MoveParent, ++/* 43698*/ OPC_MoveParent, ++/* 43699*/ OPC_CheckType, MVT::v16i8, ++/* 43701*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 43703*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vs, (xor:{ *:[v16i8] } (shl:{ *:[v16i8] } (build_vector:{ *:[v16i8] })<>, (and:{ *:[v16i8] } (build_vector:{ *:[v16i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v16i8:{ *:[v16i8] }:$vt)), immAllOnesV:{ *:[v16i8] })) - Complexity = 87 ++ // Dst: (VBITCLR_B:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vs, v16i8:{ *:[v16i8] }:$vt) ++/* 43711*/ 0, /*End of Scope*/ ++/* 43712*/ /*Scope*/ 117|128,2/*373*/, /*->44087*/ ++/* 43714*/ OPC_CheckImmAllOnesV, ++/* 43715*/ OPC_MoveParent, ++/* 43716*/ OPC_MoveChild1, ++/* 43717*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 43720*/ OPC_MoveChild0, ++/* 43721*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 43724*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 43726*/ OPC_MoveParent, ++/* 43727*/ OPC_MoveChild1, ++/* 43728*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 43731*/ OPC_Scope, 47|128,1/*175*/, /*->43909*/ // 2 children in Scope ++/* 43734*/ OPC_RecordChild0, // #1 = $vt ++/* 43735*/ OPC_MoveChild1, ++/* 43736*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 43739*/ OPC_MoveChild0, ++/* 43740*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43743*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43745*/ OPC_CheckType, MVT::i32, ++/* 43747*/ OPC_MoveParent, ++/* 43748*/ OPC_MoveChild1, ++/* 43749*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43752*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43754*/ OPC_CheckType, MVT::i32, ++/* 43756*/ OPC_MoveParent, ++/* 43757*/ OPC_MoveChild2, ++/* 43758*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43761*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43763*/ OPC_CheckType, MVT::i32, ++/* 43765*/ OPC_MoveParent, ++/* 43766*/ OPC_MoveChild3, ++/* 43767*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43770*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43772*/ OPC_CheckType, MVT::i32, ++/* 43774*/ OPC_MoveParent, ++/* 43775*/ OPC_MoveChild4, ++/* 43776*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43779*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43781*/ OPC_CheckType, MVT::i32, ++/* 43783*/ OPC_MoveParent, ++/* 43784*/ OPC_MoveChild5, ++/* 43785*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43788*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43790*/ OPC_CheckType, MVT::i32, ++/* 43792*/ OPC_MoveParent, ++/* 43793*/ OPC_MoveChild6, ++/* 43794*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43797*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43799*/ OPC_CheckType, MVT::i32, ++/* 43801*/ OPC_MoveParent, ++/* 43802*/ OPC_MoveChild7, ++/* 43803*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43806*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43808*/ OPC_CheckType, MVT::i32, ++/* 43810*/ OPC_MoveParent, ++/* 43811*/ OPC_MoveChild, 8, ++/* 43813*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43816*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43818*/ OPC_CheckType, MVT::i32, ++/* 43820*/ OPC_MoveParent, ++/* 43821*/ OPC_MoveChild, 9, ++/* 43823*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43826*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43828*/ OPC_CheckType, MVT::i32, ++/* 43830*/ OPC_MoveParent, ++/* 43831*/ OPC_MoveChild, 10, ++/* 43833*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43836*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43838*/ OPC_CheckType, MVT::i32, ++/* 43840*/ OPC_MoveParent, ++/* 43841*/ OPC_MoveChild, 11, ++/* 43843*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43846*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43848*/ OPC_CheckType, MVT::i32, ++/* 43850*/ OPC_MoveParent, ++/* 43851*/ OPC_MoveChild, 12, ++/* 43853*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43856*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43858*/ OPC_CheckType, MVT::i32, ++/* 43860*/ OPC_MoveParent, ++/* 43861*/ OPC_MoveChild, 13, ++/* 43863*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43866*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43868*/ OPC_CheckType, MVT::i32, ++/* 43870*/ OPC_MoveParent, ++/* 43871*/ OPC_MoveChild, 14, ++/* 43873*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43876*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43878*/ OPC_CheckType, MVT::i32, ++/* 43880*/ OPC_MoveParent, ++/* 43881*/ OPC_MoveChild, 15, ++/* 43883*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43886*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43888*/ OPC_CheckType, MVT::i32, ++/* 43890*/ OPC_MoveParent, ++/* 43891*/ OPC_MoveParent, ++/* 43892*/ OPC_CheckType, MVT::v16i8, ++/* 43894*/ OPC_MoveParent, ++/* 43895*/ OPC_MoveParent, ++/* 43896*/ OPC_MoveParent, ++/* 43897*/ OPC_CheckType, MVT::v16i8, ++/* 43899*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 43901*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vs, (xor:{ *:[v16i8] } immAllOnesV:{ *:[v16i8] }, (shl:{ *:[v16i8] } (build_vector:{ *:[v16i8] })<>, (and:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vt, (build_vector:{ *:[v16i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))))) - Complexity = 87 ++ // Dst: (VBITCLR_B:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vs, v16i8:{ *:[v16i8] }:$vt) ++/* 43909*/ /*Scope*/ 47|128,1/*175*/, /*->44086*/ ++/* 43911*/ OPC_MoveChild0, ++/* 43912*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 43915*/ OPC_MoveChild0, ++/* 43916*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43919*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43921*/ OPC_CheckType, MVT::i32, ++/* 43923*/ OPC_MoveParent, ++/* 43924*/ OPC_MoveChild1, ++/* 43925*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43928*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43930*/ OPC_CheckType, MVT::i32, ++/* 43932*/ OPC_MoveParent, ++/* 43933*/ OPC_MoveChild2, ++/* 43934*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43937*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43939*/ OPC_CheckType, MVT::i32, ++/* 43941*/ OPC_MoveParent, ++/* 43942*/ OPC_MoveChild3, ++/* 43943*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43946*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43948*/ OPC_CheckType, MVT::i32, ++/* 43950*/ OPC_MoveParent, ++/* 43951*/ OPC_MoveChild4, ++/* 43952*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43955*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43957*/ OPC_CheckType, MVT::i32, ++/* 43959*/ OPC_MoveParent, ++/* 43960*/ OPC_MoveChild5, ++/* 43961*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43964*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43966*/ OPC_CheckType, MVT::i32, ++/* 43968*/ OPC_MoveParent, ++/* 43969*/ OPC_MoveChild6, ++/* 43970*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43973*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43975*/ OPC_CheckType, MVT::i32, ++/* 43977*/ OPC_MoveParent, ++/* 43978*/ OPC_MoveChild7, ++/* 43979*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43982*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43984*/ OPC_CheckType, MVT::i32, ++/* 43986*/ OPC_MoveParent, ++/* 43987*/ OPC_MoveChild, 8, ++/* 43989*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 43992*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 43994*/ OPC_CheckType, MVT::i32, ++/* 43996*/ OPC_MoveParent, ++/* 43997*/ OPC_MoveChild, 9, ++/* 43999*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44002*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44004*/ OPC_CheckType, MVT::i32, ++/* 44006*/ OPC_MoveParent, ++/* 44007*/ OPC_MoveChild, 10, ++/* 44009*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44012*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44014*/ OPC_CheckType, MVT::i32, ++/* 44016*/ OPC_MoveParent, ++/* 44017*/ OPC_MoveChild, 11, ++/* 44019*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44022*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44024*/ OPC_CheckType, MVT::i32, ++/* 44026*/ OPC_MoveParent, ++/* 44027*/ OPC_MoveChild, 12, ++/* 44029*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44032*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44034*/ OPC_CheckType, MVT::i32, ++/* 44036*/ OPC_MoveParent, ++/* 44037*/ OPC_MoveChild, 13, ++/* 44039*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44042*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44044*/ OPC_CheckType, MVT::i32, ++/* 44046*/ OPC_MoveParent, ++/* 44047*/ OPC_MoveChild, 14, ++/* 44049*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44052*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44054*/ OPC_CheckType, MVT::i32, ++/* 44056*/ OPC_MoveParent, ++/* 44057*/ OPC_MoveChild, 15, ++/* 44059*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44062*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44064*/ OPC_CheckType, MVT::i32, ++/* 44066*/ OPC_MoveParent, ++/* 44067*/ OPC_MoveParent, ++/* 44068*/ OPC_RecordChild1, // #1 = $vt ++/* 44069*/ OPC_CheckType, MVT::v16i8, ++/* 44071*/ OPC_MoveParent, ++/* 44072*/ OPC_MoveParent, ++/* 44073*/ OPC_MoveParent, ++/* 44074*/ OPC_CheckType, MVT::v16i8, ++/* 44076*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 44078*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vs, (xor:{ *:[v16i8] } immAllOnesV:{ *:[v16i8] }, (shl:{ *:[v16i8] } (build_vector:{ *:[v16i8] })<>, (and:{ *:[v16i8] } (build_vector:{ *:[v16i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v16i8:{ *:[v16i8] }:$vt)))) - Complexity = 87 ++ // Dst: (VBITCLR_B:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vs, v16i8:{ *:[v16i8] }:$vt) ++/* 44086*/ 0, /*End of Scope*/ ++/* 44087*/ 0, /*End of Scope*/ ++/* 44088*/ 0, /*End of Scope*/ ++/* 44089*/ /*Scope*/ 124|128,5/*764*/, /*->44855*/ ++/* 44091*/ OPC_MoveChild0, ++/* 44092*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 44095*/ OPC_MoveChild0, ++/* 44096*/ OPC_Scope, 122|128,2/*378*/, /*->44477*/ // 2 children in Scope ++/* 44099*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 44102*/ OPC_MoveChild0, ++/* 44103*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 44106*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 44108*/ OPC_MoveParent, ++/* 44109*/ OPC_MoveChild1, ++/* 44110*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 44113*/ OPC_Scope, 51|128,1/*179*/, /*->44295*/ // 2 children in Scope ++/* 44116*/ OPC_RecordChild0, // #0 = $vt ++/* 44117*/ OPC_MoveChild1, ++/* 44118*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 44121*/ OPC_MoveChild0, ++/* 44122*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44125*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44127*/ OPC_CheckType, MVT::i32, ++/* 44129*/ OPC_MoveParent, ++/* 44130*/ OPC_MoveChild1, ++/* 44131*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44134*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44136*/ OPC_CheckType, MVT::i32, ++/* 44138*/ OPC_MoveParent, ++/* 44139*/ OPC_MoveChild2, ++/* 44140*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44143*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44145*/ OPC_CheckType, MVT::i32, ++/* 44147*/ OPC_MoveParent, ++/* 44148*/ OPC_MoveChild3, ++/* 44149*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44152*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44154*/ OPC_CheckType, MVT::i32, ++/* 44156*/ OPC_MoveParent, ++/* 44157*/ OPC_MoveChild4, ++/* 44158*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44161*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44163*/ OPC_CheckType, MVT::i32, ++/* 44165*/ OPC_MoveParent, ++/* 44166*/ OPC_MoveChild5, ++/* 44167*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44170*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44172*/ OPC_CheckType, MVT::i32, ++/* 44174*/ OPC_MoveParent, ++/* 44175*/ OPC_MoveChild6, ++/* 44176*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44179*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44181*/ OPC_CheckType, MVT::i32, ++/* 44183*/ OPC_MoveParent, ++/* 44184*/ OPC_MoveChild7, ++/* 44185*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44188*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44190*/ OPC_CheckType, MVT::i32, ++/* 44192*/ OPC_MoveParent, ++/* 44193*/ OPC_MoveChild, 8, ++/* 44195*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44198*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44200*/ OPC_CheckType, MVT::i32, ++/* 44202*/ OPC_MoveParent, ++/* 44203*/ OPC_MoveChild, 9, ++/* 44205*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44208*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44210*/ OPC_CheckType, MVT::i32, ++/* 44212*/ OPC_MoveParent, ++/* 44213*/ OPC_MoveChild, 10, ++/* 44215*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44218*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44220*/ OPC_CheckType, MVT::i32, ++/* 44222*/ OPC_MoveParent, ++/* 44223*/ OPC_MoveChild, 11, ++/* 44225*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44228*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44230*/ OPC_CheckType, MVT::i32, ++/* 44232*/ OPC_MoveParent, ++/* 44233*/ OPC_MoveChild, 12, ++/* 44235*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44238*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44240*/ OPC_CheckType, MVT::i32, ++/* 44242*/ OPC_MoveParent, ++/* 44243*/ OPC_MoveChild, 13, ++/* 44245*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44248*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44250*/ OPC_CheckType, MVT::i32, ++/* 44252*/ OPC_MoveParent, ++/* 44253*/ OPC_MoveChild, 14, ++/* 44255*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44258*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44260*/ OPC_CheckType, MVT::i32, ++/* 44262*/ OPC_MoveParent, ++/* 44263*/ OPC_MoveChild, 15, ++/* 44265*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44268*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44270*/ OPC_CheckType, MVT::i32, ++/* 44272*/ OPC_MoveParent, ++/* 44273*/ OPC_MoveParent, ++/* 44274*/ OPC_CheckType, MVT::v16i8, ++/* 44276*/ OPC_MoveParent, ++/* 44277*/ OPC_MoveParent, ++/* 44278*/ OPC_MoveChild1, ++/* 44279*/ OPC_CheckImmAllOnesV, ++/* 44280*/ OPC_MoveParent, ++/* 44281*/ OPC_MoveParent, ++/* 44282*/ OPC_RecordChild1, // #1 = $vs ++/* 44283*/ OPC_CheckType, MVT::v16i8, ++/* 44285*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 44287*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v16i8] } (xor:{ *:[v16i8] } (shl:{ *:[v16i8] } (build_vector:{ *:[v16i8] })<>, (and:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vt, (build_vector:{ *:[v16i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))), immAllOnesV:{ *:[v16i8] }), v16i8:{ *:[v16i8] }:$vs) - Complexity = 87 ++ // Dst: (VBITCLR_B:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vs, v16i8:{ *:[v16i8] }:$vt) ++/* 44295*/ /*Scope*/ 51|128,1/*179*/, /*->44476*/ ++/* 44297*/ OPC_MoveChild0, ++/* 44298*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 44301*/ OPC_MoveChild0, ++/* 44302*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44305*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44307*/ OPC_CheckType, MVT::i32, ++/* 44309*/ OPC_MoveParent, ++/* 44310*/ OPC_MoveChild1, ++/* 44311*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44314*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44316*/ OPC_CheckType, MVT::i32, ++/* 44318*/ OPC_MoveParent, ++/* 44319*/ OPC_MoveChild2, ++/* 44320*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44323*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44325*/ OPC_CheckType, MVT::i32, ++/* 44327*/ OPC_MoveParent, ++/* 44328*/ OPC_MoveChild3, ++/* 44329*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44332*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44334*/ OPC_CheckType, MVT::i32, ++/* 44336*/ OPC_MoveParent, ++/* 44337*/ OPC_MoveChild4, ++/* 44338*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44341*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44343*/ OPC_CheckType, MVT::i32, ++/* 44345*/ OPC_MoveParent, ++/* 44346*/ OPC_MoveChild5, ++/* 44347*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44350*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44352*/ OPC_CheckType, MVT::i32, ++/* 44354*/ OPC_MoveParent, ++/* 44355*/ OPC_MoveChild6, ++/* 44356*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44359*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44361*/ OPC_CheckType, MVT::i32, ++/* 44363*/ OPC_MoveParent, ++/* 44364*/ OPC_MoveChild7, ++/* 44365*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44368*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44370*/ OPC_CheckType, MVT::i32, ++/* 44372*/ OPC_MoveParent, ++/* 44373*/ OPC_MoveChild, 8, ++/* 44375*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44378*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44380*/ OPC_CheckType, MVT::i32, ++/* 44382*/ OPC_MoveParent, ++/* 44383*/ OPC_MoveChild, 9, ++/* 44385*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44388*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44390*/ OPC_CheckType, MVT::i32, ++/* 44392*/ OPC_MoveParent, ++/* 44393*/ OPC_MoveChild, 10, ++/* 44395*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44398*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44400*/ OPC_CheckType, MVT::i32, ++/* 44402*/ OPC_MoveParent, ++/* 44403*/ OPC_MoveChild, 11, ++/* 44405*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44408*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44410*/ OPC_CheckType, MVT::i32, ++/* 44412*/ OPC_MoveParent, ++/* 44413*/ OPC_MoveChild, 12, ++/* 44415*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44418*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44420*/ OPC_CheckType, MVT::i32, ++/* 44422*/ OPC_MoveParent, ++/* 44423*/ OPC_MoveChild, 13, ++/* 44425*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44428*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44430*/ OPC_CheckType, MVT::i32, ++/* 44432*/ OPC_MoveParent, ++/* 44433*/ OPC_MoveChild, 14, ++/* 44435*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44438*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44440*/ OPC_CheckType, MVT::i32, ++/* 44442*/ OPC_MoveParent, ++/* 44443*/ OPC_MoveChild, 15, ++/* 44445*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44448*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44450*/ OPC_CheckType, MVT::i32, ++/* 44452*/ OPC_MoveParent, ++/* 44453*/ OPC_MoveParent, ++/* 44454*/ OPC_RecordChild1, // #0 = $vt ++/* 44455*/ OPC_CheckType, MVT::v16i8, ++/* 44457*/ OPC_MoveParent, ++/* 44458*/ OPC_MoveParent, ++/* 44459*/ OPC_MoveChild1, ++/* 44460*/ OPC_CheckImmAllOnesV, ++/* 44461*/ OPC_MoveParent, ++/* 44462*/ OPC_MoveParent, ++/* 44463*/ OPC_RecordChild1, // #1 = $vs ++/* 44464*/ OPC_CheckType, MVT::v16i8, ++/* 44466*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 44468*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v16i8] } (xor:{ *:[v16i8] } (shl:{ *:[v16i8] } (build_vector:{ *:[v16i8] })<>, (and:{ *:[v16i8] } (build_vector:{ *:[v16i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v16i8:{ *:[v16i8] }:$vt)), immAllOnesV:{ *:[v16i8] }), v16i8:{ *:[v16i8] }:$vs) - Complexity = 87 ++ // Dst: (VBITCLR_B:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vs, v16i8:{ *:[v16i8] }:$vt) ++/* 44476*/ 0, /*End of Scope*/ ++/* 44477*/ /*Scope*/ 119|128,2/*375*/, /*->44854*/ ++/* 44479*/ OPC_CheckImmAllOnesV, ++/* 44480*/ OPC_MoveParent, ++/* 44481*/ OPC_MoveChild1, ++/* 44482*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 44485*/ OPC_MoveChild0, ++/* 44486*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 44489*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 44491*/ OPC_MoveParent, ++/* 44492*/ OPC_MoveChild1, ++/* 44493*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 44496*/ OPC_Scope, 48|128,1/*176*/, /*->44675*/ // 2 children in Scope ++/* 44499*/ OPC_RecordChild0, // #0 = $vt ++/* 44500*/ OPC_MoveChild1, ++/* 44501*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 44504*/ OPC_MoveChild0, ++/* 44505*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44508*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44510*/ OPC_CheckType, MVT::i32, ++/* 44512*/ OPC_MoveParent, ++/* 44513*/ OPC_MoveChild1, ++/* 44514*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44517*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44519*/ OPC_CheckType, MVT::i32, ++/* 44521*/ OPC_MoveParent, ++/* 44522*/ OPC_MoveChild2, ++/* 44523*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44526*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44528*/ OPC_CheckType, MVT::i32, ++/* 44530*/ OPC_MoveParent, ++/* 44531*/ OPC_MoveChild3, ++/* 44532*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44535*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44537*/ OPC_CheckType, MVT::i32, ++/* 44539*/ OPC_MoveParent, ++/* 44540*/ OPC_MoveChild4, ++/* 44541*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44544*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44546*/ OPC_CheckType, MVT::i32, ++/* 44548*/ OPC_MoveParent, ++/* 44549*/ OPC_MoveChild5, ++/* 44550*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44553*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44555*/ OPC_CheckType, MVT::i32, ++/* 44557*/ OPC_MoveParent, ++/* 44558*/ OPC_MoveChild6, ++/* 44559*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44562*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44564*/ OPC_CheckType, MVT::i32, ++/* 44566*/ OPC_MoveParent, ++/* 44567*/ OPC_MoveChild7, ++/* 44568*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44571*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44573*/ OPC_CheckType, MVT::i32, ++/* 44575*/ OPC_MoveParent, ++/* 44576*/ OPC_MoveChild, 8, ++/* 44578*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44581*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44583*/ OPC_CheckType, MVT::i32, ++/* 44585*/ OPC_MoveParent, ++/* 44586*/ OPC_MoveChild, 9, ++/* 44588*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44591*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44593*/ OPC_CheckType, MVT::i32, ++/* 44595*/ OPC_MoveParent, ++/* 44596*/ OPC_MoveChild, 10, ++/* 44598*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44601*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44603*/ OPC_CheckType, MVT::i32, ++/* 44605*/ OPC_MoveParent, ++/* 44606*/ OPC_MoveChild, 11, ++/* 44608*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44611*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44613*/ OPC_CheckType, MVT::i32, ++/* 44615*/ OPC_MoveParent, ++/* 44616*/ OPC_MoveChild, 12, ++/* 44618*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44621*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44623*/ OPC_CheckType, MVT::i32, ++/* 44625*/ OPC_MoveParent, ++/* 44626*/ OPC_MoveChild, 13, ++/* 44628*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44631*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44633*/ OPC_CheckType, MVT::i32, ++/* 44635*/ OPC_MoveParent, ++/* 44636*/ OPC_MoveChild, 14, ++/* 44638*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44641*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44643*/ OPC_CheckType, MVT::i32, ++/* 44645*/ OPC_MoveParent, ++/* 44646*/ OPC_MoveChild, 15, ++/* 44648*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44651*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44653*/ OPC_CheckType, MVT::i32, ++/* 44655*/ OPC_MoveParent, ++/* 44656*/ OPC_MoveParent, ++/* 44657*/ OPC_CheckType, MVT::v16i8, ++/* 44659*/ OPC_MoveParent, ++/* 44660*/ OPC_MoveParent, ++/* 44661*/ OPC_MoveParent, ++/* 44662*/ OPC_RecordChild1, // #1 = $vs ++/* 44663*/ OPC_CheckType, MVT::v16i8, ++/* 44665*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 44667*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v16i8] } (xor:{ *:[v16i8] } immAllOnesV:{ *:[v16i8] }, (shl:{ *:[v16i8] } (build_vector:{ *:[v16i8] })<>, (and:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vt, (build_vector:{ *:[v16i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>)))), v16i8:{ *:[v16i8] }:$vs) - Complexity = 87 ++ // Dst: (VBITCLR_B:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vs, v16i8:{ *:[v16i8] }:$vt) ++/* 44675*/ /*Scope*/ 48|128,1/*176*/, /*->44853*/ ++/* 44677*/ OPC_MoveChild0, ++/* 44678*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 44681*/ OPC_MoveChild0, ++/* 44682*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44685*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44687*/ OPC_CheckType, MVT::i32, ++/* 44689*/ OPC_MoveParent, ++/* 44690*/ OPC_MoveChild1, ++/* 44691*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44694*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44696*/ OPC_CheckType, MVT::i32, ++/* 44698*/ OPC_MoveParent, ++/* 44699*/ OPC_MoveChild2, ++/* 44700*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44703*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44705*/ OPC_CheckType, MVT::i32, ++/* 44707*/ OPC_MoveParent, ++/* 44708*/ OPC_MoveChild3, ++/* 44709*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44712*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44714*/ OPC_CheckType, MVT::i32, ++/* 44716*/ OPC_MoveParent, ++/* 44717*/ OPC_MoveChild4, ++/* 44718*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44721*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44723*/ OPC_CheckType, MVT::i32, ++/* 44725*/ OPC_MoveParent, ++/* 44726*/ OPC_MoveChild5, ++/* 44727*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44730*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44732*/ OPC_CheckType, MVT::i32, ++/* 44734*/ OPC_MoveParent, ++/* 44735*/ OPC_MoveChild6, ++/* 44736*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44739*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44741*/ OPC_CheckType, MVT::i32, ++/* 44743*/ OPC_MoveParent, ++/* 44744*/ OPC_MoveChild7, ++/* 44745*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44748*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44750*/ OPC_CheckType, MVT::i32, ++/* 44752*/ OPC_MoveParent, ++/* 44753*/ OPC_MoveChild, 8, ++/* 44755*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44758*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44760*/ OPC_CheckType, MVT::i32, ++/* 44762*/ OPC_MoveParent, ++/* 44763*/ OPC_MoveChild, 9, ++/* 44765*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44768*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44770*/ OPC_CheckType, MVT::i32, ++/* 44772*/ OPC_MoveParent, ++/* 44773*/ OPC_MoveChild, 10, ++/* 44775*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44778*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44780*/ OPC_CheckType, MVT::i32, ++/* 44782*/ OPC_MoveParent, ++/* 44783*/ OPC_MoveChild, 11, ++/* 44785*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44788*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44790*/ OPC_CheckType, MVT::i32, ++/* 44792*/ OPC_MoveParent, ++/* 44793*/ OPC_MoveChild, 12, ++/* 44795*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44798*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44800*/ OPC_CheckType, MVT::i32, ++/* 44802*/ OPC_MoveParent, ++/* 44803*/ OPC_MoveChild, 13, ++/* 44805*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44808*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44810*/ OPC_CheckType, MVT::i32, ++/* 44812*/ OPC_MoveParent, ++/* 44813*/ OPC_MoveChild, 14, ++/* 44815*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44818*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44820*/ OPC_CheckType, MVT::i32, ++/* 44822*/ OPC_MoveParent, ++/* 44823*/ OPC_MoveChild, 15, ++/* 44825*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44828*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 44830*/ OPC_CheckType, MVT::i32, ++/* 44832*/ OPC_MoveParent, ++/* 44833*/ OPC_MoveParent, ++/* 44834*/ OPC_RecordChild1, // #0 = $vt ++/* 44835*/ OPC_CheckType, MVT::v16i8, ++/* 44837*/ OPC_MoveParent, ++/* 44838*/ OPC_MoveParent, ++/* 44839*/ OPC_MoveParent, ++/* 44840*/ OPC_RecordChild1, // #1 = $vs ++/* 44841*/ OPC_CheckType, MVT::v16i8, ++/* 44843*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 44845*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v16i8] } (xor:{ *:[v16i8] } immAllOnesV:{ *:[v16i8] }, (shl:{ *:[v16i8] } (build_vector:{ *:[v16i8] })<>, (and:{ *:[v16i8] } (build_vector:{ *:[v16i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v16i8:{ *:[v16i8] }:$vt))), v16i8:{ *:[v16i8] }:$vs) - Complexity = 87 ++ // Dst: (VBITCLR_B:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vs, v16i8:{ *:[v16i8] }:$vt) ++/* 44853*/ 0, /*End of Scope*/ ++/* 44854*/ 0, /*End of Scope*/ ++/* 44855*/ /*Scope*/ 65|128,4/*577*/, /*->45434*/ ++/* 44857*/ OPC_RecordChild0, // #0 = $vs ++/* 44858*/ OPC_MoveChild1, ++/* 44859*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 44862*/ OPC_MoveChild0, ++/* 44863*/ OPC_Scope, 64|128,1/*192*/, /*->45058*/ // 2 children in Scope ++/* 44866*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 44869*/ OPC_MoveChild0, ++/* 44870*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 44873*/ OPC_CheckPredicate, 42, // Predicate_xvsplat_imm_eq_1 ++/* 44875*/ OPC_MoveParent, ++/* 44876*/ OPC_MoveChild1, ++/* 44877*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 44880*/ OPC_MoveChild0, ++/* 44881*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 44884*/ OPC_MoveChild0, ++/* 44885*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44888*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 44890*/ OPC_CheckType, MVT::i32, ++/* 44892*/ OPC_MoveParent, ++/* 44893*/ OPC_MoveChild1, ++/* 44894*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44897*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 44899*/ OPC_CheckType, MVT::i32, ++/* 44901*/ OPC_MoveParent, ++/* 44902*/ OPC_MoveChild2, ++/* 44903*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44906*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 44908*/ OPC_CheckType, MVT::i32, ++/* 44910*/ OPC_MoveParent, ++/* 44911*/ OPC_MoveChild3, ++/* 44912*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44915*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 44917*/ OPC_CheckType, MVT::i32, ++/* 44919*/ OPC_MoveParent, ++/* 44920*/ OPC_MoveChild4, ++/* 44921*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44924*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 44926*/ OPC_CheckType, MVT::i32, ++/* 44928*/ OPC_MoveParent, ++/* 44929*/ OPC_MoveChild5, ++/* 44930*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44933*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 44935*/ OPC_CheckType, MVT::i32, ++/* 44937*/ OPC_MoveParent, ++/* 44938*/ OPC_MoveChild6, ++/* 44939*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44942*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 44944*/ OPC_CheckType, MVT::i32, ++/* 44946*/ OPC_MoveParent, ++/* 44947*/ OPC_MoveChild7, ++/* 44948*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44951*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 44953*/ OPC_CheckType, MVT::i32, ++/* 44955*/ OPC_MoveParent, ++/* 44956*/ OPC_MoveChild, 8, ++/* 44958*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44961*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 44963*/ OPC_CheckType, MVT::i32, ++/* 44965*/ OPC_MoveParent, ++/* 44966*/ OPC_MoveChild, 9, ++/* 44968*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44971*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 44973*/ OPC_CheckType, MVT::i32, ++/* 44975*/ OPC_MoveParent, ++/* 44976*/ OPC_MoveChild, 10, ++/* 44978*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44981*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 44983*/ OPC_CheckType, MVT::i32, ++/* 44985*/ OPC_MoveParent, ++/* 44986*/ OPC_MoveChild, 11, ++/* 44988*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 44991*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 44993*/ OPC_CheckType, MVT::i32, ++/* 44995*/ OPC_MoveParent, ++/* 44996*/ OPC_MoveChild, 12, ++/* 44998*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45001*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45003*/ OPC_CheckType, MVT::i32, ++/* 45005*/ OPC_MoveParent, ++/* 45006*/ OPC_MoveChild, 13, ++/* 45008*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45011*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45013*/ OPC_CheckType, MVT::i32, ++/* 45015*/ OPC_MoveParent, ++/* 45016*/ OPC_MoveChild, 14, ++/* 45018*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45021*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45023*/ OPC_CheckType, MVT::i32, ++/* 45025*/ OPC_MoveParent, ++/* 45026*/ OPC_MoveChild, 15, ++/* 45028*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45031*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45033*/ OPC_CheckType, MVT::i32, ++/* 45035*/ OPC_MoveParent, ++/* 45036*/ OPC_MoveParent, ++/* 45037*/ OPC_RecordChild1, // #1 = $vt ++/* 45038*/ OPC_CheckType, MVT::v16i16, ++/* 45040*/ OPC_MoveParent, ++/* 45041*/ OPC_MoveParent, ++/* 45042*/ OPC_MoveChild1, ++/* 45043*/ OPC_CheckImmAllOnesV, ++/* 45044*/ OPC_MoveParent, ++/* 45045*/ OPC_MoveParent, ++/* 45046*/ OPC_CheckType, MVT::v16i16, ++/* 45048*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 45050*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vs, (xor:{ *:[v16i16] } (shl:{ *:[v16i16] } (build_vector:{ *:[v16i16] })<>, (and:{ *:[v16i16] } (build_vector:{ *:[v16i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v16i16:{ *:[v16i16] }:$vt)), immAllOnesV:{ *:[v16i16] })) - Complexity = 87 ++ // Dst: (XVBITCLR_H:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vs, v16i16:{ *:[v16i16] }:$vt) ++/* 45058*/ /*Scope*/ 117|128,2/*373*/, /*->45433*/ ++/* 45060*/ OPC_CheckImmAllOnesV, ++/* 45061*/ OPC_MoveParent, ++/* 45062*/ OPC_MoveChild1, ++/* 45063*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 45066*/ OPC_MoveChild0, ++/* 45067*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 45070*/ OPC_CheckPredicate, 42, // Predicate_xvsplat_imm_eq_1 ++/* 45072*/ OPC_MoveParent, ++/* 45073*/ OPC_MoveChild1, ++/* 45074*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 45077*/ OPC_Scope, 47|128,1/*175*/, /*->45255*/ // 2 children in Scope ++/* 45080*/ OPC_RecordChild0, // #1 = $vt ++/* 45081*/ OPC_MoveChild1, ++/* 45082*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 45085*/ OPC_MoveChild0, ++/* 45086*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45089*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45091*/ OPC_CheckType, MVT::i32, ++/* 45093*/ OPC_MoveParent, ++/* 45094*/ OPC_MoveChild1, ++/* 45095*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45098*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45100*/ OPC_CheckType, MVT::i32, ++/* 45102*/ OPC_MoveParent, ++/* 45103*/ OPC_MoveChild2, ++/* 45104*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45107*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45109*/ OPC_CheckType, MVT::i32, ++/* 45111*/ OPC_MoveParent, ++/* 45112*/ OPC_MoveChild3, ++/* 45113*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45116*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45118*/ OPC_CheckType, MVT::i32, ++/* 45120*/ OPC_MoveParent, ++/* 45121*/ OPC_MoveChild4, ++/* 45122*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45125*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45127*/ OPC_CheckType, MVT::i32, ++/* 45129*/ OPC_MoveParent, ++/* 45130*/ OPC_MoveChild5, ++/* 45131*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45134*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45136*/ OPC_CheckType, MVT::i32, ++/* 45138*/ OPC_MoveParent, ++/* 45139*/ OPC_MoveChild6, ++/* 45140*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45143*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45145*/ OPC_CheckType, MVT::i32, ++/* 45147*/ OPC_MoveParent, ++/* 45148*/ OPC_MoveChild7, ++/* 45149*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45152*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45154*/ OPC_CheckType, MVT::i32, ++/* 45156*/ OPC_MoveParent, ++/* 45157*/ OPC_MoveChild, 8, ++/* 45159*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45162*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45164*/ OPC_CheckType, MVT::i32, ++/* 45166*/ OPC_MoveParent, ++/* 45167*/ OPC_MoveChild, 9, ++/* 45169*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45172*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45174*/ OPC_CheckType, MVT::i32, ++/* 45176*/ OPC_MoveParent, ++/* 45177*/ OPC_MoveChild, 10, ++/* 45179*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45182*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45184*/ OPC_CheckType, MVT::i32, ++/* 45186*/ OPC_MoveParent, ++/* 45187*/ OPC_MoveChild, 11, ++/* 45189*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45192*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45194*/ OPC_CheckType, MVT::i32, ++/* 45196*/ OPC_MoveParent, ++/* 45197*/ OPC_MoveChild, 12, ++/* 45199*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45202*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45204*/ OPC_CheckType, MVT::i32, ++/* 45206*/ OPC_MoveParent, ++/* 45207*/ OPC_MoveChild, 13, ++/* 45209*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45212*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45214*/ OPC_CheckType, MVT::i32, ++/* 45216*/ OPC_MoveParent, ++/* 45217*/ OPC_MoveChild, 14, ++/* 45219*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45222*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45224*/ OPC_CheckType, MVT::i32, ++/* 45226*/ OPC_MoveParent, ++/* 45227*/ OPC_MoveChild, 15, ++/* 45229*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45232*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45234*/ OPC_CheckType, MVT::i32, ++/* 45236*/ OPC_MoveParent, ++/* 45237*/ OPC_MoveParent, ++/* 45238*/ OPC_CheckType, MVT::v16i16, ++/* 45240*/ OPC_MoveParent, ++/* 45241*/ OPC_MoveParent, ++/* 45242*/ OPC_MoveParent, ++/* 45243*/ OPC_CheckType, MVT::v16i16, ++/* 45245*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 45247*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vs, (xor:{ *:[v16i16] } immAllOnesV:{ *:[v16i16] }, (shl:{ *:[v16i16] } (build_vector:{ *:[v16i16] })<>, (and:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vt, (build_vector:{ *:[v16i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))))) - Complexity = 87 ++ // Dst: (XVBITCLR_H:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vs, v16i16:{ *:[v16i16] }:$vt) ++/* 45255*/ /*Scope*/ 47|128,1/*175*/, /*->45432*/ ++/* 45257*/ OPC_MoveChild0, ++/* 45258*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 45261*/ OPC_MoveChild0, ++/* 45262*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45265*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45267*/ OPC_CheckType, MVT::i32, ++/* 45269*/ OPC_MoveParent, ++/* 45270*/ OPC_MoveChild1, ++/* 45271*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45274*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45276*/ OPC_CheckType, MVT::i32, ++/* 45278*/ OPC_MoveParent, ++/* 45279*/ OPC_MoveChild2, ++/* 45280*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45283*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45285*/ OPC_CheckType, MVT::i32, ++/* 45287*/ OPC_MoveParent, ++/* 45288*/ OPC_MoveChild3, ++/* 45289*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45292*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45294*/ OPC_CheckType, MVT::i32, ++/* 45296*/ OPC_MoveParent, ++/* 45297*/ OPC_MoveChild4, ++/* 45298*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45301*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45303*/ OPC_CheckType, MVT::i32, ++/* 45305*/ OPC_MoveParent, ++/* 45306*/ OPC_MoveChild5, ++/* 45307*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45310*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45312*/ OPC_CheckType, MVT::i32, ++/* 45314*/ OPC_MoveParent, ++/* 45315*/ OPC_MoveChild6, ++/* 45316*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45319*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45321*/ OPC_CheckType, MVT::i32, ++/* 45323*/ OPC_MoveParent, ++/* 45324*/ OPC_MoveChild7, ++/* 45325*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45328*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45330*/ OPC_CheckType, MVT::i32, ++/* 45332*/ OPC_MoveParent, ++/* 45333*/ OPC_MoveChild, 8, ++/* 45335*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45338*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45340*/ OPC_CheckType, MVT::i32, ++/* 45342*/ OPC_MoveParent, ++/* 45343*/ OPC_MoveChild, 9, ++/* 45345*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45348*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45350*/ OPC_CheckType, MVT::i32, ++/* 45352*/ OPC_MoveParent, ++/* 45353*/ OPC_MoveChild, 10, ++/* 45355*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45358*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45360*/ OPC_CheckType, MVT::i32, ++/* 45362*/ OPC_MoveParent, ++/* 45363*/ OPC_MoveChild, 11, ++/* 45365*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45368*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45370*/ OPC_CheckType, MVT::i32, ++/* 45372*/ OPC_MoveParent, ++/* 45373*/ OPC_MoveChild, 12, ++/* 45375*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45378*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45380*/ OPC_CheckType, MVT::i32, ++/* 45382*/ OPC_MoveParent, ++/* 45383*/ OPC_MoveChild, 13, ++/* 45385*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45388*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45390*/ OPC_CheckType, MVT::i32, ++/* 45392*/ OPC_MoveParent, ++/* 45393*/ OPC_MoveChild, 14, ++/* 45395*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45398*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45400*/ OPC_CheckType, MVT::i32, ++/* 45402*/ OPC_MoveParent, ++/* 45403*/ OPC_MoveChild, 15, ++/* 45405*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45408*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45410*/ OPC_CheckType, MVT::i32, ++/* 45412*/ OPC_MoveParent, ++/* 45413*/ OPC_MoveParent, ++/* 45414*/ OPC_RecordChild1, // #1 = $vt ++/* 45415*/ OPC_CheckType, MVT::v16i16, ++/* 45417*/ OPC_MoveParent, ++/* 45418*/ OPC_MoveParent, ++/* 45419*/ OPC_MoveParent, ++/* 45420*/ OPC_CheckType, MVT::v16i16, ++/* 45422*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 45424*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vs, (xor:{ *:[v16i16] } immAllOnesV:{ *:[v16i16] }, (shl:{ *:[v16i16] } (build_vector:{ *:[v16i16] })<>, (and:{ *:[v16i16] } (build_vector:{ *:[v16i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v16i16:{ *:[v16i16] }:$vt)))) - Complexity = 87 ++ // Dst: (XVBITCLR_H:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vs, v16i16:{ *:[v16i16] }:$vt) ++/* 45432*/ 0, /*End of Scope*/ ++/* 45433*/ 0, /*End of Scope*/ ++/* 45434*/ /*Scope*/ 124|128,5/*764*/, /*->46200*/ ++/* 45436*/ OPC_MoveChild0, ++/* 45437*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 45440*/ OPC_MoveChild0, ++/* 45441*/ OPC_Scope, 122|128,2/*378*/, /*->45822*/ // 2 children in Scope ++/* 45444*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 45447*/ OPC_MoveChild0, ++/* 45448*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 45451*/ OPC_CheckPredicate, 42, // Predicate_xvsplat_imm_eq_1 ++/* 45453*/ OPC_MoveParent, ++/* 45454*/ OPC_MoveChild1, ++/* 45455*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 45458*/ OPC_Scope, 51|128,1/*179*/, /*->45640*/ // 2 children in Scope ++/* 45461*/ OPC_RecordChild0, // #0 = $vt ++/* 45462*/ OPC_MoveChild1, ++/* 45463*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 45466*/ OPC_MoveChild0, ++/* 45467*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45470*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45472*/ OPC_CheckType, MVT::i32, ++/* 45474*/ OPC_MoveParent, ++/* 45475*/ OPC_MoveChild1, ++/* 45476*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45479*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45481*/ OPC_CheckType, MVT::i32, ++/* 45483*/ OPC_MoveParent, ++/* 45484*/ OPC_MoveChild2, ++/* 45485*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45488*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45490*/ OPC_CheckType, MVT::i32, ++/* 45492*/ OPC_MoveParent, ++/* 45493*/ OPC_MoveChild3, ++/* 45494*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45497*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45499*/ OPC_CheckType, MVT::i32, ++/* 45501*/ OPC_MoveParent, ++/* 45502*/ OPC_MoveChild4, ++/* 45503*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45506*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45508*/ OPC_CheckType, MVT::i32, ++/* 45510*/ OPC_MoveParent, ++/* 45511*/ OPC_MoveChild5, ++/* 45512*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45515*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45517*/ OPC_CheckType, MVT::i32, ++/* 45519*/ OPC_MoveParent, ++/* 45520*/ OPC_MoveChild6, ++/* 45521*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45524*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45526*/ OPC_CheckType, MVT::i32, ++/* 45528*/ OPC_MoveParent, ++/* 45529*/ OPC_MoveChild7, ++/* 45530*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45533*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45535*/ OPC_CheckType, MVT::i32, ++/* 45537*/ OPC_MoveParent, ++/* 45538*/ OPC_MoveChild, 8, ++/* 45540*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45543*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45545*/ OPC_CheckType, MVT::i32, ++/* 45547*/ OPC_MoveParent, ++/* 45548*/ OPC_MoveChild, 9, ++/* 45550*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45553*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45555*/ OPC_CheckType, MVT::i32, ++/* 45557*/ OPC_MoveParent, ++/* 45558*/ OPC_MoveChild, 10, ++/* 45560*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45563*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45565*/ OPC_CheckType, MVT::i32, ++/* 45567*/ OPC_MoveParent, ++/* 45568*/ OPC_MoveChild, 11, ++/* 45570*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45573*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45575*/ OPC_CheckType, MVT::i32, ++/* 45577*/ OPC_MoveParent, ++/* 45578*/ OPC_MoveChild, 12, ++/* 45580*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45583*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45585*/ OPC_CheckType, MVT::i32, ++/* 45587*/ OPC_MoveParent, ++/* 45588*/ OPC_MoveChild, 13, ++/* 45590*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45593*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45595*/ OPC_CheckType, MVT::i32, ++/* 45597*/ OPC_MoveParent, ++/* 45598*/ OPC_MoveChild, 14, ++/* 45600*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45603*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45605*/ OPC_CheckType, MVT::i32, ++/* 45607*/ OPC_MoveParent, ++/* 45608*/ OPC_MoveChild, 15, ++/* 45610*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45613*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45615*/ OPC_CheckType, MVT::i32, ++/* 45617*/ OPC_MoveParent, ++/* 45618*/ OPC_MoveParent, ++/* 45619*/ OPC_CheckType, MVT::v16i16, ++/* 45621*/ OPC_MoveParent, ++/* 45622*/ OPC_MoveParent, ++/* 45623*/ OPC_MoveChild1, ++/* 45624*/ OPC_CheckImmAllOnesV, ++/* 45625*/ OPC_MoveParent, ++/* 45626*/ OPC_MoveParent, ++/* 45627*/ OPC_RecordChild1, // #1 = $vs ++/* 45628*/ OPC_CheckType, MVT::v16i16, ++/* 45630*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 45632*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v16i16] } (xor:{ *:[v16i16] } (shl:{ *:[v16i16] } (build_vector:{ *:[v16i16] })<>, (and:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vt, (build_vector:{ *:[v16i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))), immAllOnesV:{ *:[v16i16] }), v16i16:{ *:[v16i16] }:$vs) - Complexity = 87 ++ // Dst: (XVBITCLR_H:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vs, v16i16:{ *:[v16i16] }:$vt) ++/* 45640*/ /*Scope*/ 51|128,1/*179*/, /*->45821*/ ++/* 45642*/ OPC_MoveChild0, ++/* 45643*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 45646*/ OPC_MoveChild0, ++/* 45647*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45650*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45652*/ OPC_CheckType, MVT::i32, ++/* 45654*/ OPC_MoveParent, ++/* 45655*/ OPC_MoveChild1, ++/* 45656*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45659*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45661*/ OPC_CheckType, MVT::i32, ++/* 45663*/ OPC_MoveParent, ++/* 45664*/ OPC_MoveChild2, ++/* 45665*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45668*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45670*/ OPC_CheckType, MVT::i32, ++/* 45672*/ OPC_MoveParent, ++/* 45673*/ OPC_MoveChild3, ++/* 45674*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45677*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45679*/ OPC_CheckType, MVT::i32, ++/* 45681*/ OPC_MoveParent, ++/* 45682*/ OPC_MoveChild4, ++/* 45683*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45686*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45688*/ OPC_CheckType, MVT::i32, ++/* 45690*/ OPC_MoveParent, ++/* 45691*/ OPC_MoveChild5, ++/* 45692*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45695*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45697*/ OPC_CheckType, MVT::i32, ++/* 45699*/ OPC_MoveParent, ++/* 45700*/ OPC_MoveChild6, ++/* 45701*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45704*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45706*/ OPC_CheckType, MVT::i32, ++/* 45708*/ OPC_MoveParent, ++/* 45709*/ OPC_MoveChild7, ++/* 45710*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45713*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45715*/ OPC_CheckType, MVT::i32, ++/* 45717*/ OPC_MoveParent, ++/* 45718*/ OPC_MoveChild, 8, ++/* 45720*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45723*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45725*/ OPC_CheckType, MVT::i32, ++/* 45727*/ OPC_MoveParent, ++/* 45728*/ OPC_MoveChild, 9, ++/* 45730*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45733*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45735*/ OPC_CheckType, MVT::i32, ++/* 45737*/ OPC_MoveParent, ++/* 45738*/ OPC_MoveChild, 10, ++/* 45740*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45743*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45745*/ OPC_CheckType, MVT::i32, ++/* 45747*/ OPC_MoveParent, ++/* 45748*/ OPC_MoveChild, 11, ++/* 45750*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45753*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45755*/ OPC_CheckType, MVT::i32, ++/* 45757*/ OPC_MoveParent, ++/* 45758*/ OPC_MoveChild, 12, ++/* 45760*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45763*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45765*/ OPC_CheckType, MVT::i32, ++/* 45767*/ OPC_MoveParent, ++/* 45768*/ OPC_MoveChild, 13, ++/* 45770*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45773*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45775*/ OPC_CheckType, MVT::i32, ++/* 45777*/ OPC_MoveParent, ++/* 45778*/ OPC_MoveChild, 14, ++/* 45780*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45783*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45785*/ OPC_CheckType, MVT::i32, ++/* 45787*/ OPC_MoveParent, ++/* 45788*/ OPC_MoveChild, 15, ++/* 45790*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45793*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45795*/ OPC_CheckType, MVT::i32, ++/* 45797*/ OPC_MoveParent, ++/* 45798*/ OPC_MoveParent, ++/* 45799*/ OPC_RecordChild1, // #0 = $vt ++/* 45800*/ OPC_CheckType, MVT::v16i16, ++/* 45802*/ OPC_MoveParent, ++/* 45803*/ OPC_MoveParent, ++/* 45804*/ OPC_MoveChild1, ++/* 45805*/ OPC_CheckImmAllOnesV, ++/* 45806*/ OPC_MoveParent, ++/* 45807*/ OPC_MoveParent, ++/* 45808*/ OPC_RecordChild1, // #1 = $vs ++/* 45809*/ OPC_CheckType, MVT::v16i16, ++/* 45811*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 45813*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v16i16] } (xor:{ *:[v16i16] } (shl:{ *:[v16i16] } (build_vector:{ *:[v16i16] })<>, (and:{ *:[v16i16] } (build_vector:{ *:[v16i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v16i16:{ *:[v16i16] }:$vt)), immAllOnesV:{ *:[v16i16] }), v16i16:{ *:[v16i16] }:$vs) - Complexity = 87 ++ // Dst: (XVBITCLR_H:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vs, v16i16:{ *:[v16i16] }:$vt) ++/* 45821*/ 0, /*End of Scope*/ ++/* 45822*/ /*Scope*/ 119|128,2/*375*/, /*->46199*/ ++/* 45824*/ OPC_CheckImmAllOnesV, ++/* 45825*/ OPC_MoveParent, ++/* 45826*/ OPC_MoveChild1, ++/* 45827*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 45830*/ OPC_MoveChild0, ++/* 45831*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 45834*/ OPC_CheckPredicate, 42, // Predicate_xvsplat_imm_eq_1 ++/* 45836*/ OPC_MoveParent, ++/* 45837*/ OPC_MoveChild1, ++/* 45838*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 45841*/ OPC_Scope, 48|128,1/*176*/, /*->46020*/ // 2 children in Scope ++/* 45844*/ OPC_RecordChild0, // #0 = $vt ++/* 45845*/ OPC_MoveChild1, ++/* 45846*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 45849*/ OPC_MoveChild0, ++/* 45850*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45853*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45855*/ OPC_CheckType, MVT::i32, ++/* 45857*/ OPC_MoveParent, ++/* 45858*/ OPC_MoveChild1, ++/* 45859*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45862*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45864*/ OPC_CheckType, MVT::i32, ++/* 45866*/ OPC_MoveParent, ++/* 45867*/ OPC_MoveChild2, ++/* 45868*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45871*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45873*/ OPC_CheckType, MVT::i32, ++/* 45875*/ OPC_MoveParent, ++/* 45876*/ OPC_MoveChild3, ++/* 45877*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45880*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45882*/ OPC_CheckType, MVT::i32, ++/* 45884*/ OPC_MoveParent, ++/* 45885*/ OPC_MoveChild4, ++/* 45886*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45889*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45891*/ OPC_CheckType, MVT::i32, ++/* 45893*/ OPC_MoveParent, ++/* 45894*/ OPC_MoveChild5, ++/* 45895*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45898*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45900*/ OPC_CheckType, MVT::i32, ++/* 45902*/ OPC_MoveParent, ++/* 45903*/ OPC_MoveChild6, ++/* 45904*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45907*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45909*/ OPC_CheckType, MVT::i32, ++/* 45911*/ OPC_MoveParent, ++/* 45912*/ OPC_MoveChild7, ++/* 45913*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45916*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45918*/ OPC_CheckType, MVT::i32, ++/* 45920*/ OPC_MoveParent, ++/* 45921*/ OPC_MoveChild, 8, ++/* 45923*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45926*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45928*/ OPC_CheckType, MVT::i32, ++/* 45930*/ OPC_MoveParent, ++/* 45931*/ OPC_MoveChild, 9, ++/* 45933*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45936*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45938*/ OPC_CheckType, MVT::i32, ++/* 45940*/ OPC_MoveParent, ++/* 45941*/ OPC_MoveChild, 10, ++/* 45943*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45946*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45948*/ OPC_CheckType, MVT::i32, ++/* 45950*/ OPC_MoveParent, ++/* 45951*/ OPC_MoveChild, 11, ++/* 45953*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45956*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45958*/ OPC_CheckType, MVT::i32, ++/* 45960*/ OPC_MoveParent, ++/* 45961*/ OPC_MoveChild, 12, ++/* 45963*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45966*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45968*/ OPC_CheckType, MVT::i32, ++/* 45970*/ OPC_MoveParent, ++/* 45971*/ OPC_MoveChild, 13, ++/* 45973*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45976*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45978*/ OPC_CheckType, MVT::i32, ++/* 45980*/ OPC_MoveParent, ++/* 45981*/ OPC_MoveChild, 14, ++/* 45983*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45986*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45988*/ OPC_CheckType, MVT::i32, ++/* 45990*/ OPC_MoveParent, ++/* 45991*/ OPC_MoveChild, 15, ++/* 45993*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 45996*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 45998*/ OPC_CheckType, MVT::i32, ++/* 46000*/ OPC_MoveParent, ++/* 46001*/ OPC_MoveParent, ++/* 46002*/ OPC_CheckType, MVT::v16i16, ++/* 46004*/ OPC_MoveParent, ++/* 46005*/ OPC_MoveParent, ++/* 46006*/ OPC_MoveParent, ++/* 46007*/ OPC_RecordChild1, // #1 = $vs ++/* 46008*/ OPC_CheckType, MVT::v16i16, ++/* 46010*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 46012*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v16i16] } (xor:{ *:[v16i16] } immAllOnesV:{ *:[v16i16] }, (shl:{ *:[v16i16] } (build_vector:{ *:[v16i16] })<>, (and:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vt, (build_vector:{ *:[v16i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>)))), v16i16:{ *:[v16i16] }:$vs) - Complexity = 87 ++ // Dst: (XVBITCLR_H:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vs, v16i16:{ *:[v16i16] }:$vt) ++/* 46020*/ /*Scope*/ 48|128,1/*176*/, /*->46198*/ ++/* 46022*/ OPC_MoveChild0, ++/* 46023*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 46026*/ OPC_MoveChild0, ++/* 46027*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46030*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 46032*/ OPC_CheckType, MVT::i32, ++/* 46034*/ OPC_MoveParent, ++/* 46035*/ OPC_MoveChild1, ++/* 46036*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46039*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 46041*/ OPC_CheckType, MVT::i32, ++/* 46043*/ OPC_MoveParent, ++/* 46044*/ OPC_MoveChild2, ++/* 46045*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46048*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 46050*/ OPC_CheckType, MVT::i32, ++/* 46052*/ OPC_MoveParent, ++/* 46053*/ OPC_MoveChild3, ++/* 46054*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46057*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 46059*/ OPC_CheckType, MVT::i32, ++/* 46061*/ OPC_MoveParent, ++/* 46062*/ OPC_MoveChild4, ++/* 46063*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46066*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 46068*/ OPC_CheckType, MVT::i32, ++/* 46070*/ OPC_MoveParent, ++/* 46071*/ OPC_MoveChild5, ++/* 46072*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46075*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 46077*/ OPC_CheckType, MVT::i32, ++/* 46079*/ OPC_MoveParent, ++/* 46080*/ OPC_MoveChild6, ++/* 46081*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46084*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 46086*/ OPC_CheckType, MVT::i32, ++/* 46088*/ OPC_MoveParent, ++/* 46089*/ OPC_MoveChild7, ++/* 46090*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46093*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 46095*/ OPC_CheckType, MVT::i32, ++/* 46097*/ OPC_MoveParent, ++/* 46098*/ OPC_MoveChild, 8, ++/* 46100*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46103*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 46105*/ OPC_CheckType, MVT::i32, ++/* 46107*/ OPC_MoveParent, ++/* 46108*/ OPC_MoveChild, 9, ++/* 46110*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46113*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 46115*/ OPC_CheckType, MVT::i32, ++/* 46117*/ OPC_MoveParent, ++/* 46118*/ OPC_MoveChild, 10, ++/* 46120*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46123*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 46125*/ OPC_CheckType, MVT::i32, ++/* 46127*/ OPC_MoveParent, ++/* 46128*/ OPC_MoveChild, 11, ++/* 46130*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46133*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 46135*/ OPC_CheckType, MVT::i32, ++/* 46137*/ OPC_MoveParent, ++/* 46138*/ OPC_MoveChild, 12, ++/* 46140*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46143*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 46145*/ OPC_CheckType, MVT::i32, ++/* 46147*/ OPC_MoveParent, ++/* 46148*/ OPC_MoveChild, 13, ++/* 46150*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46153*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 46155*/ OPC_CheckType, MVT::i32, ++/* 46157*/ OPC_MoveParent, ++/* 46158*/ OPC_MoveChild, 14, ++/* 46160*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46163*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 46165*/ OPC_CheckType, MVT::i32, ++/* 46167*/ OPC_MoveParent, ++/* 46168*/ OPC_MoveChild, 15, ++/* 46170*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46173*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 46175*/ OPC_CheckType, MVT::i32, ++/* 46177*/ OPC_MoveParent, ++/* 46178*/ OPC_MoveParent, ++/* 46179*/ OPC_RecordChild1, // #0 = $vt ++/* 46180*/ OPC_CheckType, MVT::v16i16, ++/* 46182*/ OPC_MoveParent, ++/* 46183*/ OPC_MoveParent, ++/* 46184*/ OPC_MoveParent, ++/* 46185*/ OPC_RecordChild1, // #1 = $vs ++/* 46186*/ OPC_CheckType, MVT::v16i16, ++/* 46188*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 46190*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v16i16] } (xor:{ *:[v16i16] } immAllOnesV:{ *:[v16i16] }, (shl:{ *:[v16i16] } (build_vector:{ *:[v16i16] })<>, (and:{ *:[v16i16] } (build_vector:{ *:[v16i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v16i16:{ *:[v16i16] }:$vt))), v16i16:{ *:[v16i16] }:$vs) - Complexity = 87 ++ // Dst: (XVBITCLR_H:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vs, v16i16:{ *:[v16i16] }:$vt) ++/* 46198*/ 0, /*End of Scope*/ ++/* 46199*/ 0, /*End of Scope*/ ++/* 46200*/ /*Scope*/ 49|128,4/*561*/, /*->46763*/ ++/* 46202*/ OPC_RecordChild0, // #0 = $vj ++/* 46203*/ OPC_MoveChild1, ++/* 46204*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 46207*/ OPC_MoveChild0, ++/* 46208*/ OPC_SwitchOpcode /*2 cases */, 108|128,2/*364*/, TARGET_VAL(ISD::SHL),// ->46577 ++/* 46213*/ OPC_MoveChild0, ++/* 46214*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 46217*/ OPC_Scope, 49|128,1/*177*/, /*->46397*/ // 2 children in Scope ++/* 46220*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 46222*/ OPC_MoveParent, ++/* 46223*/ OPC_RecordChild1, // #1 = $vk ++/* 46224*/ OPC_CheckChild1Type, MVT::v16i8, ++/* 46226*/ OPC_MoveParent, ++/* 46227*/ OPC_MoveChild1, ++/* 46228*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 46231*/ OPC_MoveChild0, ++/* 46232*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46235*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46237*/ OPC_CheckType, MVT::i32, ++/* 46239*/ OPC_MoveParent, ++/* 46240*/ OPC_MoveChild1, ++/* 46241*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46244*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46246*/ OPC_CheckType, MVT::i32, ++/* 46248*/ OPC_MoveParent, ++/* 46249*/ OPC_MoveChild2, ++/* 46250*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46253*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46255*/ OPC_CheckType, MVT::i32, ++/* 46257*/ OPC_MoveParent, ++/* 46258*/ OPC_MoveChild3, ++/* 46259*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46262*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46264*/ OPC_CheckType, MVT::i32, ++/* 46266*/ OPC_MoveParent, ++/* 46267*/ OPC_MoveChild4, ++/* 46268*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46271*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46273*/ OPC_CheckType, MVT::i32, ++/* 46275*/ OPC_MoveParent, ++/* 46276*/ OPC_MoveChild5, ++/* 46277*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46280*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46282*/ OPC_CheckType, MVT::i32, ++/* 46284*/ OPC_MoveParent, ++/* 46285*/ OPC_MoveChild6, ++/* 46286*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46289*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46291*/ OPC_CheckType, MVT::i32, ++/* 46293*/ OPC_MoveParent, ++/* 46294*/ OPC_MoveChild7, ++/* 46295*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46298*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46300*/ OPC_CheckType, MVT::i32, ++/* 46302*/ OPC_MoveParent, ++/* 46303*/ OPC_MoveChild, 8, ++/* 46305*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46308*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46310*/ OPC_CheckType, MVT::i32, ++/* 46312*/ OPC_MoveParent, ++/* 46313*/ OPC_MoveChild, 9, ++/* 46315*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46318*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46320*/ OPC_CheckType, MVT::i32, ++/* 46322*/ OPC_MoveParent, ++/* 46323*/ OPC_MoveChild, 10, ++/* 46325*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46328*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46330*/ OPC_CheckType, MVT::i32, ++/* 46332*/ OPC_MoveParent, ++/* 46333*/ OPC_MoveChild, 11, ++/* 46335*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46338*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46340*/ OPC_CheckType, MVT::i32, ++/* 46342*/ OPC_MoveParent, ++/* 46343*/ OPC_MoveChild, 12, ++/* 46345*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46348*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46350*/ OPC_CheckType, MVT::i32, ++/* 46352*/ OPC_MoveParent, ++/* 46353*/ OPC_MoveChild, 13, ++/* 46355*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46358*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46360*/ OPC_CheckType, MVT::i32, ++/* 46362*/ OPC_MoveParent, ++/* 46363*/ OPC_MoveChild, 14, ++/* 46365*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46368*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46370*/ OPC_CheckType, MVT::i32, ++/* 46372*/ OPC_MoveParent, ++/* 46373*/ OPC_MoveChild, 15, ++/* 46375*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46378*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46380*/ OPC_CheckType, MVT::i32, ++/* 46382*/ OPC_MoveParent, ++/* 46383*/ OPC_MoveParent, ++/* 46384*/ OPC_MoveParent, ++/* 46385*/ OPC_CheckType, MVT::v16i8, ++/* 46387*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 46389*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vj, (xor:{ *:[v16i8] } (shl:{ *:[v16i8] } (build_vector:{ *:[v16i8] })<>, v16i8:{ *:[v16i8] }:$vk), (build_vector:{ *:[v16i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))) - Complexity = 80 ++ // Dst: (VBITCLR_B:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vj, v16i8:{ *:[v16i8] }:$vk) ++/* 46397*/ /*Scope*/ 49|128,1/*177*/, /*->46576*/ ++/* 46399*/ OPC_CheckPredicate, 42, // Predicate_xvsplat_imm_eq_1 ++/* 46401*/ OPC_MoveParent, ++/* 46402*/ OPC_RecordChild1, // #1 = $xk ++/* 46403*/ OPC_CheckChild1Type, MVT::v16i16, ++/* 46405*/ OPC_MoveParent, ++/* 46406*/ OPC_MoveChild1, ++/* 46407*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 46410*/ OPC_MoveChild0, ++/* 46411*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46414*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46416*/ OPC_CheckType, MVT::i32, ++/* 46418*/ OPC_MoveParent, ++/* 46419*/ OPC_MoveChild1, ++/* 46420*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46423*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46425*/ OPC_CheckType, MVT::i32, ++/* 46427*/ OPC_MoveParent, ++/* 46428*/ OPC_MoveChild2, ++/* 46429*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46432*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46434*/ OPC_CheckType, MVT::i32, ++/* 46436*/ OPC_MoveParent, ++/* 46437*/ OPC_MoveChild3, ++/* 46438*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46441*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46443*/ OPC_CheckType, MVT::i32, ++/* 46445*/ OPC_MoveParent, ++/* 46446*/ OPC_MoveChild4, ++/* 46447*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46450*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46452*/ OPC_CheckType, MVT::i32, ++/* 46454*/ OPC_MoveParent, ++/* 46455*/ OPC_MoveChild5, ++/* 46456*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46459*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46461*/ OPC_CheckType, MVT::i32, ++/* 46463*/ OPC_MoveParent, ++/* 46464*/ OPC_MoveChild6, ++/* 46465*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46468*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46470*/ OPC_CheckType, MVT::i32, ++/* 46472*/ OPC_MoveParent, ++/* 46473*/ OPC_MoveChild7, ++/* 46474*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46477*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46479*/ OPC_CheckType, MVT::i32, ++/* 46481*/ OPC_MoveParent, ++/* 46482*/ OPC_MoveChild, 8, ++/* 46484*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46487*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46489*/ OPC_CheckType, MVT::i32, ++/* 46491*/ OPC_MoveParent, ++/* 46492*/ OPC_MoveChild, 9, ++/* 46494*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46497*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46499*/ OPC_CheckType, MVT::i32, ++/* 46501*/ OPC_MoveParent, ++/* 46502*/ OPC_MoveChild, 10, ++/* 46504*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46507*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46509*/ OPC_CheckType, MVT::i32, ++/* 46511*/ OPC_MoveParent, ++/* 46512*/ OPC_MoveChild, 11, ++/* 46514*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46517*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46519*/ OPC_CheckType, MVT::i32, ++/* 46521*/ OPC_MoveParent, ++/* 46522*/ OPC_MoveChild, 12, ++/* 46524*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46527*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46529*/ OPC_CheckType, MVT::i32, ++/* 46531*/ OPC_MoveParent, ++/* 46532*/ OPC_MoveChild, 13, ++/* 46534*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46537*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46539*/ OPC_CheckType, MVT::i32, ++/* 46541*/ OPC_MoveParent, ++/* 46542*/ OPC_MoveChild, 14, ++/* 46544*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46547*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46549*/ OPC_CheckType, MVT::i32, ++/* 46551*/ OPC_MoveParent, ++/* 46552*/ OPC_MoveChild, 15, ++/* 46554*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46557*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46559*/ OPC_CheckType, MVT::i32, ++/* 46561*/ OPC_MoveParent, ++/* 46562*/ OPC_MoveParent, ++/* 46563*/ OPC_MoveParent, ++/* 46564*/ OPC_CheckType, MVT::v16i16, ++/* 46566*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 46568*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$xj, (xor:{ *:[v16i16] } (shl:{ *:[v16i16] } (build_vector:{ *:[v16i16] })<>, v16i16:{ *:[v16i16] }:$xk), (build_vector:{ *:[v16i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))) - Complexity = 80 ++ // Dst: (XVBITCLR_H:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$xj, v16i16:{ *:[v16i16] }:$xk) ++/* 46576*/ 0, /*End of Scope*/ ++/* 46577*/ /*SwitchOpcode*/ 53|128,1/*181*/, TARGET_VAL(ISD::BUILD_VECTOR),// ->46762 ++/* 46581*/ OPC_MoveChild0, ++/* 46582*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46585*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46587*/ OPC_CheckType, MVT::i32, ++/* 46589*/ OPC_MoveParent, ++/* 46590*/ OPC_MoveChild1, ++/* 46591*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46594*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46596*/ OPC_CheckType, MVT::i32, ++/* 46598*/ OPC_MoveParent, ++/* 46599*/ OPC_MoveChild2, ++/* 46600*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46603*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46605*/ OPC_CheckType, MVT::i32, ++/* 46607*/ OPC_MoveParent, ++/* 46608*/ OPC_MoveChild3, ++/* 46609*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46612*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46614*/ OPC_CheckType, MVT::i32, ++/* 46616*/ OPC_MoveParent, ++/* 46617*/ OPC_MoveChild4, ++/* 46618*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46621*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46623*/ OPC_CheckType, MVT::i32, ++/* 46625*/ OPC_MoveParent, ++/* 46626*/ OPC_MoveChild5, ++/* 46627*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46630*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46632*/ OPC_CheckType, MVT::i32, ++/* 46634*/ OPC_MoveParent, ++/* 46635*/ OPC_MoveChild6, ++/* 46636*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46639*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46641*/ OPC_CheckType, MVT::i32, ++/* 46643*/ OPC_MoveParent, ++/* 46644*/ OPC_MoveChild7, ++/* 46645*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46648*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46650*/ OPC_CheckType, MVT::i32, ++/* 46652*/ OPC_MoveParent, ++/* 46653*/ OPC_MoveChild, 8, ++/* 46655*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46658*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46660*/ OPC_CheckType, MVT::i32, ++/* 46662*/ OPC_MoveParent, ++/* 46663*/ OPC_MoveChild, 9, ++/* 46665*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46668*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46670*/ OPC_CheckType, MVT::i32, ++/* 46672*/ OPC_MoveParent, ++/* 46673*/ OPC_MoveChild, 10, ++/* 46675*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46678*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46680*/ OPC_CheckType, MVT::i32, ++/* 46682*/ OPC_MoveParent, ++/* 46683*/ OPC_MoveChild, 11, ++/* 46685*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46688*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46690*/ OPC_CheckType, MVT::i32, ++/* 46692*/ OPC_MoveParent, ++/* 46693*/ OPC_MoveChild, 12, ++/* 46695*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46698*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46700*/ OPC_CheckType, MVT::i32, ++/* 46702*/ OPC_MoveParent, ++/* 46703*/ OPC_MoveChild, 13, ++/* 46705*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46708*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46710*/ OPC_CheckType, MVT::i32, ++/* 46712*/ OPC_MoveParent, ++/* 46713*/ OPC_MoveChild, 14, ++/* 46715*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46718*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46720*/ OPC_CheckType, MVT::i32, ++/* 46722*/ OPC_MoveParent, ++/* 46723*/ OPC_MoveChild, 15, ++/* 46725*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46728*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46730*/ OPC_CheckType, MVT::i32, ++/* 46732*/ OPC_MoveParent, ++/* 46733*/ OPC_MoveParent, ++/* 46734*/ OPC_MoveChild1, ++/* 46735*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 46738*/ OPC_MoveChild0, ++/* 46739*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 46742*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 46744*/ OPC_MoveParent, ++/* 46745*/ OPC_RecordChild1, // #1 = $vk ++/* 46746*/ OPC_CheckChild1Type, MVT::v16i8, ++/* 46748*/ OPC_MoveParent, ++/* 46749*/ OPC_MoveParent, ++/* 46750*/ OPC_CheckType, MVT::v16i8, ++/* 46752*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 46754*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vj, (xor:{ *:[v16i8] } (build_vector:{ *:[v16i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), (shl:{ *:[v16i8] } (build_vector:{ *:[v16i8] })<>, v16i8:{ *:[v16i8] }:$vk))) - Complexity = 80 ++ // Dst: (VBITCLR_B:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vj, v16i8:{ *:[v16i8] }:$vk) ++/* 46762*/ 0, // EndSwitchOpcode ++/* 46763*/ /*Scope*/ 123|128,2/*379*/, /*->47144*/ ++/* 46765*/ OPC_MoveChild0, ++/* 46766*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 46769*/ OPC_MoveChild0, ++/* 46770*/ OPC_SwitchOpcode /*2 cases */, 54|128,1/*182*/, TARGET_VAL(ISD::SHL),// ->46957 ++/* 46775*/ OPC_MoveChild0, ++/* 46776*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 46779*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 46781*/ OPC_MoveParent, ++/* 46782*/ OPC_RecordChild1, // #0 = $vk ++/* 46783*/ OPC_CheckChild1Type, MVT::v16i8, ++/* 46785*/ OPC_MoveParent, ++/* 46786*/ OPC_MoveChild1, ++/* 46787*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 46790*/ OPC_MoveChild0, ++/* 46791*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46794*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46796*/ OPC_CheckType, MVT::i32, ++/* 46798*/ OPC_MoveParent, ++/* 46799*/ OPC_MoveChild1, ++/* 46800*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46803*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46805*/ OPC_CheckType, MVT::i32, ++/* 46807*/ OPC_MoveParent, ++/* 46808*/ OPC_MoveChild2, ++/* 46809*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46812*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46814*/ OPC_CheckType, MVT::i32, ++/* 46816*/ OPC_MoveParent, ++/* 46817*/ OPC_MoveChild3, ++/* 46818*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46821*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46823*/ OPC_CheckType, MVT::i32, ++/* 46825*/ OPC_MoveParent, ++/* 46826*/ OPC_MoveChild4, ++/* 46827*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46830*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46832*/ OPC_CheckType, MVT::i32, ++/* 46834*/ OPC_MoveParent, ++/* 46835*/ OPC_MoveChild5, ++/* 46836*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46839*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46841*/ OPC_CheckType, MVT::i32, ++/* 46843*/ OPC_MoveParent, ++/* 46844*/ OPC_MoveChild6, ++/* 46845*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46848*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46850*/ OPC_CheckType, MVT::i32, ++/* 46852*/ OPC_MoveParent, ++/* 46853*/ OPC_MoveChild7, ++/* 46854*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46857*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46859*/ OPC_CheckType, MVT::i32, ++/* 46861*/ OPC_MoveParent, ++/* 46862*/ OPC_MoveChild, 8, ++/* 46864*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46867*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46869*/ OPC_CheckType, MVT::i32, ++/* 46871*/ OPC_MoveParent, ++/* 46872*/ OPC_MoveChild, 9, ++/* 46874*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46877*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46879*/ OPC_CheckType, MVT::i32, ++/* 46881*/ OPC_MoveParent, ++/* 46882*/ OPC_MoveChild, 10, ++/* 46884*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46887*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46889*/ OPC_CheckType, MVT::i32, ++/* 46891*/ OPC_MoveParent, ++/* 46892*/ OPC_MoveChild, 11, ++/* 46894*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46897*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46899*/ OPC_CheckType, MVT::i32, ++/* 46901*/ OPC_MoveParent, ++/* 46902*/ OPC_MoveChild, 12, ++/* 46904*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46907*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46909*/ OPC_CheckType, MVT::i32, ++/* 46911*/ OPC_MoveParent, ++/* 46912*/ OPC_MoveChild, 13, ++/* 46914*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46917*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46919*/ OPC_CheckType, MVT::i32, ++/* 46921*/ OPC_MoveParent, ++/* 46922*/ OPC_MoveChild, 14, ++/* 46924*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46927*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46929*/ OPC_CheckType, MVT::i32, ++/* 46931*/ OPC_MoveParent, ++/* 46932*/ OPC_MoveChild, 15, ++/* 46934*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46937*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46939*/ OPC_CheckType, MVT::i32, ++/* 46941*/ OPC_MoveParent, ++/* 46942*/ OPC_MoveParent, ++/* 46943*/ OPC_MoveParent, ++/* 46944*/ OPC_RecordChild1, // #1 = $vj ++/* 46945*/ OPC_CheckType, MVT::v16i8, ++/* 46947*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 46949*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v16i8] } (xor:{ *:[v16i8] } (shl:{ *:[v16i8] } (build_vector:{ *:[v16i8] })<>, v16i8:{ *:[v16i8] }:$vk), (build_vector:{ *:[v16i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>)), v16i8:{ *:[v16i8] }:$vj) - Complexity = 80 ++ // Dst: (VBITCLR_B:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vj, v16i8:{ *:[v16i8] }:$vk) ++/* 46957*/ /*SwitchOpcode*/ 54|128,1/*182*/, TARGET_VAL(ISD::BUILD_VECTOR),// ->47143 ++/* 46961*/ OPC_MoveChild0, ++/* 46962*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46965*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46967*/ OPC_CheckType, MVT::i32, ++/* 46969*/ OPC_MoveParent, ++/* 46970*/ OPC_MoveChild1, ++/* 46971*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46974*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46976*/ OPC_CheckType, MVT::i32, ++/* 46978*/ OPC_MoveParent, ++/* 46979*/ OPC_MoveChild2, ++/* 46980*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46983*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46985*/ OPC_CheckType, MVT::i32, ++/* 46987*/ OPC_MoveParent, ++/* 46988*/ OPC_MoveChild3, ++/* 46989*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 46992*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 46994*/ OPC_CheckType, MVT::i32, ++/* 46996*/ OPC_MoveParent, ++/* 46997*/ OPC_MoveChild4, ++/* 46998*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47001*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47003*/ OPC_CheckType, MVT::i32, ++/* 47005*/ OPC_MoveParent, ++/* 47006*/ OPC_MoveChild5, ++/* 47007*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47010*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47012*/ OPC_CheckType, MVT::i32, ++/* 47014*/ OPC_MoveParent, ++/* 47015*/ OPC_MoveChild6, ++/* 47016*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47019*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47021*/ OPC_CheckType, MVT::i32, ++/* 47023*/ OPC_MoveParent, ++/* 47024*/ OPC_MoveChild7, ++/* 47025*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47028*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47030*/ OPC_CheckType, MVT::i32, ++/* 47032*/ OPC_MoveParent, ++/* 47033*/ OPC_MoveChild, 8, ++/* 47035*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47038*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47040*/ OPC_CheckType, MVT::i32, ++/* 47042*/ OPC_MoveParent, ++/* 47043*/ OPC_MoveChild, 9, ++/* 47045*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47048*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47050*/ OPC_CheckType, MVT::i32, ++/* 47052*/ OPC_MoveParent, ++/* 47053*/ OPC_MoveChild, 10, ++/* 47055*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47058*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47060*/ OPC_CheckType, MVT::i32, ++/* 47062*/ OPC_MoveParent, ++/* 47063*/ OPC_MoveChild, 11, ++/* 47065*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47068*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47070*/ OPC_CheckType, MVT::i32, ++/* 47072*/ OPC_MoveParent, ++/* 47073*/ OPC_MoveChild, 12, ++/* 47075*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47078*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47080*/ OPC_CheckType, MVT::i32, ++/* 47082*/ OPC_MoveParent, ++/* 47083*/ OPC_MoveChild, 13, ++/* 47085*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47088*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47090*/ OPC_CheckType, MVT::i32, ++/* 47092*/ OPC_MoveParent, ++/* 47093*/ OPC_MoveChild, 14, ++/* 47095*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47098*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47100*/ OPC_CheckType, MVT::i32, ++/* 47102*/ OPC_MoveParent, ++/* 47103*/ OPC_MoveChild, 15, ++/* 47105*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47108*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47110*/ OPC_CheckType, MVT::i32, ++/* 47112*/ OPC_MoveParent, ++/* 47113*/ OPC_MoveParent, ++/* 47114*/ OPC_MoveChild1, ++/* 47115*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 47118*/ OPC_MoveChild0, ++/* 47119*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 47122*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 47124*/ OPC_MoveParent, ++/* 47125*/ OPC_RecordChild1, // #0 = $vk ++/* 47126*/ OPC_CheckChild1Type, MVT::v16i8, ++/* 47128*/ OPC_MoveParent, ++/* 47129*/ OPC_MoveParent, ++/* 47130*/ OPC_RecordChild1, // #1 = $vj ++/* 47131*/ OPC_CheckType, MVT::v16i8, ++/* 47133*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 47135*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v16i8] } (xor:{ *:[v16i8] } (build_vector:{ *:[v16i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), (shl:{ *:[v16i8] } (build_vector:{ *:[v16i8] })<>, v16i8:{ *:[v16i8] }:$vk)), v16i8:{ *:[v16i8] }:$vj) - Complexity = 80 ++ // Dst: (VBITCLR_B:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vj, v16i8:{ *:[v16i8] }:$vk) ++/* 47143*/ 0, // EndSwitchOpcode ++/* 47144*/ /*Scope*/ 62|128,1/*190*/, /*->47336*/ ++/* 47146*/ OPC_RecordChild0, // #0 = $xj ++/* 47147*/ OPC_MoveChild1, ++/* 47148*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 47151*/ OPC_MoveChild0, ++/* 47152*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 47155*/ OPC_MoveChild0, ++/* 47156*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47159*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47161*/ OPC_CheckType, MVT::i32, ++/* 47163*/ OPC_MoveParent, ++/* 47164*/ OPC_MoveChild1, ++/* 47165*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47168*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47170*/ OPC_CheckType, MVT::i32, ++/* 47172*/ OPC_MoveParent, ++/* 47173*/ OPC_MoveChild2, ++/* 47174*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47177*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47179*/ OPC_CheckType, MVT::i32, ++/* 47181*/ OPC_MoveParent, ++/* 47182*/ OPC_MoveChild3, ++/* 47183*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47186*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47188*/ OPC_CheckType, MVT::i32, ++/* 47190*/ OPC_MoveParent, ++/* 47191*/ OPC_MoveChild4, ++/* 47192*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47195*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47197*/ OPC_CheckType, MVT::i32, ++/* 47199*/ OPC_MoveParent, ++/* 47200*/ OPC_MoveChild5, ++/* 47201*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47204*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47206*/ OPC_CheckType, MVT::i32, ++/* 47208*/ OPC_MoveParent, ++/* 47209*/ OPC_MoveChild6, ++/* 47210*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47213*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47215*/ OPC_CheckType, MVT::i32, ++/* 47217*/ OPC_MoveParent, ++/* 47218*/ OPC_MoveChild7, ++/* 47219*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47222*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47224*/ OPC_CheckType, MVT::i32, ++/* 47226*/ OPC_MoveParent, ++/* 47227*/ OPC_MoveChild, 8, ++/* 47229*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47232*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47234*/ OPC_CheckType, MVT::i32, ++/* 47236*/ OPC_MoveParent, ++/* 47237*/ OPC_MoveChild, 9, ++/* 47239*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47242*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47244*/ OPC_CheckType, MVT::i32, ++/* 47246*/ OPC_MoveParent, ++/* 47247*/ OPC_MoveChild, 10, ++/* 47249*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47252*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47254*/ OPC_CheckType, MVT::i32, ++/* 47256*/ OPC_MoveParent, ++/* 47257*/ OPC_MoveChild, 11, ++/* 47259*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47262*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47264*/ OPC_CheckType, MVT::i32, ++/* 47266*/ OPC_MoveParent, ++/* 47267*/ OPC_MoveChild, 12, ++/* 47269*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47272*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47274*/ OPC_CheckType, MVT::i32, ++/* 47276*/ OPC_MoveParent, ++/* 47277*/ OPC_MoveChild, 13, ++/* 47279*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47282*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47284*/ OPC_CheckType, MVT::i32, ++/* 47286*/ OPC_MoveParent, ++/* 47287*/ OPC_MoveChild, 14, ++/* 47289*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47292*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47294*/ OPC_CheckType, MVT::i32, ++/* 47296*/ OPC_MoveParent, ++/* 47297*/ OPC_MoveChild, 15, ++/* 47299*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47302*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47304*/ OPC_CheckType, MVT::i32, ++/* 47306*/ OPC_MoveParent, ++/* 47307*/ OPC_MoveParent, ++/* 47308*/ OPC_MoveChild1, ++/* 47309*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 47312*/ OPC_MoveChild0, ++/* 47313*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 47316*/ OPC_CheckPredicate, 42, // Predicate_xvsplat_imm_eq_1 ++/* 47318*/ OPC_MoveParent, ++/* 47319*/ OPC_RecordChild1, // #1 = $xk ++/* 47320*/ OPC_CheckChild1Type, MVT::v16i16, ++/* 47322*/ OPC_MoveParent, ++/* 47323*/ OPC_MoveParent, ++/* 47324*/ OPC_CheckType, MVT::v16i16, ++/* 47326*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 47328*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$xj, (xor:{ *:[v16i16] } (build_vector:{ *:[v16i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), (shl:{ *:[v16i16] } (build_vector:{ *:[v16i16] })<>, v16i16:{ *:[v16i16] }:$xk))) - Complexity = 80 ++ // Dst: (XVBITCLR_H:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$xj, v16i16:{ *:[v16i16] }:$xk) ++/* 47336*/ /*Scope*/ 105|128,5/*745*/, /*->48083*/ ++/* 47338*/ OPC_MoveChild0, ++/* 47339*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 47342*/ OPC_Scope, 119|128,2/*375*/, /*->47720*/ // 3 children in Scope ++/* 47345*/ OPC_MoveChild0, ++/* 47346*/ OPC_SwitchOpcode /*2 cases */, 54|128,1/*182*/, TARGET_VAL(ISD::SHL),// ->47533 ++/* 47351*/ OPC_MoveChild0, ++/* 47352*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 47355*/ OPC_CheckPredicate, 42, // Predicate_xvsplat_imm_eq_1 ++/* 47357*/ OPC_MoveParent, ++/* 47358*/ OPC_RecordChild1, // #0 = $xk ++/* 47359*/ OPC_CheckChild1Type, MVT::v16i16, ++/* 47361*/ OPC_MoveParent, ++/* 47362*/ OPC_MoveChild1, ++/* 47363*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 47366*/ OPC_MoveChild0, ++/* 47367*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47370*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47372*/ OPC_CheckType, MVT::i32, ++/* 47374*/ OPC_MoveParent, ++/* 47375*/ OPC_MoveChild1, ++/* 47376*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47379*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47381*/ OPC_CheckType, MVT::i32, ++/* 47383*/ OPC_MoveParent, ++/* 47384*/ OPC_MoveChild2, ++/* 47385*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47388*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47390*/ OPC_CheckType, MVT::i32, ++/* 47392*/ OPC_MoveParent, ++/* 47393*/ OPC_MoveChild3, ++/* 47394*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47397*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47399*/ OPC_CheckType, MVT::i32, ++/* 47401*/ OPC_MoveParent, ++/* 47402*/ OPC_MoveChild4, ++/* 47403*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47406*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47408*/ OPC_CheckType, MVT::i32, ++/* 47410*/ OPC_MoveParent, ++/* 47411*/ OPC_MoveChild5, ++/* 47412*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47415*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47417*/ OPC_CheckType, MVT::i32, ++/* 47419*/ OPC_MoveParent, ++/* 47420*/ OPC_MoveChild6, ++/* 47421*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47424*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47426*/ OPC_CheckType, MVT::i32, ++/* 47428*/ OPC_MoveParent, ++/* 47429*/ OPC_MoveChild7, ++/* 47430*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47433*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47435*/ OPC_CheckType, MVT::i32, ++/* 47437*/ OPC_MoveParent, ++/* 47438*/ OPC_MoveChild, 8, ++/* 47440*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47443*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47445*/ OPC_CheckType, MVT::i32, ++/* 47447*/ OPC_MoveParent, ++/* 47448*/ OPC_MoveChild, 9, ++/* 47450*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47453*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47455*/ OPC_CheckType, MVT::i32, ++/* 47457*/ OPC_MoveParent, ++/* 47458*/ OPC_MoveChild, 10, ++/* 47460*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47463*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47465*/ OPC_CheckType, MVT::i32, ++/* 47467*/ OPC_MoveParent, ++/* 47468*/ OPC_MoveChild, 11, ++/* 47470*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47473*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47475*/ OPC_CheckType, MVT::i32, ++/* 47477*/ OPC_MoveParent, ++/* 47478*/ OPC_MoveChild, 12, ++/* 47480*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47483*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47485*/ OPC_CheckType, MVT::i32, ++/* 47487*/ OPC_MoveParent, ++/* 47488*/ OPC_MoveChild, 13, ++/* 47490*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47493*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47495*/ OPC_CheckType, MVT::i32, ++/* 47497*/ OPC_MoveParent, ++/* 47498*/ OPC_MoveChild, 14, ++/* 47500*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47503*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47505*/ OPC_CheckType, MVT::i32, ++/* 47507*/ OPC_MoveParent, ++/* 47508*/ OPC_MoveChild, 15, ++/* 47510*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47513*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47515*/ OPC_CheckType, MVT::i32, ++/* 47517*/ OPC_MoveParent, ++/* 47518*/ OPC_MoveParent, ++/* 47519*/ OPC_MoveParent, ++/* 47520*/ OPC_RecordChild1, // #1 = $xj ++/* 47521*/ OPC_CheckType, MVT::v16i16, ++/* 47523*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 47525*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v16i16] } (xor:{ *:[v16i16] } (shl:{ *:[v16i16] } (build_vector:{ *:[v16i16] })<>, v16i16:{ *:[v16i16] }:$xk), (build_vector:{ *:[v16i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>)), v16i16:{ *:[v16i16] }:$xj) - Complexity = 80 ++ // Dst: (XVBITCLR_H:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$xj, v16i16:{ *:[v16i16] }:$xk) ++/* 47533*/ /*SwitchOpcode*/ 54|128,1/*182*/, TARGET_VAL(ISD::BUILD_VECTOR),// ->47719 ++/* 47537*/ OPC_MoveChild0, ++/* 47538*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47541*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47543*/ OPC_CheckType, MVT::i32, ++/* 47545*/ OPC_MoveParent, ++/* 47546*/ OPC_MoveChild1, ++/* 47547*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47550*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47552*/ OPC_CheckType, MVT::i32, ++/* 47554*/ OPC_MoveParent, ++/* 47555*/ OPC_MoveChild2, ++/* 47556*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47559*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47561*/ OPC_CheckType, MVT::i32, ++/* 47563*/ OPC_MoveParent, ++/* 47564*/ OPC_MoveChild3, ++/* 47565*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47568*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47570*/ OPC_CheckType, MVT::i32, ++/* 47572*/ OPC_MoveParent, ++/* 47573*/ OPC_MoveChild4, ++/* 47574*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47577*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47579*/ OPC_CheckType, MVT::i32, ++/* 47581*/ OPC_MoveParent, ++/* 47582*/ OPC_MoveChild5, ++/* 47583*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47586*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47588*/ OPC_CheckType, MVT::i32, ++/* 47590*/ OPC_MoveParent, ++/* 47591*/ OPC_MoveChild6, ++/* 47592*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47595*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47597*/ OPC_CheckType, MVT::i32, ++/* 47599*/ OPC_MoveParent, ++/* 47600*/ OPC_MoveChild7, ++/* 47601*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47604*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47606*/ OPC_CheckType, MVT::i32, ++/* 47608*/ OPC_MoveParent, ++/* 47609*/ OPC_MoveChild, 8, ++/* 47611*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47614*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47616*/ OPC_CheckType, MVT::i32, ++/* 47618*/ OPC_MoveParent, ++/* 47619*/ OPC_MoveChild, 9, ++/* 47621*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47624*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47626*/ OPC_CheckType, MVT::i32, ++/* 47628*/ OPC_MoveParent, ++/* 47629*/ OPC_MoveChild, 10, ++/* 47631*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47634*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47636*/ OPC_CheckType, MVT::i32, ++/* 47638*/ OPC_MoveParent, ++/* 47639*/ OPC_MoveChild, 11, ++/* 47641*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47644*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47646*/ OPC_CheckType, MVT::i32, ++/* 47648*/ OPC_MoveParent, ++/* 47649*/ OPC_MoveChild, 12, ++/* 47651*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47654*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47656*/ OPC_CheckType, MVT::i32, ++/* 47658*/ OPC_MoveParent, ++/* 47659*/ OPC_MoveChild, 13, ++/* 47661*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47664*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47666*/ OPC_CheckType, MVT::i32, ++/* 47668*/ OPC_MoveParent, ++/* 47669*/ OPC_MoveChild, 14, ++/* 47671*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47674*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47676*/ OPC_CheckType, MVT::i32, ++/* 47678*/ OPC_MoveParent, ++/* 47679*/ OPC_MoveChild, 15, ++/* 47681*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47684*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47686*/ OPC_CheckType, MVT::i32, ++/* 47688*/ OPC_MoveParent, ++/* 47689*/ OPC_MoveParent, ++/* 47690*/ OPC_MoveChild1, ++/* 47691*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 47694*/ OPC_MoveChild0, ++/* 47695*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 47698*/ OPC_CheckPredicate, 42, // Predicate_xvsplat_imm_eq_1 ++/* 47700*/ OPC_MoveParent, ++/* 47701*/ OPC_RecordChild1, // #0 = $xk ++/* 47702*/ OPC_CheckChild1Type, MVT::v16i16, ++/* 47704*/ OPC_MoveParent, ++/* 47705*/ OPC_MoveParent, ++/* 47706*/ OPC_RecordChild1, // #1 = $xj ++/* 47707*/ OPC_CheckType, MVT::v16i16, ++/* 47709*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 47711*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v16i16] } (xor:{ *:[v16i16] } (build_vector:{ *:[v16i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), (shl:{ *:[v16i16] } (build_vector:{ *:[v16i16] })<>, v16i16:{ *:[v16i16] }:$xk)), v16i16:{ *:[v16i16] }:$xj) - Complexity = 80 ++ // Dst: (XVBITCLR_H:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$xj, v16i16:{ *:[v16i16] }:$xk) ++/* 47719*/ 0, // EndSwitchOpcode ++/* 47720*/ /*Scope*/ 58|128,1/*186*/, /*->47908*/ ++/* 47722*/ OPC_RecordChild0, // #0 = $vj ++/* 47723*/ OPC_MoveChild1, ++/* 47724*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 47727*/ OPC_MoveChild0, ++/* 47728*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47731*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47733*/ OPC_CheckType, MVT::i32, ++/* 47735*/ OPC_MoveParent, ++/* 47736*/ OPC_MoveChild1, ++/* 47737*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47740*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47742*/ OPC_CheckType, MVT::i32, ++/* 47744*/ OPC_MoveParent, ++/* 47745*/ OPC_MoveChild2, ++/* 47746*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47749*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47751*/ OPC_CheckType, MVT::i32, ++/* 47753*/ OPC_MoveParent, ++/* 47754*/ OPC_MoveChild3, ++/* 47755*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47758*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47760*/ OPC_CheckType, MVT::i32, ++/* 47762*/ OPC_MoveParent, ++/* 47763*/ OPC_MoveChild4, ++/* 47764*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47767*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47769*/ OPC_CheckType, MVT::i32, ++/* 47771*/ OPC_MoveParent, ++/* 47772*/ OPC_MoveChild5, ++/* 47773*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47776*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47778*/ OPC_CheckType, MVT::i32, ++/* 47780*/ OPC_MoveParent, ++/* 47781*/ OPC_MoveChild6, ++/* 47782*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47785*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47787*/ OPC_CheckType, MVT::i32, ++/* 47789*/ OPC_MoveParent, ++/* 47790*/ OPC_MoveChild7, ++/* 47791*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47794*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47796*/ OPC_CheckType, MVT::i32, ++/* 47798*/ OPC_MoveParent, ++/* 47799*/ OPC_MoveChild, 8, ++/* 47801*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47804*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47806*/ OPC_CheckType, MVT::i32, ++/* 47808*/ OPC_MoveParent, ++/* 47809*/ OPC_MoveChild, 9, ++/* 47811*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47814*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47816*/ OPC_CheckType, MVT::i32, ++/* 47818*/ OPC_MoveParent, ++/* 47819*/ OPC_MoveChild, 10, ++/* 47821*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47824*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47826*/ OPC_CheckType, MVT::i32, ++/* 47828*/ OPC_MoveParent, ++/* 47829*/ OPC_MoveChild, 11, ++/* 47831*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47834*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47836*/ OPC_CheckType, MVT::i32, ++/* 47838*/ OPC_MoveParent, ++/* 47839*/ OPC_MoveChild, 12, ++/* 47841*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47844*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47846*/ OPC_CheckType, MVT::i32, ++/* 47848*/ OPC_MoveParent, ++/* 47849*/ OPC_MoveChild, 13, ++/* 47851*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47854*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47856*/ OPC_CheckType, MVT::i32, ++/* 47858*/ OPC_MoveParent, ++/* 47859*/ OPC_MoveChild, 14, ++/* 47861*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47864*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47866*/ OPC_CheckType, MVT::i32, ++/* 47868*/ OPC_MoveParent, ++/* 47869*/ OPC_MoveChild, 15, ++/* 47871*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47874*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47876*/ OPC_CheckType, MVT::i32, ++/* 47878*/ OPC_MoveParent, ++/* 47879*/ OPC_MoveParent, ++/* 47880*/ OPC_MoveParent, ++/* 47881*/ OPC_RecordChild1, // #1 = $vk ++/* 47882*/ OPC_SwitchType /*2 cases */, 10, MVT::v16i8,// ->47895 ++/* 47885*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 47887*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VANDN_V), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v16i8] } (xor:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$vj, (build_vector:{ *:[v16i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>)), LSX128B:{ *:[v16i8] }:$vk) - Complexity = 73 ++ // Dst: (VANDN_V:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) ++/* 47895*/ /*SwitchType*/ 10, MVT::v16i16,// ->47907 ++/* 47897*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 47899*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVANDN_H_PSEUDO), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v16i16] } (xor:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$xj, (build_vector:{ *:[v16i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>)), LASX256H:{ *:[v16i16] }:$xk) - Complexity = 73 ++ // Dst: (XVANDN_H_PSEUDO:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) ++/* 47907*/ 0, // EndSwitchType ++/* 47908*/ /*Scope*/ 44|128,1/*172*/, /*->48082*/ ++/* 47910*/ OPC_MoveChild0, ++/* 47911*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 47914*/ OPC_MoveChild0, ++/* 47915*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47918*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47920*/ OPC_CheckType, MVT::i32, ++/* 47922*/ OPC_MoveParent, ++/* 47923*/ OPC_MoveChild1, ++/* 47924*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47927*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47929*/ OPC_CheckType, MVT::i32, ++/* 47931*/ OPC_MoveParent, ++/* 47932*/ OPC_MoveChild2, ++/* 47933*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47936*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47938*/ OPC_CheckType, MVT::i32, ++/* 47940*/ OPC_MoveParent, ++/* 47941*/ OPC_MoveChild3, ++/* 47942*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47945*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47947*/ OPC_CheckType, MVT::i32, ++/* 47949*/ OPC_MoveParent, ++/* 47950*/ OPC_MoveChild4, ++/* 47951*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47954*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47956*/ OPC_CheckType, MVT::i32, ++/* 47958*/ OPC_MoveParent, ++/* 47959*/ OPC_MoveChild5, ++/* 47960*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47963*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47965*/ OPC_CheckType, MVT::i32, ++/* 47967*/ OPC_MoveParent, ++/* 47968*/ OPC_MoveChild6, ++/* 47969*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47972*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47974*/ OPC_CheckType, MVT::i32, ++/* 47976*/ OPC_MoveParent, ++/* 47977*/ OPC_MoveChild7, ++/* 47978*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47981*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47983*/ OPC_CheckType, MVT::i32, ++/* 47985*/ OPC_MoveParent, ++/* 47986*/ OPC_MoveChild, 8, ++/* 47988*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 47991*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 47993*/ OPC_CheckType, MVT::i32, ++/* 47995*/ OPC_MoveParent, ++/* 47996*/ OPC_MoveChild, 9, ++/* 47998*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48001*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48003*/ OPC_CheckType, MVT::i32, ++/* 48005*/ OPC_MoveParent, ++/* 48006*/ OPC_MoveChild, 10, ++/* 48008*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48011*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48013*/ OPC_CheckType, MVT::i32, ++/* 48015*/ OPC_MoveParent, ++/* 48016*/ OPC_MoveChild, 11, ++/* 48018*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48021*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48023*/ OPC_CheckType, MVT::i32, ++/* 48025*/ OPC_MoveParent, ++/* 48026*/ OPC_MoveChild, 12, ++/* 48028*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48031*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48033*/ OPC_CheckType, MVT::i32, ++/* 48035*/ OPC_MoveParent, ++/* 48036*/ OPC_MoveChild, 13, ++/* 48038*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48041*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48043*/ OPC_CheckType, MVT::i32, ++/* 48045*/ OPC_MoveParent, ++/* 48046*/ OPC_MoveChild, 14, ++/* 48048*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48051*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48053*/ OPC_CheckType, MVT::i32, ++/* 48055*/ OPC_MoveParent, ++/* 48056*/ OPC_MoveChild, 15, ++/* 48058*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48061*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48063*/ OPC_CheckType, MVT::i32, ++/* 48065*/ OPC_MoveParent, ++/* 48066*/ OPC_MoveParent, ++/* 48067*/ OPC_RecordChild1, // #0 = $vj ++/* 48068*/ OPC_MoveParent, ++/* 48069*/ OPC_RecordChild1, // #1 = $vk ++/* 48070*/ OPC_CheckType, MVT::v16i8, ++/* 48072*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 48074*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VANDN_V), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v16i8] } (xor:{ *:[v16i8] } (build_vector:{ *:[v16i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), LSX128B:{ *:[v16i8] }:$vj), LSX128B:{ *:[v16i8] }:$vk) - Complexity = 73 ++ // Dst: (VANDN_V:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) ++/* 48082*/ 0, /*End of Scope*/ ++/* 48083*/ /*Scope*/ 97|128,2/*353*/, /*->48438*/ ++/* 48085*/ OPC_RecordChild0, // #0 = $vk ++/* 48086*/ OPC_MoveChild1, ++/* 48087*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 48090*/ OPC_Scope, 43|128,1/*171*/, /*->48264*/ // 2 children in Scope ++/* 48093*/ OPC_RecordChild0, // #1 = $vj ++/* 48094*/ OPC_MoveChild1, ++/* 48095*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 48098*/ OPC_MoveChild0, ++/* 48099*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48102*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48104*/ OPC_CheckType, MVT::i32, ++/* 48106*/ OPC_MoveParent, ++/* 48107*/ OPC_MoveChild1, ++/* 48108*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48111*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48113*/ OPC_CheckType, MVT::i32, ++/* 48115*/ OPC_MoveParent, ++/* 48116*/ OPC_MoveChild2, ++/* 48117*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48120*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48122*/ OPC_CheckType, MVT::i32, ++/* 48124*/ OPC_MoveParent, ++/* 48125*/ OPC_MoveChild3, ++/* 48126*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48129*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48131*/ OPC_CheckType, MVT::i32, ++/* 48133*/ OPC_MoveParent, ++/* 48134*/ OPC_MoveChild4, ++/* 48135*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48138*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48140*/ OPC_CheckType, MVT::i32, ++/* 48142*/ OPC_MoveParent, ++/* 48143*/ OPC_MoveChild5, ++/* 48144*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48147*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48149*/ OPC_CheckType, MVT::i32, ++/* 48151*/ OPC_MoveParent, ++/* 48152*/ OPC_MoveChild6, ++/* 48153*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48156*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48158*/ OPC_CheckType, MVT::i32, ++/* 48160*/ OPC_MoveParent, ++/* 48161*/ OPC_MoveChild7, ++/* 48162*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48165*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48167*/ OPC_CheckType, MVT::i32, ++/* 48169*/ OPC_MoveParent, ++/* 48170*/ OPC_MoveChild, 8, ++/* 48172*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48175*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48177*/ OPC_CheckType, MVT::i32, ++/* 48179*/ OPC_MoveParent, ++/* 48180*/ OPC_MoveChild, 9, ++/* 48182*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48185*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48187*/ OPC_CheckType, MVT::i32, ++/* 48189*/ OPC_MoveParent, ++/* 48190*/ OPC_MoveChild, 10, ++/* 48192*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48195*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48197*/ OPC_CheckType, MVT::i32, ++/* 48199*/ OPC_MoveParent, ++/* 48200*/ OPC_MoveChild, 11, ++/* 48202*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48205*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48207*/ OPC_CheckType, MVT::i32, ++/* 48209*/ OPC_MoveParent, ++/* 48210*/ OPC_MoveChild, 12, ++/* 48212*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48215*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48217*/ OPC_CheckType, MVT::i32, ++/* 48219*/ OPC_MoveParent, ++/* 48220*/ OPC_MoveChild, 13, ++/* 48222*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48225*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48227*/ OPC_CheckType, MVT::i32, ++/* 48229*/ OPC_MoveParent, ++/* 48230*/ OPC_MoveChild, 14, ++/* 48232*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48235*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48237*/ OPC_CheckType, MVT::i32, ++/* 48239*/ OPC_MoveParent, ++/* 48240*/ OPC_MoveChild, 15, ++/* 48242*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48245*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48247*/ OPC_CheckType, MVT::i32, ++/* 48249*/ OPC_MoveParent, ++/* 48250*/ OPC_MoveParent, ++/* 48251*/ OPC_MoveParent, ++/* 48252*/ OPC_CheckType, MVT::v16i8, ++/* 48254*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 48256*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VANDN_V), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$vk, (xor:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$vj, (build_vector:{ *:[v16i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))) - Complexity = 73 ++ // Dst: (VANDN_V:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) ++/* 48264*/ /*Scope*/ 43|128,1/*171*/, /*->48437*/ ++/* 48266*/ OPC_MoveChild0, ++/* 48267*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 48270*/ OPC_MoveChild0, ++/* 48271*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48274*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48276*/ OPC_CheckType, MVT::i32, ++/* 48278*/ OPC_MoveParent, ++/* 48279*/ OPC_MoveChild1, ++/* 48280*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48283*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48285*/ OPC_CheckType, MVT::i32, ++/* 48287*/ OPC_MoveParent, ++/* 48288*/ OPC_MoveChild2, ++/* 48289*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48292*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48294*/ OPC_CheckType, MVT::i32, ++/* 48296*/ OPC_MoveParent, ++/* 48297*/ OPC_MoveChild3, ++/* 48298*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48301*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48303*/ OPC_CheckType, MVT::i32, ++/* 48305*/ OPC_MoveParent, ++/* 48306*/ OPC_MoveChild4, ++/* 48307*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48310*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48312*/ OPC_CheckType, MVT::i32, ++/* 48314*/ OPC_MoveParent, ++/* 48315*/ OPC_MoveChild5, ++/* 48316*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48319*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48321*/ OPC_CheckType, MVT::i32, ++/* 48323*/ OPC_MoveParent, ++/* 48324*/ OPC_MoveChild6, ++/* 48325*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48328*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48330*/ OPC_CheckType, MVT::i32, ++/* 48332*/ OPC_MoveParent, ++/* 48333*/ OPC_MoveChild7, ++/* 48334*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48337*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48339*/ OPC_CheckType, MVT::i32, ++/* 48341*/ OPC_MoveParent, ++/* 48342*/ OPC_MoveChild, 8, ++/* 48344*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48347*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48349*/ OPC_CheckType, MVT::i32, ++/* 48351*/ OPC_MoveParent, ++/* 48352*/ OPC_MoveChild, 9, ++/* 48354*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48357*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48359*/ OPC_CheckType, MVT::i32, ++/* 48361*/ OPC_MoveParent, ++/* 48362*/ OPC_MoveChild, 10, ++/* 48364*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48367*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48369*/ OPC_CheckType, MVT::i32, ++/* 48371*/ OPC_MoveParent, ++/* 48372*/ OPC_MoveChild, 11, ++/* 48374*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48377*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48379*/ OPC_CheckType, MVT::i32, ++/* 48381*/ OPC_MoveParent, ++/* 48382*/ OPC_MoveChild, 12, ++/* 48384*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48387*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48389*/ OPC_CheckType, MVT::i32, ++/* 48391*/ OPC_MoveParent, ++/* 48392*/ OPC_MoveChild, 13, ++/* 48394*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48397*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48399*/ OPC_CheckType, MVT::i32, ++/* 48401*/ OPC_MoveParent, ++/* 48402*/ OPC_MoveChild, 14, ++/* 48404*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48407*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48409*/ OPC_CheckType, MVT::i32, ++/* 48411*/ OPC_MoveParent, ++/* 48412*/ OPC_MoveChild, 15, ++/* 48414*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48417*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48419*/ OPC_CheckType, MVT::i32, ++/* 48421*/ OPC_MoveParent, ++/* 48422*/ OPC_MoveParent, ++/* 48423*/ OPC_RecordChild1, // #1 = $vj ++/* 48424*/ OPC_MoveParent, ++/* 48425*/ OPC_CheckType, MVT::v16i8, ++/* 48427*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 48429*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VANDN_V), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$vk, (xor:{ *:[v16i8] } (build_vector:{ *:[v16i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), LSX128B:{ *:[v16i8] }:$vj)) - Complexity = 73 ++ // Dst: (VANDN_V:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) ++/* 48437*/ 0, /*End of Scope*/ ++/* 48438*/ /*Scope*/ 48|128,1/*176*/, /*->48616*/ ++/* 48440*/ OPC_MoveChild0, ++/* 48441*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 48444*/ OPC_MoveChild0, ++/* 48445*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 48448*/ OPC_MoveChild0, ++/* 48449*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48452*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48454*/ OPC_CheckType, MVT::i32, ++/* 48456*/ OPC_MoveParent, ++/* 48457*/ OPC_MoveChild1, ++/* 48458*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48461*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48463*/ OPC_CheckType, MVT::i32, ++/* 48465*/ OPC_MoveParent, ++/* 48466*/ OPC_MoveChild2, ++/* 48467*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48470*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48472*/ OPC_CheckType, MVT::i32, ++/* 48474*/ OPC_MoveParent, ++/* 48475*/ OPC_MoveChild3, ++/* 48476*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48479*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48481*/ OPC_CheckType, MVT::i32, ++/* 48483*/ OPC_MoveParent, ++/* 48484*/ OPC_MoveChild4, ++/* 48485*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48488*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48490*/ OPC_CheckType, MVT::i32, ++/* 48492*/ OPC_MoveParent, ++/* 48493*/ OPC_MoveChild5, ++/* 48494*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48497*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48499*/ OPC_CheckType, MVT::i32, ++/* 48501*/ OPC_MoveParent, ++/* 48502*/ OPC_MoveChild6, ++/* 48503*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48506*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48508*/ OPC_CheckType, MVT::i32, ++/* 48510*/ OPC_MoveParent, ++/* 48511*/ OPC_MoveChild7, ++/* 48512*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48515*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48517*/ OPC_CheckType, MVT::i32, ++/* 48519*/ OPC_MoveParent, ++/* 48520*/ OPC_MoveChild, 8, ++/* 48522*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48525*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48527*/ OPC_CheckType, MVT::i32, ++/* 48529*/ OPC_MoveParent, ++/* 48530*/ OPC_MoveChild, 9, ++/* 48532*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48535*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48537*/ OPC_CheckType, MVT::i32, ++/* 48539*/ OPC_MoveParent, ++/* 48540*/ OPC_MoveChild, 10, ++/* 48542*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48545*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48547*/ OPC_CheckType, MVT::i32, ++/* 48549*/ OPC_MoveParent, ++/* 48550*/ OPC_MoveChild, 11, ++/* 48552*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48555*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48557*/ OPC_CheckType, MVT::i32, ++/* 48559*/ OPC_MoveParent, ++/* 48560*/ OPC_MoveChild, 12, ++/* 48562*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48565*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48567*/ OPC_CheckType, MVT::i32, ++/* 48569*/ OPC_MoveParent, ++/* 48570*/ OPC_MoveChild, 13, ++/* 48572*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48575*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48577*/ OPC_CheckType, MVT::i32, ++/* 48579*/ OPC_MoveParent, ++/* 48580*/ OPC_MoveChild, 14, ++/* 48582*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48585*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48587*/ OPC_CheckType, MVT::i32, ++/* 48589*/ OPC_MoveParent, ++/* 48590*/ OPC_MoveChild, 15, ++/* 48592*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48595*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48597*/ OPC_CheckType, MVT::i32, ++/* 48599*/ OPC_MoveParent, ++/* 48600*/ OPC_MoveParent, ++/* 48601*/ OPC_RecordChild1, // #0 = $xj ++/* 48602*/ OPC_MoveParent, ++/* 48603*/ OPC_RecordChild1, // #1 = $xk ++/* 48604*/ OPC_CheckType, MVT::v16i16, ++/* 48606*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 48608*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVANDN_H_PSEUDO), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v16i16] } (xor:{ *:[v16i16] } (build_vector:{ *:[v16i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), LASX256H:{ *:[v16i16] }:$xj), LASX256H:{ *:[v16i16] }:$xk) - Complexity = 73 ++ // Dst: (XVANDN_H_PSEUDO:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) ++/* 48616*/ /*Scope*/ 3|128,7/*899*/, /*->49517*/ ++/* 48618*/ OPC_RecordChild0, // #0 = $xk ++/* 48619*/ OPC_MoveChild1, ++/* 48620*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 48623*/ OPC_Scope, 43|128,1/*171*/, /*->48797*/ // 2 children in Scope ++/* 48626*/ OPC_RecordChild0, // #1 = $xj ++/* 48627*/ OPC_MoveChild1, ++/* 48628*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 48631*/ OPC_MoveChild0, ++/* 48632*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48635*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48637*/ OPC_CheckType, MVT::i32, ++/* 48639*/ OPC_MoveParent, ++/* 48640*/ OPC_MoveChild1, ++/* 48641*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48644*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48646*/ OPC_CheckType, MVT::i32, ++/* 48648*/ OPC_MoveParent, ++/* 48649*/ OPC_MoveChild2, ++/* 48650*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48653*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48655*/ OPC_CheckType, MVT::i32, ++/* 48657*/ OPC_MoveParent, ++/* 48658*/ OPC_MoveChild3, ++/* 48659*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48662*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48664*/ OPC_CheckType, MVT::i32, ++/* 48666*/ OPC_MoveParent, ++/* 48667*/ OPC_MoveChild4, ++/* 48668*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48671*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48673*/ OPC_CheckType, MVT::i32, ++/* 48675*/ OPC_MoveParent, ++/* 48676*/ OPC_MoveChild5, ++/* 48677*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48680*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48682*/ OPC_CheckType, MVT::i32, ++/* 48684*/ OPC_MoveParent, ++/* 48685*/ OPC_MoveChild6, ++/* 48686*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48689*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48691*/ OPC_CheckType, MVT::i32, ++/* 48693*/ OPC_MoveParent, ++/* 48694*/ OPC_MoveChild7, ++/* 48695*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48698*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48700*/ OPC_CheckType, MVT::i32, ++/* 48702*/ OPC_MoveParent, ++/* 48703*/ OPC_MoveChild, 8, ++/* 48705*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48708*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48710*/ OPC_CheckType, MVT::i32, ++/* 48712*/ OPC_MoveParent, ++/* 48713*/ OPC_MoveChild, 9, ++/* 48715*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48718*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48720*/ OPC_CheckType, MVT::i32, ++/* 48722*/ OPC_MoveParent, ++/* 48723*/ OPC_MoveChild, 10, ++/* 48725*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48728*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48730*/ OPC_CheckType, MVT::i32, ++/* 48732*/ OPC_MoveParent, ++/* 48733*/ OPC_MoveChild, 11, ++/* 48735*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48738*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48740*/ OPC_CheckType, MVT::i32, ++/* 48742*/ OPC_MoveParent, ++/* 48743*/ OPC_MoveChild, 12, ++/* 48745*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48748*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48750*/ OPC_CheckType, MVT::i32, ++/* 48752*/ OPC_MoveParent, ++/* 48753*/ OPC_MoveChild, 13, ++/* 48755*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48758*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48760*/ OPC_CheckType, MVT::i32, ++/* 48762*/ OPC_MoveParent, ++/* 48763*/ OPC_MoveChild, 14, ++/* 48765*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48768*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48770*/ OPC_CheckType, MVT::i32, ++/* 48772*/ OPC_MoveParent, ++/* 48773*/ OPC_MoveChild, 15, ++/* 48775*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48778*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48780*/ OPC_CheckType, MVT::i32, ++/* 48782*/ OPC_MoveParent, ++/* 48783*/ OPC_MoveParent, ++/* 48784*/ OPC_MoveParent, ++/* 48785*/ OPC_CheckType, MVT::v16i16, ++/* 48787*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 48789*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVANDN_H_PSEUDO), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$xk, (xor:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$xj, (build_vector:{ *:[v16i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))) - Complexity = 73 ++ // Dst: (XVANDN_H_PSEUDO:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) ++/* 48797*/ /*Scope*/ 77|128,5/*717*/, /*->49516*/ ++/* 48799*/ OPC_MoveChild0, ++/* 48800*/ OPC_Scope, 42|128,1/*170*/, /*->48973*/ // 3 children in Scope ++/* 48803*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 48806*/ OPC_MoveChild0, ++/* 48807*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48810*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48812*/ OPC_CheckType, MVT::i32, ++/* 48814*/ OPC_MoveParent, ++/* 48815*/ OPC_MoveChild1, ++/* 48816*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48819*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48821*/ OPC_CheckType, MVT::i32, ++/* 48823*/ OPC_MoveParent, ++/* 48824*/ OPC_MoveChild2, ++/* 48825*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48828*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48830*/ OPC_CheckType, MVT::i32, ++/* 48832*/ OPC_MoveParent, ++/* 48833*/ OPC_MoveChild3, ++/* 48834*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48837*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48839*/ OPC_CheckType, MVT::i32, ++/* 48841*/ OPC_MoveParent, ++/* 48842*/ OPC_MoveChild4, ++/* 48843*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48846*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48848*/ OPC_CheckType, MVT::i32, ++/* 48850*/ OPC_MoveParent, ++/* 48851*/ OPC_MoveChild5, ++/* 48852*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48855*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48857*/ OPC_CheckType, MVT::i32, ++/* 48859*/ OPC_MoveParent, ++/* 48860*/ OPC_MoveChild6, ++/* 48861*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48864*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48866*/ OPC_CheckType, MVT::i32, ++/* 48868*/ OPC_MoveParent, ++/* 48869*/ OPC_MoveChild7, ++/* 48870*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48873*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48875*/ OPC_CheckType, MVT::i32, ++/* 48877*/ OPC_MoveParent, ++/* 48878*/ OPC_MoveChild, 8, ++/* 48880*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48883*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48885*/ OPC_CheckType, MVT::i32, ++/* 48887*/ OPC_MoveParent, ++/* 48888*/ OPC_MoveChild, 9, ++/* 48890*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48893*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48895*/ OPC_CheckType, MVT::i32, ++/* 48897*/ OPC_MoveParent, ++/* 48898*/ OPC_MoveChild, 10, ++/* 48900*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48903*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48905*/ OPC_CheckType, MVT::i32, ++/* 48907*/ OPC_MoveParent, ++/* 48908*/ OPC_MoveChild, 11, ++/* 48910*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48913*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48915*/ OPC_CheckType, MVT::i32, ++/* 48917*/ OPC_MoveParent, ++/* 48918*/ OPC_MoveChild, 12, ++/* 48920*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48923*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48925*/ OPC_CheckType, MVT::i32, ++/* 48927*/ OPC_MoveParent, ++/* 48928*/ OPC_MoveChild, 13, ++/* 48930*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48933*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48935*/ OPC_CheckType, MVT::i32, ++/* 48937*/ OPC_MoveParent, ++/* 48938*/ OPC_MoveChild, 14, ++/* 48940*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48943*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48945*/ OPC_CheckType, MVT::i32, ++/* 48947*/ OPC_MoveParent, ++/* 48948*/ OPC_MoveChild, 15, ++/* 48950*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 48953*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 48955*/ OPC_CheckType, MVT::i32, ++/* 48957*/ OPC_MoveParent, ++/* 48958*/ OPC_MoveParent, ++/* 48959*/ OPC_RecordChild1, // #1 = $xj ++/* 48960*/ OPC_MoveParent, ++/* 48961*/ OPC_CheckType, MVT::v16i16, ++/* 48963*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 48965*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVANDN_H_PSEUDO), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$xk, (xor:{ *:[v16i16] } (build_vector:{ *:[v16i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), LASX256H:{ *:[v16i16] }:$xj)) - Complexity = 73 ++ // Dst: (XVANDN_H_PSEUDO:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) ++/* 48973*/ /*Scope*/ 71|128,2/*327*/, /*->49302*/ ++/* 48975*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 48978*/ OPC_MoveChild0, ++/* 48979*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 48982*/ OPC_Scope, 105, /*->49089*/ // 3 children in Scope ++/* 48984*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 48986*/ OPC_MoveParent, ++/* 48987*/ OPC_MoveChild1, ++/* 48988*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 48991*/ OPC_RecordChild0, // #1 = $vt ++/* 48992*/ OPC_MoveChild1, ++/* 48993*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 48996*/ OPC_MoveChild0, ++/* 48997*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49000*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49002*/ OPC_CheckType, MVT::i32, ++/* 49004*/ OPC_MoveParent, ++/* 49005*/ OPC_MoveChild1, ++/* 49006*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49009*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49011*/ OPC_CheckType, MVT::i32, ++/* 49013*/ OPC_MoveParent, ++/* 49014*/ OPC_MoveChild2, ++/* 49015*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49018*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49020*/ OPC_CheckType, MVT::i32, ++/* 49022*/ OPC_MoveParent, ++/* 49023*/ OPC_MoveChild3, ++/* 49024*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49027*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49029*/ OPC_CheckType, MVT::i32, ++/* 49031*/ OPC_MoveParent, ++/* 49032*/ OPC_MoveChild4, ++/* 49033*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49036*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49038*/ OPC_CheckType, MVT::i32, ++/* 49040*/ OPC_MoveParent, ++/* 49041*/ OPC_MoveChild5, ++/* 49042*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49045*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49047*/ OPC_CheckType, MVT::i32, ++/* 49049*/ OPC_MoveParent, ++/* 49050*/ OPC_MoveChild6, ++/* 49051*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49054*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49056*/ OPC_CheckType, MVT::i32, ++/* 49058*/ OPC_MoveParent, ++/* 49059*/ OPC_MoveChild7, ++/* 49060*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49063*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49065*/ OPC_CheckType, MVT::i32, ++/* 49067*/ OPC_MoveParent, ++/* 49068*/ OPC_MoveParent, ++/* 49069*/ OPC_CheckType, MVT::v8i16, ++/* 49071*/ OPC_MoveParent, ++/* 49072*/ OPC_MoveParent, ++/* 49073*/ OPC_MoveChild1, ++/* 49074*/ OPC_CheckImmAllOnesV, ++/* 49075*/ OPC_MoveParent, ++/* 49076*/ OPC_MoveParent, ++/* 49077*/ OPC_CheckType, MVT::v8i16, ++/* 49079*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 49081*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vs, (xor:{ *:[v8i16] } (shl:{ *:[v8i16] } (build_vector:{ *:[v8i16] })<>, (and:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vt, (build_vector:{ *:[v8i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))), immAllOnesV:{ *:[v8i16] })) - Complexity = 55 ++ // Dst: (VBITCLR_H:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vs, v8i16:{ *:[v8i16] }:$vt) ++/* 49089*/ /*Scope*/ 105, /*->49195*/ ++/* 49090*/ OPC_CheckPredicate, 42, // Predicate_xvsplat_imm_eq_1 ++/* 49092*/ OPC_MoveParent, ++/* 49093*/ OPC_MoveChild1, ++/* 49094*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 49097*/ OPC_RecordChild0, // #1 = $vt ++/* 49098*/ OPC_MoveChild1, ++/* 49099*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 49102*/ OPC_MoveChild0, ++/* 49103*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49106*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 49108*/ OPC_CheckType, MVT::i32, ++/* 49110*/ OPC_MoveParent, ++/* 49111*/ OPC_MoveChild1, ++/* 49112*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49115*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 49117*/ OPC_CheckType, MVT::i32, ++/* 49119*/ OPC_MoveParent, ++/* 49120*/ OPC_MoveChild2, ++/* 49121*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49124*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 49126*/ OPC_CheckType, MVT::i32, ++/* 49128*/ OPC_MoveParent, ++/* 49129*/ OPC_MoveChild3, ++/* 49130*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49133*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 49135*/ OPC_CheckType, MVT::i32, ++/* 49137*/ OPC_MoveParent, ++/* 49138*/ OPC_MoveChild4, ++/* 49139*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49142*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 49144*/ OPC_CheckType, MVT::i32, ++/* 49146*/ OPC_MoveParent, ++/* 49147*/ OPC_MoveChild5, ++/* 49148*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49151*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 49153*/ OPC_CheckType, MVT::i32, ++/* 49155*/ OPC_MoveParent, ++/* 49156*/ OPC_MoveChild6, ++/* 49157*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49160*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 49162*/ OPC_CheckType, MVT::i32, ++/* 49164*/ OPC_MoveParent, ++/* 49165*/ OPC_MoveChild7, ++/* 49166*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49169*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 49171*/ OPC_CheckType, MVT::i32, ++/* 49173*/ OPC_MoveParent, ++/* 49174*/ OPC_MoveParent, ++/* 49175*/ OPC_CheckType, MVT::v8i32, ++/* 49177*/ OPC_MoveParent, ++/* 49178*/ OPC_MoveParent, ++/* 49179*/ OPC_MoveChild1, ++/* 49180*/ OPC_CheckImmAllOnesV, ++/* 49181*/ OPC_MoveParent, ++/* 49182*/ OPC_MoveParent, ++/* 49183*/ OPC_CheckType, MVT::v8i32, ++/* 49185*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 49187*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vs, (xor:{ *:[v8i32] } (shl:{ *:[v8i32] } (build_vector:{ *:[v8i32] })<>, (and:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vt, (build_vector:{ *:[v8i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))), immAllOnesV:{ *:[v8i32] })) - Complexity = 55 ++ // Dst: (XVBITCLR_W:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vs, v8i32:{ *:[v8i32] }:$vt) ++/* 49195*/ /*Scope*/ 105, /*->49301*/ ++/* 49196*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 49198*/ OPC_MoveParent, ++/* 49199*/ OPC_MoveChild1, ++/* 49200*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 49203*/ OPC_MoveChild0, ++/* 49204*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 49207*/ OPC_MoveChild0, ++/* 49208*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49211*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49213*/ OPC_CheckType, MVT::i32, ++/* 49215*/ OPC_MoveParent, ++/* 49216*/ OPC_MoveChild1, ++/* 49217*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49220*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49222*/ OPC_CheckType, MVT::i32, ++/* 49224*/ OPC_MoveParent, ++/* 49225*/ OPC_MoveChild2, ++/* 49226*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49229*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49231*/ OPC_CheckType, MVT::i32, ++/* 49233*/ OPC_MoveParent, ++/* 49234*/ OPC_MoveChild3, ++/* 49235*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49238*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49240*/ OPC_CheckType, MVT::i32, ++/* 49242*/ OPC_MoveParent, ++/* 49243*/ OPC_MoveChild4, ++/* 49244*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49247*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49249*/ OPC_CheckType, MVT::i32, ++/* 49251*/ OPC_MoveParent, ++/* 49252*/ OPC_MoveChild5, ++/* 49253*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49256*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49258*/ OPC_CheckType, MVT::i32, ++/* 49260*/ OPC_MoveParent, ++/* 49261*/ OPC_MoveChild6, ++/* 49262*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49265*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49267*/ OPC_CheckType, MVT::i32, ++/* 49269*/ OPC_MoveParent, ++/* 49270*/ OPC_MoveChild7, ++/* 49271*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49274*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49276*/ OPC_CheckType, MVT::i32, ++/* 49278*/ OPC_MoveParent, ++/* 49279*/ OPC_MoveParent, ++/* 49280*/ OPC_RecordChild1, // #1 = $vt ++/* 49281*/ OPC_CheckType, MVT::v8i16, ++/* 49283*/ OPC_MoveParent, ++/* 49284*/ OPC_MoveParent, ++/* 49285*/ OPC_MoveChild1, ++/* 49286*/ OPC_CheckImmAllOnesV, ++/* 49287*/ OPC_MoveParent, ++/* 49288*/ OPC_MoveParent, ++/* 49289*/ OPC_CheckType, MVT::v8i16, ++/* 49291*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 49293*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vs, (xor:{ *:[v8i16] } (shl:{ *:[v8i16] } (build_vector:{ *:[v8i16] })<>, (and:{ *:[v8i16] } (build_vector:{ *:[v8i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v8i16:{ *:[v8i16] }:$vt)), immAllOnesV:{ *:[v8i16] })) - Complexity = 55 ++ // Dst: (VBITCLR_H:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vs, v8i16:{ *:[v8i16] }:$vt) ++/* 49301*/ 0, /*End of Scope*/ ++/* 49302*/ /*Scope*/ 83|128,1/*211*/, /*->49515*/ ++/* 49304*/ OPC_CheckImmAllOnesV, ++/* 49305*/ OPC_MoveParent, ++/* 49306*/ OPC_MoveChild1, ++/* 49307*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 49310*/ OPC_MoveChild0, ++/* 49311*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 49314*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 49316*/ OPC_MoveParent, ++/* 49317*/ OPC_MoveChild1, ++/* 49318*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 49321*/ OPC_Scope, 95, /*->49418*/ // 2 children in Scope ++/* 49323*/ OPC_RecordChild0, // #1 = $vt ++/* 49324*/ OPC_MoveChild1, ++/* 49325*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 49328*/ OPC_MoveChild0, ++/* 49329*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49332*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49334*/ OPC_CheckType, MVT::i32, ++/* 49336*/ OPC_MoveParent, ++/* 49337*/ OPC_MoveChild1, ++/* 49338*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49341*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49343*/ OPC_CheckType, MVT::i32, ++/* 49345*/ OPC_MoveParent, ++/* 49346*/ OPC_MoveChild2, ++/* 49347*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49350*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49352*/ OPC_CheckType, MVT::i32, ++/* 49354*/ OPC_MoveParent, ++/* 49355*/ OPC_MoveChild3, ++/* 49356*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49359*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49361*/ OPC_CheckType, MVT::i32, ++/* 49363*/ OPC_MoveParent, ++/* 49364*/ OPC_MoveChild4, ++/* 49365*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49368*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49370*/ OPC_CheckType, MVT::i32, ++/* 49372*/ OPC_MoveParent, ++/* 49373*/ OPC_MoveChild5, ++/* 49374*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49377*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49379*/ OPC_CheckType, MVT::i32, ++/* 49381*/ OPC_MoveParent, ++/* 49382*/ OPC_MoveChild6, ++/* 49383*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49386*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49388*/ OPC_CheckType, MVT::i32, ++/* 49390*/ OPC_MoveParent, ++/* 49391*/ OPC_MoveChild7, ++/* 49392*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49395*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49397*/ OPC_CheckType, MVT::i32, ++/* 49399*/ OPC_MoveParent, ++/* 49400*/ OPC_MoveParent, ++/* 49401*/ OPC_CheckType, MVT::v8i16, ++/* 49403*/ OPC_MoveParent, ++/* 49404*/ OPC_MoveParent, ++/* 49405*/ OPC_MoveParent, ++/* 49406*/ OPC_CheckType, MVT::v8i16, ++/* 49408*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 49410*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vs, (xor:{ *:[v8i16] } immAllOnesV:{ *:[v8i16] }, (shl:{ *:[v8i16] } (build_vector:{ *:[v8i16] })<>, (and:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vt, (build_vector:{ *:[v8i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))))) - Complexity = 55 ++ // Dst: (VBITCLR_H:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vs, v8i16:{ *:[v8i16] }:$vt) ++/* 49418*/ /*Scope*/ 95, /*->49514*/ ++/* 49419*/ OPC_MoveChild0, ++/* 49420*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 49423*/ OPC_MoveChild0, ++/* 49424*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49427*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49429*/ OPC_CheckType, MVT::i32, ++/* 49431*/ OPC_MoveParent, ++/* 49432*/ OPC_MoveChild1, ++/* 49433*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49436*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49438*/ OPC_CheckType, MVT::i32, ++/* 49440*/ OPC_MoveParent, ++/* 49441*/ OPC_MoveChild2, ++/* 49442*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49445*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49447*/ OPC_CheckType, MVT::i32, ++/* 49449*/ OPC_MoveParent, ++/* 49450*/ OPC_MoveChild3, ++/* 49451*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49454*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49456*/ OPC_CheckType, MVT::i32, ++/* 49458*/ OPC_MoveParent, ++/* 49459*/ OPC_MoveChild4, ++/* 49460*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49463*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49465*/ OPC_CheckType, MVT::i32, ++/* 49467*/ OPC_MoveParent, ++/* 49468*/ OPC_MoveChild5, ++/* 49469*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49472*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49474*/ OPC_CheckType, MVT::i32, ++/* 49476*/ OPC_MoveParent, ++/* 49477*/ OPC_MoveChild6, ++/* 49478*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49481*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49483*/ OPC_CheckType, MVT::i32, ++/* 49485*/ OPC_MoveParent, ++/* 49486*/ OPC_MoveChild7, ++/* 49487*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49490*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49492*/ OPC_CheckType, MVT::i32, ++/* 49494*/ OPC_MoveParent, ++/* 49495*/ OPC_MoveParent, ++/* 49496*/ OPC_RecordChild1, // #1 = $vt ++/* 49497*/ OPC_CheckType, MVT::v8i16, ++/* 49499*/ OPC_MoveParent, ++/* 49500*/ OPC_MoveParent, ++/* 49501*/ OPC_MoveParent, ++/* 49502*/ OPC_CheckType, MVT::v8i16, ++/* 49504*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 49506*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vs, (xor:{ *:[v8i16] } immAllOnesV:{ *:[v8i16] }, (shl:{ *:[v8i16] } (build_vector:{ *:[v8i16] })<>, (and:{ *:[v8i16] } (build_vector:{ *:[v8i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v8i16:{ *:[v8i16] }:$vt)))) - Complexity = 55 ++ // Dst: (VBITCLR_H:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vs, v8i16:{ *:[v8i16] }:$vt) ++/* 49514*/ 0, /*End of Scope*/ ++/* 49515*/ 0, /*End of Scope*/ ++/* 49516*/ 0, /*End of Scope*/ ++/* 49517*/ /*Scope*/ 56|128,3/*440*/, /*->49959*/ ++/* 49519*/ OPC_MoveChild0, ++/* 49520*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 49523*/ OPC_MoveChild0, ++/* 49524*/ OPC_Scope, 88|128,1/*216*/, /*->49743*/ // 2 children in Scope ++/* 49527*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 49530*/ OPC_MoveChild0, ++/* 49531*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 49534*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 49536*/ OPC_MoveParent, ++/* 49537*/ OPC_MoveChild1, ++/* 49538*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 49541*/ OPC_Scope, 99, /*->49642*/ // 2 children in Scope ++/* 49543*/ OPC_RecordChild0, // #0 = $vt ++/* 49544*/ OPC_MoveChild1, ++/* 49545*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 49548*/ OPC_MoveChild0, ++/* 49549*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49552*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49554*/ OPC_CheckType, MVT::i32, ++/* 49556*/ OPC_MoveParent, ++/* 49557*/ OPC_MoveChild1, ++/* 49558*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49561*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49563*/ OPC_CheckType, MVT::i32, ++/* 49565*/ OPC_MoveParent, ++/* 49566*/ OPC_MoveChild2, ++/* 49567*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49570*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49572*/ OPC_CheckType, MVT::i32, ++/* 49574*/ OPC_MoveParent, ++/* 49575*/ OPC_MoveChild3, ++/* 49576*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49579*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49581*/ OPC_CheckType, MVT::i32, ++/* 49583*/ OPC_MoveParent, ++/* 49584*/ OPC_MoveChild4, ++/* 49585*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49588*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49590*/ OPC_CheckType, MVT::i32, ++/* 49592*/ OPC_MoveParent, ++/* 49593*/ OPC_MoveChild5, ++/* 49594*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49597*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49599*/ OPC_CheckType, MVT::i32, ++/* 49601*/ OPC_MoveParent, ++/* 49602*/ OPC_MoveChild6, ++/* 49603*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49606*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49608*/ OPC_CheckType, MVT::i32, ++/* 49610*/ OPC_MoveParent, ++/* 49611*/ OPC_MoveChild7, ++/* 49612*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49615*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49617*/ OPC_CheckType, MVT::i32, ++/* 49619*/ OPC_MoveParent, ++/* 49620*/ OPC_MoveParent, ++/* 49621*/ OPC_CheckType, MVT::v8i16, ++/* 49623*/ OPC_MoveParent, ++/* 49624*/ OPC_MoveParent, ++/* 49625*/ OPC_MoveChild1, ++/* 49626*/ OPC_CheckImmAllOnesV, ++/* 49627*/ OPC_MoveParent, ++/* 49628*/ OPC_MoveParent, ++/* 49629*/ OPC_RecordChild1, // #1 = $vs ++/* 49630*/ OPC_CheckType, MVT::v8i16, ++/* 49632*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 49634*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v8i16] } (xor:{ *:[v8i16] } (shl:{ *:[v8i16] } (build_vector:{ *:[v8i16] })<>, (and:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vt, (build_vector:{ *:[v8i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))), immAllOnesV:{ *:[v8i16] }), v8i16:{ *:[v8i16] }:$vs) - Complexity = 55 ++ // Dst: (VBITCLR_H:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vs, v8i16:{ *:[v8i16] }:$vt) ++/* 49642*/ /*Scope*/ 99, /*->49742*/ ++/* 49643*/ OPC_MoveChild0, ++/* 49644*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 49647*/ OPC_MoveChild0, ++/* 49648*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49651*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49653*/ OPC_CheckType, MVT::i32, ++/* 49655*/ OPC_MoveParent, ++/* 49656*/ OPC_MoveChild1, ++/* 49657*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49660*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49662*/ OPC_CheckType, MVT::i32, ++/* 49664*/ OPC_MoveParent, ++/* 49665*/ OPC_MoveChild2, ++/* 49666*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49669*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49671*/ OPC_CheckType, MVT::i32, ++/* 49673*/ OPC_MoveParent, ++/* 49674*/ OPC_MoveChild3, ++/* 49675*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49678*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49680*/ OPC_CheckType, MVT::i32, ++/* 49682*/ OPC_MoveParent, ++/* 49683*/ OPC_MoveChild4, ++/* 49684*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49687*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49689*/ OPC_CheckType, MVT::i32, ++/* 49691*/ OPC_MoveParent, ++/* 49692*/ OPC_MoveChild5, ++/* 49693*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49696*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49698*/ OPC_CheckType, MVT::i32, ++/* 49700*/ OPC_MoveParent, ++/* 49701*/ OPC_MoveChild6, ++/* 49702*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49705*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49707*/ OPC_CheckType, MVT::i32, ++/* 49709*/ OPC_MoveParent, ++/* 49710*/ OPC_MoveChild7, ++/* 49711*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49714*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49716*/ OPC_CheckType, MVT::i32, ++/* 49718*/ OPC_MoveParent, ++/* 49719*/ OPC_MoveParent, ++/* 49720*/ OPC_RecordChild1, // #0 = $vt ++/* 49721*/ OPC_CheckType, MVT::v8i16, ++/* 49723*/ OPC_MoveParent, ++/* 49724*/ OPC_MoveParent, ++/* 49725*/ OPC_MoveChild1, ++/* 49726*/ OPC_CheckImmAllOnesV, ++/* 49727*/ OPC_MoveParent, ++/* 49728*/ OPC_MoveParent, ++/* 49729*/ OPC_RecordChild1, // #1 = $vs ++/* 49730*/ OPC_CheckType, MVT::v8i16, ++/* 49732*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 49734*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v8i16] } (xor:{ *:[v8i16] } (shl:{ *:[v8i16] } (build_vector:{ *:[v8i16] })<>, (and:{ *:[v8i16] } (build_vector:{ *:[v8i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v8i16:{ *:[v8i16] }:$vt)), immAllOnesV:{ *:[v8i16] }), v8i16:{ *:[v8i16] }:$vs) - Complexity = 55 ++ // Dst: (VBITCLR_H:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vs, v8i16:{ *:[v8i16] }:$vt) ++/* 49742*/ 0, /*End of Scope*/ ++/* 49743*/ /*Scope*/ 85|128,1/*213*/, /*->49958*/ ++/* 49745*/ OPC_CheckImmAllOnesV, ++/* 49746*/ OPC_MoveParent, ++/* 49747*/ OPC_MoveChild1, ++/* 49748*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 49751*/ OPC_MoveChild0, ++/* 49752*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 49755*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 49757*/ OPC_MoveParent, ++/* 49758*/ OPC_MoveChild1, ++/* 49759*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 49762*/ OPC_Scope, 96, /*->49860*/ // 2 children in Scope ++/* 49764*/ OPC_RecordChild0, // #0 = $vt ++/* 49765*/ OPC_MoveChild1, ++/* 49766*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 49769*/ OPC_MoveChild0, ++/* 49770*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49773*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49775*/ OPC_CheckType, MVT::i32, ++/* 49777*/ OPC_MoveParent, ++/* 49778*/ OPC_MoveChild1, ++/* 49779*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49782*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49784*/ OPC_CheckType, MVT::i32, ++/* 49786*/ OPC_MoveParent, ++/* 49787*/ OPC_MoveChild2, ++/* 49788*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49791*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49793*/ OPC_CheckType, MVT::i32, ++/* 49795*/ OPC_MoveParent, ++/* 49796*/ OPC_MoveChild3, ++/* 49797*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49800*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49802*/ OPC_CheckType, MVT::i32, ++/* 49804*/ OPC_MoveParent, ++/* 49805*/ OPC_MoveChild4, ++/* 49806*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49809*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49811*/ OPC_CheckType, MVT::i32, ++/* 49813*/ OPC_MoveParent, ++/* 49814*/ OPC_MoveChild5, ++/* 49815*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49818*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49820*/ OPC_CheckType, MVT::i32, ++/* 49822*/ OPC_MoveParent, ++/* 49823*/ OPC_MoveChild6, ++/* 49824*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49827*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49829*/ OPC_CheckType, MVT::i32, ++/* 49831*/ OPC_MoveParent, ++/* 49832*/ OPC_MoveChild7, ++/* 49833*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49836*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49838*/ OPC_CheckType, MVT::i32, ++/* 49840*/ OPC_MoveParent, ++/* 49841*/ OPC_MoveParent, ++/* 49842*/ OPC_CheckType, MVT::v8i16, ++/* 49844*/ OPC_MoveParent, ++/* 49845*/ OPC_MoveParent, ++/* 49846*/ OPC_MoveParent, ++/* 49847*/ OPC_RecordChild1, // #1 = $vs ++/* 49848*/ OPC_CheckType, MVT::v8i16, ++/* 49850*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 49852*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v8i16] } (xor:{ *:[v8i16] } immAllOnesV:{ *:[v8i16] }, (shl:{ *:[v8i16] } (build_vector:{ *:[v8i16] })<>, (and:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vt, (build_vector:{ *:[v8i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>)))), v8i16:{ *:[v8i16] }:$vs) - Complexity = 55 ++ // Dst: (VBITCLR_H:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vs, v8i16:{ *:[v8i16] }:$vt) ++/* 49860*/ /*Scope*/ 96, /*->49957*/ ++/* 49861*/ OPC_MoveChild0, ++/* 49862*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 49865*/ OPC_MoveChild0, ++/* 49866*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49869*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49871*/ OPC_CheckType, MVT::i32, ++/* 49873*/ OPC_MoveParent, ++/* 49874*/ OPC_MoveChild1, ++/* 49875*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49878*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49880*/ OPC_CheckType, MVT::i32, ++/* 49882*/ OPC_MoveParent, ++/* 49883*/ OPC_MoveChild2, ++/* 49884*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49887*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49889*/ OPC_CheckType, MVT::i32, ++/* 49891*/ OPC_MoveParent, ++/* 49892*/ OPC_MoveChild3, ++/* 49893*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49896*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49898*/ OPC_CheckType, MVT::i32, ++/* 49900*/ OPC_MoveParent, ++/* 49901*/ OPC_MoveChild4, ++/* 49902*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49905*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49907*/ OPC_CheckType, MVT::i32, ++/* 49909*/ OPC_MoveParent, ++/* 49910*/ OPC_MoveChild5, ++/* 49911*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49914*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49916*/ OPC_CheckType, MVT::i32, ++/* 49918*/ OPC_MoveParent, ++/* 49919*/ OPC_MoveChild6, ++/* 49920*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49923*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49925*/ OPC_CheckType, MVT::i32, ++/* 49927*/ OPC_MoveParent, ++/* 49928*/ OPC_MoveChild7, ++/* 49929*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49932*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 49934*/ OPC_CheckType, MVT::i32, ++/* 49936*/ OPC_MoveParent, ++/* 49937*/ OPC_MoveParent, ++/* 49938*/ OPC_RecordChild1, // #0 = $vt ++/* 49939*/ OPC_CheckType, MVT::v8i16, ++/* 49941*/ OPC_MoveParent, ++/* 49942*/ OPC_MoveParent, ++/* 49943*/ OPC_MoveParent, ++/* 49944*/ OPC_RecordChild1, // #1 = $vs ++/* 49945*/ OPC_CheckType, MVT::v8i16, ++/* 49947*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 49949*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v8i16] } (xor:{ *:[v8i16] } immAllOnesV:{ *:[v8i16] }, (shl:{ *:[v8i16] } (build_vector:{ *:[v8i16] })<>, (and:{ *:[v8i16] } (build_vector:{ *:[v8i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v8i16:{ *:[v8i16] }:$vt))), v8i16:{ *:[v8i16] }:$vs) - Complexity = 55 ++ // Dst: (VBITCLR_H:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vs, v8i16:{ *:[v8i16] }:$vt) ++/* 49957*/ 0, /*End of Scope*/ ++/* 49958*/ 0, /*End of Scope*/ ++/* 49959*/ /*Scope*/ 78|128,2/*334*/, /*->50295*/ ++/* 49961*/ OPC_RecordChild0, // #0 = $vs ++/* 49962*/ OPC_MoveChild1, ++/* 49963*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 49966*/ OPC_MoveChild0, ++/* 49967*/ OPC_Scope, 112, /*->50081*/ // 2 children in Scope ++/* 49969*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 49972*/ OPC_MoveChild0, ++/* 49973*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 49976*/ OPC_CheckPredicate, 42, // Predicate_xvsplat_imm_eq_1 ++/* 49978*/ OPC_MoveParent, ++/* 49979*/ OPC_MoveChild1, ++/* 49980*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 49983*/ OPC_MoveChild0, ++/* 49984*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 49987*/ OPC_MoveChild0, ++/* 49988*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 49991*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 49993*/ OPC_CheckType, MVT::i32, ++/* 49995*/ OPC_MoveParent, ++/* 49996*/ OPC_MoveChild1, ++/* 49997*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50000*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 50002*/ OPC_CheckType, MVT::i32, ++/* 50004*/ OPC_MoveParent, ++/* 50005*/ OPC_MoveChild2, ++/* 50006*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50009*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 50011*/ OPC_CheckType, MVT::i32, ++/* 50013*/ OPC_MoveParent, ++/* 50014*/ OPC_MoveChild3, ++/* 50015*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50018*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 50020*/ OPC_CheckType, MVT::i32, ++/* 50022*/ OPC_MoveParent, ++/* 50023*/ OPC_MoveChild4, ++/* 50024*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50027*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 50029*/ OPC_CheckType, MVT::i32, ++/* 50031*/ OPC_MoveParent, ++/* 50032*/ OPC_MoveChild5, ++/* 50033*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50036*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 50038*/ OPC_CheckType, MVT::i32, ++/* 50040*/ OPC_MoveParent, ++/* 50041*/ OPC_MoveChild6, ++/* 50042*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50045*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 50047*/ OPC_CheckType, MVT::i32, ++/* 50049*/ OPC_MoveParent, ++/* 50050*/ OPC_MoveChild7, ++/* 50051*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50054*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 50056*/ OPC_CheckType, MVT::i32, ++/* 50058*/ OPC_MoveParent, ++/* 50059*/ OPC_MoveParent, ++/* 50060*/ OPC_RecordChild1, // #1 = $vt ++/* 50061*/ OPC_CheckType, MVT::v8i32, ++/* 50063*/ OPC_MoveParent, ++/* 50064*/ OPC_MoveParent, ++/* 50065*/ OPC_MoveChild1, ++/* 50066*/ OPC_CheckImmAllOnesV, ++/* 50067*/ OPC_MoveParent, ++/* 50068*/ OPC_MoveParent, ++/* 50069*/ OPC_CheckType, MVT::v8i32, ++/* 50071*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 50073*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vs, (xor:{ *:[v8i32] } (shl:{ *:[v8i32] } (build_vector:{ *:[v8i32] })<>, (and:{ *:[v8i32] } (build_vector:{ *:[v8i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v8i32:{ *:[v8i32] }:$vt)), immAllOnesV:{ *:[v8i32] })) - Complexity = 55 ++ // Dst: (XVBITCLR_W:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vs, v8i32:{ *:[v8i32] }:$vt) ++/* 50081*/ /*Scope*/ 83|128,1/*211*/, /*->50294*/ ++/* 50083*/ OPC_CheckImmAllOnesV, ++/* 50084*/ OPC_MoveParent, ++/* 50085*/ OPC_MoveChild1, ++/* 50086*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 50089*/ OPC_MoveChild0, ++/* 50090*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 50093*/ OPC_CheckPredicate, 42, // Predicate_xvsplat_imm_eq_1 ++/* 50095*/ OPC_MoveParent, ++/* 50096*/ OPC_MoveChild1, ++/* 50097*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 50100*/ OPC_Scope, 95, /*->50197*/ // 2 children in Scope ++/* 50102*/ OPC_RecordChild0, // #1 = $vt ++/* 50103*/ OPC_MoveChild1, ++/* 50104*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 50107*/ OPC_MoveChild0, ++/* 50108*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50111*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 50113*/ OPC_CheckType, MVT::i32, ++/* 50115*/ OPC_MoveParent, ++/* 50116*/ OPC_MoveChild1, ++/* 50117*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50120*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 50122*/ OPC_CheckType, MVT::i32, ++/* 50124*/ OPC_MoveParent, ++/* 50125*/ OPC_MoveChild2, ++/* 50126*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50129*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 50131*/ OPC_CheckType, MVT::i32, ++/* 50133*/ OPC_MoveParent, ++/* 50134*/ OPC_MoveChild3, ++/* 50135*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50138*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 50140*/ OPC_CheckType, MVT::i32, ++/* 50142*/ OPC_MoveParent, ++/* 50143*/ OPC_MoveChild4, ++/* 50144*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50147*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 50149*/ OPC_CheckType, MVT::i32, ++/* 50151*/ OPC_MoveParent, ++/* 50152*/ OPC_MoveChild5, ++/* 50153*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50156*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 50158*/ OPC_CheckType, MVT::i32, ++/* 50160*/ OPC_MoveParent, ++/* 50161*/ OPC_MoveChild6, ++/* 50162*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50165*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 50167*/ OPC_CheckType, MVT::i32, ++/* 50169*/ OPC_MoveParent, ++/* 50170*/ OPC_MoveChild7, ++/* 50171*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50174*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 50176*/ OPC_CheckType, MVT::i32, ++/* 50178*/ OPC_MoveParent, ++/* 50179*/ OPC_MoveParent, ++/* 50180*/ OPC_CheckType, MVT::v8i32, ++/* 50182*/ OPC_MoveParent, ++/* 50183*/ OPC_MoveParent, ++/* 50184*/ OPC_MoveParent, ++/* 50185*/ OPC_CheckType, MVT::v8i32, ++/* 50187*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 50189*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vs, (xor:{ *:[v8i32] } immAllOnesV:{ *:[v8i32] }, (shl:{ *:[v8i32] } (build_vector:{ *:[v8i32] })<>, (and:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vt, (build_vector:{ *:[v8i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))))) - Complexity = 55 ++ // Dst: (XVBITCLR_W:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vs, v8i32:{ *:[v8i32] }:$vt) ++/* 50197*/ /*Scope*/ 95, /*->50293*/ ++/* 50198*/ OPC_MoveChild0, ++/* 50199*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 50202*/ OPC_MoveChild0, ++/* 50203*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50206*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 50208*/ OPC_CheckType, MVT::i32, ++/* 50210*/ OPC_MoveParent, ++/* 50211*/ OPC_MoveChild1, ++/* 50212*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50215*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 50217*/ OPC_CheckType, MVT::i32, ++/* 50219*/ OPC_MoveParent, ++/* 50220*/ OPC_MoveChild2, ++/* 50221*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50224*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 50226*/ OPC_CheckType, MVT::i32, ++/* 50228*/ OPC_MoveParent, ++/* 50229*/ OPC_MoveChild3, ++/* 50230*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50233*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 50235*/ OPC_CheckType, MVT::i32, ++/* 50237*/ OPC_MoveParent, ++/* 50238*/ OPC_MoveChild4, ++/* 50239*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50242*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 50244*/ OPC_CheckType, MVT::i32, ++/* 50246*/ OPC_MoveParent, ++/* 50247*/ OPC_MoveChild5, ++/* 50248*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50251*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 50253*/ OPC_CheckType, MVT::i32, ++/* 50255*/ OPC_MoveParent, ++/* 50256*/ OPC_MoveChild6, ++/* 50257*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50260*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 50262*/ OPC_CheckType, MVT::i32, ++/* 50264*/ OPC_MoveParent, ++/* 50265*/ OPC_MoveChild7, ++/* 50266*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50269*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 50271*/ OPC_CheckType, MVT::i32, ++/* 50273*/ OPC_MoveParent, ++/* 50274*/ OPC_MoveParent, ++/* 50275*/ OPC_RecordChild1, // #1 = $vt ++/* 50276*/ OPC_CheckType, MVT::v8i32, ++/* 50278*/ OPC_MoveParent, ++/* 50279*/ OPC_MoveParent, ++/* 50280*/ OPC_MoveParent, ++/* 50281*/ OPC_CheckType, MVT::v8i32, ++/* 50283*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 50285*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vs, (xor:{ *:[v8i32] } immAllOnesV:{ *:[v8i32] }, (shl:{ *:[v8i32] } (build_vector:{ *:[v8i32] })<>, (and:{ *:[v8i32] } (build_vector:{ *:[v8i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v8i32:{ *:[v8i32] }:$vt)))) - Complexity = 55 ++ // Dst: (XVBITCLR_W:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vs, v8i32:{ *:[v8i32] }:$vt) ++/* 50293*/ 0, /*End of Scope*/ ++/* 50294*/ 0, /*End of Scope*/ ++/* 50295*/ /*Scope*/ 56|128,3/*440*/, /*->50737*/ ++/* 50297*/ OPC_MoveChild0, ++/* 50298*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 50301*/ OPC_MoveChild0, ++/* 50302*/ OPC_Scope, 88|128,1/*216*/, /*->50521*/ // 2 children in Scope ++/* 50305*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 50308*/ OPC_MoveChild0, ++/* 50309*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 50312*/ OPC_CheckPredicate, 42, // Predicate_xvsplat_imm_eq_1 ++/* 50314*/ OPC_MoveParent, ++/* 50315*/ OPC_MoveChild1, ++/* 50316*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 50319*/ OPC_Scope, 99, /*->50420*/ // 2 children in Scope ++/* 50321*/ OPC_RecordChild0, // #0 = $vt ++/* 50322*/ OPC_MoveChild1, ++/* 50323*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 50326*/ OPC_MoveChild0, ++/* 50327*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50330*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 50332*/ OPC_CheckType, MVT::i32, ++/* 50334*/ OPC_MoveParent, ++/* 50335*/ OPC_MoveChild1, ++/* 50336*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50339*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 50341*/ OPC_CheckType, MVT::i32, ++/* 50343*/ OPC_MoveParent, ++/* 50344*/ OPC_MoveChild2, ++/* 50345*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50348*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 50350*/ OPC_CheckType, MVT::i32, ++/* 50352*/ OPC_MoveParent, ++/* 50353*/ OPC_MoveChild3, ++/* 50354*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50357*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 50359*/ OPC_CheckType, MVT::i32, ++/* 50361*/ OPC_MoveParent, ++/* 50362*/ OPC_MoveChild4, ++/* 50363*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50366*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 50368*/ OPC_CheckType, MVT::i32, ++/* 50370*/ OPC_MoveParent, ++/* 50371*/ OPC_MoveChild5, ++/* 50372*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50375*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 50377*/ OPC_CheckType, MVT::i32, ++/* 50379*/ OPC_MoveParent, ++/* 50380*/ OPC_MoveChild6, ++/* 50381*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50384*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 50386*/ OPC_CheckType, MVT::i32, ++/* 50388*/ OPC_MoveParent, ++/* 50389*/ OPC_MoveChild7, ++/* 50390*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50393*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 50395*/ OPC_CheckType, MVT::i32, ++/* 50397*/ OPC_MoveParent, ++/* 50398*/ OPC_MoveParent, ++/* 50399*/ OPC_CheckType, MVT::v8i32, ++/* 50401*/ OPC_MoveParent, ++/* 50402*/ OPC_MoveParent, ++/* 50403*/ OPC_MoveChild1, ++/* 50404*/ OPC_CheckImmAllOnesV, ++/* 50405*/ OPC_MoveParent, ++/* 50406*/ OPC_MoveParent, ++/* 50407*/ OPC_RecordChild1, // #1 = $vs ++/* 50408*/ OPC_CheckType, MVT::v8i32, ++/* 50410*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 50412*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v8i32] } (xor:{ *:[v8i32] } (shl:{ *:[v8i32] } (build_vector:{ *:[v8i32] })<>, (and:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vt, (build_vector:{ *:[v8i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))), immAllOnesV:{ *:[v8i32] }), v8i32:{ *:[v8i32] }:$vs) - Complexity = 55 ++ // Dst: (XVBITCLR_W:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vs, v8i32:{ *:[v8i32] }:$vt) ++/* 50420*/ /*Scope*/ 99, /*->50520*/ ++/* 50421*/ OPC_MoveChild0, ++/* 50422*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 50425*/ OPC_MoveChild0, ++/* 50426*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50429*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 50431*/ OPC_CheckType, MVT::i32, ++/* 50433*/ OPC_MoveParent, ++/* 50434*/ OPC_MoveChild1, ++/* 50435*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50438*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 50440*/ OPC_CheckType, MVT::i32, ++/* 50442*/ OPC_MoveParent, ++/* 50443*/ OPC_MoveChild2, ++/* 50444*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50447*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 50449*/ OPC_CheckType, MVT::i32, ++/* 50451*/ OPC_MoveParent, ++/* 50452*/ OPC_MoveChild3, ++/* 50453*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50456*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 50458*/ OPC_CheckType, MVT::i32, ++/* 50460*/ OPC_MoveParent, ++/* 50461*/ OPC_MoveChild4, ++/* 50462*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50465*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 50467*/ OPC_CheckType, MVT::i32, ++/* 50469*/ OPC_MoveParent, ++/* 50470*/ OPC_MoveChild5, ++/* 50471*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50474*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 50476*/ OPC_CheckType, MVT::i32, ++/* 50478*/ OPC_MoveParent, ++/* 50479*/ OPC_MoveChild6, ++/* 50480*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50483*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 50485*/ OPC_CheckType, MVT::i32, ++/* 50487*/ OPC_MoveParent, ++/* 50488*/ OPC_MoveChild7, ++/* 50489*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50492*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 50494*/ OPC_CheckType, MVT::i32, ++/* 50496*/ OPC_MoveParent, ++/* 50497*/ OPC_MoveParent, ++/* 50498*/ OPC_RecordChild1, // #0 = $vt ++/* 50499*/ OPC_CheckType, MVT::v8i32, ++/* 50501*/ OPC_MoveParent, ++/* 50502*/ OPC_MoveParent, ++/* 50503*/ OPC_MoveChild1, ++/* 50504*/ OPC_CheckImmAllOnesV, ++/* 50505*/ OPC_MoveParent, ++/* 50506*/ OPC_MoveParent, ++/* 50507*/ OPC_RecordChild1, // #1 = $vs ++/* 50508*/ OPC_CheckType, MVT::v8i32, ++/* 50510*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 50512*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v8i32] } (xor:{ *:[v8i32] } (shl:{ *:[v8i32] } (build_vector:{ *:[v8i32] })<>, (and:{ *:[v8i32] } (build_vector:{ *:[v8i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v8i32:{ *:[v8i32] }:$vt)), immAllOnesV:{ *:[v8i32] }), v8i32:{ *:[v8i32] }:$vs) - Complexity = 55 ++ // Dst: (XVBITCLR_W:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vs, v8i32:{ *:[v8i32] }:$vt) ++/* 50520*/ 0, /*End of Scope*/ ++/* 50521*/ /*Scope*/ 85|128,1/*213*/, /*->50736*/ ++/* 50523*/ OPC_CheckImmAllOnesV, ++/* 50524*/ OPC_MoveParent, ++/* 50525*/ OPC_MoveChild1, ++/* 50526*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 50529*/ OPC_MoveChild0, ++/* 50530*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 50533*/ OPC_CheckPredicate, 42, // Predicate_xvsplat_imm_eq_1 ++/* 50535*/ OPC_MoveParent, ++/* 50536*/ OPC_MoveChild1, ++/* 50537*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 50540*/ OPC_Scope, 96, /*->50638*/ // 2 children in Scope ++/* 50542*/ OPC_RecordChild0, // #0 = $vt ++/* 50543*/ OPC_MoveChild1, ++/* 50544*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 50547*/ OPC_MoveChild0, ++/* 50548*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50551*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 50553*/ OPC_CheckType, MVT::i32, ++/* 50555*/ OPC_MoveParent, ++/* 50556*/ OPC_MoveChild1, ++/* 50557*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50560*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 50562*/ OPC_CheckType, MVT::i32, ++/* 50564*/ OPC_MoveParent, ++/* 50565*/ OPC_MoveChild2, ++/* 50566*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50569*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 50571*/ OPC_CheckType, MVT::i32, ++/* 50573*/ OPC_MoveParent, ++/* 50574*/ OPC_MoveChild3, ++/* 50575*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50578*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 50580*/ OPC_CheckType, MVT::i32, ++/* 50582*/ OPC_MoveParent, ++/* 50583*/ OPC_MoveChild4, ++/* 50584*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50587*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 50589*/ OPC_CheckType, MVT::i32, ++/* 50591*/ OPC_MoveParent, ++/* 50592*/ OPC_MoveChild5, ++/* 50593*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50596*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 50598*/ OPC_CheckType, MVT::i32, ++/* 50600*/ OPC_MoveParent, ++/* 50601*/ OPC_MoveChild6, ++/* 50602*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50605*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 50607*/ OPC_CheckType, MVT::i32, ++/* 50609*/ OPC_MoveParent, ++/* 50610*/ OPC_MoveChild7, ++/* 50611*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50614*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 50616*/ OPC_CheckType, MVT::i32, ++/* 50618*/ OPC_MoveParent, ++/* 50619*/ OPC_MoveParent, ++/* 50620*/ OPC_CheckType, MVT::v8i32, ++/* 50622*/ OPC_MoveParent, ++/* 50623*/ OPC_MoveParent, ++/* 50624*/ OPC_MoveParent, ++/* 50625*/ OPC_RecordChild1, // #1 = $vs ++/* 50626*/ OPC_CheckType, MVT::v8i32, ++/* 50628*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 50630*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v8i32] } (xor:{ *:[v8i32] } immAllOnesV:{ *:[v8i32] }, (shl:{ *:[v8i32] } (build_vector:{ *:[v8i32] })<>, (and:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vt, (build_vector:{ *:[v8i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>)))), v8i32:{ *:[v8i32] }:$vs) - Complexity = 55 ++ // Dst: (XVBITCLR_W:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vs, v8i32:{ *:[v8i32] }:$vt) ++/* 50638*/ /*Scope*/ 96, /*->50735*/ ++/* 50639*/ OPC_MoveChild0, ++/* 50640*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 50643*/ OPC_MoveChild0, ++/* 50644*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50647*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 50649*/ OPC_CheckType, MVT::i32, ++/* 50651*/ OPC_MoveParent, ++/* 50652*/ OPC_MoveChild1, ++/* 50653*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50656*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 50658*/ OPC_CheckType, MVT::i32, ++/* 50660*/ OPC_MoveParent, ++/* 50661*/ OPC_MoveChild2, ++/* 50662*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50665*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 50667*/ OPC_CheckType, MVT::i32, ++/* 50669*/ OPC_MoveParent, ++/* 50670*/ OPC_MoveChild3, ++/* 50671*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50674*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 50676*/ OPC_CheckType, MVT::i32, ++/* 50678*/ OPC_MoveParent, ++/* 50679*/ OPC_MoveChild4, ++/* 50680*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50683*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 50685*/ OPC_CheckType, MVT::i32, ++/* 50687*/ OPC_MoveParent, ++/* 50688*/ OPC_MoveChild5, ++/* 50689*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50692*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 50694*/ OPC_CheckType, MVT::i32, ++/* 50696*/ OPC_MoveParent, ++/* 50697*/ OPC_MoveChild6, ++/* 50698*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50701*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 50703*/ OPC_CheckType, MVT::i32, ++/* 50705*/ OPC_MoveParent, ++/* 50706*/ OPC_MoveChild7, ++/* 50707*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50710*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 50712*/ OPC_CheckType, MVT::i32, ++/* 50714*/ OPC_MoveParent, ++/* 50715*/ OPC_MoveParent, ++/* 50716*/ OPC_RecordChild1, // #0 = $vt ++/* 50717*/ OPC_CheckType, MVT::v8i32, ++/* 50719*/ OPC_MoveParent, ++/* 50720*/ OPC_MoveParent, ++/* 50721*/ OPC_MoveParent, ++/* 50722*/ OPC_RecordChild1, // #1 = $vs ++/* 50723*/ OPC_CheckType, MVT::v8i32, ++/* 50725*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 50727*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v8i32] } (xor:{ *:[v8i32] } immAllOnesV:{ *:[v8i32] }, (shl:{ *:[v8i32] } (build_vector:{ *:[v8i32] })<>, (and:{ *:[v8i32] } (build_vector:{ *:[v8i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v8i32:{ *:[v8i32] }:$vt))), v8i32:{ *:[v8i32] }:$vs) - Complexity = 55 ++ // Dst: (XVBITCLR_W:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vs, v8i32:{ *:[v8i32] }:$vt) ++/* 50735*/ 0, /*End of Scope*/ ++/* 50736*/ 0, /*End of Scope*/ ++/* 50737*/ /*Scope*/ 62|128,2/*318*/, /*->51057*/ ++/* 50739*/ OPC_RecordChild0, // #0 = $vj ++/* 50740*/ OPC_MoveChild1, ++/* 50741*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 50744*/ OPC_MoveChild0, ++/* 50745*/ OPC_SwitchOpcode /*2 cases */, 74|128,1/*202*/, TARGET_VAL(ISD::SHL),// ->50952 ++/* 50750*/ OPC_MoveChild0, ++/* 50751*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 50754*/ OPC_Scope, 97, /*->50853*/ // 2 children in Scope ++/* 50756*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 50758*/ OPC_MoveParent, ++/* 50759*/ OPC_RecordChild1, // #1 = $vk ++/* 50760*/ OPC_CheckChild1Type, MVT::v8i16, ++/* 50762*/ OPC_MoveParent, ++/* 50763*/ OPC_MoveChild1, ++/* 50764*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 50767*/ OPC_MoveChild0, ++/* 50768*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50771*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 50773*/ OPC_CheckType, MVT::i32, ++/* 50775*/ OPC_MoveParent, ++/* 50776*/ OPC_MoveChild1, ++/* 50777*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50780*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 50782*/ OPC_CheckType, MVT::i32, ++/* 50784*/ OPC_MoveParent, ++/* 50785*/ OPC_MoveChild2, ++/* 50786*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50789*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 50791*/ OPC_CheckType, MVT::i32, ++/* 50793*/ OPC_MoveParent, ++/* 50794*/ OPC_MoveChild3, ++/* 50795*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50798*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 50800*/ OPC_CheckType, MVT::i32, ++/* 50802*/ OPC_MoveParent, ++/* 50803*/ OPC_MoveChild4, ++/* 50804*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50807*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 50809*/ OPC_CheckType, MVT::i32, ++/* 50811*/ OPC_MoveParent, ++/* 50812*/ OPC_MoveChild5, ++/* 50813*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50816*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 50818*/ OPC_CheckType, MVT::i32, ++/* 50820*/ OPC_MoveParent, ++/* 50821*/ OPC_MoveChild6, ++/* 50822*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50825*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 50827*/ OPC_CheckType, MVT::i32, ++/* 50829*/ OPC_MoveParent, ++/* 50830*/ OPC_MoveChild7, ++/* 50831*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50834*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 50836*/ OPC_CheckType, MVT::i32, ++/* 50838*/ OPC_MoveParent, ++/* 50839*/ OPC_MoveParent, ++/* 50840*/ OPC_MoveParent, ++/* 50841*/ OPC_CheckType, MVT::v8i16, ++/* 50843*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 50845*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vj, (xor:{ *:[v8i16] } (shl:{ *:[v8i16] } (build_vector:{ *:[v8i16] })<>, v8i16:{ *:[v8i16] }:$vk), (build_vector:{ *:[v8i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))) - Complexity = 48 ++ // Dst: (VBITCLR_H:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vj, v8i16:{ *:[v8i16] }:$vk) ++/* 50853*/ /*Scope*/ 97, /*->50951*/ ++/* 50854*/ OPC_CheckPredicate, 42, // Predicate_xvsplat_imm_eq_1 ++/* 50856*/ OPC_MoveParent, ++/* 50857*/ OPC_RecordChild1, // #1 = $xk ++/* 50858*/ OPC_CheckChild1Type, MVT::v8i32, ++/* 50860*/ OPC_MoveParent, ++/* 50861*/ OPC_MoveChild1, ++/* 50862*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 50865*/ OPC_MoveChild0, ++/* 50866*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50869*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 50871*/ OPC_CheckType, MVT::i32, ++/* 50873*/ OPC_MoveParent, ++/* 50874*/ OPC_MoveChild1, ++/* 50875*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50878*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 50880*/ OPC_CheckType, MVT::i32, ++/* 50882*/ OPC_MoveParent, ++/* 50883*/ OPC_MoveChild2, ++/* 50884*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50887*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 50889*/ OPC_CheckType, MVT::i32, ++/* 50891*/ OPC_MoveParent, ++/* 50892*/ OPC_MoveChild3, ++/* 50893*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50896*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 50898*/ OPC_CheckType, MVT::i32, ++/* 50900*/ OPC_MoveParent, ++/* 50901*/ OPC_MoveChild4, ++/* 50902*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50905*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 50907*/ OPC_CheckType, MVT::i32, ++/* 50909*/ OPC_MoveParent, ++/* 50910*/ OPC_MoveChild5, ++/* 50911*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50914*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 50916*/ OPC_CheckType, MVT::i32, ++/* 50918*/ OPC_MoveParent, ++/* 50919*/ OPC_MoveChild6, ++/* 50920*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50923*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 50925*/ OPC_CheckType, MVT::i32, ++/* 50927*/ OPC_MoveParent, ++/* 50928*/ OPC_MoveChild7, ++/* 50929*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50932*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 50934*/ OPC_CheckType, MVT::i32, ++/* 50936*/ OPC_MoveParent, ++/* 50937*/ OPC_MoveParent, ++/* 50938*/ OPC_MoveParent, ++/* 50939*/ OPC_CheckType, MVT::v8i32, ++/* 50941*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 50943*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$xj, (xor:{ *:[v8i32] } (shl:{ *:[v8i32] } (build_vector:{ *:[v8i32] })<>, v8i32:{ *:[v8i32] }:$xk), (build_vector:{ *:[v8i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))) - Complexity = 48 ++ // Dst: (XVBITCLR_W:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$xj, v8i32:{ *:[v8i32] }:$xk) ++/* 50951*/ 0, /*End of Scope*/ ++/* 50952*/ /*SwitchOpcode*/ 101, TARGET_VAL(ISD::BUILD_VECTOR),// ->51056 ++/* 50955*/ OPC_MoveChild0, ++/* 50956*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50959*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 50961*/ OPC_CheckType, MVT::i32, ++/* 50963*/ OPC_MoveParent, ++/* 50964*/ OPC_MoveChild1, ++/* 50965*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50968*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 50970*/ OPC_CheckType, MVT::i32, ++/* 50972*/ OPC_MoveParent, ++/* 50973*/ OPC_MoveChild2, ++/* 50974*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50977*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 50979*/ OPC_CheckType, MVT::i32, ++/* 50981*/ OPC_MoveParent, ++/* 50982*/ OPC_MoveChild3, ++/* 50983*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50986*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 50988*/ OPC_CheckType, MVT::i32, ++/* 50990*/ OPC_MoveParent, ++/* 50991*/ OPC_MoveChild4, ++/* 50992*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 50995*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 50997*/ OPC_CheckType, MVT::i32, ++/* 50999*/ OPC_MoveParent, ++/* 51000*/ OPC_MoveChild5, ++/* 51001*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51004*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51006*/ OPC_CheckType, MVT::i32, ++/* 51008*/ OPC_MoveParent, ++/* 51009*/ OPC_MoveChild6, ++/* 51010*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51013*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51015*/ OPC_CheckType, MVT::i32, ++/* 51017*/ OPC_MoveParent, ++/* 51018*/ OPC_MoveChild7, ++/* 51019*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51022*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51024*/ OPC_CheckType, MVT::i32, ++/* 51026*/ OPC_MoveParent, ++/* 51027*/ OPC_MoveParent, ++/* 51028*/ OPC_MoveChild1, ++/* 51029*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 51032*/ OPC_MoveChild0, ++/* 51033*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 51036*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 51038*/ OPC_MoveParent, ++/* 51039*/ OPC_RecordChild1, // #1 = $vk ++/* 51040*/ OPC_CheckChild1Type, MVT::v8i16, ++/* 51042*/ OPC_MoveParent, ++/* 51043*/ OPC_MoveParent, ++/* 51044*/ OPC_CheckType, MVT::v8i16, ++/* 51046*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 51048*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vj, (xor:{ *:[v8i16] } (build_vector:{ *:[v8i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), (shl:{ *:[v8i16] } (build_vector:{ *:[v8i16] })<>, v8i16:{ *:[v8i16] }:$vk))) - Complexity = 48 ++ // Dst: (VBITCLR_H:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vj, v8i16:{ *:[v8i16] }:$vk) ++/* 51056*/ 0, // EndSwitchOpcode ++/* 51057*/ /*Scope*/ 89|128,1/*217*/, /*->51276*/ ++/* 51059*/ OPC_MoveChild0, ++/* 51060*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 51063*/ OPC_MoveChild0, ++/* 51064*/ OPC_SwitchOpcode /*2 cases */, 102, TARGET_VAL(ISD::SHL),// ->51170 ++/* 51068*/ OPC_MoveChild0, ++/* 51069*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 51072*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 51074*/ OPC_MoveParent, ++/* 51075*/ OPC_RecordChild1, // #0 = $vk ++/* 51076*/ OPC_CheckChild1Type, MVT::v8i16, ++/* 51078*/ OPC_MoveParent, ++/* 51079*/ OPC_MoveChild1, ++/* 51080*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 51083*/ OPC_MoveChild0, ++/* 51084*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51087*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51089*/ OPC_CheckType, MVT::i32, ++/* 51091*/ OPC_MoveParent, ++/* 51092*/ OPC_MoveChild1, ++/* 51093*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51096*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51098*/ OPC_CheckType, MVT::i32, ++/* 51100*/ OPC_MoveParent, ++/* 51101*/ OPC_MoveChild2, ++/* 51102*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51105*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51107*/ OPC_CheckType, MVT::i32, ++/* 51109*/ OPC_MoveParent, ++/* 51110*/ OPC_MoveChild3, ++/* 51111*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51114*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51116*/ OPC_CheckType, MVT::i32, ++/* 51118*/ OPC_MoveParent, ++/* 51119*/ OPC_MoveChild4, ++/* 51120*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51123*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51125*/ OPC_CheckType, MVT::i32, ++/* 51127*/ OPC_MoveParent, ++/* 51128*/ OPC_MoveChild5, ++/* 51129*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51132*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51134*/ OPC_CheckType, MVT::i32, ++/* 51136*/ OPC_MoveParent, ++/* 51137*/ OPC_MoveChild6, ++/* 51138*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51141*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51143*/ OPC_CheckType, MVT::i32, ++/* 51145*/ OPC_MoveParent, ++/* 51146*/ OPC_MoveChild7, ++/* 51147*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51150*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51152*/ OPC_CheckType, MVT::i32, ++/* 51154*/ OPC_MoveParent, ++/* 51155*/ OPC_MoveParent, ++/* 51156*/ OPC_MoveParent, ++/* 51157*/ OPC_RecordChild1, // #1 = $vj ++/* 51158*/ OPC_CheckType, MVT::v8i16, ++/* 51160*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 51162*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v8i16] } (xor:{ *:[v8i16] } (shl:{ *:[v8i16] } (build_vector:{ *:[v8i16] })<>, v8i16:{ *:[v8i16] }:$vk), (build_vector:{ *:[v8i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>)), v8i16:{ *:[v8i16] }:$vj) - Complexity = 48 ++ // Dst: (VBITCLR_H:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vj, v8i16:{ *:[v8i16] }:$vk) ++/* 51170*/ /*SwitchOpcode*/ 102, TARGET_VAL(ISD::BUILD_VECTOR),// ->51275 ++/* 51173*/ OPC_MoveChild0, ++/* 51174*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51177*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51179*/ OPC_CheckType, MVT::i32, ++/* 51181*/ OPC_MoveParent, ++/* 51182*/ OPC_MoveChild1, ++/* 51183*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51186*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51188*/ OPC_CheckType, MVT::i32, ++/* 51190*/ OPC_MoveParent, ++/* 51191*/ OPC_MoveChild2, ++/* 51192*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51195*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51197*/ OPC_CheckType, MVT::i32, ++/* 51199*/ OPC_MoveParent, ++/* 51200*/ OPC_MoveChild3, ++/* 51201*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51204*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51206*/ OPC_CheckType, MVT::i32, ++/* 51208*/ OPC_MoveParent, ++/* 51209*/ OPC_MoveChild4, ++/* 51210*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51213*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51215*/ OPC_CheckType, MVT::i32, ++/* 51217*/ OPC_MoveParent, ++/* 51218*/ OPC_MoveChild5, ++/* 51219*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51222*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51224*/ OPC_CheckType, MVT::i32, ++/* 51226*/ OPC_MoveParent, ++/* 51227*/ OPC_MoveChild6, ++/* 51228*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51231*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51233*/ OPC_CheckType, MVT::i32, ++/* 51235*/ OPC_MoveParent, ++/* 51236*/ OPC_MoveChild7, ++/* 51237*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51240*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51242*/ OPC_CheckType, MVT::i32, ++/* 51244*/ OPC_MoveParent, ++/* 51245*/ OPC_MoveParent, ++/* 51246*/ OPC_MoveChild1, ++/* 51247*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 51250*/ OPC_MoveChild0, ++/* 51251*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 51254*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 51256*/ OPC_MoveParent, ++/* 51257*/ OPC_RecordChild1, // #0 = $vk ++/* 51258*/ OPC_CheckChild1Type, MVT::v8i16, ++/* 51260*/ OPC_MoveParent, ++/* 51261*/ OPC_MoveParent, ++/* 51262*/ OPC_RecordChild1, // #1 = $vj ++/* 51263*/ OPC_CheckType, MVT::v8i16, ++/* 51265*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 51267*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v8i16] } (xor:{ *:[v8i16] } (build_vector:{ *:[v8i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), (shl:{ *:[v8i16] } (build_vector:{ *:[v8i16] })<>, v8i16:{ *:[v8i16] }:$vk)), v8i16:{ *:[v8i16] }:$vj) - Complexity = 48 ++ // Dst: (VBITCLR_H:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vj, v8i16:{ *:[v8i16] }:$vk) ++/* 51275*/ 0, // EndSwitchOpcode ++/* 51276*/ /*Scope*/ 110, /*->51387*/ ++/* 51277*/ OPC_RecordChild0, // #0 = $xj ++/* 51278*/ OPC_MoveChild1, ++/* 51279*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 51282*/ OPC_MoveChild0, ++/* 51283*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 51286*/ OPC_MoveChild0, ++/* 51287*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51290*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51292*/ OPC_CheckType, MVT::i32, ++/* 51294*/ OPC_MoveParent, ++/* 51295*/ OPC_MoveChild1, ++/* 51296*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51299*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51301*/ OPC_CheckType, MVT::i32, ++/* 51303*/ OPC_MoveParent, ++/* 51304*/ OPC_MoveChild2, ++/* 51305*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51308*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51310*/ OPC_CheckType, MVT::i32, ++/* 51312*/ OPC_MoveParent, ++/* 51313*/ OPC_MoveChild3, ++/* 51314*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51317*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51319*/ OPC_CheckType, MVT::i32, ++/* 51321*/ OPC_MoveParent, ++/* 51322*/ OPC_MoveChild4, ++/* 51323*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51326*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51328*/ OPC_CheckType, MVT::i32, ++/* 51330*/ OPC_MoveParent, ++/* 51331*/ OPC_MoveChild5, ++/* 51332*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51335*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51337*/ OPC_CheckType, MVT::i32, ++/* 51339*/ OPC_MoveParent, ++/* 51340*/ OPC_MoveChild6, ++/* 51341*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51344*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51346*/ OPC_CheckType, MVT::i32, ++/* 51348*/ OPC_MoveParent, ++/* 51349*/ OPC_MoveChild7, ++/* 51350*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51353*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51355*/ OPC_CheckType, MVT::i32, ++/* 51357*/ OPC_MoveParent, ++/* 51358*/ OPC_MoveParent, ++/* 51359*/ OPC_MoveChild1, ++/* 51360*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 51363*/ OPC_MoveChild0, ++/* 51364*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 51367*/ OPC_CheckPredicate, 42, // Predicate_xvsplat_imm_eq_1 ++/* 51369*/ OPC_MoveParent, ++/* 51370*/ OPC_RecordChild1, // #1 = $xk ++/* 51371*/ OPC_CheckChild1Type, MVT::v8i32, ++/* 51373*/ OPC_MoveParent, ++/* 51374*/ OPC_MoveParent, ++/* 51375*/ OPC_CheckType, MVT::v8i32, ++/* 51377*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 51379*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$xj, (xor:{ *:[v8i32] } (build_vector:{ *:[v8i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), (shl:{ *:[v8i32] } (build_vector:{ *:[v8i32] })<>, v8i32:{ *:[v8i32] }:$xk))) - Complexity = 48 ++ // Dst: (XVBITCLR_W:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$xj, v8i32:{ *:[v8i32] }:$xk) ++/* 51387*/ /*Scope*/ 37|128,3/*421*/, /*->51810*/ ++/* 51389*/ OPC_MoveChild0, ++/* 51390*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 51393*/ OPC_Scope, 85|128,1/*213*/, /*->51609*/ // 3 children in Scope ++/* 51396*/ OPC_MoveChild0, ++/* 51397*/ OPC_SwitchOpcode /*2 cases */, 102, TARGET_VAL(ISD::SHL),// ->51503 ++/* 51401*/ OPC_MoveChild0, ++/* 51402*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 51405*/ OPC_CheckPredicate, 42, // Predicate_xvsplat_imm_eq_1 ++/* 51407*/ OPC_MoveParent, ++/* 51408*/ OPC_RecordChild1, // #0 = $xk ++/* 51409*/ OPC_CheckChild1Type, MVT::v8i32, ++/* 51411*/ OPC_MoveParent, ++/* 51412*/ OPC_MoveChild1, ++/* 51413*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 51416*/ OPC_MoveChild0, ++/* 51417*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51420*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51422*/ OPC_CheckType, MVT::i32, ++/* 51424*/ OPC_MoveParent, ++/* 51425*/ OPC_MoveChild1, ++/* 51426*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51429*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51431*/ OPC_CheckType, MVT::i32, ++/* 51433*/ OPC_MoveParent, ++/* 51434*/ OPC_MoveChild2, ++/* 51435*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51438*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51440*/ OPC_CheckType, MVT::i32, ++/* 51442*/ OPC_MoveParent, ++/* 51443*/ OPC_MoveChild3, ++/* 51444*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51447*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51449*/ OPC_CheckType, MVT::i32, ++/* 51451*/ OPC_MoveParent, ++/* 51452*/ OPC_MoveChild4, ++/* 51453*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51456*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51458*/ OPC_CheckType, MVT::i32, ++/* 51460*/ OPC_MoveParent, ++/* 51461*/ OPC_MoveChild5, ++/* 51462*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51465*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51467*/ OPC_CheckType, MVT::i32, ++/* 51469*/ OPC_MoveParent, ++/* 51470*/ OPC_MoveChild6, ++/* 51471*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51474*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51476*/ OPC_CheckType, MVT::i32, ++/* 51478*/ OPC_MoveParent, ++/* 51479*/ OPC_MoveChild7, ++/* 51480*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51483*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51485*/ OPC_CheckType, MVT::i32, ++/* 51487*/ OPC_MoveParent, ++/* 51488*/ OPC_MoveParent, ++/* 51489*/ OPC_MoveParent, ++/* 51490*/ OPC_RecordChild1, // #1 = $xj ++/* 51491*/ OPC_CheckType, MVT::v8i32, ++/* 51493*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 51495*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v8i32] } (xor:{ *:[v8i32] } (shl:{ *:[v8i32] } (build_vector:{ *:[v8i32] })<>, v8i32:{ *:[v8i32] }:$xk), (build_vector:{ *:[v8i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>)), v8i32:{ *:[v8i32] }:$xj) - Complexity = 48 ++ // Dst: (XVBITCLR_W:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$xj, v8i32:{ *:[v8i32] }:$xk) ++/* 51503*/ /*SwitchOpcode*/ 102, TARGET_VAL(ISD::BUILD_VECTOR),// ->51608 ++/* 51506*/ OPC_MoveChild0, ++/* 51507*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51510*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51512*/ OPC_CheckType, MVT::i32, ++/* 51514*/ OPC_MoveParent, ++/* 51515*/ OPC_MoveChild1, ++/* 51516*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51519*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51521*/ OPC_CheckType, MVT::i32, ++/* 51523*/ OPC_MoveParent, ++/* 51524*/ OPC_MoveChild2, ++/* 51525*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51528*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51530*/ OPC_CheckType, MVT::i32, ++/* 51532*/ OPC_MoveParent, ++/* 51533*/ OPC_MoveChild3, ++/* 51534*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51537*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51539*/ OPC_CheckType, MVT::i32, ++/* 51541*/ OPC_MoveParent, ++/* 51542*/ OPC_MoveChild4, ++/* 51543*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51546*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51548*/ OPC_CheckType, MVT::i32, ++/* 51550*/ OPC_MoveParent, ++/* 51551*/ OPC_MoveChild5, ++/* 51552*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51555*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51557*/ OPC_CheckType, MVT::i32, ++/* 51559*/ OPC_MoveParent, ++/* 51560*/ OPC_MoveChild6, ++/* 51561*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51564*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51566*/ OPC_CheckType, MVT::i32, ++/* 51568*/ OPC_MoveParent, ++/* 51569*/ OPC_MoveChild7, ++/* 51570*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51573*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51575*/ OPC_CheckType, MVT::i32, ++/* 51577*/ OPC_MoveParent, ++/* 51578*/ OPC_MoveParent, ++/* 51579*/ OPC_MoveChild1, ++/* 51580*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 51583*/ OPC_MoveChild0, ++/* 51584*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 51587*/ OPC_CheckPredicate, 42, // Predicate_xvsplat_imm_eq_1 ++/* 51589*/ OPC_MoveParent, ++/* 51590*/ OPC_RecordChild1, // #0 = $xk ++/* 51591*/ OPC_CheckChild1Type, MVT::v8i32, ++/* 51593*/ OPC_MoveParent, ++/* 51594*/ OPC_MoveParent, ++/* 51595*/ OPC_RecordChild1, // #1 = $xj ++/* 51596*/ OPC_CheckType, MVT::v8i32, ++/* 51598*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 51600*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v8i32] } (xor:{ *:[v8i32] } (build_vector:{ *:[v8i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), (shl:{ *:[v8i32] } (build_vector:{ *:[v8i32] })<>, v8i32:{ *:[v8i32] }:$xk)), v8i32:{ *:[v8i32] }:$xj) - Complexity = 48 ++ // Dst: (XVBITCLR_W:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$xj, v8i32:{ *:[v8i32] }:$xk) ++/* 51608*/ 0, // EndSwitchOpcode ++/* 51609*/ /*Scope*/ 106, /*->51716*/ ++/* 51610*/ OPC_RecordChild0, // #0 = $vj ++/* 51611*/ OPC_MoveChild1, ++/* 51612*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 51615*/ OPC_MoveChild0, ++/* 51616*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51619*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51621*/ OPC_CheckType, MVT::i32, ++/* 51623*/ OPC_MoveParent, ++/* 51624*/ OPC_MoveChild1, ++/* 51625*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51628*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51630*/ OPC_CheckType, MVT::i32, ++/* 51632*/ OPC_MoveParent, ++/* 51633*/ OPC_MoveChild2, ++/* 51634*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51637*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51639*/ OPC_CheckType, MVT::i32, ++/* 51641*/ OPC_MoveParent, ++/* 51642*/ OPC_MoveChild3, ++/* 51643*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51646*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51648*/ OPC_CheckType, MVT::i32, ++/* 51650*/ OPC_MoveParent, ++/* 51651*/ OPC_MoveChild4, ++/* 51652*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51655*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51657*/ OPC_CheckType, MVT::i32, ++/* 51659*/ OPC_MoveParent, ++/* 51660*/ OPC_MoveChild5, ++/* 51661*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51664*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51666*/ OPC_CheckType, MVT::i32, ++/* 51668*/ OPC_MoveParent, ++/* 51669*/ OPC_MoveChild6, ++/* 51670*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51673*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51675*/ OPC_CheckType, MVT::i32, ++/* 51677*/ OPC_MoveParent, ++/* 51678*/ OPC_MoveChild7, ++/* 51679*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51682*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51684*/ OPC_CheckType, MVT::i32, ++/* 51686*/ OPC_MoveParent, ++/* 51687*/ OPC_MoveParent, ++/* 51688*/ OPC_MoveParent, ++/* 51689*/ OPC_RecordChild1, // #1 = $vk ++/* 51690*/ OPC_SwitchType /*2 cases */, 10, MVT::v8i16,// ->51703 ++/* 51693*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 51695*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VANDN_H_PSEUDO), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v8i16] } (xor:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vj, (build_vector:{ *:[v8i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>)), LSX128H:{ *:[v8i16] }:$vk) - Complexity = 41 ++ // Dst: (VANDN_H_PSEUDO:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) ++/* 51703*/ /*SwitchType*/ 10, MVT::v8i32,// ->51715 ++/* 51705*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 51707*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVANDN_W_PSEUDO), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v8i32] } (xor:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$xj, (build_vector:{ *:[v8i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>)), LASX256W:{ *:[v8i32] }:$xk) - Complexity = 41 ++ // Dst: (XVANDN_W_PSEUDO:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) ++/* 51715*/ 0, // EndSwitchType ++/* 51716*/ /*Scope*/ 92, /*->51809*/ ++/* 51717*/ OPC_MoveChild0, ++/* 51718*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 51721*/ OPC_MoveChild0, ++/* 51722*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51725*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51727*/ OPC_CheckType, MVT::i32, ++/* 51729*/ OPC_MoveParent, ++/* 51730*/ OPC_MoveChild1, ++/* 51731*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51734*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51736*/ OPC_CheckType, MVT::i32, ++/* 51738*/ OPC_MoveParent, ++/* 51739*/ OPC_MoveChild2, ++/* 51740*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51743*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51745*/ OPC_CheckType, MVT::i32, ++/* 51747*/ OPC_MoveParent, ++/* 51748*/ OPC_MoveChild3, ++/* 51749*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51752*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51754*/ OPC_CheckType, MVT::i32, ++/* 51756*/ OPC_MoveParent, ++/* 51757*/ OPC_MoveChild4, ++/* 51758*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51761*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51763*/ OPC_CheckType, MVT::i32, ++/* 51765*/ OPC_MoveParent, ++/* 51766*/ OPC_MoveChild5, ++/* 51767*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51770*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51772*/ OPC_CheckType, MVT::i32, ++/* 51774*/ OPC_MoveParent, ++/* 51775*/ OPC_MoveChild6, ++/* 51776*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51779*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51781*/ OPC_CheckType, MVT::i32, ++/* 51783*/ OPC_MoveParent, ++/* 51784*/ OPC_MoveChild7, ++/* 51785*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51788*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51790*/ OPC_CheckType, MVT::i32, ++/* 51792*/ OPC_MoveParent, ++/* 51793*/ OPC_MoveParent, ++/* 51794*/ OPC_RecordChild1, // #0 = $vj ++/* 51795*/ OPC_MoveParent, ++/* 51796*/ OPC_RecordChild1, // #1 = $vk ++/* 51797*/ OPC_CheckType, MVT::v8i16, ++/* 51799*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 51801*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VANDN_H_PSEUDO), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v8i16] } (xor:{ *:[v8i16] } (build_vector:{ *:[v8i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), LSX128H:{ *:[v8i16] }:$vj), LSX128H:{ *:[v8i16] }:$vk) - Complexity = 41 ++ // Dst: (VANDN_H_PSEUDO:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) ++/* 51809*/ 0, /*End of Scope*/ ++/* 51810*/ /*Scope*/ 63|128,1/*191*/, /*->52003*/ ++/* 51812*/ OPC_RecordChild0, // #0 = $vk ++/* 51813*/ OPC_MoveChild1, ++/* 51814*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 51817*/ OPC_Scope, 91, /*->51910*/ // 2 children in Scope ++/* 51819*/ OPC_RecordChild0, // #1 = $vj ++/* 51820*/ OPC_MoveChild1, ++/* 51821*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 51824*/ OPC_MoveChild0, ++/* 51825*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51828*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51830*/ OPC_CheckType, MVT::i32, ++/* 51832*/ OPC_MoveParent, ++/* 51833*/ OPC_MoveChild1, ++/* 51834*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51837*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51839*/ OPC_CheckType, MVT::i32, ++/* 51841*/ OPC_MoveParent, ++/* 51842*/ OPC_MoveChild2, ++/* 51843*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51846*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51848*/ OPC_CheckType, MVT::i32, ++/* 51850*/ OPC_MoveParent, ++/* 51851*/ OPC_MoveChild3, ++/* 51852*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51855*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51857*/ OPC_CheckType, MVT::i32, ++/* 51859*/ OPC_MoveParent, ++/* 51860*/ OPC_MoveChild4, ++/* 51861*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51864*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51866*/ OPC_CheckType, MVT::i32, ++/* 51868*/ OPC_MoveParent, ++/* 51869*/ OPC_MoveChild5, ++/* 51870*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51873*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51875*/ OPC_CheckType, MVT::i32, ++/* 51877*/ OPC_MoveParent, ++/* 51878*/ OPC_MoveChild6, ++/* 51879*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51882*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51884*/ OPC_CheckType, MVT::i32, ++/* 51886*/ OPC_MoveParent, ++/* 51887*/ OPC_MoveChild7, ++/* 51888*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51891*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51893*/ OPC_CheckType, MVT::i32, ++/* 51895*/ OPC_MoveParent, ++/* 51896*/ OPC_MoveParent, ++/* 51897*/ OPC_MoveParent, ++/* 51898*/ OPC_CheckType, MVT::v8i16, ++/* 51900*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 51902*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VANDN_H_PSEUDO), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vk, (xor:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vj, (build_vector:{ *:[v8i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))) - Complexity = 41 ++ // Dst: (VANDN_H_PSEUDO:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) ++/* 51910*/ /*Scope*/ 91, /*->52002*/ ++/* 51911*/ OPC_MoveChild0, ++/* 51912*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 51915*/ OPC_MoveChild0, ++/* 51916*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51919*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51921*/ OPC_CheckType, MVT::i32, ++/* 51923*/ OPC_MoveParent, ++/* 51924*/ OPC_MoveChild1, ++/* 51925*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51928*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51930*/ OPC_CheckType, MVT::i32, ++/* 51932*/ OPC_MoveParent, ++/* 51933*/ OPC_MoveChild2, ++/* 51934*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51937*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51939*/ OPC_CheckType, MVT::i32, ++/* 51941*/ OPC_MoveParent, ++/* 51942*/ OPC_MoveChild3, ++/* 51943*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51946*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51948*/ OPC_CheckType, MVT::i32, ++/* 51950*/ OPC_MoveParent, ++/* 51951*/ OPC_MoveChild4, ++/* 51952*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51955*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51957*/ OPC_CheckType, MVT::i32, ++/* 51959*/ OPC_MoveParent, ++/* 51960*/ OPC_MoveChild5, ++/* 51961*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51964*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51966*/ OPC_CheckType, MVT::i32, ++/* 51968*/ OPC_MoveParent, ++/* 51969*/ OPC_MoveChild6, ++/* 51970*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51973*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51975*/ OPC_CheckType, MVT::i32, ++/* 51977*/ OPC_MoveParent, ++/* 51978*/ OPC_MoveChild7, ++/* 51979*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 51982*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 51984*/ OPC_CheckType, MVT::i32, ++/* 51986*/ OPC_MoveParent, ++/* 51987*/ OPC_MoveParent, ++/* 51988*/ OPC_RecordChild1, // #1 = $vj ++/* 51989*/ OPC_MoveParent, ++/* 51990*/ OPC_CheckType, MVT::v8i16, ++/* 51992*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 51994*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VANDN_H_PSEUDO), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vk, (xor:{ *:[v8i16] } (build_vector:{ *:[v8i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), LSX128H:{ *:[v8i16] }:$vj)) - Complexity = 41 ++ // Dst: (VANDN_H_PSEUDO:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) ++/* 52002*/ 0, /*End of Scope*/ ++/* 52003*/ /*Scope*/ 96, /*->52100*/ ++/* 52004*/ OPC_MoveChild0, ++/* 52005*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 52008*/ OPC_MoveChild0, ++/* 52009*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 52012*/ OPC_MoveChild0, ++/* 52013*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52016*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 52018*/ OPC_CheckType, MVT::i32, ++/* 52020*/ OPC_MoveParent, ++/* 52021*/ OPC_MoveChild1, ++/* 52022*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52025*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 52027*/ OPC_CheckType, MVT::i32, ++/* 52029*/ OPC_MoveParent, ++/* 52030*/ OPC_MoveChild2, ++/* 52031*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52034*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 52036*/ OPC_CheckType, MVT::i32, ++/* 52038*/ OPC_MoveParent, ++/* 52039*/ OPC_MoveChild3, ++/* 52040*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52043*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 52045*/ OPC_CheckType, MVT::i32, ++/* 52047*/ OPC_MoveParent, ++/* 52048*/ OPC_MoveChild4, ++/* 52049*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52052*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 52054*/ OPC_CheckType, MVT::i32, ++/* 52056*/ OPC_MoveParent, ++/* 52057*/ OPC_MoveChild5, ++/* 52058*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52061*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 52063*/ OPC_CheckType, MVT::i32, ++/* 52065*/ OPC_MoveParent, ++/* 52066*/ OPC_MoveChild6, ++/* 52067*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52070*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 52072*/ OPC_CheckType, MVT::i32, ++/* 52074*/ OPC_MoveParent, ++/* 52075*/ OPC_MoveChild7, ++/* 52076*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52079*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 52081*/ OPC_CheckType, MVT::i32, ++/* 52083*/ OPC_MoveParent, ++/* 52084*/ OPC_MoveParent, ++/* 52085*/ OPC_RecordChild1, // #0 = $xj ++/* 52086*/ OPC_MoveParent, ++/* 52087*/ OPC_RecordChild1, // #1 = $xk ++/* 52088*/ OPC_CheckType, MVT::v8i32, ++/* 52090*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 52092*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVANDN_W_PSEUDO), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v8i32] } (xor:{ *:[v8i32] } (build_vector:{ *:[v8i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), LASX256W:{ *:[v8i32] }:$xj), LASX256W:{ *:[v8i32] }:$xk) - Complexity = 41 ++ // Dst: (XVANDN_W_PSEUDO:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) ++/* 52100*/ /*Scope*/ 96|128,3/*480*/, /*->52582*/ ++/* 52102*/ OPC_RecordChild0, // #0 = $xk ++/* 52103*/ OPC_MoveChild1, ++/* 52104*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 52107*/ OPC_Scope, 91, /*->52200*/ // 2 children in Scope ++/* 52109*/ OPC_RecordChild0, // #1 = $xj ++/* 52110*/ OPC_MoveChild1, ++/* 52111*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 52114*/ OPC_MoveChild0, ++/* 52115*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52118*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 52120*/ OPC_CheckType, MVT::i32, ++/* 52122*/ OPC_MoveParent, ++/* 52123*/ OPC_MoveChild1, ++/* 52124*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52127*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 52129*/ OPC_CheckType, MVT::i32, ++/* 52131*/ OPC_MoveParent, ++/* 52132*/ OPC_MoveChild2, ++/* 52133*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52136*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 52138*/ OPC_CheckType, MVT::i32, ++/* 52140*/ OPC_MoveParent, ++/* 52141*/ OPC_MoveChild3, ++/* 52142*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52145*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 52147*/ OPC_CheckType, MVT::i32, ++/* 52149*/ OPC_MoveParent, ++/* 52150*/ OPC_MoveChild4, ++/* 52151*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52154*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 52156*/ OPC_CheckType, MVT::i32, ++/* 52158*/ OPC_MoveParent, ++/* 52159*/ OPC_MoveChild5, ++/* 52160*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52163*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 52165*/ OPC_CheckType, MVT::i32, ++/* 52167*/ OPC_MoveParent, ++/* 52168*/ OPC_MoveChild6, ++/* 52169*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52172*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 52174*/ OPC_CheckType, MVT::i32, ++/* 52176*/ OPC_MoveParent, ++/* 52177*/ OPC_MoveChild7, ++/* 52178*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52181*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 52183*/ OPC_CheckType, MVT::i32, ++/* 52185*/ OPC_MoveParent, ++/* 52186*/ OPC_MoveParent, ++/* 52187*/ OPC_MoveParent, ++/* 52188*/ OPC_CheckType, MVT::v8i32, ++/* 52190*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 52192*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVANDN_W_PSEUDO), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$xk, (xor:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$xj, (build_vector:{ *:[v8i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))) - Complexity = 41 ++ // Dst: (XVANDN_W_PSEUDO:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) ++/* 52200*/ /*Scope*/ 123|128,2/*379*/, /*->52581*/ ++/* 52202*/ OPC_MoveChild0, ++/* 52203*/ OPC_Scope, 90, /*->52295*/ // 3 children in Scope ++/* 52205*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 52208*/ OPC_MoveChild0, ++/* 52209*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52212*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 52214*/ OPC_CheckType, MVT::i32, ++/* 52216*/ OPC_MoveParent, ++/* 52217*/ OPC_MoveChild1, ++/* 52218*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52221*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 52223*/ OPC_CheckType, MVT::i32, ++/* 52225*/ OPC_MoveParent, ++/* 52226*/ OPC_MoveChild2, ++/* 52227*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52230*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 52232*/ OPC_CheckType, MVT::i32, ++/* 52234*/ OPC_MoveParent, ++/* 52235*/ OPC_MoveChild3, ++/* 52236*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52239*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 52241*/ OPC_CheckType, MVT::i32, ++/* 52243*/ OPC_MoveParent, ++/* 52244*/ OPC_MoveChild4, ++/* 52245*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52248*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 52250*/ OPC_CheckType, MVT::i32, ++/* 52252*/ OPC_MoveParent, ++/* 52253*/ OPC_MoveChild5, ++/* 52254*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52257*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 52259*/ OPC_CheckType, MVT::i32, ++/* 52261*/ OPC_MoveParent, ++/* 52262*/ OPC_MoveChild6, ++/* 52263*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52266*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 52268*/ OPC_CheckType, MVT::i32, ++/* 52270*/ OPC_MoveParent, ++/* 52271*/ OPC_MoveChild7, ++/* 52272*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52275*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 52277*/ OPC_CheckType, MVT::i32, ++/* 52279*/ OPC_MoveParent, ++/* 52280*/ OPC_MoveParent, ++/* 52281*/ OPC_RecordChild1, // #1 = $xj ++/* 52282*/ OPC_MoveParent, ++/* 52283*/ OPC_CheckType, MVT::v8i32, ++/* 52285*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 52287*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVANDN_W_PSEUDO), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$xk, (xor:{ *:[v8i32] } (build_vector:{ *:[v8i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), LASX256W:{ *:[v8i32] }:$xj)) - Complexity = 41 ++ // Dst: (XVANDN_W_PSEUDO:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) ++/* 52295*/ /*Scope*/ 14|128,1/*142*/, /*->52439*/ ++/* 52297*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 52300*/ OPC_MoveChild0, ++/* 52301*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 52304*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 52306*/ OPC_MoveParent, ++/* 52307*/ OPC_MoveChild1, ++/* 52308*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 52311*/ OPC_Scope, 62, /*->52375*/ // 2 children in Scope ++/* 52313*/ OPC_RecordChild0, // #1 = $vt ++/* 52314*/ OPC_MoveChild1, ++/* 52315*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 52318*/ OPC_MoveChild0, ++/* 52319*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52322*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 52324*/ OPC_CheckType, MVT::i32, ++/* 52326*/ OPC_MoveParent, ++/* 52327*/ OPC_MoveChild1, ++/* 52328*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52331*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 52333*/ OPC_CheckType, MVT::i32, ++/* 52335*/ OPC_MoveParent, ++/* 52336*/ OPC_MoveChild2, ++/* 52337*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52340*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 52342*/ OPC_CheckType, MVT::i32, ++/* 52344*/ OPC_MoveParent, ++/* 52345*/ OPC_MoveChild3, ++/* 52346*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52349*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 52351*/ OPC_CheckType, MVT::i32, ++/* 52353*/ OPC_MoveParent, ++/* 52354*/ OPC_MoveParent, ++/* 52355*/ OPC_CheckType, MVT::v4i32, ++/* 52357*/ OPC_MoveParent, ++/* 52358*/ OPC_MoveParent, ++/* 52359*/ OPC_MoveChild1, ++/* 52360*/ OPC_CheckImmAllOnesV, ++/* 52361*/ OPC_MoveParent, ++/* 52362*/ OPC_MoveParent, ++/* 52363*/ OPC_CheckType, MVT::v4i32, ++/* 52365*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 52367*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vs, (xor:{ *:[v4i32] } (shl:{ *:[v4i32] } (build_vector:{ *:[v4i32] })<>, (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vt, (build_vector:{ *:[v4i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))), immAllOnesV:{ *:[v4i32] })) - Complexity = 39 ++ // Dst: (VBITCLR_W:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vs, v4i32:{ *:[v4i32] }:$vt) ++/* 52375*/ /*Scope*/ 62, /*->52438*/ ++/* 52376*/ OPC_MoveChild0, ++/* 52377*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 52380*/ OPC_MoveChild0, ++/* 52381*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52384*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 52386*/ OPC_CheckType, MVT::i32, ++/* 52388*/ OPC_MoveParent, ++/* 52389*/ OPC_MoveChild1, ++/* 52390*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52393*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 52395*/ OPC_CheckType, MVT::i32, ++/* 52397*/ OPC_MoveParent, ++/* 52398*/ OPC_MoveChild2, ++/* 52399*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52402*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 52404*/ OPC_CheckType, MVT::i32, ++/* 52406*/ OPC_MoveParent, ++/* 52407*/ OPC_MoveChild3, ++/* 52408*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52411*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 52413*/ OPC_CheckType, MVT::i32, ++/* 52415*/ OPC_MoveParent, ++/* 52416*/ OPC_MoveParent, ++/* 52417*/ OPC_RecordChild1, // #1 = $vt ++/* 52418*/ OPC_CheckType, MVT::v4i32, ++/* 52420*/ OPC_MoveParent, ++/* 52421*/ OPC_MoveParent, ++/* 52422*/ OPC_MoveChild1, ++/* 52423*/ OPC_CheckImmAllOnesV, ++/* 52424*/ OPC_MoveParent, ++/* 52425*/ OPC_MoveParent, ++/* 52426*/ OPC_CheckType, MVT::v4i32, ++/* 52428*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 52430*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vs, (xor:{ *:[v4i32] } (shl:{ *:[v4i32] } (build_vector:{ *:[v4i32] })<>, (and:{ *:[v4i32] } (build_vector:{ *:[v4i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v4i32:{ *:[v4i32] }:$vt)), immAllOnesV:{ *:[v4i32] })) - Complexity = 39 ++ // Dst: (VBITCLR_W:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vs, v4i32:{ *:[v4i32] }:$vt) ++/* 52438*/ 0, /*End of Scope*/ ++/* 52439*/ /*Scope*/ 11|128,1/*139*/, /*->52580*/ ++/* 52441*/ OPC_CheckImmAllOnesV, ++/* 52442*/ OPC_MoveParent, ++/* 52443*/ OPC_MoveChild1, ++/* 52444*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 52447*/ OPC_MoveChild0, ++/* 52448*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 52451*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 52453*/ OPC_MoveParent, ++/* 52454*/ OPC_MoveChild1, ++/* 52455*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 52458*/ OPC_Scope, 59, /*->52519*/ // 2 children in Scope ++/* 52460*/ OPC_RecordChild0, // #1 = $vt ++/* 52461*/ OPC_MoveChild1, ++/* 52462*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 52465*/ OPC_MoveChild0, ++/* 52466*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52469*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 52471*/ OPC_CheckType, MVT::i32, ++/* 52473*/ OPC_MoveParent, ++/* 52474*/ OPC_MoveChild1, ++/* 52475*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52478*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 52480*/ OPC_CheckType, MVT::i32, ++/* 52482*/ OPC_MoveParent, ++/* 52483*/ OPC_MoveChild2, ++/* 52484*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52487*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 52489*/ OPC_CheckType, MVT::i32, ++/* 52491*/ OPC_MoveParent, ++/* 52492*/ OPC_MoveChild3, ++/* 52493*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52496*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 52498*/ OPC_CheckType, MVT::i32, ++/* 52500*/ OPC_MoveParent, ++/* 52501*/ OPC_MoveParent, ++/* 52502*/ OPC_CheckType, MVT::v4i32, ++/* 52504*/ OPC_MoveParent, ++/* 52505*/ OPC_MoveParent, ++/* 52506*/ OPC_MoveParent, ++/* 52507*/ OPC_CheckType, MVT::v4i32, ++/* 52509*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 52511*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vs, (xor:{ *:[v4i32] } immAllOnesV:{ *:[v4i32] }, (shl:{ *:[v4i32] } (build_vector:{ *:[v4i32] })<>, (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vt, (build_vector:{ *:[v4i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))))) - Complexity = 39 ++ // Dst: (VBITCLR_W:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vs, v4i32:{ *:[v4i32] }:$vt) ++/* 52519*/ /*Scope*/ 59, /*->52579*/ ++/* 52520*/ OPC_MoveChild0, ++/* 52521*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 52524*/ OPC_MoveChild0, ++/* 52525*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52528*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 52530*/ OPC_CheckType, MVT::i32, ++/* 52532*/ OPC_MoveParent, ++/* 52533*/ OPC_MoveChild1, ++/* 52534*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52537*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 52539*/ OPC_CheckType, MVT::i32, ++/* 52541*/ OPC_MoveParent, ++/* 52542*/ OPC_MoveChild2, ++/* 52543*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52546*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 52548*/ OPC_CheckType, MVT::i32, ++/* 52550*/ OPC_MoveParent, ++/* 52551*/ OPC_MoveChild3, ++/* 52552*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52555*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 52557*/ OPC_CheckType, MVT::i32, ++/* 52559*/ OPC_MoveParent, ++/* 52560*/ OPC_MoveParent, ++/* 52561*/ OPC_RecordChild1, // #1 = $vt ++/* 52562*/ OPC_CheckType, MVT::v4i32, ++/* 52564*/ OPC_MoveParent, ++/* 52565*/ OPC_MoveParent, ++/* 52566*/ OPC_MoveParent, ++/* 52567*/ OPC_CheckType, MVT::v4i32, ++/* 52569*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 52571*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vs, (xor:{ *:[v4i32] } immAllOnesV:{ *:[v4i32] }, (shl:{ *:[v4i32] } (build_vector:{ *:[v4i32] })<>, (and:{ *:[v4i32] } (build_vector:{ *:[v4i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v4i32:{ *:[v4i32] }:$vt)))) - Complexity = 39 ++ // Dst: (VBITCLR_W:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vs, v4i32:{ *:[v4i32] }:$vt) ++/* 52579*/ 0, /*End of Scope*/ ++/* 52580*/ 0, /*End of Scope*/ ++/* 52581*/ 0, /*End of Scope*/ ++/* 52582*/ /*Scope*/ 40|128,2/*296*/, /*->52880*/ ++/* 52584*/ OPC_MoveChild0, ++/* 52585*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 52588*/ OPC_MoveChild0, ++/* 52589*/ OPC_Scope, 16|128,1/*144*/, /*->52736*/ // 2 children in Scope ++/* 52592*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 52595*/ OPC_MoveChild0, ++/* 52596*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 52599*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 52601*/ OPC_MoveParent, ++/* 52602*/ OPC_MoveChild1, ++/* 52603*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 52606*/ OPC_Scope, 63, /*->52671*/ // 2 children in Scope ++/* 52608*/ OPC_RecordChild0, // #0 = $vt ++/* 52609*/ OPC_MoveChild1, ++/* 52610*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 52613*/ OPC_MoveChild0, ++/* 52614*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52617*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 52619*/ OPC_CheckType, MVT::i32, ++/* 52621*/ OPC_MoveParent, ++/* 52622*/ OPC_MoveChild1, ++/* 52623*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52626*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 52628*/ OPC_CheckType, MVT::i32, ++/* 52630*/ OPC_MoveParent, ++/* 52631*/ OPC_MoveChild2, ++/* 52632*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52635*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 52637*/ OPC_CheckType, MVT::i32, ++/* 52639*/ OPC_MoveParent, ++/* 52640*/ OPC_MoveChild3, ++/* 52641*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52644*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 52646*/ OPC_CheckType, MVT::i32, ++/* 52648*/ OPC_MoveParent, ++/* 52649*/ OPC_MoveParent, ++/* 52650*/ OPC_CheckType, MVT::v4i32, ++/* 52652*/ OPC_MoveParent, ++/* 52653*/ OPC_MoveParent, ++/* 52654*/ OPC_MoveChild1, ++/* 52655*/ OPC_CheckImmAllOnesV, ++/* 52656*/ OPC_MoveParent, ++/* 52657*/ OPC_MoveParent, ++/* 52658*/ OPC_RecordChild1, // #1 = $vs ++/* 52659*/ OPC_CheckType, MVT::v4i32, ++/* 52661*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 52663*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v4i32] } (xor:{ *:[v4i32] } (shl:{ *:[v4i32] } (build_vector:{ *:[v4i32] })<>, (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vt, (build_vector:{ *:[v4i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))), immAllOnesV:{ *:[v4i32] }), v4i32:{ *:[v4i32] }:$vs) - Complexity = 39 ++ // Dst: (VBITCLR_W:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vs, v4i32:{ *:[v4i32] }:$vt) ++/* 52671*/ /*Scope*/ 63, /*->52735*/ ++/* 52672*/ OPC_MoveChild0, ++/* 52673*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 52676*/ OPC_MoveChild0, ++/* 52677*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52680*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 52682*/ OPC_CheckType, MVT::i32, ++/* 52684*/ OPC_MoveParent, ++/* 52685*/ OPC_MoveChild1, ++/* 52686*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52689*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 52691*/ OPC_CheckType, MVT::i32, ++/* 52693*/ OPC_MoveParent, ++/* 52694*/ OPC_MoveChild2, ++/* 52695*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52698*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 52700*/ OPC_CheckType, MVT::i32, ++/* 52702*/ OPC_MoveParent, ++/* 52703*/ OPC_MoveChild3, ++/* 52704*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52707*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 52709*/ OPC_CheckType, MVT::i32, ++/* 52711*/ OPC_MoveParent, ++/* 52712*/ OPC_MoveParent, ++/* 52713*/ OPC_RecordChild1, // #0 = $vt ++/* 52714*/ OPC_CheckType, MVT::v4i32, ++/* 52716*/ OPC_MoveParent, ++/* 52717*/ OPC_MoveParent, ++/* 52718*/ OPC_MoveChild1, ++/* 52719*/ OPC_CheckImmAllOnesV, ++/* 52720*/ OPC_MoveParent, ++/* 52721*/ OPC_MoveParent, ++/* 52722*/ OPC_RecordChild1, // #1 = $vs ++/* 52723*/ OPC_CheckType, MVT::v4i32, ++/* 52725*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 52727*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v4i32] } (xor:{ *:[v4i32] } (shl:{ *:[v4i32] } (build_vector:{ *:[v4i32] })<>, (and:{ *:[v4i32] } (build_vector:{ *:[v4i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v4i32:{ *:[v4i32] }:$vt)), immAllOnesV:{ *:[v4i32] }), v4i32:{ *:[v4i32] }:$vs) - Complexity = 39 ++ // Dst: (VBITCLR_W:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vs, v4i32:{ *:[v4i32] }:$vt) ++/* 52735*/ 0, /*End of Scope*/ ++/* 52736*/ /*Scope*/ 13|128,1/*141*/, /*->52879*/ ++/* 52738*/ OPC_CheckImmAllOnesV, ++/* 52739*/ OPC_MoveParent, ++/* 52740*/ OPC_MoveChild1, ++/* 52741*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 52744*/ OPC_MoveChild0, ++/* 52745*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 52748*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 52750*/ OPC_MoveParent, ++/* 52751*/ OPC_MoveChild1, ++/* 52752*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 52755*/ OPC_Scope, 60, /*->52817*/ // 2 children in Scope ++/* 52757*/ OPC_RecordChild0, // #0 = $vt ++/* 52758*/ OPC_MoveChild1, ++/* 52759*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 52762*/ OPC_MoveChild0, ++/* 52763*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52766*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 52768*/ OPC_CheckType, MVT::i32, ++/* 52770*/ OPC_MoveParent, ++/* 52771*/ OPC_MoveChild1, ++/* 52772*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52775*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 52777*/ OPC_CheckType, MVT::i32, ++/* 52779*/ OPC_MoveParent, ++/* 52780*/ OPC_MoveChild2, ++/* 52781*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52784*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 52786*/ OPC_CheckType, MVT::i32, ++/* 52788*/ OPC_MoveParent, ++/* 52789*/ OPC_MoveChild3, ++/* 52790*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52793*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 52795*/ OPC_CheckType, MVT::i32, ++/* 52797*/ OPC_MoveParent, ++/* 52798*/ OPC_MoveParent, ++/* 52799*/ OPC_CheckType, MVT::v4i32, ++/* 52801*/ OPC_MoveParent, ++/* 52802*/ OPC_MoveParent, ++/* 52803*/ OPC_MoveParent, ++/* 52804*/ OPC_RecordChild1, // #1 = $vs ++/* 52805*/ OPC_CheckType, MVT::v4i32, ++/* 52807*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 52809*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v4i32] } (xor:{ *:[v4i32] } immAllOnesV:{ *:[v4i32] }, (shl:{ *:[v4i32] } (build_vector:{ *:[v4i32] })<>, (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vt, (build_vector:{ *:[v4i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>)))), v4i32:{ *:[v4i32] }:$vs) - Complexity = 39 ++ // Dst: (VBITCLR_W:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vs, v4i32:{ *:[v4i32] }:$vt) ++/* 52817*/ /*Scope*/ 60, /*->52878*/ ++/* 52818*/ OPC_MoveChild0, ++/* 52819*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 52822*/ OPC_MoveChild0, ++/* 52823*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52826*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 52828*/ OPC_CheckType, MVT::i32, ++/* 52830*/ OPC_MoveParent, ++/* 52831*/ OPC_MoveChild1, ++/* 52832*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52835*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 52837*/ OPC_CheckType, MVT::i32, ++/* 52839*/ OPC_MoveParent, ++/* 52840*/ OPC_MoveChild2, ++/* 52841*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52844*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 52846*/ OPC_CheckType, MVT::i32, ++/* 52848*/ OPC_MoveParent, ++/* 52849*/ OPC_MoveChild3, ++/* 52850*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 52853*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 52855*/ OPC_CheckType, MVT::i32, ++/* 52857*/ OPC_MoveParent, ++/* 52858*/ OPC_MoveParent, ++/* 52859*/ OPC_RecordChild1, // #0 = $vt ++/* 52860*/ OPC_CheckType, MVT::v4i32, ++/* 52862*/ OPC_MoveParent, ++/* 52863*/ OPC_MoveParent, ++/* 52864*/ OPC_MoveParent, ++/* 52865*/ OPC_RecordChild1, // #1 = $vs ++/* 52866*/ OPC_CheckType, MVT::v4i32, ++/* 52868*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 52870*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v4i32] } (xor:{ *:[v4i32] } immAllOnesV:{ *:[v4i32] }, (shl:{ *:[v4i32] } (build_vector:{ *:[v4i32] })<>, (and:{ *:[v4i32] } (build_vector:{ *:[v4i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v4i32:{ *:[v4i32] }:$vt))), v4i32:{ *:[v4i32] }:$vs) - Complexity = 39 ++ // Dst: (VBITCLR_W:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vs, v4i32:{ *:[v4i32] }:$vt) ++/* 52878*/ 0, /*End of Scope*/ ++/* 52879*/ 0, /*End of Scope*/ ++/* 52880*/ /*Scope*/ 15|128,2/*271*/, /*->53153*/ ++/* 52882*/ OPC_RecordChild0, // #0 = $vs ++/* 52883*/ OPC_MoveChild1, ++/* 52884*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 52887*/ OPC_MoveChild0, ++/* 52888*/ OPC_SwitchOpcode /*2 cases */, 32|128,1/*160*/, TARGET_VAL(ISD::SHL),// ->53053 ++/* 52893*/ OPC_MoveChild0, ++/* 52894*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 52897*/ OPC_MoveChild0, ++/* 52898*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 52901*/ OPC_SwitchType /*2 cases */, 96, MVT::v4i32,// ->53000 ++/* 52904*/ OPC_MoveParent, ++/* 52905*/ OPC_CheckPredicate, 39, // Predicate_vsplati64_imm_eq_1 ++/* 52907*/ OPC_MoveParent, ++/* 52908*/ OPC_MoveChild1, ++/* 52909*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 52912*/ OPC_Scope, 42, /*->52956*/ // 2 children in Scope ++/* 52914*/ OPC_RecordChild0, // #1 = $vt ++/* 52915*/ OPC_MoveChild1, ++/* 52916*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 52919*/ OPC_MoveChild0, ++/* 52920*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 52923*/ OPC_CheckType, MVT::v4i32, ++/* 52925*/ OPC_MoveParent, ++/* 52926*/ OPC_CheckPredicate, 40, // Predicate_vsplati64_imm_eq_63 ++/* 52928*/ OPC_MoveParent, ++/* 52929*/ OPC_CheckType, MVT::v2i64, ++/* 52931*/ OPC_MoveParent, ++/* 52932*/ OPC_MoveParent, ++/* 52933*/ OPC_MoveChild1, ++/* 52934*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 52937*/ OPC_MoveChild0, ++/* 52938*/ OPC_CheckImmAllOnesV, ++/* 52939*/ OPC_CheckType, MVT::v4i32, ++/* 52941*/ OPC_MoveParent, ++/* 52942*/ OPC_MoveParent, ++/* 52943*/ OPC_MoveParent, ++/* 52944*/ OPC_CheckType, MVT::v2i64, ++/* 52946*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 52948*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vs, (xor:{ *:[v2i64] } (shl:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] }))<>, (and:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vt, (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] }))<>)), (bitconvert:{ *:[v2i64] } immAllOnesV:{ *:[v4i32] }))) - Complexity = 33 ++ // Dst: (VBITCLR_D:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vs, v2i64:{ *:[v2i64] }:$vt) ++/* 52956*/ /*Scope*/ 42, /*->52999*/ ++/* 52957*/ OPC_MoveChild0, ++/* 52958*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 52961*/ OPC_MoveChild0, ++/* 52962*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 52965*/ OPC_CheckType, MVT::v4i32, ++/* 52967*/ OPC_MoveParent, ++/* 52968*/ OPC_CheckPredicate, 40, // Predicate_vsplati64_imm_eq_63 ++/* 52970*/ OPC_MoveParent, ++/* 52971*/ OPC_RecordChild1, // #1 = $vt ++/* 52972*/ OPC_CheckType, MVT::v2i64, ++/* 52974*/ OPC_MoveParent, ++/* 52975*/ OPC_MoveParent, ++/* 52976*/ OPC_MoveChild1, ++/* 52977*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 52980*/ OPC_MoveChild0, ++/* 52981*/ OPC_CheckImmAllOnesV, ++/* 52982*/ OPC_CheckType, MVT::v4i32, ++/* 52984*/ OPC_MoveParent, ++/* 52985*/ OPC_MoveParent, ++/* 52986*/ OPC_MoveParent, ++/* 52987*/ OPC_CheckType, MVT::v2i64, ++/* 52989*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 52991*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vs, (xor:{ *:[v2i64] } (shl:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] }))<>, (and:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] }))<>, v2i64:{ *:[v2i64] }:$vt)), (bitconvert:{ *:[v2i64] } immAllOnesV:{ *:[v4i32] }))) - Complexity = 33 ++ // Dst: (VBITCLR_D:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vs, v2i64:{ *:[v2i64] }:$vt) ++/* 52999*/ 0, /*End of Scope*/ ++/* 53000*/ /*SwitchType*/ 50, MVT::v8i32,// ->53052 ++/* 53002*/ OPC_MoveParent, ++/* 53003*/ OPC_CheckPredicate, 39, // Predicate_xvsplati64_imm_eq_1 ++/* 53005*/ OPC_MoveParent, ++/* 53006*/ OPC_MoveChild1, ++/* 53007*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 53010*/ OPC_RecordChild0, // #1 = $vt ++/* 53011*/ OPC_MoveChild1, ++/* 53012*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 53015*/ OPC_MoveChild0, ++/* 53016*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 53019*/ OPC_CheckType, MVT::v8i32, ++/* 53021*/ OPC_MoveParent, ++/* 53022*/ OPC_CheckPredicate, 40, // Predicate_xvsplati64_imm_eq_63 ++/* 53024*/ OPC_MoveParent, ++/* 53025*/ OPC_CheckType, MVT::v4i64, ++/* 53027*/ OPC_MoveParent, ++/* 53028*/ OPC_MoveParent, ++/* 53029*/ OPC_MoveChild1, ++/* 53030*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 53033*/ OPC_MoveChild0, ++/* 53034*/ OPC_CheckImmAllOnesV, ++/* 53035*/ OPC_CheckType, MVT::v8i32, ++/* 53037*/ OPC_MoveParent, ++/* 53038*/ OPC_MoveParent, ++/* 53039*/ OPC_MoveParent, ++/* 53040*/ OPC_CheckType, MVT::v4i64, ++/* 53042*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 53044*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vs, (xor:{ *:[v4i64] } (shl:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] }))<>, (and:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vt, (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] }))<>)), (bitconvert:{ *:[v4i64] } immAllOnesV:{ *:[v8i32] }))) - Complexity = 33 ++ // Dst: (XVBITCLR_D:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vs, v4i64:{ *:[v4i64] }:$vt) ++/* 53052*/ 0, // EndSwitchType ++/* 53053*/ /*SwitchOpcode*/ 96, TARGET_VAL(ISD::BITCAST),// ->53152 ++/* 53056*/ OPC_MoveChild0, ++/* 53057*/ OPC_CheckImmAllOnesV, ++/* 53058*/ OPC_CheckType, MVT::v4i32, ++/* 53060*/ OPC_MoveParent, ++/* 53061*/ OPC_MoveParent, ++/* 53062*/ OPC_MoveChild1, ++/* 53063*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 53066*/ OPC_MoveChild0, ++/* 53067*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 53070*/ OPC_MoveChild0, ++/* 53071*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 53074*/ OPC_CheckType, MVT::v4i32, ++/* 53076*/ OPC_MoveParent, ++/* 53077*/ OPC_CheckPredicate, 39, // Predicate_vsplati64_imm_eq_1 ++/* 53079*/ OPC_MoveParent, ++/* 53080*/ OPC_MoveChild1, ++/* 53081*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 53084*/ OPC_Scope, 32, /*->53118*/ // 2 children in Scope ++/* 53086*/ OPC_RecordChild0, // #1 = $vt ++/* 53087*/ OPC_MoveChild1, ++/* 53088*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 53091*/ OPC_MoveChild0, ++/* 53092*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 53095*/ OPC_CheckType, MVT::v4i32, ++/* 53097*/ OPC_MoveParent, ++/* 53098*/ OPC_CheckPredicate, 40, // Predicate_vsplati64_imm_eq_63 ++/* 53100*/ OPC_MoveParent, ++/* 53101*/ OPC_CheckType, MVT::v2i64, ++/* 53103*/ OPC_MoveParent, ++/* 53104*/ OPC_MoveParent, ++/* 53105*/ OPC_MoveParent, ++/* 53106*/ OPC_CheckType, MVT::v2i64, ++/* 53108*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 53110*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vs, (xor:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } immAllOnesV:{ *:[v4i32] }), (shl:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] }))<>, (and:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vt, (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] }))<>)))) - Complexity = 33 ++ // Dst: (VBITCLR_D:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vs, v2i64:{ *:[v2i64] }:$vt) ++/* 53118*/ /*Scope*/ 32, /*->53151*/ ++/* 53119*/ OPC_MoveChild0, ++/* 53120*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 53123*/ OPC_MoveChild0, ++/* 53124*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 53127*/ OPC_CheckType, MVT::v4i32, ++/* 53129*/ OPC_MoveParent, ++/* 53130*/ OPC_CheckPredicate, 40, // Predicate_vsplati64_imm_eq_63 ++/* 53132*/ OPC_MoveParent, ++/* 53133*/ OPC_RecordChild1, // #1 = $vt ++/* 53134*/ OPC_CheckType, MVT::v2i64, ++/* 53136*/ OPC_MoveParent, ++/* 53137*/ OPC_MoveParent, ++/* 53138*/ OPC_MoveParent, ++/* 53139*/ OPC_CheckType, MVT::v2i64, ++/* 53141*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 53143*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vs, (xor:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } immAllOnesV:{ *:[v4i32] }), (shl:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] }))<>, (and:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] }))<>, v2i64:{ *:[v2i64] }:$vt)))) - Complexity = 33 ++ // Dst: (VBITCLR_D:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vs, v2i64:{ *:[v2i64] }:$vt) ++/* 53151*/ 0, /*End of Scope*/ ++/* 53152*/ 0, // EndSwitchOpcode ++/* 53153*/ /*Scope*/ 91|128,1/*219*/, /*->53374*/ ++/* 53155*/ OPC_MoveChild0, ++/* 53156*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 53159*/ OPC_MoveChild0, ++/* 53160*/ OPC_SwitchOpcode /*2 cases */, 108, TARGET_VAL(ISD::SHL),// ->53272 ++/* 53164*/ OPC_MoveChild0, ++/* 53165*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 53168*/ OPC_MoveChild0, ++/* 53169*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 53172*/ OPC_CheckType, MVT::v4i32, ++/* 53174*/ OPC_MoveParent, ++/* 53175*/ OPC_CheckPredicate, 39, // Predicate_vsplati64_imm_eq_1 ++/* 53177*/ OPC_MoveParent, ++/* 53178*/ OPC_MoveChild1, ++/* 53179*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 53182*/ OPC_Scope, 43, /*->53227*/ // 2 children in Scope ++/* 53184*/ OPC_RecordChild0, // #0 = $vt ++/* 53185*/ OPC_MoveChild1, ++/* 53186*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 53189*/ OPC_MoveChild0, ++/* 53190*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 53193*/ OPC_CheckType, MVT::v4i32, ++/* 53195*/ OPC_MoveParent, ++/* 53196*/ OPC_CheckPredicate, 40, // Predicate_vsplati64_imm_eq_63 ++/* 53198*/ OPC_MoveParent, ++/* 53199*/ OPC_CheckType, MVT::v2i64, ++/* 53201*/ OPC_MoveParent, ++/* 53202*/ OPC_MoveParent, ++/* 53203*/ OPC_MoveChild1, ++/* 53204*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 53207*/ OPC_MoveChild0, ++/* 53208*/ OPC_CheckImmAllOnesV, ++/* 53209*/ OPC_CheckType, MVT::v4i32, ++/* 53211*/ OPC_MoveParent, ++/* 53212*/ OPC_MoveParent, ++/* 53213*/ OPC_MoveParent, ++/* 53214*/ OPC_RecordChild1, // #1 = $vs ++/* 53215*/ OPC_CheckType, MVT::v2i64, ++/* 53217*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 53219*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v2i64] } (xor:{ *:[v2i64] } (shl:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] }))<>, (and:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vt, (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] }))<>)), (bitconvert:{ *:[v2i64] } immAllOnesV:{ *:[v4i32] })), v2i64:{ *:[v2i64] }:$vs) - Complexity = 33 ++ // Dst: (VBITCLR_D:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vs, v2i64:{ *:[v2i64] }:$vt) ++/* 53227*/ /*Scope*/ 43, /*->53271*/ ++/* 53228*/ OPC_MoveChild0, ++/* 53229*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 53232*/ OPC_MoveChild0, ++/* 53233*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 53236*/ OPC_CheckType, MVT::v4i32, ++/* 53238*/ OPC_MoveParent, ++/* 53239*/ OPC_CheckPredicate, 40, // Predicate_vsplati64_imm_eq_63 ++/* 53241*/ OPC_MoveParent, ++/* 53242*/ OPC_RecordChild1, // #0 = $vt ++/* 53243*/ OPC_CheckType, MVT::v2i64, ++/* 53245*/ OPC_MoveParent, ++/* 53246*/ OPC_MoveParent, ++/* 53247*/ OPC_MoveChild1, ++/* 53248*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 53251*/ OPC_MoveChild0, ++/* 53252*/ OPC_CheckImmAllOnesV, ++/* 53253*/ OPC_CheckType, MVT::v4i32, ++/* 53255*/ OPC_MoveParent, ++/* 53256*/ OPC_MoveParent, ++/* 53257*/ OPC_MoveParent, ++/* 53258*/ OPC_RecordChild1, // #1 = $vs ++/* 53259*/ OPC_CheckType, MVT::v2i64, ++/* 53261*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 53263*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v2i64] } (xor:{ *:[v2i64] } (shl:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] }))<>, (and:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] }))<>, v2i64:{ *:[v2i64] }:$vt)), (bitconvert:{ *:[v2i64] } immAllOnesV:{ *:[v4i32] })), v2i64:{ *:[v2i64] }:$vs) - Complexity = 33 ++ // Dst: (VBITCLR_D:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vs, v2i64:{ *:[v2i64] }:$vt) ++/* 53271*/ 0, /*End of Scope*/ ++/* 53272*/ /*SwitchOpcode*/ 98, TARGET_VAL(ISD::BITCAST),// ->53373 ++/* 53275*/ OPC_MoveChild0, ++/* 53276*/ OPC_CheckImmAllOnesV, ++/* 53277*/ OPC_CheckType, MVT::v4i32, ++/* 53279*/ OPC_MoveParent, ++/* 53280*/ OPC_MoveParent, ++/* 53281*/ OPC_MoveChild1, ++/* 53282*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 53285*/ OPC_MoveChild0, ++/* 53286*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 53289*/ OPC_MoveChild0, ++/* 53290*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 53293*/ OPC_CheckType, MVT::v4i32, ++/* 53295*/ OPC_MoveParent, ++/* 53296*/ OPC_CheckPredicate, 39, // Predicate_vsplati64_imm_eq_1 ++/* 53298*/ OPC_MoveParent, ++/* 53299*/ OPC_MoveChild1, ++/* 53300*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 53303*/ OPC_Scope, 33, /*->53338*/ // 2 children in Scope ++/* 53305*/ OPC_RecordChild0, // #0 = $vt ++/* 53306*/ OPC_MoveChild1, ++/* 53307*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 53310*/ OPC_MoveChild0, ++/* 53311*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 53314*/ OPC_CheckType, MVT::v4i32, ++/* 53316*/ OPC_MoveParent, ++/* 53317*/ OPC_CheckPredicate, 40, // Predicate_vsplati64_imm_eq_63 ++/* 53319*/ OPC_MoveParent, ++/* 53320*/ OPC_CheckType, MVT::v2i64, ++/* 53322*/ OPC_MoveParent, ++/* 53323*/ OPC_MoveParent, ++/* 53324*/ OPC_MoveParent, ++/* 53325*/ OPC_RecordChild1, // #1 = $vs ++/* 53326*/ OPC_CheckType, MVT::v2i64, ++/* 53328*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 53330*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v2i64] } (xor:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } immAllOnesV:{ *:[v4i32] }), (shl:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] }))<>, (and:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vt, (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] }))<>))), v2i64:{ *:[v2i64] }:$vs) - Complexity = 33 ++ // Dst: (VBITCLR_D:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vs, v2i64:{ *:[v2i64] }:$vt) ++/* 53338*/ /*Scope*/ 33, /*->53372*/ ++/* 53339*/ OPC_MoveChild0, ++/* 53340*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 53343*/ OPC_MoveChild0, ++/* 53344*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 53347*/ OPC_CheckType, MVT::v4i32, ++/* 53349*/ OPC_MoveParent, ++/* 53350*/ OPC_CheckPredicate, 40, // Predicate_vsplati64_imm_eq_63 ++/* 53352*/ OPC_MoveParent, ++/* 53353*/ OPC_RecordChild1, // #0 = $vt ++/* 53354*/ OPC_CheckType, MVT::v2i64, ++/* 53356*/ OPC_MoveParent, ++/* 53357*/ OPC_MoveParent, ++/* 53358*/ OPC_MoveParent, ++/* 53359*/ OPC_RecordChild1, // #1 = $vs ++/* 53360*/ OPC_CheckType, MVT::v2i64, ++/* 53362*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 53364*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v2i64] } (xor:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } immAllOnesV:{ *:[v4i32] }), (shl:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] }))<>, (and:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] }))<>, v2i64:{ *:[v2i64] }:$vt))), v2i64:{ *:[v2i64] }:$vs) - Complexity = 33 ++ // Dst: (VBITCLR_D:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vs, v2i64:{ *:[v2i64] }:$vt) ++/* 53372*/ 0, /*End of Scope*/ ++/* 53373*/ 0, // EndSwitchOpcode ++/* 53374*/ /*Scope*/ 42|128,1/*170*/, /*->53546*/ ++/* 53376*/ OPC_RecordChild0, // #0 = $vs ++/* 53377*/ OPC_MoveChild1, ++/* 53378*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 53381*/ OPC_MoveChild0, ++/* 53382*/ OPC_SwitchOpcode /*2 cases */, 60, TARGET_VAL(ISD::SHL),// ->53446 ++/* 53386*/ OPC_MoveChild0, ++/* 53387*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 53390*/ OPC_MoveChild0, ++/* 53391*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 53394*/ OPC_CheckType, MVT::v8i32, ++/* 53396*/ OPC_MoveParent, ++/* 53397*/ OPC_CheckPredicate, 39, // Predicate_xvsplati64_imm_eq_1 ++/* 53399*/ OPC_MoveParent, ++/* 53400*/ OPC_MoveChild1, ++/* 53401*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 53404*/ OPC_MoveChild0, ++/* 53405*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 53408*/ OPC_MoveChild0, ++/* 53409*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 53412*/ OPC_CheckType, MVT::v8i32, ++/* 53414*/ OPC_MoveParent, ++/* 53415*/ OPC_CheckPredicate, 40, // Predicate_xvsplati64_imm_eq_63 ++/* 53417*/ OPC_MoveParent, ++/* 53418*/ OPC_RecordChild1, // #1 = $vt ++/* 53419*/ OPC_CheckType, MVT::v4i64, ++/* 53421*/ OPC_MoveParent, ++/* 53422*/ OPC_MoveParent, ++/* 53423*/ OPC_MoveChild1, ++/* 53424*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 53427*/ OPC_MoveChild0, ++/* 53428*/ OPC_CheckImmAllOnesV, ++/* 53429*/ OPC_CheckType, MVT::v8i32, ++/* 53431*/ OPC_MoveParent, ++/* 53432*/ OPC_MoveParent, ++/* 53433*/ OPC_MoveParent, ++/* 53434*/ OPC_CheckType, MVT::v4i64, ++/* 53436*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 53438*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vs, (xor:{ *:[v4i64] } (shl:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] }))<>, (and:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] }))<>, v4i64:{ *:[v4i64] }:$vt)), (bitconvert:{ *:[v4i64] } immAllOnesV:{ *:[v8i32] }))) - Complexity = 33 ++ // Dst: (XVBITCLR_D:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vs, v4i64:{ *:[v4i64] }:$vt) ++/* 53446*/ /*SwitchOpcode*/ 96, TARGET_VAL(ISD::BITCAST),// ->53545 ++/* 53449*/ OPC_MoveChild0, ++/* 53450*/ OPC_CheckImmAllOnesV, ++/* 53451*/ OPC_CheckType, MVT::v8i32, ++/* 53453*/ OPC_MoveParent, ++/* 53454*/ OPC_MoveParent, ++/* 53455*/ OPC_MoveChild1, ++/* 53456*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 53459*/ OPC_MoveChild0, ++/* 53460*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 53463*/ OPC_MoveChild0, ++/* 53464*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 53467*/ OPC_CheckType, MVT::v8i32, ++/* 53469*/ OPC_MoveParent, ++/* 53470*/ OPC_CheckPredicate, 39, // Predicate_xvsplati64_imm_eq_1 ++/* 53472*/ OPC_MoveParent, ++/* 53473*/ OPC_MoveChild1, ++/* 53474*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 53477*/ OPC_Scope, 32, /*->53511*/ // 2 children in Scope ++/* 53479*/ OPC_RecordChild0, // #1 = $vt ++/* 53480*/ OPC_MoveChild1, ++/* 53481*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 53484*/ OPC_MoveChild0, ++/* 53485*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 53488*/ OPC_CheckType, MVT::v8i32, ++/* 53490*/ OPC_MoveParent, ++/* 53491*/ OPC_CheckPredicate, 40, // Predicate_xvsplati64_imm_eq_63 ++/* 53493*/ OPC_MoveParent, ++/* 53494*/ OPC_CheckType, MVT::v4i64, ++/* 53496*/ OPC_MoveParent, ++/* 53497*/ OPC_MoveParent, ++/* 53498*/ OPC_MoveParent, ++/* 53499*/ OPC_CheckType, MVT::v4i64, ++/* 53501*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 53503*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vs, (xor:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } immAllOnesV:{ *:[v8i32] }), (shl:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] }))<>, (and:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vt, (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] }))<>)))) - Complexity = 33 ++ // Dst: (XVBITCLR_D:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vs, v4i64:{ *:[v4i64] }:$vt) ++/* 53511*/ /*Scope*/ 32, /*->53544*/ ++/* 53512*/ OPC_MoveChild0, ++/* 53513*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 53516*/ OPC_MoveChild0, ++/* 53517*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 53520*/ OPC_CheckType, MVT::v8i32, ++/* 53522*/ OPC_MoveParent, ++/* 53523*/ OPC_CheckPredicate, 40, // Predicate_xvsplati64_imm_eq_63 ++/* 53525*/ OPC_MoveParent, ++/* 53526*/ OPC_RecordChild1, // #1 = $vt ++/* 53527*/ OPC_CheckType, MVT::v4i64, ++/* 53529*/ OPC_MoveParent, ++/* 53530*/ OPC_MoveParent, ++/* 53531*/ OPC_MoveParent, ++/* 53532*/ OPC_CheckType, MVT::v4i64, ++/* 53534*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 53536*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vs, (xor:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } immAllOnesV:{ *:[v8i32] }), (shl:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] }))<>, (and:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] }))<>, v4i64:{ *:[v4i64] }:$vt)))) - Complexity = 33 ++ // Dst: (XVBITCLR_D:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vs, v4i64:{ *:[v4i64] }:$vt) ++/* 53544*/ 0, /*End of Scope*/ ++/* 53545*/ 0, // EndSwitchOpcode ++/* 53546*/ /*Scope*/ 91|128,1/*219*/, /*->53767*/ ++/* 53548*/ OPC_MoveChild0, ++/* 53549*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 53552*/ OPC_MoveChild0, ++/* 53553*/ OPC_SwitchOpcode /*2 cases */, 108, TARGET_VAL(ISD::SHL),// ->53665 ++/* 53557*/ OPC_MoveChild0, ++/* 53558*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 53561*/ OPC_MoveChild0, ++/* 53562*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 53565*/ OPC_CheckType, MVT::v8i32, ++/* 53567*/ OPC_MoveParent, ++/* 53568*/ OPC_CheckPredicate, 39, // Predicate_xvsplati64_imm_eq_1 ++/* 53570*/ OPC_MoveParent, ++/* 53571*/ OPC_MoveChild1, ++/* 53572*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 53575*/ OPC_Scope, 43, /*->53620*/ // 2 children in Scope ++/* 53577*/ OPC_RecordChild0, // #0 = $vt ++/* 53578*/ OPC_MoveChild1, ++/* 53579*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 53582*/ OPC_MoveChild0, ++/* 53583*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 53586*/ OPC_CheckType, MVT::v8i32, ++/* 53588*/ OPC_MoveParent, ++/* 53589*/ OPC_CheckPredicate, 40, // Predicate_xvsplati64_imm_eq_63 ++/* 53591*/ OPC_MoveParent, ++/* 53592*/ OPC_CheckType, MVT::v4i64, ++/* 53594*/ OPC_MoveParent, ++/* 53595*/ OPC_MoveParent, ++/* 53596*/ OPC_MoveChild1, ++/* 53597*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 53600*/ OPC_MoveChild0, ++/* 53601*/ OPC_CheckImmAllOnesV, ++/* 53602*/ OPC_CheckType, MVT::v8i32, ++/* 53604*/ OPC_MoveParent, ++/* 53605*/ OPC_MoveParent, ++/* 53606*/ OPC_MoveParent, ++/* 53607*/ OPC_RecordChild1, // #1 = $vs ++/* 53608*/ OPC_CheckType, MVT::v4i64, ++/* 53610*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 53612*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v4i64] } (xor:{ *:[v4i64] } (shl:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] }))<>, (and:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vt, (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] }))<>)), (bitconvert:{ *:[v4i64] } immAllOnesV:{ *:[v8i32] })), v4i64:{ *:[v4i64] }:$vs) - Complexity = 33 ++ // Dst: (XVBITCLR_D:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vs, v4i64:{ *:[v4i64] }:$vt) ++/* 53620*/ /*Scope*/ 43, /*->53664*/ ++/* 53621*/ OPC_MoveChild0, ++/* 53622*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 53625*/ OPC_MoveChild0, ++/* 53626*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 53629*/ OPC_CheckType, MVT::v8i32, ++/* 53631*/ OPC_MoveParent, ++/* 53632*/ OPC_CheckPredicate, 40, // Predicate_xvsplati64_imm_eq_63 ++/* 53634*/ OPC_MoveParent, ++/* 53635*/ OPC_RecordChild1, // #0 = $vt ++/* 53636*/ OPC_CheckType, MVT::v4i64, ++/* 53638*/ OPC_MoveParent, ++/* 53639*/ OPC_MoveParent, ++/* 53640*/ OPC_MoveChild1, ++/* 53641*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 53644*/ OPC_MoveChild0, ++/* 53645*/ OPC_CheckImmAllOnesV, ++/* 53646*/ OPC_CheckType, MVT::v8i32, ++/* 53648*/ OPC_MoveParent, ++/* 53649*/ OPC_MoveParent, ++/* 53650*/ OPC_MoveParent, ++/* 53651*/ OPC_RecordChild1, // #1 = $vs ++/* 53652*/ OPC_CheckType, MVT::v4i64, ++/* 53654*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 53656*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v4i64] } (xor:{ *:[v4i64] } (shl:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] }))<>, (and:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] }))<>, v4i64:{ *:[v4i64] }:$vt)), (bitconvert:{ *:[v4i64] } immAllOnesV:{ *:[v8i32] })), v4i64:{ *:[v4i64] }:$vs) - Complexity = 33 ++ // Dst: (XVBITCLR_D:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vs, v4i64:{ *:[v4i64] }:$vt) ++/* 53664*/ 0, /*End of Scope*/ ++/* 53665*/ /*SwitchOpcode*/ 98, TARGET_VAL(ISD::BITCAST),// ->53766 ++/* 53668*/ OPC_MoveChild0, ++/* 53669*/ OPC_CheckImmAllOnesV, ++/* 53670*/ OPC_CheckType, MVT::v8i32, ++/* 53672*/ OPC_MoveParent, ++/* 53673*/ OPC_MoveParent, ++/* 53674*/ OPC_MoveChild1, ++/* 53675*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 53678*/ OPC_MoveChild0, ++/* 53679*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 53682*/ OPC_MoveChild0, ++/* 53683*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 53686*/ OPC_CheckType, MVT::v8i32, ++/* 53688*/ OPC_MoveParent, ++/* 53689*/ OPC_CheckPredicate, 39, // Predicate_xvsplati64_imm_eq_1 ++/* 53691*/ OPC_MoveParent, ++/* 53692*/ OPC_MoveChild1, ++/* 53693*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 53696*/ OPC_Scope, 33, /*->53731*/ // 2 children in Scope ++/* 53698*/ OPC_RecordChild0, // #0 = $vt ++/* 53699*/ OPC_MoveChild1, ++/* 53700*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 53703*/ OPC_MoveChild0, ++/* 53704*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 53707*/ OPC_CheckType, MVT::v8i32, ++/* 53709*/ OPC_MoveParent, ++/* 53710*/ OPC_CheckPredicate, 40, // Predicate_xvsplati64_imm_eq_63 ++/* 53712*/ OPC_MoveParent, ++/* 53713*/ OPC_CheckType, MVT::v4i64, ++/* 53715*/ OPC_MoveParent, ++/* 53716*/ OPC_MoveParent, ++/* 53717*/ OPC_MoveParent, ++/* 53718*/ OPC_RecordChild1, // #1 = $vs ++/* 53719*/ OPC_CheckType, MVT::v4i64, ++/* 53721*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 53723*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v4i64] } (xor:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } immAllOnesV:{ *:[v8i32] }), (shl:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] }))<>, (and:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vt, (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] }))<>))), v4i64:{ *:[v4i64] }:$vs) - Complexity = 33 ++ // Dst: (XVBITCLR_D:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vs, v4i64:{ *:[v4i64] }:$vt) ++/* 53731*/ /*Scope*/ 33, /*->53765*/ ++/* 53732*/ OPC_MoveChild0, ++/* 53733*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 53736*/ OPC_MoveChild0, ++/* 53737*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 53740*/ OPC_CheckType, MVT::v8i32, ++/* 53742*/ OPC_MoveParent, ++/* 53743*/ OPC_CheckPredicate, 40, // Predicate_xvsplati64_imm_eq_63 ++/* 53745*/ OPC_MoveParent, ++/* 53746*/ OPC_RecordChild1, // #0 = $vt ++/* 53747*/ OPC_CheckType, MVT::v4i64, ++/* 53749*/ OPC_MoveParent, ++/* 53750*/ OPC_MoveParent, ++/* 53751*/ OPC_MoveParent, ++/* 53752*/ OPC_RecordChild1, // #1 = $vs ++/* 53753*/ OPC_CheckType, MVT::v4i64, ++/* 53755*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 53757*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v4i64] } (xor:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } immAllOnesV:{ *:[v8i32] }), (shl:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] }))<>, (and:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] }))<>, v4i64:{ *:[v4i64] }:$vt))), v4i64:{ *:[v4i64] }:$vs) - Complexity = 33 ++ // Dst: (XVBITCLR_D:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vs, v4i64:{ *:[v4i64] }:$vt) ++/* 53765*/ 0, /*End of Scope*/ ++/* 53766*/ 0, // EndSwitchOpcode ++/* 53767*/ /*Scope*/ 82|128,1/*210*/, /*->53979*/ ++/* 53769*/ OPC_RecordChild0, // #0 = $vj ++/* 53770*/ OPC_MoveChild1, ++/* 53771*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 53774*/ OPC_MoveChild0, ++/* 53775*/ OPC_SwitchOpcode /*2 cases */, 2|128,1/*130*/, TARGET_VAL(ISD::SHL),// ->53910 ++/* 53780*/ OPC_MoveChild0, ++/* 53781*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 53784*/ OPC_Scope, 61, /*->53847*/ // 2 children in Scope ++/* 53786*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 53788*/ OPC_MoveParent, ++/* 53789*/ OPC_RecordChild1, // #1 = $vk ++/* 53790*/ OPC_CheckChild1Type, MVT::v4i32, ++/* 53792*/ OPC_MoveParent, ++/* 53793*/ OPC_MoveChild1, ++/* 53794*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 53797*/ OPC_MoveChild0, ++/* 53798*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 53801*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 53803*/ OPC_CheckType, MVT::i32, ++/* 53805*/ OPC_MoveParent, ++/* 53806*/ OPC_MoveChild1, ++/* 53807*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 53810*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 53812*/ OPC_CheckType, MVT::i32, ++/* 53814*/ OPC_MoveParent, ++/* 53815*/ OPC_MoveChild2, ++/* 53816*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 53819*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 53821*/ OPC_CheckType, MVT::i32, ++/* 53823*/ OPC_MoveParent, ++/* 53824*/ OPC_MoveChild3, ++/* 53825*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 53828*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 53830*/ OPC_CheckType, MVT::i32, ++/* 53832*/ OPC_MoveParent, ++/* 53833*/ OPC_MoveParent, ++/* 53834*/ OPC_MoveParent, ++/* 53835*/ OPC_CheckType, MVT::v4i32, ++/* 53837*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 53839*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vj, (xor:{ *:[v4i32] } (shl:{ *:[v4i32] } (build_vector:{ *:[v4i32] })<>, v4i32:{ *:[v4i32] }:$vk), (build_vector:{ *:[v4i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))) - Complexity = 32 ++ // Dst: (VBITCLR_W:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vj, v4i32:{ *:[v4i32] }:$vk) ++/* 53847*/ /*Scope*/ 61, /*->53909*/ ++/* 53848*/ OPC_CheckPredicate, 42, // Predicate_xvsplat_imm_eq_1 ++/* 53850*/ OPC_MoveParent, ++/* 53851*/ OPC_RecordChild1, // #1 = $xk ++/* 53852*/ OPC_CheckChild1Type, MVT::v4i64, ++/* 53854*/ OPC_MoveParent, ++/* 53855*/ OPC_MoveChild1, ++/* 53856*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 53859*/ OPC_MoveChild0, ++/* 53860*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 53863*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 53865*/ OPC_CheckType, MVT::i64, ++/* 53867*/ OPC_MoveParent, ++/* 53868*/ OPC_MoveChild1, ++/* 53869*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 53872*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 53874*/ OPC_CheckType, MVT::i64, ++/* 53876*/ OPC_MoveParent, ++/* 53877*/ OPC_MoveChild2, ++/* 53878*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 53881*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 53883*/ OPC_CheckType, MVT::i64, ++/* 53885*/ OPC_MoveParent, ++/* 53886*/ OPC_MoveChild3, ++/* 53887*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 53890*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 53892*/ OPC_CheckType, MVT::i64, ++/* 53894*/ OPC_MoveParent, ++/* 53895*/ OPC_MoveParent, ++/* 53896*/ OPC_MoveParent, ++/* 53897*/ OPC_CheckType, MVT::v4i64, ++/* 53899*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 53901*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$xj, (xor:{ *:[v4i64] } (shl:{ *:[v4i64] } (build_vector:{ *:[v4i64] })<>, v4i64:{ *:[v4i64] }:$xk), (build_vector:{ *:[v4i64] } (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>))) - Complexity = 32 ++ // Dst: (XVBITCLR_D:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$xj, v4i64:{ *:[v4i64] }:$xk) ++/* 53909*/ 0, /*End of Scope*/ ++/* 53910*/ /*SwitchOpcode*/ 65, TARGET_VAL(ISD::BUILD_VECTOR),// ->53978 ++/* 53913*/ OPC_MoveChild0, ++/* 53914*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 53917*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 53919*/ OPC_CheckType, MVT::i32, ++/* 53921*/ OPC_MoveParent, ++/* 53922*/ OPC_MoveChild1, ++/* 53923*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 53926*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 53928*/ OPC_CheckType, MVT::i32, ++/* 53930*/ OPC_MoveParent, ++/* 53931*/ OPC_MoveChild2, ++/* 53932*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 53935*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 53937*/ OPC_CheckType, MVT::i32, ++/* 53939*/ OPC_MoveParent, ++/* 53940*/ OPC_MoveChild3, ++/* 53941*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 53944*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 53946*/ OPC_CheckType, MVT::i32, ++/* 53948*/ OPC_MoveParent, ++/* 53949*/ OPC_MoveParent, ++/* 53950*/ OPC_MoveChild1, ++/* 53951*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 53954*/ OPC_MoveChild0, ++/* 53955*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 53958*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 53960*/ OPC_MoveParent, ++/* 53961*/ OPC_RecordChild1, // #1 = $vk ++/* 53962*/ OPC_CheckChild1Type, MVT::v4i32, ++/* 53964*/ OPC_MoveParent, ++/* 53965*/ OPC_MoveParent, ++/* 53966*/ OPC_CheckType, MVT::v4i32, ++/* 53968*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 53970*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vj, (xor:{ *:[v4i32] } (build_vector:{ *:[v4i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), (shl:{ *:[v4i32] } (build_vector:{ *:[v4i32] })<>, v4i32:{ *:[v4i32] }:$vk))) - Complexity = 32 ++ // Dst: (VBITCLR_W:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vj, v4i32:{ *:[v4i32] }:$vk) ++/* 53978*/ 0, // EndSwitchOpcode ++/* 53979*/ /*Scope*/ 17|128,1/*145*/, /*->54126*/ ++/* 53981*/ OPC_MoveChild0, ++/* 53982*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 53985*/ OPC_MoveChild0, ++/* 53986*/ OPC_SwitchOpcode /*2 cases */, 66, TARGET_VAL(ISD::SHL),// ->54056 ++/* 53990*/ OPC_MoveChild0, ++/* 53991*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 53994*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 53996*/ OPC_MoveParent, ++/* 53997*/ OPC_RecordChild1, // #0 = $vk ++/* 53998*/ OPC_CheckChild1Type, MVT::v4i32, ++/* 54000*/ OPC_MoveParent, ++/* 54001*/ OPC_MoveChild1, ++/* 54002*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 54005*/ OPC_MoveChild0, ++/* 54006*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54009*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 54011*/ OPC_CheckType, MVT::i32, ++/* 54013*/ OPC_MoveParent, ++/* 54014*/ OPC_MoveChild1, ++/* 54015*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54018*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 54020*/ OPC_CheckType, MVT::i32, ++/* 54022*/ OPC_MoveParent, ++/* 54023*/ OPC_MoveChild2, ++/* 54024*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54027*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 54029*/ OPC_CheckType, MVT::i32, ++/* 54031*/ OPC_MoveParent, ++/* 54032*/ OPC_MoveChild3, ++/* 54033*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54036*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 54038*/ OPC_CheckType, MVT::i32, ++/* 54040*/ OPC_MoveParent, ++/* 54041*/ OPC_MoveParent, ++/* 54042*/ OPC_MoveParent, ++/* 54043*/ OPC_RecordChild1, // #1 = $vj ++/* 54044*/ OPC_CheckType, MVT::v4i32, ++/* 54046*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 54048*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v4i32] } (xor:{ *:[v4i32] } (shl:{ *:[v4i32] } (build_vector:{ *:[v4i32] })<>, v4i32:{ *:[v4i32] }:$vk), (build_vector:{ *:[v4i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>)), v4i32:{ *:[v4i32] }:$vj) - Complexity = 32 ++ // Dst: (VBITCLR_W:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vj, v4i32:{ *:[v4i32] }:$vk) ++/* 54056*/ /*SwitchOpcode*/ 66, TARGET_VAL(ISD::BUILD_VECTOR),// ->54125 ++/* 54059*/ OPC_MoveChild0, ++/* 54060*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54063*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 54065*/ OPC_CheckType, MVT::i32, ++/* 54067*/ OPC_MoveParent, ++/* 54068*/ OPC_MoveChild1, ++/* 54069*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54072*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 54074*/ OPC_CheckType, MVT::i32, ++/* 54076*/ OPC_MoveParent, ++/* 54077*/ OPC_MoveChild2, ++/* 54078*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54081*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 54083*/ OPC_CheckType, MVT::i32, ++/* 54085*/ OPC_MoveParent, ++/* 54086*/ OPC_MoveChild3, ++/* 54087*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54090*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 54092*/ OPC_CheckType, MVT::i32, ++/* 54094*/ OPC_MoveParent, ++/* 54095*/ OPC_MoveParent, ++/* 54096*/ OPC_MoveChild1, ++/* 54097*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 54100*/ OPC_MoveChild0, ++/* 54101*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 54104*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 54106*/ OPC_MoveParent, ++/* 54107*/ OPC_RecordChild1, // #0 = $vk ++/* 54108*/ OPC_CheckChild1Type, MVT::v4i32, ++/* 54110*/ OPC_MoveParent, ++/* 54111*/ OPC_MoveParent, ++/* 54112*/ OPC_RecordChild1, // #1 = $vj ++/* 54113*/ OPC_CheckType, MVT::v4i32, ++/* 54115*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 54117*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v4i32] } (xor:{ *:[v4i32] } (build_vector:{ *:[v4i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), (shl:{ *:[v4i32] } (build_vector:{ *:[v4i32] })<>, v4i32:{ *:[v4i32] }:$vk)), v4i32:{ *:[v4i32] }:$vj) - Complexity = 32 ++ // Dst: (VBITCLR_W:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vj, v4i32:{ *:[v4i32] }:$vk) ++/* 54125*/ 0, // EndSwitchOpcode ++/* 54126*/ /*Scope*/ 74, /*->54201*/ ++/* 54127*/ OPC_RecordChild0, // #0 = $xj ++/* 54128*/ OPC_MoveChild1, ++/* 54129*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 54132*/ OPC_MoveChild0, ++/* 54133*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 54136*/ OPC_MoveChild0, ++/* 54137*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54140*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 54142*/ OPC_CheckType, MVT::i64, ++/* 54144*/ OPC_MoveParent, ++/* 54145*/ OPC_MoveChild1, ++/* 54146*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54149*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 54151*/ OPC_CheckType, MVT::i64, ++/* 54153*/ OPC_MoveParent, ++/* 54154*/ OPC_MoveChild2, ++/* 54155*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54158*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 54160*/ OPC_CheckType, MVT::i64, ++/* 54162*/ OPC_MoveParent, ++/* 54163*/ OPC_MoveChild3, ++/* 54164*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54167*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 54169*/ OPC_CheckType, MVT::i64, ++/* 54171*/ OPC_MoveParent, ++/* 54172*/ OPC_MoveParent, ++/* 54173*/ OPC_MoveChild1, ++/* 54174*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 54177*/ OPC_MoveChild0, ++/* 54178*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 54181*/ OPC_CheckPredicate, 42, // Predicate_xvsplat_imm_eq_1 ++/* 54183*/ OPC_MoveParent, ++/* 54184*/ OPC_RecordChild1, // #1 = $xk ++/* 54185*/ OPC_CheckChild1Type, MVT::v4i64, ++/* 54187*/ OPC_MoveParent, ++/* 54188*/ OPC_MoveParent, ++/* 54189*/ OPC_CheckType, MVT::v4i64, ++/* 54191*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 54193*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$xj, (xor:{ *:[v4i64] } (build_vector:{ *:[v4i64] } (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>), (shl:{ *:[v4i64] } (build_vector:{ *:[v4i64] })<>, v4i64:{ *:[v4i64] }:$xk))) - Complexity = 32 ++ // Dst: (XVBITCLR_D:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$xj, v4i64:{ *:[v4i64] }:$xk) ++/* 54201*/ /*Scope*/ 56|128,2/*312*/, /*->54515*/ ++/* 54203*/ OPC_MoveChild0, ++/* 54204*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 54207*/ OPC_Scope, 13|128,1/*141*/, /*->54351*/ // 3 children in Scope ++/* 54210*/ OPC_MoveChild0, ++/* 54211*/ OPC_SwitchOpcode /*2 cases */, 66, TARGET_VAL(ISD::SHL),// ->54281 ++/* 54215*/ OPC_MoveChild0, ++/* 54216*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 54219*/ OPC_CheckPredicate, 42, // Predicate_xvsplat_imm_eq_1 ++/* 54221*/ OPC_MoveParent, ++/* 54222*/ OPC_RecordChild1, // #0 = $xk ++/* 54223*/ OPC_CheckChild1Type, MVT::v4i64, ++/* 54225*/ OPC_MoveParent, ++/* 54226*/ OPC_MoveChild1, ++/* 54227*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 54230*/ OPC_MoveChild0, ++/* 54231*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54234*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 54236*/ OPC_CheckType, MVT::i64, ++/* 54238*/ OPC_MoveParent, ++/* 54239*/ OPC_MoveChild1, ++/* 54240*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54243*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 54245*/ OPC_CheckType, MVT::i64, ++/* 54247*/ OPC_MoveParent, ++/* 54248*/ OPC_MoveChild2, ++/* 54249*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54252*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 54254*/ OPC_CheckType, MVT::i64, ++/* 54256*/ OPC_MoveParent, ++/* 54257*/ OPC_MoveChild3, ++/* 54258*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54261*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 54263*/ OPC_CheckType, MVT::i64, ++/* 54265*/ OPC_MoveParent, ++/* 54266*/ OPC_MoveParent, ++/* 54267*/ OPC_MoveParent, ++/* 54268*/ OPC_RecordChild1, // #1 = $xj ++/* 54269*/ OPC_CheckType, MVT::v4i64, ++/* 54271*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 54273*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v4i64] } (xor:{ *:[v4i64] } (shl:{ *:[v4i64] } (build_vector:{ *:[v4i64] })<>, v4i64:{ *:[v4i64] }:$xk), (build_vector:{ *:[v4i64] } (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>)), v4i64:{ *:[v4i64] }:$xj) - Complexity = 32 ++ // Dst: (XVBITCLR_D:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$xj, v4i64:{ *:[v4i64] }:$xk) ++/* 54281*/ /*SwitchOpcode*/ 66, TARGET_VAL(ISD::BUILD_VECTOR),// ->54350 ++/* 54284*/ OPC_MoveChild0, ++/* 54285*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54288*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 54290*/ OPC_CheckType, MVT::i64, ++/* 54292*/ OPC_MoveParent, ++/* 54293*/ OPC_MoveChild1, ++/* 54294*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54297*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 54299*/ OPC_CheckType, MVT::i64, ++/* 54301*/ OPC_MoveParent, ++/* 54302*/ OPC_MoveChild2, ++/* 54303*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54306*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 54308*/ OPC_CheckType, MVT::i64, ++/* 54310*/ OPC_MoveParent, ++/* 54311*/ OPC_MoveChild3, ++/* 54312*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54315*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 54317*/ OPC_CheckType, MVT::i64, ++/* 54319*/ OPC_MoveParent, ++/* 54320*/ OPC_MoveParent, ++/* 54321*/ OPC_MoveChild1, ++/* 54322*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 54325*/ OPC_MoveChild0, ++/* 54326*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 54329*/ OPC_CheckPredicate, 42, // Predicate_xvsplat_imm_eq_1 ++/* 54331*/ OPC_MoveParent, ++/* 54332*/ OPC_RecordChild1, // #0 = $xk ++/* 54333*/ OPC_CheckChild1Type, MVT::v4i64, ++/* 54335*/ OPC_MoveParent, ++/* 54336*/ OPC_MoveParent, ++/* 54337*/ OPC_RecordChild1, // #1 = $xj ++/* 54338*/ OPC_CheckType, MVT::v4i64, ++/* 54340*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 54342*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v4i64] } (xor:{ *:[v4i64] } (build_vector:{ *:[v4i64] } (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>), (shl:{ *:[v4i64] } (build_vector:{ *:[v4i64] })<>, v4i64:{ *:[v4i64] }:$xk)), v4i64:{ *:[v4i64] }:$xj) - Complexity = 32 ++ // Dst: (XVBITCLR_D:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$xj, v4i64:{ *:[v4i64] }:$xk) ++/* 54350*/ 0, // EndSwitchOpcode ++/* 54351*/ /*Scope*/ 105, /*->54457*/ ++/* 54352*/ OPC_RecordChild0, // #0 = $vj ++/* 54353*/ OPC_MoveChild1, ++/* 54354*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 54357*/ OPC_MoveChild0, ++/* 54358*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54361*/ OPC_SwitchType /*2 cases */, 45, MVT::i32,// ->54409 ++/* 54364*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 54366*/ OPC_MoveParent, ++/* 54367*/ OPC_MoveChild1, ++/* 54368*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54371*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 54373*/ OPC_CheckType, MVT::i32, ++/* 54375*/ OPC_MoveParent, ++/* 54376*/ OPC_MoveChild2, ++/* 54377*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54380*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 54382*/ OPC_CheckType, MVT::i32, ++/* 54384*/ OPC_MoveParent, ++/* 54385*/ OPC_MoveChild3, ++/* 54386*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54389*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 54391*/ OPC_CheckType, MVT::i32, ++/* 54393*/ OPC_MoveParent, ++/* 54394*/ OPC_MoveParent, ++/* 54395*/ OPC_MoveParent, ++/* 54396*/ OPC_RecordChild1, // #1 = $vk ++/* 54397*/ OPC_CheckType, MVT::v4i32, ++/* 54399*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 54401*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VANDN_W_PSEUDO), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v4i32] } (xor:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vj, (build_vector:{ *:[v4i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>)), LSX128W:{ *:[v4i32] }:$vk) - Complexity = 25 ++ // Dst: (VANDN_W_PSEUDO:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) ++/* 54409*/ /*SwitchType*/ 45, MVT::i64,// ->54456 ++/* 54411*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 54413*/ OPC_MoveParent, ++/* 54414*/ OPC_MoveChild1, ++/* 54415*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54418*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 54420*/ OPC_CheckType, MVT::i64, ++/* 54422*/ OPC_MoveParent, ++/* 54423*/ OPC_MoveChild2, ++/* 54424*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54427*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 54429*/ OPC_CheckType, MVT::i64, ++/* 54431*/ OPC_MoveParent, ++/* 54432*/ OPC_MoveChild3, ++/* 54433*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54436*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 54438*/ OPC_CheckType, MVT::i64, ++/* 54440*/ OPC_MoveParent, ++/* 54441*/ OPC_MoveParent, ++/* 54442*/ OPC_MoveParent, ++/* 54443*/ OPC_RecordChild1, // #1 = $xk ++/* 54444*/ OPC_CheckType, MVT::v4i64, ++/* 54446*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 54448*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVANDN_D_PSEUDO), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v4i64] } (xor:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$xj, (build_vector:{ *:[v4i64] } (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>)), LASX256D:{ *:[v4i64] }:$xk) - Complexity = 25 ++ // Dst: (XVANDN_D_PSEUDO:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) ++/* 54456*/ 0, // EndSwitchType ++/* 54457*/ /*Scope*/ 56, /*->54514*/ ++/* 54458*/ OPC_MoveChild0, ++/* 54459*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 54462*/ OPC_MoveChild0, ++/* 54463*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54466*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 54468*/ OPC_CheckType, MVT::i32, ++/* 54470*/ OPC_MoveParent, ++/* 54471*/ OPC_MoveChild1, ++/* 54472*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54475*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 54477*/ OPC_CheckType, MVT::i32, ++/* 54479*/ OPC_MoveParent, ++/* 54480*/ OPC_MoveChild2, ++/* 54481*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54484*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 54486*/ OPC_CheckType, MVT::i32, ++/* 54488*/ OPC_MoveParent, ++/* 54489*/ OPC_MoveChild3, ++/* 54490*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54493*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 54495*/ OPC_CheckType, MVT::i32, ++/* 54497*/ OPC_MoveParent, ++/* 54498*/ OPC_MoveParent, ++/* 54499*/ OPC_RecordChild1, // #0 = $vj ++/* 54500*/ OPC_MoveParent, ++/* 54501*/ OPC_RecordChild1, // #1 = $vk ++/* 54502*/ OPC_CheckType, MVT::v4i32, ++/* 54504*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 54506*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VANDN_W_PSEUDO), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v4i32] } (xor:{ *:[v4i32] } (build_vector:{ *:[v4i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), LSX128W:{ *:[v4i32] }:$vj), LSX128W:{ *:[v4i32] }:$vk) - Complexity = 25 ++ // Dst: (VANDN_W_PSEUDO:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) ++/* 54514*/ 0, /*End of Scope*/ ++/* 54515*/ /*Scope*/ 119, /*->54635*/ ++/* 54516*/ OPC_RecordChild0, // #0 = $vk ++/* 54517*/ OPC_MoveChild1, ++/* 54518*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 54521*/ OPC_Scope, 55, /*->54578*/ // 2 children in Scope ++/* 54523*/ OPC_RecordChild0, // #1 = $vj ++/* 54524*/ OPC_MoveChild1, ++/* 54525*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 54528*/ OPC_MoveChild0, ++/* 54529*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54532*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 54534*/ OPC_CheckType, MVT::i32, ++/* 54536*/ OPC_MoveParent, ++/* 54537*/ OPC_MoveChild1, ++/* 54538*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54541*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 54543*/ OPC_CheckType, MVT::i32, ++/* 54545*/ OPC_MoveParent, ++/* 54546*/ OPC_MoveChild2, ++/* 54547*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54550*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 54552*/ OPC_CheckType, MVT::i32, ++/* 54554*/ OPC_MoveParent, ++/* 54555*/ OPC_MoveChild3, ++/* 54556*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54559*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 54561*/ OPC_CheckType, MVT::i32, ++/* 54563*/ OPC_MoveParent, ++/* 54564*/ OPC_MoveParent, ++/* 54565*/ OPC_MoveParent, ++/* 54566*/ OPC_CheckType, MVT::v4i32, ++/* 54568*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 54570*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VANDN_W_PSEUDO), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vk, (xor:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vj, (build_vector:{ *:[v4i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))) - Complexity = 25 ++ // Dst: (VANDN_W_PSEUDO:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) ++/* 54578*/ /*Scope*/ 55, /*->54634*/ ++/* 54579*/ OPC_MoveChild0, ++/* 54580*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 54583*/ OPC_MoveChild0, ++/* 54584*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54587*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 54589*/ OPC_CheckType, MVT::i32, ++/* 54591*/ OPC_MoveParent, ++/* 54592*/ OPC_MoveChild1, ++/* 54593*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54596*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 54598*/ OPC_CheckType, MVT::i32, ++/* 54600*/ OPC_MoveParent, ++/* 54601*/ OPC_MoveChild2, ++/* 54602*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54605*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 54607*/ OPC_CheckType, MVT::i32, ++/* 54609*/ OPC_MoveParent, ++/* 54610*/ OPC_MoveChild3, ++/* 54611*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54614*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 54616*/ OPC_CheckType, MVT::i32, ++/* 54618*/ OPC_MoveParent, ++/* 54619*/ OPC_MoveParent, ++/* 54620*/ OPC_RecordChild1, // #1 = $vj ++/* 54621*/ OPC_MoveParent, ++/* 54622*/ OPC_CheckType, MVT::v4i32, ++/* 54624*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 54626*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VANDN_W_PSEUDO), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vk, (xor:{ *:[v4i32] } (build_vector:{ *:[v4i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), LSX128W:{ *:[v4i32] }:$vj)) - Complexity = 25 ++ // Dst: (VANDN_W_PSEUDO:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) ++/* 54634*/ 0, /*End of Scope*/ ++/* 54635*/ /*Scope*/ 60, /*->54696*/ ++/* 54636*/ OPC_MoveChild0, ++/* 54637*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 54640*/ OPC_MoveChild0, ++/* 54641*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 54644*/ OPC_MoveChild0, ++/* 54645*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54648*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 54650*/ OPC_CheckType, MVT::i64, ++/* 54652*/ OPC_MoveParent, ++/* 54653*/ OPC_MoveChild1, ++/* 54654*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54657*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 54659*/ OPC_CheckType, MVT::i64, ++/* 54661*/ OPC_MoveParent, ++/* 54662*/ OPC_MoveChild2, ++/* 54663*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54666*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 54668*/ OPC_CheckType, MVT::i64, ++/* 54670*/ OPC_MoveParent, ++/* 54671*/ OPC_MoveChild3, ++/* 54672*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54675*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 54677*/ OPC_CheckType, MVT::i64, ++/* 54679*/ OPC_MoveParent, ++/* 54680*/ OPC_MoveParent, ++/* 54681*/ OPC_RecordChild1, // #0 = $xj ++/* 54682*/ OPC_MoveParent, ++/* 54683*/ OPC_RecordChild1, // #1 = $xk ++/* 54684*/ OPC_CheckType, MVT::v4i64, ++/* 54686*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 54688*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVANDN_D_PSEUDO), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v4i64] } (xor:{ *:[v4i64] } (build_vector:{ *:[v4i64] } (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>), LASX256D:{ *:[v4i64] }:$xj), LASX256D:{ *:[v4i64] }:$xk) - Complexity = 25 ++ // Dst: (XVANDN_D_PSEUDO:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) ++/* 54696*/ /*Scope*/ 77|128,1/*205*/, /*->54903*/ ++/* 54698*/ OPC_RecordChild0, // #0 = $xk ++/* 54699*/ OPC_MoveChild1, ++/* 54700*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 54703*/ OPC_Scope, 55, /*->54760*/ // 2 children in Scope ++/* 54705*/ OPC_RecordChild0, // #1 = $xj ++/* 54706*/ OPC_MoveChild1, ++/* 54707*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 54710*/ OPC_MoveChild0, ++/* 54711*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54714*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 54716*/ OPC_CheckType, MVT::i64, ++/* 54718*/ OPC_MoveParent, ++/* 54719*/ OPC_MoveChild1, ++/* 54720*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54723*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 54725*/ OPC_CheckType, MVT::i64, ++/* 54727*/ OPC_MoveParent, ++/* 54728*/ OPC_MoveChild2, ++/* 54729*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54732*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 54734*/ OPC_CheckType, MVT::i64, ++/* 54736*/ OPC_MoveParent, ++/* 54737*/ OPC_MoveChild3, ++/* 54738*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54741*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 54743*/ OPC_CheckType, MVT::i64, ++/* 54745*/ OPC_MoveParent, ++/* 54746*/ OPC_MoveParent, ++/* 54747*/ OPC_MoveParent, ++/* 54748*/ OPC_CheckType, MVT::v4i64, ++/* 54750*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 54752*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVANDN_D_PSEUDO), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$xk, (xor:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$xj, (build_vector:{ *:[v4i64] } (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>))) - Complexity = 25 ++ // Dst: (XVANDN_D_PSEUDO:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) ++/* 54760*/ /*Scope*/ 12|128,1/*140*/, /*->54902*/ ++/* 54762*/ OPC_MoveChild0, ++/* 54763*/ OPC_SwitchOpcode /*2 cases */, 84, TARGET_VAL(ISD::BUILD_VECTOR),// ->54851 ++/* 54767*/ OPC_MoveChild0, ++/* 54768*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54771*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 54773*/ OPC_CheckType, MVT::i64, ++/* 54775*/ OPC_MoveParent, ++/* 54776*/ OPC_MoveChild1, ++/* 54777*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54780*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 54782*/ OPC_CheckType, MVT::i64, ++/* 54784*/ OPC_MoveParent, ++/* 54785*/ OPC_Scope, 33, /*->54820*/ // 2 children in Scope ++/* 54787*/ OPC_MoveChild2, ++/* 54788*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54791*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 54793*/ OPC_CheckType, MVT::i64, ++/* 54795*/ OPC_MoveParent, ++/* 54796*/ OPC_MoveChild3, ++/* 54797*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54800*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 54802*/ OPC_CheckType, MVT::i64, ++/* 54804*/ OPC_MoveParent, ++/* 54805*/ OPC_MoveParent, ++/* 54806*/ OPC_RecordChild1, // #1 = $xj ++/* 54807*/ OPC_MoveParent, ++/* 54808*/ OPC_CheckType, MVT::v4i64, ++/* 54810*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 54812*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVANDN_D_PSEUDO), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$xk, (xor:{ *:[v4i64] } (build_vector:{ *:[v4i64] } (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>), LASX256D:{ *:[v4i64] }:$xj)) - Complexity = 25 ++ // Dst: (XVANDN_D_PSEUDO:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) ++/* 54820*/ /*Scope*/ 29, /*->54850*/ ++/* 54821*/ OPC_MoveParent, ++/* 54822*/ OPC_MoveChild1, ++/* 54823*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 54826*/ OPC_MoveChild0, ++/* 54827*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 54830*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 54832*/ OPC_MoveParent, ++/* 54833*/ OPC_RecordChild1, // #1 = $vk ++/* 54834*/ OPC_CheckChild1Type, MVT::v2i64, ++/* 54836*/ OPC_MoveParent, ++/* 54837*/ OPC_MoveParent, ++/* 54838*/ OPC_CheckType, MVT::v2i64, ++/* 54840*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 54842*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vj, (xor:{ *:[v2i64] } (build_vector:{ *:[v2i64] } (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>), (shl:{ *:[v2i64] } (build_vector:{ *:[v2i64] })<>, v2i64:{ *:[v2i64] }:$vk))) - Complexity = 24 ++ // Dst: (VBITCLR_D:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vj, v2i64:{ *:[v2i64] }:$vk) ++/* 54850*/ 0, /*End of Scope*/ ++/* 54851*/ /*SwitchOpcode*/ 47, TARGET_VAL(ISD::SHL),// ->54901 ++/* 54854*/ OPC_MoveChild0, ++/* 54855*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 54858*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 54860*/ OPC_MoveParent, ++/* 54861*/ OPC_RecordChild1, // #1 = $vk ++/* 54862*/ OPC_CheckChild1Type, MVT::v2i64, ++/* 54864*/ OPC_MoveParent, ++/* 54865*/ OPC_MoveChild1, ++/* 54866*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 54869*/ OPC_MoveChild0, ++/* 54870*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54873*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 54875*/ OPC_CheckType, MVT::i64, ++/* 54877*/ OPC_MoveParent, ++/* 54878*/ OPC_MoveChild1, ++/* 54879*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54882*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 54884*/ OPC_CheckType, MVT::i64, ++/* 54886*/ OPC_MoveParent, ++/* 54887*/ OPC_MoveParent, ++/* 54888*/ OPC_MoveParent, ++/* 54889*/ OPC_CheckType, MVT::v2i64, ++/* 54891*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 54893*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vj, (xor:{ *:[v2i64] } (shl:{ *:[v2i64] } (build_vector:{ *:[v2i64] })<>, v2i64:{ *:[v2i64] }:$vk), (build_vector:{ *:[v2i64] } (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>))) - Complexity = 24 ++ // Dst: (VBITCLR_D:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vj, v2i64:{ *:[v2i64] }:$vk) ++/* 54901*/ 0, // EndSwitchOpcode ++/* 54902*/ 0, /*End of Scope*/ ++/* 54903*/ /*Scope*/ 109, /*->55013*/ ++/* 54904*/ OPC_MoveChild0, ++/* 54905*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 54908*/ OPC_MoveChild0, ++/* 54909*/ OPC_SwitchOpcode /*2 cases */, 48, TARGET_VAL(ISD::SHL),// ->54961 ++/* 54913*/ OPC_MoveChild0, ++/* 54914*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 54917*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 54919*/ OPC_MoveParent, ++/* 54920*/ OPC_RecordChild1, // #0 = $vk ++/* 54921*/ OPC_CheckChild1Type, MVT::v2i64, ++/* 54923*/ OPC_MoveParent, ++/* 54924*/ OPC_MoveChild1, ++/* 54925*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 54928*/ OPC_MoveChild0, ++/* 54929*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54932*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 54934*/ OPC_CheckType, MVT::i64, ++/* 54936*/ OPC_MoveParent, ++/* 54937*/ OPC_MoveChild1, ++/* 54938*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54941*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 54943*/ OPC_CheckType, MVT::i64, ++/* 54945*/ OPC_MoveParent, ++/* 54946*/ OPC_MoveParent, ++/* 54947*/ OPC_MoveParent, ++/* 54948*/ OPC_RecordChild1, // #1 = $vj ++/* 54949*/ OPC_CheckType, MVT::v2i64, ++/* 54951*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 54953*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v2i64] } (xor:{ *:[v2i64] } (shl:{ *:[v2i64] } (build_vector:{ *:[v2i64] })<>, v2i64:{ *:[v2i64] }:$vk), (build_vector:{ *:[v2i64] } (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>)), v2i64:{ *:[v2i64] }:$vj) - Complexity = 24 ++ // Dst: (VBITCLR_D:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vj, v2i64:{ *:[v2i64] }:$vk) ++/* 54961*/ /*SwitchOpcode*/ 48, TARGET_VAL(ISD::BUILD_VECTOR),// ->55012 ++/* 54964*/ OPC_MoveChild0, ++/* 54965*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54968*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 54970*/ OPC_CheckType, MVT::i64, ++/* 54972*/ OPC_MoveParent, ++/* 54973*/ OPC_MoveChild1, ++/* 54974*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 54977*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 54979*/ OPC_CheckType, MVT::i64, ++/* 54981*/ OPC_MoveParent, ++/* 54982*/ OPC_MoveParent, ++/* 54983*/ OPC_MoveChild1, ++/* 54984*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 54987*/ OPC_MoveChild0, ++/* 54988*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 54991*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 54993*/ OPC_MoveParent, ++/* 54994*/ OPC_RecordChild1, // #0 = $vk ++/* 54995*/ OPC_CheckChild1Type, MVT::v2i64, ++/* 54997*/ OPC_MoveParent, ++/* 54998*/ OPC_MoveParent, ++/* 54999*/ OPC_RecordChild1, // #1 = $vj ++/* 55000*/ OPC_CheckType, MVT::v2i64, ++/* 55002*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 55004*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v2i64] } (xor:{ *:[v2i64] } (build_vector:{ *:[v2i64] } (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>), (shl:{ *:[v2i64] } (build_vector:{ *:[v2i64] })<>, v2i64:{ *:[v2i64] }:$vk)), v2i64:{ *:[v2i64] }:$vj) - Complexity = 24 ++ // Dst: (VBITCLR_D:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vj, v2i64:{ *:[v2i64] }:$vk) ++/* 55012*/ 0, // EndSwitchOpcode ++/* 55013*/ /*Scope*/ 20|128,1/*148*/, /*->55163*/ ++/* 55015*/ OPC_RecordChild0, // #0 = $vj ++/* 55016*/ OPC_MoveChild1, ++/* 55017*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 55020*/ OPC_MoveChild0, ++/* 55021*/ OPC_SwitchOpcode /*2 cases */, 95, TARGET_VAL(ISD::SHL),// ->55120 ++/* 55025*/ OPC_MoveChild0, ++/* 55026*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 55029*/ OPC_MoveChild0, ++/* 55030*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 55033*/ OPC_CheckType, MVT::v4i32, ++/* 55035*/ OPC_MoveParent, ++/* 55036*/ OPC_CheckPredicate, 39, // Predicate_vsplati64_imm_eq_1 ++/* 55038*/ OPC_MoveParent, ++/* 55039*/ OPC_RecordChild1, // #1 = $vk ++/* 55040*/ OPC_Scope, 38, /*->55080*/ // 2 children in Scope ++/* 55042*/ OPC_CheckChild1Type, MVT::v2i64, ++/* 55044*/ OPC_MoveParent, ++/* 55045*/ OPC_MoveChild1, ++/* 55046*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 55049*/ OPC_MoveChild0, ++/* 55050*/ OPC_CheckImmAllOnesV, ++/* 55051*/ OPC_CheckType, MVT::v4i32, ++/* 55053*/ OPC_MoveParent, ++/* 55054*/ OPC_MoveParent, ++/* 55055*/ OPC_MoveParent, ++/* 55056*/ OPC_CheckType, MVT::v2i64, ++/* 55058*/ OPC_Scope, 8, /*->55068*/ // 2 children in Scope ++/* 55060*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, (xor:{ *:[v2i64] } (shl:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] }))<>, LSX128DOpnd:{ *:[v2i64] }:$vk), (bitconvert:{ *:[v2i64] } immAllOnesV:{ *:[v4i32] }))) - Complexity = 23 ++ // Dst: (VBITCLR_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 55068*/ /*Scope*/ 10, /*->55079*/ ++/* 55069*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 55071*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vj, (xor:{ *:[v2i64] } (shl:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] }))<>, v2i64:{ *:[v2i64] }:$vk), (bitconvert:{ *:[v2i64] } immAllOnesV:{ *:[v4i32] }))) - Complexity = 23 ++ // Dst: (VBITCLR_D:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vj, v2i64:{ *:[v2i64] }:$vk) ++/* 55079*/ 0, /*End of Scope*/ ++/* 55080*/ /*Scope*/ 38, /*->55119*/ ++/* 55081*/ OPC_CheckChild1Type, MVT::v4i64, ++/* 55083*/ OPC_MoveParent, ++/* 55084*/ OPC_MoveChild1, ++/* 55085*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 55088*/ OPC_MoveChild0, ++/* 55089*/ OPC_CheckImmAllOnesV, ++/* 55090*/ OPC_CheckType, MVT::v8i32, ++/* 55092*/ OPC_MoveParent, ++/* 55093*/ OPC_MoveParent, ++/* 55094*/ OPC_MoveParent, ++/* 55095*/ OPC_CheckType, MVT::v4i64, ++/* 55097*/ OPC_Scope, 8, /*->55107*/ // 2 children in Scope ++/* 55099*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, (xor:{ *:[v4i64] } (shl:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v4i32] }))<>, LASX256DOpnd:{ *:[v4i64] }:$xk), (bitconvert:{ *:[v4i64] } immAllOnesV:{ *:[v8i32] }))) - Complexity = 23 ++ // Dst: (XVBITCLR_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 55107*/ /*Scope*/ 10, /*->55118*/ ++/* 55108*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 55110*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vj, (xor:{ *:[v4i64] } (shl:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v4i32] }))<>, v4i64:{ *:[v4i64] }:$vk), (bitconvert:{ *:[v4i64] } immAllOnesV:{ *:[v8i32] }))) - Complexity = 23 ++ // Dst: (XVBITCLR_D:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vj, v4i64:{ *:[v4i64] }:$vk) ++/* 55118*/ 0, /*End of Scope*/ ++/* 55119*/ 0, /*End of Scope*/ ++/* 55120*/ /*SwitchOpcode*/ 39, TARGET_VAL(ISD::BITCAST),// ->55162 ++/* 55123*/ OPC_MoveChild0, ++/* 55124*/ OPC_CheckImmAllOnesV, ++/* 55125*/ OPC_CheckType, MVT::v4i32, ++/* 55127*/ OPC_MoveParent, ++/* 55128*/ OPC_MoveParent, ++/* 55129*/ OPC_MoveChild1, ++/* 55130*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 55133*/ OPC_MoveChild0, ++/* 55134*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 55137*/ OPC_MoveChild0, ++/* 55138*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 55141*/ OPC_CheckType, MVT::v4i32, ++/* 55143*/ OPC_MoveParent, ++/* 55144*/ OPC_CheckPredicate, 39, // Predicate_vsplati64_imm_eq_1 ++/* 55146*/ OPC_MoveParent, ++/* 55147*/ OPC_RecordChild1, // #1 = $vk ++/* 55148*/ OPC_CheckChild1Type, MVT::v2i64, ++/* 55150*/ OPC_MoveParent, ++/* 55151*/ OPC_MoveParent, ++/* 55152*/ OPC_CheckType, MVT::v2i64, ++/* 55154*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, (xor:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } immAllOnesV:{ *:[v4i32] }), (shl:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] }))<>, LSX128DOpnd:{ *:[v2i64] }:$vk))) - Complexity = 23 ++ // Dst: (VBITCLR_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 55162*/ 0, // EndSwitchOpcode ++/* 55163*/ /*Scope*/ 93, /*->55257*/ ++/* 55164*/ OPC_MoveChild0, ++/* 55165*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 55168*/ OPC_MoveChild0, ++/* 55169*/ OPC_SwitchOpcode /*2 cases */, 40, TARGET_VAL(ISD::SHL),// ->55213 ++/* 55173*/ OPC_MoveChild0, ++/* 55174*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 55177*/ OPC_MoveChild0, ++/* 55178*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 55181*/ OPC_CheckType, MVT::v4i32, ++/* 55183*/ OPC_MoveParent, ++/* 55184*/ OPC_CheckPredicate, 39, // Predicate_vsplati64_imm_eq_1 ++/* 55186*/ OPC_MoveParent, ++/* 55187*/ OPC_RecordChild1, // #0 = $vk ++/* 55188*/ OPC_CheckChild1Type, MVT::v2i64, ++/* 55190*/ OPC_MoveParent, ++/* 55191*/ OPC_MoveChild1, ++/* 55192*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 55195*/ OPC_MoveChild0, ++/* 55196*/ OPC_CheckImmAllOnesV, ++/* 55197*/ OPC_CheckType, MVT::v4i32, ++/* 55199*/ OPC_MoveParent, ++/* 55200*/ OPC_MoveParent, ++/* 55201*/ OPC_MoveParent, ++/* 55202*/ OPC_RecordChild1, // #1 = $vj ++/* 55203*/ OPC_CheckType, MVT::v2i64, ++/* 55205*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v2i64] } (xor:{ *:[v2i64] } (shl:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] }))<>, LSX128DOpnd:{ *:[v2i64] }:$vk), (bitconvert:{ *:[v2i64] } immAllOnesV:{ *:[v4i32] })), LSX128DOpnd:{ *:[v2i64] }:$vj) - Complexity = 23 ++ // Dst: (VBITCLR_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 55213*/ /*SwitchOpcode*/ 40, TARGET_VAL(ISD::BITCAST),// ->55256 ++/* 55216*/ OPC_MoveChild0, ++/* 55217*/ OPC_CheckImmAllOnesV, ++/* 55218*/ OPC_CheckType, MVT::v4i32, ++/* 55220*/ OPC_MoveParent, ++/* 55221*/ OPC_MoveParent, ++/* 55222*/ OPC_MoveChild1, ++/* 55223*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 55226*/ OPC_MoveChild0, ++/* 55227*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 55230*/ OPC_MoveChild0, ++/* 55231*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 55234*/ OPC_CheckType, MVT::v4i32, ++/* 55236*/ OPC_MoveParent, ++/* 55237*/ OPC_CheckPredicate, 39, // Predicate_vsplati64_imm_eq_1 ++/* 55239*/ OPC_MoveParent, ++/* 55240*/ OPC_RecordChild1, // #0 = $vk ++/* 55241*/ OPC_CheckChild1Type, MVT::v2i64, ++/* 55243*/ OPC_MoveParent, ++/* 55244*/ OPC_MoveParent, ++/* 55245*/ OPC_RecordChild1, // #1 = $vj ++/* 55246*/ OPC_CheckType, MVT::v2i64, ++/* 55248*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v2i64] } (xor:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } immAllOnesV:{ *:[v4i32] }), (shl:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] }))<>, LSX128DOpnd:{ *:[v2i64] }:$vk)), LSX128DOpnd:{ *:[v2i64] }:$vj) - Complexity = 23 ++ // Dst: (VBITCLR_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 55256*/ 0, // EndSwitchOpcode ++/* 55257*/ /*Scope*/ 48, /*->55306*/ ++/* 55258*/ OPC_RecordChild0, // #0 = $xj ++/* 55259*/ OPC_MoveChild1, ++/* 55260*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 55263*/ OPC_MoveChild0, ++/* 55264*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 55267*/ OPC_MoveChild0, ++/* 55268*/ OPC_CheckImmAllOnesV, ++/* 55269*/ OPC_CheckType, MVT::v8i32, ++/* 55271*/ OPC_MoveParent, ++/* 55272*/ OPC_MoveParent, ++/* 55273*/ OPC_MoveChild1, ++/* 55274*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 55277*/ OPC_MoveChild0, ++/* 55278*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 55281*/ OPC_MoveChild0, ++/* 55282*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 55285*/ OPC_CheckType, MVT::v4i32, ++/* 55287*/ OPC_MoveParent, ++/* 55288*/ OPC_CheckPredicate, 39, // Predicate_vsplati64_imm_eq_1 ++/* 55290*/ OPC_MoveParent, ++/* 55291*/ OPC_RecordChild1, // #1 = $xk ++/* 55292*/ OPC_CheckChild1Type, MVT::v4i64, ++/* 55294*/ OPC_MoveParent, ++/* 55295*/ OPC_MoveParent, ++/* 55296*/ OPC_CheckType, MVT::v4i64, ++/* 55298*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, (xor:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } immAllOnesV:{ *:[v8i32] }), (shl:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v4i32] }))<>, LASX256DOpnd:{ *:[v4i64] }:$xk))) - Complexity = 23 ++ // Dst: (XVBITCLR_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 55306*/ /*Scope*/ 93, /*->55400*/ ++/* 55307*/ OPC_MoveChild0, ++/* 55308*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 55311*/ OPC_MoveChild0, ++/* 55312*/ OPC_SwitchOpcode /*2 cases */, 40, TARGET_VAL(ISD::SHL),// ->55356 ++/* 55316*/ OPC_MoveChild0, ++/* 55317*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 55320*/ OPC_MoveChild0, ++/* 55321*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 55324*/ OPC_CheckType, MVT::v4i32, ++/* 55326*/ OPC_MoveParent, ++/* 55327*/ OPC_CheckPredicate, 39, // Predicate_vsplati64_imm_eq_1 ++/* 55329*/ OPC_MoveParent, ++/* 55330*/ OPC_RecordChild1, // #0 = $xk ++/* 55331*/ OPC_CheckChild1Type, MVT::v4i64, ++/* 55333*/ OPC_MoveParent, ++/* 55334*/ OPC_MoveChild1, ++/* 55335*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 55338*/ OPC_MoveChild0, ++/* 55339*/ OPC_CheckImmAllOnesV, ++/* 55340*/ OPC_CheckType, MVT::v8i32, ++/* 55342*/ OPC_MoveParent, ++/* 55343*/ OPC_MoveParent, ++/* 55344*/ OPC_MoveParent, ++/* 55345*/ OPC_RecordChild1, // #1 = $xj ++/* 55346*/ OPC_CheckType, MVT::v4i64, ++/* 55348*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v4i64] } (xor:{ *:[v4i64] } (shl:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v4i32] }))<>, LASX256DOpnd:{ *:[v4i64] }:$xk), (bitconvert:{ *:[v4i64] } immAllOnesV:{ *:[v8i32] })), LASX256DOpnd:{ *:[v4i64] }:$xj) - Complexity = 23 ++ // Dst: (XVBITCLR_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 55356*/ /*SwitchOpcode*/ 40, TARGET_VAL(ISD::BITCAST),// ->55399 ++/* 55359*/ OPC_MoveChild0, ++/* 55360*/ OPC_CheckImmAllOnesV, ++/* 55361*/ OPC_CheckType, MVT::v8i32, ++/* 55363*/ OPC_MoveParent, ++/* 55364*/ OPC_MoveParent, ++/* 55365*/ OPC_MoveChild1, ++/* 55366*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 55369*/ OPC_MoveChild0, ++/* 55370*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 55373*/ OPC_MoveChild0, ++/* 55374*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 55377*/ OPC_CheckType, MVT::v4i32, ++/* 55379*/ OPC_MoveParent, ++/* 55380*/ OPC_CheckPredicate, 39, // Predicate_vsplati64_imm_eq_1 ++/* 55382*/ OPC_MoveParent, ++/* 55383*/ OPC_RecordChild1, // #0 = $xk ++/* 55384*/ OPC_CheckChild1Type, MVT::v4i64, ++/* 55386*/ OPC_MoveParent, ++/* 55387*/ OPC_MoveParent, ++/* 55388*/ OPC_RecordChild1, // #1 = $xj ++/* 55389*/ OPC_CheckType, MVT::v4i64, ++/* 55391*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v4i64] } (xor:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } immAllOnesV:{ *:[v8i32] }), (shl:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v4i32] }))<>, LASX256DOpnd:{ *:[v4i64] }:$xk)), LASX256DOpnd:{ *:[v4i64] }:$xj) - Complexity = 23 ++ // Dst: (XVBITCLR_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 55399*/ 0, // EndSwitchOpcode ++/* 55400*/ /*Scope*/ 50, /*->55451*/ ++/* 55401*/ OPC_RecordChild0, // #0 = $vj ++/* 55402*/ OPC_MoveChild1, ++/* 55403*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 55406*/ OPC_MoveChild0, ++/* 55407*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 55410*/ OPC_MoveChild0, ++/* 55411*/ OPC_CheckImmAllOnesV, ++/* 55412*/ OPC_CheckType, MVT::v4i32, ++/* 55414*/ OPC_MoveParent, ++/* 55415*/ OPC_MoveParent, ++/* 55416*/ OPC_MoveChild1, ++/* 55417*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 55420*/ OPC_MoveChild0, ++/* 55421*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 55424*/ OPC_MoveChild0, ++/* 55425*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 55428*/ OPC_CheckType, MVT::v4i32, ++/* 55430*/ OPC_MoveParent, ++/* 55431*/ OPC_CheckPredicate, 39, // Predicate_vsplati64_imm_eq_1 ++/* 55433*/ OPC_MoveParent, ++/* 55434*/ OPC_RecordChild1, // #1 = $vk ++/* 55435*/ OPC_CheckChild1Type, MVT::v2i64, ++/* 55437*/ OPC_MoveParent, ++/* 55438*/ OPC_MoveParent, ++/* 55439*/ OPC_CheckType, MVT::v2i64, ++/* 55441*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 55443*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vj, (xor:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } immAllOnesV:{ *:[v4i32] }), (shl:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] }))<>, v2i64:{ *:[v2i64] }:$vk))) - Complexity = 23 ++ // Dst: (VBITCLR_D:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vj, v2i64:{ *:[v2i64] }:$vk) ++/* 55451*/ /*Scope*/ 97, /*->55549*/ ++/* 55452*/ OPC_MoveChild0, ++/* 55453*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 55456*/ OPC_MoveChild0, ++/* 55457*/ OPC_SwitchOpcode /*2 cases */, 42, TARGET_VAL(ISD::SHL),// ->55503 ++/* 55461*/ OPC_MoveChild0, ++/* 55462*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 55465*/ OPC_MoveChild0, ++/* 55466*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 55469*/ OPC_CheckType, MVT::v4i32, ++/* 55471*/ OPC_MoveParent, ++/* 55472*/ OPC_CheckPredicate, 39, // Predicate_vsplati64_imm_eq_1 ++/* 55474*/ OPC_MoveParent, ++/* 55475*/ OPC_RecordChild1, // #0 = $vk ++/* 55476*/ OPC_CheckChild1Type, MVT::v2i64, ++/* 55478*/ OPC_MoveParent, ++/* 55479*/ OPC_MoveChild1, ++/* 55480*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 55483*/ OPC_MoveChild0, ++/* 55484*/ OPC_CheckImmAllOnesV, ++/* 55485*/ OPC_CheckType, MVT::v4i32, ++/* 55487*/ OPC_MoveParent, ++/* 55488*/ OPC_MoveParent, ++/* 55489*/ OPC_MoveParent, ++/* 55490*/ OPC_RecordChild1, // #1 = $vj ++/* 55491*/ OPC_CheckType, MVT::v2i64, ++/* 55493*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 55495*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v2i64] } (xor:{ *:[v2i64] } (shl:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] }))<>, v2i64:{ *:[v2i64] }:$vk), (bitconvert:{ *:[v2i64] } immAllOnesV:{ *:[v4i32] })), v2i64:{ *:[v2i64] }:$vj) - Complexity = 23 ++ // Dst: (VBITCLR_D:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vj, v2i64:{ *:[v2i64] }:$vk) ++/* 55503*/ /*SwitchOpcode*/ 42, TARGET_VAL(ISD::BITCAST),// ->55548 ++/* 55506*/ OPC_MoveChild0, ++/* 55507*/ OPC_CheckImmAllOnesV, ++/* 55508*/ OPC_CheckType, MVT::v4i32, ++/* 55510*/ OPC_MoveParent, ++/* 55511*/ OPC_MoveParent, ++/* 55512*/ OPC_MoveChild1, ++/* 55513*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 55516*/ OPC_MoveChild0, ++/* 55517*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 55520*/ OPC_MoveChild0, ++/* 55521*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 55524*/ OPC_CheckType, MVT::v4i32, ++/* 55526*/ OPC_MoveParent, ++/* 55527*/ OPC_CheckPredicate, 39, // Predicate_vsplati64_imm_eq_1 ++/* 55529*/ OPC_MoveParent, ++/* 55530*/ OPC_RecordChild1, // #0 = $vk ++/* 55531*/ OPC_CheckChild1Type, MVT::v2i64, ++/* 55533*/ OPC_MoveParent, ++/* 55534*/ OPC_MoveParent, ++/* 55535*/ OPC_RecordChild1, // #1 = $vj ++/* 55536*/ OPC_CheckType, MVT::v2i64, ++/* 55538*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 55540*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v2i64] } (xor:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } immAllOnesV:{ *:[v4i32] }), (shl:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] }))<>, v2i64:{ *:[v2i64] }:$vk)), v2i64:{ *:[v2i64] }:$vj) - Complexity = 23 ++ // Dst: (VBITCLR_D:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vj, v2i64:{ *:[v2i64] }:$vk) ++/* 55548*/ 0, // EndSwitchOpcode ++/* 55549*/ /*Scope*/ 50, /*->55600*/ ++/* 55550*/ OPC_RecordChild0, // #0 = $vj ++/* 55551*/ OPC_MoveChild1, ++/* 55552*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 55555*/ OPC_MoveChild0, ++/* 55556*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 55559*/ OPC_MoveChild0, ++/* 55560*/ OPC_CheckImmAllOnesV, ++/* 55561*/ OPC_CheckType, MVT::v8i32, ++/* 55563*/ OPC_MoveParent, ++/* 55564*/ OPC_MoveParent, ++/* 55565*/ OPC_MoveChild1, ++/* 55566*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 55569*/ OPC_MoveChild0, ++/* 55570*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 55573*/ OPC_MoveChild0, ++/* 55574*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 55577*/ OPC_CheckType, MVT::v4i32, ++/* 55579*/ OPC_MoveParent, ++/* 55580*/ OPC_CheckPredicate, 39, // Predicate_vsplati64_imm_eq_1 ++/* 55582*/ OPC_MoveParent, ++/* 55583*/ OPC_RecordChild1, // #1 = $vk ++/* 55584*/ OPC_CheckChild1Type, MVT::v4i64, ++/* 55586*/ OPC_MoveParent, ++/* 55587*/ OPC_MoveParent, ++/* 55588*/ OPC_CheckType, MVT::v4i64, ++/* 55590*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 55592*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vj, (xor:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } immAllOnesV:{ *:[v8i32] }), (shl:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v4i32] }))<>, v4i64:{ *:[v4i64] }:$vk))) - Complexity = 23 ++ // Dst: (XVBITCLR_D:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vj, v4i64:{ *:[v4i64] }:$vk) ++/* 55600*/ /*Scope*/ 97, /*->55698*/ ++/* 55601*/ OPC_MoveChild0, ++/* 55602*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 55605*/ OPC_MoveChild0, ++/* 55606*/ OPC_SwitchOpcode /*2 cases */, 42, TARGET_VAL(ISD::SHL),// ->55652 ++/* 55610*/ OPC_MoveChild0, ++/* 55611*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 55614*/ OPC_MoveChild0, ++/* 55615*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 55618*/ OPC_CheckType, MVT::v4i32, ++/* 55620*/ OPC_MoveParent, ++/* 55621*/ OPC_CheckPredicate, 39, // Predicate_vsplati64_imm_eq_1 ++/* 55623*/ OPC_MoveParent, ++/* 55624*/ OPC_RecordChild1, // #0 = $vk ++/* 55625*/ OPC_CheckChild1Type, MVT::v4i64, ++/* 55627*/ OPC_MoveParent, ++/* 55628*/ OPC_MoveChild1, ++/* 55629*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 55632*/ OPC_MoveChild0, ++/* 55633*/ OPC_CheckImmAllOnesV, ++/* 55634*/ OPC_CheckType, MVT::v8i32, ++/* 55636*/ OPC_MoveParent, ++/* 55637*/ OPC_MoveParent, ++/* 55638*/ OPC_MoveParent, ++/* 55639*/ OPC_RecordChild1, // #1 = $vj ++/* 55640*/ OPC_CheckType, MVT::v4i64, ++/* 55642*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 55644*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v4i64] } (xor:{ *:[v4i64] } (shl:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v4i32] }))<>, v4i64:{ *:[v4i64] }:$vk), (bitconvert:{ *:[v4i64] } immAllOnesV:{ *:[v8i32] })), v4i64:{ *:[v4i64] }:$vj) - Complexity = 23 ++ // Dst: (XVBITCLR_D:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vj, v4i64:{ *:[v4i64] }:$vk) ++/* 55652*/ /*SwitchOpcode*/ 42, TARGET_VAL(ISD::BITCAST),// ->55697 ++/* 55655*/ OPC_MoveChild0, ++/* 55656*/ OPC_CheckImmAllOnesV, ++/* 55657*/ OPC_CheckType, MVT::v8i32, ++/* 55659*/ OPC_MoveParent, ++/* 55660*/ OPC_MoveParent, ++/* 55661*/ OPC_MoveChild1, ++/* 55662*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 55665*/ OPC_MoveChild0, ++/* 55666*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 55669*/ OPC_MoveChild0, ++/* 55670*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 55673*/ OPC_CheckType, MVT::v4i32, ++/* 55675*/ OPC_MoveParent, ++/* 55676*/ OPC_CheckPredicate, 39, // Predicate_vsplati64_imm_eq_1 ++/* 55678*/ OPC_MoveParent, ++/* 55679*/ OPC_RecordChild1, // #0 = $vk ++/* 55680*/ OPC_CheckChild1Type, MVT::v4i64, ++/* 55682*/ OPC_MoveParent, ++/* 55683*/ OPC_MoveParent, ++/* 55684*/ OPC_RecordChild1, // #1 = $vj ++/* 55685*/ OPC_CheckType, MVT::v4i64, ++/* 55687*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 55689*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v4i64] } (xor:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } immAllOnesV:{ *:[v8i32] }), (shl:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v4i32] }))<>, v4i64:{ *:[v4i64] }:$vk)), v4i64:{ *:[v4i64] }:$vj) - Complexity = 23 ++ // Dst: (XVBITCLR_D:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vj, v4i64:{ *:[v4i64] }:$vk) ++/* 55697*/ 0, // EndSwitchOpcode ++/* 55698*/ /*Scope*/ 115, /*->55814*/ ++/* 55699*/ OPC_RecordChild0, // #0 = $vj ++/* 55700*/ OPC_MoveChild1, ++/* 55701*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 55704*/ OPC_MoveChild0, ++/* 55705*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 55708*/ OPC_MoveChild0, ++/* 55709*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 55712*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 55714*/ OPC_MoveParent, ++/* 55715*/ OPC_RecordChild1, // #1 = $vk ++/* 55716*/ OPC_Scope, 31, /*->55749*/ // 3 children in Scope ++/* 55718*/ OPC_CheckChild1Type, MVT::v16i8, ++/* 55720*/ OPC_MoveParent, ++/* 55721*/ OPC_MoveChild1, ++/* 55722*/ OPC_CheckImmAllOnesV, ++/* 55723*/ OPC_MoveParent, ++/* 55724*/ OPC_MoveParent, ++/* 55725*/ OPC_CheckType, MVT::v16i8, ++/* 55727*/ OPC_Scope, 8, /*->55737*/ // 2 children in Scope ++/* 55729*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, (xor:{ *:[v16i8] } (shl:{ *:[v16i8] } (build_vector:{ *:[v16i8] })<>, LSX128BOpnd:{ *:[v16i8] }:$vk), immAllOnesV:{ *:[v16i8] })) - Complexity = 17 ++ // Dst: (VBITCLR_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/* 55737*/ /*Scope*/ 10, /*->55748*/ ++/* 55738*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 55740*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vj, (xor:{ *:[v16i8] } (shl:{ *:[v16i8] } (build_vector:{ *:[v16i8] })<>, v16i8:{ *:[v16i8] }:$vk), immAllOnesV:{ *:[v16i8] })) - Complexity = 17 ++ // Dst: (VBITCLR_B:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vj, v16i8:{ *:[v16i8] }:$vk) ++/* 55748*/ 0, /*End of Scope*/ ++/* 55749*/ /*Scope*/ 31, /*->55781*/ ++/* 55750*/ OPC_CheckChild1Type, MVT::v8i16, ++/* 55752*/ OPC_MoveParent, ++/* 55753*/ OPC_MoveChild1, ++/* 55754*/ OPC_CheckImmAllOnesV, ++/* 55755*/ OPC_MoveParent, ++/* 55756*/ OPC_MoveParent, ++/* 55757*/ OPC_CheckType, MVT::v8i16, ++/* 55759*/ OPC_Scope, 8, /*->55769*/ // 2 children in Scope ++/* 55761*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, (xor:{ *:[v8i16] } (shl:{ *:[v8i16] } (build_vector:{ *:[v8i16] })<>, LSX128HOpnd:{ *:[v8i16] }:$vk), immAllOnesV:{ *:[v8i16] })) - Complexity = 17 ++ // Dst: (VBITCLR_H:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/* 55769*/ /*Scope*/ 10, /*->55780*/ ++/* 55770*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 55772*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vj, (xor:{ *:[v8i16] } (shl:{ *:[v8i16] } (build_vector:{ *:[v8i16] })<>, v8i16:{ *:[v8i16] }:$vk), immAllOnesV:{ *:[v8i16] })) - Complexity = 17 ++ // Dst: (VBITCLR_H:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vj, v8i16:{ *:[v8i16] }:$vk) ++/* 55780*/ 0, /*End of Scope*/ ++/* 55781*/ /*Scope*/ 31, /*->55813*/ ++/* 55782*/ OPC_CheckChild1Type, MVT::v4i32, ++/* 55784*/ OPC_MoveParent, ++/* 55785*/ OPC_MoveChild1, ++/* 55786*/ OPC_CheckImmAllOnesV, ++/* 55787*/ OPC_MoveParent, ++/* 55788*/ OPC_MoveParent, ++/* 55789*/ OPC_CheckType, MVT::v4i32, ++/* 55791*/ OPC_Scope, 8, /*->55801*/ // 2 children in Scope ++/* 55793*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, (xor:{ *:[v4i32] } (shl:{ *:[v4i32] } (build_vector:{ *:[v4i32] })<>, LSX128WOpnd:{ *:[v4i32] }:$vk), immAllOnesV:{ *:[v4i32] })) - Complexity = 17 ++ // Dst: (VBITCLR_W:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/* 55801*/ /*Scope*/ 10, /*->55812*/ ++/* 55802*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 55804*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vj, (xor:{ *:[v4i32] } (shl:{ *:[v4i32] } (build_vector:{ *:[v4i32] })<>, v4i32:{ *:[v4i32] }:$vk), immAllOnesV:{ *:[v4i32] })) - Complexity = 17 ++ // Dst: (VBITCLR_W:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vj, v4i32:{ *:[v4i32] }:$vk) ++/* 55812*/ 0, /*End of Scope*/ ++/* 55813*/ 0, /*End of Scope*/ ++/* 55814*/ /*Scope*/ 42, /*->55857*/ ++/* 55815*/ OPC_MoveChild0, ++/* 55816*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 55819*/ OPC_RecordChild0, // #0 = $vj ++/* 55820*/ OPC_MoveChild1, ++/* 55821*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 55824*/ OPC_MoveChild0, ++/* 55825*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 55828*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 55830*/ OPC_CheckType, MVT::i64, ++/* 55832*/ OPC_MoveParent, ++/* 55833*/ OPC_MoveChild1, ++/* 55834*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 55837*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 55839*/ OPC_CheckType, MVT::i64, ++/* 55841*/ OPC_MoveParent, ++/* 55842*/ OPC_MoveParent, ++/* 55843*/ OPC_MoveParent, ++/* 55844*/ OPC_RecordChild1, // #1 = $vk ++/* 55845*/ OPC_CheckType, MVT::v2i64, ++/* 55847*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 55849*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VANDN_D_PSEUDO), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v2i64] } (xor:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vj, (build_vector:{ *:[v2i64] } (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>)), LSX128D:{ *:[v2i64] }:$vk) - Complexity = 17 ++ // Dst: (VANDN_D_PSEUDO:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vj, LSX128D:{ *:[v2i64] }:$vk) ++/* 55857*/ /*Scope*/ 19|128,1/*147*/, /*->56006*/ ++/* 55859*/ OPC_RecordChild0, // #0 = $xj ++/* 55860*/ OPC_MoveChild1, ++/* 55861*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 55864*/ OPC_MoveChild0, ++/* 55865*/ OPC_Scope, 109, /*->55976*/ // 2 children in Scope ++/* 55867*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 55870*/ OPC_MoveChild0, ++/* 55871*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 55874*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 55876*/ OPC_MoveParent, ++/* 55877*/ OPC_RecordChild1, // #1 = $xk ++/* 55878*/ OPC_Scope, 31, /*->55911*/ // 3 children in Scope ++/* 55880*/ OPC_CheckChild1Type, MVT::v32i8, ++/* 55882*/ OPC_MoveParent, ++/* 55883*/ OPC_MoveChild1, ++/* 55884*/ OPC_CheckImmAllOnesV, ++/* 55885*/ OPC_MoveParent, ++/* 55886*/ OPC_MoveParent, ++/* 55887*/ OPC_CheckType, MVT::v32i8, ++/* 55889*/ OPC_Scope, 8, /*->55899*/ // 2 children in Scope ++/* 55891*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, (xor:{ *:[v32i8] } (shl:{ *:[v32i8] } (build_vector:{ *:[v32i8] })<>, LASX256BOpnd:{ *:[v32i8] }:$xk), immAllOnesV:{ *:[v32i8] })) - Complexity = 17 ++ // Dst: (XVBITCLR_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 55899*/ /*Scope*/ 10, /*->55910*/ ++/* 55900*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 55902*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vj, (xor:{ *:[v32i8] } (shl:{ *:[v32i8] } (build_vector:{ *:[v32i8] })<>, v32i8:{ *:[v32i8] }:$vk), immAllOnesV:{ *:[v32i8] })) - Complexity = 17 ++ // Dst: (XVBITCLR_B:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vj, v32i8:{ *:[v32i8] }:$vk) ++/* 55910*/ 0, /*End of Scope*/ ++/* 55911*/ /*Scope*/ 31, /*->55943*/ ++/* 55912*/ OPC_CheckChild1Type, MVT::v16i16, ++/* 55914*/ OPC_MoveParent, ++/* 55915*/ OPC_MoveChild1, ++/* 55916*/ OPC_CheckImmAllOnesV, ++/* 55917*/ OPC_MoveParent, ++/* 55918*/ OPC_MoveParent, ++/* 55919*/ OPC_CheckType, MVT::v16i16, ++/* 55921*/ OPC_Scope, 8, /*->55931*/ // 2 children in Scope ++/* 55923*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, (xor:{ *:[v16i16] } (shl:{ *:[v16i16] } (build_vector:{ *:[v16i16] })<>, LASX256HOpnd:{ *:[v16i16] }:$xk), immAllOnesV:{ *:[v16i16] })) - Complexity = 17 ++ // Dst: (XVBITCLR_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 55931*/ /*Scope*/ 10, /*->55942*/ ++/* 55932*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 55934*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vj, (xor:{ *:[v16i16] } (shl:{ *:[v16i16] } (build_vector:{ *:[v16i16] })<>, v16i16:{ *:[v16i16] }:$vk), immAllOnesV:{ *:[v16i16] })) - Complexity = 17 ++ // Dst: (XVBITCLR_H:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vj, v16i16:{ *:[v16i16] }:$vk) ++/* 55942*/ 0, /*End of Scope*/ ++/* 55943*/ /*Scope*/ 31, /*->55975*/ ++/* 55944*/ OPC_CheckChild1Type, MVT::v8i32, ++/* 55946*/ OPC_MoveParent, ++/* 55947*/ OPC_MoveChild1, ++/* 55948*/ OPC_CheckImmAllOnesV, ++/* 55949*/ OPC_MoveParent, ++/* 55950*/ OPC_MoveParent, ++/* 55951*/ OPC_CheckType, MVT::v8i32, ++/* 55953*/ OPC_Scope, 8, /*->55963*/ // 2 children in Scope ++/* 55955*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, (xor:{ *:[v8i32] } (shl:{ *:[v8i32] } (build_vector:{ *:[v8i32] })<>, LASX256WOpnd:{ *:[v8i32] }:$xk), immAllOnesV:{ *:[v8i32] })) - Complexity = 17 ++ // Dst: (XVBITCLR_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 55963*/ /*Scope*/ 10, /*->55974*/ ++/* 55964*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 55966*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vj, (xor:{ *:[v8i32] } (shl:{ *:[v8i32] } (build_vector:{ *:[v8i32] })<>, v8i32:{ *:[v8i32] }:$vk), immAllOnesV:{ *:[v8i32] })) - Complexity = 17 ++ // Dst: (XVBITCLR_W:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vj, v8i32:{ *:[v8i32] }:$vk) ++/* 55974*/ 0, /*End of Scope*/ ++/* 55975*/ 0, /*End of Scope*/ ++/* 55976*/ /*Scope*/ 28, /*->56005*/ ++/* 55977*/ OPC_CheckImmAllOnesV, ++/* 55978*/ OPC_MoveParent, ++/* 55979*/ OPC_MoveChild1, ++/* 55980*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 55983*/ OPC_MoveChild0, ++/* 55984*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 55987*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 55989*/ OPC_MoveParent, ++/* 55990*/ OPC_RecordChild1, // #1 = $vk ++/* 55991*/ OPC_CheckChild1Type, MVT::v16i8, ++/* 55993*/ OPC_MoveParent, ++/* 55994*/ OPC_MoveParent, ++/* 55995*/ OPC_CheckType, MVT::v16i8, ++/* 55997*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, (xor:{ *:[v16i8] } immAllOnesV:{ *:[v16i8] }, (shl:{ *:[v16i8] } (build_vector:{ *:[v16i8] })<>, LSX128BOpnd:{ *:[v16i8] }:$vk))) - Complexity = 17 ++ // Dst: (VBITCLR_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/* 56005*/ 0, /*End of Scope*/ ++/* 56006*/ /*Scope*/ 67, /*->56074*/ ++/* 56007*/ OPC_MoveChild0, ++/* 56008*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 56011*/ OPC_MoveChild0, ++/* 56012*/ OPC_Scope, 29, /*->56043*/ // 2 children in Scope ++/* 56014*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 56017*/ OPC_MoveChild0, ++/* 56018*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 56021*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 56023*/ OPC_MoveParent, ++/* 56024*/ OPC_RecordChild1, // #0 = $vk ++/* 56025*/ OPC_CheckChild1Type, MVT::v16i8, ++/* 56027*/ OPC_MoveParent, ++/* 56028*/ OPC_MoveChild1, ++/* 56029*/ OPC_CheckImmAllOnesV, ++/* 56030*/ OPC_MoveParent, ++/* 56031*/ OPC_MoveParent, ++/* 56032*/ OPC_RecordChild1, // #1 = $vj ++/* 56033*/ OPC_CheckType, MVT::v16i8, ++/* 56035*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v16i8] } (xor:{ *:[v16i8] } (shl:{ *:[v16i8] } (build_vector:{ *:[v16i8] })<>, LSX128BOpnd:{ *:[v16i8] }:$vk), immAllOnesV:{ *:[v16i8] }), LSX128BOpnd:{ *:[v16i8] }:$vj) - Complexity = 17 ++ // Dst: (VBITCLR_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/* 56043*/ /*Scope*/ 29, /*->56073*/ ++/* 56044*/ OPC_CheckImmAllOnesV, ++/* 56045*/ OPC_MoveParent, ++/* 56046*/ OPC_MoveChild1, ++/* 56047*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 56050*/ OPC_MoveChild0, ++/* 56051*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 56054*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 56056*/ OPC_MoveParent, ++/* 56057*/ OPC_RecordChild1, // #0 = $vk ++/* 56058*/ OPC_CheckChild1Type, MVT::v16i8, ++/* 56060*/ OPC_MoveParent, ++/* 56061*/ OPC_MoveParent, ++/* 56062*/ OPC_RecordChild1, // #1 = $vj ++/* 56063*/ OPC_CheckType, MVT::v16i8, ++/* 56065*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v16i8] } (xor:{ *:[v16i8] } immAllOnesV:{ *:[v16i8] }, (shl:{ *:[v16i8] } (build_vector:{ *:[v16i8] })<>, LSX128BOpnd:{ *:[v16i8] }:$vk)), LSX128BOpnd:{ *:[v16i8] }:$vj) - Complexity = 17 ++ // Dst: (VBITCLR_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/* 56073*/ 0, /*End of Scope*/ ++/* 56074*/ /*Scope*/ 34, /*->56109*/ ++/* 56075*/ OPC_RecordChild0, // #0 = $vj ++/* 56076*/ OPC_MoveChild1, ++/* 56077*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 56080*/ OPC_MoveChild0, ++/* 56081*/ OPC_CheckImmAllOnesV, ++/* 56082*/ OPC_MoveParent, ++/* 56083*/ OPC_MoveChild1, ++/* 56084*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 56087*/ OPC_MoveChild0, ++/* 56088*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 56091*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 56093*/ OPC_MoveParent, ++/* 56094*/ OPC_RecordChild1, // #1 = $vk ++/* 56095*/ OPC_CheckChild1Type, MVT::v8i16, ++/* 56097*/ OPC_MoveParent, ++/* 56098*/ OPC_MoveParent, ++/* 56099*/ OPC_CheckType, MVT::v8i16, ++/* 56101*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, (xor:{ *:[v8i16] } immAllOnesV:{ *:[v8i16] }, (shl:{ *:[v8i16] } (build_vector:{ *:[v8i16] })<>, LSX128HOpnd:{ *:[v8i16] }:$vk))) - Complexity = 17 ++ // Dst: (VBITCLR_H:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/* 56109*/ /*Scope*/ 67, /*->56177*/ ++/* 56110*/ OPC_MoveChild0, ++/* 56111*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 56114*/ OPC_MoveChild0, ++/* 56115*/ OPC_Scope, 29, /*->56146*/ // 2 children in Scope ++/* 56117*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 56120*/ OPC_MoveChild0, ++/* 56121*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 56124*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 56126*/ OPC_MoveParent, ++/* 56127*/ OPC_RecordChild1, // #0 = $vk ++/* 56128*/ OPC_CheckChild1Type, MVT::v8i16, ++/* 56130*/ OPC_MoveParent, ++/* 56131*/ OPC_MoveChild1, ++/* 56132*/ OPC_CheckImmAllOnesV, ++/* 56133*/ OPC_MoveParent, ++/* 56134*/ OPC_MoveParent, ++/* 56135*/ OPC_RecordChild1, // #1 = $vj ++/* 56136*/ OPC_CheckType, MVT::v8i16, ++/* 56138*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v8i16] } (xor:{ *:[v8i16] } (shl:{ *:[v8i16] } (build_vector:{ *:[v8i16] })<>, LSX128HOpnd:{ *:[v8i16] }:$vk), immAllOnesV:{ *:[v8i16] }), LSX128HOpnd:{ *:[v8i16] }:$vj) - Complexity = 17 ++ // Dst: (VBITCLR_H:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/* 56146*/ /*Scope*/ 29, /*->56176*/ ++/* 56147*/ OPC_CheckImmAllOnesV, ++/* 56148*/ OPC_MoveParent, ++/* 56149*/ OPC_MoveChild1, ++/* 56150*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 56153*/ OPC_MoveChild0, ++/* 56154*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 56157*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 56159*/ OPC_MoveParent, ++/* 56160*/ OPC_RecordChild1, // #0 = $vk ++/* 56161*/ OPC_CheckChild1Type, MVT::v8i16, ++/* 56163*/ OPC_MoveParent, ++/* 56164*/ OPC_MoveParent, ++/* 56165*/ OPC_RecordChild1, // #1 = $vj ++/* 56166*/ OPC_CheckType, MVT::v8i16, ++/* 56168*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v8i16] } (xor:{ *:[v8i16] } immAllOnesV:{ *:[v8i16] }, (shl:{ *:[v8i16] } (build_vector:{ *:[v8i16] })<>, LSX128HOpnd:{ *:[v8i16] }:$vk)), LSX128HOpnd:{ *:[v8i16] }:$vj) - Complexity = 17 ++ // Dst: (VBITCLR_H:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/* 56176*/ 0, /*End of Scope*/ ++/* 56177*/ /*Scope*/ 34, /*->56212*/ ++/* 56178*/ OPC_RecordChild0, // #0 = $vj ++/* 56179*/ OPC_MoveChild1, ++/* 56180*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 56183*/ OPC_MoveChild0, ++/* 56184*/ OPC_CheckImmAllOnesV, ++/* 56185*/ OPC_MoveParent, ++/* 56186*/ OPC_MoveChild1, ++/* 56187*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 56190*/ OPC_MoveChild0, ++/* 56191*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 56194*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 56196*/ OPC_MoveParent, ++/* 56197*/ OPC_RecordChild1, // #1 = $vk ++/* 56198*/ OPC_CheckChild1Type, MVT::v4i32, ++/* 56200*/ OPC_MoveParent, ++/* 56201*/ OPC_MoveParent, ++/* 56202*/ OPC_CheckType, MVT::v4i32, ++/* 56204*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, (xor:{ *:[v4i32] } immAllOnesV:{ *:[v4i32] }, (shl:{ *:[v4i32] } (build_vector:{ *:[v4i32] })<>, LSX128WOpnd:{ *:[v4i32] }:$vk))) - Complexity = 17 ++ // Dst: (VBITCLR_W:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/* 56212*/ /*Scope*/ 67, /*->56280*/ ++/* 56213*/ OPC_MoveChild0, ++/* 56214*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 56217*/ OPC_MoveChild0, ++/* 56218*/ OPC_Scope, 29, /*->56249*/ // 2 children in Scope ++/* 56220*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 56223*/ OPC_MoveChild0, ++/* 56224*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 56227*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 56229*/ OPC_MoveParent, ++/* 56230*/ OPC_RecordChild1, // #0 = $vk ++/* 56231*/ OPC_CheckChild1Type, MVT::v4i32, ++/* 56233*/ OPC_MoveParent, ++/* 56234*/ OPC_MoveChild1, ++/* 56235*/ OPC_CheckImmAllOnesV, ++/* 56236*/ OPC_MoveParent, ++/* 56237*/ OPC_MoveParent, ++/* 56238*/ OPC_RecordChild1, // #1 = $vj ++/* 56239*/ OPC_CheckType, MVT::v4i32, ++/* 56241*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v4i32] } (xor:{ *:[v4i32] } (shl:{ *:[v4i32] } (build_vector:{ *:[v4i32] })<>, LSX128WOpnd:{ *:[v4i32] }:$vk), immAllOnesV:{ *:[v4i32] }), LSX128WOpnd:{ *:[v4i32] }:$vj) - Complexity = 17 ++ // Dst: (VBITCLR_W:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/* 56249*/ /*Scope*/ 29, /*->56279*/ ++/* 56250*/ OPC_CheckImmAllOnesV, ++/* 56251*/ OPC_MoveParent, ++/* 56252*/ OPC_MoveChild1, ++/* 56253*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 56256*/ OPC_MoveChild0, ++/* 56257*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 56260*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 56262*/ OPC_MoveParent, ++/* 56263*/ OPC_RecordChild1, // #0 = $vk ++/* 56264*/ OPC_CheckChild1Type, MVT::v4i32, ++/* 56266*/ OPC_MoveParent, ++/* 56267*/ OPC_MoveParent, ++/* 56268*/ OPC_RecordChild1, // #1 = $vj ++/* 56269*/ OPC_CheckType, MVT::v4i32, ++/* 56271*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v4i32] } (xor:{ *:[v4i32] } immAllOnesV:{ *:[v4i32] }, (shl:{ *:[v4i32] } (build_vector:{ *:[v4i32] })<>, LSX128WOpnd:{ *:[v4i32] }:$vk)), LSX128WOpnd:{ *:[v4i32] }:$vj) - Complexity = 17 ++ // Dst: (VBITCLR_W:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/* 56279*/ 0, /*End of Scope*/ ++/* 56280*/ /*Scope*/ 34, /*->56315*/ ++/* 56281*/ OPC_RecordChild0, // #0 = $xj ++/* 56282*/ OPC_MoveChild1, ++/* 56283*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 56286*/ OPC_MoveChild0, ++/* 56287*/ OPC_CheckImmAllOnesV, ++/* 56288*/ OPC_MoveParent, ++/* 56289*/ OPC_MoveChild1, ++/* 56290*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 56293*/ OPC_MoveChild0, ++/* 56294*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 56297*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 56299*/ OPC_MoveParent, ++/* 56300*/ OPC_RecordChild1, // #1 = $xk ++/* 56301*/ OPC_CheckChild1Type, MVT::v32i8, ++/* 56303*/ OPC_MoveParent, ++/* 56304*/ OPC_MoveParent, ++/* 56305*/ OPC_CheckType, MVT::v32i8, ++/* 56307*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, (xor:{ *:[v32i8] } immAllOnesV:{ *:[v32i8] }, (shl:{ *:[v32i8] } (build_vector:{ *:[v32i8] })<>, LASX256BOpnd:{ *:[v32i8] }:$xk))) - Complexity = 17 ++ // Dst: (XVBITCLR_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 56315*/ /*Scope*/ 67, /*->56383*/ ++/* 56316*/ OPC_MoveChild0, ++/* 56317*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 56320*/ OPC_MoveChild0, ++/* 56321*/ OPC_Scope, 29, /*->56352*/ // 2 children in Scope ++/* 56323*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 56326*/ OPC_MoveChild0, ++/* 56327*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 56330*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 56332*/ OPC_MoveParent, ++/* 56333*/ OPC_RecordChild1, // #0 = $xk ++/* 56334*/ OPC_CheckChild1Type, MVT::v32i8, ++/* 56336*/ OPC_MoveParent, ++/* 56337*/ OPC_MoveChild1, ++/* 56338*/ OPC_CheckImmAllOnesV, ++/* 56339*/ OPC_MoveParent, ++/* 56340*/ OPC_MoveParent, ++/* 56341*/ OPC_RecordChild1, // #1 = $xj ++/* 56342*/ OPC_CheckType, MVT::v32i8, ++/* 56344*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v32i8] } (xor:{ *:[v32i8] } (shl:{ *:[v32i8] } (build_vector:{ *:[v32i8] })<>, LASX256BOpnd:{ *:[v32i8] }:$xk), immAllOnesV:{ *:[v32i8] }), LASX256BOpnd:{ *:[v32i8] }:$xj) - Complexity = 17 ++ // Dst: (XVBITCLR_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 56352*/ /*Scope*/ 29, /*->56382*/ ++/* 56353*/ OPC_CheckImmAllOnesV, ++/* 56354*/ OPC_MoveParent, ++/* 56355*/ OPC_MoveChild1, ++/* 56356*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 56359*/ OPC_MoveChild0, ++/* 56360*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 56363*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 56365*/ OPC_MoveParent, ++/* 56366*/ OPC_RecordChild1, // #0 = $xk ++/* 56367*/ OPC_CheckChild1Type, MVT::v32i8, ++/* 56369*/ OPC_MoveParent, ++/* 56370*/ OPC_MoveParent, ++/* 56371*/ OPC_RecordChild1, // #1 = $xj ++/* 56372*/ OPC_CheckType, MVT::v32i8, ++/* 56374*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v32i8] } (xor:{ *:[v32i8] } immAllOnesV:{ *:[v32i8] }, (shl:{ *:[v32i8] } (build_vector:{ *:[v32i8] })<>, LASX256BOpnd:{ *:[v32i8] }:$xk)), LASX256BOpnd:{ *:[v32i8] }:$xj) - Complexity = 17 ++ // Dst: (XVBITCLR_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 56382*/ 0, /*End of Scope*/ ++/* 56383*/ /*Scope*/ 34, /*->56418*/ ++/* 56384*/ OPC_RecordChild0, // #0 = $xj ++/* 56385*/ OPC_MoveChild1, ++/* 56386*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 56389*/ OPC_MoveChild0, ++/* 56390*/ OPC_CheckImmAllOnesV, ++/* 56391*/ OPC_MoveParent, ++/* 56392*/ OPC_MoveChild1, ++/* 56393*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 56396*/ OPC_MoveChild0, ++/* 56397*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 56400*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 56402*/ OPC_MoveParent, ++/* 56403*/ OPC_RecordChild1, // #1 = $xk ++/* 56404*/ OPC_CheckChild1Type, MVT::v16i16, ++/* 56406*/ OPC_MoveParent, ++/* 56407*/ OPC_MoveParent, ++/* 56408*/ OPC_CheckType, MVT::v16i16, ++/* 56410*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, (xor:{ *:[v16i16] } immAllOnesV:{ *:[v16i16] }, (shl:{ *:[v16i16] } (build_vector:{ *:[v16i16] })<>, LASX256HOpnd:{ *:[v16i16] }:$xk))) - Complexity = 17 ++ // Dst: (XVBITCLR_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 56418*/ /*Scope*/ 67, /*->56486*/ ++/* 56419*/ OPC_MoveChild0, ++/* 56420*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 56423*/ OPC_MoveChild0, ++/* 56424*/ OPC_Scope, 29, /*->56455*/ // 2 children in Scope ++/* 56426*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 56429*/ OPC_MoveChild0, ++/* 56430*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 56433*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 56435*/ OPC_MoveParent, ++/* 56436*/ OPC_RecordChild1, // #0 = $xk ++/* 56437*/ OPC_CheckChild1Type, MVT::v16i16, ++/* 56439*/ OPC_MoveParent, ++/* 56440*/ OPC_MoveChild1, ++/* 56441*/ OPC_CheckImmAllOnesV, ++/* 56442*/ OPC_MoveParent, ++/* 56443*/ OPC_MoveParent, ++/* 56444*/ OPC_RecordChild1, // #1 = $xj ++/* 56445*/ OPC_CheckType, MVT::v16i16, ++/* 56447*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v16i16] } (xor:{ *:[v16i16] } (shl:{ *:[v16i16] } (build_vector:{ *:[v16i16] })<>, LASX256HOpnd:{ *:[v16i16] }:$xk), immAllOnesV:{ *:[v16i16] }), LASX256HOpnd:{ *:[v16i16] }:$xj) - Complexity = 17 ++ // Dst: (XVBITCLR_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 56455*/ /*Scope*/ 29, /*->56485*/ ++/* 56456*/ OPC_CheckImmAllOnesV, ++/* 56457*/ OPC_MoveParent, ++/* 56458*/ OPC_MoveChild1, ++/* 56459*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 56462*/ OPC_MoveChild0, ++/* 56463*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 56466*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 56468*/ OPC_MoveParent, ++/* 56469*/ OPC_RecordChild1, // #0 = $xk ++/* 56470*/ OPC_CheckChild1Type, MVT::v16i16, ++/* 56472*/ OPC_MoveParent, ++/* 56473*/ OPC_MoveParent, ++/* 56474*/ OPC_RecordChild1, // #1 = $xj ++/* 56475*/ OPC_CheckType, MVT::v16i16, ++/* 56477*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v16i16] } (xor:{ *:[v16i16] } immAllOnesV:{ *:[v16i16] }, (shl:{ *:[v16i16] } (build_vector:{ *:[v16i16] })<>, LASX256HOpnd:{ *:[v16i16] }:$xk)), LASX256HOpnd:{ *:[v16i16] }:$xj) - Complexity = 17 ++ // Dst: (XVBITCLR_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 56485*/ 0, /*End of Scope*/ ++/* 56486*/ /*Scope*/ 34, /*->56521*/ ++/* 56487*/ OPC_RecordChild0, // #0 = $xj ++/* 56488*/ OPC_MoveChild1, ++/* 56489*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 56492*/ OPC_MoveChild0, ++/* 56493*/ OPC_CheckImmAllOnesV, ++/* 56494*/ OPC_MoveParent, ++/* 56495*/ OPC_MoveChild1, ++/* 56496*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 56499*/ OPC_MoveChild0, ++/* 56500*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 56503*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 56505*/ OPC_MoveParent, ++/* 56506*/ OPC_RecordChild1, // #1 = $xk ++/* 56507*/ OPC_CheckChild1Type, MVT::v8i32, ++/* 56509*/ OPC_MoveParent, ++/* 56510*/ OPC_MoveParent, ++/* 56511*/ OPC_CheckType, MVT::v8i32, ++/* 56513*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, (xor:{ *:[v8i32] } immAllOnesV:{ *:[v8i32] }, (shl:{ *:[v8i32] } (build_vector:{ *:[v8i32] })<>, LASX256WOpnd:{ *:[v8i32] }:$xk))) - Complexity = 17 ++ // Dst: (XVBITCLR_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 56521*/ /*Scope*/ 67, /*->56589*/ ++/* 56522*/ OPC_MoveChild0, ++/* 56523*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 56526*/ OPC_MoveChild0, ++/* 56527*/ OPC_Scope, 29, /*->56558*/ // 2 children in Scope ++/* 56529*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 56532*/ OPC_MoveChild0, ++/* 56533*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 56536*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 56538*/ OPC_MoveParent, ++/* 56539*/ OPC_RecordChild1, // #0 = $xk ++/* 56540*/ OPC_CheckChild1Type, MVT::v8i32, ++/* 56542*/ OPC_MoveParent, ++/* 56543*/ OPC_MoveChild1, ++/* 56544*/ OPC_CheckImmAllOnesV, ++/* 56545*/ OPC_MoveParent, ++/* 56546*/ OPC_MoveParent, ++/* 56547*/ OPC_RecordChild1, // #1 = $xj ++/* 56548*/ OPC_CheckType, MVT::v8i32, ++/* 56550*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v8i32] } (xor:{ *:[v8i32] } (shl:{ *:[v8i32] } (build_vector:{ *:[v8i32] })<>, LASX256WOpnd:{ *:[v8i32] }:$xk), immAllOnesV:{ *:[v8i32] }), LASX256WOpnd:{ *:[v8i32] }:$xj) - Complexity = 17 ++ // Dst: (XVBITCLR_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 56558*/ /*Scope*/ 29, /*->56588*/ ++/* 56559*/ OPC_CheckImmAllOnesV, ++/* 56560*/ OPC_MoveParent, ++/* 56561*/ OPC_MoveChild1, ++/* 56562*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 56565*/ OPC_MoveChild0, ++/* 56566*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 56569*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 56571*/ OPC_MoveParent, ++/* 56572*/ OPC_RecordChild1, // #0 = $xk ++/* 56573*/ OPC_CheckChild1Type, MVT::v8i32, ++/* 56575*/ OPC_MoveParent, ++/* 56576*/ OPC_MoveParent, ++/* 56577*/ OPC_RecordChild1, // #1 = $xj ++/* 56578*/ OPC_CheckType, MVT::v8i32, ++/* 56580*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v8i32] } (xor:{ *:[v8i32] } immAllOnesV:{ *:[v8i32] }, (shl:{ *:[v8i32] } (build_vector:{ *:[v8i32] })<>, LASX256WOpnd:{ *:[v8i32] }:$xk)), LASX256WOpnd:{ *:[v8i32] }:$xj) - Complexity = 17 ++ // Dst: (XVBITCLR_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 56588*/ 0, /*End of Scope*/ ++/* 56589*/ /*Scope*/ 36, /*->56626*/ ++/* 56590*/ OPC_RecordChild0, // #0 = $vj ++/* 56591*/ OPC_MoveChild1, ++/* 56592*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 56595*/ OPC_MoveChild0, ++/* 56596*/ OPC_CheckImmAllOnesV, ++/* 56597*/ OPC_MoveParent, ++/* 56598*/ OPC_MoveChild1, ++/* 56599*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 56602*/ OPC_MoveChild0, ++/* 56603*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 56606*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 56608*/ OPC_MoveParent, ++/* 56609*/ OPC_RecordChild1, // #1 = $vk ++/* 56610*/ OPC_CheckChild1Type, MVT::v16i8, ++/* 56612*/ OPC_MoveParent, ++/* 56613*/ OPC_MoveParent, ++/* 56614*/ OPC_CheckType, MVT::v16i8, ++/* 56616*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 56618*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vj, (xor:{ *:[v16i8] } immAllOnesV:{ *:[v16i8] }, (shl:{ *:[v16i8] } (build_vector:{ *:[v16i8] })<>, v16i8:{ *:[v16i8] }:$vk))) - Complexity = 17 ++ // Dst: (VBITCLR_B:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vj, v16i8:{ *:[v16i8] }:$vk) ++/* 56626*/ /*Scope*/ 71, /*->56698*/ ++/* 56627*/ OPC_MoveChild0, ++/* 56628*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 56631*/ OPC_MoveChild0, ++/* 56632*/ OPC_Scope, 31, /*->56665*/ // 2 children in Scope ++/* 56634*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 56637*/ OPC_MoveChild0, ++/* 56638*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 56641*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 56643*/ OPC_MoveParent, ++/* 56644*/ OPC_RecordChild1, // #0 = $vk ++/* 56645*/ OPC_CheckChild1Type, MVT::v16i8, ++/* 56647*/ OPC_MoveParent, ++/* 56648*/ OPC_MoveChild1, ++/* 56649*/ OPC_CheckImmAllOnesV, ++/* 56650*/ OPC_MoveParent, ++/* 56651*/ OPC_MoveParent, ++/* 56652*/ OPC_RecordChild1, // #1 = $vj ++/* 56653*/ OPC_CheckType, MVT::v16i8, ++/* 56655*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 56657*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v16i8] } (xor:{ *:[v16i8] } (shl:{ *:[v16i8] } (build_vector:{ *:[v16i8] })<>, v16i8:{ *:[v16i8] }:$vk), immAllOnesV:{ *:[v16i8] }), v16i8:{ *:[v16i8] }:$vj) - Complexity = 17 ++ // Dst: (VBITCLR_B:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vj, v16i8:{ *:[v16i8] }:$vk) ++/* 56665*/ /*Scope*/ 31, /*->56697*/ ++/* 56666*/ OPC_CheckImmAllOnesV, ++/* 56667*/ OPC_MoveParent, ++/* 56668*/ OPC_MoveChild1, ++/* 56669*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 56672*/ OPC_MoveChild0, ++/* 56673*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 56676*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 56678*/ OPC_MoveParent, ++/* 56679*/ OPC_RecordChild1, // #0 = $vk ++/* 56680*/ OPC_CheckChild1Type, MVT::v16i8, ++/* 56682*/ OPC_MoveParent, ++/* 56683*/ OPC_MoveParent, ++/* 56684*/ OPC_RecordChild1, // #1 = $vj ++/* 56685*/ OPC_CheckType, MVT::v16i8, ++/* 56687*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 56689*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v16i8] } (xor:{ *:[v16i8] } immAllOnesV:{ *:[v16i8] }, (shl:{ *:[v16i8] } (build_vector:{ *:[v16i8] })<>, v16i8:{ *:[v16i8] }:$vk)), v16i8:{ *:[v16i8] }:$vj) - Complexity = 17 ++ // Dst: (VBITCLR_B:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vj, v16i8:{ *:[v16i8] }:$vk) ++/* 56697*/ 0, /*End of Scope*/ ++/* 56698*/ /*Scope*/ 36, /*->56735*/ ++/* 56699*/ OPC_RecordChild0, // #0 = $vj ++/* 56700*/ OPC_MoveChild1, ++/* 56701*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 56704*/ OPC_MoveChild0, ++/* 56705*/ OPC_CheckImmAllOnesV, ++/* 56706*/ OPC_MoveParent, ++/* 56707*/ OPC_MoveChild1, ++/* 56708*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 56711*/ OPC_MoveChild0, ++/* 56712*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 56715*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 56717*/ OPC_MoveParent, ++/* 56718*/ OPC_RecordChild1, // #1 = $vk ++/* 56719*/ OPC_CheckChild1Type, MVT::v8i16, ++/* 56721*/ OPC_MoveParent, ++/* 56722*/ OPC_MoveParent, ++/* 56723*/ OPC_CheckType, MVT::v8i16, ++/* 56725*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 56727*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vj, (xor:{ *:[v8i16] } immAllOnesV:{ *:[v8i16] }, (shl:{ *:[v8i16] } (build_vector:{ *:[v8i16] })<>, v8i16:{ *:[v8i16] }:$vk))) - Complexity = 17 ++ // Dst: (VBITCLR_H:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vj, v8i16:{ *:[v8i16] }:$vk) ++/* 56735*/ /*Scope*/ 71, /*->56807*/ ++/* 56736*/ OPC_MoveChild0, ++/* 56737*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 56740*/ OPC_MoveChild0, ++/* 56741*/ OPC_Scope, 31, /*->56774*/ // 2 children in Scope ++/* 56743*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 56746*/ OPC_MoveChild0, ++/* 56747*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 56750*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 56752*/ OPC_MoveParent, ++/* 56753*/ OPC_RecordChild1, // #0 = $vk ++/* 56754*/ OPC_CheckChild1Type, MVT::v8i16, ++/* 56756*/ OPC_MoveParent, ++/* 56757*/ OPC_MoveChild1, ++/* 56758*/ OPC_CheckImmAllOnesV, ++/* 56759*/ OPC_MoveParent, ++/* 56760*/ OPC_MoveParent, ++/* 56761*/ OPC_RecordChild1, // #1 = $vj ++/* 56762*/ OPC_CheckType, MVT::v8i16, ++/* 56764*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 56766*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v8i16] } (xor:{ *:[v8i16] } (shl:{ *:[v8i16] } (build_vector:{ *:[v8i16] })<>, v8i16:{ *:[v8i16] }:$vk), immAllOnesV:{ *:[v8i16] }), v8i16:{ *:[v8i16] }:$vj) - Complexity = 17 ++ // Dst: (VBITCLR_H:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vj, v8i16:{ *:[v8i16] }:$vk) ++/* 56774*/ /*Scope*/ 31, /*->56806*/ ++/* 56775*/ OPC_CheckImmAllOnesV, ++/* 56776*/ OPC_MoveParent, ++/* 56777*/ OPC_MoveChild1, ++/* 56778*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 56781*/ OPC_MoveChild0, ++/* 56782*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 56785*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 56787*/ OPC_MoveParent, ++/* 56788*/ OPC_RecordChild1, // #0 = $vk ++/* 56789*/ OPC_CheckChild1Type, MVT::v8i16, ++/* 56791*/ OPC_MoveParent, ++/* 56792*/ OPC_MoveParent, ++/* 56793*/ OPC_RecordChild1, // #1 = $vj ++/* 56794*/ OPC_CheckType, MVT::v8i16, ++/* 56796*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 56798*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v8i16] } (xor:{ *:[v8i16] } immAllOnesV:{ *:[v8i16] }, (shl:{ *:[v8i16] } (build_vector:{ *:[v8i16] })<>, v8i16:{ *:[v8i16] }:$vk)), v8i16:{ *:[v8i16] }:$vj) - Complexity = 17 ++ // Dst: (VBITCLR_H:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vj, v8i16:{ *:[v8i16] }:$vk) ++/* 56806*/ 0, /*End of Scope*/ ++/* 56807*/ /*Scope*/ 36, /*->56844*/ ++/* 56808*/ OPC_RecordChild0, // #0 = $vj ++/* 56809*/ OPC_MoveChild1, ++/* 56810*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 56813*/ OPC_MoveChild0, ++/* 56814*/ OPC_CheckImmAllOnesV, ++/* 56815*/ OPC_MoveParent, ++/* 56816*/ OPC_MoveChild1, ++/* 56817*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 56820*/ OPC_MoveChild0, ++/* 56821*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 56824*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 56826*/ OPC_MoveParent, ++/* 56827*/ OPC_RecordChild1, // #1 = $vk ++/* 56828*/ OPC_CheckChild1Type, MVT::v4i32, ++/* 56830*/ OPC_MoveParent, ++/* 56831*/ OPC_MoveParent, ++/* 56832*/ OPC_CheckType, MVT::v4i32, ++/* 56834*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 56836*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vj, (xor:{ *:[v4i32] } immAllOnesV:{ *:[v4i32] }, (shl:{ *:[v4i32] } (build_vector:{ *:[v4i32] })<>, v4i32:{ *:[v4i32] }:$vk))) - Complexity = 17 ++ // Dst: (VBITCLR_W:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vj, v4i32:{ *:[v4i32] }:$vk) ++/* 56844*/ /*Scope*/ 109, /*->56954*/ ++/* 56845*/ OPC_MoveChild0, ++/* 56846*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 56849*/ OPC_MoveChild0, ++/* 56850*/ OPC_Scope, 31, /*->56883*/ // 3 children in Scope ++/* 56852*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 56855*/ OPC_MoveChild0, ++/* 56856*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 56859*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 56861*/ OPC_MoveParent, ++/* 56862*/ OPC_RecordChild1, // #0 = $vk ++/* 56863*/ OPC_CheckChild1Type, MVT::v4i32, ++/* 56865*/ OPC_MoveParent, ++/* 56866*/ OPC_MoveChild1, ++/* 56867*/ OPC_CheckImmAllOnesV, ++/* 56868*/ OPC_MoveParent, ++/* 56869*/ OPC_MoveParent, ++/* 56870*/ OPC_RecordChild1, // #1 = $vj ++/* 56871*/ OPC_CheckType, MVT::v4i32, ++/* 56873*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 56875*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v4i32] } (xor:{ *:[v4i32] } (shl:{ *:[v4i32] } (build_vector:{ *:[v4i32] })<>, v4i32:{ *:[v4i32] }:$vk), immAllOnesV:{ *:[v4i32] }), v4i32:{ *:[v4i32] }:$vj) - Complexity = 17 ++ // Dst: (VBITCLR_W:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vj, v4i32:{ *:[v4i32] }:$vk) ++/* 56883*/ /*Scope*/ 31, /*->56915*/ ++/* 56884*/ OPC_CheckImmAllOnesV, ++/* 56885*/ OPC_MoveParent, ++/* 56886*/ OPC_MoveChild1, ++/* 56887*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 56890*/ OPC_MoveChild0, ++/* 56891*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 56894*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 56896*/ OPC_MoveParent, ++/* 56897*/ OPC_RecordChild1, // #0 = $vk ++/* 56898*/ OPC_CheckChild1Type, MVT::v4i32, ++/* 56900*/ OPC_MoveParent, ++/* 56901*/ OPC_MoveParent, ++/* 56902*/ OPC_RecordChild1, // #1 = $vj ++/* 56903*/ OPC_CheckType, MVT::v4i32, ++/* 56905*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 56907*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITCLR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v4i32] } (xor:{ *:[v4i32] } immAllOnesV:{ *:[v4i32] }, (shl:{ *:[v4i32] } (build_vector:{ *:[v4i32] })<>, v4i32:{ *:[v4i32] }:$vk)), v4i32:{ *:[v4i32] }:$vj) - Complexity = 17 ++ // Dst: (VBITCLR_W:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vj, v4i32:{ *:[v4i32] }:$vk) ++/* 56915*/ /*Scope*/ 37, /*->56953*/ ++/* 56916*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 56919*/ OPC_MoveChild0, ++/* 56920*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 56923*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 56925*/ OPC_CheckType, MVT::i64, ++/* 56927*/ OPC_MoveParent, ++/* 56928*/ OPC_MoveChild1, ++/* 56929*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 56932*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 56934*/ OPC_CheckType, MVT::i64, ++/* 56936*/ OPC_MoveParent, ++/* 56937*/ OPC_MoveParent, ++/* 56938*/ OPC_RecordChild1, // #0 = $vj ++/* 56939*/ OPC_MoveParent, ++/* 56940*/ OPC_RecordChild1, // #1 = $vk ++/* 56941*/ OPC_CheckType, MVT::v2i64, ++/* 56943*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 56945*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VANDN_D_PSEUDO), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v2i64] } (xor:{ *:[v2i64] } (build_vector:{ *:[v2i64] } (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>), LSX128D:{ *:[v2i64] }:$vj), LSX128D:{ *:[v2i64] }:$vk) - Complexity = 17 ++ // Dst: (VANDN_D_PSEUDO:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vj, LSX128D:{ *:[v2i64] }:$vk) ++/* 56953*/ 0, /*End of Scope*/ ++/* 56954*/ /*Scope*/ 117, /*->57072*/ ++/* 56955*/ OPC_RecordChild0, // #0 = $vk ++/* 56956*/ OPC_MoveChild1, ++/* 56957*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 56960*/ OPC_Scope, 37, /*->56999*/ // 2 children in Scope ++/* 56962*/ OPC_RecordChild0, // #1 = $vj ++/* 56963*/ OPC_MoveChild1, ++/* 56964*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 56967*/ OPC_MoveChild0, ++/* 56968*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 56971*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 56973*/ OPC_CheckType, MVT::i64, ++/* 56975*/ OPC_MoveParent, ++/* 56976*/ OPC_MoveChild1, ++/* 56977*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 56980*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 56982*/ OPC_CheckType, MVT::i64, ++/* 56984*/ OPC_MoveParent, ++/* 56985*/ OPC_MoveParent, ++/* 56986*/ OPC_MoveParent, ++/* 56987*/ OPC_CheckType, MVT::v2i64, ++/* 56989*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 56991*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VANDN_D_PSEUDO), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vk, (xor:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vj, (build_vector:{ *:[v2i64] } (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>))) - Complexity = 17 ++ // Dst: (VANDN_D_PSEUDO:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vj, LSX128D:{ *:[v2i64] }:$vk) ++/* 56999*/ /*Scope*/ 71, /*->57071*/ ++/* 57000*/ OPC_MoveChild0, ++/* 57001*/ OPC_Scope, 36, /*->57039*/ // 2 children in Scope ++/* 57003*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 57006*/ OPC_MoveChild0, ++/* 57007*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 57010*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 57012*/ OPC_CheckType, MVT::i64, ++/* 57014*/ OPC_MoveParent, ++/* 57015*/ OPC_MoveChild1, ++/* 57016*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 57019*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 57021*/ OPC_CheckType, MVT::i64, ++/* 57023*/ OPC_MoveParent, ++/* 57024*/ OPC_MoveParent, ++/* 57025*/ OPC_RecordChild1, // #1 = $vj ++/* 57026*/ OPC_MoveParent, ++/* 57027*/ OPC_CheckType, MVT::v2i64, ++/* 57029*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 57031*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VANDN_D_PSEUDO), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vk, (xor:{ *:[v2i64] } (build_vector:{ *:[v2i64] } (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>), LSX128D:{ *:[v2i64] }:$vj)) - Complexity = 17 ++ // Dst: (VANDN_D_PSEUDO:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vj, LSX128D:{ *:[v2i64] }:$vk) ++/* 57039*/ /*Scope*/ 30, /*->57070*/ ++/* 57040*/ OPC_CheckImmAllOnesV, ++/* 57041*/ OPC_MoveParent, ++/* 57042*/ OPC_MoveChild1, ++/* 57043*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 57046*/ OPC_MoveChild0, ++/* 57047*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 57050*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 57052*/ OPC_MoveParent, ++/* 57053*/ OPC_RecordChild1, // #1 = $vk ++/* 57054*/ OPC_CheckChild1Type, MVT::v32i8, ++/* 57056*/ OPC_MoveParent, ++/* 57057*/ OPC_MoveParent, ++/* 57058*/ OPC_CheckType, MVT::v32i8, ++/* 57060*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 57062*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vj, (xor:{ *:[v32i8] } immAllOnesV:{ *:[v32i8] }, (shl:{ *:[v32i8] } (build_vector:{ *:[v32i8] })<>, v32i8:{ *:[v32i8] }:$vk))) - Complexity = 17 ++ // Dst: (XVBITCLR_B:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vj, v32i8:{ *:[v32i8] }:$vk) ++/* 57070*/ 0, /*End of Scope*/ ++/* 57071*/ 0, /*End of Scope*/ ++/* 57072*/ /*Scope*/ 71, /*->57144*/ ++/* 57073*/ OPC_MoveChild0, ++/* 57074*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 57077*/ OPC_MoveChild0, ++/* 57078*/ OPC_Scope, 31, /*->57111*/ // 2 children in Scope ++/* 57080*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 57083*/ OPC_MoveChild0, ++/* 57084*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 57087*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 57089*/ OPC_MoveParent, ++/* 57090*/ OPC_RecordChild1, // #0 = $vk ++/* 57091*/ OPC_CheckChild1Type, MVT::v32i8, ++/* 57093*/ OPC_MoveParent, ++/* 57094*/ OPC_MoveChild1, ++/* 57095*/ OPC_CheckImmAllOnesV, ++/* 57096*/ OPC_MoveParent, ++/* 57097*/ OPC_MoveParent, ++/* 57098*/ OPC_RecordChild1, // #1 = $vj ++/* 57099*/ OPC_CheckType, MVT::v32i8, ++/* 57101*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 57103*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v32i8] } (xor:{ *:[v32i8] } (shl:{ *:[v32i8] } (build_vector:{ *:[v32i8] })<>, v32i8:{ *:[v32i8] }:$vk), immAllOnesV:{ *:[v32i8] }), v32i8:{ *:[v32i8] }:$vj) - Complexity = 17 ++ // Dst: (XVBITCLR_B:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vj, v32i8:{ *:[v32i8] }:$vk) ++/* 57111*/ /*Scope*/ 31, /*->57143*/ ++/* 57112*/ OPC_CheckImmAllOnesV, ++/* 57113*/ OPC_MoveParent, ++/* 57114*/ OPC_MoveChild1, ++/* 57115*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 57118*/ OPC_MoveChild0, ++/* 57119*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 57122*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 57124*/ OPC_MoveParent, ++/* 57125*/ OPC_RecordChild1, // #0 = $vk ++/* 57126*/ OPC_CheckChild1Type, MVT::v32i8, ++/* 57128*/ OPC_MoveParent, ++/* 57129*/ OPC_MoveParent, ++/* 57130*/ OPC_RecordChild1, // #1 = $vj ++/* 57131*/ OPC_CheckType, MVT::v32i8, ++/* 57133*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 57135*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v32i8] } (xor:{ *:[v32i8] } immAllOnesV:{ *:[v32i8] }, (shl:{ *:[v32i8] } (build_vector:{ *:[v32i8] })<>, v32i8:{ *:[v32i8] }:$vk)), v32i8:{ *:[v32i8] }:$vj) - Complexity = 17 ++ // Dst: (XVBITCLR_B:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vj, v32i8:{ *:[v32i8] }:$vk) ++/* 57143*/ 0, /*End of Scope*/ ++/* 57144*/ /*Scope*/ 36, /*->57181*/ ++/* 57145*/ OPC_RecordChild0, // #0 = $vj ++/* 57146*/ OPC_MoveChild1, ++/* 57147*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 57150*/ OPC_MoveChild0, ++/* 57151*/ OPC_CheckImmAllOnesV, ++/* 57152*/ OPC_MoveParent, ++/* 57153*/ OPC_MoveChild1, ++/* 57154*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 57157*/ OPC_MoveChild0, ++/* 57158*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 57161*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 57163*/ OPC_MoveParent, ++/* 57164*/ OPC_RecordChild1, // #1 = $vk ++/* 57165*/ OPC_CheckChild1Type, MVT::v16i16, ++/* 57167*/ OPC_MoveParent, ++/* 57168*/ OPC_MoveParent, ++/* 57169*/ OPC_CheckType, MVT::v16i16, ++/* 57171*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 57173*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vj, (xor:{ *:[v16i16] } immAllOnesV:{ *:[v16i16] }, (shl:{ *:[v16i16] } (build_vector:{ *:[v16i16] })<>, v16i16:{ *:[v16i16] }:$vk))) - Complexity = 17 ++ // Dst: (XVBITCLR_H:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vj, v16i16:{ *:[v16i16] }:$vk) ++/* 57181*/ /*Scope*/ 71, /*->57253*/ ++/* 57182*/ OPC_MoveChild0, ++/* 57183*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 57186*/ OPC_MoveChild0, ++/* 57187*/ OPC_Scope, 31, /*->57220*/ // 2 children in Scope ++/* 57189*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 57192*/ OPC_MoveChild0, ++/* 57193*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 57196*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 57198*/ OPC_MoveParent, ++/* 57199*/ OPC_RecordChild1, // #0 = $vk ++/* 57200*/ OPC_CheckChild1Type, MVT::v16i16, ++/* 57202*/ OPC_MoveParent, ++/* 57203*/ OPC_MoveChild1, ++/* 57204*/ OPC_CheckImmAllOnesV, ++/* 57205*/ OPC_MoveParent, ++/* 57206*/ OPC_MoveParent, ++/* 57207*/ OPC_RecordChild1, // #1 = $vj ++/* 57208*/ OPC_CheckType, MVT::v16i16, ++/* 57210*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 57212*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v16i16] } (xor:{ *:[v16i16] } (shl:{ *:[v16i16] } (build_vector:{ *:[v16i16] })<>, v16i16:{ *:[v16i16] }:$vk), immAllOnesV:{ *:[v16i16] }), v16i16:{ *:[v16i16] }:$vj) - Complexity = 17 ++ // Dst: (XVBITCLR_H:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vj, v16i16:{ *:[v16i16] }:$vk) ++/* 57220*/ /*Scope*/ 31, /*->57252*/ ++/* 57221*/ OPC_CheckImmAllOnesV, ++/* 57222*/ OPC_MoveParent, ++/* 57223*/ OPC_MoveChild1, ++/* 57224*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 57227*/ OPC_MoveChild0, ++/* 57228*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 57231*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 57233*/ OPC_MoveParent, ++/* 57234*/ OPC_RecordChild1, // #0 = $vk ++/* 57235*/ OPC_CheckChild1Type, MVT::v16i16, ++/* 57237*/ OPC_MoveParent, ++/* 57238*/ OPC_MoveParent, ++/* 57239*/ OPC_RecordChild1, // #1 = $vj ++/* 57240*/ OPC_CheckType, MVT::v16i16, ++/* 57242*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 57244*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v16i16] } (xor:{ *:[v16i16] } immAllOnesV:{ *:[v16i16] }, (shl:{ *:[v16i16] } (build_vector:{ *:[v16i16] })<>, v16i16:{ *:[v16i16] }:$vk)), v16i16:{ *:[v16i16] }:$vj) - Complexity = 17 ++ // Dst: (XVBITCLR_H:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vj, v16i16:{ *:[v16i16] }:$vk) ++/* 57252*/ 0, /*End of Scope*/ ++/* 57253*/ /*Scope*/ 36, /*->57290*/ ++/* 57254*/ OPC_RecordChild0, // #0 = $vj ++/* 57255*/ OPC_MoveChild1, ++/* 57256*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 57259*/ OPC_MoveChild0, ++/* 57260*/ OPC_CheckImmAllOnesV, ++/* 57261*/ OPC_MoveParent, ++/* 57262*/ OPC_MoveChild1, ++/* 57263*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 57266*/ OPC_MoveChild0, ++/* 57267*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 57270*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 57272*/ OPC_MoveParent, ++/* 57273*/ OPC_RecordChild1, // #1 = $vk ++/* 57274*/ OPC_CheckChild1Type, MVT::v8i32, ++/* 57276*/ OPC_MoveParent, ++/* 57277*/ OPC_MoveParent, ++/* 57278*/ OPC_CheckType, MVT::v8i32, ++/* 57280*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 57282*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vj, (xor:{ *:[v8i32] } immAllOnesV:{ *:[v8i32] }, (shl:{ *:[v8i32] } (build_vector:{ *:[v8i32] })<>, v8i32:{ *:[v8i32] }:$vk))) - Complexity = 17 ++ // Dst: (XVBITCLR_W:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vj, v8i32:{ *:[v8i32] }:$vk) ++/* 57290*/ /*Scope*/ 71, /*->57362*/ ++/* 57291*/ OPC_MoveChild0, ++/* 57292*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 57295*/ OPC_MoveChild0, ++/* 57296*/ OPC_Scope, 31, /*->57329*/ // 2 children in Scope ++/* 57298*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 57301*/ OPC_MoveChild0, ++/* 57302*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 57305*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 57307*/ OPC_MoveParent, ++/* 57308*/ OPC_RecordChild1, // #0 = $vk ++/* 57309*/ OPC_CheckChild1Type, MVT::v8i32, ++/* 57311*/ OPC_MoveParent, ++/* 57312*/ OPC_MoveChild1, ++/* 57313*/ OPC_CheckImmAllOnesV, ++/* 57314*/ OPC_MoveParent, ++/* 57315*/ OPC_MoveParent, ++/* 57316*/ OPC_RecordChild1, // #1 = $vj ++/* 57317*/ OPC_CheckType, MVT::v8i32, ++/* 57319*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 57321*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v8i32] } (xor:{ *:[v8i32] } (shl:{ *:[v8i32] } (build_vector:{ *:[v8i32] })<>, v8i32:{ *:[v8i32] }:$vk), immAllOnesV:{ *:[v8i32] }), v8i32:{ *:[v8i32] }:$vj) - Complexity = 17 ++ // Dst: (XVBITCLR_W:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vj, v8i32:{ *:[v8i32] }:$vk) ++/* 57329*/ /*Scope*/ 31, /*->57361*/ ++/* 57330*/ OPC_CheckImmAllOnesV, ++/* 57331*/ OPC_MoveParent, ++/* 57332*/ OPC_MoveChild1, ++/* 57333*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 57336*/ OPC_MoveChild0, ++/* 57337*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 57340*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 57342*/ OPC_MoveParent, ++/* 57343*/ OPC_RecordChild1, // #0 = $vk ++/* 57344*/ OPC_CheckChild1Type, MVT::v8i32, ++/* 57346*/ OPC_MoveParent, ++/* 57347*/ OPC_MoveParent, ++/* 57348*/ OPC_RecordChild1, // #1 = $vj ++/* 57349*/ OPC_CheckType, MVT::v8i32, ++/* 57351*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 57353*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITCLR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (and:{ *:[v8i32] } (xor:{ *:[v8i32] } immAllOnesV:{ *:[v8i32] }, (shl:{ *:[v8i32] } (build_vector:{ *:[v8i32] })<>, v8i32:{ *:[v8i32] }:$vk)), v8i32:{ *:[v8i32] }:$vj) - Complexity = 17 ++ // Dst: (XVBITCLR_W:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vj, v8i32:{ *:[v8i32] }:$vk) ++/* 57361*/ 0, /*End of Scope*/ ++/* 57362*/ /*Scope*/ 22|128,1/*150*/, /*->57514*/ ++/* 57364*/ OPC_RecordChild0, // #0 = $vj ++/* 57365*/ OPC_RecordChild1, // #1 = $ui8 ++/* 57366*/ OPC_SwitchType /*8 cases */, 35, MVT::v16i8,// ->57404 ++/* 57369*/ OPC_Scope, 11, /*->57382*/ // 3 children in Scope ++/* 57371*/ OPC_CheckComplexPat, /*CP*/21, /*#*/1, // selectVSplatUimm8:$ui8 #2 ++/* 57374*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VANDI_B_N), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 2, ++ // Src: (and:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, vsplati8_uimm8:{ *:[v16i8] }:$ui8) - Complexity = 9 ++ // Dst: (VANDI_B_N:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, vsplati8_uimm8:{ *:[v16i8] }:$ui8) ++/* 57382*/ /*Scope*/ 11, /*->57394*/ ++/* 57383*/ OPC_CheckComplexPat, /*CP*/21, /*#*/0, // selectVSplatUimm8:$ui8 #2 ++/* 57386*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VANDI_B_N), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 2, ++ // Src: (and:{ *:[v16i8] } vsplati8_uimm8:{ *:[v16i8] }:$ui8, LSX128BOpnd:{ *:[v16i8] }:$vj) - Complexity = 9 ++ // Dst: (VANDI_B_N:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, vsplati8_uimm8:{ *:[v16i8] }:$ui8) ++/* 57394*/ /*Scope*/ 8, /*->57403*/ ++/* 57395*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAND_V), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) - Complexity = 3 ++ // Dst: (VAND_V:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/* 57403*/ 0, /*End of Scope*/ ++/* 57404*/ /*SwitchType*/ 35, MVT::v32i8,// ->57441 ++/* 57406*/ OPC_Scope, 11, /*->57419*/ // 3 children in Scope ++/* 57408*/ OPC_CheckComplexPat, /*CP*/22, /*#*/1, // selectVSplatUimm8:$ui8 #2 ++/* 57411*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVANDI_B_N), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 2, ++ // Src: (and:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, xvsplati8_uimm8:{ *:[v32i8] }:$ui8) - Complexity = 9 ++ // Dst: (XVANDI_B_N:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, xvsplati8_uimm8:{ *:[v32i8] }:$ui8) ++/* 57419*/ /*Scope*/ 11, /*->57431*/ ++/* 57420*/ OPC_CheckComplexPat, /*CP*/22, /*#*/0, // selectVSplatUimm8:$ui8 #2 ++/* 57423*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVANDI_B_N), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 2, ++ // Src: (and:{ *:[v32i8] } xvsplati8_uimm8:{ *:[v32i8] }:$ui8, LASX256BOpnd:{ *:[v32i8] }:$xj) - Complexity = 9 ++ // Dst: (XVANDI_B_N:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, xvsplati8_uimm8:{ *:[v32i8] }:$ui8) ++/* 57431*/ /*Scope*/ 8, /*->57440*/ ++/* 57432*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAND_V), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 3 ++ // Dst: (XVAND_V:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 57440*/ 0, /*End of Scope*/ ++/* 57441*/ /*SwitchType*/ 10, MVT::v8i16,// ->57453 ++/* 57443*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 57445*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::AND_V_H_PSEUDO), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 3 ++ // Dst: (AND_V_H_PSEUDO:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/* 57453*/ /*SwitchType*/ 10, MVT::v4i32,// ->57465 ++/* 57455*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 57457*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::AND_V_W_PSEUDO), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 3 ++ // Dst: (AND_V_W_PSEUDO:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/* 57465*/ /*SwitchType*/ 10, MVT::v2i64,// ->57477 ++/* 57467*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 57469*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::AND_V_D_PSEUDO), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 3 ++ // Dst: (AND_V_D_PSEUDO:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 57477*/ /*SwitchType*/ 10, MVT::v16i16,// ->57489 ++/* 57479*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 57481*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XAND_V_H_PSEUDO), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 3 ++ // Dst: (XAND_V_H_PSEUDO:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 57489*/ /*SwitchType*/ 10, MVT::v8i32,// ->57501 ++/* 57491*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 57493*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XAND_V_W_PSEUDO), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 3 ++ // Dst: (XAND_V_W_PSEUDO:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 57501*/ /*SwitchType*/ 10, MVT::v4i64,// ->57513 ++/* 57503*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 57505*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XAND_V_D_PSEUDO), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (and:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 3 ++ // Dst: (XAND_V_D_PSEUDO:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 57513*/ 0, // EndSwitchType ++/* 57514*/ 0, /*End of Scope*/ ++/* 57515*/ /*SwitchOpcode*/ 121|128,68/*8825*/, TARGET_VAL(ISD::OR),// ->66344 ++/* 57519*/ OPC_Scope, 28, /*->57549*/ // 37 children in Scope ++/* 57521*/ OPC_RecordChild0, // #0 = $rj ++/* 57522*/ OPC_MoveChild1, ++/* 57523*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 57526*/ OPC_RecordChild0, // #1 = $rk ++/* 57527*/ OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, ++/* 57538*/ OPC_MoveParent, ++/* 57539*/ OPC_CheckType, MVT::i64, ++/* 57541*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ORN), 0, ++ MVT::i64, 2/*#Ops*/, 0, 1, ++ // Src: (or:{ *:[i64] } GPR64:{ *:[i64] }:$rj, (xor:{ *:[i64] } GPR64:{ *:[i64] }:$rk, -1:{ *:[i64] })) - Complexity = 11 ++ // Dst: (ORN:{ *:[i64] } GPR64:{ *:[i64] }:$rj, GPR64:{ *:[i64] }:$rk) ++/* 57549*/ /*Scope*/ 28, /*->57578*/ ++/* 57550*/ OPC_MoveChild0, ++/* 57551*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 57554*/ OPC_RecordChild0, // #0 = $rk ++/* 57555*/ OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, ++/* 57566*/ OPC_MoveParent, ++/* 57567*/ OPC_RecordChild1, // #1 = $rj ++/* 57568*/ OPC_CheckType, MVT::i64, ++/* 57570*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ORN), 0, ++ MVT::i64, 2/*#Ops*/, 1, 0, ++ // Src: (or:{ *:[i64] } (xor:{ *:[i64] } GPR64:{ *:[i64] }:$rk, -1:{ *:[i64] }), GPR64:{ *:[i64] }:$rj) - Complexity = 11 ++ // Dst: (ORN:{ *:[i64] } GPR64:{ *:[i64] }:$rj, GPR64:{ *:[i64] }:$rk) ++/* 57578*/ /*Scope*/ 7|128,6/*775*/, /*->58355*/ ++/* 57580*/ OPC_RecordChild0, // #0 = $rj ++/* 57581*/ OPC_Scope, 80, /*->57663*/ // 2 children in Scope ++/* 57583*/ OPC_RecordChild1, // #1 = $imm12 ++/* 57584*/ OPC_Scope, 54, /*->57640*/ // 3 children in Scope ++/* 57586*/ OPC_MoveChild1, ++/* 57587*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 57590*/ OPC_Scope, 15, /*->57607*/ // 3 children in Scope ++/* 57592*/ OPC_CheckPredicate, 12, // Predicate_uimm12 ++/* 57594*/ OPC_MoveParent, ++/* 57595*/ OPC_CheckType, MVT::i64, ++/* 57597*/ OPC_EmitConvertToTarget, 1, ++/* 57599*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ORI), 0, ++ MVT::i64, 2/*#Ops*/, 0, 2, ++ // Src: (or:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, (imm:{ *:[i64] })<>:$imm12) - Complexity = 7 ++ // Dst: (ORI:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, (imm:{ *:[i64] }):$imm12) ++/* 57607*/ /*Scope*/ 15, /*->57623*/ ++/* 57608*/ OPC_CheckPredicate, 12, // Predicate_uimm12_32 ++/* 57610*/ OPC_MoveParent, ++/* 57611*/ OPC_CheckType, MVT::i32, ++/* 57613*/ OPC_EmitConvertToTarget, 1, ++/* 57615*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ORI32), 0, ++ MVT::i32, 2/*#Ops*/, 0, 2, ++ // Src: (or:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, (imm:{ *:[i32] })<>:$imm12) - Complexity = 7 ++ // Dst: (ORI32:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, (imm:{ *:[i32] }):$imm12) ++/* 57623*/ /*Scope*/ 15, /*->57639*/ ++/* 57624*/ OPC_CheckPredicate, 12, // Predicate_uimm12 ++/* 57626*/ OPC_MoveParent, ++/* 57627*/ OPC_CheckType, MVT::i64, ++/* 57629*/ OPC_EmitConvertToTarget, 1, ++/* 57631*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ORI_rri), 0, ++ MVT::i64, 2/*#Ops*/, 0, 2, ++ // Src: (or:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, (imm:{ *:[i64] })<>:$imm12) - Complexity = 7 ++ // Dst: (ORI_rri:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, (imm:{ *:[i64] }):$imm12) ++/* 57639*/ 0, /*End of Scope*/ ++/* 57640*/ /*Scope*/ 10, /*->57651*/ ++/* 57641*/ OPC_CheckType, MVT::i64, ++/* 57643*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::OR), 0, ++ MVT::i64, 2/*#Ops*/, 0, 1, ++ // Src: (or:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, GPR64Opnd:{ *:[i64] }:$rk) - Complexity = 3 ++ // Dst: (OR:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, GPR64Opnd:{ *:[i64] }:$rk) ++/* 57651*/ /*Scope*/ 10, /*->57662*/ ++/* 57652*/ OPC_CheckType, MVT::i32, ++/* 57654*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::OR32), 0, ++ MVT::i32, 2/*#Ops*/, 0, 1, ++ // Src: (or:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) - Complexity = 3 ++ // Dst: (OR32:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) ++/* 57662*/ 0, /*End of Scope*/ ++/* 57663*/ /*Scope*/ 49|128,5/*689*/, /*->58354*/ ++/* 57665*/ OPC_MoveChild1, ++/* 57666*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 57669*/ OPC_MoveChild0, ++/* 57670*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 57673*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 57675*/ OPC_MoveParent, ++/* 57676*/ OPC_MoveChild1, ++/* 57677*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 57680*/ OPC_Scope, 78|128,2/*334*/, /*->58017*/ // 2 children in Scope ++/* 57683*/ OPC_RecordChild0, // #1 = $vt ++/* 57684*/ OPC_MoveChild1, ++/* 57685*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 57688*/ OPC_MoveChild0, ++/* 57689*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 57692*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 57694*/ OPC_CheckType, MVT::i32, ++/* 57696*/ OPC_MoveParent, ++/* 57697*/ OPC_MoveChild1, ++/* 57698*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 57701*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 57703*/ OPC_CheckType, MVT::i32, ++/* 57705*/ OPC_MoveParent, ++/* 57706*/ OPC_MoveChild2, ++/* 57707*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 57710*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 57712*/ OPC_CheckType, MVT::i32, ++/* 57714*/ OPC_MoveParent, ++/* 57715*/ OPC_MoveChild3, ++/* 57716*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 57719*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 57721*/ OPC_CheckType, MVT::i32, ++/* 57723*/ OPC_MoveParent, ++/* 57724*/ OPC_MoveChild4, ++/* 57725*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 57728*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 57730*/ OPC_CheckType, MVT::i32, ++/* 57732*/ OPC_MoveParent, ++/* 57733*/ OPC_MoveChild5, ++/* 57734*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 57737*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 57739*/ OPC_CheckType, MVT::i32, ++/* 57741*/ OPC_MoveParent, ++/* 57742*/ OPC_MoveChild6, ++/* 57743*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 57746*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 57748*/ OPC_CheckType, MVT::i32, ++/* 57750*/ OPC_MoveParent, ++/* 57751*/ OPC_MoveChild7, ++/* 57752*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 57755*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 57757*/ OPC_CheckType, MVT::i32, ++/* 57759*/ OPC_MoveParent, ++/* 57760*/ OPC_MoveChild, 8, ++/* 57762*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 57765*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 57767*/ OPC_CheckType, MVT::i32, ++/* 57769*/ OPC_MoveParent, ++/* 57770*/ OPC_MoveChild, 9, ++/* 57772*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 57775*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 57777*/ OPC_CheckType, MVT::i32, ++/* 57779*/ OPC_MoveParent, ++/* 57780*/ OPC_MoveChild, 10, ++/* 57782*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 57785*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 57787*/ OPC_CheckType, MVT::i32, ++/* 57789*/ OPC_MoveParent, ++/* 57790*/ OPC_MoveChild, 11, ++/* 57792*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 57795*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 57797*/ OPC_CheckType, MVT::i32, ++/* 57799*/ OPC_MoveParent, ++/* 57800*/ OPC_MoveChild, 12, ++/* 57802*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 57805*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 57807*/ OPC_CheckType, MVT::i32, ++/* 57809*/ OPC_MoveParent, ++/* 57810*/ OPC_MoveChild, 13, ++/* 57812*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 57815*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 57817*/ OPC_CheckType, MVT::i32, ++/* 57819*/ OPC_MoveParent, ++/* 57820*/ OPC_MoveChild, 14, ++/* 57822*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 57825*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 57827*/ OPC_CheckType, MVT::i32, ++/* 57829*/ OPC_MoveParent, ++/* 57830*/ OPC_MoveChild, 15, ++/* 57832*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 57835*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 57837*/ OPC_CheckType, MVT::i32, ++/* 57839*/ OPC_MoveParent, ++/* 57840*/ OPC_MoveChild, 16, ++/* 57842*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 57845*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 57847*/ OPC_CheckType, MVT::i32, ++/* 57849*/ OPC_MoveParent, ++/* 57850*/ OPC_MoveChild, 17, ++/* 57852*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 57855*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 57857*/ OPC_CheckType, MVT::i32, ++/* 57859*/ OPC_MoveParent, ++/* 57860*/ OPC_MoveChild, 18, ++/* 57862*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 57865*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 57867*/ OPC_CheckType, MVT::i32, ++/* 57869*/ OPC_MoveParent, ++/* 57870*/ OPC_MoveChild, 19, ++/* 57872*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 57875*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 57877*/ OPC_CheckType, MVT::i32, ++/* 57879*/ OPC_MoveParent, ++/* 57880*/ OPC_MoveChild, 20, ++/* 57882*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 57885*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 57887*/ OPC_CheckType, MVT::i32, ++/* 57889*/ OPC_MoveParent, ++/* 57890*/ OPC_MoveChild, 21, ++/* 57892*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 57895*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 57897*/ OPC_CheckType, MVT::i32, ++/* 57899*/ OPC_MoveParent, ++/* 57900*/ OPC_MoveChild, 22, ++/* 57902*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 57905*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 57907*/ OPC_CheckType, MVT::i32, ++/* 57909*/ OPC_MoveParent, ++/* 57910*/ OPC_MoveChild, 23, ++/* 57912*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 57915*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 57917*/ OPC_CheckType, MVT::i32, ++/* 57919*/ OPC_MoveParent, ++/* 57920*/ OPC_MoveChild, 24, ++/* 57922*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 57925*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 57927*/ OPC_CheckType, MVT::i32, ++/* 57929*/ OPC_MoveParent, ++/* 57930*/ OPC_MoveChild, 25, ++/* 57932*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 57935*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 57937*/ OPC_CheckType, MVT::i32, ++/* 57939*/ OPC_MoveParent, ++/* 57940*/ OPC_MoveChild, 26, ++/* 57942*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 57945*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 57947*/ OPC_CheckType, MVT::i32, ++/* 57949*/ OPC_MoveParent, ++/* 57950*/ OPC_MoveChild, 27, ++/* 57952*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 57955*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 57957*/ OPC_CheckType, MVT::i32, ++/* 57959*/ OPC_MoveParent, ++/* 57960*/ OPC_MoveChild, 28, ++/* 57962*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 57965*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 57967*/ OPC_CheckType, MVT::i32, ++/* 57969*/ OPC_MoveParent, ++/* 57970*/ OPC_MoveChild, 29, ++/* 57972*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 57975*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 57977*/ OPC_CheckType, MVT::i32, ++/* 57979*/ OPC_MoveParent, ++/* 57980*/ OPC_MoveChild, 30, ++/* 57982*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 57985*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 57987*/ OPC_CheckType, MVT::i32, ++/* 57989*/ OPC_MoveParent, ++/* 57990*/ OPC_MoveChild, 31, ++/* 57992*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 57995*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 57997*/ OPC_CheckType, MVT::i32, ++/* 57999*/ OPC_MoveParent, ++/* 58000*/ OPC_MoveParent, ++/* 58001*/ OPC_CheckType, MVT::v32i8, ++/* 58003*/ OPC_MoveParent, ++/* 58004*/ OPC_MoveParent, ++/* 58005*/ OPC_CheckType, MVT::v32i8, ++/* 58007*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 58009*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITSET_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (or:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vs, (shl:{ *:[v32i8] } (build_vector:{ *:[v32i8] })<>, (and:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vt, (build_vector:{ *:[v32i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>)))) - Complexity = 144 ++ // Dst: (XVBITSET_B:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vs, v32i8:{ *:[v32i8] }:$vt) ++/* 58017*/ /*Scope*/ 78|128,2/*334*/, /*->58353*/ ++/* 58019*/ OPC_MoveChild0, ++/* 58020*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 58023*/ OPC_MoveChild0, ++/* 58024*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58027*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58029*/ OPC_CheckType, MVT::i32, ++/* 58031*/ OPC_MoveParent, ++/* 58032*/ OPC_MoveChild1, ++/* 58033*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58036*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58038*/ OPC_CheckType, MVT::i32, ++/* 58040*/ OPC_MoveParent, ++/* 58041*/ OPC_MoveChild2, ++/* 58042*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58045*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58047*/ OPC_CheckType, MVT::i32, ++/* 58049*/ OPC_MoveParent, ++/* 58050*/ OPC_MoveChild3, ++/* 58051*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58054*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58056*/ OPC_CheckType, MVT::i32, ++/* 58058*/ OPC_MoveParent, ++/* 58059*/ OPC_MoveChild4, ++/* 58060*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58063*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58065*/ OPC_CheckType, MVT::i32, ++/* 58067*/ OPC_MoveParent, ++/* 58068*/ OPC_MoveChild5, ++/* 58069*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58072*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58074*/ OPC_CheckType, MVT::i32, ++/* 58076*/ OPC_MoveParent, ++/* 58077*/ OPC_MoveChild6, ++/* 58078*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58081*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58083*/ OPC_CheckType, MVT::i32, ++/* 58085*/ OPC_MoveParent, ++/* 58086*/ OPC_MoveChild7, ++/* 58087*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58090*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58092*/ OPC_CheckType, MVT::i32, ++/* 58094*/ OPC_MoveParent, ++/* 58095*/ OPC_MoveChild, 8, ++/* 58097*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58100*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58102*/ OPC_CheckType, MVT::i32, ++/* 58104*/ OPC_MoveParent, ++/* 58105*/ OPC_MoveChild, 9, ++/* 58107*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58110*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58112*/ OPC_CheckType, MVT::i32, ++/* 58114*/ OPC_MoveParent, ++/* 58115*/ OPC_MoveChild, 10, ++/* 58117*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58120*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58122*/ OPC_CheckType, MVT::i32, ++/* 58124*/ OPC_MoveParent, ++/* 58125*/ OPC_MoveChild, 11, ++/* 58127*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58130*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58132*/ OPC_CheckType, MVT::i32, ++/* 58134*/ OPC_MoveParent, ++/* 58135*/ OPC_MoveChild, 12, ++/* 58137*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58140*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58142*/ OPC_CheckType, MVT::i32, ++/* 58144*/ OPC_MoveParent, ++/* 58145*/ OPC_MoveChild, 13, ++/* 58147*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58150*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58152*/ OPC_CheckType, MVT::i32, ++/* 58154*/ OPC_MoveParent, ++/* 58155*/ OPC_MoveChild, 14, ++/* 58157*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58160*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58162*/ OPC_CheckType, MVT::i32, ++/* 58164*/ OPC_MoveParent, ++/* 58165*/ OPC_MoveChild, 15, ++/* 58167*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58170*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58172*/ OPC_CheckType, MVT::i32, ++/* 58174*/ OPC_MoveParent, ++/* 58175*/ OPC_MoveChild, 16, ++/* 58177*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58180*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58182*/ OPC_CheckType, MVT::i32, ++/* 58184*/ OPC_MoveParent, ++/* 58185*/ OPC_MoveChild, 17, ++/* 58187*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58190*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58192*/ OPC_CheckType, MVT::i32, ++/* 58194*/ OPC_MoveParent, ++/* 58195*/ OPC_MoveChild, 18, ++/* 58197*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58200*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58202*/ OPC_CheckType, MVT::i32, ++/* 58204*/ OPC_MoveParent, ++/* 58205*/ OPC_MoveChild, 19, ++/* 58207*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58210*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58212*/ OPC_CheckType, MVT::i32, ++/* 58214*/ OPC_MoveParent, ++/* 58215*/ OPC_MoveChild, 20, ++/* 58217*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58220*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58222*/ OPC_CheckType, MVT::i32, ++/* 58224*/ OPC_MoveParent, ++/* 58225*/ OPC_MoveChild, 21, ++/* 58227*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58230*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58232*/ OPC_CheckType, MVT::i32, ++/* 58234*/ OPC_MoveParent, ++/* 58235*/ OPC_MoveChild, 22, ++/* 58237*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58240*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58242*/ OPC_CheckType, MVT::i32, ++/* 58244*/ OPC_MoveParent, ++/* 58245*/ OPC_MoveChild, 23, ++/* 58247*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58250*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58252*/ OPC_CheckType, MVT::i32, ++/* 58254*/ OPC_MoveParent, ++/* 58255*/ OPC_MoveChild, 24, ++/* 58257*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58260*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58262*/ OPC_CheckType, MVT::i32, ++/* 58264*/ OPC_MoveParent, ++/* 58265*/ OPC_MoveChild, 25, ++/* 58267*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58270*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58272*/ OPC_CheckType, MVT::i32, ++/* 58274*/ OPC_MoveParent, ++/* 58275*/ OPC_MoveChild, 26, ++/* 58277*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58280*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58282*/ OPC_CheckType, MVT::i32, ++/* 58284*/ OPC_MoveParent, ++/* 58285*/ OPC_MoveChild, 27, ++/* 58287*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58290*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58292*/ OPC_CheckType, MVT::i32, ++/* 58294*/ OPC_MoveParent, ++/* 58295*/ OPC_MoveChild, 28, ++/* 58297*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58300*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58302*/ OPC_CheckType, MVT::i32, ++/* 58304*/ OPC_MoveParent, ++/* 58305*/ OPC_MoveChild, 29, ++/* 58307*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58310*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58312*/ OPC_CheckType, MVT::i32, ++/* 58314*/ OPC_MoveParent, ++/* 58315*/ OPC_MoveChild, 30, ++/* 58317*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58320*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58322*/ OPC_CheckType, MVT::i32, ++/* 58324*/ OPC_MoveParent, ++/* 58325*/ OPC_MoveChild, 31, ++/* 58327*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58330*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58332*/ OPC_CheckType, MVT::i32, ++/* 58334*/ OPC_MoveParent, ++/* 58335*/ OPC_MoveParent, ++/* 58336*/ OPC_RecordChild1, // #1 = $vt ++/* 58337*/ OPC_CheckType, MVT::v32i8, ++/* 58339*/ OPC_MoveParent, ++/* 58340*/ OPC_MoveParent, ++/* 58341*/ OPC_CheckType, MVT::v32i8, ++/* 58343*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 58345*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITSET_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (or:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vs, (shl:{ *:[v32i8] } (build_vector:{ *:[v32i8] })<>, (and:{ *:[v32i8] } (build_vector:{ *:[v32i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v32i8:{ *:[v32i8] }:$vt))) - Complexity = 144 ++ // Dst: (XVBITSET_B:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vs, v32i8:{ *:[v32i8] }:$vt) ++/* 58353*/ 0, /*End of Scope*/ ++/* 58354*/ 0, /*End of Scope*/ ++/* 58355*/ /*Scope*/ 51|128,5/*691*/, /*->59048*/ ++/* 58357*/ OPC_MoveChild0, ++/* 58358*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 58361*/ OPC_MoveChild0, ++/* 58362*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 58365*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 58367*/ OPC_MoveParent, ++/* 58368*/ OPC_MoveChild1, ++/* 58369*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 58372*/ OPC_Scope, 79|128,2/*335*/, /*->58710*/ // 2 children in Scope ++/* 58375*/ OPC_RecordChild0, // #0 = $vt ++/* 58376*/ OPC_MoveChild1, ++/* 58377*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 58380*/ OPC_MoveChild0, ++/* 58381*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58384*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58386*/ OPC_CheckType, MVT::i32, ++/* 58388*/ OPC_MoveParent, ++/* 58389*/ OPC_MoveChild1, ++/* 58390*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58393*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58395*/ OPC_CheckType, MVT::i32, ++/* 58397*/ OPC_MoveParent, ++/* 58398*/ OPC_MoveChild2, ++/* 58399*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58402*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58404*/ OPC_CheckType, MVT::i32, ++/* 58406*/ OPC_MoveParent, ++/* 58407*/ OPC_MoveChild3, ++/* 58408*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58411*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58413*/ OPC_CheckType, MVT::i32, ++/* 58415*/ OPC_MoveParent, ++/* 58416*/ OPC_MoveChild4, ++/* 58417*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58420*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58422*/ OPC_CheckType, MVT::i32, ++/* 58424*/ OPC_MoveParent, ++/* 58425*/ OPC_MoveChild5, ++/* 58426*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58429*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58431*/ OPC_CheckType, MVT::i32, ++/* 58433*/ OPC_MoveParent, ++/* 58434*/ OPC_MoveChild6, ++/* 58435*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58438*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58440*/ OPC_CheckType, MVT::i32, ++/* 58442*/ OPC_MoveParent, ++/* 58443*/ OPC_MoveChild7, ++/* 58444*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58447*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58449*/ OPC_CheckType, MVT::i32, ++/* 58451*/ OPC_MoveParent, ++/* 58452*/ OPC_MoveChild, 8, ++/* 58454*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58457*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58459*/ OPC_CheckType, MVT::i32, ++/* 58461*/ OPC_MoveParent, ++/* 58462*/ OPC_MoveChild, 9, ++/* 58464*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58467*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58469*/ OPC_CheckType, MVT::i32, ++/* 58471*/ OPC_MoveParent, ++/* 58472*/ OPC_MoveChild, 10, ++/* 58474*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58477*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58479*/ OPC_CheckType, MVT::i32, ++/* 58481*/ OPC_MoveParent, ++/* 58482*/ OPC_MoveChild, 11, ++/* 58484*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58487*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58489*/ OPC_CheckType, MVT::i32, ++/* 58491*/ OPC_MoveParent, ++/* 58492*/ OPC_MoveChild, 12, ++/* 58494*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58497*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58499*/ OPC_CheckType, MVT::i32, ++/* 58501*/ OPC_MoveParent, ++/* 58502*/ OPC_MoveChild, 13, ++/* 58504*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58507*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58509*/ OPC_CheckType, MVT::i32, ++/* 58511*/ OPC_MoveParent, ++/* 58512*/ OPC_MoveChild, 14, ++/* 58514*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58517*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58519*/ OPC_CheckType, MVT::i32, ++/* 58521*/ OPC_MoveParent, ++/* 58522*/ OPC_MoveChild, 15, ++/* 58524*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58527*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58529*/ OPC_CheckType, MVT::i32, ++/* 58531*/ OPC_MoveParent, ++/* 58532*/ OPC_MoveChild, 16, ++/* 58534*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58537*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58539*/ OPC_CheckType, MVT::i32, ++/* 58541*/ OPC_MoveParent, ++/* 58542*/ OPC_MoveChild, 17, ++/* 58544*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58547*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58549*/ OPC_CheckType, MVT::i32, ++/* 58551*/ OPC_MoveParent, ++/* 58552*/ OPC_MoveChild, 18, ++/* 58554*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58557*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58559*/ OPC_CheckType, MVT::i32, ++/* 58561*/ OPC_MoveParent, ++/* 58562*/ OPC_MoveChild, 19, ++/* 58564*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58567*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58569*/ OPC_CheckType, MVT::i32, ++/* 58571*/ OPC_MoveParent, ++/* 58572*/ OPC_MoveChild, 20, ++/* 58574*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58577*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58579*/ OPC_CheckType, MVT::i32, ++/* 58581*/ OPC_MoveParent, ++/* 58582*/ OPC_MoveChild, 21, ++/* 58584*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58587*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58589*/ OPC_CheckType, MVT::i32, ++/* 58591*/ OPC_MoveParent, ++/* 58592*/ OPC_MoveChild, 22, ++/* 58594*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58597*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58599*/ OPC_CheckType, MVT::i32, ++/* 58601*/ OPC_MoveParent, ++/* 58602*/ OPC_MoveChild, 23, ++/* 58604*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58607*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58609*/ OPC_CheckType, MVT::i32, ++/* 58611*/ OPC_MoveParent, ++/* 58612*/ OPC_MoveChild, 24, ++/* 58614*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58617*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58619*/ OPC_CheckType, MVT::i32, ++/* 58621*/ OPC_MoveParent, ++/* 58622*/ OPC_MoveChild, 25, ++/* 58624*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58627*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58629*/ OPC_CheckType, MVT::i32, ++/* 58631*/ OPC_MoveParent, ++/* 58632*/ OPC_MoveChild, 26, ++/* 58634*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58637*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58639*/ OPC_CheckType, MVT::i32, ++/* 58641*/ OPC_MoveParent, ++/* 58642*/ OPC_MoveChild, 27, ++/* 58644*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58647*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58649*/ OPC_CheckType, MVT::i32, ++/* 58651*/ OPC_MoveParent, ++/* 58652*/ OPC_MoveChild, 28, ++/* 58654*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58657*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58659*/ OPC_CheckType, MVT::i32, ++/* 58661*/ OPC_MoveParent, ++/* 58662*/ OPC_MoveChild, 29, ++/* 58664*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58667*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58669*/ OPC_CheckType, MVT::i32, ++/* 58671*/ OPC_MoveParent, ++/* 58672*/ OPC_MoveChild, 30, ++/* 58674*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58677*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58679*/ OPC_CheckType, MVT::i32, ++/* 58681*/ OPC_MoveParent, ++/* 58682*/ OPC_MoveChild, 31, ++/* 58684*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58687*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58689*/ OPC_CheckType, MVT::i32, ++/* 58691*/ OPC_MoveParent, ++/* 58692*/ OPC_MoveParent, ++/* 58693*/ OPC_CheckType, MVT::v32i8, ++/* 58695*/ OPC_MoveParent, ++/* 58696*/ OPC_MoveParent, ++/* 58697*/ OPC_RecordChild1, // #1 = $vs ++/* 58698*/ OPC_CheckType, MVT::v32i8, ++/* 58700*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 58702*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITSET_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (or:{ *:[v32i8] } (shl:{ *:[v32i8] } (build_vector:{ *:[v32i8] })<>, (and:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vt, (build_vector:{ *:[v32i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))), v32i8:{ *:[v32i8] }:$vs) - Complexity = 144 ++ // Dst: (XVBITSET_B:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vs, v32i8:{ *:[v32i8] }:$vt) ++/* 58710*/ /*Scope*/ 79|128,2/*335*/, /*->59047*/ ++/* 58712*/ OPC_MoveChild0, ++/* 58713*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 58716*/ OPC_MoveChild0, ++/* 58717*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58720*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58722*/ OPC_CheckType, MVT::i32, ++/* 58724*/ OPC_MoveParent, ++/* 58725*/ OPC_MoveChild1, ++/* 58726*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58729*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58731*/ OPC_CheckType, MVT::i32, ++/* 58733*/ OPC_MoveParent, ++/* 58734*/ OPC_MoveChild2, ++/* 58735*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58738*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58740*/ OPC_CheckType, MVT::i32, ++/* 58742*/ OPC_MoveParent, ++/* 58743*/ OPC_MoveChild3, ++/* 58744*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58747*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58749*/ OPC_CheckType, MVT::i32, ++/* 58751*/ OPC_MoveParent, ++/* 58752*/ OPC_MoveChild4, ++/* 58753*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58756*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58758*/ OPC_CheckType, MVT::i32, ++/* 58760*/ OPC_MoveParent, ++/* 58761*/ OPC_MoveChild5, ++/* 58762*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58765*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58767*/ OPC_CheckType, MVT::i32, ++/* 58769*/ OPC_MoveParent, ++/* 58770*/ OPC_MoveChild6, ++/* 58771*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58774*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58776*/ OPC_CheckType, MVT::i32, ++/* 58778*/ OPC_MoveParent, ++/* 58779*/ OPC_MoveChild7, ++/* 58780*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58783*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58785*/ OPC_CheckType, MVT::i32, ++/* 58787*/ OPC_MoveParent, ++/* 58788*/ OPC_MoveChild, 8, ++/* 58790*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58793*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58795*/ OPC_CheckType, MVT::i32, ++/* 58797*/ OPC_MoveParent, ++/* 58798*/ OPC_MoveChild, 9, ++/* 58800*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58803*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58805*/ OPC_CheckType, MVT::i32, ++/* 58807*/ OPC_MoveParent, ++/* 58808*/ OPC_MoveChild, 10, ++/* 58810*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58813*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58815*/ OPC_CheckType, MVT::i32, ++/* 58817*/ OPC_MoveParent, ++/* 58818*/ OPC_MoveChild, 11, ++/* 58820*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58823*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58825*/ OPC_CheckType, MVT::i32, ++/* 58827*/ OPC_MoveParent, ++/* 58828*/ OPC_MoveChild, 12, ++/* 58830*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58833*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58835*/ OPC_CheckType, MVT::i32, ++/* 58837*/ OPC_MoveParent, ++/* 58838*/ OPC_MoveChild, 13, ++/* 58840*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58843*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58845*/ OPC_CheckType, MVT::i32, ++/* 58847*/ OPC_MoveParent, ++/* 58848*/ OPC_MoveChild, 14, ++/* 58850*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58853*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58855*/ OPC_CheckType, MVT::i32, ++/* 58857*/ OPC_MoveParent, ++/* 58858*/ OPC_MoveChild, 15, ++/* 58860*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58863*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58865*/ OPC_CheckType, MVT::i32, ++/* 58867*/ OPC_MoveParent, ++/* 58868*/ OPC_MoveChild, 16, ++/* 58870*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58873*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58875*/ OPC_CheckType, MVT::i32, ++/* 58877*/ OPC_MoveParent, ++/* 58878*/ OPC_MoveChild, 17, ++/* 58880*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58883*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58885*/ OPC_CheckType, MVT::i32, ++/* 58887*/ OPC_MoveParent, ++/* 58888*/ OPC_MoveChild, 18, ++/* 58890*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58893*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58895*/ OPC_CheckType, MVT::i32, ++/* 58897*/ OPC_MoveParent, ++/* 58898*/ OPC_MoveChild, 19, ++/* 58900*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58903*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58905*/ OPC_CheckType, MVT::i32, ++/* 58907*/ OPC_MoveParent, ++/* 58908*/ OPC_MoveChild, 20, ++/* 58910*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58913*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58915*/ OPC_CheckType, MVT::i32, ++/* 58917*/ OPC_MoveParent, ++/* 58918*/ OPC_MoveChild, 21, ++/* 58920*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58923*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58925*/ OPC_CheckType, MVT::i32, ++/* 58927*/ OPC_MoveParent, ++/* 58928*/ OPC_MoveChild, 22, ++/* 58930*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58933*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58935*/ OPC_CheckType, MVT::i32, ++/* 58937*/ OPC_MoveParent, ++/* 58938*/ OPC_MoveChild, 23, ++/* 58940*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58943*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58945*/ OPC_CheckType, MVT::i32, ++/* 58947*/ OPC_MoveParent, ++/* 58948*/ OPC_MoveChild, 24, ++/* 58950*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58953*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58955*/ OPC_CheckType, MVT::i32, ++/* 58957*/ OPC_MoveParent, ++/* 58958*/ OPC_MoveChild, 25, ++/* 58960*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58963*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58965*/ OPC_CheckType, MVT::i32, ++/* 58967*/ OPC_MoveParent, ++/* 58968*/ OPC_MoveChild, 26, ++/* 58970*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58973*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58975*/ OPC_CheckType, MVT::i32, ++/* 58977*/ OPC_MoveParent, ++/* 58978*/ OPC_MoveChild, 27, ++/* 58980*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58983*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58985*/ OPC_CheckType, MVT::i32, ++/* 58987*/ OPC_MoveParent, ++/* 58988*/ OPC_MoveChild, 28, ++/* 58990*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 58993*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 58995*/ OPC_CheckType, MVT::i32, ++/* 58997*/ OPC_MoveParent, ++/* 58998*/ OPC_MoveChild, 29, ++/* 59000*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59003*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 59005*/ OPC_CheckType, MVT::i32, ++/* 59007*/ OPC_MoveParent, ++/* 59008*/ OPC_MoveChild, 30, ++/* 59010*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59013*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 59015*/ OPC_CheckType, MVT::i32, ++/* 59017*/ OPC_MoveParent, ++/* 59018*/ OPC_MoveChild, 31, ++/* 59020*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59023*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 59025*/ OPC_CheckType, MVT::i32, ++/* 59027*/ OPC_MoveParent, ++/* 59028*/ OPC_MoveParent, ++/* 59029*/ OPC_RecordChild1, // #0 = $vt ++/* 59030*/ OPC_CheckType, MVT::v32i8, ++/* 59032*/ OPC_MoveParent, ++/* 59033*/ OPC_MoveParent, ++/* 59034*/ OPC_RecordChild1, // #1 = $vs ++/* 59035*/ OPC_CheckType, MVT::v32i8, ++/* 59037*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 59039*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITSET_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (or:{ *:[v32i8] } (shl:{ *:[v32i8] } (build_vector:{ *:[v32i8] })<>, (and:{ *:[v32i8] } (build_vector:{ *:[v32i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v32i8:{ *:[v32i8] }:$vt)), v32i8:{ *:[v32i8] }:$vs) - Complexity = 144 ++ // Dst: (XVBITSET_B:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vs, v32i8:{ *:[v32i8] }:$vt) ++/* 59047*/ 0, /*End of Scope*/ ++/* 59048*/ /*Scope*/ 33|128,5/*673*/, /*->59723*/ ++/* 59050*/ OPC_RecordChild0, // #0 = $xj ++/* 59051*/ OPC_MoveChild1, ++/* 59052*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 59055*/ OPC_Scope, 75|128,2/*331*/, /*->59389*/ // 2 children in Scope ++/* 59058*/ OPC_RecordChild0, // #1 = $xk ++/* 59059*/ OPC_MoveChild1, ++/* 59060*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 59063*/ OPC_MoveChild0, ++/* 59064*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59067*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59069*/ OPC_CheckType, MVT::i32, ++/* 59071*/ OPC_MoveParent, ++/* 59072*/ OPC_MoveChild1, ++/* 59073*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59076*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59078*/ OPC_CheckType, MVT::i32, ++/* 59080*/ OPC_MoveParent, ++/* 59081*/ OPC_MoveChild2, ++/* 59082*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59085*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59087*/ OPC_CheckType, MVT::i32, ++/* 59089*/ OPC_MoveParent, ++/* 59090*/ OPC_MoveChild3, ++/* 59091*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59094*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59096*/ OPC_CheckType, MVT::i32, ++/* 59098*/ OPC_MoveParent, ++/* 59099*/ OPC_MoveChild4, ++/* 59100*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59103*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59105*/ OPC_CheckType, MVT::i32, ++/* 59107*/ OPC_MoveParent, ++/* 59108*/ OPC_MoveChild5, ++/* 59109*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59112*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59114*/ OPC_CheckType, MVT::i32, ++/* 59116*/ OPC_MoveParent, ++/* 59117*/ OPC_MoveChild6, ++/* 59118*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59121*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59123*/ OPC_CheckType, MVT::i32, ++/* 59125*/ OPC_MoveParent, ++/* 59126*/ OPC_MoveChild7, ++/* 59127*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59130*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59132*/ OPC_CheckType, MVT::i32, ++/* 59134*/ OPC_MoveParent, ++/* 59135*/ OPC_MoveChild, 8, ++/* 59137*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59140*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59142*/ OPC_CheckType, MVT::i32, ++/* 59144*/ OPC_MoveParent, ++/* 59145*/ OPC_MoveChild, 9, ++/* 59147*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59150*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59152*/ OPC_CheckType, MVT::i32, ++/* 59154*/ OPC_MoveParent, ++/* 59155*/ OPC_MoveChild, 10, ++/* 59157*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59160*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59162*/ OPC_CheckType, MVT::i32, ++/* 59164*/ OPC_MoveParent, ++/* 59165*/ OPC_MoveChild, 11, ++/* 59167*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59170*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59172*/ OPC_CheckType, MVT::i32, ++/* 59174*/ OPC_MoveParent, ++/* 59175*/ OPC_MoveChild, 12, ++/* 59177*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59180*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59182*/ OPC_CheckType, MVT::i32, ++/* 59184*/ OPC_MoveParent, ++/* 59185*/ OPC_MoveChild, 13, ++/* 59187*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59190*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59192*/ OPC_CheckType, MVT::i32, ++/* 59194*/ OPC_MoveParent, ++/* 59195*/ OPC_MoveChild, 14, ++/* 59197*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59200*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59202*/ OPC_CheckType, MVT::i32, ++/* 59204*/ OPC_MoveParent, ++/* 59205*/ OPC_MoveChild, 15, ++/* 59207*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59210*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59212*/ OPC_CheckType, MVT::i32, ++/* 59214*/ OPC_MoveParent, ++/* 59215*/ OPC_MoveChild, 16, ++/* 59217*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59220*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59222*/ OPC_CheckType, MVT::i32, ++/* 59224*/ OPC_MoveParent, ++/* 59225*/ OPC_MoveChild, 17, ++/* 59227*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59230*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59232*/ OPC_CheckType, MVT::i32, ++/* 59234*/ OPC_MoveParent, ++/* 59235*/ OPC_MoveChild, 18, ++/* 59237*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59240*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59242*/ OPC_CheckType, MVT::i32, ++/* 59244*/ OPC_MoveParent, ++/* 59245*/ OPC_MoveChild, 19, ++/* 59247*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59250*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59252*/ OPC_CheckType, MVT::i32, ++/* 59254*/ OPC_MoveParent, ++/* 59255*/ OPC_MoveChild, 20, ++/* 59257*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59260*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59262*/ OPC_CheckType, MVT::i32, ++/* 59264*/ OPC_MoveParent, ++/* 59265*/ OPC_MoveChild, 21, ++/* 59267*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59270*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59272*/ OPC_CheckType, MVT::i32, ++/* 59274*/ OPC_MoveParent, ++/* 59275*/ OPC_MoveChild, 22, ++/* 59277*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59280*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59282*/ OPC_CheckType, MVT::i32, ++/* 59284*/ OPC_MoveParent, ++/* 59285*/ OPC_MoveChild, 23, ++/* 59287*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59290*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59292*/ OPC_CheckType, MVT::i32, ++/* 59294*/ OPC_MoveParent, ++/* 59295*/ OPC_MoveChild, 24, ++/* 59297*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59300*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59302*/ OPC_CheckType, MVT::i32, ++/* 59304*/ OPC_MoveParent, ++/* 59305*/ OPC_MoveChild, 25, ++/* 59307*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59310*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59312*/ OPC_CheckType, MVT::i32, ++/* 59314*/ OPC_MoveParent, ++/* 59315*/ OPC_MoveChild, 26, ++/* 59317*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59320*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59322*/ OPC_CheckType, MVT::i32, ++/* 59324*/ OPC_MoveParent, ++/* 59325*/ OPC_MoveChild, 27, ++/* 59327*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59330*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59332*/ OPC_CheckType, MVT::i32, ++/* 59334*/ OPC_MoveParent, ++/* 59335*/ OPC_MoveChild, 28, ++/* 59337*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59340*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59342*/ OPC_CheckType, MVT::i32, ++/* 59344*/ OPC_MoveParent, ++/* 59345*/ OPC_MoveChild, 29, ++/* 59347*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59350*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59352*/ OPC_CheckType, MVT::i32, ++/* 59354*/ OPC_MoveParent, ++/* 59355*/ OPC_MoveChild, 30, ++/* 59357*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59360*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59362*/ OPC_CheckType, MVT::i32, ++/* 59364*/ OPC_MoveParent, ++/* 59365*/ OPC_MoveChild, 31, ++/* 59367*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59370*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59372*/ OPC_CheckType, MVT::i32, ++/* 59374*/ OPC_MoveParent, ++/* 59375*/ OPC_MoveParent, ++/* 59376*/ OPC_MoveParent, ++/* 59377*/ OPC_CheckType, MVT::v32i8, ++/* 59379*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 59381*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVORN_V), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (or:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$xj, (xor:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$xk, (build_vector:{ *:[v32i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))) - Complexity = 137 ++ // Dst: (XVORN_V:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) ++/* 59389*/ /*Scope*/ 75|128,2/*331*/, /*->59722*/ ++/* 59391*/ OPC_MoveChild0, ++/* 59392*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 59395*/ OPC_MoveChild0, ++/* 59396*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59399*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59401*/ OPC_CheckType, MVT::i32, ++/* 59403*/ OPC_MoveParent, ++/* 59404*/ OPC_MoveChild1, ++/* 59405*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59408*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59410*/ OPC_CheckType, MVT::i32, ++/* 59412*/ OPC_MoveParent, ++/* 59413*/ OPC_MoveChild2, ++/* 59414*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59417*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59419*/ OPC_CheckType, MVT::i32, ++/* 59421*/ OPC_MoveParent, ++/* 59422*/ OPC_MoveChild3, ++/* 59423*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59426*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59428*/ OPC_CheckType, MVT::i32, ++/* 59430*/ OPC_MoveParent, ++/* 59431*/ OPC_MoveChild4, ++/* 59432*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59435*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59437*/ OPC_CheckType, MVT::i32, ++/* 59439*/ OPC_MoveParent, ++/* 59440*/ OPC_MoveChild5, ++/* 59441*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59444*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59446*/ OPC_CheckType, MVT::i32, ++/* 59448*/ OPC_MoveParent, ++/* 59449*/ OPC_MoveChild6, ++/* 59450*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59453*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59455*/ OPC_CheckType, MVT::i32, ++/* 59457*/ OPC_MoveParent, ++/* 59458*/ OPC_MoveChild7, ++/* 59459*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59462*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59464*/ OPC_CheckType, MVT::i32, ++/* 59466*/ OPC_MoveParent, ++/* 59467*/ OPC_MoveChild, 8, ++/* 59469*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59472*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59474*/ OPC_CheckType, MVT::i32, ++/* 59476*/ OPC_MoveParent, ++/* 59477*/ OPC_MoveChild, 9, ++/* 59479*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59482*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59484*/ OPC_CheckType, MVT::i32, ++/* 59486*/ OPC_MoveParent, ++/* 59487*/ OPC_MoveChild, 10, ++/* 59489*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59492*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59494*/ OPC_CheckType, MVT::i32, ++/* 59496*/ OPC_MoveParent, ++/* 59497*/ OPC_MoveChild, 11, ++/* 59499*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59502*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59504*/ OPC_CheckType, MVT::i32, ++/* 59506*/ OPC_MoveParent, ++/* 59507*/ OPC_MoveChild, 12, ++/* 59509*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59512*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59514*/ OPC_CheckType, MVT::i32, ++/* 59516*/ OPC_MoveParent, ++/* 59517*/ OPC_MoveChild, 13, ++/* 59519*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59522*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59524*/ OPC_CheckType, MVT::i32, ++/* 59526*/ OPC_MoveParent, ++/* 59527*/ OPC_MoveChild, 14, ++/* 59529*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59532*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59534*/ OPC_CheckType, MVT::i32, ++/* 59536*/ OPC_MoveParent, ++/* 59537*/ OPC_MoveChild, 15, ++/* 59539*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59542*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59544*/ OPC_CheckType, MVT::i32, ++/* 59546*/ OPC_MoveParent, ++/* 59547*/ OPC_MoveChild, 16, ++/* 59549*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59552*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59554*/ OPC_CheckType, MVT::i32, ++/* 59556*/ OPC_MoveParent, ++/* 59557*/ OPC_MoveChild, 17, ++/* 59559*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59562*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59564*/ OPC_CheckType, MVT::i32, ++/* 59566*/ OPC_MoveParent, ++/* 59567*/ OPC_MoveChild, 18, ++/* 59569*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59572*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59574*/ OPC_CheckType, MVT::i32, ++/* 59576*/ OPC_MoveParent, ++/* 59577*/ OPC_MoveChild, 19, ++/* 59579*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59582*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59584*/ OPC_CheckType, MVT::i32, ++/* 59586*/ OPC_MoveParent, ++/* 59587*/ OPC_MoveChild, 20, ++/* 59589*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59592*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59594*/ OPC_CheckType, MVT::i32, ++/* 59596*/ OPC_MoveParent, ++/* 59597*/ OPC_MoveChild, 21, ++/* 59599*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59602*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59604*/ OPC_CheckType, MVT::i32, ++/* 59606*/ OPC_MoveParent, ++/* 59607*/ OPC_MoveChild, 22, ++/* 59609*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59612*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59614*/ OPC_CheckType, MVT::i32, ++/* 59616*/ OPC_MoveParent, ++/* 59617*/ OPC_MoveChild, 23, ++/* 59619*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59622*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59624*/ OPC_CheckType, MVT::i32, ++/* 59626*/ OPC_MoveParent, ++/* 59627*/ OPC_MoveChild, 24, ++/* 59629*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59632*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59634*/ OPC_CheckType, MVT::i32, ++/* 59636*/ OPC_MoveParent, ++/* 59637*/ OPC_MoveChild, 25, ++/* 59639*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59642*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59644*/ OPC_CheckType, MVT::i32, ++/* 59646*/ OPC_MoveParent, ++/* 59647*/ OPC_MoveChild, 26, ++/* 59649*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59652*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59654*/ OPC_CheckType, MVT::i32, ++/* 59656*/ OPC_MoveParent, ++/* 59657*/ OPC_MoveChild, 27, ++/* 59659*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59662*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59664*/ OPC_CheckType, MVT::i32, ++/* 59666*/ OPC_MoveParent, ++/* 59667*/ OPC_MoveChild, 28, ++/* 59669*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59672*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59674*/ OPC_CheckType, MVT::i32, ++/* 59676*/ OPC_MoveParent, ++/* 59677*/ OPC_MoveChild, 29, ++/* 59679*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59682*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59684*/ OPC_CheckType, MVT::i32, ++/* 59686*/ OPC_MoveParent, ++/* 59687*/ OPC_MoveChild, 30, ++/* 59689*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59692*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59694*/ OPC_CheckType, MVT::i32, ++/* 59696*/ OPC_MoveParent, ++/* 59697*/ OPC_MoveChild, 31, ++/* 59699*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59702*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59704*/ OPC_CheckType, MVT::i32, ++/* 59706*/ OPC_MoveParent, ++/* 59707*/ OPC_MoveParent, ++/* 59708*/ OPC_RecordChild1, // #1 = $xk ++/* 59709*/ OPC_MoveParent, ++/* 59710*/ OPC_CheckType, MVT::v32i8, ++/* 59712*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 59714*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVORN_V), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (or:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$xj, (xor:{ *:[v32i8] } (build_vector:{ *:[v32i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), LASX256B:{ *:[v32i8] }:$xk)) - Complexity = 137 ++ // Dst: (XVORN_V:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) ++/* 59722*/ 0, /*End of Scope*/ ++/* 59723*/ /*Scope*/ 34|128,5/*674*/, /*->60399*/ ++/* 59725*/ OPC_MoveChild0, ++/* 59726*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 59729*/ OPC_Scope, 76|128,2/*332*/, /*->60064*/ // 2 children in Scope ++/* 59732*/ OPC_RecordChild0, // #0 = $xk ++/* 59733*/ OPC_MoveChild1, ++/* 59734*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 59737*/ OPC_MoveChild0, ++/* 59738*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59741*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59743*/ OPC_CheckType, MVT::i32, ++/* 59745*/ OPC_MoveParent, ++/* 59746*/ OPC_MoveChild1, ++/* 59747*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59750*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59752*/ OPC_CheckType, MVT::i32, ++/* 59754*/ OPC_MoveParent, ++/* 59755*/ OPC_MoveChild2, ++/* 59756*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59759*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59761*/ OPC_CheckType, MVT::i32, ++/* 59763*/ OPC_MoveParent, ++/* 59764*/ OPC_MoveChild3, ++/* 59765*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59768*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59770*/ OPC_CheckType, MVT::i32, ++/* 59772*/ OPC_MoveParent, ++/* 59773*/ OPC_MoveChild4, ++/* 59774*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59777*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59779*/ OPC_CheckType, MVT::i32, ++/* 59781*/ OPC_MoveParent, ++/* 59782*/ OPC_MoveChild5, ++/* 59783*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59786*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59788*/ OPC_CheckType, MVT::i32, ++/* 59790*/ OPC_MoveParent, ++/* 59791*/ OPC_MoveChild6, ++/* 59792*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59795*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59797*/ OPC_CheckType, MVT::i32, ++/* 59799*/ OPC_MoveParent, ++/* 59800*/ OPC_MoveChild7, ++/* 59801*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59804*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59806*/ OPC_CheckType, MVT::i32, ++/* 59808*/ OPC_MoveParent, ++/* 59809*/ OPC_MoveChild, 8, ++/* 59811*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59814*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59816*/ OPC_CheckType, MVT::i32, ++/* 59818*/ OPC_MoveParent, ++/* 59819*/ OPC_MoveChild, 9, ++/* 59821*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59824*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59826*/ OPC_CheckType, MVT::i32, ++/* 59828*/ OPC_MoveParent, ++/* 59829*/ OPC_MoveChild, 10, ++/* 59831*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59834*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59836*/ OPC_CheckType, MVT::i32, ++/* 59838*/ OPC_MoveParent, ++/* 59839*/ OPC_MoveChild, 11, ++/* 59841*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59844*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59846*/ OPC_CheckType, MVT::i32, ++/* 59848*/ OPC_MoveParent, ++/* 59849*/ OPC_MoveChild, 12, ++/* 59851*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59854*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59856*/ OPC_CheckType, MVT::i32, ++/* 59858*/ OPC_MoveParent, ++/* 59859*/ OPC_MoveChild, 13, ++/* 59861*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59864*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59866*/ OPC_CheckType, MVT::i32, ++/* 59868*/ OPC_MoveParent, ++/* 59869*/ OPC_MoveChild, 14, ++/* 59871*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59874*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59876*/ OPC_CheckType, MVT::i32, ++/* 59878*/ OPC_MoveParent, ++/* 59879*/ OPC_MoveChild, 15, ++/* 59881*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59884*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59886*/ OPC_CheckType, MVT::i32, ++/* 59888*/ OPC_MoveParent, ++/* 59889*/ OPC_MoveChild, 16, ++/* 59891*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59894*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59896*/ OPC_CheckType, MVT::i32, ++/* 59898*/ OPC_MoveParent, ++/* 59899*/ OPC_MoveChild, 17, ++/* 59901*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59904*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59906*/ OPC_CheckType, MVT::i32, ++/* 59908*/ OPC_MoveParent, ++/* 59909*/ OPC_MoveChild, 18, ++/* 59911*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59914*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59916*/ OPC_CheckType, MVT::i32, ++/* 59918*/ OPC_MoveParent, ++/* 59919*/ OPC_MoveChild, 19, ++/* 59921*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59924*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59926*/ OPC_CheckType, MVT::i32, ++/* 59928*/ OPC_MoveParent, ++/* 59929*/ OPC_MoveChild, 20, ++/* 59931*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59934*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59936*/ OPC_CheckType, MVT::i32, ++/* 59938*/ OPC_MoveParent, ++/* 59939*/ OPC_MoveChild, 21, ++/* 59941*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59944*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59946*/ OPC_CheckType, MVT::i32, ++/* 59948*/ OPC_MoveParent, ++/* 59949*/ OPC_MoveChild, 22, ++/* 59951*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59954*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59956*/ OPC_CheckType, MVT::i32, ++/* 59958*/ OPC_MoveParent, ++/* 59959*/ OPC_MoveChild, 23, ++/* 59961*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59964*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59966*/ OPC_CheckType, MVT::i32, ++/* 59968*/ OPC_MoveParent, ++/* 59969*/ OPC_MoveChild, 24, ++/* 59971*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59974*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59976*/ OPC_CheckType, MVT::i32, ++/* 59978*/ OPC_MoveParent, ++/* 59979*/ OPC_MoveChild, 25, ++/* 59981*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59984*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59986*/ OPC_CheckType, MVT::i32, ++/* 59988*/ OPC_MoveParent, ++/* 59989*/ OPC_MoveChild, 26, ++/* 59991*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 59994*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 59996*/ OPC_CheckType, MVT::i32, ++/* 59998*/ OPC_MoveParent, ++/* 59999*/ OPC_MoveChild, 27, ++/* 60001*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60004*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 60006*/ OPC_CheckType, MVT::i32, ++/* 60008*/ OPC_MoveParent, ++/* 60009*/ OPC_MoveChild, 28, ++/* 60011*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60014*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 60016*/ OPC_CheckType, MVT::i32, ++/* 60018*/ OPC_MoveParent, ++/* 60019*/ OPC_MoveChild, 29, ++/* 60021*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60024*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 60026*/ OPC_CheckType, MVT::i32, ++/* 60028*/ OPC_MoveParent, ++/* 60029*/ OPC_MoveChild, 30, ++/* 60031*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60034*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 60036*/ OPC_CheckType, MVT::i32, ++/* 60038*/ OPC_MoveParent, ++/* 60039*/ OPC_MoveChild, 31, ++/* 60041*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60044*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 60046*/ OPC_CheckType, MVT::i32, ++/* 60048*/ OPC_MoveParent, ++/* 60049*/ OPC_MoveParent, ++/* 60050*/ OPC_MoveParent, ++/* 60051*/ OPC_RecordChild1, // #1 = $xj ++/* 60052*/ OPC_CheckType, MVT::v32i8, ++/* 60054*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 60056*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVORN_V), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (or:{ *:[v32i8] } (xor:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$xk, (build_vector:{ *:[v32i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>)), LASX256B:{ *:[v32i8] }:$xj) - Complexity = 137 ++ // Dst: (XVORN_V:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) ++/* 60064*/ /*Scope*/ 76|128,2/*332*/, /*->60398*/ ++/* 60066*/ OPC_MoveChild0, ++/* 60067*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 60070*/ OPC_MoveChild0, ++/* 60071*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60074*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 60076*/ OPC_CheckType, MVT::i32, ++/* 60078*/ OPC_MoveParent, ++/* 60079*/ OPC_MoveChild1, ++/* 60080*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60083*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 60085*/ OPC_CheckType, MVT::i32, ++/* 60087*/ OPC_MoveParent, ++/* 60088*/ OPC_MoveChild2, ++/* 60089*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60092*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 60094*/ OPC_CheckType, MVT::i32, ++/* 60096*/ OPC_MoveParent, ++/* 60097*/ OPC_MoveChild3, ++/* 60098*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60101*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 60103*/ OPC_CheckType, MVT::i32, ++/* 60105*/ OPC_MoveParent, ++/* 60106*/ OPC_MoveChild4, ++/* 60107*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60110*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 60112*/ OPC_CheckType, MVT::i32, ++/* 60114*/ OPC_MoveParent, ++/* 60115*/ OPC_MoveChild5, ++/* 60116*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60119*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 60121*/ OPC_CheckType, MVT::i32, ++/* 60123*/ OPC_MoveParent, ++/* 60124*/ OPC_MoveChild6, ++/* 60125*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60128*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 60130*/ OPC_CheckType, MVT::i32, ++/* 60132*/ OPC_MoveParent, ++/* 60133*/ OPC_MoveChild7, ++/* 60134*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60137*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 60139*/ OPC_CheckType, MVT::i32, ++/* 60141*/ OPC_MoveParent, ++/* 60142*/ OPC_MoveChild, 8, ++/* 60144*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60147*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 60149*/ OPC_CheckType, MVT::i32, ++/* 60151*/ OPC_MoveParent, ++/* 60152*/ OPC_MoveChild, 9, ++/* 60154*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60157*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 60159*/ OPC_CheckType, MVT::i32, ++/* 60161*/ OPC_MoveParent, ++/* 60162*/ OPC_MoveChild, 10, ++/* 60164*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60167*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 60169*/ OPC_CheckType, MVT::i32, ++/* 60171*/ OPC_MoveParent, ++/* 60172*/ OPC_MoveChild, 11, ++/* 60174*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60177*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 60179*/ OPC_CheckType, MVT::i32, ++/* 60181*/ OPC_MoveParent, ++/* 60182*/ OPC_MoveChild, 12, ++/* 60184*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60187*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 60189*/ OPC_CheckType, MVT::i32, ++/* 60191*/ OPC_MoveParent, ++/* 60192*/ OPC_MoveChild, 13, ++/* 60194*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60197*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 60199*/ OPC_CheckType, MVT::i32, ++/* 60201*/ OPC_MoveParent, ++/* 60202*/ OPC_MoveChild, 14, ++/* 60204*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60207*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 60209*/ OPC_CheckType, MVT::i32, ++/* 60211*/ OPC_MoveParent, ++/* 60212*/ OPC_MoveChild, 15, ++/* 60214*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60217*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 60219*/ OPC_CheckType, MVT::i32, ++/* 60221*/ OPC_MoveParent, ++/* 60222*/ OPC_MoveChild, 16, ++/* 60224*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60227*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 60229*/ OPC_CheckType, MVT::i32, ++/* 60231*/ OPC_MoveParent, ++/* 60232*/ OPC_MoveChild, 17, ++/* 60234*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60237*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 60239*/ OPC_CheckType, MVT::i32, ++/* 60241*/ OPC_MoveParent, ++/* 60242*/ OPC_MoveChild, 18, ++/* 60244*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60247*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 60249*/ OPC_CheckType, MVT::i32, ++/* 60251*/ OPC_MoveParent, ++/* 60252*/ OPC_MoveChild, 19, ++/* 60254*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60257*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 60259*/ OPC_CheckType, MVT::i32, ++/* 60261*/ OPC_MoveParent, ++/* 60262*/ OPC_MoveChild, 20, ++/* 60264*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60267*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 60269*/ OPC_CheckType, MVT::i32, ++/* 60271*/ OPC_MoveParent, ++/* 60272*/ OPC_MoveChild, 21, ++/* 60274*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60277*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 60279*/ OPC_CheckType, MVT::i32, ++/* 60281*/ OPC_MoveParent, ++/* 60282*/ OPC_MoveChild, 22, ++/* 60284*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60287*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 60289*/ OPC_CheckType, MVT::i32, ++/* 60291*/ OPC_MoveParent, ++/* 60292*/ OPC_MoveChild, 23, ++/* 60294*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60297*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 60299*/ OPC_CheckType, MVT::i32, ++/* 60301*/ OPC_MoveParent, ++/* 60302*/ OPC_MoveChild, 24, ++/* 60304*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60307*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 60309*/ OPC_CheckType, MVT::i32, ++/* 60311*/ OPC_MoveParent, ++/* 60312*/ OPC_MoveChild, 25, ++/* 60314*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60317*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 60319*/ OPC_CheckType, MVT::i32, ++/* 60321*/ OPC_MoveParent, ++/* 60322*/ OPC_MoveChild, 26, ++/* 60324*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60327*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 60329*/ OPC_CheckType, MVT::i32, ++/* 60331*/ OPC_MoveParent, ++/* 60332*/ OPC_MoveChild, 27, ++/* 60334*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60337*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 60339*/ OPC_CheckType, MVT::i32, ++/* 60341*/ OPC_MoveParent, ++/* 60342*/ OPC_MoveChild, 28, ++/* 60344*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60347*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 60349*/ OPC_CheckType, MVT::i32, ++/* 60351*/ OPC_MoveParent, ++/* 60352*/ OPC_MoveChild, 29, ++/* 60354*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60357*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 60359*/ OPC_CheckType, MVT::i32, ++/* 60361*/ OPC_MoveParent, ++/* 60362*/ OPC_MoveChild, 30, ++/* 60364*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60367*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 60369*/ OPC_CheckType, MVT::i32, ++/* 60371*/ OPC_MoveParent, ++/* 60372*/ OPC_MoveChild, 31, ++/* 60374*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60377*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 60379*/ OPC_CheckType, MVT::i32, ++/* 60381*/ OPC_MoveParent, ++/* 60382*/ OPC_MoveParent, ++/* 60383*/ OPC_RecordChild1, // #0 = $xk ++/* 60384*/ OPC_MoveParent, ++/* 60385*/ OPC_RecordChild1, // #1 = $xj ++/* 60386*/ OPC_CheckType, MVT::v32i8, ++/* 60388*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 60390*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVORN_V), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (or:{ *:[v32i8] } (xor:{ *:[v32i8] } (build_vector:{ *:[v32i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), LASX256B:{ *:[v32i8] }:$xk), LASX256B:{ *:[v32i8] }:$xj) - Complexity = 137 ++ // Dst: (XVORN_V:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$xj, LASX256B:{ *:[v32i8] }:$xk) ++/* 60398*/ 0, /*End of Scope*/ ++/* 60399*/ /*Scope*/ 27|128,4/*539*/, /*->60940*/ ++/* 60401*/ OPC_RecordChild0, // #0 = $vs ++/* 60402*/ OPC_MoveChild1, ++/* 60403*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 60406*/ OPC_MoveChild0, ++/* 60407*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 60410*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 60412*/ OPC_MoveParent, ++/* 60413*/ OPC_MoveChild1, ++/* 60414*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 60417*/ OPC_Scope, 87|128,2/*343*/, /*->60763*/ // 2 children in Scope ++/* 60420*/ OPC_RecordChild0, // #1 = $vt ++/* 60421*/ OPC_MoveChild1, ++/* 60422*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 60425*/ OPC_MoveChild0, ++/* 60426*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60429*/ OPC_CheckType, MVT::i32, ++/* 60431*/ OPC_Scope, 35|128,1/*163*/, /*->60597*/ // 2 children in Scope ++/* 60434*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 60436*/ OPC_MoveParent, ++/* 60437*/ OPC_MoveChild1, ++/* 60438*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60441*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 60443*/ OPC_CheckType, MVT::i32, ++/* 60445*/ OPC_MoveParent, ++/* 60446*/ OPC_MoveChild2, ++/* 60447*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60450*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 60452*/ OPC_CheckType, MVT::i32, ++/* 60454*/ OPC_MoveParent, ++/* 60455*/ OPC_MoveChild3, ++/* 60456*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60459*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 60461*/ OPC_CheckType, MVT::i32, ++/* 60463*/ OPC_MoveParent, ++/* 60464*/ OPC_MoveChild4, ++/* 60465*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60468*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 60470*/ OPC_CheckType, MVT::i32, ++/* 60472*/ OPC_MoveParent, ++/* 60473*/ OPC_MoveChild5, ++/* 60474*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60477*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 60479*/ OPC_CheckType, MVT::i32, ++/* 60481*/ OPC_MoveParent, ++/* 60482*/ OPC_MoveChild6, ++/* 60483*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60486*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 60488*/ OPC_CheckType, MVT::i32, ++/* 60490*/ OPC_MoveParent, ++/* 60491*/ OPC_MoveChild7, ++/* 60492*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60495*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 60497*/ OPC_CheckType, MVT::i32, ++/* 60499*/ OPC_MoveParent, ++/* 60500*/ OPC_MoveChild, 8, ++/* 60502*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60505*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 60507*/ OPC_CheckType, MVT::i32, ++/* 60509*/ OPC_MoveParent, ++/* 60510*/ OPC_MoveChild, 9, ++/* 60512*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60515*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 60517*/ OPC_CheckType, MVT::i32, ++/* 60519*/ OPC_MoveParent, ++/* 60520*/ OPC_MoveChild, 10, ++/* 60522*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60525*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 60527*/ OPC_CheckType, MVT::i32, ++/* 60529*/ OPC_MoveParent, ++/* 60530*/ OPC_MoveChild, 11, ++/* 60532*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60535*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 60537*/ OPC_CheckType, MVT::i32, ++/* 60539*/ OPC_MoveParent, ++/* 60540*/ OPC_MoveChild, 12, ++/* 60542*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60545*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 60547*/ OPC_CheckType, MVT::i32, ++/* 60549*/ OPC_MoveParent, ++/* 60550*/ OPC_MoveChild, 13, ++/* 60552*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60555*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 60557*/ OPC_CheckType, MVT::i32, ++/* 60559*/ OPC_MoveParent, ++/* 60560*/ OPC_MoveChild, 14, ++/* 60562*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60565*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 60567*/ OPC_CheckType, MVT::i32, ++/* 60569*/ OPC_MoveParent, ++/* 60570*/ OPC_MoveChild, 15, ++/* 60572*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60575*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 60577*/ OPC_CheckType, MVT::i32, ++/* 60579*/ OPC_MoveParent, ++/* 60580*/ OPC_MoveParent, ++/* 60581*/ OPC_CheckType, MVT::v16i8, ++/* 60583*/ OPC_MoveParent, ++/* 60584*/ OPC_MoveParent, ++/* 60585*/ OPC_CheckType, MVT::v16i8, ++/* 60587*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 60589*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITSET_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (or:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vs, (shl:{ *:[v16i8] } (build_vector:{ *:[v16i8] })<>, (and:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vt, (build_vector:{ *:[v16i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>)))) - Complexity = 80 ++ // Dst: (VBITSET_B:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vs, v16i8:{ *:[v16i8] }:$vt) ++/* 60597*/ /*Scope*/ 35|128,1/*163*/, /*->60762*/ ++/* 60599*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 60601*/ OPC_MoveParent, ++/* 60602*/ OPC_MoveChild1, ++/* 60603*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60606*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 60608*/ OPC_CheckType, MVT::i32, ++/* 60610*/ OPC_MoveParent, ++/* 60611*/ OPC_MoveChild2, ++/* 60612*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60615*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 60617*/ OPC_CheckType, MVT::i32, ++/* 60619*/ OPC_MoveParent, ++/* 60620*/ OPC_MoveChild3, ++/* 60621*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60624*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 60626*/ OPC_CheckType, MVT::i32, ++/* 60628*/ OPC_MoveParent, ++/* 60629*/ OPC_MoveChild4, ++/* 60630*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60633*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 60635*/ OPC_CheckType, MVT::i32, ++/* 60637*/ OPC_MoveParent, ++/* 60638*/ OPC_MoveChild5, ++/* 60639*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60642*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 60644*/ OPC_CheckType, MVT::i32, ++/* 60646*/ OPC_MoveParent, ++/* 60647*/ OPC_MoveChild6, ++/* 60648*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60651*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 60653*/ OPC_CheckType, MVT::i32, ++/* 60655*/ OPC_MoveParent, ++/* 60656*/ OPC_MoveChild7, ++/* 60657*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60660*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 60662*/ OPC_CheckType, MVT::i32, ++/* 60664*/ OPC_MoveParent, ++/* 60665*/ OPC_MoveChild, 8, ++/* 60667*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60670*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 60672*/ OPC_CheckType, MVT::i32, ++/* 60674*/ OPC_MoveParent, ++/* 60675*/ OPC_MoveChild, 9, ++/* 60677*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60680*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 60682*/ OPC_CheckType, MVT::i32, ++/* 60684*/ OPC_MoveParent, ++/* 60685*/ OPC_MoveChild, 10, ++/* 60687*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60690*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 60692*/ OPC_CheckType, MVT::i32, ++/* 60694*/ OPC_MoveParent, ++/* 60695*/ OPC_MoveChild, 11, ++/* 60697*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60700*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 60702*/ OPC_CheckType, MVT::i32, ++/* 60704*/ OPC_MoveParent, ++/* 60705*/ OPC_MoveChild, 12, ++/* 60707*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60710*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 60712*/ OPC_CheckType, MVT::i32, ++/* 60714*/ OPC_MoveParent, ++/* 60715*/ OPC_MoveChild, 13, ++/* 60717*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60720*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 60722*/ OPC_CheckType, MVT::i32, ++/* 60724*/ OPC_MoveParent, ++/* 60725*/ OPC_MoveChild, 14, ++/* 60727*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60730*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 60732*/ OPC_CheckType, MVT::i32, ++/* 60734*/ OPC_MoveParent, ++/* 60735*/ OPC_MoveChild, 15, ++/* 60737*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60740*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 60742*/ OPC_CheckType, MVT::i32, ++/* 60744*/ OPC_MoveParent, ++/* 60745*/ OPC_MoveParent, ++/* 60746*/ OPC_CheckType, MVT::v16i16, ++/* 60748*/ OPC_MoveParent, ++/* 60749*/ OPC_MoveParent, ++/* 60750*/ OPC_CheckType, MVT::v16i16, ++/* 60752*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 60754*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITSET_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (or:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vs, (shl:{ *:[v16i16] } (build_vector:{ *:[v16i16] })<>, (and:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vt, (build_vector:{ *:[v16i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>)))) - Complexity = 80 ++ // Dst: (XVBITSET_H:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vs, v16i16:{ *:[v16i16] }:$vt) ++/* 60762*/ 0, /*End of Scope*/ ++/* 60763*/ /*Scope*/ 46|128,1/*174*/, /*->60939*/ ++/* 60765*/ OPC_MoveChild0, ++/* 60766*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 60769*/ OPC_MoveChild0, ++/* 60770*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60773*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 60775*/ OPC_CheckType, MVT::i32, ++/* 60777*/ OPC_MoveParent, ++/* 60778*/ OPC_MoveChild1, ++/* 60779*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60782*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 60784*/ OPC_CheckType, MVT::i32, ++/* 60786*/ OPC_MoveParent, ++/* 60787*/ OPC_MoveChild2, ++/* 60788*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60791*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 60793*/ OPC_CheckType, MVT::i32, ++/* 60795*/ OPC_MoveParent, ++/* 60796*/ OPC_MoveChild3, ++/* 60797*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60800*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 60802*/ OPC_CheckType, MVT::i32, ++/* 60804*/ OPC_MoveParent, ++/* 60805*/ OPC_MoveChild4, ++/* 60806*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60809*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 60811*/ OPC_CheckType, MVT::i32, ++/* 60813*/ OPC_MoveParent, ++/* 60814*/ OPC_MoveChild5, ++/* 60815*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60818*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 60820*/ OPC_CheckType, MVT::i32, ++/* 60822*/ OPC_MoveParent, ++/* 60823*/ OPC_MoveChild6, ++/* 60824*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60827*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 60829*/ OPC_CheckType, MVT::i32, ++/* 60831*/ OPC_MoveParent, ++/* 60832*/ OPC_MoveChild7, ++/* 60833*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60836*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 60838*/ OPC_CheckType, MVT::i32, ++/* 60840*/ OPC_MoveParent, ++/* 60841*/ OPC_MoveChild, 8, ++/* 60843*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60846*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 60848*/ OPC_CheckType, MVT::i32, ++/* 60850*/ OPC_MoveParent, ++/* 60851*/ OPC_MoveChild, 9, ++/* 60853*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60856*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 60858*/ OPC_CheckType, MVT::i32, ++/* 60860*/ OPC_MoveParent, ++/* 60861*/ OPC_MoveChild, 10, ++/* 60863*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60866*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 60868*/ OPC_CheckType, MVT::i32, ++/* 60870*/ OPC_MoveParent, ++/* 60871*/ OPC_MoveChild, 11, ++/* 60873*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60876*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 60878*/ OPC_CheckType, MVT::i32, ++/* 60880*/ OPC_MoveParent, ++/* 60881*/ OPC_MoveChild, 12, ++/* 60883*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60886*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 60888*/ OPC_CheckType, MVT::i32, ++/* 60890*/ OPC_MoveParent, ++/* 60891*/ OPC_MoveChild, 13, ++/* 60893*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60896*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 60898*/ OPC_CheckType, MVT::i32, ++/* 60900*/ OPC_MoveParent, ++/* 60901*/ OPC_MoveChild, 14, ++/* 60903*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60906*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 60908*/ OPC_CheckType, MVT::i32, ++/* 60910*/ OPC_MoveParent, ++/* 60911*/ OPC_MoveChild, 15, ++/* 60913*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60916*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 60918*/ OPC_CheckType, MVT::i32, ++/* 60920*/ OPC_MoveParent, ++/* 60921*/ OPC_MoveParent, ++/* 60922*/ OPC_RecordChild1, // #1 = $vt ++/* 60923*/ OPC_CheckType, MVT::v16i8, ++/* 60925*/ OPC_MoveParent, ++/* 60926*/ OPC_MoveParent, ++/* 60927*/ OPC_CheckType, MVT::v16i8, ++/* 60929*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 60931*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITSET_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (or:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vs, (shl:{ *:[v16i8] } (build_vector:{ *:[v16i8] })<>, (and:{ *:[v16i8] } (build_vector:{ *:[v16i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v16i8:{ *:[v16i8] }:$vt))) - Complexity = 80 ++ // Dst: (VBITSET_B:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vs, v16i8:{ *:[v16i8] }:$vt) ++/* 60939*/ 0, /*End of Scope*/ ++/* 60940*/ /*Scope*/ 115|128,2/*371*/, /*->61313*/ ++/* 60942*/ OPC_MoveChild0, ++/* 60943*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 60946*/ OPC_MoveChild0, ++/* 60947*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 60950*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 60952*/ OPC_MoveParent, ++/* 60953*/ OPC_MoveChild1, ++/* 60954*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 60957*/ OPC_Scope, 47|128,1/*175*/, /*->61135*/ // 2 children in Scope ++/* 60960*/ OPC_RecordChild0, // #0 = $vt ++/* 60961*/ OPC_MoveChild1, ++/* 60962*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 60965*/ OPC_MoveChild0, ++/* 60966*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60969*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 60971*/ OPC_CheckType, MVT::i32, ++/* 60973*/ OPC_MoveParent, ++/* 60974*/ OPC_MoveChild1, ++/* 60975*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60978*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 60980*/ OPC_CheckType, MVT::i32, ++/* 60982*/ OPC_MoveParent, ++/* 60983*/ OPC_MoveChild2, ++/* 60984*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60987*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 60989*/ OPC_CheckType, MVT::i32, ++/* 60991*/ OPC_MoveParent, ++/* 60992*/ OPC_MoveChild3, ++/* 60993*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 60996*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 60998*/ OPC_CheckType, MVT::i32, ++/* 61000*/ OPC_MoveParent, ++/* 61001*/ OPC_MoveChild4, ++/* 61002*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61005*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 61007*/ OPC_CheckType, MVT::i32, ++/* 61009*/ OPC_MoveParent, ++/* 61010*/ OPC_MoveChild5, ++/* 61011*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61014*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 61016*/ OPC_CheckType, MVT::i32, ++/* 61018*/ OPC_MoveParent, ++/* 61019*/ OPC_MoveChild6, ++/* 61020*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61023*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 61025*/ OPC_CheckType, MVT::i32, ++/* 61027*/ OPC_MoveParent, ++/* 61028*/ OPC_MoveChild7, ++/* 61029*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61032*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 61034*/ OPC_CheckType, MVT::i32, ++/* 61036*/ OPC_MoveParent, ++/* 61037*/ OPC_MoveChild, 8, ++/* 61039*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61042*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 61044*/ OPC_CheckType, MVT::i32, ++/* 61046*/ OPC_MoveParent, ++/* 61047*/ OPC_MoveChild, 9, ++/* 61049*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61052*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 61054*/ OPC_CheckType, MVT::i32, ++/* 61056*/ OPC_MoveParent, ++/* 61057*/ OPC_MoveChild, 10, ++/* 61059*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61062*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 61064*/ OPC_CheckType, MVT::i32, ++/* 61066*/ OPC_MoveParent, ++/* 61067*/ OPC_MoveChild, 11, ++/* 61069*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61072*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 61074*/ OPC_CheckType, MVT::i32, ++/* 61076*/ OPC_MoveParent, ++/* 61077*/ OPC_MoveChild, 12, ++/* 61079*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61082*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 61084*/ OPC_CheckType, MVT::i32, ++/* 61086*/ OPC_MoveParent, ++/* 61087*/ OPC_MoveChild, 13, ++/* 61089*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61092*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 61094*/ OPC_CheckType, MVT::i32, ++/* 61096*/ OPC_MoveParent, ++/* 61097*/ OPC_MoveChild, 14, ++/* 61099*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61102*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 61104*/ OPC_CheckType, MVT::i32, ++/* 61106*/ OPC_MoveParent, ++/* 61107*/ OPC_MoveChild, 15, ++/* 61109*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61112*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 61114*/ OPC_CheckType, MVT::i32, ++/* 61116*/ OPC_MoveParent, ++/* 61117*/ OPC_MoveParent, ++/* 61118*/ OPC_CheckType, MVT::v16i8, ++/* 61120*/ OPC_MoveParent, ++/* 61121*/ OPC_MoveParent, ++/* 61122*/ OPC_RecordChild1, // #1 = $vs ++/* 61123*/ OPC_CheckType, MVT::v16i8, ++/* 61125*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 61127*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITSET_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (or:{ *:[v16i8] } (shl:{ *:[v16i8] } (build_vector:{ *:[v16i8] })<>, (and:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vt, (build_vector:{ *:[v16i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))), v16i8:{ *:[v16i8] }:$vs) - Complexity = 80 ++ // Dst: (VBITSET_B:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vs, v16i8:{ *:[v16i8] }:$vt) ++/* 61135*/ /*Scope*/ 47|128,1/*175*/, /*->61312*/ ++/* 61137*/ OPC_MoveChild0, ++/* 61138*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 61141*/ OPC_MoveChild0, ++/* 61142*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61145*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 61147*/ OPC_CheckType, MVT::i32, ++/* 61149*/ OPC_MoveParent, ++/* 61150*/ OPC_MoveChild1, ++/* 61151*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61154*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 61156*/ OPC_CheckType, MVT::i32, ++/* 61158*/ OPC_MoveParent, ++/* 61159*/ OPC_MoveChild2, ++/* 61160*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61163*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 61165*/ OPC_CheckType, MVT::i32, ++/* 61167*/ OPC_MoveParent, ++/* 61168*/ OPC_MoveChild3, ++/* 61169*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61172*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 61174*/ OPC_CheckType, MVT::i32, ++/* 61176*/ OPC_MoveParent, ++/* 61177*/ OPC_MoveChild4, ++/* 61178*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61181*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 61183*/ OPC_CheckType, MVT::i32, ++/* 61185*/ OPC_MoveParent, ++/* 61186*/ OPC_MoveChild5, ++/* 61187*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61190*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 61192*/ OPC_CheckType, MVT::i32, ++/* 61194*/ OPC_MoveParent, ++/* 61195*/ OPC_MoveChild6, ++/* 61196*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61199*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 61201*/ OPC_CheckType, MVT::i32, ++/* 61203*/ OPC_MoveParent, ++/* 61204*/ OPC_MoveChild7, ++/* 61205*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61208*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 61210*/ OPC_CheckType, MVT::i32, ++/* 61212*/ OPC_MoveParent, ++/* 61213*/ OPC_MoveChild, 8, ++/* 61215*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61218*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 61220*/ OPC_CheckType, MVT::i32, ++/* 61222*/ OPC_MoveParent, ++/* 61223*/ OPC_MoveChild, 9, ++/* 61225*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61228*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 61230*/ OPC_CheckType, MVT::i32, ++/* 61232*/ OPC_MoveParent, ++/* 61233*/ OPC_MoveChild, 10, ++/* 61235*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61238*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 61240*/ OPC_CheckType, MVT::i32, ++/* 61242*/ OPC_MoveParent, ++/* 61243*/ OPC_MoveChild, 11, ++/* 61245*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61248*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 61250*/ OPC_CheckType, MVT::i32, ++/* 61252*/ OPC_MoveParent, ++/* 61253*/ OPC_MoveChild, 12, ++/* 61255*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61258*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 61260*/ OPC_CheckType, MVT::i32, ++/* 61262*/ OPC_MoveParent, ++/* 61263*/ OPC_MoveChild, 13, ++/* 61265*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61268*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 61270*/ OPC_CheckType, MVT::i32, ++/* 61272*/ OPC_MoveParent, ++/* 61273*/ OPC_MoveChild, 14, ++/* 61275*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61278*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 61280*/ OPC_CheckType, MVT::i32, ++/* 61282*/ OPC_MoveParent, ++/* 61283*/ OPC_MoveChild, 15, ++/* 61285*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61288*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 61290*/ OPC_CheckType, MVT::i32, ++/* 61292*/ OPC_MoveParent, ++/* 61293*/ OPC_MoveParent, ++/* 61294*/ OPC_RecordChild1, // #0 = $vt ++/* 61295*/ OPC_CheckType, MVT::v16i8, ++/* 61297*/ OPC_MoveParent, ++/* 61298*/ OPC_MoveParent, ++/* 61299*/ OPC_RecordChild1, // #1 = $vs ++/* 61300*/ OPC_CheckType, MVT::v16i8, ++/* 61302*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 61304*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITSET_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (or:{ *:[v16i8] } (shl:{ *:[v16i8] } (build_vector:{ *:[v16i8] })<>, (and:{ *:[v16i8] } (build_vector:{ *:[v16i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v16i8:{ *:[v16i8] }:$vt)), v16i8:{ *:[v16i8] }:$vs) - Complexity = 80 ++ // Dst: (VBITSET_B:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vs, v16i8:{ *:[v16i8] }:$vt) ++/* 61312*/ 0, /*End of Scope*/ ++/* 61313*/ /*Scope*/ 62|128,1/*190*/, /*->61505*/ ++/* 61315*/ OPC_RecordChild0, // #0 = $vs ++/* 61316*/ OPC_MoveChild1, ++/* 61317*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 61320*/ OPC_MoveChild0, ++/* 61321*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 61324*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 61326*/ OPC_MoveParent, ++/* 61327*/ OPC_MoveChild1, ++/* 61328*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 61331*/ OPC_MoveChild0, ++/* 61332*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 61335*/ OPC_MoveChild0, ++/* 61336*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61339*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 61341*/ OPC_CheckType, MVT::i32, ++/* 61343*/ OPC_MoveParent, ++/* 61344*/ OPC_MoveChild1, ++/* 61345*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61348*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 61350*/ OPC_CheckType, MVT::i32, ++/* 61352*/ OPC_MoveParent, ++/* 61353*/ OPC_MoveChild2, ++/* 61354*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61357*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 61359*/ OPC_CheckType, MVT::i32, ++/* 61361*/ OPC_MoveParent, ++/* 61362*/ OPC_MoveChild3, ++/* 61363*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61366*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 61368*/ OPC_CheckType, MVT::i32, ++/* 61370*/ OPC_MoveParent, ++/* 61371*/ OPC_MoveChild4, ++/* 61372*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61375*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 61377*/ OPC_CheckType, MVT::i32, ++/* 61379*/ OPC_MoveParent, ++/* 61380*/ OPC_MoveChild5, ++/* 61381*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61384*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 61386*/ OPC_CheckType, MVT::i32, ++/* 61388*/ OPC_MoveParent, ++/* 61389*/ OPC_MoveChild6, ++/* 61390*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61393*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 61395*/ OPC_CheckType, MVT::i32, ++/* 61397*/ OPC_MoveParent, ++/* 61398*/ OPC_MoveChild7, ++/* 61399*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61402*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 61404*/ OPC_CheckType, MVT::i32, ++/* 61406*/ OPC_MoveParent, ++/* 61407*/ OPC_MoveChild, 8, ++/* 61409*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61412*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 61414*/ OPC_CheckType, MVT::i32, ++/* 61416*/ OPC_MoveParent, ++/* 61417*/ OPC_MoveChild, 9, ++/* 61419*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61422*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 61424*/ OPC_CheckType, MVT::i32, ++/* 61426*/ OPC_MoveParent, ++/* 61427*/ OPC_MoveChild, 10, ++/* 61429*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61432*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 61434*/ OPC_CheckType, MVT::i32, ++/* 61436*/ OPC_MoveParent, ++/* 61437*/ OPC_MoveChild, 11, ++/* 61439*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61442*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 61444*/ OPC_CheckType, MVT::i32, ++/* 61446*/ OPC_MoveParent, ++/* 61447*/ OPC_MoveChild, 12, ++/* 61449*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61452*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 61454*/ OPC_CheckType, MVT::i32, ++/* 61456*/ OPC_MoveParent, ++/* 61457*/ OPC_MoveChild, 13, ++/* 61459*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61462*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 61464*/ OPC_CheckType, MVT::i32, ++/* 61466*/ OPC_MoveParent, ++/* 61467*/ OPC_MoveChild, 14, ++/* 61469*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61472*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 61474*/ OPC_CheckType, MVT::i32, ++/* 61476*/ OPC_MoveParent, ++/* 61477*/ OPC_MoveChild, 15, ++/* 61479*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61482*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 61484*/ OPC_CheckType, MVT::i32, ++/* 61486*/ OPC_MoveParent, ++/* 61487*/ OPC_MoveParent, ++/* 61488*/ OPC_RecordChild1, // #1 = $vt ++/* 61489*/ OPC_CheckType, MVT::v16i16, ++/* 61491*/ OPC_MoveParent, ++/* 61492*/ OPC_MoveParent, ++/* 61493*/ OPC_CheckType, MVT::v16i16, ++/* 61495*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 61497*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITSET_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (or:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vs, (shl:{ *:[v16i16] } (build_vector:{ *:[v16i16] })<>, (and:{ *:[v16i16] } (build_vector:{ *:[v16i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v16i16:{ *:[v16i16] }:$vt))) - Complexity = 80 ++ // Dst: (XVBITSET_H:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vs, v16i16:{ *:[v16i16] }:$vt) ++/* 61505*/ /*Scope*/ 115|128,2/*371*/, /*->61878*/ ++/* 61507*/ OPC_MoveChild0, ++/* 61508*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 61511*/ OPC_MoveChild0, ++/* 61512*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 61515*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 61517*/ OPC_MoveParent, ++/* 61518*/ OPC_MoveChild1, ++/* 61519*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 61522*/ OPC_Scope, 47|128,1/*175*/, /*->61700*/ // 2 children in Scope ++/* 61525*/ OPC_RecordChild0, // #0 = $vt ++/* 61526*/ OPC_MoveChild1, ++/* 61527*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 61530*/ OPC_MoveChild0, ++/* 61531*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61534*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 61536*/ OPC_CheckType, MVT::i32, ++/* 61538*/ OPC_MoveParent, ++/* 61539*/ OPC_MoveChild1, ++/* 61540*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61543*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 61545*/ OPC_CheckType, MVT::i32, ++/* 61547*/ OPC_MoveParent, ++/* 61548*/ OPC_MoveChild2, ++/* 61549*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61552*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 61554*/ OPC_CheckType, MVT::i32, ++/* 61556*/ OPC_MoveParent, ++/* 61557*/ OPC_MoveChild3, ++/* 61558*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61561*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 61563*/ OPC_CheckType, MVT::i32, ++/* 61565*/ OPC_MoveParent, ++/* 61566*/ OPC_MoveChild4, ++/* 61567*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61570*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 61572*/ OPC_CheckType, MVT::i32, ++/* 61574*/ OPC_MoveParent, ++/* 61575*/ OPC_MoveChild5, ++/* 61576*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61579*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 61581*/ OPC_CheckType, MVT::i32, ++/* 61583*/ OPC_MoveParent, ++/* 61584*/ OPC_MoveChild6, ++/* 61585*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61588*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 61590*/ OPC_CheckType, MVT::i32, ++/* 61592*/ OPC_MoveParent, ++/* 61593*/ OPC_MoveChild7, ++/* 61594*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61597*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 61599*/ OPC_CheckType, MVT::i32, ++/* 61601*/ OPC_MoveParent, ++/* 61602*/ OPC_MoveChild, 8, ++/* 61604*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61607*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 61609*/ OPC_CheckType, MVT::i32, ++/* 61611*/ OPC_MoveParent, ++/* 61612*/ OPC_MoveChild, 9, ++/* 61614*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61617*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 61619*/ OPC_CheckType, MVT::i32, ++/* 61621*/ OPC_MoveParent, ++/* 61622*/ OPC_MoveChild, 10, ++/* 61624*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61627*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 61629*/ OPC_CheckType, MVT::i32, ++/* 61631*/ OPC_MoveParent, ++/* 61632*/ OPC_MoveChild, 11, ++/* 61634*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61637*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 61639*/ OPC_CheckType, MVT::i32, ++/* 61641*/ OPC_MoveParent, ++/* 61642*/ OPC_MoveChild, 12, ++/* 61644*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61647*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 61649*/ OPC_CheckType, MVT::i32, ++/* 61651*/ OPC_MoveParent, ++/* 61652*/ OPC_MoveChild, 13, ++/* 61654*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61657*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 61659*/ OPC_CheckType, MVT::i32, ++/* 61661*/ OPC_MoveParent, ++/* 61662*/ OPC_MoveChild, 14, ++/* 61664*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61667*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 61669*/ OPC_CheckType, MVT::i32, ++/* 61671*/ OPC_MoveParent, ++/* 61672*/ OPC_MoveChild, 15, ++/* 61674*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61677*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 61679*/ OPC_CheckType, MVT::i32, ++/* 61681*/ OPC_MoveParent, ++/* 61682*/ OPC_MoveParent, ++/* 61683*/ OPC_CheckType, MVT::v16i16, ++/* 61685*/ OPC_MoveParent, ++/* 61686*/ OPC_MoveParent, ++/* 61687*/ OPC_RecordChild1, // #1 = $vs ++/* 61688*/ OPC_CheckType, MVT::v16i16, ++/* 61690*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 61692*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITSET_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (or:{ *:[v16i16] } (shl:{ *:[v16i16] } (build_vector:{ *:[v16i16] })<>, (and:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vt, (build_vector:{ *:[v16i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))), v16i16:{ *:[v16i16] }:$vs) - Complexity = 80 ++ // Dst: (XVBITSET_H:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vs, v16i16:{ *:[v16i16] }:$vt) ++/* 61700*/ /*Scope*/ 47|128,1/*175*/, /*->61877*/ ++/* 61702*/ OPC_MoveChild0, ++/* 61703*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 61706*/ OPC_MoveChild0, ++/* 61707*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61710*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 61712*/ OPC_CheckType, MVT::i32, ++/* 61714*/ OPC_MoveParent, ++/* 61715*/ OPC_MoveChild1, ++/* 61716*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61719*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 61721*/ OPC_CheckType, MVT::i32, ++/* 61723*/ OPC_MoveParent, ++/* 61724*/ OPC_MoveChild2, ++/* 61725*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61728*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 61730*/ OPC_CheckType, MVT::i32, ++/* 61732*/ OPC_MoveParent, ++/* 61733*/ OPC_MoveChild3, ++/* 61734*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61737*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 61739*/ OPC_CheckType, MVT::i32, ++/* 61741*/ OPC_MoveParent, ++/* 61742*/ OPC_MoveChild4, ++/* 61743*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61746*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 61748*/ OPC_CheckType, MVT::i32, ++/* 61750*/ OPC_MoveParent, ++/* 61751*/ OPC_MoveChild5, ++/* 61752*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61755*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 61757*/ OPC_CheckType, MVT::i32, ++/* 61759*/ OPC_MoveParent, ++/* 61760*/ OPC_MoveChild6, ++/* 61761*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61764*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 61766*/ OPC_CheckType, MVT::i32, ++/* 61768*/ OPC_MoveParent, ++/* 61769*/ OPC_MoveChild7, ++/* 61770*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61773*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 61775*/ OPC_CheckType, MVT::i32, ++/* 61777*/ OPC_MoveParent, ++/* 61778*/ OPC_MoveChild, 8, ++/* 61780*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61783*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 61785*/ OPC_CheckType, MVT::i32, ++/* 61787*/ OPC_MoveParent, ++/* 61788*/ OPC_MoveChild, 9, ++/* 61790*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61793*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 61795*/ OPC_CheckType, MVT::i32, ++/* 61797*/ OPC_MoveParent, ++/* 61798*/ OPC_MoveChild, 10, ++/* 61800*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61803*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 61805*/ OPC_CheckType, MVT::i32, ++/* 61807*/ OPC_MoveParent, ++/* 61808*/ OPC_MoveChild, 11, ++/* 61810*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61813*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 61815*/ OPC_CheckType, MVT::i32, ++/* 61817*/ OPC_MoveParent, ++/* 61818*/ OPC_MoveChild, 12, ++/* 61820*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61823*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 61825*/ OPC_CheckType, MVT::i32, ++/* 61827*/ OPC_MoveParent, ++/* 61828*/ OPC_MoveChild, 13, ++/* 61830*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61833*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 61835*/ OPC_CheckType, MVT::i32, ++/* 61837*/ OPC_MoveParent, ++/* 61838*/ OPC_MoveChild, 14, ++/* 61840*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61843*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 61845*/ OPC_CheckType, MVT::i32, ++/* 61847*/ OPC_MoveParent, ++/* 61848*/ OPC_MoveChild, 15, ++/* 61850*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61853*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 61855*/ OPC_CheckType, MVT::i32, ++/* 61857*/ OPC_MoveParent, ++/* 61858*/ OPC_MoveParent, ++/* 61859*/ OPC_RecordChild1, // #0 = $vt ++/* 61860*/ OPC_CheckType, MVT::v16i16, ++/* 61862*/ OPC_MoveParent, ++/* 61863*/ OPC_MoveParent, ++/* 61864*/ OPC_RecordChild1, // #1 = $vs ++/* 61865*/ OPC_CheckType, MVT::v16i16, ++/* 61867*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 61869*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITSET_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (or:{ *:[v16i16] } (shl:{ *:[v16i16] } (build_vector:{ *:[v16i16] })<>, (and:{ *:[v16i16] } (build_vector:{ *:[v16i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v16i16:{ *:[v16i16] }:$vt)), v16i16:{ *:[v16i16] }:$vs) - Complexity = 80 ++ // Dst: (XVBITSET_H:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vs, v16i16:{ *:[v16i16] }:$vt) ++/* 61877*/ 0, /*End of Scope*/ ++/* 61878*/ /*Scope*/ 111|128,2/*367*/, /*->62247*/ ++/* 61880*/ OPC_RecordChild0, // #0 = $vj ++/* 61881*/ OPC_MoveChild1, ++/* 61882*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 61885*/ OPC_Scope, 57|128,1/*185*/, /*->62073*/ // 2 children in Scope ++/* 61888*/ OPC_RecordChild0, // #1 = $vk ++/* 61889*/ OPC_MoveChild1, ++/* 61890*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 61893*/ OPC_MoveChild0, ++/* 61894*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61897*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 61899*/ OPC_CheckType, MVT::i32, ++/* 61901*/ OPC_MoveParent, ++/* 61902*/ OPC_MoveChild1, ++/* 61903*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61906*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 61908*/ OPC_CheckType, MVT::i32, ++/* 61910*/ OPC_MoveParent, ++/* 61911*/ OPC_MoveChild2, ++/* 61912*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61915*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 61917*/ OPC_CheckType, MVT::i32, ++/* 61919*/ OPC_MoveParent, ++/* 61920*/ OPC_MoveChild3, ++/* 61921*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61924*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 61926*/ OPC_CheckType, MVT::i32, ++/* 61928*/ OPC_MoveParent, ++/* 61929*/ OPC_MoveChild4, ++/* 61930*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61933*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 61935*/ OPC_CheckType, MVT::i32, ++/* 61937*/ OPC_MoveParent, ++/* 61938*/ OPC_MoveChild5, ++/* 61939*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61942*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 61944*/ OPC_CheckType, MVT::i32, ++/* 61946*/ OPC_MoveParent, ++/* 61947*/ OPC_MoveChild6, ++/* 61948*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61951*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 61953*/ OPC_CheckType, MVT::i32, ++/* 61955*/ OPC_MoveParent, ++/* 61956*/ OPC_MoveChild7, ++/* 61957*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61960*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 61962*/ OPC_CheckType, MVT::i32, ++/* 61964*/ OPC_MoveParent, ++/* 61965*/ OPC_MoveChild, 8, ++/* 61967*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61970*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 61972*/ OPC_CheckType, MVT::i32, ++/* 61974*/ OPC_MoveParent, ++/* 61975*/ OPC_MoveChild, 9, ++/* 61977*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61980*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 61982*/ OPC_CheckType, MVT::i32, ++/* 61984*/ OPC_MoveParent, ++/* 61985*/ OPC_MoveChild, 10, ++/* 61987*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 61990*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 61992*/ OPC_CheckType, MVT::i32, ++/* 61994*/ OPC_MoveParent, ++/* 61995*/ OPC_MoveChild, 11, ++/* 61997*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62000*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62002*/ OPC_CheckType, MVT::i32, ++/* 62004*/ OPC_MoveParent, ++/* 62005*/ OPC_MoveChild, 12, ++/* 62007*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62010*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62012*/ OPC_CheckType, MVT::i32, ++/* 62014*/ OPC_MoveParent, ++/* 62015*/ OPC_MoveChild, 13, ++/* 62017*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62020*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62022*/ OPC_CheckType, MVT::i32, ++/* 62024*/ OPC_MoveParent, ++/* 62025*/ OPC_MoveChild, 14, ++/* 62027*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62030*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62032*/ OPC_CheckType, MVT::i32, ++/* 62034*/ OPC_MoveParent, ++/* 62035*/ OPC_MoveChild, 15, ++/* 62037*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62040*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62042*/ OPC_CheckType, MVT::i32, ++/* 62044*/ OPC_MoveParent, ++/* 62045*/ OPC_MoveParent, ++/* 62046*/ OPC_MoveParent, ++/* 62047*/ OPC_SwitchType /*2 cases */, 10, MVT::v16i8,// ->62060 ++/* 62050*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 62052*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VORN_V), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (or:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$vj, (xor:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$vk, (build_vector:{ *:[v16i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))) - Complexity = 73 ++ // Dst: (VORN_V:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) ++/* 62060*/ /*SwitchType*/ 10, MVT::v16i16,// ->62072 ++/* 62062*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 62064*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVORN_H_PSEUDO), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (or:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$xj, (xor:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$xk, (build_vector:{ *:[v16i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))) - Complexity = 73 ++ // Dst: (XVORN_H_PSEUDO:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) ++/* 62072*/ 0, // EndSwitchType ++/* 62073*/ /*Scope*/ 43|128,1/*171*/, /*->62246*/ ++/* 62075*/ OPC_MoveChild0, ++/* 62076*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 62079*/ OPC_MoveChild0, ++/* 62080*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62083*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62085*/ OPC_CheckType, MVT::i32, ++/* 62087*/ OPC_MoveParent, ++/* 62088*/ OPC_MoveChild1, ++/* 62089*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62092*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62094*/ OPC_CheckType, MVT::i32, ++/* 62096*/ OPC_MoveParent, ++/* 62097*/ OPC_MoveChild2, ++/* 62098*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62101*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62103*/ OPC_CheckType, MVT::i32, ++/* 62105*/ OPC_MoveParent, ++/* 62106*/ OPC_MoveChild3, ++/* 62107*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62110*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62112*/ OPC_CheckType, MVT::i32, ++/* 62114*/ OPC_MoveParent, ++/* 62115*/ OPC_MoveChild4, ++/* 62116*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62119*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62121*/ OPC_CheckType, MVT::i32, ++/* 62123*/ OPC_MoveParent, ++/* 62124*/ OPC_MoveChild5, ++/* 62125*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62128*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62130*/ OPC_CheckType, MVT::i32, ++/* 62132*/ OPC_MoveParent, ++/* 62133*/ OPC_MoveChild6, ++/* 62134*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62137*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62139*/ OPC_CheckType, MVT::i32, ++/* 62141*/ OPC_MoveParent, ++/* 62142*/ OPC_MoveChild7, ++/* 62143*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62146*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62148*/ OPC_CheckType, MVT::i32, ++/* 62150*/ OPC_MoveParent, ++/* 62151*/ OPC_MoveChild, 8, ++/* 62153*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62156*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62158*/ OPC_CheckType, MVT::i32, ++/* 62160*/ OPC_MoveParent, ++/* 62161*/ OPC_MoveChild, 9, ++/* 62163*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62166*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62168*/ OPC_CheckType, MVT::i32, ++/* 62170*/ OPC_MoveParent, ++/* 62171*/ OPC_MoveChild, 10, ++/* 62173*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62176*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62178*/ OPC_CheckType, MVT::i32, ++/* 62180*/ OPC_MoveParent, ++/* 62181*/ OPC_MoveChild, 11, ++/* 62183*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62186*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62188*/ OPC_CheckType, MVT::i32, ++/* 62190*/ OPC_MoveParent, ++/* 62191*/ OPC_MoveChild, 12, ++/* 62193*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62196*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62198*/ OPC_CheckType, MVT::i32, ++/* 62200*/ OPC_MoveParent, ++/* 62201*/ OPC_MoveChild, 13, ++/* 62203*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62206*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62208*/ OPC_CheckType, MVT::i32, ++/* 62210*/ OPC_MoveParent, ++/* 62211*/ OPC_MoveChild, 14, ++/* 62213*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62216*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62218*/ OPC_CheckType, MVT::i32, ++/* 62220*/ OPC_MoveParent, ++/* 62221*/ OPC_MoveChild, 15, ++/* 62223*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62226*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62228*/ OPC_CheckType, MVT::i32, ++/* 62230*/ OPC_MoveParent, ++/* 62231*/ OPC_MoveParent, ++/* 62232*/ OPC_RecordChild1, // #1 = $vk ++/* 62233*/ OPC_MoveParent, ++/* 62234*/ OPC_CheckType, MVT::v16i8, ++/* 62236*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 62238*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VORN_V), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (or:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$vj, (xor:{ *:[v16i8] } (build_vector:{ *:[v16i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), LSX128B:{ *:[v16i8] }:$vk)) - Complexity = 73 ++ // Dst: (VORN_V:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) ++/* 62246*/ 0, /*End of Scope*/ ++/* 62247*/ /*Scope*/ 98|128,2/*354*/, /*->62603*/ ++/* 62249*/ OPC_MoveChild0, ++/* 62250*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 62253*/ OPC_Scope, 44|128,1/*172*/, /*->62428*/ // 2 children in Scope ++/* 62256*/ OPC_RecordChild0, // #0 = $vk ++/* 62257*/ OPC_MoveChild1, ++/* 62258*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 62261*/ OPC_MoveChild0, ++/* 62262*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62265*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62267*/ OPC_CheckType, MVT::i32, ++/* 62269*/ OPC_MoveParent, ++/* 62270*/ OPC_MoveChild1, ++/* 62271*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62274*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62276*/ OPC_CheckType, MVT::i32, ++/* 62278*/ OPC_MoveParent, ++/* 62279*/ OPC_MoveChild2, ++/* 62280*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62283*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62285*/ OPC_CheckType, MVT::i32, ++/* 62287*/ OPC_MoveParent, ++/* 62288*/ OPC_MoveChild3, ++/* 62289*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62292*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62294*/ OPC_CheckType, MVT::i32, ++/* 62296*/ OPC_MoveParent, ++/* 62297*/ OPC_MoveChild4, ++/* 62298*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62301*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62303*/ OPC_CheckType, MVT::i32, ++/* 62305*/ OPC_MoveParent, ++/* 62306*/ OPC_MoveChild5, ++/* 62307*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62310*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62312*/ OPC_CheckType, MVT::i32, ++/* 62314*/ OPC_MoveParent, ++/* 62315*/ OPC_MoveChild6, ++/* 62316*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62319*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62321*/ OPC_CheckType, MVT::i32, ++/* 62323*/ OPC_MoveParent, ++/* 62324*/ OPC_MoveChild7, ++/* 62325*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62328*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62330*/ OPC_CheckType, MVT::i32, ++/* 62332*/ OPC_MoveParent, ++/* 62333*/ OPC_MoveChild, 8, ++/* 62335*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62338*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62340*/ OPC_CheckType, MVT::i32, ++/* 62342*/ OPC_MoveParent, ++/* 62343*/ OPC_MoveChild, 9, ++/* 62345*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62348*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62350*/ OPC_CheckType, MVT::i32, ++/* 62352*/ OPC_MoveParent, ++/* 62353*/ OPC_MoveChild, 10, ++/* 62355*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62358*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62360*/ OPC_CheckType, MVT::i32, ++/* 62362*/ OPC_MoveParent, ++/* 62363*/ OPC_MoveChild, 11, ++/* 62365*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62368*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62370*/ OPC_CheckType, MVT::i32, ++/* 62372*/ OPC_MoveParent, ++/* 62373*/ OPC_MoveChild, 12, ++/* 62375*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62378*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62380*/ OPC_CheckType, MVT::i32, ++/* 62382*/ OPC_MoveParent, ++/* 62383*/ OPC_MoveChild, 13, ++/* 62385*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62388*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62390*/ OPC_CheckType, MVT::i32, ++/* 62392*/ OPC_MoveParent, ++/* 62393*/ OPC_MoveChild, 14, ++/* 62395*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62398*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62400*/ OPC_CheckType, MVT::i32, ++/* 62402*/ OPC_MoveParent, ++/* 62403*/ OPC_MoveChild, 15, ++/* 62405*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62408*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62410*/ OPC_CheckType, MVT::i32, ++/* 62412*/ OPC_MoveParent, ++/* 62413*/ OPC_MoveParent, ++/* 62414*/ OPC_MoveParent, ++/* 62415*/ OPC_RecordChild1, // #1 = $vj ++/* 62416*/ OPC_CheckType, MVT::v16i8, ++/* 62418*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 62420*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VORN_V), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (or:{ *:[v16i8] } (xor:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$vk, (build_vector:{ *:[v16i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>)), LSX128B:{ *:[v16i8] }:$vj) - Complexity = 73 ++ // Dst: (VORN_V:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) ++/* 62428*/ /*Scope*/ 44|128,1/*172*/, /*->62602*/ ++/* 62430*/ OPC_MoveChild0, ++/* 62431*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 62434*/ OPC_MoveChild0, ++/* 62435*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62438*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62440*/ OPC_CheckType, MVT::i32, ++/* 62442*/ OPC_MoveParent, ++/* 62443*/ OPC_MoveChild1, ++/* 62444*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62447*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62449*/ OPC_CheckType, MVT::i32, ++/* 62451*/ OPC_MoveParent, ++/* 62452*/ OPC_MoveChild2, ++/* 62453*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62456*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62458*/ OPC_CheckType, MVT::i32, ++/* 62460*/ OPC_MoveParent, ++/* 62461*/ OPC_MoveChild3, ++/* 62462*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62465*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62467*/ OPC_CheckType, MVT::i32, ++/* 62469*/ OPC_MoveParent, ++/* 62470*/ OPC_MoveChild4, ++/* 62471*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62474*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62476*/ OPC_CheckType, MVT::i32, ++/* 62478*/ OPC_MoveParent, ++/* 62479*/ OPC_MoveChild5, ++/* 62480*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62483*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62485*/ OPC_CheckType, MVT::i32, ++/* 62487*/ OPC_MoveParent, ++/* 62488*/ OPC_MoveChild6, ++/* 62489*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62492*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62494*/ OPC_CheckType, MVT::i32, ++/* 62496*/ OPC_MoveParent, ++/* 62497*/ OPC_MoveChild7, ++/* 62498*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62501*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62503*/ OPC_CheckType, MVT::i32, ++/* 62505*/ OPC_MoveParent, ++/* 62506*/ OPC_MoveChild, 8, ++/* 62508*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62511*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62513*/ OPC_CheckType, MVT::i32, ++/* 62515*/ OPC_MoveParent, ++/* 62516*/ OPC_MoveChild, 9, ++/* 62518*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62521*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62523*/ OPC_CheckType, MVT::i32, ++/* 62525*/ OPC_MoveParent, ++/* 62526*/ OPC_MoveChild, 10, ++/* 62528*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62531*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62533*/ OPC_CheckType, MVT::i32, ++/* 62535*/ OPC_MoveParent, ++/* 62536*/ OPC_MoveChild, 11, ++/* 62538*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62541*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62543*/ OPC_CheckType, MVT::i32, ++/* 62545*/ OPC_MoveParent, ++/* 62546*/ OPC_MoveChild, 12, ++/* 62548*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62551*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62553*/ OPC_CheckType, MVT::i32, ++/* 62555*/ OPC_MoveParent, ++/* 62556*/ OPC_MoveChild, 13, ++/* 62558*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62561*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62563*/ OPC_CheckType, MVT::i32, ++/* 62565*/ OPC_MoveParent, ++/* 62566*/ OPC_MoveChild, 14, ++/* 62568*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62571*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62573*/ OPC_CheckType, MVT::i32, ++/* 62575*/ OPC_MoveParent, ++/* 62576*/ OPC_MoveChild, 15, ++/* 62578*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62581*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62583*/ OPC_CheckType, MVT::i32, ++/* 62585*/ OPC_MoveParent, ++/* 62586*/ OPC_MoveParent, ++/* 62587*/ OPC_RecordChild1, // #0 = $vk ++/* 62588*/ OPC_MoveParent, ++/* 62589*/ OPC_RecordChild1, // #1 = $vj ++/* 62590*/ OPC_CheckType, MVT::v16i8, ++/* 62592*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 62594*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VORN_V), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (or:{ *:[v16i8] } (xor:{ *:[v16i8] } (build_vector:{ *:[v16i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), LSX128B:{ *:[v16i8] }:$vk), LSX128B:{ *:[v16i8] }:$vj) - Complexity = 73 ++ // Dst: (VORN_V:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$vj, LSX128B:{ *:[v16i8] }:$vk) ++/* 62602*/ 0, /*End of Scope*/ ++/* 62603*/ /*Scope*/ 48|128,1/*176*/, /*->62781*/ ++/* 62605*/ OPC_RecordChild0, // #0 = $xj ++/* 62606*/ OPC_MoveChild1, ++/* 62607*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 62610*/ OPC_MoveChild0, ++/* 62611*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 62614*/ OPC_MoveChild0, ++/* 62615*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62618*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62620*/ OPC_CheckType, MVT::i32, ++/* 62622*/ OPC_MoveParent, ++/* 62623*/ OPC_MoveChild1, ++/* 62624*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62627*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62629*/ OPC_CheckType, MVT::i32, ++/* 62631*/ OPC_MoveParent, ++/* 62632*/ OPC_MoveChild2, ++/* 62633*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62636*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62638*/ OPC_CheckType, MVT::i32, ++/* 62640*/ OPC_MoveParent, ++/* 62641*/ OPC_MoveChild3, ++/* 62642*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62645*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62647*/ OPC_CheckType, MVT::i32, ++/* 62649*/ OPC_MoveParent, ++/* 62650*/ OPC_MoveChild4, ++/* 62651*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62654*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62656*/ OPC_CheckType, MVT::i32, ++/* 62658*/ OPC_MoveParent, ++/* 62659*/ OPC_MoveChild5, ++/* 62660*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62663*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62665*/ OPC_CheckType, MVT::i32, ++/* 62667*/ OPC_MoveParent, ++/* 62668*/ OPC_MoveChild6, ++/* 62669*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62672*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62674*/ OPC_CheckType, MVT::i32, ++/* 62676*/ OPC_MoveParent, ++/* 62677*/ OPC_MoveChild7, ++/* 62678*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62681*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62683*/ OPC_CheckType, MVT::i32, ++/* 62685*/ OPC_MoveParent, ++/* 62686*/ OPC_MoveChild, 8, ++/* 62688*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62691*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62693*/ OPC_CheckType, MVT::i32, ++/* 62695*/ OPC_MoveParent, ++/* 62696*/ OPC_MoveChild, 9, ++/* 62698*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62701*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62703*/ OPC_CheckType, MVT::i32, ++/* 62705*/ OPC_MoveParent, ++/* 62706*/ OPC_MoveChild, 10, ++/* 62708*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62711*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62713*/ OPC_CheckType, MVT::i32, ++/* 62715*/ OPC_MoveParent, ++/* 62716*/ OPC_MoveChild, 11, ++/* 62718*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62721*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62723*/ OPC_CheckType, MVT::i32, ++/* 62725*/ OPC_MoveParent, ++/* 62726*/ OPC_MoveChild, 12, ++/* 62728*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62731*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62733*/ OPC_CheckType, MVT::i32, ++/* 62735*/ OPC_MoveParent, ++/* 62736*/ OPC_MoveChild, 13, ++/* 62738*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62741*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62743*/ OPC_CheckType, MVT::i32, ++/* 62745*/ OPC_MoveParent, ++/* 62746*/ OPC_MoveChild, 14, ++/* 62748*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62751*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62753*/ OPC_CheckType, MVT::i32, ++/* 62755*/ OPC_MoveParent, ++/* 62756*/ OPC_MoveChild, 15, ++/* 62758*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62761*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62763*/ OPC_CheckType, MVT::i32, ++/* 62765*/ OPC_MoveParent, ++/* 62766*/ OPC_MoveParent, ++/* 62767*/ OPC_RecordChild1, // #1 = $xk ++/* 62768*/ OPC_MoveParent, ++/* 62769*/ OPC_CheckType, MVT::v16i16, ++/* 62771*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 62773*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVORN_H_PSEUDO), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (or:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$xj, (xor:{ *:[v16i16] } (build_vector:{ *:[v16i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), LASX256H:{ *:[v16i16] }:$xk)) - Complexity = 73 ++ // Dst: (XVORN_H_PSEUDO:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) ++/* 62781*/ /*Scope*/ 98|128,2/*354*/, /*->63137*/ ++/* 62783*/ OPC_MoveChild0, ++/* 62784*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 62787*/ OPC_Scope, 44|128,1/*172*/, /*->62962*/ // 2 children in Scope ++/* 62790*/ OPC_RecordChild0, // #0 = $xk ++/* 62791*/ OPC_MoveChild1, ++/* 62792*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 62795*/ OPC_MoveChild0, ++/* 62796*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62799*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62801*/ OPC_CheckType, MVT::i32, ++/* 62803*/ OPC_MoveParent, ++/* 62804*/ OPC_MoveChild1, ++/* 62805*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62808*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62810*/ OPC_CheckType, MVT::i32, ++/* 62812*/ OPC_MoveParent, ++/* 62813*/ OPC_MoveChild2, ++/* 62814*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62817*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62819*/ OPC_CheckType, MVT::i32, ++/* 62821*/ OPC_MoveParent, ++/* 62822*/ OPC_MoveChild3, ++/* 62823*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62826*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62828*/ OPC_CheckType, MVT::i32, ++/* 62830*/ OPC_MoveParent, ++/* 62831*/ OPC_MoveChild4, ++/* 62832*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62835*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62837*/ OPC_CheckType, MVT::i32, ++/* 62839*/ OPC_MoveParent, ++/* 62840*/ OPC_MoveChild5, ++/* 62841*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62844*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62846*/ OPC_CheckType, MVT::i32, ++/* 62848*/ OPC_MoveParent, ++/* 62849*/ OPC_MoveChild6, ++/* 62850*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62853*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62855*/ OPC_CheckType, MVT::i32, ++/* 62857*/ OPC_MoveParent, ++/* 62858*/ OPC_MoveChild7, ++/* 62859*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62862*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62864*/ OPC_CheckType, MVT::i32, ++/* 62866*/ OPC_MoveParent, ++/* 62867*/ OPC_MoveChild, 8, ++/* 62869*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62872*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62874*/ OPC_CheckType, MVT::i32, ++/* 62876*/ OPC_MoveParent, ++/* 62877*/ OPC_MoveChild, 9, ++/* 62879*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62882*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62884*/ OPC_CheckType, MVT::i32, ++/* 62886*/ OPC_MoveParent, ++/* 62887*/ OPC_MoveChild, 10, ++/* 62889*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62892*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62894*/ OPC_CheckType, MVT::i32, ++/* 62896*/ OPC_MoveParent, ++/* 62897*/ OPC_MoveChild, 11, ++/* 62899*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62902*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62904*/ OPC_CheckType, MVT::i32, ++/* 62906*/ OPC_MoveParent, ++/* 62907*/ OPC_MoveChild, 12, ++/* 62909*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62912*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62914*/ OPC_CheckType, MVT::i32, ++/* 62916*/ OPC_MoveParent, ++/* 62917*/ OPC_MoveChild, 13, ++/* 62919*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62922*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62924*/ OPC_CheckType, MVT::i32, ++/* 62926*/ OPC_MoveParent, ++/* 62927*/ OPC_MoveChild, 14, ++/* 62929*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62932*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62934*/ OPC_CheckType, MVT::i32, ++/* 62936*/ OPC_MoveParent, ++/* 62937*/ OPC_MoveChild, 15, ++/* 62939*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62942*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62944*/ OPC_CheckType, MVT::i32, ++/* 62946*/ OPC_MoveParent, ++/* 62947*/ OPC_MoveParent, ++/* 62948*/ OPC_MoveParent, ++/* 62949*/ OPC_RecordChild1, // #1 = $xj ++/* 62950*/ OPC_CheckType, MVT::v16i16, ++/* 62952*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 62954*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVORN_H_PSEUDO), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (or:{ *:[v16i16] } (xor:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$xk, (build_vector:{ *:[v16i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>)), LASX256H:{ *:[v16i16] }:$xj) - Complexity = 73 ++ // Dst: (XVORN_H_PSEUDO:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) ++/* 62962*/ /*Scope*/ 44|128,1/*172*/, /*->63136*/ ++/* 62964*/ OPC_MoveChild0, ++/* 62965*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 62968*/ OPC_MoveChild0, ++/* 62969*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62972*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62974*/ OPC_CheckType, MVT::i32, ++/* 62976*/ OPC_MoveParent, ++/* 62977*/ OPC_MoveChild1, ++/* 62978*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62981*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62983*/ OPC_CheckType, MVT::i32, ++/* 62985*/ OPC_MoveParent, ++/* 62986*/ OPC_MoveChild2, ++/* 62987*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62990*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 62992*/ OPC_CheckType, MVT::i32, ++/* 62994*/ OPC_MoveParent, ++/* 62995*/ OPC_MoveChild3, ++/* 62996*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 62999*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 63001*/ OPC_CheckType, MVT::i32, ++/* 63003*/ OPC_MoveParent, ++/* 63004*/ OPC_MoveChild4, ++/* 63005*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63008*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 63010*/ OPC_CheckType, MVT::i32, ++/* 63012*/ OPC_MoveParent, ++/* 63013*/ OPC_MoveChild5, ++/* 63014*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63017*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 63019*/ OPC_CheckType, MVT::i32, ++/* 63021*/ OPC_MoveParent, ++/* 63022*/ OPC_MoveChild6, ++/* 63023*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63026*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 63028*/ OPC_CheckType, MVT::i32, ++/* 63030*/ OPC_MoveParent, ++/* 63031*/ OPC_MoveChild7, ++/* 63032*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63035*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 63037*/ OPC_CheckType, MVT::i32, ++/* 63039*/ OPC_MoveParent, ++/* 63040*/ OPC_MoveChild, 8, ++/* 63042*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63045*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 63047*/ OPC_CheckType, MVT::i32, ++/* 63049*/ OPC_MoveParent, ++/* 63050*/ OPC_MoveChild, 9, ++/* 63052*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63055*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 63057*/ OPC_CheckType, MVT::i32, ++/* 63059*/ OPC_MoveParent, ++/* 63060*/ OPC_MoveChild, 10, ++/* 63062*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63065*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 63067*/ OPC_CheckType, MVT::i32, ++/* 63069*/ OPC_MoveParent, ++/* 63070*/ OPC_MoveChild, 11, ++/* 63072*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63075*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 63077*/ OPC_CheckType, MVT::i32, ++/* 63079*/ OPC_MoveParent, ++/* 63080*/ OPC_MoveChild, 12, ++/* 63082*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63085*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 63087*/ OPC_CheckType, MVT::i32, ++/* 63089*/ OPC_MoveParent, ++/* 63090*/ OPC_MoveChild, 13, ++/* 63092*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63095*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 63097*/ OPC_CheckType, MVT::i32, ++/* 63099*/ OPC_MoveParent, ++/* 63100*/ OPC_MoveChild, 14, ++/* 63102*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63105*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 63107*/ OPC_CheckType, MVT::i32, ++/* 63109*/ OPC_MoveParent, ++/* 63110*/ OPC_MoveChild, 15, ++/* 63112*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63115*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 63117*/ OPC_CheckType, MVT::i32, ++/* 63119*/ OPC_MoveParent, ++/* 63120*/ OPC_MoveParent, ++/* 63121*/ OPC_RecordChild1, // #0 = $xk ++/* 63122*/ OPC_MoveParent, ++/* 63123*/ OPC_RecordChild1, // #1 = $xj ++/* 63124*/ OPC_CheckType, MVT::v16i16, ++/* 63126*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 63128*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVORN_H_PSEUDO), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (or:{ *:[v16i16] } (xor:{ *:[v16i16] } (build_vector:{ *:[v16i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), LASX256H:{ *:[v16i16] }:$xk), LASX256H:{ *:[v16i16] }:$xj) - Complexity = 73 ++ // Dst: (XVORN_H_PSEUDO:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$xj, LASX256H:{ *:[v16i16] }:$xk) ++/* 63136*/ 0, /*End of Scope*/ ++/* 63137*/ /*Scope*/ 40|128,2/*296*/, /*->63435*/ ++/* 63139*/ OPC_RecordChild0, // #0 = $vs ++/* 63140*/ OPC_MoveChild1, ++/* 63141*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 63144*/ OPC_MoveChild0, ++/* 63145*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 63148*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 63150*/ OPC_MoveParent, ++/* 63151*/ OPC_MoveChild1, ++/* 63152*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 63155*/ OPC_Scope, 53|128,1/*181*/, /*->63339*/ // 2 children in Scope ++/* 63158*/ OPC_RecordChild0, // #1 = $vt ++/* 63159*/ OPC_MoveChild1, ++/* 63160*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 63163*/ OPC_MoveChild0, ++/* 63164*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63167*/ OPC_CheckType, MVT::i32, ++/* 63169*/ OPC_Scope, 83, /*->63254*/ // 2 children in Scope ++/* 63171*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 63173*/ OPC_MoveParent, ++/* 63174*/ OPC_MoveChild1, ++/* 63175*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63178*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 63180*/ OPC_CheckType, MVT::i32, ++/* 63182*/ OPC_MoveParent, ++/* 63183*/ OPC_MoveChild2, ++/* 63184*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63187*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 63189*/ OPC_CheckType, MVT::i32, ++/* 63191*/ OPC_MoveParent, ++/* 63192*/ OPC_MoveChild3, ++/* 63193*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63196*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 63198*/ OPC_CheckType, MVT::i32, ++/* 63200*/ OPC_MoveParent, ++/* 63201*/ OPC_MoveChild4, ++/* 63202*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63205*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 63207*/ OPC_CheckType, MVT::i32, ++/* 63209*/ OPC_MoveParent, ++/* 63210*/ OPC_MoveChild5, ++/* 63211*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63214*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 63216*/ OPC_CheckType, MVT::i32, ++/* 63218*/ OPC_MoveParent, ++/* 63219*/ OPC_MoveChild6, ++/* 63220*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63223*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 63225*/ OPC_CheckType, MVT::i32, ++/* 63227*/ OPC_MoveParent, ++/* 63228*/ OPC_MoveChild7, ++/* 63229*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63232*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 63234*/ OPC_CheckType, MVT::i32, ++/* 63236*/ OPC_MoveParent, ++/* 63237*/ OPC_MoveParent, ++/* 63238*/ OPC_CheckType, MVT::v8i16, ++/* 63240*/ OPC_MoveParent, ++/* 63241*/ OPC_MoveParent, ++/* 63242*/ OPC_CheckType, MVT::v8i16, ++/* 63244*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 63246*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITSET_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (or:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vs, (shl:{ *:[v8i16] } (build_vector:{ *:[v8i16] })<>, (and:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vt, (build_vector:{ *:[v8i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>)))) - Complexity = 48 ++ // Dst: (VBITSET_H:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vs, v8i16:{ *:[v8i16] }:$vt) ++/* 63254*/ /*Scope*/ 83, /*->63338*/ ++/* 63255*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 63257*/ OPC_MoveParent, ++/* 63258*/ OPC_MoveChild1, ++/* 63259*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63262*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 63264*/ OPC_CheckType, MVT::i32, ++/* 63266*/ OPC_MoveParent, ++/* 63267*/ OPC_MoveChild2, ++/* 63268*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63271*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 63273*/ OPC_CheckType, MVT::i32, ++/* 63275*/ OPC_MoveParent, ++/* 63276*/ OPC_MoveChild3, ++/* 63277*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63280*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 63282*/ OPC_CheckType, MVT::i32, ++/* 63284*/ OPC_MoveParent, ++/* 63285*/ OPC_MoveChild4, ++/* 63286*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63289*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 63291*/ OPC_CheckType, MVT::i32, ++/* 63293*/ OPC_MoveParent, ++/* 63294*/ OPC_MoveChild5, ++/* 63295*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63298*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 63300*/ OPC_CheckType, MVT::i32, ++/* 63302*/ OPC_MoveParent, ++/* 63303*/ OPC_MoveChild6, ++/* 63304*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63307*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 63309*/ OPC_CheckType, MVT::i32, ++/* 63311*/ OPC_MoveParent, ++/* 63312*/ OPC_MoveChild7, ++/* 63313*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63316*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 63318*/ OPC_CheckType, MVT::i32, ++/* 63320*/ OPC_MoveParent, ++/* 63321*/ OPC_MoveParent, ++/* 63322*/ OPC_CheckType, MVT::v8i32, ++/* 63324*/ OPC_MoveParent, ++/* 63325*/ OPC_MoveParent, ++/* 63326*/ OPC_CheckType, MVT::v8i32, ++/* 63328*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 63330*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITSET_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (or:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vs, (shl:{ *:[v8i32] } (build_vector:{ *:[v8i32] })<>, (and:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vt, (build_vector:{ *:[v8i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>)))) - Complexity = 48 ++ // Dst: (XVBITSET_W:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vs, v8i32:{ *:[v8i32] }:$vt) ++/* 63338*/ 0, /*End of Scope*/ ++/* 63339*/ /*Scope*/ 94, /*->63434*/ ++/* 63340*/ OPC_MoveChild0, ++/* 63341*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 63344*/ OPC_MoveChild0, ++/* 63345*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63348*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 63350*/ OPC_CheckType, MVT::i32, ++/* 63352*/ OPC_MoveParent, ++/* 63353*/ OPC_MoveChild1, ++/* 63354*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63357*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 63359*/ OPC_CheckType, MVT::i32, ++/* 63361*/ OPC_MoveParent, ++/* 63362*/ OPC_MoveChild2, ++/* 63363*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63366*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 63368*/ OPC_CheckType, MVT::i32, ++/* 63370*/ OPC_MoveParent, ++/* 63371*/ OPC_MoveChild3, ++/* 63372*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63375*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 63377*/ OPC_CheckType, MVT::i32, ++/* 63379*/ OPC_MoveParent, ++/* 63380*/ OPC_MoveChild4, ++/* 63381*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63384*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 63386*/ OPC_CheckType, MVT::i32, ++/* 63388*/ OPC_MoveParent, ++/* 63389*/ OPC_MoveChild5, ++/* 63390*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63393*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 63395*/ OPC_CheckType, MVT::i32, ++/* 63397*/ OPC_MoveParent, ++/* 63398*/ OPC_MoveChild6, ++/* 63399*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63402*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 63404*/ OPC_CheckType, MVT::i32, ++/* 63406*/ OPC_MoveParent, ++/* 63407*/ OPC_MoveChild7, ++/* 63408*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63411*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 63413*/ OPC_CheckType, MVT::i32, ++/* 63415*/ OPC_MoveParent, ++/* 63416*/ OPC_MoveParent, ++/* 63417*/ OPC_RecordChild1, // #1 = $vt ++/* 63418*/ OPC_CheckType, MVT::v8i16, ++/* 63420*/ OPC_MoveParent, ++/* 63421*/ OPC_MoveParent, ++/* 63422*/ OPC_CheckType, MVT::v8i16, ++/* 63424*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 63426*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITSET_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (or:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vs, (shl:{ *:[v8i16] } (build_vector:{ *:[v8i16] })<>, (and:{ *:[v8i16] } (build_vector:{ *:[v8i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v8i16:{ *:[v8i16] }:$vt))) - Complexity = 48 ++ // Dst: (VBITSET_H:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vs, v8i16:{ *:[v8i16] }:$vt) ++/* 63434*/ 0, /*End of Scope*/ ++/* 63435*/ /*Scope*/ 81|128,1/*209*/, /*->63646*/ ++/* 63437*/ OPC_MoveChild0, ++/* 63438*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 63441*/ OPC_MoveChild0, ++/* 63442*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 63445*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 63447*/ OPC_MoveParent, ++/* 63448*/ OPC_MoveChild1, ++/* 63449*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 63452*/ OPC_Scope, 95, /*->63549*/ // 2 children in Scope ++/* 63454*/ OPC_RecordChild0, // #0 = $vt ++/* 63455*/ OPC_MoveChild1, ++/* 63456*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 63459*/ OPC_MoveChild0, ++/* 63460*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63463*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 63465*/ OPC_CheckType, MVT::i32, ++/* 63467*/ OPC_MoveParent, ++/* 63468*/ OPC_MoveChild1, ++/* 63469*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63472*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 63474*/ OPC_CheckType, MVT::i32, ++/* 63476*/ OPC_MoveParent, ++/* 63477*/ OPC_MoveChild2, ++/* 63478*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63481*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 63483*/ OPC_CheckType, MVT::i32, ++/* 63485*/ OPC_MoveParent, ++/* 63486*/ OPC_MoveChild3, ++/* 63487*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63490*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 63492*/ OPC_CheckType, MVT::i32, ++/* 63494*/ OPC_MoveParent, ++/* 63495*/ OPC_MoveChild4, ++/* 63496*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63499*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 63501*/ OPC_CheckType, MVT::i32, ++/* 63503*/ OPC_MoveParent, ++/* 63504*/ OPC_MoveChild5, ++/* 63505*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63508*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 63510*/ OPC_CheckType, MVT::i32, ++/* 63512*/ OPC_MoveParent, ++/* 63513*/ OPC_MoveChild6, ++/* 63514*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63517*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 63519*/ OPC_CheckType, MVT::i32, ++/* 63521*/ OPC_MoveParent, ++/* 63522*/ OPC_MoveChild7, ++/* 63523*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63526*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 63528*/ OPC_CheckType, MVT::i32, ++/* 63530*/ OPC_MoveParent, ++/* 63531*/ OPC_MoveParent, ++/* 63532*/ OPC_CheckType, MVT::v8i16, ++/* 63534*/ OPC_MoveParent, ++/* 63535*/ OPC_MoveParent, ++/* 63536*/ OPC_RecordChild1, // #1 = $vs ++/* 63537*/ OPC_CheckType, MVT::v8i16, ++/* 63539*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 63541*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITSET_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (or:{ *:[v8i16] } (shl:{ *:[v8i16] } (build_vector:{ *:[v8i16] })<>, (and:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vt, (build_vector:{ *:[v8i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))), v8i16:{ *:[v8i16] }:$vs) - Complexity = 48 ++ // Dst: (VBITSET_H:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vs, v8i16:{ *:[v8i16] }:$vt) ++/* 63549*/ /*Scope*/ 95, /*->63645*/ ++/* 63550*/ OPC_MoveChild0, ++/* 63551*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 63554*/ OPC_MoveChild0, ++/* 63555*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63558*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 63560*/ OPC_CheckType, MVT::i32, ++/* 63562*/ OPC_MoveParent, ++/* 63563*/ OPC_MoveChild1, ++/* 63564*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63567*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 63569*/ OPC_CheckType, MVT::i32, ++/* 63571*/ OPC_MoveParent, ++/* 63572*/ OPC_MoveChild2, ++/* 63573*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63576*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 63578*/ OPC_CheckType, MVT::i32, ++/* 63580*/ OPC_MoveParent, ++/* 63581*/ OPC_MoveChild3, ++/* 63582*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63585*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 63587*/ OPC_CheckType, MVT::i32, ++/* 63589*/ OPC_MoveParent, ++/* 63590*/ OPC_MoveChild4, ++/* 63591*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63594*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 63596*/ OPC_CheckType, MVT::i32, ++/* 63598*/ OPC_MoveParent, ++/* 63599*/ OPC_MoveChild5, ++/* 63600*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63603*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 63605*/ OPC_CheckType, MVT::i32, ++/* 63607*/ OPC_MoveParent, ++/* 63608*/ OPC_MoveChild6, ++/* 63609*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63612*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 63614*/ OPC_CheckType, MVT::i32, ++/* 63616*/ OPC_MoveParent, ++/* 63617*/ OPC_MoveChild7, ++/* 63618*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63621*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 63623*/ OPC_CheckType, MVT::i32, ++/* 63625*/ OPC_MoveParent, ++/* 63626*/ OPC_MoveParent, ++/* 63627*/ OPC_RecordChild1, // #0 = $vt ++/* 63628*/ OPC_CheckType, MVT::v8i16, ++/* 63630*/ OPC_MoveParent, ++/* 63631*/ OPC_MoveParent, ++/* 63632*/ OPC_RecordChild1, // #1 = $vs ++/* 63633*/ OPC_CheckType, MVT::v8i16, ++/* 63635*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 63637*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITSET_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (or:{ *:[v8i16] } (shl:{ *:[v8i16] } (build_vector:{ *:[v8i16] })<>, (and:{ *:[v8i16] } (build_vector:{ *:[v8i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v8i16:{ *:[v8i16] }:$vt)), v8i16:{ *:[v8i16] }:$vs) - Complexity = 48 ++ // Dst: (VBITSET_H:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vs, v8i16:{ *:[v8i16] }:$vt) ++/* 63645*/ 0, /*End of Scope*/ ++/* 63646*/ /*Scope*/ 110, /*->63757*/ ++/* 63647*/ OPC_RecordChild0, // #0 = $vs ++/* 63648*/ OPC_MoveChild1, ++/* 63649*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 63652*/ OPC_MoveChild0, ++/* 63653*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 63656*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 63658*/ OPC_MoveParent, ++/* 63659*/ OPC_MoveChild1, ++/* 63660*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 63663*/ OPC_MoveChild0, ++/* 63664*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 63667*/ OPC_MoveChild0, ++/* 63668*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63671*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 63673*/ OPC_CheckType, MVT::i32, ++/* 63675*/ OPC_MoveParent, ++/* 63676*/ OPC_MoveChild1, ++/* 63677*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63680*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 63682*/ OPC_CheckType, MVT::i32, ++/* 63684*/ OPC_MoveParent, ++/* 63685*/ OPC_MoveChild2, ++/* 63686*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63689*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 63691*/ OPC_CheckType, MVT::i32, ++/* 63693*/ OPC_MoveParent, ++/* 63694*/ OPC_MoveChild3, ++/* 63695*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63698*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 63700*/ OPC_CheckType, MVT::i32, ++/* 63702*/ OPC_MoveParent, ++/* 63703*/ OPC_MoveChild4, ++/* 63704*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63707*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 63709*/ OPC_CheckType, MVT::i32, ++/* 63711*/ OPC_MoveParent, ++/* 63712*/ OPC_MoveChild5, ++/* 63713*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63716*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 63718*/ OPC_CheckType, MVT::i32, ++/* 63720*/ OPC_MoveParent, ++/* 63721*/ OPC_MoveChild6, ++/* 63722*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63725*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 63727*/ OPC_CheckType, MVT::i32, ++/* 63729*/ OPC_MoveParent, ++/* 63730*/ OPC_MoveChild7, ++/* 63731*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63734*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 63736*/ OPC_CheckType, MVT::i32, ++/* 63738*/ OPC_MoveParent, ++/* 63739*/ OPC_MoveParent, ++/* 63740*/ OPC_RecordChild1, // #1 = $vt ++/* 63741*/ OPC_CheckType, MVT::v8i32, ++/* 63743*/ OPC_MoveParent, ++/* 63744*/ OPC_MoveParent, ++/* 63745*/ OPC_CheckType, MVT::v8i32, ++/* 63747*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 63749*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITSET_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (or:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vs, (shl:{ *:[v8i32] } (build_vector:{ *:[v8i32] })<>, (and:{ *:[v8i32] } (build_vector:{ *:[v8i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v8i32:{ *:[v8i32] }:$vt))) - Complexity = 48 ++ // Dst: (XVBITSET_W:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vs, v8i32:{ *:[v8i32] }:$vt) ++/* 63757*/ /*Scope*/ 81|128,1/*209*/, /*->63968*/ ++/* 63759*/ OPC_MoveChild0, ++/* 63760*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 63763*/ OPC_MoveChild0, ++/* 63764*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 63767*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 63769*/ OPC_MoveParent, ++/* 63770*/ OPC_MoveChild1, ++/* 63771*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 63774*/ OPC_Scope, 95, /*->63871*/ // 2 children in Scope ++/* 63776*/ OPC_RecordChild0, // #0 = $vt ++/* 63777*/ OPC_MoveChild1, ++/* 63778*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 63781*/ OPC_MoveChild0, ++/* 63782*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63785*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 63787*/ OPC_CheckType, MVT::i32, ++/* 63789*/ OPC_MoveParent, ++/* 63790*/ OPC_MoveChild1, ++/* 63791*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63794*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 63796*/ OPC_CheckType, MVT::i32, ++/* 63798*/ OPC_MoveParent, ++/* 63799*/ OPC_MoveChild2, ++/* 63800*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63803*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 63805*/ OPC_CheckType, MVT::i32, ++/* 63807*/ OPC_MoveParent, ++/* 63808*/ OPC_MoveChild3, ++/* 63809*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63812*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 63814*/ OPC_CheckType, MVT::i32, ++/* 63816*/ OPC_MoveParent, ++/* 63817*/ OPC_MoveChild4, ++/* 63818*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63821*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 63823*/ OPC_CheckType, MVT::i32, ++/* 63825*/ OPC_MoveParent, ++/* 63826*/ OPC_MoveChild5, ++/* 63827*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63830*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 63832*/ OPC_CheckType, MVT::i32, ++/* 63834*/ OPC_MoveParent, ++/* 63835*/ OPC_MoveChild6, ++/* 63836*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63839*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 63841*/ OPC_CheckType, MVT::i32, ++/* 63843*/ OPC_MoveParent, ++/* 63844*/ OPC_MoveChild7, ++/* 63845*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63848*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 63850*/ OPC_CheckType, MVT::i32, ++/* 63852*/ OPC_MoveParent, ++/* 63853*/ OPC_MoveParent, ++/* 63854*/ OPC_CheckType, MVT::v8i32, ++/* 63856*/ OPC_MoveParent, ++/* 63857*/ OPC_MoveParent, ++/* 63858*/ OPC_RecordChild1, // #1 = $vs ++/* 63859*/ OPC_CheckType, MVT::v8i32, ++/* 63861*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 63863*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITSET_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (or:{ *:[v8i32] } (shl:{ *:[v8i32] } (build_vector:{ *:[v8i32] })<>, (and:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vt, (build_vector:{ *:[v8i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))), v8i32:{ *:[v8i32] }:$vs) - Complexity = 48 ++ // Dst: (XVBITSET_W:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vs, v8i32:{ *:[v8i32] }:$vt) ++/* 63871*/ /*Scope*/ 95, /*->63967*/ ++/* 63872*/ OPC_MoveChild0, ++/* 63873*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 63876*/ OPC_MoveChild0, ++/* 63877*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63880*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 63882*/ OPC_CheckType, MVT::i32, ++/* 63884*/ OPC_MoveParent, ++/* 63885*/ OPC_MoveChild1, ++/* 63886*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63889*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 63891*/ OPC_CheckType, MVT::i32, ++/* 63893*/ OPC_MoveParent, ++/* 63894*/ OPC_MoveChild2, ++/* 63895*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63898*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 63900*/ OPC_CheckType, MVT::i32, ++/* 63902*/ OPC_MoveParent, ++/* 63903*/ OPC_MoveChild3, ++/* 63904*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63907*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 63909*/ OPC_CheckType, MVT::i32, ++/* 63911*/ OPC_MoveParent, ++/* 63912*/ OPC_MoveChild4, ++/* 63913*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63916*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 63918*/ OPC_CheckType, MVT::i32, ++/* 63920*/ OPC_MoveParent, ++/* 63921*/ OPC_MoveChild5, ++/* 63922*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63925*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 63927*/ OPC_CheckType, MVT::i32, ++/* 63929*/ OPC_MoveParent, ++/* 63930*/ OPC_MoveChild6, ++/* 63931*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63934*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 63936*/ OPC_CheckType, MVT::i32, ++/* 63938*/ OPC_MoveParent, ++/* 63939*/ OPC_MoveChild7, ++/* 63940*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63943*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 63945*/ OPC_CheckType, MVT::i32, ++/* 63947*/ OPC_MoveParent, ++/* 63948*/ OPC_MoveParent, ++/* 63949*/ OPC_RecordChild1, // #0 = $vt ++/* 63950*/ OPC_CheckType, MVT::v8i32, ++/* 63952*/ OPC_MoveParent, ++/* 63953*/ OPC_MoveParent, ++/* 63954*/ OPC_RecordChild1, // #1 = $vs ++/* 63955*/ OPC_CheckType, MVT::v8i32, ++/* 63957*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 63959*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITSET_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (or:{ *:[v8i32] } (shl:{ *:[v8i32] } (build_vector:{ *:[v8i32] })<>, (and:{ *:[v8i32] } (build_vector:{ *:[v8i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v8i32:{ *:[v8i32] }:$vt)), v8i32:{ *:[v8i32] }:$vs) - Complexity = 48 ++ // Dst: (XVBITSET_W:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vs, v8i32:{ *:[v8i32] }:$vt) ++/* 63967*/ 0, /*End of Scope*/ ++/* 63968*/ /*Scope*/ 77|128,1/*205*/, /*->64175*/ ++/* 63970*/ OPC_RecordChild0, // #0 = $vj ++/* 63971*/ OPC_MoveChild1, ++/* 63972*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 63975*/ OPC_Scope, 105, /*->64082*/ // 2 children in Scope ++/* 63977*/ OPC_RecordChild0, // #1 = $vk ++/* 63978*/ OPC_MoveChild1, ++/* 63979*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 63982*/ OPC_MoveChild0, ++/* 63983*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63986*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 63988*/ OPC_CheckType, MVT::i32, ++/* 63990*/ OPC_MoveParent, ++/* 63991*/ OPC_MoveChild1, ++/* 63992*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 63995*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 63997*/ OPC_CheckType, MVT::i32, ++/* 63999*/ OPC_MoveParent, ++/* 64000*/ OPC_MoveChild2, ++/* 64001*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64004*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64006*/ OPC_CheckType, MVT::i32, ++/* 64008*/ OPC_MoveParent, ++/* 64009*/ OPC_MoveChild3, ++/* 64010*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64013*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64015*/ OPC_CheckType, MVT::i32, ++/* 64017*/ OPC_MoveParent, ++/* 64018*/ OPC_MoveChild4, ++/* 64019*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64022*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64024*/ OPC_CheckType, MVT::i32, ++/* 64026*/ OPC_MoveParent, ++/* 64027*/ OPC_MoveChild5, ++/* 64028*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64031*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64033*/ OPC_CheckType, MVT::i32, ++/* 64035*/ OPC_MoveParent, ++/* 64036*/ OPC_MoveChild6, ++/* 64037*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64040*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64042*/ OPC_CheckType, MVT::i32, ++/* 64044*/ OPC_MoveParent, ++/* 64045*/ OPC_MoveChild7, ++/* 64046*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64049*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64051*/ OPC_CheckType, MVT::i32, ++/* 64053*/ OPC_MoveParent, ++/* 64054*/ OPC_MoveParent, ++/* 64055*/ OPC_MoveParent, ++/* 64056*/ OPC_SwitchType /*2 cases */, 10, MVT::v8i16,// ->64069 ++/* 64059*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 64061*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VORN_H_PSEUDO), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (or:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vj, (xor:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vk, (build_vector:{ *:[v8i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))) - Complexity = 41 ++ // Dst: (VORN_H_PSEUDO:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) ++/* 64069*/ /*SwitchType*/ 10, MVT::v8i32,// ->64081 ++/* 64071*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 64073*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVORN_W_PSEUDO), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (or:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$xj, (xor:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$xk, (build_vector:{ *:[v8i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))) - Complexity = 41 ++ // Dst: (XVORN_W_PSEUDO:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) ++/* 64081*/ 0, // EndSwitchType ++/* 64082*/ /*Scope*/ 91, /*->64174*/ ++/* 64083*/ OPC_MoveChild0, ++/* 64084*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 64087*/ OPC_MoveChild0, ++/* 64088*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64091*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64093*/ OPC_CheckType, MVT::i32, ++/* 64095*/ OPC_MoveParent, ++/* 64096*/ OPC_MoveChild1, ++/* 64097*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64100*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64102*/ OPC_CheckType, MVT::i32, ++/* 64104*/ OPC_MoveParent, ++/* 64105*/ OPC_MoveChild2, ++/* 64106*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64109*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64111*/ OPC_CheckType, MVT::i32, ++/* 64113*/ OPC_MoveParent, ++/* 64114*/ OPC_MoveChild3, ++/* 64115*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64118*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64120*/ OPC_CheckType, MVT::i32, ++/* 64122*/ OPC_MoveParent, ++/* 64123*/ OPC_MoveChild4, ++/* 64124*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64127*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64129*/ OPC_CheckType, MVT::i32, ++/* 64131*/ OPC_MoveParent, ++/* 64132*/ OPC_MoveChild5, ++/* 64133*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64136*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64138*/ OPC_CheckType, MVT::i32, ++/* 64140*/ OPC_MoveParent, ++/* 64141*/ OPC_MoveChild6, ++/* 64142*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64145*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64147*/ OPC_CheckType, MVT::i32, ++/* 64149*/ OPC_MoveParent, ++/* 64150*/ OPC_MoveChild7, ++/* 64151*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64154*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64156*/ OPC_CheckType, MVT::i32, ++/* 64158*/ OPC_MoveParent, ++/* 64159*/ OPC_MoveParent, ++/* 64160*/ OPC_RecordChild1, // #1 = $vk ++/* 64161*/ OPC_MoveParent, ++/* 64162*/ OPC_CheckType, MVT::v8i16, ++/* 64164*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 64166*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VORN_H_PSEUDO), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (or:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vj, (xor:{ *:[v8i16] } (build_vector:{ *:[v8i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), LSX128H:{ *:[v8i16] }:$vk)) - Complexity = 41 ++ // Dst: (VORN_H_PSEUDO:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) ++/* 64174*/ 0, /*End of Scope*/ ++/* 64175*/ /*Scope*/ 64|128,1/*192*/, /*->64369*/ ++/* 64177*/ OPC_MoveChild0, ++/* 64178*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 64181*/ OPC_Scope, 92, /*->64275*/ // 2 children in Scope ++/* 64183*/ OPC_RecordChild0, // #0 = $vk ++/* 64184*/ OPC_MoveChild1, ++/* 64185*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 64188*/ OPC_MoveChild0, ++/* 64189*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64192*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64194*/ OPC_CheckType, MVT::i32, ++/* 64196*/ OPC_MoveParent, ++/* 64197*/ OPC_MoveChild1, ++/* 64198*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64201*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64203*/ OPC_CheckType, MVT::i32, ++/* 64205*/ OPC_MoveParent, ++/* 64206*/ OPC_MoveChild2, ++/* 64207*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64210*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64212*/ OPC_CheckType, MVT::i32, ++/* 64214*/ OPC_MoveParent, ++/* 64215*/ OPC_MoveChild3, ++/* 64216*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64219*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64221*/ OPC_CheckType, MVT::i32, ++/* 64223*/ OPC_MoveParent, ++/* 64224*/ OPC_MoveChild4, ++/* 64225*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64228*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64230*/ OPC_CheckType, MVT::i32, ++/* 64232*/ OPC_MoveParent, ++/* 64233*/ OPC_MoveChild5, ++/* 64234*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64237*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64239*/ OPC_CheckType, MVT::i32, ++/* 64241*/ OPC_MoveParent, ++/* 64242*/ OPC_MoveChild6, ++/* 64243*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64246*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64248*/ OPC_CheckType, MVT::i32, ++/* 64250*/ OPC_MoveParent, ++/* 64251*/ OPC_MoveChild7, ++/* 64252*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64255*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64257*/ OPC_CheckType, MVT::i32, ++/* 64259*/ OPC_MoveParent, ++/* 64260*/ OPC_MoveParent, ++/* 64261*/ OPC_MoveParent, ++/* 64262*/ OPC_RecordChild1, // #1 = $vj ++/* 64263*/ OPC_CheckType, MVT::v8i16, ++/* 64265*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 64267*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VORN_H_PSEUDO), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (or:{ *:[v8i16] } (xor:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vk, (build_vector:{ *:[v8i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>)), LSX128H:{ *:[v8i16] }:$vj) - Complexity = 41 ++ // Dst: (VORN_H_PSEUDO:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) ++/* 64275*/ /*Scope*/ 92, /*->64368*/ ++/* 64276*/ OPC_MoveChild0, ++/* 64277*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 64280*/ OPC_MoveChild0, ++/* 64281*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64284*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64286*/ OPC_CheckType, MVT::i32, ++/* 64288*/ OPC_MoveParent, ++/* 64289*/ OPC_MoveChild1, ++/* 64290*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64293*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64295*/ OPC_CheckType, MVT::i32, ++/* 64297*/ OPC_MoveParent, ++/* 64298*/ OPC_MoveChild2, ++/* 64299*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64302*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64304*/ OPC_CheckType, MVT::i32, ++/* 64306*/ OPC_MoveParent, ++/* 64307*/ OPC_MoveChild3, ++/* 64308*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64311*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64313*/ OPC_CheckType, MVT::i32, ++/* 64315*/ OPC_MoveParent, ++/* 64316*/ OPC_MoveChild4, ++/* 64317*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64320*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64322*/ OPC_CheckType, MVT::i32, ++/* 64324*/ OPC_MoveParent, ++/* 64325*/ OPC_MoveChild5, ++/* 64326*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64329*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64331*/ OPC_CheckType, MVT::i32, ++/* 64333*/ OPC_MoveParent, ++/* 64334*/ OPC_MoveChild6, ++/* 64335*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64338*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64340*/ OPC_CheckType, MVT::i32, ++/* 64342*/ OPC_MoveParent, ++/* 64343*/ OPC_MoveChild7, ++/* 64344*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64347*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64349*/ OPC_CheckType, MVT::i32, ++/* 64351*/ OPC_MoveParent, ++/* 64352*/ OPC_MoveParent, ++/* 64353*/ OPC_RecordChild1, // #0 = $vk ++/* 64354*/ OPC_MoveParent, ++/* 64355*/ OPC_RecordChild1, // #1 = $vj ++/* 64356*/ OPC_CheckType, MVT::v8i16, ++/* 64358*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 64360*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VORN_H_PSEUDO), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (or:{ *:[v8i16] } (xor:{ *:[v8i16] } (build_vector:{ *:[v8i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), LSX128H:{ *:[v8i16] }:$vk), LSX128H:{ *:[v8i16] }:$vj) - Complexity = 41 ++ // Dst: (VORN_H_PSEUDO:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$vj, LSX128H:{ *:[v8i16] }:$vk) ++/* 64368*/ 0, /*End of Scope*/ ++/* 64369*/ /*Scope*/ 96, /*->64466*/ ++/* 64370*/ OPC_RecordChild0, // #0 = $xj ++/* 64371*/ OPC_MoveChild1, ++/* 64372*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 64375*/ OPC_MoveChild0, ++/* 64376*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 64379*/ OPC_MoveChild0, ++/* 64380*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64383*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64385*/ OPC_CheckType, MVT::i32, ++/* 64387*/ OPC_MoveParent, ++/* 64388*/ OPC_MoveChild1, ++/* 64389*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64392*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64394*/ OPC_CheckType, MVT::i32, ++/* 64396*/ OPC_MoveParent, ++/* 64397*/ OPC_MoveChild2, ++/* 64398*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64401*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64403*/ OPC_CheckType, MVT::i32, ++/* 64405*/ OPC_MoveParent, ++/* 64406*/ OPC_MoveChild3, ++/* 64407*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64410*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64412*/ OPC_CheckType, MVT::i32, ++/* 64414*/ OPC_MoveParent, ++/* 64415*/ OPC_MoveChild4, ++/* 64416*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64419*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64421*/ OPC_CheckType, MVT::i32, ++/* 64423*/ OPC_MoveParent, ++/* 64424*/ OPC_MoveChild5, ++/* 64425*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64428*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64430*/ OPC_CheckType, MVT::i32, ++/* 64432*/ OPC_MoveParent, ++/* 64433*/ OPC_MoveChild6, ++/* 64434*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64437*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64439*/ OPC_CheckType, MVT::i32, ++/* 64441*/ OPC_MoveParent, ++/* 64442*/ OPC_MoveChild7, ++/* 64443*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64446*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64448*/ OPC_CheckType, MVT::i32, ++/* 64450*/ OPC_MoveParent, ++/* 64451*/ OPC_MoveParent, ++/* 64452*/ OPC_RecordChild1, // #1 = $xk ++/* 64453*/ OPC_MoveParent, ++/* 64454*/ OPC_CheckType, MVT::v8i32, ++/* 64456*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 64458*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVORN_W_PSEUDO), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (or:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$xj, (xor:{ *:[v8i32] } (build_vector:{ *:[v8i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), LASX256W:{ *:[v8i32] }:$xk)) - Complexity = 41 ++ // Dst: (XVORN_W_PSEUDO:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) ++/* 64466*/ /*Scope*/ 64|128,1/*192*/, /*->64660*/ ++/* 64468*/ OPC_MoveChild0, ++/* 64469*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 64472*/ OPC_Scope, 92, /*->64566*/ // 2 children in Scope ++/* 64474*/ OPC_RecordChild0, // #0 = $xk ++/* 64475*/ OPC_MoveChild1, ++/* 64476*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 64479*/ OPC_MoveChild0, ++/* 64480*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64483*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64485*/ OPC_CheckType, MVT::i32, ++/* 64487*/ OPC_MoveParent, ++/* 64488*/ OPC_MoveChild1, ++/* 64489*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64492*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64494*/ OPC_CheckType, MVT::i32, ++/* 64496*/ OPC_MoveParent, ++/* 64497*/ OPC_MoveChild2, ++/* 64498*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64501*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64503*/ OPC_CheckType, MVT::i32, ++/* 64505*/ OPC_MoveParent, ++/* 64506*/ OPC_MoveChild3, ++/* 64507*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64510*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64512*/ OPC_CheckType, MVT::i32, ++/* 64514*/ OPC_MoveParent, ++/* 64515*/ OPC_MoveChild4, ++/* 64516*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64519*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64521*/ OPC_CheckType, MVT::i32, ++/* 64523*/ OPC_MoveParent, ++/* 64524*/ OPC_MoveChild5, ++/* 64525*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64528*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64530*/ OPC_CheckType, MVT::i32, ++/* 64532*/ OPC_MoveParent, ++/* 64533*/ OPC_MoveChild6, ++/* 64534*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64537*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64539*/ OPC_CheckType, MVT::i32, ++/* 64541*/ OPC_MoveParent, ++/* 64542*/ OPC_MoveChild7, ++/* 64543*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64546*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64548*/ OPC_CheckType, MVT::i32, ++/* 64550*/ OPC_MoveParent, ++/* 64551*/ OPC_MoveParent, ++/* 64552*/ OPC_MoveParent, ++/* 64553*/ OPC_RecordChild1, // #1 = $xj ++/* 64554*/ OPC_CheckType, MVT::v8i32, ++/* 64556*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 64558*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVORN_W_PSEUDO), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (or:{ *:[v8i32] } (xor:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$xk, (build_vector:{ *:[v8i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>)), LASX256W:{ *:[v8i32] }:$xj) - Complexity = 41 ++ // Dst: (XVORN_W_PSEUDO:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) ++/* 64566*/ /*Scope*/ 92, /*->64659*/ ++/* 64567*/ OPC_MoveChild0, ++/* 64568*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 64571*/ OPC_MoveChild0, ++/* 64572*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64575*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64577*/ OPC_CheckType, MVT::i32, ++/* 64579*/ OPC_MoveParent, ++/* 64580*/ OPC_MoveChild1, ++/* 64581*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64584*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64586*/ OPC_CheckType, MVT::i32, ++/* 64588*/ OPC_MoveParent, ++/* 64589*/ OPC_MoveChild2, ++/* 64590*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64593*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64595*/ OPC_CheckType, MVT::i32, ++/* 64597*/ OPC_MoveParent, ++/* 64598*/ OPC_MoveChild3, ++/* 64599*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64602*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64604*/ OPC_CheckType, MVT::i32, ++/* 64606*/ OPC_MoveParent, ++/* 64607*/ OPC_MoveChild4, ++/* 64608*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64611*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64613*/ OPC_CheckType, MVT::i32, ++/* 64615*/ OPC_MoveParent, ++/* 64616*/ OPC_MoveChild5, ++/* 64617*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64620*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64622*/ OPC_CheckType, MVT::i32, ++/* 64624*/ OPC_MoveParent, ++/* 64625*/ OPC_MoveChild6, ++/* 64626*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64629*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64631*/ OPC_CheckType, MVT::i32, ++/* 64633*/ OPC_MoveParent, ++/* 64634*/ OPC_MoveChild7, ++/* 64635*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64638*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64640*/ OPC_CheckType, MVT::i32, ++/* 64642*/ OPC_MoveParent, ++/* 64643*/ OPC_MoveParent, ++/* 64644*/ OPC_RecordChild1, // #0 = $xk ++/* 64645*/ OPC_MoveParent, ++/* 64646*/ OPC_RecordChild1, // #1 = $xj ++/* 64647*/ OPC_CheckType, MVT::v8i32, ++/* 64649*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 64651*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVORN_W_PSEUDO), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (or:{ *:[v8i32] } (xor:{ *:[v8i32] } (build_vector:{ *:[v8i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), LASX256W:{ *:[v8i32] }:$xk), LASX256W:{ *:[v8i32] }:$xj) - Complexity = 41 ++ // Dst: (XVORN_W_PSEUDO:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$xj, LASX256W:{ *:[v8i32] }:$xk) ++/* 64659*/ 0, /*End of Scope*/ ++/* 64660*/ /*Scope*/ 8|128,1/*136*/, /*->64798*/ ++/* 64662*/ OPC_RecordChild0, // #0 = $vs ++/* 64663*/ OPC_MoveChild1, ++/* 64664*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 64667*/ OPC_MoveChild0, ++/* 64668*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 64671*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 64673*/ OPC_MoveParent, ++/* 64674*/ OPC_MoveChild1, ++/* 64675*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 64678*/ OPC_Scope, 58, /*->64738*/ // 2 children in Scope ++/* 64680*/ OPC_RecordChild0, // #1 = $vt ++/* 64681*/ OPC_MoveChild1, ++/* 64682*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 64685*/ OPC_MoveChild0, ++/* 64686*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64689*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 64691*/ OPC_CheckType, MVT::i32, ++/* 64693*/ OPC_MoveParent, ++/* 64694*/ OPC_MoveChild1, ++/* 64695*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64698*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 64700*/ OPC_CheckType, MVT::i32, ++/* 64702*/ OPC_MoveParent, ++/* 64703*/ OPC_MoveChild2, ++/* 64704*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64707*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 64709*/ OPC_CheckType, MVT::i32, ++/* 64711*/ OPC_MoveParent, ++/* 64712*/ OPC_MoveChild3, ++/* 64713*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64716*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 64718*/ OPC_CheckType, MVT::i32, ++/* 64720*/ OPC_MoveParent, ++/* 64721*/ OPC_MoveParent, ++/* 64722*/ OPC_CheckType, MVT::v4i32, ++/* 64724*/ OPC_MoveParent, ++/* 64725*/ OPC_MoveParent, ++/* 64726*/ OPC_CheckType, MVT::v4i32, ++/* 64728*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 64730*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITSET_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (or:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vs, (shl:{ *:[v4i32] } (build_vector:{ *:[v4i32] })<>, (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vt, (build_vector:{ *:[v4i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>)))) - Complexity = 32 ++ // Dst: (VBITSET_W:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vs, v4i32:{ *:[v4i32] }:$vt) ++/* 64738*/ /*Scope*/ 58, /*->64797*/ ++/* 64739*/ OPC_MoveChild0, ++/* 64740*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 64743*/ OPC_MoveChild0, ++/* 64744*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64747*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 64749*/ OPC_CheckType, MVT::i32, ++/* 64751*/ OPC_MoveParent, ++/* 64752*/ OPC_MoveChild1, ++/* 64753*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64756*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 64758*/ OPC_CheckType, MVT::i32, ++/* 64760*/ OPC_MoveParent, ++/* 64761*/ OPC_MoveChild2, ++/* 64762*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64765*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 64767*/ OPC_CheckType, MVT::i32, ++/* 64769*/ OPC_MoveParent, ++/* 64770*/ OPC_MoveChild3, ++/* 64771*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64774*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 64776*/ OPC_CheckType, MVT::i32, ++/* 64778*/ OPC_MoveParent, ++/* 64779*/ OPC_MoveParent, ++/* 64780*/ OPC_RecordChild1, // #1 = $vt ++/* 64781*/ OPC_CheckType, MVT::v4i32, ++/* 64783*/ OPC_MoveParent, ++/* 64784*/ OPC_MoveParent, ++/* 64785*/ OPC_CheckType, MVT::v4i32, ++/* 64787*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 64789*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITSET_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (or:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vs, (shl:{ *:[v4i32] } (build_vector:{ *:[v4i32] })<>, (and:{ *:[v4i32] } (build_vector:{ *:[v4i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v4i32:{ *:[v4i32] }:$vt))) - Complexity = 32 ++ // Dst: (VBITSET_W:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vs, v4i32:{ *:[v4i32] }:$vt) ++/* 64797*/ 0, /*End of Scope*/ ++/* 64798*/ /*Scope*/ 9|128,1/*137*/, /*->64937*/ ++/* 64800*/ OPC_MoveChild0, ++/* 64801*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 64804*/ OPC_MoveChild0, ++/* 64805*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 64808*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 64810*/ OPC_MoveParent, ++/* 64811*/ OPC_MoveChild1, ++/* 64812*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 64815*/ OPC_Scope, 59, /*->64876*/ // 2 children in Scope ++/* 64817*/ OPC_RecordChild0, // #0 = $vt ++/* 64818*/ OPC_MoveChild1, ++/* 64819*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 64822*/ OPC_MoveChild0, ++/* 64823*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64826*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 64828*/ OPC_CheckType, MVT::i32, ++/* 64830*/ OPC_MoveParent, ++/* 64831*/ OPC_MoveChild1, ++/* 64832*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64835*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 64837*/ OPC_CheckType, MVT::i32, ++/* 64839*/ OPC_MoveParent, ++/* 64840*/ OPC_MoveChild2, ++/* 64841*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64844*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 64846*/ OPC_CheckType, MVT::i32, ++/* 64848*/ OPC_MoveParent, ++/* 64849*/ OPC_MoveChild3, ++/* 64850*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64853*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 64855*/ OPC_CheckType, MVT::i32, ++/* 64857*/ OPC_MoveParent, ++/* 64858*/ OPC_MoveParent, ++/* 64859*/ OPC_CheckType, MVT::v4i32, ++/* 64861*/ OPC_MoveParent, ++/* 64862*/ OPC_MoveParent, ++/* 64863*/ OPC_RecordChild1, // #1 = $vs ++/* 64864*/ OPC_CheckType, MVT::v4i32, ++/* 64866*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 64868*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITSET_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (or:{ *:[v4i32] } (shl:{ *:[v4i32] } (build_vector:{ *:[v4i32] })<>, (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vt, (build_vector:{ *:[v4i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))), v4i32:{ *:[v4i32] }:$vs) - Complexity = 32 ++ // Dst: (VBITSET_W:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vs, v4i32:{ *:[v4i32] }:$vt) ++/* 64876*/ /*Scope*/ 59, /*->64936*/ ++/* 64877*/ OPC_MoveChild0, ++/* 64878*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 64881*/ OPC_MoveChild0, ++/* 64882*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64885*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 64887*/ OPC_CheckType, MVT::i32, ++/* 64889*/ OPC_MoveParent, ++/* 64890*/ OPC_MoveChild1, ++/* 64891*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64894*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 64896*/ OPC_CheckType, MVT::i32, ++/* 64898*/ OPC_MoveParent, ++/* 64899*/ OPC_MoveChild2, ++/* 64900*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64903*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 64905*/ OPC_CheckType, MVT::i32, ++/* 64907*/ OPC_MoveParent, ++/* 64908*/ OPC_MoveChild3, ++/* 64909*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64912*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 64914*/ OPC_CheckType, MVT::i32, ++/* 64916*/ OPC_MoveParent, ++/* 64917*/ OPC_MoveParent, ++/* 64918*/ OPC_RecordChild1, // #0 = $vt ++/* 64919*/ OPC_CheckType, MVT::v4i32, ++/* 64921*/ OPC_MoveParent, ++/* 64922*/ OPC_MoveParent, ++/* 64923*/ OPC_RecordChild1, // #1 = $vs ++/* 64924*/ OPC_CheckType, MVT::v4i32, ++/* 64926*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 64928*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITSET_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (or:{ *:[v4i32] } (shl:{ *:[v4i32] } (build_vector:{ *:[v4i32] })<>, (and:{ *:[v4i32] } (build_vector:{ *:[v4i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v4i32:{ *:[v4i32] }:$vt)), v4i32:{ *:[v4i32] }:$vs) - Complexity = 32 ++ // Dst: (VBITSET_W:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vs, v4i32:{ *:[v4i32] }:$vt) ++/* 64936*/ 0, /*End of Scope*/ ++/* 64937*/ /*Scope*/ 39|128,1/*167*/, /*->65106*/ ++/* 64939*/ OPC_RecordChild0, // #0 = $vj ++/* 64940*/ OPC_MoveChild1, ++/* 64941*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 64944*/ OPC_Scope, 103, /*->65049*/ // 2 children in Scope ++/* 64946*/ OPC_RecordChild0, // #1 = $vk ++/* 64947*/ OPC_MoveChild1, ++/* 64948*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 64951*/ OPC_MoveChild0, ++/* 64952*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64955*/ OPC_SwitchType /*2 cases */, 44, MVT::i32,// ->65002 ++/* 64958*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64960*/ OPC_MoveParent, ++/* 64961*/ OPC_MoveChild1, ++/* 64962*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64965*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64967*/ OPC_CheckType, MVT::i32, ++/* 64969*/ OPC_MoveParent, ++/* 64970*/ OPC_MoveChild2, ++/* 64971*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64974*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64976*/ OPC_CheckType, MVT::i32, ++/* 64978*/ OPC_MoveParent, ++/* 64979*/ OPC_MoveChild3, ++/* 64980*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 64983*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 64985*/ OPC_CheckType, MVT::i32, ++/* 64987*/ OPC_MoveParent, ++/* 64988*/ OPC_MoveParent, ++/* 64989*/ OPC_MoveParent, ++/* 64990*/ OPC_CheckType, MVT::v4i32, ++/* 64992*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 64994*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VORN_W_PSEUDO), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (or:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vj, (xor:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vk, (build_vector:{ *:[v4i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))) - Complexity = 25 ++ // Dst: (VORN_W_PSEUDO:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) ++/* 65002*/ /*SwitchType*/ 44, MVT::i64,// ->65048 ++/* 65004*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 65006*/ OPC_MoveParent, ++/* 65007*/ OPC_MoveChild1, ++/* 65008*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 65011*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 65013*/ OPC_CheckType, MVT::i64, ++/* 65015*/ OPC_MoveParent, ++/* 65016*/ OPC_MoveChild2, ++/* 65017*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 65020*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 65022*/ OPC_CheckType, MVT::i64, ++/* 65024*/ OPC_MoveParent, ++/* 65025*/ OPC_MoveChild3, ++/* 65026*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 65029*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 65031*/ OPC_CheckType, MVT::i64, ++/* 65033*/ OPC_MoveParent, ++/* 65034*/ OPC_MoveParent, ++/* 65035*/ OPC_MoveParent, ++/* 65036*/ OPC_CheckType, MVT::v4i64, ++/* 65038*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 65040*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVORN_D_PSEUDO), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (or:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$xj, (xor:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$xk, (build_vector:{ *:[v4i64] } (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>))) - Complexity = 25 ++ // Dst: (XVORN_D_PSEUDO:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) ++/* 65048*/ 0, // EndSwitchType ++/* 65049*/ /*Scope*/ 55, /*->65105*/ ++/* 65050*/ OPC_MoveChild0, ++/* 65051*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 65054*/ OPC_MoveChild0, ++/* 65055*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 65058*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 65060*/ OPC_CheckType, MVT::i32, ++/* 65062*/ OPC_MoveParent, ++/* 65063*/ OPC_MoveChild1, ++/* 65064*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 65067*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 65069*/ OPC_CheckType, MVT::i32, ++/* 65071*/ OPC_MoveParent, ++/* 65072*/ OPC_MoveChild2, ++/* 65073*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 65076*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 65078*/ OPC_CheckType, MVT::i32, ++/* 65080*/ OPC_MoveParent, ++/* 65081*/ OPC_MoveChild3, ++/* 65082*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 65085*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 65087*/ OPC_CheckType, MVT::i32, ++/* 65089*/ OPC_MoveParent, ++/* 65090*/ OPC_MoveParent, ++/* 65091*/ OPC_RecordChild1, // #1 = $vk ++/* 65092*/ OPC_MoveParent, ++/* 65093*/ OPC_CheckType, MVT::v4i32, ++/* 65095*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 65097*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VORN_W_PSEUDO), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (or:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vj, (xor:{ *:[v4i32] } (build_vector:{ *:[v4i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), LSX128W:{ *:[v4i32] }:$vk)) - Complexity = 25 ++ // Dst: (VORN_W_PSEUDO:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) ++/* 65105*/ 0, /*End of Scope*/ ++/* 65106*/ /*Scope*/ 120, /*->65227*/ ++/* 65107*/ OPC_MoveChild0, ++/* 65108*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 65111*/ OPC_Scope, 56, /*->65169*/ // 2 children in Scope ++/* 65113*/ OPC_RecordChild0, // #0 = $vk ++/* 65114*/ OPC_MoveChild1, ++/* 65115*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 65118*/ OPC_MoveChild0, ++/* 65119*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 65122*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 65124*/ OPC_CheckType, MVT::i32, ++/* 65126*/ OPC_MoveParent, ++/* 65127*/ OPC_MoveChild1, ++/* 65128*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 65131*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 65133*/ OPC_CheckType, MVT::i32, ++/* 65135*/ OPC_MoveParent, ++/* 65136*/ OPC_MoveChild2, ++/* 65137*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 65140*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 65142*/ OPC_CheckType, MVT::i32, ++/* 65144*/ OPC_MoveParent, ++/* 65145*/ OPC_MoveChild3, ++/* 65146*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 65149*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 65151*/ OPC_CheckType, MVT::i32, ++/* 65153*/ OPC_MoveParent, ++/* 65154*/ OPC_MoveParent, ++/* 65155*/ OPC_MoveParent, ++/* 65156*/ OPC_RecordChild1, // #1 = $vj ++/* 65157*/ OPC_CheckType, MVT::v4i32, ++/* 65159*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 65161*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VORN_W_PSEUDO), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (or:{ *:[v4i32] } (xor:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vk, (build_vector:{ *:[v4i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>)), LSX128W:{ *:[v4i32] }:$vj) - Complexity = 25 ++ // Dst: (VORN_W_PSEUDO:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) ++/* 65169*/ /*Scope*/ 56, /*->65226*/ ++/* 65170*/ OPC_MoveChild0, ++/* 65171*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 65174*/ OPC_MoveChild0, ++/* 65175*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 65178*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 65180*/ OPC_CheckType, MVT::i32, ++/* 65182*/ OPC_MoveParent, ++/* 65183*/ OPC_MoveChild1, ++/* 65184*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 65187*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 65189*/ OPC_CheckType, MVT::i32, ++/* 65191*/ OPC_MoveParent, ++/* 65192*/ OPC_MoveChild2, ++/* 65193*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 65196*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 65198*/ OPC_CheckType, MVT::i32, ++/* 65200*/ OPC_MoveParent, ++/* 65201*/ OPC_MoveChild3, ++/* 65202*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 65205*/ OPC_CheckPredicate, 37, // Predicate_imm_mask ++/* 65207*/ OPC_CheckType, MVT::i32, ++/* 65209*/ OPC_MoveParent, ++/* 65210*/ OPC_MoveParent, ++/* 65211*/ OPC_RecordChild1, // #0 = $vk ++/* 65212*/ OPC_MoveParent, ++/* 65213*/ OPC_RecordChild1, // #1 = $vj ++/* 65214*/ OPC_CheckType, MVT::v4i32, ++/* 65216*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 65218*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VORN_W_PSEUDO), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (or:{ *:[v4i32] } (xor:{ *:[v4i32] } (build_vector:{ *:[v4i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), LSX128W:{ *:[v4i32] }:$vk), LSX128W:{ *:[v4i32] }:$vj) - Complexity = 25 ++ // Dst: (VORN_W_PSEUDO:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$vj, LSX128W:{ *:[v4i32] }:$vk) ++/* 65226*/ 0, /*End of Scope*/ ++/* 65227*/ /*Scope*/ 60, /*->65288*/ ++/* 65228*/ OPC_RecordChild0, // #0 = $xj ++/* 65229*/ OPC_MoveChild1, ++/* 65230*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 65233*/ OPC_MoveChild0, ++/* 65234*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 65237*/ OPC_MoveChild0, ++/* 65238*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 65241*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 65243*/ OPC_CheckType, MVT::i64, ++/* 65245*/ OPC_MoveParent, ++/* 65246*/ OPC_MoveChild1, ++/* 65247*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 65250*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 65252*/ OPC_CheckType, MVT::i64, ++/* 65254*/ OPC_MoveParent, ++/* 65255*/ OPC_MoveChild2, ++/* 65256*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 65259*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 65261*/ OPC_CheckType, MVT::i64, ++/* 65263*/ OPC_MoveParent, ++/* 65264*/ OPC_MoveChild3, ++/* 65265*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 65268*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 65270*/ OPC_CheckType, MVT::i64, ++/* 65272*/ OPC_MoveParent, ++/* 65273*/ OPC_MoveParent, ++/* 65274*/ OPC_RecordChild1, // #1 = $xk ++/* 65275*/ OPC_MoveParent, ++/* 65276*/ OPC_CheckType, MVT::v4i64, ++/* 65278*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 65280*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVORN_D_PSEUDO), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (or:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$xj, (xor:{ *:[v4i64] } (build_vector:{ *:[v4i64] } (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>), LASX256D:{ *:[v4i64] }:$xk)) - Complexity = 25 ++ // Dst: (XVORN_D_PSEUDO:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) ++/* 65288*/ /*Scope*/ 120, /*->65409*/ ++/* 65289*/ OPC_MoveChild0, ++/* 65290*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 65293*/ OPC_Scope, 56, /*->65351*/ // 2 children in Scope ++/* 65295*/ OPC_RecordChild0, // #0 = $xk ++/* 65296*/ OPC_MoveChild1, ++/* 65297*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 65300*/ OPC_MoveChild0, ++/* 65301*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 65304*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 65306*/ OPC_CheckType, MVT::i64, ++/* 65308*/ OPC_MoveParent, ++/* 65309*/ OPC_MoveChild1, ++/* 65310*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 65313*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 65315*/ OPC_CheckType, MVT::i64, ++/* 65317*/ OPC_MoveParent, ++/* 65318*/ OPC_MoveChild2, ++/* 65319*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 65322*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 65324*/ OPC_CheckType, MVT::i64, ++/* 65326*/ OPC_MoveParent, ++/* 65327*/ OPC_MoveChild3, ++/* 65328*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 65331*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 65333*/ OPC_CheckType, MVT::i64, ++/* 65335*/ OPC_MoveParent, ++/* 65336*/ OPC_MoveParent, ++/* 65337*/ OPC_MoveParent, ++/* 65338*/ OPC_RecordChild1, // #1 = $xj ++/* 65339*/ OPC_CheckType, MVT::v4i64, ++/* 65341*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 65343*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVORN_D_PSEUDO), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (or:{ *:[v4i64] } (xor:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$xk, (build_vector:{ *:[v4i64] } (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>)), LASX256D:{ *:[v4i64] }:$xj) - Complexity = 25 ++ // Dst: (XVORN_D_PSEUDO:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) ++/* 65351*/ /*Scope*/ 56, /*->65408*/ ++/* 65352*/ OPC_MoveChild0, ++/* 65353*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 65356*/ OPC_MoveChild0, ++/* 65357*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 65360*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 65362*/ OPC_CheckType, MVT::i64, ++/* 65364*/ OPC_MoveParent, ++/* 65365*/ OPC_MoveChild1, ++/* 65366*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 65369*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 65371*/ OPC_CheckType, MVT::i64, ++/* 65373*/ OPC_MoveParent, ++/* 65374*/ OPC_MoveChild2, ++/* 65375*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 65378*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 65380*/ OPC_CheckType, MVT::i64, ++/* 65382*/ OPC_MoveParent, ++/* 65383*/ OPC_MoveChild3, ++/* 65384*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 65387*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 65389*/ OPC_CheckType, MVT::i64, ++/* 65391*/ OPC_MoveParent, ++/* 65392*/ OPC_MoveParent, ++/* 65393*/ OPC_RecordChild1, // #0 = $xk ++/* 65394*/ OPC_MoveParent, ++/* 65395*/ OPC_RecordChild1, // #1 = $xj ++/* 65396*/ OPC_CheckType, MVT::v4i64, ++/* 65398*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 65400*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVORN_D_PSEUDO), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (or:{ *:[v4i64] } (xor:{ *:[v4i64] } (build_vector:{ *:[v4i64] } (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>), LASX256D:{ *:[v4i64] }:$xk), LASX256D:{ *:[v4i64] }:$xj) - Complexity = 25 ++ // Dst: (XVORN_D_PSEUDO:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$xj, LASX256D:{ *:[v4i64] }:$xk) ++/* 65408*/ 0, /*End of Scope*/ ++/* 65409*/ /*Scope*/ 4|128,1/*132*/, /*->65543*/ ++/* 65411*/ OPC_RecordChild0, // #0 = $vs ++/* 65412*/ OPC_MoveChild1, ++/* 65413*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 65416*/ OPC_MoveChild0, ++/* 65417*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 65420*/ OPC_MoveChild0, ++/* 65421*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 65424*/ OPC_SwitchType /*2 cases */, 74, MVT::v4i32,// ->65501 ++/* 65427*/ OPC_MoveParent, ++/* 65428*/ OPC_CheckPredicate, 39, // Predicate_vsplati64_imm_eq_1 ++/* 65430*/ OPC_MoveParent, ++/* 65431*/ OPC_MoveChild1, ++/* 65432*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 65435*/ OPC_Scope, 31, /*->65468*/ // 2 children in Scope ++/* 65437*/ OPC_RecordChild0, // #1 = $vt ++/* 65438*/ OPC_MoveChild1, ++/* 65439*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 65442*/ OPC_MoveChild0, ++/* 65443*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 65446*/ OPC_CheckType, MVT::v4i32, ++/* 65448*/ OPC_MoveParent, ++/* 65449*/ OPC_CheckPredicate, 40, // Predicate_vsplati64_imm_eq_63 ++/* 65451*/ OPC_MoveParent, ++/* 65452*/ OPC_CheckType, MVT::v2i64, ++/* 65454*/ OPC_MoveParent, ++/* 65455*/ OPC_MoveParent, ++/* 65456*/ OPC_CheckType, MVT::v2i64, ++/* 65458*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 65460*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITSET_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (or:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vs, (shl:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] }))<>, (and:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vt, (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] }))<>))) - Complexity = 23 ++ // Dst: (VBITSET_D:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vs, v2i64:{ *:[v2i64] }:$vt) ++/* 65468*/ /*Scope*/ 31, /*->65500*/ ++/* 65469*/ OPC_MoveChild0, ++/* 65470*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 65473*/ OPC_MoveChild0, ++/* 65474*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 65477*/ OPC_CheckType, MVT::v4i32, ++/* 65479*/ OPC_MoveParent, ++/* 65480*/ OPC_CheckPredicate, 40, // Predicate_vsplati64_imm_eq_63 ++/* 65482*/ OPC_MoveParent, ++/* 65483*/ OPC_RecordChild1, // #1 = $vt ++/* 65484*/ OPC_CheckType, MVT::v2i64, ++/* 65486*/ OPC_MoveParent, ++/* 65487*/ OPC_MoveParent, ++/* 65488*/ OPC_CheckType, MVT::v2i64, ++/* 65490*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 65492*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITSET_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (or:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vs, (shl:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] }))<>, (and:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] }))<>, v2i64:{ *:[v2i64] }:$vt))) - Complexity = 23 ++ // Dst: (VBITSET_D:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vs, v2i64:{ *:[v2i64] }:$vt) ++/* 65500*/ 0, /*End of Scope*/ ++/* 65501*/ /*SwitchType*/ 39, MVT::v8i32,// ->65542 ++/* 65503*/ OPC_MoveParent, ++/* 65504*/ OPC_CheckPredicate, 39, // Predicate_xvsplati64_imm_eq_1 ++/* 65506*/ OPC_MoveParent, ++/* 65507*/ OPC_MoveChild1, ++/* 65508*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 65511*/ OPC_RecordChild0, // #1 = $vt ++/* 65512*/ OPC_MoveChild1, ++/* 65513*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 65516*/ OPC_MoveChild0, ++/* 65517*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 65520*/ OPC_CheckType, MVT::v8i32, ++/* 65522*/ OPC_MoveParent, ++/* 65523*/ OPC_CheckPredicate, 40, // Predicate_xvsplati64_imm_eq_63 ++/* 65525*/ OPC_MoveParent, ++/* 65526*/ OPC_CheckType, MVT::v4i64, ++/* 65528*/ OPC_MoveParent, ++/* 65529*/ OPC_MoveParent, ++/* 65530*/ OPC_CheckType, MVT::v4i64, ++/* 65532*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 65534*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITSET_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (or:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vs, (shl:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] }))<>, (and:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vt, (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] }))<>))) - Complexity = 23 ++ // Dst: (XVBITSET_D:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vs, v4i64:{ *:[v4i64] }:$vt) ++/* 65542*/ 0, // EndSwitchType ++/* 65543*/ /*Scope*/ 90, /*->65634*/ ++/* 65544*/ OPC_MoveChild0, ++/* 65545*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 65548*/ OPC_MoveChild0, ++/* 65549*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 65552*/ OPC_MoveChild0, ++/* 65553*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 65556*/ OPC_CheckType, MVT::v4i32, ++/* 65558*/ OPC_MoveParent, ++/* 65559*/ OPC_CheckPredicate, 39, // Predicate_vsplati64_imm_eq_1 ++/* 65561*/ OPC_MoveParent, ++/* 65562*/ OPC_MoveChild1, ++/* 65563*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 65566*/ OPC_Scope, 32, /*->65600*/ // 2 children in Scope ++/* 65568*/ OPC_RecordChild0, // #0 = $vt ++/* 65569*/ OPC_MoveChild1, ++/* 65570*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 65573*/ OPC_MoveChild0, ++/* 65574*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 65577*/ OPC_CheckType, MVT::v4i32, ++/* 65579*/ OPC_MoveParent, ++/* 65580*/ OPC_CheckPredicate, 40, // Predicate_vsplati64_imm_eq_63 ++/* 65582*/ OPC_MoveParent, ++/* 65583*/ OPC_CheckType, MVT::v2i64, ++/* 65585*/ OPC_MoveParent, ++/* 65586*/ OPC_MoveParent, ++/* 65587*/ OPC_RecordChild1, // #1 = $vs ++/* 65588*/ OPC_CheckType, MVT::v2i64, ++/* 65590*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 65592*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITSET_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (or:{ *:[v2i64] } (shl:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] }))<>, (and:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vt, (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] }))<>)), v2i64:{ *:[v2i64] }:$vs) - Complexity = 23 ++ // Dst: (VBITSET_D:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vs, v2i64:{ *:[v2i64] }:$vt) ++/* 65600*/ /*Scope*/ 32, /*->65633*/ ++/* 65601*/ OPC_MoveChild0, ++/* 65602*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 65605*/ OPC_MoveChild0, ++/* 65606*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 65609*/ OPC_CheckType, MVT::v4i32, ++/* 65611*/ OPC_MoveParent, ++/* 65612*/ OPC_CheckPredicate, 40, // Predicate_vsplati64_imm_eq_63 ++/* 65614*/ OPC_MoveParent, ++/* 65615*/ OPC_RecordChild1, // #0 = $vt ++/* 65616*/ OPC_CheckType, MVT::v2i64, ++/* 65618*/ OPC_MoveParent, ++/* 65619*/ OPC_MoveParent, ++/* 65620*/ OPC_RecordChild1, // #1 = $vs ++/* 65621*/ OPC_CheckType, MVT::v2i64, ++/* 65623*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 65625*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITSET_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (or:{ *:[v2i64] } (shl:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] }))<>, (and:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] }))<>, v2i64:{ *:[v2i64] }:$vt)), v2i64:{ *:[v2i64] }:$vs) - Complexity = 23 ++ // Dst: (VBITSET_D:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vs, v2i64:{ *:[v2i64] }:$vt) ++/* 65633*/ 0, /*End of Scope*/ ++/* 65634*/ /*Scope*/ 54, /*->65689*/ ++/* 65635*/ OPC_RecordChild0, // #0 = $vs ++/* 65636*/ OPC_MoveChild1, ++/* 65637*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 65640*/ OPC_MoveChild0, ++/* 65641*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 65644*/ OPC_MoveChild0, ++/* 65645*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 65648*/ OPC_CheckType, MVT::v8i32, ++/* 65650*/ OPC_MoveParent, ++/* 65651*/ OPC_CheckPredicate, 39, // Predicate_xvsplati64_imm_eq_1 ++/* 65653*/ OPC_MoveParent, ++/* 65654*/ OPC_MoveChild1, ++/* 65655*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 65658*/ OPC_MoveChild0, ++/* 65659*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 65662*/ OPC_MoveChild0, ++/* 65663*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 65666*/ OPC_CheckType, MVT::v8i32, ++/* 65668*/ OPC_MoveParent, ++/* 65669*/ OPC_CheckPredicate, 40, // Predicate_xvsplati64_imm_eq_63 ++/* 65671*/ OPC_MoveParent, ++/* 65672*/ OPC_RecordChild1, // #1 = $vt ++/* 65673*/ OPC_CheckType, MVT::v4i64, ++/* 65675*/ OPC_MoveParent, ++/* 65676*/ OPC_MoveParent, ++/* 65677*/ OPC_CheckType, MVT::v4i64, ++/* 65679*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 65681*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITSET_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (or:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vs, (shl:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] }))<>, (and:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] }))<>, v4i64:{ *:[v4i64] }:$vt))) - Complexity = 23 ++ // Dst: (XVBITSET_D:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vs, v4i64:{ *:[v4i64] }:$vt) ++/* 65689*/ /*Scope*/ 90, /*->65780*/ ++/* 65690*/ OPC_MoveChild0, ++/* 65691*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 65694*/ OPC_MoveChild0, ++/* 65695*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 65698*/ OPC_MoveChild0, ++/* 65699*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 65702*/ OPC_CheckType, MVT::v8i32, ++/* 65704*/ OPC_MoveParent, ++/* 65705*/ OPC_CheckPredicate, 39, // Predicate_xvsplati64_imm_eq_1 ++/* 65707*/ OPC_MoveParent, ++/* 65708*/ OPC_MoveChild1, ++/* 65709*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 65712*/ OPC_Scope, 32, /*->65746*/ // 2 children in Scope ++/* 65714*/ OPC_RecordChild0, // #0 = $vt ++/* 65715*/ OPC_MoveChild1, ++/* 65716*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 65719*/ OPC_MoveChild0, ++/* 65720*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 65723*/ OPC_CheckType, MVT::v8i32, ++/* 65725*/ OPC_MoveParent, ++/* 65726*/ OPC_CheckPredicate, 40, // Predicate_xvsplati64_imm_eq_63 ++/* 65728*/ OPC_MoveParent, ++/* 65729*/ OPC_CheckType, MVT::v4i64, ++/* 65731*/ OPC_MoveParent, ++/* 65732*/ OPC_MoveParent, ++/* 65733*/ OPC_RecordChild1, // #1 = $vs ++/* 65734*/ OPC_CheckType, MVT::v4i64, ++/* 65736*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 65738*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITSET_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (or:{ *:[v4i64] } (shl:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] }))<>, (and:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vt, (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] }))<>)), v4i64:{ *:[v4i64] }:$vs) - Complexity = 23 ++ // Dst: (XVBITSET_D:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vs, v4i64:{ *:[v4i64] }:$vt) ++/* 65746*/ /*Scope*/ 32, /*->65779*/ ++/* 65747*/ OPC_MoveChild0, ++/* 65748*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 65751*/ OPC_MoveChild0, ++/* 65752*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 65755*/ OPC_CheckType, MVT::v8i32, ++/* 65757*/ OPC_MoveParent, ++/* 65758*/ OPC_CheckPredicate, 40, // Predicate_xvsplati64_imm_eq_63 ++/* 65760*/ OPC_MoveParent, ++/* 65761*/ OPC_RecordChild1, // #0 = $vt ++/* 65762*/ OPC_CheckType, MVT::v4i64, ++/* 65764*/ OPC_MoveParent, ++/* 65765*/ OPC_MoveParent, ++/* 65766*/ OPC_RecordChild1, // #1 = $vs ++/* 65767*/ OPC_CheckType, MVT::v4i64, ++/* 65769*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 65771*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITSET_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (or:{ *:[v4i64] } (shl:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] }))<>, (and:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] }))<>, v4i64:{ *:[v4i64] }:$vt)), v4i64:{ *:[v4i64] }:$vs) - Complexity = 23 ++ // Dst: (XVBITSET_D:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vs, v4i64:{ *:[v4i64] }:$vt) ++/* 65779*/ 0, /*End of Scope*/ ++/* 65780*/ /*Scope*/ 83, /*->65864*/ ++/* 65781*/ OPC_RecordChild0, // #0 = $vj ++/* 65782*/ OPC_MoveChild1, ++/* 65783*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 65786*/ OPC_Scope, 37, /*->65825*/ // 2 children in Scope ++/* 65788*/ OPC_RecordChild0, // #1 = $vk ++/* 65789*/ OPC_MoveChild1, ++/* 65790*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 65793*/ OPC_MoveChild0, ++/* 65794*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 65797*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 65799*/ OPC_CheckType, MVT::i64, ++/* 65801*/ OPC_MoveParent, ++/* 65802*/ OPC_MoveChild1, ++/* 65803*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 65806*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 65808*/ OPC_CheckType, MVT::i64, ++/* 65810*/ OPC_MoveParent, ++/* 65811*/ OPC_MoveParent, ++/* 65812*/ OPC_MoveParent, ++/* 65813*/ OPC_CheckType, MVT::v2i64, ++/* 65815*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 65817*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VORN_D_PSEUDO), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (or:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vj, (xor:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vk, (build_vector:{ *:[v2i64] } (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>))) - Complexity = 17 ++ // Dst: (VORN_D_PSEUDO:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vj, LSX128D:{ *:[v2i64] }:$vk) ++/* 65825*/ /*Scope*/ 37, /*->65863*/ ++/* 65826*/ OPC_MoveChild0, ++/* 65827*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 65830*/ OPC_MoveChild0, ++/* 65831*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 65834*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 65836*/ OPC_CheckType, MVT::i64, ++/* 65838*/ OPC_MoveParent, ++/* 65839*/ OPC_MoveChild1, ++/* 65840*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 65843*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 65845*/ OPC_CheckType, MVT::i64, ++/* 65847*/ OPC_MoveParent, ++/* 65848*/ OPC_MoveParent, ++/* 65849*/ OPC_RecordChild1, // #1 = $vk ++/* 65850*/ OPC_MoveParent, ++/* 65851*/ OPC_CheckType, MVT::v2i64, ++/* 65853*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 65855*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VORN_D_PSEUDO), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (or:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vj, (xor:{ *:[v2i64] } (build_vector:{ *:[v2i64] } (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>), LSX128D:{ *:[v2i64] }:$vk)) - Complexity = 17 ++ // Dst: (VORN_D_PSEUDO:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vj, LSX128D:{ *:[v2i64] }:$vk) ++/* 65863*/ 0, /*End of Scope*/ ++/* 65864*/ /*Scope*/ 84, /*->65949*/ ++/* 65865*/ OPC_MoveChild0, ++/* 65866*/ OPC_CheckOpcode, TARGET_VAL(ISD::XOR), ++/* 65869*/ OPC_Scope, 38, /*->65909*/ // 2 children in Scope ++/* 65871*/ OPC_RecordChild0, // #0 = $vk ++/* 65872*/ OPC_MoveChild1, ++/* 65873*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 65876*/ OPC_MoveChild0, ++/* 65877*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 65880*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 65882*/ OPC_CheckType, MVT::i64, ++/* 65884*/ OPC_MoveParent, ++/* 65885*/ OPC_MoveChild1, ++/* 65886*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 65889*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 65891*/ OPC_CheckType, MVT::i64, ++/* 65893*/ OPC_MoveParent, ++/* 65894*/ OPC_MoveParent, ++/* 65895*/ OPC_MoveParent, ++/* 65896*/ OPC_RecordChild1, // #1 = $vj ++/* 65897*/ OPC_CheckType, MVT::v2i64, ++/* 65899*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 65901*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VORN_D_PSEUDO), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (or:{ *:[v2i64] } (xor:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vk, (build_vector:{ *:[v2i64] } (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>)), LSX128D:{ *:[v2i64] }:$vj) - Complexity = 17 ++ // Dst: (VORN_D_PSEUDO:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vj, LSX128D:{ *:[v2i64] }:$vk) ++/* 65909*/ /*Scope*/ 38, /*->65948*/ ++/* 65910*/ OPC_MoveChild0, ++/* 65911*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 65914*/ OPC_MoveChild0, ++/* 65915*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 65918*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 65920*/ OPC_CheckType, MVT::i64, ++/* 65922*/ OPC_MoveParent, ++/* 65923*/ OPC_MoveChild1, ++/* 65924*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 65927*/ OPC_CheckPredicate, 41, // Predicate_imm_mask_64 ++/* 65929*/ OPC_CheckType, MVT::i64, ++/* 65931*/ OPC_MoveParent, ++/* 65932*/ OPC_MoveParent, ++/* 65933*/ OPC_RecordChild1, // #0 = $vk ++/* 65934*/ OPC_MoveParent, ++/* 65935*/ OPC_RecordChild1, // #1 = $vj ++/* 65936*/ OPC_CheckType, MVT::v2i64, ++/* 65938*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 65940*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VORN_D_PSEUDO), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (or:{ *:[v2i64] } (xor:{ *:[v2i64] } (build_vector:{ *:[v2i64] } (imm:{ *:[i64] })<>, (imm:{ *:[i64] })<>), LSX128D:{ *:[v2i64] }:$vk), LSX128D:{ *:[v2i64] }:$vj) - Complexity = 17 ++ // Dst: (VORN_D_PSEUDO:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$vj, LSX128D:{ *:[v2i64] }:$vk) ++/* 65948*/ 0, /*End of Scope*/ ++/* 65949*/ /*Scope*/ 15|128,1/*143*/, /*->66094*/ ++/* 65951*/ OPC_RecordChild0, // #0 = $vj ++/* 65952*/ OPC_MoveChild1, ++/* 65953*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 65956*/ OPC_MoveChild0, ++/* 65957*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 65960*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 65962*/ OPC_MoveParent, ++/* 65963*/ OPC_RecordChild1, // #1 = $vk ++/* 65964*/ OPC_Scope, 15, /*->65981*/ // 8 children in Scope ++/* 65966*/ OPC_CheckChild1Type, MVT::v16i8, ++/* 65968*/ OPC_MoveParent, ++/* 65969*/ OPC_CheckType, MVT::v16i8, ++/* 65971*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 65973*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITSET_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (or:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vj, (shl:{ *:[v16i8] } (build_vector:{ *:[v16i8] })<>, v16i8:{ *:[v16i8] }:$vk)) - Complexity = 10 ++ // Dst: (VBITSET_B:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vj, v16i8:{ *:[v16i8] }:$vk) ++/* 65981*/ /*Scope*/ 15, /*->65997*/ ++/* 65982*/ OPC_CheckChild1Type, MVT::v8i16, ++/* 65984*/ OPC_MoveParent, ++/* 65985*/ OPC_CheckType, MVT::v8i16, ++/* 65987*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 65989*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITSET_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (or:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vj, (shl:{ *:[v8i16] } (build_vector:{ *:[v8i16] })<>, v8i16:{ *:[v8i16] }:$vk)) - Complexity = 10 ++ // Dst: (VBITSET_H:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vj, v8i16:{ *:[v8i16] }:$vk) ++/* 65997*/ /*Scope*/ 15, /*->66013*/ ++/* 65998*/ OPC_CheckChild1Type, MVT::v4i32, ++/* 66000*/ OPC_MoveParent, ++/* 66001*/ OPC_CheckType, MVT::v4i32, ++/* 66003*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 66005*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITSET_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (or:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vj, (shl:{ *:[v4i32] } (build_vector:{ *:[v4i32] })<>, v4i32:{ *:[v4i32] }:$vk)) - Complexity = 10 ++ // Dst: (VBITSET_W:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vj, v4i32:{ *:[v4i32] }:$vk) ++/* 66013*/ /*Scope*/ 15, /*->66029*/ ++/* 66014*/ OPC_CheckChild1Type, MVT::v2i64, ++/* 66016*/ OPC_MoveParent, ++/* 66017*/ OPC_CheckType, MVT::v2i64, ++/* 66019*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 66021*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITSET_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (or:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vj, (shl:{ *:[v2i64] } (build_vector:{ *:[v2i64] })<>, v2i64:{ *:[v2i64] }:$vk)) - Complexity = 10 ++ // Dst: (VBITSET_D:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vj, v2i64:{ *:[v2i64] }:$vk) ++/* 66029*/ /*Scope*/ 15, /*->66045*/ ++/* 66030*/ OPC_CheckChild1Type, MVT::v32i8, ++/* 66032*/ OPC_MoveParent, ++/* 66033*/ OPC_CheckType, MVT::v32i8, ++/* 66035*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 66037*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITSET_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (or:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vj, (shl:{ *:[v32i8] } (build_vector:{ *:[v32i8] })<>, v32i8:{ *:[v32i8] }:$vk)) - Complexity = 10 ++ // Dst: (XVBITSET_B:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vj, v32i8:{ *:[v32i8] }:$vk) ++/* 66045*/ /*Scope*/ 15, /*->66061*/ ++/* 66046*/ OPC_CheckChild1Type, MVT::v16i16, ++/* 66048*/ OPC_MoveParent, ++/* 66049*/ OPC_CheckType, MVT::v16i16, ++/* 66051*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 66053*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITSET_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (or:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vj, (shl:{ *:[v16i16] } (build_vector:{ *:[v16i16] })<>, v16i16:{ *:[v16i16] }:$vk)) - Complexity = 10 ++ // Dst: (XVBITSET_H:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vj, v16i16:{ *:[v16i16] }:$vk) ++/* 66061*/ /*Scope*/ 15, /*->66077*/ ++/* 66062*/ OPC_CheckChild1Type, MVT::v8i32, ++/* 66064*/ OPC_MoveParent, ++/* 66065*/ OPC_CheckType, MVT::v8i32, ++/* 66067*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 66069*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITSET_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (or:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vj, (shl:{ *:[v8i32] } (build_vector:{ *:[v8i32] })<>, v8i32:{ *:[v8i32] }:$vk)) - Complexity = 10 ++ // Dst: (XVBITSET_W:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vj, v8i32:{ *:[v8i32] }:$vk) ++/* 66077*/ /*Scope*/ 15, /*->66093*/ ++/* 66078*/ OPC_CheckChild1Type, MVT::v4i64, ++/* 66080*/ OPC_MoveParent, ++/* 66081*/ OPC_CheckType, MVT::v4i64, ++/* 66083*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 66085*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITSET_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (or:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vj, (shl:{ *:[v4i64] } (build_vector:{ *:[v4i64] })<>, v4i64:{ *:[v4i64] }:$vk)) - Complexity = 10 ++ // Dst: (XVBITSET_D:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vj, v4i64:{ *:[v4i64] }:$vk) ++/* 66093*/ 0, /*End of Scope*/ ++/* 66094*/ /*Scope*/ 22|128,1/*150*/, /*->66246*/ ++/* 66096*/ OPC_MoveChild0, ++/* 66097*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 66100*/ OPC_MoveChild0, ++/* 66101*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 66104*/ OPC_CheckPredicate, 34, // Predicate_vsplat_imm_eq_1 ++/* 66106*/ OPC_MoveParent, ++/* 66107*/ OPC_RecordChild1, // #0 = $vk ++/* 66108*/ OPC_Scope, 16, /*->66126*/ // 8 children in Scope ++/* 66110*/ OPC_CheckChild1Type, MVT::v16i8, ++/* 66112*/ OPC_MoveParent, ++/* 66113*/ OPC_RecordChild1, // #1 = $vj ++/* 66114*/ OPC_CheckType, MVT::v16i8, ++/* 66116*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 66118*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITSET_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (or:{ *:[v16i8] } (shl:{ *:[v16i8] } (build_vector:{ *:[v16i8] })<>, v16i8:{ *:[v16i8] }:$vk), v16i8:{ *:[v16i8] }:$vj) - Complexity = 10 ++ // Dst: (VBITSET_B:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vj, v16i8:{ *:[v16i8] }:$vk) ++/* 66126*/ /*Scope*/ 16, /*->66143*/ ++/* 66127*/ OPC_CheckChild1Type, MVT::v8i16, ++/* 66129*/ OPC_MoveParent, ++/* 66130*/ OPC_RecordChild1, // #1 = $vj ++/* 66131*/ OPC_CheckType, MVT::v8i16, ++/* 66133*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 66135*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITSET_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (or:{ *:[v8i16] } (shl:{ *:[v8i16] } (build_vector:{ *:[v8i16] })<>, v8i16:{ *:[v8i16] }:$vk), v8i16:{ *:[v8i16] }:$vj) - Complexity = 10 ++ // Dst: (VBITSET_H:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vj, v8i16:{ *:[v8i16] }:$vk) ++/* 66143*/ /*Scope*/ 16, /*->66160*/ ++/* 66144*/ OPC_CheckChild1Type, MVT::v4i32, ++/* 66146*/ OPC_MoveParent, ++/* 66147*/ OPC_RecordChild1, // #1 = $vj ++/* 66148*/ OPC_CheckType, MVT::v4i32, ++/* 66150*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 66152*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITSET_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (or:{ *:[v4i32] } (shl:{ *:[v4i32] } (build_vector:{ *:[v4i32] })<>, v4i32:{ *:[v4i32] }:$vk), v4i32:{ *:[v4i32] }:$vj) - Complexity = 10 ++ // Dst: (VBITSET_W:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vj, v4i32:{ *:[v4i32] }:$vk) ++/* 66160*/ /*Scope*/ 16, /*->66177*/ ++/* 66161*/ OPC_CheckChild1Type, MVT::v2i64, ++/* 66163*/ OPC_MoveParent, ++/* 66164*/ OPC_RecordChild1, // #1 = $vj ++/* 66165*/ OPC_CheckType, MVT::v2i64, ++/* 66167*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 66169*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITSET_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (or:{ *:[v2i64] } (shl:{ *:[v2i64] } (build_vector:{ *:[v2i64] })<>, v2i64:{ *:[v2i64] }:$vk), v2i64:{ *:[v2i64] }:$vj) - Complexity = 10 ++ // Dst: (VBITSET_D:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vj, v2i64:{ *:[v2i64] }:$vk) ++/* 66177*/ /*Scope*/ 16, /*->66194*/ ++/* 66178*/ OPC_CheckChild1Type, MVT::v32i8, ++/* 66180*/ OPC_MoveParent, ++/* 66181*/ OPC_RecordChild1, // #1 = $vj ++/* 66182*/ OPC_CheckType, MVT::v32i8, ++/* 66184*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 66186*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITSET_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (or:{ *:[v32i8] } (shl:{ *:[v32i8] } (build_vector:{ *:[v32i8] })<>, v32i8:{ *:[v32i8] }:$vk), v32i8:{ *:[v32i8] }:$vj) - Complexity = 10 ++ // Dst: (XVBITSET_B:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vj, v32i8:{ *:[v32i8] }:$vk) ++/* 66194*/ /*Scope*/ 16, /*->66211*/ ++/* 66195*/ OPC_CheckChild1Type, MVT::v16i16, ++/* 66197*/ OPC_MoveParent, ++/* 66198*/ OPC_RecordChild1, // #1 = $vj ++/* 66199*/ OPC_CheckType, MVT::v16i16, ++/* 66201*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 66203*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITSET_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (or:{ *:[v16i16] } (shl:{ *:[v16i16] } (build_vector:{ *:[v16i16] })<>, v16i16:{ *:[v16i16] }:$vk), v16i16:{ *:[v16i16] }:$vj) - Complexity = 10 ++ // Dst: (XVBITSET_H:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vj, v16i16:{ *:[v16i16] }:$vk) ++/* 66211*/ /*Scope*/ 16, /*->66228*/ ++/* 66212*/ OPC_CheckChild1Type, MVT::v8i32, ++/* 66214*/ OPC_MoveParent, ++/* 66215*/ OPC_RecordChild1, // #1 = $vj ++/* 66216*/ OPC_CheckType, MVT::v8i32, ++/* 66218*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 66220*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITSET_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (or:{ *:[v8i32] } (shl:{ *:[v8i32] } (build_vector:{ *:[v8i32] })<>, v8i32:{ *:[v8i32] }:$vk), v8i32:{ *:[v8i32] }:$vj) - Complexity = 10 ++ // Dst: (XVBITSET_W:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vj, v8i32:{ *:[v8i32] }:$vk) ++/* 66228*/ /*Scope*/ 16, /*->66245*/ ++/* 66229*/ OPC_CheckChild1Type, MVT::v4i64, ++/* 66231*/ OPC_MoveParent, ++/* 66232*/ OPC_RecordChild1, // #1 = $vj ++/* 66233*/ OPC_CheckType, MVT::v4i64, ++/* 66235*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 66237*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITSET_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (or:{ *:[v4i64] } (shl:{ *:[v4i64] } (build_vector:{ *:[v4i64] })<>, v4i64:{ *:[v4i64] }:$vk), v4i64:{ *:[v4i64] }:$vj) - Complexity = 10 ++ // Dst: (XVBITSET_D:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vj, v4i64:{ *:[v4i64] }:$vk) ++/* 66245*/ 0, /*End of Scope*/ ++/* 66246*/ /*Scope*/ 96, /*->66343*/ ++/* 66247*/ OPC_RecordChild0, // #0 = $vj ++/* 66248*/ OPC_RecordChild1, // #1 = $vk ++/* 66249*/ OPC_SwitchType /*8 cases */, 8, MVT::v16i8,// ->66260 ++/* 66252*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VOR_V), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (or:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) - Complexity = 3 ++ // Dst: (VOR_V:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/* 66260*/ /*SwitchType*/ 10, MVT::v8i16,// ->66272 ++/* 66262*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 66264*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::OR_V_H_PSEUDO), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (or:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 3 ++ // Dst: (OR_V_H_PSEUDO:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/* 66272*/ /*SwitchType*/ 10, MVT::v4i32,// ->66284 ++/* 66274*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 66276*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::OR_V_W_PSEUDO), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (or:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 3 ++ // Dst: (OR_V_W_PSEUDO:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/* 66284*/ /*SwitchType*/ 10, MVT::v2i64,// ->66296 ++/* 66286*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 66288*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::OR_V_D_PSEUDO), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (or:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 3 ++ // Dst: (OR_V_D_PSEUDO:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 66296*/ /*SwitchType*/ 8, MVT::v32i8,// ->66306 ++/* 66298*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVOR_V), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (or:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 3 ++ // Dst: (XVOR_V:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 66306*/ /*SwitchType*/ 10, MVT::v16i16,// ->66318 ++/* 66308*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 66310*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::X_OR_V_H_PSEUDO), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (or:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 3 ++ // Dst: (X_OR_V_H_PSEUDO:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 66318*/ /*SwitchType*/ 10, MVT::v8i32,// ->66330 ++/* 66320*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 66322*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::X_OR_V_W_PSEUDO), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (or:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 3 ++ // Dst: (X_OR_V_W_PSEUDO:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 66330*/ /*SwitchType*/ 10, MVT::v4i64,// ->66342 ++/* 66332*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 66334*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::X_OR_V_D_PSEUDO), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (or:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 3 ++ // Dst: (X_OR_V_D_PSEUDO:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 66342*/ 0, // EndSwitchType ++/* 66343*/ 0, /*End of Scope*/ ++/* 66344*/ /*SwitchOpcode*/ 55|128,6/*823*/, TARGET_VAL(ISD::ADD),// ->67171 ++/* 66348*/ OPC_Scope, 45, /*->66395*/ // 9 children in Scope ++/* 66350*/ OPC_RecordChild0, // #0 = $rk ++/* 66351*/ OPC_MoveChild1, ++/* 66352*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 66355*/ OPC_RecordChild0, // #1 = $rj ++/* 66356*/ OPC_RecordChild1, // #2 = $sa ++/* 66357*/ OPC_MoveChild1, ++/* 66358*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 66361*/ OPC_CheckPredicate, 19, // Predicate_immZExt2Alsl ++/* 66363*/ OPC_CheckType, MVT::i32, ++/* 66365*/ OPC_MoveParent, ++/* 66366*/ OPC_MoveParent, ++/* 66367*/ OPC_SwitchType /*2 cases */, 11, MVT::i64,// ->66381 ++/* 66370*/ OPC_EmitConvertToTarget, 2, ++/* 66372*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ALSL_D), 0, ++ MVT::i64, 3/*#Ops*/, 1, 0, 3, ++ // Src: (add:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rk, (shl:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, (imm:{ *:[i32] })<>:$sa)) - Complexity = 10 ++ // Dst: (ALSL_D:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, GPR64Opnd:{ *:[i64] }:$rk, (imm:{ *:[i32] }):$sa) ++/* 66381*/ /*SwitchType*/ 11, MVT::i32,// ->66394 ++/* 66383*/ OPC_EmitConvertToTarget, 2, ++/* 66385*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ALSL_W), 0, ++ MVT::i32, 3/*#Ops*/, 1, 0, 3, ++ // Src: (add:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rk, (shl:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, (imm:{ *:[i32] })<>:$sa)) - Complexity = 10 ++ // Dst: (ALSL_W:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rk, (imm:{ *:[i32] }):$sa) ++/* 66394*/ 0, // EndSwitchType ++/* 66395*/ /*Scope*/ 45, /*->66441*/ ++/* 66396*/ OPC_MoveChild0, ++/* 66397*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL), ++/* 66400*/ OPC_RecordChild0, // #0 = $rj ++/* 66401*/ OPC_RecordChild1, // #1 = $sa ++/* 66402*/ OPC_MoveChild1, ++/* 66403*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 66406*/ OPC_CheckPredicate, 19, // Predicate_immZExt2Alsl ++/* 66408*/ OPC_CheckType, MVT::i32, ++/* 66410*/ OPC_MoveParent, ++/* 66411*/ OPC_MoveParent, ++/* 66412*/ OPC_RecordChild1, // #2 = $rk ++/* 66413*/ OPC_SwitchType /*2 cases */, 11, MVT::i64,// ->66427 ++/* 66416*/ OPC_EmitConvertToTarget, 1, ++/* 66418*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ALSL_D), 0, ++ MVT::i64, 3/*#Ops*/, 0, 2, 3, ++ // Src: (add:{ *:[i64] } (shl:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, (imm:{ *:[i32] })<>:$sa), GPR64Opnd:{ *:[i64] }:$rk) - Complexity = 10 ++ // Dst: (ALSL_D:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, GPR64Opnd:{ *:[i64] }:$rk, (imm:{ *:[i32] }):$sa) ++/* 66427*/ /*SwitchType*/ 11, MVT::i32,// ->66440 ++/* 66429*/ OPC_EmitConvertToTarget, 1, ++/* 66431*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ALSL_W), 0, ++ MVT::i32, 3/*#Ops*/, 0, 2, 3, ++ // Src: (add:{ *:[i32] } (shl:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, (imm:{ *:[i32] })<>:$sa), GPR32Opnd:{ *:[i32] }:$rk) - Complexity = 10 ++ // Dst: (ALSL_W:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rk, (imm:{ *:[i32] }):$sa) ++/* 66440*/ 0, // EndSwitchType ++/* 66441*/ /*Scope*/ 21|128,1/*149*/, /*->66592*/ ++/* 66443*/ OPC_RecordChild0, // #0 = $rj ++/* 66444*/ OPC_RecordChild1, // #1 = $imm12 ++/* 66445*/ OPC_Scope, 54, /*->66501*/ // 7 children in Scope ++/* 66447*/ OPC_MoveChild1, ++/* 66448*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 66451*/ OPC_Scope, 15, /*->66468*/ // 3 children in Scope ++/* 66453*/ OPC_CheckPredicate, 21, // Predicate_simm12 ++/* 66455*/ OPC_MoveParent, ++/* 66456*/ OPC_CheckType, MVT::i64, ++/* 66458*/ OPC_EmitConvertToTarget, 1, ++/* 66460*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ADDI_D), 0, ++ MVT::i64, 2/*#Ops*/, 0, 2, ++ // Src: (add:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, (imm:{ *:[i64] })<>:$imm12) - Complexity = 7 ++ // Dst: (ADDI_D:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, (imm:{ *:[i64] }):$imm12) ++/* 66468*/ /*Scope*/ 15, /*->66484*/ ++/* 66469*/ OPC_CheckPredicate, 21, // Predicate_simm12_32 ++/* 66471*/ OPC_MoveParent, ++/* 66472*/ OPC_CheckType, MVT::i32, ++/* 66474*/ OPC_EmitConvertToTarget, 1, ++/* 66476*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ADDI_W), 0, ++ MVT::i32, 2/*#Ops*/, 0, 2, ++ // Src: (add:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, (imm:{ *:[i32] })<>:$imm12) - Complexity = 7 ++ // Dst: (ADDI_W:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, (imm:{ *:[i32] }):$imm12) ++/* 66484*/ /*Scope*/ 15, /*->66500*/ ++/* 66485*/ OPC_CheckPredicate, 21, // Predicate_simm12 ++/* 66487*/ OPC_MoveParent, ++/* 66488*/ OPC_CheckType, MVT::i64, ++/* 66490*/ OPC_EmitConvertToTarget, 1, ++/* 66492*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ADDI_D_rri), 0, ++ MVT::i64, 2/*#Ops*/, 0, 2, ++ // Src: (add:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, (imm:{ *:[i64] })<>:$imm12) - Complexity = 7 ++ // Dst: (ADDI_D_rri:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, (imm:{ *:[i64] }):$imm12) ++/* 66500*/ 0, /*End of Scope*/ ++/* 66501*/ /*Scope*/ 22, /*->66524*/ ++/* 66502*/ OPC_CheckType, MVT::i64, ++/* 66504*/ OPC_Scope, 8, /*->66514*/ // 2 children in Scope ++/* 66506*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ADD_D), 0, ++ MVT::i64, 2/*#Ops*/, 0, 1, ++ // Src: (add:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, GPR64Opnd:{ *:[i64] }:$rk) - Complexity = 3 ++ // Dst: (ADD_D:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, GPR64Opnd:{ *:[i64] }:$rk) ++/* 66514*/ /*Scope*/ 8, /*->66523*/ ++/* 66515*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ADD_D_rrr), 0, ++ MVT::i64, 2/*#Ops*/, 0, 1, ++ // Src: (add:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, GPR64Opnd:{ *:[i64] }:$rk) - Complexity = 3 ++ // Dst: (ADD_D_rrr:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, GPR64Opnd:{ *:[i64] }:$rk) ++/* 66523*/ 0, /*End of Scope*/ ++/* 66524*/ /*Scope*/ 10, /*->66535*/ ++/* 66525*/ OPC_CheckType, MVT::i32, ++/* 66527*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ADD_W), 0, ++ MVT::i32, 2/*#Ops*/, 0, 1, ++ // Src: (add:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) - Complexity = 3 ++ // Dst: (ADD_W:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) ++/* 66535*/ /*Scope*/ 13, /*->66549*/ ++/* 66536*/ OPC_CheckType, MVT::v16i8, ++/* 66538*/ OPC_CheckComplexPat, /*CP*/6, /*#*/1, // selectVSplatUimm5:$ui5 #2 ++/* 66541*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VADDI_BU), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 2, ++ // Src: (add:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, vsplati8_uimm5:{ *:[v16i8] }:$ui5) - Complexity = 9 ++ // Dst: (VADDI_BU:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, vsplati8_uimm5:{ *:[v16i8] }:$ui5) ++/* 66549*/ /*Scope*/ 13, /*->66563*/ ++/* 66550*/ OPC_CheckType, MVT::v8i16, ++/* 66552*/ OPC_CheckComplexPat, /*CP*/8, /*#*/1, // selectVSplatUimm5:$ui5 #2 ++/* 66555*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VADDI_HU), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 2, ++ // Src: (add:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, vsplati16_uimm5:{ *:[v8i16] }:$ui5) - Complexity = 9 ++ // Dst: (VADDI_HU:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, vsplati16_uimm5:{ *:[v8i16] }:$ui5) ++/* 66563*/ /*Scope*/ 13, /*->66577*/ ++/* 66564*/ OPC_CheckType, MVT::v4i32, ++/* 66566*/ OPC_CheckComplexPat, /*CP*/10, /*#*/1, // selectVSplatUimm5:$ui5 #2 ++/* 66569*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VADDI_WU), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 2, ++ // Src: (add:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, vsplati32_uimm5:{ *:[v4i32] }:$ui5) - Complexity = 9 ++ // Dst: (VADDI_WU:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, vsplati32_uimm5:{ *:[v4i32] }:$ui5) ++/* 66577*/ /*Scope*/ 13, /*->66591*/ ++/* 66578*/ OPC_CheckType, MVT::v2i64, ++/* 66580*/ OPC_CheckComplexPat, /*CP*/12, /*#*/1, // selectVSplatUimm5:$ui5 #2 ++/* 66583*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VADDI_DU), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 2, ++ // Src: (add:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, vsplati64_uimm5:{ *:[v2i64] }:$ui5) - Complexity = 9 ++ // Dst: (VADDI_DU:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, vsplati64_uimm5:{ *:[v2i64] }:$ui5) ++/* 66591*/ 0, /*End of Scope*/ ++/* 66592*/ /*Scope*/ 62, /*->66655*/ ++/* 66593*/ OPC_MoveChild0, ++/* 66594*/ OPC_CheckOpcode, TARGET_VAL(ISD::ABS), ++/* 66597*/ OPC_RecordChild0, // #0 = $a ++/* 66598*/ OPC_MoveParent, ++/* 66599*/ OPC_MoveChild1, ++/* 66600*/ OPC_CheckOpcode, TARGET_VAL(ISD::ABS), ++/* 66603*/ OPC_RecordChild0, // #1 = $b ++/* 66604*/ OPC_MoveParent, ++/* 66605*/ OPC_SwitchType /*4 cases */, 10, MVT::v2i64,// ->66618 ++/* 66608*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 66610*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VADDA_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (add:{ *:[v2i64] } (abs:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a), (abs:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b)) - Complexity = 9 ++ // Dst: (VADDA_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/* 66618*/ /*SwitchType*/ 10, MVT::v4i32,// ->66630 ++/* 66620*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 66622*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VADDA_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (add:{ *:[v4i32] } (abs:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a), (abs:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b)) - Complexity = 9 ++ // Dst: (VADDA_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/* 66630*/ /*SwitchType*/ 10, MVT::v8i16,// ->66642 ++/* 66632*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 66634*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VADDA_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (add:{ *:[v8i16] } (abs:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a), (abs:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b)) - Complexity = 9 ++ // Dst: (VADDA_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/* 66642*/ /*SwitchType*/ 10, MVT::v16i8,// ->66654 ++/* 66644*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 66646*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VADDA_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (add:{ *:[v16i8] } (abs:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a), (abs:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b)) - Complexity = 9 ++ // Dst: (VADDA_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/* 66654*/ 0, // EndSwitchType ++/* 66655*/ /*Scope*/ 56, /*->66712*/ ++/* 66656*/ OPC_RecordChild0, // #0 = $xj ++/* 66657*/ OPC_RecordChild1, // #1 = $ui5 ++/* 66658*/ OPC_SwitchType /*4 cases */, 11, MVT::v32i8,// ->66672 ++/* 66661*/ OPC_CheckComplexPat, /*CP*/14, /*#*/1, // selectVSplatUimm5:$ui5 #2 ++/* 66664*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVADDI_BU_N), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 2, ++ // Src: (add:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, xvsplati8_uimm5:{ *:[v32i8] }:$ui5) - Complexity = 9 ++ // Dst: (XVADDI_BU_N:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, xvsplati8_uimm5:{ *:[v32i8] }:$ui5) ++/* 66672*/ /*SwitchType*/ 11, MVT::v16i16,// ->66685 ++/* 66674*/ OPC_CheckComplexPat, /*CP*/16, /*#*/1, // selectVSplatUimm5:$ui5 #2 ++/* 66677*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVADDI_HU_N), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 2, ++ // Src: (add:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, xvsplati16_uimm5:{ *:[v16i16] }:$ui5) - Complexity = 9 ++ // Dst: (XVADDI_HU_N:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, xvsplati16_uimm5:{ *:[v16i16] }:$ui5) ++/* 66685*/ /*SwitchType*/ 11, MVT::v8i32,// ->66698 ++/* 66687*/ OPC_CheckComplexPat, /*CP*/18, /*#*/1, // selectVSplatUimm5:$ui5 #2 ++/* 66690*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVADDI_WU_N), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 2, ++ // Src: (add:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, xvsplati32_uimm5:{ *:[v8i32] }:$ui5) - Complexity = 9 ++ // Dst: (XVADDI_WU_N:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, xvsplati32_uimm5:{ *:[v8i32] }:$ui5) ++/* 66698*/ /*SwitchType*/ 11, MVT::v4i64,// ->66711 ++/* 66700*/ OPC_CheckComplexPat, /*CP*/20, /*#*/1, // selectVSplatUimm5:$ui5 #2 ++/* 66703*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVADDI_DU_N), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 2, ++ // Src: (add:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, xvsplati64_uimm5:{ *:[v4i64] }:$ui5) - Complexity = 9 ++ // Dst: (XVADDI_DU_N:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, xvsplati64_uimm5:{ *:[v4i64] }:$ui5) ++/* 66711*/ 0, // EndSwitchType ++/* 66712*/ /*Scope*/ 62, /*->66775*/ ++/* 66713*/ OPC_MoveChild0, ++/* 66714*/ OPC_CheckOpcode, TARGET_VAL(ISD::ABS), ++/* 66717*/ OPC_RecordChild0, // #0 = $a ++/* 66718*/ OPC_MoveParent, ++/* 66719*/ OPC_MoveChild1, ++/* 66720*/ OPC_CheckOpcode, TARGET_VAL(ISD::ABS), ++/* 66723*/ OPC_RecordChild0, // #1 = $b ++/* 66724*/ OPC_MoveParent, ++/* 66725*/ OPC_SwitchType /*4 cases */, 10, MVT::v4i64,// ->66738 ++/* 66728*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 66730*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVADDA_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (add:{ *:[v4i64] } (abs:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a), (abs:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b)) - Complexity = 9 ++ // Dst: (XVADDA_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/* 66738*/ /*SwitchType*/ 10, MVT::v8i32,// ->66750 ++/* 66740*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 66742*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVADDA_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (add:{ *:[v8i32] } (abs:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a), (abs:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b)) - Complexity = 9 ++ // Dst: (XVADDA_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/* 66750*/ /*SwitchType*/ 10, MVT::v16i16,// ->66762 ++/* 66752*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 66754*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVADDA_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (add:{ *:[v16i16] } (abs:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a), (abs:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b)) - Complexity = 9 ++ // Dst: (XVADDA_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/* 66762*/ /*SwitchType*/ 10, MVT::v32i8,// ->66774 ++/* 66764*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 66766*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVADDA_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (add:{ *:[v32i8] } (abs:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a), (abs:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b)) - Complexity = 9 ++ // Dst: (XVADDA_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/* 66774*/ 0, // EndSwitchType ++/* 66775*/ /*Scope*/ 81|128,1/*209*/, /*->66986*/ ++/* 66777*/ OPC_RecordChild0, // #0 = $ui5 ++/* 66778*/ OPC_Scope, 107, /*->66887*/ // 2 children in Scope ++/* 66780*/ OPC_RecordChild1, // #1 = $vj ++/* 66781*/ OPC_SwitchType /*8 cases */, 11, MVT::v16i8,// ->66795 ++/* 66784*/ OPC_CheckComplexPat, /*CP*/6, /*#*/0, // selectVSplatUimm5:$ui5 #2 ++/* 66787*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VADDI_BU), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 2, ++ // Src: (add:{ *:[v16i8] } vsplati8_uimm5:{ *:[v16i8] }:$ui5, LSX128BOpnd:{ *:[v16i8] }:$vj) - Complexity = 9 ++ // Dst: (VADDI_BU:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, vsplati8_uimm5:{ *:[v16i8] }:$ui5) ++/* 66795*/ /*SwitchType*/ 11, MVT::v8i16,// ->66808 ++/* 66797*/ OPC_CheckComplexPat, /*CP*/8, /*#*/0, // selectVSplatUimm5:$ui5 #2 ++/* 66800*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VADDI_HU), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 2, ++ // Src: (add:{ *:[v8i16] } vsplati16_uimm5:{ *:[v8i16] }:$ui5, LSX128HOpnd:{ *:[v8i16] }:$vj) - Complexity = 9 ++ // Dst: (VADDI_HU:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, vsplati16_uimm5:{ *:[v8i16] }:$ui5) ++/* 66808*/ /*SwitchType*/ 11, MVT::v4i32,// ->66821 ++/* 66810*/ OPC_CheckComplexPat, /*CP*/10, /*#*/0, // selectVSplatUimm5:$ui5 #2 ++/* 66813*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VADDI_WU), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 2, ++ // Src: (add:{ *:[v4i32] } vsplati32_uimm5:{ *:[v4i32] }:$ui5, LSX128WOpnd:{ *:[v4i32] }:$vj) - Complexity = 9 ++ // Dst: (VADDI_WU:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, vsplati32_uimm5:{ *:[v4i32] }:$ui5) ++/* 66821*/ /*SwitchType*/ 11, MVT::v2i64,// ->66834 ++/* 66823*/ OPC_CheckComplexPat, /*CP*/12, /*#*/0, // selectVSplatUimm5:$ui5 #2 ++/* 66826*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VADDI_DU), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 2, ++ // Src: (add:{ *:[v2i64] } vsplati64_uimm5:{ *:[v2i64] }:$ui5, LSX128DOpnd:{ *:[v2i64] }:$vj) - Complexity = 9 ++ // Dst: (VADDI_DU:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, vsplati64_uimm5:{ *:[v2i64] }:$ui5) ++/* 66834*/ /*SwitchType*/ 11, MVT::v32i8,// ->66847 ++/* 66836*/ OPC_CheckComplexPat, /*CP*/14, /*#*/0, // selectVSplatUimm5:$ui5 #2 ++/* 66839*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVADDI_BU_N), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 2, ++ // Src: (add:{ *:[v32i8] } xvsplati8_uimm5:{ *:[v32i8] }:$ui5, LASX256BOpnd:{ *:[v32i8] }:$xj) - Complexity = 9 ++ // Dst: (XVADDI_BU_N:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, xvsplati8_uimm5:{ *:[v32i8] }:$ui5) ++/* 66847*/ /*SwitchType*/ 11, MVT::v16i16,// ->66860 ++/* 66849*/ OPC_CheckComplexPat, /*CP*/16, /*#*/0, // selectVSplatUimm5:$ui5 #2 ++/* 66852*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVADDI_HU_N), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 2, ++ // Src: (add:{ *:[v16i16] } xvsplati16_uimm5:{ *:[v16i16] }:$ui5, LASX256HOpnd:{ *:[v16i16] }:$xj) - Complexity = 9 ++ // Dst: (XVADDI_HU_N:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, xvsplati16_uimm5:{ *:[v16i16] }:$ui5) ++/* 66860*/ /*SwitchType*/ 11, MVT::v8i32,// ->66873 ++/* 66862*/ OPC_CheckComplexPat, /*CP*/18, /*#*/0, // selectVSplatUimm5:$ui5 #2 ++/* 66865*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVADDI_WU_N), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 2, ++ // Src: (add:{ *:[v8i32] } xvsplati32_uimm5:{ *:[v8i32] }:$ui5, LASX256WOpnd:{ *:[v8i32] }:$xj) - Complexity = 9 ++ // Dst: (XVADDI_WU_N:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, xvsplati32_uimm5:{ *:[v8i32] }:$ui5) ++/* 66873*/ /*SwitchType*/ 11, MVT::v4i64,// ->66886 ++/* 66875*/ OPC_CheckComplexPat, /*CP*/20, /*#*/0, // selectVSplatUimm5:$ui5 #2 ++/* 66878*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVADDI_DU_N), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 2, ++ // Src: (add:{ *:[v4i64] } xvsplati64_uimm5:{ *:[v4i64] }:$ui5, LASX256DOpnd:{ *:[v4i64] }:$xj) - Complexity = 9 ++ // Dst: (XVADDI_DU_N:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, xvsplati64_uimm5:{ *:[v4i64] }:$ui5) ++/* 66886*/ 0, // EndSwitchType ++/* 66887*/ /*Scope*/ 97, /*->66985*/ ++/* 66888*/ OPC_MoveChild1, ++/* 66889*/ OPC_CheckOpcode, TARGET_VAL(ISD::MUL), ++/* 66892*/ OPC_RecordChild0, // #1 = $vj ++/* 66893*/ OPC_RecordChild1, // #2 = $vk ++/* 66894*/ OPC_MoveParent, ++/* 66895*/ OPC_SwitchType /*8 cases */, 9, MVT::v16i8,// ->66907 ++/* 66898*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMADD_B), 0, ++ MVT::v16i8, 3/*#Ops*/, 0, 1, 2, ++ // Src: (add:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vd_in, (mul:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk)) - Complexity = 6 ++ // Dst: (VMADD_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vd_in, LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/* 66907*/ /*SwitchType*/ 9, MVT::v8i16,// ->66918 ++/* 66909*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMADD_H), 0, ++ MVT::v8i16, 3/*#Ops*/, 0, 1, 2, ++ // Src: (add:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vd_in, (mul:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk)) - Complexity = 6 ++ // Dst: (VMADD_H:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vd_in, LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/* 66918*/ /*SwitchType*/ 9, MVT::v4i32,// ->66929 ++/* 66920*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMADD_W), 0, ++ MVT::v4i32, 3/*#Ops*/, 0, 1, 2, ++ // Src: (add:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vd_in, (mul:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk)) - Complexity = 6 ++ // Dst: (VMADD_W:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vd_in, LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/* 66929*/ /*SwitchType*/ 9, MVT::v2i64,// ->66940 ++/* 66931*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMADD_D), 0, ++ MVT::v2i64, 3/*#Ops*/, 0, 1, 2, ++ // Src: (add:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vd_in, (mul:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk)) - Complexity = 6 ++ // Dst: (VMADD_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vd_in, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 66940*/ /*SwitchType*/ 9, MVT::v32i8,// ->66951 ++/* 66942*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMADD_B), 0, ++ MVT::v32i8, 3/*#Ops*/, 0, 1, 2, ++ // Src: (add:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xd_in, (mul:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk)) - Complexity = 6 ++ // Dst: (XVMADD_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xd_in, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 66951*/ /*SwitchType*/ 9, MVT::v16i16,// ->66962 ++/* 66953*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMADD_H), 0, ++ MVT::v16i16, 3/*#Ops*/, 0, 1, 2, ++ // Src: (add:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xd_in, (mul:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk)) - Complexity = 6 ++ // Dst: (XVMADD_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xd_in, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 66962*/ /*SwitchType*/ 9, MVT::v8i32,// ->66973 ++/* 66964*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMADD_W), 0, ++ MVT::v8i32, 3/*#Ops*/, 0, 1, 2, ++ // Src: (add:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xd_in, (mul:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk)) - Complexity = 6 ++ // Dst: (XVMADD_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xd_in, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 66973*/ /*SwitchType*/ 9, MVT::v4i64,// ->66984 ++/* 66975*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMADD_D), 0, ++ MVT::v4i64, 3/*#Ops*/, 0, 1, 2, ++ // Src: (add:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xd_in, (mul:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk)) - Complexity = 6 ++ // Dst: (XVMADD_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 66984*/ 0, // EndSwitchType ++/* 66985*/ 0, /*End of Scope*/ ++/* 66986*/ /*Scope*/ 98, /*->67085*/ ++/* 66987*/ OPC_MoveChild0, ++/* 66988*/ OPC_CheckOpcode, TARGET_VAL(ISD::MUL), ++/* 66991*/ OPC_RecordChild0, // #0 = $vj ++/* 66992*/ OPC_RecordChild1, // #1 = $vk ++/* 66993*/ OPC_MoveParent, ++/* 66994*/ OPC_RecordChild1, // #2 = $vd_in ++/* 66995*/ OPC_SwitchType /*8 cases */, 9, MVT::v16i8,// ->67007 ++/* 66998*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMADD_B), 0, ++ MVT::v16i8, 3/*#Ops*/, 2, 0, 1, ++ // Src: (add:{ *:[v16i8] } (mul:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk), LSX128BOpnd:{ *:[v16i8] }:$vd_in) - Complexity = 6 ++ // Dst: (VMADD_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vd_in, LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/* 67007*/ /*SwitchType*/ 9, MVT::v8i16,// ->67018 ++/* 67009*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMADD_H), 0, ++ MVT::v8i16, 3/*#Ops*/, 2, 0, 1, ++ // Src: (add:{ *:[v8i16] } (mul:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk), LSX128HOpnd:{ *:[v8i16] }:$vd_in) - Complexity = 6 ++ // Dst: (VMADD_H:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vd_in, LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/* 67018*/ /*SwitchType*/ 9, MVT::v4i32,// ->67029 ++/* 67020*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMADD_W), 0, ++ MVT::v4i32, 3/*#Ops*/, 2, 0, 1, ++ // Src: (add:{ *:[v4i32] } (mul:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk), LSX128WOpnd:{ *:[v4i32] }:$vd_in) - Complexity = 6 ++ // Dst: (VMADD_W:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vd_in, LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/* 67029*/ /*SwitchType*/ 9, MVT::v2i64,// ->67040 ++/* 67031*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMADD_D), 0, ++ MVT::v2i64, 3/*#Ops*/, 2, 0, 1, ++ // Src: (add:{ *:[v2i64] } (mul:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk), LSX128DOpnd:{ *:[v2i64] }:$vd_in) - Complexity = 6 ++ // Dst: (VMADD_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vd_in, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 67040*/ /*SwitchType*/ 9, MVT::v32i8,// ->67051 ++/* 67042*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMADD_B), 0, ++ MVT::v32i8, 3/*#Ops*/, 2, 0, 1, ++ // Src: (add:{ *:[v32i8] } (mul:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk), LASX256BOpnd:{ *:[v32i8] }:$xd_in) - Complexity = 6 ++ // Dst: (XVMADD_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xd_in, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 67051*/ /*SwitchType*/ 9, MVT::v16i16,// ->67062 ++/* 67053*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMADD_H), 0, ++ MVT::v16i16, 3/*#Ops*/, 2, 0, 1, ++ // Src: (add:{ *:[v16i16] } (mul:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk), LASX256HOpnd:{ *:[v16i16] }:$xd_in) - Complexity = 6 ++ // Dst: (XVMADD_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xd_in, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 67062*/ /*SwitchType*/ 9, MVT::v8i32,// ->67073 ++/* 67064*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMADD_W), 0, ++ MVT::v8i32, 3/*#Ops*/, 2, 0, 1, ++ // Src: (add:{ *:[v8i32] } (mul:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk), LASX256WOpnd:{ *:[v8i32] }:$xd_in) - Complexity = 6 ++ // Dst: (XVMADD_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xd_in, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 67073*/ /*SwitchType*/ 9, MVT::v4i64,// ->67084 ++/* 67075*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMADD_D), 0, ++ MVT::v4i64, 3/*#Ops*/, 2, 0, 1, ++ // Src: (add:{ *:[v4i64] } (mul:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk), LASX256DOpnd:{ *:[v4i64] }:$xd_in) - Complexity = 6 ++ // Dst: (XVMADD_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 67084*/ 0, // EndSwitchType ++/* 67085*/ /*Scope*/ 84, /*->67170*/ ++/* 67086*/ OPC_RecordChild0, // #0 = $vj ++/* 67087*/ OPC_RecordChild1, // #1 = $vk ++/* 67088*/ OPC_SwitchType /*8 cases */, 8, MVT::v16i8,// ->67099 ++/* 67091*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VADD_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (add:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) - Complexity = 3 ++ // Dst: (VADD_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/* 67099*/ /*SwitchType*/ 8, MVT::v8i16,// ->67109 ++/* 67101*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VADD_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (add:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 3 ++ // Dst: (VADD_H:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/* 67109*/ /*SwitchType*/ 8, MVT::v4i32,// ->67119 ++/* 67111*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VADD_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (add:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 3 ++ // Dst: (VADD_W:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/* 67119*/ /*SwitchType*/ 8, MVT::v2i64,// ->67129 ++/* 67121*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VADD_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (add:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 3 ++ // Dst: (VADD_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 67129*/ /*SwitchType*/ 8, MVT::v32i8,// ->67139 ++/* 67131*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVADD_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (add:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 3 ++ // Dst: (XVADD_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 67139*/ /*SwitchType*/ 8, MVT::v16i16,// ->67149 ++/* 67141*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVADD_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (add:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 3 ++ // Dst: (XVADD_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 67149*/ /*SwitchType*/ 8, MVT::v8i32,// ->67159 ++/* 67151*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVADD_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (add:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 3 ++ // Dst: (XVADD_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 67159*/ /*SwitchType*/ 8, MVT::v4i64,// ->67169 ++/* 67161*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVADD_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (add:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 3 ++ // Dst: (XVADD_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 67169*/ 0, // EndSwitchType ++/* 67170*/ 0, /*End of Scope*/ ++/* 67171*/ /*SwitchOpcode*/ 22, TARGET_VAL(ISD::CALLSEQ_START),// ->67196 ++/* 67174*/ OPC_RecordNode, // #0 = 'callseq_start' chained node ++/* 67175*/ OPC_RecordChild1, // #1 = $amt1 ++/* 67176*/ OPC_MoveChild1, ++/* 67177*/ OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant), ++/* 67180*/ OPC_MoveParent, ++/* 67181*/ OPC_RecordChild2, // #2 = $amt2 ++/* 67182*/ OPC_MoveChild2, ++/* 67183*/ OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant), ++/* 67186*/ OPC_MoveParent, ++/* 67187*/ OPC_EmitMergeInputChains1_0, ++/* 67188*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ADJCALLSTACKDOWN), 0|OPFL_Chain|OPFL_GlueOutput, ++ MVT::i32, 2/*#Ops*/, 1, 2, ++ // Src: (callseq_start (timm:{ *:[i32] }):$amt1, (timm:{ *:[i32] }):$amt2) - Complexity = 9 ++ // Dst: (ADJCALLSTACKDOWN:{ *:[i32] } (timm:{ *:[i32] }):$amt1, (timm:{ *:[i32] }):$amt2) ++/* 67196*/ /*SwitchOpcode*/ 23, TARGET_VAL(ISD::CALLSEQ_END),// ->67222 ++/* 67199*/ OPC_RecordNode, // #0 = 'callseq_end' chained node ++/* 67200*/ OPC_CaptureGlueInput, ++/* 67201*/ OPC_RecordChild1, // #1 = $amt1 ++/* 67202*/ OPC_MoveChild1, ++/* 67203*/ OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant), ++/* 67206*/ OPC_MoveParent, ++/* 67207*/ OPC_RecordChild2, // #2 = $amt2 ++/* 67208*/ OPC_MoveChild2, ++/* 67209*/ OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant), ++/* 67212*/ OPC_MoveParent, ++/* 67213*/ OPC_EmitMergeInputChains1_0, ++/* 67214*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ADJCALLSTACKUP), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput, ++ MVT::i32, 2/*#Ops*/, 1, 2, ++ // Src: (callseq_end (timm:{ *:[i32] }):$amt1, (timm:{ *:[i32] }):$amt2) - Complexity = 9 ++ // Dst: (ADJCALLSTACKUP:{ *:[i32] } (timm:{ *:[i32] }):$amt1, (timm:{ *:[i32] }):$amt2) ++/* 67222*/ /*SwitchOpcode*/ 29, TARGET_VAL(ISD::FrameIndex),// ->67254 ++/* 67225*/ OPC_RecordNode, // #0 = $addr ++/* 67226*/ OPC_SwitchType /*2 cases */, 11, MVT::i64,// ->67240 ++/* 67229*/ OPC_CheckComplexPat, /*CP*/2, /*#*/0, // selectIntAddr:$addr #1 #2 ++/* 67232*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LEA_ADDI_D), 0, ++ MVT::i64, 2/*#Ops*/, 1, 2, ++ // Src: addr:{ *:[i64] }:$addr - Complexity = 9 ++ // Dst: (LEA_ADDI_D:{ *:[i64] } addr:{ *:[i64] }:$addr) ++/* 67240*/ /*SwitchType*/ 11, MVT::i32,// ->67253 ++/* 67242*/ OPC_CheckComplexPat, /*CP*/2, /*#*/0, // selectIntAddr:$addr #1 #2 ++/* 67245*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LEA_ADDI_W), 0, ++ MVT::i32, 2/*#Ops*/, 1, 2, ++ // Src: addr:{ *:[i32] }:$addr - Complexity = 9 ++ // Dst: (LEA_ADDI_W:{ *:[i32] } addr:{ *:[i32] }:$addr) ++/* 67253*/ 0, // EndSwitchType ++/* 67254*/ /*SwitchOpcode*/ 44, TARGET_VAL(LoongArchISD::FPBrcond),// ->67301 ++/* 67257*/ OPC_RecordNode, // #0 = 'LoongArchFPBrcond' chained node ++/* 67258*/ OPC_CaptureGlueInput, ++/* 67259*/ OPC_Scope, 19, /*->67280*/ // 2 children in Scope ++/* 67261*/ OPC_CheckChild1Integer, 0, ++/* 67263*/ OPC_CheckChild1Type, MVT::i32, ++/* 67265*/ OPC_RecordChild2, // #1 = $cj ++/* 67266*/ OPC_RecordChild3, // #2 = $offset ++/* 67267*/ OPC_MoveChild3, ++/* 67268*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), ++/* 67271*/ OPC_MoveParent, ++/* 67272*/ OPC_EmitMergeInputChains1_0, ++/* 67273*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCEQZ), 0|OPFL_Chain|OPFL_GlueInput, ++ 2/*#Ops*/, 1, 2, ++ // Src: (LoongArchFPBrcond 0:{ *:[i32] }, FCFROpnd:{ *:[i32] }:$cj, (bb:{ *:[Other] }):$offset) - Complexity = 8 ++ // Dst: (BCEQZ FCFROpnd:{ *:[i32] }:$cj, (bb:{ *:[Other] }):$offset) ++/* 67280*/ /*Scope*/ 19, /*->67300*/ ++/* 67281*/ OPC_CheckChild1Integer, 1, ++/* 67283*/ OPC_CheckChild1Type, MVT::i32, ++/* 67285*/ OPC_RecordChild2, // #1 = $cj ++/* 67286*/ OPC_RecordChild3, // #2 = $offset ++/* 67287*/ OPC_MoveChild3, ++/* 67288*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), ++/* 67291*/ OPC_MoveParent, ++/* 67292*/ OPC_EmitMergeInputChains1_0, ++/* 67293*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCNEZ), 0|OPFL_Chain|OPFL_GlueInput, ++ 2/*#Ops*/, 1, 2, ++ // Src: (LoongArchFPBrcond 1:{ *:[i32] }, FCFROpnd:{ *:[i32] }:$cj, (bb:{ *:[Other] }):$offset) - Complexity = 8 ++ // Dst: (BCNEZ FCFROpnd:{ *:[i32] }:$cj, (bb:{ *:[Other] }):$offset) ++/* 67300*/ 0, /*End of Scope*/ ++/* 67301*/ /*SwitchOpcode*/ 71|128,17/*2247*/, TARGET_VAL(ISD::SHL),// ->69552 ++/* 67305*/ OPC_RecordChild0, // #0 = $rj ++/* 67306*/ OPC_Scope, 69, /*->67377*/ // 3 children in Scope ++/* 67308*/ OPC_RecordChild1, // #1 = $imm6 ++/* 67309*/ OPC_Scope, 40, /*->67351*/ // 2 children in Scope ++/* 67311*/ OPC_MoveChild1, ++/* 67312*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67315*/ OPC_CheckType, MVT::i32, ++/* 67317*/ OPC_Scope, 15, /*->67334*/ // 2 children in Scope ++/* 67319*/ OPC_CheckPredicate, 43, // Predicate_uimm6 ++/* 67321*/ OPC_MoveParent, ++/* 67322*/ OPC_CheckType, MVT::i64, ++/* 67324*/ OPC_EmitConvertToTarget, 1, ++/* 67326*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLLI_D), 0, ++ MVT::i64, 2/*#Ops*/, 0, 2, ++ // Src: (shl:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, (imm:{ *:[i32] })<>:$imm6) - Complexity = 7 ++ // Dst: (SLLI_D:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, (imm:{ *:[i32] }):$imm6) ++/* 67334*/ /*Scope*/ 15, /*->67350*/ ++/* 67335*/ OPC_CheckPredicate, 20, // Predicate_uimm5 ++/* 67337*/ OPC_MoveParent, ++/* 67338*/ OPC_CheckType, MVT::i32, ++/* 67340*/ OPC_EmitConvertToTarget, 1, ++/* 67342*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLLI_W), 0, ++ MVT::i32, 2/*#Ops*/, 0, 2, ++ // Src: (shl:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, (imm:{ *:[i32] })<>:$imm5) - Complexity = 7 ++ // Dst: (SLLI_W:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, (imm:{ *:[i32] }):$imm5) ++/* 67350*/ 0, /*End of Scope*/ ++/* 67351*/ /*Scope*/ 24, /*->67376*/ ++/* 67352*/ OPC_CheckChild1Type, MVT::i32, ++/* 67354*/ OPC_SwitchType /*2 cases */, 8, MVT::i64,// ->67365 ++/* 67357*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLL_D), 0, ++ MVT::i64, 2/*#Ops*/, 0, 1, ++ // Src: (shl:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) - Complexity = 3 ++ // Dst: (SLL_D:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) ++/* 67365*/ /*SwitchType*/ 8, MVT::i32,// ->67375 ++/* 67367*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLL_W), 0, ++ MVT::i32, 2/*#Ops*/, 0, 1, ++ // Src: (shl:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) - Complexity = 3 ++ // Dst: (SLL_W:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) ++/* 67375*/ 0, // EndSwitchType ++/* 67376*/ 0, /*End of Scope*/ ++/* 67377*/ /*Scope*/ 31|128,15/*1951*/, /*->69330*/ ++/* 67379*/ OPC_MoveChild1, ++/* 67380*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 67383*/ OPC_Scope, 77|128,2/*333*/, /*->67719*/ // 10 children in Scope ++/* 67386*/ OPC_RecordChild0, // #1 = $vt ++/* 67387*/ OPC_MoveChild1, ++/* 67388*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 67391*/ OPC_MoveChild0, ++/* 67392*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67395*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67397*/ OPC_CheckType, MVT::i32, ++/* 67399*/ OPC_MoveParent, ++/* 67400*/ OPC_MoveChild1, ++/* 67401*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67404*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67406*/ OPC_CheckType, MVT::i32, ++/* 67408*/ OPC_MoveParent, ++/* 67409*/ OPC_MoveChild2, ++/* 67410*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67413*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67415*/ OPC_CheckType, MVT::i32, ++/* 67417*/ OPC_MoveParent, ++/* 67418*/ OPC_MoveChild3, ++/* 67419*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67422*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67424*/ OPC_CheckType, MVT::i32, ++/* 67426*/ OPC_MoveParent, ++/* 67427*/ OPC_MoveChild4, ++/* 67428*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67431*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67433*/ OPC_CheckType, MVT::i32, ++/* 67435*/ OPC_MoveParent, ++/* 67436*/ OPC_MoveChild5, ++/* 67437*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67440*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67442*/ OPC_CheckType, MVT::i32, ++/* 67444*/ OPC_MoveParent, ++/* 67445*/ OPC_MoveChild6, ++/* 67446*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67449*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67451*/ OPC_CheckType, MVT::i32, ++/* 67453*/ OPC_MoveParent, ++/* 67454*/ OPC_MoveChild7, ++/* 67455*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67458*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67460*/ OPC_CheckType, MVT::i32, ++/* 67462*/ OPC_MoveParent, ++/* 67463*/ OPC_MoveChild, 8, ++/* 67465*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67468*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67470*/ OPC_CheckType, MVT::i32, ++/* 67472*/ OPC_MoveParent, ++/* 67473*/ OPC_MoveChild, 9, ++/* 67475*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67478*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67480*/ OPC_CheckType, MVT::i32, ++/* 67482*/ OPC_MoveParent, ++/* 67483*/ OPC_MoveChild, 10, ++/* 67485*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67488*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67490*/ OPC_CheckType, MVT::i32, ++/* 67492*/ OPC_MoveParent, ++/* 67493*/ OPC_MoveChild, 11, ++/* 67495*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67498*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67500*/ OPC_CheckType, MVT::i32, ++/* 67502*/ OPC_MoveParent, ++/* 67503*/ OPC_MoveChild, 12, ++/* 67505*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67508*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67510*/ OPC_CheckType, MVT::i32, ++/* 67512*/ OPC_MoveParent, ++/* 67513*/ OPC_MoveChild, 13, ++/* 67515*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67518*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67520*/ OPC_CheckType, MVT::i32, ++/* 67522*/ OPC_MoveParent, ++/* 67523*/ OPC_MoveChild, 14, ++/* 67525*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67528*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67530*/ OPC_CheckType, MVT::i32, ++/* 67532*/ OPC_MoveParent, ++/* 67533*/ OPC_MoveChild, 15, ++/* 67535*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67538*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67540*/ OPC_CheckType, MVT::i32, ++/* 67542*/ OPC_MoveParent, ++/* 67543*/ OPC_MoveChild, 16, ++/* 67545*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67548*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67550*/ OPC_CheckType, MVT::i32, ++/* 67552*/ OPC_MoveParent, ++/* 67553*/ OPC_MoveChild, 17, ++/* 67555*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67558*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67560*/ OPC_CheckType, MVT::i32, ++/* 67562*/ OPC_MoveParent, ++/* 67563*/ OPC_MoveChild, 18, ++/* 67565*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67568*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67570*/ OPC_CheckType, MVT::i32, ++/* 67572*/ OPC_MoveParent, ++/* 67573*/ OPC_MoveChild, 19, ++/* 67575*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67578*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67580*/ OPC_CheckType, MVT::i32, ++/* 67582*/ OPC_MoveParent, ++/* 67583*/ OPC_MoveChild, 20, ++/* 67585*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67588*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67590*/ OPC_CheckType, MVT::i32, ++/* 67592*/ OPC_MoveParent, ++/* 67593*/ OPC_MoveChild, 21, ++/* 67595*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67598*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67600*/ OPC_CheckType, MVT::i32, ++/* 67602*/ OPC_MoveParent, ++/* 67603*/ OPC_MoveChild, 22, ++/* 67605*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67608*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67610*/ OPC_CheckType, MVT::i32, ++/* 67612*/ OPC_MoveParent, ++/* 67613*/ OPC_MoveChild, 23, ++/* 67615*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67618*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67620*/ OPC_CheckType, MVT::i32, ++/* 67622*/ OPC_MoveParent, ++/* 67623*/ OPC_MoveChild, 24, ++/* 67625*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67628*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67630*/ OPC_CheckType, MVT::i32, ++/* 67632*/ OPC_MoveParent, ++/* 67633*/ OPC_MoveChild, 25, ++/* 67635*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67638*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67640*/ OPC_CheckType, MVT::i32, ++/* 67642*/ OPC_MoveParent, ++/* 67643*/ OPC_MoveChild, 26, ++/* 67645*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67648*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67650*/ OPC_CheckType, MVT::i32, ++/* 67652*/ OPC_MoveParent, ++/* 67653*/ OPC_MoveChild, 27, ++/* 67655*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67658*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67660*/ OPC_CheckType, MVT::i32, ++/* 67662*/ OPC_MoveParent, ++/* 67663*/ OPC_MoveChild, 28, ++/* 67665*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67668*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67670*/ OPC_CheckType, MVT::i32, ++/* 67672*/ OPC_MoveParent, ++/* 67673*/ OPC_MoveChild, 29, ++/* 67675*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67678*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67680*/ OPC_CheckType, MVT::i32, ++/* 67682*/ OPC_MoveParent, ++/* 67683*/ OPC_MoveChild, 30, ++/* 67685*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67688*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67690*/ OPC_CheckType, MVT::i32, ++/* 67692*/ OPC_MoveParent, ++/* 67693*/ OPC_MoveChild, 31, ++/* 67695*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67698*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67700*/ OPC_CheckType, MVT::i32, ++/* 67702*/ OPC_MoveParent, ++/* 67703*/ OPC_MoveParent, ++/* 67704*/ OPC_CheckType, MVT::v32i8, ++/* 67706*/ OPC_MoveParent, ++/* 67707*/ OPC_CheckType, MVT::v32i8, ++/* 67709*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 67711*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLL_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (shl:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vs, (and:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vt, (build_vector:{ *:[v32i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))) - Complexity = 137 ++ // Dst: (XVSLL_B:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vs, v32i8:{ *:[v32i8] }:$vt) ++/* 67719*/ /*Scope*/ 77|128,2/*333*/, /*->68054*/ ++/* 67721*/ OPC_MoveChild0, ++/* 67722*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 67725*/ OPC_MoveChild0, ++/* 67726*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67729*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67731*/ OPC_CheckType, MVT::i32, ++/* 67733*/ OPC_MoveParent, ++/* 67734*/ OPC_MoveChild1, ++/* 67735*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67738*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67740*/ OPC_CheckType, MVT::i32, ++/* 67742*/ OPC_MoveParent, ++/* 67743*/ OPC_MoveChild2, ++/* 67744*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67747*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67749*/ OPC_CheckType, MVT::i32, ++/* 67751*/ OPC_MoveParent, ++/* 67752*/ OPC_MoveChild3, ++/* 67753*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67756*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67758*/ OPC_CheckType, MVT::i32, ++/* 67760*/ OPC_MoveParent, ++/* 67761*/ OPC_MoveChild4, ++/* 67762*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67765*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67767*/ OPC_CheckType, MVT::i32, ++/* 67769*/ OPC_MoveParent, ++/* 67770*/ OPC_MoveChild5, ++/* 67771*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67774*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67776*/ OPC_CheckType, MVT::i32, ++/* 67778*/ OPC_MoveParent, ++/* 67779*/ OPC_MoveChild6, ++/* 67780*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67783*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67785*/ OPC_CheckType, MVT::i32, ++/* 67787*/ OPC_MoveParent, ++/* 67788*/ OPC_MoveChild7, ++/* 67789*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67792*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67794*/ OPC_CheckType, MVT::i32, ++/* 67796*/ OPC_MoveParent, ++/* 67797*/ OPC_MoveChild, 8, ++/* 67799*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67802*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67804*/ OPC_CheckType, MVT::i32, ++/* 67806*/ OPC_MoveParent, ++/* 67807*/ OPC_MoveChild, 9, ++/* 67809*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67812*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67814*/ OPC_CheckType, MVT::i32, ++/* 67816*/ OPC_MoveParent, ++/* 67817*/ OPC_MoveChild, 10, ++/* 67819*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67822*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67824*/ OPC_CheckType, MVT::i32, ++/* 67826*/ OPC_MoveParent, ++/* 67827*/ OPC_MoveChild, 11, ++/* 67829*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67832*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67834*/ OPC_CheckType, MVT::i32, ++/* 67836*/ OPC_MoveParent, ++/* 67837*/ OPC_MoveChild, 12, ++/* 67839*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67842*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67844*/ OPC_CheckType, MVT::i32, ++/* 67846*/ OPC_MoveParent, ++/* 67847*/ OPC_MoveChild, 13, ++/* 67849*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67852*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67854*/ OPC_CheckType, MVT::i32, ++/* 67856*/ OPC_MoveParent, ++/* 67857*/ OPC_MoveChild, 14, ++/* 67859*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67862*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67864*/ OPC_CheckType, MVT::i32, ++/* 67866*/ OPC_MoveParent, ++/* 67867*/ OPC_MoveChild, 15, ++/* 67869*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67872*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67874*/ OPC_CheckType, MVT::i32, ++/* 67876*/ OPC_MoveParent, ++/* 67877*/ OPC_MoveChild, 16, ++/* 67879*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67882*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67884*/ OPC_CheckType, MVT::i32, ++/* 67886*/ OPC_MoveParent, ++/* 67887*/ OPC_MoveChild, 17, ++/* 67889*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67892*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67894*/ OPC_CheckType, MVT::i32, ++/* 67896*/ OPC_MoveParent, ++/* 67897*/ OPC_MoveChild, 18, ++/* 67899*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67902*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67904*/ OPC_CheckType, MVT::i32, ++/* 67906*/ OPC_MoveParent, ++/* 67907*/ OPC_MoveChild, 19, ++/* 67909*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67912*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67914*/ OPC_CheckType, MVT::i32, ++/* 67916*/ OPC_MoveParent, ++/* 67917*/ OPC_MoveChild, 20, ++/* 67919*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67922*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67924*/ OPC_CheckType, MVT::i32, ++/* 67926*/ OPC_MoveParent, ++/* 67927*/ OPC_MoveChild, 21, ++/* 67929*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67932*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67934*/ OPC_CheckType, MVT::i32, ++/* 67936*/ OPC_MoveParent, ++/* 67937*/ OPC_MoveChild, 22, ++/* 67939*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67942*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67944*/ OPC_CheckType, MVT::i32, ++/* 67946*/ OPC_MoveParent, ++/* 67947*/ OPC_MoveChild, 23, ++/* 67949*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67952*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67954*/ OPC_CheckType, MVT::i32, ++/* 67956*/ OPC_MoveParent, ++/* 67957*/ OPC_MoveChild, 24, ++/* 67959*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67962*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67964*/ OPC_CheckType, MVT::i32, ++/* 67966*/ OPC_MoveParent, ++/* 67967*/ OPC_MoveChild, 25, ++/* 67969*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67972*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67974*/ OPC_CheckType, MVT::i32, ++/* 67976*/ OPC_MoveParent, ++/* 67977*/ OPC_MoveChild, 26, ++/* 67979*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67982*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67984*/ OPC_CheckType, MVT::i32, ++/* 67986*/ OPC_MoveParent, ++/* 67987*/ OPC_MoveChild, 27, ++/* 67989*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 67992*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 67994*/ OPC_CheckType, MVT::i32, ++/* 67996*/ OPC_MoveParent, ++/* 67997*/ OPC_MoveChild, 28, ++/* 67999*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68002*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 68004*/ OPC_CheckType, MVT::i32, ++/* 68006*/ OPC_MoveParent, ++/* 68007*/ OPC_MoveChild, 29, ++/* 68009*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68012*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 68014*/ OPC_CheckType, MVT::i32, ++/* 68016*/ OPC_MoveParent, ++/* 68017*/ OPC_MoveChild, 30, ++/* 68019*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68022*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 68024*/ OPC_CheckType, MVT::i32, ++/* 68026*/ OPC_MoveParent, ++/* 68027*/ OPC_MoveChild, 31, ++/* 68029*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68032*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 68034*/ OPC_CheckType, MVT::i32, ++/* 68036*/ OPC_MoveParent, ++/* 68037*/ OPC_MoveParent, ++/* 68038*/ OPC_RecordChild1, // #1 = $vt ++/* 68039*/ OPC_CheckType, MVT::v32i8, ++/* 68041*/ OPC_MoveParent, ++/* 68042*/ OPC_CheckType, MVT::v32i8, ++/* 68044*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 68046*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLL_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (shl:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vs, (and:{ *:[v32i8] } (build_vector:{ *:[v32i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v32i8:{ *:[v32i8] }:$vt)) - Complexity = 137 ++ // Dst: (XVSLL_B:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vs, v32i8:{ *:[v32i8] }:$vt) ++/* 68054*/ /*Scope*/ 85|128,2/*341*/, /*->68397*/ ++/* 68056*/ OPC_RecordChild0, // #1 = $vt ++/* 68057*/ OPC_MoveChild1, ++/* 68058*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 68061*/ OPC_MoveChild0, ++/* 68062*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68065*/ OPC_CheckType, MVT::i32, ++/* 68067*/ OPC_Scope, 34|128,1/*162*/, /*->68232*/ // 2 children in Scope ++/* 68070*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 68072*/ OPC_MoveParent, ++/* 68073*/ OPC_MoveChild1, ++/* 68074*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68077*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 68079*/ OPC_CheckType, MVT::i32, ++/* 68081*/ OPC_MoveParent, ++/* 68082*/ OPC_MoveChild2, ++/* 68083*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68086*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 68088*/ OPC_CheckType, MVT::i32, ++/* 68090*/ OPC_MoveParent, ++/* 68091*/ OPC_MoveChild3, ++/* 68092*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68095*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 68097*/ OPC_CheckType, MVT::i32, ++/* 68099*/ OPC_MoveParent, ++/* 68100*/ OPC_MoveChild4, ++/* 68101*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68104*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 68106*/ OPC_CheckType, MVT::i32, ++/* 68108*/ OPC_MoveParent, ++/* 68109*/ OPC_MoveChild5, ++/* 68110*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68113*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 68115*/ OPC_CheckType, MVT::i32, ++/* 68117*/ OPC_MoveParent, ++/* 68118*/ OPC_MoveChild6, ++/* 68119*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68122*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 68124*/ OPC_CheckType, MVT::i32, ++/* 68126*/ OPC_MoveParent, ++/* 68127*/ OPC_MoveChild7, ++/* 68128*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68131*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 68133*/ OPC_CheckType, MVT::i32, ++/* 68135*/ OPC_MoveParent, ++/* 68136*/ OPC_MoveChild, 8, ++/* 68138*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68141*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 68143*/ OPC_CheckType, MVT::i32, ++/* 68145*/ OPC_MoveParent, ++/* 68146*/ OPC_MoveChild, 9, ++/* 68148*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68151*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 68153*/ OPC_CheckType, MVT::i32, ++/* 68155*/ OPC_MoveParent, ++/* 68156*/ OPC_MoveChild, 10, ++/* 68158*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68161*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 68163*/ OPC_CheckType, MVT::i32, ++/* 68165*/ OPC_MoveParent, ++/* 68166*/ OPC_MoveChild, 11, ++/* 68168*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68171*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 68173*/ OPC_CheckType, MVT::i32, ++/* 68175*/ OPC_MoveParent, ++/* 68176*/ OPC_MoveChild, 12, ++/* 68178*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68181*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 68183*/ OPC_CheckType, MVT::i32, ++/* 68185*/ OPC_MoveParent, ++/* 68186*/ OPC_MoveChild, 13, ++/* 68188*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68191*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 68193*/ OPC_CheckType, MVT::i32, ++/* 68195*/ OPC_MoveParent, ++/* 68196*/ OPC_MoveChild, 14, ++/* 68198*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68201*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 68203*/ OPC_CheckType, MVT::i32, ++/* 68205*/ OPC_MoveParent, ++/* 68206*/ OPC_MoveChild, 15, ++/* 68208*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68211*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 68213*/ OPC_CheckType, MVT::i32, ++/* 68215*/ OPC_MoveParent, ++/* 68216*/ OPC_MoveParent, ++/* 68217*/ OPC_CheckType, MVT::v16i8, ++/* 68219*/ OPC_MoveParent, ++/* 68220*/ OPC_CheckType, MVT::v16i8, ++/* 68222*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 68224*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLL_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (shl:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vs, (and:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vt, (build_vector:{ *:[v16i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))) - Complexity = 73 ++ // Dst: (VSLL_B:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vs, v16i8:{ *:[v16i8] }:$vt) ++/* 68232*/ /*Scope*/ 34|128,1/*162*/, /*->68396*/ ++/* 68234*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 68236*/ OPC_MoveParent, ++/* 68237*/ OPC_MoveChild1, ++/* 68238*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68241*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 68243*/ OPC_CheckType, MVT::i32, ++/* 68245*/ OPC_MoveParent, ++/* 68246*/ OPC_MoveChild2, ++/* 68247*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68250*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 68252*/ OPC_CheckType, MVT::i32, ++/* 68254*/ OPC_MoveParent, ++/* 68255*/ OPC_MoveChild3, ++/* 68256*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68259*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 68261*/ OPC_CheckType, MVT::i32, ++/* 68263*/ OPC_MoveParent, ++/* 68264*/ OPC_MoveChild4, ++/* 68265*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68268*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 68270*/ OPC_CheckType, MVT::i32, ++/* 68272*/ OPC_MoveParent, ++/* 68273*/ OPC_MoveChild5, ++/* 68274*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68277*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 68279*/ OPC_CheckType, MVT::i32, ++/* 68281*/ OPC_MoveParent, ++/* 68282*/ OPC_MoveChild6, ++/* 68283*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68286*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 68288*/ OPC_CheckType, MVT::i32, ++/* 68290*/ OPC_MoveParent, ++/* 68291*/ OPC_MoveChild7, ++/* 68292*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68295*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 68297*/ OPC_CheckType, MVT::i32, ++/* 68299*/ OPC_MoveParent, ++/* 68300*/ OPC_MoveChild, 8, ++/* 68302*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68305*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 68307*/ OPC_CheckType, MVT::i32, ++/* 68309*/ OPC_MoveParent, ++/* 68310*/ OPC_MoveChild, 9, ++/* 68312*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68315*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 68317*/ OPC_CheckType, MVT::i32, ++/* 68319*/ OPC_MoveParent, ++/* 68320*/ OPC_MoveChild, 10, ++/* 68322*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68325*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 68327*/ OPC_CheckType, MVT::i32, ++/* 68329*/ OPC_MoveParent, ++/* 68330*/ OPC_MoveChild, 11, ++/* 68332*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68335*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 68337*/ OPC_CheckType, MVT::i32, ++/* 68339*/ OPC_MoveParent, ++/* 68340*/ OPC_MoveChild, 12, ++/* 68342*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68345*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 68347*/ OPC_CheckType, MVT::i32, ++/* 68349*/ OPC_MoveParent, ++/* 68350*/ OPC_MoveChild, 13, ++/* 68352*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68355*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 68357*/ OPC_CheckType, MVT::i32, ++/* 68359*/ OPC_MoveParent, ++/* 68360*/ OPC_MoveChild, 14, ++/* 68362*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68365*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 68367*/ OPC_CheckType, MVT::i32, ++/* 68369*/ OPC_MoveParent, ++/* 68370*/ OPC_MoveChild, 15, ++/* 68372*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68375*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 68377*/ OPC_CheckType, MVT::i32, ++/* 68379*/ OPC_MoveParent, ++/* 68380*/ OPC_MoveParent, ++/* 68381*/ OPC_CheckType, MVT::v16i16, ++/* 68383*/ OPC_MoveParent, ++/* 68384*/ OPC_CheckType, MVT::v16i16, ++/* 68386*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 68388*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLL_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (shl:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vs, (and:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vt, (build_vector:{ *:[v16i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))) - Complexity = 73 ++ // Dst: (XVSLL_H:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vs, v16i16:{ *:[v16i16] }:$vt) ++/* 68396*/ 0, /*End of Scope*/ ++/* 68397*/ /*Scope*/ 86|128,2/*342*/, /*->68741*/ ++/* 68399*/ OPC_MoveChild0, ++/* 68400*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 68403*/ OPC_MoveChild0, ++/* 68404*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68407*/ OPC_CheckType, MVT::i32, ++/* 68409*/ OPC_Scope, 35|128,1/*163*/, /*->68575*/ // 2 children in Scope ++/* 68412*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 68414*/ OPC_MoveParent, ++/* 68415*/ OPC_MoveChild1, ++/* 68416*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68419*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 68421*/ OPC_CheckType, MVT::i32, ++/* 68423*/ OPC_MoveParent, ++/* 68424*/ OPC_MoveChild2, ++/* 68425*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68428*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 68430*/ OPC_CheckType, MVT::i32, ++/* 68432*/ OPC_MoveParent, ++/* 68433*/ OPC_MoveChild3, ++/* 68434*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68437*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 68439*/ OPC_CheckType, MVT::i32, ++/* 68441*/ OPC_MoveParent, ++/* 68442*/ OPC_MoveChild4, ++/* 68443*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68446*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 68448*/ OPC_CheckType, MVT::i32, ++/* 68450*/ OPC_MoveParent, ++/* 68451*/ OPC_MoveChild5, ++/* 68452*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68455*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 68457*/ OPC_CheckType, MVT::i32, ++/* 68459*/ OPC_MoveParent, ++/* 68460*/ OPC_MoveChild6, ++/* 68461*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68464*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 68466*/ OPC_CheckType, MVT::i32, ++/* 68468*/ OPC_MoveParent, ++/* 68469*/ OPC_MoveChild7, ++/* 68470*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68473*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 68475*/ OPC_CheckType, MVT::i32, ++/* 68477*/ OPC_MoveParent, ++/* 68478*/ OPC_MoveChild, 8, ++/* 68480*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68483*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 68485*/ OPC_CheckType, MVT::i32, ++/* 68487*/ OPC_MoveParent, ++/* 68488*/ OPC_MoveChild, 9, ++/* 68490*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68493*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 68495*/ OPC_CheckType, MVT::i32, ++/* 68497*/ OPC_MoveParent, ++/* 68498*/ OPC_MoveChild, 10, ++/* 68500*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68503*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 68505*/ OPC_CheckType, MVT::i32, ++/* 68507*/ OPC_MoveParent, ++/* 68508*/ OPC_MoveChild, 11, ++/* 68510*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68513*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 68515*/ OPC_CheckType, MVT::i32, ++/* 68517*/ OPC_MoveParent, ++/* 68518*/ OPC_MoveChild, 12, ++/* 68520*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68523*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 68525*/ OPC_CheckType, MVT::i32, ++/* 68527*/ OPC_MoveParent, ++/* 68528*/ OPC_MoveChild, 13, ++/* 68530*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68533*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 68535*/ OPC_CheckType, MVT::i32, ++/* 68537*/ OPC_MoveParent, ++/* 68538*/ OPC_MoveChild, 14, ++/* 68540*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68543*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 68545*/ OPC_CheckType, MVT::i32, ++/* 68547*/ OPC_MoveParent, ++/* 68548*/ OPC_MoveChild, 15, ++/* 68550*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68553*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 68555*/ OPC_CheckType, MVT::i32, ++/* 68557*/ OPC_MoveParent, ++/* 68558*/ OPC_MoveParent, ++/* 68559*/ OPC_RecordChild1, // #1 = $vt ++/* 68560*/ OPC_CheckType, MVT::v16i8, ++/* 68562*/ OPC_MoveParent, ++/* 68563*/ OPC_CheckType, MVT::v16i8, ++/* 68565*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 68567*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLL_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (shl:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vs, (and:{ *:[v16i8] } (build_vector:{ *:[v16i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v16i8:{ *:[v16i8] }:$vt)) - Complexity = 73 ++ // Dst: (VSLL_B:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vs, v16i8:{ *:[v16i8] }:$vt) ++/* 68575*/ /*Scope*/ 35|128,1/*163*/, /*->68740*/ ++/* 68577*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 68579*/ OPC_MoveParent, ++/* 68580*/ OPC_MoveChild1, ++/* 68581*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68584*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 68586*/ OPC_CheckType, MVT::i32, ++/* 68588*/ OPC_MoveParent, ++/* 68589*/ OPC_MoveChild2, ++/* 68590*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68593*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 68595*/ OPC_CheckType, MVT::i32, ++/* 68597*/ OPC_MoveParent, ++/* 68598*/ OPC_MoveChild3, ++/* 68599*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68602*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 68604*/ OPC_CheckType, MVT::i32, ++/* 68606*/ OPC_MoveParent, ++/* 68607*/ OPC_MoveChild4, ++/* 68608*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68611*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 68613*/ OPC_CheckType, MVT::i32, ++/* 68615*/ OPC_MoveParent, ++/* 68616*/ OPC_MoveChild5, ++/* 68617*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68620*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 68622*/ OPC_CheckType, MVT::i32, ++/* 68624*/ OPC_MoveParent, ++/* 68625*/ OPC_MoveChild6, ++/* 68626*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68629*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 68631*/ OPC_CheckType, MVT::i32, ++/* 68633*/ OPC_MoveParent, ++/* 68634*/ OPC_MoveChild7, ++/* 68635*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68638*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 68640*/ OPC_CheckType, MVT::i32, ++/* 68642*/ OPC_MoveParent, ++/* 68643*/ OPC_MoveChild, 8, ++/* 68645*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68648*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 68650*/ OPC_CheckType, MVT::i32, ++/* 68652*/ OPC_MoveParent, ++/* 68653*/ OPC_MoveChild, 9, ++/* 68655*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68658*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 68660*/ OPC_CheckType, MVT::i32, ++/* 68662*/ OPC_MoveParent, ++/* 68663*/ OPC_MoveChild, 10, ++/* 68665*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68668*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 68670*/ OPC_CheckType, MVT::i32, ++/* 68672*/ OPC_MoveParent, ++/* 68673*/ OPC_MoveChild, 11, ++/* 68675*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68678*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 68680*/ OPC_CheckType, MVT::i32, ++/* 68682*/ OPC_MoveParent, ++/* 68683*/ OPC_MoveChild, 12, ++/* 68685*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68688*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 68690*/ OPC_CheckType, MVT::i32, ++/* 68692*/ OPC_MoveParent, ++/* 68693*/ OPC_MoveChild, 13, ++/* 68695*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68698*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 68700*/ OPC_CheckType, MVT::i32, ++/* 68702*/ OPC_MoveParent, ++/* 68703*/ OPC_MoveChild, 14, ++/* 68705*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68708*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 68710*/ OPC_CheckType, MVT::i32, ++/* 68712*/ OPC_MoveParent, ++/* 68713*/ OPC_MoveChild, 15, ++/* 68715*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68718*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 68720*/ OPC_CheckType, MVT::i32, ++/* 68722*/ OPC_MoveParent, ++/* 68723*/ OPC_MoveParent, ++/* 68724*/ OPC_RecordChild1, // #1 = $vt ++/* 68725*/ OPC_CheckType, MVT::v16i16, ++/* 68727*/ OPC_MoveParent, ++/* 68728*/ OPC_CheckType, MVT::v16i16, ++/* 68730*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 68732*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLL_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (shl:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vs, (and:{ *:[v16i16] } (build_vector:{ *:[v16i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v16i16:{ *:[v16i16] }:$vt)) - Complexity = 73 ++ // Dst: (XVSLL_H:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vs, v16i16:{ *:[v16i16] }:$vt) ++/* 68740*/ 0, /*End of Scope*/ ++/* 68741*/ /*Scope*/ 51|128,1/*179*/, /*->68922*/ ++/* 68743*/ OPC_RecordChild0, // #1 = $vt ++/* 68744*/ OPC_MoveChild1, ++/* 68745*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 68748*/ OPC_MoveChild0, ++/* 68749*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68752*/ OPC_CheckType, MVT::i32, ++/* 68754*/ OPC_Scope, 82, /*->68838*/ // 2 children in Scope ++/* 68756*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 68758*/ OPC_MoveParent, ++/* 68759*/ OPC_MoveChild1, ++/* 68760*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68763*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 68765*/ OPC_CheckType, MVT::i32, ++/* 68767*/ OPC_MoveParent, ++/* 68768*/ OPC_MoveChild2, ++/* 68769*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68772*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 68774*/ OPC_CheckType, MVT::i32, ++/* 68776*/ OPC_MoveParent, ++/* 68777*/ OPC_MoveChild3, ++/* 68778*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68781*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 68783*/ OPC_CheckType, MVT::i32, ++/* 68785*/ OPC_MoveParent, ++/* 68786*/ OPC_MoveChild4, ++/* 68787*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68790*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 68792*/ OPC_CheckType, MVT::i32, ++/* 68794*/ OPC_MoveParent, ++/* 68795*/ OPC_MoveChild5, ++/* 68796*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68799*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 68801*/ OPC_CheckType, MVT::i32, ++/* 68803*/ OPC_MoveParent, ++/* 68804*/ OPC_MoveChild6, ++/* 68805*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68808*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 68810*/ OPC_CheckType, MVT::i32, ++/* 68812*/ OPC_MoveParent, ++/* 68813*/ OPC_MoveChild7, ++/* 68814*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68817*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 68819*/ OPC_CheckType, MVT::i32, ++/* 68821*/ OPC_MoveParent, ++/* 68822*/ OPC_MoveParent, ++/* 68823*/ OPC_CheckType, MVT::v8i16, ++/* 68825*/ OPC_MoveParent, ++/* 68826*/ OPC_CheckType, MVT::v8i16, ++/* 68828*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 68830*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLL_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (shl:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vs, (and:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vt, (build_vector:{ *:[v8i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))) - Complexity = 41 ++ // Dst: (VSLL_H:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vs, v8i16:{ *:[v8i16] }:$vt) ++/* 68838*/ /*Scope*/ 82, /*->68921*/ ++/* 68839*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 68841*/ OPC_MoveParent, ++/* 68842*/ OPC_MoveChild1, ++/* 68843*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68846*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 68848*/ OPC_CheckType, MVT::i32, ++/* 68850*/ OPC_MoveParent, ++/* 68851*/ OPC_MoveChild2, ++/* 68852*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68855*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 68857*/ OPC_CheckType, MVT::i32, ++/* 68859*/ OPC_MoveParent, ++/* 68860*/ OPC_MoveChild3, ++/* 68861*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68864*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 68866*/ OPC_CheckType, MVT::i32, ++/* 68868*/ OPC_MoveParent, ++/* 68869*/ OPC_MoveChild4, ++/* 68870*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68873*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 68875*/ OPC_CheckType, MVT::i32, ++/* 68877*/ OPC_MoveParent, ++/* 68878*/ OPC_MoveChild5, ++/* 68879*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68882*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 68884*/ OPC_CheckType, MVT::i32, ++/* 68886*/ OPC_MoveParent, ++/* 68887*/ OPC_MoveChild6, ++/* 68888*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68891*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 68893*/ OPC_CheckType, MVT::i32, ++/* 68895*/ OPC_MoveParent, ++/* 68896*/ OPC_MoveChild7, ++/* 68897*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68900*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 68902*/ OPC_CheckType, MVT::i32, ++/* 68904*/ OPC_MoveParent, ++/* 68905*/ OPC_MoveParent, ++/* 68906*/ OPC_CheckType, MVT::v8i32, ++/* 68908*/ OPC_MoveParent, ++/* 68909*/ OPC_CheckType, MVT::v8i32, ++/* 68911*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 68913*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLL_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (shl:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vs, (and:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vt, (build_vector:{ *:[v8i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))) - Complexity = 41 ++ // Dst: (XVSLL_W:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vs, v8i32:{ *:[v8i32] }:$vt) ++/* 68921*/ 0, /*End of Scope*/ ++/* 68922*/ /*Scope*/ 52|128,1/*180*/, /*->69104*/ ++/* 68924*/ OPC_MoveChild0, ++/* 68925*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 68928*/ OPC_MoveChild0, ++/* 68929*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68932*/ OPC_CheckType, MVT::i32, ++/* 68934*/ OPC_Scope, 83, /*->69019*/ // 2 children in Scope ++/* 68936*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 68938*/ OPC_MoveParent, ++/* 68939*/ OPC_MoveChild1, ++/* 68940*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68943*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 68945*/ OPC_CheckType, MVT::i32, ++/* 68947*/ OPC_MoveParent, ++/* 68948*/ OPC_MoveChild2, ++/* 68949*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68952*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 68954*/ OPC_CheckType, MVT::i32, ++/* 68956*/ OPC_MoveParent, ++/* 68957*/ OPC_MoveChild3, ++/* 68958*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68961*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 68963*/ OPC_CheckType, MVT::i32, ++/* 68965*/ OPC_MoveParent, ++/* 68966*/ OPC_MoveChild4, ++/* 68967*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68970*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 68972*/ OPC_CheckType, MVT::i32, ++/* 68974*/ OPC_MoveParent, ++/* 68975*/ OPC_MoveChild5, ++/* 68976*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68979*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 68981*/ OPC_CheckType, MVT::i32, ++/* 68983*/ OPC_MoveParent, ++/* 68984*/ OPC_MoveChild6, ++/* 68985*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68988*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 68990*/ OPC_CheckType, MVT::i32, ++/* 68992*/ OPC_MoveParent, ++/* 68993*/ OPC_MoveChild7, ++/* 68994*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 68997*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 68999*/ OPC_CheckType, MVT::i32, ++/* 69001*/ OPC_MoveParent, ++/* 69002*/ OPC_MoveParent, ++/* 69003*/ OPC_RecordChild1, // #1 = $vt ++/* 69004*/ OPC_CheckType, MVT::v8i16, ++/* 69006*/ OPC_MoveParent, ++/* 69007*/ OPC_CheckType, MVT::v8i16, ++/* 69009*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 69011*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLL_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (shl:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vs, (and:{ *:[v8i16] } (build_vector:{ *:[v8i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v8i16:{ *:[v8i16] }:$vt)) - Complexity = 41 ++ // Dst: (VSLL_H:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vs, v8i16:{ *:[v8i16] }:$vt) ++/* 69019*/ /*Scope*/ 83, /*->69103*/ ++/* 69020*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 69022*/ OPC_MoveParent, ++/* 69023*/ OPC_MoveChild1, ++/* 69024*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 69027*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 69029*/ OPC_CheckType, MVT::i32, ++/* 69031*/ OPC_MoveParent, ++/* 69032*/ OPC_MoveChild2, ++/* 69033*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 69036*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 69038*/ OPC_CheckType, MVT::i32, ++/* 69040*/ OPC_MoveParent, ++/* 69041*/ OPC_MoveChild3, ++/* 69042*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 69045*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 69047*/ OPC_CheckType, MVT::i32, ++/* 69049*/ OPC_MoveParent, ++/* 69050*/ OPC_MoveChild4, ++/* 69051*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 69054*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 69056*/ OPC_CheckType, MVT::i32, ++/* 69058*/ OPC_MoveParent, ++/* 69059*/ OPC_MoveChild5, ++/* 69060*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 69063*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 69065*/ OPC_CheckType, MVT::i32, ++/* 69067*/ OPC_MoveParent, ++/* 69068*/ OPC_MoveChild6, ++/* 69069*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 69072*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 69074*/ OPC_CheckType, MVT::i32, ++/* 69076*/ OPC_MoveParent, ++/* 69077*/ OPC_MoveChild7, ++/* 69078*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 69081*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 69083*/ OPC_CheckType, MVT::i32, ++/* 69085*/ OPC_MoveParent, ++/* 69086*/ OPC_MoveParent, ++/* 69087*/ OPC_RecordChild1, // #1 = $vt ++/* 69088*/ OPC_CheckType, MVT::v8i32, ++/* 69090*/ OPC_MoveParent, ++/* 69091*/ OPC_CheckType, MVT::v8i32, ++/* 69093*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 69095*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLL_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (shl:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vs, (and:{ *:[v8i32] } (build_vector:{ *:[v8i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v8i32:{ *:[v8i32] }:$vt)) - Complexity = 41 ++ // Dst: (XVSLL_W:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vs, v8i32:{ *:[v8i32] }:$vt) ++/* 69103*/ 0, /*End of Scope*/ ++/* 69104*/ /*Scope*/ 57, /*->69162*/ ++/* 69105*/ OPC_RecordChild0, // #1 = $vt ++/* 69106*/ OPC_MoveChild1, ++/* 69107*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 69110*/ OPC_MoveChild0, ++/* 69111*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 69114*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 69116*/ OPC_CheckType, MVT::i32, ++/* 69118*/ OPC_MoveParent, ++/* 69119*/ OPC_MoveChild1, ++/* 69120*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 69123*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 69125*/ OPC_CheckType, MVT::i32, ++/* 69127*/ OPC_MoveParent, ++/* 69128*/ OPC_MoveChild2, ++/* 69129*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 69132*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 69134*/ OPC_CheckType, MVT::i32, ++/* 69136*/ OPC_MoveParent, ++/* 69137*/ OPC_MoveChild3, ++/* 69138*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 69141*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 69143*/ OPC_CheckType, MVT::i32, ++/* 69145*/ OPC_MoveParent, ++/* 69146*/ OPC_MoveParent, ++/* 69147*/ OPC_CheckType, MVT::v4i32, ++/* 69149*/ OPC_MoveParent, ++/* 69150*/ OPC_CheckType, MVT::v4i32, ++/* 69152*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 69154*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLL_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (shl:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vs, (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vt, (build_vector:{ *:[v4i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))) - Complexity = 25 ++ // Dst: (VSLL_W:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vs, v4i32:{ *:[v4i32] }:$vt) ++/* 69162*/ /*Scope*/ 57, /*->69220*/ ++/* 69163*/ OPC_MoveChild0, ++/* 69164*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 69167*/ OPC_MoveChild0, ++/* 69168*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 69171*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 69173*/ OPC_CheckType, MVT::i32, ++/* 69175*/ OPC_MoveParent, ++/* 69176*/ OPC_MoveChild1, ++/* 69177*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 69180*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 69182*/ OPC_CheckType, MVT::i32, ++/* 69184*/ OPC_MoveParent, ++/* 69185*/ OPC_MoveChild2, ++/* 69186*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 69189*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 69191*/ OPC_CheckType, MVT::i32, ++/* 69193*/ OPC_MoveParent, ++/* 69194*/ OPC_MoveChild3, ++/* 69195*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 69198*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 69200*/ OPC_CheckType, MVT::i32, ++/* 69202*/ OPC_MoveParent, ++/* 69203*/ OPC_MoveParent, ++/* 69204*/ OPC_RecordChild1, // #1 = $vt ++/* 69205*/ OPC_CheckType, MVT::v4i32, ++/* 69207*/ OPC_MoveParent, ++/* 69208*/ OPC_CheckType, MVT::v4i32, ++/* 69210*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 69212*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLL_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (shl:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vs, (and:{ *:[v4i32] } (build_vector:{ *:[v4i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v4i32:{ *:[v4i32] }:$vt)) - Complexity = 25 ++ // Dst: (VSLL_W:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vs, v4i32:{ *:[v4i32] }:$vt) ++/* 69220*/ /*Scope*/ 53, /*->69274*/ ++/* 69221*/ OPC_RecordChild0, // #1 = $vt ++/* 69222*/ OPC_MoveChild1, ++/* 69223*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 69226*/ OPC_MoveChild0, ++/* 69227*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 69230*/ OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->69252 ++/* 69233*/ OPC_MoveParent, ++/* 69234*/ OPC_CheckPredicate, 40, // Predicate_vsplati64_imm_eq_63 ++/* 69236*/ OPC_MoveParent, ++/* 69237*/ OPC_CheckType, MVT::v2i64, ++/* 69239*/ OPC_MoveParent, ++/* 69240*/ OPC_CheckType, MVT::v2i64, ++/* 69242*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 69244*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLL_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (shl:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vs, (and:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vt, (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] }))<>)) - Complexity = 13 ++ // Dst: (VSLL_D:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vs, v2i64:{ *:[v2i64] }:$vt) ++/* 69252*/ /*SwitchType*/ 19, MVT::v8i32,// ->69273 ++/* 69254*/ OPC_MoveParent, ++/* 69255*/ OPC_CheckPredicate, 40, // Predicate_xvsplati64_imm_eq_63 ++/* 69257*/ OPC_MoveParent, ++/* 69258*/ OPC_CheckType, MVT::v4i64, ++/* 69260*/ OPC_MoveParent, ++/* 69261*/ OPC_CheckType, MVT::v4i64, ++/* 69263*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 69265*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLL_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (shl:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vs, (and:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vt, (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] }))<>)) - Complexity = 13 ++ // Dst: (XVSLL_D:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vs, v4i64:{ *:[v4i64] }:$vt) ++/* 69273*/ 0, // EndSwitchType ++/* 69274*/ /*Scope*/ 54, /*->69329*/ ++/* 69275*/ OPC_MoveChild0, ++/* 69276*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 69279*/ OPC_MoveChild0, ++/* 69280*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 69283*/ OPC_SwitchType /*2 cases */, 20, MVT::v4i32,// ->69306 ++/* 69286*/ OPC_MoveParent, ++/* 69287*/ OPC_CheckPredicate, 40, // Predicate_vsplati64_imm_eq_63 ++/* 69289*/ OPC_MoveParent, ++/* 69290*/ OPC_RecordChild1, // #1 = $vt ++/* 69291*/ OPC_CheckType, MVT::v2i64, ++/* 69293*/ OPC_MoveParent, ++/* 69294*/ OPC_CheckType, MVT::v2i64, ++/* 69296*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 69298*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLL_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (shl:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vs, (and:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] }))<>, v2i64:{ *:[v2i64] }:$vt)) - Complexity = 13 ++ // Dst: (VSLL_D:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vs, v2i64:{ *:[v2i64] }:$vt) ++/* 69306*/ /*SwitchType*/ 20, MVT::v8i32,// ->69328 ++/* 69308*/ OPC_MoveParent, ++/* 69309*/ OPC_CheckPredicate, 40, // Predicate_xvsplati64_imm_eq_63 ++/* 69311*/ OPC_MoveParent, ++/* 69312*/ OPC_RecordChild1, // #1 = $vt ++/* 69313*/ OPC_CheckType, MVT::v4i64, ++/* 69315*/ OPC_MoveParent, ++/* 69316*/ OPC_CheckType, MVT::v4i64, ++/* 69318*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 69320*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLL_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (shl:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vs, (and:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] }))<>, v4i64:{ *:[v4i64] }:$vt)) - Complexity = 13 ++ // Dst: (XVSLL_D:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vs, v4i64:{ *:[v4i64] }:$vt) ++/* 69328*/ 0, // EndSwitchType ++/* 69329*/ 0, /*End of Scope*/ ++/* 69330*/ /*Scope*/ 91|128,1/*219*/, /*->69551*/ ++/* 69332*/ OPC_RecordChild1, // #1 = $ui3 ++/* 69333*/ OPC_SwitchType /*8 cases */, 25, MVT::v16i8,// ->69361 ++/* 69336*/ OPC_CheckChild1Type, MVT::v16i8, ++/* 69338*/ OPC_Scope, 11, /*->69351*/ // 2 children in Scope ++/* 69340*/ OPC_CheckComplexPat, /*CP*/23, /*#*/1, // selectVSplatUimm3:$ui3 #2 ++/* 69343*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLLI_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 2, ++ // Src: (shl:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, vsplati8_uimm3:{ *:[v16i8] }:$ui3) - Complexity = 9 ++ // Dst: (VSLLI_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, vsplati8_uimm3:{ *:[v16i8] }:$ui3) ++/* 69351*/ /*Scope*/ 8, /*->69360*/ ++/* 69352*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLL_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (shl:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) - Complexity = 3 ++ // Dst: (VSLL_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/* 69360*/ 0, /*End of Scope*/ ++/* 69361*/ /*SwitchType*/ 25, MVT::v8i16,// ->69388 ++/* 69363*/ OPC_CheckChild1Type, MVT::v8i16, ++/* 69365*/ OPC_Scope, 11, /*->69378*/ // 2 children in Scope ++/* 69367*/ OPC_CheckComplexPat, /*CP*/24, /*#*/1, // selectVSplatUimm4:$ui4 #2 ++/* 69370*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLLI_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 2, ++ // Src: (shl:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, vsplati16_uimm4:{ *:[v8i16] }:$ui4) - Complexity = 9 ++ // Dst: (VSLLI_H:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, vsplati16_uimm4:{ *:[v8i16] }:$ui4) ++/* 69378*/ /*Scope*/ 8, /*->69387*/ ++/* 69379*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLL_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (shl:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 3 ++ // Dst: (VSLL_H:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/* 69387*/ 0, /*End of Scope*/ ++/* 69388*/ /*SwitchType*/ 25, MVT::v4i32,// ->69415 ++/* 69390*/ OPC_CheckChild1Type, MVT::v4i32, ++/* 69392*/ OPC_Scope, 11, /*->69405*/ // 2 children in Scope ++/* 69394*/ OPC_CheckComplexPat, /*CP*/10, /*#*/1, // selectVSplatUimm5:$ui5 #2 ++/* 69397*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLLI_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 2, ++ // Src: (shl:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, vsplati32_uimm5:{ *:[v4i32] }:$ui5) - Complexity = 9 ++ // Dst: (VSLLI_W:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, vsplati32_uimm5:{ *:[v4i32] }:$ui5) ++/* 69405*/ /*Scope*/ 8, /*->69414*/ ++/* 69406*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLL_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (shl:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 3 ++ // Dst: (VSLL_W:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/* 69414*/ 0, /*End of Scope*/ ++/* 69415*/ /*SwitchType*/ 25, MVT::v2i64,// ->69442 ++/* 69417*/ OPC_CheckChild1Type, MVT::v2i64, ++/* 69419*/ OPC_Scope, 11, /*->69432*/ // 2 children in Scope ++/* 69421*/ OPC_CheckComplexPat, /*CP*/25, /*#*/1, // selectVSplatUimm6:$ui6 #2 ++/* 69424*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLLI_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 2, ++ // Src: (shl:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, vsplati64_uimm6:{ *:[v2i64] }:$ui6) - Complexity = 9 ++ // Dst: (VSLLI_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, vsplati64_uimm6:{ *:[v2i64] }:$ui6) ++/* 69432*/ /*Scope*/ 8, /*->69441*/ ++/* 69433*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSLL_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (shl:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 3 ++ // Dst: (VSLL_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 69441*/ 0, /*End of Scope*/ ++/* 69442*/ /*SwitchType*/ 25, MVT::v32i8,// ->69469 ++/* 69444*/ OPC_CheckChild1Type, MVT::v32i8, ++/* 69446*/ OPC_Scope, 11, /*->69459*/ // 2 children in Scope ++/* 69448*/ OPC_CheckComplexPat, /*CP*/26, /*#*/1, // selectVSplatUimm3:$ui3 #2 ++/* 69451*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLLI_B_N), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 2, ++ // Src: (shl:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, xvsplati8_uimm3:{ *:[v32i8] }:$ui3) - Complexity = 9 ++ // Dst: (XVSLLI_B_N:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, xvsplati8_uimm3:{ *:[v32i8] }:$ui3) ++/* 69459*/ /*Scope*/ 8, /*->69468*/ ++/* 69460*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLL_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (shl:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 3 ++ // Dst: (XVSLL_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 69468*/ 0, /*End of Scope*/ ++/* 69469*/ /*SwitchType*/ 25, MVT::v16i16,// ->69496 ++/* 69471*/ OPC_CheckChild1Type, MVT::v16i16, ++/* 69473*/ OPC_Scope, 11, /*->69486*/ // 2 children in Scope ++/* 69475*/ OPC_CheckComplexPat, /*CP*/27, /*#*/1, // selectVSplatUimm4:$ui4 #2 ++/* 69478*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLLI_H_N), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 2, ++ // Src: (shl:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, xvsplati16_uimm4:{ *:[v16i16] }:$ui4) - Complexity = 9 ++ // Dst: (XVSLLI_H_N:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, xvsplati16_uimm4:{ *:[v16i16] }:$ui4) ++/* 69486*/ /*Scope*/ 8, /*->69495*/ ++/* 69487*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLL_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (shl:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 3 ++ // Dst: (XVSLL_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 69495*/ 0, /*End of Scope*/ ++/* 69496*/ /*SwitchType*/ 25, MVT::v8i32,// ->69523 ++/* 69498*/ OPC_CheckChild1Type, MVT::v8i32, ++/* 69500*/ OPC_Scope, 11, /*->69513*/ // 2 children in Scope ++/* 69502*/ OPC_CheckComplexPat, /*CP*/18, /*#*/1, // selectVSplatUimm5:$ui5 #2 ++/* 69505*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLLI_W_N), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 2, ++ // Src: (shl:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, xvsplati32_uimm5:{ *:[v8i32] }:$ui5) - Complexity = 9 ++ // Dst: (XVSLLI_W_N:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, xvsplati32_uimm5:{ *:[v8i32] }:$ui5) ++/* 69513*/ /*Scope*/ 8, /*->69522*/ ++/* 69514*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLL_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (shl:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 3 ++ // Dst: (XVSLL_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 69522*/ 0, /*End of Scope*/ ++/* 69523*/ /*SwitchType*/ 25, MVT::v4i64,// ->69550 ++/* 69525*/ OPC_CheckChild1Type, MVT::v4i64, ++/* 69527*/ OPC_Scope, 11, /*->69540*/ // 2 children in Scope ++/* 69529*/ OPC_CheckComplexPat, /*CP*/28, /*#*/1, // selectVSplatUimm6:$ui6 #2 ++/* 69532*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLLI_D_N), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 2, ++ // Src: (shl:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, xvsplati64_uimm6:{ *:[v4i64] }:$ui6) - Complexity = 9 ++ // Dst: (XVSLLI_D_N:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, xvsplati64_uimm6:{ *:[v4i64] }:$ui6) ++/* 69540*/ /*Scope*/ 8, /*->69549*/ ++/* 69541*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSLL_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (shl:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 3 ++ // Dst: (XVSLL_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 69549*/ 0, /*End of Scope*/ ++/* 69550*/ 0, // EndSwitchType ++/* 69551*/ 0, /*End of Scope*/ ++/* 69552*/ /*SwitchOpcode*/ 43|128,80/*10283*/, TARGET_VAL(ISD::SRL),// ->79839 ++/* 69556*/ OPC_Scope, 70, /*->69628*/ // 11 children in Scope ++/* 69558*/ OPC_RecordChild0, // #0 = $rj ++/* 69559*/ OPC_RecordChild1, // #1 = $imm6 ++/* 69560*/ OPC_Scope, 40, /*->69602*/ // 2 children in Scope ++/* 69562*/ OPC_MoveChild1, ++/* 69563*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 69566*/ OPC_CheckType, MVT::i32, ++/* 69568*/ OPC_Scope, 15, /*->69585*/ // 2 children in Scope ++/* 69570*/ OPC_CheckPredicate, 43, // Predicate_uimm6 ++/* 69572*/ OPC_MoveParent, ++/* 69573*/ OPC_CheckType, MVT::i64, ++/* 69575*/ OPC_EmitConvertToTarget, 1, ++/* 69577*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SRLI_D), 0, ++ MVT::i64, 2/*#Ops*/, 0, 2, ++ // Src: (srl:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, (imm:{ *:[i32] })<>:$imm6) - Complexity = 7 ++ // Dst: (SRLI_D:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, (imm:{ *:[i32] }):$imm6) ++/* 69585*/ /*Scope*/ 15, /*->69601*/ ++/* 69586*/ OPC_CheckPredicate, 20, // Predicate_uimm5 ++/* 69588*/ OPC_MoveParent, ++/* 69589*/ OPC_CheckType, MVT::i32, ++/* 69591*/ OPC_EmitConvertToTarget, 1, ++/* 69593*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SRLI_W), 0, ++ MVT::i32, 2/*#Ops*/, 0, 2, ++ // Src: (srl:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, (imm:{ *:[i32] })<>:$imm5) - Complexity = 7 ++ // Dst: (SRLI_W:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, (imm:{ *:[i32] }):$imm5) ++/* 69601*/ 0, /*End of Scope*/ ++/* 69602*/ /*Scope*/ 24, /*->69627*/ ++/* 69603*/ OPC_CheckChild1Type, MVT::i32, ++/* 69605*/ OPC_SwitchType /*2 cases */, 8, MVT::i64,// ->69616 ++/* 69608*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SRL_D), 0, ++ MVT::i64, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) - Complexity = 3 ++ // Dst: (SRL_D:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) ++/* 69616*/ /*SwitchType*/ 8, MVT::i32,// ->69626 ++/* 69618*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SRL_W), 0, ++ MVT::i32, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) - Complexity = 3 ++ // Dst: (SRL_W:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) ++/* 69626*/ 0, // EndSwitchType ++/* 69627*/ 0, /*End of Scope*/ ++/* 69628*/ /*Scope*/ 122|128,41/*5370*/, /*->75000*/ ++/* 69630*/ OPC_MoveChild0, ++/* 69631*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/* 69634*/ OPC_Scope, 118|128,13/*1782*/, /*->71419*/ // 6 children in Scope ++/* 69637*/ OPC_MoveChild0, ++/* 69638*/ OPC_SwitchOpcode /*2 cases */, 56|128,3/*440*/, TARGET_VAL(ISD::BUILD_VECTOR),// ->70083 ++/* 69643*/ OPC_CheckChild0Integer, 1, ++/* 69645*/ OPC_CheckChild0Type, MVT::i32, ++/* 69647*/ OPC_CheckChild1Integer, 1, ++/* 69649*/ OPC_CheckChild1Type, MVT::i32, ++/* 69651*/ OPC_CheckChild2Integer, 1, ++/* 69653*/ OPC_CheckChild2Type, MVT::i32, ++/* 69655*/ OPC_CheckChild3Integer, 1, ++/* 69657*/ OPC_CheckChild3Type, MVT::i32, ++/* 69659*/ OPC_CheckChild4Integer, 1, ++/* 69661*/ OPC_CheckChild4Type, MVT::i32, ++/* 69663*/ OPC_MoveChild5, ++/* 69664*/ OPC_CheckInteger, 1, ++/* 69666*/ OPC_CheckType, MVT::i32, ++/* 69668*/ OPC_MoveParent, ++/* 69669*/ OPC_MoveChild6, ++/* 69670*/ OPC_CheckInteger, 1, ++/* 69672*/ OPC_CheckType, MVT::i32, ++/* 69674*/ OPC_MoveParent, ++/* 69675*/ OPC_MoveChild7, ++/* 69676*/ OPC_CheckInteger, 1, ++/* 69678*/ OPC_CheckType, MVT::i32, ++/* 69680*/ OPC_MoveParent, ++/* 69681*/ OPC_MoveChild, 8, ++/* 69683*/ OPC_CheckInteger, 1, ++/* 69685*/ OPC_CheckType, MVT::i32, ++/* 69687*/ OPC_MoveParent, ++/* 69688*/ OPC_MoveChild, 9, ++/* 69690*/ OPC_CheckInteger, 1, ++/* 69692*/ OPC_CheckType, MVT::i32, ++/* 69694*/ OPC_MoveParent, ++/* 69695*/ OPC_MoveChild, 10, ++/* 69697*/ OPC_CheckInteger, 1, ++/* 69699*/ OPC_CheckType, MVT::i32, ++/* 69701*/ OPC_MoveParent, ++/* 69702*/ OPC_MoveChild, 11, ++/* 69704*/ OPC_CheckInteger, 1, ++/* 69706*/ OPC_CheckType, MVT::i32, ++/* 69708*/ OPC_MoveParent, ++/* 69709*/ OPC_MoveChild, 12, ++/* 69711*/ OPC_CheckInteger, 1, ++/* 69713*/ OPC_CheckType, MVT::i32, ++/* 69715*/ OPC_MoveParent, ++/* 69716*/ OPC_MoveChild, 13, ++/* 69718*/ OPC_CheckInteger, 1, ++/* 69720*/ OPC_CheckType, MVT::i32, ++/* 69722*/ OPC_MoveParent, ++/* 69723*/ OPC_MoveChild, 14, ++/* 69725*/ OPC_CheckInteger, 1, ++/* 69727*/ OPC_CheckType, MVT::i32, ++/* 69729*/ OPC_MoveParent, ++/* 69730*/ OPC_MoveChild, 15, ++/* 69732*/ OPC_CheckInteger, 1, ++/* 69734*/ OPC_CheckType, MVT::i32, ++/* 69736*/ OPC_MoveParent, ++/* 69737*/ OPC_MoveChild, 16, ++/* 69739*/ OPC_CheckInteger, 1, ++/* 69741*/ OPC_CheckType, MVT::i32, ++/* 69743*/ OPC_MoveParent, ++/* 69744*/ OPC_MoveChild, 17, ++/* 69746*/ OPC_CheckInteger, 1, ++/* 69748*/ OPC_CheckType, MVT::i32, ++/* 69750*/ OPC_MoveParent, ++/* 69751*/ OPC_MoveChild, 18, ++/* 69753*/ OPC_CheckInteger, 1, ++/* 69755*/ OPC_CheckType, MVT::i32, ++/* 69757*/ OPC_MoveParent, ++/* 69758*/ OPC_MoveChild, 19, ++/* 69760*/ OPC_CheckInteger, 1, ++/* 69762*/ OPC_CheckType, MVT::i32, ++/* 69764*/ OPC_MoveParent, ++/* 69765*/ OPC_MoveChild, 20, ++/* 69767*/ OPC_CheckInteger, 1, ++/* 69769*/ OPC_CheckType, MVT::i32, ++/* 69771*/ OPC_MoveParent, ++/* 69772*/ OPC_MoveChild, 21, ++/* 69774*/ OPC_CheckInteger, 1, ++/* 69776*/ OPC_CheckType, MVT::i32, ++/* 69778*/ OPC_MoveParent, ++/* 69779*/ OPC_MoveChild, 22, ++/* 69781*/ OPC_CheckInteger, 1, ++/* 69783*/ OPC_CheckType, MVT::i32, ++/* 69785*/ OPC_MoveParent, ++/* 69786*/ OPC_MoveChild, 23, ++/* 69788*/ OPC_CheckInteger, 1, ++/* 69790*/ OPC_CheckType, MVT::i32, ++/* 69792*/ OPC_MoveParent, ++/* 69793*/ OPC_MoveChild, 24, ++/* 69795*/ OPC_CheckInteger, 1, ++/* 69797*/ OPC_CheckType, MVT::i32, ++/* 69799*/ OPC_MoveParent, ++/* 69800*/ OPC_MoveChild, 25, ++/* 69802*/ OPC_CheckInteger, 1, ++/* 69804*/ OPC_CheckType, MVT::i32, ++/* 69806*/ OPC_MoveParent, ++/* 69807*/ OPC_MoveChild, 26, ++/* 69809*/ OPC_CheckInteger, 1, ++/* 69811*/ OPC_CheckType, MVT::i32, ++/* 69813*/ OPC_MoveParent, ++/* 69814*/ OPC_MoveChild, 27, ++/* 69816*/ OPC_CheckInteger, 1, ++/* 69818*/ OPC_CheckType, MVT::i32, ++/* 69820*/ OPC_MoveParent, ++/* 69821*/ OPC_MoveChild, 28, ++/* 69823*/ OPC_CheckInteger, 1, ++/* 69825*/ OPC_CheckType, MVT::i32, ++/* 69827*/ OPC_MoveParent, ++/* 69828*/ OPC_MoveChild, 29, ++/* 69830*/ OPC_CheckInteger, 1, ++/* 69832*/ OPC_CheckType, MVT::i32, ++/* 69834*/ OPC_MoveParent, ++/* 69835*/ OPC_MoveChild, 30, ++/* 69837*/ OPC_CheckInteger, 1, ++/* 69839*/ OPC_CheckType, MVT::i32, ++/* 69841*/ OPC_MoveParent, ++/* 69842*/ OPC_MoveChild, 31, ++/* 69844*/ OPC_CheckInteger, 1, ++/* 69846*/ OPC_CheckType, MVT::i32, ++/* 69848*/ OPC_MoveParent, ++/* 69849*/ OPC_MoveParent, ++/* 69850*/ OPC_MoveChild1, ++/* 69851*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/* 69854*/ OPC_RecordChild0, // #0 = $a ++/* 69855*/ OPC_RecordChild1, // #1 = $b ++/* 69856*/ OPC_MoveParent, ++/* 69857*/ OPC_MoveParent, ++/* 69858*/ OPC_MoveChild1, ++/* 69859*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 69862*/ OPC_CheckChild0Integer, 1, ++/* 69864*/ OPC_CheckChild0Type, MVT::i32, ++/* 69866*/ OPC_CheckChild1Integer, 1, ++/* 69868*/ OPC_CheckChild1Type, MVT::i32, ++/* 69870*/ OPC_CheckChild2Integer, 1, ++/* 69872*/ OPC_CheckChild2Type, MVT::i32, ++/* 69874*/ OPC_CheckChild3Integer, 1, ++/* 69876*/ OPC_CheckChild3Type, MVT::i32, ++/* 69878*/ OPC_CheckChild4Integer, 1, ++/* 69880*/ OPC_CheckChild4Type, MVT::i32, ++/* 69882*/ OPC_MoveChild5, ++/* 69883*/ OPC_CheckInteger, 1, ++/* 69885*/ OPC_CheckType, MVT::i32, ++/* 69887*/ OPC_MoveParent, ++/* 69888*/ OPC_MoveChild6, ++/* 69889*/ OPC_CheckInteger, 1, ++/* 69891*/ OPC_CheckType, MVT::i32, ++/* 69893*/ OPC_MoveParent, ++/* 69894*/ OPC_MoveChild7, ++/* 69895*/ OPC_CheckInteger, 1, ++/* 69897*/ OPC_CheckType, MVT::i32, ++/* 69899*/ OPC_MoveParent, ++/* 69900*/ OPC_MoveChild, 8, ++/* 69902*/ OPC_CheckInteger, 1, ++/* 69904*/ OPC_CheckType, MVT::i32, ++/* 69906*/ OPC_MoveParent, ++/* 69907*/ OPC_MoveChild, 9, ++/* 69909*/ OPC_CheckInteger, 1, ++/* 69911*/ OPC_CheckType, MVT::i32, ++/* 69913*/ OPC_MoveParent, ++/* 69914*/ OPC_MoveChild, 10, ++/* 69916*/ OPC_CheckInteger, 1, ++/* 69918*/ OPC_CheckType, MVT::i32, ++/* 69920*/ OPC_MoveParent, ++/* 69921*/ OPC_MoveChild, 11, ++/* 69923*/ OPC_CheckInteger, 1, ++/* 69925*/ OPC_CheckType, MVT::i32, ++/* 69927*/ OPC_MoveParent, ++/* 69928*/ OPC_MoveChild, 12, ++/* 69930*/ OPC_CheckInteger, 1, ++/* 69932*/ OPC_CheckType, MVT::i32, ++/* 69934*/ OPC_MoveParent, ++/* 69935*/ OPC_MoveChild, 13, ++/* 69937*/ OPC_CheckInteger, 1, ++/* 69939*/ OPC_CheckType, MVT::i32, ++/* 69941*/ OPC_MoveParent, ++/* 69942*/ OPC_MoveChild, 14, ++/* 69944*/ OPC_CheckInteger, 1, ++/* 69946*/ OPC_CheckType, MVT::i32, ++/* 69948*/ OPC_MoveParent, ++/* 69949*/ OPC_MoveChild, 15, ++/* 69951*/ OPC_CheckInteger, 1, ++/* 69953*/ OPC_CheckType, MVT::i32, ++/* 69955*/ OPC_MoveParent, ++/* 69956*/ OPC_MoveChild, 16, ++/* 69958*/ OPC_CheckInteger, 1, ++/* 69960*/ OPC_CheckType, MVT::i32, ++/* 69962*/ OPC_MoveParent, ++/* 69963*/ OPC_MoveChild, 17, ++/* 69965*/ OPC_CheckInteger, 1, ++/* 69967*/ OPC_CheckType, MVT::i32, ++/* 69969*/ OPC_MoveParent, ++/* 69970*/ OPC_MoveChild, 18, ++/* 69972*/ OPC_CheckInteger, 1, ++/* 69974*/ OPC_CheckType, MVT::i32, ++/* 69976*/ OPC_MoveParent, ++/* 69977*/ OPC_MoveChild, 19, ++/* 69979*/ OPC_CheckInteger, 1, ++/* 69981*/ OPC_CheckType, MVT::i32, ++/* 69983*/ OPC_MoveParent, ++/* 69984*/ OPC_MoveChild, 20, ++/* 69986*/ OPC_CheckInteger, 1, ++/* 69988*/ OPC_CheckType, MVT::i32, ++/* 69990*/ OPC_MoveParent, ++/* 69991*/ OPC_MoveChild, 21, ++/* 69993*/ OPC_CheckInteger, 1, ++/* 69995*/ OPC_CheckType, MVT::i32, ++/* 69997*/ OPC_MoveParent, ++/* 69998*/ OPC_MoveChild, 22, ++/* 70000*/ OPC_CheckInteger, 1, ++/* 70002*/ OPC_CheckType, MVT::i32, ++/* 70004*/ OPC_MoveParent, ++/* 70005*/ OPC_MoveChild, 23, ++/* 70007*/ OPC_CheckInteger, 1, ++/* 70009*/ OPC_CheckType, MVT::i32, ++/* 70011*/ OPC_MoveParent, ++/* 70012*/ OPC_MoveChild, 24, ++/* 70014*/ OPC_CheckInteger, 1, ++/* 70016*/ OPC_CheckType, MVT::i32, ++/* 70018*/ OPC_MoveParent, ++/* 70019*/ OPC_MoveChild, 25, ++/* 70021*/ OPC_CheckInteger, 1, ++/* 70023*/ OPC_CheckType, MVT::i32, ++/* 70025*/ OPC_MoveParent, ++/* 70026*/ OPC_MoveChild, 26, ++/* 70028*/ OPC_CheckInteger, 1, ++/* 70030*/ OPC_CheckType, MVT::i32, ++/* 70032*/ OPC_MoveParent, ++/* 70033*/ OPC_MoveChild, 27, ++/* 70035*/ OPC_CheckInteger, 1, ++/* 70037*/ OPC_CheckType, MVT::i32, ++/* 70039*/ OPC_MoveParent, ++/* 70040*/ OPC_MoveChild, 28, ++/* 70042*/ OPC_CheckInteger, 1, ++/* 70044*/ OPC_CheckType, MVT::i32, ++/* 70046*/ OPC_MoveParent, ++/* 70047*/ OPC_MoveChild, 29, ++/* 70049*/ OPC_CheckInteger, 1, ++/* 70051*/ OPC_CheckType, MVT::i32, ++/* 70053*/ OPC_MoveParent, ++/* 70054*/ OPC_MoveChild, 30, ++/* 70056*/ OPC_CheckInteger, 1, ++/* 70058*/ OPC_CheckType, MVT::i32, ++/* 70060*/ OPC_MoveParent, ++/* 70061*/ OPC_MoveChild, 31, ++/* 70063*/ OPC_CheckInteger, 1, ++/* 70065*/ OPC_CheckType, MVT::i32, ++/* 70067*/ OPC_MoveParent, ++/* 70068*/ OPC_CheckType, MVT::v32i8, ++/* 70070*/ OPC_MoveParent, ++/* 70071*/ OPC_CheckType, MVT::v32i8, ++/* 70073*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 70075*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_BU), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 335 ++ // Dst: (XVAVGR_BU:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/* 70083*/ /*SwitchOpcode*/ 51|128,10/*1331*/, TARGET_VAL(ISD::ADD),// ->71418 ++/* 70087*/ OPC_Scope, 56|128,3/*440*/, /*->70530*/ // 2 children in Scope ++/* 70090*/ OPC_MoveChild0, ++/* 70091*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 70094*/ OPC_CheckChild0Integer, 1, ++/* 70096*/ OPC_CheckChild0Type, MVT::i32, ++/* 70098*/ OPC_CheckChild1Integer, 1, ++/* 70100*/ OPC_CheckChild1Type, MVT::i32, ++/* 70102*/ OPC_CheckChild2Integer, 1, ++/* 70104*/ OPC_CheckChild2Type, MVT::i32, ++/* 70106*/ OPC_CheckChild3Integer, 1, ++/* 70108*/ OPC_CheckChild3Type, MVT::i32, ++/* 70110*/ OPC_CheckChild4Integer, 1, ++/* 70112*/ OPC_CheckChild4Type, MVT::i32, ++/* 70114*/ OPC_MoveChild5, ++/* 70115*/ OPC_CheckInteger, 1, ++/* 70117*/ OPC_CheckType, MVT::i32, ++/* 70119*/ OPC_MoveParent, ++/* 70120*/ OPC_MoveChild6, ++/* 70121*/ OPC_CheckInteger, 1, ++/* 70123*/ OPC_CheckType, MVT::i32, ++/* 70125*/ OPC_MoveParent, ++/* 70126*/ OPC_MoveChild7, ++/* 70127*/ OPC_CheckInteger, 1, ++/* 70129*/ OPC_CheckType, MVT::i32, ++/* 70131*/ OPC_MoveParent, ++/* 70132*/ OPC_MoveChild, 8, ++/* 70134*/ OPC_CheckInteger, 1, ++/* 70136*/ OPC_CheckType, MVT::i32, ++/* 70138*/ OPC_MoveParent, ++/* 70139*/ OPC_MoveChild, 9, ++/* 70141*/ OPC_CheckInteger, 1, ++/* 70143*/ OPC_CheckType, MVT::i32, ++/* 70145*/ OPC_MoveParent, ++/* 70146*/ OPC_MoveChild, 10, ++/* 70148*/ OPC_CheckInteger, 1, ++/* 70150*/ OPC_CheckType, MVT::i32, ++/* 70152*/ OPC_MoveParent, ++/* 70153*/ OPC_MoveChild, 11, ++/* 70155*/ OPC_CheckInteger, 1, ++/* 70157*/ OPC_CheckType, MVT::i32, ++/* 70159*/ OPC_MoveParent, ++/* 70160*/ OPC_MoveChild, 12, ++/* 70162*/ OPC_CheckInteger, 1, ++/* 70164*/ OPC_CheckType, MVT::i32, ++/* 70166*/ OPC_MoveParent, ++/* 70167*/ OPC_MoveChild, 13, ++/* 70169*/ OPC_CheckInteger, 1, ++/* 70171*/ OPC_CheckType, MVT::i32, ++/* 70173*/ OPC_MoveParent, ++/* 70174*/ OPC_MoveChild, 14, ++/* 70176*/ OPC_CheckInteger, 1, ++/* 70178*/ OPC_CheckType, MVT::i32, ++/* 70180*/ OPC_MoveParent, ++/* 70181*/ OPC_MoveChild, 15, ++/* 70183*/ OPC_CheckInteger, 1, ++/* 70185*/ OPC_CheckType, MVT::i32, ++/* 70187*/ OPC_MoveParent, ++/* 70188*/ OPC_MoveChild, 16, ++/* 70190*/ OPC_CheckInteger, 1, ++/* 70192*/ OPC_CheckType, MVT::i32, ++/* 70194*/ OPC_MoveParent, ++/* 70195*/ OPC_MoveChild, 17, ++/* 70197*/ OPC_CheckInteger, 1, ++/* 70199*/ OPC_CheckType, MVT::i32, ++/* 70201*/ OPC_MoveParent, ++/* 70202*/ OPC_MoveChild, 18, ++/* 70204*/ OPC_CheckInteger, 1, ++/* 70206*/ OPC_CheckType, MVT::i32, ++/* 70208*/ OPC_MoveParent, ++/* 70209*/ OPC_MoveChild, 19, ++/* 70211*/ OPC_CheckInteger, 1, ++/* 70213*/ OPC_CheckType, MVT::i32, ++/* 70215*/ OPC_MoveParent, ++/* 70216*/ OPC_MoveChild, 20, ++/* 70218*/ OPC_CheckInteger, 1, ++/* 70220*/ OPC_CheckType, MVT::i32, ++/* 70222*/ OPC_MoveParent, ++/* 70223*/ OPC_MoveChild, 21, ++/* 70225*/ OPC_CheckInteger, 1, ++/* 70227*/ OPC_CheckType, MVT::i32, ++/* 70229*/ OPC_MoveParent, ++/* 70230*/ OPC_MoveChild, 22, ++/* 70232*/ OPC_CheckInteger, 1, ++/* 70234*/ OPC_CheckType, MVT::i32, ++/* 70236*/ OPC_MoveParent, ++/* 70237*/ OPC_MoveChild, 23, ++/* 70239*/ OPC_CheckInteger, 1, ++/* 70241*/ OPC_CheckType, MVT::i32, ++/* 70243*/ OPC_MoveParent, ++/* 70244*/ OPC_MoveChild, 24, ++/* 70246*/ OPC_CheckInteger, 1, ++/* 70248*/ OPC_CheckType, MVT::i32, ++/* 70250*/ OPC_MoveParent, ++/* 70251*/ OPC_MoveChild, 25, ++/* 70253*/ OPC_CheckInteger, 1, ++/* 70255*/ OPC_CheckType, MVT::i32, ++/* 70257*/ OPC_MoveParent, ++/* 70258*/ OPC_MoveChild, 26, ++/* 70260*/ OPC_CheckInteger, 1, ++/* 70262*/ OPC_CheckType, MVT::i32, ++/* 70264*/ OPC_MoveParent, ++/* 70265*/ OPC_MoveChild, 27, ++/* 70267*/ OPC_CheckInteger, 1, ++/* 70269*/ OPC_CheckType, MVT::i32, ++/* 70271*/ OPC_MoveParent, ++/* 70272*/ OPC_MoveChild, 28, ++/* 70274*/ OPC_CheckInteger, 1, ++/* 70276*/ OPC_CheckType, MVT::i32, ++/* 70278*/ OPC_MoveParent, ++/* 70279*/ OPC_MoveChild, 29, ++/* 70281*/ OPC_CheckInteger, 1, ++/* 70283*/ OPC_CheckType, MVT::i32, ++/* 70285*/ OPC_MoveParent, ++/* 70286*/ OPC_MoveChild, 30, ++/* 70288*/ OPC_CheckInteger, 1, ++/* 70290*/ OPC_CheckType, MVT::i32, ++/* 70292*/ OPC_MoveParent, ++/* 70293*/ OPC_MoveChild, 31, ++/* 70295*/ OPC_CheckInteger, 1, ++/* 70297*/ OPC_CheckType, MVT::i32, ++/* 70299*/ OPC_MoveParent, ++/* 70300*/ OPC_MoveParent, ++/* 70301*/ OPC_RecordChild1, // #0 = $a ++/* 70302*/ OPC_MoveParent, ++/* 70303*/ OPC_RecordChild1, // #1 = $b ++/* 70304*/ OPC_MoveParent, ++/* 70305*/ OPC_MoveChild1, ++/* 70306*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 70309*/ OPC_CheckChild0Integer, 1, ++/* 70311*/ OPC_CheckChild0Type, MVT::i32, ++/* 70313*/ OPC_CheckChild1Integer, 1, ++/* 70315*/ OPC_CheckChild1Type, MVT::i32, ++/* 70317*/ OPC_CheckChild2Integer, 1, ++/* 70319*/ OPC_CheckChild2Type, MVT::i32, ++/* 70321*/ OPC_CheckChild3Integer, 1, ++/* 70323*/ OPC_CheckChild3Type, MVT::i32, ++/* 70325*/ OPC_CheckChild4Integer, 1, ++/* 70327*/ OPC_CheckChild4Type, MVT::i32, ++/* 70329*/ OPC_MoveChild5, ++/* 70330*/ OPC_CheckInteger, 1, ++/* 70332*/ OPC_CheckType, MVT::i32, ++/* 70334*/ OPC_MoveParent, ++/* 70335*/ OPC_MoveChild6, ++/* 70336*/ OPC_CheckInteger, 1, ++/* 70338*/ OPC_CheckType, MVT::i32, ++/* 70340*/ OPC_MoveParent, ++/* 70341*/ OPC_MoveChild7, ++/* 70342*/ OPC_CheckInteger, 1, ++/* 70344*/ OPC_CheckType, MVT::i32, ++/* 70346*/ OPC_MoveParent, ++/* 70347*/ OPC_MoveChild, 8, ++/* 70349*/ OPC_CheckInteger, 1, ++/* 70351*/ OPC_CheckType, MVT::i32, ++/* 70353*/ OPC_MoveParent, ++/* 70354*/ OPC_MoveChild, 9, ++/* 70356*/ OPC_CheckInteger, 1, ++/* 70358*/ OPC_CheckType, MVT::i32, ++/* 70360*/ OPC_MoveParent, ++/* 70361*/ OPC_MoveChild, 10, ++/* 70363*/ OPC_CheckInteger, 1, ++/* 70365*/ OPC_CheckType, MVT::i32, ++/* 70367*/ OPC_MoveParent, ++/* 70368*/ OPC_MoveChild, 11, ++/* 70370*/ OPC_CheckInteger, 1, ++/* 70372*/ OPC_CheckType, MVT::i32, ++/* 70374*/ OPC_MoveParent, ++/* 70375*/ OPC_MoveChild, 12, ++/* 70377*/ OPC_CheckInteger, 1, ++/* 70379*/ OPC_CheckType, MVT::i32, ++/* 70381*/ OPC_MoveParent, ++/* 70382*/ OPC_MoveChild, 13, ++/* 70384*/ OPC_CheckInteger, 1, ++/* 70386*/ OPC_CheckType, MVT::i32, ++/* 70388*/ OPC_MoveParent, ++/* 70389*/ OPC_MoveChild, 14, ++/* 70391*/ OPC_CheckInteger, 1, ++/* 70393*/ OPC_CheckType, MVT::i32, ++/* 70395*/ OPC_MoveParent, ++/* 70396*/ OPC_MoveChild, 15, ++/* 70398*/ OPC_CheckInteger, 1, ++/* 70400*/ OPC_CheckType, MVT::i32, ++/* 70402*/ OPC_MoveParent, ++/* 70403*/ OPC_MoveChild, 16, ++/* 70405*/ OPC_CheckInteger, 1, ++/* 70407*/ OPC_CheckType, MVT::i32, ++/* 70409*/ OPC_MoveParent, ++/* 70410*/ OPC_MoveChild, 17, ++/* 70412*/ OPC_CheckInteger, 1, ++/* 70414*/ OPC_CheckType, MVT::i32, ++/* 70416*/ OPC_MoveParent, ++/* 70417*/ OPC_MoveChild, 18, ++/* 70419*/ OPC_CheckInteger, 1, ++/* 70421*/ OPC_CheckType, MVT::i32, ++/* 70423*/ OPC_MoveParent, ++/* 70424*/ OPC_MoveChild, 19, ++/* 70426*/ OPC_CheckInteger, 1, ++/* 70428*/ OPC_CheckType, MVT::i32, ++/* 70430*/ OPC_MoveParent, ++/* 70431*/ OPC_MoveChild, 20, ++/* 70433*/ OPC_CheckInteger, 1, ++/* 70435*/ OPC_CheckType, MVT::i32, ++/* 70437*/ OPC_MoveParent, ++/* 70438*/ OPC_MoveChild, 21, ++/* 70440*/ OPC_CheckInteger, 1, ++/* 70442*/ OPC_CheckType, MVT::i32, ++/* 70444*/ OPC_MoveParent, ++/* 70445*/ OPC_MoveChild, 22, ++/* 70447*/ OPC_CheckInteger, 1, ++/* 70449*/ OPC_CheckType, MVT::i32, ++/* 70451*/ OPC_MoveParent, ++/* 70452*/ OPC_MoveChild, 23, ++/* 70454*/ OPC_CheckInteger, 1, ++/* 70456*/ OPC_CheckType, MVT::i32, ++/* 70458*/ OPC_MoveParent, ++/* 70459*/ OPC_MoveChild, 24, ++/* 70461*/ OPC_CheckInteger, 1, ++/* 70463*/ OPC_CheckType, MVT::i32, ++/* 70465*/ OPC_MoveParent, ++/* 70466*/ OPC_MoveChild, 25, ++/* 70468*/ OPC_CheckInteger, 1, ++/* 70470*/ OPC_CheckType, MVT::i32, ++/* 70472*/ OPC_MoveParent, ++/* 70473*/ OPC_MoveChild, 26, ++/* 70475*/ OPC_CheckInteger, 1, ++/* 70477*/ OPC_CheckType, MVT::i32, ++/* 70479*/ OPC_MoveParent, ++/* 70480*/ OPC_MoveChild, 27, ++/* 70482*/ OPC_CheckInteger, 1, ++/* 70484*/ OPC_CheckType, MVT::i32, ++/* 70486*/ OPC_MoveParent, ++/* 70487*/ OPC_MoveChild, 28, ++/* 70489*/ OPC_CheckInteger, 1, ++/* 70491*/ OPC_CheckType, MVT::i32, ++/* 70493*/ OPC_MoveParent, ++/* 70494*/ OPC_MoveChild, 29, ++/* 70496*/ OPC_CheckInteger, 1, ++/* 70498*/ OPC_CheckType, MVT::i32, ++/* 70500*/ OPC_MoveParent, ++/* 70501*/ OPC_MoveChild, 30, ++/* 70503*/ OPC_CheckInteger, 1, ++/* 70505*/ OPC_CheckType, MVT::i32, ++/* 70507*/ OPC_MoveParent, ++/* 70508*/ OPC_MoveChild, 31, ++/* 70510*/ OPC_CheckInteger, 1, ++/* 70512*/ OPC_CheckType, MVT::i32, ++/* 70514*/ OPC_MoveParent, ++/* 70515*/ OPC_CheckType, MVT::v32i8, ++/* 70517*/ OPC_MoveParent, ++/* 70518*/ OPC_CheckType, MVT::v32i8, ++/* 70520*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 70522*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_BU), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a), LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 335 ++ // Dst: (XVAVGR_BU:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/* 70530*/ /*Scope*/ 117|128,6/*885*/, /*->71417*/ ++/* 70532*/ OPC_RecordChild0, // #0 = $a ++/* 70533*/ OPC_Scope, 55|128,3/*439*/, /*->70975*/ // 2 children in Scope ++/* 70536*/ OPC_MoveChild1, ++/* 70537*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 70540*/ OPC_CheckChild0Integer, 1, ++/* 70542*/ OPC_CheckChild0Type, MVT::i32, ++/* 70544*/ OPC_CheckChild1Integer, 1, ++/* 70546*/ OPC_CheckChild1Type, MVT::i32, ++/* 70548*/ OPC_CheckChild2Integer, 1, ++/* 70550*/ OPC_CheckChild2Type, MVT::i32, ++/* 70552*/ OPC_CheckChild3Integer, 1, ++/* 70554*/ OPC_CheckChild3Type, MVT::i32, ++/* 70556*/ OPC_CheckChild4Integer, 1, ++/* 70558*/ OPC_CheckChild4Type, MVT::i32, ++/* 70560*/ OPC_MoveChild5, ++/* 70561*/ OPC_CheckInteger, 1, ++/* 70563*/ OPC_CheckType, MVT::i32, ++/* 70565*/ OPC_MoveParent, ++/* 70566*/ OPC_MoveChild6, ++/* 70567*/ OPC_CheckInteger, 1, ++/* 70569*/ OPC_CheckType, MVT::i32, ++/* 70571*/ OPC_MoveParent, ++/* 70572*/ OPC_MoveChild7, ++/* 70573*/ OPC_CheckInteger, 1, ++/* 70575*/ OPC_CheckType, MVT::i32, ++/* 70577*/ OPC_MoveParent, ++/* 70578*/ OPC_MoveChild, 8, ++/* 70580*/ OPC_CheckInteger, 1, ++/* 70582*/ OPC_CheckType, MVT::i32, ++/* 70584*/ OPC_MoveParent, ++/* 70585*/ OPC_MoveChild, 9, ++/* 70587*/ OPC_CheckInteger, 1, ++/* 70589*/ OPC_CheckType, MVT::i32, ++/* 70591*/ OPC_MoveParent, ++/* 70592*/ OPC_MoveChild, 10, ++/* 70594*/ OPC_CheckInteger, 1, ++/* 70596*/ OPC_CheckType, MVT::i32, ++/* 70598*/ OPC_MoveParent, ++/* 70599*/ OPC_MoveChild, 11, ++/* 70601*/ OPC_CheckInteger, 1, ++/* 70603*/ OPC_CheckType, MVT::i32, ++/* 70605*/ OPC_MoveParent, ++/* 70606*/ OPC_MoveChild, 12, ++/* 70608*/ OPC_CheckInteger, 1, ++/* 70610*/ OPC_CheckType, MVT::i32, ++/* 70612*/ OPC_MoveParent, ++/* 70613*/ OPC_MoveChild, 13, ++/* 70615*/ OPC_CheckInteger, 1, ++/* 70617*/ OPC_CheckType, MVT::i32, ++/* 70619*/ OPC_MoveParent, ++/* 70620*/ OPC_MoveChild, 14, ++/* 70622*/ OPC_CheckInteger, 1, ++/* 70624*/ OPC_CheckType, MVT::i32, ++/* 70626*/ OPC_MoveParent, ++/* 70627*/ OPC_MoveChild, 15, ++/* 70629*/ OPC_CheckInteger, 1, ++/* 70631*/ OPC_CheckType, MVT::i32, ++/* 70633*/ OPC_MoveParent, ++/* 70634*/ OPC_MoveChild, 16, ++/* 70636*/ OPC_CheckInteger, 1, ++/* 70638*/ OPC_CheckType, MVT::i32, ++/* 70640*/ OPC_MoveParent, ++/* 70641*/ OPC_MoveChild, 17, ++/* 70643*/ OPC_CheckInteger, 1, ++/* 70645*/ OPC_CheckType, MVT::i32, ++/* 70647*/ OPC_MoveParent, ++/* 70648*/ OPC_MoveChild, 18, ++/* 70650*/ OPC_CheckInteger, 1, ++/* 70652*/ OPC_CheckType, MVT::i32, ++/* 70654*/ OPC_MoveParent, ++/* 70655*/ OPC_MoveChild, 19, ++/* 70657*/ OPC_CheckInteger, 1, ++/* 70659*/ OPC_CheckType, MVT::i32, ++/* 70661*/ OPC_MoveParent, ++/* 70662*/ OPC_MoveChild, 20, ++/* 70664*/ OPC_CheckInteger, 1, ++/* 70666*/ OPC_CheckType, MVT::i32, ++/* 70668*/ OPC_MoveParent, ++/* 70669*/ OPC_MoveChild, 21, ++/* 70671*/ OPC_CheckInteger, 1, ++/* 70673*/ OPC_CheckType, MVT::i32, ++/* 70675*/ OPC_MoveParent, ++/* 70676*/ OPC_MoveChild, 22, ++/* 70678*/ OPC_CheckInteger, 1, ++/* 70680*/ OPC_CheckType, MVT::i32, ++/* 70682*/ OPC_MoveParent, ++/* 70683*/ OPC_MoveChild, 23, ++/* 70685*/ OPC_CheckInteger, 1, ++/* 70687*/ OPC_CheckType, MVT::i32, ++/* 70689*/ OPC_MoveParent, ++/* 70690*/ OPC_MoveChild, 24, ++/* 70692*/ OPC_CheckInteger, 1, ++/* 70694*/ OPC_CheckType, MVT::i32, ++/* 70696*/ OPC_MoveParent, ++/* 70697*/ OPC_MoveChild, 25, ++/* 70699*/ OPC_CheckInteger, 1, ++/* 70701*/ OPC_CheckType, MVT::i32, ++/* 70703*/ OPC_MoveParent, ++/* 70704*/ OPC_MoveChild, 26, ++/* 70706*/ OPC_CheckInteger, 1, ++/* 70708*/ OPC_CheckType, MVT::i32, ++/* 70710*/ OPC_MoveParent, ++/* 70711*/ OPC_MoveChild, 27, ++/* 70713*/ OPC_CheckInteger, 1, ++/* 70715*/ OPC_CheckType, MVT::i32, ++/* 70717*/ OPC_MoveParent, ++/* 70718*/ OPC_MoveChild, 28, ++/* 70720*/ OPC_CheckInteger, 1, ++/* 70722*/ OPC_CheckType, MVT::i32, ++/* 70724*/ OPC_MoveParent, ++/* 70725*/ OPC_MoveChild, 29, ++/* 70727*/ OPC_CheckInteger, 1, ++/* 70729*/ OPC_CheckType, MVT::i32, ++/* 70731*/ OPC_MoveParent, ++/* 70732*/ OPC_MoveChild, 30, ++/* 70734*/ OPC_CheckInteger, 1, ++/* 70736*/ OPC_CheckType, MVT::i32, ++/* 70738*/ OPC_MoveParent, ++/* 70739*/ OPC_MoveChild, 31, ++/* 70741*/ OPC_CheckInteger, 1, ++/* 70743*/ OPC_CheckType, MVT::i32, ++/* 70745*/ OPC_MoveParent, ++/* 70746*/ OPC_MoveParent, ++/* 70747*/ OPC_MoveParent, ++/* 70748*/ OPC_RecordChild1, // #1 = $b ++/* 70749*/ OPC_MoveParent, ++/* 70750*/ OPC_MoveChild1, ++/* 70751*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 70754*/ OPC_CheckChild0Integer, 1, ++/* 70756*/ OPC_CheckChild0Type, MVT::i32, ++/* 70758*/ OPC_CheckChild1Integer, 1, ++/* 70760*/ OPC_CheckChild1Type, MVT::i32, ++/* 70762*/ OPC_CheckChild2Integer, 1, ++/* 70764*/ OPC_CheckChild2Type, MVT::i32, ++/* 70766*/ OPC_CheckChild3Integer, 1, ++/* 70768*/ OPC_CheckChild3Type, MVT::i32, ++/* 70770*/ OPC_CheckChild4Integer, 1, ++/* 70772*/ OPC_CheckChild4Type, MVT::i32, ++/* 70774*/ OPC_MoveChild5, ++/* 70775*/ OPC_CheckInteger, 1, ++/* 70777*/ OPC_CheckType, MVT::i32, ++/* 70779*/ OPC_MoveParent, ++/* 70780*/ OPC_MoveChild6, ++/* 70781*/ OPC_CheckInteger, 1, ++/* 70783*/ OPC_CheckType, MVT::i32, ++/* 70785*/ OPC_MoveParent, ++/* 70786*/ OPC_MoveChild7, ++/* 70787*/ OPC_CheckInteger, 1, ++/* 70789*/ OPC_CheckType, MVT::i32, ++/* 70791*/ OPC_MoveParent, ++/* 70792*/ OPC_MoveChild, 8, ++/* 70794*/ OPC_CheckInteger, 1, ++/* 70796*/ OPC_CheckType, MVT::i32, ++/* 70798*/ OPC_MoveParent, ++/* 70799*/ OPC_MoveChild, 9, ++/* 70801*/ OPC_CheckInteger, 1, ++/* 70803*/ OPC_CheckType, MVT::i32, ++/* 70805*/ OPC_MoveParent, ++/* 70806*/ OPC_MoveChild, 10, ++/* 70808*/ OPC_CheckInteger, 1, ++/* 70810*/ OPC_CheckType, MVT::i32, ++/* 70812*/ OPC_MoveParent, ++/* 70813*/ OPC_MoveChild, 11, ++/* 70815*/ OPC_CheckInteger, 1, ++/* 70817*/ OPC_CheckType, MVT::i32, ++/* 70819*/ OPC_MoveParent, ++/* 70820*/ OPC_MoveChild, 12, ++/* 70822*/ OPC_CheckInteger, 1, ++/* 70824*/ OPC_CheckType, MVT::i32, ++/* 70826*/ OPC_MoveParent, ++/* 70827*/ OPC_MoveChild, 13, ++/* 70829*/ OPC_CheckInteger, 1, ++/* 70831*/ OPC_CheckType, MVT::i32, ++/* 70833*/ OPC_MoveParent, ++/* 70834*/ OPC_MoveChild, 14, ++/* 70836*/ OPC_CheckInteger, 1, ++/* 70838*/ OPC_CheckType, MVT::i32, ++/* 70840*/ OPC_MoveParent, ++/* 70841*/ OPC_MoveChild, 15, ++/* 70843*/ OPC_CheckInteger, 1, ++/* 70845*/ OPC_CheckType, MVT::i32, ++/* 70847*/ OPC_MoveParent, ++/* 70848*/ OPC_MoveChild, 16, ++/* 70850*/ OPC_CheckInteger, 1, ++/* 70852*/ OPC_CheckType, MVT::i32, ++/* 70854*/ OPC_MoveParent, ++/* 70855*/ OPC_MoveChild, 17, ++/* 70857*/ OPC_CheckInteger, 1, ++/* 70859*/ OPC_CheckType, MVT::i32, ++/* 70861*/ OPC_MoveParent, ++/* 70862*/ OPC_MoveChild, 18, ++/* 70864*/ OPC_CheckInteger, 1, ++/* 70866*/ OPC_CheckType, MVT::i32, ++/* 70868*/ OPC_MoveParent, ++/* 70869*/ OPC_MoveChild, 19, ++/* 70871*/ OPC_CheckInteger, 1, ++/* 70873*/ OPC_CheckType, MVT::i32, ++/* 70875*/ OPC_MoveParent, ++/* 70876*/ OPC_MoveChild, 20, ++/* 70878*/ OPC_CheckInteger, 1, ++/* 70880*/ OPC_CheckType, MVT::i32, ++/* 70882*/ OPC_MoveParent, ++/* 70883*/ OPC_MoveChild, 21, ++/* 70885*/ OPC_CheckInteger, 1, ++/* 70887*/ OPC_CheckType, MVT::i32, ++/* 70889*/ OPC_MoveParent, ++/* 70890*/ OPC_MoveChild, 22, ++/* 70892*/ OPC_CheckInteger, 1, ++/* 70894*/ OPC_CheckType, MVT::i32, ++/* 70896*/ OPC_MoveParent, ++/* 70897*/ OPC_MoveChild, 23, ++/* 70899*/ OPC_CheckInteger, 1, ++/* 70901*/ OPC_CheckType, MVT::i32, ++/* 70903*/ OPC_MoveParent, ++/* 70904*/ OPC_MoveChild, 24, ++/* 70906*/ OPC_CheckInteger, 1, ++/* 70908*/ OPC_CheckType, MVT::i32, ++/* 70910*/ OPC_MoveParent, ++/* 70911*/ OPC_MoveChild, 25, ++/* 70913*/ OPC_CheckInteger, 1, ++/* 70915*/ OPC_CheckType, MVT::i32, ++/* 70917*/ OPC_MoveParent, ++/* 70918*/ OPC_MoveChild, 26, ++/* 70920*/ OPC_CheckInteger, 1, ++/* 70922*/ OPC_CheckType, MVT::i32, ++/* 70924*/ OPC_MoveParent, ++/* 70925*/ OPC_MoveChild, 27, ++/* 70927*/ OPC_CheckInteger, 1, ++/* 70929*/ OPC_CheckType, MVT::i32, ++/* 70931*/ OPC_MoveParent, ++/* 70932*/ OPC_MoveChild, 28, ++/* 70934*/ OPC_CheckInteger, 1, ++/* 70936*/ OPC_CheckType, MVT::i32, ++/* 70938*/ OPC_MoveParent, ++/* 70939*/ OPC_MoveChild, 29, ++/* 70941*/ OPC_CheckInteger, 1, ++/* 70943*/ OPC_CheckType, MVT::i32, ++/* 70945*/ OPC_MoveParent, ++/* 70946*/ OPC_MoveChild, 30, ++/* 70948*/ OPC_CheckInteger, 1, ++/* 70950*/ OPC_CheckType, MVT::i32, ++/* 70952*/ OPC_MoveParent, ++/* 70953*/ OPC_MoveChild, 31, ++/* 70955*/ OPC_CheckInteger, 1, ++/* 70957*/ OPC_CheckType, MVT::i32, ++/* 70959*/ OPC_MoveParent, ++/* 70960*/ OPC_CheckType, MVT::v32i8, ++/* 70962*/ OPC_MoveParent, ++/* 70963*/ OPC_CheckType, MVT::v32i8, ++/* 70965*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 70967*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_BU), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 335 ++ // Dst: (XVAVGR_BU:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/* 70975*/ /*Scope*/ 55|128,3/*439*/, /*->71416*/ ++/* 70977*/ OPC_RecordChild1, // #1 = $b ++/* 70978*/ OPC_MoveParent, ++/* 70979*/ OPC_MoveChild1, ++/* 70980*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 70983*/ OPC_CheckChild0Integer, 1, ++/* 70985*/ OPC_CheckChild0Type, MVT::i32, ++/* 70987*/ OPC_CheckChild1Integer, 1, ++/* 70989*/ OPC_CheckChild1Type, MVT::i32, ++/* 70991*/ OPC_CheckChild2Integer, 1, ++/* 70993*/ OPC_CheckChild2Type, MVT::i32, ++/* 70995*/ OPC_CheckChild3Integer, 1, ++/* 70997*/ OPC_CheckChild3Type, MVT::i32, ++/* 70999*/ OPC_CheckChild4Integer, 1, ++/* 71001*/ OPC_CheckChild4Type, MVT::i32, ++/* 71003*/ OPC_MoveChild5, ++/* 71004*/ OPC_CheckInteger, 1, ++/* 71006*/ OPC_CheckType, MVT::i32, ++/* 71008*/ OPC_MoveParent, ++/* 71009*/ OPC_MoveChild6, ++/* 71010*/ OPC_CheckInteger, 1, ++/* 71012*/ OPC_CheckType, MVT::i32, ++/* 71014*/ OPC_MoveParent, ++/* 71015*/ OPC_MoveChild7, ++/* 71016*/ OPC_CheckInteger, 1, ++/* 71018*/ OPC_CheckType, MVT::i32, ++/* 71020*/ OPC_MoveParent, ++/* 71021*/ OPC_MoveChild, 8, ++/* 71023*/ OPC_CheckInteger, 1, ++/* 71025*/ OPC_CheckType, MVT::i32, ++/* 71027*/ OPC_MoveParent, ++/* 71028*/ OPC_MoveChild, 9, ++/* 71030*/ OPC_CheckInteger, 1, ++/* 71032*/ OPC_CheckType, MVT::i32, ++/* 71034*/ OPC_MoveParent, ++/* 71035*/ OPC_MoveChild, 10, ++/* 71037*/ OPC_CheckInteger, 1, ++/* 71039*/ OPC_CheckType, MVT::i32, ++/* 71041*/ OPC_MoveParent, ++/* 71042*/ OPC_MoveChild, 11, ++/* 71044*/ OPC_CheckInteger, 1, ++/* 71046*/ OPC_CheckType, MVT::i32, ++/* 71048*/ OPC_MoveParent, ++/* 71049*/ OPC_MoveChild, 12, ++/* 71051*/ OPC_CheckInteger, 1, ++/* 71053*/ OPC_CheckType, MVT::i32, ++/* 71055*/ OPC_MoveParent, ++/* 71056*/ OPC_MoveChild, 13, ++/* 71058*/ OPC_CheckInteger, 1, ++/* 71060*/ OPC_CheckType, MVT::i32, ++/* 71062*/ OPC_MoveParent, ++/* 71063*/ OPC_MoveChild, 14, ++/* 71065*/ OPC_CheckInteger, 1, ++/* 71067*/ OPC_CheckType, MVT::i32, ++/* 71069*/ OPC_MoveParent, ++/* 71070*/ OPC_MoveChild, 15, ++/* 71072*/ OPC_CheckInteger, 1, ++/* 71074*/ OPC_CheckType, MVT::i32, ++/* 71076*/ OPC_MoveParent, ++/* 71077*/ OPC_MoveChild, 16, ++/* 71079*/ OPC_CheckInteger, 1, ++/* 71081*/ OPC_CheckType, MVT::i32, ++/* 71083*/ OPC_MoveParent, ++/* 71084*/ OPC_MoveChild, 17, ++/* 71086*/ OPC_CheckInteger, 1, ++/* 71088*/ OPC_CheckType, MVT::i32, ++/* 71090*/ OPC_MoveParent, ++/* 71091*/ OPC_MoveChild, 18, ++/* 71093*/ OPC_CheckInteger, 1, ++/* 71095*/ OPC_CheckType, MVT::i32, ++/* 71097*/ OPC_MoveParent, ++/* 71098*/ OPC_MoveChild, 19, ++/* 71100*/ OPC_CheckInteger, 1, ++/* 71102*/ OPC_CheckType, MVT::i32, ++/* 71104*/ OPC_MoveParent, ++/* 71105*/ OPC_MoveChild, 20, ++/* 71107*/ OPC_CheckInteger, 1, ++/* 71109*/ OPC_CheckType, MVT::i32, ++/* 71111*/ OPC_MoveParent, ++/* 71112*/ OPC_MoveChild, 21, ++/* 71114*/ OPC_CheckInteger, 1, ++/* 71116*/ OPC_CheckType, MVT::i32, ++/* 71118*/ OPC_MoveParent, ++/* 71119*/ OPC_MoveChild, 22, ++/* 71121*/ OPC_CheckInteger, 1, ++/* 71123*/ OPC_CheckType, MVT::i32, ++/* 71125*/ OPC_MoveParent, ++/* 71126*/ OPC_MoveChild, 23, ++/* 71128*/ OPC_CheckInteger, 1, ++/* 71130*/ OPC_CheckType, MVT::i32, ++/* 71132*/ OPC_MoveParent, ++/* 71133*/ OPC_MoveChild, 24, ++/* 71135*/ OPC_CheckInteger, 1, ++/* 71137*/ OPC_CheckType, MVT::i32, ++/* 71139*/ OPC_MoveParent, ++/* 71140*/ OPC_MoveChild, 25, ++/* 71142*/ OPC_CheckInteger, 1, ++/* 71144*/ OPC_CheckType, MVT::i32, ++/* 71146*/ OPC_MoveParent, ++/* 71147*/ OPC_MoveChild, 26, ++/* 71149*/ OPC_CheckInteger, 1, ++/* 71151*/ OPC_CheckType, MVT::i32, ++/* 71153*/ OPC_MoveParent, ++/* 71154*/ OPC_MoveChild, 27, ++/* 71156*/ OPC_CheckInteger, 1, ++/* 71158*/ OPC_CheckType, MVT::i32, ++/* 71160*/ OPC_MoveParent, ++/* 71161*/ OPC_MoveChild, 28, ++/* 71163*/ OPC_CheckInteger, 1, ++/* 71165*/ OPC_CheckType, MVT::i32, ++/* 71167*/ OPC_MoveParent, ++/* 71168*/ OPC_MoveChild, 29, ++/* 71170*/ OPC_CheckInteger, 1, ++/* 71172*/ OPC_CheckType, MVT::i32, ++/* 71174*/ OPC_MoveParent, ++/* 71175*/ OPC_MoveChild, 30, ++/* 71177*/ OPC_CheckInteger, 1, ++/* 71179*/ OPC_CheckType, MVT::i32, ++/* 71181*/ OPC_MoveParent, ++/* 71182*/ OPC_MoveChild, 31, ++/* 71184*/ OPC_CheckInteger, 1, ++/* 71186*/ OPC_CheckType, MVT::i32, ++/* 71188*/ OPC_MoveParent, ++/* 71189*/ OPC_MoveParent, ++/* 71190*/ OPC_MoveParent, ++/* 71191*/ OPC_MoveChild1, ++/* 71192*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 71195*/ OPC_CheckChild0Integer, 1, ++/* 71197*/ OPC_CheckChild0Type, MVT::i32, ++/* 71199*/ OPC_CheckChild1Integer, 1, ++/* 71201*/ OPC_CheckChild1Type, MVT::i32, ++/* 71203*/ OPC_CheckChild2Integer, 1, ++/* 71205*/ OPC_CheckChild2Type, MVT::i32, ++/* 71207*/ OPC_CheckChild3Integer, 1, ++/* 71209*/ OPC_CheckChild3Type, MVT::i32, ++/* 71211*/ OPC_CheckChild4Integer, 1, ++/* 71213*/ OPC_CheckChild4Type, MVT::i32, ++/* 71215*/ OPC_MoveChild5, ++/* 71216*/ OPC_CheckInteger, 1, ++/* 71218*/ OPC_CheckType, MVT::i32, ++/* 71220*/ OPC_MoveParent, ++/* 71221*/ OPC_MoveChild6, ++/* 71222*/ OPC_CheckInteger, 1, ++/* 71224*/ OPC_CheckType, MVT::i32, ++/* 71226*/ OPC_MoveParent, ++/* 71227*/ OPC_MoveChild7, ++/* 71228*/ OPC_CheckInteger, 1, ++/* 71230*/ OPC_CheckType, MVT::i32, ++/* 71232*/ OPC_MoveParent, ++/* 71233*/ OPC_MoveChild, 8, ++/* 71235*/ OPC_CheckInteger, 1, ++/* 71237*/ OPC_CheckType, MVT::i32, ++/* 71239*/ OPC_MoveParent, ++/* 71240*/ OPC_MoveChild, 9, ++/* 71242*/ OPC_CheckInteger, 1, ++/* 71244*/ OPC_CheckType, MVT::i32, ++/* 71246*/ OPC_MoveParent, ++/* 71247*/ OPC_MoveChild, 10, ++/* 71249*/ OPC_CheckInteger, 1, ++/* 71251*/ OPC_CheckType, MVT::i32, ++/* 71253*/ OPC_MoveParent, ++/* 71254*/ OPC_MoveChild, 11, ++/* 71256*/ OPC_CheckInteger, 1, ++/* 71258*/ OPC_CheckType, MVT::i32, ++/* 71260*/ OPC_MoveParent, ++/* 71261*/ OPC_MoveChild, 12, ++/* 71263*/ OPC_CheckInteger, 1, ++/* 71265*/ OPC_CheckType, MVT::i32, ++/* 71267*/ OPC_MoveParent, ++/* 71268*/ OPC_MoveChild, 13, ++/* 71270*/ OPC_CheckInteger, 1, ++/* 71272*/ OPC_CheckType, MVT::i32, ++/* 71274*/ OPC_MoveParent, ++/* 71275*/ OPC_MoveChild, 14, ++/* 71277*/ OPC_CheckInteger, 1, ++/* 71279*/ OPC_CheckType, MVT::i32, ++/* 71281*/ OPC_MoveParent, ++/* 71282*/ OPC_MoveChild, 15, ++/* 71284*/ OPC_CheckInteger, 1, ++/* 71286*/ OPC_CheckType, MVT::i32, ++/* 71288*/ OPC_MoveParent, ++/* 71289*/ OPC_MoveChild, 16, ++/* 71291*/ OPC_CheckInteger, 1, ++/* 71293*/ OPC_CheckType, MVT::i32, ++/* 71295*/ OPC_MoveParent, ++/* 71296*/ OPC_MoveChild, 17, ++/* 71298*/ OPC_CheckInteger, 1, ++/* 71300*/ OPC_CheckType, MVT::i32, ++/* 71302*/ OPC_MoveParent, ++/* 71303*/ OPC_MoveChild, 18, ++/* 71305*/ OPC_CheckInteger, 1, ++/* 71307*/ OPC_CheckType, MVT::i32, ++/* 71309*/ OPC_MoveParent, ++/* 71310*/ OPC_MoveChild, 19, ++/* 71312*/ OPC_CheckInteger, 1, ++/* 71314*/ OPC_CheckType, MVT::i32, ++/* 71316*/ OPC_MoveParent, ++/* 71317*/ OPC_MoveChild, 20, ++/* 71319*/ OPC_CheckInteger, 1, ++/* 71321*/ OPC_CheckType, MVT::i32, ++/* 71323*/ OPC_MoveParent, ++/* 71324*/ OPC_MoveChild, 21, ++/* 71326*/ OPC_CheckInteger, 1, ++/* 71328*/ OPC_CheckType, MVT::i32, ++/* 71330*/ OPC_MoveParent, ++/* 71331*/ OPC_MoveChild, 22, ++/* 71333*/ OPC_CheckInteger, 1, ++/* 71335*/ OPC_CheckType, MVT::i32, ++/* 71337*/ OPC_MoveParent, ++/* 71338*/ OPC_MoveChild, 23, ++/* 71340*/ OPC_CheckInteger, 1, ++/* 71342*/ OPC_CheckType, MVT::i32, ++/* 71344*/ OPC_MoveParent, ++/* 71345*/ OPC_MoveChild, 24, ++/* 71347*/ OPC_CheckInteger, 1, ++/* 71349*/ OPC_CheckType, MVT::i32, ++/* 71351*/ OPC_MoveParent, ++/* 71352*/ OPC_MoveChild, 25, ++/* 71354*/ OPC_CheckInteger, 1, ++/* 71356*/ OPC_CheckType, MVT::i32, ++/* 71358*/ OPC_MoveParent, ++/* 71359*/ OPC_MoveChild, 26, ++/* 71361*/ OPC_CheckInteger, 1, ++/* 71363*/ OPC_CheckType, MVT::i32, ++/* 71365*/ OPC_MoveParent, ++/* 71366*/ OPC_MoveChild, 27, ++/* 71368*/ OPC_CheckInteger, 1, ++/* 71370*/ OPC_CheckType, MVT::i32, ++/* 71372*/ OPC_MoveParent, ++/* 71373*/ OPC_MoveChild, 28, ++/* 71375*/ OPC_CheckInteger, 1, ++/* 71377*/ OPC_CheckType, MVT::i32, ++/* 71379*/ OPC_MoveParent, ++/* 71380*/ OPC_MoveChild, 29, ++/* 71382*/ OPC_CheckInteger, 1, ++/* 71384*/ OPC_CheckType, MVT::i32, ++/* 71386*/ OPC_MoveParent, ++/* 71387*/ OPC_MoveChild, 30, ++/* 71389*/ OPC_CheckInteger, 1, ++/* 71391*/ OPC_CheckType, MVT::i32, ++/* 71393*/ OPC_MoveParent, ++/* 71394*/ OPC_MoveChild, 31, ++/* 71396*/ OPC_CheckInteger, 1, ++/* 71398*/ OPC_CheckType, MVT::i32, ++/* 71400*/ OPC_MoveParent, ++/* 71401*/ OPC_CheckType, MVT::v32i8, ++/* 71403*/ OPC_MoveParent, ++/* 71404*/ OPC_CheckType, MVT::v32i8, ++/* 71406*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 71408*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_BU), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 335 ++ // Dst: (XVAVGR_BU:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/* 71416*/ 0, /*End of Scope*/ ++/* 71417*/ 0, /*End of Scope*/ ++/* 71418*/ 0, // EndSwitchOpcode ++/* 71419*/ /*Scope*/ 121|128,6/*889*/, /*->72310*/ ++/* 71421*/ OPC_RecordChild0, // #0 = $b ++/* 71422*/ OPC_MoveChild1, ++/* 71423*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/* 71426*/ OPC_Scope, 55|128,3/*439*/, /*->71868*/ // 2 children in Scope ++/* 71429*/ OPC_MoveChild0, ++/* 71430*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 71433*/ OPC_CheckChild0Integer, 1, ++/* 71435*/ OPC_CheckChild0Type, MVT::i32, ++/* 71437*/ OPC_CheckChild1Integer, 1, ++/* 71439*/ OPC_CheckChild1Type, MVT::i32, ++/* 71441*/ OPC_CheckChild2Integer, 1, ++/* 71443*/ OPC_CheckChild2Type, MVT::i32, ++/* 71445*/ OPC_CheckChild3Integer, 1, ++/* 71447*/ OPC_CheckChild3Type, MVT::i32, ++/* 71449*/ OPC_CheckChild4Integer, 1, ++/* 71451*/ OPC_CheckChild4Type, MVT::i32, ++/* 71453*/ OPC_MoveChild5, ++/* 71454*/ OPC_CheckInteger, 1, ++/* 71456*/ OPC_CheckType, MVT::i32, ++/* 71458*/ OPC_MoveParent, ++/* 71459*/ OPC_MoveChild6, ++/* 71460*/ OPC_CheckInteger, 1, ++/* 71462*/ OPC_CheckType, MVT::i32, ++/* 71464*/ OPC_MoveParent, ++/* 71465*/ OPC_MoveChild7, ++/* 71466*/ OPC_CheckInteger, 1, ++/* 71468*/ OPC_CheckType, MVT::i32, ++/* 71470*/ OPC_MoveParent, ++/* 71471*/ OPC_MoveChild, 8, ++/* 71473*/ OPC_CheckInteger, 1, ++/* 71475*/ OPC_CheckType, MVT::i32, ++/* 71477*/ OPC_MoveParent, ++/* 71478*/ OPC_MoveChild, 9, ++/* 71480*/ OPC_CheckInteger, 1, ++/* 71482*/ OPC_CheckType, MVT::i32, ++/* 71484*/ OPC_MoveParent, ++/* 71485*/ OPC_MoveChild, 10, ++/* 71487*/ OPC_CheckInteger, 1, ++/* 71489*/ OPC_CheckType, MVT::i32, ++/* 71491*/ OPC_MoveParent, ++/* 71492*/ OPC_MoveChild, 11, ++/* 71494*/ OPC_CheckInteger, 1, ++/* 71496*/ OPC_CheckType, MVT::i32, ++/* 71498*/ OPC_MoveParent, ++/* 71499*/ OPC_MoveChild, 12, ++/* 71501*/ OPC_CheckInteger, 1, ++/* 71503*/ OPC_CheckType, MVT::i32, ++/* 71505*/ OPC_MoveParent, ++/* 71506*/ OPC_MoveChild, 13, ++/* 71508*/ OPC_CheckInteger, 1, ++/* 71510*/ OPC_CheckType, MVT::i32, ++/* 71512*/ OPC_MoveParent, ++/* 71513*/ OPC_MoveChild, 14, ++/* 71515*/ OPC_CheckInteger, 1, ++/* 71517*/ OPC_CheckType, MVT::i32, ++/* 71519*/ OPC_MoveParent, ++/* 71520*/ OPC_MoveChild, 15, ++/* 71522*/ OPC_CheckInteger, 1, ++/* 71524*/ OPC_CheckType, MVT::i32, ++/* 71526*/ OPC_MoveParent, ++/* 71527*/ OPC_MoveChild, 16, ++/* 71529*/ OPC_CheckInteger, 1, ++/* 71531*/ OPC_CheckType, MVT::i32, ++/* 71533*/ OPC_MoveParent, ++/* 71534*/ OPC_MoveChild, 17, ++/* 71536*/ OPC_CheckInteger, 1, ++/* 71538*/ OPC_CheckType, MVT::i32, ++/* 71540*/ OPC_MoveParent, ++/* 71541*/ OPC_MoveChild, 18, ++/* 71543*/ OPC_CheckInteger, 1, ++/* 71545*/ OPC_CheckType, MVT::i32, ++/* 71547*/ OPC_MoveParent, ++/* 71548*/ OPC_MoveChild, 19, ++/* 71550*/ OPC_CheckInteger, 1, ++/* 71552*/ OPC_CheckType, MVT::i32, ++/* 71554*/ OPC_MoveParent, ++/* 71555*/ OPC_MoveChild, 20, ++/* 71557*/ OPC_CheckInteger, 1, ++/* 71559*/ OPC_CheckType, MVT::i32, ++/* 71561*/ OPC_MoveParent, ++/* 71562*/ OPC_MoveChild, 21, ++/* 71564*/ OPC_CheckInteger, 1, ++/* 71566*/ OPC_CheckType, MVT::i32, ++/* 71568*/ OPC_MoveParent, ++/* 71569*/ OPC_MoveChild, 22, ++/* 71571*/ OPC_CheckInteger, 1, ++/* 71573*/ OPC_CheckType, MVT::i32, ++/* 71575*/ OPC_MoveParent, ++/* 71576*/ OPC_MoveChild, 23, ++/* 71578*/ OPC_CheckInteger, 1, ++/* 71580*/ OPC_CheckType, MVT::i32, ++/* 71582*/ OPC_MoveParent, ++/* 71583*/ OPC_MoveChild, 24, ++/* 71585*/ OPC_CheckInteger, 1, ++/* 71587*/ OPC_CheckType, MVT::i32, ++/* 71589*/ OPC_MoveParent, ++/* 71590*/ OPC_MoveChild, 25, ++/* 71592*/ OPC_CheckInteger, 1, ++/* 71594*/ OPC_CheckType, MVT::i32, ++/* 71596*/ OPC_MoveParent, ++/* 71597*/ OPC_MoveChild, 26, ++/* 71599*/ OPC_CheckInteger, 1, ++/* 71601*/ OPC_CheckType, MVT::i32, ++/* 71603*/ OPC_MoveParent, ++/* 71604*/ OPC_MoveChild, 27, ++/* 71606*/ OPC_CheckInteger, 1, ++/* 71608*/ OPC_CheckType, MVT::i32, ++/* 71610*/ OPC_MoveParent, ++/* 71611*/ OPC_MoveChild, 28, ++/* 71613*/ OPC_CheckInteger, 1, ++/* 71615*/ OPC_CheckType, MVT::i32, ++/* 71617*/ OPC_MoveParent, ++/* 71618*/ OPC_MoveChild, 29, ++/* 71620*/ OPC_CheckInteger, 1, ++/* 71622*/ OPC_CheckType, MVT::i32, ++/* 71624*/ OPC_MoveParent, ++/* 71625*/ OPC_MoveChild, 30, ++/* 71627*/ OPC_CheckInteger, 1, ++/* 71629*/ OPC_CheckType, MVT::i32, ++/* 71631*/ OPC_MoveParent, ++/* 71632*/ OPC_MoveChild, 31, ++/* 71634*/ OPC_CheckInteger, 1, ++/* 71636*/ OPC_CheckType, MVT::i32, ++/* 71638*/ OPC_MoveParent, ++/* 71639*/ OPC_MoveParent, ++/* 71640*/ OPC_RecordChild1, // #1 = $a ++/* 71641*/ OPC_MoveParent, ++/* 71642*/ OPC_MoveParent, ++/* 71643*/ OPC_MoveChild1, ++/* 71644*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 71647*/ OPC_CheckChild0Integer, 1, ++/* 71649*/ OPC_CheckChild0Type, MVT::i32, ++/* 71651*/ OPC_CheckChild1Integer, 1, ++/* 71653*/ OPC_CheckChild1Type, MVT::i32, ++/* 71655*/ OPC_CheckChild2Integer, 1, ++/* 71657*/ OPC_CheckChild2Type, MVT::i32, ++/* 71659*/ OPC_CheckChild3Integer, 1, ++/* 71661*/ OPC_CheckChild3Type, MVT::i32, ++/* 71663*/ OPC_CheckChild4Integer, 1, ++/* 71665*/ OPC_CheckChild4Type, MVT::i32, ++/* 71667*/ OPC_MoveChild5, ++/* 71668*/ OPC_CheckInteger, 1, ++/* 71670*/ OPC_CheckType, MVT::i32, ++/* 71672*/ OPC_MoveParent, ++/* 71673*/ OPC_MoveChild6, ++/* 71674*/ OPC_CheckInteger, 1, ++/* 71676*/ OPC_CheckType, MVT::i32, ++/* 71678*/ OPC_MoveParent, ++/* 71679*/ OPC_MoveChild7, ++/* 71680*/ OPC_CheckInteger, 1, ++/* 71682*/ OPC_CheckType, MVT::i32, ++/* 71684*/ OPC_MoveParent, ++/* 71685*/ OPC_MoveChild, 8, ++/* 71687*/ OPC_CheckInteger, 1, ++/* 71689*/ OPC_CheckType, MVT::i32, ++/* 71691*/ OPC_MoveParent, ++/* 71692*/ OPC_MoveChild, 9, ++/* 71694*/ OPC_CheckInteger, 1, ++/* 71696*/ OPC_CheckType, MVT::i32, ++/* 71698*/ OPC_MoveParent, ++/* 71699*/ OPC_MoveChild, 10, ++/* 71701*/ OPC_CheckInteger, 1, ++/* 71703*/ OPC_CheckType, MVT::i32, ++/* 71705*/ OPC_MoveParent, ++/* 71706*/ OPC_MoveChild, 11, ++/* 71708*/ OPC_CheckInteger, 1, ++/* 71710*/ OPC_CheckType, MVT::i32, ++/* 71712*/ OPC_MoveParent, ++/* 71713*/ OPC_MoveChild, 12, ++/* 71715*/ OPC_CheckInteger, 1, ++/* 71717*/ OPC_CheckType, MVT::i32, ++/* 71719*/ OPC_MoveParent, ++/* 71720*/ OPC_MoveChild, 13, ++/* 71722*/ OPC_CheckInteger, 1, ++/* 71724*/ OPC_CheckType, MVT::i32, ++/* 71726*/ OPC_MoveParent, ++/* 71727*/ OPC_MoveChild, 14, ++/* 71729*/ OPC_CheckInteger, 1, ++/* 71731*/ OPC_CheckType, MVT::i32, ++/* 71733*/ OPC_MoveParent, ++/* 71734*/ OPC_MoveChild, 15, ++/* 71736*/ OPC_CheckInteger, 1, ++/* 71738*/ OPC_CheckType, MVT::i32, ++/* 71740*/ OPC_MoveParent, ++/* 71741*/ OPC_MoveChild, 16, ++/* 71743*/ OPC_CheckInteger, 1, ++/* 71745*/ OPC_CheckType, MVT::i32, ++/* 71747*/ OPC_MoveParent, ++/* 71748*/ OPC_MoveChild, 17, ++/* 71750*/ OPC_CheckInteger, 1, ++/* 71752*/ OPC_CheckType, MVT::i32, ++/* 71754*/ OPC_MoveParent, ++/* 71755*/ OPC_MoveChild, 18, ++/* 71757*/ OPC_CheckInteger, 1, ++/* 71759*/ OPC_CheckType, MVT::i32, ++/* 71761*/ OPC_MoveParent, ++/* 71762*/ OPC_MoveChild, 19, ++/* 71764*/ OPC_CheckInteger, 1, ++/* 71766*/ OPC_CheckType, MVT::i32, ++/* 71768*/ OPC_MoveParent, ++/* 71769*/ OPC_MoveChild, 20, ++/* 71771*/ OPC_CheckInteger, 1, ++/* 71773*/ OPC_CheckType, MVT::i32, ++/* 71775*/ OPC_MoveParent, ++/* 71776*/ OPC_MoveChild, 21, ++/* 71778*/ OPC_CheckInteger, 1, ++/* 71780*/ OPC_CheckType, MVT::i32, ++/* 71782*/ OPC_MoveParent, ++/* 71783*/ OPC_MoveChild, 22, ++/* 71785*/ OPC_CheckInteger, 1, ++/* 71787*/ OPC_CheckType, MVT::i32, ++/* 71789*/ OPC_MoveParent, ++/* 71790*/ OPC_MoveChild, 23, ++/* 71792*/ OPC_CheckInteger, 1, ++/* 71794*/ OPC_CheckType, MVT::i32, ++/* 71796*/ OPC_MoveParent, ++/* 71797*/ OPC_MoveChild, 24, ++/* 71799*/ OPC_CheckInteger, 1, ++/* 71801*/ OPC_CheckType, MVT::i32, ++/* 71803*/ OPC_MoveParent, ++/* 71804*/ OPC_MoveChild, 25, ++/* 71806*/ OPC_CheckInteger, 1, ++/* 71808*/ OPC_CheckType, MVT::i32, ++/* 71810*/ OPC_MoveParent, ++/* 71811*/ OPC_MoveChild, 26, ++/* 71813*/ OPC_CheckInteger, 1, ++/* 71815*/ OPC_CheckType, MVT::i32, ++/* 71817*/ OPC_MoveParent, ++/* 71818*/ OPC_MoveChild, 27, ++/* 71820*/ OPC_CheckInteger, 1, ++/* 71822*/ OPC_CheckType, MVT::i32, ++/* 71824*/ OPC_MoveParent, ++/* 71825*/ OPC_MoveChild, 28, ++/* 71827*/ OPC_CheckInteger, 1, ++/* 71829*/ OPC_CheckType, MVT::i32, ++/* 71831*/ OPC_MoveParent, ++/* 71832*/ OPC_MoveChild, 29, ++/* 71834*/ OPC_CheckInteger, 1, ++/* 71836*/ OPC_CheckType, MVT::i32, ++/* 71838*/ OPC_MoveParent, ++/* 71839*/ OPC_MoveChild, 30, ++/* 71841*/ OPC_CheckInteger, 1, ++/* 71843*/ OPC_CheckType, MVT::i32, ++/* 71845*/ OPC_MoveParent, ++/* 71846*/ OPC_MoveChild, 31, ++/* 71848*/ OPC_CheckInteger, 1, ++/* 71850*/ OPC_CheckType, MVT::i32, ++/* 71852*/ OPC_MoveParent, ++/* 71853*/ OPC_CheckType, MVT::v32i8, ++/* 71855*/ OPC_MoveParent, ++/* 71856*/ OPC_CheckType, MVT::v32i8, ++/* 71858*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 71860*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_BU), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 335 ++ // Dst: (XVAVGR_BU:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/* 71868*/ /*Scope*/ 55|128,3/*439*/, /*->72309*/ ++/* 71870*/ OPC_RecordChild0, // #1 = $a ++/* 71871*/ OPC_MoveChild1, ++/* 71872*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 71875*/ OPC_CheckChild0Integer, 1, ++/* 71877*/ OPC_CheckChild0Type, MVT::i32, ++/* 71879*/ OPC_CheckChild1Integer, 1, ++/* 71881*/ OPC_CheckChild1Type, MVT::i32, ++/* 71883*/ OPC_CheckChild2Integer, 1, ++/* 71885*/ OPC_CheckChild2Type, MVT::i32, ++/* 71887*/ OPC_CheckChild3Integer, 1, ++/* 71889*/ OPC_CheckChild3Type, MVT::i32, ++/* 71891*/ OPC_CheckChild4Integer, 1, ++/* 71893*/ OPC_CheckChild4Type, MVT::i32, ++/* 71895*/ OPC_MoveChild5, ++/* 71896*/ OPC_CheckInteger, 1, ++/* 71898*/ OPC_CheckType, MVT::i32, ++/* 71900*/ OPC_MoveParent, ++/* 71901*/ OPC_MoveChild6, ++/* 71902*/ OPC_CheckInteger, 1, ++/* 71904*/ OPC_CheckType, MVT::i32, ++/* 71906*/ OPC_MoveParent, ++/* 71907*/ OPC_MoveChild7, ++/* 71908*/ OPC_CheckInteger, 1, ++/* 71910*/ OPC_CheckType, MVT::i32, ++/* 71912*/ OPC_MoveParent, ++/* 71913*/ OPC_MoveChild, 8, ++/* 71915*/ OPC_CheckInteger, 1, ++/* 71917*/ OPC_CheckType, MVT::i32, ++/* 71919*/ OPC_MoveParent, ++/* 71920*/ OPC_MoveChild, 9, ++/* 71922*/ OPC_CheckInteger, 1, ++/* 71924*/ OPC_CheckType, MVT::i32, ++/* 71926*/ OPC_MoveParent, ++/* 71927*/ OPC_MoveChild, 10, ++/* 71929*/ OPC_CheckInteger, 1, ++/* 71931*/ OPC_CheckType, MVT::i32, ++/* 71933*/ OPC_MoveParent, ++/* 71934*/ OPC_MoveChild, 11, ++/* 71936*/ OPC_CheckInteger, 1, ++/* 71938*/ OPC_CheckType, MVT::i32, ++/* 71940*/ OPC_MoveParent, ++/* 71941*/ OPC_MoveChild, 12, ++/* 71943*/ OPC_CheckInteger, 1, ++/* 71945*/ OPC_CheckType, MVT::i32, ++/* 71947*/ OPC_MoveParent, ++/* 71948*/ OPC_MoveChild, 13, ++/* 71950*/ OPC_CheckInteger, 1, ++/* 71952*/ OPC_CheckType, MVT::i32, ++/* 71954*/ OPC_MoveParent, ++/* 71955*/ OPC_MoveChild, 14, ++/* 71957*/ OPC_CheckInteger, 1, ++/* 71959*/ OPC_CheckType, MVT::i32, ++/* 71961*/ OPC_MoveParent, ++/* 71962*/ OPC_MoveChild, 15, ++/* 71964*/ OPC_CheckInteger, 1, ++/* 71966*/ OPC_CheckType, MVT::i32, ++/* 71968*/ OPC_MoveParent, ++/* 71969*/ OPC_MoveChild, 16, ++/* 71971*/ OPC_CheckInteger, 1, ++/* 71973*/ OPC_CheckType, MVT::i32, ++/* 71975*/ OPC_MoveParent, ++/* 71976*/ OPC_MoveChild, 17, ++/* 71978*/ OPC_CheckInteger, 1, ++/* 71980*/ OPC_CheckType, MVT::i32, ++/* 71982*/ OPC_MoveParent, ++/* 71983*/ OPC_MoveChild, 18, ++/* 71985*/ OPC_CheckInteger, 1, ++/* 71987*/ OPC_CheckType, MVT::i32, ++/* 71989*/ OPC_MoveParent, ++/* 71990*/ OPC_MoveChild, 19, ++/* 71992*/ OPC_CheckInteger, 1, ++/* 71994*/ OPC_CheckType, MVT::i32, ++/* 71996*/ OPC_MoveParent, ++/* 71997*/ OPC_MoveChild, 20, ++/* 71999*/ OPC_CheckInteger, 1, ++/* 72001*/ OPC_CheckType, MVT::i32, ++/* 72003*/ OPC_MoveParent, ++/* 72004*/ OPC_MoveChild, 21, ++/* 72006*/ OPC_CheckInteger, 1, ++/* 72008*/ OPC_CheckType, MVT::i32, ++/* 72010*/ OPC_MoveParent, ++/* 72011*/ OPC_MoveChild, 22, ++/* 72013*/ OPC_CheckInteger, 1, ++/* 72015*/ OPC_CheckType, MVT::i32, ++/* 72017*/ OPC_MoveParent, ++/* 72018*/ OPC_MoveChild, 23, ++/* 72020*/ OPC_CheckInteger, 1, ++/* 72022*/ OPC_CheckType, MVT::i32, ++/* 72024*/ OPC_MoveParent, ++/* 72025*/ OPC_MoveChild, 24, ++/* 72027*/ OPC_CheckInteger, 1, ++/* 72029*/ OPC_CheckType, MVT::i32, ++/* 72031*/ OPC_MoveParent, ++/* 72032*/ OPC_MoveChild, 25, ++/* 72034*/ OPC_CheckInteger, 1, ++/* 72036*/ OPC_CheckType, MVT::i32, ++/* 72038*/ OPC_MoveParent, ++/* 72039*/ OPC_MoveChild, 26, ++/* 72041*/ OPC_CheckInteger, 1, ++/* 72043*/ OPC_CheckType, MVT::i32, ++/* 72045*/ OPC_MoveParent, ++/* 72046*/ OPC_MoveChild, 27, ++/* 72048*/ OPC_CheckInteger, 1, ++/* 72050*/ OPC_CheckType, MVT::i32, ++/* 72052*/ OPC_MoveParent, ++/* 72053*/ OPC_MoveChild, 28, ++/* 72055*/ OPC_CheckInteger, 1, ++/* 72057*/ OPC_CheckType, MVT::i32, ++/* 72059*/ OPC_MoveParent, ++/* 72060*/ OPC_MoveChild, 29, ++/* 72062*/ OPC_CheckInteger, 1, ++/* 72064*/ OPC_CheckType, MVT::i32, ++/* 72066*/ OPC_MoveParent, ++/* 72067*/ OPC_MoveChild, 30, ++/* 72069*/ OPC_CheckInteger, 1, ++/* 72071*/ OPC_CheckType, MVT::i32, ++/* 72073*/ OPC_MoveParent, ++/* 72074*/ OPC_MoveChild, 31, ++/* 72076*/ OPC_CheckInteger, 1, ++/* 72078*/ OPC_CheckType, MVT::i32, ++/* 72080*/ OPC_MoveParent, ++/* 72081*/ OPC_MoveParent, ++/* 72082*/ OPC_MoveParent, ++/* 72083*/ OPC_MoveParent, ++/* 72084*/ OPC_MoveChild1, ++/* 72085*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 72088*/ OPC_CheckChild0Integer, 1, ++/* 72090*/ OPC_CheckChild0Type, MVT::i32, ++/* 72092*/ OPC_CheckChild1Integer, 1, ++/* 72094*/ OPC_CheckChild1Type, MVT::i32, ++/* 72096*/ OPC_CheckChild2Integer, 1, ++/* 72098*/ OPC_CheckChild2Type, MVT::i32, ++/* 72100*/ OPC_CheckChild3Integer, 1, ++/* 72102*/ OPC_CheckChild3Type, MVT::i32, ++/* 72104*/ OPC_CheckChild4Integer, 1, ++/* 72106*/ OPC_CheckChild4Type, MVT::i32, ++/* 72108*/ OPC_MoveChild5, ++/* 72109*/ OPC_CheckInteger, 1, ++/* 72111*/ OPC_CheckType, MVT::i32, ++/* 72113*/ OPC_MoveParent, ++/* 72114*/ OPC_MoveChild6, ++/* 72115*/ OPC_CheckInteger, 1, ++/* 72117*/ OPC_CheckType, MVT::i32, ++/* 72119*/ OPC_MoveParent, ++/* 72120*/ OPC_MoveChild7, ++/* 72121*/ OPC_CheckInteger, 1, ++/* 72123*/ OPC_CheckType, MVT::i32, ++/* 72125*/ OPC_MoveParent, ++/* 72126*/ OPC_MoveChild, 8, ++/* 72128*/ OPC_CheckInteger, 1, ++/* 72130*/ OPC_CheckType, MVT::i32, ++/* 72132*/ OPC_MoveParent, ++/* 72133*/ OPC_MoveChild, 9, ++/* 72135*/ OPC_CheckInteger, 1, ++/* 72137*/ OPC_CheckType, MVT::i32, ++/* 72139*/ OPC_MoveParent, ++/* 72140*/ OPC_MoveChild, 10, ++/* 72142*/ OPC_CheckInteger, 1, ++/* 72144*/ OPC_CheckType, MVT::i32, ++/* 72146*/ OPC_MoveParent, ++/* 72147*/ OPC_MoveChild, 11, ++/* 72149*/ OPC_CheckInteger, 1, ++/* 72151*/ OPC_CheckType, MVT::i32, ++/* 72153*/ OPC_MoveParent, ++/* 72154*/ OPC_MoveChild, 12, ++/* 72156*/ OPC_CheckInteger, 1, ++/* 72158*/ OPC_CheckType, MVT::i32, ++/* 72160*/ OPC_MoveParent, ++/* 72161*/ OPC_MoveChild, 13, ++/* 72163*/ OPC_CheckInteger, 1, ++/* 72165*/ OPC_CheckType, MVT::i32, ++/* 72167*/ OPC_MoveParent, ++/* 72168*/ OPC_MoveChild, 14, ++/* 72170*/ OPC_CheckInteger, 1, ++/* 72172*/ OPC_CheckType, MVT::i32, ++/* 72174*/ OPC_MoveParent, ++/* 72175*/ OPC_MoveChild, 15, ++/* 72177*/ OPC_CheckInteger, 1, ++/* 72179*/ OPC_CheckType, MVT::i32, ++/* 72181*/ OPC_MoveParent, ++/* 72182*/ OPC_MoveChild, 16, ++/* 72184*/ OPC_CheckInteger, 1, ++/* 72186*/ OPC_CheckType, MVT::i32, ++/* 72188*/ OPC_MoveParent, ++/* 72189*/ OPC_MoveChild, 17, ++/* 72191*/ OPC_CheckInteger, 1, ++/* 72193*/ OPC_CheckType, MVT::i32, ++/* 72195*/ OPC_MoveParent, ++/* 72196*/ OPC_MoveChild, 18, ++/* 72198*/ OPC_CheckInteger, 1, ++/* 72200*/ OPC_CheckType, MVT::i32, ++/* 72202*/ OPC_MoveParent, ++/* 72203*/ OPC_MoveChild, 19, ++/* 72205*/ OPC_CheckInteger, 1, ++/* 72207*/ OPC_CheckType, MVT::i32, ++/* 72209*/ OPC_MoveParent, ++/* 72210*/ OPC_MoveChild, 20, ++/* 72212*/ OPC_CheckInteger, 1, ++/* 72214*/ OPC_CheckType, MVT::i32, ++/* 72216*/ OPC_MoveParent, ++/* 72217*/ OPC_MoveChild, 21, ++/* 72219*/ OPC_CheckInteger, 1, ++/* 72221*/ OPC_CheckType, MVT::i32, ++/* 72223*/ OPC_MoveParent, ++/* 72224*/ OPC_MoveChild, 22, ++/* 72226*/ OPC_CheckInteger, 1, ++/* 72228*/ OPC_CheckType, MVT::i32, ++/* 72230*/ OPC_MoveParent, ++/* 72231*/ OPC_MoveChild, 23, ++/* 72233*/ OPC_CheckInteger, 1, ++/* 72235*/ OPC_CheckType, MVT::i32, ++/* 72237*/ OPC_MoveParent, ++/* 72238*/ OPC_MoveChild, 24, ++/* 72240*/ OPC_CheckInteger, 1, ++/* 72242*/ OPC_CheckType, MVT::i32, ++/* 72244*/ OPC_MoveParent, ++/* 72245*/ OPC_MoveChild, 25, ++/* 72247*/ OPC_CheckInteger, 1, ++/* 72249*/ OPC_CheckType, MVT::i32, ++/* 72251*/ OPC_MoveParent, ++/* 72252*/ OPC_MoveChild, 26, ++/* 72254*/ OPC_CheckInteger, 1, ++/* 72256*/ OPC_CheckType, MVT::i32, ++/* 72258*/ OPC_MoveParent, ++/* 72259*/ OPC_MoveChild, 27, ++/* 72261*/ OPC_CheckInteger, 1, ++/* 72263*/ OPC_CheckType, MVT::i32, ++/* 72265*/ OPC_MoveParent, ++/* 72266*/ OPC_MoveChild, 28, ++/* 72268*/ OPC_CheckInteger, 1, ++/* 72270*/ OPC_CheckType, MVT::i32, ++/* 72272*/ OPC_MoveParent, ++/* 72273*/ OPC_MoveChild, 29, ++/* 72275*/ OPC_CheckInteger, 1, ++/* 72277*/ OPC_CheckType, MVT::i32, ++/* 72279*/ OPC_MoveParent, ++/* 72280*/ OPC_MoveChild, 30, ++/* 72282*/ OPC_CheckInteger, 1, ++/* 72284*/ OPC_CheckType, MVT::i32, ++/* 72286*/ OPC_MoveParent, ++/* 72287*/ OPC_MoveChild, 31, ++/* 72289*/ OPC_CheckInteger, 1, ++/* 72291*/ OPC_CheckType, MVT::i32, ++/* 72293*/ OPC_MoveParent, ++/* 72294*/ OPC_CheckType, MVT::v32i8, ++/* 72296*/ OPC_MoveParent, ++/* 72297*/ OPC_CheckType, MVT::v32i8, ++/* 72299*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 72301*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_BU), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 335 ++ // Dst: (XVAVGR_BU:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/* 72309*/ 0, /*End of Scope*/ ++/* 72310*/ /*Scope*/ 7|128,7/*903*/, /*->73215*/ ++/* 72312*/ OPC_MoveChild0, ++/* 72313*/ OPC_SwitchOpcode /*2 cases */, 105|128,1/*233*/, TARGET_VAL(ISD::BUILD_VECTOR),// ->72551 ++/* 72318*/ OPC_CheckChild0Integer, 1, ++/* 72320*/ OPC_CheckChild0Type, MVT::i32, ++/* 72322*/ OPC_CheckChild1Integer, 1, ++/* 72324*/ OPC_CheckChild1Type, MVT::i32, ++/* 72326*/ OPC_CheckChild2Integer, 1, ++/* 72328*/ OPC_CheckChild2Type, MVT::i32, ++/* 72330*/ OPC_CheckChild3Integer, 1, ++/* 72332*/ OPC_CheckChild3Type, MVT::i32, ++/* 72334*/ OPC_CheckChild4Integer, 1, ++/* 72336*/ OPC_CheckChild4Type, MVT::i32, ++/* 72338*/ OPC_MoveChild5, ++/* 72339*/ OPC_CheckInteger, 1, ++/* 72341*/ OPC_CheckType, MVT::i32, ++/* 72343*/ OPC_MoveParent, ++/* 72344*/ OPC_MoveChild6, ++/* 72345*/ OPC_CheckInteger, 1, ++/* 72347*/ OPC_CheckType, MVT::i32, ++/* 72349*/ OPC_MoveParent, ++/* 72350*/ OPC_MoveChild7, ++/* 72351*/ OPC_CheckInteger, 1, ++/* 72353*/ OPC_CheckType, MVT::i32, ++/* 72355*/ OPC_MoveParent, ++/* 72356*/ OPC_MoveChild, 8, ++/* 72358*/ OPC_CheckInteger, 1, ++/* 72360*/ OPC_CheckType, MVT::i32, ++/* 72362*/ OPC_MoveParent, ++/* 72363*/ OPC_MoveChild, 9, ++/* 72365*/ OPC_CheckInteger, 1, ++/* 72367*/ OPC_CheckType, MVT::i32, ++/* 72369*/ OPC_MoveParent, ++/* 72370*/ OPC_MoveChild, 10, ++/* 72372*/ OPC_CheckInteger, 1, ++/* 72374*/ OPC_CheckType, MVT::i32, ++/* 72376*/ OPC_MoveParent, ++/* 72377*/ OPC_MoveChild, 11, ++/* 72379*/ OPC_CheckInteger, 1, ++/* 72381*/ OPC_CheckType, MVT::i32, ++/* 72383*/ OPC_MoveParent, ++/* 72384*/ OPC_MoveChild, 12, ++/* 72386*/ OPC_CheckInteger, 1, ++/* 72388*/ OPC_CheckType, MVT::i32, ++/* 72390*/ OPC_MoveParent, ++/* 72391*/ OPC_MoveChild, 13, ++/* 72393*/ OPC_CheckInteger, 1, ++/* 72395*/ OPC_CheckType, MVT::i32, ++/* 72397*/ OPC_MoveParent, ++/* 72398*/ OPC_MoveChild, 14, ++/* 72400*/ OPC_CheckInteger, 1, ++/* 72402*/ OPC_CheckType, MVT::i32, ++/* 72404*/ OPC_MoveParent, ++/* 72405*/ OPC_MoveChild, 15, ++/* 72407*/ OPC_CheckInteger, 1, ++/* 72409*/ OPC_CheckType, MVT::i32, ++/* 72411*/ OPC_MoveParent, ++/* 72412*/ OPC_MoveParent, ++/* 72413*/ OPC_MoveChild1, ++/* 72414*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/* 72417*/ OPC_RecordChild0, // #0 = $a ++/* 72418*/ OPC_RecordChild1, // #1 = $b ++/* 72419*/ OPC_MoveParent, ++/* 72420*/ OPC_MoveParent, ++/* 72421*/ OPC_MoveChild1, ++/* 72422*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 72425*/ OPC_CheckChild0Integer, 1, ++/* 72427*/ OPC_CheckChild0Type, MVT::i32, ++/* 72429*/ OPC_CheckChild1Integer, 1, ++/* 72431*/ OPC_CheckChild1Type, MVT::i32, ++/* 72433*/ OPC_CheckChild2Integer, 1, ++/* 72435*/ OPC_CheckChild2Type, MVT::i32, ++/* 72437*/ OPC_CheckChild3Integer, 1, ++/* 72439*/ OPC_CheckChild3Type, MVT::i32, ++/* 72441*/ OPC_CheckChild4Integer, 1, ++/* 72443*/ OPC_CheckChild4Type, MVT::i32, ++/* 72445*/ OPC_MoveChild5, ++/* 72446*/ OPC_CheckInteger, 1, ++/* 72448*/ OPC_CheckType, MVT::i32, ++/* 72450*/ OPC_MoveParent, ++/* 72451*/ OPC_MoveChild6, ++/* 72452*/ OPC_CheckInteger, 1, ++/* 72454*/ OPC_CheckType, MVT::i32, ++/* 72456*/ OPC_MoveParent, ++/* 72457*/ OPC_MoveChild7, ++/* 72458*/ OPC_CheckInteger, 1, ++/* 72460*/ OPC_CheckType, MVT::i32, ++/* 72462*/ OPC_MoveParent, ++/* 72463*/ OPC_MoveChild, 8, ++/* 72465*/ OPC_CheckInteger, 1, ++/* 72467*/ OPC_CheckType, MVT::i32, ++/* 72469*/ OPC_MoveParent, ++/* 72470*/ OPC_MoveChild, 9, ++/* 72472*/ OPC_CheckInteger, 1, ++/* 72474*/ OPC_CheckType, MVT::i32, ++/* 72476*/ OPC_MoveParent, ++/* 72477*/ OPC_MoveChild, 10, ++/* 72479*/ OPC_CheckInteger, 1, ++/* 72481*/ OPC_CheckType, MVT::i32, ++/* 72483*/ OPC_MoveParent, ++/* 72484*/ OPC_MoveChild, 11, ++/* 72486*/ OPC_CheckInteger, 1, ++/* 72488*/ OPC_CheckType, MVT::i32, ++/* 72490*/ OPC_MoveParent, ++/* 72491*/ OPC_MoveChild, 12, ++/* 72493*/ OPC_CheckInteger, 1, ++/* 72495*/ OPC_CheckType, MVT::i32, ++/* 72497*/ OPC_MoveParent, ++/* 72498*/ OPC_MoveChild, 13, ++/* 72500*/ OPC_CheckInteger, 1, ++/* 72502*/ OPC_CheckType, MVT::i32, ++/* 72504*/ OPC_MoveParent, ++/* 72505*/ OPC_MoveChild, 14, ++/* 72507*/ OPC_CheckInteger, 1, ++/* 72509*/ OPC_CheckType, MVT::i32, ++/* 72511*/ OPC_MoveParent, ++/* 72512*/ OPC_MoveChild, 15, ++/* 72514*/ OPC_CheckInteger, 1, ++/* 72516*/ OPC_CheckType, MVT::i32, ++/* 72518*/ OPC_MoveParent, ++/* 72519*/ OPC_SwitchType /*2 cases */, 13, MVT::v16i8,// ->72535 ++/* 72522*/ OPC_MoveParent, ++/* 72523*/ OPC_CheckType, MVT::v16i8, ++/* 72525*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 72527*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_BU), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 175 ++ // Dst: (VAVGR_BU:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/* 72535*/ /*SwitchType*/ 13, MVT::v16i16,// ->72550 ++/* 72537*/ OPC_MoveParent, ++/* 72538*/ OPC_CheckType, MVT::v16i16, ++/* 72540*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 72542*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_HU), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 175 ++ // Dst: (XVAVGR_HU:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/* 72550*/ 0, // EndSwitchType ++/* 72551*/ /*SwitchOpcode*/ 19|128,5/*659*/, TARGET_VAL(ISD::ADD),// ->73214 ++/* 72555*/ OPC_Scope, 88|128,1/*216*/, /*->72774*/ // 2 children in Scope ++/* 72558*/ OPC_MoveChild0, ++/* 72559*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 72562*/ OPC_CheckChild0Integer, 1, ++/* 72564*/ OPC_CheckChild0Type, MVT::i32, ++/* 72566*/ OPC_CheckChild1Integer, 1, ++/* 72568*/ OPC_CheckChild1Type, MVT::i32, ++/* 72570*/ OPC_CheckChild2Integer, 1, ++/* 72572*/ OPC_CheckChild2Type, MVT::i32, ++/* 72574*/ OPC_CheckChild3Integer, 1, ++/* 72576*/ OPC_CheckChild3Type, MVT::i32, ++/* 72578*/ OPC_CheckChild4Integer, 1, ++/* 72580*/ OPC_CheckChild4Type, MVT::i32, ++/* 72582*/ OPC_MoveChild5, ++/* 72583*/ OPC_CheckInteger, 1, ++/* 72585*/ OPC_CheckType, MVT::i32, ++/* 72587*/ OPC_MoveParent, ++/* 72588*/ OPC_MoveChild6, ++/* 72589*/ OPC_CheckInteger, 1, ++/* 72591*/ OPC_CheckType, MVT::i32, ++/* 72593*/ OPC_MoveParent, ++/* 72594*/ OPC_MoveChild7, ++/* 72595*/ OPC_CheckInteger, 1, ++/* 72597*/ OPC_CheckType, MVT::i32, ++/* 72599*/ OPC_MoveParent, ++/* 72600*/ OPC_MoveChild, 8, ++/* 72602*/ OPC_CheckInteger, 1, ++/* 72604*/ OPC_CheckType, MVT::i32, ++/* 72606*/ OPC_MoveParent, ++/* 72607*/ OPC_MoveChild, 9, ++/* 72609*/ OPC_CheckInteger, 1, ++/* 72611*/ OPC_CheckType, MVT::i32, ++/* 72613*/ OPC_MoveParent, ++/* 72614*/ OPC_MoveChild, 10, ++/* 72616*/ OPC_CheckInteger, 1, ++/* 72618*/ OPC_CheckType, MVT::i32, ++/* 72620*/ OPC_MoveParent, ++/* 72621*/ OPC_MoveChild, 11, ++/* 72623*/ OPC_CheckInteger, 1, ++/* 72625*/ OPC_CheckType, MVT::i32, ++/* 72627*/ OPC_MoveParent, ++/* 72628*/ OPC_MoveChild, 12, ++/* 72630*/ OPC_CheckInteger, 1, ++/* 72632*/ OPC_CheckType, MVT::i32, ++/* 72634*/ OPC_MoveParent, ++/* 72635*/ OPC_MoveChild, 13, ++/* 72637*/ OPC_CheckInteger, 1, ++/* 72639*/ OPC_CheckType, MVT::i32, ++/* 72641*/ OPC_MoveParent, ++/* 72642*/ OPC_MoveChild, 14, ++/* 72644*/ OPC_CheckInteger, 1, ++/* 72646*/ OPC_CheckType, MVT::i32, ++/* 72648*/ OPC_MoveParent, ++/* 72649*/ OPC_MoveChild, 15, ++/* 72651*/ OPC_CheckInteger, 1, ++/* 72653*/ OPC_CheckType, MVT::i32, ++/* 72655*/ OPC_MoveParent, ++/* 72656*/ OPC_MoveParent, ++/* 72657*/ OPC_RecordChild1, // #0 = $a ++/* 72658*/ OPC_MoveParent, ++/* 72659*/ OPC_RecordChild1, // #1 = $b ++/* 72660*/ OPC_MoveParent, ++/* 72661*/ OPC_MoveChild1, ++/* 72662*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 72665*/ OPC_CheckChild0Integer, 1, ++/* 72667*/ OPC_CheckChild0Type, MVT::i32, ++/* 72669*/ OPC_CheckChild1Integer, 1, ++/* 72671*/ OPC_CheckChild1Type, MVT::i32, ++/* 72673*/ OPC_CheckChild2Integer, 1, ++/* 72675*/ OPC_CheckChild2Type, MVT::i32, ++/* 72677*/ OPC_CheckChild3Integer, 1, ++/* 72679*/ OPC_CheckChild3Type, MVT::i32, ++/* 72681*/ OPC_CheckChild4Integer, 1, ++/* 72683*/ OPC_CheckChild4Type, MVT::i32, ++/* 72685*/ OPC_MoveChild5, ++/* 72686*/ OPC_CheckInteger, 1, ++/* 72688*/ OPC_CheckType, MVT::i32, ++/* 72690*/ OPC_MoveParent, ++/* 72691*/ OPC_MoveChild6, ++/* 72692*/ OPC_CheckInteger, 1, ++/* 72694*/ OPC_CheckType, MVT::i32, ++/* 72696*/ OPC_MoveParent, ++/* 72697*/ OPC_MoveChild7, ++/* 72698*/ OPC_CheckInteger, 1, ++/* 72700*/ OPC_CheckType, MVT::i32, ++/* 72702*/ OPC_MoveParent, ++/* 72703*/ OPC_MoveChild, 8, ++/* 72705*/ OPC_CheckInteger, 1, ++/* 72707*/ OPC_CheckType, MVT::i32, ++/* 72709*/ OPC_MoveParent, ++/* 72710*/ OPC_MoveChild, 9, ++/* 72712*/ OPC_CheckInteger, 1, ++/* 72714*/ OPC_CheckType, MVT::i32, ++/* 72716*/ OPC_MoveParent, ++/* 72717*/ OPC_MoveChild, 10, ++/* 72719*/ OPC_CheckInteger, 1, ++/* 72721*/ OPC_CheckType, MVT::i32, ++/* 72723*/ OPC_MoveParent, ++/* 72724*/ OPC_MoveChild, 11, ++/* 72726*/ OPC_CheckInteger, 1, ++/* 72728*/ OPC_CheckType, MVT::i32, ++/* 72730*/ OPC_MoveParent, ++/* 72731*/ OPC_MoveChild, 12, ++/* 72733*/ OPC_CheckInteger, 1, ++/* 72735*/ OPC_CheckType, MVT::i32, ++/* 72737*/ OPC_MoveParent, ++/* 72738*/ OPC_MoveChild, 13, ++/* 72740*/ OPC_CheckInteger, 1, ++/* 72742*/ OPC_CheckType, MVT::i32, ++/* 72744*/ OPC_MoveParent, ++/* 72745*/ OPC_MoveChild, 14, ++/* 72747*/ OPC_CheckInteger, 1, ++/* 72749*/ OPC_CheckType, MVT::i32, ++/* 72751*/ OPC_MoveParent, ++/* 72752*/ OPC_MoveChild, 15, ++/* 72754*/ OPC_CheckInteger, 1, ++/* 72756*/ OPC_CheckType, MVT::i32, ++/* 72758*/ OPC_MoveParent, ++/* 72759*/ OPC_CheckType, MVT::v16i8, ++/* 72761*/ OPC_MoveParent, ++/* 72762*/ OPC_CheckType, MVT::v16i8, ++/* 72764*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 72766*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_BU), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a), LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 175 ++ // Dst: (VAVGR_BU:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/* 72774*/ /*Scope*/ 53|128,3/*437*/, /*->73213*/ ++/* 72776*/ OPC_RecordChild0, // #0 = $a ++/* 72777*/ OPC_Scope, 87|128,1/*215*/, /*->72995*/ // 2 children in Scope ++/* 72780*/ OPC_MoveChild1, ++/* 72781*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 72784*/ OPC_CheckChild0Integer, 1, ++/* 72786*/ OPC_CheckChild0Type, MVT::i32, ++/* 72788*/ OPC_CheckChild1Integer, 1, ++/* 72790*/ OPC_CheckChild1Type, MVT::i32, ++/* 72792*/ OPC_CheckChild2Integer, 1, ++/* 72794*/ OPC_CheckChild2Type, MVT::i32, ++/* 72796*/ OPC_CheckChild3Integer, 1, ++/* 72798*/ OPC_CheckChild3Type, MVT::i32, ++/* 72800*/ OPC_CheckChild4Integer, 1, ++/* 72802*/ OPC_CheckChild4Type, MVT::i32, ++/* 72804*/ OPC_MoveChild5, ++/* 72805*/ OPC_CheckInteger, 1, ++/* 72807*/ OPC_CheckType, MVT::i32, ++/* 72809*/ OPC_MoveParent, ++/* 72810*/ OPC_MoveChild6, ++/* 72811*/ OPC_CheckInteger, 1, ++/* 72813*/ OPC_CheckType, MVT::i32, ++/* 72815*/ OPC_MoveParent, ++/* 72816*/ OPC_MoveChild7, ++/* 72817*/ OPC_CheckInteger, 1, ++/* 72819*/ OPC_CheckType, MVT::i32, ++/* 72821*/ OPC_MoveParent, ++/* 72822*/ OPC_MoveChild, 8, ++/* 72824*/ OPC_CheckInteger, 1, ++/* 72826*/ OPC_CheckType, MVT::i32, ++/* 72828*/ OPC_MoveParent, ++/* 72829*/ OPC_MoveChild, 9, ++/* 72831*/ OPC_CheckInteger, 1, ++/* 72833*/ OPC_CheckType, MVT::i32, ++/* 72835*/ OPC_MoveParent, ++/* 72836*/ OPC_MoveChild, 10, ++/* 72838*/ OPC_CheckInteger, 1, ++/* 72840*/ OPC_CheckType, MVT::i32, ++/* 72842*/ OPC_MoveParent, ++/* 72843*/ OPC_MoveChild, 11, ++/* 72845*/ OPC_CheckInteger, 1, ++/* 72847*/ OPC_CheckType, MVT::i32, ++/* 72849*/ OPC_MoveParent, ++/* 72850*/ OPC_MoveChild, 12, ++/* 72852*/ OPC_CheckInteger, 1, ++/* 72854*/ OPC_CheckType, MVT::i32, ++/* 72856*/ OPC_MoveParent, ++/* 72857*/ OPC_MoveChild, 13, ++/* 72859*/ OPC_CheckInteger, 1, ++/* 72861*/ OPC_CheckType, MVT::i32, ++/* 72863*/ OPC_MoveParent, ++/* 72864*/ OPC_MoveChild, 14, ++/* 72866*/ OPC_CheckInteger, 1, ++/* 72868*/ OPC_CheckType, MVT::i32, ++/* 72870*/ OPC_MoveParent, ++/* 72871*/ OPC_MoveChild, 15, ++/* 72873*/ OPC_CheckInteger, 1, ++/* 72875*/ OPC_CheckType, MVT::i32, ++/* 72877*/ OPC_MoveParent, ++/* 72878*/ OPC_MoveParent, ++/* 72879*/ OPC_MoveParent, ++/* 72880*/ OPC_RecordChild1, // #1 = $b ++/* 72881*/ OPC_MoveParent, ++/* 72882*/ OPC_MoveChild1, ++/* 72883*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 72886*/ OPC_CheckChild0Integer, 1, ++/* 72888*/ OPC_CheckChild0Type, MVT::i32, ++/* 72890*/ OPC_CheckChild1Integer, 1, ++/* 72892*/ OPC_CheckChild1Type, MVT::i32, ++/* 72894*/ OPC_CheckChild2Integer, 1, ++/* 72896*/ OPC_CheckChild2Type, MVT::i32, ++/* 72898*/ OPC_CheckChild3Integer, 1, ++/* 72900*/ OPC_CheckChild3Type, MVT::i32, ++/* 72902*/ OPC_CheckChild4Integer, 1, ++/* 72904*/ OPC_CheckChild4Type, MVT::i32, ++/* 72906*/ OPC_MoveChild5, ++/* 72907*/ OPC_CheckInteger, 1, ++/* 72909*/ OPC_CheckType, MVT::i32, ++/* 72911*/ OPC_MoveParent, ++/* 72912*/ OPC_MoveChild6, ++/* 72913*/ OPC_CheckInteger, 1, ++/* 72915*/ OPC_CheckType, MVT::i32, ++/* 72917*/ OPC_MoveParent, ++/* 72918*/ OPC_MoveChild7, ++/* 72919*/ OPC_CheckInteger, 1, ++/* 72921*/ OPC_CheckType, MVT::i32, ++/* 72923*/ OPC_MoveParent, ++/* 72924*/ OPC_MoveChild, 8, ++/* 72926*/ OPC_CheckInteger, 1, ++/* 72928*/ OPC_CheckType, MVT::i32, ++/* 72930*/ OPC_MoveParent, ++/* 72931*/ OPC_MoveChild, 9, ++/* 72933*/ OPC_CheckInteger, 1, ++/* 72935*/ OPC_CheckType, MVT::i32, ++/* 72937*/ OPC_MoveParent, ++/* 72938*/ OPC_MoveChild, 10, ++/* 72940*/ OPC_CheckInteger, 1, ++/* 72942*/ OPC_CheckType, MVT::i32, ++/* 72944*/ OPC_MoveParent, ++/* 72945*/ OPC_MoveChild, 11, ++/* 72947*/ OPC_CheckInteger, 1, ++/* 72949*/ OPC_CheckType, MVT::i32, ++/* 72951*/ OPC_MoveParent, ++/* 72952*/ OPC_MoveChild, 12, ++/* 72954*/ OPC_CheckInteger, 1, ++/* 72956*/ OPC_CheckType, MVT::i32, ++/* 72958*/ OPC_MoveParent, ++/* 72959*/ OPC_MoveChild, 13, ++/* 72961*/ OPC_CheckInteger, 1, ++/* 72963*/ OPC_CheckType, MVT::i32, ++/* 72965*/ OPC_MoveParent, ++/* 72966*/ OPC_MoveChild, 14, ++/* 72968*/ OPC_CheckInteger, 1, ++/* 72970*/ OPC_CheckType, MVT::i32, ++/* 72972*/ OPC_MoveParent, ++/* 72973*/ OPC_MoveChild, 15, ++/* 72975*/ OPC_CheckInteger, 1, ++/* 72977*/ OPC_CheckType, MVT::i32, ++/* 72979*/ OPC_MoveParent, ++/* 72980*/ OPC_CheckType, MVT::v16i8, ++/* 72982*/ OPC_MoveParent, ++/* 72983*/ OPC_CheckType, MVT::v16i8, ++/* 72985*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 72987*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_BU), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 175 ++ // Dst: (VAVGR_BU:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/* 72995*/ /*Scope*/ 87|128,1/*215*/, /*->73212*/ ++/* 72997*/ OPC_RecordChild1, // #1 = $b ++/* 72998*/ OPC_MoveParent, ++/* 72999*/ OPC_MoveChild1, ++/* 73000*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 73003*/ OPC_CheckChild0Integer, 1, ++/* 73005*/ OPC_CheckChild0Type, MVT::i32, ++/* 73007*/ OPC_CheckChild1Integer, 1, ++/* 73009*/ OPC_CheckChild1Type, MVT::i32, ++/* 73011*/ OPC_CheckChild2Integer, 1, ++/* 73013*/ OPC_CheckChild2Type, MVT::i32, ++/* 73015*/ OPC_CheckChild3Integer, 1, ++/* 73017*/ OPC_CheckChild3Type, MVT::i32, ++/* 73019*/ OPC_CheckChild4Integer, 1, ++/* 73021*/ OPC_CheckChild4Type, MVT::i32, ++/* 73023*/ OPC_MoveChild5, ++/* 73024*/ OPC_CheckInteger, 1, ++/* 73026*/ OPC_CheckType, MVT::i32, ++/* 73028*/ OPC_MoveParent, ++/* 73029*/ OPC_MoveChild6, ++/* 73030*/ OPC_CheckInteger, 1, ++/* 73032*/ OPC_CheckType, MVT::i32, ++/* 73034*/ OPC_MoveParent, ++/* 73035*/ OPC_MoveChild7, ++/* 73036*/ OPC_CheckInteger, 1, ++/* 73038*/ OPC_CheckType, MVT::i32, ++/* 73040*/ OPC_MoveParent, ++/* 73041*/ OPC_MoveChild, 8, ++/* 73043*/ OPC_CheckInteger, 1, ++/* 73045*/ OPC_CheckType, MVT::i32, ++/* 73047*/ OPC_MoveParent, ++/* 73048*/ OPC_MoveChild, 9, ++/* 73050*/ OPC_CheckInteger, 1, ++/* 73052*/ OPC_CheckType, MVT::i32, ++/* 73054*/ OPC_MoveParent, ++/* 73055*/ OPC_MoveChild, 10, ++/* 73057*/ OPC_CheckInteger, 1, ++/* 73059*/ OPC_CheckType, MVT::i32, ++/* 73061*/ OPC_MoveParent, ++/* 73062*/ OPC_MoveChild, 11, ++/* 73064*/ OPC_CheckInteger, 1, ++/* 73066*/ OPC_CheckType, MVT::i32, ++/* 73068*/ OPC_MoveParent, ++/* 73069*/ OPC_MoveChild, 12, ++/* 73071*/ OPC_CheckInteger, 1, ++/* 73073*/ OPC_CheckType, MVT::i32, ++/* 73075*/ OPC_MoveParent, ++/* 73076*/ OPC_MoveChild, 13, ++/* 73078*/ OPC_CheckInteger, 1, ++/* 73080*/ OPC_CheckType, MVT::i32, ++/* 73082*/ OPC_MoveParent, ++/* 73083*/ OPC_MoveChild, 14, ++/* 73085*/ OPC_CheckInteger, 1, ++/* 73087*/ OPC_CheckType, MVT::i32, ++/* 73089*/ OPC_MoveParent, ++/* 73090*/ OPC_MoveChild, 15, ++/* 73092*/ OPC_CheckInteger, 1, ++/* 73094*/ OPC_CheckType, MVT::i32, ++/* 73096*/ OPC_MoveParent, ++/* 73097*/ OPC_MoveParent, ++/* 73098*/ OPC_MoveParent, ++/* 73099*/ OPC_MoveChild1, ++/* 73100*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 73103*/ OPC_CheckChild0Integer, 1, ++/* 73105*/ OPC_CheckChild0Type, MVT::i32, ++/* 73107*/ OPC_CheckChild1Integer, 1, ++/* 73109*/ OPC_CheckChild1Type, MVT::i32, ++/* 73111*/ OPC_CheckChild2Integer, 1, ++/* 73113*/ OPC_CheckChild2Type, MVT::i32, ++/* 73115*/ OPC_CheckChild3Integer, 1, ++/* 73117*/ OPC_CheckChild3Type, MVT::i32, ++/* 73119*/ OPC_CheckChild4Integer, 1, ++/* 73121*/ OPC_CheckChild4Type, MVT::i32, ++/* 73123*/ OPC_MoveChild5, ++/* 73124*/ OPC_CheckInteger, 1, ++/* 73126*/ OPC_CheckType, MVT::i32, ++/* 73128*/ OPC_MoveParent, ++/* 73129*/ OPC_MoveChild6, ++/* 73130*/ OPC_CheckInteger, 1, ++/* 73132*/ OPC_CheckType, MVT::i32, ++/* 73134*/ OPC_MoveParent, ++/* 73135*/ OPC_MoveChild7, ++/* 73136*/ OPC_CheckInteger, 1, ++/* 73138*/ OPC_CheckType, MVT::i32, ++/* 73140*/ OPC_MoveParent, ++/* 73141*/ OPC_MoveChild, 8, ++/* 73143*/ OPC_CheckInteger, 1, ++/* 73145*/ OPC_CheckType, MVT::i32, ++/* 73147*/ OPC_MoveParent, ++/* 73148*/ OPC_MoveChild, 9, ++/* 73150*/ OPC_CheckInteger, 1, ++/* 73152*/ OPC_CheckType, MVT::i32, ++/* 73154*/ OPC_MoveParent, ++/* 73155*/ OPC_MoveChild, 10, ++/* 73157*/ OPC_CheckInteger, 1, ++/* 73159*/ OPC_CheckType, MVT::i32, ++/* 73161*/ OPC_MoveParent, ++/* 73162*/ OPC_MoveChild, 11, ++/* 73164*/ OPC_CheckInteger, 1, ++/* 73166*/ OPC_CheckType, MVT::i32, ++/* 73168*/ OPC_MoveParent, ++/* 73169*/ OPC_MoveChild, 12, ++/* 73171*/ OPC_CheckInteger, 1, ++/* 73173*/ OPC_CheckType, MVT::i32, ++/* 73175*/ OPC_MoveParent, ++/* 73176*/ OPC_MoveChild, 13, ++/* 73178*/ OPC_CheckInteger, 1, ++/* 73180*/ OPC_CheckType, MVT::i32, ++/* 73182*/ OPC_MoveParent, ++/* 73183*/ OPC_MoveChild, 14, ++/* 73185*/ OPC_CheckInteger, 1, ++/* 73187*/ OPC_CheckType, MVT::i32, ++/* 73189*/ OPC_MoveParent, ++/* 73190*/ OPC_MoveChild, 15, ++/* 73192*/ OPC_CheckInteger, 1, ++/* 73194*/ OPC_CheckType, MVT::i32, ++/* 73196*/ OPC_MoveParent, ++/* 73197*/ OPC_CheckType, MVT::v16i8, ++/* 73199*/ OPC_MoveParent, ++/* 73200*/ OPC_CheckType, MVT::v16i8, ++/* 73202*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 73204*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_BU), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 175 ++ // Dst: (VAVGR_BU:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/* 73212*/ 0, /*End of Scope*/ ++/* 73213*/ 0, /*End of Scope*/ ++/* 73214*/ 0, // EndSwitchOpcode ++/* 73215*/ /*Scope*/ 57|128,3/*441*/, /*->73658*/ ++/* 73217*/ OPC_RecordChild0, // #0 = $b ++/* 73218*/ OPC_MoveChild1, ++/* 73219*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/* 73222*/ OPC_Scope, 87|128,1/*215*/, /*->73440*/ // 2 children in Scope ++/* 73225*/ OPC_MoveChild0, ++/* 73226*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 73229*/ OPC_CheckChild0Integer, 1, ++/* 73231*/ OPC_CheckChild0Type, MVT::i32, ++/* 73233*/ OPC_CheckChild1Integer, 1, ++/* 73235*/ OPC_CheckChild1Type, MVT::i32, ++/* 73237*/ OPC_CheckChild2Integer, 1, ++/* 73239*/ OPC_CheckChild2Type, MVT::i32, ++/* 73241*/ OPC_CheckChild3Integer, 1, ++/* 73243*/ OPC_CheckChild3Type, MVT::i32, ++/* 73245*/ OPC_CheckChild4Integer, 1, ++/* 73247*/ OPC_CheckChild4Type, MVT::i32, ++/* 73249*/ OPC_MoveChild5, ++/* 73250*/ OPC_CheckInteger, 1, ++/* 73252*/ OPC_CheckType, MVT::i32, ++/* 73254*/ OPC_MoveParent, ++/* 73255*/ OPC_MoveChild6, ++/* 73256*/ OPC_CheckInteger, 1, ++/* 73258*/ OPC_CheckType, MVT::i32, ++/* 73260*/ OPC_MoveParent, ++/* 73261*/ OPC_MoveChild7, ++/* 73262*/ OPC_CheckInteger, 1, ++/* 73264*/ OPC_CheckType, MVT::i32, ++/* 73266*/ OPC_MoveParent, ++/* 73267*/ OPC_MoveChild, 8, ++/* 73269*/ OPC_CheckInteger, 1, ++/* 73271*/ OPC_CheckType, MVT::i32, ++/* 73273*/ OPC_MoveParent, ++/* 73274*/ OPC_MoveChild, 9, ++/* 73276*/ OPC_CheckInteger, 1, ++/* 73278*/ OPC_CheckType, MVT::i32, ++/* 73280*/ OPC_MoveParent, ++/* 73281*/ OPC_MoveChild, 10, ++/* 73283*/ OPC_CheckInteger, 1, ++/* 73285*/ OPC_CheckType, MVT::i32, ++/* 73287*/ OPC_MoveParent, ++/* 73288*/ OPC_MoveChild, 11, ++/* 73290*/ OPC_CheckInteger, 1, ++/* 73292*/ OPC_CheckType, MVT::i32, ++/* 73294*/ OPC_MoveParent, ++/* 73295*/ OPC_MoveChild, 12, ++/* 73297*/ OPC_CheckInteger, 1, ++/* 73299*/ OPC_CheckType, MVT::i32, ++/* 73301*/ OPC_MoveParent, ++/* 73302*/ OPC_MoveChild, 13, ++/* 73304*/ OPC_CheckInteger, 1, ++/* 73306*/ OPC_CheckType, MVT::i32, ++/* 73308*/ OPC_MoveParent, ++/* 73309*/ OPC_MoveChild, 14, ++/* 73311*/ OPC_CheckInteger, 1, ++/* 73313*/ OPC_CheckType, MVT::i32, ++/* 73315*/ OPC_MoveParent, ++/* 73316*/ OPC_MoveChild, 15, ++/* 73318*/ OPC_CheckInteger, 1, ++/* 73320*/ OPC_CheckType, MVT::i32, ++/* 73322*/ OPC_MoveParent, ++/* 73323*/ OPC_MoveParent, ++/* 73324*/ OPC_RecordChild1, // #1 = $a ++/* 73325*/ OPC_MoveParent, ++/* 73326*/ OPC_MoveParent, ++/* 73327*/ OPC_MoveChild1, ++/* 73328*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 73331*/ OPC_CheckChild0Integer, 1, ++/* 73333*/ OPC_CheckChild0Type, MVT::i32, ++/* 73335*/ OPC_CheckChild1Integer, 1, ++/* 73337*/ OPC_CheckChild1Type, MVT::i32, ++/* 73339*/ OPC_CheckChild2Integer, 1, ++/* 73341*/ OPC_CheckChild2Type, MVT::i32, ++/* 73343*/ OPC_CheckChild3Integer, 1, ++/* 73345*/ OPC_CheckChild3Type, MVT::i32, ++/* 73347*/ OPC_CheckChild4Integer, 1, ++/* 73349*/ OPC_CheckChild4Type, MVT::i32, ++/* 73351*/ OPC_MoveChild5, ++/* 73352*/ OPC_CheckInteger, 1, ++/* 73354*/ OPC_CheckType, MVT::i32, ++/* 73356*/ OPC_MoveParent, ++/* 73357*/ OPC_MoveChild6, ++/* 73358*/ OPC_CheckInteger, 1, ++/* 73360*/ OPC_CheckType, MVT::i32, ++/* 73362*/ OPC_MoveParent, ++/* 73363*/ OPC_MoveChild7, ++/* 73364*/ OPC_CheckInteger, 1, ++/* 73366*/ OPC_CheckType, MVT::i32, ++/* 73368*/ OPC_MoveParent, ++/* 73369*/ OPC_MoveChild, 8, ++/* 73371*/ OPC_CheckInteger, 1, ++/* 73373*/ OPC_CheckType, MVT::i32, ++/* 73375*/ OPC_MoveParent, ++/* 73376*/ OPC_MoveChild, 9, ++/* 73378*/ OPC_CheckInteger, 1, ++/* 73380*/ OPC_CheckType, MVT::i32, ++/* 73382*/ OPC_MoveParent, ++/* 73383*/ OPC_MoveChild, 10, ++/* 73385*/ OPC_CheckInteger, 1, ++/* 73387*/ OPC_CheckType, MVT::i32, ++/* 73389*/ OPC_MoveParent, ++/* 73390*/ OPC_MoveChild, 11, ++/* 73392*/ OPC_CheckInteger, 1, ++/* 73394*/ OPC_CheckType, MVT::i32, ++/* 73396*/ OPC_MoveParent, ++/* 73397*/ OPC_MoveChild, 12, ++/* 73399*/ OPC_CheckInteger, 1, ++/* 73401*/ OPC_CheckType, MVT::i32, ++/* 73403*/ OPC_MoveParent, ++/* 73404*/ OPC_MoveChild, 13, ++/* 73406*/ OPC_CheckInteger, 1, ++/* 73408*/ OPC_CheckType, MVT::i32, ++/* 73410*/ OPC_MoveParent, ++/* 73411*/ OPC_MoveChild, 14, ++/* 73413*/ OPC_CheckInteger, 1, ++/* 73415*/ OPC_CheckType, MVT::i32, ++/* 73417*/ OPC_MoveParent, ++/* 73418*/ OPC_MoveChild, 15, ++/* 73420*/ OPC_CheckInteger, 1, ++/* 73422*/ OPC_CheckType, MVT::i32, ++/* 73424*/ OPC_MoveParent, ++/* 73425*/ OPC_CheckType, MVT::v16i8, ++/* 73427*/ OPC_MoveParent, ++/* 73428*/ OPC_CheckType, MVT::v16i8, ++/* 73430*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 73432*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_BU), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 175 ++ // Dst: (VAVGR_BU:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/* 73440*/ /*Scope*/ 87|128,1/*215*/, /*->73657*/ ++/* 73442*/ OPC_RecordChild0, // #1 = $a ++/* 73443*/ OPC_MoveChild1, ++/* 73444*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 73447*/ OPC_CheckChild0Integer, 1, ++/* 73449*/ OPC_CheckChild0Type, MVT::i32, ++/* 73451*/ OPC_CheckChild1Integer, 1, ++/* 73453*/ OPC_CheckChild1Type, MVT::i32, ++/* 73455*/ OPC_CheckChild2Integer, 1, ++/* 73457*/ OPC_CheckChild2Type, MVT::i32, ++/* 73459*/ OPC_CheckChild3Integer, 1, ++/* 73461*/ OPC_CheckChild3Type, MVT::i32, ++/* 73463*/ OPC_CheckChild4Integer, 1, ++/* 73465*/ OPC_CheckChild4Type, MVT::i32, ++/* 73467*/ OPC_MoveChild5, ++/* 73468*/ OPC_CheckInteger, 1, ++/* 73470*/ OPC_CheckType, MVT::i32, ++/* 73472*/ OPC_MoveParent, ++/* 73473*/ OPC_MoveChild6, ++/* 73474*/ OPC_CheckInteger, 1, ++/* 73476*/ OPC_CheckType, MVT::i32, ++/* 73478*/ OPC_MoveParent, ++/* 73479*/ OPC_MoveChild7, ++/* 73480*/ OPC_CheckInteger, 1, ++/* 73482*/ OPC_CheckType, MVT::i32, ++/* 73484*/ OPC_MoveParent, ++/* 73485*/ OPC_MoveChild, 8, ++/* 73487*/ OPC_CheckInteger, 1, ++/* 73489*/ OPC_CheckType, MVT::i32, ++/* 73491*/ OPC_MoveParent, ++/* 73492*/ OPC_MoveChild, 9, ++/* 73494*/ OPC_CheckInteger, 1, ++/* 73496*/ OPC_CheckType, MVT::i32, ++/* 73498*/ OPC_MoveParent, ++/* 73499*/ OPC_MoveChild, 10, ++/* 73501*/ OPC_CheckInteger, 1, ++/* 73503*/ OPC_CheckType, MVT::i32, ++/* 73505*/ OPC_MoveParent, ++/* 73506*/ OPC_MoveChild, 11, ++/* 73508*/ OPC_CheckInteger, 1, ++/* 73510*/ OPC_CheckType, MVT::i32, ++/* 73512*/ OPC_MoveParent, ++/* 73513*/ OPC_MoveChild, 12, ++/* 73515*/ OPC_CheckInteger, 1, ++/* 73517*/ OPC_CheckType, MVT::i32, ++/* 73519*/ OPC_MoveParent, ++/* 73520*/ OPC_MoveChild, 13, ++/* 73522*/ OPC_CheckInteger, 1, ++/* 73524*/ OPC_CheckType, MVT::i32, ++/* 73526*/ OPC_MoveParent, ++/* 73527*/ OPC_MoveChild, 14, ++/* 73529*/ OPC_CheckInteger, 1, ++/* 73531*/ OPC_CheckType, MVT::i32, ++/* 73533*/ OPC_MoveParent, ++/* 73534*/ OPC_MoveChild, 15, ++/* 73536*/ OPC_CheckInteger, 1, ++/* 73538*/ OPC_CheckType, MVT::i32, ++/* 73540*/ OPC_MoveParent, ++/* 73541*/ OPC_MoveParent, ++/* 73542*/ OPC_MoveParent, ++/* 73543*/ OPC_MoveParent, ++/* 73544*/ OPC_MoveChild1, ++/* 73545*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 73548*/ OPC_CheckChild0Integer, 1, ++/* 73550*/ OPC_CheckChild0Type, MVT::i32, ++/* 73552*/ OPC_CheckChild1Integer, 1, ++/* 73554*/ OPC_CheckChild1Type, MVT::i32, ++/* 73556*/ OPC_CheckChild2Integer, 1, ++/* 73558*/ OPC_CheckChild2Type, MVT::i32, ++/* 73560*/ OPC_CheckChild3Integer, 1, ++/* 73562*/ OPC_CheckChild3Type, MVT::i32, ++/* 73564*/ OPC_CheckChild4Integer, 1, ++/* 73566*/ OPC_CheckChild4Type, MVT::i32, ++/* 73568*/ OPC_MoveChild5, ++/* 73569*/ OPC_CheckInteger, 1, ++/* 73571*/ OPC_CheckType, MVT::i32, ++/* 73573*/ OPC_MoveParent, ++/* 73574*/ OPC_MoveChild6, ++/* 73575*/ OPC_CheckInteger, 1, ++/* 73577*/ OPC_CheckType, MVT::i32, ++/* 73579*/ OPC_MoveParent, ++/* 73580*/ OPC_MoveChild7, ++/* 73581*/ OPC_CheckInteger, 1, ++/* 73583*/ OPC_CheckType, MVT::i32, ++/* 73585*/ OPC_MoveParent, ++/* 73586*/ OPC_MoveChild, 8, ++/* 73588*/ OPC_CheckInteger, 1, ++/* 73590*/ OPC_CheckType, MVT::i32, ++/* 73592*/ OPC_MoveParent, ++/* 73593*/ OPC_MoveChild, 9, ++/* 73595*/ OPC_CheckInteger, 1, ++/* 73597*/ OPC_CheckType, MVT::i32, ++/* 73599*/ OPC_MoveParent, ++/* 73600*/ OPC_MoveChild, 10, ++/* 73602*/ OPC_CheckInteger, 1, ++/* 73604*/ OPC_CheckType, MVT::i32, ++/* 73606*/ OPC_MoveParent, ++/* 73607*/ OPC_MoveChild, 11, ++/* 73609*/ OPC_CheckInteger, 1, ++/* 73611*/ OPC_CheckType, MVT::i32, ++/* 73613*/ OPC_MoveParent, ++/* 73614*/ OPC_MoveChild, 12, ++/* 73616*/ OPC_CheckInteger, 1, ++/* 73618*/ OPC_CheckType, MVT::i32, ++/* 73620*/ OPC_MoveParent, ++/* 73621*/ OPC_MoveChild, 13, ++/* 73623*/ OPC_CheckInteger, 1, ++/* 73625*/ OPC_CheckType, MVT::i32, ++/* 73627*/ OPC_MoveParent, ++/* 73628*/ OPC_MoveChild, 14, ++/* 73630*/ OPC_CheckInteger, 1, ++/* 73632*/ OPC_CheckType, MVT::i32, ++/* 73634*/ OPC_MoveParent, ++/* 73635*/ OPC_MoveChild, 15, ++/* 73637*/ OPC_CheckInteger, 1, ++/* 73639*/ OPC_CheckType, MVT::i32, ++/* 73641*/ OPC_MoveParent, ++/* 73642*/ OPC_CheckType, MVT::v16i8, ++/* 73644*/ OPC_MoveParent, ++/* 73645*/ OPC_CheckType, MVT::v16i8, ++/* 73647*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 73649*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_BU), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 175 ++ // Dst: (VAVGR_BU:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/* 73657*/ 0, /*End of Scope*/ ++/* 73658*/ /*Scope*/ 23|128,5/*663*/, /*->74323*/ ++/* 73660*/ OPC_MoveChild0, ++/* 73661*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/* 73664*/ OPC_Scope, 88|128,1/*216*/, /*->73883*/ // 2 children in Scope ++/* 73667*/ OPC_MoveChild0, ++/* 73668*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 73671*/ OPC_CheckChild0Integer, 1, ++/* 73673*/ OPC_CheckChild0Type, MVT::i32, ++/* 73675*/ OPC_CheckChild1Integer, 1, ++/* 73677*/ OPC_CheckChild1Type, MVT::i32, ++/* 73679*/ OPC_CheckChild2Integer, 1, ++/* 73681*/ OPC_CheckChild2Type, MVT::i32, ++/* 73683*/ OPC_CheckChild3Integer, 1, ++/* 73685*/ OPC_CheckChild3Type, MVT::i32, ++/* 73687*/ OPC_CheckChild4Integer, 1, ++/* 73689*/ OPC_CheckChild4Type, MVT::i32, ++/* 73691*/ OPC_MoveChild5, ++/* 73692*/ OPC_CheckInteger, 1, ++/* 73694*/ OPC_CheckType, MVT::i32, ++/* 73696*/ OPC_MoveParent, ++/* 73697*/ OPC_MoveChild6, ++/* 73698*/ OPC_CheckInteger, 1, ++/* 73700*/ OPC_CheckType, MVT::i32, ++/* 73702*/ OPC_MoveParent, ++/* 73703*/ OPC_MoveChild7, ++/* 73704*/ OPC_CheckInteger, 1, ++/* 73706*/ OPC_CheckType, MVT::i32, ++/* 73708*/ OPC_MoveParent, ++/* 73709*/ OPC_MoveChild, 8, ++/* 73711*/ OPC_CheckInteger, 1, ++/* 73713*/ OPC_CheckType, MVT::i32, ++/* 73715*/ OPC_MoveParent, ++/* 73716*/ OPC_MoveChild, 9, ++/* 73718*/ OPC_CheckInteger, 1, ++/* 73720*/ OPC_CheckType, MVT::i32, ++/* 73722*/ OPC_MoveParent, ++/* 73723*/ OPC_MoveChild, 10, ++/* 73725*/ OPC_CheckInteger, 1, ++/* 73727*/ OPC_CheckType, MVT::i32, ++/* 73729*/ OPC_MoveParent, ++/* 73730*/ OPC_MoveChild, 11, ++/* 73732*/ OPC_CheckInteger, 1, ++/* 73734*/ OPC_CheckType, MVT::i32, ++/* 73736*/ OPC_MoveParent, ++/* 73737*/ OPC_MoveChild, 12, ++/* 73739*/ OPC_CheckInteger, 1, ++/* 73741*/ OPC_CheckType, MVT::i32, ++/* 73743*/ OPC_MoveParent, ++/* 73744*/ OPC_MoveChild, 13, ++/* 73746*/ OPC_CheckInteger, 1, ++/* 73748*/ OPC_CheckType, MVT::i32, ++/* 73750*/ OPC_MoveParent, ++/* 73751*/ OPC_MoveChild, 14, ++/* 73753*/ OPC_CheckInteger, 1, ++/* 73755*/ OPC_CheckType, MVT::i32, ++/* 73757*/ OPC_MoveParent, ++/* 73758*/ OPC_MoveChild, 15, ++/* 73760*/ OPC_CheckInteger, 1, ++/* 73762*/ OPC_CheckType, MVT::i32, ++/* 73764*/ OPC_MoveParent, ++/* 73765*/ OPC_MoveParent, ++/* 73766*/ OPC_RecordChild1, // #0 = $a ++/* 73767*/ OPC_MoveParent, ++/* 73768*/ OPC_RecordChild1, // #1 = $b ++/* 73769*/ OPC_MoveParent, ++/* 73770*/ OPC_MoveChild1, ++/* 73771*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 73774*/ OPC_CheckChild0Integer, 1, ++/* 73776*/ OPC_CheckChild0Type, MVT::i32, ++/* 73778*/ OPC_CheckChild1Integer, 1, ++/* 73780*/ OPC_CheckChild1Type, MVT::i32, ++/* 73782*/ OPC_CheckChild2Integer, 1, ++/* 73784*/ OPC_CheckChild2Type, MVT::i32, ++/* 73786*/ OPC_CheckChild3Integer, 1, ++/* 73788*/ OPC_CheckChild3Type, MVT::i32, ++/* 73790*/ OPC_CheckChild4Integer, 1, ++/* 73792*/ OPC_CheckChild4Type, MVT::i32, ++/* 73794*/ OPC_MoveChild5, ++/* 73795*/ OPC_CheckInteger, 1, ++/* 73797*/ OPC_CheckType, MVT::i32, ++/* 73799*/ OPC_MoveParent, ++/* 73800*/ OPC_MoveChild6, ++/* 73801*/ OPC_CheckInteger, 1, ++/* 73803*/ OPC_CheckType, MVT::i32, ++/* 73805*/ OPC_MoveParent, ++/* 73806*/ OPC_MoveChild7, ++/* 73807*/ OPC_CheckInteger, 1, ++/* 73809*/ OPC_CheckType, MVT::i32, ++/* 73811*/ OPC_MoveParent, ++/* 73812*/ OPC_MoveChild, 8, ++/* 73814*/ OPC_CheckInteger, 1, ++/* 73816*/ OPC_CheckType, MVT::i32, ++/* 73818*/ OPC_MoveParent, ++/* 73819*/ OPC_MoveChild, 9, ++/* 73821*/ OPC_CheckInteger, 1, ++/* 73823*/ OPC_CheckType, MVT::i32, ++/* 73825*/ OPC_MoveParent, ++/* 73826*/ OPC_MoveChild, 10, ++/* 73828*/ OPC_CheckInteger, 1, ++/* 73830*/ OPC_CheckType, MVT::i32, ++/* 73832*/ OPC_MoveParent, ++/* 73833*/ OPC_MoveChild, 11, ++/* 73835*/ OPC_CheckInteger, 1, ++/* 73837*/ OPC_CheckType, MVT::i32, ++/* 73839*/ OPC_MoveParent, ++/* 73840*/ OPC_MoveChild, 12, ++/* 73842*/ OPC_CheckInteger, 1, ++/* 73844*/ OPC_CheckType, MVT::i32, ++/* 73846*/ OPC_MoveParent, ++/* 73847*/ OPC_MoveChild, 13, ++/* 73849*/ OPC_CheckInteger, 1, ++/* 73851*/ OPC_CheckType, MVT::i32, ++/* 73853*/ OPC_MoveParent, ++/* 73854*/ OPC_MoveChild, 14, ++/* 73856*/ OPC_CheckInteger, 1, ++/* 73858*/ OPC_CheckType, MVT::i32, ++/* 73860*/ OPC_MoveParent, ++/* 73861*/ OPC_MoveChild, 15, ++/* 73863*/ OPC_CheckInteger, 1, ++/* 73865*/ OPC_CheckType, MVT::i32, ++/* 73867*/ OPC_MoveParent, ++/* 73868*/ OPC_CheckType, MVT::v16i16, ++/* 73870*/ OPC_MoveParent, ++/* 73871*/ OPC_CheckType, MVT::v16i16, ++/* 73873*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 73875*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_HU), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a), LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 175 ++ // Dst: (XVAVGR_HU:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/* 73883*/ /*Scope*/ 53|128,3/*437*/, /*->74322*/ ++/* 73885*/ OPC_RecordChild0, // #0 = $a ++/* 73886*/ OPC_Scope, 87|128,1/*215*/, /*->74104*/ // 2 children in Scope ++/* 73889*/ OPC_MoveChild1, ++/* 73890*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 73893*/ OPC_CheckChild0Integer, 1, ++/* 73895*/ OPC_CheckChild0Type, MVT::i32, ++/* 73897*/ OPC_CheckChild1Integer, 1, ++/* 73899*/ OPC_CheckChild1Type, MVT::i32, ++/* 73901*/ OPC_CheckChild2Integer, 1, ++/* 73903*/ OPC_CheckChild2Type, MVT::i32, ++/* 73905*/ OPC_CheckChild3Integer, 1, ++/* 73907*/ OPC_CheckChild3Type, MVT::i32, ++/* 73909*/ OPC_CheckChild4Integer, 1, ++/* 73911*/ OPC_CheckChild4Type, MVT::i32, ++/* 73913*/ OPC_MoveChild5, ++/* 73914*/ OPC_CheckInteger, 1, ++/* 73916*/ OPC_CheckType, MVT::i32, ++/* 73918*/ OPC_MoveParent, ++/* 73919*/ OPC_MoveChild6, ++/* 73920*/ OPC_CheckInteger, 1, ++/* 73922*/ OPC_CheckType, MVT::i32, ++/* 73924*/ OPC_MoveParent, ++/* 73925*/ OPC_MoveChild7, ++/* 73926*/ OPC_CheckInteger, 1, ++/* 73928*/ OPC_CheckType, MVT::i32, ++/* 73930*/ OPC_MoveParent, ++/* 73931*/ OPC_MoveChild, 8, ++/* 73933*/ OPC_CheckInteger, 1, ++/* 73935*/ OPC_CheckType, MVT::i32, ++/* 73937*/ OPC_MoveParent, ++/* 73938*/ OPC_MoveChild, 9, ++/* 73940*/ OPC_CheckInteger, 1, ++/* 73942*/ OPC_CheckType, MVT::i32, ++/* 73944*/ OPC_MoveParent, ++/* 73945*/ OPC_MoveChild, 10, ++/* 73947*/ OPC_CheckInteger, 1, ++/* 73949*/ OPC_CheckType, MVT::i32, ++/* 73951*/ OPC_MoveParent, ++/* 73952*/ OPC_MoveChild, 11, ++/* 73954*/ OPC_CheckInteger, 1, ++/* 73956*/ OPC_CheckType, MVT::i32, ++/* 73958*/ OPC_MoveParent, ++/* 73959*/ OPC_MoveChild, 12, ++/* 73961*/ OPC_CheckInteger, 1, ++/* 73963*/ OPC_CheckType, MVT::i32, ++/* 73965*/ OPC_MoveParent, ++/* 73966*/ OPC_MoveChild, 13, ++/* 73968*/ OPC_CheckInteger, 1, ++/* 73970*/ OPC_CheckType, MVT::i32, ++/* 73972*/ OPC_MoveParent, ++/* 73973*/ OPC_MoveChild, 14, ++/* 73975*/ OPC_CheckInteger, 1, ++/* 73977*/ OPC_CheckType, MVT::i32, ++/* 73979*/ OPC_MoveParent, ++/* 73980*/ OPC_MoveChild, 15, ++/* 73982*/ OPC_CheckInteger, 1, ++/* 73984*/ OPC_CheckType, MVT::i32, ++/* 73986*/ OPC_MoveParent, ++/* 73987*/ OPC_MoveParent, ++/* 73988*/ OPC_MoveParent, ++/* 73989*/ OPC_RecordChild1, // #1 = $b ++/* 73990*/ OPC_MoveParent, ++/* 73991*/ OPC_MoveChild1, ++/* 73992*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 73995*/ OPC_CheckChild0Integer, 1, ++/* 73997*/ OPC_CheckChild0Type, MVT::i32, ++/* 73999*/ OPC_CheckChild1Integer, 1, ++/* 74001*/ OPC_CheckChild1Type, MVT::i32, ++/* 74003*/ OPC_CheckChild2Integer, 1, ++/* 74005*/ OPC_CheckChild2Type, MVT::i32, ++/* 74007*/ OPC_CheckChild3Integer, 1, ++/* 74009*/ OPC_CheckChild3Type, MVT::i32, ++/* 74011*/ OPC_CheckChild4Integer, 1, ++/* 74013*/ OPC_CheckChild4Type, MVT::i32, ++/* 74015*/ OPC_MoveChild5, ++/* 74016*/ OPC_CheckInteger, 1, ++/* 74018*/ OPC_CheckType, MVT::i32, ++/* 74020*/ OPC_MoveParent, ++/* 74021*/ OPC_MoveChild6, ++/* 74022*/ OPC_CheckInteger, 1, ++/* 74024*/ OPC_CheckType, MVT::i32, ++/* 74026*/ OPC_MoveParent, ++/* 74027*/ OPC_MoveChild7, ++/* 74028*/ OPC_CheckInteger, 1, ++/* 74030*/ OPC_CheckType, MVT::i32, ++/* 74032*/ OPC_MoveParent, ++/* 74033*/ OPC_MoveChild, 8, ++/* 74035*/ OPC_CheckInteger, 1, ++/* 74037*/ OPC_CheckType, MVT::i32, ++/* 74039*/ OPC_MoveParent, ++/* 74040*/ OPC_MoveChild, 9, ++/* 74042*/ OPC_CheckInteger, 1, ++/* 74044*/ OPC_CheckType, MVT::i32, ++/* 74046*/ OPC_MoveParent, ++/* 74047*/ OPC_MoveChild, 10, ++/* 74049*/ OPC_CheckInteger, 1, ++/* 74051*/ OPC_CheckType, MVT::i32, ++/* 74053*/ OPC_MoveParent, ++/* 74054*/ OPC_MoveChild, 11, ++/* 74056*/ OPC_CheckInteger, 1, ++/* 74058*/ OPC_CheckType, MVT::i32, ++/* 74060*/ OPC_MoveParent, ++/* 74061*/ OPC_MoveChild, 12, ++/* 74063*/ OPC_CheckInteger, 1, ++/* 74065*/ OPC_CheckType, MVT::i32, ++/* 74067*/ OPC_MoveParent, ++/* 74068*/ OPC_MoveChild, 13, ++/* 74070*/ OPC_CheckInteger, 1, ++/* 74072*/ OPC_CheckType, MVT::i32, ++/* 74074*/ OPC_MoveParent, ++/* 74075*/ OPC_MoveChild, 14, ++/* 74077*/ OPC_CheckInteger, 1, ++/* 74079*/ OPC_CheckType, MVT::i32, ++/* 74081*/ OPC_MoveParent, ++/* 74082*/ OPC_MoveChild, 15, ++/* 74084*/ OPC_CheckInteger, 1, ++/* 74086*/ OPC_CheckType, MVT::i32, ++/* 74088*/ OPC_MoveParent, ++/* 74089*/ OPC_CheckType, MVT::v16i16, ++/* 74091*/ OPC_MoveParent, ++/* 74092*/ OPC_CheckType, MVT::v16i16, ++/* 74094*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 74096*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_HU), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 175 ++ // Dst: (XVAVGR_HU:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/* 74104*/ /*Scope*/ 87|128,1/*215*/, /*->74321*/ ++/* 74106*/ OPC_RecordChild1, // #1 = $b ++/* 74107*/ OPC_MoveParent, ++/* 74108*/ OPC_MoveChild1, ++/* 74109*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 74112*/ OPC_CheckChild0Integer, 1, ++/* 74114*/ OPC_CheckChild0Type, MVT::i32, ++/* 74116*/ OPC_CheckChild1Integer, 1, ++/* 74118*/ OPC_CheckChild1Type, MVT::i32, ++/* 74120*/ OPC_CheckChild2Integer, 1, ++/* 74122*/ OPC_CheckChild2Type, MVT::i32, ++/* 74124*/ OPC_CheckChild3Integer, 1, ++/* 74126*/ OPC_CheckChild3Type, MVT::i32, ++/* 74128*/ OPC_CheckChild4Integer, 1, ++/* 74130*/ OPC_CheckChild4Type, MVT::i32, ++/* 74132*/ OPC_MoveChild5, ++/* 74133*/ OPC_CheckInteger, 1, ++/* 74135*/ OPC_CheckType, MVT::i32, ++/* 74137*/ OPC_MoveParent, ++/* 74138*/ OPC_MoveChild6, ++/* 74139*/ OPC_CheckInteger, 1, ++/* 74141*/ OPC_CheckType, MVT::i32, ++/* 74143*/ OPC_MoveParent, ++/* 74144*/ OPC_MoveChild7, ++/* 74145*/ OPC_CheckInteger, 1, ++/* 74147*/ OPC_CheckType, MVT::i32, ++/* 74149*/ OPC_MoveParent, ++/* 74150*/ OPC_MoveChild, 8, ++/* 74152*/ OPC_CheckInteger, 1, ++/* 74154*/ OPC_CheckType, MVT::i32, ++/* 74156*/ OPC_MoveParent, ++/* 74157*/ OPC_MoveChild, 9, ++/* 74159*/ OPC_CheckInteger, 1, ++/* 74161*/ OPC_CheckType, MVT::i32, ++/* 74163*/ OPC_MoveParent, ++/* 74164*/ OPC_MoveChild, 10, ++/* 74166*/ OPC_CheckInteger, 1, ++/* 74168*/ OPC_CheckType, MVT::i32, ++/* 74170*/ OPC_MoveParent, ++/* 74171*/ OPC_MoveChild, 11, ++/* 74173*/ OPC_CheckInteger, 1, ++/* 74175*/ OPC_CheckType, MVT::i32, ++/* 74177*/ OPC_MoveParent, ++/* 74178*/ OPC_MoveChild, 12, ++/* 74180*/ OPC_CheckInteger, 1, ++/* 74182*/ OPC_CheckType, MVT::i32, ++/* 74184*/ OPC_MoveParent, ++/* 74185*/ OPC_MoveChild, 13, ++/* 74187*/ OPC_CheckInteger, 1, ++/* 74189*/ OPC_CheckType, MVT::i32, ++/* 74191*/ OPC_MoveParent, ++/* 74192*/ OPC_MoveChild, 14, ++/* 74194*/ OPC_CheckInteger, 1, ++/* 74196*/ OPC_CheckType, MVT::i32, ++/* 74198*/ OPC_MoveParent, ++/* 74199*/ OPC_MoveChild, 15, ++/* 74201*/ OPC_CheckInteger, 1, ++/* 74203*/ OPC_CheckType, MVT::i32, ++/* 74205*/ OPC_MoveParent, ++/* 74206*/ OPC_MoveParent, ++/* 74207*/ OPC_MoveParent, ++/* 74208*/ OPC_MoveChild1, ++/* 74209*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 74212*/ OPC_CheckChild0Integer, 1, ++/* 74214*/ OPC_CheckChild0Type, MVT::i32, ++/* 74216*/ OPC_CheckChild1Integer, 1, ++/* 74218*/ OPC_CheckChild1Type, MVT::i32, ++/* 74220*/ OPC_CheckChild2Integer, 1, ++/* 74222*/ OPC_CheckChild2Type, MVT::i32, ++/* 74224*/ OPC_CheckChild3Integer, 1, ++/* 74226*/ OPC_CheckChild3Type, MVT::i32, ++/* 74228*/ OPC_CheckChild4Integer, 1, ++/* 74230*/ OPC_CheckChild4Type, MVT::i32, ++/* 74232*/ OPC_MoveChild5, ++/* 74233*/ OPC_CheckInteger, 1, ++/* 74235*/ OPC_CheckType, MVT::i32, ++/* 74237*/ OPC_MoveParent, ++/* 74238*/ OPC_MoveChild6, ++/* 74239*/ OPC_CheckInteger, 1, ++/* 74241*/ OPC_CheckType, MVT::i32, ++/* 74243*/ OPC_MoveParent, ++/* 74244*/ OPC_MoveChild7, ++/* 74245*/ OPC_CheckInteger, 1, ++/* 74247*/ OPC_CheckType, MVT::i32, ++/* 74249*/ OPC_MoveParent, ++/* 74250*/ OPC_MoveChild, 8, ++/* 74252*/ OPC_CheckInteger, 1, ++/* 74254*/ OPC_CheckType, MVT::i32, ++/* 74256*/ OPC_MoveParent, ++/* 74257*/ OPC_MoveChild, 9, ++/* 74259*/ OPC_CheckInteger, 1, ++/* 74261*/ OPC_CheckType, MVT::i32, ++/* 74263*/ OPC_MoveParent, ++/* 74264*/ OPC_MoveChild, 10, ++/* 74266*/ OPC_CheckInteger, 1, ++/* 74268*/ OPC_CheckType, MVT::i32, ++/* 74270*/ OPC_MoveParent, ++/* 74271*/ OPC_MoveChild, 11, ++/* 74273*/ OPC_CheckInteger, 1, ++/* 74275*/ OPC_CheckType, MVT::i32, ++/* 74277*/ OPC_MoveParent, ++/* 74278*/ OPC_MoveChild, 12, ++/* 74280*/ OPC_CheckInteger, 1, ++/* 74282*/ OPC_CheckType, MVT::i32, ++/* 74284*/ OPC_MoveParent, ++/* 74285*/ OPC_MoveChild, 13, ++/* 74287*/ OPC_CheckInteger, 1, ++/* 74289*/ OPC_CheckType, MVT::i32, ++/* 74291*/ OPC_MoveParent, ++/* 74292*/ OPC_MoveChild, 14, ++/* 74294*/ OPC_CheckInteger, 1, ++/* 74296*/ OPC_CheckType, MVT::i32, ++/* 74298*/ OPC_MoveParent, ++/* 74299*/ OPC_MoveChild, 15, ++/* 74301*/ OPC_CheckInteger, 1, ++/* 74303*/ OPC_CheckType, MVT::i32, ++/* 74305*/ OPC_MoveParent, ++/* 74306*/ OPC_CheckType, MVT::v16i16, ++/* 74308*/ OPC_MoveParent, ++/* 74309*/ OPC_CheckType, MVT::v16i16, ++/* 74311*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 74313*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_HU), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 175 ++ // Dst: (XVAVGR_HU:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/* 74321*/ 0, /*End of Scope*/ ++/* 74322*/ 0, /*End of Scope*/ ++/* 74323*/ /*Scope*/ 34|128,5/*674*/, /*->74999*/ ++/* 74325*/ OPC_RecordChild0, // #0 = $b ++/* 74326*/ OPC_Scope, 56|128,3/*440*/, /*->74769*/ // 2 children in Scope ++/* 74329*/ OPC_MoveChild1, ++/* 74330*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/* 74333*/ OPC_Scope, 87|128,1/*215*/, /*->74551*/ // 2 children in Scope ++/* 74336*/ OPC_MoveChild0, ++/* 74337*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 74340*/ OPC_CheckChild0Integer, 1, ++/* 74342*/ OPC_CheckChild0Type, MVT::i32, ++/* 74344*/ OPC_CheckChild1Integer, 1, ++/* 74346*/ OPC_CheckChild1Type, MVT::i32, ++/* 74348*/ OPC_CheckChild2Integer, 1, ++/* 74350*/ OPC_CheckChild2Type, MVT::i32, ++/* 74352*/ OPC_CheckChild3Integer, 1, ++/* 74354*/ OPC_CheckChild3Type, MVT::i32, ++/* 74356*/ OPC_CheckChild4Integer, 1, ++/* 74358*/ OPC_CheckChild4Type, MVT::i32, ++/* 74360*/ OPC_MoveChild5, ++/* 74361*/ OPC_CheckInteger, 1, ++/* 74363*/ OPC_CheckType, MVT::i32, ++/* 74365*/ OPC_MoveParent, ++/* 74366*/ OPC_MoveChild6, ++/* 74367*/ OPC_CheckInteger, 1, ++/* 74369*/ OPC_CheckType, MVT::i32, ++/* 74371*/ OPC_MoveParent, ++/* 74372*/ OPC_MoveChild7, ++/* 74373*/ OPC_CheckInteger, 1, ++/* 74375*/ OPC_CheckType, MVT::i32, ++/* 74377*/ OPC_MoveParent, ++/* 74378*/ OPC_MoveChild, 8, ++/* 74380*/ OPC_CheckInteger, 1, ++/* 74382*/ OPC_CheckType, MVT::i32, ++/* 74384*/ OPC_MoveParent, ++/* 74385*/ OPC_MoveChild, 9, ++/* 74387*/ OPC_CheckInteger, 1, ++/* 74389*/ OPC_CheckType, MVT::i32, ++/* 74391*/ OPC_MoveParent, ++/* 74392*/ OPC_MoveChild, 10, ++/* 74394*/ OPC_CheckInteger, 1, ++/* 74396*/ OPC_CheckType, MVT::i32, ++/* 74398*/ OPC_MoveParent, ++/* 74399*/ OPC_MoveChild, 11, ++/* 74401*/ OPC_CheckInteger, 1, ++/* 74403*/ OPC_CheckType, MVT::i32, ++/* 74405*/ OPC_MoveParent, ++/* 74406*/ OPC_MoveChild, 12, ++/* 74408*/ OPC_CheckInteger, 1, ++/* 74410*/ OPC_CheckType, MVT::i32, ++/* 74412*/ OPC_MoveParent, ++/* 74413*/ OPC_MoveChild, 13, ++/* 74415*/ OPC_CheckInteger, 1, ++/* 74417*/ OPC_CheckType, MVT::i32, ++/* 74419*/ OPC_MoveParent, ++/* 74420*/ OPC_MoveChild, 14, ++/* 74422*/ OPC_CheckInteger, 1, ++/* 74424*/ OPC_CheckType, MVT::i32, ++/* 74426*/ OPC_MoveParent, ++/* 74427*/ OPC_MoveChild, 15, ++/* 74429*/ OPC_CheckInteger, 1, ++/* 74431*/ OPC_CheckType, MVT::i32, ++/* 74433*/ OPC_MoveParent, ++/* 74434*/ OPC_MoveParent, ++/* 74435*/ OPC_RecordChild1, // #1 = $a ++/* 74436*/ OPC_MoveParent, ++/* 74437*/ OPC_MoveParent, ++/* 74438*/ OPC_MoveChild1, ++/* 74439*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 74442*/ OPC_CheckChild0Integer, 1, ++/* 74444*/ OPC_CheckChild0Type, MVT::i32, ++/* 74446*/ OPC_CheckChild1Integer, 1, ++/* 74448*/ OPC_CheckChild1Type, MVT::i32, ++/* 74450*/ OPC_CheckChild2Integer, 1, ++/* 74452*/ OPC_CheckChild2Type, MVT::i32, ++/* 74454*/ OPC_CheckChild3Integer, 1, ++/* 74456*/ OPC_CheckChild3Type, MVT::i32, ++/* 74458*/ OPC_CheckChild4Integer, 1, ++/* 74460*/ OPC_CheckChild4Type, MVT::i32, ++/* 74462*/ OPC_MoveChild5, ++/* 74463*/ OPC_CheckInteger, 1, ++/* 74465*/ OPC_CheckType, MVT::i32, ++/* 74467*/ OPC_MoveParent, ++/* 74468*/ OPC_MoveChild6, ++/* 74469*/ OPC_CheckInteger, 1, ++/* 74471*/ OPC_CheckType, MVT::i32, ++/* 74473*/ OPC_MoveParent, ++/* 74474*/ OPC_MoveChild7, ++/* 74475*/ OPC_CheckInteger, 1, ++/* 74477*/ OPC_CheckType, MVT::i32, ++/* 74479*/ OPC_MoveParent, ++/* 74480*/ OPC_MoveChild, 8, ++/* 74482*/ OPC_CheckInteger, 1, ++/* 74484*/ OPC_CheckType, MVT::i32, ++/* 74486*/ OPC_MoveParent, ++/* 74487*/ OPC_MoveChild, 9, ++/* 74489*/ OPC_CheckInteger, 1, ++/* 74491*/ OPC_CheckType, MVT::i32, ++/* 74493*/ OPC_MoveParent, ++/* 74494*/ OPC_MoveChild, 10, ++/* 74496*/ OPC_CheckInteger, 1, ++/* 74498*/ OPC_CheckType, MVT::i32, ++/* 74500*/ OPC_MoveParent, ++/* 74501*/ OPC_MoveChild, 11, ++/* 74503*/ OPC_CheckInteger, 1, ++/* 74505*/ OPC_CheckType, MVT::i32, ++/* 74507*/ OPC_MoveParent, ++/* 74508*/ OPC_MoveChild, 12, ++/* 74510*/ OPC_CheckInteger, 1, ++/* 74512*/ OPC_CheckType, MVT::i32, ++/* 74514*/ OPC_MoveParent, ++/* 74515*/ OPC_MoveChild, 13, ++/* 74517*/ OPC_CheckInteger, 1, ++/* 74519*/ OPC_CheckType, MVT::i32, ++/* 74521*/ OPC_MoveParent, ++/* 74522*/ OPC_MoveChild, 14, ++/* 74524*/ OPC_CheckInteger, 1, ++/* 74526*/ OPC_CheckType, MVT::i32, ++/* 74528*/ OPC_MoveParent, ++/* 74529*/ OPC_MoveChild, 15, ++/* 74531*/ OPC_CheckInteger, 1, ++/* 74533*/ OPC_CheckType, MVT::i32, ++/* 74535*/ OPC_MoveParent, ++/* 74536*/ OPC_CheckType, MVT::v16i16, ++/* 74538*/ OPC_MoveParent, ++/* 74539*/ OPC_CheckType, MVT::v16i16, ++/* 74541*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 74543*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_HU), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 175 ++ // Dst: (XVAVGR_HU:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/* 74551*/ /*Scope*/ 87|128,1/*215*/, /*->74768*/ ++/* 74553*/ OPC_RecordChild0, // #1 = $a ++/* 74554*/ OPC_MoveChild1, ++/* 74555*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 74558*/ OPC_CheckChild0Integer, 1, ++/* 74560*/ OPC_CheckChild0Type, MVT::i32, ++/* 74562*/ OPC_CheckChild1Integer, 1, ++/* 74564*/ OPC_CheckChild1Type, MVT::i32, ++/* 74566*/ OPC_CheckChild2Integer, 1, ++/* 74568*/ OPC_CheckChild2Type, MVT::i32, ++/* 74570*/ OPC_CheckChild3Integer, 1, ++/* 74572*/ OPC_CheckChild3Type, MVT::i32, ++/* 74574*/ OPC_CheckChild4Integer, 1, ++/* 74576*/ OPC_CheckChild4Type, MVT::i32, ++/* 74578*/ OPC_MoveChild5, ++/* 74579*/ OPC_CheckInteger, 1, ++/* 74581*/ OPC_CheckType, MVT::i32, ++/* 74583*/ OPC_MoveParent, ++/* 74584*/ OPC_MoveChild6, ++/* 74585*/ OPC_CheckInteger, 1, ++/* 74587*/ OPC_CheckType, MVT::i32, ++/* 74589*/ OPC_MoveParent, ++/* 74590*/ OPC_MoveChild7, ++/* 74591*/ OPC_CheckInteger, 1, ++/* 74593*/ OPC_CheckType, MVT::i32, ++/* 74595*/ OPC_MoveParent, ++/* 74596*/ OPC_MoveChild, 8, ++/* 74598*/ OPC_CheckInteger, 1, ++/* 74600*/ OPC_CheckType, MVT::i32, ++/* 74602*/ OPC_MoveParent, ++/* 74603*/ OPC_MoveChild, 9, ++/* 74605*/ OPC_CheckInteger, 1, ++/* 74607*/ OPC_CheckType, MVT::i32, ++/* 74609*/ OPC_MoveParent, ++/* 74610*/ OPC_MoveChild, 10, ++/* 74612*/ OPC_CheckInteger, 1, ++/* 74614*/ OPC_CheckType, MVT::i32, ++/* 74616*/ OPC_MoveParent, ++/* 74617*/ OPC_MoveChild, 11, ++/* 74619*/ OPC_CheckInteger, 1, ++/* 74621*/ OPC_CheckType, MVT::i32, ++/* 74623*/ OPC_MoveParent, ++/* 74624*/ OPC_MoveChild, 12, ++/* 74626*/ OPC_CheckInteger, 1, ++/* 74628*/ OPC_CheckType, MVT::i32, ++/* 74630*/ OPC_MoveParent, ++/* 74631*/ OPC_MoveChild, 13, ++/* 74633*/ OPC_CheckInteger, 1, ++/* 74635*/ OPC_CheckType, MVT::i32, ++/* 74637*/ OPC_MoveParent, ++/* 74638*/ OPC_MoveChild, 14, ++/* 74640*/ OPC_CheckInteger, 1, ++/* 74642*/ OPC_CheckType, MVT::i32, ++/* 74644*/ OPC_MoveParent, ++/* 74645*/ OPC_MoveChild, 15, ++/* 74647*/ OPC_CheckInteger, 1, ++/* 74649*/ OPC_CheckType, MVT::i32, ++/* 74651*/ OPC_MoveParent, ++/* 74652*/ OPC_MoveParent, ++/* 74653*/ OPC_MoveParent, ++/* 74654*/ OPC_MoveParent, ++/* 74655*/ OPC_MoveChild1, ++/* 74656*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 74659*/ OPC_CheckChild0Integer, 1, ++/* 74661*/ OPC_CheckChild0Type, MVT::i32, ++/* 74663*/ OPC_CheckChild1Integer, 1, ++/* 74665*/ OPC_CheckChild1Type, MVT::i32, ++/* 74667*/ OPC_CheckChild2Integer, 1, ++/* 74669*/ OPC_CheckChild2Type, MVT::i32, ++/* 74671*/ OPC_CheckChild3Integer, 1, ++/* 74673*/ OPC_CheckChild3Type, MVT::i32, ++/* 74675*/ OPC_CheckChild4Integer, 1, ++/* 74677*/ OPC_CheckChild4Type, MVT::i32, ++/* 74679*/ OPC_MoveChild5, ++/* 74680*/ OPC_CheckInteger, 1, ++/* 74682*/ OPC_CheckType, MVT::i32, ++/* 74684*/ OPC_MoveParent, ++/* 74685*/ OPC_MoveChild6, ++/* 74686*/ OPC_CheckInteger, 1, ++/* 74688*/ OPC_CheckType, MVT::i32, ++/* 74690*/ OPC_MoveParent, ++/* 74691*/ OPC_MoveChild7, ++/* 74692*/ OPC_CheckInteger, 1, ++/* 74694*/ OPC_CheckType, MVT::i32, ++/* 74696*/ OPC_MoveParent, ++/* 74697*/ OPC_MoveChild, 8, ++/* 74699*/ OPC_CheckInteger, 1, ++/* 74701*/ OPC_CheckType, MVT::i32, ++/* 74703*/ OPC_MoveParent, ++/* 74704*/ OPC_MoveChild, 9, ++/* 74706*/ OPC_CheckInteger, 1, ++/* 74708*/ OPC_CheckType, MVT::i32, ++/* 74710*/ OPC_MoveParent, ++/* 74711*/ OPC_MoveChild, 10, ++/* 74713*/ OPC_CheckInteger, 1, ++/* 74715*/ OPC_CheckType, MVT::i32, ++/* 74717*/ OPC_MoveParent, ++/* 74718*/ OPC_MoveChild, 11, ++/* 74720*/ OPC_CheckInteger, 1, ++/* 74722*/ OPC_CheckType, MVT::i32, ++/* 74724*/ OPC_MoveParent, ++/* 74725*/ OPC_MoveChild, 12, ++/* 74727*/ OPC_CheckInteger, 1, ++/* 74729*/ OPC_CheckType, MVT::i32, ++/* 74731*/ OPC_MoveParent, ++/* 74732*/ OPC_MoveChild, 13, ++/* 74734*/ OPC_CheckInteger, 1, ++/* 74736*/ OPC_CheckType, MVT::i32, ++/* 74738*/ OPC_MoveParent, ++/* 74739*/ OPC_MoveChild, 14, ++/* 74741*/ OPC_CheckInteger, 1, ++/* 74743*/ OPC_CheckType, MVT::i32, ++/* 74745*/ OPC_MoveParent, ++/* 74746*/ OPC_MoveChild, 15, ++/* 74748*/ OPC_CheckInteger, 1, ++/* 74750*/ OPC_CheckType, MVT::i32, ++/* 74752*/ OPC_MoveParent, ++/* 74753*/ OPC_CheckType, MVT::v16i16, ++/* 74755*/ OPC_MoveParent, ++/* 74756*/ OPC_CheckType, MVT::v16i16, ++/* 74758*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 74760*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_HU), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 175 ++ // Dst: (XVAVGR_HU:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/* 74768*/ 0, /*End of Scope*/ ++/* 74769*/ /*Scope*/ 99|128,1/*227*/, /*->74998*/ ++/* 74771*/ OPC_RecordChild1, // #1 = $b ++/* 74772*/ OPC_MoveParent, ++/* 74773*/ OPC_MoveChild1, ++/* 74774*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 74777*/ OPC_CheckChild0Integer, 1, ++/* 74779*/ OPC_CheckChild0Type, MVT::i32, ++/* 74781*/ OPC_CheckChild1Integer, 1, ++/* 74783*/ OPC_CheckChild1Type, MVT::i32, ++/* 74785*/ OPC_CheckChild2Integer, 1, ++/* 74787*/ OPC_CheckChild2Type, MVT::i32, ++/* 74789*/ OPC_CheckChild3Integer, 1, ++/* 74791*/ OPC_CheckChild3Type, MVT::i32, ++/* 74793*/ OPC_CheckChild4Integer, 1, ++/* 74795*/ OPC_CheckChild4Type, MVT::i32, ++/* 74797*/ OPC_MoveChild5, ++/* 74798*/ OPC_CheckInteger, 1, ++/* 74800*/ OPC_CheckType, MVT::i32, ++/* 74802*/ OPC_MoveParent, ++/* 74803*/ OPC_MoveChild6, ++/* 74804*/ OPC_CheckInteger, 1, ++/* 74806*/ OPC_CheckType, MVT::i32, ++/* 74808*/ OPC_MoveParent, ++/* 74809*/ OPC_MoveChild7, ++/* 74810*/ OPC_CheckInteger, 1, ++/* 74812*/ OPC_CheckType, MVT::i32, ++/* 74814*/ OPC_MoveParent, ++/* 74815*/ OPC_MoveChild, 8, ++/* 74817*/ OPC_CheckInteger, 1, ++/* 74819*/ OPC_CheckType, MVT::i32, ++/* 74821*/ OPC_MoveParent, ++/* 74822*/ OPC_MoveChild, 9, ++/* 74824*/ OPC_CheckInteger, 1, ++/* 74826*/ OPC_CheckType, MVT::i32, ++/* 74828*/ OPC_MoveParent, ++/* 74829*/ OPC_MoveChild, 10, ++/* 74831*/ OPC_CheckInteger, 1, ++/* 74833*/ OPC_CheckType, MVT::i32, ++/* 74835*/ OPC_MoveParent, ++/* 74836*/ OPC_MoveChild, 11, ++/* 74838*/ OPC_CheckInteger, 1, ++/* 74840*/ OPC_CheckType, MVT::i32, ++/* 74842*/ OPC_MoveParent, ++/* 74843*/ OPC_MoveChild, 12, ++/* 74845*/ OPC_CheckInteger, 1, ++/* 74847*/ OPC_CheckType, MVT::i32, ++/* 74849*/ OPC_MoveParent, ++/* 74850*/ OPC_MoveChild, 13, ++/* 74852*/ OPC_CheckInteger, 1, ++/* 74854*/ OPC_CheckType, MVT::i32, ++/* 74856*/ OPC_MoveParent, ++/* 74857*/ OPC_MoveChild, 14, ++/* 74859*/ OPC_CheckInteger, 1, ++/* 74861*/ OPC_CheckType, MVT::i32, ++/* 74863*/ OPC_MoveParent, ++/* 74864*/ OPC_MoveChild, 15, ++/* 74866*/ OPC_CheckInteger, 1, ++/* 74868*/ OPC_CheckType, MVT::i32, ++/* 74870*/ OPC_MoveParent, ++/* 74871*/ OPC_MoveChild, 16, ++/* 74873*/ OPC_CheckInteger, 1, ++/* 74875*/ OPC_CheckType, MVT::i32, ++/* 74877*/ OPC_MoveParent, ++/* 74878*/ OPC_MoveChild, 17, ++/* 74880*/ OPC_CheckInteger, 1, ++/* 74882*/ OPC_CheckType, MVT::i32, ++/* 74884*/ OPC_MoveParent, ++/* 74885*/ OPC_MoveChild, 18, ++/* 74887*/ OPC_CheckInteger, 1, ++/* 74889*/ OPC_CheckType, MVT::i32, ++/* 74891*/ OPC_MoveParent, ++/* 74892*/ OPC_MoveChild, 19, ++/* 74894*/ OPC_CheckInteger, 1, ++/* 74896*/ OPC_CheckType, MVT::i32, ++/* 74898*/ OPC_MoveParent, ++/* 74899*/ OPC_MoveChild, 20, ++/* 74901*/ OPC_CheckInteger, 1, ++/* 74903*/ OPC_CheckType, MVT::i32, ++/* 74905*/ OPC_MoveParent, ++/* 74906*/ OPC_MoveChild, 21, ++/* 74908*/ OPC_CheckInteger, 1, ++/* 74910*/ OPC_CheckType, MVT::i32, ++/* 74912*/ OPC_MoveParent, ++/* 74913*/ OPC_MoveChild, 22, ++/* 74915*/ OPC_CheckInteger, 1, ++/* 74917*/ OPC_CheckType, MVT::i32, ++/* 74919*/ OPC_MoveParent, ++/* 74920*/ OPC_MoveChild, 23, ++/* 74922*/ OPC_CheckInteger, 1, ++/* 74924*/ OPC_CheckType, MVT::i32, ++/* 74926*/ OPC_MoveParent, ++/* 74927*/ OPC_MoveChild, 24, ++/* 74929*/ OPC_CheckInteger, 1, ++/* 74931*/ OPC_CheckType, MVT::i32, ++/* 74933*/ OPC_MoveParent, ++/* 74934*/ OPC_MoveChild, 25, ++/* 74936*/ OPC_CheckInteger, 1, ++/* 74938*/ OPC_CheckType, MVT::i32, ++/* 74940*/ OPC_MoveParent, ++/* 74941*/ OPC_MoveChild, 26, ++/* 74943*/ OPC_CheckInteger, 1, ++/* 74945*/ OPC_CheckType, MVT::i32, ++/* 74947*/ OPC_MoveParent, ++/* 74948*/ OPC_MoveChild, 27, ++/* 74950*/ OPC_CheckInteger, 1, ++/* 74952*/ OPC_CheckType, MVT::i32, ++/* 74954*/ OPC_MoveParent, ++/* 74955*/ OPC_MoveChild, 28, ++/* 74957*/ OPC_CheckInteger, 1, ++/* 74959*/ OPC_CheckType, MVT::i32, ++/* 74961*/ OPC_MoveParent, ++/* 74962*/ OPC_MoveChild, 29, ++/* 74964*/ OPC_CheckInteger, 1, ++/* 74966*/ OPC_CheckType, MVT::i32, ++/* 74968*/ OPC_MoveParent, ++/* 74969*/ OPC_MoveChild, 30, ++/* 74971*/ OPC_CheckInteger, 1, ++/* 74973*/ OPC_CheckType, MVT::i32, ++/* 74975*/ OPC_MoveParent, ++/* 74976*/ OPC_MoveChild, 31, ++/* 74978*/ OPC_CheckInteger, 1, ++/* 74980*/ OPC_CheckType, MVT::i32, ++/* 74982*/ OPC_MoveParent, ++/* 74983*/ OPC_CheckType, MVT::v32i8, ++/* 74985*/ OPC_MoveParent, ++/* 74986*/ OPC_CheckType, MVT::v32i8, ++/* 74988*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 74990*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_BU), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 169 ++ // Dst: (XVAVG_BU:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/* 74998*/ 0, /*End of Scope*/ ++/* 74999*/ 0, /*End of Scope*/ ++/* 75000*/ /*Scope*/ 37|128,5/*677*/, /*->75679*/ ++/* 75002*/ OPC_RecordChild0, // #0 = $vs ++/* 75003*/ OPC_MoveChild1, ++/* 75004*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 75007*/ OPC_Scope, 77|128,2/*333*/, /*->75343*/ // 2 children in Scope ++/* 75010*/ OPC_RecordChild0, // #1 = $vt ++/* 75011*/ OPC_MoveChild1, ++/* 75012*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 75015*/ OPC_MoveChild0, ++/* 75016*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75019*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75021*/ OPC_CheckType, MVT::i32, ++/* 75023*/ OPC_MoveParent, ++/* 75024*/ OPC_MoveChild1, ++/* 75025*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75028*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75030*/ OPC_CheckType, MVT::i32, ++/* 75032*/ OPC_MoveParent, ++/* 75033*/ OPC_MoveChild2, ++/* 75034*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75037*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75039*/ OPC_CheckType, MVT::i32, ++/* 75041*/ OPC_MoveParent, ++/* 75042*/ OPC_MoveChild3, ++/* 75043*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75046*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75048*/ OPC_CheckType, MVT::i32, ++/* 75050*/ OPC_MoveParent, ++/* 75051*/ OPC_MoveChild4, ++/* 75052*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75055*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75057*/ OPC_CheckType, MVT::i32, ++/* 75059*/ OPC_MoveParent, ++/* 75060*/ OPC_MoveChild5, ++/* 75061*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75064*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75066*/ OPC_CheckType, MVT::i32, ++/* 75068*/ OPC_MoveParent, ++/* 75069*/ OPC_MoveChild6, ++/* 75070*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75073*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75075*/ OPC_CheckType, MVT::i32, ++/* 75077*/ OPC_MoveParent, ++/* 75078*/ OPC_MoveChild7, ++/* 75079*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75082*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75084*/ OPC_CheckType, MVT::i32, ++/* 75086*/ OPC_MoveParent, ++/* 75087*/ OPC_MoveChild, 8, ++/* 75089*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75092*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75094*/ OPC_CheckType, MVT::i32, ++/* 75096*/ OPC_MoveParent, ++/* 75097*/ OPC_MoveChild, 9, ++/* 75099*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75102*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75104*/ OPC_CheckType, MVT::i32, ++/* 75106*/ OPC_MoveParent, ++/* 75107*/ OPC_MoveChild, 10, ++/* 75109*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75112*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75114*/ OPC_CheckType, MVT::i32, ++/* 75116*/ OPC_MoveParent, ++/* 75117*/ OPC_MoveChild, 11, ++/* 75119*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75122*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75124*/ OPC_CheckType, MVT::i32, ++/* 75126*/ OPC_MoveParent, ++/* 75127*/ OPC_MoveChild, 12, ++/* 75129*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75132*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75134*/ OPC_CheckType, MVT::i32, ++/* 75136*/ OPC_MoveParent, ++/* 75137*/ OPC_MoveChild, 13, ++/* 75139*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75142*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75144*/ OPC_CheckType, MVT::i32, ++/* 75146*/ OPC_MoveParent, ++/* 75147*/ OPC_MoveChild, 14, ++/* 75149*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75152*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75154*/ OPC_CheckType, MVT::i32, ++/* 75156*/ OPC_MoveParent, ++/* 75157*/ OPC_MoveChild, 15, ++/* 75159*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75162*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75164*/ OPC_CheckType, MVT::i32, ++/* 75166*/ OPC_MoveParent, ++/* 75167*/ OPC_MoveChild, 16, ++/* 75169*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75172*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75174*/ OPC_CheckType, MVT::i32, ++/* 75176*/ OPC_MoveParent, ++/* 75177*/ OPC_MoveChild, 17, ++/* 75179*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75182*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75184*/ OPC_CheckType, MVT::i32, ++/* 75186*/ OPC_MoveParent, ++/* 75187*/ OPC_MoveChild, 18, ++/* 75189*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75192*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75194*/ OPC_CheckType, MVT::i32, ++/* 75196*/ OPC_MoveParent, ++/* 75197*/ OPC_MoveChild, 19, ++/* 75199*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75202*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75204*/ OPC_CheckType, MVT::i32, ++/* 75206*/ OPC_MoveParent, ++/* 75207*/ OPC_MoveChild, 20, ++/* 75209*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75212*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75214*/ OPC_CheckType, MVT::i32, ++/* 75216*/ OPC_MoveParent, ++/* 75217*/ OPC_MoveChild, 21, ++/* 75219*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75222*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75224*/ OPC_CheckType, MVT::i32, ++/* 75226*/ OPC_MoveParent, ++/* 75227*/ OPC_MoveChild, 22, ++/* 75229*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75232*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75234*/ OPC_CheckType, MVT::i32, ++/* 75236*/ OPC_MoveParent, ++/* 75237*/ OPC_MoveChild, 23, ++/* 75239*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75242*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75244*/ OPC_CheckType, MVT::i32, ++/* 75246*/ OPC_MoveParent, ++/* 75247*/ OPC_MoveChild, 24, ++/* 75249*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75252*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75254*/ OPC_CheckType, MVT::i32, ++/* 75256*/ OPC_MoveParent, ++/* 75257*/ OPC_MoveChild, 25, ++/* 75259*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75262*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75264*/ OPC_CheckType, MVT::i32, ++/* 75266*/ OPC_MoveParent, ++/* 75267*/ OPC_MoveChild, 26, ++/* 75269*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75272*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75274*/ OPC_CheckType, MVT::i32, ++/* 75276*/ OPC_MoveParent, ++/* 75277*/ OPC_MoveChild, 27, ++/* 75279*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75282*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75284*/ OPC_CheckType, MVT::i32, ++/* 75286*/ OPC_MoveParent, ++/* 75287*/ OPC_MoveChild, 28, ++/* 75289*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75292*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75294*/ OPC_CheckType, MVT::i32, ++/* 75296*/ OPC_MoveParent, ++/* 75297*/ OPC_MoveChild, 29, ++/* 75299*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75302*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75304*/ OPC_CheckType, MVT::i32, ++/* 75306*/ OPC_MoveParent, ++/* 75307*/ OPC_MoveChild, 30, ++/* 75309*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75312*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75314*/ OPC_CheckType, MVT::i32, ++/* 75316*/ OPC_MoveParent, ++/* 75317*/ OPC_MoveChild, 31, ++/* 75319*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75322*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75324*/ OPC_CheckType, MVT::i32, ++/* 75326*/ OPC_MoveParent, ++/* 75327*/ OPC_MoveParent, ++/* 75328*/ OPC_CheckType, MVT::v32i8, ++/* 75330*/ OPC_MoveParent, ++/* 75331*/ OPC_CheckType, MVT::v32i8, ++/* 75333*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 75335*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRL_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vs, (and:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vt, (build_vector:{ *:[v32i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))) - Complexity = 137 ++ // Dst: (XVSRL_B:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vs, v32i8:{ *:[v32i8] }:$vt) ++/* 75343*/ /*Scope*/ 77|128,2/*333*/, /*->75678*/ ++/* 75345*/ OPC_MoveChild0, ++/* 75346*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 75349*/ OPC_MoveChild0, ++/* 75350*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75353*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75355*/ OPC_CheckType, MVT::i32, ++/* 75357*/ OPC_MoveParent, ++/* 75358*/ OPC_MoveChild1, ++/* 75359*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75362*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75364*/ OPC_CheckType, MVT::i32, ++/* 75366*/ OPC_MoveParent, ++/* 75367*/ OPC_MoveChild2, ++/* 75368*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75371*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75373*/ OPC_CheckType, MVT::i32, ++/* 75375*/ OPC_MoveParent, ++/* 75376*/ OPC_MoveChild3, ++/* 75377*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75380*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75382*/ OPC_CheckType, MVT::i32, ++/* 75384*/ OPC_MoveParent, ++/* 75385*/ OPC_MoveChild4, ++/* 75386*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75389*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75391*/ OPC_CheckType, MVT::i32, ++/* 75393*/ OPC_MoveParent, ++/* 75394*/ OPC_MoveChild5, ++/* 75395*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75398*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75400*/ OPC_CheckType, MVT::i32, ++/* 75402*/ OPC_MoveParent, ++/* 75403*/ OPC_MoveChild6, ++/* 75404*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75407*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75409*/ OPC_CheckType, MVT::i32, ++/* 75411*/ OPC_MoveParent, ++/* 75412*/ OPC_MoveChild7, ++/* 75413*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75416*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75418*/ OPC_CheckType, MVT::i32, ++/* 75420*/ OPC_MoveParent, ++/* 75421*/ OPC_MoveChild, 8, ++/* 75423*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75426*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75428*/ OPC_CheckType, MVT::i32, ++/* 75430*/ OPC_MoveParent, ++/* 75431*/ OPC_MoveChild, 9, ++/* 75433*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75436*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75438*/ OPC_CheckType, MVT::i32, ++/* 75440*/ OPC_MoveParent, ++/* 75441*/ OPC_MoveChild, 10, ++/* 75443*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75446*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75448*/ OPC_CheckType, MVT::i32, ++/* 75450*/ OPC_MoveParent, ++/* 75451*/ OPC_MoveChild, 11, ++/* 75453*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75456*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75458*/ OPC_CheckType, MVT::i32, ++/* 75460*/ OPC_MoveParent, ++/* 75461*/ OPC_MoveChild, 12, ++/* 75463*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75466*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75468*/ OPC_CheckType, MVT::i32, ++/* 75470*/ OPC_MoveParent, ++/* 75471*/ OPC_MoveChild, 13, ++/* 75473*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75476*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75478*/ OPC_CheckType, MVT::i32, ++/* 75480*/ OPC_MoveParent, ++/* 75481*/ OPC_MoveChild, 14, ++/* 75483*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75486*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75488*/ OPC_CheckType, MVT::i32, ++/* 75490*/ OPC_MoveParent, ++/* 75491*/ OPC_MoveChild, 15, ++/* 75493*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75496*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75498*/ OPC_CheckType, MVT::i32, ++/* 75500*/ OPC_MoveParent, ++/* 75501*/ OPC_MoveChild, 16, ++/* 75503*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75506*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75508*/ OPC_CheckType, MVT::i32, ++/* 75510*/ OPC_MoveParent, ++/* 75511*/ OPC_MoveChild, 17, ++/* 75513*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75516*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75518*/ OPC_CheckType, MVT::i32, ++/* 75520*/ OPC_MoveParent, ++/* 75521*/ OPC_MoveChild, 18, ++/* 75523*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75526*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75528*/ OPC_CheckType, MVT::i32, ++/* 75530*/ OPC_MoveParent, ++/* 75531*/ OPC_MoveChild, 19, ++/* 75533*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75536*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75538*/ OPC_CheckType, MVT::i32, ++/* 75540*/ OPC_MoveParent, ++/* 75541*/ OPC_MoveChild, 20, ++/* 75543*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75546*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75548*/ OPC_CheckType, MVT::i32, ++/* 75550*/ OPC_MoveParent, ++/* 75551*/ OPC_MoveChild, 21, ++/* 75553*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75556*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75558*/ OPC_CheckType, MVT::i32, ++/* 75560*/ OPC_MoveParent, ++/* 75561*/ OPC_MoveChild, 22, ++/* 75563*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75566*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75568*/ OPC_CheckType, MVT::i32, ++/* 75570*/ OPC_MoveParent, ++/* 75571*/ OPC_MoveChild, 23, ++/* 75573*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75576*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75578*/ OPC_CheckType, MVT::i32, ++/* 75580*/ OPC_MoveParent, ++/* 75581*/ OPC_MoveChild, 24, ++/* 75583*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75586*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75588*/ OPC_CheckType, MVT::i32, ++/* 75590*/ OPC_MoveParent, ++/* 75591*/ OPC_MoveChild, 25, ++/* 75593*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75596*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75598*/ OPC_CheckType, MVT::i32, ++/* 75600*/ OPC_MoveParent, ++/* 75601*/ OPC_MoveChild, 26, ++/* 75603*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75606*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75608*/ OPC_CheckType, MVT::i32, ++/* 75610*/ OPC_MoveParent, ++/* 75611*/ OPC_MoveChild, 27, ++/* 75613*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75616*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75618*/ OPC_CheckType, MVT::i32, ++/* 75620*/ OPC_MoveParent, ++/* 75621*/ OPC_MoveChild, 28, ++/* 75623*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75626*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75628*/ OPC_CheckType, MVT::i32, ++/* 75630*/ OPC_MoveParent, ++/* 75631*/ OPC_MoveChild, 29, ++/* 75633*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75636*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75638*/ OPC_CheckType, MVT::i32, ++/* 75640*/ OPC_MoveParent, ++/* 75641*/ OPC_MoveChild, 30, ++/* 75643*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75646*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75648*/ OPC_CheckType, MVT::i32, ++/* 75650*/ OPC_MoveParent, ++/* 75651*/ OPC_MoveChild, 31, ++/* 75653*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 75656*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 75658*/ OPC_CheckType, MVT::i32, ++/* 75660*/ OPC_MoveParent, ++/* 75661*/ OPC_MoveParent, ++/* 75662*/ OPC_RecordChild1, // #1 = $vt ++/* 75663*/ OPC_CheckType, MVT::v32i8, ++/* 75665*/ OPC_MoveParent, ++/* 75666*/ OPC_CheckType, MVT::v32i8, ++/* 75668*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 75670*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRL_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vs, (and:{ *:[v32i8] } (build_vector:{ *:[v32i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v32i8:{ *:[v32i8] }:$vt)) - Complexity = 137 ++ // Dst: (XVSRL_B:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vs, v32i8:{ *:[v32i8] }:$vt) ++/* 75678*/ 0, /*End of Scope*/ ++/* 75679*/ /*Scope*/ 77|128,10/*1357*/, /*->77038*/ ++/* 75681*/ OPC_MoveChild0, ++/* 75682*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/* 75685*/ OPC_Scope, 67|128,3/*451*/, /*->76139*/ // 4 children in Scope ++/* 75688*/ OPC_MoveChild0, ++/* 75689*/ OPC_SwitchOpcode /*2 cases */, 121, TARGET_VAL(ISD::BUILD_VECTOR),// ->75814 ++/* 75693*/ OPC_CheckChild0Integer, 1, ++/* 75695*/ OPC_CheckChild0Type, MVT::i32, ++/* 75697*/ OPC_CheckChild1Integer, 1, ++/* 75699*/ OPC_CheckChild1Type, MVT::i32, ++/* 75701*/ OPC_CheckChild2Integer, 1, ++/* 75703*/ OPC_CheckChild2Type, MVT::i32, ++/* 75705*/ OPC_CheckChild3Integer, 1, ++/* 75707*/ OPC_CheckChild3Type, MVT::i32, ++/* 75709*/ OPC_CheckChild4Integer, 1, ++/* 75711*/ OPC_CheckChild4Type, MVT::i32, ++/* 75713*/ OPC_MoveChild5, ++/* 75714*/ OPC_CheckInteger, 1, ++/* 75716*/ OPC_CheckType, MVT::i32, ++/* 75718*/ OPC_MoveParent, ++/* 75719*/ OPC_MoveChild6, ++/* 75720*/ OPC_CheckInteger, 1, ++/* 75722*/ OPC_CheckType, MVT::i32, ++/* 75724*/ OPC_MoveParent, ++/* 75725*/ OPC_MoveChild7, ++/* 75726*/ OPC_CheckInteger, 1, ++/* 75728*/ OPC_CheckType, MVT::i32, ++/* 75730*/ OPC_MoveParent, ++/* 75731*/ OPC_MoveParent, ++/* 75732*/ OPC_MoveChild1, ++/* 75733*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/* 75736*/ OPC_RecordChild0, // #0 = $a ++/* 75737*/ OPC_RecordChild1, // #1 = $b ++/* 75738*/ OPC_MoveParent, ++/* 75739*/ OPC_MoveParent, ++/* 75740*/ OPC_MoveChild1, ++/* 75741*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 75744*/ OPC_CheckChild0Integer, 1, ++/* 75746*/ OPC_CheckChild0Type, MVT::i32, ++/* 75748*/ OPC_CheckChild1Integer, 1, ++/* 75750*/ OPC_CheckChild1Type, MVT::i32, ++/* 75752*/ OPC_CheckChild2Integer, 1, ++/* 75754*/ OPC_CheckChild2Type, MVT::i32, ++/* 75756*/ OPC_CheckChild3Integer, 1, ++/* 75758*/ OPC_CheckChild3Type, MVT::i32, ++/* 75760*/ OPC_CheckChild4Integer, 1, ++/* 75762*/ OPC_CheckChild4Type, MVT::i32, ++/* 75764*/ OPC_MoveChild5, ++/* 75765*/ OPC_CheckInteger, 1, ++/* 75767*/ OPC_CheckType, MVT::i32, ++/* 75769*/ OPC_MoveParent, ++/* 75770*/ OPC_MoveChild6, ++/* 75771*/ OPC_CheckInteger, 1, ++/* 75773*/ OPC_CheckType, MVT::i32, ++/* 75775*/ OPC_MoveParent, ++/* 75776*/ OPC_MoveChild7, ++/* 75777*/ OPC_CheckInteger, 1, ++/* 75779*/ OPC_CheckType, MVT::i32, ++/* 75781*/ OPC_MoveParent, ++/* 75782*/ OPC_SwitchType /*2 cases */, 13, MVT::v8i16,// ->75798 ++/* 75785*/ OPC_MoveParent, ++/* 75786*/ OPC_CheckType, MVT::v8i16, ++/* 75788*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 75790*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_HU), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 95 ++ // Dst: (VAVGR_HU:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/* 75798*/ /*SwitchType*/ 13, MVT::v8i32,// ->75813 ++/* 75800*/ OPC_MoveParent, ++/* 75801*/ OPC_CheckType, MVT::v8i32, ++/* 75803*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 75805*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_WU), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 95 ++ // Dst: (XVAVGR_WU:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/* 75813*/ 0, // EndSwitchType ++/* 75814*/ /*SwitchOpcode*/ 64|128,2/*320*/, TARGET_VAL(ISD::ADD),// ->76138 ++/* 75818*/ OPC_Scope, 104, /*->75924*/ // 2 children in Scope ++/* 75820*/ OPC_MoveChild0, ++/* 75821*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 75824*/ OPC_CheckChild0Integer, 1, ++/* 75826*/ OPC_CheckChild0Type, MVT::i32, ++/* 75828*/ OPC_CheckChild1Integer, 1, ++/* 75830*/ OPC_CheckChild1Type, MVT::i32, ++/* 75832*/ OPC_CheckChild2Integer, 1, ++/* 75834*/ OPC_CheckChild2Type, MVT::i32, ++/* 75836*/ OPC_CheckChild3Integer, 1, ++/* 75838*/ OPC_CheckChild3Type, MVT::i32, ++/* 75840*/ OPC_CheckChild4Integer, 1, ++/* 75842*/ OPC_CheckChild4Type, MVT::i32, ++/* 75844*/ OPC_MoveChild5, ++/* 75845*/ OPC_CheckInteger, 1, ++/* 75847*/ OPC_CheckType, MVT::i32, ++/* 75849*/ OPC_MoveParent, ++/* 75850*/ OPC_MoveChild6, ++/* 75851*/ OPC_CheckInteger, 1, ++/* 75853*/ OPC_CheckType, MVT::i32, ++/* 75855*/ OPC_MoveParent, ++/* 75856*/ OPC_MoveChild7, ++/* 75857*/ OPC_CheckInteger, 1, ++/* 75859*/ OPC_CheckType, MVT::i32, ++/* 75861*/ OPC_MoveParent, ++/* 75862*/ OPC_MoveParent, ++/* 75863*/ OPC_RecordChild1, // #0 = $a ++/* 75864*/ OPC_MoveParent, ++/* 75865*/ OPC_RecordChild1, // #1 = $b ++/* 75866*/ OPC_MoveParent, ++/* 75867*/ OPC_MoveChild1, ++/* 75868*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 75871*/ OPC_CheckChild0Integer, 1, ++/* 75873*/ OPC_CheckChild0Type, MVT::i32, ++/* 75875*/ OPC_CheckChild1Integer, 1, ++/* 75877*/ OPC_CheckChild1Type, MVT::i32, ++/* 75879*/ OPC_CheckChild2Integer, 1, ++/* 75881*/ OPC_CheckChild2Type, MVT::i32, ++/* 75883*/ OPC_CheckChild3Integer, 1, ++/* 75885*/ OPC_CheckChild3Type, MVT::i32, ++/* 75887*/ OPC_CheckChild4Integer, 1, ++/* 75889*/ OPC_CheckChild4Type, MVT::i32, ++/* 75891*/ OPC_MoveChild5, ++/* 75892*/ OPC_CheckInteger, 1, ++/* 75894*/ OPC_CheckType, MVT::i32, ++/* 75896*/ OPC_MoveParent, ++/* 75897*/ OPC_MoveChild6, ++/* 75898*/ OPC_CheckInteger, 1, ++/* 75900*/ OPC_CheckType, MVT::i32, ++/* 75902*/ OPC_MoveParent, ++/* 75903*/ OPC_MoveChild7, ++/* 75904*/ OPC_CheckInteger, 1, ++/* 75906*/ OPC_CheckType, MVT::i32, ++/* 75908*/ OPC_MoveParent, ++/* 75909*/ OPC_CheckType, MVT::v8i16, ++/* 75911*/ OPC_MoveParent, ++/* 75912*/ OPC_CheckType, MVT::v8i16, ++/* 75914*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 75916*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_HU), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a), LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 95 ++ // Dst: (VAVGR_HU:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/* 75924*/ /*Scope*/ 83|128,1/*211*/, /*->76137*/ ++/* 75926*/ OPC_RecordChild0, // #0 = $a ++/* 75927*/ OPC_Scope, 103, /*->76032*/ // 2 children in Scope ++/* 75929*/ OPC_MoveChild1, ++/* 75930*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 75933*/ OPC_CheckChild0Integer, 1, ++/* 75935*/ OPC_CheckChild0Type, MVT::i32, ++/* 75937*/ OPC_CheckChild1Integer, 1, ++/* 75939*/ OPC_CheckChild1Type, MVT::i32, ++/* 75941*/ OPC_CheckChild2Integer, 1, ++/* 75943*/ OPC_CheckChild2Type, MVT::i32, ++/* 75945*/ OPC_CheckChild3Integer, 1, ++/* 75947*/ OPC_CheckChild3Type, MVT::i32, ++/* 75949*/ OPC_CheckChild4Integer, 1, ++/* 75951*/ OPC_CheckChild4Type, MVT::i32, ++/* 75953*/ OPC_MoveChild5, ++/* 75954*/ OPC_CheckInteger, 1, ++/* 75956*/ OPC_CheckType, MVT::i32, ++/* 75958*/ OPC_MoveParent, ++/* 75959*/ OPC_MoveChild6, ++/* 75960*/ OPC_CheckInteger, 1, ++/* 75962*/ OPC_CheckType, MVT::i32, ++/* 75964*/ OPC_MoveParent, ++/* 75965*/ OPC_MoveChild7, ++/* 75966*/ OPC_CheckInteger, 1, ++/* 75968*/ OPC_CheckType, MVT::i32, ++/* 75970*/ OPC_MoveParent, ++/* 75971*/ OPC_MoveParent, ++/* 75972*/ OPC_MoveParent, ++/* 75973*/ OPC_RecordChild1, // #1 = $b ++/* 75974*/ OPC_MoveParent, ++/* 75975*/ OPC_MoveChild1, ++/* 75976*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 75979*/ OPC_CheckChild0Integer, 1, ++/* 75981*/ OPC_CheckChild0Type, MVT::i32, ++/* 75983*/ OPC_CheckChild1Integer, 1, ++/* 75985*/ OPC_CheckChild1Type, MVT::i32, ++/* 75987*/ OPC_CheckChild2Integer, 1, ++/* 75989*/ OPC_CheckChild2Type, MVT::i32, ++/* 75991*/ OPC_CheckChild3Integer, 1, ++/* 75993*/ OPC_CheckChild3Type, MVT::i32, ++/* 75995*/ OPC_CheckChild4Integer, 1, ++/* 75997*/ OPC_CheckChild4Type, MVT::i32, ++/* 75999*/ OPC_MoveChild5, ++/* 76000*/ OPC_CheckInteger, 1, ++/* 76002*/ OPC_CheckType, MVT::i32, ++/* 76004*/ OPC_MoveParent, ++/* 76005*/ OPC_MoveChild6, ++/* 76006*/ OPC_CheckInteger, 1, ++/* 76008*/ OPC_CheckType, MVT::i32, ++/* 76010*/ OPC_MoveParent, ++/* 76011*/ OPC_MoveChild7, ++/* 76012*/ OPC_CheckInteger, 1, ++/* 76014*/ OPC_CheckType, MVT::i32, ++/* 76016*/ OPC_MoveParent, ++/* 76017*/ OPC_CheckType, MVT::v8i16, ++/* 76019*/ OPC_MoveParent, ++/* 76020*/ OPC_CheckType, MVT::v8i16, ++/* 76022*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 76024*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_HU), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 95 ++ // Dst: (VAVGR_HU:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/* 76032*/ /*Scope*/ 103, /*->76136*/ ++/* 76033*/ OPC_RecordChild1, // #1 = $b ++/* 76034*/ OPC_MoveParent, ++/* 76035*/ OPC_MoveChild1, ++/* 76036*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 76039*/ OPC_CheckChild0Integer, 1, ++/* 76041*/ OPC_CheckChild0Type, MVT::i32, ++/* 76043*/ OPC_CheckChild1Integer, 1, ++/* 76045*/ OPC_CheckChild1Type, MVT::i32, ++/* 76047*/ OPC_CheckChild2Integer, 1, ++/* 76049*/ OPC_CheckChild2Type, MVT::i32, ++/* 76051*/ OPC_CheckChild3Integer, 1, ++/* 76053*/ OPC_CheckChild3Type, MVT::i32, ++/* 76055*/ OPC_CheckChild4Integer, 1, ++/* 76057*/ OPC_CheckChild4Type, MVT::i32, ++/* 76059*/ OPC_MoveChild5, ++/* 76060*/ OPC_CheckInteger, 1, ++/* 76062*/ OPC_CheckType, MVT::i32, ++/* 76064*/ OPC_MoveParent, ++/* 76065*/ OPC_MoveChild6, ++/* 76066*/ OPC_CheckInteger, 1, ++/* 76068*/ OPC_CheckType, MVT::i32, ++/* 76070*/ OPC_MoveParent, ++/* 76071*/ OPC_MoveChild7, ++/* 76072*/ OPC_CheckInteger, 1, ++/* 76074*/ OPC_CheckType, MVT::i32, ++/* 76076*/ OPC_MoveParent, ++/* 76077*/ OPC_MoveParent, ++/* 76078*/ OPC_MoveParent, ++/* 76079*/ OPC_MoveChild1, ++/* 76080*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 76083*/ OPC_CheckChild0Integer, 1, ++/* 76085*/ OPC_CheckChild0Type, MVT::i32, ++/* 76087*/ OPC_CheckChild1Integer, 1, ++/* 76089*/ OPC_CheckChild1Type, MVT::i32, ++/* 76091*/ OPC_CheckChild2Integer, 1, ++/* 76093*/ OPC_CheckChild2Type, MVT::i32, ++/* 76095*/ OPC_CheckChild3Integer, 1, ++/* 76097*/ OPC_CheckChild3Type, MVT::i32, ++/* 76099*/ OPC_CheckChild4Integer, 1, ++/* 76101*/ OPC_CheckChild4Type, MVT::i32, ++/* 76103*/ OPC_MoveChild5, ++/* 76104*/ OPC_CheckInteger, 1, ++/* 76106*/ OPC_CheckType, MVT::i32, ++/* 76108*/ OPC_MoveParent, ++/* 76109*/ OPC_MoveChild6, ++/* 76110*/ OPC_CheckInteger, 1, ++/* 76112*/ OPC_CheckType, MVT::i32, ++/* 76114*/ OPC_MoveParent, ++/* 76115*/ OPC_MoveChild7, ++/* 76116*/ OPC_CheckInteger, 1, ++/* 76118*/ OPC_CheckType, MVT::i32, ++/* 76120*/ OPC_MoveParent, ++/* 76121*/ OPC_CheckType, MVT::v8i16, ++/* 76123*/ OPC_MoveParent, ++/* 76124*/ OPC_CheckType, MVT::v8i16, ++/* 76126*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 76128*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_HU), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 95 ++ // Dst: (VAVGR_HU:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/* 76136*/ 0, /*End of Scope*/ ++/* 76137*/ 0, /*End of Scope*/ ++/* 76138*/ 0, // EndSwitchOpcode ++/* 76139*/ /*Scope*/ 87|128,1/*215*/, /*->76356*/ ++/* 76141*/ OPC_RecordChild0, // #0 = $b ++/* 76142*/ OPC_MoveChild1, ++/* 76143*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/* 76146*/ OPC_Scope, 103, /*->76251*/ // 2 children in Scope ++/* 76148*/ OPC_MoveChild0, ++/* 76149*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 76152*/ OPC_CheckChild0Integer, 1, ++/* 76154*/ OPC_CheckChild0Type, MVT::i32, ++/* 76156*/ OPC_CheckChild1Integer, 1, ++/* 76158*/ OPC_CheckChild1Type, MVT::i32, ++/* 76160*/ OPC_CheckChild2Integer, 1, ++/* 76162*/ OPC_CheckChild2Type, MVT::i32, ++/* 76164*/ OPC_CheckChild3Integer, 1, ++/* 76166*/ OPC_CheckChild3Type, MVT::i32, ++/* 76168*/ OPC_CheckChild4Integer, 1, ++/* 76170*/ OPC_CheckChild4Type, MVT::i32, ++/* 76172*/ OPC_MoveChild5, ++/* 76173*/ OPC_CheckInteger, 1, ++/* 76175*/ OPC_CheckType, MVT::i32, ++/* 76177*/ OPC_MoveParent, ++/* 76178*/ OPC_MoveChild6, ++/* 76179*/ OPC_CheckInteger, 1, ++/* 76181*/ OPC_CheckType, MVT::i32, ++/* 76183*/ OPC_MoveParent, ++/* 76184*/ OPC_MoveChild7, ++/* 76185*/ OPC_CheckInteger, 1, ++/* 76187*/ OPC_CheckType, MVT::i32, ++/* 76189*/ OPC_MoveParent, ++/* 76190*/ OPC_MoveParent, ++/* 76191*/ OPC_RecordChild1, // #1 = $a ++/* 76192*/ OPC_MoveParent, ++/* 76193*/ OPC_MoveParent, ++/* 76194*/ OPC_MoveChild1, ++/* 76195*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 76198*/ OPC_CheckChild0Integer, 1, ++/* 76200*/ OPC_CheckChild0Type, MVT::i32, ++/* 76202*/ OPC_CheckChild1Integer, 1, ++/* 76204*/ OPC_CheckChild1Type, MVT::i32, ++/* 76206*/ OPC_CheckChild2Integer, 1, ++/* 76208*/ OPC_CheckChild2Type, MVT::i32, ++/* 76210*/ OPC_CheckChild3Integer, 1, ++/* 76212*/ OPC_CheckChild3Type, MVT::i32, ++/* 76214*/ OPC_CheckChild4Integer, 1, ++/* 76216*/ OPC_CheckChild4Type, MVT::i32, ++/* 76218*/ OPC_MoveChild5, ++/* 76219*/ OPC_CheckInteger, 1, ++/* 76221*/ OPC_CheckType, MVT::i32, ++/* 76223*/ OPC_MoveParent, ++/* 76224*/ OPC_MoveChild6, ++/* 76225*/ OPC_CheckInteger, 1, ++/* 76227*/ OPC_CheckType, MVT::i32, ++/* 76229*/ OPC_MoveParent, ++/* 76230*/ OPC_MoveChild7, ++/* 76231*/ OPC_CheckInteger, 1, ++/* 76233*/ OPC_CheckType, MVT::i32, ++/* 76235*/ OPC_MoveParent, ++/* 76236*/ OPC_CheckType, MVT::v8i16, ++/* 76238*/ OPC_MoveParent, ++/* 76239*/ OPC_CheckType, MVT::v8i16, ++/* 76241*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 76243*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_HU), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 95 ++ // Dst: (VAVGR_HU:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/* 76251*/ /*Scope*/ 103, /*->76355*/ ++/* 76252*/ OPC_RecordChild0, // #1 = $a ++/* 76253*/ OPC_MoveChild1, ++/* 76254*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 76257*/ OPC_CheckChild0Integer, 1, ++/* 76259*/ OPC_CheckChild0Type, MVT::i32, ++/* 76261*/ OPC_CheckChild1Integer, 1, ++/* 76263*/ OPC_CheckChild1Type, MVT::i32, ++/* 76265*/ OPC_CheckChild2Integer, 1, ++/* 76267*/ OPC_CheckChild2Type, MVT::i32, ++/* 76269*/ OPC_CheckChild3Integer, 1, ++/* 76271*/ OPC_CheckChild3Type, MVT::i32, ++/* 76273*/ OPC_CheckChild4Integer, 1, ++/* 76275*/ OPC_CheckChild4Type, MVT::i32, ++/* 76277*/ OPC_MoveChild5, ++/* 76278*/ OPC_CheckInteger, 1, ++/* 76280*/ OPC_CheckType, MVT::i32, ++/* 76282*/ OPC_MoveParent, ++/* 76283*/ OPC_MoveChild6, ++/* 76284*/ OPC_CheckInteger, 1, ++/* 76286*/ OPC_CheckType, MVT::i32, ++/* 76288*/ OPC_MoveParent, ++/* 76289*/ OPC_MoveChild7, ++/* 76290*/ OPC_CheckInteger, 1, ++/* 76292*/ OPC_CheckType, MVT::i32, ++/* 76294*/ OPC_MoveParent, ++/* 76295*/ OPC_MoveParent, ++/* 76296*/ OPC_MoveParent, ++/* 76297*/ OPC_MoveParent, ++/* 76298*/ OPC_MoveChild1, ++/* 76299*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 76302*/ OPC_CheckChild0Integer, 1, ++/* 76304*/ OPC_CheckChild0Type, MVT::i32, ++/* 76306*/ OPC_CheckChild1Integer, 1, ++/* 76308*/ OPC_CheckChild1Type, MVT::i32, ++/* 76310*/ OPC_CheckChild2Integer, 1, ++/* 76312*/ OPC_CheckChild2Type, MVT::i32, ++/* 76314*/ OPC_CheckChild3Integer, 1, ++/* 76316*/ OPC_CheckChild3Type, MVT::i32, ++/* 76318*/ OPC_CheckChild4Integer, 1, ++/* 76320*/ OPC_CheckChild4Type, MVT::i32, ++/* 76322*/ OPC_MoveChild5, ++/* 76323*/ OPC_CheckInteger, 1, ++/* 76325*/ OPC_CheckType, MVT::i32, ++/* 76327*/ OPC_MoveParent, ++/* 76328*/ OPC_MoveChild6, ++/* 76329*/ OPC_CheckInteger, 1, ++/* 76331*/ OPC_CheckType, MVT::i32, ++/* 76333*/ OPC_MoveParent, ++/* 76334*/ OPC_MoveChild7, ++/* 76335*/ OPC_CheckInteger, 1, ++/* 76337*/ OPC_CheckType, MVT::i32, ++/* 76339*/ OPC_MoveParent, ++/* 76340*/ OPC_CheckType, MVT::v8i16, ++/* 76342*/ OPC_MoveParent, ++/* 76343*/ OPC_CheckType, MVT::v8i16, ++/* 76345*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 76347*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_HU), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 95 ++ // Dst: (VAVGR_HU:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/* 76355*/ 0, /*End of Scope*/ ++/* 76356*/ /*Scope*/ 68|128,2/*324*/, /*->76682*/ ++/* 76358*/ OPC_MoveChild0, ++/* 76359*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/* 76362*/ OPC_Scope, 104, /*->76468*/ // 2 children in Scope ++/* 76364*/ OPC_MoveChild0, ++/* 76365*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 76368*/ OPC_CheckChild0Integer, 1, ++/* 76370*/ OPC_CheckChild0Type, MVT::i32, ++/* 76372*/ OPC_CheckChild1Integer, 1, ++/* 76374*/ OPC_CheckChild1Type, MVT::i32, ++/* 76376*/ OPC_CheckChild2Integer, 1, ++/* 76378*/ OPC_CheckChild2Type, MVT::i32, ++/* 76380*/ OPC_CheckChild3Integer, 1, ++/* 76382*/ OPC_CheckChild3Type, MVT::i32, ++/* 76384*/ OPC_CheckChild4Integer, 1, ++/* 76386*/ OPC_CheckChild4Type, MVT::i32, ++/* 76388*/ OPC_MoveChild5, ++/* 76389*/ OPC_CheckInteger, 1, ++/* 76391*/ OPC_CheckType, MVT::i32, ++/* 76393*/ OPC_MoveParent, ++/* 76394*/ OPC_MoveChild6, ++/* 76395*/ OPC_CheckInteger, 1, ++/* 76397*/ OPC_CheckType, MVT::i32, ++/* 76399*/ OPC_MoveParent, ++/* 76400*/ OPC_MoveChild7, ++/* 76401*/ OPC_CheckInteger, 1, ++/* 76403*/ OPC_CheckType, MVT::i32, ++/* 76405*/ OPC_MoveParent, ++/* 76406*/ OPC_MoveParent, ++/* 76407*/ OPC_RecordChild1, // #0 = $a ++/* 76408*/ OPC_MoveParent, ++/* 76409*/ OPC_RecordChild1, // #1 = $b ++/* 76410*/ OPC_MoveParent, ++/* 76411*/ OPC_MoveChild1, ++/* 76412*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 76415*/ OPC_CheckChild0Integer, 1, ++/* 76417*/ OPC_CheckChild0Type, MVT::i32, ++/* 76419*/ OPC_CheckChild1Integer, 1, ++/* 76421*/ OPC_CheckChild1Type, MVT::i32, ++/* 76423*/ OPC_CheckChild2Integer, 1, ++/* 76425*/ OPC_CheckChild2Type, MVT::i32, ++/* 76427*/ OPC_CheckChild3Integer, 1, ++/* 76429*/ OPC_CheckChild3Type, MVT::i32, ++/* 76431*/ OPC_CheckChild4Integer, 1, ++/* 76433*/ OPC_CheckChild4Type, MVT::i32, ++/* 76435*/ OPC_MoveChild5, ++/* 76436*/ OPC_CheckInteger, 1, ++/* 76438*/ OPC_CheckType, MVT::i32, ++/* 76440*/ OPC_MoveParent, ++/* 76441*/ OPC_MoveChild6, ++/* 76442*/ OPC_CheckInteger, 1, ++/* 76444*/ OPC_CheckType, MVT::i32, ++/* 76446*/ OPC_MoveParent, ++/* 76447*/ OPC_MoveChild7, ++/* 76448*/ OPC_CheckInteger, 1, ++/* 76450*/ OPC_CheckType, MVT::i32, ++/* 76452*/ OPC_MoveParent, ++/* 76453*/ OPC_CheckType, MVT::v8i32, ++/* 76455*/ OPC_MoveParent, ++/* 76456*/ OPC_CheckType, MVT::v8i32, ++/* 76458*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 76460*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_WU), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a), LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 95 ++ // Dst: (XVAVGR_WU:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/* 76468*/ /*Scope*/ 83|128,1/*211*/, /*->76681*/ ++/* 76470*/ OPC_RecordChild0, // #0 = $a ++/* 76471*/ OPC_Scope, 103, /*->76576*/ // 2 children in Scope ++/* 76473*/ OPC_MoveChild1, ++/* 76474*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 76477*/ OPC_CheckChild0Integer, 1, ++/* 76479*/ OPC_CheckChild0Type, MVT::i32, ++/* 76481*/ OPC_CheckChild1Integer, 1, ++/* 76483*/ OPC_CheckChild1Type, MVT::i32, ++/* 76485*/ OPC_CheckChild2Integer, 1, ++/* 76487*/ OPC_CheckChild2Type, MVT::i32, ++/* 76489*/ OPC_CheckChild3Integer, 1, ++/* 76491*/ OPC_CheckChild3Type, MVT::i32, ++/* 76493*/ OPC_CheckChild4Integer, 1, ++/* 76495*/ OPC_CheckChild4Type, MVT::i32, ++/* 76497*/ OPC_MoveChild5, ++/* 76498*/ OPC_CheckInteger, 1, ++/* 76500*/ OPC_CheckType, MVT::i32, ++/* 76502*/ OPC_MoveParent, ++/* 76503*/ OPC_MoveChild6, ++/* 76504*/ OPC_CheckInteger, 1, ++/* 76506*/ OPC_CheckType, MVT::i32, ++/* 76508*/ OPC_MoveParent, ++/* 76509*/ OPC_MoveChild7, ++/* 76510*/ OPC_CheckInteger, 1, ++/* 76512*/ OPC_CheckType, MVT::i32, ++/* 76514*/ OPC_MoveParent, ++/* 76515*/ OPC_MoveParent, ++/* 76516*/ OPC_MoveParent, ++/* 76517*/ OPC_RecordChild1, // #1 = $b ++/* 76518*/ OPC_MoveParent, ++/* 76519*/ OPC_MoveChild1, ++/* 76520*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 76523*/ OPC_CheckChild0Integer, 1, ++/* 76525*/ OPC_CheckChild0Type, MVT::i32, ++/* 76527*/ OPC_CheckChild1Integer, 1, ++/* 76529*/ OPC_CheckChild1Type, MVT::i32, ++/* 76531*/ OPC_CheckChild2Integer, 1, ++/* 76533*/ OPC_CheckChild2Type, MVT::i32, ++/* 76535*/ OPC_CheckChild3Integer, 1, ++/* 76537*/ OPC_CheckChild3Type, MVT::i32, ++/* 76539*/ OPC_CheckChild4Integer, 1, ++/* 76541*/ OPC_CheckChild4Type, MVT::i32, ++/* 76543*/ OPC_MoveChild5, ++/* 76544*/ OPC_CheckInteger, 1, ++/* 76546*/ OPC_CheckType, MVT::i32, ++/* 76548*/ OPC_MoveParent, ++/* 76549*/ OPC_MoveChild6, ++/* 76550*/ OPC_CheckInteger, 1, ++/* 76552*/ OPC_CheckType, MVT::i32, ++/* 76554*/ OPC_MoveParent, ++/* 76555*/ OPC_MoveChild7, ++/* 76556*/ OPC_CheckInteger, 1, ++/* 76558*/ OPC_CheckType, MVT::i32, ++/* 76560*/ OPC_MoveParent, ++/* 76561*/ OPC_CheckType, MVT::v8i32, ++/* 76563*/ OPC_MoveParent, ++/* 76564*/ OPC_CheckType, MVT::v8i32, ++/* 76566*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 76568*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_WU), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 95 ++ // Dst: (XVAVGR_WU:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/* 76576*/ /*Scope*/ 103, /*->76680*/ ++/* 76577*/ OPC_RecordChild1, // #1 = $b ++/* 76578*/ OPC_MoveParent, ++/* 76579*/ OPC_MoveChild1, ++/* 76580*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 76583*/ OPC_CheckChild0Integer, 1, ++/* 76585*/ OPC_CheckChild0Type, MVT::i32, ++/* 76587*/ OPC_CheckChild1Integer, 1, ++/* 76589*/ OPC_CheckChild1Type, MVT::i32, ++/* 76591*/ OPC_CheckChild2Integer, 1, ++/* 76593*/ OPC_CheckChild2Type, MVT::i32, ++/* 76595*/ OPC_CheckChild3Integer, 1, ++/* 76597*/ OPC_CheckChild3Type, MVT::i32, ++/* 76599*/ OPC_CheckChild4Integer, 1, ++/* 76601*/ OPC_CheckChild4Type, MVT::i32, ++/* 76603*/ OPC_MoveChild5, ++/* 76604*/ OPC_CheckInteger, 1, ++/* 76606*/ OPC_CheckType, MVT::i32, ++/* 76608*/ OPC_MoveParent, ++/* 76609*/ OPC_MoveChild6, ++/* 76610*/ OPC_CheckInteger, 1, ++/* 76612*/ OPC_CheckType, MVT::i32, ++/* 76614*/ OPC_MoveParent, ++/* 76615*/ OPC_MoveChild7, ++/* 76616*/ OPC_CheckInteger, 1, ++/* 76618*/ OPC_CheckType, MVT::i32, ++/* 76620*/ OPC_MoveParent, ++/* 76621*/ OPC_MoveParent, ++/* 76622*/ OPC_MoveParent, ++/* 76623*/ OPC_MoveChild1, ++/* 76624*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 76627*/ OPC_CheckChild0Integer, 1, ++/* 76629*/ OPC_CheckChild0Type, MVT::i32, ++/* 76631*/ OPC_CheckChild1Integer, 1, ++/* 76633*/ OPC_CheckChild1Type, MVT::i32, ++/* 76635*/ OPC_CheckChild2Integer, 1, ++/* 76637*/ OPC_CheckChild2Type, MVT::i32, ++/* 76639*/ OPC_CheckChild3Integer, 1, ++/* 76641*/ OPC_CheckChild3Type, MVT::i32, ++/* 76643*/ OPC_CheckChild4Integer, 1, ++/* 76645*/ OPC_CheckChild4Type, MVT::i32, ++/* 76647*/ OPC_MoveChild5, ++/* 76648*/ OPC_CheckInteger, 1, ++/* 76650*/ OPC_CheckType, MVT::i32, ++/* 76652*/ OPC_MoveParent, ++/* 76653*/ OPC_MoveChild6, ++/* 76654*/ OPC_CheckInteger, 1, ++/* 76656*/ OPC_CheckType, MVT::i32, ++/* 76658*/ OPC_MoveParent, ++/* 76659*/ OPC_MoveChild7, ++/* 76660*/ OPC_CheckInteger, 1, ++/* 76662*/ OPC_CheckType, MVT::i32, ++/* 76664*/ OPC_MoveParent, ++/* 76665*/ OPC_CheckType, MVT::v8i32, ++/* 76667*/ OPC_MoveParent, ++/* 76668*/ OPC_CheckType, MVT::v8i32, ++/* 76670*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 76672*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_WU), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 95 ++ // Dst: (XVAVGR_WU:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/* 76680*/ 0, /*End of Scope*/ ++/* 76681*/ 0, /*End of Scope*/ ++/* 76682*/ /*Scope*/ 97|128,2/*353*/, /*->77037*/ ++/* 76684*/ OPC_RecordChild0, // #0 = $b ++/* 76685*/ OPC_Scope, 86|128,1/*214*/, /*->76902*/ // 2 children in Scope ++/* 76688*/ OPC_MoveChild1, ++/* 76689*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/* 76692*/ OPC_Scope, 103, /*->76797*/ // 2 children in Scope ++/* 76694*/ OPC_MoveChild0, ++/* 76695*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 76698*/ OPC_CheckChild0Integer, 1, ++/* 76700*/ OPC_CheckChild0Type, MVT::i32, ++/* 76702*/ OPC_CheckChild1Integer, 1, ++/* 76704*/ OPC_CheckChild1Type, MVT::i32, ++/* 76706*/ OPC_CheckChild2Integer, 1, ++/* 76708*/ OPC_CheckChild2Type, MVT::i32, ++/* 76710*/ OPC_CheckChild3Integer, 1, ++/* 76712*/ OPC_CheckChild3Type, MVT::i32, ++/* 76714*/ OPC_CheckChild4Integer, 1, ++/* 76716*/ OPC_CheckChild4Type, MVT::i32, ++/* 76718*/ OPC_MoveChild5, ++/* 76719*/ OPC_CheckInteger, 1, ++/* 76721*/ OPC_CheckType, MVT::i32, ++/* 76723*/ OPC_MoveParent, ++/* 76724*/ OPC_MoveChild6, ++/* 76725*/ OPC_CheckInteger, 1, ++/* 76727*/ OPC_CheckType, MVT::i32, ++/* 76729*/ OPC_MoveParent, ++/* 76730*/ OPC_MoveChild7, ++/* 76731*/ OPC_CheckInteger, 1, ++/* 76733*/ OPC_CheckType, MVT::i32, ++/* 76735*/ OPC_MoveParent, ++/* 76736*/ OPC_MoveParent, ++/* 76737*/ OPC_RecordChild1, // #1 = $a ++/* 76738*/ OPC_MoveParent, ++/* 76739*/ OPC_MoveParent, ++/* 76740*/ OPC_MoveChild1, ++/* 76741*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 76744*/ OPC_CheckChild0Integer, 1, ++/* 76746*/ OPC_CheckChild0Type, MVT::i32, ++/* 76748*/ OPC_CheckChild1Integer, 1, ++/* 76750*/ OPC_CheckChild1Type, MVT::i32, ++/* 76752*/ OPC_CheckChild2Integer, 1, ++/* 76754*/ OPC_CheckChild2Type, MVT::i32, ++/* 76756*/ OPC_CheckChild3Integer, 1, ++/* 76758*/ OPC_CheckChild3Type, MVT::i32, ++/* 76760*/ OPC_CheckChild4Integer, 1, ++/* 76762*/ OPC_CheckChild4Type, MVT::i32, ++/* 76764*/ OPC_MoveChild5, ++/* 76765*/ OPC_CheckInteger, 1, ++/* 76767*/ OPC_CheckType, MVT::i32, ++/* 76769*/ OPC_MoveParent, ++/* 76770*/ OPC_MoveChild6, ++/* 76771*/ OPC_CheckInteger, 1, ++/* 76773*/ OPC_CheckType, MVT::i32, ++/* 76775*/ OPC_MoveParent, ++/* 76776*/ OPC_MoveChild7, ++/* 76777*/ OPC_CheckInteger, 1, ++/* 76779*/ OPC_CheckType, MVT::i32, ++/* 76781*/ OPC_MoveParent, ++/* 76782*/ OPC_CheckType, MVT::v8i32, ++/* 76784*/ OPC_MoveParent, ++/* 76785*/ OPC_CheckType, MVT::v8i32, ++/* 76787*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 76789*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_WU), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 95 ++ // Dst: (XVAVGR_WU:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/* 76797*/ /*Scope*/ 103, /*->76901*/ ++/* 76798*/ OPC_RecordChild0, // #1 = $a ++/* 76799*/ OPC_MoveChild1, ++/* 76800*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 76803*/ OPC_CheckChild0Integer, 1, ++/* 76805*/ OPC_CheckChild0Type, MVT::i32, ++/* 76807*/ OPC_CheckChild1Integer, 1, ++/* 76809*/ OPC_CheckChild1Type, MVT::i32, ++/* 76811*/ OPC_CheckChild2Integer, 1, ++/* 76813*/ OPC_CheckChild2Type, MVT::i32, ++/* 76815*/ OPC_CheckChild3Integer, 1, ++/* 76817*/ OPC_CheckChild3Type, MVT::i32, ++/* 76819*/ OPC_CheckChild4Integer, 1, ++/* 76821*/ OPC_CheckChild4Type, MVT::i32, ++/* 76823*/ OPC_MoveChild5, ++/* 76824*/ OPC_CheckInteger, 1, ++/* 76826*/ OPC_CheckType, MVT::i32, ++/* 76828*/ OPC_MoveParent, ++/* 76829*/ OPC_MoveChild6, ++/* 76830*/ OPC_CheckInteger, 1, ++/* 76832*/ OPC_CheckType, MVT::i32, ++/* 76834*/ OPC_MoveParent, ++/* 76835*/ OPC_MoveChild7, ++/* 76836*/ OPC_CheckInteger, 1, ++/* 76838*/ OPC_CheckType, MVT::i32, ++/* 76840*/ OPC_MoveParent, ++/* 76841*/ OPC_MoveParent, ++/* 76842*/ OPC_MoveParent, ++/* 76843*/ OPC_MoveParent, ++/* 76844*/ OPC_MoveChild1, ++/* 76845*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 76848*/ OPC_CheckChild0Integer, 1, ++/* 76850*/ OPC_CheckChild0Type, MVT::i32, ++/* 76852*/ OPC_CheckChild1Integer, 1, ++/* 76854*/ OPC_CheckChild1Type, MVT::i32, ++/* 76856*/ OPC_CheckChild2Integer, 1, ++/* 76858*/ OPC_CheckChild2Type, MVT::i32, ++/* 76860*/ OPC_CheckChild3Integer, 1, ++/* 76862*/ OPC_CheckChild3Type, MVT::i32, ++/* 76864*/ OPC_CheckChild4Integer, 1, ++/* 76866*/ OPC_CheckChild4Type, MVT::i32, ++/* 76868*/ OPC_MoveChild5, ++/* 76869*/ OPC_CheckInteger, 1, ++/* 76871*/ OPC_CheckType, MVT::i32, ++/* 76873*/ OPC_MoveParent, ++/* 76874*/ OPC_MoveChild6, ++/* 76875*/ OPC_CheckInteger, 1, ++/* 76877*/ OPC_CheckType, MVT::i32, ++/* 76879*/ OPC_MoveParent, ++/* 76880*/ OPC_MoveChild7, ++/* 76881*/ OPC_CheckInteger, 1, ++/* 76883*/ OPC_CheckType, MVT::i32, ++/* 76885*/ OPC_MoveParent, ++/* 76886*/ OPC_CheckType, MVT::v8i32, ++/* 76888*/ OPC_MoveParent, ++/* 76889*/ OPC_CheckType, MVT::v8i32, ++/* 76891*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 76893*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_WU), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 95 ++ // Dst: (XVAVGR_WU:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/* 76901*/ 0, /*End of Scope*/ ++/* 76902*/ /*Scope*/ 4|128,1/*132*/, /*->77036*/ ++/* 76904*/ OPC_RecordChild1, // #1 = $b ++/* 76905*/ OPC_MoveParent, ++/* 76906*/ OPC_MoveChild1, ++/* 76907*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 76910*/ OPC_CheckChild0Integer, 1, ++/* 76912*/ OPC_CheckChild0Type, MVT::i32, ++/* 76914*/ OPC_CheckChild1Integer, 1, ++/* 76916*/ OPC_CheckChild1Type, MVT::i32, ++/* 76918*/ OPC_CheckChild2Integer, 1, ++/* 76920*/ OPC_CheckChild2Type, MVT::i32, ++/* 76922*/ OPC_CheckChild3Integer, 1, ++/* 76924*/ OPC_CheckChild3Type, MVT::i32, ++/* 76926*/ OPC_CheckChild4Integer, 1, ++/* 76928*/ OPC_CheckChild4Type, MVT::i32, ++/* 76930*/ OPC_MoveChild5, ++/* 76931*/ OPC_CheckInteger, 1, ++/* 76933*/ OPC_CheckType, MVT::i32, ++/* 76935*/ OPC_MoveParent, ++/* 76936*/ OPC_MoveChild6, ++/* 76937*/ OPC_CheckInteger, 1, ++/* 76939*/ OPC_CheckType, MVT::i32, ++/* 76941*/ OPC_MoveParent, ++/* 76942*/ OPC_MoveChild7, ++/* 76943*/ OPC_CheckInteger, 1, ++/* 76945*/ OPC_CheckType, MVT::i32, ++/* 76947*/ OPC_MoveParent, ++/* 76948*/ OPC_MoveChild, 8, ++/* 76950*/ OPC_CheckInteger, 1, ++/* 76952*/ OPC_CheckType, MVT::i32, ++/* 76954*/ OPC_MoveParent, ++/* 76955*/ OPC_MoveChild, 9, ++/* 76957*/ OPC_CheckInteger, 1, ++/* 76959*/ OPC_CheckType, MVT::i32, ++/* 76961*/ OPC_MoveParent, ++/* 76962*/ OPC_MoveChild, 10, ++/* 76964*/ OPC_CheckInteger, 1, ++/* 76966*/ OPC_CheckType, MVT::i32, ++/* 76968*/ OPC_MoveParent, ++/* 76969*/ OPC_MoveChild, 11, ++/* 76971*/ OPC_CheckInteger, 1, ++/* 76973*/ OPC_CheckType, MVT::i32, ++/* 76975*/ OPC_MoveParent, ++/* 76976*/ OPC_MoveChild, 12, ++/* 76978*/ OPC_CheckInteger, 1, ++/* 76980*/ OPC_CheckType, MVT::i32, ++/* 76982*/ OPC_MoveParent, ++/* 76983*/ OPC_MoveChild, 13, ++/* 76985*/ OPC_CheckInteger, 1, ++/* 76987*/ OPC_CheckType, MVT::i32, ++/* 76989*/ OPC_MoveParent, ++/* 76990*/ OPC_MoveChild, 14, ++/* 76992*/ OPC_CheckInteger, 1, ++/* 76994*/ OPC_CheckType, MVT::i32, ++/* 76996*/ OPC_MoveParent, ++/* 76997*/ OPC_MoveChild, 15, ++/* 76999*/ OPC_CheckInteger, 1, ++/* 77001*/ OPC_CheckType, MVT::i32, ++/* 77003*/ OPC_MoveParent, ++/* 77004*/ OPC_SwitchType /*2 cases */, 13, MVT::v16i8,// ->77020 ++/* 77007*/ OPC_MoveParent, ++/* 77008*/ OPC_CheckType, MVT::v16i8, ++/* 77010*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 77012*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_BU), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 89 ++ // Dst: (VAVG_BU:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/* 77020*/ /*SwitchType*/ 13, MVT::v16i16,// ->77035 ++/* 77022*/ OPC_MoveParent, ++/* 77023*/ OPC_CheckType, MVT::v16i16, ++/* 77025*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 77027*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_HU), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 89 ++ // Dst: (XVAVG_HU:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/* 77035*/ 0, // EndSwitchType ++/* 77036*/ 0, /*End of Scope*/ ++/* 77037*/ 0, /*End of Scope*/ ++/* 77038*/ /*Scope*/ 54|128,5/*694*/, /*->77734*/ ++/* 77040*/ OPC_RecordChild0, // #0 = $vs ++/* 77041*/ OPC_MoveChild1, ++/* 77042*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 77045*/ OPC_Scope, 85|128,2/*341*/, /*->77389*/ // 2 children in Scope ++/* 77048*/ OPC_RecordChild0, // #1 = $vt ++/* 77049*/ OPC_MoveChild1, ++/* 77050*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 77053*/ OPC_MoveChild0, ++/* 77054*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77057*/ OPC_CheckType, MVT::i32, ++/* 77059*/ OPC_Scope, 34|128,1/*162*/, /*->77224*/ // 2 children in Scope ++/* 77062*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 77064*/ OPC_MoveParent, ++/* 77065*/ OPC_MoveChild1, ++/* 77066*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77069*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 77071*/ OPC_CheckType, MVT::i32, ++/* 77073*/ OPC_MoveParent, ++/* 77074*/ OPC_MoveChild2, ++/* 77075*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77078*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 77080*/ OPC_CheckType, MVT::i32, ++/* 77082*/ OPC_MoveParent, ++/* 77083*/ OPC_MoveChild3, ++/* 77084*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77087*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 77089*/ OPC_CheckType, MVT::i32, ++/* 77091*/ OPC_MoveParent, ++/* 77092*/ OPC_MoveChild4, ++/* 77093*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77096*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 77098*/ OPC_CheckType, MVT::i32, ++/* 77100*/ OPC_MoveParent, ++/* 77101*/ OPC_MoveChild5, ++/* 77102*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77105*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 77107*/ OPC_CheckType, MVT::i32, ++/* 77109*/ OPC_MoveParent, ++/* 77110*/ OPC_MoveChild6, ++/* 77111*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77114*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 77116*/ OPC_CheckType, MVT::i32, ++/* 77118*/ OPC_MoveParent, ++/* 77119*/ OPC_MoveChild7, ++/* 77120*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77123*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 77125*/ OPC_CheckType, MVT::i32, ++/* 77127*/ OPC_MoveParent, ++/* 77128*/ OPC_MoveChild, 8, ++/* 77130*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77133*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 77135*/ OPC_CheckType, MVT::i32, ++/* 77137*/ OPC_MoveParent, ++/* 77138*/ OPC_MoveChild, 9, ++/* 77140*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77143*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 77145*/ OPC_CheckType, MVT::i32, ++/* 77147*/ OPC_MoveParent, ++/* 77148*/ OPC_MoveChild, 10, ++/* 77150*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77153*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 77155*/ OPC_CheckType, MVT::i32, ++/* 77157*/ OPC_MoveParent, ++/* 77158*/ OPC_MoveChild, 11, ++/* 77160*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77163*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 77165*/ OPC_CheckType, MVT::i32, ++/* 77167*/ OPC_MoveParent, ++/* 77168*/ OPC_MoveChild, 12, ++/* 77170*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77173*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 77175*/ OPC_CheckType, MVT::i32, ++/* 77177*/ OPC_MoveParent, ++/* 77178*/ OPC_MoveChild, 13, ++/* 77180*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77183*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 77185*/ OPC_CheckType, MVT::i32, ++/* 77187*/ OPC_MoveParent, ++/* 77188*/ OPC_MoveChild, 14, ++/* 77190*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77193*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 77195*/ OPC_CheckType, MVT::i32, ++/* 77197*/ OPC_MoveParent, ++/* 77198*/ OPC_MoveChild, 15, ++/* 77200*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77203*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 77205*/ OPC_CheckType, MVT::i32, ++/* 77207*/ OPC_MoveParent, ++/* 77208*/ OPC_MoveParent, ++/* 77209*/ OPC_CheckType, MVT::v16i8, ++/* 77211*/ OPC_MoveParent, ++/* 77212*/ OPC_CheckType, MVT::v16i8, ++/* 77214*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 77216*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRL_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vs, (and:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vt, (build_vector:{ *:[v16i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))) - Complexity = 73 ++ // Dst: (VSRL_B:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vs, v16i8:{ *:[v16i8] }:$vt) ++/* 77224*/ /*Scope*/ 34|128,1/*162*/, /*->77388*/ ++/* 77226*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 77228*/ OPC_MoveParent, ++/* 77229*/ OPC_MoveChild1, ++/* 77230*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77233*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 77235*/ OPC_CheckType, MVT::i32, ++/* 77237*/ OPC_MoveParent, ++/* 77238*/ OPC_MoveChild2, ++/* 77239*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77242*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 77244*/ OPC_CheckType, MVT::i32, ++/* 77246*/ OPC_MoveParent, ++/* 77247*/ OPC_MoveChild3, ++/* 77248*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77251*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 77253*/ OPC_CheckType, MVT::i32, ++/* 77255*/ OPC_MoveParent, ++/* 77256*/ OPC_MoveChild4, ++/* 77257*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77260*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 77262*/ OPC_CheckType, MVT::i32, ++/* 77264*/ OPC_MoveParent, ++/* 77265*/ OPC_MoveChild5, ++/* 77266*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77269*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 77271*/ OPC_CheckType, MVT::i32, ++/* 77273*/ OPC_MoveParent, ++/* 77274*/ OPC_MoveChild6, ++/* 77275*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77278*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 77280*/ OPC_CheckType, MVT::i32, ++/* 77282*/ OPC_MoveParent, ++/* 77283*/ OPC_MoveChild7, ++/* 77284*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77287*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 77289*/ OPC_CheckType, MVT::i32, ++/* 77291*/ OPC_MoveParent, ++/* 77292*/ OPC_MoveChild, 8, ++/* 77294*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77297*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 77299*/ OPC_CheckType, MVT::i32, ++/* 77301*/ OPC_MoveParent, ++/* 77302*/ OPC_MoveChild, 9, ++/* 77304*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77307*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 77309*/ OPC_CheckType, MVT::i32, ++/* 77311*/ OPC_MoveParent, ++/* 77312*/ OPC_MoveChild, 10, ++/* 77314*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77317*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 77319*/ OPC_CheckType, MVT::i32, ++/* 77321*/ OPC_MoveParent, ++/* 77322*/ OPC_MoveChild, 11, ++/* 77324*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77327*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 77329*/ OPC_CheckType, MVT::i32, ++/* 77331*/ OPC_MoveParent, ++/* 77332*/ OPC_MoveChild, 12, ++/* 77334*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77337*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 77339*/ OPC_CheckType, MVT::i32, ++/* 77341*/ OPC_MoveParent, ++/* 77342*/ OPC_MoveChild, 13, ++/* 77344*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77347*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 77349*/ OPC_CheckType, MVT::i32, ++/* 77351*/ OPC_MoveParent, ++/* 77352*/ OPC_MoveChild, 14, ++/* 77354*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77357*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 77359*/ OPC_CheckType, MVT::i32, ++/* 77361*/ OPC_MoveParent, ++/* 77362*/ OPC_MoveChild, 15, ++/* 77364*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77367*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 77369*/ OPC_CheckType, MVT::i32, ++/* 77371*/ OPC_MoveParent, ++/* 77372*/ OPC_MoveParent, ++/* 77373*/ OPC_CheckType, MVT::v16i16, ++/* 77375*/ OPC_MoveParent, ++/* 77376*/ OPC_CheckType, MVT::v16i16, ++/* 77378*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 77380*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRL_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vs, (and:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vt, (build_vector:{ *:[v16i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))) - Complexity = 73 ++ // Dst: (XVSRL_H:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vs, v16i16:{ *:[v16i16] }:$vt) ++/* 77388*/ 0, /*End of Scope*/ ++/* 77389*/ /*Scope*/ 86|128,2/*342*/, /*->77733*/ ++/* 77391*/ OPC_MoveChild0, ++/* 77392*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 77395*/ OPC_MoveChild0, ++/* 77396*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77399*/ OPC_CheckType, MVT::i32, ++/* 77401*/ OPC_Scope, 35|128,1/*163*/, /*->77567*/ // 2 children in Scope ++/* 77404*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 77406*/ OPC_MoveParent, ++/* 77407*/ OPC_MoveChild1, ++/* 77408*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77411*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 77413*/ OPC_CheckType, MVT::i32, ++/* 77415*/ OPC_MoveParent, ++/* 77416*/ OPC_MoveChild2, ++/* 77417*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77420*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 77422*/ OPC_CheckType, MVT::i32, ++/* 77424*/ OPC_MoveParent, ++/* 77425*/ OPC_MoveChild3, ++/* 77426*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77429*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 77431*/ OPC_CheckType, MVT::i32, ++/* 77433*/ OPC_MoveParent, ++/* 77434*/ OPC_MoveChild4, ++/* 77435*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77438*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 77440*/ OPC_CheckType, MVT::i32, ++/* 77442*/ OPC_MoveParent, ++/* 77443*/ OPC_MoveChild5, ++/* 77444*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77447*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 77449*/ OPC_CheckType, MVT::i32, ++/* 77451*/ OPC_MoveParent, ++/* 77452*/ OPC_MoveChild6, ++/* 77453*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77456*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 77458*/ OPC_CheckType, MVT::i32, ++/* 77460*/ OPC_MoveParent, ++/* 77461*/ OPC_MoveChild7, ++/* 77462*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77465*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 77467*/ OPC_CheckType, MVT::i32, ++/* 77469*/ OPC_MoveParent, ++/* 77470*/ OPC_MoveChild, 8, ++/* 77472*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77475*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 77477*/ OPC_CheckType, MVT::i32, ++/* 77479*/ OPC_MoveParent, ++/* 77480*/ OPC_MoveChild, 9, ++/* 77482*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77485*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 77487*/ OPC_CheckType, MVT::i32, ++/* 77489*/ OPC_MoveParent, ++/* 77490*/ OPC_MoveChild, 10, ++/* 77492*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77495*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 77497*/ OPC_CheckType, MVT::i32, ++/* 77499*/ OPC_MoveParent, ++/* 77500*/ OPC_MoveChild, 11, ++/* 77502*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77505*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 77507*/ OPC_CheckType, MVT::i32, ++/* 77509*/ OPC_MoveParent, ++/* 77510*/ OPC_MoveChild, 12, ++/* 77512*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77515*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 77517*/ OPC_CheckType, MVT::i32, ++/* 77519*/ OPC_MoveParent, ++/* 77520*/ OPC_MoveChild, 13, ++/* 77522*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77525*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 77527*/ OPC_CheckType, MVT::i32, ++/* 77529*/ OPC_MoveParent, ++/* 77530*/ OPC_MoveChild, 14, ++/* 77532*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77535*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 77537*/ OPC_CheckType, MVT::i32, ++/* 77539*/ OPC_MoveParent, ++/* 77540*/ OPC_MoveChild, 15, ++/* 77542*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77545*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/* 77547*/ OPC_CheckType, MVT::i32, ++/* 77549*/ OPC_MoveParent, ++/* 77550*/ OPC_MoveParent, ++/* 77551*/ OPC_RecordChild1, // #1 = $vt ++/* 77552*/ OPC_CheckType, MVT::v16i8, ++/* 77554*/ OPC_MoveParent, ++/* 77555*/ OPC_CheckType, MVT::v16i8, ++/* 77557*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 77559*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRL_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vs, (and:{ *:[v16i8] } (build_vector:{ *:[v16i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v16i8:{ *:[v16i8] }:$vt)) - Complexity = 73 ++ // Dst: (VSRL_B:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vs, v16i8:{ *:[v16i8] }:$vt) ++/* 77567*/ /*Scope*/ 35|128,1/*163*/, /*->77732*/ ++/* 77569*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 77571*/ OPC_MoveParent, ++/* 77572*/ OPC_MoveChild1, ++/* 77573*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77576*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 77578*/ OPC_CheckType, MVT::i32, ++/* 77580*/ OPC_MoveParent, ++/* 77581*/ OPC_MoveChild2, ++/* 77582*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77585*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 77587*/ OPC_CheckType, MVT::i32, ++/* 77589*/ OPC_MoveParent, ++/* 77590*/ OPC_MoveChild3, ++/* 77591*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77594*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 77596*/ OPC_CheckType, MVT::i32, ++/* 77598*/ OPC_MoveParent, ++/* 77599*/ OPC_MoveChild4, ++/* 77600*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77603*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 77605*/ OPC_CheckType, MVT::i32, ++/* 77607*/ OPC_MoveParent, ++/* 77608*/ OPC_MoveChild5, ++/* 77609*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77612*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 77614*/ OPC_CheckType, MVT::i32, ++/* 77616*/ OPC_MoveParent, ++/* 77617*/ OPC_MoveChild6, ++/* 77618*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77621*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 77623*/ OPC_CheckType, MVT::i32, ++/* 77625*/ OPC_MoveParent, ++/* 77626*/ OPC_MoveChild7, ++/* 77627*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77630*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 77632*/ OPC_CheckType, MVT::i32, ++/* 77634*/ OPC_MoveParent, ++/* 77635*/ OPC_MoveChild, 8, ++/* 77637*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77640*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 77642*/ OPC_CheckType, MVT::i32, ++/* 77644*/ OPC_MoveParent, ++/* 77645*/ OPC_MoveChild, 9, ++/* 77647*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77650*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 77652*/ OPC_CheckType, MVT::i32, ++/* 77654*/ OPC_MoveParent, ++/* 77655*/ OPC_MoveChild, 10, ++/* 77657*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77660*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 77662*/ OPC_CheckType, MVT::i32, ++/* 77664*/ OPC_MoveParent, ++/* 77665*/ OPC_MoveChild, 11, ++/* 77667*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77670*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 77672*/ OPC_CheckType, MVT::i32, ++/* 77674*/ OPC_MoveParent, ++/* 77675*/ OPC_MoveChild, 12, ++/* 77677*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77680*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 77682*/ OPC_CheckType, MVT::i32, ++/* 77684*/ OPC_MoveParent, ++/* 77685*/ OPC_MoveChild, 13, ++/* 77687*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77690*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 77692*/ OPC_CheckType, MVT::i32, ++/* 77694*/ OPC_MoveParent, ++/* 77695*/ OPC_MoveChild, 14, ++/* 77697*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77700*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 77702*/ OPC_CheckType, MVT::i32, ++/* 77704*/ OPC_MoveParent, ++/* 77705*/ OPC_MoveChild, 15, ++/* 77707*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 77710*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 77712*/ OPC_CheckType, MVT::i32, ++/* 77714*/ OPC_MoveParent, ++/* 77715*/ OPC_MoveParent, ++/* 77716*/ OPC_RecordChild1, // #1 = $vt ++/* 77717*/ OPC_CheckType, MVT::v16i16, ++/* 77719*/ OPC_MoveParent, ++/* 77720*/ OPC_CheckType, MVT::v16i16, ++/* 77722*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 77724*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRL_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vs, (and:{ *:[v16i16] } (build_vector:{ *:[v16i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v16i16:{ *:[v16i16] }:$vt)) - Complexity = 73 ++ // Dst: (XVSRL_H:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vs, v16i16:{ *:[v16i16] }:$vt) ++/* 77732*/ 0, /*End of Scope*/ ++/* 77733*/ 0, /*End of Scope*/ ++/* 77734*/ /*Scope*/ 89|128,6/*857*/, /*->78593*/ ++/* 77736*/ OPC_MoveChild0, ++/* 77737*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/* 77740*/ OPC_Scope, 63|128,2/*319*/, /*->78062*/ // 4 children in Scope ++/* 77743*/ OPC_MoveChild0, ++/* 77744*/ OPC_SwitchOpcode /*2 cases */, 122, TARGET_VAL(ISD::BUILD_VECTOR),// ->77870 ++/* 77748*/ OPC_CheckChild0Integer, 1, ++/* 77750*/ OPC_Scope, 58, /*->77810*/ // 2 children in Scope ++/* 77752*/ OPC_CheckChild0Type, MVT::i32, ++/* 77754*/ OPC_CheckChild1Integer, 1, ++/* 77756*/ OPC_CheckChild1Type, MVT::i32, ++/* 77758*/ OPC_CheckChild2Integer, 1, ++/* 77760*/ OPC_CheckChild2Type, MVT::i32, ++/* 77762*/ OPC_CheckChild3Integer, 1, ++/* 77764*/ OPC_CheckChild3Type, MVT::i32, ++/* 77766*/ OPC_MoveParent, ++/* 77767*/ OPC_MoveChild1, ++/* 77768*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/* 77771*/ OPC_RecordChild0, // #0 = $a ++/* 77772*/ OPC_RecordChild1, // #1 = $b ++/* 77773*/ OPC_MoveParent, ++/* 77774*/ OPC_MoveParent, ++/* 77775*/ OPC_MoveChild1, ++/* 77776*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 77779*/ OPC_CheckChild0Integer, 1, ++/* 77781*/ OPC_CheckChild0Type, MVT::i32, ++/* 77783*/ OPC_CheckChild1Integer, 1, ++/* 77785*/ OPC_CheckChild1Type, MVT::i32, ++/* 77787*/ OPC_CheckChild2Integer, 1, ++/* 77789*/ OPC_CheckChild2Type, MVT::i32, ++/* 77791*/ OPC_CheckChild3Integer, 1, ++/* 77793*/ OPC_CheckChild3Type, MVT::i32, ++/* 77795*/ OPC_CheckType, MVT::v4i32, ++/* 77797*/ OPC_MoveParent, ++/* 77798*/ OPC_CheckType, MVT::v4i32, ++/* 77800*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 77802*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_WU), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 55 ++ // Dst: (VAVGR_WU:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/* 77810*/ /*Scope*/ 58, /*->77869*/ ++/* 77811*/ OPC_CheckChild0Type, MVT::i64, ++/* 77813*/ OPC_CheckChild1Integer, 1, ++/* 77815*/ OPC_CheckChild1Type, MVT::i64, ++/* 77817*/ OPC_CheckChild2Integer, 1, ++/* 77819*/ OPC_CheckChild2Type, MVT::i64, ++/* 77821*/ OPC_CheckChild3Integer, 1, ++/* 77823*/ OPC_CheckChild3Type, MVT::i64, ++/* 77825*/ OPC_MoveParent, ++/* 77826*/ OPC_MoveChild1, ++/* 77827*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/* 77830*/ OPC_RecordChild0, // #0 = $a ++/* 77831*/ OPC_RecordChild1, // #1 = $b ++/* 77832*/ OPC_MoveParent, ++/* 77833*/ OPC_MoveParent, ++/* 77834*/ OPC_MoveChild1, ++/* 77835*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 77838*/ OPC_CheckChild0Integer, 1, ++/* 77840*/ OPC_CheckChild0Type, MVT::i64, ++/* 77842*/ OPC_CheckChild1Integer, 1, ++/* 77844*/ OPC_CheckChild1Type, MVT::i64, ++/* 77846*/ OPC_CheckChild2Integer, 1, ++/* 77848*/ OPC_CheckChild2Type, MVT::i64, ++/* 77850*/ OPC_CheckChild3Integer, 1, ++/* 77852*/ OPC_CheckChild3Type, MVT::i64, ++/* 77854*/ OPC_CheckType, MVT::v4i64, ++/* 77856*/ OPC_MoveParent, ++/* 77857*/ OPC_CheckType, MVT::v4i64, ++/* 77859*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 77861*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_DU), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 55 ++ // Dst: (XVAVGR_DU:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/* 77869*/ 0, /*End of Scope*/ ++/* 77870*/ /*SwitchOpcode*/ 59|128,1/*187*/, TARGET_VAL(ISD::ADD),// ->78061 ++/* 77874*/ OPC_Scope, 60, /*->77936*/ // 2 children in Scope ++/* 77876*/ OPC_MoveChild0, ++/* 77877*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 77880*/ OPC_CheckChild0Integer, 1, ++/* 77882*/ OPC_CheckChild0Type, MVT::i32, ++/* 77884*/ OPC_CheckChild1Integer, 1, ++/* 77886*/ OPC_CheckChild1Type, MVT::i32, ++/* 77888*/ OPC_CheckChild2Integer, 1, ++/* 77890*/ OPC_CheckChild2Type, MVT::i32, ++/* 77892*/ OPC_CheckChild3Integer, 1, ++/* 77894*/ OPC_CheckChild3Type, MVT::i32, ++/* 77896*/ OPC_MoveParent, ++/* 77897*/ OPC_RecordChild1, // #0 = $a ++/* 77898*/ OPC_MoveParent, ++/* 77899*/ OPC_RecordChild1, // #1 = $b ++/* 77900*/ OPC_MoveParent, ++/* 77901*/ OPC_MoveChild1, ++/* 77902*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 77905*/ OPC_CheckChild0Integer, 1, ++/* 77907*/ OPC_CheckChild0Type, MVT::i32, ++/* 77909*/ OPC_CheckChild1Integer, 1, ++/* 77911*/ OPC_CheckChild1Type, MVT::i32, ++/* 77913*/ OPC_CheckChild2Integer, 1, ++/* 77915*/ OPC_CheckChild2Type, MVT::i32, ++/* 77917*/ OPC_CheckChild3Integer, 1, ++/* 77919*/ OPC_CheckChild3Type, MVT::i32, ++/* 77921*/ OPC_CheckType, MVT::v4i32, ++/* 77923*/ OPC_MoveParent, ++/* 77924*/ OPC_CheckType, MVT::v4i32, ++/* 77926*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 77928*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_WU), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a), LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 55 ++ // Dst: (VAVGR_WU:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/* 77936*/ /*Scope*/ 123, /*->78060*/ ++/* 77937*/ OPC_RecordChild0, // #0 = $a ++/* 77938*/ OPC_Scope, 59, /*->77999*/ // 2 children in Scope ++/* 77940*/ OPC_MoveChild1, ++/* 77941*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 77944*/ OPC_CheckChild0Integer, 1, ++/* 77946*/ OPC_CheckChild0Type, MVT::i32, ++/* 77948*/ OPC_CheckChild1Integer, 1, ++/* 77950*/ OPC_CheckChild1Type, MVT::i32, ++/* 77952*/ OPC_CheckChild2Integer, 1, ++/* 77954*/ OPC_CheckChild2Type, MVT::i32, ++/* 77956*/ OPC_CheckChild3Integer, 1, ++/* 77958*/ OPC_CheckChild3Type, MVT::i32, ++/* 77960*/ OPC_MoveParent, ++/* 77961*/ OPC_MoveParent, ++/* 77962*/ OPC_RecordChild1, // #1 = $b ++/* 77963*/ OPC_MoveParent, ++/* 77964*/ OPC_MoveChild1, ++/* 77965*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 77968*/ OPC_CheckChild0Integer, 1, ++/* 77970*/ OPC_CheckChild0Type, MVT::i32, ++/* 77972*/ OPC_CheckChild1Integer, 1, ++/* 77974*/ OPC_CheckChild1Type, MVT::i32, ++/* 77976*/ OPC_CheckChild2Integer, 1, ++/* 77978*/ OPC_CheckChild2Type, MVT::i32, ++/* 77980*/ OPC_CheckChild3Integer, 1, ++/* 77982*/ OPC_CheckChild3Type, MVT::i32, ++/* 77984*/ OPC_CheckType, MVT::v4i32, ++/* 77986*/ OPC_MoveParent, ++/* 77987*/ OPC_CheckType, MVT::v4i32, ++/* 77989*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 77991*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_WU), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 55 ++ // Dst: (VAVGR_WU:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/* 77999*/ /*Scope*/ 59, /*->78059*/ ++/* 78000*/ OPC_RecordChild1, // #1 = $b ++/* 78001*/ OPC_MoveParent, ++/* 78002*/ OPC_MoveChild1, ++/* 78003*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 78006*/ OPC_CheckChild0Integer, 1, ++/* 78008*/ OPC_CheckChild0Type, MVT::i32, ++/* 78010*/ OPC_CheckChild1Integer, 1, ++/* 78012*/ OPC_CheckChild1Type, MVT::i32, ++/* 78014*/ OPC_CheckChild2Integer, 1, ++/* 78016*/ OPC_CheckChild2Type, MVT::i32, ++/* 78018*/ OPC_CheckChild3Integer, 1, ++/* 78020*/ OPC_CheckChild3Type, MVT::i32, ++/* 78022*/ OPC_MoveParent, ++/* 78023*/ OPC_MoveParent, ++/* 78024*/ OPC_MoveChild1, ++/* 78025*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 78028*/ OPC_CheckChild0Integer, 1, ++/* 78030*/ OPC_CheckChild0Type, MVT::i32, ++/* 78032*/ OPC_CheckChild1Integer, 1, ++/* 78034*/ OPC_CheckChild1Type, MVT::i32, ++/* 78036*/ OPC_CheckChild2Integer, 1, ++/* 78038*/ OPC_CheckChild2Type, MVT::i32, ++/* 78040*/ OPC_CheckChild3Integer, 1, ++/* 78042*/ OPC_CheckChild3Type, MVT::i32, ++/* 78044*/ OPC_CheckType, MVT::v4i32, ++/* 78046*/ OPC_MoveParent, ++/* 78047*/ OPC_CheckType, MVT::v4i32, ++/* 78049*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 78051*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_WU), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 55 ++ // Dst: (VAVGR_WU:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/* 78059*/ 0, /*End of Scope*/ ++/* 78060*/ 0, /*End of Scope*/ ++/* 78061*/ 0, // EndSwitchOpcode ++/* 78062*/ /*Scope*/ 127, /*->78190*/ ++/* 78063*/ OPC_RecordChild0, // #0 = $b ++/* 78064*/ OPC_MoveChild1, ++/* 78065*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/* 78068*/ OPC_Scope, 59, /*->78129*/ // 2 children in Scope ++/* 78070*/ OPC_MoveChild0, ++/* 78071*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 78074*/ OPC_CheckChild0Integer, 1, ++/* 78076*/ OPC_CheckChild0Type, MVT::i32, ++/* 78078*/ OPC_CheckChild1Integer, 1, ++/* 78080*/ OPC_CheckChild1Type, MVT::i32, ++/* 78082*/ OPC_CheckChild2Integer, 1, ++/* 78084*/ OPC_CheckChild2Type, MVT::i32, ++/* 78086*/ OPC_CheckChild3Integer, 1, ++/* 78088*/ OPC_CheckChild3Type, MVT::i32, ++/* 78090*/ OPC_MoveParent, ++/* 78091*/ OPC_RecordChild1, // #1 = $a ++/* 78092*/ OPC_MoveParent, ++/* 78093*/ OPC_MoveParent, ++/* 78094*/ OPC_MoveChild1, ++/* 78095*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 78098*/ OPC_CheckChild0Integer, 1, ++/* 78100*/ OPC_CheckChild0Type, MVT::i32, ++/* 78102*/ OPC_CheckChild1Integer, 1, ++/* 78104*/ OPC_CheckChild1Type, MVT::i32, ++/* 78106*/ OPC_CheckChild2Integer, 1, ++/* 78108*/ OPC_CheckChild2Type, MVT::i32, ++/* 78110*/ OPC_CheckChild3Integer, 1, ++/* 78112*/ OPC_CheckChild3Type, MVT::i32, ++/* 78114*/ OPC_CheckType, MVT::v4i32, ++/* 78116*/ OPC_MoveParent, ++/* 78117*/ OPC_CheckType, MVT::v4i32, ++/* 78119*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 78121*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_WU), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 55 ++ // Dst: (VAVGR_WU:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/* 78129*/ /*Scope*/ 59, /*->78189*/ ++/* 78130*/ OPC_RecordChild0, // #1 = $a ++/* 78131*/ OPC_MoveChild1, ++/* 78132*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 78135*/ OPC_CheckChild0Integer, 1, ++/* 78137*/ OPC_CheckChild0Type, MVT::i32, ++/* 78139*/ OPC_CheckChild1Integer, 1, ++/* 78141*/ OPC_CheckChild1Type, MVT::i32, ++/* 78143*/ OPC_CheckChild2Integer, 1, ++/* 78145*/ OPC_CheckChild2Type, MVT::i32, ++/* 78147*/ OPC_CheckChild3Integer, 1, ++/* 78149*/ OPC_CheckChild3Type, MVT::i32, ++/* 78151*/ OPC_MoveParent, ++/* 78152*/ OPC_MoveParent, ++/* 78153*/ OPC_MoveParent, ++/* 78154*/ OPC_MoveChild1, ++/* 78155*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 78158*/ OPC_CheckChild0Integer, 1, ++/* 78160*/ OPC_CheckChild0Type, MVT::i32, ++/* 78162*/ OPC_CheckChild1Integer, 1, ++/* 78164*/ OPC_CheckChild1Type, MVT::i32, ++/* 78166*/ OPC_CheckChild2Integer, 1, ++/* 78168*/ OPC_CheckChild2Type, MVT::i32, ++/* 78170*/ OPC_CheckChild3Integer, 1, ++/* 78172*/ OPC_CheckChild3Type, MVT::i32, ++/* 78174*/ OPC_CheckType, MVT::v4i32, ++/* 78176*/ OPC_MoveParent, ++/* 78177*/ OPC_CheckType, MVT::v4i32, ++/* 78179*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 78181*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_WU), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 55 ++ // Dst: (VAVGR_WU:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/* 78189*/ 0, /*End of Scope*/ ++/* 78190*/ /*Scope*/ 63|128,1/*191*/, /*->78383*/ ++/* 78192*/ OPC_MoveChild0, ++/* 78193*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/* 78196*/ OPC_Scope, 60, /*->78258*/ // 2 children in Scope ++/* 78198*/ OPC_MoveChild0, ++/* 78199*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 78202*/ OPC_CheckChild0Integer, 1, ++/* 78204*/ OPC_CheckChild0Type, MVT::i64, ++/* 78206*/ OPC_CheckChild1Integer, 1, ++/* 78208*/ OPC_CheckChild1Type, MVT::i64, ++/* 78210*/ OPC_CheckChild2Integer, 1, ++/* 78212*/ OPC_CheckChild2Type, MVT::i64, ++/* 78214*/ OPC_CheckChild3Integer, 1, ++/* 78216*/ OPC_CheckChild3Type, MVT::i64, ++/* 78218*/ OPC_MoveParent, ++/* 78219*/ OPC_RecordChild1, // #0 = $a ++/* 78220*/ OPC_MoveParent, ++/* 78221*/ OPC_RecordChild1, // #1 = $b ++/* 78222*/ OPC_MoveParent, ++/* 78223*/ OPC_MoveChild1, ++/* 78224*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 78227*/ OPC_CheckChild0Integer, 1, ++/* 78229*/ OPC_CheckChild0Type, MVT::i64, ++/* 78231*/ OPC_CheckChild1Integer, 1, ++/* 78233*/ OPC_CheckChild1Type, MVT::i64, ++/* 78235*/ OPC_CheckChild2Integer, 1, ++/* 78237*/ OPC_CheckChild2Type, MVT::i64, ++/* 78239*/ OPC_CheckChild3Integer, 1, ++/* 78241*/ OPC_CheckChild3Type, MVT::i64, ++/* 78243*/ OPC_CheckType, MVT::v4i64, ++/* 78245*/ OPC_MoveParent, ++/* 78246*/ OPC_CheckType, MVT::v4i64, ++/* 78248*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 78250*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_DU), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a), LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 55 ++ // Dst: (XVAVGR_DU:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/* 78258*/ /*Scope*/ 123, /*->78382*/ ++/* 78259*/ OPC_RecordChild0, // #0 = $a ++/* 78260*/ OPC_Scope, 59, /*->78321*/ // 2 children in Scope ++/* 78262*/ OPC_MoveChild1, ++/* 78263*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 78266*/ OPC_CheckChild0Integer, 1, ++/* 78268*/ OPC_CheckChild0Type, MVT::i64, ++/* 78270*/ OPC_CheckChild1Integer, 1, ++/* 78272*/ OPC_CheckChild1Type, MVT::i64, ++/* 78274*/ OPC_CheckChild2Integer, 1, ++/* 78276*/ OPC_CheckChild2Type, MVT::i64, ++/* 78278*/ OPC_CheckChild3Integer, 1, ++/* 78280*/ OPC_CheckChild3Type, MVT::i64, ++/* 78282*/ OPC_MoveParent, ++/* 78283*/ OPC_MoveParent, ++/* 78284*/ OPC_RecordChild1, // #1 = $b ++/* 78285*/ OPC_MoveParent, ++/* 78286*/ OPC_MoveChild1, ++/* 78287*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 78290*/ OPC_CheckChild0Integer, 1, ++/* 78292*/ OPC_CheckChild0Type, MVT::i64, ++/* 78294*/ OPC_CheckChild1Integer, 1, ++/* 78296*/ OPC_CheckChild1Type, MVT::i64, ++/* 78298*/ OPC_CheckChild2Integer, 1, ++/* 78300*/ OPC_CheckChild2Type, MVT::i64, ++/* 78302*/ OPC_CheckChild3Integer, 1, ++/* 78304*/ OPC_CheckChild3Type, MVT::i64, ++/* 78306*/ OPC_CheckType, MVT::v4i64, ++/* 78308*/ OPC_MoveParent, ++/* 78309*/ OPC_CheckType, MVT::v4i64, ++/* 78311*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 78313*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_DU), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 55 ++ // Dst: (XVAVGR_DU:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/* 78321*/ /*Scope*/ 59, /*->78381*/ ++/* 78322*/ OPC_RecordChild1, // #1 = $b ++/* 78323*/ OPC_MoveParent, ++/* 78324*/ OPC_MoveChild1, ++/* 78325*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 78328*/ OPC_CheckChild0Integer, 1, ++/* 78330*/ OPC_CheckChild0Type, MVT::i64, ++/* 78332*/ OPC_CheckChild1Integer, 1, ++/* 78334*/ OPC_CheckChild1Type, MVT::i64, ++/* 78336*/ OPC_CheckChild2Integer, 1, ++/* 78338*/ OPC_CheckChild2Type, MVT::i64, ++/* 78340*/ OPC_CheckChild3Integer, 1, ++/* 78342*/ OPC_CheckChild3Type, MVT::i64, ++/* 78344*/ OPC_MoveParent, ++/* 78345*/ OPC_MoveParent, ++/* 78346*/ OPC_MoveChild1, ++/* 78347*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 78350*/ OPC_CheckChild0Integer, 1, ++/* 78352*/ OPC_CheckChild0Type, MVT::i64, ++/* 78354*/ OPC_CheckChild1Integer, 1, ++/* 78356*/ OPC_CheckChild1Type, MVT::i64, ++/* 78358*/ OPC_CheckChild2Integer, 1, ++/* 78360*/ OPC_CheckChild2Type, MVT::i64, ++/* 78362*/ OPC_CheckChild3Integer, 1, ++/* 78364*/ OPC_CheckChild3Type, MVT::i64, ++/* 78366*/ OPC_CheckType, MVT::v4i64, ++/* 78368*/ OPC_MoveParent, ++/* 78369*/ OPC_CheckType, MVT::v4i64, ++/* 78371*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 78373*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_DU), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 55 ++ // Dst: (XVAVGR_DU:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/* 78381*/ 0, /*End of Scope*/ ++/* 78382*/ 0, /*End of Scope*/ ++/* 78383*/ /*Scope*/ 79|128,1/*207*/, /*->78592*/ ++/* 78385*/ OPC_RecordChild0, // #0 = $b ++/* 78386*/ OPC_Scope, 126, /*->78514*/ // 2 children in Scope ++/* 78388*/ OPC_MoveChild1, ++/* 78389*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/* 78392*/ OPC_Scope, 59, /*->78453*/ // 2 children in Scope ++/* 78394*/ OPC_MoveChild0, ++/* 78395*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 78398*/ OPC_CheckChild0Integer, 1, ++/* 78400*/ OPC_CheckChild0Type, MVT::i64, ++/* 78402*/ OPC_CheckChild1Integer, 1, ++/* 78404*/ OPC_CheckChild1Type, MVT::i64, ++/* 78406*/ OPC_CheckChild2Integer, 1, ++/* 78408*/ OPC_CheckChild2Type, MVT::i64, ++/* 78410*/ OPC_CheckChild3Integer, 1, ++/* 78412*/ OPC_CheckChild3Type, MVT::i64, ++/* 78414*/ OPC_MoveParent, ++/* 78415*/ OPC_RecordChild1, // #1 = $a ++/* 78416*/ OPC_MoveParent, ++/* 78417*/ OPC_MoveParent, ++/* 78418*/ OPC_MoveChild1, ++/* 78419*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 78422*/ OPC_CheckChild0Integer, 1, ++/* 78424*/ OPC_CheckChild0Type, MVT::i64, ++/* 78426*/ OPC_CheckChild1Integer, 1, ++/* 78428*/ OPC_CheckChild1Type, MVT::i64, ++/* 78430*/ OPC_CheckChild2Integer, 1, ++/* 78432*/ OPC_CheckChild2Type, MVT::i64, ++/* 78434*/ OPC_CheckChild3Integer, 1, ++/* 78436*/ OPC_CheckChild3Type, MVT::i64, ++/* 78438*/ OPC_CheckType, MVT::v4i64, ++/* 78440*/ OPC_MoveParent, ++/* 78441*/ OPC_CheckType, MVT::v4i64, ++/* 78443*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 78445*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_DU), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 55 ++ // Dst: (XVAVGR_DU:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/* 78453*/ /*Scope*/ 59, /*->78513*/ ++/* 78454*/ OPC_RecordChild0, // #1 = $a ++/* 78455*/ OPC_MoveChild1, ++/* 78456*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 78459*/ OPC_CheckChild0Integer, 1, ++/* 78461*/ OPC_CheckChild0Type, MVT::i64, ++/* 78463*/ OPC_CheckChild1Integer, 1, ++/* 78465*/ OPC_CheckChild1Type, MVT::i64, ++/* 78467*/ OPC_CheckChild2Integer, 1, ++/* 78469*/ OPC_CheckChild2Type, MVT::i64, ++/* 78471*/ OPC_CheckChild3Integer, 1, ++/* 78473*/ OPC_CheckChild3Type, MVT::i64, ++/* 78475*/ OPC_MoveParent, ++/* 78476*/ OPC_MoveParent, ++/* 78477*/ OPC_MoveParent, ++/* 78478*/ OPC_MoveChild1, ++/* 78479*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 78482*/ OPC_CheckChild0Integer, 1, ++/* 78484*/ OPC_CheckChild0Type, MVT::i64, ++/* 78486*/ OPC_CheckChild1Integer, 1, ++/* 78488*/ OPC_CheckChild1Type, MVT::i64, ++/* 78490*/ OPC_CheckChild2Integer, 1, ++/* 78492*/ OPC_CheckChild2Type, MVT::i64, ++/* 78494*/ OPC_CheckChild3Integer, 1, ++/* 78496*/ OPC_CheckChild3Type, MVT::i64, ++/* 78498*/ OPC_CheckType, MVT::v4i64, ++/* 78500*/ OPC_MoveParent, ++/* 78501*/ OPC_CheckType, MVT::v4i64, ++/* 78503*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 78505*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_DU), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 55 ++ // Dst: (XVAVGR_DU:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/* 78513*/ 0, /*End of Scope*/ ++/* 78514*/ /*Scope*/ 76, /*->78591*/ ++/* 78515*/ OPC_RecordChild1, // #1 = $b ++/* 78516*/ OPC_MoveParent, ++/* 78517*/ OPC_MoveChild1, ++/* 78518*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 78521*/ OPC_CheckChild0Integer, 1, ++/* 78523*/ OPC_CheckChild0Type, MVT::i32, ++/* 78525*/ OPC_CheckChild1Integer, 1, ++/* 78527*/ OPC_CheckChild1Type, MVT::i32, ++/* 78529*/ OPC_CheckChild2Integer, 1, ++/* 78531*/ OPC_CheckChild2Type, MVT::i32, ++/* 78533*/ OPC_CheckChild3Integer, 1, ++/* 78535*/ OPC_CheckChild3Type, MVT::i32, ++/* 78537*/ OPC_CheckChild4Integer, 1, ++/* 78539*/ OPC_CheckChild4Type, MVT::i32, ++/* 78541*/ OPC_MoveChild5, ++/* 78542*/ OPC_CheckInteger, 1, ++/* 78544*/ OPC_CheckType, MVT::i32, ++/* 78546*/ OPC_MoveParent, ++/* 78547*/ OPC_MoveChild6, ++/* 78548*/ OPC_CheckInteger, 1, ++/* 78550*/ OPC_CheckType, MVT::i32, ++/* 78552*/ OPC_MoveParent, ++/* 78553*/ OPC_MoveChild7, ++/* 78554*/ OPC_CheckInteger, 1, ++/* 78556*/ OPC_CheckType, MVT::i32, ++/* 78558*/ OPC_MoveParent, ++/* 78559*/ OPC_SwitchType /*2 cases */, 13, MVT::v8i16,// ->78575 ++/* 78562*/ OPC_MoveParent, ++/* 78563*/ OPC_CheckType, MVT::v8i16, ++/* 78565*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 78567*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_HU), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 49 ++ // Dst: (VAVG_HU:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/* 78575*/ /*SwitchType*/ 13, MVT::v8i32,// ->78590 ++/* 78577*/ OPC_MoveParent, ++/* 78578*/ OPC_CheckType, MVT::v8i32, ++/* 78580*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 78582*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_WU), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 49 ++ // Dst: (XVAVG_WU:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/* 78590*/ 0, // EndSwitchType ++/* 78591*/ 0, /*End of Scope*/ ++/* 78592*/ 0, /*End of Scope*/ ++/* 78593*/ /*Scope*/ 114|128,2/*370*/, /*->78965*/ ++/* 78595*/ OPC_RecordChild0, // #0 = $vs ++/* 78596*/ OPC_MoveChild1, ++/* 78597*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 78600*/ OPC_Scope, 51|128,1/*179*/, /*->78782*/ // 2 children in Scope ++/* 78603*/ OPC_RecordChild0, // #1 = $vt ++/* 78604*/ OPC_MoveChild1, ++/* 78605*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 78608*/ OPC_MoveChild0, ++/* 78609*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 78612*/ OPC_CheckType, MVT::i32, ++/* 78614*/ OPC_Scope, 82, /*->78698*/ // 2 children in Scope ++/* 78616*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 78618*/ OPC_MoveParent, ++/* 78619*/ OPC_MoveChild1, ++/* 78620*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 78623*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 78625*/ OPC_CheckType, MVT::i32, ++/* 78627*/ OPC_MoveParent, ++/* 78628*/ OPC_MoveChild2, ++/* 78629*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 78632*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 78634*/ OPC_CheckType, MVT::i32, ++/* 78636*/ OPC_MoveParent, ++/* 78637*/ OPC_MoveChild3, ++/* 78638*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 78641*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 78643*/ OPC_CheckType, MVT::i32, ++/* 78645*/ OPC_MoveParent, ++/* 78646*/ OPC_MoveChild4, ++/* 78647*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 78650*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 78652*/ OPC_CheckType, MVT::i32, ++/* 78654*/ OPC_MoveParent, ++/* 78655*/ OPC_MoveChild5, ++/* 78656*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 78659*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 78661*/ OPC_CheckType, MVT::i32, ++/* 78663*/ OPC_MoveParent, ++/* 78664*/ OPC_MoveChild6, ++/* 78665*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 78668*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 78670*/ OPC_CheckType, MVT::i32, ++/* 78672*/ OPC_MoveParent, ++/* 78673*/ OPC_MoveChild7, ++/* 78674*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 78677*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 78679*/ OPC_CheckType, MVT::i32, ++/* 78681*/ OPC_MoveParent, ++/* 78682*/ OPC_MoveParent, ++/* 78683*/ OPC_CheckType, MVT::v8i16, ++/* 78685*/ OPC_MoveParent, ++/* 78686*/ OPC_CheckType, MVT::v8i16, ++/* 78688*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 78690*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRL_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vs, (and:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vt, (build_vector:{ *:[v8i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))) - Complexity = 41 ++ // Dst: (VSRL_H:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vs, v8i16:{ *:[v8i16] }:$vt) ++/* 78698*/ /*Scope*/ 82, /*->78781*/ ++/* 78699*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 78701*/ OPC_MoveParent, ++/* 78702*/ OPC_MoveChild1, ++/* 78703*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 78706*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 78708*/ OPC_CheckType, MVT::i32, ++/* 78710*/ OPC_MoveParent, ++/* 78711*/ OPC_MoveChild2, ++/* 78712*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 78715*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 78717*/ OPC_CheckType, MVT::i32, ++/* 78719*/ OPC_MoveParent, ++/* 78720*/ OPC_MoveChild3, ++/* 78721*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 78724*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 78726*/ OPC_CheckType, MVT::i32, ++/* 78728*/ OPC_MoveParent, ++/* 78729*/ OPC_MoveChild4, ++/* 78730*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 78733*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 78735*/ OPC_CheckType, MVT::i32, ++/* 78737*/ OPC_MoveParent, ++/* 78738*/ OPC_MoveChild5, ++/* 78739*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 78742*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 78744*/ OPC_CheckType, MVT::i32, ++/* 78746*/ OPC_MoveParent, ++/* 78747*/ OPC_MoveChild6, ++/* 78748*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 78751*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 78753*/ OPC_CheckType, MVT::i32, ++/* 78755*/ OPC_MoveParent, ++/* 78756*/ OPC_MoveChild7, ++/* 78757*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 78760*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 78762*/ OPC_CheckType, MVT::i32, ++/* 78764*/ OPC_MoveParent, ++/* 78765*/ OPC_MoveParent, ++/* 78766*/ OPC_CheckType, MVT::v8i32, ++/* 78768*/ OPC_MoveParent, ++/* 78769*/ OPC_CheckType, MVT::v8i32, ++/* 78771*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 78773*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRL_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vs, (and:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vt, (build_vector:{ *:[v8i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))) - Complexity = 41 ++ // Dst: (XVSRL_W:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vs, v8i32:{ *:[v8i32] }:$vt) ++/* 78781*/ 0, /*End of Scope*/ ++/* 78782*/ /*Scope*/ 52|128,1/*180*/, /*->78964*/ ++/* 78784*/ OPC_MoveChild0, ++/* 78785*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 78788*/ OPC_MoveChild0, ++/* 78789*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 78792*/ OPC_CheckType, MVT::i32, ++/* 78794*/ OPC_Scope, 83, /*->78879*/ // 2 children in Scope ++/* 78796*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 78798*/ OPC_MoveParent, ++/* 78799*/ OPC_MoveChild1, ++/* 78800*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 78803*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 78805*/ OPC_CheckType, MVT::i32, ++/* 78807*/ OPC_MoveParent, ++/* 78808*/ OPC_MoveChild2, ++/* 78809*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 78812*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 78814*/ OPC_CheckType, MVT::i32, ++/* 78816*/ OPC_MoveParent, ++/* 78817*/ OPC_MoveChild3, ++/* 78818*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 78821*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 78823*/ OPC_CheckType, MVT::i32, ++/* 78825*/ OPC_MoveParent, ++/* 78826*/ OPC_MoveChild4, ++/* 78827*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 78830*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 78832*/ OPC_CheckType, MVT::i32, ++/* 78834*/ OPC_MoveParent, ++/* 78835*/ OPC_MoveChild5, ++/* 78836*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 78839*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 78841*/ OPC_CheckType, MVT::i32, ++/* 78843*/ OPC_MoveParent, ++/* 78844*/ OPC_MoveChild6, ++/* 78845*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 78848*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 78850*/ OPC_CheckType, MVT::i32, ++/* 78852*/ OPC_MoveParent, ++/* 78853*/ OPC_MoveChild7, ++/* 78854*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 78857*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/* 78859*/ OPC_CheckType, MVT::i32, ++/* 78861*/ OPC_MoveParent, ++/* 78862*/ OPC_MoveParent, ++/* 78863*/ OPC_RecordChild1, // #1 = $vt ++/* 78864*/ OPC_CheckType, MVT::v8i16, ++/* 78866*/ OPC_MoveParent, ++/* 78867*/ OPC_CheckType, MVT::v8i16, ++/* 78869*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 78871*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRL_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vs, (and:{ *:[v8i16] } (build_vector:{ *:[v8i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v8i16:{ *:[v8i16] }:$vt)) - Complexity = 41 ++ // Dst: (VSRL_H:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vs, v8i16:{ *:[v8i16] }:$vt) ++/* 78879*/ /*Scope*/ 83, /*->78963*/ ++/* 78880*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 78882*/ OPC_MoveParent, ++/* 78883*/ OPC_MoveChild1, ++/* 78884*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 78887*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 78889*/ OPC_CheckType, MVT::i32, ++/* 78891*/ OPC_MoveParent, ++/* 78892*/ OPC_MoveChild2, ++/* 78893*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 78896*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 78898*/ OPC_CheckType, MVT::i32, ++/* 78900*/ OPC_MoveParent, ++/* 78901*/ OPC_MoveChild3, ++/* 78902*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 78905*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 78907*/ OPC_CheckType, MVT::i32, ++/* 78909*/ OPC_MoveParent, ++/* 78910*/ OPC_MoveChild4, ++/* 78911*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 78914*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 78916*/ OPC_CheckType, MVT::i32, ++/* 78918*/ OPC_MoveParent, ++/* 78919*/ OPC_MoveChild5, ++/* 78920*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 78923*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 78925*/ OPC_CheckType, MVT::i32, ++/* 78927*/ OPC_MoveParent, ++/* 78928*/ OPC_MoveChild6, ++/* 78929*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 78932*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 78934*/ OPC_CheckType, MVT::i32, ++/* 78936*/ OPC_MoveParent, ++/* 78937*/ OPC_MoveChild7, ++/* 78938*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 78941*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 78943*/ OPC_CheckType, MVT::i32, ++/* 78945*/ OPC_MoveParent, ++/* 78946*/ OPC_MoveParent, ++/* 78947*/ OPC_RecordChild1, // #1 = $vt ++/* 78948*/ OPC_CheckType, MVT::v8i32, ++/* 78950*/ OPC_MoveParent, ++/* 78951*/ OPC_CheckType, MVT::v8i32, ++/* 78953*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 78955*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRL_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vs, (and:{ *:[v8i32] } (build_vector:{ *:[v8i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v8i32:{ *:[v8i32] }:$vt)) - Complexity = 41 ++ // Dst: (XVSRL_W:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vs, v8i32:{ *:[v8i32] }:$vt) ++/* 78963*/ 0, /*End of Scope*/ ++/* 78964*/ 0, /*End of Scope*/ ++/* 78965*/ /*Scope*/ 114|128,2/*370*/, /*->79337*/ ++/* 78967*/ OPC_MoveChild0, ++/* 78968*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/* 78971*/ OPC_Scope, 65|128,1/*193*/, /*->79167*/ // 2 children in Scope ++/* 78974*/ OPC_MoveChild0, ++/* 78975*/ OPC_SwitchOpcode /*2 cases */, 44, TARGET_VAL(ISD::BUILD_VECTOR),// ->79023 ++/* 78979*/ OPC_CheckChild0Integer, 1, ++/* 78981*/ OPC_CheckChild0Type, MVT::i64, ++/* 78983*/ OPC_CheckChild1Integer, 1, ++/* 78985*/ OPC_CheckChild1Type, MVT::i64, ++/* 78987*/ OPC_MoveParent, ++/* 78988*/ OPC_MoveChild1, ++/* 78989*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/* 78992*/ OPC_RecordChild0, // #0 = $a ++/* 78993*/ OPC_RecordChild1, // #1 = $b ++/* 78994*/ OPC_MoveParent, ++/* 78995*/ OPC_MoveParent, ++/* 78996*/ OPC_MoveChild1, ++/* 78997*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 79000*/ OPC_CheckChild0Integer, 1, ++/* 79002*/ OPC_CheckChild0Type, MVT::i64, ++/* 79004*/ OPC_CheckChild1Integer, 1, ++/* 79006*/ OPC_CheckChild1Type, MVT::i64, ++/* 79008*/ OPC_CheckType, MVT::v2i64, ++/* 79010*/ OPC_MoveParent, ++/* 79011*/ OPC_CheckType, MVT::v2i64, ++/* 79013*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 79015*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_DU), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 35 ++ // Dst: (VAVGR_DU:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/* 79023*/ /*SwitchOpcode*/ 11|128,1/*139*/, TARGET_VAL(ISD::ADD),// ->79166 ++/* 79027*/ OPC_Scope, 44, /*->79073*/ // 2 children in Scope ++/* 79029*/ OPC_MoveChild0, ++/* 79030*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 79033*/ OPC_CheckChild0Integer, 1, ++/* 79035*/ OPC_CheckChild0Type, MVT::i64, ++/* 79037*/ OPC_CheckChild1Integer, 1, ++/* 79039*/ OPC_CheckChild1Type, MVT::i64, ++/* 79041*/ OPC_MoveParent, ++/* 79042*/ OPC_RecordChild1, // #0 = $a ++/* 79043*/ OPC_MoveParent, ++/* 79044*/ OPC_RecordChild1, // #1 = $b ++/* 79045*/ OPC_MoveParent, ++/* 79046*/ OPC_MoveChild1, ++/* 79047*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 79050*/ OPC_CheckChild0Integer, 1, ++/* 79052*/ OPC_CheckChild0Type, MVT::i64, ++/* 79054*/ OPC_CheckChild1Integer, 1, ++/* 79056*/ OPC_CheckChild1Type, MVT::i64, ++/* 79058*/ OPC_CheckType, MVT::v2i64, ++/* 79060*/ OPC_MoveParent, ++/* 79061*/ OPC_CheckType, MVT::v2i64, ++/* 79063*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 79065*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_DU), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a), LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 35 ++ // Dst: (VAVGR_DU:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/* 79073*/ /*Scope*/ 91, /*->79165*/ ++/* 79074*/ OPC_RecordChild0, // #0 = $a ++/* 79075*/ OPC_Scope, 43, /*->79120*/ // 2 children in Scope ++/* 79077*/ OPC_MoveChild1, ++/* 79078*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 79081*/ OPC_CheckChild0Integer, 1, ++/* 79083*/ OPC_CheckChild0Type, MVT::i64, ++/* 79085*/ OPC_CheckChild1Integer, 1, ++/* 79087*/ OPC_CheckChild1Type, MVT::i64, ++/* 79089*/ OPC_MoveParent, ++/* 79090*/ OPC_MoveParent, ++/* 79091*/ OPC_RecordChild1, // #1 = $b ++/* 79092*/ OPC_MoveParent, ++/* 79093*/ OPC_MoveChild1, ++/* 79094*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 79097*/ OPC_CheckChild0Integer, 1, ++/* 79099*/ OPC_CheckChild0Type, MVT::i64, ++/* 79101*/ OPC_CheckChild1Integer, 1, ++/* 79103*/ OPC_CheckChild1Type, MVT::i64, ++/* 79105*/ OPC_CheckType, MVT::v2i64, ++/* 79107*/ OPC_MoveParent, ++/* 79108*/ OPC_CheckType, MVT::v2i64, ++/* 79110*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 79112*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_DU), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 35 ++ // Dst: (VAVGR_DU:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/* 79120*/ /*Scope*/ 43, /*->79164*/ ++/* 79121*/ OPC_RecordChild1, // #1 = $b ++/* 79122*/ OPC_MoveParent, ++/* 79123*/ OPC_MoveChild1, ++/* 79124*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 79127*/ OPC_CheckChild0Integer, 1, ++/* 79129*/ OPC_CheckChild0Type, MVT::i64, ++/* 79131*/ OPC_CheckChild1Integer, 1, ++/* 79133*/ OPC_CheckChild1Type, MVT::i64, ++/* 79135*/ OPC_MoveParent, ++/* 79136*/ OPC_MoveParent, ++/* 79137*/ OPC_MoveChild1, ++/* 79138*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 79141*/ OPC_CheckChild0Integer, 1, ++/* 79143*/ OPC_CheckChild0Type, MVT::i64, ++/* 79145*/ OPC_CheckChild1Integer, 1, ++/* 79147*/ OPC_CheckChild1Type, MVT::i64, ++/* 79149*/ OPC_CheckType, MVT::v2i64, ++/* 79151*/ OPC_MoveParent, ++/* 79152*/ OPC_CheckType, MVT::v2i64, ++/* 79154*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 79156*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_DU), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 35 ++ // Dst: (VAVGR_DU:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/* 79164*/ 0, /*End of Scope*/ ++/* 79165*/ 0, /*End of Scope*/ ++/* 79166*/ 0, // EndSwitchOpcode ++/* 79167*/ /*Scope*/ 39|128,1/*167*/, /*->79336*/ ++/* 79169*/ OPC_RecordChild0, // #0 = $b ++/* 79170*/ OPC_Scope, 94, /*->79266*/ // 2 children in Scope ++/* 79172*/ OPC_MoveChild1, ++/* 79173*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/* 79176*/ OPC_Scope, 43, /*->79221*/ // 2 children in Scope ++/* 79178*/ OPC_MoveChild0, ++/* 79179*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 79182*/ OPC_CheckChild0Integer, 1, ++/* 79184*/ OPC_CheckChild0Type, MVT::i64, ++/* 79186*/ OPC_CheckChild1Integer, 1, ++/* 79188*/ OPC_CheckChild1Type, MVT::i64, ++/* 79190*/ OPC_MoveParent, ++/* 79191*/ OPC_RecordChild1, // #1 = $a ++/* 79192*/ OPC_MoveParent, ++/* 79193*/ OPC_MoveParent, ++/* 79194*/ OPC_MoveChild1, ++/* 79195*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 79198*/ OPC_CheckChild0Integer, 1, ++/* 79200*/ OPC_CheckChild0Type, MVT::i64, ++/* 79202*/ OPC_CheckChild1Integer, 1, ++/* 79204*/ OPC_CheckChild1Type, MVT::i64, ++/* 79206*/ OPC_CheckType, MVT::v2i64, ++/* 79208*/ OPC_MoveParent, ++/* 79209*/ OPC_CheckType, MVT::v2i64, ++/* 79211*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 79213*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_DU), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 35 ++ // Dst: (VAVGR_DU:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/* 79221*/ /*Scope*/ 43, /*->79265*/ ++/* 79222*/ OPC_RecordChild0, // #1 = $a ++/* 79223*/ OPC_MoveChild1, ++/* 79224*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 79227*/ OPC_CheckChild0Integer, 1, ++/* 79229*/ OPC_CheckChild0Type, MVT::i64, ++/* 79231*/ OPC_CheckChild1Integer, 1, ++/* 79233*/ OPC_CheckChild1Type, MVT::i64, ++/* 79235*/ OPC_MoveParent, ++/* 79236*/ OPC_MoveParent, ++/* 79237*/ OPC_MoveParent, ++/* 79238*/ OPC_MoveChild1, ++/* 79239*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 79242*/ OPC_CheckChild0Integer, 1, ++/* 79244*/ OPC_CheckChild0Type, MVT::i64, ++/* 79246*/ OPC_CheckChild1Integer, 1, ++/* 79248*/ OPC_CheckChild1Type, MVT::i64, ++/* 79250*/ OPC_CheckType, MVT::v2i64, ++/* 79252*/ OPC_MoveParent, ++/* 79253*/ OPC_CheckType, MVT::v2i64, ++/* 79255*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 79257*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_DU), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 35 ++ // Dst: (VAVGR_DU:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/* 79265*/ 0, /*End of Scope*/ ++/* 79266*/ /*Scope*/ 68, /*->79335*/ ++/* 79267*/ OPC_RecordChild1, // #1 = $b ++/* 79268*/ OPC_MoveParent, ++/* 79269*/ OPC_MoveChild1, ++/* 79270*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 79273*/ OPC_CheckChild0Integer, 1, ++/* 79275*/ OPC_SwitchType /*2 cases */, 27, MVT::v4i32,// ->79305 ++/* 79278*/ OPC_CheckChild0Type, MVT::i32, ++/* 79280*/ OPC_CheckChild1Integer, 1, ++/* 79282*/ OPC_CheckChild1Type, MVT::i32, ++/* 79284*/ OPC_CheckChild2Integer, 1, ++/* 79286*/ OPC_CheckChild2Type, MVT::i32, ++/* 79288*/ OPC_CheckChild3Integer, 1, ++/* 79290*/ OPC_CheckChild3Type, MVT::i32, ++/* 79292*/ OPC_MoveParent, ++/* 79293*/ OPC_CheckType, MVT::v4i32, ++/* 79295*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 79297*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_WU), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 29 ++ // Dst: (VAVG_WU:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/* 79305*/ /*SwitchType*/ 27, MVT::v4i64,// ->79334 ++/* 79307*/ OPC_CheckChild0Type, MVT::i64, ++/* 79309*/ OPC_CheckChild1Integer, 1, ++/* 79311*/ OPC_CheckChild1Type, MVT::i64, ++/* 79313*/ OPC_CheckChild2Integer, 1, ++/* 79315*/ OPC_CheckChild2Type, MVT::i64, ++/* 79317*/ OPC_CheckChild3Integer, 1, ++/* 79319*/ OPC_CheckChild3Type, MVT::i64, ++/* 79321*/ OPC_MoveParent, ++/* 79322*/ OPC_CheckType, MVT::v4i64, ++/* 79324*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 79326*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_DU), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 29 ++ // Dst: (XVAVG_DU:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/* 79334*/ 0, // EndSwitchType ++/* 79335*/ 0, /*End of Scope*/ ++/* 79336*/ 0, /*End of Scope*/ ++/* 79337*/ /*Scope*/ 123, /*->79461*/ ++/* 79338*/ OPC_RecordChild0, // #0 = $vs ++/* 79339*/ OPC_MoveChild1, ++/* 79340*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 79343*/ OPC_Scope, 57, /*->79402*/ // 2 children in Scope ++/* 79345*/ OPC_RecordChild0, // #1 = $vt ++/* 79346*/ OPC_MoveChild1, ++/* 79347*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 79350*/ OPC_MoveChild0, ++/* 79351*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 79354*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 79356*/ OPC_CheckType, MVT::i32, ++/* 79358*/ OPC_MoveParent, ++/* 79359*/ OPC_MoveChild1, ++/* 79360*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 79363*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 79365*/ OPC_CheckType, MVT::i32, ++/* 79367*/ OPC_MoveParent, ++/* 79368*/ OPC_MoveChild2, ++/* 79369*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 79372*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 79374*/ OPC_CheckType, MVT::i32, ++/* 79376*/ OPC_MoveParent, ++/* 79377*/ OPC_MoveChild3, ++/* 79378*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 79381*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 79383*/ OPC_CheckType, MVT::i32, ++/* 79385*/ OPC_MoveParent, ++/* 79386*/ OPC_MoveParent, ++/* 79387*/ OPC_CheckType, MVT::v4i32, ++/* 79389*/ OPC_MoveParent, ++/* 79390*/ OPC_CheckType, MVT::v4i32, ++/* 79392*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 79394*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRL_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vs, (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vt, (build_vector:{ *:[v4i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))) - Complexity = 25 ++ // Dst: (VSRL_W:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vs, v4i32:{ *:[v4i32] }:$vt) ++/* 79402*/ /*Scope*/ 57, /*->79460*/ ++/* 79403*/ OPC_MoveChild0, ++/* 79404*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 79407*/ OPC_MoveChild0, ++/* 79408*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 79411*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 79413*/ OPC_CheckType, MVT::i32, ++/* 79415*/ OPC_MoveParent, ++/* 79416*/ OPC_MoveChild1, ++/* 79417*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 79420*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 79422*/ OPC_CheckType, MVT::i32, ++/* 79424*/ OPC_MoveParent, ++/* 79425*/ OPC_MoveChild2, ++/* 79426*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 79429*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 79431*/ OPC_CheckType, MVT::i32, ++/* 79433*/ OPC_MoveParent, ++/* 79434*/ OPC_MoveChild3, ++/* 79435*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 79438*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/* 79440*/ OPC_CheckType, MVT::i32, ++/* 79442*/ OPC_MoveParent, ++/* 79443*/ OPC_MoveParent, ++/* 79444*/ OPC_RecordChild1, // #1 = $vt ++/* 79445*/ OPC_CheckType, MVT::v4i32, ++/* 79447*/ OPC_MoveParent, ++/* 79448*/ OPC_CheckType, MVT::v4i32, ++/* 79450*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 79452*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRL_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vs, (and:{ *:[v4i32] } (build_vector:{ *:[v4i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v4i32:{ *:[v4i32] }:$vt)) - Complexity = 25 ++ // Dst: (VSRL_W:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vs, v4i32:{ *:[v4i32] }:$vt) ++/* 79460*/ 0, /*End of Scope*/ ++/* 79461*/ /*Scope*/ 34, /*->79496*/ ++/* 79462*/ OPC_MoveChild0, ++/* 79463*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/* 79466*/ OPC_RecordChild0, // #0 = $a ++/* 79467*/ OPC_RecordChild1, // #1 = $b ++/* 79468*/ OPC_MoveParent, ++/* 79469*/ OPC_MoveChild1, ++/* 79470*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 79473*/ OPC_CheckChild0Integer, 1, ++/* 79475*/ OPC_CheckChild0Type, MVT::i64, ++/* 79477*/ OPC_CheckChild1Integer, 1, ++/* 79479*/ OPC_CheckChild1Type, MVT::i64, ++/* 79481*/ OPC_CheckType, MVT::v2i64, ++/* 79483*/ OPC_MoveParent, ++/* 79484*/ OPC_CheckType, MVT::v2i64, ++/* 79486*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 79488*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_DU), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 19 ++ // Dst: (VAVG_DU:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/* 79496*/ /*Scope*/ 84|128,2/*340*/, /*->79838*/ ++/* 79498*/ OPC_RecordChild0, // #0 = $vs ++/* 79499*/ OPC_Scope, 115, /*->79616*/ // 2 children in Scope ++/* 79501*/ OPC_MoveChild1, ++/* 79502*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/* 79505*/ OPC_Scope, 53, /*->79560*/ // 2 children in Scope ++/* 79507*/ OPC_RecordChild0, // #1 = $vt ++/* 79508*/ OPC_MoveChild1, ++/* 79509*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 79512*/ OPC_MoveChild0, ++/* 79513*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 79516*/ OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->79538 ++/* 79519*/ OPC_MoveParent, ++/* 79520*/ OPC_CheckPredicate, 40, // Predicate_vsplati64_imm_eq_63 ++/* 79522*/ OPC_MoveParent, ++/* 79523*/ OPC_CheckType, MVT::v2i64, ++/* 79525*/ OPC_MoveParent, ++/* 79526*/ OPC_CheckType, MVT::v2i64, ++/* 79528*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 79530*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRL_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vs, (and:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vt, (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] }))<>)) - Complexity = 13 ++ // Dst: (VSRL_D:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vs, v2i64:{ *:[v2i64] }:$vt) ++/* 79538*/ /*SwitchType*/ 19, MVT::v8i32,// ->79559 ++/* 79540*/ OPC_MoveParent, ++/* 79541*/ OPC_CheckPredicate, 40, // Predicate_xvsplati64_imm_eq_63 ++/* 79543*/ OPC_MoveParent, ++/* 79544*/ OPC_CheckType, MVT::v4i64, ++/* 79546*/ OPC_MoveParent, ++/* 79547*/ OPC_CheckType, MVT::v4i64, ++/* 79549*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 79551*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRL_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vs, (and:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vt, (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] }))<>)) - Complexity = 13 ++ // Dst: (XVSRL_D:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vs, v4i64:{ *:[v4i64] }:$vt) ++/* 79559*/ 0, // EndSwitchType ++/* 79560*/ /*Scope*/ 54, /*->79615*/ ++/* 79561*/ OPC_MoveChild0, ++/* 79562*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/* 79565*/ OPC_MoveChild0, ++/* 79566*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 79569*/ OPC_SwitchType /*2 cases */, 20, MVT::v4i32,// ->79592 ++/* 79572*/ OPC_MoveParent, ++/* 79573*/ OPC_CheckPredicate, 40, // Predicate_vsplati64_imm_eq_63 ++/* 79575*/ OPC_MoveParent, ++/* 79576*/ OPC_RecordChild1, // #1 = $vt ++/* 79577*/ OPC_CheckType, MVT::v2i64, ++/* 79579*/ OPC_MoveParent, ++/* 79580*/ OPC_CheckType, MVT::v2i64, ++/* 79582*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/* 79584*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRL_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vs, (and:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] }))<>, v2i64:{ *:[v2i64] }:$vt)) - Complexity = 13 ++ // Dst: (VSRL_D:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vs, v2i64:{ *:[v2i64] }:$vt) ++/* 79592*/ /*SwitchType*/ 20, MVT::v8i32,// ->79614 ++/* 79594*/ OPC_MoveParent, ++/* 79595*/ OPC_CheckPredicate, 40, // Predicate_xvsplati64_imm_eq_63 ++/* 79597*/ OPC_MoveParent, ++/* 79598*/ OPC_RecordChild1, // #1 = $vt ++/* 79599*/ OPC_CheckType, MVT::v4i64, ++/* 79601*/ OPC_MoveParent, ++/* 79602*/ OPC_CheckType, MVT::v4i64, ++/* 79604*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 79606*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRL_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vs, (and:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] }))<>, v4i64:{ *:[v4i64] }:$vt)) - Complexity = 13 ++ // Dst: (XVSRL_D:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vs, v4i64:{ *:[v4i64] }:$vt) ++/* 79614*/ 0, // EndSwitchType ++/* 79615*/ 0, /*End of Scope*/ ++/* 79616*/ /*Scope*/ 91|128,1/*219*/, /*->79837*/ ++/* 79618*/ OPC_RecordChild1, // #1 = $ui3 ++/* 79619*/ OPC_SwitchType /*8 cases */, 25, MVT::v16i8,// ->79647 ++/* 79622*/ OPC_CheckChild1Type, MVT::v16i8, ++/* 79624*/ OPC_Scope, 11, /*->79637*/ // 2 children in Scope ++/* 79626*/ OPC_CheckComplexPat, /*CP*/23, /*#*/1, // selectVSplatUimm3:$ui3 #2 ++/* 79629*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRLI_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 2, ++ // Src: (srl:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, vsplati8_uimm3:{ *:[v16i8] }:$ui3) - Complexity = 9 ++ // Dst: (VSRLI_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, vsplati8_uimm3:{ *:[v16i8] }:$ui3) ++/* 79637*/ /*Scope*/ 8, /*->79646*/ ++/* 79638*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRL_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) - Complexity = 3 ++ // Dst: (VSRL_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/* 79646*/ 0, /*End of Scope*/ ++/* 79647*/ /*SwitchType*/ 25, MVT::v8i16,// ->79674 ++/* 79649*/ OPC_CheckChild1Type, MVT::v8i16, ++/* 79651*/ OPC_Scope, 11, /*->79664*/ // 2 children in Scope ++/* 79653*/ OPC_CheckComplexPat, /*CP*/24, /*#*/1, // selectVSplatUimm4:$ui4 #2 ++/* 79656*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRLI_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 2, ++ // Src: (srl:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, vsplati16_uimm4:{ *:[v8i16] }:$ui4) - Complexity = 9 ++ // Dst: (VSRLI_H:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, vsplati16_uimm4:{ *:[v8i16] }:$ui4) ++/* 79664*/ /*Scope*/ 8, /*->79673*/ ++/* 79665*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRL_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 3 ++ // Dst: (VSRL_H:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/* 79673*/ 0, /*End of Scope*/ ++/* 79674*/ /*SwitchType*/ 25, MVT::v4i32,// ->79701 ++/* 79676*/ OPC_CheckChild1Type, MVT::v4i32, ++/* 79678*/ OPC_Scope, 11, /*->79691*/ // 2 children in Scope ++/* 79680*/ OPC_CheckComplexPat, /*CP*/10, /*#*/1, // selectVSplatUimm5:$ui5 #2 ++/* 79683*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRLI_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 2, ++ // Src: (srl:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, vsplati32_uimm5:{ *:[v4i32] }:$ui5) - Complexity = 9 ++ // Dst: (VSRLI_W:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, vsplati32_uimm5:{ *:[v4i32] }:$ui5) ++/* 79691*/ /*Scope*/ 8, /*->79700*/ ++/* 79692*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRL_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 3 ++ // Dst: (VSRL_W:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/* 79700*/ 0, /*End of Scope*/ ++/* 79701*/ /*SwitchType*/ 25, MVT::v2i64,// ->79728 ++/* 79703*/ OPC_CheckChild1Type, MVT::v2i64, ++/* 79705*/ OPC_Scope, 11, /*->79718*/ // 2 children in Scope ++/* 79707*/ OPC_CheckComplexPat, /*CP*/25, /*#*/1, // selectVSplatUimm6:$ui6 #2 ++/* 79710*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRLI_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 2, ++ // Src: (srl:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, vsplati64_uimm6:{ *:[v2i64] }:$ui6) - Complexity = 9 ++ // Dst: (VSRLI_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, vsplati64_uimm6:{ *:[v2i64] }:$ui6) ++/* 79718*/ /*Scope*/ 8, /*->79727*/ ++/* 79719*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRL_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 3 ++ // Dst: (VSRL_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/* 79727*/ 0, /*End of Scope*/ ++/* 79728*/ /*SwitchType*/ 25, MVT::v32i8,// ->79755 ++/* 79730*/ OPC_CheckChild1Type, MVT::v32i8, ++/* 79732*/ OPC_Scope, 11, /*->79745*/ // 2 children in Scope ++/* 79734*/ OPC_CheckComplexPat, /*CP*/26, /*#*/1, // selectVSplatUimm3:$ui3 #2 ++/* 79737*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRLI_B_N), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 2, ++ // Src: (srl:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, xvsplati8_uimm3:{ *:[v32i8] }:$ui3) - Complexity = 9 ++ // Dst: (XVSRLI_B_N:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, xvsplati8_uimm3:{ *:[v32i8] }:$ui3) ++/* 79745*/ /*Scope*/ 8, /*->79754*/ ++/* 79746*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRL_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 3 ++ // Dst: (XVSRL_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/* 79754*/ 0, /*End of Scope*/ ++/* 79755*/ /*SwitchType*/ 25, MVT::v16i16,// ->79782 ++/* 79757*/ OPC_CheckChild1Type, MVT::v16i16, ++/* 79759*/ OPC_Scope, 11, /*->79772*/ // 2 children in Scope ++/* 79761*/ OPC_CheckComplexPat, /*CP*/27, /*#*/1, // selectVSplatUimm4:$ui4 #2 ++/* 79764*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRLI_H_N), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 2, ++ // Src: (srl:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, xvsplati16_uimm4:{ *:[v16i16] }:$ui4) - Complexity = 9 ++ // Dst: (XVSRLI_H_N:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, xvsplati16_uimm4:{ *:[v16i16] }:$ui4) ++/* 79772*/ /*Scope*/ 8, /*->79781*/ ++/* 79773*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRL_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 3 ++ // Dst: (XVSRL_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/* 79781*/ 0, /*End of Scope*/ ++/* 79782*/ /*SwitchType*/ 25, MVT::v8i32,// ->79809 ++/* 79784*/ OPC_CheckChild1Type, MVT::v8i32, ++/* 79786*/ OPC_Scope, 11, /*->79799*/ // 2 children in Scope ++/* 79788*/ OPC_CheckComplexPat, /*CP*/18, /*#*/1, // selectVSplatUimm5:$ui5 #2 ++/* 79791*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRLI_W_N), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 2, ++ // Src: (srl:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, xvsplati32_uimm5:{ *:[v8i32] }:$ui5) - Complexity = 9 ++ // Dst: (XVSRLI_W_N:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, xvsplati32_uimm5:{ *:[v8i32] }:$ui5) ++/* 79799*/ /*Scope*/ 8, /*->79808*/ ++/* 79800*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRL_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 3 ++ // Dst: (XVSRL_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/* 79808*/ 0, /*End of Scope*/ ++/* 79809*/ /*SwitchType*/ 25, MVT::v4i64,// ->79836 ++/* 79811*/ OPC_CheckChild1Type, MVT::v4i64, ++/* 79813*/ OPC_Scope, 11, /*->79826*/ // 2 children in Scope ++/* 79815*/ OPC_CheckComplexPat, /*CP*/28, /*#*/1, // selectVSplatUimm6:$ui6 #2 ++/* 79818*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRLI_D_N), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 2, ++ // Src: (srl:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, xvsplati64_uimm6:{ *:[v4i64] }:$ui6) - Complexity = 9 ++ // Dst: (XVSRLI_D_N:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, xvsplati64_uimm6:{ *:[v4i64] }:$ui6) ++/* 79826*/ /*Scope*/ 8, /*->79835*/ ++/* 79827*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRL_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (srl:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 3 ++ // Dst: (XVSRL_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/* 79835*/ 0, /*End of Scope*/ ++/* 79836*/ 0, // EndSwitchType ++/* 79837*/ 0, /*End of Scope*/ ++/* 79838*/ 0, /*End of Scope*/ ++/* 79839*/ /*SwitchOpcode*/ 111|128,16|128,30/*493679*/, TARGET_VAL(ISD::SRA),// ->573523 ++/* 79844*/ OPC_Scope, 70, /*->79916*/ // 15 children in Scope ++/* 79846*/ OPC_RecordChild0, // #0 = $rj ++/* 79847*/ OPC_RecordChild1, // #1 = $imm6 ++/* 79848*/ OPC_Scope, 40, /*->79890*/ // 2 children in Scope ++/* 79850*/ OPC_MoveChild1, ++/* 79851*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/* 79854*/ OPC_CheckType, MVT::i32, ++/* 79856*/ OPC_Scope, 15, /*->79873*/ // 2 children in Scope ++/* 79858*/ OPC_CheckPredicate, 43, // Predicate_uimm6 ++/* 79860*/ OPC_MoveParent, ++/* 79861*/ OPC_CheckType, MVT::i64, ++/* 79863*/ OPC_EmitConvertToTarget, 1, ++/* 79865*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SRAI_D), 0, ++ MVT::i64, 2/*#Ops*/, 0, 2, ++ // Src: (sra:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, (imm:{ *:[i32] })<>:$imm6) - Complexity = 7 ++ // Dst: (SRAI_D:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, (imm:{ *:[i32] }):$imm6) ++/* 79873*/ /*Scope*/ 15, /*->79889*/ ++/* 79874*/ OPC_CheckPredicate, 20, // Predicate_uimm5 ++/* 79876*/ OPC_MoveParent, ++/* 79877*/ OPC_CheckType, MVT::i32, ++/* 79879*/ OPC_EmitConvertToTarget, 1, ++/* 79881*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SRAI_W), 0, ++ MVT::i32, 2/*#Ops*/, 0, 2, ++ // Src: (sra:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, (imm:{ *:[i32] })<>:$imm5) - Complexity = 7 ++ // Dst: (SRAI_W:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, (imm:{ *:[i32] }):$imm5) ++/* 79889*/ 0, /*End of Scope*/ ++/* 79890*/ /*Scope*/ 24, /*->79915*/ ++/* 79891*/ OPC_CheckChild1Type, MVT::i32, ++/* 79893*/ OPC_SwitchType /*2 cases */, 8, MVT::i64,// ->79904 ++/* 79896*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SRA_D), 0, ++ MVT::i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) - Complexity = 3 ++ // Dst: (SRA_D:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) ++/* 79904*/ /*SwitchType*/ 8, MVT::i32,// ->79914 ++/* 79906*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SRA_W), 0, ++ MVT::i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) - Complexity = 3 ++ // Dst: (SRA_W:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) ++/* 79914*/ 0, // EndSwitchType ++/* 79915*/ 0, /*End of Scope*/ ++/* 79916*/ /*Scope*/ 92|128,70|128,25/*418652*/, /*->498571*/ ++/* 79919*/ OPC_MoveChild0, ++/* 79920*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/* 79923*/ OPC_Scope, 71|128,124|128,19/*327239*/, /*->407166*/ // 6 children in Scope ++/* 79927*/ OPC_MoveChild0, ++/* 79928*/ OPC_SwitchOpcode /*2 cases */, 8|128,106|128,11/*193800*/, TARGET_VAL(ISD::ADD),// ->273734 ++/* 79934*/ OPC_Scope, 4|128,122|128,2/*48388*/, /*->128326*/ // 11 children in Scope ++/* 79938*/ OPC_MoveChild0, ++/* 79939*/ OPC_SwitchOpcode /*2 cases */, 116|128,6/*884*/, TARGET_VAL(ISD::BUILD_VECTOR),// ->80828 ++/* 79944*/ OPC_CheckChild0Integer, 1, ++/* 79946*/ OPC_CheckChild0Type, MVT::i32, ++/* 79948*/ OPC_CheckChild1Integer, 1, ++/* 79950*/ OPC_CheckChild1Type, MVT::i32, ++/* 79952*/ OPC_CheckChild2Integer, 1, ++/* 79954*/ OPC_CheckChild2Type, MVT::i32, ++/* 79956*/ OPC_CheckChild3Integer, 1, ++/* 79958*/ OPC_CheckChild3Type, MVT::i32, ++/* 79960*/ OPC_CheckChild4Integer, 1, ++/* 79962*/ OPC_CheckChild4Type, MVT::i32, ++/* 79964*/ OPC_MoveChild5, ++/* 79965*/ OPC_CheckInteger, 1, ++/* 79967*/ OPC_CheckType, MVT::i32, ++/* 79969*/ OPC_MoveParent, ++/* 79970*/ OPC_MoveChild6, ++/* 79971*/ OPC_CheckInteger, 1, ++/* 79973*/ OPC_CheckType, MVT::i32, ++/* 79975*/ OPC_MoveParent, ++/* 79976*/ OPC_MoveChild7, ++/* 79977*/ OPC_CheckInteger, 1, ++/* 79979*/ OPC_CheckType, MVT::i32, ++/* 79981*/ OPC_MoveParent, ++/* 79982*/ OPC_MoveChild, 8, ++/* 79984*/ OPC_CheckInteger, 1, ++/* 79986*/ OPC_CheckType, MVT::i32, ++/* 79988*/ OPC_MoveParent, ++/* 79989*/ OPC_MoveChild, 9, ++/* 79991*/ OPC_CheckInteger, 1, ++/* 79993*/ OPC_CheckType, MVT::i32, ++/* 79995*/ OPC_MoveParent, ++/* 79996*/ OPC_MoveChild, 10, ++/* 79998*/ OPC_CheckInteger, 1, ++/* 80000*/ OPC_CheckType, MVT::i32, ++/* 80002*/ OPC_MoveParent, ++/* 80003*/ OPC_MoveChild, 11, ++/* 80005*/ OPC_CheckInteger, 1, ++/* 80007*/ OPC_CheckType, MVT::i32, ++/* 80009*/ OPC_MoveParent, ++/* 80010*/ OPC_MoveChild, 12, ++/* 80012*/ OPC_CheckInteger, 1, ++/* 80014*/ OPC_CheckType, MVT::i32, ++/* 80016*/ OPC_MoveParent, ++/* 80017*/ OPC_MoveChild, 13, ++/* 80019*/ OPC_CheckInteger, 1, ++/* 80021*/ OPC_CheckType, MVT::i32, ++/* 80023*/ OPC_MoveParent, ++/* 80024*/ OPC_MoveChild, 14, ++/* 80026*/ OPC_CheckInteger, 1, ++/* 80028*/ OPC_CheckType, MVT::i32, ++/* 80030*/ OPC_MoveParent, ++/* 80031*/ OPC_MoveChild, 15, ++/* 80033*/ OPC_CheckInteger, 1, ++/* 80035*/ OPC_CheckType, MVT::i32, ++/* 80037*/ OPC_MoveParent, ++/* 80038*/ OPC_MoveChild, 16, ++/* 80040*/ OPC_CheckInteger, 1, ++/* 80042*/ OPC_CheckType, MVT::i32, ++/* 80044*/ OPC_MoveParent, ++/* 80045*/ OPC_MoveChild, 17, ++/* 80047*/ OPC_CheckInteger, 1, ++/* 80049*/ OPC_CheckType, MVT::i32, ++/* 80051*/ OPC_MoveParent, ++/* 80052*/ OPC_MoveChild, 18, ++/* 80054*/ OPC_CheckInteger, 1, ++/* 80056*/ OPC_CheckType, MVT::i32, ++/* 80058*/ OPC_MoveParent, ++/* 80059*/ OPC_MoveChild, 19, ++/* 80061*/ OPC_CheckInteger, 1, ++/* 80063*/ OPC_CheckType, MVT::i32, ++/* 80065*/ OPC_MoveParent, ++/* 80066*/ OPC_MoveChild, 20, ++/* 80068*/ OPC_CheckInteger, 1, ++/* 80070*/ OPC_CheckType, MVT::i32, ++/* 80072*/ OPC_MoveParent, ++/* 80073*/ OPC_MoveChild, 21, ++/* 80075*/ OPC_CheckInteger, 1, ++/* 80077*/ OPC_CheckType, MVT::i32, ++/* 80079*/ OPC_MoveParent, ++/* 80080*/ OPC_MoveChild, 22, ++/* 80082*/ OPC_CheckInteger, 1, ++/* 80084*/ OPC_CheckType, MVT::i32, ++/* 80086*/ OPC_MoveParent, ++/* 80087*/ OPC_MoveChild, 23, ++/* 80089*/ OPC_CheckInteger, 1, ++/* 80091*/ OPC_CheckType, MVT::i32, ++/* 80093*/ OPC_MoveParent, ++/* 80094*/ OPC_MoveChild, 24, ++/* 80096*/ OPC_CheckInteger, 1, ++/* 80098*/ OPC_CheckType, MVT::i32, ++/* 80100*/ OPC_MoveParent, ++/* 80101*/ OPC_MoveChild, 25, ++/* 80103*/ OPC_CheckInteger, 1, ++/* 80105*/ OPC_CheckType, MVT::i32, ++/* 80107*/ OPC_MoveParent, ++/* 80108*/ OPC_MoveChild, 26, ++/* 80110*/ OPC_CheckInteger, 1, ++/* 80112*/ OPC_CheckType, MVT::i32, ++/* 80114*/ OPC_MoveParent, ++/* 80115*/ OPC_MoveChild, 27, ++/* 80117*/ OPC_CheckInteger, 1, ++/* 80119*/ OPC_CheckType, MVT::i32, ++/* 80121*/ OPC_MoveParent, ++/* 80122*/ OPC_MoveChild, 28, ++/* 80124*/ OPC_CheckInteger, 1, ++/* 80126*/ OPC_CheckType, MVT::i32, ++/* 80128*/ OPC_MoveParent, ++/* 80129*/ OPC_MoveChild, 29, ++/* 80131*/ OPC_CheckInteger, 1, ++/* 80133*/ OPC_CheckType, MVT::i32, ++/* 80135*/ OPC_MoveParent, ++/* 80136*/ OPC_MoveChild, 30, ++/* 80138*/ OPC_CheckInteger, 1, ++/* 80140*/ OPC_CheckType, MVT::i32, ++/* 80142*/ OPC_MoveParent, ++/* 80143*/ OPC_MoveChild, 31, ++/* 80145*/ OPC_CheckInteger, 1, ++/* 80147*/ OPC_CheckType, MVT::i32, ++/* 80149*/ OPC_MoveParent, ++/* 80150*/ OPC_MoveParent, ++/* 80151*/ OPC_MoveChild1, ++/* 80152*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/* 80155*/ OPC_RecordChild0, // #0 = $a ++/* 80156*/ OPC_RecordChild1, // #1 = $b ++/* 80157*/ OPC_MoveParent, ++/* 80158*/ OPC_MoveParent, ++/* 80159*/ OPC_MoveChild1, ++/* 80160*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/* 80163*/ OPC_MoveChild0, ++/* 80164*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/* 80167*/ OPC_MoveChild0, ++/* 80168*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 80171*/ OPC_CheckChild0Integer, 1, ++/* 80173*/ OPC_CheckChild0Type, MVT::i32, ++/* 80175*/ OPC_CheckChild1Integer, 1, ++/* 80177*/ OPC_CheckChild1Type, MVT::i32, ++/* 80179*/ OPC_CheckChild2Integer, 1, ++/* 80181*/ OPC_CheckChild2Type, MVT::i32, ++/* 80183*/ OPC_CheckChild3Integer, 1, ++/* 80185*/ OPC_CheckChild3Type, MVT::i32, ++/* 80187*/ OPC_CheckChild4Integer, 1, ++/* 80189*/ OPC_CheckChild4Type, MVT::i32, ++/* 80191*/ OPC_MoveChild5, ++/* 80192*/ OPC_CheckInteger, 1, ++/* 80194*/ OPC_CheckType, MVT::i32, ++/* 80196*/ OPC_MoveParent, ++/* 80197*/ OPC_MoveChild6, ++/* 80198*/ OPC_CheckInteger, 1, ++/* 80200*/ OPC_CheckType, MVT::i32, ++/* 80202*/ OPC_MoveParent, ++/* 80203*/ OPC_MoveChild7, ++/* 80204*/ OPC_CheckInteger, 1, ++/* 80206*/ OPC_CheckType, MVT::i32, ++/* 80208*/ OPC_MoveParent, ++/* 80209*/ OPC_MoveChild, 8, ++/* 80211*/ OPC_CheckInteger, 1, ++/* 80213*/ OPC_CheckType, MVT::i32, ++/* 80215*/ OPC_MoveParent, ++/* 80216*/ OPC_MoveChild, 9, ++/* 80218*/ OPC_CheckInteger, 1, ++/* 80220*/ OPC_CheckType, MVT::i32, ++/* 80222*/ OPC_MoveParent, ++/* 80223*/ OPC_MoveChild, 10, ++/* 80225*/ OPC_CheckInteger, 1, ++/* 80227*/ OPC_CheckType, MVT::i32, ++/* 80229*/ OPC_MoveParent, ++/* 80230*/ OPC_MoveChild, 11, ++/* 80232*/ OPC_CheckInteger, 1, ++/* 80234*/ OPC_CheckType, MVT::i32, ++/* 80236*/ OPC_MoveParent, ++/* 80237*/ OPC_MoveChild, 12, ++/* 80239*/ OPC_CheckInteger, 1, ++/* 80241*/ OPC_CheckType, MVT::i32, ++/* 80243*/ OPC_MoveParent, ++/* 80244*/ OPC_MoveChild, 13, ++/* 80246*/ OPC_CheckInteger, 1, ++/* 80248*/ OPC_CheckType, MVT::i32, ++/* 80250*/ OPC_MoveParent, ++/* 80251*/ OPC_MoveChild, 14, ++/* 80253*/ OPC_CheckInteger, 1, ++/* 80255*/ OPC_CheckType, MVT::i32, ++/* 80257*/ OPC_MoveParent, ++/* 80258*/ OPC_MoveChild, 15, ++/* 80260*/ OPC_CheckInteger, 1, ++/* 80262*/ OPC_CheckType, MVT::i32, ++/* 80264*/ OPC_MoveParent, ++/* 80265*/ OPC_MoveChild, 16, ++/* 80267*/ OPC_CheckInteger, 1, ++/* 80269*/ OPC_CheckType, MVT::i32, ++/* 80271*/ OPC_MoveParent, ++/* 80272*/ OPC_MoveChild, 17, ++/* 80274*/ OPC_CheckInteger, 1, ++/* 80276*/ OPC_CheckType, MVT::i32, ++/* 80278*/ OPC_MoveParent, ++/* 80279*/ OPC_MoveChild, 18, ++/* 80281*/ OPC_CheckInteger, 1, ++/* 80283*/ OPC_CheckType, MVT::i32, ++/* 80285*/ OPC_MoveParent, ++/* 80286*/ OPC_MoveChild, 19, ++/* 80288*/ OPC_CheckInteger, 1, ++/* 80290*/ OPC_CheckType, MVT::i32, ++/* 80292*/ OPC_MoveParent, ++/* 80293*/ OPC_MoveChild, 20, ++/* 80295*/ OPC_CheckInteger, 1, ++/* 80297*/ OPC_CheckType, MVT::i32, ++/* 80299*/ OPC_MoveParent, ++/* 80300*/ OPC_MoveChild, 21, ++/* 80302*/ OPC_CheckInteger, 1, ++/* 80304*/ OPC_CheckType, MVT::i32, ++/* 80306*/ OPC_MoveParent, ++/* 80307*/ OPC_MoveChild, 22, ++/* 80309*/ OPC_CheckInteger, 1, ++/* 80311*/ OPC_CheckType, MVT::i32, ++/* 80313*/ OPC_MoveParent, ++/* 80314*/ OPC_MoveChild, 23, ++/* 80316*/ OPC_CheckInteger, 1, ++/* 80318*/ OPC_CheckType, MVT::i32, ++/* 80320*/ OPC_MoveParent, ++/* 80321*/ OPC_MoveChild, 24, ++/* 80323*/ OPC_CheckInteger, 1, ++/* 80325*/ OPC_CheckType, MVT::i32, ++/* 80327*/ OPC_MoveParent, ++/* 80328*/ OPC_MoveChild, 25, ++/* 80330*/ OPC_CheckInteger, 1, ++/* 80332*/ OPC_CheckType, MVT::i32, ++/* 80334*/ OPC_MoveParent, ++/* 80335*/ OPC_MoveChild, 26, ++/* 80337*/ OPC_CheckInteger, 1, ++/* 80339*/ OPC_CheckType, MVT::i32, ++/* 80341*/ OPC_MoveParent, ++/* 80342*/ OPC_MoveChild, 27, ++/* 80344*/ OPC_CheckInteger, 1, ++/* 80346*/ OPC_CheckType, MVT::i32, ++/* 80348*/ OPC_MoveParent, ++/* 80349*/ OPC_MoveChild, 28, ++/* 80351*/ OPC_CheckInteger, 1, ++/* 80353*/ OPC_CheckType, MVT::i32, ++/* 80355*/ OPC_MoveParent, ++/* 80356*/ OPC_MoveChild, 29, ++/* 80358*/ OPC_CheckInteger, 1, ++/* 80360*/ OPC_CheckType, MVT::i32, ++/* 80362*/ OPC_MoveParent, ++/* 80363*/ OPC_MoveChild, 30, ++/* 80365*/ OPC_CheckInteger, 1, ++/* 80367*/ OPC_CheckType, MVT::i32, ++/* 80369*/ OPC_MoveParent, ++/* 80370*/ OPC_MoveChild, 31, ++/* 80372*/ OPC_CheckInteger, 1, ++/* 80374*/ OPC_CheckType, MVT::i32, ++/* 80376*/ OPC_MoveParent, ++/* 80377*/ OPC_MoveParent, ++/* 80378*/ OPC_MoveChild1, ++/* 80379*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/* 80382*/ OPC_CheckChild0Same, 0, ++/* 80384*/ OPC_CheckChild1Same, 1, ++/* 80386*/ OPC_MoveParent, ++/* 80387*/ OPC_MoveParent, ++/* 80388*/ OPC_MoveChild1, ++/* 80389*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 80392*/ OPC_CheckChild0Integer, 7, ++/* 80394*/ OPC_CheckChild0Type, MVT::i32, ++/* 80396*/ OPC_CheckChild1Integer, 7, ++/* 80398*/ OPC_CheckChild1Type, MVT::i32, ++/* 80400*/ OPC_CheckChild2Integer, 7, ++/* 80402*/ OPC_CheckChild2Type, MVT::i32, ++/* 80404*/ OPC_CheckChild3Integer, 7, ++/* 80406*/ OPC_CheckChild3Type, MVT::i32, ++/* 80408*/ OPC_CheckChild4Integer, 7, ++/* 80410*/ OPC_CheckChild4Type, MVT::i32, ++/* 80412*/ OPC_MoveChild5, ++/* 80413*/ OPC_CheckInteger, 7, ++/* 80415*/ OPC_CheckType, MVT::i32, ++/* 80417*/ OPC_MoveParent, ++/* 80418*/ OPC_MoveChild6, ++/* 80419*/ OPC_CheckInteger, 7, ++/* 80421*/ OPC_CheckType, MVT::i32, ++/* 80423*/ OPC_MoveParent, ++/* 80424*/ OPC_MoveChild7, ++/* 80425*/ OPC_CheckInteger, 7, ++/* 80427*/ OPC_CheckType, MVT::i32, ++/* 80429*/ OPC_MoveParent, ++/* 80430*/ OPC_MoveChild, 8, ++/* 80432*/ OPC_CheckInteger, 7, ++/* 80434*/ OPC_CheckType, MVT::i32, ++/* 80436*/ OPC_MoveParent, ++/* 80437*/ OPC_MoveChild, 9, ++/* 80439*/ OPC_CheckInteger, 7, ++/* 80441*/ OPC_CheckType, MVT::i32, ++/* 80443*/ OPC_MoveParent, ++/* 80444*/ OPC_MoveChild, 10, ++/* 80446*/ OPC_CheckInteger, 7, ++/* 80448*/ OPC_CheckType, MVT::i32, ++/* 80450*/ OPC_MoveParent, ++/* 80451*/ OPC_MoveChild, 11, ++/* 80453*/ OPC_CheckInteger, 7, ++/* 80455*/ OPC_CheckType, MVT::i32, ++/* 80457*/ OPC_MoveParent, ++/* 80458*/ OPC_MoveChild, 12, ++/* 80460*/ OPC_CheckInteger, 7, ++/* 80462*/ OPC_CheckType, MVT::i32, ++/* 80464*/ OPC_MoveParent, ++/* 80465*/ OPC_MoveChild, 13, ++/* 80467*/ OPC_CheckInteger, 7, ++/* 80469*/ OPC_CheckType, MVT::i32, ++/* 80471*/ OPC_MoveParent, ++/* 80472*/ OPC_MoveChild, 14, ++/* 80474*/ OPC_CheckInteger, 7, ++/* 80476*/ OPC_CheckType, MVT::i32, ++/* 80478*/ OPC_MoveParent, ++/* 80479*/ OPC_MoveChild, 15, ++/* 80481*/ OPC_CheckInteger, 7, ++/* 80483*/ OPC_CheckType, MVT::i32, ++/* 80485*/ OPC_MoveParent, ++/* 80486*/ OPC_MoveChild, 16, ++/* 80488*/ OPC_CheckInteger, 7, ++/* 80490*/ OPC_CheckType, MVT::i32, ++/* 80492*/ OPC_MoveParent, ++/* 80493*/ OPC_MoveChild, 17, ++/* 80495*/ OPC_CheckInteger, 7, ++/* 80497*/ OPC_CheckType, MVT::i32, ++/* 80499*/ OPC_MoveParent, ++/* 80500*/ OPC_MoveChild, 18, ++/* 80502*/ OPC_CheckInteger, 7, ++/* 80504*/ OPC_CheckType, MVT::i32, ++/* 80506*/ OPC_MoveParent, ++/* 80507*/ OPC_MoveChild, 19, ++/* 80509*/ OPC_CheckInteger, 7, ++/* 80511*/ OPC_CheckType, MVT::i32, ++/* 80513*/ OPC_MoveParent, ++/* 80514*/ OPC_MoveChild, 20, ++/* 80516*/ OPC_CheckInteger, 7, ++/* 80518*/ OPC_CheckType, MVT::i32, ++/* 80520*/ OPC_MoveParent, ++/* 80521*/ OPC_MoveChild, 21, ++/* 80523*/ OPC_CheckInteger, 7, ++/* 80525*/ OPC_CheckType, MVT::i32, ++/* 80527*/ OPC_MoveParent, ++/* 80528*/ OPC_MoveChild, 22, ++/* 80530*/ OPC_CheckInteger, 7, ++/* 80532*/ OPC_CheckType, MVT::i32, ++/* 80534*/ OPC_MoveParent, ++/* 80535*/ OPC_MoveChild, 23, ++/* 80537*/ OPC_CheckInteger, 7, ++/* 80539*/ OPC_CheckType, MVT::i32, ++/* 80541*/ OPC_MoveParent, ++/* 80542*/ OPC_MoveChild, 24, ++/* 80544*/ OPC_CheckInteger, 7, ++/* 80546*/ OPC_CheckType, MVT::i32, ++/* 80548*/ OPC_MoveParent, ++/* 80549*/ OPC_MoveChild, 25, ++/* 80551*/ OPC_CheckInteger, 7, ++/* 80553*/ OPC_CheckType, MVT::i32, ++/* 80555*/ OPC_MoveParent, ++/* 80556*/ OPC_MoveChild, 26, ++/* 80558*/ OPC_CheckInteger, 7, ++/* 80560*/ OPC_CheckType, MVT::i32, ++/* 80562*/ OPC_MoveParent, ++/* 80563*/ OPC_MoveChild, 27, ++/* 80565*/ OPC_CheckInteger, 7, ++/* 80567*/ OPC_CheckType, MVT::i32, ++/* 80569*/ OPC_MoveParent, ++/* 80570*/ OPC_MoveChild, 28, ++/* 80572*/ OPC_CheckInteger, 7, ++/* 80574*/ OPC_CheckType, MVT::i32, ++/* 80576*/ OPC_MoveParent, ++/* 80577*/ OPC_MoveChild, 29, ++/* 80579*/ OPC_CheckInteger, 7, ++/* 80581*/ OPC_CheckType, MVT::i32, ++/* 80583*/ OPC_MoveParent, ++/* 80584*/ OPC_MoveChild, 30, ++/* 80586*/ OPC_CheckInteger, 7, ++/* 80588*/ OPC_CheckType, MVT::i32, ++/* 80590*/ OPC_MoveParent, ++/* 80591*/ OPC_MoveChild, 31, ++/* 80593*/ OPC_CheckInteger, 7, ++/* 80595*/ OPC_CheckType, MVT::i32, ++/* 80597*/ OPC_MoveParent, ++/* 80598*/ OPC_CheckType, MVT::v32i8, ++/* 80600*/ OPC_MoveParent, ++/* 80601*/ OPC_MoveParent, ++/* 80602*/ OPC_MoveParent, ++/* 80603*/ OPC_MoveChild1, ++/* 80604*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 80607*/ OPC_CheckChild0Integer, 1, ++/* 80609*/ OPC_CheckChild0Type, MVT::i32, ++/* 80611*/ OPC_CheckChild1Integer, 1, ++/* 80613*/ OPC_CheckChild1Type, MVT::i32, ++/* 80615*/ OPC_CheckChild2Integer, 1, ++/* 80617*/ OPC_CheckChild2Type, MVT::i32, ++/* 80619*/ OPC_CheckChild3Integer, 1, ++/* 80621*/ OPC_CheckChild3Type, MVT::i32, ++/* 80623*/ OPC_CheckChild4Integer, 1, ++/* 80625*/ OPC_CheckChild4Type, MVT::i32, ++/* 80627*/ OPC_MoveChild5, ++/* 80628*/ OPC_CheckInteger, 1, ++/* 80630*/ OPC_CheckType, MVT::i32, ++/* 80632*/ OPC_MoveParent, ++/* 80633*/ OPC_MoveChild6, ++/* 80634*/ OPC_CheckInteger, 1, ++/* 80636*/ OPC_CheckType, MVT::i32, ++/* 80638*/ OPC_MoveParent, ++/* 80639*/ OPC_MoveChild7, ++/* 80640*/ OPC_CheckInteger, 1, ++/* 80642*/ OPC_CheckType, MVT::i32, ++/* 80644*/ OPC_MoveParent, ++/* 80645*/ OPC_MoveChild, 8, ++/* 80647*/ OPC_CheckInteger, 1, ++/* 80649*/ OPC_CheckType, MVT::i32, ++/* 80651*/ OPC_MoveParent, ++/* 80652*/ OPC_MoveChild, 9, ++/* 80654*/ OPC_CheckInteger, 1, ++/* 80656*/ OPC_CheckType, MVT::i32, ++/* 80658*/ OPC_MoveParent, ++/* 80659*/ OPC_MoveChild, 10, ++/* 80661*/ OPC_CheckInteger, 1, ++/* 80663*/ OPC_CheckType, MVT::i32, ++/* 80665*/ OPC_MoveParent, ++/* 80666*/ OPC_MoveChild, 11, ++/* 80668*/ OPC_CheckInteger, 1, ++/* 80670*/ OPC_CheckType, MVT::i32, ++/* 80672*/ OPC_MoveParent, ++/* 80673*/ OPC_MoveChild, 12, ++/* 80675*/ OPC_CheckInteger, 1, ++/* 80677*/ OPC_CheckType, MVT::i32, ++/* 80679*/ OPC_MoveParent, ++/* 80680*/ OPC_MoveChild, 13, ++/* 80682*/ OPC_CheckInteger, 1, ++/* 80684*/ OPC_CheckType, MVT::i32, ++/* 80686*/ OPC_MoveParent, ++/* 80687*/ OPC_MoveChild, 14, ++/* 80689*/ OPC_CheckInteger, 1, ++/* 80691*/ OPC_CheckType, MVT::i32, ++/* 80693*/ OPC_MoveParent, ++/* 80694*/ OPC_MoveChild, 15, ++/* 80696*/ OPC_CheckInteger, 1, ++/* 80698*/ OPC_CheckType, MVT::i32, ++/* 80700*/ OPC_MoveParent, ++/* 80701*/ OPC_MoveChild, 16, ++/* 80703*/ OPC_CheckInteger, 1, ++/* 80705*/ OPC_CheckType, MVT::i32, ++/* 80707*/ OPC_MoveParent, ++/* 80708*/ OPC_MoveChild, 17, ++/* 80710*/ OPC_CheckInteger, 1, ++/* 80712*/ OPC_CheckType, MVT::i32, ++/* 80714*/ OPC_MoveParent, ++/* 80715*/ OPC_MoveChild, 18, ++/* 80717*/ OPC_CheckInteger, 1, ++/* 80719*/ OPC_CheckType, MVT::i32, ++/* 80721*/ OPC_MoveParent, ++/* 80722*/ OPC_MoveChild, 19, ++/* 80724*/ OPC_CheckInteger, 1, ++/* 80726*/ OPC_CheckType, MVT::i32, ++/* 80728*/ OPC_MoveParent, ++/* 80729*/ OPC_MoveChild, 20, ++/* 80731*/ OPC_CheckInteger, 1, ++/* 80733*/ OPC_CheckType, MVT::i32, ++/* 80735*/ OPC_MoveParent, ++/* 80736*/ OPC_MoveChild, 21, ++/* 80738*/ OPC_CheckInteger, 1, ++/* 80740*/ OPC_CheckType, MVT::i32, ++/* 80742*/ OPC_MoveParent, ++/* 80743*/ OPC_MoveChild, 22, ++/* 80745*/ OPC_CheckInteger, 1, ++/* 80747*/ OPC_CheckType, MVT::i32, ++/* 80749*/ OPC_MoveParent, ++/* 80750*/ OPC_MoveChild, 23, ++/* 80752*/ OPC_CheckInteger, 1, ++/* 80754*/ OPC_CheckType, MVT::i32, ++/* 80756*/ OPC_MoveParent, ++/* 80757*/ OPC_MoveChild, 24, ++/* 80759*/ OPC_CheckInteger, 1, ++/* 80761*/ OPC_CheckType, MVT::i32, ++/* 80763*/ OPC_MoveParent, ++/* 80764*/ OPC_MoveChild, 25, ++/* 80766*/ OPC_CheckInteger, 1, ++/* 80768*/ OPC_CheckType, MVT::i32, ++/* 80770*/ OPC_MoveParent, ++/* 80771*/ OPC_MoveChild, 26, ++/* 80773*/ OPC_CheckInteger, 1, ++/* 80775*/ OPC_CheckType, MVT::i32, ++/* 80777*/ OPC_MoveParent, ++/* 80778*/ OPC_MoveChild, 27, ++/* 80780*/ OPC_CheckInteger, 1, ++/* 80782*/ OPC_CheckType, MVT::i32, ++/* 80784*/ OPC_MoveParent, ++/* 80785*/ OPC_MoveChild, 28, ++/* 80787*/ OPC_CheckInteger, 1, ++/* 80789*/ OPC_CheckType, MVT::i32, ++/* 80791*/ OPC_MoveParent, ++/* 80792*/ OPC_MoveChild, 29, ++/* 80794*/ OPC_CheckInteger, 1, ++/* 80796*/ OPC_CheckType, MVT::i32, ++/* 80798*/ OPC_MoveParent, ++/* 80799*/ OPC_MoveChild, 30, ++/* 80801*/ OPC_CheckInteger, 1, ++/* 80803*/ OPC_CheckType, MVT::i32, ++/* 80805*/ OPC_MoveParent, ++/* 80806*/ OPC_MoveChild, 31, ++/* 80808*/ OPC_CheckInteger, 1, ++/* 80810*/ OPC_CheckType, MVT::i32, ++/* 80812*/ OPC_MoveParent, ++/* 80813*/ OPC_CheckType, MVT::v32i8, ++/* 80815*/ OPC_MoveParent, ++/* 80816*/ OPC_CheckType, MVT::v32i8, ++/* 80818*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 80820*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b)), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/* 80828*/ /*SwitchOpcode*/ 4|128,115|128,2/*47492*/, TARGET_VAL(ISD::ADD),// ->128325 ++/* 80833*/ OPC_Scope, 14|128,62/*7950*/, /*->88786*/ // 4 children in Scope ++/* 80836*/ OPC_MoveChild0, ++/* 80837*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 80840*/ OPC_CheckChild0Integer, 1, ++/* 80842*/ OPC_CheckChild0Type, MVT::i32, ++/* 80844*/ OPC_CheckChild1Integer, 1, ++/* 80846*/ OPC_CheckChild1Type, MVT::i32, ++/* 80848*/ OPC_CheckChild2Integer, 1, ++/* 80850*/ OPC_CheckChild2Type, MVT::i32, ++/* 80852*/ OPC_CheckChild3Integer, 1, ++/* 80854*/ OPC_CheckChild3Type, MVT::i32, ++/* 80856*/ OPC_CheckChild4Integer, 1, ++/* 80858*/ OPC_CheckChild4Type, MVT::i32, ++/* 80860*/ OPC_MoveChild5, ++/* 80861*/ OPC_CheckInteger, 1, ++/* 80863*/ OPC_CheckType, MVT::i32, ++/* 80865*/ OPC_MoveParent, ++/* 80866*/ OPC_MoveChild6, ++/* 80867*/ OPC_CheckInteger, 1, ++/* 80869*/ OPC_CheckType, MVT::i32, ++/* 80871*/ OPC_MoveParent, ++/* 80872*/ OPC_MoveChild7, ++/* 80873*/ OPC_CheckInteger, 1, ++/* 80875*/ OPC_CheckType, MVT::i32, ++/* 80877*/ OPC_MoveParent, ++/* 80878*/ OPC_MoveChild, 8, ++/* 80880*/ OPC_CheckInteger, 1, ++/* 80882*/ OPC_CheckType, MVT::i32, ++/* 80884*/ OPC_MoveParent, ++/* 80885*/ OPC_MoveChild, 9, ++/* 80887*/ OPC_CheckInteger, 1, ++/* 80889*/ OPC_CheckType, MVT::i32, ++/* 80891*/ OPC_MoveParent, ++/* 80892*/ OPC_MoveChild, 10, ++/* 80894*/ OPC_CheckInteger, 1, ++/* 80896*/ OPC_CheckType, MVT::i32, ++/* 80898*/ OPC_MoveParent, ++/* 80899*/ OPC_MoveChild, 11, ++/* 80901*/ OPC_CheckInteger, 1, ++/* 80903*/ OPC_CheckType, MVT::i32, ++/* 80905*/ OPC_MoveParent, ++/* 80906*/ OPC_MoveChild, 12, ++/* 80908*/ OPC_CheckInteger, 1, ++/* 80910*/ OPC_CheckType, MVT::i32, ++/* 80912*/ OPC_MoveParent, ++/* 80913*/ OPC_MoveChild, 13, ++/* 80915*/ OPC_CheckInteger, 1, ++/* 80917*/ OPC_CheckType, MVT::i32, ++/* 80919*/ OPC_MoveParent, ++/* 80920*/ OPC_MoveChild, 14, ++/* 80922*/ OPC_CheckInteger, 1, ++/* 80924*/ OPC_CheckType, MVT::i32, ++/* 80926*/ OPC_MoveParent, ++/* 80927*/ OPC_MoveChild, 15, ++/* 80929*/ OPC_CheckInteger, 1, ++/* 80931*/ OPC_CheckType, MVT::i32, ++/* 80933*/ OPC_MoveParent, ++/* 80934*/ OPC_MoveChild, 16, ++/* 80936*/ OPC_CheckInteger, 1, ++/* 80938*/ OPC_CheckType, MVT::i32, ++/* 80940*/ OPC_MoveParent, ++/* 80941*/ OPC_MoveChild, 17, ++/* 80943*/ OPC_CheckInteger, 1, ++/* 80945*/ OPC_CheckType, MVT::i32, ++/* 80947*/ OPC_MoveParent, ++/* 80948*/ OPC_MoveChild, 18, ++/* 80950*/ OPC_CheckInteger, 1, ++/* 80952*/ OPC_CheckType, MVT::i32, ++/* 80954*/ OPC_MoveParent, ++/* 80955*/ OPC_MoveChild, 19, ++/* 80957*/ OPC_CheckInteger, 1, ++/* 80959*/ OPC_CheckType, MVT::i32, ++/* 80961*/ OPC_MoveParent, ++/* 80962*/ OPC_MoveChild, 20, ++/* 80964*/ OPC_CheckInteger, 1, ++/* 80966*/ OPC_CheckType, MVT::i32, ++/* 80968*/ OPC_MoveParent, ++/* 80969*/ OPC_MoveChild, 21, ++/* 80971*/ OPC_CheckInteger, 1, ++/* 80973*/ OPC_CheckType, MVT::i32, ++/* 80975*/ OPC_MoveParent, ++/* 80976*/ OPC_MoveChild, 22, ++/* 80978*/ OPC_CheckInteger, 1, ++/* 80980*/ OPC_CheckType, MVT::i32, ++/* 80982*/ OPC_MoveParent, ++/* 80983*/ OPC_MoveChild, 23, ++/* 80985*/ OPC_CheckInteger, 1, ++/* 80987*/ OPC_CheckType, MVT::i32, ++/* 80989*/ OPC_MoveParent, ++/* 80990*/ OPC_MoveChild, 24, ++/* 80992*/ OPC_CheckInteger, 1, ++/* 80994*/ OPC_CheckType, MVT::i32, ++/* 80996*/ OPC_MoveParent, ++/* 80997*/ OPC_MoveChild, 25, ++/* 80999*/ OPC_CheckInteger, 1, ++/* 81001*/ OPC_CheckType, MVT::i32, ++/* 81003*/ OPC_MoveParent, ++/* 81004*/ OPC_MoveChild, 26, ++/* 81006*/ OPC_CheckInteger, 1, ++/* 81008*/ OPC_CheckType, MVT::i32, ++/* 81010*/ OPC_MoveParent, ++/* 81011*/ OPC_MoveChild, 27, ++/* 81013*/ OPC_CheckInteger, 1, ++/* 81015*/ OPC_CheckType, MVT::i32, ++/* 81017*/ OPC_MoveParent, ++/* 81018*/ OPC_MoveChild, 28, ++/* 81020*/ OPC_CheckInteger, 1, ++/* 81022*/ OPC_CheckType, MVT::i32, ++/* 81024*/ OPC_MoveParent, ++/* 81025*/ OPC_MoveChild, 29, ++/* 81027*/ OPC_CheckInteger, 1, ++/* 81029*/ OPC_CheckType, MVT::i32, ++/* 81031*/ OPC_MoveParent, ++/* 81032*/ OPC_MoveChild, 30, ++/* 81034*/ OPC_CheckInteger, 1, ++/* 81036*/ OPC_CheckType, MVT::i32, ++/* 81038*/ OPC_MoveParent, ++/* 81039*/ OPC_MoveChild, 31, ++/* 81041*/ OPC_CheckInteger, 1, ++/* 81043*/ OPC_CheckType, MVT::i32, ++/* 81045*/ OPC_MoveParent, ++/* 81046*/ OPC_MoveParent, ++/* 81047*/ OPC_RecordChild1, // #0 = $a ++/* 81048*/ OPC_MoveParent, ++/* 81049*/ OPC_RecordChild1, // #1 = $b ++/* 81050*/ OPC_MoveParent, ++/* 81051*/ OPC_MoveChild1, ++/* 81052*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/* 81055*/ OPC_MoveChild0, ++/* 81056*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/* 81059*/ OPC_Scope, 120|128,30/*3960*/, /*->85022*/ // 4 children in Scope ++/* 81062*/ OPC_MoveChild0, ++/* 81063*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/* 81066*/ OPC_Scope, 17|128,5/*657*/, /*->81726*/ // 6 children in Scope ++/* 81069*/ OPC_MoveChild0, ++/* 81070*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 81073*/ OPC_CheckChild0Integer, 1, ++/* 81075*/ OPC_CheckChild0Type, MVT::i32, ++/* 81077*/ OPC_CheckChild1Integer, 1, ++/* 81079*/ OPC_CheckChild1Type, MVT::i32, ++/* 81081*/ OPC_CheckChild2Integer, 1, ++/* 81083*/ OPC_CheckChild2Type, MVT::i32, ++/* 81085*/ OPC_CheckChild3Integer, 1, ++/* 81087*/ OPC_CheckChild3Type, MVT::i32, ++/* 81089*/ OPC_CheckChild4Integer, 1, ++/* 81091*/ OPC_CheckChild4Type, MVT::i32, ++/* 81093*/ OPC_MoveChild5, ++/* 81094*/ OPC_CheckInteger, 1, ++/* 81096*/ OPC_CheckType, MVT::i32, ++/* 81098*/ OPC_MoveParent, ++/* 81099*/ OPC_MoveChild6, ++/* 81100*/ OPC_CheckInteger, 1, ++/* 81102*/ OPC_CheckType, MVT::i32, ++/* 81104*/ OPC_MoveParent, ++/* 81105*/ OPC_MoveChild7, ++/* 81106*/ OPC_CheckInteger, 1, ++/* 81108*/ OPC_CheckType, MVT::i32, ++/* 81110*/ OPC_MoveParent, ++/* 81111*/ OPC_MoveChild, 8, ++/* 81113*/ OPC_CheckInteger, 1, ++/* 81115*/ OPC_CheckType, MVT::i32, ++/* 81117*/ OPC_MoveParent, ++/* 81118*/ OPC_MoveChild, 9, ++/* 81120*/ OPC_CheckInteger, 1, ++/* 81122*/ OPC_CheckType, MVT::i32, ++/* 81124*/ OPC_MoveParent, ++/* 81125*/ OPC_MoveChild, 10, ++/* 81127*/ OPC_CheckInteger, 1, ++/* 81129*/ OPC_CheckType, MVT::i32, ++/* 81131*/ OPC_MoveParent, ++/* 81132*/ OPC_MoveChild, 11, ++/* 81134*/ OPC_CheckInteger, 1, ++/* 81136*/ OPC_CheckType, MVT::i32, ++/* 81138*/ OPC_MoveParent, ++/* 81139*/ OPC_MoveChild, 12, ++/* 81141*/ OPC_CheckInteger, 1, ++/* 81143*/ OPC_CheckType, MVT::i32, ++/* 81145*/ OPC_MoveParent, ++/* 81146*/ OPC_MoveChild, 13, ++/* 81148*/ OPC_CheckInteger, 1, ++/* 81150*/ OPC_CheckType, MVT::i32, ++/* 81152*/ OPC_MoveParent, ++/* 81153*/ OPC_MoveChild, 14, ++/* 81155*/ OPC_CheckInteger, 1, ++/* 81157*/ OPC_CheckType, MVT::i32, ++/* 81159*/ OPC_MoveParent, ++/* 81160*/ OPC_MoveChild, 15, ++/* 81162*/ OPC_CheckInteger, 1, ++/* 81164*/ OPC_CheckType, MVT::i32, ++/* 81166*/ OPC_MoveParent, ++/* 81167*/ OPC_MoveChild, 16, ++/* 81169*/ OPC_CheckInteger, 1, ++/* 81171*/ OPC_CheckType, MVT::i32, ++/* 81173*/ OPC_MoveParent, ++/* 81174*/ OPC_MoveChild, 17, ++/* 81176*/ OPC_CheckInteger, 1, ++/* 81178*/ OPC_CheckType, MVT::i32, ++/* 81180*/ OPC_MoveParent, ++/* 81181*/ OPC_MoveChild, 18, ++/* 81183*/ OPC_CheckInteger, 1, ++/* 81185*/ OPC_CheckType, MVT::i32, ++/* 81187*/ OPC_MoveParent, ++/* 81188*/ OPC_MoveChild, 19, ++/* 81190*/ OPC_CheckInteger, 1, ++/* 81192*/ OPC_CheckType, MVT::i32, ++/* 81194*/ OPC_MoveParent, ++/* 81195*/ OPC_MoveChild, 20, ++/* 81197*/ OPC_CheckInteger, 1, ++/* 81199*/ OPC_CheckType, MVT::i32, ++/* 81201*/ OPC_MoveParent, ++/* 81202*/ OPC_MoveChild, 21, ++/* 81204*/ OPC_CheckInteger, 1, ++/* 81206*/ OPC_CheckType, MVT::i32, ++/* 81208*/ OPC_MoveParent, ++/* 81209*/ OPC_MoveChild, 22, ++/* 81211*/ OPC_CheckInteger, 1, ++/* 81213*/ OPC_CheckType, MVT::i32, ++/* 81215*/ OPC_MoveParent, ++/* 81216*/ OPC_MoveChild, 23, ++/* 81218*/ OPC_CheckInteger, 1, ++/* 81220*/ OPC_CheckType, MVT::i32, ++/* 81222*/ OPC_MoveParent, ++/* 81223*/ OPC_MoveChild, 24, ++/* 81225*/ OPC_CheckInteger, 1, ++/* 81227*/ OPC_CheckType, MVT::i32, ++/* 81229*/ OPC_MoveParent, ++/* 81230*/ OPC_MoveChild, 25, ++/* 81232*/ OPC_CheckInteger, 1, ++/* 81234*/ OPC_CheckType, MVT::i32, ++/* 81236*/ OPC_MoveParent, ++/* 81237*/ OPC_MoveChild, 26, ++/* 81239*/ OPC_CheckInteger, 1, ++/* 81241*/ OPC_CheckType, MVT::i32, ++/* 81243*/ OPC_MoveParent, ++/* 81244*/ OPC_MoveChild, 27, ++/* 81246*/ OPC_CheckInteger, 1, ++/* 81248*/ OPC_CheckType, MVT::i32, ++/* 81250*/ OPC_MoveParent, ++/* 81251*/ OPC_MoveChild, 28, ++/* 81253*/ OPC_CheckInteger, 1, ++/* 81255*/ OPC_CheckType, MVT::i32, ++/* 81257*/ OPC_MoveParent, ++/* 81258*/ OPC_MoveChild, 29, ++/* 81260*/ OPC_CheckInteger, 1, ++/* 81262*/ OPC_CheckType, MVT::i32, ++/* 81264*/ OPC_MoveParent, ++/* 81265*/ OPC_MoveChild, 30, ++/* 81267*/ OPC_CheckInteger, 1, ++/* 81269*/ OPC_CheckType, MVT::i32, ++/* 81271*/ OPC_MoveParent, ++/* 81272*/ OPC_MoveChild, 31, ++/* 81274*/ OPC_CheckInteger, 1, ++/* 81276*/ OPC_CheckType, MVT::i32, ++/* 81278*/ OPC_MoveParent, ++/* 81279*/ OPC_MoveParent, ++/* 81280*/ OPC_CheckChild1Same, 0, ++/* 81282*/ OPC_MoveParent, ++/* 81283*/ OPC_CheckChild1Same, 1, ++/* 81285*/ OPC_MoveParent, ++/* 81286*/ OPC_MoveChild1, ++/* 81287*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 81290*/ OPC_CheckChild0Integer, 7, ++/* 81292*/ OPC_CheckChild0Type, MVT::i32, ++/* 81294*/ OPC_CheckChild1Integer, 7, ++/* 81296*/ OPC_CheckChild1Type, MVT::i32, ++/* 81298*/ OPC_CheckChild2Integer, 7, ++/* 81300*/ OPC_CheckChild2Type, MVT::i32, ++/* 81302*/ OPC_CheckChild3Integer, 7, ++/* 81304*/ OPC_CheckChild3Type, MVT::i32, ++/* 81306*/ OPC_CheckChild4Integer, 7, ++/* 81308*/ OPC_CheckChild4Type, MVT::i32, ++/* 81310*/ OPC_MoveChild5, ++/* 81311*/ OPC_CheckInteger, 7, ++/* 81313*/ OPC_CheckType, MVT::i32, ++/* 81315*/ OPC_MoveParent, ++/* 81316*/ OPC_MoveChild6, ++/* 81317*/ OPC_CheckInteger, 7, ++/* 81319*/ OPC_CheckType, MVT::i32, ++/* 81321*/ OPC_MoveParent, ++/* 81322*/ OPC_MoveChild7, ++/* 81323*/ OPC_CheckInteger, 7, ++/* 81325*/ OPC_CheckType, MVT::i32, ++/* 81327*/ OPC_MoveParent, ++/* 81328*/ OPC_MoveChild, 8, ++/* 81330*/ OPC_CheckInteger, 7, ++/* 81332*/ OPC_CheckType, MVT::i32, ++/* 81334*/ OPC_MoveParent, ++/* 81335*/ OPC_MoveChild, 9, ++/* 81337*/ OPC_CheckInteger, 7, ++/* 81339*/ OPC_CheckType, MVT::i32, ++/* 81341*/ OPC_MoveParent, ++/* 81342*/ OPC_MoveChild, 10, ++/* 81344*/ OPC_CheckInteger, 7, ++/* 81346*/ OPC_CheckType, MVT::i32, ++/* 81348*/ OPC_MoveParent, ++/* 81349*/ OPC_MoveChild, 11, ++/* 81351*/ OPC_CheckInteger, 7, ++/* 81353*/ OPC_CheckType, MVT::i32, ++/* 81355*/ OPC_MoveParent, ++/* 81356*/ OPC_MoveChild, 12, ++/* 81358*/ OPC_CheckInteger, 7, ++/* 81360*/ OPC_CheckType, MVT::i32, ++/* 81362*/ OPC_MoveParent, ++/* 81363*/ OPC_MoveChild, 13, ++/* 81365*/ OPC_CheckInteger, 7, ++/* 81367*/ OPC_CheckType, MVT::i32, ++/* 81369*/ OPC_MoveParent, ++/* 81370*/ OPC_MoveChild, 14, ++/* 81372*/ OPC_CheckInteger, 7, ++/* 81374*/ OPC_CheckType, MVT::i32, ++/* 81376*/ OPC_MoveParent, ++/* 81377*/ OPC_MoveChild, 15, ++/* 81379*/ OPC_CheckInteger, 7, ++/* 81381*/ OPC_CheckType, MVT::i32, ++/* 81383*/ OPC_MoveParent, ++/* 81384*/ OPC_MoveChild, 16, ++/* 81386*/ OPC_CheckInteger, 7, ++/* 81388*/ OPC_CheckType, MVT::i32, ++/* 81390*/ OPC_MoveParent, ++/* 81391*/ OPC_MoveChild, 17, ++/* 81393*/ OPC_CheckInteger, 7, ++/* 81395*/ OPC_CheckType, MVT::i32, ++/* 81397*/ OPC_MoveParent, ++/* 81398*/ OPC_MoveChild, 18, ++/* 81400*/ OPC_CheckInteger, 7, ++/* 81402*/ OPC_CheckType, MVT::i32, ++/* 81404*/ OPC_MoveParent, ++/* 81405*/ OPC_MoveChild, 19, ++/* 81407*/ OPC_CheckInteger, 7, ++/* 81409*/ OPC_CheckType, MVT::i32, ++/* 81411*/ OPC_MoveParent, ++/* 81412*/ OPC_MoveChild, 20, ++/* 81414*/ OPC_CheckInteger, 7, ++/* 81416*/ OPC_CheckType, MVT::i32, ++/* 81418*/ OPC_MoveParent, ++/* 81419*/ OPC_MoveChild, 21, ++/* 81421*/ OPC_CheckInteger, 7, ++/* 81423*/ OPC_CheckType, MVT::i32, ++/* 81425*/ OPC_MoveParent, ++/* 81426*/ OPC_MoveChild, 22, ++/* 81428*/ OPC_CheckInteger, 7, ++/* 81430*/ OPC_CheckType, MVT::i32, ++/* 81432*/ OPC_MoveParent, ++/* 81433*/ OPC_MoveChild, 23, ++/* 81435*/ OPC_CheckInteger, 7, ++/* 81437*/ OPC_CheckType, MVT::i32, ++/* 81439*/ OPC_MoveParent, ++/* 81440*/ OPC_MoveChild, 24, ++/* 81442*/ OPC_CheckInteger, 7, ++/* 81444*/ OPC_CheckType, MVT::i32, ++/* 81446*/ OPC_MoveParent, ++/* 81447*/ OPC_MoveChild, 25, ++/* 81449*/ OPC_CheckInteger, 7, ++/* 81451*/ OPC_CheckType, MVT::i32, ++/* 81453*/ OPC_MoveParent, ++/* 81454*/ OPC_MoveChild, 26, ++/* 81456*/ OPC_CheckInteger, 7, ++/* 81458*/ OPC_CheckType, MVT::i32, ++/* 81460*/ OPC_MoveParent, ++/* 81461*/ OPC_MoveChild, 27, ++/* 81463*/ OPC_CheckInteger, 7, ++/* 81465*/ OPC_CheckType, MVT::i32, ++/* 81467*/ OPC_MoveParent, ++/* 81468*/ OPC_MoveChild, 28, ++/* 81470*/ OPC_CheckInteger, 7, ++/* 81472*/ OPC_CheckType, MVT::i32, ++/* 81474*/ OPC_MoveParent, ++/* 81475*/ OPC_MoveChild, 29, ++/* 81477*/ OPC_CheckInteger, 7, ++/* 81479*/ OPC_CheckType, MVT::i32, ++/* 81481*/ OPC_MoveParent, ++/* 81482*/ OPC_MoveChild, 30, ++/* 81484*/ OPC_CheckInteger, 7, ++/* 81486*/ OPC_CheckType, MVT::i32, ++/* 81488*/ OPC_MoveParent, ++/* 81489*/ OPC_MoveChild, 31, ++/* 81491*/ OPC_CheckInteger, 7, ++/* 81493*/ OPC_CheckType, MVT::i32, ++/* 81495*/ OPC_MoveParent, ++/* 81496*/ OPC_CheckType, MVT::v32i8, ++/* 81498*/ OPC_MoveParent, ++/* 81499*/ OPC_MoveParent, ++/* 81500*/ OPC_MoveParent, ++/* 81501*/ OPC_MoveChild1, ++/* 81502*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 81505*/ OPC_CheckChild0Integer, 1, ++/* 81507*/ OPC_CheckChild0Type, MVT::i32, ++/* 81509*/ OPC_CheckChild1Integer, 1, ++/* 81511*/ OPC_CheckChild1Type, MVT::i32, ++/* 81513*/ OPC_CheckChild2Integer, 1, ++/* 81515*/ OPC_CheckChild2Type, MVT::i32, ++/* 81517*/ OPC_CheckChild3Integer, 1, ++/* 81519*/ OPC_CheckChild3Type, MVT::i32, ++/* 81521*/ OPC_CheckChild4Integer, 1, ++/* 81523*/ OPC_CheckChild4Type, MVT::i32, ++/* 81525*/ OPC_MoveChild5, ++/* 81526*/ OPC_CheckInteger, 1, ++/* 81528*/ OPC_CheckType, MVT::i32, ++/* 81530*/ OPC_MoveParent, ++/* 81531*/ OPC_MoveChild6, ++/* 81532*/ OPC_CheckInteger, 1, ++/* 81534*/ OPC_CheckType, MVT::i32, ++/* 81536*/ OPC_MoveParent, ++/* 81537*/ OPC_MoveChild7, ++/* 81538*/ OPC_CheckInteger, 1, ++/* 81540*/ OPC_CheckType, MVT::i32, ++/* 81542*/ OPC_MoveParent, ++/* 81543*/ OPC_MoveChild, 8, ++/* 81545*/ OPC_CheckInteger, 1, ++/* 81547*/ OPC_CheckType, MVT::i32, ++/* 81549*/ OPC_MoveParent, ++/* 81550*/ OPC_MoveChild, 9, ++/* 81552*/ OPC_CheckInteger, 1, ++/* 81554*/ OPC_CheckType, MVT::i32, ++/* 81556*/ OPC_MoveParent, ++/* 81557*/ OPC_MoveChild, 10, ++/* 81559*/ OPC_CheckInteger, 1, ++/* 81561*/ OPC_CheckType, MVT::i32, ++/* 81563*/ OPC_MoveParent, ++/* 81564*/ OPC_MoveChild, 11, ++/* 81566*/ OPC_CheckInteger, 1, ++/* 81568*/ OPC_CheckType, MVT::i32, ++/* 81570*/ OPC_MoveParent, ++/* 81571*/ OPC_MoveChild, 12, ++/* 81573*/ OPC_CheckInteger, 1, ++/* 81575*/ OPC_CheckType, MVT::i32, ++/* 81577*/ OPC_MoveParent, ++/* 81578*/ OPC_MoveChild, 13, ++/* 81580*/ OPC_CheckInteger, 1, ++/* 81582*/ OPC_CheckType, MVT::i32, ++/* 81584*/ OPC_MoveParent, ++/* 81585*/ OPC_MoveChild, 14, ++/* 81587*/ OPC_CheckInteger, 1, ++/* 81589*/ OPC_CheckType, MVT::i32, ++/* 81591*/ OPC_MoveParent, ++/* 81592*/ OPC_MoveChild, 15, ++/* 81594*/ OPC_CheckInteger, 1, ++/* 81596*/ OPC_CheckType, MVT::i32, ++/* 81598*/ OPC_MoveParent, ++/* 81599*/ OPC_MoveChild, 16, ++/* 81601*/ OPC_CheckInteger, 1, ++/* 81603*/ OPC_CheckType, MVT::i32, ++/* 81605*/ OPC_MoveParent, ++/* 81606*/ OPC_MoveChild, 17, ++/* 81608*/ OPC_CheckInteger, 1, ++/* 81610*/ OPC_CheckType, MVT::i32, ++/* 81612*/ OPC_MoveParent, ++/* 81613*/ OPC_MoveChild, 18, ++/* 81615*/ OPC_CheckInteger, 1, ++/* 81617*/ OPC_CheckType, MVT::i32, ++/* 81619*/ OPC_MoveParent, ++/* 81620*/ OPC_MoveChild, 19, ++/* 81622*/ OPC_CheckInteger, 1, ++/* 81624*/ OPC_CheckType, MVT::i32, ++/* 81626*/ OPC_MoveParent, ++/* 81627*/ OPC_MoveChild, 20, ++/* 81629*/ OPC_CheckInteger, 1, ++/* 81631*/ OPC_CheckType, MVT::i32, ++/* 81633*/ OPC_MoveParent, ++/* 81634*/ OPC_MoveChild, 21, ++/* 81636*/ OPC_CheckInteger, 1, ++/* 81638*/ OPC_CheckType, MVT::i32, ++/* 81640*/ OPC_MoveParent, ++/* 81641*/ OPC_MoveChild, 22, ++/* 81643*/ OPC_CheckInteger, 1, ++/* 81645*/ OPC_CheckType, MVT::i32, ++/* 81647*/ OPC_MoveParent, ++/* 81648*/ OPC_MoveChild, 23, ++/* 81650*/ OPC_CheckInteger, 1, ++/* 81652*/ OPC_CheckType, MVT::i32, ++/* 81654*/ OPC_MoveParent, ++/* 81655*/ OPC_MoveChild, 24, ++/* 81657*/ OPC_CheckInteger, 1, ++/* 81659*/ OPC_CheckType, MVT::i32, ++/* 81661*/ OPC_MoveParent, ++/* 81662*/ OPC_MoveChild, 25, ++/* 81664*/ OPC_CheckInteger, 1, ++/* 81666*/ OPC_CheckType, MVT::i32, ++/* 81668*/ OPC_MoveParent, ++/* 81669*/ OPC_MoveChild, 26, ++/* 81671*/ OPC_CheckInteger, 1, ++/* 81673*/ OPC_CheckType, MVT::i32, ++/* 81675*/ OPC_MoveParent, ++/* 81676*/ OPC_MoveChild, 27, ++/* 81678*/ OPC_CheckInteger, 1, ++/* 81680*/ OPC_CheckType, MVT::i32, ++/* 81682*/ OPC_MoveParent, ++/* 81683*/ OPC_MoveChild, 28, ++/* 81685*/ OPC_CheckInteger, 1, ++/* 81687*/ OPC_CheckType, MVT::i32, ++/* 81689*/ OPC_MoveParent, ++/* 81690*/ OPC_MoveChild, 29, ++/* 81692*/ OPC_CheckInteger, 1, ++/* 81694*/ OPC_CheckType, MVT::i32, ++/* 81696*/ OPC_MoveParent, ++/* 81697*/ OPC_MoveChild, 30, ++/* 81699*/ OPC_CheckInteger, 1, ++/* 81701*/ OPC_CheckType, MVT::i32, ++/* 81703*/ OPC_MoveParent, ++/* 81704*/ OPC_MoveChild, 31, ++/* 81706*/ OPC_CheckInteger, 1, ++/* 81708*/ OPC_CheckType, MVT::i32, ++/* 81710*/ OPC_MoveParent, ++/* 81711*/ OPC_CheckType, MVT::v32i8, ++/* 81713*/ OPC_MoveParent, ++/* 81714*/ OPC_CheckType, MVT::v32i8, ++/* 81716*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 81718*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a), LASX256B:{ *:[v32i8] }:$b), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a), LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/* 81726*/ /*Scope*/ 17|128,5/*657*/, /*->82385*/ ++/* 81728*/ OPC_CheckChild0Same, 0, ++/* 81730*/ OPC_MoveChild1, ++/* 81731*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 81734*/ OPC_CheckChild0Integer, 1, ++/* 81736*/ OPC_CheckChild0Type, MVT::i32, ++/* 81738*/ OPC_CheckChild1Integer, 1, ++/* 81740*/ OPC_CheckChild1Type, MVT::i32, ++/* 81742*/ OPC_CheckChild2Integer, 1, ++/* 81744*/ OPC_CheckChild2Type, MVT::i32, ++/* 81746*/ OPC_CheckChild3Integer, 1, ++/* 81748*/ OPC_CheckChild3Type, MVT::i32, ++/* 81750*/ OPC_CheckChild4Integer, 1, ++/* 81752*/ OPC_CheckChild4Type, MVT::i32, ++/* 81754*/ OPC_MoveChild5, ++/* 81755*/ OPC_CheckInteger, 1, ++/* 81757*/ OPC_CheckType, MVT::i32, ++/* 81759*/ OPC_MoveParent, ++/* 81760*/ OPC_MoveChild6, ++/* 81761*/ OPC_CheckInteger, 1, ++/* 81763*/ OPC_CheckType, MVT::i32, ++/* 81765*/ OPC_MoveParent, ++/* 81766*/ OPC_MoveChild7, ++/* 81767*/ OPC_CheckInteger, 1, ++/* 81769*/ OPC_CheckType, MVT::i32, ++/* 81771*/ OPC_MoveParent, ++/* 81772*/ OPC_MoveChild, 8, ++/* 81774*/ OPC_CheckInteger, 1, ++/* 81776*/ OPC_CheckType, MVT::i32, ++/* 81778*/ OPC_MoveParent, ++/* 81779*/ OPC_MoveChild, 9, ++/* 81781*/ OPC_CheckInteger, 1, ++/* 81783*/ OPC_CheckType, MVT::i32, ++/* 81785*/ OPC_MoveParent, ++/* 81786*/ OPC_MoveChild, 10, ++/* 81788*/ OPC_CheckInteger, 1, ++/* 81790*/ OPC_CheckType, MVT::i32, ++/* 81792*/ OPC_MoveParent, ++/* 81793*/ OPC_MoveChild, 11, ++/* 81795*/ OPC_CheckInteger, 1, ++/* 81797*/ OPC_CheckType, MVT::i32, ++/* 81799*/ OPC_MoveParent, ++/* 81800*/ OPC_MoveChild, 12, ++/* 81802*/ OPC_CheckInteger, 1, ++/* 81804*/ OPC_CheckType, MVT::i32, ++/* 81806*/ OPC_MoveParent, ++/* 81807*/ OPC_MoveChild, 13, ++/* 81809*/ OPC_CheckInteger, 1, ++/* 81811*/ OPC_CheckType, MVT::i32, ++/* 81813*/ OPC_MoveParent, ++/* 81814*/ OPC_MoveChild, 14, ++/* 81816*/ OPC_CheckInteger, 1, ++/* 81818*/ OPC_CheckType, MVT::i32, ++/* 81820*/ OPC_MoveParent, ++/* 81821*/ OPC_MoveChild, 15, ++/* 81823*/ OPC_CheckInteger, 1, ++/* 81825*/ OPC_CheckType, MVT::i32, ++/* 81827*/ OPC_MoveParent, ++/* 81828*/ OPC_MoveChild, 16, ++/* 81830*/ OPC_CheckInteger, 1, ++/* 81832*/ OPC_CheckType, MVT::i32, ++/* 81834*/ OPC_MoveParent, ++/* 81835*/ OPC_MoveChild, 17, ++/* 81837*/ OPC_CheckInteger, 1, ++/* 81839*/ OPC_CheckType, MVT::i32, ++/* 81841*/ OPC_MoveParent, ++/* 81842*/ OPC_MoveChild, 18, ++/* 81844*/ OPC_CheckInteger, 1, ++/* 81846*/ OPC_CheckType, MVT::i32, ++/* 81848*/ OPC_MoveParent, ++/* 81849*/ OPC_MoveChild, 19, ++/* 81851*/ OPC_CheckInteger, 1, ++/* 81853*/ OPC_CheckType, MVT::i32, ++/* 81855*/ OPC_MoveParent, ++/* 81856*/ OPC_MoveChild, 20, ++/* 81858*/ OPC_CheckInteger, 1, ++/* 81860*/ OPC_CheckType, MVT::i32, ++/* 81862*/ OPC_MoveParent, ++/* 81863*/ OPC_MoveChild, 21, ++/* 81865*/ OPC_CheckInteger, 1, ++/* 81867*/ OPC_CheckType, MVT::i32, ++/* 81869*/ OPC_MoveParent, ++/* 81870*/ OPC_MoveChild, 22, ++/* 81872*/ OPC_CheckInteger, 1, ++/* 81874*/ OPC_CheckType, MVT::i32, ++/* 81876*/ OPC_MoveParent, ++/* 81877*/ OPC_MoveChild, 23, ++/* 81879*/ OPC_CheckInteger, 1, ++/* 81881*/ OPC_CheckType, MVT::i32, ++/* 81883*/ OPC_MoveParent, ++/* 81884*/ OPC_MoveChild, 24, ++/* 81886*/ OPC_CheckInteger, 1, ++/* 81888*/ OPC_CheckType, MVT::i32, ++/* 81890*/ OPC_MoveParent, ++/* 81891*/ OPC_MoveChild, 25, ++/* 81893*/ OPC_CheckInteger, 1, ++/* 81895*/ OPC_CheckType, MVT::i32, ++/* 81897*/ OPC_MoveParent, ++/* 81898*/ OPC_MoveChild, 26, ++/* 81900*/ OPC_CheckInteger, 1, ++/* 81902*/ OPC_CheckType, MVT::i32, ++/* 81904*/ OPC_MoveParent, ++/* 81905*/ OPC_MoveChild, 27, ++/* 81907*/ OPC_CheckInteger, 1, ++/* 81909*/ OPC_CheckType, MVT::i32, ++/* 81911*/ OPC_MoveParent, ++/* 81912*/ OPC_MoveChild, 28, ++/* 81914*/ OPC_CheckInteger, 1, ++/* 81916*/ OPC_CheckType, MVT::i32, ++/* 81918*/ OPC_MoveParent, ++/* 81919*/ OPC_MoveChild, 29, ++/* 81921*/ OPC_CheckInteger, 1, ++/* 81923*/ OPC_CheckType, MVT::i32, ++/* 81925*/ OPC_MoveParent, ++/* 81926*/ OPC_MoveChild, 30, ++/* 81928*/ OPC_CheckInteger, 1, ++/* 81930*/ OPC_CheckType, MVT::i32, ++/* 81932*/ OPC_MoveParent, ++/* 81933*/ OPC_MoveChild, 31, ++/* 81935*/ OPC_CheckInteger, 1, ++/* 81937*/ OPC_CheckType, MVT::i32, ++/* 81939*/ OPC_MoveParent, ++/* 81940*/ OPC_MoveParent, ++/* 81941*/ OPC_MoveParent, ++/* 81942*/ OPC_CheckChild1Same, 1, ++/* 81944*/ OPC_MoveParent, ++/* 81945*/ OPC_MoveChild1, ++/* 81946*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 81949*/ OPC_CheckChild0Integer, 7, ++/* 81951*/ OPC_CheckChild0Type, MVT::i32, ++/* 81953*/ OPC_CheckChild1Integer, 7, ++/* 81955*/ OPC_CheckChild1Type, MVT::i32, ++/* 81957*/ OPC_CheckChild2Integer, 7, ++/* 81959*/ OPC_CheckChild2Type, MVT::i32, ++/* 81961*/ OPC_CheckChild3Integer, 7, ++/* 81963*/ OPC_CheckChild3Type, MVT::i32, ++/* 81965*/ OPC_CheckChild4Integer, 7, ++/* 81967*/ OPC_CheckChild4Type, MVT::i32, ++/* 81969*/ OPC_MoveChild5, ++/* 81970*/ OPC_CheckInteger, 7, ++/* 81972*/ OPC_CheckType, MVT::i32, ++/* 81974*/ OPC_MoveParent, ++/* 81975*/ OPC_MoveChild6, ++/* 81976*/ OPC_CheckInteger, 7, ++/* 81978*/ OPC_CheckType, MVT::i32, ++/* 81980*/ OPC_MoveParent, ++/* 81981*/ OPC_MoveChild7, ++/* 81982*/ OPC_CheckInteger, 7, ++/* 81984*/ OPC_CheckType, MVT::i32, ++/* 81986*/ OPC_MoveParent, ++/* 81987*/ OPC_MoveChild, 8, ++/* 81989*/ OPC_CheckInteger, 7, ++/* 81991*/ OPC_CheckType, MVT::i32, ++/* 81993*/ OPC_MoveParent, ++/* 81994*/ OPC_MoveChild, 9, ++/* 81996*/ OPC_CheckInteger, 7, ++/* 81998*/ OPC_CheckType, MVT::i32, ++/* 82000*/ OPC_MoveParent, ++/* 82001*/ OPC_MoveChild, 10, ++/* 82003*/ OPC_CheckInteger, 7, ++/* 82005*/ OPC_CheckType, MVT::i32, ++/* 82007*/ OPC_MoveParent, ++/* 82008*/ OPC_MoveChild, 11, ++/* 82010*/ OPC_CheckInteger, 7, ++/* 82012*/ OPC_CheckType, MVT::i32, ++/* 82014*/ OPC_MoveParent, ++/* 82015*/ OPC_MoveChild, 12, ++/* 82017*/ OPC_CheckInteger, 7, ++/* 82019*/ OPC_CheckType, MVT::i32, ++/* 82021*/ OPC_MoveParent, ++/* 82022*/ OPC_MoveChild, 13, ++/* 82024*/ OPC_CheckInteger, 7, ++/* 82026*/ OPC_CheckType, MVT::i32, ++/* 82028*/ OPC_MoveParent, ++/* 82029*/ OPC_MoveChild, 14, ++/* 82031*/ OPC_CheckInteger, 7, ++/* 82033*/ OPC_CheckType, MVT::i32, ++/* 82035*/ OPC_MoveParent, ++/* 82036*/ OPC_MoveChild, 15, ++/* 82038*/ OPC_CheckInteger, 7, ++/* 82040*/ OPC_CheckType, MVT::i32, ++/* 82042*/ OPC_MoveParent, ++/* 82043*/ OPC_MoveChild, 16, ++/* 82045*/ OPC_CheckInteger, 7, ++/* 82047*/ OPC_CheckType, MVT::i32, ++/* 82049*/ OPC_MoveParent, ++/* 82050*/ OPC_MoveChild, 17, ++/* 82052*/ OPC_CheckInteger, 7, ++/* 82054*/ OPC_CheckType, MVT::i32, ++/* 82056*/ OPC_MoveParent, ++/* 82057*/ OPC_MoveChild, 18, ++/* 82059*/ OPC_CheckInteger, 7, ++/* 82061*/ OPC_CheckType, MVT::i32, ++/* 82063*/ OPC_MoveParent, ++/* 82064*/ OPC_MoveChild, 19, ++/* 82066*/ OPC_CheckInteger, 7, ++/* 82068*/ OPC_CheckType, MVT::i32, ++/* 82070*/ OPC_MoveParent, ++/* 82071*/ OPC_MoveChild, 20, ++/* 82073*/ OPC_CheckInteger, 7, ++/* 82075*/ OPC_CheckType, MVT::i32, ++/* 82077*/ OPC_MoveParent, ++/* 82078*/ OPC_MoveChild, 21, ++/* 82080*/ OPC_CheckInteger, 7, ++/* 82082*/ OPC_CheckType, MVT::i32, ++/* 82084*/ OPC_MoveParent, ++/* 82085*/ OPC_MoveChild, 22, ++/* 82087*/ OPC_CheckInteger, 7, ++/* 82089*/ OPC_CheckType, MVT::i32, ++/* 82091*/ OPC_MoveParent, ++/* 82092*/ OPC_MoveChild, 23, ++/* 82094*/ OPC_CheckInteger, 7, ++/* 82096*/ OPC_CheckType, MVT::i32, ++/* 82098*/ OPC_MoveParent, ++/* 82099*/ OPC_MoveChild, 24, ++/* 82101*/ OPC_CheckInteger, 7, ++/* 82103*/ OPC_CheckType, MVT::i32, ++/* 82105*/ OPC_MoveParent, ++/* 82106*/ OPC_MoveChild, 25, ++/* 82108*/ OPC_CheckInteger, 7, ++/* 82110*/ OPC_CheckType, MVT::i32, ++/* 82112*/ OPC_MoveParent, ++/* 82113*/ OPC_MoveChild, 26, ++/* 82115*/ OPC_CheckInteger, 7, ++/* 82117*/ OPC_CheckType, MVT::i32, ++/* 82119*/ OPC_MoveParent, ++/* 82120*/ OPC_MoveChild, 27, ++/* 82122*/ OPC_CheckInteger, 7, ++/* 82124*/ OPC_CheckType, MVT::i32, ++/* 82126*/ OPC_MoveParent, ++/* 82127*/ OPC_MoveChild, 28, ++/* 82129*/ OPC_CheckInteger, 7, ++/* 82131*/ OPC_CheckType, MVT::i32, ++/* 82133*/ OPC_MoveParent, ++/* 82134*/ OPC_MoveChild, 29, ++/* 82136*/ OPC_CheckInteger, 7, ++/* 82138*/ OPC_CheckType, MVT::i32, ++/* 82140*/ OPC_MoveParent, ++/* 82141*/ OPC_MoveChild, 30, ++/* 82143*/ OPC_CheckInteger, 7, ++/* 82145*/ OPC_CheckType, MVT::i32, ++/* 82147*/ OPC_MoveParent, ++/* 82148*/ OPC_MoveChild, 31, ++/* 82150*/ OPC_CheckInteger, 7, ++/* 82152*/ OPC_CheckType, MVT::i32, ++/* 82154*/ OPC_MoveParent, ++/* 82155*/ OPC_CheckType, MVT::v32i8, ++/* 82157*/ OPC_MoveParent, ++/* 82158*/ OPC_MoveParent, ++/* 82159*/ OPC_MoveParent, ++/* 82160*/ OPC_MoveChild1, ++/* 82161*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 82164*/ OPC_CheckChild0Integer, 1, ++/* 82166*/ OPC_CheckChild0Type, MVT::i32, ++/* 82168*/ OPC_CheckChild1Integer, 1, ++/* 82170*/ OPC_CheckChild1Type, MVT::i32, ++/* 82172*/ OPC_CheckChild2Integer, 1, ++/* 82174*/ OPC_CheckChild2Type, MVT::i32, ++/* 82176*/ OPC_CheckChild3Integer, 1, ++/* 82178*/ OPC_CheckChild3Type, MVT::i32, ++/* 82180*/ OPC_CheckChild4Integer, 1, ++/* 82182*/ OPC_CheckChild4Type, MVT::i32, ++/* 82184*/ OPC_MoveChild5, ++/* 82185*/ OPC_CheckInteger, 1, ++/* 82187*/ OPC_CheckType, MVT::i32, ++/* 82189*/ OPC_MoveParent, ++/* 82190*/ OPC_MoveChild6, ++/* 82191*/ OPC_CheckInteger, 1, ++/* 82193*/ OPC_CheckType, MVT::i32, ++/* 82195*/ OPC_MoveParent, ++/* 82196*/ OPC_MoveChild7, ++/* 82197*/ OPC_CheckInteger, 1, ++/* 82199*/ OPC_CheckType, MVT::i32, ++/* 82201*/ OPC_MoveParent, ++/* 82202*/ OPC_MoveChild, 8, ++/* 82204*/ OPC_CheckInteger, 1, ++/* 82206*/ OPC_CheckType, MVT::i32, ++/* 82208*/ OPC_MoveParent, ++/* 82209*/ OPC_MoveChild, 9, ++/* 82211*/ OPC_CheckInteger, 1, ++/* 82213*/ OPC_CheckType, MVT::i32, ++/* 82215*/ OPC_MoveParent, ++/* 82216*/ OPC_MoveChild, 10, ++/* 82218*/ OPC_CheckInteger, 1, ++/* 82220*/ OPC_CheckType, MVT::i32, ++/* 82222*/ OPC_MoveParent, ++/* 82223*/ OPC_MoveChild, 11, ++/* 82225*/ OPC_CheckInteger, 1, ++/* 82227*/ OPC_CheckType, MVT::i32, ++/* 82229*/ OPC_MoveParent, ++/* 82230*/ OPC_MoveChild, 12, ++/* 82232*/ OPC_CheckInteger, 1, ++/* 82234*/ OPC_CheckType, MVT::i32, ++/* 82236*/ OPC_MoveParent, ++/* 82237*/ OPC_MoveChild, 13, ++/* 82239*/ OPC_CheckInteger, 1, ++/* 82241*/ OPC_CheckType, MVT::i32, ++/* 82243*/ OPC_MoveParent, ++/* 82244*/ OPC_MoveChild, 14, ++/* 82246*/ OPC_CheckInteger, 1, ++/* 82248*/ OPC_CheckType, MVT::i32, ++/* 82250*/ OPC_MoveParent, ++/* 82251*/ OPC_MoveChild, 15, ++/* 82253*/ OPC_CheckInteger, 1, ++/* 82255*/ OPC_CheckType, MVT::i32, ++/* 82257*/ OPC_MoveParent, ++/* 82258*/ OPC_MoveChild, 16, ++/* 82260*/ OPC_CheckInteger, 1, ++/* 82262*/ OPC_CheckType, MVT::i32, ++/* 82264*/ OPC_MoveParent, ++/* 82265*/ OPC_MoveChild, 17, ++/* 82267*/ OPC_CheckInteger, 1, ++/* 82269*/ OPC_CheckType, MVT::i32, ++/* 82271*/ OPC_MoveParent, ++/* 82272*/ OPC_MoveChild, 18, ++/* 82274*/ OPC_CheckInteger, 1, ++/* 82276*/ OPC_CheckType, MVT::i32, ++/* 82278*/ OPC_MoveParent, ++/* 82279*/ OPC_MoveChild, 19, ++/* 82281*/ OPC_CheckInteger, 1, ++/* 82283*/ OPC_CheckType, MVT::i32, ++/* 82285*/ OPC_MoveParent, ++/* 82286*/ OPC_MoveChild, 20, ++/* 82288*/ OPC_CheckInteger, 1, ++/* 82290*/ OPC_CheckType, MVT::i32, ++/* 82292*/ OPC_MoveParent, ++/* 82293*/ OPC_MoveChild, 21, ++/* 82295*/ OPC_CheckInteger, 1, ++/* 82297*/ OPC_CheckType, MVT::i32, ++/* 82299*/ OPC_MoveParent, ++/* 82300*/ OPC_MoveChild, 22, ++/* 82302*/ OPC_CheckInteger, 1, ++/* 82304*/ OPC_CheckType, MVT::i32, ++/* 82306*/ OPC_MoveParent, ++/* 82307*/ OPC_MoveChild, 23, ++/* 82309*/ OPC_CheckInteger, 1, ++/* 82311*/ OPC_CheckType, MVT::i32, ++/* 82313*/ OPC_MoveParent, ++/* 82314*/ OPC_MoveChild, 24, ++/* 82316*/ OPC_CheckInteger, 1, ++/* 82318*/ OPC_CheckType, MVT::i32, ++/* 82320*/ OPC_MoveParent, ++/* 82321*/ OPC_MoveChild, 25, ++/* 82323*/ OPC_CheckInteger, 1, ++/* 82325*/ OPC_CheckType, MVT::i32, ++/* 82327*/ OPC_MoveParent, ++/* 82328*/ OPC_MoveChild, 26, ++/* 82330*/ OPC_CheckInteger, 1, ++/* 82332*/ OPC_CheckType, MVT::i32, ++/* 82334*/ OPC_MoveParent, ++/* 82335*/ OPC_MoveChild, 27, ++/* 82337*/ OPC_CheckInteger, 1, ++/* 82339*/ OPC_CheckType, MVT::i32, ++/* 82341*/ OPC_MoveParent, ++/* 82342*/ OPC_MoveChild, 28, ++/* 82344*/ OPC_CheckInteger, 1, ++/* 82346*/ OPC_CheckType, MVT::i32, ++/* 82348*/ OPC_MoveParent, ++/* 82349*/ OPC_MoveChild, 29, ++/* 82351*/ OPC_CheckInteger, 1, ++/* 82353*/ OPC_CheckType, MVT::i32, ++/* 82355*/ OPC_MoveParent, ++/* 82356*/ OPC_MoveChild, 30, ++/* 82358*/ OPC_CheckInteger, 1, ++/* 82360*/ OPC_CheckType, MVT::i32, ++/* 82362*/ OPC_MoveParent, ++/* 82363*/ OPC_MoveChild, 31, ++/* 82365*/ OPC_CheckInteger, 1, ++/* 82367*/ OPC_CheckType, MVT::i32, ++/* 82369*/ OPC_MoveParent, ++/* 82370*/ OPC_CheckType, MVT::v32i8, ++/* 82372*/ OPC_MoveParent, ++/* 82373*/ OPC_CheckType, MVT::v32i8, ++/* 82375*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 82377*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a), LASX256B:{ *:[v32i8] }:$b), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/* 82385*/ /*Scope*/ 17|128,5/*657*/, /*->83044*/ ++/* 82387*/ OPC_MoveChild0, ++/* 82388*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 82391*/ OPC_CheckChild0Integer, 1, ++/* 82393*/ OPC_CheckChild0Type, MVT::i32, ++/* 82395*/ OPC_CheckChild1Integer, 1, ++/* 82397*/ OPC_CheckChild1Type, MVT::i32, ++/* 82399*/ OPC_CheckChild2Integer, 1, ++/* 82401*/ OPC_CheckChild2Type, MVT::i32, ++/* 82403*/ OPC_CheckChild3Integer, 1, ++/* 82405*/ OPC_CheckChild3Type, MVT::i32, ++/* 82407*/ OPC_CheckChild4Integer, 1, ++/* 82409*/ OPC_CheckChild4Type, MVT::i32, ++/* 82411*/ OPC_MoveChild5, ++/* 82412*/ OPC_CheckInteger, 1, ++/* 82414*/ OPC_CheckType, MVT::i32, ++/* 82416*/ OPC_MoveParent, ++/* 82417*/ OPC_MoveChild6, ++/* 82418*/ OPC_CheckInteger, 1, ++/* 82420*/ OPC_CheckType, MVT::i32, ++/* 82422*/ OPC_MoveParent, ++/* 82423*/ OPC_MoveChild7, ++/* 82424*/ OPC_CheckInteger, 1, ++/* 82426*/ OPC_CheckType, MVT::i32, ++/* 82428*/ OPC_MoveParent, ++/* 82429*/ OPC_MoveChild, 8, ++/* 82431*/ OPC_CheckInteger, 1, ++/* 82433*/ OPC_CheckType, MVT::i32, ++/* 82435*/ OPC_MoveParent, ++/* 82436*/ OPC_MoveChild, 9, ++/* 82438*/ OPC_CheckInteger, 1, ++/* 82440*/ OPC_CheckType, MVT::i32, ++/* 82442*/ OPC_MoveParent, ++/* 82443*/ OPC_MoveChild, 10, ++/* 82445*/ OPC_CheckInteger, 1, ++/* 82447*/ OPC_CheckType, MVT::i32, ++/* 82449*/ OPC_MoveParent, ++/* 82450*/ OPC_MoveChild, 11, ++/* 82452*/ OPC_CheckInteger, 1, ++/* 82454*/ OPC_CheckType, MVT::i32, ++/* 82456*/ OPC_MoveParent, ++/* 82457*/ OPC_MoveChild, 12, ++/* 82459*/ OPC_CheckInteger, 1, ++/* 82461*/ OPC_CheckType, MVT::i32, ++/* 82463*/ OPC_MoveParent, ++/* 82464*/ OPC_MoveChild, 13, ++/* 82466*/ OPC_CheckInteger, 1, ++/* 82468*/ OPC_CheckType, MVT::i32, ++/* 82470*/ OPC_MoveParent, ++/* 82471*/ OPC_MoveChild, 14, ++/* 82473*/ OPC_CheckInteger, 1, ++/* 82475*/ OPC_CheckType, MVT::i32, ++/* 82477*/ OPC_MoveParent, ++/* 82478*/ OPC_MoveChild, 15, ++/* 82480*/ OPC_CheckInteger, 1, ++/* 82482*/ OPC_CheckType, MVT::i32, ++/* 82484*/ OPC_MoveParent, ++/* 82485*/ OPC_MoveChild, 16, ++/* 82487*/ OPC_CheckInteger, 1, ++/* 82489*/ OPC_CheckType, MVT::i32, ++/* 82491*/ OPC_MoveParent, ++/* 82492*/ OPC_MoveChild, 17, ++/* 82494*/ OPC_CheckInteger, 1, ++/* 82496*/ OPC_CheckType, MVT::i32, ++/* 82498*/ OPC_MoveParent, ++/* 82499*/ OPC_MoveChild, 18, ++/* 82501*/ OPC_CheckInteger, 1, ++/* 82503*/ OPC_CheckType, MVT::i32, ++/* 82505*/ OPC_MoveParent, ++/* 82506*/ OPC_MoveChild, 19, ++/* 82508*/ OPC_CheckInteger, 1, ++/* 82510*/ OPC_CheckType, MVT::i32, ++/* 82512*/ OPC_MoveParent, ++/* 82513*/ OPC_MoveChild, 20, ++/* 82515*/ OPC_CheckInteger, 1, ++/* 82517*/ OPC_CheckType, MVT::i32, ++/* 82519*/ OPC_MoveParent, ++/* 82520*/ OPC_MoveChild, 21, ++/* 82522*/ OPC_CheckInteger, 1, ++/* 82524*/ OPC_CheckType, MVT::i32, ++/* 82526*/ OPC_MoveParent, ++/* 82527*/ OPC_MoveChild, 22, ++/* 82529*/ OPC_CheckInteger, 1, ++/* 82531*/ OPC_CheckType, MVT::i32, ++/* 82533*/ OPC_MoveParent, ++/* 82534*/ OPC_MoveChild, 23, ++/* 82536*/ OPC_CheckInteger, 1, ++/* 82538*/ OPC_CheckType, MVT::i32, ++/* 82540*/ OPC_MoveParent, ++/* 82541*/ OPC_MoveChild, 24, ++/* 82543*/ OPC_CheckInteger, 1, ++/* 82545*/ OPC_CheckType, MVT::i32, ++/* 82547*/ OPC_MoveParent, ++/* 82548*/ OPC_MoveChild, 25, ++/* 82550*/ OPC_CheckInteger, 1, ++/* 82552*/ OPC_CheckType, MVT::i32, ++/* 82554*/ OPC_MoveParent, ++/* 82555*/ OPC_MoveChild, 26, ++/* 82557*/ OPC_CheckInteger, 1, ++/* 82559*/ OPC_CheckType, MVT::i32, ++/* 82561*/ OPC_MoveParent, ++/* 82562*/ OPC_MoveChild, 27, ++/* 82564*/ OPC_CheckInteger, 1, ++/* 82566*/ OPC_CheckType, MVT::i32, ++/* 82568*/ OPC_MoveParent, ++/* 82569*/ OPC_MoveChild, 28, ++/* 82571*/ OPC_CheckInteger, 1, ++/* 82573*/ OPC_CheckType, MVT::i32, ++/* 82575*/ OPC_MoveParent, ++/* 82576*/ OPC_MoveChild, 29, ++/* 82578*/ OPC_CheckInteger, 1, ++/* 82580*/ OPC_CheckType, MVT::i32, ++/* 82582*/ OPC_MoveParent, ++/* 82583*/ OPC_MoveChild, 30, ++/* 82585*/ OPC_CheckInteger, 1, ++/* 82587*/ OPC_CheckType, MVT::i32, ++/* 82589*/ OPC_MoveParent, ++/* 82590*/ OPC_MoveChild, 31, ++/* 82592*/ OPC_CheckInteger, 1, ++/* 82594*/ OPC_CheckType, MVT::i32, ++/* 82596*/ OPC_MoveParent, ++/* 82597*/ OPC_MoveParent, ++/* 82598*/ OPC_CheckChild1Same, 1, ++/* 82600*/ OPC_MoveParent, ++/* 82601*/ OPC_CheckChild1Same, 0, ++/* 82603*/ OPC_MoveParent, ++/* 82604*/ OPC_MoveChild1, ++/* 82605*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 82608*/ OPC_CheckChild0Integer, 7, ++/* 82610*/ OPC_CheckChild0Type, MVT::i32, ++/* 82612*/ OPC_CheckChild1Integer, 7, ++/* 82614*/ OPC_CheckChild1Type, MVT::i32, ++/* 82616*/ OPC_CheckChild2Integer, 7, ++/* 82618*/ OPC_CheckChild2Type, MVT::i32, ++/* 82620*/ OPC_CheckChild3Integer, 7, ++/* 82622*/ OPC_CheckChild3Type, MVT::i32, ++/* 82624*/ OPC_CheckChild4Integer, 7, ++/* 82626*/ OPC_CheckChild4Type, MVT::i32, ++/* 82628*/ OPC_MoveChild5, ++/* 82629*/ OPC_CheckInteger, 7, ++/* 82631*/ OPC_CheckType, MVT::i32, ++/* 82633*/ OPC_MoveParent, ++/* 82634*/ OPC_MoveChild6, ++/* 82635*/ OPC_CheckInteger, 7, ++/* 82637*/ OPC_CheckType, MVT::i32, ++/* 82639*/ OPC_MoveParent, ++/* 82640*/ OPC_MoveChild7, ++/* 82641*/ OPC_CheckInteger, 7, ++/* 82643*/ OPC_CheckType, MVT::i32, ++/* 82645*/ OPC_MoveParent, ++/* 82646*/ OPC_MoveChild, 8, ++/* 82648*/ OPC_CheckInteger, 7, ++/* 82650*/ OPC_CheckType, MVT::i32, ++/* 82652*/ OPC_MoveParent, ++/* 82653*/ OPC_MoveChild, 9, ++/* 82655*/ OPC_CheckInteger, 7, ++/* 82657*/ OPC_CheckType, MVT::i32, ++/* 82659*/ OPC_MoveParent, ++/* 82660*/ OPC_MoveChild, 10, ++/* 82662*/ OPC_CheckInteger, 7, ++/* 82664*/ OPC_CheckType, MVT::i32, ++/* 82666*/ OPC_MoveParent, ++/* 82667*/ OPC_MoveChild, 11, ++/* 82669*/ OPC_CheckInteger, 7, ++/* 82671*/ OPC_CheckType, MVT::i32, ++/* 82673*/ OPC_MoveParent, ++/* 82674*/ OPC_MoveChild, 12, ++/* 82676*/ OPC_CheckInteger, 7, ++/* 82678*/ OPC_CheckType, MVT::i32, ++/* 82680*/ OPC_MoveParent, ++/* 82681*/ OPC_MoveChild, 13, ++/* 82683*/ OPC_CheckInteger, 7, ++/* 82685*/ OPC_CheckType, MVT::i32, ++/* 82687*/ OPC_MoveParent, ++/* 82688*/ OPC_MoveChild, 14, ++/* 82690*/ OPC_CheckInteger, 7, ++/* 82692*/ OPC_CheckType, MVT::i32, ++/* 82694*/ OPC_MoveParent, ++/* 82695*/ OPC_MoveChild, 15, ++/* 82697*/ OPC_CheckInteger, 7, ++/* 82699*/ OPC_CheckType, MVT::i32, ++/* 82701*/ OPC_MoveParent, ++/* 82702*/ OPC_MoveChild, 16, ++/* 82704*/ OPC_CheckInteger, 7, ++/* 82706*/ OPC_CheckType, MVT::i32, ++/* 82708*/ OPC_MoveParent, ++/* 82709*/ OPC_MoveChild, 17, ++/* 82711*/ OPC_CheckInteger, 7, ++/* 82713*/ OPC_CheckType, MVT::i32, ++/* 82715*/ OPC_MoveParent, ++/* 82716*/ OPC_MoveChild, 18, ++/* 82718*/ OPC_CheckInteger, 7, ++/* 82720*/ OPC_CheckType, MVT::i32, ++/* 82722*/ OPC_MoveParent, ++/* 82723*/ OPC_MoveChild, 19, ++/* 82725*/ OPC_CheckInteger, 7, ++/* 82727*/ OPC_CheckType, MVT::i32, ++/* 82729*/ OPC_MoveParent, ++/* 82730*/ OPC_MoveChild, 20, ++/* 82732*/ OPC_CheckInteger, 7, ++/* 82734*/ OPC_CheckType, MVT::i32, ++/* 82736*/ OPC_MoveParent, ++/* 82737*/ OPC_MoveChild, 21, ++/* 82739*/ OPC_CheckInteger, 7, ++/* 82741*/ OPC_CheckType, MVT::i32, ++/* 82743*/ OPC_MoveParent, ++/* 82744*/ OPC_MoveChild, 22, ++/* 82746*/ OPC_CheckInteger, 7, ++/* 82748*/ OPC_CheckType, MVT::i32, ++/* 82750*/ OPC_MoveParent, ++/* 82751*/ OPC_MoveChild, 23, ++/* 82753*/ OPC_CheckInteger, 7, ++/* 82755*/ OPC_CheckType, MVT::i32, ++/* 82757*/ OPC_MoveParent, ++/* 82758*/ OPC_MoveChild, 24, ++/* 82760*/ OPC_CheckInteger, 7, ++/* 82762*/ OPC_CheckType, MVT::i32, ++/* 82764*/ OPC_MoveParent, ++/* 82765*/ OPC_MoveChild, 25, ++/* 82767*/ OPC_CheckInteger, 7, ++/* 82769*/ OPC_CheckType, MVT::i32, ++/* 82771*/ OPC_MoveParent, ++/* 82772*/ OPC_MoveChild, 26, ++/* 82774*/ OPC_CheckInteger, 7, ++/* 82776*/ OPC_CheckType, MVT::i32, ++/* 82778*/ OPC_MoveParent, ++/* 82779*/ OPC_MoveChild, 27, ++/* 82781*/ OPC_CheckInteger, 7, ++/* 82783*/ OPC_CheckType, MVT::i32, ++/* 82785*/ OPC_MoveParent, ++/* 82786*/ OPC_MoveChild, 28, ++/* 82788*/ OPC_CheckInteger, 7, ++/* 82790*/ OPC_CheckType, MVT::i32, ++/* 82792*/ OPC_MoveParent, ++/* 82793*/ OPC_MoveChild, 29, ++/* 82795*/ OPC_CheckInteger, 7, ++/* 82797*/ OPC_CheckType, MVT::i32, ++/* 82799*/ OPC_MoveParent, ++/* 82800*/ OPC_MoveChild, 30, ++/* 82802*/ OPC_CheckInteger, 7, ++/* 82804*/ OPC_CheckType, MVT::i32, ++/* 82806*/ OPC_MoveParent, ++/* 82807*/ OPC_MoveChild, 31, ++/* 82809*/ OPC_CheckInteger, 7, ++/* 82811*/ OPC_CheckType, MVT::i32, ++/* 82813*/ OPC_MoveParent, ++/* 82814*/ OPC_CheckType, MVT::v32i8, ++/* 82816*/ OPC_MoveParent, ++/* 82817*/ OPC_MoveParent, ++/* 82818*/ OPC_MoveParent, ++/* 82819*/ OPC_MoveChild1, ++/* 82820*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 82823*/ OPC_CheckChild0Integer, 1, ++/* 82825*/ OPC_CheckChild0Type, MVT::i32, ++/* 82827*/ OPC_CheckChild1Integer, 1, ++/* 82829*/ OPC_CheckChild1Type, MVT::i32, ++/* 82831*/ OPC_CheckChild2Integer, 1, ++/* 82833*/ OPC_CheckChild2Type, MVT::i32, ++/* 82835*/ OPC_CheckChild3Integer, 1, ++/* 82837*/ OPC_CheckChild3Type, MVT::i32, ++/* 82839*/ OPC_CheckChild4Integer, 1, ++/* 82841*/ OPC_CheckChild4Type, MVT::i32, ++/* 82843*/ OPC_MoveChild5, ++/* 82844*/ OPC_CheckInteger, 1, ++/* 82846*/ OPC_CheckType, MVT::i32, ++/* 82848*/ OPC_MoveParent, ++/* 82849*/ OPC_MoveChild6, ++/* 82850*/ OPC_CheckInteger, 1, ++/* 82852*/ OPC_CheckType, MVT::i32, ++/* 82854*/ OPC_MoveParent, ++/* 82855*/ OPC_MoveChild7, ++/* 82856*/ OPC_CheckInteger, 1, ++/* 82858*/ OPC_CheckType, MVT::i32, ++/* 82860*/ OPC_MoveParent, ++/* 82861*/ OPC_MoveChild, 8, ++/* 82863*/ OPC_CheckInteger, 1, ++/* 82865*/ OPC_CheckType, MVT::i32, ++/* 82867*/ OPC_MoveParent, ++/* 82868*/ OPC_MoveChild, 9, ++/* 82870*/ OPC_CheckInteger, 1, ++/* 82872*/ OPC_CheckType, MVT::i32, ++/* 82874*/ OPC_MoveParent, ++/* 82875*/ OPC_MoveChild, 10, ++/* 82877*/ OPC_CheckInteger, 1, ++/* 82879*/ OPC_CheckType, MVT::i32, ++/* 82881*/ OPC_MoveParent, ++/* 82882*/ OPC_MoveChild, 11, ++/* 82884*/ OPC_CheckInteger, 1, ++/* 82886*/ OPC_CheckType, MVT::i32, ++/* 82888*/ OPC_MoveParent, ++/* 82889*/ OPC_MoveChild, 12, ++/* 82891*/ OPC_CheckInteger, 1, ++/* 82893*/ OPC_CheckType, MVT::i32, ++/* 82895*/ OPC_MoveParent, ++/* 82896*/ OPC_MoveChild, 13, ++/* 82898*/ OPC_CheckInteger, 1, ++/* 82900*/ OPC_CheckType, MVT::i32, ++/* 82902*/ OPC_MoveParent, ++/* 82903*/ OPC_MoveChild, 14, ++/* 82905*/ OPC_CheckInteger, 1, ++/* 82907*/ OPC_CheckType, MVT::i32, ++/* 82909*/ OPC_MoveParent, ++/* 82910*/ OPC_MoveChild, 15, ++/* 82912*/ OPC_CheckInteger, 1, ++/* 82914*/ OPC_CheckType, MVT::i32, ++/* 82916*/ OPC_MoveParent, ++/* 82917*/ OPC_MoveChild, 16, ++/* 82919*/ OPC_CheckInteger, 1, ++/* 82921*/ OPC_CheckType, MVT::i32, ++/* 82923*/ OPC_MoveParent, ++/* 82924*/ OPC_MoveChild, 17, ++/* 82926*/ OPC_CheckInteger, 1, ++/* 82928*/ OPC_CheckType, MVT::i32, ++/* 82930*/ OPC_MoveParent, ++/* 82931*/ OPC_MoveChild, 18, ++/* 82933*/ OPC_CheckInteger, 1, ++/* 82935*/ OPC_CheckType, MVT::i32, ++/* 82937*/ OPC_MoveParent, ++/* 82938*/ OPC_MoveChild, 19, ++/* 82940*/ OPC_CheckInteger, 1, ++/* 82942*/ OPC_CheckType, MVT::i32, ++/* 82944*/ OPC_MoveParent, ++/* 82945*/ OPC_MoveChild, 20, ++/* 82947*/ OPC_CheckInteger, 1, ++/* 82949*/ OPC_CheckType, MVT::i32, ++/* 82951*/ OPC_MoveParent, ++/* 82952*/ OPC_MoveChild, 21, ++/* 82954*/ OPC_CheckInteger, 1, ++/* 82956*/ OPC_CheckType, MVT::i32, ++/* 82958*/ OPC_MoveParent, ++/* 82959*/ OPC_MoveChild, 22, ++/* 82961*/ OPC_CheckInteger, 1, ++/* 82963*/ OPC_CheckType, MVT::i32, ++/* 82965*/ OPC_MoveParent, ++/* 82966*/ OPC_MoveChild, 23, ++/* 82968*/ OPC_CheckInteger, 1, ++/* 82970*/ OPC_CheckType, MVT::i32, ++/* 82972*/ OPC_MoveParent, ++/* 82973*/ OPC_MoveChild, 24, ++/* 82975*/ OPC_CheckInteger, 1, ++/* 82977*/ OPC_CheckType, MVT::i32, ++/* 82979*/ OPC_MoveParent, ++/* 82980*/ OPC_MoveChild, 25, ++/* 82982*/ OPC_CheckInteger, 1, ++/* 82984*/ OPC_CheckType, MVT::i32, ++/* 82986*/ OPC_MoveParent, ++/* 82987*/ OPC_MoveChild, 26, ++/* 82989*/ OPC_CheckInteger, 1, ++/* 82991*/ OPC_CheckType, MVT::i32, ++/* 82993*/ OPC_MoveParent, ++/* 82994*/ OPC_MoveChild, 27, ++/* 82996*/ OPC_CheckInteger, 1, ++/* 82998*/ OPC_CheckType, MVT::i32, ++/* 83000*/ OPC_MoveParent, ++/* 83001*/ OPC_MoveChild, 28, ++/* 83003*/ OPC_CheckInteger, 1, ++/* 83005*/ OPC_CheckType, MVT::i32, ++/* 83007*/ OPC_MoveParent, ++/* 83008*/ OPC_MoveChild, 29, ++/* 83010*/ OPC_CheckInteger, 1, ++/* 83012*/ OPC_CheckType, MVT::i32, ++/* 83014*/ OPC_MoveParent, ++/* 83015*/ OPC_MoveChild, 30, ++/* 83017*/ OPC_CheckInteger, 1, ++/* 83019*/ OPC_CheckType, MVT::i32, ++/* 83021*/ OPC_MoveParent, ++/* 83022*/ OPC_MoveChild, 31, ++/* 83024*/ OPC_CheckInteger, 1, ++/* 83026*/ OPC_CheckType, MVT::i32, ++/* 83028*/ OPC_MoveParent, ++/* 83029*/ OPC_CheckType, MVT::v32i8, ++/* 83031*/ OPC_MoveParent, ++/* 83032*/ OPC_CheckType, MVT::v32i8, ++/* 83034*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 83036*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a), LASX256B:{ *:[v32i8] }:$b), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b), LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/* 83044*/ /*Scope*/ 17|128,5/*657*/, /*->83703*/ ++/* 83046*/ OPC_CheckChild0Same, 1, ++/* 83048*/ OPC_MoveChild1, ++/* 83049*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 83052*/ OPC_CheckChild0Integer, 1, ++/* 83054*/ OPC_CheckChild0Type, MVT::i32, ++/* 83056*/ OPC_CheckChild1Integer, 1, ++/* 83058*/ OPC_CheckChild1Type, MVT::i32, ++/* 83060*/ OPC_CheckChild2Integer, 1, ++/* 83062*/ OPC_CheckChild2Type, MVT::i32, ++/* 83064*/ OPC_CheckChild3Integer, 1, ++/* 83066*/ OPC_CheckChild3Type, MVT::i32, ++/* 83068*/ OPC_CheckChild4Integer, 1, ++/* 83070*/ OPC_CheckChild4Type, MVT::i32, ++/* 83072*/ OPC_MoveChild5, ++/* 83073*/ OPC_CheckInteger, 1, ++/* 83075*/ OPC_CheckType, MVT::i32, ++/* 83077*/ OPC_MoveParent, ++/* 83078*/ OPC_MoveChild6, ++/* 83079*/ OPC_CheckInteger, 1, ++/* 83081*/ OPC_CheckType, MVT::i32, ++/* 83083*/ OPC_MoveParent, ++/* 83084*/ OPC_MoveChild7, ++/* 83085*/ OPC_CheckInteger, 1, ++/* 83087*/ OPC_CheckType, MVT::i32, ++/* 83089*/ OPC_MoveParent, ++/* 83090*/ OPC_MoveChild, 8, ++/* 83092*/ OPC_CheckInteger, 1, ++/* 83094*/ OPC_CheckType, MVT::i32, ++/* 83096*/ OPC_MoveParent, ++/* 83097*/ OPC_MoveChild, 9, ++/* 83099*/ OPC_CheckInteger, 1, ++/* 83101*/ OPC_CheckType, MVT::i32, ++/* 83103*/ OPC_MoveParent, ++/* 83104*/ OPC_MoveChild, 10, ++/* 83106*/ OPC_CheckInteger, 1, ++/* 83108*/ OPC_CheckType, MVT::i32, ++/* 83110*/ OPC_MoveParent, ++/* 83111*/ OPC_MoveChild, 11, ++/* 83113*/ OPC_CheckInteger, 1, ++/* 83115*/ OPC_CheckType, MVT::i32, ++/* 83117*/ OPC_MoveParent, ++/* 83118*/ OPC_MoveChild, 12, ++/* 83120*/ OPC_CheckInteger, 1, ++/* 83122*/ OPC_CheckType, MVT::i32, ++/* 83124*/ OPC_MoveParent, ++/* 83125*/ OPC_MoveChild, 13, ++/* 83127*/ OPC_CheckInteger, 1, ++/* 83129*/ OPC_CheckType, MVT::i32, ++/* 83131*/ OPC_MoveParent, ++/* 83132*/ OPC_MoveChild, 14, ++/* 83134*/ OPC_CheckInteger, 1, ++/* 83136*/ OPC_CheckType, MVT::i32, ++/* 83138*/ OPC_MoveParent, ++/* 83139*/ OPC_MoveChild, 15, ++/* 83141*/ OPC_CheckInteger, 1, ++/* 83143*/ OPC_CheckType, MVT::i32, ++/* 83145*/ OPC_MoveParent, ++/* 83146*/ OPC_MoveChild, 16, ++/* 83148*/ OPC_CheckInteger, 1, ++/* 83150*/ OPC_CheckType, MVT::i32, ++/* 83152*/ OPC_MoveParent, ++/* 83153*/ OPC_MoveChild, 17, ++/* 83155*/ OPC_CheckInteger, 1, ++/* 83157*/ OPC_CheckType, MVT::i32, ++/* 83159*/ OPC_MoveParent, ++/* 83160*/ OPC_MoveChild, 18, ++/* 83162*/ OPC_CheckInteger, 1, ++/* 83164*/ OPC_CheckType, MVT::i32, ++/* 83166*/ OPC_MoveParent, ++/* 83167*/ OPC_MoveChild, 19, ++/* 83169*/ OPC_CheckInteger, 1, ++/* 83171*/ OPC_CheckType, MVT::i32, ++/* 83173*/ OPC_MoveParent, ++/* 83174*/ OPC_MoveChild, 20, ++/* 83176*/ OPC_CheckInteger, 1, ++/* 83178*/ OPC_CheckType, MVT::i32, ++/* 83180*/ OPC_MoveParent, ++/* 83181*/ OPC_MoveChild, 21, ++/* 83183*/ OPC_CheckInteger, 1, ++/* 83185*/ OPC_CheckType, MVT::i32, ++/* 83187*/ OPC_MoveParent, ++/* 83188*/ OPC_MoveChild, 22, ++/* 83190*/ OPC_CheckInteger, 1, ++/* 83192*/ OPC_CheckType, MVT::i32, ++/* 83194*/ OPC_MoveParent, ++/* 83195*/ OPC_MoveChild, 23, ++/* 83197*/ OPC_CheckInteger, 1, ++/* 83199*/ OPC_CheckType, MVT::i32, ++/* 83201*/ OPC_MoveParent, ++/* 83202*/ OPC_MoveChild, 24, ++/* 83204*/ OPC_CheckInteger, 1, ++/* 83206*/ OPC_CheckType, MVT::i32, ++/* 83208*/ OPC_MoveParent, ++/* 83209*/ OPC_MoveChild, 25, ++/* 83211*/ OPC_CheckInteger, 1, ++/* 83213*/ OPC_CheckType, MVT::i32, ++/* 83215*/ OPC_MoveParent, ++/* 83216*/ OPC_MoveChild, 26, ++/* 83218*/ OPC_CheckInteger, 1, ++/* 83220*/ OPC_CheckType, MVT::i32, ++/* 83222*/ OPC_MoveParent, ++/* 83223*/ OPC_MoveChild, 27, ++/* 83225*/ OPC_CheckInteger, 1, ++/* 83227*/ OPC_CheckType, MVT::i32, ++/* 83229*/ OPC_MoveParent, ++/* 83230*/ OPC_MoveChild, 28, ++/* 83232*/ OPC_CheckInteger, 1, ++/* 83234*/ OPC_CheckType, MVT::i32, ++/* 83236*/ OPC_MoveParent, ++/* 83237*/ OPC_MoveChild, 29, ++/* 83239*/ OPC_CheckInteger, 1, ++/* 83241*/ OPC_CheckType, MVT::i32, ++/* 83243*/ OPC_MoveParent, ++/* 83244*/ OPC_MoveChild, 30, ++/* 83246*/ OPC_CheckInteger, 1, ++/* 83248*/ OPC_CheckType, MVT::i32, ++/* 83250*/ OPC_MoveParent, ++/* 83251*/ OPC_MoveChild, 31, ++/* 83253*/ OPC_CheckInteger, 1, ++/* 83255*/ OPC_CheckType, MVT::i32, ++/* 83257*/ OPC_MoveParent, ++/* 83258*/ OPC_MoveParent, ++/* 83259*/ OPC_MoveParent, ++/* 83260*/ OPC_CheckChild1Same, 0, ++/* 83262*/ OPC_MoveParent, ++/* 83263*/ OPC_MoveChild1, ++/* 83264*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 83267*/ OPC_CheckChild0Integer, 7, ++/* 83269*/ OPC_CheckChild0Type, MVT::i32, ++/* 83271*/ OPC_CheckChild1Integer, 7, ++/* 83273*/ OPC_CheckChild1Type, MVT::i32, ++/* 83275*/ OPC_CheckChild2Integer, 7, ++/* 83277*/ OPC_CheckChild2Type, MVT::i32, ++/* 83279*/ OPC_CheckChild3Integer, 7, ++/* 83281*/ OPC_CheckChild3Type, MVT::i32, ++/* 83283*/ OPC_CheckChild4Integer, 7, ++/* 83285*/ OPC_CheckChild4Type, MVT::i32, ++/* 83287*/ OPC_MoveChild5, ++/* 83288*/ OPC_CheckInteger, 7, ++/* 83290*/ OPC_CheckType, MVT::i32, ++/* 83292*/ OPC_MoveParent, ++/* 83293*/ OPC_MoveChild6, ++/* 83294*/ OPC_CheckInteger, 7, ++/* 83296*/ OPC_CheckType, MVT::i32, ++/* 83298*/ OPC_MoveParent, ++/* 83299*/ OPC_MoveChild7, ++/* 83300*/ OPC_CheckInteger, 7, ++/* 83302*/ OPC_CheckType, MVT::i32, ++/* 83304*/ OPC_MoveParent, ++/* 83305*/ OPC_MoveChild, 8, ++/* 83307*/ OPC_CheckInteger, 7, ++/* 83309*/ OPC_CheckType, MVT::i32, ++/* 83311*/ OPC_MoveParent, ++/* 83312*/ OPC_MoveChild, 9, ++/* 83314*/ OPC_CheckInteger, 7, ++/* 83316*/ OPC_CheckType, MVT::i32, ++/* 83318*/ OPC_MoveParent, ++/* 83319*/ OPC_MoveChild, 10, ++/* 83321*/ OPC_CheckInteger, 7, ++/* 83323*/ OPC_CheckType, MVT::i32, ++/* 83325*/ OPC_MoveParent, ++/* 83326*/ OPC_MoveChild, 11, ++/* 83328*/ OPC_CheckInteger, 7, ++/* 83330*/ OPC_CheckType, MVT::i32, ++/* 83332*/ OPC_MoveParent, ++/* 83333*/ OPC_MoveChild, 12, ++/* 83335*/ OPC_CheckInteger, 7, ++/* 83337*/ OPC_CheckType, MVT::i32, ++/* 83339*/ OPC_MoveParent, ++/* 83340*/ OPC_MoveChild, 13, ++/* 83342*/ OPC_CheckInteger, 7, ++/* 83344*/ OPC_CheckType, MVT::i32, ++/* 83346*/ OPC_MoveParent, ++/* 83347*/ OPC_MoveChild, 14, ++/* 83349*/ OPC_CheckInteger, 7, ++/* 83351*/ OPC_CheckType, MVT::i32, ++/* 83353*/ OPC_MoveParent, ++/* 83354*/ OPC_MoveChild, 15, ++/* 83356*/ OPC_CheckInteger, 7, ++/* 83358*/ OPC_CheckType, MVT::i32, ++/* 83360*/ OPC_MoveParent, ++/* 83361*/ OPC_MoveChild, 16, ++/* 83363*/ OPC_CheckInteger, 7, ++/* 83365*/ OPC_CheckType, MVT::i32, ++/* 83367*/ OPC_MoveParent, ++/* 83368*/ OPC_MoveChild, 17, ++/* 83370*/ OPC_CheckInteger, 7, ++/* 83372*/ OPC_CheckType, MVT::i32, ++/* 83374*/ OPC_MoveParent, ++/* 83375*/ OPC_MoveChild, 18, ++/* 83377*/ OPC_CheckInteger, 7, ++/* 83379*/ OPC_CheckType, MVT::i32, ++/* 83381*/ OPC_MoveParent, ++/* 83382*/ OPC_MoveChild, 19, ++/* 83384*/ OPC_CheckInteger, 7, ++/* 83386*/ OPC_CheckType, MVT::i32, ++/* 83388*/ OPC_MoveParent, ++/* 83389*/ OPC_MoveChild, 20, ++/* 83391*/ OPC_CheckInteger, 7, ++/* 83393*/ OPC_CheckType, MVT::i32, ++/* 83395*/ OPC_MoveParent, ++/* 83396*/ OPC_MoveChild, 21, ++/* 83398*/ OPC_CheckInteger, 7, ++/* 83400*/ OPC_CheckType, MVT::i32, ++/* 83402*/ OPC_MoveParent, ++/* 83403*/ OPC_MoveChild, 22, ++/* 83405*/ OPC_CheckInteger, 7, ++/* 83407*/ OPC_CheckType, MVT::i32, ++/* 83409*/ OPC_MoveParent, ++/* 83410*/ OPC_MoveChild, 23, ++/* 83412*/ OPC_CheckInteger, 7, ++/* 83414*/ OPC_CheckType, MVT::i32, ++/* 83416*/ OPC_MoveParent, ++/* 83417*/ OPC_MoveChild, 24, ++/* 83419*/ OPC_CheckInteger, 7, ++/* 83421*/ OPC_CheckType, MVT::i32, ++/* 83423*/ OPC_MoveParent, ++/* 83424*/ OPC_MoveChild, 25, ++/* 83426*/ OPC_CheckInteger, 7, ++/* 83428*/ OPC_CheckType, MVT::i32, ++/* 83430*/ OPC_MoveParent, ++/* 83431*/ OPC_MoveChild, 26, ++/* 83433*/ OPC_CheckInteger, 7, ++/* 83435*/ OPC_CheckType, MVT::i32, ++/* 83437*/ OPC_MoveParent, ++/* 83438*/ OPC_MoveChild, 27, ++/* 83440*/ OPC_CheckInteger, 7, ++/* 83442*/ OPC_CheckType, MVT::i32, ++/* 83444*/ OPC_MoveParent, ++/* 83445*/ OPC_MoveChild, 28, ++/* 83447*/ OPC_CheckInteger, 7, ++/* 83449*/ OPC_CheckType, MVT::i32, ++/* 83451*/ OPC_MoveParent, ++/* 83452*/ OPC_MoveChild, 29, ++/* 83454*/ OPC_CheckInteger, 7, ++/* 83456*/ OPC_CheckType, MVT::i32, ++/* 83458*/ OPC_MoveParent, ++/* 83459*/ OPC_MoveChild, 30, ++/* 83461*/ OPC_CheckInteger, 7, ++/* 83463*/ OPC_CheckType, MVT::i32, ++/* 83465*/ OPC_MoveParent, ++/* 83466*/ OPC_MoveChild, 31, ++/* 83468*/ OPC_CheckInteger, 7, ++/* 83470*/ OPC_CheckType, MVT::i32, ++/* 83472*/ OPC_MoveParent, ++/* 83473*/ OPC_CheckType, MVT::v32i8, ++/* 83475*/ OPC_MoveParent, ++/* 83476*/ OPC_MoveParent, ++/* 83477*/ OPC_MoveParent, ++/* 83478*/ OPC_MoveChild1, ++/* 83479*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 83482*/ OPC_CheckChild0Integer, 1, ++/* 83484*/ OPC_CheckChild0Type, MVT::i32, ++/* 83486*/ OPC_CheckChild1Integer, 1, ++/* 83488*/ OPC_CheckChild1Type, MVT::i32, ++/* 83490*/ OPC_CheckChild2Integer, 1, ++/* 83492*/ OPC_CheckChild2Type, MVT::i32, ++/* 83494*/ OPC_CheckChild3Integer, 1, ++/* 83496*/ OPC_CheckChild3Type, MVT::i32, ++/* 83498*/ OPC_CheckChild4Integer, 1, ++/* 83500*/ OPC_CheckChild4Type, MVT::i32, ++/* 83502*/ OPC_MoveChild5, ++/* 83503*/ OPC_CheckInteger, 1, ++/* 83505*/ OPC_CheckType, MVT::i32, ++/* 83507*/ OPC_MoveParent, ++/* 83508*/ OPC_MoveChild6, ++/* 83509*/ OPC_CheckInteger, 1, ++/* 83511*/ OPC_CheckType, MVT::i32, ++/* 83513*/ OPC_MoveParent, ++/* 83514*/ OPC_MoveChild7, ++/* 83515*/ OPC_CheckInteger, 1, ++/* 83517*/ OPC_CheckType, MVT::i32, ++/* 83519*/ OPC_MoveParent, ++/* 83520*/ OPC_MoveChild, 8, ++/* 83522*/ OPC_CheckInteger, 1, ++/* 83524*/ OPC_CheckType, MVT::i32, ++/* 83526*/ OPC_MoveParent, ++/* 83527*/ OPC_MoveChild, 9, ++/* 83529*/ OPC_CheckInteger, 1, ++/* 83531*/ OPC_CheckType, MVT::i32, ++/* 83533*/ OPC_MoveParent, ++/* 83534*/ OPC_MoveChild, 10, ++/* 83536*/ OPC_CheckInteger, 1, ++/* 83538*/ OPC_CheckType, MVT::i32, ++/* 83540*/ OPC_MoveParent, ++/* 83541*/ OPC_MoveChild, 11, ++/* 83543*/ OPC_CheckInteger, 1, ++/* 83545*/ OPC_CheckType, MVT::i32, ++/* 83547*/ OPC_MoveParent, ++/* 83548*/ OPC_MoveChild, 12, ++/* 83550*/ OPC_CheckInteger, 1, ++/* 83552*/ OPC_CheckType, MVT::i32, ++/* 83554*/ OPC_MoveParent, ++/* 83555*/ OPC_MoveChild, 13, ++/* 83557*/ OPC_CheckInteger, 1, ++/* 83559*/ OPC_CheckType, MVT::i32, ++/* 83561*/ OPC_MoveParent, ++/* 83562*/ OPC_MoveChild, 14, ++/* 83564*/ OPC_CheckInteger, 1, ++/* 83566*/ OPC_CheckType, MVT::i32, ++/* 83568*/ OPC_MoveParent, ++/* 83569*/ OPC_MoveChild, 15, ++/* 83571*/ OPC_CheckInteger, 1, ++/* 83573*/ OPC_CheckType, MVT::i32, ++/* 83575*/ OPC_MoveParent, ++/* 83576*/ OPC_MoveChild, 16, ++/* 83578*/ OPC_CheckInteger, 1, ++/* 83580*/ OPC_CheckType, MVT::i32, ++/* 83582*/ OPC_MoveParent, ++/* 83583*/ OPC_MoveChild, 17, ++/* 83585*/ OPC_CheckInteger, 1, ++/* 83587*/ OPC_CheckType, MVT::i32, ++/* 83589*/ OPC_MoveParent, ++/* 83590*/ OPC_MoveChild, 18, ++/* 83592*/ OPC_CheckInteger, 1, ++/* 83594*/ OPC_CheckType, MVT::i32, ++/* 83596*/ OPC_MoveParent, ++/* 83597*/ OPC_MoveChild, 19, ++/* 83599*/ OPC_CheckInteger, 1, ++/* 83601*/ OPC_CheckType, MVT::i32, ++/* 83603*/ OPC_MoveParent, ++/* 83604*/ OPC_MoveChild, 20, ++/* 83606*/ OPC_CheckInteger, 1, ++/* 83608*/ OPC_CheckType, MVT::i32, ++/* 83610*/ OPC_MoveParent, ++/* 83611*/ OPC_MoveChild, 21, ++/* 83613*/ OPC_CheckInteger, 1, ++/* 83615*/ OPC_CheckType, MVT::i32, ++/* 83617*/ OPC_MoveParent, ++/* 83618*/ OPC_MoveChild, 22, ++/* 83620*/ OPC_CheckInteger, 1, ++/* 83622*/ OPC_CheckType, MVT::i32, ++/* 83624*/ OPC_MoveParent, ++/* 83625*/ OPC_MoveChild, 23, ++/* 83627*/ OPC_CheckInteger, 1, ++/* 83629*/ OPC_CheckType, MVT::i32, ++/* 83631*/ OPC_MoveParent, ++/* 83632*/ OPC_MoveChild, 24, ++/* 83634*/ OPC_CheckInteger, 1, ++/* 83636*/ OPC_CheckType, MVT::i32, ++/* 83638*/ OPC_MoveParent, ++/* 83639*/ OPC_MoveChild, 25, ++/* 83641*/ OPC_CheckInteger, 1, ++/* 83643*/ OPC_CheckType, MVT::i32, ++/* 83645*/ OPC_MoveParent, ++/* 83646*/ OPC_MoveChild, 26, ++/* 83648*/ OPC_CheckInteger, 1, ++/* 83650*/ OPC_CheckType, MVT::i32, ++/* 83652*/ OPC_MoveParent, ++/* 83653*/ OPC_MoveChild, 27, ++/* 83655*/ OPC_CheckInteger, 1, ++/* 83657*/ OPC_CheckType, MVT::i32, ++/* 83659*/ OPC_MoveParent, ++/* 83660*/ OPC_MoveChild, 28, ++/* 83662*/ OPC_CheckInteger, 1, ++/* 83664*/ OPC_CheckType, MVT::i32, ++/* 83666*/ OPC_MoveParent, ++/* 83667*/ OPC_MoveChild, 29, ++/* 83669*/ OPC_CheckInteger, 1, ++/* 83671*/ OPC_CheckType, MVT::i32, ++/* 83673*/ OPC_MoveParent, ++/* 83674*/ OPC_MoveChild, 30, ++/* 83676*/ OPC_CheckInteger, 1, ++/* 83678*/ OPC_CheckType, MVT::i32, ++/* 83680*/ OPC_MoveParent, ++/* 83681*/ OPC_MoveChild, 31, ++/* 83683*/ OPC_CheckInteger, 1, ++/* 83685*/ OPC_CheckType, MVT::i32, ++/* 83687*/ OPC_MoveParent, ++/* 83688*/ OPC_CheckType, MVT::v32i8, ++/* 83690*/ OPC_MoveParent, ++/* 83691*/ OPC_CheckType, MVT::v32i8, ++/* 83693*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 83695*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a), LASX256B:{ *:[v32i8] }:$b), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/* 83703*/ /*Scope*/ 17|128,5/*657*/, /*->84362*/ ++/* 83705*/ OPC_CheckChild0Same, 0, ++/* 83707*/ OPC_CheckChild1Same, 1, ++/* 83709*/ OPC_MoveParent, ++/* 83710*/ OPC_MoveChild1, ++/* 83711*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 83714*/ OPC_CheckChild0Integer, 1, ++/* 83716*/ OPC_CheckChild0Type, MVT::i32, ++/* 83718*/ OPC_CheckChild1Integer, 1, ++/* 83720*/ OPC_CheckChild1Type, MVT::i32, ++/* 83722*/ OPC_CheckChild2Integer, 1, ++/* 83724*/ OPC_CheckChild2Type, MVT::i32, ++/* 83726*/ OPC_CheckChild3Integer, 1, ++/* 83728*/ OPC_CheckChild3Type, MVT::i32, ++/* 83730*/ OPC_CheckChild4Integer, 1, ++/* 83732*/ OPC_CheckChild4Type, MVT::i32, ++/* 83734*/ OPC_MoveChild5, ++/* 83735*/ OPC_CheckInteger, 1, ++/* 83737*/ OPC_CheckType, MVT::i32, ++/* 83739*/ OPC_MoveParent, ++/* 83740*/ OPC_MoveChild6, ++/* 83741*/ OPC_CheckInteger, 1, ++/* 83743*/ OPC_CheckType, MVT::i32, ++/* 83745*/ OPC_MoveParent, ++/* 83746*/ OPC_MoveChild7, ++/* 83747*/ OPC_CheckInteger, 1, ++/* 83749*/ OPC_CheckType, MVT::i32, ++/* 83751*/ OPC_MoveParent, ++/* 83752*/ OPC_MoveChild, 8, ++/* 83754*/ OPC_CheckInteger, 1, ++/* 83756*/ OPC_CheckType, MVT::i32, ++/* 83758*/ OPC_MoveParent, ++/* 83759*/ OPC_MoveChild, 9, ++/* 83761*/ OPC_CheckInteger, 1, ++/* 83763*/ OPC_CheckType, MVT::i32, ++/* 83765*/ OPC_MoveParent, ++/* 83766*/ OPC_MoveChild, 10, ++/* 83768*/ OPC_CheckInteger, 1, ++/* 83770*/ OPC_CheckType, MVT::i32, ++/* 83772*/ OPC_MoveParent, ++/* 83773*/ OPC_MoveChild, 11, ++/* 83775*/ OPC_CheckInteger, 1, ++/* 83777*/ OPC_CheckType, MVT::i32, ++/* 83779*/ OPC_MoveParent, ++/* 83780*/ OPC_MoveChild, 12, ++/* 83782*/ OPC_CheckInteger, 1, ++/* 83784*/ OPC_CheckType, MVT::i32, ++/* 83786*/ OPC_MoveParent, ++/* 83787*/ OPC_MoveChild, 13, ++/* 83789*/ OPC_CheckInteger, 1, ++/* 83791*/ OPC_CheckType, MVT::i32, ++/* 83793*/ OPC_MoveParent, ++/* 83794*/ OPC_MoveChild, 14, ++/* 83796*/ OPC_CheckInteger, 1, ++/* 83798*/ OPC_CheckType, MVT::i32, ++/* 83800*/ OPC_MoveParent, ++/* 83801*/ OPC_MoveChild, 15, ++/* 83803*/ OPC_CheckInteger, 1, ++/* 83805*/ OPC_CheckType, MVT::i32, ++/* 83807*/ OPC_MoveParent, ++/* 83808*/ OPC_MoveChild, 16, ++/* 83810*/ OPC_CheckInteger, 1, ++/* 83812*/ OPC_CheckType, MVT::i32, ++/* 83814*/ OPC_MoveParent, ++/* 83815*/ OPC_MoveChild, 17, ++/* 83817*/ OPC_CheckInteger, 1, ++/* 83819*/ OPC_CheckType, MVT::i32, ++/* 83821*/ OPC_MoveParent, ++/* 83822*/ OPC_MoveChild, 18, ++/* 83824*/ OPC_CheckInteger, 1, ++/* 83826*/ OPC_CheckType, MVT::i32, ++/* 83828*/ OPC_MoveParent, ++/* 83829*/ OPC_MoveChild, 19, ++/* 83831*/ OPC_CheckInteger, 1, ++/* 83833*/ OPC_CheckType, MVT::i32, ++/* 83835*/ OPC_MoveParent, ++/* 83836*/ OPC_MoveChild, 20, ++/* 83838*/ OPC_CheckInteger, 1, ++/* 83840*/ OPC_CheckType, MVT::i32, ++/* 83842*/ OPC_MoveParent, ++/* 83843*/ OPC_MoveChild, 21, ++/* 83845*/ OPC_CheckInteger, 1, ++/* 83847*/ OPC_CheckType, MVT::i32, ++/* 83849*/ OPC_MoveParent, ++/* 83850*/ OPC_MoveChild, 22, ++/* 83852*/ OPC_CheckInteger, 1, ++/* 83854*/ OPC_CheckType, MVT::i32, ++/* 83856*/ OPC_MoveParent, ++/* 83857*/ OPC_MoveChild, 23, ++/* 83859*/ OPC_CheckInteger, 1, ++/* 83861*/ OPC_CheckType, MVT::i32, ++/* 83863*/ OPC_MoveParent, ++/* 83864*/ OPC_MoveChild, 24, ++/* 83866*/ OPC_CheckInteger, 1, ++/* 83868*/ OPC_CheckType, MVT::i32, ++/* 83870*/ OPC_MoveParent, ++/* 83871*/ OPC_MoveChild, 25, ++/* 83873*/ OPC_CheckInteger, 1, ++/* 83875*/ OPC_CheckType, MVT::i32, ++/* 83877*/ OPC_MoveParent, ++/* 83878*/ OPC_MoveChild, 26, ++/* 83880*/ OPC_CheckInteger, 1, ++/* 83882*/ OPC_CheckType, MVT::i32, ++/* 83884*/ OPC_MoveParent, ++/* 83885*/ OPC_MoveChild, 27, ++/* 83887*/ OPC_CheckInteger, 1, ++/* 83889*/ OPC_CheckType, MVT::i32, ++/* 83891*/ OPC_MoveParent, ++/* 83892*/ OPC_MoveChild, 28, ++/* 83894*/ OPC_CheckInteger, 1, ++/* 83896*/ OPC_CheckType, MVT::i32, ++/* 83898*/ OPC_MoveParent, ++/* 83899*/ OPC_MoveChild, 29, ++/* 83901*/ OPC_CheckInteger, 1, ++/* 83903*/ OPC_CheckType, MVT::i32, ++/* 83905*/ OPC_MoveParent, ++/* 83906*/ OPC_MoveChild, 30, ++/* 83908*/ OPC_CheckInteger, 1, ++/* 83910*/ OPC_CheckType, MVT::i32, ++/* 83912*/ OPC_MoveParent, ++/* 83913*/ OPC_MoveChild, 31, ++/* 83915*/ OPC_CheckInteger, 1, ++/* 83917*/ OPC_CheckType, MVT::i32, ++/* 83919*/ OPC_MoveParent, ++/* 83920*/ OPC_MoveParent, ++/* 83921*/ OPC_MoveParent, ++/* 83922*/ OPC_MoveChild1, ++/* 83923*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 83926*/ OPC_CheckChild0Integer, 7, ++/* 83928*/ OPC_CheckChild0Type, MVT::i32, ++/* 83930*/ OPC_CheckChild1Integer, 7, ++/* 83932*/ OPC_CheckChild1Type, MVT::i32, ++/* 83934*/ OPC_CheckChild2Integer, 7, ++/* 83936*/ OPC_CheckChild2Type, MVT::i32, ++/* 83938*/ OPC_CheckChild3Integer, 7, ++/* 83940*/ OPC_CheckChild3Type, MVT::i32, ++/* 83942*/ OPC_CheckChild4Integer, 7, ++/* 83944*/ OPC_CheckChild4Type, MVT::i32, ++/* 83946*/ OPC_MoveChild5, ++/* 83947*/ OPC_CheckInteger, 7, ++/* 83949*/ OPC_CheckType, MVT::i32, ++/* 83951*/ OPC_MoveParent, ++/* 83952*/ OPC_MoveChild6, ++/* 83953*/ OPC_CheckInteger, 7, ++/* 83955*/ OPC_CheckType, MVT::i32, ++/* 83957*/ OPC_MoveParent, ++/* 83958*/ OPC_MoveChild7, ++/* 83959*/ OPC_CheckInteger, 7, ++/* 83961*/ OPC_CheckType, MVT::i32, ++/* 83963*/ OPC_MoveParent, ++/* 83964*/ OPC_MoveChild, 8, ++/* 83966*/ OPC_CheckInteger, 7, ++/* 83968*/ OPC_CheckType, MVT::i32, ++/* 83970*/ OPC_MoveParent, ++/* 83971*/ OPC_MoveChild, 9, ++/* 83973*/ OPC_CheckInteger, 7, ++/* 83975*/ OPC_CheckType, MVT::i32, ++/* 83977*/ OPC_MoveParent, ++/* 83978*/ OPC_MoveChild, 10, ++/* 83980*/ OPC_CheckInteger, 7, ++/* 83982*/ OPC_CheckType, MVT::i32, ++/* 83984*/ OPC_MoveParent, ++/* 83985*/ OPC_MoveChild, 11, ++/* 83987*/ OPC_CheckInteger, 7, ++/* 83989*/ OPC_CheckType, MVT::i32, ++/* 83991*/ OPC_MoveParent, ++/* 83992*/ OPC_MoveChild, 12, ++/* 83994*/ OPC_CheckInteger, 7, ++/* 83996*/ OPC_CheckType, MVT::i32, ++/* 83998*/ OPC_MoveParent, ++/* 83999*/ OPC_MoveChild, 13, ++/* 84001*/ OPC_CheckInteger, 7, ++/* 84003*/ OPC_CheckType, MVT::i32, ++/* 84005*/ OPC_MoveParent, ++/* 84006*/ OPC_MoveChild, 14, ++/* 84008*/ OPC_CheckInteger, 7, ++/* 84010*/ OPC_CheckType, MVT::i32, ++/* 84012*/ OPC_MoveParent, ++/* 84013*/ OPC_MoveChild, 15, ++/* 84015*/ OPC_CheckInteger, 7, ++/* 84017*/ OPC_CheckType, MVT::i32, ++/* 84019*/ OPC_MoveParent, ++/* 84020*/ OPC_MoveChild, 16, ++/* 84022*/ OPC_CheckInteger, 7, ++/* 84024*/ OPC_CheckType, MVT::i32, ++/* 84026*/ OPC_MoveParent, ++/* 84027*/ OPC_MoveChild, 17, ++/* 84029*/ OPC_CheckInteger, 7, ++/* 84031*/ OPC_CheckType, MVT::i32, ++/* 84033*/ OPC_MoveParent, ++/* 84034*/ OPC_MoveChild, 18, ++/* 84036*/ OPC_CheckInteger, 7, ++/* 84038*/ OPC_CheckType, MVT::i32, ++/* 84040*/ OPC_MoveParent, ++/* 84041*/ OPC_MoveChild, 19, ++/* 84043*/ OPC_CheckInteger, 7, ++/* 84045*/ OPC_CheckType, MVT::i32, ++/* 84047*/ OPC_MoveParent, ++/* 84048*/ OPC_MoveChild, 20, ++/* 84050*/ OPC_CheckInteger, 7, ++/* 84052*/ OPC_CheckType, MVT::i32, ++/* 84054*/ OPC_MoveParent, ++/* 84055*/ OPC_MoveChild, 21, ++/* 84057*/ OPC_CheckInteger, 7, ++/* 84059*/ OPC_CheckType, MVT::i32, ++/* 84061*/ OPC_MoveParent, ++/* 84062*/ OPC_MoveChild, 22, ++/* 84064*/ OPC_CheckInteger, 7, ++/* 84066*/ OPC_CheckType, MVT::i32, ++/* 84068*/ OPC_MoveParent, ++/* 84069*/ OPC_MoveChild, 23, ++/* 84071*/ OPC_CheckInteger, 7, ++/* 84073*/ OPC_CheckType, MVT::i32, ++/* 84075*/ OPC_MoveParent, ++/* 84076*/ OPC_MoveChild, 24, ++/* 84078*/ OPC_CheckInteger, 7, ++/* 84080*/ OPC_CheckType, MVT::i32, ++/* 84082*/ OPC_MoveParent, ++/* 84083*/ OPC_MoveChild, 25, ++/* 84085*/ OPC_CheckInteger, 7, ++/* 84087*/ OPC_CheckType, MVT::i32, ++/* 84089*/ OPC_MoveParent, ++/* 84090*/ OPC_MoveChild, 26, ++/* 84092*/ OPC_CheckInteger, 7, ++/* 84094*/ OPC_CheckType, MVT::i32, ++/* 84096*/ OPC_MoveParent, ++/* 84097*/ OPC_MoveChild, 27, ++/* 84099*/ OPC_CheckInteger, 7, ++/* 84101*/ OPC_CheckType, MVT::i32, ++/* 84103*/ OPC_MoveParent, ++/* 84104*/ OPC_MoveChild, 28, ++/* 84106*/ OPC_CheckInteger, 7, ++/* 84108*/ OPC_CheckType, MVT::i32, ++/* 84110*/ OPC_MoveParent, ++/* 84111*/ OPC_MoveChild, 29, ++/* 84113*/ OPC_CheckInteger, 7, ++/* 84115*/ OPC_CheckType, MVT::i32, ++/* 84117*/ OPC_MoveParent, ++/* 84118*/ OPC_MoveChild, 30, ++/* 84120*/ OPC_CheckInteger, 7, ++/* 84122*/ OPC_CheckType, MVT::i32, ++/* 84124*/ OPC_MoveParent, ++/* 84125*/ OPC_MoveChild, 31, ++/* 84127*/ OPC_CheckInteger, 7, ++/* 84129*/ OPC_CheckType, MVT::i32, ++/* 84131*/ OPC_MoveParent, ++/* 84132*/ OPC_CheckType, MVT::v32i8, ++/* 84134*/ OPC_MoveParent, ++/* 84135*/ OPC_MoveParent, ++/* 84136*/ OPC_MoveParent, ++/* 84137*/ OPC_MoveChild1, ++/* 84138*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 84141*/ OPC_CheckChild0Integer, 1, ++/* 84143*/ OPC_CheckChild0Type, MVT::i32, ++/* 84145*/ OPC_CheckChild1Integer, 1, ++/* 84147*/ OPC_CheckChild1Type, MVT::i32, ++/* 84149*/ OPC_CheckChild2Integer, 1, ++/* 84151*/ OPC_CheckChild2Type, MVT::i32, ++/* 84153*/ OPC_CheckChild3Integer, 1, ++/* 84155*/ OPC_CheckChild3Type, MVT::i32, ++/* 84157*/ OPC_CheckChild4Integer, 1, ++/* 84159*/ OPC_CheckChild4Type, MVT::i32, ++/* 84161*/ OPC_MoveChild5, ++/* 84162*/ OPC_CheckInteger, 1, ++/* 84164*/ OPC_CheckType, MVT::i32, ++/* 84166*/ OPC_MoveParent, ++/* 84167*/ OPC_MoveChild6, ++/* 84168*/ OPC_CheckInteger, 1, ++/* 84170*/ OPC_CheckType, MVT::i32, ++/* 84172*/ OPC_MoveParent, ++/* 84173*/ OPC_MoveChild7, ++/* 84174*/ OPC_CheckInteger, 1, ++/* 84176*/ OPC_CheckType, MVT::i32, ++/* 84178*/ OPC_MoveParent, ++/* 84179*/ OPC_MoveChild, 8, ++/* 84181*/ OPC_CheckInteger, 1, ++/* 84183*/ OPC_CheckType, MVT::i32, ++/* 84185*/ OPC_MoveParent, ++/* 84186*/ OPC_MoveChild, 9, ++/* 84188*/ OPC_CheckInteger, 1, ++/* 84190*/ OPC_CheckType, MVT::i32, ++/* 84192*/ OPC_MoveParent, ++/* 84193*/ OPC_MoveChild, 10, ++/* 84195*/ OPC_CheckInteger, 1, ++/* 84197*/ OPC_CheckType, MVT::i32, ++/* 84199*/ OPC_MoveParent, ++/* 84200*/ OPC_MoveChild, 11, ++/* 84202*/ OPC_CheckInteger, 1, ++/* 84204*/ OPC_CheckType, MVT::i32, ++/* 84206*/ OPC_MoveParent, ++/* 84207*/ OPC_MoveChild, 12, ++/* 84209*/ OPC_CheckInteger, 1, ++/* 84211*/ OPC_CheckType, MVT::i32, ++/* 84213*/ OPC_MoveParent, ++/* 84214*/ OPC_MoveChild, 13, ++/* 84216*/ OPC_CheckInteger, 1, ++/* 84218*/ OPC_CheckType, MVT::i32, ++/* 84220*/ OPC_MoveParent, ++/* 84221*/ OPC_MoveChild, 14, ++/* 84223*/ OPC_CheckInteger, 1, ++/* 84225*/ OPC_CheckType, MVT::i32, ++/* 84227*/ OPC_MoveParent, ++/* 84228*/ OPC_MoveChild, 15, ++/* 84230*/ OPC_CheckInteger, 1, ++/* 84232*/ OPC_CheckType, MVT::i32, ++/* 84234*/ OPC_MoveParent, ++/* 84235*/ OPC_MoveChild, 16, ++/* 84237*/ OPC_CheckInteger, 1, ++/* 84239*/ OPC_CheckType, MVT::i32, ++/* 84241*/ OPC_MoveParent, ++/* 84242*/ OPC_MoveChild, 17, ++/* 84244*/ OPC_CheckInteger, 1, ++/* 84246*/ OPC_CheckType, MVT::i32, ++/* 84248*/ OPC_MoveParent, ++/* 84249*/ OPC_MoveChild, 18, ++/* 84251*/ OPC_CheckInteger, 1, ++/* 84253*/ OPC_CheckType, MVT::i32, ++/* 84255*/ OPC_MoveParent, ++/* 84256*/ OPC_MoveChild, 19, ++/* 84258*/ OPC_CheckInteger, 1, ++/* 84260*/ OPC_CheckType, MVT::i32, ++/* 84262*/ OPC_MoveParent, ++/* 84263*/ OPC_MoveChild, 20, ++/* 84265*/ OPC_CheckInteger, 1, ++/* 84267*/ OPC_CheckType, MVT::i32, ++/* 84269*/ OPC_MoveParent, ++/* 84270*/ OPC_MoveChild, 21, ++/* 84272*/ OPC_CheckInteger, 1, ++/* 84274*/ OPC_CheckType, MVT::i32, ++/* 84276*/ OPC_MoveParent, ++/* 84277*/ OPC_MoveChild, 22, ++/* 84279*/ OPC_CheckInteger, 1, ++/* 84281*/ OPC_CheckType, MVT::i32, ++/* 84283*/ OPC_MoveParent, ++/* 84284*/ OPC_MoveChild, 23, ++/* 84286*/ OPC_CheckInteger, 1, ++/* 84288*/ OPC_CheckType, MVT::i32, ++/* 84290*/ OPC_MoveParent, ++/* 84291*/ OPC_MoveChild, 24, ++/* 84293*/ OPC_CheckInteger, 1, ++/* 84295*/ OPC_CheckType, MVT::i32, ++/* 84297*/ OPC_MoveParent, ++/* 84298*/ OPC_MoveChild, 25, ++/* 84300*/ OPC_CheckInteger, 1, ++/* 84302*/ OPC_CheckType, MVT::i32, ++/* 84304*/ OPC_MoveParent, ++/* 84305*/ OPC_MoveChild, 26, ++/* 84307*/ OPC_CheckInteger, 1, ++/* 84309*/ OPC_CheckType, MVT::i32, ++/* 84311*/ OPC_MoveParent, ++/* 84312*/ OPC_MoveChild, 27, ++/* 84314*/ OPC_CheckInteger, 1, ++/* 84316*/ OPC_CheckType, MVT::i32, ++/* 84318*/ OPC_MoveParent, ++/* 84319*/ OPC_MoveChild, 28, ++/* 84321*/ OPC_CheckInteger, 1, ++/* 84323*/ OPC_CheckType, MVT::i32, ++/* 84325*/ OPC_MoveParent, ++/* 84326*/ OPC_MoveChild, 29, ++/* 84328*/ OPC_CheckInteger, 1, ++/* 84330*/ OPC_CheckType, MVT::i32, ++/* 84332*/ OPC_MoveParent, ++/* 84333*/ OPC_MoveChild, 30, ++/* 84335*/ OPC_CheckInteger, 1, ++/* 84337*/ OPC_CheckType, MVT::i32, ++/* 84339*/ OPC_MoveParent, ++/* 84340*/ OPC_MoveChild, 31, ++/* 84342*/ OPC_CheckInteger, 1, ++/* 84344*/ OPC_CheckType, MVT::i32, ++/* 84346*/ OPC_MoveParent, ++/* 84347*/ OPC_CheckType, MVT::v32i8, ++/* 84349*/ OPC_MoveParent, ++/* 84350*/ OPC_CheckType, MVT::v32i8, ++/* 84352*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 84354*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a), LASX256B:{ *:[v32i8] }:$b), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/* 84362*/ /*Scope*/ 17|128,5/*657*/, /*->85021*/ ++/* 84364*/ OPC_CheckChild0Same, 1, ++/* 84366*/ OPC_CheckChild1Same, 0, ++/* 84368*/ OPC_MoveParent, ++/* 84369*/ OPC_MoveChild1, ++/* 84370*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 84373*/ OPC_CheckChild0Integer, 1, ++/* 84375*/ OPC_CheckChild0Type, MVT::i32, ++/* 84377*/ OPC_CheckChild1Integer, 1, ++/* 84379*/ OPC_CheckChild1Type, MVT::i32, ++/* 84381*/ OPC_CheckChild2Integer, 1, ++/* 84383*/ OPC_CheckChild2Type, MVT::i32, ++/* 84385*/ OPC_CheckChild3Integer, 1, ++/* 84387*/ OPC_CheckChild3Type, MVT::i32, ++/* 84389*/ OPC_CheckChild4Integer, 1, ++/* 84391*/ OPC_CheckChild4Type, MVT::i32, ++/* 84393*/ OPC_MoveChild5, ++/* 84394*/ OPC_CheckInteger, 1, ++/* 84396*/ OPC_CheckType, MVT::i32, ++/* 84398*/ OPC_MoveParent, ++/* 84399*/ OPC_MoveChild6, ++/* 84400*/ OPC_CheckInteger, 1, ++/* 84402*/ OPC_CheckType, MVT::i32, ++/* 84404*/ OPC_MoveParent, ++/* 84405*/ OPC_MoveChild7, ++/* 84406*/ OPC_CheckInteger, 1, ++/* 84408*/ OPC_CheckType, MVT::i32, ++/* 84410*/ OPC_MoveParent, ++/* 84411*/ OPC_MoveChild, 8, ++/* 84413*/ OPC_CheckInteger, 1, ++/* 84415*/ OPC_CheckType, MVT::i32, ++/* 84417*/ OPC_MoveParent, ++/* 84418*/ OPC_MoveChild, 9, ++/* 84420*/ OPC_CheckInteger, 1, ++/* 84422*/ OPC_CheckType, MVT::i32, ++/* 84424*/ OPC_MoveParent, ++/* 84425*/ OPC_MoveChild, 10, ++/* 84427*/ OPC_CheckInteger, 1, ++/* 84429*/ OPC_CheckType, MVT::i32, ++/* 84431*/ OPC_MoveParent, ++/* 84432*/ OPC_MoveChild, 11, ++/* 84434*/ OPC_CheckInteger, 1, ++/* 84436*/ OPC_CheckType, MVT::i32, ++/* 84438*/ OPC_MoveParent, ++/* 84439*/ OPC_MoveChild, 12, ++/* 84441*/ OPC_CheckInteger, 1, ++/* 84443*/ OPC_CheckType, MVT::i32, ++/* 84445*/ OPC_MoveParent, ++/* 84446*/ OPC_MoveChild, 13, ++/* 84448*/ OPC_CheckInteger, 1, ++/* 84450*/ OPC_CheckType, MVT::i32, ++/* 84452*/ OPC_MoveParent, ++/* 84453*/ OPC_MoveChild, 14, ++/* 84455*/ OPC_CheckInteger, 1, ++/* 84457*/ OPC_CheckType, MVT::i32, ++/* 84459*/ OPC_MoveParent, ++/* 84460*/ OPC_MoveChild, 15, ++/* 84462*/ OPC_CheckInteger, 1, ++/* 84464*/ OPC_CheckType, MVT::i32, ++/* 84466*/ OPC_MoveParent, ++/* 84467*/ OPC_MoveChild, 16, ++/* 84469*/ OPC_CheckInteger, 1, ++/* 84471*/ OPC_CheckType, MVT::i32, ++/* 84473*/ OPC_MoveParent, ++/* 84474*/ OPC_MoveChild, 17, ++/* 84476*/ OPC_CheckInteger, 1, ++/* 84478*/ OPC_CheckType, MVT::i32, ++/* 84480*/ OPC_MoveParent, ++/* 84481*/ OPC_MoveChild, 18, ++/* 84483*/ OPC_CheckInteger, 1, ++/* 84485*/ OPC_CheckType, MVT::i32, ++/* 84487*/ OPC_MoveParent, ++/* 84488*/ OPC_MoveChild, 19, ++/* 84490*/ OPC_CheckInteger, 1, ++/* 84492*/ OPC_CheckType, MVT::i32, ++/* 84494*/ OPC_MoveParent, ++/* 84495*/ OPC_MoveChild, 20, ++/* 84497*/ OPC_CheckInteger, 1, ++/* 84499*/ OPC_CheckType, MVT::i32, ++/* 84501*/ OPC_MoveParent, ++/* 84502*/ OPC_MoveChild, 21, ++/* 84504*/ OPC_CheckInteger, 1, ++/* 84506*/ OPC_CheckType, MVT::i32, ++/* 84508*/ OPC_MoveParent, ++/* 84509*/ OPC_MoveChild, 22, ++/* 84511*/ OPC_CheckInteger, 1, ++/* 84513*/ OPC_CheckType, MVT::i32, ++/* 84515*/ OPC_MoveParent, ++/* 84516*/ OPC_MoveChild, 23, ++/* 84518*/ OPC_CheckInteger, 1, ++/* 84520*/ OPC_CheckType, MVT::i32, ++/* 84522*/ OPC_MoveParent, ++/* 84523*/ OPC_MoveChild, 24, ++/* 84525*/ OPC_CheckInteger, 1, ++/* 84527*/ OPC_CheckType, MVT::i32, ++/* 84529*/ OPC_MoveParent, ++/* 84530*/ OPC_MoveChild, 25, ++/* 84532*/ OPC_CheckInteger, 1, ++/* 84534*/ OPC_CheckType, MVT::i32, ++/* 84536*/ OPC_MoveParent, ++/* 84537*/ OPC_MoveChild, 26, ++/* 84539*/ OPC_CheckInteger, 1, ++/* 84541*/ OPC_CheckType, MVT::i32, ++/* 84543*/ OPC_MoveParent, ++/* 84544*/ OPC_MoveChild, 27, ++/* 84546*/ OPC_CheckInteger, 1, ++/* 84548*/ OPC_CheckType, MVT::i32, ++/* 84550*/ OPC_MoveParent, ++/* 84551*/ OPC_MoveChild, 28, ++/* 84553*/ OPC_CheckInteger, 1, ++/* 84555*/ OPC_CheckType, MVT::i32, ++/* 84557*/ OPC_MoveParent, ++/* 84558*/ OPC_MoveChild, 29, ++/* 84560*/ OPC_CheckInteger, 1, ++/* 84562*/ OPC_CheckType, MVT::i32, ++/* 84564*/ OPC_MoveParent, ++/* 84565*/ OPC_MoveChild, 30, ++/* 84567*/ OPC_CheckInteger, 1, ++/* 84569*/ OPC_CheckType, MVT::i32, ++/* 84571*/ OPC_MoveParent, ++/* 84572*/ OPC_MoveChild, 31, ++/* 84574*/ OPC_CheckInteger, 1, ++/* 84576*/ OPC_CheckType, MVT::i32, ++/* 84578*/ OPC_MoveParent, ++/* 84579*/ OPC_MoveParent, ++/* 84580*/ OPC_MoveParent, ++/* 84581*/ OPC_MoveChild1, ++/* 84582*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 84585*/ OPC_CheckChild0Integer, 7, ++/* 84587*/ OPC_CheckChild0Type, MVT::i32, ++/* 84589*/ OPC_CheckChild1Integer, 7, ++/* 84591*/ OPC_CheckChild1Type, MVT::i32, ++/* 84593*/ OPC_CheckChild2Integer, 7, ++/* 84595*/ OPC_CheckChild2Type, MVT::i32, ++/* 84597*/ OPC_CheckChild3Integer, 7, ++/* 84599*/ OPC_CheckChild3Type, MVT::i32, ++/* 84601*/ OPC_CheckChild4Integer, 7, ++/* 84603*/ OPC_CheckChild4Type, MVT::i32, ++/* 84605*/ OPC_MoveChild5, ++/* 84606*/ OPC_CheckInteger, 7, ++/* 84608*/ OPC_CheckType, MVT::i32, ++/* 84610*/ OPC_MoveParent, ++/* 84611*/ OPC_MoveChild6, ++/* 84612*/ OPC_CheckInteger, 7, ++/* 84614*/ OPC_CheckType, MVT::i32, ++/* 84616*/ OPC_MoveParent, ++/* 84617*/ OPC_MoveChild7, ++/* 84618*/ OPC_CheckInteger, 7, ++/* 84620*/ OPC_CheckType, MVT::i32, ++/* 84622*/ OPC_MoveParent, ++/* 84623*/ OPC_MoveChild, 8, ++/* 84625*/ OPC_CheckInteger, 7, ++/* 84627*/ OPC_CheckType, MVT::i32, ++/* 84629*/ OPC_MoveParent, ++/* 84630*/ OPC_MoveChild, 9, ++/* 84632*/ OPC_CheckInteger, 7, ++/* 84634*/ OPC_CheckType, MVT::i32, ++/* 84636*/ OPC_MoveParent, ++/* 84637*/ OPC_MoveChild, 10, ++/* 84639*/ OPC_CheckInteger, 7, ++/* 84641*/ OPC_CheckType, MVT::i32, ++/* 84643*/ OPC_MoveParent, ++/* 84644*/ OPC_MoveChild, 11, ++/* 84646*/ OPC_CheckInteger, 7, ++/* 84648*/ OPC_CheckType, MVT::i32, ++/* 84650*/ OPC_MoveParent, ++/* 84651*/ OPC_MoveChild, 12, ++/* 84653*/ OPC_CheckInteger, 7, ++/* 84655*/ OPC_CheckType, MVT::i32, ++/* 84657*/ OPC_MoveParent, ++/* 84658*/ OPC_MoveChild, 13, ++/* 84660*/ OPC_CheckInteger, 7, ++/* 84662*/ OPC_CheckType, MVT::i32, ++/* 84664*/ OPC_MoveParent, ++/* 84665*/ OPC_MoveChild, 14, ++/* 84667*/ OPC_CheckInteger, 7, ++/* 84669*/ OPC_CheckType, MVT::i32, ++/* 84671*/ OPC_MoveParent, ++/* 84672*/ OPC_MoveChild, 15, ++/* 84674*/ OPC_CheckInteger, 7, ++/* 84676*/ OPC_CheckType, MVT::i32, ++/* 84678*/ OPC_MoveParent, ++/* 84679*/ OPC_MoveChild, 16, ++/* 84681*/ OPC_CheckInteger, 7, ++/* 84683*/ OPC_CheckType, MVT::i32, ++/* 84685*/ OPC_MoveParent, ++/* 84686*/ OPC_MoveChild, 17, ++/* 84688*/ OPC_CheckInteger, 7, ++/* 84690*/ OPC_CheckType, MVT::i32, ++/* 84692*/ OPC_MoveParent, ++/* 84693*/ OPC_MoveChild, 18, ++/* 84695*/ OPC_CheckInteger, 7, ++/* 84697*/ OPC_CheckType, MVT::i32, ++/* 84699*/ OPC_MoveParent, ++/* 84700*/ OPC_MoveChild, 19, ++/* 84702*/ OPC_CheckInteger, 7, ++/* 84704*/ OPC_CheckType, MVT::i32, ++/* 84706*/ OPC_MoveParent, ++/* 84707*/ OPC_MoveChild, 20, ++/* 84709*/ OPC_CheckInteger, 7, ++/* 84711*/ OPC_CheckType, MVT::i32, ++/* 84713*/ OPC_MoveParent, ++/* 84714*/ OPC_MoveChild, 21, ++/* 84716*/ OPC_CheckInteger, 7, ++/* 84718*/ OPC_CheckType, MVT::i32, ++/* 84720*/ OPC_MoveParent, ++/* 84721*/ OPC_MoveChild, 22, ++/* 84723*/ OPC_CheckInteger, 7, ++/* 84725*/ OPC_CheckType, MVT::i32, ++/* 84727*/ OPC_MoveParent, ++/* 84728*/ OPC_MoveChild, 23, ++/* 84730*/ OPC_CheckInteger, 7, ++/* 84732*/ OPC_CheckType, MVT::i32, ++/* 84734*/ OPC_MoveParent, ++/* 84735*/ OPC_MoveChild, 24, ++/* 84737*/ OPC_CheckInteger, 7, ++/* 84739*/ OPC_CheckType, MVT::i32, ++/* 84741*/ OPC_MoveParent, ++/* 84742*/ OPC_MoveChild, 25, ++/* 84744*/ OPC_CheckInteger, 7, ++/* 84746*/ OPC_CheckType, MVT::i32, ++/* 84748*/ OPC_MoveParent, ++/* 84749*/ OPC_MoveChild, 26, ++/* 84751*/ OPC_CheckInteger, 7, ++/* 84753*/ OPC_CheckType, MVT::i32, ++/* 84755*/ OPC_MoveParent, ++/* 84756*/ OPC_MoveChild, 27, ++/* 84758*/ OPC_CheckInteger, 7, ++/* 84760*/ OPC_CheckType, MVT::i32, ++/* 84762*/ OPC_MoveParent, ++/* 84763*/ OPC_MoveChild, 28, ++/* 84765*/ OPC_CheckInteger, 7, ++/* 84767*/ OPC_CheckType, MVT::i32, ++/* 84769*/ OPC_MoveParent, ++/* 84770*/ OPC_MoveChild, 29, ++/* 84772*/ OPC_CheckInteger, 7, ++/* 84774*/ OPC_CheckType, MVT::i32, ++/* 84776*/ OPC_MoveParent, ++/* 84777*/ OPC_MoveChild, 30, ++/* 84779*/ OPC_CheckInteger, 7, ++/* 84781*/ OPC_CheckType, MVT::i32, ++/* 84783*/ OPC_MoveParent, ++/* 84784*/ OPC_MoveChild, 31, ++/* 84786*/ OPC_CheckInteger, 7, ++/* 84788*/ OPC_CheckType, MVT::i32, ++/* 84790*/ OPC_MoveParent, ++/* 84791*/ OPC_CheckType, MVT::v32i8, ++/* 84793*/ OPC_MoveParent, ++/* 84794*/ OPC_MoveParent, ++/* 84795*/ OPC_MoveParent, ++/* 84796*/ OPC_MoveChild1, ++/* 84797*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 84800*/ OPC_CheckChild0Integer, 1, ++/* 84802*/ OPC_CheckChild0Type, MVT::i32, ++/* 84804*/ OPC_CheckChild1Integer, 1, ++/* 84806*/ OPC_CheckChild1Type, MVT::i32, ++/* 84808*/ OPC_CheckChild2Integer, 1, ++/* 84810*/ OPC_CheckChild2Type, MVT::i32, ++/* 84812*/ OPC_CheckChild3Integer, 1, ++/* 84814*/ OPC_CheckChild3Type, MVT::i32, ++/* 84816*/ OPC_CheckChild4Integer, 1, ++/* 84818*/ OPC_CheckChild4Type, MVT::i32, ++/* 84820*/ OPC_MoveChild5, ++/* 84821*/ OPC_CheckInteger, 1, ++/* 84823*/ OPC_CheckType, MVT::i32, ++/* 84825*/ OPC_MoveParent, ++/* 84826*/ OPC_MoveChild6, ++/* 84827*/ OPC_CheckInteger, 1, ++/* 84829*/ OPC_CheckType, MVT::i32, ++/* 84831*/ OPC_MoveParent, ++/* 84832*/ OPC_MoveChild7, ++/* 84833*/ OPC_CheckInteger, 1, ++/* 84835*/ OPC_CheckType, MVT::i32, ++/* 84837*/ OPC_MoveParent, ++/* 84838*/ OPC_MoveChild, 8, ++/* 84840*/ OPC_CheckInteger, 1, ++/* 84842*/ OPC_CheckType, MVT::i32, ++/* 84844*/ OPC_MoveParent, ++/* 84845*/ OPC_MoveChild, 9, ++/* 84847*/ OPC_CheckInteger, 1, ++/* 84849*/ OPC_CheckType, MVT::i32, ++/* 84851*/ OPC_MoveParent, ++/* 84852*/ OPC_MoveChild, 10, ++/* 84854*/ OPC_CheckInteger, 1, ++/* 84856*/ OPC_CheckType, MVT::i32, ++/* 84858*/ OPC_MoveParent, ++/* 84859*/ OPC_MoveChild, 11, ++/* 84861*/ OPC_CheckInteger, 1, ++/* 84863*/ OPC_CheckType, MVT::i32, ++/* 84865*/ OPC_MoveParent, ++/* 84866*/ OPC_MoveChild, 12, ++/* 84868*/ OPC_CheckInteger, 1, ++/* 84870*/ OPC_CheckType, MVT::i32, ++/* 84872*/ OPC_MoveParent, ++/* 84873*/ OPC_MoveChild, 13, ++/* 84875*/ OPC_CheckInteger, 1, ++/* 84877*/ OPC_CheckType, MVT::i32, ++/* 84879*/ OPC_MoveParent, ++/* 84880*/ OPC_MoveChild, 14, ++/* 84882*/ OPC_CheckInteger, 1, ++/* 84884*/ OPC_CheckType, MVT::i32, ++/* 84886*/ OPC_MoveParent, ++/* 84887*/ OPC_MoveChild, 15, ++/* 84889*/ OPC_CheckInteger, 1, ++/* 84891*/ OPC_CheckType, MVT::i32, ++/* 84893*/ OPC_MoveParent, ++/* 84894*/ OPC_MoveChild, 16, ++/* 84896*/ OPC_CheckInteger, 1, ++/* 84898*/ OPC_CheckType, MVT::i32, ++/* 84900*/ OPC_MoveParent, ++/* 84901*/ OPC_MoveChild, 17, ++/* 84903*/ OPC_CheckInteger, 1, ++/* 84905*/ OPC_CheckType, MVT::i32, ++/* 84907*/ OPC_MoveParent, ++/* 84908*/ OPC_MoveChild, 18, ++/* 84910*/ OPC_CheckInteger, 1, ++/* 84912*/ OPC_CheckType, MVT::i32, ++/* 84914*/ OPC_MoveParent, ++/* 84915*/ OPC_MoveChild, 19, ++/* 84917*/ OPC_CheckInteger, 1, ++/* 84919*/ OPC_CheckType, MVT::i32, ++/* 84921*/ OPC_MoveParent, ++/* 84922*/ OPC_MoveChild, 20, ++/* 84924*/ OPC_CheckInteger, 1, ++/* 84926*/ OPC_CheckType, MVT::i32, ++/* 84928*/ OPC_MoveParent, ++/* 84929*/ OPC_MoveChild, 21, ++/* 84931*/ OPC_CheckInteger, 1, ++/* 84933*/ OPC_CheckType, MVT::i32, ++/* 84935*/ OPC_MoveParent, ++/* 84936*/ OPC_MoveChild, 22, ++/* 84938*/ OPC_CheckInteger, 1, ++/* 84940*/ OPC_CheckType, MVT::i32, ++/* 84942*/ OPC_MoveParent, ++/* 84943*/ OPC_MoveChild, 23, ++/* 84945*/ OPC_CheckInteger, 1, ++/* 84947*/ OPC_CheckType, MVT::i32, ++/* 84949*/ OPC_MoveParent, ++/* 84950*/ OPC_MoveChild, 24, ++/* 84952*/ OPC_CheckInteger, 1, ++/* 84954*/ OPC_CheckType, MVT::i32, ++/* 84956*/ OPC_MoveParent, ++/* 84957*/ OPC_MoveChild, 25, ++/* 84959*/ OPC_CheckInteger, 1, ++/* 84961*/ OPC_CheckType, MVT::i32, ++/* 84963*/ OPC_MoveParent, ++/* 84964*/ OPC_MoveChild, 26, ++/* 84966*/ OPC_CheckInteger, 1, ++/* 84968*/ OPC_CheckType, MVT::i32, ++/* 84970*/ OPC_MoveParent, ++/* 84971*/ OPC_MoveChild, 27, ++/* 84973*/ OPC_CheckInteger, 1, ++/* 84975*/ OPC_CheckType, MVT::i32, ++/* 84977*/ OPC_MoveParent, ++/* 84978*/ OPC_MoveChild, 28, ++/* 84980*/ OPC_CheckInteger, 1, ++/* 84982*/ OPC_CheckType, MVT::i32, ++/* 84984*/ OPC_MoveParent, ++/* 84985*/ OPC_MoveChild, 29, ++/* 84987*/ OPC_CheckInteger, 1, ++/* 84989*/ OPC_CheckType, MVT::i32, ++/* 84991*/ OPC_MoveParent, ++/* 84992*/ OPC_MoveChild, 30, ++/* 84994*/ OPC_CheckInteger, 1, ++/* 84996*/ OPC_CheckType, MVT::i32, ++/* 84998*/ OPC_MoveParent, ++/* 84999*/ OPC_MoveChild, 31, ++/* 85001*/ OPC_CheckInteger, 1, ++/* 85003*/ OPC_CheckType, MVT::i32, ++/* 85005*/ OPC_MoveParent, ++/* 85006*/ OPC_CheckType, MVT::v32i8, ++/* 85008*/ OPC_MoveParent, ++/* 85009*/ OPC_CheckType, MVT::v32i8, ++/* 85011*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 85013*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a), LASX256B:{ *:[v32i8] }:$b), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/* 85021*/ 0, /*End of Scope*/ ++/* 85022*/ /*Scope*/ 42|128,10/*1322*/, /*->86346*/ ++/* 85024*/ OPC_CheckChild0Same, 1, ++/* 85026*/ OPC_MoveChild1, ++/* 85027*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/* 85030*/ OPC_Scope, 15|128,5/*655*/, /*->85688*/ // 2 children in Scope ++/* 85033*/ OPC_MoveChild0, ++/* 85034*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 85037*/ OPC_CheckChild0Integer, 1, ++/* 85039*/ OPC_CheckChild0Type, MVT::i32, ++/* 85041*/ OPC_CheckChild1Integer, 1, ++/* 85043*/ OPC_CheckChild1Type, MVT::i32, ++/* 85045*/ OPC_CheckChild2Integer, 1, ++/* 85047*/ OPC_CheckChild2Type, MVT::i32, ++/* 85049*/ OPC_CheckChild3Integer, 1, ++/* 85051*/ OPC_CheckChild3Type, MVT::i32, ++/* 85053*/ OPC_CheckChild4Integer, 1, ++/* 85055*/ OPC_CheckChild4Type, MVT::i32, ++/* 85057*/ OPC_MoveChild5, ++/* 85058*/ OPC_CheckInteger, 1, ++/* 85060*/ OPC_CheckType, MVT::i32, ++/* 85062*/ OPC_MoveParent, ++/* 85063*/ OPC_MoveChild6, ++/* 85064*/ OPC_CheckInteger, 1, ++/* 85066*/ OPC_CheckType, MVT::i32, ++/* 85068*/ OPC_MoveParent, ++/* 85069*/ OPC_MoveChild7, ++/* 85070*/ OPC_CheckInteger, 1, ++/* 85072*/ OPC_CheckType, MVT::i32, ++/* 85074*/ OPC_MoveParent, ++/* 85075*/ OPC_MoveChild, 8, ++/* 85077*/ OPC_CheckInteger, 1, ++/* 85079*/ OPC_CheckType, MVT::i32, ++/* 85081*/ OPC_MoveParent, ++/* 85082*/ OPC_MoveChild, 9, ++/* 85084*/ OPC_CheckInteger, 1, ++/* 85086*/ OPC_CheckType, MVT::i32, ++/* 85088*/ OPC_MoveParent, ++/* 85089*/ OPC_MoveChild, 10, ++/* 85091*/ OPC_CheckInteger, 1, ++/* 85093*/ OPC_CheckType, MVT::i32, ++/* 85095*/ OPC_MoveParent, ++/* 85096*/ OPC_MoveChild, 11, ++/* 85098*/ OPC_CheckInteger, 1, ++/* 85100*/ OPC_CheckType, MVT::i32, ++/* 85102*/ OPC_MoveParent, ++/* 85103*/ OPC_MoveChild, 12, ++/* 85105*/ OPC_CheckInteger, 1, ++/* 85107*/ OPC_CheckType, MVT::i32, ++/* 85109*/ OPC_MoveParent, ++/* 85110*/ OPC_MoveChild, 13, ++/* 85112*/ OPC_CheckInteger, 1, ++/* 85114*/ OPC_CheckType, MVT::i32, ++/* 85116*/ OPC_MoveParent, ++/* 85117*/ OPC_MoveChild, 14, ++/* 85119*/ OPC_CheckInteger, 1, ++/* 85121*/ OPC_CheckType, MVT::i32, ++/* 85123*/ OPC_MoveParent, ++/* 85124*/ OPC_MoveChild, 15, ++/* 85126*/ OPC_CheckInteger, 1, ++/* 85128*/ OPC_CheckType, MVT::i32, ++/* 85130*/ OPC_MoveParent, ++/* 85131*/ OPC_MoveChild, 16, ++/* 85133*/ OPC_CheckInteger, 1, ++/* 85135*/ OPC_CheckType, MVT::i32, ++/* 85137*/ OPC_MoveParent, ++/* 85138*/ OPC_MoveChild, 17, ++/* 85140*/ OPC_CheckInteger, 1, ++/* 85142*/ OPC_CheckType, MVT::i32, ++/* 85144*/ OPC_MoveParent, ++/* 85145*/ OPC_MoveChild, 18, ++/* 85147*/ OPC_CheckInteger, 1, ++/* 85149*/ OPC_CheckType, MVT::i32, ++/* 85151*/ OPC_MoveParent, ++/* 85152*/ OPC_MoveChild, 19, ++/* 85154*/ OPC_CheckInteger, 1, ++/* 85156*/ OPC_CheckType, MVT::i32, ++/* 85158*/ OPC_MoveParent, ++/* 85159*/ OPC_MoveChild, 20, ++/* 85161*/ OPC_CheckInteger, 1, ++/* 85163*/ OPC_CheckType, MVT::i32, ++/* 85165*/ OPC_MoveParent, ++/* 85166*/ OPC_MoveChild, 21, ++/* 85168*/ OPC_CheckInteger, 1, ++/* 85170*/ OPC_CheckType, MVT::i32, ++/* 85172*/ OPC_MoveParent, ++/* 85173*/ OPC_MoveChild, 22, ++/* 85175*/ OPC_CheckInteger, 1, ++/* 85177*/ OPC_CheckType, MVT::i32, ++/* 85179*/ OPC_MoveParent, ++/* 85180*/ OPC_MoveChild, 23, ++/* 85182*/ OPC_CheckInteger, 1, ++/* 85184*/ OPC_CheckType, MVT::i32, ++/* 85186*/ OPC_MoveParent, ++/* 85187*/ OPC_MoveChild, 24, ++/* 85189*/ OPC_CheckInteger, 1, ++/* 85191*/ OPC_CheckType, MVT::i32, ++/* 85193*/ OPC_MoveParent, ++/* 85194*/ OPC_MoveChild, 25, ++/* 85196*/ OPC_CheckInteger, 1, ++/* 85198*/ OPC_CheckType, MVT::i32, ++/* 85200*/ OPC_MoveParent, ++/* 85201*/ OPC_MoveChild, 26, ++/* 85203*/ OPC_CheckInteger, 1, ++/* 85205*/ OPC_CheckType, MVT::i32, ++/* 85207*/ OPC_MoveParent, ++/* 85208*/ OPC_MoveChild, 27, ++/* 85210*/ OPC_CheckInteger, 1, ++/* 85212*/ OPC_CheckType, MVT::i32, ++/* 85214*/ OPC_MoveParent, ++/* 85215*/ OPC_MoveChild, 28, ++/* 85217*/ OPC_CheckInteger, 1, ++/* 85219*/ OPC_CheckType, MVT::i32, ++/* 85221*/ OPC_MoveParent, ++/* 85222*/ OPC_MoveChild, 29, ++/* 85224*/ OPC_CheckInteger, 1, ++/* 85226*/ OPC_CheckType, MVT::i32, ++/* 85228*/ OPC_MoveParent, ++/* 85229*/ OPC_MoveChild, 30, ++/* 85231*/ OPC_CheckInteger, 1, ++/* 85233*/ OPC_CheckType, MVT::i32, ++/* 85235*/ OPC_MoveParent, ++/* 85236*/ OPC_MoveChild, 31, ++/* 85238*/ OPC_CheckInteger, 1, ++/* 85240*/ OPC_CheckType, MVT::i32, ++/* 85242*/ OPC_MoveParent, ++/* 85243*/ OPC_MoveParent, ++/* 85244*/ OPC_CheckChild1Same, 0, ++/* 85246*/ OPC_MoveParent, ++/* 85247*/ OPC_MoveParent, ++/* 85248*/ OPC_MoveChild1, ++/* 85249*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 85252*/ OPC_CheckChild0Integer, 7, ++/* 85254*/ OPC_CheckChild0Type, MVT::i32, ++/* 85256*/ OPC_CheckChild1Integer, 7, ++/* 85258*/ OPC_CheckChild1Type, MVT::i32, ++/* 85260*/ OPC_CheckChild2Integer, 7, ++/* 85262*/ OPC_CheckChild2Type, MVT::i32, ++/* 85264*/ OPC_CheckChild3Integer, 7, ++/* 85266*/ OPC_CheckChild3Type, MVT::i32, ++/* 85268*/ OPC_CheckChild4Integer, 7, ++/* 85270*/ OPC_CheckChild4Type, MVT::i32, ++/* 85272*/ OPC_MoveChild5, ++/* 85273*/ OPC_CheckInteger, 7, ++/* 85275*/ OPC_CheckType, MVT::i32, ++/* 85277*/ OPC_MoveParent, ++/* 85278*/ OPC_MoveChild6, ++/* 85279*/ OPC_CheckInteger, 7, ++/* 85281*/ OPC_CheckType, MVT::i32, ++/* 85283*/ OPC_MoveParent, ++/* 85284*/ OPC_MoveChild7, ++/* 85285*/ OPC_CheckInteger, 7, ++/* 85287*/ OPC_CheckType, MVT::i32, ++/* 85289*/ OPC_MoveParent, ++/* 85290*/ OPC_MoveChild, 8, ++/* 85292*/ OPC_CheckInteger, 7, ++/* 85294*/ OPC_CheckType, MVT::i32, ++/* 85296*/ OPC_MoveParent, ++/* 85297*/ OPC_MoveChild, 9, ++/* 85299*/ OPC_CheckInteger, 7, ++/* 85301*/ OPC_CheckType, MVT::i32, ++/* 85303*/ OPC_MoveParent, ++/* 85304*/ OPC_MoveChild, 10, ++/* 85306*/ OPC_CheckInteger, 7, ++/* 85308*/ OPC_CheckType, MVT::i32, ++/* 85310*/ OPC_MoveParent, ++/* 85311*/ OPC_MoveChild, 11, ++/* 85313*/ OPC_CheckInteger, 7, ++/* 85315*/ OPC_CheckType, MVT::i32, ++/* 85317*/ OPC_MoveParent, ++/* 85318*/ OPC_MoveChild, 12, ++/* 85320*/ OPC_CheckInteger, 7, ++/* 85322*/ OPC_CheckType, MVT::i32, ++/* 85324*/ OPC_MoveParent, ++/* 85325*/ OPC_MoveChild, 13, ++/* 85327*/ OPC_CheckInteger, 7, ++/* 85329*/ OPC_CheckType, MVT::i32, ++/* 85331*/ OPC_MoveParent, ++/* 85332*/ OPC_MoveChild, 14, ++/* 85334*/ OPC_CheckInteger, 7, ++/* 85336*/ OPC_CheckType, MVT::i32, ++/* 85338*/ OPC_MoveParent, ++/* 85339*/ OPC_MoveChild, 15, ++/* 85341*/ OPC_CheckInteger, 7, ++/* 85343*/ OPC_CheckType, MVT::i32, ++/* 85345*/ OPC_MoveParent, ++/* 85346*/ OPC_MoveChild, 16, ++/* 85348*/ OPC_CheckInteger, 7, ++/* 85350*/ OPC_CheckType, MVT::i32, ++/* 85352*/ OPC_MoveParent, ++/* 85353*/ OPC_MoveChild, 17, ++/* 85355*/ OPC_CheckInteger, 7, ++/* 85357*/ OPC_CheckType, MVT::i32, ++/* 85359*/ OPC_MoveParent, ++/* 85360*/ OPC_MoveChild, 18, ++/* 85362*/ OPC_CheckInteger, 7, ++/* 85364*/ OPC_CheckType, MVT::i32, ++/* 85366*/ OPC_MoveParent, ++/* 85367*/ OPC_MoveChild, 19, ++/* 85369*/ OPC_CheckInteger, 7, ++/* 85371*/ OPC_CheckType, MVT::i32, ++/* 85373*/ OPC_MoveParent, ++/* 85374*/ OPC_MoveChild, 20, ++/* 85376*/ OPC_CheckInteger, 7, ++/* 85378*/ OPC_CheckType, MVT::i32, ++/* 85380*/ OPC_MoveParent, ++/* 85381*/ OPC_MoveChild, 21, ++/* 85383*/ OPC_CheckInteger, 7, ++/* 85385*/ OPC_CheckType, MVT::i32, ++/* 85387*/ OPC_MoveParent, ++/* 85388*/ OPC_MoveChild, 22, ++/* 85390*/ OPC_CheckInteger, 7, ++/* 85392*/ OPC_CheckType, MVT::i32, ++/* 85394*/ OPC_MoveParent, ++/* 85395*/ OPC_MoveChild, 23, ++/* 85397*/ OPC_CheckInteger, 7, ++/* 85399*/ OPC_CheckType, MVT::i32, ++/* 85401*/ OPC_MoveParent, ++/* 85402*/ OPC_MoveChild, 24, ++/* 85404*/ OPC_CheckInteger, 7, ++/* 85406*/ OPC_CheckType, MVT::i32, ++/* 85408*/ OPC_MoveParent, ++/* 85409*/ OPC_MoveChild, 25, ++/* 85411*/ OPC_CheckInteger, 7, ++/* 85413*/ OPC_CheckType, MVT::i32, ++/* 85415*/ OPC_MoveParent, ++/* 85416*/ OPC_MoveChild, 26, ++/* 85418*/ OPC_CheckInteger, 7, ++/* 85420*/ OPC_CheckType, MVT::i32, ++/* 85422*/ OPC_MoveParent, ++/* 85423*/ OPC_MoveChild, 27, ++/* 85425*/ OPC_CheckInteger, 7, ++/* 85427*/ OPC_CheckType, MVT::i32, ++/* 85429*/ OPC_MoveParent, ++/* 85430*/ OPC_MoveChild, 28, ++/* 85432*/ OPC_CheckInteger, 7, ++/* 85434*/ OPC_CheckType, MVT::i32, ++/* 85436*/ OPC_MoveParent, ++/* 85437*/ OPC_MoveChild, 29, ++/* 85439*/ OPC_CheckInteger, 7, ++/* 85441*/ OPC_CheckType, MVT::i32, ++/* 85443*/ OPC_MoveParent, ++/* 85444*/ OPC_MoveChild, 30, ++/* 85446*/ OPC_CheckInteger, 7, ++/* 85448*/ OPC_CheckType, MVT::i32, ++/* 85450*/ OPC_MoveParent, ++/* 85451*/ OPC_MoveChild, 31, ++/* 85453*/ OPC_CheckInteger, 7, ++/* 85455*/ OPC_CheckType, MVT::i32, ++/* 85457*/ OPC_MoveParent, ++/* 85458*/ OPC_CheckType, MVT::v32i8, ++/* 85460*/ OPC_MoveParent, ++/* 85461*/ OPC_MoveParent, ++/* 85462*/ OPC_MoveParent, ++/* 85463*/ OPC_MoveChild1, ++/* 85464*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 85467*/ OPC_CheckChild0Integer, 1, ++/* 85469*/ OPC_CheckChild0Type, MVT::i32, ++/* 85471*/ OPC_CheckChild1Integer, 1, ++/* 85473*/ OPC_CheckChild1Type, MVT::i32, ++/* 85475*/ OPC_CheckChild2Integer, 1, ++/* 85477*/ OPC_CheckChild2Type, MVT::i32, ++/* 85479*/ OPC_CheckChild3Integer, 1, ++/* 85481*/ OPC_CheckChild3Type, MVT::i32, ++/* 85483*/ OPC_CheckChild4Integer, 1, ++/* 85485*/ OPC_CheckChild4Type, MVT::i32, ++/* 85487*/ OPC_MoveChild5, ++/* 85488*/ OPC_CheckInteger, 1, ++/* 85490*/ OPC_CheckType, MVT::i32, ++/* 85492*/ OPC_MoveParent, ++/* 85493*/ OPC_MoveChild6, ++/* 85494*/ OPC_CheckInteger, 1, ++/* 85496*/ OPC_CheckType, MVT::i32, ++/* 85498*/ OPC_MoveParent, ++/* 85499*/ OPC_MoveChild7, ++/* 85500*/ OPC_CheckInteger, 1, ++/* 85502*/ OPC_CheckType, MVT::i32, ++/* 85504*/ OPC_MoveParent, ++/* 85505*/ OPC_MoveChild, 8, ++/* 85507*/ OPC_CheckInteger, 1, ++/* 85509*/ OPC_CheckType, MVT::i32, ++/* 85511*/ OPC_MoveParent, ++/* 85512*/ OPC_MoveChild, 9, ++/* 85514*/ OPC_CheckInteger, 1, ++/* 85516*/ OPC_CheckType, MVT::i32, ++/* 85518*/ OPC_MoveParent, ++/* 85519*/ OPC_MoveChild, 10, ++/* 85521*/ OPC_CheckInteger, 1, ++/* 85523*/ OPC_CheckType, MVT::i32, ++/* 85525*/ OPC_MoveParent, ++/* 85526*/ OPC_MoveChild, 11, ++/* 85528*/ OPC_CheckInteger, 1, ++/* 85530*/ OPC_CheckType, MVT::i32, ++/* 85532*/ OPC_MoveParent, ++/* 85533*/ OPC_MoveChild, 12, ++/* 85535*/ OPC_CheckInteger, 1, ++/* 85537*/ OPC_CheckType, MVT::i32, ++/* 85539*/ OPC_MoveParent, ++/* 85540*/ OPC_MoveChild, 13, ++/* 85542*/ OPC_CheckInteger, 1, ++/* 85544*/ OPC_CheckType, MVT::i32, ++/* 85546*/ OPC_MoveParent, ++/* 85547*/ OPC_MoveChild, 14, ++/* 85549*/ OPC_CheckInteger, 1, ++/* 85551*/ OPC_CheckType, MVT::i32, ++/* 85553*/ OPC_MoveParent, ++/* 85554*/ OPC_MoveChild, 15, ++/* 85556*/ OPC_CheckInteger, 1, ++/* 85558*/ OPC_CheckType, MVT::i32, ++/* 85560*/ OPC_MoveParent, ++/* 85561*/ OPC_MoveChild, 16, ++/* 85563*/ OPC_CheckInteger, 1, ++/* 85565*/ OPC_CheckType, MVT::i32, ++/* 85567*/ OPC_MoveParent, ++/* 85568*/ OPC_MoveChild, 17, ++/* 85570*/ OPC_CheckInteger, 1, ++/* 85572*/ OPC_CheckType, MVT::i32, ++/* 85574*/ OPC_MoveParent, ++/* 85575*/ OPC_MoveChild, 18, ++/* 85577*/ OPC_CheckInteger, 1, ++/* 85579*/ OPC_CheckType, MVT::i32, ++/* 85581*/ OPC_MoveParent, ++/* 85582*/ OPC_MoveChild, 19, ++/* 85584*/ OPC_CheckInteger, 1, ++/* 85586*/ OPC_CheckType, MVT::i32, ++/* 85588*/ OPC_MoveParent, ++/* 85589*/ OPC_MoveChild, 20, ++/* 85591*/ OPC_CheckInteger, 1, ++/* 85593*/ OPC_CheckType, MVT::i32, ++/* 85595*/ OPC_MoveParent, ++/* 85596*/ OPC_MoveChild, 21, ++/* 85598*/ OPC_CheckInteger, 1, ++/* 85600*/ OPC_CheckType, MVT::i32, ++/* 85602*/ OPC_MoveParent, ++/* 85603*/ OPC_MoveChild, 22, ++/* 85605*/ OPC_CheckInteger, 1, ++/* 85607*/ OPC_CheckType, MVT::i32, ++/* 85609*/ OPC_MoveParent, ++/* 85610*/ OPC_MoveChild, 23, ++/* 85612*/ OPC_CheckInteger, 1, ++/* 85614*/ OPC_CheckType, MVT::i32, ++/* 85616*/ OPC_MoveParent, ++/* 85617*/ OPC_MoveChild, 24, ++/* 85619*/ OPC_CheckInteger, 1, ++/* 85621*/ OPC_CheckType, MVT::i32, ++/* 85623*/ OPC_MoveParent, ++/* 85624*/ OPC_MoveChild, 25, ++/* 85626*/ OPC_CheckInteger, 1, ++/* 85628*/ OPC_CheckType, MVT::i32, ++/* 85630*/ OPC_MoveParent, ++/* 85631*/ OPC_MoveChild, 26, ++/* 85633*/ OPC_CheckInteger, 1, ++/* 85635*/ OPC_CheckType, MVT::i32, ++/* 85637*/ OPC_MoveParent, ++/* 85638*/ OPC_MoveChild, 27, ++/* 85640*/ OPC_CheckInteger, 1, ++/* 85642*/ OPC_CheckType, MVT::i32, ++/* 85644*/ OPC_MoveParent, ++/* 85645*/ OPC_MoveChild, 28, ++/* 85647*/ OPC_CheckInteger, 1, ++/* 85649*/ OPC_CheckType, MVT::i32, ++/* 85651*/ OPC_MoveParent, ++/* 85652*/ OPC_MoveChild, 29, ++/* 85654*/ OPC_CheckInteger, 1, ++/* 85656*/ OPC_CheckType, MVT::i32, ++/* 85658*/ OPC_MoveParent, ++/* 85659*/ OPC_MoveChild, 30, ++/* 85661*/ OPC_CheckInteger, 1, ++/* 85663*/ OPC_CheckType, MVT::i32, ++/* 85665*/ OPC_MoveParent, ++/* 85666*/ OPC_MoveChild, 31, ++/* 85668*/ OPC_CheckInteger, 1, ++/* 85670*/ OPC_CheckType, MVT::i32, ++/* 85672*/ OPC_MoveParent, ++/* 85673*/ OPC_CheckType, MVT::v32i8, ++/* 85675*/ OPC_MoveParent, ++/* 85676*/ OPC_CheckType, MVT::v32i8, ++/* 85678*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 85680*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a), LASX256B:{ *:[v32i8] }:$b), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/* 85688*/ /*Scope*/ 15|128,5/*655*/, /*->86345*/ ++/* 85690*/ OPC_CheckChild0Same, 0, ++/* 85692*/ OPC_MoveChild1, ++/* 85693*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 85696*/ OPC_CheckChild0Integer, 1, ++/* 85698*/ OPC_CheckChild0Type, MVT::i32, ++/* 85700*/ OPC_CheckChild1Integer, 1, ++/* 85702*/ OPC_CheckChild1Type, MVT::i32, ++/* 85704*/ OPC_CheckChild2Integer, 1, ++/* 85706*/ OPC_CheckChild2Type, MVT::i32, ++/* 85708*/ OPC_CheckChild3Integer, 1, ++/* 85710*/ OPC_CheckChild3Type, MVT::i32, ++/* 85712*/ OPC_CheckChild4Integer, 1, ++/* 85714*/ OPC_CheckChild4Type, MVT::i32, ++/* 85716*/ OPC_MoveChild5, ++/* 85717*/ OPC_CheckInteger, 1, ++/* 85719*/ OPC_CheckType, MVT::i32, ++/* 85721*/ OPC_MoveParent, ++/* 85722*/ OPC_MoveChild6, ++/* 85723*/ OPC_CheckInteger, 1, ++/* 85725*/ OPC_CheckType, MVT::i32, ++/* 85727*/ OPC_MoveParent, ++/* 85728*/ OPC_MoveChild7, ++/* 85729*/ OPC_CheckInteger, 1, ++/* 85731*/ OPC_CheckType, MVT::i32, ++/* 85733*/ OPC_MoveParent, ++/* 85734*/ OPC_MoveChild, 8, ++/* 85736*/ OPC_CheckInteger, 1, ++/* 85738*/ OPC_CheckType, MVT::i32, ++/* 85740*/ OPC_MoveParent, ++/* 85741*/ OPC_MoveChild, 9, ++/* 85743*/ OPC_CheckInteger, 1, ++/* 85745*/ OPC_CheckType, MVT::i32, ++/* 85747*/ OPC_MoveParent, ++/* 85748*/ OPC_MoveChild, 10, ++/* 85750*/ OPC_CheckInteger, 1, ++/* 85752*/ OPC_CheckType, MVT::i32, ++/* 85754*/ OPC_MoveParent, ++/* 85755*/ OPC_MoveChild, 11, ++/* 85757*/ OPC_CheckInteger, 1, ++/* 85759*/ OPC_CheckType, MVT::i32, ++/* 85761*/ OPC_MoveParent, ++/* 85762*/ OPC_MoveChild, 12, ++/* 85764*/ OPC_CheckInteger, 1, ++/* 85766*/ OPC_CheckType, MVT::i32, ++/* 85768*/ OPC_MoveParent, ++/* 85769*/ OPC_MoveChild, 13, ++/* 85771*/ OPC_CheckInteger, 1, ++/* 85773*/ OPC_CheckType, MVT::i32, ++/* 85775*/ OPC_MoveParent, ++/* 85776*/ OPC_MoveChild, 14, ++/* 85778*/ OPC_CheckInteger, 1, ++/* 85780*/ OPC_CheckType, MVT::i32, ++/* 85782*/ OPC_MoveParent, ++/* 85783*/ OPC_MoveChild, 15, ++/* 85785*/ OPC_CheckInteger, 1, ++/* 85787*/ OPC_CheckType, MVT::i32, ++/* 85789*/ OPC_MoveParent, ++/* 85790*/ OPC_MoveChild, 16, ++/* 85792*/ OPC_CheckInteger, 1, ++/* 85794*/ OPC_CheckType, MVT::i32, ++/* 85796*/ OPC_MoveParent, ++/* 85797*/ OPC_MoveChild, 17, ++/* 85799*/ OPC_CheckInteger, 1, ++/* 85801*/ OPC_CheckType, MVT::i32, ++/* 85803*/ OPC_MoveParent, ++/* 85804*/ OPC_MoveChild, 18, ++/* 85806*/ OPC_CheckInteger, 1, ++/* 85808*/ OPC_CheckType, MVT::i32, ++/* 85810*/ OPC_MoveParent, ++/* 85811*/ OPC_MoveChild, 19, ++/* 85813*/ OPC_CheckInteger, 1, ++/* 85815*/ OPC_CheckType, MVT::i32, ++/* 85817*/ OPC_MoveParent, ++/* 85818*/ OPC_MoveChild, 20, ++/* 85820*/ OPC_CheckInteger, 1, ++/* 85822*/ OPC_CheckType, MVT::i32, ++/* 85824*/ OPC_MoveParent, ++/* 85825*/ OPC_MoveChild, 21, ++/* 85827*/ OPC_CheckInteger, 1, ++/* 85829*/ OPC_CheckType, MVT::i32, ++/* 85831*/ OPC_MoveParent, ++/* 85832*/ OPC_MoveChild, 22, ++/* 85834*/ OPC_CheckInteger, 1, ++/* 85836*/ OPC_CheckType, MVT::i32, ++/* 85838*/ OPC_MoveParent, ++/* 85839*/ OPC_MoveChild, 23, ++/* 85841*/ OPC_CheckInteger, 1, ++/* 85843*/ OPC_CheckType, MVT::i32, ++/* 85845*/ OPC_MoveParent, ++/* 85846*/ OPC_MoveChild, 24, ++/* 85848*/ OPC_CheckInteger, 1, ++/* 85850*/ OPC_CheckType, MVT::i32, ++/* 85852*/ OPC_MoveParent, ++/* 85853*/ OPC_MoveChild, 25, ++/* 85855*/ OPC_CheckInteger, 1, ++/* 85857*/ OPC_CheckType, MVT::i32, ++/* 85859*/ OPC_MoveParent, ++/* 85860*/ OPC_MoveChild, 26, ++/* 85862*/ OPC_CheckInteger, 1, ++/* 85864*/ OPC_CheckType, MVT::i32, ++/* 85866*/ OPC_MoveParent, ++/* 85867*/ OPC_MoveChild, 27, ++/* 85869*/ OPC_CheckInteger, 1, ++/* 85871*/ OPC_CheckType, MVT::i32, ++/* 85873*/ OPC_MoveParent, ++/* 85874*/ OPC_MoveChild, 28, ++/* 85876*/ OPC_CheckInteger, 1, ++/* 85878*/ OPC_CheckType, MVT::i32, ++/* 85880*/ OPC_MoveParent, ++/* 85881*/ OPC_MoveChild, 29, ++/* 85883*/ OPC_CheckInteger, 1, ++/* 85885*/ OPC_CheckType, MVT::i32, ++/* 85887*/ OPC_MoveParent, ++/* 85888*/ OPC_MoveChild, 30, ++/* 85890*/ OPC_CheckInteger, 1, ++/* 85892*/ OPC_CheckType, MVT::i32, ++/* 85894*/ OPC_MoveParent, ++/* 85895*/ OPC_MoveChild, 31, ++/* 85897*/ OPC_CheckInteger, 1, ++/* 85899*/ OPC_CheckType, MVT::i32, ++/* 85901*/ OPC_MoveParent, ++/* 85902*/ OPC_MoveParent, ++/* 85903*/ OPC_MoveParent, ++/* 85904*/ OPC_MoveParent, ++/* 85905*/ OPC_MoveChild1, ++/* 85906*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 85909*/ OPC_CheckChild0Integer, 7, ++/* 85911*/ OPC_CheckChild0Type, MVT::i32, ++/* 85913*/ OPC_CheckChild1Integer, 7, ++/* 85915*/ OPC_CheckChild1Type, MVT::i32, ++/* 85917*/ OPC_CheckChild2Integer, 7, ++/* 85919*/ OPC_CheckChild2Type, MVT::i32, ++/* 85921*/ OPC_CheckChild3Integer, 7, ++/* 85923*/ OPC_CheckChild3Type, MVT::i32, ++/* 85925*/ OPC_CheckChild4Integer, 7, ++/* 85927*/ OPC_CheckChild4Type, MVT::i32, ++/* 85929*/ OPC_MoveChild5, ++/* 85930*/ OPC_CheckInteger, 7, ++/* 85932*/ OPC_CheckType, MVT::i32, ++/* 85934*/ OPC_MoveParent, ++/* 85935*/ OPC_MoveChild6, ++/* 85936*/ OPC_CheckInteger, 7, ++/* 85938*/ OPC_CheckType, MVT::i32, ++/* 85940*/ OPC_MoveParent, ++/* 85941*/ OPC_MoveChild7, ++/* 85942*/ OPC_CheckInteger, 7, ++/* 85944*/ OPC_CheckType, MVT::i32, ++/* 85946*/ OPC_MoveParent, ++/* 85947*/ OPC_MoveChild, 8, ++/* 85949*/ OPC_CheckInteger, 7, ++/* 85951*/ OPC_CheckType, MVT::i32, ++/* 85953*/ OPC_MoveParent, ++/* 85954*/ OPC_MoveChild, 9, ++/* 85956*/ OPC_CheckInteger, 7, ++/* 85958*/ OPC_CheckType, MVT::i32, ++/* 85960*/ OPC_MoveParent, ++/* 85961*/ OPC_MoveChild, 10, ++/* 85963*/ OPC_CheckInteger, 7, ++/* 85965*/ OPC_CheckType, MVT::i32, ++/* 85967*/ OPC_MoveParent, ++/* 85968*/ OPC_MoveChild, 11, ++/* 85970*/ OPC_CheckInteger, 7, ++/* 85972*/ OPC_CheckType, MVT::i32, ++/* 85974*/ OPC_MoveParent, ++/* 85975*/ OPC_MoveChild, 12, ++/* 85977*/ OPC_CheckInteger, 7, ++/* 85979*/ OPC_CheckType, MVT::i32, ++/* 85981*/ OPC_MoveParent, ++/* 85982*/ OPC_MoveChild, 13, ++/* 85984*/ OPC_CheckInteger, 7, ++/* 85986*/ OPC_CheckType, MVT::i32, ++/* 85988*/ OPC_MoveParent, ++/* 85989*/ OPC_MoveChild, 14, ++/* 85991*/ OPC_CheckInteger, 7, ++/* 85993*/ OPC_CheckType, MVT::i32, ++/* 85995*/ OPC_MoveParent, ++/* 85996*/ OPC_MoveChild, 15, ++/* 85998*/ OPC_CheckInteger, 7, ++/* 86000*/ OPC_CheckType, MVT::i32, ++/* 86002*/ OPC_MoveParent, ++/* 86003*/ OPC_MoveChild, 16, ++/* 86005*/ OPC_CheckInteger, 7, ++/* 86007*/ OPC_CheckType, MVT::i32, ++/* 86009*/ OPC_MoveParent, ++/* 86010*/ OPC_MoveChild, 17, ++/* 86012*/ OPC_CheckInteger, 7, ++/* 86014*/ OPC_CheckType, MVT::i32, ++/* 86016*/ OPC_MoveParent, ++/* 86017*/ OPC_MoveChild, 18, ++/* 86019*/ OPC_CheckInteger, 7, ++/* 86021*/ OPC_CheckType, MVT::i32, ++/* 86023*/ OPC_MoveParent, ++/* 86024*/ OPC_MoveChild, 19, ++/* 86026*/ OPC_CheckInteger, 7, ++/* 86028*/ OPC_CheckType, MVT::i32, ++/* 86030*/ OPC_MoveParent, ++/* 86031*/ OPC_MoveChild, 20, ++/* 86033*/ OPC_CheckInteger, 7, ++/* 86035*/ OPC_CheckType, MVT::i32, ++/* 86037*/ OPC_MoveParent, ++/* 86038*/ OPC_MoveChild, 21, ++/* 86040*/ OPC_CheckInteger, 7, ++/* 86042*/ OPC_CheckType, MVT::i32, ++/* 86044*/ OPC_MoveParent, ++/* 86045*/ OPC_MoveChild, 22, ++/* 86047*/ OPC_CheckInteger, 7, ++/* 86049*/ OPC_CheckType, MVT::i32, ++/* 86051*/ OPC_MoveParent, ++/* 86052*/ OPC_MoveChild, 23, ++/* 86054*/ OPC_CheckInteger, 7, ++/* 86056*/ OPC_CheckType, MVT::i32, ++/* 86058*/ OPC_MoveParent, ++/* 86059*/ OPC_MoveChild, 24, ++/* 86061*/ OPC_CheckInteger, 7, ++/* 86063*/ OPC_CheckType, MVT::i32, ++/* 86065*/ OPC_MoveParent, ++/* 86066*/ OPC_MoveChild, 25, ++/* 86068*/ OPC_CheckInteger, 7, ++/* 86070*/ OPC_CheckType, MVT::i32, ++/* 86072*/ OPC_MoveParent, ++/* 86073*/ OPC_MoveChild, 26, ++/* 86075*/ OPC_CheckInteger, 7, ++/* 86077*/ OPC_CheckType, MVT::i32, ++/* 86079*/ OPC_MoveParent, ++/* 86080*/ OPC_MoveChild, 27, ++/* 86082*/ OPC_CheckInteger, 7, ++/* 86084*/ OPC_CheckType, MVT::i32, ++/* 86086*/ OPC_MoveParent, ++/* 86087*/ OPC_MoveChild, 28, ++/* 86089*/ OPC_CheckInteger, 7, ++/* 86091*/ OPC_CheckType, MVT::i32, ++/* 86093*/ OPC_MoveParent, ++/* 86094*/ OPC_MoveChild, 29, ++/* 86096*/ OPC_CheckInteger, 7, ++/* 86098*/ OPC_CheckType, MVT::i32, ++/* 86100*/ OPC_MoveParent, ++/* 86101*/ OPC_MoveChild, 30, ++/* 86103*/ OPC_CheckInteger, 7, ++/* 86105*/ OPC_CheckType, MVT::i32, ++/* 86107*/ OPC_MoveParent, ++/* 86108*/ OPC_MoveChild, 31, ++/* 86110*/ OPC_CheckInteger, 7, ++/* 86112*/ OPC_CheckType, MVT::i32, ++/* 86114*/ OPC_MoveParent, ++/* 86115*/ OPC_CheckType, MVT::v32i8, ++/* 86117*/ OPC_MoveParent, ++/* 86118*/ OPC_MoveParent, ++/* 86119*/ OPC_MoveParent, ++/* 86120*/ OPC_MoveChild1, ++/* 86121*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 86124*/ OPC_CheckChild0Integer, 1, ++/* 86126*/ OPC_CheckChild0Type, MVT::i32, ++/* 86128*/ OPC_CheckChild1Integer, 1, ++/* 86130*/ OPC_CheckChild1Type, MVT::i32, ++/* 86132*/ OPC_CheckChild2Integer, 1, ++/* 86134*/ OPC_CheckChild2Type, MVT::i32, ++/* 86136*/ OPC_CheckChild3Integer, 1, ++/* 86138*/ OPC_CheckChild3Type, MVT::i32, ++/* 86140*/ OPC_CheckChild4Integer, 1, ++/* 86142*/ OPC_CheckChild4Type, MVT::i32, ++/* 86144*/ OPC_MoveChild5, ++/* 86145*/ OPC_CheckInteger, 1, ++/* 86147*/ OPC_CheckType, MVT::i32, ++/* 86149*/ OPC_MoveParent, ++/* 86150*/ OPC_MoveChild6, ++/* 86151*/ OPC_CheckInteger, 1, ++/* 86153*/ OPC_CheckType, MVT::i32, ++/* 86155*/ OPC_MoveParent, ++/* 86156*/ OPC_MoveChild7, ++/* 86157*/ OPC_CheckInteger, 1, ++/* 86159*/ OPC_CheckType, MVT::i32, ++/* 86161*/ OPC_MoveParent, ++/* 86162*/ OPC_MoveChild, 8, ++/* 86164*/ OPC_CheckInteger, 1, ++/* 86166*/ OPC_CheckType, MVT::i32, ++/* 86168*/ OPC_MoveParent, ++/* 86169*/ OPC_MoveChild, 9, ++/* 86171*/ OPC_CheckInteger, 1, ++/* 86173*/ OPC_CheckType, MVT::i32, ++/* 86175*/ OPC_MoveParent, ++/* 86176*/ OPC_MoveChild, 10, ++/* 86178*/ OPC_CheckInteger, 1, ++/* 86180*/ OPC_CheckType, MVT::i32, ++/* 86182*/ OPC_MoveParent, ++/* 86183*/ OPC_MoveChild, 11, ++/* 86185*/ OPC_CheckInteger, 1, ++/* 86187*/ OPC_CheckType, MVT::i32, ++/* 86189*/ OPC_MoveParent, ++/* 86190*/ OPC_MoveChild, 12, ++/* 86192*/ OPC_CheckInteger, 1, ++/* 86194*/ OPC_CheckType, MVT::i32, ++/* 86196*/ OPC_MoveParent, ++/* 86197*/ OPC_MoveChild, 13, ++/* 86199*/ OPC_CheckInteger, 1, ++/* 86201*/ OPC_CheckType, MVT::i32, ++/* 86203*/ OPC_MoveParent, ++/* 86204*/ OPC_MoveChild, 14, ++/* 86206*/ OPC_CheckInteger, 1, ++/* 86208*/ OPC_CheckType, MVT::i32, ++/* 86210*/ OPC_MoveParent, ++/* 86211*/ OPC_MoveChild, 15, ++/* 86213*/ OPC_CheckInteger, 1, ++/* 86215*/ OPC_CheckType, MVT::i32, ++/* 86217*/ OPC_MoveParent, ++/* 86218*/ OPC_MoveChild, 16, ++/* 86220*/ OPC_CheckInteger, 1, ++/* 86222*/ OPC_CheckType, MVT::i32, ++/* 86224*/ OPC_MoveParent, ++/* 86225*/ OPC_MoveChild, 17, ++/* 86227*/ OPC_CheckInteger, 1, ++/* 86229*/ OPC_CheckType, MVT::i32, ++/* 86231*/ OPC_MoveParent, ++/* 86232*/ OPC_MoveChild, 18, ++/* 86234*/ OPC_CheckInteger, 1, ++/* 86236*/ OPC_CheckType, MVT::i32, ++/* 86238*/ OPC_MoveParent, ++/* 86239*/ OPC_MoveChild, 19, ++/* 86241*/ OPC_CheckInteger, 1, ++/* 86243*/ OPC_CheckType, MVT::i32, ++/* 86245*/ OPC_MoveParent, ++/* 86246*/ OPC_MoveChild, 20, ++/* 86248*/ OPC_CheckInteger, 1, ++/* 86250*/ OPC_CheckType, MVT::i32, ++/* 86252*/ OPC_MoveParent, ++/* 86253*/ OPC_MoveChild, 21, ++/* 86255*/ OPC_CheckInteger, 1, ++/* 86257*/ OPC_CheckType, MVT::i32, ++/* 86259*/ OPC_MoveParent, ++/* 86260*/ OPC_MoveChild, 22, ++/* 86262*/ OPC_CheckInteger, 1, ++/* 86264*/ OPC_CheckType, MVT::i32, ++/* 86266*/ OPC_MoveParent, ++/* 86267*/ OPC_MoveChild, 23, ++/* 86269*/ OPC_CheckInteger, 1, ++/* 86271*/ OPC_CheckType, MVT::i32, ++/* 86273*/ OPC_MoveParent, ++/* 86274*/ OPC_MoveChild, 24, ++/* 86276*/ OPC_CheckInteger, 1, ++/* 86278*/ OPC_CheckType, MVT::i32, ++/* 86280*/ OPC_MoveParent, ++/* 86281*/ OPC_MoveChild, 25, ++/* 86283*/ OPC_CheckInteger, 1, ++/* 86285*/ OPC_CheckType, MVT::i32, ++/* 86287*/ OPC_MoveParent, ++/* 86288*/ OPC_MoveChild, 26, ++/* 86290*/ OPC_CheckInteger, 1, ++/* 86292*/ OPC_CheckType, MVT::i32, ++/* 86294*/ OPC_MoveParent, ++/* 86295*/ OPC_MoveChild, 27, ++/* 86297*/ OPC_CheckInteger, 1, ++/* 86299*/ OPC_CheckType, MVT::i32, ++/* 86301*/ OPC_MoveParent, ++/* 86302*/ OPC_MoveChild, 28, ++/* 86304*/ OPC_CheckInteger, 1, ++/* 86306*/ OPC_CheckType, MVT::i32, ++/* 86308*/ OPC_MoveParent, ++/* 86309*/ OPC_MoveChild, 29, ++/* 86311*/ OPC_CheckInteger, 1, ++/* 86313*/ OPC_CheckType, MVT::i32, ++/* 86315*/ OPC_MoveParent, ++/* 86316*/ OPC_MoveChild, 30, ++/* 86318*/ OPC_CheckInteger, 1, ++/* 86320*/ OPC_CheckType, MVT::i32, ++/* 86322*/ OPC_MoveParent, ++/* 86323*/ OPC_MoveChild, 31, ++/* 86325*/ OPC_CheckInteger, 1, ++/* 86327*/ OPC_CheckType, MVT::i32, ++/* 86329*/ OPC_MoveParent, ++/* 86330*/ OPC_CheckType, MVT::v32i8, ++/* 86332*/ OPC_MoveParent, ++/* 86333*/ OPC_CheckType, MVT::v32i8, ++/* 86335*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 86337*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a), LASX256B:{ *:[v32i8] }:$b), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/* 86345*/ 0, /*End of Scope*/ ++/* 86346*/ /*Scope*/ 42|128,10/*1322*/, /*->87670*/ ++/* 86348*/ OPC_CheckChild0Same, 0, ++/* 86350*/ OPC_MoveChild1, ++/* 86351*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/* 86354*/ OPC_Scope, 15|128,5/*655*/, /*->87012*/ // 2 children in Scope ++/* 86357*/ OPC_MoveChild0, ++/* 86358*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 86361*/ OPC_CheckChild0Integer, 1, ++/* 86363*/ OPC_CheckChild0Type, MVT::i32, ++/* 86365*/ OPC_CheckChild1Integer, 1, ++/* 86367*/ OPC_CheckChild1Type, MVT::i32, ++/* 86369*/ OPC_CheckChild2Integer, 1, ++/* 86371*/ OPC_CheckChild2Type, MVT::i32, ++/* 86373*/ OPC_CheckChild3Integer, 1, ++/* 86375*/ OPC_CheckChild3Type, MVT::i32, ++/* 86377*/ OPC_CheckChild4Integer, 1, ++/* 86379*/ OPC_CheckChild4Type, MVT::i32, ++/* 86381*/ OPC_MoveChild5, ++/* 86382*/ OPC_CheckInteger, 1, ++/* 86384*/ OPC_CheckType, MVT::i32, ++/* 86386*/ OPC_MoveParent, ++/* 86387*/ OPC_MoveChild6, ++/* 86388*/ OPC_CheckInteger, 1, ++/* 86390*/ OPC_CheckType, MVT::i32, ++/* 86392*/ OPC_MoveParent, ++/* 86393*/ OPC_MoveChild7, ++/* 86394*/ OPC_CheckInteger, 1, ++/* 86396*/ OPC_CheckType, MVT::i32, ++/* 86398*/ OPC_MoveParent, ++/* 86399*/ OPC_MoveChild, 8, ++/* 86401*/ OPC_CheckInteger, 1, ++/* 86403*/ OPC_CheckType, MVT::i32, ++/* 86405*/ OPC_MoveParent, ++/* 86406*/ OPC_MoveChild, 9, ++/* 86408*/ OPC_CheckInteger, 1, ++/* 86410*/ OPC_CheckType, MVT::i32, ++/* 86412*/ OPC_MoveParent, ++/* 86413*/ OPC_MoveChild, 10, ++/* 86415*/ OPC_CheckInteger, 1, ++/* 86417*/ OPC_CheckType, MVT::i32, ++/* 86419*/ OPC_MoveParent, ++/* 86420*/ OPC_MoveChild, 11, ++/* 86422*/ OPC_CheckInteger, 1, ++/* 86424*/ OPC_CheckType, MVT::i32, ++/* 86426*/ OPC_MoveParent, ++/* 86427*/ OPC_MoveChild, 12, ++/* 86429*/ OPC_CheckInteger, 1, ++/* 86431*/ OPC_CheckType, MVT::i32, ++/* 86433*/ OPC_MoveParent, ++/* 86434*/ OPC_MoveChild, 13, ++/* 86436*/ OPC_CheckInteger, 1, ++/* 86438*/ OPC_CheckType, MVT::i32, ++/* 86440*/ OPC_MoveParent, ++/* 86441*/ OPC_MoveChild, 14, ++/* 86443*/ OPC_CheckInteger, 1, ++/* 86445*/ OPC_CheckType, MVT::i32, ++/* 86447*/ OPC_MoveParent, ++/* 86448*/ OPC_MoveChild, 15, ++/* 86450*/ OPC_CheckInteger, 1, ++/* 86452*/ OPC_CheckType, MVT::i32, ++/* 86454*/ OPC_MoveParent, ++/* 86455*/ OPC_MoveChild, 16, ++/* 86457*/ OPC_CheckInteger, 1, ++/* 86459*/ OPC_CheckType, MVT::i32, ++/* 86461*/ OPC_MoveParent, ++/* 86462*/ OPC_MoveChild, 17, ++/* 86464*/ OPC_CheckInteger, 1, ++/* 86466*/ OPC_CheckType, MVT::i32, ++/* 86468*/ OPC_MoveParent, ++/* 86469*/ OPC_MoveChild, 18, ++/* 86471*/ OPC_CheckInteger, 1, ++/* 86473*/ OPC_CheckType, MVT::i32, ++/* 86475*/ OPC_MoveParent, ++/* 86476*/ OPC_MoveChild, 19, ++/* 86478*/ OPC_CheckInteger, 1, ++/* 86480*/ OPC_CheckType, MVT::i32, ++/* 86482*/ OPC_MoveParent, ++/* 86483*/ OPC_MoveChild, 20, ++/* 86485*/ OPC_CheckInteger, 1, ++/* 86487*/ OPC_CheckType, MVT::i32, ++/* 86489*/ OPC_MoveParent, ++/* 86490*/ OPC_MoveChild, 21, ++/* 86492*/ OPC_CheckInteger, 1, ++/* 86494*/ OPC_CheckType, MVT::i32, ++/* 86496*/ OPC_MoveParent, ++/* 86497*/ OPC_MoveChild, 22, ++/* 86499*/ OPC_CheckInteger, 1, ++/* 86501*/ OPC_CheckType, MVT::i32, ++/* 86503*/ OPC_MoveParent, ++/* 86504*/ OPC_MoveChild, 23, ++/* 86506*/ OPC_CheckInteger, 1, ++/* 86508*/ OPC_CheckType, MVT::i32, ++/* 86510*/ OPC_MoveParent, ++/* 86511*/ OPC_MoveChild, 24, ++/* 86513*/ OPC_CheckInteger, 1, ++/* 86515*/ OPC_CheckType, MVT::i32, ++/* 86517*/ OPC_MoveParent, ++/* 86518*/ OPC_MoveChild, 25, ++/* 86520*/ OPC_CheckInteger, 1, ++/* 86522*/ OPC_CheckType, MVT::i32, ++/* 86524*/ OPC_MoveParent, ++/* 86525*/ OPC_MoveChild, 26, ++/* 86527*/ OPC_CheckInteger, 1, ++/* 86529*/ OPC_CheckType, MVT::i32, ++/* 86531*/ OPC_MoveParent, ++/* 86532*/ OPC_MoveChild, 27, ++/* 86534*/ OPC_CheckInteger, 1, ++/* 86536*/ OPC_CheckType, MVT::i32, ++/* 86538*/ OPC_MoveParent, ++/* 86539*/ OPC_MoveChild, 28, ++/* 86541*/ OPC_CheckInteger, 1, ++/* 86543*/ OPC_CheckType, MVT::i32, ++/* 86545*/ OPC_MoveParent, ++/* 86546*/ OPC_MoveChild, 29, ++/* 86548*/ OPC_CheckInteger, 1, ++/* 86550*/ OPC_CheckType, MVT::i32, ++/* 86552*/ OPC_MoveParent, ++/* 86553*/ OPC_MoveChild, 30, ++/* 86555*/ OPC_CheckInteger, 1, ++/* 86557*/ OPC_CheckType, MVT::i32, ++/* 86559*/ OPC_MoveParent, ++/* 86560*/ OPC_MoveChild, 31, ++/* 86562*/ OPC_CheckInteger, 1, ++/* 86564*/ OPC_CheckType, MVT::i32, ++/* 86566*/ OPC_MoveParent, ++/* 86567*/ OPC_MoveParent, ++/* 86568*/ OPC_CheckChild1Same, 1, ++/* 86570*/ OPC_MoveParent, ++/* 86571*/ OPC_MoveParent, ++/* 86572*/ OPC_MoveChild1, ++/* 86573*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 86576*/ OPC_CheckChild0Integer, 7, ++/* 86578*/ OPC_CheckChild0Type, MVT::i32, ++/* 86580*/ OPC_CheckChild1Integer, 7, ++/* 86582*/ OPC_CheckChild1Type, MVT::i32, ++/* 86584*/ OPC_CheckChild2Integer, 7, ++/* 86586*/ OPC_CheckChild2Type, MVT::i32, ++/* 86588*/ OPC_CheckChild3Integer, 7, ++/* 86590*/ OPC_CheckChild3Type, MVT::i32, ++/* 86592*/ OPC_CheckChild4Integer, 7, ++/* 86594*/ OPC_CheckChild4Type, MVT::i32, ++/* 86596*/ OPC_MoveChild5, ++/* 86597*/ OPC_CheckInteger, 7, ++/* 86599*/ OPC_CheckType, MVT::i32, ++/* 86601*/ OPC_MoveParent, ++/* 86602*/ OPC_MoveChild6, ++/* 86603*/ OPC_CheckInteger, 7, ++/* 86605*/ OPC_CheckType, MVT::i32, ++/* 86607*/ OPC_MoveParent, ++/* 86608*/ OPC_MoveChild7, ++/* 86609*/ OPC_CheckInteger, 7, ++/* 86611*/ OPC_CheckType, MVT::i32, ++/* 86613*/ OPC_MoveParent, ++/* 86614*/ OPC_MoveChild, 8, ++/* 86616*/ OPC_CheckInteger, 7, ++/* 86618*/ OPC_CheckType, MVT::i32, ++/* 86620*/ OPC_MoveParent, ++/* 86621*/ OPC_MoveChild, 9, ++/* 86623*/ OPC_CheckInteger, 7, ++/* 86625*/ OPC_CheckType, MVT::i32, ++/* 86627*/ OPC_MoveParent, ++/* 86628*/ OPC_MoveChild, 10, ++/* 86630*/ OPC_CheckInteger, 7, ++/* 86632*/ OPC_CheckType, MVT::i32, ++/* 86634*/ OPC_MoveParent, ++/* 86635*/ OPC_MoveChild, 11, ++/* 86637*/ OPC_CheckInteger, 7, ++/* 86639*/ OPC_CheckType, MVT::i32, ++/* 86641*/ OPC_MoveParent, ++/* 86642*/ OPC_MoveChild, 12, ++/* 86644*/ OPC_CheckInteger, 7, ++/* 86646*/ OPC_CheckType, MVT::i32, ++/* 86648*/ OPC_MoveParent, ++/* 86649*/ OPC_MoveChild, 13, ++/* 86651*/ OPC_CheckInteger, 7, ++/* 86653*/ OPC_CheckType, MVT::i32, ++/* 86655*/ OPC_MoveParent, ++/* 86656*/ OPC_MoveChild, 14, ++/* 86658*/ OPC_CheckInteger, 7, ++/* 86660*/ OPC_CheckType, MVT::i32, ++/* 86662*/ OPC_MoveParent, ++/* 86663*/ OPC_MoveChild, 15, ++/* 86665*/ OPC_CheckInteger, 7, ++/* 86667*/ OPC_CheckType, MVT::i32, ++/* 86669*/ OPC_MoveParent, ++/* 86670*/ OPC_MoveChild, 16, ++/* 86672*/ OPC_CheckInteger, 7, ++/* 86674*/ OPC_CheckType, MVT::i32, ++/* 86676*/ OPC_MoveParent, ++/* 86677*/ OPC_MoveChild, 17, ++/* 86679*/ OPC_CheckInteger, 7, ++/* 86681*/ OPC_CheckType, MVT::i32, ++/* 86683*/ OPC_MoveParent, ++/* 86684*/ OPC_MoveChild, 18, ++/* 86686*/ OPC_CheckInteger, 7, ++/* 86688*/ OPC_CheckType, MVT::i32, ++/* 86690*/ OPC_MoveParent, ++/* 86691*/ OPC_MoveChild, 19, ++/* 86693*/ OPC_CheckInteger, 7, ++/* 86695*/ OPC_CheckType, MVT::i32, ++/* 86697*/ OPC_MoveParent, ++/* 86698*/ OPC_MoveChild, 20, ++/* 86700*/ OPC_CheckInteger, 7, ++/* 86702*/ OPC_CheckType, MVT::i32, ++/* 86704*/ OPC_MoveParent, ++/* 86705*/ OPC_MoveChild, 21, ++/* 86707*/ OPC_CheckInteger, 7, ++/* 86709*/ OPC_CheckType, MVT::i32, ++/* 86711*/ OPC_MoveParent, ++/* 86712*/ OPC_MoveChild, 22, ++/* 86714*/ OPC_CheckInteger, 7, ++/* 86716*/ OPC_CheckType, MVT::i32, ++/* 86718*/ OPC_MoveParent, ++/* 86719*/ OPC_MoveChild, 23, ++/* 86721*/ OPC_CheckInteger, 7, ++/* 86723*/ OPC_CheckType, MVT::i32, ++/* 86725*/ OPC_MoveParent, ++/* 86726*/ OPC_MoveChild, 24, ++/* 86728*/ OPC_CheckInteger, 7, ++/* 86730*/ OPC_CheckType, MVT::i32, ++/* 86732*/ OPC_MoveParent, ++/* 86733*/ OPC_MoveChild, 25, ++/* 86735*/ OPC_CheckInteger, 7, ++/* 86737*/ OPC_CheckType, MVT::i32, ++/* 86739*/ OPC_MoveParent, ++/* 86740*/ OPC_MoveChild, 26, ++/* 86742*/ OPC_CheckInteger, 7, ++/* 86744*/ OPC_CheckType, MVT::i32, ++/* 86746*/ OPC_MoveParent, ++/* 86747*/ OPC_MoveChild, 27, ++/* 86749*/ OPC_CheckInteger, 7, ++/* 86751*/ OPC_CheckType, MVT::i32, ++/* 86753*/ OPC_MoveParent, ++/* 86754*/ OPC_MoveChild, 28, ++/* 86756*/ OPC_CheckInteger, 7, ++/* 86758*/ OPC_CheckType, MVT::i32, ++/* 86760*/ OPC_MoveParent, ++/* 86761*/ OPC_MoveChild, 29, ++/* 86763*/ OPC_CheckInteger, 7, ++/* 86765*/ OPC_CheckType, MVT::i32, ++/* 86767*/ OPC_MoveParent, ++/* 86768*/ OPC_MoveChild, 30, ++/* 86770*/ OPC_CheckInteger, 7, ++/* 86772*/ OPC_CheckType, MVT::i32, ++/* 86774*/ OPC_MoveParent, ++/* 86775*/ OPC_MoveChild, 31, ++/* 86777*/ OPC_CheckInteger, 7, ++/* 86779*/ OPC_CheckType, MVT::i32, ++/* 86781*/ OPC_MoveParent, ++/* 86782*/ OPC_CheckType, MVT::v32i8, ++/* 86784*/ OPC_MoveParent, ++/* 86785*/ OPC_MoveParent, ++/* 86786*/ OPC_MoveParent, ++/* 86787*/ OPC_MoveChild1, ++/* 86788*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 86791*/ OPC_CheckChild0Integer, 1, ++/* 86793*/ OPC_CheckChild0Type, MVT::i32, ++/* 86795*/ OPC_CheckChild1Integer, 1, ++/* 86797*/ OPC_CheckChild1Type, MVT::i32, ++/* 86799*/ OPC_CheckChild2Integer, 1, ++/* 86801*/ OPC_CheckChild2Type, MVT::i32, ++/* 86803*/ OPC_CheckChild3Integer, 1, ++/* 86805*/ OPC_CheckChild3Type, MVT::i32, ++/* 86807*/ OPC_CheckChild4Integer, 1, ++/* 86809*/ OPC_CheckChild4Type, MVT::i32, ++/* 86811*/ OPC_MoveChild5, ++/* 86812*/ OPC_CheckInteger, 1, ++/* 86814*/ OPC_CheckType, MVT::i32, ++/* 86816*/ OPC_MoveParent, ++/* 86817*/ OPC_MoveChild6, ++/* 86818*/ OPC_CheckInteger, 1, ++/* 86820*/ OPC_CheckType, MVT::i32, ++/* 86822*/ OPC_MoveParent, ++/* 86823*/ OPC_MoveChild7, ++/* 86824*/ OPC_CheckInteger, 1, ++/* 86826*/ OPC_CheckType, MVT::i32, ++/* 86828*/ OPC_MoveParent, ++/* 86829*/ OPC_MoveChild, 8, ++/* 86831*/ OPC_CheckInteger, 1, ++/* 86833*/ OPC_CheckType, MVT::i32, ++/* 86835*/ OPC_MoveParent, ++/* 86836*/ OPC_MoveChild, 9, ++/* 86838*/ OPC_CheckInteger, 1, ++/* 86840*/ OPC_CheckType, MVT::i32, ++/* 86842*/ OPC_MoveParent, ++/* 86843*/ OPC_MoveChild, 10, ++/* 86845*/ OPC_CheckInteger, 1, ++/* 86847*/ OPC_CheckType, MVT::i32, ++/* 86849*/ OPC_MoveParent, ++/* 86850*/ OPC_MoveChild, 11, ++/* 86852*/ OPC_CheckInteger, 1, ++/* 86854*/ OPC_CheckType, MVT::i32, ++/* 86856*/ OPC_MoveParent, ++/* 86857*/ OPC_MoveChild, 12, ++/* 86859*/ OPC_CheckInteger, 1, ++/* 86861*/ OPC_CheckType, MVT::i32, ++/* 86863*/ OPC_MoveParent, ++/* 86864*/ OPC_MoveChild, 13, ++/* 86866*/ OPC_CheckInteger, 1, ++/* 86868*/ OPC_CheckType, MVT::i32, ++/* 86870*/ OPC_MoveParent, ++/* 86871*/ OPC_MoveChild, 14, ++/* 86873*/ OPC_CheckInteger, 1, ++/* 86875*/ OPC_CheckType, MVT::i32, ++/* 86877*/ OPC_MoveParent, ++/* 86878*/ OPC_MoveChild, 15, ++/* 86880*/ OPC_CheckInteger, 1, ++/* 86882*/ OPC_CheckType, MVT::i32, ++/* 86884*/ OPC_MoveParent, ++/* 86885*/ OPC_MoveChild, 16, ++/* 86887*/ OPC_CheckInteger, 1, ++/* 86889*/ OPC_CheckType, MVT::i32, ++/* 86891*/ OPC_MoveParent, ++/* 86892*/ OPC_MoveChild, 17, ++/* 86894*/ OPC_CheckInteger, 1, ++/* 86896*/ OPC_CheckType, MVT::i32, ++/* 86898*/ OPC_MoveParent, ++/* 86899*/ OPC_MoveChild, 18, ++/* 86901*/ OPC_CheckInteger, 1, ++/* 86903*/ OPC_CheckType, MVT::i32, ++/* 86905*/ OPC_MoveParent, ++/* 86906*/ OPC_MoveChild, 19, ++/* 86908*/ OPC_CheckInteger, 1, ++/* 86910*/ OPC_CheckType, MVT::i32, ++/* 86912*/ OPC_MoveParent, ++/* 86913*/ OPC_MoveChild, 20, ++/* 86915*/ OPC_CheckInteger, 1, ++/* 86917*/ OPC_CheckType, MVT::i32, ++/* 86919*/ OPC_MoveParent, ++/* 86920*/ OPC_MoveChild, 21, ++/* 86922*/ OPC_CheckInteger, 1, ++/* 86924*/ OPC_CheckType, MVT::i32, ++/* 86926*/ OPC_MoveParent, ++/* 86927*/ OPC_MoveChild, 22, ++/* 86929*/ OPC_CheckInteger, 1, ++/* 86931*/ OPC_CheckType, MVT::i32, ++/* 86933*/ OPC_MoveParent, ++/* 86934*/ OPC_MoveChild, 23, ++/* 86936*/ OPC_CheckInteger, 1, ++/* 86938*/ OPC_CheckType, MVT::i32, ++/* 86940*/ OPC_MoveParent, ++/* 86941*/ OPC_MoveChild, 24, ++/* 86943*/ OPC_CheckInteger, 1, ++/* 86945*/ OPC_CheckType, MVT::i32, ++/* 86947*/ OPC_MoveParent, ++/* 86948*/ OPC_MoveChild, 25, ++/* 86950*/ OPC_CheckInteger, 1, ++/* 86952*/ OPC_CheckType, MVT::i32, ++/* 86954*/ OPC_MoveParent, ++/* 86955*/ OPC_MoveChild, 26, ++/* 86957*/ OPC_CheckInteger, 1, ++/* 86959*/ OPC_CheckType, MVT::i32, ++/* 86961*/ OPC_MoveParent, ++/* 86962*/ OPC_MoveChild, 27, ++/* 86964*/ OPC_CheckInteger, 1, ++/* 86966*/ OPC_CheckType, MVT::i32, ++/* 86968*/ OPC_MoveParent, ++/* 86969*/ OPC_MoveChild, 28, ++/* 86971*/ OPC_CheckInteger, 1, ++/* 86973*/ OPC_CheckType, MVT::i32, ++/* 86975*/ OPC_MoveParent, ++/* 86976*/ OPC_MoveChild, 29, ++/* 86978*/ OPC_CheckInteger, 1, ++/* 86980*/ OPC_CheckType, MVT::i32, ++/* 86982*/ OPC_MoveParent, ++/* 86983*/ OPC_MoveChild, 30, ++/* 86985*/ OPC_CheckInteger, 1, ++/* 86987*/ OPC_CheckType, MVT::i32, ++/* 86989*/ OPC_MoveParent, ++/* 86990*/ OPC_MoveChild, 31, ++/* 86992*/ OPC_CheckInteger, 1, ++/* 86994*/ OPC_CheckType, MVT::i32, ++/* 86996*/ OPC_MoveParent, ++/* 86997*/ OPC_CheckType, MVT::v32i8, ++/* 86999*/ OPC_MoveParent, ++/* 87000*/ OPC_CheckType, MVT::v32i8, ++/* 87002*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 87004*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a), LASX256B:{ *:[v32i8] }:$b), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/* 87012*/ /*Scope*/ 15|128,5/*655*/, /*->87669*/ ++/* 87014*/ OPC_CheckChild0Same, 1, ++/* 87016*/ OPC_MoveChild1, ++/* 87017*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 87020*/ OPC_CheckChild0Integer, 1, ++/* 87022*/ OPC_CheckChild0Type, MVT::i32, ++/* 87024*/ OPC_CheckChild1Integer, 1, ++/* 87026*/ OPC_CheckChild1Type, MVT::i32, ++/* 87028*/ OPC_CheckChild2Integer, 1, ++/* 87030*/ OPC_CheckChild2Type, MVT::i32, ++/* 87032*/ OPC_CheckChild3Integer, 1, ++/* 87034*/ OPC_CheckChild3Type, MVT::i32, ++/* 87036*/ OPC_CheckChild4Integer, 1, ++/* 87038*/ OPC_CheckChild4Type, MVT::i32, ++/* 87040*/ OPC_MoveChild5, ++/* 87041*/ OPC_CheckInteger, 1, ++/* 87043*/ OPC_CheckType, MVT::i32, ++/* 87045*/ OPC_MoveParent, ++/* 87046*/ OPC_MoveChild6, ++/* 87047*/ OPC_CheckInteger, 1, ++/* 87049*/ OPC_CheckType, MVT::i32, ++/* 87051*/ OPC_MoveParent, ++/* 87052*/ OPC_MoveChild7, ++/* 87053*/ OPC_CheckInteger, 1, ++/* 87055*/ OPC_CheckType, MVT::i32, ++/* 87057*/ OPC_MoveParent, ++/* 87058*/ OPC_MoveChild, 8, ++/* 87060*/ OPC_CheckInteger, 1, ++/* 87062*/ OPC_CheckType, MVT::i32, ++/* 87064*/ OPC_MoveParent, ++/* 87065*/ OPC_MoveChild, 9, ++/* 87067*/ OPC_CheckInteger, 1, ++/* 87069*/ OPC_CheckType, MVT::i32, ++/* 87071*/ OPC_MoveParent, ++/* 87072*/ OPC_MoveChild, 10, ++/* 87074*/ OPC_CheckInteger, 1, ++/* 87076*/ OPC_CheckType, MVT::i32, ++/* 87078*/ OPC_MoveParent, ++/* 87079*/ OPC_MoveChild, 11, ++/* 87081*/ OPC_CheckInteger, 1, ++/* 87083*/ OPC_CheckType, MVT::i32, ++/* 87085*/ OPC_MoveParent, ++/* 87086*/ OPC_MoveChild, 12, ++/* 87088*/ OPC_CheckInteger, 1, ++/* 87090*/ OPC_CheckType, MVT::i32, ++/* 87092*/ OPC_MoveParent, ++/* 87093*/ OPC_MoveChild, 13, ++/* 87095*/ OPC_CheckInteger, 1, ++/* 87097*/ OPC_CheckType, MVT::i32, ++/* 87099*/ OPC_MoveParent, ++/* 87100*/ OPC_MoveChild, 14, ++/* 87102*/ OPC_CheckInteger, 1, ++/* 87104*/ OPC_CheckType, MVT::i32, ++/* 87106*/ OPC_MoveParent, ++/* 87107*/ OPC_MoveChild, 15, ++/* 87109*/ OPC_CheckInteger, 1, ++/* 87111*/ OPC_CheckType, MVT::i32, ++/* 87113*/ OPC_MoveParent, ++/* 87114*/ OPC_MoveChild, 16, ++/* 87116*/ OPC_CheckInteger, 1, ++/* 87118*/ OPC_CheckType, MVT::i32, ++/* 87120*/ OPC_MoveParent, ++/* 87121*/ OPC_MoveChild, 17, ++/* 87123*/ OPC_CheckInteger, 1, ++/* 87125*/ OPC_CheckType, MVT::i32, ++/* 87127*/ OPC_MoveParent, ++/* 87128*/ OPC_MoveChild, 18, ++/* 87130*/ OPC_CheckInteger, 1, ++/* 87132*/ OPC_CheckType, MVT::i32, ++/* 87134*/ OPC_MoveParent, ++/* 87135*/ OPC_MoveChild, 19, ++/* 87137*/ OPC_CheckInteger, 1, ++/* 87139*/ OPC_CheckType, MVT::i32, ++/* 87141*/ OPC_MoveParent, ++/* 87142*/ OPC_MoveChild, 20, ++/* 87144*/ OPC_CheckInteger, 1, ++/* 87146*/ OPC_CheckType, MVT::i32, ++/* 87148*/ OPC_MoveParent, ++/* 87149*/ OPC_MoveChild, 21, ++/* 87151*/ OPC_CheckInteger, 1, ++/* 87153*/ OPC_CheckType, MVT::i32, ++/* 87155*/ OPC_MoveParent, ++/* 87156*/ OPC_MoveChild, 22, ++/* 87158*/ OPC_CheckInteger, 1, ++/* 87160*/ OPC_CheckType, MVT::i32, ++/* 87162*/ OPC_MoveParent, ++/* 87163*/ OPC_MoveChild, 23, ++/* 87165*/ OPC_CheckInteger, 1, ++/* 87167*/ OPC_CheckType, MVT::i32, ++/* 87169*/ OPC_MoveParent, ++/* 87170*/ OPC_MoveChild, 24, ++/* 87172*/ OPC_CheckInteger, 1, ++/* 87174*/ OPC_CheckType, MVT::i32, ++/* 87176*/ OPC_MoveParent, ++/* 87177*/ OPC_MoveChild, 25, ++/* 87179*/ OPC_CheckInteger, 1, ++/* 87181*/ OPC_CheckType, MVT::i32, ++/* 87183*/ OPC_MoveParent, ++/* 87184*/ OPC_MoveChild, 26, ++/* 87186*/ OPC_CheckInteger, 1, ++/* 87188*/ OPC_CheckType, MVT::i32, ++/* 87190*/ OPC_MoveParent, ++/* 87191*/ OPC_MoveChild, 27, ++/* 87193*/ OPC_CheckInteger, 1, ++/* 87195*/ OPC_CheckType, MVT::i32, ++/* 87197*/ OPC_MoveParent, ++/* 87198*/ OPC_MoveChild, 28, ++/* 87200*/ OPC_CheckInteger, 1, ++/* 87202*/ OPC_CheckType, MVT::i32, ++/* 87204*/ OPC_MoveParent, ++/* 87205*/ OPC_MoveChild, 29, ++/* 87207*/ OPC_CheckInteger, 1, ++/* 87209*/ OPC_CheckType, MVT::i32, ++/* 87211*/ OPC_MoveParent, ++/* 87212*/ OPC_MoveChild, 30, ++/* 87214*/ OPC_CheckInteger, 1, ++/* 87216*/ OPC_CheckType, MVT::i32, ++/* 87218*/ OPC_MoveParent, ++/* 87219*/ OPC_MoveChild, 31, ++/* 87221*/ OPC_CheckInteger, 1, ++/* 87223*/ OPC_CheckType, MVT::i32, ++/* 87225*/ OPC_MoveParent, ++/* 87226*/ OPC_MoveParent, ++/* 87227*/ OPC_MoveParent, ++/* 87228*/ OPC_MoveParent, ++/* 87229*/ OPC_MoveChild1, ++/* 87230*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 87233*/ OPC_CheckChild0Integer, 7, ++/* 87235*/ OPC_CheckChild0Type, MVT::i32, ++/* 87237*/ OPC_CheckChild1Integer, 7, ++/* 87239*/ OPC_CheckChild1Type, MVT::i32, ++/* 87241*/ OPC_CheckChild2Integer, 7, ++/* 87243*/ OPC_CheckChild2Type, MVT::i32, ++/* 87245*/ OPC_CheckChild3Integer, 7, ++/* 87247*/ OPC_CheckChild3Type, MVT::i32, ++/* 87249*/ OPC_CheckChild4Integer, 7, ++/* 87251*/ OPC_CheckChild4Type, MVT::i32, ++/* 87253*/ OPC_MoveChild5, ++/* 87254*/ OPC_CheckInteger, 7, ++/* 87256*/ OPC_CheckType, MVT::i32, ++/* 87258*/ OPC_MoveParent, ++/* 87259*/ OPC_MoveChild6, ++/* 87260*/ OPC_CheckInteger, 7, ++/* 87262*/ OPC_CheckType, MVT::i32, ++/* 87264*/ OPC_MoveParent, ++/* 87265*/ OPC_MoveChild7, ++/* 87266*/ OPC_CheckInteger, 7, ++/* 87268*/ OPC_CheckType, MVT::i32, ++/* 87270*/ OPC_MoveParent, ++/* 87271*/ OPC_MoveChild, 8, ++/* 87273*/ OPC_CheckInteger, 7, ++/* 87275*/ OPC_CheckType, MVT::i32, ++/* 87277*/ OPC_MoveParent, ++/* 87278*/ OPC_MoveChild, 9, ++/* 87280*/ OPC_CheckInteger, 7, ++/* 87282*/ OPC_CheckType, MVT::i32, ++/* 87284*/ OPC_MoveParent, ++/* 87285*/ OPC_MoveChild, 10, ++/* 87287*/ OPC_CheckInteger, 7, ++/* 87289*/ OPC_CheckType, MVT::i32, ++/* 87291*/ OPC_MoveParent, ++/* 87292*/ OPC_MoveChild, 11, ++/* 87294*/ OPC_CheckInteger, 7, ++/* 87296*/ OPC_CheckType, MVT::i32, ++/* 87298*/ OPC_MoveParent, ++/* 87299*/ OPC_MoveChild, 12, ++/* 87301*/ OPC_CheckInteger, 7, ++/* 87303*/ OPC_CheckType, MVT::i32, ++/* 87305*/ OPC_MoveParent, ++/* 87306*/ OPC_MoveChild, 13, ++/* 87308*/ OPC_CheckInteger, 7, ++/* 87310*/ OPC_CheckType, MVT::i32, ++/* 87312*/ OPC_MoveParent, ++/* 87313*/ OPC_MoveChild, 14, ++/* 87315*/ OPC_CheckInteger, 7, ++/* 87317*/ OPC_CheckType, MVT::i32, ++/* 87319*/ OPC_MoveParent, ++/* 87320*/ OPC_MoveChild, 15, ++/* 87322*/ OPC_CheckInteger, 7, ++/* 87324*/ OPC_CheckType, MVT::i32, ++/* 87326*/ OPC_MoveParent, ++/* 87327*/ OPC_MoveChild, 16, ++/* 87329*/ OPC_CheckInteger, 7, ++/* 87331*/ OPC_CheckType, MVT::i32, ++/* 87333*/ OPC_MoveParent, ++/* 87334*/ OPC_MoveChild, 17, ++/* 87336*/ OPC_CheckInteger, 7, ++/* 87338*/ OPC_CheckType, MVT::i32, ++/* 87340*/ OPC_MoveParent, ++/* 87341*/ OPC_MoveChild, 18, ++/* 87343*/ OPC_CheckInteger, 7, ++/* 87345*/ OPC_CheckType, MVT::i32, ++/* 87347*/ OPC_MoveParent, ++/* 87348*/ OPC_MoveChild, 19, ++/* 87350*/ OPC_CheckInteger, 7, ++/* 87352*/ OPC_CheckType, MVT::i32, ++/* 87354*/ OPC_MoveParent, ++/* 87355*/ OPC_MoveChild, 20, ++/* 87357*/ OPC_CheckInteger, 7, ++/* 87359*/ OPC_CheckType, MVT::i32, ++/* 87361*/ OPC_MoveParent, ++/* 87362*/ OPC_MoveChild, 21, ++/* 87364*/ OPC_CheckInteger, 7, ++/* 87366*/ OPC_CheckType, MVT::i32, ++/* 87368*/ OPC_MoveParent, ++/* 87369*/ OPC_MoveChild, 22, ++/* 87371*/ OPC_CheckInteger, 7, ++/* 87373*/ OPC_CheckType, MVT::i32, ++/* 87375*/ OPC_MoveParent, ++/* 87376*/ OPC_MoveChild, 23, ++/* 87378*/ OPC_CheckInteger, 7, ++/* 87380*/ OPC_CheckType, MVT::i32, ++/* 87382*/ OPC_MoveParent, ++/* 87383*/ OPC_MoveChild, 24, ++/* 87385*/ OPC_CheckInteger, 7, ++/* 87387*/ OPC_CheckType, MVT::i32, ++/* 87389*/ OPC_MoveParent, ++/* 87390*/ OPC_MoveChild, 25, ++/* 87392*/ OPC_CheckInteger, 7, ++/* 87394*/ OPC_CheckType, MVT::i32, ++/* 87396*/ OPC_MoveParent, ++/* 87397*/ OPC_MoveChild, 26, ++/* 87399*/ OPC_CheckInteger, 7, ++/* 87401*/ OPC_CheckType, MVT::i32, ++/* 87403*/ OPC_MoveParent, ++/* 87404*/ OPC_MoveChild, 27, ++/* 87406*/ OPC_CheckInteger, 7, ++/* 87408*/ OPC_CheckType, MVT::i32, ++/* 87410*/ OPC_MoveParent, ++/* 87411*/ OPC_MoveChild, 28, ++/* 87413*/ OPC_CheckInteger, 7, ++/* 87415*/ OPC_CheckType, MVT::i32, ++/* 87417*/ OPC_MoveParent, ++/* 87418*/ OPC_MoveChild, 29, ++/* 87420*/ OPC_CheckInteger, 7, ++/* 87422*/ OPC_CheckType, MVT::i32, ++/* 87424*/ OPC_MoveParent, ++/* 87425*/ OPC_MoveChild, 30, ++/* 87427*/ OPC_CheckInteger, 7, ++/* 87429*/ OPC_CheckType, MVT::i32, ++/* 87431*/ OPC_MoveParent, ++/* 87432*/ OPC_MoveChild, 31, ++/* 87434*/ OPC_CheckInteger, 7, ++/* 87436*/ OPC_CheckType, MVT::i32, ++/* 87438*/ OPC_MoveParent, ++/* 87439*/ OPC_CheckType, MVT::v32i8, ++/* 87441*/ OPC_MoveParent, ++/* 87442*/ OPC_MoveParent, ++/* 87443*/ OPC_MoveParent, ++/* 87444*/ OPC_MoveChild1, ++/* 87445*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 87448*/ OPC_CheckChild0Integer, 1, ++/* 87450*/ OPC_CheckChild0Type, MVT::i32, ++/* 87452*/ OPC_CheckChild1Integer, 1, ++/* 87454*/ OPC_CheckChild1Type, MVT::i32, ++/* 87456*/ OPC_CheckChild2Integer, 1, ++/* 87458*/ OPC_CheckChild2Type, MVT::i32, ++/* 87460*/ OPC_CheckChild3Integer, 1, ++/* 87462*/ OPC_CheckChild3Type, MVT::i32, ++/* 87464*/ OPC_CheckChild4Integer, 1, ++/* 87466*/ OPC_CheckChild4Type, MVT::i32, ++/* 87468*/ OPC_MoveChild5, ++/* 87469*/ OPC_CheckInteger, 1, ++/* 87471*/ OPC_CheckType, MVT::i32, ++/* 87473*/ OPC_MoveParent, ++/* 87474*/ OPC_MoveChild6, ++/* 87475*/ OPC_CheckInteger, 1, ++/* 87477*/ OPC_CheckType, MVT::i32, ++/* 87479*/ OPC_MoveParent, ++/* 87480*/ OPC_MoveChild7, ++/* 87481*/ OPC_CheckInteger, 1, ++/* 87483*/ OPC_CheckType, MVT::i32, ++/* 87485*/ OPC_MoveParent, ++/* 87486*/ OPC_MoveChild, 8, ++/* 87488*/ OPC_CheckInteger, 1, ++/* 87490*/ OPC_CheckType, MVT::i32, ++/* 87492*/ OPC_MoveParent, ++/* 87493*/ OPC_MoveChild, 9, ++/* 87495*/ OPC_CheckInteger, 1, ++/* 87497*/ OPC_CheckType, MVT::i32, ++/* 87499*/ OPC_MoveParent, ++/* 87500*/ OPC_MoveChild, 10, ++/* 87502*/ OPC_CheckInteger, 1, ++/* 87504*/ OPC_CheckType, MVT::i32, ++/* 87506*/ OPC_MoveParent, ++/* 87507*/ OPC_MoveChild, 11, ++/* 87509*/ OPC_CheckInteger, 1, ++/* 87511*/ OPC_CheckType, MVT::i32, ++/* 87513*/ OPC_MoveParent, ++/* 87514*/ OPC_MoveChild, 12, ++/* 87516*/ OPC_CheckInteger, 1, ++/* 87518*/ OPC_CheckType, MVT::i32, ++/* 87520*/ OPC_MoveParent, ++/* 87521*/ OPC_MoveChild, 13, ++/* 87523*/ OPC_CheckInteger, 1, ++/* 87525*/ OPC_CheckType, MVT::i32, ++/* 87527*/ OPC_MoveParent, ++/* 87528*/ OPC_MoveChild, 14, ++/* 87530*/ OPC_CheckInteger, 1, ++/* 87532*/ OPC_CheckType, MVT::i32, ++/* 87534*/ OPC_MoveParent, ++/* 87535*/ OPC_MoveChild, 15, ++/* 87537*/ OPC_CheckInteger, 1, ++/* 87539*/ OPC_CheckType, MVT::i32, ++/* 87541*/ OPC_MoveParent, ++/* 87542*/ OPC_MoveChild, 16, ++/* 87544*/ OPC_CheckInteger, 1, ++/* 87546*/ OPC_CheckType, MVT::i32, ++/* 87548*/ OPC_MoveParent, ++/* 87549*/ OPC_MoveChild, 17, ++/* 87551*/ OPC_CheckInteger, 1, ++/* 87553*/ OPC_CheckType, MVT::i32, ++/* 87555*/ OPC_MoveParent, ++/* 87556*/ OPC_MoveChild, 18, ++/* 87558*/ OPC_CheckInteger, 1, ++/* 87560*/ OPC_CheckType, MVT::i32, ++/* 87562*/ OPC_MoveParent, ++/* 87563*/ OPC_MoveChild, 19, ++/* 87565*/ OPC_CheckInteger, 1, ++/* 87567*/ OPC_CheckType, MVT::i32, ++/* 87569*/ OPC_MoveParent, ++/* 87570*/ OPC_MoveChild, 20, ++/* 87572*/ OPC_CheckInteger, 1, ++/* 87574*/ OPC_CheckType, MVT::i32, ++/* 87576*/ OPC_MoveParent, ++/* 87577*/ OPC_MoveChild, 21, ++/* 87579*/ OPC_CheckInteger, 1, ++/* 87581*/ OPC_CheckType, MVT::i32, ++/* 87583*/ OPC_MoveParent, ++/* 87584*/ OPC_MoveChild, 22, ++/* 87586*/ OPC_CheckInteger, 1, ++/* 87588*/ OPC_CheckType, MVT::i32, ++/* 87590*/ OPC_MoveParent, ++/* 87591*/ OPC_MoveChild, 23, ++/* 87593*/ OPC_CheckInteger, 1, ++/* 87595*/ OPC_CheckType, MVT::i32, ++/* 87597*/ OPC_MoveParent, ++/* 87598*/ OPC_MoveChild, 24, ++/* 87600*/ OPC_CheckInteger, 1, ++/* 87602*/ OPC_CheckType, MVT::i32, ++/* 87604*/ OPC_MoveParent, ++/* 87605*/ OPC_MoveChild, 25, ++/* 87607*/ OPC_CheckInteger, 1, ++/* 87609*/ OPC_CheckType, MVT::i32, ++/* 87611*/ OPC_MoveParent, ++/* 87612*/ OPC_MoveChild, 26, ++/* 87614*/ OPC_CheckInteger, 1, ++/* 87616*/ OPC_CheckType, MVT::i32, ++/* 87618*/ OPC_MoveParent, ++/* 87619*/ OPC_MoveChild, 27, ++/* 87621*/ OPC_CheckInteger, 1, ++/* 87623*/ OPC_CheckType, MVT::i32, ++/* 87625*/ OPC_MoveParent, ++/* 87626*/ OPC_MoveChild, 28, ++/* 87628*/ OPC_CheckInteger, 1, ++/* 87630*/ OPC_CheckType, MVT::i32, ++/* 87632*/ OPC_MoveParent, ++/* 87633*/ OPC_MoveChild, 29, ++/* 87635*/ OPC_CheckInteger, 1, ++/* 87637*/ OPC_CheckType, MVT::i32, ++/* 87639*/ OPC_MoveParent, ++/* 87640*/ OPC_MoveChild, 30, ++/* 87642*/ OPC_CheckInteger, 1, ++/* 87644*/ OPC_CheckType, MVT::i32, ++/* 87646*/ OPC_MoveParent, ++/* 87647*/ OPC_MoveChild, 31, ++/* 87649*/ OPC_CheckInteger, 1, ++/* 87651*/ OPC_CheckType, MVT::i32, ++/* 87653*/ OPC_MoveParent, ++/* 87654*/ OPC_CheckType, MVT::v32i8, ++/* 87656*/ OPC_MoveParent, ++/* 87657*/ OPC_CheckType, MVT::v32i8, ++/* 87659*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 87661*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a), LASX256B:{ *:[v32i8] }:$b), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/* 87669*/ 0, /*End of Scope*/ ++/* 87670*/ /*Scope*/ 89|128,8/*1113*/, /*->88785*/ ++/* 87672*/ OPC_MoveChild0, ++/* 87673*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 87676*/ OPC_CheckChild0Integer, 1, ++/* 87678*/ OPC_CheckChild0Type, MVT::i32, ++/* 87680*/ OPC_CheckChild1Integer, 1, ++/* 87682*/ OPC_CheckChild1Type, MVT::i32, ++/* 87684*/ OPC_CheckChild2Integer, 1, ++/* 87686*/ OPC_CheckChild2Type, MVT::i32, ++/* 87688*/ OPC_CheckChild3Integer, 1, ++/* 87690*/ OPC_CheckChild3Type, MVT::i32, ++/* 87692*/ OPC_CheckChild4Integer, 1, ++/* 87694*/ OPC_CheckChild4Type, MVT::i32, ++/* 87696*/ OPC_MoveChild5, ++/* 87697*/ OPC_CheckInteger, 1, ++/* 87699*/ OPC_CheckType, MVT::i32, ++/* 87701*/ OPC_MoveParent, ++/* 87702*/ OPC_MoveChild6, ++/* 87703*/ OPC_CheckInteger, 1, ++/* 87705*/ OPC_CheckType, MVT::i32, ++/* 87707*/ OPC_MoveParent, ++/* 87708*/ OPC_MoveChild7, ++/* 87709*/ OPC_CheckInteger, 1, ++/* 87711*/ OPC_CheckType, MVT::i32, ++/* 87713*/ OPC_MoveParent, ++/* 87714*/ OPC_MoveChild, 8, ++/* 87716*/ OPC_CheckInteger, 1, ++/* 87718*/ OPC_CheckType, MVT::i32, ++/* 87720*/ OPC_MoveParent, ++/* 87721*/ OPC_MoveChild, 9, ++/* 87723*/ OPC_CheckInteger, 1, ++/* 87725*/ OPC_CheckType, MVT::i32, ++/* 87727*/ OPC_MoveParent, ++/* 87728*/ OPC_MoveChild, 10, ++/* 87730*/ OPC_CheckInteger, 1, ++/* 87732*/ OPC_CheckType, MVT::i32, ++/* 87734*/ OPC_MoveParent, ++/* 87735*/ OPC_MoveChild, 11, ++/* 87737*/ OPC_CheckInteger, 1, ++/* 87739*/ OPC_CheckType, MVT::i32, ++/* 87741*/ OPC_MoveParent, ++/* 87742*/ OPC_MoveChild, 12, ++/* 87744*/ OPC_CheckInteger, 1, ++/* 87746*/ OPC_CheckType, MVT::i32, ++/* 87748*/ OPC_MoveParent, ++/* 87749*/ OPC_MoveChild, 13, ++/* 87751*/ OPC_CheckInteger, 1, ++/* 87753*/ OPC_CheckType, MVT::i32, ++/* 87755*/ OPC_MoveParent, ++/* 87756*/ OPC_MoveChild, 14, ++/* 87758*/ OPC_CheckInteger, 1, ++/* 87760*/ OPC_CheckType, MVT::i32, ++/* 87762*/ OPC_MoveParent, ++/* 87763*/ OPC_MoveChild, 15, ++/* 87765*/ OPC_CheckInteger, 1, ++/* 87767*/ OPC_CheckType, MVT::i32, ++/* 87769*/ OPC_MoveParent, ++/* 87770*/ OPC_MoveChild, 16, ++/* 87772*/ OPC_CheckInteger, 1, ++/* 87774*/ OPC_CheckType, MVT::i32, ++/* 87776*/ OPC_MoveParent, ++/* 87777*/ OPC_MoveChild, 17, ++/* 87779*/ OPC_CheckInteger, 1, ++/* 87781*/ OPC_CheckType, MVT::i32, ++/* 87783*/ OPC_MoveParent, ++/* 87784*/ OPC_MoveChild, 18, ++/* 87786*/ OPC_CheckInteger, 1, ++/* 87788*/ OPC_CheckType, MVT::i32, ++/* 87790*/ OPC_MoveParent, ++/* 87791*/ OPC_MoveChild, 19, ++/* 87793*/ OPC_CheckInteger, 1, ++/* 87795*/ OPC_CheckType, MVT::i32, ++/* 87797*/ OPC_MoveParent, ++/* 87798*/ OPC_MoveChild, 20, ++/* 87800*/ OPC_CheckInteger, 1, ++/* 87802*/ OPC_CheckType, MVT::i32, ++/* 87804*/ OPC_MoveParent, ++/* 87805*/ OPC_MoveChild, 21, ++/* 87807*/ OPC_CheckInteger, 1, ++/* 87809*/ OPC_CheckType, MVT::i32, ++/* 87811*/ OPC_MoveParent, ++/* 87812*/ OPC_MoveChild, 22, ++/* 87814*/ OPC_CheckInteger, 1, ++/* 87816*/ OPC_CheckType, MVT::i32, ++/* 87818*/ OPC_MoveParent, ++/* 87819*/ OPC_MoveChild, 23, ++/* 87821*/ OPC_CheckInteger, 1, ++/* 87823*/ OPC_CheckType, MVT::i32, ++/* 87825*/ OPC_MoveParent, ++/* 87826*/ OPC_MoveChild, 24, ++/* 87828*/ OPC_CheckInteger, 1, ++/* 87830*/ OPC_CheckType, MVT::i32, ++/* 87832*/ OPC_MoveParent, ++/* 87833*/ OPC_MoveChild, 25, ++/* 87835*/ OPC_CheckInteger, 1, ++/* 87837*/ OPC_CheckType, MVT::i32, ++/* 87839*/ OPC_MoveParent, ++/* 87840*/ OPC_MoveChild, 26, ++/* 87842*/ OPC_CheckInteger, 1, ++/* 87844*/ OPC_CheckType, MVT::i32, ++/* 87846*/ OPC_MoveParent, ++/* 87847*/ OPC_MoveChild, 27, ++/* 87849*/ OPC_CheckInteger, 1, ++/* 87851*/ OPC_CheckType, MVT::i32, ++/* 87853*/ OPC_MoveParent, ++/* 87854*/ OPC_MoveChild, 28, ++/* 87856*/ OPC_CheckInteger, 1, ++/* 87858*/ OPC_CheckType, MVT::i32, ++/* 87860*/ OPC_MoveParent, ++/* 87861*/ OPC_MoveChild, 29, ++/* 87863*/ OPC_CheckInteger, 1, ++/* 87865*/ OPC_CheckType, MVT::i32, ++/* 87867*/ OPC_MoveParent, ++/* 87868*/ OPC_MoveChild, 30, ++/* 87870*/ OPC_CheckInteger, 1, ++/* 87872*/ OPC_CheckType, MVT::i32, ++/* 87874*/ OPC_MoveParent, ++/* 87875*/ OPC_MoveChild, 31, ++/* 87877*/ OPC_CheckInteger, 1, ++/* 87879*/ OPC_CheckType, MVT::i32, ++/* 87881*/ OPC_MoveParent, ++/* 87882*/ OPC_MoveParent, ++/* 87883*/ OPC_MoveChild1, ++/* 87884*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/* 87887*/ OPC_Scope, 62|128,3/*446*/, /*->88336*/ // 2 children in Scope ++/* 87890*/ OPC_CheckChild0Same, 0, ++/* 87892*/ OPC_CheckChild1Same, 1, ++/* 87894*/ OPC_MoveParent, ++/* 87895*/ OPC_MoveParent, ++/* 87896*/ OPC_MoveChild1, ++/* 87897*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 87900*/ OPC_CheckChild0Integer, 7, ++/* 87902*/ OPC_CheckChild0Type, MVT::i32, ++/* 87904*/ OPC_CheckChild1Integer, 7, ++/* 87906*/ OPC_CheckChild1Type, MVT::i32, ++/* 87908*/ OPC_CheckChild2Integer, 7, ++/* 87910*/ OPC_CheckChild2Type, MVT::i32, ++/* 87912*/ OPC_CheckChild3Integer, 7, ++/* 87914*/ OPC_CheckChild3Type, MVT::i32, ++/* 87916*/ OPC_CheckChild4Integer, 7, ++/* 87918*/ OPC_CheckChild4Type, MVT::i32, ++/* 87920*/ OPC_MoveChild5, ++/* 87921*/ OPC_CheckInteger, 7, ++/* 87923*/ OPC_CheckType, MVT::i32, ++/* 87925*/ OPC_MoveParent, ++/* 87926*/ OPC_MoveChild6, ++/* 87927*/ OPC_CheckInteger, 7, ++/* 87929*/ OPC_CheckType, MVT::i32, ++/* 87931*/ OPC_MoveParent, ++/* 87932*/ OPC_MoveChild7, ++/* 87933*/ OPC_CheckInteger, 7, ++/* 87935*/ OPC_CheckType, MVT::i32, ++/* 87937*/ OPC_MoveParent, ++/* 87938*/ OPC_MoveChild, 8, ++/* 87940*/ OPC_CheckInteger, 7, ++/* 87942*/ OPC_CheckType, MVT::i32, ++/* 87944*/ OPC_MoveParent, ++/* 87945*/ OPC_MoveChild, 9, ++/* 87947*/ OPC_CheckInteger, 7, ++/* 87949*/ OPC_CheckType, MVT::i32, ++/* 87951*/ OPC_MoveParent, ++/* 87952*/ OPC_MoveChild, 10, ++/* 87954*/ OPC_CheckInteger, 7, ++/* 87956*/ OPC_CheckType, MVT::i32, ++/* 87958*/ OPC_MoveParent, ++/* 87959*/ OPC_MoveChild, 11, ++/* 87961*/ OPC_CheckInteger, 7, ++/* 87963*/ OPC_CheckType, MVT::i32, ++/* 87965*/ OPC_MoveParent, ++/* 87966*/ OPC_MoveChild, 12, ++/* 87968*/ OPC_CheckInteger, 7, ++/* 87970*/ OPC_CheckType, MVT::i32, ++/* 87972*/ OPC_MoveParent, ++/* 87973*/ OPC_MoveChild, 13, ++/* 87975*/ OPC_CheckInteger, 7, ++/* 87977*/ OPC_CheckType, MVT::i32, ++/* 87979*/ OPC_MoveParent, ++/* 87980*/ OPC_MoveChild, 14, ++/* 87982*/ OPC_CheckInteger, 7, ++/* 87984*/ OPC_CheckType, MVT::i32, ++/* 87986*/ OPC_MoveParent, ++/* 87987*/ OPC_MoveChild, 15, ++/* 87989*/ OPC_CheckInteger, 7, ++/* 87991*/ OPC_CheckType, MVT::i32, ++/* 87993*/ OPC_MoveParent, ++/* 87994*/ OPC_MoveChild, 16, ++/* 87996*/ OPC_CheckInteger, 7, ++/* 87998*/ OPC_CheckType, MVT::i32, ++/* 88000*/ OPC_MoveParent, ++/* 88001*/ OPC_MoveChild, 17, ++/* 88003*/ OPC_CheckInteger, 7, ++/* 88005*/ OPC_CheckType, MVT::i32, ++/* 88007*/ OPC_MoveParent, ++/* 88008*/ OPC_MoveChild, 18, ++/* 88010*/ OPC_CheckInteger, 7, ++/* 88012*/ OPC_CheckType, MVT::i32, ++/* 88014*/ OPC_MoveParent, ++/* 88015*/ OPC_MoveChild, 19, ++/* 88017*/ OPC_CheckInteger, 7, ++/* 88019*/ OPC_CheckType, MVT::i32, ++/* 88021*/ OPC_MoveParent, ++/* 88022*/ OPC_MoveChild, 20, ++/* 88024*/ OPC_CheckInteger, 7, ++/* 88026*/ OPC_CheckType, MVT::i32, ++/* 88028*/ OPC_MoveParent, ++/* 88029*/ OPC_MoveChild, 21, ++/* 88031*/ OPC_CheckInteger, 7, ++/* 88033*/ OPC_CheckType, MVT::i32, ++/* 88035*/ OPC_MoveParent, ++/* 88036*/ OPC_MoveChild, 22, ++/* 88038*/ OPC_CheckInteger, 7, ++/* 88040*/ OPC_CheckType, MVT::i32, ++/* 88042*/ OPC_MoveParent, ++/* 88043*/ OPC_MoveChild, 23, ++/* 88045*/ OPC_CheckInteger, 7, ++/* 88047*/ OPC_CheckType, MVT::i32, ++/* 88049*/ OPC_MoveParent, ++/* 88050*/ OPC_MoveChild, 24, ++/* 88052*/ OPC_CheckInteger, 7, ++/* 88054*/ OPC_CheckType, MVT::i32, ++/* 88056*/ OPC_MoveParent, ++/* 88057*/ OPC_MoveChild, 25, ++/* 88059*/ OPC_CheckInteger, 7, ++/* 88061*/ OPC_CheckType, MVT::i32, ++/* 88063*/ OPC_MoveParent, ++/* 88064*/ OPC_MoveChild, 26, ++/* 88066*/ OPC_CheckInteger, 7, ++/* 88068*/ OPC_CheckType, MVT::i32, ++/* 88070*/ OPC_MoveParent, ++/* 88071*/ OPC_MoveChild, 27, ++/* 88073*/ OPC_CheckInteger, 7, ++/* 88075*/ OPC_CheckType, MVT::i32, ++/* 88077*/ OPC_MoveParent, ++/* 88078*/ OPC_MoveChild, 28, ++/* 88080*/ OPC_CheckInteger, 7, ++/* 88082*/ OPC_CheckType, MVT::i32, ++/* 88084*/ OPC_MoveParent, ++/* 88085*/ OPC_MoveChild, 29, ++/* 88087*/ OPC_CheckInteger, 7, ++/* 88089*/ OPC_CheckType, MVT::i32, ++/* 88091*/ OPC_MoveParent, ++/* 88092*/ OPC_MoveChild, 30, ++/* 88094*/ OPC_CheckInteger, 7, ++/* 88096*/ OPC_CheckType, MVT::i32, ++/* 88098*/ OPC_MoveParent, ++/* 88099*/ OPC_MoveChild, 31, ++/* 88101*/ OPC_CheckInteger, 7, ++/* 88103*/ OPC_CheckType, MVT::i32, ++/* 88105*/ OPC_MoveParent, ++/* 88106*/ OPC_CheckType, MVT::v32i8, ++/* 88108*/ OPC_MoveParent, ++/* 88109*/ OPC_MoveParent, ++/* 88110*/ OPC_MoveParent, ++/* 88111*/ OPC_MoveChild1, ++/* 88112*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 88115*/ OPC_CheckChild0Integer, 1, ++/* 88117*/ OPC_CheckChild0Type, MVT::i32, ++/* 88119*/ OPC_CheckChild1Integer, 1, ++/* 88121*/ OPC_CheckChild1Type, MVT::i32, ++/* 88123*/ OPC_CheckChild2Integer, 1, ++/* 88125*/ OPC_CheckChild2Type, MVT::i32, ++/* 88127*/ OPC_CheckChild3Integer, 1, ++/* 88129*/ OPC_CheckChild3Type, MVT::i32, ++/* 88131*/ OPC_CheckChild4Integer, 1, ++/* 88133*/ OPC_CheckChild4Type, MVT::i32, ++/* 88135*/ OPC_MoveChild5, ++/* 88136*/ OPC_CheckInteger, 1, ++/* 88138*/ OPC_CheckType, MVT::i32, ++/* 88140*/ OPC_MoveParent, ++/* 88141*/ OPC_MoveChild6, ++/* 88142*/ OPC_CheckInteger, 1, ++/* 88144*/ OPC_CheckType, MVT::i32, ++/* 88146*/ OPC_MoveParent, ++/* 88147*/ OPC_MoveChild7, ++/* 88148*/ OPC_CheckInteger, 1, ++/* 88150*/ OPC_CheckType, MVT::i32, ++/* 88152*/ OPC_MoveParent, ++/* 88153*/ OPC_MoveChild, 8, ++/* 88155*/ OPC_CheckInteger, 1, ++/* 88157*/ OPC_CheckType, MVT::i32, ++/* 88159*/ OPC_MoveParent, ++/* 88160*/ OPC_MoveChild, 9, ++/* 88162*/ OPC_CheckInteger, 1, ++/* 88164*/ OPC_CheckType, MVT::i32, ++/* 88166*/ OPC_MoveParent, ++/* 88167*/ OPC_MoveChild, 10, ++/* 88169*/ OPC_CheckInteger, 1, ++/* 88171*/ OPC_CheckType, MVT::i32, ++/* 88173*/ OPC_MoveParent, ++/* 88174*/ OPC_MoveChild, 11, ++/* 88176*/ OPC_CheckInteger, 1, ++/* 88178*/ OPC_CheckType, MVT::i32, ++/* 88180*/ OPC_MoveParent, ++/* 88181*/ OPC_MoveChild, 12, ++/* 88183*/ OPC_CheckInteger, 1, ++/* 88185*/ OPC_CheckType, MVT::i32, ++/* 88187*/ OPC_MoveParent, ++/* 88188*/ OPC_MoveChild, 13, ++/* 88190*/ OPC_CheckInteger, 1, ++/* 88192*/ OPC_CheckType, MVT::i32, ++/* 88194*/ OPC_MoveParent, ++/* 88195*/ OPC_MoveChild, 14, ++/* 88197*/ OPC_CheckInteger, 1, ++/* 88199*/ OPC_CheckType, MVT::i32, ++/* 88201*/ OPC_MoveParent, ++/* 88202*/ OPC_MoveChild, 15, ++/* 88204*/ OPC_CheckInteger, 1, ++/* 88206*/ OPC_CheckType, MVT::i32, ++/* 88208*/ OPC_MoveParent, ++/* 88209*/ OPC_MoveChild, 16, ++/* 88211*/ OPC_CheckInteger, 1, ++/* 88213*/ OPC_CheckType, MVT::i32, ++/* 88215*/ OPC_MoveParent, ++/* 88216*/ OPC_MoveChild, 17, ++/* 88218*/ OPC_CheckInteger, 1, ++/* 88220*/ OPC_CheckType, MVT::i32, ++/* 88222*/ OPC_MoveParent, ++/* 88223*/ OPC_MoveChild, 18, ++/* 88225*/ OPC_CheckInteger, 1, ++/* 88227*/ OPC_CheckType, MVT::i32, ++/* 88229*/ OPC_MoveParent, ++/* 88230*/ OPC_MoveChild, 19, ++/* 88232*/ OPC_CheckInteger, 1, ++/* 88234*/ OPC_CheckType, MVT::i32, ++/* 88236*/ OPC_MoveParent, ++/* 88237*/ OPC_MoveChild, 20, ++/* 88239*/ OPC_CheckInteger, 1, ++/* 88241*/ OPC_CheckType, MVT::i32, ++/* 88243*/ OPC_MoveParent, ++/* 88244*/ OPC_MoveChild, 21, ++/* 88246*/ OPC_CheckInteger, 1, ++/* 88248*/ OPC_CheckType, MVT::i32, ++/* 88250*/ OPC_MoveParent, ++/* 88251*/ OPC_MoveChild, 22, ++/* 88253*/ OPC_CheckInteger, 1, ++/* 88255*/ OPC_CheckType, MVT::i32, ++/* 88257*/ OPC_MoveParent, ++/* 88258*/ OPC_MoveChild, 23, ++/* 88260*/ OPC_CheckInteger, 1, ++/* 88262*/ OPC_CheckType, MVT::i32, ++/* 88264*/ OPC_MoveParent, ++/* 88265*/ OPC_MoveChild, 24, ++/* 88267*/ OPC_CheckInteger, 1, ++/* 88269*/ OPC_CheckType, MVT::i32, ++/* 88271*/ OPC_MoveParent, ++/* 88272*/ OPC_MoveChild, 25, ++/* 88274*/ OPC_CheckInteger, 1, ++/* 88276*/ OPC_CheckType, MVT::i32, ++/* 88278*/ OPC_MoveParent, ++/* 88279*/ OPC_MoveChild, 26, ++/* 88281*/ OPC_CheckInteger, 1, ++/* 88283*/ OPC_CheckType, MVT::i32, ++/* 88285*/ OPC_MoveParent, ++/* 88286*/ OPC_MoveChild, 27, ++/* 88288*/ OPC_CheckInteger, 1, ++/* 88290*/ OPC_CheckType, MVT::i32, ++/* 88292*/ OPC_MoveParent, ++/* 88293*/ OPC_MoveChild, 28, ++/* 88295*/ OPC_CheckInteger, 1, ++/* 88297*/ OPC_CheckType, MVT::i32, ++/* 88299*/ OPC_MoveParent, ++/* 88300*/ OPC_MoveChild, 29, ++/* 88302*/ OPC_CheckInteger, 1, ++/* 88304*/ OPC_CheckType, MVT::i32, ++/* 88306*/ OPC_MoveParent, ++/* 88307*/ OPC_MoveChild, 30, ++/* 88309*/ OPC_CheckInteger, 1, ++/* 88311*/ OPC_CheckType, MVT::i32, ++/* 88313*/ OPC_MoveParent, ++/* 88314*/ OPC_MoveChild, 31, ++/* 88316*/ OPC_CheckInteger, 1, ++/* 88318*/ OPC_CheckType, MVT::i32, ++/* 88320*/ OPC_MoveParent, ++/* 88321*/ OPC_CheckType, MVT::v32i8, ++/* 88323*/ OPC_MoveParent, ++/* 88324*/ OPC_CheckType, MVT::v32i8, ++/* 88326*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 88328*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a), LASX256B:{ *:[v32i8] }:$b), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/* 88336*/ /*Scope*/ 62|128,3/*446*/, /*->88784*/ ++/* 88338*/ OPC_CheckChild0Same, 1, ++/* 88340*/ OPC_CheckChild1Same, 0, ++/* 88342*/ OPC_MoveParent, ++/* 88343*/ OPC_MoveParent, ++/* 88344*/ OPC_MoveChild1, ++/* 88345*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 88348*/ OPC_CheckChild0Integer, 7, ++/* 88350*/ OPC_CheckChild0Type, MVT::i32, ++/* 88352*/ OPC_CheckChild1Integer, 7, ++/* 88354*/ OPC_CheckChild1Type, MVT::i32, ++/* 88356*/ OPC_CheckChild2Integer, 7, ++/* 88358*/ OPC_CheckChild2Type, MVT::i32, ++/* 88360*/ OPC_CheckChild3Integer, 7, ++/* 88362*/ OPC_CheckChild3Type, MVT::i32, ++/* 88364*/ OPC_CheckChild4Integer, 7, ++/* 88366*/ OPC_CheckChild4Type, MVT::i32, ++/* 88368*/ OPC_MoveChild5, ++/* 88369*/ OPC_CheckInteger, 7, ++/* 88371*/ OPC_CheckType, MVT::i32, ++/* 88373*/ OPC_MoveParent, ++/* 88374*/ OPC_MoveChild6, ++/* 88375*/ OPC_CheckInteger, 7, ++/* 88377*/ OPC_CheckType, MVT::i32, ++/* 88379*/ OPC_MoveParent, ++/* 88380*/ OPC_MoveChild7, ++/* 88381*/ OPC_CheckInteger, 7, ++/* 88383*/ OPC_CheckType, MVT::i32, ++/* 88385*/ OPC_MoveParent, ++/* 88386*/ OPC_MoveChild, 8, ++/* 88388*/ OPC_CheckInteger, 7, ++/* 88390*/ OPC_CheckType, MVT::i32, ++/* 88392*/ OPC_MoveParent, ++/* 88393*/ OPC_MoveChild, 9, ++/* 88395*/ OPC_CheckInteger, 7, ++/* 88397*/ OPC_CheckType, MVT::i32, ++/* 88399*/ OPC_MoveParent, ++/* 88400*/ OPC_MoveChild, 10, ++/* 88402*/ OPC_CheckInteger, 7, ++/* 88404*/ OPC_CheckType, MVT::i32, ++/* 88406*/ OPC_MoveParent, ++/* 88407*/ OPC_MoveChild, 11, ++/* 88409*/ OPC_CheckInteger, 7, ++/* 88411*/ OPC_CheckType, MVT::i32, ++/* 88413*/ OPC_MoveParent, ++/* 88414*/ OPC_MoveChild, 12, ++/* 88416*/ OPC_CheckInteger, 7, ++/* 88418*/ OPC_CheckType, MVT::i32, ++/* 88420*/ OPC_MoveParent, ++/* 88421*/ OPC_MoveChild, 13, ++/* 88423*/ OPC_CheckInteger, 7, ++/* 88425*/ OPC_CheckType, MVT::i32, ++/* 88427*/ OPC_MoveParent, ++/* 88428*/ OPC_MoveChild, 14, ++/* 88430*/ OPC_CheckInteger, 7, ++/* 88432*/ OPC_CheckType, MVT::i32, ++/* 88434*/ OPC_MoveParent, ++/* 88435*/ OPC_MoveChild, 15, ++/* 88437*/ OPC_CheckInteger, 7, ++/* 88439*/ OPC_CheckType, MVT::i32, ++/* 88441*/ OPC_MoveParent, ++/* 88442*/ OPC_MoveChild, 16, ++/* 88444*/ OPC_CheckInteger, 7, ++/* 88446*/ OPC_CheckType, MVT::i32, ++/* 88448*/ OPC_MoveParent, ++/* 88449*/ OPC_MoveChild, 17, ++/* 88451*/ OPC_CheckInteger, 7, ++/* 88453*/ OPC_CheckType, MVT::i32, ++/* 88455*/ OPC_MoveParent, ++/* 88456*/ OPC_MoveChild, 18, ++/* 88458*/ OPC_CheckInteger, 7, ++/* 88460*/ OPC_CheckType, MVT::i32, ++/* 88462*/ OPC_MoveParent, ++/* 88463*/ OPC_MoveChild, 19, ++/* 88465*/ OPC_CheckInteger, 7, ++/* 88467*/ OPC_CheckType, MVT::i32, ++/* 88469*/ OPC_MoveParent, ++/* 88470*/ OPC_MoveChild, 20, ++/* 88472*/ OPC_CheckInteger, 7, ++/* 88474*/ OPC_CheckType, MVT::i32, ++/* 88476*/ OPC_MoveParent, ++/* 88477*/ OPC_MoveChild, 21, ++/* 88479*/ OPC_CheckInteger, 7, ++/* 88481*/ OPC_CheckType, MVT::i32, ++/* 88483*/ OPC_MoveParent, ++/* 88484*/ OPC_MoveChild, 22, ++/* 88486*/ OPC_CheckInteger, 7, ++/* 88488*/ OPC_CheckType, MVT::i32, ++/* 88490*/ OPC_MoveParent, ++/* 88491*/ OPC_MoveChild, 23, ++/* 88493*/ OPC_CheckInteger, 7, ++/* 88495*/ OPC_CheckType, MVT::i32, ++/* 88497*/ OPC_MoveParent, ++/* 88498*/ OPC_MoveChild, 24, ++/* 88500*/ OPC_CheckInteger, 7, ++/* 88502*/ OPC_CheckType, MVT::i32, ++/* 88504*/ OPC_MoveParent, ++/* 88505*/ OPC_MoveChild, 25, ++/* 88507*/ OPC_CheckInteger, 7, ++/* 88509*/ OPC_CheckType, MVT::i32, ++/* 88511*/ OPC_MoveParent, ++/* 88512*/ OPC_MoveChild, 26, ++/* 88514*/ OPC_CheckInteger, 7, ++/* 88516*/ OPC_CheckType, MVT::i32, ++/* 88518*/ OPC_MoveParent, ++/* 88519*/ OPC_MoveChild, 27, ++/* 88521*/ OPC_CheckInteger, 7, ++/* 88523*/ OPC_CheckType, MVT::i32, ++/* 88525*/ OPC_MoveParent, ++/* 88526*/ OPC_MoveChild, 28, ++/* 88528*/ OPC_CheckInteger, 7, ++/* 88530*/ OPC_CheckType, MVT::i32, ++/* 88532*/ OPC_MoveParent, ++/* 88533*/ OPC_MoveChild, 29, ++/* 88535*/ OPC_CheckInteger, 7, ++/* 88537*/ OPC_CheckType, MVT::i32, ++/* 88539*/ OPC_MoveParent, ++/* 88540*/ OPC_MoveChild, 30, ++/* 88542*/ OPC_CheckInteger, 7, ++/* 88544*/ OPC_CheckType, MVT::i32, ++/* 88546*/ OPC_MoveParent, ++/* 88547*/ OPC_MoveChild, 31, ++/* 88549*/ OPC_CheckInteger, 7, ++/* 88551*/ OPC_CheckType, MVT::i32, ++/* 88553*/ OPC_MoveParent, ++/* 88554*/ OPC_CheckType, MVT::v32i8, ++/* 88556*/ OPC_MoveParent, ++/* 88557*/ OPC_MoveParent, ++/* 88558*/ OPC_MoveParent, ++/* 88559*/ OPC_MoveChild1, ++/* 88560*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 88563*/ OPC_CheckChild0Integer, 1, ++/* 88565*/ OPC_CheckChild0Type, MVT::i32, ++/* 88567*/ OPC_CheckChild1Integer, 1, ++/* 88569*/ OPC_CheckChild1Type, MVT::i32, ++/* 88571*/ OPC_CheckChild2Integer, 1, ++/* 88573*/ OPC_CheckChild2Type, MVT::i32, ++/* 88575*/ OPC_CheckChild3Integer, 1, ++/* 88577*/ OPC_CheckChild3Type, MVT::i32, ++/* 88579*/ OPC_CheckChild4Integer, 1, ++/* 88581*/ OPC_CheckChild4Type, MVT::i32, ++/* 88583*/ OPC_MoveChild5, ++/* 88584*/ OPC_CheckInteger, 1, ++/* 88586*/ OPC_CheckType, MVT::i32, ++/* 88588*/ OPC_MoveParent, ++/* 88589*/ OPC_MoveChild6, ++/* 88590*/ OPC_CheckInteger, 1, ++/* 88592*/ OPC_CheckType, MVT::i32, ++/* 88594*/ OPC_MoveParent, ++/* 88595*/ OPC_MoveChild7, ++/* 88596*/ OPC_CheckInteger, 1, ++/* 88598*/ OPC_CheckType, MVT::i32, ++/* 88600*/ OPC_MoveParent, ++/* 88601*/ OPC_MoveChild, 8, ++/* 88603*/ OPC_CheckInteger, 1, ++/* 88605*/ OPC_CheckType, MVT::i32, ++/* 88607*/ OPC_MoveParent, ++/* 88608*/ OPC_MoveChild, 9, ++/* 88610*/ OPC_CheckInteger, 1, ++/* 88612*/ OPC_CheckType, MVT::i32, ++/* 88614*/ OPC_MoveParent, ++/* 88615*/ OPC_MoveChild, 10, ++/* 88617*/ OPC_CheckInteger, 1, ++/* 88619*/ OPC_CheckType, MVT::i32, ++/* 88621*/ OPC_MoveParent, ++/* 88622*/ OPC_MoveChild, 11, ++/* 88624*/ OPC_CheckInteger, 1, ++/* 88626*/ OPC_CheckType, MVT::i32, ++/* 88628*/ OPC_MoveParent, ++/* 88629*/ OPC_MoveChild, 12, ++/* 88631*/ OPC_CheckInteger, 1, ++/* 88633*/ OPC_CheckType, MVT::i32, ++/* 88635*/ OPC_MoveParent, ++/* 88636*/ OPC_MoveChild, 13, ++/* 88638*/ OPC_CheckInteger, 1, ++/* 88640*/ OPC_CheckType, MVT::i32, ++/* 88642*/ OPC_MoveParent, ++/* 88643*/ OPC_MoveChild, 14, ++/* 88645*/ OPC_CheckInteger, 1, ++/* 88647*/ OPC_CheckType, MVT::i32, ++/* 88649*/ OPC_MoveParent, ++/* 88650*/ OPC_MoveChild, 15, ++/* 88652*/ OPC_CheckInteger, 1, ++/* 88654*/ OPC_CheckType, MVT::i32, ++/* 88656*/ OPC_MoveParent, ++/* 88657*/ OPC_MoveChild, 16, ++/* 88659*/ OPC_CheckInteger, 1, ++/* 88661*/ OPC_CheckType, MVT::i32, ++/* 88663*/ OPC_MoveParent, ++/* 88664*/ OPC_MoveChild, 17, ++/* 88666*/ OPC_CheckInteger, 1, ++/* 88668*/ OPC_CheckType, MVT::i32, ++/* 88670*/ OPC_MoveParent, ++/* 88671*/ OPC_MoveChild, 18, ++/* 88673*/ OPC_CheckInteger, 1, ++/* 88675*/ OPC_CheckType, MVT::i32, ++/* 88677*/ OPC_MoveParent, ++/* 88678*/ OPC_MoveChild, 19, ++/* 88680*/ OPC_CheckInteger, 1, ++/* 88682*/ OPC_CheckType, MVT::i32, ++/* 88684*/ OPC_MoveParent, ++/* 88685*/ OPC_MoveChild, 20, ++/* 88687*/ OPC_CheckInteger, 1, ++/* 88689*/ OPC_CheckType, MVT::i32, ++/* 88691*/ OPC_MoveParent, ++/* 88692*/ OPC_MoveChild, 21, ++/* 88694*/ OPC_CheckInteger, 1, ++/* 88696*/ OPC_CheckType, MVT::i32, ++/* 88698*/ OPC_MoveParent, ++/* 88699*/ OPC_MoveChild, 22, ++/* 88701*/ OPC_CheckInteger, 1, ++/* 88703*/ OPC_CheckType, MVT::i32, ++/* 88705*/ OPC_MoveParent, ++/* 88706*/ OPC_MoveChild, 23, ++/* 88708*/ OPC_CheckInteger, 1, ++/* 88710*/ OPC_CheckType, MVT::i32, ++/* 88712*/ OPC_MoveParent, ++/* 88713*/ OPC_MoveChild, 24, ++/* 88715*/ OPC_CheckInteger, 1, ++/* 88717*/ OPC_CheckType, MVT::i32, ++/* 88719*/ OPC_MoveParent, ++/* 88720*/ OPC_MoveChild, 25, ++/* 88722*/ OPC_CheckInteger, 1, ++/* 88724*/ OPC_CheckType, MVT::i32, ++/* 88726*/ OPC_MoveParent, ++/* 88727*/ OPC_MoveChild, 26, ++/* 88729*/ OPC_CheckInteger, 1, ++/* 88731*/ OPC_CheckType, MVT::i32, ++/* 88733*/ OPC_MoveParent, ++/* 88734*/ OPC_MoveChild, 27, ++/* 88736*/ OPC_CheckInteger, 1, ++/* 88738*/ OPC_CheckType, MVT::i32, ++/* 88740*/ OPC_MoveParent, ++/* 88741*/ OPC_MoveChild, 28, ++/* 88743*/ OPC_CheckInteger, 1, ++/* 88745*/ OPC_CheckType, MVT::i32, ++/* 88747*/ OPC_MoveParent, ++/* 88748*/ OPC_MoveChild, 29, ++/* 88750*/ OPC_CheckInteger, 1, ++/* 88752*/ OPC_CheckType, MVT::i32, ++/* 88754*/ OPC_MoveParent, ++/* 88755*/ OPC_MoveChild, 30, ++/* 88757*/ OPC_CheckInteger, 1, ++/* 88759*/ OPC_CheckType, MVT::i32, ++/* 88761*/ OPC_MoveParent, ++/* 88762*/ OPC_MoveChild, 31, ++/* 88764*/ OPC_CheckInteger, 1, ++/* 88766*/ OPC_CheckType, MVT::i32, ++/* 88768*/ OPC_MoveParent, ++/* 88769*/ OPC_CheckType, MVT::v32i8, ++/* 88771*/ OPC_MoveParent, ++/* 88772*/ OPC_CheckType, MVT::v32i8, ++/* 88774*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 88776*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a), LASX256B:{ *:[v32i8] }:$b), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/* 88784*/ 0, /*End of Scope*/ ++/* 88785*/ 0, /*End of Scope*/ ++/* 88786*/ /*Scope*/ 14|128,62/*7950*/, /*->96738*/ ++/* 88788*/ OPC_RecordChild0, // #0 = $a ++/* 88789*/ OPC_MoveChild1, ++/* 88790*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 88793*/ OPC_CheckChild0Integer, 1, ++/* 88795*/ OPC_CheckChild0Type, MVT::i32, ++/* 88797*/ OPC_CheckChild1Integer, 1, ++/* 88799*/ OPC_CheckChild1Type, MVT::i32, ++/* 88801*/ OPC_CheckChild2Integer, 1, ++/* 88803*/ OPC_CheckChild2Type, MVT::i32, ++/* 88805*/ OPC_CheckChild3Integer, 1, ++/* 88807*/ OPC_CheckChild3Type, MVT::i32, ++/* 88809*/ OPC_CheckChild4Integer, 1, ++/* 88811*/ OPC_CheckChild4Type, MVT::i32, ++/* 88813*/ OPC_MoveChild5, ++/* 88814*/ OPC_CheckInteger, 1, ++/* 88816*/ OPC_CheckType, MVT::i32, ++/* 88818*/ OPC_MoveParent, ++/* 88819*/ OPC_MoveChild6, ++/* 88820*/ OPC_CheckInteger, 1, ++/* 88822*/ OPC_CheckType, MVT::i32, ++/* 88824*/ OPC_MoveParent, ++/* 88825*/ OPC_MoveChild7, ++/* 88826*/ OPC_CheckInteger, 1, ++/* 88828*/ OPC_CheckType, MVT::i32, ++/* 88830*/ OPC_MoveParent, ++/* 88831*/ OPC_MoveChild, 8, ++/* 88833*/ OPC_CheckInteger, 1, ++/* 88835*/ OPC_CheckType, MVT::i32, ++/* 88837*/ OPC_MoveParent, ++/* 88838*/ OPC_MoveChild, 9, ++/* 88840*/ OPC_CheckInteger, 1, ++/* 88842*/ OPC_CheckType, MVT::i32, ++/* 88844*/ OPC_MoveParent, ++/* 88845*/ OPC_MoveChild, 10, ++/* 88847*/ OPC_CheckInteger, 1, ++/* 88849*/ OPC_CheckType, MVT::i32, ++/* 88851*/ OPC_MoveParent, ++/* 88852*/ OPC_MoveChild, 11, ++/* 88854*/ OPC_CheckInteger, 1, ++/* 88856*/ OPC_CheckType, MVT::i32, ++/* 88858*/ OPC_MoveParent, ++/* 88859*/ OPC_MoveChild, 12, ++/* 88861*/ OPC_CheckInteger, 1, ++/* 88863*/ OPC_CheckType, MVT::i32, ++/* 88865*/ OPC_MoveParent, ++/* 88866*/ OPC_MoveChild, 13, ++/* 88868*/ OPC_CheckInteger, 1, ++/* 88870*/ OPC_CheckType, MVT::i32, ++/* 88872*/ OPC_MoveParent, ++/* 88873*/ OPC_MoveChild, 14, ++/* 88875*/ OPC_CheckInteger, 1, ++/* 88877*/ OPC_CheckType, MVT::i32, ++/* 88879*/ OPC_MoveParent, ++/* 88880*/ OPC_MoveChild, 15, ++/* 88882*/ OPC_CheckInteger, 1, ++/* 88884*/ OPC_CheckType, MVT::i32, ++/* 88886*/ OPC_MoveParent, ++/* 88887*/ OPC_MoveChild, 16, ++/* 88889*/ OPC_CheckInteger, 1, ++/* 88891*/ OPC_CheckType, MVT::i32, ++/* 88893*/ OPC_MoveParent, ++/* 88894*/ OPC_MoveChild, 17, ++/* 88896*/ OPC_CheckInteger, 1, ++/* 88898*/ OPC_CheckType, MVT::i32, ++/* 88900*/ OPC_MoveParent, ++/* 88901*/ OPC_MoveChild, 18, ++/* 88903*/ OPC_CheckInteger, 1, ++/* 88905*/ OPC_CheckType, MVT::i32, ++/* 88907*/ OPC_MoveParent, ++/* 88908*/ OPC_MoveChild, 19, ++/* 88910*/ OPC_CheckInteger, 1, ++/* 88912*/ OPC_CheckType, MVT::i32, ++/* 88914*/ OPC_MoveParent, ++/* 88915*/ OPC_MoveChild, 20, ++/* 88917*/ OPC_CheckInteger, 1, ++/* 88919*/ OPC_CheckType, MVT::i32, ++/* 88921*/ OPC_MoveParent, ++/* 88922*/ OPC_MoveChild, 21, ++/* 88924*/ OPC_CheckInteger, 1, ++/* 88926*/ OPC_CheckType, MVT::i32, ++/* 88928*/ OPC_MoveParent, ++/* 88929*/ OPC_MoveChild, 22, ++/* 88931*/ OPC_CheckInteger, 1, ++/* 88933*/ OPC_CheckType, MVT::i32, ++/* 88935*/ OPC_MoveParent, ++/* 88936*/ OPC_MoveChild, 23, ++/* 88938*/ OPC_CheckInteger, 1, ++/* 88940*/ OPC_CheckType, MVT::i32, ++/* 88942*/ OPC_MoveParent, ++/* 88943*/ OPC_MoveChild, 24, ++/* 88945*/ OPC_CheckInteger, 1, ++/* 88947*/ OPC_CheckType, MVT::i32, ++/* 88949*/ OPC_MoveParent, ++/* 88950*/ OPC_MoveChild, 25, ++/* 88952*/ OPC_CheckInteger, 1, ++/* 88954*/ OPC_CheckType, MVT::i32, ++/* 88956*/ OPC_MoveParent, ++/* 88957*/ OPC_MoveChild, 26, ++/* 88959*/ OPC_CheckInteger, 1, ++/* 88961*/ OPC_CheckType, MVT::i32, ++/* 88963*/ OPC_MoveParent, ++/* 88964*/ OPC_MoveChild, 27, ++/* 88966*/ OPC_CheckInteger, 1, ++/* 88968*/ OPC_CheckType, MVT::i32, ++/* 88970*/ OPC_MoveParent, ++/* 88971*/ OPC_MoveChild, 28, ++/* 88973*/ OPC_CheckInteger, 1, ++/* 88975*/ OPC_CheckType, MVT::i32, ++/* 88977*/ OPC_MoveParent, ++/* 88978*/ OPC_MoveChild, 29, ++/* 88980*/ OPC_CheckInteger, 1, ++/* 88982*/ OPC_CheckType, MVT::i32, ++/* 88984*/ OPC_MoveParent, ++/* 88985*/ OPC_MoveChild, 30, ++/* 88987*/ OPC_CheckInteger, 1, ++/* 88989*/ OPC_CheckType, MVT::i32, ++/* 88991*/ OPC_MoveParent, ++/* 88992*/ OPC_MoveChild, 31, ++/* 88994*/ OPC_CheckInteger, 1, ++/* 88996*/ OPC_CheckType, MVT::i32, ++/* 88998*/ OPC_MoveParent, ++/* 88999*/ OPC_MoveParent, ++/* 89000*/ OPC_MoveParent, ++/* 89001*/ OPC_RecordChild1, // #1 = $b ++/* 89002*/ OPC_MoveParent, ++/* 89003*/ OPC_MoveChild1, ++/* 89004*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/* 89007*/ OPC_MoveChild0, ++/* 89008*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/* 89011*/ OPC_Scope, 120|128,30/*3960*/, /*->92974*/ // 4 children in Scope ++/* 89014*/ OPC_MoveChild0, ++/* 89015*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/* 89018*/ OPC_Scope, 17|128,5/*657*/, /*->89678*/ // 6 children in Scope ++/* 89021*/ OPC_MoveChild0, ++/* 89022*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 89025*/ OPC_CheckChild0Integer, 1, ++/* 89027*/ OPC_CheckChild0Type, MVT::i32, ++/* 89029*/ OPC_CheckChild1Integer, 1, ++/* 89031*/ OPC_CheckChild1Type, MVT::i32, ++/* 89033*/ OPC_CheckChild2Integer, 1, ++/* 89035*/ OPC_CheckChild2Type, MVT::i32, ++/* 89037*/ OPC_CheckChild3Integer, 1, ++/* 89039*/ OPC_CheckChild3Type, MVT::i32, ++/* 89041*/ OPC_CheckChild4Integer, 1, ++/* 89043*/ OPC_CheckChild4Type, MVT::i32, ++/* 89045*/ OPC_MoveChild5, ++/* 89046*/ OPC_CheckInteger, 1, ++/* 89048*/ OPC_CheckType, MVT::i32, ++/* 89050*/ OPC_MoveParent, ++/* 89051*/ OPC_MoveChild6, ++/* 89052*/ OPC_CheckInteger, 1, ++/* 89054*/ OPC_CheckType, MVT::i32, ++/* 89056*/ OPC_MoveParent, ++/* 89057*/ OPC_MoveChild7, ++/* 89058*/ OPC_CheckInteger, 1, ++/* 89060*/ OPC_CheckType, MVT::i32, ++/* 89062*/ OPC_MoveParent, ++/* 89063*/ OPC_MoveChild, 8, ++/* 89065*/ OPC_CheckInteger, 1, ++/* 89067*/ OPC_CheckType, MVT::i32, ++/* 89069*/ OPC_MoveParent, ++/* 89070*/ OPC_MoveChild, 9, ++/* 89072*/ OPC_CheckInteger, 1, ++/* 89074*/ OPC_CheckType, MVT::i32, ++/* 89076*/ OPC_MoveParent, ++/* 89077*/ OPC_MoveChild, 10, ++/* 89079*/ OPC_CheckInteger, 1, ++/* 89081*/ OPC_CheckType, MVT::i32, ++/* 89083*/ OPC_MoveParent, ++/* 89084*/ OPC_MoveChild, 11, ++/* 89086*/ OPC_CheckInteger, 1, ++/* 89088*/ OPC_CheckType, MVT::i32, ++/* 89090*/ OPC_MoveParent, ++/* 89091*/ OPC_MoveChild, 12, ++/* 89093*/ OPC_CheckInteger, 1, ++/* 89095*/ OPC_CheckType, MVT::i32, ++/* 89097*/ OPC_MoveParent, ++/* 89098*/ OPC_MoveChild, 13, ++/* 89100*/ OPC_CheckInteger, 1, ++/* 89102*/ OPC_CheckType, MVT::i32, ++/* 89104*/ OPC_MoveParent, ++/* 89105*/ OPC_MoveChild, 14, ++/* 89107*/ OPC_CheckInteger, 1, ++/* 89109*/ OPC_CheckType, MVT::i32, ++/* 89111*/ OPC_MoveParent, ++/* 89112*/ OPC_MoveChild, 15, ++/* 89114*/ OPC_CheckInteger, 1, ++/* 89116*/ OPC_CheckType, MVT::i32, ++/* 89118*/ OPC_MoveParent, ++/* 89119*/ OPC_MoveChild, 16, ++/* 89121*/ OPC_CheckInteger, 1, ++/* 89123*/ OPC_CheckType, MVT::i32, ++/* 89125*/ OPC_MoveParent, ++/* 89126*/ OPC_MoveChild, 17, ++/* 89128*/ OPC_CheckInteger, 1, ++/* 89130*/ OPC_CheckType, MVT::i32, ++/* 89132*/ OPC_MoveParent, ++/* 89133*/ OPC_MoveChild, 18, ++/* 89135*/ OPC_CheckInteger, 1, ++/* 89137*/ OPC_CheckType, MVT::i32, ++/* 89139*/ OPC_MoveParent, ++/* 89140*/ OPC_MoveChild, 19, ++/* 89142*/ OPC_CheckInteger, 1, ++/* 89144*/ OPC_CheckType, MVT::i32, ++/* 89146*/ OPC_MoveParent, ++/* 89147*/ OPC_MoveChild, 20, ++/* 89149*/ OPC_CheckInteger, 1, ++/* 89151*/ OPC_CheckType, MVT::i32, ++/* 89153*/ OPC_MoveParent, ++/* 89154*/ OPC_MoveChild, 21, ++/* 89156*/ OPC_CheckInteger, 1, ++/* 89158*/ OPC_CheckType, MVT::i32, ++/* 89160*/ OPC_MoveParent, ++/* 89161*/ OPC_MoveChild, 22, ++/* 89163*/ OPC_CheckInteger, 1, ++/* 89165*/ OPC_CheckType, MVT::i32, ++/* 89167*/ OPC_MoveParent, ++/* 89168*/ OPC_MoveChild, 23, ++/* 89170*/ OPC_CheckInteger, 1, ++/* 89172*/ OPC_CheckType, MVT::i32, ++/* 89174*/ OPC_MoveParent, ++/* 89175*/ OPC_MoveChild, 24, ++/* 89177*/ OPC_CheckInteger, 1, ++/* 89179*/ OPC_CheckType, MVT::i32, ++/* 89181*/ OPC_MoveParent, ++/* 89182*/ OPC_MoveChild, 25, ++/* 89184*/ OPC_CheckInteger, 1, ++/* 89186*/ OPC_CheckType, MVT::i32, ++/* 89188*/ OPC_MoveParent, ++/* 89189*/ OPC_MoveChild, 26, ++/* 89191*/ OPC_CheckInteger, 1, ++/* 89193*/ OPC_CheckType, MVT::i32, ++/* 89195*/ OPC_MoveParent, ++/* 89196*/ OPC_MoveChild, 27, ++/* 89198*/ OPC_CheckInteger, 1, ++/* 89200*/ OPC_CheckType, MVT::i32, ++/* 89202*/ OPC_MoveParent, ++/* 89203*/ OPC_MoveChild, 28, ++/* 89205*/ OPC_CheckInteger, 1, ++/* 89207*/ OPC_CheckType, MVT::i32, ++/* 89209*/ OPC_MoveParent, ++/* 89210*/ OPC_MoveChild, 29, ++/* 89212*/ OPC_CheckInteger, 1, ++/* 89214*/ OPC_CheckType, MVT::i32, ++/* 89216*/ OPC_MoveParent, ++/* 89217*/ OPC_MoveChild, 30, ++/* 89219*/ OPC_CheckInteger, 1, ++/* 89221*/ OPC_CheckType, MVT::i32, ++/* 89223*/ OPC_MoveParent, ++/* 89224*/ OPC_MoveChild, 31, ++/* 89226*/ OPC_CheckInteger, 1, ++/* 89228*/ OPC_CheckType, MVT::i32, ++/* 89230*/ OPC_MoveParent, ++/* 89231*/ OPC_MoveParent, ++/* 89232*/ OPC_CheckChild1Same, 0, ++/* 89234*/ OPC_MoveParent, ++/* 89235*/ OPC_CheckChild1Same, 1, ++/* 89237*/ OPC_MoveParent, ++/* 89238*/ OPC_MoveChild1, ++/* 89239*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 89242*/ OPC_CheckChild0Integer, 7, ++/* 89244*/ OPC_CheckChild0Type, MVT::i32, ++/* 89246*/ OPC_CheckChild1Integer, 7, ++/* 89248*/ OPC_CheckChild1Type, MVT::i32, ++/* 89250*/ OPC_CheckChild2Integer, 7, ++/* 89252*/ OPC_CheckChild2Type, MVT::i32, ++/* 89254*/ OPC_CheckChild3Integer, 7, ++/* 89256*/ OPC_CheckChild3Type, MVT::i32, ++/* 89258*/ OPC_CheckChild4Integer, 7, ++/* 89260*/ OPC_CheckChild4Type, MVT::i32, ++/* 89262*/ OPC_MoveChild5, ++/* 89263*/ OPC_CheckInteger, 7, ++/* 89265*/ OPC_CheckType, MVT::i32, ++/* 89267*/ OPC_MoveParent, ++/* 89268*/ OPC_MoveChild6, ++/* 89269*/ OPC_CheckInteger, 7, ++/* 89271*/ OPC_CheckType, MVT::i32, ++/* 89273*/ OPC_MoveParent, ++/* 89274*/ OPC_MoveChild7, ++/* 89275*/ OPC_CheckInteger, 7, ++/* 89277*/ OPC_CheckType, MVT::i32, ++/* 89279*/ OPC_MoveParent, ++/* 89280*/ OPC_MoveChild, 8, ++/* 89282*/ OPC_CheckInteger, 7, ++/* 89284*/ OPC_CheckType, MVT::i32, ++/* 89286*/ OPC_MoveParent, ++/* 89287*/ OPC_MoveChild, 9, ++/* 89289*/ OPC_CheckInteger, 7, ++/* 89291*/ OPC_CheckType, MVT::i32, ++/* 89293*/ OPC_MoveParent, ++/* 89294*/ OPC_MoveChild, 10, ++/* 89296*/ OPC_CheckInteger, 7, ++/* 89298*/ OPC_CheckType, MVT::i32, ++/* 89300*/ OPC_MoveParent, ++/* 89301*/ OPC_MoveChild, 11, ++/* 89303*/ OPC_CheckInteger, 7, ++/* 89305*/ OPC_CheckType, MVT::i32, ++/* 89307*/ OPC_MoveParent, ++/* 89308*/ OPC_MoveChild, 12, ++/* 89310*/ OPC_CheckInteger, 7, ++/* 89312*/ OPC_CheckType, MVT::i32, ++/* 89314*/ OPC_MoveParent, ++/* 89315*/ OPC_MoveChild, 13, ++/* 89317*/ OPC_CheckInteger, 7, ++/* 89319*/ OPC_CheckType, MVT::i32, ++/* 89321*/ OPC_MoveParent, ++/* 89322*/ OPC_MoveChild, 14, ++/* 89324*/ OPC_CheckInteger, 7, ++/* 89326*/ OPC_CheckType, MVT::i32, ++/* 89328*/ OPC_MoveParent, ++/* 89329*/ OPC_MoveChild, 15, ++/* 89331*/ OPC_CheckInteger, 7, ++/* 89333*/ OPC_CheckType, MVT::i32, ++/* 89335*/ OPC_MoveParent, ++/* 89336*/ OPC_MoveChild, 16, ++/* 89338*/ OPC_CheckInteger, 7, ++/* 89340*/ OPC_CheckType, MVT::i32, ++/* 89342*/ OPC_MoveParent, ++/* 89343*/ OPC_MoveChild, 17, ++/* 89345*/ OPC_CheckInteger, 7, ++/* 89347*/ OPC_CheckType, MVT::i32, ++/* 89349*/ OPC_MoveParent, ++/* 89350*/ OPC_MoveChild, 18, ++/* 89352*/ OPC_CheckInteger, 7, ++/* 89354*/ OPC_CheckType, MVT::i32, ++/* 89356*/ OPC_MoveParent, ++/* 89357*/ OPC_MoveChild, 19, ++/* 89359*/ OPC_CheckInteger, 7, ++/* 89361*/ OPC_CheckType, MVT::i32, ++/* 89363*/ OPC_MoveParent, ++/* 89364*/ OPC_MoveChild, 20, ++/* 89366*/ OPC_CheckInteger, 7, ++/* 89368*/ OPC_CheckType, MVT::i32, ++/* 89370*/ OPC_MoveParent, ++/* 89371*/ OPC_MoveChild, 21, ++/* 89373*/ OPC_CheckInteger, 7, ++/* 89375*/ OPC_CheckType, MVT::i32, ++/* 89377*/ OPC_MoveParent, ++/* 89378*/ OPC_MoveChild, 22, ++/* 89380*/ OPC_CheckInteger, 7, ++/* 89382*/ OPC_CheckType, MVT::i32, ++/* 89384*/ OPC_MoveParent, ++/* 89385*/ OPC_MoveChild, 23, ++/* 89387*/ OPC_CheckInteger, 7, ++/* 89389*/ OPC_CheckType, MVT::i32, ++/* 89391*/ OPC_MoveParent, ++/* 89392*/ OPC_MoveChild, 24, ++/* 89394*/ OPC_CheckInteger, 7, ++/* 89396*/ OPC_CheckType, MVT::i32, ++/* 89398*/ OPC_MoveParent, ++/* 89399*/ OPC_MoveChild, 25, ++/* 89401*/ OPC_CheckInteger, 7, ++/* 89403*/ OPC_CheckType, MVT::i32, ++/* 89405*/ OPC_MoveParent, ++/* 89406*/ OPC_MoveChild, 26, ++/* 89408*/ OPC_CheckInteger, 7, ++/* 89410*/ OPC_CheckType, MVT::i32, ++/* 89412*/ OPC_MoveParent, ++/* 89413*/ OPC_MoveChild, 27, ++/* 89415*/ OPC_CheckInteger, 7, ++/* 89417*/ OPC_CheckType, MVT::i32, ++/* 89419*/ OPC_MoveParent, ++/* 89420*/ OPC_MoveChild, 28, ++/* 89422*/ OPC_CheckInteger, 7, ++/* 89424*/ OPC_CheckType, MVT::i32, ++/* 89426*/ OPC_MoveParent, ++/* 89427*/ OPC_MoveChild, 29, ++/* 89429*/ OPC_CheckInteger, 7, ++/* 89431*/ OPC_CheckType, MVT::i32, ++/* 89433*/ OPC_MoveParent, ++/* 89434*/ OPC_MoveChild, 30, ++/* 89436*/ OPC_CheckInteger, 7, ++/* 89438*/ OPC_CheckType, MVT::i32, ++/* 89440*/ OPC_MoveParent, ++/* 89441*/ OPC_MoveChild, 31, ++/* 89443*/ OPC_CheckInteger, 7, ++/* 89445*/ OPC_CheckType, MVT::i32, ++/* 89447*/ OPC_MoveParent, ++/* 89448*/ OPC_CheckType, MVT::v32i8, ++/* 89450*/ OPC_MoveParent, ++/* 89451*/ OPC_MoveParent, ++/* 89452*/ OPC_MoveParent, ++/* 89453*/ OPC_MoveChild1, ++/* 89454*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 89457*/ OPC_CheckChild0Integer, 1, ++/* 89459*/ OPC_CheckChild0Type, MVT::i32, ++/* 89461*/ OPC_CheckChild1Integer, 1, ++/* 89463*/ OPC_CheckChild1Type, MVT::i32, ++/* 89465*/ OPC_CheckChild2Integer, 1, ++/* 89467*/ OPC_CheckChild2Type, MVT::i32, ++/* 89469*/ OPC_CheckChild3Integer, 1, ++/* 89471*/ OPC_CheckChild3Type, MVT::i32, ++/* 89473*/ OPC_CheckChild4Integer, 1, ++/* 89475*/ OPC_CheckChild4Type, MVT::i32, ++/* 89477*/ OPC_MoveChild5, ++/* 89478*/ OPC_CheckInteger, 1, ++/* 89480*/ OPC_CheckType, MVT::i32, ++/* 89482*/ OPC_MoveParent, ++/* 89483*/ OPC_MoveChild6, ++/* 89484*/ OPC_CheckInteger, 1, ++/* 89486*/ OPC_CheckType, MVT::i32, ++/* 89488*/ OPC_MoveParent, ++/* 89489*/ OPC_MoveChild7, ++/* 89490*/ OPC_CheckInteger, 1, ++/* 89492*/ OPC_CheckType, MVT::i32, ++/* 89494*/ OPC_MoveParent, ++/* 89495*/ OPC_MoveChild, 8, ++/* 89497*/ OPC_CheckInteger, 1, ++/* 89499*/ OPC_CheckType, MVT::i32, ++/* 89501*/ OPC_MoveParent, ++/* 89502*/ OPC_MoveChild, 9, ++/* 89504*/ OPC_CheckInteger, 1, ++/* 89506*/ OPC_CheckType, MVT::i32, ++/* 89508*/ OPC_MoveParent, ++/* 89509*/ OPC_MoveChild, 10, ++/* 89511*/ OPC_CheckInteger, 1, ++/* 89513*/ OPC_CheckType, MVT::i32, ++/* 89515*/ OPC_MoveParent, ++/* 89516*/ OPC_MoveChild, 11, ++/* 89518*/ OPC_CheckInteger, 1, ++/* 89520*/ OPC_CheckType, MVT::i32, ++/* 89522*/ OPC_MoveParent, ++/* 89523*/ OPC_MoveChild, 12, ++/* 89525*/ OPC_CheckInteger, 1, ++/* 89527*/ OPC_CheckType, MVT::i32, ++/* 89529*/ OPC_MoveParent, ++/* 89530*/ OPC_MoveChild, 13, ++/* 89532*/ OPC_CheckInteger, 1, ++/* 89534*/ OPC_CheckType, MVT::i32, ++/* 89536*/ OPC_MoveParent, ++/* 89537*/ OPC_MoveChild, 14, ++/* 89539*/ OPC_CheckInteger, 1, ++/* 89541*/ OPC_CheckType, MVT::i32, ++/* 89543*/ OPC_MoveParent, ++/* 89544*/ OPC_MoveChild, 15, ++/* 89546*/ OPC_CheckInteger, 1, ++/* 89548*/ OPC_CheckType, MVT::i32, ++/* 89550*/ OPC_MoveParent, ++/* 89551*/ OPC_MoveChild, 16, ++/* 89553*/ OPC_CheckInteger, 1, ++/* 89555*/ OPC_CheckType, MVT::i32, ++/* 89557*/ OPC_MoveParent, ++/* 89558*/ OPC_MoveChild, 17, ++/* 89560*/ OPC_CheckInteger, 1, ++/* 89562*/ OPC_CheckType, MVT::i32, ++/* 89564*/ OPC_MoveParent, ++/* 89565*/ OPC_MoveChild, 18, ++/* 89567*/ OPC_CheckInteger, 1, ++/* 89569*/ OPC_CheckType, MVT::i32, ++/* 89571*/ OPC_MoveParent, ++/* 89572*/ OPC_MoveChild, 19, ++/* 89574*/ OPC_CheckInteger, 1, ++/* 89576*/ OPC_CheckType, MVT::i32, ++/* 89578*/ OPC_MoveParent, ++/* 89579*/ OPC_MoveChild, 20, ++/* 89581*/ OPC_CheckInteger, 1, ++/* 89583*/ OPC_CheckType, MVT::i32, ++/* 89585*/ OPC_MoveParent, ++/* 89586*/ OPC_MoveChild, 21, ++/* 89588*/ OPC_CheckInteger, 1, ++/* 89590*/ OPC_CheckType, MVT::i32, ++/* 89592*/ OPC_MoveParent, ++/* 89593*/ OPC_MoveChild, 22, ++/* 89595*/ OPC_CheckInteger, 1, ++/* 89597*/ OPC_CheckType, MVT::i32, ++/* 89599*/ OPC_MoveParent, ++/* 89600*/ OPC_MoveChild, 23, ++/* 89602*/ OPC_CheckInteger, 1, ++/* 89604*/ OPC_CheckType, MVT::i32, ++/* 89606*/ OPC_MoveParent, ++/* 89607*/ OPC_MoveChild, 24, ++/* 89609*/ OPC_CheckInteger, 1, ++/* 89611*/ OPC_CheckType, MVT::i32, ++/* 89613*/ OPC_MoveParent, ++/* 89614*/ OPC_MoveChild, 25, ++/* 89616*/ OPC_CheckInteger, 1, ++/* 89618*/ OPC_CheckType, MVT::i32, ++/* 89620*/ OPC_MoveParent, ++/* 89621*/ OPC_MoveChild, 26, ++/* 89623*/ OPC_CheckInteger, 1, ++/* 89625*/ OPC_CheckType, MVT::i32, ++/* 89627*/ OPC_MoveParent, ++/* 89628*/ OPC_MoveChild, 27, ++/* 89630*/ OPC_CheckInteger, 1, ++/* 89632*/ OPC_CheckType, MVT::i32, ++/* 89634*/ OPC_MoveParent, ++/* 89635*/ OPC_MoveChild, 28, ++/* 89637*/ OPC_CheckInteger, 1, ++/* 89639*/ OPC_CheckType, MVT::i32, ++/* 89641*/ OPC_MoveParent, ++/* 89642*/ OPC_MoveChild, 29, ++/* 89644*/ OPC_CheckInteger, 1, ++/* 89646*/ OPC_CheckType, MVT::i32, ++/* 89648*/ OPC_MoveParent, ++/* 89649*/ OPC_MoveChild, 30, ++/* 89651*/ OPC_CheckInteger, 1, ++/* 89653*/ OPC_CheckType, MVT::i32, ++/* 89655*/ OPC_MoveParent, ++/* 89656*/ OPC_MoveChild, 31, ++/* 89658*/ OPC_CheckInteger, 1, ++/* 89660*/ OPC_CheckType, MVT::i32, ++/* 89662*/ OPC_MoveParent, ++/* 89663*/ OPC_CheckType, MVT::v32i8, ++/* 89665*/ OPC_MoveParent, ++/* 89666*/ OPC_CheckType, MVT::v32i8, ++/* 89668*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 89670*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$b), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a), LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/* 89678*/ /*Scope*/ 17|128,5/*657*/, /*->90337*/ ++/* 89680*/ OPC_CheckChild0Same, 0, ++/* 89682*/ OPC_MoveChild1, ++/* 89683*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 89686*/ OPC_CheckChild0Integer, 1, ++/* 89688*/ OPC_CheckChild0Type, MVT::i32, ++/* 89690*/ OPC_CheckChild1Integer, 1, ++/* 89692*/ OPC_CheckChild1Type, MVT::i32, ++/* 89694*/ OPC_CheckChild2Integer, 1, ++/* 89696*/ OPC_CheckChild2Type, MVT::i32, ++/* 89698*/ OPC_CheckChild3Integer, 1, ++/* 89700*/ OPC_CheckChild3Type, MVT::i32, ++/* 89702*/ OPC_CheckChild4Integer, 1, ++/* 89704*/ OPC_CheckChild4Type, MVT::i32, ++/* 89706*/ OPC_MoveChild5, ++/* 89707*/ OPC_CheckInteger, 1, ++/* 89709*/ OPC_CheckType, MVT::i32, ++/* 89711*/ OPC_MoveParent, ++/* 89712*/ OPC_MoveChild6, ++/* 89713*/ OPC_CheckInteger, 1, ++/* 89715*/ OPC_CheckType, MVT::i32, ++/* 89717*/ OPC_MoveParent, ++/* 89718*/ OPC_MoveChild7, ++/* 89719*/ OPC_CheckInteger, 1, ++/* 89721*/ OPC_CheckType, MVT::i32, ++/* 89723*/ OPC_MoveParent, ++/* 89724*/ OPC_MoveChild, 8, ++/* 89726*/ OPC_CheckInteger, 1, ++/* 89728*/ OPC_CheckType, MVT::i32, ++/* 89730*/ OPC_MoveParent, ++/* 89731*/ OPC_MoveChild, 9, ++/* 89733*/ OPC_CheckInteger, 1, ++/* 89735*/ OPC_CheckType, MVT::i32, ++/* 89737*/ OPC_MoveParent, ++/* 89738*/ OPC_MoveChild, 10, ++/* 89740*/ OPC_CheckInteger, 1, ++/* 89742*/ OPC_CheckType, MVT::i32, ++/* 89744*/ OPC_MoveParent, ++/* 89745*/ OPC_MoveChild, 11, ++/* 89747*/ OPC_CheckInteger, 1, ++/* 89749*/ OPC_CheckType, MVT::i32, ++/* 89751*/ OPC_MoveParent, ++/* 89752*/ OPC_MoveChild, 12, ++/* 89754*/ OPC_CheckInteger, 1, ++/* 89756*/ OPC_CheckType, MVT::i32, ++/* 89758*/ OPC_MoveParent, ++/* 89759*/ OPC_MoveChild, 13, ++/* 89761*/ OPC_CheckInteger, 1, ++/* 89763*/ OPC_CheckType, MVT::i32, ++/* 89765*/ OPC_MoveParent, ++/* 89766*/ OPC_MoveChild, 14, ++/* 89768*/ OPC_CheckInteger, 1, ++/* 89770*/ OPC_CheckType, MVT::i32, ++/* 89772*/ OPC_MoveParent, ++/* 89773*/ OPC_MoveChild, 15, ++/* 89775*/ OPC_CheckInteger, 1, ++/* 89777*/ OPC_CheckType, MVT::i32, ++/* 89779*/ OPC_MoveParent, ++/* 89780*/ OPC_MoveChild, 16, ++/* 89782*/ OPC_CheckInteger, 1, ++/* 89784*/ OPC_CheckType, MVT::i32, ++/* 89786*/ OPC_MoveParent, ++/* 89787*/ OPC_MoveChild, 17, ++/* 89789*/ OPC_CheckInteger, 1, ++/* 89791*/ OPC_CheckType, MVT::i32, ++/* 89793*/ OPC_MoveParent, ++/* 89794*/ OPC_MoveChild, 18, ++/* 89796*/ OPC_CheckInteger, 1, ++/* 89798*/ OPC_CheckType, MVT::i32, ++/* 89800*/ OPC_MoveParent, ++/* 89801*/ OPC_MoveChild, 19, ++/* 89803*/ OPC_CheckInteger, 1, ++/* 89805*/ OPC_CheckType, MVT::i32, ++/* 89807*/ OPC_MoveParent, ++/* 89808*/ OPC_MoveChild, 20, ++/* 89810*/ OPC_CheckInteger, 1, ++/* 89812*/ OPC_CheckType, MVT::i32, ++/* 89814*/ OPC_MoveParent, ++/* 89815*/ OPC_MoveChild, 21, ++/* 89817*/ OPC_CheckInteger, 1, ++/* 89819*/ OPC_CheckType, MVT::i32, ++/* 89821*/ OPC_MoveParent, ++/* 89822*/ OPC_MoveChild, 22, ++/* 89824*/ OPC_CheckInteger, 1, ++/* 89826*/ OPC_CheckType, MVT::i32, ++/* 89828*/ OPC_MoveParent, ++/* 89829*/ OPC_MoveChild, 23, ++/* 89831*/ OPC_CheckInteger, 1, ++/* 89833*/ OPC_CheckType, MVT::i32, ++/* 89835*/ OPC_MoveParent, ++/* 89836*/ OPC_MoveChild, 24, ++/* 89838*/ OPC_CheckInteger, 1, ++/* 89840*/ OPC_CheckType, MVT::i32, ++/* 89842*/ OPC_MoveParent, ++/* 89843*/ OPC_MoveChild, 25, ++/* 89845*/ OPC_CheckInteger, 1, ++/* 89847*/ OPC_CheckType, MVT::i32, ++/* 89849*/ OPC_MoveParent, ++/* 89850*/ OPC_MoveChild, 26, ++/* 89852*/ OPC_CheckInteger, 1, ++/* 89854*/ OPC_CheckType, MVT::i32, ++/* 89856*/ OPC_MoveParent, ++/* 89857*/ OPC_MoveChild, 27, ++/* 89859*/ OPC_CheckInteger, 1, ++/* 89861*/ OPC_CheckType, MVT::i32, ++/* 89863*/ OPC_MoveParent, ++/* 89864*/ OPC_MoveChild, 28, ++/* 89866*/ OPC_CheckInteger, 1, ++/* 89868*/ OPC_CheckType, MVT::i32, ++/* 89870*/ OPC_MoveParent, ++/* 89871*/ OPC_MoveChild, 29, ++/* 89873*/ OPC_CheckInteger, 1, ++/* 89875*/ OPC_CheckType, MVT::i32, ++/* 89877*/ OPC_MoveParent, ++/* 89878*/ OPC_MoveChild, 30, ++/* 89880*/ OPC_CheckInteger, 1, ++/* 89882*/ OPC_CheckType, MVT::i32, ++/* 89884*/ OPC_MoveParent, ++/* 89885*/ OPC_MoveChild, 31, ++/* 89887*/ OPC_CheckInteger, 1, ++/* 89889*/ OPC_CheckType, MVT::i32, ++/* 89891*/ OPC_MoveParent, ++/* 89892*/ OPC_MoveParent, ++/* 89893*/ OPC_MoveParent, ++/* 89894*/ OPC_CheckChild1Same, 1, ++/* 89896*/ OPC_MoveParent, ++/* 89897*/ OPC_MoveChild1, ++/* 89898*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 89901*/ OPC_CheckChild0Integer, 7, ++/* 89903*/ OPC_CheckChild0Type, MVT::i32, ++/* 89905*/ OPC_CheckChild1Integer, 7, ++/* 89907*/ OPC_CheckChild1Type, MVT::i32, ++/* 89909*/ OPC_CheckChild2Integer, 7, ++/* 89911*/ OPC_CheckChild2Type, MVT::i32, ++/* 89913*/ OPC_CheckChild3Integer, 7, ++/* 89915*/ OPC_CheckChild3Type, MVT::i32, ++/* 89917*/ OPC_CheckChild4Integer, 7, ++/* 89919*/ OPC_CheckChild4Type, MVT::i32, ++/* 89921*/ OPC_MoveChild5, ++/* 89922*/ OPC_CheckInteger, 7, ++/* 89924*/ OPC_CheckType, MVT::i32, ++/* 89926*/ OPC_MoveParent, ++/* 89927*/ OPC_MoveChild6, ++/* 89928*/ OPC_CheckInteger, 7, ++/* 89930*/ OPC_CheckType, MVT::i32, ++/* 89932*/ OPC_MoveParent, ++/* 89933*/ OPC_MoveChild7, ++/* 89934*/ OPC_CheckInteger, 7, ++/* 89936*/ OPC_CheckType, MVT::i32, ++/* 89938*/ OPC_MoveParent, ++/* 89939*/ OPC_MoveChild, 8, ++/* 89941*/ OPC_CheckInteger, 7, ++/* 89943*/ OPC_CheckType, MVT::i32, ++/* 89945*/ OPC_MoveParent, ++/* 89946*/ OPC_MoveChild, 9, ++/* 89948*/ OPC_CheckInteger, 7, ++/* 89950*/ OPC_CheckType, MVT::i32, ++/* 89952*/ OPC_MoveParent, ++/* 89953*/ OPC_MoveChild, 10, ++/* 89955*/ OPC_CheckInteger, 7, ++/* 89957*/ OPC_CheckType, MVT::i32, ++/* 89959*/ OPC_MoveParent, ++/* 89960*/ OPC_MoveChild, 11, ++/* 89962*/ OPC_CheckInteger, 7, ++/* 89964*/ OPC_CheckType, MVT::i32, ++/* 89966*/ OPC_MoveParent, ++/* 89967*/ OPC_MoveChild, 12, ++/* 89969*/ OPC_CheckInteger, 7, ++/* 89971*/ OPC_CheckType, MVT::i32, ++/* 89973*/ OPC_MoveParent, ++/* 89974*/ OPC_MoveChild, 13, ++/* 89976*/ OPC_CheckInteger, 7, ++/* 89978*/ OPC_CheckType, MVT::i32, ++/* 89980*/ OPC_MoveParent, ++/* 89981*/ OPC_MoveChild, 14, ++/* 89983*/ OPC_CheckInteger, 7, ++/* 89985*/ OPC_CheckType, MVT::i32, ++/* 89987*/ OPC_MoveParent, ++/* 89988*/ OPC_MoveChild, 15, ++/* 89990*/ OPC_CheckInteger, 7, ++/* 89992*/ OPC_CheckType, MVT::i32, ++/* 89994*/ OPC_MoveParent, ++/* 89995*/ OPC_MoveChild, 16, ++/* 89997*/ OPC_CheckInteger, 7, ++/* 89999*/ OPC_CheckType, MVT::i32, ++/* 90001*/ OPC_MoveParent, ++/* 90002*/ OPC_MoveChild, 17, ++/* 90004*/ OPC_CheckInteger, 7, ++/* 90006*/ OPC_CheckType, MVT::i32, ++/* 90008*/ OPC_MoveParent, ++/* 90009*/ OPC_MoveChild, 18, ++/* 90011*/ OPC_CheckInteger, 7, ++/* 90013*/ OPC_CheckType, MVT::i32, ++/* 90015*/ OPC_MoveParent, ++/* 90016*/ OPC_MoveChild, 19, ++/* 90018*/ OPC_CheckInteger, 7, ++/* 90020*/ OPC_CheckType, MVT::i32, ++/* 90022*/ OPC_MoveParent, ++/* 90023*/ OPC_MoveChild, 20, ++/* 90025*/ OPC_CheckInteger, 7, ++/* 90027*/ OPC_CheckType, MVT::i32, ++/* 90029*/ OPC_MoveParent, ++/* 90030*/ OPC_MoveChild, 21, ++/* 90032*/ OPC_CheckInteger, 7, ++/* 90034*/ OPC_CheckType, MVT::i32, ++/* 90036*/ OPC_MoveParent, ++/* 90037*/ OPC_MoveChild, 22, ++/* 90039*/ OPC_CheckInteger, 7, ++/* 90041*/ OPC_CheckType, MVT::i32, ++/* 90043*/ OPC_MoveParent, ++/* 90044*/ OPC_MoveChild, 23, ++/* 90046*/ OPC_CheckInteger, 7, ++/* 90048*/ OPC_CheckType, MVT::i32, ++/* 90050*/ OPC_MoveParent, ++/* 90051*/ OPC_MoveChild, 24, ++/* 90053*/ OPC_CheckInteger, 7, ++/* 90055*/ OPC_CheckType, MVT::i32, ++/* 90057*/ OPC_MoveParent, ++/* 90058*/ OPC_MoveChild, 25, ++/* 90060*/ OPC_CheckInteger, 7, ++/* 90062*/ OPC_CheckType, MVT::i32, ++/* 90064*/ OPC_MoveParent, ++/* 90065*/ OPC_MoveChild, 26, ++/* 90067*/ OPC_CheckInteger, 7, ++/* 90069*/ OPC_CheckType, MVT::i32, ++/* 90071*/ OPC_MoveParent, ++/* 90072*/ OPC_MoveChild, 27, ++/* 90074*/ OPC_CheckInteger, 7, ++/* 90076*/ OPC_CheckType, MVT::i32, ++/* 90078*/ OPC_MoveParent, ++/* 90079*/ OPC_MoveChild, 28, ++/* 90081*/ OPC_CheckInteger, 7, ++/* 90083*/ OPC_CheckType, MVT::i32, ++/* 90085*/ OPC_MoveParent, ++/* 90086*/ OPC_MoveChild, 29, ++/* 90088*/ OPC_CheckInteger, 7, ++/* 90090*/ OPC_CheckType, MVT::i32, ++/* 90092*/ OPC_MoveParent, ++/* 90093*/ OPC_MoveChild, 30, ++/* 90095*/ OPC_CheckInteger, 7, ++/* 90097*/ OPC_CheckType, MVT::i32, ++/* 90099*/ OPC_MoveParent, ++/* 90100*/ OPC_MoveChild, 31, ++/* 90102*/ OPC_CheckInteger, 7, ++/* 90104*/ OPC_CheckType, MVT::i32, ++/* 90106*/ OPC_MoveParent, ++/* 90107*/ OPC_CheckType, MVT::v32i8, ++/* 90109*/ OPC_MoveParent, ++/* 90110*/ OPC_MoveParent, ++/* 90111*/ OPC_MoveParent, ++/* 90112*/ OPC_MoveChild1, ++/* 90113*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 90116*/ OPC_CheckChild0Integer, 1, ++/* 90118*/ OPC_CheckChild0Type, MVT::i32, ++/* 90120*/ OPC_CheckChild1Integer, 1, ++/* 90122*/ OPC_CheckChild1Type, MVT::i32, ++/* 90124*/ OPC_CheckChild2Integer, 1, ++/* 90126*/ OPC_CheckChild2Type, MVT::i32, ++/* 90128*/ OPC_CheckChild3Integer, 1, ++/* 90130*/ OPC_CheckChild3Type, MVT::i32, ++/* 90132*/ OPC_CheckChild4Integer, 1, ++/* 90134*/ OPC_CheckChild4Type, MVT::i32, ++/* 90136*/ OPC_MoveChild5, ++/* 90137*/ OPC_CheckInteger, 1, ++/* 90139*/ OPC_CheckType, MVT::i32, ++/* 90141*/ OPC_MoveParent, ++/* 90142*/ OPC_MoveChild6, ++/* 90143*/ OPC_CheckInteger, 1, ++/* 90145*/ OPC_CheckType, MVT::i32, ++/* 90147*/ OPC_MoveParent, ++/* 90148*/ OPC_MoveChild7, ++/* 90149*/ OPC_CheckInteger, 1, ++/* 90151*/ OPC_CheckType, MVT::i32, ++/* 90153*/ OPC_MoveParent, ++/* 90154*/ OPC_MoveChild, 8, ++/* 90156*/ OPC_CheckInteger, 1, ++/* 90158*/ OPC_CheckType, MVT::i32, ++/* 90160*/ OPC_MoveParent, ++/* 90161*/ OPC_MoveChild, 9, ++/* 90163*/ OPC_CheckInteger, 1, ++/* 90165*/ OPC_CheckType, MVT::i32, ++/* 90167*/ OPC_MoveParent, ++/* 90168*/ OPC_MoveChild, 10, ++/* 90170*/ OPC_CheckInteger, 1, ++/* 90172*/ OPC_CheckType, MVT::i32, ++/* 90174*/ OPC_MoveParent, ++/* 90175*/ OPC_MoveChild, 11, ++/* 90177*/ OPC_CheckInteger, 1, ++/* 90179*/ OPC_CheckType, MVT::i32, ++/* 90181*/ OPC_MoveParent, ++/* 90182*/ OPC_MoveChild, 12, ++/* 90184*/ OPC_CheckInteger, 1, ++/* 90186*/ OPC_CheckType, MVT::i32, ++/* 90188*/ OPC_MoveParent, ++/* 90189*/ OPC_MoveChild, 13, ++/* 90191*/ OPC_CheckInteger, 1, ++/* 90193*/ OPC_CheckType, MVT::i32, ++/* 90195*/ OPC_MoveParent, ++/* 90196*/ OPC_MoveChild, 14, ++/* 90198*/ OPC_CheckInteger, 1, ++/* 90200*/ OPC_CheckType, MVT::i32, ++/* 90202*/ OPC_MoveParent, ++/* 90203*/ OPC_MoveChild, 15, ++/* 90205*/ OPC_CheckInteger, 1, ++/* 90207*/ OPC_CheckType, MVT::i32, ++/* 90209*/ OPC_MoveParent, ++/* 90210*/ OPC_MoveChild, 16, ++/* 90212*/ OPC_CheckInteger, 1, ++/* 90214*/ OPC_CheckType, MVT::i32, ++/* 90216*/ OPC_MoveParent, ++/* 90217*/ OPC_MoveChild, 17, ++/* 90219*/ OPC_CheckInteger, 1, ++/* 90221*/ OPC_CheckType, MVT::i32, ++/* 90223*/ OPC_MoveParent, ++/* 90224*/ OPC_MoveChild, 18, ++/* 90226*/ OPC_CheckInteger, 1, ++/* 90228*/ OPC_CheckType, MVT::i32, ++/* 90230*/ OPC_MoveParent, ++/* 90231*/ OPC_MoveChild, 19, ++/* 90233*/ OPC_CheckInteger, 1, ++/* 90235*/ OPC_CheckType, MVT::i32, ++/* 90237*/ OPC_MoveParent, ++/* 90238*/ OPC_MoveChild, 20, ++/* 90240*/ OPC_CheckInteger, 1, ++/* 90242*/ OPC_CheckType, MVT::i32, ++/* 90244*/ OPC_MoveParent, ++/* 90245*/ OPC_MoveChild, 21, ++/* 90247*/ OPC_CheckInteger, 1, ++/* 90249*/ OPC_CheckType, MVT::i32, ++/* 90251*/ OPC_MoveParent, ++/* 90252*/ OPC_MoveChild, 22, ++/* 90254*/ OPC_CheckInteger, 1, ++/* 90256*/ OPC_CheckType, MVT::i32, ++/* 90258*/ OPC_MoveParent, ++/* 90259*/ OPC_MoveChild, 23, ++/* 90261*/ OPC_CheckInteger, 1, ++/* 90263*/ OPC_CheckType, MVT::i32, ++/* 90265*/ OPC_MoveParent, ++/* 90266*/ OPC_MoveChild, 24, ++/* 90268*/ OPC_CheckInteger, 1, ++/* 90270*/ OPC_CheckType, MVT::i32, ++/* 90272*/ OPC_MoveParent, ++/* 90273*/ OPC_MoveChild, 25, ++/* 90275*/ OPC_CheckInteger, 1, ++/* 90277*/ OPC_CheckType, MVT::i32, ++/* 90279*/ OPC_MoveParent, ++/* 90280*/ OPC_MoveChild, 26, ++/* 90282*/ OPC_CheckInteger, 1, ++/* 90284*/ OPC_CheckType, MVT::i32, ++/* 90286*/ OPC_MoveParent, ++/* 90287*/ OPC_MoveChild, 27, ++/* 90289*/ OPC_CheckInteger, 1, ++/* 90291*/ OPC_CheckType, MVT::i32, ++/* 90293*/ OPC_MoveParent, ++/* 90294*/ OPC_MoveChild, 28, ++/* 90296*/ OPC_CheckInteger, 1, ++/* 90298*/ OPC_CheckType, MVT::i32, ++/* 90300*/ OPC_MoveParent, ++/* 90301*/ OPC_MoveChild, 29, ++/* 90303*/ OPC_CheckInteger, 1, ++/* 90305*/ OPC_CheckType, MVT::i32, ++/* 90307*/ OPC_MoveParent, ++/* 90308*/ OPC_MoveChild, 30, ++/* 90310*/ OPC_CheckInteger, 1, ++/* 90312*/ OPC_CheckType, MVT::i32, ++/* 90314*/ OPC_MoveParent, ++/* 90315*/ OPC_MoveChild, 31, ++/* 90317*/ OPC_CheckInteger, 1, ++/* 90319*/ OPC_CheckType, MVT::i32, ++/* 90321*/ OPC_MoveParent, ++/* 90322*/ OPC_CheckType, MVT::v32i8, ++/* 90324*/ OPC_MoveParent, ++/* 90325*/ OPC_CheckType, MVT::v32i8, ++/* 90327*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 90329*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$b), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/* 90337*/ /*Scope*/ 17|128,5/*657*/, /*->90996*/ ++/* 90339*/ OPC_MoveChild0, ++/* 90340*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 90343*/ OPC_CheckChild0Integer, 1, ++/* 90345*/ OPC_CheckChild0Type, MVT::i32, ++/* 90347*/ OPC_CheckChild1Integer, 1, ++/* 90349*/ OPC_CheckChild1Type, MVT::i32, ++/* 90351*/ OPC_CheckChild2Integer, 1, ++/* 90353*/ OPC_CheckChild2Type, MVT::i32, ++/* 90355*/ OPC_CheckChild3Integer, 1, ++/* 90357*/ OPC_CheckChild3Type, MVT::i32, ++/* 90359*/ OPC_CheckChild4Integer, 1, ++/* 90361*/ OPC_CheckChild4Type, MVT::i32, ++/* 90363*/ OPC_MoveChild5, ++/* 90364*/ OPC_CheckInteger, 1, ++/* 90366*/ OPC_CheckType, MVT::i32, ++/* 90368*/ OPC_MoveParent, ++/* 90369*/ OPC_MoveChild6, ++/* 90370*/ OPC_CheckInteger, 1, ++/* 90372*/ OPC_CheckType, MVT::i32, ++/* 90374*/ OPC_MoveParent, ++/* 90375*/ OPC_MoveChild7, ++/* 90376*/ OPC_CheckInteger, 1, ++/* 90378*/ OPC_CheckType, MVT::i32, ++/* 90380*/ OPC_MoveParent, ++/* 90381*/ OPC_MoveChild, 8, ++/* 90383*/ OPC_CheckInteger, 1, ++/* 90385*/ OPC_CheckType, MVT::i32, ++/* 90387*/ OPC_MoveParent, ++/* 90388*/ OPC_MoveChild, 9, ++/* 90390*/ OPC_CheckInteger, 1, ++/* 90392*/ OPC_CheckType, MVT::i32, ++/* 90394*/ OPC_MoveParent, ++/* 90395*/ OPC_MoveChild, 10, ++/* 90397*/ OPC_CheckInteger, 1, ++/* 90399*/ OPC_CheckType, MVT::i32, ++/* 90401*/ OPC_MoveParent, ++/* 90402*/ OPC_MoveChild, 11, ++/* 90404*/ OPC_CheckInteger, 1, ++/* 90406*/ OPC_CheckType, MVT::i32, ++/* 90408*/ OPC_MoveParent, ++/* 90409*/ OPC_MoveChild, 12, ++/* 90411*/ OPC_CheckInteger, 1, ++/* 90413*/ OPC_CheckType, MVT::i32, ++/* 90415*/ OPC_MoveParent, ++/* 90416*/ OPC_MoveChild, 13, ++/* 90418*/ OPC_CheckInteger, 1, ++/* 90420*/ OPC_CheckType, MVT::i32, ++/* 90422*/ OPC_MoveParent, ++/* 90423*/ OPC_MoveChild, 14, ++/* 90425*/ OPC_CheckInteger, 1, ++/* 90427*/ OPC_CheckType, MVT::i32, ++/* 90429*/ OPC_MoveParent, ++/* 90430*/ OPC_MoveChild, 15, ++/* 90432*/ OPC_CheckInteger, 1, ++/* 90434*/ OPC_CheckType, MVT::i32, ++/* 90436*/ OPC_MoveParent, ++/* 90437*/ OPC_MoveChild, 16, ++/* 90439*/ OPC_CheckInteger, 1, ++/* 90441*/ OPC_CheckType, MVT::i32, ++/* 90443*/ OPC_MoveParent, ++/* 90444*/ OPC_MoveChild, 17, ++/* 90446*/ OPC_CheckInteger, 1, ++/* 90448*/ OPC_CheckType, MVT::i32, ++/* 90450*/ OPC_MoveParent, ++/* 90451*/ OPC_MoveChild, 18, ++/* 90453*/ OPC_CheckInteger, 1, ++/* 90455*/ OPC_CheckType, MVT::i32, ++/* 90457*/ OPC_MoveParent, ++/* 90458*/ OPC_MoveChild, 19, ++/* 90460*/ OPC_CheckInteger, 1, ++/* 90462*/ OPC_CheckType, MVT::i32, ++/* 90464*/ OPC_MoveParent, ++/* 90465*/ OPC_MoveChild, 20, ++/* 90467*/ OPC_CheckInteger, 1, ++/* 90469*/ OPC_CheckType, MVT::i32, ++/* 90471*/ OPC_MoveParent, ++/* 90472*/ OPC_MoveChild, 21, ++/* 90474*/ OPC_CheckInteger, 1, ++/* 90476*/ OPC_CheckType, MVT::i32, ++/* 90478*/ OPC_MoveParent, ++/* 90479*/ OPC_MoveChild, 22, ++/* 90481*/ OPC_CheckInteger, 1, ++/* 90483*/ OPC_CheckType, MVT::i32, ++/* 90485*/ OPC_MoveParent, ++/* 90486*/ OPC_MoveChild, 23, ++/* 90488*/ OPC_CheckInteger, 1, ++/* 90490*/ OPC_CheckType, MVT::i32, ++/* 90492*/ OPC_MoveParent, ++/* 90493*/ OPC_MoveChild, 24, ++/* 90495*/ OPC_CheckInteger, 1, ++/* 90497*/ OPC_CheckType, MVT::i32, ++/* 90499*/ OPC_MoveParent, ++/* 90500*/ OPC_MoveChild, 25, ++/* 90502*/ OPC_CheckInteger, 1, ++/* 90504*/ OPC_CheckType, MVT::i32, ++/* 90506*/ OPC_MoveParent, ++/* 90507*/ OPC_MoveChild, 26, ++/* 90509*/ OPC_CheckInteger, 1, ++/* 90511*/ OPC_CheckType, MVT::i32, ++/* 90513*/ OPC_MoveParent, ++/* 90514*/ OPC_MoveChild, 27, ++/* 90516*/ OPC_CheckInteger, 1, ++/* 90518*/ OPC_CheckType, MVT::i32, ++/* 90520*/ OPC_MoveParent, ++/* 90521*/ OPC_MoveChild, 28, ++/* 90523*/ OPC_CheckInteger, 1, ++/* 90525*/ OPC_CheckType, MVT::i32, ++/* 90527*/ OPC_MoveParent, ++/* 90528*/ OPC_MoveChild, 29, ++/* 90530*/ OPC_CheckInteger, 1, ++/* 90532*/ OPC_CheckType, MVT::i32, ++/* 90534*/ OPC_MoveParent, ++/* 90535*/ OPC_MoveChild, 30, ++/* 90537*/ OPC_CheckInteger, 1, ++/* 90539*/ OPC_CheckType, MVT::i32, ++/* 90541*/ OPC_MoveParent, ++/* 90542*/ OPC_MoveChild, 31, ++/* 90544*/ OPC_CheckInteger, 1, ++/* 90546*/ OPC_CheckType, MVT::i32, ++/* 90548*/ OPC_MoveParent, ++/* 90549*/ OPC_MoveParent, ++/* 90550*/ OPC_CheckChild1Same, 1, ++/* 90552*/ OPC_MoveParent, ++/* 90553*/ OPC_CheckChild1Same, 0, ++/* 90555*/ OPC_MoveParent, ++/* 90556*/ OPC_MoveChild1, ++/* 90557*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 90560*/ OPC_CheckChild0Integer, 7, ++/* 90562*/ OPC_CheckChild0Type, MVT::i32, ++/* 90564*/ OPC_CheckChild1Integer, 7, ++/* 90566*/ OPC_CheckChild1Type, MVT::i32, ++/* 90568*/ OPC_CheckChild2Integer, 7, ++/* 90570*/ OPC_CheckChild2Type, MVT::i32, ++/* 90572*/ OPC_CheckChild3Integer, 7, ++/* 90574*/ OPC_CheckChild3Type, MVT::i32, ++/* 90576*/ OPC_CheckChild4Integer, 7, ++/* 90578*/ OPC_CheckChild4Type, MVT::i32, ++/* 90580*/ OPC_MoveChild5, ++/* 90581*/ OPC_CheckInteger, 7, ++/* 90583*/ OPC_CheckType, MVT::i32, ++/* 90585*/ OPC_MoveParent, ++/* 90586*/ OPC_MoveChild6, ++/* 90587*/ OPC_CheckInteger, 7, ++/* 90589*/ OPC_CheckType, MVT::i32, ++/* 90591*/ OPC_MoveParent, ++/* 90592*/ OPC_MoveChild7, ++/* 90593*/ OPC_CheckInteger, 7, ++/* 90595*/ OPC_CheckType, MVT::i32, ++/* 90597*/ OPC_MoveParent, ++/* 90598*/ OPC_MoveChild, 8, ++/* 90600*/ OPC_CheckInteger, 7, ++/* 90602*/ OPC_CheckType, MVT::i32, ++/* 90604*/ OPC_MoveParent, ++/* 90605*/ OPC_MoveChild, 9, ++/* 90607*/ OPC_CheckInteger, 7, ++/* 90609*/ OPC_CheckType, MVT::i32, ++/* 90611*/ OPC_MoveParent, ++/* 90612*/ OPC_MoveChild, 10, ++/* 90614*/ OPC_CheckInteger, 7, ++/* 90616*/ OPC_CheckType, MVT::i32, ++/* 90618*/ OPC_MoveParent, ++/* 90619*/ OPC_MoveChild, 11, ++/* 90621*/ OPC_CheckInteger, 7, ++/* 90623*/ OPC_CheckType, MVT::i32, ++/* 90625*/ OPC_MoveParent, ++/* 90626*/ OPC_MoveChild, 12, ++/* 90628*/ OPC_CheckInteger, 7, ++/* 90630*/ OPC_CheckType, MVT::i32, ++/* 90632*/ OPC_MoveParent, ++/* 90633*/ OPC_MoveChild, 13, ++/* 90635*/ OPC_CheckInteger, 7, ++/* 90637*/ OPC_CheckType, MVT::i32, ++/* 90639*/ OPC_MoveParent, ++/* 90640*/ OPC_MoveChild, 14, ++/* 90642*/ OPC_CheckInteger, 7, ++/* 90644*/ OPC_CheckType, MVT::i32, ++/* 90646*/ OPC_MoveParent, ++/* 90647*/ OPC_MoveChild, 15, ++/* 90649*/ OPC_CheckInteger, 7, ++/* 90651*/ OPC_CheckType, MVT::i32, ++/* 90653*/ OPC_MoveParent, ++/* 90654*/ OPC_MoveChild, 16, ++/* 90656*/ OPC_CheckInteger, 7, ++/* 90658*/ OPC_CheckType, MVT::i32, ++/* 90660*/ OPC_MoveParent, ++/* 90661*/ OPC_MoveChild, 17, ++/* 90663*/ OPC_CheckInteger, 7, ++/* 90665*/ OPC_CheckType, MVT::i32, ++/* 90667*/ OPC_MoveParent, ++/* 90668*/ OPC_MoveChild, 18, ++/* 90670*/ OPC_CheckInteger, 7, ++/* 90672*/ OPC_CheckType, MVT::i32, ++/* 90674*/ OPC_MoveParent, ++/* 90675*/ OPC_MoveChild, 19, ++/* 90677*/ OPC_CheckInteger, 7, ++/* 90679*/ OPC_CheckType, MVT::i32, ++/* 90681*/ OPC_MoveParent, ++/* 90682*/ OPC_MoveChild, 20, ++/* 90684*/ OPC_CheckInteger, 7, ++/* 90686*/ OPC_CheckType, MVT::i32, ++/* 90688*/ OPC_MoveParent, ++/* 90689*/ OPC_MoveChild, 21, ++/* 90691*/ OPC_CheckInteger, 7, ++/* 90693*/ OPC_CheckType, MVT::i32, ++/* 90695*/ OPC_MoveParent, ++/* 90696*/ OPC_MoveChild, 22, ++/* 90698*/ OPC_CheckInteger, 7, ++/* 90700*/ OPC_CheckType, MVT::i32, ++/* 90702*/ OPC_MoveParent, ++/* 90703*/ OPC_MoveChild, 23, ++/* 90705*/ OPC_CheckInteger, 7, ++/* 90707*/ OPC_CheckType, MVT::i32, ++/* 90709*/ OPC_MoveParent, ++/* 90710*/ OPC_MoveChild, 24, ++/* 90712*/ OPC_CheckInteger, 7, ++/* 90714*/ OPC_CheckType, MVT::i32, ++/* 90716*/ OPC_MoveParent, ++/* 90717*/ OPC_MoveChild, 25, ++/* 90719*/ OPC_CheckInteger, 7, ++/* 90721*/ OPC_CheckType, MVT::i32, ++/* 90723*/ OPC_MoveParent, ++/* 90724*/ OPC_MoveChild, 26, ++/* 90726*/ OPC_CheckInteger, 7, ++/* 90728*/ OPC_CheckType, MVT::i32, ++/* 90730*/ OPC_MoveParent, ++/* 90731*/ OPC_MoveChild, 27, ++/* 90733*/ OPC_CheckInteger, 7, ++/* 90735*/ OPC_CheckType, MVT::i32, ++/* 90737*/ OPC_MoveParent, ++/* 90738*/ OPC_MoveChild, 28, ++/* 90740*/ OPC_CheckInteger, 7, ++/* 90742*/ OPC_CheckType, MVT::i32, ++/* 90744*/ OPC_MoveParent, ++/* 90745*/ OPC_MoveChild, 29, ++/* 90747*/ OPC_CheckInteger, 7, ++/* 90749*/ OPC_CheckType, MVT::i32, ++/* 90751*/ OPC_MoveParent, ++/* 90752*/ OPC_MoveChild, 30, ++/* 90754*/ OPC_CheckInteger, 7, ++/* 90756*/ OPC_CheckType, MVT::i32, ++/* 90758*/ OPC_MoveParent, ++/* 90759*/ OPC_MoveChild, 31, ++/* 90761*/ OPC_CheckInteger, 7, ++/* 90763*/ OPC_CheckType, MVT::i32, ++/* 90765*/ OPC_MoveParent, ++/* 90766*/ OPC_CheckType, MVT::v32i8, ++/* 90768*/ OPC_MoveParent, ++/* 90769*/ OPC_MoveParent, ++/* 90770*/ OPC_MoveParent, ++/* 90771*/ OPC_MoveChild1, ++/* 90772*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 90775*/ OPC_CheckChild0Integer, 1, ++/* 90777*/ OPC_CheckChild0Type, MVT::i32, ++/* 90779*/ OPC_CheckChild1Integer, 1, ++/* 90781*/ OPC_CheckChild1Type, MVT::i32, ++/* 90783*/ OPC_CheckChild2Integer, 1, ++/* 90785*/ OPC_CheckChild2Type, MVT::i32, ++/* 90787*/ OPC_CheckChild3Integer, 1, ++/* 90789*/ OPC_CheckChild3Type, MVT::i32, ++/* 90791*/ OPC_CheckChild4Integer, 1, ++/* 90793*/ OPC_CheckChild4Type, MVT::i32, ++/* 90795*/ OPC_MoveChild5, ++/* 90796*/ OPC_CheckInteger, 1, ++/* 90798*/ OPC_CheckType, MVT::i32, ++/* 90800*/ OPC_MoveParent, ++/* 90801*/ OPC_MoveChild6, ++/* 90802*/ OPC_CheckInteger, 1, ++/* 90804*/ OPC_CheckType, MVT::i32, ++/* 90806*/ OPC_MoveParent, ++/* 90807*/ OPC_MoveChild7, ++/* 90808*/ OPC_CheckInteger, 1, ++/* 90810*/ OPC_CheckType, MVT::i32, ++/* 90812*/ OPC_MoveParent, ++/* 90813*/ OPC_MoveChild, 8, ++/* 90815*/ OPC_CheckInteger, 1, ++/* 90817*/ OPC_CheckType, MVT::i32, ++/* 90819*/ OPC_MoveParent, ++/* 90820*/ OPC_MoveChild, 9, ++/* 90822*/ OPC_CheckInteger, 1, ++/* 90824*/ OPC_CheckType, MVT::i32, ++/* 90826*/ OPC_MoveParent, ++/* 90827*/ OPC_MoveChild, 10, ++/* 90829*/ OPC_CheckInteger, 1, ++/* 90831*/ OPC_CheckType, MVT::i32, ++/* 90833*/ OPC_MoveParent, ++/* 90834*/ OPC_MoveChild, 11, ++/* 90836*/ OPC_CheckInteger, 1, ++/* 90838*/ OPC_CheckType, MVT::i32, ++/* 90840*/ OPC_MoveParent, ++/* 90841*/ OPC_MoveChild, 12, ++/* 90843*/ OPC_CheckInteger, 1, ++/* 90845*/ OPC_CheckType, MVT::i32, ++/* 90847*/ OPC_MoveParent, ++/* 90848*/ OPC_MoveChild, 13, ++/* 90850*/ OPC_CheckInteger, 1, ++/* 90852*/ OPC_CheckType, MVT::i32, ++/* 90854*/ OPC_MoveParent, ++/* 90855*/ OPC_MoveChild, 14, ++/* 90857*/ OPC_CheckInteger, 1, ++/* 90859*/ OPC_CheckType, MVT::i32, ++/* 90861*/ OPC_MoveParent, ++/* 90862*/ OPC_MoveChild, 15, ++/* 90864*/ OPC_CheckInteger, 1, ++/* 90866*/ OPC_CheckType, MVT::i32, ++/* 90868*/ OPC_MoveParent, ++/* 90869*/ OPC_MoveChild, 16, ++/* 90871*/ OPC_CheckInteger, 1, ++/* 90873*/ OPC_CheckType, MVT::i32, ++/* 90875*/ OPC_MoveParent, ++/* 90876*/ OPC_MoveChild, 17, ++/* 90878*/ OPC_CheckInteger, 1, ++/* 90880*/ OPC_CheckType, MVT::i32, ++/* 90882*/ OPC_MoveParent, ++/* 90883*/ OPC_MoveChild, 18, ++/* 90885*/ OPC_CheckInteger, 1, ++/* 90887*/ OPC_CheckType, MVT::i32, ++/* 90889*/ OPC_MoveParent, ++/* 90890*/ OPC_MoveChild, 19, ++/* 90892*/ OPC_CheckInteger, 1, ++/* 90894*/ OPC_CheckType, MVT::i32, ++/* 90896*/ OPC_MoveParent, ++/* 90897*/ OPC_MoveChild, 20, ++/* 90899*/ OPC_CheckInteger, 1, ++/* 90901*/ OPC_CheckType, MVT::i32, ++/* 90903*/ OPC_MoveParent, ++/* 90904*/ OPC_MoveChild, 21, ++/* 90906*/ OPC_CheckInteger, 1, ++/* 90908*/ OPC_CheckType, MVT::i32, ++/* 90910*/ OPC_MoveParent, ++/* 90911*/ OPC_MoveChild, 22, ++/* 90913*/ OPC_CheckInteger, 1, ++/* 90915*/ OPC_CheckType, MVT::i32, ++/* 90917*/ OPC_MoveParent, ++/* 90918*/ OPC_MoveChild, 23, ++/* 90920*/ OPC_CheckInteger, 1, ++/* 90922*/ OPC_CheckType, MVT::i32, ++/* 90924*/ OPC_MoveParent, ++/* 90925*/ OPC_MoveChild, 24, ++/* 90927*/ OPC_CheckInteger, 1, ++/* 90929*/ OPC_CheckType, MVT::i32, ++/* 90931*/ OPC_MoveParent, ++/* 90932*/ OPC_MoveChild, 25, ++/* 90934*/ OPC_CheckInteger, 1, ++/* 90936*/ OPC_CheckType, MVT::i32, ++/* 90938*/ OPC_MoveParent, ++/* 90939*/ OPC_MoveChild, 26, ++/* 90941*/ OPC_CheckInteger, 1, ++/* 90943*/ OPC_CheckType, MVT::i32, ++/* 90945*/ OPC_MoveParent, ++/* 90946*/ OPC_MoveChild, 27, ++/* 90948*/ OPC_CheckInteger, 1, ++/* 90950*/ OPC_CheckType, MVT::i32, ++/* 90952*/ OPC_MoveParent, ++/* 90953*/ OPC_MoveChild, 28, ++/* 90955*/ OPC_CheckInteger, 1, ++/* 90957*/ OPC_CheckType, MVT::i32, ++/* 90959*/ OPC_MoveParent, ++/* 90960*/ OPC_MoveChild, 29, ++/* 90962*/ OPC_CheckInteger, 1, ++/* 90964*/ OPC_CheckType, MVT::i32, ++/* 90966*/ OPC_MoveParent, ++/* 90967*/ OPC_MoveChild, 30, ++/* 90969*/ OPC_CheckInteger, 1, ++/* 90971*/ OPC_CheckType, MVT::i32, ++/* 90973*/ OPC_MoveParent, ++/* 90974*/ OPC_MoveChild, 31, ++/* 90976*/ OPC_CheckInteger, 1, ++/* 90978*/ OPC_CheckType, MVT::i32, ++/* 90980*/ OPC_MoveParent, ++/* 90981*/ OPC_CheckType, MVT::v32i8, ++/* 90983*/ OPC_MoveParent, ++/* 90984*/ OPC_CheckType, MVT::v32i8, ++/* 90986*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 90988*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$b), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b), LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/* 90996*/ /*Scope*/ 17|128,5/*657*/, /*->91655*/ ++/* 90998*/ OPC_CheckChild0Same, 1, ++/* 91000*/ OPC_MoveChild1, ++/* 91001*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 91004*/ OPC_CheckChild0Integer, 1, ++/* 91006*/ OPC_CheckChild0Type, MVT::i32, ++/* 91008*/ OPC_CheckChild1Integer, 1, ++/* 91010*/ OPC_CheckChild1Type, MVT::i32, ++/* 91012*/ OPC_CheckChild2Integer, 1, ++/* 91014*/ OPC_CheckChild2Type, MVT::i32, ++/* 91016*/ OPC_CheckChild3Integer, 1, ++/* 91018*/ OPC_CheckChild3Type, MVT::i32, ++/* 91020*/ OPC_CheckChild4Integer, 1, ++/* 91022*/ OPC_CheckChild4Type, MVT::i32, ++/* 91024*/ OPC_MoveChild5, ++/* 91025*/ OPC_CheckInteger, 1, ++/* 91027*/ OPC_CheckType, MVT::i32, ++/* 91029*/ OPC_MoveParent, ++/* 91030*/ OPC_MoveChild6, ++/* 91031*/ OPC_CheckInteger, 1, ++/* 91033*/ OPC_CheckType, MVT::i32, ++/* 91035*/ OPC_MoveParent, ++/* 91036*/ OPC_MoveChild7, ++/* 91037*/ OPC_CheckInteger, 1, ++/* 91039*/ OPC_CheckType, MVT::i32, ++/* 91041*/ OPC_MoveParent, ++/* 91042*/ OPC_MoveChild, 8, ++/* 91044*/ OPC_CheckInteger, 1, ++/* 91046*/ OPC_CheckType, MVT::i32, ++/* 91048*/ OPC_MoveParent, ++/* 91049*/ OPC_MoveChild, 9, ++/* 91051*/ OPC_CheckInteger, 1, ++/* 91053*/ OPC_CheckType, MVT::i32, ++/* 91055*/ OPC_MoveParent, ++/* 91056*/ OPC_MoveChild, 10, ++/* 91058*/ OPC_CheckInteger, 1, ++/* 91060*/ OPC_CheckType, MVT::i32, ++/* 91062*/ OPC_MoveParent, ++/* 91063*/ OPC_MoveChild, 11, ++/* 91065*/ OPC_CheckInteger, 1, ++/* 91067*/ OPC_CheckType, MVT::i32, ++/* 91069*/ OPC_MoveParent, ++/* 91070*/ OPC_MoveChild, 12, ++/* 91072*/ OPC_CheckInteger, 1, ++/* 91074*/ OPC_CheckType, MVT::i32, ++/* 91076*/ OPC_MoveParent, ++/* 91077*/ OPC_MoveChild, 13, ++/* 91079*/ OPC_CheckInteger, 1, ++/* 91081*/ OPC_CheckType, MVT::i32, ++/* 91083*/ OPC_MoveParent, ++/* 91084*/ OPC_MoveChild, 14, ++/* 91086*/ OPC_CheckInteger, 1, ++/* 91088*/ OPC_CheckType, MVT::i32, ++/* 91090*/ OPC_MoveParent, ++/* 91091*/ OPC_MoveChild, 15, ++/* 91093*/ OPC_CheckInteger, 1, ++/* 91095*/ OPC_CheckType, MVT::i32, ++/* 91097*/ OPC_MoveParent, ++/* 91098*/ OPC_MoveChild, 16, ++/* 91100*/ OPC_CheckInteger, 1, ++/* 91102*/ OPC_CheckType, MVT::i32, ++/* 91104*/ OPC_MoveParent, ++/* 91105*/ OPC_MoveChild, 17, ++/* 91107*/ OPC_CheckInteger, 1, ++/* 91109*/ OPC_CheckType, MVT::i32, ++/* 91111*/ OPC_MoveParent, ++/* 91112*/ OPC_MoveChild, 18, ++/* 91114*/ OPC_CheckInteger, 1, ++/* 91116*/ OPC_CheckType, MVT::i32, ++/* 91118*/ OPC_MoveParent, ++/* 91119*/ OPC_MoveChild, 19, ++/* 91121*/ OPC_CheckInteger, 1, ++/* 91123*/ OPC_CheckType, MVT::i32, ++/* 91125*/ OPC_MoveParent, ++/* 91126*/ OPC_MoveChild, 20, ++/* 91128*/ OPC_CheckInteger, 1, ++/* 91130*/ OPC_CheckType, MVT::i32, ++/* 91132*/ OPC_MoveParent, ++/* 91133*/ OPC_MoveChild, 21, ++/* 91135*/ OPC_CheckInteger, 1, ++/* 91137*/ OPC_CheckType, MVT::i32, ++/* 91139*/ OPC_MoveParent, ++/* 91140*/ OPC_MoveChild, 22, ++/* 91142*/ OPC_CheckInteger, 1, ++/* 91144*/ OPC_CheckType, MVT::i32, ++/* 91146*/ OPC_MoveParent, ++/* 91147*/ OPC_MoveChild, 23, ++/* 91149*/ OPC_CheckInteger, 1, ++/* 91151*/ OPC_CheckType, MVT::i32, ++/* 91153*/ OPC_MoveParent, ++/* 91154*/ OPC_MoveChild, 24, ++/* 91156*/ OPC_CheckInteger, 1, ++/* 91158*/ OPC_CheckType, MVT::i32, ++/* 91160*/ OPC_MoveParent, ++/* 91161*/ OPC_MoveChild, 25, ++/* 91163*/ OPC_CheckInteger, 1, ++/* 91165*/ OPC_CheckType, MVT::i32, ++/* 91167*/ OPC_MoveParent, ++/* 91168*/ OPC_MoveChild, 26, ++/* 91170*/ OPC_CheckInteger, 1, ++/* 91172*/ OPC_CheckType, MVT::i32, ++/* 91174*/ OPC_MoveParent, ++/* 91175*/ OPC_MoveChild, 27, ++/* 91177*/ OPC_CheckInteger, 1, ++/* 91179*/ OPC_CheckType, MVT::i32, ++/* 91181*/ OPC_MoveParent, ++/* 91182*/ OPC_MoveChild, 28, ++/* 91184*/ OPC_CheckInteger, 1, ++/* 91186*/ OPC_CheckType, MVT::i32, ++/* 91188*/ OPC_MoveParent, ++/* 91189*/ OPC_MoveChild, 29, ++/* 91191*/ OPC_CheckInteger, 1, ++/* 91193*/ OPC_CheckType, MVT::i32, ++/* 91195*/ OPC_MoveParent, ++/* 91196*/ OPC_MoveChild, 30, ++/* 91198*/ OPC_CheckInteger, 1, ++/* 91200*/ OPC_CheckType, MVT::i32, ++/* 91202*/ OPC_MoveParent, ++/* 91203*/ OPC_MoveChild, 31, ++/* 91205*/ OPC_CheckInteger, 1, ++/* 91207*/ OPC_CheckType, MVT::i32, ++/* 91209*/ OPC_MoveParent, ++/* 91210*/ OPC_MoveParent, ++/* 91211*/ OPC_MoveParent, ++/* 91212*/ OPC_CheckChild1Same, 0, ++/* 91214*/ OPC_MoveParent, ++/* 91215*/ OPC_MoveChild1, ++/* 91216*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 91219*/ OPC_CheckChild0Integer, 7, ++/* 91221*/ OPC_CheckChild0Type, MVT::i32, ++/* 91223*/ OPC_CheckChild1Integer, 7, ++/* 91225*/ OPC_CheckChild1Type, MVT::i32, ++/* 91227*/ OPC_CheckChild2Integer, 7, ++/* 91229*/ OPC_CheckChild2Type, MVT::i32, ++/* 91231*/ OPC_CheckChild3Integer, 7, ++/* 91233*/ OPC_CheckChild3Type, MVT::i32, ++/* 91235*/ OPC_CheckChild4Integer, 7, ++/* 91237*/ OPC_CheckChild4Type, MVT::i32, ++/* 91239*/ OPC_MoveChild5, ++/* 91240*/ OPC_CheckInteger, 7, ++/* 91242*/ OPC_CheckType, MVT::i32, ++/* 91244*/ OPC_MoveParent, ++/* 91245*/ OPC_MoveChild6, ++/* 91246*/ OPC_CheckInteger, 7, ++/* 91248*/ OPC_CheckType, MVT::i32, ++/* 91250*/ OPC_MoveParent, ++/* 91251*/ OPC_MoveChild7, ++/* 91252*/ OPC_CheckInteger, 7, ++/* 91254*/ OPC_CheckType, MVT::i32, ++/* 91256*/ OPC_MoveParent, ++/* 91257*/ OPC_MoveChild, 8, ++/* 91259*/ OPC_CheckInteger, 7, ++/* 91261*/ OPC_CheckType, MVT::i32, ++/* 91263*/ OPC_MoveParent, ++/* 91264*/ OPC_MoveChild, 9, ++/* 91266*/ OPC_CheckInteger, 7, ++/* 91268*/ OPC_CheckType, MVT::i32, ++/* 91270*/ OPC_MoveParent, ++/* 91271*/ OPC_MoveChild, 10, ++/* 91273*/ OPC_CheckInteger, 7, ++/* 91275*/ OPC_CheckType, MVT::i32, ++/* 91277*/ OPC_MoveParent, ++/* 91278*/ OPC_MoveChild, 11, ++/* 91280*/ OPC_CheckInteger, 7, ++/* 91282*/ OPC_CheckType, MVT::i32, ++/* 91284*/ OPC_MoveParent, ++/* 91285*/ OPC_MoveChild, 12, ++/* 91287*/ OPC_CheckInteger, 7, ++/* 91289*/ OPC_CheckType, MVT::i32, ++/* 91291*/ OPC_MoveParent, ++/* 91292*/ OPC_MoveChild, 13, ++/* 91294*/ OPC_CheckInteger, 7, ++/* 91296*/ OPC_CheckType, MVT::i32, ++/* 91298*/ OPC_MoveParent, ++/* 91299*/ OPC_MoveChild, 14, ++/* 91301*/ OPC_CheckInteger, 7, ++/* 91303*/ OPC_CheckType, MVT::i32, ++/* 91305*/ OPC_MoveParent, ++/* 91306*/ OPC_MoveChild, 15, ++/* 91308*/ OPC_CheckInteger, 7, ++/* 91310*/ OPC_CheckType, MVT::i32, ++/* 91312*/ OPC_MoveParent, ++/* 91313*/ OPC_MoveChild, 16, ++/* 91315*/ OPC_CheckInteger, 7, ++/* 91317*/ OPC_CheckType, MVT::i32, ++/* 91319*/ OPC_MoveParent, ++/* 91320*/ OPC_MoveChild, 17, ++/* 91322*/ OPC_CheckInteger, 7, ++/* 91324*/ OPC_CheckType, MVT::i32, ++/* 91326*/ OPC_MoveParent, ++/* 91327*/ OPC_MoveChild, 18, ++/* 91329*/ OPC_CheckInteger, 7, ++/* 91331*/ OPC_CheckType, MVT::i32, ++/* 91333*/ OPC_MoveParent, ++/* 91334*/ OPC_MoveChild, 19, ++/* 91336*/ OPC_CheckInteger, 7, ++/* 91338*/ OPC_CheckType, MVT::i32, ++/* 91340*/ OPC_MoveParent, ++/* 91341*/ OPC_MoveChild, 20, ++/* 91343*/ OPC_CheckInteger, 7, ++/* 91345*/ OPC_CheckType, MVT::i32, ++/* 91347*/ OPC_MoveParent, ++/* 91348*/ OPC_MoveChild, 21, ++/* 91350*/ OPC_CheckInteger, 7, ++/* 91352*/ OPC_CheckType, MVT::i32, ++/* 91354*/ OPC_MoveParent, ++/* 91355*/ OPC_MoveChild, 22, ++/* 91357*/ OPC_CheckInteger, 7, ++/* 91359*/ OPC_CheckType, MVT::i32, ++/* 91361*/ OPC_MoveParent, ++/* 91362*/ OPC_MoveChild, 23, ++/* 91364*/ OPC_CheckInteger, 7, ++/* 91366*/ OPC_CheckType, MVT::i32, ++/* 91368*/ OPC_MoveParent, ++/* 91369*/ OPC_MoveChild, 24, ++/* 91371*/ OPC_CheckInteger, 7, ++/* 91373*/ OPC_CheckType, MVT::i32, ++/* 91375*/ OPC_MoveParent, ++/* 91376*/ OPC_MoveChild, 25, ++/* 91378*/ OPC_CheckInteger, 7, ++/* 91380*/ OPC_CheckType, MVT::i32, ++/* 91382*/ OPC_MoveParent, ++/* 91383*/ OPC_MoveChild, 26, ++/* 91385*/ OPC_CheckInteger, 7, ++/* 91387*/ OPC_CheckType, MVT::i32, ++/* 91389*/ OPC_MoveParent, ++/* 91390*/ OPC_MoveChild, 27, ++/* 91392*/ OPC_CheckInteger, 7, ++/* 91394*/ OPC_CheckType, MVT::i32, ++/* 91396*/ OPC_MoveParent, ++/* 91397*/ OPC_MoveChild, 28, ++/* 91399*/ OPC_CheckInteger, 7, ++/* 91401*/ OPC_CheckType, MVT::i32, ++/* 91403*/ OPC_MoveParent, ++/* 91404*/ OPC_MoveChild, 29, ++/* 91406*/ OPC_CheckInteger, 7, ++/* 91408*/ OPC_CheckType, MVT::i32, ++/* 91410*/ OPC_MoveParent, ++/* 91411*/ OPC_MoveChild, 30, ++/* 91413*/ OPC_CheckInteger, 7, ++/* 91415*/ OPC_CheckType, MVT::i32, ++/* 91417*/ OPC_MoveParent, ++/* 91418*/ OPC_MoveChild, 31, ++/* 91420*/ OPC_CheckInteger, 7, ++/* 91422*/ OPC_CheckType, MVT::i32, ++/* 91424*/ OPC_MoveParent, ++/* 91425*/ OPC_CheckType, MVT::v32i8, ++/* 91427*/ OPC_MoveParent, ++/* 91428*/ OPC_MoveParent, ++/* 91429*/ OPC_MoveParent, ++/* 91430*/ OPC_MoveChild1, ++/* 91431*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 91434*/ OPC_CheckChild0Integer, 1, ++/* 91436*/ OPC_CheckChild0Type, MVT::i32, ++/* 91438*/ OPC_CheckChild1Integer, 1, ++/* 91440*/ OPC_CheckChild1Type, MVT::i32, ++/* 91442*/ OPC_CheckChild2Integer, 1, ++/* 91444*/ OPC_CheckChild2Type, MVT::i32, ++/* 91446*/ OPC_CheckChild3Integer, 1, ++/* 91448*/ OPC_CheckChild3Type, MVT::i32, ++/* 91450*/ OPC_CheckChild4Integer, 1, ++/* 91452*/ OPC_CheckChild4Type, MVT::i32, ++/* 91454*/ OPC_MoveChild5, ++/* 91455*/ OPC_CheckInteger, 1, ++/* 91457*/ OPC_CheckType, MVT::i32, ++/* 91459*/ OPC_MoveParent, ++/* 91460*/ OPC_MoveChild6, ++/* 91461*/ OPC_CheckInteger, 1, ++/* 91463*/ OPC_CheckType, MVT::i32, ++/* 91465*/ OPC_MoveParent, ++/* 91466*/ OPC_MoveChild7, ++/* 91467*/ OPC_CheckInteger, 1, ++/* 91469*/ OPC_CheckType, MVT::i32, ++/* 91471*/ OPC_MoveParent, ++/* 91472*/ OPC_MoveChild, 8, ++/* 91474*/ OPC_CheckInteger, 1, ++/* 91476*/ OPC_CheckType, MVT::i32, ++/* 91478*/ OPC_MoveParent, ++/* 91479*/ OPC_MoveChild, 9, ++/* 91481*/ OPC_CheckInteger, 1, ++/* 91483*/ OPC_CheckType, MVT::i32, ++/* 91485*/ OPC_MoveParent, ++/* 91486*/ OPC_MoveChild, 10, ++/* 91488*/ OPC_CheckInteger, 1, ++/* 91490*/ OPC_CheckType, MVT::i32, ++/* 91492*/ OPC_MoveParent, ++/* 91493*/ OPC_MoveChild, 11, ++/* 91495*/ OPC_CheckInteger, 1, ++/* 91497*/ OPC_CheckType, MVT::i32, ++/* 91499*/ OPC_MoveParent, ++/* 91500*/ OPC_MoveChild, 12, ++/* 91502*/ OPC_CheckInteger, 1, ++/* 91504*/ OPC_CheckType, MVT::i32, ++/* 91506*/ OPC_MoveParent, ++/* 91507*/ OPC_MoveChild, 13, ++/* 91509*/ OPC_CheckInteger, 1, ++/* 91511*/ OPC_CheckType, MVT::i32, ++/* 91513*/ OPC_MoveParent, ++/* 91514*/ OPC_MoveChild, 14, ++/* 91516*/ OPC_CheckInteger, 1, ++/* 91518*/ OPC_CheckType, MVT::i32, ++/* 91520*/ OPC_MoveParent, ++/* 91521*/ OPC_MoveChild, 15, ++/* 91523*/ OPC_CheckInteger, 1, ++/* 91525*/ OPC_CheckType, MVT::i32, ++/* 91527*/ OPC_MoveParent, ++/* 91528*/ OPC_MoveChild, 16, ++/* 91530*/ OPC_CheckInteger, 1, ++/* 91532*/ OPC_CheckType, MVT::i32, ++/* 91534*/ OPC_MoveParent, ++/* 91535*/ OPC_MoveChild, 17, ++/* 91537*/ OPC_CheckInteger, 1, ++/* 91539*/ OPC_CheckType, MVT::i32, ++/* 91541*/ OPC_MoveParent, ++/* 91542*/ OPC_MoveChild, 18, ++/* 91544*/ OPC_CheckInteger, 1, ++/* 91546*/ OPC_CheckType, MVT::i32, ++/* 91548*/ OPC_MoveParent, ++/* 91549*/ OPC_MoveChild, 19, ++/* 91551*/ OPC_CheckInteger, 1, ++/* 91553*/ OPC_CheckType, MVT::i32, ++/* 91555*/ OPC_MoveParent, ++/* 91556*/ OPC_MoveChild, 20, ++/* 91558*/ OPC_CheckInteger, 1, ++/* 91560*/ OPC_CheckType, MVT::i32, ++/* 91562*/ OPC_MoveParent, ++/* 91563*/ OPC_MoveChild, 21, ++/* 91565*/ OPC_CheckInteger, 1, ++/* 91567*/ OPC_CheckType, MVT::i32, ++/* 91569*/ OPC_MoveParent, ++/* 91570*/ OPC_MoveChild, 22, ++/* 91572*/ OPC_CheckInteger, 1, ++/* 91574*/ OPC_CheckType, MVT::i32, ++/* 91576*/ OPC_MoveParent, ++/* 91577*/ OPC_MoveChild, 23, ++/* 91579*/ OPC_CheckInteger, 1, ++/* 91581*/ OPC_CheckType, MVT::i32, ++/* 91583*/ OPC_MoveParent, ++/* 91584*/ OPC_MoveChild, 24, ++/* 91586*/ OPC_CheckInteger, 1, ++/* 91588*/ OPC_CheckType, MVT::i32, ++/* 91590*/ OPC_MoveParent, ++/* 91591*/ OPC_MoveChild, 25, ++/* 91593*/ OPC_CheckInteger, 1, ++/* 91595*/ OPC_CheckType, MVT::i32, ++/* 91597*/ OPC_MoveParent, ++/* 91598*/ OPC_MoveChild, 26, ++/* 91600*/ OPC_CheckInteger, 1, ++/* 91602*/ OPC_CheckType, MVT::i32, ++/* 91604*/ OPC_MoveParent, ++/* 91605*/ OPC_MoveChild, 27, ++/* 91607*/ OPC_CheckInteger, 1, ++/* 91609*/ OPC_CheckType, MVT::i32, ++/* 91611*/ OPC_MoveParent, ++/* 91612*/ OPC_MoveChild, 28, ++/* 91614*/ OPC_CheckInteger, 1, ++/* 91616*/ OPC_CheckType, MVT::i32, ++/* 91618*/ OPC_MoveParent, ++/* 91619*/ OPC_MoveChild, 29, ++/* 91621*/ OPC_CheckInteger, 1, ++/* 91623*/ OPC_CheckType, MVT::i32, ++/* 91625*/ OPC_MoveParent, ++/* 91626*/ OPC_MoveChild, 30, ++/* 91628*/ OPC_CheckInteger, 1, ++/* 91630*/ OPC_CheckType, MVT::i32, ++/* 91632*/ OPC_MoveParent, ++/* 91633*/ OPC_MoveChild, 31, ++/* 91635*/ OPC_CheckInteger, 1, ++/* 91637*/ OPC_CheckType, MVT::i32, ++/* 91639*/ OPC_MoveParent, ++/* 91640*/ OPC_CheckType, MVT::v32i8, ++/* 91642*/ OPC_MoveParent, ++/* 91643*/ OPC_CheckType, MVT::v32i8, ++/* 91645*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 91647*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$b), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/* 91655*/ /*Scope*/ 17|128,5/*657*/, /*->92314*/ ++/* 91657*/ OPC_CheckChild0Same, 0, ++/* 91659*/ OPC_CheckChild1Same, 1, ++/* 91661*/ OPC_MoveParent, ++/* 91662*/ OPC_MoveChild1, ++/* 91663*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 91666*/ OPC_CheckChild0Integer, 1, ++/* 91668*/ OPC_CheckChild0Type, MVT::i32, ++/* 91670*/ OPC_CheckChild1Integer, 1, ++/* 91672*/ OPC_CheckChild1Type, MVT::i32, ++/* 91674*/ OPC_CheckChild2Integer, 1, ++/* 91676*/ OPC_CheckChild2Type, MVT::i32, ++/* 91678*/ OPC_CheckChild3Integer, 1, ++/* 91680*/ OPC_CheckChild3Type, MVT::i32, ++/* 91682*/ OPC_CheckChild4Integer, 1, ++/* 91684*/ OPC_CheckChild4Type, MVT::i32, ++/* 91686*/ OPC_MoveChild5, ++/* 91687*/ OPC_CheckInteger, 1, ++/* 91689*/ OPC_CheckType, MVT::i32, ++/* 91691*/ OPC_MoveParent, ++/* 91692*/ OPC_MoveChild6, ++/* 91693*/ OPC_CheckInteger, 1, ++/* 91695*/ OPC_CheckType, MVT::i32, ++/* 91697*/ OPC_MoveParent, ++/* 91698*/ OPC_MoveChild7, ++/* 91699*/ OPC_CheckInteger, 1, ++/* 91701*/ OPC_CheckType, MVT::i32, ++/* 91703*/ OPC_MoveParent, ++/* 91704*/ OPC_MoveChild, 8, ++/* 91706*/ OPC_CheckInteger, 1, ++/* 91708*/ OPC_CheckType, MVT::i32, ++/* 91710*/ OPC_MoveParent, ++/* 91711*/ OPC_MoveChild, 9, ++/* 91713*/ OPC_CheckInteger, 1, ++/* 91715*/ OPC_CheckType, MVT::i32, ++/* 91717*/ OPC_MoveParent, ++/* 91718*/ OPC_MoveChild, 10, ++/* 91720*/ OPC_CheckInteger, 1, ++/* 91722*/ OPC_CheckType, MVT::i32, ++/* 91724*/ OPC_MoveParent, ++/* 91725*/ OPC_MoveChild, 11, ++/* 91727*/ OPC_CheckInteger, 1, ++/* 91729*/ OPC_CheckType, MVT::i32, ++/* 91731*/ OPC_MoveParent, ++/* 91732*/ OPC_MoveChild, 12, ++/* 91734*/ OPC_CheckInteger, 1, ++/* 91736*/ OPC_CheckType, MVT::i32, ++/* 91738*/ OPC_MoveParent, ++/* 91739*/ OPC_MoveChild, 13, ++/* 91741*/ OPC_CheckInteger, 1, ++/* 91743*/ OPC_CheckType, MVT::i32, ++/* 91745*/ OPC_MoveParent, ++/* 91746*/ OPC_MoveChild, 14, ++/* 91748*/ OPC_CheckInteger, 1, ++/* 91750*/ OPC_CheckType, MVT::i32, ++/* 91752*/ OPC_MoveParent, ++/* 91753*/ OPC_MoveChild, 15, ++/* 91755*/ OPC_CheckInteger, 1, ++/* 91757*/ OPC_CheckType, MVT::i32, ++/* 91759*/ OPC_MoveParent, ++/* 91760*/ OPC_MoveChild, 16, ++/* 91762*/ OPC_CheckInteger, 1, ++/* 91764*/ OPC_CheckType, MVT::i32, ++/* 91766*/ OPC_MoveParent, ++/* 91767*/ OPC_MoveChild, 17, ++/* 91769*/ OPC_CheckInteger, 1, ++/* 91771*/ OPC_CheckType, MVT::i32, ++/* 91773*/ OPC_MoveParent, ++/* 91774*/ OPC_MoveChild, 18, ++/* 91776*/ OPC_CheckInteger, 1, ++/* 91778*/ OPC_CheckType, MVT::i32, ++/* 91780*/ OPC_MoveParent, ++/* 91781*/ OPC_MoveChild, 19, ++/* 91783*/ OPC_CheckInteger, 1, ++/* 91785*/ OPC_CheckType, MVT::i32, ++/* 91787*/ OPC_MoveParent, ++/* 91788*/ OPC_MoveChild, 20, ++/* 91790*/ OPC_CheckInteger, 1, ++/* 91792*/ OPC_CheckType, MVT::i32, ++/* 91794*/ OPC_MoveParent, ++/* 91795*/ OPC_MoveChild, 21, ++/* 91797*/ OPC_CheckInteger, 1, ++/* 91799*/ OPC_CheckType, MVT::i32, ++/* 91801*/ OPC_MoveParent, ++/* 91802*/ OPC_MoveChild, 22, ++/* 91804*/ OPC_CheckInteger, 1, ++/* 91806*/ OPC_CheckType, MVT::i32, ++/* 91808*/ OPC_MoveParent, ++/* 91809*/ OPC_MoveChild, 23, ++/* 91811*/ OPC_CheckInteger, 1, ++/* 91813*/ OPC_CheckType, MVT::i32, ++/* 91815*/ OPC_MoveParent, ++/* 91816*/ OPC_MoveChild, 24, ++/* 91818*/ OPC_CheckInteger, 1, ++/* 91820*/ OPC_CheckType, MVT::i32, ++/* 91822*/ OPC_MoveParent, ++/* 91823*/ OPC_MoveChild, 25, ++/* 91825*/ OPC_CheckInteger, 1, ++/* 91827*/ OPC_CheckType, MVT::i32, ++/* 91829*/ OPC_MoveParent, ++/* 91830*/ OPC_MoveChild, 26, ++/* 91832*/ OPC_CheckInteger, 1, ++/* 91834*/ OPC_CheckType, MVT::i32, ++/* 91836*/ OPC_MoveParent, ++/* 91837*/ OPC_MoveChild, 27, ++/* 91839*/ OPC_CheckInteger, 1, ++/* 91841*/ OPC_CheckType, MVT::i32, ++/* 91843*/ OPC_MoveParent, ++/* 91844*/ OPC_MoveChild, 28, ++/* 91846*/ OPC_CheckInteger, 1, ++/* 91848*/ OPC_CheckType, MVT::i32, ++/* 91850*/ OPC_MoveParent, ++/* 91851*/ OPC_MoveChild, 29, ++/* 91853*/ OPC_CheckInteger, 1, ++/* 91855*/ OPC_CheckType, MVT::i32, ++/* 91857*/ OPC_MoveParent, ++/* 91858*/ OPC_MoveChild, 30, ++/* 91860*/ OPC_CheckInteger, 1, ++/* 91862*/ OPC_CheckType, MVT::i32, ++/* 91864*/ OPC_MoveParent, ++/* 91865*/ OPC_MoveChild, 31, ++/* 91867*/ OPC_CheckInteger, 1, ++/* 91869*/ OPC_CheckType, MVT::i32, ++/* 91871*/ OPC_MoveParent, ++/* 91872*/ OPC_MoveParent, ++/* 91873*/ OPC_MoveParent, ++/* 91874*/ OPC_MoveChild1, ++/* 91875*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 91878*/ OPC_CheckChild0Integer, 7, ++/* 91880*/ OPC_CheckChild0Type, MVT::i32, ++/* 91882*/ OPC_CheckChild1Integer, 7, ++/* 91884*/ OPC_CheckChild1Type, MVT::i32, ++/* 91886*/ OPC_CheckChild2Integer, 7, ++/* 91888*/ OPC_CheckChild2Type, MVT::i32, ++/* 91890*/ OPC_CheckChild3Integer, 7, ++/* 91892*/ OPC_CheckChild3Type, MVT::i32, ++/* 91894*/ OPC_CheckChild4Integer, 7, ++/* 91896*/ OPC_CheckChild4Type, MVT::i32, ++/* 91898*/ OPC_MoveChild5, ++/* 91899*/ OPC_CheckInteger, 7, ++/* 91901*/ OPC_CheckType, MVT::i32, ++/* 91903*/ OPC_MoveParent, ++/* 91904*/ OPC_MoveChild6, ++/* 91905*/ OPC_CheckInteger, 7, ++/* 91907*/ OPC_CheckType, MVT::i32, ++/* 91909*/ OPC_MoveParent, ++/* 91910*/ OPC_MoveChild7, ++/* 91911*/ OPC_CheckInteger, 7, ++/* 91913*/ OPC_CheckType, MVT::i32, ++/* 91915*/ OPC_MoveParent, ++/* 91916*/ OPC_MoveChild, 8, ++/* 91918*/ OPC_CheckInteger, 7, ++/* 91920*/ OPC_CheckType, MVT::i32, ++/* 91922*/ OPC_MoveParent, ++/* 91923*/ OPC_MoveChild, 9, ++/* 91925*/ OPC_CheckInteger, 7, ++/* 91927*/ OPC_CheckType, MVT::i32, ++/* 91929*/ OPC_MoveParent, ++/* 91930*/ OPC_MoveChild, 10, ++/* 91932*/ OPC_CheckInteger, 7, ++/* 91934*/ OPC_CheckType, MVT::i32, ++/* 91936*/ OPC_MoveParent, ++/* 91937*/ OPC_MoveChild, 11, ++/* 91939*/ OPC_CheckInteger, 7, ++/* 91941*/ OPC_CheckType, MVT::i32, ++/* 91943*/ OPC_MoveParent, ++/* 91944*/ OPC_MoveChild, 12, ++/* 91946*/ OPC_CheckInteger, 7, ++/* 91948*/ OPC_CheckType, MVT::i32, ++/* 91950*/ OPC_MoveParent, ++/* 91951*/ OPC_MoveChild, 13, ++/* 91953*/ OPC_CheckInteger, 7, ++/* 91955*/ OPC_CheckType, MVT::i32, ++/* 91957*/ OPC_MoveParent, ++/* 91958*/ OPC_MoveChild, 14, ++/* 91960*/ OPC_CheckInteger, 7, ++/* 91962*/ OPC_CheckType, MVT::i32, ++/* 91964*/ OPC_MoveParent, ++/* 91965*/ OPC_MoveChild, 15, ++/* 91967*/ OPC_CheckInteger, 7, ++/* 91969*/ OPC_CheckType, MVT::i32, ++/* 91971*/ OPC_MoveParent, ++/* 91972*/ OPC_MoveChild, 16, ++/* 91974*/ OPC_CheckInteger, 7, ++/* 91976*/ OPC_CheckType, MVT::i32, ++/* 91978*/ OPC_MoveParent, ++/* 91979*/ OPC_MoveChild, 17, ++/* 91981*/ OPC_CheckInteger, 7, ++/* 91983*/ OPC_CheckType, MVT::i32, ++/* 91985*/ OPC_MoveParent, ++/* 91986*/ OPC_MoveChild, 18, ++/* 91988*/ OPC_CheckInteger, 7, ++/* 91990*/ OPC_CheckType, MVT::i32, ++/* 91992*/ OPC_MoveParent, ++/* 91993*/ OPC_MoveChild, 19, ++/* 91995*/ OPC_CheckInteger, 7, ++/* 91997*/ OPC_CheckType, MVT::i32, ++/* 91999*/ OPC_MoveParent, ++/* 92000*/ OPC_MoveChild, 20, ++/* 92002*/ OPC_CheckInteger, 7, ++/* 92004*/ OPC_CheckType, MVT::i32, ++/* 92006*/ OPC_MoveParent, ++/* 92007*/ OPC_MoveChild, 21, ++/* 92009*/ OPC_CheckInteger, 7, ++/* 92011*/ OPC_CheckType, MVT::i32, ++/* 92013*/ OPC_MoveParent, ++/* 92014*/ OPC_MoveChild, 22, ++/* 92016*/ OPC_CheckInteger, 7, ++/* 92018*/ OPC_CheckType, MVT::i32, ++/* 92020*/ OPC_MoveParent, ++/* 92021*/ OPC_MoveChild, 23, ++/* 92023*/ OPC_CheckInteger, 7, ++/* 92025*/ OPC_CheckType, MVT::i32, ++/* 92027*/ OPC_MoveParent, ++/* 92028*/ OPC_MoveChild, 24, ++/* 92030*/ OPC_CheckInteger, 7, ++/* 92032*/ OPC_CheckType, MVT::i32, ++/* 92034*/ OPC_MoveParent, ++/* 92035*/ OPC_MoveChild, 25, ++/* 92037*/ OPC_CheckInteger, 7, ++/* 92039*/ OPC_CheckType, MVT::i32, ++/* 92041*/ OPC_MoveParent, ++/* 92042*/ OPC_MoveChild, 26, ++/* 92044*/ OPC_CheckInteger, 7, ++/* 92046*/ OPC_CheckType, MVT::i32, ++/* 92048*/ OPC_MoveParent, ++/* 92049*/ OPC_MoveChild, 27, ++/* 92051*/ OPC_CheckInteger, 7, ++/* 92053*/ OPC_CheckType, MVT::i32, ++/* 92055*/ OPC_MoveParent, ++/* 92056*/ OPC_MoveChild, 28, ++/* 92058*/ OPC_CheckInteger, 7, ++/* 92060*/ OPC_CheckType, MVT::i32, ++/* 92062*/ OPC_MoveParent, ++/* 92063*/ OPC_MoveChild, 29, ++/* 92065*/ OPC_CheckInteger, 7, ++/* 92067*/ OPC_CheckType, MVT::i32, ++/* 92069*/ OPC_MoveParent, ++/* 92070*/ OPC_MoveChild, 30, ++/* 92072*/ OPC_CheckInteger, 7, ++/* 92074*/ OPC_CheckType, MVT::i32, ++/* 92076*/ OPC_MoveParent, ++/* 92077*/ OPC_MoveChild, 31, ++/* 92079*/ OPC_CheckInteger, 7, ++/* 92081*/ OPC_CheckType, MVT::i32, ++/* 92083*/ OPC_MoveParent, ++/* 92084*/ OPC_CheckType, MVT::v32i8, ++/* 92086*/ OPC_MoveParent, ++/* 92087*/ OPC_MoveParent, ++/* 92088*/ OPC_MoveParent, ++/* 92089*/ OPC_MoveChild1, ++/* 92090*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 92093*/ OPC_CheckChild0Integer, 1, ++/* 92095*/ OPC_CheckChild0Type, MVT::i32, ++/* 92097*/ OPC_CheckChild1Integer, 1, ++/* 92099*/ OPC_CheckChild1Type, MVT::i32, ++/* 92101*/ OPC_CheckChild2Integer, 1, ++/* 92103*/ OPC_CheckChild2Type, MVT::i32, ++/* 92105*/ OPC_CheckChild3Integer, 1, ++/* 92107*/ OPC_CheckChild3Type, MVT::i32, ++/* 92109*/ OPC_CheckChild4Integer, 1, ++/* 92111*/ OPC_CheckChild4Type, MVT::i32, ++/* 92113*/ OPC_MoveChild5, ++/* 92114*/ OPC_CheckInteger, 1, ++/* 92116*/ OPC_CheckType, MVT::i32, ++/* 92118*/ OPC_MoveParent, ++/* 92119*/ OPC_MoveChild6, ++/* 92120*/ OPC_CheckInteger, 1, ++/* 92122*/ OPC_CheckType, MVT::i32, ++/* 92124*/ OPC_MoveParent, ++/* 92125*/ OPC_MoveChild7, ++/* 92126*/ OPC_CheckInteger, 1, ++/* 92128*/ OPC_CheckType, MVT::i32, ++/* 92130*/ OPC_MoveParent, ++/* 92131*/ OPC_MoveChild, 8, ++/* 92133*/ OPC_CheckInteger, 1, ++/* 92135*/ OPC_CheckType, MVT::i32, ++/* 92137*/ OPC_MoveParent, ++/* 92138*/ OPC_MoveChild, 9, ++/* 92140*/ OPC_CheckInteger, 1, ++/* 92142*/ OPC_CheckType, MVT::i32, ++/* 92144*/ OPC_MoveParent, ++/* 92145*/ OPC_MoveChild, 10, ++/* 92147*/ OPC_CheckInteger, 1, ++/* 92149*/ OPC_CheckType, MVT::i32, ++/* 92151*/ OPC_MoveParent, ++/* 92152*/ OPC_MoveChild, 11, ++/* 92154*/ OPC_CheckInteger, 1, ++/* 92156*/ OPC_CheckType, MVT::i32, ++/* 92158*/ OPC_MoveParent, ++/* 92159*/ OPC_MoveChild, 12, ++/* 92161*/ OPC_CheckInteger, 1, ++/* 92163*/ OPC_CheckType, MVT::i32, ++/* 92165*/ OPC_MoveParent, ++/* 92166*/ OPC_MoveChild, 13, ++/* 92168*/ OPC_CheckInteger, 1, ++/* 92170*/ OPC_CheckType, MVT::i32, ++/* 92172*/ OPC_MoveParent, ++/* 92173*/ OPC_MoveChild, 14, ++/* 92175*/ OPC_CheckInteger, 1, ++/* 92177*/ OPC_CheckType, MVT::i32, ++/* 92179*/ OPC_MoveParent, ++/* 92180*/ OPC_MoveChild, 15, ++/* 92182*/ OPC_CheckInteger, 1, ++/* 92184*/ OPC_CheckType, MVT::i32, ++/* 92186*/ OPC_MoveParent, ++/* 92187*/ OPC_MoveChild, 16, ++/* 92189*/ OPC_CheckInteger, 1, ++/* 92191*/ OPC_CheckType, MVT::i32, ++/* 92193*/ OPC_MoveParent, ++/* 92194*/ OPC_MoveChild, 17, ++/* 92196*/ OPC_CheckInteger, 1, ++/* 92198*/ OPC_CheckType, MVT::i32, ++/* 92200*/ OPC_MoveParent, ++/* 92201*/ OPC_MoveChild, 18, ++/* 92203*/ OPC_CheckInteger, 1, ++/* 92205*/ OPC_CheckType, MVT::i32, ++/* 92207*/ OPC_MoveParent, ++/* 92208*/ OPC_MoveChild, 19, ++/* 92210*/ OPC_CheckInteger, 1, ++/* 92212*/ OPC_CheckType, MVT::i32, ++/* 92214*/ OPC_MoveParent, ++/* 92215*/ OPC_MoveChild, 20, ++/* 92217*/ OPC_CheckInteger, 1, ++/* 92219*/ OPC_CheckType, MVT::i32, ++/* 92221*/ OPC_MoveParent, ++/* 92222*/ OPC_MoveChild, 21, ++/* 92224*/ OPC_CheckInteger, 1, ++/* 92226*/ OPC_CheckType, MVT::i32, ++/* 92228*/ OPC_MoveParent, ++/* 92229*/ OPC_MoveChild, 22, ++/* 92231*/ OPC_CheckInteger, 1, ++/* 92233*/ OPC_CheckType, MVT::i32, ++/* 92235*/ OPC_MoveParent, ++/* 92236*/ OPC_MoveChild, 23, ++/* 92238*/ OPC_CheckInteger, 1, ++/* 92240*/ OPC_CheckType, MVT::i32, ++/* 92242*/ OPC_MoveParent, ++/* 92243*/ OPC_MoveChild, 24, ++/* 92245*/ OPC_CheckInteger, 1, ++/* 92247*/ OPC_CheckType, MVT::i32, ++/* 92249*/ OPC_MoveParent, ++/* 92250*/ OPC_MoveChild, 25, ++/* 92252*/ OPC_CheckInteger, 1, ++/* 92254*/ OPC_CheckType, MVT::i32, ++/* 92256*/ OPC_MoveParent, ++/* 92257*/ OPC_MoveChild, 26, ++/* 92259*/ OPC_CheckInteger, 1, ++/* 92261*/ OPC_CheckType, MVT::i32, ++/* 92263*/ OPC_MoveParent, ++/* 92264*/ OPC_MoveChild, 27, ++/* 92266*/ OPC_CheckInteger, 1, ++/* 92268*/ OPC_CheckType, MVT::i32, ++/* 92270*/ OPC_MoveParent, ++/* 92271*/ OPC_MoveChild, 28, ++/* 92273*/ OPC_CheckInteger, 1, ++/* 92275*/ OPC_CheckType, MVT::i32, ++/* 92277*/ OPC_MoveParent, ++/* 92278*/ OPC_MoveChild, 29, ++/* 92280*/ OPC_CheckInteger, 1, ++/* 92282*/ OPC_CheckType, MVT::i32, ++/* 92284*/ OPC_MoveParent, ++/* 92285*/ OPC_MoveChild, 30, ++/* 92287*/ OPC_CheckInteger, 1, ++/* 92289*/ OPC_CheckType, MVT::i32, ++/* 92291*/ OPC_MoveParent, ++/* 92292*/ OPC_MoveChild, 31, ++/* 92294*/ OPC_CheckInteger, 1, ++/* 92296*/ OPC_CheckType, MVT::i32, ++/* 92298*/ OPC_MoveParent, ++/* 92299*/ OPC_CheckType, MVT::v32i8, ++/* 92301*/ OPC_MoveParent, ++/* 92302*/ OPC_CheckType, MVT::v32i8, ++/* 92304*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 92306*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$b), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/* 92314*/ /*Scope*/ 17|128,5/*657*/, /*->92973*/ ++/* 92316*/ OPC_CheckChild0Same, 1, ++/* 92318*/ OPC_CheckChild1Same, 0, ++/* 92320*/ OPC_MoveParent, ++/* 92321*/ OPC_MoveChild1, ++/* 92322*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 92325*/ OPC_CheckChild0Integer, 1, ++/* 92327*/ OPC_CheckChild0Type, MVT::i32, ++/* 92329*/ OPC_CheckChild1Integer, 1, ++/* 92331*/ OPC_CheckChild1Type, MVT::i32, ++/* 92333*/ OPC_CheckChild2Integer, 1, ++/* 92335*/ OPC_CheckChild2Type, MVT::i32, ++/* 92337*/ OPC_CheckChild3Integer, 1, ++/* 92339*/ OPC_CheckChild3Type, MVT::i32, ++/* 92341*/ OPC_CheckChild4Integer, 1, ++/* 92343*/ OPC_CheckChild4Type, MVT::i32, ++/* 92345*/ OPC_MoveChild5, ++/* 92346*/ OPC_CheckInteger, 1, ++/* 92348*/ OPC_CheckType, MVT::i32, ++/* 92350*/ OPC_MoveParent, ++/* 92351*/ OPC_MoveChild6, ++/* 92352*/ OPC_CheckInteger, 1, ++/* 92354*/ OPC_CheckType, MVT::i32, ++/* 92356*/ OPC_MoveParent, ++/* 92357*/ OPC_MoveChild7, ++/* 92358*/ OPC_CheckInteger, 1, ++/* 92360*/ OPC_CheckType, MVT::i32, ++/* 92362*/ OPC_MoveParent, ++/* 92363*/ OPC_MoveChild, 8, ++/* 92365*/ OPC_CheckInteger, 1, ++/* 92367*/ OPC_CheckType, MVT::i32, ++/* 92369*/ OPC_MoveParent, ++/* 92370*/ OPC_MoveChild, 9, ++/* 92372*/ OPC_CheckInteger, 1, ++/* 92374*/ OPC_CheckType, MVT::i32, ++/* 92376*/ OPC_MoveParent, ++/* 92377*/ OPC_MoveChild, 10, ++/* 92379*/ OPC_CheckInteger, 1, ++/* 92381*/ OPC_CheckType, MVT::i32, ++/* 92383*/ OPC_MoveParent, ++/* 92384*/ OPC_MoveChild, 11, ++/* 92386*/ OPC_CheckInteger, 1, ++/* 92388*/ OPC_CheckType, MVT::i32, ++/* 92390*/ OPC_MoveParent, ++/* 92391*/ OPC_MoveChild, 12, ++/* 92393*/ OPC_CheckInteger, 1, ++/* 92395*/ OPC_CheckType, MVT::i32, ++/* 92397*/ OPC_MoveParent, ++/* 92398*/ OPC_MoveChild, 13, ++/* 92400*/ OPC_CheckInteger, 1, ++/* 92402*/ OPC_CheckType, MVT::i32, ++/* 92404*/ OPC_MoveParent, ++/* 92405*/ OPC_MoveChild, 14, ++/* 92407*/ OPC_CheckInteger, 1, ++/* 92409*/ OPC_CheckType, MVT::i32, ++/* 92411*/ OPC_MoveParent, ++/* 92412*/ OPC_MoveChild, 15, ++/* 92414*/ OPC_CheckInteger, 1, ++/* 92416*/ OPC_CheckType, MVT::i32, ++/* 92418*/ OPC_MoveParent, ++/* 92419*/ OPC_MoveChild, 16, ++/* 92421*/ OPC_CheckInteger, 1, ++/* 92423*/ OPC_CheckType, MVT::i32, ++/* 92425*/ OPC_MoveParent, ++/* 92426*/ OPC_MoveChild, 17, ++/* 92428*/ OPC_CheckInteger, 1, ++/* 92430*/ OPC_CheckType, MVT::i32, ++/* 92432*/ OPC_MoveParent, ++/* 92433*/ OPC_MoveChild, 18, ++/* 92435*/ OPC_CheckInteger, 1, ++/* 92437*/ OPC_CheckType, MVT::i32, ++/* 92439*/ OPC_MoveParent, ++/* 92440*/ OPC_MoveChild, 19, ++/* 92442*/ OPC_CheckInteger, 1, ++/* 92444*/ OPC_CheckType, MVT::i32, ++/* 92446*/ OPC_MoveParent, ++/* 92447*/ OPC_MoveChild, 20, ++/* 92449*/ OPC_CheckInteger, 1, ++/* 92451*/ OPC_CheckType, MVT::i32, ++/* 92453*/ OPC_MoveParent, ++/* 92454*/ OPC_MoveChild, 21, ++/* 92456*/ OPC_CheckInteger, 1, ++/* 92458*/ OPC_CheckType, MVT::i32, ++/* 92460*/ OPC_MoveParent, ++/* 92461*/ OPC_MoveChild, 22, ++/* 92463*/ OPC_CheckInteger, 1, ++/* 92465*/ OPC_CheckType, MVT::i32, ++/* 92467*/ OPC_MoveParent, ++/* 92468*/ OPC_MoveChild, 23, ++/* 92470*/ OPC_CheckInteger, 1, ++/* 92472*/ OPC_CheckType, MVT::i32, ++/* 92474*/ OPC_MoveParent, ++/* 92475*/ OPC_MoveChild, 24, ++/* 92477*/ OPC_CheckInteger, 1, ++/* 92479*/ OPC_CheckType, MVT::i32, ++/* 92481*/ OPC_MoveParent, ++/* 92482*/ OPC_MoveChild, 25, ++/* 92484*/ OPC_CheckInteger, 1, ++/* 92486*/ OPC_CheckType, MVT::i32, ++/* 92488*/ OPC_MoveParent, ++/* 92489*/ OPC_MoveChild, 26, ++/* 92491*/ OPC_CheckInteger, 1, ++/* 92493*/ OPC_CheckType, MVT::i32, ++/* 92495*/ OPC_MoveParent, ++/* 92496*/ OPC_MoveChild, 27, ++/* 92498*/ OPC_CheckInteger, 1, ++/* 92500*/ OPC_CheckType, MVT::i32, ++/* 92502*/ OPC_MoveParent, ++/* 92503*/ OPC_MoveChild, 28, ++/* 92505*/ OPC_CheckInteger, 1, ++/* 92507*/ OPC_CheckType, MVT::i32, ++/* 92509*/ OPC_MoveParent, ++/* 92510*/ OPC_MoveChild, 29, ++/* 92512*/ OPC_CheckInteger, 1, ++/* 92514*/ OPC_CheckType, MVT::i32, ++/* 92516*/ OPC_MoveParent, ++/* 92517*/ OPC_MoveChild, 30, ++/* 92519*/ OPC_CheckInteger, 1, ++/* 92521*/ OPC_CheckType, MVT::i32, ++/* 92523*/ OPC_MoveParent, ++/* 92524*/ OPC_MoveChild, 31, ++/* 92526*/ OPC_CheckInteger, 1, ++/* 92528*/ OPC_CheckType, MVT::i32, ++/* 92530*/ OPC_MoveParent, ++/* 92531*/ OPC_MoveParent, ++/* 92532*/ OPC_MoveParent, ++/* 92533*/ OPC_MoveChild1, ++/* 92534*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 92537*/ OPC_CheckChild0Integer, 7, ++/* 92539*/ OPC_CheckChild0Type, MVT::i32, ++/* 92541*/ OPC_CheckChild1Integer, 7, ++/* 92543*/ OPC_CheckChild1Type, MVT::i32, ++/* 92545*/ OPC_CheckChild2Integer, 7, ++/* 92547*/ OPC_CheckChild2Type, MVT::i32, ++/* 92549*/ OPC_CheckChild3Integer, 7, ++/* 92551*/ OPC_CheckChild3Type, MVT::i32, ++/* 92553*/ OPC_CheckChild4Integer, 7, ++/* 92555*/ OPC_CheckChild4Type, MVT::i32, ++/* 92557*/ OPC_MoveChild5, ++/* 92558*/ OPC_CheckInteger, 7, ++/* 92560*/ OPC_CheckType, MVT::i32, ++/* 92562*/ OPC_MoveParent, ++/* 92563*/ OPC_MoveChild6, ++/* 92564*/ OPC_CheckInteger, 7, ++/* 92566*/ OPC_CheckType, MVT::i32, ++/* 92568*/ OPC_MoveParent, ++/* 92569*/ OPC_MoveChild7, ++/* 92570*/ OPC_CheckInteger, 7, ++/* 92572*/ OPC_CheckType, MVT::i32, ++/* 92574*/ OPC_MoveParent, ++/* 92575*/ OPC_MoveChild, 8, ++/* 92577*/ OPC_CheckInteger, 7, ++/* 92579*/ OPC_CheckType, MVT::i32, ++/* 92581*/ OPC_MoveParent, ++/* 92582*/ OPC_MoveChild, 9, ++/* 92584*/ OPC_CheckInteger, 7, ++/* 92586*/ OPC_CheckType, MVT::i32, ++/* 92588*/ OPC_MoveParent, ++/* 92589*/ OPC_MoveChild, 10, ++/* 92591*/ OPC_CheckInteger, 7, ++/* 92593*/ OPC_CheckType, MVT::i32, ++/* 92595*/ OPC_MoveParent, ++/* 92596*/ OPC_MoveChild, 11, ++/* 92598*/ OPC_CheckInteger, 7, ++/* 92600*/ OPC_CheckType, MVT::i32, ++/* 92602*/ OPC_MoveParent, ++/* 92603*/ OPC_MoveChild, 12, ++/* 92605*/ OPC_CheckInteger, 7, ++/* 92607*/ OPC_CheckType, MVT::i32, ++/* 92609*/ OPC_MoveParent, ++/* 92610*/ OPC_MoveChild, 13, ++/* 92612*/ OPC_CheckInteger, 7, ++/* 92614*/ OPC_CheckType, MVT::i32, ++/* 92616*/ OPC_MoveParent, ++/* 92617*/ OPC_MoveChild, 14, ++/* 92619*/ OPC_CheckInteger, 7, ++/* 92621*/ OPC_CheckType, MVT::i32, ++/* 92623*/ OPC_MoveParent, ++/* 92624*/ OPC_MoveChild, 15, ++/* 92626*/ OPC_CheckInteger, 7, ++/* 92628*/ OPC_CheckType, MVT::i32, ++/* 92630*/ OPC_MoveParent, ++/* 92631*/ OPC_MoveChild, 16, ++/* 92633*/ OPC_CheckInteger, 7, ++/* 92635*/ OPC_CheckType, MVT::i32, ++/* 92637*/ OPC_MoveParent, ++/* 92638*/ OPC_MoveChild, 17, ++/* 92640*/ OPC_CheckInteger, 7, ++/* 92642*/ OPC_CheckType, MVT::i32, ++/* 92644*/ OPC_MoveParent, ++/* 92645*/ OPC_MoveChild, 18, ++/* 92647*/ OPC_CheckInteger, 7, ++/* 92649*/ OPC_CheckType, MVT::i32, ++/* 92651*/ OPC_MoveParent, ++/* 92652*/ OPC_MoveChild, 19, ++/* 92654*/ OPC_CheckInteger, 7, ++/* 92656*/ OPC_CheckType, MVT::i32, ++/* 92658*/ OPC_MoveParent, ++/* 92659*/ OPC_MoveChild, 20, ++/* 92661*/ OPC_CheckInteger, 7, ++/* 92663*/ OPC_CheckType, MVT::i32, ++/* 92665*/ OPC_MoveParent, ++/* 92666*/ OPC_MoveChild, 21, ++/* 92668*/ OPC_CheckInteger, 7, ++/* 92670*/ OPC_CheckType, MVT::i32, ++/* 92672*/ OPC_MoveParent, ++/* 92673*/ OPC_MoveChild, 22, ++/* 92675*/ OPC_CheckInteger, 7, ++/* 92677*/ OPC_CheckType, MVT::i32, ++/* 92679*/ OPC_MoveParent, ++/* 92680*/ OPC_MoveChild, 23, ++/* 92682*/ OPC_CheckInteger, 7, ++/* 92684*/ OPC_CheckType, MVT::i32, ++/* 92686*/ OPC_MoveParent, ++/* 92687*/ OPC_MoveChild, 24, ++/* 92689*/ OPC_CheckInteger, 7, ++/* 92691*/ OPC_CheckType, MVT::i32, ++/* 92693*/ OPC_MoveParent, ++/* 92694*/ OPC_MoveChild, 25, ++/* 92696*/ OPC_CheckInteger, 7, ++/* 92698*/ OPC_CheckType, MVT::i32, ++/* 92700*/ OPC_MoveParent, ++/* 92701*/ OPC_MoveChild, 26, ++/* 92703*/ OPC_CheckInteger, 7, ++/* 92705*/ OPC_CheckType, MVT::i32, ++/* 92707*/ OPC_MoveParent, ++/* 92708*/ OPC_MoveChild, 27, ++/* 92710*/ OPC_CheckInteger, 7, ++/* 92712*/ OPC_CheckType, MVT::i32, ++/* 92714*/ OPC_MoveParent, ++/* 92715*/ OPC_MoveChild, 28, ++/* 92717*/ OPC_CheckInteger, 7, ++/* 92719*/ OPC_CheckType, MVT::i32, ++/* 92721*/ OPC_MoveParent, ++/* 92722*/ OPC_MoveChild, 29, ++/* 92724*/ OPC_CheckInteger, 7, ++/* 92726*/ OPC_CheckType, MVT::i32, ++/* 92728*/ OPC_MoveParent, ++/* 92729*/ OPC_MoveChild, 30, ++/* 92731*/ OPC_CheckInteger, 7, ++/* 92733*/ OPC_CheckType, MVT::i32, ++/* 92735*/ OPC_MoveParent, ++/* 92736*/ OPC_MoveChild, 31, ++/* 92738*/ OPC_CheckInteger, 7, ++/* 92740*/ OPC_CheckType, MVT::i32, ++/* 92742*/ OPC_MoveParent, ++/* 92743*/ OPC_CheckType, MVT::v32i8, ++/* 92745*/ OPC_MoveParent, ++/* 92746*/ OPC_MoveParent, ++/* 92747*/ OPC_MoveParent, ++/* 92748*/ OPC_MoveChild1, ++/* 92749*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 92752*/ OPC_CheckChild0Integer, 1, ++/* 92754*/ OPC_CheckChild0Type, MVT::i32, ++/* 92756*/ OPC_CheckChild1Integer, 1, ++/* 92758*/ OPC_CheckChild1Type, MVT::i32, ++/* 92760*/ OPC_CheckChild2Integer, 1, ++/* 92762*/ OPC_CheckChild2Type, MVT::i32, ++/* 92764*/ OPC_CheckChild3Integer, 1, ++/* 92766*/ OPC_CheckChild3Type, MVT::i32, ++/* 92768*/ OPC_CheckChild4Integer, 1, ++/* 92770*/ OPC_CheckChild4Type, MVT::i32, ++/* 92772*/ OPC_MoveChild5, ++/* 92773*/ OPC_CheckInteger, 1, ++/* 92775*/ OPC_CheckType, MVT::i32, ++/* 92777*/ OPC_MoveParent, ++/* 92778*/ OPC_MoveChild6, ++/* 92779*/ OPC_CheckInteger, 1, ++/* 92781*/ OPC_CheckType, MVT::i32, ++/* 92783*/ OPC_MoveParent, ++/* 92784*/ OPC_MoveChild7, ++/* 92785*/ OPC_CheckInteger, 1, ++/* 92787*/ OPC_CheckType, MVT::i32, ++/* 92789*/ OPC_MoveParent, ++/* 92790*/ OPC_MoveChild, 8, ++/* 92792*/ OPC_CheckInteger, 1, ++/* 92794*/ OPC_CheckType, MVT::i32, ++/* 92796*/ OPC_MoveParent, ++/* 92797*/ OPC_MoveChild, 9, ++/* 92799*/ OPC_CheckInteger, 1, ++/* 92801*/ OPC_CheckType, MVT::i32, ++/* 92803*/ OPC_MoveParent, ++/* 92804*/ OPC_MoveChild, 10, ++/* 92806*/ OPC_CheckInteger, 1, ++/* 92808*/ OPC_CheckType, MVT::i32, ++/* 92810*/ OPC_MoveParent, ++/* 92811*/ OPC_MoveChild, 11, ++/* 92813*/ OPC_CheckInteger, 1, ++/* 92815*/ OPC_CheckType, MVT::i32, ++/* 92817*/ OPC_MoveParent, ++/* 92818*/ OPC_MoveChild, 12, ++/* 92820*/ OPC_CheckInteger, 1, ++/* 92822*/ OPC_CheckType, MVT::i32, ++/* 92824*/ OPC_MoveParent, ++/* 92825*/ OPC_MoveChild, 13, ++/* 92827*/ OPC_CheckInteger, 1, ++/* 92829*/ OPC_CheckType, MVT::i32, ++/* 92831*/ OPC_MoveParent, ++/* 92832*/ OPC_MoveChild, 14, ++/* 92834*/ OPC_CheckInteger, 1, ++/* 92836*/ OPC_CheckType, MVT::i32, ++/* 92838*/ OPC_MoveParent, ++/* 92839*/ OPC_MoveChild, 15, ++/* 92841*/ OPC_CheckInteger, 1, ++/* 92843*/ OPC_CheckType, MVT::i32, ++/* 92845*/ OPC_MoveParent, ++/* 92846*/ OPC_MoveChild, 16, ++/* 92848*/ OPC_CheckInteger, 1, ++/* 92850*/ OPC_CheckType, MVT::i32, ++/* 92852*/ OPC_MoveParent, ++/* 92853*/ OPC_MoveChild, 17, ++/* 92855*/ OPC_CheckInteger, 1, ++/* 92857*/ OPC_CheckType, MVT::i32, ++/* 92859*/ OPC_MoveParent, ++/* 92860*/ OPC_MoveChild, 18, ++/* 92862*/ OPC_CheckInteger, 1, ++/* 92864*/ OPC_CheckType, MVT::i32, ++/* 92866*/ OPC_MoveParent, ++/* 92867*/ OPC_MoveChild, 19, ++/* 92869*/ OPC_CheckInteger, 1, ++/* 92871*/ OPC_CheckType, MVT::i32, ++/* 92873*/ OPC_MoveParent, ++/* 92874*/ OPC_MoveChild, 20, ++/* 92876*/ OPC_CheckInteger, 1, ++/* 92878*/ OPC_CheckType, MVT::i32, ++/* 92880*/ OPC_MoveParent, ++/* 92881*/ OPC_MoveChild, 21, ++/* 92883*/ OPC_CheckInteger, 1, ++/* 92885*/ OPC_CheckType, MVT::i32, ++/* 92887*/ OPC_MoveParent, ++/* 92888*/ OPC_MoveChild, 22, ++/* 92890*/ OPC_CheckInteger, 1, ++/* 92892*/ OPC_CheckType, MVT::i32, ++/* 92894*/ OPC_MoveParent, ++/* 92895*/ OPC_MoveChild, 23, ++/* 92897*/ OPC_CheckInteger, 1, ++/* 92899*/ OPC_CheckType, MVT::i32, ++/* 92901*/ OPC_MoveParent, ++/* 92902*/ OPC_MoveChild, 24, ++/* 92904*/ OPC_CheckInteger, 1, ++/* 92906*/ OPC_CheckType, MVT::i32, ++/* 92908*/ OPC_MoveParent, ++/* 92909*/ OPC_MoveChild, 25, ++/* 92911*/ OPC_CheckInteger, 1, ++/* 92913*/ OPC_CheckType, MVT::i32, ++/* 92915*/ OPC_MoveParent, ++/* 92916*/ OPC_MoveChild, 26, ++/* 92918*/ OPC_CheckInteger, 1, ++/* 92920*/ OPC_CheckType, MVT::i32, ++/* 92922*/ OPC_MoveParent, ++/* 92923*/ OPC_MoveChild, 27, ++/* 92925*/ OPC_CheckInteger, 1, ++/* 92927*/ OPC_CheckType, MVT::i32, ++/* 92929*/ OPC_MoveParent, ++/* 92930*/ OPC_MoveChild, 28, ++/* 92932*/ OPC_CheckInteger, 1, ++/* 92934*/ OPC_CheckType, MVT::i32, ++/* 92936*/ OPC_MoveParent, ++/* 92937*/ OPC_MoveChild, 29, ++/* 92939*/ OPC_CheckInteger, 1, ++/* 92941*/ OPC_CheckType, MVT::i32, ++/* 92943*/ OPC_MoveParent, ++/* 92944*/ OPC_MoveChild, 30, ++/* 92946*/ OPC_CheckInteger, 1, ++/* 92948*/ OPC_CheckType, MVT::i32, ++/* 92950*/ OPC_MoveParent, ++/* 92951*/ OPC_MoveChild, 31, ++/* 92953*/ OPC_CheckInteger, 1, ++/* 92955*/ OPC_CheckType, MVT::i32, ++/* 92957*/ OPC_MoveParent, ++/* 92958*/ OPC_CheckType, MVT::v32i8, ++/* 92960*/ OPC_MoveParent, ++/* 92961*/ OPC_CheckType, MVT::v32i8, ++/* 92963*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 92965*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$b), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/* 92973*/ 0, /*End of Scope*/ ++/* 92974*/ /*Scope*/ 42|128,10/*1322*/, /*->94298*/ ++/* 92976*/ OPC_CheckChild0Same, 1, ++/* 92978*/ OPC_MoveChild1, ++/* 92979*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/* 92982*/ OPC_Scope, 15|128,5/*655*/, /*->93640*/ // 2 children in Scope ++/* 92985*/ OPC_MoveChild0, ++/* 92986*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 92989*/ OPC_CheckChild0Integer, 1, ++/* 92991*/ OPC_CheckChild0Type, MVT::i32, ++/* 92993*/ OPC_CheckChild1Integer, 1, ++/* 92995*/ OPC_CheckChild1Type, MVT::i32, ++/* 92997*/ OPC_CheckChild2Integer, 1, ++/* 92999*/ OPC_CheckChild2Type, MVT::i32, ++/* 93001*/ OPC_CheckChild3Integer, 1, ++/* 93003*/ OPC_CheckChild3Type, MVT::i32, ++/* 93005*/ OPC_CheckChild4Integer, 1, ++/* 93007*/ OPC_CheckChild4Type, MVT::i32, ++/* 93009*/ OPC_MoveChild5, ++/* 93010*/ OPC_CheckInteger, 1, ++/* 93012*/ OPC_CheckType, MVT::i32, ++/* 93014*/ OPC_MoveParent, ++/* 93015*/ OPC_MoveChild6, ++/* 93016*/ OPC_CheckInteger, 1, ++/* 93018*/ OPC_CheckType, MVT::i32, ++/* 93020*/ OPC_MoveParent, ++/* 93021*/ OPC_MoveChild7, ++/* 93022*/ OPC_CheckInteger, 1, ++/* 93024*/ OPC_CheckType, MVT::i32, ++/* 93026*/ OPC_MoveParent, ++/* 93027*/ OPC_MoveChild, 8, ++/* 93029*/ OPC_CheckInteger, 1, ++/* 93031*/ OPC_CheckType, MVT::i32, ++/* 93033*/ OPC_MoveParent, ++/* 93034*/ OPC_MoveChild, 9, ++/* 93036*/ OPC_CheckInteger, 1, ++/* 93038*/ OPC_CheckType, MVT::i32, ++/* 93040*/ OPC_MoveParent, ++/* 93041*/ OPC_MoveChild, 10, ++/* 93043*/ OPC_CheckInteger, 1, ++/* 93045*/ OPC_CheckType, MVT::i32, ++/* 93047*/ OPC_MoveParent, ++/* 93048*/ OPC_MoveChild, 11, ++/* 93050*/ OPC_CheckInteger, 1, ++/* 93052*/ OPC_CheckType, MVT::i32, ++/* 93054*/ OPC_MoveParent, ++/* 93055*/ OPC_MoveChild, 12, ++/* 93057*/ OPC_CheckInteger, 1, ++/* 93059*/ OPC_CheckType, MVT::i32, ++/* 93061*/ OPC_MoveParent, ++/* 93062*/ OPC_MoveChild, 13, ++/* 93064*/ OPC_CheckInteger, 1, ++/* 93066*/ OPC_CheckType, MVT::i32, ++/* 93068*/ OPC_MoveParent, ++/* 93069*/ OPC_MoveChild, 14, ++/* 93071*/ OPC_CheckInteger, 1, ++/* 93073*/ OPC_CheckType, MVT::i32, ++/* 93075*/ OPC_MoveParent, ++/* 93076*/ OPC_MoveChild, 15, ++/* 93078*/ OPC_CheckInteger, 1, ++/* 93080*/ OPC_CheckType, MVT::i32, ++/* 93082*/ OPC_MoveParent, ++/* 93083*/ OPC_MoveChild, 16, ++/* 93085*/ OPC_CheckInteger, 1, ++/* 93087*/ OPC_CheckType, MVT::i32, ++/* 93089*/ OPC_MoveParent, ++/* 93090*/ OPC_MoveChild, 17, ++/* 93092*/ OPC_CheckInteger, 1, ++/* 93094*/ OPC_CheckType, MVT::i32, ++/* 93096*/ OPC_MoveParent, ++/* 93097*/ OPC_MoveChild, 18, ++/* 93099*/ OPC_CheckInteger, 1, ++/* 93101*/ OPC_CheckType, MVT::i32, ++/* 93103*/ OPC_MoveParent, ++/* 93104*/ OPC_MoveChild, 19, ++/* 93106*/ OPC_CheckInteger, 1, ++/* 93108*/ OPC_CheckType, MVT::i32, ++/* 93110*/ OPC_MoveParent, ++/* 93111*/ OPC_MoveChild, 20, ++/* 93113*/ OPC_CheckInteger, 1, ++/* 93115*/ OPC_CheckType, MVT::i32, ++/* 93117*/ OPC_MoveParent, ++/* 93118*/ OPC_MoveChild, 21, ++/* 93120*/ OPC_CheckInteger, 1, ++/* 93122*/ OPC_CheckType, MVT::i32, ++/* 93124*/ OPC_MoveParent, ++/* 93125*/ OPC_MoveChild, 22, ++/* 93127*/ OPC_CheckInteger, 1, ++/* 93129*/ OPC_CheckType, MVT::i32, ++/* 93131*/ OPC_MoveParent, ++/* 93132*/ OPC_MoveChild, 23, ++/* 93134*/ OPC_CheckInteger, 1, ++/* 93136*/ OPC_CheckType, MVT::i32, ++/* 93138*/ OPC_MoveParent, ++/* 93139*/ OPC_MoveChild, 24, ++/* 93141*/ OPC_CheckInteger, 1, ++/* 93143*/ OPC_CheckType, MVT::i32, ++/* 93145*/ OPC_MoveParent, ++/* 93146*/ OPC_MoveChild, 25, ++/* 93148*/ OPC_CheckInteger, 1, ++/* 93150*/ OPC_CheckType, MVT::i32, ++/* 93152*/ OPC_MoveParent, ++/* 93153*/ OPC_MoveChild, 26, ++/* 93155*/ OPC_CheckInteger, 1, ++/* 93157*/ OPC_CheckType, MVT::i32, ++/* 93159*/ OPC_MoveParent, ++/* 93160*/ OPC_MoveChild, 27, ++/* 93162*/ OPC_CheckInteger, 1, ++/* 93164*/ OPC_CheckType, MVT::i32, ++/* 93166*/ OPC_MoveParent, ++/* 93167*/ OPC_MoveChild, 28, ++/* 93169*/ OPC_CheckInteger, 1, ++/* 93171*/ OPC_CheckType, MVT::i32, ++/* 93173*/ OPC_MoveParent, ++/* 93174*/ OPC_MoveChild, 29, ++/* 93176*/ OPC_CheckInteger, 1, ++/* 93178*/ OPC_CheckType, MVT::i32, ++/* 93180*/ OPC_MoveParent, ++/* 93181*/ OPC_MoveChild, 30, ++/* 93183*/ OPC_CheckInteger, 1, ++/* 93185*/ OPC_CheckType, MVT::i32, ++/* 93187*/ OPC_MoveParent, ++/* 93188*/ OPC_MoveChild, 31, ++/* 93190*/ OPC_CheckInteger, 1, ++/* 93192*/ OPC_CheckType, MVT::i32, ++/* 93194*/ OPC_MoveParent, ++/* 93195*/ OPC_MoveParent, ++/* 93196*/ OPC_CheckChild1Same, 0, ++/* 93198*/ OPC_MoveParent, ++/* 93199*/ OPC_MoveParent, ++/* 93200*/ OPC_MoveChild1, ++/* 93201*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 93204*/ OPC_CheckChild0Integer, 7, ++/* 93206*/ OPC_CheckChild0Type, MVT::i32, ++/* 93208*/ OPC_CheckChild1Integer, 7, ++/* 93210*/ OPC_CheckChild1Type, MVT::i32, ++/* 93212*/ OPC_CheckChild2Integer, 7, ++/* 93214*/ OPC_CheckChild2Type, MVT::i32, ++/* 93216*/ OPC_CheckChild3Integer, 7, ++/* 93218*/ OPC_CheckChild3Type, MVT::i32, ++/* 93220*/ OPC_CheckChild4Integer, 7, ++/* 93222*/ OPC_CheckChild4Type, MVT::i32, ++/* 93224*/ OPC_MoveChild5, ++/* 93225*/ OPC_CheckInteger, 7, ++/* 93227*/ OPC_CheckType, MVT::i32, ++/* 93229*/ OPC_MoveParent, ++/* 93230*/ OPC_MoveChild6, ++/* 93231*/ OPC_CheckInteger, 7, ++/* 93233*/ OPC_CheckType, MVT::i32, ++/* 93235*/ OPC_MoveParent, ++/* 93236*/ OPC_MoveChild7, ++/* 93237*/ OPC_CheckInteger, 7, ++/* 93239*/ OPC_CheckType, MVT::i32, ++/* 93241*/ OPC_MoveParent, ++/* 93242*/ OPC_MoveChild, 8, ++/* 93244*/ OPC_CheckInteger, 7, ++/* 93246*/ OPC_CheckType, MVT::i32, ++/* 93248*/ OPC_MoveParent, ++/* 93249*/ OPC_MoveChild, 9, ++/* 93251*/ OPC_CheckInteger, 7, ++/* 93253*/ OPC_CheckType, MVT::i32, ++/* 93255*/ OPC_MoveParent, ++/* 93256*/ OPC_MoveChild, 10, ++/* 93258*/ OPC_CheckInteger, 7, ++/* 93260*/ OPC_CheckType, MVT::i32, ++/* 93262*/ OPC_MoveParent, ++/* 93263*/ OPC_MoveChild, 11, ++/* 93265*/ OPC_CheckInteger, 7, ++/* 93267*/ OPC_CheckType, MVT::i32, ++/* 93269*/ OPC_MoveParent, ++/* 93270*/ OPC_MoveChild, 12, ++/* 93272*/ OPC_CheckInteger, 7, ++/* 93274*/ OPC_CheckType, MVT::i32, ++/* 93276*/ OPC_MoveParent, ++/* 93277*/ OPC_MoveChild, 13, ++/* 93279*/ OPC_CheckInteger, 7, ++/* 93281*/ OPC_CheckType, MVT::i32, ++/* 93283*/ OPC_MoveParent, ++/* 93284*/ OPC_MoveChild, 14, ++/* 93286*/ OPC_CheckInteger, 7, ++/* 93288*/ OPC_CheckType, MVT::i32, ++/* 93290*/ OPC_MoveParent, ++/* 93291*/ OPC_MoveChild, 15, ++/* 93293*/ OPC_CheckInteger, 7, ++/* 93295*/ OPC_CheckType, MVT::i32, ++/* 93297*/ OPC_MoveParent, ++/* 93298*/ OPC_MoveChild, 16, ++/* 93300*/ OPC_CheckInteger, 7, ++/* 93302*/ OPC_CheckType, MVT::i32, ++/* 93304*/ OPC_MoveParent, ++/* 93305*/ OPC_MoveChild, 17, ++/* 93307*/ OPC_CheckInteger, 7, ++/* 93309*/ OPC_CheckType, MVT::i32, ++/* 93311*/ OPC_MoveParent, ++/* 93312*/ OPC_MoveChild, 18, ++/* 93314*/ OPC_CheckInteger, 7, ++/* 93316*/ OPC_CheckType, MVT::i32, ++/* 93318*/ OPC_MoveParent, ++/* 93319*/ OPC_MoveChild, 19, ++/* 93321*/ OPC_CheckInteger, 7, ++/* 93323*/ OPC_CheckType, MVT::i32, ++/* 93325*/ OPC_MoveParent, ++/* 93326*/ OPC_MoveChild, 20, ++/* 93328*/ OPC_CheckInteger, 7, ++/* 93330*/ OPC_CheckType, MVT::i32, ++/* 93332*/ OPC_MoveParent, ++/* 93333*/ OPC_MoveChild, 21, ++/* 93335*/ OPC_CheckInteger, 7, ++/* 93337*/ OPC_CheckType, MVT::i32, ++/* 93339*/ OPC_MoveParent, ++/* 93340*/ OPC_MoveChild, 22, ++/* 93342*/ OPC_CheckInteger, 7, ++/* 93344*/ OPC_CheckType, MVT::i32, ++/* 93346*/ OPC_MoveParent, ++/* 93347*/ OPC_MoveChild, 23, ++/* 93349*/ OPC_CheckInteger, 7, ++/* 93351*/ OPC_CheckType, MVT::i32, ++/* 93353*/ OPC_MoveParent, ++/* 93354*/ OPC_MoveChild, 24, ++/* 93356*/ OPC_CheckInteger, 7, ++/* 93358*/ OPC_CheckType, MVT::i32, ++/* 93360*/ OPC_MoveParent, ++/* 93361*/ OPC_MoveChild, 25, ++/* 93363*/ OPC_CheckInteger, 7, ++/* 93365*/ OPC_CheckType, MVT::i32, ++/* 93367*/ OPC_MoveParent, ++/* 93368*/ OPC_MoveChild, 26, ++/* 93370*/ OPC_CheckInteger, 7, ++/* 93372*/ OPC_CheckType, MVT::i32, ++/* 93374*/ OPC_MoveParent, ++/* 93375*/ OPC_MoveChild, 27, ++/* 93377*/ OPC_CheckInteger, 7, ++/* 93379*/ OPC_CheckType, MVT::i32, ++/* 93381*/ OPC_MoveParent, ++/* 93382*/ OPC_MoveChild, 28, ++/* 93384*/ OPC_CheckInteger, 7, ++/* 93386*/ OPC_CheckType, MVT::i32, ++/* 93388*/ OPC_MoveParent, ++/* 93389*/ OPC_MoveChild, 29, ++/* 93391*/ OPC_CheckInteger, 7, ++/* 93393*/ OPC_CheckType, MVT::i32, ++/* 93395*/ OPC_MoveParent, ++/* 93396*/ OPC_MoveChild, 30, ++/* 93398*/ OPC_CheckInteger, 7, ++/* 93400*/ OPC_CheckType, MVT::i32, ++/* 93402*/ OPC_MoveParent, ++/* 93403*/ OPC_MoveChild, 31, ++/* 93405*/ OPC_CheckInteger, 7, ++/* 93407*/ OPC_CheckType, MVT::i32, ++/* 93409*/ OPC_MoveParent, ++/* 93410*/ OPC_CheckType, MVT::v32i8, ++/* 93412*/ OPC_MoveParent, ++/* 93413*/ OPC_MoveParent, ++/* 93414*/ OPC_MoveParent, ++/* 93415*/ OPC_MoveChild1, ++/* 93416*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 93419*/ OPC_CheckChild0Integer, 1, ++/* 93421*/ OPC_CheckChild0Type, MVT::i32, ++/* 93423*/ OPC_CheckChild1Integer, 1, ++/* 93425*/ OPC_CheckChild1Type, MVT::i32, ++/* 93427*/ OPC_CheckChild2Integer, 1, ++/* 93429*/ OPC_CheckChild2Type, MVT::i32, ++/* 93431*/ OPC_CheckChild3Integer, 1, ++/* 93433*/ OPC_CheckChild3Type, MVT::i32, ++/* 93435*/ OPC_CheckChild4Integer, 1, ++/* 93437*/ OPC_CheckChild4Type, MVT::i32, ++/* 93439*/ OPC_MoveChild5, ++/* 93440*/ OPC_CheckInteger, 1, ++/* 93442*/ OPC_CheckType, MVT::i32, ++/* 93444*/ OPC_MoveParent, ++/* 93445*/ OPC_MoveChild6, ++/* 93446*/ OPC_CheckInteger, 1, ++/* 93448*/ OPC_CheckType, MVT::i32, ++/* 93450*/ OPC_MoveParent, ++/* 93451*/ OPC_MoveChild7, ++/* 93452*/ OPC_CheckInteger, 1, ++/* 93454*/ OPC_CheckType, MVT::i32, ++/* 93456*/ OPC_MoveParent, ++/* 93457*/ OPC_MoveChild, 8, ++/* 93459*/ OPC_CheckInteger, 1, ++/* 93461*/ OPC_CheckType, MVT::i32, ++/* 93463*/ OPC_MoveParent, ++/* 93464*/ OPC_MoveChild, 9, ++/* 93466*/ OPC_CheckInteger, 1, ++/* 93468*/ OPC_CheckType, MVT::i32, ++/* 93470*/ OPC_MoveParent, ++/* 93471*/ OPC_MoveChild, 10, ++/* 93473*/ OPC_CheckInteger, 1, ++/* 93475*/ OPC_CheckType, MVT::i32, ++/* 93477*/ OPC_MoveParent, ++/* 93478*/ OPC_MoveChild, 11, ++/* 93480*/ OPC_CheckInteger, 1, ++/* 93482*/ OPC_CheckType, MVT::i32, ++/* 93484*/ OPC_MoveParent, ++/* 93485*/ OPC_MoveChild, 12, ++/* 93487*/ OPC_CheckInteger, 1, ++/* 93489*/ OPC_CheckType, MVT::i32, ++/* 93491*/ OPC_MoveParent, ++/* 93492*/ OPC_MoveChild, 13, ++/* 93494*/ OPC_CheckInteger, 1, ++/* 93496*/ OPC_CheckType, MVT::i32, ++/* 93498*/ OPC_MoveParent, ++/* 93499*/ OPC_MoveChild, 14, ++/* 93501*/ OPC_CheckInteger, 1, ++/* 93503*/ OPC_CheckType, MVT::i32, ++/* 93505*/ OPC_MoveParent, ++/* 93506*/ OPC_MoveChild, 15, ++/* 93508*/ OPC_CheckInteger, 1, ++/* 93510*/ OPC_CheckType, MVT::i32, ++/* 93512*/ OPC_MoveParent, ++/* 93513*/ OPC_MoveChild, 16, ++/* 93515*/ OPC_CheckInteger, 1, ++/* 93517*/ OPC_CheckType, MVT::i32, ++/* 93519*/ OPC_MoveParent, ++/* 93520*/ OPC_MoveChild, 17, ++/* 93522*/ OPC_CheckInteger, 1, ++/* 93524*/ OPC_CheckType, MVT::i32, ++/* 93526*/ OPC_MoveParent, ++/* 93527*/ OPC_MoveChild, 18, ++/* 93529*/ OPC_CheckInteger, 1, ++/* 93531*/ OPC_CheckType, MVT::i32, ++/* 93533*/ OPC_MoveParent, ++/* 93534*/ OPC_MoveChild, 19, ++/* 93536*/ OPC_CheckInteger, 1, ++/* 93538*/ OPC_CheckType, MVT::i32, ++/* 93540*/ OPC_MoveParent, ++/* 93541*/ OPC_MoveChild, 20, ++/* 93543*/ OPC_CheckInteger, 1, ++/* 93545*/ OPC_CheckType, MVT::i32, ++/* 93547*/ OPC_MoveParent, ++/* 93548*/ OPC_MoveChild, 21, ++/* 93550*/ OPC_CheckInteger, 1, ++/* 93552*/ OPC_CheckType, MVT::i32, ++/* 93554*/ OPC_MoveParent, ++/* 93555*/ OPC_MoveChild, 22, ++/* 93557*/ OPC_CheckInteger, 1, ++/* 93559*/ OPC_CheckType, MVT::i32, ++/* 93561*/ OPC_MoveParent, ++/* 93562*/ OPC_MoveChild, 23, ++/* 93564*/ OPC_CheckInteger, 1, ++/* 93566*/ OPC_CheckType, MVT::i32, ++/* 93568*/ OPC_MoveParent, ++/* 93569*/ OPC_MoveChild, 24, ++/* 93571*/ OPC_CheckInteger, 1, ++/* 93573*/ OPC_CheckType, MVT::i32, ++/* 93575*/ OPC_MoveParent, ++/* 93576*/ OPC_MoveChild, 25, ++/* 93578*/ OPC_CheckInteger, 1, ++/* 93580*/ OPC_CheckType, MVT::i32, ++/* 93582*/ OPC_MoveParent, ++/* 93583*/ OPC_MoveChild, 26, ++/* 93585*/ OPC_CheckInteger, 1, ++/* 93587*/ OPC_CheckType, MVT::i32, ++/* 93589*/ OPC_MoveParent, ++/* 93590*/ OPC_MoveChild, 27, ++/* 93592*/ OPC_CheckInteger, 1, ++/* 93594*/ OPC_CheckType, MVT::i32, ++/* 93596*/ OPC_MoveParent, ++/* 93597*/ OPC_MoveChild, 28, ++/* 93599*/ OPC_CheckInteger, 1, ++/* 93601*/ OPC_CheckType, MVT::i32, ++/* 93603*/ OPC_MoveParent, ++/* 93604*/ OPC_MoveChild, 29, ++/* 93606*/ OPC_CheckInteger, 1, ++/* 93608*/ OPC_CheckType, MVT::i32, ++/* 93610*/ OPC_MoveParent, ++/* 93611*/ OPC_MoveChild, 30, ++/* 93613*/ OPC_CheckInteger, 1, ++/* 93615*/ OPC_CheckType, MVT::i32, ++/* 93617*/ OPC_MoveParent, ++/* 93618*/ OPC_MoveChild, 31, ++/* 93620*/ OPC_CheckInteger, 1, ++/* 93622*/ OPC_CheckType, MVT::i32, ++/* 93624*/ OPC_MoveParent, ++/* 93625*/ OPC_CheckType, MVT::v32i8, ++/* 93627*/ OPC_MoveParent, ++/* 93628*/ OPC_CheckType, MVT::v32i8, ++/* 93630*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 93632*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$b), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/* 93640*/ /*Scope*/ 15|128,5/*655*/, /*->94297*/ ++/* 93642*/ OPC_CheckChild0Same, 0, ++/* 93644*/ OPC_MoveChild1, ++/* 93645*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 93648*/ OPC_CheckChild0Integer, 1, ++/* 93650*/ OPC_CheckChild0Type, MVT::i32, ++/* 93652*/ OPC_CheckChild1Integer, 1, ++/* 93654*/ OPC_CheckChild1Type, MVT::i32, ++/* 93656*/ OPC_CheckChild2Integer, 1, ++/* 93658*/ OPC_CheckChild2Type, MVT::i32, ++/* 93660*/ OPC_CheckChild3Integer, 1, ++/* 93662*/ OPC_CheckChild3Type, MVT::i32, ++/* 93664*/ OPC_CheckChild4Integer, 1, ++/* 93666*/ OPC_CheckChild4Type, MVT::i32, ++/* 93668*/ OPC_MoveChild5, ++/* 93669*/ OPC_CheckInteger, 1, ++/* 93671*/ OPC_CheckType, MVT::i32, ++/* 93673*/ OPC_MoveParent, ++/* 93674*/ OPC_MoveChild6, ++/* 93675*/ OPC_CheckInteger, 1, ++/* 93677*/ OPC_CheckType, MVT::i32, ++/* 93679*/ OPC_MoveParent, ++/* 93680*/ OPC_MoveChild7, ++/* 93681*/ OPC_CheckInteger, 1, ++/* 93683*/ OPC_CheckType, MVT::i32, ++/* 93685*/ OPC_MoveParent, ++/* 93686*/ OPC_MoveChild, 8, ++/* 93688*/ OPC_CheckInteger, 1, ++/* 93690*/ OPC_CheckType, MVT::i32, ++/* 93692*/ OPC_MoveParent, ++/* 93693*/ OPC_MoveChild, 9, ++/* 93695*/ OPC_CheckInteger, 1, ++/* 93697*/ OPC_CheckType, MVT::i32, ++/* 93699*/ OPC_MoveParent, ++/* 93700*/ OPC_MoveChild, 10, ++/* 93702*/ OPC_CheckInteger, 1, ++/* 93704*/ OPC_CheckType, MVT::i32, ++/* 93706*/ OPC_MoveParent, ++/* 93707*/ OPC_MoveChild, 11, ++/* 93709*/ OPC_CheckInteger, 1, ++/* 93711*/ OPC_CheckType, MVT::i32, ++/* 93713*/ OPC_MoveParent, ++/* 93714*/ OPC_MoveChild, 12, ++/* 93716*/ OPC_CheckInteger, 1, ++/* 93718*/ OPC_CheckType, MVT::i32, ++/* 93720*/ OPC_MoveParent, ++/* 93721*/ OPC_MoveChild, 13, ++/* 93723*/ OPC_CheckInteger, 1, ++/* 93725*/ OPC_CheckType, MVT::i32, ++/* 93727*/ OPC_MoveParent, ++/* 93728*/ OPC_MoveChild, 14, ++/* 93730*/ OPC_CheckInteger, 1, ++/* 93732*/ OPC_CheckType, MVT::i32, ++/* 93734*/ OPC_MoveParent, ++/* 93735*/ OPC_MoveChild, 15, ++/* 93737*/ OPC_CheckInteger, 1, ++/* 93739*/ OPC_CheckType, MVT::i32, ++/* 93741*/ OPC_MoveParent, ++/* 93742*/ OPC_MoveChild, 16, ++/* 93744*/ OPC_CheckInteger, 1, ++/* 93746*/ OPC_CheckType, MVT::i32, ++/* 93748*/ OPC_MoveParent, ++/* 93749*/ OPC_MoveChild, 17, ++/* 93751*/ OPC_CheckInteger, 1, ++/* 93753*/ OPC_CheckType, MVT::i32, ++/* 93755*/ OPC_MoveParent, ++/* 93756*/ OPC_MoveChild, 18, ++/* 93758*/ OPC_CheckInteger, 1, ++/* 93760*/ OPC_CheckType, MVT::i32, ++/* 93762*/ OPC_MoveParent, ++/* 93763*/ OPC_MoveChild, 19, ++/* 93765*/ OPC_CheckInteger, 1, ++/* 93767*/ OPC_CheckType, MVT::i32, ++/* 93769*/ OPC_MoveParent, ++/* 93770*/ OPC_MoveChild, 20, ++/* 93772*/ OPC_CheckInteger, 1, ++/* 93774*/ OPC_CheckType, MVT::i32, ++/* 93776*/ OPC_MoveParent, ++/* 93777*/ OPC_MoveChild, 21, ++/* 93779*/ OPC_CheckInteger, 1, ++/* 93781*/ OPC_CheckType, MVT::i32, ++/* 93783*/ OPC_MoveParent, ++/* 93784*/ OPC_MoveChild, 22, ++/* 93786*/ OPC_CheckInteger, 1, ++/* 93788*/ OPC_CheckType, MVT::i32, ++/* 93790*/ OPC_MoveParent, ++/* 93791*/ OPC_MoveChild, 23, ++/* 93793*/ OPC_CheckInteger, 1, ++/* 93795*/ OPC_CheckType, MVT::i32, ++/* 93797*/ OPC_MoveParent, ++/* 93798*/ OPC_MoveChild, 24, ++/* 93800*/ OPC_CheckInteger, 1, ++/* 93802*/ OPC_CheckType, MVT::i32, ++/* 93804*/ OPC_MoveParent, ++/* 93805*/ OPC_MoveChild, 25, ++/* 93807*/ OPC_CheckInteger, 1, ++/* 93809*/ OPC_CheckType, MVT::i32, ++/* 93811*/ OPC_MoveParent, ++/* 93812*/ OPC_MoveChild, 26, ++/* 93814*/ OPC_CheckInteger, 1, ++/* 93816*/ OPC_CheckType, MVT::i32, ++/* 93818*/ OPC_MoveParent, ++/* 93819*/ OPC_MoveChild, 27, ++/* 93821*/ OPC_CheckInteger, 1, ++/* 93823*/ OPC_CheckType, MVT::i32, ++/* 93825*/ OPC_MoveParent, ++/* 93826*/ OPC_MoveChild, 28, ++/* 93828*/ OPC_CheckInteger, 1, ++/* 93830*/ OPC_CheckType, MVT::i32, ++/* 93832*/ OPC_MoveParent, ++/* 93833*/ OPC_MoveChild, 29, ++/* 93835*/ OPC_CheckInteger, 1, ++/* 93837*/ OPC_CheckType, MVT::i32, ++/* 93839*/ OPC_MoveParent, ++/* 93840*/ OPC_MoveChild, 30, ++/* 93842*/ OPC_CheckInteger, 1, ++/* 93844*/ OPC_CheckType, MVT::i32, ++/* 93846*/ OPC_MoveParent, ++/* 93847*/ OPC_MoveChild, 31, ++/* 93849*/ OPC_CheckInteger, 1, ++/* 93851*/ OPC_CheckType, MVT::i32, ++/* 93853*/ OPC_MoveParent, ++/* 93854*/ OPC_MoveParent, ++/* 93855*/ OPC_MoveParent, ++/* 93856*/ OPC_MoveParent, ++/* 93857*/ OPC_MoveChild1, ++/* 93858*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 93861*/ OPC_CheckChild0Integer, 7, ++/* 93863*/ OPC_CheckChild0Type, MVT::i32, ++/* 93865*/ OPC_CheckChild1Integer, 7, ++/* 93867*/ OPC_CheckChild1Type, MVT::i32, ++/* 93869*/ OPC_CheckChild2Integer, 7, ++/* 93871*/ OPC_CheckChild2Type, MVT::i32, ++/* 93873*/ OPC_CheckChild3Integer, 7, ++/* 93875*/ OPC_CheckChild3Type, MVT::i32, ++/* 93877*/ OPC_CheckChild4Integer, 7, ++/* 93879*/ OPC_CheckChild4Type, MVT::i32, ++/* 93881*/ OPC_MoveChild5, ++/* 93882*/ OPC_CheckInteger, 7, ++/* 93884*/ OPC_CheckType, MVT::i32, ++/* 93886*/ OPC_MoveParent, ++/* 93887*/ OPC_MoveChild6, ++/* 93888*/ OPC_CheckInteger, 7, ++/* 93890*/ OPC_CheckType, MVT::i32, ++/* 93892*/ OPC_MoveParent, ++/* 93893*/ OPC_MoveChild7, ++/* 93894*/ OPC_CheckInteger, 7, ++/* 93896*/ OPC_CheckType, MVT::i32, ++/* 93898*/ OPC_MoveParent, ++/* 93899*/ OPC_MoveChild, 8, ++/* 93901*/ OPC_CheckInteger, 7, ++/* 93903*/ OPC_CheckType, MVT::i32, ++/* 93905*/ OPC_MoveParent, ++/* 93906*/ OPC_MoveChild, 9, ++/* 93908*/ OPC_CheckInteger, 7, ++/* 93910*/ OPC_CheckType, MVT::i32, ++/* 93912*/ OPC_MoveParent, ++/* 93913*/ OPC_MoveChild, 10, ++/* 93915*/ OPC_CheckInteger, 7, ++/* 93917*/ OPC_CheckType, MVT::i32, ++/* 93919*/ OPC_MoveParent, ++/* 93920*/ OPC_MoveChild, 11, ++/* 93922*/ OPC_CheckInteger, 7, ++/* 93924*/ OPC_CheckType, MVT::i32, ++/* 93926*/ OPC_MoveParent, ++/* 93927*/ OPC_MoveChild, 12, ++/* 93929*/ OPC_CheckInteger, 7, ++/* 93931*/ OPC_CheckType, MVT::i32, ++/* 93933*/ OPC_MoveParent, ++/* 93934*/ OPC_MoveChild, 13, ++/* 93936*/ OPC_CheckInteger, 7, ++/* 93938*/ OPC_CheckType, MVT::i32, ++/* 93940*/ OPC_MoveParent, ++/* 93941*/ OPC_MoveChild, 14, ++/* 93943*/ OPC_CheckInteger, 7, ++/* 93945*/ OPC_CheckType, MVT::i32, ++/* 93947*/ OPC_MoveParent, ++/* 93948*/ OPC_MoveChild, 15, ++/* 93950*/ OPC_CheckInteger, 7, ++/* 93952*/ OPC_CheckType, MVT::i32, ++/* 93954*/ OPC_MoveParent, ++/* 93955*/ OPC_MoveChild, 16, ++/* 93957*/ OPC_CheckInteger, 7, ++/* 93959*/ OPC_CheckType, MVT::i32, ++/* 93961*/ OPC_MoveParent, ++/* 93962*/ OPC_MoveChild, 17, ++/* 93964*/ OPC_CheckInteger, 7, ++/* 93966*/ OPC_CheckType, MVT::i32, ++/* 93968*/ OPC_MoveParent, ++/* 93969*/ OPC_MoveChild, 18, ++/* 93971*/ OPC_CheckInteger, 7, ++/* 93973*/ OPC_CheckType, MVT::i32, ++/* 93975*/ OPC_MoveParent, ++/* 93976*/ OPC_MoveChild, 19, ++/* 93978*/ OPC_CheckInteger, 7, ++/* 93980*/ OPC_CheckType, MVT::i32, ++/* 93982*/ OPC_MoveParent, ++/* 93983*/ OPC_MoveChild, 20, ++/* 93985*/ OPC_CheckInteger, 7, ++/* 93987*/ OPC_CheckType, MVT::i32, ++/* 93989*/ OPC_MoveParent, ++/* 93990*/ OPC_MoveChild, 21, ++/* 93992*/ OPC_CheckInteger, 7, ++/* 93994*/ OPC_CheckType, MVT::i32, ++/* 93996*/ OPC_MoveParent, ++/* 93997*/ OPC_MoveChild, 22, ++/* 93999*/ OPC_CheckInteger, 7, ++/* 94001*/ OPC_CheckType, MVT::i32, ++/* 94003*/ OPC_MoveParent, ++/* 94004*/ OPC_MoveChild, 23, ++/* 94006*/ OPC_CheckInteger, 7, ++/* 94008*/ OPC_CheckType, MVT::i32, ++/* 94010*/ OPC_MoveParent, ++/* 94011*/ OPC_MoveChild, 24, ++/* 94013*/ OPC_CheckInteger, 7, ++/* 94015*/ OPC_CheckType, MVT::i32, ++/* 94017*/ OPC_MoveParent, ++/* 94018*/ OPC_MoveChild, 25, ++/* 94020*/ OPC_CheckInteger, 7, ++/* 94022*/ OPC_CheckType, MVT::i32, ++/* 94024*/ OPC_MoveParent, ++/* 94025*/ OPC_MoveChild, 26, ++/* 94027*/ OPC_CheckInteger, 7, ++/* 94029*/ OPC_CheckType, MVT::i32, ++/* 94031*/ OPC_MoveParent, ++/* 94032*/ OPC_MoveChild, 27, ++/* 94034*/ OPC_CheckInteger, 7, ++/* 94036*/ OPC_CheckType, MVT::i32, ++/* 94038*/ OPC_MoveParent, ++/* 94039*/ OPC_MoveChild, 28, ++/* 94041*/ OPC_CheckInteger, 7, ++/* 94043*/ OPC_CheckType, MVT::i32, ++/* 94045*/ OPC_MoveParent, ++/* 94046*/ OPC_MoveChild, 29, ++/* 94048*/ OPC_CheckInteger, 7, ++/* 94050*/ OPC_CheckType, MVT::i32, ++/* 94052*/ OPC_MoveParent, ++/* 94053*/ OPC_MoveChild, 30, ++/* 94055*/ OPC_CheckInteger, 7, ++/* 94057*/ OPC_CheckType, MVT::i32, ++/* 94059*/ OPC_MoveParent, ++/* 94060*/ OPC_MoveChild, 31, ++/* 94062*/ OPC_CheckInteger, 7, ++/* 94064*/ OPC_CheckType, MVT::i32, ++/* 94066*/ OPC_MoveParent, ++/* 94067*/ OPC_CheckType, MVT::v32i8, ++/* 94069*/ OPC_MoveParent, ++/* 94070*/ OPC_MoveParent, ++/* 94071*/ OPC_MoveParent, ++/* 94072*/ OPC_MoveChild1, ++/* 94073*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 94076*/ OPC_CheckChild0Integer, 1, ++/* 94078*/ OPC_CheckChild0Type, MVT::i32, ++/* 94080*/ OPC_CheckChild1Integer, 1, ++/* 94082*/ OPC_CheckChild1Type, MVT::i32, ++/* 94084*/ OPC_CheckChild2Integer, 1, ++/* 94086*/ OPC_CheckChild2Type, MVT::i32, ++/* 94088*/ OPC_CheckChild3Integer, 1, ++/* 94090*/ OPC_CheckChild3Type, MVT::i32, ++/* 94092*/ OPC_CheckChild4Integer, 1, ++/* 94094*/ OPC_CheckChild4Type, MVT::i32, ++/* 94096*/ OPC_MoveChild5, ++/* 94097*/ OPC_CheckInteger, 1, ++/* 94099*/ OPC_CheckType, MVT::i32, ++/* 94101*/ OPC_MoveParent, ++/* 94102*/ OPC_MoveChild6, ++/* 94103*/ OPC_CheckInteger, 1, ++/* 94105*/ OPC_CheckType, MVT::i32, ++/* 94107*/ OPC_MoveParent, ++/* 94108*/ OPC_MoveChild7, ++/* 94109*/ OPC_CheckInteger, 1, ++/* 94111*/ OPC_CheckType, MVT::i32, ++/* 94113*/ OPC_MoveParent, ++/* 94114*/ OPC_MoveChild, 8, ++/* 94116*/ OPC_CheckInteger, 1, ++/* 94118*/ OPC_CheckType, MVT::i32, ++/* 94120*/ OPC_MoveParent, ++/* 94121*/ OPC_MoveChild, 9, ++/* 94123*/ OPC_CheckInteger, 1, ++/* 94125*/ OPC_CheckType, MVT::i32, ++/* 94127*/ OPC_MoveParent, ++/* 94128*/ OPC_MoveChild, 10, ++/* 94130*/ OPC_CheckInteger, 1, ++/* 94132*/ OPC_CheckType, MVT::i32, ++/* 94134*/ OPC_MoveParent, ++/* 94135*/ OPC_MoveChild, 11, ++/* 94137*/ OPC_CheckInteger, 1, ++/* 94139*/ OPC_CheckType, MVT::i32, ++/* 94141*/ OPC_MoveParent, ++/* 94142*/ OPC_MoveChild, 12, ++/* 94144*/ OPC_CheckInteger, 1, ++/* 94146*/ OPC_CheckType, MVT::i32, ++/* 94148*/ OPC_MoveParent, ++/* 94149*/ OPC_MoveChild, 13, ++/* 94151*/ OPC_CheckInteger, 1, ++/* 94153*/ OPC_CheckType, MVT::i32, ++/* 94155*/ OPC_MoveParent, ++/* 94156*/ OPC_MoveChild, 14, ++/* 94158*/ OPC_CheckInteger, 1, ++/* 94160*/ OPC_CheckType, MVT::i32, ++/* 94162*/ OPC_MoveParent, ++/* 94163*/ OPC_MoveChild, 15, ++/* 94165*/ OPC_CheckInteger, 1, ++/* 94167*/ OPC_CheckType, MVT::i32, ++/* 94169*/ OPC_MoveParent, ++/* 94170*/ OPC_MoveChild, 16, ++/* 94172*/ OPC_CheckInteger, 1, ++/* 94174*/ OPC_CheckType, MVT::i32, ++/* 94176*/ OPC_MoveParent, ++/* 94177*/ OPC_MoveChild, 17, ++/* 94179*/ OPC_CheckInteger, 1, ++/* 94181*/ OPC_CheckType, MVT::i32, ++/* 94183*/ OPC_MoveParent, ++/* 94184*/ OPC_MoveChild, 18, ++/* 94186*/ OPC_CheckInteger, 1, ++/* 94188*/ OPC_CheckType, MVT::i32, ++/* 94190*/ OPC_MoveParent, ++/* 94191*/ OPC_MoveChild, 19, ++/* 94193*/ OPC_CheckInteger, 1, ++/* 94195*/ OPC_CheckType, MVT::i32, ++/* 94197*/ OPC_MoveParent, ++/* 94198*/ OPC_MoveChild, 20, ++/* 94200*/ OPC_CheckInteger, 1, ++/* 94202*/ OPC_CheckType, MVT::i32, ++/* 94204*/ OPC_MoveParent, ++/* 94205*/ OPC_MoveChild, 21, ++/* 94207*/ OPC_CheckInteger, 1, ++/* 94209*/ OPC_CheckType, MVT::i32, ++/* 94211*/ OPC_MoveParent, ++/* 94212*/ OPC_MoveChild, 22, ++/* 94214*/ OPC_CheckInteger, 1, ++/* 94216*/ OPC_CheckType, MVT::i32, ++/* 94218*/ OPC_MoveParent, ++/* 94219*/ OPC_MoveChild, 23, ++/* 94221*/ OPC_CheckInteger, 1, ++/* 94223*/ OPC_CheckType, MVT::i32, ++/* 94225*/ OPC_MoveParent, ++/* 94226*/ OPC_MoveChild, 24, ++/* 94228*/ OPC_CheckInteger, 1, ++/* 94230*/ OPC_CheckType, MVT::i32, ++/* 94232*/ OPC_MoveParent, ++/* 94233*/ OPC_MoveChild, 25, ++/* 94235*/ OPC_CheckInteger, 1, ++/* 94237*/ OPC_CheckType, MVT::i32, ++/* 94239*/ OPC_MoveParent, ++/* 94240*/ OPC_MoveChild, 26, ++/* 94242*/ OPC_CheckInteger, 1, ++/* 94244*/ OPC_CheckType, MVT::i32, ++/* 94246*/ OPC_MoveParent, ++/* 94247*/ OPC_MoveChild, 27, ++/* 94249*/ OPC_CheckInteger, 1, ++/* 94251*/ OPC_CheckType, MVT::i32, ++/* 94253*/ OPC_MoveParent, ++/* 94254*/ OPC_MoveChild, 28, ++/* 94256*/ OPC_CheckInteger, 1, ++/* 94258*/ OPC_CheckType, MVT::i32, ++/* 94260*/ OPC_MoveParent, ++/* 94261*/ OPC_MoveChild, 29, ++/* 94263*/ OPC_CheckInteger, 1, ++/* 94265*/ OPC_CheckType, MVT::i32, ++/* 94267*/ OPC_MoveParent, ++/* 94268*/ OPC_MoveChild, 30, ++/* 94270*/ OPC_CheckInteger, 1, ++/* 94272*/ OPC_CheckType, MVT::i32, ++/* 94274*/ OPC_MoveParent, ++/* 94275*/ OPC_MoveChild, 31, ++/* 94277*/ OPC_CheckInteger, 1, ++/* 94279*/ OPC_CheckType, MVT::i32, ++/* 94281*/ OPC_MoveParent, ++/* 94282*/ OPC_CheckType, MVT::v32i8, ++/* 94284*/ OPC_MoveParent, ++/* 94285*/ OPC_CheckType, MVT::v32i8, ++/* 94287*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 94289*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$b), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/* 94297*/ 0, /*End of Scope*/ ++/* 94298*/ /*Scope*/ 42|128,10/*1322*/, /*->95622*/ ++/* 94300*/ OPC_CheckChild0Same, 0, ++/* 94302*/ OPC_MoveChild1, ++/* 94303*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/* 94306*/ OPC_Scope, 15|128,5/*655*/, /*->94964*/ // 2 children in Scope ++/* 94309*/ OPC_MoveChild0, ++/* 94310*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 94313*/ OPC_CheckChild0Integer, 1, ++/* 94315*/ OPC_CheckChild0Type, MVT::i32, ++/* 94317*/ OPC_CheckChild1Integer, 1, ++/* 94319*/ OPC_CheckChild1Type, MVT::i32, ++/* 94321*/ OPC_CheckChild2Integer, 1, ++/* 94323*/ OPC_CheckChild2Type, MVT::i32, ++/* 94325*/ OPC_CheckChild3Integer, 1, ++/* 94327*/ OPC_CheckChild3Type, MVT::i32, ++/* 94329*/ OPC_CheckChild4Integer, 1, ++/* 94331*/ OPC_CheckChild4Type, MVT::i32, ++/* 94333*/ OPC_MoveChild5, ++/* 94334*/ OPC_CheckInteger, 1, ++/* 94336*/ OPC_CheckType, MVT::i32, ++/* 94338*/ OPC_MoveParent, ++/* 94339*/ OPC_MoveChild6, ++/* 94340*/ OPC_CheckInteger, 1, ++/* 94342*/ OPC_CheckType, MVT::i32, ++/* 94344*/ OPC_MoveParent, ++/* 94345*/ OPC_MoveChild7, ++/* 94346*/ OPC_CheckInteger, 1, ++/* 94348*/ OPC_CheckType, MVT::i32, ++/* 94350*/ OPC_MoveParent, ++/* 94351*/ OPC_MoveChild, 8, ++/* 94353*/ OPC_CheckInteger, 1, ++/* 94355*/ OPC_CheckType, MVT::i32, ++/* 94357*/ OPC_MoveParent, ++/* 94358*/ OPC_MoveChild, 9, ++/* 94360*/ OPC_CheckInteger, 1, ++/* 94362*/ OPC_CheckType, MVT::i32, ++/* 94364*/ OPC_MoveParent, ++/* 94365*/ OPC_MoveChild, 10, ++/* 94367*/ OPC_CheckInteger, 1, ++/* 94369*/ OPC_CheckType, MVT::i32, ++/* 94371*/ OPC_MoveParent, ++/* 94372*/ OPC_MoveChild, 11, ++/* 94374*/ OPC_CheckInteger, 1, ++/* 94376*/ OPC_CheckType, MVT::i32, ++/* 94378*/ OPC_MoveParent, ++/* 94379*/ OPC_MoveChild, 12, ++/* 94381*/ OPC_CheckInteger, 1, ++/* 94383*/ OPC_CheckType, MVT::i32, ++/* 94385*/ OPC_MoveParent, ++/* 94386*/ OPC_MoveChild, 13, ++/* 94388*/ OPC_CheckInteger, 1, ++/* 94390*/ OPC_CheckType, MVT::i32, ++/* 94392*/ OPC_MoveParent, ++/* 94393*/ OPC_MoveChild, 14, ++/* 94395*/ OPC_CheckInteger, 1, ++/* 94397*/ OPC_CheckType, MVT::i32, ++/* 94399*/ OPC_MoveParent, ++/* 94400*/ OPC_MoveChild, 15, ++/* 94402*/ OPC_CheckInteger, 1, ++/* 94404*/ OPC_CheckType, MVT::i32, ++/* 94406*/ OPC_MoveParent, ++/* 94407*/ OPC_MoveChild, 16, ++/* 94409*/ OPC_CheckInteger, 1, ++/* 94411*/ OPC_CheckType, MVT::i32, ++/* 94413*/ OPC_MoveParent, ++/* 94414*/ OPC_MoveChild, 17, ++/* 94416*/ OPC_CheckInteger, 1, ++/* 94418*/ OPC_CheckType, MVT::i32, ++/* 94420*/ OPC_MoveParent, ++/* 94421*/ OPC_MoveChild, 18, ++/* 94423*/ OPC_CheckInteger, 1, ++/* 94425*/ OPC_CheckType, MVT::i32, ++/* 94427*/ OPC_MoveParent, ++/* 94428*/ OPC_MoveChild, 19, ++/* 94430*/ OPC_CheckInteger, 1, ++/* 94432*/ OPC_CheckType, MVT::i32, ++/* 94434*/ OPC_MoveParent, ++/* 94435*/ OPC_MoveChild, 20, ++/* 94437*/ OPC_CheckInteger, 1, ++/* 94439*/ OPC_CheckType, MVT::i32, ++/* 94441*/ OPC_MoveParent, ++/* 94442*/ OPC_MoveChild, 21, ++/* 94444*/ OPC_CheckInteger, 1, ++/* 94446*/ OPC_CheckType, MVT::i32, ++/* 94448*/ OPC_MoveParent, ++/* 94449*/ OPC_MoveChild, 22, ++/* 94451*/ OPC_CheckInteger, 1, ++/* 94453*/ OPC_CheckType, MVT::i32, ++/* 94455*/ OPC_MoveParent, ++/* 94456*/ OPC_MoveChild, 23, ++/* 94458*/ OPC_CheckInteger, 1, ++/* 94460*/ OPC_CheckType, MVT::i32, ++/* 94462*/ OPC_MoveParent, ++/* 94463*/ OPC_MoveChild, 24, ++/* 94465*/ OPC_CheckInteger, 1, ++/* 94467*/ OPC_CheckType, MVT::i32, ++/* 94469*/ OPC_MoveParent, ++/* 94470*/ OPC_MoveChild, 25, ++/* 94472*/ OPC_CheckInteger, 1, ++/* 94474*/ OPC_CheckType, MVT::i32, ++/* 94476*/ OPC_MoveParent, ++/* 94477*/ OPC_MoveChild, 26, ++/* 94479*/ OPC_CheckInteger, 1, ++/* 94481*/ OPC_CheckType, MVT::i32, ++/* 94483*/ OPC_MoveParent, ++/* 94484*/ OPC_MoveChild, 27, ++/* 94486*/ OPC_CheckInteger, 1, ++/* 94488*/ OPC_CheckType, MVT::i32, ++/* 94490*/ OPC_MoveParent, ++/* 94491*/ OPC_MoveChild, 28, ++/* 94493*/ OPC_CheckInteger, 1, ++/* 94495*/ OPC_CheckType, MVT::i32, ++/* 94497*/ OPC_MoveParent, ++/* 94498*/ OPC_MoveChild, 29, ++/* 94500*/ OPC_CheckInteger, 1, ++/* 94502*/ OPC_CheckType, MVT::i32, ++/* 94504*/ OPC_MoveParent, ++/* 94505*/ OPC_MoveChild, 30, ++/* 94507*/ OPC_CheckInteger, 1, ++/* 94509*/ OPC_CheckType, MVT::i32, ++/* 94511*/ OPC_MoveParent, ++/* 94512*/ OPC_MoveChild, 31, ++/* 94514*/ OPC_CheckInteger, 1, ++/* 94516*/ OPC_CheckType, MVT::i32, ++/* 94518*/ OPC_MoveParent, ++/* 94519*/ OPC_MoveParent, ++/* 94520*/ OPC_CheckChild1Same, 1, ++/* 94522*/ OPC_MoveParent, ++/* 94523*/ OPC_MoveParent, ++/* 94524*/ OPC_MoveChild1, ++/* 94525*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 94528*/ OPC_CheckChild0Integer, 7, ++/* 94530*/ OPC_CheckChild0Type, MVT::i32, ++/* 94532*/ OPC_CheckChild1Integer, 7, ++/* 94534*/ OPC_CheckChild1Type, MVT::i32, ++/* 94536*/ OPC_CheckChild2Integer, 7, ++/* 94538*/ OPC_CheckChild2Type, MVT::i32, ++/* 94540*/ OPC_CheckChild3Integer, 7, ++/* 94542*/ OPC_CheckChild3Type, MVT::i32, ++/* 94544*/ OPC_CheckChild4Integer, 7, ++/* 94546*/ OPC_CheckChild4Type, MVT::i32, ++/* 94548*/ OPC_MoveChild5, ++/* 94549*/ OPC_CheckInteger, 7, ++/* 94551*/ OPC_CheckType, MVT::i32, ++/* 94553*/ OPC_MoveParent, ++/* 94554*/ OPC_MoveChild6, ++/* 94555*/ OPC_CheckInteger, 7, ++/* 94557*/ OPC_CheckType, MVT::i32, ++/* 94559*/ OPC_MoveParent, ++/* 94560*/ OPC_MoveChild7, ++/* 94561*/ OPC_CheckInteger, 7, ++/* 94563*/ OPC_CheckType, MVT::i32, ++/* 94565*/ OPC_MoveParent, ++/* 94566*/ OPC_MoveChild, 8, ++/* 94568*/ OPC_CheckInteger, 7, ++/* 94570*/ OPC_CheckType, MVT::i32, ++/* 94572*/ OPC_MoveParent, ++/* 94573*/ OPC_MoveChild, 9, ++/* 94575*/ OPC_CheckInteger, 7, ++/* 94577*/ OPC_CheckType, MVT::i32, ++/* 94579*/ OPC_MoveParent, ++/* 94580*/ OPC_MoveChild, 10, ++/* 94582*/ OPC_CheckInteger, 7, ++/* 94584*/ OPC_CheckType, MVT::i32, ++/* 94586*/ OPC_MoveParent, ++/* 94587*/ OPC_MoveChild, 11, ++/* 94589*/ OPC_CheckInteger, 7, ++/* 94591*/ OPC_CheckType, MVT::i32, ++/* 94593*/ OPC_MoveParent, ++/* 94594*/ OPC_MoveChild, 12, ++/* 94596*/ OPC_CheckInteger, 7, ++/* 94598*/ OPC_CheckType, MVT::i32, ++/* 94600*/ OPC_MoveParent, ++/* 94601*/ OPC_MoveChild, 13, ++/* 94603*/ OPC_CheckInteger, 7, ++/* 94605*/ OPC_CheckType, MVT::i32, ++/* 94607*/ OPC_MoveParent, ++/* 94608*/ OPC_MoveChild, 14, ++/* 94610*/ OPC_CheckInteger, 7, ++/* 94612*/ OPC_CheckType, MVT::i32, ++/* 94614*/ OPC_MoveParent, ++/* 94615*/ OPC_MoveChild, 15, ++/* 94617*/ OPC_CheckInteger, 7, ++/* 94619*/ OPC_CheckType, MVT::i32, ++/* 94621*/ OPC_MoveParent, ++/* 94622*/ OPC_MoveChild, 16, ++/* 94624*/ OPC_CheckInteger, 7, ++/* 94626*/ OPC_CheckType, MVT::i32, ++/* 94628*/ OPC_MoveParent, ++/* 94629*/ OPC_MoveChild, 17, ++/* 94631*/ OPC_CheckInteger, 7, ++/* 94633*/ OPC_CheckType, MVT::i32, ++/* 94635*/ OPC_MoveParent, ++/* 94636*/ OPC_MoveChild, 18, ++/* 94638*/ OPC_CheckInteger, 7, ++/* 94640*/ OPC_CheckType, MVT::i32, ++/* 94642*/ OPC_MoveParent, ++/* 94643*/ OPC_MoveChild, 19, ++/* 94645*/ OPC_CheckInteger, 7, ++/* 94647*/ OPC_CheckType, MVT::i32, ++/* 94649*/ OPC_MoveParent, ++/* 94650*/ OPC_MoveChild, 20, ++/* 94652*/ OPC_CheckInteger, 7, ++/* 94654*/ OPC_CheckType, MVT::i32, ++/* 94656*/ OPC_MoveParent, ++/* 94657*/ OPC_MoveChild, 21, ++/* 94659*/ OPC_CheckInteger, 7, ++/* 94661*/ OPC_CheckType, MVT::i32, ++/* 94663*/ OPC_MoveParent, ++/* 94664*/ OPC_MoveChild, 22, ++/* 94666*/ OPC_CheckInteger, 7, ++/* 94668*/ OPC_CheckType, MVT::i32, ++/* 94670*/ OPC_MoveParent, ++/* 94671*/ OPC_MoveChild, 23, ++/* 94673*/ OPC_CheckInteger, 7, ++/* 94675*/ OPC_CheckType, MVT::i32, ++/* 94677*/ OPC_MoveParent, ++/* 94678*/ OPC_MoveChild, 24, ++/* 94680*/ OPC_CheckInteger, 7, ++/* 94682*/ OPC_CheckType, MVT::i32, ++/* 94684*/ OPC_MoveParent, ++/* 94685*/ OPC_MoveChild, 25, ++/* 94687*/ OPC_CheckInteger, 7, ++/* 94689*/ OPC_CheckType, MVT::i32, ++/* 94691*/ OPC_MoveParent, ++/* 94692*/ OPC_MoveChild, 26, ++/* 94694*/ OPC_CheckInteger, 7, ++/* 94696*/ OPC_CheckType, MVT::i32, ++/* 94698*/ OPC_MoveParent, ++/* 94699*/ OPC_MoveChild, 27, ++/* 94701*/ OPC_CheckInteger, 7, ++/* 94703*/ OPC_CheckType, MVT::i32, ++/* 94705*/ OPC_MoveParent, ++/* 94706*/ OPC_MoveChild, 28, ++/* 94708*/ OPC_CheckInteger, 7, ++/* 94710*/ OPC_CheckType, MVT::i32, ++/* 94712*/ OPC_MoveParent, ++/* 94713*/ OPC_MoveChild, 29, ++/* 94715*/ OPC_CheckInteger, 7, ++/* 94717*/ OPC_CheckType, MVT::i32, ++/* 94719*/ OPC_MoveParent, ++/* 94720*/ OPC_MoveChild, 30, ++/* 94722*/ OPC_CheckInteger, 7, ++/* 94724*/ OPC_CheckType, MVT::i32, ++/* 94726*/ OPC_MoveParent, ++/* 94727*/ OPC_MoveChild, 31, ++/* 94729*/ OPC_CheckInteger, 7, ++/* 94731*/ OPC_CheckType, MVT::i32, ++/* 94733*/ OPC_MoveParent, ++/* 94734*/ OPC_CheckType, MVT::v32i8, ++/* 94736*/ OPC_MoveParent, ++/* 94737*/ OPC_MoveParent, ++/* 94738*/ OPC_MoveParent, ++/* 94739*/ OPC_MoveChild1, ++/* 94740*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 94743*/ OPC_CheckChild0Integer, 1, ++/* 94745*/ OPC_CheckChild0Type, MVT::i32, ++/* 94747*/ OPC_CheckChild1Integer, 1, ++/* 94749*/ OPC_CheckChild1Type, MVT::i32, ++/* 94751*/ OPC_CheckChild2Integer, 1, ++/* 94753*/ OPC_CheckChild2Type, MVT::i32, ++/* 94755*/ OPC_CheckChild3Integer, 1, ++/* 94757*/ OPC_CheckChild3Type, MVT::i32, ++/* 94759*/ OPC_CheckChild4Integer, 1, ++/* 94761*/ OPC_CheckChild4Type, MVT::i32, ++/* 94763*/ OPC_MoveChild5, ++/* 94764*/ OPC_CheckInteger, 1, ++/* 94766*/ OPC_CheckType, MVT::i32, ++/* 94768*/ OPC_MoveParent, ++/* 94769*/ OPC_MoveChild6, ++/* 94770*/ OPC_CheckInteger, 1, ++/* 94772*/ OPC_CheckType, MVT::i32, ++/* 94774*/ OPC_MoveParent, ++/* 94775*/ OPC_MoveChild7, ++/* 94776*/ OPC_CheckInteger, 1, ++/* 94778*/ OPC_CheckType, MVT::i32, ++/* 94780*/ OPC_MoveParent, ++/* 94781*/ OPC_MoveChild, 8, ++/* 94783*/ OPC_CheckInteger, 1, ++/* 94785*/ OPC_CheckType, MVT::i32, ++/* 94787*/ OPC_MoveParent, ++/* 94788*/ OPC_MoveChild, 9, ++/* 94790*/ OPC_CheckInteger, 1, ++/* 94792*/ OPC_CheckType, MVT::i32, ++/* 94794*/ OPC_MoveParent, ++/* 94795*/ OPC_MoveChild, 10, ++/* 94797*/ OPC_CheckInteger, 1, ++/* 94799*/ OPC_CheckType, MVT::i32, ++/* 94801*/ OPC_MoveParent, ++/* 94802*/ OPC_MoveChild, 11, ++/* 94804*/ OPC_CheckInteger, 1, ++/* 94806*/ OPC_CheckType, MVT::i32, ++/* 94808*/ OPC_MoveParent, ++/* 94809*/ OPC_MoveChild, 12, ++/* 94811*/ OPC_CheckInteger, 1, ++/* 94813*/ OPC_CheckType, MVT::i32, ++/* 94815*/ OPC_MoveParent, ++/* 94816*/ OPC_MoveChild, 13, ++/* 94818*/ OPC_CheckInteger, 1, ++/* 94820*/ OPC_CheckType, MVT::i32, ++/* 94822*/ OPC_MoveParent, ++/* 94823*/ OPC_MoveChild, 14, ++/* 94825*/ OPC_CheckInteger, 1, ++/* 94827*/ OPC_CheckType, MVT::i32, ++/* 94829*/ OPC_MoveParent, ++/* 94830*/ OPC_MoveChild, 15, ++/* 94832*/ OPC_CheckInteger, 1, ++/* 94834*/ OPC_CheckType, MVT::i32, ++/* 94836*/ OPC_MoveParent, ++/* 94837*/ OPC_MoveChild, 16, ++/* 94839*/ OPC_CheckInteger, 1, ++/* 94841*/ OPC_CheckType, MVT::i32, ++/* 94843*/ OPC_MoveParent, ++/* 94844*/ OPC_MoveChild, 17, ++/* 94846*/ OPC_CheckInteger, 1, ++/* 94848*/ OPC_CheckType, MVT::i32, ++/* 94850*/ OPC_MoveParent, ++/* 94851*/ OPC_MoveChild, 18, ++/* 94853*/ OPC_CheckInteger, 1, ++/* 94855*/ OPC_CheckType, MVT::i32, ++/* 94857*/ OPC_MoveParent, ++/* 94858*/ OPC_MoveChild, 19, ++/* 94860*/ OPC_CheckInteger, 1, ++/* 94862*/ OPC_CheckType, MVT::i32, ++/* 94864*/ OPC_MoveParent, ++/* 94865*/ OPC_MoveChild, 20, ++/* 94867*/ OPC_CheckInteger, 1, ++/* 94869*/ OPC_CheckType, MVT::i32, ++/* 94871*/ OPC_MoveParent, ++/* 94872*/ OPC_MoveChild, 21, ++/* 94874*/ OPC_CheckInteger, 1, ++/* 94876*/ OPC_CheckType, MVT::i32, ++/* 94878*/ OPC_MoveParent, ++/* 94879*/ OPC_MoveChild, 22, ++/* 94881*/ OPC_CheckInteger, 1, ++/* 94883*/ OPC_CheckType, MVT::i32, ++/* 94885*/ OPC_MoveParent, ++/* 94886*/ OPC_MoveChild, 23, ++/* 94888*/ OPC_CheckInteger, 1, ++/* 94890*/ OPC_CheckType, MVT::i32, ++/* 94892*/ OPC_MoveParent, ++/* 94893*/ OPC_MoveChild, 24, ++/* 94895*/ OPC_CheckInteger, 1, ++/* 94897*/ OPC_CheckType, MVT::i32, ++/* 94899*/ OPC_MoveParent, ++/* 94900*/ OPC_MoveChild, 25, ++/* 94902*/ OPC_CheckInteger, 1, ++/* 94904*/ OPC_CheckType, MVT::i32, ++/* 94906*/ OPC_MoveParent, ++/* 94907*/ OPC_MoveChild, 26, ++/* 94909*/ OPC_CheckInteger, 1, ++/* 94911*/ OPC_CheckType, MVT::i32, ++/* 94913*/ OPC_MoveParent, ++/* 94914*/ OPC_MoveChild, 27, ++/* 94916*/ OPC_CheckInteger, 1, ++/* 94918*/ OPC_CheckType, MVT::i32, ++/* 94920*/ OPC_MoveParent, ++/* 94921*/ OPC_MoveChild, 28, ++/* 94923*/ OPC_CheckInteger, 1, ++/* 94925*/ OPC_CheckType, MVT::i32, ++/* 94927*/ OPC_MoveParent, ++/* 94928*/ OPC_MoveChild, 29, ++/* 94930*/ OPC_CheckInteger, 1, ++/* 94932*/ OPC_CheckType, MVT::i32, ++/* 94934*/ OPC_MoveParent, ++/* 94935*/ OPC_MoveChild, 30, ++/* 94937*/ OPC_CheckInteger, 1, ++/* 94939*/ OPC_CheckType, MVT::i32, ++/* 94941*/ OPC_MoveParent, ++/* 94942*/ OPC_MoveChild, 31, ++/* 94944*/ OPC_CheckInteger, 1, ++/* 94946*/ OPC_CheckType, MVT::i32, ++/* 94948*/ OPC_MoveParent, ++/* 94949*/ OPC_CheckType, MVT::v32i8, ++/* 94951*/ OPC_MoveParent, ++/* 94952*/ OPC_CheckType, MVT::v32i8, ++/* 94954*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 94956*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$b), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/* 94964*/ /*Scope*/ 15|128,5/*655*/, /*->95621*/ ++/* 94966*/ OPC_CheckChild0Same, 1, ++/* 94968*/ OPC_MoveChild1, ++/* 94969*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 94972*/ OPC_CheckChild0Integer, 1, ++/* 94974*/ OPC_CheckChild0Type, MVT::i32, ++/* 94976*/ OPC_CheckChild1Integer, 1, ++/* 94978*/ OPC_CheckChild1Type, MVT::i32, ++/* 94980*/ OPC_CheckChild2Integer, 1, ++/* 94982*/ OPC_CheckChild2Type, MVT::i32, ++/* 94984*/ OPC_CheckChild3Integer, 1, ++/* 94986*/ OPC_CheckChild3Type, MVT::i32, ++/* 94988*/ OPC_CheckChild4Integer, 1, ++/* 94990*/ OPC_CheckChild4Type, MVT::i32, ++/* 94992*/ OPC_MoveChild5, ++/* 94993*/ OPC_CheckInteger, 1, ++/* 94995*/ OPC_CheckType, MVT::i32, ++/* 94997*/ OPC_MoveParent, ++/* 94998*/ OPC_MoveChild6, ++/* 94999*/ OPC_CheckInteger, 1, ++/* 95001*/ OPC_CheckType, MVT::i32, ++/* 95003*/ OPC_MoveParent, ++/* 95004*/ OPC_MoveChild7, ++/* 95005*/ OPC_CheckInteger, 1, ++/* 95007*/ OPC_CheckType, MVT::i32, ++/* 95009*/ OPC_MoveParent, ++/* 95010*/ OPC_MoveChild, 8, ++/* 95012*/ OPC_CheckInteger, 1, ++/* 95014*/ OPC_CheckType, MVT::i32, ++/* 95016*/ OPC_MoveParent, ++/* 95017*/ OPC_MoveChild, 9, ++/* 95019*/ OPC_CheckInteger, 1, ++/* 95021*/ OPC_CheckType, MVT::i32, ++/* 95023*/ OPC_MoveParent, ++/* 95024*/ OPC_MoveChild, 10, ++/* 95026*/ OPC_CheckInteger, 1, ++/* 95028*/ OPC_CheckType, MVT::i32, ++/* 95030*/ OPC_MoveParent, ++/* 95031*/ OPC_MoveChild, 11, ++/* 95033*/ OPC_CheckInteger, 1, ++/* 95035*/ OPC_CheckType, MVT::i32, ++/* 95037*/ OPC_MoveParent, ++/* 95038*/ OPC_MoveChild, 12, ++/* 95040*/ OPC_CheckInteger, 1, ++/* 95042*/ OPC_CheckType, MVT::i32, ++/* 95044*/ OPC_MoveParent, ++/* 95045*/ OPC_MoveChild, 13, ++/* 95047*/ OPC_CheckInteger, 1, ++/* 95049*/ OPC_CheckType, MVT::i32, ++/* 95051*/ OPC_MoveParent, ++/* 95052*/ OPC_MoveChild, 14, ++/* 95054*/ OPC_CheckInteger, 1, ++/* 95056*/ OPC_CheckType, MVT::i32, ++/* 95058*/ OPC_MoveParent, ++/* 95059*/ OPC_MoveChild, 15, ++/* 95061*/ OPC_CheckInteger, 1, ++/* 95063*/ OPC_CheckType, MVT::i32, ++/* 95065*/ OPC_MoveParent, ++/* 95066*/ OPC_MoveChild, 16, ++/* 95068*/ OPC_CheckInteger, 1, ++/* 95070*/ OPC_CheckType, MVT::i32, ++/* 95072*/ OPC_MoveParent, ++/* 95073*/ OPC_MoveChild, 17, ++/* 95075*/ OPC_CheckInteger, 1, ++/* 95077*/ OPC_CheckType, MVT::i32, ++/* 95079*/ OPC_MoveParent, ++/* 95080*/ OPC_MoveChild, 18, ++/* 95082*/ OPC_CheckInteger, 1, ++/* 95084*/ OPC_CheckType, MVT::i32, ++/* 95086*/ OPC_MoveParent, ++/* 95087*/ OPC_MoveChild, 19, ++/* 95089*/ OPC_CheckInteger, 1, ++/* 95091*/ OPC_CheckType, MVT::i32, ++/* 95093*/ OPC_MoveParent, ++/* 95094*/ OPC_MoveChild, 20, ++/* 95096*/ OPC_CheckInteger, 1, ++/* 95098*/ OPC_CheckType, MVT::i32, ++/* 95100*/ OPC_MoveParent, ++/* 95101*/ OPC_MoveChild, 21, ++/* 95103*/ OPC_CheckInteger, 1, ++/* 95105*/ OPC_CheckType, MVT::i32, ++/* 95107*/ OPC_MoveParent, ++/* 95108*/ OPC_MoveChild, 22, ++/* 95110*/ OPC_CheckInteger, 1, ++/* 95112*/ OPC_CheckType, MVT::i32, ++/* 95114*/ OPC_MoveParent, ++/* 95115*/ OPC_MoveChild, 23, ++/* 95117*/ OPC_CheckInteger, 1, ++/* 95119*/ OPC_CheckType, MVT::i32, ++/* 95121*/ OPC_MoveParent, ++/* 95122*/ OPC_MoveChild, 24, ++/* 95124*/ OPC_CheckInteger, 1, ++/* 95126*/ OPC_CheckType, MVT::i32, ++/* 95128*/ OPC_MoveParent, ++/* 95129*/ OPC_MoveChild, 25, ++/* 95131*/ OPC_CheckInteger, 1, ++/* 95133*/ OPC_CheckType, MVT::i32, ++/* 95135*/ OPC_MoveParent, ++/* 95136*/ OPC_MoveChild, 26, ++/* 95138*/ OPC_CheckInteger, 1, ++/* 95140*/ OPC_CheckType, MVT::i32, ++/* 95142*/ OPC_MoveParent, ++/* 95143*/ OPC_MoveChild, 27, ++/* 95145*/ OPC_CheckInteger, 1, ++/* 95147*/ OPC_CheckType, MVT::i32, ++/* 95149*/ OPC_MoveParent, ++/* 95150*/ OPC_MoveChild, 28, ++/* 95152*/ OPC_CheckInteger, 1, ++/* 95154*/ OPC_CheckType, MVT::i32, ++/* 95156*/ OPC_MoveParent, ++/* 95157*/ OPC_MoveChild, 29, ++/* 95159*/ OPC_CheckInteger, 1, ++/* 95161*/ OPC_CheckType, MVT::i32, ++/* 95163*/ OPC_MoveParent, ++/* 95164*/ OPC_MoveChild, 30, ++/* 95166*/ OPC_CheckInteger, 1, ++/* 95168*/ OPC_CheckType, MVT::i32, ++/* 95170*/ OPC_MoveParent, ++/* 95171*/ OPC_MoveChild, 31, ++/* 95173*/ OPC_CheckInteger, 1, ++/* 95175*/ OPC_CheckType, MVT::i32, ++/* 95177*/ OPC_MoveParent, ++/* 95178*/ OPC_MoveParent, ++/* 95179*/ OPC_MoveParent, ++/* 95180*/ OPC_MoveParent, ++/* 95181*/ OPC_MoveChild1, ++/* 95182*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 95185*/ OPC_CheckChild0Integer, 7, ++/* 95187*/ OPC_CheckChild0Type, MVT::i32, ++/* 95189*/ OPC_CheckChild1Integer, 7, ++/* 95191*/ OPC_CheckChild1Type, MVT::i32, ++/* 95193*/ OPC_CheckChild2Integer, 7, ++/* 95195*/ OPC_CheckChild2Type, MVT::i32, ++/* 95197*/ OPC_CheckChild3Integer, 7, ++/* 95199*/ OPC_CheckChild3Type, MVT::i32, ++/* 95201*/ OPC_CheckChild4Integer, 7, ++/* 95203*/ OPC_CheckChild4Type, MVT::i32, ++/* 95205*/ OPC_MoveChild5, ++/* 95206*/ OPC_CheckInteger, 7, ++/* 95208*/ OPC_CheckType, MVT::i32, ++/* 95210*/ OPC_MoveParent, ++/* 95211*/ OPC_MoveChild6, ++/* 95212*/ OPC_CheckInteger, 7, ++/* 95214*/ OPC_CheckType, MVT::i32, ++/* 95216*/ OPC_MoveParent, ++/* 95217*/ OPC_MoveChild7, ++/* 95218*/ OPC_CheckInteger, 7, ++/* 95220*/ OPC_CheckType, MVT::i32, ++/* 95222*/ OPC_MoveParent, ++/* 95223*/ OPC_MoveChild, 8, ++/* 95225*/ OPC_CheckInteger, 7, ++/* 95227*/ OPC_CheckType, MVT::i32, ++/* 95229*/ OPC_MoveParent, ++/* 95230*/ OPC_MoveChild, 9, ++/* 95232*/ OPC_CheckInteger, 7, ++/* 95234*/ OPC_CheckType, MVT::i32, ++/* 95236*/ OPC_MoveParent, ++/* 95237*/ OPC_MoveChild, 10, ++/* 95239*/ OPC_CheckInteger, 7, ++/* 95241*/ OPC_CheckType, MVT::i32, ++/* 95243*/ OPC_MoveParent, ++/* 95244*/ OPC_MoveChild, 11, ++/* 95246*/ OPC_CheckInteger, 7, ++/* 95248*/ OPC_CheckType, MVT::i32, ++/* 95250*/ OPC_MoveParent, ++/* 95251*/ OPC_MoveChild, 12, ++/* 95253*/ OPC_CheckInteger, 7, ++/* 95255*/ OPC_CheckType, MVT::i32, ++/* 95257*/ OPC_MoveParent, ++/* 95258*/ OPC_MoveChild, 13, ++/* 95260*/ OPC_CheckInteger, 7, ++/* 95262*/ OPC_CheckType, MVT::i32, ++/* 95264*/ OPC_MoveParent, ++/* 95265*/ OPC_MoveChild, 14, ++/* 95267*/ OPC_CheckInteger, 7, ++/* 95269*/ OPC_CheckType, MVT::i32, ++/* 95271*/ OPC_MoveParent, ++/* 95272*/ OPC_MoveChild, 15, ++/* 95274*/ OPC_CheckInteger, 7, ++/* 95276*/ OPC_CheckType, MVT::i32, ++/* 95278*/ OPC_MoveParent, ++/* 95279*/ OPC_MoveChild, 16, ++/* 95281*/ OPC_CheckInteger, 7, ++/* 95283*/ OPC_CheckType, MVT::i32, ++/* 95285*/ OPC_MoveParent, ++/* 95286*/ OPC_MoveChild, 17, ++/* 95288*/ OPC_CheckInteger, 7, ++/* 95290*/ OPC_CheckType, MVT::i32, ++/* 95292*/ OPC_MoveParent, ++/* 95293*/ OPC_MoveChild, 18, ++/* 95295*/ OPC_CheckInteger, 7, ++/* 95297*/ OPC_CheckType, MVT::i32, ++/* 95299*/ OPC_MoveParent, ++/* 95300*/ OPC_MoveChild, 19, ++/* 95302*/ OPC_CheckInteger, 7, ++/* 95304*/ OPC_CheckType, MVT::i32, ++/* 95306*/ OPC_MoveParent, ++/* 95307*/ OPC_MoveChild, 20, ++/* 95309*/ OPC_CheckInteger, 7, ++/* 95311*/ OPC_CheckType, MVT::i32, ++/* 95313*/ OPC_MoveParent, ++/* 95314*/ OPC_MoveChild, 21, ++/* 95316*/ OPC_CheckInteger, 7, ++/* 95318*/ OPC_CheckType, MVT::i32, ++/* 95320*/ OPC_MoveParent, ++/* 95321*/ OPC_MoveChild, 22, ++/* 95323*/ OPC_CheckInteger, 7, ++/* 95325*/ OPC_CheckType, MVT::i32, ++/* 95327*/ OPC_MoveParent, ++/* 95328*/ OPC_MoveChild, 23, ++/* 95330*/ OPC_CheckInteger, 7, ++/* 95332*/ OPC_CheckType, MVT::i32, ++/* 95334*/ OPC_MoveParent, ++/* 95335*/ OPC_MoveChild, 24, ++/* 95337*/ OPC_CheckInteger, 7, ++/* 95339*/ OPC_CheckType, MVT::i32, ++/* 95341*/ OPC_MoveParent, ++/* 95342*/ OPC_MoveChild, 25, ++/* 95344*/ OPC_CheckInteger, 7, ++/* 95346*/ OPC_CheckType, MVT::i32, ++/* 95348*/ OPC_MoveParent, ++/* 95349*/ OPC_MoveChild, 26, ++/* 95351*/ OPC_CheckInteger, 7, ++/* 95353*/ OPC_CheckType, MVT::i32, ++/* 95355*/ OPC_MoveParent, ++/* 95356*/ OPC_MoveChild, 27, ++/* 95358*/ OPC_CheckInteger, 7, ++/* 95360*/ OPC_CheckType, MVT::i32, ++/* 95362*/ OPC_MoveParent, ++/* 95363*/ OPC_MoveChild, 28, ++/* 95365*/ OPC_CheckInteger, 7, ++/* 95367*/ OPC_CheckType, MVT::i32, ++/* 95369*/ OPC_MoveParent, ++/* 95370*/ OPC_MoveChild, 29, ++/* 95372*/ OPC_CheckInteger, 7, ++/* 95374*/ OPC_CheckType, MVT::i32, ++/* 95376*/ OPC_MoveParent, ++/* 95377*/ OPC_MoveChild, 30, ++/* 95379*/ OPC_CheckInteger, 7, ++/* 95381*/ OPC_CheckType, MVT::i32, ++/* 95383*/ OPC_MoveParent, ++/* 95384*/ OPC_MoveChild, 31, ++/* 95386*/ OPC_CheckInteger, 7, ++/* 95388*/ OPC_CheckType, MVT::i32, ++/* 95390*/ OPC_MoveParent, ++/* 95391*/ OPC_CheckType, MVT::v32i8, ++/* 95393*/ OPC_MoveParent, ++/* 95394*/ OPC_MoveParent, ++/* 95395*/ OPC_MoveParent, ++/* 95396*/ OPC_MoveChild1, ++/* 95397*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 95400*/ OPC_CheckChild0Integer, 1, ++/* 95402*/ OPC_CheckChild0Type, MVT::i32, ++/* 95404*/ OPC_CheckChild1Integer, 1, ++/* 95406*/ OPC_CheckChild1Type, MVT::i32, ++/* 95408*/ OPC_CheckChild2Integer, 1, ++/* 95410*/ OPC_CheckChild2Type, MVT::i32, ++/* 95412*/ OPC_CheckChild3Integer, 1, ++/* 95414*/ OPC_CheckChild3Type, MVT::i32, ++/* 95416*/ OPC_CheckChild4Integer, 1, ++/* 95418*/ OPC_CheckChild4Type, MVT::i32, ++/* 95420*/ OPC_MoveChild5, ++/* 95421*/ OPC_CheckInteger, 1, ++/* 95423*/ OPC_CheckType, MVT::i32, ++/* 95425*/ OPC_MoveParent, ++/* 95426*/ OPC_MoveChild6, ++/* 95427*/ OPC_CheckInteger, 1, ++/* 95429*/ OPC_CheckType, MVT::i32, ++/* 95431*/ OPC_MoveParent, ++/* 95432*/ OPC_MoveChild7, ++/* 95433*/ OPC_CheckInteger, 1, ++/* 95435*/ OPC_CheckType, MVT::i32, ++/* 95437*/ OPC_MoveParent, ++/* 95438*/ OPC_MoveChild, 8, ++/* 95440*/ OPC_CheckInteger, 1, ++/* 95442*/ OPC_CheckType, MVT::i32, ++/* 95444*/ OPC_MoveParent, ++/* 95445*/ OPC_MoveChild, 9, ++/* 95447*/ OPC_CheckInteger, 1, ++/* 95449*/ OPC_CheckType, MVT::i32, ++/* 95451*/ OPC_MoveParent, ++/* 95452*/ OPC_MoveChild, 10, ++/* 95454*/ OPC_CheckInteger, 1, ++/* 95456*/ OPC_CheckType, MVT::i32, ++/* 95458*/ OPC_MoveParent, ++/* 95459*/ OPC_MoveChild, 11, ++/* 95461*/ OPC_CheckInteger, 1, ++/* 95463*/ OPC_CheckType, MVT::i32, ++/* 95465*/ OPC_MoveParent, ++/* 95466*/ OPC_MoveChild, 12, ++/* 95468*/ OPC_CheckInteger, 1, ++/* 95470*/ OPC_CheckType, MVT::i32, ++/* 95472*/ OPC_MoveParent, ++/* 95473*/ OPC_MoveChild, 13, ++/* 95475*/ OPC_CheckInteger, 1, ++/* 95477*/ OPC_CheckType, MVT::i32, ++/* 95479*/ OPC_MoveParent, ++/* 95480*/ OPC_MoveChild, 14, ++/* 95482*/ OPC_CheckInteger, 1, ++/* 95484*/ OPC_CheckType, MVT::i32, ++/* 95486*/ OPC_MoveParent, ++/* 95487*/ OPC_MoveChild, 15, ++/* 95489*/ OPC_CheckInteger, 1, ++/* 95491*/ OPC_CheckType, MVT::i32, ++/* 95493*/ OPC_MoveParent, ++/* 95494*/ OPC_MoveChild, 16, ++/* 95496*/ OPC_CheckInteger, 1, ++/* 95498*/ OPC_CheckType, MVT::i32, ++/* 95500*/ OPC_MoveParent, ++/* 95501*/ OPC_MoveChild, 17, ++/* 95503*/ OPC_CheckInteger, 1, ++/* 95505*/ OPC_CheckType, MVT::i32, ++/* 95507*/ OPC_MoveParent, ++/* 95508*/ OPC_MoveChild, 18, ++/* 95510*/ OPC_CheckInteger, 1, ++/* 95512*/ OPC_CheckType, MVT::i32, ++/* 95514*/ OPC_MoveParent, ++/* 95515*/ OPC_MoveChild, 19, ++/* 95517*/ OPC_CheckInteger, 1, ++/* 95519*/ OPC_CheckType, MVT::i32, ++/* 95521*/ OPC_MoveParent, ++/* 95522*/ OPC_MoveChild, 20, ++/* 95524*/ OPC_CheckInteger, 1, ++/* 95526*/ OPC_CheckType, MVT::i32, ++/* 95528*/ OPC_MoveParent, ++/* 95529*/ OPC_MoveChild, 21, ++/* 95531*/ OPC_CheckInteger, 1, ++/* 95533*/ OPC_CheckType, MVT::i32, ++/* 95535*/ OPC_MoveParent, ++/* 95536*/ OPC_MoveChild, 22, ++/* 95538*/ OPC_CheckInteger, 1, ++/* 95540*/ OPC_CheckType, MVT::i32, ++/* 95542*/ OPC_MoveParent, ++/* 95543*/ OPC_MoveChild, 23, ++/* 95545*/ OPC_CheckInteger, 1, ++/* 95547*/ OPC_CheckType, MVT::i32, ++/* 95549*/ OPC_MoveParent, ++/* 95550*/ OPC_MoveChild, 24, ++/* 95552*/ OPC_CheckInteger, 1, ++/* 95554*/ OPC_CheckType, MVT::i32, ++/* 95556*/ OPC_MoveParent, ++/* 95557*/ OPC_MoveChild, 25, ++/* 95559*/ OPC_CheckInteger, 1, ++/* 95561*/ OPC_CheckType, MVT::i32, ++/* 95563*/ OPC_MoveParent, ++/* 95564*/ OPC_MoveChild, 26, ++/* 95566*/ OPC_CheckInteger, 1, ++/* 95568*/ OPC_CheckType, MVT::i32, ++/* 95570*/ OPC_MoveParent, ++/* 95571*/ OPC_MoveChild, 27, ++/* 95573*/ OPC_CheckInteger, 1, ++/* 95575*/ OPC_CheckType, MVT::i32, ++/* 95577*/ OPC_MoveParent, ++/* 95578*/ OPC_MoveChild, 28, ++/* 95580*/ OPC_CheckInteger, 1, ++/* 95582*/ OPC_CheckType, MVT::i32, ++/* 95584*/ OPC_MoveParent, ++/* 95585*/ OPC_MoveChild, 29, ++/* 95587*/ OPC_CheckInteger, 1, ++/* 95589*/ OPC_CheckType, MVT::i32, ++/* 95591*/ OPC_MoveParent, ++/* 95592*/ OPC_MoveChild, 30, ++/* 95594*/ OPC_CheckInteger, 1, ++/* 95596*/ OPC_CheckType, MVT::i32, ++/* 95598*/ OPC_MoveParent, ++/* 95599*/ OPC_MoveChild, 31, ++/* 95601*/ OPC_CheckInteger, 1, ++/* 95603*/ OPC_CheckType, MVT::i32, ++/* 95605*/ OPC_MoveParent, ++/* 95606*/ OPC_CheckType, MVT::v32i8, ++/* 95608*/ OPC_MoveParent, ++/* 95609*/ OPC_CheckType, MVT::v32i8, ++/* 95611*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 95613*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$b), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/* 95621*/ 0, /*End of Scope*/ ++/* 95622*/ /*Scope*/ 89|128,8/*1113*/, /*->96737*/ ++/* 95624*/ OPC_MoveChild0, ++/* 95625*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 95628*/ OPC_CheckChild0Integer, 1, ++/* 95630*/ OPC_CheckChild0Type, MVT::i32, ++/* 95632*/ OPC_CheckChild1Integer, 1, ++/* 95634*/ OPC_CheckChild1Type, MVT::i32, ++/* 95636*/ OPC_CheckChild2Integer, 1, ++/* 95638*/ OPC_CheckChild2Type, MVT::i32, ++/* 95640*/ OPC_CheckChild3Integer, 1, ++/* 95642*/ OPC_CheckChild3Type, MVT::i32, ++/* 95644*/ OPC_CheckChild4Integer, 1, ++/* 95646*/ OPC_CheckChild4Type, MVT::i32, ++/* 95648*/ OPC_MoveChild5, ++/* 95649*/ OPC_CheckInteger, 1, ++/* 95651*/ OPC_CheckType, MVT::i32, ++/* 95653*/ OPC_MoveParent, ++/* 95654*/ OPC_MoveChild6, ++/* 95655*/ OPC_CheckInteger, 1, ++/* 95657*/ OPC_CheckType, MVT::i32, ++/* 95659*/ OPC_MoveParent, ++/* 95660*/ OPC_MoveChild7, ++/* 95661*/ OPC_CheckInteger, 1, ++/* 95663*/ OPC_CheckType, MVT::i32, ++/* 95665*/ OPC_MoveParent, ++/* 95666*/ OPC_MoveChild, 8, ++/* 95668*/ OPC_CheckInteger, 1, ++/* 95670*/ OPC_CheckType, MVT::i32, ++/* 95672*/ OPC_MoveParent, ++/* 95673*/ OPC_MoveChild, 9, ++/* 95675*/ OPC_CheckInteger, 1, ++/* 95677*/ OPC_CheckType, MVT::i32, ++/* 95679*/ OPC_MoveParent, ++/* 95680*/ OPC_MoveChild, 10, ++/* 95682*/ OPC_CheckInteger, 1, ++/* 95684*/ OPC_CheckType, MVT::i32, ++/* 95686*/ OPC_MoveParent, ++/* 95687*/ OPC_MoveChild, 11, ++/* 95689*/ OPC_CheckInteger, 1, ++/* 95691*/ OPC_CheckType, MVT::i32, ++/* 95693*/ OPC_MoveParent, ++/* 95694*/ OPC_MoveChild, 12, ++/* 95696*/ OPC_CheckInteger, 1, ++/* 95698*/ OPC_CheckType, MVT::i32, ++/* 95700*/ OPC_MoveParent, ++/* 95701*/ OPC_MoveChild, 13, ++/* 95703*/ OPC_CheckInteger, 1, ++/* 95705*/ OPC_CheckType, MVT::i32, ++/* 95707*/ OPC_MoveParent, ++/* 95708*/ OPC_MoveChild, 14, ++/* 95710*/ OPC_CheckInteger, 1, ++/* 95712*/ OPC_CheckType, MVT::i32, ++/* 95714*/ OPC_MoveParent, ++/* 95715*/ OPC_MoveChild, 15, ++/* 95717*/ OPC_CheckInteger, 1, ++/* 95719*/ OPC_CheckType, MVT::i32, ++/* 95721*/ OPC_MoveParent, ++/* 95722*/ OPC_MoveChild, 16, ++/* 95724*/ OPC_CheckInteger, 1, ++/* 95726*/ OPC_CheckType, MVT::i32, ++/* 95728*/ OPC_MoveParent, ++/* 95729*/ OPC_MoveChild, 17, ++/* 95731*/ OPC_CheckInteger, 1, ++/* 95733*/ OPC_CheckType, MVT::i32, ++/* 95735*/ OPC_MoveParent, ++/* 95736*/ OPC_MoveChild, 18, ++/* 95738*/ OPC_CheckInteger, 1, ++/* 95740*/ OPC_CheckType, MVT::i32, ++/* 95742*/ OPC_MoveParent, ++/* 95743*/ OPC_MoveChild, 19, ++/* 95745*/ OPC_CheckInteger, 1, ++/* 95747*/ OPC_CheckType, MVT::i32, ++/* 95749*/ OPC_MoveParent, ++/* 95750*/ OPC_MoveChild, 20, ++/* 95752*/ OPC_CheckInteger, 1, ++/* 95754*/ OPC_CheckType, MVT::i32, ++/* 95756*/ OPC_MoveParent, ++/* 95757*/ OPC_MoveChild, 21, ++/* 95759*/ OPC_CheckInteger, 1, ++/* 95761*/ OPC_CheckType, MVT::i32, ++/* 95763*/ OPC_MoveParent, ++/* 95764*/ OPC_MoveChild, 22, ++/* 95766*/ OPC_CheckInteger, 1, ++/* 95768*/ OPC_CheckType, MVT::i32, ++/* 95770*/ OPC_MoveParent, ++/* 95771*/ OPC_MoveChild, 23, ++/* 95773*/ OPC_CheckInteger, 1, ++/* 95775*/ OPC_CheckType, MVT::i32, ++/* 95777*/ OPC_MoveParent, ++/* 95778*/ OPC_MoveChild, 24, ++/* 95780*/ OPC_CheckInteger, 1, ++/* 95782*/ OPC_CheckType, MVT::i32, ++/* 95784*/ OPC_MoveParent, ++/* 95785*/ OPC_MoveChild, 25, ++/* 95787*/ OPC_CheckInteger, 1, ++/* 95789*/ OPC_CheckType, MVT::i32, ++/* 95791*/ OPC_MoveParent, ++/* 95792*/ OPC_MoveChild, 26, ++/* 95794*/ OPC_CheckInteger, 1, ++/* 95796*/ OPC_CheckType, MVT::i32, ++/* 95798*/ OPC_MoveParent, ++/* 95799*/ OPC_MoveChild, 27, ++/* 95801*/ OPC_CheckInteger, 1, ++/* 95803*/ OPC_CheckType, MVT::i32, ++/* 95805*/ OPC_MoveParent, ++/* 95806*/ OPC_MoveChild, 28, ++/* 95808*/ OPC_CheckInteger, 1, ++/* 95810*/ OPC_CheckType, MVT::i32, ++/* 95812*/ OPC_MoveParent, ++/* 95813*/ OPC_MoveChild, 29, ++/* 95815*/ OPC_CheckInteger, 1, ++/* 95817*/ OPC_CheckType, MVT::i32, ++/* 95819*/ OPC_MoveParent, ++/* 95820*/ OPC_MoveChild, 30, ++/* 95822*/ OPC_CheckInteger, 1, ++/* 95824*/ OPC_CheckType, MVT::i32, ++/* 95826*/ OPC_MoveParent, ++/* 95827*/ OPC_MoveChild, 31, ++/* 95829*/ OPC_CheckInteger, 1, ++/* 95831*/ OPC_CheckType, MVT::i32, ++/* 95833*/ OPC_MoveParent, ++/* 95834*/ OPC_MoveParent, ++/* 95835*/ OPC_MoveChild1, ++/* 95836*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/* 95839*/ OPC_Scope, 62|128,3/*446*/, /*->96288*/ // 2 children in Scope ++/* 95842*/ OPC_CheckChild0Same, 0, ++/* 95844*/ OPC_CheckChild1Same, 1, ++/* 95846*/ OPC_MoveParent, ++/* 95847*/ OPC_MoveParent, ++/* 95848*/ OPC_MoveChild1, ++/* 95849*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 95852*/ OPC_CheckChild0Integer, 7, ++/* 95854*/ OPC_CheckChild0Type, MVT::i32, ++/* 95856*/ OPC_CheckChild1Integer, 7, ++/* 95858*/ OPC_CheckChild1Type, MVT::i32, ++/* 95860*/ OPC_CheckChild2Integer, 7, ++/* 95862*/ OPC_CheckChild2Type, MVT::i32, ++/* 95864*/ OPC_CheckChild3Integer, 7, ++/* 95866*/ OPC_CheckChild3Type, MVT::i32, ++/* 95868*/ OPC_CheckChild4Integer, 7, ++/* 95870*/ OPC_CheckChild4Type, MVT::i32, ++/* 95872*/ OPC_MoveChild5, ++/* 95873*/ OPC_CheckInteger, 7, ++/* 95875*/ OPC_CheckType, MVT::i32, ++/* 95877*/ OPC_MoveParent, ++/* 95878*/ OPC_MoveChild6, ++/* 95879*/ OPC_CheckInteger, 7, ++/* 95881*/ OPC_CheckType, MVT::i32, ++/* 95883*/ OPC_MoveParent, ++/* 95884*/ OPC_MoveChild7, ++/* 95885*/ OPC_CheckInteger, 7, ++/* 95887*/ OPC_CheckType, MVT::i32, ++/* 95889*/ OPC_MoveParent, ++/* 95890*/ OPC_MoveChild, 8, ++/* 95892*/ OPC_CheckInteger, 7, ++/* 95894*/ OPC_CheckType, MVT::i32, ++/* 95896*/ OPC_MoveParent, ++/* 95897*/ OPC_MoveChild, 9, ++/* 95899*/ OPC_CheckInteger, 7, ++/* 95901*/ OPC_CheckType, MVT::i32, ++/* 95903*/ OPC_MoveParent, ++/* 95904*/ OPC_MoveChild, 10, ++/* 95906*/ OPC_CheckInteger, 7, ++/* 95908*/ OPC_CheckType, MVT::i32, ++/* 95910*/ OPC_MoveParent, ++/* 95911*/ OPC_MoveChild, 11, ++/* 95913*/ OPC_CheckInteger, 7, ++/* 95915*/ OPC_CheckType, MVT::i32, ++/* 95917*/ OPC_MoveParent, ++/* 95918*/ OPC_MoveChild, 12, ++/* 95920*/ OPC_CheckInteger, 7, ++/* 95922*/ OPC_CheckType, MVT::i32, ++/* 95924*/ OPC_MoveParent, ++/* 95925*/ OPC_MoveChild, 13, ++/* 95927*/ OPC_CheckInteger, 7, ++/* 95929*/ OPC_CheckType, MVT::i32, ++/* 95931*/ OPC_MoveParent, ++/* 95932*/ OPC_MoveChild, 14, ++/* 95934*/ OPC_CheckInteger, 7, ++/* 95936*/ OPC_CheckType, MVT::i32, ++/* 95938*/ OPC_MoveParent, ++/* 95939*/ OPC_MoveChild, 15, ++/* 95941*/ OPC_CheckInteger, 7, ++/* 95943*/ OPC_CheckType, MVT::i32, ++/* 95945*/ OPC_MoveParent, ++/* 95946*/ OPC_MoveChild, 16, ++/* 95948*/ OPC_CheckInteger, 7, ++/* 95950*/ OPC_CheckType, MVT::i32, ++/* 95952*/ OPC_MoveParent, ++/* 95953*/ OPC_MoveChild, 17, ++/* 95955*/ OPC_CheckInteger, 7, ++/* 95957*/ OPC_CheckType, MVT::i32, ++/* 95959*/ OPC_MoveParent, ++/* 95960*/ OPC_MoveChild, 18, ++/* 95962*/ OPC_CheckInteger, 7, ++/* 95964*/ OPC_CheckType, MVT::i32, ++/* 95966*/ OPC_MoveParent, ++/* 95967*/ OPC_MoveChild, 19, ++/* 95969*/ OPC_CheckInteger, 7, ++/* 95971*/ OPC_CheckType, MVT::i32, ++/* 95973*/ OPC_MoveParent, ++/* 95974*/ OPC_MoveChild, 20, ++/* 95976*/ OPC_CheckInteger, 7, ++/* 95978*/ OPC_CheckType, MVT::i32, ++/* 95980*/ OPC_MoveParent, ++/* 95981*/ OPC_MoveChild, 21, ++/* 95983*/ OPC_CheckInteger, 7, ++/* 95985*/ OPC_CheckType, MVT::i32, ++/* 95987*/ OPC_MoveParent, ++/* 95988*/ OPC_MoveChild, 22, ++/* 95990*/ OPC_CheckInteger, 7, ++/* 95992*/ OPC_CheckType, MVT::i32, ++/* 95994*/ OPC_MoveParent, ++/* 95995*/ OPC_MoveChild, 23, ++/* 95997*/ OPC_CheckInteger, 7, ++/* 95999*/ OPC_CheckType, MVT::i32, ++/* 96001*/ OPC_MoveParent, ++/* 96002*/ OPC_MoveChild, 24, ++/* 96004*/ OPC_CheckInteger, 7, ++/* 96006*/ OPC_CheckType, MVT::i32, ++/* 96008*/ OPC_MoveParent, ++/* 96009*/ OPC_MoveChild, 25, ++/* 96011*/ OPC_CheckInteger, 7, ++/* 96013*/ OPC_CheckType, MVT::i32, ++/* 96015*/ OPC_MoveParent, ++/* 96016*/ OPC_MoveChild, 26, ++/* 96018*/ OPC_CheckInteger, 7, ++/* 96020*/ OPC_CheckType, MVT::i32, ++/* 96022*/ OPC_MoveParent, ++/* 96023*/ OPC_MoveChild, 27, ++/* 96025*/ OPC_CheckInteger, 7, ++/* 96027*/ OPC_CheckType, MVT::i32, ++/* 96029*/ OPC_MoveParent, ++/* 96030*/ OPC_MoveChild, 28, ++/* 96032*/ OPC_CheckInteger, 7, ++/* 96034*/ OPC_CheckType, MVT::i32, ++/* 96036*/ OPC_MoveParent, ++/* 96037*/ OPC_MoveChild, 29, ++/* 96039*/ OPC_CheckInteger, 7, ++/* 96041*/ OPC_CheckType, MVT::i32, ++/* 96043*/ OPC_MoveParent, ++/* 96044*/ OPC_MoveChild, 30, ++/* 96046*/ OPC_CheckInteger, 7, ++/* 96048*/ OPC_CheckType, MVT::i32, ++/* 96050*/ OPC_MoveParent, ++/* 96051*/ OPC_MoveChild, 31, ++/* 96053*/ OPC_CheckInteger, 7, ++/* 96055*/ OPC_CheckType, MVT::i32, ++/* 96057*/ OPC_MoveParent, ++/* 96058*/ OPC_CheckType, MVT::v32i8, ++/* 96060*/ OPC_MoveParent, ++/* 96061*/ OPC_MoveParent, ++/* 96062*/ OPC_MoveParent, ++/* 96063*/ OPC_MoveChild1, ++/* 96064*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 96067*/ OPC_CheckChild0Integer, 1, ++/* 96069*/ OPC_CheckChild0Type, MVT::i32, ++/* 96071*/ OPC_CheckChild1Integer, 1, ++/* 96073*/ OPC_CheckChild1Type, MVT::i32, ++/* 96075*/ OPC_CheckChild2Integer, 1, ++/* 96077*/ OPC_CheckChild2Type, MVT::i32, ++/* 96079*/ OPC_CheckChild3Integer, 1, ++/* 96081*/ OPC_CheckChild3Type, MVT::i32, ++/* 96083*/ OPC_CheckChild4Integer, 1, ++/* 96085*/ OPC_CheckChild4Type, MVT::i32, ++/* 96087*/ OPC_MoveChild5, ++/* 96088*/ OPC_CheckInteger, 1, ++/* 96090*/ OPC_CheckType, MVT::i32, ++/* 96092*/ OPC_MoveParent, ++/* 96093*/ OPC_MoveChild6, ++/* 96094*/ OPC_CheckInteger, 1, ++/* 96096*/ OPC_CheckType, MVT::i32, ++/* 96098*/ OPC_MoveParent, ++/* 96099*/ OPC_MoveChild7, ++/* 96100*/ OPC_CheckInteger, 1, ++/* 96102*/ OPC_CheckType, MVT::i32, ++/* 96104*/ OPC_MoveParent, ++/* 96105*/ OPC_MoveChild, 8, ++/* 96107*/ OPC_CheckInteger, 1, ++/* 96109*/ OPC_CheckType, MVT::i32, ++/* 96111*/ OPC_MoveParent, ++/* 96112*/ OPC_MoveChild, 9, ++/* 96114*/ OPC_CheckInteger, 1, ++/* 96116*/ OPC_CheckType, MVT::i32, ++/* 96118*/ OPC_MoveParent, ++/* 96119*/ OPC_MoveChild, 10, ++/* 96121*/ OPC_CheckInteger, 1, ++/* 96123*/ OPC_CheckType, MVT::i32, ++/* 96125*/ OPC_MoveParent, ++/* 96126*/ OPC_MoveChild, 11, ++/* 96128*/ OPC_CheckInteger, 1, ++/* 96130*/ OPC_CheckType, MVT::i32, ++/* 96132*/ OPC_MoveParent, ++/* 96133*/ OPC_MoveChild, 12, ++/* 96135*/ OPC_CheckInteger, 1, ++/* 96137*/ OPC_CheckType, MVT::i32, ++/* 96139*/ OPC_MoveParent, ++/* 96140*/ OPC_MoveChild, 13, ++/* 96142*/ OPC_CheckInteger, 1, ++/* 96144*/ OPC_CheckType, MVT::i32, ++/* 96146*/ OPC_MoveParent, ++/* 96147*/ OPC_MoveChild, 14, ++/* 96149*/ OPC_CheckInteger, 1, ++/* 96151*/ OPC_CheckType, MVT::i32, ++/* 96153*/ OPC_MoveParent, ++/* 96154*/ OPC_MoveChild, 15, ++/* 96156*/ OPC_CheckInteger, 1, ++/* 96158*/ OPC_CheckType, MVT::i32, ++/* 96160*/ OPC_MoveParent, ++/* 96161*/ OPC_MoveChild, 16, ++/* 96163*/ OPC_CheckInteger, 1, ++/* 96165*/ OPC_CheckType, MVT::i32, ++/* 96167*/ OPC_MoveParent, ++/* 96168*/ OPC_MoveChild, 17, ++/* 96170*/ OPC_CheckInteger, 1, ++/* 96172*/ OPC_CheckType, MVT::i32, ++/* 96174*/ OPC_MoveParent, ++/* 96175*/ OPC_MoveChild, 18, ++/* 96177*/ OPC_CheckInteger, 1, ++/* 96179*/ OPC_CheckType, MVT::i32, ++/* 96181*/ OPC_MoveParent, ++/* 96182*/ OPC_MoveChild, 19, ++/* 96184*/ OPC_CheckInteger, 1, ++/* 96186*/ OPC_CheckType, MVT::i32, ++/* 96188*/ OPC_MoveParent, ++/* 96189*/ OPC_MoveChild, 20, ++/* 96191*/ OPC_CheckInteger, 1, ++/* 96193*/ OPC_CheckType, MVT::i32, ++/* 96195*/ OPC_MoveParent, ++/* 96196*/ OPC_MoveChild, 21, ++/* 96198*/ OPC_CheckInteger, 1, ++/* 96200*/ OPC_CheckType, MVT::i32, ++/* 96202*/ OPC_MoveParent, ++/* 96203*/ OPC_MoveChild, 22, ++/* 96205*/ OPC_CheckInteger, 1, ++/* 96207*/ OPC_CheckType, MVT::i32, ++/* 96209*/ OPC_MoveParent, ++/* 96210*/ OPC_MoveChild, 23, ++/* 96212*/ OPC_CheckInteger, 1, ++/* 96214*/ OPC_CheckType, MVT::i32, ++/* 96216*/ OPC_MoveParent, ++/* 96217*/ OPC_MoveChild, 24, ++/* 96219*/ OPC_CheckInteger, 1, ++/* 96221*/ OPC_CheckType, MVT::i32, ++/* 96223*/ OPC_MoveParent, ++/* 96224*/ OPC_MoveChild, 25, ++/* 96226*/ OPC_CheckInteger, 1, ++/* 96228*/ OPC_CheckType, MVT::i32, ++/* 96230*/ OPC_MoveParent, ++/* 96231*/ OPC_MoveChild, 26, ++/* 96233*/ OPC_CheckInteger, 1, ++/* 96235*/ OPC_CheckType, MVT::i32, ++/* 96237*/ OPC_MoveParent, ++/* 96238*/ OPC_MoveChild, 27, ++/* 96240*/ OPC_CheckInteger, 1, ++/* 96242*/ OPC_CheckType, MVT::i32, ++/* 96244*/ OPC_MoveParent, ++/* 96245*/ OPC_MoveChild, 28, ++/* 96247*/ OPC_CheckInteger, 1, ++/* 96249*/ OPC_CheckType, MVT::i32, ++/* 96251*/ OPC_MoveParent, ++/* 96252*/ OPC_MoveChild, 29, ++/* 96254*/ OPC_CheckInteger, 1, ++/* 96256*/ OPC_CheckType, MVT::i32, ++/* 96258*/ OPC_MoveParent, ++/* 96259*/ OPC_MoveChild, 30, ++/* 96261*/ OPC_CheckInteger, 1, ++/* 96263*/ OPC_CheckType, MVT::i32, ++/* 96265*/ OPC_MoveParent, ++/* 96266*/ OPC_MoveChild, 31, ++/* 96268*/ OPC_CheckInteger, 1, ++/* 96270*/ OPC_CheckType, MVT::i32, ++/* 96272*/ OPC_MoveParent, ++/* 96273*/ OPC_CheckType, MVT::v32i8, ++/* 96275*/ OPC_MoveParent, ++/* 96276*/ OPC_CheckType, MVT::v32i8, ++/* 96278*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 96280*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$b), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/* 96288*/ /*Scope*/ 62|128,3/*446*/, /*->96736*/ ++/* 96290*/ OPC_CheckChild0Same, 1, ++/* 96292*/ OPC_CheckChild1Same, 0, ++/* 96294*/ OPC_MoveParent, ++/* 96295*/ OPC_MoveParent, ++/* 96296*/ OPC_MoveChild1, ++/* 96297*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 96300*/ OPC_CheckChild0Integer, 7, ++/* 96302*/ OPC_CheckChild0Type, MVT::i32, ++/* 96304*/ OPC_CheckChild1Integer, 7, ++/* 96306*/ OPC_CheckChild1Type, MVT::i32, ++/* 96308*/ OPC_CheckChild2Integer, 7, ++/* 96310*/ OPC_CheckChild2Type, MVT::i32, ++/* 96312*/ OPC_CheckChild3Integer, 7, ++/* 96314*/ OPC_CheckChild3Type, MVT::i32, ++/* 96316*/ OPC_CheckChild4Integer, 7, ++/* 96318*/ OPC_CheckChild4Type, MVT::i32, ++/* 96320*/ OPC_MoveChild5, ++/* 96321*/ OPC_CheckInteger, 7, ++/* 96323*/ OPC_CheckType, MVT::i32, ++/* 96325*/ OPC_MoveParent, ++/* 96326*/ OPC_MoveChild6, ++/* 96327*/ OPC_CheckInteger, 7, ++/* 96329*/ OPC_CheckType, MVT::i32, ++/* 96331*/ OPC_MoveParent, ++/* 96332*/ OPC_MoveChild7, ++/* 96333*/ OPC_CheckInteger, 7, ++/* 96335*/ OPC_CheckType, MVT::i32, ++/* 96337*/ OPC_MoveParent, ++/* 96338*/ OPC_MoveChild, 8, ++/* 96340*/ OPC_CheckInteger, 7, ++/* 96342*/ OPC_CheckType, MVT::i32, ++/* 96344*/ OPC_MoveParent, ++/* 96345*/ OPC_MoveChild, 9, ++/* 96347*/ OPC_CheckInteger, 7, ++/* 96349*/ OPC_CheckType, MVT::i32, ++/* 96351*/ OPC_MoveParent, ++/* 96352*/ OPC_MoveChild, 10, ++/* 96354*/ OPC_CheckInteger, 7, ++/* 96356*/ OPC_CheckType, MVT::i32, ++/* 96358*/ OPC_MoveParent, ++/* 96359*/ OPC_MoveChild, 11, ++/* 96361*/ OPC_CheckInteger, 7, ++/* 96363*/ OPC_CheckType, MVT::i32, ++/* 96365*/ OPC_MoveParent, ++/* 96366*/ OPC_MoveChild, 12, ++/* 96368*/ OPC_CheckInteger, 7, ++/* 96370*/ OPC_CheckType, MVT::i32, ++/* 96372*/ OPC_MoveParent, ++/* 96373*/ OPC_MoveChild, 13, ++/* 96375*/ OPC_CheckInteger, 7, ++/* 96377*/ OPC_CheckType, MVT::i32, ++/* 96379*/ OPC_MoveParent, ++/* 96380*/ OPC_MoveChild, 14, ++/* 96382*/ OPC_CheckInteger, 7, ++/* 96384*/ OPC_CheckType, MVT::i32, ++/* 96386*/ OPC_MoveParent, ++/* 96387*/ OPC_MoveChild, 15, ++/* 96389*/ OPC_CheckInteger, 7, ++/* 96391*/ OPC_CheckType, MVT::i32, ++/* 96393*/ OPC_MoveParent, ++/* 96394*/ OPC_MoveChild, 16, ++/* 96396*/ OPC_CheckInteger, 7, ++/* 96398*/ OPC_CheckType, MVT::i32, ++/* 96400*/ OPC_MoveParent, ++/* 96401*/ OPC_MoveChild, 17, ++/* 96403*/ OPC_CheckInteger, 7, ++/* 96405*/ OPC_CheckType, MVT::i32, ++/* 96407*/ OPC_MoveParent, ++/* 96408*/ OPC_MoveChild, 18, ++/* 96410*/ OPC_CheckInteger, 7, ++/* 96412*/ OPC_CheckType, MVT::i32, ++/* 96414*/ OPC_MoveParent, ++/* 96415*/ OPC_MoveChild, 19, ++/* 96417*/ OPC_CheckInteger, 7, ++/* 96419*/ OPC_CheckType, MVT::i32, ++/* 96421*/ OPC_MoveParent, ++/* 96422*/ OPC_MoveChild, 20, ++/* 96424*/ OPC_CheckInteger, 7, ++/* 96426*/ OPC_CheckType, MVT::i32, ++/* 96428*/ OPC_MoveParent, ++/* 96429*/ OPC_MoveChild, 21, ++/* 96431*/ OPC_CheckInteger, 7, ++/* 96433*/ OPC_CheckType, MVT::i32, ++/* 96435*/ OPC_MoveParent, ++/* 96436*/ OPC_MoveChild, 22, ++/* 96438*/ OPC_CheckInteger, 7, ++/* 96440*/ OPC_CheckType, MVT::i32, ++/* 96442*/ OPC_MoveParent, ++/* 96443*/ OPC_MoveChild, 23, ++/* 96445*/ OPC_CheckInteger, 7, ++/* 96447*/ OPC_CheckType, MVT::i32, ++/* 96449*/ OPC_MoveParent, ++/* 96450*/ OPC_MoveChild, 24, ++/* 96452*/ OPC_CheckInteger, 7, ++/* 96454*/ OPC_CheckType, MVT::i32, ++/* 96456*/ OPC_MoveParent, ++/* 96457*/ OPC_MoveChild, 25, ++/* 96459*/ OPC_CheckInteger, 7, ++/* 96461*/ OPC_CheckType, MVT::i32, ++/* 96463*/ OPC_MoveParent, ++/* 96464*/ OPC_MoveChild, 26, ++/* 96466*/ OPC_CheckInteger, 7, ++/* 96468*/ OPC_CheckType, MVT::i32, ++/* 96470*/ OPC_MoveParent, ++/* 96471*/ OPC_MoveChild, 27, ++/* 96473*/ OPC_CheckInteger, 7, ++/* 96475*/ OPC_CheckType, MVT::i32, ++/* 96477*/ OPC_MoveParent, ++/* 96478*/ OPC_MoveChild, 28, ++/* 96480*/ OPC_CheckInteger, 7, ++/* 96482*/ OPC_CheckType, MVT::i32, ++/* 96484*/ OPC_MoveParent, ++/* 96485*/ OPC_MoveChild, 29, ++/* 96487*/ OPC_CheckInteger, 7, ++/* 96489*/ OPC_CheckType, MVT::i32, ++/* 96491*/ OPC_MoveParent, ++/* 96492*/ OPC_MoveChild, 30, ++/* 96494*/ OPC_CheckInteger, 7, ++/* 96496*/ OPC_CheckType, MVT::i32, ++/* 96498*/ OPC_MoveParent, ++/* 96499*/ OPC_MoveChild, 31, ++/* 96501*/ OPC_CheckInteger, 7, ++/* 96503*/ OPC_CheckType, MVT::i32, ++/* 96505*/ OPC_MoveParent, ++/* 96506*/ OPC_CheckType, MVT::v32i8, ++/* 96508*/ OPC_MoveParent, ++/* 96509*/ OPC_MoveParent, ++/* 96510*/ OPC_MoveParent, ++/* 96511*/ OPC_MoveChild1, ++/* 96512*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 96515*/ OPC_CheckChild0Integer, 1, ++/* 96517*/ OPC_CheckChild0Type, MVT::i32, ++/* 96519*/ OPC_CheckChild1Integer, 1, ++/* 96521*/ OPC_CheckChild1Type, MVT::i32, ++/* 96523*/ OPC_CheckChild2Integer, 1, ++/* 96525*/ OPC_CheckChild2Type, MVT::i32, ++/* 96527*/ OPC_CheckChild3Integer, 1, ++/* 96529*/ OPC_CheckChild3Type, MVT::i32, ++/* 96531*/ OPC_CheckChild4Integer, 1, ++/* 96533*/ OPC_CheckChild4Type, MVT::i32, ++/* 96535*/ OPC_MoveChild5, ++/* 96536*/ OPC_CheckInteger, 1, ++/* 96538*/ OPC_CheckType, MVT::i32, ++/* 96540*/ OPC_MoveParent, ++/* 96541*/ OPC_MoveChild6, ++/* 96542*/ OPC_CheckInteger, 1, ++/* 96544*/ OPC_CheckType, MVT::i32, ++/* 96546*/ OPC_MoveParent, ++/* 96547*/ OPC_MoveChild7, ++/* 96548*/ OPC_CheckInteger, 1, ++/* 96550*/ OPC_CheckType, MVT::i32, ++/* 96552*/ OPC_MoveParent, ++/* 96553*/ OPC_MoveChild, 8, ++/* 96555*/ OPC_CheckInteger, 1, ++/* 96557*/ OPC_CheckType, MVT::i32, ++/* 96559*/ OPC_MoveParent, ++/* 96560*/ OPC_MoveChild, 9, ++/* 96562*/ OPC_CheckInteger, 1, ++/* 96564*/ OPC_CheckType, MVT::i32, ++/* 96566*/ OPC_MoveParent, ++/* 96567*/ OPC_MoveChild, 10, ++/* 96569*/ OPC_CheckInteger, 1, ++/* 96571*/ OPC_CheckType, MVT::i32, ++/* 96573*/ OPC_MoveParent, ++/* 96574*/ OPC_MoveChild, 11, ++/* 96576*/ OPC_CheckInteger, 1, ++/* 96578*/ OPC_CheckType, MVT::i32, ++/* 96580*/ OPC_MoveParent, ++/* 96581*/ OPC_MoveChild, 12, ++/* 96583*/ OPC_CheckInteger, 1, ++/* 96585*/ OPC_CheckType, MVT::i32, ++/* 96587*/ OPC_MoveParent, ++/* 96588*/ OPC_MoveChild, 13, ++/* 96590*/ OPC_CheckInteger, 1, ++/* 96592*/ OPC_CheckType, MVT::i32, ++/* 96594*/ OPC_MoveParent, ++/* 96595*/ OPC_MoveChild, 14, ++/* 96597*/ OPC_CheckInteger, 1, ++/* 96599*/ OPC_CheckType, MVT::i32, ++/* 96601*/ OPC_MoveParent, ++/* 96602*/ OPC_MoveChild, 15, ++/* 96604*/ OPC_CheckInteger, 1, ++/* 96606*/ OPC_CheckType, MVT::i32, ++/* 96608*/ OPC_MoveParent, ++/* 96609*/ OPC_MoveChild, 16, ++/* 96611*/ OPC_CheckInteger, 1, ++/* 96613*/ OPC_CheckType, MVT::i32, ++/* 96615*/ OPC_MoveParent, ++/* 96616*/ OPC_MoveChild, 17, ++/* 96618*/ OPC_CheckInteger, 1, ++/* 96620*/ OPC_CheckType, MVT::i32, ++/* 96622*/ OPC_MoveParent, ++/* 96623*/ OPC_MoveChild, 18, ++/* 96625*/ OPC_CheckInteger, 1, ++/* 96627*/ OPC_CheckType, MVT::i32, ++/* 96629*/ OPC_MoveParent, ++/* 96630*/ OPC_MoveChild, 19, ++/* 96632*/ OPC_CheckInteger, 1, ++/* 96634*/ OPC_CheckType, MVT::i32, ++/* 96636*/ OPC_MoveParent, ++/* 96637*/ OPC_MoveChild, 20, ++/* 96639*/ OPC_CheckInteger, 1, ++/* 96641*/ OPC_CheckType, MVT::i32, ++/* 96643*/ OPC_MoveParent, ++/* 96644*/ OPC_MoveChild, 21, ++/* 96646*/ OPC_CheckInteger, 1, ++/* 96648*/ OPC_CheckType, MVT::i32, ++/* 96650*/ OPC_MoveParent, ++/* 96651*/ OPC_MoveChild, 22, ++/* 96653*/ OPC_CheckInteger, 1, ++/* 96655*/ OPC_CheckType, MVT::i32, ++/* 96657*/ OPC_MoveParent, ++/* 96658*/ OPC_MoveChild, 23, ++/* 96660*/ OPC_CheckInteger, 1, ++/* 96662*/ OPC_CheckType, MVT::i32, ++/* 96664*/ OPC_MoveParent, ++/* 96665*/ OPC_MoveChild, 24, ++/* 96667*/ OPC_CheckInteger, 1, ++/* 96669*/ OPC_CheckType, MVT::i32, ++/* 96671*/ OPC_MoveParent, ++/* 96672*/ OPC_MoveChild, 25, ++/* 96674*/ OPC_CheckInteger, 1, ++/* 96676*/ OPC_CheckType, MVT::i32, ++/* 96678*/ OPC_MoveParent, ++/* 96679*/ OPC_MoveChild, 26, ++/* 96681*/ OPC_CheckInteger, 1, ++/* 96683*/ OPC_CheckType, MVT::i32, ++/* 96685*/ OPC_MoveParent, ++/* 96686*/ OPC_MoveChild, 27, ++/* 96688*/ OPC_CheckInteger, 1, ++/* 96690*/ OPC_CheckType, MVT::i32, ++/* 96692*/ OPC_MoveParent, ++/* 96693*/ OPC_MoveChild, 28, ++/* 96695*/ OPC_CheckInteger, 1, ++/* 96697*/ OPC_CheckType, MVT::i32, ++/* 96699*/ OPC_MoveParent, ++/* 96700*/ OPC_MoveChild, 29, ++/* 96702*/ OPC_CheckInteger, 1, ++/* 96704*/ OPC_CheckType, MVT::i32, ++/* 96706*/ OPC_MoveParent, ++/* 96707*/ OPC_MoveChild, 30, ++/* 96709*/ OPC_CheckInteger, 1, ++/* 96711*/ OPC_CheckType, MVT::i32, ++/* 96713*/ OPC_MoveParent, ++/* 96714*/ OPC_MoveChild, 31, ++/* 96716*/ OPC_CheckInteger, 1, ++/* 96718*/ OPC_CheckType, MVT::i32, ++/* 96720*/ OPC_MoveParent, ++/* 96721*/ OPC_CheckType, MVT::v32i8, ++/* 96723*/ OPC_MoveParent, ++/* 96724*/ OPC_CheckType, MVT::v32i8, ++/* 96726*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 96728*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$b), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/* 96736*/ 0, /*End of Scope*/ ++/* 96737*/ 0, /*End of Scope*/ ++/* 96738*/ /*Scope*/ 14|128,62/*7950*/, /*->104690*/ ++/* 96740*/ OPC_MoveChild0, ++/* 96741*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 96744*/ OPC_CheckChild0Integer, 1, ++/* 96746*/ OPC_CheckChild0Type, MVT::i32, ++/* 96748*/ OPC_CheckChild1Integer, 1, ++/* 96750*/ OPC_CheckChild1Type, MVT::i32, ++/* 96752*/ OPC_CheckChild2Integer, 1, ++/* 96754*/ OPC_CheckChild2Type, MVT::i32, ++/* 96756*/ OPC_CheckChild3Integer, 1, ++/* 96758*/ OPC_CheckChild3Type, MVT::i32, ++/* 96760*/ OPC_CheckChild4Integer, 1, ++/* 96762*/ OPC_CheckChild4Type, MVT::i32, ++/* 96764*/ OPC_MoveChild5, ++/* 96765*/ OPC_CheckInteger, 1, ++/* 96767*/ OPC_CheckType, MVT::i32, ++/* 96769*/ OPC_MoveParent, ++/* 96770*/ OPC_MoveChild6, ++/* 96771*/ OPC_CheckInteger, 1, ++/* 96773*/ OPC_CheckType, MVT::i32, ++/* 96775*/ OPC_MoveParent, ++/* 96776*/ OPC_MoveChild7, ++/* 96777*/ OPC_CheckInteger, 1, ++/* 96779*/ OPC_CheckType, MVT::i32, ++/* 96781*/ OPC_MoveParent, ++/* 96782*/ OPC_MoveChild, 8, ++/* 96784*/ OPC_CheckInteger, 1, ++/* 96786*/ OPC_CheckType, MVT::i32, ++/* 96788*/ OPC_MoveParent, ++/* 96789*/ OPC_MoveChild, 9, ++/* 96791*/ OPC_CheckInteger, 1, ++/* 96793*/ OPC_CheckType, MVT::i32, ++/* 96795*/ OPC_MoveParent, ++/* 96796*/ OPC_MoveChild, 10, ++/* 96798*/ OPC_CheckInteger, 1, ++/* 96800*/ OPC_CheckType, MVT::i32, ++/* 96802*/ OPC_MoveParent, ++/* 96803*/ OPC_MoveChild, 11, ++/* 96805*/ OPC_CheckInteger, 1, ++/* 96807*/ OPC_CheckType, MVT::i32, ++/* 96809*/ OPC_MoveParent, ++/* 96810*/ OPC_MoveChild, 12, ++/* 96812*/ OPC_CheckInteger, 1, ++/* 96814*/ OPC_CheckType, MVT::i32, ++/* 96816*/ OPC_MoveParent, ++/* 96817*/ OPC_MoveChild, 13, ++/* 96819*/ OPC_CheckInteger, 1, ++/* 96821*/ OPC_CheckType, MVT::i32, ++/* 96823*/ OPC_MoveParent, ++/* 96824*/ OPC_MoveChild, 14, ++/* 96826*/ OPC_CheckInteger, 1, ++/* 96828*/ OPC_CheckType, MVT::i32, ++/* 96830*/ OPC_MoveParent, ++/* 96831*/ OPC_MoveChild, 15, ++/* 96833*/ OPC_CheckInteger, 1, ++/* 96835*/ OPC_CheckType, MVT::i32, ++/* 96837*/ OPC_MoveParent, ++/* 96838*/ OPC_MoveChild, 16, ++/* 96840*/ OPC_CheckInteger, 1, ++/* 96842*/ OPC_CheckType, MVT::i32, ++/* 96844*/ OPC_MoveParent, ++/* 96845*/ OPC_MoveChild, 17, ++/* 96847*/ OPC_CheckInteger, 1, ++/* 96849*/ OPC_CheckType, MVT::i32, ++/* 96851*/ OPC_MoveParent, ++/* 96852*/ OPC_MoveChild, 18, ++/* 96854*/ OPC_CheckInteger, 1, ++/* 96856*/ OPC_CheckType, MVT::i32, ++/* 96858*/ OPC_MoveParent, ++/* 96859*/ OPC_MoveChild, 19, ++/* 96861*/ OPC_CheckInteger, 1, ++/* 96863*/ OPC_CheckType, MVT::i32, ++/* 96865*/ OPC_MoveParent, ++/* 96866*/ OPC_MoveChild, 20, ++/* 96868*/ OPC_CheckInteger, 1, ++/* 96870*/ OPC_CheckType, MVT::i32, ++/* 96872*/ OPC_MoveParent, ++/* 96873*/ OPC_MoveChild, 21, ++/* 96875*/ OPC_CheckInteger, 1, ++/* 96877*/ OPC_CheckType, MVT::i32, ++/* 96879*/ OPC_MoveParent, ++/* 96880*/ OPC_MoveChild, 22, ++/* 96882*/ OPC_CheckInteger, 1, ++/* 96884*/ OPC_CheckType, MVT::i32, ++/* 96886*/ OPC_MoveParent, ++/* 96887*/ OPC_MoveChild, 23, ++/* 96889*/ OPC_CheckInteger, 1, ++/* 96891*/ OPC_CheckType, MVT::i32, ++/* 96893*/ OPC_MoveParent, ++/* 96894*/ OPC_MoveChild, 24, ++/* 96896*/ OPC_CheckInteger, 1, ++/* 96898*/ OPC_CheckType, MVT::i32, ++/* 96900*/ OPC_MoveParent, ++/* 96901*/ OPC_MoveChild, 25, ++/* 96903*/ OPC_CheckInteger, 1, ++/* 96905*/ OPC_CheckType, MVT::i32, ++/* 96907*/ OPC_MoveParent, ++/* 96908*/ OPC_MoveChild, 26, ++/* 96910*/ OPC_CheckInteger, 1, ++/* 96912*/ OPC_CheckType, MVT::i32, ++/* 96914*/ OPC_MoveParent, ++/* 96915*/ OPC_MoveChild, 27, ++/* 96917*/ OPC_CheckInteger, 1, ++/* 96919*/ OPC_CheckType, MVT::i32, ++/* 96921*/ OPC_MoveParent, ++/* 96922*/ OPC_MoveChild, 28, ++/* 96924*/ OPC_CheckInteger, 1, ++/* 96926*/ OPC_CheckType, MVT::i32, ++/* 96928*/ OPC_MoveParent, ++/* 96929*/ OPC_MoveChild, 29, ++/* 96931*/ OPC_CheckInteger, 1, ++/* 96933*/ OPC_CheckType, MVT::i32, ++/* 96935*/ OPC_MoveParent, ++/* 96936*/ OPC_MoveChild, 30, ++/* 96938*/ OPC_CheckInteger, 1, ++/* 96940*/ OPC_CheckType, MVT::i32, ++/* 96942*/ OPC_MoveParent, ++/* 96943*/ OPC_MoveChild, 31, ++/* 96945*/ OPC_CheckInteger, 1, ++/* 96947*/ OPC_CheckType, MVT::i32, ++/* 96949*/ OPC_MoveParent, ++/* 96950*/ OPC_MoveParent, ++/* 96951*/ OPC_RecordChild1, // #0 = $b ++/* 96952*/ OPC_MoveParent, ++/* 96953*/ OPC_RecordChild1, // #1 = $a ++/* 96954*/ OPC_MoveParent, ++/* 96955*/ OPC_MoveChild1, ++/* 96956*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/* 96959*/ OPC_MoveChild0, ++/* 96960*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/* 96963*/ OPC_Scope, 120|128,30/*3960*/, /*->100926*/ // 4 children in Scope ++/* 96966*/ OPC_MoveChild0, ++/* 96967*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/* 96970*/ OPC_Scope, 17|128,5/*657*/, /*->97630*/ // 6 children in Scope ++/* 96973*/ OPC_MoveChild0, ++/* 96974*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 96977*/ OPC_CheckChild0Integer, 1, ++/* 96979*/ OPC_CheckChild0Type, MVT::i32, ++/* 96981*/ OPC_CheckChild1Integer, 1, ++/* 96983*/ OPC_CheckChild1Type, MVT::i32, ++/* 96985*/ OPC_CheckChild2Integer, 1, ++/* 96987*/ OPC_CheckChild2Type, MVT::i32, ++/* 96989*/ OPC_CheckChild3Integer, 1, ++/* 96991*/ OPC_CheckChild3Type, MVT::i32, ++/* 96993*/ OPC_CheckChild4Integer, 1, ++/* 96995*/ OPC_CheckChild4Type, MVT::i32, ++/* 96997*/ OPC_MoveChild5, ++/* 96998*/ OPC_CheckInteger, 1, ++/* 97000*/ OPC_CheckType, MVT::i32, ++/* 97002*/ OPC_MoveParent, ++/* 97003*/ OPC_MoveChild6, ++/* 97004*/ OPC_CheckInteger, 1, ++/* 97006*/ OPC_CheckType, MVT::i32, ++/* 97008*/ OPC_MoveParent, ++/* 97009*/ OPC_MoveChild7, ++/* 97010*/ OPC_CheckInteger, 1, ++/* 97012*/ OPC_CheckType, MVT::i32, ++/* 97014*/ OPC_MoveParent, ++/* 97015*/ OPC_MoveChild, 8, ++/* 97017*/ OPC_CheckInteger, 1, ++/* 97019*/ OPC_CheckType, MVT::i32, ++/* 97021*/ OPC_MoveParent, ++/* 97022*/ OPC_MoveChild, 9, ++/* 97024*/ OPC_CheckInteger, 1, ++/* 97026*/ OPC_CheckType, MVT::i32, ++/* 97028*/ OPC_MoveParent, ++/* 97029*/ OPC_MoveChild, 10, ++/* 97031*/ OPC_CheckInteger, 1, ++/* 97033*/ OPC_CheckType, MVT::i32, ++/* 97035*/ OPC_MoveParent, ++/* 97036*/ OPC_MoveChild, 11, ++/* 97038*/ OPC_CheckInteger, 1, ++/* 97040*/ OPC_CheckType, MVT::i32, ++/* 97042*/ OPC_MoveParent, ++/* 97043*/ OPC_MoveChild, 12, ++/* 97045*/ OPC_CheckInteger, 1, ++/* 97047*/ OPC_CheckType, MVT::i32, ++/* 97049*/ OPC_MoveParent, ++/* 97050*/ OPC_MoveChild, 13, ++/* 97052*/ OPC_CheckInteger, 1, ++/* 97054*/ OPC_CheckType, MVT::i32, ++/* 97056*/ OPC_MoveParent, ++/* 97057*/ OPC_MoveChild, 14, ++/* 97059*/ OPC_CheckInteger, 1, ++/* 97061*/ OPC_CheckType, MVT::i32, ++/* 97063*/ OPC_MoveParent, ++/* 97064*/ OPC_MoveChild, 15, ++/* 97066*/ OPC_CheckInteger, 1, ++/* 97068*/ OPC_CheckType, MVT::i32, ++/* 97070*/ OPC_MoveParent, ++/* 97071*/ OPC_MoveChild, 16, ++/* 97073*/ OPC_CheckInteger, 1, ++/* 97075*/ OPC_CheckType, MVT::i32, ++/* 97077*/ OPC_MoveParent, ++/* 97078*/ OPC_MoveChild, 17, ++/* 97080*/ OPC_CheckInteger, 1, ++/* 97082*/ OPC_CheckType, MVT::i32, ++/* 97084*/ OPC_MoveParent, ++/* 97085*/ OPC_MoveChild, 18, ++/* 97087*/ OPC_CheckInteger, 1, ++/* 97089*/ OPC_CheckType, MVT::i32, ++/* 97091*/ OPC_MoveParent, ++/* 97092*/ OPC_MoveChild, 19, ++/* 97094*/ OPC_CheckInteger, 1, ++/* 97096*/ OPC_CheckType, MVT::i32, ++/* 97098*/ OPC_MoveParent, ++/* 97099*/ OPC_MoveChild, 20, ++/* 97101*/ OPC_CheckInteger, 1, ++/* 97103*/ OPC_CheckType, MVT::i32, ++/* 97105*/ OPC_MoveParent, ++/* 97106*/ OPC_MoveChild, 21, ++/* 97108*/ OPC_CheckInteger, 1, ++/* 97110*/ OPC_CheckType, MVT::i32, ++/* 97112*/ OPC_MoveParent, ++/* 97113*/ OPC_MoveChild, 22, ++/* 97115*/ OPC_CheckInteger, 1, ++/* 97117*/ OPC_CheckType, MVT::i32, ++/* 97119*/ OPC_MoveParent, ++/* 97120*/ OPC_MoveChild, 23, ++/* 97122*/ OPC_CheckInteger, 1, ++/* 97124*/ OPC_CheckType, MVT::i32, ++/* 97126*/ OPC_MoveParent, ++/* 97127*/ OPC_MoveChild, 24, ++/* 97129*/ OPC_CheckInteger, 1, ++/* 97131*/ OPC_CheckType, MVT::i32, ++/* 97133*/ OPC_MoveParent, ++/* 97134*/ OPC_MoveChild, 25, ++/* 97136*/ OPC_CheckInteger, 1, ++/* 97138*/ OPC_CheckType, MVT::i32, ++/* 97140*/ OPC_MoveParent, ++/* 97141*/ OPC_MoveChild, 26, ++/* 97143*/ OPC_CheckInteger, 1, ++/* 97145*/ OPC_CheckType, MVT::i32, ++/* 97147*/ OPC_MoveParent, ++/* 97148*/ OPC_MoveChild, 27, ++/* 97150*/ OPC_CheckInteger, 1, ++/* 97152*/ OPC_CheckType, MVT::i32, ++/* 97154*/ OPC_MoveParent, ++/* 97155*/ OPC_MoveChild, 28, ++/* 97157*/ OPC_CheckInteger, 1, ++/* 97159*/ OPC_CheckType, MVT::i32, ++/* 97161*/ OPC_MoveParent, ++/* 97162*/ OPC_MoveChild, 29, ++/* 97164*/ OPC_CheckInteger, 1, ++/* 97166*/ OPC_CheckType, MVT::i32, ++/* 97168*/ OPC_MoveParent, ++/* 97169*/ OPC_MoveChild, 30, ++/* 97171*/ OPC_CheckInteger, 1, ++/* 97173*/ OPC_CheckType, MVT::i32, ++/* 97175*/ OPC_MoveParent, ++/* 97176*/ OPC_MoveChild, 31, ++/* 97178*/ OPC_CheckInteger, 1, ++/* 97180*/ OPC_CheckType, MVT::i32, ++/* 97182*/ OPC_MoveParent, ++/* 97183*/ OPC_MoveParent, ++/* 97184*/ OPC_CheckChild1Same, 1, ++/* 97186*/ OPC_MoveParent, ++/* 97187*/ OPC_CheckChild1Same, 0, ++/* 97189*/ OPC_MoveParent, ++/* 97190*/ OPC_MoveChild1, ++/* 97191*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 97194*/ OPC_CheckChild0Integer, 7, ++/* 97196*/ OPC_CheckChild0Type, MVT::i32, ++/* 97198*/ OPC_CheckChild1Integer, 7, ++/* 97200*/ OPC_CheckChild1Type, MVT::i32, ++/* 97202*/ OPC_CheckChild2Integer, 7, ++/* 97204*/ OPC_CheckChild2Type, MVT::i32, ++/* 97206*/ OPC_CheckChild3Integer, 7, ++/* 97208*/ OPC_CheckChild3Type, MVT::i32, ++/* 97210*/ OPC_CheckChild4Integer, 7, ++/* 97212*/ OPC_CheckChild4Type, MVT::i32, ++/* 97214*/ OPC_MoveChild5, ++/* 97215*/ OPC_CheckInteger, 7, ++/* 97217*/ OPC_CheckType, MVT::i32, ++/* 97219*/ OPC_MoveParent, ++/* 97220*/ OPC_MoveChild6, ++/* 97221*/ OPC_CheckInteger, 7, ++/* 97223*/ OPC_CheckType, MVT::i32, ++/* 97225*/ OPC_MoveParent, ++/* 97226*/ OPC_MoveChild7, ++/* 97227*/ OPC_CheckInteger, 7, ++/* 97229*/ OPC_CheckType, MVT::i32, ++/* 97231*/ OPC_MoveParent, ++/* 97232*/ OPC_MoveChild, 8, ++/* 97234*/ OPC_CheckInteger, 7, ++/* 97236*/ OPC_CheckType, MVT::i32, ++/* 97238*/ OPC_MoveParent, ++/* 97239*/ OPC_MoveChild, 9, ++/* 97241*/ OPC_CheckInteger, 7, ++/* 97243*/ OPC_CheckType, MVT::i32, ++/* 97245*/ OPC_MoveParent, ++/* 97246*/ OPC_MoveChild, 10, ++/* 97248*/ OPC_CheckInteger, 7, ++/* 97250*/ OPC_CheckType, MVT::i32, ++/* 97252*/ OPC_MoveParent, ++/* 97253*/ OPC_MoveChild, 11, ++/* 97255*/ OPC_CheckInteger, 7, ++/* 97257*/ OPC_CheckType, MVT::i32, ++/* 97259*/ OPC_MoveParent, ++/* 97260*/ OPC_MoveChild, 12, ++/* 97262*/ OPC_CheckInteger, 7, ++/* 97264*/ OPC_CheckType, MVT::i32, ++/* 97266*/ OPC_MoveParent, ++/* 97267*/ OPC_MoveChild, 13, ++/* 97269*/ OPC_CheckInteger, 7, ++/* 97271*/ OPC_CheckType, MVT::i32, ++/* 97273*/ OPC_MoveParent, ++/* 97274*/ OPC_MoveChild, 14, ++/* 97276*/ OPC_CheckInteger, 7, ++/* 97278*/ OPC_CheckType, MVT::i32, ++/* 97280*/ OPC_MoveParent, ++/* 97281*/ OPC_MoveChild, 15, ++/* 97283*/ OPC_CheckInteger, 7, ++/* 97285*/ OPC_CheckType, MVT::i32, ++/* 97287*/ OPC_MoveParent, ++/* 97288*/ OPC_MoveChild, 16, ++/* 97290*/ OPC_CheckInteger, 7, ++/* 97292*/ OPC_CheckType, MVT::i32, ++/* 97294*/ OPC_MoveParent, ++/* 97295*/ OPC_MoveChild, 17, ++/* 97297*/ OPC_CheckInteger, 7, ++/* 97299*/ OPC_CheckType, MVT::i32, ++/* 97301*/ OPC_MoveParent, ++/* 97302*/ OPC_MoveChild, 18, ++/* 97304*/ OPC_CheckInteger, 7, ++/* 97306*/ OPC_CheckType, MVT::i32, ++/* 97308*/ OPC_MoveParent, ++/* 97309*/ OPC_MoveChild, 19, ++/* 97311*/ OPC_CheckInteger, 7, ++/* 97313*/ OPC_CheckType, MVT::i32, ++/* 97315*/ OPC_MoveParent, ++/* 97316*/ OPC_MoveChild, 20, ++/* 97318*/ OPC_CheckInteger, 7, ++/* 97320*/ OPC_CheckType, MVT::i32, ++/* 97322*/ OPC_MoveParent, ++/* 97323*/ OPC_MoveChild, 21, ++/* 97325*/ OPC_CheckInteger, 7, ++/* 97327*/ OPC_CheckType, MVT::i32, ++/* 97329*/ OPC_MoveParent, ++/* 97330*/ OPC_MoveChild, 22, ++/* 97332*/ OPC_CheckInteger, 7, ++/* 97334*/ OPC_CheckType, MVT::i32, ++/* 97336*/ OPC_MoveParent, ++/* 97337*/ OPC_MoveChild, 23, ++/* 97339*/ OPC_CheckInteger, 7, ++/* 97341*/ OPC_CheckType, MVT::i32, ++/* 97343*/ OPC_MoveParent, ++/* 97344*/ OPC_MoveChild, 24, ++/* 97346*/ OPC_CheckInteger, 7, ++/* 97348*/ OPC_CheckType, MVT::i32, ++/* 97350*/ OPC_MoveParent, ++/* 97351*/ OPC_MoveChild, 25, ++/* 97353*/ OPC_CheckInteger, 7, ++/* 97355*/ OPC_CheckType, MVT::i32, ++/* 97357*/ OPC_MoveParent, ++/* 97358*/ OPC_MoveChild, 26, ++/* 97360*/ OPC_CheckInteger, 7, ++/* 97362*/ OPC_CheckType, MVT::i32, ++/* 97364*/ OPC_MoveParent, ++/* 97365*/ OPC_MoveChild, 27, ++/* 97367*/ OPC_CheckInteger, 7, ++/* 97369*/ OPC_CheckType, MVT::i32, ++/* 97371*/ OPC_MoveParent, ++/* 97372*/ OPC_MoveChild, 28, ++/* 97374*/ OPC_CheckInteger, 7, ++/* 97376*/ OPC_CheckType, MVT::i32, ++/* 97378*/ OPC_MoveParent, ++/* 97379*/ OPC_MoveChild, 29, ++/* 97381*/ OPC_CheckInteger, 7, ++/* 97383*/ OPC_CheckType, MVT::i32, ++/* 97385*/ OPC_MoveParent, ++/* 97386*/ OPC_MoveChild, 30, ++/* 97388*/ OPC_CheckInteger, 7, ++/* 97390*/ OPC_CheckType, MVT::i32, ++/* 97392*/ OPC_MoveParent, ++/* 97393*/ OPC_MoveChild, 31, ++/* 97395*/ OPC_CheckInteger, 7, ++/* 97397*/ OPC_CheckType, MVT::i32, ++/* 97399*/ OPC_MoveParent, ++/* 97400*/ OPC_CheckType, MVT::v32i8, ++/* 97402*/ OPC_MoveParent, ++/* 97403*/ OPC_MoveParent, ++/* 97404*/ OPC_MoveParent, ++/* 97405*/ OPC_MoveChild1, ++/* 97406*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 97409*/ OPC_CheckChild0Integer, 1, ++/* 97411*/ OPC_CheckChild0Type, MVT::i32, ++/* 97413*/ OPC_CheckChild1Integer, 1, ++/* 97415*/ OPC_CheckChild1Type, MVT::i32, ++/* 97417*/ OPC_CheckChild2Integer, 1, ++/* 97419*/ OPC_CheckChild2Type, MVT::i32, ++/* 97421*/ OPC_CheckChild3Integer, 1, ++/* 97423*/ OPC_CheckChild3Type, MVT::i32, ++/* 97425*/ OPC_CheckChild4Integer, 1, ++/* 97427*/ OPC_CheckChild4Type, MVT::i32, ++/* 97429*/ OPC_MoveChild5, ++/* 97430*/ OPC_CheckInteger, 1, ++/* 97432*/ OPC_CheckType, MVT::i32, ++/* 97434*/ OPC_MoveParent, ++/* 97435*/ OPC_MoveChild6, ++/* 97436*/ OPC_CheckInteger, 1, ++/* 97438*/ OPC_CheckType, MVT::i32, ++/* 97440*/ OPC_MoveParent, ++/* 97441*/ OPC_MoveChild7, ++/* 97442*/ OPC_CheckInteger, 1, ++/* 97444*/ OPC_CheckType, MVT::i32, ++/* 97446*/ OPC_MoveParent, ++/* 97447*/ OPC_MoveChild, 8, ++/* 97449*/ OPC_CheckInteger, 1, ++/* 97451*/ OPC_CheckType, MVT::i32, ++/* 97453*/ OPC_MoveParent, ++/* 97454*/ OPC_MoveChild, 9, ++/* 97456*/ OPC_CheckInteger, 1, ++/* 97458*/ OPC_CheckType, MVT::i32, ++/* 97460*/ OPC_MoveParent, ++/* 97461*/ OPC_MoveChild, 10, ++/* 97463*/ OPC_CheckInteger, 1, ++/* 97465*/ OPC_CheckType, MVT::i32, ++/* 97467*/ OPC_MoveParent, ++/* 97468*/ OPC_MoveChild, 11, ++/* 97470*/ OPC_CheckInteger, 1, ++/* 97472*/ OPC_CheckType, MVT::i32, ++/* 97474*/ OPC_MoveParent, ++/* 97475*/ OPC_MoveChild, 12, ++/* 97477*/ OPC_CheckInteger, 1, ++/* 97479*/ OPC_CheckType, MVT::i32, ++/* 97481*/ OPC_MoveParent, ++/* 97482*/ OPC_MoveChild, 13, ++/* 97484*/ OPC_CheckInteger, 1, ++/* 97486*/ OPC_CheckType, MVT::i32, ++/* 97488*/ OPC_MoveParent, ++/* 97489*/ OPC_MoveChild, 14, ++/* 97491*/ OPC_CheckInteger, 1, ++/* 97493*/ OPC_CheckType, MVT::i32, ++/* 97495*/ OPC_MoveParent, ++/* 97496*/ OPC_MoveChild, 15, ++/* 97498*/ OPC_CheckInteger, 1, ++/* 97500*/ OPC_CheckType, MVT::i32, ++/* 97502*/ OPC_MoveParent, ++/* 97503*/ OPC_MoveChild, 16, ++/* 97505*/ OPC_CheckInteger, 1, ++/* 97507*/ OPC_CheckType, MVT::i32, ++/* 97509*/ OPC_MoveParent, ++/* 97510*/ OPC_MoveChild, 17, ++/* 97512*/ OPC_CheckInteger, 1, ++/* 97514*/ OPC_CheckType, MVT::i32, ++/* 97516*/ OPC_MoveParent, ++/* 97517*/ OPC_MoveChild, 18, ++/* 97519*/ OPC_CheckInteger, 1, ++/* 97521*/ OPC_CheckType, MVT::i32, ++/* 97523*/ OPC_MoveParent, ++/* 97524*/ OPC_MoveChild, 19, ++/* 97526*/ OPC_CheckInteger, 1, ++/* 97528*/ OPC_CheckType, MVT::i32, ++/* 97530*/ OPC_MoveParent, ++/* 97531*/ OPC_MoveChild, 20, ++/* 97533*/ OPC_CheckInteger, 1, ++/* 97535*/ OPC_CheckType, MVT::i32, ++/* 97537*/ OPC_MoveParent, ++/* 97538*/ OPC_MoveChild, 21, ++/* 97540*/ OPC_CheckInteger, 1, ++/* 97542*/ OPC_CheckType, MVT::i32, ++/* 97544*/ OPC_MoveParent, ++/* 97545*/ OPC_MoveChild, 22, ++/* 97547*/ OPC_CheckInteger, 1, ++/* 97549*/ OPC_CheckType, MVT::i32, ++/* 97551*/ OPC_MoveParent, ++/* 97552*/ OPC_MoveChild, 23, ++/* 97554*/ OPC_CheckInteger, 1, ++/* 97556*/ OPC_CheckType, MVT::i32, ++/* 97558*/ OPC_MoveParent, ++/* 97559*/ OPC_MoveChild, 24, ++/* 97561*/ OPC_CheckInteger, 1, ++/* 97563*/ OPC_CheckType, MVT::i32, ++/* 97565*/ OPC_MoveParent, ++/* 97566*/ OPC_MoveChild, 25, ++/* 97568*/ OPC_CheckInteger, 1, ++/* 97570*/ OPC_CheckType, MVT::i32, ++/* 97572*/ OPC_MoveParent, ++/* 97573*/ OPC_MoveChild, 26, ++/* 97575*/ OPC_CheckInteger, 1, ++/* 97577*/ OPC_CheckType, MVT::i32, ++/* 97579*/ OPC_MoveParent, ++/* 97580*/ OPC_MoveChild, 27, ++/* 97582*/ OPC_CheckInteger, 1, ++/* 97584*/ OPC_CheckType, MVT::i32, ++/* 97586*/ OPC_MoveParent, ++/* 97587*/ OPC_MoveChild, 28, ++/* 97589*/ OPC_CheckInteger, 1, ++/* 97591*/ OPC_CheckType, MVT::i32, ++/* 97593*/ OPC_MoveParent, ++/* 97594*/ OPC_MoveChild, 29, ++/* 97596*/ OPC_CheckInteger, 1, ++/* 97598*/ OPC_CheckType, MVT::i32, ++/* 97600*/ OPC_MoveParent, ++/* 97601*/ OPC_MoveChild, 30, ++/* 97603*/ OPC_CheckInteger, 1, ++/* 97605*/ OPC_CheckType, MVT::i32, ++/* 97607*/ OPC_MoveParent, ++/* 97608*/ OPC_MoveChild, 31, ++/* 97610*/ OPC_CheckInteger, 1, ++/* 97612*/ OPC_CheckType, MVT::i32, ++/* 97614*/ OPC_MoveParent, ++/* 97615*/ OPC_CheckType, MVT::v32i8, ++/* 97617*/ OPC_MoveParent, ++/* 97618*/ OPC_CheckType, MVT::v32i8, ++/* 97620*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 97622*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b), LASX256B:{ *:[v32i8] }:$a), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a), LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/* 97630*/ /*Scope*/ 17|128,5/*657*/, /*->98289*/ ++/* 97632*/ OPC_CheckChild0Same, 1, ++/* 97634*/ OPC_MoveChild1, ++/* 97635*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 97638*/ OPC_CheckChild0Integer, 1, ++/* 97640*/ OPC_CheckChild0Type, MVT::i32, ++/* 97642*/ OPC_CheckChild1Integer, 1, ++/* 97644*/ OPC_CheckChild1Type, MVT::i32, ++/* 97646*/ OPC_CheckChild2Integer, 1, ++/* 97648*/ OPC_CheckChild2Type, MVT::i32, ++/* 97650*/ OPC_CheckChild3Integer, 1, ++/* 97652*/ OPC_CheckChild3Type, MVT::i32, ++/* 97654*/ OPC_CheckChild4Integer, 1, ++/* 97656*/ OPC_CheckChild4Type, MVT::i32, ++/* 97658*/ OPC_MoveChild5, ++/* 97659*/ OPC_CheckInteger, 1, ++/* 97661*/ OPC_CheckType, MVT::i32, ++/* 97663*/ OPC_MoveParent, ++/* 97664*/ OPC_MoveChild6, ++/* 97665*/ OPC_CheckInteger, 1, ++/* 97667*/ OPC_CheckType, MVT::i32, ++/* 97669*/ OPC_MoveParent, ++/* 97670*/ OPC_MoveChild7, ++/* 97671*/ OPC_CheckInteger, 1, ++/* 97673*/ OPC_CheckType, MVT::i32, ++/* 97675*/ OPC_MoveParent, ++/* 97676*/ OPC_MoveChild, 8, ++/* 97678*/ OPC_CheckInteger, 1, ++/* 97680*/ OPC_CheckType, MVT::i32, ++/* 97682*/ OPC_MoveParent, ++/* 97683*/ OPC_MoveChild, 9, ++/* 97685*/ OPC_CheckInteger, 1, ++/* 97687*/ OPC_CheckType, MVT::i32, ++/* 97689*/ OPC_MoveParent, ++/* 97690*/ OPC_MoveChild, 10, ++/* 97692*/ OPC_CheckInteger, 1, ++/* 97694*/ OPC_CheckType, MVT::i32, ++/* 97696*/ OPC_MoveParent, ++/* 97697*/ OPC_MoveChild, 11, ++/* 97699*/ OPC_CheckInteger, 1, ++/* 97701*/ OPC_CheckType, MVT::i32, ++/* 97703*/ OPC_MoveParent, ++/* 97704*/ OPC_MoveChild, 12, ++/* 97706*/ OPC_CheckInteger, 1, ++/* 97708*/ OPC_CheckType, MVT::i32, ++/* 97710*/ OPC_MoveParent, ++/* 97711*/ OPC_MoveChild, 13, ++/* 97713*/ OPC_CheckInteger, 1, ++/* 97715*/ OPC_CheckType, MVT::i32, ++/* 97717*/ OPC_MoveParent, ++/* 97718*/ OPC_MoveChild, 14, ++/* 97720*/ OPC_CheckInteger, 1, ++/* 97722*/ OPC_CheckType, MVT::i32, ++/* 97724*/ OPC_MoveParent, ++/* 97725*/ OPC_MoveChild, 15, ++/* 97727*/ OPC_CheckInteger, 1, ++/* 97729*/ OPC_CheckType, MVT::i32, ++/* 97731*/ OPC_MoveParent, ++/* 97732*/ OPC_MoveChild, 16, ++/* 97734*/ OPC_CheckInteger, 1, ++/* 97736*/ OPC_CheckType, MVT::i32, ++/* 97738*/ OPC_MoveParent, ++/* 97739*/ OPC_MoveChild, 17, ++/* 97741*/ OPC_CheckInteger, 1, ++/* 97743*/ OPC_CheckType, MVT::i32, ++/* 97745*/ OPC_MoveParent, ++/* 97746*/ OPC_MoveChild, 18, ++/* 97748*/ OPC_CheckInteger, 1, ++/* 97750*/ OPC_CheckType, MVT::i32, ++/* 97752*/ OPC_MoveParent, ++/* 97753*/ OPC_MoveChild, 19, ++/* 97755*/ OPC_CheckInteger, 1, ++/* 97757*/ OPC_CheckType, MVT::i32, ++/* 97759*/ OPC_MoveParent, ++/* 97760*/ OPC_MoveChild, 20, ++/* 97762*/ OPC_CheckInteger, 1, ++/* 97764*/ OPC_CheckType, MVT::i32, ++/* 97766*/ OPC_MoveParent, ++/* 97767*/ OPC_MoveChild, 21, ++/* 97769*/ OPC_CheckInteger, 1, ++/* 97771*/ OPC_CheckType, MVT::i32, ++/* 97773*/ OPC_MoveParent, ++/* 97774*/ OPC_MoveChild, 22, ++/* 97776*/ OPC_CheckInteger, 1, ++/* 97778*/ OPC_CheckType, MVT::i32, ++/* 97780*/ OPC_MoveParent, ++/* 97781*/ OPC_MoveChild, 23, ++/* 97783*/ OPC_CheckInteger, 1, ++/* 97785*/ OPC_CheckType, MVT::i32, ++/* 97787*/ OPC_MoveParent, ++/* 97788*/ OPC_MoveChild, 24, ++/* 97790*/ OPC_CheckInteger, 1, ++/* 97792*/ OPC_CheckType, MVT::i32, ++/* 97794*/ OPC_MoveParent, ++/* 97795*/ OPC_MoveChild, 25, ++/* 97797*/ OPC_CheckInteger, 1, ++/* 97799*/ OPC_CheckType, MVT::i32, ++/* 97801*/ OPC_MoveParent, ++/* 97802*/ OPC_MoveChild, 26, ++/* 97804*/ OPC_CheckInteger, 1, ++/* 97806*/ OPC_CheckType, MVT::i32, ++/* 97808*/ OPC_MoveParent, ++/* 97809*/ OPC_MoveChild, 27, ++/* 97811*/ OPC_CheckInteger, 1, ++/* 97813*/ OPC_CheckType, MVT::i32, ++/* 97815*/ OPC_MoveParent, ++/* 97816*/ OPC_MoveChild, 28, ++/* 97818*/ OPC_CheckInteger, 1, ++/* 97820*/ OPC_CheckType, MVT::i32, ++/* 97822*/ OPC_MoveParent, ++/* 97823*/ OPC_MoveChild, 29, ++/* 97825*/ OPC_CheckInteger, 1, ++/* 97827*/ OPC_CheckType, MVT::i32, ++/* 97829*/ OPC_MoveParent, ++/* 97830*/ OPC_MoveChild, 30, ++/* 97832*/ OPC_CheckInteger, 1, ++/* 97834*/ OPC_CheckType, MVT::i32, ++/* 97836*/ OPC_MoveParent, ++/* 97837*/ OPC_MoveChild, 31, ++/* 97839*/ OPC_CheckInteger, 1, ++/* 97841*/ OPC_CheckType, MVT::i32, ++/* 97843*/ OPC_MoveParent, ++/* 97844*/ OPC_MoveParent, ++/* 97845*/ OPC_MoveParent, ++/* 97846*/ OPC_CheckChild1Same, 0, ++/* 97848*/ OPC_MoveParent, ++/* 97849*/ OPC_MoveChild1, ++/* 97850*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 97853*/ OPC_CheckChild0Integer, 7, ++/* 97855*/ OPC_CheckChild0Type, MVT::i32, ++/* 97857*/ OPC_CheckChild1Integer, 7, ++/* 97859*/ OPC_CheckChild1Type, MVT::i32, ++/* 97861*/ OPC_CheckChild2Integer, 7, ++/* 97863*/ OPC_CheckChild2Type, MVT::i32, ++/* 97865*/ OPC_CheckChild3Integer, 7, ++/* 97867*/ OPC_CheckChild3Type, MVT::i32, ++/* 97869*/ OPC_CheckChild4Integer, 7, ++/* 97871*/ OPC_CheckChild4Type, MVT::i32, ++/* 97873*/ OPC_MoveChild5, ++/* 97874*/ OPC_CheckInteger, 7, ++/* 97876*/ OPC_CheckType, MVT::i32, ++/* 97878*/ OPC_MoveParent, ++/* 97879*/ OPC_MoveChild6, ++/* 97880*/ OPC_CheckInteger, 7, ++/* 97882*/ OPC_CheckType, MVT::i32, ++/* 97884*/ OPC_MoveParent, ++/* 97885*/ OPC_MoveChild7, ++/* 97886*/ OPC_CheckInteger, 7, ++/* 97888*/ OPC_CheckType, MVT::i32, ++/* 97890*/ OPC_MoveParent, ++/* 97891*/ OPC_MoveChild, 8, ++/* 97893*/ OPC_CheckInteger, 7, ++/* 97895*/ OPC_CheckType, MVT::i32, ++/* 97897*/ OPC_MoveParent, ++/* 97898*/ OPC_MoveChild, 9, ++/* 97900*/ OPC_CheckInteger, 7, ++/* 97902*/ OPC_CheckType, MVT::i32, ++/* 97904*/ OPC_MoveParent, ++/* 97905*/ OPC_MoveChild, 10, ++/* 97907*/ OPC_CheckInteger, 7, ++/* 97909*/ OPC_CheckType, MVT::i32, ++/* 97911*/ OPC_MoveParent, ++/* 97912*/ OPC_MoveChild, 11, ++/* 97914*/ OPC_CheckInteger, 7, ++/* 97916*/ OPC_CheckType, MVT::i32, ++/* 97918*/ OPC_MoveParent, ++/* 97919*/ OPC_MoveChild, 12, ++/* 97921*/ OPC_CheckInteger, 7, ++/* 97923*/ OPC_CheckType, MVT::i32, ++/* 97925*/ OPC_MoveParent, ++/* 97926*/ OPC_MoveChild, 13, ++/* 97928*/ OPC_CheckInteger, 7, ++/* 97930*/ OPC_CheckType, MVT::i32, ++/* 97932*/ OPC_MoveParent, ++/* 97933*/ OPC_MoveChild, 14, ++/* 97935*/ OPC_CheckInteger, 7, ++/* 97937*/ OPC_CheckType, MVT::i32, ++/* 97939*/ OPC_MoveParent, ++/* 97940*/ OPC_MoveChild, 15, ++/* 97942*/ OPC_CheckInteger, 7, ++/* 97944*/ OPC_CheckType, MVT::i32, ++/* 97946*/ OPC_MoveParent, ++/* 97947*/ OPC_MoveChild, 16, ++/* 97949*/ OPC_CheckInteger, 7, ++/* 97951*/ OPC_CheckType, MVT::i32, ++/* 97953*/ OPC_MoveParent, ++/* 97954*/ OPC_MoveChild, 17, ++/* 97956*/ OPC_CheckInteger, 7, ++/* 97958*/ OPC_CheckType, MVT::i32, ++/* 97960*/ OPC_MoveParent, ++/* 97961*/ OPC_MoveChild, 18, ++/* 97963*/ OPC_CheckInteger, 7, ++/* 97965*/ OPC_CheckType, MVT::i32, ++/* 97967*/ OPC_MoveParent, ++/* 97968*/ OPC_MoveChild, 19, ++/* 97970*/ OPC_CheckInteger, 7, ++/* 97972*/ OPC_CheckType, MVT::i32, ++/* 97974*/ OPC_MoveParent, ++/* 97975*/ OPC_MoveChild, 20, ++/* 97977*/ OPC_CheckInteger, 7, ++/* 97979*/ OPC_CheckType, MVT::i32, ++/* 97981*/ OPC_MoveParent, ++/* 97982*/ OPC_MoveChild, 21, ++/* 97984*/ OPC_CheckInteger, 7, ++/* 97986*/ OPC_CheckType, MVT::i32, ++/* 97988*/ OPC_MoveParent, ++/* 97989*/ OPC_MoveChild, 22, ++/* 97991*/ OPC_CheckInteger, 7, ++/* 97993*/ OPC_CheckType, MVT::i32, ++/* 97995*/ OPC_MoveParent, ++/* 97996*/ OPC_MoveChild, 23, ++/* 97998*/ OPC_CheckInteger, 7, ++/* 98000*/ OPC_CheckType, MVT::i32, ++/* 98002*/ OPC_MoveParent, ++/* 98003*/ OPC_MoveChild, 24, ++/* 98005*/ OPC_CheckInteger, 7, ++/* 98007*/ OPC_CheckType, MVT::i32, ++/* 98009*/ OPC_MoveParent, ++/* 98010*/ OPC_MoveChild, 25, ++/* 98012*/ OPC_CheckInteger, 7, ++/* 98014*/ OPC_CheckType, MVT::i32, ++/* 98016*/ OPC_MoveParent, ++/* 98017*/ OPC_MoveChild, 26, ++/* 98019*/ OPC_CheckInteger, 7, ++/* 98021*/ OPC_CheckType, MVT::i32, ++/* 98023*/ OPC_MoveParent, ++/* 98024*/ OPC_MoveChild, 27, ++/* 98026*/ OPC_CheckInteger, 7, ++/* 98028*/ OPC_CheckType, MVT::i32, ++/* 98030*/ OPC_MoveParent, ++/* 98031*/ OPC_MoveChild, 28, ++/* 98033*/ OPC_CheckInteger, 7, ++/* 98035*/ OPC_CheckType, MVT::i32, ++/* 98037*/ OPC_MoveParent, ++/* 98038*/ OPC_MoveChild, 29, ++/* 98040*/ OPC_CheckInteger, 7, ++/* 98042*/ OPC_CheckType, MVT::i32, ++/* 98044*/ OPC_MoveParent, ++/* 98045*/ OPC_MoveChild, 30, ++/* 98047*/ OPC_CheckInteger, 7, ++/* 98049*/ OPC_CheckType, MVT::i32, ++/* 98051*/ OPC_MoveParent, ++/* 98052*/ OPC_MoveChild, 31, ++/* 98054*/ OPC_CheckInteger, 7, ++/* 98056*/ OPC_CheckType, MVT::i32, ++/* 98058*/ OPC_MoveParent, ++/* 98059*/ OPC_CheckType, MVT::v32i8, ++/* 98061*/ OPC_MoveParent, ++/* 98062*/ OPC_MoveParent, ++/* 98063*/ OPC_MoveParent, ++/* 98064*/ OPC_MoveChild1, ++/* 98065*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 98068*/ OPC_CheckChild0Integer, 1, ++/* 98070*/ OPC_CheckChild0Type, MVT::i32, ++/* 98072*/ OPC_CheckChild1Integer, 1, ++/* 98074*/ OPC_CheckChild1Type, MVT::i32, ++/* 98076*/ OPC_CheckChild2Integer, 1, ++/* 98078*/ OPC_CheckChild2Type, MVT::i32, ++/* 98080*/ OPC_CheckChild3Integer, 1, ++/* 98082*/ OPC_CheckChild3Type, MVT::i32, ++/* 98084*/ OPC_CheckChild4Integer, 1, ++/* 98086*/ OPC_CheckChild4Type, MVT::i32, ++/* 98088*/ OPC_MoveChild5, ++/* 98089*/ OPC_CheckInteger, 1, ++/* 98091*/ OPC_CheckType, MVT::i32, ++/* 98093*/ OPC_MoveParent, ++/* 98094*/ OPC_MoveChild6, ++/* 98095*/ OPC_CheckInteger, 1, ++/* 98097*/ OPC_CheckType, MVT::i32, ++/* 98099*/ OPC_MoveParent, ++/* 98100*/ OPC_MoveChild7, ++/* 98101*/ OPC_CheckInteger, 1, ++/* 98103*/ OPC_CheckType, MVT::i32, ++/* 98105*/ OPC_MoveParent, ++/* 98106*/ OPC_MoveChild, 8, ++/* 98108*/ OPC_CheckInteger, 1, ++/* 98110*/ OPC_CheckType, MVT::i32, ++/* 98112*/ OPC_MoveParent, ++/* 98113*/ OPC_MoveChild, 9, ++/* 98115*/ OPC_CheckInteger, 1, ++/* 98117*/ OPC_CheckType, MVT::i32, ++/* 98119*/ OPC_MoveParent, ++/* 98120*/ OPC_MoveChild, 10, ++/* 98122*/ OPC_CheckInteger, 1, ++/* 98124*/ OPC_CheckType, MVT::i32, ++/* 98126*/ OPC_MoveParent, ++/* 98127*/ OPC_MoveChild, 11, ++/* 98129*/ OPC_CheckInteger, 1, ++/* 98131*/ OPC_CheckType, MVT::i32, ++/* 98133*/ OPC_MoveParent, ++/* 98134*/ OPC_MoveChild, 12, ++/* 98136*/ OPC_CheckInteger, 1, ++/* 98138*/ OPC_CheckType, MVT::i32, ++/* 98140*/ OPC_MoveParent, ++/* 98141*/ OPC_MoveChild, 13, ++/* 98143*/ OPC_CheckInteger, 1, ++/* 98145*/ OPC_CheckType, MVT::i32, ++/* 98147*/ OPC_MoveParent, ++/* 98148*/ OPC_MoveChild, 14, ++/* 98150*/ OPC_CheckInteger, 1, ++/* 98152*/ OPC_CheckType, MVT::i32, ++/* 98154*/ OPC_MoveParent, ++/* 98155*/ OPC_MoveChild, 15, ++/* 98157*/ OPC_CheckInteger, 1, ++/* 98159*/ OPC_CheckType, MVT::i32, ++/* 98161*/ OPC_MoveParent, ++/* 98162*/ OPC_MoveChild, 16, ++/* 98164*/ OPC_CheckInteger, 1, ++/* 98166*/ OPC_CheckType, MVT::i32, ++/* 98168*/ OPC_MoveParent, ++/* 98169*/ OPC_MoveChild, 17, ++/* 98171*/ OPC_CheckInteger, 1, ++/* 98173*/ OPC_CheckType, MVT::i32, ++/* 98175*/ OPC_MoveParent, ++/* 98176*/ OPC_MoveChild, 18, ++/* 98178*/ OPC_CheckInteger, 1, ++/* 98180*/ OPC_CheckType, MVT::i32, ++/* 98182*/ OPC_MoveParent, ++/* 98183*/ OPC_MoveChild, 19, ++/* 98185*/ OPC_CheckInteger, 1, ++/* 98187*/ OPC_CheckType, MVT::i32, ++/* 98189*/ OPC_MoveParent, ++/* 98190*/ OPC_MoveChild, 20, ++/* 98192*/ OPC_CheckInteger, 1, ++/* 98194*/ OPC_CheckType, MVT::i32, ++/* 98196*/ OPC_MoveParent, ++/* 98197*/ OPC_MoveChild, 21, ++/* 98199*/ OPC_CheckInteger, 1, ++/* 98201*/ OPC_CheckType, MVT::i32, ++/* 98203*/ OPC_MoveParent, ++/* 98204*/ OPC_MoveChild, 22, ++/* 98206*/ OPC_CheckInteger, 1, ++/* 98208*/ OPC_CheckType, MVT::i32, ++/* 98210*/ OPC_MoveParent, ++/* 98211*/ OPC_MoveChild, 23, ++/* 98213*/ OPC_CheckInteger, 1, ++/* 98215*/ OPC_CheckType, MVT::i32, ++/* 98217*/ OPC_MoveParent, ++/* 98218*/ OPC_MoveChild, 24, ++/* 98220*/ OPC_CheckInteger, 1, ++/* 98222*/ OPC_CheckType, MVT::i32, ++/* 98224*/ OPC_MoveParent, ++/* 98225*/ OPC_MoveChild, 25, ++/* 98227*/ OPC_CheckInteger, 1, ++/* 98229*/ OPC_CheckType, MVT::i32, ++/* 98231*/ OPC_MoveParent, ++/* 98232*/ OPC_MoveChild, 26, ++/* 98234*/ OPC_CheckInteger, 1, ++/* 98236*/ OPC_CheckType, MVT::i32, ++/* 98238*/ OPC_MoveParent, ++/* 98239*/ OPC_MoveChild, 27, ++/* 98241*/ OPC_CheckInteger, 1, ++/* 98243*/ OPC_CheckType, MVT::i32, ++/* 98245*/ OPC_MoveParent, ++/* 98246*/ OPC_MoveChild, 28, ++/* 98248*/ OPC_CheckInteger, 1, ++/* 98250*/ OPC_CheckType, MVT::i32, ++/* 98252*/ OPC_MoveParent, ++/* 98253*/ OPC_MoveChild, 29, ++/* 98255*/ OPC_CheckInteger, 1, ++/* 98257*/ OPC_CheckType, MVT::i32, ++/* 98259*/ OPC_MoveParent, ++/* 98260*/ OPC_MoveChild, 30, ++/* 98262*/ OPC_CheckInteger, 1, ++/* 98264*/ OPC_CheckType, MVT::i32, ++/* 98266*/ OPC_MoveParent, ++/* 98267*/ OPC_MoveChild, 31, ++/* 98269*/ OPC_CheckInteger, 1, ++/* 98271*/ OPC_CheckType, MVT::i32, ++/* 98273*/ OPC_MoveParent, ++/* 98274*/ OPC_CheckType, MVT::v32i8, ++/* 98276*/ OPC_MoveParent, ++/* 98277*/ OPC_CheckType, MVT::v32i8, ++/* 98279*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 98281*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b), LASX256B:{ *:[v32i8] }:$a), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/* 98289*/ /*Scope*/ 17|128,5/*657*/, /*->98948*/ ++/* 98291*/ OPC_MoveChild0, ++/* 98292*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 98295*/ OPC_CheckChild0Integer, 1, ++/* 98297*/ OPC_CheckChild0Type, MVT::i32, ++/* 98299*/ OPC_CheckChild1Integer, 1, ++/* 98301*/ OPC_CheckChild1Type, MVT::i32, ++/* 98303*/ OPC_CheckChild2Integer, 1, ++/* 98305*/ OPC_CheckChild2Type, MVT::i32, ++/* 98307*/ OPC_CheckChild3Integer, 1, ++/* 98309*/ OPC_CheckChild3Type, MVT::i32, ++/* 98311*/ OPC_CheckChild4Integer, 1, ++/* 98313*/ OPC_CheckChild4Type, MVT::i32, ++/* 98315*/ OPC_MoveChild5, ++/* 98316*/ OPC_CheckInteger, 1, ++/* 98318*/ OPC_CheckType, MVT::i32, ++/* 98320*/ OPC_MoveParent, ++/* 98321*/ OPC_MoveChild6, ++/* 98322*/ OPC_CheckInteger, 1, ++/* 98324*/ OPC_CheckType, MVT::i32, ++/* 98326*/ OPC_MoveParent, ++/* 98327*/ OPC_MoveChild7, ++/* 98328*/ OPC_CheckInteger, 1, ++/* 98330*/ OPC_CheckType, MVT::i32, ++/* 98332*/ OPC_MoveParent, ++/* 98333*/ OPC_MoveChild, 8, ++/* 98335*/ OPC_CheckInteger, 1, ++/* 98337*/ OPC_CheckType, MVT::i32, ++/* 98339*/ OPC_MoveParent, ++/* 98340*/ OPC_MoveChild, 9, ++/* 98342*/ OPC_CheckInteger, 1, ++/* 98344*/ OPC_CheckType, MVT::i32, ++/* 98346*/ OPC_MoveParent, ++/* 98347*/ OPC_MoveChild, 10, ++/* 98349*/ OPC_CheckInteger, 1, ++/* 98351*/ OPC_CheckType, MVT::i32, ++/* 98353*/ OPC_MoveParent, ++/* 98354*/ OPC_MoveChild, 11, ++/* 98356*/ OPC_CheckInteger, 1, ++/* 98358*/ OPC_CheckType, MVT::i32, ++/* 98360*/ OPC_MoveParent, ++/* 98361*/ OPC_MoveChild, 12, ++/* 98363*/ OPC_CheckInteger, 1, ++/* 98365*/ OPC_CheckType, MVT::i32, ++/* 98367*/ OPC_MoveParent, ++/* 98368*/ OPC_MoveChild, 13, ++/* 98370*/ OPC_CheckInteger, 1, ++/* 98372*/ OPC_CheckType, MVT::i32, ++/* 98374*/ OPC_MoveParent, ++/* 98375*/ OPC_MoveChild, 14, ++/* 98377*/ OPC_CheckInteger, 1, ++/* 98379*/ OPC_CheckType, MVT::i32, ++/* 98381*/ OPC_MoveParent, ++/* 98382*/ OPC_MoveChild, 15, ++/* 98384*/ OPC_CheckInteger, 1, ++/* 98386*/ OPC_CheckType, MVT::i32, ++/* 98388*/ OPC_MoveParent, ++/* 98389*/ OPC_MoveChild, 16, ++/* 98391*/ OPC_CheckInteger, 1, ++/* 98393*/ OPC_CheckType, MVT::i32, ++/* 98395*/ OPC_MoveParent, ++/* 98396*/ OPC_MoveChild, 17, ++/* 98398*/ OPC_CheckInteger, 1, ++/* 98400*/ OPC_CheckType, MVT::i32, ++/* 98402*/ OPC_MoveParent, ++/* 98403*/ OPC_MoveChild, 18, ++/* 98405*/ OPC_CheckInteger, 1, ++/* 98407*/ OPC_CheckType, MVT::i32, ++/* 98409*/ OPC_MoveParent, ++/* 98410*/ OPC_MoveChild, 19, ++/* 98412*/ OPC_CheckInteger, 1, ++/* 98414*/ OPC_CheckType, MVT::i32, ++/* 98416*/ OPC_MoveParent, ++/* 98417*/ OPC_MoveChild, 20, ++/* 98419*/ OPC_CheckInteger, 1, ++/* 98421*/ OPC_CheckType, MVT::i32, ++/* 98423*/ OPC_MoveParent, ++/* 98424*/ OPC_MoveChild, 21, ++/* 98426*/ OPC_CheckInteger, 1, ++/* 98428*/ OPC_CheckType, MVT::i32, ++/* 98430*/ OPC_MoveParent, ++/* 98431*/ OPC_MoveChild, 22, ++/* 98433*/ OPC_CheckInteger, 1, ++/* 98435*/ OPC_CheckType, MVT::i32, ++/* 98437*/ OPC_MoveParent, ++/* 98438*/ OPC_MoveChild, 23, ++/* 98440*/ OPC_CheckInteger, 1, ++/* 98442*/ OPC_CheckType, MVT::i32, ++/* 98444*/ OPC_MoveParent, ++/* 98445*/ OPC_MoveChild, 24, ++/* 98447*/ OPC_CheckInteger, 1, ++/* 98449*/ OPC_CheckType, MVT::i32, ++/* 98451*/ OPC_MoveParent, ++/* 98452*/ OPC_MoveChild, 25, ++/* 98454*/ OPC_CheckInteger, 1, ++/* 98456*/ OPC_CheckType, MVT::i32, ++/* 98458*/ OPC_MoveParent, ++/* 98459*/ OPC_MoveChild, 26, ++/* 98461*/ OPC_CheckInteger, 1, ++/* 98463*/ OPC_CheckType, MVT::i32, ++/* 98465*/ OPC_MoveParent, ++/* 98466*/ OPC_MoveChild, 27, ++/* 98468*/ OPC_CheckInteger, 1, ++/* 98470*/ OPC_CheckType, MVT::i32, ++/* 98472*/ OPC_MoveParent, ++/* 98473*/ OPC_MoveChild, 28, ++/* 98475*/ OPC_CheckInteger, 1, ++/* 98477*/ OPC_CheckType, MVT::i32, ++/* 98479*/ OPC_MoveParent, ++/* 98480*/ OPC_MoveChild, 29, ++/* 98482*/ OPC_CheckInteger, 1, ++/* 98484*/ OPC_CheckType, MVT::i32, ++/* 98486*/ OPC_MoveParent, ++/* 98487*/ OPC_MoveChild, 30, ++/* 98489*/ OPC_CheckInteger, 1, ++/* 98491*/ OPC_CheckType, MVT::i32, ++/* 98493*/ OPC_MoveParent, ++/* 98494*/ OPC_MoveChild, 31, ++/* 98496*/ OPC_CheckInteger, 1, ++/* 98498*/ OPC_CheckType, MVT::i32, ++/* 98500*/ OPC_MoveParent, ++/* 98501*/ OPC_MoveParent, ++/* 98502*/ OPC_CheckChild1Same, 0, ++/* 98504*/ OPC_MoveParent, ++/* 98505*/ OPC_CheckChild1Same, 1, ++/* 98507*/ OPC_MoveParent, ++/* 98508*/ OPC_MoveChild1, ++/* 98509*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 98512*/ OPC_CheckChild0Integer, 7, ++/* 98514*/ OPC_CheckChild0Type, MVT::i32, ++/* 98516*/ OPC_CheckChild1Integer, 7, ++/* 98518*/ OPC_CheckChild1Type, MVT::i32, ++/* 98520*/ OPC_CheckChild2Integer, 7, ++/* 98522*/ OPC_CheckChild2Type, MVT::i32, ++/* 98524*/ OPC_CheckChild3Integer, 7, ++/* 98526*/ OPC_CheckChild3Type, MVT::i32, ++/* 98528*/ OPC_CheckChild4Integer, 7, ++/* 98530*/ OPC_CheckChild4Type, MVT::i32, ++/* 98532*/ OPC_MoveChild5, ++/* 98533*/ OPC_CheckInteger, 7, ++/* 98535*/ OPC_CheckType, MVT::i32, ++/* 98537*/ OPC_MoveParent, ++/* 98538*/ OPC_MoveChild6, ++/* 98539*/ OPC_CheckInteger, 7, ++/* 98541*/ OPC_CheckType, MVT::i32, ++/* 98543*/ OPC_MoveParent, ++/* 98544*/ OPC_MoveChild7, ++/* 98545*/ OPC_CheckInteger, 7, ++/* 98547*/ OPC_CheckType, MVT::i32, ++/* 98549*/ OPC_MoveParent, ++/* 98550*/ OPC_MoveChild, 8, ++/* 98552*/ OPC_CheckInteger, 7, ++/* 98554*/ OPC_CheckType, MVT::i32, ++/* 98556*/ OPC_MoveParent, ++/* 98557*/ OPC_MoveChild, 9, ++/* 98559*/ OPC_CheckInteger, 7, ++/* 98561*/ OPC_CheckType, MVT::i32, ++/* 98563*/ OPC_MoveParent, ++/* 98564*/ OPC_MoveChild, 10, ++/* 98566*/ OPC_CheckInteger, 7, ++/* 98568*/ OPC_CheckType, MVT::i32, ++/* 98570*/ OPC_MoveParent, ++/* 98571*/ OPC_MoveChild, 11, ++/* 98573*/ OPC_CheckInteger, 7, ++/* 98575*/ OPC_CheckType, MVT::i32, ++/* 98577*/ OPC_MoveParent, ++/* 98578*/ OPC_MoveChild, 12, ++/* 98580*/ OPC_CheckInteger, 7, ++/* 98582*/ OPC_CheckType, MVT::i32, ++/* 98584*/ OPC_MoveParent, ++/* 98585*/ OPC_MoveChild, 13, ++/* 98587*/ OPC_CheckInteger, 7, ++/* 98589*/ OPC_CheckType, MVT::i32, ++/* 98591*/ OPC_MoveParent, ++/* 98592*/ OPC_MoveChild, 14, ++/* 98594*/ OPC_CheckInteger, 7, ++/* 98596*/ OPC_CheckType, MVT::i32, ++/* 98598*/ OPC_MoveParent, ++/* 98599*/ OPC_MoveChild, 15, ++/* 98601*/ OPC_CheckInteger, 7, ++/* 98603*/ OPC_CheckType, MVT::i32, ++/* 98605*/ OPC_MoveParent, ++/* 98606*/ OPC_MoveChild, 16, ++/* 98608*/ OPC_CheckInteger, 7, ++/* 98610*/ OPC_CheckType, MVT::i32, ++/* 98612*/ OPC_MoveParent, ++/* 98613*/ OPC_MoveChild, 17, ++/* 98615*/ OPC_CheckInteger, 7, ++/* 98617*/ OPC_CheckType, MVT::i32, ++/* 98619*/ OPC_MoveParent, ++/* 98620*/ OPC_MoveChild, 18, ++/* 98622*/ OPC_CheckInteger, 7, ++/* 98624*/ OPC_CheckType, MVT::i32, ++/* 98626*/ OPC_MoveParent, ++/* 98627*/ OPC_MoveChild, 19, ++/* 98629*/ OPC_CheckInteger, 7, ++/* 98631*/ OPC_CheckType, MVT::i32, ++/* 98633*/ OPC_MoveParent, ++/* 98634*/ OPC_MoveChild, 20, ++/* 98636*/ OPC_CheckInteger, 7, ++/* 98638*/ OPC_CheckType, MVT::i32, ++/* 98640*/ OPC_MoveParent, ++/* 98641*/ OPC_MoveChild, 21, ++/* 98643*/ OPC_CheckInteger, 7, ++/* 98645*/ OPC_CheckType, MVT::i32, ++/* 98647*/ OPC_MoveParent, ++/* 98648*/ OPC_MoveChild, 22, ++/* 98650*/ OPC_CheckInteger, 7, ++/* 98652*/ OPC_CheckType, MVT::i32, ++/* 98654*/ OPC_MoveParent, ++/* 98655*/ OPC_MoveChild, 23, ++/* 98657*/ OPC_CheckInteger, 7, ++/* 98659*/ OPC_CheckType, MVT::i32, ++/* 98661*/ OPC_MoveParent, ++/* 98662*/ OPC_MoveChild, 24, ++/* 98664*/ OPC_CheckInteger, 7, ++/* 98666*/ OPC_CheckType, MVT::i32, ++/* 98668*/ OPC_MoveParent, ++/* 98669*/ OPC_MoveChild, 25, ++/* 98671*/ OPC_CheckInteger, 7, ++/* 98673*/ OPC_CheckType, MVT::i32, ++/* 98675*/ OPC_MoveParent, ++/* 98676*/ OPC_MoveChild, 26, ++/* 98678*/ OPC_CheckInteger, 7, ++/* 98680*/ OPC_CheckType, MVT::i32, ++/* 98682*/ OPC_MoveParent, ++/* 98683*/ OPC_MoveChild, 27, ++/* 98685*/ OPC_CheckInteger, 7, ++/* 98687*/ OPC_CheckType, MVT::i32, ++/* 98689*/ OPC_MoveParent, ++/* 98690*/ OPC_MoveChild, 28, ++/* 98692*/ OPC_CheckInteger, 7, ++/* 98694*/ OPC_CheckType, MVT::i32, ++/* 98696*/ OPC_MoveParent, ++/* 98697*/ OPC_MoveChild, 29, ++/* 98699*/ OPC_CheckInteger, 7, ++/* 98701*/ OPC_CheckType, MVT::i32, ++/* 98703*/ OPC_MoveParent, ++/* 98704*/ OPC_MoveChild, 30, ++/* 98706*/ OPC_CheckInteger, 7, ++/* 98708*/ OPC_CheckType, MVT::i32, ++/* 98710*/ OPC_MoveParent, ++/* 98711*/ OPC_MoveChild, 31, ++/* 98713*/ OPC_CheckInteger, 7, ++/* 98715*/ OPC_CheckType, MVT::i32, ++/* 98717*/ OPC_MoveParent, ++/* 98718*/ OPC_CheckType, MVT::v32i8, ++/* 98720*/ OPC_MoveParent, ++/* 98721*/ OPC_MoveParent, ++/* 98722*/ OPC_MoveParent, ++/* 98723*/ OPC_MoveChild1, ++/* 98724*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 98727*/ OPC_CheckChild0Integer, 1, ++/* 98729*/ OPC_CheckChild0Type, MVT::i32, ++/* 98731*/ OPC_CheckChild1Integer, 1, ++/* 98733*/ OPC_CheckChild1Type, MVT::i32, ++/* 98735*/ OPC_CheckChild2Integer, 1, ++/* 98737*/ OPC_CheckChild2Type, MVT::i32, ++/* 98739*/ OPC_CheckChild3Integer, 1, ++/* 98741*/ OPC_CheckChild3Type, MVT::i32, ++/* 98743*/ OPC_CheckChild4Integer, 1, ++/* 98745*/ OPC_CheckChild4Type, MVT::i32, ++/* 98747*/ OPC_MoveChild5, ++/* 98748*/ OPC_CheckInteger, 1, ++/* 98750*/ OPC_CheckType, MVT::i32, ++/* 98752*/ OPC_MoveParent, ++/* 98753*/ OPC_MoveChild6, ++/* 98754*/ OPC_CheckInteger, 1, ++/* 98756*/ OPC_CheckType, MVT::i32, ++/* 98758*/ OPC_MoveParent, ++/* 98759*/ OPC_MoveChild7, ++/* 98760*/ OPC_CheckInteger, 1, ++/* 98762*/ OPC_CheckType, MVT::i32, ++/* 98764*/ OPC_MoveParent, ++/* 98765*/ OPC_MoveChild, 8, ++/* 98767*/ OPC_CheckInteger, 1, ++/* 98769*/ OPC_CheckType, MVT::i32, ++/* 98771*/ OPC_MoveParent, ++/* 98772*/ OPC_MoveChild, 9, ++/* 98774*/ OPC_CheckInteger, 1, ++/* 98776*/ OPC_CheckType, MVT::i32, ++/* 98778*/ OPC_MoveParent, ++/* 98779*/ OPC_MoveChild, 10, ++/* 98781*/ OPC_CheckInteger, 1, ++/* 98783*/ OPC_CheckType, MVT::i32, ++/* 98785*/ OPC_MoveParent, ++/* 98786*/ OPC_MoveChild, 11, ++/* 98788*/ OPC_CheckInteger, 1, ++/* 98790*/ OPC_CheckType, MVT::i32, ++/* 98792*/ OPC_MoveParent, ++/* 98793*/ OPC_MoveChild, 12, ++/* 98795*/ OPC_CheckInteger, 1, ++/* 98797*/ OPC_CheckType, MVT::i32, ++/* 98799*/ OPC_MoveParent, ++/* 98800*/ OPC_MoveChild, 13, ++/* 98802*/ OPC_CheckInteger, 1, ++/* 98804*/ OPC_CheckType, MVT::i32, ++/* 98806*/ OPC_MoveParent, ++/* 98807*/ OPC_MoveChild, 14, ++/* 98809*/ OPC_CheckInteger, 1, ++/* 98811*/ OPC_CheckType, MVT::i32, ++/* 98813*/ OPC_MoveParent, ++/* 98814*/ OPC_MoveChild, 15, ++/* 98816*/ OPC_CheckInteger, 1, ++/* 98818*/ OPC_CheckType, MVT::i32, ++/* 98820*/ OPC_MoveParent, ++/* 98821*/ OPC_MoveChild, 16, ++/* 98823*/ OPC_CheckInteger, 1, ++/* 98825*/ OPC_CheckType, MVT::i32, ++/* 98827*/ OPC_MoveParent, ++/* 98828*/ OPC_MoveChild, 17, ++/* 98830*/ OPC_CheckInteger, 1, ++/* 98832*/ OPC_CheckType, MVT::i32, ++/* 98834*/ OPC_MoveParent, ++/* 98835*/ OPC_MoveChild, 18, ++/* 98837*/ OPC_CheckInteger, 1, ++/* 98839*/ OPC_CheckType, MVT::i32, ++/* 98841*/ OPC_MoveParent, ++/* 98842*/ OPC_MoveChild, 19, ++/* 98844*/ OPC_CheckInteger, 1, ++/* 98846*/ OPC_CheckType, MVT::i32, ++/* 98848*/ OPC_MoveParent, ++/* 98849*/ OPC_MoveChild, 20, ++/* 98851*/ OPC_CheckInteger, 1, ++/* 98853*/ OPC_CheckType, MVT::i32, ++/* 98855*/ OPC_MoveParent, ++/* 98856*/ OPC_MoveChild, 21, ++/* 98858*/ OPC_CheckInteger, 1, ++/* 98860*/ OPC_CheckType, MVT::i32, ++/* 98862*/ OPC_MoveParent, ++/* 98863*/ OPC_MoveChild, 22, ++/* 98865*/ OPC_CheckInteger, 1, ++/* 98867*/ OPC_CheckType, MVT::i32, ++/* 98869*/ OPC_MoveParent, ++/* 98870*/ OPC_MoveChild, 23, ++/* 98872*/ OPC_CheckInteger, 1, ++/* 98874*/ OPC_CheckType, MVT::i32, ++/* 98876*/ OPC_MoveParent, ++/* 98877*/ OPC_MoveChild, 24, ++/* 98879*/ OPC_CheckInteger, 1, ++/* 98881*/ OPC_CheckType, MVT::i32, ++/* 98883*/ OPC_MoveParent, ++/* 98884*/ OPC_MoveChild, 25, ++/* 98886*/ OPC_CheckInteger, 1, ++/* 98888*/ OPC_CheckType, MVT::i32, ++/* 98890*/ OPC_MoveParent, ++/* 98891*/ OPC_MoveChild, 26, ++/* 98893*/ OPC_CheckInteger, 1, ++/* 98895*/ OPC_CheckType, MVT::i32, ++/* 98897*/ OPC_MoveParent, ++/* 98898*/ OPC_MoveChild, 27, ++/* 98900*/ OPC_CheckInteger, 1, ++/* 98902*/ OPC_CheckType, MVT::i32, ++/* 98904*/ OPC_MoveParent, ++/* 98905*/ OPC_MoveChild, 28, ++/* 98907*/ OPC_CheckInteger, 1, ++/* 98909*/ OPC_CheckType, MVT::i32, ++/* 98911*/ OPC_MoveParent, ++/* 98912*/ OPC_MoveChild, 29, ++/* 98914*/ OPC_CheckInteger, 1, ++/* 98916*/ OPC_CheckType, MVT::i32, ++/* 98918*/ OPC_MoveParent, ++/* 98919*/ OPC_MoveChild, 30, ++/* 98921*/ OPC_CheckInteger, 1, ++/* 98923*/ OPC_CheckType, MVT::i32, ++/* 98925*/ OPC_MoveParent, ++/* 98926*/ OPC_MoveChild, 31, ++/* 98928*/ OPC_CheckInteger, 1, ++/* 98930*/ OPC_CheckType, MVT::i32, ++/* 98932*/ OPC_MoveParent, ++/* 98933*/ OPC_CheckType, MVT::v32i8, ++/* 98935*/ OPC_MoveParent, ++/* 98936*/ OPC_CheckType, MVT::v32i8, ++/* 98938*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 98940*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b), LASX256B:{ *:[v32i8] }:$a), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b), LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/* 98948*/ /*Scope*/ 17|128,5/*657*/, /*->99607*/ ++/* 98950*/ OPC_CheckChild0Same, 0, ++/* 98952*/ OPC_MoveChild1, ++/* 98953*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 98956*/ OPC_CheckChild0Integer, 1, ++/* 98958*/ OPC_CheckChild0Type, MVT::i32, ++/* 98960*/ OPC_CheckChild1Integer, 1, ++/* 98962*/ OPC_CheckChild1Type, MVT::i32, ++/* 98964*/ OPC_CheckChild2Integer, 1, ++/* 98966*/ OPC_CheckChild2Type, MVT::i32, ++/* 98968*/ OPC_CheckChild3Integer, 1, ++/* 98970*/ OPC_CheckChild3Type, MVT::i32, ++/* 98972*/ OPC_CheckChild4Integer, 1, ++/* 98974*/ OPC_CheckChild4Type, MVT::i32, ++/* 98976*/ OPC_MoveChild5, ++/* 98977*/ OPC_CheckInteger, 1, ++/* 98979*/ OPC_CheckType, MVT::i32, ++/* 98981*/ OPC_MoveParent, ++/* 98982*/ OPC_MoveChild6, ++/* 98983*/ OPC_CheckInteger, 1, ++/* 98985*/ OPC_CheckType, MVT::i32, ++/* 98987*/ OPC_MoveParent, ++/* 98988*/ OPC_MoveChild7, ++/* 98989*/ OPC_CheckInteger, 1, ++/* 98991*/ OPC_CheckType, MVT::i32, ++/* 98993*/ OPC_MoveParent, ++/* 98994*/ OPC_MoveChild, 8, ++/* 98996*/ OPC_CheckInteger, 1, ++/* 98998*/ OPC_CheckType, MVT::i32, ++/* 99000*/ OPC_MoveParent, ++/* 99001*/ OPC_MoveChild, 9, ++/* 99003*/ OPC_CheckInteger, 1, ++/* 99005*/ OPC_CheckType, MVT::i32, ++/* 99007*/ OPC_MoveParent, ++/* 99008*/ OPC_MoveChild, 10, ++/* 99010*/ OPC_CheckInteger, 1, ++/* 99012*/ OPC_CheckType, MVT::i32, ++/* 99014*/ OPC_MoveParent, ++/* 99015*/ OPC_MoveChild, 11, ++/* 99017*/ OPC_CheckInteger, 1, ++/* 99019*/ OPC_CheckType, MVT::i32, ++/* 99021*/ OPC_MoveParent, ++/* 99022*/ OPC_MoveChild, 12, ++/* 99024*/ OPC_CheckInteger, 1, ++/* 99026*/ OPC_CheckType, MVT::i32, ++/* 99028*/ OPC_MoveParent, ++/* 99029*/ OPC_MoveChild, 13, ++/* 99031*/ OPC_CheckInteger, 1, ++/* 99033*/ OPC_CheckType, MVT::i32, ++/* 99035*/ OPC_MoveParent, ++/* 99036*/ OPC_MoveChild, 14, ++/* 99038*/ OPC_CheckInteger, 1, ++/* 99040*/ OPC_CheckType, MVT::i32, ++/* 99042*/ OPC_MoveParent, ++/* 99043*/ OPC_MoveChild, 15, ++/* 99045*/ OPC_CheckInteger, 1, ++/* 99047*/ OPC_CheckType, MVT::i32, ++/* 99049*/ OPC_MoveParent, ++/* 99050*/ OPC_MoveChild, 16, ++/* 99052*/ OPC_CheckInteger, 1, ++/* 99054*/ OPC_CheckType, MVT::i32, ++/* 99056*/ OPC_MoveParent, ++/* 99057*/ OPC_MoveChild, 17, ++/* 99059*/ OPC_CheckInteger, 1, ++/* 99061*/ OPC_CheckType, MVT::i32, ++/* 99063*/ OPC_MoveParent, ++/* 99064*/ OPC_MoveChild, 18, ++/* 99066*/ OPC_CheckInteger, 1, ++/* 99068*/ OPC_CheckType, MVT::i32, ++/* 99070*/ OPC_MoveParent, ++/* 99071*/ OPC_MoveChild, 19, ++/* 99073*/ OPC_CheckInteger, 1, ++/* 99075*/ OPC_CheckType, MVT::i32, ++/* 99077*/ OPC_MoveParent, ++/* 99078*/ OPC_MoveChild, 20, ++/* 99080*/ OPC_CheckInteger, 1, ++/* 99082*/ OPC_CheckType, MVT::i32, ++/* 99084*/ OPC_MoveParent, ++/* 99085*/ OPC_MoveChild, 21, ++/* 99087*/ OPC_CheckInteger, 1, ++/* 99089*/ OPC_CheckType, MVT::i32, ++/* 99091*/ OPC_MoveParent, ++/* 99092*/ OPC_MoveChild, 22, ++/* 99094*/ OPC_CheckInteger, 1, ++/* 99096*/ OPC_CheckType, MVT::i32, ++/* 99098*/ OPC_MoveParent, ++/* 99099*/ OPC_MoveChild, 23, ++/* 99101*/ OPC_CheckInteger, 1, ++/* 99103*/ OPC_CheckType, MVT::i32, ++/* 99105*/ OPC_MoveParent, ++/* 99106*/ OPC_MoveChild, 24, ++/* 99108*/ OPC_CheckInteger, 1, ++/* 99110*/ OPC_CheckType, MVT::i32, ++/* 99112*/ OPC_MoveParent, ++/* 99113*/ OPC_MoveChild, 25, ++/* 99115*/ OPC_CheckInteger, 1, ++/* 99117*/ OPC_CheckType, MVT::i32, ++/* 99119*/ OPC_MoveParent, ++/* 99120*/ OPC_MoveChild, 26, ++/* 99122*/ OPC_CheckInteger, 1, ++/* 99124*/ OPC_CheckType, MVT::i32, ++/* 99126*/ OPC_MoveParent, ++/* 99127*/ OPC_MoveChild, 27, ++/* 99129*/ OPC_CheckInteger, 1, ++/* 99131*/ OPC_CheckType, MVT::i32, ++/* 99133*/ OPC_MoveParent, ++/* 99134*/ OPC_MoveChild, 28, ++/* 99136*/ OPC_CheckInteger, 1, ++/* 99138*/ OPC_CheckType, MVT::i32, ++/* 99140*/ OPC_MoveParent, ++/* 99141*/ OPC_MoveChild, 29, ++/* 99143*/ OPC_CheckInteger, 1, ++/* 99145*/ OPC_CheckType, MVT::i32, ++/* 99147*/ OPC_MoveParent, ++/* 99148*/ OPC_MoveChild, 30, ++/* 99150*/ OPC_CheckInteger, 1, ++/* 99152*/ OPC_CheckType, MVT::i32, ++/* 99154*/ OPC_MoveParent, ++/* 99155*/ OPC_MoveChild, 31, ++/* 99157*/ OPC_CheckInteger, 1, ++/* 99159*/ OPC_CheckType, MVT::i32, ++/* 99161*/ OPC_MoveParent, ++/* 99162*/ OPC_MoveParent, ++/* 99163*/ OPC_MoveParent, ++/* 99164*/ OPC_CheckChild1Same, 1, ++/* 99166*/ OPC_MoveParent, ++/* 99167*/ OPC_MoveChild1, ++/* 99168*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 99171*/ OPC_CheckChild0Integer, 7, ++/* 99173*/ OPC_CheckChild0Type, MVT::i32, ++/* 99175*/ OPC_CheckChild1Integer, 7, ++/* 99177*/ OPC_CheckChild1Type, MVT::i32, ++/* 99179*/ OPC_CheckChild2Integer, 7, ++/* 99181*/ OPC_CheckChild2Type, MVT::i32, ++/* 99183*/ OPC_CheckChild3Integer, 7, ++/* 99185*/ OPC_CheckChild3Type, MVT::i32, ++/* 99187*/ OPC_CheckChild4Integer, 7, ++/* 99189*/ OPC_CheckChild4Type, MVT::i32, ++/* 99191*/ OPC_MoveChild5, ++/* 99192*/ OPC_CheckInteger, 7, ++/* 99194*/ OPC_CheckType, MVT::i32, ++/* 99196*/ OPC_MoveParent, ++/* 99197*/ OPC_MoveChild6, ++/* 99198*/ OPC_CheckInteger, 7, ++/* 99200*/ OPC_CheckType, MVT::i32, ++/* 99202*/ OPC_MoveParent, ++/* 99203*/ OPC_MoveChild7, ++/* 99204*/ OPC_CheckInteger, 7, ++/* 99206*/ OPC_CheckType, MVT::i32, ++/* 99208*/ OPC_MoveParent, ++/* 99209*/ OPC_MoveChild, 8, ++/* 99211*/ OPC_CheckInteger, 7, ++/* 99213*/ OPC_CheckType, MVT::i32, ++/* 99215*/ OPC_MoveParent, ++/* 99216*/ OPC_MoveChild, 9, ++/* 99218*/ OPC_CheckInteger, 7, ++/* 99220*/ OPC_CheckType, MVT::i32, ++/* 99222*/ OPC_MoveParent, ++/* 99223*/ OPC_MoveChild, 10, ++/* 99225*/ OPC_CheckInteger, 7, ++/* 99227*/ OPC_CheckType, MVT::i32, ++/* 99229*/ OPC_MoveParent, ++/* 99230*/ OPC_MoveChild, 11, ++/* 99232*/ OPC_CheckInteger, 7, ++/* 99234*/ OPC_CheckType, MVT::i32, ++/* 99236*/ OPC_MoveParent, ++/* 99237*/ OPC_MoveChild, 12, ++/* 99239*/ OPC_CheckInteger, 7, ++/* 99241*/ OPC_CheckType, MVT::i32, ++/* 99243*/ OPC_MoveParent, ++/* 99244*/ OPC_MoveChild, 13, ++/* 99246*/ OPC_CheckInteger, 7, ++/* 99248*/ OPC_CheckType, MVT::i32, ++/* 99250*/ OPC_MoveParent, ++/* 99251*/ OPC_MoveChild, 14, ++/* 99253*/ OPC_CheckInteger, 7, ++/* 99255*/ OPC_CheckType, MVT::i32, ++/* 99257*/ OPC_MoveParent, ++/* 99258*/ OPC_MoveChild, 15, ++/* 99260*/ OPC_CheckInteger, 7, ++/* 99262*/ OPC_CheckType, MVT::i32, ++/* 99264*/ OPC_MoveParent, ++/* 99265*/ OPC_MoveChild, 16, ++/* 99267*/ OPC_CheckInteger, 7, ++/* 99269*/ OPC_CheckType, MVT::i32, ++/* 99271*/ OPC_MoveParent, ++/* 99272*/ OPC_MoveChild, 17, ++/* 99274*/ OPC_CheckInteger, 7, ++/* 99276*/ OPC_CheckType, MVT::i32, ++/* 99278*/ OPC_MoveParent, ++/* 99279*/ OPC_MoveChild, 18, ++/* 99281*/ OPC_CheckInteger, 7, ++/* 99283*/ OPC_CheckType, MVT::i32, ++/* 99285*/ OPC_MoveParent, ++/* 99286*/ OPC_MoveChild, 19, ++/* 99288*/ OPC_CheckInteger, 7, ++/* 99290*/ OPC_CheckType, MVT::i32, ++/* 99292*/ OPC_MoveParent, ++/* 99293*/ OPC_MoveChild, 20, ++/* 99295*/ OPC_CheckInteger, 7, ++/* 99297*/ OPC_CheckType, MVT::i32, ++/* 99299*/ OPC_MoveParent, ++/* 99300*/ OPC_MoveChild, 21, ++/* 99302*/ OPC_CheckInteger, 7, ++/* 99304*/ OPC_CheckType, MVT::i32, ++/* 99306*/ OPC_MoveParent, ++/* 99307*/ OPC_MoveChild, 22, ++/* 99309*/ OPC_CheckInteger, 7, ++/* 99311*/ OPC_CheckType, MVT::i32, ++/* 99313*/ OPC_MoveParent, ++/* 99314*/ OPC_MoveChild, 23, ++/* 99316*/ OPC_CheckInteger, 7, ++/* 99318*/ OPC_CheckType, MVT::i32, ++/* 99320*/ OPC_MoveParent, ++/* 99321*/ OPC_MoveChild, 24, ++/* 99323*/ OPC_CheckInteger, 7, ++/* 99325*/ OPC_CheckType, MVT::i32, ++/* 99327*/ OPC_MoveParent, ++/* 99328*/ OPC_MoveChild, 25, ++/* 99330*/ OPC_CheckInteger, 7, ++/* 99332*/ OPC_CheckType, MVT::i32, ++/* 99334*/ OPC_MoveParent, ++/* 99335*/ OPC_MoveChild, 26, ++/* 99337*/ OPC_CheckInteger, 7, ++/* 99339*/ OPC_CheckType, MVT::i32, ++/* 99341*/ OPC_MoveParent, ++/* 99342*/ OPC_MoveChild, 27, ++/* 99344*/ OPC_CheckInteger, 7, ++/* 99346*/ OPC_CheckType, MVT::i32, ++/* 99348*/ OPC_MoveParent, ++/* 99349*/ OPC_MoveChild, 28, ++/* 99351*/ OPC_CheckInteger, 7, ++/* 99353*/ OPC_CheckType, MVT::i32, ++/* 99355*/ OPC_MoveParent, ++/* 99356*/ OPC_MoveChild, 29, ++/* 99358*/ OPC_CheckInteger, 7, ++/* 99360*/ OPC_CheckType, MVT::i32, ++/* 99362*/ OPC_MoveParent, ++/* 99363*/ OPC_MoveChild, 30, ++/* 99365*/ OPC_CheckInteger, 7, ++/* 99367*/ OPC_CheckType, MVT::i32, ++/* 99369*/ OPC_MoveParent, ++/* 99370*/ OPC_MoveChild, 31, ++/* 99372*/ OPC_CheckInteger, 7, ++/* 99374*/ OPC_CheckType, MVT::i32, ++/* 99376*/ OPC_MoveParent, ++/* 99377*/ OPC_CheckType, MVT::v32i8, ++/* 99379*/ OPC_MoveParent, ++/* 99380*/ OPC_MoveParent, ++/* 99381*/ OPC_MoveParent, ++/* 99382*/ OPC_MoveChild1, ++/* 99383*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 99386*/ OPC_CheckChild0Integer, 1, ++/* 99388*/ OPC_CheckChild0Type, MVT::i32, ++/* 99390*/ OPC_CheckChild1Integer, 1, ++/* 99392*/ OPC_CheckChild1Type, MVT::i32, ++/* 99394*/ OPC_CheckChild2Integer, 1, ++/* 99396*/ OPC_CheckChild2Type, MVT::i32, ++/* 99398*/ OPC_CheckChild3Integer, 1, ++/* 99400*/ OPC_CheckChild3Type, MVT::i32, ++/* 99402*/ OPC_CheckChild4Integer, 1, ++/* 99404*/ OPC_CheckChild4Type, MVT::i32, ++/* 99406*/ OPC_MoveChild5, ++/* 99407*/ OPC_CheckInteger, 1, ++/* 99409*/ OPC_CheckType, MVT::i32, ++/* 99411*/ OPC_MoveParent, ++/* 99412*/ OPC_MoveChild6, ++/* 99413*/ OPC_CheckInteger, 1, ++/* 99415*/ OPC_CheckType, MVT::i32, ++/* 99417*/ OPC_MoveParent, ++/* 99418*/ OPC_MoveChild7, ++/* 99419*/ OPC_CheckInteger, 1, ++/* 99421*/ OPC_CheckType, MVT::i32, ++/* 99423*/ OPC_MoveParent, ++/* 99424*/ OPC_MoveChild, 8, ++/* 99426*/ OPC_CheckInteger, 1, ++/* 99428*/ OPC_CheckType, MVT::i32, ++/* 99430*/ OPC_MoveParent, ++/* 99431*/ OPC_MoveChild, 9, ++/* 99433*/ OPC_CheckInteger, 1, ++/* 99435*/ OPC_CheckType, MVT::i32, ++/* 99437*/ OPC_MoveParent, ++/* 99438*/ OPC_MoveChild, 10, ++/* 99440*/ OPC_CheckInteger, 1, ++/* 99442*/ OPC_CheckType, MVT::i32, ++/* 99444*/ OPC_MoveParent, ++/* 99445*/ OPC_MoveChild, 11, ++/* 99447*/ OPC_CheckInteger, 1, ++/* 99449*/ OPC_CheckType, MVT::i32, ++/* 99451*/ OPC_MoveParent, ++/* 99452*/ OPC_MoveChild, 12, ++/* 99454*/ OPC_CheckInteger, 1, ++/* 99456*/ OPC_CheckType, MVT::i32, ++/* 99458*/ OPC_MoveParent, ++/* 99459*/ OPC_MoveChild, 13, ++/* 99461*/ OPC_CheckInteger, 1, ++/* 99463*/ OPC_CheckType, MVT::i32, ++/* 99465*/ OPC_MoveParent, ++/* 99466*/ OPC_MoveChild, 14, ++/* 99468*/ OPC_CheckInteger, 1, ++/* 99470*/ OPC_CheckType, MVT::i32, ++/* 99472*/ OPC_MoveParent, ++/* 99473*/ OPC_MoveChild, 15, ++/* 99475*/ OPC_CheckInteger, 1, ++/* 99477*/ OPC_CheckType, MVT::i32, ++/* 99479*/ OPC_MoveParent, ++/* 99480*/ OPC_MoveChild, 16, ++/* 99482*/ OPC_CheckInteger, 1, ++/* 99484*/ OPC_CheckType, MVT::i32, ++/* 99486*/ OPC_MoveParent, ++/* 99487*/ OPC_MoveChild, 17, ++/* 99489*/ OPC_CheckInteger, 1, ++/* 99491*/ OPC_CheckType, MVT::i32, ++/* 99493*/ OPC_MoveParent, ++/* 99494*/ OPC_MoveChild, 18, ++/* 99496*/ OPC_CheckInteger, 1, ++/* 99498*/ OPC_CheckType, MVT::i32, ++/* 99500*/ OPC_MoveParent, ++/* 99501*/ OPC_MoveChild, 19, ++/* 99503*/ OPC_CheckInteger, 1, ++/* 99505*/ OPC_CheckType, MVT::i32, ++/* 99507*/ OPC_MoveParent, ++/* 99508*/ OPC_MoveChild, 20, ++/* 99510*/ OPC_CheckInteger, 1, ++/* 99512*/ OPC_CheckType, MVT::i32, ++/* 99514*/ OPC_MoveParent, ++/* 99515*/ OPC_MoveChild, 21, ++/* 99517*/ OPC_CheckInteger, 1, ++/* 99519*/ OPC_CheckType, MVT::i32, ++/* 99521*/ OPC_MoveParent, ++/* 99522*/ OPC_MoveChild, 22, ++/* 99524*/ OPC_CheckInteger, 1, ++/* 99526*/ OPC_CheckType, MVT::i32, ++/* 99528*/ OPC_MoveParent, ++/* 99529*/ OPC_MoveChild, 23, ++/* 99531*/ OPC_CheckInteger, 1, ++/* 99533*/ OPC_CheckType, MVT::i32, ++/* 99535*/ OPC_MoveParent, ++/* 99536*/ OPC_MoveChild, 24, ++/* 99538*/ OPC_CheckInteger, 1, ++/* 99540*/ OPC_CheckType, MVT::i32, ++/* 99542*/ OPC_MoveParent, ++/* 99543*/ OPC_MoveChild, 25, ++/* 99545*/ OPC_CheckInteger, 1, ++/* 99547*/ OPC_CheckType, MVT::i32, ++/* 99549*/ OPC_MoveParent, ++/* 99550*/ OPC_MoveChild, 26, ++/* 99552*/ OPC_CheckInteger, 1, ++/* 99554*/ OPC_CheckType, MVT::i32, ++/* 99556*/ OPC_MoveParent, ++/* 99557*/ OPC_MoveChild, 27, ++/* 99559*/ OPC_CheckInteger, 1, ++/* 99561*/ OPC_CheckType, MVT::i32, ++/* 99563*/ OPC_MoveParent, ++/* 99564*/ OPC_MoveChild, 28, ++/* 99566*/ OPC_CheckInteger, 1, ++/* 99568*/ OPC_CheckType, MVT::i32, ++/* 99570*/ OPC_MoveParent, ++/* 99571*/ OPC_MoveChild, 29, ++/* 99573*/ OPC_CheckInteger, 1, ++/* 99575*/ OPC_CheckType, MVT::i32, ++/* 99577*/ OPC_MoveParent, ++/* 99578*/ OPC_MoveChild, 30, ++/* 99580*/ OPC_CheckInteger, 1, ++/* 99582*/ OPC_CheckType, MVT::i32, ++/* 99584*/ OPC_MoveParent, ++/* 99585*/ OPC_MoveChild, 31, ++/* 99587*/ OPC_CheckInteger, 1, ++/* 99589*/ OPC_CheckType, MVT::i32, ++/* 99591*/ OPC_MoveParent, ++/* 99592*/ OPC_CheckType, MVT::v32i8, ++/* 99594*/ OPC_MoveParent, ++/* 99595*/ OPC_CheckType, MVT::v32i8, ++/* 99597*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/* 99599*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b), LASX256B:{ *:[v32i8] }:$a), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/* 99607*/ /*Scope*/ 17|128,5/*657*/, /*->100266*/ ++/* 99609*/ OPC_CheckChild0Same, 1, ++/* 99611*/ OPC_CheckChild1Same, 0, ++/* 99613*/ OPC_MoveParent, ++/* 99614*/ OPC_MoveChild1, ++/* 99615*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 99618*/ OPC_CheckChild0Integer, 1, ++/* 99620*/ OPC_CheckChild0Type, MVT::i32, ++/* 99622*/ OPC_CheckChild1Integer, 1, ++/* 99624*/ OPC_CheckChild1Type, MVT::i32, ++/* 99626*/ OPC_CheckChild2Integer, 1, ++/* 99628*/ OPC_CheckChild2Type, MVT::i32, ++/* 99630*/ OPC_CheckChild3Integer, 1, ++/* 99632*/ OPC_CheckChild3Type, MVT::i32, ++/* 99634*/ OPC_CheckChild4Integer, 1, ++/* 99636*/ OPC_CheckChild4Type, MVT::i32, ++/* 99638*/ OPC_MoveChild5, ++/* 99639*/ OPC_CheckInteger, 1, ++/* 99641*/ OPC_CheckType, MVT::i32, ++/* 99643*/ OPC_MoveParent, ++/* 99644*/ OPC_MoveChild6, ++/* 99645*/ OPC_CheckInteger, 1, ++/* 99647*/ OPC_CheckType, MVT::i32, ++/* 99649*/ OPC_MoveParent, ++/* 99650*/ OPC_MoveChild7, ++/* 99651*/ OPC_CheckInteger, 1, ++/* 99653*/ OPC_CheckType, MVT::i32, ++/* 99655*/ OPC_MoveParent, ++/* 99656*/ OPC_MoveChild, 8, ++/* 99658*/ OPC_CheckInteger, 1, ++/* 99660*/ OPC_CheckType, MVT::i32, ++/* 99662*/ OPC_MoveParent, ++/* 99663*/ OPC_MoveChild, 9, ++/* 99665*/ OPC_CheckInteger, 1, ++/* 99667*/ OPC_CheckType, MVT::i32, ++/* 99669*/ OPC_MoveParent, ++/* 99670*/ OPC_MoveChild, 10, ++/* 99672*/ OPC_CheckInteger, 1, ++/* 99674*/ OPC_CheckType, MVT::i32, ++/* 99676*/ OPC_MoveParent, ++/* 99677*/ OPC_MoveChild, 11, ++/* 99679*/ OPC_CheckInteger, 1, ++/* 99681*/ OPC_CheckType, MVT::i32, ++/* 99683*/ OPC_MoveParent, ++/* 99684*/ OPC_MoveChild, 12, ++/* 99686*/ OPC_CheckInteger, 1, ++/* 99688*/ OPC_CheckType, MVT::i32, ++/* 99690*/ OPC_MoveParent, ++/* 99691*/ OPC_MoveChild, 13, ++/* 99693*/ OPC_CheckInteger, 1, ++/* 99695*/ OPC_CheckType, MVT::i32, ++/* 99697*/ OPC_MoveParent, ++/* 99698*/ OPC_MoveChild, 14, ++/* 99700*/ OPC_CheckInteger, 1, ++/* 99702*/ OPC_CheckType, MVT::i32, ++/* 99704*/ OPC_MoveParent, ++/* 99705*/ OPC_MoveChild, 15, ++/* 99707*/ OPC_CheckInteger, 1, ++/* 99709*/ OPC_CheckType, MVT::i32, ++/* 99711*/ OPC_MoveParent, ++/* 99712*/ OPC_MoveChild, 16, ++/* 99714*/ OPC_CheckInteger, 1, ++/* 99716*/ OPC_CheckType, MVT::i32, ++/* 99718*/ OPC_MoveParent, ++/* 99719*/ OPC_MoveChild, 17, ++/* 99721*/ OPC_CheckInteger, 1, ++/* 99723*/ OPC_CheckType, MVT::i32, ++/* 99725*/ OPC_MoveParent, ++/* 99726*/ OPC_MoveChild, 18, ++/* 99728*/ OPC_CheckInteger, 1, ++/* 99730*/ OPC_CheckType, MVT::i32, ++/* 99732*/ OPC_MoveParent, ++/* 99733*/ OPC_MoveChild, 19, ++/* 99735*/ OPC_CheckInteger, 1, ++/* 99737*/ OPC_CheckType, MVT::i32, ++/* 99739*/ OPC_MoveParent, ++/* 99740*/ OPC_MoveChild, 20, ++/* 99742*/ OPC_CheckInteger, 1, ++/* 99744*/ OPC_CheckType, MVT::i32, ++/* 99746*/ OPC_MoveParent, ++/* 99747*/ OPC_MoveChild, 21, ++/* 99749*/ OPC_CheckInteger, 1, ++/* 99751*/ OPC_CheckType, MVT::i32, ++/* 99753*/ OPC_MoveParent, ++/* 99754*/ OPC_MoveChild, 22, ++/* 99756*/ OPC_CheckInteger, 1, ++/* 99758*/ OPC_CheckType, MVT::i32, ++/* 99760*/ OPC_MoveParent, ++/* 99761*/ OPC_MoveChild, 23, ++/* 99763*/ OPC_CheckInteger, 1, ++/* 99765*/ OPC_CheckType, MVT::i32, ++/* 99767*/ OPC_MoveParent, ++/* 99768*/ OPC_MoveChild, 24, ++/* 99770*/ OPC_CheckInteger, 1, ++/* 99772*/ OPC_CheckType, MVT::i32, ++/* 99774*/ OPC_MoveParent, ++/* 99775*/ OPC_MoveChild, 25, ++/* 99777*/ OPC_CheckInteger, 1, ++/* 99779*/ OPC_CheckType, MVT::i32, ++/* 99781*/ OPC_MoveParent, ++/* 99782*/ OPC_MoveChild, 26, ++/* 99784*/ OPC_CheckInteger, 1, ++/* 99786*/ OPC_CheckType, MVT::i32, ++/* 99788*/ OPC_MoveParent, ++/* 99789*/ OPC_MoveChild, 27, ++/* 99791*/ OPC_CheckInteger, 1, ++/* 99793*/ OPC_CheckType, MVT::i32, ++/* 99795*/ OPC_MoveParent, ++/* 99796*/ OPC_MoveChild, 28, ++/* 99798*/ OPC_CheckInteger, 1, ++/* 99800*/ OPC_CheckType, MVT::i32, ++/* 99802*/ OPC_MoveParent, ++/* 99803*/ OPC_MoveChild, 29, ++/* 99805*/ OPC_CheckInteger, 1, ++/* 99807*/ OPC_CheckType, MVT::i32, ++/* 99809*/ OPC_MoveParent, ++/* 99810*/ OPC_MoveChild, 30, ++/* 99812*/ OPC_CheckInteger, 1, ++/* 99814*/ OPC_CheckType, MVT::i32, ++/* 99816*/ OPC_MoveParent, ++/* 99817*/ OPC_MoveChild, 31, ++/* 99819*/ OPC_CheckInteger, 1, ++/* 99821*/ OPC_CheckType, MVT::i32, ++/* 99823*/ OPC_MoveParent, ++/* 99824*/ OPC_MoveParent, ++/* 99825*/ OPC_MoveParent, ++/* 99826*/ OPC_MoveChild1, ++/* 99827*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/* 99830*/ OPC_CheckChild0Integer, 7, ++/* 99832*/ OPC_CheckChild0Type, MVT::i32, ++/* 99834*/ OPC_CheckChild1Integer, 7, ++/* 99836*/ OPC_CheckChild1Type, MVT::i32, ++/* 99838*/ OPC_CheckChild2Integer, 7, ++/* 99840*/ OPC_CheckChild2Type, MVT::i32, ++/* 99842*/ OPC_CheckChild3Integer, 7, ++/* 99844*/ OPC_CheckChild3Type, MVT::i32, ++/* 99846*/ OPC_CheckChild4Integer, 7, ++/* 99848*/ OPC_CheckChild4Type, MVT::i32, ++/* 99850*/ OPC_MoveChild5, ++/* 99851*/ OPC_CheckInteger, 7, ++/* 99853*/ OPC_CheckType, MVT::i32, ++/* 99855*/ OPC_MoveParent, ++/* 99856*/ OPC_MoveChild6, ++/* 99857*/ OPC_CheckInteger, 7, ++/* 99859*/ OPC_CheckType, MVT::i32, ++/* 99861*/ OPC_MoveParent, ++/* 99862*/ OPC_MoveChild7, ++/* 99863*/ OPC_CheckInteger, 7, ++/* 99865*/ OPC_CheckType, MVT::i32, ++/* 99867*/ OPC_MoveParent, ++/* 99868*/ OPC_MoveChild, 8, ++/* 99870*/ OPC_CheckInteger, 7, ++/* 99872*/ OPC_CheckType, MVT::i32, ++/* 99874*/ OPC_MoveParent, ++/* 99875*/ OPC_MoveChild, 9, ++/* 99877*/ OPC_CheckInteger, 7, ++/* 99879*/ OPC_CheckType, MVT::i32, ++/* 99881*/ OPC_MoveParent, ++/* 99882*/ OPC_MoveChild, 10, ++/* 99884*/ OPC_CheckInteger, 7, ++/* 99886*/ OPC_CheckType, MVT::i32, ++/* 99888*/ OPC_MoveParent, ++/* 99889*/ OPC_MoveChild, 11, ++/* 99891*/ OPC_CheckInteger, 7, ++/* 99893*/ OPC_CheckType, MVT::i32, ++/* 99895*/ OPC_MoveParent, ++/* 99896*/ OPC_MoveChild, 12, ++/* 99898*/ OPC_CheckInteger, 7, ++/* 99900*/ OPC_CheckType, MVT::i32, ++/* 99902*/ OPC_MoveParent, ++/* 99903*/ OPC_MoveChild, 13, ++/* 99905*/ OPC_CheckInteger, 7, ++/* 99907*/ OPC_CheckType, MVT::i32, ++/* 99909*/ OPC_MoveParent, ++/* 99910*/ OPC_MoveChild, 14, ++/* 99912*/ OPC_CheckInteger, 7, ++/* 99914*/ OPC_CheckType, MVT::i32, ++/* 99916*/ OPC_MoveParent, ++/* 99917*/ OPC_MoveChild, 15, ++/* 99919*/ OPC_CheckInteger, 7, ++/* 99921*/ OPC_CheckType, MVT::i32, ++/* 99923*/ OPC_MoveParent, ++/* 99924*/ OPC_MoveChild, 16, ++/* 99926*/ OPC_CheckInteger, 7, ++/* 99928*/ OPC_CheckType, MVT::i32, ++/* 99930*/ OPC_MoveParent, ++/* 99931*/ OPC_MoveChild, 17, ++/* 99933*/ OPC_CheckInteger, 7, ++/* 99935*/ OPC_CheckType, MVT::i32, ++/* 99937*/ OPC_MoveParent, ++/* 99938*/ OPC_MoveChild, 18, ++/* 99940*/ OPC_CheckInteger, 7, ++/* 99942*/ OPC_CheckType, MVT::i32, ++/* 99944*/ OPC_MoveParent, ++/* 99945*/ OPC_MoveChild, 19, ++/* 99947*/ OPC_CheckInteger, 7, ++/* 99949*/ OPC_CheckType, MVT::i32, ++/* 99951*/ OPC_MoveParent, ++/* 99952*/ OPC_MoveChild, 20, ++/* 99954*/ OPC_CheckInteger, 7, ++/* 99956*/ OPC_CheckType, MVT::i32, ++/* 99958*/ OPC_MoveParent, ++/* 99959*/ OPC_MoveChild, 21, ++/* 99961*/ OPC_CheckInteger, 7, ++/* 99963*/ OPC_CheckType, MVT::i32, ++/* 99965*/ OPC_MoveParent, ++/* 99966*/ OPC_MoveChild, 22, ++/* 99968*/ OPC_CheckInteger, 7, ++/* 99970*/ OPC_CheckType, MVT::i32, ++/* 99972*/ OPC_MoveParent, ++/* 99973*/ OPC_MoveChild, 23, ++/* 99975*/ OPC_CheckInteger, 7, ++/* 99977*/ OPC_CheckType, MVT::i32, ++/* 99979*/ OPC_MoveParent, ++/* 99980*/ OPC_MoveChild, 24, ++/* 99982*/ OPC_CheckInteger, 7, ++/* 99984*/ OPC_CheckType, MVT::i32, ++/* 99986*/ OPC_MoveParent, ++/* 99987*/ OPC_MoveChild, 25, ++/* 99989*/ OPC_CheckInteger, 7, ++/* 99991*/ OPC_CheckType, MVT::i32, ++/* 99993*/ OPC_MoveParent, ++/* 99994*/ OPC_MoveChild, 26, ++/* 99996*/ OPC_CheckInteger, 7, ++/* 99998*/ OPC_CheckType, MVT::i32, ++/*100000*/ OPC_MoveParent, ++/*100001*/ OPC_MoveChild, 27, ++/*100003*/ OPC_CheckInteger, 7, ++/*100005*/ OPC_CheckType, MVT::i32, ++/*100007*/ OPC_MoveParent, ++/*100008*/ OPC_MoveChild, 28, ++/*100010*/ OPC_CheckInteger, 7, ++/*100012*/ OPC_CheckType, MVT::i32, ++/*100014*/ OPC_MoveParent, ++/*100015*/ OPC_MoveChild, 29, ++/*100017*/ OPC_CheckInteger, 7, ++/*100019*/ OPC_CheckType, MVT::i32, ++/*100021*/ OPC_MoveParent, ++/*100022*/ OPC_MoveChild, 30, ++/*100024*/ OPC_CheckInteger, 7, ++/*100026*/ OPC_CheckType, MVT::i32, ++/*100028*/ OPC_MoveParent, ++/*100029*/ OPC_MoveChild, 31, ++/*100031*/ OPC_CheckInteger, 7, ++/*100033*/ OPC_CheckType, MVT::i32, ++/*100035*/ OPC_MoveParent, ++/*100036*/ OPC_CheckType, MVT::v32i8, ++/*100038*/ OPC_MoveParent, ++/*100039*/ OPC_MoveParent, ++/*100040*/ OPC_MoveParent, ++/*100041*/ OPC_MoveChild1, ++/*100042*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*100045*/ OPC_CheckChild0Integer, 1, ++/*100047*/ OPC_CheckChild0Type, MVT::i32, ++/*100049*/ OPC_CheckChild1Integer, 1, ++/*100051*/ OPC_CheckChild1Type, MVT::i32, ++/*100053*/ OPC_CheckChild2Integer, 1, ++/*100055*/ OPC_CheckChild2Type, MVT::i32, ++/*100057*/ OPC_CheckChild3Integer, 1, ++/*100059*/ OPC_CheckChild3Type, MVT::i32, ++/*100061*/ OPC_CheckChild4Integer, 1, ++/*100063*/ OPC_CheckChild4Type, MVT::i32, ++/*100065*/ OPC_MoveChild5, ++/*100066*/ OPC_CheckInteger, 1, ++/*100068*/ OPC_CheckType, MVT::i32, ++/*100070*/ OPC_MoveParent, ++/*100071*/ OPC_MoveChild6, ++/*100072*/ OPC_CheckInteger, 1, ++/*100074*/ OPC_CheckType, MVT::i32, ++/*100076*/ OPC_MoveParent, ++/*100077*/ OPC_MoveChild7, ++/*100078*/ OPC_CheckInteger, 1, ++/*100080*/ OPC_CheckType, MVT::i32, ++/*100082*/ OPC_MoveParent, ++/*100083*/ OPC_MoveChild, 8, ++/*100085*/ OPC_CheckInteger, 1, ++/*100087*/ OPC_CheckType, MVT::i32, ++/*100089*/ OPC_MoveParent, ++/*100090*/ OPC_MoveChild, 9, ++/*100092*/ OPC_CheckInteger, 1, ++/*100094*/ OPC_CheckType, MVT::i32, ++/*100096*/ OPC_MoveParent, ++/*100097*/ OPC_MoveChild, 10, ++/*100099*/ OPC_CheckInteger, 1, ++/*100101*/ OPC_CheckType, MVT::i32, ++/*100103*/ OPC_MoveParent, ++/*100104*/ OPC_MoveChild, 11, ++/*100106*/ OPC_CheckInteger, 1, ++/*100108*/ OPC_CheckType, MVT::i32, ++/*100110*/ OPC_MoveParent, ++/*100111*/ OPC_MoveChild, 12, ++/*100113*/ OPC_CheckInteger, 1, ++/*100115*/ OPC_CheckType, MVT::i32, ++/*100117*/ OPC_MoveParent, ++/*100118*/ OPC_MoveChild, 13, ++/*100120*/ OPC_CheckInteger, 1, ++/*100122*/ OPC_CheckType, MVT::i32, ++/*100124*/ OPC_MoveParent, ++/*100125*/ OPC_MoveChild, 14, ++/*100127*/ OPC_CheckInteger, 1, ++/*100129*/ OPC_CheckType, MVT::i32, ++/*100131*/ OPC_MoveParent, ++/*100132*/ OPC_MoveChild, 15, ++/*100134*/ OPC_CheckInteger, 1, ++/*100136*/ OPC_CheckType, MVT::i32, ++/*100138*/ OPC_MoveParent, ++/*100139*/ OPC_MoveChild, 16, ++/*100141*/ OPC_CheckInteger, 1, ++/*100143*/ OPC_CheckType, MVT::i32, ++/*100145*/ OPC_MoveParent, ++/*100146*/ OPC_MoveChild, 17, ++/*100148*/ OPC_CheckInteger, 1, ++/*100150*/ OPC_CheckType, MVT::i32, ++/*100152*/ OPC_MoveParent, ++/*100153*/ OPC_MoveChild, 18, ++/*100155*/ OPC_CheckInteger, 1, ++/*100157*/ OPC_CheckType, MVT::i32, ++/*100159*/ OPC_MoveParent, ++/*100160*/ OPC_MoveChild, 19, ++/*100162*/ OPC_CheckInteger, 1, ++/*100164*/ OPC_CheckType, MVT::i32, ++/*100166*/ OPC_MoveParent, ++/*100167*/ OPC_MoveChild, 20, ++/*100169*/ OPC_CheckInteger, 1, ++/*100171*/ OPC_CheckType, MVT::i32, ++/*100173*/ OPC_MoveParent, ++/*100174*/ OPC_MoveChild, 21, ++/*100176*/ OPC_CheckInteger, 1, ++/*100178*/ OPC_CheckType, MVT::i32, ++/*100180*/ OPC_MoveParent, ++/*100181*/ OPC_MoveChild, 22, ++/*100183*/ OPC_CheckInteger, 1, ++/*100185*/ OPC_CheckType, MVT::i32, ++/*100187*/ OPC_MoveParent, ++/*100188*/ OPC_MoveChild, 23, ++/*100190*/ OPC_CheckInteger, 1, ++/*100192*/ OPC_CheckType, MVT::i32, ++/*100194*/ OPC_MoveParent, ++/*100195*/ OPC_MoveChild, 24, ++/*100197*/ OPC_CheckInteger, 1, ++/*100199*/ OPC_CheckType, MVT::i32, ++/*100201*/ OPC_MoveParent, ++/*100202*/ OPC_MoveChild, 25, ++/*100204*/ OPC_CheckInteger, 1, ++/*100206*/ OPC_CheckType, MVT::i32, ++/*100208*/ OPC_MoveParent, ++/*100209*/ OPC_MoveChild, 26, ++/*100211*/ OPC_CheckInteger, 1, ++/*100213*/ OPC_CheckType, MVT::i32, ++/*100215*/ OPC_MoveParent, ++/*100216*/ OPC_MoveChild, 27, ++/*100218*/ OPC_CheckInteger, 1, ++/*100220*/ OPC_CheckType, MVT::i32, ++/*100222*/ OPC_MoveParent, ++/*100223*/ OPC_MoveChild, 28, ++/*100225*/ OPC_CheckInteger, 1, ++/*100227*/ OPC_CheckType, MVT::i32, ++/*100229*/ OPC_MoveParent, ++/*100230*/ OPC_MoveChild, 29, ++/*100232*/ OPC_CheckInteger, 1, ++/*100234*/ OPC_CheckType, MVT::i32, ++/*100236*/ OPC_MoveParent, ++/*100237*/ OPC_MoveChild, 30, ++/*100239*/ OPC_CheckInteger, 1, ++/*100241*/ OPC_CheckType, MVT::i32, ++/*100243*/ OPC_MoveParent, ++/*100244*/ OPC_MoveChild, 31, ++/*100246*/ OPC_CheckInteger, 1, ++/*100248*/ OPC_CheckType, MVT::i32, ++/*100250*/ OPC_MoveParent, ++/*100251*/ OPC_CheckType, MVT::v32i8, ++/*100253*/ OPC_MoveParent, ++/*100254*/ OPC_CheckType, MVT::v32i8, ++/*100256*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*100258*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b), LASX256B:{ *:[v32i8] }:$a), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*100266*/ /*Scope*/ 17|128,5/*657*/, /*->100925*/ ++/*100268*/ OPC_CheckChild0Same, 0, ++/*100270*/ OPC_CheckChild1Same, 1, ++/*100272*/ OPC_MoveParent, ++/*100273*/ OPC_MoveChild1, ++/*100274*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*100277*/ OPC_CheckChild0Integer, 1, ++/*100279*/ OPC_CheckChild0Type, MVT::i32, ++/*100281*/ OPC_CheckChild1Integer, 1, ++/*100283*/ OPC_CheckChild1Type, MVT::i32, ++/*100285*/ OPC_CheckChild2Integer, 1, ++/*100287*/ OPC_CheckChild2Type, MVT::i32, ++/*100289*/ OPC_CheckChild3Integer, 1, ++/*100291*/ OPC_CheckChild3Type, MVT::i32, ++/*100293*/ OPC_CheckChild4Integer, 1, ++/*100295*/ OPC_CheckChild4Type, MVT::i32, ++/*100297*/ OPC_MoveChild5, ++/*100298*/ OPC_CheckInteger, 1, ++/*100300*/ OPC_CheckType, MVT::i32, ++/*100302*/ OPC_MoveParent, ++/*100303*/ OPC_MoveChild6, ++/*100304*/ OPC_CheckInteger, 1, ++/*100306*/ OPC_CheckType, MVT::i32, ++/*100308*/ OPC_MoveParent, ++/*100309*/ OPC_MoveChild7, ++/*100310*/ OPC_CheckInteger, 1, ++/*100312*/ OPC_CheckType, MVT::i32, ++/*100314*/ OPC_MoveParent, ++/*100315*/ OPC_MoveChild, 8, ++/*100317*/ OPC_CheckInteger, 1, ++/*100319*/ OPC_CheckType, MVT::i32, ++/*100321*/ OPC_MoveParent, ++/*100322*/ OPC_MoveChild, 9, ++/*100324*/ OPC_CheckInteger, 1, ++/*100326*/ OPC_CheckType, MVT::i32, ++/*100328*/ OPC_MoveParent, ++/*100329*/ OPC_MoveChild, 10, ++/*100331*/ OPC_CheckInteger, 1, ++/*100333*/ OPC_CheckType, MVT::i32, ++/*100335*/ OPC_MoveParent, ++/*100336*/ OPC_MoveChild, 11, ++/*100338*/ OPC_CheckInteger, 1, ++/*100340*/ OPC_CheckType, MVT::i32, ++/*100342*/ OPC_MoveParent, ++/*100343*/ OPC_MoveChild, 12, ++/*100345*/ OPC_CheckInteger, 1, ++/*100347*/ OPC_CheckType, MVT::i32, ++/*100349*/ OPC_MoveParent, ++/*100350*/ OPC_MoveChild, 13, ++/*100352*/ OPC_CheckInteger, 1, ++/*100354*/ OPC_CheckType, MVT::i32, ++/*100356*/ OPC_MoveParent, ++/*100357*/ OPC_MoveChild, 14, ++/*100359*/ OPC_CheckInteger, 1, ++/*100361*/ OPC_CheckType, MVT::i32, ++/*100363*/ OPC_MoveParent, ++/*100364*/ OPC_MoveChild, 15, ++/*100366*/ OPC_CheckInteger, 1, ++/*100368*/ OPC_CheckType, MVT::i32, ++/*100370*/ OPC_MoveParent, ++/*100371*/ OPC_MoveChild, 16, ++/*100373*/ OPC_CheckInteger, 1, ++/*100375*/ OPC_CheckType, MVT::i32, ++/*100377*/ OPC_MoveParent, ++/*100378*/ OPC_MoveChild, 17, ++/*100380*/ OPC_CheckInteger, 1, ++/*100382*/ OPC_CheckType, MVT::i32, ++/*100384*/ OPC_MoveParent, ++/*100385*/ OPC_MoveChild, 18, ++/*100387*/ OPC_CheckInteger, 1, ++/*100389*/ OPC_CheckType, MVT::i32, ++/*100391*/ OPC_MoveParent, ++/*100392*/ OPC_MoveChild, 19, ++/*100394*/ OPC_CheckInteger, 1, ++/*100396*/ OPC_CheckType, MVT::i32, ++/*100398*/ OPC_MoveParent, ++/*100399*/ OPC_MoveChild, 20, ++/*100401*/ OPC_CheckInteger, 1, ++/*100403*/ OPC_CheckType, MVT::i32, ++/*100405*/ OPC_MoveParent, ++/*100406*/ OPC_MoveChild, 21, ++/*100408*/ OPC_CheckInteger, 1, ++/*100410*/ OPC_CheckType, MVT::i32, ++/*100412*/ OPC_MoveParent, ++/*100413*/ OPC_MoveChild, 22, ++/*100415*/ OPC_CheckInteger, 1, ++/*100417*/ OPC_CheckType, MVT::i32, ++/*100419*/ OPC_MoveParent, ++/*100420*/ OPC_MoveChild, 23, ++/*100422*/ OPC_CheckInteger, 1, ++/*100424*/ OPC_CheckType, MVT::i32, ++/*100426*/ OPC_MoveParent, ++/*100427*/ OPC_MoveChild, 24, ++/*100429*/ OPC_CheckInteger, 1, ++/*100431*/ OPC_CheckType, MVT::i32, ++/*100433*/ OPC_MoveParent, ++/*100434*/ OPC_MoveChild, 25, ++/*100436*/ OPC_CheckInteger, 1, ++/*100438*/ OPC_CheckType, MVT::i32, ++/*100440*/ OPC_MoveParent, ++/*100441*/ OPC_MoveChild, 26, ++/*100443*/ OPC_CheckInteger, 1, ++/*100445*/ OPC_CheckType, MVT::i32, ++/*100447*/ OPC_MoveParent, ++/*100448*/ OPC_MoveChild, 27, ++/*100450*/ OPC_CheckInteger, 1, ++/*100452*/ OPC_CheckType, MVT::i32, ++/*100454*/ OPC_MoveParent, ++/*100455*/ OPC_MoveChild, 28, ++/*100457*/ OPC_CheckInteger, 1, ++/*100459*/ OPC_CheckType, MVT::i32, ++/*100461*/ OPC_MoveParent, ++/*100462*/ OPC_MoveChild, 29, ++/*100464*/ OPC_CheckInteger, 1, ++/*100466*/ OPC_CheckType, MVT::i32, ++/*100468*/ OPC_MoveParent, ++/*100469*/ OPC_MoveChild, 30, ++/*100471*/ OPC_CheckInteger, 1, ++/*100473*/ OPC_CheckType, MVT::i32, ++/*100475*/ OPC_MoveParent, ++/*100476*/ OPC_MoveChild, 31, ++/*100478*/ OPC_CheckInteger, 1, ++/*100480*/ OPC_CheckType, MVT::i32, ++/*100482*/ OPC_MoveParent, ++/*100483*/ OPC_MoveParent, ++/*100484*/ OPC_MoveParent, ++/*100485*/ OPC_MoveChild1, ++/*100486*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*100489*/ OPC_CheckChild0Integer, 7, ++/*100491*/ OPC_CheckChild0Type, MVT::i32, ++/*100493*/ OPC_CheckChild1Integer, 7, ++/*100495*/ OPC_CheckChild1Type, MVT::i32, ++/*100497*/ OPC_CheckChild2Integer, 7, ++/*100499*/ OPC_CheckChild2Type, MVT::i32, ++/*100501*/ OPC_CheckChild3Integer, 7, ++/*100503*/ OPC_CheckChild3Type, MVT::i32, ++/*100505*/ OPC_CheckChild4Integer, 7, ++/*100507*/ OPC_CheckChild4Type, MVT::i32, ++/*100509*/ OPC_MoveChild5, ++/*100510*/ OPC_CheckInteger, 7, ++/*100512*/ OPC_CheckType, MVT::i32, ++/*100514*/ OPC_MoveParent, ++/*100515*/ OPC_MoveChild6, ++/*100516*/ OPC_CheckInteger, 7, ++/*100518*/ OPC_CheckType, MVT::i32, ++/*100520*/ OPC_MoveParent, ++/*100521*/ OPC_MoveChild7, ++/*100522*/ OPC_CheckInteger, 7, ++/*100524*/ OPC_CheckType, MVT::i32, ++/*100526*/ OPC_MoveParent, ++/*100527*/ OPC_MoveChild, 8, ++/*100529*/ OPC_CheckInteger, 7, ++/*100531*/ OPC_CheckType, MVT::i32, ++/*100533*/ OPC_MoveParent, ++/*100534*/ OPC_MoveChild, 9, ++/*100536*/ OPC_CheckInteger, 7, ++/*100538*/ OPC_CheckType, MVT::i32, ++/*100540*/ OPC_MoveParent, ++/*100541*/ OPC_MoveChild, 10, ++/*100543*/ OPC_CheckInteger, 7, ++/*100545*/ OPC_CheckType, MVT::i32, ++/*100547*/ OPC_MoveParent, ++/*100548*/ OPC_MoveChild, 11, ++/*100550*/ OPC_CheckInteger, 7, ++/*100552*/ OPC_CheckType, MVT::i32, ++/*100554*/ OPC_MoveParent, ++/*100555*/ OPC_MoveChild, 12, ++/*100557*/ OPC_CheckInteger, 7, ++/*100559*/ OPC_CheckType, MVT::i32, ++/*100561*/ OPC_MoveParent, ++/*100562*/ OPC_MoveChild, 13, ++/*100564*/ OPC_CheckInteger, 7, ++/*100566*/ OPC_CheckType, MVT::i32, ++/*100568*/ OPC_MoveParent, ++/*100569*/ OPC_MoveChild, 14, ++/*100571*/ OPC_CheckInteger, 7, ++/*100573*/ OPC_CheckType, MVT::i32, ++/*100575*/ OPC_MoveParent, ++/*100576*/ OPC_MoveChild, 15, ++/*100578*/ OPC_CheckInteger, 7, ++/*100580*/ OPC_CheckType, MVT::i32, ++/*100582*/ OPC_MoveParent, ++/*100583*/ OPC_MoveChild, 16, ++/*100585*/ OPC_CheckInteger, 7, ++/*100587*/ OPC_CheckType, MVT::i32, ++/*100589*/ OPC_MoveParent, ++/*100590*/ OPC_MoveChild, 17, ++/*100592*/ OPC_CheckInteger, 7, ++/*100594*/ OPC_CheckType, MVT::i32, ++/*100596*/ OPC_MoveParent, ++/*100597*/ OPC_MoveChild, 18, ++/*100599*/ OPC_CheckInteger, 7, ++/*100601*/ OPC_CheckType, MVT::i32, ++/*100603*/ OPC_MoveParent, ++/*100604*/ OPC_MoveChild, 19, ++/*100606*/ OPC_CheckInteger, 7, ++/*100608*/ OPC_CheckType, MVT::i32, ++/*100610*/ OPC_MoveParent, ++/*100611*/ OPC_MoveChild, 20, ++/*100613*/ OPC_CheckInteger, 7, ++/*100615*/ OPC_CheckType, MVT::i32, ++/*100617*/ OPC_MoveParent, ++/*100618*/ OPC_MoveChild, 21, ++/*100620*/ OPC_CheckInteger, 7, ++/*100622*/ OPC_CheckType, MVT::i32, ++/*100624*/ OPC_MoveParent, ++/*100625*/ OPC_MoveChild, 22, ++/*100627*/ OPC_CheckInteger, 7, ++/*100629*/ OPC_CheckType, MVT::i32, ++/*100631*/ OPC_MoveParent, ++/*100632*/ OPC_MoveChild, 23, ++/*100634*/ OPC_CheckInteger, 7, ++/*100636*/ OPC_CheckType, MVT::i32, ++/*100638*/ OPC_MoveParent, ++/*100639*/ OPC_MoveChild, 24, ++/*100641*/ OPC_CheckInteger, 7, ++/*100643*/ OPC_CheckType, MVT::i32, ++/*100645*/ OPC_MoveParent, ++/*100646*/ OPC_MoveChild, 25, ++/*100648*/ OPC_CheckInteger, 7, ++/*100650*/ OPC_CheckType, MVT::i32, ++/*100652*/ OPC_MoveParent, ++/*100653*/ OPC_MoveChild, 26, ++/*100655*/ OPC_CheckInteger, 7, ++/*100657*/ OPC_CheckType, MVT::i32, ++/*100659*/ OPC_MoveParent, ++/*100660*/ OPC_MoveChild, 27, ++/*100662*/ OPC_CheckInteger, 7, ++/*100664*/ OPC_CheckType, MVT::i32, ++/*100666*/ OPC_MoveParent, ++/*100667*/ OPC_MoveChild, 28, ++/*100669*/ OPC_CheckInteger, 7, ++/*100671*/ OPC_CheckType, MVT::i32, ++/*100673*/ OPC_MoveParent, ++/*100674*/ OPC_MoveChild, 29, ++/*100676*/ OPC_CheckInteger, 7, ++/*100678*/ OPC_CheckType, MVT::i32, ++/*100680*/ OPC_MoveParent, ++/*100681*/ OPC_MoveChild, 30, ++/*100683*/ OPC_CheckInteger, 7, ++/*100685*/ OPC_CheckType, MVT::i32, ++/*100687*/ OPC_MoveParent, ++/*100688*/ OPC_MoveChild, 31, ++/*100690*/ OPC_CheckInteger, 7, ++/*100692*/ OPC_CheckType, MVT::i32, ++/*100694*/ OPC_MoveParent, ++/*100695*/ OPC_CheckType, MVT::v32i8, ++/*100697*/ OPC_MoveParent, ++/*100698*/ OPC_MoveParent, ++/*100699*/ OPC_MoveParent, ++/*100700*/ OPC_MoveChild1, ++/*100701*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*100704*/ OPC_CheckChild0Integer, 1, ++/*100706*/ OPC_CheckChild0Type, MVT::i32, ++/*100708*/ OPC_CheckChild1Integer, 1, ++/*100710*/ OPC_CheckChild1Type, MVT::i32, ++/*100712*/ OPC_CheckChild2Integer, 1, ++/*100714*/ OPC_CheckChild2Type, MVT::i32, ++/*100716*/ OPC_CheckChild3Integer, 1, ++/*100718*/ OPC_CheckChild3Type, MVT::i32, ++/*100720*/ OPC_CheckChild4Integer, 1, ++/*100722*/ OPC_CheckChild4Type, MVT::i32, ++/*100724*/ OPC_MoveChild5, ++/*100725*/ OPC_CheckInteger, 1, ++/*100727*/ OPC_CheckType, MVT::i32, ++/*100729*/ OPC_MoveParent, ++/*100730*/ OPC_MoveChild6, ++/*100731*/ OPC_CheckInteger, 1, ++/*100733*/ OPC_CheckType, MVT::i32, ++/*100735*/ OPC_MoveParent, ++/*100736*/ OPC_MoveChild7, ++/*100737*/ OPC_CheckInteger, 1, ++/*100739*/ OPC_CheckType, MVT::i32, ++/*100741*/ OPC_MoveParent, ++/*100742*/ OPC_MoveChild, 8, ++/*100744*/ OPC_CheckInteger, 1, ++/*100746*/ OPC_CheckType, MVT::i32, ++/*100748*/ OPC_MoveParent, ++/*100749*/ OPC_MoveChild, 9, ++/*100751*/ OPC_CheckInteger, 1, ++/*100753*/ OPC_CheckType, MVT::i32, ++/*100755*/ OPC_MoveParent, ++/*100756*/ OPC_MoveChild, 10, ++/*100758*/ OPC_CheckInteger, 1, ++/*100760*/ OPC_CheckType, MVT::i32, ++/*100762*/ OPC_MoveParent, ++/*100763*/ OPC_MoveChild, 11, ++/*100765*/ OPC_CheckInteger, 1, ++/*100767*/ OPC_CheckType, MVT::i32, ++/*100769*/ OPC_MoveParent, ++/*100770*/ OPC_MoveChild, 12, ++/*100772*/ OPC_CheckInteger, 1, ++/*100774*/ OPC_CheckType, MVT::i32, ++/*100776*/ OPC_MoveParent, ++/*100777*/ OPC_MoveChild, 13, ++/*100779*/ OPC_CheckInteger, 1, ++/*100781*/ OPC_CheckType, MVT::i32, ++/*100783*/ OPC_MoveParent, ++/*100784*/ OPC_MoveChild, 14, ++/*100786*/ OPC_CheckInteger, 1, ++/*100788*/ OPC_CheckType, MVT::i32, ++/*100790*/ OPC_MoveParent, ++/*100791*/ OPC_MoveChild, 15, ++/*100793*/ OPC_CheckInteger, 1, ++/*100795*/ OPC_CheckType, MVT::i32, ++/*100797*/ OPC_MoveParent, ++/*100798*/ OPC_MoveChild, 16, ++/*100800*/ OPC_CheckInteger, 1, ++/*100802*/ OPC_CheckType, MVT::i32, ++/*100804*/ OPC_MoveParent, ++/*100805*/ OPC_MoveChild, 17, ++/*100807*/ OPC_CheckInteger, 1, ++/*100809*/ OPC_CheckType, MVT::i32, ++/*100811*/ OPC_MoveParent, ++/*100812*/ OPC_MoveChild, 18, ++/*100814*/ OPC_CheckInteger, 1, ++/*100816*/ OPC_CheckType, MVT::i32, ++/*100818*/ OPC_MoveParent, ++/*100819*/ OPC_MoveChild, 19, ++/*100821*/ OPC_CheckInteger, 1, ++/*100823*/ OPC_CheckType, MVT::i32, ++/*100825*/ OPC_MoveParent, ++/*100826*/ OPC_MoveChild, 20, ++/*100828*/ OPC_CheckInteger, 1, ++/*100830*/ OPC_CheckType, MVT::i32, ++/*100832*/ OPC_MoveParent, ++/*100833*/ OPC_MoveChild, 21, ++/*100835*/ OPC_CheckInteger, 1, ++/*100837*/ OPC_CheckType, MVT::i32, ++/*100839*/ OPC_MoveParent, ++/*100840*/ OPC_MoveChild, 22, ++/*100842*/ OPC_CheckInteger, 1, ++/*100844*/ OPC_CheckType, MVT::i32, ++/*100846*/ OPC_MoveParent, ++/*100847*/ OPC_MoveChild, 23, ++/*100849*/ OPC_CheckInteger, 1, ++/*100851*/ OPC_CheckType, MVT::i32, ++/*100853*/ OPC_MoveParent, ++/*100854*/ OPC_MoveChild, 24, ++/*100856*/ OPC_CheckInteger, 1, ++/*100858*/ OPC_CheckType, MVT::i32, ++/*100860*/ OPC_MoveParent, ++/*100861*/ OPC_MoveChild, 25, ++/*100863*/ OPC_CheckInteger, 1, ++/*100865*/ OPC_CheckType, MVT::i32, ++/*100867*/ OPC_MoveParent, ++/*100868*/ OPC_MoveChild, 26, ++/*100870*/ OPC_CheckInteger, 1, ++/*100872*/ OPC_CheckType, MVT::i32, ++/*100874*/ OPC_MoveParent, ++/*100875*/ OPC_MoveChild, 27, ++/*100877*/ OPC_CheckInteger, 1, ++/*100879*/ OPC_CheckType, MVT::i32, ++/*100881*/ OPC_MoveParent, ++/*100882*/ OPC_MoveChild, 28, ++/*100884*/ OPC_CheckInteger, 1, ++/*100886*/ OPC_CheckType, MVT::i32, ++/*100888*/ OPC_MoveParent, ++/*100889*/ OPC_MoveChild, 29, ++/*100891*/ OPC_CheckInteger, 1, ++/*100893*/ OPC_CheckType, MVT::i32, ++/*100895*/ OPC_MoveParent, ++/*100896*/ OPC_MoveChild, 30, ++/*100898*/ OPC_CheckInteger, 1, ++/*100900*/ OPC_CheckType, MVT::i32, ++/*100902*/ OPC_MoveParent, ++/*100903*/ OPC_MoveChild, 31, ++/*100905*/ OPC_CheckInteger, 1, ++/*100907*/ OPC_CheckType, MVT::i32, ++/*100909*/ OPC_MoveParent, ++/*100910*/ OPC_CheckType, MVT::v32i8, ++/*100912*/ OPC_MoveParent, ++/*100913*/ OPC_CheckType, MVT::v32i8, ++/*100915*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*100917*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b), LASX256B:{ *:[v32i8] }:$a), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*100925*/ 0, /*End of Scope*/ ++/*100926*/ /*Scope*/ 42|128,10/*1322*/, /*->102250*/ ++/*100928*/ OPC_CheckChild0Same, 0, ++/*100930*/ OPC_MoveChild1, ++/*100931*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*100934*/ OPC_Scope, 15|128,5/*655*/, /*->101592*/ // 2 children in Scope ++/*100937*/ OPC_MoveChild0, ++/*100938*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*100941*/ OPC_CheckChild0Integer, 1, ++/*100943*/ OPC_CheckChild0Type, MVT::i32, ++/*100945*/ OPC_CheckChild1Integer, 1, ++/*100947*/ OPC_CheckChild1Type, MVT::i32, ++/*100949*/ OPC_CheckChild2Integer, 1, ++/*100951*/ OPC_CheckChild2Type, MVT::i32, ++/*100953*/ OPC_CheckChild3Integer, 1, ++/*100955*/ OPC_CheckChild3Type, MVT::i32, ++/*100957*/ OPC_CheckChild4Integer, 1, ++/*100959*/ OPC_CheckChild4Type, MVT::i32, ++/*100961*/ OPC_MoveChild5, ++/*100962*/ OPC_CheckInteger, 1, ++/*100964*/ OPC_CheckType, MVT::i32, ++/*100966*/ OPC_MoveParent, ++/*100967*/ OPC_MoveChild6, ++/*100968*/ OPC_CheckInteger, 1, ++/*100970*/ OPC_CheckType, MVT::i32, ++/*100972*/ OPC_MoveParent, ++/*100973*/ OPC_MoveChild7, ++/*100974*/ OPC_CheckInteger, 1, ++/*100976*/ OPC_CheckType, MVT::i32, ++/*100978*/ OPC_MoveParent, ++/*100979*/ OPC_MoveChild, 8, ++/*100981*/ OPC_CheckInteger, 1, ++/*100983*/ OPC_CheckType, MVT::i32, ++/*100985*/ OPC_MoveParent, ++/*100986*/ OPC_MoveChild, 9, ++/*100988*/ OPC_CheckInteger, 1, ++/*100990*/ OPC_CheckType, MVT::i32, ++/*100992*/ OPC_MoveParent, ++/*100993*/ OPC_MoveChild, 10, ++/*100995*/ OPC_CheckInteger, 1, ++/*100997*/ OPC_CheckType, MVT::i32, ++/*100999*/ OPC_MoveParent, ++/*101000*/ OPC_MoveChild, 11, ++/*101002*/ OPC_CheckInteger, 1, ++/*101004*/ OPC_CheckType, MVT::i32, ++/*101006*/ OPC_MoveParent, ++/*101007*/ OPC_MoveChild, 12, ++/*101009*/ OPC_CheckInteger, 1, ++/*101011*/ OPC_CheckType, MVT::i32, ++/*101013*/ OPC_MoveParent, ++/*101014*/ OPC_MoveChild, 13, ++/*101016*/ OPC_CheckInteger, 1, ++/*101018*/ OPC_CheckType, MVT::i32, ++/*101020*/ OPC_MoveParent, ++/*101021*/ OPC_MoveChild, 14, ++/*101023*/ OPC_CheckInteger, 1, ++/*101025*/ OPC_CheckType, MVT::i32, ++/*101027*/ OPC_MoveParent, ++/*101028*/ OPC_MoveChild, 15, ++/*101030*/ OPC_CheckInteger, 1, ++/*101032*/ OPC_CheckType, MVT::i32, ++/*101034*/ OPC_MoveParent, ++/*101035*/ OPC_MoveChild, 16, ++/*101037*/ OPC_CheckInteger, 1, ++/*101039*/ OPC_CheckType, MVT::i32, ++/*101041*/ OPC_MoveParent, ++/*101042*/ OPC_MoveChild, 17, ++/*101044*/ OPC_CheckInteger, 1, ++/*101046*/ OPC_CheckType, MVT::i32, ++/*101048*/ OPC_MoveParent, ++/*101049*/ OPC_MoveChild, 18, ++/*101051*/ OPC_CheckInteger, 1, ++/*101053*/ OPC_CheckType, MVT::i32, ++/*101055*/ OPC_MoveParent, ++/*101056*/ OPC_MoveChild, 19, ++/*101058*/ OPC_CheckInteger, 1, ++/*101060*/ OPC_CheckType, MVT::i32, ++/*101062*/ OPC_MoveParent, ++/*101063*/ OPC_MoveChild, 20, ++/*101065*/ OPC_CheckInteger, 1, ++/*101067*/ OPC_CheckType, MVT::i32, ++/*101069*/ OPC_MoveParent, ++/*101070*/ OPC_MoveChild, 21, ++/*101072*/ OPC_CheckInteger, 1, ++/*101074*/ OPC_CheckType, MVT::i32, ++/*101076*/ OPC_MoveParent, ++/*101077*/ OPC_MoveChild, 22, ++/*101079*/ OPC_CheckInteger, 1, ++/*101081*/ OPC_CheckType, MVT::i32, ++/*101083*/ OPC_MoveParent, ++/*101084*/ OPC_MoveChild, 23, ++/*101086*/ OPC_CheckInteger, 1, ++/*101088*/ OPC_CheckType, MVT::i32, ++/*101090*/ OPC_MoveParent, ++/*101091*/ OPC_MoveChild, 24, ++/*101093*/ OPC_CheckInteger, 1, ++/*101095*/ OPC_CheckType, MVT::i32, ++/*101097*/ OPC_MoveParent, ++/*101098*/ OPC_MoveChild, 25, ++/*101100*/ OPC_CheckInteger, 1, ++/*101102*/ OPC_CheckType, MVT::i32, ++/*101104*/ OPC_MoveParent, ++/*101105*/ OPC_MoveChild, 26, ++/*101107*/ OPC_CheckInteger, 1, ++/*101109*/ OPC_CheckType, MVT::i32, ++/*101111*/ OPC_MoveParent, ++/*101112*/ OPC_MoveChild, 27, ++/*101114*/ OPC_CheckInteger, 1, ++/*101116*/ OPC_CheckType, MVT::i32, ++/*101118*/ OPC_MoveParent, ++/*101119*/ OPC_MoveChild, 28, ++/*101121*/ OPC_CheckInteger, 1, ++/*101123*/ OPC_CheckType, MVT::i32, ++/*101125*/ OPC_MoveParent, ++/*101126*/ OPC_MoveChild, 29, ++/*101128*/ OPC_CheckInteger, 1, ++/*101130*/ OPC_CheckType, MVT::i32, ++/*101132*/ OPC_MoveParent, ++/*101133*/ OPC_MoveChild, 30, ++/*101135*/ OPC_CheckInteger, 1, ++/*101137*/ OPC_CheckType, MVT::i32, ++/*101139*/ OPC_MoveParent, ++/*101140*/ OPC_MoveChild, 31, ++/*101142*/ OPC_CheckInteger, 1, ++/*101144*/ OPC_CheckType, MVT::i32, ++/*101146*/ OPC_MoveParent, ++/*101147*/ OPC_MoveParent, ++/*101148*/ OPC_CheckChild1Same, 1, ++/*101150*/ OPC_MoveParent, ++/*101151*/ OPC_MoveParent, ++/*101152*/ OPC_MoveChild1, ++/*101153*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*101156*/ OPC_CheckChild0Integer, 7, ++/*101158*/ OPC_CheckChild0Type, MVT::i32, ++/*101160*/ OPC_CheckChild1Integer, 7, ++/*101162*/ OPC_CheckChild1Type, MVT::i32, ++/*101164*/ OPC_CheckChild2Integer, 7, ++/*101166*/ OPC_CheckChild2Type, MVT::i32, ++/*101168*/ OPC_CheckChild3Integer, 7, ++/*101170*/ OPC_CheckChild3Type, MVT::i32, ++/*101172*/ OPC_CheckChild4Integer, 7, ++/*101174*/ OPC_CheckChild4Type, MVT::i32, ++/*101176*/ OPC_MoveChild5, ++/*101177*/ OPC_CheckInteger, 7, ++/*101179*/ OPC_CheckType, MVT::i32, ++/*101181*/ OPC_MoveParent, ++/*101182*/ OPC_MoveChild6, ++/*101183*/ OPC_CheckInteger, 7, ++/*101185*/ OPC_CheckType, MVT::i32, ++/*101187*/ OPC_MoveParent, ++/*101188*/ OPC_MoveChild7, ++/*101189*/ OPC_CheckInteger, 7, ++/*101191*/ OPC_CheckType, MVT::i32, ++/*101193*/ OPC_MoveParent, ++/*101194*/ OPC_MoveChild, 8, ++/*101196*/ OPC_CheckInteger, 7, ++/*101198*/ OPC_CheckType, MVT::i32, ++/*101200*/ OPC_MoveParent, ++/*101201*/ OPC_MoveChild, 9, ++/*101203*/ OPC_CheckInteger, 7, ++/*101205*/ OPC_CheckType, MVT::i32, ++/*101207*/ OPC_MoveParent, ++/*101208*/ OPC_MoveChild, 10, ++/*101210*/ OPC_CheckInteger, 7, ++/*101212*/ OPC_CheckType, MVT::i32, ++/*101214*/ OPC_MoveParent, ++/*101215*/ OPC_MoveChild, 11, ++/*101217*/ OPC_CheckInteger, 7, ++/*101219*/ OPC_CheckType, MVT::i32, ++/*101221*/ OPC_MoveParent, ++/*101222*/ OPC_MoveChild, 12, ++/*101224*/ OPC_CheckInteger, 7, ++/*101226*/ OPC_CheckType, MVT::i32, ++/*101228*/ OPC_MoveParent, ++/*101229*/ OPC_MoveChild, 13, ++/*101231*/ OPC_CheckInteger, 7, ++/*101233*/ OPC_CheckType, MVT::i32, ++/*101235*/ OPC_MoveParent, ++/*101236*/ OPC_MoveChild, 14, ++/*101238*/ OPC_CheckInteger, 7, ++/*101240*/ OPC_CheckType, MVT::i32, ++/*101242*/ OPC_MoveParent, ++/*101243*/ OPC_MoveChild, 15, ++/*101245*/ OPC_CheckInteger, 7, ++/*101247*/ OPC_CheckType, MVT::i32, ++/*101249*/ OPC_MoveParent, ++/*101250*/ OPC_MoveChild, 16, ++/*101252*/ OPC_CheckInteger, 7, ++/*101254*/ OPC_CheckType, MVT::i32, ++/*101256*/ OPC_MoveParent, ++/*101257*/ OPC_MoveChild, 17, ++/*101259*/ OPC_CheckInteger, 7, ++/*101261*/ OPC_CheckType, MVT::i32, ++/*101263*/ OPC_MoveParent, ++/*101264*/ OPC_MoveChild, 18, ++/*101266*/ OPC_CheckInteger, 7, ++/*101268*/ OPC_CheckType, MVT::i32, ++/*101270*/ OPC_MoveParent, ++/*101271*/ OPC_MoveChild, 19, ++/*101273*/ OPC_CheckInteger, 7, ++/*101275*/ OPC_CheckType, MVT::i32, ++/*101277*/ OPC_MoveParent, ++/*101278*/ OPC_MoveChild, 20, ++/*101280*/ OPC_CheckInteger, 7, ++/*101282*/ OPC_CheckType, MVT::i32, ++/*101284*/ OPC_MoveParent, ++/*101285*/ OPC_MoveChild, 21, ++/*101287*/ OPC_CheckInteger, 7, ++/*101289*/ OPC_CheckType, MVT::i32, ++/*101291*/ OPC_MoveParent, ++/*101292*/ OPC_MoveChild, 22, ++/*101294*/ OPC_CheckInteger, 7, ++/*101296*/ OPC_CheckType, MVT::i32, ++/*101298*/ OPC_MoveParent, ++/*101299*/ OPC_MoveChild, 23, ++/*101301*/ OPC_CheckInteger, 7, ++/*101303*/ OPC_CheckType, MVT::i32, ++/*101305*/ OPC_MoveParent, ++/*101306*/ OPC_MoveChild, 24, ++/*101308*/ OPC_CheckInteger, 7, ++/*101310*/ OPC_CheckType, MVT::i32, ++/*101312*/ OPC_MoveParent, ++/*101313*/ OPC_MoveChild, 25, ++/*101315*/ OPC_CheckInteger, 7, ++/*101317*/ OPC_CheckType, MVT::i32, ++/*101319*/ OPC_MoveParent, ++/*101320*/ OPC_MoveChild, 26, ++/*101322*/ OPC_CheckInteger, 7, ++/*101324*/ OPC_CheckType, MVT::i32, ++/*101326*/ OPC_MoveParent, ++/*101327*/ OPC_MoveChild, 27, ++/*101329*/ OPC_CheckInteger, 7, ++/*101331*/ OPC_CheckType, MVT::i32, ++/*101333*/ OPC_MoveParent, ++/*101334*/ OPC_MoveChild, 28, ++/*101336*/ OPC_CheckInteger, 7, ++/*101338*/ OPC_CheckType, MVT::i32, ++/*101340*/ OPC_MoveParent, ++/*101341*/ OPC_MoveChild, 29, ++/*101343*/ OPC_CheckInteger, 7, ++/*101345*/ OPC_CheckType, MVT::i32, ++/*101347*/ OPC_MoveParent, ++/*101348*/ OPC_MoveChild, 30, ++/*101350*/ OPC_CheckInteger, 7, ++/*101352*/ OPC_CheckType, MVT::i32, ++/*101354*/ OPC_MoveParent, ++/*101355*/ OPC_MoveChild, 31, ++/*101357*/ OPC_CheckInteger, 7, ++/*101359*/ OPC_CheckType, MVT::i32, ++/*101361*/ OPC_MoveParent, ++/*101362*/ OPC_CheckType, MVT::v32i8, ++/*101364*/ OPC_MoveParent, ++/*101365*/ OPC_MoveParent, ++/*101366*/ OPC_MoveParent, ++/*101367*/ OPC_MoveChild1, ++/*101368*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*101371*/ OPC_CheckChild0Integer, 1, ++/*101373*/ OPC_CheckChild0Type, MVT::i32, ++/*101375*/ OPC_CheckChild1Integer, 1, ++/*101377*/ OPC_CheckChild1Type, MVT::i32, ++/*101379*/ OPC_CheckChild2Integer, 1, ++/*101381*/ OPC_CheckChild2Type, MVT::i32, ++/*101383*/ OPC_CheckChild3Integer, 1, ++/*101385*/ OPC_CheckChild3Type, MVT::i32, ++/*101387*/ OPC_CheckChild4Integer, 1, ++/*101389*/ OPC_CheckChild4Type, MVT::i32, ++/*101391*/ OPC_MoveChild5, ++/*101392*/ OPC_CheckInteger, 1, ++/*101394*/ OPC_CheckType, MVT::i32, ++/*101396*/ OPC_MoveParent, ++/*101397*/ OPC_MoveChild6, ++/*101398*/ OPC_CheckInteger, 1, ++/*101400*/ OPC_CheckType, MVT::i32, ++/*101402*/ OPC_MoveParent, ++/*101403*/ OPC_MoveChild7, ++/*101404*/ OPC_CheckInteger, 1, ++/*101406*/ OPC_CheckType, MVT::i32, ++/*101408*/ OPC_MoveParent, ++/*101409*/ OPC_MoveChild, 8, ++/*101411*/ OPC_CheckInteger, 1, ++/*101413*/ OPC_CheckType, MVT::i32, ++/*101415*/ OPC_MoveParent, ++/*101416*/ OPC_MoveChild, 9, ++/*101418*/ OPC_CheckInteger, 1, ++/*101420*/ OPC_CheckType, MVT::i32, ++/*101422*/ OPC_MoveParent, ++/*101423*/ OPC_MoveChild, 10, ++/*101425*/ OPC_CheckInteger, 1, ++/*101427*/ OPC_CheckType, MVT::i32, ++/*101429*/ OPC_MoveParent, ++/*101430*/ OPC_MoveChild, 11, ++/*101432*/ OPC_CheckInteger, 1, ++/*101434*/ OPC_CheckType, MVT::i32, ++/*101436*/ OPC_MoveParent, ++/*101437*/ OPC_MoveChild, 12, ++/*101439*/ OPC_CheckInteger, 1, ++/*101441*/ OPC_CheckType, MVT::i32, ++/*101443*/ OPC_MoveParent, ++/*101444*/ OPC_MoveChild, 13, ++/*101446*/ OPC_CheckInteger, 1, ++/*101448*/ OPC_CheckType, MVT::i32, ++/*101450*/ OPC_MoveParent, ++/*101451*/ OPC_MoveChild, 14, ++/*101453*/ OPC_CheckInteger, 1, ++/*101455*/ OPC_CheckType, MVT::i32, ++/*101457*/ OPC_MoveParent, ++/*101458*/ OPC_MoveChild, 15, ++/*101460*/ OPC_CheckInteger, 1, ++/*101462*/ OPC_CheckType, MVT::i32, ++/*101464*/ OPC_MoveParent, ++/*101465*/ OPC_MoveChild, 16, ++/*101467*/ OPC_CheckInteger, 1, ++/*101469*/ OPC_CheckType, MVT::i32, ++/*101471*/ OPC_MoveParent, ++/*101472*/ OPC_MoveChild, 17, ++/*101474*/ OPC_CheckInteger, 1, ++/*101476*/ OPC_CheckType, MVT::i32, ++/*101478*/ OPC_MoveParent, ++/*101479*/ OPC_MoveChild, 18, ++/*101481*/ OPC_CheckInteger, 1, ++/*101483*/ OPC_CheckType, MVT::i32, ++/*101485*/ OPC_MoveParent, ++/*101486*/ OPC_MoveChild, 19, ++/*101488*/ OPC_CheckInteger, 1, ++/*101490*/ OPC_CheckType, MVT::i32, ++/*101492*/ OPC_MoveParent, ++/*101493*/ OPC_MoveChild, 20, ++/*101495*/ OPC_CheckInteger, 1, ++/*101497*/ OPC_CheckType, MVT::i32, ++/*101499*/ OPC_MoveParent, ++/*101500*/ OPC_MoveChild, 21, ++/*101502*/ OPC_CheckInteger, 1, ++/*101504*/ OPC_CheckType, MVT::i32, ++/*101506*/ OPC_MoveParent, ++/*101507*/ OPC_MoveChild, 22, ++/*101509*/ OPC_CheckInteger, 1, ++/*101511*/ OPC_CheckType, MVT::i32, ++/*101513*/ OPC_MoveParent, ++/*101514*/ OPC_MoveChild, 23, ++/*101516*/ OPC_CheckInteger, 1, ++/*101518*/ OPC_CheckType, MVT::i32, ++/*101520*/ OPC_MoveParent, ++/*101521*/ OPC_MoveChild, 24, ++/*101523*/ OPC_CheckInteger, 1, ++/*101525*/ OPC_CheckType, MVT::i32, ++/*101527*/ OPC_MoveParent, ++/*101528*/ OPC_MoveChild, 25, ++/*101530*/ OPC_CheckInteger, 1, ++/*101532*/ OPC_CheckType, MVT::i32, ++/*101534*/ OPC_MoveParent, ++/*101535*/ OPC_MoveChild, 26, ++/*101537*/ OPC_CheckInteger, 1, ++/*101539*/ OPC_CheckType, MVT::i32, ++/*101541*/ OPC_MoveParent, ++/*101542*/ OPC_MoveChild, 27, ++/*101544*/ OPC_CheckInteger, 1, ++/*101546*/ OPC_CheckType, MVT::i32, ++/*101548*/ OPC_MoveParent, ++/*101549*/ OPC_MoveChild, 28, ++/*101551*/ OPC_CheckInteger, 1, ++/*101553*/ OPC_CheckType, MVT::i32, ++/*101555*/ OPC_MoveParent, ++/*101556*/ OPC_MoveChild, 29, ++/*101558*/ OPC_CheckInteger, 1, ++/*101560*/ OPC_CheckType, MVT::i32, ++/*101562*/ OPC_MoveParent, ++/*101563*/ OPC_MoveChild, 30, ++/*101565*/ OPC_CheckInteger, 1, ++/*101567*/ OPC_CheckType, MVT::i32, ++/*101569*/ OPC_MoveParent, ++/*101570*/ OPC_MoveChild, 31, ++/*101572*/ OPC_CheckInteger, 1, ++/*101574*/ OPC_CheckType, MVT::i32, ++/*101576*/ OPC_MoveParent, ++/*101577*/ OPC_CheckType, MVT::v32i8, ++/*101579*/ OPC_MoveParent, ++/*101580*/ OPC_CheckType, MVT::v32i8, ++/*101582*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*101584*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b), LASX256B:{ *:[v32i8] }:$a), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*101592*/ /*Scope*/ 15|128,5/*655*/, /*->102249*/ ++/*101594*/ OPC_CheckChild0Same, 1, ++/*101596*/ OPC_MoveChild1, ++/*101597*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*101600*/ OPC_CheckChild0Integer, 1, ++/*101602*/ OPC_CheckChild0Type, MVT::i32, ++/*101604*/ OPC_CheckChild1Integer, 1, ++/*101606*/ OPC_CheckChild1Type, MVT::i32, ++/*101608*/ OPC_CheckChild2Integer, 1, ++/*101610*/ OPC_CheckChild2Type, MVT::i32, ++/*101612*/ OPC_CheckChild3Integer, 1, ++/*101614*/ OPC_CheckChild3Type, MVT::i32, ++/*101616*/ OPC_CheckChild4Integer, 1, ++/*101618*/ OPC_CheckChild4Type, MVT::i32, ++/*101620*/ OPC_MoveChild5, ++/*101621*/ OPC_CheckInteger, 1, ++/*101623*/ OPC_CheckType, MVT::i32, ++/*101625*/ OPC_MoveParent, ++/*101626*/ OPC_MoveChild6, ++/*101627*/ OPC_CheckInteger, 1, ++/*101629*/ OPC_CheckType, MVT::i32, ++/*101631*/ OPC_MoveParent, ++/*101632*/ OPC_MoveChild7, ++/*101633*/ OPC_CheckInteger, 1, ++/*101635*/ OPC_CheckType, MVT::i32, ++/*101637*/ OPC_MoveParent, ++/*101638*/ OPC_MoveChild, 8, ++/*101640*/ OPC_CheckInteger, 1, ++/*101642*/ OPC_CheckType, MVT::i32, ++/*101644*/ OPC_MoveParent, ++/*101645*/ OPC_MoveChild, 9, ++/*101647*/ OPC_CheckInteger, 1, ++/*101649*/ OPC_CheckType, MVT::i32, ++/*101651*/ OPC_MoveParent, ++/*101652*/ OPC_MoveChild, 10, ++/*101654*/ OPC_CheckInteger, 1, ++/*101656*/ OPC_CheckType, MVT::i32, ++/*101658*/ OPC_MoveParent, ++/*101659*/ OPC_MoveChild, 11, ++/*101661*/ OPC_CheckInteger, 1, ++/*101663*/ OPC_CheckType, MVT::i32, ++/*101665*/ OPC_MoveParent, ++/*101666*/ OPC_MoveChild, 12, ++/*101668*/ OPC_CheckInteger, 1, ++/*101670*/ OPC_CheckType, MVT::i32, ++/*101672*/ OPC_MoveParent, ++/*101673*/ OPC_MoveChild, 13, ++/*101675*/ OPC_CheckInteger, 1, ++/*101677*/ OPC_CheckType, MVT::i32, ++/*101679*/ OPC_MoveParent, ++/*101680*/ OPC_MoveChild, 14, ++/*101682*/ OPC_CheckInteger, 1, ++/*101684*/ OPC_CheckType, MVT::i32, ++/*101686*/ OPC_MoveParent, ++/*101687*/ OPC_MoveChild, 15, ++/*101689*/ OPC_CheckInteger, 1, ++/*101691*/ OPC_CheckType, MVT::i32, ++/*101693*/ OPC_MoveParent, ++/*101694*/ OPC_MoveChild, 16, ++/*101696*/ OPC_CheckInteger, 1, ++/*101698*/ OPC_CheckType, MVT::i32, ++/*101700*/ OPC_MoveParent, ++/*101701*/ OPC_MoveChild, 17, ++/*101703*/ OPC_CheckInteger, 1, ++/*101705*/ OPC_CheckType, MVT::i32, ++/*101707*/ OPC_MoveParent, ++/*101708*/ OPC_MoveChild, 18, ++/*101710*/ OPC_CheckInteger, 1, ++/*101712*/ OPC_CheckType, MVT::i32, ++/*101714*/ OPC_MoveParent, ++/*101715*/ OPC_MoveChild, 19, ++/*101717*/ OPC_CheckInteger, 1, ++/*101719*/ OPC_CheckType, MVT::i32, ++/*101721*/ OPC_MoveParent, ++/*101722*/ OPC_MoveChild, 20, ++/*101724*/ OPC_CheckInteger, 1, ++/*101726*/ OPC_CheckType, MVT::i32, ++/*101728*/ OPC_MoveParent, ++/*101729*/ OPC_MoveChild, 21, ++/*101731*/ OPC_CheckInteger, 1, ++/*101733*/ OPC_CheckType, MVT::i32, ++/*101735*/ OPC_MoveParent, ++/*101736*/ OPC_MoveChild, 22, ++/*101738*/ OPC_CheckInteger, 1, ++/*101740*/ OPC_CheckType, MVT::i32, ++/*101742*/ OPC_MoveParent, ++/*101743*/ OPC_MoveChild, 23, ++/*101745*/ OPC_CheckInteger, 1, ++/*101747*/ OPC_CheckType, MVT::i32, ++/*101749*/ OPC_MoveParent, ++/*101750*/ OPC_MoveChild, 24, ++/*101752*/ OPC_CheckInteger, 1, ++/*101754*/ OPC_CheckType, MVT::i32, ++/*101756*/ OPC_MoveParent, ++/*101757*/ OPC_MoveChild, 25, ++/*101759*/ OPC_CheckInteger, 1, ++/*101761*/ OPC_CheckType, MVT::i32, ++/*101763*/ OPC_MoveParent, ++/*101764*/ OPC_MoveChild, 26, ++/*101766*/ OPC_CheckInteger, 1, ++/*101768*/ OPC_CheckType, MVT::i32, ++/*101770*/ OPC_MoveParent, ++/*101771*/ OPC_MoveChild, 27, ++/*101773*/ OPC_CheckInteger, 1, ++/*101775*/ OPC_CheckType, MVT::i32, ++/*101777*/ OPC_MoveParent, ++/*101778*/ OPC_MoveChild, 28, ++/*101780*/ OPC_CheckInteger, 1, ++/*101782*/ OPC_CheckType, MVT::i32, ++/*101784*/ OPC_MoveParent, ++/*101785*/ OPC_MoveChild, 29, ++/*101787*/ OPC_CheckInteger, 1, ++/*101789*/ OPC_CheckType, MVT::i32, ++/*101791*/ OPC_MoveParent, ++/*101792*/ OPC_MoveChild, 30, ++/*101794*/ OPC_CheckInteger, 1, ++/*101796*/ OPC_CheckType, MVT::i32, ++/*101798*/ OPC_MoveParent, ++/*101799*/ OPC_MoveChild, 31, ++/*101801*/ OPC_CheckInteger, 1, ++/*101803*/ OPC_CheckType, MVT::i32, ++/*101805*/ OPC_MoveParent, ++/*101806*/ OPC_MoveParent, ++/*101807*/ OPC_MoveParent, ++/*101808*/ OPC_MoveParent, ++/*101809*/ OPC_MoveChild1, ++/*101810*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*101813*/ OPC_CheckChild0Integer, 7, ++/*101815*/ OPC_CheckChild0Type, MVT::i32, ++/*101817*/ OPC_CheckChild1Integer, 7, ++/*101819*/ OPC_CheckChild1Type, MVT::i32, ++/*101821*/ OPC_CheckChild2Integer, 7, ++/*101823*/ OPC_CheckChild2Type, MVT::i32, ++/*101825*/ OPC_CheckChild3Integer, 7, ++/*101827*/ OPC_CheckChild3Type, MVT::i32, ++/*101829*/ OPC_CheckChild4Integer, 7, ++/*101831*/ OPC_CheckChild4Type, MVT::i32, ++/*101833*/ OPC_MoveChild5, ++/*101834*/ OPC_CheckInteger, 7, ++/*101836*/ OPC_CheckType, MVT::i32, ++/*101838*/ OPC_MoveParent, ++/*101839*/ OPC_MoveChild6, ++/*101840*/ OPC_CheckInteger, 7, ++/*101842*/ OPC_CheckType, MVT::i32, ++/*101844*/ OPC_MoveParent, ++/*101845*/ OPC_MoveChild7, ++/*101846*/ OPC_CheckInteger, 7, ++/*101848*/ OPC_CheckType, MVT::i32, ++/*101850*/ OPC_MoveParent, ++/*101851*/ OPC_MoveChild, 8, ++/*101853*/ OPC_CheckInteger, 7, ++/*101855*/ OPC_CheckType, MVT::i32, ++/*101857*/ OPC_MoveParent, ++/*101858*/ OPC_MoveChild, 9, ++/*101860*/ OPC_CheckInteger, 7, ++/*101862*/ OPC_CheckType, MVT::i32, ++/*101864*/ OPC_MoveParent, ++/*101865*/ OPC_MoveChild, 10, ++/*101867*/ OPC_CheckInteger, 7, ++/*101869*/ OPC_CheckType, MVT::i32, ++/*101871*/ OPC_MoveParent, ++/*101872*/ OPC_MoveChild, 11, ++/*101874*/ OPC_CheckInteger, 7, ++/*101876*/ OPC_CheckType, MVT::i32, ++/*101878*/ OPC_MoveParent, ++/*101879*/ OPC_MoveChild, 12, ++/*101881*/ OPC_CheckInteger, 7, ++/*101883*/ OPC_CheckType, MVT::i32, ++/*101885*/ OPC_MoveParent, ++/*101886*/ OPC_MoveChild, 13, ++/*101888*/ OPC_CheckInteger, 7, ++/*101890*/ OPC_CheckType, MVT::i32, ++/*101892*/ OPC_MoveParent, ++/*101893*/ OPC_MoveChild, 14, ++/*101895*/ OPC_CheckInteger, 7, ++/*101897*/ OPC_CheckType, MVT::i32, ++/*101899*/ OPC_MoveParent, ++/*101900*/ OPC_MoveChild, 15, ++/*101902*/ OPC_CheckInteger, 7, ++/*101904*/ OPC_CheckType, MVT::i32, ++/*101906*/ OPC_MoveParent, ++/*101907*/ OPC_MoveChild, 16, ++/*101909*/ OPC_CheckInteger, 7, ++/*101911*/ OPC_CheckType, MVT::i32, ++/*101913*/ OPC_MoveParent, ++/*101914*/ OPC_MoveChild, 17, ++/*101916*/ OPC_CheckInteger, 7, ++/*101918*/ OPC_CheckType, MVT::i32, ++/*101920*/ OPC_MoveParent, ++/*101921*/ OPC_MoveChild, 18, ++/*101923*/ OPC_CheckInteger, 7, ++/*101925*/ OPC_CheckType, MVT::i32, ++/*101927*/ OPC_MoveParent, ++/*101928*/ OPC_MoveChild, 19, ++/*101930*/ OPC_CheckInteger, 7, ++/*101932*/ OPC_CheckType, MVT::i32, ++/*101934*/ OPC_MoveParent, ++/*101935*/ OPC_MoveChild, 20, ++/*101937*/ OPC_CheckInteger, 7, ++/*101939*/ OPC_CheckType, MVT::i32, ++/*101941*/ OPC_MoveParent, ++/*101942*/ OPC_MoveChild, 21, ++/*101944*/ OPC_CheckInteger, 7, ++/*101946*/ OPC_CheckType, MVT::i32, ++/*101948*/ OPC_MoveParent, ++/*101949*/ OPC_MoveChild, 22, ++/*101951*/ OPC_CheckInteger, 7, ++/*101953*/ OPC_CheckType, MVT::i32, ++/*101955*/ OPC_MoveParent, ++/*101956*/ OPC_MoveChild, 23, ++/*101958*/ OPC_CheckInteger, 7, ++/*101960*/ OPC_CheckType, MVT::i32, ++/*101962*/ OPC_MoveParent, ++/*101963*/ OPC_MoveChild, 24, ++/*101965*/ OPC_CheckInteger, 7, ++/*101967*/ OPC_CheckType, MVT::i32, ++/*101969*/ OPC_MoveParent, ++/*101970*/ OPC_MoveChild, 25, ++/*101972*/ OPC_CheckInteger, 7, ++/*101974*/ OPC_CheckType, MVT::i32, ++/*101976*/ OPC_MoveParent, ++/*101977*/ OPC_MoveChild, 26, ++/*101979*/ OPC_CheckInteger, 7, ++/*101981*/ OPC_CheckType, MVT::i32, ++/*101983*/ OPC_MoveParent, ++/*101984*/ OPC_MoveChild, 27, ++/*101986*/ OPC_CheckInteger, 7, ++/*101988*/ OPC_CheckType, MVT::i32, ++/*101990*/ OPC_MoveParent, ++/*101991*/ OPC_MoveChild, 28, ++/*101993*/ OPC_CheckInteger, 7, ++/*101995*/ OPC_CheckType, MVT::i32, ++/*101997*/ OPC_MoveParent, ++/*101998*/ OPC_MoveChild, 29, ++/*102000*/ OPC_CheckInteger, 7, ++/*102002*/ OPC_CheckType, MVT::i32, ++/*102004*/ OPC_MoveParent, ++/*102005*/ OPC_MoveChild, 30, ++/*102007*/ OPC_CheckInteger, 7, ++/*102009*/ OPC_CheckType, MVT::i32, ++/*102011*/ OPC_MoveParent, ++/*102012*/ OPC_MoveChild, 31, ++/*102014*/ OPC_CheckInteger, 7, ++/*102016*/ OPC_CheckType, MVT::i32, ++/*102018*/ OPC_MoveParent, ++/*102019*/ OPC_CheckType, MVT::v32i8, ++/*102021*/ OPC_MoveParent, ++/*102022*/ OPC_MoveParent, ++/*102023*/ OPC_MoveParent, ++/*102024*/ OPC_MoveChild1, ++/*102025*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*102028*/ OPC_CheckChild0Integer, 1, ++/*102030*/ OPC_CheckChild0Type, MVT::i32, ++/*102032*/ OPC_CheckChild1Integer, 1, ++/*102034*/ OPC_CheckChild1Type, MVT::i32, ++/*102036*/ OPC_CheckChild2Integer, 1, ++/*102038*/ OPC_CheckChild2Type, MVT::i32, ++/*102040*/ OPC_CheckChild3Integer, 1, ++/*102042*/ OPC_CheckChild3Type, MVT::i32, ++/*102044*/ OPC_CheckChild4Integer, 1, ++/*102046*/ OPC_CheckChild4Type, MVT::i32, ++/*102048*/ OPC_MoveChild5, ++/*102049*/ OPC_CheckInteger, 1, ++/*102051*/ OPC_CheckType, MVT::i32, ++/*102053*/ OPC_MoveParent, ++/*102054*/ OPC_MoveChild6, ++/*102055*/ OPC_CheckInteger, 1, ++/*102057*/ OPC_CheckType, MVT::i32, ++/*102059*/ OPC_MoveParent, ++/*102060*/ OPC_MoveChild7, ++/*102061*/ OPC_CheckInteger, 1, ++/*102063*/ OPC_CheckType, MVT::i32, ++/*102065*/ OPC_MoveParent, ++/*102066*/ OPC_MoveChild, 8, ++/*102068*/ OPC_CheckInteger, 1, ++/*102070*/ OPC_CheckType, MVT::i32, ++/*102072*/ OPC_MoveParent, ++/*102073*/ OPC_MoveChild, 9, ++/*102075*/ OPC_CheckInteger, 1, ++/*102077*/ OPC_CheckType, MVT::i32, ++/*102079*/ OPC_MoveParent, ++/*102080*/ OPC_MoveChild, 10, ++/*102082*/ OPC_CheckInteger, 1, ++/*102084*/ OPC_CheckType, MVT::i32, ++/*102086*/ OPC_MoveParent, ++/*102087*/ OPC_MoveChild, 11, ++/*102089*/ OPC_CheckInteger, 1, ++/*102091*/ OPC_CheckType, MVT::i32, ++/*102093*/ OPC_MoveParent, ++/*102094*/ OPC_MoveChild, 12, ++/*102096*/ OPC_CheckInteger, 1, ++/*102098*/ OPC_CheckType, MVT::i32, ++/*102100*/ OPC_MoveParent, ++/*102101*/ OPC_MoveChild, 13, ++/*102103*/ OPC_CheckInteger, 1, ++/*102105*/ OPC_CheckType, MVT::i32, ++/*102107*/ OPC_MoveParent, ++/*102108*/ OPC_MoveChild, 14, ++/*102110*/ OPC_CheckInteger, 1, ++/*102112*/ OPC_CheckType, MVT::i32, ++/*102114*/ OPC_MoveParent, ++/*102115*/ OPC_MoveChild, 15, ++/*102117*/ OPC_CheckInteger, 1, ++/*102119*/ OPC_CheckType, MVT::i32, ++/*102121*/ OPC_MoveParent, ++/*102122*/ OPC_MoveChild, 16, ++/*102124*/ OPC_CheckInteger, 1, ++/*102126*/ OPC_CheckType, MVT::i32, ++/*102128*/ OPC_MoveParent, ++/*102129*/ OPC_MoveChild, 17, ++/*102131*/ OPC_CheckInteger, 1, ++/*102133*/ OPC_CheckType, MVT::i32, ++/*102135*/ OPC_MoveParent, ++/*102136*/ OPC_MoveChild, 18, ++/*102138*/ OPC_CheckInteger, 1, ++/*102140*/ OPC_CheckType, MVT::i32, ++/*102142*/ OPC_MoveParent, ++/*102143*/ OPC_MoveChild, 19, ++/*102145*/ OPC_CheckInteger, 1, ++/*102147*/ OPC_CheckType, MVT::i32, ++/*102149*/ OPC_MoveParent, ++/*102150*/ OPC_MoveChild, 20, ++/*102152*/ OPC_CheckInteger, 1, ++/*102154*/ OPC_CheckType, MVT::i32, ++/*102156*/ OPC_MoveParent, ++/*102157*/ OPC_MoveChild, 21, ++/*102159*/ OPC_CheckInteger, 1, ++/*102161*/ OPC_CheckType, MVT::i32, ++/*102163*/ OPC_MoveParent, ++/*102164*/ OPC_MoveChild, 22, ++/*102166*/ OPC_CheckInteger, 1, ++/*102168*/ OPC_CheckType, MVT::i32, ++/*102170*/ OPC_MoveParent, ++/*102171*/ OPC_MoveChild, 23, ++/*102173*/ OPC_CheckInteger, 1, ++/*102175*/ OPC_CheckType, MVT::i32, ++/*102177*/ OPC_MoveParent, ++/*102178*/ OPC_MoveChild, 24, ++/*102180*/ OPC_CheckInteger, 1, ++/*102182*/ OPC_CheckType, MVT::i32, ++/*102184*/ OPC_MoveParent, ++/*102185*/ OPC_MoveChild, 25, ++/*102187*/ OPC_CheckInteger, 1, ++/*102189*/ OPC_CheckType, MVT::i32, ++/*102191*/ OPC_MoveParent, ++/*102192*/ OPC_MoveChild, 26, ++/*102194*/ OPC_CheckInteger, 1, ++/*102196*/ OPC_CheckType, MVT::i32, ++/*102198*/ OPC_MoveParent, ++/*102199*/ OPC_MoveChild, 27, ++/*102201*/ OPC_CheckInteger, 1, ++/*102203*/ OPC_CheckType, MVT::i32, ++/*102205*/ OPC_MoveParent, ++/*102206*/ OPC_MoveChild, 28, ++/*102208*/ OPC_CheckInteger, 1, ++/*102210*/ OPC_CheckType, MVT::i32, ++/*102212*/ OPC_MoveParent, ++/*102213*/ OPC_MoveChild, 29, ++/*102215*/ OPC_CheckInteger, 1, ++/*102217*/ OPC_CheckType, MVT::i32, ++/*102219*/ OPC_MoveParent, ++/*102220*/ OPC_MoveChild, 30, ++/*102222*/ OPC_CheckInteger, 1, ++/*102224*/ OPC_CheckType, MVT::i32, ++/*102226*/ OPC_MoveParent, ++/*102227*/ OPC_MoveChild, 31, ++/*102229*/ OPC_CheckInteger, 1, ++/*102231*/ OPC_CheckType, MVT::i32, ++/*102233*/ OPC_MoveParent, ++/*102234*/ OPC_CheckType, MVT::v32i8, ++/*102236*/ OPC_MoveParent, ++/*102237*/ OPC_CheckType, MVT::v32i8, ++/*102239*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*102241*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b), LASX256B:{ *:[v32i8] }:$a), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*102249*/ 0, /*End of Scope*/ ++/*102250*/ /*Scope*/ 42|128,10/*1322*/, /*->103574*/ ++/*102252*/ OPC_CheckChild0Same, 1, ++/*102254*/ OPC_MoveChild1, ++/*102255*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*102258*/ OPC_Scope, 15|128,5/*655*/, /*->102916*/ // 2 children in Scope ++/*102261*/ OPC_MoveChild0, ++/*102262*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*102265*/ OPC_CheckChild0Integer, 1, ++/*102267*/ OPC_CheckChild0Type, MVT::i32, ++/*102269*/ OPC_CheckChild1Integer, 1, ++/*102271*/ OPC_CheckChild1Type, MVT::i32, ++/*102273*/ OPC_CheckChild2Integer, 1, ++/*102275*/ OPC_CheckChild2Type, MVT::i32, ++/*102277*/ OPC_CheckChild3Integer, 1, ++/*102279*/ OPC_CheckChild3Type, MVT::i32, ++/*102281*/ OPC_CheckChild4Integer, 1, ++/*102283*/ OPC_CheckChild4Type, MVT::i32, ++/*102285*/ OPC_MoveChild5, ++/*102286*/ OPC_CheckInteger, 1, ++/*102288*/ OPC_CheckType, MVT::i32, ++/*102290*/ OPC_MoveParent, ++/*102291*/ OPC_MoveChild6, ++/*102292*/ OPC_CheckInteger, 1, ++/*102294*/ OPC_CheckType, MVT::i32, ++/*102296*/ OPC_MoveParent, ++/*102297*/ OPC_MoveChild7, ++/*102298*/ OPC_CheckInteger, 1, ++/*102300*/ OPC_CheckType, MVT::i32, ++/*102302*/ OPC_MoveParent, ++/*102303*/ OPC_MoveChild, 8, ++/*102305*/ OPC_CheckInteger, 1, ++/*102307*/ OPC_CheckType, MVT::i32, ++/*102309*/ OPC_MoveParent, ++/*102310*/ OPC_MoveChild, 9, ++/*102312*/ OPC_CheckInteger, 1, ++/*102314*/ OPC_CheckType, MVT::i32, ++/*102316*/ OPC_MoveParent, ++/*102317*/ OPC_MoveChild, 10, ++/*102319*/ OPC_CheckInteger, 1, ++/*102321*/ OPC_CheckType, MVT::i32, ++/*102323*/ OPC_MoveParent, ++/*102324*/ OPC_MoveChild, 11, ++/*102326*/ OPC_CheckInteger, 1, ++/*102328*/ OPC_CheckType, MVT::i32, ++/*102330*/ OPC_MoveParent, ++/*102331*/ OPC_MoveChild, 12, ++/*102333*/ OPC_CheckInteger, 1, ++/*102335*/ OPC_CheckType, MVT::i32, ++/*102337*/ OPC_MoveParent, ++/*102338*/ OPC_MoveChild, 13, ++/*102340*/ OPC_CheckInteger, 1, ++/*102342*/ OPC_CheckType, MVT::i32, ++/*102344*/ OPC_MoveParent, ++/*102345*/ OPC_MoveChild, 14, ++/*102347*/ OPC_CheckInteger, 1, ++/*102349*/ OPC_CheckType, MVT::i32, ++/*102351*/ OPC_MoveParent, ++/*102352*/ OPC_MoveChild, 15, ++/*102354*/ OPC_CheckInteger, 1, ++/*102356*/ OPC_CheckType, MVT::i32, ++/*102358*/ OPC_MoveParent, ++/*102359*/ OPC_MoveChild, 16, ++/*102361*/ OPC_CheckInteger, 1, ++/*102363*/ OPC_CheckType, MVT::i32, ++/*102365*/ OPC_MoveParent, ++/*102366*/ OPC_MoveChild, 17, ++/*102368*/ OPC_CheckInteger, 1, ++/*102370*/ OPC_CheckType, MVT::i32, ++/*102372*/ OPC_MoveParent, ++/*102373*/ OPC_MoveChild, 18, ++/*102375*/ OPC_CheckInteger, 1, ++/*102377*/ OPC_CheckType, MVT::i32, ++/*102379*/ OPC_MoveParent, ++/*102380*/ OPC_MoveChild, 19, ++/*102382*/ OPC_CheckInteger, 1, ++/*102384*/ OPC_CheckType, MVT::i32, ++/*102386*/ OPC_MoveParent, ++/*102387*/ OPC_MoveChild, 20, ++/*102389*/ OPC_CheckInteger, 1, ++/*102391*/ OPC_CheckType, MVT::i32, ++/*102393*/ OPC_MoveParent, ++/*102394*/ OPC_MoveChild, 21, ++/*102396*/ OPC_CheckInteger, 1, ++/*102398*/ OPC_CheckType, MVT::i32, ++/*102400*/ OPC_MoveParent, ++/*102401*/ OPC_MoveChild, 22, ++/*102403*/ OPC_CheckInteger, 1, ++/*102405*/ OPC_CheckType, MVT::i32, ++/*102407*/ OPC_MoveParent, ++/*102408*/ OPC_MoveChild, 23, ++/*102410*/ OPC_CheckInteger, 1, ++/*102412*/ OPC_CheckType, MVT::i32, ++/*102414*/ OPC_MoveParent, ++/*102415*/ OPC_MoveChild, 24, ++/*102417*/ OPC_CheckInteger, 1, ++/*102419*/ OPC_CheckType, MVT::i32, ++/*102421*/ OPC_MoveParent, ++/*102422*/ OPC_MoveChild, 25, ++/*102424*/ OPC_CheckInteger, 1, ++/*102426*/ OPC_CheckType, MVT::i32, ++/*102428*/ OPC_MoveParent, ++/*102429*/ OPC_MoveChild, 26, ++/*102431*/ OPC_CheckInteger, 1, ++/*102433*/ OPC_CheckType, MVT::i32, ++/*102435*/ OPC_MoveParent, ++/*102436*/ OPC_MoveChild, 27, ++/*102438*/ OPC_CheckInteger, 1, ++/*102440*/ OPC_CheckType, MVT::i32, ++/*102442*/ OPC_MoveParent, ++/*102443*/ OPC_MoveChild, 28, ++/*102445*/ OPC_CheckInteger, 1, ++/*102447*/ OPC_CheckType, MVT::i32, ++/*102449*/ OPC_MoveParent, ++/*102450*/ OPC_MoveChild, 29, ++/*102452*/ OPC_CheckInteger, 1, ++/*102454*/ OPC_CheckType, MVT::i32, ++/*102456*/ OPC_MoveParent, ++/*102457*/ OPC_MoveChild, 30, ++/*102459*/ OPC_CheckInteger, 1, ++/*102461*/ OPC_CheckType, MVT::i32, ++/*102463*/ OPC_MoveParent, ++/*102464*/ OPC_MoveChild, 31, ++/*102466*/ OPC_CheckInteger, 1, ++/*102468*/ OPC_CheckType, MVT::i32, ++/*102470*/ OPC_MoveParent, ++/*102471*/ OPC_MoveParent, ++/*102472*/ OPC_CheckChild1Same, 0, ++/*102474*/ OPC_MoveParent, ++/*102475*/ OPC_MoveParent, ++/*102476*/ OPC_MoveChild1, ++/*102477*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*102480*/ OPC_CheckChild0Integer, 7, ++/*102482*/ OPC_CheckChild0Type, MVT::i32, ++/*102484*/ OPC_CheckChild1Integer, 7, ++/*102486*/ OPC_CheckChild1Type, MVT::i32, ++/*102488*/ OPC_CheckChild2Integer, 7, ++/*102490*/ OPC_CheckChild2Type, MVT::i32, ++/*102492*/ OPC_CheckChild3Integer, 7, ++/*102494*/ OPC_CheckChild3Type, MVT::i32, ++/*102496*/ OPC_CheckChild4Integer, 7, ++/*102498*/ OPC_CheckChild4Type, MVT::i32, ++/*102500*/ OPC_MoveChild5, ++/*102501*/ OPC_CheckInteger, 7, ++/*102503*/ OPC_CheckType, MVT::i32, ++/*102505*/ OPC_MoveParent, ++/*102506*/ OPC_MoveChild6, ++/*102507*/ OPC_CheckInteger, 7, ++/*102509*/ OPC_CheckType, MVT::i32, ++/*102511*/ OPC_MoveParent, ++/*102512*/ OPC_MoveChild7, ++/*102513*/ OPC_CheckInteger, 7, ++/*102515*/ OPC_CheckType, MVT::i32, ++/*102517*/ OPC_MoveParent, ++/*102518*/ OPC_MoveChild, 8, ++/*102520*/ OPC_CheckInteger, 7, ++/*102522*/ OPC_CheckType, MVT::i32, ++/*102524*/ OPC_MoveParent, ++/*102525*/ OPC_MoveChild, 9, ++/*102527*/ OPC_CheckInteger, 7, ++/*102529*/ OPC_CheckType, MVT::i32, ++/*102531*/ OPC_MoveParent, ++/*102532*/ OPC_MoveChild, 10, ++/*102534*/ OPC_CheckInteger, 7, ++/*102536*/ OPC_CheckType, MVT::i32, ++/*102538*/ OPC_MoveParent, ++/*102539*/ OPC_MoveChild, 11, ++/*102541*/ OPC_CheckInteger, 7, ++/*102543*/ OPC_CheckType, MVT::i32, ++/*102545*/ OPC_MoveParent, ++/*102546*/ OPC_MoveChild, 12, ++/*102548*/ OPC_CheckInteger, 7, ++/*102550*/ OPC_CheckType, MVT::i32, ++/*102552*/ OPC_MoveParent, ++/*102553*/ OPC_MoveChild, 13, ++/*102555*/ OPC_CheckInteger, 7, ++/*102557*/ OPC_CheckType, MVT::i32, ++/*102559*/ OPC_MoveParent, ++/*102560*/ OPC_MoveChild, 14, ++/*102562*/ OPC_CheckInteger, 7, ++/*102564*/ OPC_CheckType, MVT::i32, ++/*102566*/ OPC_MoveParent, ++/*102567*/ OPC_MoveChild, 15, ++/*102569*/ OPC_CheckInteger, 7, ++/*102571*/ OPC_CheckType, MVT::i32, ++/*102573*/ OPC_MoveParent, ++/*102574*/ OPC_MoveChild, 16, ++/*102576*/ OPC_CheckInteger, 7, ++/*102578*/ OPC_CheckType, MVT::i32, ++/*102580*/ OPC_MoveParent, ++/*102581*/ OPC_MoveChild, 17, ++/*102583*/ OPC_CheckInteger, 7, ++/*102585*/ OPC_CheckType, MVT::i32, ++/*102587*/ OPC_MoveParent, ++/*102588*/ OPC_MoveChild, 18, ++/*102590*/ OPC_CheckInteger, 7, ++/*102592*/ OPC_CheckType, MVT::i32, ++/*102594*/ OPC_MoveParent, ++/*102595*/ OPC_MoveChild, 19, ++/*102597*/ OPC_CheckInteger, 7, ++/*102599*/ OPC_CheckType, MVT::i32, ++/*102601*/ OPC_MoveParent, ++/*102602*/ OPC_MoveChild, 20, ++/*102604*/ OPC_CheckInteger, 7, ++/*102606*/ OPC_CheckType, MVT::i32, ++/*102608*/ OPC_MoveParent, ++/*102609*/ OPC_MoveChild, 21, ++/*102611*/ OPC_CheckInteger, 7, ++/*102613*/ OPC_CheckType, MVT::i32, ++/*102615*/ OPC_MoveParent, ++/*102616*/ OPC_MoveChild, 22, ++/*102618*/ OPC_CheckInteger, 7, ++/*102620*/ OPC_CheckType, MVT::i32, ++/*102622*/ OPC_MoveParent, ++/*102623*/ OPC_MoveChild, 23, ++/*102625*/ OPC_CheckInteger, 7, ++/*102627*/ OPC_CheckType, MVT::i32, ++/*102629*/ OPC_MoveParent, ++/*102630*/ OPC_MoveChild, 24, ++/*102632*/ OPC_CheckInteger, 7, ++/*102634*/ OPC_CheckType, MVT::i32, ++/*102636*/ OPC_MoveParent, ++/*102637*/ OPC_MoveChild, 25, ++/*102639*/ OPC_CheckInteger, 7, ++/*102641*/ OPC_CheckType, MVT::i32, ++/*102643*/ OPC_MoveParent, ++/*102644*/ OPC_MoveChild, 26, ++/*102646*/ OPC_CheckInteger, 7, ++/*102648*/ OPC_CheckType, MVT::i32, ++/*102650*/ OPC_MoveParent, ++/*102651*/ OPC_MoveChild, 27, ++/*102653*/ OPC_CheckInteger, 7, ++/*102655*/ OPC_CheckType, MVT::i32, ++/*102657*/ OPC_MoveParent, ++/*102658*/ OPC_MoveChild, 28, ++/*102660*/ OPC_CheckInteger, 7, ++/*102662*/ OPC_CheckType, MVT::i32, ++/*102664*/ OPC_MoveParent, ++/*102665*/ OPC_MoveChild, 29, ++/*102667*/ OPC_CheckInteger, 7, ++/*102669*/ OPC_CheckType, MVT::i32, ++/*102671*/ OPC_MoveParent, ++/*102672*/ OPC_MoveChild, 30, ++/*102674*/ OPC_CheckInteger, 7, ++/*102676*/ OPC_CheckType, MVT::i32, ++/*102678*/ OPC_MoveParent, ++/*102679*/ OPC_MoveChild, 31, ++/*102681*/ OPC_CheckInteger, 7, ++/*102683*/ OPC_CheckType, MVT::i32, ++/*102685*/ OPC_MoveParent, ++/*102686*/ OPC_CheckType, MVT::v32i8, ++/*102688*/ OPC_MoveParent, ++/*102689*/ OPC_MoveParent, ++/*102690*/ OPC_MoveParent, ++/*102691*/ OPC_MoveChild1, ++/*102692*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*102695*/ OPC_CheckChild0Integer, 1, ++/*102697*/ OPC_CheckChild0Type, MVT::i32, ++/*102699*/ OPC_CheckChild1Integer, 1, ++/*102701*/ OPC_CheckChild1Type, MVT::i32, ++/*102703*/ OPC_CheckChild2Integer, 1, ++/*102705*/ OPC_CheckChild2Type, MVT::i32, ++/*102707*/ OPC_CheckChild3Integer, 1, ++/*102709*/ OPC_CheckChild3Type, MVT::i32, ++/*102711*/ OPC_CheckChild4Integer, 1, ++/*102713*/ OPC_CheckChild4Type, MVT::i32, ++/*102715*/ OPC_MoveChild5, ++/*102716*/ OPC_CheckInteger, 1, ++/*102718*/ OPC_CheckType, MVT::i32, ++/*102720*/ OPC_MoveParent, ++/*102721*/ OPC_MoveChild6, ++/*102722*/ OPC_CheckInteger, 1, ++/*102724*/ OPC_CheckType, MVT::i32, ++/*102726*/ OPC_MoveParent, ++/*102727*/ OPC_MoveChild7, ++/*102728*/ OPC_CheckInteger, 1, ++/*102730*/ OPC_CheckType, MVT::i32, ++/*102732*/ OPC_MoveParent, ++/*102733*/ OPC_MoveChild, 8, ++/*102735*/ OPC_CheckInteger, 1, ++/*102737*/ OPC_CheckType, MVT::i32, ++/*102739*/ OPC_MoveParent, ++/*102740*/ OPC_MoveChild, 9, ++/*102742*/ OPC_CheckInteger, 1, ++/*102744*/ OPC_CheckType, MVT::i32, ++/*102746*/ OPC_MoveParent, ++/*102747*/ OPC_MoveChild, 10, ++/*102749*/ OPC_CheckInteger, 1, ++/*102751*/ OPC_CheckType, MVT::i32, ++/*102753*/ OPC_MoveParent, ++/*102754*/ OPC_MoveChild, 11, ++/*102756*/ OPC_CheckInteger, 1, ++/*102758*/ OPC_CheckType, MVT::i32, ++/*102760*/ OPC_MoveParent, ++/*102761*/ OPC_MoveChild, 12, ++/*102763*/ OPC_CheckInteger, 1, ++/*102765*/ OPC_CheckType, MVT::i32, ++/*102767*/ OPC_MoveParent, ++/*102768*/ OPC_MoveChild, 13, ++/*102770*/ OPC_CheckInteger, 1, ++/*102772*/ OPC_CheckType, MVT::i32, ++/*102774*/ OPC_MoveParent, ++/*102775*/ OPC_MoveChild, 14, ++/*102777*/ OPC_CheckInteger, 1, ++/*102779*/ OPC_CheckType, MVT::i32, ++/*102781*/ OPC_MoveParent, ++/*102782*/ OPC_MoveChild, 15, ++/*102784*/ OPC_CheckInteger, 1, ++/*102786*/ OPC_CheckType, MVT::i32, ++/*102788*/ OPC_MoveParent, ++/*102789*/ OPC_MoveChild, 16, ++/*102791*/ OPC_CheckInteger, 1, ++/*102793*/ OPC_CheckType, MVT::i32, ++/*102795*/ OPC_MoveParent, ++/*102796*/ OPC_MoveChild, 17, ++/*102798*/ OPC_CheckInteger, 1, ++/*102800*/ OPC_CheckType, MVT::i32, ++/*102802*/ OPC_MoveParent, ++/*102803*/ OPC_MoveChild, 18, ++/*102805*/ OPC_CheckInteger, 1, ++/*102807*/ OPC_CheckType, MVT::i32, ++/*102809*/ OPC_MoveParent, ++/*102810*/ OPC_MoveChild, 19, ++/*102812*/ OPC_CheckInteger, 1, ++/*102814*/ OPC_CheckType, MVT::i32, ++/*102816*/ OPC_MoveParent, ++/*102817*/ OPC_MoveChild, 20, ++/*102819*/ OPC_CheckInteger, 1, ++/*102821*/ OPC_CheckType, MVT::i32, ++/*102823*/ OPC_MoveParent, ++/*102824*/ OPC_MoveChild, 21, ++/*102826*/ OPC_CheckInteger, 1, ++/*102828*/ OPC_CheckType, MVT::i32, ++/*102830*/ OPC_MoveParent, ++/*102831*/ OPC_MoveChild, 22, ++/*102833*/ OPC_CheckInteger, 1, ++/*102835*/ OPC_CheckType, MVT::i32, ++/*102837*/ OPC_MoveParent, ++/*102838*/ OPC_MoveChild, 23, ++/*102840*/ OPC_CheckInteger, 1, ++/*102842*/ OPC_CheckType, MVT::i32, ++/*102844*/ OPC_MoveParent, ++/*102845*/ OPC_MoveChild, 24, ++/*102847*/ OPC_CheckInteger, 1, ++/*102849*/ OPC_CheckType, MVT::i32, ++/*102851*/ OPC_MoveParent, ++/*102852*/ OPC_MoveChild, 25, ++/*102854*/ OPC_CheckInteger, 1, ++/*102856*/ OPC_CheckType, MVT::i32, ++/*102858*/ OPC_MoveParent, ++/*102859*/ OPC_MoveChild, 26, ++/*102861*/ OPC_CheckInteger, 1, ++/*102863*/ OPC_CheckType, MVT::i32, ++/*102865*/ OPC_MoveParent, ++/*102866*/ OPC_MoveChild, 27, ++/*102868*/ OPC_CheckInteger, 1, ++/*102870*/ OPC_CheckType, MVT::i32, ++/*102872*/ OPC_MoveParent, ++/*102873*/ OPC_MoveChild, 28, ++/*102875*/ OPC_CheckInteger, 1, ++/*102877*/ OPC_CheckType, MVT::i32, ++/*102879*/ OPC_MoveParent, ++/*102880*/ OPC_MoveChild, 29, ++/*102882*/ OPC_CheckInteger, 1, ++/*102884*/ OPC_CheckType, MVT::i32, ++/*102886*/ OPC_MoveParent, ++/*102887*/ OPC_MoveChild, 30, ++/*102889*/ OPC_CheckInteger, 1, ++/*102891*/ OPC_CheckType, MVT::i32, ++/*102893*/ OPC_MoveParent, ++/*102894*/ OPC_MoveChild, 31, ++/*102896*/ OPC_CheckInteger, 1, ++/*102898*/ OPC_CheckType, MVT::i32, ++/*102900*/ OPC_MoveParent, ++/*102901*/ OPC_CheckType, MVT::v32i8, ++/*102903*/ OPC_MoveParent, ++/*102904*/ OPC_CheckType, MVT::v32i8, ++/*102906*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*102908*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b), LASX256B:{ *:[v32i8] }:$a), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*102916*/ /*Scope*/ 15|128,5/*655*/, /*->103573*/ ++/*102918*/ OPC_CheckChild0Same, 0, ++/*102920*/ OPC_MoveChild1, ++/*102921*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*102924*/ OPC_CheckChild0Integer, 1, ++/*102926*/ OPC_CheckChild0Type, MVT::i32, ++/*102928*/ OPC_CheckChild1Integer, 1, ++/*102930*/ OPC_CheckChild1Type, MVT::i32, ++/*102932*/ OPC_CheckChild2Integer, 1, ++/*102934*/ OPC_CheckChild2Type, MVT::i32, ++/*102936*/ OPC_CheckChild3Integer, 1, ++/*102938*/ OPC_CheckChild3Type, MVT::i32, ++/*102940*/ OPC_CheckChild4Integer, 1, ++/*102942*/ OPC_CheckChild4Type, MVT::i32, ++/*102944*/ OPC_MoveChild5, ++/*102945*/ OPC_CheckInteger, 1, ++/*102947*/ OPC_CheckType, MVT::i32, ++/*102949*/ OPC_MoveParent, ++/*102950*/ OPC_MoveChild6, ++/*102951*/ OPC_CheckInteger, 1, ++/*102953*/ OPC_CheckType, MVT::i32, ++/*102955*/ OPC_MoveParent, ++/*102956*/ OPC_MoveChild7, ++/*102957*/ OPC_CheckInteger, 1, ++/*102959*/ OPC_CheckType, MVT::i32, ++/*102961*/ OPC_MoveParent, ++/*102962*/ OPC_MoveChild, 8, ++/*102964*/ OPC_CheckInteger, 1, ++/*102966*/ OPC_CheckType, MVT::i32, ++/*102968*/ OPC_MoveParent, ++/*102969*/ OPC_MoveChild, 9, ++/*102971*/ OPC_CheckInteger, 1, ++/*102973*/ OPC_CheckType, MVT::i32, ++/*102975*/ OPC_MoveParent, ++/*102976*/ OPC_MoveChild, 10, ++/*102978*/ OPC_CheckInteger, 1, ++/*102980*/ OPC_CheckType, MVT::i32, ++/*102982*/ OPC_MoveParent, ++/*102983*/ OPC_MoveChild, 11, ++/*102985*/ OPC_CheckInteger, 1, ++/*102987*/ OPC_CheckType, MVT::i32, ++/*102989*/ OPC_MoveParent, ++/*102990*/ OPC_MoveChild, 12, ++/*102992*/ OPC_CheckInteger, 1, ++/*102994*/ OPC_CheckType, MVT::i32, ++/*102996*/ OPC_MoveParent, ++/*102997*/ OPC_MoveChild, 13, ++/*102999*/ OPC_CheckInteger, 1, ++/*103001*/ OPC_CheckType, MVT::i32, ++/*103003*/ OPC_MoveParent, ++/*103004*/ OPC_MoveChild, 14, ++/*103006*/ OPC_CheckInteger, 1, ++/*103008*/ OPC_CheckType, MVT::i32, ++/*103010*/ OPC_MoveParent, ++/*103011*/ OPC_MoveChild, 15, ++/*103013*/ OPC_CheckInteger, 1, ++/*103015*/ OPC_CheckType, MVT::i32, ++/*103017*/ OPC_MoveParent, ++/*103018*/ OPC_MoveChild, 16, ++/*103020*/ OPC_CheckInteger, 1, ++/*103022*/ OPC_CheckType, MVT::i32, ++/*103024*/ OPC_MoveParent, ++/*103025*/ OPC_MoveChild, 17, ++/*103027*/ OPC_CheckInteger, 1, ++/*103029*/ OPC_CheckType, MVT::i32, ++/*103031*/ OPC_MoveParent, ++/*103032*/ OPC_MoveChild, 18, ++/*103034*/ OPC_CheckInteger, 1, ++/*103036*/ OPC_CheckType, MVT::i32, ++/*103038*/ OPC_MoveParent, ++/*103039*/ OPC_MoveChild, 19, ++/*103041*/ OPC_CheckInteger, 1, ++/*103043*/ OPC_CheckType, MVT::i32, ++/*103045*/ OPC_MoveParent, ++/*103046*/ OPC_MoveChild, 20, ++/*103048*/ OPC_CheckInteger, 1, ++/*103050*/ OPC_CheckType, MVT::i32, ++/*103052*/ OPC_MoveParent, ++/*103053*/ OPC_MoveChild, 21, ++/*103055*/ OPC_CheckInteger, 1, ++/*103057*/ OPC_CheckType, MVT::i32, ++/*103059*/ OPC_MoveParent, ++/*103060*/ OPC_MoveChild, 22, ++/*103062*/ OPC_CheckInteger, 1, ++/*103064*/ OPC_CheckType, MVT::i32, ++/*103066*/ OPC_MoveParent, ++/*103067*/ OPC_MoveChild, 23, ++/*103069*/ OPC_CheckInteger, 1, ++/*103071*/ OPC_CheckType, MVT::i32, ++/*103073*/ OPC_MoveParent, ++/*103074*/ OPC_MoveChild, 24, ++/*103076*/ OPC_CheckInteger, 1, ++/*103078*/ OPC_CheckType, MVT::i32, ++/*103080*/ OPC_MoveParent, ++/*103081*/ OPC_MoveChild, 25, ++/*103083*/ OPC_CheckInteger, 1, ++/*103085*/ OPC_CheckType, MVT::i32, ++/*103087*/ OPC_MoveParent, ++/*103088*/ OPC_MoveChild, 26, ++/*103090*/ OPC_CheckInteger, 1, ++/*103092*/ OPC_CheckType, MVT::i32, ++/*103094*/ OPC_MoveParent, ++/*103095*/ OPC_MoveChild, 27, ++/*103097*/ OPC_CheckInteger, 1, ++/*103099*/ OPC_CheckType, MVT::i32, ++/*103101*/ OPC_MoveParent, ++/*103102*/ OPC_MoveChild, 28, ++/*103104*/ OPC_CheckInteger, 1, ++/*103106*/ OPC_CheckType, MVT::i32, ++/*103108*/ OPC_MoveParent, ++/*103109*/ OPC_MoveChild, 29, ++/*103111*/ OPC_CheckInteger, 1, ++/*103113*/ OPC_CheckType, MVT::i32, ++/*103115*/ OPC_MoveParent, ++/*103116*/ OPC_MoveChild, 30, ++/*103118*/ OPC_CheckInteger, 1, ++/*103120*/ OPC_CheckType, MVT::i32, ++/*103122*/ OPC_MoveParent, ++/*103123*/ OPC_MoveChild, 31, ++/*103125*/ OPC_CheckInteger, 1, ++/*103127*/ OPC_CheckType, MVT::i32, ++/*103129*/ OPC_MoveParent, ++/*103130*/ OPC_MoveParent, ++/*103131*/ OPC_MoveParent, ++/*103132*/ OPC_MoveParent, ++/*103133*/ OPC_MoveChild1, ++/*103134*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*103137*/ OPC_CheckChild0Integer, 7, ++/*103139*/ OPC_CheckChild0Type, MVT::i32, ++/*103141*/ OPC_CheckChild1Integer, 7, ++/*103143*/ OPC_CheckChild1Type, MVT::i32, ++/*103145*/ OPC_CheckChild2Integer, 7, ++/*103147*/ OPC_CheckChild2Type, MVT::i32, ++/*103149*/ OPC_CheckChild3Integer, 7, ++/*103151*/ OPC_CheckChild3Type, MVT::i32, ++/*103153*/ OPC_CheckChild4Integer, 7, ++/*103155*/ OPC_CheckChild4Type, MVT::i32, ++/*103157*/ OPC_MoveChild5, ++/*103158*/ OPC_CheckInteger, 7, ++/*103160*/ OPC_CheckType, MVT::i32, ++/*103162*/ OPC_MoveParent, ++/*103163*/ OPC_MoveChild6, ++/*103164*/ OPC_CheckInteger, 7, ++/*103166*/ OPC_CheckType, MVT::i32, ++/*103168*/ OPC_MoveParent, ++/*103169*/ OPC_MoveChild7, ++/*103170*/ OPC_CheckInteger, 7, ++/*103172*/ OPC_CheckType, MVT::i32, ++/*103174*/ OPC_MoveParent, ++/*103175*/ OPC_MoveChild, 8, ++/*103177*/ OPC_CheckInteger, 7, ++/*103179*/ OPC_CheckType, MVT::i32, ++/*103181*/ OPC_MoveParent, ++/*103182*/ OPC_MoveChild, 9, ++/*103184*/ OPC_CheckInteger, 7, ++/*103186*/ OPC_CheckType, MVT::i32, ++/*103188*/ OPC_MoveParent, ++/*103189*/ OPC_MoveChild, 10, ++/*103191*/ OPC_CheckInteger, 7, ++/*103193*/ OPC_CheckType, MVT::i32, ++/*103195*/ OPC_MoveParent, ++/*103196*/ OPC_MoveChild, 11, ++/*103198*/ OPC_CheckInteger, 7, ++/*103200*/ OPC_CheckType, MVT::i32, ++/*103202*/ OPC_MoveParent, ++/*103203*/ OPC_MoveChild, 12, ++/*103205*/ OPC_CheckInteger, 7, ++/*103207*/ OPC_CheckType, MVT::i32, ++/*103209*/ OPC_MoveParent, ++/*103210*/ OPC_MoveChild, 13, ++/*103212*/ OPC_CheckInteger, 7, ++/*103214*/ OPC_CheckType, MVT::i32, ++/*103216*/ OPC_MoveParent, ++/*103217*/ OPC_MoveChild, 14, ++/*103219*/ OPC_CheckInteger, 7, ++/*103221*/ OPC_CheckType, MVT::i32, ++/*103223*/ OPC_MoveParent, ++/*103224*/ OPC_MoveChild, 15, ++/*103226*/ OPC_CheckInteger, 7, ++/*103228*/ OPC_CheckType, MVT::i32, ++/*103230*/ OPC_MoveParent, ++/*103231*/ OPC_MoveChild, 16, ++/*103233*/ OPC_CheckInteger, 7, ++/*103235*/ OPC_CheckType, MVT::i32, ++/*103237*/ OPC_MoveParent, ++/*103238*/ OPC_MoveChild, 17, ++/*103240*/ OPC_CheckInteger, 7, ++/*103242*/ OPC_CheckType, MVT::i32, ++/*103244*/ OPC_MoveParent, ++/*103245*/ OPC_MoveChild, 18, ++/*103247*/ OPC_CheckInteger, 7, ++/*103249*/ OPC_CheckType, MVT::i32, ++/*103251*/ OPC_MoveParent, ++/*103252*/ OPC_MoveChild, 19, ++/*103254*/ OPC_CheckInteger, 7, ++/*103256*/ OPC_CheckType, MVT::i32, ++/*103258*/ OPC_MoveParent, ++/*103259*/ OPC_MoveChild, 20, ++/*103261*/ OPC_CheckInteger, 7, ++/*103263*/ OPC_CheckType, MVT::i32, ++/*103265*/ OPC_MoveParent, ++/*103266*/ OPC_MoveChild, 21, ++/*103268*/ OPC_CheckInteger, 7, ++/*103270*/ OPC_CheckType, MVT::i32, ++/*103272*/ OPC_MoveParent, ++/*103273*/ OPC_MoveChild, 22, ++/*103275*/ OPC_CheckInteger, 7, ++/*103277*/ OPC_CheckType, MVT::i32, ++/*103279*/ OPC_MoveParent, ++/*103280*/ OPC_MoveChild, 23, ++/*103282*/ OPC_CheckInteger, 7, ++/*103284*/ OPC_CheckType, MVT::i32, ++/*103286*/ OPC_MoveParent, ++/*103287*/ OPC_MoveChild, 24, ++/*103289*/ OPC_CheckInteger, 7, ++/*103291*/ OPC_CheckType, MVT::i32, ++/*103293*/ OPC_MoveParent, ++/*103294*/ OPC_MoveChild, 25, ++/*103296*/ OPC_CheckInteger, 7, ++/*103298*/ OPC_CheckType, MVT::i32, ++/*103300*/ OPC_MoveParent, ++/*103301*/ OPC_MoveChild, 26, ++/*103303*/ OPC_CheckInteger, 7, ++/*103305*/ OPC_CheckType, MVT::i32, ++/*103307*/ OPC_MoveParent, ++/*103308*/ OPC_MoveChild, 27, ++/*103310*/ OPC_CheckInteger, 7, ++/*103312*/ OPC_CheckType, MVT::i32, ++/*103314*/ OPC_MoveParent, ++/*103315*/ OPC_MoveChild, 28, ++/*103317*/ OPC_CheckInteger, 7, ++/*103319*/ OPC_CheckType, MVT::i32, ++/*103321*/ OPC_MoveParent, ++/*103322*/ OPC_MoveChild, 29, ++/*103324*/ OPC_CheckInteger, 7, ++/*103326*/ OPC_CheckType, MVT::i32, ++/*103328*/ OPC_MoveParent, ++/*103329*/ OPC_MoveChild, 30, ++/*103331*/ OPC_CheckInteger, 7, ++/*103333*/ OPC_CheckType, MVT::i32, ++/*103335*/ OPC_MoveParent, ++/*103336*/ OPC_MoveChild, 31, ++/*103338*/ OPC_CheckInteger, 7, ++/*103340*/ OPC_CheckType, MVT::i32, ++/*103342*/ OPC_MoveParent, ++/*103343*/ OPC_CheckType, MVT::v32i8, ++/*103345*/ OPC_MoveParent, ++/*103346*/ OPC_MoveParent, ++/*103347*/ OPC_MoveParent, ++/*103348*/ OPC_MoveChild1, ++/*103349*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*103352*/ OPC_CheckChild0Integer, 1, ++/*103354*/ OPC_CheckChild0Type, MVT::i32, ++/*103356*/ OPC_CheckChild1Integer, 1, ++/*103358*/ OPC_CheckChild1Type, MVT::i32, ++/*103360*/ OPC_CheckChild2Integer, 1, ++/*103362*/ OPC_CheckChild2Type, MVT::i32, ++/*103364*/ OPC_CheckChild3Integer, 1, ++/*103366*/ OPC_CheckChild3Type, MVT::i32, ++/*103368*/ OPC_CheckChild4Integer, 1, ++/*103370*/ OPC_CheckChild4Type, MVT::i32, ++/*103372*/ OPC_MoveChild5, ++/*103373*/ OPC_CheckInteger, 1, ++/*103375*/ OPC_CheckType, MVT::i32, ++/*103377*/ OPC_MoveParent, ++/*103378*/ OPC_MoveChild6, ++/*103379*/ OPC_CheckInteger, 1, ++/*103381*/ OPC_CheckType, MVT::i32, ++/*103383*/ OPC_MoveParent, ++/*103384*/ OPC_MoveChild7, ++/*103385*/ OPC_CheckInteger, 1, ++/*103387*/ OPC_CheckType, MVT::i32, ++/*103389*/ OPC_MoveParent, ++/*103390*/ OPC_MoveChild, 8, ++/*103392*/ OPC_CheckInteger, 1, ++/*103394*/ OPC_CheckType, MVT::i32, ++/*103396*/ OPC_MoveParent, ++/*103397*/ OPC_MoveChild, 9, ++/*103399*/ OPC_CheckInteger, 1, ++/*103401*/ OPC_CheckType, MVT::i32, ++/*103403*/ OPC_MoveParent, ++/*103404*/ OPC_MoveChild, 10, ++/*103406*/ OPC_CheckInteger, 1, ++/*103408*/ OPC_CheckType, MVT::i32, ++/*103410*/ OPC_MoveParent, ++/*103411*/ OPC_MoveChild, 11, ++/*103413*/ OPC_CheckInteger, 1, ++/*103415*/ OPC_CheckType, MVT::i32, ++/*103417*/ OPC_MoveParent, ++/*103418*/ OPC_MoveChild, 12, ++/*103420*/ OPC_CheckInteger, 1, ++/*103422*/ OPC_CheckType, MVT::i32, ++/*103424*/ OPC_MoveParent, ++/*103425*/ OPC_MoveChild, 13, ++/*103427*/ OPC_CheckInteger, 1, ++/*103429*/ OPC_CheckType, MVT::i32, ++/*103431*/ OPC_MoveParent, ++/*103432*/ OPC_MoveChild, 14, ++/*103434*/ OPC_CheckInteger, 1, ++/*103436*/ OPC_CheckType, MVT::i32, ++/*103438*/ OPC_MoveParent, ++/*103439*/ OPC_MoveChild, 15, ++/*103441*/ OPC_CheckInteger, 1, ++/*103443*/ OPC_CheckType, MVT::i32, ++/*103445*/ OPC_MoveParent, ++/*103446*/ OPC_MoveChild, 16, ++/*103448*/ OPC_CheckInteger, 1, ++/*103450*/ OPC_CheckType, MVT::i32, ++/*103452*/ OPC_MoveParent, ++/*103453*/ OPC_MoveChild, 17, ++/*103455*/ OPC_CheckInteger, 1, ++/*103457*/ OPC_CheckType, MVT::i32, ++/*103459*/ OPC_MoveParent, ++/*103460*/ OPC_MoveChild, 18, ++/*103462*/ OPC_CheckInteger, 1, ++/*103464*/ OPC_CheckType, MVT::i32, ++/*103466*/ OPC_MoveParent, ++/*103467*/ OPC_MoveChild, 19, ++/*103469*/ OPC_CheckInteger, 1, ++/*103471*/ OPC_CheckType, MVT::i32, ++/*103473*/ OPC_MoveParent, ++/*103474*/ OPC_MoveChild, 20, ++/*103476*/ OPC_CheckInteger, 1, ++/*103478*/ OPC_CheckType, MVT::i32, ++/*103480*/ OPC_MoveParent, ++/*103481*/ OPC_MoveChild, 21, ++/*103483*/ OPC_CheckInteger, 1, ++/*103485*/ OPC_CheckType, MVT::i32, ++/*103487*/ OPC_MoveParent, ++/*103488*/ OPC_MoveChild, 22, ++/*103490*/ OPC_CheckInteger, 1, ++/*103492*/ OPC_CheckType, MVT::i32, ++/*103494*/ OPC_MoveParent, ++/*103495*/ OPC_MoveChild, 23, ++/*103497*/ OPC_CheckInteger, 1, ++/*103499*/ OPC_CheckType, MVT::i32, ++/*103501*/ OPC_MoveParent, ++/*103502*/ OPC_MoveChild, 24, ++/*103504*/ OPC_CheckInteger, 1, ++/*103506*/ OPC_CheckType, MVT::i32, ++/*103508*/ OPC_MoveParent, ++/*103509*/ OPC_MoveChild, 25, ++/*103511*/ OPC_CheckInteger, 1, ++/*103513*/ OPC_CheckType, MVT::i32, ++/*103515*/ OPC_MoveParent, ++/*103516*/ OPC_MoveChild, 26, ++/*103518*/ OPC_CheckInteger, 1, ++/*103520*/ OPC_CheckType, MVT::i32, ++/*103522*/ OPC_MoveParent, ++/*103523*/ OPC_MoveChild, 27, ++/*103525*/ OPC_CheckInteger, 1, ++/*103527*/ OPC_CheckType, MVT::i32, ++/*103529*/ OPC_MoveParent, ++/*103530*/ OPC_MoveChild, 28, ++/*103532*/ OPC_CheckInteger, 1, ++/*103534*/ OPC_CheckType, MVT::i32, ++/*103536*/ OPC_MoveParent, ++/*103537*/ OPC_MoveChild, 29, ++/*103539*/ OPC_CheckInteger, 1, ++/*103541*/ OPC_CheckType, MVT::i32, ++/*103543*/ OPC_MoveParent, ++/*103544*/ OPC_MoveChild, 30, ++/*103546*/ OPC_CheckInteger, 1, ++/*103548*/ OPC_CheckType, MVT::i32, ++/*103550*/ OPC_MoveParent, ++/*103551*/ OPC_MoveChild, 31, ++/*103553*/ OPC_CheckInteger, 1, ++/*103555*/ OPC_CheckType, MVT::i32, ++/*103557*/ OPC_MoveParent, ++/*103558*/ OPC_CheckType, MVT::v32i8, ++/*103560*/ OPC_MoveParent, ++/*103561*/ OPC_CheckType, MVT::v32i8, ++/*103563*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*103565*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b), LASX256B:{ *:[v32i8] }:$a), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*103573*/ 0, /*End of Scope*/ ++/*103574*/ /*Scope*/ 89|128,8/*1113*/, /*->104689*/ ++/*103576*/ OPC_MoveChild0, ++/*103577*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*103580*/ OPC_CheckChild0Integer, 1, ++/*103582*/ OPC_CheckChild0Type, MVT::i32, ++/*103584*/ OPC_CheckChild1Integer, 1, ++/*103586*/ OPC_CheckChild1Type, MVT::i32, ++/*103588*/ OPC_CheckChild2Integer, 1, ++/*103590*/ OPC_CheckChild2Type, MVT::i32, ++/*103592*/ OPC_CheckChild3Integer, 1, ++/*103594*/ OPC_CheckChild3Type, MVT::i32, ++/*103596*/ OPC_CheckChild4Integer, 1, ++/*103598*/ OPC_CheckChild4Type, MVT::i32, ++/*103600*/ OPC_MoveChild5, ++/*103601*/ OPC_CheckInteger, 1, ++/*103603*/ OPC_CheckType, MVT::i32, ++/*103605*/ OPC_MoveParent, ++/*103606*/ OPC_MoveChild6, ++/*103607*/ OPC_CheckInteger, 1, ++/*103609*/ OPC_CheckType, MVT::i32, ++/*103611*/ OPC_MoveParent, ++/*103612*/ OPC_MoveChild7, ++/*103613*/ OPC_CheckInteger, 1, ++/*103615*/ OPC_CheckType, MVT::i32, ++/*103617*/ OPC_MoveParent, ++/*103618*/ OPC_MoveChild, 8, ++/*103620*/ OPC_CheckInteger, 1, ++/*103622*/ OPC_CheckType, MVT::i32, ++/*103624*/ OPC_MoveParent, ++/*103625*/ OPC_MoveChild, 9, ++/*103627*/ OPC_CheckInteger, 1, ++/*103629*/ OPC_CheckType, MVT::i32, ++/*103631*/ OPC_MoveParent, ++/*103632*/ OPC_MoveChild, 10, ++/*103634*/ OPC_CheckInteger, 1, ++/*103636*/ OPC_CheckType, MVT::i32, ++/*103638*/ OPC_MoveParent, ++/*103639*/ OPC_MoveChild, 11, ++/*103641*/ OPC_CheckInteger, 1, ++/*103643*/ OPC_CheckType, MVT::i32, ++/*103645*/ OPC_MoveParent, ++/*103646*/ OPC_MoveChild, 12, ++/*103648*/ OPC_CheckInteger, 1, ++/*103650*/ OPC_CheckType, MVT::i32, ++/*103652*/ OPC_MoveParent, ++/*103653*/ OPC_MoveChild, 13, ++/*103655*/ OPC_CheckInteger, 1, ++/*103657*/ OPC_CheckType, MVT::i32, ++/*103659*/ OPC_MoveParent, ++/*103660*/ OPC_MoveChild, 14, ++/*103662*/ OPC_CheckInteger, 1, ++/*103664*/ OPC_CheckType, MVT::i32, ++/*103666*/ OPC_MoveParent, ++/*103667*/ OPC_MoveChild, 15, ++/*103669*/ OPC_CheckInteger, 1, ++/*103671*/ OPC_CheckType, MVT::i32, ++/*103673*/ OPC_MoveParent, ++/*103674*/ OPC_MoveChild, 16, ++/*103676*/ OPC_CheckInteger, 1, ++/*103678*/ OPC_CheckType, MVT::i32, ++/*103680*/ OPC_MoveParent, ++/*103681*/ OPC_MoveChild, 17, ++/*103683*/ OPC_CheckInteger, 1, ++/*103685*/ OPC_CheckType, MVT::i32, ++/*103687*/ OPC_MoveParent, ++/*103688*/ OPC_MoveChild, 18, ++/*103690*/ OPC_CheckInteger, 1, ++/*103692*/ OPC_CheckType, MVT::i32, ++/*103694*/ OPC_MoveParent, ++/*103695*/ OPC_MoveChild, 19, ++/*103697*/ OPC_CheckInteger, 1, ++/*103699*/ OPC_CheckType, MVT::i32, ++/*103701*/ OPC_MoveParent, ++/*103702*/ OPC_MoveChild, 20, ++/*103704*/ OPC_CheckInteger, 1, ++/*103706*/ OPC_CheckType, MVT::i32, ++/*103708*/ OPC_MoveParent, ++/*103709*/ OPC_MoveChild, 21, ++/*103711*/ OPC_CheckInteger, 1, ++/*103713*/ OPC_CheckType, MVT::i32, ++/*103715*/ OPC_MoveParent, ++/*103716*/ OPC_MoveChild, 22, ++/*103718*/ OPC_CheckInteger, 1, ++/*103720*/ OPC_CheckType, MVT::i32, ++/*103722*/ OPC_MoveParent, ++/*103723*/ OPC_MoveChild, 23, ++/*103725*/ OPC_CheckInteger, 1, ++/*103727*/ OPC_CheckType, MVT::i32, ++/*103729*/ OPC_MoveParent, ++/*103730*/ OPC_MoveChild, 24, ++/*103732*/ OPC_CheckInteger, 1, ++/*103734*/ OPC_CheckType, MVT::i32, ++/*103736*/ OPC_MoveParent, ++/*103737*/ OPC_MoveChild, 25, ++/*103739*/ OPC_CheckInteger, 1, ++/*103741*/ OPC_CheckType, MVT::i32, ++/*103743*/ OPC_MoveParent, ++/*103744*/ OPC_MoveChild, 26, ++/*103746*/ OPC_CheckInteger, 1, ++/*103748*/ OPC_CheckType, MVT::i32, ++/*103750*/ OPC_MoveParent, ++/*103751*/ OPC_MoveChild, 27, ++/*103753*/ OPC_CheckInteger, 1, ++/*103755*/ OPC_CheckType, MVT::i32, ++/*103757*/ OPC_MoveParent, ++/*103758*/ OPC_MoveChild, 28, ++/*103760*/ OPC_CheckInteger, 1, ++/*103762*/ OPC_CheckType, MVT::i32, ++/*103764*/ OPC_MoveParent, ++/*103765*/ OPC_MoveChild, 29, ++/*103767*/ OPC_CheckInteger, 1, ++/*103769*/ OPC_CheckType, MVT::i32, ++/*103771*/ OPC_MoveParent, ++/*103772*/ OPC_MoveChild, 30, ++/*103774*/ OPC_CheckInteger, 1, ++/*103776*/ OPC_CheckType, MVT::i32, ++/*103778*/ OPC_MoveParent, ++/*103779*/ OPC_MoveChild, 31, ++/*103781*/ OPC_CheckInteger, 1, ++/*103783*/ OPC_CheckType, MVT::i32, ++/*103785*/ OPC_MoveParent, ++/*103786*/ OPC_MoveParent, ++/*103787*/ OPC_MoveChild1, ++/*103788*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*103791*/ OPC_Scope, 62|128,3/*446*/, /*->104240*/ // 2 children in Scope ++/*103794*/ OPC_CheckChild0Same, 1, ++/*103796*/ OPC_CheckChild1Same, 0, ++/*103798*/ OPC_MoveParent, ++/*103799*/ OPC_MoveParent, ++/*103800*/ OPC_MoveChild1, ++/*103801*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*103804*/ OPC_CheckChild0Integer, 7, ++/*103806*/ OPC_CheckChild0Type, MVT::i32, ++/*103808*/ OPC_CheckChild1Integer, 7, ++/*103810*/ OPC_CheckChild1Type, MVT::i32, ++/*103812*/ OPC_CheckChild2Integer, 7, ++/*103814*/ OPC_CheckChild2Type, MVT::i32, ++/*103816*/ OPC_CheckChild3Integer, 7, ++/*103818*/ OPC_CheckChild3Type, MVT::i32, ++/*103820*/ OPC_CheckChild4Integer, 7, ++/*103822*/ OPC_CheckChild4Type, MVT::i32, ++/*103824*/ OPC_MoveChild5, ++/*103825*/ OPC_CheckInteger, 7, ++/*103827*/ OPC_CheckType, MVT::i32, ++/*103829*/ OPC_MoveParent, ++/*103830*/ OPC_MoveChild6, ++/*103831*/ OPC_CheckInteger, 7, ++/*103833*/ OPC_CheckType, MVT::i32, ++/*103835*/ OPC_MoveParent, ++/*103836*/ OPC_MoveChild7, ++/*103837*/ OPC_CheckInteger, 7, ++/*103839*/ OPC_CheckType, MVT::i32, ++/*103841*/ OPC_MoveParent, ++/*103842*/ OPC_MoveChild, 8, ++/*103844*/ OPC_CheckInteger, 7, ++/*103846*/ OPC_CheckType, MVT::i32, ++/*103848*/ OPC_MoveParent, ++/*103849*/ OPC_MoveChild, 9, ++/*103851*/ OPC_CheckInteger, 7, ++/*103853*/ OPC_CheckType, MVT::i32, ++/*103855*/ OPC_MoveParent, ++/*103856*/ OPC_MoveChild, 10, ++/*103858*/ OPC_CheckInteger, 7, ++/*103860*/ OPC_CheckType, MVT::i32, ++/*103862*/ OPC_MoveParent, ++/*103863*/ OPC_MoveChild, 11, ++/*103865*/ OPC_CheckInteger, 7, ++/*103867*/ OPC_CheckType, MVT::i32, ++/*103869*/ OPC_MoveParent, ++/*103870*/ OPC_MoveChild, 12, ++/*103872*/ OPC_CheckInteger, 7, ++/*103874*/ OPC_CheckType, MVT::i32, ++/*103876*/ OPC_MoveParent, ++/*103877*/ OPC_MoveChild, 13, ++/*103879*/ OPC_CheckInteger, 7, ++/*103881*/ OPC_CheckType, MVT::i32, ++/*103883*/ OPC_MoveParent, ++/*103884*/ OPC_MoveChild, 14, ++/*103886*/ OPC_CheckInteger, 7, ++/*103888*/ OPC_CheckType, MVT::i32, ++/*103890*/ OPC_MoveParent, ++/*103891*/ OPC_MoveChild, 15, ++/*103893*/ OPC_CheckInteger, 7, ++/*103895*/ OPC_CheckType, MVT::i32, ++/*103897*/ OPC_MoveParent, ++/*103898*/ OPC_MoveChild, 16, ++/*103900*/ OPC_CheckInteger, 7, ++/*103902*/ OPC_CheckType, MVT::i32, ++/*103904*/ OPC_MoveParent, ++/*103905*/ OPC_MoveChild, 17, ++/*103907*/ OPC_CheckInteger, 7, ++/*103909*/ OPC_CheckType, MVT::i32, ++/*103911*/ OPC_MoveParent, ++/*103912*/ OPC_MoveChild, 18, ++/*103914*/ OPC_CheckInteger, 7, ++/*103916*/ OPC_CheckType, MVT::i32, ++/*103918*/ OPC_MoveParent, ++/*103919*/ OPC_MoveChild, 19, ++/*103921*/ OPC_CheckInteger, 7, ++/*103923*/ OPC_CheckType, MVT::i32, ++/*103925*/ OPC_MoveParent, ++/*103926*/ OPC_MoveChild, 20, ++/*103928*/ OPC_CheckInteger, 7, ++/*103930*/ OPC_CheckType, MVT::i32, ++/*103932*/ OPC_MoveParent, ++/*103933*/ OPC_MoveChild, 21, ++/*103935*/ OPC_CheckInteger, 7, ++/*103937*/ OPC_CheckType, MVT::i32, ++/*103939*/ OPC_MoveParent, ++/*103940*/ OPC_MoveChild, 22, ++/*103942*/ OPC_CheckInteger, 7, ++/*103944*/ OPC_CheckType, MVT::i32, ++/*103946*/ OPC_MoveParent, ++/*103947*/ OPC_MoveChild, 23, ++/*103949*/ OPC_CheckInteger, 7, ++/*103951*/ OPC_CheckType, MVT::i32, ++/*103953*/ OPC_MoveParent, ++/*103954*/ OPC_MoveChild, 24, ++/*103956*/ OPC_CheckInteger, 7, ++/*103958*/ OPC_CheckType, MVT::i32, ++/*103960*/ OPC_MoveParent, ++/*103961*/ OPC_MoveChild, 25, ++/*103963*/ OPC_CheckInteger, 7, ++/*103965*/ OPC_CheckType, MVT::i32, ++/*103967*/ OPC_MoveParent, ++/*103968*/ OPC_MoveChild, 26, ++/*103970*/ OPC_CheckInteger, 7, ++/*103972*/ OPC_CheckType, MVT::i32, ++/*103974*/ OPC_MoveParent, ++/*103975*/ OPC_MoveChild, 27, ++/*103977*/ OPC_CheckInteger, 7, ++/*103979*/ OPC_CheckType, MVT::i32, ++/*103981*/ OPC_MoveParent, ++/*103982*/ OPC_MoveChild, 28, ++/*103984*/ OPC_CheckInteger, 7, ++/*103986*/ OPC_CheckType, MVT::i32, ++/*103988*/ OPC_MoveParent, ++/*103989*/ OPC_MoveChild, 29, ++/*103991*/ OPC_CheckInteger, 7, ++/*103993*/ OPC_CheckType, MVT::i32, ++/*103995*/ OPC_MoveParent, ++/*103996*/ OPC_MoveChild, 30, ++/*103998*/ OPC_CheckInteger, 7, ++/*104000*/ OPC_CheckType, MVT::i32, ++/*104002*/ OPC_MoveParent, ++/*104003*/ OPC_MoveChild, 31, ++/*104005*/ OPC_CheckInteger, 7, ++/*104007*/ OPC_CheckType, MVT::i32, ++/*104009*/ OPC_MoveParent, ++/*104010*/ OPC_CheckType, MVT::v32i8, ++/*104012*/ OPC_MoveParent, ++/*104013*/ OPC_MoveParent, ++/*104014*/ OPC_MoveParent, ++/*104015*/ OPC_MoveChild1, ++/*104016*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*104019*/ OPC_CheckChild0Integer, 1, ++/*104021*/ OPC_CheckChild0Type, MVT::i32, ++/*104023*/ OPC_CheckChild1Integer, 1, ++/*104025*/ OPC_CheckChild1Type, MVT::i32, ++/*104027*/ OPC_CheckChild2Integer, 1, ++/*104029*/ OPC_CheckChild2Type, MVT::i32, ++/*104031*/ OPC_CheckChild3Integer, 1, ++/*104033*/ OPC_CheckChild3Type, MVT::i32, ++/*104035*/ OPC_CheckChild4Integer, 1, ++/*104037*/ OPC_CheckChild4Type, MVT::i32, ++/*104039*/ OPC_MoveChild5, ++/*104040*/ OPC_CheckInteger, 1, ++/*104042*/ OPC_CheckType, MVT::i32, ++/*104044*/ OPC_MoveParent, ++/*104045*/ OPC_MoveChild6, ++/*104046*/ OPC_CheckInteger, 1, ++/*104048*/ OPC_CheckType, MVT::i32, ++/*104050*/ OPC_MoveParent, ++/*104051*/ OPC_MoveChild7, ++/*104052*/ OPC_CheckInteger, 1, ++/*104054*/ OPC_CheckType, MVT::i32, ++/*104056*/ OPC_MoveParent, ++/*104057*/ OPC_MoveChild, 8, ++/*104059*/ OPC_CheckInteger, 1, ++/*104061*/ OPC_CheckType, MVT::i32, ++/*104063*/ OPC_MoveParent, ++/*104064*/ OPC_MoveChild, 9, ++/*104066*/ OPC_CheckInteger, 1, ++/*104068*/ OPC_CheckType, MVT::i32, ++/*104070*/ OPC_MoveParent, ++/*104071*/ OPC_MoveChild, 10, ++/*104073*/ OPC_CheckInteger, 1, ++/*104075*/ OPC_CheckType, MVT::i32, ++/*104077*/ OPC_MoveParent, ++/*104078*/ OPC_MoveChild, 11, ++/*104080*/ OPC_CheckInteger, 1, ++/*104082*/ OPC_CheckType, MVT::i32, ++/*104084*/ OPC_MoveParent, ++/*104085*/ OPC_MoveChild, 12, ++/*104087*/ OPC_CheckInteger, 1, ++/*104089*/ OPC_CheckType, MVT::i32, ++/*104091*/ OPC_MoveParent, ++/*104092*/ OPC_MoveChild, 13, ++/*104094*/ OPC_CheckInteger, 1, ++/*104096*/ OPC_CheckType, MVT::i32, ++/*104098*/ OPC_MoveParent, ++/*104099*/ OPC_MoveChild, 14, ++/*104101*/ OPC_CheckInteger, 1, ++/*104103*/ OPC_CheckType, MVT::i32, ++/*104105*/ OPC_MoveParent, ++/*104106*/ OPC_MoveChild, 15, ++/*104108*/ OPC_CheckInteger, 1, ++/*104110*/ OPC_CheckType, MVT::i32, ++/*104112*/ OPC_MoveParent, ++/*104113*/ OPC_MoveChild, 16, ++/*104115*/ OPC_CheckInteger, 1, ++/*104117*/ OPC_CheckType, MVT::i32, ++/*104119*/ OPC_MoveParent, ++/*104120*/ OPC_MoveChild, 17, ++/*104122*/ OPC_CheckInteger, 1, ++/*104124*/ OPC_CheckType, MVT::i32, ++/*104126*/ OPC_MoveParent, ++/*104127*/ OPC_MoveChild, 18, ++/*104129*/ OPC_CheckInteger, 1, ++/*104131*/ OPC_CheckType, MVT::i32, ++/*104133*/ OPC_MoveParent, ++/*104134*/ OPC_MoveChild, 19, ++/*104136*/ OPC_CheckInteger, 1, ++/*104138*/ OPC_CheckType, MVT::i32, ++/*104140*/ OPC_MoveParent, ++/*104141*/ OPC_MoveChild, 20, ++/*104143*/ OPC_CheckInteger, 1, ++/*104145*/ OPC_CheckType, MVT::i32, ++/*104147*/ OPC_MoveParent, ++/*104148*/ OPC_MoveChild, 21, ++/*104150*/ OPC_CheckInteger, 1, ++/*104152*/ OPC_CheckType, MVT::i32, ++/*104154*/ OPC_MoveParent, ++/*104155*/ OPC_MoveChild, 22, ++/*104157*/ OPC_CheckInteger, 1, ++/*104159*/ OPC_CheckType, MVT::i32, ++/*104161*/ OPC_MoveParent, ++/*104162*/ OPC_MoveChild, 23, ++/*104164*/ OPC_CheckInteger, 1, ++/*104166*/ OPC_CheckType, MVT::i32, ++/*104168*/ OPC_MoveParent, ++/*104169*/ OPC_MoveChild, 24, ++/*104171*/ OPC_CheckInteger, 1, ++/*104173*/ OPC_CheckType, MVT::i32, ++/*104175*/ OPC_MoveParent, ++/*104176*/ OPC_MoveChild, 25, ++/*104178*/ OPC_CheckInteger, 1, ++/*104180*/ OPC_CheckType, MVT::i32, ++/*104182*/ OPC_MoveParent, ++/*104183*/ OPC_MoveChild, 26, ++/*104185*/ OPC_CheckInteger, 1, ++/*104187*/ OPC_CheckType, MVT::i32, ++/*104189*/ OPC_MoveParent, ++/*104190*/ OPC_MoveChild, 27, ++/*104192*/ OPC_CheckInteger, 1, ++/*104194*/ OPC_CheckType, MVT::i32, ++/*104196*/ OPC_MoveParent, ++/*104197*/ OPC_MoveChild, 28, ++/*104199*/ OPC_CheckInteger, 1, ++/*104201*/ OPC_CheckType, MVT::i32, ++/*104203*/ OPC_MoveParent, ++/*104204*/ OPC_MoveChild, 29, ++/*104206*/ OPC_CheckInteger, 1, ++/*104208*/ OPC_CheckType, MVT::i32, ++/*104210*/ OPC_MoveParent, ++/*104211*/ OPC_MoveChild, 30, ++/*104213*/ OPC_CheckInteger, 1, ++/*104215*/ OPC_CheckType, MVT::i32, ++/*104217*/ OPC_MoveParent, ++/*104218*/ OPC_MoveChild, 31, ++/*104220*/ OPC_CheckInteger, 1, ++/*104222*/ OPC_CheckType, MVT::i32, ++/*104224*/ OPC_MoveParent, ++/*104225*/ OPC_CheckType, MVT::v32i8, ++/*104227*/ OPC_MoveParent, ++/*104228*/ OPC_CheckType, MVT::v32i8, ++/*104230*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*104232*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b), LASX256B:{ *:[v32i8] }:$a), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*104240*/ /*Scope*/ 62|128,3/*446*/, /*->104688*/ ++/*104242*/ OPC_CheckChild0Same, 0, ++/*104244*/ OPC_CheckChild1Same, 1, ++/*104246*/ OPC_MoveParent, ++/*104247*/ OPC_MoveParent, ++/*104248*/ OPC_MoveChild1, ++/*104249*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*104252*/ OPC_CheckChild0Integer, 7, ++/*104254*/ OPC_CheckChild0Type, MVT::i32, ++/*104256*/ OPC_CheckChild1Integer, 7, ++/*104258*/ OPC_CheckChild1Type, MVT::i32, ++/*104260*/ OPC_CheckChild2Integer, 7, ++/*104262*/ OPC_CheckChild2Type, MVT::i32, ++/*104264*/ OPC_CheckChild3Integer, 7, ++/*104266*/ OPC_CheckChild3Type, MVT::i32, ++/*104268*/ OPC_CheckChild4Integer, 7, ++/*104270*/ OPC_CheckChild4Type, MVT::i32, ++/*104272*/ OPC_MoveChild5, ++/*104273*/ OPC_CheckInteger, 7, ++/*104275*/ OPC_CheckType, MVT::i32, ++/*104277*/ OPC_MoveParent, ++/*104278*/ OPC_MoveChild6, ++/*104279*/ OPC_CheckInteger, 7, ++/*104281*/ OPC_CheckType, MVT::i32, ++/*104283*/ OPC_MoveParent, ++/*104284*/ OPC_MoveChild7, ++/*104285*/ OPC_CheckInteger, 7, ++/*104287*/ OPC_CheckType, MVT::i32, ++/*104289*/ OPC_MoveParent, ++/*104290*/ OPC_MoveChild, 8, ++/*104292*/ OPC_CheckInteger, 7, ++/*104294*/ OPC_CheckType, MVT::i32, ++/*104296*/ OPC_MoveParent, ++/*104297*/ OPC_MoveChild, 9, ++/*104299*/ OPC_CheckInteger, 7, ++/*104301*/ OPC_CheckType, MVT::i32, ++/*104303*/ OPC_MoveParent, ++/*104304*/ OPC_MoveChild, 10, ++/*104306*/ OPC_CheckInteger, 7, ++/*104308*/ OPC_CheckType, MVT::i32, ++/*104310*/ OPC_MoveParent, ++/*104311*/ OPC_MoveChild, 11, ++/*104313*/ OPC_CheckInteger, 7, ++/*104315*/ OPC_CheckType, MVT::i32, ++/*104317*/ OPC_MoveParent, ++/*104318*/ OPC_MoveChild, 12, ++/*104320*/ OPC_CheckInteger, 7, ++/*104322*/ OPC_CheckType, MVT::i32, ++/*104324*/ OPC_MoveParent, ++/*104325*/ OPC_MoveChild, 13, ++/*104327*/ OPC_CheckInteger, 7, ++/*104329*/ OPC_CheckType, MVT::i32, ++/*104331*/ OPC_MoveParent, ++/*104332*/ OPC_MoveChild, 14, ++/*104334*/ OPC_CheckInteger, 7, ++/*104336*/ OPC_CheckType, MVT::i32, ++/*104338*/ OPC_MoveParent, ++/*104339*/ OPC_MoveChild, 15, ++/*104341*/ OPC_CheckInteger, 7, ++/*104343*/ OPC_CheckType, MVT::i32, ++/*104345*/ OPC_MoveParent, ++/*104346*/ OPC_MoveChild, 16, ++/*104348*/ OPC_CheckInteger, 7, ++/*104350*/ OPC_CheckType, MVT::i32, ++/*104352*/ OPC_MoveParent, ++/*104353*/ OPC_MoveChild, 17, ++/*104355*/ OPC_CheckInteger, 7, ++/*104357*/ OPC_CheckType, MVT::i32, ++/*104359*/ OPC_MoveParent, ++/*104360*/ OPC_MoveChild, 18, ++/*104362*/ OPC_CheckInteger, 7, ++/*104364*/ OPC_CheckType, MVT::i32, ++/*104366*/ OPC_MoveParent, ++/*104367*/ OPC_MoveChild, 19, ++/*104369*/ OPC_CheckInteger, 7, ++/*104371*/ OPC_CheckType, MVT::i32, ++/*104373*/ OPC_MoveParent, ++/*104374*/ OPC_MoveChild, 20, ++/*104376*/ OPC_CheckInteger, 7, ++/*104378*/ OPC_CheckType, MVT::i32, ++/*104380*/ OPC_MoveParent, ++/*104381*/ OPC_MoveChild, 21, ++/*104383*/ OPC_CheckInteger, 7, ++/*104385*/ OPC_CheckType, MVT::i32, ++/*104387*/ OPC_MoveParent, ++/*104388*/ OPC_MoveChild, 22, ++/*104390*/ OPC_CheckInteger, 7, ++/*104392*/ OPC_CheckType, MVT::i32, ++/*104394*/ OPC_MoveParent, ++/*104395*/ OPC_MoveChild, 23, ++/*104397*/ OPC_CheckInteger, 7, ++/*104399*/ OPC_CheckType, MVT::i32, ++/*104401*/ OPC_MoveParent, ++/*104402*/ OPC_MoveChild, 24, ++/*104404*/ OPC_CheckInteger, 7, ++/*104406*/ OPC_CheckType, MVT::i32, ++/*104408*/ OPC_MoveParent, ++/*104409*/ OPC_MoveChild, 25, ++/*104411*/ OPC_CheckInteger, 7, ++/*104413*/ OPC_CheckType, MVT::i32, ++/*104415*/ OPC_MoveParent, ++/*104416*/ OPC_MoveChild, 26, ++/*104418*/ OPC_CheckInteger, 7, ++/*104420*/ OPC_CheckType, MVT::i32, ++/*104422*/ OPC_MoveParent, ++/*104423*/ OPC_MoveChild, 27, ++/*104425*/ OPC_CheckInteger, 7, ++/*104427*/ OPC_CheckType, MVT::i32, ++/*104429*/ OPC_MoveParent, ++/*104430*/ OPC_MoveChild, 28, ++/*104432*/ OPC_CheckInteger, 7, ++/*104434*/ OPC_CheckType, MVT::i32, ++/*104436*/ OPC_MoveParent, ++/*104437*/ OPC_MoveChild, 29, ++/*104439*/ OPC_CheckInteger, 7, ++/*104441*/ OPC_CheckType, MVT::i32, ++/*104443*/ OPC_MoveParent, ++/*104444*/ OPC_MoveChild, 30, ++/*104446*/ OPC_CheckInteger, 7, ++/*104448*/ OPC_CheckType, MVT::i32, ++/*104450*/ OPC_MoveParent, ++/*104451*/ OPC_MoveChild, 31, ++/*104453*/ OPC_CheckInteger, 7, ++/*104455*/ OPC_CheckType, MVT::i32, ++/*104457*/ OPC_MoveParent, ++/*104458*/ OPC_CheckType, MVT::v32i8, ++/*104460*/ OPC_MoveParent, ++/*104461*/ OPC_MoveParent, ++/*104462*/ OPC_MoveParent, ++/*104463*/ OPC_MoveChild1, ++/*104464*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*104467*/ OPC_CheckChild0Integer, 1, ++/*104469*/ OPC_CheckChild0Type, MVT::i32, ++/*104471*/ OPC_CheckChild1Integer, 1, ++/*104473*/ OPC_CheckChild1Type, MVT::i32, ++/*104475*/ OPC_CheckChild2Integer, 1, ++/*104477*/ OPC_CheckChild2Type, MVT::i32, ++/*104479*/ OPC_CheckChild3Integer, 1, ++/*104481*/ OPC_CheckChild3Type, MVT::i32, ++/*104483*/ OPC_CheckChild4Integer, 1, ++/*104485*/ OPC_CheckChild4Type, MVT::i32, ++/*104487*/ OPC_MoveChild5, ++/*104488*/ OPC_CheckInteger, 1, ++/*104490*/ OPC_CheckType, MVT::i32, ++/*104492*/ OPC_MoveParent, ++/*104493*/ OPC_MoveChild6, ++/*104494*/ OPC_CheckInteger, 1, ++/*104496*/ OPC_CheckType, MVT::i32, ++/*104498*/ OPC_MoveParent, ++/*104499*/ OPC_MoveChild7, ++/*104500*/ OPC_CheckInteger, 1, ++/*104502*/ OPC_CheckType, MVT::i32, ++/*104504*/ OPC_MoveParent, ++/*104505*/ OPC_MoveChild, 8, ++/*104507*/ OPC_CheckInteger, 1, ++/*104509*/ OPC_CheckType, MVT::i32, ++/*104511*/ OPC_MoveParent, ++/*104512*/ OPC_MoveChild, 9, ++/*104514*/ OPC_CheckInteger, 1, ++/*104516*/ OPC_CheckType, MVT::i32, ++/*104518*/ OPC_MoveParent, ++/*104519*/ OPC_MoveChild, 10, ++/*104521*/ OPC_CheckInteger, 1, ++/*104523*/ OPC_CheckType, MVT::i32, ++/*104525*/ OPC_MoveParent, ++/*104526*/ OPC_MoveChild, 11, ++/*104528*/ OPC_CheckInteger, 1, ++/*104530*/ OPC_CheckType, MVT::i32, ++/*104532*/ OPC_MoveParent, ++/*104533*/ OPC_MoveChild, 12, ++/*104535*/ OPC_CheckInteger, 1, ++/*104537*/ OPC_CheckType, MVT::i32, ++/*104539*/ OPC_MoveParent, ++/*104540*/ OPC_MoveChild, 13, ++/*104542*/ OPC_CheckInteger, 1, ++/*104544*/ OPC_CheckType, MVT::i32, ++/*104546*/ OPC_MoveParent, ++/*104547*/ OPC_MoveChild, 14, ++/*104549*/ OPC_CheckInteger, 1, ++/*104551*/ OPC_CheckType, MVT::i32, ++/*104553*/ OPC_MoveParent, ++/*104554*/ OPC_MoveChild, 15, ++/*104556*/ OPC_CheckInteger, 1, ++/*104558*/ OPC_CheckType, MVT::i32, ++/*104560*/ OPC_MoveParent, ++/*104561*/ OPC_MoveChild, 16, ++/*104563*/ OPC_CheckInteger, 1, ++/*104565*/ OPC_CheckType, MVT::i32, ++/*104567*/ OPC_MoveParent, ++/*104568*/ OPC_MoveChild, 17, ++/*104570*/ OPC_CheckInteger, 1, ++/*104572*/ OPC_CheckType, MVT::i32, ++/*104574*/ OPC_MoveParent, ++/*104575*/ OPC_MoveChild, 18, ++/*104577*/ OPC_CheckInteger, 1, ++/*104579*/ OPC_CheckType, MVT::i32, ++/*104581*/ OPC_MoveParent, ++/*104582*/ OPC_MoveChild, 19, ++/*104584*/ OPC_CheckInteger, 1, ++/*104586*/ OPC_CheckType, MVT::i32, ++/*104588*/ OPC_MoveParent, ++/*104589*/ OPC_MoveChild, 20, ++/*104591*/ OPC_CheckInteger, 1, ++/*104593*/ OPC_CheckType, MVT::i32, ++/*104595*/ OPC_MoveParent, ++/*104596*/ OPC_MoveChild, 21, ++/*104598*/ OPC_CheckInteger, 1, ++/*104600*/ OPC_CheckType, MVT::i32, ++/*104602*/ OPC_MoveParent, ++/*104603*/ OPC_MoveChild, 22, ++/*104605*/ OPC_CheckInteger, 1, ++/*104607*/ OPC_CheckType, MVT::i32, ++/*104609*/ OPC_MoveParent, ++/*104610*/ OPC_MoveChild, 23, ++/*104612*/ OPC_CheckInteger, 1, ++/*104614*/ OPC_CheckType, MVT::i32, ++/*104616*/ OPC_MoveParent, ++/*104617*/ OPC_MoveChild, 24, ++/*104619*/ OPC_CheckInteger, 1, ++/*104621*/ OPC_CheckType, MVT::i32, ++/*104623*/ OPC_MoveParent, ++/*104624*/ OPC_MoveChild, 25, ++/*104626*/ OPC_CheckInteger, 1, ++/*104628*/ OPC_CheckType, MVT::i32, ++/*104630*/ OPC_MoveParent, ++/*104631*/ OPC_MoveChild, 26, ++/*104633*/ OPC_CheckInteger, 1, ++/*104635*/ OPC_CheckType, MVT::i32, ++/*104637*/ OPC_MoveParent, ++/*104638*/ OPC_MoveChild, 27, ++/*104640*/ OPC_CheckInteger, 1, ++/*104642*/ OPC_CheckType, MVT::i32, ++/*104644*/ OPC_MoveParent, ++/*104645*/ OPC_MoveChild, 28, ++/*104647*/ OPC_CheckInteger, 1, ++/*104649*/ OPC_CheckType, MVT::i32, ++/*104651*/ OPC_MoveParent, ++/*104652*/ OPC_MoveChild, 29, ++/*104654*/ OPC_CheckInteger, 1, ++/*104656*/ OPC_CheckType, MVT::i32, ++/*104658*/ OPC_MoveParent, ++/*104659*/ OPC_MoveChild, 30, ++/*104661*/ OPC_CheckInteger, 1, ++/*104663*/ OPC_CheckType, MVT::i32, ++/*104665*/ OPC_MoveParent, ++/*104666*/ OPC_MoveChild, 31, ++/*104668*/ OPC_CheckInteger, 1, ++/*104670*/ OPC_CheckType, MVT::i32, ++/*104672*/ OPC_MoveParent, ++/*104673*/ OPC_CheckType, MVT::v32i8, ++/*104675*/ OPC_MoveParent, ++/*104676*/ OPC_CheckType, MVT::v32i8, ++/*104678*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*104680*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b), LASX256B:{ *:[v32i8] }:$a), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*104688*/ 0, /*End of Scope*/ ++/*104689*/ 0, /*End of Scope*/ ++/*104690*/ /*Scope*/ 79|128,56|128,1/*23631*/, /*->128324*/ ++/*104693*/ OPC_RecordChild0, // #0 = $b ++/*104694*/ OPC_Scope, 13|128,62/*7949*/, /*->112646*/ // 2 children in Scope ++/*104697*/ OPC_MoveChild1, ++/*104698*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*104701*/ OPC_CheckChild0Integer, 1, ++/*104703*/ OPC_CheckChild0Type, MVT::i32, ++/*104705*/ OPC_CheckChild1Integer, 1, ++/*104707*/ OPC_CheckChild1Type, MVT::i32, ++/*104709*/ OPC_CheckChild2Integer, 1, ++/*104711*/ OPC_CheckChild2Type, MVT::i32, ++/*104713*/ OPC_CheckChild3Integer, 1, ++/*104715*/ OPC_CheckChild3Type, MVT::i32, ++/*104717*/ OPC_CheckChild4Integer, 1, ++/*104719*/ OPC_CheckChild4Type, MVT::i32, ++/*104721*/ OPC_MoveChild5, ++/*104722*/ OPC_CheckInteger, 1, ++/*104724*/ OPC_CheckType, MVT::i32, ++/*104726*/ OPC_MoveParent, ++/*104727*/ OPC_MoveChild6, ++/*104728*/ OPC_CheckInteger, 1, ++/*104730*/ OPC_CheckType, MVT::i32, ++/*104732*/ OPC_MoveParent, ++/*104733*/ OPC_MoveChild7, ++/*104734*/ OPC_CheckInteger, 1, ++/*104736*/ OPC_CheckType, MVT::i32, ++/*104738*/ OPC_MoveParent, ++/*104739*/ OPC_MoveChild, 8, ++/*104741*/ OPC_CheckInteger, 1, ++/*104743*/ OPC_CheckType, MVT::i32, ++/*104745*/ OPC_MoveParent, ++/*104746*/ OPC_MoveChild, 9, ++/*104748*/ OPC_CheckInteger, 1, ++/*104750*/ OPC_CheckType, MVT::i32, ++/*104752*/ OPC_MoveParent, ++/*104753*/ OPC_MoveChild, 10, ++/*104755*/ OPC_CheckInteger, 1, ++/*104757*/ OPC_CheckType, MVT::i32, ++/*104759*/ OPC_MoveParent, ++/*104760*/ OPC_MoveChild, 11, ++/*104762*/ OPC_CheckInteger, 1, ++/*104764*/ OPC_CheckType, MVT::i32, ++/*104766*/ OPC_MoveParent, ++/*104767*/ OPC_MoveChild, 12, ++/*104769*/ OPC_CheckInteger, 1, ++/*104771*/ OPC_CheckType, MVT::i32, ++/*104773*/ OPC_MoveParent, ++/*104774*/ OPC_MoveChild, 13, ++/*104776*/ OPC_CheckInteger, 1, ++/*104778*/ OPC_CheckType, MVT::i32, ++/*104780*/ OPC_MoveParent, ++/*104781*/ OPC_MoveChild, 14, ++/*104783*/ OPC_CheckInteger, 1, ++/*104785*/ OPC_CheckType, MVT::i32, ++/*104787*/ OPC_MoveParent, ++/*104788*/ OPC_MoveChild, 15, ++/*104790*/ OPC_CheckInteger, 1, ++/*104792*/ OPC_CheckType, MVT::i32, ++/*104794*/ OPC_MoveParent, ++/*104795*/ OPC_MoveChild, 16, ++/*104797*/ OPC_CheckInteger, 1, ++/*104799*/ OPC_CheckType, MVT::i32, ++/*104801*/ OPC_MoveParent, ++/*104802*/ OPC_MoveChild, 17, ++/*104804*/ OPC_CheckInteger, 1, ++/*104806*/ OPC_CheckType, MVT::i32, ++/*104808*/ OPC_MoveParent, ++/*104809*/ OPC_MoveChild, 18, ++/*104811*/ OPC_CheckInteger, 1, ++/*104813*/ OPC_CheckType, MVT::i32, ++/*104815*/ OPC_MoveParent, ++/*104816*/ OPC_MoveChild, 19, ++/*104818*/ OPC_CheckInteger, 1, ++/*104820*/ OPC_CheckType, MVT::i32, ++/*104822*/ OPC_MoveParent, ++/*104823*/ OPC_MoveChild, 20, ++/*104825*/ OPC_CheckInteger, 1, ++/*104827*/ OPC_CheckType, MVT::i32, ++/*104829*/ OPC_MoveParent, ++/*104830*/ OPC_MoveChild, 21, ++/*104832*/ OPC_CheckInteger, 1, ++/*104834*/ OPC_CheckType, MVT::i32, ++/*104836*/ OPC_MoveParent, ++/*104837*/ OPC_MoveChild, 22, ++/*104839*/ OPC_CheckInteger, 1, ++/*104841*/ OPC_CheckType, MVT::i32, ++/*104843*/ OPC_MoveParent, ++/*104844*/ OPC_MoveChild, 23, ++/*104846*/ OPC_CheckInteger, 1, ++/*104848*/ OPC_CheckType, MVT::i32, ++/*104850*/ OPC_MoveParent, ++/*104851*/ OPC_MoveChild, 24, ++/*104853*/ OPC_CheckInteger, 1, ++/*104855*/ OPC_CheckType, MVT::i32, ++/*104857*/ OPC_MoveParent, ++/*104858*/ OPC_MoveChild, 25, ++/*104860*/ OPC_CheckInteger, 1, ++/*104862*/ OPC_CheckType, MVT::i32, ++/*104864*/ OPC_MoveParent, ++/*104865*/ OPC_MoveChild, 26, ++/*104867*/ OPC_CheckInteger, 1, ++/*104869*/ OPC_CheckType, MVT::i32, ++/*104871*/ OPC_MoveParent, ++/*104872*/ OPC_MoveChild, 27, ++/*104874*/ OPC_CheckInteger, 1, ++/*104876*/ OPC_CheckType, MVT::i32, ++/*104878*/ OPC_MoveParent, ++/*104879*/ OPC_MoveChild, 28, ++/*104881*/ OPC_CheckInteger, 1, ++/*104883*/ OPC_CheckType, MVT::i32, ++/*104885*/ OPC_MoveParent, ++/*104886*/ OPC_MoveChild, 29, ++/*104888*/ OPC_CheckInteger, 1, ++/*104890*/ OPC_CheckType, MVT::i32, ++/*104892*/ OPC_MoveParent, ++/*104893*/ OPC_MoveChild, 30, ++/*104895*/ OPC_CheckInteger, 1, ++/*104897*/ OPC_CheckType, MVT::i32, ++/*104899*/ OPC_MoveParent, ++/*104900*/ OPC_MoveChild, 31, ++/*104902*/ OPC_CheckInteger, 1, ++/*104904*/ OPC_CheckType, MVT::i32, ++/*104906*/ OPC_MoveParent, ++/*104907*/ OPC_MoveParent, ++/*104908*/ OPC_MoveParent, ++/*104909*/ OPC_RecordChild1, // #1 = $a ++/*104910*/ OPC_MoveParent, ++/*104911*/ OPC_MoveChild1, ++/*104912*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*104915*/ OPC_MoveChild0, ++/*104916*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*104919*/ OPC_Scope, 120|128,30/*3960*/, /*->108882*/ // 4 children in Scope ++/*104922*/ OPC_MoveChild0, ++/*104923*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*104926*/ OPC_Scope, 17|128,5/*657*/, /*->105586*/ // 6 children in Scope ++/*104929*/ OPC_MoveChild0, ++/*104930*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*104933*/ OPC_CheckChild0Integer, 1, ++/*104935*/ OPC_CheckChild0Type, MVT::i32, ++/*104937*/ OPC_CheckChild1Integer, 1, ++/*104939*/ OPC_CheckChild1Type, MVT::i32, ++/*104941*/ OPC_CheckChild2Integer, 1, ++/*104943*/ OPC_CheckChild2Type, MVT::i32, ++/*104945*/ OPC_CheckChild3Integer, 1, ++/*104947*/ OPC_CheckChild3Type, MVT::i32, ++/*104949*/ OPC_CheckChild4Integer, 1, ++/*104951*/ OPC_CheckChild4Type, MVT::i32, ++/*104953*/ OPC_MoveChild5, ++/*104954*/ OPC_CheckInteger, 1, ++/*104956*/ OPC_CheckType, MVT::i32, ++/*104958*/ OPC_MoveParent, ++/*104959*/ OPC_MoveChild6, ++/*104960*/ OPC_CheckInteger, 1, ++/*104962*/ OPC_CheckType, MVT::i32, ++/*104964*/ OPC_MoveParent, ++/*104965*/ OPC_MoveChild7, ++/*104966*/ OPC_CheckInteger, 1, ++/*104968*/ OPC_CheckType, MVT::i32, ++/*104970*/ OPC_MoveParent, ++/*104971*/ OPC_MoveChild, 8, ++/*104973*/ OPC_CheckInteger, 1, ++/*104975*/ OPC_CheckType, MVT::i32, ++/*104977*/ OPC_MoveParent, ++/*104978*/ OPC_MoveChild, 9, ++/*104980*/ OPC_CheckInteger, 1, ++/*104982*/ OPC_CheckType, MVT::i32, ++/*104984*/ OPC_MoveParent, ++/*104985*/ OPC_MoveChild, 10, ++/*104987*/ OPC_CheckInteger, 1, ++/*104989*/ OPC_CheckType, MVT::i32, ++/*104991*/ OPC_MoveParent, ++/*104992*/ OPC_MoveChild, 11, ++/*104994*/ OPC_CheckInteger, 1, ++/*104996*/ OPC_CheckType, MVT::i32, ++/*104998*/ OPC_MoveParent, ++/*104999*/ OPC_MoveChild, 12, ++/*105001*/ OPC_CheckInteger, 1, ++/*105003*/ OPC_CheckType, MVT::i32, ++/*105005*/ OPC_MoveParent, ++/*105006*/ OPC_MoveChild, 13, ++/*105008*/ OPC_CheckInteger, 1, ++/*105010*/ OPC_CheckType, MVT::i32, ++/*105012*/ OPC_MoveParent, ++/*105013*/ OPC_MoveChild, 14, ++/*105015*/ OPC_CheckInteger, 1, ++/*105017*/ OPC_CheckType, MVT::i32, ++/*105019*/ OPC_MoveParent, ++/*105020*/ OPC_MoveChild, 15, ++/*105022*/ OPC_CheckInteger, 1, ++/*105024*/ OPC_CheckType, MVT::i32, ++/*105026*/ OPC_MoveParent, ++/*105027*/ OPC_MoveChild, 16, ++/*105029*/ OPC_CheckInteger, 1, ++/*105031*/ OPC_CheckType, MVT::i32, ++/*105033*/ OPC_MoveParent, ++/*105034*/ OPC_MoveChild, 17, ++/*105036*/ OPC_CheckInteger, 1, ++/*105038*/ OPC_CheckType, MVT::i32, ++/*105040*/ OPC_MoveParent, ++/*105041*/ OPC_MoveChild, 18, ++/*105043*/ OPC_CheckInteger, 1, ++/*105045*/ OPC_CheckType, MVT::i32, ++/*105047*/ OPC_MoveParent, ++/*105048*/ OPC_MoveChild, 19, ++/*105050*/ OPC_CheckInteger, 1, ++/*105052*/ OPC_CheckType, MVT::i32, ++/*105054*/ OPC_MoveParent, ++/*105055*/ OPC_MoveChild, 20, ++/*105057*/ OPC_CheckInteger, 1, ++/*105059*/ OPC_CheckType, MVT::i32, ++/*105061*/ OPC_MoveParent, ++/*105062*/ OPC_MoveChild, 21, ++/*105064*/ OPC_CheckInteger, 1, ++/*105066*/ OPC_CheckType, MVT::i32, ++/*105068*/ OPC_MoveParent, ++/*105069*/ OPC_MoveChild, 22, ++/*105071*/ OPC_CheckInteger, 1, ++/*105073*/ OPC_CheckType, MVT::i32, ++/*105075*/ OPC_MoveParent, ++/*105076*/ OPC_MoveChild, 23, ++/*105078*/ OPC_CheckInteger, 1, ++/*105080*/ OPC_CheckType, MVT::i32, ++/*105082*/ OPC_MoveParent, ++/*105083*/ OPC_MoveChild, 24, ++/*105085*/ OPC_CheckInteger, 1, ++/*105087*/ OPC_CheckType, MVT::i32, ++/*105089*/ OPC_MoveParent, ++/*105090*/ OPC_MoveChild, 25, ++/*105092*/ OPC_CheckInteger, 1, ++/*105094*/ OPC_CheckType, MVT::i32, ++/*105096*/ OPC_MoveParent, ++/*105097*/ OPC_MoveChild, 26, ++/*105099*/ OPC_CheckInteger, 1, ++/*105101*/ OPC_CheckType, MVT::i32, ++/*105103*/ OPC_MoveParent, ++/*105104*/ OPC_MoveChild, 27, ++/*105106*/ OPC_CheckInteger, 1, ++/*105108*/ OPC_CheckType, MVT::i32, ++/*105110*/ OPC_MoveParent, ++/*105111*/ OPC_MoveChild, 28, ++/*105113*/ OPC_CheckInteger, 1, ++/*105115*/ OPC_CheckType, MVT::i32, ++/*105117*/ OPC_MoveParent, ++/*105118*/ OPC_MoveChild, 29, ++/*105120*/ OPC_CheckInteger, 1, ++/*105122*/ OPC_CheckType, MVT::i32, ++/*105124*/ OPC_MoveParent, ++/*105125*/ OPC_MoveChild, 30, ++/*105127*/ OPC_CheckInteger, 1, ++/*105129*/ OPC_CheckType, MVT::i32, ++/*105131*/ OPC_MoveParent, ++/*105132*/ OPC_MoveChild, 31, ++/*105134*/ OPC_CheckInteger, 1, ++/*105136*/ OPC_CheckType, MVT::i32, ++/*105138*/ OPC_MoveParent, ++/*105139*/ OPC_MoveParent, ++/*105140*/ OPC_CheckChild1Same, 1, ++/*105142*/ OPC_MoveParent, ++/*105143*/ OPC_CheckChild1Same, 0, ++/*105145*/ OPC_MoveParent, ++/*105146*/ OPC_MoveChild1, ++/*105147*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*105150*/ OPC_CheckChild0Integer, 7, ++/*105152*/ OPC_CheckChild0Type, MVT::i32, ++/*105154*/ OPC_CheckChild1Integer, 7, ++/*105156*/ OPC_CheckChild1Type, MVT::i32, ++/*105158*/ OPC_CheckChild2Integer, 7, ++/*105160*/ OPC_CheckChild2Type, MVT::i32, ++/*105162*/ OPC_CheckChild3Integer, 7, ++/*105164*/ OPC_CheckChild3Type, MVT::i32, ++/*105166*/ OPC_CheckChild4Integer, 7, ++/*105168*/ OPC_CheckChild4Type, MVT::i32, ++/*105170*/ OPC_MoveChild5, ++/*105171*/ OPC_CheckInteger, 7, ++/*105173*/ OPC_CheckType, MVT::i32, ++/*105175*/ OPC_MoveParent, ++/*105176*/ OPC_MoveChild6, ++/*105177*/ OPC_CheckInteger, 7, ++/*105179*/ OPC_CheckType, MVT::i32, ++/*105181*/ OPC_MoveParent, ++/*105182*/ OPC_MoveChild7, ++/*105183*/ OPC_CheckInteger, 7, ++/*105185*/ OPC_CheckType, MVT::i32, ++/*105187*/ OPC_MoveParent, ++/*105188*/ OPC_MoveChild, 8, ++/*105190*/ OPC_CheckInteger, 7, ++/*105192*/ OPC_CheckType, MVT::i32, ++/*105194*/ OPC_MoveParent, ++/*105195*/ OPC_MoveChild, 9, ++/*105197*/ OPC_CheckInteger, 7, ++/*105199*/ OPC_CheckType, MVT::i32, ++/*105201*/ OPC_MoveParent, ++/*105202*/ OPC_MoveChild, 10, ++/*105204*/ OPC_CheckInteger, 7, ++/*105206*/ OPC_CheckType, MVT::i32, ++/*105208*/ OPC_MoveParent, ++/*105209*/ OPC_MoveChild, 11, ++/*105211*/ OPC_CheckInteger, 7, ++/*105213*/ OPC_CheckType, MVT::i32, ++/*105215*/ OPC_MoveParent, ++/*105216*/ OPC_MoveChild, 12, ++/*105218*/ OPC_CheckInteger, 7, ++/*105220*/ OPC_CheckType, MVT::i32, ++/*105222*/ OPC_MoveParent, ++/*105223*/ OPC_MoveChild, 13, ++/*105225*/ OPC_CheckInteger, 7, ++/*105227*/ OPC_CheckType, MVT::i32, ++/*105229*/ OPC_MoveParent, ++/*105230*/ OPC_MoveChild, 14, ++/*105232*/ OPC_CheckInteger, 7, ++/*105234*/ OPC_CheckType, MVT::i32, ++/*105236*/ OPC_MoveParent, ++/*105237*/ OPC_MoveChild, 15, ++/*105239*/ OPC_CheckInteger, 7, ++/*105241*/ OPC_CheckType, MVT::i32, ++/*105243*/ OPC_MoveParent, ++/*105244*/ OPC_MoveChild, 16, ++/*105246*/ OPC_CheckInteger, 7, ++/*105248*/ OPC_CheckType, MVT::i32, ++/*105250*/ OPC_MoveParent, ++/*105251*/ OPC_MoveChild, 17, ++/*105253*/ OPC_CheckInteger, 7, ++/*105255*/ OPC_CheckType, MVT::i32, ++/*105257*/ OPC_MoveParent, ++/*105258*/ OPC_MoveChild, 18, ++/*105260*/ OPC_CheckInteger, 7, ++/*105262*/ OPC_CheckType, MVT::i32, ++/*105264*/ OPC_MoveParent, ++/*105265*/ OPC_MoveChild, 19, ++/*105267*/ OPC_CheckInteger, 7, ++/*105269*/ OPC_CheckType, MVT::i32, ++/*105271*/ OPC_MoveParent, ++/*105272*/ OPC_MoveChild, 20, ++/*105274*/ OPC_CheckInteger, 7, ++/*105276*/ OPC_CheckType, MVT::i32, ++/*105278*/ OPC_MoveParent, ++/*105279*/ OPC_MoveChild, 21, ++/*105281*/ OPC_CheckInteger, 7, ++/*105283*/ OPC_CheckType, MVT::i32, ++/*105285*/ OPC_MoveParent, ++/*105286*/ OPC_MoveChild, 22, ++/*105288*/ OPC_CheckInteger, 7, ++/*105290*/ OPC_CheckType, MVT::i32, ++/*105292*/ OPC_MoveParent, ++/*105293*/ OPC_MoveChild, 23, ++/*105295*/ OPC_CheckInteger, 7, ++/*105297*/ OPC_CheckType, MVT::i32, ++/*105299*/ OPC_MoveParent, ++/*105300*/ OPC_MoveChild, 24, ++/*105302*/ OPC_CheckInteger, 7, ++/*105304*/ OPC_CheckType, MVT::i32, ++/*105306*/ OPC_MoveParent, ++/*105307*/ OPC_MoveChild, 25, ++/*105309*/ OPC_CheckInteger, 7, ++/*105311*/ OPC_CheckType, MVT::i32, ++/*105313*/ OPC_MoveParent, ++/*105314*/ OPC_MoveChild, 26, ++/*105316*/ OPC_CheckInteger, 7, ++/*105318*/ OPC_CheckType, MVT::i32, ++/*105320*/ OPC_MoveParent, ++/*105321*/ OPC_MoveChild, 27, ++/*105323*/ OPC_CheckInteger, 7, ++/*105325*/ OPC_CheckType, MVT::i32, ++/*105327*/ OPC_MoveParent, ++/*105328*/ OPC_MoveChild, 28, ++/*105330*/ OPC_CheckInteger, 7, ++/*105332*/ OPC_CheckType, MVT::i32, ++/*105334*/ OPC_MoveParent, ++/*105335*/ OPC_MoveChild, 29, ++/*105337*/ OPC_CheckInteger, 7, ++/*105339*/ OPC_CheckType, MVT::i32, ++/*105341*/ OPC_MoveParent, ++/*105342*/ OPC_MoveChild, 30, ++/*105344*/ OPC_CheckInteger, 7, ++/*105346*/ OPC_CheckType, MVT::i32, ++/*105348*/ OPC_MoveParent, ++/*105349*/ OPC_MoveChild, 31, ++/*105351*/ OPC_CheckInteger, 7, ++/*105353*/ OPC_CheckType, MVT::i32, ++/*105355*/ OPC_MoveParent, ++/*105356*/ OPC_CheckType, MVT::v32i8, ++/*105358*/ OPC_MoveParent, ++/*105359*/ OPC_MoveParent, ++/*105360*/ OPC_MoveParent, ++/*105361*/ OPC_MoveChild1, ++/*105362*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*105365*/ OPC_CheckChild0Integer, 1, ++/*105367*/ OPC_CheckChild0Type, MVT::i32, ++/*105369*/ OPC_CheckChild1Integer, 1, ++/*105371*/ OPC_CheckChild1Type, MVT::i32, ++/*105373*/ OPC_CheckChild2Integer, 1, ++/*105375*/ OPC_CheckChild2Type, MVT::i32, ++/*105377*/ OPC_CheckChild3Integer, 1, ++/*105379*/ OPC_CheckChild3Type, MVT::i32, ++/*105381*/ OPC_CheckChild4Integer, 1, ++/*105383*/ OPC_CheckChild4Type, MVT::i32, ++/*105385*/ OPC_MoveChild5, ++/*105386*/ OPC_CheckInteger, 1, ++/*105388*/ OPC_CheckType, MVT::i32, ++/*105390*/ OPC_MoveParent, ++/*105391*/ OPC_MoveChild6, ++/*105392*/ OPC_CheckInteger, 1, ++/*105394*/ OPC_CheckType, MVT::i32, ++/*105396*/ OPC_MoveParent, ++/*105397*/ OPC_MoveChild7, ++/*105398*/ OPC_CheckInteger, 1, ++/*105400*/ OPC_CheckType, MVT::i32, ++/*105402*/ OPC_MoveParent, ++/*105403*/ OPC_MoveChild, 8, ++/*105405*/ OPC_CheckInteger, 1, ++/*105407*/ OPC_CheckType, MVT::i32, ++/*105409*/ OPC_MoveParent, ++/*105410*/ OPC_MoveChild, 9, ++/*105412*/ OPC_CheckInteger, 1, ++/*105414*/ OPC_CheckType, MVT::i32, ++/*105416*/ OPC_MoveParent, ++/*105417*/ OPC_MoveChild, 10, ++/*105419*/ OPC_CheckInteger, 1, ++/*105421*/ OPC_CheckType, MVT::i32, ++/*105423*/ OPC_MoveParent, ++/*105424*/ OPC_MoveChild, 11, ++/*105426*/ OPC_CheckInteger, 1, ++/*105428*/ OPC_CheckType, MVT::i32, ++/*105430*/ OPC_MoveParent, ++/*105431*/ OPC_MoveChild, 12, ++/*105433*/ OPC_CheckInteger, 1, ++/*105435*/ OPC_CheckType, MVT::i32, ++/*105437*/ OPC_MoveParent, ++/*105438*/ OPC_MoveChild, 13, ++/*105440*/ OPC_CheckInteger, 1, ++/*105442*/ OPC_CheckType, MVT::i32, ++/*105444*/ OPC_MoveParent, ++/*105445*/ OPC_MoveChild, 14, ++/*105447*/ OPC_CheckInteger, 1, ++/*105449*/ OPC_CheckType, MVT::i32, ++/*105451*/ OPC_MoveParent, ++/*105452*/ OPC_MoveChild, 15, ++/*105454*/ OPC_CheckInteger, 1, ++/*105456*/ OPC_CheckType, MVT::i32, ++/*105458*/ OPC_MoveParent, ++/*105459*/ OPC_MoveChild, 16, ++/*105461*/ OPC_CheckInteger, 1, ++/*105463*/ OPC_CheckType, MVT::i32, ++/*105465*/ OPC_MoveParent, ++/*105466*/ OPC_MoveChild, 17, ++/*105468*/ OPC_CheckInteger, 1, ++/*105470*/ OPC_CheckType, MVT::i32, ++/*105472*/ OPC_MoveParent, ++/*105473*/ OPC_MoveChild, 18, ++/*105475*/ OPC_CheckInteger, 1, ++/*105477*/ OPC_CheckType, MVT::i32, ++/*105479*/ OPC_MoveParent, ++/*105480*/ OPC_MoveChild, 19, ++/*105482*/ OPC_CheckInteger, 1, ++/*105484*/ OPC_CheckType, MVT::i32, ++/*105486*/ OPC_MoveParent, ++/*105487*/ OPC_MoveChild, 20, ++/*105489*/ OPC_CheckInteger, 1, ++/*105491*/ OPC_CheckType, MVT::i32, ++/*105493*/ OPC_MoveParent, ++/*105494*/ OPC_MoveChild, 21, ++/*105496*/ OPC_CheckInteger, 1, ++/*105498*/ OPC_CheckType, MVT::i32, ++/*105500*/ OPC_MoveParent, ++/*105501*/ OPC_MoveChild, 22, ++/*105503*/ OPC_CheckInteger, 1, ++/*105505*/ OPC_CheckType, MVT::i32, ++/*105507*/ OPC_MoveParent, ++/*105508*/ OPC_MoveChild, 23, ++/*105510*/ OPC_CheckInteger, 1, ++/*105512*/ OPC_CheckType, MVT::i32, ++/*105514*/ OPC_MoveParent, ++/*105515*/ OPC_MoveChild, 24, ++/*105517*/ OPC_CheckInteger, 1, ++/*105519*/ OPC_CheckType, MVT::i32, ++/*105521*/ OPC_MoveParent, ++/*105522*/ OPC_MoveChild, 25, ++/*105524*/ OPC_CheckInteger, 1, ++/*105526*/ OPC_CheckType, MVT::i32, ++/*105528*/ OPC_MoveParent, ++/*105529*/ OPC_MoveChild, 26, ++/*105531*/ OPC_CheckInteger, 1, ++/*105533*/ OPC_CheckType, MVT::i32, ++/*105535*/ OPC_MoveParent, ++/*105536*/ OPC_MoveChild, 27, ++/*105538*/ OPC_CheckInteger, 1, ++/*105540*/ OPC_CheckType, MVT::i32, ++/*105542*/ OPC_MoveParent, ++/*105543*/ OPC_MoveChild, 28, ++/*105545*/ OPC_CheckInteger, 1, ++/*105547*/ OPC_CheckType, MVT::i32, ++/*105549*/ OPC_MoveParent, ++/*105550*/ OPC_MoveChild, 29, ++/*105552*/ OPC_CheckInteger, 1, ++/*105554*/ OPC_CheckType, MVT::i32, ++/*105556*/ OPC_MoveParent, ++/*105557*/ OPC_MoveChild, 30, ++/*105559*/ OPC_CheckInteger, 1, ++/*105561*/ OPC_CheckType, MVT::i32, ++/*105563*/ OPC_MoveParent, ++/*105564*/ OPC_MoveChild, 31, ++/*105566*/ OPC_CheckInteger, 1, ++/*105568*/ OPC_CheckType, MVT::i32, ++/*105570*/ OPC_MoveParent, ++/*105571*/ OPC_CheckType, MVT::v32i8, ++/*105573*/ OPC_MoveParent, ++/*105574*/ OPC_CheckType, MVT::v32i8, ++/*105576*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*105578*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$a), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a), LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*105586*/ /*Scope*/ 17|128,5/*657*/, /*->106245*/ ++/*105588*/ OPC_CheckChild0Same, 1, ++/*105590*/ OPC_MoveChild1, ++/*105591*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*105594*/ OPC_CheckChild0Integer, 1, ++/*105596*/ OPC_CheckChild0Type, MVT::i32, ++/*105598*/ OPC_CheckChild1Integer, 1, ++/*105600*/ OPC_CheckChild1Type, MVT::i32, ++/*105602*/ OPC_CheckChild2Integer, 1, ++/*105604*/ OPC_CheckChild2Type, MVT::i32, ++/*105606*/ OPC_CheckChild3Integer, 1, ++/*105608*/ OPC_CheckChild3Type, MVT::i32, ++/*105610*/ OPC_CheckChild4Integer, 1, ++/*105612*/ OPC_CheckChild4Type, MVT::i32, ++/*105614*/ OPC_MoveChild5, ++/*105615*/ OPC_CheckInteger, 1, ++/*105617*/ OPC_CheckType, MVT::i32, ++/*105619*/ OPC_MoveParent, ++/*105620*/ OPC_MoveChild6, ++/*105621*/ OPC_CheckInteger, 1, ++/*105623*/ OPC_CheckType, MVT::i32, ++/*105625*/ OPC_MoveParent, ++/*105626*/ OPC_MoveChild7, ++/*105627*/ OPC_CheckInteger, 1, ++/*105629*/ OPC_CheckType, MVT::i32, ++/*105631*/ OPC_MoveParent, ++/*105632*/ OPC_MoveChild, 8, ++/*105634*/ OPC_CheckInteger, 1, ++/*105636*/ OPC_CheckType, MVT::i32, ++/*105638*/ OPC_MoveParent, ++/*105639*/ OPC_MoveChild, 9, ++/*105641*/ OPC_CheckInteger, 1, ++/*105643*/ OPC_CheckType, MVT::i32, ++/*105645*/ OPC_MoveParent, ++/*105646*/ OPC_MoveChild, 10, ++/*105648*/ OPC_CheckInteger, 1, ++/*105650*/ OPC_CheckType, MVT::i32, ++/*105652*/ OPC_MoveParent, ++/*105653*/ OPC_MoveChild, 11, ++/*105655*/ OPC_CheckInteger, 1, ++/*105657*/ OPC_CheckType, MVT::i32, ++/*105659*/ OPC_MoveParent, ++/*105660*/ OPC_MoveChild, 12, ++/*105662*/ OPC_CheckInteger, 1, ++/*105664*/ OPC_CheckType, MVT::i32, ++/*105666*/ OPC_MoveParent, ++/*105667*/ OPC_MoveChild, 13, ++/*105669*/ OPC_CheckInteger, 1, ++/*105671*/ OPC_CheckType, MVT::i32, ++/*105673*/ OPC_MoveParent, ++/*105674*/ OPC_MoveChild, 14, ++/*105676*/ OPC_CheckInteger, 1, ++/*105678*/ OPC_CheckType, MVT::i32, ++/*105680*/ OPC_MoveParent, ++/*105681*/ OPC_MoveChild, 15, ++/*105683*/ OPC_CheckInteger, 1, ++/*105685*/ OPC_CheckType, MVT::i32, ++/*105687*/ OPC_MoveParent, ++/*105688*/ OPC_MoveChild, 16, ++/*105690*/ OPC_CheckInteger, 1, ++/*105692*/ OPC_CheckType, MVT::i32, ++/*105694*/ OPC_MoveParent, ++/*105695*/ OPC_MoveChild, 17, ++/*105697*/ OPC_CheckInteger, 1, ++/*105699*/ OPC_CheckType, MVT::i32, ++/*105701*/ OPC_MoveParent, ++/*105702*/ OPC_MoveChild, 18, ++/*105704*/ OPC_CheckInteger, 1, ++/*105706*/ OPC_CheckType, MVT::i32, ++/*105708*/ OPC_MoveParent, ++/*105709*/ OPC_MoveChild, 19, ++/*105711*/ OPC_CheckInteger, 1, ++/*105713*/ OPC_CheckType, MVT::i32, ++/*105715*/ OPC_MoveParent, ++/*105716*/ OPC_MoveChild, 20, ++/*105718*/ OPC_CheckInteger, 1, ++/*105720*/ OPC_CheckType, MVT::i32, ++/*105722*/ OPC_MoveParent, ++/*105723*/ OPC_MoveChild, 21, ++/*105725*/ OPC_CheckInteger, 1, ++/*105727*/ OPC_CheckType, MVT::i32, ++/*105729*/ OPC_MoveParent, ++/*105730*/ OPC_MoveChild, 22, ++/*105732*/ OPC_CheckInteger, 1, ++/*105734*/ OPC_CheckType, MVT::i32, ++/*105736*/ OPC_MoveParent, ++/*105737*/ OPC_MoveChild, 23, ++/*105739*/ OPC_CheckInteger, 1, ++/*105741*/ OPC_CheckType, MVT::i32, ++/*105743*/ OPC_MoveParent, ++/*105744*/ OPC_MoveChild, 24, ++/*105746*/ OPC_CheckInteger, 1, ++/*105748*/ OPC_CheckType, MVT::i32, ++/*105750*/ OPC_MoveParent, ++/*105751*/ OPC_MoveChild, 25, ++/*105753*/ OPC_CheckInteger, 1, ++/*105755*/ OPC_CheckType, MVT::i32, ++/*105757*/ OPC_MoveParent, ++/*105758*/ OPC_MoveChild, 26, ++/*105760*/ OPC_CheckInteger, 1, ++/*105762*/ OPC_CheckType, MVT::i32, ++/*105764*/ OPC_MoveParent, ++/*105765*/ OPC_MoveChild, 27, ++/*105767*/ OPC_CheckInteger, 1, ++/*105769*/ OPC_CheckType, MVT::i32, ++/*105771*/ OPC_MoveParent, ++/*105772*/ OPC_MoveChild, 28, ++/*105774*/ OPC_CheckInteger, 1, ++/*105776*/ OPC_CheckType, MVT::i32, ++/*105778*/ OPC_MoveParent, ++/*105779*/ OPC_MoveChild, 29, ++/*105781*/ OPC_CheckInteger, 1, ++/*105783*/ OPC_CheckType, MVT::i32, ++/*105785*/ OPC_MoveParent, ++/*105786*/ OPC_MoveChild, 30, ++/*105788*/ OPC_CheckInteger, 1, ++/*105790*/ OPC_CheckType, MVT::i32, ++/*105792*/ OPC_MoveParent, ++/*105793*/ OPC_MoveChild, 31, ++/*105795*/ OPC_CheckInteger, 1, ++/*105797*/ OPC_CheckType, MVT::i32, ++/*105799*/ OPC_MoveParent, ++/*105800*/ OPC_MoveParent, ++/*105801*/ OPC_MoveParent, ++/*105802*/ OPC_CheckChild1Same, 0, ++/*105804*/ OPC_MoveParent, ++/*105805*/ OPC_MoveChild1, ++/*105806*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*105809*/ OPC_CheckChild0Integer, 7, ++/*105811*/ OPC_CheckChild0Type, MVT::i32, ++/*105813*/ OPC_CheckChild1Integer, 7, ++/*105815*/ OPC_CheckChild1Type, MVT::i32, ++/*105817*/ OPC_CheckChild2Integer, 7, ++/*105819*/ OPC_CheckChild2Type, MVT::i32, ++/*105821*/ OPC_CheckChild3Integer, 7, ++/*105823*/ OPC_CheckChild3Type, MVT::i32, ++/*105825*/ OPC_CheckChild4Integer, 7, ++/*105827*/ OPC_CheckChild4Type, MVT::i32, ++/*105829*/ OPC_MoveChild5, ++/*105830*/ OPC_CheckInteger, 7, ++/*105832*/ OPC_CheckType, MVT::i32, ++/*105834*/ OPC_MoveParent, ++/*105835*/ OPC_MoveChild6, ++/*105836*/ OPC_CheckInteger, 7, ++/*105838*/ OPC_CheckType, MVT::i32, ++/*105840*/ OPC_MoveParent, ++/*105841*/ OPC_MoveChild7, ++/*105842*/ OPC_CheckInteger, 7, ++/*105844*/ OPC_CheckType, MVT::i32, ++/*105846*/ OPC_MoveParent, ++/*105847*/ OPC_MoveChild, 8, ++/*105849*/ OPC_CheckInteger, 7, ++/*105851*/ OPC_CheckType, MVT::i32, ++/*105853*/ OPC_MoveParent, ++/*105854*/ OPC_MoveChild, 9, ++/*105856*/ OPC_CheckInteger, 7, ++/*105858*/ OPC_CheckType, MVT::i32, ++/*105860*/ OPC_MoveParent, ++/*105861*/ OPC_MoveChild, 10, ++/*105863*/ OPC_CheckInteger, 7, ++/*105865*/ OPC_CheckType, MVT::i32, ++/*105867*/ OPC_MoveParent, ++/*105868*/ OPC_MoveChild, 11, ++/*105870*/ OPC_CheckInteger, 7, ++/*105872*/ OPC_CheckType, MVT::i32, ++/*105874*/ OPC_MoveParent, ++/*105875*/ OPC_MoveChild, 12, ++/*105877*/ OPC_CheckInteger, 7, ++/*105879*/ OPC_CheckType, MVT::i32, ++/*105881*/ OPC_MoveParent, ++/*105882*/ OPC_MoveChild, 13, ++/*105884*/ OPC_CheckInteger, 7, ++/*105886*/ OPC_CheckType, MVT::i32, ++/*105888*/ OPC_MoveParent, ++/*105889*/ OPC_MoveChild, 14, ++/*105891*/ OPC_CheckInteger, 7, ++/*105893*/ OPC_CheckType, MVT::i32, ++/*105895*/ OPC_MoveParent, ++/*105896*/ OPC_MoveChild, 15, ++/*105898*/ OPC_CheckInteger, 7, ++/*105900*/ OPC_CheckType, MVT::i32, ++/*105902*/ OPC_MoveParent, ++/*105903*/ OPC_MoveChild, 16, ++/*105905*/ OPC_CheckInteger, 7, ++/*105907*/ OPC_CheckType, MVT::i32, ++/*105909*/ OPC_MoveParent, ++/*105910*/ OPC_MoveChild, 17, ++/*105912*/ OPC_CheckInteger, 7, ++/*105914*/ OPC_CheckType, MVT::i32, ++/*105916*/ OPC_MoveParent, ++/*105917*/ OPC_MoveChild, 18, ++/*105919*/ OPC_CheckInteger, 7, ++/*105921*/ OPC_CheckType, MVT::i32, ++/*105923*/ OPC_MoveParent, ++/*105924*/ OPC_MoveChild, 19, ++/*105926*/ OPC_CheckInteger, 7, ++/*105928*/ OPC_CheckType, MVT::i32, ++/*105930*/ OPC_MoveParent, ++/*105931*/ OPC_MoveChild, 20, ++/*105933*/ OPC_CheckInteger, 7, ++/*105935*/ OPC_CheckType, MVT::i32, ++/*105937*/ OPC_MoveParent, ++/*105938*/ OPC_MoveChild, 21, ++/*105940*/ OPC_CheckInteger, 7, ++/*105942*/ OPC_CheckType, MVT::i32, ++/*105944*/ OPC_MoveParent, ++/*105945*/ OPC_MoveChild, 22, ++/*105947*/ OPC_CheckInteger, 7, ++/*105949*/ OPC_CheckType, MVT::i32, ++/*105951*/ OPC_MoveParent, ++/*105952*/ OPC_MoveChild, 23, ++/*105954*/ OPC_CheckInteger, 7, ++/*105956*/ OPC_CheckType, MVT::i32, ++/*105958*/ OPC_MoveParent, ++/*105959*/ OPC_MoveChild, 24, ++/*105961*/ OPC_CheckInteger, 7, ++/*105963*/ OPC_CheckType, MVT::i32, ++/*105965*/ OPC_MoveParent, ++/*105966*/ OPC_MoveChild, 25, ++/*105968*/ OPC_CheckInteger, 7, ++/*105970*/ OPC_CheckType, MVT::i32, ++/*105972*/ OPC_MoveParent, ++/*105973*/ OPC_MoveChild, 26, ++/*105975*/ OPC_CheckInteger, 7, ++/*105977*/ OPC_CheckType, MVT::i32, ++/*105979*/ OPC_MoveParent, ++/*105980*/ OPC_MoveChild, 27, ++/*105982*/ OPC_CheckInteger, 7, ++/*105984*/ OPC_CheckType, MVT::i32, ++/*105986*/ OPC_MoveParent, ++/*105987*/ OPC_MoveChild, 28, ++/*105989*/ OPC_CheckInteger, 7, ++/*105991*/ OPC_CheckType, MVT::i32, ++/*105993*/ OPC_MoveParent, ++/*105994*/ OPC_MoveChild, 29, ++/*105996*/ OPC_CheckInteger, 7, ++/*105998*/ OPC_CheckType, MVT::i32, ++/*106000*/ OPC_MoveParent, ++/*106001*/ OPC_MoveChild, 30, ++/*106003*/ OPC_CheckInteger, 7, ++/*106005*/ OPC_CheckType, MVT::i32, ++/*106007*/ OPC_MoveParent, ++/*106008*/ OPC_MoveChild, 31, ++/*106010*/ OPC_CheckInteger, 7, ++/*106012*/ OPC_CheckType, MVT::i32, ++/*106014*/ OPC_MoveParent, ++/*106015*/ OPC_CheckType, MVT::v32i8, ++/*106017*/ OPC_MoveParent, ++/*106018*/ OPC_MoveParent, ++/*106019*/ OPC_MoveParent, ++/*106020*/ OPC_MoveChild1, ++/*106021*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*106024*/ OPC_CheckChild0Integer, 1, ++/*106026*/ OPC_CheckChild0Type, MVT::i32, ++/*106028*/ OPC_CheckChild1Integer, 1, ++/*106030*/ OPC_CheckChild1Type, MVT::i32, ++/*106032*/ OPC_CheckChild2Integer, 1, ++/*106034*/ OPC_CheckChild2Type, MVT::i32, ++/*106036*/ OPC_CheckChild3Integer, 1, ++/*106038*/ OPC_CheckChild3Type, MVT::i32, ++/*106040*/ OPC_CheckChild4Integer, 1, ++/*106042*/ OPC_CheckChild4Type, MVT::i32, ++/*106044*/ OPC_MoveChild5, ++/*106045*/ OPC_CheckInteger, 1, ++/*106047*/ OPC_CheckType, MVT::i32, ++/*106049*/ OPC_MoveParent, ++/*106050*/ OPC_MoveChild6, ++/*106051*/ OPC_CheckInteger, 1, ++/*106053*/ OPC_CheckType, MVT::i32, ++/*106055*/ OPC_MoveParent, ++/*106056*/ OPC_MoveChild7, ++/*106057*/ OPC_CheckInteger, 1, ++/*106059*/ OPC_CheckType, MVT::i32, ++/*106061*/ OPC_MoveParent, ++/*106062*/ OPC_MoveChild, 8, ++/*106064*/ OPC_CheckInteger, 1, ++/*106066*/ OPC_CheckType, MVT::i32, ++/*106068*/ OPC_MoveParent, ++/*106069*/ OPC_MoveChild, 9, ++/*106071*/ OPC_CheckInteger, 1, ++/*106073*/ OPC_CheckType, MVT::i32, ++/*106075*/ OPC_MoveParent, ++/*106076*/ OPC_MoveChild, 10, ++/*106078*/ OPC_CheckInteger, 1, ++/*106080*/ OPC_CheckType, MVT::i32, ++/*106082*/ OPC_MoveParent, ++/*106083*/ OPC_MoveChild, 11, ++/*106085*/ OPC_CheckInteger, 1, ++/*106087*/ OPC_CheckType, MVT::i32, ++/*106089*/ OPC_MoveParent, ++/*106090*/ OPC_MoveChild, 12, ++/*106092*/ OPC_CheckInteger, 1, ++/*106094*/ OPC_CheckType, MVT::i32, ++/*106096*/ OPC_MoveParent, ++/*106097*/ OPC_MoveChild, 13, ++/*106099*/ OPC_CheckInteger, 1, ++/*106101*/ OPC_CheckType, MVT::i32, ++/*106103*/ OPC_MoveParent, ++/*106104*/ OPC_MoveChild, 14, ++/*106106*/ OPC_CheckInteger, 1, ++/*106108*/ OPC_CheckType, MVT::i32, ++/*106110*/ OPC_MoveParent, ++/*106111*/ OPC_MoveChild, 15, ++/*106113*/ OPC_CheckInteger, 1, ++/*106115*/ OPC_CheckType, MVT::i32, ++/*106117*/ OPC_MoveParent, ++/*106118*/ OPC_MoveChild, 16, ++/*106120*/ OPC_CheckInteger, 1, ++/*106122*/ OPC_CheckType, MVT::i32, ++/*106124*/ OPC_MoveParent, ++/*106125*/ OPC_MoveChild, 17, ++/*106127*/ OPC_CheckInteger, 1, ++/*106129*/ OPC_CheckType, MVT::i32, ++/*106131*/ OPC_MoveParent, ++/*106132*/ OPC_MoveChild, 18, ++/*106134*/ OPC_CheckInteger, 1, ++/*106136*/ OPC_CheckType, MVT::i32, ++/*106138*/ OPC_MoveParent, ++/*106139*/ OPC_MoveChild, 19, ++/*106141*/ OPC_CheckInteger, 1, ++/*106143*/ OPC_CheckType, MVT::i32, ++/*106145*/ OPC_MoveParent, ++/*106146*/ OPC_MoveChild, 20, ++/*106148*/ OPC_CheckInteger, 1, ++/*106150*/ OPC_CheckType, MVT::i32, ++/*106152*/ OPC_MoveParent, ++/*106153*/ OPC_MoveChild, 21, ++/*106155*/ OPC_CheckInteger, 1, ++/*106157*/ OPC_CheckType, MVT::i32, ++/*106159*/ OPC_MoveParent, ++/*106160*/ OPC_MoveChild, 22, ++/*106162*/ OPC_CheckInteger, 1, ++/*106164*/ OPC_CheckType, MVT::i32, ++/*106166*/ OPC_MoveParent, ++/*106167*/ OPC_MoveChild, 23, ++/*106169*/ OPC_CheckInteger, 1, ++/*106171*/ OPC_CheckType, MVT::i32, ++/*106173*/ OPC_MoveParent, ++/*106174*/ OPC_MoveChild, 24, ++/*106176*/ OPC_CheckInteger, 1, ++/*106178*/ OPC_CheckType, MVT::i32, ++/*106180*/ OPC_MoveParent, ++/*106181*/ OPC_MoveChild, 25, ++/*106183*/ OPC_CheckInteger, 1, ++/*106185*/ OPC_CheckType, MVT::i32, ++/*106187*/ OPC_MoveParent, ++/*106188*/ OPC_MoveChild, 26, ++/*106190*/ OPC_CheckInteger, 1, ++/*106192*/ OPC_CheckType, MVT::i32, ++/*106194*/ OPC_MoveParent, ++/*106195*/ OPC_MoveChild, 27, ++/*106197*/ OPC_CheckInteger, 1, ++/*106199*/ OPC_CheckType, MVT::i32, ++/*106201*/ OPC_MoveParent, ++/*106202*/ OPC_MoveChild, 28, ++/*106204*/ OPC_CheckInteger, 1, ++/*106206*/ OPC_CheckType, MVT::i32, ++/*106208*/ OPC_MoveParent, ++/*106209*/ OPC_MoveChild, 29, ++/*106211*/ OPC_CheckInteger, 1, ++/*106213*/ OPC_CheckType, MVT::i32, ++/*106215*/ OPC_MoveParent, ++/*106216*/ OPC_MoveChild, 30, ++/*106218*/ OPC_CheckInteger, 1, ++/*106220*/ OPC_CheckType, MVT::i32, ++/*106222*/ OPC_MoveParent, ++/*106223*/ OPC_MoveChild, 31, ++/*106225*/ OPC_CheckInteger, 1, ++/*106227*/ OPC_CheckType, MVT::i32, ++/*106229*/ OPC_MoveParent, ++/*106230*/ OPC_CheckType, MVT::v32i8, ++/*106232*/ OPC_MoveParent, ++/*106233*/ OPC_CheckType, MVT::v32i8, ++/*106235*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*106237*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$a), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*106245*/ /*Scope*/ 17|128,5/*657*/, /*->106904*/ ++/*106247*/ OPC_MoveChild0, ++/*106248*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*106251*/ OPC_CheckChild0Integer, 1, ++/*106253*/ OPC_CheckChild0Type, MVT::i32, ++/*106255*/ OPC_CheckChild1Integer, 1, ++/*106257*/ OPC_CheckChild1Type, MVT::i32, ++/*106259*/ OPC_CheckChild2Integer, 1, ++/*106261*/ OPC_CheckChild2Type, MVT::i32, ++/*106263*/ OPC_CheckChild3Integer, 1, ++/*106265*/ OPC_CheckChild3Type, MVT::i32, ++/*106267*/ OPC_CheckChild4Integer, 1, ++/*106269*/ OPC_CheckChild4Type, MVT::i32, ++/*106271*/ OPC_MoveChild5, ++/*106272*/ OPC_CheckInteger, 1, ++/*106274*/ OPC_CheckType, MVT::i32, ++/*106276*/ OPC_MoveParent, ++/*106277*/ OPC_MoveChild6, ++/*106278*/ OPC_CheckInteger, 1, ++/*106280*/ OPC_CheckType, MVT::i32, ++/*106282*/ OPC_MoveParent, ++/*106283*/ OPC_MoveChild7, ++/*106284*/ OPC_CheckInteger, 1, ++/*106286*/ OPC_CheckType, MVT::i32, ++/*106288*/ OPC_MoveParent, ++/*106289*/ OPC_MoveChild, 8, ++/*106291*/ OPC_CheckInteger, 1, ++/*106293*/ OPC_CheckType, MVT::i32, ++/*106295*/ OPC_MoveParent, ++/*106296*/ OPC_MoveChild, 9, ++/*106298*/ OPC_CheckInteger, 1, ++/*106300*/ OPC_CheckType, MVT::i32, ++/*106302*/ OPC_MoveParent, ++/*106303*/ OPC_MoveChild, 10, ++/*106305*/ OPC_CheckInteger, 1, ++/*106307*/ OPC_CheckType, MVT::i32, ++/*106309*/ OPC_MoveParent, ++/*106310*/ OPC_MoveChild, 11, ++/*106312*/ OPC_CheckInteger, 1, ++/*106314*/ OPC_CheckType, MVT::i32, ++/*106316*/ OPC_MoveParent, ++/*106317*/ OPC_MoveChild, 12, ++/*106319*/ OPC_CheckInteger, 1, ++/*106321*/ OPC_CheckType, MVT::i32, ++/*106323*/ OPC_MoveParent, ++/*106324*/ OPC_MoveChild, 13, ++/*106326*/ OPC_CheckInteger, 1, ++/*106328*/ OPC_CheckType, MVT::i32, ++/*106330*/ OPC_MoveParent, ++/*106331*/ OPC_MoveChild, 14, ++/*106333*/ OPC_CheckInteger, 1, ++/*106335*/ OPC_CheckType, MVT::i32, ++/*106337*/ OPC_MoveParent, ++/*106338*/ OPC_MoveChild, 15, ++/*106340*/ OPC_CheckInteger, 1, ++/*106342*/ OPC_CheckType, MVT::i32, ++/*106344*/ OPC_MoveParent, ++/*106345*/ OPC_MoveChild, 16, ++/*106347*/ OPC_CheckInteger, 1, ++/*106349*/ OPC_CheckType, MVT::i32, ++/*106351*/ OPC_MoveParent, ++/*106352*/ OPC_MoveChild, 17, ++/*106354*/ OPC_CheckInteger, 1, ++/*106356*/ OPC_CheckType, MVT::i32, ++/*106358*/ OPC_MoveParent, ++/*106359*/ OPC_MoveChild, 18, ++/*106361*/ OPC_CheckInteger, 1, ++/*106363*/ OPC_CheckType, MVT::i32, ++/*106365*/ OPC_MoveParent, ++/*106366*/ OPC_MoveChild, 19, ++/*106368*/ OPC_CheckInteger, 1, ++/*106370*/ OPC_CheckType, MVT::i32, ++/*106372*/ OPC_MoveParent, ++/*106373*/ OPC_MoveChild, 20, ++/*106375*/ OPC_CheckInteger, 1, ++/*106377*/ OPC_CheckType, MVT::i32, ++/*106379*/ OPC_MoveParent, ++/*106380*/ OPC_MoveChild, 21, ++/*106382*/ OPC_CheckInteger, 1, ++/*106384*/ OPC_CheckType, MVT::i32, ++/*106386*/ OPC_MoveParent, ++/*106387*/ OPC_MoveChild, 22, ++/*106389*/ OPC_CheckInteger, 1, ++/*106391*/ OPC_CheckType, MVT::i32, ++/*106393*/ OPC_MoveParent, ++/*106394*/ OPC_MoveChild, 23, ++/*106396*/ OPC_CheckInteger, 1, ++/*106398*/ OPC_CheckType, MVT::i32, ++/*106400*/ OPC_MoveParent, ++/*106401*/ OPC_MoveChild, 24, ++/*106403*/ OPC_CheckInteger, 1, ++/*106405*/ OPC_CheckType, MVT::i32, ++/*106407*/ OPC_MoveParent, ++/*106408*/ OPC_MoveChild, 25, ++/*106410*/ OPC_CheckInteger, 1, ++/*106412*/ OPC_CheckType, MVT::i32, ++/*106414*/ OPC_MoveParent, ++/*106415*/ OPC_MoveChild, 26, ++/*106417*/ OPC_CheckInteger, 1, ++/*106419*/ OPC_CheckType, MVT::i32, ++/*106421*/ OPC_MoveParent, ++/*106422*/ OPC_MoveChild, 27, ++/*106424*/ OPC_CheckInteger, 1, ++/*106426*/ OPC_CheckType, MVT::i32, ++/*106428*/ OPC_MoveParent, ++/*106429*/ OPC_MoveChild, 28, ++/*106431*/ OPC_CheckInteger, 1, ++/*106433*/ OPC_CheckType, MVT::i32, ++/*106435*/ OPC_MoveParent, ++/*106436*/ OPC_MoveChild, 29, ++/*106438*/ OPC_CheckInteger, 1, ++/*106440*/ OPC_CheckType, MVT::i32, ++/*106442*/ OPC_MoveParent, ++/*106443*/ OPC_MoveChild, 30, ++/*106445*/ OPC_CheckInteger, 1, ++/*106447*/ OPC_CheckType, MVT::i32, ++/*106449*/ OPC_MoveParent, ++/*106450*/ OPC_MoveChild, 31, ++/*106452*/ OPC_CheckInteger, 1, ++/*106454*/ OPC_CheckType, MVT::i32, ++/*106456*/ OPC_MoveParent, ++/*106457*/ OPC_MoveParent, ++/*106458*/ OPC_CheckChild1Same, 0, ++/*106460*/ OPC_MoveParent, ++/*106461*/ OPC_CheckChild1Same, 1, ++/*106463*/ OPC_MoveParent, ++/*106464*/ OPC_MoveChild1, ++/*106465*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*106468*/ OPC_CheckChild0Integer, 7, ++/*106470*/ OPC_CheckChild0Type, MVT::i32, ++/*106472*/ OPC_CheckChild1Integer, 7, ++/*106474*/ OPC_CheckChild1Type, MVT::i32, ++/*106476*/ OPC_CheckChild2Integer, 7, ++/*106478*/ OPC_CheckChild2Type, MVT::i32, ++/*106480*/ OPC_CheckChild3Integer, 7, ++/*106482*/ OPC_CheckChild3Type, MVT::i32, ++/*106484*/ OPC_CheckChild4Integer, 7, ++/*106486*/ OPC_CheckChild4Type, MVT::i32, ++/*106488*/ OPC_MoveChild5, ++/*106489*/ OPC_CheckInteger, 7, ++/*106491*/ OPC_CheckType, MVT::i32, ++/*106493*/ OPC_MoveParent, ++/*106494*/ OPC_MoveChild6, ++/*106495*/ OPC_CheckInteger, 7, ++/*106497*/ OPC_CheckType, MVT::i32, ++/*106499*/ OPC_MoveParent, ++/*106500*/ OPC_MoveChild7, ++/*106501*/ OPC_CheckInteger, 7, ++/*106503*/ OPC_CheckType, MVT::i32, ++/*106505*/ OPC_MoveParent, ++/*106506*/ OPC_MoveChild, 8, ++/*106508*/ OPC_CheckInteger, 7, ++/*106510*/ OPC_CheckType, MVT::i32, ++/*106512*/ OPC_MoveParent, ++/*106513*/ OPC_MoveChild, 9, ++/*106515*/ OPC_CheckInteger, 7, ++/*106517*/ OPC_CheckType, MVT::i32, ++/*106519*/ OPC_MoveParent, ++/*106520*/ OPC_MoveChild, 10, ++/*106522*/ OPC_CheckInteger, 7, ++/*106524*/ OPC_CheckType, MVT::i32, ++/*106526*/ OPC_MoveParent, ++/*106527*/ OPC_MoveChild, 11, ++/*106529*/ OPC_CheckInteger, 7, ++/*106531*/ OPC_CheckType, MVT::i32, ++/*106533*/ OPC_MoveParent, ++/*106534*/ OPC_MoveChild, 12, ++/*106536*/ OPC_CheckInteger, 7, ++/*106538*/ OPC_CheckType, MVT::i32, ++/*106540*/ OPC_MoveParent, ++/*106541*/ OPC_MoveChild, 13, ++/*106543*/ OPC_CheckInteger, 7, ++/*106545*/ OPC_CheckType, MVT::i32, ++/*106547*/ OPC_MoveParent, ++/*106548*/ OPC_MoveChild, 14, ++/*106550*/ OPC_CheckInteger, 7, ++/*106552*/ OPC_CheckType, MVT::i32, ++/*106554*/ OPC_MoveParent, ++/*106555*/ OPC_MoveChild, 15, ++/*106557*/ OPC_CheckInteger, 7, ++/*106559*/ OPC_CheckType, MVT::i32, ++/*106561*/ OPC_MoveParent, ++/*106562*/ OPC_MoveChild, 16, ++/*106564*/ OPC_CheckInteger, 7, ++/*106566*/ OPC_CheckType, MVT::i32, ++/*106568*/ OPC_MoveParent, ++/*106569*/ OPC_MoveChild, 17, ++/*106571*/ OPC_CheckInteger, 7, ++/*106573*/ OPC_CheckType, MVT::i32, ++/*106575*/ OPC_MoveParent, ++/*106576*/ OPC_MoveChild, 18, ++/*106578*/ OPC_CheckInteger, 7, ++/*106580*/ OPC_CheckType, MVT::i32, ++/*106582*/ OPC_MoveParent, ++/*106583*/ OPC_MoveChild, 19, ++/*106585*/ OPC_CheckInteger, 7, ++/*106587*/ OPC_CheckType, MVT::i32, ++/*106589*/ OPC_MoveParent, ++/*106590*/ OPC_MoveChild, 20, ++/*106592*/ OPC_CheckInteger, 7, ++/*106594*/ OPC_CheckType, MVT::i32, ++/*106596*/ OPC_MoveParent, ++/*106597*/ OPC_MoveChild, 21, ++/*106599*/ OPC_CheckInteger, 7, ++/*106601*/ OPC_CheckType, MVT::i32, ++/*106603*/ OPC_MoveParent, ++/*106604*/ OPC_MoveChild, 22, ++/*106606*/ OPC_CheckInteger, 7, ++/*106608*/ OPC_CheckType, MVT::i32, ++/*106610*/ OPC_MoveParent, ++/*106611*/ OPC_MoveChild, 23, ++/*106613*/ OPC_CheckInteger, 7, ++/*106615*/ OPC_CheckType, MVT::i32, ++/*106617*/ OPC_MoveParent, ++/*106618*/ OPC_MoveChild, 24, ++/*106620*/ OPC_CheckInteger, 7, ++/*106622*/ OPC_CheckType, MVT::i32, ++/*106624*/ OPC_MoveParent, ++/*106625*/ OPC_MoveChild, 25, ++/*106627*/ OPC_CheckInteger, 7, ++/*106629*/ OPC_CheckType, MVT::i32, ++/*106631*/ OPC_MoveParent, ++/*106632*/ OPC_MoveChild, 26, ++/*106634*/ OPC_CheckInteger, 7, ++/*106636*/ OPC_CheckType, MVT::i32, ++/*106638*/ OPC_MoveParent, ++/*106639*/ OPC_MoveChild, 27, ++/*106641*/ OPC_CheckInteger, 7, ++/*106643*/ OPC_CheckType, MVT::i32, ++/*106645*/ OPC_MoveParent, ++/*106646*/ OPC_MoveChild, 28, ++/*106648*/ OPC_CheckInteger, 7, ++/*106650*/ OPC_CheckType, MVT::i32, ++/*106652*/ OPC_MoveParent, ++/*106653*/ OPC_MoveChild, 29, ++/*106655*/ OPC_CheckInteger, 7, ++/*106657*/ OPC_CheckType, MVT::i32, ++/*106659*/ OPC_MoveParent, ++/*106660*/ OPC_MoveChild, 30, ++/*106662*/ OPC_CheckInteger, 7, ++/*106664*/ OPC_CheckType, MVT::i32, ++/*106666*/ OPC_MoveParent, ++/*106667*/ OPC_MoveChild, 31, ++/*106669*/ OPC_CheckInteger, 7, ++/*106671*/ OPC_CheckType, MVT::i32, ++/*106673*/ OPC_MoveParent, ++/*106674*/ OPC_CheckType, MVT::v32i8, ++/*106676*/ OPC_MoveParent, ++/*106677*/ OPC_MoveParent, ++/*106678*/ OPC_MoveParent, ++/*106679*/ OPC_MoveChild1, ++/*106680*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*106683*/ OPC_CheckChild0Integer, 1, ++/*106685*/ OPC_CheckChild0Type, MVT::i32, ++/*106687*/ OPC_CheckChild1Integer, 1, ++/*106689*/ OPC_CheckChild1Type, MVT::i32, ++/*106691*/ OPC_CheckChild2Integer, 1, ++/*106693*/ OPC_CheckChild2Type, MVT::i32, ++/*106695*/ OPC_CheckChild3Integer, 1, ++/*106697*/ OPC_CheckChild3Type, MVT::i32, ++/*106699*/ OPC_CheckChild4Integer, 1, ++/*106701*/ OPC_CheckChild4Type, MVT::i32, ++/*106703*/ OPC_MoveChild5, ++/*106704*/ OPC_CheckInteger, 1, ++/*106706*/ OPC_CheckType, MVT::i32, ++/*106708*/ OPC_MoveParent, ++/*106709*/ OPC_MoveChild6, ++/*106710*/ OPC_CheckInteger, 1, ++/*106712*/ OPC_CheckType, MVT::i32, ++/*106714*/ OPC_MoveParent, ++/*106715*/ OPC_MoveChild7, ++/*106716*/ OPC_CheckInteger, 1, ++/*106718*/ OPC_CheckType, MVT::i32, ++/*106720*/ OPC_MoveParent, ++/*106721*/ OPC_MoveChild, 8, ++/*106723*/ OPC_CheckInteger, 1, ++/*106725*/ OPC_CheckType, MVT::i32, ++/*106727*/ OPC_MoveParent, ++/*106728*/ OPC_MoveChild, 9, ++/*106730*/ OPC_CheckInteger, 1, ++/*106732*/ OPC_CheckType, MVT::i32, ++/*106734*/ OPC_MoveParent, ++/*106735*/ OPC_MoveChild, 10, ++/*106737*/ OPC_CheckInteger, 1, ++/*106739*/ OPC_CheckType, MVT::i32, ++/*106741*/ OPC_MoveParent, ++/*106742*/ OPC_MoveChild, 11, ++/*106744*/ OPC_CheckInteger, 1, ++/*106746*/ OPC_CheckType, MVT::i32, ++/*106748*/ OPC_MoveParent, ++/*106749*/ OPC_MoveChild, 12, ++/*106751*/ OPC_CheckInteger, 1, ++/*106753*/ OPC_CheckType, MVT::i32, ++/*106755*/ OPC_MoveParent, ++/*106756*/ OPC_MoveChild, 13, ++/*106758*/ OPC_CheckInteger, 1, ++/*106760*/ OPC_CheckType, MVT::i32, ++/*106762*/ OPC_MoveParent, ++/*106763*/ OPC_MoveChild, 14, ++/*106765*/ OPC_CheckInteger, 1, ++/*106767*/ OPC_CheckType, MVT::i32, ++/*106769*/ OPC_MoveParent, ++/*106770*/ OPC_MoveChild, 15, ++/*106772*/ OPC_CheckInteger, 1, ++/*106774*/ OPC_CheckType, MVT::i32, ++/*106776*/ OPC_MoveParent, ++/*106777*/ OPC_MoveChild, 16, ++/*106779*/ OPC_CheckInteger, 1, ++/*106781*/ OPC_CheckType, MVT::i32, ++/*106783*/ OPC_MoveParent, ++/*106784*/ OPC_MoveChild, 17, ++/*106786*/ OPC_CheckInteger, 1, ++/*106788*/ OPC_CheckType, MVT::i32, ++/*106790*/ OPC_MoveParent, ++/*106791*/ OPC_MoveChild, 18, ++/*106793*/ OPC_CheckInteger, 1, ++/*106795*/ OPC_CheckType, MVT::i32, ++/*106797*/ OPC_MoveParent, ++/*106798*/ OPC_MoveChild, 19, ++/*106800*/ OPC_CheckInteger, 1, ++/*106802*/ OPC_CheckType, MVT::i32, ++/*106804*/ OPC_MoveParent, ++/*106805*/ OPC_MoveChild, 20, ++/*106807*/ OPC_CheckInteger, 1, ++/*106809*/ OPC_CheckType, MVT::i32, ++/*106811*/ OPC_MoveParent, ++/*106812*/ OPC_MoveChild, 21, ++/*106814*/ OPC_CheckInteger, 1, ++/*106816*/ OPC_CheckType, MVT::i32, ++/*106818*/ OPC_MoveParent, ++/*106819*/ OPC_MoveChild, 22, ++/*106821*/ OPC_CheckInteger, 1, ++/*106823*/ OPC_CheckType, MVT::i32, ++/*106825*/ OPC_MoveParent, ++/*106826*/ OPC_MoveChild, 23, ++/*106828*/ OPC_CheckInteger, 1, ++/*106830*/ OPC_CheckType, MVT::i32, ++/*106832*/ OPC_MoveParent, ++/*106833*/ OPC_MoveChild, 24, ++/*106835*/ OPC_CheckInteger, 1, ++/*106837*/ OPC_CheckType, MVT::i32, ++/*106839*/ OPC_MoveParent, ++/*106840*/ OPC_MoveChild, 25, ++/*106842*/ OPC_CheckInteger, 1, ++/*106844*/ OPC_CheckType, MVT::i32, ++/*106846*/ OPC_MoveParent, ++/*106847*/ OPC_MoveChild, 26, ++/*106849*/ OPC_CheckInteger, 1, ++/*106851*/ OPC_CheckType, MVT::i32, ++/*106853*/ OPC_MoveParent, ++/*106854*/ OPC_MoveChild, 27, ++/*106856*/ OPC_CheckInteger, 1, ++/*106858*/ OPC_CheckType, MVT::i32, ++/*106860*/ OPC_MoveParent, ++/*106861*/ OPC_MoveChild, 28, ++/*106863*/ OPC_CheckInteger, 1, ++/*106865*/ OPC_CheckType, MVT::i32, ++/*106867*/ OPC_MoveParent, ++/*106868*/ OPC_MoveChild, 29, ++/*106870*/ OPC_CheckInteger, 1, ++/*106872*/ OPC_CheckType, MVT::i32, ++/*106874*/ OPC_MoveParent, ++/*106875*/ OPC_MoveChild, 30, ++/*106877*/ OPC_CheckInteger, 1, ++/*106879*/ OPC_CheckType, MVT::i32, ++/*106881*/ OPC_MoveParent, ++/*106882*/ OPC_MoveChild, 31, ++/*106884*/ OPC_CheckInteger, 1, ++/*106886*/ OPC_CheckType, MVT::i32, ++/*106888*/ OPC_MoveParent, ++/*106889*/ OPC_CheckType, MVT::v32i8, ++/*106891*/ OPC_MoveParent, ++/*106892*/ OPC_CheckType, MVT::v32i8, ++/*106894*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*106896*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$a), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b), LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*106904*/ /*Scope*/ 17|128,5/*657*/, /*->107563*/ ++/*106906*/ OPC_CheckChild0Same, 0, ++/*106908*/ OPC_MoveChild1, ++/*106909*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*106912*/ OPC_CheckChild0Integer, 1, ++/*106914*/ OPC_CheckChild0Type, MVT::i32, ++/*106916*/ OPC_CheckChild1Integer, 1, ++/*106918*/ OPC_CheckChild1Type, MVT::i32, ++/*106920*/ OPC_CheckChild2Integer, 1, ++/*106922*/ OPC_CheckChild2Type, MVT::i32, ++/*106924*/ OPC_CheckChild3Integer, 1, ++/*106926*/ OPC_CheckChild3Type, MVT::i32, ++/*106928*/ OPC_CheckChild4Integer, 1, ++/*106930*/ OPC_CheckChild4Type, MVT::i32, ++/*106932*/ OPC_MoveChild5, ++/*106933*/ OPC_CheckInteger, 1, ++/*106935*/ OPC_CheckType, MVT::i32, ++/*106937*/ OPC_MoveParent, ++/*106938*/ OPC_MoveChild6, ++/*106939*/ OPC_CheckInteger, 1, ++/*106941*/ OPC_CheckType, MVT::i32, ++/*106943*/ OPC_MoveParent, ++/*106944*/ OPC_MoveChild7, ++/*106945*/ OPC_CheckInteger, 1, ++/*106947*/ OPC_CheckType, MVT::i32, ++/*106949*/ OPC_MoveParent, ++/*106950*/ OPC_MoveChild, 8, ++/*106952*/ OPC_CheckInteger, 1, ++/*106954*/ OPC_CheckType, MVT::i32, ++/*106956*/ OPC_MoveParent, ++/*106957*/ OPC_MoveChild, 9, ++/*106959*/ OPC_CheckInteger, 1, ++/*106961*/ OPC_CheckType, MVT::i32, ++/*106963*/ OPC_MoveParent, ++/*106964*/ OPC_MoveChild, 10, ++/*106966*/ OPC_CheckInteger, 1, ++/*106968*/ OPC_CheckType, MVT::i32, ++/*106970*/ OPC_MoveParent, ++/*106971*/ OPC_MoveChild, 11, ++/*106973*/ OPC_CheckInteger, 1, ++/*106975*/ OPC_CheckType, MVT::i32, ++/*106977*/ OPC_MoveParent, ++/*106978*/ OPC_MoveChild, 12, ++/*106980*/ OPC_CheckInteger, 1, ++/*106982*/ OPC_CheckType, MVT::i32, ++/*106984*/ OPC_MoveParent, ++/*106985*/ OPC_MoveChild, 13, ++/*106987*/ OPC_CheckInteger, 1, ++/*106989*/ OPC_CheckType, MVT::i32, ++/*106991*/ OPC_MoveParent, ++/*106992*/ OPC_MoveChild, 14, ++/*106994*/ OPC_CheckInteger, 1, ++/*106996*/ OPC_CheckType, MVT::i32, ++/*106998*/ OPC_MoveParent, ++/*106999*/ OPC_MoveChild, 15, ++/*107001*/ OPC_CheckInteger, 1, ++/*107003*/ OPC_CheckType, MVT::i32, ++/*107005*/ OPC_MoveParent, ++/*107006*/ OPC_MoveChild, 16, ++/*107008*/ OPC_CheckInteger, 1, ++/*107010*/ OPC_CheckType, MVT::i32, ++/*107012*/ OPC_MoveParent, ++/*107013*/ OPC_MoveChild, 17, ++/*107015*/ OPC_CheckInteger, 1, ++/*107017*/ OPC_CheckType, MVT::i32, ++/*107019*/ OPC_MoveParent, ++/*107020*/ OPC_MoveChild, 18, ++/*107022*/ OPC_CheckInteger, 1, ++/*107024*/ OPC_CheckType, MVT::i32, ++/*107026*/ OPC_MoveParent, ++/*107027*/ OPC_MoveChild, 19, ++/*107029*/ OPC_CheckInteger, 1, ++/*107031*/ OPC_CheckType, MVT::i32, ++/*107033*/ OPC_MoveParent, ++/*107034*/ OPC_MoveChild, 20, ++/*107036*/ OPC_CheckInteger, 1, ++/*107038*/ OPC_CheckType, MVT::i32, ++/*107040*/ OPC_MoveParent, ++/*107041*/ OPC_MoveChild, 21, ++/*107043*/ OPC_CheckInteger, 1, ++/*107045*/ OPC_CheckType, MVT::i32, ++/*107047*/ OPC_MoveParent, ++/*107048*/ OPC_MoveChild, 22, ++/*107050*/ OPC_CheckInteger, 1, ++/*107052*/ OPC_CheckType, MVT::i32, ++/*107054*/ OPC_MoveParent, ++/*107055*/ OPC_MoveChild, 23, ++/*107057*/ OPC_CheckInteger, 1, ++/*107059*/ OPC_CheckType, MVT::i32, ++/*107061*/ OPC_MoveParent, ++/*107062*/ OPC_MoveChild, 24, ++/*107064*/ OPC_CheckInteger, 1, ++/*107066*/ OPC_CheckType, MVT::i32, ++/*107068*/ OPC_MoveParent, ++/*107069*/ OPC_MoveChild, 25, ++/*107071*/ OPC_CheckInteger, 1, ++/*107073*/ OPC_CheckType, MVT::i32, ++/*107075*/ OPC_MoveParent, ++/*107076*/ OPC_MoveChild, 26, ++/*107078*/ OPC_CheckInteger, 1, ++/*107080*/ OPC_CheckType, MVT::i32, ++/*107082*/ OPC_MoveParent, ++/*107083*/ OPC_MoveChild, 27, ++/*107085*/ OPC_CheckInteger, 1, ++/*107087*/ OPC_CheckType, MVT::i32, ++/*107089*/ OPC_MoveParent, ++/*107090*/ OPC_MoveChild, 28, ++/*107092*/ OPC_CheckInteger, 1, ++/*107094*/ OPC_CheckType, MVT::i32, ++/*107096*/ OPC_MoveParent, ++/*107097*/ OPC_MoveChild, 29, ++/*107099*/ OPC_CheckInteger, 1, ++/*107101*/ OPC_CheckType, MVT::i32, ++/*107103*/ OPC_MoveParent, ++/*107104*/ OPC_MoveChild, 30, ++/*107106*/ OPC_CheckInteger, 1, ++/*107108*/ OPC_CheckType, MVT::i32, ++/*107110*/ OPC_MoveParent, ++/*107111*/ OPC_MoveChild, 31, ++/*107113*/ OPC_CheckInteger, 1, ++/*107115*/ OPC_CheckType, MVT::i32, ++/*107117*/ OPC_MoveParent, ++/*107118*/ OPC_MoveParent, ++/*107119*/ OPC_MoveParent, ++/*107120*/ OPC_CheckChild1Same, 1, ++/*107122*/ OPC_MoveParent, ++/*107123*/ OPC_MoveChild1, ++/*107124*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*107127*/ OPC_CheckChild0Integer, 7, ++/*107129*/ OPC_CheckChild0Type, MVT::i32, ++/*107131*/ OPC_CheckChild1Integer, 7, ++/*107133*/ OPC_CheckChild1Type, MVT::i32, ++/*107135*/ OPC_CheckChild2Integer, 7, ++/*107137*/ OPC_CheckChild2Type, MVT::i32, ++/*107139*/ OPC_CheckChild3Integer, 7, ++/*107141*/ OPC_CheckChild3Type, MVT::i32, ++/*107143*/ OPC_CheckChild4Integer, 7, ++/*107145*/ OPC_CheckChild4Type, MVT::i32, ++/*107147*/ OPC_MoveChild5, ++/*107148*/ OPC_CheckInteger, 7, ++/*107150*/ OPC_CheckType, MVT::i32, ++/*107152*/ OPC_MoveParent, ++/*107153*/ OPC_MoveChild6, ++/*107154*/ OPC_CheckInteger, 7, ++/*107156*/ OPC_CheckType, MVT::i32, ++/*107158*/ OPC_MoveParent, ++/*107159*/ OPC_MoveChild7, ++/*107160*/ OPC_CheckInteger, 7, ++/*107162*/ OPC_CheckType, MVT::i32, ++/*107164*/ OPC_MoveParent, ++/*107165*/ OPC_MoveChild, 8, ++/*107167*/ OPC_CheckInteger, 7, ++/*107169*/ OPC_CheckType, MVT::i32, ++/*107171*/ OPC_MoveParent, ++/*107172*/ OPC_MoveChild, 9, ++/*107174*/ OPC_CheckInteger, 7, ++/*107176*/ OPC_CheckType, MVT::i32, ++/*107178*/ OPC_MoveParent, ++/*107179*/ OPC_MoveChild, 10, ++/*107181*/ OPC_CheckInteger, 7, ++/*107183*/ OPC_CheckType, MVT::i32, ++/*107185*/ OPC_MoveParent, ++/*107186*/ OPC_MoveChild, 11, ++/*107188*/ OPC_CheckInteger, 7, ++/*107190*/ OPC_CheckType, MVT::i32, ++/*107192*/ OPC_MoveParent, ++/*107193*/ OPC_MoveChild, 12, ++/*107195*/ OPC_CheckInteger, 7, ++/*107197*/ OPC_CheckType, MVT::i32, ++/*107199*/ OPC_MoveParent, ++/*107200*/ OPC_MoveChild, 13, ++/*107202*/ OPC_CheckInteger, 7, ++/*107204*/ OPC_CheckType, MVT::i32, ++/*107206*/ OPC_MoveParent, ++/*107207*/ OPC_MoveChild, 14, ++/*107209*/ OPC_CheckInteger, 7, ++/*107211*/ OPC_CheckType, MVT::i32, ++/*107213*/ OPC_MoveParent, ++/*107214*/ OPC_MoveChild, 15, ++/*107216*/ OPC_CheckInteger, 7, ++/*107218*/ OPC_CheckType, MVT::i32, ++/*107220*/ OPC_MoveParent, ++/*107221*/ OPC_MoveChild, 16, ++/*107223*/ OPC_CheckInteger, 7, ++/*107225*/ OPC_CheckType, MVT::i32, ++/*107227*/ OPC_MoveParent, ++/*107228*/ OPC_MoveChild, 17, ++/*107230*/ OPC_CheckInteger, 7, ++/*107232*/ OPC_CheckType, MVT::i32, ++/*107234*/ OPC_MoveParent, ++/*107235*/ OPC_MoveChild, 18, ++/*107237*/ OPC_CheckInteger, 7, ++/*107239*/ OPC_CheckType, MVT::i32, ++/*107241*/ OPC_MoveParent, ++/*107242*/ OPC_MoveChild, 19, ++/*107244*/ OPC_CheckInteger, 7, ++/*107246*/ OPC_CheckType, MVT::i32, ++/*107248*/ OPC_MoveParent, ++/*107249*/ OPC_MoveChild, 20, ++/*107251*/ OPC_CheckInteger, 7, ++/*107253*/ OPC_CheckType, MVT::i32, ++/*107255*/ OPC_MoveParent, ++/*107256*/ OPC_MoveChild, 21, ++/*107258*/ OPC_CheckInteger, 7, ++/*107260*/ OPC_CheckType, MVT::i32, ++/*107262*/ OPC_MoveParent, ++/*107263*/ OPC_MoveChild, 22, ++/*107265*/ OPC_CheckInteger, 7, ++/*107267*/ OPC_CheckType, MVT::i32, ++/*107269*/ OPC_MoveParent, ++/*107270*/ OPC_MoveChild, 23, ++/*107272*/ OPC_CheckInteger, 7, ++/*107274*/ OPC_CheckType, MVT::i32, ++/*107276*/ OPC_MoveParent, ++/*107277*/ OPC_MoveChild, 24, ++/*107279*/ OPC_CheckInteger, 7, ++/*107281*/ OPC_CheckType, MVT::i32, ++/*107283*/ OPC_MoveParent, ++/*107284*/ OPC_MoveChild, 25, ++/*107286*/ OPC_CheckInteger, 7, ++/*107288*/ OPC_CheckType, MVT::i32, ++/*107290*/ OPC_MoveParent, ++/*107291*/ OPC_MoveChild, 26, ++/*107293*/ OPC_CheckInteger, 7, ++/*107295*/ OPC_CheckType, MVT::i32, ++/*107297*/ OPC_MoveParent, ++/*107298*/ OPC_MoveChild, 27, ++/*107300*/ OPC_CheckInteger, 7, ++/*107302*/ OPC_CheckType, MVT::i32, ++/*107304*/ OPC_MoveParent, ++/*107305*/ OPC_MoveChild, 28, ++/*107307*/ OPC_CheckInteger, 7, ++/*107309*/ OPC_CheckType, MVT::i32, ++/*107311*/ OPC_MoveParent, ++/*107312*/ OPC_MoveChild, 29, ++/*107314*/ OPC_CheckInteger, 7, ++/*107316*/ OPC_CheckType, MVT::i32, ++/*107318*/ OPC_MoveParent, ++/*107319*/ OPC_MoveChild, 30, ++/*107321*/ OPC_CheckInteger, 7, ++/*107323*/ OPC_CheckType, MVT::i32, ++/*107325*/ OPC_MoveParent, ++/*107326*/ OPC_MoveChild, 31, ++/*107328*/ OPC_CheckInteger, 7, ++/*107330*/ OPC_CheckType, MVT::i32, ++/*107332*/ OPC_MoveParent, ++/*107333*/ OPC_CheckType, MVT::v32i8, ++/*107335*/ OPC_MoveParent, ++/*107336*/ OPC_MoveParent, ++/*107337*/ OPC_MoveParent, ++/*107338*/ OPC_MoveChild1, ++/*107339*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*107342*/ OPC_CheckChild0Integer, 1, ++/*107344*/ OPC_CheckChild0Type, MVT::i32, ++/*107346*/ OPC_CheckChild1Integer, 1, ++/*107348*/ OPC_CheckChild1Type, MVT::i32, ++/*107350*/ OPC_CheckChild2Integer, 1, ++/*107352*/ OPC_CheckChild2Type, MVT::i32, ++/*107354*/ OPC_CheckChild3Integer, 1, ++/*107356*/ OPC_CheckChild3Type, MVT::i32, ++/*107358*/ OPC_CheckChild4Integer, 1, ++/*107360*/ OPC_CheckChild4Type, MVT::i32, ++/*107362*/ OPC_MoveChild5, ++/*107363*/ OPC_CheckInteger, 1, ++/*107365*/ OPC_CheckType, MVT::i32, ++/*107367*/ OPC_MoveParent, ++/*107368*/ OPC_MoveChild6, ++/*107369*/ OPC_CheckInteger, 1, ++/*107371*/ OPC_CheckType, MVT::i32, ++/*107373*/ OPC_MoveParent, ++/*107374*/ OPC_MoveChild7, ++/*107375*/ OPC_CheckInteger, 1, ++/*107377*/ OPC_CheckType, MVT::i32, ++/*107379*/ OPC_MoveParent, ++/*107380*/ OPC_MoveChild, 8, ++/*107382*/ OPC_CheckInteger, 1, ++/*107384*/ OPC_CheckType, MVT::i32, ++/*107386*/ OPC_MoveParent, ++/*107387*/ OPC_MoveChild, 9, ++/*107389*/ OPC_CheckInteger, 1, ++/*107391*/ OPC_CheckType, MVT::i32, ++/*107393*/ OPC_MoveParent, ++/*107394*/ OPC_MoveChild, 10, ++/*107396*/ OPC_CheckInteger, 1, ++/*107398*/ OPC_CheckType, MVT::i32, ++/*107400*/ OPC_MoveParent, ++/*107401*/ OPC_MoveChild, 11, ++/*107403*/ OPC_CheckInteger, 1, ++/*107405*/ OPC_CheckType, MVT::i32, ++/*107407*/ OPC_MoveParent, ++/*107408*/ OPC_MoveChild, 12, ++/*107410*/ OPC_CheckInteger, 1, ++/*107412*/ OPC_CheckType, MVT::i32, ++/*107414*/ OPC_MoveParent, ++/*107415*/ OPC_MoveChild, 13, ++/*107417*/ OPC_CheckInteger, 1, ++/*107419*/ OPC_CheckType, MVT::i32, ++/*107421*/ OPC_MoveParent, ++/*107422*/ OPC_MoveChild, 14, ++/*107424*/ OPC_CheckInteger, 1, ++/*107426*/ OPC_CheckType, MVT::i32, ++/*107428*/ OPC_MoveParent, ++/*107429*/ OPC_MoveChild, 15, ++/*107431*/ OPC_CheckInteger, 1, ++/*107433*/ OPC_CheckType, MVT::i32, ++/*107435*/ OPC_MoveParent, ++/*107436*/ OPC_MoveChild, 16, ++/*107438*/ OPC_CheckInteger, 1, ++/*107440*/ OPC_CheckType, MVT::i32, ++/*107442*/ OPC_MoveParent, ++/*107443*/ OPC_MoveChild, 17, ++/*107445*/ OPC_CheckInteger, 1, ++/*107447*/ OPC_CheckType, MVT::i32, ++/*107449*/ OPC_MoveParent, ++/*107450*/ OPC_MoveChild, 18, ++/*107452*/ OPC_CheckInteger, 1, ++/*107454*/ OPC_CheckType, MVT::i32, ++/*107456*/ OPC_MoveParent, ++/*107457*/ OPC_MoveChild, 19, ++/*107459*/ OPC_CheckInteger, 1, ++/*107461*/ OPC_CheckType, MVT::i32, ++/*107463*/ OPC_MoveParent, ++/*107464*/ OPC_MoveChild, 20, ++/*107466*/ OPC_CheckInteger, 1, ++/*107468*/ OPC_CheckType, MVT::i32, ++/*107470*/ OPC_MoveParent, ++/*107471*/ OPC_MoveChild, 21, ++/*107473*/ OPC_CheckInteger, 1, ++/*107475*/ OPC_CheckType, MVT::i32, ++/*107477*/ OPC_MoveParent, ++/*107478*/ OPC_MoveChild, 22, ++/*107480*/ OPC_CheckInteger, 1, ++/*107482*/ OPC_CheckType, MVT::i32, ++/*107484*/ OPC_MoveParent, ++/*107485*/ OPC_MoveChild, 23, ++/*107487*/ OPC_CheckInteger, 1, ++/*107489*/ OPC_CheckType, MVT::i32, ++/*107491*/ OPC_MoveParent, ++/*107492*/ OPC_MoveChild, 24, ++/*107494*/ OPC_CheckInteger, 1, ++/*107496*/ OPC_CheckType, MVT::i32, ++/*107498*/ OPC_MoveParent, ++/*107499*/ OPC_MoveChild, 25, ++/*107501*/ OPC_CheckInteger, 1, ++/*107503*/ OPC_CheckType, MVT::i32, ++/*107505*/ OPC_MoveParent, ++/*107506*/ OPC_MoveChild, 26, ++/*107508*/ OPC_CheckInteger, 1, ++/*107510*/ OPC_CheckType, MVT::i32, ++/*107512*/ OPC_MoveParent, ++/*107513*/ OPC_MoveChild, 27, ++/*107515*/ OPC_CheckInteger, 1, ++/*107517*/ OPC_CheckType, MVT::i32, ++/*107519*/ OPC_MoveParent, ++/*107520*/ OPC_MoveChild, 28, ++/*107522*/ OPC_CheckInteger, 1, ++/*107524*/ OPC_CheckType, MVT::i32, ++/*107526*/ OPC_MoveParent, ++/*107527*/ OPC_MoveChild, 29, ++/*107529*/ OPC_CheckInteger, 1, ++/*107531*/ OPC_CheckType, MVT::i32, ++/*107533*/ OPC_MoveParent, ++/*107534*/ OPC_MoveChild, 30, ++/*107536*/ OPC_CheckInteger, 1, ++/*107538*/ OPC_CheckType, MVT::i32, ++/*107540*/ OPC_MoveParent, ++/*107541*/ OPC_MoveChild, 31, ++/*107543*/ OPC_CheckInteger, 1, ++/*107545*/ OPC_CheckType, MVT::i32, ++/*107547*/ OPC_MoveParent, ++/*107548*/ OPC_CheckType, MVT::v32i8, ++/*107550*/ OPC_MoveParent, ++/*107551*/ OPC_CheckType, MVT::v32i8, ++/*107553*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*107555*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$a), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*107563*/ /*Scope*/ 17|128,5/*657*/, /*->108222*/ ++/*107565*/ OPC_CheckChild0Same, 1, ++/*107567*/ OPC_CheckChild1Same, 0, ++/*107569*/ OPC_MoveParent, ++/*107570*/ OPC_MoveChild1, ++/*107571*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*107574*/ OPC_CheckChild0Integer, 1, ++/*107576*/ OPC_CheckChild0Type, MVT::i32, ++/*107578*/ OPC_CheckChild1Integer, 1, ++/*107580*/ OPC_CheckChild1Type, MVT::i32, ++/*107582*/ OPC_CheckChild2Integer, 1, ++/*107584*/ OPC_CheckChild2Type, MVT::i32, ++/*107586*/ OPC_CheckChild3Integer, 1, ++/*107588*/ OPC_CheckChild3Type, MVT::i32, ++/*107590*/ OPC_CheckChild4Integer, 1, ++/*107592*/ OPC_CheckChild4Type, MVT::i32, ++/*107594*/ OPC_MoveChild5, ++/*107595*/ OPC_CheckInteger, 1, ++/*107597*/ OPC_CheckType, MVT::i32, ++/*107599*/ OPC_MoveParent, ++/*107600*/ OPC_MoveChild6, ++/*107601*/ OPC_CheckInteger, 1, ++/*107603*/ OPC_CheckType, MVT::i32, ++/*107605*/ OPC_MoveParent, ++/*107606*/ OPC_MoveChild7, ++/*107607*/ OPC_CheckInteger, 1, ++/*107609*/ OPC_CheckType, MVT::i32, ++/*107611*/ OPC_MoveParent, ++/*107612*/ OPC_MoveChild, 8, ++/*107614*/ OPC_CheckInteger, 1, ++/*107616*/ OPC_CheckType, MVT::i32, ++/*107618*/ OPC_MoveParent, ++/*107619*/ OPC_MoveChild, 9, ++/*107621*/ OPC_CheckInteger, 1, ++/*107623*/ OPC_CheckType, MVT::i32, ++/*107625*/ OPC_MoveParent, ++/*107626*/ OPC_MoveChild, 10, ++/*107628*/ OPC_CheckInteger, 1, ++/*107630*/ OPC_CheckType, MVT::i32, ++/*107632*/ OPC_MoveParent, ++/*107633*/ OPC_MoveChild, 11, ++/*107635*/ OPC_CheckInteger, 1, ++/*107637*/ OPC_CheckType, MVT::i32, ++/*107639*/ OPC_MoveParent, ++/*107640*/ OPC_MoveChild, 12, ++/*107642*/ OPC_CheckInteger, 1, ++/*107644*/ OPC_CheckType, MVT::i32, ++/*107646*/ OPC_MoveParent, ++/*107647*/ OPC_MoveChild, 13, ++/*107649*/ OPC_CheckInteger, 1, ++/*107651*/ OPC_CheckType, MVT::i32, ++/*107653*/ OPC_MoveParent, ++/*107654*/ OPC_MoveChild, 14, ++/*107656*/ OPC_CheckInteger, 1, ++/*107658*/ OPC_CheckType, MVT::i32, ++/*107660*/ OPC_MoveParent, ++/*107661*/ OPC_MoveChild, 15, ++/*107663*/ OPC_CheckInteger, 1, ++/*107665*/ OPC_CheckType, MVT::i32, ++/*107667*/ OPC_MoveParent, ++/*107668*/ OPC_MoveChild, 16, ++/*107670*/ OPC_CheckInteger, 1, ++/*107672*/ OPC_CheckType, MVT::i32, ++/*107674*/ OPC_MoveParent, ++/*107675*/ OPC_MoveChild, 17, ++/*107677*/ OPC_CheckInteger, 1, ++/*107679*/ OPC_CheckType, MVT::i32, ++/*107681*/ OPC_MoveParent, ++/*107682*/ OPC_MoveChild, 18, ++/*107684*/ OPC_CheckInteger, 1, ++/*107686*/ OPC_CheckType, MVT::i32, ++/*107688*/ OPC_MoveParent, ++/*107689*/ OPC_MoveChild, 19, ++/*107691*/ OPC_CheckInteger, 1, ++/*107693*/ OPC_CheckType, MVT::i32, ++/*107695*/ OPC_MoveParent, ++/*107696*/ OPC_MoveChild, 20, ++/*107698*/ OPC_CheckInteger, 1, ++/*107700*/ OPC_CheckType, MVT::i32, ++/*107702*/ OPC_MoveParent, ++/*107703*/ OPC_MoveChild, 21, ++/*107705*/ OPC_CheckInteger, 1, ++/*107707*/ OPC_CheckType, MVT::i32, ++/*107709*/ OPC_MoveParent, ++/*107710*/ OPC_MoveChild, 22, ++/*107712*/ OPC_CheckInteger, 1, ++/*107714*/ OPC_CheckType, MVT::i32, ++/*107716*/ OPC_MoveParent, ++/*107717*/ OPC_MoveChild, 23, ++/*107719*/ OPC_CheckInteger, 1, ++/*107721*/ OPC_CheckType, MVT::i32, ++/*107723*/ OPC_MoveParent, ++/*107724*/ OPC_MoveChild, 24, ++/*107726*/ OPC_CheckInteger, 1, ++/*107728*/ OPC_CheckType, MVT::i32, ++/*107730*/ OPC_MoveParent, ++/*107731*/ OPC_MoveChild, 25, ++/*107733*/ OPC_CheckInteger, 1, ++/*107735*/ OPC_CheckType, MVT::i32, ++/*107737*/ OPC_MoveParent, ++/*107738*/ OPC_MoveChild, 26, ++/*107740*/ OPC_CheckInteger, 1, ++/*107742*/ OPC_CheckType, MVT::i32, ++/*107744*/ OPC_MoveParent, ++/*107745*/ OPC_MoveChild, 27, ++/*107747*/ OPC_CheckInteger, 1, ++/*107749*/ OPC_CheckType, MVT::i32, ++/*107751*/ OPC_MoveParent, ++/*107752*/ OPC_MoveChild, 28, ++/*107754*/ OPC_CheckInteger, 1, ++/*107756*/ OPC_CheckType, MVT::i32, ++/*107758*/ OPC_MoveParent, ++/*107759*/ OPC_MoveChild, 29, ++/*107761*/ OPC_CheckInteger, 1, ++/*107763*/ OPC_CheckType, MVT::i32, ++/*107765*/ OPC_MoveParent, ++/*107766*/ OPC_MoveChild, 30, ++/*107768*/ OPC_CheckInteger, 1, ++/*107770*/ OPC_CheckType, MVT::i32, ++/*107772*/ OPC_MoveParent, ++/*107773*/ OPC_MoveChild, 31, ++/*107775*/ OPC_CheckInteger, 1, ++/*107777*/ OPC_CheckType, MVT::i32, ++/*107779*/ OPC_MoveParent, ++/*107780*/ OPC_MoveParent, ++/*107781*/ OPC_MoveParent, ++/*107782*/ OPC_MoveChild1, ++/*107783*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*107786*/ OPC_CheckChild0Integer, 7, ++/*107788*/ OPC_CheckChild0Type, MVT::i32, ++/*107790*/ OPC_CheckChild1Integer, 7, ++/*107792*/ OPC_CheckChild1Type, MVT::i32, ++/*107794*/ OPC_CheckChild2Integer, 7, ++/*107796*/ OPC_CheckChild2Type, MVT::i32, ++/*107798*/ OPC_CheckChild3Integer, 7, ++/*107800*/ OPC_CheckChild3Type, MVT::i32, ++/*107802*/ OPC_CheckChild4Integer, 7, ++/*107804*/ OPC_CheckChild4Type, MVT::i32, ++/*107806*/ OPC_MoveChild5, ++/*107807*/ OPC_CheckInteger, 7, ++/*107809*/ OPC_CheckType, MVT::i32, ++/*107811*/ OPC_MoveParent, ++/*107812*/ OPC_MoveChild6, ++/*107813*/ OPC_CheckInteger, 7, ++/*107815*/ OPC_CheckType, MVT::i32, ++/*107817*/ OPC_MoveParent, ++/*107818*/ OPC_MoveChild7, ++/*107819*/ OPC_CheckInteger, 7, ++/*107821*/ OPC_CheckType, MVT::i32, ++/*107823*/ OPC_MoveParent, ++/*107824*/ OPC_MoveChild, 8, ++/*107826*/ OPC_CheckInteger, 7, ++/*107828*/ OPC_CheckType, MVT::i32, ++/*107830*/ OPC_MoveParent, ++/*107831*/ OPC_MoveChild, 9, ++/*107833*/ OPC_CheckInteger, 7, ++/*107835*/ OPC_CheckType, MVT::i32, ++/*107837*/ OPC_MoveParent, ++/*107838*/ OPC_MoveChild, 10, ++/*107840*/ OPC_CheckInteger, 7, ++/*107842*/ OPC_CheckType, MVT::i32, ++/*107844*/ OPC_MoveParent, ++/*107845*/ OPC_MoveChild, 11, ++/*107847*/ OPC_CheckInteger, 7, ++/*107849*/ OPC_CheckType, MVT::i32, ++/*107851*/ OPC_MoveParent, ++/*107852*/ OPC_MoveChild, 12, ++/*107854*/ OPC_CheckInteger, 7, ++/*107856*/ OPC_CheckType, MVT::i32, ++/*107858*/ OPC_MoveParent, ++/*107859*/ OPC_MoveChild, 13, ++/*107861*/ OPC_CheckInteger, 7, ++/*107863*/ OPC_CheckType, MVT::i32, ++/*107865*/ OPC_MoveParent, ++/*107866*/ OPC_MoveChild, 14, ++/*107868*/ OPC_CheckInteger, 7, ++/*107870*/ OPC_CheckType, MVT::i32, ++/*107872*/ OPC_MoveParent, ++/*107873*/ OPC_MoveChild, 15, ++/*107875*/ OPC_CheckInteger, 7, ++/*107877*/ OPC_CheckType, MVT::i32, ++/*107879*/ OPC_MoveParent, ++/*107880*/ OPC_MoveChild, 16, ++/*107882*/ OPC_CheckInteger, 7, ++/*107884*/ OPC_CheckType, MVT::i32, ++/*107886*/ OPC_MoveParent, ++/*107887*/ OPC_MoveChild, 17, ++/*107889*/ OPC_CheckInteger, 7, ++/*107891*/ OPC_CheckType, MVT::i32, ++/*107893*/ OPC_MoveParent, ++/*107894*/ OPC_MoveChild, 18, ++/*107896*/ OPC_CheckInteger, 7, ++/*107898*/ OPC_CheckType, MVT::i32, ++/*107900*/ OPC_MoveParent, ++/*107901*/ OPC_MoveChild, 19, ++/*107903*/ OPC_CheckInteger, 7, ++/*107905*/ OPC_CheckType, MVT::i32, ++/*107907*/ OPC_MoveParent, ++/*107908*/ OPC_MoveChild, 20, ++/*107910*/ OPC_CheckInteger, 7, ++/*107912*/ OPC_CheckType, MVT::i32, ++/*107914*/ OPC_MoveParent, ++/*107915*/ OPC_MoveChild, 21, ++/*107917*/ OPC_CheckInteger, 7, ++/*107919*/ OPC_CheckType, MVT::i32, ++/*107921*/ OPC_MoveParent, ++/*107922*/ OPC_MoveChild, 22, ++/*107924*/ OPC_CheckInteger, 7, ++/*107926*/ OPC_CheckType, MVT::i32, ++/*107928*/ OPC_MoveParent, ++/*107929*/ OPC_MoveChild, 23, ++/*107931*/ OPC_CheckInteger, 7, ++/*107933*/ OPC_CheckType, MVT::i32, ++/*107935*/ OPC_MoveParent, ++/*107936*/ OPC_MoveChild, 24, ++/*107938*/ OPC_CheckInteger, 7, ++/*107940*/ OPC_CheckType, MVT::i32, ++/*107942*/ OPC_MoveParent, ++/*107943*/ OPC_MoveChild, 25, ++/*107945*/ OPC_CheckInteger, 7, ++/*107947*/ OPC_CheckType, MVT::i32, ++/*107949*/ OPC_MoveParent, ++/*107950*/ OPC_MoveChild, 26, ++/*107952*/ OPC_CheckInteger, 7, ++/*107954*/ OPC_CheckType, MVT::i32, ++/*107956*/ OPC_MoveParent, ++/*107957*/ OPC_MoveChild, 27, ++/*107959*/ OPC_CheckInteger, 7, ++/*107961*/ OPC_CheckType, MVT::i32, ++/*107963*/ OPC_MoveParent, ++/*107964*/ OPC_MoveChild, 28, ++/*107966*/ OPC_CheckInteger, 7, ++/*107968*/ OPC_CheckType, MVT::i32, ++/*107970*/ OPC_MoveParent, ++/*107971*/ OPC_MoveChild, 29, ++/*107973*/ OPC_CheckInteger, 7, ++/*107975*/ OPC_CheckType, MVT::i32, ++/*107977*/ OPC_MoveParent, ++/*107978*/ OPC_MoveChild, 30, ++/*107980*/ OPC_CheckInteger, 7, ++/*107982*/ OPC_CheckType, MVT::i32, ++/*107984*/ OPC_MoveParent, ++/*107985*/ OPC_MoveChild, 31, ++/*107987*/ OPC_CheckInteger, 7, ++/*107989*/ OPC_CheckType, MVT::i32, ++/*107991*/ OPC_MoveParent, ++/*107992*/ OPC_CheckType, MVT::v32i8, ++/*107994*/ OPC_MoveParent, ++/*107995*/ OPC_MoveParent, ++/*107996*/ OPC_MoveParent, ++/*107997*/ OPC_MoveChild1, ++/*107998*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*108001*/ OPC_CheckChild0Integer, 1, ++/*108003*/ OPC_CheckChild0Type, MVT::i32, ++/*108005*/ OPC_CheckChild1Integer, 1, ++/*108007*/ OPC_CheckChild1Type, MVT::i32, ++/*108009*/ OPC_CheckChild2Integer, 1, ++/*108011*/ OPC_CheckChild2Type, MVT::i32, ++/*108013*/ OPC_CheckChild3Integer, 1, ++/*108015*/ OPC_CheckChild3Type, MVT::i32, ++/*108017*/ OPC_CheckChild4Integer, 1, ++/*108019*/ OPC_CheckChild4Type, MVT::i32, ++/*108021*/ OPC_MoveChild5, ++/*108022*/ OPC_CheckInteger, 1, ++/*108024*/ OPC_CheckType, MVT::i32, ++/*108026*/ OPC_MoveParent, ++/*108027*/ OPC_MoveChild6, ++/*108028*/ OPC_CheckInteger, 1, ++/*108030*/ OPC_CheckType, MVT::i32, ++/*108032*/ OPC_MoveParent, ++/*108033*/ OPC_MoveChild7, ++/*108034*/ OPC_CheckInteger, 1, ++/*108036*/ OPC_CheckType, MVT::i32, ++/*108038*/ OPC_MoveParent, ++/*108039*/ OPC_MoveChild, 8, ++/*108041*/ OPC_CheckInteger, 1, ++/*108043*/ OPC_CheckType, MVT::i32, ++/*108045*/ OPC_MoveParent, ++/*108046*/ OPC_MoveChild, 9, ++/*108048*/ OPC_CheckInteger, 1, ++/*108050*/ OPC_CheckType, MVT::i32, ++/*108052*/ OPC_MoveParent, ++/*108053*/ OPC_MoveChild, 10, ++/*108055*/ OPC_CheckInteger, 1, ++/*108057*/ OPC_CheckType, MVT::i32, ++/*108059*/ OPC_MoveParent, ++/*108060*/ OPC_MoveChild, 11, ++/*108062*/ OPC_CheckInteger, 1, ++/*108064*/ OPC_CheckType, MVT::i32, ++/*108066*/ OPC_MoveParent, ++/*108067*/ OPC_MoveChild, 12, ++/*108069*/ OPC_CheckInteger, 1, ++/*108071*/ OPC_CheckType, MVT::i32, ++/*108073*/ OPC_MoveParent, ++/*108074*/ OPC_MoveChild, 13, ++/*108076*/ OPC_CheckInteger, 1, ++/*108078*/ OPC_CheckType, MVT::i32, ++/*108080*/ OPC_MoveParent, ++/*108081*/ OPC_MoveChild, 14, ++/*108083*/ OPC_CheckInteger, 1, ++/*108085*/ OPC_CheckType, MVT::i32, ++/*108087*/ OPC_MoveParent, ++/*108088*/ OPC_MoveChild, 15, ++/*108090*/ OPC_CheckInteger, 1, ++/*108092*/ OPC_CheckType, MVT::i32, ++/*108094*/ OPC_MoveParent, ++/*108095*/ OPC_MoveChild, 16, ++/*108097*/ OPC_CheckInteger, 1, ++/*108099*/ OPC_CheckType, MVT::i32, ++/*108101*/ OPC_MoveParent, ++/*108102*/ OPC_MoveChild, 17, ++/*108104*/ OPC_CheckInteger, 1, ++/*108106*/ OPC_CheckType, MVT::i32, ++/*108108*/ OPC_MoveParent, ++/*108109*/ OPC_MoveChild, 18, ++/*108111*/ OPC_CheckInteger, 1, ++/*108113*/ OPC_CheckType, MVT::i32, ++/*108115*/ OPC_MoveParent, ++/*108116*/ OPC_MoveChild, 19, ++/*108118*/ OPC_CheckInteger, 1, ++/*108120*/ OPC_CheckType, MVT::i32, ++/*108122*/ OPC_MoveParent, ++/*108123*/ OPC_MoveChild, 20, ++/*108125*/ OPC_CheckInteger, 1, ++/*108127*/ OPC_CheckType, MVT::i32, ++/*108129*/ OPC_MoveParent, ++/*108130*/ OPC_MoveChild, 21, ++/*108132*/ OPC_CheckInteger, 1, ++/*108134*/ OPC_CheckType, MVT::i32, ++/*108136*/ OPC_MoveParent, ++/*108137*/ OPC_MoveChild, 22, ++/*108139*/ OPC_CheckInteger, 1, ++/*108141*/ OPC_CheckType, MVT::i32, ++/*108143*/ OPC_MoveParent, ++/*108144*/ OPC_MoveChild, 23, ++/*108146*/ OPC_CheckInteger, 1, ++/*108148*/ OPC_CheckType, MVT::i32, ++/*108150*/ OPC_MoveParent, ++/*108151*/ OPC_MoveChild, 24, ++/*108153*/ OPC_CheckInteger, 1, ++/*108155*/ OPC_CheckType, MVT::i32, ++/*108157*/ OPC_MoveParent, ++/*108158*/ OPC_MoveChild, 25, ++/*108160*/ OPC_CheckInteger, 1, ++/*108162*/ OPC_CheckType, MVT::i32, ++/*108164*/ OPC_MoveParent, ++/*108165*/ OPC_MoveChild, 26, ++/*108167*/ OPC_CheckInteger, 1, ++/*108169*/ OPC_CheckType, MVT::i32, ++/*108171*/ OPC_MoveParent, ++/*108172*/ OPC_MoveChild, 27, ++/*108174*/ OPC_CheckInteger, 1, ++/*108176*/ OPC_CheckType, MVT::i32, ++/*108178*/ OPC_MoveParent, ++/*108179*/ OPC_MoveChild, 28, ++/*108181*/ OPC_CheckInteger, 1, ++/*108183*/ OPC_CheckType, MVT::i32, ++/*108185*/ OPC_MoveParent, ++/*108186*/ OPC_MoveChild, 29, ++/*108188*/ OPC_CheckInteger, 1, ++/*108190*/ OPC_CheckType, MVT::i32, ++/*108192*/ OPC_MoveParent, ++/*108193*/ OPC_MoveChild, 30, ++/*108195*/ OPC_CheckInteger, 1, ++/*108197*/ OPC_CheckType, MVT::i32, ++/*108199*/ OPC_MoveParent, ++/*108200*/ OPC_MoveChild, 31, ++/*108202*/ OPC_CheckInteger, 1, ++/*108204*/ OPC_CheckType, MVT::i32, ++/*108206*/ OPC_MoveParent, ++/*108207*/ OPC_CheckType, MVT::v32i8, ++/*108209*/ OPC_MoveParent, ++/*108210*/ OPC_CheckType, MVT::v32i8, ++/*108212*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*108214*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$a), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*108222*/ /*Scope*/ 17|128,5/*657*/, /*->108881*/ ++/*108224*/ OPC_CheckChild0Same, 0, ++/*108226*/ OPC_CheckChild1Same, 1, ++/*108228*/ OPC_MoveParent, ++/*108229*/ OPC_MoveChild1, ++/*108230*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*108233*/ OPC_CheckChild0Integer, 1, ++/*108235*/ OPC_CheckChild0Type, MVT::i32, ++/*108237*/ OPC_CheckChild1Integer, 1, ++/*108239*/ OPC_CheckChild1Type, MVT::i32, ++/*108241*/ OPC_CheckChild2Integer, 1, ++/*108243*/ OPC_CheckChild2Type, MVT::i32, ++/*108245*/ OPC_CheckChild3Integer, 1, ++/*108247*/ OPC_CheckChild3Type, MVT::i32, ++/*108249*/ OPC_CheckChild4Integer, 1, ++/*108251*/ OPC_CheckChild4Type, MVT::i32, ++/*108253*/ OPC_MoveChild5, ++/*108254*/ OPC_CheckInteger, 1, ++/*108256*/ OPC_CheckType, MVT::i32, ++/*108258*/ OPC_MoveParent, ++/*108259*/ OPC_MoveChild6, ++/*108260*/ OPC_CheckInteger, 1, ++/*108262*/ OPC_CheckType, MVT::i32, ++/*108264*/ OPC_MoveParent, ++/*108265*/ OPC_MoveChild7, ++/*108266*/ OPC_CheckInteger, 1, ++/*108268*/ OPC_CheckType, MVT::i32, ++/*108270*/ OPC_MoveParent, ++/*108271*/ OPC_MoveChild, 8, ++/*108273*/ OPC_CheckInteger, 1, ++/*108275*/ OPC_CheckType, MVT::i32, ++/*108277*/ OPC_MoveParent, ++/*108278*/ OPC_MoveChild, 9, ++/*108280*/ OPC_CheckInteger, 1, ++/*108282*/ OPC_CheckType, MVT::i32, ++/*108284*/ OPC_MoveParent, ++/*108285*/ OPC_MoveChild, 10, ++/*108287*/ OPC_CheckInteger, 1, ++/*108289*/ OPC_CheckType, MVT::i32, ++/*108291*/ OPC_MoveParent, ++/*108292*/ OPC_MoveChild, 11, ++/*108294*/ OPC_CheckInteger, 1, ++/*108296*/ OPC_CheckType, MVT::i32, ++/*108298*/ OPC_MoveParent, ++/*108299*/ OPC_MoveChild, 12, ++/*108301*/ OPC_CheckInteger, 1, ++/*108303*/ OPC_CheckType, MVT::i32, ++/*108305*/ OPC_MoveParent, ++/*108306*/ OPC_MoveChild, 13, ++/*108308*/ OPC_CheckInteger, 1, ++/*108310*/ OPC_CheckType, MVT::i32, ++/*108312*/ OPC_MoveParent, ++/*108313*/ OPC_MoveChild, 14, ++/*108315*/ OPC_CheckInteger, 1, ++/*108317*/ OPC_CheckType, MVT::i32, ++/*108319*/ OPC_MoveParent, ++/*108320*/ OPC_MoveChild, 15, ++/*108322*/ OPC_CheckInteger, 1, ++/*108324*/ OPC_CheckType, MVT::i32, ++/*108326*/ OPC_MoveParent, ++/*108327*/ OPC_MoveChild, 16, ++/*108329*/ OPC_CheckInteger, 1, ++/*108331*/ OPC_CheckType, MVT::i32, ++/*108333*/ OPC_MoveParent, ++/*108334*/ OPC_MoveChild, 17, ++/*108336*/ OPC_CheckInteger, 1, ++/*108338*/ OPC_CheckType, MVT::i32, ++/*108340*/ OPC_MoveParent, ++/*108341*/ OPC_MoveChild, 18, ++/*108343*/ OPC_CheckInteger, 1, ++/*108345*/ OPC_CheckType, MVT::i32, ++/*108347*/ OPC_MoveParent, ++/*108348*/ OPC_MoveChild, 19, ++/*108350*/ OPC_CheckInteger, 1, ++/*108352*/ OPC_CheckType, MVT::i32, ++/*108354*/ OPC_MoveParent, ++/*108355*/ OPC_MoveChild, 20, ++/*108357*/ OPC_CheckInteger, 1, ++/*108359*/ OPC_CheckType, MVT::i32, ++/*108361*/ OPC_MoveParent, ++/*108362*/ OPC_MoveChild, 21, ++/*108364*/ OPC_CheckInteger, 1, ++/*108366*/ OPC_CheckType, MVT::i32, ++/*108368*/ OPC_MoveParent, ++/*108369*/ OPC_MoveChild, 22, ++/*108371*/ OPC_CheckInteger, 1, ++/*108373*/ OPC_CheckType, MVT::i32, ++/*108375*/ OPC_MoveParent, ++/*108376*/ OPC_MoveChild, 23, ++/*108378*/ OPC_CheckInteger, 1, ++/*108380*/ OPC_CheckType, MVT::i32, ++/*108382*/ OPC_MoveParent, ++/*108383*/ OPC_MoveChild, 24, ++/*108385*/ OPC_CheckInteger, 1, ++/*108387*/ OPC_CheckType, MVT::i32, ++/*108389*/ OPC_MoveParent, ++/*108390*/ OPC_MoveChild, 25, ++/*108392*/ OPC_CheckInteger, 1, ++/*108394*/ OPC_CheckType, MVT::i32, ++/*108396*/ OPC_MoveParent, ++/*108397*/ OPC_MoveChild, 26, ++/*108399*/ OPC_CheckInteger, 1, ++/*108401*/ OPC_CheckType, MVT::i32, ++/*108403*/ OPC_MoveParent, ++/*108404*/ OPC_MoveChild, 27, ++/*108406*/ OPC_CheckInteger, 1, ++/*108408*/ OPC_CheckType, MVT::i32, ++/*108410*/ OPC_MoveParent, ++/*108411*/ OPC_MoveChild, 28, ++/*108413*/ OPC_CheckInteger, 1, ++/*108415*/ OPC_CheckType, MVT::i32, ++/*108417*/ OPC_MoveParent, ++/*108418*/ OPC_MoveChild, 29, ++/*108420*/ OPC_CheckInteger, 1, ++/*108422*/ OPC_CheckType, MVT::i32, ++/*108424*/ OPC_MoveParent, ++/*108425*/ OPC_MoveChild, 30, ++/*108427*/ OPC_CheckInteger, 1, ++/*108429*/ OPC_CheckType, MVT::i32, ++/*108431*/ OPC_MoveParent, ++/*108432*/ OPC_MoveChild, 31, ++/*108434*/ OPC_CheckInteger, 1, ++/*108436*/ OPC_CheckType, MVT::i32, ++/*108438*/ OPC_MoveParent, ++/*108439*/ OPC_MoveParent, ++/*108440*/ OPC_MoveParent, ++/*108441*/ OPC_MoveChild1, ++/*108442*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*108445*/ OPC_CheckChild0Integer, 7, ++/*108447*/ OPC_CheckChild0Type, MVT::i32, ++/*108449*/ OPC_CheckChild1Integer, 7, ++/*108451*/ OPC_CheckChild1Type, MVT::i32, ++/*108453*/ OPC_CheckChild2Integer, 7, ++/*108455*/ OPC_CheckChild2Type, MVT::i32, ++/*108457*/ OPC_CheckChild3Integer, 7, ++/*108459*/ OPC_CheckChild3Type, MVT::i32, ++/*108461*/ OPC_CheckChild4Integer, 7, ++/*108463*/ OPC_CheckChild4Type, MVT::i32, ++/*108465*/ OPC_MoveChild5, ++/*108466*/ OPC_CheckInteger, 7, ++/*108468*/ OPC_CheckType, MVT::i32, ++/*108470*/ OPC_MoveParent, ++/*108471*/ OPC_MoveChild6, ++/*108472*/ OPC_CheckInteger, 7, ++/*108474*/ OPC_CheckType, MVT::i32, ++/*108476*/ OPC_MoveParent, ++/*108477*/ OPC_MoveChild7, ++/*108478*/ OPC_CheckInteger, 7, ++/*108480*/ OPC_CheckType, MVT::i32, ++/*108482*/ OPC_MoveParent, ++/*108483*/ OPC_MoveChild, 8, ++/*108485*/ OPC_CheckInteger, 7, ++/*108487*/ OPC_CheckType, MVT::i32, ++/*108489*/ OPC_MoveParent, ++/*108490*/ OPC_MoveChild, 9, ++/*108492*/ OPC_CheckInteger, 7, ++/*108494*/ OPC_CheckType, MVT::i32, ++/*108496*/ OPC_MoveParent, ++/*108497*/ OPC_MoveChild, 10, ++/*108499*/ OPC_CheckInteger, 7, ++/*108501*/ OPC_CheckType, MVT::i32, ++/*108503*/ OPC_MoveParent, ++/*108504*/ OPC_MoveChild, 11, ++/*108506*/ OPC_CheckInteger, 7, ++/*108508*/ OPC_CheckType, MVT::i32, ++/*108510*/ OPC_MoveParent, ++/*108511*/ OPC_MoveChild, 12, ++/*108513*/ OPC_CheckInteger, 7, ++/*108515*/ OPC_CheckType, MVT::i32, ++/*108517*/ OPC_MoveParent, ++/*108518*/ OPC_MoveChild, 13, ++/*108520*/ OPC_CheckInteger, 7, ++/*108522*/ OPC_CheckType, MVT::i32, ++/*108524*/ OPC_MoveParent, ++/*108525*/ OPC_MoveChild, 14, ++/*108527*/ OPC_CheckInteger, 7, ++/*108529*/ OPC_CheckType, MVT::i32, ++/*108531*/ OPC_MoveParent, ++/*108532*/ OPC_MoveChild, 15, ++/*108534*/ OPC_CheckInteger, 7, ++/*108536*/ OPC_CheckType, MVT::i32, ++/*108538*/ OPC_MoveParent, ++/*108539*/ OPC_MoveChild, 16, ++/*108541*/ OPC_CheckInteger, 7, ++/*108543*/ OPC_CheckType, MVT::i32, ++/*108545*/ OPC_MoveParent, ++/*108546*/ OPC_MoveChild, 17, ++/*108548*/ OPC_CheckInteger, 7, ++/*108550*/ OPC_CheckType, MVT::i32, ++/*108552*/ OPC_MoveParent, ++/*108553*/ OPC_MoveChild, 18, ++/*108555*/ OPC_CheckInteger, 7, ++/*108557*/ OPC_CheckType, MVT::i32, ++/*108559*/ OPC_MoveParent, ++/*108560*/ OPC_MoveChild, 19, ++/*108562*/ OPC_CheckInteger, 7, ++/*108564*/ OPC_CheckType, MVT::i32, ++/*108566*/ OPC_MoveParent, ++/*108567*/ OPC_MoveChild, 20, ++/*108569*/ OPC_CheckInteger, 7, ++/*108571*/ OPC_CheckType, MVT::i32, ++/*108573*/ OPC_MoveParent, ++/*108574*/ OPC_MoveChild, 21, ++/*108576*/ OPC_CheckInteger, 7, ++/*108578*/ OPC_CheckType, MVT::i32, ++/*108580*/ OPC_MoveParent, ++/*108581*/ OPC_MoveChild, 22, ++/*108583*/ OPC_CheckInteger, 7, ++/*108585*/ OPC_CheckType, MVT::i32, ++/*108587*/ OPC_MoveParent, ++/*108588*/ OPC_MoveChild, 23, ++/*108590*/ OPC_CheckInteger, 7, ++/*108592*/ OPC_CheckType, MVT::i32, ++/*108594*/ OPC_MoveParent, ++/*108595*/ OPC_MoveChild, 24, ++/*108597*/ OPC_CheckInteger, 7, ++/*108599*/ OPC_CheckType, MVT::i32, ++/*108601*/ OPC_MoveParent, ++/*108602*/ OPC_MoveChild, 25, ++/*108604*/ OPC_CheckInteger, 7, ++/*108606*/ OPC_CheckType, MVT::i32, ++/*108608*/ OPC_MoveParent, ++/*108609*/ OPC_MoveChild, 26, ++/*108611*/ OPC_CheckInteger, 7, ++/*108613*/ OPC_CheckType, MVT::i32, ++/*108615*/ OPC_MoveParent, ++/*108616*/ OPC_MoveChild, 27, ++/*108618*/ OPC_CheckInteger, 7, ++/*108620*/ OPC_CheckType, MVT::i32, ++/*108622*/ OPC_MoveParent, ++/*108623*/ OPC_MoveChild, 28, ++/*108625*/ OPC_CheckInteger, 7, ++/*108627*/ OPC_CheckType, MVT::i32, ++/*108629*/ OPC_MoveParent, ++/*108630*/ OPC_MoveChild, 29, ++/*108632*/ OPC_CheckInteger, 7, ++/*108634*/ OPC_CheckType, MVT::i32, ++/*108636*/ OPC_MoveParent, ++/*108637*/ OPC_MoveChild, 30, ++/*108639*/ OPC_CheckInteger, 7, ++/*108641*/ OPC_CheckType, MVT::i32, ++/*108643*/ OPC_MoveParent, ++/*108644*/ OPC_MoveChild, 31, ++/*108646*/ OPC_CheckInteger, 7, ++/*108648*/ OPC_CheckType, MVT::i32, ++/*108650*/ OPC_MoveParent, ++/*108651*/ OPC_CheckType, MVT::v32i8, ++/*108653*/ OPC_MoveParent, ++/*108654*/ OPC_MoveParent, ++/*108655*/ OPC_MoveParent, ++/*108656*/ OPC_MoveChild1, ++/*108657*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*108660*/ OPC_CheckChild0Integer, 1, ++/*108662*/ OPC_CheckChild0Type, MVT::i32, ++/*108664*/ OPC_CheckChild1Integer, 1, ++/*108666*/ OPC_CheckChild1Type, MVT::i32, ++/*108668*/ OPC_CheckChild2Integer, 1, ++/*108670*/ OPC_CheckChild2Type, MVT::i32, ++/*108672*/ OPC_CheckChild3Integer, 1, ++/*108674*/ OPC_CheckChild3Type, MVT::i32, ++/*108676*/ OPC_CheckChild4Integer, 1, ++/*108678*/ OPC_CheckChild4Type, MVT::i32, ++/*108680*/ OPC_MoveChild5, ++/*108681*/ OPC_CheckInteger, 1, ++/*108683*/ OPC_CheckType, MVT::i32, ++/*108685*/ OPC_MoveParent, ++/*108686*/ OPC_MoveChild6, ++/*108687*/ OPC_CheckInteger, 1, ++/*108689*/ OPC_CheckType, MVT::i32, ++/*108691*/ OPC_MoveParent, ++/*108692*/ OPC_MoveChild7, ++/*108693*/ OPC_CheckInteger, 1, ++/*108695*/ OPC_CheckType, MVT::i32, ++/*108697*/ OPC_MoveParent, ++/*108698*/ OPC_MoveChild, 8, ++/*108700*/ OPC_CheckInteger, 1, ++/*108702*/ OPC_CheckType, MVT::i32, ++/*108704*/ OPC_MoveParent, ++/*108705*/ OPC_MoveChild, 9, ++/*108707*/ OPC_CheckInteger, 1, ++/*108709*/ OPC_CheckType, MVT::i32, ++/*108711*/ OPC_MoveParent, ++/*108712*/ OPC_MoveChild, 10, ++/*108714*/ OPC_CheckInteger, 1, ++/*108716*/ OPC_CheckType, MVT::i32, ++/*108718*/ OPC_MoveParent, ++/*108719*/ OPC_MoveChild, 11, ++/*108721*/ OPC_CheckInteger, 1, ++/*108723*/ OPC_CheckType, MVT::i32, ++/*108725*/ OPC_MoveParent, ++/*108726*/ OPC_MoveChild, 12, ++/*108728*/ OPC_CheckInteger, 1, ++/*108730*/ OPC_CheckType, MVT::i32, ++/*108732*/ OPC_MoveParent, ++/*108733*/ OPC_MoveChild, 13, ++/*108735*/ OPC_CheckInteger, 1, ++/*108737*/ OPC_CheckType, MVT::i32, ++/*108739*/ OPC_MoveParent, ++/*108740*/ OPC_MoveChild, 14, ++/*108742*/ OPC_CheckInteger, 1, ++/*108744*/ OPC_CheckType, MVT::i32, ++/*108746*/ OPC_MoveParent, ++/*108747*/ OPC_MoveChild, 15, ++/*108749*/ OPC_CheckInteger, 1, ++/*108751*/ OPC_CheckType, MVT::i32, ++/*108753*/ OPC_MoveParent, ++/*108754*/ OPC_MoveChild, 16, ++/*108756*/ OPC_CheckInteger, 1, ++/*108758*/ OPC_CheckType, MVT::i32, ++/*108760*/ OPC_MoveParent, ++/*108761*/ OPC_MoveChild, 17, ++/*108763*/ OPC_CheckInteger, 1, ++/*108765*/ OPC_CheckType, MVT::i32, ++/*108767*/ OPC_MoveParent, ++/*108768*/ OPC_MoveChild, 18, ++/*108770*/ OPC_CheckInteger, 1, ++/*108772*/ OPC_CheckType, MVT::i32, ++/*108774*/ OPC_MoveParent, ++/*108775*/ OPC_MoveChild, 19, ++/*108777*/ OPC_CheckInteger, 1, ++/*108779*/ OPC_CheckType, MVT::i32, ++/*108781*/ OPC_MoveParent, ++/*108782*/ OPC_MoveChild, 20, ++/*108784*/ OPC_CheckInteger, 1, ++/*108786*/ OPC_CheckType, MVT::i32, ++/*108788*/ OPC_MoveParent, ++/*108789*/ OPC_MoveChild, 21, ++/*108791*/ OPC_CheckInteger, 1, ++/*108793*/ OPC_CheckType, MVT::i32, ++/*108795*/ OPC_MoveParent, ++/*108796*/ OPC_MoveChild, 22, ++/*108798*/ OPC_CheckInteger, 1, ++/*108800*/ OPC_CheckType, MVT::i32, ++/*108802*/ OPC_MoveParent, ++/*108803*/ OPC_MoveChild, 23, ++/*108805*/ OPC_CheckInteger, 1, ++/*108807*/ OPC_CheckType, MVT::i32, ++/*108809*/ OPC_MoveParent, ++/*108810*/ OPC_MoveChild, 24, ++/*108812*/ OPC_CheckInteger, 1, ++/*108814*/ OPC_CheckType, MVT::i32, ++/*108816*/ OPC_MoveParent, ++/*108817*/ OPC_MoveChild, 25, ++/*108819*/ OPC_CheckInteger, 1, ++/*108821*/ OPC_CheckType, MVT::i32, ++/*108823*/ OPC_MoveParent, ++/*108824*/ OPC_MoveChild, 26, ++/*108826*/ OPC_CheckInteger, 1, ++/*108828*/ OPC_CheckType, MVT::i32, ++/*108830*/ OPC_MoveParent, ++/*108831*/ OPC_MoveChild, 27, ++/*108833*/ OPC_CheckInteger, 1, ++/*108835*/ OPC_CheckType, MVT::i32, ++/*108837*/ OPC_MoveParent, ++/*108838*/ OPC_MoveChild, 28, ++/*108840*/ OPC_CheckInteger, 1, ++/*108842*/ OPC_CheckType, MVT::i32, ++/*108844*/ OPC_MoveParent, ++/*108845*/ OPC_MoveChild, 29, ++/*108847*/ OPC_CheckInteger, 1, ++/*108849*/ OPC_CheckType, MVT::i32, ++/*108851*/ OPC_MoveParent, ++/*108852*/ OPC_MoveChild, 30, ++/*108854*/ OPC_CheckInteger, 1, ++/*108856*/ OPC_CheckType, MVT::i32, ++/*108858*/ OPC_MoveParent, ++/*108859*/ OPC_MoveChild, 31, ++/*108861*/ OPC_CheckInteger, 1, ++/*108863*/ OPC_CheckType, MVT::i32, ++/*108865*/ OPC_MoveParent, ++/*108866*/ OPC_CheckType, MVT::v32i8, ++/*108868*/ OPC_MoveParent, ++/*108869*/ OPC_CheckType, MVT::v32i8, ++/*108871*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*108873*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$a), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*108881*/ 0, /*End of Scope*/ ++/*108882*/ /*Scope*/ 42|128,10/*1322*/, /*->110206*/ ++/*108884*/ OPC_CheckChild0Same, 0, ++/*108886*/ OPC_MoveChild1, ++/*108887*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*108890*/ OPC_Scope, 15|128,5/*655*/, /*->109548*/ // 2 children in Scope ++/*108893*/ OPC_MoveChild0, ++/*108894*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*108897*/ OPC_CheckChild0Integer, 1, ++/*108899*/ OPC_CheckChild0Type, MVT::i32, ++/*108901*/ OPC_CheckChild1Integer, 1, ++/*108903*/ OPC_CheckChild1Type, MVT::i32, ++/*108905*/ OPC_CheckChild2Integer, 1, ++/*108907*/ OPC_CheckChild2Type, MVT::i32, ++/*108909*/ OPC_CheckChild3Integer, 1, ++/*108911*/ OPC_CheckChild3Type, MVT::i32, ++/*108913*/ OPC_CheckChild4Integer, 1, ++/*108915*/ OPC_CheckChild4Type, MVT::i32, ++/*108917*/ OPC_MoveChild5, ++/*108918*/ OPC_CheckInteger, 1, ++/*108920*/ OPC_CheckType, MVT::i32, ++/*108922*/ OPC_MoveParent, ++/*108923*/ OPC_MoveChild6, ++/*108924*/ OPC_CheckInteger, 1, ++/*108926*/ OPC_CheckType, MVT::i32, ++/*108928*/ OPC_MoveParent, ++/*108929*/ OPC_MoveChild7, ++/*108930*/ OPC_CheckInteger, 1, ++/*108932*/ OPC_CheckType, MVT::i32, ++/*108934*/ OPC_MoveParent, ++/*108935*/ OPC_MoveChild, 8, ++/*108937*/ OPC_CheckInteger, 1, ++/*108939*/ OPC_CheckType, MVT::i32, ++/*108941*/ OPC_MoveParent, ++/*108942*/ OPC_MoveChild, 9, ++/*108944*/ OPC_CheckInteger, 1, ++/*108946*/ OPC_CheckType, MVT::i32, ++/*108948*/ OPC_MoveParent, ++/*108949*/ OPC_MoveChild, 10, ++/*108951*/ OPC_CheckInteger, 1, ++/*108953*/ OPC_CheckType, MVT::i32, ++/*108955*/ OPC_MoveParent, ++/*108956*/ OPC_MoveChild, 11, ++/*108958*/ OPC_CheckInteger, 1, ++/*108960*/ OPC_CheckType, MVT::i32, ++/*108962*/ OPC_MoveParent, ++/*108963*/ OPC_MoveChild, 12, ++/*108965*/ OPC_CheckInteger, 1, ++/*108967*/ OPC_CheckType, MVT::i32, ++/*108969*/ OPC_MoveParent, ++/*108970*/ OPC_MoveChild, 13, ++/*108972*/ OPC_CheckInteger, 1, ++/*108974*/ OPC_CheckType, MVT::i32, ++/*108976*/ OPC_MoveParent, ++/*108977*/ OPC_MoveChild, 14, ++/*108979*/ OPC_CheckInteger, 1, ++/*108981*/ OPC_CheckType, MVT::i32, ++/*108983*/ OPC_MoveParent, ++/*108984*/ OPC_MoveChild, 15, ++/*108986*/ OPC_CheckInteger, 1, ++/*108988*/ OPC_CheckType, MVT::i32, ++/*108990*/ OPC_MoveParent, ++/*108991*/ OPC_MoveChild, 16, ++/*108993*/ OPC_CheckInteger, 1, ++/*108995*/ OPC_CheckType, MVT::i32, ++/*108997*/ OPC_MoveParent, ++/*108998*/ OPC_MoveChild, 17, ++/*109000*/ OPC_CheckInteger, 1, ++/*109002*/ OPC_CheckType, MVT::i32, ++/*109004*/ OPC_MoveParent, ++/*109005*/ OPC_MoveChild, 18, ++/*109007*/ OPC_CheckInteger, 1, ++/*109009*/ OPC_CheckType, MVT::i32, ++/*109011*/ OPC_MoveParent, ++/*109012*/ OPC_MoveChild, 19, ++/*109014*/ OPC_CheckInteger, 1, ++/*109016*/ OPC_CheckType, MVT::i32, ++/*109018*/ OPC_MoveParent, ++/*109019*/ OPC_MoveChild, 20, ++/*109021*/ OPC_CheckInteger, 1, ++/*109023*/ OPC_CheckType, MVT::i32, ++/*109025*/ OPC_MoveParent, ++/*109026*/ OPC_MoveChild, 21, ++/*109028*/ OPC_CheckInteger, 1, ++/*109030*/ OPC_CheckType, MVT::i32, ++/*109032*/ OPC_MoveParent, ++/*109033*/ OPC_MoveChild, 22, ++/*109035*/ OPC_CheckInteger, 1, ++/*109037*/ OPC_CheckType, MVT::i32, ++/*109039*/ OPC_MoveParent, ++/*109040*/ OPC_MoveChild, 23, ++/*109042*/ OPC_CheckInteger, 1, ++/*109044*/ OPC_CheckType, MVT::i32, ++/*109046*/ OPC_MoveParent, ++/*109047*/ OPC_MoveChild, 24, ++/*109049*/ OPC_CheckInteger, 1, ++/*109051*/ OPC_CheckType, MVT::i32, ++/*109053*/ OPC_MoveParent, ++/*109054*/ OPC_MoveChild, 25, ++/*109056*/ OPC_CheckInteger, 1, ++/*109058*/ OPC_CheckType, MVT::i32, ++/*109060*/ OPC_MoveParent, ++/*109061*/ OPC_MoveChild, 26, ++/*109063*/ OPC_CheckInteger, 1, ++/*109065*/ OPC_CheckType, MVT::i32, ++/*109067*/ OPC_MoveParent, ++/*109068*/ OPC_MoveChild, 27, ++/*109070*/ OPC_CheckInteger, 1, ++/*109072*/ OPC_CheckType, MVT::i32, ++/*109074*/ OPC_MoveParent, ++/*109075*/ OPC_MoveChild, 28, ++/*109077*/ OPC_CheckInteger, 1, ++/*109079*/ OPC_CheckType, MVT::i32, ++/*109081*/ OPC_MoveParent, ++/*109082*/ OPC_MoveChild, 29, ++/*109084*/ OPC_CheckInteger, 1, ++/*109086*/ OPC_CheckType, MVT::i32, ++/*109088*/ OPC_MoveParent, ++/*109089*/ OPC_MoveChild, 30, ++/*109091*/ OPC_CheckInteger, 1, ++/*109093*/ OPC_CheckType, MVT::i32, ++/*109095*/ OPC_MoveParent, ++/*109096*/ OPC_MoveChild, 31, ++/*109098*/ OPC_CheckInteger, 1, ++/*109100*/ OPC_CheckType, MVT::i32, ++/*109102*/ OPC_MoveParent, ++/*109103*/ OPC_MoveParent, ++/*109104*/ OPC_CheckChild1Same, 1, ++/*109106*/ OPC_MoveParent, ++/*109107*/ OPC_MoveParent, ++/*109108*/ OPC_MoveChild1, ++/*109109*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*109112*/ OPC_CheckChild0Integer, 7, ++/*109114*/ OPC_CheckChild0Type, MVT::i32, ++/*109116*/ OPC_CheckChild1Integer, 7, ++/*109118*/ OPC_CheckChild1Type, MVT::i32, ++/*109120*/ OPC_CheckChild2Integer, 7, ++/*109122*/ OPC_CheckChild2Type, MVT::i32, ++/*109124*/ OPC_CheckChild3Integer, 7, ++/*109126*/ OPC_CheckChild3Type, MVT::i32, ++/*109128*/ OPC_CheckChild4Integer, 7, ++/*109130*/ OPC_CheckChild4Type, MVT::i32, ++/*109132*/ OPC_MoveChild5, ++/*109133*/ OPC_CheckInteger, 7, ++/*109135*/ OPC_CheckType, MVT::i32, ++/*109137*/ OPC_MoveParent, ++/*109138*/ OPC_MoveChild6, ++/*109139*/ OPC_CheckInteger, 7, ++/*109141*/ OPC_CheckType, MVT::i32, ++/*109143*/ OPC_MoveParent, ++/*109144*/ OPC_MoveChild7, ++/*109145*/ OPC_CheckInteger, 7, ++/*109147*/ OPC_CheckType, MVT::i32, ++/*109149*/ OPC_MoveParent, ++/*109150*/ OPC_MoveChild, 8, ++/*109152*/ OPC_CheckInteger, 7, ++/*109154*/ OPC_CheckType, MVT::i32, ++/*109156*/ OPC_MoveParent, ++/*109157*/ OPC_MoveChild, 9, ++/*109159*/ OPC_CheckInteger, 7, ++/*109161*/ OPC_CheckType, MVT::i32, ++/*109163*/ OPC_MoveParent, ++/*109164*/ OPC_MoveChild, 10, ++/*109166*/ OPC_CheckInteger, 7, ++/*109168*/ OPC_CheckType, MVT::i32, ++/*109170*/ OPC_MoveParent, ++/*109171*/ OPC_MoveChild, 11, ++/*109173*/ OPC_CheckInteger, 7, ++/*109175*/ OPC_CheckType, MVT::i32, ++/*109177*/ OPC_MoveParent, ++/*109178*/ OPC_MoveChild, 12, ++/*109180*/ OPC_CheckInteger, 7, ++/*109182*/ OPC_CheckType, MVT::i32, ++/*109184*/ OPC_MoveParent, ++/*109185*/ OPC_MoveChild, 13, ++/*109187*/ OPC_CheckInteger, 7, ++/*109189*/ OPC_CheckType, MVT::i32, ++/*109191*/ OPC_MoveParent, ++/*109192*/ OPC_MoveChild, 14, ++/*109194*/ OPC_CheckInteger, 7, ++/*109196*/ OPC_CheckType, MVT::i32, ++/*109198*/ OPC_MoveParent, ++/*109199*/ OPC_MoveChild, 15, ++/*109201*/ OPC_CheckInteger, 7, ++/*109203*/ OPC_CheckType, MVT::i32, ++/*109205*/ OPC_MoveParent, ++/*109206*/ OPC_MoveChild, 16, ++/*109208*/ OPC_CheckInteger, 7, ++/*109210*/ OPC_CheckType, MVT::i32, ++/*109212*/ OPC_MoveParent, ++/*109213*/ OPC_MoveChild, 17, ++/*109215*/ OPC_CheckInteger, 7, ++/*109217*/ OPC_CheckType, MVT::i32, ++/*109219*/ OPC_MoveParent, ++/*109220*/ OPC_MoveChild, 18, ++/*109222*/ OPC_CheckInteger, 7, ++/*109224*/ OPC_CheckType, MVT::i32, ++/*109226*/ OPC_MoveParent, ++/*109227*/ OPC_MoveChild, 19, ++/*109229*/ OPC_CheckInteger, 7, ++/*109231*/ OPC_CheckType, MVT::i32, ++/*109233*/ OPC_MoveParent, ++/*109234*/ OPC_MoveChild, 20, ++/*109236*/ OPC_CheckInteger, 7, ++/*109238*/ OPC_CheckType, MVT::i32, ++/*109240*/ OPC_MoveParent, ++/*109241*/ OPC_MoveChild, 21, ++/*109243*/ OPC_CheckInteger, 7, ++/*109245*/ OPC_CheckType, MVT::i32, ++/*109247*/ OPC_MoveParent, ++/*109248*/ OPC_MoveChild, 22, ++/*109250*/ OPC_CheckInteger, 7, ++/*109252*/ OPC_CheckType, MVT::i32, ++/*109254*/ OPC_MoveParent, ++/*109255*/ OPC_MoveChild, 23, ++/*109257*/ OPC_CheckInteger, 7, ++/*109259*/ OPC_CheckType, MVT::i32, ++/*109261*/ OPC_MoveParent, ++/*109262*/ OPC_MoveChild, 24, ++/*109264*/ OPC_CheckInteger, 7, ++/*109266*/ OPC_CheckType, MVT::i32, ++/*109268*/ OPC_MoveParent, ++/*109269*/ OPC_MoveChild, 25, ++/*109271*/ OPC_CheckInteger, 7, ++/*109273*/ OPC_CheckType, MVT::i32, ++/*109275*/ OPC_MoveParent, ++/*109276*/ OPC_MoveChild, 26, ++/*109278*/ OPC_CheckInteger, 7, ++/*109280*/ OPC_CheckType, MVT::i32, ++/*109282*/ OPC_MoveParent, ++/*109283*/ OPC_MoveChild, 27, ++/*109285*/ OPC_CheckInteger, 7, ++/*109287*/ OPC_CheckType, MVT::i32, ++/*109289*/ OPC_MoveParent, ++/*109290*/ OPC_MoveChild, 28, ++/*109292*/ OPC_CheckInteger, 7, ++/*109294*/ OPC_CheckType, MVT::i32, ++/*109296*/ OPC_MoveParent, ++/*109297*/ OPC_MoveChild, 29, ++/*109299*/ OPC_CheckInteger, 7, ++/*109301*/ OPC_CheckType, MVT::i32, ++/*109303*/ OPC_MoveParent, ++/*109304*/ OPC_MoveChild, 30, ++/*109306*/ OPC_CheckInteger, 7, ++/*109308*/ OPC_CheckType, MVT::i32, ++/*109310*/ OPC_MoveParent, ++/*109311*/ OPC_MoveChild, 31, ++/*109313*/ OPC_CheckInteger, 7, ++/*109315*/ OPC_CheckType, MVT::i32, ++/*109317*/ OPC_MoveParent, ++/*109318*/ OPC_CheckType, MVT::v32i8, ++/*109320*/ OPC_MoveParent, ++/*109321*/ OPC_MoveParent, ++/*109322*/ OPC_MoveParent, ++/*109323*/ OPC_MoveChild1, ++/*109324*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*109327*/ OPC_CheckChild0Integer, 1, ++/*109329*/ OPC_CheckChild0Type, MVT::i32, ++/*109331*/ OPC_CheckChild1Integer, 1, ++/*109333*/ OPC_CheckChild1Type, MVT::i32, ++/*109335*/ OPC_CheckChild2Integer, 1, ++/*109337*/ OPC_CheckChild2Type, MVT::i32, ++/*109339*/ OPC_CheckChild3Integer, 1, ++/*109341*/ OPC_CheckChild3Type, MVT::i32, ++/*109343*/ OPC_CheckChild4Integer, 1, ++/*109345*/ OPC_CheckChild4Type, MVT::i32, ++/*109347*/ OPC_MoveChild5, ++/*109348*/ OPC_CheckInteger, 1, ++/*109350*/ OPC_CheckType, MVT::i32, ++/*109352*/ OPC_MoveParent, ++/*109353*/ OPC_MoveChild6, ++/*109354*/ OPC_CheckInteger, 1, ++/*109356*/ OPC_CheckType, MVT::i32, ++/*109358*/ OPC_MoveParent, ++/*109359*/ OPC_MoveChild7, ++/*109360*/ OPC_CheckInteger, 1, ++/*109362*/ OPC_CheckType, MVT::i32, ++/*109364*/ OPC_MoveParent, ++/*109365*/ OPC_MoveChild, 8, ++/*109367*/ OPC_CheckInteger, 1, ++/*109369*/ OPC_CheckType, MVT::i32, ++/*109371*/ OPC_MoveParent, ++/*109372*/ OPC_MoveChild, 9, ++/*109374*/ OPC_CheckInteger, 1, ++/*109376*/ OPC_CheckType, MVT::i32, ++/*109378*/ OPC_MoveParent, ++/*109379*/ OPC_MoveChild, 10, ++/*109381*/ OPC_CheckInteger, 1, ++/*109383*/ OPC_CheckType, MVT::i32, ++/*109385*/ OPC_MoveParent, ++/*109386*/ OPC_MoveChild, 11, ++/*109388*/ OPC_CheckInteger, 1, ++/*109390*/ OPC_CheckType, MVT::i32, ++/*109392*/ OPC_MoveParent, ++/*109393*/ OPC_MoveChild, 12, ++/*109395*/ OPC_CheckInteger, 1, ++/*109397*/ OPC_CheckType, MVT::i32, ++/*109399*/ OPC_MoveParent, ++/*109400*/ OPC_MoveChild, 13, ++/*109402*/ OPC_CheckInteger, 1, ++/*109404*/ OPC_CheckType, MVT::i32, ++/*109406*/ OPC_MoveParent, ++/*109407*/ OPC_MoveChild, 14, ++/*109409*/ OPC_CheckInteger, 1, ++/*109411*/ OPC_CheckType, MVT::i32, ++/*109413*/ OPC_MoveParent, ++/*109414*/ OPC_MoveChild, 15, ++/*109416*/ OPC_CheckInteger, 1, ++/*109418*/ OPC_CheckType, MVT::i32, ++/*109420*/ OPC_MoveParent, ++/*109421*/ OPC_MoveChild, 16, ++/*109423*/ OPC_CheckInteger, 1, ++/*109425*/ OPC_CheckType, MVT::i32, ++/*109427*/ OPC_MoveParent, ++/*109428*/ OPC_MoveChild, 17, ++/*109430*/ OPC_CheckInteger, 1, ++/*109432*/ OPC_CheckType, MVT::i32, ++/*109434*/ OPC_MoveParent, ++/*109435*/ OPC_MoveChild, 18, ++/*109437*/ OPC_CheckInteger, 1, ++/*109439*/ OPC_CheckType, MVT::i32, ++/*109441*/ OPC_MoveParent, ++/*109442*/ OPC_MoveChild, 19, ++/*109444*/ OPC_CheckInteger, 1, ++/*109446*/ OPC_CheckType, MVT::i32, ++/*109448*/ OPC_MoveParent, ++/*109449*/ OPC_MoveChild, 20, ++/*109451*/ OPC_CheckInteger, 1, ++/*109453*/ OPC_CheckType, MVT::i32, ++/*109455*/ OPC_MoveParent, ++/*109456*/ OPC_MoveChild, 21, ++/*109458*/ OPC_CheckInteger, 1, ++/*109460*/ OPC_CheckType, MVT::i32, ++/*109462*/ OPC_MoveParent, ++/*109463*/ OPC_MoveChild, 22, ++/*109465*/ OPC_CheckInteger, 1, ++/*109467*/ OPC_CheckType, MVT::i32, ++/*109469*/ OPC_MoveParent, ++/*109470*/ OPC_MoveChild, 23, ++/*109472*/ OPC_CheckInteger, 1, ++/*109474*/ OPC_CheckType, MVT::i32, ++/*109476*/ OPC_MoveParent, ++/*109477*/ OPC_MoveChild, 24, ++/*109479*/ OPC_CheckInteger, 1, ++/*109481*/ OPC_CheckType, MVT::i32, ++/*109483*/ OPC_MoveParent, ++/*109484*/ OPC_MoveChild, 25, ++/*109486*/ OPC_CheckInteger, 1, ++/*109488*/ OPC_CheckType, MVT::i32, ++/*109490*/ OPC_MoveParent, ++/*109491*/ OPC_MoveChild, 26, ++/*109493*/ OPC_CheckInteger, 1, ++/*109495*/ OPC_CheckType, MVT::i32, ++/*109497*/ OPC_MoveParent, ++/*109498*/ OPC_MoveChild, 27, ++/*109500*/ OPC_CheckInteger, 1, ++/*109502*/ OPC_CheckType, MVT::i32, ++/*109504*/ OPC_MoveParent, ++/*109505*/ OPC_MoveChild, 28, ++/*109507*/ OPC_CheckInteger, 1, ++/*109509*/ OPC_CheckType, MVT::i32, ++/*109511*/ OPC_MoveParent, ++/*109512*/ OPC_MoveChild, 29, ++/*109514*/ OPC_CheckInteger, 1, ++/*109516*/ OPC_CheckType, MVT::i32, ++/*109518*/ OPC_MoveParent, ++/*109519*/ OPC_MoveChild, 30, ++/*109521*/ OPC_CheckInteger, 1, ++/*109523*/ OPC_CheckType, MVT::i32, ++/*109525*/ OPC_MoveParent, ++/*109526*/ OPC_MoveChild, 31, ++/*109528*/ OPC_CheckInteger, 1, ++/*109530*/ OPC_CheckType, MVT::i32, ++/*109532*/ OPC_MoveParent, ++/*109533*/ OPC_CheckType, MVT::v32i8, ++/*109535*/ OPC_MoveParent, ++/*109536*/ OPC_CheckType, MVT::v32i8, ++/*109538*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*109540*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$a), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*109548*/ /*Scope*/ 15|128,5/*655*/, /*->110205*/ ++/*109550*/ OPC_CheckChild0Same, 1, ++/*109552*/ OPC_MoveChild1, ++/*109553*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*109556*/ OPC_CheckChild0Integer, 1, ++/*109558*/ OPC_CheckChild0Type, MVT::i32, ++/*109560*/ OPC_CheckChild1Integer, 1, ++/*109562*/ OPC_CheckChild1Type, MVT::i32, ++/*109564*/ OPC_CheckChild2Integer, 1, ++/*109566*/ OPC_CheckChild2Type, MVT::i32, ++/*109568*/ OPC_CheckChild3Integer, 1, ++/*109570*/ OPC_CheckChild3Type, MVT::i32, ++/*109572*/ OPC_CheckChild4Integer, 1, ++/*109574*/ OPC_CheckChild4Type, MVT::i32, ++/*109576*/ OPC_MoveChild5, ++/*109577*/ OPC_CheckInteger, 1, ++/*109579*/ OPC_CheckType, MVT::i32, ++/*109581*/ OPC_MoveParent, ++/*109582*/ OPC_MoveChild6, ++/*109583*/ OPC_CheckInteger, 1, ++/*109585*/ OPC_CheckType, MVT::i32, ++/*109587*/ OPC_MoveParent, ++/*109588*/ OPC_MoveChild7, ++/*109589*/ OPC_CheckInteger, 1, ++/*109591*/ OPC_CheckType, MVT::i32, ++/*109593*/ OPC_MoveParent, ++/*109594*/ OPC_MoveChild, 8, ++/*109596*/ OPC_CheckInteger, 1, ++/*109598*/ OPC_CheckType, MVT::i32, ++/*109600*/ OPC_MoveParent, ++/*109601*/ OPC_MoveChild, 9, ++/*109603*/ OPC_CheckInteger, 1, ++/*109605*/ OPC_CheckType, MVT::i32, ++/*109607*/ OPC_MoveParent, ++/*109608*/ OPC_MoveChild, 10, ++/*109610*/ OPC_CheckInteger, 1, ++/*109612*/ OPC_CheckType, MVT::i32, ++/*109614*/ OPC_MoveParent, ++/*109615*/ OPC_MoveChild, 11, ++/*109617*/ OPC_CheckInteger, 1, ++/*109619*/ OPC_CheckType, MVT::i32, ++/*109621*/ OPC_MoveParent, ++/*109622*/ OPC_MoveChild, 12, ++/*109624*/ OPC_CheckInteger, 1, ++/*109626*/ OPC_CheckType, MVT::i32, ++/*109628*/ OPC_MoveParent, ++/*109629*/ OPC_MoveChild, 13, ++/*109631*/ OPC_CheckInteger, 1, ++/*109633*/ OPC_CheckType, MVT::i32, ++/*109635*/ OPC_MoveParent, ++/*109636*/ OPC_MoveChild, 14, ++/*109638*/ OPC_CheckInteger, 1, ++/*109640*/ OPC_CheckType, MVT::i32, ++/*109642*/ OPC_MoveParent, ++/*109643*/ OPC_MoveChild, 15, ++/*109645*/ OPC_CheckInteger, 1, ++/*109647*/ OPC_CheckType, MVT::i32, ++/*109649*/ OPC_MoveParent, ++/*109650*/ OPC_MoveChild, 16, ++/*109652*/ OPC_CheckInteger, 1, ++/*109654*/ OPC_CheckType, MVT::i32, ++/*109656*/ OPC_MoveParent, ++/*109657*/ OPC_MoveChild, 17, ++/*109659*/ OPC_CheckInteger, 1, ++/*109661*/ OPC_CheckType, MVT::i32, ++/*109663*/ OPC_MoveParent, ++/*109664*/ OPC_MoveChild, 18, ++/*109666*/ OPC_CheckInteger, 1, ++/*109668*/ OPC_CheckType, MVT::i32, ++/*109670*/ OPC_MoveParent, ++/*109671*/ OPC_MoveChild, 19, ++/*109673*/ OPC_CheckInteger, 1, ++/*109675*/ OPC_CheckType, MVT::i32, ++/*109677*/ OPC_MoveParent, ++/*109678*/ OPC_MoveChild, 20, ++/*109680*/ OPC_CheckInteger, 1, ++/*109682*/ OPC_CheckType, MVT::i32, ++/*109684*/ OPC_MoveParent, ++/*109685*/ OPC_MoveChild, 21, ++/*109687*/ OPC_CheckInteger, 1, ++/*109689*/ OPC_CheckType, MVT::i32, ++/*109691*/ OPC_MoveParent, ++/*109692*/ OPC_MoveChild, 22, ++/*109694*/ OPC_CheckInteger, 1, ++/*109696*/ OPC_CheckType, MVT::i32, ++/*109698*/ OPC_MoveParent, ++/*109699*/ OPC_MoveChild, 23, ++/*109701*/ OPC_CheckInteger, 1, ++/*109703*/ OPC_CheckType, MVT::i32, ++/*109705*/ OPC_MoveParent, ++/*109706*/ OPC_MoveChild, 24, ++/*109708*/ OPC_CheckInteger, 1, ++/*109710*/ OPC_CheckType, MVT::i32, ++/*109712*/ OPC_MoveParent, ++/*109713*/ OPC_MoveChild, 25, ++/*109715*/ OPC_CheckInteger, 1, ++/*109717*/ OPC_CheckType, MVT::i32, ++/*109719*/ OPC_MoveParent, ++/*109720*/ OPC_MoveChild, 26, ++/*109722*/ OPC_CheckInteger, 1, ++/*109724*/ OPC_CheckType, MVT::i32, ++/*109726*/ OPC_MoveParent, ++/*109727*/ OPC_MoveChild, 27, ++/*109729*/ OPC_CheckInteger, 1, ++/*109731*/ OPC_CheckType, MVT::i32, ++/*109733*/ OPC_MoveParent, ++/*109734*/ OPC_MoveChild, 28, ++/*109736*/ OPC_CheckInteger, 1, ++/*109738*/ OPC_CheckType, MVT::i32, ++/*109740*/ OPC_MoveParent, ++/*109741*/ OPC_MoveChild, 29, ++/*109743*/ OPC_CheckInteger, 1, ++/*109745*/ OPC_CheckType, MVT::i32, ++/*109747*/ OPC_MoveParent, ++/*109748*/ OPC_MoveChild, 30, ++/*109750*/ OPC_CheckInteger, 1, ++/*109752*/ OPC_CheckType, MVT::i32, ++/*109754*/ OPC_MoveParent, ++/*109755*/ OPC_MoveChild, 31, ++/*109757*/ OPC_CheckInteger, 1, ++/*109759*/ OPC_CheckType, MVT::i32, ++/*109761*/ OPC_MoveParent, ++/*109762*/ OPC_MoveParent, ++/*109763*/ OPC_MoveParent, ++/*109764*/ OPC_MoveParent, ++/*109765*/ OPC_MoveChild1, ++/*109766*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*109769*/ OPC_CheckChild0Integer, 7, ++/*109771*/ OPC_CheckChild0Type, MVT::i32, ++/*109773*/ OPC_CheckChild1Integer, 7, ++/*109775*/ OPC_CheckChild1Type, MVT::i32, ++/*109777*/ OPC_CheckChild2Integer, 7, ++/*109779*/ OPC_CheckChild2Type, MVT::i32, ++/*109781*/ OPC_CheckChild3Integer, 7, ++/*109783*/ OPC_CheckChild3Type, MVT::i32, ++/*109785*/ OPC_CheckChild4Integer, 7, ++/*109787*/ OPC_CheckChild4Type, MVT::i32, ++/*109789*/ OPC_MoveChild5, ++/*109790*/ OPC_CheckInteger, 7, ++/*109792*/ OPC_CheckType, MVT::i32, ++/*109794*/ OPC_MoveParent, ++/*109795*/ OPC_MoveChild6, ++/*109796*/ OPC_CheckInteger, 7, ++/*109798*/ OPC_CheckType, MVT::i32, ++/*109800*/ OPC_MoveParent, ++/*109801*/ OPC_MoveChild7, ++/*109802*/ OPC_CheckInteger, 7, ++/*109804*/ OPC_CheckType, MVT::i32, ++/*109806*/ OPC_MoveParent, ++/*109807*/ OPC_MoveChild, 8, ++/*109809*/ OPC_CheckInteger, 7, ++/*109811*/ OPC_CheckType, MVT::i32, ++/*109813*/ OPC_MoveParent, ++/*109814*/ OPC_MoveChild, 9, ++/*109816*/ OPC_CheckInteger, 7, ++/*109818*/ OPC_CheckType, MVT::i32, ++/*109820*/ OPC_MoveParent, ++/*109821*/ OPC_MoveChild, 10, ++/*109823*/ OPC_CheckInteger, 7, ++/*109825*/ OPC_CheckType, MVT::i32, ++/*109827*/ OPC_MoveParent, ++/*109828*/ OPC_MoveChild, 11, ++/*109830*/ OPC_CheckInteger, 7, ++/*109832*/ OPC_CheckType, MVT::i32, ++/*109834*/ OPC_MoveParent, ++/*109835*/ OPC_MoveChild, 12, ++/*109837*/ OPC_CheckInteger, 7, ++/*109839*/ OPC_CheckType, MVT::i32, ++/*109841*/ OPC_MoveParent, ++/*109842*/ OPC_MoveChild, 13, ++/*109844*/ OPC_CheckInteger, 7, ++/*109846*/ OPC_CheckType, MVT::i32, ++/*109848*/ OPC_MoveParent, ++/*109849*/ OPC_MoveChild, 14, ++/*109851*/ OPC_CheckInteger, 7, ++/*109853*/ OPC_CheckType, MVT::i32, ++/*109855*/ OPC_MoveParent, ++/*109856*/ OPC_MoveChild, 15, ++/*109858*/ OPC_CheckInteger, 7, ++/*109860*/ OPC_CheckType, MVT::i32, ++/*109862*/ OPC_MoveParent, ++/*109863*/ OPC_MoveChild, 16, ++/*109865*/ OPC_CheckInteger, 7, ++/*109867*/ OPC_CheckType, MVT::i32, ++/*109869*/ OPC_MoveParent, ++/*109870*/ OPC_MoveChild, 17, ++/*109872*/ OPC_CheckInteger, 7, ++/*109874*/ OPC_CheckType, MVT::i32, ++/*109876*/ OPC_MoveParent, ++/*109877*/ OPC_MoveChild, 18, ++/*109879*/ OPC_CheckInteger, 7, ++/*109881*/ OPC_CheckType, MVT::i32, ++/*109883*/ OPC_MoveParent, ++/*109884*/ OPC_MoveChild, 19, ++/*109886*/ OPC_CheckInteger, 7, ++/*109888*/ OPC_CheckType, MVT::i32, ++/*109890*/ OPC_MoveParent, ++/*109891*/ OPC_MoveChild, 20, ++/*109893*/ OPC_CheckInteger, 7, ++/*109895*/ OPC_CheckType, MVT::i32, ++/*109897*/ OPC_MoveParent, ++/*109898*/ OPC_MoveChild, 21, ++/*109900*/ OPC_CheckInteger, 7, ++/*109902*/ OPC_CheckType, MVT::i32, ++/*109904*/ OPC_MoveParent, ++/*109905*/ OPC_MoveChild, 22, ++/*109907*/ OPC_CheckInteger, 7, ++/*109909*/ OPC_CheckType, MVT::i32, ++/*109911*/ OPC_MoveParent, ++/*109912*/ OPC_MoveChild, 23, ++/*109914*/ OPC_CheckInteger, 7, ++/*109916*/ OPC_CheckType, MVT::i32, ++/*109918*/ OPC_MoveParent, ++/*109919*/ OPC_MoveChild, 24, ++/*109921*/ OPC_CheckInteger, 7, ++/*109923*/ OPC_CheckType, MVT::i32, ++/*109925*/ OPC_MoveParent, ++/*109926*/ OPC_MoveChild, 25, ++/*109928*/ OPC_CheckInteger, 7, ++/*109930*/ OPC_CheckType, MVT::i32, ++/*109932*/ OPC_MoveParent, ++/*109933*/ OPC_MoveChild, 26, ++/*109935*/ OPC_CheckInteger, 7, ++/*109937*/ OPC_CheckType, MVT::i32, ++/*109939*/ OPC_MoveParent, ++/*109940*/ OPC_MoveChild, 27, ++/*109942*/ OPC_CheckInteger, 7, ++/*109944*/ OPC_CheckType, MVT::i32, ++/*109946*/ OPC_MoveParent, ++/*109947*/ OPC_MoveChild, 28, ++/*109949*/ OPC_CheckInteger, 7, ++/*109951*/ OPC_CheckType, MVT::i32, ++/*109953*/ OPC_MoveParent, ++/*109954*/ OPC_MoveChild, 29, ++/*109956*/ OPC_CheckInteger, 7, ++/*109958*/ OPC_CheckType, MVT::i32, ++/*109960*/ OPC_MoveParent, ++/*109961*/ OPC_MoveChild, 30, ++/*109963*/ OPC_CheckInteger, 7, ++/*109965*/ OPC_CheckType, MVT::i32, ++/*109967*/ OPC_MoveParent, ++/*109968*/ OPC_MoveChild, 31, ++/*109970*/ OPC_CheckInteger, 7, ++/*109972*/ OPC_CheckType, MVT::i32, ++/*109974*/ OPC_MoveParent, ++/*109975*/ OPC_CheckType, MVT::v32i8, ++/*109977*/ OPC_MoveParent, ++/*109978*/ OPC_MoveParent, ++/*109979*/ OPC_MoveParent, ++/*109980*/ OPC_MoveChild1, ++/*109981*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*109984*/ OPC_CheckChild0Integer, 1, ++/*109986*/ OPC_CheckChild0Type, MVT::i32, ++/*109988*/ OPC_CheckChild1Integer, 1, ++/*109990*/ OPC_CheckChild1Type, MVT::i32, ++/*109992*/ OPC_CheckChild2Integer, 1, ++/*109994*/ OPC_CheckChild2Type, MVT::i32, ++/*109996*/ OPC_CheckChild3Integer, 1, ++/*109998*/ OPC_CheckChild3Type, MVT::i32, ++/*110000*/ OPC_CheckChild4Integer, 1, ++/*110002*/ OPC_CheckChild4Type, MVT::i32, ++/*110004*/ OPC_MoveChild5, ++/*110005*/ OPC_CheckInteger, 1, ++/*110007*/ OPC_CheckType, MVT::i32, ++/*110009*/ OPC_MoveParent, ++/*110010*/ OPC_MoveChild6, ++/*110011*/ OPC_CheckInteger, 1, ++/*110013*/ OPC_CheckType, MVT::i32, ++/*110015*/ OPC_MoveParent, ++/*110016*/ OPC_MoveChild7, ++/*110017*/ OPC_CheckInteger, 1, ++/*110019*/ OPC_CheckType, MVT::i32, ++/*110021*/ OPC_MoveParent, ++/*110022*/ OPC_MoveChild, 8, ++/*110024*/ OPC_CheckInteger, 1, ++/*110026*/ OPC_CheckType, MVT::i32, ++/*110028*/ OPC_MoveParent, ++/*110029*/ OPC_MoveChild, 9, ++/*110031*/ OPC_CheckInteger, 1, ++/*110033*/ OPC_CheckType, MVT::i32, ++/*110035*/ OPC_MoveParent, ++/*110036*/ OPC_MoveChild, 10, ++/*110038*/ OPC_CheckInteger, 1, ++/*110040*/ OPC_CheckType, MVT::i32, ++/*110042*/ OPC_MoveParent, ++/*110043*/ OPC_MoveChild, 11, ++/*110045*/ OPC_CheckInteger, 1, ++/*110047*/ OPC_CheckType, MVT::i32, ++/*110049*/ OPC_MoveParent, ++/*110050*/ OPC_MoveChild, 12, ++/*110052*/ OPC_CheckInteger, 1, ++/*110054*/ OPC_CheckType, MVT::i32, ++/*110056*/ OPC_MoveParent, ++/*110057*/ OPC_MoveChild, 13, ++/*110059*/ OPC_CheckInteger, 1, ++/*110061*/ OPC_CheckType, MVT::i32, ++/*110063*/ OPC_MoveParent, ++/*110064*/ OPC_MoveChild, 14, ++/*110066*/ OPC_CheckInteger, 1, ++/*110068*/ OPC_CheckType, MVT::i32, ++/*110070*/ OPC_MoveParent, ++/*110071*/ OPC_MoveChild, 15, ++/*110073*/ OPC_CheckInteger, 1, ++/*110075*/ OPC_CheckType, MVT::i32, ++/*110077*/ OPC_MoveParent, ++/*110078*/ OPC_MoveChild, 16, ++/*110080*/ OPC_CheckInteger, 1, ++/*110082*/ OPC_CheckType, MVT::i32, ++/*110084*/ OPC_MoveParent, ++/*110085*/ OPC_MoveChild, 17, ++/*110087*/ OPC_CheckInteger, 1, ++/*110089*/ OPC_CheckType, MVT::i32, ++/*110091*/ OPC_MoveParent, ++/*110092*/ OPC_MoveChild, 18, ++/*110094*/ OPC_CheckInteger, 1, ++/*110096*/ OPC_CheckType, MVT::i32, ++/*110098*/ OPC_MoveParent, ++/*110099*/ OPC_MoveChild, 19, ++/*110101*/ OPC_CheckInteger, 1, ++/*110103*/ OPC_CheckType, MVT::i32, ++/*110105*/ OPC_MoveParent, ++/*110106*/ OPC_MoveChild, 20, ++/*110108*/ OPC_CheckInteger, 1, ++/*110110*/ OPC_CheckType, MVT::i32, ++/*110112*/ OPC_MoveParent, ++/*110113*/ OPC_MoveChild, 21, ++/*110115*/ OPC_CheckInteger, 1, ++/*110117*/ OPC_CheckType, MVT::i32, ++/*110119*/ OPC_MoveParent, ++/*110120*/ OPC_MoveChild, 22, ++/*110122*/ OPC_CheckInteger, 1, ++/*110124*/ OPC_CheckType, MVT::i32, ++/*110126*/ OPC_MoveParent, ++/*110127*/ OPC_MoveChild, 23, ++/*110129*/ OPC_CheckInteger, 1, ++/*110131*/ OPC_CheckType, MVT::i32, ++/*110133*/ OPC_MoveParent, ++/*110134*/ OPC_MoveChild, 24, ++/*110136*/ OPC_CheckInteger, 1, ++/*110138*/ OPC_CheckType, MVT::i32, ++/*110140*/ OPC_MoveParent, ++/*110141*/ OPC_MoveChild, 25, ++/*110143*/ OPC_CheckInteger, 1, ++/*110145*/ OPC_CheckType, MVT::i32, ++/*110147*/ OPC_MoveParent, ++/*110148*/ OPC_MoveChild, 26, ++/*110150*/ OPC_CheckInteger, 1, ++/*110152*/ OPC_CheckType, MVT::i32, ++/*110154*/ OPC_MoveParent, ++/*110155*/ OPC_MoveChild, 27, ++/*110157*/ OPC_CheckInteger, 1, ++/*110159*/ OPC_CheckType, MVT::i32, ++/*110161*/ OPC_MoveParent, ++/*110162*/ OPC_MoveChild, 28, ++/*110164*/ OPC_CheckInteger, 1, ++/*110166*/ OPC_CheckType, MVT::i32, ++/*110168*/ OPC_MoveParent, ++/*110169*/ OPC_MoveChild, 29, ++/*110171*/ OPC_CheckInteger, 1, ++/*110173*/ OPC_CheckType, MVT::i32, ++/*110175*/ OPC_MoveParent, ++/*110176*/ OPC_MoveChild, 30, ++/*110178*/ OPC_CheckInteger, 1, ++/*110180*/ OPC_CheckType, MVT::i32, ++/*110182*/ OPC_MoveParent, ++/*110183*/ OPC_MoveChild, 31, ++/*110185*/ OPC_CheckInteger, 1, ++/*110187*/ OPC_CheckType, MVT::i32, ++/*110189*/ OPC_MoveParent, ++/*110190*/ OPC_CheckType, MVT::v32i8, ++/*110192*/ OPC_MoveParent, ++/*110193*/ OPC_CheckType, MVT::v32i8, ++/*110195*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*110197*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$a), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*110205*/ 0, /*End of Scope*/ ++/*110206*/ /*Scope*/ 42|128,10/*1322*/, /*->111530*/ ++/*110208*/ OPC_CheckChild0Same, 1, ++/*110210*/ OPC_MoveChild1, ++/*110211*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*110214*/ OPC_Scope, 15|128,5/*655*/, /*->110872*/ // 2 children in Scope ++/*110217*/ OPC_MoveChild0, ++/*110218*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*110221*/ OPC_CheckChild0Integer, 1, ++/*110223*/ OPC_CheckChild0Type, MVT::i32, ++/*110225*/ OPC_CheckChild1Integer, 1, ++/*110227*/ OPC_CheckChild1Type, MVT::i32, ++/*110229*/ OPC_CheckChild2Integer, 1, ++/*110231*/ OPC_CheckChild2Type, MVT::i32, ++/*110233*/ OPC_CheckChild3Integer, 1, ++/*110235*/ OPC_CheckChild3Type, MVT::i32, ++/*110237*/ OPC_CheckChild4Integer, 1, ++/*110239*/ OPC_CheckChild4Type, MVT::i32, ++/*110241*/ OPC_MoveChild5, ++/*110242*/ OPC_CheckInteger, 1, ++/*110244*/ OPC_CheckType, MVT::i32, ++/*110246*/ OPC_MoveParent, ++/*110247*/ OPC_MoveChild6, ++/*110248*/ OPC_CheckInteger, 1, ++/*110250*/ OPC_CheckType, MVT::i32, ++/*110252*/ OPC_MoveParent, ++/*110253*/ OPC_MoveChild7, ++/*110254*/ OPC_CheckInteger, 1, ++/*110256*/ OPC_CheckType, MVT::i32, ++/*110258*/ OPC_MoveParent, ++/*110259*/ OPC_MoveChild, 8, ++/*110261*/ OPC_CheckInteger, 1, ++/*110263*/ OPC_CheckType, MVT::i32, ++/*110265*/ OPC_MoveParent, ++/*110266*/ OPC_MoveChild, 9, ++/*110268*/ OPC_CheckInteger, 1, ++/*110270*/ OPC_CheckType, MVT::i32, ++/*110272*/ OPC_MoveParent, ++/*110273*/ OPC_MoveChild, 10, ++/*110275*/ OPC_CheckInteger, 1, ++/*110277*/ OPC_CheckType, MVT::i32, ++/*110279*/ OPC_MoveParent, ++/*110280*/ OPC_MoveChild, 11, ++/*110282*/ OPC_CheckInteger, 1, ++/*110284*/ OPC_CheckType, MVT::i32, ++/*110286*/ OPC_MoveParent, ++/*110287*/ OPC_MoveChild, 12, ++/*110289*/ OPC_CheckInteger, 1, ++/*110291*/ OPC_CheckType, MVT::i32, ++/*110293*/ OPC_MoveParent, ++/*110294*/ OPC_MoveChild, 13, ++/*110296*/ OPC_CheckInteger, 1, ++/*110298*/ OPC_CheckType, MVT::i32, ++/*110300*/ OPC_MoveParent, ++/*110301*/ OPC_MoveChild, 14, ++/*110303*/ OPC_CheckInteger, 1, ++/*110305*/ OPC_CheckType, MVT::i32, ++/*110307*/ OPC_MoveParent, ++/*110308*/ OPC_MoveChild, 15, ++/*110310*/ OPC_CheckInteger, 1, ++/*110312*/ OPC_CheckType, MVT::i32, ++/*110314*/ OPC_MoveParent, ++/*110315*/ OPC_MoveChild, 16, ++/*110317*/ OPC_CheckInteger, 1, ++/*110319*/ OPC_CheckType, MVT::i32, ++/*110321*/ OPC_MoveParent, ++/*110322*/ OPC_MoveChild, 17, ++/*110324*/ OPC_CheckInteger, 1, ++/*110326*/ OPC_CheckType, MVT::i32, ++/*110328*/ OPC_MoveParent, ++/*110329*/ OPC_MoveChild, 18, ++/*110331*/ OPC_CheckInteger, 1, ++/*110333*/ OPC_CheckType, MVT::i32, ++/*110335*/ OPC_MoveParent, ++/*110336*/ OPC_MoveChild, 19, ++/*110338*/ OPC_CheckInteger, 1, ++/*110340*/ OPC_CheckType, MVT::i32, ++/*110342*/ OPC_MoveParent, ++/*110343*/ OPC_MoveChild, 20, ++/*110345*/ OPC_CheckInteger, 1, ++/*110347*/ OPC_CheckType, MVT::i32, ++/*110349*/ OPC_MoveParent, ++/*110350*/ OPC_MoveChild, 21, ++/*110352*/ OPC_CheckInteger, 1, ++/*110354*/ OPC_CheckType, MVT::i32, ++/*110356*/ OPC_MoveParent, ++/*110357*/ OPC_MoveChild, 22, ++/*110359*/ OPC_CheckInteger, 1, ++/*110361*/ OPC_CheckType, MVT::i32, ++/*110363*/ OPC_MoveParent, ++/*110364*/ OPC_MoveChild, 23, ++/*110366*/ OPC_CheckInteger, 1, ++/*110368*/ OPC_CheckType, MVT::i32, ++/*110370*/ OPC_MoveParent, ++/*110371*/ OPC_MoveChild, 24, ++/*110373*/ OPC_CheckInteger, 1, ++/*110375*/ OPC_CheckType, MVT::i32, ++/*110377*/ OPC_MoveParent, ++/*110378*/ OPC_MoveChild, 25, ++/*110380*/ OPC_CheckInteger, 1, ++/*110382*/ OPC_CheckType, MVT::i32, ++/*110384*/ OPC_MoveParent, ++/*110385*/ OPC_MoveChild, 26, ++/*110387*/ OPC_CheckInteger, 1, ++/*110389*/ OPC_CheckType, MVT::i32, ++/*110391*/ OPC_MoveParent, ++/*110392*/ OPC_MoveChild, 27, ++/*110394*/ OPC_CheckInteger, 1, ++/*110396*/ OPC_CheckType, MVT::i32, ++/*110398*/ OPC_MoveParent, ++/*110399*/ OPC_MoveChild, 28, ++/*110401*/ OPC_CheckInteger, 1, ++/*110403*/ OPC_CheckType, MVT::i32, ++/*110405*/ OPC_MoveParent, ++/*110406*/ OPC_MoveChild, 29, ++/*110408*/ OPC_CheckInteger, 1, ++/*110410*/ OPC_CheckType, MVT::i32, ++/*110412*/ OPC_MoveParent, ++/*110413*/ OPC_MoveChild, 30, ++/*110415*/ OPC_CheckInteger, 1, ++/*110417*/ OPC_CheckType, MVT::i32, ++/*110419*/ OPC_MoveParent, ++/*110420*/ OPC_MoveChild, 31, ++/*110422*/ OPC_CheckInteger, 1, ++/*110424*/ OPC_CheckType, MVT::i32, ++/*110426*/ OPC_MoveParent, ++/*110427*/ OPC_MoveParent, ++/*110428*/ OPC_CheckChild1Same, 0, ++/*110430*/ OPC_MoveParent, ++/*110431*/ OPC_MoveParent, ++/*110432*/ OPC_MoveChild1, ++/*110433*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*110436*/ OPC_CheckChild0Integer, 7, ++/*110438*/ OPC_CheckChild0Type, MVT::i32, ++/*110440*/ OPC_CheckChild1Integer, 7, ++/*110442*/ OPC_CheckChild1Type, MVT::i32, ++/*110444*/ OPC_CheckChild2Integer, 7, ++/*110446*/ OPC_CheckChild2Type, MVT::i32, ++/*110448*/ OPC_CheckChild3Integer, 7, ++/*110450*/ OPC_CheckChild3Type, MVT::i32, ++/*110452*/ OPC_CheckChild4Integer, 7, ++/*110454*/ OPC_CheckChild4Type, MVT::i32, ++/*110456*/ OPC_MoveChild5, ++/*110457*/ OPC_CheckInteger, 7, ++/*110459*/ OPC_CheckType, MVT::i32, ++/*110461*/ OPC_MoveParent, ++/*110462*/ OPC_MoveChild6, ++/*110463*/ OPC_CheckInteger, 7, ++/*110465*/ OPC_CheckType, MVT::i32, ++/*110467*/ OPC_MoveParent, ++/*110468*/ OPC_MoveChild7, ++/*110469*/ OPC_CheckInteger, 7, ++/*110471*/ OPC_CheckType, MVT::i32, ++/*110473*/ OPC_MoveParent, ++/*110474*/ OPC_MoveChild, 8, ++/*110476*/ OPC_CheckInteger, 7, ++/*110478*/ OPC_CheckType, MVT::i32, ++/*110480*/ OPC_MoveParent, ++/*110481*/ OPC_MoveChild, 9, ++/*110483*/ OPC_CheckInteger, 7, ++/*110485*/ OPC_CheckType, MVT::i32, ++/*110487*/ OPC_MoveParent, ++/*110488*/ OPC_MoveChild, 10, ++/*110490*/ OPC_CheckInteger, 7, ++/*110492*/ OPC_CheckType, MVT::i32, ++/*110494*/ OPC_MoveParent, ++/*110495*/ OPC_MoveChild, 11, ++/*110497*/ OPC_CheckInteger, 7, ++/*110499*/ OPC_CheckType, MVT::i32, ++/*110501*/ OPC_MoveParent, ++/*110502*/ OPC_MoveChild, 12, ++/*110504*/ OPC_CheckInteger, 7, ++/*110506*/ OPC_CheckType, MVT::i32, ++/*110508*/ OPC_MoveParent, ++/*110509*/ OPC_MoveChild, 13, ++/*110511*/ OPC_CheckInteger, 7, ++/*110513*/ OPC_CheckType, MVT::i32, ++/*110515*/ OPC_MoveParent, ++/*110516*/ OPC_MoveChild, 14, ++/*110518*/ OPC_CheckInteger, 7, ++/*110520*/ OPC_CheckType, MVT::i32, ++/*110522*/ OPC_MoveParent, ++/*110523*/ OPC_MoveChild, 15, ++/*110525*/ OPC_CheckInteger, 7, ++/*110527*/ OPC_CheckType, MVT::i32, ++/*110529*/ OPC_MoveParent, ++/*110530*/ OPC_MoveChild, 16, ++/*110532*/ OPC_CheckInteger, 7, ++/*110534*/ OPC_CheckType, MVT::i32, ++/*110536*/ OPC_MoveParent, ++/*110537*/ OPC_MoveChild, 17, ++/*110539*/ OPC_CheckInteger, 7, ++/*110541*/ OPC_CheckType, MVT::i32, ++/*110543*/ OPC_MoveParent, ++/*110544*/ OPC_MoveChild, 18, ++/*110546*/ OPC_CheckInteger, 7, ++/*110548*/ OPC_CheckType, MVT::i32, ++/*110550*/ OPC_MoveParent, ++/*110551*/ OPC_MoveChild, 19, ++/*110553*/ OPC_CheckInteger, 7, ++/*110555*/ OPC_CheckType, MVT::i32, ++/*110557*/ OPC_MoveParent, ++/*110558*/ OPC_MoveChild, 20, ++/*110560*/ OPC_CheckInteger, 7, ++/*110562*/ OPC_CheckType, MVT::i32, ++/*110564*/ OPC_MoveParent, ++/*110565*/ OPC_MoveChild, 21, ++/*110567*/ OPC_CheckInteger, 7, ++/*110569*/ OPC_CheckType, MVT::i32, ++/*110571*/ OPC_MoveParent, ++/*110572*/ OPC_MoveChild, 22, ++/*110574*/ OPC_CheckInteger, 7, ++/*110576*/ OPC_CheckType, MVT::i32, ++/*110578*/ OPC_MoveParent, ++/*110579*/ OPC_MoveChild, 23, ++/*110581*/ OPC_CheckInteger, 7, ++/*110583*/ OPC_CheckType, MVT::i32, ++/*110585*/ OPC_MoveParent, ++/*110586*/ OPC_MoveChild, 24, ++/*110588*/ OPC_CheckInteger, 7, ++/*110590*/ OPC_CheckType, MVT::i32, ++/*110592*/ OPC_MoveParent, ++/*110593*/ OPC_MoveChild, 25, ++/*110595*/ OPC_CheckInteger, 7, ++/*110597*/ OPC_CheckType, MVT::i32, ++/*110599*/ OPC_MoveParent, ++/*110600*/ OPC_MoveChild, 26, ++/*110602*/ OPC_CheckInteger, 7, ++/*110604*/ OPC_CheckType, MVT::i32, ++/*110606*/ OPC_MoveParent, ++/*110607*/ OPC_MoveChild, 27, ++/*110609*/ OPC_CheckInteger, 7, ++/*110611*/ OPC_CheckType, MVT::i32, ++/*110613*/ OPC_MoveParent, ++/*110614*/ OPC_MoveChild, 28, ++/*110616*/ OPC_CheckInteger, 7, ++/*110618*/ OPC_CheckType, MVT::i32, ++/*110620*/ OPC_MoveParent, ++/*110621*/ OPC_MoveChild, 29, ++/*110623*/ OPC_CheckInteger, 7, ++/*110625*/ OPC_CheckType, MVT::i32, ++/*110627*/ OPC_MoveParent, ++/*110628*/ OPC_MoveChild, 30, ++/*110630*/ OPC_CheckInteger, 7, ++/*110632*/ OPC_CheckType, MVT::i32, ++/*110634*/ OPC_MoveParent, ++/*110635*/ OPC_MoveChild, 31, ++/*110637*/ OPC_CheckInteger, 7, ++/*110639*/ OPC_CheckType, MVT::i32, ++/*110641*/ OPC_MoveParent, ++/*110642*/ OPC_CheckType, MVT::v32i8, ++/*110644*/ OPC_MoveParent, ++/*110645*/ OPC_MoveParent, ++/*110646*/ OPC_MoveParent, ++/*110647*/ OPC_MoveChild1, ++/*110648*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*110651*/ OPC_CheckChild0Integer, 1, ++/*110653*/ OPC_CheckChild0Type, MVT::i32, ++/*110655*/ OPC_CheckChild1Integer, 1, ++/*110657*/ OPC_CheckChild1Type, MVT::i32, ++/*110659*/ OPC_CheckChild2Integer, 1, ++/*110661*/ OPC_CheckChild2Type, MVT::i32, ++/*110663*/ OPC_CheckChild3Integer, 1, ++/*110665*/ OPC_CheckChild3Type, MVT::i32, ++/*110667*/ OPC_CheckChild4Integer, 1, ++/*110669*/ OPC_CheckChild4Type, MVT::i32, ++/*110671*/ OPC_MoveChild5, ++/*110672*/ OPC_CheckInteger, 1, ++/*110674*/ OPC_CheckType, MVT::i32, ++/*110676*/ OPC_MoveParent, ++/*110677*/ OPC_MoveChild6, ++/*110678*/ OPC_CheckInteger, 1, ++/*110680*/ OPC_CheckType, MVT::i32, ++/*110682*/ OPC_MoveParent, ++/*110683*/ OPC_MoveChild7, ++/*110684*/ OPC_CheckInteger, 1, ++/*110686*/ OPC_CheckType, MVT::i32, ++/*110688*/ OPC_MoveParent, ++/*110689*/ OPC_MoveChild, 8, ++/*110691*/ OPC_CheckInteger, 1, ++/*110693*/ OPC_CheckType, MVT::i32, ++/*110695*/ OPC_MoveParent, ++/*110696*/ OPC_MoveChild, 9, ++/*110698*/ OPC_CheckInteger, 1, ++/*110700*/ OPC_CheckType, MVT::i32, ++/*110702*/ OPC_MoveParent, ++/*110703*/ OPC_MoveChild, 10, ++/*110705*/ OPC_CheckInteger, 1, ++/*110707*/ OPC_CheckType, MVT::i32, ++/*110709*/ OPC_MoveParent, ++/*110710*/ OPC_MoveChild, 11, ++/*110712*/ OPC_CheckInteger, 1, ++/*110714*/ OPC_CheckType, MVT::i32, ++/*110716*/ OPC_MoveParent, ++/*110717*/ OPC_MoveChild, 12, ++/*110719*/ OPC_CheckInteger, 1, ++/*110721*/ OPC_CheckType, MVT::i32, ++/*110723*/ OPC_MoveParent, ++/*110724*/ OPC_MoveChild, 13, ++/*110726*/ OPC_CheckInteger, 1, ++/*110728*/ OPC_CheckType, MVT::i32, ++/*110730*/ OPC_MoveParent, ++/*110731*/ OPC_MoveChild, 14, ++/*110733*/ OPC_CheckInteger, 1, ++/*110735*/ OPC_CheckType, MVT::i32, ++/*110737*/ OPC_MoveParent, ++/*110738*/ OPC_MoveChild, 15, ++/*110740*/ OPC_CheckInteger, 1, ++/*110742*/ OPC_CheckType, MVT::i32, ++/*110744*/ OPC_MoveParent, ++/*110745*/ OPC_MoveChild, 16, ++/*110747*/ OPC_CheckInteger, 1, ++/*110749*/ OPC_CheckType, MVT::i32, ++/*110751*/ OPC_MoveParent, ++/*110752*/ OPC_MoveChild, 17, ++/*110754*/ OPC_CheckInteger, 1, ++/*110756*/ OPC_CheckType, MVT::i32, ++/*110758*/ OPC_MoveParent, ++/*110759*/ OPC_MoveChild, 18, ++/*110761*/ OPC_CheckInteger, 1, ++/*110763*/ OPC_CheckType, MVT::i32, ++/*110765*/ OPC_MoveParent, ++/*110766*/ OPC_MoveChild, 19, ++/*110768*/ OPC_CheckInteger, 1, ++/*110770*/ OPC_CheckType, MVT::i32, ++/*110772*/ OPC_MoveParent, ++/*110773*/ OPC_MoveChild, 20, ++/*110775*/ OPC_CheckInteger, 1, ++/*110777*/ OPC_CheckType, MVT::i32, ++/*110779*/ OPC_MoveParent, ++/*110780*/ OPC_MoveChild, 21, ++/*110782*/ OPC_CheckInteger, 1, ++/*110784*/ OPC_CheckType, MVT::i32, ++/*110786*/ OPC_MoveParent, ++/*110787*/ OPC_MoveChild, 22, ++/*110789*/ OPC_CheckInteger, 1, ++/*110791*/ OPC_CheckType, MVT::i32, ++/*110793*/ OPC_MoveParent, ++/*110794*/ OPC_MoveChild, 23, ++/*110796*/ OPC_CheckInteger, 1, ++/*110798*/ OPC_CheckType, MVT::i32, ++/*110800*/ OPC_MoveParent, ++/*110801*/ OPC_MoveChild, 24, ++/*110803*/ OPC_CheckInteger, 1, ++/*110805*/ OPC_CheckType, MVT::i32, ++/*110807*/ OPC_MoveParent, ++/*110808*/ OPC_MoveChild, 25, ++/*110810*/ OPC_CheckInteger, 1, ++/*110812*/ OPC_CheckType, MVT::i32, ++/*110814*/ OPC_MoveParent, ++/*110815*/ OPC_MoveChild, 26, ++/*110817*/ OPC_CheckInteger, 1, ++/*110819*/ OPC_CheckType, MVT::i32, ++/*110821*/ OPC_MoveParent, ++/*110822*/ OPC_MoveChild, 27, ++/*110824*/ OPC_CheckInteger, 1, ++/*110826*/ OPC_CheckType, MVT::i32, ++/*110828*/ OPC_MoveParent, ++/*110829*/ OPC_MoveChild, 28, ++/*110831*/ OPC_CheckInteger, 1, ++/*110833*/ OPC_CheckType, MVT::i32, ++/*110835*/ OPC_MoveParent, ++/*110836*/ OPC_MoveChild, 29, ++/*110838*/ OPC_CheckInteger, 1, ++/*110840*/ OPC_CheckType, MVT::i32, ++/*110842*/ OPC_MoveParent, ++/*110843*/ OPC_MoveChild, 30, ++/*110845*/ OPC_CheckInteger, 1, ++/*110847*/ OPC_CheckType, MVT::i32, ++/*110849*/ OPC_MoveParent, ++/*110850*/ OPC_MoveChild, 31, ++/*110852*/ OPC_CheckInteger, 1, ++/*110854*/ OPC_CheckType, MVT::i32, ++/*110856*/ OPC_MoveParent, ++/*110857*/ OPC_CheckType, MVT::v32i8, ++/*110859*/ OPC_MoveParent, ++/*110860*/ OPC_CheckType, MVT::v32i8, ++/*110862*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*110864*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$a), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*110872*/ /*Scope*/ 15|128,5/*655*/, /*->111529*/ ++/*110874*/ OPC_CheckChild0Same, 0, ++/*110876*/ OPC_MoveChild1, ++/*110877*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*110880*/ OPC_CheckChild0Integer, 1, ++/*110882*/ OPC_CheckChild0Type, MVT::i32, ++/*110884*/ OPC_CheckChild1Integer, 1, ++/*110886*/ OPC_CheckChild1Type, MVT::i32, ++/*110888*/ OPC_CheckChild2Integer, 1, ++/*110890*/ OPC_CheckChild2Type, MVT::i32, ++/*110892*/ OPC_CheckChild3Integer, 1, ++/*110894*/ OPC_CheckChild3Type, MVT::i32, ++/*110896*/ OPC_CheckChild4Integer, 1, ++/*110898*/ OPC_CheckChild4Type, MVT::i32, ++/*110900*/ OPC_MoveChild5, ++/*110901*/ OPC_CheckInteger, 1, ++/*110903*/ OPC_CheckType, MVT::i32, ++/*110905*/ OPC_MoveParent, ++/*110906*/ OPC_MoveChild6, ++/*110907*/ OPC_CheckInteger, 1, ++/*110909*/ OPC_CheckType, MVT::i32, ++/*110911*/ OPC_MoveParent, ++/*110912*/ OPC_MoveChild7, ++/*110913*/ OPC_CheckInteger, 1, ++/*110915*/ OPC_CheckType, MVT::i32, ++/*110917*/ OPC_MoveParent, ++/*110918*/ OPC_MoveChild, 8, ++/*110920*/ OPC_CheckInteger, 1, ++/*110922*/ OPC_CheckType, MVT::i32, ++/*110924*/ OPC_MoveParent, ++/*110925*/ OPC_MoveChild, 9, ++/*110927*/ OPC_CheckInteger, 1, ++/*110929*/ OPC_CheckType, MVT::i32, ++/*110931*/ OPC_MoveParent, ++/*110932*/ OPC_MoveChild, 10, ++/*110934*/ OPC_CheckInteger, 1, ++/*110936*/ OPC_CheckType, MVT::i32, ++/*110938*/ OPC_MoveParent, ++/*110939*/ OPC_MoveChild, 11, ++/*110941*/ OPC_CheckInteger, 1, ++/*110943*/ OPC_CheckType, MVT::i32, ++/*110945*/ OPC_MoveParent, ++/*110946*/ OPC_MoveChild, 12, ++/*110948*/ OPC_CheckInteger, 1, ++/*110950*/ OPC_CheckType, MVT::i32, ++/*110952*/ OPC_MoveParent, ++/*110953*/ OPC_MoveChild, 13, ++/*110955*/ OPC_CheckInteger, 1, ++/*110957*/ OPC_CheckType, MVT::i32, ++/*110959*/ OPC_MoveParent, ++/*110960*/ OPC_MoveChild, 14, ++/*110962*/ OPC_CheckInteger, 1, ++/*110964*/ OPC_CheckType, MVT::i32, ++/*110966*/ OPC_MoveParent, ++/*110967*/ OPC_MoveChild, 15, ++/*110969*/ OPC_CheckInteger, 1, ++/*110971*/ OPC_CheckType, MVT::i32, ++/*110973*/ OPC_MoveParent, ++/*110974*/ OPC_MoveChild, 16, ++/*110976*/ OPC_CheckInteger, 1, ++/*110978*/ OPC_CheckType, MVT::i32, ++/*110980*/ OPC_MoveParent, ++/*110981*/ OPC_MoveChild, 17, ++/*110983*/ OPC_CheckInteger, 1, ++/*110985*/ OPC_CheckType, MVT::i32, ++/*110987*/ OPC_MoveParent, ++/*110988*/ OPC_MoveChild, 18, ++/*110990*/ OPC_CheckInteger, 1, ++/*110992*/ OPC_CheckType, MVT::i32, ++/*110994*/ OPC_MoveParent, ++/*110995*/ OPC_MoveChild, 19, ++/*110997*/ OPC_CheckInteger, 1, ++/*110999*/ OPC_CheckType, MVT::i32, ++/*111001*/ OPC_MoveParent, ++/*111002*/ OPC_MoveChild, 20, ++/*111004*/ OPC_CheckInteger, 1, ++/*111006*/ OPC_CheckType, MVT::i32, ++/*111008*/ OPC_MoveParent, ++/*111009*/ OPC_MoveChild, 21, ++/*111011*/ OPC_CheckInteger, 1, ++/*111013*/ OPC_CheckType, MVT::i32, ++/*111015*/ OPC_MoveParent, ++/*111016*/ OPC_MoveChild, 22, ++/*111018*/ OPC_CheckInteger, 1, ++/*111020*/ OPC_CheckType, MVT::i32, ++/*111022*/ OPC_MoveParent, ++/*111023*/ OPC_MoveChild, 23, ++/*111025*/ OPC_CheckInteger, 1, ++/*111027*/ OPC_CheckType, MVT::i32, ++/*111029*/ OPC_MoveParent, ++/*111030*/ OPC_MoveChild, 24, ++/*111032*/ OPC_CheckInteger, 1, ++/*111034*/ OPC_CheckType, MVT::i32, ++/*111036*/ OPC_MoveParent, ++/*111037*/ OPC_MoveChild, 25, ++/*111039*/ OPC_CheckInteger, 1, ++/*111041*/ OPC_CheckType, MVT::i32, ++/*111043*/ OPC_MoveParent, ++/*111044*/ OPC_MoveChild, 26, ++/*111046*/ OPC_CheckInteger, 1, ++/*111048*/ OPC_CheckType, MVT::i32, ++/*111050*/ OPC_MoveParent, ++/*111051*/ OPC_MoveChild, 27, ++/*111053*/ OPC_CheckInteger, 1, ++/*111055*/ OPC_CheckType, MVT::i32, ++/*111057*/ OPC_MoveParent, ++/*111058*/ OPC_MoveChild, 28, ++/*111060*/ OPC_CheckInteger, 1, ++/*111062*/ OPC_CheckType, MVT::i32, ++/*111064*/ OPC_MoveParent, ++/*111065*/ OPC_MoveChild, 29, ++/*111067*/ OPC_CheckInteger, 1, ++/*111069*/ OPC_CheckType, MVT::i32, ++/*111071*/ OPC_MoveParent, ++/*111072*/ OPC_MoveChild, 30, ++/*111074*/ OPC_CheckInteger, 1, ++/*111076*/ OPC_CheckType, MVT::i32, ++/*111078*/ OPC_MoveParent, ++/*111079*/ OPC_MoveChild, 31, ++/*111081*/ OPC_CheckInteger, 1, ++/*111083*/ OPC_CheckType, MVT::i32, ++/*111085*/ OPC_MoveParent, ++/*111086*/ OPC_MoveParent, ++/*111087*/ OPC_MoveParent, ++/*111088*/ OPC_MoveParent, ++/*111089*/ OPC_MoveChild1, ++/*111090*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*111093*/ OPC_CheckChild0Integer, 7, ++/*111095*/ OPC_CheckChild0Type, MVT::i32, ++/*111097*/ OPC_CheckChild1Integer, 7, ++/*111099*/ OPC_CheckChild1Type, MVT::i32, ++/*111101*/ OPC_CheckChild2Integer, 7, ++/*111103*/ OPC_CheckChild2Type, MVT::i32, ++/*111105*/ OPC_CheckChild3Integer, 7, ++/*111107*/ OPC_CheckChild3Type, MVT::i32, ++/*111109*/ OPC_CheckChild4Integer, 7, ++/*111111*/ OPC_CheckChild4Type, MVT::i32, ++/*111113*/ OPC_MoveChild5, ++/*111114*/ OPC_CheckInteger, 7, ++/*111116*/ OPC_CheckType, MVT::i32, ++/*111118*/ OPC_MoveParent, ++/*111119*/ OPC_MoveChild6, ++/*111120*/ OPC_CheckInteger, 7, ++/*111122*/ OPC_CheckType, MVT::i32, ++/*111124*/ OPC_MoveParent, ++/*111125*/ OPC_MoveChild7, ++/*111126*/ OPC_CheckInteger, 7, ++/*111128*/ OPC_CheckType, MVT::i32, ++/*111130*/ OPC_MoveParent, ++/*111131*/ OPC_MoveChild, 8, ++/*111133*/ OPC_CheckInteger, 7, ++/*111135*/ OPC_CheckType, MVT::i32, ++/*111137*/ OPC_MoveParent, ++/*111138*/ OPC_MoveChild, 9, ++/*111140*/ OPC_CheckInteger, 7, ++/*111142*/ OPC_CheckType, MVT::i32, ++/*111144*/ OPC_MoveParent, ++/*111145*/ OPC_MoveChild, 10, ++/*111147*/ OPC_CheckInteger, 7, ++/*111149*/ OPC_CheckType, MVT::i32, ++/*111151*/ OPC_MoveParent, ++/*111152*/ OPC_MoveChild, 11, ++/*111154*/ OPC_CheckInteger, 7, ++/*111156*/ OPC_CheckType, MVT::i32, ++/*111158*/ OPC_MoveParent, ++/*111159*/ OPC_MoveChild, 12, ++/*111161*/ OPC_CheckInteger, 7, ++/*111163*/ OPC_CheckType, MVT::i32, ++/*111165*/ OPC_MoveParent, ++/*111166*/ OPC_MoveChild, 13, ++/*111168*/ OPC_CheckInteger, 7, ++/*111170*/ OPC_CheckType, MVT::i32, ++/*111172*/ OPC_MoveParent, ++/*111173*/ OPC_MoveChild, 14, ++/*111175*/ OPC_CheckInteger, 7, ++/*111177*/ OPC_CheckType, MVT::i32, ++/*111179*/ OPC_MoveParent, ++/*111180*/ OPC_MoveChild, 15, ++/*111182*/ OPC_CheckInteger, 7, ++/*111184*/ OPC_CheckType, MVT::i32, ++/*111186*/ OPC_MoveParent, ++/*111187*/ OPC_MoveChild, 16, ++/*111189*/ OPC_CheckInteger, 7, ++/*111191*/ OPC_CheckType, MVT::i32, ++/*111193*/ OPC_MoveParent, ++/*111194*/ OPC_MoveChild, 17, ++/*111196*/ OPC_CheckInteger, 7, ++/*111198*/ OPC_CheckType, MVT::i32, ++/*111200*/ OPC_MoveParent, ++/*111201*/ OPC_MoveChild, 18, ++/*111203*/ OPC_CheckInteger, 7, ++/*111205*/ OPC_CheckType, MVT::i32, ++/*111207*/ OPC_MoveParent, ++/*111208*/ OPC_MoveChild, 19, ++/*111210*/ OPC_CheckInteger, 7, ++/*111212*/ OPC_CheckType, MVT::i32, ++/*111214*/ OPC_MoveParent, ++/*111215*/ OPC_MoveChild, 20, ++/*111217*/ OPC_CheckInteger, 7, ++/*111219*/ OPC_CheckType, MVT::i32, ++/*111221*/ OPC_MoveParent, ++/*111222*/ OPC_MoveChild, 21, ++/*111224*/ OPC_CheckInteger, 7, ++/*111226*/ OPC_CheckType, MVT::i32, ++/*111228*/ OPC_MoveParent, ++/*111229*/ OPC_MoveChild, 22, ++/*111231*/ OPC_CheckInteger, 7, ++/*111233*/ OPC_CheckType, MVT::i32, ++/*111235*/ OPC_MoveParent, ++/*111236*/ OPC_MoveChild, 23, ++/*111238*/ OPC_CheckInteger, 7, ++/*111240*/ OPC_CheckType, MVT::i32, ++/*111242*/ OPC_MoveParent, ++/*111243*/ OPC_MoveChild, 24, ++/*111245*/ OPC_CheckInteger, 7, ++/*111247*/ OPC_CheckType, MVT::i32, ++/*111249*/ OPC_MoveParent, ++/*111250*/ OPC_MoveChild, 25, ++/*111252*/ OPC_CheckInteger, 7, ++/*111254*/ OPC_CheckType, MVT::i32, ++/*111256*/ OPC_MoveParent, ++/*111257*/ OPC_MoveChild, 26, ++/*111259*/ OPC_CheckInteger, 7, ++/*111261*/ OPC_CheckType, MVT::i32, ++/*111263*/ OPC_MoveParent, ++/*111264*/ OPC_MoveChild, 27, ++/*111266*/ OPC_CheckInteger, 7, ++/*111268*/ OPC_CheckType, MVT::i32, ++/*111270*/ OPC_MoveParent, ++/*111271*/ OPC_MoveChild, 28, ++/*111273*/ OPC_CheckInteger, 7, ++/*111275*/ OPC_CheckType, MVT::i32, ++/*111277*/ OPC_MoveParent, ++/*111278*/ OPC_MoveChild, 29, ++/*111280*/ OPC_CheckInteger, 7, ++/*111282*/ OPC_CheckType, MVT::i32, ++/*111284*/ OPC_MoveParent, ++/*111285*/ OPC_MoveChild, 30, ++/*111287*/ OPC_CheckInteger, 7, ++/*111289*/ OPC_CheckType, MVT::i32, ++/*111291*/ OPC_MoveParent, ++/*111292*/ OPC_MoveChild, 31, ++/*111294*/ OPC_CheckInteger, 7, ++/*111296*/ OPC_CheckType, MVT::i32, ++/*111298*/ OPC_MoveParent, ++/*111299*/ OPC_CheckType, MVT::v32i8, ++/*111301*/ OPC_MoveParent, ++/*111302*/ OPC_MoveParent, ++/*111303*/ OPC_MoveParent, ++/*111304*/ OPC_MoveChild1, ++/*111305*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*111308*/ OPC_CheckChild0Integer, 1, ++/*111310*/ OPC_CheckChild0Type, MVT::i32, ++/*111312*/ OPC_CheckChild1Integer, 1, ++/*111314*/ OPC_CheckChild1Type, MVT::i32, ++/*111316*/ OPC_CheckChild2Integer, 1, ++/*111318*/ OPC_CheckChild2Type, MVT::i32, ++/*111320*/ OPC_CheckChild3Integer, 1, ++/*111322*/ OPC_CheckChild3Type, MVT::i32, ++/*111324*/ OPC_CheckChild4Integer, 1, ++/*111326*/ OPC_CheckChild4Type, MVT::i32, ++/*111328*/ OPC_MoveChild5, ++/*111329*/ OPC_CheckInteger, 1, ++/*111331*/ OPC_CheckType, MVT::i32, ++/*111333*/ OPC_MoveParent, ++/*111334*/ OPC_MoveChild6, ++/*111335*/ OPC_CheckInteger, 1, ++/*111337*/ OPC_CheckType, MVT::i32, ++/*111339*/ OPC_MoveParent, ++/*111340*/ OPC_MoveChild7, ++/*111341*/ OPC_CheckInteger, 1, ++/*111343*/ OPC_CheckType, MVT::i32, ++/*111345*/ OPC_MoveParent, ++/*111346*/ OPC_MoveChild, 8, ++/*111348*/ OPC_CheckInteger, 1, ++/*111350*/ OPC_CheckType, MVT::i32, ++/*111352*/ OPC_MoveParent, ++/*111353*/ OPC_MoveChild, 9, ++/*111355*/ OPC_CheckInteger, 1, ++/*111357*/ OPC_CheckType, MVT::i32, ++/*111359*/ OPC_MoveParent, ++/*111360*/ OPC_MoveChild, 10, ++/*111362*/ OPC_CheckInteger, 1, ++/*111364*/ OPC_CheckType, MVT::i32, ++/*111366*/ OPC_MoveParent, ++/*111367*/ OPC_MoveChild, 11, ++/*111369*/ OPC_CheckInteger, 1, ++/*111371*/ OPC_CheckType, MVT::i32, ++/*111373*/ OPC_MoveParent, ++/*111374*/ OPC_MoveChild, 12, ++/*111376*/ OPC_CheckInteger, 1, ++/*111378*/ OPC_CheckType, MVT::i32, ++/*111380*/ OPC_MoveParent, ++/*111381*/ OPC_MoveChild, 13, ++/*111383*/ OPC_CheckInteger, 1, ++/*111385*/ OPC_CheckType, MVT::i32, ++/*111387*/ OPC_MoveParent, ++/*111388*/ OPC_MoveChild, 14, ++/*111390*/ OPC_CheckInteger, 1, ++/*111392*/ OPC_CheckType, MVT::i32, ++/*111394*/ OPC_MoveParent, ++/*111395*/ OPC_MoveChild, 15, ++/*111397*/ OPC_CheckInteger, 1, ++/*111399*/ OPC_CheckType, MVT::i32, ++/*111401*/ OPC_MoveParent, ++/*111402*/ OPC_MoveChild, 16, ++/*111404*/ OPC_CheckInteger, 1, ++/*111406*/ OPC_CheckType, MVT::i32, ++/*111408*/ OPC_MoveParent, ++/*111409*/ OPC_MoveChild, 17, ++/*111411*/ OPC_CheckInteger, 1, ++/*111413*/ OPC_CheckType, MVT::i32, ++/*111415*/ OPC_MoveParent, ++/*111416*/ OPC_MoveChild, 18, ++/*111418*/ OPC_CheckInteger, 1, ++/*111420*/ OPC_CheckType, MVT::i32, ++/*111422*/ OPC_MoveParent, ++/*111423*/ OPC_MoveChild, 19, ++/*111425*/ OPC_CheckInteger, 1, ++/*111427*/ OPC_CheckType, MVT::i32, ++/*111429*/ OPC_MoveParent, ++/*111430*/ OPC_MoveChild, 20, ++/*111432*/ OPC_CheckInteger, 1, ++/*111434*/ OPC_CheckType, MVT::i32, ++/*111436*/ OPC_MoveParent, ++/*111437*/ OPC_MoveChild, 21, ++/*111439*/ OPC_CheckInteger, 1, ++/*111441*/ OPC_CheckType, MVT::i32, ++/*111443*/ OPC_MoveParent, ++/*111444*/ OPC_MoveChild, 22, ++/*111446*/ OPC_CheckInteger, 1, ++/*111448*/ OPC_CheckType, MVT::i32, ++/*111450*/ OPC_MoveParent, ++/*111451*/ OPC_MoveChild, 23, ++/*111453*/ OPC_CheckInteger, 1, ++/*111455*/ OPC_CheckType, MVT::i32, ++/*111457*/ OPC_MoveParent, ++/*111458*/ OPC_MoveChild, 24, ++/*111460*/ OPC_CheckInteger, 1, ++/*111462*/ OPC_CheckType, MVT::i32, ++/*111464*/ OPC_MoveParent, ++/*111465*/ OPC_MoveChild, 25, ++/*111467*/ OPC_CheckInteger, 1, ++/*111469*/ OPC_CheckType, MVT::i32, ++/*111471*/ OPC_MoveParent, ++/*111472*/ OPC_MoveChild, 26, ++/*111474*/ OPC_CheckInteger, 1, ++/*111476*/ OPC_CheckType, MVT::i32, ++/*111478*/ OPC_MoveParent, ++/*111479*/ OPC_MoveChild, 27, ++/*111481*/ OPC_CheckInteger, 1, ++/*111483*/ OPC_CheckType, MVT::i32, ++/*111485*/ OPC_MoveParent, ++/*111486*/ OPC_MoveChild, 28, ++/*111488*/ OPC_CheckInteger, 1, ++/*111490*/ OPC_CheckType, MVT::i32, ++/*111492*/ OPC_MoveParent, ++/*111493*/ OPC_MoveChild, 29, ++/*111495*/ OPC_CheckInteger, 1, ++/*111497*/ OPC_CheckType, MVT::i32, ++/*111499*/ OPC_MoveParent, ++/*111500*/ OPC_MoveChild, 30, ++/*111502*/ OPC_CheckInteger, 1, ++/*111504*/ OPC_CheckType, MVT::i32, ++/*111506*/ OPC_MoveParent, ++/*111507*/ OPC_MoveChild, 31, ++/*111509*/ OPC_CheckInteger, 1, ++/*111511*/ OPC_CheckType, MVT::i32, ++/*111513*/ OPC_MoveParent, ++/*111514*/ OPC_CheckType, MVT::v32i8, ++/*111516*/ OPC_MoveParent, ++/*111517*/ OPC_CheckType, MVT::v32i8, ++/*111519*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*111521*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$a), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*111529*/ 0, /*End of Scope*/ ++/*111530*/ /*Scope*/ 89|128,8/*1113*/, /*->112645*/ ++/*111532*/ OPC_MoveChild0, ++/*111533*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*111536*/ OPC_CheckChild0Integer, 1, ++/*111538*/ OPC_CheckChild0Type, MVT::i32, ++/*111540*/ OPC_CheckChild1Integer, 1, ++/*111542*/ OPC_CheckChild1Type, MVT::i32, ++/*111544*/ OPC_CheckChild2Integer, 1, ++/*111546*/ OPC_CheckChild2Type, MVT::i32, ++/*111548*/ OPC_CheckChild3Integer, 1, ++/*111550*/ OPC_CheckChild3Type, MVT::i32, ++/*111552*/ OPC_CheckChild4Integer, 1, ++/*111554*/ OPC_CheckChild4Type, MVT::i32, ++/*111556*/ OPC_MoveChild5, ++/*111557*/ OPC_CheckInteger, 1, ++/*111559*/ OPC_CheckType, MVT::i32, ++/*111561*/ OPC_MoveParent, ++/*111562*/ OPC_MoveChild6, ++/*111563*/ OPC_CheckInteger, 1, ++/*111565*/ OPC_CheckType, MVT::i32, ++/*111567*/ OPC_MoveParent, ++/*111568*/ OPC_MoveChild7, ++/*111569*/ OPC_CheckInteger, 1, ++/*111571*/ OPC_CheckType, MVT::i32, ++/*111573*/ OPC_MoveParent, ++/*111574*/ OPC_MoveChild, 8, ++/*111576*/ OPC_CheckInteger, 1, ++/*111578*/ OPC_CheckType, MVT::i32, ++/*111580*/ OPC_MoveParent, ++/*111581*/ OPC_MoveChild, 9, ++/*111583*/ OPC_CheckInteger, 1, ++/*111585*/ OPC_CheckType, MVT::i32, ++/*111587*/ OPC_MoveParent, ++/*111588*/ OPC_MoveChild, 10, ++/*111590*/ OPC_CheckInteger, 1, ++/*111592*/ OPC_CheckType, MVT::i32, ++/*111594*/ OPC_MoveParent, ++/*111595*/ OPC_MoveChild, 11, ++/*111597*/ OPC_CheckInteger, 1, ++/*111599*/ OPC_CheckType, MVT::i32, ++/*111601*/ OPC_MoveParent, ++/*111602*/ OPC_MoveChild, 12, ++/*111604*/ OPC_CheckInteger, 1, ++/*111606*/ OPC_CheckType, MVT::i32, ++/*111608*/ OPC_MoveParent, ++/*111609*/ OPC_MoveChild, 13, ++/*111611*/ OPC_CheckInteger, 1, ++/*111613*/ OPC_CheckType, MVT::i32, ++/*111615*/ OPC_MoveParent, ++/*111616*/ OPC_MoveChild, 14, ++/*111618*/ OPC_CheckInteger, 1, ++/*111620*/ OPC_CheckType, MVT::i32, ++/*111622*/ OPC_MoveParent, ++/*111623*/ OPC_MoveChild, 15, ++/*111625*/ OPC_CheckInteger, 1, ++/*111627*/ OPC_CheckType, MVT::i32, ++/*111629*/ OPC_MoveParent, ++/*111630*/ OPC_MoveChild, 16, ++/*111632*/ OPC_CheckInteger, 1, ++/*111634*/ OPC_CheckType, MVT::i32, ++/*111636*/ OPC_MoveParent, ++/*111637*/ OPC_MoveChild, 17, ++/*111639*/ OPC_CheckInteger, 1, ++/*111641*/ OPC_CheckType, MVT::i32, ++/*111643*/ OPC_MoveParent, ++/*111644*/ OPC_MoveChild, 18, ++/*111646*/ OPC_CheckInteger, 1, ++/*111648*/ OPC_CheckType, MVT::i32, ++/*111650*/ OPC_MoveParent, ++/*111651*/ OPC_MoveChild, 19, ++/*111653*/ OPC_CheckInteger, 1, ++/*111655*/ OPC_CheckType, MVT::i32, ++/*111657*/ OPC_MoveParent, ++/*111658*/ OPC_MoveChild, 20, ++/*111660*/ OPC_CheckInteger, 1, ++/*111662*/ OPC_CheckType, MVT::i32, ++/*111664*/ OPC_MoveParent, ++/*111665*/ OPC_MoveChild, 21, ++/*111667*/ OPC_CheckInteger, 1, ++/*111669*/ OPC_CheckType, MVT::i32, ++/*111671*/ OPC_MoveParent, ++/*111672*/ OPC_MoveChild, 22, ++/*111674*/ OPC_CheckInteger, 1, ++/*111676*/ OPC_CheckType, MVT::i32, ++/*111678*/ OPC_MoveParent, ++/*111679*/ OPC_MoveChild, 23, ++/*111681*/ OPC_CheckInteger, 1, ++/*111683*/ OPC_CheckType, MVT::i32, ++/*111685*/ OPC_MoveParent, ++/*111686*/ OPC_MoveChild, 24, ++/*111688*/ OPC_CheckInteger, 1, ++/*111690*/ OPC_CheckType, MVT::i32, ++/*111692*/ OPC_MoveParent, ++/*111693*/ OPC_MoveChild, 25, ++/*111695*/ OPC_CheckInteger, 1, ++/*111697*/ OPC_CheckType, MVT::i32, ++/*111699*/ OPC_MoveParent, ++/*111700*/ OPC_MoveChild, 26, ++/*111702*/ OPC_CheckInteger, 1, ++/*111704*/ OPC_CheckType, MVT::i32, ++/*111706*/ OPC_MoveParent, ++/*111707*/ OPC_MoveChild, 27, ++/*111709*/ OPC_CheckInteger, 1, ++/*111711*/ OPC_CheckType, MVT::i32, ++/*111713*/ OPC_MoveParent, ++/*111714*/ OPC_MoveChild, 28, ++/*111716*/ OPC_CheckInteger, 1, ++/*111718*/ OPC_CheckType, MVT::i32, ++/*111720*/ OPC_MoveParent, ++/*111721*/ OPC_MoveChild, 29, ++/*111723*/ OPC_CheckInteger, 1, ++/*111725*/ OPC_CheckType, MVT::i32, ++/*111727*/ OPC_MoveParent, ++/*111728*/ OPC_MoveChild, 30, ++/*111730*/ OPC_CheckInteger, 1, ++/*111732*/ OPC_CheckType, MVT::i32, ++/*111734*/ OPC_MoveParent, ++/*111735*/ OPC_MoveChild, 31, ++/*111737*/ OPC_CheckInteger, 1, ++/*111739*/ OPC_CheckType, MVT::i32, ++/*111741*/ OPC_MoveParent, ++/*111742*/ OPC_MoveParent, ++/*111743*/ OPC_MoveChild1, ++/*111744*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*111747*/ OPC_Scope, 62|128,3/*446*/, /*->112196*/ // 2 children in Scope ++/*111750*/ OPC_CheckChild0Same, 1, ++/*111752*/ OPC_CheckChild1Same, 0, ++/*111754*/ OPC_MoveParent, ++/*111755*/ OPC_MoveParent, ++/*111756*/ OPC_MoveChild1, ++/*111757*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*111760*/ OPC_CheckChild0Integer, 7, ++/*111762*/ OPC_CheckChild0Type, MVT::i32, ++/*111764*/ OPC_CheckChild1Integer, 7, ++/*111766*/ OPC_CheckChild1Type, MVT::i32, ++/*111768*/ OPC_CheckChild2Integer, 7, ++/*111770*/ OPC_CheckChild2Type, MVT::i32, ++/*111772*/ OPC_CheckChild3Integer, 7, ++/*111774*/ OPC_CheckChild3Type, MVT::i32, ++/*111776*/ OPC_CheckChild4Integer, 7, ++/*111778*/ OPC_CheckChild4Type, MVT::i32, ++/*111780*/ OPC_MoveChild5, ++/*111781*/ OPC_CheckInteger, 7, ++/*111783*/ OPC_CheckType, MVT::i32, ++/*111785*/ OPC_MoveParent, ++/*111786*/ OPC_MoveChild6, ++/*111787*/ OPC_CheckInteger, 7, ++/*111789*/ OPC_CheckType, MVT::i32, ++/*111791*/ OPC_MoveParent, ++/*111792*/ OPC_MoveChild7, ++/*111793*/ OPC_CheckInteger, 7, ++/*111795*/ OPC_CheckType, MVT::i32, ++/*111797*/ OPC_MoveParent, ++/*111798*/ OPC_MoveChild, 8, ++/*111800*/ OPC_CheckInteger, 7, ++/*111802*/ OPC_CheckType, MVT::i32, ++/*111804*/ OPC_MoveParent, ++/*111805*/ OPC_MoveChild, 9, ++/*111807*/ OPC_CheckInteger, 7, ++/*111809*/ OPC_CheckType, MVT::i32, ++/*111811*/ OPC_MoveParent, ++/*111812*/ OPC_MoveChild, 10, ++/*111814*/ OPC_CheckInteger, 7, ++/*111816*/ OPC_CheckType, MVT::i32, ++/*111818*/ OPC_MoveParent, ++/*111819*/ OPC_MoveChild, 11, ++/*111821*/ OPC_CheckInteger, 7, ++/*111823*/ OPC_CheckType, MVT::i32, ++/*111825*/ OPC_MoveParent, ++/*111826*/ OPC_MoveChild, 12, ++/*111828*/ OPC_CheckInteger, 7, ++/*111830*/ OPC_CheckType, MVT::i32, ++/*111832*/ OPC_MoveParent, ++/*111833*/ OPC_MoveChild, 13, ++/*111835*/ OPC_CheckInteger, 7, ++/*111837*/ OPC_CheckType, MVT::i32, ++/*111839*/ OPC_MoveParent, ++/*111840*/ OPC_MoveChild, 14, ++/*111842*/ OPC_CheckInteger, 7, ++/*111844*/ OPC_CheckType, MVT::i32, ++/*111846*/ OPC_MoveParent, ++/*111847*/ OPC_MoveChild, 15, ++/*111849*/ OPC_CheckInteger, 7, ++/*111851*/ OPC_CheckType, MVT::i32, ++/*111853*/ OPC_MoveParent, ++/*111854*/ OPC_MoveChild, 16, ++/*111856*/ OPC_CheckInteger, 7, ++/*111858*/ OPC_CheckType, MVT::i32, ++/*111860*/ OPC_MoveParent, ++/*111861*/ OPC_MoveChild, 17, ++/*111863*/ OPC_CheckInteger, 7, ++/*111865*/ OPC_CheckType, MVT::i32, ++/*111867*/ OPC_MoveParent, ++/*111868*/ OPC_MoveChild, 18, ++/*111870*/ OPC_CheckInteger, 7, ++/*111872*/ OPC_CheckType, MVT::i32, ++/*111874*/ OPC_MoveParent, ++/*111875*/ OPC_MoveChild, 19, ++/*111877*/ OPC_CheckInteger, 7, ++/*111879*/ OPC_CheckType, MVT::i32, ++/*111881*/ OPC_MoveParent, ++/*111882*/ OPC_MoveChild, 20, ++/*111884*/ OPC_CheckInteger, 7, ++/*111886*/ OPC_CheckType, MVT::i32, ++/*111888*/ OPC_MoveParent, ++/*111889*/ OPC_MoveChild, 21, ++/*111891*/ OPC_CheckInteger, 7, ++/*111893*/ OPC_CheckType, MVT::i32, ++/*111895*/ OPC_MoveParent, ++/*111896*/ OPC_MoveChild, 22, ++/*111898*/ OPC_CheckInteger, 7, ++/*111900*/ OPC_CheckType, MVT::i32, ++/*111902*/ OPC_MoveParent, ++/*111903*/ OPC_MoveChild, 23, ++/*111905*/ OPC_CheckInteger, 7, ++/*111907*/ OPC_CheckType, MVT::i32, ++/*111909*/ OPC_MoveParent, ++/*111910*/ OPC_MoveChild, 24, ++/*111912*/ OPC_CheckInteger, 7, ++/*111914*/ OPC_CheckType, MVT::i32, ++/*111916*/ OPC_MoveParent, ++/*111917*/ OPC_MoveChild, 25, ++/*111919*/ OPC_CheckInteger, 7, ++/*111921*/ OPC_CheckType, MVT::i32, ++/*111923*/ OPC_MoveParent, ++/*111924*/ OPC_MoveChild, 26, ++/*111926*/ OPC_CheckInteger, 7, ++/*111928*/ OPC_CheckType, MVT::i32, ++/*111930*/ OPC_MoveParent, ++/*111931*/ OPC_MoveChild, 27, ++/*111933*/ OPC_CheckInteger, 7, ++/*111935*/ OPC_CheckType, MVT::i32, ++/*111937*/ OPC_MoveParent, ++/*111938*/ OPC_MoveChild, 28, ++/*111940*/ OPC_CheckInteger, 7, ++/*111942*/ OPC_CheckType, MVT::i32, ++/*111944*/ OPC_MoveParent, ++/*111945*/ OPC_MoveChild, 29, ++/*111947*/ OPC_CheckInteger, 7, ++/*111949*/ OPC_CheckType, MVT::i32, ++/*111951*/ OPC_MoveParent, ++/*111952*/ OPC_MoveChild, 30, ++/*111954*/ OPC_CheckInteger, 7, ++/*111956*/ OPC_CheckType, MVT::i32, ++/*111958*/ OPC_MoveParent, ++/*111959*/ OPC_MoveChild, 31, ++/*111961*/ OPC_CheckInteger, 7, ++/*111963*/ OPC_CheckType, MVT::i32, ++/*111965*/ OPC_MoveParent, ++/*111966*/ OPC_CheckType, MVT::v32i8, ++/*111968*/ OPC_MoveParent, ++/*111969*/ OPC_MoveParent, ++/*111970*/ OPC_MoveParent, ++/*111971*/ OPC_MoveChild1, ++/*111972*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*111975*/ OPC_CheckChild0Integer, 1, ++/*111977*/ OPC_CheckChild0Type, MVT::i32, ++/*111979*/ OPC_CheckChild1Integer, 1, ++/*111981*/ OPC_CheckChild1Type, MVT::i32, ++/*111983*/ OPC_CheckChild2Integer, 1, ++/*111985*/ OPC_CheckChild2Type, MVT::i32, ++/*111987*/ OPC_CheckChild3Integer, 1, ++/*111989*/ OPC_CheckChild3Type, MVT::i32, ++/*111991*/ OPC_CheckChild4Integer, 1, ++/*111993*/ OPC_CheckChild4Type, MVT::i32, ++/*111995*/ OPC_MoveChild5, ++/*111996*/ OPC_CheckInteger, 1, ++/*111998*/ OPC_CheckType, MVT::i32, ++/*112000*/ OPC_MoveParent, ++/*112001*/ OPC_MoveChild6, ++/*112002*/ OPC_CheckInteger, 1, ++/*112004*/ OPC_CheckType, MVT::i32, ++/*112006*/ OPC_MoveParent, ++/*112007*/ OPC_MoveChild7, ++/*112008*/ OPC_CheckInteger, 1, ++/*112010*/ OPC_CheckType, MVT::i32, ++/*112012*/ OPC_MoveParent, ++/*112013*/ OPC_MoveChild, 8, ++/*112015*/ OPC_CheckInteger, 1, ++/*112017*/ OPC_CheckType, MVT::i32, ++/*112019*/ OPC_MoveParent, ++/*112020*/ OPC_MoveChild, 9, ++/*112022*/ OPC_CheckInteger, 1, ++/*112024*/ OPC_CheckType, MVT::i32, ++/*112026*/ OPC_MoveParent, ++/*112027*/ OPC_MoveChild, 10, ++/*112029*/ OPC_CheckInteger, 1, ++/*112031*/ OPC_CheckType, MVT::i32, ++/*112033*/ OPC_MoveParent, ++/*112034*/ OPC_MoveChild, 11, ++/*112036*/ OPC_CheckInteger, 1, ++/*112038*/ OPC_CheckType, MVT::i32, ++/*112040*/ OPC_MoveParent, ++/*112041*/ OPC_MoveChild, 12, ++/*112043*/ OPC_CheckInteger, 1, ++/*112045*/ OPC_CheckType, MVT::i32, ++/*112047*/ OPC_MoveParent, ++/*112048*/ OPC_MoveChild, 13, ++/*112050*/ OPC_CheckInteger, 1, ++/*112052*/ OPC_CheckType, MVT::i32, ++/*112054*/ OPC_MoveParent, ++/*112055*/ OPC_MoveChild, 14, ++/*112057*/ OPC_CheckInteger, 1, ++/*112059*/ OPC_CheckType, MVT::i32, ++/*112061*/ OPC_MoveParent, ++/*112062*/ OPC_MoveChild, 15, ++/*112064*/ OPC_CheckInteger, 1, ++/*112066*/ OPC_CheckType, MVT::i32, ++/*112068*/ OPC_MoveParent, ++/*112069*/ OPC_MoveChild, 16, ++/*112071*/ OPC_CheckInteger, 1, ++/*112073*/ OPC_CheckType, MVT::i32, ++/*112075*/ OPC_MoveParent, ++/*112076*/ OPC_MoveChild, 17, ++/*112078*/ OPC_CheckInteger, 1, ++/*112080*/ OPC_CheckType, MVT::i32, ++/*112082*/ OPC_MoveParent, ++/*112083*/ OPC_MoveChild, 18, ++/*112085*/ OPC_CheckInteger, 1, ++/*112087*/ OPC_CheckType, MVT::i32, ++/*112089*/ OPC_MoveParent, ++/*112090*/ OPC_MoveChild, 19, ++/*112092*/ OPC_CheckInteger, 1, ++/*112094*/ OPC_CheckType, MVT::i32, ++/*112096*/ OPC_MoveParent, ++/*112097*/ OPC_MoveChild, 20, ++/*112099*/ OPC_CheckInteger, 1, ++/*112101*/ OPC_CheckType, MVT::i32, ++/*112103*/ OPC_MoveParent, ++/*112104*/ OPC_MoveChild, 21, ++/*112106*/ OPC_CheckInteger, 1, ++/*112108*/ OPC_CheckType, MVT::i32, ++/*112110*/ OPC_MoveParent, ++/*112111*/ OPC_MoveChild, 22, ++/*112113*/ OPC_CheckInteger, 1, ++/*112115*/ OPC_CheckType, MVT::i32, ++/*112117*/ OPC_MoveParent, ++/*112118*/ OPC_MoveChild, 23, ++/*112120*/ OPC_CheckInteger, 1, ++/*112122*/ OPC_CheckType, MVT::i32, ++/*112124*/ OPC_MoveParent, ++/*112125*/ OPC_MoveChild, 24, ++/*112127*/ OPC_CheckInteger, 1, ++/*112129*/ OPC_CheckType, MVT::i32, ++/*112131*/ OPC_MoveParent, ++/*112132*/ OPC_MoveChild, 25, ++/*112134*/ OPC_CheckInteger, 1, ++/*112136*/ OPC_CheckType, MVT::i32, ++/*112138*/ OPC_MoveParent, ++/*112139*/ OPC_MoveChild, 26, ++/*112141*/ OPC_CheckInteger, 1, ++/*112143*/ OPC_CheckType, MVT::i32, ++/*112145*/ OPC_MoveParent, ++/*112146*/ OPC_MoveChild, 27, ++/*112148*/ OPC_CheckInteger, 1, ++/*112150*/ OPC_CheckType, MVT::i32, ++/*112152*/ OPC_MoveParent, ++/*112153*/ OPC_MoveChild, 28, ++/*112155*/ OPC_CheckInteger, 1, ++/*112157*/ OPC_CheckType, MVT::i32, ++/*112159*/ OPC_MoveParent, ++/*112160*/ OPC_MoveChild, 29, ++/*112162*/ OPC_CheckInteger, 1, ++/*112164*/ OPC_CheckType, MVT::i32, ++/*112166*/ OPC_MoveParent, ++/*112167*/ OPC_MoveChild, 30, ++/*112169*/ OPC_CheckInteger, 1, ++/*112171*/ OPC_CheckType, MVT::i32, ++/*112173*/ OPC_MoveParent, ++/*112174*/ OPC_MoveChild, 31, ++/*112176*/ OPC_CheckInteger, 1, ++/*112178*/ OPC_CheckType, MVT::i32, ++/*112180*/ OPC_MoveParent, ++/*112181*/ OPC_CheckType, MVT::v32i8, ++/*112183*/ OPC_MoveParent, ++/*112184*/ OPC_CheckType, MVT::v32i8, ++/*112186*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*112188*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$a), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*112196*/ /*Scope*/ 62|128,3/*446*/, /*->112644*/ ++/*112198*/ OPC_CheckChild0Same, 0, ++/*112200*/ OPC_CheckChild1Same, 1, ++/*112202*/ OPC_MoveParent, ++/*112203*/ OPC_MoveParent, ++/*112204*/ OPC_MoveChild1, ++/*112205*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*112208*/ OPC_CheckChild0Integer, 7, ++/*112210*/ OPC_CheckChild0Type, MVT::i32, ++/*112212*/ OPC_CheckChild1Integer, 7, ++/*112214*/ OPC_CheckChild1Type, MVT::i32, ++/*112216*/ OPC_CheckChild2Integer, 7, ++/*112218*/ OPC_CheckChild2Type, MVT::i32, ++/*112220*/ OPC_CheckChild3Integer, 7, ++/*112222*/ OPC_CheckChild3Type, MVT::i32, ++/*112224*/ OPC_CheckChild4Integer, 7, ++/*112226*/ OPC_CheckChild4Type, MVT::i32, ++/*112228*/ OPC_MoveChild5, ++/*112229*/ OPC_CheckInteger, 7, ++/*112231*/ OPC_CheckType, MVT::i32, ++/*112233*/ OPC_MoveParent, ++/*112234*/ OPC_MoveChild6, ++/*112235*/ OPC_CheckInteger, 7, ++/*112237*/ OPC_CheckType, MVT::i32, ++/*112239*/ OPC_MoveParent, ++/*112240*/ OPC_MoveChild7, ++/*112241*/ OPC_CheckInteger, 7, ++/*112243*/ OPC_CheckType, MVT::i32, ++/*112245*/ OPC_MoveParent, ++/*112246*/ OPC_MoveChild, 8, ++/*112248*/ OPC_CheckInteger, 7, ++/*112250*/ OPC_CheckType, MVT::i32, ++/*112252*/ OPC_MoveParent, ++/*112253*/ OPC_MoveChild, 9, ++/*112255*/ OPC_CheckInteger, 7, ++/*112257*/ OPC_CheckType, MVT::i32, ++/*112259*/ OPC_MoveParent, ++/*112260*/ OPC_MoveChild, 10, ++/*112262*/ OPC_CheckInteger, 7, ++/*112264*/ OPC_CheckType, MVT::i32, ++/*112266*/ OPC_MoveParent, ++/*112267*/ OPC_MoveChild, 11, ++/*112269*/ OPC_CheckInteger, 7, ++/*112271*/ OPC_CheckType, MVT::i32, ++/*112273*/ OPC_MoveParent, ++/*112274*/ OPC_MoveChild, 12, ++/*112276*/ OPC_CheckInteger, 7, ++/*112278*/ OPC_CheckType, MVT::i32, ++/*112280*/ OPC_MoveParent, ++/*112281*/ OPC_MoveChild, 13, ++/*112283*/ OPC_CheckInteger, 7, ++/*112285*/ OPC_CheckType, MVT::i32, ++/*112287*/ OPC_MoveParent, ++/*112288*/ OPC_MoveChild, 14, ++/*112290*/ OPC_CheckInteger, 7, ++/*112292*/ OPC_CheckType, MVT::i32, ++/*112294*/ OPC_MoveParent, ++/*112295*/ OPC_MoveChild, 15, ++/*112297*/ OPC_CheckInteger, 7, ++/*112299*/ OPC_CheckType, MVT::i32, ++/*112301*/ OPC_MoveParent, ++/*112302*/ OPC_MoveChild, 16, ++/*112304*/ OPC_CheckInteger, 7, ++/*112306*/ OPC_CheckType, MVT::i32, ++/*112308*/ OPC_MoveParent, ++/*112309*/ OPC_MoveChild, 17, ++/*112311*/ OPC_CheckInteger, 7, ++/*112313*/ OPC_CheckType, MVT::i32, ++/*112315*/ OPC_MoveParent, ++/*112316*/ OPC_MoveChild, 18, ++/*112318*/ OPC_CheckInteger, 7, ++/*112320*/ OPC_CheckType, MVT::i32, ++/*112322*/ OPC_MoveParent, ++/*112323*/ OPC_MoveChild, 19, ++/*112325*/ OPC_CheckInteger, 7, ++/*112327*/ OPC_CheckType, MVT::i32, ++/*112329*/ OPC_MoveParent, ++/*112330*/ OPC_MoveChild, 20, ++/*112332*/ OPC_CheckInteger, 7, ++/*112334*/ OPC_CheckType, MVT::i32, ++/*112336*/ OPC_MoveParent, ++/*112337*/ OPC_MoveChild, 21, ++/*112339*/ OPC_CheckInteger, 7, ++/*112341*/ OPC_CheckType, MVT::i32, ++/*112343*/ OPC_MoveParent, ++/*112344*/ OPC_MoveChild, 22, ++/*112346*/ OPC_CheckInteger, 7, ++/*112348*/ OPC_CheckType, MVT::i32, ++/*112350*/ OPC_MoveParent, ++/*112351*/ OPC_MoveChild, 23, ++/*112353*/ OPC_CheckInteger, 7, ++/*112355*/ OPC_CheckType, MVT::i32, ++/*112357*/ OPC_MoveParent, ++/*112358*/ OPC_MoveChild, 24, ++/*112360*/ OPC_CheckInteger, 7, ++/*112362*/ OPC_CheckType, MVT::i32, ++/*112364*/ OPC_MoveParent, ++/*112365*/ OPC_MoveChild, 25, ++/*112367*/ OPC_CheckInteger, 7, ++/*112369*/ OPC_CheckType, MVT::i32, ++/*112371*/ OPC_MoveParent, ++/*112372*/ OPC_MoveChild, 26, ++/*112374*/ OPC_CheckInteger, 7, ++/*112376*/ OPC_CheckType, MVT::i32, ++/*112378*/ OPC_MoveParent, ++/*112379*/ OPC_MoveChild, 27, ++/*112381*/ OPC_CheckInteger, 7, ++/*112383*/ OPC_CheckType, MVT::i32, ++/*112385*/ OPC_MoveParent, ++/*112386*/ OPC_MoveChild, 28, ++/*112388*/ OPC_CheckInteger, 7, ++/*112390*/ OPC_CheckType, MVT::i32, ++/*112392*/ OPC_MoveParent, ++/*112393*/ OPC_MoveChild, 29, ++/*112395*/ OPC_CheckInteger, 7, ++/*112397*/ OPC_CheckType, MVT::i32, ++/*112399*/ OPC_MoveParent, ++/*112400*/ OPC_MoveChild, 30, ++/*112402*/ OPC_CheckInteger, 7, ++/*112404*/ OPC_CheckType, MVT::i32, ++/*112406*/ OPC_MoveParent, ++/*112407*/ OPC_MoveChild, 31, ++/*112409*/ OPC_CheckInteger, 7, ++/*112411*/ OPC_CheckType, MVT::i32, ++/*112413*/ OPC_MoveParent, ++/*112414*/ OPC_CheckType, MVT::v32i8, ++/*112416*/ OPC_MoveParent, ++/*112417*/ OPC_MoveParent, ++/*112418*/ OPC_MoveParent, ++/*112419*/ OPC_MoveChild1, ++/*112420*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*112423*/ OPC_CheckChild0Integer, 1, ++/*112425*/ OPC_CheckChild0Type, MVT::i32, ++/*112427*/ OPC_CheckChild1Integer, 1, ++/*112429*/ OPC_CheckChild1Type, MVT::i32, ++/*112431*/ OPC_CheckChild2Integer, 1, ++/*112433*/ OPC_CheckChild2Type, MVT::i32, ++/*112435*/ OPC_CheckChild3Integer, 1, ++/*112437*/ OPC_CheckChild3Type, MVT::i32, ++/*112439*/ OPC_CheckChild4Integer, 1, ++/*112441*/ OPC_CheckChild4Type, MVT::i32, ++/*112443*/ OPC_MoveChild5, ++/*112444*/ OPC_CheckInteger, 1, ++/*112446*/ OPC_CheckType, MVT::i32, ++/*112448*/ OPC_MoveParent, ++/*112449*/ OPC_MoveChild6, ++/*112450*/ OPC_CheckInteger, 1, ++/*112452*/ OPC_CheckType, MVT::i32, ++/*112454*/ OPC_MoveParent, ++/*112455*/ OPC_MoveChild7, ++/*112456*/ OPC_CheckInteger, 1, ++/*112458*/ OPC_CheckType, MVT::i32, ++/*112460*/ OPC_MoveParent, ++/*112461*/ OPC_MoveChild, 8, ++/*112463*/ OPC_CheckInteger, 1, ++/*112465*/ OPC_CheckType, MVT::i32, ++/*112467*/ OPC_MoveParent, ++/*112468*/ OPC_MoveChild, 9, ++/*112470*/ OPC_CheckInteger, 1, ++/*112472*/ OPC_CheckType, MVT::i32, ++/*112474*/ OPC_MoveParent, ++/*112475*/ OPC_MoveChild, 10, ++/*112477*/ OPC_CheckInteger, 1, ++/*112479*/ OPC_CheckType, MVT::i32, ++/*112481*/ OPC_MoveParent, ++/*112482*/ OPC_MoveChild, 11, ++/*112484*/ OPC_CheckInteger, 1, ++/*112486*/ OPC_CheckType, MVT::i32, ++/*112488*/ OPC_MoveParent, ++/*112489*/ OPC_MoveChild, 12, ++/*112491*/ OPC_CheckInteger, 1, ++/*112493*/ OPC_CheckType, MVT::i32, ++/*112495*/ OPC_MoveParent, ++/*112496*/ OPC_MoveChild, 13, ++/*112498*/ OPC_CheckInteger, 1, ++/*112500*/ OPC_CheckType, MVT::i32, ++/*112502*/ OPC_MoveParent, ++/*112503*/ OPC_MoveChild, 14, ++/*112505*/ OPC_CheckInteger, 1, ++/*112507*/ OPC_CheckType, MVT::i32, ++/*112509*/ OPC_MoveParent, ++/*112510*/ OPC_MoveChild, 15, ++/*112512*/ OPC_CheckInteger, 1, ++/*112514*/ OPC_CheckType, MVT::i32, ++/*112516*/ OPC_MoveParent, ++/*112517*/ OPC_MoveChild, 16, ++/*112519*/ OPC_CheckInteger, 1, ++/*112521*/ OPC_CheckType, MVT::i32, ++/*112523*/ OPC_MoveParent, ++/*112524*/ OPC_MoveChild, 17, ++/*112526*/ OPC_CheckInteger, 1, ++/*112528*/ OPC_CheckType, MVT::i32, ++/*112530*/ OPC_MoveParent, ++/*112531*/ OPC_MoveChild, 18, ++/*112533*/ OPC_CheckInteger, 1, ++/*112535*/ OPC_CheckType, MVT::i32, ++/*112537*/ OPC_MoveParent, ++/*112538*/ OPC_MoveChild, 19, ++/*112540*/ OPC_CheckInteger, 1, ++/*112542*/ OPC_CheckType, MVT::i32, ++/*112544*/ OPC_MoveParent, ++/*112545*/ OPC_MoveChild, 20, ++/*112547*/ OPC_CheckInteger, 1, ++/*112549*/ OPC_CheckType, MVT::i32, ++/*112551*/ OPC_MoveParent, ++/*112552*/ OPC_MoveChild, 21, ++/*112554*/ OPC_CheckInteger, 1, ++/*112556*/ OPC_CheckType, MVT::i32, ++/*112558*/ OPC_MoveParent, ++/*112559*/ OPC_MoveChild, 22, ++/*112561*/ OPC_CheckInteger, 1, ++/*112563*/ OPC_CheckType, MVT::i32, ++/*112565*/ OPC_MoveParent, ++/*112566*/ OPC_MoveChild, 23, ++/*112568*/ OPC_CheckInteger, 1, ++/*112570*/ OPC_CheckType, MVT::i32, ++/*112572*/ OPC_MoveParent, ++/*112573*/ OPC_MoveChild, 24, ++/*112575*/ OPC_CheckInteger, 1, ++/*112577*/ OPC_CheckType, MVT::i32, ++/*112579*/ OPC_MoveParent, ++/*112580*/ OPC_MoveChild, 25, ++/*112582*/ OPC_CheckInteger, 1, ++/*112584*/ OPC_CheckType, MVT::i32, ++/*112586*/ OPC_MoveParent, ++/*112587*/ OPC_MoveChild, 26, ++/*112589*/ OPC_CheckInteger, 1, ++/*112591*/ OPC_CheckType, MVT::i32, ++/*112593*/ OPC_MoveParent, ++/*112594*/ OPC_MoveChild, 27, ++/*112596*/ OPC_CheckInteger, 1, ++/*112598*/ OPC_CheckType, MVT::i32, ++/*112600*/ OPC_MoveParent, ++/*112601*/ OPC_MoveChild, 28, ++/*112603*/ OPC_CheckInteger, 1, ++/*112605*/ OPC_CheckType, MVT::i32, ++/*112607*/ OPC_MoveParent, ++/*112608*/ OPC_MoveChild, 29, ++/*112610*/ OPC_CheckInteger, 1, ++/*112612*/ OPC_CheckType, MVT::i32, ++/*112614*/ OPC_MoveParent, ++/*112615*/ OPC_MoveChild, 30, ++/*112617*/ OPC_CheckInteger, 1, ++/*112619*/ OPC_CheckType, MVT::i32, ++/*112621*/ OPC_MoveParent, ++/*112622*/ OPC_MoveChild, 31, ++/*112624*/ OPC_CheckInteger, 1, ++/*112626*/ OPC_CheckType, MVT::i32, ++/*112628*/ OPC_MoveParent, ++/*112629*/ OPC_CheckType, MVT::v32i8, ++/*112631*/ OPC_MoveParent, ++/*112632*/ OPC_CheckType, MVT::v32i8, ++/*112634*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*112636*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$a), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*112644*/ 0, /*End of Scope*/ ++/*112645*/ 0, /*End of Scope*/ ++/*112646*/ /*Scope*/ 59|128,122/*15675*/, /*->128323*/ ++/*112648*/ OPC_RecordChild1, // #1 = $b ++/*112649*/ OPC_MoveParent, ++/*112650*/ OPC_MoveChild1, ++/*112651*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*112654*/ OPC_CheckChild0Integer, 1, ++/*112656*/ OPC_CheckChild0Type, MVT::i32, ++/*112658*/ OPC_CheckChild1Integer, 1, ++/*112660*/ OPC_CheckChild1Type, MVT::i32, ++/*112662*/ OPC_CheckChild2Integer, 1, ++/*112664*/ OPC_CheckChild2Type, MVT::i32, ++/*112666*/ OPC_CheckChild3Integer, 1, ++/*112668*/ OPC_CheckChild3Type, MVT::i32, ++/*112670*/ OPC_CheckChild4Integer, 1, ++/*112672*/ OPC_CheckChild4Type, MVT::i32, ++/*112674*/ OPC_MoveChild5, ++/*112675*/ OPC_CheckInteger, 1, ++/*112677*/ OPC_CheckType, MVT::i32, ++/*112679*/ OPC_MoveParent, ++/*112680*/ OPC_MoveChild6, ++/*112681*/ OPC_CheckInteger, 1, ++/*112683*/ OPC_CheckType, MVT::i32, ++/*112685*/ OPC_MoveParent, ++/*112686*/ OPC_MoveChild7, ++/*112687*/ OPC_CheckInteger, 1, ++/*112689*/ OPC_CheckType, MVT::i32, ++/*112691*/ OPC_MoveParent, ++/*112692*/ OPC_MoveChild, 8, ++/*112694*/ OPC_CheckInteger, 1, ++/*112696*/ OPC_CheckType, MVT::i32, ++/*112698*/ OPC_MoveParent, ++/*112699*/ OPC_MoveChild, 9, ++/*112701*/ OPC_CheckInteger, 1, ++/*112703*/ OPC_CheckType, MVT::i32, ++/*112705*/ OPC_MoveParent, ++/*112706*/ OPC_MoveChild, 10, ++/*112708*/ OPC_CheckInteger, 1, ++/*112710*/ OPC_CheckType, MVT::i32, ++/*112712*/ OPC_MoveParent, ++/*112713*/ OPC_MoveChild, 11, ++/*112715*/ OPC_CheckInteger, 1, ++/*112717*/ OPC_CheckType, MVT::i32, ++/*112719*/ OPC_MoveParent, ++/*112720*/ OPC_MoveChild, 12, ++/*112722*/ OPC_CheckInteger, 1, ++/*112724*/ OPC_CheckType, MVT::i32, ++/*112726*/ OPC_MoveParent, ++/*112727*/ OPC_MoveChild, 13, ++/*112729*/ OPC_CheckInteger, 1, ++/*112731*/ OPC_CheckType, MVT::i32, ++/*112733*/ OPC_MoveParent, ++/*112734*/ OPC_MoveChild, 14, ++/*112736*/ OPC_CheckInteger, 1, ++/*112738*/ OPC_CheckType, MVT::i32, ++/*112740*/ OPC_MoveParent, ++/*112741*/ OPC_MoveChild, 15, ++/*112743*/ OPC_CheckInteger, 1, ++/*112745*/ OPC_CheckType, MVT::i32, ++/*112747*/ OPC_MoveParent, ++/*112748*/ OPC_MoveChild, 16, ++/*112750*/ OPC_CheckInteger, 1, ++/*112752*/ OPC_CheckType, MVT::i32, ++/*112754*/ OPC_MoveParent, ++/*112755*/ OPC_MoveChild, 17, ++/*112757*/ OPC_CheckInteger, 1, ++/*112759*/ OPC_CheckType, MVT::i32, ++/*112761*/ OPC_MoveParent, ++/*112762*/ OPC_MoveChild, 18, ++/*112764*/ OPC_CheckInteger, 1, ++/*112766*/ OPC_CheckType, MVT::i32, ++/*112768*/ OPC_MoveParent, ++/*112769*/ OPC_MoveChild, 19, ++/*112771*/ OPC_CheckInteger, 1, ++/*112773*/ OPC_CheckType, MVT::i32, ++/*112775*/ OPC_MoveParent, ++/*112776*/ OPC_MoveChild, 20, ++/*112778*/ OPC_CheckInteger, 1, ++/*112780*/ OPC_CheckType, MVT::i32, ++/*112782*/ OPC_MoveParent, ++/*112783*/ OPC_MoveChild, 21, ++/*112785*/ OPC_CheckInteger, 1, ++/*112787*/ OPC_CheckType, MVT::i32, ++/*112789*/ OPC_MoveParent, ++/*112790*/ OPC_MoveChild, 22, ++/*112792*/ OPC_CheckInteger, 1, ++/*112794*/ OPC_CheckType, MVT::i32, ++/*112796*/ OPC_MoveParent, ++/*112797*/ OPC_MoveChild, 23, ++/*112799*/ OPC_CheckInteger, 1, ++/*112801*/ OPC_CheckType, MVT::i32, ++/*112803*/ OPC_MoveParent, ++/*112804*/ OPC_MoveChild, 24, ++/*112806*/ OPC_CheckInteger, 1, ++/*112808*/ OPC_CheckType, MVT::i32, ++/*112810*/ OPC_MoveParent, ++/*112811*/ OPC_MoveChild, 25, ++/*112813*/ OPC_CheckInteger, 1, ++/*112815*/ OPC_CheckType, MVT::i32, ++/*112817*/ OPC_MoveParent, ++/*112818*/ OPC_MoveChild, 26, ++/*112820*/ OPC_CheckInteger, 1, ++/*112822*/ OPC_CheckType, MVT::i32, ++/*112824*/ OPC_MoveParent, ++/*112825*/ OPC_MoveChild, 27, ++/*112827*/ OPC_CheckInteger, 1, ++/*112829*/ OPC_CheckType, MVT::i32, ++/*112831*/ OPC_MoveParent, ++/*112832*/ OPC_MoveChild, 28, ++/*112834*/ OPC_CheckInteger, 1, ++/*112836*/ OPC_CheckType, MVT::i32, ++/*112838*/ OPC_MoveParent, ++/*112839*/ OPC_MoveChild, 29, ++/*112841*/ OPC_CheckInteger, 1, ++/*112843*/ OPC_CheckType, MVT::i32, ++/*112845*/ OPC_MoveParent, ++/*112846*/ OPC_MoveChild, 30, ++/*112848*/ OPC_CheckInteger, 1, ++/*112850*/ OPC_CheckType, MVT::i32, ++/*112852*/ OPC_MoveParent, ++/*112853*/ OPC_MoveChild, 31, ++/*112855*/ OPC_CheckInteger, 1, ++/*112857*/ OPC_CheckType, MVT::i32, ++/*112859*/ OPC_MoveParent, ++/*112860*/ OPC_MoveParent, ++/*112861*/ OPC_MoveParent, ++/*112862*/ OPC_MoveChild1, ++/*112863*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*112866*/ OPC_MoveChild0, ++/*112867*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*112870*/ OPC_Scope, 120|128,30/*3960*/, /*->116833*/ // 7 children in Scope ++/*112873*/ OPC_MoveChild0, ++/*112874*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*112877*/ OPC_Scope, 17|128,5/*657*/, /*->113537*/ // 6 children in Scope ++/*112880*/ OPC_MoveChild0, ++/*112881*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*112884*/ OPC_CheckChild0Integer, 1, ++/*112886*/ OPC_CheckChild0Type, MVT::i32, ++/*112888*/ OPC_CheckChild1Integer, 1, ++/*112890*/ OPC_CheckChild1Type, MVT::i32, ++/*112892*/ OPC_CheckChild2Integer, 1, ++/*112894*/ OPC_CheckChild2Type, MVT::i32, ++/*112896*/ OPC_CheckChild3Integer, 1, ++/*112898*/ OPC_CheckChild3Type, MVT::i32, ++/*112900*/ OPC_CheckChild4Integer, 1, ++/*112902*/ OPC_CheckChild4Type, MVT::i32, ++/*112904*/ OPC_MoveChild5, ++/*112905*/ OPC_CheckInteger, 1, ++/*112907*/ OPC_CheckType, MVT::i32, ++/*112909*/ OPC_MoveParent, ++/*112910*/ OPC_MoveChild6, ++/*112911*/ OPC_CheckInteger, 1, ++/*112913*/ OPC_CheckType, MVT::i32, ++/*112915*/ OPC_MoveParent, ++/*112916*/ OPC_MoveChild7, ++/*112917*/ OPC_CheckInteger, 1, ++/*112919*/ OPC_CheckType, MVT::i32, ++/*112921*/ OPC_MoveParent, ++/*112922*/ OPC_MoveChild, 8, ++/*112924*/ OPC_CheckInteger, 1, ++/*112926*/ OPC_CheckType, MVT::i32, ++/*112928*/ OPC_MoveParent, ++/*112929*/ OPC_MoveChild, 9, ++/*112931*/ OPC_CheckInteger, 1, ++/*112933*/ OPC_CheckType, MVT::i32, ++/*112935*/ OPC_MoveParent, ++/*112936*/ OPC_MoveChild, 10, ++/*112938*/ OPC_CheckInteger, 1, ++/*112940*/ OPC_CheckType, MVT::i32, ++/*112942*/ OPC_MoveParent, ++/*112943*/ OPC_MoveChild, 11, ++/*112945*/ OPC_CheckInteger, 1, ++/*112947*/ OPC_CheckType, MVT::i32, ++/*112949*/ OPC_MoveParent, ++/*112950*/ OPC_MoveChild, 12, ++/*112952*/ OPC_CheckInteger, 1, ++/*112954*/ OPC_CheckType, MVT::i32, ++/*112956*/ OPC_MoveParent, ++/*112957*/ OPC_MoveChild, 13, ++/*112959*/ OPC_CheckInteger, 1, ++/*112961*/ OPC_CheckType, MVT::i32, ++/*112963*/ OPC_MoveParent, ++/*112964*/ OPC_MoveChild, 14, ++/*112966*/ OPC_CheckInteger, 1, ++/*112968*/ OPC_CheckType, MVT::i32, ++/*112970*/ OPC_MoveParent, ++/*112971*/ OPC_MoveChild, 15, ++/*112973*/ OPC_CheckInteger, 1, ++/*112975*/ OPC_CheckType, MVT::i32, ++/*112977*/ OPC_MoveParent, ++/*112978*/ OPC_MoveChild, 16, ++/*112980*/ OPC_CheckInteger, 1, ++/*112982*/ OPC_CheckType, MVT::i32, ++/*112984*/ OPC_MoveParent, ++/*112985*/ OPC_MoveChild, 17, ++/*112987*/ OPC_CheckInteger, 1, ++/*112989*/ OPC_CheckType, MVT::i32, ++/*112991*/ OPC_MoveParent, ++/*112992*/ OPC_MoveChild, 18, ++/*112994*/ OPC_CheckInteger, 1, ++/*112996*/ OPC_CheckType, MVT::i32, ++/*112998*/ OPC_MoveParent, ++/*112999*/ OPC_MoveChild, 19, ++/*113001*/ OPC_CheckInteger, 1, ++/*113003*/ OPC_CheckType, MVT::i32, ++/*113005*/ OPC_MoveParent, ++/*113006*/ OPC_MoveChild, 20, ++/*113008*/ OPC_CheckInteger, 1, ++/*113010*/ OPC_CheckType, MVT::i32, ++/*113012*/ OPC_MoveParent, ++/*113013*/ OPC_MoveChild, 21, ++/*113015*/ OPC_CheckInteger, 1, ++/*113017*/ OPC_CheckType, MVT::i32, ++/*113019*/ OPC_MoveParent, ++/*113020*/ OPC_MoveChild, 22, ++/*113022*/ OPC_CheckInteger, 1, ++/*113024*/ OPC_CheckType, MVT::i32, ++/*113026*/ OPC_MoveParent, ++/*113027*/ OPC_MoveChild, 23, ++/*113029*/ OPC_CheckInteger, 1, ++/*113031*/ OPC_CheckType, MVT::i32, ++/*113033*/ OPC_MoveParent, ++/*113034*/ OPC_MoveChild, 24, ++/*113036*/ OPC_CheckInteger, 1, ++/*113038*/ OPC_CheckType, MVT::i32, ++/*113040*/ OPC_MoveParent, ++/*113041*/ OPC_MoveChild, 25, ++/*113043*/ OPC_CheckInteger, 1, ++/*113045*/ OPC_CheckType, MVT::i32, ++/*113047*/ OPC_MoveParent, ++/*113048*/ OPC_MoveChild, 26, ++/*113050*/ OPC_CheckInteger, 1, ++/*113052*/ OPC_CheckType, MVT::i32, ++/*113054*/ OPC_MoveParent, ++/*113055*/ OPC_MoveChild, 27, ++/*113057*/ OPC_CheckInteger, 1, ++/*113059*/ OPC_CheckType, MVT::i32, ++/*113061*/ OPC_MoveParent, ++/*113062*/ OPC_MoveChild, 28, ++/*113064*/ OPC_CheckInteger, 1, ++/*113066*/ OPC_CheckType, MVT::i32, ++/*113068*/ OPC_MoveParent, ++/*113069*/ OPC_MoveChild, 29, ++/*113071*/ OPC_CheckInteger, 1, ++/*113073*/ OPC_CheckType, MVT::i32, ++/*113075*/ OPC_MoveParent, ++/*113076*/ OPC_MoveChild, 30, ++/*113078*/ OPC_CheckInteger, 1, ++/*113080*/ OPC_CheckType, MVT::i32, ++/*113082*/ OPC_MoveParent, ++/*113083*/ OPC_MoveChild, 31, ++/*113085*/ OPC_CheckInteger, 1, ++/*113087*/ OPC_CheckType, MVT::i32, ++/*113089*/ OPC_MoveParent, ++/*113090*/ OPC_MoveParent, ++/*113091*/ OPC_CheckChild1Same, 0, ++/*113093*/ OPC_MoveParent, ++/*113094*/ OPC_CheckChild1Same, 1, ++/*113096*/ OPC_MoveParent, ++/*113097*/ OPC_MoveChild1, ++/*113098*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*113101*/ OPC_CheckChild0Integer, 7, ++/*113103*/ OPC_CheckChild0Type, MVT::i32, ++/*113105*/ OPC_CheckChild1Integer, 7, ++/*113107*/ OPC_CheckChild1Type, MVT::i32, ++/*113109*/ OPC_CheckChild2Integer, 7, ++/*113111*/ OPC_CheckChild2Type, MVT::i32, ++/*113113*/ OPC_CheckChild3Integer, 7, ++/*113115*/ OPC_CheckChild3Type, MVT::i32, ++/*113117*/ OPC_CheckChild4Integer, 7, ++/*113119*/ OPC_CheckChild4Type, MVT::i32, ++/*113121*/ OPC_MoveChild5, ++/*113122*/ OPC_CheckInteger, 7, ++/*113124*/ OPC_CheckType, MVT::i32, ++/*113126*/ OPC_MoveParent, ++/*113127*/ OPC_MoveChild6, ++/*113128*/ OPC_CheckInteger, 7, ++/*113130*/ OPC_CheckType, MVT::i32, ++/*113132*/ OPC_MoveParent, ++/*113133*/ OPC_MoveChild7, ++/*113134*/ OPC_CheckInteger, 7, ++/*113136*/ OPC_CheckType, MVT::i32, ++/*113138*/ OPC_MoveParent, ++/*113139*/ OPC_MoveChild, 8, ++/*113141*/ OPC_CheckInteger, 7, ++/*113143*/ OPC_CheckType, MVT::i32, ++/*113145*/ OPC_MoveParent, ++/*113146*/ OPC_MoveChild, 9, ++/*113148*/ OPC_CheckInteger, 7, ++/*113150*/ OPC_CheckType, MVT::i32, ++/*113152*/ OPC_MoveParent, ++/*113153*/ OPC_MoveChild, 10, ++/*113155*/ OPC_CheckInteger, 7, ++/*113157*/ OPC_CheckType, MVT::i32, ++/*113159*/ OPC_MoveParent, ++/*113160*/ OPC_MoveChild, 11, ++/*113162*/ OPC_CheckInteger, 7, ++/*113164*/ OPC_CheckType, MVT::i32, ++/*113166*/ OPC_MoveParent, ++/*113167*/ OPC_MoveChild, 12, ++/*113169*/ OPC_CheckInteger, 7, ++/*113171*/ OPC_CheckType, MVT::i32, ++/*113173*/ OPC_MoveParent, ++/*113174*/ OPC_MoveChild, 13, ++/*113176*/ OPC_CheckInteger, 7, ++/*113178*/ OPC_CheckType, MVT::i32, ++/*113180*/ OPC_MoveParent, ++/*113181*/ OPC_MoveChild, 14, ++/*113183*/ OPC_CheckInteger, 7, ++/*113185*/ OPC_CheckType, MVT::i32, ++/*113187*/ OPC_MoveParent, ++/*113188*/ OPC_MoveChild, 15, ++/*113190*/ OPC_CheckInteger, 7, ++/*113192*/ OPC_CheckType, MVT::i32, ++/*113194*/ OPC_MoveParent, ++/*113195*/ OPC_MoveChild, 16, ++/*113197*/ OPC_CheckInteger, 7, ++/*113199*/ OPC_CheckType, MVT::i32, ++/*113201*/ OPC_MoveParent, ++/*113202*/ OPC_MoveChild, 17, ++/*113204*/ OPC_CheckInteger, 7, ++/*113206*/ OPC_CheckType, MVT::i32, ++/*113208*/ OPC_MoveParent, ++/*113209*/ OPC_MoveChild, 18, ++/*113211*/ OPC_CheckInteger, 7, ++/*113213*/ OPC_CheckType, MVT::i32, ++/*113215*/ OPC_MoveParent, ++/*113216*/ OPC_MoveChild, 19, ++/*113218*/ OPC_CheckInteger, 7, ++/*113220*/ OPC_CheckType, MVT::i32, ++/*113222*/ OPC_MoveParent, ++/*113223*/ OPC_MoveChild, 20, ++/*113225*/ OPC_CheckInteger, 7, ++/*113227*/ OPC_CheckType, MVT::i32, ++/*113229*/ OPC_MoveParent, ++/*113230*/ OPC_MoveChild, 21, ++/*113232*/ OPC_CheckInteger, 7, ++/*113234*/ OPC_CheckType, MVT::i32, ++/*113236*/ OPC_MoveParent, ++/*113237*/ OPC_MoveChild, 22, ++/*113239*/ OPC_CheckInteger, 7, ++/*113241*/ OPC_CheckType, MVT::i32, ++/*113243*/ OPC_MoveParent, ++/*113244*/ OPC_MoveChild, 23, ++/*113246*/ OPC_CheckInteger, 7, ++/*113248*/ OPC_CheckType, MVT::i32, ++/*113250*/ OPC_MoveParent, ++/*113251*/ OPC_MoveChild, 24, ++/*113253*/ OPC_CheckInteger, 7, ++/*113255*/ OPC_CheckType, MVT::i32, ++/*113257*/ OPC_MoveParent, ++/*113258*/ OPC_MoveChild, 25, ++/*113260*/ OPC_CheckInteger, 7, ++/*113262*/ OPC_CheckType, MVT::i32, ++/*113264*/ OPC_MoveParent, ++/*113265*/ OPC_MoveChild, 26, ++/*113267*/ OPC_CheckInteger, 7, ++/*113269*/ OPC_CheckType, MVT::i32, ++/*113271*/ OPC_MoveParent, ++/*113272*/ OPC_MoveChild, 27, ++/*113274*/ OPC_CheckInteger, 7, ++/*113276*/ OPC_CheckType, MVT::i32, ++/*113278*/ OPC_MoveParent, ++/*113279*/ OPC_MoveChild, 28, ++/*113281*/ OPC_CheckInteger, 7, ++/*113283*/ OPC_CheckType, MVT::i32, ++/*113285*/ OPC_MoveParent, ++/*113286*/ OPC_MoveChild, 29, ++/*113288*/ OPC_CheckInteger, 7, ++/*113290*/ OPC_CheckType, MVT::i32, ++/*113292*/ OPC_MoveParent, ++/*113293*/ OPC_MoveChild, 30, ++/*113295*/ OPC_CheckInteger, 7, ++/*113297*/ OPC_CheckType, MVT::i32, ++/*113299*/ OPC_MoveParent, ++/*113300*/ OPC_MoveChild, 31, ++/*113302*/ OPC_CheckInteger, 7, ++/*113304*/ OPC_CheckType, MVT::i32, ++/*113306*/ OPC_MoveParent, ++/*113307*/ OPC_CheckType, MVT::v32i8, ++/*113309*/ OPC_MoveParent, ++/*113310*/ OPC_MoveParent, ++/*113311*/ OPC_MoveParent, ++/*113312*/ OPC_MoveChild1, ++/*113313*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*113316*/ OPC_CheckChild0Integer, 1, ++/*113318*/ OPC_CheckChild0Type, MVT::i32, ++/*113320*/ OPC_CheckChild1Integer, 1, ++/*113322*/ OPC_CheckChild1Type, MVT::i32, ++/*113324*/ OPC_CheckChild2Integer, 1, ++/*113326*/ OPC_CheckChild2Type, MVT::i32, ++/*113328*/ OPC_CheckChild3Integer, 1, ++/*113330*/ OPC_CheckChild3Type, MVT::i32, ++/*113332*/ OPC_CheckChild4Integer, 1, ++/*113334*/ OPC_CheckChild4Type, MVT::i32, ++/*113336*/ OPC_MoveChild5, ++/*113337*/ OPC_CheckInteger, 1, ++/*113339*/ OPC_CheckType, MVT::i32, ++/*113341*/ OPC_MoveParent, ++/*113342*/ OPC_MoveChild6, ++/*113343*/ OPC_CheckInteger, 1, ++/*113345*/ OPC_CheckType, MVT::i32, ++/*113347*/ OPC_MoveParent, ++/*113348*/ OPC_MoveChild7, ++/*113349*/ OPC_CheckInteger, 1, ++/*113351*/ OPC_CheckType, MVT::i32, ++/*113353*/ OPC_MoveParent, ++/*113354*/ OPC_MoveChild, 8, ++/*113356*/ OPC_CheckInteger, 1, ++/*113358*/ OPC_CheckType, MVT::i32, ++/*113360*/ OPC_MoveParent, ++/*113361*/ OPC_MoveChild, 9, ++/*113363*/ OPC_CheckInteger, 1, ++/*113365*/ OPC_CheckType, MVT::i32, ++/*113367*/ OPC_MoveParent, ++/*113368*/ OPC_MoveChild, 10, ++/*113370*/ OPC_CheckInteger, 1, ++/*113372*/ OPC_CheckType, MVT::i32, ++/*113374*/ OPC_MoveParent, ++/*113375*/ OPC_MoveChild, 11, ++/*113377*/ OPC_CheckInteger, 1, ++/*113379*/ OPC_CheckType, MVT::i32, ++/*113381*/ OPC_MoveParent, ++/*113382*/ OPC_MoveChild, 12, ++/*113384*/ OPC_CheckInteger, 1, ++/*113386*/ OPC_CheckType, MVT::i32, ++/*113388*/ OPC_MoveParent, ++/*113389*/ OPC_MoveChild, 13, ++/*113391*/ OPC_CheckInteger, 1, ++/*113393*/ OPC_CheckType, MVT::i32, ++/*113395*/ OPC_MoveParent, ++/*113396*/ OPC_MoveChild, 14, ++/*113398*/ OPC_CheckInteger, 1, ++/*113400*/ OPC_CheckType, MVT::i32, ++/*113402*/ OPC_MoveParent, ++/*113403*/ OPC_MoveChild, 15, ++/*113405*/ OPC_CheckInteger, 1, ++/*113407*/ OPC_CheckType, MVT::i32, ++/*113409*/ OPC_MoveParent, ++/*113410*/ OPC_MoveChild, 16, ++/*113412*/ OPC_CheckInteger, 1, ++/*113414*/ OPC_CheckType, MVT::i32, ++/*113416*/ OPC_MoveParent, ++/*113417*/ OPC_MoveChild, 17, ++/*113419*/ OPC_CheckInteger, 1, ++/*113421*/ OPC_CheckType, MVT::i32, ++/*113423*/ OPC_MoveParent, ++/*113424*/ OPC_MoveChild, 18, ++/*113426*/ OPC_CheckInteger, 1, ++/*113428*/ OPC_CheckType, MVT::i32, ++/*113430*/ OPC_MoveParent, ++/*113431*/ OPC_MoveChild, 19, ++/*113433*/ OPC_CheckInteger, 1, ++/*113435*/ OPC_CheckType, MVT::i32, ++/*113437*/ OPC_MoveParent, ++/*113438*/ OPC_MoveChild, 20, ++/*113440*/ OPC_CheckInteger, 1, ++/*113442*/ OPC_CheckType, MVT::i32, ++/*113444*/ OPC_MoveParent, ++/*113445*/ OPC_MoveChild, 21, ++/*113447*/ OPC_CheckInteger, 1, ++/*113449*/ OPC_CheckType, MVT::i32, ++/*113451*/ OPC_MoveParent, ++/*113452*/ OPC_MoveChild, 22, ++/*113454*/ OPC_CheckInteger, 1, ++/*113456*/ OPC_CheckType, MVT::i32, ++/*113458*/ OPC_MoveParent, ++/*113459*/ OPC_MoveChild, 23, ++/*113461*/ OPC_CheckInteger, 1, ++/*113463*/ OPC_CheckType, MVT::i32, ++/*113465*/ OPC_MoveParent, ++/*113466*/ OPC_MoveChild, 24, ++/*113468*/ OPC_CheckInteger, 1, ++/*113470*/ OPC_CheckType, MVT::i32, ++/*113472*/ OPC_MoveParent, ++/*113473*/ OPC_MoveChild, 25, ++/*113475*/ OPC_CheckInteger, 1, ++/*113477*/ OPC_CheckType, MVT::i32, ++/*113479*/ OPC_MoveParent, ++/*113480*/ OPC_MoveChild, 26, ++/*113482*/ OPC_CheckInteger, 1, ++/*113484*/ OPC_CheckType, MVT::i32, ++/*113486*/ OPC_MoveParent, ++/*113487*/ OPC_MoveChild, 27, ++/*113489*/ OPC_CheckInteger, 1, ++/*113491*/ OPC_CheckType, MVT::i32, ++/*113493*/ OPC_MoveParent, ++/*113494*/ OPC_MoveChild, 28, ++/*113496*/ OPC_CheckInteger, 1, ++/*113498*/ OPC_CheckType, MVT::i32, ++/*113500*/ OPC_MoveParent, ++/*113501*/ OPC_MoveChild, 29, ++/*113503*/ OPC_CheckInteger, 1, ++/*113505*/ OPC_CheckType, MVT::i32, ++/*113507*/ OPC_MoveParent, ++/*113508*/ OPC_MoveChild, 30, ++/*113510*/ OPC_CheckInteger, 1, ++/*113512*/ OPC_CheckType, MVT::i32, ++/*113514*/ OPC_MoveParent, ++/*113515*/ OPC_MoveChild, 31, ++/*113517*/ OPC_CheckInteger, 1, ++/*113519*/ OPC_CheckType, MVT::i32, ++/*113521*/ OPC_MoveParent, ++/*113522*/ OPC_CheckType, MVT::v32i8, ++/*113524*/ OPC_MoveParent, ++/*113525*/ OPC_CheckType, MVT::v32i8, ++/*113527*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*113529*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a), LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*113537*/ /*Scope*/ 17|128,5/*657*/, /*->114196*/ ++/*113539*/ OPC_CheckChild0Same, 0, ++/*113541*/ OPC_MoveChild1, ++/*113542*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*113545*/ OPC_CheckChild0Integer, 1, ++/*113547*/ OPC_CheckChild0Type, MVT::i32, ++/*113549*/ OPC_CheckChild1Integer, 1, ++/*113551*/ OPC_CheckChild1Type, MVT::i32, ++/*113553*/ OPC_CheckChild2Integer, 1, ++/*113555*/ OPC_CheckChild2Type, MVT::i32, ++/*113557*/ OPC_CheckChild3Integer, 1, ++/*113559*/ OPC_CheckChild3Type, MVT::i32, ++/*113561*/ OPC_CheckChild4Integer, 1, ++/*113563*/ OPC_CheckChild4Type, MVT::i32, ++/*113565*/ OPC_MoveChild5, ++/*113566*/ OPC_CheckInteger, 1, ++/*113568*/ OPC_CheckType, MVT::i32, ++/*113570*/ OPC_MoveParent, ++/*113571*/ OPC_MoveChild6, ++/*113572*/ OPC_CheckInteger, 1, ++/*113574*/ OPC_CheckType, MVT::i32, ++/*113576*/ OPC_MoveParent, ++/*113577*/ OPC_MoveChild7, ++/*113578*/ OPC_CheckInteger, 1, ++/*113580*/ OPC_CheckType, MVT::i32, ++/*113582*/ OPC_MoveParent, ++/*113583*/ OPC_MoveChild, 8, ++/*113585*/ OPC_CheckInteger, 1, ++/*113587*/ OPC_CheckType, MVT::i32, ++/*113589*/ OPC_MoveParent, ++/*113590*/ OPC_MoveChild, 9, ++/*113592*/ OPC_CheckInteger, 1, ++/*113594*/ OPC_CheckType, MVT::i32, ++/*113596*/ OPC_MoveParent, ++/*113597*/ OPC_MoveChild, 10, ++/*113599*/ OPC_CheckInteger, 1, ++/*113601*/ OPC_CheckType, MVT::i32, ++/*113603*/ OPC_MoveParent, ++/*113604*/ OPC_MoveChild, 11, ++/*113606*/ OPC_CheckInteger, 1, ++/*113608*/ OPC_CheckType, MVT::i32, ++/*113610*/ OPC_MoveParent, ++/*113611*/ OPC_MoveChild, 12, ++/*113613*/ OPC_CheckInteger, 1, ++/*113615*/ OPC_CheckType, MVT::i32, ++/*113617*/ OPC_MoveParent, ++/*113618*/ OPC_MoveChild, 13, ++/*113620*/ OPC_CheckInteger, 1, ++/*113622*/ OPC_CheckType, MVT::i32, ++/*113624*/ OPC_MoveParent, ++/*113625*/ OPC_MoveChild, 14, ++/*113627*/ OPC_CheckInteger, 1, ++/*113629*/ OPC_CheckType, MVT::i32, ++/*113631*/ OPC_MoveParent, ++/*113632*/ OPC_MoveChild, 15, ++/*113634*/ OPC_CheckInteger, 1, ++/*113636*/ OPC_CheckType, MVT::i32, ++/*113638*/ OPC_MoveParent, ++/*113639*/ OPC_MoveChild, 16, ++/*113641*/ OPC_CheckInteger, 1, ++/*113643*/ OPC_CheckType, MVT::i32, ++/*113645*/ OPC_MoveParent, ++/*113646*/ OPC_MoveChild, 17, ++/*113648*/ OPC_CheckInteger, 1, ++/*113650*/ OPC_CheckType, MVT::i32, ++/*113652*/ OPC_MoveParent, ++/*113653*/ OPC_MoveChild, 18, ++/*113655*/ OPC_CheckInteger, 1, ++/*113657*/ OPC_CheckType, MVT::i32, ++/*113659*/ OPC_MoveParent, ++/*113660*/ OPC_MoveChild, 19, ++/*113662*/ OPC_CheckInteger, 1, ++/*113664*/ OPC_CheckType, MVT::i32, ++/*113666*/ OPC_MoveParent, ++/*113667*/ OPC_MoveChild, 20, ++/*113669*/ OPC_CheckInteger, 1, ++/*113671*/ OPC_CheckType, MVT::i32, ++/*113673*/ OPC_MoveParent, ++/*113674*/ OPC_MoveChild, 21, ++/*113676*/ OPC_CheckInteger, 1, ++/*113678*/ OPC_CheckType, MVT::i32, ++/*113680*/ OPC_MoveParent, ++/*113681*/ OPC_MoveChild, 22, ++/*113683*/ OPC_CheckInteger, 1, ++/*113685*/ OPC_CheckType, MVT::i32, ++/*113687*/ OPC_MoveParent, ++/*113688*/ OPC_MoveChild, 23, ++/*113690*/ OPC_CheckInteger, 1, ++/*113692*/ OPC_CheckType, MVT::i32, ++/*113694*/ OPC_MoveParent, ++/*113695*/ OPC_MoveChild, 24, ++/*113697*/ OPC_CheckInteger, 1, ++/*113699*/ OPC_CheckType, MVT::i32, ++/*113701*/ OPC_MoveParent, ++/*113702*/ OPC_MoveChild, 25, ++/*113704*/ OPC_CheckInteger, 1, ++/*113706*/ OPC_CheckType, MVT::i32, ++/*113708*/ OPC_MoveParent, ++/*113709*/ OPC_MoveChild, 26, ++/*113711*/ OPC_CheckInteger, 1, ++/*113713*/ OPC_CheckType, MVT::i32, ++/*113715*/ OPC_MoveParent, ++/*113716*/ OPC_MoveChild, 27, ++/*113718*/ OPC_CheckInteger, 1, ++/*113720*/ OPC_CheckType, MVT::i32, ++/*113722*/ OPC_MoveParent, ++/*113723*/ OPC_MoveChild, 28, ++/*113725*/ OPC_CheckInteger, 1, ++/*113727*/ OPC_CheckType, MVT::i32, ++/*113729*/ OPC_MoveParent, ++/*113730*/ OPC_MoveChild, 29, ++/*113732*/ OPC_CheckInteger, 1, ++/*113734*/ OPC_CheckType, MVT::i32, ++/*113736*/ OPC_MoveParent, ++/*113737*/ OPC_MoveChild, 30, ++/*113739*/ OPC_CheckInteger, 1, ++/*113741*/ OPC_CheckType, MVT::i32, ++/*113743*/ OPC_MoveParent, ++/*113744*/ OPC_MoveChild, 31, ++/*113746*/ OPC_CheckInteger, 1, ++/*113748*/ OPC_CheckType, MVT::i32, ++/*113750*/ OPC_MoveParent, ++/*113751*/ OPC_MoveParent, ++/*113752*/ OPC_MoveParent, ++/*113753*/ OPC_CheckChild1Same, 1, ++/*113755*/ OPC_MoveParent, ++/*113756*/ OPC_MoveChild1, ++/*113757*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*113760*/ OPC_CheckChild0Integer, 7, ++/*113762*/ OPC_CheckChild0Type, MVT::i32, ++/*113764*/ OPC_CheckChild1Integer, 7, ++/*113766*/ OPC_CheckChild1Type, MVT::i32, ++/*113768*/ OPC_CheckChild2Integer, 7, ++/*113770*/ OPC_CheckChild2Type, MVT::i32, ++/*113772*/ OPC_CheckChild3Integer, 7, ++/*113774*/ OPC_CheckChild3Type, MVT::i32, ++/*113776*/ OPC_CheckChild4Integer, 7, ++/*113778*/ OPC_CheckChild4Type, MVT::i32, ++/*113780*/ OPC_MoveChild5, ++/*113781*/ OPC_CheckInteger, 7, ++/*113783*/ OPC_CheckType, MVT::i32, ++/*113785*/ OPC_MoveParent, ++/*113786*/ OPC_MoveChild6, ++/*113787*/ OPC_CheckInteger, 7, ++/*113789*/ OPC_CheckType, MVT::i32, ++/*113791*/ OPC_MoveParent, ++/*113792*/ OPC_MoveChild7, ++/*113793*/ OPC_CheckInteger, 7, ++/*113795*/ OPC_CheckType, MVT::i32, ++/*113797*/ OPC_MoveParent, ++/*113798*/ OPC_MoveChild, 8, ++/*113800*/ OPC_CheckInteger, 7, ++/*113802*/ OPC_CheckType, MVT::i32, ++/*113804*/ OPC_MoveParent, ++/*113805*/ OPC_MoveChild, 9, ++/*113807*/ OPC_CheckInteger, 7, ++/*113809*/ OPC_CheckType, MVT::i32, ++/*113811*/ OPC_MoveParent, ++/*113812*/ OPC_MoveChild, 10, ++/*113814*/ OPC_CheckInteger, 7, ++/*113816*/ OPC_CheckType, MVT::i32, ++/*113818*/ OPC_MoveParent, ++/*113819*/ OPC_MoveChild, 11, ++/*113821*/ OPC_CheckInteger, 7, ++/*113823*/ OPC_CheckType, MVT::i32, ++/*113825*/ OPC_MoveParent, ++/*113826*/ OPC_MoveChild, 12, ++/*113828*/ OPC_CheckInteger, 7, ++/*113830*/ OPC_CheckType, MVT::i32, ++/*113832*/ OPC_MoveParent, ++/*113833*/ OPC_MoveChild, 13, ++/*113835*/ OPC_CheckInteger, 7, ++/*113837*/ OPC_CheckType, MVT::i32, ++/*113839*/ OPC_MoveParent, ++/*113840*/ OPC_MoveChild, 14, ++/*113842*/ OPC_CheckInteger, 7, ++/*113844*/ OPC_CheckType, MVT::i32, ++/*113846*/ OPC_MoveParent, ++/*113847*/ OPC_MoveChild, 15, ++/*113849*/ OPC_CheckInteger, 7, ++/*113851*/ OPC_CheckType, MVT::i32, ++/*113853*/ OPC_MoveParent, ++/*113854*/ OPC_MoveChild, 16, ++/*113856*/ OPC_CheckInteger, 7, ++/*113858*/ OPC_CheckType, MVT::i32, ++/*113860*/ OPC_MoveParent, ++/*113861*/ OPC_MoveChild, 17, ++/*113863*/ OPC_CheckInteger, 7, ++/*113865*/ OPC_CheckType, MVT::i32, ++/*113867*/ OPC_MoveParent, ++/*113868*/ OPC_MoveChild, 18, ++/*113870*/ OPC_CheckInteger, 7, ++/*113872*/ OPC_CheckType, MVT::i32, ++/*113874*/ OPC_MoveParent, ++/*113875*/ OPC_MoveChild, 19, ++/*113877*/ OPC_CheckInteger, 7, ++/*113879*/ OPC_CheckType, MVT::i32, ++/*113881*/ OPC_MoveParent, ++/*113882*/ OPC_MoveChild, 20, ++/*113884*/ OPC_CheckInteger, 7, ++/*113886*/ OPC_CheckType, MVT::i32, ++/*113888*/ OPC_MoveParent, ++/*113889*/ OPC_MoveChild, 21, ++/*113891*/ OPC_CheckInteger, 7, ++/*113893*/ OPC_CheckType, MVT::i32, ++/*113895*/ OPC_MoveParent, ++/*113896*/ OPC_MoveChild, 22, ++/*113898*/ OPC_CheckInteger, 7, ++/*113900*/ OPC_CheckType, MVT::i32, ++/*113902*/ OPC_MoveParent, ++/*113903*/ OPC_MoveChild, 23, ++/*113905*/ OPC_CheckInteger, 7, ++/*113907*/ OPC_CheckType, MVT::i32, ++/*113909*/ OPC_MoveParent, ++/*113910*/ OPC_MoveChild, 24, ++/*113912*/ OPC_CheckInteger, 7, ++/*113914*/ OPC_CheckType, MVT::i32, ++/*113916*/ OPC_MoveParent, ++/*113917*/ OPC_MoveChild, 25, ++/*113919*/ OPC_CheckInteger, 7, ++/*113921*/ OPC_CheckType, MVT::i32, ++/*113923*/ OPC_MoveParent, ++/*113924*/ OPC_MoveChild, 26, ++/*113926*/ OPC_CheckInteger, 7, ++/*113928*/ OPC_CheckType, MVT::i32, ++/*113930*/ OPC_MoveParent, ++/*113931*/ OPC_MoveChild, 27, ++/*113933*/ OPC_CheckInteger, 7, ++/*113935*/ OPC_CheckType, MVT::i32, ++/*113937*/ OPC_MoveParent, ++/*113938*/ OPC_MoveChild, 28, ++/*113940*/ OPC_CheckInteger, 7, ++/*113942*/ OPC_CheckType, MVT::i32, ++/*113944*/ OPC_MoveParent, ++/*113945*/ OPC_MoveChild, 29, ++/*113947*/ OPC_CheckInteger, 7, ++/*113949*/ OPC_CheckType, MVT::i32, ++/*113951*/ OPC_MoveParent, ++/*113952*/ OPC_MoveChild, 30, ++/*113954*/ OPC_CheckInteger, 7, ++/*113956*/ OPC_CheckType, MVT::i32, ++/*113958*/ OPC_MoveParent, ++/*113959*/ OPC_MoveChild, 31, ++/*113961*/ OPC_CheckInteger, 7, ++/*113963*/ OPC_CheckType, MVT::i32, ++/*113965*/ OPC_MoveParent, ++/*113966*/ OPC_CheckType, MVT::v32i8, ++/*113968*/ OPC_MoveParent, ++/*113969*/ OPC_MoveParent, ++/*113970*/ OPC_MoveParent, ++/*113971*/ OPC_MoveChild1, ++/*113972*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*113975*/ OPC_CheckChild0Integer, 1, ++/*113977*/ OPC_CheckChild0Type, MVT::i32, ++/*113979*/ OPC_CheckChild1Integer, 1, ++/*113981*/ OPC_CheckChild1Type, MVT::i32, ++/*113983*/ OPC_CheckChild2Integer, 1, ++/*113985*/ OPC_CheckChild2Type, MVT::i32, ++/*113987*/ OPC_CheckChild3Integer, 1, ++/*113989*/ OPC_CheckChild3Type, MVT::i32, ++/*113991*/ OPC_CheckChild4Integer, 1, ++/*113993*/ OPC_CheckChild4Type, MVT::i32, ++/*113995*/ OPC_MoveChild5, ++/*113996*/ OPC_CheckInteger, 1, ++/*113998*/ OPC_CheckType, MVT::i32, ++/*114000*/ OPC_MoveParent, ++/*114001*/ OPC_MoveChild6, ++/*114002*/ OPC_CheckInteger, 1, ++/*114004*/ OPC_CheckType, MVT::i32, ++/*114006*/ OPC_MoveParent, ++/*114007*/ OPC_MoveChild7, ++/*114008*/ OPC_CheckInteger, 1, ++/*114010*/ OPC_CheckType, MVT::i32, ++/*114012*/ OPC_MoveParent, ++/*114013*/ OPC_MoveChild, 8, ++/*114015*/ OPC_CheckInteger, 1, ++/*114017*/ OPC_CheckType, MVT::i32, ++/*114019*/ OPC_MoveParent, ++/*114020*/ OPC_MoveChild, 9, ++/*114022*/ OPC_CheckInteger, 1, ++/*114024*/ OPC_CheckType, MVT::i32, ++/*114026*/ OPC_MoveParent, ++/*114027*/ OPC_MoveChild, 10, ++/*114029*/ OPC_CheckInteger, 1, ++/*114031*/ OPC_CheckType, MVT::i32, ++/*114033*/ OPC_MoveParent, ++/*114034*/ OPC_MoveChild, 11, ++/*114036*/ OPC_CheckInteger, 1, ++/*114038*/ OPC_CheckType, MVT::i32, ++/*114040*/ OPC_MoveParent, ++/*114041*/ OPC_MoveChild, 12, ++/*114043*/ OPC_CheckInteger, 1, ++/*114045*/ OPC_CheckType, MVT::i32, ++/*114047*/ OPC_MoveParent, ++/*114048*/ OPC_MoveChild, 13, ++/*114050*/ OPC_CheckInteger, 1, ++/*114052*/ OPC_CheckType, MVT::i32, ++/*114054*/ OPC_MoveParent, ++/*114055*/ OPC_MoveChild, 14, ++/*114057*/ OPC_CheckInteger, 1, ++/*114059*/ OPC_CheckType, MVT::i32, ++/*114061*/ OPC_MoveParent, ++/*114062*/ OPC_MoveChild, 15, ++/*114064*/ OPC_CheckInteger, 1, ++/*114066*/ OPC_CheckType, MVT::i32, ++/*114068*/ OPC_MoveParent, ++/*114069*/ OPC_MoveChild, 16, ++/*114071*/ OPC_CheckInteger, 1, ++/*114073*/ OPC_CheckType, MVT::i32, ++/*114075*/ OPC_MoveParent, ++/*114076*/ OPC_MoveChild, 17, ++/*114078*/ OPC_CheckInteger, 1, ++/*114080*/ OPC_CheckType, MVT::i32, ++/*114082*/ OPC_MoveParent, ++/*114083*/ OPC_MoveChild, 18, ++/*114085*/ OPC_CheckInteger, 1, ++/*114087*/ OPC_CheckType, MVT::i32, ++/*114089*/ OPC_MoveParent, ++/*114090*/ OPC_MoveChild, 19, ++/*114092*/ OPC_CheckInteger, 1, ++/*114094*/ OPC_CheckType, MVT::i32, ++/*114096*/ OPC_MoveParent, ++/*114097*/ OPC_MoveChild, 20, ++/*114099*/ OPC_CheckInteger, 1, ++/*114101*/ OPC_CheckType, MVT::i32, ++/*114103*/ OPC_MoveParent, ++/*114104*/ OPC_MoveChild, 21, ++/*114106*/ OPC_CheckInteger, 1, ++/*114108*/ OPC_CheckType, MVT::i32, ++/*114110*/ OPC_MoveParent, ++/*114111*/ OPC_MoveChild, 22, ++/*114113*/ OPC_CheckInteger, 1, ++/*114115*/ OPC_CheckType, MVT::i32, ++/*114117*/ OPC_MoveParent, ++/*114118*/ OPC_MoveChild, 23, ++/*114120*/ OPC_CheckInteger, 1, ++/*114122*/ OPC_CheckType, MVT::i32, ++/*114124*/ OPC_MoveParent, ++/*114125*/ OPC_MoveChild, 24, ++/*114127*/ OPC_CheckInteger, 1, ++/*114129*/ OPC_CheckType, MVT::i32, ++/*114131*/ OPC_MoveParent, ++/*114132*/ OPC_MoveChild, 25, ++/*114134*/ OPC_CheckInteger, 1, ++/*114136*/ OPC_CheckType, MVT::i32, ++/*114138*/ OPC_MoveParent, ++/*114139*/ OPC_MoveChild, 26, ++/*114141*/ OPC_CheckInteger, 1, ++/*114143*/ OPC_CheckType, MVT::i32, ++/*114145*/ OPC_MoveParent, ++/*114146*/ OPC_MoveChild, 27, ++/*114148*/ OPC_CheckInteger, 1, ++/*114150*/ OPC_CheckType, MVT::i32, ++/*114152*/ OPC_MoveParent, ++/*114153*/ OPC_MoveChild, 28, ++/*114155*/ OPC_CheckInteger, 1, ++/*114157*/ OPC_CheckType, MVT::i32, ++/*114159*/ OPC_MoveParent, ++/*114160*/ OPC_MoveChild, 29, ++/*114162*/ OPC_CheckInteger, 1, ++/*114164*/ OPC_CheckType, MVT::i32, ++/*114166*/ OPC_MoveParent, ++/*114167*/ OPC_MoveChild, 30, ++/*114169*/ OPC_CheckInteger, 1, ++/*114171*/ OPC_CheckType, MVT::i32, ++/*114173*/ OPC_MoveParent, ++/*114174*/ OPC_MoveChild, 31, ++/*114176*/ OPC_CheckInteger, 1, ++/*114178*/ OPC_CheckType, MVT::i32, ++/*114180*/ OPC_MoveParent, ++/*114181*/ OPC_CheckType, MVT::v32i8, ++/*114183*/ OPC_MoveParent, ++/*114184*/ OPC_CheckType, MVT::v32i8, ++/*114186*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*114188*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*114196*/ /*Scope*/ 17|128,5/*657*/, /*->114855*/ ++/*114198*/ OPC_MoveChild0, ++/*114199*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*114202*/ OPC_CheckChild0Integer, 1, ++/*114204*/ OPC_CheckChild0Type, MVT::i32, ++/*114206*/ OPC_CheckChild1Integer, 1, ++/*114208*/ OPC_CheckChild1Type, MVT::i32, ++/*114210*/ OPC_CheckChild2Integer, 1, ++/*114212*/ OPC_CheckChild2Type, MVT::i32, ++/*114214*/ OPC_CheckChild3Integer, 1, ++/*114216*/ OPC_CheckChild3Type, MVT::i32, ++/*114218*/ OPC_CheckChild4Integer, 1, ++/*114220*/ OPC_CheckChild4Type, MVT::i32, ++/*114222*/ OPC_MoveChild5, ++/*114223*/ OPC_CheckInteger, 1, ++/*114225*/ OPC_CheckType, MVT::i32, ++/*114227*/ OPC_MoveParent, ++/*114228*/ OPC_MoveChild6, ++/*114229*/ OPC_CheckInteger, 1, ++/*114231*/ OPC_CheckType, MVT::i32, ++/*114233*/ OPC_MoveParent, ++/*114234*/ OPC_MoveChild7, ++/*114235*/ OPC_CheckInteger, 1, ++/*114237*/ OPC_CheckType, MVT::i32, ++/*114239*/ OPC_MoveParent, ++/*114240*/ OPC_MoveChild, 8, ++/*114242*/ OPC_CheckInteger, 1, ++/*114244*/ OPC_CheckType, MVT::i32, ++/*114246*/ OPC_MoveParent, ++/*114247*/ OPC_MoveChild, 9, ++/*114249*/ OPC_CheckInteger, 1, ++/*114251*/ OPC_CheckType, MVT::i32, ++/*114253*/ OPC_MoveParent, ++/*114254*/ OPC_MoveChild, 10, ++/*114256*/ OPC_CheckInteger, 1, ++/*114258*/ OPC_CheckType, MVT::i32, ++/*114260*/ OPC_MoveParent, ++/*114261*/ OPC_MoveChild, 11, ++/*114263*/ OPC_CheckInteger, 1, ++/*114265*/ OPC_CheckType, MVT::i32, ++/*114267*/ OPC_MoveParent, ++/*114268*/ OPC_MoveChild, 12, ++/*114270*/ OPC_CheckInteger, 1, ++/*114272*/ OPC_CheckType, MVT::i32, ++/*114274*/ OPC_MoveParent, ++/*114275*/ OPC_MoveChild, 13, ++/*114277*/ OPC_CheckInteger, 1, ++/*114279*/ OPC_CheckType, MVT::i32, ++/*114281*/ OPC_MoveParent, ++/*114282*/ OPC_MoveChild, 14, ++/*114284*/ OPC_CheckInteger, 1, ++/*114286*/ OPC_CheckType, MVT::i32, ++/*114288*/ OPC_MoveParent, ++/*114289*/ OPC_MoveChild, 15, ++/*114291*/ OPC_CheckInteger, 1, ++/*114293*/ OPC_CheckType, MVT::i32, ++/*114295*/ OPC_MoveParent, ++/*114296*/ OPC_MoveChild, 16, ++/*114298*/ OPC_CheckInteger, 1, ++/*114300*/ OPC_CheckType, MVT::i32, ++/*114302*/ OPC_MoveParent, ++/*114303*/ OPC_MoveChild, 17, ++/*114305*/ OPC_CheckInteger, 1, ++/*114307*/ OPC_CheckType, MVT::i32, ++/*114309*/ OPC_MoveParent, ++/*114310*/ OPC_MoveChild, 18, ++/*114312*/ OPC_CheckInteger, 1, ++/*114314*/ OPC_CheckType, MVT::i32, ++/*114316*/ OPC_MoveParent, ++/*114317*/ OPC_MoveChild, 19, ++/*114319*/ OPC_CheckInteger, 1, ++/*114321*/ OPC_CheckType, MVT::i32, ++/*114323*/ OPC_MoveParent, ++/*114324*/ OPC_MoveChild, 20, ++/*114326*/ OPC_CheckInteger, 1, ++/*114328*/ OPC_CheckType, MVT::i32, ++/*114330*/ OPC_MoveParent, ++/*114331*/ OPC_MoveChild, 21, ++/*114333*/ OPC_CheckInteger, 1, ++/*114335*/ OPC_CheckType, MVT::i32, ++/*114337*/ OPC_MoveParent, ++/*114338*/ OPC_MoveChild, 22, ++/*114340*/ OPC_CheckInteger, 1, ++/*114342*/ OPC_CheckType, MVT::i32, ++/*114344*/ OPC_MoveParent, ++/*114345*/ OPC_MoveChild, 23, ++/*114347*/ OPC_CheckInteger, 1, ++/*114349*/ OPC_CheckType, MVT::i32, ++/*114351*/ OPC_MoveParent, ++/*114352*/ OPC_MoveChild, 24, ++/*114354*/ OPC_CheckInteger, 1, ++/*114356*/ OPC_CheckType, MVT::i32, ++/*114358*/ OPC_MoveParent, ++/*114359*/ OPC_MoveChild, 25, ++/*114361*/ OPC_CheckInteger, 1, ++/*114363*/ OPC_CheckType, MVT::i32, ++/*114365*/ OPC_MoveParent, ++/*114366*/ OPC_MoveChild, 26, ++/*114368*/ OPC_CheckInteger, 1, ++/*114370*/ OPC_CheckType, MVT::i32, ++/*114372*/ OPC_MoveParent, ++/*114373*/ OPC_MoveChild, 27, ++/*114375*/ OPC_CheckInteger, 1, ++/*114377*/ OPC_CheckType, MVT::i32, ++/*114379*/ OPC_MoveParent, ++/*114380*/ OPC_MoveChild, 28, ++/*114382*/ OPC_CheckInteger, 1, ++/*114384*/ OPC_CheckType, MVT::i32, ++/*114386*/ OPC_MoveParent, ++/*114387*/ OPC_MoveChild, 29, ++/*114389*/ OPC_CheckInteger, 1, ++/*114391*/ OPC_CheckType, MVT::i32, ++/*114393*/ OPC_MoveParent, ++/*114394*/ OPC_MoveChild, 30, ++/*114396*/ OPC_CheckInteger, 1, ++/*114398*/ OPC_CheckType, MVT::i32, ++/*114400*/ OPC_MoveParent, ++/*114401*/ OPC_MoveChild, 31, ++/*114403*/ OPC_CheckInteger, 1, ++/*114405*/ OPC_CheckType, MVT::i32, ++/*114407*/ OPC_MoveParent, ++/*114408*/ OPC_MoveParent, ++/*114409*/ OPC_CheckChild1Same, 1, ++/*114411*/ OPC_MoveParent, ++/*114412*/ OPC_CheckChild1Same, 0, ++/*114414*/ OPC_MoveParent, ++/*114415*/ OPC_MoveChild1, ++/*114416*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*114419*/ OPC_CheckChild0Integer, 7, ++/*114421*/ OPC_CheckChild0Type, MVT::i32, ++/*114423*/ OPC_CheckChild1Integer, 7, ++/*114425*/ OPC_CheckChild1Type, MVT::i32, ++/*114427*/ OPC_CheckChild2Integer, 7, ++/*114429*/ OPC_CheckChild2Type, MVT::i32, ++/*114431*/ OPC_CheckChild3Integer, 7, ++/*114433*/ OPC_CheckChild3Type, MVT::i32, ++/*114435*/ OPC_CheckChild4Integer, 7, ++/*114437*/ OPC_CheckChild4Type, MVT::i32, ++/*114439*/ OPC_MoveChild5, ++/*114440*/ OPC_CheckInteger, 7, ++/*114442*/ OPC_CheckType, MVT::i32, ++/*114444*/ OPC_MoveParent, ++/*114445*/ OPC_MoveChild6, ++/*114446*/ OPC_CheckInteger, 7, ++/*114448*/ OPC_CheckType, MVT::i32, ++/*114450*/ OPC_MoveParent, ++/*114451*/ OPC_MoveChild7, ++/*114452*/ OPC_CheckInteger, 7, ++/*114454*/ OPC_CheckType, MVT::i32, ++/*114456*/ OPC_MoveParent, ++/*114457*/ OPC_MoveChild, 8, ++/*114459*/ OPC_CheckInteger, 7, ++/*114461*/ OPC_CheckType, MVT::i32, ++/*114463*/ OPC_MoveParent, ++/*114464*/ OPC_MoveChild, 9, ++/*114466*/ OPC_CheckInteger, 7, ++/*114468*/ OPC_CheckType, MVT::i32, ++/*114470*/ OPC_MoveParent, ++/*114471*/ OPC_MoveChild, 10, ++/*114473*/ OPC_CheckInteger, 7, ++/*114475*/ OPC_CheckType, MVT::i32, ++/*114477*/ OPC_MoveParent, ++/*114478*/ OPC_MoveChild, 11, ++/*114480*/ OPC_CheckInteger, 7, ++/*114482*/ OPC_CheckType, MVT::i32, ++/*114484*/ OPC_MoveParent, ++/*114485*/ OPC_MoveChild, 12, ++/*114487*/ OPC_CheckInteger, 7, ++/*114489*/ OPC_CheckType, MVT::i32, ++/*114491*/ OPC_MoveParent, ++/*114492*/ OPC_MoveChild, 13, ++/*114494*/ OPC_CheckInteger, 7, ++/*114496*/ OPC_CheckType, MVT::i32, ++/*114498*/ OPC_MoveParent, ++/*114499*/ OPC_MoveChild, 14, ++/*114501*/ OPC_CheckInteger, 7, ++/*114503*/ OPC_CheckType, MVT::i32, ++/*114505*/ OPC_MoveParent, ++/*114506*/ OPC_MoveChild, 15, ++/*114508*/ OPC_CheckInteger, 7, ++/*114510*/ OPC_CheckType, MVT::i32, ++/*114512*/ OPC_MoveParent, ++/*114513*/ OPC_MoveChild, 16, ++/*114515*/ OPC_CheckInteger, 7, ++/*114517*/ OPC_CheckType, MVT::i32, ++/*114519*/ OPC_MoveParent, ++/*114520*/ OPC_MoveChild, 17, ++/*114522*/ OPC_CheckInteger, 7, ++/*114524*/ OPC_CheckType, MVT::i32, ++/*114526*/ OPC_MoveParent, ++/*114527*/ OPC_MoveChild, 18, ++/*114529*/ OPC_CheckInteger, 7, ++/*114531*/ OPC_CheckType, MVT::i32, ++/*114533*/ OPC_MoveParent, ++/*114534*/ OPC_MoveChild, 19, ++/*114536*/ OPC_CheckInteger, 7, ++/*114538*/ OPC_CheckType, MVT::i32, ++/*114540*/ OPC_MoveParent, ++/*114541*/ OPC_MoveChild, 20, ++/*114543*/ OPC_CheckInteger, 7, ++/*114545*/ OPC_CheckType, MVT::i32, ++/*114547*/ OPC_MoveParent, ++/*114548*/ OPC_MoveChild, 21, ++/*114550*/ OPC_CheckInteger, 7, ++/*114552*/ OPC_CheckType, MVT::i32, ++/*114554*/ OPC_MoveParent, ++/*114555*/ OPC_MoveChild, 22, ++/*114557*/ OPC_CheckInteger, 7, ++/*114559*/ OPC_CheckType, MVT::i32, ++/*114561*/ OPC_MoveParent, ++/*114562*/ OPC_MoveChild, 23, ++/*114564*/ OPC_CheckInteger, 7, ++/*114566*/ OPC_CheckType, MVT::i32, ++/*114568*/ OPC_MoveParent, ++/*114569*/ OPC_MoveChild, 24, ++/*114571*/ OPC_CheckInteger, 7, ++/*114573*/ OPC_CheckType, MVT::i32, ++/*114575*/ OPC_MoveParent, ++/*114576*/ OPC_MoveChild, 25, ++/*114578*/ OPC_CheckInteger, 7, ++/*114580*/ OPC_CheckType, MVT::i32, ++/*114582*/ OPC_MoveParent, ++/*114583*/ OPC_MoveChild, 26, ++/*114585*/ OPC_CheckInteger, 7, ++/*114587*/ OPC_CheckType, MVT::i32, ++/*114589*/ OPC_MoveParent, ++/*114590*/ OPC_MoveChild, 27, ++/*114592*/ OPC_CheckInteger, 7, ++/*114594*/ OPC_CheckType, MVT::i32, ++/*114596*/ OPC_MoveParent, ++/*114597*/ OPC_MoveChild, 28, ++/*114599*/ OPC_CheckInteger, 7, ++/*114601*/ OPC_CheckType, MVT::i32, ++/*114603*/ OPC_MoveParent, ++/*114604*/ OPC_MoveChild, 29, ++/*114606*/ OPC_CheckInteger, 7, ++/*114608*/ OPC_CheckType, MVT::i32, ++/*114610*/ OPC_MoveParent, ++/*114611*/ OPC_MoveChild, 30, ++/*114613*/ OPC_CheckInteger, 7, ++/*114615*/ OPC_CheckType, MVT::i32, ++/*114617*/ OPC_MoveParent, ++/*114618*/ OPC_MoveChild, 31, ++/*114620*/ OPC_CheckInteger, 7, ++/*114622*/ OPC_CheckType, MVT::i32, ++/*114624*/ OPC_MoveParent, ++/*114625*/ OPC_CheckType, MVT::v32i8, ++/*114627*/ OPC_MoveParent, ++/*114628*/ OPC_MoveParent, ++/*114629*/ OPC_MoveParent, ++/*114630*/ OPC_MoveChild1, ++/*114631*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*114634*/ OPC_CheckChild0Integer, 1, ++/*114636*/ OPC_CheckChild0Type, MVT::i32, ++/*114638*/ OPC_CheckChild1Integer, 1, ++/*114640*/ OPC_CheckChild1Type, MVT::i32, ++/*114642*/ OPC_CheckChild2Integer, 1, ++/*114644*/ OPC_CheckChild2Type, MVT::i32, ++/*114646*/ OPC_CheckChild3Integer, 1, ++/*114648*/ OPC_CheckChild3Type, MVT::i32, ++/*114650*/ OPC_CheckChild4Integer, 1, ++/*114652*/ OPC_CheckChild4Type, MVT::i32, ++/*114654*/ OPC_MoveChild5, ++/*114655*/ OPC_CheckInteger, 1, ++/*114657*/ OPC_CheckType, MVT::i32, ++/*114659*/ OPC_MoveParent, ++/*114660*/ OPC_MoveChild6, ++/*114661*/ OPC_CheckInteger, 1, ++/*114663*/ OPC_CheckType, MVT::i32, ++/*114665*/ OPC_MoveParent, ++/*114666*/ OPC_MoveChild7, ++/*114667*/ OPC_CheckInteger, 1, ++/*114669*/ OPC_CheckType, MVT::i32, ++/*114671*/ OPC_MoveParent, ++/*114672*/ OPC_MoveChild, 8, ++/*114674*/ OPC_CheckInteger, 1, ++/*114676*/ OPC_CheckType, MVT::i32, ++/*114678*/ OPC_MoveParent, ++/*114679*/ OPC_MoveChild, 9, ++/*114681*/ OPC_CheckInteger, 1, ++/*114683*/ OPC_CheckType, MVT::i32, ++/*114685*/ OPC_MoveParent, ++/*114686*/ OPC_MoveChild, 10, ++/*114688*/ OPC_CheckInteger, 1, ++/*114690*/ OPC_CheckType, MVT::i32, ++/*114692*/ OPC_MoveParent, ++/*114693*/ OPC_MoveChild, 11, ++/*114695*/ OPC_CheckInteger, 1, ++/*114697*/ OPC_CheckType, MVT::i32, ++/*114699*/ OPC_MoveParent, ++/*114700*/ OPC_MoveChild, 12, ++/*114702*/ OPC_CheckInteger, 1, ++/*114704*/ OPC_CheckType, MVT::i32, ++/*114706*/ OPC_MoveParent, ++/*114707*/ OPC_MoveChild, 13, ++/*114709*/ OPC_CheckInteger, 1, ++/*114711*/ OPC_CheckType, MVT::i32, ++/*114713*/ OPC_MoveParent, ++/*114714*/ OPC_MoveChild, 14, ++/*114716*/ OPC_CheckInteger, 1, ++/*114718*/ OPC_CheckType, MVT::i32, ++/*114720*/ OPC_MoveParent, ++/*114721*/ OPC_MoveChild, 15, ++/*114723*/ OPC_CheckInteger, 1, ++/*114725*/ OPC_CheckType, MVT::i32, ++/*114727*/ OPC_MoveParent, ++/*114728*/ OPC_MoveChild, 16, ++/*114730*/ OPC_CheckInteger, 1, ++/*114732*/ OPC_CheckType, MVT::i32, ++/*114734*/ OPC_MoveParent, ++/*114735*/ OPC_MoveChild, 17, ++/*114737*/ OPC_CheckInteger, 1, ++/*114739*/ OPC_CheckType, MVT::i32, ++/*114741*/ OPC_MoveParent, ++/*114742*/ OPC_MoveChild, 18, ++/*114744*/ OPC_CheckInteger, 1, ++/*114746*/ OPC_CheckType, MVT::i32, ++/*114748*/ OPC_MoveParent, ++/*114749*/ OPC_MoveChild, 19, ++/*114751*/ OPC_CheckInteger, 1, ++/*114753*/ OPC_CheckType, MVT::i32, ++/*114755*/ OPC_MoveParent, ++/*114756*/ OPC_MoveChild, 20, ++/*114758*/ OPC_CheckInteger, 1, ++/*114760*/ OPC_CheckType, MVT::i32, ++/*114762*/ OPC_MoveParent, ++/*114763*/ OPC_MoveChild, 21, ++/*114765*/ OPC_CheckInteger, 1, ++/*114767*/ OPC_CheckType, MVT::i32, ++/*114769*/ OPC_MoveParent, ++/*114770*/ OPC_MoveChild, 22, ++/*114772*/ OPC_CheckInteger, 1, ++/*114774*/ OPC_CheckType, MVT::i32, ++/*114776*/ OPC_MoveParent, ++/*114777*/ OPC_MoveChild, 23, ++/*114779*/ OPC_CheckInteger, 1, ++/*114781*/ OPC_CheckType, MVT::i32, ++/*114783*/ OPC_MoveParent, ++/*114784*/ OPC_MoveChild, 24, ++/*114786*/ OPC_CheckInteger, 1, ++/*114788*/ OPC_CheckType, MVT::i32, ++/*114790*/ OPC_MoveParent, ++/*114791*/ OPC_MoveChild, 25, ++/*114793*/ OPC_CheckInteger, 1, ++/*114795*/ OPC_CheckType, MVT::i32, ++/*114797*/ OPC_MoveParent, ++/*114798*/ OPC_MoveChild, 26, ++/*114800*/ OPC_CheckInteger, 1, ++/*114802*/ OPC_CheckType, MVT::i32, ++/*114804*/ OPC_MoveParent, ++/*114805*/ OPC_MoveChild, 27, ++/*114807*/ OPC_CheckInteger, 1, ++/*114809*/ OPC_CheckType, MVT::i32, ++/*114811*/ OPC_MoveParent, ++/*114812*/ OPC_MoveChild, 28, ++/*114814*/ OPC_CheckInteger, 1, ++/*114816*/ OPC_CheckType, MVT::i32, ++/*114818*/ OPC_MoveParent, ++/*114819*/ OPC_MoveChild, 29, ++/*114821*/ OPC_CheckInteger, 1, ++/*114823*/ OPC_CheckType, MVT::i32, ++/*114825*/ OPC_MoveParent, ++/*114826*/ OPC_MoveChild, 30, ++/*114828*/ OPC_CheckInteger, 1, ++/*114830*/ OPC_CheckType, MVT::i32, ++/*114832*/ OPC_MoveParent, ++/*114833*/ OPC_MoveChild, 31, ++/*114835*/ OPC_CheckInteger, 1, ++/*114837*/ OPC_CheckType, MVT::i32, ++/*114839*/ OPC_MoveParent, ++/*114840*/ OPC_CheckType, MVT::v32i8, ++/*114842*/ OPC_MoveParent, ++/*114843*/ OPC_CheckType, MVT::v32i8, ++/*114845*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*114847*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b), LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*114855*/ /*Scope*/ 17|128,5/*657*/, /*->115514*/ ++/*114857*/ OPC_CheckChild0Same, 1, ++/*114859*/ OPC_MoveChild1, ++/*114860*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*114863*/ OPC_CheckChild0Integer, 1, ++/*114865*/ OPC_CheckChild0Type, MVT::i32, ++/*114867*/ OPC_CheckChild1Integer, 1, ++/*114869*/ OPC_CheckChild1Type, MVT::i32, ++/*114871*/ OPC_CheckChild2Integer, 1, ++/*114873*/ OPC_CheckChild2Type, MVT::i32, ++/*114875*/ OPC_CheckChild3Integer, 1, ++/*114877*/ OPC_CheckChild3Type, MVT::i32, ++/*114879*/ OPC_CheckChild4Integer, 1, ++/*114881*/ OPC_CheckChild4Type, MVT::i32, ++/*114883*/ OPC_MoveChild5, ++/*114884*/ OPC_CheckInteger, 1, ++/*114886*/ OPC_CheckType, MVT::i32, ++/*114888*/ OPC_MoveParent, ++/*114889*/ OPC_MoveChild6, ++/*114890*/ OPC_CheckInteger, 1, ++/*114892*/ OPC_CheckType, MVT::i32, ++/*114894*/ OPC_MoveParent, ++/*114895*/ OPC_MoveChild7, ++/*114896*/ OPC_CheckInteger, 1, ++/*114898*/ OPC_CheckType, MVT::i32, ++/*114900*/ OPC_MoveParent, ++/*114901*/ OPC_MoveChild, 8, ++/*114903*/ OPC_CheckInteger, 1, ++/*114905*/ OPC_CheckType, MVT::i32, ++/*114907*/ OPC_MoveParent, ++/*114908*/ OPC_MoveChild, 9, ++/*114910*/ OPC_CheckInteger, 1, ++/*114912*/ OPC_CheckType, MVT::i32, ++/*114914*/ OPC_MoveParent, ++/*114915*/ OPC_MoveChild, 10, ++/*114917*/ OPC_CheckInteger, 1, ++/*114919*/ OPC_CheckType, MVT::i32, ++/*114921*/ OPC_MoveParent, ++/*114922*/ OPC_MoveChild, 11, ++/*114924*/ OPC_CheckInteger, 1, ++/*114926*/ OPC_CheckType, MVT::i32, ++/*114928*/ OPC_MoveParent, ++/*114929*/ OPC_MoveChild, 12, ++/*114931*/ OPC_CheckInteger, 1, ++/*114933*/ OPC_CheckType, MVT::i32, ++/*114935*/ OPC_MoveParent, ++/*114936*/ OPC_MoveChild, 13, ++/*114938*/ OPC_CheckInteger, 1, ++/*114940*/ OPC_CheckType, MVT::i32, ++/*114942*/ OPC_MoveParent, ++/*114943*/ OPC_MoveChild, 14, ++/*114945*/ OPC_CheckInteger, 1, ++/*114947*/ OPC_CheckType, MVT::i32, ++/*114949*/ OPC_MoveParent, ++/*114950*/ OPC_MoveChild, 15, ++/*114952*/ OPC_CheckInteger, 1, ++/*114954*/ OPC_CheckType, MVT::i32, ++/*114956*/ OPC_MoveParent, ++/*114957*/ OPC_MoveChild, 16, ++/*114959*/ OPC_CheckInteger, 1, ++/*114961*/ OPC_CheckType, MVT::i32, ++/*114963*/ OPC_MoveParent, ++/*114964*/ OPC_MoveChild, 17, ++/*114966*/ OPC_CheckInteger, 1, ++/*114968*/ OPC_CheckType, MVT::i32, ++/*114970*/ OPC_MoveParent, ++/*114971*/ OPC_MoveChild, 18, ++/*114973*/ OPC_CheckInteger, 1, ++/*114975*/ OPC_CheckType, MVT::i32, ++/*114977*/ OPC_MoveParent, ++/*114978*/ OPC_MoveChild, 19, ++/*114980*/ OPC_CheckInteger, 1, ++/*114982*/ OPC_CheckType, MVT::i32, ++/*114984*/ OPC_MoveParent, ++/*114985*/ OPC_MoveChild, 20, ++/*114987*/ OPC_CheckInteger, 1, ++/*114989*/ OPC_CheckType, MVT::i32, ++/*114991*/ OPC_MoveParent, ++/*114992*/ OPC_MoveChild, 21, ++/*114994*/ OPC_CheckInteger, 1, ++/*114996*/ OPC_CheckType, MVT::i32, ++/*114998*/ OPC_MoveParent, ++/*114999*/ OPC_MoveChild, 22, ++/*115001*/ OPC_CheckInteger, 1, ++/*115003*/ OPC_CheckType, MVT::i32, ++/*115005*/ OPC_MoveParent, ++/*115006*/ OPC_MoveChild, 23, ++/*115008*/ OPC_CheckInteger, 1, ++/*115010*/ OPC_CheckType, MVT::i32, ++/*115012*/ OPC_MoveParent, ++/*115013*/ OPC_MoveChild, 24, ++/*115015*/ OPC_CheckInteger, 1, ++/*115017*/ OPC_CheckType, MVT::i32, ++/*115019*/ OPC_MoveParent, ++/*115020*/ OPC_MoveChild, 25, ++/*115022*/ OPC_CheckInteger, 1, ++/*115024*/ OPC_CheckType, MVT::i32, ++/*115026*/ OPC_MoveParent, ++/*115027*/ OPC_MoveChild, 26, ++/*115029*/ OPC_CheckInteger, 1, ++/*115031*/ OPC_CheckType, MVT::i32, ++/*115033*/ OPC_MoveParent, ++/*115034*/ OPC_MoveChild, 27, ++/*115036*/ OPC_CheckInteger, 1, ++/*115038*/ OPC_CheckType, MVT::i32, ++/*115040*/ OPC_MoveParent, ++/*115041*/ OPC_MoveChild, 28, ++/*115043*/ OPC_CheckInteger, 1, ++/*115045*/ OPC_CheckType, MVT::i32, ++/*115047*/ OPC_MoveParent, ++/*115048*/ OPC_MoveChild, 29, ++/*115050*/ OPC_CheckInteger, 1, ++/*115052*/ OPC_CheckType, MVT::i32, ++/*115054*/ OPC_MoveParent, ++/*115055*/ OPC_MoveChild, 30, ++/*115057*/ OPC_CheckInteger, 1, ++/*115059*/ OPC_CheckType, MVT::i32, ++/*115061*/ OPC_MoveParent, ++/*115062*/ OPC_MoveChild, 31, ++/*115064*/ OPC_CheckInteger, 1, ++/*115066*/ OPC_CheckType, MVT::i32, ++/*115068*/ OPC_MoveParent, ++/*115069*/ OPC_MoveParent, ++/*115070*/ OPC_MoveParent, ++/*115071*/ OPC_CheckChild1Same, 0, ++/*115073*/ OPC_MoveParent, ++/*115074*/ OPC_MoveChild1, ++/*115075*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*115078*/ OPC_CheckChild0Integer, 7, ++/*115080*/ OPC_CheckChild0Type, MVT::i32, ++/*115082*/ OPC_CheckChild1Integer, 7, ++/*115084*/ OPC_CheckChild1Type, MVT::i32, ++/*115086*/ OPC_CheckChild2Integer, 7, ++/*115088*/ OPC_CheckChild2Type, MVT::i32, ++/*115090*/ OPC_CheckChild3Integer, 7, ++/*115092*/ OPC_CheckChild3Type, MVT::i32, ++/*115094*/ OPC_CheckChild4Integer, 7, ++/*115096*/ OPC_CheckChild4Type, MVT::i32, ++/*115098*/ OPC_MoveChild5, ++/*115099*/ OPC_CheckInteger, 7, ++/*115101*/ OPC_CheckType, MVT::i32, ++/*115103*/ OPC_MoveParent, ++/*115104*/ OPC_MoveChild6, ++/*115105*/ OPC_CheckInteger, 7, ++/*115107*/ OPC_CheckType, MVT::i32, ++/*115109*/ OPC_MoveParent, ++/*115110*/ OPC_MoveChild7, ++/*115111*/ OPC_CheckInteger, 7, ++/*115113*/ OPC_CheckType, MVT::i32, ++/*115115*/ OPC_MoveParent, ++/*115116*/ OPC_MoveChild, 8, ++/*115118*/ OPC_CheckInteger, 7, ++/*115120*/ OPC_CheckType, MVT::i32, ++/*115122*/ OPC_MoveParent, ++/*115123*/ OPC_MoveChild, 9, ++/*115125*/ OPC_CheckInteger, 7, ++/*115127*/ OPC_CheckType, MVT::i32, ++/*115129*/ OPC_MoveParent, ++/*115130*/ OPC_MoveChild, 10, ++/*115132*/ OPC_CheckInteger, 7, ++/*115134*/ OPC_CheckType, MVT::i32, ++/*115136*/ OPC_MoveParent, ++/*115137*/ OPC_MoveChild, 11, ++/*115139*/ OPC_CheckInteger, 7, ++/*115141*/ OPC_CheckType, MVT::i32, ++/*115143*/ OPC_MoveParent, ++/*115144*/ OPC_MoveChild, 12, ++/*115146*/ OPC_CheckInteger, 7, ++/*115148*/ OPC_CheckType, MVT::i32, ++/*115150*/ OPC_MoveParent, ++/*115151*/ OPC_MoveChild, 13, ++/*115153*/ OPC_CheckInteger, 7, ++/*115155*/ OPC_CheckType, MVT::i32, ++/*115157*/ OPC_MoveParent, ++/*115158*/ OPC_MoveChild, 14, ++/*115160*/ OPC_CheckInteger, 7, ++/*115162*/ OPC_CheckType, MVT::i32, ++/*115164*/ OPC_MoveParent, ++/*115165*/ OPC_MoveChild, 15, ++/*115167*/ OPC_CheckInteger, 7, ++/*115169*/ OPC_CheckType, MVT::i32, ++/*115171*/ OPC_MoveParent, ++/*115172*/ OPC_MoveChild, 16, ++/*115174*/ OPC_CheckInteger, 7, ++/*115176*/ OPC_CheckType, MVT::i32, ++/*115178*/ OPC_MoveParent, ++/*115179*/ OPC_MoveChild, 17, ++/*115181*/ OPC_CheckInteger, 7, ++/*115183*/ OPC_CheckType, MVT::i32, ++/*115185*/ OPC_MoveParent, ++/*115186*/ OPC_MoveChild, 18, ++/*115188*/ OPC_CheckInteger, 7, ++/*115190*/ OPC_CheckType, MVT::i32, ++/*115192*/ OPC_MoveParent, ++/*115193*/ OPC_MoveChild, 19, ++/*115195*/ OPC_CheckInteger, 7, ++/*115197*/ OPC_CheckType, MVT::i32, ++/*115199*/ OPC_MoveParent, ++/*115200*/ OPC_MoveChild, 20, ++/*115202*/ OPC_CheckInteger, 7, ++/*115204*/ OPC_CheckType, MVT::i32, ++/*115206*/ OPC_MoveParent, ++/*115207*/ OPC_MoveChild, 21, ++/*115209*/ OPC_CheckInteger, 7, ++/*115211*/ OPC_CheckType, MVT::i32, ++/*115213*/ OPC_MoveParent, ++/*115214*/ OPC_MoveChild, 22, ++/*115216*/ OPC_CheckInteger, 7, ++/*115218*/ OPC_CheckType, MVT::i32, ++/*115220*/ OPC_MoveParent, ++/*115221*/ OPC_MoveChild, 23, ++/*115223*/ OPC_CheckInteger, 7, ++/*115225*/ OPC_CheckType, MVT::i32, ++/*115227*/ OPC_MoveParent, ++/*115228*/ OPC_MoveChild, 24, ++/*115230*/ OPC_CheckInteger, 7, ++/*115232*/ OPC_CheckType, MVT::i32, ++/*115234*/ OPC_MoveParent, ++/*115235*/ OPC_MoveChild, 25, ++/*115237*/ OPC_CheckInteger, 7, ++/*115239*/ OPC_CheckType, MVT::i32, ++/*115241*/ OPC_MoveParent, ++/*115242*/ OPC_MoveChild, 26, ++/*115244*/ OPC_CheckInteger, 7, ++/*115246*/ OPC_CheckType, MVT::i32, ++/*115248*/ OPC_MoveParent, ++/*115249*/ OPC_MoveChild, 27, ++/*115251*/ OPC_CheckInteger, 7, ++/*115253*/ OPC_CheckType, MVT::i32, ++/*115255*/ OPC_MoveParent, ++/*115256*/ OPC_MoveChild, 28, ++/*115258*/ OPC_CheckInteger, 7, ++/*115260*/ OPC_CheckType, MVT::i32, ++/*115262*/ OPC_MoveParent, ++/*115263*/ OPC_MoveChild, 29, ++/*115265*/ OPC_CheckInteger, 7, ++/*115267*/ OPC_CheckType, MVT::i32, ++/*115269*/ OPC_MoveParent, ++/*115270*/ OPC_MoveChild, 30, ++/*115272*/ OPC_CheckInteger, 7, ++/*115274*/ OPC_CheckType, MVT::i32, ++/*115276*/ OPC_MoveParent, ++/*115277*/ OPC_MoveChild, 31, ++/*115279*/ OPC_CheckInteger, 7, ++/*115281*/ OPC_CheckType, MVT::i32, ++/*115283*/ OPC_MoveParent, ++/*115284*/ OPC_CheckType, MVT::v32i8, ++/*115286*/ OPC_MoveParent, ++/*115287*/ OPC_MoveParent, ++/*115288*/ OPC_MoveParent, ++/*115289*/ OPC_MoveChild1, ++/*115290*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*115293*/ OPC_CheckChild0Integer, 1, ++/*115295*/ OPC_CheckChild0Type, MVT::i32, ++/*115297*/ OPC_CheckChild1Integer, 1, ++/*115299*/ OPC_CheckChild1Type, MVT::i32, ++/*115301*/ OPC_CheckChild2Integer, 1, ++/*115303*/ OPC_CheckChild2Type, MVT::i32, ++/*115305*/ OPC_CheckChild3Integer, 1, ++/*115307*/ OPC_CheckChild3Type, MVT::i32, ++/*115309*/ OPC_CheckChild4Integer, 1, ++/*115311*/ OPC_CheckChild4Type, MVT::i32, ++/*115313*/ OPC_MoveChild5, ++/*115314*/ OPC_CheckInteger, 1, ++/*115316*/ OPC_CheckType, MVT::i32, ++/*115318*/ OPC_MoveParent, ++/*115319*/ OPC_MoveChild6, ++/*115320*/ OPC_CheckInteger, 1, ++/*115322*/ OPC_CheckType, MVT::i32, ++/*115324*/ OPC_MoveParent, ++/*115325*/ OPC_MoveChild7, ++/*115326*/ OPC_CheckInteger, 1, ++/*115328*/ OPC_CheckType, MVT::i32, ++/*115330*/ OPC_MoveParent, ++/*115331*/ OPC_MoveChild, 8, ++/*115333*/ OPC_CheckInteger, 1, ++/*115335*/ OPC_CheckType, MVT::i32, ++/*115337*/ OPC_MoveParent, ++/*115338*/ OPC_MoveChild, 9, ++/*115340*/ OPC_CheckInteger, 1, ++/*115342*/ OPC_CheckType, MVT::i32, ++/*115344*/ OPC_MoveParent, ++/*115345*/ OPC_MoveChild, 10, ++/*115347*/ OPC_CheckInteger, 1, ++/*115349*/ OPC_CheckType, MVT::i32, ++/*115351*/ OPC_MoveParent, ++/*115352*/ OPC_MoveChild, 11, ++/*115354*/ OPC_CheckInteger, 1, ++/*115356*/ OPC_CheckType, MVT::i32, ++/*115358*/ OPC_MoveParent, ++/*115359*/ OPC_MoveChild, 12, ++/*115361*/ OPC_CheckInteger, 1, ++/*115363*/ OPC_CheckType, MVT::i32, ++/*115365*/ OPC_MoveParent, ++/*115366*/ OPC_MoveChild, 13, ++/*115368*/ OPC_CheckInteger, 1, ++/*115370*/ OPC_CheckType, MVT::i32, ++/*115372*/ OPC_MoveParent, ++/*115373*/ OPC_MoveChild, 14, ++/*115375*/ OPC_CheckInteger, 1, ++/*115377*/ OPC_CheckType, MVT::i32, ++/*115379*/ OPC_MoveParent, ++/*115380*/ OPC_MoveChild, 15, ++/*115382*/ OPC_CheckInteger, 1, ++/*115384*/ OPC_CheckType, MVT::i32, ++/*115386*/ OPC_MoveParent, ++/*115387*/ OPC_MoveChild, 16, ++/*115389*/ OPC_CheckInteger, 1, ++/*115391*/ OPC_CheckType, MVT::i32, ++/*115393*/ OPC_MoveParent, ++/*115394*/ OPC_MoveChild, 17, ++/*115396*/ OPC_CheckInteger, 1, ++/*115398*/ OPC_CheckType, MVT::i32, ++/*115400*/ OPC_MoveParent, ++/*115401*/ OPC_MoveChild, 18, ++/*115403*/ OPC_CheckInteger, 1, ++/*115405*/ OPC_CheckType, MVT::i32, ++/*115407*/ OPC_MoveParent, ++/*115408*/ OPC_MoveChild, 19, ++/*115410*/ OPC_CheckInteger, 1, ++/*115412*/ OPC_CheckType, MVT::i32, ++/*115414*/ OPC_MoveParent, ++/*115415*/ OPC_MoveChild, 20, ++/*115417*/ OPC_CheckInteger, 1, ++/*115419*/ OPC_CheckType, MVT::i32, ++/*115421*/ OPC_MoveParent, ++/*115422*/ OPC_MoveChild, 21, ++/*115424*/ OPC_CheckInteger, 1, ++/*115426*/ OPC_CheckType, MVT::i32, ++/*115428*/ OPC_MoveParent, ++/*115429*/ OPC_MoveChild, 22, ++/*115431*/ OPC_CheckInteger, 1, ++/*115433*/ OPC_CheckType, MVT::i32, ++/*115435*/ OPC_MoveParent, ++/*115436*/ OPC_MoveChild, 23, ++/*115438*/ OPC_CheckInteger, 1, ++/*115440*/ OPC_CheckType, MVT::i32, ++/*115442*/ OPC_MoveParent, ++/*115443*/ OPC_MoveChild, 24, ++/*115445*/ OPC_CheckInteger, 1, ++/*115447*/ OPC_CheckType, MVT::i32, ++/*115449*/ OPC_MoveParent, ++/*115450*/ OPC_MoveChild, 25, ++/*115452*/ OPC_CheckInteger, 1, ++/*115454*/ OPC_CheckType, MVT::i32, ++/*115456*/ OPC_MoveParent, ++/*115457*/ OPC_MoveChild, 26, ++/*115459*/ OPC_CheckInteger, 1, ++/*115461*/ OPC_CheckType, MVT::i32, ++/*115463*/ OPC_MoveParent, ++/*115464*/ OPC_MoveChild, 27, ++/*115466*/ OPC_CheckInteger, 1, ++/*115468*/ OPC_CheckType, MVT::i32, ++/*115470*/ OPC_MoveParent, ++/*115471*/ OPC_MoveChild, 28, ++/*115473*/ OPC_CheckInteger, 1, ++/*115475*/ OPC_CheckType, MVT::i32, ++/*115477*/ OPC_MoveParent, ++/*115478*/ OPC_MoveChild, 29, ++/*115480*/ OPC_CheckInteger, 1, ++/*115482*/ OPC_CheckType, MVT::i32, ++/*115484*/ OPC_MoveParent, ++/*115485*/ OPC_MoveChild, 30, ++/*115487*/ OPC_CheckInteger, 1, ++/*115489*/ OPC_CheckType, MVT::i32, ++/*115491*/ OPC_MoveParent, ++/*115492*/ OPC_MoveChild, 31, ++/*115494*/ OPC_CheckInteger, 1, ++/*115496*/ OPC_CheckType, MVT::i32, ++/*115498*/ OPC_MoveParent, ++/*115499*/ OPC_CheckType, MVT::v32i8, ++/*115501*/ OPC_MoveParent, ++/*115502*/ OPC_CheckType, MVT::v32i8, ++/*115504*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*115506*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*115514*/ /*Scope*/ 17|128,5/*657*/, /*->116173*/ ++/*115516*/ OPC_CheckChild0Same, 0, ++/*115518*/ OPC_CheckChild1Same, 1, ++/*115520*/ OPC_MoveParent, ++/*115521*/ OPC_MoveChild1, ++/*115522*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*115525*/ OPC_CheckChild0Integer, 1, ++/*115527*/ OPC_CheckChild0Type, MVT::i32, ++/*115529*/ OPC_CheckChild1Integer, 1, ++/*115531*/ OPC_CheckChild1Type, MVT::i32, ++/*115533*/ OPC_CheckChild2Integer, 1, ++/*115535*/ OPC_CheckChild2Type, MVT::i32, ++/*115537*/ OPC_CheckChild3Integer, 1, ++/*115539*/ OPC_CheckChild3Type, MVT::i32, ++/*115541*/ OPC_CheckChild4Integer, 1, ++/*115543*/ OPC_CheckChild4Type, MVT::i32, ++/*115545*/ OPC_MoveChild5, ++/*115546*/ OPC_CheckInteger, 1, ++/*115548*/ OPC_CheckType, MVT::i32, ++/*115550*/ OPC_MoveParent, ++/*115551*/ OPC_MoveChild6, ++/*115552*/ OPC_CheckInteger, 1, ++/*115554*/ OPC_CheckType, MVT::i32, ++/*115556*/ OPC_MoveParent, ++/*115557*/ OPC_MoveChild7, ++/*115558*/ OPC_CheckInteger, 1, ++/*115560*/ OPC_CheckType, MVT::i32, ++/*115562*/ OPC_MoveParent, ++/*115563*/ OPC_MoveChild, 8, ++/*115565*/ OPC_CheckInteger, 1, ++/*115567*/ OPC_CheckType, MVT::i32, ++/*115569*/ OPC_MoveParent, ++/*115570*/ OPC_MoveChild, 9, ++/*115572*/ OPC_CheckInteger, 1, ++/*115574*/ OPC_CheckType, MVT::i32, ++/*115576*/ OPC_MoveParent, ++/*115577*/ OPC_MoveChild, 10, ++/*115579*/ OPC_CheckInteger, 1, ++/*115581*/ OPC_CheckType, MVT::i32, ++/*115583*/ OPC_MoveParent, ++/*115584*/ OPC_MoveChild, 11, ++/*115586*/ OPC_CheckInteger, 1, ++/*115588*/ OPC_CheckType, MVT::i32, ++/*115590*/ OPC_MoveParent, ++/*115591*/ OPC_MoveChild, 12, ++/*115593*/ OPC_CheckInteger, 1, ++/*115595*/ OPC_CheckType, MVT::i32, ++/*115597*/ OPC_MoveParent, ++/*115598*/ OPC_MoveChild, 13, ++/*115600*/ OPC_CheckInteger, 1, ++/*115602*/ OPC_CheckType, MVT::i32, ++/*115604*/ OPC_MoveParent, ++/*115605*/ OPC_MoveChild, 14, ++/*115607*/ OPC_CheckInteger, 1, ++/*115609*/ OPC_CheckType, MVT::i32, ++/*115611*/ OPC_MoveParent, ++/*115612*/ OPC_MoveChild, 15, ++/*115614*/ OPC_CheckInteger, 1, ++/*115616*/ OPC_CheckType, MVT::i32, ++/*115618*/ OPC_MoveParent, ++/*115619*/ OPC_MoveChild, 16, ++/*115621*/ OPC_CheckInteger, 1, ++/*115623*/ OPC_CheckType, MVT::i32, ++/*115625*/ OPC_MoveParent, ++/*115626*/ OPC_MoveChild, 17, ++/*115628*/ OPC_CheckInteger, 1, ++/*115630*/ OPC_CheckType, MVT::i32, ++/*115632*/ OPC_MoveParent, ++/*115633*/ OPC_MoveChild, 18, ++/*115635*/ OPC_CheckInteger, 1, ++/*115637*/ OPC_CheckType, MVT::i32, ++/*115639*/ OPC_MoveParent, ++/*115640*/ OPC_MoveChild, 19, ++/*115642*/ OPC_CheckInteger, 1, ++/*115644*/ OPC_CheckType, MVT::i32, ++/*115646*/ OPC_MoveParent, ++/*115647*/ OPC_MoveChild, 20, ++/*115649*/ OPC_CheckInteger, 1, ++/*115651*/ OPC_CheckType, MVT::i32, ++/*115653*/ OPC_MoveParent, ++/*115654*/ OPC_MoveChild, 21, ++/*115656*/ OPC_CheckInteger, 1, ++/*115658*/ OPC_CheckType, MVT::i32, ++/*115660*/ OPC_MoveParent, ++/*115661*/ OPC_MoveChild, 22, ++/*115663*/ OPC_CheckInteger, 1, ++/*115665*/ OPC_CheckType, MVT::i32, ++/*115667*/ OPC_MoveParent, ++/*115668*/ OPC_MoveChild, 23, ++/*115670*/ OPC_CheckInteger, 1, ++/*115672*/ OPC_CheckType, MVT::i32, ++/*115674*/ OPC_MoveParent, ++/*115675*/ OPC_MoveChild, 24, ++/*115677*/ OPC_CheckInteger, 1, ++/*115679*/ OPC_CheckType, MVT::i32, ++/*115681*/ OPC_MoveParent, ++/*115682*/ OPC_MoveChild, 25, ++/*115684*/ OPC_CheckInteger, 1, ++/*115686*/ OPC_CheckType, MVT::i32, ++/*115688*/ OPC_MoveParent, ++/*115689*/ OPC_MoveChild, 26, ++/*115691*/ OPC_CheckInteger, 1, ++/*115693*/ OPC_CheckType, MVT::i32, ++/*115695*/ OPC_MoveParent, ++/*115696*/ OPC_MoveChild, 27, ++/*115698*/ OPC_CheckInteger, 1, ++/*115700*/ OPC_CheckType, MVT::i32, ++/*115702*/ OPC_MoveParent, ++/*115703*/ OPC_MoveChild, 28, ++/*115705*/ OPC_CheckInteger, 1, ++/*115707*/ OPC_CheckType, MVT::i32, ++/*115709*/ OPC_MoveParent, ++/*115710*/ OPC_MoveChild, 29, ++/*115712*/ OPC_CheckInteger, 1, ++/*115714*/ OPC_CheckType, MVT::i32, ++/*115716*/ OPC_MoveParent, ++/*115717*/ OPC_MoveChild, 30, ++/*115719*/ OPC_CheckInteger, 1, ++/*115721*/ OPC_CheckType, MVT::i32, ++/*115723*/ OPC_MoveParent, ++/*115724*/ OPC_MoveChild, 31, ++/*115726*/ OPC_CheckInteger, 1, ++/*115728*/ OPC_CheckType, MVT::i32, ++/*115730*/ OPC_MoveParent, ++/*115731*/ OPC_MoveParent, ++/*115732*/ OPC_MoveParent, ++/*115733*/ OPC_MoveChild1, ++/*115734*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*115737*/ OPC_CheckChild0Integer, 7, ++/*115739*/ OPC_CheckChild0Type, MVT::i32, ++/*115741*/ OPC_CheckChild1Integer, 7, ++/*115743*/ OPC_CheckChild1Type, MVT::i32, ++/*115745*/ OPC_CheckChild2Integer, 7, ++/*115747*/ OPC_CheckChild2Type, MVT::i32, ++/*115749*/ OPC_CheckChild3Integer, 7, ++/*115751*/ OPC_CheckChild3Type, MVT::i32, ++/*115753*/ OPC_CheckChild4Integer, 7, ++/*115755*/ OPC_CheckChild4Type, MVT::i32, ++/*115757*/ OPC_MoveChild5, ++/*115758*/ OPC_CheckInteger, 7, ++/*115760*/ OPC_CheckType, MVT::i32, ++/*115762*/ OPC_MoveParent, ++/*115763*/ OPC_MoveChild6, ++/*115764*/ OPC_CheckInteger, 7, ++/*115766*/ OPC_CheckType, MVT::i32, ++/*115768*/ OPC_MoveParent, ++/*115769*/ OPC_MoveChild7, ++/*115770*/ OPC_CheckInteger, 7, ++/*115772*/ OPC_CheckType, MVT::i32, ++/*115774*/ OPC_MoveParent, ++/*115775*/ OPC_MoveChild, 8, ++/*115777*/ OPC_CheckInteger, 7, ++/*115779*/ OPC_CheckType, MVT::i32, ++/*115781*/ OPC_MoveParent, ++/*115782*/ OPC_MoveChild, 9, ++/*115784*/ OPC_CheckInteger, 7, ++/*115786*/ OPC_CheckType, MVT::i32, ++/*115788*/ OPC_MoveParent, ++/*115789*/ OPC_MoveChild, 10, ++/*115791*/ OPC_CheckInteger, 7, ++/*115793*/ OPC_CheckType, MVT::i32, ++/*115795*/ OPC_MoveParent, ++/*115796*/ OPC_MoveChild, 11, ++/*115798*/ OPC_CheckInteger, 7, ++/*115800*/ OPC_CheckType, MVT::i32, ++/*115802*/ OPC_MoveParent, ++/*115803*/ OPC_MoveChild, 12, ++/*115805*/ OPC_CheckInteger, 7, ++/*115807*/ OPC_CheckType, MVT::i32, ++/*115809*/ OPC_MoveParent, ++/*115810*/ OPC_MoveChild, 13, ++/*115812*/ OPC_CheckInteger, 7, ++/*115814*/ OPC_CheckType, MVT::i32, ++/*115816*/ OPC_MoveParent, ++/*115817*/ OPC_MoveChild, 14, ++/*115819*/ OPC_CheckInteger, 7, ++/*115821*/ OPC_CheckType, MVT::i32, ++/*115823*/ OPC_MoveParent, ++/*115824*/ OPC_MoveChild, 15, ++/*115826*/ OPC_CheckInteger, 7, ++/*115828*/ OPC_CheckType, MVT::i32, ++/*115830*/ OPC_MoveParent, ++/*115831*/ OPC_MoveChild, 16, ++/*115833*/ OPC_CheckInteger, 7, ++/*115835*/ OPC_CheckType, MVT::i32, ++/*115837*/ OPC_MoveParent, ++/*115838*/ OPC_MoveChild, 17, ++/*115840*/ OPC_CheckInteger, 7, ++/*115842*/ OPC_CheckType, MVT::i32, ++/*115844*/ OPC_MoveParent, ++/*115845*/ OPC_MoveChild, 18, ++/*115847*/ OPC_CheckInteger, 7, ++/*115849*/ OPC_CheckType, MVT::i32, ++/*115851*/ OPC_MoveParent, ++/*115852*/ OPC_MoveChild, 19, ++/*115854*/ OPC_CheckInteger, 7, ++/*115856*/ OPC_CheckType, MVT::i32, ++/*115858*/ OPC_MoveParent, ++/*115859*/ OPC_MoveChild, 20, ++/*115861*/ OPC_CheckInteger, 7, ++/*115863*/ OPC_CheckType, MVT::i32, ++/*115865*/ OPC_MoveParent, ++/*115866*/ OPC_MoveChild, 21, ++/*115868*/ OPC_CheckInteger, 7, ++/*115870*/ OPC_CheckType, MVT::i32, ++/*115872*/ OPC_MoveParent, ++/*115873*/ OPC_MoveChild, 22, ++/*115875*/ OPC_CheckInteger, 7, ++/*115877*/ OPC_CheckType, MVT::i32, ++/*115879*/ OPC_MoveParent, ++/*115880*/ OPC_MoveChild, 23, ++/*115882*/ OPC_CheckInteger, 7, ++/*115884*/ OPC_CheckType, MVT::i32, ++/*115886*/ OPC_MoveParent, ++/*115887*/ OPC_MoveChild, 24, ++/*115889*/ OPC_CheckInteger, 7, ++/*115891*/ OPC_CheckType, MVT::i32, ++/*115893*/ OPC_MoveParent, ++/*115894*/ OPC_MoveChild, 25, ++/*115896*/ OPC_CheckInteger, 7, ++/*115898*/ OPC_CheckType, MVT::i32, ++/*115900*/ OPC_MoveParent, ++/*115901*/ OPC_MoveChild, 26, ++/*115903*/ OPC_CheckInteger, 7, ++/*115905*/ OPC_CheckType, MVT::i32, ++/*115907*/ OPC_MoveParent, ++/*115908*/ OPC_MoveChild, 27, ++/*115910*/ OPC_CheckInteger, 7, ++/*115912*/ OPC_CheckType, MVT::i32, ++/*115914*/ OPC_MoveParent, ++/*115915*/ OPC_MoveChild, 28, ++/*115917*/ OPC_CheckInteger, 7, ++/*115919*/ OPC_CheckType, MVT::i32, ++/*115921*/ OPC_MoveParent, ++/*115922*/ OPC_MoveChild, 29, ++/*115924*/ OPC_CheckInteger, 7, ++/*115926*/ OPC_CheckType, MVT::i32, ++/*115928*/ OPC_MoveParent, ++/*115929*/ OPC_MoveChild, 30, ++/*115931*/ OPC_CheckInteger, 7, ++/*115933*/ OPC_CheckType, MVT::i32, ++/*115935*/ OPC_MoveParent, ++/*115936*/ OPC_MoveChild, 31, ++/*115938*/ OPC_CheckInteger, 7, ++/*115940*/ OPC_CheckType, MVT::i32, ++/*115942*/ OPC_MoveParent, ++/*115943*/ OPC_CheckType, MVT::v32i8, ++/*115945*/ OPC_MoveParent, ++/*115946*/ OPC_MoveParent, ++/*115947*/ OPC_MoveParent, ++/*115948*/ OPC_MoveChild1, ++/*115949*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*115952*/ OPC_CheckChild0Integer, 1, ++/*115954*/ OPC_CheckChild0Type, MVT::i32, ++/*115956*/ OPC_CheckChild1Integer, 1, ++/*115958*/ OPC_CheckChild1Type, MVT::i32, ++/*115960*/ OPC_CheckChild2Integer, 1, ++/*115962*/ OPC_CheckChild2Type, MVT::i32, ++/*115964*/ OPC_CheckChild3Integer, 1, ++/*115966*/ OPC_CheckChild3Type, MVT::i32, ++/*115968*/ OPC_CheckChild4Integer, 1, ++/*115970*/ OPC_CheckChild4Type, MVT::i32, ++/*115972*/ OPC_MoveChild5, ++/*115973*/ OPC_CheckInteger, 1, ++/*115975*/ OPC_CheckType, MVT::i32, ++/*115977*/ OPC_MoveParent, ++/*115978*/ OPC_MoveChild6, ++/*115979*/ OPC_CheckInteger, 1, ++/*115981*/ OPC_CheckType, MVT::i32, ++/*115983*/ OPC_MoveParent, ++/*115984*/ OPC_MoveChild7, ++/*115985*/ OPC_CheckInteger, 1, ++/*115987*/ OPC_CheckType, MVT::i32, ++/*115989*/ OPC_MoveParent, ++/*115990*/ OPC_MoveChild, 8, ++/*115992*/ OPC_CheckInteger, 1, ++/*115994*/ OPC_CheckType, MVT::i32, ++/*115996*/ OPC_MoveParent, ++/*115997*/ OPC_MoveChild, 9, ++/*115999*/ OPC_CheckInteger, 1, ++/*116001*/ OPC_CheckType, MVT::i32, ++/*116003*/ OPC_MoveParent, ++/*116004*/ OPC_MoveChild, 10, ++/*116006*/ OPC_CheckInteger, 1, ++/*116008*/ OPC_CheckType, MVT::i32, ++/*116010*/ OPC_MoveParent, ++/*116011*/ OPC_MoveChild, 11, ++/*116013*/ OPC_CheckInteger, 1, ++/*116015*/ OPC_CheckType, MVT::i32, ++/*116017*/ OPC_MoveParent, ++/*116018*/ OPC_MoveChild, 12, ++/*116020*/ OPC_CheckInteger, 1, ++/*116022*/ OPC_CheckType, MVT::i32, ++/*116024*/ OPC_MoveParent, ++/*116025*/ OPC_MoveChild, 13, ++/*116027*/ OPC_CheckInteger, 1, ++/*116029*/ OPC_CheckType, MVT::i32, ++/*116031*/ OPC_MoveParent, ++/*116032*/ OPC_MoveChild, 14, ++/*116034*/ OPC_CheckInteger, 1, ++/*116036*/ OPC_CheckType, MVT::i32, ++/*116038*/ OPC_MoveParent, ++/*116039*/ OPC_MoveChild, 15, ++/*116041*/ OPC_CheckInteger, 1, ++/*116043*/ OPC_CheckType, MVT::i32, ++/*116045*/ OPC_MoveParent, ++/*116046*/ OPC_MoveChild, 16, ++/*116048*/ OPC_CheckInteger, 1, ++/*116050*/ OPC_CheckType, MVT::i32, ++/*116052*/ OPC_MoveParent, ++/*116053*/ OPC_MoveChild, 17, ++/*116055*/ OPC_CheckInteger, 1, ++/*116057*/ OPC_CheckType, MVT::i32, ++/*116059*/ OPC_MoveParent, ++/*116060*/ OPC_MoveChild, 18, ++/*116062*/ OPC_CheckInteger, 1, ++/*116064*/ OPC_CheckType, MVT::i32, ++/*116066*/ OPC_MoveParent, ++/*116067*/ OPC_MoveChild, 19, ++/*116069*/ OPC_CheckInteger, 1, ++/*116071*/ OPC_CheckType, MVT::i32, ++/*116073*/ OPC_MoveParent, ++/*116074*/ OPC_MoveChild, 20, ++/*116076*/ OPC_CheckInteger, 1, ++/*116078*/ OPC_CheckType, MVT::i32, ++/*116080*/ OPC_MoveParent, ++/*116081*/ OPC_MoveChild, 21, ++/*116083*/ OPC_CheckInteger, 1, ++/*116085*/ OPC_CheckType, MVT::i32, ++/*116087*/ OPC_MoveParent, ++/*116088*/ OPC_MoveChild, 22, ++/*116090*/ OPC_CheckInteger, 1, ++/*116092*/ OPC_CheckType, MVT::i32, ++/*116094*/ OPC_MoveParent, ++/*116095*/ OPC_MoveChild, 23, ++/*116097*/ OPC_CheckInteger, 1, ++/*116099*/ OPC_CheckType, MVT::i32, ++/*116101*/ OPC_MoveParent, ++/*116102*/ OPC_MoveChild, 24, ++/*116104*/ OPC_CheckInteger, 1, ++/*116106*/ OPC_CheckType, MVT::i32, ++/*116108*/ OPC_MoveParent, ++/*116109*/ OPC_MoveChild, 25, ++/*116111*/ OPC_CheckInteger, 1, ++/*116113*/ OPC_CheckType, MVT::i32, ++/*116115*/ OPC_MoveParent, ++/*116116*/ OPC_MoveChild, 26, ++/*116118*/ OPC_CheckInteger, 1, ++/*116120*/ OPC_CheckType, MVT::i32, ++/*116122*/ OPC_MoveParent, ++/*116123*/ OPC_MoveChild, 27, ++/*116125*/ OPC_CheckInteger, 1, ++/*116127*/ OPC_CheckType, MVT::i32, ++/*116129*/ OPC_MoveParent, ++/*116130*/ OPC_MoveChild, 28, ++/*116132*/ OPC_CheckInteger, 1, ++/*116134*/ OPC_CheckType, MVT::i32, ++/*116136*/ OPC_MoveParent, ++/*116137*/ OPC_MoveChild, 29, ++/*116139*/ OPC_CheckInteger, 1, ++/*116141*/ OPC_CheckType, MVT::i32, ++/*116143*/ OPC_MoveParent, ++/*116144*/ OPC_MoveChild, 30, ++/*116146*/ OPC_CheckInteger, 1, ++/*116148*/ OPC_CheckType, MVT::i32, ++/*116150*/ OPC_MoveParent, ++/*116151*/ OPC_MoveChild, 31, ++/*116153*/ OPC_CheckInteger, 1, ++/*116155*/ OPC_CheckType, MVT::i32, ++/*116157*/ OPC_MoveParent, ++/*116158*/ OPC_CheckType, MVT::v32i8, ++/*116160*/ OPC_MoveParent, ++/*116161*/ OPC_CheckType, MVT::v32i8, ++/*116163*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*116165*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*116173*/ /*Scope*/ 17|128,5/*657*/, /*->116832*/ ++/*116175*/ OPC_CheckChild0Same, 1, ++/*116177*/ OPC_CheckChild1Same, 0, ++/*116179*/ OPC_MoveParent, ++/*116180*/ OPC_MoveChild1, ++/*116181*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*116184*/ OPC_CheckChild0Integer, 1, ++/*116186*/ OPC_CheckChild0Type, MVT::i32, ++/*116188*/ OPC_CheckChild1Integer, 1, ++/*116190*/ OPC_CheckChild1Type, MVT::i32, ++/*116192*/ OPC_CheckChild2Integer, 1, ++/*116194*/ OPC_CheckChild2Type, MVT::i32, ++/*116196*/ OPC_CheckChild3Integer, 1, ++/*116198*/ OPC_CheckChild3Type, MVT::i32, ++/*116200*/ OPC_CheckChild4Integer, 1, ++/*116202*/ OPC_CheckChild4Type, MVT::i32, ++/*116204*/ OPC_MoveChild5, ++/*116205*/ OPC_CheckInteger, 1, ++/*116207*/ OPC_CheckType, MVT::i32, ++/*116209*/ OPC_MoveParent, ++/*116210*/ OPC_MoveChild6, ++/*116211*/ OPC_CheckInteger, 1, ++/*116213*/ OPC_CheckType, MVT::i32, ++/*116215*/ OPC_MoveParent, ++/*116216*/ OPC_MoveChild7, ++/*116217*/ OPC_CheckInteger, 1, ++/*116219*/ OPC_CheckType, MVT::i32, ++/*116221*/ OPC_MoveParent, ++/*116222*/ OPC_MoveChild, 8, ++/*116224*/ OPC_CheckInteger, 1, ++/*116226*/ OPC_CheckType, MVT::i32, ++/*116228*/ OPC_MoveParent, ++/*116229*/ OPC_MoveChild, 9, ++/*116231*/ OPC_CheckInteger, 1, ++/*116233*/ OPC_CheckType, MVT::i32, ++/*116235*/ OPC_MoveParent, ++/*116236*/ OPC_MoveChild, 10, ++/*116238*/ OPC_CheckInteger, 1, ++/*116240*/ OPC_CheckType, MVT::i32, ++/*116242*/ OPC_MoveParent, ++/*116243*/ OPC_MoveChild, 11, ++/*116245*/ OPC_CheckInteger, 1, ++/*116247*/ OPC_CheckType, MVT::i32, ++/*116249*/ OPC_MoveParent, ++/*116250*/ OPC_MoveChild, 12, ++/*116252*/ OPC_CheckInteger, 1, ++/*116254*/ OPC_CheckType, MVT::i32, ++/*116256*/ OPC_MoveParent, ++/*116257*/ OPC_MoveChild, 13, ++/*116259*/ OPC_CheckInteger, 1, ++/*116261*/ OPC_CheckType, MVT::i32, ++/*116263*/ OPC_MoveParent, ++/*116264*/ OPC_MoveChild, 14, ++/*116266*/ OPC_CheckInteger, 1, ++/*116268*/ OPC_CheckType, MVT::i32, ++/*116270*/ OPC_MoveParent, ++/*116271*/ OPC_MoveChild, 15, ++/*116273*/ OPC_CheckInteger, 1, ++/*116275*/ OPC_CheckType, MVT::i32, ++/*116277*/ OPC_MoveParent, ++/*116278*/ OPC_MoveChild, 16, ++/*116280*/ OPC_CheckInteger, 1, ++/*116282*/ OPC_CheckType, MVT::i32, ++/*116284*/ OPC_MoveParent, ++/*116285*/ OPC_MoveChild, 17, ++/*116287*/ OPC_CheckInteger, 1, ++/*116289*/ OPC_CheckType, MVT::i32, ++/*116291*/ OPC_MoveParent, ++/*116292*/ OPC_MoveChild, 18, ++/*116294*/ OPC_CheckInteger, 1, ++/*116296*/ OPC_CheckType, MVT::i32, ++/*116298*/ OPC_MoveParent, ++/*116299*/ OPC_MoveChild, 19, ++/*116301*/ OPC_CheckInteger, 1, ++/*116303*/ OPC_CheckType, MVT::i32, ++/*116305*/ OPC_MoveParent, ++/*116306*/ OPC_MoveChild, 20, ++/*116308*/ OPC_CheckInteger, 1, ++/*116310*/ OPC_CheckType, MVT::i32, ++/*116312*/ OPC_MoveParent, ++/*116313*/ OPC_MoveChild, 21, ++/*116315*/ OPC_CheckInteger, 1, ++/*116317*/ OPC_CheckType, MVT::i32, ++/*116319*/ OPC_MoveParent, ++/*116320*/ OPC_MoveChild, 22, ++/*116322*/ OPC_CheckInteger, 1, ++/*116324*/ OPC_CheckType, MVT::i32, ++/*116326*/ OPC_MoveParent, ++/*116327*/ OPC_MoveChild, 23, ++/*116329*/ OPC_CheckInteger, 1, ++/*116331*/ OPC_CheckType, MVT::i32, ++/*116333*/ OPC_MoveParent, ++/*116334*/ OPC_MoveChild, 24, ++/*116336*/ OPC_CheckInteger, 1, ++/*116338*/ OPC_CheckType, MVT::i32, ++/*116340*/ OPC_MoveParent, ++/*116341*/ OPC_MoveChild, 25, ++/*116343*/ OPC_CheckInteger, 1, ++/*116345*/ OPC_CheckType, MVT::i32, ++/*116347*/ OPC_MoveParent, ++/*116348*/ OPC_MoveChild, 26, ++/*116350*/ OPC_CheckInteger, 1, ++/*116352*/ OPC_CheckType, MVT::i32, ++/*116354*/ OPC_MoveParent, ++/*116355*/ OPC_MoveChild, 27, ++/*116357*/ OPC_CheckInteger, 1, ++/*116359*/ OPC_CheckType, MVT::i32, ++/*116361*/ OPC_MoveParent, ++/*116362*/ OPC_MoveChild, 28, ++/*116364*/ OPC_CheckInteger, 1, ++/*116366*/ OPC_CheckType, MVT::i32, ++/*116368*/ OPC_MoveParent, ++/*116369*/ OPC_MoveChild, 29, ++/*116371*/ OPC_CheckInteger, 1, ++/*116373*/ OPC_CheckType, MVT::i32, ++/*116375*/ OPC_MoveParent, ++/*116376*/ OPC_MoveChild, 30, ++/*116378*/ OPC_CheckInteger, 1, ++/*116380*/ OPC_CheckType, MVT::i32, ++/*116382*/ OPC_MoveParent, ++/*116383*/ OPC_MoveChild, 31, ++/*116385*/ OPC_CheckInteger, 1, ++/*116387*/ OPC_CheckType, MVT::i32, ++/*116389*/ OPC_MoveParent, ++/*116390*/ OPC_MoveParent, ++/*116391*/ OPC_MoveParent, ++/*116392*/ OPC_MoveChild1, ++/*116393*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*116396*/ OPC_CheckChild0Integer, 7, ++/*116398*/ OPC_CheckChild0Type, MVT::i32, ++/*116400*/ OPC_CheckChild1Integer, 7, ++/*116402*/ OPC_CheckChild1Type, MVT::i32, ++/*116404*/ OPC_CheckChild2Integer, 7, ++/*116406*/ OPC_CheckChild2Type, MVT::i32, ++/*116408*/ OPC_CheckChild3Integer, 7, ++/*116410*/ OPC_CheckChild3Type, MVT::i32, ++/*116412*/ OPC_CheckChild4Integer, 7, ++/*116414*/ OPC_CheckChild4Type, MVT::i32, ++/*116416*/ OPC_MoveChild5, ++/*116417*/ OPC_CheckInteger, 7, ++/*116419*/ OPC_CheckType, MVT::i32, ++/*116421*/ OPC_MoveParent, ++/*116422*/ OPC_MoveChild6, ++/*116423*/ OPC_CheckInteger, 7, ++/*116425*/ OPC_CheckType, MVT::i32, ++/*116427*/ OPC_MoveParent, ++/*116428*/ OPC_MoveChild7, ++/*116429*/ OPC_CheckInteger, 7, ++/*116431*/ OPC_CheckType, MVT::i32, ++/*116433*/ OPC_MoveParent, ++/*116434*/ OPC_MoveChild, 8, ++/*116436*/ OPC_CheckInteger, 7, ++/*116438*/ OPC_CheckType, MVT::i32, ++/*116440*/ OPC_MoveParent, ++/*116441*/ OPC_MoveChild, 9, ++/*116443*/ OPC_CheckInteger, 7, ++/*116445*/ OPC_CheckType, MVT::i32, ++/*116447*/ OPC_MoveParent, ++/*116448*/ OPC_MoveChild, 10, ++/*116450*/ OPC_CheckInteger, 7, ++/*116452*/ OPC_CheckType, MVT::i32, ++/*116454*/ OPC_MoveParent, ++/*116455*/ OPC_MoveChild, 11, ++/*116457*/ OPC_CheckInteger, 7, ++/*116459*/ OPC_CheckType, MVT::i32, ++/*116461*/ OPC_MoveParent, ++/*116462*/ OPC_MoveChild, 12, ++/*116464*/ OPC_CheckInteger, 7, ++/*116466*/ OPC_CheckType, MVT::i32, ++/*116468*/ OPC_MoveParent, ++/*116469*/ OPC_MoveChild, 13, ++/*116471*/ OPC_CheckInteger, 7, ++/*116473*/ OPC_CheckType, MVT::i32, ++/*116475*/ OPC_MoveParent, ++/*116476*/ OPC_MoveChild, 14, ++/*116478*/ OPC_CheckInteger, 7, ++/*116480*/ OPC_CheckType, MVT::i32, ++/*116482*/ OPC_MoveParent, ++/*116483*/ OPC_MoveChild, 15, ++/*116485*/ OPC_CheckInteger, 7, ++/*116487*/ OPC_CheckType, MVT::i32, ++/*116489*/ OPC_MoveParent, ++/*116490*/ OPC_MoveChild, 16, ++/*116492*/ OPC_CheckInteger, 7, ++/*116494*/ OPC_CheckType, MVT::i32, ++/*116496*/ OPC_MoveParent, ++/*116497*/ OPC_MoveChild, 17, ++/*116499*/ OPC_CheckInteger, 7, ++/*116501*/ OPC_CheckType, MVT::i32, ++/*116503*/ OPC_MoveParent, ++/*116504*/ OPC_MoveChild, 18, ++/*116506*/ OPC_CheckInteger, 7, ++/*116508*/ OPC_CheckType, MVT::i32, ++/*116510*/ OPC_MoveParent, ++/*116511*/ OPC_MoveChild, 19, ++/*116513*/ OPC_CheckInteger, 7, ++/*116515*/ OPC_CheckType, MVT::i32, ++/*116517*/ OPC_MoveParent, ++/*116518*/ OPC_MoveChild, 20, ++/*116520*/ OPC_CheckInteger, 7, ++/*116522*/ OPC_CheckType, MVT::i32, ++/*116524*/ OPC_MoveParent, ++/*116525*/ OPC_MoveChild, 21, ++/*116527*/ OPC_CheckInteger, 7, ++/*116529*/ OPC_CheckType, MVT::i32, ++/*116531*/ OPC_MoveParent, ++/*116532*/ OPC_MoveChild, 22, ++/*116534*/ OPC_CheckInteger, 7, ++/*116536*/ OPC_CheckType, MVT::i32, ++/*116538*/ OPC_MoveParent, ++/*116539*/ OPC_MoveChild, 23, ++/*116541*/ OPC_CheckInteger, 7, ++/*116543*/ OPC_CheckType, MVT::i32, ++/*116545*/ OPC_MoveParent, ++/*116546*/ OPC_MoveChild, 24, ++/*116548*/ OPC_CheckInteger, 7, ++/*116550*/ OPC_CheckType, MVT::i32, ++/*116552*/ OPC_MoveParent, ++/*116553*/ OPC_MoveChild, 25, ++/*116555*/ OPC_CheckInteger, 7, ++/*116557*/ OPC_CheckType, MVT::i32, ++/*116559*/ OPC_MoveParent, ++/*116560*/ OPC_MoveChild, 26, ++/*116562*/ OPC_CheckInteger, 7, ++/*116564*/ OPC_CheckType, MVT::i32, ++/*116566*/ OPC_MoveParent, ++/*116567*/ OPC_MoveChild, 27, ++/*116569*/ OPC_CheckInteger, 7, ++/*116571*/ OPC_CheckType, MVT::i32, ++/*116573*/ OPC_MoveParent, ++/*116574*/ OPC_MoveChild, 28, ++/*116576*/ OPC_CheckInteger, 7, ++/*116578*/ OPC_CheckType, MVT::i32, ++/*116580*/ OPC_MoveParent, ++/*116581*/ OPC_MoveChild, 29, ++/*116583*/ OPC_CheckInteger, 7, ++/*116585*/ OPC_CheckType, MVT::i32, ++/*116587*/ OPC_MoveParent, ++/*116588*/ OPC_MoveChild, 30, ++/*116590*/ OPC_CheckInteger, 7, ++/*116592*/ OPC_CheckType, MVT::i32, ++/*116594*/ OPC_MoveParent, ++/*116595*/ OPC_MoveChild, 31, ++/*116597*/ OPC_CheckInteger, 7, ++/*116599*/ OPC_CheckType, MVT::i32, ++/*116601*/ OPC_MoveParent, ++/*116602*/ OPC_CheckType, MVT::v32i8, ++/*116604*/ OPC_MoveParent, ++/*116605*/ OPC_MoveParent, ++/*116606*/ OPC_MoveParent, ++/*116607*/ OPC_MoveChild1, ++/*116608*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*116611*/ OPC_CheckChild0Integer, 1, ++/*116613*/ OPC_CheckChild0Type, MVT::i32, ++/*116615*/ OPC_CheckChild1Integer, 1, ++/*116617*/ OPC_CheckChild1Type, MVT::i32, ++/*116619*/ OPC_CheckChild2Integer, 1, ++/*116621*/ OPC_CheckChild2Type, MVT::i32, ++/*116623*/ OPC_CheckChild3Integer, 1, ++/*116625*/ OPC_CheckChild3Type, MVT::i32, ++/*116627*/ OPC_CheckChild4Integer, 1, ++/*116629*/ OPC_CheckChild4Type, MVT::i32, ++/*116631*/ OPC_MoveChild5, ++/*116632*/ OPC_CheckInteger, 1, ++/*116634*/ OPC_CheckType, MVT::i32, ++/*116636*/ OPC_MoveParent, ++/*116637*/ OPC_MoveChild6, ++/*116638*/ OPC_CheckInteger, 1, ++/*116640*/ OPC_CheckType, MVT::i32, ++/*116642*/ OPC_MoveParent, ++/*116643*/ OPC_MoveChild7, ++/*116644*/ OPC_CheckInteger, 1, ++/*116646*/ OPC_CheckType, MVT::i32, ++/*116648*/ OPC_MoveParent, ++/*116649*/ OPC_MoveChild, 8, ++/*116651*/ OPC_CheckInteger, 1, ++/*116653*/ OPC_CheckType, MVT::i32, ++/*116655*/ OPC_MoveParent, ++/*116656*/ OPC_MoveChild, 9, ++/*116658*/ OPC_CheckInteger, 1, ++/*116660*/ OPC_CheckType, MVT::i32, ++/*116662*/ OPC_MoveParent, ++/*116663*/ OPC_MoveChild, 10, ++/*116665*/ OPC_CheckInteger, 1, ++/*116667*/ OPC_CheckType, MVT::i32, ++/*116669*/ OPC_MoveParent, ++/*116670*/ OPC_MoveChild, 11, ++/*116672*/ OPC_CheckInteger, 1, ++/*116674*/ OPC_CheckType, MVT::i32, ++/*116676*/ OPC_MoveParent, ++/*116677*/ OPC_MoveChild, 12, ++/*116679*/ OPC_CheckInteger, 1, ++/*116681*/ OPC_CheckType, MVT::i32, ++/*116683*/ OPC_MoveParent, ++/*116684*/ OPC_MoveChild, 13, ++/*116686*/ OPC_CheckInteger, 1, ++/*116688*/ OPC_CheckType, MVT::i32, ++/*116690*/ OPC_MoveParent, ++/*116691*/ OPC_MoveChild, 14, ++/*116693*/ OPC_CheckInteger, 1, ++/*116695*/ OPC_CheckType, MVT::i32, ++/*116697*/ OPC_MoveParent, ++/*116698*/ OPC_MoveChild, 15, ++/*116700*/ OPC_CheckInteger, 1, ++/*116702*/ OPC_CheckType, MVT::i32, ++/*116704*/ OPC_MoveParent, ++/*116705*/ OPC_MoveChild, 16, ++/*116707*/ OPC_CheckInteger, 1, ++/*116709*/ OPC_CheckType, MVT::i32, ++/*116711*/ OPC_MoveParent, ++/*116712*/ OPC_MoveChild, 17, ++/*116714*/ OPC_CheckInteger, 1, ++/*116716*/ OPC_CheckType, MVT::i32, ++/*116718*/ OPC_MoveParent, ++/*116719*/ OPC_MoveChild, 18, ++/*116721*/ OPC_CheckInteger, 1, ++/*116723*/ OPC_CheckType, MVT::i32, ++/*116725*/ OPC_MoveParent, ++/*116726*/ OPC_MoveChild, 19, ++/*116728*/ OPC_CheckInteger, 1, ++/*116730*/ OPC_CheckType, MVT::i32, ++/*116732*/ OPC_MoveParent, ++/*116733*/ OPC_MoveChild, 20, ++/*116735*/ OPC_CheckInteger, 1, ++/*116737*/ OPC_CheckType, MVT::i32, ++/*116739*/ OPC_MoveParent, ++/*116740*/ OPC_MoveChild, 21, ++/*116742*/ OPC_CheckInteger, 1, ++/*116744*/ OPC_CheckType, MVT::i32, ++/*116746*/ OPC_MoveParent, ++/*116747*/ OPC_MoveChild, 22, ++/*116749*/ OPC_CheckInteger, 1, ++/*116751*/ OPC_CheckType, MVT::i32, ++/*116753*/ OPC_MoveParent, ++/*116754*/ OPC_MoveChild, 23, ++/*116756*/ OPC_CheckInteger, 1, ++/*116758*/ OPC_CheckType, MVT::i32, ++/*116760*/ OPC_MoveParent, ++/*116761*/ OPC_MoveChild, 24, ++/*116763*/ OPC_CheckInteger, 1, ++/*116765*/ OPC_CheckType, MVT::i32, ++/*116767*/ OPC_MoveParent, ++/*116768*/ OPC_MoveChild, 25, ++/*116770*/ OPC_CheckInteger, 1, ++/*116772*/ OPC_CheckType, MVT::i32, ++/*116774*/ OPC_MoveParent, ++/*116775*/ OPC_MoveChild, 26, ++/*116777*/ OPC_CheckInteger, 1, ++/*116779*/ OPC_CheckType, MVT::i32, ++/*116781*/ OPC_MoveParent, ++/*116782*/ OPC_MoveChild, 27, ++/*116784*/ OPC_CheckInteger, 1, ++/*116786*/ OPC_CheckType, MVT::i32, ++/*116788*/ OPC_MoveParent, ++/*116789*/ OPC_MoveChild, 28, ++/*116791*/ OPC_CheckInteger, 1, ++/*116793*/ OPC_CheckType, MVT::i32, ++/*116795*/ OPC_MoveParent, ++/*116796*/ OPC_MoveChild, 29, ++/*116798*/ OPC_CheckInteger, 1, ++/*116800*/ OPC_CheckType, MVT::i32, ++/*116802*/ OPC_MoveParent, ++/*116803*/ OPC_MoveChild, 30, ++/*116805*/ OPC_CheckInteger, 1, ++/*116807*/ OPC_CheckType, MVT::i32, ++/*116809*/ OPC_MoveParent, ++/*116810*/ OPC_MoveChild, 31, ++/*116812*/ OPC_CheckInteger, 1, ++/*116814*/ OPC_CheckType, MVT::i32, ++/*116816*/ OPC_MoveParent, ++/*116817*/ OPC_CheckType, MVT::v32i8, ++/*116819*/ OPC_MoveParent, ++/*116820*/ OPC_CheckType, MVT::v32i8, ++/*116822*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*116824*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*116832*/ 0, /*End of Scope*/ ++/*116833*/ /*Scope*/ 42|128,10/*1322*/, /*->118157*/ ++/*116835*/ OPC_CheckChild0Same, 1, ++/*116837*/ OPC_MoveChild1, ++/*116838*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*116841*/ OPC_Scope, 15|128,5/*655*/, /*->117499*/ // 2 children in Scope ++/*116844*/ OPC_MoveChild0, ++/*116845*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*116848*/ OPC_CheckChild0Integer, 1, ++/*116850*/ OPC_CheckChild0Type, MVT::i32, ++/*116852*/ OPC_CheckChild1Integer, 1, ++/*116854*/ OPC_CheckChild1Type, MVT::i32, ++/*116856*/ OPC_CheckChild2Integer, 1, ++/*116858*/ OPC_CheckChild2Type, MVT::i32, ++/*116860*/ OPC_CheckChild3Integer, 1, ++/*116862*/ OPC_CheckChild3Type, MVT::i32, ++/*116864*/ OPC_CheckChild4Integer, 1, ++/*116866*/ OPC_CheckChild4Type, MVT::i32, ++/*116868*/ OPC_MoveChild5, ++/*116869*/ OPC_CheckInteger, 1, ++/*116871*/ OPC_CheckType, MVT::i32, ++/*116873*/ OPC_MoveParent, ++/*116874*/ OPC_MoveChild6, ++/*116875*/ OPC_CheckInteger, 1, ++/*116877*/ OPC_CheckType, MVT::i32, ++/*116879*/ OPC_MoveParent, ++/*116880*/ OPC_MoveChild7, ++/*116881*/ OPC_CheckInteger, 1, ++/*116883*/ OPC_CheckType, MVT::i32, ++/*116885*/ OPC_MoveParent, ++/*116886*/ OPC_MoveChild, 8, ++/*116888*/ OPC_CheckInteger, 1, ++/*116890*/ OPC_CheckType, MVT::i32, ++/*116892*/ OPC_MoveParent, ++/*116893*/ OPC_MoveChild, 9, ++/*116895*/ OPC_CheckInteger, 1, ++/*116897*/ OPC_CheckType, MVT::i32, ++/*116899*/ OPC_MoveParent, ++/*116900*/ OPC_MoveChild, 10, ++/*116902*/ OPC_CheckInteger, 1, ++/*116904*/ OPC_CheckType, MVT::i32, ++/*116906*/ OPC_MoveParent, ++/*116907*/ OPC_MoveChild, 11, ++/*116909*/ OPC_CheckInteger, 1, ++/*116911*/ OPC_CheckType, MVT::i32, ++/*116913*/ OPC_MoveParent, ++/*116914*/ OPC_MoveChild, 12, ++/*116916*/ OPC_CheckInteger, 1, ++/*116918*/ OPC_CheckType, MVT::i32, ++/*116920*/ OPC_MoveParent, ++/*116921*/ OPC_MoveChild, 13, ++/*116923*/ OPC_CheckInteger, 1, ++/*116925*/ OPC_CheckType, MVT::i32, ++/*116927*/ OPC_MoveParent, ++/*116928*/ OPC_MoveChild, 14, ++/*116930*/ OPC_CheckInteger, 1, ++/*116932*/ OPC_CheckType, MVT::i32, ++/*116934*/ OPC_MoveParent, ++/*116935*/ OPC_MoveChild, 15, ++/*116937*/ OPC_CheckInteger, 1, ++/*116939*/ OPC_CheckType, MVT::i32, ++/*116941*/ OPC_MoveParent, ++/*116942*/ OPC_MoveChild, 16, ++/*116944*/ OPC_CheckInteger, 1, ++/*116946*/ OPC_CheckType, MVT::i32, ++/*116948*/ OPC_MoveParent, ++/*116949*/ OPC_MoveChild, 17, ++/*116951*/ OPC_CheckInteger, 1, ++/*116953*/ OPC_CheckType, MVT::i32, ++/*116955*/ OPC_MoveParent, ++/*116956*/ OPC_MoveChild, 18, ++/*116958*/ OPC_CheckInteger, 1, ++/*116960*/ OPC_CheckType, MVT::i32, ++/*116962*/ OPC_MoveParent, ++/*116963*/ OPC_MoveChild, 19, ++/*116965*/ OPC_CheckInteger, 1, ++/*116967*/ OPC_CheckType, MVT::i32, ++/*116969*/ OPC_MoveParent, ++/*116970*/ OPC_MoveChild, 20, ++/*116972*/ OPC_CheckInteger, 1, ++/*116974*/ OPC_CheckType, MVT::i32, ++/*116976*/ OPC_MoveParent, ++/*116977*/ OPC_MoveChild, 21, ++/*116979*/ OPC_CheckInteger, 1, ++/*116981*/ OPC_CheckType, MVT::i32, ++/*116983*/ OPC_MoveParent, ++/*116984*/ OPC_MoveChild, 22, ++/*116986*/ OPC_CheckInteger, 1, ++/*116988*/ OPC_CheckType, MVT::i32, ++/*116990*/ OPC_MoveParent, ++/*116991*/ OPC_MoveChild, 23, ++/*116993*/ OPC_CheckInteger, 1, ++/*116995*/ OPC_CheckType, MVT::i32, ++/*116997*/ OPC_MoveParent, ++/*116998*/ OPC_MoveChild, 24, ++/*117000*/ OPC_CheckInteger, 1, ++/*117002*/ OPC_CheckType, MVT::i32, ++/*117004*/ OPC_MoveParent, ++/*117005*/ OPC_MoveChild, 25, ++/*117007*/ OPC_CheckInteger, 1, ++/*117009*/ OPC_CheckType, MVT::i32, ++/*117011*/ OPC_MoveParent, ++/*117012*/ OPC_MoveChild, 26, ++/*117014*/ OPC_CheckInteger, 1, ++/*117016*/ OPC_CheckType, MVT::i32, ++/*117018*/ OPC_MoveParent, ++/*117019*/ OPC_MoveChild, 27, ++/*117021*/ OPC_CheckInteger, 1, ++/*117023*/ OPC_CheckType, MVT::i32, ++/*117025*/ OPC_MoveParent, ++/*117026*/ OPC_MoveChild, 28, ++/*117028*/ OPC_CheckInteger, 1, ++/*117030*/ OPC_CheckType, MVT::i32, ++/*117032*/ OPC_MoveParent, ++/*117033*/ OPC_MoveChild, 29, ++/*117035*/ OPC_CheckInteger, 1, ++/*117037*/ OPC_CheckType, MVT::i32, ++/*117039*/ OPC_MoveParent, ++/*117040*/ OPC_MoveChild, 30, ++/*117042*/ OPC_CheckInteger, 1, ++/*117044*/ OPC_CheckType, MVT::i32, ++/*117046*/ OPC_MoveParent, ++/*117047*/ OPC_MoveChild, 31, ++/*117049*/ OPC_CheckInteger, 1, ++/*117051*/ OPC_CheckType, MVT::i32, ++/*117053*/ OPC_MoveParent, ++/*117054*/ OPC_MoveParent, ++/*117055*/ OPC_CheckChild1Same, 0, ++/*117057*/ OPC_MoveParent, ++/*117058*/ OPC_MoveParent, ++/*117059*/ OPC_MoveChild1, ++/*117060*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*117063*/ OPC_CheckChild0Integer, 7, ++/*117065*/ OPC_CheckChild0Type, MVT::i32, ++/*117067*/ OPC_CheckChild1Integer, 7, ++/*117069*/ OPC_CheckChild1Type, MVT::i32, ++/*117071*/ OPC_CheckChild2Integer, 7, ++/*117073*/ OPC_CheckChild2Type, MVT::i32, ++/*117075*/ OPC_CheckChild3Integer, 7, ++/*117077*/ OPC_CheckChild3Type, MVT::i32, ++/*117079*/ OPC_CheckChild4Integer, 7, ++/*117081*/ OPC_CheckChild4Type, MVT::i32, ++/*117083*/ OPC_MoveChild5, ++/*117084*/ OPC_CheckInteger, 7, ++/*117086*/ OPC_CheckType, MVT::i32, ++/*117088*/ OPC_MoveParent, ++/*117089*/ OPC_MoveChild6, ++/*117090*/ OPC_CheckInteger, 7, ++/*117092*/ OPC_CheckType, MVT::i32, ++/*117094*/ OPC_MoveParent, ++/*117095*/ OPC_MoveChild7, ++/*117096*/ OPC_CheckInteger, 7, ++/*117098*/ OPC_CheckType, MVT::i32, ++/*117100*/ OPC_MoveParent, ++/*117101*/ OPC_MoveChild, 8, ++/*117103*/ OPC_CheckInteger, 7, ++/*117105*/ OPC_CheckType, MVT::i32, ++/*117107*/ OPC_MoveParent, ++/*117108*/ OPC_MoveChild, 9, ++/*117110*/ OPC_CheckInteger, 7, ++/*117112*/ OPC_CheckType, MVT::i32, ++/*117114*/ OPC_MoveParent, ++/*117115*/ OPC_MoveChild, 10, ++/*117117*/ OPC_CheckInteger, 7, ++/*117119*/ OPC_CheckType, MVT::i32, ++/*117121*/ OPC_MoveParent, ++/*117122*/ OPC_MoveChild, 11, ++/*117124*/ OPC_CheckInteger, 7, ++/*117126*/ OPC_CheckType, MVT::i32, ++/*117128*/ OPC_MoveParent, ++/*117129*/ OPC_MoveChild, 12, ++/*117131*/ OPC_CheckInteger, 7, ++/*117133*/ OPC_CheckType, MVT::i32, ++/*117135*/ OPC_MoveParent, ++/*117136*/ OPC_MoveChild, 13, ++/*117138*/ OPC_CheckInteger, 7, ++/*117140*/ OPC_CheckType, MVT::i32, ++/*117142*/ OPC_MoveParent, ++/*117143*/ OPC_MoveChild, 14, ++/*117145*/ OPC_CheckInteger, 7, ++/*117147*/ OPC_CheckType, MVT::i32, ++/*117149*/ OPC_MoveParent, ++/*117150*/ OPC_MoveChild, 15, ++/*117152*/ OPC_CheckInteger, 7, ++/*117154*/ OPC_CheckType, MVT::i32, ++/*117156*/ OPC_MoveParent, ++/*117157*/ OPC_MoveChild, 16, ++/*117159*/ OPC_CheckInteger, 7, ++/*117161*/ OPC_CheckType, MVT::i32, ++/*117163*/ OPC_MoveParent, ++/*117164*/ OPC_MoveChild, 17, ++/*117166*/ OPC_CheckInteger, 7, ++/*117168*/ OPC_CheckType, MVT::i32, ++/*117170*/ OPC_MoveParent, ++/*117171*/ OPC_MoveChild, 18, ++/*117173*/ OPC_CheckInteger, 7, ++/*117175*/ OPC_CheckType, MVT::i32, ++/*117177*/ OPC_MoveParent, ++/*117178*/ OPC_MoveChild, 19, ++/*117180*/ OPC_CheckInteger, 7, ++/*117182*/ OPC_CheckType, MVT::i32, ++/*117184*/ OPC_MoveParent, ++/*117185*/ OPC_MoveChild, 20, ++/*117187*/ OPC_CheckInteger, 7, ++/*117189*/ OPC_CheckType, MVT::i32, ++/*117191*/ OPC_MoveParent, ++/*117192*/ OPC_MoveChild, 21, ++/*117194*/ OPC_CheckInteger, 7, ++/*117196*/ OPC_CheckType, MVT::i32, ++/*117198*/ OPC_MoveParent, ++/*117199*/ OPC_MoveChild, 22, ++/*117201*/ OPC_CheckInteger, 7, ++/*117203*/ OPC_CheckType, MVT::i32, ++/*117205*/ OPC_MoveParent, ++/*117206*/ OPC_MoveChild, 23, ++/*117208*/ OPC_CheckInteger, 7, ++/*117210*/ OPC_CheckType, MVT::i32, ++/*117212*/ OPC_MoveParent, ++/*117213*/ OPC_MoveChild, 24, ++/*117215*/ OPC_CheckInteger, 7, ++/*117217*/ OPC_CheckType, MVT::i32, ++/*117219*/ OPC_MoveParent, ++/*117220*/ OPC_MoveChild, 25, ++/*117222*/ OPC_CheckInteger, 7, ++/*117224*/ OPC_CheckType, MVT::i32, ++/*117226*/ OPC_MoveParent, ++/*117227*/ OPC_MoveChild, 26, ++/*117229*/ OPC_CheckInteger, 7, ++/*117231*/ OPC_CheckType, MVT::i32, ++/*117233*/ OPC_MoveParent, ++/*117234*/ OPC_MoveChild, 27, ++/*117236*/ OPC_CheckInteger, 7, ++/*117238*/ OPC_CheckType, MVT::i32, ++/*117240*/ OPC_MoveParent, ++/*117241*/ OPC_MoveChild, 28, ++/*117243*/ OPC_CheckInteger, 7, ++/*117245*/ OPC_CheckType, MVT::i32, ++/*117247*/ OPC_MoveParent, ++/*117248*/ OPC_MoveChild, 29, ++/*117250*/ OPC_CheckInteger, 7, ++/*117252*/ OPC_CheckType, MVT::i32, ++/*117254*/ OPC_MoveParent, ++/*117255*/ OPC_MoveChild, 30, ++/*117257*/ OPC_CheckInteger, 7, ++/*117259*/ OPC_CheckType, MVT::i32, ++/*117261*/ OPC_MoveParent, ++/*117262*/ OPC_MoveChild, 31, ++/*117264*/ OPC_CheckInteger, 7, ++/*117266*/ OPC_CheckType, MVT::i32, ++/*117268*/ OPC_MoveParent, ++/*117269*/ OPC_CheckType, MVT::v32i8, ++/*117271*/ OPC_MoveParent, ++/*117272*/ OPC_MoveParent, ++/*117273*/ OPC_MoveParent, ++/*117274*/ OPC_MoveChild1, ++/*117275*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*117278*/ OPC_CheckChild0Integer, 1, ++/*117280*/ OPC_CheckChild0Type, MVT::i32, ++/*117282*/ OPC_CheckChild1Integer, 1, ++/*117284*/ OPC_CheckChild1Type, MVT::i32, ++/*117286*/ OPC_CheckChild2Integer, 1, ++/*117288*/ OPC_CheckChild2Type, MVT::i32, ++/*117290*/ OPC_CheckChild3Integer, 1, ++/*117292*/ OPC_CheckChild3Type, MVT::i32, ++/*117294*/ OPC_CheckChild4Integer, 1, ++/*117296*/ OPC_CheckChild4Type, MVT::i32, ++/*117298*/ OPC_MoveChild5, ++/*117299*/ OPC_CheckInteger, 1, ++/*117301*/ OPC_CheckType, MVT::i32, ++/*117303*/ OPC_MoveParent, ++/*117304*/ OPC_MoveChild6, ++/*117305*/ OPC_CheckInteger, 1, ++/*117307*/ OPC_CheckType, MVT::i32, ++/*117309*/ OPC_MoveParent, ++/*117310*/ OPC_MoveChild7, ++/*117311*/ OPC_CheckInteger, 1, ++/*117313*/ OPC_CheckType, MVT::i32, ++/*117315*/ OPC_MoveParent, ++/*117316*/ OPC_MoveChild, 8, ++/*117318*/ OPC_CheckInteger, 1, ++/*117320*/ OPC_CheckType, MVT::i32, ++/*117322*/ OPC_MoveParent, ++/*117323*/ OPC_MoveChild, 9, ++/*117325*/ OPC_CheckInteger, 1, ++/*117327*/ OPC_CheckType, MVT::i32, ++/*117329*/ OPC_MoveParent, ++/*117330*/ OPC_MoveChild, 10, ++/*117332*/ OPC_CheckInteger, 1, ++/*117334*/ OPC_CheckType, MVT::i32, ++/*117336*/ OPC_MoveParent, ++/*117337*/ OPC_MoveChild, 11, ++/*117339*/ OPC_CheckInteger, 1, ++/*117341*/ OPC_CheckType, MVT::i32, ++/*117343*/ OPC_MoveParent, ++/*117344*/ OPC_MoveChild, 12, ++/*117346*/ OPC_CheckInteger, 1, ++/*117348*/ OPC_CheckType, MVT::i32, ++/*117350*/ OPC_MoveParent, ++/*117351*/ OPC_MoveChild, 13, ++/*117353*/ OPC_CheckInteger, 1, ++/*117355*/ OPC_CheckType, MVT::i32, ++/*117357*/ OPC_MoveParent, ++/*117358*/ OPC_MoveChild, 14, ++/*117360*/ OPC_CheckInteger, 1, ++/*117362*/ OPC_CheckType, MVT::i32, ++/*117364*/ OPC_MoveParent, ++/*117365*/ OPC_MoveChild, 15, ++/*117367*/ OPC_CheckInteger, 1, ++/*117369*/ OPC_CheckType, MVT::i32, ++/*117371*/ OPC_MoveParent, ++/*117372*/ OPC_MoveChild, 16, ++/*117374*/ OPC_CheckInteger, 1, ++/*117376*/ OPC_CheckType, MVT::i32, ++/*117378*/ OPC_MoveParent, ++/*117379*/ OPC_MoveChild, 17, ++/*117381*/ OPC_CheckInteger, 1, ++/*117383*/ OPC_CheckType, MVT::i32, ++/*117385*/ OPC_MoveParent, ++/*117386*/ OPC_MoveChild, 18, ++/*117388*/ OPC_CheckInteger, 1, ++/*117390*/ OPC_CheckType, MVT::i32, ++/*117392*/ OPC_MoveParent, ++/*117393*/ OPC_MoveChild, 19, ++/*117395*/ OPC_CheckInteger, 1, ++/*117397*/ OPC_CheckType, MVT::i32, ++/*117399*/ OPC_MoveParent, ++/*117400*/ OPC_MoveChild, 20, ++/*117402*/ OPC_CheckInteger, 1, ++/*117404*/ OPC_CheckType, MVT::i32, ++/*117406*/ OPC_MoveParent, ++/*117407*/ OPC_MoveChild, 21, ++/*117409*/ OPC_CheckInteger, 1, ++/*117411*/ OPC_CheckType, MVT::i32, ++/*117413*/ OPC_MoveParent, ++/*117414*/ OPC_MoveChild, 22, ++/*117416*/ OPC_CheckInteger, 1, ++/*117418*/ OPC_CheckType, MVT::i32, ++/*117420*/ OPC_MoveParent, ++/*117421*/ OPC_MoveChild, 23, ++/*117423*/ OPC_CheckInteger, 1, ++/*117425*/ OPC_CheckType, MVT::i32, ++/*117427*/ OPC_MoveParent, ++/*117428*/ OPC_MoveChild, 24, ++/*117430*/ OPC_CheckInteger, 1, ++/*117432*/ OPC_CheckType, MVT::i32, ++/*117434*/ OPC_MoveParent, ++/*117435*/ OPC_MoveChild, 25, ++/*117437*/ OPC_CheckInteger, 1, ++/*117439*/ OPC_CheckType, MVT::i32, ++/*117441*/ OPC_MoveParent, ++/*117442*/ OPC_MoveChild, 26, ++/*117444*/ OPC_CheckInteger, 1, ++/*117446*/ OPC_CheckType, MVT::i32, ++/*117448*/ OPC_MoveParent, ++/*117449*/ OPC_MoveChild, 27, ++/*117451*/ OPC_CheckInteger, 1, ++/*117453*/ OPC_CheckType, MVT::i32, ++/*117455*/ OPC_MoveParent, ++/*117456*/ OPC_MoveChild, 28, ++/*117458*/ OPC_CheckInteger, 1, ++/*117460*/ OPC_CheckType, MVT::i32, ++/*117462*/ OPC_MoveParent, ++/*117463*/ OPC_MoveChild, 29, ++/*117465*/ OPC_CheckInteger, 1, ++/*117467*/ OPC_CheckType, MVT::i32, ++/*117469*/ OPC_MoveParent, ++/*117470*/ OPC_MoveChild, 30, ++/*117472*/ OPC_CheckInteger, 1, ++/*117474*/ OPC_CheckType, MVT::i32, ++/*117476*/ OPC_MoveParent, ++/*117477*/ OPC_MoveChild, 31, ++/*117479*/ OPC_CheckInteger, 1, ++/*117481*/ OPC_CheckType, MVT::i32, ++/*117483*/ OPC_MoveParent, ++/*117484*/ OPC_CheckType, MVT::v32i8, ++/*117486*/ OPC_MoveParent, ++/*117487*/ OPC_CheckType, MVT::v32i8, ++/*117489*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*117491*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*117499*/ /*Scope*/ 15|128,5/*655*/, /*->118156*/ ++/*117501*/ OPC_CheckChild0Same, 0, ++/*117503*/ OPC_MoveChild1, ++/*117504*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*117507*/ OPC_CheckChild0Integer, 1, ++/*117509*/ OPC_CheckChild0Type, MVT::i32, ++/*117511*/ OPC_CheckChild1Integer, 1, ++/*117513*/ OPC_CheckChild1Type, MVT::i32, ++/*117515*/ OPC_CheckChild2Integer, 1, ++/*117517*/ OPC_CheckChild2Type, MVT::i32, ++/*117519*/ OPC_CheckChild3Integer, 1, ++/*117521*/ OPC_CheckChild3Type, MVT::i32, ++/*117523*/ OPC_CheckChild4Integer, 1, ++/*117525*/ OPC_CheckChild4Type, MVT::i32, ++/*117527*/ OPC_MoveChild5, ++/*117528*/ OPC_CheckInteger, 1, ++/*117530*/ OPC_CheckType, MVT::i32, ++/*117532*/ OPC_MoveParent, ++/*117533*/ OPC_MoveChild6, ++/*117534*/ OPC_CheckInteger, 1, ++/*117536*/ OPC_CheckType, MVT::i32, ++/*117538*/ OPC_MoveParent, ++/*117539*/ OPC_MoveChild7, ++/*117540*/ OPC_CheckInteger, 1, ++/*117542*/ OPC_CheckType, MVT::i32, ++/*117544*/ OPC_MoveParent, ++/*117545*/ OPC_MoveChild, 8, ++/*117547*/ OPC_CheckInteger, 1, ++/*117549*/ OPC_CheckType, MVT::i32, ++/*117551*/ OPC_MoveParent, ++/*117552*/ OPC_MoveChild, 9, ++/*117554*/ OPC_CheckInteger, 1, ++/*117556*/ OPC_CheckType, MVT::i32, ++/*117558*/ OPC_MoveParent, ++/*117559*/ OPC_MoveChild, 10, ++/*117561*/ OPC_CheckInteger, 1, ++/*117563*/ OPC_CheckType, MVT::i32, ++/*117565*/ OPC_MoveParent, ++/*117566*/ OPC_MoveChild, 11, ++/*117568*/ OPC_CheckInteger, 1, ++/*117570*/ OPC_CheckType, MVT::i32, ++/*117572*/ OPC_MoveParent, ++/*117573*/ OPC_MoveChild, 12, ++/*117575*/ OPC_CheckInteger, 1, ++/*117577*/ OPC_CheckType, MVT::i32, ++/*117579*/ OPC_MoveParent, ++/*117580*/ OPC_MoveChild, 13, ++/*117582*/ OPC_CheckInteger, 1, ++/*117584*/ OPC_CheckType, MVT::i32, ++/*117586*/ OPC_MoveParent, ++/*117587*/ OPC_MoveChild, 14, ++/*117589*/ OPC_CheckInteger, 1, ++/*117591*/ OPC_CheckType, MVT::i32, ++/*117593*/ OPC_MoveParent, ++/*117594*/ OPC_MoveChild, 15, ++/*117596*/ OPC_CheckInteger, 1, ++/*117598*/ OPC_CheckType, MVT::i32, ++/*117600*/ OPC_MoveParent, ++/*117601*/ OPC_MoveChild, 16, ++/*117603*/ OPC_CheckInteger, 1, ++/*117605*/ OPC_CheckType, MVT::i32, ++/*117607*/ OPC_MoveParent, ++/*117608*/ OPC_MoveChild, 17, ++/*117610*/ OPC_CheckInteger, 1, ++/*117612*/ OPC_CheckType, MVT::i32, ++/*117614*/ OPC_MoveParent, ++/*117615*/ OPC_MoveChild, 18, ++/*117617*/ OPC_CheckInteger, 1, ++/*117619*/ OPC_CheckType, MVT::i32, ++/*117621*/ OPC_MoveParent, ++/*117622*/ OPC_MoveChild, 19, ++/*117624*/ OPC_CheckInteger, 1, ++/*117626*/ OPC_CheckType, MVT::i32, ++/*117628*/ OPC_MoveParent, ++/*117629*/ OPC_MoveChild, 20, ++/*117631*/ OPC_CheckInteger, 1, ++/*117633*/ OPC_CheckType, MVT::i32, ++/*117635*/ OPC_MoveParent, ++/*117636*/ OPC_MoveChild, 21, ++/*117638*/ OPC_CheckInteger, 1, ++/*117640*/ OPC_CheckType, MVT::i32, ++/*117642*/ OPC_MoveParent, ++/*117643*/ OPC_MoveChild, 22, ++/*117645*/ OPC_CheckInteger, 1, ++/*117647*/ OPC_CheckType, MVT::i32, ++/*117649*/ OPC_MoveParent, ++/*117650*/ OPC_MoveChild, 23, ++/*117652*/ OPC_CheckInteger, 1, ++/*117654*/ OPC_CheckType, MVT::i32, ++/*117656*/ OPC_MoveParent, ++/*117657*/ OPC_MoveChild, 24, ++/*117659*/ OPC_CheckInteger, 1, ++/*117661*/ OPC_CheckType, MVT::i32, ++/*117663*/ OPC_MoveParent, ++/*117664*/ OPC_MoveChild, 25, ++/*117666*/ OPC_CheckInteger, 1, ++/*117668*/ OPC_CheckType, MVT::i32, ++/*117670*/ OPC_MoveParent, ++/*117671*/ OPC_MoveChild, 26, ++/*117673*/ OPC_CheckInteger, 1, ++/*117675*/ OPC_CheckType, MVT::i32, ++/*117677*/ OPC_MoveParent, ++/*117678*/ OPC_MoveChild, 27, ++/*117680*/ OPC_CheckInteger, 1, ++/*117682*/ OPC_CheckType, MVT::i32, ++/*117684*/ OPC_MoveParent, ++/*117685*/ OPC_MoveChild, 28, ++/*117687*/ OPC_CheckInteger, 1, ++/*117689*/ OPC_CheckType, MVT::i32, ++/*117691*/ OPC_MoveParent, ++/*117692*/ OPC_MoveChild, 29, ++/*117694*/ OPC_CheckInteger, 1, ++/*117696*/ OPC_CheckType, MVT::i32, ++/*117698*/ OPC_MoveParent, ++/*117699*/ OPC_MoveChild, 30, ++/*117701*/ OPC_CheckInteger, 1, ++/*117703*/ OPC_CheckType, MVT::i32, ++/*117705*/ OPC_MoveParent, ++/*117706*/ OPC_MoveChild, 31, ++/*117708*/ OPC_CheckInteger, 1, ++/*117710*/ OPC_CheckType, MVT::i32, ++/*117712*/ OPC_MoveParent, ++/*117713*/ OPC_MoveParent, ++/*117714*/ OPC_MoveParent, ++/*117715*/ OPC_MoveParent, ++/*117716*/ OPC_MoveChild1, ++/*117717*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*117720*/ OPC_CheckChild0Integer, 7, ++/*117722*/ OPC_CheckChild0Type, MVT::i32, ++/*117724*/ OPC_CheckChild1Integer, 7, ++/*117726*/ OPC_CheckChild1Type, MVT::i32, ++/*117728*/ OPC_CheckChild2Integer, 7, ++/*117730*/ OPC_CheckChild2Type, MVT::i32, ++/*117732*/ OPC_CheckChild3Integer, 7, ++/*117734*/ OPC_CheckChild3Type, MVT::i32, ++/*117736*/ OPC_CheckChild4Integer, 7, ++/*117738*/ OPC_CheckChild4Type, MVT::i32, ++/*117740*/ OPC_MoveChild5, ++/*117741*/ OPC_CheckInteger, 7, ++/*117743*/ OPC_CheckType, MVT::i32, ++/*117745*/ OPC_MoveParent, ++/*117746*/ OPC_MoveChild6, ++/*117747*/ OPC_CheckInteger, 7, ++/*117749*/ OPC_CheckType, MVT::i32, ++/*117751*/ OPC_MoveParent, ++/*117752*/ OPC_MoveChild7, ++/*117753*/ OPC_CheckInteger, 7, ++/*117755*/ OPC_CheckType, MVT::i32, ++/*117757*/ OPC_MoveParent, ++/*117758*/ OPC_MoveChild, 8, ++/*117760*/ OPC_CheckInteger, 7, ++/*117762*/ OPC_CheckType, MVT::i32, ++/*117764*/ OPC_MoveParent, ++/*117765*/ OPC_MoveChild, 9, ++/*117767*/ OPC_CheckInteger, 7, ++/*117769*/ OPC_CheckType, MVT::i32, ++/*117771*/ OPC_MoveParent, ++/*117772*/ OPC_MoveChild, 10, ++/*117774*/ OPC_CheckInteger, 7, ++/*117776*/ OPC_CheckType, MVT::i32, ++/*117778*/ OPC_MoveParent, ++/*117779*/ OPC_MoveChild, 11, ++/*117781*/ OPC_CheckInteger, 7, ++/*117783*/ OPC_CheckType, MVT::i32, ++/*117785*/ OPC_MoveParent, ++/*117786*/ OPC_MoveChild, 12, ++/*117788*/ OPC_CheckInteger, 7, ++/*117790*/ OPC_CheckType, MVT::i32, ++/*117792*/ OPC_MoveParent, ++/*117793*/ OPC_MoveChild, 13, ++/*117795*/ OPC_CheckInteger, 7, ++/*117797*/ OPC_CheckType, MVT::i32, ++/*117799*/ OPC_MoveParent, ++/*117800*/ OPC_MoveChild, 14, ++/*117802*/ OPC_CheckInteger, 7, ++/*117804*/ OPC_CheckType, MVT::i32, ++/*117806*/ OPC_MoveParent, ++/*117807*/ OPC_MoveChild, 15, ++/*117809*/ OPC_CheckInteger, 7, ++/*117811*/ OPC_CheckType, MVT::i32, ++/*117813*/ OPC_MoveParent, ++/*117814*/ OPC_MoveChild, 16, ++/*117816*/ OPC_CheckInteger, 7, ++/*117818*/ OPC_CheckType, MVT::i32, ++/*117820*/ OPC_MoveParent, ++/*117821*/ OPC_MoveChild, 17, ++/*117823*/ OPC_CheckInteger, 7, ++/*117825*/ OPC_CheckType, MVT::i32, ++/*117827*/ OPC_MoveParent, ++/*117828*/ OPC_MoveChild, 18, ++/*117830*/ OPC_CheckInteger, 7, ++/*117832*/ OPC_CheckType, MVT::i32, ++/*117834*/ OPC_MoveParent, ++/*117835*/ OPC_MoveChild, 19, ++/*117837*/ OPC_CheckInteger, 7, ++/*117839*/ OPC_CheckType, MVT::i32, ++/*117841*/ OPC_MoveParent, ++/*117842*/ OPC_MoveChild, 20, ++/*117844*/ OPC_CheckInteger, 7, ++/*117846*/ OPC_CheckType, MVT::i32, ++/*117848*/ OPC_MoveParent, ++/*117849*/ OPC_MoveChild, 21, ++/*117851*/ OPC_CheckInteger, 7, ++/*117853*/ OPC_CheckType, MVT::i32, ++/*117855*/ OPC_MoveParent, ++/*117856*/ OPC_MoveChild, 22, ++/*117858*/ OPC_CheckInteger, 7, ++/*117860*/ OPC_CheckType, MVT::i32, ++/*117862*/ OPC_MoveParent, ++/*117863*/ OPC_MoveChild, 23, ++/*117865*/ OPC_CheckInteger, 7, ++/*117867*/ OPC_CheckType, MVT::i32, ++/*117869*/ OPC_MoveParent, ++/*117870*/ OPC_MoveChild, 24, ++/*117872*/ OPC_CheckInteger, 7, ++/*117874*/ OPC_CheckType, MVT::i32, ++/*117876*/ OPC_MoveParent, ++/*117877*/ OPC_MoveChild, 25, ++/*117879*/ OPC_CheckInteger, 7, ++/*117881*/ OPC_CheckType, MVT::i32, ++/*117883*/ OPC_MoveParent, ++/*117884*/ OPC_MoveChild, 26, ++/*117886*/ OPC_CheckInteger, 7, ++/*117888*/ OPC_CheckType, MVT::i32, ++/*117890*/ OPC_MoveParent, ++/*117891*/ OPC_MoveChild, 27, ++/*117893*/ OPC_CheckInteger, 7, ++/*117895*/ OPC_CheckType, MVT::i32, ++/*117897*/ OPC_MoveParent, ++/*117898*/ OPC_MoveChild, 28, ++/*117900*/ OPC_CheckInteger, 7, ++/*117902*/ OPC_CheckType, MVT::i32, ++/*117904*/ OPC_MoveParent, ++/*117905*/ OPC_MoveChild, 29, ++/*117907*/ OPC_CheckInteger, 7, ++/*117909*/ OPC_CheckType, MVT::i32, ++/*117911*/ OPC_MoveParent, ++/*117912*/ OPC_MoveChild, 30, ++/*117914*/ OPC_CheckInteger, 7, ++/*117916*/ OPC_CheckType, MVT::i32, ++/*117918*/ OPC_MoveParent, ++/*117919*/ OPC_MoveChild, 31, ++/*117921*/ OPC_CheckInteger, 7, ++/*117923*/ OPC_CheckType, MVT::i32, ++/*117925*/ OPC_MoveParent, ++/*117926*/ OPC_CheckType, MVT::v32i8, ++/*117928*/ OPC_MoveParent, ++/*117929*/ OPC_MoveParent, ++/*117930*/ OPC_MoveParent, ++/*117931*/ OPC_MoveChild1, ++/*117932*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*117935*/ OPC_CheckChild0Integer, 1, ++/*117937*/ OPC_CheckChild0Type, MVT::i32, ++/*117939*/ OPC_CheckChild1Integer, 1, ++/*117941*/ OPC_CheckChild1Type, MVT::i32, ++/*117943*/ OPC_CheckChild2Integer, 1, ++/*117945*/ OPC_CheckChild2Type, MVT::i32, ++/*117947*/ OPC_CheckChild3Integer, 1, ++/*117949*/ OPC_CheckChild3Type, MVT::i32, ++/*117951*/ OPC_CheckChild4Integer, 1, ++/*117953*/ OPC_CheckChild4Type, MVT::i32, ++/*117955*/ OPC_MoveChild5, ++/*117956*/ OPC_CheckInteger, 1, ++/*117958*/ OPC_CheckType, MVT::i32, ++/*117960*/ OPC_MoveParent, ++/*117961*/ OPC_MoveChild6, ++/*117962*/ OPC_CheckInteger, 1, ++/*117964*/ OPC_CheckType, MVT::i32, ++/*117966*/ OPC_MoveParent, ++/*117967*/ OPC_MoveChild7, ++/*117968*/ OPC_CheckInteger, 1, ++/*117970*/ OPC_CheckType, MVT::i32, ++/*117972*/ OPC_MoveParent, ++/*117973*/ OPC_MoveChild, 8, ++/*117975*/ OPC_CheckInteger, 1, ++/*117977*/ OPC_CheckType, MVT::i32, ++/*117979*/ OPC_MoveParent, ++/*117980*/ OPC_MoveChild, 9, ++/*117982*/ OPC_CheckInteger, 1, ++/*117984*/ OPC_CheckType, MVT::i32, ++/*117986*/ OPC_MoveParent, ++/*117987*/ OPC_MoveChild, 10, ++/*117989*/ OPC_CheckInteger, 1, ++/*117991*/ OPC_CheckType, MVT::i32, ++/*117993*/ OPC_MoveParent, ++/*117994*/ OPC_MoveChild, 11, ++/*117996*/ OPC_CheckInteger, 1, ++/*117998*/ OPC_CheckType, MVT::i32, ++/*118000*/ OPC_MoveParent, ++/*118001*/ OPC_MoveChild, 12, ++/*118003*/ OPC_CheckInteger, 1, ++/*118005*/ OPC_CheckType, MVT::i32, ++/*118007*/ OPC_MoveParent, ++/*118008*/ OPC_MoveChild, 13, ++/*118010*/ OPC_CheckInteger, 1, ++/*118012*/ OPC_CheckType, MVT::i32, ++/*118014*/ OPC_MoveParent, ++/*118015*/ OPC_MoveChild, 14, ++/*118017*/ OPC_CheckInteger, 1, ++/*118019*/ OPC_CheckType, MVT::i32, ++/*118021*/ OPC_MoveParent, ++/*118022*/ OPC_MoveChild, 15, ++/*118024*/ OPC_CheckInteger, 1, ++/*118026*/ OPC_CheckType, MVT::i32, ++/*118028*/ OPC_MoveParent, ++/*118029*/ OPC_MoveChild, 16, ++/*118031*/ OPC_CheckInteger, 1, ++/*118033*/ OPC_CheckType, MVT::i32, ++/*118035*/ OPC_MoveParent, ++/*118036*/ OPC_MoveChild, 17, ++/*118038*/ OPC_CheckInteger, 1, ++/*118040*/ OPC_CheckType, MVT::i32, ++/*118042*/ OPC_MoveParent, ++/*118043*/ OPC_MoveChild, 18, ++/*118045*/ OPC_CheckInteger, 1, ++/*118047*/ OPC_CheckType, MVT::i32, ++/*118049*/ OPC_MoveParent, ++/*118050*/ OPC_MoveChild, 19, ++/*118052*/ OPC_CheckInteger, 1, ++/*118054*/ OPC_CheckType, MVT::i32, ++/*118056*/ OPC_MoveParent, ++/*118057*/ OPC_MoveChild, 20, ++/*118059*/ OPC_CheckInteger, 1, ++/*118061*/ OPC_CheckType, MVT::i32, ++/*118063*/ OPC_MoveParent, ++/*118064*/ OPC_MoveChild, 21, ++/*118066*/ OPC_CheckInteger, 1, ++/*118068*/ OPC_CheckType, MVT::i32, ++/*118070*/ OPC_MoveParent, ++/*118071*/ OPC_MoveChild, 22, ++/*118073*/ OPC_CheckInteger, 1, ++/*118075*/ OPC_CheckType, MVT::i32, ++/*118077*/ OPC_MoveParent, ++/*118078*/ OPC_MoveChild, 23, ++/*118080*/ OPC_CheckInteger, 1, ++/*118082*/ OPC_CheckType, MVT::i32, ++/*118084*/ OPC_MoveParent, ++/*118085*/ OPC_MoveChild, 24, ++/*118087*/ OPC_CheckInteger, 1, ++/*118089*/ OPC_CheckType, MVT::i32, ++/*118091*/ OPC_MoveParent, ++/*118092*/ OPC_MoveChild, 25, ++/*118094*/ OPC_CheckInteger, 1, ++/*118096*/ OPC_CheckType, MVT::i32, ++/*118098*/ OPC_MoveParent, ++/*118099*/ OPC_MoveChild, 26, ++/*118101*/ OPC_CheckInteger, 1, ++/*118103*/ OPC_CheckType, MVT::i32, ++/*118105*/ OPC_MoveParent, ++/*118106*/ OPC_MoveChild, 27, ++/*118108*/ OPC_CheckInteger, 1, ++/*118110*/ OPC_CheckType, MVT::i32, ++/*118112*/ OPC_MoveParent, ++/*118113*/ OPC_MoveChild, 28, ++/*118115*/ OPC_CheckInteger, 1, ++/*118117*/ OPC_CheckType, MVT::i32, ++/*118119*/ OPC_MoveParent, ++/*118120*/ OPC_MoveChild, 29, ++/*118122*/ OPC_CheckInteger, 1, ++/*118124*/ OPC_CheckType, MVT::i32, ++/*118126*/ OPC_MoveParent, ++/*118127*/ OPC_MoveChild, 30, ++/*118129*/ OPC_CheckInteger, 1, ++/*118131*/ OPC_CheckType, MVT::i32, ++/*118133*/ OPC_MoveParent, ++/*118134*/ OPC_MoveChild, 31, ++/*118136*/ OPC_CheckInteger, 1, ++/*118138*/ OPC_CheckType, MVT::i32, ++/*118140*/ OPC_MoveParent, ++/*118141*/ OPC_CheckType, MVT::v32i8, ++/*118143*/ OPC_MoveParent, ++/*118144*/ OPC_CheckType, MVT::v32i8, ++/*118146*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*118148*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*118156*/ 0, /*End of Scope*/ ++/*118157*/ /*Scope*/ 42|128,10/*1322*/, /*->119481*/ ++/*118159*/ OPC_CheckChild0Same, 0, ++/*118161*/ OPC_MoveChild1, ++/*118162*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*118165*/ OPC_Scope, 15|128,5/*655*/, /*->118823*/ // 2 children in Scope ++/*118168*/ OPC_MoveChild0, ++/*118169*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*118172*/ OPC_CheckChild0Integer, 1, ++/*118174*/ OPC_CheckChild0Type, MVT::i32, ++/*118176*/ OPC_CheckChild1Integer, 1, ++/*118178*/ OPC_CheckChild1Type, MVT::i32, ++/*118180*/ OPC_CheckChild2Integer, 1, ++/*118182*/ OPC_CheckChild2Type, MVT::i32, ++/*118184*/ OPC_CheckChild3Integer, 1, ++/*118186*/ OPC_CheckChild3Type, MVT::i32, ++/*118188*/ OPC_CheckChild4Integer, 1, ++/*118190*/ OPC_CheckChild4Type, MVT::i32, ++/*118192*/ OPC_MoveChild5, ++/*118193*/ OPC_CheckInteger, 1, ++/*118195*/ OPC_CheckType, MVT::i32, ++/*118197*/ OPC_MoveParent, ++/*118198*/ OPC_MoveChild6, ++/*118199*/ OPC_CheckInteger, 1, ++/*118201*/ OPC_CheckType, MVT::i32, ++/*118203*/ OPC_MoveParent, ++/*118204*/ OPC_MoveChild7, ++/*118205*/ OPC_CheckInteger, 1, ++/*118207*/ OPC_CheckType, MVT::i32, ++/*118209*/ OPC_MoveParent, ++/*118210*/ OPC_MoveChild, 8, ++/*118212*/ OPC_CheckInteger, 1, ++/*118214*/ OPC_CheckType, MVT::i32, ++/*118216*/ OPC_MoveParent, ++/*118217*/ OPC_MoveChild, 9, ++/*118219*/ OPC_CheckInteger, 1, ++/*118221*/ OPC_CheckType, MVT::i32, ++/*118223*/ OPC_MoveParent, ++/*118224*/ OPC_MoveChild, 10, ++/*118226*/ OPC_CheckInteger, 1, ++/*118228*/ OPC_CheckType, MVT::i32, ++/*118230*/ OPC_MoveParent, ++/*118231*/ OPC_MoveChild, 11, ++/*118233*/ OPC_CheckInteger, 1, ++/*118235*/ OPC_CheckType, MVT::i32, ++/*118237*/ OPC_MoveParent, ++/*118238*/ OPC_MoveChild, 12, ++/*118240*/ OPC_CheckInteger, 1, ++/*118242*/ OPC_CheckType, MVT::i32, ++/*118244*/ OPC_MoveParent, ++/*118245*/ OPC_MoveChild, 13, ++/*118247*/ OPC_CheckInteger, 1, ++/*118249*/ OPC_CheckType, MVT::i32, ++/*118251*/ OPC_MoveParent, ++/*118252*/ OPC_MoveChild, 14, ++/*118254*/ OPC_CheckInteger, 1, ++/*118256*/ OPC_CheckType, MVT::i32, ++/*118258*/ OPC_MoveParent, ++/*118259*/ OPC_MoveChild, 15, ++/*118261*/ OPC_CheckInteger, 1, ++/*118263*/ OPC_CheckType, MVT::i32, ++/*118265*/ OPC_MoveParent, ++/*118266*/ OPC_MoveChild, 16, ++/*118268*/ OPC_CheckInteger, 1, ++/*118270*/ OPC_CheckType, MVT::i32, ++/*118272*/ OPC_MoveParent, ++/*118273*/ OPC_MoveChild, 17, ++/*118275*/ OPC_CheckInteger, 1, ++/*118277*/ OPC_CheckType, MVT::i32, ++/*118279*/ OPC_MoveParent, ++/*118280*/ OPC_MoveChild, 18, ++/*118282*/ OPC_CheckInteger, 1, ++/*118284*/ OPC_CheckType, MVT::i32, ++/*118286*/ OPC_MoveParent, ++/*118287*/ OPC_MoveChild, 19, ++/*118289*/ OPC_CheckInteger, 1, ++/*118291*/ OPC_CheckType, MVT::i32, ++/*118293*/ OPC_MoveParent, ++/*118294*/ OPC_MoveChild, 20, ++/*118296*/ OPC_CheckInteger, 1, ++/*118298*/ OPC_CheckType, MVT::i32, ++/*118300*/ OPC_MoveParent, ++/*118301*/ OPC_MoveChild, 21, ++/*118303*/ OPC_CheckInteger, 1, ++/*118305*/ OPC_CheckType, MVT::i32, ++/*118307*/ OPC_MoveParent, ++/*118308*/ OPC_MoveChild, 22, ++/*118310*/ OPC_CheckInteger, 1, ++/*118312*/ OPC_CheckType, MVT::i32, ++/*118314*/ OPC_MoveParent, ++/*118315*/ OPC_MoveChild, 23, ++/*118317*/ OPC_CheckInteger, 1, ++/*118319*/ OPC_CheckType, MVT::i32, ++/*118321*/ OPC_MoveParent, ++/*118322*/ OPC_MoveChild, 24, ++/*118324*/ OPC_CheckInteger, 1, ++/*118326*/ OPC_CheckType, MVT::i32, ++/*118328*/ OPC_MoveParent, ++/*118329*/ OPC_MoveChild, 25, ++/*118331*/ OPC_CheckInteger, 1, ++/*118333*/ OPC_CheckType, MVT::i32, ++/*118335*/ OPC_MoveParent, ++/*118336*/ OPC_MoveChild, 26, ++/*118338*/ OPC_CheckInteger, 1, ++/*118340*/ OPC_CheckType, MVT::i32, ++/*118342*/ OPC_MoveParent, ++/*118343*/ OPC_MoveChild, 27, ++/*118345*/ OPC_CheckInteger, 1, ++/*118347*/ OPC_CheckType, MVT::i32, ++/*118349*/ OPC_MoveParent, ++/*118350*/ OPC_MoveChild, 28, ++/*118352*/ OPC_CheckInteger, 1, ++/*118354*/ OPC_CheckType, MVT::i32, ++/*118356*/ OPC_MoveParent, ++/*118357*/ OPC_MoveChild, 29, ++/*118359*/ OPC_CheckInteger, 1, ++/*118361*/ OPC_CheckType, MVT::i32, ++/*118363*/ OPC_MoveParent, ++/*118364*/ OPC_MoveChild, 30, ++/*118366*/ OPC_CheckInteger, 1, ++/*118368*/ OPC_CheckType, MVT::i32, ++/*118370*/ OPC_MoveParent, ++/*118371*/ OPC_MoveChild, 31, ++/*118373*/ OPC_CheckInteger, 1, ++/*118375*/ OPC_CheckType, MVT::i32, ++/*118377*/ OPC_MoveParent, ++/*118378*/ OPC_MoveParent, ++/*118379*/ OPC_CheckChild1Same, 1, ++/*118381*/ OPC_MoveParent, ++/*118382*/ OPC_MoveParent, ++/*118383*/ OPC_MoveChild1, ++/*118384*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*118387*/ OPC_CheckChild0Integer, 7, ++/*118389*/ OPC_CheckChild0Type, MVT::i32, ++/*118391*/ OPC_CheckChild1Integer, 7, ++/*118393*/ OPC_CheckChild1Type, MVT::i32, ++/*118395*/ OPC_CheckChild2Integer, 7, ++/*118397*/ OPC_CheckChild2Type, MVT::i32, ++/*118399*/ OPC_CheckChild3Integer, 7, ++/*118401*/ OPC_CheckChild3Type, MVT::i32, ++/*118403*/ OPC_CheckChild4Integer, 7, ++/*118405*/ OPC_CheckChild4Type, MVT::i32, ++/*118407*/ OPC_MoveChild5, ++/*118408*/ OPC_CheckInteger, 7, ++/*118410*/ OPC_CheckType, MVT::i32, ++/*118412*/ OPC_MoveParent, ++/*118413*/ OPC_MoveChild6, ++/*118414*/ OPC_CheckInteger, 7, ++/*118416*/ OPC_CheckType, MVT::i32, ++/*118418*/ OPC_MoveParent, ++/*118419*/ OPC_MoveChild7, ++/*118420*/ OPC_CheckInteger, 7, ++/*118422*/ OPC_CheckType, MVT::i32, ++/*118424*/ OPC_MoveParent, ++/*118425*/ OPC_MoveChild, 8, ++/*118427*/ OPC_CheckInteger, 7, ++/*118429*/ OPC_CheckType, MVT::i32, ++/*118431*/ OPC_MoveParent, ++/*118432*/ OPC_MoveChild, 9, ++/*118434*/ OPC_CheckInteger, 7, ++/*118436*/ OPC_CheckType, MVT::i32, ++/*118438*/ OPC_MoveParent, ++/*118439*/ OPC_MoveChild, 10, ++/*118441*/ OPC_CheckInteger, 7, ++/*118443*/ OPC_CheckType, MVT::i32, ++/*118445*/ OPC_MoveParent, ++/*118446*/ OPC_MoveChild, 11, ++/*118448*/ OPC_CheckInteger, 7, ++/*118450*/ OPC_CheckType, MVT::i32, ++/*118452*/ OPC_MoveParent, ++/*118453*/ OPC_MoveChild, 12, ++/*118455*/ OPC_CheckInteger, 7, ++/*118457*/ OPC_CheckType, MVT::i32, ++/*118459*/ OPC_MoveParent, ++/*118460*/ OPC_MoveChild, 13, ++/*118462*/ OPC_CheckInteger, 7, ++/*118464*/ OPC_CheckType, MVT::i32, ++/*118466*/ OPC_MoveParent, ++/*118467*/ OPC_MoveChild, 14, ++/*118469*/ OPC_CheckInteger, 7, ++/*118471*/ OPC_CheckType, MVT::i32, ++/*118473*/ OPC_MoveParent, ++/*118474*/ OPC_MoveChild, 15, ++/*118476*/ OPC_CheckInteger, 7, ++/*118478*/ OPC_CheckType, MVT::i32, ++/*118480*/ OPC_MoveParent, ++/*118481*/ OPC_MoveChild, 16, ++/*118483*/ OPC_CheckInteger, 7, ++/*118485*/ OPC_CheckType, MVT::i32, ++/*118487*/ OPC_MoveParent, ++/*118488*/ OPC_MoveChild, 17, ++/*118490*/ OPC_CheckInteger, 7, ++/*118492*/ OPC_CheckType, MVT::i32, ++/*118494*/ OPC_MoveParent, ++/*118495*/ OPC_MoveChild, 18, ++/*118497*/ OPC_CheckInteger, 7, ++/*118499*/ OPC_CheckType, MVT::i32, ++/*118501*/ OPC_MoveParent, ++/*118502*/ OPC_MoveChild, 19, ++/*118504*/ OPC_CheckInteger, 7, ++/*118506*/ OPC_CheckType, MVT::i32, ++/*118508*/ OPC_MoveParent, ++/*118509*/ OPC_MoveChild, 20, ++/*118511*/ OPC_CheckInteger, 7, ++/*118513*/ OPC_CheckType, MVT::i32, ++/*118515*/ OPC_MoveParent, ++/*118516*/ OPC_MoveChild, 21, ++/*118518*/ OPC_CheckInteger, 7, ++/*118520*/ OPC_CheckType, MVT::i32, ++/*118522*/ OPC_MoveParent, ++/*118523*/ OPC_MoveChild, 22, ++/*118525*/ OPC_CheckInteger, 7, ++/*118527*/ OPC_CheckType, MVT::i32, ++/*118529*/ OPC_MoveParent, ++/*118530*/ OPC_MoveChild, 23, ++/*118532*/ OPC_CheckInteger, 7, ++/*118534*/ OPC_CheckType, MVT::i32, ++/*118536*/ OPC_MoveParent, ++/*118537*/ OPC_MoveChild, 24, ++/*118539*/ OPC_CheckInteger, 7, ++/*118541*/ OPC_CheckType, MVT::i32, ++/*118543*/ OPC_MoveParent, ++/*118544*/ OPC_MoveChild, 25, ++/*118546*/ OPC_CheckInteger, 7, ++/*118548*/ OPC_CheckType, MVT::i32, ++/*118550*/ OPC_MoveParent, ++/*118551*/ OPC_MoveChild, 26, ++/*118553*/ OPC_CheckInteger, 7, ++/*118555*/ OPC_CheckType, MVT::i32, ++/*118557*/ OPC_MoveParent, ++/*118558*/ OPC_MoveChild, 27, ++/*118560*/ OPC_CheckInteger, 7, ++/*118562*/ OPC_CheckType, MVT::i32, ++/*118564*/ OPC_MoveParent, ++/*118565*/ OPC_MoveChild, 28, ++/*118567*/ OPC_CheckInteger, 7, ++/*118569*/ OPC_CheckType, MVT::i32, ++/*118571*/ OPC_MoveParent, ++/*118572*/ OPC_MoveChild, 29, ++/*118574*/ OPC_CheckInteger, 7, ++/*118576*/ OPC_CheckType, MVT::i32, ++/*118578*/ OPC_MoveParent, ++/*118579*/ OPC_MoveChild, 30, ++/*118581*/ OPC_CheckInteger, 7, ++/*118583*/ OPC_CheckType, MVT::i32, ++/*118585*/ OPC_MoveParent, ++/*118586*/ OPC_MoveChild, 31, ++/*118588*/ OPC_CheckInteger, 7, ++/*118590*/ OPC_CheckType, MVT::i32, ++/*118592*/ OPC_MoveParent, ++/*118593*/ OPC_CheckType, MVT::v32i8, ++/*118595*/ OPC_MoveParent, ++/*118596*/ OPC_MoveParent, ++/*118597*/ OPC_MoveParent, ++/*118598*/ OPC_MoveChild1, ++/*118599*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*118602*/ OPC_CheckChild0Integer, 1, ++/*118604*/ OPC_CheckChild0Type, MVT::i32, ++/*118606*/ OPC_CheckChild1Integer, 1, ++/*118608*/ OPC_CheckChild1Type, MVT::i32, ++/*118610*/ OPC_CheckChild2Integer, 1, ++/*118612*/ OPC_CheckChild2Type, MVT::i32, ++/*118614*/ OPC_CheckChild3Integer, 1, ++/*118616*/ OPC_CheckChild3Type, MVT::i32, ++/*118618*/ OPC_CheckChild4Integer, 1, ++/*118620*/ OPC_CheckChild4Type, MVT::i32, ++/*118622*/ OPC_MoveChild5, ++/*118623*/ OPC_CheckInteger, 1, ++/*118625*/ OPC_CheckType, MVT::i32, ++/*118627*/ OPC_MoveParent, ++/*118628*/ OPC_MoveChild6, ++/*118629*/ OPC_CheckInteger, 1, ++/*118631*/ OPC_CheckType, MVT::i32, ++/*118633*/ OPC_MoveParent, ++/*118634*/ OPC_MoveChild7, ++/*118635*/ OPC_CheckInteger, 1, ++/*118637*/ OPC_CheckType, MVT::i32, ++/*118639*/ OPC_MoveParent, ++/*118640*/ OPC_MoveChild, 8, ++/*118642*/ OPC_CheckInteger, 1, ++/*118644*/ OPC_CheckType, MVT::i32, ++/*118646*/ OPC_MoveParent, ++/*118647*/ OPC_MoveChild, 9, ++/*118649*/ OPC_CheckInteger, 1, ++/*118651*/ OPC_CheckType, MVT::i32, ++/*118653*/ OPC_MoveParent, ++/*118654*/ OPC_MoveChild, 10, ++/*118656*/ OPC_CheckInteger, 1, ++/*118658*/ OPC_CheckType, MVT::i32, ++/*118660*/ OPC_MoveParent, ++/*118661*/ OPC_MoveChild, 11, ++/*118663*/ OPC_CheckInteger, 1, ++/*118665*/ OPC_CheckType, MVT::i32, ++/*118667*/ OPC_MoveParent, ++/*118668*/ OPC_MoveChild, 12, ++/*118670*/ OPC_CheckInteger, 1, ++/*118672*/ OPC_CheckType, MVT::i32, ++/*118674*/ OPC_MoveParent, ++/*118675*/ OPC_MoveChild, 13, ++/*118677*/ OPC_CheckInteger, 1, ++/*118679*/ OPC_CheckType, MVT::i32, ++/*118681*/ OPC_MoveParent, ++/*118682*/ OPC_MoveChild, 14, ++/*118684*/ OPC_CheckInteger, 1, ++/*118686*/ OPC_CheckType, MVT::i32, ++/*118688*/ OPC_MoveParent, ++/*118689*/ OPC_MoveChild, 15, ++/*118691*/ OPC_CheckInteger, 1, ++/*118693*/ OPC_CheckType, MVT::i32, ++/*118695*/ OPC_MoveParent, ++/*118696*/ OPC_MoveChild, 16, ++/*118698*/ OPC_CheckInteger, 1, ++/*118700*/ OPC_CheckType, MVT::i32, ++/*118702*/ OPC_MoveParent, ++/*118703*/ OPC_MoveChild, 17, ++/*118705*/ OPC_CheckInteger, 1, ++/*118707*/ OPC_CheckType, MVT::i32, ++/*118709*/ OPC_MoveParent, ++/*118710*/ OPC_MoveChild, 18, ++/*118712*/ OPC_CheckInteger, 1, ++/*118714*/ OPC_CheckType, MVT::i32, ++/*118716*/ OPC_MoveParent, ++/*118717*/ OPC_MoveChild, 19, ++/*118719*/ OPC_CheckInteger, 1, ++/*118721*/ OPC_CheckType, MVT::i32, ++/*118723*/ OPC_MoveParent, ++/*118724*/ OPC_MoveChild, 20, ++/*118726*/ OPC_CheckInteger, 1, ++/*118728*/ OPC_CheckType, MVT::i32, ++/*118730*/ OPC_MoveParent, ++/*118731*/ OPC_MoveChild, 21, ++/*118733*/ OPC_CheckInteger, 1, ++/*118735*/ OPC_CheckType, MVT::i32, ++/*118737*/ OPC_MoveParent, ++/*118738*/ OPC_MoveChild, 22, ++/*118740*/ OPC_CheckInteger, 1, ++/*118742*/ OPC_CheckType, MVT::i32, ++/*118744*/ OPC_MoveParent, ++/*118745*/ OPC_MoveChild, 23, ++/*118747*/ OPC_CheckInteger, 1, ++/*118749*/ OPC_CheckType, MVT::i32, ++/*118751*/ OPC_MoveParent, ++/*118752*/ OPC_MoveChild, 24, ++/*118754*/ OPC_CheckInteger, 1, ++/*118756*/ OPC_CheckType, MVT::i32, ++/*118758*/ OPC_MoveParent, ++/*118759*/ OPC_MoveChild, 25, ++/*118761*/ OPC_CheckInteger, 1, ++/*118763*/ OPC_CheckType, MVT::i32, ++/*118765*/ OPC_MoveParent, ++/*118766*/ OPC_MoveChild, 26, ++/*118768*/ OPC_CheckInteger, 1, ++/*118770*/ OPC_CheckType, MVT::i32, ++/*118772*/ OPC_MoveParent, ++/*118773*/ OPC_MoveChild, 27, ++/*118775*/ OPC_CheckInteger, 1, ++/*118777*/ OPC_CheckType, MVT::i32, ++/*118779*/ OPC_MoveParent, ++/*118780*/ OPC_MoveChild, 28, ++/*118782*/ OPC_CheckInteger, 1, ++/*118784*/ OPC_CheckType, MVT::i32, ++/*118786*/ OPC_MoveParent, ++/*118787*/ OPC_MoveChild, 29, ++/*118789*/ OPC_CheckInteger, 1, ++/*118791*/ OPC_CheckType, MVT::i32, ++/*118793*/ OPC_MoveParent, ++/*118794*/ OPC_MoveChild, 30, ++/*118796*/ OPC_CheckInteger, 1, ++/*118798*/ OPC_CheckType, MVT::i32, ++/*118800*/ OPC_MoveParent, ++/*118801*/ OPC_MoveChild, 31, ++/*118803*/ OPC_CheckInteger, 1, ++/*118805*/ OPC_CheckType, MVT::i32, ++/*118807*/ OPC_MoveParent, ++/*118808*/ OPC_CheckType, MVT::v32i8, ++/*118810*/ OPC_MoveParent, ++/*118811*/ OPC_CheckType, MVT::v32i8, ++/*118813*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*118815*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*118823*/ /*Scope*/ 15|128,5/*655*/, /*->119480*/ ++/*118825*/ OPC_CheckChild0Same, 1, ++/*118827*/ OPC_MoveChild1, ++/*118828*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*118831*/ OPC_CheckChild0Integer, 1, ++/*118833*/ OPC_CheckChild0Type, MVT::i32, ++/*118835*/ OPC_CheckChild1Integer, 1, ++/*118837*/ OPC_CheckChild1Type, MVT::i32, ++/*118839*/ OPC_CheckChild2Integer, 1, ++/*118841*/ OPC_CheckChild2Type, MVT::i32, ++/*118843*/ OPC_CheckChild3Integer, 1, ++/*118845*/ OPC_CheckChild3Type, MVT::i32, ++/*118847*/ OPC_CheckChild4Integer, 1, ++/*118849*/ OPC_CheckChild4Type, MVT::i32, ++/*118851*/ OPC_MoveChild5, ++/*118852*/ OPC_CheckInteger, 1, ++/*118854*/ OPC_CheckType, MVT::i32, ++/*118856*/ OPC_MoveParent, ++/*118857*/ OPC_MoveChild6, ++/*118858*/ OPC_CheckInteger, 1, ++/*118860*/ OPC_CheckType, MVT::i32, ++/*118862*/ OPC_MoveParent, ++/*118863*/ OPC_MoveChild7, ++/*118864*/ OPC_CheckInteger, 1, ++/*118866*/ OPC_CheckType, MVT::i32, ++/*118868*/ OPC_MoveParent, ++/*118869*/ OPC_MoveChild, 8, ++/*118871*/ OPC_CheckInteger, 1, ++/*118873*/ OPC_CheckType, MVT::i32, ++/*118875*/ OPC_MoveParent, ++/*118876*/ OPC_MoveChild, 9, ++/*118878*/ OPC_CheckInteger, 1, ++/*118880*/ OPC_CheckType, MVT::i32, ++/*118882*/ OPC_MoveParent, ++/*118883*/ OPC_MoveChild, 10, ++/*118885*/ OPC_CheckInteger, 1, ++/*118887*/ OPC_CheckType, MVT::i32, ++/*118889*/ OPC_MoveParent, ++/*118890*/ OPC_MoveChild, 11, ++/*118892*/ OPC_CheckInteger, 1, ++/*118894*/ OPC_CheckType, MVT::i32, ++/*118896*/ OPC_MoveParent, ++/*118897*/ OPC_MoveChild, 12, ++/*118899*/ OPC_CheckInteger, 1, ++/*118901*/ OPC_CheckType, MVT::i32, ++/*118903*/ OPC_MoveParent, ++/*118904*/ OPC_MoveChild, 13, ++/*118906*/ OPC_CheckInteger, 1, ++/*118908*/ OPC_CheckType, MVT::i32, ++/*118910*/ OPC_MoveParent, ++/*118911*/ OPC_MoveChild, 14, ++/*118913*/ OPC_CheckInteger, 1, ++/*118915*/ OPC_CheckType, MVT::i32, ++/*118917*/ OPC_MoveParent, ++/*118918*/ OPC_MoveChild, 15, ++/*118920*/ OPC_CheckInteger, 1, ++/*118922*/ OPC_CheckType, MVT::i32, ++/*118924*/ OPC_MoveParent, ++/*118925*/ OPC_MoveChild, 16, ++/*118927*/ OPC_CheckInteger, 1, ++/*118929*/ OPC_CheckType, MVT::i32, ++/*118931*/ OPC_MoveParent, ++/*118932*/ OPC_MoveChild, 17, ++/*118934*/ OPC_CheckInteger, 1, ++/*118936*/ OPC_CheckType, MVT::i32, ++/*118938*/ OPC_MoveParent, ++/*118939*/ OPC_MoveChild, 18, ++/*118941*/ OPC_CheckInteger, 1, ++/*118943*/ OPC_CheckType, MVT::i32, ++/*118945*/ OPC_MoveParent, ++/*118946*/ OPC_MoveChild, 19, ++/*118948*/ OPC_CheckInteger, 1, ++/*118950*/ OPC_CheckType, MVT::i32, ++/*118952*/ OPC_MoveParent, ++/*118953*/ OPC_MoveChild, 20, ++/*118955*/ OPC_CheckInteger, 1, ++/*118957*/ OPC_CheckType, MVT::i32, ++/*118959*/ OPC_MoveParent, ++/*118960*/ OPC_MoveChild, 21, ++/*118962*/ OPC_CheckInteger, 1, ++/*118964*/ OPC_CheckType, MVT::i32, ++/*118966*/ OPC_MoveParent, ++/*118967*/ OPC_MoveChild, 22, ++/*118969*/ OPC_CheckInteger, 1, ++/*118971*/ OPC_CheckType, MVT::i32, ++/*118973*/ OPC_MoveParent, ++/*118974*/ OPC_MoveChild, 23, ++/*118976*/ OPC_CheckInteger, 1, ++/*118978*/ OPC_CheckType, MVT::i32, ++/*118980*/ OPC_MoveParent, ++/*118981*/ OPC_MoveChild, 24, ++/*118983*/ OPC_CheckInteger, 1, ++/*118985*/ OPC_CheckType, MVT::i32, ++/*118987*/ OPC_MoveParent, ++/*118988*/ OPC_MoveChild, 25, ++/*118990*/ OPC_CheckInteger, 1, ++/*118992*/ OPC_CheckType, MVT::i32, ++/*118994*/ OPC_MoveParent, ++/*118995*/ OPC_MoveChild, 26, ++/*118997*/ OPC_CheckInteger, 1, ++/*118999*/ OPC_CheckType, MVT::i32, ++/*119001*/ OPC_MoveParent, ++/*119002*/ OPC_MoveChild, 27, ++/*119004*/ OPC_CheckInteger, 1, ++/*119006*/ OPC_CheckType, MVT::i32, ++/*119008*/ OPC_MoveParent, ++/*119009*/ OPC_MoveChild, 28, ++/*119011*/ OPC_CheckInteger, 1, ++/*119013*/ OPC_CheckType, MVT::i32, ++/*119015*/ OPC_MoveParent, ++/*119016*/ OPC_MoveChild, 29, ++/*119018*/ OPC_CheckInteger, 1, ++/*119020*/ OPC_CheckType, MVT::i32, ++/*119022*/ OPC_MoveParent, ++/*119023*/ OPC_MoveChild, 30, ++/*119025*/ OPC_CheckInteger, 1, ++/*119027*/ OPC_CheckType, MVT::i32, ++/*119029*/ OPC_MoveParent, ++/*119030*/ OPC_MoveChild, 31, ++/*119032*/ OPC_CheckInteger, 1, ++/*119034*/ OPC_CheckType, MVT::i32, ++/*119036*/ OPC_MoveParent, ++/*119037*/ OPC_MoveParent, ++/*119038*/ OPC_MoveParent, ++/*119039*/ OPC_MoveParent, ++/*119040*/ OPC_MoveChild1, ++/*119041*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*119044*/ OPC_CheckChild0Integer, 7, ++/*119046*/ OPC_CheckChild0Type, MVT::i32, ++/*119048*/ OPC_CheckChild1Integer, 7, ++/*119050*/ OPC_CheckChild1Type, MVT::i32, ++/*119052*/ OPC_CheckChild2Integer, 7, ++/*119054*/ OPC_CheckChild2Type, MVT::i32, ++/*119056*/ OPC_CheckChild3Integer, 7, ++/*119058*/ OPC_CheckChild3Type, MVT::i32, ++/*119060*/ OPC_CheckChild4Integer, 7, ++/*119062*/ OPC_CheckChild4Type, MVT::i32, ++/*119064*/ OPC_MoveChild5, ++/*119065*/ OPC_CheckInteger, 7, ++/*119067*/ OPC_CheckType, MVT::i32, ++/*119069*/ OPC_MoveParent, ++/*119070*/ OPC_MoveChild6, ++/*119071*/ OPC_CheckInteger, 7, ++/*119073*/ OPC_CheckType, MVT::i32, ++/*119075*/ OPC_MoveParent, ++/*119076*/ OPC_MoveChild7, ++/*119077*/ OPC_CheckInteger, 7, ++/*119079*/ OPC_CheckType, MVT::i32, ++/*119081*/ OPC_MoveParent, ++/*119082*/ OPC_MoveChild, 8, ++/*119084*/ OPC_CheckInteger, 7, ++/*119086*/ OPC_CheckType, MVT::i32, ++/*119088*/ OPC_MoveParent, ++/*119089*/ OPC_MoveChild, 9, ++/*119091*/ OPC_CheckInteger, 7, ++/*119093*/ OPC_CheckType, MVT::i32, ++/*119095*/ OPC_MoveParent, ++/*119096*/ OPC_MoveChild, 10, ++/*119098*/ OPC_CheckInteger, 7, ++/*119100*/ OPC_CheckType, MVT::i32, ++/*119102*/ OPC_MoveParent, ++/*119103*/ OPC_MoveChild, 11, ++/*119105*/ OPC_CheckInteger, 7, ++/*119107*/ OPC_CheckType, MVT::i32, ++/*119109*/ OPC_MoveParent, ++/*119110*/ OPC_MoveChild, 12, ++/*119112*/ OPC_CheckInteger, 7, ++/*119114*/ OPC_CheckType, MVT::i32, ++/*119116*/ OPC_MoveParent, ++/*119117*/ OPC_MoveChild, 13, ++/*119119*/ OPC_CheckInteger, 7, ++/*119121*/ OPC_CheckType, MVT::i32, ++/*119123*/ OPC_MoveParent, ++/*119124*/ OPC_MoveChild, 14, ++/*119126*/ OPC_CheckInteger, 7, ++/*119128*/ OPC_CheckType, MVT::i32, ++/*119130*/ OPC_MoveParent, ++/*119131*/ OPC_MoveChild, 15, ++/*119133*/ OPC_CheckInteger, 7, ++/*119135*/ OPC_CheckType, MVT::i32, ++/*119137*/ OPC_MoveParent, ++/*119138*/ OPC_MoveChild, 16, ++/*119140*/ OPC_CheckInteger, 7, ++/*119142*/ OPC_CheckType, MVT::i32, ++/*119144*/ OPC_MoveParent, ++/*119145*/ OPC_MoveChild, 17, ++/*119147*/ OPC_CheckInteger, 7, ++/*119149*/ OPC_CheckType, MVT::i32, ++/*119151*/ OPC_MoveParent, ++/*119152*/ OPC_MoveChild, 18, ++/*119154*/ OPC_CheckInteger, 7, ++/*119156*/ OPC_CheckType, MVT::i32, ++/*119158*/ OPC_MoveParent, ++/*119159*/ OPC_MoveChild, 19, ++/*119161*/ OPC_CheckInteger, 7, ++/*119163*/ OPC_CheckType, MVT::i32, ++/*119165*/ OPC_MoveParent, ++/*119166*/ OPC_MoveChild, 20, ++/*119168*/ OPC_CheckInteger, 7, ++/*119170*/ OPC_CheckType, MVT::i32, ++/*119172*/ OPC_MoveParent, ++/*119173*/ OPC_MoveChild, 21, ++/*119175*/ OPC_CheckInteger, 7, ++/*119177*/ OPC_CheckType, MVT::i32, ++/*119179*/ OPC_MoveParent, ++/*119180*/ OPC_MoveChild, 22, ++/*119182*/ OPC_CheckInteger, 7, ++/*119184*/ OPC_CheckType, MVT::i32, ++/*119186*/ OPC_MoveParent, ++/*119187*/ OPC_MoveChild, 23, ++/*119189*/ OPC_CheckInteger, 7, ++/*119191*/ OPC_CheckType, MVT::i32, ++/*119193*/ OPC_MoveParent, ++/*119194*/ OPC_MoveChild, 24, ++/*119196*/ OPC_CheckInteger, 7, ++/*119198*/ OPC_CheckType, MVT::i32, ++/*119200*/ OPC_MoveParent, ++/*119201*/ OPC_MoveChild, 25, ++/*119203*/ OPC_CheckInteger, 7, ++/*119205*/ OPC_CheckType, MVT::i32, ++/*119207*/ OPC_MoveParent, ++/*119208*/ OPC_MoveChild, 26, ++/*119210*/ OPC_CheckInteger, 7, ++/*119212*/ OPC_CheckType, MVT::i32, ++/*119214*/ OPC_MoveParent, ++/*119215*/ OPC_MoveChild, 27, ++/*119217*/ OPC_CheckInteger, 7, ++/*119219*/ OPC_CheckType, MVT::i32, ++/*119221*/ OPC_MoveParent, ++/*119222*/ OPC_MoveChild, 28, ++/*119224*/ OPC_CheckInteger, 7, ++/*119226*/ OPC_CheckType, MVT::i32, ++/*119228*/ OPC_MoveParent, ++/*119229*/ OPC_MoveChild, 29, ++/*119231*/ OPC_CheckInteger, 7, ++/*119233*/ OPC_CheckType, MVT::i32, ++/*119235*/ OPC_MoveParent, ++/*119236*/ OPC_MoveChild, 30, ++/*119238*/ OPC_CheckInteger, 7, ++/*119240*/ OPC_CheckType, MVT::i32, ++/*119242*/ OPC_MoveParent, ++/*119243*/ OPC_MoveChild, 31, ++/*119245*/ OPC_CheckInteger, 7, ++/*119247*/ OPC_CheckType, MVT::i32, ++/*119249*/ OPC_MoveParent, ++/*119250*/ OPC_CheckType, MVT::v32i8, ++/*119252*/ OPC_MoveParent, ++/*119253*/ OPC_MoveParent, ++/*119254*/ OPC_MoveParent, ++/*119255*/ OPC_MoveChild1, ++/*119256*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*119259*/ OPC_CheckChild0Integer, 1, ++/*119261*/ OPC_CheckChild0Type, MVT::i32, ++/*119263*/ OPC_CheckChild1Integer, 1, ++/*119265*/ OPC_CheckChild1Type, MVT::i32, ++/*119267*/ OPC_CheckChild2Integer, 1, ++/*119269*/ OPC_CheckChild2Type, MVT::i32, ++/*119271*/ OPC_CheckChild3Integer, 1, ++/*119273*/ OPC_CheckChild3Type, MVT::i32, ++/*119275*/ OPC_CheckChild4Integer, 1, ++/*119277*/ OPC_CheckChild4Type, MVT::i32, ++/*119279*/ OPC_MoveChild5, ++/*119280*/ OPC_CheckInteger, 1, ++/*119282*/ OPC_CheckType, MVT::i32, ++/*119284*/ OPC_MoveParent, ++/*119285*/ OPC_MoveChild6, ++/*119286*/ OPC_CheckInteger, 1, ++/*119288*/ OPC_CheckType, MVT::i32, ++/*119290*/ OPC_MoveParent, ++/*119291*/ OPC_MoveChild7, ++/*119292*/ OPC_CheckInteger, 1, ++/*119294*/ OPC_CheckType, MVT::i32, ++/*119296*/ OPC_MoveParent, ++/*119297*/ OPC_MoveChild, 8, ++/*119299*/ OPC_CheckInteger, 1, ++/*119301*/ OPC_CheckType, MVT::i32, ++/*119303*/ OPC_MoveParent, ++/*119304*/ OPC_MoveChild, 9, ++/*119306*/ OPC_CheckInteger, 1, ++/*119308*/ OPC_CheckType, MVT::i32, ++/*119310*/ OPC_MoveParent, ++/*119311*/ OPC_MoveChild, 10, ++/*119313*/ OPC_CheckInteger, 1, ++/*119315*/ OPC_CheckType, MVT::i32, ++/*119317*/ OPC_MoveParent, ++/*119318*/ OPC_MoveChild, 11, ++/*119320*/ OPC_CheckInteger, 1, ++/*119322*/ OPC_CheckType, MVT::i32, ++/*119324*/ OPC_MoveParent, ++/*119325*/ OPC_MoveChild, 12, ++/*119327*/ OPC_CheckInteger, 1, ++/*119329*/ OPC_CheckType, MVT::i32, ++/*119331*/ OPC_MoveParent, ++/*119332*/ OPC_MoveChild, 13, ++/*119334*/ OPC_CheckInteger, 1, ++/*119336*/ OPC_CheckType, MVT::i32, ++/*119338*/ OPC_MoveParent, ++/*119339*/ OPC_MoveChild, 14, ++/*119341*/ OPC_CheckInteger, 1, ++/*119343*/ OPC_CheckType, MVT::i32, ++/*119345*/ OPC_MoveParent, ++/*119346*/ OPC_MoveChild, 15, ++/*119348*/ OPC_CheckInteger, 1, ++/*119350*/ OPC_CheckType, MVT::i32, ++/*119352*/ OPC_MoveParent, ++/*119353*/ OPC_MoveChild, 16, ++/*119355*/ OPC_CheckInteger, 1, ++/*119357*/ OPC_CheckType, MVT::i32, ++/*119359*/ OPC_MoveParent, ++/*119360*/ OPC_MoveChild, 17, ++/*119362*/ OPC_CheckInteger, 1, ++/*119364*/ OPC_CheckType, MVT::i32, ++/*119366*/ OPC_MoveParent, ++/*119367*/ OPC_MoveChild, 18, ++/*119369*/ OPC_CheckInteger, 1, ++/*119371*/ OPC_CheckType, MVT::i32, ++/*119373*/ OPC_MoveParent, ++/*119374*/ OPC_MoveChild, 19, ++/*119376*/ OPC_CheckInteger, 1, ++/*119378*/ OPC_CheckType, MVT::i32, ++/*119380*/ OPC_MoveParent, ++/*119381*/ OPC_MoveChild, 20, ++/*119383*/ OPC_CheckInteger, 1, ++/*119385*/ OPC_CheckType, MVT::i32, ++/*119387*/ OPC_MoveParent, ++/*119388*/ OPC_MoveChild, 21, ++/*119390*/ OPC_CheckInteger, 1, ++/*119392*/ OPC_CheckType, MVT::i32, ++/*119394*/ OPC_MoveParent, ++/*119395*/ OPC_MoveChild, 22, ++/*119397*/ OPC_CheckInteger, 1, ++/*119399*/ OPC_CheckType, MVT::i32, ++/*119401*/ OPC_MoveParent, ++/*119402*/ OPC_MoveChild, 23, ++/*119404*/ OPC_CheckInteger, 1, ++/*119406*/ OPC_CheckType, MVT::i32, ++/*119408*/ OPC_MoveParent, ++/*119409*/ OPC_MoveChild, 24, ++/*119411*/ OPC_CheckInteger, 1, ++/*119413*/ OPC_CheckType, MVT::i32, ++/*119415*/ OPC_MoveParent, ++/*119416*/ OPC_MoveChild, 25, ++/*119418*/ OPC_CheckInteger, 1, ++/*119420*/ OPC_CheckType, MVT::i32, ++/*119422*/ OPC_MoveParent, ++/*119423*/ OPC_MoveChild, 26, ++/*119425*/ OPC_CheckInteger, 1, ++/*119427*/ OPC_CheckType, MVT::i32, ++/*119429*/ OPC_MoveParent, ++/*119430*/ OPC_MoveChild, 27, ++/*119432*/ OPC_CheckInteger, 1, ++/*119434*/ OPC_CheckType, MVT::i32, ++/*119436*/ OPC_MoveParent, ++/*119437*/ OPC_MoveChild, 28, ++/*119439*/ OPC_CheckInteger, 1, ++/*119441*/ OPC_CheckType, MVT::i32, ++/*119443*/ OPC_MoveParent, ++/*119444*/ OPC_MoveChild, 29, ++/*119446*/ OPC_CheckInteger, 1, ++/*119448*/ OPC_CheckType, MVT::i32, ++/*119450*/ OPC_MoveParent, ++/*119451*/ OPC_MoveChild, 30, ++/*119453*/ OPC_CheckInteger, 1, ++/*119455*/ OPC_CheckType, MVT::i32, ++/*119457*/ OPC_MoveParent, ++/*119458*/ OPC_MoveChild, 31, ++/*119460*/ OPC_CheckInteger, 1, ++/*119462*/ OPC_CheckType, MVT::i32, ++/*119464*/ OPC_MoveParent, ++/*119465*/ OPC_CheckType, MVT::v32i8, ++/*119467*/ OPC_MoveParent, ++/*119468*/ OPC_CheckType, MVT::v32i8, ++/*119470*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*119472*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*119480*/ 0, /*End of Scope*/ ++/*119481*/ /*Scope*/ 84|128,39/*5076*/, /*->124559*/ ++/*119483*/ OPC_MoveChild0, ++/*119484*/ OPC_SwitchOpcode /*2 cases */, 85|128,8/*1109*/, TARGET_VAL(ISD::BUILD_VECTOR),// ->120598 ++/*119489*/ OPC_CheckChild0Integer, 1, ++/*119491*/ OPC_CheckChild0Type, MVT::i32, ++/*119493*/ OPC_CheckChild1Integer, 1, ++/*119495*/ OPC_CheckChild1Type, MVT::i32, ++/*119497*/ OPC_CheckChild2Integer, 1, ++/*119499*/ OPC_CheckChild2Type, MVT::i32, ++/*119501*/ OPC_CheckChild3Integer, 1, ++/*119503*/ OPC_CheckChild3Type, MVT::i32, ++/*119505*/ OPC_CheckChild4Integer, 1, ++/*119507*/ OPC_CheckChild4Type, MVT::i32, ++/*119509*/ OPC_MoveChild5, ++/*119510*/ OPC_CheckInteger, 1, ++/*119512*/ OPC_CheckType, MVT::i32, ++/*119514*/ OPC_MoveParent, ++/*119515*/ OPC_MoveChild6, ++/*119516*/ OPC_CheckInteger, 1, ++/*119518*/ OPC_CheckType, MVT::i32, ++/*119520*/ OPC_MoveParent, ++/*119521*/ OPC_MoveChild7, ++/*119522*/ OPC_CheckInteger, 1, ++/*119524*/ OPC_CheckType, MVT::i32, ++/*119526*/ OPC_MoveParent, ++/*119527*/ OPC_MoveChild, 8, ++/*119529*/ OPC_CheckInteger, 1, ++/*119531*/ OPC_CheckType, MVT::i32, ++/*119533*/ OPC_MoveParent, ++/*119534*/ OPC_MoveChild, 9, ++/*119536*/ OPC_CheckInteger, 1, ++/*119538*/ OPC_CheckType, MVT::i32, ++/*119540*/ OPC_MoveParent, ++/*119541*/ OPC_MoveChild, 10, ++/*119543*/ OPC_CheckInteger, 1, ++/*119545*/ OPC_CheckType, MVT::i32, ++/*119547*/ OPC_MoveParent, ++/*119548*/ OPC_MoveChild, 11, ++/*119550*/ OPC_CheckInteger, 1, ++/*119552*/ OPC_CheckType, MVT::i32, ++/*119554*/ OPC_MoveParent, ++/*119555*/ OPC_MoveChild, 12, ++/*119557*/ OPC_CheckInteger, 1, ++/*119559*/ OPC_CheckType, MVT::i32, ++/*119561*/ OPC_MoveParent, ++/*119562*/ OPC_MoveChild, 13, ++/*119564*/ OPC_CheckInteger, 1, ++/*119566*/ OPC_CheckType, MVT::i32, ++/*119568*/ OPC_MoveParent, ++/*119569*/ OPC_MoveChild, 14, ++/*119571*/ OPC_CheckInteger, 1, ++/*119573*/ OPC_CheckType, MVT::i32, ++/*119575*/ OPC_MoveParent, ++/*119576*/ OPC_MoveChild, 15, ++/*119578*/ OPC_CheckInteger, 1, ++/*119580*/ OPC_CheckType, MVT::i32, ++/*119582*/ OPC_MoveParent, ++/*119583*/ OPC_MoveChild, 16, ++/*119585*/ OPC_CheckInteger, 1, ++/*119587*/ OPC_CheckType, MVT::i32, ++/*119589*/ OPC_MoveParent, ++/*119590*/ OPC_MoveChild, 17, ++/*119592*/ OPC_CheckInteger, 1, ++/*119594*/ OPC_CheckType, MVT::i32, ++/*119596*/ OPC_MoveParent, ++/*119597*/ OPC_MoveChild, 18, ++/*119599*/ OPC_CheckInteger, 1, ++/*119601*/ OPC_CheckType, MVT::i32, ++/*119603*/ OPC_MoveParent, ++/*119604*/ OPC_MoveChild, 19, ++/*119606*/ OPC_CheckInteger, 1, ++/*119608*/ OPC_CheckType, MVT::i32, ++/*119610*/ OPC_MoveParent, ++/*119611*/ OPC_MoveChild, 20, ++/*119613*/ OPC_CheckInteger, 1, ++/*119615*/ OPC_CheckType, MVT::i32, ++/*119617*/ OPC_MoveParent, ++/*119618*/ OPC_MoveChild, 21, ++/*119620*/ OPC_CheckInteger, 1, ++/*119622*/ OPC_CheckType, MVT::i32, ++/*119624*/ OPC_MoveParent, ++/*119625*/ OPC_MoveChild, 22, ++/*119627*/ OPC_CheckInteger, 1, ++/*119629*/ OPC_CheckType, MVT::i32, ++/*119631*/ OPC_MoveParent, ++/*119632*/ OPC_MoveChild, 23, ++/*119634*/ OPC_CheckInteger, 1, ++/*119636*/ OPC_CheckType, MVT::i32, ++/*119638*/ OPC_MoveParent, ++/*119639*/ OPC_MoveChild, 24, ++/*119641*/ OPC_CheckInteger, 1, ++/*119643*/ OPC_CheckType, MVT::i32, ++/*119645*/ OPC_MoveParent, ++/*119646*/ OPC_MoveChild, 25, ++/*119648*/ OPC_CheckInteger, 1, ++/*119650*/ OPC_CheckType, MVT::i32, ++/*119652*/ OPC_MoveParent, ++/*119653*/ OPC_MoveChild, 26, ++/*119655*/ OPC_CheckInteger, 1, ++/*119657*/ OPC_CheckType, MVT::i32, ++/*119659*/ OPC_MoveParent, ++/*119660*/ OPC_MoveChild, 27, ++/*119662*/ OPC_CheckInteger, 1, ++/*119664*/ OPC_CheckType, MVT::i32, ++/*119666*/ OPC_MoveParent, ++/*119667*/ OPC_MoveChild, 28, ++/*119669*/ OPC_CheckInteger, 1, ++/*119671*/ OPC_CheckType, MVT::i32, ++/*119673*/ OPC_MoveParent, ++/*119674*/ OPC_MoveChild, 29, ++/*119676*/ OPC_CheckInteger, 1, ++/*119678*/ OPC_CheckType, MVT::i32, ++/*119680*/ OPC_MoveParent, ++/*119681*/ OPC_MoveChild, 30, ++/*119683*/ OPC_CheckInteger, 1, ++/*119685*/ OPC_CheckType, MVT::i32, ++/*119687*/ OPC_MoveParent, ++/*119688*/ OPC_MoveChild, 31, ++/*119690*/ OPC_CheckInteger, 1, ++/*119692*/ OPC_CheckType, MVT::i32, ++/*119694*/ OPC_MoveParent, ++/*119695*/ OPC_MoveParent, ++/*119696*/ OPC_MoveChild1, ++/*119697*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*119700*/ OPC_Scope, 62|128,3/*446*/, /*->120149*/ // 2 children in Scope ++/*119703*/ OPC_CheckChild0Same, 0, ++/*119705*/ OPC_CheckChild1Same, 1, ++/*119707*/ OPC_MoveParent, ++/*119708*/ OPC_MoveParent, ++/*119709*/ OPC_MoveChild1, ++/*119710*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*119713*/ OPC_CheckChild0Integer, 7, ++/*119715*/ OPC_CheckChild0Type, MVT::i32, ++/*119717*/ OPC_CheckChild1Integer, 7, ++/*119719*/ OPC_CheckChild1Type, MVT::i32, ++/*119721*/ OPC_CheckChild2Integer, 7, ++/*119723*/ OPC_CheckChild2Type, MVT::i32, ++/*119725*/ OPC_CheckChild3Integer, 7, ++/*119727*/ OPC_CheckChild3Type, MVT::i32, ++/*119729*/ OPC_CheckChild4Integer, 7, ++/*119731*/ OPC_CheckChild4Type, MVT::i32, ++/*119733*/ OPC_MoveChild5, ++/*119734*/ OPC_CheckInteger, 7, ++/*119736*/ OPC_CheckType, MVT::i32, ++/*119738*/ OPC_MoveParent, ++/*119739*/ OPC_MoveChild6, ++/*119740*/ OPC_CheckInteger, 7, ++/*119742*/ OPC_CheckType, MVT::i32, ++/*119744*/ OPC_MoveParent, ++/*119745*/ OPC_MoveChild7, ++/*119746*/ OPC_CheckInteger, 7, ++/*119748*/ OPC_CheckType, MVT::i32, ++/*119750*/ OPC_MoveParent, ++/*119751*/ OPC_MoveChild, 8, ++/*119753*/ OPC_CheckInteger, 7, ++/*119755*/ OPC_CheckType, MVT::i32, ++/*119757*/ OPC_MoveParent, ++/*119758*/ OPC_MoveChild, 9, ++/*119760*/ OPC_CheckInteger, 7, ++/*119762*/ OPC_CheckType, MVT::i32, ++/*119764*/ OPC_MoveParent, ++/*119765*/ OPC_MoveChild, 10, ++/*119767*/ OPC_CheckInteger, 7, ++/*119769*/ OPC_CheckType, MVT::i32, ++/*119771*/ OPC_MoveParent, ++/*119772*/ OPC_MoveChild, 11, ++/*119774*/ OPC_CheckInteger, 7, ++/*119776*/ OPC_CheckType, MVT::i32, ++/*119778*/ OPC_MoveParent, ++/*119779*/ OPC_MoveChild, 12, ++/*119781*/ OPC_CheckInteger, 7, ++/*119783*/ OPC_CheckType, MVT::i32, ++/*119785*/ OPC_MoveParent, ++/*119786*/ OPC_MoveChild, 13, ++/*119788*/ OPC_CheckInteger, 7, ++/*119790*/ OPC_CheckType, MVT::i32, ++/*119792*/ OPC_MoveParent, ++/*119793*/ OPC_MoveChild, 14, ++/*119795*/ OPC_CheckInteger, 7, ++/*119797*/ OPC_CheckType, MVT::i32, ++/*119799*/ OPC_MoveParent, ++/*119800*/ OPC_MoveChild, 15, ++/*119802*/ OPC_CheckInteger, 7, ++/*119804*/ OPC_CheckType, MVT::i32, ++/*119806*/ OPC_MoveParent, ++/*119807*/ OPC_MoveChild, 16, ++/*119809*/ OPC_CheckInteger, 7, ++/*119811*/ OPC_CheckType, MVT::i32, ++/*119813*/ OPC_MoveParent, ++/*119814*/ OPC_MoveChild, 17, ++/*119816*/ OPC_CheckInteger, 7, ++/*119818*/ OPC_CheckType, MVT::i32, ++/*119820*/ OPC_MoveParent, ++/*119821*/ OPC_MoveChild, 18, ++/*119823*/ OPC_CheckInteger, 7, ++/*119825*/ OPC_CheckType, MVT::i32, ++/*119827*/ OPC_MoveParent, ++/*119828*/ OPC_MoveChild, 19, ++/*119830*/ OPC_CheckInteger, 7, ++/*119832*/ OPC_CheckType, MVT::i32, ++/*119834*/ OPC_MoveParent, ++/*119835*/ OPC_MoveChild, 20, ++/*119837*/ OPC_CheckInteger, 7, ++/*119839*/ OPC_CheckType, MVT::i32, ++/*119841*/ OPC_MoveParent, ++/*119842*/ OPC_MoveChild, 21, ++/*119844*/ OPC_CheckInteger, 7, ++/*119846*/ OPC_CheckType, MVT::i32, ++/*119848*/ OPC_MoveParent, ++/*119849*/ OPC_MoveChild, 22, ++/*119851*/ OPC_CheckInteger, 7, ++/*119853*/ OPC_CheckType, MVT::i32, ++/*119855*/ OPC_MoveParent, ++/*119856*/ OPC_MoveChild, 23, ++/*119858*/ OPC_CheckInteger, 7, ++/*119860*/ OPC_CheckType, MVT::i32, ++/*119862*/ OPC_MoveParent, ++/*119863*/ OPC_MoveChild, 24, ++/*119865*/ OPC_CheckInteger, 7, ++/*119867*/ OPC_CheckType, MVT::i32, ++/*119869*/ OPC_MoveParent, ++/*119870*/ OPC_MoveChild, 25, ++/*119872*/ OPC_CheckInteger, 7, ++/*119874*/ OPC_CheckType, MVT::i32, ++/*119876*/ OPC_MoveParent, ++/*119877*/ OPC_MoveChild, 26, ++/*119879*/ OPC_CheckInteger, 7, ++/*119881*/ OPC_CheckType, MVT::i32, ++/*119883*/ OPC_MoveParent, ++/*119884*/ OPC_MoveChild, 27, ++/*119886*/ OPC_CheckInteger, 7, ++/*119888*/ OPC_CheckType, MVT::i32, ++/*119890*/ OPC_MoveParent, ++/*119891*/ OPC_MoveChild, 28, ++/*119893*/ OPC_CheckInteger, 7, ++/*119895*/ OPC_CheckType, MVT::i32, ++/*119897*/ OPC_MoveParent, ++/*119898*/ OPC_MoveChild, 29, ++/*119900*/ OPC_CheckInteger, 7, ++/*119902*/ OPC_CheckType, MVT::i32, ++/*119904*/ OPC_MoveParent, ++/*119905*/ OPC_MoveChild, 30, ++/*119907*/ OPC_CheckInteger, 7, ++/*119909*/ OPC_CheckType, MVT::i32, ++/*119911*/ OPC_MoveParent, ++/*119912*/ OPC_MoveChild, 31, ++/*119914*/ OPC_CheckInteger, 7, ++/*119916*/ OPC_CheckType, MVT::i32, ++/*119918*/ OPC_MoveParent, ++/*119919*/ OPC_CheckType, MVT::v32i8, ++/*119921*/ OPC_MoveParent, ++/*119922*/ OPC_MoveParent, ++/*119923*/ OPC_MoveParent, ++/*119924*/ OPC_MoveChild1, ++/*119925*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*119928*/ OPC_CheckChild0Integer, 1, ++/*119930*/ OPC_CheckChild0Type, MVT::i32, ++/*119932*/ OPC_CheckChild1Integer, 1, ++/*119934*/ OPC_CheckChild1Type, MVT::i32, ++/*119936*/ OPC_CheckChild2Integer, 1, ++/*119938*/ OPC_CheckChild2Type, MVT::i32, ++/*119940*/ OPC_CheckChild3Integer, 1, ++/*119942*/ OPC_CheckChild3Type, MVT::i32, ++/*119944*/ OPC_CheckChild4Integer, 1, ++/*119946*/ OPC_CheckChild4Type, MVT::i32, ++/*119948*/ OPC_MoveChild5, ++/*119949*/ OPC_CheckInteger, 1, ++/*119951*/ OPC_CheckType, MVT::i32, ++/*119953*/ OPC_MoveParent, ++/*119954*/ OPC_MoveChild6, ++/*119955*/ OPC_CheckInteger, 1, ++/*119957*/ OPC_CheckType, MVT::i32, ++/*119959*/ OPC_MoveParent, ++/*119960*/ OPC_MoveChild7, ++/*119961*/ OPC_CheckInteger, 1, ++/*119963*/ OPC_CheckType, MVT::i32, ++/*119965*/ OPC_MoveParent, ++/*119966*/ OPC_MoveChild, 8, ++/*119968*/ OPC_CheckInteger, 1, ++/*119970*/ OPC_CheckType, MVT::i32, ++/*119972*/ OPC_MoveParent, ++/*119973*/ OPC_MoveChild, 9, ++/*119975*/ OPC_CheckInteger, 1, ++/*119977*/ OPC_CheckType, MVT::i32, ++/*119979*/ OPC_MoveParent, ++/*119980*/ OPC_MoveChild, 10, ++/*119982*/ OPC_CheckInteger, 1, ++/*119984*/ OPC_CheckType, MVT::i32, ++/*119986*/ OPC_MoveParent, ++/*119987*/ OPC_MoveChild, 11, ++/*119989*/ OPC_CheckInteger, 1, ++/*119991*/ OPC_CheckType, MVT::i32, ++/*119993*/ OPC_MoveParent, ++/*119994*/ OPC_MoveChild, 12, ++/*119996*/ OPC_CheckInteger, 1, ++/*119998*/ OPC_CheckType, MVT::i32, ++/*120000*/ OPC_MoveParent, ++/*120001*/ OPC_MoveChild, 13, ++/*120003*/ OPC_CheckInteger, 1, ++/*120005*/ OPC_CheckType, MVT::i32, ++/*120007*/ OPC_MoveParent, ++/*120008*/ OPC_MoveChild, 14, ++/*120010*/ OPC_CheckInteger, 1, ++/*120012*/ OPC_CheckType, MVT::i32, ++/*120014*/ OPC_MoveParent, ++/*120015*/ OPC_MoveChild, 15, ++/*120017*/ OPC_CheckInteger, 1, ++/*120019*/ OPC_CheckType, MVT::i32, ++/*120021*/ OPC_MoveParent, ++/*120022*/ OPC_MoveChild, 16, ++/*120024*/ OPC_CheckInteger, 1, ++/*120026*/ OPC_CheckType, MVT::i32, ++/*120028*/ OPC_MoveParent, ++/*120029*/ OPC_MoveChild, 17, ++/*120031*/ OPC_CheckInteger, 1, ++/*120033*/ OPC_CheckType, MVT::i32, ++/*120035*/ OPC_MoveParent, ++/*120036*/ OPC_MoveChild, 18, ++/*120038*/ OPC_CheckInteger, 1, ++/*120040*/ OPC_CheckType, MVT::i32, ++/*120042*/ OPC_MoveParent, ++/*120043*/ OPC_MoveChild, 19, ++/*120045*/ OPC_CheckInteger, 1, ++/*120047*/ OPC_CheckType, MVT::i32, ++/*120049*/ OPC_MoveParent, ++/*120050*/ OPC_MoveChild, 20, ++/*120052*/ OPC_CheckInteger, 1, ++/*120054*/ OPC_CheckType, MVT::i32, ++/*120056*/ OPC_MoveParent, ++/*120057*/ OPC_MoveChild, 21, ++/*120059*/ OPC_CheckInteger, 1, ++/*120061*/ OPC_CheckType, MVT::i32, ++/*120063*/ OPC_MoveParent, ++/*120064*/ OPC_MoveChild, 22, ++/*120066*/ OPC_CheckInteger, 1, ++/*120068*/ OPC_CheckType, MVT::i32, ++/*120070*/ OPC_MoveParent, ++/*120071*/ OPC_MoveChild, 23, ++/*120073*/ OPC_CheckInteger, 1, ++/*120075*/ OPC_CheckType, MVT::i32, ++/*120077*/ OPC_MoveParent, ++/*120078*/ OPC_MoveChild, 24, ++/*120080*/ OPC_CheckInteger, 1, ++/*120082*/ OPC_CheckType, MVT::i32, ++/*120084*/ OPC_MoveParent, ++/*120085*/ OPC_MoveChild, 25, ++/*120087*/ OPC_CheckInteger, 1, ++/*120089*/ OPC_CheckType, MVT::i32, ++/*120091*/ OPC_MoveParent, ++/*120092*/ OPC_MoveChild, 26, ++/*120094*/ OPC_CheckInteger, 1, ++/*120096*/ OPC_CheckType, MVT::i32, ++/*120098*/ OPC_MoveParent, ++/*120099*/ OPC_MoveChild, 27, ++/*120101*/ OPC_CheckInteger, 1, ++/*120103*/ OPC_CheckType, MVT::i32, ++/*120105*/ OPC_MoveParent, ++/*120106*/ OPC_MoveChild, 28, ++/*120108*/ OPC_CheckInteger, 1, ++/*120110*/ OPC_CheckType, MVT::i32, ++/*120112*/ OPC_MoveParent, ++/*120113*/ OPC_MoveChild, 29, ++/*120115*/ OPC_CheckInteger, 1, ++/*120117*/ OPC_CheckType, MVT::i32, ++/*120119*/ OPC_MoveParent, ++/*120120*/ OPC_MoveChild, 30, ++/*120122*/ OPC_CheckInteger, 1, ++/*120124*/ OPC_CheckType, MVT::i32, ++/*120126*/ OPC_MoveParent, ++/*120127*/ OPC_MoveChild, 31, ++/*120129*/ OPC_CheckInteger, 1, ++/*120131*/ OPC_CheckType, MVT::i32, ++/*120133*/ OPC_MoveParent, ++/*120134*/ OPC_CheckType, MVT::v32i8, ++/*120136*/ OPC_MoveParent, ++/*120137*/ OPC_CheckType, MVT::v32i8, ++/*120139*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*120141*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*120149*/ /*Scope*/ 62|128,3/*446*/, /*->120597*/ ++/*120151*/ OPC_CheckChild0Same, 1, ++/*120153*/ OPC_CheckChild1Same, 0, ++/*120155*/ OPC_MoveParent, ++/*120156*/ OPC_MoveParent, ++/*120157*/ OPC_MoveChild1, ++/*120158*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*120161*/ OPC_CheckChild0Integer, 7, ++/*120163*/ OPC_CheckChild0Type, MVT::i32, ++/*120165*/ OPC_CheckChild1Integer, 7, ++/*120167*/ OPC_CheckChild1Type, MVT::i32, ++/*120169*/ OPC_CheckChild2Integer, 7, ++/*120171*/ OPC_CheckChild2Type, MVT::i32, ++/*120173*/ OPC_CheckChild3Integer, 7, ++/*120175*/ OPC_CheckChild3Type, MVT::i32, ++/*120177*/ OPC_CheckChild4Integer, 7, ++/*120179*/ OPC_CheckChild4Type, MVT::i32, ++/*120181*/ OPC_MoveChild5, ++/*120182*/ OPC_CheckInteger, 7, ++/*120184*/ OPC_CheckType, MVT::i32, ++/*120186*/ OPC_MoveParent, ++/*120187*/ OPC_MoveChild6, ++/*120188*/ OPC_CheckInteger, 7, ++/*120190*/ OPC_CheckType, MVT::i32, ++/*120192*/ OPC_MoveParent, ++/*120193*/ OPC_MoveChild7, ++/*120194*/ OPC_CheckInteger, 7, ++/*120196*/ OPC_CheckType, MVT::i32, ++/*120198*/ OPC_MoveParent, ++/*120199*/ OPC_MoveChild, 8, ++/*120201*/ OPC_CheckInteger, 7, ++/*120203*/ OPC_CheckType, MVT::i32, ++/*120205*/ OPC_MoveParent, ++/*120206*/ OPC_MoveChild, 9, ++/*120208*/ OPC_CheckInteger, 7, ++/*120210*/ OPC_CheckType, MVT::i32, ++/*120212*/ OPC_MoveParent, ++/*120213*/ OPC_MoveChild, 10, ++/*120215*/ OPC_CheckInteger, 7, ++/*120217*/ OPC_CheckType, MVT::i32, ++/*120219*/ OPC_MoveParent, ++/*120220*/ OPC_MoveChild, 11, ++/*120222*/ OPC_CheckInteger, 7, ++/*120224*/ OPC_CheckType, MVT::i32, ++/*120226*/ OPC_MoveParent, ++/*120227*/ OPC_MoveChild, 12, ++/*120229*/ OPC_CheckInteger, 7, ++/*120231*/ OPC_CheckType, MVT::i32, ++/*120233*/ OPC_MoveParent, ++/*120234*/ OPC_MoveChild, 13, ++/*120236*/ OPC_CheckInteger, 7, ++/*120238*/ OPC_CheckType, MVT::i32, ++/*120240*/ OPC_MoveParent, ++/*120241*/ OPC_MoveChild, 14, ++/*120243*/ OPC_CheckInteger, 7, ++/*120245*/ OPC_CheckType, MVT::i32, ++/*120247*/ OPC_MoveParent, ++/*120248*/ OPC_MoveChild, 15, ++/*120250*/ OPC_CheckInteger, 7, ++/*120252*/ OPC_CheckType, MVT::i32, ++/*120254*/ OPC_MoveParent, ++/*120255*/ OPC_MoveChild, 16, ++/*120257*/ OPC_CheckInteger, 7, ++/*120259*/ OPC_CheckType, MVT::i32, ++/*120261*/ OPC_MoveParent, ++/*120262*/ OPC_MoveChild, 17, ++/*120264*/ OPC_CheckInteger, 7, ++/*120266*/ OPC_CheckType, MVT::i32, ++/*120268*/ OPC_MoveParent, ++/*120269*/ OPC_MoveChild, 18, ++/*120271*/ OPC_CheckInteger, 7, ++/*120273*/ OPC_CheckType, MVT::i32, ++/*120275*/ OPC_MoveParent, ++/*120276*/ OPC_MoveChild, 19, ++/*120278*/ OPC_CheckInteger, 7, ++/*120280*/ OPC_CheckType, MVT::i32, ++/*120282*/ OPC_MoveParent, ++/*120283*/ OPC_MoveChild, 20, ++/*120285*/ OPC_CheckInteger, 7, ++/*120287*/ OPC_CheckType, MVT::i32, ++/*120289*/ OPC_MoveParent, ++/*120290*/ OPC_MoveChild, 21, ++/*120292*/ OPC_CheckInteger, 7, ++/*120294*/ OPC_CheckType, MVT::i32, ++/*120296*/ OPC_MoveParent, ++/*120297*/ OPC_MoveChild, 22, ++/*120299*/ OPC_CheckInteger, 7, ++/*120301*/ OPC_CheckType, MVT::i32, ++/*120303*/ OPC_MoveParent, ++/*120304*/ OPC_MoveChild, 23, ++/*120306*/ OPC_CheckInteger, 7, ++/*120308*/ OPC_CheckType, MVT::i32, ++/*120310*/ OPC_MoveParent, ++/*120311*/ OPC_MoveChild, 24, ++/*120313*/ OPC_CheckInteger, 7, ++/*120315*/ OPC_CheckType, MVT::i32, ++/*120317*/ OPC_MoveParent, ++/*120318*/ OPC_MoveChild, 25, ++/*120320*/ OPC_CheckInteger, 7, ++/*120322*/ OPC_CheckType, MVT::i32, ++/*120324*/ OPC_MoveParent, ++/*120325*/ OPC_MoveChild, 26, ++/*120327*/ OPC_CheckInteger, 7, ++/*120329*/ OPC_CheckType, MVT::i32, ++/*120331*/ OPC_MoveParent, ++/*120332*/ OPC_MoveChild, 27, ++/*120334*/ OPC_CheckInteger, 7, ++/*120336*/ OPC_CheckType, MVT::i32, ++/*120338*/ OPC_MoveParent, ++/*120339*/ OPC_MoveChild, 28, ++/*120341*/ OPC_CheckInteger, 7, ++/*120343*/ OPC_CheckType, MVT::i32, ++/*120345*/ OPC_MoveParent, ++/*120346*/ OPC_MoveChild, 29, ++/*120348*/ OPC_CheckInteger, 7, ++/*120350*/ OPC_CheckType, MVT::i32, ++/*120352*/ OPC_MoveParent, ++/*120353*/ OPC_MoveChild, 30, ++/*120355*/ OPC_CheckInteger, 7, ++/*120357*/ OPC_CheckType, MVT::i32, ++/*120359*/ OPC_MoveParent, ++/*120360*/ OPC_MoveChild, 31, ++/*120362*/ OPC_CheckInteger, 7, ++/*120364*/ OPC_CheckType, MVT::i32, ++/*120366*/ OPC_MoveParent, ++/*120367*/ OPC_CheckType, MVT::v32i8, ++/*120369*/ OPC_MoveParent, ++/*120370*/ OPC_MoveParent, ++/*120371*/ OPC_MoveParent, ++/*120372*/ OPC_MoveChild1, ++/*120373*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*120376*/ OPC_CheckChild0Integer, 1, ++/*120378*/ OPC_CheckChild0Type, MVT::i32, ++/*120380*/ OPC_CheckChild1Integer, 1, ++/*120382*/ OPC_CheckChild1Type, MVT::i32, ++/*120384*/ OPC_CheckChild2Integer, 1, ++/*120386*/ OPC_CheckChild2Type, MVT::i32, ++/*120388*/ OPC_CheckChild3Integer, 1, ++/*120390*/ OPC_CheckChild3Type, MVT::i32, ++/*120392*/ OPC_CheckChild4Integer, 1, ++/*120394*/ OPC_CheckChild4Type, MVT::i32, ++/*120396*/ OPC_MoveChild5, ++/*120397*/ OPC_CheckInteger, 1, ++/*120399*/ OPC_CheckType, MVT::i32, ++/*120401*/ OPC_MoveParent, ++/*120402*/ OPC_MoveChild6, ++/*120403*/ OPC_CheckInteger, 1, ++/*120405*/ OPC_CheckType, MVT::i32, ++/*120407*/ OPC_MoveParent, ++/*120408*/ OPC_MoveChild7, ++/*120409*/ OPC_CheckInteger, 1, ++/*120411*/ OPC_CheckType, MVT::i32, ++/*120413*/ OPC_MoveParent, ++/*120414*/ OPC_MoveChild, 8, ++/*120416*/ OPC_CheckInteger, 1, ++/*120418*/ OPC_CheckType, MVT::i32, ++/*120420*/ OPC_MoveParent, ++/*120421*/ OPC_MoveChild, 9, ++/*120423*/ OPC_CheckInteger, 1, ++/*120425*/ OPC_CheckType, MVT::i32, ++/*120427*/ OPC_MoveParent, ++/*120428*/ OPC_MoveChild, 10, ++/*120430*/ OPC_CheckInteger, 1, ++/*120432*/ OPC_CheckType, MVT::i32, ++/*120434*/ OPC_MoveParent, ++/*120435*/ OPC_MoveChild, 11, ++/*120437*/ OPC_CheckInteger, 1, ++/*120439*/ OPC_CheckType, MVT::i32, ++/*120441*/ OPC_MoveParent, ++/*120442*/ OPC_MoveChild, 12, ++/*120444*/ OPC_CheckInteger, 1, ++/*120446*/ OPC_CheckType, MVT::i32, ++/*120448*/ OPC_MoveParent, ++/*120449*/ OPC_MoveChild, 13, ++/*120451*/ OPC_CheckInteger, 1, ++/*120453*/ OPC_CheckType, MVT::i32, ++/*120455*/ OPC_MoveParent, ++/*120456*/ OPC_MoveChild, 14, ++/*120458*/ OPC_CheckInteger, 1, ++/*120460*/ OPC_CheckType, MVT::i32, ++/*120462*/ OPC_MoveParent, ++/*120463*/ OPC_MoveChild, 15, ++/*120465*/ OPC_CheckInteger, 1, ++/*120467*/ OPC_CheckType, MVT::i32, ++/*120469*/ OPC_MoveParent, ++/*120470*/ OPC_MoveChild, 16, ++/*120472*/ OPC_CheckInteger, 1, ++/*120474*/ OPC_CheckType, MVT::i32, ++/*120476*/ OPC_MoveParent, ++/*120477*/ OPC_MoveChild, 17, ++/*120479*/ OPC_CheckInteger, 1, ++/*120481*/ OPC_CheckType, MVT::i32, ++/*120483*/ OPC_MoveParent, ++/*120484*/ OPC_MoveChild, 18, ++/*120486*/ OPC_CheckInteger, 1, ++/*120488*/ OPC_CheckType, MVT::i32, ++/*120490*/ OPC_MoveParent, ++/*120491*/ OPC_MoveChild, 19, ++/*120493*/ OPC_CheckInteger, 1, ++/*120495*/ OPC_CheckType, MVT::i32, ++/*120497*/ OPC_MoveParent, ++/*120498*/ OPC_MoveChild, 20, ++/*120500*/ OPC_CheckInteger, 1, ++/*120502*/ OPC_CheckType, MVT::i32, ++/*120504*/ OPC_MoveParent, ++/*120505*/ OPC_MoveChild, 21, ++/*120507*/ OPC_CheckInteger, 1, ++/*120509*/ OPC_CheckType, MVT::i32, ++/*120511*/ OPC_MoveParent, ++/*120512*/ OPC_MoveChild, 22, ++/*120514*/ OPC_CheckInteger, 1, ++/*120516*/ OPC_CheckType, MVT::i32, ++/*120518*/ OPC_MoveParent, ++/*120519*/ OPC_MoveChild, 23, ++/*120521*/ OPC_CheckInteger, 1, ++/*120523*/ OPC_CheckType, MVT::i32, ++/*120525*/ OPC_MoveParent, ++/*120526*/ OPC_MoveChild, 24, ++/*120528*/ OPC_CheckInteger, 1, ++/*120530*/ OPC_CheckType, MVT::i32, ++/*120532*/ OPC_MoveParent, ++/*120533*/ OPC_MoveChild, 25, ++/*120535*/ OPC_CheckInteger, 1, ++/*120537*/ OPC_CheckType, MVT::i32, ++/*120539*/ OPC_MoveParent, ++/*120540*/ OPC_MoveChild, 26, ++/*120542*/ OPC_CheckInteger, 1, ++/*120544*/ OPC_CheckType, MVT::i32, ++/*120546*/ OPC_MoveParent, ++/*120547*/ OPC_MoveChild, 27, ++/*120549*/ OPC_CheckInteger, 1, ++/*120551*/ OPC_CheckType, MVT::i32, ++/*120553*/ OPC_MoveParent, ++/*120554*/ OPC_MoveChild, 28, ++/*120556*/ OPC_CheckInteger, 1, ++/*120558*/ OPC_CheckType, MVT::i32, ++/*120560*/ OPC_MoveParent, ++/*120561*/ OPC_MoveChild, 29, ++/*120563*/ OPC_CheckInteger, 1, ++/*120565*/ OPC_CheckType, MVT::i32, ++/*120567*/ OPC_MoveParent, ++/*120568*/ OPC_MoveChild, 30, ++/*120570*/ OPC_CheckInteger, 1, ++/*120572*/ OPC_CheckType, MVT::i32, ++/*120574*/ OPC_MoveParent, ++/*120575*/ OPC_MoveChild, 31, ++/*120577*/ OPC_CheckInteger, 1, ++/*120579*/ OPC_CheckType, MVT::i32, ++/*120581*/ OPC_MoveParent, ++/*120582*/ OPC_CheckType, MVT::v32i8, ++/*120584*/ OPC_MoveParent, ++/*120585*/ OPC_CheckType, MVT::v32i8, ++/*120587*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*120589*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*120597*/ 0, /*End of Scope*/ ++/*120598*/ /*SwitchOpcode*/ 116|128,30/*3956*/, TARGET_VAL(ISD::ADD),// ->124558 ++/*120602*/ OPC_Scope, 17|128,5/*657*/, /*->121262*/ // 6 children in Scope ++/*120605*/ OPC_MoveChild0, ++/*120606*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*120609*/ OPC_CheckChild0Integer, 1, ++/*120611*/ OPC_CheckChild0Type, MVT::i32, ++/*120613*/ OPC_CheckChild1Integer, 1, ++/*120615*/ OPC_CheckChild1Type, MVT::i32, ++/*120617*/ OPC_CheckChild2Integer, 1, ++/*120619*/ OPC_CheckChild2Type, MVT::i32, ++/*120621*/ OPC_CheckChild3Integer, 1, ++/*120623*/ OPC_CheckChild3Type, MVT::i32, ++/*120625*/ OPC_CheckChild4Integer, 1, ++/*120627*/ OPC_CheckChild4Type, MVT::i32, ++/*120629*/ OPC_MoveChild5, ++/*120630*/ OPC_CheckInteger, 1, ++/*120632*/ OPC_CheckType, MVT::i32, ++/*120634*/ OPC_MoveParent, ++/*120635*/ OPC_MoveChild6, ++/*120636*/ OPC_CheckInteger, 1, ++/*120638*/ OPC_CheckType, MVT::i32, ++/*120640*/ OPC_MoveParent, ++/*120641*/ OPC_MoveChild7, ++/*120642*/ OPC_CheckInteger, 1, ++/*120644*/ OPC_CheckType, MVT::i32, ++/*120646*/ OPC_MoveParent, ++/*120647*/ OPC_MoveChild, 8, ++/*120649*/ OPC_CheckInteger, 1, ++/*120651*/ OPC_CheckType, MVT::i32, ++/*120653*/ OPC_MoveParent, ++/*120654*/ OPC_MoveChild, 9, ++/*120656*/ OPC_CheckInteger, 1, ++/*120658*/ OPC_CheckType, MVT::i32, ++/*120660*/ OPC_MoveParent, ++/*120661*/ OPC_MoveChild, 10, ++/*120663*/ OPC_CheckInteger, 1, ++/*120665*/ OPC_CheckType, MVT::i32, ++/*120667*/ OPC_MoveParent, ++/*120668*/ OPC_MoveChild, 11, ++/*120670*/ OPC_CheckInteger, 1, ++/*120672*/ OPC_CheckType, MVT::i32, ++/*120674*/ OPC_MoveParent, ++/*120675*/ OPC_MoveChild, 12, ++/*120677*/ OPC_CheckInteger, 1, ++/*120679*/ OPC_CheckType, MVT::i32, ++/*120681*/ OPC_MoveParent, ++/*120682*/ OPC_MoveChild, 13, ++/*120684*/ OPC_CheckInteger, 1, ++/*120686*/ OPC_CheckType, MVT::i32, ++/*120688*/ OPC_MoveParent, ++/*120689*/ OPC_MoveChild, 14, ++/*120691*/ OPC_CheckInteger, 1, ++/*120693*/ OPC_CheckType, MVT::i32, ++/*120695*/ OPC_MoveParent, ++/*120696*/ OPC_MoveChild, 15, ++/*120698*/ OPC_CheckInteger, 1, ++/*120700*/ OPC_CheckType, MVT::i32, ++/*120702*/ OPC_MoveParent, ++/*120703*/ OPC_MoveChild, 16, ++/*120705*/ OPC_CheckInteger, 1, ++/*120707*/ OPC_CheckType, MVT::i32, ++/*120709*/ OPC_MoveParent, ++/*120710*/ OPC_MoveChild, 17, ++/*120712*/ OPC_CheckInteger, 1, ++/*120714*/ OPC_CheckType, MVT::i32, ++/*120716*/ OPC_MoveParent, ++/*120717*/ OPC_MoveChild, 18, ++/*120719*/ OPC_CheckInteger, 1, ++/*120721*/ OPC_CheckType, MVT::i32, ++/*120723*/ OPC_MoveParent, ++/*120724*/ OPC_MoveChild, 19, ++/*120726*/ OPC_CheckInteger, 1, ++/*120728*/ OPC_CheckType, MVT::i32, ++/*120730*/ OPC_MoveParent, ++/*120731*/ OPC_MoveChild, 20, ++/*120733*/ OPC_CheckInteger, 1, ++/*120735*/ OPC_CheckType, MVT::i32, ++/*120737*/ OPC_MoveParent, ++/*120738*/ OPC_MoveChild, 21, ++/*120740*/ OPC_CheckInteger, 1, ++/*120742*/ OPC_CheckType, MVT::i32, ++/*120744*/ OPC_MoveParent, ++/*120745*/ OPC_MoveChild, 22, ++/*120747*/ OPC_CheckInteger, 1, ++/*120749*/ OPC_CheckType, MVT::i32, ++/*120751*/ OPC_MoveParent, ++/*120752*/ OPC_MoveChild, 23, ++/*120754*/ OPC_CheckInteger, 1, ++/*120756*/ OPC_CheckType, MVT::i32, ++/*120758*/ OPC_MoveParent, ++/*120759*/ OPC_MoveChild, 24, ++/*120761*/ OPC_CheckInteger, 1, ++/*120763*/ OPC_CheckType, MVT::i32, ++/*120765*/ OPC_MoveParent, ++/*120766*/ OPC_MoveChild, 25, ++/*120768*/ OPC_CheckInteger, 1, ++/*120770*/ OPC_CheckType, MVT::i32, ++/*120772*/ OPC_MoveParent, ++/*120773*/ OPC_MoveChild, 26, ++/*120775*/ OPC_CheckInteger, 1, ++/*120777*/ OPC_CheckType, MVT::i32, ++/*120779*/ OPC_MoveParent, ++/*120780*/ OPC_MoveChild, 27, ++/*120782*/ OPC_CheckInteger, 1, ++/*120784*/ OPC_CheckType, MVT::i32, ++/*120786*/ OPC_MoveParent, ++/*120787*/ OPC_MoveChild, 28, ++/*120789*/ OPC_CheckInteger, 1, ++/*120791*/ OPC_CheckType, MVT::i32, ++/*120793*/ OPC_MoveParent, ++/*120794*/ OPC_MoveChild, 29, ++/*120796*/ OPC_CheckInteger, 1, ++/*120798*/ OPC_CheckType, MVT::i32, ++/*120800*/ OPC_MoveParent, ++/*120801*/ OPC_MoveChild, 30, ++/*120803*/ OPC_CheckInteger, 1, ++/*120805*/ OPC_CheckType, MVT::i32, ++/*120807*/ OPC_MoveParent, ++/*120808*/ OPC_MoveChild, 31, ++/*120810*/ OPC_CheckInteger, 1, ++/*120812*/ OPC_CheckType, MVT::i32, ++/*120814*/ OPC_MoveParent, ++/*120815*/ OPC_MoveParent, ++/*120816*/ OPC_CheckChild1Same, 1, ++/*120818*/ OPC_MoveParent, ++/*120819*/ OPC_CheckChild1Same, 0, ++/*120821*/ OPC_MoveParent, ++/*120822*/ OPC_MoveChild1, ++/*120823*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*120826*/ OPC_CheckChild0Integer, 7, ++/*120828*/ OPC_CheckChild0Type, MVT::i32, ++/*120830*/ OPC_CheckChild1Integer, 7, ++/*120832*/ OPC_CheckChild1Type, MVT::i32, ++/*120834*/ OPC_CheckChild2Integer, 7, ++/*120836*/ OPC_CheckChild2Type, MVT::i32, ++/*120838*/ OPC_CheckChild3Integer, 7, ++/*120840*/ OPC_CheckChild3Type, MVT::i32, ++/*120842*/ OPC_CheckChild4Integer, 7, ++/*120844*/ OPC_CheckChild4Type, MVT::i32, ++/*120846*/ OPC_MoveChild5, ++/*120847*/ OPC_CheckInteger, 7, ++/*120849*/ OPC_CheckType, MVT::i32, ++/*120851*/ OPC_MoveParent, ++/*120852*/ OPC_MoveChild6, ++/*120853*/ OPC_CheckInteger, 7, ++/*120855*/ OPC_CheckType, MVT::i32, ++/*120857*/ OPC_MoveParent, ++/*120858*/ OPC_MoveChild7, ++/*120859*/ OPC_CheckInteger, 7, ++/*120861*/ OPC_CheckType, MVT::i32, ++/*120863*/ OPC_MoveParent, ++/*120864*/ OPC_MoveChild, 8, ++/*120866*/ OPC_CheckInteger, 7, ++/*120868*/ OPC_CheckType, MVT::i32, ++/*120870*/ OPC_MoveParent, ++/*120871*/ OPC_MoveChild, 9, ++/*120873*/ OPC_CheckInteger, 7, ++/*120875*/ OPC_CheckType, MVT::i32, ++/*120877*/ OPC_MoveParent, ++/*120878*/ OPC_MoveChild, 10, ++/*120880*/ OPC_CheckInteger, 7, ++/*120882*/ OPC_CheckType, MVT::i32, ++/*120884*/ OPC_MoveParent, ++/*120885*/ OPC_MoveChild, 11, ++/*120887*/ OPC_CheckInteger, 7, ++/*120889*/ OPC_CheckType, MVT::i32, ++/*120891*/ OPC_MoveParent, ++/*120892*/ OPC_MoveChild, 12, ++/*120894*/ OPC_CheckInteger, 7, ++/*120896*/ OPC_CheckType, MVT::i32, ++/*120898*/ OPC_MoveParent, ++/*120899*/ OPC_MoveChild, 13, ++/*120901*/ OPC_CheckInteger, 7, ++/*120903*/ OPC_CheckType, MVT::i32, ++/*120905*/ OPC_MoveParent, ++/*120906*/ OPC_MoveChild, 14, ++/*120908*/ OPC_CheckInteger, 7, ++/*120910*/ OPC_CheckType, MVT::i32, ++/*120912*/ OPC_MoveParent, ++/*120913*/ OPC_MoveChild, 15, ++/*120915*/ OPC_CheckInteger, 7, ++/*120917*/ OPC_CheckType, MVT::i32, ++/*120919*/ OPC_MoveParent, ++/*120920*/ OPC_MoveChild, 16, ++/*120922*/ OPC_CheckInteger, 7, ++/*120924*/ OPC_CheckType, MVT::i32, ++/*120926*/ OPC_MoveParent, ++/*120927*/ OPC_MoveChild, 17, ++/*120929*/ OPC_CheckInteger, 7, ++/*120931*/ OPC_CheckType, MVT::i32, ++/*120933*/ OPC_MoveParent, ++/*120934*/ OPC_MoveChild, 18, ++/*120936*/ OPC_CheckInteger, 7, ++/*120938*/ OPC_CheckType, MVT::i32, ++/*120940*/ OPC_MoveParent, ++/*120941*/ OPC_MoveChild, 19, ++/*120943*/ OPC_CheckInteger, 7, ++/*120945*/ OPC_CheckType, MVT::i32, ++/*120947*/ OPC_MoveParent, ++/*120948*/ OPC_MoveChild, 20, ++/*120950*/ OPC_CheckInteger, 7, ++/*120952*/ OPC_CheckType, MVT::i32, ++/*120954*/ OPC_MoveParent, ++/*120955*/ OPC_MoveChild, 21, ++/*120957*/ OPC_CheckInteger, 7, ++/*120959*/ OPC_CheckType, MVT::i32, ++/*120961*/ OPC_MoveParent, ++/*120962*/ OPC_MoveChild, 22, ++/*120964*/ OPC_CheckInteger, 7, ++/*120966*/ OPC_CheckType, MVT::i32, ++/*120968*/ OPC_MoveParent, ++/*120969*/ OPC_MoveChild, 23, ++/*120971*/ OPC_CheckInteger, 7, ++/*120973*/ OPC_CheckType, MVT::i32, ++/*120975*/ OPC_MoveParent, ++/*120976*/ OPC_MoveChild, 24, ++/*120978*/ OPC_CheckInteger, 7, ++/*120980*/ OPC_CheckType, MVT::i32, ++/*120982*/ OPC_MoveParent, ++/*120983*/ OPC_MoveChild, 25, ++/*120985*/ OPC_CheckInteger, 7, ++/*120987*/ OPC_CheckType, MVT::i32, ++/*120989*/ OPC_MoveParent, ++/*120990*/ OPC_MoveChild, 26, ++/*120992*/ OPC_CheckInteger, 7, ++/*120994*/ OPC_CheckType, MVT::i32, ++/*120996*/ OPC_MoveParent, ++/*120997*/ OPC_MoveChild, 27, ++/*120999*/ OPC_CheckInteger, 7, ++/*121001*/ OPC_CheckType, MVT::i32, ++/*121003*/ OPC_MoveParent, ++/*121004*/ OPC_MoveChild, 28, ++/*121006*/ OPC_CheckInteger, 7, ++/*121008*/ OPC_CheckType, MVT::i32, ++/*121010*/ OPC_MoveParent, ++/*121011*/ OPC_MoveChild, 29, ++/*121013*/ OPC_CheckInteger, 7, ++/*121015*/ OPC_CheckType, MVT::i32, ++/*121017*/ OPC_MoveParent, ++/*121018*/ OPC_MoveChild, 30, ++/*121020*/ OPC_CheckInteger, 7, ++/*121022*/ OPC_CheckType, MVT::i32, ++/*121024*/ OPC_MoveParent, ++/*121025*/ OPC_MoveChild, 31, ++/*121027*/ OPC_CheckInteger, 7, ++/*121029*/ OPC_CheckType, MVT::i32, ++/*121031*/ OPC_MoveParent, ++/*121032*/ OPC_CheckType, MVT::v32i8, ++/*121034*/ OPC_MoveParent, ++/*121035*/ OPC_MoveParent, ++/*121036*/ OPC_MoveParent, ++/*121037*/ OPC_MoveChild1, ++/*121038*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*121041*/ OPC_CheckChild0Integer, 1, ++/*121043*/ OPC_CheckChild0Type, MVT::i32, ++/*121045*/ OPC_CheckChild1Integer, 1, ++/*121047*/ OPC_CheckChild1Type, MVT::i32, ++/*121049*/ OPC_CheckChild2Integer, 1, ++/*121051*/ OPC_CheckChild2Type, MVT::i32, ++/*121053*/ OPC_CheckChild3Integer, 1, ++/*121055*/ OPC_CheckChild3Type, MVT::i32, ++/*121057*/ OPC_CheckChild4Integer, 1, ++/*121059*/ OPC_CheckChild4Type, MVT::i32, ++/*121061*/ OPC_MoveChild5, ++/*121062*/ OPC_CheckInteger, 1, ++/*121064*/ OPC_CheckType, MVT::i32, ++/*121066*/ OPC_MoveParent, ++/*121067*/ OPC_MoveChild6, ++/*121068*/ OPC_CheckInteger, 1, ++/*121070*/ OPC_CheckType, MVT::i32, ++/*121072*/ OPC_MoveParent, ++/*121073*/ OPC_MoveChild7, ++/*121074*/ OPC_CheckInteger, 1, ++/*121076*/ OPC_CheckType, MVT::i32, ++/*121078*/ OPC_MoveParent, ++/*121079*/ OPC_MoveChild, 8, ++/*121081*/ OPC_CheckInteger, 1, ++/*121083*/ OPC_CheckType, MVT::i32, ++/*121085*/ OPC_MoveParent, ++/*121086*/ OPC_MoveChild, 9, ++/*121088*/ OPC_CheckInteger, 1, ++/*121090*/ OPC_CheckType, MVT::i32, ++/*121092*/ OPC_MoveParent, ++/*121093*/ OPC_MoveChild, 10, ++/*121095*/ OPC_CheckInteger, 1, ++/*121097*/ OPC_CheckType, MVT::i32, ++/*121099*/ OPC_MoveParent, ++/*121100*/ OPC_MoveChild, 11, ++/*121102*/ OPC_CheckInteger, 1, ++/*121104*/ OPC_CheckType, MVT::i32, ++/*121106*/ OPC_MoveParent, ++/*121107*/ OPC_MoveChild, 12, ++/*121109*/ OPC_CheckInteger, 1, ++/*121111*/ OPC_CheckType, MVT::i32, ++/*121113*/ OPC_MoveParent, ++/*121114*/ OPC_MoveChild, 13, ++/*121116*/ OPC_CheckInteger, 1, ++/*121118*/ OPC_CheckType, MVT::i32, ++/*121120*/ OPC_MoveParent, ++/*121121*/ OPC_MoveChild, 14, ++/*121123*/ OPC_CheckInteger, 1, ++/*121125*/ OPC_CheckType, MVT::i32, ++/*121127*/ OPC_MoveParent, ++/*121128*/ OPC_MoveChild, 15, ++/*121130*/ OPC_CheckInteger, 1, ++/*121132*/ OPC_CheckType, MVT::i32, ++/*121134*/ OPC_MoveParent, ++/*121135*/ OPC_MoveChild, 16, ++/*121137*/ OPC_CheckInteger, 1, ++/*121139*/ OPC_CheckType, MVT::i32, ++/*121141*/ OPC_MoveParent, ++/*121142*/ OPC_MoveChild, 17, ++/*121144*/ OPC_CheckInteger, 1, ++/*121146*/ OPC_CheckType, MVT::i32, ++/*121148*/ OPC_MoveParent, ++/*121149*/ OPC_MoveChild, 18, ++/*121151*/ OPC_CheckInteger, 1, ++/*121153*/ OPC_CheckType, MVT::i32, ++/*121155*/ OPC_MoveParent, ++/*121156*/ OPC_MoveChild, 19, ++/*121158*/ OPC_CheckInteger, 1, ++/*121160*/ OPC_CheckType, MVT::i32, ++/*121162*/ OPC_MoveParent, ++/*121163*/ OPC_MoveChild, 20, ++/*121165*/ OPC_CheckInteger, 1, ++/*121167*/ OPC_CheckType, MVT::i32, ++/*121169*/ OPC_MoveParent, ++/*121170*/ OPC_MoveChild, 21, ++/*121172*/ OPC_CheckInteger, 1, ++/*121174*/ OPC_CheckType, MVT::i32, ++/*121176*/ OPC_MoveParent, ++/*121177*/ OPC_MoveChild, 22, ++/*121179*/ OPC_CheckInteger, 1, ++/*121181*/ OPC_CheckType, MVT::i32, ++/*121183*/ OPC_MoveParent, ++/*121184*/ OPC_MoveChild, 23, ++/*121186*/ OPC_CheckInteger, 1, ++/*121188*/ OPC_CheckType, MVT::i32, ++/*121190*/ OPC_MoveParent, ++/*121191*/ OPC_MoveChild, 24, ++/*121193*/ OPC_CheckInteger, 1, ++/*121195*/ OPC_CheckType, MVT::i32, ++/*121197*/ OPC_MoveParent, ++/*121198*/ OPC_MoveChild, 25, ++/*121200*/ OPC_CheckInteger, 1, ++/*121202*/ OPC_CheckType, MVT::i32, ++/*121204*/ OPC_MoveParent, ++/*121205*/ OPC_MoveChild, 26, ++/*121207*/ OPC_CheckInteger, 1, ++/*121209*/ OPC_CheckType, MVT::i32, ++/*121211*/ OPC_MoveParent, ++/*121212*/ OPC_MoveChild, 27, ++/*121214*/ OPC_CheckInteger, 1, ++/*121216*/ OPC_CheckType, MVT::i32, ++/*121218*/ OPC_MoveParent, ++/*121219*/ OPC_MoveChild, 28, ++/*121221*/ OPC_CheckInteger, 1, ++/*121223*/ OPC_CheckType, MVT::i32, ++/*121225*/ OPC_MoveParent, ++/*121226*/ OPC_MoveChild, 29, ++/*121228*/ OPC_CheckInteger, 1, ++/*121230*/ OPC_CheckType, MVT::i32, ++/*121232*/ OPC_MoveParent, ++/*121233*/ OPC_MoveChild, 30, ++/*121235*/ OPC_CheckInteger, 1, ++/*121237*/ OPC_CheckType, MVT::i32, ++/*121239*/ OPC_MoveParent, ++/*121240*/ OPC_MoveChild, 31, ++/*121242*/ OPC_CheckInteger, 1, ++/*121244*/ OPC_CheckType, MVT::i32, ++/*121246*/ OPC_MoveParent, ++/*121247*/ OPC_CheckType, MVT::v32i8, ++/*121249*/ OPC_MoveParent, ++/*121250*/ OPC_CheckType, MVT::v32i8, ++/*121252*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*121254*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a), LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*121262*/ /*Scope*/ 17|128,5/*657*/, /*->121921*/ ++/*121264*/ OPC_CheckChild0Same, 1, ++/*121266*/ OPC_MoveChild1, ++/*121267*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*121270*/ OPC_CheckChild0Integer, 1, ++/*121272*/ OPC_CheckChild0Type, MVT::i32, ++/*121274*/ OPC_CheckChild1Integer, 1, ++/*121276*/ OPC_CheckChild1Type, MVT::i32, ++/*121278*/ OPC_CheckChild2Integer, 1, ++/*121280*/ OPC_CheckChild2Type, MVT::i32, ++/*121282*/ OPC_CheckChild3Integer, 1, ++/*121284*/ OPC_CheckChild3Type, MVT::i32, ++/*121286*/ OPC_CheckChild4Integer, 1, ++/*121288*/ OPC_CheckChild4Type, MVT::i32, ++/*121290*/ OPC_MoveChild5, ++/*121291*/ OPC_CheckInteger, 1, ++/*121293*/ OPC_CheckType, MVT::i32, ++/*121295*/ OPC_MoveParent, ++/*121296*/ OPC_MoveChild6, ++/*121297*/ OPC_CheckInteger, 1, ++/*121299*/ OPC_CheckType, MVT::i32, ++/*121301*/ OPC_MoveParent, ++/*121302*/ OPC_MoveChild7, ++/*121303*/ OPC_CheckInteger, 1, ++/*121305*/ OPC_CheckType, MVT::i32, ++/*121307*/ OPC_MoveParent, ++/*121308*/ OPC_MoveChild, 8, ++/*121310*/ OPC_CheckInteger, 1, ++/*121312*/ OPC_CheckType, MVT::i32, ++/*121314*/ OPC_MoveParent, ++/*121315*/ OPC_MoveChild, 9, ++/*121317*/ OPC_CheckInteger, 1, ++/*121319*/ OPC_CheckType, MVT::i32, ++/*121321*/ OPC_MoveParent, ++/*121322*/ OPC_MoveChild, 10, ++/*121324*/ OPC_CheckInteger, 1, ++/*121326*/ OPC_CheckType, MVT::i32, ++/*121328*/ OPC_MoveParent, ++/*121329*/ OPC_MoveChild, 11, ++/*121331*/ OPC_CheckInteger, 1, ++/*121333*/ OPC_CheckType, MVT::i32, ++/*121335*/ OPC_MoveParent, ++/*121336*/ OPC_MoveChild, 12, ++/*121338*/ OPC_CheckInteger, 1, ++/*121340*/ OPC_CheckType, MVT::i32, ++/*121342*/ OPC_MoveParent, ++/*121343*/ OPC_MoveChild, 13, ++/*121345*/ OPC_CheckInteger, 1, ++/*121347*/ OPC_CheckType, MVT::i32, ++/*121349*/ OPC_MoveParent, ++/*121350*/ OPC_MoveChild, 14, ++/*121352*/ OPC_CheckInteger, 1, ++/*121354*/ OPC_CheckType, MVT::i32, ++/*121356*/ OPC_MoveParent, ++/*121357*/ OPC_MoveChild, 15, ++/*121359*/ OPC_CheckInteger, 1, ++/*121361*/ OPC_CheckType, MVT::i32, ++/*121363*/ OPC_MoveParent, ++/*121364*/ OPC_MoveChild, 16, ++/*121366*/ OPC_CheckInteger, 1, ++/*121368*/ OPC_CheckType, MVT::i32, ++/*121370*/ OPC_MoveParent, ++/*121371*/ OPC_MoveChild, 17, ++/*121373*/ OPC_CheckInteger, 1, ++/*121375*/ OPC_CheckType, MVT::i32, ++/*121377*/ OPC_MoveParent, ++/*121378*/ OPC_MoveChild, 18, ++/*121380*/ OPC_CheckInteger, 1, ++/*121382*/ OPC_CheckType, MVT::i32, ++/*121384*/ OPC_MoveParent, ++/*121385*/ OPC_MoveChild, 19, ++/*121387*/ OPC_CheckInteger, 1, ++/*121389*/ OPC_CheckType, MVT::i32, ++/*121391*/ OPC_MoveParent, ++/*121392*/ OPC_MoveChild, 20, ++/*121394*/ OPC_CheckInteger, 1, ++/*121396*/ OPC_CheckType, MVT::i32, ++/*121398*/ OPC_MoveParent, ++/*121399*/ OPC_MoveChild, 21, ++/*121401*/ OPC_CheckInteger, 1, ++/*121403*/ OPC_CheckType, MVT::i32, ++/*121405*/ OPC_MoveParent, ++/*121406*/ OPC_MoveChild, 22, ++/*121408*/ OPC_CheckInteger, 1, ++/*121410*/ OPC_CheckType, MVT::i32, ++/*121412*/ OPC_MoveParent, ++/*121413*/ OPC_MoveChild, 23, ++/*121415*/ OPC_CheckInteger, 1, ++/*121417*/ OPC_CheckType, MVT::i32, ++/*121419*/ OPC_MoveParent, ++/*121420*/ OPC_MoveChild, 24, ++/*121422*/ OPC_CheckInteger, 1, ++/*121424*/ OPC_CheckType, MVT::i32, ++/*121426*/ OPC_MoveParent, ++/*121427*/ OPC_MoveChild, 25, ++/*121429*/ OPC_CheckInteger, 1, ++/*121431*/ OPC_CheckType, MVT::i32, ++/*121433*/ OPC_MoveParent, ++/*121434*/ OPC_MoveChild, 26, ++/*121436*/ OPC_CheckInteger, 1, ++/*121438*/ OPC_CheckType, MVT::i32, ++/*121440*/ OPC_MoveParent, ++/*121441*/ OPC_MoveChild, 27, ++/*121443*/ OPC_CheckInteger, 1, ++/*121445*/ OPC_CheckType, MVT::i32, ++/*121447*/ OPC_MoveParent, ++/*121448*/ OPC_MoveChild, 28, ++/*121450*/ OPC_CheckInteger, 1, ++/*121452*/ OPC_CheckType, MVT::i32, ++/*121454*/ OPC_MoveParent, ++/*121455*/ OPC_MoveChild, 29, ++/*121457*/ OPC_CheckInteger, 1, ++/*121459*/ OPC_CheckType, MVT::i32, ++/*121461*/ OPC_MoveParent, ++/*121462*/ OPC_MoveChild, 30, ++/*121464*/ OPC_CheckInteger, 1, ++/*121466*/ OPC_CheckType, MVT::i32, ++/*121468*/ OPC_MoveParent, ++/*121469*/ OPC_MoveChild, 31, ++/*121471*/ OPC_CheckInteger, 1, ++/*121473*/ OPC_CheckType, MVT::i32, ++/*121475*/ OPC_MoveParent, ++/*121476*/ OPC_MoveParent, ++/*121477*/ OPC_MoveParent, ++/*121478*/ OPC_CheckChild1Same, 0, ++/*121480*/ OPC_MoveParent, ++/*121481*/ OPC_MoveChild1, ++/*121482*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*121485*/ OPC_CheckChild0Integer, 7, ++/*121487*/ OPC_CheckChild0Type, MVT::i32, ++/*121489*/ OPC_CheckChild1Integer, 7, ++/*121491*/ OPC_CheckChild1Type, MVT::i32, ++/*121493*/ OPC_CheckChild2Integer, 7, ++/*121495*/ OPC_CheckChild2Type, MVT::i32, ++/*121497*/ OPC_CheckChild3Integer, 7, ++/*121499*/ OPC_CheckChild3Type, MVT::i32, ++/*121501*/ OPC_CheckChild4Integer, 7, ++/*121503*/ OPC_CheckChild4Type, MVT::i32, ++/*121505*/ OPC_MoveChild5, ++/*121506*/ OPC_CheckInteger, 7, ++/*121508*/ OPC_CheckType, MVT::i32, ++/*121510*/ OPC_MoveParent, ++/*121511*/ OPC_MoveChild6, ++/*121512*/ OPC_CheckInteger, 7, ++/*121514*/ OPC_CheckType, MVT::i32, ++/*121516*/ OPC_MoveParent, ++/*121517*/ OPC_MoveChild7, ++/*121518*/ OPC_CheckInteger, 7, ++/*121520*/ OPC_CheckType, MVT::i32, ++/*121522*/ OPC_MoveParent, ++/*121523*/ OPC_MoveChild, 8, ++/*121525*/ OPC_CheckInteger, 7, ++/*121527*/ OPC_CheckType, MVT::i32, ++/*121529*/ OPC_MoveParent, ++/*121530*/ OPC_MoveChild, 9, ++/*121532*/ OPC_CheckInteger, 7, ++/*121534*/ OPC_CheckType, MVT::i32, ++/*121536*/ OPC_MoveParent, ++/*121537*/ OPC_MoveChild, 10, ++/*121539*/ OPC_CheckInteger, 7, ++/*121541*/ OPC_CheckType, MVT::i32, ++/*121543*/ OPC_MoveParent, ++/*121544*/ OPC_MoveChild, 11, ++/*121546*/ OPC_CheckInteger, 7, ++/*121548*/ OPC_CheckType, MVT::i32, ++/*121550*/ OPC_MoveParent, ++/*121551*/ OPC_MoveChild, 12, ++/*121553*/ OPC_CheckInteger, 7, ++/*121555*/ OPC_CheckType, MVT::i32, ++/*121557*/ OPC_MoveParent, ++/*121558*/ OPC_MoveChild, 13, ++/*121560*/ OPC_CheckInteger, 7, ++/*121562*/ OPC_CheckType, MVT::i32, ++/*121564*/ OPC_MoveParent, ++/*121565*/ OPC_MoveChild, 14, ++/*121567*/ OPC_CheckInteger, 7, ++/*121569*/ OPC_CheckType, MVT::i32, ++/*121571*/ OPC_MoveParent, ++/*121572*/ OPC_MoveChild, 15, ++/*121574*/ OPC_CheckInteger, 7, ++/*121576*/ OPC_CheckType, MVT::i32, ++/*121578*/ OPC_MoveParent, ++/*121579*/ OPC_MoveChild, 16, ++/*121581*/ OPC_CheckInteger, 7, ++/*121583*/ OPC_CheckType, MVT::i32, ++/*121585*/ OPC_MoveParent, ++/*121586*/ OPC_MoveChild, 17, ++/*121588*/ OPC_CheckInteger, 7, ++/*121590*/ OPC_CheckType, MVT::i32, ++/*121592*/ OPC_MoveParent, ++/*121593*/ OPC_MoveChild, 18, ++/*121595*/ OPC_CheckInteger, 7, ++/*121597*/ OPC_CheckType, MVT::i32, ++/*121599*/ OPC_MoveParent, ++/*121600*/ OPC_MoveChild, 19, ++/*121602*/ OPC_CheckInteger, 7, ++/*121604*/ OPC_CheckType, MVT::i32, ++/*121606*/ OPC_MoveParent, ++/*121607*/ OPC_MoveChild, 20, ++/*121609*/ OPC_CheckInteger, 7, ++/*121611*/ OPC_CheckType, MVT::i32, ++/*121613*/ OPC_MoveParent, ++/*121614*/ OPC_MoveChild, 21, ++/*121616*/ OPC_CheckInteger, 7, ++/*121618*/ OPC_CheckType, MVT::i32, ++/*121620*/ OPC_MoveParent, ++/*121621*/ OPC_MoveChild, 22, ++/*121623*/ OPC_CheckInteger, 7, ++/*121625*/ OPC_CheckType, MVT::i32, ++/*121627*/ OPC_MoveParent, ++/*121628*/ OPC_MoveChild, 23, ++/*121630*/ OPC_CheckInteger, 7, ++/*121632*/ OPC_CheckType, MVT::i32, ++/*121634*/ OPC_MoveParent, ++/*121635*/ OPC_MoveChild, 24, ++/*121637*/ OPC_CheckInteger, 7, ++/*121639*/ OPC_CheckType, MVT::i32, ++/*121641*/ OPC_MoveParent, ++/*121642*/ OPC_MoveChild, 25, ++/*121644*/ OPC_CheckInteger, 7, ++/*121646*/ OPC_CheckType, MVT::i32, ++/*121648*/ OPC_MoveParent, ++/*121649*/ OPC_MoveChild, 26, ++/*121651*/ OPC_CheckInteger, 7, ++/*121653*/ OPC_CheckType, MVT::i32, ++/*121655*/ OPC_MoveParent, ++/*121656*/ OPC_MoveChild, 27, ++/*121658*/ OPC_CheckInteger, 7, ++/*121660*/ OPC_CheckType, MVT::i32, ++/*121662*/ OPC_MoveParent, ++/*121663*/ OPC_MoveChild, 28, ++/*121665*/ OPC_CheckInteger, 7, ++/*121667*/ OPC_CheckType, MVT::i32, ++/*121669*/ OPC_MoveParent, ++/*121670*/ OPC_MoveChild, 29, ++/*121672*/ OPC_CheckInteger, 7, ++/*121674*/ OPC_CheckType, MVT::i32, ++/*121676*/ OPC_MoveParent, ++/*121677*/ OPC_MoveChild, 30, ++/*121679*/ OPC_CheckInteger, 7, ++/*121681*/ OPC_CheckType, MVT::i32, ++/*121683*/ OPC_MoveParent, ++/*121684*/ OPC_MoveChild, 31, ++/*121686*/ OPC_CheckInteger, 7, ++/*121688*/ OPC_CheckType, MVT::i32, ++/*121690*/ OPC_MoveParent, ++/*121691*/ OPC_CheckType, MVT::v32i8, ++/*121693*/ OPC_MoveParent, ++/*121694*/ OPC_MoveParent, ++/*121695*/ OPC_MoveParent, ++/*121696*/ OPC_MoveChild1, ++/*121697*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*121700*/ OPC_CheckChild0Integer, 1, ++/*121702*/ OPC_CheckChild0Type, MVT::i32, ++/*121704*/ OPC_CheckChild1Integer, 1, ++/*121706*/ OPC_CheckChild1Type, MVT::i32, ++/*121708*/ OPC_CheckChild2Integer, 1, ++/*121710*/ OPC_CheckChild2Type, MVT::i32, ++/*121712*/ OPC_CheckChild3Integer, 1, ++/*121714*/ OPC_CheckChild3Type, MVT::i32, ++/*121716*/ OPC_CheckChild4Integer, 1, ++/*121718*/ OPC_CheckChild4Type, MVT::i32, ++/*121720*/ OPC_MoveChild5, ++/*121721*/ OPC_CheckInteger, 1, ++/*121723*/ OPC_CheckType, MVT::i32, ++/*121725*/ OPC_MoveParent, ++/*121726*/ OPC_MoveChild6, ++/*121727*/ OPC_CheckInteger, 1, ++/*121729*/ OPC_CheckType, MVT::i32, ++/*121731*/ OPC_MoveParent, ++/*121732*/ OPC_MoveChild7, ++/*121733*/ OPC_CheckInteger, 1, ++/*121735*/ OPC_CheckType, MVT::i32, ++/*121737*/ OPC_MoveParent, ++/*121738*/ OPC_MoveChild, 8, ++/*121740*/ OPC_CheckInteger, 1, ++/*121742*/ OPC_CheckType, MVT::i32, ++/*121744*/ OPC_MoveParent, ++/*121745*/ OPC_MoveChild, 9, ++/*121747*/ OPC_CheckInteger, 1, ++/*121749*/ OPC_CheckType, MVT::i32, ++/*121751*/ OPC_MoveParent, ++/*121752*/ OPC_MoveChild, 10, ++/*121754*/ OPC_CheckInteger, 1, ++/*121756*/ OPC_CheckType, MVT::i32, ++/*121758*/ OPC_MoveParent, ++/*121759*/ OPC_MoveChild, 11, ++/*121761*/ OPC_CheckInteger, 1, ++/*121763*/ OPC_CheckType, MVT::i32, ++/*121765*/ OPC_MoveParent, ++/*121766*/ OPC_MoveChild, 12, ++/*121768*/ OPC_CheckInteger, 1, ++/*121770*/ OPC_CheckType, MVT::i32, ++/*121772*/ OPC_MoveParent, ++/*121773*/ OPC_MoveChild, 13, ++/*121775*/ OPC_CheckInteger, 1, ++/*121777*/ OPC_CheckType, MVT::i32, ++/*121779*/ OPC_MoveParent, ++/*121780*/ OPC_MoveChild, 14, ++/*121782*/ OPC_CheckInteger, 1, ++/*121784*/ OPC_CheckType, MVT::i32, ++/*121786*/ OPC_MoveParent, ++/*121787*/ OPC_MoveChild, 15, ++/*121789*/ OPC_CheckInteger, 1, ++/*121791*/ OPC_CheckType, MVT::i32, ++/*121793*/ OPC_MoveParent, ++/*121794*/ OPC_MoveChild, 16, ++/*121796*/ OPC_CheckInteger, 1, ++/*121798*/ OPC_CheckType, MVT::i32, ++/*121800*/ OPC_MoveParent, ++/*121801*/ OPC_MoveChild, 17, ++/*121803*/ OPC_CheckInteger, 1, ++/*121805*/ OPC_CheckType, MVT::i32, ++/*121807*/ OPC_MoveParent, ++/*121808*/ OPC_MoveChild, 18, ++/*121810*/ OPC_CheckInteger, 1, ++/*121812*/ OPC_CheckType, MVT::i32, ++/*121814*/ OPC_MoveParent, ++/*121815*/ OPC_MoveChild, 19, ++/*121817*/ OPC_CheckInteger, 1, ++/*121819*/ OPC_CheckType, MVT::i32, ++/*121821*/ OPC_MoveParent, ++/*121822*/ OPC_MoveChild, 20, ++/*121824*/ OPC_CheckInteger, 1, ++/*121826*/ OPC_CheckType, MVT::i32, ++/*121828*/ OPC_MoveParent, ++/*121829*/ OPC_MoveChild, 21, ++/*121831*/ OPC_CheckInteger, 1, ++/*121833*/ OPC_CheckType, MVT::i32, ++/*121835*/ OPC_MoveParent, ++/*121836*/ OPC_MoveChild, 22, ++/*121838*/ OPC_CheckInteger, 1, ++/*121840*/ OPC_CheckType, MVT::i32, ++/*121842*/ OPC_MoveParent, ++/*121843*/ OPC_MoveChild, 23, ++/*121845*/ OPC_CheckInteger, 1, ++/*121847*/ OPC_CheckType, MVT::i32, ++/*121849*/ OPC_MoveParent, ++/*121850*/ OPC_MoveChild, 24, ++/*121852*/ OPC_CheckInteger, 1, ++/*121854*/ OPC_CheckType, MVT::i32, ++/*121856*/ OPC_MoveParent, ++/*121857*/ OPC_MoveChild, 25, ++/*121859*/ OPC_CheckInteger, 1, ++/*121861*/ OPC_CheckType, MVT::i32, ++/*121863*/ OPC_MoveParent, ++/*121864*/ OPC_MoveChild, 26, ++/*121866*/ OPC_CheckInteger, 1, ++/*121868*/ OPC_CheckType, MVT::i32, ++/*121870*/ OPC_MoveParent, ++/*121871*/ OPC_MoveChild, 27, ++/*121873*/ OPC_CheckInteger, 1, ++/*121875*/ OPC_CheckType, MVT::i32, ++/*121877*/ OPC_MoveParent, ++/*121878*/ OPC_MoveChild, 28, ++/*121880*/ OPC_CheckInteger, 1, ++/*121882*/ OPC_CheckType, MVT::i32, ++/*121884*/ OPC_MoveParent, ++/*121885*/ OPC_MoveChild, 29, ++/*121887*/ OPC_CheckInteger, 1, ++/*121889*/ OPC_CheckType, MVT::i32, ++/*121891*/ OPC_MoveParent, ++/*121892*/ OPC_MoveChild, 30, ++/*121894*/ OPC_CheckInteger, 1, ++/*121896*/ OPC_CheckType, MVT::i32, ++/*121898*/ OPC_MoveParent, ++/*121899*/ OPC_MoveChild, 31, ++/*121901*/ OPC_CheckInteger, 1, ++/*121903*/ OPC_CheckType, MVT::i32, ++/*121905*/ OPC_MoveParent, ++/*121906*/ OPC_CheckType, MVT::v32i8, ++/*121908*/ OPC_MoveParent, ++/*121909*/ OPC_CheckType, MVT::v32i8, ++/*121911*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*121913*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*121921*/ /*Scope*/ 17|128,5/*657*/, /*->122580*/ ++/*121923*/ OPC_MoveChild0, ++/*121924*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*121927*/ OPC_CheckChild0Integer, 1, ++/*121929*/ OPC_CheckChild0Type, MVT::i32, ++/*121931*/ OPC_CheckChild1Integer, 1, ++/*121933*/ OPC_CheckChild1Type, MVT::i32, ++/*121935*/ OPC_CheckChild2Integer, 1, ++/*121937*/ OPC_CheckChild2Type, MVT::i32, ++/*121939*/ OPC_CheckChild3Integer, 1, ++/*121941*/ OPC_CheckChild3Type, MVT::i32, ++/*121943*/ OPC_CheckChild4Integer, 1, ++/*121945*/ OPC_CheckChild4Type, MVT::i32, ++/*121947*/ OPC_MoveChild5, ++/*121948*/ OPC_CheckInteger, 1, ++/*121950*/ OPC_CheckType, MVT::i32, ++/*121952*/ OPC_MoveParent, ++/*121953*/ OPC_MoveChild6, ++/*121954*/ OPC_CheckInteger, 1, ++/*121956*/ OPC_CheckType, MVT::i32, ++/*121958*/ OPC_MoveParent, ++/*121959*/ OPC_MoveChild7, ++/*121960*/ OPC_CheckInteger, 1, ++/*121962*/ OPC_CheckType, MVT::i32, ++/*121964*/ OPC_MoveParent, ++/*121965*/ OPC_MoveChild, 8, ++/*121967*/ OPC_CheckInteger, 1, ++/*121969*/ OPC_CheckType, MVT::i32, ++/*121971*/ OPC_MoveParent, ++/*121972*/ OPC_MoveChild, 9, ++/*121974*/ OPC_CheckInteger, 1, ++/*121976*/ OPC_CheckType, MVT::i32, ++/*121978*/ OPC_MoveParent, ++/*121979*/ OPC_MoveChild, 10, ++/*121981*/ OPC_CheckInteger, 1, ++/*121983*/ OPC_CheckType, MVT::i32, ++/*121985*/ OPC_MoveParent, ++/*121986*/ OPC_MoveChild, 11, ++/*121988*/ OPC_CheckInteger, 1, ++/*121990*/ OPC_CheckType, MVT::i32, ++/*121992*/ OPC_MoveParent, ++/*121993*/ OPC_MoveChild, 12, ++/*121995*/ OPC_CheckInteger, 1, ++/*121997*/ OPC_CheckType, MVT::i32, ++/*121999*/ OPC_MoveParent, ++/*122000*/ OPC_MoveChild, 13, ++/*122002*/ OPC_CheckInteger, 1, ++/*122004*/ OPC_CheckType, MVT::i32, ++/*122006*/ OPC_MoveParent, ++/*122007*/ OPC_MoveChild, 14, ++/*122009*/ OPC_CheckInteger, 1, ++/*122011*/ OPC_CheckType, MVT::i32, ++/*122013*/ OPC_MoveParent, ++/*122014*/ OPC_MoveChild, 15, ++/*122016*/ OPC_CheckInteger, 1, ++/*122018*/ OPC_CheckType, MVT::i32, ++/*122020*/ OPC_MoveParent, ++/*122021*/ OPC_MoveChild, 16, ++/*122023*/ OPC_CheckInteger, 1, ++/*122025*/ OPC_CheckType, MVT::i32, ++/*122027*/ OPC_MoveParent, ++/*122028*/ OPC_MoveChild, 17, ++/*122030*/ OPC_CheckInteger, 1, ++/*122032*/ OPC_CheckType, MVT::i32, ++/*122034*/ OPC_MoveParent, ++/*122035*/ OPC_MoveChild, 18, ++/*122037*/ OPC_CheckInteger, 1, ++/*122039*/ OPC_CheckType, MVT::i32, ++/*122041*/ OPC_MoveParent, ++/*122042*/ OPC_MoveChild, 19, ++/*122044*/ OPC_CheckInteger, 1, ++/*122046*/ OPC_CheckType, MVT::i32, ++/*122048*/ OPC_MoveParent, ++/*122049*/ OPC_MoveChild, 20, ++/*122051*/ OPC_CheckInteger, 1, ++/*122053*/ OPC_CheckType, MVT::i32, ++/*122055*/ OPC_MoveParent, ++/*122056*/ OPC_MoveChild, 21, ++/*122058*/ OPC_CheckInteger, 1, ++/*122060*/ OPC_CheckType, MVT::i32, ++/*122062*/ OPC_MoveParent, ++/*122063*/ OPC_MoveChild, 22, ++/*122065*/ OPC_CheckInteger, 1, ++/*122067*/ OPC_CheckType, MVT::i32, ++/*122069*/ OPC_MoveParent, ++/*122070*/ OPC_MoveChild, 23, ++/*122072*/ OPC_CheckInteger, 1, ++/*122074*/ OPC_CheckType, MVT::i32, ++/*122076*/ OPC_MoveParent, ++/*122077*/ OPC_MoveChild, 24, ++/*122079*/ OPC_CheckInteger, 1, ++/*122081*/ OPC_CheckType, MVT::i32, ++/*122083*/ OPC_MoveParent, ++/*122084*/ OPC_MoveChild, 25, ++/*122086*/ OPC_CheckInteger, 1, ++/*122088*/ OPC_CheckType, MVT::i32, ++/*122090*/ OPC_MoveParent, ++/*122091*/ OPC_MoveChild, 26, ++/*122093*/ OPC_CheckInteger, 1, ++/*122095*/ OPC_CheckType, MVT::i32, ++/*122097*/ OPC_MoveParent, ++/*122098*/ OPC_MoveChild, 27, ++/*122100*/ OPC_CheckInteger, 1, ++/*122102*/ OPC_CheckType, MVT::i32, ++/*122104*/ OPC_MoveParent, ++/*122105*/ OPC_MoveChild, 28, ++/*122107*/ OPC_CheckInteger, 1, ++/*122109*/ OPC_CheckType, MVT::i32, ++/*122111*/ OPC_MoveParent, ++/*122112*/ OPC_MoveChild, 29, ++/*122114*/ OPC_CheckInteger, 1, ++/*122116*/ OPC_CheckType, MVT::i32, ++/*122118*/ OPC_MoveParent, ++/*122119*/ OPC_MoveChild, 30, ++/*122121*/ OPC_CheckInteger, 1, ++/*122123*/ OPC_CheckType, MVT::i32, ++/*122125*/ OPC_MoveParent, ++/*122126*/ OPC_MoveChild, 31, ++/*122128*/ OPC_CheckInteger, 1, ++/*122130*/ OPC_CheckType, MVT::i32, ++/*122132*/ OPC_MoveParent, ++/*122133*/ OPC_MoveParent, ++/*122134*/ OPC_CheckChild1Same, 0, ++/*122136*/ OPC_MoveParent, ++/*122137*/ OPC_CheckChild1Same, 1, ++/*122139*/ OPC_MoveParent, ++/*122140*/ OPC_MoveChild1, ++/*122141*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*122144*/ OPC_CheckChild0Integer, 7, ++/*122146*/ OPC_CheckChild0Type, MVT::i32, ++/*122148*/ OPC_CheckChild1Integer, 7, ++/*122150*/ OPC_CheckChild1Type, MVT::i32, ++/*122152*/ OPC_CheckChild2Integer, 7, ++/*122154*/ OPC_CheckChild2Type, MVT::i32, ++/*122156*/ OPC_CheckChild3Integer, 7, ++/*122158*/ OPC_CheckChild3Type, MVT::i32, ++/*122160*/ OPC_CheckChild4Integer, 7, ++/*122162*/ OPC_CheckChild4Type, MVT::i32, ++/*122164*/ OPC_MoveChild5, ++/*122165*/ OPC_CheckInteger, 7, ++/*122167*/ OPC_CheckType, MVT::i32, ++/*122169*/ OPC_MoveParent, ++/*122170*/ OPC_MoveChild6, ++/*122171*/ OPC_CheckInteger, 7, ++/*122173*/ OPC_CheckType, MVT::i32, ++/*122175*/ OPC_MoveParent, ++/*122176*/ OPC_MoveChild7, ++/*122177*/ OPC_CheckInteger, 7, ++/*122179*/ OPC_CheckType, MVT::i32, ++/*122181*/ OPC_MoveParent, ++/*122182*/ OPC_MoveChild, 8, ++/*122184*/ OPC_CheckInteger, 7, ++/*122186*/ OPC_CheckType, MVT::i32, ++/*122188*/ OPC_MoveParent, ++/*122189*/ OPC_MoveChild, 9, ++/*122191*/ OPC_CheckInteger, 7, ++/*122193*/ OPC_CheckType, MVT::i32, ++/*122195*/ OPC_MoveParent, ++/*122196*/ OPC_MoveChild, 10, ++/*122198*/ OPC_CheckInteger, 7, ++/*122200*/ OPC_CheckType, MVT::i32, ++/*122202*/ OPC_MoveParent, ++/*122203*/ OPC_MoveChild, 11, ++/*122205*/ OPC_CheckInteger, 7, ++/*122207*/ OPC_CheckType, MVT::i32, ++/*122209*/ OPC_MoveParent, ++/*122210*/ OPC_MoveChild, 12, ++/*122212*/ OPC_CheckInteger, 7, ++/*122214*/ OPC_CheckType, MVT::i32, ++/*122216*/ OPC_MoveParent, ++/*122217*/ OPC_MoveChild, 13, ++/*122219*/ OPC_CheckInteger, 7, ++/*122221*/ OPC_CheckType, MVT::i32, ++/*122223*/ OPC_MoveParent, ++/*122224*/ OPC_MoveChild, 14, ++/*122226*/ OPC_CheckInteger, 7, ++/*122228*/ OPC_CheckType, MVT::i32, ++/*122230*/ OPC_MoveParent, ++/*122231*/ OPC_MoveChild, 15, ++/*122233*/ OPC_CheckInteger, 7, ++/*122235*/ OPC_CheckType, MVT::i32, ++/*122237*/ OPC_MoveParent, ++/*122238*/ OPC_MoveChild, 16, ++/*122240*/ OPC_CheckInteger, 7, ++/*122242*/ OPC_CheckType, MVT::i32, ++/*122244*/ OPC_MoveParent, ++/*122245*/ OPC_MoveChild, 17, ++/*122247*/ OPC_CheckInteger, 7, ++/*122249*/ OPC_CheckType, MVT::i32, ++/*122251*/ OPC_MoveParent, ++/*122252*/ OPC_MoveChild, 18, ++/*122254*/ OPC_CheckInteger, 7, ++/*122256*/ OPC_CheckType, MVT::i32, ++/*122258*/ OPC_MoveParent, ++/*122259*/ OPC_MoveChild, 19, ++/*122261*/ OPC_CheckInteger, 7, ++/*122263*/ OPC_CheckType, MVT::i32, ++/*122265*/ OPC_MoveParent, ++/*122266*/ OPC_MoveChild, 20, ++/*122268*/ OPC_CheckInteger, 7, ++/*122270*/ OPC_CheckType, MVT::i32, ++/*122272*/ OPC_MoveParent, ++/*122273*/ OPC_MoveChild, 21, ++/*122275*/ OPC_CheckInteger, 7, ++/*122277*/ OPC_CheckType, MVT::i32, ++/*122279*/ OPC_MoveParent, ++/*122280*/ OPC_MoveChild, 22, ++/*122282*/ OPC_CheckInteger, 7, ++/*122284*/ OPC_CheckType, MVT::i32, ++/*122286*/ OPC_MoveParent, ++/*122287*/ OPC_MoveChild, 23, ++/*122289*/ OPC_CheckInteger, 7, ++/*122291*/ OPC_CheckType, MVT::i32, ++/*122293*/ OPC_MoveParent, ++/*122294*/ OPC_MoveChild, 24, ++/*122296*/ OPC_CheckInteger, 7, ++/*122298*/ OPC_CheckType, MVT::i32, ++/*122300*/ OPC_MoveParent, ++/*122301*/ OPC_MoveChild, 25, ++/*122303*/ OPC_CheckInteger, 7, ++/*122305*/ OPC_CheckType, MVT::i32, ++/*122307*/ OPC_MoveParent, ++/*122308*/ OPC_MoveChild, 26, ++/*122310*/ OPC_CheckInteger, 7, ++/*122312*/ OPC_CheckType, MVT::i32, ++/*122314*/ OPC_MoveParent, ++/*122315*/ OPC_MoveChild, 27, ++/*122317*/ OPC_CheckInteger, 7, ++/*122319*/ OPC_CheckType, MVT::i32, ++/*122321*/ OPC_MoveParent, ++/*122322*/ OPC_MoveChild, 28, ++/*122324*/ OPC_CheckInteger, 7, ++/*122326*/ OPC_CheckType, MVT::i32, ++/*122328*/ OPC_MoveParent, ++/*122329*/ OPC_MoveChild, 29, ++/*122331*/ OPC_CheckInteger, 7, ++/*122333*/ OPC_CheckType, MVT::i32, ++/*122335*/ OPC_MoveParent, ++/*122336*/ OPC_MoveChild, 30, ++/*122338*/ OPC_CheckInteger, 7, ++/*122340*/ OPC_CheckType, MVT::i32, ++/*122342*/ OPC_MoveParent, ++/*122343*/ OPC_MoveChild, 31, ++/*122345*/ OPC_CheckInteger, 7, ++/*122347*/ OPC_CheckType, MVT::i32, ++/*122349*/ OPC_MoveParent, ++/*122350*/ OPC_CheckType, MVT::v32i8, ++/*122352*/ OPC_MoveParent, ++/*122353*/ OPC_MoveParent, ++/*122354*/ OPC_MoveParent, ++/*122355*/ OPC_MoveChild1, ++/*122356*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*122359*/ OPC_CheckChild0Integer, 1, ++/*122361*/ OPC_CheckChild0Type, MVT::i32, ++/*122363*/ OPC_CheckChild1Integer, 1, ++/*122365*/ OPC_CheckChild1Type, MVT::i32, ++/*122367*/ OPC_CheckChild2Integer, 1, ++/*122369*/ OPC_CheckChild2Type, MVT::i32, ++/*122371*/ OPC_CheckChild3Integer, 1, ++/*122373*/ OPC_CheckChild3Type, MVT::i32, ++/*122375*/ OPC_CheckChild4Integer, 1, ++/*122377*/ OPC_CheckChild4Type, MVT::i32, ++/*122379*/ OPC_MoveChild5, ++/*122380*/ OPC_CheckInteger, 1, ++/*122382*/ OPC_CheckType, MVT::i32, ++/*122384*/ OPC_MoveParent, ++/*122385*/ OPC_MoveChild6, ++/*122386*/ OPC_CheckInteger, 1, ++/*122388*/ OPC_CheckType, MVT::i32, ++/*122390*/ OPC_MoveParent, ++/*122391*/ OPC_MoveChild7, ++/*122392*/ OPC_CheckInteger, 1, ++/*122394*/ OPC_CheckType, MVT::i32, ++/*122396*/ OPC_MoveParent, ++/*122397*/ OPC_MoveChild, 8, ++/*122399*/ OPC_CheckInteger, 1, ++/*122401*/ OPC_CheckType, MVT::i32, ++/*122403*/ OPC_MoveParent, ++/*122404*/ OPC_MoveChild, 9, ++/*122406*/ OPC_CheckInteger, 1, ++/*122408*/ OPC_CheckType, MVT::i32, ++/*122410*/ OPC_MoveParent, ++/*122411*/ OPC_MoveChild, 10, ++/*122413*/ OPC_CheckInteger, 1, ++/*122415*/ OPC_CheckType, MVT::i32, ++/*122417*/ OPC_MoveParent, ++/*122418*/ OPC_MoveChild, 11, ++/*122420*/ OPC_CheckInteger, 1, ++/*122422*/ OPC_CheckType, MVT::i32, ++/*122424*/ OPC_MoveParent, ++/*122425*/ OPC_MoveChild, 12, ++/*122427*/ OPC_CheckInteger, 1, ++/*122429*/ OPC_CheckType, MVT::i32, ++/*122431*/ OPC_MoveParent, ++/*122432*/ OPC_MoveChild, 13, ++/*122434*/ OPC_CheckInteger, 1, ++/*122436*/ OPC_CheckType, MVT::i32, ++/*122438*/ OPC_MoveParent, ++/*122439*/ OPC_MoveChild, 14, ++/*122441*/ OPC_CheckInteger, 1, ++/*122443*/ OPC_CheckType, MVT::i32, ++/*122445*/ OPC_MoveParent, ++/*122446*/ OPC_MoveChild, 15, ++/*122448*/ OPC_CheckInteger, 1, ++/*122450*/ OPC_CheckType, MVT::i32, ++/*122452*/ OPC_MoveParent, ++/*122453*/ OPC_MoveChild, 16, ++/*122455*/ OPC_CheckInteger, 1, ++/*122457*/ OPC_CheckType, MVT::i32, ++/*122459*/ OPC_MoveParent, ++/*122460*/ OPC_MoveChild, 17, ++/*122462*/ OPC_CheckInteger, 1, ++/*122464*/ OPC_CheckType, MVT::i32, ++/*122466*/ OPC_MoveParent, ++/*122467*/ OPC_MoveChild, 18, ++/*122469*/ OPC_CheckInteger, 1, ++/*122471*/ OPC_CheckType, MVT::i32, ++/*122473*/ OPC_MoveParent, ++/*122474*/ OPC_MoveChild, 19, ++/*122476*/ OPC_CheckInteger, 1, ++/*122478*/ OPC_CheckType, MVT::i32, ++/*122480*/ OPC_MoveParent, ++/*122481*/ OPC_MoveChild, 20, ++/*122483*/ OPC_CheckInteger, 1, ++/*122485*/ OPC_CheckType, MVT::i32, ++/*122487*/ OPC_MoveParent, ++/*122488*/ OPC_MoveChild, 21, ++/*122490*/ OPC_CheckInteger, 1, ++/*122492*/ OPC_CheckType, MVT::i32, ++/*122494*/ OPC_MoveParent, ++/*122495*/ OPC_MoveChild, 22, ++/*122497*/ OPC_CheckInteger, 1, ++/*122499*/ OPC_CheckType, MVT::i32, ++/*122501*/ OPC_MoveParent, ++/*122502*/ OPC_MoveChild, 23, ++/*122504*/ OPC_CheckInteger, 1, ++/*122506*/ OPC_CheckType, MVT::i32, ++/*122508*/ OPC_MoveParent, ++/*122509*/ OPC_MoveChild, 24, ++/*122511*/ OPC_CheckInteger, 1, ++/*122513*/ OPC_CheckType, MVT::i32, ++/*122515*/ OPC_MoveParent, ++/*122516*/ OPC_MoveChild, 25, ++/*122518*/ OPC_CheckInteger, 1, ++/*122520*/ OPC_CheckType, MVT::i32, ++/*122522*/ OPC_MoveParent, ++/*122523*/ OPC_MoveChild, 26, ++/*122525*/ OPC_CheckInteger, 1, ++/*122527*/ OPC_CheckType, MVT::i32, ++/*122529*/ OPC_MoveParent, ++/*122530*/ OPC_MoveChild, 27, ++/*122532*/ OPC_CheckInteger, 1, ++/*122534*/ OPC_CheckType, MVT::i32, ++/*122536*/ OPC_MoveParent, ++/*122537*/ OPC_MoveChild, 28, ++/*122539*/ OPC_CheckInteger, 1, ++/*122541*/ OPC_CheckType, MVT::i32, ++/*122543*/ OPC_MoveParent, ++/*122544*/ OPC_MoveChild, 29, ++/*122546*/ OPC_CheckInteger, 1, ++/*122548*/ OPC_CheckType, MVT::i32, ++/*122550*/ OPC_MoveParent, ++/*122551*/ OPC_MoveChild, 30, ++/*122553*/ OPC_CheckInteger, 1, ++/*122555*/ OPC_CheckType, MVT::i32, ++/*122557*/ OPC_MoveParent, ++/*122558*/ OPC_MoveChild, 31, ++/*122560*/ OPC_CheckInteger, 1, ++/*122562*/ OPC_CheckType, MVT::i32, ++/*122564*/ OPC_MoveParent, ++/*122565*/ OPC_CheckType, MVT::v32i8, ++/*122567*/ OPC_MoveParent, ++/*122568*/ OPC_CheckType, MVT::v32i8, ++/*122570*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*122572*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b), LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*122580*/ /*Scope*/ 17|128,5/*657*/, /*->123239*/ ++/*122582*/ OPC_CheckChild0Same, 0, ++/*122584*/ OPC_MoveChild1, ++/*122585*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*122588*/ OPC_CheckChild0Integer, 1, ++/*122590*/ OPC_CheckChild0Type, MVT::i32, ++/*122592*/ OPC_CheckChild1Integer, 1, ++/*122594*/ OPC_CheckChild1Type, MVT::i32, ++/*122596*/ OPC_CheckChild2Integer, 1, ++/*122598*/ OPC_CheckChild2Type, MVT::i32, ++/*122600*/ OPC_CheckChild3Integer, 1, ++/*122602*/ OPC_CheckChild3Type, MVT::i32, ++/*122604*/ OPC_CheckChild4Integer, 1, ++/*122606*/ OPC_CheckChild4Type, MVT::i32, ++/*122608*/ OPC_MoveChild5, ++/*122609*/ OPC_CheckInteger, 1, ++/*122611*/ OPC_CheckType, MVT::i32, ++/*122613*/ OPC_MoveParent, ++/*122614*/ OPC_MoveChild6, ++/*122615*/ OPC_CheckInteger, 1, ++/*122617*/ OPC_CheckType, MVT::i32, ++/*122619*/ OPC_MoveParent, ++/*122620*/ OPC_MoveChild7, ++/*122621*/ OPC_CheckInteger, 1, ++/*122623*/ OPC_CheckType, MVT::i32, ++/*122625*/ OPC_MoveParent, ++/*122626*/ OPC_MoveChild, 8, ++/*122628*/ OPC_CheckInteger, 1, ++/*122630*/ OPC_CheckType, MVT::i32, ++/*122632*/ OPC_MoveParent, ++/*122633*/ OPC_MoveChild, 9, ++/*122635*/ OPC_CheckInteger, 1, ++/*122637*/ OPC_CheckType, MVT::i32, ++/*122639*/ OPC_MoveParent, ++/*122640*/ OPC_MoveChild, 10, ++/*122642*/ OPC_CheckInteger, 1, ++/*122644*/ OPC_CheckType, MVT::i32, ++/*122646*/ OPC_MoveParent, ++/*122647*/ OPC_MoveChild, 11, ++/*122649*/ OPC_CheckInteger, 1, ++/*122651*/ OPC_CheckType, MVT::i32, ++/*122653*/ OPC_MoveParent, ++/*122654*/ OPC_MoveChild, 12, ++/*122656*/ OPC_CheckInteger, 1, ++/*122658*/ OPC_CheckType, MVT::i32, ++/*122660*/ OPC_MoveParent, ++/*122661*/ OPC_MoveChild, 13, ++/*122663*/ OPC_CheckInteger, 1, ++/*122665*/ OPC_CheckType, MVT::i32, ++/*122667*/ OPC_MoveParent, ++/*122668*/ OPC_MoveChild, 14, ++/*122670*/ OPC_CheckInteger, 1, ++/*122672*/ OPC_CheckType, MVT::i32, ++/*122674*/ OPC_MoveParent, ++/*122675*/ OPC_MoveChild, 15, ++/*122677*/ OPC_CheckInteger, 1, ++/*122679*/ OPC_CheckType, MVT::i32, ++/*122681*/ OPC_MoveParent, ++/*122682*/ OPC_MoveChild, 16, ++/*122684*/ OPC_CheckInteger, 1, ++/*122686*/ OPC_CheckType, MVT::i32, ++/*122688*/ OPC_MoveParent, ++/*122689*/ OPC_MoveChild, 17, ++/*122691*/ OPC_CheckInteger, 1, ++/*122693*/ OPC_CheckType, MVT::i32, ++/*122695*/ OPC_MoveParent, ++/*122696*/ OPC_MoveChild, 18, ++/*122698*/ OPC_CheckInteger, 1, ++/*122700*/ OPC_CheckType, MVT::i32, ++/*122702*/ OPC_MoveParent, ++/*122703*/ OPC_MoveChild, 19, ++/*122705*/ OPC_CheckInteger, 1, ++/*122707*/ OPC_CheckType, MVT::i32, ++/*122709*/ OPC_MoveParent, ++/*122710*/ OPC_MoveChild, 20, ++/*122712*/ OPC_CheckInteger, 1, ++/*122714*/ OPC_CheckType, MVT::i32, ++/*122716*/ OPC_MoveParent, ++/*122717*/ OPC_MoveChild, 21, ++/*122719*/ OPC_CheckInteger, 1, ++/*122721*/ OPC_CheckType, MVT::i32, ++/*122723*/ OPC_MoveParent, ++/*122724*/ OPC_MoveChild, 22, ++/*122726*/ OPC_CheckInteger, 1, ++/*122728*/ OPC_CheckType, MVT::i32, ++/*122730*/ OPC_MoveParent, ++/*122731*/ OPC_MoveChild, 23, ++/*122733*/ OPC_CheckInteger, 1, ++/*122735*/ OPC_CheckType, MVT::i32, ++/*122737*/ OPC_MoveParent, ++/*122738*/ OPC_MoveChild, 24, ++/*122740*/ OPC_CheckInteger, 1, ++/*122742*/ OPC_CheckType, MVT::i32, ++/*122744*/ OPC_MoveParent, ++/*122745*/ OPC_MoveChild, 25, ++/*122747*/ OPC_CheckInteger, 1, ++/*122749*/ OPC_CheckType, MVT::i32, ++/*122751*/ OPC_MoveParent, ++/*122752*/ OPC_MoveChild, 26, ++/*122754*/ OPC_CheckInteger, 1, ++/*122756*/ OPC_CheckType, MVT::i32, ++/*122758*/ OPC_MoveParent, ++/*122759*/ OPC_MoveChild, 27, ++/*122761*/ OPC_CheckInteger, 1, ++/*122763*/ OPC_CheckType, MVT::i32, ++/*122765*/ OPC_MoveParent, ++/*122766*/ OPC_MoveChild, 28, ++/*122768*/ OPC_CheckInteger, 1, ++/*122770*/ OPC_CheckType, MVT::i32, ++/*122772*/ OPC_MoveParent, ++/*122773*/ OPC_MoveChild, 29, ++/*122775*/ OPC_CheckInteger, 1, ++/*122777*/ OPC_CheckType, MVT::i32, ++/*122779*/ OPC_MoveParent, ++/*122780*/ OPC_MoveChild, 30, ++/*122782*/ OPC_CheckInteger, 1, ++/*122784*/ OPC_CheckType, MVT::i32, ++/*122786*/ OPC_MoveParent, ++/*122787*/ OPC_MoveChild, 31, ++/*122789*/ OPC_CheckInteger, 1, ++/*122791*/ OPC_CheckType, MVT::i32, ++/*122793*/ OPC_MoveParent, ++/*122794*/ OPC_MoveParent, ++/*122795*/ OPC_MoveParent, ++/*122796*/ OPC_CheckChild1Same, 1, ++/*122798*/ OPC_MoveParent, ++/*122799*/ OPC_MoveChild1, ++/*122800*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*122803*/ OPC_CheckChild0Integer, 7, ++/*122805*/ OPC_CheckChild0Type, MVT::i32, ++/*122807*/ OPC_CheckChild1Integer, 7, ++/*122809*/ OPC_CheckChild1Type, MVT::i32, ++/*122811*/ OPC_CheckChild2Integer, 7, ++/*122813*/ OPC_CheckChild2Type, MVT::i32, ++/*122815*/ OPC_CheckChild3Integer, 7, ++/*122817*/ OPC_CheckChild3Type, MVT::i32, ++/*122819*/ OPC_CheckChild4Integer, 7, ++/*122821*/ OPC_CheckChild4Type, MVT::i32, ++/*122823*/ OPC_MoveChild5, ++/*122824*/ OPC_CheckInteger, 7, ++/*122826*/ OPC_CheckType, MVT::i32, ++/*122828*/ OPC_MoveParent, ++/*122829*/ OPC_MoveChild6, ++/*122830*/ OPC_CheckInteger, 7, ++/*122832*/ OPC_CheckType, MVT::i32, ++/*122834*/ OPC_MoveParent, ++/*122835*/ OPC_MoveChild7, ++/*122836*/ OPC_CheckInteger, 7, ++/*122838*/ OPC_CheckType, MVT::i32, ++/*122840*/ OPC_MoveParent, ++/*122841*/ OPC_MoveChild, 8, ++/*122843*/ OPC_CheckInteger, 7, ++/*122845*/ OPC_CheckType, MVT::i32, ++/*122847*/ OPC_MoveParent, ++/*122848*/ OPC_MoveChild, 9, ++/*122850*/ OPC_CheckInteger, 7, ++/*122852*/ OPC_CheckType, MVT::i32, ++/*122854*/ OPC_MoveParent, ++/*122855*/ OPC_MoveChild, 10, ++/*122857*/ OPC_CheckInteger, 7, ++/*122859*/ OPC_CheckType, MVT::i32, ++/*122861*/ OPC_MoveParent, ++/*122862*/ OPC_MoveChild, 11, ++/*122864*/ OPC_CheckInteger, 7, ++/*122866*/ OPC_CheckType, MVT::i32, ++/*122868*/ OPC_MoveParent, ++/*122869*/ OPC_MoveChild, 12, ++/*122871*/ OPC_CheckInteger, 7, ++/*122873*/ OPC_CheckType, MVT::i32, ++/*122875*/ OPC_MoveParent, ++/*122876*/ OPC_MoveChild, 13, ++/*122878*/ OPC_CheckInteger, 7, ++/*122880*/ OPC_CheckType, MVT::i32, ++/*122882*/ OPC_MoveParent, ++/*122883*/ OPC_MoveChild, 14, ++/*122885*/ OPC_CheckInteger, 7, ++/*122887*/ OPC_CheckType, MVT::i32, ++/*122889*/ OPC_MoveParent, ++/*122890*/ OPC_MoveChild, 15, ++/*122892*/ OPC_CheckInteger, 7, ++/*122894*/ OPC_CheckType, MVT::i32, ++/*122896*/ OPC_MoveParent, ++/*122897*/ OPC_MoveChild, 16, ++/*122899*/ OPC_CheckInteger, 7, ++/*122901*/ OPC_CheckType, MVT::i32, ++/*122903*/ OPC_MoveParent, ++/*122904*/ OPC_MoveChild, 17, ++/*122906*/ OPC_CheckInteger, 7, ++/*122908*/ OPC_CheckType, MVT::i32, ++/*122910*/ OPC_MoveParent, ++/*122911*/ OPC_MoveChild, 18, ++/*122913*/ OPC_CheckInteger, 7, ++/*122915*/ OPC_CheckType, MVT::i32, ++/*122917*/ OPC_MoveParent, ++/*122918*/ OPC_MoveChild, 19, ++/*122920*/ OPC_CheckInteger, 7, ++/*122922*/ OPC_CheckType, MVT::i32, ++/*122924*/ OPC_MoveParent, ++/*122925*/ OPC_MoveChild, 20, ++/*122927*/ OPC_CheckInteger, 7, ++/*122929*/ OPC_CheckType, MVT::i32, ++/*122931*/ OPC_MoveParent, ++/*122932*/ OPC_MoveChild, 21, ++/*122934*/ OPC_CheckInteger, 7, ++/*122936*/ OPC_CheckType, MVT::i32, ++/*122938*/ OPC_MoveParent, ++/*122939*/ OPC_MoveChild, 22, ++/*122941*/ OPC_CheckInteger, 7, ++/*122943*/ OPC_CheckType, MVT::i32, ++/*122945*/ OPC_MoveParent, ++/*122946*/ OPC_MoveChild, 23, ++/*122948*/ OPC_CheckInteger, 7, ++/*122950*/ OPC_CheckType, MVT::i32, ++/*122952*/ OPC_MoveParent, ++/*122953*/ OPC_MoveChild, 24, ++/*122955*/ OPC_CheckInteger, 7, ++/*122957*/ OPC_CheckType, MVT::i32, ++/*122959*/ OPC_MoveParent, ++/*122960*/ OPC_MoveChild, 25, ++/*122962*/ OPC_CheckInteger, 7, ++/*122964*/ OPC_CheckType, MVT::i32, ++/*122966*/ OPC_MoveParent, ++/*122967*/ OPC_MoveChild, 26, ++/*122969*/ OPC_CheckInteger, 7, ++/*122971*/ OPC_CheckType, MVT::i32, ++/*122973*/ OPC_MoveParent, ++/*122974*/ OPC_MoveChild, 27, ++/*122976*/ OPC_CheckInteger, 7, ++/*122978*/ OPC_CheckType, MVT::i32, ++/*122980*/ OPC_MoveParent, ++/*122981*/ OPC_MoveChild, 28, ++/*122983*/ OPC_CheckInteger, 7, ++/*122985*/ OPC_CheckType, MVT::i32, ++/*122987*/ OPC_MoveParent, ++/*122988*/ OPC_MoveChild, 29, ++/*122990*/ OPC_CheckInteger, 7, ++/*122992*/ OPC_CheckType, MVT::i32, ++/*122994*/ OPC_MoveParent, ++/*122995*/ OPC_MoveChild, 30, ++/*122997*/ OPC_CheckInteger, 7, ++/*122999*/ OPC_CheckType, MVT::i32, ++/*123001*/ OPC_MoveParent, ++/*123002*/ OPC_MoveChild, 31, ++/*123004*/ OPC_CheckInteger, 7, ++/*123006*/ OPC_CheckType, MVT::i32, ++/*123008*/ OPC_MoveParent, ++/*123009*/ OPC_CheckType, MVT::v32i8, ++/*123011*/ OPC_MoveParent, ++/*123012*/ OPC_MoveParent, ++/*123013*/ OPC_MoveParent, ++/*123014*/ OPC_MoveChild1, ++/*123015*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*123018*/ OPC_CheckChild0Integer, 1, ++/*123020*/ OPC_CheckChild0Type, MVT::i32, ++/*123022*/ OPC_CheckChild1Integer, 1, ++/*123024*/ OPC_CheckChild1Type, MVT::i32, ++/*123026*/ OPC_CheckChild2Integer, 1, ++/*123028*/ OPC_CheckChild2Type, MVT::i32, ++/*123030*/ OPC_CheckChild3Integer, 1, ++/*123032*/ OPC_CheckChild3Type, MVT::i32, ++/*123034*/ OPC_CheckChild4Integer, 1, ++/*123036*/ OPC_CheckChild4Type, MVT::i32, ++/*123038*/ OPC_MoveChild5, ++/*123039*/ OPC_CheckInteger, 1, ++/*123041*/ OPC_CheckType, MVT::i32, ++/*123043*/ OPC_MoveParent, ++/*123044*/ OPC_MoveChild6, ++/*123045*/ OPC_CheckInteger, 1, ++/*123047*/ OPC_CheckType, MVT::i32, ++/*123049*/ OPC_MoveParent, ++/*123050*/ OPC_MoveChild7, ++/*123051*/ OPC_CheckInteger, 1, ++/*123053*/ OPC_CheckType, MVT::i32, ++/*123055*/ OPC_MoveParent, ++/*123056*/ OPC_MoveChild, 8, ++/*123058*/ OPC_CheckInteger, 1, ++/*123060*/ OPC_CheckType, MVT::i32, ++/*123062*/ OPC_MoveParent, ++/*123063*/ OPC_MoveChild, 9, ++/*123065*/ OPC_CheckInteger, 1, ++/*123067*/ OPC_CheckType, MVT::i32, ++/*123069*/ OPC_MoveParent, ++/*123070*/ OPC_MoveChild, 10, ++/*123072*/ OPC_CheckInteger, 1, ++/*123074*/ OPC_CheckType, MVT::i32, ++/*123076*/ OPC_MoveParent, ++/*123077*/ OPC_MoveChild, 11, ++/*123079*/ OPC_CheckInteger, 1, ++/*123081*/ OPC_CheckType, MVT::i32, ++/*123083*/ OPC_MoveParent, ++/*123084*/ OPC_MoveChild, 12, ++/*123086*/ OPC_CheckInteger, 1, ++/*123088*/ OPC_CheckType, MVT::i32, ++/*123090*/ OPC_MoveParent, ++/*123091*/ OPC_MoveChild, 13, ++/*123093*/ OPC_CheckInteger, 1, ++/*123095*/ OPC_CheckType, MVT::i32, ++/*123097*/ OPC_MoveParent, ++/*123098*/ OPC_MoveChild, 14, ++/*123100*/ OPC_CheckInteger, 1, ++/*123102*/ OPC_CheckType, MVT::i32, ++/*123104*/ OPC_MoveParent, ++/*123105*/ OPC_MoveChild, 15, ++/*123107*/ OPC_CheckInteger, 1, ++/*123109*/ OPC_CheckType, MVT::i32, ++/*123111*/ OPC_MoveParent, ++/*123112*/ OPC_MoveChild, 16, ++/*123114*/ OPC_CheckInteger, 1, ++/*123116*/ OPC_CheckType, MVT::i32, ++/*123118*/ OPC_MoveParent, ++/*123119*/ OPC_MoveChild, 17, ++/*123121*/ OPC_CheckInteger, 1, ++/*123123*/ OPC_CheckType, MVT::i32, ++/*123125*/ OPC_MoveParent, ++/*123126*/ OPC_MoveChild, 18, ++/*123128*/ OPC_CheckInteger, 1, ++/*123130*/ OPC_CheckType, MVT::i32, ++/*123132*/ OPC_MoveParent, ++/*123133*/ OPC_MoveChild, 19, ++/*123135*/ OPC_CheckInteger, 1, ++/*123137*/ OPC_CheckType, MVT::i32, ++/*123139*/ OPC_MoveParent, ++/*123140*/ OPC_MoveChild, 20, ++/*123142*/ OPC_CheckInteger, 1, ++/*123144*/ OPC_CheckType, MVT::i32, ++/*123146*/ OPC_MoveParent, ++/*123147*/ OPC_MoveChild, 21, ++/*123149*/ OPC_CheckInteger, 1, ++/*123151*/ OPC_CheckType, MVT::i32, ++/*123153*/ OPC_MoveParent, ++/*123154*/ OPC_MoveChild, 22, ++/*123156*/ OPC_CheckInteger, 1, ++/*123158*/ OPC_CheckType, MVT::i32, ++/*123160*/ OPC_MoveParent, ++/*123161*/ OPC_MoveChild, 23, ++/*123163*/ OPC_CheckInteger, 1, ++/*123165*/ OPC_CheckType, MVT::i32, ++/*123167*/ OPC_MoveParent, ++/*123168*/ OPC_MoveChild, 24, ++/*123170*/ OPC_CheckInteger, 1, ++/*123172*/ OPC_CheckType, MVT::i32, ++/*123174*/ OPC_MoveParent, ++/*123175*/ OPC_MoveChild, 25, ++/*123177*/ OPC_CheckInteger, 1, ++/*123179*/ OPC_CheckType, MVT::i32, ++/*123181*/ OPC_MoveParent, ++/*123182*/ OPC_MoveChild, 26, ++/*123184*/ OPC_CheckInteger, 1, ++/*123186*/ OPC_CheckType, MVT::i32, ++/*123188*/ OPC_MoveParent, ++/*123189*/ OPC_MoveChild, 27, ++/*123191*/ OPC_CheckInteger, 1, ++/*123193*/ OPC_CheckType, MVT::i32, ++/*123195*/ OPC_MoveParent, ++/*123196*/ OPC_MoveChild, 28, ++/*123198*/ OPC_CheckInteger, 1, ++/*123200*/ OPC_CheckType, MVT::i32, ++/*123202*/ OPC_MoveParent, ++/*123203*/ OPC_MoveChild, 29, ++/*123205*/ OPC_CheckInteger, 1, ++/*123207*/ OPC_CheckType, MVT::i32, ++/*123209*/ OPC_MoveParent, ++/*123210*/ OPC_MoveChild, 30, ++/*123212*/ OPC_CheckInteger, 1, ++/*123214*/ OPC_CheckType, MVT::i32, ++/*123216*/ OPC_MoveParent, ++/*123217*/ OPC_MoveChild, 31, ++/*123219*/ OPC_CheckInteger, 1, ++/*123221*/ OPC_CheckType, MVT::i32, ++/*123223*/ OPC_MoveParent, ++/*123224*/ OPC_CheckType, MVT::v32i8, ++/*123226*/ OPC_MoveParent, ++/*123227*/ OPC_CheckType, MVT::v32i8, ++/*123229*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*123231*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*123239*/ /*Scope*/ 17|128,5/*657*/, /*->123898*/ ++/*123241*/ OPC_CheckChild0Same, 1, ++/*123243*/ OPC_CheckChild1Same, 0, ++/*123245*/ OPC_MoveParent, ++/*123246*/ OPC_MoveChild1, ++/*123247*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*123250*/ OPC_CheckChild0Integer, 1, ++/*123252*/ OPC_CheckChild0Type, MVT::i32, ++/*123254*/ OPC_CheckChild1Integer, 1, ++/*123256*/ OPC_CheckChild1Type, MVT::i32, ++/*123258*/ OPC_CheckChild2Integer, 1, ++/*123260*/ OPC_CheckChild2Type, MVT::i32, ++/*123262*/ OPC_CheckChild3Integer, 1, ++/*123264*/ OPC_CheckChild3Type, MVT::i32, ++/*123266*/ OPC_CheckChild4Integer, 1, ++/*123268*/ OPC_CheckChild4Type, MVT::i32, ++/*123270*/ OPC_MoveChild5, ++/*123271*/ OPC_CheckInteger, 1, ++/*123273*/ OPC_CheckType, MVT::i32, ++/*123275*/ OPC_MoveParent, ++/*123276*/ OPC_MoveChild6, ++/*123277*/ OPC_CheckInteger, 1, ++/*123279*/ OPC_CheckType, MVT::i32, ++/*123281*/ OPC_MoveParent, ++/*123282*/ OPC_MoveChild7, ++/*123283*/ OPC_CheckInteger, 1, ++/*123285*/ OPC_CheckType, MVT::i32, ++/*123287*/ OPC_MoveParent, ++/*123288*/ OPC_MoveChild, 8, ++/*123290*/ OPC_CheckInteger, 1, ++/*123292*/ OPC_CheckType, MVT::i32, ++/*123294*/ OPC_MoveParent, ++/*123295*/ OPC_MoveChild, 9, ++/*123297*/ OPC_CheckInteger, 1, ++/*123299*/ OPC_CheckType, MVT::i32, ++/*123301*/ OPC_MoveParent, ++/*123302*/ OPC_MoveChild, 10, ++/*123304*/ OPC_CheckInteger, 1, ++/*123306*/ OPC_CheckType, MVT::i32, ++/*123308*/ OPC_MoveParent, ++/*123309*/ OPC_MoveChild, 11, ++/*123311*/ OPC_CheckInteger, 1, ++/*123313*/ OPC_CheckType, MVT::i32, ++/*123315*/ OPC_MoveParent, ++/*123316*/ OPC_MoveChild, 12, ++/*123318*/ OPC_CheckInteger, 1, ++/*123320*/ OPC_CheckType, MVT::i32, ++/*123322*/ OPC_MoveParent, ++/*123323*/ OPC_MoveChild, 13, ++/*123325*/ OPC_CheckInteger, 1, ++/*123327*/ OPC_CheckType, MVT::i32, ++/*123329*/ OPC_MoveParent, ++/*123330*/ OPC_MoveChild, 14, ++/*123332*/ OPC_CheckInteger, 1, ++/*123334*/ OPC_CheckType, MVT::i32, ++/*123336*/ OPC_MoveParent, ++/*123337*/ OPC_MoveChild, 15, ++/*123339*/ OPC_CheckInteger, 1, ++/*123341*/ OPC_CheckType, MVT::i32, ++/*123343*/ OPC_MoveParent, ++/*123344*/ OPC_MoveChild, 16, ++/*123346*/ OPC_CheckInteger, 1, ++/*123348*/ OPC_CheckType, MVT::i32, ++/*123350*/ OPC_MoveParent, ++/*123351*/ OPC_MoveChild, 17, ++/*123353*/ OPC_CheckInteger, 1, ++/*123355*/ OPC_CheckType, MVT::i32, ++/*123357*/ OPC_MoveParent, ++/*123358*/ OPC_MoveChild, 18, ++/*123360*/ OPC_CheckInteger, 1, ++/*123362*/ OPC_CheckType, MVT::i32, ++/*123364*/ OPC_MoveParent, ++/*123365*/ OPC_MoveChild, 19, ++/*123367*/ OPC_CheckInteger, 1, ++/*123369*/ OPC_CheckType, MVT::i32, ++/*123371*/ OPC_MoveParent, ++/*123372*/ OPC_MoveChild, 20, ++/*123374*/ OPC_CheckInteger, 1, ++/*123376*/ OPC_CheckType, MVT::i32, ++/*123378*/ OPC_MoveParent, ++/*123379*/ OPC_MoveChild, 21, ++/*123381*/ OPC_CheckInteger, 1, ++/*123383*/ OPC_CheckType, MVT::i32, ++/*123385*/ OPC_MoveParent, ++/*123386*/ OPC_MoveChild, 22, ++/*123388*/ OPC_CheckInteger, 1, ++/*123390*/ OPC_CheckType, MVT::i32, ++/*123392*/ OPC_MoveParent, ++/*123393*/ OPC_MoveChild, 23, ++/*123395*/ OPC_CheckInteger, 1, ++/*123397*/ OPC_CheckType, MVT::i32, ++/*123399*/ OPC_MoveParent, ++/*123400*/ OPC_MoveChild, 24, ++/*123402*/ OPC_CheckInteger, 1, ++/*123404*/ OPC_CheckType, MVT::i32, ++/*123406*/ OPC_MoveParent, ++/*123407*/ OPC_MoveChild, 25, ++/*123409*/ OPC_CheckInteger, 1, ++/*123411*/ OPC_CheckType, MVT::i32, ++/*123413*/ OPC_MoveParent, ++/*123414*/ OPC_MoveChild, 26, ++/*123416*/ OPC_CheckInteger, 1, ++/*123418*/ OPC_CheckType, MVT::i32, ++/*123420*/ OPC_MoveParent, ++/*123421*/ OPC_MoveChild, 27, ++/*123423*/ OPC_CheckInteger, 1, ++/*123425*/ OPC_CheckType, MVT::i32, ++/*123427*/ OPC_MoveParent, ++/*123428*/ OPC_MoveChild, 28, ++/*123430*/ OPC_CheckInteger, 1, ++/*123432*/ OPC_CheckType, MVT::i32, ++/*123434*/ OPC_MoveParent, ++/*123435*/ OPC_MoveChild, 29, ++/*123437*/ OPC_CheckInteger, 1, ++/*123439*/ OPC_CheckType, MVT::i32, ++/*123441*/ OPC_MoveParent, ++/*123442*/ OPC_MoveChild, 30, ++/*123444*/ OPC_CheckInteger, 1, ++/*123446*/ OPC_CheckType, MVT::i32, ++/*123448*/ OPC_MoveParent, ++/*123449*/ OPC_MoveChild, 31, ++/*123451*/ OPC_CheckInteger, 1, ++/*123453*/ OPC_CheckType, MVT::i32, ++/*123455*/ OPC_MoveParent, ++/*123456*/ OPC_MoveParent, ++/*123457*/ OPC_MoveParent, ++/*123458*/ OPC_MoveChild1, ++/*123459*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*123462*/ OPC_CheckChild0Integer, 7, ++/*123464*/ OPC_CheckChild0Type, MVT::i32, ++/*123466*/ OPC_CheckChild1Integer, 7, ++/*123468*/ OPC_CheckChild1Type, MVT::i32, ++/*123470*/ OPC_CheckChild2Integer, 7, ++/*123472*/ OPC_CheckChild2Type, MVT::i32, ++/*123474*/ OPC_CheckChild3Integer, 7, ++/*123476*/ OPC_CheckChild3Type, MVT::i32, ++/*123478*/ OPC_CheckChild4Integer, 7, ++/*123480*/ OPC_CheckChild4Type, MVT::i32, ++/*123482*/ OPC_MoveChild5, ++/*123483*/ OPC_CheckInteger, 7, ++/*123485*/ OPC_CheckType, MVT::i32, ++/*123487*/ OPC_MoveParent, ++/*123488*/ OPC_MoveChild6, ++/*123489*/ OPC_CheckInteger, 7, ++/*123491*/ OPC_CheckType, MVT::i32, ++/*123493*/ OPC_MoveParent, ++/*123494*/ OPC_MoveChild7, ++/*123495*/ OPC_CheckInteger, 7, ++/*123497*/ OPC_CheckType, MVT::i32, ++/*123499*/ OPC_MoveParent, ++/*123500*/ OPC_MoveChild, 8, ++/*123502*/ OPC_CheckInteger, 7, ++/*123504*/ OPC_CheckType, MVT::i32, ++/*123506*/ OPC_MoveParent, ++/*123507*/ OPC_MoveChild, 9, ++/*123509*/ OPC_CheckInteger, 7, ++/*123511*/ OPC_CheckType, MVT::i32, ++/*123513*/ OPC_MoveParent, ++/*123514*/ OPC_MoveChild, 10, ++/*123516*/ OPC_CheckInteger, 7, ++/*123518*/ OPC_CheckType, MVT::i32, ++/*123520*/ OPC_MoveParent, ++/*123521*/ OPC_MoveChild, 11, ++/*123523*/ OPC_CheckInteger, 7, ++/*123525*/ OPC_CheckType, MVT::i32, ++/*123527*/ OPC_MoveParent, ++/*123528*/ OPC_MoveChild, 12, ++/*123530*/ OPC_CheckInteger, 7, ++/*123532*/ OPC_CheckType, MVT::i32, ++/*123534*/ OPC_MoveParent, ++/*123535*/ OPC_MoveChild, 13, ++/*123537*/ OPC_CheckInteger, 7, ++/*123539*/ OPC_CheckType, MVT::i32, ++/*123541*/ OPC_MoveParent, ++/*123542*/ OPC_MoveChild, 14, ++/*123544*/ OPC_CheckInteger, 7, ++/*123546*/ OPC_CheckType, MVT::i32, ++/*123548*/ OPC_MoveParent, ++/*123549*/ OPC_MoveChild, 15, ++/*123551*/ OPC_CheckInteger, 7, ++/*123553*/ OPC_CheckType, MVT::i32, ++/*123555*/ OPC_MoveParent, ++/*123556*/ OPC_MoveChild, 16, ++/*123558*/ OPC_CheckInteger, 7, ++/*123560*/ OPC_CheckType, MVT::i32, ++/*123562*/ OPC_MoveParent, ++/*123563*/ OPC_MoveChild, 17, ++/*123565*/ OPC_CheckInteger, 7, ++/*123567*/ OPC_CheckType, MVT::i32, ++/*123569*/ OPC_MoveParent, ++/*123570*/ OPC_MoveChild, 18, ++/*123572*/ OPC_CheckInteger, 7, ++/*123574*/ OPC_CheckType, MVT::i32, ++/*123576*/ OPC_MoveParent, ++/*123577*/ OPC_MoveChild, 19, ++/*123579*/ OPC_CheckInteger, 7, ++/*123581*/ OPC_CheckType, MVT::i32, ++/*123583*/ OPC_MoveParent, ++/*123584*/ OPC_MoveChild, 20, ++/*123586*/ OPC_CheckInteger, 7, ++/*123588*/ OPC_CheckType, MVT::i32, ++/*123590*/ OPC_MoveParent, ++/*123591*/ OPC_MoveChild, 21, ++/*123593*/ OPC_CheckInteger, 7, ++/*123595*/ OPC_CheckType, MVT::i32, ++/*123597*/ OPC_MoveParent, ++/*123598*/ OPC_MoveChild, 22, ++/*123600*/ OPC_CheckInteger, 7, ++/*123602*/ OPC_CheckType, MVT::i32, ++/*123604*/ OPC_MoveParent, ++/*123605*/ OPC_MoveChild, 23, ++/*123607*/ OPC_CheckInteger, 7, ++/*123609*/ OPC_CheckType, MVT::i32, ++/*123611*/ OPC_MoveParent, ++/*123612*/ OPC_MoveChild, 24, ++/*123614*/ OPC_CheckInteger, 7, ++/*123616*/ OPC_CheckType, MVT::i32, ++/*123618*/ OPC_MoveParent, ++/*123619*/ OPC_MoveChild, 25, ++/*123621*/ OPC_CheckInteger, 7, ++/*123623*/ OPC_CheckType, MVT::i32, ++/*123625*/ OPC_MoveParent, ++/*123626*/ OPC_MoveChild, 26, ++/*123628*/ OPC_CheckInteger, 7, ++/*123630*/ OPC_CheckType, MVT::i32, ++/*123632*/ OPC_MoveParent, ++/*123633*/ OPC_MoveChild, 27, ++/*123635*/ OPC_CheckInteger, 7, ++/*123637*/ OPC_CheckType, MVT::i32, ++/*123639*/ OPC_MoveParent, ++/*123640*/ OPC_MoveChild, 28, ++/*123642*/ OPC_CheckInteger, 7, ++/*123644*/ OPC_CheckType, MVT::i32, ++/*123646*/ OPC_MoveParent, ++/*123647*/ OPC_MoveChild, 29, ++/*123649*/ OPC_CheckInteger, 7, ++/*123651*/ OPC_CheckType, MVT::i32, ++/*123653*/ OPC_MoveParent, ++/*123654*/ OPC_MoveChild, 30, ++/*123656*/ OPC_CheckInteger, 7, ++/*123658*/ OPC_CheckType, MVT::i32, ++/*123660*/ OPC_MoveParent, ++/*123661*/ OPC_MoveChild, 31, ++/*123663*/ OPC_CheckInteger, 7, ++/*123665*/ OPC_CheckType, MVT::i32, ++/*123667*/ OPC_MoveParent, ++/*123668*/ OPC_CheckType, MVT::v32i8, ++/*123670*/ OPC_MoveParent, ++/*123671*/ OPC_MoveParent, ++/*123672*/ OPC_MoveParent, ++/*123673*/ OPC_MoveChild1, ++/*123674*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*123677*/ OPC_CheckChild0Integer, 1, ++/*123679*/ OPC_CheckChild0Type, MVT::i32, ++/*123681*/ OPC_CheckChild1Integer, 1, ++/*123683*/ OPC_CheckChild1Type, MVT::i32, ++/*123685*/ OPC_CheckChild2Integer, 1, ++/*123687*/ OPC_CheckChild2Type, MVT::i32, ++/*123689*/ OPC_CheckChild3Integer, 1, ++/*123691*/ OPC_CheckChild3Type, MVT::i32, ++/*123693*/ OPC_CheckChild4Integer, 1, ++/*123695*/ OPC_CheckChild4Type, MVT::i32, ++/*123697*/ OPC_MoveChild5, ++/*123698*/ OPC_CheckInteger, 1, ++/*123700*/ OPC_CheckType, MVT::i32, ++/*123702*/ OPC_MoveParent, ++/*123703*/ OPC_MoveChild6, ++/*123704*/ OPC_CheckInteger, 1, ++/*123706*/ OPC_CheckType, MVT::i32, ++/*123708*/ OPC_MoveParent, ++/*123709*/ OPC_MoveChild7, ++/*123710*/ OPC_CheckInteger, 1, ++/*123712*/ OPC_CheckType, MVT::i32, ++/*123714*/ OPC_MoveParent, ++/*123715*/ OPC_MoveChild, 8, ++/*123717*/ OPC_CheckInteger, 1, ++/*123719*/ OPC_CheckType, MVT::i32, ++/*123721*/ OPC_MoveParent, ++/*123722*/ OPC_MoveChild, 9, ++/*123724*/ OPC_CheckInteger, 1, ++/*123726*/ OPC_CheckType, MVT::i32, ++/*123728*/ OPC_MoveParent, ++/*123729*/ OPC_MoveChild, 10, ++/*123731*/ OPC_CheckInteger, 1, ++/*123733*/ OPC_CheckType, MVT::i32, ++/*123735*/ OPC_MoveParent, ++/*123736*/ OPC_MoveChild, 11, ++/*123738*/ OPC_CheckInteger, 1, ++/*123740*/ OPC_CheckType, MVT::i32, ++/*123742*/ OPC_MoveParent, ++/*123743*/ OPC_MoveChild, 12, ++/*123745*/ OPC_CheckInteger, 1, ++/*123747*/ OPC_CheckType, MVT::i32, ++/*123749*/ OPC_MoveParent, ++/*123750*/ OPC_MoveChild, 13, ++/*123752*/ OPC_CheckInteger, 1, ++/*123754*/ OPC_CheckType, MVT::i32, ++/*123756*/ OPC_MoveParent, ++/*123757*/ OPC_MoveChild, 14, ++/*123759*/ OPC_CheckInteger, 1, ++/*123761*/ OPC_CheckType, MVT::i32, ++/*123763*/ OPC_MoveParent, ++/*123764*/ OPC_MoveChild, 15, ++/*123766*/ OPC_CheckInteger, 1, ++/*123768*/ OPC_CheckType, MVT::i32, ++/*123770*/ OPC_MoveParent, ++/*123771*/ OPC_MoveChild, 16, ++/*123773*/ OPC_CheckInteger, 1, ++/*123775*/ OPC_CheckType, MVT::i32, ++/*123777*/ OPC_MoveParent, ++/*123778*/ OPC_MoveChild, 17, ++/*123780*/ OPC_CheckInteger, 1, ++/*123782*/ OPC_CheckType, MVT::i32, ++/*123784*/ OPC_MoveParent, ++/*123785*/ OPC_MoveChild, 18, ++/*123787*/ OPC_CheckInteger, 1, ++/*123789*/ OPC_CheckType, MVT::i32, ++/*123791*/ OPC_MoveParent, ++/*123792*/ OPC_MoveChild, 19, ++/*123794*/ OPC_CheckInteger, 1, ++/*123796*/ OPC_CheckType, MVT::i32, ++/*123798*/ OPC_MoveParent, ++/*123799*/ OPC_MoveChild, 20, ++/*123801*/ OPC_CheckInteger, 1, ++/*123803*/ OPC_CheckType, MVT::i32, ++/*123805*/ OPC_MoveParent, ++/*123806*/ OPC_MoveChild, 21, ++/*123808*/ OPC_CheckInteger, 1, ++/*123810*/ OPC_CheckType, MVT::i32, ++/*123812*/ OPC_MoveParent, ++/*123813*/ OPC_MoveChild, 22, ++/*123815*/ OPC_CheckInteger, 1, ++/*123817*/ OPC_CheckType, MVT::i32, ++/*123819*/ OPC_MoveParent, ++/*123820*/ OPC_MoveChild, 23, ++/*123822*/ OPC_CheckInteger, 1, ++/*123824*/ OPC_CheckType, MVT::i32, ++/*123826*/ OPC_MoveParent, ++/*123827*/ OPC_MoveChild, 24, ++/*123829*/ OPC_CheckInteger, 1, ++/*123831*/ OPC_CheckType, MVT::i32, ++/*123833*/ OPC_MoveParent, ++/*123834*/ OPC_MoveChild, 25, ++/*123836*/ OPC_CheckInteger, 1, ++/*123838*/ OPC_CheckType, MVT::i32, ++/*123840*/ OPC_MoveParent, ++/*123841*/ OPC_MoveChild, 26, ++/*123843*/ OPC_CheckInteger, 1, ++/*123845*/ OPC_CheckType, MVT::i32, ++/*123847*/ OPC_MoveParent, ++/*123848*/ OPC_MoveChild, 27, ++/*123850*/ OPC_CheckInteger, 1, ++/*123852*/ OPC_CheckType, MVT::i32, ++/*123854*/ OPC_MoveParent, ++/*123855*/ OPC_MoveChild, 28, ++/*123857*/ OPC_CheckInteger, 1, ++/*123859*/ OPC_CheckType, MVT::i32, ++/*123861*/ OPC_MoveParent, ++/*123862*/ OPC_MoveChild, 29, ++/*123864*/ OPC_CheckInteger, 1, ++/*123866*/ OPC_CheckType, MVT::i32, ++/*123868*/ OPC_MoveParent, ++/*123869*/ OPC_MoveChild, 30, ++/*123871*/ OPC_CheckInteger, 1, ++/*123873*/ OPC_CheckType, MVT::i32, ++/*123875*/ OPC_MoveParent, ++/*123876*/ OPC_MoveChild, 31, ++/*123878*/ OPC_CheckInteger, 1, ++/*123880*/ OPC_CheckType, MVT::i32, ++/*123882*/ OPC_MoveParent, ++/*123883*/ OPC_CheckType, MVT::v32i8, ++/*123885*/ OPC_MoveParent, ++/*123886*/ OPC_CheckType, MVT::v32i8, ++/*123888*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*123890*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*123898*/ /*Scope*/ 17|128,5/*657*/, /*->124557*/ ++/*123900*/ OPC_CheckChild0Same, 0, ++/*123902*/ OPC_CheckChild1Same, 1, ++/*123904*/ OPC_MoveParent, ++/*123905*/ OPC_MoveChild1, ++/*123906*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*123909*/ OPC_CheckChild0Integer, 1, ++/*123911*/ OPC_CheckChild0Type, MVT::i32, ++/*123913*/ OPC_CheckChild1Integer, 1, ++/*123915*/ OPC_CheckChild1Type, MVT::i32, ++/*123917*/ OPC_CheckChild2Integer, 1, ++/*123919*/ OPC_CheckChild2Type, MVT::i32, ++/*123921*/ OPC_CheckChild3Integer, 1, ++/*123923*/ OPC_CheckChild3Type, MVT::i32, ++/*123925*/ OPC_CheckChild4Integer, 1, ++/*123927*/ OPC_CheckChild4Type, MVT::i32, ++/*123929*/ OPC_MoveChild5, ++/*123930*/ OPC_CheckInteger, 1, ++/*123932*/ OPC_CheckType, MVT::i32, ++/*123934*/ OPC_MoveParent, ++/*123935*/ OPC_MoveChild6, ++/*123936*/ OPC_CheckInteger, 1, ++/*123938*/ OPC_CheckType, MVT::i32, ++/*123940*/ OPC_MoveParent, ++/*123941*/ OPC_MoveChild7, ++/*123942*/ OPC_CheckInteger, 1, ++/*123944*/ OPC_CheckType, MVT::i32, ++/*123946*/ OPC_MoveParent, ++/*123947*/ OPC_MoveChild, 8, ++/*123949*/ OPC_CheckInteger, 1, ++/*123951*/ OPC_CheckType, MVT::i32, ++/*123953*/ OPC_MoveParent, ++/*123954*/ OPC_MoveChild, 9, ++/*123956*/ OPC_CheckInteger, 1, ++/*123958*/ OPC_CheckType, MVT::i32, ++/*123960*/ OPC_MoveParent, ++/*123961*/ OPC_MoveChild, 10, ++/*123963*/ OPC_CheckInteger, 1, ++/*123965*/ OPC_CheckType, MVT::i32, ++/*123967*/ OPC_MoveParent, ++/*123968*/ OPC_MoveChild, 11, ++/*123970*/ OPC_CheckInteger, 1, ++/*123972*/ OPC_CheckType, MVT::i32, ++/*123974*/ OPC_MoveParent, ++/*123975*/ OPC_MoveChild, 12, ++/*123977*/ OPC_CheckInteger, 1, ++/*123979*/ OPC_CheckType, MVT::i32, ++/*123981*/ OPC_MoveParent, ++/*123982*/ OPC_MoveChild, 13, ++/*123984*/ OPC_CheckInteger, 1, ++/*123986*/ OPC_CheckType, MVT::i32, ++/*123988*/ OPC_MoveParent, ++/*123989*/ OPC_MoveChild, 14, ++/*123991*/ OPC_CheckInteger, 1, ++/*123993*/ OPC_CheckType, MVT::i32, ++/*123995*/ OPC_MoveParent, ++/*123996*/ OPC_MoveChild, 15, ++/*123998*/ OPC_CheckInteger, 1, ++/*124000*/ OPC_CheckType, MVT::i32, ++/*124002*/ OPC_MoveParent, ++/*124003*/ OPC_MoveChild, 16, ++/*124005*/ OPC_CheckInteger, 1, ++/*124007*/ OPC_CheckType, MVT::i32, ++/*124009*/ OPC_MoveParent, ++/*124010*/ OPC_MoveChild, 17, ++/*124012*/ OPC_CheckInteger, 1, ++/*124014*/ OPC_CheckType, MVT::i32, ++/*124016*/ OPC_MoveParent, ++/*124017*/ OPC_MoveChild, 18, ++/*124019*/ OPC_CheckInteger, 1, ++/*124021*/ OPC_CheckType, MVT::i32, ++/*124023*/ OPC_MoveParent, ++/*124024*/ OPC_MoveChild, 19, ++/*124026*/ OPC_CheckInteger, 1, ++/*124028*/ OPC_CheckType, MVT::i32, ++/*124030*/ OPC_MoveParent, ++/*124031*/ OPC_MoveChild, 20, ++/*124033*/ OPC_CheckInteger, 1, ++/*124035*/ OPC_CheckType, MVT::i32, ++/*124037*/ OPC_MoveParent, ++/*124038*/ OPC_MoveChild, 21, ++/*124040*/ OPC_CheckInteger, 1, ++/*124042*/ OPC_CheckType, MVT::i32, ++/*124044*/ OPC_MoveParent, ++/*124045*/ OPC_MoveChild, 22, ++/*124047*/ OPC_CheckInteger, 1, ++/*124049*/ OPC_CheckType, MVT::i32, ++/*124051*/ OPC_MoveParent, ++/*124052*/ OPC_MoveChild, 23, ++/*124054*/ OPC_CheckInteger, 1, ++/*124056*/ OPC_CheckType, MVT::i32, ++/*124058*/ OPC_MoveParent, ++/*124059*/ OPC_MoveChild, 24, ++/*124061*/ OPC_CheckInteger, 1, ++/*124063*/ OPC_CheckType, MVT::i32, ++/*124065*/ OPC_MoveParent, ++/*124066*/ OPC_MoveChild, 25, ++/*124068*/ OPC_CheckInteger, 1, ++/*124070*/ OPC_CheckType, MVT::i32, ++/*124072*/ OPC_MoveParent, ++/*124073*/ OPC_MoveChild, 26, ++/*124075*/ OPC_CheckInteger, 1, ++/*124077*/ OPC_CheckType, MVT::i32, ++/*124079*/ OPC_MoveParent, ++/*124080*/ OPC_MoveChild, 27, ++/*124082*/ OPC_CheckInteger, 1, ++/*124084*/ OPC_CheckType, MVT::i32, ++/*124086*/ OPC_MoveParent, ++/*124087*/ OPC_MoveChild, 28, ++/*124089*/ OPC_CheckInteger, 1, ++/*124091*/ OPC_CheckType, MVT::i32, ++/*124093*/ OPC_MoveParent, ++/*124094*/ OPC_MoveChild, 29, ++/*124096*/ OPC_CheckInteger, 1, ++/*124098*/ OPC_CheckType, MVT::i32, ++/*124100*/ OPC_MoveParent, ++/*124101*/ OPC_MoveChild, 30, ++/*124103*/ OPC_CheckInteger, 1, ++/*124105*/ OPC_CheckType, MVT::i32, ++/*124107*/ OPC_MoveParent, ++/*124108*/ OPC_MoveChild, 31, ++/*124110*/ OPC_CheckInteger, 1, ++/*124112*/ OPC_CheckType, MVT::i32, ++/*124114*/ OPC_MoveParent, ++/*124115*/ OPC_MoveParent, ++/*124116*/ OPC_MoveParent, ++/*124117*/ OPC_MoveChild1, ++/*124118*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*124121*/ OPC_CheckChild0Integer, 7, ++/*124123*/ OPC_CheckChild0Type, MVT::i32, ++/*124125*/ OPC_CheckChild1Integer, 7, ++/*124127*/ OPC_CheckChild1Type, MVT::i32, ++/*124129*/ OPC_CheckChild2Integer, 7, ++/*124131*/ OPC_CheckChild2Type, MVT::i32, ++/*124133*/ OPC_CheckChild3Integer, 7, ++/*124135*/ OPC_CheckChild3Type, MVT::i32, ++/*124137*/ OPC_CheckChild4Integer, 7, ++/*124139*/ OPC_CheckChild4Type, MVT::i32, ++/*124141*/ OPC_MoveChild5, ++/*124142*/ OPC_CheckInteger, 7, ++/*124144*/ OPC_CheckType, MVT::i32, ++/*124146*/ OPC_MoveParent, ++/*124147*/ OPC_MoveChild6, ++/*124148*/ OPC_CheckInteger, 7, ++/*124150*/ OPC_CheckType, MVT::i32, ++/*124152*/ OPC_MoveParent, ++/*124153*/ OPC_MoveChild7, ++/*124154*/ OPC_CheckInteger, 7, ++/*124156*/ OPC_CheckType, MVT::i32, ++/*124158*/ OPC_MoveParent, ++/*124159*/ OPC_MoveChild, 8, ++/*124161*/ OPC_CheckInteger, 7, ++/*124163*/ OPC_CheckType, MVT::i32, ++/*124165*/ OPC_MoveParent, ++/*124166*/ OPC_MoveChild, 9, ++/*124168*/ OPC_CheckInteger, 7, ++/*124170*/ OPC_CheckType, MVT::i32, ++/*124172*/ OPC_MoveParent, ++/*124173*/ OPC_MoveChild, 10, ++/*124175*/ OPC_CheckInteger, 7, ++/*124177*/ OPC_CheckType, MVT::i32, ++/*124179*/ OPC_MoveParent, ++/*124180*/ OPC_MoveChild, 11, ++/*124182*/ OPC_CheckInteger, 7, ++/*124184*/ OPC_CheckType, MVT::i32, ++/*124186*/ OPC_MoveParent, ++/*124187*/ OPC_MoveChild, 12, ++/*124189*/ OPC_CheckInteger, 7, ++/*124191*/ OPC_CheckType, MVT::i32, ++/*124193*/ OPC_MoveParent, ++/*124194*/ OPC_MoveChild, 13, ++/*124196*/ OPC_CheckInteger, 7, ++/*124198*/ OPC_CheckType, MVT::i32, ++/*124200*/ OPC_MoveParent, ++/*124201*/ OPC_MoveChild, 14, ++/*124203*/ OPC_CheckInteger, 7, ++/*124205*/ OPC_CheckType, MVT::i32, ++/*124207*/ OPC_MoveParent, ++/*124208*/ OPC_MoveChild, 15, ++/*124210*/ OPC_CheckInteger, 7, ++/*124212*/ OPC_CheckType, MVT::i32, ++/*124214*/ OPC_MoveParent, ++/*124215*/ OPC_MoveChild, 16, ++/*124217*/ OPC_CheckInteger, 7, ++/*124219*/ OPC_CheckType, MVT::i32, ++/*124221*/ OPC_MoveParent, ++/*124222*/ OPC_MoveChild, 17, ++/*124224*/ OPC_CheckInteger, 7, ++/*124226*/ OPC_CheckType, MVT::i32, ++/*124228*/ OPC_MoveParent, ++/*124229*/ OPC_MoveChild, 18, ++/*124231*/ OPC_CheckInteger, 7, ++/*124233*/ OPC_CheckType, MVT::i32, ++/*124235*/ OPC_MoveParent, ++/*124236*/ OPC_MoveChild, 19, ++/*124238*/ OPC_CheckInteger, 7, ++/*124240*/ OPC_CheckType, MVT::i32, ++/*124242*/ OPC_MoveParent, ++/*124243*/ OPC_MoveChild, 20, ++/*124245*/ OPC_CheckInteger, 7, ++/*124247*/ OPC_CheckType, MVT::i32, ++/*124249*/ OPC_MoveParent, ++/*124250*/ OPC_MoveChild, 21, ++/*124252*/ OPC_CheckInteger, 7, ++/*124254*/ OPC_CheckType, MVT::i32, ++/*124256*/ OPC_MoveParent, ++/*124257*/ OPC_MoveChild, 22, ++/*124259*/ OPC_CheckInteger, 7, ++/*124261*/ OPC_CheckType, MVT::i32, ++/*124263*/ OPC_MoveParent, ++/*124264*/ OPC_MoveChild, 23, ++/*124266*/ OPC_CheckInteger, 7, ++/*124268*/ OPC_CheckType, MVT::i32, ++/*124270*/ OPC_MoveParent, ++/*124271*/ OPC_MoveChild, 24, ++/*124273*/ OPC_CheckInteger, 7, ++/*124275*/ OPC_CheckType, MVT::i32, ++/*124277*/ OPC_MoveParent, ++/*124278*/ OPC_MoveChild, 25, ++/*124280*/ OPC_CheckInteger, 7, ++/*124282*/ OPC_CheckType, MVT::i32, ++/*124284*/ OPC_MoveParent, ++/*124285*/ OPC_MoveChild, 26, ++/*124287*/ OPC_CheckInteger, 7, ++/*124289*/ OPC_CheckType, MVT::i32, ++/*124291*/ OPC_MoveParent, ++/*124292*/ OPC_MoveChild, 27, ++/*124294*/ OPC_CheckInteger, 7, ++/*124296*/ OPC_CheckType, MVT::i32, ++/*124298*/ OPC_MoveParent, ++/*124299*/ OPC_MoveChild, 28, ++/*124301*/ OPC_CheckInteger, 7, ++/*124303*/ OPC_CheckType, MVT::i32, ++/*124305*/ OPC_MoveParent, ++/*124306*/ OPC_MoveChild, 29, ++/*124308*/ OPC_CheckInteger, 7, ++/*124310*/ OPC_CheckType, MVT::i32, ++/*124312*/ OPC_MoveParent, ++/*124313*/ OPC_MoveChild, 30, ++/*124315*/ OPC_CheckInteger, 7, ++/*124317*/ OPC_CheckType, MVT::i32, ++/*124319*/ OPC_MoveParent, ++/*124320*/ OPC_MoveChild, 31, ++/*124322*/ OPC_CheckInteger, 7, ++/*124324*/ OPC_CheckType, MVT::i32, ++/*124326*/ OPC_MoveParent, ++/*124327*/ OPC_CheckType, MVT::v32i8, ++/*124329*/ OPC_MoveParent, ++/*124330*/ OPC_MoveParent, ++/*124331*/ OPC_MoveParent, ++/*124332*/ OPC_MoveChild1, ++/*124333*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*124336*/ OPC_CheckChild0Integer, 1, ++/*124338*/ OPC_CheckChild0Type, MVT::i32, ++/*124340*/ OPC_CheckChild1Integer, 1, ++/*124342*/ OPC_CheckChild1Type, MVT::i32, ++/*124344*/ OPC_CheckChild2Integer, 1, ++/*124346*/ OPC_CheckChild2Type, MVT::i32, ++/*124348*/ OPC_CheckChild3Integer, 1, ++/*124350*/ OPC_CheckChild3Type, MVT::i32, ++/*124352*/ OPC_CheckChild4Integer, 1, ++/*124354*/ OPC_CheckChild4Type, MVT::i32, ++/*124356*/ OPC_MoveChild5, ++/*124357*/ OPC_CheckInteger, 1, ++/*124359*/ OPC_CheckType, MVT::i32, ++/*124361*/ OPC_MoveParent, ++/*124362*/ OPC_MoveChild6, ++/*124363*/ OPC_CheckInteger, 1, ++/*124365*/ OPC_CheckType, MVT::i32, ++/*124367*/ OPC_MoveParent, ++/*124368*/ OPC_MoveChild7, ++/*124369*/ OPC_CheckInteger, 1, ++/*124371*/ OPC_CheckType, MVT::i32, ++/*124373*/ OPC_MoveParent, ++/*124374*/ OPC_MoveChild, 8, ++/*124376*/ OPC_CheckInteger, 1, ++/*124378*/ OPC_CheckType, MVT::i32, ++/*124380*/ OPC_MoveParent, ++/*124381*/ OPC_MoveChild, 9, ++/*124383*/ OPC_CheckInteger, 1, ++/*124385*/ OPC_CheckType, MVT::i32, ++/*124387*/ OPC_MoveParent, ++/*124388*/ OPC_MoveChild, 10, ++/*124390*/ OPC_CheckInteger, 1, ++/*124392*/ OPC_CheckType, MVT::i32, ++/*124394*/ OPC_MoveParent, ++/*124395*/ OPC_MoveChild, 11, ++/*124397*/ OPC_CheckInteger, 1, ++/*124399*/ OPC_CheckType, MVT::i32, ++/*124401*/ OPC_MoveParent, ++/*124402*/ OPC_MoveChild, 12, ++/*124404*/ OPC_CheckInteger, 1, ++/*124406*/ OPC_CheckType, MVT::i32, ++/*124408*/ OPC_MoveParent, ++/*124409*/ OPC_MoveChild, 13, ++/*124411*/ OPC_CheckInteger, 1, ++/*124413*/ OPC_CheckType, MVT::i32, ++/*124415*/ OPC_MoveParent, ++/*124416*/ OPC_MoveChild, 14, ++/*124418*/ OPC_CheckInteger, 1, ++/*124420*/ OPC_CheckType, MVT::i32, ++/*124422*/ OPC_MoveParent, ++/*124423*/ OPC_MoveChild, 15, ++/*124425*/ OPC_CheckInteger, 1, ++/*124427*/ OPC_CheckType, MVT::i32, ++/*124429*/ OPC_MoveParent, ++/*124430*/ OPC_MoveChild, 16, ++/*124432*/ OPC_CheckInteger, 1, ++/*124434*/ OPC_CheckType, MVT::i32, ++/*124436*/ OPC_MoveParent, ++/*124437*/ OPC_MoveChild, 17, ++/*124439*/ OPC_CheckInteger, 1, ++/*124441*/ OPC_CheckType, MVT::i32, ++/*124443*/ OPC_MoveParent, ++/*124444*/ OPC_MoveChild, 18, ++/*124446*/ OPC_CheckInteger, 1, ++/*124448*/ OPC_CheckType, MVT::i32, ++/*124450*/ OPC_MoveParent, ++/*124451*/ OPC_MoveChild, 19, ++/*124453*/ OPC_CheckInteger, 1, ++/*124455*/ OPC_CheckType, MVT::i32, ++/*124457*/ OPC_MoveParent, ++/*124458*/ OPC_MoveChild, 20, ++/*124460*/ OPC_CheckInteger, 1, ++/*124462*/ OPC_CheckType, MVT::i32, ++/*124464*/ OPC_MoveParent, ++/*124465*/ OPC_MoveChild, 21, ++/*124467*/ OPC_CheckInteger, 1, ++/*124469*/ OPC_CheckType, MVT::i32, ++/*124471*/ OPC_MoveParent, ++/*124472*/ OPC_MoveChild, 22, ++/*124474*/ OPC_CheckInteger, 1, ++/*124476*/ OPC_CheckType, MVT::i32, ++/*124478*/ OPC_MoveParent, ++/*124479*/ OPC_MoveChild, 23, ++/*124481*/ OPC_CheckInteger, 1, ++/*124483*/ OPC_CheckType, MVT::i32, ++/*124485*/ OPC_MoveParent, ++/*124486*/ OPC_MoveChild, 24, ++/*124488*/ OPC_CheckInteger, 1, ++/*124490*/ OPC_CheckType, MVT::i32, ++/*124492*/ OPC_MoveParent, ++/*124493*/ OPC_MoveChild, 25, ++/*124495*/ OPC_CheckInteger, 1, ++/*124497*/ OPC_CheckType, MVT::i32, ++/*124499*/ OPC_MoveParent, ++/*124500*/ OPC_MoveChild, 26, ++/*124502*/ OPC_CheckInteger, 1, ++/*124504*/ OPC_CheckType, MVT::i32, ++/*124506*/ OPC_MoveParent, ++/*124507*/ OPC_MoveChild, 27, ++/*124509*/ OPC_CheckInteger, 1, ++/*124511*/ OPC_CheckType, MVT::i32, ++/*124513*/ OPC_MoveParent, ++/*124514*/ OPC_MoveChild, 28, ++/*124516*/ OPC_CheckInteger, 1, ++/*124518*/ OPC_CheckType, MVT::i32, ++/*124520*/ OPC_MoveParent, ++/*124521*/ OPC_MoveChild, 29, ++/*124523*/ OPC_CheckInteger, 1, ++/*124525*/ OPC_CheckType, MVT::i32, ++/*124527*/ OPC_MoveParent, ++/*124528*/ OPC_MoveChild, 30, ++/*124530*/ OPC_CheckInteger, 1, ++/*124532*/ OPC_CheckType, MVT::i32, ++/*124534*/ OPC_MoveParent, ++/*124535*/ OPC_MoveChild, 31, ++/*124537*/ OPC_CheckInteger, 1, ++/*124539*/ OPC_CheckType, MVT::i32, ++/*124541*/ OPC_MoveParent, ++/*124542*/ OPC_CheckType, MVT::v32i8, ++/*124544*/ OPC_MoveParent, ++/*124545*/ OPC_CheckType, MVT::v32i8, ++/*124547*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*124549*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*124557*/ 0, /*End of Scope*/ ++/*124558*/ 0, // EndSwitchOpcode ++/*124559*/ /*Scope*/ 42|128,10/*1322*/, /*->125883*/ ++/*124561*/ OPC_CheckChild0Same, 0, ++/*124563*/ OPC_MoveChild1, ++/*124564*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*124567*/ OPC_Scope, 15|128,5/*655*/, /*->125225*/ // 2 children in Scope ++/*124570*/ OPC_MoveChild0, ++/*124571*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*124574*/ OPC_CheckChild0Integer, 1, ++/*124576*/ OPC_CheckChild0Type, MVT::i32, ++/*124578*/ OPC_CheckChild1Integer, 1, ++/*124580*/ OPC_CheckChild1Type, MVT::i32, ++/*124582*/ OPC_CheckChild2Integer, 1, ++/*124584*/ OPC_CheckChild2Type, MVT::i32, ++/*124586*/ OPC_CheckChild3Integer, 1, ++/*124588*/ OPC_CheckChild3Type, MVT::i32, ++/*124590*/ OPC_CheckChild4Integer, 1, ++/*124592*/ OPC_CheckChild4Type, MVT::i32, ++/*124594*/ OPC_MoveChild5, ++/*124595*/ OPC_CheckInteger, 1, ++/*124597*/ OPC_CheckType, MVT::i32, ++/*124599*/ OPC_MoveParent, ++/*124600*/ OPC_MoveChild6, ++/*124601*/ OPC_CheckInteger, 1, ++/*124603*/ OPC_CheckType, MVT::i32, ++/*124605*/ OPC_MoveParent, ++/*124606*/ OPC_MoveChild7, ++/*124607*/ OPC_CheckInteger, 1, ++/*124609*/ OPC_CheckType, MVT::i32, ++/*124611*/ OPC_MoveParent, ++/*124612*/ OPC_MoveChild, 8, ++/*124614*/ OPC_CheckInteger, 1, ++/*124616*/ OPC_CheckType, MVT::i32, ++/*124618*/ OPC_MoveParent, ++/*124619*/ OPC_MoveChild, 9, ++/*124621*/ OPC_CheckInteger, 1, ++/*124623*/ OPC_CheckType, MVT::i32, ++/*124625*/ OPC_MoveParent, ++/*124626*/ OPC_MoveChild, 10, ++/*124628*/ OPC_CheckInteger, 1, ++/*124630*/ OPC_CheckType, MVT::i32, ++/*124632*/ OPC_MoveParent, ++/*124633*/ OPC_MoveChild, 11, ++/*124635*/ OPC_CheckInteger, 1, ++/*124637*/ OPC_CheckType, MVT::i32, ++/*124639*/ OPC_MoveParent, ++/*124640*/ OPC_MoveChild, 12, ++/*124642*/ OPC_CheckInteger, 1, ++/*124644*/ OPC_CheckType, MVT::i32, ++/*124646*/ OPC_MoveParent, ++/*124647*/ OPC_MoveChild, 13, ++/*124649*/ OPC_CheckInteger, 1, ++/*124651*/ OPC_CheckType, MVT::i32, ++/*124653*/ OPC_MoveParent, ++/*124654*/ OPC_MoveChild, 14, ++/*124656*/ OPC_CheckInteger, 1, ++/*124658*/ OPC_CheckType, MVT::i32, ++/*124660*/ OPC_MoveParent, ++/*124661*/ OPC_MoveChild, 15, ++/*124663*/ OPC_CheckInteger, 1, ++/*124665*/ OPC_CheckType, MVT::i32, ++/*124667*/ OPC_MoveParent, ++/*124668*/ OPC_MoveChild, 16, ++/*124670*/ OPC_CheckInteger, 1, ++/*124672*/ OPC_CheckType, MVT::i32, ++/*124674*/ OPC_MoveParent, ++/*124675*/ OPC_MoveChild, 17, ++/*124677*/ OPC_CheckInteger, 1, ++/*124679*/ OPC_CheckType, MVT::i32, ++/*124681*/ OPC_MoveParent, ++/*124682*/ OPC_MoveChild, 18, ++/*124684*/ OPC_CheckInteger, 1, ++/*124686*/ OPC_CheckType, MVT::i32, ++/*124688*/ OPC_MoveParent, ++/*124689*/ OPC_MoveChild, 19, ++/*124691*/ OPC_CheckInteger, 1, ++/*124693*/ OPC_CheckType, MVT::i32, ++/*124695*/ OPC_MoveParent, ++/*124696*/ OPC_MoveChild, 20, ++/*124698*/ OPC_CheckInteger, 1, ++/*124700*/ OPC_CheckType, MVT::i32, ++/*124702*/ OPC_MoveParent, ++/*124703*/ OPC_MoveChild, 21, ++/*124705*/ OPC_CheckInteger, 1, ++/*124707*/ OPC_CheckType, MVT::i32, ++/*124709*/ OPC_MoveParent, ++/*124710*/ OPC_MoveChild, 22, ++/*124712*/ OPC_CheckInteger, 1, ++/*124714*/ OPC_CheckType, MVT::i32, ++/*124716*/ OPC_MoveParent, ++/*124717*/ OPC_MoveChild, 23, ++/*124719*/ OPC_CheckInteger, 1, ++/*124721*/ OPC_CheckType, MVT::i32, ++/*124723*/ OPC_MoveParent, ++/*124724*/ OPC_MoveChild, 24, ++/*124726*/ OPC_CheckInteger, 1, ++/*124728*/ OPC_CheckType, MVT::i32, ++/*124730*/ OPC_MoveParent, ++/*124731*/ OPC_MoveChild, 25, ++/*124733*/ OPC_CheckInteger, 1, ++/*124735*/ OPC_CheckType, MVT::i32, ++/*124737*/ OPC_MoveParent, ++/*124738*/ OPC_MoveChild, 26, ++/*124740*/ OPC_CheckInteger, 1, ++/*124742*/ OPC_CheckType, MVT::i32, ++/*124744*/ OPC_MoveParent, ++/*124745*/ OPC_MoveChild, 27, ++/*124747*/ OPC_CheckInteger, 1, ++/*124749*/ OPC_CheckType, MVT::i32, ++/*124751*/ OPC_MoveParent, ++/*124752*/ OPC_MoveChild, 28, ++/*124754*/ OPC_CheckInteger, 1, ++/*124756*/ OPC_CheckType, MVT::i32, ++/*124758*/ OPC_MoveParent, ++/*124759*/ OPC_MoveChild, 29, ++/*124761*/ OPC_CheckInteger, 1, ++/*124763*/ OPC_CheckType, MVT::i32, ++/*124765*/ OPC_MoveParent, ++/*124766*/ OPC_MoveChild, 30, ++/*124768*/ OPC_CheckInteger, 1, ++/*124770*/ OPC_CheckType, MVT::i32, ++/*124772*/ OPC_MoveParent, ++/*124773*/ OPC_MoveChild, 31, ++/*124775*/ OPC_CheckInteger, 1, ++/*124777*/ OPC_CheckType, MVT::i32, ++/*124779*/ OPC_MoveParent, ++/*124780*/ OPC_MoveParent, ++/*124781*/ OPC_CheckChild1Same, 1, ++/*124783*/ OPC_MoveParent, ++/*124784*/ OPC_MoveParent, ++/*124785*/ OPC_MoveChild1, ++/*124786*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*124789*/ OPC_CheckChild0Integer, 7, ++/*124791*/ OPC_CheckChild0Type, MVT::i32, ++/*124793*/ OPC_CheckChild1Integer, 7, ++/*124795*/ OPC_CheckChild1Type, MVT::i32, ++/*124797*/ OPC_CheckChild2Integer, 7, ++/*124799*/ OPC_CheckChild2Type, MVT::i32, ++/*124801*/ OPC_CheckChild3Integer, 7, ++/*124803*/ OPC_CheckChild3Type, MVT::i32, ++/*124805*/ OPC_CheckChild4Integer, 7, ++/*124807*/ OPC_CheckChild4Type, MVT::i32, ++/*124809*/ OPC_MoveChild5, ++/*124810*/ OPC_CheckInteger, 7, ++/*124812*/ OPC_CheckType, MVT::i32, ++/*124814*/ OPC_MoveParent, ++/*124815*/ OPC_MoveChild6, ++/*124816*/ OPC_CheckInteger, 7, ++/*124818*/ OPC_CheckType, MVT::i32, ++/*124820*/ OPC_MoveParent, ++/*124821*/ OPC_MoveChild7, ++/*124822*/ OPC_CheckInteger, 7, ++/*124824*/ OPC_CheckType, MVT::i32, ++/*124826*/ OPC_MoveParent, ++/*124827*/ OPC_MoveChild, 8, ++/*124829*/ OPC_CheckInteger, 7, ++/*124831*/ OPC_CheckType, MVT::i32, ++/*124833*/ OPC_MoveParent, ++/*124834*/ OPC_MoveChild, 9, ++/*124836*/ OPC_CheckInteger, 7, ++/*124838*/ OPC_CheckType, MVT::i32, ++/*124840*/ OPC_MoveParent, ++/*124841*/ OPC_MoveChild, 10, ++/*124843*/ OPC_CheckInteger, 7, ++/*124845*/ OPC_CheckType, MVT::i32, ++/*124847*/ OPC_MoveParent, ++/*124848*/ OPC_MoveChild, 11, ++/*124850*/ OPC_CheckInteger, 7, ++/*124852*/ OPC_CheckType, MVT::i32, ++/*124854*/ OPC_MoveParent, ++/*124855*/ OPC_MoveChild, 12, ++/*124857*/ OPC_CheckInteger, 7, ++/*124859*/ OPC_CheckType, MVT::i32, ++/*124861*/ OPC_MoveParent, ++/*124862*/ OPC_MoveChild, 13, ++/*124864*/ OPC_CheckInteger, 7, ++/*124866*/ OPC_CheckType, MVT::i32, ++/*124868*/ OPC_MoveParent, ++/*124869*/ OPC_MoveChild, 14, ++/*124871*/ OPC_CheckInteger, 7, ++/*124873*/ OPC_CheckType, MVT::i32, ++/*124875*/ OPC_MoveParent, ++/*124876*/ OPC_MoveChild, 15, ++/*124878*/ OPC_CheckInteger, 7, ++/*124880*/ OPC_CheckType, MVT::i32, ++/*124882*/ OPC_MoveParent, ++/*124883*/ OPC_MoveChild, 16, ++/*124885*/ OPC_CheckInteger, 7, ++/*124887*/ OPC_CheckType, MVT::i32, ++/*124889*/ OPC_MoveParent, ++/*124890*/ OPC_MoveChild, 17, ++/*124892*/ OPC_CheckInteger, 7, ++/*124894*/ OPC_CheckType, MVT::i32, ++/*124896*/ OPC_MoveParent, ++/*124897*/ OPC_MoveChild, 18, ++/*124899*/ OPC_CheckInteger, 7, ++/*124901*/ OPC_CheckType, MVT::i32, ++/*124903*/ OPC_MoveParent, ++/*124904*/ OPC_MoveChild, 19, ++/*124906*/ OPC_CheckInteger, 7, ++/*124908*/ OPC_CheckType, MVT::i32, ++/*124910*/ OPC_MoveParent, ++/*124911*/ OPC_MoveChild, 20, ++/*124913*/ OPC_CheckInteger, 7, ++/*124915*/ OPC_CheckType, MVT::i32, ++/*124917*/ OPC_MoveParent, ++/*124918*/ OPC_MoveChild, 21, ++/*124920*/ OPC_CheckInteger, 7, ++/*124922*/ OPC_CheckType, MVT::i32, ++/*124924*/ OPC_MoveParent, ++/*124925*/ OPC_MoveChild, 22, ++/*124927*/ OPC_CheckInteger, 7, ++/*124929*/ OPC_CheckType, MVT::i32, ++/*124931*/ OPC_MoveParent, ++/*124932*/ OPC_MoveChild, 23, ++/*124934*/ OPC_CheckInteger, 7, ++/*124936*/ OPC_CheckType, MVT::i32, ++/*124938*/ OPC_MoveParent, ++/*124939*/ OPC_MoveChild, 24, ++/*124941*/ OPC_CheckInteger, 7, ++/*124943*/ OPC_CheckType, MVT::i32, ++/*124945*/ OPC_MoveParent, ++/*124946*/ OPC_MoveChild, 25, ++/*124948*/ OPC_CheckInteger, 7, ++/*124950*/ OPC_CheckType, MVT::i32, ++/*124952*/ OPC_MoveParent, ++/*124953*/ OPC_MoveChild, 26, ++/*124955*/ OPC_CheckInteger, 7, ++/*124957*/ OPC_CheckType, MVT::i32, ++/*124959*/ OPC_MoveParent, ++/*124960*/ OPC_MoveChild, 27, ++/*124962*/ OPC_CheckInteger, 7, ++/*124964*/ OPC_CheckType, MVT::i32, ++/*124966*/ OPC_MoveParent, ++/*124967*/ OPC_MoveChild, 28, ++/*124969*/ OPC_CheckInteger, 7, ++/*124971*/ OPC_CheckType, MVT::i32, ++/*124973*/ OPC_MoveParent, ++/*124974*/ OPC_MoveChild, 29, ++/*124976*/ OPC_CheckInteger, 7, ++/*124978*/ OPC_CheckType, MVT::i32, ++/*124980*/ OPC_MoveParent, ++/*124981*/ OPC_MoveChild, 30, ++/*124983*/ OPC_CheckInteger, 7, ++/*124985*/ OPC_CheckType, MVT::i32, ++/*124987*/ OPC_MoveParent, ++/*124988*/ OPC_MoveChild, 31, ++/*124990*/ OPC_CheckInteger, 7, ++/*124992*/ OPC_CheckType, MVT::i32, ++/*124994*/ OPC_MoveParent, ++/*124995*/ OPC_CheckType, MVT::v32i8, ++/*124997*/ OPC_MoveParent, ++/*124998*/ OPC_MoveParent, ++/*124999*/ OPC_MoveParent, ++/*125000*/ OPC_MoveChild1, ++/*125001*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*125004*/ OPC_CheckChild0Integer, 1, ++/*125006*/ OPC_CheckChild0Type, MVT::i32, ++/*125008*/ OPC_CheckChild1Integer, 1, ++/*125010*/ OPC_CheckChild1Type, MVT::i32, ++/*125012*/ OPC_CheckChild2Integer, 1, ++/*125014*/ OPC_CheckChild2Type, MVT::i32, ++/*125016*/ OPC_CheckChild3Integer, 1, ++/*125018*/ OPC_CheckChild3Type, MVT::i32, ++/*125020*/ OPC_CheckChild4Integer, 1, ++/*125022*/ OPC_CheckChild4Type, MVT::i32, ++/*125024*/ OPC_MoveChild5, ++/*125025*/ OPC_CheckInteger, 1, ++/*125027*/ OPC_CheckType, MVT::i32, ++/*125029*/ OPC_MoveParent, ++/*125030*/ OPC_MoveChild6, ++/*125031*/ OPC_CheckInteger, 1, ++/*125033*/ OPC_CheckType, MVT::i32, ++/*125035*/ OPC_MoveParent, ++/*125036*/ OPC_MoveChild7, ++/*125037*/ OPC_CheckInteger, 1, ++/*125039*/ OPC_CheckType, MVT::i32, ++/*125041*/ OPC_MoveParent, ++/*125042*/ OPC_MoveChild, 8, ++/*125044*/ OPC_CheckInteger, 1, ++/*125046*/ OPC_CheckType, MVT::i32, ++/*125048*/ OPC_MoveParent, ++/*125049*/ OPC_MoveChild, 9, ++/*125051*/ OPC_CheckInteger, 1, ++/*125053*/ OPC_CheckType, MVT::i32, ++/*125055*/ OPC_MoveParent, ++/*125056*/ OPC_MoveChild, 10, ++/*125058*/ OPC_CheckInteger, 1, ++/*125060*/ OPC_CheckType, MVT::i32, ++/*125062*/ OPC_MoveParent, ++/*125063*/ OPC_MoveChild, 11, ++/*125065*/ OPC_CheckInteger, 1, ++/*125067*/ OPC_CheckType, MVT::i32, ++/*125069*/ OPC_MoveParent, ++/*125070*/ OPC_MoveChild, 12, ++/*125072*/ OPC_CheckInteger, 1, ++/*125074*/ OPC_CheckType, MVT::i32, ++/*125076*/ OPC_MoveParent, ++/*125077*/ OPC_MoveChild, 13, ++/*125079*/ OPC_CheckInteger, 1, ++/*125081*/ OPC_CheckType, MVT::i32, ++/*125083*/ OPC_MoveParent, ++/*125084*/ OPC_MoveChild, 14, ++/*125086*/ OPC_CheckInteger, 1, ++/*125088*/ OPC_CheckType, MVT::i32, ++/*125090*/ OPC_MoveParent, ++/*125091*/ OPC_MoveChild, 15, ++/*125093*/ OPC_CheckInteger, 1, ++/*125095*/ OPC_CheckType, MVT::i32, ++/*125097*/ OPC_MoveParent, ++/*125098*/ OPC_MoveChild, 16, ++/*125100*/ OPC_CheckInteger, 1, ++/*125102*/ OPC_CheckType, MVT::i32, ++/*125104*/ OPC_MoveParent, ++/*125105*/ OPC_MoveChild, 17, ++/*125107*/ OPC_CheckInteger, 1, ++/*125109*/ OPC_CheckType, MVT::i32, ++/*125111*/ OPC_MoveParent, ++/*125112*/ OPC_MoveChild, 18, ++/*125114*/ OPC_CheckInteger, 1, ++/*125116*/ OPC_CheckType, MVT::i32, ++/*125118*/ OPC_MoveParent, ++/*125119*/ OPC_MoveChild, 19, ++/*125121*/ OPC_CheckInteger, 1, ++/*125123*/ OPC_CheckType, MVT::i32, ++/*125125*/ OPC_MoveParent, ++/*125126*/ OPC_MoveChild, 20, ++/*125128*/ OPC_CheckInteger, 1, ++/*125130*/ OPC_CheckType, MVT::i32, ++/*125132*/ OPC_MoveParent, ++/*125133*/ OPC_MoveChild, 21, ++/*125135*/ OPC_CheckInteger, 1, ++/*125137*/ OPC_CheckType, MVT::i32, ++/*125139*/ OPC_MoveParent, ++/*125140*/ OPC_MoveChild, 22, ++/*125142*/ OPC_CheckInteger, 1, ++/*125144*/ OPC_CheckType, MVT::i32, ++/*125146*/ OPC_MoveParent, ++/*125147*/ OPC_MoveChild, 23, ++/*125149*/ OPC_CheckInteger, 1, ++/*125151*/ OPC_CheckType, MVT::i32, ++/*125153*/ OPC_MoveParent, ++/*125154*/ OPC_MoveChild, 24, ++/*125156*/ OPC_CheckInteger, 1, ++/*125158*/ OPC_CheckType, MVT::i32, ++/*125160*/ OPC_MoveParent, ++/*125161*/ OPC_MoveChild, 25, ++/*125163*/ OPC_CheckInteger, 1, ++/*125165*/ OPC_CheckType, MVT::i32, ++/*125167*/ OPC_MoveParent, ++/*125168*/ OPC_MoveChild, 26, ++/*125170*/ OPC_CheckInteger, 1, ++/*125172*/ OPC_CheckType, MVT::i32, ++/*125174*/ OPC_MoveParent, ++/*125175*/ OPC_MoveChild, 27, ++/*125177*/ OPC_CheckInteger, 1, ++/*125179*/ OPC_CheckType, MVT::i32, ++/*125181*/ OPC_MoveParent, ++/*125182*/ OPC_MoveChild, 28, ++/*125184*/ OPC_CheckInteger, 1, ++/*125186*/ OPC_CheckType, MVT::i32, ++/*125188*/ OPC_MoveParent, ++/*125189*/ OPC_MoveChild, 29, ++/*125191*/ OPC_CheckInteger, 1, ++/*125193*/ OPC_CheckType, MVT::i32, ++/*125195*/ OPC_MoveParent, ++/*125196*/ OPC_MoveChild, 30, ++/*125198*/ OPC_CheckInteger, 1, ++/*125200*/ OPC_CheckType, MVT::i32, ++/*125202*/ OPC_MoveParent, ++/*125203*/ OPC_MoveChild, 31, ++/*125205*/ OPC_CheckInteger, 1, ++/*125207*/ OPC_CheckType, MVT::i32, ++/*125209*/ OPC_MoveParent, ++/*125210*/ OPC_CheckType, MVT::v32i8, ++/*125212*/ OPC_MoveParent, ++/*125213*/ OPC_CheckType, MVT::v32i8, ++/*125215*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*125217*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*125225*/ /*Scope*/ 15|128,5/*655*/, /*->125882*/ ++/*125227*/ OPC_CheckChild0Same, 1, ++/*125229*/ OPC_MoveChild1, ++/*125230*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*125233*/ OPC_CheckChild0Integer, 1, ++/*125235*/ OPC_CheckChild0Type, MVT::i32, ++/*125237*/ OPC_CheckChild1Integer, 1, ++/*125239*/ OPC_CheckChild1Type, MVT::i32, ++/*125241*/ OPC_CheckChild2Integer, 1, ++/*125243*/ OPC_CheckChild2Type, MVT::i32, ++/*125245*/ OPC_CheckChild3Integer, 1, ++/*125247*/ OPC_CheckChild3Type, MVT::i32, ++/*125249*/ OPC_CheckChild4Integer, 1, ++/*125251*/ OPC_CheckChild4Type, MVT::i32, ++/*125253*/ OPC_MoveChild5, ++/*125254*/ OPC_CheckInteger, 1, ++/*125256*/ OPC_CheckType, MVT::i32, ++/*125258*/ OPC_MoveParent, ++/*125259*/ OPC_MoveChild6, ++/*125260*/ OPC_CheckInteger, 1, ++/*125262*/ OPC_CheckType, MVT::i32, ++/*125264*/ OPC_MoveParent, ++/*125265*/ OPC_MoveChild7, ++/*125266*/ OPC_CheckInteger, 1, ++/*125268*/ OPC_CheckType, MVT::i32, ++/*125270*/ OPC_MoveParent, ++/*125271*/ OPC_MoveChild, 8, ++/*125273*/ OPC_CheckInteger, 1, ++/*125275*/ OPC_CheckType, MVT::i32, ++/*125277*/ OPC_MoveParent, ++/*125278*/ OPC_MoveChild, 9, ++/*125280*/ OPC_CheckInteger, 1, ++/*125282*/ OPC_CheckType, MVT::i32, ++/*125284*/ OPC_MoveParent, ++/*125285*/ OPC_MoveChild, 10, ++/*125287*/ OPC_CheckInteger, 1, ++/*125289*/ OPC_CheckType, MVT::i32, ++/*125291*/ OPC_MoveParent, ++/*125292*/ OPC_MoveChild, 11, ++/*125294*/ OPC_CheckInteger, 1, ++/*125296*/ OPC_CheckType, MVT::i32, ++/*125298*/ OPC_MoveParent, ++/*125299*/ OPC_MoveChild, 12, ++/*125301*/ OPC_CheckInteger, 1, ++/*125303*/ OPC_CheckType, MVT::i32, ++/*125305*/ OPC_MoveParent, ++/*125306*/ OPC_MoveChild, 13, ++/*125308*/ OPC_CheckInteger, 1, ++/*125310*/ OPC_CheckType, MVT::i32, ++/*125312*/ OPC_MoveParent, ++/*125313*/ OPC_MoveChild, 14, ++/*125315*/ OPC_CheckInteger, 1, ++/*125317*/ OPC_CheckType, MVT::i32, ++/*125319*/ OPC_MoveParent, ++/*125320*/ OPC_MoveChild, 15, ++/*125322*/ OPC_CheckInteger, 1, ++/*125324*/ OPC_CheckType, MVT::i32, ++/*125326*/ OPC_MoveParent, ++/*125327*/ OPC_MoveChild, 16, ++/*125329*/ OPC_CheckInteger, 1, ++/*125331*/ OPC_CheckType, MVT::i32, ++/*125333*/ OPC_MoveParent, ++/*125334*/ OPC_MoveChild, 17, ++/*125336*/ OPC_CheckInteger, 1, ++/*125338*/ OPC_CheckType, MVT::i32, ++/*125340*/ OPC_MoveParent, ++/*125341*/ OPC_MoveChild, 18, ++/*125343*/ OPC_CheckInteger, 1, ++/*125345*/ OPC_CheckType, MVT::i32, ++/*125347*/ OPC_MoveParent, ++/*125348*/ OPC_MoveChild, 19, ++/*125350*/ OPC_CheckInteger, 1, ++/*125352*/ OPC_CheckType, MVT::i32, ++/*125354*/ OPC_MoveParent, ++/*125355*/ OPC_MoveChild, 20, ++/*125357*/ OPC_CheckInteger, 1, ++/*125359*/ OPC_CheckType, MVT::i32, ++/*125361*/ OPC_MoveParent, ++/*125362*/ OPC_MoveChild, 21, ++/*125364*/ OPC_CheckInteger, 1, ++/*125366*/ OPC_CheckType, MVT::i32, ++/*125368*/ OPC_MoveParent, ++/*125369*/ OPC_MoveChild, 22, ++/*125371*/ OPC_CheckInteger, 1, ++/*125373*/ OPC_CheckType, MVT::i32, ++/*125375*/ OPC_MoveParent, ++/*125376*/ OPC_MoveChild, 23, ++/*125378*/ OPC_CheckInteger, 1, ++/*125380*/ OPC_CheckType, MVT::i32, ++/*125382*/ OPC_MoveParent, ++/*125383*/ OPC_MoveChild, 24, ++/*125385*/ OPC_CheckInteger, 1, ++/*125387*/ OPC_CheckType, MVT::i32, ++/*125389*/ OPC_MoveParent, ++/*125390*/ OPC_MoveChild, 25, ++/*125392*/ OPC_CheckInteger, 1, ++/*125394*/ OPC_CheckType, MVT::i32, ++/*125396*/ OPC_MoveParent, ++/*125397*/ OPC_MoveChild, 26, ++/*125399*/ OPC_CheckInteger, 1, ++/*125401*/ OPC_CheckType, MVT::i32, ++/*125403*/ OPC_MoveParent, ++/*125404*/ OPC_MoveChild, 27, ++/*125406*/ OPC_CheckInteger, 1, ++/*125408*/ OPC_CheckType, MVT::i32, ++/*125410*/ OPC_MoveParent, ++/*125411*/ OPC_MoveChild, 28, ++/*125413*/ OPC_CheckInteger, 1, ++/*125415*/ OPC_CheckType, MVT::i32, ++/*125417*/ OPC_MoveParent, ++/*125418*/ OPC_MoveChild, 29, ++/*125420*/ OPC_CheckInteger, 1, ++/*125422*/ OPC_CheckType, MVT::i32, ++/*125424*/ OPC_MoveParent, ++/*125425*/ OPC_MoveChild, 30, ++/*125427*/ OPC_CheckInteger, 1, ++/*125429*/ OPC_CheckType, MVT::i32, ++/*125431*/ OPC_MoveParent, ++/*125432*/ OPC_MoveChild, 31, ++/*125434*/ OPC_CheckInteger, 1, ++/*125436*/ OPC_CheckType, MVT::i32, ++/*125438*/ OPC_MoveParent, ++/*125439*/ OPC_MoveParent, ++/*125440*/ OPC_MoveParent, ++/*125441*/ OPC_MoveParent, ++/*125442*/ OPC_MoveChild1, ++/*125443*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*125446*/ OPC_CheckChild0Integer, 7, ++/*125448*/ OPC_CheckChild0Type, MVT::i32, ++/*125450*/ OPC_CheckChild1Integer, 7, ++/*125452*/ OPC_CheckChild1Type, MVT::i32, ++/*125454*/ OPC_CheckChild2Integer, 7, ++/*125456*/ OPC_CheckChild2Type, MVT::i32, ++/*125458*/ OPC_CheckChild3Integer, 7, ++/*125460*/ OPC_CheckChild3Type, MVT::i32, ++/*125462*/ OPC_CheckChild4Integer, 7, ++/*125464*/ OPC_CheckChild4Type, MVT::i32, ++/*125466*/ OPC_MoveChild5, ++/*125467*/ OPC_CheckInteger, 7, ++/*125469*/ OPC_CheckType, MVT::i32, ++/*125471*/ OPC_MoveParent, ++/*125472*/ OPC_MoveChild6, ++/*125473*/ OPC_CheckInteger, 7, ++/*125475*/ OPC_CheckType, MVT::i32, ++/*125477*/ OPC_MoveParent, ++/*125478*/ OPC_MoveChild7, ++/*125479*/ OPC_CheckInteger, 7, ++/*125481*/ OPC_CheckType, MVT::i32, ++/*125483*/ OPC_MoveParent, ++/*125484*/ OPC_MoveChild, 8, ++/*125486*/ OPC_CheckInteger, 7, ++/*125488*/ OPC_CheckType, MVT::i32, ++/*125490*/ OPC_MoveParent, ++/*125491*/ OPC_MoveChild, 9, ++/*125493*/ OPC_CheckInteger, 7, ++/*125495*/ OPC_CheckType, MVT::i32, ++/*125497*/ OPC_MoveParent, ++/*125498*/ OPC_MoveChild, 10, ++/*125500*/ OPC_CheckInteger, 7, ++/*125502*/ OPC_CheckType, MVT::i32, ++/*125504*/ OPC_MoveParent, ++/*125505*/ OPC_MoveChild, 11, ++/*125507*/ OPC_CheckInteger, 7, ++/*125509*/ OPC_CheckType, MVT::i32, ++/*125511*/ OPC_MoveParent, ++/*125512*/ OPC_MoveChild, 12, ++/*125514*/ OPC_CheckInteger, 7, ++/*125516*/ OPC_CheckType, MVT::i32, ++/*125518*/ OPC_MoveParent, ++/*125519*/ OPC_MoveChild, 13, ++/*125521*/ OPC_CheckInteger, 7, ++/*125523*/ OPC_CheckType, MVT::i32, ++/*125525*/ OPC_MoveParent, ++/*125526*/ OPC_MoveChild, 14, ++/*125528*/ OPC_CheckInteger, 7, ++/*125530*/ OPC_CheckType, MVT::i32, ++/*125532*/ OPC_MoveParent, ++/*125533*/ OPC_MoveChild, 15, ++/*125535*/ OPC_CheckInteger, 7, ++/*125537*/ OPC_CheckType, MVT::i32, ++/*125539*/ OPC_MoveParent, ++/*125540*/ OPC_MoveChild, 16, ++/*125542*/ OPC_CheckInteger, 7, ++/*125544*/ OPC_CheckType, MVT::i32, ++/*125546*/ OPC_MoveParent, ++/*125547*/ OPC_MoveChild, 17, ++/*125549*/ OPC_CheckInteger, 7, ++/*125551*/ OPC_CheckType, MVT::i32, ++/*125553*/ OPC_MoveParent, ++/*125554*/ OPC_MoveChild, 18, ++/*125556*/ OPC_CheckInteger, 7, ++/*125558*/ OPC_CheckType, MVT::i32, ++/*125560*/ OPC_MoveParent, ++/*125561*/ OPC_MoveChild, 19, ++/*125563*/ OPC_CheckInteger, 7, ++/*125565*/ OPC_CheckType, MVT::i32, ++/*125567*/ OPC_MoveParent, ++/*125568*/ OPC_MoveChild, 20, ++/*125570*/ OPC_CheckInteger, 7, ++/*125572*/ OPC_CheckType, MVT::i32, ++/*125574*/ OPC_MoveParent, ++/*125575*/ OPC_MoveChild, 21, ++/*125577*/ OPC_CheckInteger, 7, ++/*125579*/ OPC_CheckType, MVT::i32, ++/*125581*/ OPC_MoveParent, ++/*125582*/ OPC_MoveChild, 22, ++/*125584*/ OPC_CheckInteger, 7, ++/*125586*/ OPC_CheckType, MVT::i32, ++/*125588*/ OPC_MoveParent, ++/*125589*/ OPC_MoveChild, 23, ++/*125591*/ OPC_CheckInteger, 7, ++/*125593*/ OPC_CheckType, MVT::i32, ++/*125595*/ OPC_MoveParent, ++/*125596*/ OPC_MoveChild, 24, ++/*125598*/ OPC_CheckInteger, 7, ++/*125600*/ OPC_CheckType, MVT::i32, ++/*125602*/ OPC_MoveParent, ++/*125603*/ OPC_MoveChild, 25, ++/*125605*/ OPC_CheckInteger, 7, ++/*125607*/ OPC_CheckType, MVT::i32, ++/*125609*/ OPC_MoveParent, ++/*125610*/ OPC_MoveChild, 26, ++/*125612*/ OPC_CheckInteger, 7, ++/*125614*/ OPC_CheckType, MVT::i32, ++/*125616*/ OPC_MoveParent, ++/*125617*/ OPC_MoveChild, 27, ++/*125619*/ OPC_CheckInteger, 7, ++/*125621*/ OPC_CheckType, MVT::i32, ++/*125623*/ OPC_MoveParent, ++/*125624*/ OPC_MoveChild, 28, ++/*125626*/ OPC_CheckInteger, 7, ++/*125628*/ OPC_CheckType, MVT::i32, ++/*125630*/ OPC_MoveParent, ++/*125631*/ OPC_MoveChild, 29, ++/*125633*/ OPC_CheckInteger, 7, ++/*125635*/ OPC_CheckType, MVT::i32, ++/*125637*/ OPC_MoveParent, ++/*125638*/ OPC_MoveChild, 30, ++/*125640*/ OPC_CheckInteger, 7, ++/*125642*/ OPC_CheckType, MVT::i32, ++/*125644*/ OPC_MoveParent, ++/*125645*/ OPC_MoveChild, 31, ++/*125647*/ OPC_CheckInteger, 7, ++/*125649*/ OPC_CheckType, MVT::i32, ++/*125651*/ OPC_MoveParent, ++/*125652*/ OPC_CheckType, MVT::v32i8, ++/*125654*/ OPC_MoveParent, ++/*125655*/ OPC_MoveParent, ++/*125656*/ OPC_MoveParent, ++/*125657*/ OPC_MoveChild1, ++/*125658*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*125661*/ OPC_CheckChild0Integer, 1, ++/*125663*/ OPC_CheckChild0Type, MVT::i32, ++/*125665*/ OPC_CheckChild1Integer, 1, ++/*125667*/ OPC_CheckChild1Type, MVT::i32, ++/*125669*/ OPC_CheckChild2Integer, 1, ++/*125671*/ OPC_CheckChild2Type, MVT::i32, ++/*125673*/ OPC_CheckChild3Integer, 1, ++/*125675*/ OPC_CheckChild3Type, MVT::i32, ++/*125677*/ OPC_CheckChild4Integer, 1, ++/*125679*/ OPC_CheckChild4Type, MVT::i32, ++/*125681*/ OPC_MoveChild5, ++/*125682*/ OPC_CheckInteger, 1, ++/*125684*/ OPC_CheckType, MVT::i32, ++/*125686*/ OPC_MoveParent, ++/*125687*/ OPC_MoveChild6, ++/*125688*/ OPC_CheckInteger, 1, ++/*125690*/ OPC_CheckType, MVT::i32, ++/*125692*/ OPC_MoveParent, ++/*125693*/ OPC_MoveChild7, ++/*125694*/ OPC_CheckInteger, 1, ++/*125696*/ OPC_CheckType, MVT::i32, ++/*125698*/ OPC_MoveParent, ++/*125699*/ OPC_MoveChild, 8, ++/*125701*/ OPC_CheckInteger, 1, ++/*125703*/ OPC_CheckType, MVT::i32, ++/*125705*/ OPC_MoveParent, ++/*125706*/ OPC_MoveChild, 9, ++/*125708*/ OPC_CheckInteger, 1, ++/*125710*/ OPC_CheckType, MVT::i32, ++/*125712*/ OPC_MoveParent, ++/*125713*/ OPC_MoveChild, 10, ++/*125715*/ OPC_CheckInteger, 1, ++/*125717*/ OPC_CheckType, MVT::i32, ++/*125719*/ OPC_MoveParent, ++/*125720*/ OPC_MoveChild, 11, ++/*125722*/ OPC_CheckInteger, 1, ++/*125724*/ OPC_CheckType, MVT::i32, ++/*125726*/ OPC_MoveParent, ++/*125727*/ OPC_MoveChild, 12, ++/*125729*/ OPC_CheckInteger, 1, ++/*125731*/ OPC_CheckType, MVT::i32, ++/*125733*/ OPC_MoveParent, ++/*125734*/ OPC_MoveChild, 13, ++/*125736*/ OPC_CheckInteger, 1, ++/*125738*/ OPC_CheckType, MVT::i32, ++/*125740*/ OPC_MoveParent, ++/*125741*/ OPC_MoveChild, 14, ++/*125743*/ OPC_CheckInteger, 1, ++/*125745*/ OPC_CheckType, MVT::i32, ++/*125747*/ OPC_MoveParent, ++/*125748*/ OPC_MoveChild, 15, ++/*125750*/ OPC_CheckInteger, 1, ++/*125752*/ OPC_CheckType, MVT::i32, ++/*125754*/ OPC_MoveParent, ++/*125755*/ OPC_MoveChild, 16, ++/*125757*/ OPC_CheckInteger, 1, ++/*125759*/ OPC_CheckType, MVT::i32, ++/*125761*/ OPC_MoveParent, ++/*125762*/ OPC_MoveChild, 17, ++/*125764*/ OPC_CheckInteger, 1, ++/*125766*/ OPC_CheckType, MVT::i32, ++/*125768*/ OPC_MoveParent, ++/*125769*/ OPC_MoveChild, 18, ++/*125771*/ OPC_CheckInteger, 1, ++/*125773*/ OPC_CheckType, MVT::i32, ++/*125775*/ OPC_MoveParent, ++/*125776*/ OPC_MoveChild, 19, ++/*125778*/ OPC_CheckInteger, 1, ++/*125780*/ OPC_CheckType, MVT::i32, ++/*125782*/ OPC_MoveParent, ++/*125783*/ OPC_MoveChild, 20, ++/*125785*/ OPC_CheckInteger, 1, ++/*125787*/ OPC_CheckType, MVT::i32, ++/*125789*/ OPC_MoveParent, ++/*125790*/ OPC_MoveChild, 21, ++/*125792*/ OPC_CheckInteger, 1, ++/*125794*/ OPC_CheckType, MVT::i32, ++/*125796*/ OPC_MoveParent, ++/*125797*/ OPC_MoveChild, 22, ++/*125799*/ OPC_CheckInteger, 1, ++/*125801*/ OPC_CheckType, MVT::i32, ++/*125803*/ OPC_MoveParent, ++/*125804*/ OPC_MoveChild, 23, ++/*125806*/ OPC_CheckInteger, 1, ++/*125808*/ OPC_CheckType, MVT::i32, ++/*125810*/ OPC_MoveParent, ++/*125811*/ OPC_MoveChild, 24, ++/*125813*/ OPC_CheckInteger, 1, ++/*125815*/ OPC_CheckType, MVT::i32, ++/*125817*/ OPC_MoveParent, ++/*125818*/ OPC_MoveChild, 25, ++/*125820*/ OPC_CheckInteger, 1, ++/*125822*/ OPC_CheckType, MVT::i32, ++/*125824*/ OPC_MoveParent, ++/*125825*/ OPC_MoveChild, 26, ++/*125827*/ OPC_CheckInteger, 1, ++/*125829*/ OPC_CheckType, MVT::i32, ++/*125831*/ OPC_MoveParent, ++/*125832*/ OPC_MoveChild, 27, ++/*125834*/ OPC_CheckInteger, 1, ++/*125836*/ OPC_CheckType, MVT::i32, ++/*125838*/ OPC_MoveParent, ++/*125839*/ OPC_MoveChild, 28, ++/*125841*/ OPC_CheckInteger, 1, ++/*125843*/ OPC_CheckType, MVT::i32, ++/*125845*/ OPC_MoveParent, ++/*125846*/ OPC_MoveChild, 29, ++/*125848*/ OPC_CheckInteger, 1, ++/*125850*/ OPC_CheckType, MVT::i32, ++/*125852*/ OPC_MoveParent, ++/*125853*/ OPC_MoveChild, 30, ++/*125855*/ OPC_CheckInteger, 1, ++/*125857*/ OPC_CheckType, MVT::i32, ++/*125859*/ OPC_MoveParent, ++/*125860*/ OPC_MoveChild, 31, ++/*125862*/ OPC_CheckInteger, 1, ++/*125864*/ OPC_CheckType, MVT::i32, ++/*125866*/ OPC_MoveParent, ++/*125867*/ OPC_CheckType, MVT::v32i8, ++/*125869*/ OPC_MoveParent, ++/*125870*/ OPC_CheckType, MVT::v32i8, ++/*125872*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*125874*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*125882*/ 0, /*End of Scope*/ ++/*125883*/ /*Scope*/ 42|128,10/*1322*/, /*->127207*/ ++/*125885*/ OPC_CheckChild0Same, 1, ++/*125887*/ OPC_MoveChild1, ++/*125888*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*125891*/ OPC_Scope, 15|128,5/*655*/, /*->126549*/ // 2 children in Scope ++/*125894*/ OPC_MoveChild0, ++/*125895*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*125898*/ OPC_CheckChild0Integer, 1, ++/*125900*/ OPC_CheckChild0Type, MVT::i32, ++/*125902*/ OPC_CheckChild1Integer, 1, ++/*125904*/ OPC_CheckChild1Type, MVT::i32, ++/*125906*/ OPC_CheckChild2Integer, 1, ++/*125908*/ OPC_CheckChild2Type, MVT::i32, ++/*125910*/ OPC_CheckChild3Integer, 1, ++/*125912*/ OPC_CheckChild3Type, MVT::i32, ++/*125914*/ OPC_CheckChild4Integer, 1, ++/*125916*/ OPC_CheckChild4Type, MVT::i32, ++/*125918*/ OPC_MoveChild5, ++/*125919*/ OPC_CheckInteger, 1, ++/*125921*/ OPC_CheckType, MVT::i32, ++/*125923*/ OPC_MoveParent, ++/*125924*/ OPC_MoveChild6, ++/*125925*/ OPC_CheckInteger, 1, ++/*125927*/ OPC_CheckType, MVT::i32, ++/*125929*/ OPC_MoveParent, ++/*125930*/ OPC_MoveChild7, ++/*125931*/ OPC_CheckInteger, 1, ++/*125933*/ OPC_CheckType, MVT::i32, ++/*125935*/ OPC_MoveParent, ++/*125936*/ OPC_MoveChild, 8, ++/*125938*/ OPC_CheckInteger, 1, ++/*125940*/ OPC_CheckType, MVT::i32, ++/*125942*/ OPC_MoveParent, ++/*125943*/ OPC_MoveChild, 9, ++/*125945*/ OPC_CheckInteger, 1, ++/*125947*/ OPC_CheckType, MVT::i32, ++/*125949*/ OPC_MoveParent, ++/*125950*/ OPC_MoveChild, 10, ++/*125952*/ OPC_CheckInteger, 1, ++/*125954*/ OPC_CheckType, MVT::i32, ++/*125956*/ OPC_MoveParent, ++/*125957*/ OPC_MoveChild, 11, ++/*125959*/ OPC_CheckInteger, 1, ++/*125961*/ OPC_CheckType, MVT::i32, ++/*125963*/ OPC_MoveParent, ++/*125964*/ OPC_MoveChild, 12, ++/*125966*/ OPC_CheckInteger, 1, ++/*125968*/ OPC_CheckType, MVT::i32, ++/*125970*/ OPC_MoveParent, ++/*125971*/ OPC_MoveChild, 13, ++/*125973*/ OPC_CheckInteger, 1, ++/*125975*/ OPC_CheckType, MVT::i32, ++/*125977*/ OPC_MoveParent, ++/*125978*/ OPC_MoveChild, 14, ++/*125980*/ OPC_CheckInteger, 1, ++/*125982*/ OPC_CheckType, MVT::i32, ++/*125984*/ OPC_MoveParent, ++/*125985*/ OPC_MoveChild, 15, ++/*125987*/ OPC_CheckInteger, 1, ++/*125989*/ OPC_CheckType, MVT::i32, ++/*125991*/ OPC_MoveParent, ++/*125992*/ OPC_MoveChild, 16, ++/*125994*/ OPC_CheckInteger, 1, ++/*125996*/ OPC_CheckType, MVT::i32, ++/*125998*/ OPC_MoveParent, ++/*125999*/ OPC_MoveChild, 17, ++/*126001*/ OPC_CheckInteger, 1, ++/*126003*/ OPC_CheckType, MVT::i32, ++/*126005*/ OPC_MoveParent, ++/*126006*/ OPC_MoveChild, 18, ++/*126008*/ OPC_CheckInteger, 1, ++/*126010*/ OPC_CheckType, MVT::i32, ++/*126012*/ OPC_MoveParent, ++/*126013*/ OPC_MoveChild, 19, ++/*126015*/ OPC_CheckInteger, 1, ++/*126017*/ OPC_CheckType, MVT::i32, ++/*126019*/ OPC_MoveParent, ++/*126020*/ OPC_MoveChild, 20, ++/*126022*/ OPC_CheckInteger, 1, ++/*126024*/ OPC_CheckType, MVT::i32, ++/*126026*/ OPC_MoveParent, ++/*126027*/ OPC_MoveChild, 21, ++/*126029*/ OPC_CheckInteger, 1, ++/*126031*/ OPC_CheckType, MVT::i32, ++/*126033*/ OPC_MoveParent, ++/*126034*/ OPC_MoveChild, 22, ++/*126036*/ OPC_CheckInteger, 1, ++/*126038*/ OPC_CheckType, MVT::i32, ++/*126040*/ OPC_MoveParent, ++/*126041*/ OPC_MoveChild, 23, ++/*126043*/ OPC_CheckInteger, 1, ++/*126045*/ OPC_CheckType, MVT::i32, ++/*126047*/ OPC_MoveParent, ++/*126048*/ OPC_MoveChild, 24, ++/*126050*/ OPC_CheckInteger, 1, ++/*126052*/ OPC_CheckType, MVT::i32, ++/*126054*/ OPC_MoveParent, ++/*126055*/ OPC_MoveChild, 25, ++/*126057*/ OPC_CheckInteger, 1, ++/*126059*/ OPC_CheckType, MVT::i32, ++/*126061*/ OPC_MoveParent, ++/*126062*/ OPC_MoveChild, 26, ++/*126064*/ OPC_CheckInteger, 1, ++/*126066*/ OPC_CheckType, MVT::i32, ++/*126068*/ OPC_MoveParent, ++/*126069*/ OPC_MoveChild, 27, ++/*126071*/ OPC_CheckInteger, 1, ++/*126073*/ OPC_CheckType, MVT::i32, ++/*126075*/ OPC_MoveParent, ++/*126076*/ OPC_MoveChild, 28, ++/*126078*/ OPC_CheckInteger, 1, ++/*126080*/ OPC_CheckType, MVT::i32, ++/*126082*/ OPC_MoveParent, ++/*126083*/ OPC_MoveChild, 29, ++/*126085*/ OPC_CheckInteger, 1, ++/*126087*/ OPC_CheckType, MVT::i32, ++/*126089*/ OPC_MoveParent, ++/*126090*/ OPC_MoveChild, 30, ++/*126092*/ OPC_CheckInteger, 1, ++/*126094*/ OPC_CheckType, MVT::i32, ++/*126096*/ OPC_MoveParent, ++/*126097*/ OPC_MoveChild, 31, ++/*126099*/ OPC_CheckInteger, 1, ++/*126101*/ OPC_CheckType, MVT::i32, ++/*126103*/ OPC_MoveParent, ++/*126104*/ OPC_MoveParent, ++/*126105*/ OPC_CheckChild1Same, 0, ++/*126107*/ OPC_MoveParent, ++/*126108*/ OPC_MoveParent, ++/*126109*/ OPC_MoveChild1, ++/*126110*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*126113*/ OPC_CheckChild0Integer, 7, ++/*126115*/ OPC_CheckChild0Type, MVT::i32, ++/*126117*/ OPC_CheckChild1Integer, 7, ++/*126119*/ OPC_CheckChild1Type, MVT::i32, ++/*126121*/ OPC_CheckChild2Integer, 7, ++/*126123*/ OPC_CheckChild2Type, MVT::i32, ++/*126125*/ OPC_CheckChild3Integer, 7, ++/*126127*/ OPC_CheckChild3Type, MVT::i32, ++/*126129*/ OPC_CheckChild4Integer, 7, ++/*126131*/ OPC_CheckChild4Type, MVT::i32, ++/*126133*/ OPC_MoveChild5, ++/*126134*/ OPC_CheckInteger, 7, ++/*126136*/ OPC_CheckType, MVT::i32, ++/*126138*/ OPC_MoveParent, ++/*126139*/ OPC_MoveChild6, ++/*126140*/ OPC_CheckInteger, 7, ++/*126142*/ OPC_CheckType, MVT::i32, ++/*126144*/ OPC_MoveParent, ++/*126145*/ OPC_MoveChild7, ++/*126146*/ OPC_CheckInteger, 7, ++/*126148*/ OPC_CheckType, MVT::i32, ++/*126150*/ OPC_MoveParent, ++/*126151*/ OPC_MoveChild, 8, ++/*126153*/ OPC_CheckInteger, 7, ++/*126155*/ OPC_CheckType, MVT::i32, ++/*126157*/ OPC_MoveParent, ++/*126158*/ OPC_MoveChild, 9, ++/*126160*/ OPC_CheckInteger, 7, ++/*126162*/ OPC_CheckType, MVT::i32, ++/*126164*/ OPC_MoveParent, ++/*126165*/ OPC_MoveChild, 10, ++/*126167*/ OPC_CheckInteger, 7, ++/*126169*/ OPC_CheckType, MVT::i32, ++/*126171*/ OPC_MoveParent, ++/*126172*/ OPC_MoveChild, 11, ++/*126174*/ OPC_CheckInteger, 7, ++/*126176*/ OPC_CheckType, MVT::i32, ++/*126178*/ OPC_MoveParent, ++/*126179*/ OPC_MoveChild, 12, ++/*126181*/ OPC_CheckInteger, 7, ++/*126183*/ OPC_CheckType, MVT::i32, ++/*126185*/ OPC_MoveParent, ++/*126186*/ OPC_MoveChild, 13, ++/*126188*/ OPC_CheckInteger, 7, ++/*126190*/ OPC_CheckType, MVT::i32, ++/*126192*/ OPC_MoveParent, ++/*126193*/ OPC_MoveChild, 14, ++/*126195*/ OPC_CheckInteger, 7, ++/*126197*/ OPC_CheckType, MVT::i32, ++/*126199*/ OPC_MoveParent, ++/*126200*/ OPC_MoveChild, 15, ++/*126202*/ OPC_CheckInteger, 7, ++/*126204*/ OPC_CheckType, MVT::i32, ++/*126206*/ OPC_MoveParent, ++/*126207*/ OPC_MoveChild, 16, ++/*126209*/ OPC_CheckInteger, 7, ++/*126211*/ OPC_CheckType, MVT::i32, ++/*126213*/ OPC_MoveParent, ++/*126214*/ OPC_MoveChild, 17, ++/*126216*/ OPC_CheckInteger, 7, ++/*126218*/ OPC_CheckType, MVT::i32, ++/*126220*/ OPC_MoveParent, ++/*126221*/ OPC_MoveChild, 18, ++/*126223*/ OPC_CheckInteger, 7, ++/*126225*/ OPC_CheckType, MVT::i32, ++/*126227*/ OPC_MoveParent, ++/*126228*/ OPC_MoveChild, 19, ++/*126230*/ OPC_CheckInteger, 7, ++/*126232*/ OPC_CheckType, MVT::i32, ++/*126234*/ OPC_MoveParent, ++/*126235*/ OPC_MoveChild, 20, ++/*126237*/ OPC_CheckInteger, 7, ++/*126239*/ OPC_CheckType, MVT::i32, ++/*126241*/ OPC_MoveParent, ++/*126242*/ OPC_MoveChild, 21, ++/*126244*/ OPC_CheckInteger, 7, ++/*126246*/ OPC_CheckType, MVT::i32, ++/*126248*/ OPC_MoveParent, ++/*126249*/ OPC_MoveChild, 22, ++/*126251*/ OPC_CheckInteger, 7, ++/*126253*/ OPC_CheckType, MVT::i32, ++/*126255*/ OPC_MoveParent, ++/*126256*/ OPC_MoveChild, 23, ++/*126258*/ OPC_CheckInteger, 7, ++/*126260*/ OPC_CheckType, MVT::i32, ++/*126262*/ OPC_MoveParent, ++/*126263*/ OPC_MoveChild, 24, ++/*126265*/ OPC_CheckInteger, 7, ++/*126267*/ OPC_CheckType, MVT::i32, ++/*126269*/ OPC_MoveParent, ++/*126270*/ OPC_MoveChild, 25, ++/*126272*/ OPC_CheckInteger, 7, ++/*126274*/ OPC_CheckType, MVT::i32, ++/*126276*/ OPC_MoveParent, ++/*126277*/ OPC_MoveChild, 26, ++/*126279*/ OPC_CheckInteger, 7, ++/*126281*/ OPC_CheckType, MVT::i32, ++/*126283*/ OPC_MoveParent, ++/*126284*/ OPC_MoveChild, 27, ++/*126286*/ OPC_CheckInteger, 7, ++/*126288*/ OPC_CheckType, MVT::i32, ++/*126290*/ OPC_MoveParent, ++/*126291*/ OPC_MoveChild, 28, ++/*126293*/ OPC_CheckInteger, 7, ++/*126295*/ OPC_CheckType, MVT::i32, ++/*126297*/ OPC_MoveParent, ++/*126298*/ OPC_MoveChild, 29, ++/*126300*/ OPC_CheckInteger, 7, ++/*126302*/ OPC_CheckType, MVT::i32, ++/*126304*/ OPC_MoveParent, ++/*126305*/ OPC_MoveChild, 30, ++/*126307*/ OPC_CheckInteger, 7, ++/*126309*/ OPC_CheckType, MVT::i32, ++/*126311*/ OPC_MoveParent, ++/*126312*/ OPC_MoveChild, 31, ++/*126314*/ OPC_CheckInteger, 7, ++/*126316*/ OPC_CheckType, MVT::i32, ++/*126318*/ OPC_MoveParent, ++/*126319*/ OPC_CheckType, MVT::v32i8, ++/*126321*/ OPC_MoveParent, ++/*126322*/ OPC_MoveParent, ++/*126323*/ OPC_MoveParent, ++/*126324*/ OPC_MoveChild1, ++/*126325*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*126328*/ OPC_CheckChild0Integer, 1, ++/*126330*/ OPC_CheckChild0Type, MVT::i32, ++/*126332*/ OPC_CheckChild1Integer, 1, ++/*126334*/ OPC_CheckChild1Type, MVT::i32, ++/*126336*/ OPC_CheckChild2Integer, 1, ++/*126338*/ OPC_CheckChild2Type, MVT::i32, ++/*126340*/ OPC_CheckChild3Integer, 1, ++/*126342*/ OPC_CheckChild3Type, MVT::i32, ++/*126344*/ OPC_CheckChild4Integer, 1, ++/*126346*/ OPC_CheckChild4Type, MVT::i32, ++/*126348*/ OPC_MoveChild5, ++/*126349*/ OPC_CheckInteger, 1, ++/*126351*/ OPC_CheckType, MVT::i32, ++/*126353*/ OPC_MoveParent, ++/*126354*/ OPC_MoveChild6, ++/*126355*/ OPC_CheckInteger, 1, ++/*126357*/ OPC_CheckType, MVT::i32, ++/*126359*/ OPC_MoveParent, ++/*126360*/ OPC_MoveChild7, ++/*126361*/ OPC_CheckInteger, 1, ++/*126363*/ OPC_CheckType, MVT::i32, ++/*126365*/ OPC_MoveParent, ++/*126366*/ OPC_MoveChild, 8, ++/*126368*/ OPC_CheckInteger, 1, ++/*126370*/ OPC_CheckType, MVT::i32, ++/*126372*/ OPC_MoveParent, ++/*126373*/ OPC_MoveChild, 9, ++/*126375*/ OPC_CheckInteger, 1, ++/*126377*/ OPC_CheckType, MVT::i32, ++/*126379*/ OPC_MoveParent, ++/*126380*/ OPC_MoveChild, 10, ++/*126382*/ OPC_CheckInteger, 1, ++/*126384*/ OPC_CheckType, MVT::i32, ++/*126386*/ OPC_MoveParent, ++/*126387*/ OPC_MoveChild, 11, ++/*126389*/ OPC_CheckInteger, 1, ++/*126391*/ OPC_CheckType, MVT::i32, ++/*126393*/ OPC_MoveParent, ++/*126394*/ OPC_MoveChild, 12, ++/*126396*/ OPC_CheckInteger, 1, ++/*126398*/ OPC_CheckType, MVT::i32, ++/*126400*/ OPC_MoveParent, ++/*126401*/ OPC_MoveChild, 13, ++/*126403*/ OPC_CheckInteger, 1, ++/*126405*/ OPC_CheckType, MVT::i32, ++/*126407*/ OPC_MoveParent, ++/*126408*/ OPC_MoveChild, 14, ++/*126410*/ OPC_CheckInteger, 1, ++/*126412*/ OPC_CheckType, MVT::i32, ++/*126414*/ OPC_MoveParent, ++/*126415*/ OPC_MoveChild, 15, ++/*126417*/ OPC_CheckInteger, 1, ++/*126419*/ OPC_CheckType, MVT::i32, ++/*126421*/ OPC_MoveParent, ++/*126422*/ OPC_MoveChild, 16, ++/*126424*/ OPC_CheckInteger, 1, ++/*126426*/ OPC_CheckType, MVT::i32, ++/*126428*/ OPC_MoveParent, ++/*126429*/ OPC_MoveChild, 17, ++/*126431*/ OPC_CheckInteger, 1, ++/*126433*/ OPC_CheckType, MVT::i32, ++/*126435*/ OPC_MoveParent, ++/*126436*/ OPC_MoveChild, 18, ++/*126438*/ OPC_CheckInteger, 1, ++/*126440*/ OPC_CheckType, MVT::i32, ++/*126442*/ OPC_MoveParent, ++/*126443*/ OPC_MoveChild, 19, ++/*126445*/ OPC_CheckInteger, 1, ++/*126447*/ OPC_CheckType, MVT::i32, ++/*126449*/ OPC_MoveParent, ++/*126450*/ OPC_MoveChild, 20, ++/*126452*/ OPC_CheckInteger, 1, ++/*126454*/ OPC_CheckType, MVT::i32, ++/*126456*/ OPC_MoveParent, ++/*126457*/ OPC_MoveChild, 21, ++/*126459*/ OPC_CheckInteger, 1, ++/*126461*/ OPC_CheckType, MVT::i32, ++/*126463*/ OPC_MoveParent, ++/*126464*/ OPC_MoveChild, 22, ++/*126466*/ OPC_CheckInteger, 1, ++/*126468*/ OPC_CheckType, MVT::i32, ++/*126470*/ OPC_MoveParent, ++/*126471*/ OPC_MoveChild, 23, ++/*126473*/ OPC_CheckInteger, 1, ++/*126475*/ OPC_CheckType, MVT::i32, ++/*126477*/ OPC_MoveParent, ++/*126478*/ OPC_MoveChild, 24, ++/*126480*/ OPC_CheckInteger, 1, ++/*126482*/ OPC_CheckType, MVT::i32, ++/*126484*/ OPC_MoveParent, ++/*126485*/ OPC_MoveChild, 25, ++/*126487*/ OPC_CheckInteger, 1, ++/*126489*/ OPC_CheckType, MVT::i32, ++/*126491*/ OPC_MoveParent, ++/*126492*/ OPC_MoveChild, 26, ++/*126494*/ OPC_CheckInteger, 1, ++/*126496*/ OPC_CheckType, MVT::i32, ++/*126498*/ OPC_MoveParent, ++/*126499*/ OPC_MoveChild, 27, ++/*126501*/ OPC_CheckInteger, 1, ++/*126503*/ OPC_CheckType, MVT::i32, ++/*126505*/ OPC_MoveParent, ++/*126506*/ OPC_MoveChild, 28, ++/*126508*/ OPC_CheckInteger, 1, ++/*126510*/ OPC_CheckType, MVT::i32, ++/*126512*/ OPC_MoveParent, ++/*126513*/ OPC_MoveChild, 29, ++/*126515*/ OPC_CheckInteger, 1, ++/*126517*/ OPC_CheckType, MVT::i32, ++/*126519*/ OPC_MoveParent, ++/*126520*/ OPC_MoveChild, 30, ++/*126522*/ OPC_CheckInteger, 1, ++/*126524*/ OPC_CheckType, MVT::i32, ++/*126526*/ OPC_MoveParent, ++/*126527*/ OPC_MoveChild, 31, ++/*126529*/ OPC_CheckInteger, 1, ++/*126531*/ OPC_CheckType, MVT::i32, ++/*126533*/ OPC_MoveParent, ++/*126534*/ OPC_CheckType, MVT::v32i8, ++/*126536*/ OPC_MoveParent, ++/*126537*/ OPC_CheckType, MVT::v32i8, ++/*126539*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*126541*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*126549*/ /*Scope*/ 15|128,5/*655*/, /*->127206*/ ++/*126551*/ OPC_CheckChild0Same, 0, ++/*126553*/ OPC_MoveChild1, ++/*126554*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*126557*/ OPC_CheckChild0Integer, 1, ++/*126559*/ OPC_CheckChild0Type, MVT::i32, ++/*126561*/ OPC_CheckChild1Integer, 1, ++/*126563*/ OPC_CheckChild1Type, MVT::i32, ++/*126565*/ OPC_CheckChild2Integer, 1, ++/*126567*/ OPC_CheckChild2Type, MVT::i32, ++/*126569*/ OPC_CheckChild3Integer, 1, ++/*126571*/ OPC_CheckChild3Type, MVT::i32, ++/*126573*/ OPC_CheckChild4Integer, 1, ++/*126575*/ OPC_CheckChild4Type, MVT::i32, ++/*126577*/ OPC_MoveChild5, ++/*126578*/ OPC_CheckInteger, 1, ++/*126580*/ OPC_CheckType, MVT::i32, ++/*126582*/ OPC_MoveParent, ++/*126583*/ OPC_MoveChild6, ++/*126584*/ OPC_CheckInteger, 1, ++/*126586*/ OPC_CheckType, MVT::i32, ++/*126588*/ OPC_MoveParent, ++/*126589*/ OPC_MoveChild7, ++/*126590*/ OPC_CheckInteger, 1, ++/*126592*/ OPC_CheckType, MVT::i32, ++/*126594*/ OPC_MoveParent, ++/*126595*/ OPC_MoveChild, 8, ++/*126597*/ OPC_CheckInteger, 1, ++/*126599*/ OPC_CheckType, MVT::i32, ++/*126601*/ OPC_MoveParent, ++/*126602*/ OPC_MoveChild, 9, ++/*126604*/ OPC_CheckInteger, 1, ++/*126606*/ OPC_CheckType, MVT::i32, ++/*126608*/ OPC_MoveParent, ++/*126609*/ OPC_MoveChild, 10, ++/*126611*/ OPC_CheckInteger, 1, ++/*126613*/ OPC_CheckType, MVT::i32, ++/*126615*/ OPC_MoveParent, ++/*126616*/ OPC_MoveChild, 11, ++/*126618*/ OPC_CheckInteger, 1, ++/*126620*/ OPC_CheckType, MVT::i32, ++/*126622*/ OPC_MoveParent, ++/*126623*/ OPC_MoveChild, 12, ++/*126625*/ OPC_CheckInteger, 1, ++/*126627*/ OPC_CheckType, MVT::i32, ++/*126629*/ OPC_MoveParent, ++/*126630*/ OPC_MoveChild, 13, ++/*126632*/ OPC_CheckInteger, 1, ++/*126634*/ OPC_CheckType, MVT::i32, ++/*126636*/ OPC_MoveParent, ++/*126637*/ OPC_MoveChild, 14, ++/*126639*/ OPC_CheckInteger, 1, ++/*126641*/ OPC_CheckType, MVT::i32, ++/*126643*/ OPC_MoveParent, ++/*126644*/ OPC_MoveChild, 15, ++/*126646*/ OPC_CheckInteger, 1, ++/*126648*/ OPC_CheckType, MVT::i32, ++/*126650*/ OPC_MoveParent, ++/*126651*/ OPC_MoveChild, 16, ++/*126653*/ OPC_CheckInteger, 1, ++/*126655*/ OPC_CheckType, MVT::i32, ++/*126657*/ OPC_MoveParent, ++/*126658*/ OPC_MoveChild, 17, ++/*126660*/ OPC_CheckInteger, 1, ++/*126662*/ OPC_CheckType, MVT::i32, ++/*126664*/ OPC_MoveParent, ++/*126665*/ OPC_MoveChild, 18, ++/*126667*/ OPC_CheckInteger, 1, ++/*126669*/ OPC_CheckType, MVT::i32, ++/*126671*/ OPC_MoveParent, ++/*126672*/ OPC_MoveChild, 19, ++/*126674*/ OPC_CheckInteger, 1, ++/*126676*/ OPC_CheckType, MVT::i32, ++/*126678*/ OPC_MoveParent, ++/*126679*/ OPC_MoveChild, 20, ++/*126681*/ OPC_CheckInteger, 1, ++/*126683*/ OPC_CheckType, MVT::i32, ++/*126685*/ OPC_MoveParent, ++/*126686*/ OPC_MoveChild, 21, ++/*126688*/ OPC_CheckInteger, 1, ++/*126690*/ OPC_CheckType, MVT::i32, ++/*126692*/ OPC_MoveParent, ++/*126693*/ OPC_MoveChild, 22, ++/*126695*/ OPC_CheckInteger, 1, ++/*126697*/ OPC_CheckType, MVT::i32, ++/*126699*/ OPC_MoveParent, ++/*126700*/ OPC_MoveChild, 23, ++/*126702*/ OPC_CheckInteger, 1, ++/*126704*/ OPC_CheckType, MVT::i32, ++/*126706*/ OPC_MoveParent, ++/*126707*/ OPC_MoveChild, 24, ++/*126709*/ OPC_CheckInteger, 1, ++/*126711*/ OPC_CheckType, MVT::i32, ++/*126713*/ OPC_MoveParent, ++/*126714*/ OPC_MoveChild, 25, ++/*126716*/ OPC_CheckInteger, 1, ++/*126718*/ OPC_CheckType, MVT::i32, ++/*126720*/ OPC_MoveParent, ++/*126721*/ OPC_MoveChild, 26, ++/*126723*/ OPC_CheckInteger, 1, ++/*126725*/ OPC_CheckType, MVT::i32, ++/*126727*/ OPC_MoveParent, ++/*126728*/ OPC_MoveChild, 27, ++/*126730*/ OPC_CheckInteger, 1, ++/*126732*/ OPC_CheckType, MVT::i32, ++/*126734*/ OPC_MoveParent, ++/*126735*/ OPC_MoveChild, 28, ++/*126737*/ OPC_CheckInteger, 1, ++/*126739*/ OPC_CheckType, MVT::i32, ++/*126741*/ OPC_MoveParent, ++/*126742*/ OPC_MoveChild, 29, ++/*126744*/ OPC_CheckInteger, 1, ++/*126746*/ OPC_CheckType, MVT::i32, ++/*126748*/ OPC_MoveParent, ++/*126749*/ OPC_MoveChild, 30, ++/*126751*/ OPC_CheckInteger, 1, ++/*126753*/ OPC_CheckType, MVT::i32, ++/*126755*/ OPC_MoveParent, ++/*126756*/ OPC_MoveChild, 31, ++/*126758*/ OPC_CheckInteger, 1, ++/*126760*/ OPC_CheckType, MVT::i32, ++/*126762*/ OPC_MoveParent, ++/*126763*/ OPC_MoveParent, ++/*126764*/ OPC_MoveParent, ++/*126765*/ OPC_MoveParent, ++/*126766*/ OPC_MoveChild1, ++/*126767*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*126770*/ OPC_CheckChild0Integer, 7, ++/*126772*/ OPC_CheckChild0Type, MVT::i32, ++/*126774*/ OPC_CheckChild1Integer, 7, ++/*126776*/ OPC_CheckChild1Type, MVT::i32, ++/*126778*/ OPC_CheckChild2Integer, 7, ++/*126780*/ OPC_CheckChild2Type, MVT::i32, ++/*126782*/ OPC_CheckChild3Integer, 7, ++/*126784*/ OPC_CheckChild3Type, MVT::i32, ++/*126786*/ OPC_CheckChild4Integer, 7, ++/*126788*/ OPC_CheckChild4Type, MVT::i32, ++/*126790*/ OPC_MoveChild5, ++/*126791*/ OPC_CheckInteger, 7, ++/*126793*/ OPC_CheckType, MVT::i32, ++/*126795*/ OPC_MoveParent, ++/*126796*/ OPC_MoveChild6, ++/*126797*/ OPC_CheckInteger, 7, ++/*126799*/ OPC_CheckType, MVT::i32, ++/*126801*/ OPC_MoveParent, ++/*126802*/ OPC_MoveChild7, ++/*126803*/ OPC_CheckInteger, 7, ++/*126805*/ OPC_CheckType, MVT::i32, ++/*126807*/ OPC_MoveParent, ++/*126808*/ OPC_MoveChild, 8, ++/*126810*/ OPC_CheckInteger, 7, ++/*126812*/ OPC_CheckType, MVT::i32, ++/*126814*/ OPC_MoveParent, ++/*126815*/ OPC_MoveChild, 9, ++/*126817*/ OPC_CheckInteger, 7, ++/*126819*/ OPC_CheckType, MVT::i32, ++/*126821*/ OPC_MoveParent, ++/*126822*/ OPC_MoveChild, 10, ++/*126824*/ OPC_CheckInteger, 7, ++/*126826*/ OPC_CheckType, MVT::i32, ++/*126828*/ OPC_MoveParent, ++/*126829*/ OPC_MoveChild, 11, ++/*126831*/ OPC_CheckInteger, 7, ++/*126833*/ OPC_CheckType, MVT::i32, ++/*126835*/ OPC_MoveParent, ++/*126836*/ OPC_MoveChild, 12, ++/*126838*/ OPC_CheckInteger, 7, ++/*126840*/ OPC_CheckType, MVT::i32, ++/*126842*/ OPC_MoveParent, ++/*126843*/ OPC_MoveChild, 13, ++/*126845*/ OPC_CheckInteger, 7, ++/*126847*/ OPC_CheckType, MVT::i32, ++/*126849*/ OPC_MoveParent, ++/*126850*/ OPC_MoveChild, 14, ++/*126852*/ OPC_CheckInteger, 7, ++/*126854*/ OPC_CheckType, MVT::i32, ++/*126856*/ OPC_MoveParent, ++/*126857*/ OPC_MoveChild, 15, ++/*126859*/ OPC_CheckInteger, 7, ++/*126861*/ OPC_CheckType, MVT::i32, ++/*126863*/ OPC_MoveParent, ++/*126864*/ OPC_MoveChild, 16, ++/*126866*/ OPC_CheckInteger, 7, ++/*126868*/ OPC_CheckType, MVT::i32, ++/*126870*/ OPC_MoveParent, ++/*126871*/ OPC_MoveChild, 17, ++/*126873*/ OPC_CheckInteger, 7, ++/*126875*/ OPC_CheckType, MVT::i32, ++/*126877*/ OPC_MoveParent, ++/*126878*/ OPC_MoveChild, 18, ++/*126880*/ OPC_CheckInteger, 7, ++/*126882*/ OPC_CheckType, MVT::i32, ++/*126884*/ OPC_MoveParent, ++/*126885*/ OPC_MoveChild, 19, ++/*126887*/ OPC_CheckInteger, 7, ++/*126889*/ OPC_CheckType, MVT::i32, ++/*126891*/ OPC_MoveParent, ++/*126892*/ OPC_MoveChild, 20, ++/*126894*/ OPC_CheckInteger, 7, ++/*126896*/ OPC_CheckType, MVT::i32, ++/*126898*/ OPC_MoveParent, ++/*126899*/ OPC_MoveChild, 21, ++/*126901*/ OPC_CheckInteger, 7, ++/*126903*/ OPC_CheckType, MVT::i32, ++/*126905*/ OPC_MoveParent, ++/*126906*/ OPC_MoveChild, 22, ++/*126908*/ OPC_CheckInteger, 7, ++/*126910*/ OPC_CheckType, MVT::i32, ++/*126912*/ OPC_MoveParent, ++/*126913*/ OPC_MoveChild, 23, ++/*126915*/ OPC_CheckInteger, 7, ++/*126917*/ OPC_CheckType, MVT::i32, ++/*126919*/ OPC_MoveParent, ++/*126920*/ OPC_MoveChild, 24, ++/*126922*/ OPC_CheckInteger, 7, ++/*126924*/ OPC_CheckType, MVT::i32, ++/*126926*/ OPC_MoveParent, ++/*126927*/ OPC_MoveChild, 25, ++/*126929*/ OPC_CheckInteger, 7, ++/*126931*/ OPC_CheckType, MVT::i32, ++/*126933*/ OPC_MoveParent, ++/*126934*/ OPC_MoveChild, 26, ++/*126936*/ OPC_CheckInteger, 7, ++/*126938*/ OPC_CheckType, MVT::i32, ++/*126940*/ OPC_MoveParent, ++/*126941*/ OPC_MoveChild, 27, ++/*126943*/ OPC_CheckInteger, 7, ++/*126945*/ OPC_CheckType, MVT::i32, ++/*126947*/ OPC_MoveParent, ++/*126948*/ OPC_MoveChild, 28, ++/*126950*/ OPC_CheckInteger, 7, ++/*126952*/ OPC_CheckType, MVT::i32, ++/*126954*/ OPC_MoveParent, ++/*126955*/ OPC_MoveChild, 29, ++/*126957*/ OPC_CheckInteger, 7, ++/*126959*/ OPC_CheckType, MVT::i32, ++/*126961*/ OPC_MoveParent, ++/*126962*/ OPC_MoveChild, 30, ++/*126964*/ OPC_CheckInteger, 7, ++/*126966*/ OPC_CheckType, MVT::i32, ++/*126968*/ OPC_MoveParent, ++/*126969*/ OPC_MoveChild, 31, ++/*126971*/ OPC_CheckInteger, 7, ++/*126973*/ OPC_CheckType, MVT::i32, ++/*126975*/ OPC_MoveParent, ++/*126976*/ OPC_CheckType, MVT::v32i8, ++/*126978*/ OPC_MoveParent, ++/*126979*/ OPC_MoveParent, ++/*126980*/ OPC_MoveParent, ++/*126981*/ OPC_MoveChild1, ++/*126982*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*126985*/ OPC_CheckChild0Integer, 1, ++/*126987*/ OPC_CheckChild0Type, MVT::i32, ++/*126989*/ OPC_CheckChild1Integer, 1, ++/*126991*/ OPC_CheckChild1Type, MVT::i32, ++/*126993*/ OPC_CheckChild2Integer, 1, ++/*126995*/ OPC_CheckChild2Type, MVT::i32, ++/*126997*/ OPC_CheckChild3Integer, 1, ++/*126999*/ OPC_CheckChild3Type, MVT::i32, ++/*127001*/ OPC_CheckChild4Integer, 1, ++/*127003*/ OPC_CheckChild4Type, MVT::i32, ++/*127005*/ OPC_MoveChild5, ++/*127006*/ OPC_CheckInteger, 1, ++/*127008*/ OPC_CheckType, MVT::i32, ++/*127010*/ OPC_MoveParent, ++/*127011*/ OPC_MoveChild6, ++/*127012*/ OPC_CheckInteger, 1, ++/*127014*/ OPC_CheckType, MVT::i32, ++/*127016*/ OPC_MoveParent, ++/*127017*/ OPC_MoveChild7, ++/*127018*/ OPC_CheckInteger, 1, ++/*127020*/ OPC_CheckType, MVT::i32, ++/*127022*/ OPC_MoveParent, ++/*127023*/ OPC_MoveChild, 8, ++/*127025*/ OPC_CheckInteger, 1, ++/*127027*/ OPC_CheckType, MVT::i32, ++/*127029*/ OPC_MoveParent, ++/*127030*/ OPC_MoveChild, 9, ++/*127032*/ OPC_CheckInteger, 1, ++/*127034*/ OPC_CheckType, MVT::i32, ++/*127036*/ OPC_MoveParent, ++/*127037*/ OPC_MoveChild, 10, ++/*127039*/ OPC_CheckInteger, 1, ++/*127041*/ OPC_CheckType, MVT::i32, ++/*127043*/ OPC_MoveParent, ++/*127044*/ OPC_MoveChild, 11, ++/*127046*/ OPC_CheckInteger, 1, ++/*127048*/ OPC_CheckType, MVT::i32, ++/*127050*/ OPC_MoveParent, ++/*127051*/ OPC_MoveChild, 12, ++/*127053*/ OPC_CheckInteger, 1, ++/*127055*/ OPC_CheckType, MVT::i32, ++/*127057*/ OPC_MoveParent, ++/*127058*/ OPC_MoveChild, 13, ++/*127060*/ OPC_CheckInteger, 1, ++/*127062*/ OPC_CheckType, MVT::i32, ++/*127064*/ OPC_MoveParent, ++/*127065*/ OPC_MoveChild, 14, ++/*127067*/ OPC_CheckInteger, 1, ++/*127069*/ OPC_CheckType, MVT::i32, ++/*127071*/ OPC_MoveParent, ++/*127072*/ OPC_MoveChild, 15, ++/*127074*/ OPC_CheckInteger, 1, ++/*127076*/ OPC_CheckType, MVT::i32, ++/*127078*/ OPC_MoveParent, ++/*127079*/ OPC_MoveChild, 16, ++/*127081*/ OPC_CheckInteger, 1, ++/*127083*/ OPC_CheckType, MVT::i32, ++/*127085*/ OPC_MoveParent, ++/*127086*/ OPC_MoveChild, 17, ++/*127088*/ OPC_CheckInteger, 1, ++/*127090*/ OPC_CheckType, MVT::i32, ++/*127092*/ OPC_MoveParent, ++/*127093*/ OPC_MoveChild, 18, ++/*127095*/ OPC_CheckInteger, 1, ++/*127097*/ OPC_CheckType, MVT::i32, ++/*127099*/ OPC_MoveParent, ++/*127100*/ OPC_MoveChild, 19, ++/*127102*/ OPC_CheckInteger, 1, ++/*127104*/ OPC_CheckType, MVT::i32, ++/*127106*/ OPC_MoveParent, ++/*127107*/ OPC_MoveChild, 20, ++/*127109*/ OPC_CheckInteger, 1, ++/*127111*/ OPC_CheckType, MVT::i32, ++/*127113*/ OPC_MoveParent, ++/*127114*/ OPC_MoveChild, 21, ++/*127116*/ OPC_CheckInteger, 1, ++/*127118*/ OPC_CheckType, MVT::i32, ++/*127120*/ OPC_MoveParent, ++/*127121*/ OPC_MoveChild, 22, ++/*127123*/ OPC_CheckInteger, 1, ++/*127125*/ OPC_CheckType, MVT::i32, ++/*127127*/ OPC_MoveParent, ++/*127128*/ OPC_MoveChild, 23, ++/*127130*/ OPC_CheckInteger, 1, ++/*127132*/ OPC_CheckType, MVT::i32, ++/*127134*/ OPC_MoveParent, ++/*127135*/ OPC_MoveChild, 24, ++/*127137*/ OPC_CheckInteger, 1, ++/*127139*/ OPC_CheckType, MVT::i32, ++/*127141*/ OPC_MoveParent, ++/*127142*/ OPC_MoveChild, 25, ++/*127144*/ OPC_CheckInteger, 1, ++/*127146*/ OPC_CheckType, MVT::i32, ++/*127148*/ OPC_MoveParent, ++/*127149*/ OPC_MoveChild, 26, ++/*127151*/ OPC_CheckInteger, 1, ++/*127153*/ OPC_CheckType, MVT::i32, ++/*127155*/ OPC_MoveParent, ++/*127156*/ OPC_MoveChild, 27, ++/*127158*/ OPC_CheckInteger, 1, ++/*127160*/ OPC_CheckType, MVT::i32, ++/*127162*/ OPC_MoveParent, ++/*127163*/ OPC_MoveChild, 28, ++/*127165*/ OPC_CheckInteger, 1, ++/*127167*/ OPC_CheckType, MVT::i32, ++/*127169*/ OPC_MoveParent, ++/*127170*/ OPC_MoveChild, 29, ++/*127172*/ OPC_CheckInteger, 1, ++/*127174*/ OPC_CheckType, MVT::i32, ++/*127176*/ OPC_MoveParent, ++/*127177*/ OPC_MoveChild, 30, ++/*127179*/ OPC_CheckInteger, 1, ++/*127181*/ OPC_CheckType, MVT::i32, ++/*127183*/ OPC_MoveParent, ++/*127184*/ OPC_MoveChild, 31, ++/*127186*/ OPC_CheckInteger, 1, ++/*127188*/ OPC_CheckType, MVT::i32, ++/*127190*/ OPC_MoveParent, ++/*127191*/ OPC_CheckType, MVT::v32i8, ++/*127193*/ OPC_MoveParent, ++/*127194*/ OPC_CheckType, MVT::v32i8, ++/*127196*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*127198*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*127206*/ 0, /*End of Scope*/ ++/*127207*/ /*Scope*/ 89|128,8/*1113*/, /*->128322*/ ++/*127209*/ OPC_MoveChild0, ++/*127210*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*127213*/ OPC_CheckChild0Integer, 1, ++/*127215*/ OPC_CheckChild0Type, MVT::i32, ++/*127217*/ OPC_CheckChild1Integer, 1, ++/*127219*/ OPC_CheckChild1Type, MVT::i32, ++/*127221*/ OPC_CheckChild2Integer, 1, ++/*127223*/ OPC_CheckChild2Type, MVT::i32, ++/*127225*/ OPC_CheckChild3Integer, 1, ++/*127227*/ OPC_CheckChild3Type, MVT::i32, ++/*127229*/ OPC_CheckChild4Integer, 1, ++/*127231*/ OPC_CheckChild4Type, MVT::i32, ++/*127233*/ OPC_MoveChild5, ++/*127234*/ OPC_CheckInteger, 1, ++/*127236*/ OPC_CheckType, MVT::i32, ++/*127238*/ OPC_MoveParent, ++/*127239*/ OPC_MoveChild6, ++/*127240*/ OPC_CheckInteger, 1, ++/*127242*/ OPC_CheckType, MVT::i32, ++/*127244*/ OPC_MoveParent, ++/*127245*/ OPC_MoveChild7, ++/*127246*/ OPC_CheckInteger, 1, ++/*127248*/ OPC_CheckType, MVT::i32, ++/*127250*/ OPC_MoveParent, ++/*127251*/ OPC_MoveChild, 8, ++/*127253*/ OPC_CheckInteger, 1, ++/*127255*/ OPC_CheckType, MVT::i32, ++/*127257*/ OPC_MoveParent, ++/*127258*/ OPC_MoveChild, 9, ++/*127260*/ OPC_CheckInteger, 1, ++/*127262*/ OPC_CheckType, MVT::i32, ++/*127264*/ OPC_MoveParent, ++/*127265*/ OPC_MoveChild, 10, ++/*127267*/ OPC_CheckInteger, 1, ++/*127269*/ OPC_CheckType, MVT::i32, ++/*127271*/ OPC_MoveParent, ++/*127272*/ OPC_MoveChild, 11, ++/*127274*/ OPC_CheckInteger, 1, ++/*127276*/ OPC_CheckType, MVT::i32, ++/*127278*/ OPC_MoveParent, ++/*127279*/ OPC_MoveChild, 12, ++/*127281*/ OPC_CheckInteger, 1, ++/*127283*/ OPC_CheckType, MVT::i32, ++/*127285*/ OPC_MoveParent, ++/*127286*/ OPC_MoveChild, 13, ++/*127288*/ OPC_CheckInteger, 1, ++/*127290*/ OPC_CheckType, MVT::i32, ++/*127292*/ OPC_MoveParent, ++/*127293*/ OPC_MoveChild, 14, ++/*127295*/ OPC_CheckInteger, 1, ++/*127297*/ OPC_CheckType, MVT::i32, ++/*127299*/ OPC_MoveParent, ++/*127300*/ OPC_MoveChild, 15, ++/*127302*/ OPC_CheckInteger, 1, ++/*127304*/ OPC_CheckType, MVT::i32, ++/*127306*/ OPC_MoveParent, ++/*127307*/ OPC_MoveChild, 16, ++/*127309*/ OPC_CheckInteger, 1, ++/*127311*/ OPC_CheckType, MVT::i32, ++/*127313*/ OPC_MoveParent, ++/*127314*/ OPC_MoveChild, 17, ++/*127316*/ OPC_CheckInteger, 1, ++/*127318*/ OPC_CheckType, MVT::i32, ++/*127320*/ OPC_MoveParent, ++/*127321*/ OPC_MoveChild, 18, ++/*127323*/ OPC_CheckInteger, 1, ++/*127325*/ OPC_CheckType, MVT::i32, ++/*127327*/ OPC_MoveParent, ++/*127328*/ OPC_MoveChild, 19, ++/*127330*/ OPC_CheckInteger, 1, ++/*127332*/ OPC_CheckType, MVT::i32, ++/*127334*/ OPC_MoveParent, ++/*127335*/ OPC_MoveChild, 20, ++/*127337*/ OPC_CheckInteger, 1, ++/*127339*/ OPC_CheckType, MVT::i32, ++/*127341*/ OPC_MoveParent, ++/*127342*/ OPC_MoveChild, 21, ++/*127344*/ OPC_CheckInteger, 1, ++/*127346*/ OPC_CheckType, MVT::i32, ++/*127348*/ OPC_MoveParent, ++/*127349*/ OPC_MoveChild, 22, ++/*127351*/ OPC_CheckInteger, 1, ++/*127353*/ OPC_CheckType, MVT::i32, ++/*127355*/ OPC_MoveParent, ++/*127356*/ OPC_MoveChild, 23, ++/*127358*/ OPC_CheckInteger, 1, ++/*127360*/ OPC_CheckType, MVT::i32, ++/*127362*/ OPC_MoveParent, ++/*127363*/ OPC_MoveChild, 24, ++/*127365*/ OPC_CheckInteger, 1, ++/*127367*/ OPC_CheckType, MVT::i32, ++/*127369*/ OPC_MoveParent, ++/*127370*/ OPC_MoveChild, 25, ++/*127372*/ OPC_CheckInteger, 1, ++/*127374*/ OPC_CheckType, MVT::i32, ++/*127376*/ OPC_MoveParent, ++/*127377*/ OPC_MoveChild, 26, ++/*127379*/ OPC_CheckInteger, 1, ++/*127381*/ OPC_CheckType, MVT::i32, ++/*127383*/ OPC_MoveParent, ++/*127384*/ OPC_MoveChild, 27, ++/*127386*/ OPC_CheckInteger, 1, ++/*127388*/ OPC_CheckType, MVT::i32, ++/*127390*/ OPC_MoveParent, ++/*127391*/ OPC_MoveChild, 28, ++/*127393*/ OPC_CheckInteger, 1, ++/*127395*/ OPC_CheckType, MVT::i32, ++/*127397*/ OPC_MoveParent, ++/*127398*/ OPC_MoveChild, 29, ++/*127400*/ OPC_CheckInteger, 1, ++/*127402*/ OPC_CheckType, MVT::i32, ++/*127404*/ OPC_MoveParent, ++/*127405*/ OPC_MoveChild, 30, ++/*127407*/ OPC_CheckInteger, 1, ++/*127409*/ OPC_CheckType, MVT::i32, ++/*127411*/ OPC_MoveParent, ++/*127412*/ OPC_MoveChild, 31, ++/*127414*/ OPC_CheckInteger, 1, ++/*127416*/ OPC_CheckType, MVT::i32, ++/*127418*/ OPC_MoveParent, ++/*127419*/ OPC_MoveParent, ++/*127420*/ OPC_MoveChild1, ++/*127421*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*127424*/ OPC_Scope, 62|128,3/*446*/, /*->127873*/ // 2 children in Scope ++/*127427*/ OPC_CheckChild0Same, 1, ++/*127429*/ OPC_CheckChild1Same, 0, ++/*127431*/ OPC_MoveParent, ++/*127432*/ OPC_MoveParent, ++/*127433*/ OPC_MoveChild1, ++/*127434*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*127437*/ OPC_CheckChild0Integer, 7, ++/*127439*/ OPC_CheckChild0Type, MVT::i32, ++/*127441*/ OPC_CheckChild1Integer, 7, ++/*127443*/ OPC_CheckChild1Type, MVT::i32, ++/*127445*/ OPC_CheckChild2Integer, 7, ++/*127447*/ OPC_CheckChild2Type, MVT::i32, ++/*127449*/ OPC_CheckChild3Integer, 7, ++/*127451*/ OPC_CheckChild3Type, MVT::i32, ++/*127453*/ OPC_CheckChild4Integer, 7, ++/*127455*/ OPC_CheckChild4Type, MVT::i32, ++/*127457*/ OPC_MoveChild5, ++/*127458*/ OPC_CheckInteger, 7, ++/*127460*/ OPC_CheckType, MVT::i32, ++/*127462*/ OPC_MoveParent, ++/*127463*/ OPC_MoveChild6, ++/*127464*/ OPC_CheckInteger, 7, ++/*127466*/ OPC_CheckType, MVT::i32, ++/*127468*/ OPC_MoveParent, ++/*127469*/ OPC_MoveChild7, ++/*127470*/ OPC_CheckInteger, 7, ++/*127472*/ OPC_CheckType, MVT::i32, ++/*127474*/ OPC_MoveParent, ++/*127475*/ OPC_MoveChild, 8, ++/*127477*/ OPC_CheckInteger, 7, ++/*127479*/ OPC_CheckType, MVT::i32, ++/*127481*/ OPC_MoveParent, ++/*127482*/ OPC_MoveChild, 9, ++/*127484*/ OPC_CheckInteger, 7, ++/*127486*/ OPC_CheckType, MVT::i32, ++/*127488*/ OPC_MoveParent, ++/*127489*/ OPC_MoveChild, 10, ++/*127491*/ OPC_CheckInteger, 7, ++/*127493*/ OPC_CheckType, MVT::i32, ++/*127495*/ OPC_MoveParent, ++/*127496*/ OPC_MoveChild, 11, ++/*127498*/ OPC_CheckInteger, 7, ++/*127500*/ OPC_CheckType, MVT::i32, ++/*127502*/ OPC_MoveParent, ++/*127503*/ OPC_MoveChild, 12, ++/*127505*/ OPC_CheckInteger, 7, ++/*127507*/ OPC_CheckType, MVT::i32, ++/*127509*/ OPC_MoveParent, ++/*127510*/ OPC_MoveChild, 13, ++/*127512*/ OPC_CheckInteger, 7, ++/*127514*/ OPC_CheckType, MVT::i32, ++/*127516*/ OPC_MoveParent, ++/*127517*/ OPC_MoveChild, 14, ++/*127519*/ OPC_CheckInteger, 7, ++/*127521*/ OPC_CheckType, MVT::i32, ++/*127523*/ OPC_MoveParent, ++/*127524*/ OPC_MoveChild, 15, ++/*127526*/ OPC_CheckInteger, 7, ++/*127528*/ OPC_CheckType, MVT::i32, ++/*127530*/ OPC_MoveParent, ++/*127531*/ OPC_MoveChild, 16, ++/*127533*/ OPC_CheckInteger, 7, ++/*127535*/ OPC_CheckType, MVT::i32, ++/*127537*/ OPC_MoveParent, ++/*127538*/ OPC_MoveChild, 17, ++/*127540*/ OPC_CheckInteger, 7, ++/*127542*/ OPC_CheckType, MVT::i32, ++/*127544*/ OPC_MoveParent, ++/*127545*/ OPC_MoveChild, 18, ++/*127547*/ OPC_CheckInteger, 7, ++/*127549*/ OPC_CheckType, MVT::i32, ++/*127551*/ OPC_MoveParent, ++/*127552*/ OPC_MoveChild, 19, ++/*127554*/ OPC_CheckInteger, 7, ++/*127556*/ OPC_CheckType, MVT::i32, ++/*127558*/ OPC_MoveParent, ++/*127559*/ OPC_MoveChild, 20, ++/*127561*/ OPC_CheckInteger, 7, ++/*127563*/ OPC_CheckType, MVT::i32, ++/*127565*/ OPC_MoveParent, ++/*127566*/ OPC_MoveChild, 21, ++/*127568*/ OPC_CheckInteger, 7, ++/*127570*/ OPC_CheckType, MVT::i32, ++/*127572*/ OPC_MoveParent, ++/*127573*/ OPC_MoveChild, 22, ++/*127575*/ OPC_CheckInteger, 7, ++/*127577*/ OPC_CheckType, MVT::i32, ++/*127579*/ OPC_MoveParent, ++/*127580*/ OPC_MoveChild, 23, ++/*127582*/ OPC_CheckInteger, 7, ++/*127584*/ OPC_CheckType, MVT::i32, ++/*127586*/ OPC_MoveParent, ++/*127587*/ OPC_MoveChild, 24, ++/*127589*/ OPC_CheckInteger, 7, ++/*127591*/ OPC_CheckType, MVT::i32, ++/*127593*/ OPC_MoveParent, ++/*127594*/ OPC_MoveChild, 25, ++/*127596*/ OPC_CheckInteger, 7, ++/*127598*/ OPC_CheckType, MVT::i32, ++/*127600*/ OPC_MoveParent, ++/*127601*/ OPC_MoveChild, 26, ++/*127603*/ OPC_CheckInteger, 7, ++/*127605*/ OPC_CheckType, MVT::i32, ++/*127607*/ OPC_MoveParent, ++/*127608*/ OPC_MoveChild, 27, ++/*127610*/ OPC_CheckInteger, 7, ++/*127612*/ OPC_CheckType, MVT::i32, ++/*127614*/ OPC_MoveParent, ++/*127615*/ OPC_MoveChild, 28, ++/*127617*/ OPC_CheckInteger, 7, ++/*127619*/ OPC_CheckType, MVT::i32, ++/*127621*/ OPC_MoveParent, ++/*127622*/ OPC_MoveChild, 29, ++/*127624*/ OPC_CheckInteger, 7, ++/*127626*/ OPC_CheckType, MVT::i32, ++/*127628*/ OPC_MoveParent, ++/*127629*/ OPC_MoveChild, 30, ++/*127631*/ OPC_CheckInteger, 7, ++/*127633*/ OPC_CheckType, MVT::i32, ++/*127635*/ OPC_MoveParent, ++/*127636*/ OPC_MoveChild, 31, ++/*127638*/ OPC_CheckInteger, 7, ++/*127640*/ OPC_CheckType, MVT::i32, ++/*127642*/ OPC_MoveParent, ++/*127643*/ OPC_CheckType, MVT::v32i8, ++/*127645*/ OPC_MoveParent, ++/*127646*/ OPC_MoveParent, ++/*127647*/ OPC_MoveParent, ++/*127648*/ OPC_MoveChild1, ++/*127649*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*127652*/ OPC_CheckChild0Integer, 1, ++/*127654*/ OPC_CheckChild0Type, MVT::i32, ++/*127656*/ OPC_CheckChild1Integer, 1, ++/*127658*/ OPC_CheckChild1Type, MVT::i32, ++/*127660*/ OPC_CheckChild2Integer, 1, ++/*127662*/ OPC_CheckChild2Type, MVT::i32, ++/*127664*/ OPC_CheckChild3Integer, 1, ++/*127666*/ OPC_CheckChild3Type, MVT::i32, ++/*127668*/ OPC_CheckChild4Integer, 1, ++/*127670*/ OPC_CheckChild4Type, MVT::i32, ++/*127672*/ OPC_MoveChild5, ++/*127673*/ OPC_CheckInteger, 1, ++/*127675*/ OPC_CheckType, MVT::i32, ++/*127677*/ OPC_MoveParent, ++/*127678*/ OPC_MoveChild6, ++/*127679*/ OPC_CheckInteger, 1, ++/*127681*/ OPC_CheckType, MVT::i32, ++/*127683*/ OPC_MoveParent, ++/*127684*/ OPC_MoveChild7, ++/*127685*/ OPC_CheckInteger, 1, ++/*127687*/ OPC_CheckType, MVT::i32, ++/*127689*/ OPC_MoveParent, ++/*127690*/ OPC_MoveChild, 8, ++/*127692*/ OPC_CheckInteger, 1, ++/*127694*/ OPC_CheckType, MVT::i32, ++/*127696*/ OPC_MoveParent, ++/*127697*/ OPC_MoveChild, 9, ++/*127699*/ OPC_CheckInteger, 1, ++/*127701*/ OPC_CheckType, MVT::i32, ++/*127703*/ OPC_MoveParent, ++/*127704*/ OPC_MoveChild, 10, ++/*127706*/ OPC_CheckInteger, 1, ++/*127708*/ OPC_CheckType, MVT::i32, ++/*127710*/ OPC_MoveParent, ++/*127711*/ OPC_MoveChild, 11, ++/*127713*/ OPC_CheckInteger, 1, ++/*127715*/ OPC_CheckType, MVT::i32, ++/*127717*/ OPC_MoveParent, ++/*127718*/ OPC_MoveChild, 12, ++/*127720*/ OPC_CheckInteger, 1, ++/*127722*/ OPC_CheckType, MVT::i32, ++/*127724*/ OPC_MoveParent, ++/*127725*/ OPC_MoveChild, 13, ++/*127727*/ OPC_CheckInteger, 1, ++/*127729*/ OPC_CheckType, MVT::i32, ++/*127731*/ OPC_MoveParent, ++/*127732*/ OPC_MoveChild, 14, ++/*127734*/ OPC_CheckInteger, 1, ++/*127736*/ OPC_CheckType, MVT::i32, ++/*127738*/ OPC_MoveParent, ++/*127739*/ OPC_MoveChild, 15, ++/*127741*/ OPC_CheckInteger, 1, ++/*127743*/ OPC_CheckType, MVT::i32, ++/*127745*/ OPC_MoveParent, ++/*127746*/ OPC_MoveChild, 16, ++/*127748*/ OPC_CheckInteger, 1, ++/*127750*/ OPC_CheckType, MVT::i32, ++/*127752*/ OPC_MoveParent, ++/*127753*/ OPC_MoveChild, 17, ++/*127755*/ OPC_CheckInteger, 1, ++/*127757*/ OPC_CheckType, MVT::i32, ++/*127759*/ OPC_MoveParent, ++/*127760*/ OPC_MoveChild, 18, ++/*127762*/ OPC_CheckInteger, 1, ++/*127764*/ OPC_CheckType, MVT::i32, ++/*127766*/ OPC_MoveParent, ++/*127767*/ OPC_MoveChild, 19, ++/*127769*/ OPC_CheckInteger, 1, ++/*127771*/ OPC_CheckType, MVT::i32, ++/*127773*/ OPC_MoveParent, ++/*127774*/ OPC_MoveChild, 20, ++/*127776*/ OPC_CheckInteger, 1, ++/*127778*/ OPC_CheckType, MVT::i32, ++/*127780*/ OPC_MoveParent, ++/*127781*/ OPC_MoveChild, 21, ++/*127783*/ OPC_CheckInteger, 1, ++/*127785*/ OPC_CheckType, MVT::i32, ++/*127787*/ OPC_MoveParent, ++/*127788*/ OPC_MoveChild, 22, ++/*127790*/ OPC_CheckInteger, 1, ++/*127792*/ OPC_CheckType, MVT::i32, ++/*127794*/ OPC_MoveParent, ++/*127795*/ OPC_MoveChild, 23, ++/*127797*/ OPC_CheckInteger, 1, ++/*127799*/ OPC_CheckType, MVT::i32, ++/*127801*/ OPC_MoveParent, ++/*127802*/ OPC_MoveChild, 24, ++/*127804*/ OPC_CheckInteger, 1, ++/*127806*/ OPC_CheckType, MVT::i32, ++/*127808*/ OPC_MoveParent, ++/*127809*/ OPC_MoveChild, 25, ++/*127811*/ OPC_CheckInteger, 1, ++/*127813*/ OPC_CheckType, MVT::i32, ++/*127815*/ OPC_MoveParent, ++/*127816*/ OPC_MoveChild, 26, ++/*127818*/ OPC_CheckInteger, 1, ++/*127820*/ OPC_CheckType, MVT::i32, ++/*127822*/ OPC_MoveParent, ++/*127823*/ OPC_MoveChild, 27, ++/*127825*/ OPC_CheckInteger, 1, ++/*127827*/ OPC_CheckType, MVT::i32, ++/*127829*/ OPC_MoveParent, ++/*127830*/ OPC_MoveChild, 28, ++/*127832*/ OPC_CheckInteger, 1, ++/*127834*/ OPC_CheckType, MVT::i32, ++/*127836*/ OPC_MoveParent, ++/*127837*/ OPC_MoveChild, 29, ++/*127839*/ OPC_CheckInteger, 1, ++/*127841*/ OPC_CheckType, MVT::i32, ++/*127843*/ OPC_MoveParent, ++/*127844*/ OPC_MoveChild, 30, ++/*127846*/ OPC_CheckInteger, 1, ++/*127848*/ OPC_CheckType, MVT::i32, ++/*127850*/ OPC_MoveParent, ++/*127851*/ OPC_MoveChild, 31, ++/*127853*/ OPC_CheckInteger, 1, ++/*127855*/ OPC_CheckType, MVT::i32, ++/*127857*/ OPC_MoveParent, ++/*127858*/ OPC_CheckType, MVT::v32i8, ++/*127860*/ OPC_MoveParent, ++/*127861*/ OPC_CheckType, MVT::v32i8, ++/*127863*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*127865*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*127873*/ /*Scope*/ 62|128,3/*446*/, /*->128321*/ ++/*127875*/ OPC_CheckChild0Same, 0, ++/*127877*/ OPC_CheckChild1Same, 1, ++/*127879*/ OPC_MoveParent, ++/*127880*/ OPC_MoveParent, ++/*127881*/ OPC_MoveChild1, ++/*127882*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*127885*/ OPC_CheckChild0Integer, 7, ++/*127887*/ OPC_CheckChild0Type, MVT::i32, ++/*127889*/ OPC_CheckChild1Integer, 7, ++/*127891*/ OPC_CheckChild1Type, MVT::i32, ++/*127893*/ OPC_CheckChild2Integer, 7, ++/*127895*/ OPC_CheckChild2Type, MVT::i32, ++/*127897*/ OPC_CheckChild3Integer, 7, ++/*127899*/ OPC_CheckChild3Type, MVT::i32, ++/*127901*/ OPC_CheckChild4Integer, 7, ++/*127903*/ OPC_CheckChild4Type, MVT::i32, ++/*127905*/ OPC_MoveChild5, ++/*127906*/ OPC_CheckInteger, 7, ++/*127908*/ OPC_CheckType, MVT::i32, ++/*127910*/ OPC_MoveParent, ++/*127911*/ OPC_MoveChild6, ++/*127912*/ OPC_CheckInteger, 7, ++/*127914*/ OPC_CheckType, MVT::i32, ++/*127916*/ OPC_MoveParent, ++/*127917*/ OPC_MoveChild7, ++/*127918*/ OPC_CheckInteger, 7, ++/*127920*/ OPC_CheckType, MVT::i32, ++/*127922*/ OPC_MoveParent, ++/*127923*/ OPC_MoveChild, 8, ++/*127925*/ OPC_CheckInteger, 7, ++/*127927*/ OPC_CheckType, MVT::i32, ++/*127929*/ OPC_MoveParent, ++/*127930*/ OPC_MoveChild, 9, ++/*127932*/ OPC_CheckInteger, 7, ++/*127934*/ OPC_CheckType, MVT::i32, ++/*127936*/ OPC_MoveParent, ++/*127937*/ OPC_MoveChild, 10, ++/*127939*/ OPC_CheckInteger, 7, ++/*127941*/ OPC_CheckType, MVT::i32, ++/*127943*/ OPC_MoveParent, ++/*127944*/ OPC_MoveChild, 11, ++/*127946*/ OPC_CheckInteger, 7, ++/*127948*/ OPC_CheckType, MVT::i32, ++/*127950*/ OPC_MoveParent, ++/*127951*/ OPC_MoveChild, 12, ++/*127953*/ OPC_CheckInteger, 7, ++/*127955*/ OPC_CheckType, MVT::i32, ++/*127957*/ OPC_MoveParent, ++/*127958*/ OPC_MoveChild, 13, ++/*127960*/ OPC_CheckInteger, 7, ++/*127962*/ OPC_CheckType, MVT::i32, ++/*127964*/ OPC_MoveParent, ++/*127965*/ OPC_MoveChild, 14, ++/*127967*/ OPC_CheckInteger, 7, ++/*127969*/ OPC_CheckType, MVT::i32, ++/*127971*/ OPC_MoveParent, ++/*127972*/ OPC_MoveChild, 15, ++/*127974*/ OPC_CheckInteger, 7, ++/*127976*/ OPC_CheckType, MVT::i32, ++/*127978*/ OPC_MoveParent, ++/*127979*/ OPC_MoveChild, 16, ++/*127981*/ OPC_CheckInteger, 7, ++/*127983*/ OPC_CheckType, MVT::i32, ++/*127985*/ OPC_MoveParent, ++/*127986*/ OPC_MoveChild, 17, ++/*127988*/ OPC_CheckInteger, 7, ++/*127990*/ OPC_CheckType, MVT::i32, ++/*127992*/ OPC_MoveParent, ++/*127993*/ OPC_MoveChild, 18, ++/*127995*/ OPC_CheckInteger, 7, ++/*127997*/ OPC_CheckType, MVT::i32, ++/*127999*/ OPC_MoveParent, ++/*128000*/ OPC_MoveChild, 19, ++/*128002*/ OPC_CheckInteger, 7, ++/*128004*/ OPC_CheckType, MVT::i32, ++/*128006*/ OPC_MoveParent, ++/*128007*/ OPC_MoveChild, 20, ++/*128009*/ OPC_CheckInteger, 7, ++/*128011*/ OPC_CheckType, MVT::i32, ++/*128013*/ OPC_MoveParent, ++/*128014*/ OPC_MoveChild, 21, ++/*128016*/ OPC_CheckInteger, 7, ++/*128018*/ OPC_CheckType, MVT::i32, ++/*128020*/ OPC_MoveParent, ++/*128021*/ OPC_MoveChild, 22, ++/*128023*/ OPC_CheckInteger, 7, ++/*128025*/ OPC_CheckType, MVT::i32, ++/*128027*/ OPC_MoveParent, ++/*128028*/ OPC_MoveChild, 23, ++/*128030*/ OPC_CheckInteger, 7, ++/*128032*/ OPC_CheckType, MVT::i32, ++/*128034*/ OPC_MoveParent, ++/*128035*/ OPC_MoveChild, 24, ++/*128037*/ OPC_CheckInteger, 7, ++/*128039*/ OPC_CheckType, MVT::i32, ++/*128041*/ OPC_MoveParent, ++/*128042*/ OPC_MoveChild, 25, ++/*128044*/ OPC_CheckInteger, 7, ++/*128046*/ OPC_CheckType, MVT::i32, ++/*128048*/ OPC_MoveParent, ++/*128049*/ OPC_MoveChild, 26, ++/*128051*/ OPC_CheckInteger, 7, ++/*128053*/ OPC_CheckType, MVT::i32, ++/*128055*/ OPC_MoveParent, ++/*128056*/ OPC_MoveChild, 27, ++/*128058*/ OPC_CheckInteger, 7, ++/*128060*/ OPC_CheckType, MVT::i32, ++/*128062*/ OPC_MoveParent, ++/*128063*/ OPC_MoveChild, 28, ++/*128065*/ OPC_CheckInteger, 7, ++/*128067*/ OPC_CheckType, MVT::i32, ++/*128069*/ OPC_MoveParent, ++/*128070*/ OPC_MoveChild, 29, ++/*128072*/ OPC_CheckInteger, 7, ++/*128074*/ OPC_CheckType, MVT::i32, ++/*128076*/ OPC_MoveParent, ++/*128077*/ OPC_MoveChild, 30, ++/*128079*/ OPC_CheckInteger, 7, ++/*128081*/ OPC_CheckType, MVT::i32, ++/*128083*/ OPC_MoveParent, ++/*128084*/ OPC_MoveChild, 31, ++/*128086*/ OPC_CheckInteger, 7, ++/*128088*/ OPC_CheckType, MVT::i32, ++/*128090*/ OPC_MoveParent, ++/*128091*/ OPC_CheckType, MVT::v32i8, ++/*128093*/ OPC_MoveParent, ++/*128094*/ OPC_MoveParent, ++/*128095*/ OPC_MoveParent, ++/*128096*/ OPC_MoveChild1, ++/*128097*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*128100*/ OPC_CheckChild0Integer, 1, ++/*128102*/ OPC_CheckChild0Type, MVT::i32, ++/*128104*/ OPC_CheckChild1Integer, 1, ++/*128106*/ OPC_CheckChild1Type, MVT::i32, ++/*128108*/ OPC_CheckChild2Integer, 1, ++/*128110*/ OPC_CheckChild2Type, MVT::i32, ++/*128112*/ OPC_CheckChild3Integer, 1, ++/*128114*/ OPC_CheckChild3Type, MVT::i32, ++/*128116*/ OPC_CheckChild4Integer, 1, ++/*128118*/ OPC_CheckChild4Type, MVT::i32, ++/*128120*/ OPC_MoveChild5, ++/*128121*/ OPC_CheckInteger, 1, ++/*128123*/ OPC_CheckType, MVT::i32, ++/*128125*/ OPC_MoveParent, ++/*128126*/ OPC_MoveChild6, ++/*128127*/ OPC_CheckInteger, 1, ++/*128129*/ OPC_CheckType, MVT::i32, ++/*128131*/ OPC_MoveParent, ++/*128132*/ OPC_MoveChild7, ++/*128133*/ OPC_CheckInteger, 1, ++/*128135*/ OPC_CheckType, MVT::i32, ++/*128137*/ OPC_MoveParent, ++/*128138*/ OPC_MoveChild, 8, ++/*128140*/ OPC_CheckInteger, 1, ++/*128142*/ OPC_CheckType, MVT::i32, ++/*128144*/ OPC_MoveParent, ++/*128145*/ OPC_MoveChild, 9, ++/*128147*/ OPC_CheckInteger, 1, ++/*128149*/ OPC_CheckType, MVT::i32, ++/*128151*/ OPC_MoveParent, ++/*128152*/ OPC_MoveChild, 10, ++/*128154*/ OPC_CheckInteger, 1, ++/*128156*/ OPC_CheckType, MVT::i32, ++/*128158*/ OPC_MoveParent, ++/*128159*/ OPC_MoveChild, 11, ++/*128161*/ OPC_CheckInteger, 1, ++/*128163*/ OPC_CheckType, MVT::i32, ++/*128165*/ OPC_MoveParent, ++/*128166*/ OPC_MoveChild, 12, ++/*128168*/ OPC_CheckInteger, 1, ++/*128170*/ OPC_CheckType, MVT::i32, ++/*128172*/ OPC_MoveParent, ++/*128173*/ OPC_MoveChild, 13, ++/*128175*/ OPC_CheckInteger, 1, ++/*128177*/ OPC_CheckType, MVT::i32, ++/*128179*/ OPC_MoveParent, ++/*128180*/ OPC_MoveChild, 14, ++/*128182*/ OPC_CheckInteger, 1, ++/*128184*/ OPC_CheckType, MVT::i32, ++/*128186*/ OPC_MoveParent, ++/*128187*/ OPC_MoveChild, 15, ++/*128189*/ OPC_CheckInteger, 1, ++/*128191*/ OPC_CheckType, MVT::i32, ++/*128193*/ OPC_MoveParent, ++/*128194*/ OPC_MoveChild, 16, ++/*128196*/ OPC_CheckInteger, 1, ++/*128198*/ OPC_CheckType, MVT::i32, ++/*128200*/ OPC_MoveParent, ++/*128201*/ OPC_MoveChild, 17, ++/*128203*/ OPC_CheckInteger, 1, ++/*128205*/ OPC_CheckType, MVT::i32, ++/*128207*/ OPC_MoveParent, ++/*128208*/ OPC_MoveChild, 18, ++/*128210*/ OPC_CheckInteger, 1, ++/*128212*/ OPC_CheckType, MVT::i32, ++/*128214*/ OPC_MoveParent, ++/*128215*/ OPC_MoveChild, 19, ++/*128217*/ OPC_CheckInteger, 1, ++/*128219*/ OPC_CheckType, MVT::i32, ++/*128221*/ OPC_MoveParent, ++/*128222*/ OPC_MoveChild, 20, ++/*128224*/ OPC_CheckInteger, 1, ++/*128226*/ OPC_CheckType, MVT::i32, ++/*128228*/ OPC_MoveParent, ++/*128229*/ OPC_MoveChild, 21, ++/*128231*/ OPC_CheckInteger, 1, ++/*128233*/ OPC_CheckType, MVT::i32, ++/*128235*/ OPC_MoveParent, ++/*128236*/ OPC_MoveChild, 22, ++/*128238*/ OPC_CheckInteger, 1, ++/*128240*/ OPC_CheckType, MVT::i32, ++/*128242*/ OPC_MoveParent, ++/*128243*/ OPC_MoveChild, 23, ++/*128245*/ OPC_CheckInteger, 1, ++/*128247*/ OPC_CheckType, MVT::i32, ++/*128249*/ OPC_MoveParent, ++/*128250*/ OPC_MoveChild, 24, ++/*128252*/ OPC_CheckInteger, 1, ++/*128254*/ OPC_CheckType, MVT::i32, ++/*128256*/ OPC_MoveParent, ++/*128257*/ OPC_MoveChild, 25, ++/*128259*/ OPC_CheckInteger, 1, ++/*128261*/ OPC_CheckType, MVT::i32, ++/*128263*/ OPC_MoveParent, ++/*128264*/ OPC_MoveChild, 26, ++/*128266*/ OPC_CheckInteger, 1, ++/*128268*/ OPC_CheckType, MVT::i32, ++/*128270*/ OPC_MoveParent, ++/*128271*/ OPC_MoveChild, 27, ++/*128273*/ OPC_CheckInteger, 1, ++/*128275*/ OPC_CheckType, MVT::i32, ++/*128277*/ OPC_MoveParent, ++/*128278*/ OPC_MoveChild, 28, ++/*128280*/ OPC_CheckInteger, 1, ++/*128282*/ OPC_CheckType, MVT::i32, ++/*128284*/ OPC_MoveParent, ++/*128285*/ OPC_MoveChild, 29, ++/*128287*/ OPC_CheckInteger, 1, ++/*128289*/ OPC_CheckType, MVT::i32, ++/*128291*/ OPC_MoveParent, ++/*128292*/ OPC_MoveChild, 30, ++/*128294*/ OPC_CheckInteger, 1, ++/*128296*/ OPC_CheckType, MVT::i32, ++/*128298*/ OPC_MoveParent, ++/*128299*/ OPC_MoveChild, 31, ++/*128301*/ OPC_CheckInteger, 1, ++/*128303*/ OPC_CheckType, MVT::i32, ++/*128305*/ OPC_MoveParent, ++/*128306*/ OPC_CheckType, MVT::v32i8, ++/*128308*/ OPC_MoveParent, ++/*128309*/ OPC_CheckType, MVT::v32i8, ++/*128311*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*128313*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*128321*/ 0, /*End of Scope*/ ++/*128322*/ 0, /*End of Scope*/ ++/*128323*/ 0, /*End of Scope*/ ++/*128324*/ 0, /*End of Scope*/ ++/*128325*/ 0, // EndSwitchOpcode ++/*128326*/ /*Scope*/ 67|128,120|128,1/*31811*/, /*->160140*/ ++/*128329*/ OPC_RecordChild0, // #0 = $b ++/*128330*/ OPC_MoveChild1, ++/*128331*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*128334*/ OPC_Scope, 13|128,62/*7949*/, /*->136286*/ // 4 children in Scope ++/*128337*/ OPC_MoveChild0, ++/*128338*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*128341*/ OPC_CheckChild0Integer, 1, ++/*128343*/ OPC_CheckChild0Type, MVT::i32, ++/*128345*/ OPC_CheckChild1Integer, 1, ++/*128347*/ OPC_CheckChild1Type, MVT::i32, ++/*128349*/ OPC_CheckChild2Integer, 1, ++/*128351*/ OPC_CheckChild2Type, MVT::i32, ++/*128353*/ OPC_CheckChild3Integer, 1, ++/*128355*/ OPC_CheckChild3Type, MVT::i32, ++/*128357*/ OPC_CheckChild4Integer, 1, ++/*128359*/ OPC_CheckChild4Type, MVT::i32, ++/*128361*/ OPC_MoveChild5, ++/*128362*/ OPC_CheckInteger, 1, ++/*128364*/ OPC_CheckType, MVT::i32, ++/*128366*/ OPC_MoveParent, ++/*128367*/ OPC_MoveChild6, ++/*128368*/ OPC_CheckInteger, 1, ++/*128370*/ OPC_CheckType, MVT::i32, ++/*128372*/ OPC_MoveParent, ++/*128373*/ OPC_MoveChild7, ++/*128374*/ OPC_CheckInteger, 1, ++/*128376*/ OPC_CheckType, MVT::i32, ++/*128378*/ OPC_MoveParent, ++/*128379*/ OPC_MoveChild, 8, ++/*128381*/ OPC_CheckInteger, 1, ++/*128383*/ OPC_CheckType, MVT::i32, ++/*128385*/ OPC_MoveParent, ++/*128386*/ OPC_MoveChild, 9, ++/*128388*/ OPC_CheckInteger, 1, ++/*128390*/ OPC_CheckType, MVT::i32, ++/*128392*/ OPC_MoveParent, ++/*128393*/ OPC_MoveChild, 10, ++/*128395*/ OPC_CheckInteger, 1, ++/*128397*/ OPC_CheckType, MVT::i32, ++/*128399*/ OPC_MoveParent, ++/*128400*/ OPC_MoveChild, 11, ++/*128402*/ OPC_CheckInteger, 1, ++/*128404*/ OPC_CheckType, MVT::i32, ++/*128406*/ OPC_MoveParent, ++/*128407*/ OPC_MoveChild, 12, ++/*128409*/ OPC_CheckInteger, 1, ++/*128411*/ OPC_CheckType, MVT::i32, ++/*128413*/ OPC_MoveParent, ++/*128414*/ OPC_MoveChild, 13, ++/*128416*/ OPC_CheckInteger, 1, ++/*128418*/ OPC_CheckType, MVT::i32, ++/*128420*/ OPC_MoveParent, ++/*128421*/ OPC_MoveChild, 14, ++/*128423*/ OPC_CheckInteger, 1, ++/*128425*/ OPC_CheckType, MVT::i32, ++/*128427*/ OPC_MoveParent, ++/*128428*/ OPC_MoveChild, 15, ++/*128430*/ OPC_CheckInteger, 1, ++/*128432*/ OPC_CheckType, MVT::i32, ++/*128434*/ OPC_MoveParent, ++/*128435*/ OPC_MoveChild, 16, ++/*128437*/ OPC_CheckInteger, 1, ++/*128439*/ OPC_CheckType, MVT::i32, ++/*128441*/ OPC_MoveParent, ++/*128442*/ OPC_MoveChild, 17, ++/*128444*/ OPC_CheckInteger, 1, ++/*128446*/ OPC_CheckType, MVT::i32, ++/*128448*/ OPC_MoveParent, ++/*128449*/ OPC_MoveChild, 18, ++/*128451*/ OPC_CheckInteger, 1, ++/*128453*/ OPC_CheckType, MVT::i32, ++/*128455*/ OPC_MoveParent, ++/*128456*/ OPC_MoveChild, 19, ++/*128458*/ OPC_CheckInteger, 1, ++/*128460*/ OPC_CheckType, MVT::i32, ++/*128462*/ OPC_MoveParent, ++/*128463*/ OPC_MoveChild, 20, ++/*128465*/ OPC_CheckInteger, 1, ++/*128467*/ OPC_CheckType, MVT::i32, ++/*128469*/ OPC_MoveParent, ++/*128470*/ OPC_MoveChild, 21, ++/*128472*/ OPC_CheckInteger, 1, ++/*128474*/ OPC_CheckType, MVT::i32, ++/*128476*/ OPC_MoveParent, ++/*128477*/ OPC_MoveChild, 22, ++/*128479*/ OPC_CheckInteger, 1, ++/*128481*/ OPC_CheckType, MVT::i32, ++/*128483*/ OPC_MoveParent, ++/*128484*/ OPC_MoveChild, 23, ++/*128486*/ OPC_CheckInteger, 1, ++/*128488*/ OPC_CheckType, MVT::i32, ++/*128490*/ OPC_MoveParent, ++/*128491*/ OPC_MoveChild, 24, ++/*128493*/ OPC_CheckInteger, 1, ++/*128495*/ OPC_CheckType, MVT::i32, ++/*128497*/ OPC_MoveParent, ++/*128498*/ OPC_MoveChild, 25, ++/*128500*/ OPC_CheckInteger, 1, ++/*128502*/ OPC_CheckType, MVT::i32, ++/*128504*/ OPC_MoveParent, ++/*128505*/ OPC_MoveChild, 26, ++/*128507*/ OPC_CheckInteger, 1, ++/*128509*/ OPC_CheckType, MVT::i32, ++/*128511*/ OPC_MoveParent, ++/*128512*/ OPC_MoveChild, 27, ++/*128514*/ OPC_CheckInteger, 1, ++/*128516*/ OPC_CheckType, MVT::i32, ++/*128518*/ OPC_MoveParent, ++/*128519*/ OPC_MoveChild, 28, ++/*128521*/ OPC_CheckInteger, 1, ++/*128523*/ OPC_CheckType, MVT::i32, ++/*128525*/ OPC_MoveParent, ++/*128526*/ OPC_MoveChild, 29, ++/*128528*/ OPC_CheckInteger, 1, ++/*128530*/ OPC_CheckType, MVT::i32, ++/*128532*/ OPC_MoveParent, ++/*128533*/ OPC_MoveChild, 30, ++/*128535*/ OPC_CheckInteger, 1, ++/*128537*/ OPC_CheckType, MVT::i32, ++/*128539*/ OPC_MoveParent, ++/*128540*/ OPC_MoveChild, 31, ++/*128542*/ OPC_CheckInteger, 1, ++/*128544*/ OPC_CheckType, MVT::i32, ++/*128546*/ OPC_MoveParent, ++/*128547*/ OPC_MoveParent, ++/*128548*/ OPC_RecordChild1, // #1 = $a ++/*128549*/ OPC_MoveParent, ++/*128550*/ OPC_MoveParent, ++/*128551*/ OPC_MoveChild1, ++/*128552*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*128555*/ OPC_MoveChild0, ++/*128556*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*128559*/ OPC_Scope, 120|128,30/*3960*/, /*->132522*/ // 4 children in Scope ++/*128562*/ OPC_MoveChild0, ++/*128563*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*128566*/ OPC_Scope, 17|128,5/*657*/, /*->129226*/ // 6 children in Scope ++/*128569*/ OPC_MoveChild0, ++/*128570*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*128573*/ OPC_CheckChild0Integer, 1, ++/*128575*/ OPC_CheckChild0Type, MVT::i32, ++/*128577*/ OPC_CheckChild1Integer, 1, ++/*128579*/ OPC_CheckChild1Type, MVT::i32, ++/*128581*/ OPC_CheckChild2Integer, 1, ++/*128583*/ OPC_CheckChild2Type, MVT::i32, ++/*128585*/ OPC_CheckChild3Integer, 1, ++/*128587*/ OPC_CheckChild3Type, MVT::i32, ++/*128589*/ OPC_CheckChild4Integer, 1, ++/*128591*/ OPC_CheckChild4Type, MVT::i32, ++/*128593*/ OPC_MoveChild5, ++/*128594*/ OPC_CheckInteger, 1, ++/*128596*/ OPC_CheckType, MVT::i32, ++/*128598*/ OPC_MoveParent, ++/*128599*/ OPC_MoveChild6, ++/*128600*/ OPC_CheckInteger, 1, ++/*128602*/ OPC_CheckType, MVT::i32, ++/*128604*/ OPC_MoveParent, ++/*128605*/ OPC_MoveChild7, ++/*128606*/ OPC_CheckInteger, 1, ++/*128608*/ OPC_CheckType, MVT::i32, ++/*128610*/ OPC_MoveParent, ++/*128611*/ OPC_MoveChild, 8, ++/*128613*/ OPC_CheckInteger, 1, ++/*128615*/ OPC_CheckType, MVT::i32, ++/*128617*/ OPC_MoveParent, ++/*128618*/ OPC_MoveChild, 9, ++/*128620*/ OPC_CheckInteger, 1, ++/*128622*/ OPC_CheckType, MVT::i32, ++/*128624*/ OPC_MoveParent, ++/*128625*/ OPC_MoveChild, 10, ++/*128627*/ OPC_CheckInteger, 1, ++/*128629*/ OPC_CheckType, MVT::i32, ++/*128631*/ OPC_MoveParent, ++/*128632*/ OPC_MoveChild, 11, ++/*128634*/ OPC_CheckInteger, 1, ++/*128636*/ OPC_CheckType, MVT::i32, ++/*128638*/ OPC_MoveParent, ++/*128639*/ OPC_MoveChild, 12, ++/*128641*/ OPC_CheckInteger, 1, ++/*128643*/ OPC_CheckType, MVT::i32, ++/*128645*/ OPC_MoveParent, ++/*128646*/ OPC_MoveChild, 13, ++/*128648*/ OPC_CheckInteger, 1, ++/*128650*/ OPC_CheckType, MVT::i32, ++/*128652*/ OPC_MoveParent, ++/*128653*/ OPC_MoveChild, 14, ++/*128655*/ OPC_CheckInteger, 1, ++/*128657*/ OPC_CheckType, MVT::i32, ++/*128659*/ OPC_MoveParent, ++/*128660*/ OPC_MoveChild, 15, ++/*128662*/ OPC_CheckInteger, 1, ++/*128664*/ OPC_CheckType, MVT::i32, ++/*128666*/ OPC_MoveParent, ++/*128667*/ OPC_MoveChild, 16, ++/*128669*/ OPC_CheckInteger, 1, ++/*128671*/ OPC_CheckType, MVT::i32, ++/*128673*/ OPC_MoveParent, ++/*128674*/ OPC_MoveChild, 17, ++/*128676*/ OPC_CheckInteger, 1, ++/*128678*/ OPC_CheckType, MVT::i32, ++/*128680*/ OPC_MoveParent, ++/*128681*/ OPC_MoveChild, 18, ++/*128683*/ OPC_CheckInteger, 1, ++/*128685*/ OPC_CheckType, MVT::i32, ++/*128687*/ OPC_MoveParent, ++/*128688*/ OPC_MoveChild, 19, ++/*128690*/ OPC_CheckInteger, 1, ++/*128692*/ OPC_CheckType, MVT::i32, ++/*128694*/ OPC_MoveParent, ++/*128695*/ OPC_MoveChild, 20, ++/*128697*/ OPC_CheckInteger, 1, ++/*128699*/ OPC_CheckType, MVT::i32, ++/*128701*/ OPC_MoveParent, ++/*128702*/ OPC_MoveChild, 21, ++/*128704*/ OPC_CheckInteger, 1, ++/*128706*/ OPC_CheckType, MVT::i32, ++/*128708*/ OPC_MoveParent, ++/*128709*/ OPC_MoveChild, 22, ++/*128711*/ OPC_CheckInteger, 1, ++/*128713*/ OPC_CheckType, MVT::i32, ++/*128715*/ OPC_MoveParent, ++/*128716*/ OPC_MoveChild, 23, ++/*128718*/ OPC_CheckInteger, 1, ++/*128720*/ OPC_CheckType, MVT::i32, ++/*128722*/ OPC_MoveParent, ++/*128723*/ OPC_MoveChild, 24, ++/*128725*/ OPC_CheckInteger, 1, ++/*128727*/ OPC_CheckType, MVT::i32, ++/*128729*/ OPC_MoveParent, ++/*128730*/ OPC_MoveChild, 25, ++/*128732*/ OPC_CheckInteger, 1, ++/*128734*/ OPC_CheckType, MVT::i32, ++/*128736*/ OPC_MoveParent, ++/*128737*/ OPC_MoveChild, 26, ++/*128739*/ OPC_CheckInteger, 1, ++/*128741*/ OPC_CheckType, MVT::i32, ++/*128743*/ OPC_MoveParent, ++/*128744*/ OPC_MoveChild, 27, ++/*128746*/ OPC_CheckInteger, 1, ++/*128748*/ OPC_CheckType, MVT::i32, ++/*128750*/ OPC_MoveParent, ++/*128751*/ OPC_MoveChild, 28, ++/*128753*/ OPC_CheckInteger, 1, ++/*128755*/ OPC_CheckType, MVT::i32, ++/*128757*/ OPC_MoveParent, ++/*128758*/ OPC_MoveChild, 29, ++/*128760*/ OPC_CheckInteger, 1, ++/*128762*/ OPC_CheckType, MVT::i32, ++/*128764*/ OPC_MoveParent, ++/*128765*/ OPC_MoveChild, 30, ++/*128767*/ OPC_CheckInteger, 1, ++/*128769*/ OPC_CheckType, MVT::i32, ++/*128771*/ OPC_MoveParent, ++/*128772*/ OPC_MoveChild, 31, ++/*128774*/ OPC_CheckInteger, 1, ++/*128776*/ OPC_CheckType, MVT::i32, ++/*128778*/ OPC_MoveParent, ++/*128779*/ OPC_MoveParent, ++/*128780*/ OPC_CheckChild1Same, 1, ++/*128782*/ OPC_MoveParent, ++/*128783*/ OPC_CheckChild1Same, 0, ++/*128785*/ OPC_MoveParent, ++/*128786*/ OPC_MoveChild1, ++/*128787*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*128790*/ OPC_CheckChild0Integer, 7, ++/*128792*/ OPC_CheckChild0Type, MVT::i32, ++/*128794*/ OPC_CheckChild1Integer, 7, ++/*128796*/ OPC_CheckChild1Type, MVT::i32, ++/*128798*/ OPC_CheckChild2Integer, 7, ++/*128800*/ OPC_CheckChild2Type, MVT::i32, ++/*128802*/ OPC_CheckChild3Integer, 7, ++/*128804*/ OPC_CheckChild3Type, MVT::i32, ++/*128806*/ OPC_CheckChild4Integer, 7, ++/*128808*/ OPC_CheckChild4Type, MVT::i32, ++/*128810*/ OPC_MoveChild5, ++/*128811*/ OPC_CheckInteger, 7, ++/*128813*/ OPC_CheckType, MVT::i32, ++/*128815*/ OPC_MoveParent, ++/*128816*/ OPC_MoveChild6, ++/*128817*/ OPC_CheckInteger, 7, ++/*128819*/ OPC_CheckType, MVT::i32, ++/*128821*/ OPC_MoveParent, ++/*128822*/ OPC_MoveChild7, ++/*128823*/ OPC_CheckInteger, 7, ++/*128825*/ OPC_CheckType, MVT::i32, ++/*128827*/ OPC_MoveParent, ++/*128828*/ OPC_MoveChild, 8, ++/*128830*/ OPC_CheckInteger, 7, ++/*128832*/ OPC_CheckType, MVT::i32, ++/*128834*/ OPC_MoveParent, ++/*128835*/ OPC_MoveChild, 9, ++/*128837*/ OPC_CheckInteger, 7, ++/*128839*/ OPC_CheckType, MVT::i32, ++/*128841*/ OPC_MoveParent, ++/*128842*/ OPC_MoveChild, 10, ++/*128844*/ OPC_CheckInteger, 7, ++/*128846*/ OPC_CheckType, MVT::i32, ++/*128848*/ OPC_MoveParent, ++/*128849*/ OPC_MoveChild, 11, ++/*128851*/ OPC_CheckInteger, 7, ++/*128853*/ OPC_CheckType, MVT::i32, ++/*128855*/ OPC_MoveParent, ++/*128856*/ OPC_MoveChild, 12, ++/*128858*/ OPC_CheckInteger, 7, ++/*128860*/ OPC_CheckType, MVT::i32, ++/*128862*/ OPC_MoveParent, ++/*128863*/ OPC_MoveChild, 13, ++/*128865*/ OPC_CheckInteger, 7, ++/*128867*/ OPC_CheckType, MVT::i32, ++/*128869*/ OPC_MoveParent, ++/*128870*/ OPC_MoveChild, 14, ++/*128872*/ OPC_CheckInteger, 7, ++/*128874*/ OPC_CheckType, MVT::i32, ++/*128876*/ OPC_MoveParent, ++/*128877*/ OPC_MoveChild, 15, ++/*128879*/ OPC_CheckInteger, 7, ++/*128881*/ OPC_CheckType, MVT::i32, ++/*128883*/ OPC_MoveParent, ++/*128884*/ OPC_MoveChild, 16, ++/*128886*/ OPC_CheckInteger, 7, ++/*128888*/ OPC_CheckType, MVT::i32, ++/*128890*/ OPC_MoveParent, ++/*128891*/ OPC_MoveChild, 17, ++/*128893*/ OPC_CheckInteger, 7, ++/*128895*/ OPC_CheckType, MVT::i32, ++/*128897*/ OPC_MoveParent, ++/*128898*/ OPC_MoveChild, 18, ++/*128900*/ OPC_CheckInteger, 7, ++/*128902*/ OPC_CheckType, MVT::i32, ++/*128904*/ OPC_MoveParent, ++/*128905*/ OPC_MoveChild, 19, ++/*128907*/ OPC_CheckInteger, 7, ++/*128909*/ OPC_CheckType, MVT::i32, ++/*128911*/ OPC_MoveParent, ++/*128912*/ OPC_MoveChild, 20, ++/*128914*/ OPC_CheckInteger, 7, ++/*128916*/ OPC_CheckType, MVT::i32, ++/*128918*/ OPC_MoveParent, ++/*128919*/ OPC_MoveChild, 21, ++/*128921*/ OPC_CheckInteger, 7, ++/*128923*/ OPC_CheckType, MVT::i32, ++/*128925*/ OPC_MoveParent, ++/*128926*/ OPC_MoveChild, 22, ++/*128928*/ OPC_CheckInteger, 7, ++/*128930*/ OPC_CheckType, MVT::i32, ++/*128932*/ OPC_MoveParent, ++/*128933*/ OPC_MoveChild, 23, ++/*128935*/ OPC_CheckInteger, 7, ++/*128937*/ OPC_CheckType, MVT::i32, ++/*128939*/ OPC_MoveParent, ++/*128940*/ OPC_MoveChild, 24, ++/*128942*/ OPC_CheckInteger, 7, ++/*128944*/ OPC_CheckType, MVT::i32, ++/*128946*/ OPC_MoveParent, ++/*128947*/ OPC_MoveChild, 25, ++/*128949*/ OPC_CheckInteger, 7, ++/*128951*/ OPC_CheckType, MVT::i32, ++/*128953*/ OPC_MoveParent, ++/*128954*/ OPC_MoveChild, 26, ++/*128956*/ OPC_CheckInteger, 7, ++/*128958*/ OPC_CheckType, MVT::i32, ++/*128960*/ OPC_MoveParent, ++/*128961*/ OPC_MoveChild, 27, ++/*128963*/ OPC_CheckInteger, 7, ++/*128965*/ OPC_CheckType, MVT::i32, ++/*128967*/ OPC_MoveParent, ++/*128968*/ OPC_MoveChild, 28, ++/*128970*/ OPC_CheckInteger, 7, ++/*128972*/ OPC_CheckType, MVT::i32, ++/*128974*/ OPC_MoveParent, ++/*128975*/ OPC_MoveChild, 29, ++/*128977*/ OPC_CheckInteger, 7, ++/*128979*/ OPC_CheckType, MVT::i32, ++/*128981*/ OPC_MoveParent, ++/*128982*/ OPC_MoveChild, 30, ++/*128984*/ OPC_CheckInteger, 7, ++/*128986*/ OPC_CheckType, MVT::i32, ++/*128988*/ OPC_MoveParent, ++/*128989*/ OPC_MoveChild, 31, ++/*128991*/ OPC_CheckInteger, 7, ++/*128993*/ OPC_CheckType, MVT::i32, ++/*128995*/ OPC_MoveParent, ++/*128996*/ OPC_CheckType, MVT::v32i8, ++/*128998*/ OPC_MoveParent, ++/*128999*/ OPC_MoveParent, ++/*129000*/ OPC_MoveParent, ++/*129001*/ OPC_MoveChild1, ++/*129002*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*129005*/ OPC_CheckChild0Integer, 1, ++/*129007*/ OPC_CheckChild0Type, MVT::i32, ++/*129009*/ OPC_CheckChild1Integer, 1, ++/*129011*/ OPC_CheckChild1Type, MVT::i32, ++/*129013*/ OPC_CheckChild2Integer, 1, ++/*129015*/ OPC_CheckChild2Type, MVT::i32, ++/*129017*/ OPC_CheckChild3Integer, 1, ++/*129019*/ OPC_CheckChild3Type, MVT::i32, ++/*129021*/ OPC_CheckChild4Integer, 1, ++/*129023*/ OPC_CheckChild4Type, MVT::i32, ++/*129025*/ OPC_MoveChild5, ++/*129026*/ OPC_CheckInteger, 1, ++/*129028*/ OPC_CheckType, MVT::i32, ++/*129030*/ OPC_MoveParent, ++/*129031*/ OPC_MoveChild6, ++/*129032*/ OPC_CheckInteger, 1, ++/*129034*/ OPC_CheckType, MVT::i32, ++/*129036*/ OPC_MoveParent, ++/*129037*/ OPC_MoveChild7, ++/*129038*/ OPC_CheckInteger, 1, ++/*129040*/ OPC_CheckType, MVT::i32, ++/*129042*/ OPC_MoveParent, ++/*129043*/ OPC_MoveChild, 8, ++/*129045*/ OPC_CheckInteger, 1, ++/*129047*/ OPC_CheckType, MVT::i32, ++/*129049*/ OPC_MoveParent, ++/*129050*/ OPC_MoveChild, 9, ++/*129052*/ OPC_CheckInteger, 1, ++/*129054*/ OPC_CheckType, MVT::i32, ++/*129056*/ OPC_MoveParent, ++/*129057*/ OPC_MoveChild, 10, ++/*129059*/ OPC_CheckInteger, 1, ++/*129061*/ OPC_CheckType, MVT::i32, ++/*129063*/ OPC_MoveParent, ++/*129064*/ OPC_MoveChild, 11, ++/*129066*/ OPC_CheckInteger, 1, ++/*129068*/ OPC_CheckType, MVT::i32, ++/*129070*/ OPC_MoveParent, ++/*129071*/ OPC_MoveChild, 12, ++/*129073*/ OPC_CheckInteger, 1, ++/*129075*/ OPC_CheckType, MVT::i32, ++/*129077*/ OPC_MoveParent, ++/*129078*/ OPC_MoveChild, 13, ++/*129080*/ OPC_CheckInteger, 1, ++/*129082*/ OPC_CheckType, MVT::i32, ++/*129084*/ OPC_MoveParent, ++/*129085*/ OPC_MoveChild, 14, ++/*129087*/ OPC_CheckInteger, 1, ++/*129089*/ OPC_CheckType, MVT::i32, ++/*129091*/ OPC_MoveParent, ++/*129092*/ OPC_MoveChild, 15, ++/*129094*/ OPC_CheckInteger, 1, ++/*129096*/ OPC_CheckType, MVT::i32, ++/*129098*/ OPC_MoveParent, ++/*129099*/ OPC_MoveChild, 16, ++/*129101*/ OPC_CheckInteger, 1, ++/*129103*/ OPC_CheckType, MVT::i32, ++/*129105*/ OPC_MoveParent, ++/*129106*/ OPC_MoveChild, 17, ++/*129108*/ OPC_CheckInteger, 1, ++/*129110*/ OPC_CheckType, MVT::i32, ++/*129112*/ OPC_MoveParent, ++/*129113*/ OPC_MoveChild, 18, ++/*129115*/ OPC_CheckInteger, 1, ++/*129117*/ OPC_CheckType, MVT::i32, ++/*129119*/ OPC_MoveParent, ++/*129120*/ OPC_MoveChild, 19, ++/*129122*/ OPC_CheckInteger, 1, ++/*129124*/ OPC_CheckType, MVT::i32, ++/*129126*/ OPC_MoveParent, ++/*129127*/ OPC_MoveChild, 20, ++/*129129*/ OPC_CheckInteger, 1, ++/*129131*/ OPC_CheckType, MVT::i32, ++/*129133*/ OPC_MoveParent, ++/*129134*/ OPC_MoveChild, 21, ++/*129136*/ OPC_CheckInteger, 1, ++/*129138*/ OPC_CheckType, MVT::i32, ++/*129140*/ OPC_MoveParent, ++/*129141*/ OPC_MoveChild, 22, ++/*129143*/ OPC_CheckInteger, 1, ++/*129145*/ OPC_CheckType, MVT::i32, ++/*129147*/ OPC_MoveParent, ++/*129148*/ OPC_MoveChild, 23, ++/*129150*/ OPC_CheckInteger, 1, ++/*129152*/ OPC_CheckType, MVT::i32, ++/*129154*/ OPC_MoveParent, ++/*129155*/ OPC_MoveChild, 24, ++/*129157*/ OPC_CheckInteger, 1, ++/*129159*/ OPC_CheckType, MVT::i32, ++/*129161*/ OPC_MoveParent, ++/*129162*/ OPC_MoveChild, 25, ++/*129164*/ OPC_CheckInteger, 1, ++/*129166*/ OPC_CheckType, MVT::i32, ++/*129168*/ OPC_MoveParent, ++/*129169*/ OPC_MoveChild, 26, ++/*129171*/ OPC_CheckInteger, 1, ++/*129173*/ OPC_CheckType, MVT::i32, ++/*129175*/ OPC_MoveParent, ++/*129176*/ OPC_MoveChild, 27, ++/*129178*/ OPC_CheckInteger, 1, ++/*129180*/ OPC_CheckType, MVT::i32, ++/*129182*/ OPC_MoveParent, ++/*129183*/ OPC_MoveChild, 28, ++/*129185*/ OPC_CheckInteger, 1, ++/*129187*/ OPC_CheckType, MVT::i32, ++/*129189*/ OPC_MoveParent, ++/*129190*/ OPC_MoveChild, 29, ++/*129192*/ OPC_CheckInteger, 1, ++/*129194*/ OPC_CheckType, MVT::i32, ++/*129196*/ OPC_MoveParent, ++/*129197*/ OPC_MoveChild, 30, ++/*129199*/ OPC_CheckInteger, 1, ++/*129201*/ OPC_CheckType, MVT::i32, ++/*129203*/ OPC_MoveParent, ++/*129204*/ OPC_MoveChild, 31, ++/*129206*/ OPC_CheckInteger, 1, ++/*129208*/ OPC_CheckType, MVT::i32, ++/*129210*/ OPC_MoveParent, ++/*129211*/ OPC_CheckType, MVT::v32i8, ++/*129213*/ OPC_MoveParent, ++/*129214*/ OPC_CheckType, MVT::v32i8, ++/*129216*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*129218*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a)), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a), LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*129226*/ /*Scope*/ 17|128,5/*657*/, /*->129885*/ ++/*129228*/ OPC_CheckChild0Same, 1, ++/*129230*/ OPC_MoveChild1, ++/*129231*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*129234*/ OPC_CheckChild0Integer, 1, ++/*129236*/ OPC_CheckChild0Type, MVT::i32, ++/*129238*/ OPC_CheckChild1Integer, 1, ++/*129240*/ OPC_CheckChild1Type, MVT::i32, ++/*129242*/ OPC_CheckChild2Integer, 1, ++/*129244*/ OPC_CheckChild2Type, MVT::i32, ++/*129246*/ OPC_CheckChild3Integer, 1, ++/*129248*/ OPC_CheckChild3Type, MVT::i32, ++/*129250*/ OPC_CheckChild4Integer, 1, ++/*129252*/ OPC_CheckChild4Type, MVT::i32, ++/*129254*/ OPC_MoveChild5, ++/*129255*/ OPC_CheckInteger, 1, ++/*129257*/ OPC_CheckType, MVT::i32, ++/*129259*/ OPC_MoveParent, ++/*129260*/ OPC_MoveChild6, ++/*129261*/ OPC_CheckInteger, 1, ++/*129263*/ OPC_CheckType, MVT::i32, ++/*129265*/ OPC_MoveParent, ++/*129266*/ OPC_MoveChild7, ++/*129267*/ OPC_CheckInteger, 1, ++/*129269*/ OPC_CheckType, MVT::i32, ++/*129271*/ OPC_MoveParent, ++/*129272*/ OPC_MoveChild, 8, ++/*129274*/ OPC_CheckInteger, 1, ++/*129276*/ OPC_CheckType, MVT::i32, ++/*129278*/ OPC_MoveParent, ++/*129279*/ OPC_MoveChild, 9, ++/*129281*/ OPC_CheckInteger, 1, ++/*129283*/ OPC_CheckType, MVT::i32, ++/*129285*/ OPC_MoveParent, ++/*129286*/ OPC_MoveChild, 10, ++/*129288*/ OPC_CheckInteger, 1, ++/*129290*/ OPC_CheckType, MVT::i32, ++/*129292*/ OPC_MoveParent, ++/*129293*/ OPC_MoveChild, 11, ++/*129295*/ OPC_CheckInteger, 1, ++/*129297*/ OPC_CheckType, MVT::i32, ++/*129299*/ OPC_MoveParent, ++/*129300*/ OPC_MoveChild, 12, ++/*129302*/ OPC_CheckInteger, 1, ++/*129304*/ OPC_CheckType, MVT::i32, ++/*129306*/ OPC_MoveParent, ++/*129307*/ OPC_MoveChild, 13, ++/*129309*/ OPC_CheckInteger, 1, ++/*129311*/ OPC_CheckType, MVT::i32, ++/*129313*/ OPC_MoveParent, ++/*129314*/ OPC_MoveChild, 14, ++/*129316*/ OPC_CheckInteger, 1, ++/*129318*/ OPC_CheckType, MVT::i32, ++/*129320*/ OPC_MoveParent, ++/*129321*/ OPC_MoveChild, 15, ++/*129323*/ OPC_CheckInteger, 1, ++/*129325*/ OPC_CheckType, MVT::i32, ++/*129327*/ OPC_MoveParent, ++/*129328*/ OPC_MoveChild, 16, ++/*129330*/ OPC_CheckInteger, 1, ++/*129332*/ OPC_CheckType, MVT::i32, ++/*129334*/ OPC_MoveParent, ++/*129335*/ OPC_MoveChild, 17, ++/*129337*/ OPC_CheckInteger, 1, ++/*129339*/ OPC_CheckType, MVT::i32, ++/*129341*/ OPC_MoveParent, ++/*129342*/ OPC_MoveChild, 18, ++/*129344*/ OPC_CheckInteger, 1, ++/*129346*/ OPC_CheckType, MVT::i32, ++/*129348*/ OPC_MoveParent, ++/*129349*/ OPC_MoveChild, 19, ++/*129351*/ OPC_CheckInteger, 1, ++/*129353*/ OPC_CheckType, MVT::i32, ++/*129355*/ OPC_MoveParent, ++/*129356*/ OPC_MoveChild, 20, ++/*129358*/ OPC_CheckInteger, 1, ++/*129360*/ OPC_CheckType, MVT::i32, ++/*129362*/ OPC_MoveParent, ++/*129363*/ OPC_MoveChild, 21, ++/*129365*/ OPC_CheckInteger, 1, ++/*129367*/ OPC_CheckType, MVT::i32, ++/*129369*/ OPC_MoveParent, ++/*129370*/ OPC_MoveChild, 22, ++/*129372*/ OPC_CheckInteger, 1, ++/*129374*/ OPC_CheckType, MVT::i32, ++/*129376*/ OPC_MoveParent, ++/*129377*/ OPC_MoveChild, 23, ++/*129379*/ OPC_CheckInteger, 1, ++/*129381*/ OPC_CheckType, MVT::i32, ++/*129383*/ OPC_MoveParent, ++/*129384*/ OPC_MoveChild, 24, ++/*129386*/ OPC_CheckInteger, 1, ++/*129388*/ OPC_CheckType, MVT::i32, ++/*129390*/ OPC_MoveParent, ++/*129391*/ OPC_MoveChild, 25, ++/*129393*/ OPC_CheckInteger, 1, ++/*129395*/ OPC_CheckType, MVT::i32, ++/*129397*/ OPC_MoveParent, ++/*129398*/ OPC_MoveChild, 26, ++/*129400*/ OPC_CheckInteger, 1, ++/*129402*/ OPC_CheckType, MVT::i32, ++/*129404*/ OPC_MoveParent, ++/*129405*/ OPC_MoveChild, 27, ++/*129407*/ OPC_CheckInteger, 1, ++/*129409*/ OPC_CheckType, MVT::i32, ++/*129411*/ OPC_MoveParent, ++/*129412*/ OPC_MoveChild, 28, ++/*129414*/ OPC_CheckInteger, 1, ++/*129416*/ OPC_CheckType, MVT::i32, ++/*129418*/ OPC_MoveParent, ++/*129419*/ OPC_MoveChild, 29, ++/*129421*/ OPC_CheckInteger, 1, ++/*129423*/ OPC_CheckType, MVT::i32, ++/*129425*/ OPC_MoveParent, ++/*129426*/ OPC_MoveChild, 30, ++/*129428*/ OPC_CheckInteger, 1, ++/*129430*/ OPC_CheckType, MVT::i32, ++/*129432*/ OPC_MoveParent, ++/*129433*/ OPC_MoveChild, 31, ++/*129435*/ OPC_CheckInteger, 1, ++/*129437*/ OPC_CheckType, MVT::i32, ++/*129439*/ OPC_MoveParent, ++/*129440*/ OPC_MoveParent, ++/*129441*/ OPC_MoveParent, ++/*129442*/ OPC_CheckChild1Same, 0, ++/*129444*/ OPC_MoveParent, ++/*129445*/ OPC_MoveChild1, ++/*129446*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*129449*/ OPC_CheckChild0Integer, 7, ++/*129451*/ OPC_CheckChild0Type, MVT::i32, ++/*129453*/ OPC_CheckChild1Integer, 7, ++/*129455*/ OPC_CheckChild1Type, MVT::i32, ++/*129457*/ OPC_CheckChild2Integer, 7, ++/*129459*/ OPC_CheckChild2Type, MVT::i32, ++/*129461*/ OPC_CheckChild3Integer, 7, ++/*129463*/ OPC_CheckChild3Type, MVT::i32, ++/*129465*/ OPC_CheckChild4Integer, 7, ++/*129467*/ OPC_CheckChild4Type, MVT::i32, ++/*129469*/ OPC_MoveChild5, ++/*129470*/ OPC_CheckInteger, 7, ++/*129472*/ OPC_CheckType, MVT::i32, ++/*129474*/ OPC_MoveParent, ++/*129475*/ OPC_MoveChild6, ++/*129476*/ OPC_CheckInteger, 7, ++/*129478*/ OPC_CheckType, MVT::i32, ++/*129480*/ OPC_MoveParent, ++/*129481*/ OPC_MoveChild7, ++/*129482*/ OPC_CheckInteger, 7, ++/*129484*/ OPC_CheckType, MVT::i32, ++/*129486*/ OPC_MoveParent, ++/*129487*/ OPC_MoveChild, 8, ++/*129489*/ OPC_CheckInteger, 7, ++/*129491*/ OPC_CheckType, MVT::i32, ++/*129493*/ OPC_MoveParent, ++/*129494*/ OPC_MoveChild, 9, ++/*129496*/ OPC_CheckInteger, 7, ++/*129498*/ OPC_CheckType, MVT::i32, ++/*129500*/ OPC_MoveParent, ++/*129501*/ OPC_MoveChild, 10, ++/*129503*/ OPC_CheckInteger, 7, ++/*129505*/ OPC_CheckType, MVT::i32, ++/*129507*/ OPC_MoveParent, ++/*129508*/ OPC_MoveChild, 11, ++/*129510*/ OPC_CheckInteger, 7, ++/*129512*/ OPC_CheckType, MVT::i32, ++/*129514*/ OPC_MoveParent, ++/*129515*/ OPC_MoveChild, 12, ++/*129517*/ OPC_CheckInteger, 7, ++/*129519*/ OPC_CheckType, MVT::i32, ++/*129521*/ OPC_MoveParent, ++/*129522*/ OPC_MoveChild, 13, ++/*129524*/ OPC_CheckInteger, 7, ++/*129526*/ OPC_CheckType, MVT::i32, ++/*129528*/ OPC_MoveParent, ++/*129529*/ OPC_MoveChild, 14, ++/*129531*/ OPC_CheckInteger, 7, ++/*129533*/ OPC_CheckType, MVT::i32, ++/*129535*/ OPC_MoveParent, ++/*129536*/ OPC_MoveChild, 15, ++/*129538*/ OPC_CheckInteger, 7, ++/*129540*/ OPC_CheckType, MVT::i32, ++/*129542*/ OPC_MoveParent, ++/*129543*/ OPC_MoveChild, 16, ++/*129545*/ OPC_CheckInteger, 7, ++/*129547*/ OPC_CheckType, MVT::i32, ++/*129549*/ OPC_MoveParent, ++/*129550*/ OPC_MoveChild, 17, ++/*129552*/ OPC_CheckInteger, 7, ++/*129554*/ OPC_CheckType, MVT::i32, ++/*129556*/ OPC_MoveParent, ++/*129557*/ OPC_MoveChild, 18, ++/*129559*/ OPC_CheckInteger, 7, ++/*129561*/ OPC_CheckType, MVT::i32, ++/*129563*/ OPC_MoveParent, ++/*129564*/ OPC_MoveChild, 19, ++/*129566*/ OPC_CheckInteger, 7, ++/*129568*/ OPC_CheckType, MVT::i32, ++/*129570*/ OPC_MoveParent, ++/*129571*/ OPC_MoveChild, 20, ++/*129573*/ OPC_CheckInteger, 7, ++/*129575*/ OPC_CheckType, MVT::i32, ++/*129577*/ OPC_MoveParent, ++/*129578*/ OPC_MoveChild, 21, ++/*129580*/ OPC_CheckInteger, 7, ++/*129582*/ OPC_CheckType, MVT::i32, ++/*129584*/ OPC_MoveParent, ++/*129585*/ OPC_MoveChild, 22, ++/*129587*/ OPC_CheckInteger, 7, ++/*129589*/ OPC_CheckType, MVT::i32, ++/*129591*/ OPC_MoveParent, ++/*129592*/ OPC_MoveChild, 23, ++/*129594*/ OPC_CheckInteger, 7, ++/*129596*/ OPC_CheckType, MVT::i32, ++/*129598*/ OPC_MoveParent, ++/*129599*/ OPC_MoveChild, 24, ++/*129601*/ OPC_CheckInteger, 7, ++/*129603*/ OPC_CheckType, MVT::i32, ++/*129605*/ OPC_MoveParent, ++/*129606*/ OPC_MoveChild, 25, ++/*129608*/ OPC_CheckInteger, 7, ++/*129610*/ OPC_CheckType, MVT::i32, ++/*129612*/ OPC_MoveParent, ++/*129613*/ OPC_MoveChild, 26, ++/*129615*/ OPC_CheckInteger, 7, ++/*129617*/ OPC_CheckType, MVT::i32, ++/*129619*/ OPC_MoveParent, ++/*129620*/ OPC_MoveChild, 27, ++/*129622*/ OPC_CheckInteger, 7, ++/*129624*/ OPC_CheckType, MVT::i32, ++/*129626*/ OPC_MoveParent, ++/*129627*/ OPC_MoveChild, 28, ++/*129629*/ OPC_CheckInteger, 7, ++/*129631*/ OPC_CheckType, MVT::i32, ++/*129633*/ OPC_MoveParent, ++/*129634*/ OPC_MoveChild, 29, ++/*129636*/ OPC_CheckInteger, 7, ++/*129638*/ OPC_CheckType, MVT::i32, ++/*129640*/ OPC_MoveParent, ++/*129641*/ OPC_MoveChild, 30, ++/*129643*/ OPC_CheckInteger, 7, ++/*129645*/ OPC_CheckType, MVT::i32, ++/*129647*/ OPC_MoveParent, ++/*129648*/ OPC_MoveChild, 31, ++/*129650*/ OPC_CheckInteger, 7, ++/*129652*/ OPC_CheckType, MVT::i32, ++/*129654*/ OPC_MoveParent, ++/*129655*/ OPC_CheckType, MVT::v32i8, ++/*129657*/ OPC_MoveParent, ++/*129658*/ OPC_MoveParent, ++/*129659*/ OPC_MoveParent, ++/*129660*/ OPC_MoveChild1, ++/*129661*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*129664*/ OPC_CheckChild0Integer, 1, ++/*129666*/ OPC_CheckChild0Type, MVT::i32, ++/*129668*/ OPC_CheckChild1Integer, 1, ++/*129670*/ OPC_CheckChild1Type, MVT::i32, ++/*129672*/ OPC_CheckChild2Integer, 1, ++/*129674*/ OPC_CheckChild2Type, MVT::i32, ++/*129676*/ OPC_CheckChild3Integer, 1, ++/*129678*/ OPC_CheckChild3Type, MVT::i32, ++/*129680*/ OPC_CheckChild4Integer, 1, ++/*129682*/ OPC_CheckChild4Type, MVT::i32, ++/*129684*/ OPC_MoveChild5, ++/*129685*/ OPC_CheckInteger, 1, ++/*129687*/ OPC_CheckType, MVT::i32, ++/*129689*/ OPC_MoveParent, ++/*129690*/ OPC_MoveChild6, ++/*129691*/ OPC_CheckInteger, 1, ++/*129693*/ OPC_CheckType, MVT::i32, ++/*129695*/ OPC_MoveParent, ++/*129696*/ OPC_MoveChild7, ++/*129697*/ OPC_CheckInteger, 1, ++/*129699*/ OPC_CheckType, MVT::i32, ++/*129701*/ OPC_MoveParent, ++/*129702*/ OPC_MoveChild, 8, ++/*129704*/ OPC_CheckInteger, 1, ++/*129706*/ OPC_CheckType, MVT::i32, ++/*129708*/ OPC_MoveParent, ++/*129709*/ OPC_MoveChild, 9, ++/*129711*/ OPC_CheckInteger, 1, ++/*129713*/ OPC_CheckType, MVT::i32, ++/*129715*/ OPC_MoveParent, ++/*129716*/ OPC_MoveChild, 10, ++/*129718*/ OPC_CheckInteger, 1, ++/*129720*/ OPC_CheckType, MVT::i32, ++/*129722*/ OPC_MoveParent, ++/*129723*/ OPC_MoveChild, 11, ++/*129725*/ OPC_CheckInteger, 1, ++/*129727*/ OPC_CheckType, MVT::i32, ++/*129729*/ OPC_MoveParent, ++/*129730*/ OPC_MoveChild, 12, ++/*129732*/ OPC_CheckInteger, 1, ++/*129734*/ OPC_CheckType, MVT::i32, ++/*129736*/ OPC_MoveParent, ++/*129737*/ OPC_MoveChild, 13, ++/*129739*/ OPC_CheckInteger, 1, ++/*129741*/ OPC_CheckType, MVT::i32, ++/*129743*/ OPC_MoveParent, ++/*129744*/ OPC_MoveChild, 14, ++/*129746*/ OPC_CheckInteger, 1, ++/*129748*/ OPC_CheckType, MVT::i32, ++/*129750*/ OPC_MoveParent, ++/*129751*/ OPC_MoveChild, 15, ++/*129753*/ OPC_CheckInteger, 1, ++/*129755*/ OPC_CheckType, MVT::i32, ++/*129757*/ OPC_MoveParent, ++/*129758*/ OPC_MoveChild, 16, ++/*129760*/ OPC_CheckInteger, 1, ++/*129762*/ OPC_CheckType, MVT::i32, ++/*129764*/ OPC_MoveParent, ++/*129765*/ OPC_MoveChild, 17, ++/*129767*/ OPC_CheckInteger, 1, ++/*129769*/ OPC_CheckType, MVT::i32, ++/*129771*/ OPC_MoveParent, ++/*129772*/ OPC_MoveChild, 18, ++/*129774*/ OPC_CheckInteger, 1, ++/*129776*/ OPC_CheckType, MVT::i32, ++/*129778*/ OPC_MoveParent, ++/*129779*/ OPC_MoveChild, 19, ++/*129781*/ OPC_CheckInteger, 1, ++/*129783*/ OPC_CheckType, MVT::i32, ++/*129785*/ OPC_MoveParent, ++/*129786*/ OPC_MoveChild, 20, ++/*129788*/ OPC_CheckInteger, 1, ++/*129790*/ OPC_CheckType, MVT::i32, ++/*129792*/ OPC_MoveParent, ++/*129793*/ OPC_MoveChild, 21, ++/*129795*/ OPC_CheckInteger, 1, ++/*129797*/ OPC_CheckType, MVT::i32, ++/*129799*/ OPC_MoveParent, ++/*129800*/ OPC_MoveChild, 22, ++/*129802*/ OPC_CheckInteger, 1, ++/*129804*/ OPC_CheckType, MVT::i32, ++/*129806*/ OPC_MoveParent, ++/*129807*/ OPC_MoveChild, 23, ++/*129809*/ OPC_CheckInteger, 1, ++/*129811*/ OPC_CheckType, MVT::i32, ++/*129813*/ OPC_MoveParent, ++/*129814*/ OPC_MoveChild, 24, ++/*129816*/ OPC_CheckInteger, 1, ++/*129818*/ OPC_CheckType, MVT::i32, ++/*129820*/ OPC_MoveParent, ++/*129821*/ OPC_MoveChild, 25, ++/*129823*/ OPC_CheckInteger, 1, ++/*129825*/ OPC_CheckType, MVT::i32, ++/*129827*/ OPC_MoveParent, ++/*129828*/ OPC_MoveChild, 26, ++/*129830*/ OPC_CheckInteger, 1, ++/*129832*/ OPC_CheckType, MVT::i32, ++/*129834*/ OPC_MoveParent, ++/*129835*/ OPC_MoveChild, 27, ++/*129837*/ OPC_CheckInteger, 1, ++/*129839*/ OPC_CheckType, MVT::i32, ++/*129841*/ OPC_MoveParent, ++/*129842*/ OPC_MoveChild, 28, ++/*129844*/ OPC_CheckInteger, 1, ++/*129846*/ OPC_CheckType, MVT::i32, ++/*129848*/ OPC_MoveParent, ++/*129849*/ OPC_MoveChild, 29, ++/*129851*/ OPC_CheckInteger, 1, ++/*129853*/ OPC_CheckType, MVT::i32, ++/*129855*/ OPC_MoveParent, ++/*129856*/ OPC_MoveChild, 30, ++/*129858*/ OPC_CheckInteger, 1, ++/*129860*/ OPC_CheckType, MVT::i32, ++/*129862*/ OPC_MoveParent, ++/*129863*/ OPC_MoveChild, 31, ++/*129865*/ OPC_CheckInteger, 1, ++/*129867*/ OPC_CheckType, MVT::i32, ++/*129869*/ OPC_MoveParent, ++/*129870*/ OPC_CheckType, MVT::v32i8, ++/*129872*/ OPC_MoveParent, ++/*129873*/ OPC_CheckType, MVT::v32i8, ++/*129875*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*129877*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a)), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*129885*/ /*Scope*/ 17|128,5/*657*/, /*->130544*/ ++/*129887*/ OPC_MoveChild0, ++/*129888*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*129891*/ OPC_CheckChild0Integer, 1, ++/*129893*/ OPC_CheckChild0Type, MVT::i32, ++/*129895*/ OPC_CheckChild1Integer, 1, ++/*129897*/ OPC_CheckChild1Type, MVT::i32, ++/*129899*/ OPC_CheckChild2Integer, 1, ++/*129901*/ OPC_CheckChild2Type, MVT::i32, ++/*129903*/ OPC_CheckChild3Integer, 1, ++/*129905*/ OPC_CheckChild3Type, MVT::i32, ++/*129907*/ OPC_CheckChild4Integer, 1, ++/*129909*/ OPC_CheckChild4Type, MVT::i32, ++/*129911*/ OPC_MoveChild5, ++/*129912*/ OPC_CheckInteger, 1, ++/*129914*/ OPC_CheckType, MVT::i32, ++/*129916*/ OPC_MoveParent, ++/*129917*/ OPC_MoveChild6, ++/*129918*/ OPC_CheckInteger, 1, ++/*129920*/ OPC_CheckType, MVT::i32, ++/*129922*/ OPC_MoveParent, ++/*129923*/ OPC_MoveChild7, ++/*129924*/ OPC_CheckInteger, 1, ++/*129926*/ OPC_CheckType, MVT::i32, ++/*129928*/ OPC_MoveParent, ++/*129929*/ OPC_MoveChild, 8, ++/*129931*/ OPC_CheckInteger, 1, ++/*129933*/ OPC_CheckType, MVT::i32, ++/*129935*/ OPC_MoveParent, ++/*129936*/ OPC_MoveChild, 9, ++/*129938*/ OPC_CheckInteger, 1, ++/*129940*/ OPC_CheckType, MVT::i32, ++/*129942*/ OPC_MoveParent, ++/*129943*/ OPC_MoveChild, 10, ++/*129945*/ OPC_CheckInteger, 1, ++/*129947*/ OPC_CheckType, MVT::i32, ++/*129949*/ OPC_MoveParent, ++/*129950*/ OPC_MoveChild, 11, ++/*129952*/ OPC_CheckInteger, 1, ++/*129954*/ OPC_CheckType, MVT::i32, ++/*129956*/ OPC_MoveParent, ++/*129957*/ OPC_MoveChild, 12, ++/*129959*/ OPC_CheckInteger, 1, ++/*129961*/ OPC_CheckType, MVT::i32, ++/*129963*/ OPC_MoveParent, ++/*129964*/ OPC_MoveChild, 13, ++/*129966*/ OPC_CheckInteger, 1, ++/*129968*/ OPC_CheckType, MVT::i32, ++/*129970*/ OPC_MoveParent, ++/*129971*/ OPC_MoveChild, 14, ++/*129973*/ OPC_CheckInteger, 1, ++/*129975*/ OPC_CheckType, MVT::i32, ++/*129977*/ OPC_MoveParent, ++/*129978*/ OPC_MoveChild, 15, ++/*129980*/ OPC_CheckInteger, 1, ++/*129982*/ OPC_CheckType, MVT::i32, ++/*129984*/ OPC_MoveParent, ++/*129985*/ OPC_MoveChild, 16, ++/*129987*/ OPC_CheckInteger, 1, ++/*129989*/ OPC_CheckType, MVT::i32, ++/*129991*/ OPC_MoveParent, ++/*129992*/ OPC_MoveChild, 17, ++/*129994*/ OPC_CheckInteger, 1, ++/*129996*/ OPC_CheckType, MVT::i32, ++/*129998*/ OPC_MoveParent, ++/*129999*/ OPC_MoveChild, 18, ++/*130001*/ OPC_CheckInteger, 1, ++/*130003*/ OPC_CheckType, MVT::i32, ++/*130005*/ OPC_MoveParent, ++/*130006*/ OPC_MoveChild, 19, ++/*130008*/ OPC_CheckInteger, 1, ++/*130010*/ OPC_CheckType, MVT::i32, ++/*130012*/ OPC_MoveParent, ++/*130013*/ OPC_MoveChild, 20, ++/*130015*/ OPC_CheckInteger, 1, ++/*130017*/ OPC_CheckType, MVT::i32, ++/*130019*/ OPC_MoveParent, ++/*130020*/ OPC_MoveChild, 21, ++/*130022*/ OPC_CheckInteger, 1, ++/*130024*/ OPC_CheckType, MVT::i32, ++/*130026*/ OPC_MoveParent, ++/*130027*/ OPC_MoveChild, 22, ++/*130029*/ OPC_CheckInteger, 1, ++/*130031*/ OPC_CheckType, MVT::i32, ++/*130033*/ OPC_MoveParent, ++/*130034*/ OPC_MoveChild, 23, ++/*130036*/ OPC_CheckInteger, 1, ++/*130038*/ OPC_CheckType, MVT::i32, ++/*130040*/ OPC_MoveParent, ++/*130041*/ OPC_MoveChild, 24, ++/*130043*/ OPC_CheckInteger, 1, ++/*130045*/ OPC_CheckType, MVT::i32, ++/*130047*/ OPC_MoveParent, ++/*130048*/ OPC_MoveChild, 25, ++/*130050*/ OPC_CheckInteger, 1, ++/*130052*/ OPC_CheckType, MVT::i32, ++/*130054*/ OPC_MoveParent, ++/*130055*/ OPC_MoveChild, 26, ++/*130057*/ OPC_CheckInteger, 1, ++/*130059*/ OPC_CheckType, MVT::i32, ++/*130061*/ OPC_MoveParent, ++/*130062*/ OPC_MoveChild, 27, ++/*130064*/ OPC_CheckInteger, 1, ++/*130066*/ OPC_CheckType, MVT::i32, ++/*130068*/ OPC_MoveParent, ++/*130069*/ OPC_MoveChild, 28, ++/*130071*/ OPC_CheckInteger, 1, ++/*130073*/ OPC_CheckType, MVT::i32, ++/*130075*/ OPC_MoveParent, ++/*130076*/ OPC_MoveChild, 29, ++/*130078*/ OPC_CheckInteger, 1, ++/*130080*/ OPC_CheckType, MVT::i32, ++/*130082*/ OPC_MoveParent, ++/*130083*/ OPC_MoveChild, 30, ++/*130085*/ OPC_CheckInteger, 1, ++/*130087*/ OPC_CheckType, MVT::i32, ++/*130089*/ OPC_MoveParent, ++/*130090*/ OPC_MoveChild, 31, ++/*130092*/ OPC_CheckInteger, 1, ++/*130094*/ OPC_CheckType, MVT::i32, ++/*130096*/ OPC_MoveParent, ++/*130097*/ OPC_MoveParent, ++/*130098*/ OPC_CheckChild1Same, 0, ++/*130100*/ OPC_MoveParent, ++/*130101*/ OPC_CheckChild1Same, 1, ++/*130103*/ OPC_MoveParent, ++/*130104*/ OPC_MoveChild1, ++/*130105*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*130108*/ OPC_CheckChild0Integer, 7, ++/*130110*/ OPC_CheckChild0Type, MVT::i32, ++/*130112*/ OPC_CheckChild1Integer, 7, ++/*130114*/ OPC_CheckChild1Type, MVT::i32, ++/*130116*/ OPC_CheckChild2Integer, 7, ++/*130118*/ OPC_CheckChild2Type, MVT::i32, ++/*130120*/ OPC_CheckChild3Integer, 7, ++/*130122*/ OPC_CheckChild3Type, MVT::i32, ++/*130124*/ OPC_CheckChild4Integer, 7, ++/*130126*/ OPC_CheckChild4Type, MVT::i32, ++/*130128*/ OPC_MoveChild5, ++/*130129*/ OPC_CheckInteger, 7, ++/*130131*/ OPC_CheckType, MVT::i32, ++/*130133*/ OPC_MoveParent, ++/*130134*/ OPC_MoveChild6, ++/*130135*/ OPC_CheckInteger, 7, ++/*130137*/ OPC_CheckType, MVT::i32, ++/*130139*/ OPC_MoveParent, ++/*130140*/ OPC_MoveChild7, ++/*130141*/ OPC_CheckInteger, 7, ++/*130143*/ OPC_CheckType, MVT::i32, ++/*130145*/ OPC_MoveParent, ++/*130146*/ OPC_MoveChild, 8, ++/*130148*/ OPC_CheckInteger, 7, ++/*130150*/ OPC_CheckType, MVT::i32, ++/*130152*/ OPC_MoveParent, ++/*130153*/ OPC_MoveChild, 9, ++/*130155*/ OPC_CheckInteger, 7, ++/*130157*/ OPC_CheckType, MVT::i32, ++/*130159*/ OPC_MoveParent, ++/*130160*/ OPC_MoveChild, 10, ++/*130162*/ OPC_CheckInteger, 7, ++/*130164*/ OPC_CheckType, MVT::i32, ++/*130166*/ OPC_MoveParent, ++/*130167*/ OPC_MoveChild, 11, ++/*130169*/ OPC_CheckInteger, 7, ++/*130171*/ OPC_CheckType, MVT::i32, ++/*130173*/ OPC_MoveParent, ++/*130174*/ OPC_MoveChild, 12, ++/*130176*/ OPC_CheckInteger, 7, ++/*130178*/ OPC_CheckType, MVT::i32, ++/*130180*/ OPC_MoveParent, ++/*130181*/ OPC_MoveChild, 13, ++/*130183*/ OPC_CheckInteger, 7, ++/*130185*/ OPC_CheckType, MVT::i32, ++/*130187*/ OPC_MoveParent, ++/*130188*/ OPC_MoveChild, 14, ++/*130190*/ OPC_CheckInteger, 7, ++/*130192*/ OPC_CheckType, MVT::i32, ++/*130194*/ OPC_MoveParent, ++/*130195*/ OPC_MoveChild, 15, ++/*130197*/ OPC_CheckInteger, 7, ++/*130199*/ OPC_CheckType, MVT::i32, ++/*130201*/ OPC_MoveParent, ++/*130202*/ OPC_MoveChild, 16, ++/*130204*/ OPC_CheckInteger, 7, ++/*130206*/ OPC_CheckType, MVT::i32, ++/*130208*/ OPC_MoveParent, ++/*130209*/ OPC_MoveChild, 17, ++/*130211*/ OPC_CheckInteger, 7, ++/*130213*/ OPC_CheckType, MVT::i32, ++/*130215*/ OPC_MoveParent, ++/*130216*/ OPC_MoveChild, 18, ++/*130218*/ OPC_CheckInteger, 7, ++/*130220*/ OPC_CheckType, MVT::i32, ++/*130222*/ OPC_MoveParent, ++/*130223*/ OPC_MoveChild, 19, ++/*130225*/ OPC_CheckInteger, 7, ++/*130227*/ OPC_CheckType, MVT::i32, ++/*130229*/ OPC_MoveParent, ++/*130230*/ OPC_MoveChild, 20, ++/*130232*/ OPC_CheckInteger, 7, ++/*130234*/ OPC_CheckType, MVT::i32, ++/*130236*/ OPC_MoveParent, ++/*130237*/ OPC_MoveChild, 21, ++/*130239*/ OPC_CheckInteger, 7, ++/*130241*/ OPC_CheckType, MVT::i32, ++/*130243*/ OPC_MoveParent, ++/*130244*/ OPC_MoveChild, 22, ++/*130246*/ OPC_CheckInteger, 7, ++/*130248*/ OPC_CheckType, MVT::i32, ++/*130250*/ OPC_MoveParent, ++/*130251*/ OPC_MoveChild, 23, ++/*130253*/ OPC_CheckInteger, 7, ++/*130255*/ OPC_CheckType, MVT::i32, ++/*130257*/ OPC_MoveParent, ++/*130258*/ OPC_MoveChild, 24, ++/*130260*/ OPC_CheckInteger, 7, ++/*130262*/ OPC_CheckType, MVT::i32, ++/*130264*/ OPC_MoveParent, ++/*130265*/ OPC_MoveChild, 25, ++/*130267*/ OPC_CheckInteger, 7, ++/*130269*/ OPC_CheckType, MVT::i32, ++/*130271*/ OPC_MoveParent, ++/*130272*/ OPC_MoveChild, 26, ++/*130274*/ OPC_CheckInteger, 7, ++/*130276*/ OPC_CheckType, MVT::i32, ++/*130278*/ OPC_MoveParent, ++/*130279*/ OPC_MoveChild, 27, ++/*130281*/ OPC_CheckInteger, 7, ++/*130283*/ OPC_CheckType, MVT::i32, ++/*130285*/ OPC_MoveParent, ++/*130286*/ OPC_MoveChild, 28, ++/*130288*/ OPC_CheckInteger, 7, ++/*130290*/ OPC_CheckType, MVT::i32, ++/*130292*/ OPC_MoveParent, ++/*130293*/ OPC_MoveChild, 29, ++/*130295*/ OPC_CheckInteger, 7, ++/*130297*/ OPC_CheckType, MVT::i32, ++/*130299*/ OPC_MoveParent, ++/*130300*/ OPC_MoveChild, 30, ++/*130302*/ OPC_CheckInteger, 7, ++/*130304*/ OPC_CheckType, MVT::i32, ++/*130306*/ OPC_MoveParent, ++/*130307*/ OPC_MoveChild, 31, ++/*130309*/ OPC_CheckInteger, 7, ++/*130311*/ OPC_CheckType, MVT::i32, ++/*130313*/ OPC_MoveParent, ++/*130314*/ OPC_CheckType, MVT::v32i8, ++/*130316*/ OPC_MoveParent, ++/*130317*/ OPC_MoveParent, ++/*130318*/ OPC_MoveParent, ++/*130319*/ OPC_MoveChild1, ++/*130320*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*130323*/ OPC_CheckChild0Integer, 1, ++/*130325*/ OPC_CheckChild0Type, MVT::i32, ++/*130327*/ OPC_CheckChild1Integer, 1, ++/*130329*/ OPC_CheckChild1Type, MVT::i32, ++/*130331*/ OPC_CheckChild2Integer, 1, ++/*130333*/ OPC_CheckChild2Type, MVT::i32, ++/*130335*/ OPC_CheckChild3Integer, 1, ++/*130337*/ OPC_CheckChild3Type, MVT::i32, ++/*130339*/ OPC_CheckChild4Integer, 1, ++/*130341*/ OPC_CheckChild4Type, MVT::i32, ++/*130343*/ OPC_MoveChild5, ++/*130344*/ OPC_CheckInteger, 1, ++/*130346*/ OPC_CheckType, MVT::i32, ++/*130348*/ OPC_MoveParent, ++/*130349*/ OPC_MoveChild6, ++/*130350*/ OPC_CheckInteger, 1, ++/*130352*/ OPC_CheckType, MVT::i32, ++/*130354*/ OPC_MoveParent, ++/*130355*/ OPC_MoveChild7, ++/*130356*/ OPC_CheckInteger, 1, ++/*130358*/ OPC_CheckType, MVT::i32, ++/*130360*/ OPC_MoveParent, ++/*130361*/ OPC_MoveChild, 8, ++/*130363*/ OPC_CheckInteger, 1, ++/*130365*/ OPC_CheckType, MVT::i32, ++/*130367*/ OPC_MoveParent, ++/*130368*/ OPC_MoveChild, 9, ++/*130370*/ OPC_CheckInteger, 1, ++/*130372*/ OPC_CheckType, MVT::i32, ++/*130374*/ OPC_MoveParent, ++/*130375*/ OPC_MoveChild, 10, ++/*130377*/ OPC_CheckInteger, 1, ++/*130379*/ OPC_CheckType, MVT::i32, ++/*130381*/ OPC_MoveParent, ++/*130382*/ OPC_MoveChild, 11, ++/*130384*/ OPC_CheckInteger, 1, ++/*130386*/ OPC_CheckType, MVT::i32, ++/*130388*/ OPC_MoveParent, ++/*130389*/ OPC_MoveChild, 12, ++/*130391*/ OPC_CheckInteger, 1, ++/*130393*/ OPC_CheckType, MVT::i32, ++/*130395*/ OPC_MoveParent, ++/*130396*/ OPC_MoveChild, 13, ++/*130398*/ OPC_CheckInteger, 1, ++/*130400*/ OPC_CheckType, MVT::i32, ++/*130402*/ OPC_MoveParent, ++/*130403*/ OPC_MoveChild, 14, ++/*130405*/ OPC_CheckInteger, 1, ++/*130407*/ OPC_CheckType, MVT::i32, ++/*130409*/ OPC_MoveParent, ++/*130410*/ OPC_MoveChild, 15, ++/*130412*/ OPC_CheckInteger, 1, ++/*130414*/ OPC_CheckType, MVT::i32, ++/*130416*/ OPC_MoveParent, ++/*130417*/ OPC_MoveChild, 16, ++/*130419*/ OPC_CheckInteger, 1, ++/*130421*/ OPC_CheckType, MVT::i32, ++/*130423*/ OPC_MoveParent, ++/*130424*/ OPC_MoveChild, 17, ++/*130426*/ OPC_CheckInteger, 1, ++/*130428*/ OPC_CheckType, MVT::i32, ++/*130430*/ OPC_MoveParent, ++/*130431*/ OPC_MoveChild, 18, ++/*130433*/ OPC_CheckInteger, 1, ++/*130435*/ OPC_CheckType, MVT::i32, ++/*130437*/ OPC_MoveParent, ++/*130438*/ OPC_MoveChild, 19, ++/*130440*/ OPC_CheckInteger, 1, ++/*130442*/ OPC_CheckType, MVT::i32, ++/*130444*/ OPC_MoveParent, ++/*130445*/ OPC_MoveChild, 20, ++/*130447*/ OPC_CheckInteger, 1, ++/*130449*/ OPC_CheckType, MVT::i32, ++/*130451*/ OPC_MoveParent, ++/*130452*/ OPC_MoveChild, 21, ++/*130454*/ OPC_CheckInteger, 1, ++/*130456*/ OPC_CheckType, MVT::i32, ++/*130458*/ OPC_MoveParent, ++/*130459*/ OPC_MoveChild, 22, ++/*130461*/ OPC_CheckInteger, 1, ++/*130463*/ OPC_CheckType, MVT::i32, ++/*130465*/ OPC_MoveParent, ++/*130466*/ OPC_MoveChild, 23, ++/*130468*/ OPC_CheckInteger, 1, ++/*130470*/ OPC_CheckType, MVT::i32, ++/*130472*/ OPC_MoveParent, ++/*130473*/ OPC_MoveChild, 24, ++/*130475*/ OPC_CheckInteger, 1, ++/*130477*/ OPC_CheckType, MVT::i32, ++/*130479*/ OPC_MoveParent, ++/*130480*/ OPC_MoveChild, 25, ++/*130482*/ OPC_CheckInteger, 1, ++/*130484*/ OPC_CheckType, MVT::i32, ++/*130486*/ OPC_MoveParent, ++/*130487*/ OPC_MoveChild, 26, ++/*130489*/ OPC_CheckInteger, 1, ++/*130491*/ OPC_CheckType, MVT::i32, ++/*130493*/ OPC_MoveParent, ++/*130494*/ OPC_MoveChild, 27, ++/*130496*/ OPC_CheckInteger, 1, ++/*130498*/ OPC_CheckType, MVT::i32, ++/*130500*/ OPC_MoveParent, ++/*130501*/ OPC_MoveChild, 28, ++/*130503*/ OPC_CheckInteger, 1, ++/*130505*/ OPC_CheckType, MVT::i32, ++/*130507*/ OPC_MoveParent, ++/*130508*/ OPC_MoveChild, 29, ++/*130510*/ OPC_CheckInteger, 1, ++/*130512*/ OPC_CheckType, MVT::i32, ++/*130514*/ OPC_MoveParent, ++/*130515*/ OPC_MoveChild, 30, ++/*130517*/ OPC_CheckInteger, 1, ++/*130519*/ OPC_CheckType, MVT::i32, ++/*130521*/ OPC_MoveParent, ++/*130522*/ OPC_MoveChild, 31, ++/*130524*/ OPC_CheckInteger, 1, ++/*130526*/ OPC_CheckType, MVT::i32, ++/*130528*/ OPC_MoveParent, ++/*130529*/ OPC_CheckType, MVT::v32i8, ++/*130531*/ OPC_MoveParent, ++/*130532*/ OPC_CheckType, MVT::v32i8, ++/*130534*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*130536*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a)), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b), LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*130544*/ /*Scope*/ 17|128,5/*657*/, /*->131203*/ ++/*130546*/ OPC_CheckChild0Same, 0, ++/*130548*/ OPC_MoveChild1, ++/*130549*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*130552*/ OPC_CheckChild0Integer, 1, ++/*130554*/ OPC_CheckChild0Type, MVT::i32, ++/*130556*/ OPC_CheckChild1Integer, 1, ++/*130558*/ OPC_CheckChild1Type, MVT::i32, ++/*130560*/ OPC_CheckChild2Integer, 1, ++/*130562*/ OPC_CheckChild2Type, MVT::i32, ++/*130564*/ OPC_CheckChild3Integer, 1, ++/*130566*/ OPC_CheckChild3Type, MVT::i32, ++/*130568*/ OPC_CheckChild4Integer, 1, ++/*130570*/ OPC_CheckChild4Type, MVT::i32, ++/*130572*/ OPC_MoveChild5, ++/*130573*/ OPC_CheckInteger, 1, ++/*130575*/ OPC_CheckType, MVT::i32, ++/*130577*/ OPC_MoveParent, ++/*130578*/ OPC_MoveChild6, ++/*130579*/ OPC_CheckInteger, 1, ++/*130581*/ OPC_CheckType, MVT::i32, ++/*130583*/ OPC_MoveParent, ++/*130584*/ OPC_MoveChild7, ++/*130585*/ OPC_CheckInteger, 1, ++/*130587*/ OPC_CheckType, MVT::i32, ++/*130589*/ OPC_MoveParent, ++/*130590*/ OPC_MoveChild, 8, ++/*130592*/ OPC_CheckInteger, 1, ++/*130594*/ OPC_CheckType, MVT::i32, ++/*130596*/ OPC_MoveParent, ++/*130597*/ OPC_MoveChild, 9, ++/*130599*/ OPC_CheckInteger, 1, ++/*130601*/ OPC_CheckType, MVT::i32, ++/*130603*/ OPC_MoveParent, ++/*130604*/ OPC_MoveChild, 10, ++/*130606*/ OPC_CheckInteger, 1, ++/*130608*/ OPC_CheckType, MVT::i32, ++/*130610*/ OPC_MoveParent, ++/*130611*/ OPC_MoveChild, 11, ++/*130613*/ OPC_CheckInteger, 1, ++/*130615*/ OPC_CheckType, MVT::i32, ++/*130617*/ OPC_MoveParent, ++/*130618*/ OPC_MoveChild, 12, ++/*130620*/ OPC_CheckInteger, 1, ++/*130622*/ OPC_CheckType, MVT::i32, ++/*130624*/ OPC_MoveParent, ++/*130625*/ OPC_MoveChild, 13, ++/*130627*/ OPC_CheckInteger, 1, ++/*130629*/ OPC_CheckType, MVT::i32, ++/*130631*/ OPC_MoveParent, ++/*130632*/ OPC_MoveChild, 14, ++/*130634*/ OPC_CheckInteger, 1, ++/*130636*/ OPC_CheckType, MVT::i32, ++/*130638*/ OPC_MoveParent, ++/*130639*/ OPC_MoveChild, 15, ++/*130641*/ OPC_CheckInteger, 1, ++/*130643*/ OPC_CheckType, MVT::i32, ++/*130645*/ OPC_MoveParent, ++/*130646*/ OPC_MoveChild, 16, ++/*130648*/ OPC_CheckInteger, 1, ++/*130650*/ OPC_CheckType, MVT::i32, ++/*130652*/ OPC_MoveParent, ++/*130653*/ OPC_MoveChild, 17, ++/*130655*/ OPC_CheckInteger, 1, ++/*130657*/ OPC_CheckType, MVT::i32, ++/*130659*/ OPC_MoveParent, ++/*130660*/ OPC_MoveChild, 18, ++/*130662*/ OPC_CheckInteger, 1, ++/*130664*/ OPC_CheckType, MVT::i32, ++/*130666*/ OPC_MoveParent, ++/*130667*/ OPC_MoveChild, 19, ++/*130669*/ OPC_CheckInteger, 1, ++/*130671*/ OPC_CheckType, MVT::i32, ++/*130673*/ OPC_MoveParent, ++/*130674*/ OPC_MoveChild, 20, ++/*130676*/ OPC_CheckInteger, 1, ++/*130678*/ OPC_CheckType, MVT::i32, ++/*130680*/ OPC_MoveParent, ++/*130681*/ OPC_MoveChild, 21, ++/*130683*/ OPC_CheckInteger, 1, ++/*130685*/ OPC_CheckType, MVT::i32, ++/*130687*/ OPC_MoveParent, ++/*130688*/ OPC_MoveChild, 22, ++/*130690*/ OPC_CheckInteger, 1, ++/*130692*/ OPC_CheckType, MVT::i32, ++/*130694*/ OPC_MoveParent, ++/*130695*/ OPC_MoveChild, 23, ++/*130697*/ OPC_CheckInteger, 1, ++/*130699*/ OPC_CheckType, MVT::i32, ++/*130701*/ OPC_MoveParent, ++/*130702*/ OPC_MoveChild, 24, ++/*130704*/ OPC_CheckInteger, 1, ++/*130706*/ OPC_CheckType, MVT::i32, ++/*130708*/ OPC_MoveParent, ++/*130709*/ OPC_MoveChild, 25, ++/*130711*/ OPC_CheckInteger, 1, ++/*130713*/ OPC_CheckType, MVT::i32, ++/*130715*/ OPC_MoveParent, ++/*130716*/ OPC_MoveChild, 26, ++/*130718*/ OPC_CheckInteger, 1, ++/*130720*/ OPC_CheckType, MVT::i32, ++/*130722*/ OPC_MoveParent, ++/*130723*/ OPC_MoveChild, 27, ++/*130725*/ OPC_CheckInteger, 1, ++/*130727*/ OPC_CheckType, MVT::i32, ++/*130729*/ OPC_MoveParent, ++/*130730*/ OPC_MoveChild, 28, ++/*130732*/ OPC_CheckInteger, 1, ++/*130734*/ OPC_CheckType, MVT::i32, ++/*130736*/ OPC_MoveParent, ++/*130737*/ OPC_MoveChild, 29, ++/*130739*/ OPC_CheckInteger, 1, ++/*130741*/ OPC_CheckType, MVT::i32, ++/*130743*/ OPC_MoveParent, ++/*130744*/ OPC_MoveChild, 30, ++/*130746*/ OPC_CheckInteger, 1, ++/*130748*/ OPC_CheckType, MVT::i32, ++/*130750*/ OPC_MoveParent, ++/*130751*/ OPC_MoveChild, 31, ++/*130753*/ OPC_CheckInteger, 1, ++/*130755*/ OPC_CheckType, MVT::i32, ++/*130757*/ OPC_MoveParent, ++/*130758*/ OPC_MoveParent, ++/*130759*/ OPC_MoveParent, ++/*130760*/ OPC_CheckChild1Same, 1, ++/*130762*/ OPC_MoveParent, ++/*130763*/ OPC_MoveChild1, ++/*130764*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*130767*/ OPC_CheckChild0Integer, 7, ++/*130769*/ OPC_CheckChild0Type, MVT::i32, ++/*130771*/ OPC_CheckChild1Integer, 7, ++/*130773*/ OPC_CheckChild1Type, MVT::i32, ++/*130775*/ OPC_CheckChild2Integer, 7, ++/*130777*/ OPC_CheckChild2Type, MVT::i32, ++/*130779*/ OPC_CheckChild3Integer, 7, ++/*130781*/ OPC_CheckChild3Type, MVT::i32, ++/*130783*/ OPC_CheckChild4Integer, 7, ++/*130785*/ OPC_CheckChild4Type, MVT::i32, ++/*130787*/ OPC_MoveChild5, ++/*130788*/ OPC_CheckInteger, 7, ++/*130790*/ OPC_CheckType, MVT::i32, ++/*130792*/ OPC_MoveParent, ++/*130793*/ OPC_MoveChild6, ++/*130794*/ OPC_CheckInteger, 7, ++/*130796*/ OPC_CheckType, MVT::i32, ++/*130798*/ OPC_MoveParent, ++/*130799*/ OPC_MoveChild7, ++/*130800*/ OPC_CheckInteger, 7, ++/*130802*/ OPC_CheckType, MVT::i32, ++/*130804*/ OPC_MoveParent, ++/*130805*/ OPC_MoveChild, 8, ++/*130807*/ OPC_CheckInteger, 7, ++/*130809*/ OPC_CheckType, MVT::i32, ++/*130811*/ OPC_MoveParent, ++/*130812*/ OPC_MoveChild, 9, ++/*130814*/ OPC_CheckInteger, 7, ++/*130816*/ OPC_CheckType, MVT::i32, ++/*130818*/ OPC_MoveParent, ++/*130819*/ OPC_MoveChild, 10, ++/*130821*/ OPC_CheckInteger, 7, ++/*130823*/ OPC_CheckType, MVT::i32, ++/*130825*/ OPC_MoveParent, ++/*130826*/ OPC_MoveChild, 11, ++/*130828*/ OPC_CheckInteger, 7, ++/*130830*/ OPC_CheckType, MVT::i32, ++/*130832*/ OPC_MoveParent, ++/*130833*/ OPC_MoveChild, 12, ++/*130835*/ OPC_CheckInteger, 7, ++/*130837*/ OPC_CheckType, MVT::i32, ++/*130839*/ OPC_MoveParent, ++/*130840*/ OPC_MoveChild, 13, ++/*130842*/ OPC_CheckInteger, 7, ++/*130844*/ OPC_CheckType, MVT::i32, ++/*130846*/ OPC_MoveParent, ++/*130847*/ OPC_MoveChild, 14, ++/*130849*/ OPC_CheckInteger, 7, ++/*130851*/ OPC_CheckType, MVT::i32, ++/*130853*/ OPC_MoveParent, ++/*130854*/ OPC_MoveChild, 15, ++/*130856*/ OPC_CheckInteger, 7, ++/*130858*/ OPC_CheckType, MVT::i32, ++/*130860*/ OPC_MoveParent, ++/*130861*/ OPC_MoveChild, 16, ++/*130863*/ OPC_CheckInteger, 7, ++/*130865*/ OPC_CheckType, MVT::i32, ++/*130867*/ OPC_MoveParent, ++/*130868*/ OPC_MoveChild, 17, ++/*130870*/ OPC_CheckInteger, 7, ++/*130872*/ OPC_CheckType, MVT::i32, ++/*130874*/ OPC_MoveParent, ++/*130875*/ OPC_MoveChild, 18, ++/*130877*/ OPC_CheckInteger, 7, ++/*130879*/ OPC_CheckType, MVT::i32, ++/*130881*/ OPC_MoveParent, ++/*130882*/ OPC_MoveChild, 19, ++/*130884*/ OPC_CheckInteger, 7, ++/*130886*/ OPC_CheckType, MVT::i32, ++/*130888*/ OPC_MoveParent, ++/*130889*/ OPC_MoveChild, 20, ++/*130891*/ OPC_CheckInteger, 7, ++/*130893*/ OPC_CheckType, MVT::i32, ++/*130895*/ OPC_MoveParent, ++/*130896*/ OPC_MoveChild, 21, ++/*130898*/ OPC_CheckInteger, 7, ++/*130900*/ OPC_CheckType, MVT::i32, ++/*130902*/ OPC_MoveParent, ++/*130903*/ OPC_MoveChild, 22, ++/*130905*/ OPC_CheckInteger, 7, ++/*130907*/ OPC_CheckType, MVT::i32, ++/*130909*/ OPC_MoveParent, ++/*130910*/ OPC_MoveChild, 23, ++/*130912*/ OPC_CheckInteger, 7, ++/*130914*/ OPC_CheckType, MVT::i32, ++/*130916*/ OPC_MoveParent, ++/*130917*/ OPC_MoveChild, 24, ++/*130919*/ OPC_CheckInteger, 7, ++/*130921*/ OPC_CheckType, MVT::i32, ++/*130923*/ OPC_MoveParent, ++/*130924*/ OPC_MoveChild, 25, ++/*130926*/ OPC_CheckInteger, 7, ++/*130928*/ OPC_CheckType, MVT::i32, ++/*130930*/ OPC_MoveParent, ++/*130931*/ OPC_MoveChild, 26, ++/*130933*/ OPC_CheckInteger, 7, ++/*130935*/ OPC_CheckType, MVT::i32, ++/*130937*/ OPC_MoveParent, ++/*130938*/ OPC_MoveChild, 27, ++/*130940*/ OPC_CheckInteger, 7, ++/*130942*/ OPC_CheckType, MVT::i32, ++/*130944*/ OPC_MoveParent, ++/*130945*/ OPC_MoveChild, 28, ++/*130947*/ OPC_CheckInteger, 7, ++/*130949*/ OPC_CheckType, MVT::i32, ++/*130951*/ OPC_MoveParent, ++/*130952*/ OPC_MoveChild, 29, ++/*130954*/ OPC_CheckInteger, 7, ++/*130956*/ OPC_CheckType, MVT::i32, ++/*130958*/ OPC_MoveParent, ++/*130959*/ OPC_MoveChild, 30, ++/*130961*/ OPC_CheckInteger, 7, ++/*130963*/ OPC_CheckType, MVT::i32, ++/*130965*/ OPC_MoveParent, ++/*130966*/ OPC_MoveChild, 31, ++/*130968*/ OPC_CheckInteger, 7, ++/*130970*/ OPC_CheckType, MVT::i32, ++/*130972*/ OPC_MoveParent, ++/*130973*/ OPC_CheckType, MVT::v32i8, ++/*130975*/ OPC_MoveParent, ++/*130976*/ OPC_MoveParent, ++/*130977*/ OPC_MoveParent, ++/*130978*/ OPC_MoveChild1, ++/*130979*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*130982*/ OPC_CheckChild0Integer, 1, ++/*130984*/ OPC_CheckChild0Type, MVT::i32, ++/*130986*/ OPC_CheckChild1Integer, 1, ++/*130988*/ OPC_CheckChild1Type, MVT::i32, ++/*130990*/ OPC_CheckChild2Integer, 1, ++/*130992*/ OPC_CheckChild2Type, MVT::i32, ++/*130994*/ OPC_CheckChild3Integer, 1, ++/*130996*/ OPC_CheckChild3Type, MVT::i32, ++/*130998*/ OPC_CheckChild4Integer, 1, ++/*131000*/ OPC_CheckChild4Type, MVT::i32, ++/*131002*/ OPC_MoveChild5, ++/*131003*/ OPC_CheckInteger, 1, ++/*131005*/ OPC_CheckType, MVT::i32, ++/*131007*/ OPC_MoveParent, ++/*131008*/ OPC_MoveChild6, ++/*131009*/ OPC_CheckInteger, 1, ++/*131011*/ OPC_CheckType, MVT::i32, ++/*131013*/ OPC_MoveParent, ++/*131014*/ OPC_MoveChild7, ++/*131015*/ OPC_CheckInteger, 1, ++/*131017*/ OPC_CheckType, MVT::i32, ++/*131019*/ OPC_MoveParent, ++/*131020*/ OPC_MoveChild, 8, ++/*131022*/ OPC_CheckInteger, 1, ++/*131024*/ OPC_CheckType, MVT::i32, ++/*131026*/ OPC_MoveParent, ++/*131027*/ OPC_MoveChild, 9, ++/*131029*/ OPC_CheckInteger, 1, ++/*131031*/ OPC_CheckType, MVT::i32, ++/*131033*/ OPC_MoveParent, ++/*131034*/ OPC_MoveChild, 10, ++/*131036*/ OPC_CheckInteger, 1, ++/*131038*/ OPC_CheckType, MVT::i32, ++/*131040*/ OPC_MoveParent, ++/*131041*/ OPC_MoveChild, 11, ++/*131043*/ OPC_CheckInteger, 1, ++/*131045*/ OPC_CheckType, MVT::i32, ++/*131047*/ OPC_MoveParent, ++/*131048*/ OPC_MoveChild, 12, ++/*131050*/ OPC_CheckInteger, 1, ++/*131052*/ OPC_CheckType, MVT::i32, ++/*131054*/ OPC_MoveParent, ++/*131055*/ OPC_MoveChild, 13, ++/*131057*/ OPC_CheckInteger, 1, ++/*131059*/ OPC_CheckType, MVT::i32, ++/*131061*/ OPC_MoveParent, ++/*131062*/ OPC_MoveChild, 14, ++/*131064*/ OPC_CheckInteger, 1, ++/*131066*/ OPC_CheckType, MVT::i32, ++/*131068*/ OPC_MoveParent, ++/*131069*/ OPC_MoveChild, 15, ++/*131071*/ OPC_CheckInteger, 1, ++/*131073*/ OPC_CheckType, MVT::i32, ++/*131075*/ OPC_MoveParent, ++/*131076*/ OPC_MoveChild, 16, ++/*131078*/ OPC_CheckInteger, 1, ++/*131080*/ OPC_CheckType, MVT::i32, ++/*131082*/ OPC_MoveParent, ++/*131083*/ OPC_MoveChild, 17, ++/*131085*/ OPC_CheckInteger, 1, ++/*131087*/ OPC_CheckType, MVT::i32, ++/*131089*/ OPC_MoveParent, ++/*131090*/ OPC_MoveChild, 18, ++/*131092*/ OPC_CheckInteger, 1, ++/*131094*/ OPC_CheckType, MVT::i32, ++/*131096*/ OPC_MoveParent, ++/*131097*/ OPC_MoveChild, 19, ++/*131099*/ OPC_CheckInteger, 1, ++/*131101*/ OPC_CheckType, MVT::i32, ++/*131103*/ OPC_MoveParent, ++/*131104*/ OPC_MoveChild, 20, ++/*131106*/ OPC_CheckInteger, 1, ++/*131108*/ OPC_CheckType, MVT::i32, ++/*131110*/ OPC_MoveParent, ++/*131111*/ OPC_MoveChild, 21, ++/*131113*/ OPC_CheckInteger, 1, ++/*131115*/ OPC_CheckType, MVT::i32, ++/*131117*/ OPC_MoveParent, ++/*131118*/ OPC_MoveChild, 22, ++/*131120*/ OPC_CheckInteger, 1, ++/*131122*/ OPC_CheckType, MVT::i32, ++/*131124*/ OPC_MoveParent, ++/*131125*/ OPC_MoveChild, 23, ++/*131127*/ OPC_CheckInteger, 1, ++/*131129*/ OPC_CheckType, MVT::i32, ++/*131131*/ OPC_MoveParent, ++/*131132*/ OPC_MoveChild, 24, ++/*131134*/ OPC_CheckInteger, 1, ++/*131136*/ OPC_CheckType, MVT::i32, ++/*131138*/ OPC_MoveParent, ++/*131139*/ OPC_MoveChild, 25, ++/*131141*/ OPC_CheckInteger, 1, ++/*131143*/ OPC_CheckType, MVT::i32, ++/*131145*/ OPC_MoveParent, ++/*131146*/ OPC_MoveChild, 26, ++/*131148*/ OPC_CheckInteger, 1, ++/*131150*/ OPC_CheckType, MVT::i32, ++/*131152*/ OPC_MoveParent, ++/*131153*/ OPC_MoveChild, 27, ++/*131155*/ OPC_CheckInteger, 1, ++/*131157*/ OPC_CheckType, MVT::i32, ++/*131159*/ OPC_MoveParent, ++/*131160*/ OPC_MoveChild, 28, ++/*131162*/ OPC_CheckInteger, 1, ++/*131164*/ OPC_CheckType, MVT::i32, ++/*131166*/ OPC_MoveParent, ++/*131167*/ OPC_MoveChild, 29, ++/*131169*/ OPC_CheckInteger, 1, ++/*131171*/ OPC_CheckType, MVT::i32, ++/*131173*/ OPC_MoveParent, ++/*131174*/ OPC_MoveChild, 30, ++/*131176*/ OPC_CheckInteger, 1, ++/*131178*/ OPC_CheckType, MVT::i32, ++/*131180*/ OPC_MoveParent, ++/*131181*/ OPC_MoveChild, 31, ++/*131183*/ OPC_CheckInteger, 1, ++/*131185*/ OPC_CheckType, MVT::i32, ++/*131187*/ OPC_MoveParent, ++/*131188*/ OPC_CheckType, MVT::v32i8, ++/*131190*/ OPC_MoveParent, ++/*131191*/ OPC_CheckType, MVT::v32i8, ++/*131193*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*131195*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a)), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*131203*/ /*Scope*/ 17|128,5/*657*/, /*->131862*/ ++/*131205*/ OPC_CheckChild0Same, 1, ++/*131207*/ OPC_CheckChild1Same, 0, ++/*131209*/ OPC_MoveParent, ++/*131210*/ OPC_MoveChild1, ++/*131211*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*131214*/ OPC_CheckChild0Integer, 1, ++/*131216*/ OPC_CheckChild0Type, MVT::i32, ++/*131218*/ OPC_CheckChild1Integer, 1, ++/*131220*/ OPC_CheckChild1Type, MVT::i32, ++/*131222*/ OPC_CheckChild2Integer, 1, ++/*131224*/ OPC_CheckChild2Type, MVT::i32, ++/*131226*/ OPC_CheckChild3Integer, 1, ++/*131228*/ OPC_CheckChild3Type, MVT::i32, ++/*131230*/ OPC_CheckChild4Integer, 1, ++/*131232*/ OPC_CheckChild4Type, MVT::i32, ++/*131234*/ OPC_MoveChild5, ++/*131235*/ OPC_CheckInteger, 1, ++/*131237*/ OPC_CheckType, MVT::i32, ++/*131239*/ OPC_MoveParent, ++/*131240*/ OPC_MoveChild6, ++/*131241*/ OPC_CheckInteger, 1, ++/*131243*/ OPC_CheckType, MVT::i32, ++/*131245*/ OPC_MoveParent, ++/*131246*/ OPC_MoveChild7, ++/*131247*/ OPC_CheckInteger, 1, ++/*131249*/ OPC_CheckType, MVT::i32, ++/*131251*/ OPC_MoveParent, ++/*131252*/ OPC_MoveChild, 8, ++/*131254*/ OPC_CheckInteger, 1, ++/*131256*/ OPC_CheckType, MVT::i32, ++/*131258*/ OPC_MoveParent, ++/*131259*/ OPC_MoveChild, 9, ++/*131261*/ OPC_CheckInteger, 1, ++/*131263*/ OPC_CheckType, MVT::i32, ++/*131265*/ OPC_MoveParent, ++/*131266*/ OPC_MoveChild, 10, ++/*131268*/ OPC_CheckInteger, 1, ++/*131270*/ OPC_CheckType, MVT::i32, ++/*131272*/ OPC_MoveParent, ++/*131273*/ OPC_MoveChild, 11, ++/*131275*/ OPC_CheckInteger, 1, ++/*131277*/ OPC_CheckType, MVT::i32, ++/*131279*/ OPC_MoveParent, ++/*131280*/ OPC_MoveChild, 12, ++/*131282*/ OPC_CheckInteger, 1, ++/*131284*/ OPC_CheckType, MVT::i32, ++/*131286*/ OPC_MoveParent, ++/*131287*/ OPC_MoveChild, 13, ++/*131289*/ OPC_CheckInteger, 1, ++/*131291*/ OPC_CheckType, MVT::i32, ++/*131293*/ OPC_MoveParent, ++/*131294*/ OPC_MoveChild, 14, ++/*131296*/ OPC_CheckInteger, 1, ++/*131298*/ OPC_CheckType, MVT::i32, ++/*131300*/ OPC_MoveParent, ++/*131301*/ OPC_MoveChild, 15, ++/*131303*/ OPC_CheckInteger, 1, ++/*131305*/ OPC_CheckType, MVT::i32, ++/*131307*/ OPC_MoveParent, ++/*131308*/ OPC_MoveChild, 16, ++/*131310*/ OPC_CheckInteger, 1, ++/*131312*/ OPC_CheckType, MVT::i32, ++/*131314*/ OPC_MoveParent, ++/*131315*/ OPC_MoveChild, 17, ++/*131317*/ OPC_CheckInteger, 1, ++/*131319*/ OPC_CheckType, MVT::i32, ++/*131321*/ OPC_MoveParent, ++/*131322*/ OPC_MoveChild, 18, ++/*131324*/ OPC_CheckInteger, 1, ++/*131326*/ OPC_CheckType, MVT::i32, ++/*131328*/ OPC_MoveParent, ++/*131329*/ OPC_MoveChild, 19, ++/*131331*/ OPC_CheckInteger, 1, ++/*131333*/ OPC_CheckType, MVT::i32, ++/*131335*/ OPC_MoveParent, ++/*131336*/ OPC_MoveChild, 20, ++/*131338*/ OPC_CheckInteger, 1, ++/*131340*/ OPC_CheckType, MVT::i32, ++/*131342*/ OPC_MoveParent, ++/*131343*/ OPC_MoveChild, 21, ++/*131345*/ OPC_CheckInteger, 1, ++/*131347*/ OPC_CheckType, MVT::i32, ++/*131349*/ OPC_MoveParent, ++/*131350*/ OPC_MoveChild, 22, ++/*131352*/ OPC_CheckInteger, 1, ++/*131354*/ OPC_CheckType, MVT::i32, ++/*131356*/ OPC_MoveParent, ++/*131357*/ OPC_MoveChild, 23, ++/*131359*/ OPC_CheckInteger, 1, ++/*131361*/ OPC_CheckType, MVT::i32, ++/*131363*/ OPC_MoveParent, ++/*131364*/ OPC_MoveChild, 24, ++/*131366*/ OPC_CheckInteger, 1, ++/*131368*/ OPC_CheckType, MVT::i32, ++/*131370*/ OPC_MoveParent, ++/*131371*/ OPC_MoveChild, 25, ++/*131373*/ OPC_CheckInteger, 1, ++/*131375*/ OPC_CheckType, MVT::i32, ++/*131377*/ OPC_MoveParent, ++/*131378*/ OPC_MoveChild, 26, ++/*131380*/ OPC_CheckInteger, 1, ++/*131382*/ OPC_CheckType, MVT::i32, ++/*131384*/ OPC_MoveParent, ++/*131385*/ OPC_MoveChild, 27, ++/*131387*/ OPC_CheckInteger, 1, ++/*131389*/ OPC_CheckType, MVT::i32, ++/*131391*/ OPC_MoveParent, ++/*131392*/ OPC_MoveChild, 28, ++/*131394*/ OPC_CheckInteger, 1, ++/*131396*/ OPC_CheckType, MVT::i32, ++/*131398*/ OPC_MoveParent, ++/*131399*/ OPC_MoveChild, 29, ++/*131401*/ OPC_CheckInteger, 1, ++/*131403*/ OPC_CheckType, MVT::i32, ++/*131405*/ OPC_MoveParent, ++/*131406*/ OPC_MoveChild, 30, ++/*131408*/ OPC_CheckInteger, 1, ++/*131410*/ OPC_CheckType, MVT::i32, ++/*131412*/ OPC_MoveParent, ++/*131413*/ OPC_MoveChild, 31, ++/*131415*/ OPC_CheckInteger, 1, ++/*131417*/ OPC_CheckType, MVT::i32, ++/*131419*/ OPC_MoveParent, ++/*131420*/ OPC_MoveParent, ++/*131421*/ OPC_MoveParent, ++/*131422*/ OPC_MoveChild1, ++/*131423*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*131426*/ OPC_CheckChild0Integer, 7, ++/*131428*/ OPC_CheckChild0Type, MVT::i32, ++/*131430*/ OPC_CheckChild1Integer, 7, ++/*131432*/ OPC_CheckChild1Type, MVT::i32, ++/*131434*/ OPC_CheckChild2Integer, 7, ++/*131436*/ OPC_CheckChild2Type, MVT::i32, ++/*131438*/ OPC_CheckChild3Integer, 7, ++/*131440*/ OPC_CheckChild3Type, MVT::i32, ++/*131442*/ OPC_CheckChild4Integer, 7, ++/*131444*/ OPC_CheckChild4Type, MVT::i32, ++/*131446*/ OPC_MoveChild5, ++/*131447*/ OPC_CheckInteger, 7, ++/*131449*/ OPC_CheckType, MVT::i32, ++/*131451*/ OPC_MoveParent, ++/*131452*/ OPC_MoveChild6, ++/*131453*/ OPC_CheckInteger, 7, ++/*131455*/ OPC_CheckType, MVT::i32, ++/*131457*/ OPC_MoveParent, ++/*131458*/ OPC_MoveChild7, ++/*131459*/ OPC_CheckInteger, 7, ++/*131461*/ OPC_CheckType, MVT::i32, ++/*131463*/ OPC_MoveParent, ++/*131464*/ OPC_MoveChild, 8, ++/*131466*/ OPC_CheckInteger, 7, ++/*131468*/ OPC_CheckType, MVT::i32, ++/*131470*/ OPC_MoveParent, ++/*131471*/ OPC_MoveChild, 9, ++/*131473*/ OPC_CheckInteger, 7, ++/*131475*/ OPC_CheckType, MVT::i32, ++/*131477*/ OPC_MoveParent, ++/*131478*/ OPC_MoveChild, 10, ++/*131480*/ OPC_CheckInteger, 7, ++/*131482*/ OPC_CheckType, MVT::i32, ++/*131484*/ OPC_MoveParent, ++/*131485*/ OPC_MoveChild, 11, ++/*131487*/ OPC_CheckInteger, 7, ++/*131489*/ OPC_CheckType, MVT::i32, ++/*131491*/ OPC_MoveParent, ++/*131492*/ OPC_MoveChild, 12, ++/*131494*/ OPC_CheckInteger, 7, ++/*131496*/ OPC_CheckType, MVT::i32, ++/*131498*/ OPC_MoveParent, ++/*131499*/ OPC_MoveChild, 13, ++/*131501*/ OPC_CheckInteger, 7, ++/*131503*/ OPC_CheckType, MVT::i32, ++/*131505*/ OPC_MoveParent, ++/*131506*/ OPC_MoveChild, 14, ++/*131508*/ OPC_CheckInteger, 7, ++/*131510*/ OPC_CheckType, MVT::i32, ++/*131512*/ OPC_MoveParent, ++/*131513*/ OPC_MoveChild, 15, ++/*131515*/ OPC_CheckInteger, 7, ++/*131517*/ OPC_CheckType, MVT::i32, ++/*131519*/ OPC_MoveParent, ++/*131520*/ OPC_MoveChild, 16, ++/*131522*/ OPC_CheckInteger, 7, ++/*131524*/ OPC_CheckType, MVT::i32, ++/*131526*/ OPC_MoveParent, ++/*131527*/ OPC_MoveChild, 17, ++/*131529*/ OPC_CheckInteger, 7, ++/*131531*/ OPC_CheckType, MVT::i32, ++/*131533*/ OPC_MoveParent, ++/*131534*/ OPC_MoveChild, 18, ++/*131536*/ OPC_CheckInteger, 7, ++/*131538*/ OPC_CheckType, MVT::i32, ++/*131540*/ OPC_MoveParent, ++/*131541*/ OPC_MoveChild, 19, ++/*131543*/ OPC_CheckInteger, 7, ++/*131545*/ OPC_CheckType, MVT::i32, ++/*131547*/ OPC_MoveParent, ++/*131548*/ OPC_MoveChild, 20, ++/*131550*/ OPC_CheckInteger, 7, ++/*131552*/ OPC_CheckType, MVT::i32, ++/*131554*/ OPC_MoveParent, ++/*131555*/ OPC_MoveChild, 21, ++/*131557*/ OPC_CheckInteger, 7, ++/*131559*/ OPC_CheckType, MVT::i32, ++/*131561*/ OPC_MoveParent, ++/*131562*/ OPC_MoveChild, 22, ++/*131564*/ OPC_CheckInteger, 7, ++/*131566*/ OPC_CheckType, MVT::i32, ++/*131568*/ OPC_MoveParent, ++/*131569*/ OPC_MoveChild, 23, ++/*131571*/ OPC_CheckInteger, 7, ++/*131573*/ OPC_CheckType, MVT::i32, ++/*131575*/ OPC_MoveParent, ++/*131576*/ OPC_MoveChild, 24, ++/*131578*/ OPC_CheckInteger, 7, ++/*131580*/ OPC_CheckType, MVT::i32, ++/*131582*/ OPC_MoveParent, ++/*131583*/ OPC_MoveChild, 25, ++/*131585*/ OPC_CheckInteger, 7, ++/*131587*/ OPC_CheckType, MVT::i32, ++/*131589*/ OPC_MoveParent, ++/*131590*/ OPC_MoveChild, 26, ++/*131592*/ OPC_CheckInteger, 7, ++/*131594*/ OPC_CheckType, MVT::i32, ++/*131596*/ OPC_MoveParent, ++/*131597*/ OPC_MoveChild, 27, ++/*131599*/ OPC_CheckInteger, 7, ++/*131601*/ OPC_CheckType, MVT::i32, ++/*131603*/ OPC_MoveParent, ++/*131604*/ OPC_MoveChild, 28, ++/*131606*/ OPC_CheckInteger, 7, ++/*131608*/ OPC_CheckType, MVT::i32, ++/*131610*/ OPC_MoveParent, ++/*131611*/ OPC_MoveChild, 29, ++/*131613*/ OPC_CheckInteger, 7, ++/*131615*/ OPC_CheckType, MVT::i32, ++/*131617*/ OPC_MoveParent, ++/*131618*/ OPC_MoveChild, 30, ++/*131620*/ OPC_CheckInteger, 7, ++/*131622*/ OPC_CheckType, MVT::i32, ++/*131624*/ OPC_MoveParent, ++/*131625*/ OPC_MoveChild, 31, ++/*131627*/ OPC_CheckInteger, 7, ++/*131629*/ OPC_CheckType, MVT::i32, ++/*131631*/ OPC_MoveParent, ++/*131632*/ OPC_CheckType, MVT::v32i8, ++/*131634*/ OPC_MoveParent, ++/*131635*/ OPC_MoveParent, ++/*131636*/ OPC_MoveParent, ++/*131637*/ OPC_MoveChild1, ++/*131638*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*131641*/ OPC_CheckChild0Integer, 1, ++/*131643*/ OPC_CheckChild0Type, MVT::i32, ++/*131645*/ OPC_CheckChild1Integer, 1, ++/*131647*/ OPC_CheckChild1Type, MVT::i32, ++/*131649*/ OPC_CheckChild2Integer, 1, ++/*131651*/ OPC_CheckChild2Type, MVT::i32, ++/*131653*/ OPC_CheckChild3Integer, 1, ++/*131655*/ OPC_CheckChild3Type, MVT::i32, ++/*131657*/ OPC_CheckChild4Integer, 1, ++/*131659*/ OPC_CheckChild4Type, MVT::i32, ++/*131661*/ OPC_MoveChild5, ++/*131662*/ OPC_CheckInteger, 1, ++/*131664*/ OPC_CheckType, MVT::i32, ++/*131666*/ OPC_MoveParent, ++/*131667*/ OPC_MoveChild6, ++/*131668*/ OPC_CheckInteger, 1, ++/*131670*/ OPC_CheckType, MVT::i32, ++/*131672*/ OPC_MoveParent, ++/*131673*/ OPC_MoveChild7, ++/*131674*/ OPC_CheckInteger, 1, ++/*131676*/ OPC_CheckType, MVT::i32, ++/*131678*/ OPC_MoveParent, ++/*131679*/ OPC_MoveChild, 8, ++/*131681*/ OPC_CheckInteger, 1, ++/*131683*/ OPC_CheckType, MVT::i32, ++/*131685*/ OPC_MoveParent, ++/*131686*/ OPC_MoveChild, 9, ++/*131688*/ OPC_CheckInteger, 1, ++/*131690*/ OPC_CheckType, MVT::i32, ++/*131692*/ OPC_MoveParent, ++/*131693*/ OPC_MoveChild, 10, ++/*131695*/ OPC_CheckInteger, 1, ++/*131697*/ OPC_CheckType, MVT::i32, ++/*131699*/ OPC_MoveParent, ++/*131700*/ OPC_MoveChild, 11, ++/*131702*/ OPC_CheckInteger, 1, ++/*131704*/ OPC_CheckType, MVT::i32, ++/*131706*/ OPC_MoveParent, ++/*131707*/ OPC_MoveChild, 12, ++/*131709*/ OPC_CheckInteger, 1, ++/*131711*/ OPC_CheckType, MVT::i32, ++/*131713*/ OPC_MoveParent, ++/*131714*/ OPC_MoveChild, 13, ++/*131716*/ OPC_CheckInteger, 1, ++/*131718*/ OPC_CheckType, MVT::i32, ++/*131720*/ OPC_MoveParent, ++/*131721*/ OPC_MoveChild, 14, ++/*131723*/ OPC_CheckInteger, 1, ++/*131725*/ OPC_CheckType, MVT::i32, ++/*131727*/ OPC_MoveParent, ++/*131728*/ OPC_MoveChild, 15, ++/*131730*/ OPC_CheckInteger, 1, ++/*131732*/ OPC_CheckType, MVT::i32, ++/*131734*/ OPC_MoveParent, ++/*131735*/ OPC_MoveChild, 16, ++/*131737*/ OPC_CheckInteger, 1, ++/*131739*/ OPC_CheckType, MVT::i32, ++/*131741*/ OPC_MoveParent, ++/*131742*/ OPC_MoveChild, 17, ++/*131744*/ OPC_CheckInteger, 1, ++/*131746*/ OPC_CheckType, MVT::i32, ++/*131748*/ OPC_MoveParent, ++/*131749*/ OPC_MoveChild, 18, ++/*131751*/ OPC_CheckInteger, 1, ++/*131753*/ OPC_CheckType, MVT::i32, ++/*131755*/ OPC_MoveParent, ++/*131756*/ OPC_MoveChild, 19, ++/*131758*/ OPC_CheckInteger, 1, ++/*131760*/ OPC_CheckType, MVT::i32, ++/*131762*/ OPC_MoveParent, ++/*131763*/ OPC_MoveChild, 20, ++/*131765*/ OPC_CheckInteger, 1, ++/*131767*/ OPC_CheckType, MVT::i32, ++/*131769*/ OPC_MoveParent, ++/*131770*/ OPC_MoveChild, 21, ++/*131772*/ OPC_CheckInteger, 1, ++/*131774*/ OPC_CheckType, MVT::i32, ++/*131776*/ OPC_MoveParent, ++/*131777*/ OPC_MoveChild, 22, ++/*131779*/ OPC_CheckInteger, 1, ++/*131781*/ OPC_CheckType, MVT::i32, ++/*131783*/ OPC_MoveParent, ++/*131784*/ OPC_MoveChild, 23, ++/*131786*/ OPC_CheckInteger, 1, ++/*131788*/ OPC_CheckType, MVT::i32, ++/*131790*/ OPC_MoveParent, ++/*131791*/ OPC_MoveChild, 24, ++/*131793*/ OPC_CheckInteger, 1, ++/*131795*/ OPC_CheckType, MVT::i32, ++/*131797*/ OPC_MoveParent, ++/*131798*/ OPC_MoveChild, 25, ++/*131800*/ OPC_CheckInteger, 1, ++/*131802*/ OPC_CheckType, MVT::i32, ++/*131804*/ OPC_MoveParent, ++/*131805*/ OPC_MoveChild, 26, ++/*131807*/ OPC_CheckInteger, 1, ++/*131809*/ OPC_CheckType, MVT::i32, ++/*131811*/ OPC_MoveParent, ++/*131812*/ OPC_MoveChild, 27, ++/*131814*/ OPC_CheckInteger, 1, ++/*131816*/ OPC_CheckType, MVT::i32, ++/*131818*/ OPC_MoveParent, ++/*131819*/ OPC_MoveChild, 28, ++/*131821*/ OPC_CheckInteger, 1, ++/*131823*/ OPC_CheckType, MVT::i32, ++/*131825*/ OPC_MoveParent, ++/*131826*/ OPC_MoveChild, 29, ++/*131828*/ OPC_CheckInteger, 1, ++/*131830*/ OPC_CheckType, MVT::i32, ++/*131832*/ OPC_MoveParent, ++/*131833*/ OPC_MoveChild, 30, ++/*131835*/ OPC_CheckInteger, 1, ++/*131837*/ OPC_CheckType, MVT::i32, ++/*131839*/ OPC_MoveParent, ++/*131840*/ OPC_MoveChild, 31, ++/*131842*/ OPC_CheckInteger, 1, ++/*131844*/ OPC_CheckType, MVT::i32, ++/*131846*/ OPC_MoveParent, ++/*131847*/ OPC_CheckType, MVT::v32i8, ++/*131849*/ OPC_MoveParent, ++/*131850*/ OPC_CheckType, MVT::v32i8, ++/*131852*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*131854*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a)), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*131862*/ /*Scope*/ 17|128,5/*657*/, /*->132521*/ ++/*131864*/ OPC_CheckChild0Same, 0, ++/*131866*/ OPC_CheckChild1Same, 1, ++/*131868*/ OPC_MoveParent, ++/*131869*/ OPC_MoveChild1, ++/*131870*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*131873*/ OPC_CheckChild0Integer, 1, ++/*131875*/ OPC_CheckChild0Type, MVT::i32, ++/*131877*/ OPC_CheckChild1Integer, 1, ++/*131879*/ OPC_CheckChild1Type, MVT::i32, ++/*131881*/ OPC_CheckChild2Integer, 1, ++/*131883*/ OPC_CheckChild2Type, MVT::i32, ++/*131885*/ OPC_CheckChild3Integer, 1, ++/*131887*/ OPC_CheckChild3Type, MVT::i32, ++/*131889*/ OPC_CheckChild4Integer, 1, ++/*131891*/ OPC_CheckChild4Type, MVT::i32, ++/*131893*/ OPC_MoveChild5, ++/*131894*/ OPC_CheckInteger, 1, ++/*131896*/ OPC_CheckType, MVT::i32, ++/*131898*/ OPC_MoveParent, ++/*131899*/ OPC_MoveChild6, ++/*131900*/ OPC_CheckInteger, 1, ++/*131902*/ OPC_CheckType, MVT::i32, ++/*131904*/ OPC_MoveParent, ++/*131905*/ OPC_MoveChild7, ++/*131906*/ OPC_CheckInteger, 1, ++/*131908*/ OPC_CheckType, MVT::i32, ++/*131910*/ OPC_MoveParent, ++/*131911*/ OPC_MoveChild, 8, ++/*131913*/ OPC_CheckInteger, 1, ++/*131915*/ OPC_CheckType, MVT::i32, ++/*131917*/ OPC_MoveParent, ++/*131918*/ OPC_MoveChild, 9, ++/*131920*/ OPC_CheckInteger, 1, ++/*131922*/ OPC_CheckType, MVT::i32, ++/*131924*/ OPC_MoveParent, ++/*131925*/ OPC_MoveChild, 10, ++/*131927*/ OPC_CheckInteger, 1, ++/*131929*/ OPC_CheckType, MVT::i32, ++/*131931*/ OPC_MoveParent, ++/*131932*/ OPC_MoveChild, 11, ++/*131934*/ OPC_CheckInteger, 1, ++/*131936*/ OPC_CheckType, MVT::i32, ++/*131938*/ OPC_MoveParent, ++/*131939*/ OPC_MoveChild, 12, ++/*131941*/ OPC_CheckInteger, 1, ++/*131943*/ OPC_CheckType, MVT::i32, ++/*131945*/ OPC_MoveParent, ++/*131946*/ OPC_MoveChild, 13, ++/*131948*/ OPC_CheckInteger, 1, ++/*131950*/ OPC_CheckType, MVT::i32, ++/*131952*/ OPC_MoveParent, ++/*131953*/ OPC_MoveChild, 14, ++/*131955*/ OPC_CheckInteger, 1, ++/*131957*/ OPC_CheckType, MVT::i32, ++/*131959*/ OPC_MoveParent, ++/*131960*/ OPC_MoveChild, 15, ++/*131962*/ OPC_CheckInteger, 1, ++/*131964*/ OPC_CheckType, MVT::i32, ++/*131966*/ OPC_MoveParent, ++/*131967*/ OPC_MoveChild, 16, ++/*131969*/ OPC_CheckInteger, 1, ++/*131971*/ OPC_CheckType, MVT::i32, ++/*131973*/ OPC_MoveParent, ++/*131974*/ OPC_MoveChild, 17, ++/*131976*/ OPC_CheckInteger, 1, ++/*131978*/ OPC_CheckType, MVT::i32, ++/*131980*/ OPC_MoveParent, ++/*131981*/ OPC_MoveChild, 18, ++/*131983*/ OPC_CheckInteger, 1, ++/*131985*/ OPC_CheckType, MVT::i32, ++/*131987*/ OPC_MoveParent, ++/*131988*/ OPC_MoveChild, 19, ++/*131990*/ OPC_CheckInteger, 1, ++/*131992*/ OPC_CheckType, MVT::i32, ++/*131994*/ OPC_MoveParent, ++/*131995*/ OPC_MoveChild, 20, ++/*131997*/ OPC_CheckInteger, 1, ++/*131999*/ OPC_CheckType, MVT::i32, ++/*132001*/ OPC_MoveParent, ++/*132002*/ OPC_MoveChild, 21, ++/*132004*/ OPC_CheckInteger, 1, ++/*132006*/ OPC_CheckType, MVT::i32, ++/*132008*/ OPC_MoveParent, ++/*132009*/ OPC_MoveChild, 22, ++/*132011*/ OPC_CheckInteger, 1, ++/*132013*/ OPC_CheckType, MVT::i32, ++/*132015*/ OPC_MoveParent, ++/*132016*/ OPC_MoveChild, 23, ++/*132018*/ OPC_CheckInteger, 1, ++/*132020*/ OPC_CheckType, MVT::i32, ++/*132022*/ OPC_MoveParent, ++/*132023*/ OPC_MoveChild, 24, ++/*132025*/ OPC_CheckInteger, 1, ++/*132027*/ OPC_CheckType, MVT::i32, ++/*132029*/ OPC_MoveParent, ++/*132030*/ OPC_MoveChild, 25, ++/*132032*/ OPC_CheckInteger, 1, ++/*132034*/ OPC_CheckType, MVT::i32, ++/*132036*/ OPC_MoveParent, ++/*132037*/ OPC_MoveChild, 26, ++/*132039*/ OPC_CheckInteger, 1, ++/*132041*/ OPC_CheckType, MVT::i32, ++/*132043*/ OPC_MoveParent, ++/*132044*/ OPC_MoveChild, 27, ++/*132046*/ OPC_CheckInteger, 1, ++/*132048*/ OPC_CheckType, MVT::i32, ++/*132050*/ OPC_MoveParent, ++/*132051*/ OPC_MoveChild, 28, ++/*132053*/ OPC_CheckInteger, 1, ++/*132055*/ OPC_CheckType, MVT::i32, ++/*132057*/ OPC_MoveParent, ++/*132058*/ OPC_MoveChild, 29, ++/*132060*/ OPC_CheckInteger, 1, ++/*132062*/ OPC_CheckType, MVT::i32, ++/*132064*/ OPC_MoveParent, ++/*132065*/ OPC_MoveChild, 30, ++/*132067*/ OPC_CheckInteger, 1, ++/*132069*/ OPC_CheckType, MVT::i32, ++/*132071*/ OPC_MoveParent, ++/*132072*/ OPC_MoveChild, 31, ++/*132074*/ OPC_CheckInteger, 1, ++/*132076*/ OPC_CheckType, MVT::i32, ++/*132078*/ OPC_MoveParent, ++/*132079*/ OPC_MoveParent, ++/*132080*/ OPC_MoveParent, ++/*132081*/ OPC_MoveChild1, ++/*132082*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*132085*/ OPC_CheckChild0Integer, 7, ++/*132087*/ OPC_CheckChild0Type, MVT::i32, ++/*132089*/ OPC_CheckChild1Integer, 7, ++/*132091*/ OPC_CheckChild1Type, MVT::i32, ++/*132093*/ OPC_CheckChild2Integer, 7, ++/*132095*/ OPC_CheckChild2Type, MVT::i32, ++/*132097*/ OPC_CheckChild3Integer, 7, ++/*132099*/ OPC_CheckChild3Type, MVT::i32, ++/*132101*/ OPC_CheckChild4Integer, 7, ++/*132103*/ OPC_CheckChild4Type, MVT::i32, ++/*132105*/ OPC_MoveChild5, ++/*132106*/ OPC_CheckInteger, 7, ++/*132108*/ OPC_CheckType, MVT::i32, ++/*132110*/ OPC_MoveParent, ++/*132111*/ OPC_MoveChild6, ++/*132112*/ OPC_CheckInteger, 7, ++/*132114*/ OPC_CheckType, MVT::i32, ++/*132116*/ OPC_MoveParent, ++/*132117*/ OPC_MoveChild7, ++/*132118*/ OPC_CheckInteger, 7, ++/*132120*/ OPC_CheckType, MVT::i32, ++/*132122*/ OPC_MoveParent, ++/*132123*/ OPC_MoveChild, 8, ++/*132125*/ OPC_CheckInteger, 7, ++/*132127*/ OPC_CheckType, MVT::i32, ++/*132129*/ OPC_MoveParent, ++/*132130*/ OPC_MoveChild, 9, ++/*132132*/ OPC_CheckInteger, 7, ++/*132134*/ OPC_CheckType, MVT::i32, ++/*132136*/ OPC_MoveParent, ++/*132137*/ OPC_MoveChild, 10, ++/*132139*/ OPC_CheckInteger, 7, ++/*132141*/ OPC_CheckType, MVT::i32, ++/*132143*/ OPC_MoveParent, ++/*132144*/ OPC_MoveChild, 11, ++/*132146*/ OPC_CheckInteger, 7, ++/*132148*/ OPC_CheckType, MVT::i32, ++/*132150*/ OPC_MoveParent, ++/*132151*/ OPC_MoveChild, 12, ++/*132153*/ OPC_CheckInteger, 7, ++/*132155*/ OPC_CheckType, MVT::i32, ++/*132157*/ OPC_MoveParent, ++/*132158*/ OPC_MoveChild, 13, ++/*132160*/ OPC_CheckInteger, 7, ++/*132162*/ OPC_CheckType, MVT::i32, ++/*132164*/ OPC_MoveParent, ++/*132165*/ OPC_MoveChild, 14, ++/*132167*/ OPC_CheckInteger, 7, ++/*132169*/ OPC_CheckType, MVT::i32, ++/*132171*/ OPC_MoveParent, ++/*132172*/ OPC_MoveChild, 15, ++/*132174*/ OPC_CheckInteger, 7, ++/*132176*/ OPC_CheckType, MVT::i32, ++/*132178*/ OPC_MoveParent, ++/*132179*/ OPC_MoveChild, 16, ++/*132181*/ OPC_CheckInteger, 7, ++/*132183*/ OPC_CheckType, MVT::i32, ++/*132185*/ OPC_MoveParent, ++/*132186*/ OPC_MoveChild, 17, ++/*132188*/ OPC_CheckInteger, 7, ++/*132190*/ OPC_CheckType, MVT::i32, ++/*132192*/ OPC_MoveParent, ++/*132193*/ OPC_MoveChild, 18, ++/*132195*/ OPC_CheckInteger, 7, ++/*132197*/ OPC_CheckType, MVT::i32, ++/*132199*/ OPC_MoveParent, ++/*132200*/ OPC_MoveChild, 19, ++/*132202*/ OPC_CheckInteger, 7, ++/*132204*/ OPC_CheckType, MVT::i32, ++/*132206*/ OPC_MoveParent, ++/*132207*/ OPC_MoveChild, 20, ++/*132209*/ OPC_CheckInteger, 7, ++/*132211*/ OPC_CheckType, MVT::i32, ++/*132213*/ OPC_MoveParent, ++/*132214*/ OPC_MoveChild, 21, ++/*132216*/ OPC_CheckInteger, 7, ++/*132218*/ OPC_CheckType, MVT::i32, ++/*132220*/ OPC_MoveParent, ++/*132221*/ OPC_MoveChild, 22, ++/*132223*/ OPC_CheckInteger, 7, ++/*132225*/ OPC_CheckType, MVT::i32, ++/*132227*/ OPC_MoveParent, ++/*132228*/ OPC_MoveChild, 23, ++/*132230*/ OPC_CheckInteger, 7, ++/*132232*/ OPC_CheckType, MVT::i32, ++/*132234*/ OPC_MoveParent, ++/*132235*/ OPC_MoveChild, 24, ++/*132237*/ OPC_CheckInteger, 7, ++/*132239*/ OPC_CheckType, MVT::i32, ++/*132241*/ OPC_MoveParent, ++/*132242*/ OPC_MoveChild, 25, ++/*132244*/ OPC_CheckInteger, 7, ++/*132246*/ OPC_CheckType, MVT::i32, ++/*132248*/ OPC_MoveParent, ++/*132249*/ OPC_MoveChild, 26, ++/*132251*/ OPC_CheckInteger, 7, ++/*132253*/ OPC_CheckType, MVT::i32, ++/*132255*/ OPC_MoveParent, ++/*132256*/ OPC_MoveChild, 27, ++/*132258*/ OPC_CheckInteger, 7, ++/*132260*/ OPC_CheckType, MVT::i32, ++/*132262*/ OPC_MoveParent, ++/*132263*/ OPC_MoveChild, 28, ++/*132265*/ OPC_CheckInteger, 7, ++/*132267*/ OPC_CheckType, MVT::i32, ++/*132269*/ OPC_MoveParent, ++/*132270*/ OPC_MoveChild, 29, ++/*132272*/ OPC_CheckInteger, 7, ++/*132274*/ OPC_CheckType, MVT::i32, ++/*132276*/ OPC_MoveParent, ++/*132277*/ OPC_MoveChild, 30, ++/*132279*/ OPC_CheckInteger, 7, ++/*132281*/ OPC_CheckType, MVT::i32, ++/*132283*/ OPC_MoveParent, ++/*132284*/ OPC_MoveChild, 31, ++/*132286*/ OPC_CheckInteger, 7, ++/*132288*/ OPC_CheckType, MVT::i32, ++/*132290*/ OPC_MoveParent, ++/*132291*/ OPC_CheckType, MVT::v32i8, ++/*132293*/ OPC_MoveParent, ++/*132294*/ OPC_MoveParent, ++/*132295*/ OPC_MoveParent, ++/*132296*/ OPC_MoveChild1, ++/*132297*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*132300*/ OPC_CheckChild0Integer, 1, ++/*132302*/ OPC_CheckChild0Type, MVT::i32, ++/*132304*/ OPC_CheckChild1Integer, 1, ++/*132306*/ OPC_CheckChild1Type, MVT::i32, ++/*132308*/ OPC_CheckChild2Integer, 1, ++/*132310*/ OPC_CheckChild2Type, MVT::i32, ++/*132312*/ OPC_CheckChild3Integer, 1, ++/*132314*/ OPC_CheckChild3Type, MVT::i32, ++/*132316*/ OPC_CheckChild4Integer, 1, ++/*132318*/ OPC_CheckChild4Type, MVT::i32, ++/*132320*/ OPC_MoveChild5, ++/*132321*/ OPC_CheckInteger, 1, ++/*132323*/ OPC_CheckType, MVT::i32, ++/*132325*/ OPC_MoveParent, ++/*132326*/ OPC_MoveChild6, ++/*132327*/ OPC_CheckInteger, 1, ++/*132329*/ OPC_CheckType, MVT::i32, ++/*132331*/ OPC_MoveParent, ++/*132332*/ OPC_MoveChild7, ++/*132333*/ OPC_CheckInteger, 1, ++/*132335*/ OPC_CheckType, MVT::i32, ++/*132337*/ OPC_MoveParent, ++/*132338*/ OPC_MoveChild, 8, ++/*132340*/ OPC_CheckInteger, 1, ++/*132342*/ OPC_CheckType, MVT::i32, ++/*132344*/ OPC_MoveParent, ++/*132345*/ OPC_MoveChild, 9, ++/*132347*/ OPC_CheckInteger, 1, ++/*132349*/ OPC_CheckType, MVT::i32, ++/*132351*/ OPC_MoveParent, ++/*132352*/ OPC_MoveChild, 10, ++/*132354*/ OPC_CheckInteger, 1, ++/*132356*/ OPC_CheckType, MVT::i32, ++/*132358*/ OPC_MoveParent, ++/*132359*/ OPC_MoveChild, 11, ++/*132361*/ OPC_CheckInteger, 1, ++/*132363*/ OPC_CheckType, MVT::i32, ++/*132365*/ OPC_MoveParent, ++/*132366*/ OPC_MoveChild, 12, ++/*132368*/ OPC_CheckInteger, 1, ++/*132370*/ OPC_CheckType, MVT::i32, ++/*132372*/ OPC_MoveParent, ++/*132373*/ OPC_MoveChild, 13, ++/*132375*/ OPC_CheckInteger, 1, ++/*132377*/ OPC_CheckType, MVT::i32, ++/*132379*/ OPC_MoveParent, ++/*132380*/ OPC_MoveChild, 14, ++/*132382*/ OPC_CheckInteger, 1, ++/*132384*/ OPC_CheckType, MVT::i32, ++/*132386*/ OPC_MoveParent, ++/*132387*/ OPC_MoveChild, 15, ++/*132389*/ OPC_CheckInteger, 1, ++/*132391*/ OPC_CheckType, MVT::i32, ++/*132393*/ OPC_MoveParent, ++/*132394*/ OPC_MoveChild, 16, ++/*132396*/ OPC_CheckInteger, 1, ++/*132398*/ OPC_CheckType, MVT::i32, ++/*132400*/ OPC_MoveParent, ++/*132401*/ OPC_MoveChild, 17, ++/*132403*/ OPC_CheckInteger, 1, ++/*132405*/ OPC_CheckType, MVT::i32, ++/*132407*/ OPC_MoveParent, ++/*132408*/ OPC_MoveChild, 18, ++/*132410*/ OPC_CheckInteger, 1, ++/*132412*/ OPC_CheckType, MVT::i32, ++/*132414*/ OPC_MoveParent, ++/*132415*/ OPC_MoveChild, 19, ++/*132417*/ OPC_CheckInteger, 1, ++/*132419*/ OPC_CheckType, MVT::i32, ++/*132421*/ OPC_MoveParent, ++/*132422*/ OPC_MoveChild, 20, ++/*132424*/ OPC_CheckInteger, 1, ++/*132426*/ OPC_CheckType, MVT::i32, ++/*132428*/ OPC_MoveParent, ++/*132429*/ OPC_MoveChild, 21, ++/*132431*/ OPC_CheckInteger, 1, ++/*132433*/ OPC_CheckType, MVT::i32, ++/*132435*/ OPC_MoveParent, ++/*132436*/ OPC_MoveChild, 22, ++/*132438*/ OPC_CheckInteger, 1, ++/*132440*/ OPC_CheckType, MVT::i32, ++/*132442*/ OPC_MoveParent, ++/*132443*/ OPC_MoveChild, 23, ++/*132445*/ OPC_CheckInteger, 1, ++/*132447*/ OPC_CheckType, MVT::i32, ++/*132449*/ OPC_MoveParent, ++/*132450*/ OPC_MoveChild, 24, ++/*132452*/ OPC_CheckInteger, 1, ++/*132454*/ OPC_CheckType, MVT::i32, ++/*132456*/ OPC_MoveParent, ++/*132457*/ OPC_MoveChild, 25, ++/*132459*/ OPC_CheckInteger, 1, ++/*132461*/ OPC_CheckType, MVT::i32, ++/*132463*/ OPC_MoveParent, ++/*132464*/ OPC_MoveChild, 26, ++/*132466*/ OPC_CheckInteger, 1, ++/*132468*/ OPC_CheckType, MVT::i32, ++/*132470*/ OPC_MoveParent, ++/*132471*/ OPC_MoveChild, 27, ++/*132473*/ OPC_CheckInteger, 1, ++/*132475*/ OPC_CheckType, MVT::i32, ++/*132477*/ OPC_MoveParent, ++/*132478*/ OPC_MoveChild, 28, ++/*132480*/ OPC_CheckInteger, 1, ++/*132482*/ OPC_CheckType, MVT::i32, ++/*132484*/ OPC_MoveParent, ++/*132485*/ OPC_MoveChild, 29, ++/*132487*/ OPC_CheckInteger, 1, ++/*132489*/ OPC_CheckType, MVT::i32, ++/*132491*/ OPC_MoveParent, ++/*132492*/ OPC_MoveChild, 30, ++/*132494*/ OPC_CheckInteger, 1, ++/*132496*/ OPC_CheckType, MVT::i32, ++/*132498*/ OPC_MoveParent, ++/*132499*/ OPC_MoveChild, 31, ++/*132501*/ OPC_CheckInteger, 1, ++/*132503*/ OPC_CheckType, MVT::i32, ++/*132505*/ OPC_MoveParent, ++/*132506*/ OPC_CheckType, MVT::v32i8, ++/*132508*/ OPC_MoveParent, ++/*132509*/ OPC_CheckType, MVT::v32i8, ++/*132511*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*132513*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a)), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*132521*/ 0, /*End of Scope*/ ++/*132522*/ /*Scope*/ 42|128,10/*1322*/, /*->133846*/ ++/*132524*/ OPC_CheckChild0Same, 0, ++/*132526*/ OPC_MoveChild1, ++/*132527*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*132530*/ OPC_Scope, 15|128,5/*655*/, /*->133188*/ // 2 children in Scope ++/*132533*/ OPC_MoveChild0, ++/*132534*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*132537*/ OPC_CheckChild0Integer, 1, ++/*132539*/ OPC_CheckChild0Type, MVT::i32, ++/*132541*/ OPC_CheckChild1Integer, 1, ++/*132543*/ OPC_CheckChild1Type, MVT::i32, ++/*132545*/ OPC_CheckChild2Integer, 1, ++/*132547*/ OPC_CheckChild2Type, MVT::i32, ++/*132549*/ OPC_CheckChild3Integer, 1, ++/*132551*/ OPC_CheckChild3Type, MVT::i32, ++/*132553*/ OPC_CheckChild4Integer, 1, ++/*132555*/ OPC_CheckChild4Type, MVT::i32, ++/*132557*/ OPC_MoveChild5, ++/*132558*/ OPC_CheckInteger, 1, ++/*132560*/ OPC_CheckType, MVT::i32, ++/*132562*/ OPC_MoveParent, ++/*132563*/ OPC_MoveChild6, ++/*132564*/ OPC_CheckInteger, 1, ++/*132566*/ OPC_CheckType, MVT::i32, ++/*132568*/ OPC_MoveParent, ++/*132569*/ OPC_MoveChild7, ++/*132570*/ OPC_CheckInteger, 1, ++/*132572*/ OPC_CheckType, MVT::i32, ++/*132574*/ OPC_MoveParent, ++/*132575*/ OPC_MoveChild, 8, ++/*132577*/ OPC_CheckInteger, 1, ++/*132579*/ OPC_CheckType, MVT::i32, ++/*132581*/ OPC_MoveParent, ++/*132582*/ OPC_MoveChild, 9, ++/*132584*/ OPC_CheckInteger, 1, ++/*132586*/ OPC_CheckType, MVT::i32, ++/*132588*/ OPC_MoveParent, ++/*132589*/ OPC_MoveChild, 10, ++/*132591*/ OPC_CheckInteger, 1, ++/*132593*/ OPC_CheckType, MVT::i32, ++/*132595*/ OPC_MoveParent, ++/*132596*/ OPC_MoveChild, 11, ++/*132598*/ OPC_CheckInteger, 1, ++/*132600*/ OPC_CheckType, MVT::i32, ++/*132602*/ OPC_MoveParent, ++/*132603*/ OPC_MoveChild, 12, ++/*132605*/ OPC_CheckInteger, 1, ++/*132607*/ OPC_CheckType, MVT::i32, ++/*132609*/ OPC_MoveParent, ++/*132610*/ OPC_MoveChild, 13, ++/*132612*/ OPC_CheckInteger, 1, ++/*132614*/ OPC_CheckType, MVT::i32, ++/*132616*/ OPC_MoveParent, ++/*132617*/ OPC_MoveChild, 14, ++/*132619*/ OPC_CheckInteger, 1, ++/*132621*/ OPC_CheckType, MVT::i32, ++/*132623*/ OPC_MoveParent, ++/*132624*/ OPC_MoveChild, 15, ++/*132626*/ OPC_CheckInteger, 1, ++/*132628*/ OPC_CheckType, MVT::i32, ++/*132630*/ OPC_MoveParent, ++/*132631*/ OPC_MoveChild, 16, ++/*132633*/ OPC_CheckInteger, 1, ++/*132635*/ OPC_CheckType, MVT::i32, ++/*132637*/ OPC_MoveParent, ++/*132638*/ OPC_MoveChild, 17, ++/*132640*/ OPC_CheckInteger, 1, ++/*132642*/ OPC_CheckType, MVT::i32, ++/*132644*/ OPC_MoveParent, ++/*132645*/ OPC_MoveChild, 18, ++/*132647*/ OPC_CheckInteger, 1, ++/*132649*/ OPC_CheckType, MVT::i32, ++/*132651*/ OPC_MoveParent, ++/*132652*/ OPC_MoveChild, 19, ++/*132654*/ OPC_CheckInteger, 1, ++/*132656*/ OPC_CheckType, MVT::i32, ++/*132658*/ OPC_MoveParent, ++/*132659*/ OPC_MoveChild, 20, ++/*132661*/ OPC_CheckInteger, 1, ++/*132663*/ OPC_CheckType, MVT::i32, ++/*132665*/ OPC_MoveParent, ++/*132666*/ OPC_MoveChild, 21, ++/*132668*/ OPC_CheckInteger, 1, ++/*132670*/ OPC_CheckType, MVT::i32, ++/*132672*/ OPC_MoveParent, ++/*132673*/ OPC_MoveChild, 22, ++/*132675*/ OPC_CheckInteger, 1, ++/*132677*/ OPC_CheckType, MVT::i32, ++/*132679*/ OPC_MoveParent, ++/*132680*/ OPC_MoveChild, 23, ++/*132682*/ OPC_CheckInteger, 1, ++/*132684*/ OPC_CheckType, MVT::i32, ++/*132686*/ OPC_MoveParent, ++/*132687*/ OPC_MoveChild, 24, ++/*132689*/ OPC_CheckInteger, 1, ++/*132691*/ OPC_CheckType, MVT::i32, ++/*132693*/ OPC_MoveParent, ++/*132694*/ OPC_MoveChild, 25, ++/*132696*/ OPC_CheckInteger, 1, ++/*132698*/ OPC_CheckType, MVT::i32, ++/*132700*/ OPC_MoveParent, ++/*132701*/ OPC_MoveChild, 26, ++/*132703*/ OPC_CheckInteger, 1, ++/*132705*/ OPC_CheckType, MVT::i32, ++/*132707*/ OPC_MoveParent, ++/*132708*/ OPC_MoveChild, 27, ++/*132710*/ OPC_CheckInteger, 1, ++/*132712*/ OPC_CheckType, MVT::i32, ++/*132714*/ OPC_MoveParent, ++/*132715*/ OPC_MoveChild, 28, ++/*132717*/ OPC_CheckInteger, 1, ++/*132719*/ OPC_CheckType, MVT::i32, ++/*132721*/ OPC_MoveParent, ++/*132722*/ OPC_MoveChild, 29, ++/*132724*/ OPC_CheckInteger, 1, ++/*132726*/ OPC_CheckType, MVT::i32, ++/*132728*/ OPC_MoveParent, ++/*132729*/ OPC_MoveChild, 30, ++/*132731*/ OPC_CheckInteger, 1, ++/*132733*/ OPC_CheckType, MVT::i32, ++/*132735*/ OPC_MoveParent, ++/*132736*/ OPC_MoveChild, 31, ++/*132738*/ OPC_CheckInteger, 1, ++/*132740*/ OPC_CheckType, MVT::i32, ++/*132742*/ OPC_MoveParent, ++/*132743*/ OPC_MoveParent, ++/*132744*/ OPC_CheckChild1Same, 1, ++/*132746*/ OPC_MoveParent, ++/*132747*/ OPC_MoveParent, ++/*132748*/ OPC_MoveChild1, ++/*132749*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*132752*/ OPC_CheckChild0Integer, 7, ++/*132754*/ OPC_CheckChild0Type, MVT::i32, ++/*132756*/ OPC_CheckChild1Integer, 7, ++/*132758*/ OPC_CheckChild1Type, MVT::i32, ++/*132760*/ OPC_CheckChild2Integer, 7, ++/*132762*/ OPC_CheckChild2Type, MVT::i32, ++/*132764*/ OPC_CheckChild3Integer, 7, ++/*132766*/ OPC_CheckChild3Type, MVT::i32, ++/*132768*/ OPC_CheckChild4Integer, 7, ++/*132770*/ OPC_CheckChild4Type, MVT::i32, ++/*132772*/ OPC_MoveChild5, ++/*132773*/ OPC_CheckInteger, 7, ++/*132775*/ OPC_CheckType, MVT::i32, ++/*132777*/ OPC_MoveParent, ++/*132778*/ OPC_MoveChild6, ++/*132779*/ OPC_CheckInteger, 7, ++/*132781*/ OPC_CheckType, MVT::i32, ++/*132783*/ OPC_MoveParent, ++/*132784*/ OPC_MoveChild7, ++/*132785*/ OPC_CheckInteger, 7, ++/*132787*/ OPC_CheckType, MVT::i32, ++/*132789*/ OPC_MoveParent, ++/*132790*/ OPC_MoveChild, 8, ++/*132792*/ OPC_CheckInteger, 7, ++/*132794*/ OPC_CheckType, MVT::i32, ++/*132796*/ OPC_MoveParent, ++/*132797*/ OPC_MoveChild, 9, ++/*132799*/ OPC_CheckInteger, 7, ++/*132801*/ OPC_CheckType, MVT::i32, ++/*132803*/ OPC_MoveParent, ++/*132804*/ OPC_MoveChild, 10, ++/*132806*/ OPC_CheckInteger, 7, ++/*132808*/ OPC_CheckType, MVT::i32, ++/*132810*/ OPC_MoveParent, ++/*132811*/ OPC_MoveChild, 11, ++/*132813*/ OPC_CheckInteger, 7, ++/*132815*/ OPC_CheckType, MVT::i32, ++/*132817*/ OPC_MoveParent, ++/*132818*/ OPC_MoveChild, 12, ++/*132820*/ OPC_CheckInteger, 7, ++/*132822*/ OPC_CheckType, MVT::i32, ++/*132824*/ OPC_MoveParent, ++/*132825*/ OPC_MoveChild, 13, ++/*132827*/ OPC_CheckInteger, 7, ++/*132829*/ OPC_CheckType, MVT::i32, ++/*132831*/ OPC_MoveParent, ++/*132832*/ OPC_MoveChild, 14, ++/*132834*/ OPC_CheckInteger, 7, ++/*132836*/ OPC_CheckType, MVT::i32, ++/*132838*/ OPC_MoveParent, ++/*132839*/ OPC_MoveChild, 15, ++/*132841*/ OPC_CheckInteger, 7, ++/*132843*/ OPC_CheckType, MVT::i32, ++/*132845*/ OPC_MoveParent, ++/*132846*/ OPC_MoveChild, 16, ++/*132848*/ OPC_CheckInteger, 7, ++/*132850*/ OPC_CheckType, MVT::i32, ++/*132852*/ OPC_MoveParent, ++/*132853*/ OPC_MoveChild, 17, ++/*132855*/ OPC_CheckInteger, 7, ++/*132857*/ OPC_CheckType, MVT::i32, ++/*132859*/ OPC_MoveParent, ++/*132860*/ OPC_MoveChild, 18, ++/*132862*/ OPC_CheckInteger, 7, ++/*132864*/ OPC_CheckType, MVT::i32, ++/*132866*/ OPC_MoveParent, ++/*132867*/ OPC_MoveChild, 19, ++/*132869*/ OPC_CheckInteger, 7, ++/*132871*/ OPC_CheckType, MVT::i32, ++/*132873*/ OPC_MoveParent, ++/*132874*/ OPC_MoveChild, 20, ++/*132876*/ OPC_CheckInteger, 7, ++/*132878*/ OPC_CheckType, MVT::i32, ++/*132880*/ OPC_MoveParent, ++/*132881*/ OPC_MoveChild, 21, ++/*132883*/ OPC_CheckInteger, 7, ++/*132885*/ OPC_CheckType, MVT::i32, ++/*132887*/ OPC_MoveParent, ++/*132888*/ OPC_MoveChild, 22, ++/*132890*/ OPC_CheckInteger, 7, ++/*132892*/ OPC_CheckType, MVT::i32, ++/*132894*/ OPC_MoveParent, ++/*132895*/ OPC_MoveChild, 23, ++/*132897*/ OPC_CheckInteger, 7, ++/*132899*/ OPC_CheckType, MVT::i32, ++/*132901*/ OPC_MoveParent, ++/*132902*/ OPC_MoveChild, 24, ++/*132904*/ OPC_CheckInteger, 7, ++/*132906*/ OPC_CheckType, MVT::i32, ++/*132908*/ OPC_MoveParent, ++/*132909*/ OPC_MoveChild, 25, ++/*132911*/ OPC_CheckInteger, 7, ++/*132913*/ OPC_CheckType, MVT::i32, ++/*132915*/ OPC_MoveParent, ++/*132916*/ OPC_MoveChild, 26, ++/*132918*/ OPC_CheckInteger, 7, ++/*132920*/ OPC_CheckType, MVT::i32, ++/*132922*/ OPC_MoveParent, ++/*132923*/ OPC_MoveChild, 27, ++/*132925*/ OPC_CheckInteger, 7, ++/*132927*/ OPC_CheckType, MVT::i32, ++/*132929*/ OPC_MoveParent, ++/*132930*/ OPC_MoveChild, 28, ++/*132932*/ OPC_CheckInteger, 7, ++/*132934*/ OPC_CheckType, MVT::i32, ++/*132936*/ OPC_MoveParent, ++/*132937*/ OPC_MoveChild, 29, ++/*132939*/ OPC_CheckInteger, 7, ++/*132941*/ OPC_CheckType, MVT::i32, ++/*132943*/ OPC_MoveParent, ++/*132944*/ OPC_MoveChild, 30, ++/*132946*/ OPC_CheckInteger, 7, ++/*132948*/ OPC_CheckType, MVT::i32, ++/*132950*/ OPC_MoveParent, ++/*132951*/ OPC_MoveChild, 31, ++/*132953*/ OPC_CheckInteger, 7, ++/*132955*/ OPC_CheckType, MVT::i32, ++/*132957*/ OPC_MoveParent, ++/*132958*/ OPC_CheckType, MVT::v32i8, ++/*132960*/ OPC_MoveParent, ++/*132961*/ OPC_MoveParent, ++/*132962*/ OPC_MoveParent, ++/*132963*/ OPC_MoveChild1, ++/*132964*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*132967*/ OPC_CheckChild0Integer, 1, ++/*132969*/ OPC_CheckChild0Type, MVT::i32, ++/*132971*/ OPC_CheckChild1Integer, 1, ++/*132973*/ OPC_CheckChild1Type, MVT::i32, ++/*132975*/ OPC_CheckChild2Integer, 1, ++/*132977*/ OPC_CheckChild2Type, MVT::i32, ++/*132979*/ OPC_CheckChild3Integer, 1, ++/*132981*/ OPC_CheckChild3Type, MVT::i32, ++/*132983*/ OPC_CheckChild4Integer, 1, ++/*132985*/ OPC_CheckChild4Type, MVT::i32, ++/*132987*/ OPC_MoveChild5, ++/*132988*/ OPC_CheckInteger, 1, ++/*132990*/ OPC_CheckType, MVT::i32, ++/*132992*/ OPC_MoveParent, ++/*132993*/ OPC_MoveChild6, ++/*132994*/ OPC_CheckInteger, 1, ++/*132996*/ OPC_CheckType, MVT::i32, ++/*132998*/ OPC_MoveParent, ++/*132999*/ OPC_MoveChild7, ++/*133000*/ OPC_CheckInteger, 1, ++/*133002*/ OPC_CheckType, MVT::i32, ++/*133004*/ OPC_MoveParent, ++/*133005*/ OPC_MoveChild, 8, ++/*133007*/ OPC_CheckInteger, 1, ++/*133009*/ OPC_CheckType, MVT::i32, ++/*133011*/ OPC_MoveParent, ++/*133012*/ OPC_MoveChild, 9, ++/*133014*/ OPC_CheckInteger, 1, ++/*133016*/ OPC_CheckType, MVT::i32, ++/*133018*/ OPC_MoveParent, ++/*133019*/ OPC_MoveChild, 10, ++/*133021*/ OPC_CheckInteger, 1, ++/*133023*/ OPC_CheckType, MVT::i32, ++/*133025*/ OPC_MoveParent, ++/*133026*/ OPC_MoveChild, 11, ++/*133028*/ OPC_CheckInteger, 1, ++/*133030*/ OPC_CheckType, MVT::i32, ++/*133032*/ OPC_MoveParent, ++/*133033*/ OPC_MoveChild, 12, ++/*133035*/ OPC_CheckInteger, 1, ++/*133037*/ OPC_CheckType, MVT::i32, ++/*133039*/ OPC_MoveParent, ++/*133040*/ OPC_MoveChild, 13, ++/*133042*/ OPC_CheckInteger, 1, ++/*133044*/ OPC_CheckType, MVT::i32, ++/*133046*/ OPC_MoveParent, ++/*133047*/ OPC_MoveChild, 14, ++/*133049*/ OPC_CheckInteger, 1, ++/*133051*/ OPC_CheckType, MVT::i32, ++/*133053*/ OPC_MoveParent, ++/*133054*/ OPC_MoveChild, 15, ++/*133056*/ OPC_CheckInteger, 1, ++/*133058*/ OPC_CheckType, MVT::i32, ++/*133060*/ OPC_MoveParent, ++/*133061*/ OPC_MoveChild, 16, ++/*133063*/ OPC_CheckInteger, 1, ++/*133065*/ OPC_CheckType, MVT::i32, ++/*133067*/ OPC_MoveParent, ++/*133068*/ OPC_MoveChild, 17, ++/*133070*/ OPC_CheckInteger, 1, ++/*133072*/ OPC_CheckType, MVT::i32, ++/*133074*/ OPC_MoveParent, ++/*133075*/ OPC_MoveChild, 18, ++/*133077*/ OPC_CheckInteger, 1, ++/*133079*/ OPC_CheckType, MVT::i32, ++/*133081*/ OPC_MoveParent, ++/*133082*/ OPC_MoveChild, 19, ++/*133084*/ OPC_CheckInteger, 1, ++/*133086*/ OPC_CheckType, MVT::i32, ++/*133088*/ OPC_MoveParent, ++/*133089*/ OPC_MoveChild, 20, ++/*133091*/ OPC_CheckInteger, 1, ++/*133093*/ OPC_CheckType, MVT::i32, ++/*133095*/ OPC_MoveParent, ++/*133096*/ OPC_MoveChild, 21, ++/*133098*/ OPC_CheckInteger, 1, ++/*133100*/ OPC_CheckType, MVT::i32, ++/*133102*/ OPC_MoveParent, ++/*133103*/ OPC_MoveChild, 22, ++/*133105*/ OPC_CheckInteger, 1, ++/*133107*/ OPC_CheckType, MVT::i32, ++/*133109*/ OPC_MoveParent, ++/*133110*/ OPC_MoveChild, 23, ++/*133112*/ OPC_CheckInteger, 1, ++/*133114*/ OPC_CheckType, MVT::i32, ++/*133116*/ OPC_MoveParent, ++/*133117*/ OPC_MoveChild, 24, ++/*133119*/ OPC_CheckInteger, 1, ++/*133121*/ OPC_CheckType, MVT::i32, ++/*133123*/ OPC_MoveParent, ++/*133124*/ OPC_MoveChild, 25, ++/*133126*/ OPC_CheckInteger, 1, ++/*133128*/ OPC_CheckType, MVT::i32, ++/*133130*/ OPC_MoveParent, ++/*133131*/ OPC_MoveChild, 26, ++/*133133*/ OPC_CheckInteger, 1, ++/*133135*/ OPC_CheckType, MVT::i32, ++/*133137*/ OPC_MoveParent, ++/*133138*/ OPC_MoveChild, 27, ++/*133140*/ OPC_CheckInteger, 1, ++/*133142*/ OPC_CheckType, MVT::i32, ++/*133144*/ OPC_MoveParent, ++/*133145*/ OPC_MoveChild, 28, ++/*133147*/ OPC_CheckInteger, 1, ++/*133149*/ OPC_CheckType, MVT::i32, ++/*133151*/ OPC_MoveParent, ++/*133152*/ OPC_MoveChild, 29, ++/*133154*/ OPC_CheckInteger, 1, ++/*133156*/ OPC_CheckType, MVT::i32, ++/*133158*/ OPC_MoveParent, ++/*133159*/ OPC_MoveChild, 30, ++/*133161*/ OPC_CheckInteger, 1, ++/*133163*/ OPC_CheckType, MVT::i32, ++/*133165*/ OPC_MoveParent, ++/*133166*/ OPC_MoveChild, 31, ++/*133168*/ OPC_CheckInteger, 1, ++/*133170*/ OPC_CheckType, MVT::i32, ++/*133172*/ OPC_MoveParent, ++/*133173*/ OPC_CheckType, MVT::v32i8, ++/*133175*/ OPC_MoveParent, ++/*133176*/ OPC_CheckType, MVT::v32i8, ++/*133178*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*133180*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a)), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*133188*/ /*Scope*/ 15|128,5/*655*/, /*->133845*/ ++/*133190*/ OPC_CheckChild0Same, 1, ++/*133192*/ OPC_MoveChild1, ++/*133193*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*133196*/ OPC_CheckChild0Integer, 1, ++/*133198*/ OPC_CheckChild0Type, MVT::i32, ++/*133200*/ OPC_CheckChild1Integer, 1, ++/*133202*/ OPC_CheckChild1Type, MVT::i32, ++/*133204*/ OPC_CheckChild2Integer, 1, ++/*133206*/ OPC_CheckChild2Type, MVT::i32, ++/*133208*/ OPC_CheckChild3Integer, 1, ++/*133210*/ OPC_CheckChild3Type, MVT::i32, ++/*133212*/ OPC_CheckChild4Integer, 1, ++/*133214*/ OPC_CheckChild4Type, MVT::i32, ++/*133216*/ OPC_MoveChild5, ++/*133217*/ OPC_CheckInteger, 1, ++/*133219*/ OPC_CheckType, MVT::i32, ++/*133221*/ OPC_MoveParent, ++/*133222*/ OPC_MoveChild6, ++/*133223*/ OPC_CheckInteger, 1, ++/*133225*/ OPC_CheckType, MVT::i32, ++/*133227*/ OPC_MoveParent, ++/*133228*/ OPC_MoveChild7, ++/*133229*/ OPC_CheckInteger, 1, ++/*133231*/ OPC_CheckType, MVT::i32, ++/*133233*/ OPC_MoveParent, ++/*133234*/ OPC_MoveChild, 8, ++/*133236*/ OPC_CheckInteger, 1, ++/*133238*/ OPC_CheckType, MVT::i32, ++/*133240*/ OPC_MoveParent, ++/*133241*/ OPC_MoveChild, 9, ++/*133243*/ OPC_CheckInteger, 1, ++/*133245*/ OPC_CheckType, MVT::i32, ++/*133247*/ OPC_MoveParent, ++/*133248*/ OPC_MoveChild, 10, ++/*133250*/ OPC_CheckInteger, 1, ++/*133252*/ OPC_CheckType, MVT::i32, ++/*133254*/ OPC_MoveParent, ++/*133255*/ OPC_MoveChild, 11, ++/*133257*/ OPC_CheckInteger, 1, ++/*133259*/ OPC_CheckType, MVT::i32, ++/*133261*/ OPC_MoveParent, ++/*133262*/ OPC_MoveChild, 12, ++/*133264*/ OPC_CheckInteger, 1, ++/*133266*/ OPC_CheckType, MVT::i32, ++/*133268*/ OPC_MoveParent, ++/*133269*/ OPC_MoveChild, 13, ++/*133271*/ OPC_CheckInteger, 1, ++/*133273*/ OPC_CheckType, MVT::i32, ++/*133275*/ OPC_MoveParent, ++/*133276*/ OPC_MoveChild, 14, ++/*133278*/ OPC_CheckInteger, 1, ++/*133280*/ OPC_CheckType, MVT::i32, ++/*133282*/ OPC_MoveParent, ++/*133283*/ OPC_MoveChild, 15, ++/*133285*/ OPC_CheckInteger, 1, ++/*133287*/ OPC_CheckType, MVT::i32, ++/*133289*/ OPC_MoveParent, ++/*133290*/ OPC_MoveChild, 16, ++/*133292*/ OPC_CheckInteger, 1, ++/*133294*/ OPC_CheckType, MVT::i32, ++/*133296*/ OPC_MoveParent, ++/*133297*/ OPC_MoveChild, 17, ++/*133299*/ OPC_CheckInteger, 1, ++/*133301*/ OPC_CheckType, MVT::i32, ++/*133303*/ OPC_MoveParent, ++/*133304*/ OPC_MoveChild, 18, ++/*133306*/ OPC_CheckInteger, 1, ++/*133308*/ OPC_CheckType, MVT::i32, ++/*133310*/ OPC_MoveParent, ++/*133311*/ OPC_MoveChild, 19, ++/*133313*/ OPC_CheckInteger, 1, ++/*133315*/ OPC_CheckType, MVT::i32, ++/*133317*/ OPC_MoveParent, ++/*133318*/ OPC_MoveChild, 20, ++/*133320*/ OPC_CheckInteger, 1, ++/*133322*/ OPC_CheckType, MVT::i32, ++/*133324*/ OPC_MoveParent, ++/*133325*/ OPC_MoveChild, 21, ++/*133327*/ OPC_CheckInteger, 1, ++/*133329*/ OPC_CheckType, MVT::i32, ++/*133331*/ OPC_MoveParent, ++/*133332*/ OPC_MoveChild, 22, ++/*133334*/ OPC_CheckInteger, 1, ++/*133336*/ OPC_CheckType, MVT::i32, ++/*133338*/ OPC_MoveParent, ++/*133339*/ OPC_MoveChild, 23, ++/*133341*/ OPC_CheckInteger, 1, ++/*133343*/ OPC_CheckType, MVT::i32, ++/*133345*/ OPC_MoveParent, ++/*133346*/ OPC_MoveChild, 24, ++/*133348*/ OPC_CheckInteger, 1, ++/*133350*/ OPC_CheckType, MVT::i32, ++/*133352*/ OPC_MoveParent, ++/*133353*/ OPC_MoveChild, 25, ++/*133355*/ OPC_CheckInteger, 1, ++/*133357*/ OPC_CheckType, MVT::i32, ++/*133359*/ OPC_MoveParent, ++/*133360*/ OPC_MoveChild, 26, ++/*133362*/ OPC_CheckInteger, 1, ++/*133364*/ OPC_CheckType, MVT::i32, ++/*133366*/ OPC_MoveParent, ++/*133367*/ OPC_MoveChild, 27, ++/*133369*/ OPC_CheckInteger, 1, ++/*133371*/ OPC_CheckType, MVT::i32, ++/*133373*/ OPC_MoveParent, ++/*133374*/ OPC_MoveChild, 28, ++/*133376*/ OPC_CheckInteger, 1, ++/*133378*/ OPC_CheckType, MVT::i32, ++/*133380*/ OPC_MoveParent, ++/*133381*/ OPC_MoveChild, 29, ++/*133383*/ OPC_CheckInteger, 1, ++/*133385*/ OPC_CheckType, MVT::i32, ++/*133387*/ OPC_MoveParent, ++/*133388*/ OPC_MoveChild, 30, ++/*133390*/ OPC_CheckInteger, 1, ++/*133392*/ OPC_CheckType, MVT::i32, ++/*133394*/ OPC_MoveParent, ++/*133395*/ OPC_MoveChild, 31, ++/*133397*/ OPC_CheckInteger, 1, ++/*133399*/ OPC_CheckType, MVT::i32, ++/*133401*/ OPC_MoveParent, ++/*133402*/ OPC_MoveParent, ++/*133403*/ OPC_MoveParent, ++/*133404*/ OPC_MoveParent, ++/*133405*/ OPC_MoveChild1, ++/*133406*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*133409*/ OPC_CheckChild0Integer, 7, ++/*133411*/ OPC_CheckChild0Type, MVT::i32, ++/*133413*/ OPC_CheckChild1Integer, 7, ++/*133415*/ OPC_CheckChild1Type, MVT::i32, ++/*133417*/ OPC_CheckChild2Integer, 7, ++/*133419*/ OPC_CheckChild2Type, MVT::i32, ++/*133421*/ OPC_CheckChild3Integer, 7, ++/*133423*/ OPC_CheckChild3Type, MVT::i32, ++/*133425*/ OPC_CheckChild4Integer, 7, ++/*133427*/ OPC_CheckChild4Type, MVT::i32, ++/*133429*/ OPC_MoveChild5, ++/*133430*/ OPC_CheckInteger, 7, ++/*133432*/ OPC_CheckType, MVT::i32, ++/*133434*/ OPC_MoveParent, ++/*133435*/ OPC_MoveChild6, ++/*133436*/ OPC_CheckInteger, 7, ++/*133438*/ OPC_CheckType, MVT::i32, ++/*133440*/ OPC_MoveParent, ++/*133441*/ OPC_MoveChild7, ++/*133442*/ OPC_CheckInteger, 7, ++/*133444*/ OPC_CheckType, MVT::i32, ++/*133446*/ OPC_MoveParent, ++/*133447*/ OPC_MoveChild, 8, ++/*133449*/ OPC_CheckInteger, 7, ++/*133451*/ OPC_CheckType, MVT::i32, ++/*133453*/ OPC_MoveParent, ++/*133454*/ OPC_MoveChild, 9, ++/*133456*/ OPC_CheckInteger, 7, ++/*133458*/ OPC_CheckType, MVT::i32, ++/*133460*/ OPC_MoveParent, ++/*133461*/ OPC_MoveChild, 10, ++/*133463*/ OPC_CheckInteger, 7, ++/*133465*/ OPC_CheckType, MVT::i32, ++/*133467*/ OPC_MoveParent, ++/*133468*/ OPC_MoveChild, 11, ++/*133470*/ OPC_CheckInteger, 7, ++/*133472*/ OPC_CheckType, MVT::i32, ++/*133474*/ OPC_MoveParent, ++/*133475*/ OPC_MoveChild, 12, ++/*133477*/ OPC_CheckInteger, 7, ++/*133479*/ OPC_CheckType, MVT::i32, ++/*133481*/ OPC_MoveParent, ++/*133482*/ OPC_MoveChild, 13, ++/*133484*/ OPC_CheckInteger, 7, ++/*133486*/ OPC_CheckType, MVT::i32, ++/*133488*/ OPC_MoveParent, ++/*133489*/ OPC_MoveChild, 14, ++/*133491*/ OPC_CheckInteger, 7, ++/*133493*/ OPC_CheckType, MVT::i32, ++/*133495*/ OPC_MoveParent, ++/*133496*/ OPC_MoveChild, 15, ++/*133498*/ OPC_CheckInteger, 7, ++/*133500*/ OPC_CheckType, MVT::i32, ++/*133502*/ OPC_MoveParent, ++/*133503*/ OPC_MoveChild, 16, ++/*133505*/ OPC_CheckInteger, 7, ++/*133507*/ OPC_CheckType, MVT::i32, ++/*133509*/ OPC_MoveParent, ++/*133510*/ OPC_MoveChild, 17, ++/*133512*/ OPC_CheckInteger, 7, ++/*133514*/ OPC_CheckType, MVT::i32, ++/*133516*/ OPC_MoveParent, ++/*133517*/ OPC_MoveChild, 18, ++/*133519*/ OPC_CheckInteger, 7, ++/*133521*/ OPC_CheckType, MVT::i32, ++/*133523*/ OPC_MoveParent, ++/*133524*/ OPC_MoveChild, 19, ++/*133526*/ OPC_CheckInteger, 7, ++/*133528*/ OPC_CheckType, MVT::i32, ++/*133530*/ OPC_MoveParent, ++/*133531*/ OPC_MoveChild, 20, ++/*133533*/ OPC_CheckInteger, 7, ++/*133535*/ OPC_CheckType, MVT::i32, ++/*133537*/ OPC_MoveParent, ++/*133538*/ OPC_MoveChild, 21, ++/*133540*/ OPC_CheckInteger, 7, ++/*133542*/ OPC_CheckType, MVT::i32, ++/*133544*/ OPC_MoveParent, ++/*133545*/ OPC_MoveChild, 22, ++/*133547*/ OPC_CheckInteger, 7, ++/*133549*/ OPC_CheckType, MVT::i32, ++/*133551*/ OPC_MoveParent, ++/*133552*/ OPC_MoveChild, 23, ++/*133554*/ OPC_CheckInteger, 7, ++/*133556*/ OPC_CheckType, MVT::i32, ++/*133558*/ OPC_MoveParent, ++/*133559*/ OPC_MoveChild, 24, ++/*133561*/ OPC_CheckInteger, 7, ++/*133563*/ OPC_CheckType, MVT::i32, ++/*133565*/ OPC_MoveParent, ++/*133566*/ OPC_MoveChild, 25, ++/*133568*/ OPC_CheckInteger, 7, ++/*133570*/ OPC_CheckType, MVT::i32, ++/*133572*/ OPC_MoveParent, ++/*133573*/ OPC_MoveChild, 26, ++/*133575*/ OPC_CheckInteger, 7, ++/*133577*/ OPC_CheckType, MVT::i32, ++/*133579*/ OPC_MoveParent, ++/*133580*/ OPC_MoveChild, 27, ++/*133582*/ OPC_CheckInteger, 7, ++/*133584*/ OPC_CheckType, MVT::i32, ++/*133586*/ OPC_MoveParent, ++/*133587*/ OPC_MoveChild, 28, ++/*133589*/ OPC_CheckInteger, 7, ++/*133591*/ OPC_CheckType, MVT::i32, ++/*133593*/ OPC_MoveParent, ++/*133594*/ OPC_MoveChild, 29, ++/*133596*/ OPC_CheckInteger, 7, ++/*133598*/ OPC_CheckType, MVT::i32, ++/*133600*/ OPC_MoveParent, ++/*133601*/ OPC_MoveChild, 30, ++/*133603*/ OPC_CheckInteger, 7, ++/*133605*/ OPC_CheckType, MVT::i32, ++/*133607*/ OPC_MoveParent, ++/*133608*/ OPC_MoveChild, 31, ++/*133610*/ OPC_CheckInteger, 7, ++/*133612*/ OPC_CheckType, MVT::i32, ++/*133614*/ OPC_MoveParent, ++/*133615*/ OPC_CheckType, MVT::v32i8, ++/*133617*/ OPC_MoveParent, ++/*133618*/ OPC_MoveParent, ++/*133619*/ OPC_MoveParent, ++/*133620*/ OPC_MoveChild1, ++/*133621*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*133624*/ OPC_CheckChild0Integer, 1, ++/*133626*/ OPC_CheckChild0Type, MVT::i32, ++/*133628*/ OPC_CheckChild1Integer, 1, ++/*133630*/ OPC_CheckChild1Type, MVT::i32, ++/*133632*/ OPC_CheckChild2Integer, 1, ++/*133634*/ OPC_CheckChild2Type, MVT::i32, ++/*133636*/ OPC_CheckChild3Integer, 1, ++/*133638*/ OPC_CheckChild3Type, MVT::i32, ++/*133640*/ OPC_CheckChild4Integer, 1, ++/*133642*/ OPC_CheckChild4Type, MVT::i32, ++/*133644*/ OPC_MoveChild5, ++/*133645*/ OPC_CheckInteger, 1, ++/*133647*/ OPC_CheckType, MVT::i32, ++/*133649*/ OPC_MoveParent, ++/*133650*/ OPC_MoveChild6, ++/*133651*/ OPC_CheckInteger, 1, ++/*133653*/ OPC_CheckType, MVT::i32, ++/*133655*/ OPC_MoveParent, ++/*133656*/ OPC_MoveChild7, ++/*133657*/ OPC_CheckInteger, 1, ++/*133659*/ OPC_CheckType, MVT::i32, ++/*133661*/ OPC_MoveParent, ++/*133662*/ OPC_MoveChild, 8, ++/*133664*/ OPC_CheckInteger, 1, ++/*133666*/ OPC_CheckType, MVT::i32, ++/*133668*/ OPC_MoveParent, ++/*133669*/ OPC_MoveChild, 9, ++/*133671*/ OPC_CheckInteger, 1, ++/*133673*/ OPC_CheckType, MVT::i32, ++/*133675*/ OPC_MoveParent, ++/*133676*/ OPC_MoveChild, 10, ++/*133678*/ OPC_CheckInteger, 1, ++/*133680*/ OPC_CheckType, MVT::i32, ++/*133682*/ OPC_MoveParent, ++/*133683*/ OPC_MoveChild, 11, ++/*133685*/ OPC_CheckInteger, 1, ++/*133687*/ OPC_CheckType, MVT::i32, ++/*133689*/ OPC_MoveParent, ++/*133690*/ OPC_MoveChild, 12, ++/*133692*/ OPC_CheckInteger, 1, ++/*133694*/ OPC_CheckType, MVT::i32, ++/*133696*/ OPC_MoveParent, ++/*133697*/ OPC_MoveChild, 13, ++/*133699*/ OPC_CheckInteger, 1, ++/*133701*/ OPC_CheckType, MVT::i32, ++/*133703*/ OPC_MoveParent, ++/*133704*/ OPC_MoveChild, 14, ++/*133706*/ OPC_CheckInteger, 1, ++/*133708*/ OPC_CheckType, MVT::i32, ++/*133710*/ OPC_MoveParent, ++/*133711*/ OPC_MoveChild, 15, ++/*133713*/ OPC_CheckInteger, 1, ++/*133715*/ OPC_CheckType, MVT::i32, ++/*133717*/ OPC_MoveParent, ++/*133718*/ OPC_MoveChild, 16, ++/*133720*/ OPC_CheckInteger, 1, ++/*133722*/ OPC_CheckType, MVT::i32, ++/*133724*/ OPC_MoveParent, ++/*133725*/ OPC_MoveChild, 17, ++/*133727*/ OPC_CheckInteger, 1, ++/*133729*/ OPC_CheckType, MVT::i32, ++/*133731*/ OPC_MoveParent, ++/*133732*/ OPC_MoveChild, 18, ++/*133734*/ OPC_CheckInteger, 1, ++/*133736*/ OPC_CheckType, MVT::i32, ++/*133738*/ OPC_MoveParent, ++/*133739*/ OPC_MoveChild, 19, ++/*133741*/ OPC_CheckInteger, 1, ++/*133743*/ OPC_CheckType, MVT::i32, ++/*133745*/ OPC_MoveParent, ++/*133746*/ OPC_MoveChild, 20, ++/*133748*/ OPC_CheckInteger, 1, ++/*133750*/ OPC_CheckType, MVT::i32, ++/*133752*/ OPC_MoveParent, ++/*133753*/ OPC_MoveChild, 21, ++/*133755*/ OPC_CheckInteger, 1, ++/*133757*/ OPC_CheckType, MVT::i32, ++/*133759*/ OPC_MoveParent, ++/*133760*/ OPC_MoveChild, 22, ++/*133762*/ OPC_CheckInteger, 1, ++/*133764*/ OPC_CheckType, MVT::i32, ++/*133766*/ OPC_MoveParent, ++/*133767*/ OPC_MoveChild, 23, ++/*133769*/ OPC_CheckInteger, 1, ++/*133771*/ OPC_CheckType, MVT::i32, ++/*133773*/ OPC_MoveParent, ++/*133774*/ OPC_MoveChild, 24, ++/*133776*/ OPC_CheckInteger, 1, ++/*133778*/ OPC_CheckType, MVT::i32, ++/*133780*/ OPC_MoveParent, ++/*133781*/ OPC_MoveChild, 25, ++/*133783*/ OPC_CheckInteger, 1, ++/*133785*/ OPC_CheckType, MVT::i32, ++/*133787*/ OPC_MoveParent, ++/*133788*/ OPC_MoveChild, 26, ++/*133790*/ OPC_CheckInteger, 1, ++/*133792*/ OPC_CheckType, MVT::i32, ++/*133794*/ OPC_MoveParent, ++/*133795*/ OPC_MoveChild, 27, ++/*133797*/ OPC_CheckInteger, 1, ++/*133799*/ OPC_CheckType, MVT::i32, ++/*133801*/ OPC_MoveParent, ++/*133802*/ OPC_MoveChild, 28, ++/*133804*/ OPC_CheckInteger, 1, ++/*133806*/ OPC_CheckType, MVT::i32, ++/*133808*/ OPC_MoveParent, ++/*133809*/ OPC_MoveChild, 29, ++/*133811*/ OPC_CheckInteger, 1, ++/*133813*/ OPC_CheckType, MVT::i32, ++/*133815*/ OPC_MoveParent, ++/*133816*/ OPC_MoveChild, 30, ++/*133818*/ OPC_CheckInteger, 1, ++/*133820*/ OPC_CheckType, MVT::i32, ++/*133822*/ OPC_MoveParent, ++/*133823*/ OPC_MoveChild, 31, ++/*133825*/ OPC_CheckInteger, 1, ++/*133827*/ OPC_CheckType, MVT::i32, ++/*133829*/ OPC_MoveParent, ++/*133830*/ OPC_CheckType, MVT::v32i8, ++/*133832*/ OPC_MoveParent, ++/*133833*/ OPC_CheckType, MVT::v32i8, ++/*133835*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*133837*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a)), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*133845*/ 0, /*End of Scope*/ ++/*133846*/ /*Scope*/ 42|128,10/*1322*/, /*->135170*/ ++/*133848*/ OPC_CheckChild0Same, 1, ++/*133850*/ OPC_MoveChild1, ++/*133851*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*133854*/ OPC_Scope, 15|128,5/*655*/, /*->134512*/ // 2 children in Scope ++/*133857*/ OPC_MoveChild0, ++/*133858*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*133861*/ OPC_CheckChild0Integer, 1, ++/*133863*/ OPC_CheckChild0Type, MVT::i32, ++/*133865*/ OPC_CheckChild1Integer, 1, ++/*133867*/ OPC_CheckChild1Type, MVT::i32, ++/*133869*/ OPC_CheckChild2Integer, 1, ++/*133871*/ OPC_CheckChild2Type, MVT::i32, ++/*133873*/ OPC_CheckChild3Integer, 1, ++/*133875*/ OPC_CheckChild3Type, MVT::i32, ++/*133877*/ OPC_CheckChild4Integer, 1, ++/*133879*/ OPC_CheckChild4Type, MVT::i32, ++/*133881*/ OPC_MoveChild5, ++/*133882*/ OPC_CheckInteger, 1, ++/*133884*/ OPC_CheckType, MVT::i32, ++/*133886*/ OPC_MoveParent, ++/*133887*/ OPC_MoveChild6, ++/*133888*/ OPC_CheckInteger, 1, ++/*133890*/ OPC_CheckType, MVT::i32, ++/*133892*/ OPC_MoveParent, ++/*133893*/ OPC_MoveChild7, ++/*133894*/ OPC_CheckInteger, 1, ++/*133896*/ OPC_CheckType, MVT::i32, ++/*133898*/ OPC_MoveParent, ++/*133899*/ OPC_MoveChild, 8, ++/*133901*/ OPC_CheckInteger, 1, ++/*133903*/ OPC_CheckType, MVT::i32, ++/*133905*/ OPC_MoveParent, ++/*133906*/ OPC_MoveChild, 9, ++/*133908*/ OPC_CheckInteger, 1, ++/*133910*/ OPC_CheckType, MVT::i32, ++/*133912*/ OPC_MoveParent, ++/*133913*/ OPC_MoveChild, 10, ++/*133915*/ OPC_CheckInteger, 1, ++/*133917*/ OPC_CheckType, MVT::i32, ++/*133919*/ OPC_MoveParent, ++/*133920*/ OPC_MoveChild, 11, ++/*133922*/ OPC_CheckInteger, 1, ++/*133924*/ OPC_CheckType, MVT::i32, ++/*133926*/ OPC_MoveParent, ++/*133927*/ OPC_MoveChild, 12, ++/*133929*/ OPC_CheckInteger, 1, ++/*133931*/ OPC_CheckType, MVT::i32, ++/*133933*/ OPC_MoveParent, ++/*133934*/ OPC_MoveChild, 13, ++/*133936*/ OPC_CheckInteger, 1, ++/*133938*/ OPC_CheckType, MVT::i32, ++/*133940*/ OPC_MoveParent, ++/*133941*/ OPC_MoveChild, 14, ++/*133943*/ OPC_CheckInteger, 1, ++/*133945*/ OPC_CheckType, MVT::i32, ++/*133947*/ OPC_MoveParent, ++/*133948*/ OPC_MoveChild, 15, ++/*133950*/ OPC_CheckInteger, 1, ++/*133952*/ OPC_CheckType, MVT::i32, ++/*133954*/ OPC_MoveParent, ++/*133955*/ OPC_MoveChild, 16, ++/*133957*/ OPC_CheckInteger, 1, ++/*133959*/ OPC_CheckType, MVT::i32, ++/*133961*/ OPC_MoveParent, ++/*133962*/ OPC_MoveChild, 17, ++/*133964*/ OPC_CheckInteger, 1, ++/*133966*/ OPC_CheckType, MVT::i32, ++/*133968*/ OPC_MoveParent, ++/*133969*/ OPC_MoveChild, 18, ++/*133971*/ OPC_CheckInteger, 1, ++/*133973*/ OPC_CheckType, MVT::i32, ++/*133975*/ OPC_MoveParent, ++/*133976*/ OPC_MoveChild, 19, ++/*133978*/ OPC_CheckInteger, 1, ++/*133980*/ OPC_CheckType, MVT::i32, ++/*133982*/ OPC_MoveParent, ++/*133983*/ OPC_MoveChild, 20, ++/*133985*/ OPC_CheckInteger, 1, ++/*133987*/ OPC_CheckType, MVT::i32, ++/*133989*/ OPC_MoveParent, ++/*133990*/ OPC_MoveChild, 21, ++/*133992*/ OPC_CheckInteger, 1, ++/*133994*/ OPC_CheckType, MVT::i32, ++/*133996*/ OPC_MoveParent, ++/*133997*/ OPC_MoveChild, 22, ++/*133999*/ OPC_CheckInteger, 1, ++/*134001*/ OPC_CheckType, MVT::i32, ++/*134003*/ OPC_MoveParent, ++/*134004*/ OPC_MoveChild, 23, ++/*134006*/ OPC_CheckInteger, 1, ++/*134008*/ OPC_CheckType, MVT::i32, ++/*134010*/ OPC_MoveParent, ++/*134011*/ OPC_MoveChild, 24, ++/*134013*/ OPC_CheckInteger, 1, ++/*134015*/ OPC_CheckType, MVT::i32, ++/*134017*/ OPC_MoveParent, ++/*134018*/ OPC_MoveChild, 25, ++/*134020*/ OPC_CheckInteger, 1, ++/*134022*/ OPC_CheckType, MVT::i32, ++/*134024*/ OPC_MoveParent, ++/*134025*/ OPC_MoveChild, 26, ++/*134027*/ OPC_CheckInteger, 1, ++/*134029*/ OPC_CheckType, MVT::i32, ++/*134031*/ OPC_MoveParent, ++/*134032*/ OPC_MoveChild, 27, ++/*134034*/ OPC_CheckInteger, 1, ++/*134036*/ OPC_CheckType, MVT::i32, ++/*134038*/ OPC_MoveParent, ++/*134039*/ OPC_MoveChild, 28, ++/*134041*/ OPC_CheckInteger, 1, ++/*134043*/ OPC_CheckType, MVT::i32, ++/*134045*/ OPC_MoveParent, ++/*134046*/ OPC_MoveChild, 29, ++/*134048*/ OPC_CheckInteger, 1, ++/*134050*/ OPC_CheckType, MVT::i32, ++/*134052*/ OPC_MoveParent, ++/*134053*/ OPC_MoveChild, 30, ++/*134055*/ OPC_CheckInteger, 1, ++/*134057*/ OPC_CheckType, MVT::i32, ++/*134059*/ OPC_MoveParent, ++/*134060*/ OPC_MoveChild, 31, ++/*134062*/ OPC_CheckInteger, 1, ++/*134064*/ OPC_CheckType, MVT::i32, ++/*134066*/ OPC_MoveParent, ++/*134067*/ OPC_MoveParent, ++/*134068*/ OPC_CheckChild1Same, 0, ++/*134070*/ OPC_MoveParent, ++/*134071*/ OPC_MoveParent, ++/*134072*/ OPC_MoveChild1, ++/*134073*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*134076*/ OPC_CheckChild0Integer, 7, ++/*134078*/ OPC_CheckChild0Type, MVT::i32, ++/*134080*/ OPC_CheckChild1Integer, 7, ++/*134082*/ OPC_CheckChild1Type, MVT::i32, ++/*134084*/ OPC_CheckChild2Integer, 7, ++/*134086*/ OPC_CheckChild2Type, MVT::i32, ++/*134088*/ OPC_CheckChild3Integer, 7, ++/*134090*/ OPC_CheckChild3Type, MVT::i32, ++/*134092*/ OPC_CheckChild4Integer, 7, ++/*134094*/ OPC_CheckChild4Type, MVT::i32, ++/*134096*/ OPC_MoveChild5, ++/*134097*/ OPC_CheckInteger, 7, ++/*134099*/ OPC_CheckType, MVT::i32, ++/*134101*/ OPC_MoveParent, ++/*134102*/ OPC_MoveChild6, ++/*134103*/ OPC_CheckInteger, 7, ++/*134105*/ OPC_CheckType, MVT::i32, ++/*134107*/ OPC_MoveParent, ++/*134108*/ OPC_MoveChild7, ++/*134109*/ OPC_CheckInteger, 7, ++/*134111*/ OPC_CheckType, MVT::i32, ++/*134113*/ OPC_MoveParent, ++/*134114*/ OPC_MoveChild, 8, ++/*134116*/ OPC_CheckInteger, 7, ++/*134118*/ OPC_CheckType, MVT::i32, ++/*134120*/ OPC_MoveParent, ++/*134121*/ OPC_MoveChild, 9, ++/*134123*/ OPC_CheckInteger, 7, ++/*134125*/ OPC_CheckType, MVT::i32, ++/*134127*/ OPC_MoveParent, ++/*134128*/ OPC_MoveChild, 10, ++/*134130*/ OPC_CheckInteger, 7, ++/*134132*/ OPC_CheckType, MVT::i32, ++/*134134*/ OPC_MoveParent, ++/*134135*/ OPC_MoveChild, 11, ++/*134137*/ OPC_CheckInteger, 7, ++/*134139*/ OPC_CheckType, MVT::i32, ++/*134141*/ OPC_MoveParent, ++/*134142*/ OPC_MoveChild, 12, ++/*134144*/ OPC_CheckInteger, 7, ++/*134146*/ OPC_CheckType, MVT::i32, ++/*134148*/ OPC_MoveParent, ++/*134149*/ OPC_MoveChild, 13, ++/*134151*/ OPC_CheckInteger, 7, ++/*134153*/ OPC_CheckType, MVT::i32, ++/*134155*/ OPC_MoveParent, ++/*134156*/ OPC_MoveChild, 14, ++/*134158*/ OPC_CheckInteger, 7, ++/*134160*/ OPC_CheckType, MVT::i32, ++/*134162*/ OPC_MoveParent, ++/*134163*/ OPC_MoveChild, 15, ++/*134165*/ OPC_CheckInteger, 7, ++/*134167*/ OPC_CheckType, MVT::i32, ++/*134169*/ OPC_MoveParent, ++/*134170*/ OPC_MoveChild, 16, ++/*134172*/ OPC_CheckInteger, 7, ++/*134174*/ OPC_CheckType, MVT::i32, ++/*134176*/ OPC_MoveParent, ++/*134177*/ OPC_MoveChild, 17, ++/*134179*/ OPC_CheckInteger, 7, ++/*134181*/ OPC_CheckType, MVT::i32, ++/*134183*/ OPC_MoveParent, ++/*134184*/ OPC_MoveChild, 18, ++/*134186*/ OPC_CheckInteger, 7, ++/*134188*/ OPC_CheckType, MVT::i32, ++/*134190*/ OPC_MoveParent, ++/*134191*/ OPC_MoveChild, 19, ++/*134193*/ OPC_CheckInteger, 7, ++/*134195*/ OPC_CheckType, MVT::i32, ++/*134197*/ OPC_MoveParent, ++/*134198*/ OPC_MoveChild, 20, ++/*134200*/ OPC_CheckInteger, 7, ++/*134202*/ OPC_CheckType, MVT::i32, ++/*134204*/ OPC_MoveParent, ++/*134205*/ OPC_MoveChild, 21, ++/*134207*/ OPC_CheckInteger, 7, ++/*134209*/ OPC_CheckType, MVT::i32, ++/*134211*/ OPC_MoveParent, ++/*134212*/ OPC_MoveChild, 22, ++/*134214*/ OPC_CheckInteger, 7, ++/*134216*/ OPC_CheckType, MVT::i32, ++/*134218*/ OPC_MoveParent, ++/*134219*/ OPC_MoveChild, 23, ++/*134221*/ OPC_CheckInteger, 7, ++/*134223*/ OPC_CheckType, MVT::i32, ++/*134225*/ OPC_MoveParent, ++/*134226*/ OPC_MoveChild, 24, ++/*134228*/ OPC_CheckInteger, 7, ++/*134230*/ OPC_CheckType, MVT::i32, ++/*134232*/ OPC_MoveParent, ++/*134233*/ OPC_MoveChild, 25, ++/*134235*/ OPC_CheckInteger, 7, ++/*134237*/ OPC_CheckType, MVT::i32, ++/*134239*/ OPC_MoveParent, ++/*134240*/ OPC_MoveChild, 26, ++/*134242*/ OPC_CheckInteger, 7, ++/*134244*/ OPC_CheckType, MVT::i32, ++/*134246*/ OPC_MoveParent, ++/*134247*/ OPC_MoveChild, 27, ++/*134249*/ OPC_CheckInteger, 7, ++/*134251*/ OPC_CheckType, MVT::i32, ++/*134253*/ OPC_MoveParent, ++/*134254*/ OPC_MoveChild, 28, ++/*134256*/ OPC_CheckInteger, 7, ++/*134258*/ OPC_CheckType, MVT::i32, ++/*134260*/ OPC_MoveParent, ++/*134261*/ OPC_MoveChild, 29, ++/*134263*/ OPC_CheckInteger, 7, ++/*134265*/ OPC_CheckType, MVT::i32, ++/*134267*/ OPC_MoveParent, ++/*134268*/ OPC_MoveChild, 30, ++/*134270*/ OPC_CheckInteger, 7, ++/*134272*/ OPC_CheckType, MVT::i32, ++/*134274*/ OPC_MoveParent, ++/*134275*/ OPC_MoveChild, 31, ++/*134277*/ OPC_CheckInteger, 7, ++/*134279*/ OPC_CheckType, MVT::i32, ++/*134281*/ OPC_MoveParent, ++/*134282*/ OPC_CheckType, MVT::v32i8, ++/*134284*/ OPC_MoveParent, ++/*134285*/ OPC_MoveParent, ++/*134286*/ OPC_MoveParent, ++/*134287*/ OPC_MoveChild1, ++/*134288*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*134291*/ OPC_CheckChild0Integer, 1, ++/*134293*/ OPC_CheckChild0Type, MVT::i32, ++/*134295*/ OPC_CheckChild1Integer, 1, ++/*134297*/ OPC_CheckChild1Type, MVT::i32, ++/*134299*/ OPC_CheckChild2Integer, 1, ++/*134301*/ OPC_CheckChild2Type, MVT::i32, ++/*134303*/ OPC_CheckChild3Integer, 1, ++/*134305*/ OPC_CheckChild3Type, MVT::i32, ++/*134307*/ OPC_CheckChild4Integer, 1, ++/*134309*/ OPC_CheckChild4Type, MVT::i32, ++/*134311*/ OPC_MoveChild5, ++/*134312*/ OPC_CheckInteger, 1, ++/*134314*/ OPC_CheckType, MVT::i32, ++/*134316*/ OPC_MoveParent, ++/*134317*/ OPC_MoveChild6, ++/*134318*/ OPC_CheckInteger, 1, ++/*134320*/ OPC_CheckType, MVT::i32, ++/*134322*/ OPC_MoveParent, ++/*134323*/ OPC_MoveChild7, ++/*134324*/ OPC_CheckInteger, 1, ++/*134326*/ OPC_CheckType, MVT::i32, ++/*134328*/ OPC_MoveParent, ++/*134329*/ OPC_MoveChild, 8, ++/*134331*/ OPC_CheckInteger, 1, ++/*134333*/ OPC_CheckType, MVT::i32, ++/*134335*/ OPC_MoveParent, ++/*134336*/ OPC_MoveChild, 9, ++/*134338*/ OPC_CheckInteger, 1, ++/*134340*/ OPC_CheckType, MVT::i32, ++/*134342*/ OPC_MoveParent, ++/*134343*/ OPC_MoveChild, 10, ++/*134345*/ OPC_CheckInteger, 1, ++/*134347*/ OPC_CheckType, MVT::i32, ++/*134349*/ OPC_MoveParent, ++/*134350*/ OPC_MoveChild, 11, ++/*134352*/ OPC_CheckInteger, 1, ++/*134354*/ OPC_CheckType, MVT::i32, ++/*134356*/ OPC_MoveParent, ++/*134357*/ OPC_MoveChild, 12, ++/*134359*/ OPC_CheckInteger, 1, ++/*134361*/ OPC_CheckType, MVT::i32, ++/*134363*/ OPC_MoveParent, ++/*134364*/ OPC_MoveChild, 13, ++/*134366*/ OPC_CheckInteger, 1, ++/*134368*/ OPC_CheckType, MVT::i32, ++/*134370*/ OPC_MoveParent, ++/*134371*/ OPC_MoveChild, 14, ++/*134373*/ OPC_CheckInteger, 1, ++/*134375*/ OPC_CheckType, MVT::i32, ++/*134377*/ OPC_MoveParent, ++/*134378*/ OPC_MoveChild, 15, ++/*134380*/ OPC_CheckInteger, 1, ++/*134382*/ OPC_CheckType, MVT::i32, ++/*134384*/ OPC_MoveParent, ++/*134385*/ OPC_MoveChild, 16, ++/*134387*/ OPC_CheckInteger, 1, ++/*134389*/ OPC_CheckType, MVT::i32, ++/*134391*/ OPC_MoveParent, ++/*134392*/ OPC_MoveChild, 17, ++/*134394*/ OPC_CheckInteger, 1, ++/*134396*/ OPC_CheckType, MVT::i32, ++/*134398*/ OPC_MoveParent, ++/*134399*/ OPC_MoveChild, 18, ++/*134401*/ OPC_CheckInteger, 1, ++/*134403*/ OPC_CheckType, MVT::i32, ++/*134405*/ OPC_MoveParent, ++/*134406*/ OPC_MoveChild, 19, ++/*134408*/ OPC_CheckInteger, 1, ++/*134410*/ OPC_CheckType, MVT::i32, ++/*134412*/ OPC_MoveParent, ++/*134413*/ OPC_MoveChild, 20, ++/*134415*/ OPC_CheckInteger, 1, ++/*134417*/ OPC_CheckType, MVT::i32, ++/*134419*/ OPC_MoveParent, ++/*134420*/ OPC_MoveChild, 21, ++/*134422*/ OPC_CheckInteger, 1, ++/*134424*/ OPC_CheckType, MVT::i32, ++/*134426*/ OPC_MoveParent, ++/*134427*/ OPC_MoveChild, 22, ++/*134429*/ OPC_CheckInteger, 1, ++/*134431*/ OPC_CheckType, MVT::i32, ++/*134433*/ OPC_MoveParent, ++/*134434*/ OPC_MoveChild, 23, ++/*134436*/ OPC_CheckInteger, 1, ++/*134438*/ OPC_CheckType, MVT::i32, ++/*134440*/ OPC_MoveParent, ++/*134441*/ OPC_MoveChild, 24, ++/*134443*/ OPC_CheckInteger, 1, ++/*134445*/ OPC_CheckType, MVT::i32, ++/*134447*/ OPC_MoveParent, ++/*134448*/ OPC_MoveChild, 25, ++/*134450*/ OPC_CheckInteger, 1, ++/*134452*/ OPC_CheckType, MVT::i32, ++/*134454*/ OPC_MoveParent, ++/*134455*/ OPC_MoveChild, 26, ++/*134457*/ OPC_CheckInteger, 1, ++/*134459*/ OPC_CheckType, MVT::i32, ++/*134461*/ OPC_MoveParent, ++/*134462*/ OPC_MoveChild, 27, ++/*134464*/ OPC_CheckInteger, 1, ++/*134466*/ OPC_CheckType, MVT::i32, ++/*134468*/ OPC_MoveParent, ++/*134469*/ OPC_MoveChild, 28, ++/*134471*/ OPC_CheckInteger, 1, ++/*134473*/ OPC_CheckType, MVT::i32, ++/*134475*/ OPC_MoveParent, ++/*134476*/ OPC_MoveChild, 29, ++/*134478*/ OPC_CheckInteger, 1, ++/*134480*/ OPC_CheckType, MVT::i32, ++/*134482*/ OPC_MoveParent, ++/*134483*/ OPC_MoveChild, 30, ++/*134485*/ OPC_CheckInteger, 1, ++/*134487*/ OPC_CheckType, MVT::i32, ++/*134489*/ OPC_MoveParent, ++/*134490*/ OPC_MoveChild, 31, ++/*134492*/ OPC_CheckInteger, 1, ++/*134494*/ OPC_CheckType, MVT::i32, ++/*134496*/ OPC_MoveParent, ++/*134497*/ OPC_CheckType, MVT::v32i8, ++/*134499*/ OPC_MoveParent, ++/*134500*/ OPC_CheckType, MVT::v32i8, ++/*134502*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*134504*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a)), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*134512*/ /*Scope*/ 15|128,5/*655*/, /*->135169*/ ++/*134514*/ OPC_CheckChild0Same, 0, ++/*134516*/ OPC_MoveChild1, ++/*134517*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*134520*/ OPC_CheckChild0Integer, 1, ++/*134522*/ OPC_CheckChild0Type, MVT::i32, ++/*134524*/ OPC_CheckChild1Integer, 1, ++/*134526*/ OPC_CheckChild1Type, MVT::i32, ++/*134528*/ OPC_CheckChild2Integer, 1, ++/*134530*/ OPC_CheckChild2Type, MVT::i32, ++/*134532*/ OPC_CheckChild3Integer, 1, ++/*134534*/ OPC_CheckChild3Type, MVT::i32, ++/*134536*/ OPC_CheckChild4Integer, 1, ++/*134538*/ OPC_CheckChild4Type, MVT::i32, ++/*134540*/ OPC_MoveChild5, ++/*134541*/ OPC_CheckInteger, 1, ++/*134543*/ OPC_CheckType, MVT::i32, ++/*134545*/ OPC_MoveParent, ++/*134546*/ OPC_MoveChild6, ++/*134547*/ OPC_CheckInteger, 1, ++/*134549*/ OPC_CheckType, MVT::i32, ++/*134551*/ OPC_MoveParent, ++/*134552*/ OPC_MoveChild7, ++/*134553*/ OPC_CheckInteger, 1, ++/*134555*/ OPC_CheckType, MVT::i32, ++/*134557*/ OPC_MoveParent, ++/*134558*/ OPC_MoveChild, 8, ++/*134560*/ OPC_CheckInteger, 1, ++/*134562*/ OPC_CheckType, MVT::i32, ++/*134564*/ OPC_MoveParent, ++/*134565*/ OPC_MoveChild, 9, ++/*134567*/ OPC_CheckInteger, 1, ++/*134569*/ OPC_CheckType, MVT::i32, ++/*134571*/ OPC_MoveParent, ++/*134572*/ OPC_MoveChild, 10, ++/*134574*/ OPC_CheckInteger, 1, ++/*134576*/ OPC_CheckType, MVT::i32, ++/*134578*/ OPC_MoveParent, ++/*134579*/ OPC_MoveChild, 11, ++/*134581*/ OPC_CheckInteger, 1, ++/*134583*/ OPC_CheckType, MVT::i32, ++/*134585*/ OPC_MoveParent, ++/*134586*/ OPC_MoveChild, 12, ++/*134588*/ OPC_CheckInteger, 1, ++/*134590*/ OPC_CheckType, MVT::i32, ++/*134592*/ OPC_MoveParent, ++/*134593*/ OPC_MoveChild, 13, ++/*134595*/ OPC_CheckInteger, 1, ++/*134597*/ OPC_CheckType, MVT::i32, ++/*134599*/ OPC_MoveParent, ++/*134600*/ OPC_MoveChild, 14, ++/*134602*/ OPC_CheckInteger, 1, ++/*134604*/ OPC_CheckType, MVT::i32, ++/*134606*/ OPC_MoveParent, ++/*134607*/ OPC_MoveChild, 15, ++/*134609*/ OPC_CheckInteger, 1, ++/*134611*/ OPC_CheckType, MVT::i32, ++/*134613*/ OPC_MoveParent, ++/*134614*/ OPC_MoveChild, 16, ++/*134616*/ OPC_CheckInteger, 1, ++/*134618*/ OPC_CheckType, MVT::i32, ++/*134620*/ OPC_MoveParent, ++/*134621*/ OPC_MoveChild, 17, ++/*134623*/ OPC_CheckInteger, 1, ++/*134625*/ OPC_CheckType, MVT::i32, ++/*134627*/ OPC_MoveParent, ++/*134628*/ OPC_MoveChild, 18, ++/*134630*/ OPC_CheckInteger, 1, ++/*134632*/ OPC_CheckType, MVT::i32, ++/*134634*/ OPC_MoveParent, ++/*134635*/ OPC_MoveChild, 19, ++/*134637*/ OPC_CheckInteger, 1, ++/*134639*/ OPC_CheckType, MVT::i32, ++/*134641*/ OPC_MoveParent, ++/*134642*/ OPC_MoveChild, 20, ++/*134644*/ OPC_CheckInteger, 1, ++/*134646*/ OPC_CheckType, MVT::i32, ++/*134648*/ OPC_MoveParent, ++/*134649*/ OPC_MoveChild, 21, ++/*134651*/ OPC_CheckInteger, 1, ++/*134653*/ OPC_CheckType, MVT::i32, ++/*134655*/ OPC_MoveParent, ++/*134656*/ OPC_MoveChild, 22, ++/*134658*/ OPC_CheckInteger, 1, ++/*134660*/ OPC_CheckType, MVT::i32, ++/*134662*/ OPC_MoveParent, ++/*134663*/ OPC_MoveChild, 23, ++/*134665*/ OPC_CheckInteger, 1, ++/*134667*/ OPC_CheckType, MVT::i32, ++/*134669*/ OPC_MoveParent, ++/*134670*/ OPC_MoveChild, 24, ++/*134672*/ OPC_CheckInteger, 1, ++/*134674*/ OPC_CheckType, MVT::i32, ++/*134676*/ OPC_MoveParent, ++/*134677*/ OPC_MoveChild, 25, ++/*134679*/ OPC_CheckInteger, 1, ++/*134681*/ OPC_CheckType, MVT::i32, ++/*134683*/ OPC_MoveParent, ++/*134684*/ OPC_MoveChild, 26, ++/*134686*/ OPC_CheckInteger, 1, ++/*134688*/ OPC_CheckType, MVT::i32, ++/*134690*/ OPC_MoveParent, ++/*134691*/ OPC_MoveChild, 27, ++/*134693*/ OPC_CheckInteger, 1, ++/*134695*/ OPC_CheckType, MVT::i32, ++/*134697*/ OPC_MoveParent, ++/*134698*/ OPC_MoveChild, 28, ++/*134700*/ OPC_CheckInteger, 1, ++/*134702*/ OPC_CheckType, MVT::i32, ++/*134704*/ OPC_MoveParent, ++/*134705*/ OPC_MoveChild, 29, ++/*134707*/ OPC_CheckInteger, 1, ++/*134709*/ OPC_CheckType, MVT::i32, ++/*134711*/ OPC_MoveParent, ++/*134712*/ OPC_MoveChild, 30, ++/*134714*/ OPC_CheckInteger, 1, ++/*134716*/ OPC_CheckType, MVT::i32, ++/*134718*/ OPC_MoveParent, ++/*134719*/ OPC_MoveChild, 31, ++/*134721*/ OPC_CheckInteger, 1, ++/*134723*/ OPC_CheckType, MVT::i32, ++/*134725*/ OPC_MoveParent, ++/*134726*/ OPC_MoveParent, ++/*134727*/ OPC_MoveParent, ++/*134728*/ OPC_MoveParent, ++/*134729*/ OPC_MoveChild1, ++/*134730*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*134733*/ OPC_CheckChild0Integer, 7, ++/*134735*/ OPC_CheckChild0Type, MVT::i32, ++/*134737*/ OPC_CheckChild1Integer, 7, ++/*134739*/ OPC_CheckChild1Type, MVT::i32, ++/*134741*/ OPC_CheckChild2Integer, 7, ++/*134743*/ OPC_CheckChild2Type, MVT::i32, ++/*134745*/ OPC_CheckChild3Integer, 7, ++/*134747*/ OPC_CheckChild3Type, MVT::i32, ++/*134749*/ OPC_CheckChild4Integer, 7, ++/*134751*/ OPC_CheckChild4Type, MVT::i32, ++/*134753*/ OPC_MoveChild5, ++/*134754*/ OPC_CheckInteger, 7, ++/*134756*/ OPC_CheckType, MVT::i32, ++/*134758*/ OPC_MoveParent, ++/*134759*/ OPC_MoveChild6, ++/*134760*/ OPC_CheckInteger, 7, ++/*134762*/ OPC_CheckType, MVT::i32, ++/*134764*/ OPC_MoveParent, ++/*134765*/ OPC_MoveChild7, ++/*134766*/ OPC_CheckInteger, 7, ++/*134768*/ OPC_CheckType, MVT::i32, ++/*134770*/ OPC_MoveParent, ++/*134771*/ OPC_MoveChild, 8, ++/*134773*/ OPC_CheckInteger, 7, ++/*134775*/ OPC_CheckType, MVT::i32, ++/*134777*/ OPC_MoveParent, ++/*134778*/ OPC_MoveChild, 9, ++/*134780*/ OPC_CheckInteger, 7, ++/*134782*/ OPC_CheckType, MVT::i32, ++/*134784*/ OPC_MoveParent, ++/*134785*/ OPC_MoveChild, 10, ++/*134787*/ OPC_CheckInteger, 7, ++/*134789*/ OPC_CheckType, MVT::i32, ++/*134791*/ OPC_MoveParent, ++/*134792*/ OPC_MoveChild, 11, ++/*134794*/ OPC_CheckInteger, 7, ++/*134796*/ OPC_CheckType, MVT::i32, ++/*134798*/ OPC_MoveParent, ++/*134799*/ OPC_MoveChild, 12, ++/*134801*/ OPC_CheckInteger, 7, ++/*134803*/ OPC_CheckType, MVT::i32, ++/*134805*/ OPC_MoveParent, ++/*134806*/ OPC_MoveChild, 13, ++/*134808*/ OPC_CheckInteger, 7, ++/*134810*/ OPC_CheckType, MVT::i32, ++/*134812*/ OPC_MoveParent, ++/*134813*/ OPC_MoveChild, 14, ++/*134815*/ OPC_CheckInteger, 7, ++/*134817*/ OPC_CheckType, MVT::i32, ++/*134819*/ OPC_MoveParent, ++/*134820*/ OPC_MoveChild, 15, ++/*134822*/ OPC_CheckInteger, 7, ++/*134824*/ OPC_CheckType, MVT::i32, ++/*134826*/ OPC_MoveParent, ++/*134827*/ OPC_MoveChild, 16, ++/*134829*/ OPC_CheckInteger, 7, ++/*134831*/ OPC_CheckType, MVT::i32, ++/*134833*/ OPC_MoveParent, ++/*134834*/ OPC_MoveChild, 17, ++/*134836*/ OPC_CheckInteger, 7, ++/*134838*/ OPC_CheckType, MVT::i32, ++/*134840*/ OPC_MoveParent, ++/*134841*/ OPC_MoveChild, 18, ++/*134843*/ OPC_CheckInteger, 7, ++/*134845*/ OPC_CheckType, MVT::i32, ++/*134847*/ OPC_MoveParent, ++/*134848*/ OPC_MoveChild, 19, ++/*134850*/ OPC_CheckInteger, 7, ++/*134852*/ OPC_CheckType, MVT::i32, ++/*134854*/ OPC_MoveParent, ++/*134855*/ OPC_MoveChild, 20, ++/*134857*/ OPC_CheckInteger, 7, ++/*134859*/ OPC_CheckType, MVT::i32, ++/*134861*/ OPC_MoveParent, ++/*134862*/ OPC_MoveChild, 21, ++/*134864*/ OPC_CheckInteger, 7, ++/*134866*/ OPC_CheckType, MVT::i32, ++/*134868*/ OPC_MoveParent, ++/*134869*/ OPC_MoveChild, 22, ++/*134871*/ OPC_CheckInteger, 7, ++/*134873*/ OPC_CheckType, MVT::i32, ++/*134875*/ OPC_MoveParent, ++/*134876*/ OPC_MoveChild, 23, ++/*134878*/ OPC_CheckInteger, 7, ++/*134880*/ OPC_CheckType, MVT::i32, ++/*134882*/ OPC_MoveParent, ++/*134883*/ OPC_MoveChild, 24, ++/*134885*/ OPC_CheckInteger, 7, ++/*134887*/ OPC_CheckType, MVT::i32, ++/*134889*/ OPC_MoveParent, ++/*134890*/ OPC_MoveChild, 25, ++/*134892*/ OPC_CheckInteger, 7, ++/*134894*/ OPC_CheckType, MVT::i32, ++/*134896*/ OPC_MoveParent, ++/*134897*/ OPC_MoveChild, 26, ++/*134899*/ OPC_CheckInteger, 7, ++/*134901*/ OPC_CheckType, MVT::i32, ++/*134903*/ OPC_MoveParent, ++/*134904*/ OPC_MoveChild, 27, ++/*134906*/ OPC_CheckInteger, 7, ++/*134908*/ OPC_CheckType, MVT::i32, ++/*134910*/ OPC_MoveParent, ++/*134911*/ OPC_MoveChild, 28, ++/*134913*/ OPC_CheckInteger, 7, ++/*134915*/ OPC_CheckType, MVT::i32, ++/*134917*/ OPC_MoveParent, ++/*134918*/ OPC_MoveChild, 29, ++/*134920*/ OPC_CheckInteger, 7, ++/*134922*/ OPC_CheckType, MVT::i32, ++/*134924*/ OPC_MoveParent, ++/*134925*/ OPC_MoveChild, 30, ++/*134927*/ OPC_CheckInteger, 7, ++/*134929*/ OPC_CheckType, MVT::i32, ++/*134931*/ OPC_MoveParent, ++/*134932*/ OPC_MoveChild, 31, ++/*134934*/ OPC_CheckInteger, 7, ++/*134936*/ OPC_CheckType, MVT::i32, ++/*134938*/ OPC_MoveParent, ++/*134939*/ OPC_CheckType, MVT::v32i8, ++/*134941*/ OPC_MoveParent, ++/*134942*/ OPC_MoveParent, ++/*134943*/ OPC_MoveParent, ++/*134944*/ OPC_MoveChild1, ++/*134945*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*134948*/ OPC_CheckChild0Integer, 1, ++/*134950*/ OPC_CheckChild0Type, MVT::i32, ++/*134952*/ OPC_CheckChild1Integer, 1, ++/*134954*/ OPC_CheckChild1Type, MVT::i32, ++/*134956*/ OPC_CheckChild2Integer, 1, ++/*134958*/ OPC_CheckChild2Type, MVT::i32, ++/*134960*/ OPC_CheckChild3Integer, 1, ++/*134962*/ OPC_CheckChild3Type, MVT::i32, ++/*134964*/ OPC_CheckChild4Integer, 1, ++/*134966*/ OPC_CheckChild4Type, MVT::i32, ++/*134968*/ OPC_MoveChild5, ++/*134969*/ OPC_CheckInteger, 1, ++/*134971*/ OPC_CheckType, MVT::i32, ++/*134973*/ OPC_MoveParent, ++/*134974*/ OPC_MoveChild6, ++/*134975*/ OPC_CheckInteger, 1, ++/*134977*/ OPC_CheckType, MVT::i32, ++/*134979*/ OPC_MoveParent, ++/*134980*/ OPC_MoveChild7, ++/*134981*/ OPC_CheckInteger, 1, ++/*134983*/ OPC_CheckType, MVT::i32, ++/*134985*/ OPC_MoveParent, ++/*134986*/ OPC_MoveChild, 8, ++/*134988*/ OPC_CheckInteger, 1, ++/*134990*/ OPC_CheckType, MVT::i32, ++/*134992*/ OPC_MoveParent, ++/*134993*/ OPC_MoveChild, 9, ++/*134995*/ OPC_CheckInteger, 1, ++/*134997*/ OPC_CheckType, MVT::i32, ++/*134999*/ OPC_MoveParent, ++/*135000*/ OPC_MoveChild, 10, ++/*135002*/ OPC_CheckInteger, 1, ++/*135004*/ OPC_CheckType, MVT::i32, ++/*135006*/ OPC_MoveParent, ++/*135007*/ OPC_MoveChild, 11, ++/*135009*/ OPC_CheckInteger, 1, ++/*135011*/ OPC_CheckType, MVT::i32, ++/*135013*/ OPC_MoveParent, ++/*135014*/ OPC_MoveChild, 12, ++/*135016*/ OPC_CheckInteger, 1, ++/*135018*/ OPC_CheckType, MVT::i32, ++/*135020*/ OPC_MoveParent, ++/*135021*/ OPC_MoveChild, 13, ++/*135023*/ OPC_CheckInteger, 1, ++/*135025*/ OPC_CheckType, MVT::i32, ++/*135027*/ OPC_MoveParent, ++/*135028*/ OPC_MoveChild, 14, ++/*135030*/ OPC_CheckInteger, 1, ++/*135032*/ OPC_CheckType, MVT::i32, ++/*135034*/ OPC_MoveParent, ++/*135035*/ OPC_MoveChild, 15, ++/*135037*/ OPC_CheckInteger, 1, ++/*135039*/ OPC_CheckType, MVT::i32, ++/*135041*/ OPC_MoveParent, ++/*135042*/ OPC_MoveChild, 16, ++/*135044*/ OPC_CheckInteger, 1, ++/*135046*/ OPC_CheckType, MVT::i32, ++/*135048*/ OPC_MoveParent, ++/*135049*/ OPC_MoveChild, 17, ++/*135051*/ OPC_CheckInteger, 1, ++/*135053*/ OPC_CheckType, MVT::i32, ++/*135055*/ OPC_MoveParent, ++/*135056*/ OPC_MoveChild, 18, ++/*135058*/ OPC_CheckInteger, 1, ++/*135060*/ OPC_CheckType, MVT::i32, ++/*135062*/ OPC_MoveParent, ++/*135063*/ OPC_MoveChild, 19, ++/*135065*/ OPC_CheckInteger, 1, ++/*135067*/ OPC_CheckType, MVT::i32, ++/*135069*/ OPC_MoveParent, ++/*135070*/ OPC_MoveChild, 20, ++/*135072*/ OPC_CheckInteger, 1, ++/*135074*/ OPC_CheckType, MVT::i32, ++/*135076*/ OPC_MoveParent, ++/*135077*/ OPC_MoveChild, 21, ++/*135079*/ OPC_CheckInteger, 1, ++/*135081*/ OPC_CheckType, MVT::i32, ++/*135083*/ OPC_MoveParent, ++/*135084*/ OPC_MoveChild, 22, ++/*135086*/ OPC_CheckInteger, 1, ++/*135088*/ OPC_CheckType, MVT::i32, ++/*135090*/ OPC_MoveParent, ++/*135091*/ OPC_MoveChild, 23, ++/*135093*/ OPC_CheckInteger, 1, ++/*135095*/ OPC_CheckType, MVT::i32, ++/*135097*/ OPC_MoveParent, ++/*135098*/ OPC_MoveChild, 24, ++/*135100*/ OPC_CheckInteger, 1, ++/*135102*/ OPC_CheckType, MVT::i32, ++/*135104*/ OPC_MoveParent, ++/*135105*/ OPC_MoveChild, 25, ++/*135107*/ OPC_CheckInteger, 1, ++/*135109*/ OPC_CheckType, MVT::i32, ++/*135111*/ OPC_MoveParent, ++/*135112*/ OPC_MoveChild, 26, ++/*135114*/ OPC_CheckInteger, 1, ++/*135116*/ OPC_CheckType, MVT::i32, ++/*135118*/ OPC_MoveParent, ++/*135119*/ OPC_MoveChild, 27, ++/*135121*/ OPC_CheckInteger, 1, ++/*135123*/ OPC_CheckType, MVT::i32, ++/*135125*/ OPC_MoveParent, ++/*135126*/ OPC_MoveChild, 28, ++/*135128*/ OPC_CheckInteger, 1, ++/*135130*/ OPC_CheckType, MVT::i32, ++/*135132*/ OPC_MoveParent, ++/*135133*/ OPC_MoveChild, 29, ++/*135135*/ OPC_CheckInteger, 1, ++/*135137*/ OPC_CheckType, MVT::i32, ++/*135139*/ OPC_MoveParent, ++/*135140*/ OPC_MoveChild, 30, ++/*135142*/ OPC_CheckInteger, 1, ++/*135144*/ OPC_CheckType, MVT::i32, ++/*135146*/ OPC_MoveParent, ++/*135147*/ OPC_MoveChild, 31, ++/*135149*/ OPC_CheckInteger, 1, ++/*135151*/ OPC_CheckType, MVT::i32, ++/*135153*/ OPC_MoveParent, ++/*135154*/ OPC_CheckType, MVT::v32i8, ++/*135156*/ OPC_MoveParent, ++/*135157*/ OPC_CheckType, MVT::v32i8, ++/*135159*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*135161*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a)), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*135169*/ 0, /*End of Scope*/ ++/*135170*/ /*Scope*/ 89|128,8/*1113*/, /*->136285*/ ++/*135172*/ OPC_MoveChild0, ++/*135173*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*135176*/ OPC_CheckChild0Integer, 1, ++/*135178*/ OPC_CheckChild0Type, MVT::i32, ++/*135180*/ OPC_CheckChild1Integer, 1, ++/*135182*/ OPC_CheckChild1Type, MVT::i32, ++/*135184*/ OPC_CheckChild2Integer, 1, ++/*135186*/ OPC_CheckChild2Type, MVT::i32, ++/*135188*/ OPC_CheckChild3Integer, 1, ++/*135190*/ OPC_CheckChild3Type, MVT::i32, ++/*135192*/ OPC_CheckChild4Integer, 1, ++/*135194*/ OPC_CheckChild4Type, MVT::i32, ++/*135196*/ OPC_MoveChild5, ++/*135197*/ OPC_CheckInteger, 1, ++/*135199*/ OPC_CheckType, MVT::i32, ++/*135201*/ OPC_MoveParent, ++/*135202*/ OPC_MoveChild6, ++/*135203*/ OPC_CheckInteger, 1, ++/*135205*/ OPC_CheckType, MVT::i32, ++/*135207*/ OPC_MoveParent, ++/*135208*/ OPC_MoveChild7, ++/*135209*/ OPC_CheckInteger, 1, ++/*135211*/ OPC_CheckType, MVT::i32, ++/*135213*/ OPC_MoveParent, ++/*135214*/ OPC_MoveChild, 8, ++/*135216*/ OPC_CheckInteger, 1, ++/*135218*/ OPC_CheckType, MVT::i32, ++/*135220*/ OPC_MoveParent, ++/*135221*/ OPC_MoveChild, 9, ++/*135223*/ OPC_CheckInteger, 1, ++/*135225*/ OPC_CheckType, MVT::i32, ++/*135227*/ OPC_MoveParent, ++/*135228*/ OPC_MoveChild, 10, ++/*135230*/ OPC_CheckInteger, 1, ++/*135232*/ OPC_CheckType, MVT::i32, ++/*135234*/ OPC_MoveParent, ++/*135235*/ OPC_MoveChild, 11, ++/*135237*/ OPC_CheckInteger, 1, ++/*135239*/ OPC_CheckType, MVT::i32, ++/*135241*/ OPC_MoveParent, ++/*135242*/ OPC_MoveChild, 12, ++/*135244*/ OPC_CheckInteger, 1, ++/*135246*/ OPC_CheckType, MVT::i32, ++/*135248*/ OPC_MoveParent, ++/*135249*/ OPC_MoveChild, 13, ++/*135251*/ OPC_CheckInteger, 1, ++/*135253*/ OPC_CheckType, MVT::i32, ++/*135255*/ OPC_MoveParent, ++/*135256*/ OPC_MoveChild, 14, ++/*135258*/ OPC_CheckInteger, 1, ++/*135260*/ OPC_CheckType, MVT::i32, ++/*135262*/ OPC_MoveParent, ++/*135263*/ OPC_MoveChild, 15, ++/*135265*/ OPC_CheckInteger, 1, ++/*135267*/ OPC_CheckType, MVT::i32, ++/*135269*/ OPC_MoveParent, ++/*135270*/ OPC_MoveChild, 16, ++/*135272*/ OPC_CheckInteger, 1, ++/*135274*/ OPC_CheckType, MVT::i32, ++/*135276*/ OPC_MoveParent, ++/*135277*/ OPC_MoveChild, 17, ++/*135279*/ OPC_CheckInteger, 1, ++/*135281*/ OPC_CheckType, MVT::i32, ++/*135283*/ OPC_MoveParent, ++/*135284*/ OPC_MoveChild, 18, ++/*135286*/ OPC_CheckInteger, 1, ++/*135288*/ OPC_CheckType, MVT::i32, ++/*135290*/ OPC_MoveParent, ++/*135291*/ OPC_MoveChild, 19, ++/*135293*/ OPC_CheckInteger, 1, ++/*135295*/ OPC_CheckType, MVT::i32, ++/*135297*/ OPC_MoveParent, ++/*135298*/ OPC_MoveChild, 20, ++/*135300*/ OPC_CheckInteger, 1, ++/*135302*/ OPC_CheckType, MVT::i32, ++/*135304*/ OPC_MoveParent, ++/*135305*/ OPC_MoveChild, 21, ++/*135307*/ OPC_CheckInteger, 1, ++/*135309*/ OPC_CheckType, MVT::i32, ++/*135311*/ OPC_MoveParent, ++/*135312*/ OPC_MoveChild, 22, ++/*135314*/ OPC_CheckInteger, 1, ++/*135316*/ OPC_CheckType, MVT::i32, ++/*135318*/ OPC_MoveParent, ++/*135319*/ OPC_MoveChild, 23, ++/*135321*/ OPC_CheckInteger, 1, ++/*135323*/ OPC_CheckType, MVT::i32, ++/*135325*/ OPC_MoveParent, ++/*135326*/ OPC_MoveChild, 24, ++/*135328*/ OPC_CheckInteger, 1, ++/*135330*/ OPC_CheckType, MVT::i32, ++/*135332*/ OPC_MoveParent, ++/*135333*/ OPC_MoveChild, 25, ++/*135335*/ OPC_CheckInteger, 1, ++/*135337*/ OPC_CheckType, MVT::i32, ++/*135339*/ OPC_MoveParent, ++/*135340*/ OPC_MoveChild, 26, ++/*135342*/ OPC_CheckInteger, 1, ++/*135344*/ OPC_CheckType, MVT::i32, ++/*135346*/ OPC_MoveParent, ++/*135347*/ OPC_MoveChild, 27, ++/*135349*/ OPC_CheckInteger, 1, ++/*135351*/ OPC_CheckType, MVT::i32, ++/*135353*/ OPC_MoveParent, ++/*135354*/ OPC_MoveChild, 28, ++/*135356*/ OPC_CheckInteger, 1, ++/*135358*/ OPC_CheckType, MVT::i32, ++/*135360*/ OPC_MoveParent, ++/*135361*/ OPC_MoveChild, 29, ++/*135363*/ OPC_CheckInteger, 1, ++/*135365*/ OPC_CheckType, MVT::i32, ++/*135367*/ OPC_MoveParent, ++/*135368*/ OPC_MoveChild, 30, ++/*135370*/ OPC_CheckInteger, 1, ++/*135372*/ OPC_CheckType, MVT::i32, ++/*135374*/ OPC_MoveParent, ++/*135375*/ OPC_MoveChild, 31, ++/*135377*/ OPC_CheckInteger, 1, ++/*135379*/ OPC_CheckType, MVT::i32, ++/*135381*/ OPC_MoveParent, ++/*135382*/ OPC_MoveParent, ++/*135383*/ OPC_MoveChild1, ++/*135384*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*135387*/ OPC_Scope, 62|128,3/*446*/, /*->135836*/ // 2 children in Scope ++/*135390*/ OPC_CheckChild0Same, 1, ++/*135392*/ OPC_CheckChild1Same, 0, ++/*135394*/ OPC_MoveParent, ++/*135395*/ OPC_MoveParent, ++/*135396*/ OPC_MoveChild1, ++/*135397*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*135400*/ OPC_CheckChild0Integer, 7, ++/*135402*/ OPC_CheckChild0Type, MVT::i32, ++/*135404*/ OPC_CheckChild1Integer, 7, ++/*135406*/ OPC_CheckChild1Type, MVT::i32, ++/*135408*/ OPC_CheckChild2Integer, 7, ++/*135410*/ OPC_CheckChild2Type, MVT::i32, ++/*135412*/ OPC_CheckChild3Integer, 7, ++/*135414*/ OPC_CheckChild3Type, MVT::i32, ++/*135416*/ OPC_CheckChild4Integer, 7, ++/*135418*/ OPC_CheckChild4Type, MVT::i32, ++/*135420*/ OPC_MoveChild5, ++/*135421*/ OPC_CheckInteger, 7, ++/*135423*/ OPC_CheckType, MVT::i32, ++/*135425*/ OPC_MoveParent, ++/*135426*/ OPC_MoveChild6, ++/*135427*/ OPC_CheckInteger, 7, ++/*135429*/ OPC_CheckType, MVT::i32, ++/*135431*/ OPC_MoveParent, ++/*135432*/ OPC_MoveChild7, ++/*135433*/ OPC_CheckInteger, 7, ++/*135435*/ OPC_CheckType, MVT::i32, ++/*135437*/ OPC_MoveParent, ++/*135438*/ OPC_MoveChild, 8, ++/*135440*/ OPC_CheckInteger, 7, ++/*135442*/ OPC_CheckType, MVT::i32, ++/*135444*/ OPC_MoveParent, ++/*135445*/ OPC_MoveChild, 9, ++/*135447*/ OPC_CheckInteger, 7, ++/*135449*/ OPC_CheckType, MVT::i32, ++/*135451*/ OPC_MoveParent, ++/*135452*/ OPC_MoveChild, 10, ++/*135454*/ OPC_CheckInteger, 7, ++/*135456*/ OPC_CheckType, MVT::i32, ++/*135458*/ OPC_MoveParent, ++/*135459*/ OPC_MoveChild, 11, ++/*135461*/ OPC_CheckInteger, 7, ++/*135463*/ OPC_CheckType, MVT::i32, ++/*135465*/ OPC_MoveParent, ++/*135466*/ OPC_MoveChild, 12, ++/*135468*/ OPC_CheckInteger, 7, ++/*135470*/ OPC_CheckType, MVT::i32, ++/*135472*/ OPC_MoveParent, ++/*135473*/ OPC_MoveChild, 13, ++/*135475*/ OPC_CheckInteger, 7, ++/*135477*/ OPC_CheckType, MVT::i32, ++/*135479*/ OPC_MoveParent, ++/*135480*/ OPC_MoveChild, 14, ++/*135482*/ OPC_CheckInteger, 7, ++/*135484*/ OPC_CheckType, MVT::i32, ++/*135486*/ OPC_MoveParent, ++/*135487*/ OPC_MoveChild, 15, ++/*135489*/ OPC_CheckInteger, 7, ++/*135491*/ OPC_CheckType, MVT::i32, ++/*135493*/ OPC_MoveParent, ++/*135494*/ OPC_MoveChild, 16, ++/*135496*/ OPC_CheckInteger, 7, ++/*135498*/ OPC_CheckType, MVT::i32, ++/*135500*/ OPC_MoveParent, ++/*135501*/ OPC_MoveChild, 17, ++/*135503*/ OPC_CheckInteger, 7, ++/*135505*/ OPC_CheckType, MVT::i32, ++/*135507*/ OPC_MoveParent, ++/*135508*/ OPC_MoveChild, 18, ++/*135510*/ OPC_CheckInteger, 7, ++/*135512*/ OPC_CheckType, MVT::i32, ++/*135514*/ OPC_MoveParent, ++/*135515*/ OPC_MoveChild, 19, ++/*135517*/ OPC_CheckInteger, 7, ++/*135519*/ OPC_CheckType, MVT::i32, ++/*135521*/ OPC_MoveParent, ++/*135522*/ OPC_MoveChild, 20, ++/*135524*/ OPC_CheckInteger, 7, ++/*135526*/ OPC_CheckType, MVT::i32, ++/*135528*/ OPC_MoveParent, ++/*135529*/ OPC_MoveChild, 21, ++/*135531*/ OPC_CheckInteger, 7, ++/*135533*/ OPC_CheckType, MVT::i32, ++/*135535*/ OPC_MoveParent, ++/*135536*/ OPC_MoveChild, 22, ++/*135538*/ OPC_CheckInteger, 7, ++/*135540*/ OPC_CheckType, MVT::i32, ++/*135542*/ OPC_MoveParent, ++/*135543*/ OPC_MoveChild, 23, ++/*135545*/ OPC_CheckInteger, 7, ++/*135547*/ OPC_CheckType, MVT::i32, ++/*135549*/ OPC_MoveParent, ++/*135550*/ OPC_MoveChild, 24, ++/*135552*/ OPC_CheckInteger, 7, ++/*135554*/ OPC_CheckType, MVT::i32, ++/*135556*/ OPC_MoveParent, ++/*135557*/ OPC_MoveChild, 25, ++/*135559*/ OPC_CheckInteger, 7, ++/*135561*/ OPC_CheckType, MVT::i32, ++/*135563*/ OPC_MoveParent, ++/*135564*/ OPC_MoveChild, 26, ++/*135566*/ OPC_CheckInteger, 7, ++/*135568*/ OPC_CheckType, MVT::i32, ++/*135570*/ OPC_MoveParent, ++/*135571*/ OPC_MoveChild, 27, ++/*135573*/ OPC_CheckInteger, 7, ++/*135575*/ OPC_CheckType, MVT::i32, ++/*135577*/ OPC_MoveParent, ++/*135578*/ OPC_MoveChild, 28, ++/*135580*/ OPC_CheckInteger, 7, ++/*135582*/ OPC_CheckType, MVT::i32, ++/*135584*/ OPC_MoveParent, ++/*135585*/ OPC_MoveChild, 29, ++/*135587*/ OPC_CheckInteger, 7, ++/*135589*/ OPC_CheckType, MVT::i32, ++/*135591*/ OPC_MoveParent, ++/*135592*/ OPC_MoveChild, 30, ++/*135594*/ OPC_CheckInteger, 7, ++/*135596*/ OPC_CheckType, MVT::i32, ++/*135598*/ OPC_MoveParent, ++/*135599*/ OPC_MoveChild, 31, ++/*135601*/ OPC_CheckInteger, 7, ++/*135603*/ OPC_CheckType, MVT::i32, ++/*135605*/ OPC_MoveParent, ++/*135606*/ OPC_CheckType, MVT::v32i8, ++/*135608*/ OPC_MoveParent, ++/*135609*/ OPC_MoveParent, ++/*135610*/ OPC_MoveParent, ++/*135611*/ OPC_MoveChild1, ++/*135612*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*135615*/ OPC_CheckChild0Integer, 1, ++/*135617*/ OPC_CheckChild0Type, MVT::i32, ++/*135619*/ OPC_CheckChild1Integer, 1, ++/*135621*/ OPC_CheckChild1Type, MVT::i32, ++/*135623*/ OPC_CheckChild2Integer, 1, ++/*135625*/ OPC_CheckChild2Type, MVT::i32, ++/*135627*/ OPC_CheckChild3Integer, 1, ++/*135629*/ OPC_CheckChild3Type, MVT::i32, ++/*135631*/ OPC_CheckChild4Integer, 1, ++/*135633*/ OPC_CheckChild4Type, MVT::i32, ++/*135635*/ OPC_MoveChild5, ++/*135636*/ OPC_CheckInteger, 1, ++/*135638*/ OPC_CheckType, MVT::i32, ++/*135640*/ OPC_MoveParent, ++/*135641*/ OPC_MoveChild6, ++/*135642*/ OPC_CheckInteger, 1, ++/*135644*/ OPC_CheckType, MVT::i32, ++/*135646*/ OPC_MoveParent, ++/*135647*/ OPC_MoveChild7, ++/*135648*/ OPC_CheckInteger, 1, ++/*135650*/ OPC_CheckType, MVT::i32, ++/*135652*/ OPC_MoveParent, ++/*135653*/ OPC_MoveChild, 8, ++/*135655*/ OPC_CheckInteger, 1, ++/*135657*/ OPC_CheckType, MVT::i32, ++/*135659*/ OPC_MoveParent, ++/*135660*/ OPC_MoveChild, 9, ++/*135662*/ OPC_CheckInteger, 1, ++/*135664*/ OPC_CheckType, MVT::i32, ++/*135666*/ OPC_MoveParent, ++/*135667*/ OPC_MoveChild, 10, ++/*135669*/ OPC_CheckInteger, 1, ++/*135671*/ OPC_CheckType, MVT::i32, ++/*135673*/ OPC_MoveParent, ++/*135674*/ OPC_MoveChild, 11, ++/*135676*/ OPC_CheckInteger, 1, ++/*135678*/ OPC_CheckType, MVT::i32, ++/*135680*/ OPC_MoveParent, ++/*135681*/ OPC_MoveChild, 12, ++/*135683*/ OPC_CheckInteger, 1, ++/*135685*/ OPC_CheckType, MVT::i32, ++/*135687*/ OPC_MoveParent, ++/*135688*/ OPC_MoveChild, 13, ++/*135690*/ OPC_CheckInteger, 1, ++/*135692*/ OPC_CheckType, MVT::i32, ++/*135694*/ OPC_MoveParent, ++/*135695*/ OPC_MoveChild, 14, ++/*135697*/ OPC_CheckInteger, 1, ++/*135699*/ OPC_CheckType, MVT::i32, ++/*135701*/ OPC_MoveParent, ++/*135702*/ OPC_MoveChild, 15, ++/*135704*/ OPC_CheckInteger, 1, ++/*135706*/ OPC_CheckType, MVT::i32, ++/*135708*/ OPC_MoveParent, ++/*135709*/ OPC_MoveChild, 16, ++/*135711*/ OPC_CheckInteger, 1, ++/*135713*/ OPC_CheckType, MVT::i32, ++/*135715*/ OPC_MoveParent, ++/*135716*/ OPC_MoveChild, 17, ++/*135718*/ OPC_CheckInteger, 1, ++/*135720*/ OPC_CheckType, MVT::i32, ++/*135722*/ OPC_MoveParent, ++/*135723*/ OPC_MoveChild, 18, ++/*135725*/ OPC_CheckInteger, 1, ++/*135727*/ OPC_CheckType, MVT::i32, ++/*135729*/ OPC_MoveParent, ++/*135730*/ OPC_MoveChild, 19, ++/*135732*/ OPC_CheckInteger, 1, ++/*135734*/ OPC_CheckType, MVT::i32, ++/*135736*/ OPC_MoveParent, ++/*135737*/ OPC_MoveChild, 20, ++/*135739*/ OPC_CheckInteger, 1, ++/*135741*/ OPC_CheckType, MVT::i32, ++/*135743*/ OPC_MoveParent, ++/*135744*/ OPC_MoveChild, 21, ++/*135746*/ OPC_CheckInteger, 1, ++/*135748*/ OPC_CheckType, MVT::i32, ++/*135750*/ OPC_MoveParent, ++/*135751*/ OPC_MoveChild, 22, ++/*135753*/ OPC_CheckInteger, 1, ++/*135755*/ OPC_CheckType, MVT::i32, ++/*135757*/ OPC_MoveParent, ++/*135758*/ OPC_MoveChild, 23, ++/*135760*/ OPC_CheckInteger, 1, ++/*135762*/ OPC_CheckType, MVT::i32, ++/*135764*/ OPC_MoveParent, ++/*135765*/ OPC_MoveChild, 24, ++/*135767*/ OPC_CheckInteger, 1, ++/*135769*/ OPC_CheckType, MVT::i32, ++/*135771*/ OPC_MoveParent, ++/*135772*/ OPC_MoveChild, 25, ++/*135774*/ OPC_CheckInteger, 1, ++/*135776*/ OPC_CheckType, MVT::i32, ++/*135778*/ OPC_MoveParent, ++/*135779*/ OPC_MoveChild, 26, ++/*135781*/ OPC_CheckInteger, 1, ++/*135783*/ OPC_CheckType, MVT::i32, ++/*135785*/ OPC_MoveParent, ++/*135786*/ OPC_MoveChild, 27, ++/*135788*/ OPC_CheckInteger, 1, ++/*135790*/ OPC_CheckType, MVT::i32, ++/*135792*/ OPC_MoveParent, ++/*135793*/ OPC_MoveChild, 28, ++/*135795*/ OPC_CheckInteger, 1, ++/*135797*/ OPC_CheckType, MVT::i32, ++/*135799*/ OPC_MoveParent, ++/*135800*/ OPC_MoveChild, 29, ++/*135802*/ OPC_CheckInteger, 1, ++/*135804*/ OPC_CheckType, MVT::i32, ++/*135806*/ OPC_MoveParent, ++/*135807*/ OPC_MoveChild, 30, ++/*135809*/ OPC_CheckInteger, 1, ++/*135811*/ OPC_CheckType, MVT::i32, ++/*135813*/ OPC_MoveParent, ++/*135814*/ OPC_MoveChild, 31, ++/*135816*/ OPC_CheckInteger, 1, ++/*135818*/ OPC_CheckType, MVT::i32, ++/*135820*/ OPC_MoveParent, ++/*135821*/ OPC_CheckType, MVT::v32i8, ++/*135823*/ OPC_MoveParent, ++/*135824*/ OPC_CheckType, MVT::v32i8, ++/*135826*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*135828*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a)), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*135836*/ /*Scope*/ 62|128,3/*446*/, /*->136284*/ ++/*135838*/ OPC_CheckChild0Same, 0, ++/*135840*/ OPC_CheckChild1Same, 1, ++/*135842*/ OPC_MoveParent, ++/*135843*/ OPC_MoveParent, ++/*135844*/ OPC_MoveChild1, ++/*135845*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*135848*/ OPC_CheckChild0Integer, 7, ++/*135850*/ OPC_CheckChild0Type, MVT::i32, ++/*135852*/ OPC_CheckChild1Integer, 7, ++/*135854*/ OPC_CheckChild1Type, MVT::i32, ++/*135856*/ OPC_CheckChild2Integer, 7, ++/*135858*/ OPC_CheckChild2Type, MVT::i32, ++/*135860*/ OPC_CheckChild3Integer, 7, ++/*135862*/ OPC_CheckChild3Type, MVT::i32, ++/*135864*/ OPC_CheckChild4Integer, 7, ++/*135866*/ OPC_CheckChild4Type, MVT::i32, ++/*135868*/ OPC_MoveChild5, ++/*135869*/ OPC_CheckInteger, 7, ++/*135871*/ OPC_CheckType, MVT::i32, ++/*135873*/ OPC_MoveParent, ++/*135874*/ OPC_MoveChild6, ++/*135875*/ OPC_CheckInteger, 7, ++/*135877*/ OPC_CheckType, MVT::i32, ++/*135879*/ OPC_MoveParent, ++/*135880*/ OPC_MoveChild7, ++/*135881*/ OPC_CheckInteger, 7, ++/*135883*/ OPC_CheckType, MVT::i32, ++/*135885*/ OPC_MoveParent, ++/*135886*/ OPC_MoveChild, 8, ++/*135888*/ OPC_CheckInteger, 7, ++/*135890*/ OPC_CheckType, MVT::i32, ++/*135892*/ OPC_MoveParent, ++/*135893*/ OPC_MoveChild, 9, ++/*135895*/ OPC_CheckInteger, 7, ++/*135897*/ OPC_CheckType, MVT::i32, ++/*135899*/ OPC_MoveParent, ++/*135900*/ OPC_MoveChild, 10, ++/*135902*/ OPC_CheckInteger, 7, ++/*135904*/ OPC_CheckType, MVT::i32, ++/*135906*/ OPC_MoveParent, ++/*135907*/ OPC_MoveChild, 11, ++/*135909*/ OPC_CheckInteger, 7, ++/*135911*/ OPC_CheckType, MVT::i32, ++/*135913*/ OPC_MoveParent, ++/*135914*/ OPC_MoveChild, 12, ++/*135916*/ OPC_CheckInteger, 7, ++/*135918*/ OPC_CheckType, MVT::i32, ++/*135920*/ OPC_MoveParent, ++/*135921*/ OPC_MoveChild, 13, ++/*135923*/ OPC_CheckInteger, 7, ++/*135925*/ OPC_CheckType, MVT::i32, ++/*135927*/ OPC_MoveParent, ++/*135928*/ OPC_MoveChild, 14, ++/*135930*/ OPC_CheckInteger, 7, ++/*135932*/ OPC_CheckType, MVT::i32, ++/*135934*/ OPC_MoveParent, ++/*135935*/ OPC_MoveChild, 15, ++/*135937*/ OPC_CheckInteger, 7, ++/*135939*/ OPC_CheckType, MVT::i32, ++/*135941*/ OPC_MoveParent, ++/*135942*/ OPC_MoveChild, 16, ++/*135944*/ OPC_CheckInteger, 7, ++/*135946*/ OPC_CheckType, MVT::i32, ++/*135948*/ OPC_MoveParent, ++/*135949*/ OPC_MoveChild, 17, ++/*135951*/ OPC_CheckInteger, 7, ++/*135953*/ OPC_CheckType, MVT::i32, ++/*135955*/ OPC_MoveParent, ++/*135956*/ OPC_MoveChild, 18, ++/*135958*/ OPC_CheckInteger, 7, ++/*135960*/ OPC_CheckType, MVT::i32, ++/*135962*/ OPC_MoveParent, ++/*135963*/ OPC_MoveChild, 19, ++/*135965*/ OPC_CheckInteger, 7, ++/*135967*/ OPC_CheckType, MVT::i32, ++/*135969*/ OPC_MoveParent, ++/*135970*/ OPC_MoveChild, 20, ++/*135972*/ OPC_CheckInteger, 7, ++/*135974*/ OPC_CheckType, MVT::i32, ++/*135976*/ OPC_MoveParent, ++/*135977*/ OPC_MoveChild, 21, ++/*135979*/ OPC_CheckInteger, 7, ++/*135981*/ OPC_CheckType, MVT::i32, ++/*135983*/ OPC_MoveParent, ++/*135984*/ OPC_MoveChild, 22, ++/*135986*/ OPC_CheckInteger, 7, ++/*135988*/ OPC_CheckType, MVT::i32, ++/*135990*/ OPC_MoveParent, ++/*135991*/ OPC_MoveChild, 23, ++/*135993*/ OPC_CheckInteger, 7, ++/*135995*/ OPC_CheckType, MVT::i32, ++/*135997*/ OPC_MoveParent, ++/*135998*/ OPC_MoveChild, 24, ++/*136000*/ OPC_CheckInteger, 7, ++/*136002*/ OPC_CheckType, MVT::i32, ++/*136004*/ OPC_MoveParent, ++/*136005*/ OPC_MoveChild, 25, ++/*136007*/ OPC_CheckInteger, 7, ++/*136009*/ OPC_CheckType, MVT::i32, ++/*136011*/ OPC_MoveParent, ++/*136012*/ OPC_MoveChild, 26, ++/*136014*/ OPC_CheckInteger, 7, ++/*136016*/ OPC_CheckType, MVT::i32, ++/*136018*/ OPC_MoveParent, ++/*136019*/ OPC_MoveChild, 27, ++/*136021*/ OPC_CheckInteger, 7, ++/*136023*/ OPC_CheckType, MVT::i32, ++/*136025*/ OPC_MoveParent, ++/*136026*/ OPC_MoveChild, 28, ++/*136028*/ OPC_CheckInteger, 7, ++/*136030*/ OPC_CheckType, MVT::i32, ++/*136032*/ OPC_MoveParent, ++/*136033*/ OPC_MoveChild, 29, ++/*136035*/ OPC_CheckInteger, 7, ++/*136037*/ OPC_CheckType, MVT::i32, ++/*136039*/ OPC_MoveParent, ++/*136040*/ OPC_MoveChild, 30, ++/*136042*/ OPC_CheckInteger, 7, ++/*136044*/ OPC_CheckType, MVT::i32, ++/*136046*/ OPC_MoveParent, ++/*136047*/ OPC_MoveChild, 31, ++/*136049*/ OPC_CheckInteger, 7, ++/*136051*/ OPC_CheckType, MVT::i32, ++/*136053*/ OPC_MoveParent, ++/*136054*/ OPC_CheckType, MVT::v32i8, ++/*136056*/ OPC_MoveParent, ++/*136057*/ OPC_MoveParent, ++/*136058*/ OPC_MoveParent, ++/*136059*/ OPC_MoveChild1, ++/*136060*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*136063*/ OPC_CheckChild0Integer, 1, ++/*136065*/ OPC_CheckChild0Type, MVT::i32, ++/*136067*/ OPC_CheckChild1Integer, 1, ++/*136069*/ OPC_CheckChild1Type, MVT::i32, ++/*136071*/ OPC_CheckChild2Integer, 1, ++/*136073*/ OPC_CheckChild2Type, MVT::i32, ++/*136075*/ OPC_CheckChild3Integer, 1, ++/*136077*/ OPC_CheckChild3Type, MVT::i32, ++/*136079*/ OPC_CheckChild4Integer, 1, ++/*136081*/ OPC_CheckChild4Type, MVT::i32, ++/*136083*/ OPC_MoveChild5, ++/*136084*/ OPC_CheckInteger, 1, ++/*136086*/ OPC_CheckType, MVT::i32, ++/*136088*/ OPC_MoveParent, ++/*136089*/ OPC_MoveChild6, ++/*136090*/ OPC_CheckInteger, 1, ++/*136092*/ OPC_CheckType, MVT::i32, ++/*136094*/ OPC_MoveParent, ++/*136095*/ OPC_MoveChild7, ++/*136096*/ OPC_CheckInteger, 1, ++/*136098*/ OPC_CheckType, MVT::i32, ++/*136100*/ OPC_MoveParent, ++/*136101*/ OPC_MoveChild, 8, ++/*136103*/ OPC_CheckInteger, 1, ++/*136105*/ OPC_CheckType, MVT::i32, ++/*136107*/ OPC_MoveParent, ++/*136108*/ OPC_MoveChild, 9, ++/*136110*/ OPC_CheckInteger, 1, ++/*136112*/ OPC_CheckType, MVT::i32, ++/*136114*/ OPC_MoveParent, ++/*136115*/ OPC_MoveChild, 10, ++/*136117*/ OPC_CheckInteger, 1, ++/*136119*/ OPC_CheckType, MVT::i32, ++/*136121*/ OPC_MoveParent, ++/*136122*/ OPC_MoveChild, 11, ++/*136124*/ OPC_CheckInteger, 1, ++/*136126*/ OPC_CheckType, MVT::i32, ++/*136128*/ OPC_MoveParent, ++/*136129*/ OPC_MoveChild, 12, ++/*136131*/ OPC_CheckInteger, 1, ++/*136133*/ OPC_CheckType, MVT::i32, ++/*136135*/ OPC_MoveParent, ++/*136136*/ OPC_MoveChild, 13, ++/*136138*/ OPC_CheckInteger, 1, ++/*136140*/ OPC_CheckType, MVT::i32, ++/*136142*/ OPC_MoveParent, ++/*136143*/ OPC_MoveChild, 14, ++/*136145*/ OPC_CheckInteger, 1, ++/*136147*/ OPC_CheckType, MVT::i32, ++/*136149*/ OPC_MoveParent, ++/*136150*/ OPC_MoveChild, 15, ++/*136152*/ OPC_CheckInteger, 1, ++/*136154*/ OPC_CheckType, MVT::i32, ++/*136156*/ OPC_MoveParent, ++/*136157*/ OPC_MoveChild, 16, ++/*136159*/ OPC_CheckInteger, 1, ++/*136161*/ OPC_CheckType, MVT::i32, ++/*136163*/ OPC_MoveParent, ++/*136164*/ OPC_MoveChild, 17, ++/*136166*/ OPC_CheckInteger, 1, ++/*136168*/ OPC_CheckType, MVT::i32, ++/*136170*/ OPC_MoveParent, ++/*136171*/ OPC_MoveChild, 18, ++/*136173*/ OPC_CheckInteger, 1, ++/*136175*/ OPC_CheckType, MVT::i32, ++/*136177*/ OPC_MoveParent, ++/*136178*/ OPC_MoveChild, 19, ++/*136180*/ OPC_CheckInteger, 1, ++/*136182*/ OPC_CheckType, MVT::i32, ++/*136184*/ OPC_MoveParent, ++/*136185*/ OPC_MoveChild, 20, ++/*136187*/ OPC_CheckInteger, 1, ++/*136189*/ OPC_CheckType, MVT::i32, ++/*136191*/ OPC_MoveParent, ++/*136192*/ OPC_MoveChild, 21, ++/*136194*/ OPC_CheckInteger, 1, ++/*136196*/ OPC_CheckType, MVT::i32, ++/*136198*/ OPC_MoveParent, ++/*136199*/ OPC_MoveChild, 22, ++/*136201*/ OPC_CheckInteger, 1, ++/*136203*/ OPC_CheckType, MVT::i32, ++/*136205*/ OPC_MoveParent, ++/*136206*/ OPC_MoveChild, 23, ++/*136208*/ OPC_CheckInteger, 1, ++/*136210*/ OPC_CheckType, MVT::i32, ++/*136212*/ OPC_MoveParent, ++/*136213*/ OPC_MoveChild, 24, ++/*136215*/ OPC_CheckInteger, 1, ++/*136217*/ OPC_CheckType, MVT::i32, ++/*136219*/ OPC_MoveParent, ++/*136220*/ OPC_MoveChild, 25, ++/*136222*/ OPC_CheckInteger, 1, ++/*136224*/ OPC_CheckType, MVT::i32, ++/*136226*/ OPC_MoveParent, ++/*136227*/ OPC_MoveChild, 26, ++/*136229*/ OPC_CheckInteger, 1, ++/*136231*/ OPC_CheckType, MVT::i32, ++/*136233*/ OPC_MoveParent, ++/*136234*/ OPC_MoveChild, 27, ++/*136236*/ OPC_CheckInteger, 1, ++/*136238*/ OPC_CheckType, MVT::i32, ++/*136240*/ OPC_MoveParent, ++/*136241*/ OPC_MoveChild, 28, ++/*136243*/ OPC_CheckInteger, 1, ++/*136245*/ OPC_CheckType, MVT::i32, ++/*136247*/ OPC_MoveParent, ++/*136248*/ OPC_MoveChild, 29, ++/*136250*/ OPC_CheckInteger, 1, ++/*136252*/ OPC_CheckType, MVT::i32, ++/*136254*/ OPC_MoveParent, ++/*136255*/ OPC_MoveChild, 30, ++/*136257*/ OPC_CheckInteger, 1, ++/*136259*/ OPC_CheckType, MVT::i32, ++/*136261*/ OPC_MoveParent, ++/*136262*/ OPC_MoveChild, 31, ++/*136264*/ OPC_CheckInteger, 1, ++/*136266*/ OPC_CheckType, MVT::i32, ++/*136268*/ OPC_MoveParent, ++/*136269*/ OPC_CheckType, MVT::v32i8, ++/*136271*/ OPC_MoveParent, ++/*136272*/ OPC_CheckType, MVT::v32i8, ++/*136274*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*136276*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a)), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*136284*/ 0, /*End of Scope*/ ++/*136285*/ 0, /*End of Scope*/ ++/*136286*/ /*Scope*/ 13|128,62/*7949*/, /*->144237*/ ++/*136288*/ OPC_RecordChild0, // #1 = $a ++/*136289*/ OPC_MoveChild1, ++/*136290*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*136293*/ OPC_CheckChild0Integer, 1, ++/*136295*/ OPC_CheckChild0Type, MVT::i32, ++/*136297*/ OPC_CheckChild1Integer, 1, ++/*136299*/ OPC_CheckChild1Type, MVT::i32, ++/*136301*/ OPC_CheckChild2Integer, 1, ++/*136303*/ OPC_CheckChild2Type, MVT::i32, ++/*136305*/ OPC_CheckChild3Integer, 1, ++/*136307*/ OPC_CheckChild3Type, MVT::i32, ++/*136309*/ OPC_CheckChild4Integer, 1, ++/*136311*/ OPC_CheckChild4Type, MVT::i32, ++/*136313*/ OPC_MoveChild5, ++/*136314*/ OPC_CheckInteger, 1, ++/*136316*/ OPC_CheckType, MVT::i32, ++/*136318*/ OPC_MoveParent, ++/*136319*/ OPC_MoveChild6, ++/*136320*/ OPC_CheckInteger, 1, ++/*136322*/ OPC_CheckType, MVT::i32, ++/*136324*/ OPC_MoveParent, ++/*136325*/ OPC_MoveChild7, ++/*136326*/ OPC_CheckInteger, 1, ++/*136328*/ OPC_CheckType, MVT::i32, ++/*136330*/ OPC_MoveParent, ++/*136331*/ OPC_MoveChild, 8, ++/*136333*/ OPC_CheckInteger, 1, ++/*136335*/ OPC_CheckType, MVT::i32, ++/*136337*/ OPC_MoveParent, ++/*136338*/ OPC_MoveChild, 9, ++/*136340*/ OPC_CheckInteger, 1, ++/*136342*/ OPC_CheckType, MVT::i32, ++/*136344*/ OPC_MoveParent, ++/*136345*/ OPC_MoveChild, 10, ++/*136347*/ OPC_CheckInteger, 1, ++/*136349*/ OPC_CheckType, MVT::i32, ++/*136351*/ OPC_MoveParent, ++/*136352*/ OPC_MoveChild, 11, ++/*136354*/ OPC_CheckInteger, 1, ++/*136356*/ OPC_CheckType, MVT::i32, ++/*136358*/ OPC_MoveParent, ++/*136359*/ OPC_MoveChild, 12, ++/*136361*/ OPC_CheckInteger, 1, ++/*136363*/ OPC_CheckType, MVT::i32, ++/*136365*/ OPC_MoveParent, ++/*136366*/ OPC_MoveChild, 13, ++/*136368*/ OPC_CheckInteger, 1, ++/*136370*/ OPC_CheckType, MVT::i32, ++/*136372*/ OPC_MoveParent, ++/*136373*/ OPC_MoveChild, 14, ++/*136375*/ OPC_CheckInteger, 1, ++/*136377*/ OPC_CheckType, MVT::i32, ++/*136379*/ OPC_MoveParent, ++/*136380*/ OPC_MoveChild, 15, ++/*136382*/ OPC_CheckInteger, 1, ++/*136384*/ OPC_CheckType, MVT::i32, ++/*136386*/ OPC_MoveParent, ++/*136387*/ OPC_MoveChild, 16, ++/*136389*/ OPC_CheckInteger, 1, ++/*136391*/ OPC_CheckType, MVT::i32, ++/*136393*/ OPC_MoveParent, ++/*136394*/ OPC_MoveChild, 17, ++/*136396*/ OPC_CheckInteger, 1, ++/*136398*/ OPC_CheckType, MVT::i32, ++/*136400*/ OPC_MoveParent, ++/*136401*/ OPC_MoveChild, 18, ++/*136403*/ OPC_CheckInteger, 1, ++/*136405*/ OPC_CheckType, MVT::i32, ++/*136407*/ OPC_MoveParent, ++/*136408*/ OPC_MoveChild, 19, ++/*136410*/ OPC_CheckInteger, 1, ++/*136412*/ OPC_CheckType, MVT::i32, ++/*136414*/ OPC_MoveParent, ++/*136415*/ OPC_MoveChild, 20, ++/*136417*/ OPC_CheckInteger, 1, ++/*136419*/ OPC_CheckType, MVT::i32, ++/*136421*/ OPC_MoveParent, ++/*136422*/ OPC_MoveChild, 21, ++/*136424*/ OPC_CheckInteger, 1, ++/*136426*/ OPC_CheckType, MVT::i32, ++/*136428*/ OPC_MoveParent, ++/*136429*/ OPC_MoveChild, 22, ++/*136431*/ OPC_CheckInteger, 1, ++/*136433*/ OPC_CheckType, MVT::i32, ++/*136435*/ OPC_MoveParent, ++/*136436*/ OPC_MoveChild, 23, ++/*136438*/ OPC_CheckInteger, 1, ++/*136440*/ OPC_CheckType, MVT::i32, ++/*136442*/ OPC_MoveParent, ++/*136443*/ OPC_MoveChild, 24, ++/*136445*/ OPC_CheckInteger, 1, ++/*136447*/ OPC_CheckType, MVT::i32, ++/*136449*/ OPC_MoveParent, ++/*136450*/ OPC_MoveChild, 25, ++/*136452*/ OPC_CheckInteger, 1, ++/*136454*/ OPC_CheckType, MVT::i32, ++/*136456*/ OPC_MoveParent, ++/*136457*/ OPC_MoveChild, 26, ++/*136459*/ OPC_CheckInteger, 1, ++/*136461*/ OPC_CheckType, MVT::i32, ++/*136463*/ OPC_MoveParent, ++/*136464*/ OPC_MoveChild, 27, ++/*136466*/ OPC_CheckInteger, 1, ++/*136468*/ OPC_CheckType, MVT::i32, ++/*136470*/ OPC_MoveParent, ++/*136471*/ OPC_MoveChild, 28, ++/*136473*/ OPC_CheckInteger, 1, ++/*136475*/ OPC_CheckType, MVT::i32, ++/*136477*/ OPC_MoveParent, ++/*136478*/ OPC_MoveChild, 29, ++/*136480*/ OPC_CheckInteger, 1, ++/*136482*/ OPC_CheckType, MVT::i32, ++/*136484*/ OPC_MoveParent, ++/*136485*/ OPC_MoveChild, 30, ++/*136487*/ OPC_CheckInteger, 1, ++/*136489*/ OPC_CheckType, MVT::i32, ++/*136491*/ OPC_MoveParent, ++/*136492*/ OPC_MoveChild, 31, ++/*136494*/ OPC_CheckInteger, 1, ++/*136496*/ OPC_CheckType, MVT::i32, ++/*136498*/ OPC_MoveParent, ++/*136499*/ OPC_MoveParent, ++/*136500*/ OPC_MoveParent, ++/*136501*/ OPC_MoveParent, ++/*136502*/ OPC_MoveChild1, ++/*136503*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*136506*/ OPC_MoveChild0, ++/*136507*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*136510*/ OPC_Scope, 120|128,30/*3960*/, /*->140473*/ // 4 children in Scope ++/*136513*/ OPC_MoveChild0, ++/*136514*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*136517*/ OPC_Scope, 17|128,5/*657*/, /*->137177*/ // 6 children in Scope ++/*136520*/ OPC_MoveChild0, ++/*136521*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*136524*/ OPC_CheckChild0Integer, 1, ++/*136526*/ OPC_CheckChild0Type, MVT::i32, ++/*136528*/ OPC_CheckChild1Integer, 1, ++/*136530*/ OPC_CheckChild1Type, MVT::i32, ++/*136532*/ OPC_CheckChild2Integer, 1, ++/*136534*/ OPC_CheckChild2Type, MVT::i32, ++/*136536*/ OPC_CheckChild3Integer, 1, ++/*136538*/ OPC_CheckChild3Type, MVT::i32, ++/*136540*/ OPC_CheckChild4Integer, 1, ++/*136542*/ OPC_CheckChild4Type, MVT::i32, ++/*136544*/ OPC_MoveChild5, ++/*136545*/ OPC_CheckInteger, 1, ++/*136547*/ OPC_CheckType, MVT::i32, ++/*136549*/ OPC_MoveParent, ++/*136550*/ OPC_MoveChild6, ++/*136551*/ OPC_CheckInteger, 1, ++/*136553*/ OPC_CheckType, MVT::i32, ++/*136555*/ OPC_MoveParent, ++/*136556*/ OPC_MoveChild7, ++/*136557*/ OPC_CheckInteger, 1, ++/*136559*/ OPC_CheckType, MVT::i32, ++/*136561*/ OPC_MoveParent, ++/*136562*/ OPC_MoveChild, 8, ++/*136564*/ OPC_CheckInteger, 1, ++/*136566*/ OPC_CheckType, MVT::i32, ++/*136568*/ OPC_MoveParent, ++/*136569*/ OPC_MoveChild, 9, ++/*136571*/ OPC_CheckInteger, 1, ++/*136573*/ OPC_CheckType, MVT::i32, ++/*136575*/ OPC_MoveParent, ++/*136576*/ OPC_MoveChild, 10, ++/*136578*/ OPC_CheckInteger, 1, ++/*136580*/ OPC_CheckType, MVT::i32, ++/*136582*/ OPC_MoveParent, ++/*136583*/ OPC_MoveChild, 11, ++/*136585*/ OPC_CheckInteger, 1, ++/*136587*/ OPC_CheckType, MVT::i32, ++/*136589*/ OPC_MoveParent, ++/*136590*/ OPC_MoveChild, 12, ++/*136592*/ OPC_CheckInteger, 1, ++/*136594*/ OPC_CheckType, MVT::i32, ++/*136596*/ OPC_MoveParent, ++/*136597*/ OPC_MoveChild, 13, ++/*136599*/ OPC_CheckInteger, 1, ++/*136601*/ OPC_CheckType, MVT::i32, ++/*136603*/ OPC_MoveParent, ++/*136604*/ OPC_MoveChild, 14, ++/*136606*/ OPC_CheckInteger, 1, ++/*136608*/ OPC_CheckType, MVT::i32, ++/*136610*/ OPC_MoveParent, ++/*136611*/ OPC_MoveChild, 15, ++/*136613*/ OPC_CheckInteger, 1, ++/*136615*/ OPC_CheckType, MVT::i32, ++/*136617*/ OPC_MoveParent, ++/*136618*/ OPC_MoveChild, 16, ++/*136620*/ OPC_CheckInteger, 1, ++/*136622*/ OPC_CheckType, MVT::i32, ++/*136624*/ OPC_MoveParent, ++/*136625*/ OPC_MoveChild, 17, ++/*136627*/ OPC_CheckInteger, 1, ++/*136629*/ OPC_CheckType, MVT::i32, ++/*136631*/ OPC_MoveParent, ++/*136632*/ OPC_MoveChild, 18, ++/*136634*/ OPC_CheckInteger, 1, ++/*136636*/ OPC_CheckType, MVT::i32, ++/*136638*/ OPC_MoveParent, ++/*136639*/ OPC_MoveChild, 19, ++/*136641*/ OPC_CheckInteger, 1, ++/*136643*/ OPC_CheckType, MVT::i32, ++/*136645*/ OPC_MoveParent, ++/*136646*/ OPC_MoveChild, 20, ++/*136648*/ OPC_CheckInteger, 1, ++/*136650*/ OPC_CheckType, MVT::i32, ++/*136652*/ OPC_MoveParent, ++/*136653*/ OPC_MoveChild, 21, ++/*136655*/ OPC_CheckInteger, 1, ++/*136657*/ OPC_CheckType, MVT::i32, ++/*136659*/ OPC_MoveParent, ++/*136660*/ OPC_MoveChild, 22, ++/*136662*/ OPC_CheckInteger, 1, ++/*136664*/ OPC_CheckType, MVT::i32, ++/*136666*/ OPC_MoveParent, ++/*136667*/ OPC_MoveChild, 23, ++/*136669*/ OPC_CheckInteger, 1, ++/*136671*/ OPC_CheckType, MVT::i32, ++/*136673*/ OPC_MoveParent, ++/*136674*/ OPC_MoveChild, 24, ++/*136676*/ OPC_CheckInteger, 1, ++/*136678*/ OPC_CheckType, MVT::i32, ++/*136680*/ OPC_MoveParent, ++/*136681*/ OPC_MoveChild, 25, ++/*136683*/ OPC_CheckInteger, 1, ++/*136685*/ OPC_CheckType, MVT::i32, ++/*136687*/ OPC_MoveParent, ++/*136688*/ OPC_MoveChild, 26, ++/*136690*/ OPC_CheckInteger, 1, ++/*136692*/ OPC_CheckType, MVT::i32, ++/*136694*/ OPC_MoveParent, ++/*136695*/ OPC_MoveChild, 27, ++/*136697*/ OPC_CheckInteger, 1, ++/*136699*/ OPC_CheckType, MVT::i32, ++/*136701*/ OPC_MoveParent, ++/*136702*/ OPC_MoveChild, 28, ++/*136704*/ OPC_CheckInteger, 1, ++/*136706*/ OPC_CheckType, MVT::i32, ++/*136708*/ OPC_MoveParent, ++/*136709*/ OPC_MoveChild, 29, ++/*136711*/ OPC_CheckInteger, 1, ++/*136713*/ OPC_CheckType, MVT::i32, ++/*136715*/ OPC_MoveParent, ++/*136716*/ OPC_MoveChild, 30, ++/*136718*/ OPC_CheckInteger, 1, ++/*136720*/ OPC_CheckType, MVT::i32, ++/*136722*/ OPC_MoveParent, ++/*136723*/ OPC_MoveChild, 31, ++/*136725*/ OPC_CheckInteger, 1, ++/*136727*/ OPC_CheckType, MVT::i32, ++/*136729*/ OPC_MoveParent, ++/*136730*/ OPC_MoveParent, ++/*136731*/ OPC_CheckChild1Same, 1, ++/*136733*/ OPC_MoveParent, ++/*136734*/ OPC_CheckChild1Same, 0, ++/*136736*/ OPC_MoveParent, ++/*136737*/ OPC_MoveChild1, ++/*136738*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*136741*/ OPC_CheckChild0Integer, 7, ++/*136743*/ OPC_CheckChild0Type, MVT::i32, ++/*136745*/ OPC_CheckChild1Integer, 7, ++/*136747*/ OPC_CheckChild1Type, MVT::i32, ++/*136749*/ OPC_CheckChild2Integer, 7, ++/*136751*/ OPC_CheckChild2Type, MVT::i32, ++/*136753*/ OPC_CheckChild3Integer, 7, ++/*136755*/ OPC_CheckChild3Type, MVT::i32, ++/*136757*/ OPC_CheckChild4Integer, 7, ++/*136759*/ OPC_CheckChild4Type, MVT::i32, ++/*136761*/ OPC_MoveChild5, ++/*136762*/ OPC_CheckInteger, 7, ++/*136764*/ OPC_CheckType, MVT::i32, ++/*136766*/ OPC_MoveParent, ++/*136767*/ OPC_MoveChild6, ++/*136768*/ OPC_CheckInteger, 7, ++/*136770*/ OPC_CheckType, MVT::i32, ++/*136772*/ OPC_MoveParent, ++/*136773*/ OPC_MoveChild7, ++/*136774*/ OPC_CheckInteger, 7, ++/*136776*/ OPC_CheckType, MVT::i32, ++/*136778*/ OPC_MoveParent, ++/*136779*/ OPC_MoveChild, 8, ++/*136781*/ OPC_CheckInteger, 7, ++/*136783*/ OPC_CheckType, MVT::i32, ++/*136785*/ OPC_MoveParent, ++/*136786*/ OPC_MoveChild, 9, ++/*136788*/ OPC_CheckInteger, 7, ++/*136790*/ OPC_CheckType, MVT::i32, ++/*136792*/ OPC_MoveParent, ++/*136793*/ OPC_MoveChild, 10, ++/*136795*/ OPC_CheckInteger, 7, ++/*136797*/ OPC_CheckType, MVT::i32, ++/*136799*/ OPC_MoveParent, ++/*136800*/ OPC_MoveChild, 11, ++/*136802*/ OPC_CheckInteger, 7, ++/*136804*/ OPC_CheckType, MVT::i32, ++/*136806*/ OPC_MoveParent, ++/*136807*/ OPC_MoveChild, 12, ++/*136809*/ OPC_CheckInteger, 7, ++/*136811*/ OPC_CheckType, MVT::i32, ++/*136813*/ OPC_MoveParent, ++/*136814*/ OPC_MoveChild, 13, ++/*136816*/ OPC_CheckInteger, 7, ++/*136818*/ OPC_CheckType, MVT::i32, ++/*136820*/ OPC_MoveParent, ++/*136821*/ OPC_MoveChild, 14, ++/*136823*/ OPC_CheckInteger, 7, ++/*136825*/ OPC_CheckType, MVT::i32, ++/*136827*/ OPC_MoveParent, ++/*136828*/ OPC_MoveChild, 15, ++/*136830*/ OPC_CheckInteger, 7, ++/*136832*/ OPC_CheckType, MVT::i32, ++/*136834*/ OPC_MoveParent, ++/*136835*/ OPC_MoveChild, 16, ++/*136837*/ OPC_CheckInteger, 7, ++/*136839*/ OPC_CheckType, MVT::i32, ++/*136841*/ OPC_MoveParent, ++/*136842*/ OPC_MoveChild, 17, ++/*136844*/ OPC_CheckInteger, 7, ++/*136846*/ OPC_CheckType, MVT::i32, ++/*136848*/ OPC_MoveParent, ++/*136849*/ OPC_MoveChild, 18, ++/*136851*/ OPC_CheckInteger, 7, ++/*136853*/ OPC_CheckType, MVT::i32, ++/*136855*/ OPC_MoveParent, ++/*136856*/ OPC_MoveChild, 19, ++/*136858*/ OPC_CheckInteger, 7, ++/*136860*/ OPC_CheckType, MVT::i32, ++/*136862*/ OPC_MoveParent, ++/*136863*/ OPC_MoveChild, 20, ++/*136865*/ OPC_CheckInteger, 7, ++/*136867*/ OPC_CheckType, MVT::i32, ++/*136869*/ OPC_MoveParent, ++/*136870*/ OPC_MoveChild, 21, ++/*136872*/ OPC_CheckInteger, 7, ++/*136874*/ OPC_CheckType, MVT::i32, ++/*136876*/ OPC_MoveParent, ++/*136877*/ OPC_MoveChild, 22, ++/*136879*/ OPC_CheckInteger, 7, ++/*136881*/ OPC_CheckType, MVT::i32, ++/*136883*/ OPC_MoveParent, ++/*136884*/ OPC_MoveChild, 23, ++/*136886*/ OPC_CheckInteger, 7, ++/*136888*/ OPC_CheckType, MVT::i32, ++/*136890*/ OPC_MoveParent, ++/*136891*/ OPC_MoveChild, 24, ++/*136893*/ OPC_CheckInteger, 7, ++/*136895*/ OPC_CheckType, MVT::i32, ++/*136897*/ OPC_MoveParent, ++/*136898*/ OPC_MoveChild, 25, ++/*136900*/ OPC_CheckInteger, 7, ++/*136902*/ OPC_CheckType, MVT::i32, ++/*136904*/ OPC_MoveParent, ++/*136905*/ OPC_MoveChild, 26, ++/*136907*/ OPC_CheckInteger, 7, ++/*136909*/ OPC_CheckType, MVT::i32, ++/*136911*/ OPC_MoveParent, ++/*136912*/ OPC_MoveChild, 27, ++/*136914*/ OPC_CheckInteger, 7, ++/*136916*/ OPC_CheckType, MVT::i32, ++/*136918*/ OPC_MoveParent, ++/*136919*/ OPC_MoveChild, 28, ++/*136921*/ OPC_CheckInteger, 7, ++/*136923*/ OPC_CheckType, MVT::i32, ++/*136925*/ OPC_MoveParent, ++/*136926*/ OPC_MoveChild, 29, ++/*136928*/ OPC_CheckInteger, 7, ++/*136930*/ OPC_CheckType, MVT::i32, ++/*136932*/ OPC_MoveParent, ++/*136933*/ OPC_MoveChild, 30, ++/*136935*/ OPC_CheckInteger, 7, ++/*136937*/ OPC_CheckType, MVT::i32, ++/*136939*/ OPC_MoveParent, ++/*136940*/ OPC_MoveChild, 31, ++/*136942*/ OPC_CheckInteger, 7, ++/*136944*/ OPC_CheckType, MVT::i32, ++/*136946*/ OPC_MoveParent, ++/*136947*/ OPC_CheckType, MVT::v32i8, ++/*136949*/ OPC_MoveParent, ++/*136950*/ OPC_MoveParent, ++/*136951*/ OPC_MoveParent, ++/*136952*/ OPC_MoveChild1, ++/*136953*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*136956*/ OPC_CheckChild0Integer, 1, ++/*136958*/ OPC_CheckChild0Type, MVT::i32, ++/*136960*/ OPC_CheckChild1Integer, 1, ++/*136962*/ OPC_CheckChild1Type, MVT::i32, ++/*136964*/ OPC_CheckChild2Integer, 1, ++/*136966*/ OPC_CheckChild2Type, MVT::i32, ++/*136968*/ OPC_CheckChild3Integer, 1, ++/*136970*/ OPC_CheckChild3Type, MVT::i32, ++/*136972*/ OPC_CheckChild4Integer, 1, ++/*136974*/ OPC_CheckChild4Type, MVT::i32, ++/*136976*/ OPC_MoveChild5, ++/*136977*/ OPC_CheckInteger, 1, ++/*136979*/ OPC_CheckType, MVT::i32, ++/*136981*/ OPC_MoveParent, ++/*136982*/ OPC_MoveChild6, ++/*136983*/ OPC_CheckInteger, 1, ++/*136985*/ OPC_CheckType, MVT::i32, ++/*136987*/ OPC_MoveParent, ++/*136988*/ OPC_MoveChild7, ++/*136989*/ OPC_CheckInteger, 1, ++/*136991*/ OPC_CheckType, MVT::i32, ++/*136993*/ OPC_MoveParent, ++/*136994*/ OPC_MoveChild, 8, ++/*136996*/ OPC_CheckInteger, 1, ++/*136998*/ OPC_CheckType, MVT::i32, ++/*137000*/ OPC_MoveParent, ++/*137001*/ OPC_MoveChild, 9, ++/*137003*/ OPC_CheckInteger, 1, ++/*137005*/ OPC_CheckType, MVT::i32, ++/*137007*/ OPC_MoveParent, ++/*137008*/ OPC_MoveChild, 10, ++/*137010*/ OPC_CheckInteger, 1, ++/*137012*/ OPC_CheckType, MVT::i32, ++/*137014*/ OPC_MoveParent, ++/*137015*/ OPC_MoveChild, 11, ++/*137017*/ OPC_CheckInteger, 1, ++/*137019*/ OPC_CheckType, MVT::i32, ++/*137021*/ OPC_MoveParent, ++/*137022*/ OPC_MoveChild, 12, ++/*137024*/ OPC_CheckInteger, 1, ++/*137026*/ OPC_CheckType, MVT::i32, ++/*137028*/ OPC_MoveParent, ++/*137029*/ OPC_MoveChild, 13, ++/*137031*/ OPC_CheckInteger, 1, ++/*137033*/ OPC_CheckType, MVT::i32, ++/*137035*/ OPC_MoveParent, ++/*137036*/ OPC_MoveChild, 14, ++/*137038*/ OPC_CheckInteger, 1, ++/*137040*/ OPC_CheckType, MVT::i32, ++/*137042*/ OPC_MoveParent, ++/*137043*/ OPC_MoveChild, 15, ++/*137045*/ OPC_CheckInteger, 1, ++/*137047*/ OPC_CheckType, MVT::i32, ++/*137049*/ OPC_MoveParent, ++/*137050*/ OPC_MoveChild, 16, ++/*137052*/ OPC_CheckInteger, 1, ++/*137054*/ OPC_CheckType, MVT::i32, ++/*137056*/ OPC_MoveParent, ++/*137057*/ OPC_MoveChild, 17, ++/*137059*/ OPC_CheckInteger, 1, ++/*137061*/ OPC_CheckType, MVT::i32, ++/*137063*/ OPC_MoveParent, ++/*137064*/ OPC_MoveChild, 18, ++/*137066*/ OPC_CheckInteger, 1, ++/*137068*/ OPC_CheckType, MVT::i32, ++/*137070*/ OPC_MoveParent, ++/*137071*/ OPC_MoveChild, 19, ++/*137073*/ OPC_CheckInteger, 1, ++/*137075*/ OPC_CheckType, MVT::i32, ++/*137077*/ OPC_MoveParent, ++/*137078*/ OPC_MoveChild, 20, ++/*137080*/ OPC_CheckInteger, 1, ++/*137082*/ OPC_CheckType, MVT::i32, ++/*137084*/ OPC_MoveParent, ++/*137085*/ OPC_MoveChild, 21, ++/*137087*/ OPC_CheckInteger, 1, ++/*137089*/ OPC_CheckType, MVT::i32, ++/*137091*/ OPC_MoveParent, ++/*137092*/ OPC_MoveChild, 22, ++/*137094*/ OPC_CheckInteger, 1, ++/*137096*/ OPC_CheckType, MVT::i32, ++/*137098*/ OPC_MoveParent, ++/*137099*/ OPC_MoveChild, 23, ++/*137101*/ OPC_CheckInteger, 1, ++/*137103*/ OPC_CheckType, MVT::i32, ++/*137105*/ OPC_MoveParent, ++/*137106*/ OPC_MoveChild, 24, ++/*137108*/ OPC_CheckInteger, 1, ++/*137110*/ OPC_CheckType, MVT::i32, ++/*137112*/ OPC_MoveParent, ++/*137113*/ OPC_MoveChild, 25, ++/*137115*/ OPC_CheckInteger, 1, ++/*137117*/ OPC_CheckType, MVT::i32, ++/*137119*/ OPC_MoveParent, ++/*137120*/ OPC_MoveChild, 26, ++/*137122*/ OPC_CheckInteger, 1, ++/*137124*/ OPC_CheckType, MVT::i32, ++/*137126*/ OPC_MoveParent, ++/*137127*/ OPC_MoveChild, 27, ++/*137129*/ OPC_CheckInteger, 1, ++/*137131*/ OPC_CheckType, MVT::i32, ++/*137133*/ OPC_MoveParent, ++/*137134*/ OPC_MoveChild, 28, ++/*137136*/ OPC_CheckInteger, 1, ++/*137138*/ OPC_CheckType, MVT::i32, ++/*137140*/ OPC_MoveParent, ++/*137141*/ OPC_MoveChild, 29, ++/*137143*/ OPC_CheckInteger, 1, ++/*137145*/ OPC_CheckType, MVT::i32, ++/*137147*/ OPC_MoveParent, ++/*137148*/ OPC_MoveChild, 30, ++/*137150*/ OPC_CheckInteger, 1, ++/*137152*/ OPC_CheckType, MVT::i32, ++/*137154*/ OPC_MoveParent, ++/*137155*/ OPC_MoveChild, 31, ++/*137157*/ OPC_CheckInteger, 1, ++/*137159*/ OPC_CheckType, MVT::i32, ++/*137161*/ OPC_MoveParent, ++/*137162*/ OPC_CheckType, MVT::v32i8, ++/*137164*/ OPC_MoveParent, ++/*137165*/ OPC_CheckType, MVT::v32i8, ++/*137167*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*137169*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a), LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*137177*/ /*Scope*/ 17|128,5/*657*/, /*->137836*/ ++/*137179*/ OPC_CheckChild0Same, 1, ++/*137181*/ OPC_MoveChild1, ++/*137182*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*137185*/ OPC_CheckChild0Integer, 1, ++/*137187*/ OPC_CheckChild0Type, MVT::i32, ++/*137189*/ OPC_CheckChild1Integer, 1, ++/*137191*/ OPC_CheckChild1Type, MVT::i32, ++/*137193*/ OPC_CheckChild2Integer, 1, ++/*137195*/ OPC_CheckChild2Type, MVT::i32, ++/*137197*/ OPC_CheckChild3Integer, 1, ++/*137199*/ OPC_CheckChild3Type, MVT::i32, ++/*137201*/ OPC_CheckChild4Integer, 1, ++/*137203*/ OPC_CheckChild4Type, MVT::i32, ++/*137205*/ OPC_MoveChild5, ++/*137206*/ OPC_CheckInteger, 1, ++/*137208*/ OPC_CheckType, MVT::i32, ++/*137210*/ OPC_MoveParent, ++/*137211*/ OPC_MoveChild6, ++/*137212*/ OPC_CheckInteger, 1, ++/*137214*/ OPC_CheckType, MVT::i32, ++/*137216*/ OPC_MoveParent, ++/*137217*/ OPC_MoveChild7, ++/*137218*/ OPC_CheckInteger, 1, ++/*137220*/ OPC_CheckType, MVT::i32, ++/*137222*/ OPC_MoveParent, ++/*137223*/ OPC_MoveChild, 8, ++/*137225*/ OPC_CheckInteger, 1, ++/*137227*/ OPC_CheckType, MVT::i32, ++/*137229*/ OPC_MoveParent, ++/*137230*/ OPC_MoveChild, 9, ++/*137232*/ OPC_CheckInteger, 1, ++/*137234*/ OPC_CheckType, MVT::i32, ++/*137236*/ OPC_MoveParent, ++/*137237*/ OPC_MoveChild, 10, ++/*137239*/ OPC_CheckInteger, 1, ++/*137241*/ OPC_CheckType, MVT::i32, ++/*137243*/ OPC_MoveParent, ++/*137244*/ OPC_MoveChild, 11, ++/*137246*/ OPC_CheckInteger, 1, ++/*137248*/ OPC_CheckType, MVT::i32, ++/*137250*/ OPC_MoveParent, ++/*137251*/ OPC_MoveChild, 12, ++/*137253*/ OPC_CheckInteger, 1, ++/*137255*/ OPC_CheckType, MVT::i32, ++/*137257*/ OPC_MoveParent, ++/*137258*/ OPC_MoveChild, 13, ++/*137260*/ OPC_CheckInteger, 1, ++/*137262*/ OPC_CheckType, MVT::i32, ++/*137264*/ OPC_MoveParent, ++/*137265*/ OPC_MoveChild, 14, ++/*137267*/ OPC_CheckInteger, 1, ++/*137269*/ OPC_CheckType, MVT::i32, ++/*137271*/ OPC_MoveParent, ++/*137272*/ OPC_MoveChild, 15, ++/*137274*/ OPC_CheckInteger, 1, ++/*137276*/ OPC_CheckType, MVT::i32, ++/*137278*/ OPC_MoveParent, ++/*137279*/ OPC_MoveChild, 16, ++/*137281*/ OPC_CheckInteger, 1, ++/*137283*/ OPC_CheckType, MVT::i32, ++/*137285*/ OPC_MoveParent, ++/*137286*/ OPC_MoveChild, 17, ++/*137288*/ OPC_CheckInteger, 1, ++/*137290*/ OPC_CheckType, MVT::i32, ++/*137292*/ OPC_MoveParent, ++/*137293*/ OPC_MoveChild, 18, ++/*137295*/ OPC_CheckInteger, 1, ++/*137297*/ OPC_CheckType, MVT::i32, ++/*137299*/ OPC_MoveParent, ++/*137300*/ OPC_MoveChild, 19, ++/*137302*/ OPC_CheckInteger, 1, ++/*137304*/ OPC_CheckType, MVT::i32, ++/*137306*/ OPC_MoveParent, ++/*137307*/ OPC_MoveChild, 20, ++/*137309*/ OPC_CheckInteger, 1, ++/*137311*/ OPC_CheckType, MVT::i32, ++/*137313*/ OPC_MoveParent, ++/*137314*/ OPC_MoveChild, 21, ++/*137316*/ OPC_CheckInteger, 1, ++/*137318*/ OPC_CheckType, MVT::i32, ++/*137320*/ OPC_MoveParent, ++/*137321*/ OPC_MoveChild, 22, ++/*137323*/ OPC_CheckInteger, 1, ++/*137325*/ OPC_CheckType, MVT::i32, ++/*137327*/ OPC_MoveParent, ++/*137328*/ OPC_MoveChild, 23, ++/*137330*/ OPC_CheckInteger, 1, ++/*137332*/ OPC_CheckType, MVT::i32, ++/*137334*/ OPC_MoveParent, ++/*137335*/ OPC_MoveChild, 24, ++/*137337*/ OPC_CheckInteger, 1, ++/*137339*/ OPC_CheckType, MVT::i32, ++/*137341*/ OPC_MoveParent, ++/*137342*/ OPC_MoveChild, 25, ++/*137344*/ OPC_CheckInteger, 1, ++/*137346*/ OPC_CheckType, MVT::i32, ++/*137348*/ OPC_MoveParent, ++/*137349*/ OPC_MoveChild, 26, ++/*137351*/ OPC_CheckInteger, 1, ++/*137353*/ OPC_CheckType, MVT::i32, ++/*137355*/ OPC_MoveParent, ++/*137356*/ OPC_MoveChild, 27, ++/*137358*/ OPC_CheckInteger, 1, ++/*137360*/ OPC_CheckType, MVT::i32, ++/*137362*/ OPC_MoveParent, ++/*137363*/ OPC_MoveChild, 28, ++/*137365*/ OPC_CheckInteger, 1, ++/*137367*/ OPC_CheckType, MVT::i32, ++/*137369*/ OPC_MoveParent, ++/*137370*/ OPC_MoveChild, 29, ++/*137372*/ OPC_CheckInteger, 1, ++/*137374*/ OPC_CheckType, MVT::i32, ++/*137376*/ OPC_MoveParent, ++/*137377*/ OPC_MoveChild, 30, ++/*137379*/ OPC_CheckInteger, 1, ++/*137381*/ OPC_CheckType, MVT::i32, ++/*137383*/ OPC_MoveParent, ++/*137384*/ OPC_MoveChild, 31, ++/*137386*/ OPC_CheckInteger, 1, ++/*137388*/ OPC_CheckType, MVT::i32, ++/*137390*/ OPC_MoveParent, ++/*137391*/ OPC_MoveParent, ++/*137392*/ OPC_MoveParent, ++/*137393*/ OPC_CheckChild1Same, 0, ++/*137395*/ OPC_MoveParent, ++/*137396*/ OPC_MoveChild1, ++/*137397*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*137400*/ OPC_CheckChild0Integer, 7, ++/*137402*/ OPC_CheckChild0Type, MVT::i32, ++/*137404*/ OPC_CheckChild1Integer, 7, ++/*137406*/ OPC_CheckChild1Type, MVT::i32, ++/*137408*/ OPC_CheckChild2Integer, 7, ++/*137410*/ OPC_CheckChild2Type, MVT::i32, ++/*137412*/ OPC_CheckChild3Integer, 7, ++/*137414*/ OPC_CheckChild3Type, MVT::i32, ++/*137416*/ OPC_CheckChild4Integer, 7, ++/*137418*/ OPC_CheckChild4Type, MVT::i32, ++/*137420*/ OPC_MoveChild5, ++/*137421*/ OPC_CheckInteger, 7, ++/*137423*/ OPC_CheckType, MVT::i32, ++/*137425*/ OPC_MoveParent, ++/*137426*/ OPC_MoveChild6, ++/*137427*/ OPC_CheckInteger, 7, ++/*137429*/ OPC_CheckType, MVT::i32, ++/*137431*/ OPC_MoveParent, ++/*137432*/ OPC_MoveChild7, ++/*137433*/ OPC_CheckInteger, 7, ++/*137435*/ OPC_CheckType, MVT::i32, ++/*137437*/ OPC_MoveParent, ++/*137438*/ OPC_MoveChild, 8, ++/*137440*/ OPC_CheckInteger, 7, ++/*137442*/ OPC_CheckType, MVT::i32, ++/*137444*/ OPC_MoveParent, ++/*137445*/ OPC_MoveChild, 9, ++/*137447*/ OPC_CheckInteger, 7, ++/*137449*/ OPC_CheckType, MVT::i32, ++/*137451*/ OPC_MoveParent, ++/*137452*/ OPC_MoveChild, 10, ++/*137454*/ OPC_CheckInteger, 7, ++/*137456*/ OPC_CheckType, MVT::i32, ++/*137458*/ OPC_MoveParent, ++/*137459*/ OPC_MoveChild, 11, ++/*137461*/ OPC_CheckInteger, 7, ++/*137463*/ OPC_CheckType, MVT::i32, ++/*137465*/ OPC_MoveParent, ++/*137466*/ OPC_MoveChild, 12, ++/*137468*/ OPC_CheckInteger, 7, ++/*137470*/ OPC_CheckType, MVT::i32, ++/*137472*/ OPC_MoveParent, ++/*137473*/ OPC_MoveChild, 13, ++/*137475*/ OPC_CheckInteger, 7, ++/*137477*/ OPC_CheckType, MVT::i32, ++/*137479*/ OPC_MoveParent, ++/*137480*/ OPC_MoveChild, 14, ++/*137482*/ OPC_CheckInteger, 7, ++/*137484*/ OPC_CheckType, MVT::i32, ++/*137486*/ OPC_MoveParent, ++/*137487*/ OPC_MoveChild, 15, ++/*137489*/ OPC_CheckInteger, 7, ++/*137491*/ OPC_CheckType, MVT::i32, ++/*137493*/ OPC_MoveParent, ++/*137494*/ OPC_MoveChild, 16, ++/*137496*/ OPC_CheckInteger, 7, ++/*137498*/ OPC_CheckType, MVT::i32, ++/*137500*/ OPC_MoveParent, ++/*137501*/ OPC_MoveChild, 17, ++/*137503*/ OPC_CheckInteger, 7, ++/*137505*/ OPC_CheckType, MVT::i32, ++/*137507*/ OPC_MoveParent, ++/*137508*/ OPC_MoveChild, 18, ++/*137510*/ OPC_CheckInteger, 7, ++/*137512*/ OPC_CheckType, MVT::i32, ++/*137514*/ OPC_MoveParent, ++/*137515*/ OPC_MoveChild, 19, ++/*137517*/ OPC_CheckInteger, 7, ++/*137519*/ OPC_CheckType, MVT::i32, ++/*137521*/ OPC_MoveParent, ++/*137522*/ OPC_MoveChild, 20, ++/*137524*/ OPC_CheckInteger, 7, ++/*137526*/ OPC_CheckType, MVT::i32, ++/*137528*/ OPC_MoveParent, ++/*137529*/ OPC_MoveChild, 21, ++/*137531*/ OPC_CheckInteger, 7, ++/*137533*/ OPC_CheckType, MVT::i32, ++/*137535*/ OPC_MoveParent, ++/*137536*/ OPC_MoveChild, 22, ++/*137538*/ OPC_CheckInteger, 7, ++/*137540*/ OPC_CheckType, MVT::i32, ++/*137542*/ OPC_MoveParent, ++/*137543*/ OPC_MoveChild, 23, ++/*137545*/ OPC_CheckInteger, 7, ++/*137547*/ OPC_CheckType, MVT::i32, ++/*137549*/ OPC_MoveParent, ++/*137550*/ OPC_MoveChild, 24, ++/*137552*/ OPC_CheckInteger, 7, ++/*137554*/ OPC_CheckType, MVT::i32, ++/*137556*/ OPC_MoveParent, ++/*137557*/ OPC_MoveChild, 25, ++/*137559*/ OPC_CheckInteger, 7, ++/*137561*/ OPC_CheckType, MVT::i32, ++/*137563*/ OPC_MoveParent, ++/*137564*/ OPC_MoveChild, 26, ++/*137566*/ OPC_CheckInteger, 7, ++/*137568*/ OPC_CheckType, MVT::i32, ++/*137570*/ OPC_MoveParent, ++/*137571*/ OPC_MoveChild, 27, ++/*137573*/ OPC_CheckInteger, 7, ++/*137575*/ OPC_CheckType, MVT::i32, ++/*137577*/ OPC_MoveParent, ++/*137578*/ OPC_MoveChild, 28, ++/*137580*/ OPC_CheckInteger, 7, ++/*137582*/ OPC_CheckType, MVT::i32, ++/*137584*/ OPC_MoveParent, ++/*137585*/ OPC_MoveChild, 29, ++/*137587*/ OPC_CheckInteger, 7, ++/*137589*/ OPC_CheckType, MVT::i32, ++/*137591*/ OPC_MoveParent, ++/*137592*/ OPC_MoveChild, 30, ++/*137594*/ OPC_CheckInteger, 7, ++/*137596*/ OPC_CheckType, MVT::i32, ++/*137598*/ OPC_MoveParent, ++/*137599*/ OPC_MoveChild, 31, ++/*137601*/ OPC_CheckInteger, 7, ++/*137603*/ OPC_CheckType, MVT::i32, ++/*137605*/ OPC_MoveParent, ++/*137606*/ OPC_CheckType, MVT::v32i8, ++/*137608*/ OPC_MoveParent, ++/*137609*/ OPC_MoveParent, ++/*137610*/ OPC_MoveParent, ++/*137611*/ OPC_MoveChild1, ++/*137612*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*137615*/ OPC_CheckChild0Integer, 1, ++/*137617*/ OPC_CheckChild0Type, MVT::i32, ++/*137619*/ OPC_CheckChild1Integer, 1, ++/*137621*/ OPC_CheckChild1Type, MVT::i32, ++/*137623*/ OPC_CheckChild2Integer, 1, ++/*137625*/ OPC_CheckChild2Type, MVT::i32, ++/*137627*/ OPC_CheckChild3Integer, 1, ++/*137629*/ OPC_CheckChild3Type, MVT::i32, ++/*137631*/ OPC_CheckChild4Integer, 1, ++/*137633*/ OPC_CheckChild4Type, MVT::i32, ++/*137635*/ OPC_MoveChild5, ++/*137636*/ OPC_CheckInteger, 1, ++/*137638*/ OPC_CheckType, MVT::i32, ++/*137640*/ OPC_MoveParent, ++/*137641*/ OPC_MoveChild6, ++/*137642*/ OPC_CheckInteger, 1, ++/*137644*/ OPC_CheckType, MVT::i32, ++/*137646*/ OPC_MoveParent, ++/*137647*/ OPC_MoveChild7, ++/*137648*/ OPC_CheckInteger, 1, ++/*137650*/ OPC_CheckType, MVT::i32, ++/*137652*/ OPC_MoveParent, ++/*137653*/ OPC_MoveChild, 8, ++/*137655*/ OPC_CheckInteger, 1, ++/*137657*/ OPC_CheckType, MVT::i32, ++/*137659*/ OPC_MoveParent, ++/*137660*/ OPC_MoveChild, 9, ++/*137662*/ OPC_CheckInteger, 1, ++/*137664*/ OPC_CheckType, MVT::i32, ++/*137666*/ OPC_MoveParent, ++/*137667*/ OPC_MoveChild, 10, ++/*137669*/ OPC_CheckInteger, 1, ++/*137671*/ OPC_CheckType, MVT::i32, ++/*137673*/ OPC_MoveParent, ++/*137674*/ OPC_MoveChild, 11, ++/*137676*/ OPC_CheckInteger, 1, ++/*137678*/ OPC_CheckType, MVT::i32, ++/*137680*/ OPC_MoveParent, ++/*137681*/ OPC_MoveChild, 12, ++/*137683*/ OPC_CheckInteger, 1, ++/*137685*/ OPC_CheckType, MVT::i32, ++/*137687*/ OPC_MoveParent, ++/*137688*/ OPC_MoveChild, 13, ++/*137690*/ OPC_CheckInteger, 1, ++/*137692*/ OPC_CheckType, MVT::i32, ++/*137694*/ OPC_MoveParent, ++/*137695*/ OPC_MoveChild, 14, ++/*137697*/ OPC_CheckInteger, 1, ++/*137699*/ OPC_CheckType, MVT::i32, ++/*137701*/ OPC_MoveParent, ++/*137702*/ OPC_MoveChild, 15, ++/*137704*/ OPC_CheckInteger, 1, ++/*137706*/ OPC_CheckType, MVT::i32, ++/*137708*/ OPC_MoveParent, ++/*137709*/ OPC_MoveChild, 16, ++/*137711*/ OPC_CheckInteger, 1, ++/*137713*/ OPC_CheckType, MVT::i32, ++/*137715*/ OPC_MoveParent, ++/*137716*/ OPC_MoveChild, 17, ++/*137718*/ OPC_CheckInteger, 1, ++/*137720*/ OPC_CheckType, MVT::i32, ++/*137722*/ OPC_MoveParent, ++/*137723*/ OPC_MoveChild, 18, ++/*137725*/ OPC_CheckInteger, 1, ++/*137727*/ OPC_CheckType, MVT::i32, ++/*137729*/ OPC_MoveParent, ++/*137730*/ OPC_MoveChild, 19, ++/*137732*/ OPC_CheckInteger, 1, ++/*137734*/ OPC_CheckType, MVT::i32, ++/*137736*/ OPC_MoveParent, ++/*137737*/ OPC_MoveChild, 20, ++/*137739*/ OPC_CheckInteger, 1, ++/*137741*/ OPC_CheckType, MVT::i32, ++/*137743*/ OPC_MoveParent, ++/*137744*/ OPC_MoveChild, 21, ++/*137746*/ OPC_CheckInteger, 1, ++/*137748*/ OPC_CheckType, MVT::i32, ++/*137750*/ OPC_MoveParent, ++/*137751*/ OPC_MoveChild, 22, ++/*137753*/ OPC_CheckInteger, 1, ++/*137755*/ OPC_CheckType, MVT::i32, ++/*137757*/ OPC_MoveParent, ++/*137758*/ OPC_MoveChild, 23, ++/*137760*/ OPC_CheckInteger, 1, ++/*137762*/ OPC_CheckType, MVT::i32, ++/*137764*/ OPC_MoveParent, ++/*137765*/ OPC_MoveChild, 24, ++/*137767*/ OPC_CheckInteger, 1, ++/*137769*/ OPC_CheckType, MVT::i32, ++/*137771*/ OPC_MoveParent, ++/*137772*/ OPC_MoveChild, 25, ++/*137774*/ OPC_CheckInteger, 1, ++/*137776*/ OPC_CheckType, MVT::i32, ++/*137778*/ OPC_MoveParent, ++/*137779*/ OPC_MoveChild, 26, ++/*137781*/ OPC_CheckInteger, 1, ++/*137783*/ OPC_CheckType, MVT::i32, ++/*137785*/ OPC_MoveParent, ++/*137786*/ OPC_MoveChild, 27, ++/*137788*/ OPC_CheckInteger, 1, ++/*137790*/ OPC_CheckType, MVT::i32, ++/*137792*/ OPC_MoveParent, ++/*137793*/ OPC_MoveChild, 28, ++/*137795*/ OPC_CheckInteger, 1, ++/*137797*/ OPC_CheckType, MVT::i32, ++/*137799*/ OPC_MoveParent, ++/*137800*/ OPC_MoveChild, 29, ++/*137802*/ OPC_CheckInteger, 1, ++/*137804*/ OPC_CheckType, MVT::i32, ++/*137806*/ OPC_MoveParent, ++/*137807*/ OPC_MoveChild, 30, ++/*137809*/ OPC_CheckInteger, 1, ++/*137811*/ OPC_CheckType, MVT::i32, ++/*137813*/ OPC_MoveParent, ++/*137814*/ OPC_MoveChild, 31, ++/*137816*/ OPC_CheckInteger, 1, ++/*137818*/ OPC_CheckType, MVT::i32, ++/*137820*/ OPC_MoveParent, ++/*137821*/ OPC_CheckType, MVT::v32i8, ++/*137823*/ OPC_MoveParent, ++/*137824*/ OPC_CheckType, MVT::v32i8, ++/*137826*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*137828*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*137836*/ /*Scope*/ 17|128,5/*657*/, /*->138495*/ ++/*137838*/ OPC_MoveChild0, ++/*137839*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*137842*/ OPC_CheckChild0Integer, 1, ++/*137844*/ OPC_CheckChild0Type, MVT::i32, ++/*137846*/ OPC_CheckChild1Integer, 1, ++/*137848*/ OPC_CheckChild1Type, MVT::i32, ++/*137850*/ OPC_CheckChild2Integer, 1, ++/*137852*/ OPC_CheckChild2Type, MVT::i32, ++/*137854*/ OPC_CheckChild3Integer, 1, ++/*137856*/ OPC_CheckChild3Type, MVT::i32, ++/*137858*/ OPC_CheckChild4Integer, 1, ++/*137860*/ OPC_CheckChild4Type, MVT::i32, ++/*137862*/ OPC_MoveChild5, ++/*137863*/ OPC_CheckInteger, 1, ++/*137865*/ OPC_CheckType, MVT::i32, ++/*137867*/ OPC_MoveParent, ++/*137868*/ OPC_MoveChild6, ++/*137869*/ OPC_CheckInteger, 1, ++/*137871*/ OPC_CheckType, MVT::i32, ++/*137873*/ OPC_MoveParent, ++/*137874*/ OPC_MoveChild7, ++/*137875*/ OPC_CheckInteger, 1, ++/*137877*/ OPC_CheckType, MVT::i32, ++/*137879*/ OPC_MoveParent, ++/*137880*/ OPC_MoveChild, 8, ++/*137882*/ OPC_CheckInteger, 1, ++/*137884*/ OPC_CheckType, MVT::i32, ++/*137886*/ OPC_MoveParent, ++/*137887*/ OPC_MoveChild, 9, ++/*137889*/ OPC_CheckInteger, 1, ++/*137891*/ OPC_CheckType, MVT::i32, ++/*137893*/ OPC_MoveParent, ++/*137894*/ OPC_MoveChild, 10, ++/*137896*/ OPC_CheckInteger, 1, ++/*137898*/ OPC_CheckType, MVT::i32, ++/*137900*/ OPC_MoveParent, ++/*137901*/ OPC_MoveChild, 11, ++/*137903*/ OPC_CheckInteger, 1, ++/*137905*/ OPC_CheckType, MVT::i32, ++/*137907*/ OPC_MoveParent, ++/*137908*/ OPC_MoveChild, 12, ++/*137910*/ OPC_CheckInteger, 1, ++/*137912*/ OPC_CheckType, MVT::i32, ++/*137914*/ OPC_MoveParent, ++/*137915*/ OPC_MoveChild, 13, ++/*137917*/ OPC_CheckInteger, 1, ++/*137919*/ OPC_CheckType, MVT::i32, ++/*137921*/ OPC_MoveParent, ++/*137922*/ OPC_MoveChild, 14, ++/*137924*/ OPC_CheckInteger, 1, ++/*137926*/ OPC_CheckType, MVT::i32, ++/*137928*/ OPC_MoveParent, ++/*137929*/ OPC_MoveChild, 15, ++/*137931*/ OPC_CheckInteger, 1, ++/*137933*/ OPC_CheckType, MVT::i32, ++/*137935*/ OPC_MoveParent, ++/*137936*/ OPC_MoveChild, 16, ++/*137938*/ OPC_CheckInteger, 1, ++/*137940*/ OPC_CheckType, MVT::i32, ++/*137942*/ OPC_MoveParent, ++/*137943*/ OPC_MoveChild, 17, ++/*137945*/ OPC_CheckInteger, 1, ++/*137947*/ OPC_CheckType, MVT::i32, ++/*137949*/ OPC_MoveParent, ++/*137950*/ OPC_MoveChild, 18, ++/*137952*/ OPC_CheckInteger, 1, ++/*137954*/ OPC_CheckType, MVT::i32, ++/*137956*/ OPC_MoveParent, ++/*137957*/ OPC_MoveChild, 19, ++/*137959*/ OPC_CheckInteger, 1, ++/*137961*/ OPC_CheckType, MVT::i32, ++/*137963*/ OPC_MoveParent, ++/*137964*/ OPC_MoveChild, 20, ++/*137966*/ OPC_CheckInteger, 1, ++/*137968*/ OPC_CheckType, MVT::i32, ++/*137970*/ OPC_MoveParent, ++/*137971*/ OPC_MoveChild, 21, ++/*137973*/ OPC_CheckInteger, 1, ++/*137975*/ OPC_CheckType, MVT::i32, ++/*137977*/ OPC_MoveParent, ++/*137978*/ OPC_MoveChild, 22, ++/*137980*/ OPC_CheckInteger, 1, ++/*137982*/ OPC_CheckType, MVT::i32, ++/*137984*/ OPC_MoveParent, ++/*137985*/ OPC_MoveChild, 23, ++/*137987*/ OPC_CheckInteger, 1, ++/*137989*/ OPC_CheckType, MVT::i32, ++/*137991*/ OPC_MoveParent, ++/*137992*/ OPC_MoveChild, 24, ++/*137994*/ OPC_CheckInteger, 1, ++/*137996*/ OPC_CheckType, MVT::i32, ++/*137998*/ OPC_MoveParent, ++/*137999*/ OPC_MoveChild, 25, ++/*138001*/ OPC_CheckInteger, 1, ++/*138003*/ OPC_CheckType, MVT::i32, ++/*138005*/ OPC_MoveParent, ++/*138006*/ OPC_MoveChild, 26, ++/*138008*/ OPC_CheckInteger, 1, ++/*138010*/ OPC_CheckType, MVT::i32, ++/*138012*/ OPC_MoveParent, ++/*138013*/ OPC_MoveChild, 27, ++/*138015*/ OPC_CheckInteger, 1, ++/*138017*/ OPC_CheckType, MVT::i32, ++/*138019*/ OPC_MoveParent, ++/*138020*/ OPC_MoveChild, 28, ++/*138022*/ OPC_CheckInteger, 1, ++/*138024*/ OPC_CheckType, MVT::i32, ++/*138026*/ OPC_MoveParent, ++/*138027*/ OPC_MoveChild, 29, ++/*138029*/ OPC_CheckInteger, 1, ++/*138031*/ OPC_CheckType, MVT::i32, ++/*138033*/ OPC_MoveParent, ++/*138034*/ OPC_MoveChild, 30, ++/*138036*/ OPC_CheckInteger, 1, ++/*138038*/ OPC_CheckType, MVT::i32, ++/*138040*/ OPC_MoveParent, ++/*138041*/ OPC_MoveChild, 31, ++/*138043*/ OPC_CheckInteger, 1, ++/*138045*/ OPC_CheckType, MVT::i32, ++/*138047*/ OPC_MoveParent, ++/*138048*/ OPC_MoveParent, ++/*138049*/ OPC_CheckChild1Same, 0, ++/*138051*/ OPC_MoveParent, ++/*138052*/ OPC_CheckChild1Same, 1, ++/*138054*/ OPC_MoveParent, ++/*138055*/ OPC_MoveChild1, ++/*138056*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*138059*/ OPC_CheckChild0Integer, 7, ++/*138061*/ OPC_CheckChild0Type, MVT::i32, ++/*138063*/ OPC_CheckChild1Integer, 7, ++/*138065*/ OPC_CheckChild1Type, MVT::i32, ++/*138067*/ OPC_CheckChild2Integer, 7, ++/*138069*/ OPC_CheckChild2Type, MVT::i32, ++/*138071*/ OPC_CheckChild3Integer, 7, ++/*138073*/ OPC_CheckChild3Type, MVT::i32, ++/*138075*/ OPC_CheckChild4Integer, 7, ++/*138077*/ OPC_CheckChild4Type, MVT::i32, ++/*138079*/ OPC_MoveChild5, ++/*138080*/ OPC_CheckInteger, 7, ++/*138082*/ OPC_CheckType, MVT::i32, ++/*138084*/ OPC_MoveParent, ++/*138085*/ OPC_MoveChild6, ++/*138086*/ OPC_CheckInteger, 7, ++/*138088*/ OPC_CheckType, MVT::i32, ++/*138090*/ OPC_MoveParent, ++/*138091*/ OPC_MoveChild7, ++/*138092*/ OPC_CheckInteger, 7, ++/*138094*/ OPC_CheckType, MVT::i32, ++/*138096*/ OPC_MoveParent, ++/*138097*/ OPC_MoveChild, 8, ++/*138099*/ OPC_CheckInteger, 7, ++/*138101*/ OPC_CheckType, MVT::i32, ++/*138103*/ OPC_MoveParent, ++/*138104*/ OPC_MoveChild, 9, ++/*138106*/ OPC_CheckInteger, 7, ++/*138108*/ OPC_CheckType, MVT::i32, ++/*138110*/ OPC_MoveParent, ++/*138111*/ OPC_MoveChild, 10, ++/*138113*/ OPC_CheckInteger, 7, ++/*138115*/ OPC_CheckType, MVT::i32, ++/*138117*/ OPC_MoveParent, ++/*138118*/ OPC_MoveChild, 11, ++/*138120*/ OPC_CheckInteger, 7, ++/*138122*/ OPC_CheckType, MVT::i32, ++/*138124*/ OPC_MoveParent, ++/*138125*/ OPC_MoveChild, 12, ++/*138127*/ OPC_CheckInteger, 7, ++/*138129*/ OPC_CheckType, MVT::i32, ++/*138131*/ OPC_MoveParent, ++/*138132*/ OPC_MoveChild, 13, ++/*138134*/ OPC_CheckInteger, 7, ++/*138136*/ OPC_CheckType, MVT::i32, ++/*138138*/ OPC_MoveParent, ++/*138139*/ OPC_MoveChild, 14, ++/*138141*/ OPC_CheckInteger, 7, ++/*138143*/ OPC_CheckType, MVT::i32, ++/*138145*/ OPC_MoveParent, ++/*138146*/ OPC_MoveChild, 15, ++/*138148*/ OPC_CheckInteger, 7, ++/*138150*/ OPC_CheckType, MVT::i32, ++/*138152*/ OPC_MoveParent, ++/*138153*/ OPC_MoveChild, 16, ++/*138155*/ OPC_CheckInteger, 7, ++/*138157*/ OPC_CheckType, MVT::i32, ++/*138159*/ OPC_MoveParent, ++/*138160*/ OPC_MoveChild, 17, ++/*138162*/ OPC_CheckInteger, 7, ++/*138164*/ OPC_CheckType, MVT::i32, ++/*138166*/ OPC_MoveParent, ++/*138167*/ OPC_MoveChild, 18, ++/*138169*/ OPC_CheckInteger, 7, ++/*138171*/ OPC_CheckType, MVT::i32, ++/*138173*/ OPC_MoveParent, ++/*138174*/ OPC_MoveChild, 19, ++/*138176*/ OPC_CheckInteger, 7, ++/*138178*/ OPC_CheckType, MVT::i32, ++/*138180*/ OPC_MoveParent, ++/*138181*/ OPC_MoveChild, 20, ++/*138183*/ OPC_CheckInteger, 7, ++/*138185*/ OPC_CheckType, MVT::i32, ++/*138187*/ OPC_MoveParent, ++/*138188*/ OPC_MoveChild, 21, ++/*138190*/ OPC_CheckInteger, 7, ++/*138192*/ OPC_CheckType, MVT::i32, ++/*138194*/ OPC_MoveParent, ++/*138195*/ OPC_MoveChild, 22, ++/*138197*/ OPC_CheckInteger, 7, ++/*138199*/ OPC_CheckType, MVT::i32, ++/*138201*/ OPC_MoveParent, ++/*138202*/ OPC_MoveChild, 23, ++/*138204*/ OPC_CheckInteger, 7, ++/*138206*/ OPC_CheckType, MVT::i32, ++/*138208*/ OPC_MoveParent, ++/*138209*/ OPC_MoveChild, 24, ++/*138211*/ OPC_CheckInteger, 7, ++/*138213*/ OPC_CheckType, MVT::i32, ++/*138215*/ OPC_MoveParent, ++/*138216*/ OPC_MoveChild, 25, ++/*138218*/ OPC_CheckInteger, 7, ++/*138220*/ OPC_CheckType, MVT::i32, ++/*138222*/ OPC_MoveParent, ++/*138223*/ OPC_MoveChild, 26, ++/*138225*/ OPC_CheckInteger, 7, ++/*138227*/ OPC_CheckType, MVT::i32, ++/*138229*/ OPC_MoveParent, ++/*138230*/ OPC_MoveChild, 27, ++/*138232*/ OPC_CheckInteger, 7, ++/*138234*/ OPC_CheckType, MVT::i32, ++/*138236*/ OPC_MoveParent, ++/*138237*/ OPC_MoveChild, 28, ++/*138239*/ OPC_CheckInteger, 7, ++/*138241*/ OPC_CheckType, MVT::i32, ++/*138243*/ OPC_MoveParent, ++/*138244*/ OPC_MoveChild, 29, ++/*138246*/ OPC_CheckInteger, 7, ++/*138248*/ OPC_CheckType, MVT::i32, ++/*138250*/ OPC_MoveParent, ++/*138251*/ OPC_MoveChild, 30, ++/*138253*/ OPC_CheckInteger, 7, ++/*138255*/ OPC_CheckType, MVT::i32, ++/*138257*/ OPC_MoveParent, ++/*138258*/ OPC_MoveChild, 31, ++/*138260*/ OPC_CheckInteger, 7, ++/*138262*/ OPC_CheckType, MVT::i32, ++/*138264*/ OPC_MoveParent, ++/*138265*/ OPC_CheckType, MVT::v32i8, ++/*138267*/ OPC_MoveParent, ++/*138268*/ OPC_MoveParent, ++/*138269*/ OPC_MoveParent, ++/*138270*/ OPC_MoveChild1, ++/*138271*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*138274*/ OPC_CheckChild0Integer, 1, ++/*138276*/ OPC_CheckChild0Type, MVT::i32, ++/*138278*/ OPC_CheckChild1Integer, 1, ++/*138280*/ OPC_CheckChild1Type, MVT::i32, ++/*138282*/ OPC_CheckChild2Integer, 1, ++/*138284*/ OPC_CheckChild2Type, MVT::i32, ++/*138286*/ OPC_CheckChild3Integer, 1, ++/*138288*/ OPC_CheckChild3Type, MVT::i32, ++/*138290*/ OPC_CheckChild4Integer, 1, ++/*138292*/ OPC_CheckChild4Type, MVT::i32, ++/*138294*/ OPC_MoveChild5, ++/*138295*/ OPC_CheckInteger, 1, ++/*138297*/ OPC_CheckType, MVT::i32, ++/*138299*/ OPC_MoveParent, ++/*138300*/ OPC_MoveChild6, ++/*138301*/ OPC_CheckInteger, 1, ++/*138303*/ OPC_CheckType, MVT::i32, ++/*138305*/ OPC_MoveParent, ++/*138306*/ OPC_MoveChild7, ++/*138307*/ OPC_CheckInteger, 1, ++/*138309*/ OPC_CheckType, MVT::i32, ++/*138311*/ OPC_MoveParent, ++/*138312*/ OPC_MoveChild, 8, ++/*138314*/ OPC_CheckInteger, 1, ++/*138316*/ OPC_CheckType, MVT::i32, ++/*138318*/ OPC_MoveParent, ++/*138319*/ OPC_MoveChild, 9, ++/*138321*/ OPC_CheckInteger, 1, ++/*138323*/ OPC_CheckType, MVT::i32, ++/*138325*/ OPC_MoveParent, ++/*138326*/ OPC_MoveChild, 10, ++/*138328*/ OPC_CheckInteger, 1, ++/*138330*/ OPC_CheckType, MVT::i32, ++/*138332*/ OPC_MoveParent, ++/*138333*/ OPC_MoveChild, 11, ++/*138335*/ OPC_CheckInteger, 1, ++/*138337*/ OPC_CheckType, MVT::i32, ++/*138339*/ OPC_MoveParent, ++/*138340*/ OPC_MoveChild, 12, ++/*138342*/ OPC_CheckInteger, 1, ++/*138344*/ OPC_CheckType, MVT::i32, ++/*138346*/ OPC_MoveParent, ++/*138347*/ OPC_MoveChild, 13, ++/*138349*/ OPC_CheckInteger, 1, ++/*138351*/ OPC_CheckType, MVT::i32, ++/*138353*/ OPC_MoveParent, ++/*138354*/ OPC_MoveChild, 14, ++/*138356*/ OPC_CheckInteger, 1, ++/*138358*/ OPC_CheckType, MVT::i32, ++/*138360*/ OPC_MoveParent, ++/*138361*/ OPC_MoveChild, 15, ++/*138363*/ OPC_CheckInteger, 1, ++/*138365*/ OPC_CheckType, MVT::i32, ++/*138367*/ OPC_MoveParent, ++/*138368*/ OPC_MoveChild, 16, ++/*138370*/ OPC_CheckInteger, 1, ++/*138372*/ OPC_CheckType, MVT::i32, ++/*138374*/ OPC_MoveParent, ++/*138375*/ OPC_MoveChild, 17, ++/*138377*/ OPC_CheckInteger, 1, ++/*138379*/ OPC_CheckType, MVT::i32, ++/*138381*/ OPC_MoveParent, ++/*138382*/ OPC_MoveChild, 18, ++/*138384*/ OPC_CheckInteger, 1, ++/*138386*/ OPC_CheckType, MVT::i32, ++/*138388*/ OPC_MoveParent, ++/*138389*/ OPC_MoveChild, 19, ++/*138391*/ OPC_CheckInteger, 1, ++/*138393*/ OPC_CheckType, MVT::i32, ++/*138395*/ OPC_MoveParent, ++/*138396*/ OPC_MoveChild, 20, ++/*138398*/ OPC_CheckInteger, 1, ++/*138400*/ OPC_CheckType, MVT::i32, ++/*138402*/ OPC_MoveParent, ++/*138403*/ OPC_MoveChild, 21, ++/*138405*/ OPC_CheckInteger, 1, ++/*138407*/ OPC_CheckType, MVT::i32, ++/*138409*/ OPC_MoveParent, ++/*138410*/ OPC_MoveChild, 22, ++/*138412*/ OPC_CheckInteger, 1, ++/*138414*/ OPC_CheckType, MVT::i32, ++/*138416*/ OPC_MoveParent, ++/*138417*/ OPC_MoveChild, 23, ++/*138419*/ OPC_CheckInteger, 1, ++/*138421*/ OPC_CheckType, MVT::i32, ++/*138423*/ OPC_MoveParent, ++/*138424*/ OPC_MoveChild, 24, ++/*138426*/ OPC_CheckInteger, 1, ++/*138428*/ OPC_CheckType, MVT::i32, ++/*138430*/ OPC_MoveParent, ++/*138431*/ OPC_MoveChild, 25, ++/*138433*/ OPC_CheckInteger, 1, ++/*138435*/ OPC_CheckType, MVT::i32, ++/*138437*/ OPC_MoveParent, ++/*138438*/ OPC_MoveChild, 26, ++/*138440*/ OPC_CheckInteger, 1, ++/*138442*/ OPC_CheckType, MVT::i32, ++/*138444*/ OPC_MoveParent, ++/*138445*/ OPC_MoveChild, 27, ++/*138447*/ OPC_CheckInteger, 1, ++/*138449*/ OPC_CheckType, MVT::i32, ++/*138451*/ OPC_MoveParent, ++/*138452*/ OPC_MoveChild, 28, ++/*138454*/ OPC_CheckInteger, 1, ++/*138456*/ OPC_CheckType, MVT::i32, ++/*138458*/ OPC_MoveParent, ++/*138459*/ OPC_MoveChild, 29, ++/*138461*/ OPC_CheckInteger, 1, ++/*138463*/ OPC_CheckType, MVT::i32, ++/*138465*/ OPC_MoveParent, ++/*138466*/ OPC_MoveChild, 30, ++/*138468*/ OPC_CheckInteger, 1, ++/*138470*/ OPC_CheckType, MVT::i32, ++/*138472*/ OPC_MoveParent, ++/*138473*/ OPC_MoveChild, 31, ++/*138475*/ OPC_CheckInteger, 1, ++/*138477*/ OPC_CheckType, MVT::i32, ++/*138479*/ OPC_MoveParent, ++/*138480*/ OPC_CheckType, MVT::v32i8, ++/*138482*/ OPC_MoveParent, ++/*138483*/ OPC_CheckType, MVT::v32i8, ++/*138485*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*138487*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b), LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*138495*/ /*Scope*/ 17|128,5/*657*/, /*->139154*/ ++/*138497*/ OPC_CheckChild0Same, 0, ++/*138499*/ OPC_MoveChild1, ++/*138500*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*138503*/ OPC_CheckChild0Integer, 1, ++/*138505*/ OPC_CheckChild0Type, MVT::i32, ++/*138507*/ OPC_CheckChild1Integer, 1, ++/*138509*/ OPC_CheckChild1Type, MVT::i32, ++/*138511*/ OPC_CheckChild2Integer, 1, ++/*138513*/ OPC_CheckChild2Type, MVT::i32, ++/*138515*/ OPC_CheckChild3Integer, 1, ++/*138517*/ OPC_CheckChild3Type, MVT::i32, ++/*138519*/ OPC_CheckChild4Integer, 1, ++/*138521*/ OPC_CheckChild4Type, MVT::i32, ++/*138523*/ OPC_MoveChild5, ++/*138524*/ OPC_CheckInteger, 1, ++/*138526*/ OPC_CheckType, MVT::i32, ++/*138528*/ OPC_MoveParent, ++/*138529*/ OPC_MoveChild6, ++/*138530*/ OPC_CheckInteger, 1, ++/*138532*/ OPC_CheckType, MVT::i32, ++/*138534*/ OPC_MoveParent, ++/*138535*/ OPC_MoveChild7, ++/*138536*/ OPC_CheckInteger, 1, ++/*138538*/ OPC_CheckType, MVT::i32, ++/*138540*/ OPC_MoveParent, ++/*138541*/ OPC_MoveChild, 8, ++/*138543*/ OPC_CheckInteger, 1, ++/*138545*/ OPC_CheckType, MVT::i32, ++/*138547*/ OPC_MoveParent, ++/*138548*/ OPC_MoveChild, 9, ++/*138550*/ OPC_CheckInteger, 1, ++/*138552*/ OPC_CheckType, MVT::i32, ++/*138554*/ OPC_MoveParent, ++/*138555*/ OPC_MoveChild, 10, ++/*138557*/ OPC_CheckInteger, 1, ++/*138559*/ OPC_CheckType, MVT::i32, ++/*138561*/ OPC_MoveParent, ++/*138562*/ OPC_MoveChild, 11, ++/*138564*/ OPC_CheckInteger, 1, ++/*138566*/ OPC_CheckType, MVT::i32, ++/*138568*/ OPC_MoveParent, ++/*138569*/ OPC_MoveChild, 12, ++/*138571*/ OPC_CheckInteger, 1, ++/*138573*/ OPC_CheckType, MVT::i32, ++/*138575*/ OPC_MoveParent, ++/*138576*/ OPC_MoveChild, 13, ++/*138578*/ OPC_CheckInteger, 1, ++/*138580*/ OPC_CheckType, MVT::i32, ++/*138582*/ OPC_MoveParent, ++/*138583*/ OPC_MoveChild, 14, ++/*138585*/ OPC_CheckInteger, 1, ++/*138587*/ OPC_CheckType, MVT::i32, ++/*138589*/ OPC_MoveParent, ++/*138590*/ OPC_MoveChild, 15, ++/*138592*/ OPC_CheckInteger, 1, ++/*138594*/ OPC_CheckType, MVT::i32, ++/*138596*/ OPC_MoveParent, ++/*138597*/ OPC_MoveChild, 16, ++/*138599*/ OPC_CheckInteger, 1, ++/*138601*/ OPC_CheckType, MVT::i32, ++/*138603*/ OPC_MoveParent, ++/*138604*/ OPC_MoveChild, 17, ++/*138606*/ OPC_CheckInteger, 1, ++/*138608*/ OPC_CheckType, MVT::i32, ++/*138610*/ OPC_MoveParent, ++/*138611*/ OPC_MoveChild, 18, ++/*138613*/ OPC_CheckInteger, 1, ++/*138615*/ OPC_CheckType, MVT::i32, ++/*138617*/ OPC_MoveParent, ++/*138618*/ OPC_MoveChild, 19, ++/*138620*/ OPC_CheckInteger, 1, ++/*138622*/ OPC_CheckType, MVT::i32, ++/*138624*/ OPC_MoveParent, ++/*138625*/ OPC_MoveChild, 20, ++/*138627*/ OPC_CheckInteger, 1, ++/*138629*/ OPC_CheckType, MVT::i32, ++/*138631*/ OPC_MoveParent, ++/*138632*/ OPC_MoveChild, 21, ++/*138634*/ OPC_CheckInteger, 1, ++/*138636*/ OPC_CheckType, MVT::i32, ++/*138638*/ OPC_MoveParent, ++/*138639*/ OPC_MoveChild, 22, ++/*138641*/ OPC_CheckInteger, 1, ++/*138643*/ OPC_CheckType, MVT::i32, ++/*138645*/ OPC_MoveParent, ++/*138646*/ OPC_MoveChild, 23, ++/*138648*/ OPC_CheckInteger, 1, ++/*138650*/ OPC_CheckType, MVT::i32, ++/*138652*/ OPC_MoveParent, ++/*138653*/ OPC_MoveChild, 24, ++/*138655*/ OPC_CheckInteger, 1, ++/*138657*/ OPC_CheckType, MVT::i32, ++/*138659*/ OPC_MoveParent, ++/*138660*/ OPC_MoveChild, 25, ++/*138662*/ OPC_CheckInteger, 1, ++/*138664*/ OPC_CheckType, MVT::i32, ++/*138666*/ OPC_MoveParent, ++/*138667*/ OPC_MoveChild, 26, ++/*138669*/ OPC_CheckInteger, 1, ++/*138671*/ OPC_CheckType, MVT::i32, ++/*138673*/ OPC_MoveParent, ++/*138674*/ OPC_MoveChild, 27, ++/*138676*/ OPC_CheckInteger, 1, ++/*138678*/ OPC_CheckType, MVT::i32, ++/*138680*/ OPC_MoveParent, ++/*138681*/ OPC_MoveChild, 28, ++/*138683*/ OPC_CheckInteger, 1, ++/*138685*/ OPC_CheckType, MVT::i32, ++/*138687*/ OPC_MoveParent, ++/*138688*/ OPC_MoveChild, 29, ++/*138690*/ OPC_CheckInteger, 1, ++/*138692*/ OPC_CheckType, MVT::i32, ++/*138694*/ OPC_MoveParent, ++/*138695*/ OPC_MoveChild, 30, ++/*138697*/ OPC_CheckInteger, 1, ++/*138699*/ OPC_CheckType, MVT::i32, ++/*138701*/ OPC_MoveParent, ++/*138702*/ OPC_MoveChild, 31, ++/*138704*/ OPC_CheckInteger, 1, ++/*138706*/ OPC_CheckType, MVT::i32, ++/*138708*/ OPC_MoveParent, ++/*138709*/ OPC_MoveParent, ++/*138710*/ OPC_MoveParent, ++/*138711*/ OPC_CheckChild1Same, 1, ++/*138713*/ OPC_MoveParent, ++/*138714*/ OPC_MoveChild1, ++/*138715*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*138718*/ OPC_CheckChild0Integer, 7, ++/*138720*/ OPC_CheckChild0Type, MVT::i32, ++/*138722*/ OPC_CheckChild1Integer, 7, ++/*138724*/ OPC_CheckChild1Type, MVT::i32, ++/*138726*/ OPC_CheckChild2Integer, 7, ++/*138728*/ OPC_CheckChild2Type, MVT::i32, ++/*138730*/ OPC_CheckChild3Integer, 7, ++/*138732*/ OPC_CheckChild3Type, MVT::i32, ++/*138734*/ OPC_CheckChild4Integer, 7, ++/*138736*/ OPC_CheckChild4Type, MVT::i32, ++/*138738*/ OPC_MoveChild5, ++/*138739*/ OPC_CheckInteger, 7, ++/*138741*/ OPC_CheckType, MVT::i32, ++/*138743*/ OPC_MoveParent, ++/*138744*/ OPC_MoveChild6, ++/*138745*/ OPC_CheckInteger, 7, ++/*138747*/ OPC_CheckType, MVT::i32, ++/*138749*/ OPC_MoveParent, ++/*138750*/ OPC_MoveChild7, ++/*138751*/ OPC_CheckInteger, 7, ++/*138753*/ OPC_CheckType, MVT::i32, ++/*138755*/ OPC_MoveParent, ++/*138756*/ OPC_MoveChild, 8, ++/*138758*/ OPC_CheckInteger, 7, ++/*138760*/ OPC_CheckType, MVT::i32, ++/*138762*/ OPC_MoveParent, ++/*138763*/ OPC_MoveChild, 9, ++/*138765*/ OPC_CheckInteger, 7, ++/*138767*/ OPC_CheckType, MVT::i32, ++/*138769*/ OPC_MoveParent, ++/*138770*/ OPC_MoveChild, 10, ++/*138772*/ OPC_CheckInteger, 7, ++/*138774*/ OPC_CheckType, MVT::i32, ++/*138776*/ OPC_MoveParent, ++/*138777*/ OPC_MoveChild, 11, ++/*138779*/ OPC_CheckInteger, 7, ++/*138781*/ OPC_CheckType, MVT::i32, ++/*138783*/ OPC_MoveParent, ++/*138784*/ OPC_MoveChild, 12, ++/*138786*/ OPC_CheckInteger, 7, ++/*138788*/ OPC_CheckType, MVT::i32, ++/*138790*/ OPC_MoveParent, ++/*138791*/ OPC_MoveChild, 13, ++/*138793*/ OPC_CheckInteger, 7, ++/*138795*/ OPC_CheckType, MVT::i32, ++/*138797*/ OPC_MoveParent, ++/*138798*/ OPC_MoveChild, 14, ++/*138800*/ OPC_CheckInteger, 7, ++/*138802*/ OPC_CheckType, MVT::i32, ++/*138804*/ OPC_MoveParent, ++/*138805*/ OPC_MoveChild, 15, ++/*138807*/ OPC_CheckInteger, 7, ++/*138809*/ OPC_CheckType, MVT::i32, ++/*138811*/ OPC_MoveParent, ++/*138812*/ OPC_MoveChild, 16, ++/*138814*/ OPC_CheckInteger, 7, ++/*138816*/ OPC_CheckType, MVT::i32, ++/*138818*/ OPC_MoveParent, ++/*138819*/ OPC_MoveChild, 17, ++/*138821*/ OPC_CheckInteger, 7, ++/*138823*/ OPC_CheckType, MVT::i32, ++/*138825*/ OPC_MoveParent, ++/*138826*/ OPC_MoveChild, 18, ++/*138828*/ OPC_CheckInteger, 7, ++/*138830*/ OPC_CheckType, MVT::i32, ++/*138832*/ OPC_MoveParent, ++/*138833*/ OPC_MoveChild, 19, ++/*138835*/ OPC_CheckInteger, 7, ++/*138837*/ OPC_CheckType, MVT::i32, ++/*138839*/ OPC_MoveParent, ++/*138840*/ OPC_MoveChild, 20, ++/*138842*/ OPC_CheckInteger, 7, ++/*138844*/ OPC_CheckType, MVT::i32, ++/*138846*/ OPC_MoveParent, ++/*138847*/ OPC_MoveChild, 21, ++/*138849*/ OPC_CheckInteger, 7, ++/*138851*/ OPC_CheckType, MVT::i32, ++/*138853*/ OPC_MoveParent, ++/*138854*/ OPC_MoveChild, 22, ++/*138856*/ OPC_CheckInteger, 7, ++/*138858*/ OPC_CheckType, MVT::i32, ++/*138860*/ OPC_MoveParent, ++/*138861*/ OPC_MoveChild, 23, ++/*138863*/ OPC_CheckInteger, 7, ++/*138865*/ OPC_CheckType, MVT::i32, ++/*138867*/ OPC_MoveParent, ++/*138868*/ OPC_MoveChild, 24, ++/*138870*/ OPC_CheckInteger, 7, ++/*138872*/ OPC_CheckType, MVT::i32, ++/*138874*/ OPC_MoveParent, ++/*138875*/ OPC_MoveChild, 25, ++/*138877*/ OPC_CheckInteger, 7, ++/*138879*/ OPC_CheckType, MVT::i32, ++/*138881*/ OPC_MoveParent, ++/*138882*/ OPC_MoveChild, 26, ++/*138884*/ OPC_CheckInteger, 7, ++/*138886*/ OPC_CheckType, MVT::i32, ++/*138888*/ OPC_MoveParent, ++/*138889*/ OPC_MoveChild, 27, ++/*138891*/ OPC_CheckInteger, 7, ++/*138893*/ OPC_CheckType, MVT::i32, ++/*138895*/ OPC_MoveParent, ++/*138896*/ OPC_MoveChild, 28, ++/*138898*/ OPC_CheckInteger, 7, ++/*138900*/ OPC_CheckType, MVT::i32, ++/*138902*/ OPC_MoveParent, ++/*138903*/ OPC_MoveChild, 29, ++/*138905*/ OPC_CheckInteger, 7, ++/*138907*/ OPC_CheckType, MVT::i32, ++/*138909*/ OPC_MoveParent, ++/*138910*/ OPC_MoveChild, 30, ++/*138912*/ OPC_CheckInteger, 7, ++/*138914*/ OPC_CheckType, MVT::i32, ++/*138916*/ OPC_MoveParent, ++/*138917*/ OPC_MoveChild, 31, ++/*138919*/ OPC_CheckInteger, 7, ++/*138921*/ OPC_CheckType, MVT::i32, ++/*138923*/ OPC_MoveParent, ++/*138924*/ OPC_CheckType, MVT::v32i8, ++/*138926*/ OPC_MoveParent, ++/*138927*/ OPC_MoveParent, ++/*138928*/ OPC_MoveParent, ++/*138929*/ OPC_MoveChild1, ++/*138930*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*138933*/ OPC_CheckChild0Integer, 1, ++/*138935*/ OPC_CheckChild0Type, MVT::i32, ++/*138937*/ OPC_CheckChild1Integer, 1, ++/*138939*/ OPC_CheckChild1Type, MVT::i32, ++/*138941*/ OPC_CheckChild2Integer, 1, ++/*138943*/ OPC_CheckChild2Type, MVT::i32, ++/*138945*/ OPC_CheckChild3Integer, 1, ++/*138947*/ OPC_CheckChild3Type, MVT::i32, ++/*138949*/ OPC_CheckChild4Integer, 1, ++/*138951*/ OPC_CheckChild4Type, MVT::i32, ++/*138953*/ OPC_MoveChild5, ++/*138954*/ OPC_CheckInteger, 1, ++/*138956*/ OPC_CheckType, MVT::i32, ++/*138958*/ OPC_MoveParent, ++/*138959*/ OPC_MoveChild6, ++/*138960*/ OPC_CheckInteger, 1, ++/*138962*/ OPC_CheckType, MVT::i32, ++/*138964*/ OPC_MoveParent, ++/*138965*/ OPC_MoveChild7, ++/*138966*/ OPC_CheckInteger, 1, ++/*138968*/ OPC_CheckType, MVT::i32, ++/*138970*/ OPC_MoveParent, ++/*138971*/ OPC_MoveChild, 8, ++/*138973*/ OPC_CheckInteger, 1, ++/*138975*/ OPC_CheckType, MVT::i32, ++/*138977*/ OPC_MoveParent, ++/*138978*/ OPC_MoveChild, 9, ++/*138980*/ OPC_CheckInteger, 1, ++/*138982*/ OPC_CheckType, MVT::i32, ++/*138984*/ OPC_MoveParent, ++/*138985*/ OPC_MoveChild, 10, ++/*138987*/ OPC_CheckInteger, 1, ++/*138989*/ OPC_CheckType, MVT::i32, ++/*138991*/ OPC_MoveParent, ++/*138992*/ OPC_MoveChild, 11, ++/*138994*/ OPC_CheckInteger, 1, ++/*138996*/ OPC_CheckType, MVT::i32, ++/*138998*/ OPC_MoveParent, ++/*138999*/ OPC_MoveChild, 12, ++/*139001*/ OPC_CheckInteger, 1, ++/*139003*/ OPC_CheckType, MVT::i32, ++/*139005*/ OPC_MoveParent, ++/*139006*/ OPC_MoveChild, 13, ++/*139008*/ OPC_CheckInteger, 1, ++/*139010*/ OPC_CheckType, MVT::i32, ++/*139012*/ OPC_MoveParent, ++/*139013*/ OPC_MoveChild, 14, ++/*139015*/ OPC_CheckInteger, 1, ++/*139017*/ OPC_CheckType, MVT::i32, ++/*139019*/ OPC_MoveParent, ++/*139020*/ OPC_MoveChild, 15, ++/*139022*/ OPC_CheckInteger, 1, ++/*139024*/ OPC_CheckType, MVT::i32, ++/*139026*/ OPC_MoveParent, ++/*139027*/ OPC_MoveChild, 16, ++/*139029*/ OPC_CheckInteger, 1, ++/*139031*/ OPC_CheckType, MVT::i32, ++/*139033*/ OPC_MoveParent, ++/*139034*/ OPC_MoveChild, 17, ++/*139036*/ OPC_CheckInteger, 1, ++/*139038*/ OPC_CheckType, MVT::i32, ++/*139040*/ OPC_MoveParent, ++/*139041*/ OPC_MoveChild, 18, ++/*139043*/ OPC_CheckInteger, 1, ++/*139045*/ OPC_CheckType, MVT::i32, ++/*139047*/ OPC_MoveParent, ++/*139048*/ OPC_MoveChild, 19, ++/*139050*/ OPC_CheckInteger, 1, ++/*139052*/ OPC_CheckType, MVT::i32, ++/*139054*/ OPC_MoveParent, ++/*139055*/ OPC_MoveChild, 20, ++/*139057*/ OPC_CheckInteger, 1, ++/*139059*/ OPC_CheckType, MVT::i32, ++/*139061*/ OPC_MoveParent, ++/*139062*/ OPC_MoveChild, 21, ++/*139064*/ OPC_CheckInteger, 1, ++/*139066*/ OPC_CheckType, MVT::i32, ++/*139068*/ OPC_MoveParent, ++/*139069*/ OPC_MoveChild, 22, ++/*139071*/ OPC_CheckInteger, 1, ++/*139073*/ OPC_CheckType, MVT::i32, ++/*139075*/ OPC_MoveParent, ++/*139076*/ OPC_MoveChild, 23, ++/*139078*/ OPC_CheckInteger, 1, ++/*139080*/ OPC_CheckType, MVT::i32, ++/*139082*/ OPC_MoveParent, ++/*139083*/ OPC_MoveChild, 24, ++/*139085*/ OPC_CheckInteger, 1, ++/*139087*/ OPC_CheckType, MVT::i32, ++/*139089*/ OPC_MoveParent, ++/*139090*/ OPC_MoveChild, 25, ++/*139092*/ OPC_CheckInteger, 1, ++/*139094*/ OPC_CheckType, MVT::i32, ++/*139096*/ OPC_MoveParent, ++/*139097*/ OPC_MoveChild, 26, ++/*139099*/ OPC_CheckInteger, 1, ++/*139101*/ OPC_CheckType, MVT::i32, ++/*139103*/ OPC_MoveParent, ++/*139104*/ OPC_MoveChild, 27, ++/*139106*/ OPC_CheckInteger, 1, ++/*139108*/ OPC_CheckType, MVT::i32, ++/*139110*/ OPC_MoveParent, ++/*139111*/ OPC_MoveChild, 28, ++/*139113*/ OPC_CheckInteger, 1, ++/*139115*/ OPC_CheckType, MVT::i32, ++/*139117*/ OPC_MoveParent, ++/*139118*/ OPC_MoveChild, 29, ++/*139120*/ OPC_CheckInteger, 1, ++/*139122*/ OPC_CheckType, MVT::i32, ++/*139124*/ OPC_MoveParent, ++/*139125*/ OPC_MoveChild, 30, ++/*139127*/ OPC_CheckInteger, 1, ++/*139129*/ OPC_CheckType, MVT::i32, ++/*139131*/ OPC_MoveParent, ++/*139132*/ OPC_MoveChild, 31, ++/*139134*/ OPC_CheckInteger, 1, ++/*139136*/ OPC_CheckType, MVT::i32, ++/*139138*/ OPC_MoveParent, ++/*139139*/ OPC_CheckType, MVT::v32i8, ++/*139141*/ OPC_MoveParent, ++/*139142*/ OPC_CheckType, MVT::v32i8, ++/*139144*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*139146*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*139154*/ /*Scope*/ 17|128,5/*657*/, /*->139813*/ ++/*139156*/ OPC_CheckChild0Same, 1, ++/*139158*/ OPC_CheckChild1Same, 0, ++/*139160*/ OPC_MoveParent, ++/*139161*/ OPC_MoveChild1, ++/*139162*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*139165*/ OPC_CheckChild0Integer, 1, ++/*139167*/ OPC_CheckChild0Type, MVT::i32, ++/*139169*/ OPC_CheckChild1Integer, 1, ++/*139171*/ OPC_CheckChild1Type, MVT::i32, ++/*139173*/ OPC_CheckChild2Integer, 1, ++/*139175*/ OPC_CheckChild2Type, MVT::i32, ++/*139177*/ OPC_CheckChild3Integer, 1, ++/*139179*/ OPC_CheckChild3Type, MVT::i32, ++/*139181*/ OPC_CheckChild4Integer, 1, ++/*139183*/ OPC_CheckChild4Type, MVT::i32, ++/*139185*/ OPC_MoveChild5, ++/*139186*/ OPC_CheckInteger, 1, ++/*139188*/ OPC_CheckType, MVT::i32, ++/*139190*/ OPC_MoveParent, ++/*139191*/ OPC_MoveChild6, ++/*139192*/ OPC_CheckInteger, 1, ++/*139194*/ OPC_CheckType, MVT::i32, ++/*139196*/ OPC_MoveParent, ++/*139197*/ OPC_MoveChild7, ++/*139198*/ OPC_CheckInteger, 1, ++/*139200*/ OPC_CheckType, MVT::i32, ++/*139202*/ OPC_MoveParent, ++/*139203*/ OPC_MoveChild, 8, ++/*139205*/ OPC_CheckInteger, 1, ++/*139207*/ OPC_CheckType, MVT::i32, ++/*139209*/ OPC_MoveParent, ++/*139210*/ OPC_MoveChild, 9, ++/*139212*/ OPC_CheckInteger, 1, ++/*139214*/ OPC_CheckType, MVT::i32, ++/*139216*/ OPC_MoveParent, ++/*139217*/ OPC_MoveChild, 10, ++/*139219*/ OPC_CheckInteger, 1, ++/*139221*/ OPC_CheckType, MVT::i32, ++/*139223*/ OPC_MoveParent, ++/*139224*/ OPC_MoveChild, 11, ++/*139226*/ OPC_CheckInteger, 1, ++/*139228*/ OPC_CheckType, MVT::i32, ++/*139230*/ OPC_MoveParent, ++/*139231*/ OPC_MoveChild, 12, ++/*139233*/ OPC_CheckInteger, 1, ++/*139235*/ OPC_CheckType, MVT::i32, ++/*139237*/ OPC_MoveParent, ++/*139238*/ OPC_MoveChild, 13, ++/*139240*/ OPC_CheckInteger, 1, ++/*139242*/ OPC_CheckType, MVT::i32, ++/*139244*/ OPC_MoveParent, ++/*139245*/ OPC_MoveChild, 14, ++/*139247*/ OPC_CheckInteger, 1, ++/*139249*/ OPC_CheckType, MVT::i32, ++/*139251*/ OPC_MoveParent, ++/*139252*/ OPC_MoveChild, 15, ++/*139254*/ OPC_CheckInteger, 1, ++/*139256*/ OPC_CheckType, MVT::i32, ++/*139258*/ OPC_MoveParent, ++/*139259*/ OPC_MoveChild, 16, ++/*139261*/ OPC_CheckInteger, 1, ++/*139263*/ OPC_CheckType, MVT::i32, ++/*139265*/ OPC_MoveParent, ++/*139266*/ OPC_MoveChild, 17, ++/*139268*/ OPC_CheckInteger, 1, ++/*139270*/ OPC_CheckType, MVT::i32, ++/*139272*/ OPC_MoveParent, ++/*139273*/ OPC_MoveChild, 18, ++/*139275*/ OPC_CheckInteger, 1, ++/*139277*/ OPC_CheckType, MVT::i32, ++/*139279*/ OPC_MoveParent, ++/*139280*/ OPC_MoveChild, 19, ++/*139282*/ OPC_CheckInteger, 1, ++/*139284*/ OPC_CheckType, MVT::i32, ++/*139286*/ OPC_MoveParent, ++/*139287*/ OPC_MoveChild, 20, ++/*139289*/ OPC_CheckInteger, 1, ++/*139291*/ OPC_CheckType, MVT::i32, ++/*139293*/ OPC_MoveParent, ++/*139294*/ OPC_MoveChild, 21, ++/*139296*/ OPC_CheckInteger, 1, ++/*139298*/ OPC_CheckType, MVT::i32, ++/*139300*/ OPC_MoveParent, ++/*139301*/ OPC_MoveChild, 22, ++/*139303*/ OPC_CheckInteger, 1, ++/*139305*/ OPC_CheckType, MVT::i32, ++/*139307*/ OPC_MoveParent, ++/*139308*/ OPC_MoveChild, 23, ++/*139310*/ OPC_CheckInteger, 1, ++/*139312*/ OPC_CheckType, MVT::i32, ++/*139314*/ OPC_MoveParent, ++/*139315*/ OPC_MoveChild, 24, ++/*139317*/ OPC_CheckInteger, 1, ++/*139319*/ OPC_CheckType, MVT::i32, ++/*139321*/ OPC_MoveParent, ++/*139322*/ OPC_MoveChild, 25, ++/*139324*/ OPC_CheckInteger, 1, ++/*139326*/ OPC_CheckType, MVT::i32, ++/*139328*/ OPC_MoveParent, ++/*139329*/ OPC_MoveChild, 26, ++/*139331*/ OPC_CheckInteger, 1, ++/*139333*/ OPC_CheckType, MVT::i32, ++/*139335*/ OPC_MoveParent, ++/*139336*/ OPC_MoveChild, 27, ++/*139338*/ OPC_CheckInteger, 1, ++/*139340*/ OPC_CheckType, MVT::i32, ++/*139342*/ OPC_MoveParent, ++/*139343*/ OPC_MoveChild, 28, ++/*139345*/ OPC_CheckInteger, 1, ++/*139347*/ OPC_CheckType, MVT::i32, ++/*139349*/ OPC_MoveParent, ++/*139350*/ OPC_MoveChild, 29, ++/*139352*/ OPC_CheckInteger, 1, ++/*139354*/ OPC_CheckType, MVT::i32, ++/*139356*/ OPC_MoveParent, ++/*139357*/ OPC_MoveChild, 30, ++/*139359*/ OPC_CheckInteger, 1, ++/*139361*/ OPC_CheckType, MVT::i32, ++/*139363*/ OPC_MoveParent, ++/*139364*/ OPC_MoveChild, 31, ++/*139366*/ OPC_CheckInteger, 1, ++/*139368*/ OPC_CheckType, MVT::i32, ++/*139370*/ OPC_MoveParent, ++/*139371*/ OPC_MoveParent, ++/*139372*/ OPC_MoveParent, ++/*139373*/ OPC_MoveChild1, ++/*139374*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*139377*/ OPC_CheckChild0Integer, 7, ++/*139379*/ OPC_CheckChild0Type, MVT::i32, ++/*139381*/ OPC_CheckChild1Integer, 7, ++/*139383*/ OPC_CheckChild1Type, MVT::i32, ++/*139385*/ OPC_CheckChild2Integer, 7, ++/*139387*/ OPC_CheckChild2Type, MVT::i32, ++/*139389*/ OPC_CheckChild3Integer, 7, ++/*139391*/ OPC_CheckChild3Type, MVT::i32, ++/*139393*/ OPC_CheckChild4Integer, 7, ++/*139395*/ OPC_CheckChild4Type, MVT::i32, ++/*139397*/ OPC_MoveChild5, ++/*139398*/ OPC_CheckInteger, 7, ++/*139400*/ OPC_CheckType, MVT::i32, ++/*139402*/ OPC_MoveParent, ++/*139403*/ OPC_MoveChild6, ++/*139404*/ OPC_CheckInteger, 7, ++/*139406*/ OPC_CheckType, MVT::i32, ++/*139408*/ OPC_MoveParent, ++/*139409*/ OPC_MoveChild7, ++/*139410*/ OPC_CheckInteger, 7, ++/*139412*/ OPC_CheckType, MVT::i32, ++/*139414*/ OPC_MoveParent, ++/*139415*/ OPC_MoveChild, 8, ++/*139417*/ OPC_CheckInteger, 7, ++/*139419*/ OPC_CheckType, MVT::i32, ++/*139421*/ OPC_MoveParent, ++/*139422*/ OPC_MoveChild, 9, ++/*139424*/ OPC_CheckInteger, 7, ++/*139426*/ OPC_CheckType, MVT::i32, ++/*139428*/ OPC_MoveParent, ++/*139429*/ OPC_MoveChild, 10, ++/*139431*/ OPC_CheckInteger, 7, ++/*139433*/ OPC_CheckType, MVT::i32, ++/*139435*/ OPC_MoveParent, ++/*139436*/ OPC_MoveChild, 11, ++/*139438*/ OPC_CheckInteger, 7, ++/*139440*/ OPC_CheckType, MVT::i32, ++/*139442*/ OPC_MoveParent, ++/*139443*/ OPC_MoveChild, 12, ++/*139445*/ OPC_CheckInteger, 7, ++/*139447*/ OPC_CheckType, MVT::i32, ++/*139449*/ OPC_MoveParent, ++/*139450*/ OPC_MoveChild, 13, ++/*139452*/ OPC_CheckInteger, 7, ++/*139454*/ OPC_CheckType, MVT::i32, ++/*139456*/ OPC_MoveParent, ++/*139457*/ OPC_MoveChild, 14, ++/*139459*/ OPC_CheckInteger, 7, ++/*139461*/ OPC_CheckType, MVT::i32, ++/*139463*/ OPC_MoveParent, ++/*139464*/ OPC_MoveChild, 15, ++/*139466*/ OPC_CheckInteger, 7, ++/*139468*/ OPC_CheckType, MVT::i32, ++/*139470*/ OPC_MoveParent, ++/*139471*/ OPC_MoveChild, 16, ++/*139473*/ OPC_CheckInteger, 7, ++/*139475*/ OPC_CheckType, MVT::i32, ++/*139477*/ OPC_MoveParent, ++/*139478*/ OPC_MoveChild, 17, ++/*139480*/ OPC_CheckInteger, 7, ++/*139482*/ OPC_CheckType, MVT::i32, ++/*139484*/ OPC_MoveParent, ++/*139485*/ OPC_MoveChild, 18, ++/*139487*/ OPC_CheckInteger, 7, ++/*139489*/ OPC_CheckType, MVT::i32, ++/*139491*/ OPC_MoveParent, ++/*139492*/ OPC_MoveChild, 19, ++/*139494*/ OPC_CheckInteger, 7, ++/*139496*/ OPC_CheckType, MVT::i32, ++/*139498*/ OPC_MoveParent, ++/*139499*/ OPC_MoveChild, 20, ++/*139501*/ OPC_CheckInteger, 7, ++/*139503*/ OPC_CheckType, MVT::i32, ++/*139505*/ OPC_MoveParent, ++/*139506*/ OPC_MoveChild, 21, ++/*139508*/ OPC_CheckInteger, 7, ++/*139510*/ OPC_CheckType, MVT::i32, ++/*139512*/ OPC_MoveParent, ++/*139513*/ OPC_MoveChild, 22, ++/*139515*/ OPC_CheckInteger, 7, ++/*139517*/ OPC_CheckType, MVT::i32, ++/*139519*/ OPC_MoveParent, ++/*139520*/ OPC_MoveChild, 23, ++/*139522*/ OPC_CheckInteger, 7, ++/*139524*/ OPC_CheckType, MVT::i32, ++/*139526*/ OPC_MoveParent, ++/*139527*/ OPC_MoveChild, 24, ++/*139529*/ OPC_CheckInteger, 7, ++/*139531*/ OPC_CheckType, MVT::i32, ++/*139533*/ OPC_MoveParent, ++/*139534*/ OPC_MoveChild, 25, ++/*139536*/ OPC_CheckInteger, 7, ++/*139538*/ OPC_CheckType, MVT::i32, ++/*139540*/ OPC_MoveParent, ++/*139541*/ OPC_MoveChild, 26, ++/*139543*/ OPC_CheckInteger, 7, ++/*139545*/ OPC_CheckType, MVT::i32, ++/*139547*/ OPC_MoveParent, ++/*139548*/ OPC_MoveChild, 27, ++/*139550*/ OPC_CheckInteger, 7, ++/*139552*/ OPC_CheckType, MVT::i32, ++/*139554*/ OPC_MoveParent, ++/*139555*/ OPC_MoveChild, 28, ++/*139557*/ OPC_CheckInteger, 7, ++/*139559*/ OPC_CheckType, MVT::i32, ++/*139561*/ OPC_MoveParent, ++/*139562*/ OPC_MoveChild, 29, ++/*139564*/ OPC_CheckInteger, 7, ++/*139566*/ OPC_CheckType, MVT::i32, ++/*139568*/ OPC_MoveParent, ++/*139569*/ OPC_MoveChild, 30, ++/*139571*/ OPC_CheckInteger, 7, ++/*139573*/ OPC_CheckType, MVT::i32, ++/*139575*/ OPC_MoveParent, ++/*139576*/ OPC_MoveChild, 31, ++/*139578*/ OPC_CheckInteger, 7, ++/*139580*/ OPC_CheckType, MVT::i32, ++/*139582*/ OPC_MoveParent, ++/*139583*/ OPC_CheckType, MVT::v32i8, ++/*139585*/ OPC_MoveParent, ++/*139586*/ OPC_MoveParent, ++/*139587*/ OPC_MoveParent, ++/*139588*/ OPC_MoveChild1, ++/*139589*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*139592*/ OPC_CheckChild0Integer, 1, ++/*139594*/ OPC_CheckChild0Type, MVT::i32, ++/*139596*/ OPC_CheckChild1Integer, 1, ++/*139598*/ OPC_CheckChild1Type, MVT::i32, ++/*139600*/ OPC_CheckChild2Integer, 1, ++/*139602*/ OPC_CheckChild2Type, MVT::i32, ++/*139604*/ OPC_CheckChild3Integer, 1, ++/*139606*/ OPC_CheckChild3Type, MVT::i32, ++/*139608*/ OPC_CheckChild4Integer, 1, ++/*139610*/ OPC_CheckChild4Type, MVT::i32, ++/*139612*/ OPC_MoveChild5, ++/*139613*/ OPC_CheckInteger, 1, ++/*139615*/ OPC_CheckType, MVT::i32, ++/*139617*/ OPC_MoveParent, ++/*139618*/ OPC_MoveChild6, ++/*139619*/ OPC_CheckInteger, 1, ++/*139621*/ OPC_CheckType, MVT::i32, ++/*139623*/ OPC_MoveParent, ++/*139624*/ OPC_MoveChild7, ++/*139625*/ OPC_CheckInteger, 1, ++/*139627*/ OPC_CheckType, MVT::i32, ++/*139629*/ OPC_MoveParent, ++/*139630*/ OPC_MoveChild, 8, ++/*139632*/ OPC_CheckInteger, 1, ++/*139634*/ OPC_CheckType, MVT::i32, ++/*139636*/ OPC_MoveParent, ++/*139637*/ OPC_MoveChild, 9, ++/*139639*/ OPC_CheckInteger, 1, ++/*139641*/ OPC_CheckType, MVT::i32, ++/*139643*/ OPC_MoveParent, ++/*139644*/ OPC_MoveChild, 10, ++/*139646*/ OPC_CheckInteger, 1, ++/*139648*/ OPC_CheckType, MVT::i32, ++/*139650*/ OPC_MoveParent, ++/*139651*/ OPC_MoveChild, 11, ++/*139653*/ OPC_CheckInteger, 1, ++/*139655*/ OPC_CheckType, MVT::i32, ++/*139657*/ OPC_MoveParent, ++/*139658*/ OPC_MoveChild, 12, ++/*139660*/ OPC_CheckInteger, 1, ++/*139662*/ OPC_CheckType, MVT::i32, ++/*139664*/ OPC_MoveParent, ++/*139665*/ OPC_MoveChild, 13, ++/*139667*/ OPC_CheckInteger, 1, ++/*139669*/ OPC_CheckType, MVT::i32, ++/*139671*/ OPC_MoveParent, ++/*139672*/ OPC_MoveChild, 14, ++/*139674*/ OPC_CheckInteger, 1, ++/*139676*/ OPC_CheckType, MVT::i32, ++/*139678*/ OPC_MoveParent, ++/*139679*/ OPC_MoveChild, 15, ++/*139681*/ OPC_CheckInteger, 1, ++/*139683*/ OPC_CheckType, MVT::i32, ++/*139685*/ OPC_MoveParent, ++/*139686*/ OPC_MoveChild, 16, ++/*139688*/ OPC_CheckInteger, 1, ++/*139690*/ OPC_CheckType, MVT::i32, ++/*139692*/ OPC_MoveParent, ++/*139693*/ OPC_MoveChild, 17, ++/*139695*/ OPC_CheckInteger, 1, ++/*139697*/ OPC_CheckType, MVT::i32, ++/*139699*/ OPC_MoveParent, ++/*139700*/ OPC_MoveChild, 18, ++/*139702*/ OPC_CheckInteger, 1, ++/*139704*/ OPC_CheckType, MVT::i32, ++/*139706*/ OPC_MoveParent, ++/*139707*/ OPC_MoveChild, 19, ++/*139709*/ OPC_CheckInteger, 1, ++/*139711*/ OPC_CheckType, MVT::i32, ++/*139713*/ OPC_MoveParent, ++/*139714*/ OPC_MoveChild, 20, ++/*139716*/ OPC_CheckInteger, 1, ++/*139718*/ OPC_CheckType, MVT::i32, ++/*139720*/ OPC_MoveParent, ++/*139721*/ OPC_MoveChild, 21, ++/*139723*/ OPC_CheckInteger, 1, ++/*139725*/ OPC_CheckType, MVT::i32, ++/*139727*/ OPC_MoveParent, ++/*139728*/ OPC_MoveChild, 22, ++/*139730*/ OPC_CheckInteger, 1, ++/*139732*/ OPC_CheckType, MVT::i32, ++/*139734*/ OPC_MoveParent, ++/*139735*/ OPC_MoveChild, 23, ++/*139737*/ OPC_CheckInteger, 1, ++/*139739*/ OPC_CheckType, MVT::i32, ++/*139741*/ OPC_MoveParent, ++/*139742*/ OPC_MoveChild, 24, ++/*139744*/ OPC_CheckInteger, 1, ++/*139746*/ OPC_CheckType, MVT::i32, ++/*139748*/ OPC_MoveParent, ++/*139749*/ OPC_MoveChild, 25, ++/*139751*/ OPC_CheckInteger, 1, ++/*139753*/ OPC_CheckType, MVT::i32, ++/*139755*/ OPC_MoveParent, ++/*139756*/ OPC_MoveChild, 26, ++/*139758*/ OPC_CheckInteger, 1, ++/*139760*/ OPC_CheckType, MVT::i32, ++/*139762*/ OPC_MoveParent, ++/*139763*/ OPC_MoveChild, 27, ++/*139765*/ OPC_CheckInteger, 1, ++/*139767*/ OPC_CheckType, MVT::i32, ++/*139769*/ OPC_MoveParent, ++/*139770*/ OPC_MoveChild, 28, ++/*139772*/ OPC_CheckInteger, 1, ++/*139774*/ OPC_CheckType, MVT::i32, ++/*139776*/ OPC_MoveParent, ++/*139777*/ OPC_MoveChild, 29, ++/*139779*/ OPC_CheckInteger, 1, ++/*139781*/ OPC_CheckType, MVT::i32, ++/*139783*/ OPC_MoveParent, ++/*139784*/ OPC_MoveChild, 30, ++/*139786*/ OPC_CheckInteger, 1, ++/*139788*/ OPC_CheckType, MVT::i32, ++/*139790*/ OPC_MoveParent, ++/*139791*/ OPC_MoveChild, 31, ++/*139793*/ OPC_CheckInteger, 1, ++/*139795*/ OPC_CheckType, MVT::i32, ++/*139797*/ OPC_MoveParent, ++/*139798*/ OPC_CheckType, MVT::v32i8, ++/*139800*/ OPC_MoveParent, ++/*139801*/ OPC_CheckType, MVT::v32i8, ++/*139803*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*139805*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*139813*/ /*Scope*/ 17|128,5/*657*/, /*->140472*/ ++/*139815*/ OPC_CheckChild0Same, 0, ++/*139817*/ OPC_CheckChild1Same, 1, ++/*139819*/ OPC_MoveParent, ++/*139820*/ OPC_MoveChild1, ++/*139821*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*139824*/ OPC_CheckChild0Integer, 1, ++/*139826*/ OPC_CheckChild0Type, MVT::i32, ++/*139828*/ OPC_CheckChild1Integer, 1, ++/*139830*/ OPC_CheckChild1Type, MVT::i32, ++/*139832*/ OPC_CheckChild2Integer, 1, ++/*139834*/ OPC_CheckChild2Type, MVT::i32, ++/*139836*/ OPC_CheckChild3Integer, 1, ++/*139838*/ OPC_CheckChild3Type, MVT::i32, ++/*139840*/ OPC_CheckChild4Integer, 1, ++/*139842*/ OPC_CheckChild4Type, MVT::i32, ++/*139844*/ OPC_MoveChild5, ++/*139845*/ OPC_CheckInteger, 1, ++/*139847*/ OPC_CheckType, MVT::i32, ++/*139849*/ OPC_MoveParent, ++/*139850*/ OPC_MoveChild6, ++/*139851*/ OPC_CheckInteger, 1, ++/*139853*/ OPC_CheckType, MVT::i32, ++/*139855*/ OPC_MoveParent, ++/*139856*/ OPC_MoveChild7, ++/*139857*/ OPC_CheckInteger, 1, ++/*139859*/ OPC_CheckType, MVT::i32, ++/*139861*/ OPC_MoveParent, ++/*139862*/ OPC_MoveChild, 8, ++/*139864*/ OPC_CheckInteger, 1, ++/*139866*/ OPC_CheckType, MVT::i32, ++/*139868*/ OPC_MoveParent, ++/*139869*/ OPC_MoveChild, 9, ++/*139871*/ OPC_CheckInteger, 1, ++/*139873*/ OPC_CheckType, MVT::i32, ++/*139875*/ OPC_MoveParent, ++/*139876*/ OPC_MoveChild, 10, ++/*139878*/ OPC_CheckInteger, 1, ++/*139880*/ OPC_CheckType, MVT::i32, ++/*139882*/ OPC_MoveParent, ++/*139883*/ OPC_MoveChild, 11, ++/*139885*/ OPC_CheckInteger, 1, ++/*139887*/ OPC_CheckType, MVT::i32, ++/*139889*/ OPC_MoveParent, ++/*139890*/ OPC_MoveChild, 12, ++/*139892*/ OPC_CheckInteger, 1, ++/*139894*/ OPC_CheckType, MVT::i32, ++/*139896*/ OPC_MoveParent, ++/*139897*/ OPC_MoveChild, 13, ++/*139899*/ OPC_CheckInteger, 1, ++/*139901*/ OPC_CheckType, MVT::i32, ++/*139903*/ OPC_MoveParent, ++/*139904*/ OPC_MoveChild, 14, ++/*139906*/ OPC_CheckInteger, 1, ++/*139908*/ OPC_CheckType, MVT::i32, ++/*139910*/ OPC_MoveParent, ++/*139911*/ OPC_MoveChild, 15, ++/*139913*/ OPC_CheckInteger, 1, ++/*139915*/ OPC_CheckType, MVT::i32, ++/*139917*/ OPC_MoveParent, ++/*139918*/ OPC_MoveChild, 16, ++/*139920*/ OPC_CheckInteger, 1, ++/*139922*/ OPC_CheckType, MVT::i32, ++/*139924*/ OPC_MoveParent, ++/*139925*/ OPC_MoveChild, 17, ++/*139927*/ OPC_CheckInteger, 1, ++/*139929*/ OPC_CheckType, MVT::i32, ++/*139931*/ OPC_MoveParent, ++/*139932*/ OPC_MoveChild, 18, ++/*139934*/ OPC_CheckInteger, 1, ++/*139936*/ OPC_CheckType, MVT::i32, ++/*139938*/ OPC_MoveParent, ++/*139939*/ OPC_MoveChild, 19, ++/*139941*/ OPC_CheckInteger, 1, ++/*139943*/ OPC_CheckType, MVT::i32, ++/*139945*/ OPC_MoveParent, ++/*139946*/ OPC_MoveChild, 20, ++/*139948*/ OPC_CheckInteger, 1, ++/*139950*/ OPC_CheckType, MVT::i32, ++/*139952*/ OPC_MoveParent, ++/*139953*/ OPC_MoveChild, 21, ++/*139955*/ OPC_CheckInteger, 1, ++/*139957*/ OPC_CheckType, MVT::i32, ++/*139959*/ OPC_MoveParent, ++/*139960*/ OPC_MoveChild, 22, ++/*139962*/ OPC_CheckInteger, 1, ++/*139964*/ OPC_CheckType, MVT::i32, ++/*139966*/ OPC_MoveParent, ++/*139967*/ OPC_MoveChild, 23, ++/*139969*/ OPC_CheckInteger, 1, ++/*139971*/ OPC_CheckType, MVT::i32, ++/*139973*/ OPC_MoveParent, ++/*139974*/ OPC_MoveChild, 24, ++/*139976*/ OPC_CheckInteger, 1, ++/*139978*/ OPC_CheckType, MVT::i32, ++/*139980*/ OPC_MoveParent, ++/*139981*/ OPC_MoveChild, 25, ++/*139983*/ OPC_CheckInteger, 1, ++/*139985*/ OPC_CheckType, MVT::i32, ++/*139987*/ OPC_MoveParent, ++/*139988*/ OPC_MoveChild, 26, ++/*139990*/ OPC_CheckInteger, 1, ++/*139992*/ OPC_CheckType, MVT::i32, ++/*139994*/ OPC_MoveParent, ++/*139995*/ OPC_MoveChild, 27, ++/*139997*/ OPC_CheckInteger, 1, ++/*139999*/ OPC_CheckType, MVT::i32, ++/*140001*/ OPC_MoveParent, ++/*140002*/ OPC_MoveChild, 28, ++/*140004*/ OPC_CheckInteger, 1, ++/*140006*/ OPC_CheckType, MVT::i32, ++/*140008*/ OPC_MoveParent, ++/*140009*/ OPC_MoveChild, 29, ++/*140011*/ OPC_CheckInteger, 1, ++/*140013*/ OPC_CheckType, MVT::i32, ++/*140015*/ OPC_MoveParent, ++/*140016*/ OPC_MoveChild, 30, ++/*140018*/ OPC_CheckInteger, 1, ++/*140020*/ OPC_CheckType, MVT::i32, ++/*140022*/ OPC_MoveParent, ++/*140023*/ OPC_MoveChild, 31, ++/*140025*/ OPC_CheckInteger, 1, ++/*140027*/ OPC_CheckType, MVT::i32, ++/*140029*/ OPC_MoveParent, ++/*140030*/ OPC_MoveParent, ++/*140031*/ OPC_MoveParent, ++/*140032*/ OPC_MoveChild1, ++/*140033*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*140036*/ OPC_CheckChild0Integer, 7, ++/*140038*/ OPC_CheckChild0Type, MVT::i32, ++/*140040*/ OPC_CheckChild1Integer, 7, ++/*140042*/ OPC_CheckChild1Type, MVT::i32, ++/*140044*/ OPC_CheckChild2Integer, 7, ++/*140046*/ OPC_CheckChild2Type, MVT::i32, ++/*140048*/ OPC_CheckChild3Integer, 7, ++/*140050*/ OPC_CheckChild3Type, MVT::i32, ++/*140052*/ OPC_CheckChild4Integer, 7, ++/*140054*/ OPC_CheckChild4Type, MVT::i32, ++/*140056*/ OPC_MoveChild5, ++/*140057*/ OPC_CheckInteger, 7, ++/*140059*/ OPC_CheckType, MVT::i32, ++/*140061*/ OPC_MoveParent, ++/*140062*/ OPC_MoveChild6, ++/*140063*/ OPC_CheckInteger, 7, ++/*140065*/ OPC_CheckType, MVT::i32, ++/*140067*/ OPC_MoveParent, ++/*140068*/ OPC_MoveChild7, ++/*140069*/ OPC_CheckInteger, 7, ++/*140071*/ OPC_CheckType, MVT::i32, ++/*140073*/ OPC_MoveParent, ++/*140074*/ OPC_MoveChild, 8, ++/*140076*/ OPC_CheckInteger, 7, ++/*140078*/ OPC_CheckType, MVT::i32, ++/*140080*/ OPC_MoveParent, ++/*140081*/ OPC_MoveChild, 9, ++/*140083*/ OPC_CheckInteger, 7, ++/*140085*/ OPC_CheckType, MVT::i32, ++/*140087*/ OPC_MoveParent, ++/*140088*/ OPC_MoveChild, 10, ++/*140090*/ OPC_CheckInteger, 7, ++/*140092*/ OPC_CheckType, MVT::i32, ++/*140094*/ OPC_MoveParent, ++/*140095*/ OPC_MoveChild, 11, ++/*140097*/ OPC_CheckInteger, 7, ++/*140099*/ OPC_CheckType, MVT::i32, ++/*140101*/ OPC_MoveParent, ++/*140102*/ OPC_MoveChild, 12, ++/*140104*/ OPC_CheckInteger, 7, ++/*140106*/ OPC_CheckType, MVT::i32, ++/*140108*/ OPC_MoveParent, ++/*140109*/ OPC_MoveChild, 13, ++/*140111*/ OPC_CheckInteger, 7, ++/*140113*/ OPC_CheckType, MVT::i32, ++/*140115*/ OPC_MoveParent, ++/*140116*/ OPC_MoveChild, 14, ++/*140118*/ OPC_CheckInteger, 7, ++/*140120*/ OPC_CheckType, MVT::i32, ++/*140122*/ OPC_MoveParent, ++/*140123*/ OPC_MoveChild, 15, ++/*140125*/ OPC_CheckInteger, 7, ++/*140127*/ OPC_CheckType, MVT::i32, ++/*140129*/ OPC_MoveParent, ++/*140130*/ OPC_MoveChild, 16, ++/*140132*/ OPC_CheckInteger, 7, ++/*140134*/ OPC_CheckType, MVT::i32, ++/*140136*/ OPC_MoveParent, ++/*140137*/ OPC_MoveChild, 17, ++/*140139*/ OPC_CheckInteger, 7, ++/*140141*/ OPC_CheckType, MVT::i32, ++/*140143*/ OPC_MoveParent, ++/*140144*/ OPC_MoveChild, 18, ++/*140146*/ OPC_CheckInteger, 7, ++/*140148*/ OPC_CheckType, MVT::i32, ++/*140150*/ OPC_MoveParent, ++/*140151*/ OPC_MoveChild, 19, ++/*140153*/ OPC_CheckInteger, 7, ++/*140155*/ OPC_CheckType, MVT::i32, ++/*140157*/ OPC_MoveParent, ++/*140158*/ OPC_MoveChild, 20, ++/*140160*/ OPC_CheckInteger, 7, ++/*140162*/ OPC_CheckType, MVT::i32, ++/*140164*/ OPC_MoveParent, ++/*140165*/ OPC_MoveChild, 21, ++/*140167*/ OPC_CheckInteger, 7, ++/*140169*/ OPC_CheckType, MVT::i32, ++/*140171*/ OPC_MoveParent, ++/*140172*/ OPC_MoveChild, 22, ++/*140174*/ OPC_CheckInteger, 7, ++/*140176*/ OPC_CheckType, MVT::i32, ++/*140178*/ OPC_MoveParent, ++/*140179*/ OPC_MoveChild, 23, ++/*140181*/ OPC_CheckInteger, 7, ++/*140183*/ OPC_CheckType, MVT::i32, ++/*140185*/ OPC_MoveParent, ++/*140186*/ OPC_MoveChild, 24, ++/*140188*/ OPC_CheckInteger, 7, ++/*140190*/ OPC_CheckType, MVT::i32, ++/*140192*/ OPC_MoveParent, ++/*140193*/ OPC_MoveChild, 25, ++/*140195*/ OPC_CheckInteger, 7, ++/*140197*/ OPC_CheckType, MVT::i32, ++/*140199*/ OPC_MoveParent, ++/*140200*/ OPC_MoveChild, 26, ++/*140202*/ OPC_CheckInteger, 7, ++/*140204*/ OPC_CheckType, MVT::i32, ++/*140206*/ OPC_MoveParent, ++/*140207*/ OPC_MoveChild, 27, ++/*140209*/ OPC_CheckInteger, 7, ++/*140211*/ OPC_CheckType, MVT::i32, ++/*140213*/ OPC_MoveParent, ++/*140214*/ OPC_MoveChild, 28, ++/*140216*/ OPC_CheckInteger, 7, ++/*140218*/ OPC_CheckType, MVT::i32, ++/*140220*/ OPC_MoveParent, ++/*140221*/ OPC_MoveChild, 29, ++/*140223*/ OPC_CheckInteger, 7, ++/*140225*/ OPC_CheckType, MVT::i32, ++/*140227*/ OPC_MoveParent, ++/*140228*/ OPC_MoveChild, 30, ++/*140230*/ OPC_CheckInteger, 7, ++/*140232*/ OPC_CheckType, MVT::i32, ++/*140234*/ OPC_MoveParent, ++/*140235*/ OPC_MoveChild, 31, ++/*140237*/ OPC_CheckInteger, 7, ++/*140239*/ OPC_CheckType, MVT::i32, ++/*140241*/ OPC_MoveParent, ++/*140242*/ OPC_CheckType, MVT::v32i8, ++/*140244*/ OPC_MoveParent, ++/*140245*/ OPC_MoveParent, ++/*140246*/ OPC_MoveParent, ++/*140247*/ OPC_MoveChild1, ++/*140248*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*140251*/ OPC_CheckChild0Integer, 1, ++/*140253*/ OPC_CheckChild0Type, MVT::i32, ++/*140255*/ OPC_CheckChild1Integer, 1, ++/*140257*/ OPC_CheckChild1Type, MVT::i32, ++/*140259*/ OPC_CheckChild2Integer, 1, ++/*140261*/ OPC_CheckChild2Type, MVT::i32, ++/*140263*/ OPC_CheckChild3Integer, 1, ++/*140265*/ OPC_CheckChild3Type, MVT::i32, ++/*140267*/ OPC_CheckChild4Integer, 1, ++/*140269*/ OPC_CheckChild4Type, MVT::i32, ++/*140271*/ OPC_MoveChild5, ++/*140272*/ OPC_CheckInteger, 1, ++/*140274*/ OPC_CheckType, MVT::i32, ++/*140276*/ OPC_MoveParent, ++/*140277*/ OPC_MoveChild6, ++/*140278*/ OPC_CheckInteger, 1, ++/*140280*/ OPC_CheckType, MVT::i32, ++/*140282*/ OPC_MoveParent, ++/*140283*/ OPC_MoveChild7, ++/*140284*/ OPC_CheckInteger, 1, ++/*140286*/ OPC_CheckType, MVT::i32, ++/*140288*/ OPC_MoveParent, ++/*140289*/ OPC_MoveChild, 8, ++/*140291*/ OPC_CheckInteger, 1, ++/*140293*/ OPC_CheckType, MVT::i32, ++/*140295*/ OPC_MoveParent, ++/*140296*/ OPC_MoveChild, 9, ++/*140298*/ OPC_CheckInteger, 1, ++/*140300*/ OPC_CheckType, MVT::i32, ++/*140302*/ OPC_MoveParent, ++/*140303*/ OPC_MoveChild, 10, ++/*140305*/ OPC_CheckInteger, 1, ++/*140307*/ OPC_CheckType, MVT::i32, ++/*140309*/ OPC_MoveParent, ++/*140310*/ OPC_MoveChild, 11, ++/*140312*/ OPC_CheckInteger, 1, ++/*140314*/ OPC_CheckType, MVT::i32, ++/*140316*/ OPC_MoveParent, ++/*140317*/ OPC_MoveChild, 12, ++/*140319*/ OPC_CheckInteger, 1, ++/*140321*/ OPC_CheckType, MVT::i32, ++/*140323*/ OPC_MoveParent, ++/*140324*/ OPC_MoveChild, 13, ++/*140326*/ OPC_CheckInteger, 1, ++/*140328*/ OPC_CheckType, MVT::i32, ++/*140330*/ OPC_MoveParent, ++/*140331*/ OPC_MoveChild, 14, ++/*140333*/ OPC_CheckInteger, 1, ++/*140335*/ OPC_CheckType, MVT::i32, ++/*140337*/ OPC_MoveParent, ++/*140338*/ OPC_MoveChild, 15, ++/*140340*/ OPC_CheckInteger, 1, ++/*140342*/ OPC_CheckType, MVT::i32, ++/*140344*/ OPC_MoveParent, ++/*140345*/ OPC_MoveChild, 16, ++/*140347*/ OPC_CheckInteger, 1, ++/*140349*/ OPC_CheckType, MVT::i32, ++/*140351*/ OPC_MoveParent, ++/*140352*/ OPC_MoveChild, 17, ++/*140354*/ OPC_CheckInteger, 1, ++/*140356*/ OPC_CheckType, MVT::i32, ++/*140358*/ OPC_MoveParent, ++/*140359*/ OPC_MoveChild, 18, ++/*140361*/ OPC_CheckInteger, 1, ++/*140363*/ OPC_CheckType, MVT::i32, ++/*140365*/ OPC_MoveParent, ++/*140366*/ OPC_MoveChild, 19, ++/*140368*/ OPC_CheckInteger, 1, ++/*140370*/ OPC_CheckType, MVT::i32, ++/*140372*/ OPC_MoveParent, ++/*140373*/ OPC_MoveChild, 20, ++/*140375*/ OPC_CheckInteger, 1, ++/*140377*/ OPC_CheckType, MVT::i32, ++/*140379*/ OPC_MoveParent, ++/*140380*/ OPC_MoveChild, 21, ++/*140382*/ OPC_CheckInteger, 1, ++/*140384*/ OPC_CheckType, MVT::i32, ++/*140386*/ OPC_MoveParent, ++/*140387*/ OPC_MoveChild, 22, ++/*140389*/ OPC_CheckInteger, 1, ++/*140391*/ OPC_CheckType, MVT::i32, ++/*140393*/ OPC_MoveParent, ++/*140394*/ OPC_MoveChild, 23, ++/*140396*/ OPC_CheckInteger, 1, ++/*140398*/ OPC_CheckType, MVT::i32, ++/*140400*/ OPC_MoveParent, ++/*140401*/ OPC_MoveChild, 24, ++/*140403*/ OPC_CheckInteger, 1, ++/*140405*/ OPC_CheckType, MVT::i32, ++/*140407*/ OPC_MoveParent, ++/*140408*/ OPC_MoveChild, 25, ++/*140410*/ OPC_CheckInteger, 1, ++/*140412*/ OPC_CheckType, MVT::i32, ++/*140414*/ OPC_MoveParent, ++/*140415*/ OPC_MoveChild, 26, ++/*140417*/ OPC_CheckInteger, 1, ++/*140419*/ OPC_CheckType, MVT::i32, ++/*140421*/ OPC_MoveParent, ++/*140422*/ OPC_MoveChild, 27, ++/*140424*/ OPC_CheckInteger, 1, ++/*140426*/ OPC_CheckType, MVT::i32, ++/*140428*/ OPC_MoveParent, ++/*140429*/ OPC_MoveChild, 28, ++/*140431*/ OPC_CheckInteger, 1, ++/*140433*/ OPC_CheckType, MVT::i32, ++/*140435*/ OPC_MoveParent, ++/*140436*/ OPC_MoveChild, 29, ++/*140438*/ OPC_CheckInteger, 1, ++/*140440*/ OPC_CheckType, MVT::i32, ++/*140442*/ OPC_MoveParent, ++/*140443*/ OPC_MoveChild, 30, ++/*140445*/ OPC_CheckInteger, 1, ++/*140447*/ OPC_CheckType, MVT::i32, ++/*140449*/ OPC_MoveParent, ++/*140450*/ OPC_MoveChild, 31, ++/*140452*/ OPC_CheckInteger, 1, ++/*140454*/ OPC_CheckType, MVT::i32, ++/*140456*/ OPC_MoveParent, ++/*140457*/ OPC_CheckType, MVT::v32i8, ++/*140459*/ OPC_MoveParent, ++/*140460*/ OPC_CheckType, MVT::v32i8, ++/*140462*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*140464*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*140472*/ 0, /*End of Scope*/ ++/*140473*/ /*Scope*/ 42|128,10/*1322*/, /*->141797*/ ++/*140475*/ OPC_CheckChild0Same, 0, ++/*140477*/ OPC_MoveChild1, ++/*140478*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*140481*/ OPC_Scope, 15|128,5/*655*/, /*->141139*/ // 2 children in Scope ++/*140484*/ OPC_MoveChild0, ++/*140485*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*140488*/ OPC_CheckChild0Integer, 1, ++/*140490*/ OPC_CheckChild0Type, MVT::i32, ++/*140492*/ OPC_CheckChild1Integer, 1, ++/*140494*/ OPC_CheckChild1Type, MVT::i32, ++/*140496*/ OPC_CheckChild2Integer, 1, ++/*140498*/ OPC_CheckChild2Type, MVT::i32, ++/*140500*/ OPC_CheckChild3Integer, 1, ++/*140502*/ OPC_CheckChild3Type, MVT::i32, ++/*140504*/ OPC_CheckChild4Integer, 1, ++/*140506*/ OPC_CheckChild4Type, MVT::i32, ++/*140508*/ OPC_MoveChild5, ++/*140509*/ OPC_CheckInteger, 1, ++/*140511*/ OPC_CheckType, MVT::i32, ++/*140513*/ OPC_MoveParent, ++/*140514*/ OPC_MoveChild6, ++/*140515*/ OPC_CheckInteger, 1, ++/*140517*/ OPC_CheckType, MVT::i32, ++/*140519*/ OPC_MoveParent, ++/*140520*/ OPC_MoveChild7, ++/*140521*/ OPC_CheckInteger, 1, ++/*140523*/ OPC_CheckType, MVT::i32, ++/*140525*/ OPC_MoveParent, ++/*140526*/ OPC_MoveChild, 8, ++/*140528*/ OPC_CheckInteger, 1, ++/*140530*/ OPC_CheckType, MVT::i32, ++/*140532*/ OPC_MoveParent, ++/*140533*/ OPC_MoveChild, 9, ++/*140535*/ OPC_CheckInteger, 1, ++/*140537*/ OPC_CheckType, MVT::i32, ++/*140539*/ OPC_MoveParent, ++/*140540*/ OPC_MoveChild, 10, ++/*140542*/ OPC_CheckInteger, 1, ++/*140544*/ OPC_CheckType, MVT::i32, ++/*140546*/ OPC_MoveParent, ++/*140547*/ OPC_MoveChild, 11, ++/*140549*/ OPC_CheckInteger, 1, ++/*140551*/ OPC_CheckType, MVT::i32, ++/*140553*/ OPC_MoveParent, ++/*140554*/ OPC_MoveChild, 12, ++/*140556*/ OPC_CheckInteger, 1, ++/*140558*/ OPC_CheckType, MVT::i32, ++/*140560*/ OPC_MoveParent, ++/*140561*/ OPC_MoveChild, 13, ++/*140563*/ OPC_CheckInteger, 1, ++/*140565*/ OPC_CheckType, MVT::i32, ++/*140567*/ OPC_MoveParent, ++/*140568*/ OPC_MoveChild, 14, ++/*140570*/ OPC_CheckInteger, 1, ++/*140572*/ OPC_CheckType, MVT::i32, ++/*140574*/ OPC_MoveParent, ++/*140575*/ OPC_MoveChild, 15, ++/*140577*/ OPC_CheckInteger, 1, ++/*140579*/ OPC_CheckType, MVT::i32, ++/*140581*/ OPC_MoveParent, ++/*140582*/ OPC_MoveChild, 16, ++/*140584*/ OPC_CheckInteger, 1, ++/*140586*/ OPC_CheckType, MVT::i32, ++/*140588*/ OPC_MoveParent, ++/*140589*/ OPC_MoveChild, 17, ++/*140591*/ OPC_CheckInteger, 1, ++/*140593*/ OPC_CheckType, MVT::i32, ++/*140595*/ OPC_MoveParent, ++/*140596*/ OPC_MoveChild, 18, ++/*140598*/ OPC_CheckInteger, 1, ++/*140600*/ OPC_CheckType, MVT::i32, ++/*140602*/ OPC_MoveParent, ++/*140603*/ OPC_MoveChild, 19, ++/*140605*/ OPC_CheckInteger, 1, ++/*140607*/ OPC_CheckType, MVT::i32, ++/*140609*/ OPC_MoveParent, ++/*140610*/ OPC_MoveChild, 20, ++/*140612*/ OPC_CheckInteger, 1, ++/*140614*/ OPC_CheckType, MVT::i32, ++/*140616*/ OPC_MoveParent, ++/*140617*/ OPC_MoveChild, 21, ++/*140619*/ OPC_CheckInteger, 1, ++/*140621*/ OPC_CheckType, MVT::i32, ++/*140623*/ OPC_MoveParent, ++/*140624*/ OPC_MoveChild, 22, ++/*140626*/ OPC_CheckInteger, 1, ++/*140628*/ OPC_CheckType, MVT::i32, ++/*140630*/ OPC_MoveParent, ++/*140631*/ OPC_MoveChild, 23, ++/*140633*/ OPC_CheckInteger, 1, ++/*140635*/ OPC_CheckType, MVT::i32, ++/*140637*/ OPC_MoveParent, ++/*140638*/ OPC_MoveChild, 24, ++/*140640*/ OPC_CheckInteger, 1, ++/*140642*/ OPC_CheckType, MVT::i32, ++/*140644*/ OPC_MoveParent, ++/*140645*/ OPC_MoveChild, 25, ++/*140647*/ OPC_CheckInteger, 1, ++/*140649*/ OPC_CheckType, MVT::i32, ++/*140651*/ OPC_MoveParent, ++/*140652*/ OPC_MoveChild, 26, ++/*140654*/ OPC_CheckInteger, 1, ++/*140656*/ OPC_CheckType, MVT::i32, ++/*140658*/ OPC_MoveParent, ++/*140659*/ OPC_MoveChild, 27, ++/*140661*/ OPC_CheckInteger, 1, ++/*140663*/ OPC_CheckType, MVT::i32, ++/*140665*/ OPC_MoveParent, ++/*140666*/ OPC_MoveChild, 28, ++/*140668*/ OPC_CheckInteger, 1, ++/*140670*/ OPC_CheckType, MVT::i32, ++/*140672*/ OPC_MoveParent, ++/*140673*/ OPC_MoveChild, 29, ++/*140675*/ OPC_CheckInteger, 1, ++/*140677*/ OPC_CheckType, MVT::i32, ++/*140679*/ OPC_MoveParent, ++/*140680*/ OPC_MoveChild, 30, ++/*140682*/ OPC_CheckInteger, 1, ++/*140684*/ OPC_CheckType, MVT::i32, ++/*140686*/ OPC_MoveParent, ++/*140687*/ OPC_MoveChild, 31, ++/*140689*/ OPC_CheckInteger, 1, ++/*140691*/ OPC_CheckType, MVT::i32, ++/*140693*/ OPC_MoveParent, ++/*140694*/ OPC_MoveParent, ++/*140695*/ OPC_CheckChild1Same, 1, ++/*140697*/ OPC_MoveParent, ++/*140698*/ OPC_MoveParent, ++/*140699*/ OPC_MoveChild1, ++/*140700*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*140703*/ OPC_CheckChild0Integer, 7, ++/*140705*/ OPC_CheckChild0Type, MVT::i32, ++/*140707*/ OPC_CheckChild1Integer, 7, ++/*140709*/ OPC_CheckChild1Type, MVT::i32, ++/*140711*/ OPC_CheckChild2Integer, 7, ++/*140713*/ OPC_CheckChild2Type, MVT::i32, ++/*140715*/ OPC_CheckChild3Integer, 7, ++/*140717*/ OPC_CheckChild3Type, MVT::i32, ++/*140719*/ OPC_CheckChild4Integer, 7, ++/*140721*/ OPC_CheckChild4Type, MVT::i32, ++/*140723*/ OPC_MoveChild5, ++/*140724*/ OPC_CheckInteger, 7, ++/*140726*/ OPC_CheckType, MVT::i32, ++/*140728*/ OPC_MoveParent, ++/*140729*/ OPC_MoveChild6, ++/*140730*/ OPC_CheckInteger, 7, ++/*140732*/ OPC_CheckType, MVT::i32, ++/*140734*/ OPC_MoveParent, ++/*140735*/ OPC_MoveChild7, ++/*140736*/ OPC_CheckInteger, 7, ++/*140738*/ OPC_CheckType, MVT::i32, ++/*140740*/ OPC_MoveParent, ++/*140741*/ OPC_MoveChild, 8, ++/*140743*/ OPC_CheckInteger, 7, ++/*140745*/ OPC_CheckType, MVT::i32, ++/*140747*/ OPC_MoveParent, ++/*140748*/ OPC_MoveChild, 9, ++/*140750*/ OPC_CheckInteger, 7, ++/*140752*/ OPC_CheckType, MVT::i32, ++/*140754*/ OPC_MoveParent, ++/*140755*/ OPC_MoveChild, 10, ++/*140757*/ OPC_CheckInteger, 7, ++/*140759*/ OPC_CheckType, MVT::i32, ++/*140761*/ OPC_MoveParent, ++/*140762*/ OPC_MoveChild, 11, ++/*140764*/ OPC_CheckInteger, 7, ++/*140766*/ OPC_CheckType, MVT::i32, ++/*140768*/ OPC_MoveParent, ++/*140769*/ OPC_MoveChild, 12, ++/*140771*/ OPC_CheckInteger, 7, ++/*140773*/ OPC_CheckType, MVT::i32, ++/*140775*/ OPC_MoveParent, ++/*140776*/ OPC_MoveChild, 13, ++/*140778*/ OPC_CheckInteger, 7, ++/*140780*/ OPC_CheckType, MVT::i32, ++/*140782*/ OPC_MoveParent, ++/*140783*/ OPC_MoveChild, 14, ++/*140785*/ OPC_CheckInteger, 7, ++/*140787*/ OPC_CheckType, MVT::i32, ++/*140789*/ OPC_MoveParent, ++/*140790*/ OPC_MoveChild, 15, ++/*140792*/ OPC_CheckInteger, 7, ++/*140794*/ OPC_CheckType, MVT::i32, ++/*140796*/ OPC_MoveParent, ++/*140797*/ OPC_MoveChild, 16, ++/*140799*/ OPC_CheckInteger, 7, ++/*140801*/ OPC_CheckType, MVT::i32, ++/*140803*/ OPC_MoveParent, ++/*140804*/ OPC_MoveChild, 17, ++/*140806*/ OPC_CheckInteger, 7, ++/*140808*/ OPC_CheckType, MVT::i32, ++/*140810*/ OPC_MoveParent, ++/*140811*/ OPC_MoveChild, 18, ++/*140813*/ OPC_CheckInteger, 7, ++/*140815*/ OPC_CheckType, MVT::i32, ++/*140817*/ OPC_MoveParent, ++/*140818*/ OPC_MoveChild, 19, ++/*140820*/ OPC_CheckInteger, 7, ++/*140822*/ OPC_CheckType, MVT::i32, ++/*140824*/ OPC_MoveParent, ++/*140825*/ OPC_MoveChild, 20, ++/*140827*/ OPC_CheckInteger, 7, ++/*140829*/ OPC_CheckType, MVT::i32, ++/*140831*/ OPC_MoveParent, ++/*140832*/ OPC_MoveChild, 21, ++/*140834*/ OPC_CheckInteger, 7, ++/*140836*/ OPC_CheckType, MVT::i32, ++/*140838*/ OPC_MoveParent, ++/*140839*/ OPC_MoveChild, 22, ++/*140841*/ OPC_CheckInteger, 7, ++/*140843*/ OPC_CheckType, MVT::i32, ++/*140845*/ OPC_MoveParent, ++/*140846*/ OPC_MoveChild, 23, ++/*140848*/ OPC_CheckInteger, 7, ++/*140850*/ OPC_CheckType, MVT::i32, ++/*140852*/ OPC_MoveParent, ++/*140853*/ OPC_MoveChild, 24, ++/*140855*/ OPC_CheckInteger, 7, ++/*140857*/ OPC_CheckType, MVT::i32, ++/*140859*/ OPC_MoveParent, ++/*140860*/ OPC_MoveChild, 25, ++/*140862*/ OPC_CheckInteger, 7, ++/*140864*/ OPC_CheckType, MVT::i32, ++/*140866*/ OPC_MoveParent, ++/*140867*/ OPC_MoveChild, 26, ++/*140869*/ OPC_CheckInteger, 7, ++/*140871*/ OPC_CheckType, MVT::i32, ++/*140873*/ OPC_MoveParent, ++/*140874*/ OPC_MoveChild, 27, ++/*140876*/ OPC_CheckInteger, 7, ++/*140878*/ OPC_CheckType, MVT::i32, ++/*140880*/ OPC_MoveParent, ++/*140881*/ OPC_MoveChild, 28, ++/*140883*/ OPC_CheckInteger, 7, ++/*140885*/ OPC_CheckType, MVT::i32, ++/*140887*/ OPC_MoveParent, ++/*140888*/ OPC_MoveChild, 29, ++/*140890*/ OPC_CheckInteger, 7, ++/*140892*/ OPC_CheckType, MVT::i32, ++/*140894*/ OPC_MoveParent, ++/*140895*/ OPC_MoveChild, 30, ++/*140897*/ OPC_CheckInteger, 7, ++/*140899*/ OPC_CheckType, MVT::i32, ++/*140901*/ OPC_MoveParent, ++/*140902*/ OPC_MoveChild, 31, ++/*140904*/ OPC_CheckInteger, 7, ++/*140906*/ OPC_CheckType, MVT::i32, ++/*140908*/ OPC_MoveParent, ++/*140909*/ OPC_CheckType, MVT::v32i8, ++/*140911*/ OPC_MoveParent, ++/*140912*/ OPC_MoveParent, ++/*140913*/ OPC_MoveParent, ++/*140914*/ OPC_MoveChild1, ++/*140915*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*140918*/ OPC_CheckChild0Integer, 1, ++/*140920*/ OPC_CheckChild0Type, MVT::i32, ++/*140922*/ OPC_CheckChild1Integer, 1, ++/*140924*/ OPC_CheckChild1Type, MVT::i32, ++/*140926*/ OPC_CheckChild2Integer, 1, ++/*140928*/ OPC_CheckChild2Type, MVT::i32, ++/*140930*/ OPC_CheckChild3Integer, 1, ++/*140932*/ OPC_CheckChild3Type, MVT::i32, ++/*140934*/ OPC_CheckChild4Integer, 1, ++/*140936*/ OPC_CheckChild4Type, MVT::i32, ++/*140938*/ OPC_MoveChild5, ++/*140939*/ OPC_CheckInteger, 1, ++/*140941*/ OPC_CheckType, MVT::i32, ++/*140943*/ OPC_MoveParent, ++/*140944*/ OPC_MoveChild6, ++/*140945*/ OPC_CheckInteger, 1, ++/*140947*/ OPC_CheckType, MVT::i32, ++/*140949*/ OPC_MoveParent, ++/*140950*/ OPC_MoveChild7, ++/*140951*/ OPC_CheckInteger, 1, ++/*140953*/ OPC_CheckType, MVT::i32, ++/*140955*/ OPC_MoveParent, ++/*140956*/ OPC_MoveChild, 8, ++/*140958*/ OPC_CheckInteger, 1, ++/*140960*/ OPC_CheckType, MVT::i32, ++/*140962*/ OPC_MoveParent, ++/*140963*/ OPC_MoveChild, 9, ++/*140965*/ OPC_CheckInteger, 1, ++/*140967*/ OPC_CheckType, MVT::i32, ++/*140969*/ OPC_MoveParent, ++/*140970*/ OPC_MoveChild, 10, ++/*140972*/ OPC_CheckInteger, 1, ++/*140974*/ OPC_CheckType, MVT::i32, ++/*140976*/ OPC_MoveParent, ++/*140977*/ OPC_MoveChild, 11, ++/*140979*/ OPC_CheckInteger, 1, ++/*140981*/ OPC_CheckType, MVT::i32, ++/*140983*/ OPC_MoveParent, ++/*140984*/ OPC_MoveChild, 12, ++/*140986*/ OPC_CheckInteger, 1, ++/*140988*/ OPC_CheckType, MVT::i32, ++/*140990*/ OPC_MoveParent, ++/*140991*/ OPC_MoveChild, 13, ++/*140993*/ OPC_CheckInteger, 1, ++/*140995*/ OPC_CheckType, MVT::i32, ++/*140997*/ OPC_MoveParent, ++/*140998*/ OPC_MoveChild, 14, ++/*141000*/ OPC_CheckInteger, 1, ++/*141002*/ OPC_CheckType, MVT::i32, ++/*141004*/ OPC_MoveParent, ++/*141005*/ OPC_MoveChild, 15, ++/*141007*/ OPC_CheckInteger, 1, ++/*141009*/ OPC_CheckType, MVT::i32, ++/*141011*/ OPC_MoveParent, ++/*141012*/ OPC_MoveChild, 16, ++/*141014*/ OPC_CheckInteger, 1, ++/*141016*/ OPC_CheckType, MVT::i32, ++/*141018*/ OPC_MoveParent, ++/*141019*/ OPC_MoveChild, 17, ++/*141021*/ OPC_CheckInteger, 1, ++/*141023*/ OPC_CheckType, MVT::i32, ++/*141025*/ OPC_MoveParent, ++/*141026*/ OPC_MoveChild, 18, ++/*141028*/ OPC_CheckInteger, 1, ++/*141030*/ OPC_CheckType, MVT::i32, ++/*141032*/ OPC_MoveParent, ++/*141033*/ OPC_MoveChild, 19, ++/*141035*/ OPC_CheckInteger, 1, ++/*141037*/ OPC_CheckType, MVT::i32, ++/*141039*/ OPC_MoveParent, ++/*141040*/ OPC_MoveChild, 20, ++/*141042*/ OPC_CheckInteger, 1, ++/*141044*/ OPC_CheckType, MVT::i32, ++/*141046*/ OPC_MoveParent, ++/*141047*/ OPC_MoveChild, 21, ++/*141049*/ OPC_CheckInteger, 1, ++/*141051*/ OPC_CheckType, MVT::i32, ++/*141053*/ OPC_MoveParent, ++/*141054*/ OPC_MoveChild, 22, ++/*141056*/ OPC_CheckInteger, 1, ++/*141058*/ OPC_CheckType, MVT::i32, ++/*141060*/ OPC_MoveParent, ++/*141061*/ OPC_MoveChild, 23, ++/*141063*/ OPC_CheckInteger, 1, ++/*141065*/ OPC_CheckType, MVT::i32, ++/*141067*/ OPC_MoveParent, ++/*141068*/ OPC_MoveChild, 24, ++/*141070*/ OPC_CheckInteger, 1, ++/*141072*/ OPC_CheckType, MVT::i32, ++/*141074*/ OPC_MoveParent, ++/*141075*/ OPC_MoveChild, 25, ++/*141077*/ OPC_CheckInteger, 1, ++/*141079*/ OPC_CheckType, MVT::i32, ++/*141081*/ OPC_MoveParent, ++/*141082*/ OPC_MoveChild, 26, ++/*141084*/ OPC_CheckInteger, 1, ++/*141086*/ OPC_CheckType, MVT::i32, ++/*141088*/ OPC_MoveParent, ++/*141089*/ OPC_MoveChild, 27, ++/*141091*/ OPC_CheckInteger, 1, ++/*141093*/ OPC_CheckType, MVT::i32, ++/*141095*/ OPC_MoveParent, ++/*141096*/ OPC_MoveChild, 28, ++/*141098*/ OPC_CheckInteger, 1, ++/*141100*/ OPC_CheckType, MVT::i32, ++/*141102*/ OPC_MoveParent, ++/*141103*/ OPC_MoveChild, 29, ++/*141105*/ OPC_CheckInteger, 1, ++/*141107*/ OPC_CheckType, MVT::i32, ++/*141109*/ OPC_MoveParent, ++/*141110*/ OPC_MoveChild, 30, ++/*141112*/ OPC_CheckInteger, 1, ++/*141114*/ OPC_CheckType, MVT::i32, ++/*141116*/ OPC_MoveParent, ++/*141117*/ OPC_MoveChild, 31, ++/*141119*/ OPC_CheckInteger, 1, ++/*141121*/ OPC_CheckType, MVT::i32, ++/*141123*/ OPC_MoveParent, ++/*141124*/ OPC_CheckType, MVT::v32i8, ++/*141126*/ OPC_MoveParent, ++/*141127*/ OPC_CheckType, MVT::v32i8, ++/*141129*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*141131*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*141139*/ /*Scope*/ 15|128,5/*655*/, /*->141796*/ ++/*141141*/ OPC_CheckChild0Same, 1, ++/*141143*/ OPC_MoveChild1, ++/*141144*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*141147*/ OPC_CheckChild0Integer, 1, ++/*141149*/ OPC_CheckChild0Type, MVT::i32, ++/*141151*/ OPC_CheckChild1Integer, 1, ++/*141153*/ OPC_CheckChild1Type, MVT::i32, ++/*141155*/ OPC_CheckChild2Integer, 1, ++/*141157*/ OPC_CheckChild2Type, MVT::i32, ++/*141159*/ OPC_CheckChild3Integer, 1, ++/*141161*/ OPC_CheckChild3Type, MVT::i32, ++/*141163*/ OPC_CheckChild4Integer, 1, ++/*141165*/ OPC_CheckChild4Type, MVT::i32, ++/*141167*/ OPC_MoveChild5, ++/*141168*/ OPC_CheckInteger, 1, ++/*141170*/ OPC_CheckType, MVT::i32, ++/*141172*/ OPC_MoveParent, ++/*141173*/ OPC_MoveChild6, ++/*141174*/ OPC_CheckInteger, 1, ++/*141176*/ OPC_CheckType, MVT::i32, ++/*141178*/ OPC_MoveParent, ++/*141179*/ OPC_MoveChild7, ++/*141180*/ OPC_CheckInteger, 1, ++/*141182*/ OPC_CheckType, MVT::i32, ++/*141184*/ OPC_MoveParent, ++/*141185*/ OPC_MoveChild, 8, ++/*141187*/ OPC_CheckInteger, 1, ++/*141189*/ OPC_CheckType, MVT::i32, ++/*141191*/ OPC_MoveParent, ++/*141192*/ OPC_MoveChild, 9, ++/*141194*/ OPC_CheckInteger, 1, ++/*141196*/ OPC_CheckType, MVT::i32, ++/*141198*/ OPC_MoveParent, ++/*141199*/ OPC_MoveChild, 10, ++/*141201*/ OPC_CheckInteger, 1, ++/*141203*/ OPC_CheckType, MVT::i32, ++/*141205*/ OPC_MoveParent, ++/*141206*/ OPC_MoveChild, 11, ++/*141208*/ OPC_CheckInteger, 1, ++/*141210*/ OPC_CheckType, MVT::i32, ++/*141212*/ OPC_MoveParent, ++/*141213*/ OPC_MoveChild, 12, ++/*141215*/ OPC_CheckInteger, 1, ++/*141217*/ OPC_CheckType, MVT::i32, ++/*141219*/ OPC_MoveParent, ++/*141220*/ OPC_MoveChild, 13, ++/*141222*/ OPC_CheckInteger, 1, ++/*141224*/ OPC_CheckType, MVT::i32, ++/*141226*/ OPC_MoveParent, ++/*141227*/ OPC_MoveChild, 14, ++/*141229*/ OPC_CheckInteger, 1, ++/*141231*/ OPC_CheckType, MVT::i32, ++/*141233*/ OPC_MoveParent, ++/*141234*/ OPC_MoveChild, 15, ++/*141236*/ OPC_CheckInteger, 1, ++/*141238*/ OPC_CheckType, MVT::i32, ++/*141240*/ OPC_MoveParent, ++/*141241*/ OPC_MoveChild, 16, ++/*141243*/ OPC_CheckInteger, 1, ++/*141245*/ OPC_CheckType, MVT::i32, ++/*141247*/ OPC_MoveParent, ++/*141248*/ OPC_MoveChild, 17, ++/*141250*/ OPC_CheckInteger, 1, ++/*141252*/ OPC_CheckType, MVT::i32, ++/*141254*/ OPC_MoveParent, ++/*141255*/ OPC_MoveChild, 18, ++/*141257*/ OPC_CheckInteger, 1, ++/*141259*/ OPC_CheckType, MVT::i32, ++/*141261*/ OPC_MoveParent, ++/*141262*/ OPC_MoveChild, 19, ++/*141264*/ OPC_CheckInteger, 1, ++/*141266*/ OPC_CheckType, MVT::i32, ++/*141268*/ OPC_MoveParent, ++/*141269*/ OPC_MoveChild, 20, ++/*141271*/ OPC_CheckInteger, 1, ++/*141273*/ OPC_CheckType, MVT::i32, ++/*141275*/ OPC_MoveParent, ++/*141276*/ OPC_MoveChild, 21, ++/*141278*/ OPC_CheckInteger, 1, ++/*141280*/ OPC_CheckType, MVT::i32, ++/*141282*/ OPC_MoveParent, ++/*141283*/ OPC_MoveChild, 22, ++/*141285*/ OPC_CheckInteger, 1, ++/*141287*/ OPC_CheckType, MVT::i32, ++/*141289*/ OPC_MoveParent, ++/*141290*/ OPC_MoveChild, 23, ++/*141292*/ OPC_CheckInteger, 1, ++/*141294*/ OPC_CheckType, MVT::i32, ++/*141296*/ OPC_MoveParent, ++/*141297*/ OPC_MoveChild, 24, ++/*141299*/ OPC_CheckInteger, 1, ++/*141301*/ OPC_CheckType, MVT::i32, ++/*141303*/ OPC_MoveParent, ++/*141304*/ OPC_MoveChild, 25, ++/*141306*/ OPC_CheckInteger, 1, ++/*141308*/ OPC_CheckType, MVT::i32, ++/*141310*/ OPC_MoveParent, ++/*141311*/ OPC_MoveChild, 26, ++/*141313*/ OPC_CheckInteger, 1, ++/*141315*/ OPC_CheckType, MVT::i32, ++/*141317*/ OPC_MoveParent, ++/*141318*/ OPC_MoveChild, 27, ++/*141320*/ OPC_CheckInteger, 1, ++/*141322*/ OPC_CheckType, MVT::i32, ++/*141324*/ OPC_MoveParent, ++/*141325*/ OPC_MoveChild, 28, ++/*141327*/ OPC_CheckInteger, 1, ++/*141329*/ OPC_CheckType, MVT::i32, ++/*141331*/ OPC_MoveParent, ++/*141332*/ OPC_MoveChild, 29, ++/*141334*/ OPC_CheckInteger, 1, ++/*141336*/ OPC_CheckType, MVT::i32, ++/*141338*/ OPC_MoveParent, ++/*141339*/ OPC_MoveChild, 30, ++/*141341*/ OPC_CheckInteger, 1, ++/*141343*/ OPC_CheckType, MVT::i32, ++/*141345*/ OPC_MoveParent, ++/*141346*/ OPC_MoveChild, 31, ++/*141348*/ OPC_CheckInteger, 1, ++/*141350*/ OPC_CheckType, MVT::i32, ++/*141352*/ OPC_MoveParent, ++/*141353*/ OPC_MoveParent, ++/*141354*/ OPC_MoveParent, ++/*141355*/ OPC_MoveParent, ++/*141356*/ OPC_MoveChild1, ++/*141357*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*141360*/ OPC_CheckChild0Integer, 7, ++/*141362*/ OPC_CheckChild0Type, MVT::i32, ++/*141364*/ OPC_CheckChild1Integer, 7, ++/*141366*/ OPC_CheckChild1Type, MVT::i32, ++/*141368*/ OPC_CheckChild2Integer, 7, ++/*141370*/ OPC_CheckChild2Type, MVT::i32, ++/*141372*/ OPC_CheckChild3Integer, 7, ++/*141374*/ OPC_CheckChild3Type, MVT::i32, ++/*141376*/ OPC_CheckChild4Integer, 7, ++/*141378*/ OPC_CheckChild4Type, MVT::i32, ++/*141380*/ OPC_MoveChild5, ++/*141381*/ OPC_CheckInteger, 7, ++/*141383*/ OPC_CheckType, MVT::i32, ++/*141385*/ OPC_MoveParent, ++/*141386*/ OPC_MoveChild6, ++/*141387*/ OPC_CheckInteger, 7, ++/*141389*/ OPC_CheckType, MVT::i32, ++/*141391*/ OPC_MoveParent, ++/*141392*/ OPC_MoveChild7, ++/*141393*/ OPC_CheckInteger, 7, ++/*141395*/ OPC_CheckType, MVT::i32, ++/*141397*/ OPC_MoveParent, ++/*141398*/ OPC_MoveChild, 8, ++/*141400*/ OPC_CheckInteger, 7, ++/*141402*/ OPC_CheckType, MVT::i32, ++/*141404*/ OPC_MoveParent, ++/*141405*/ OPC_MoveChild, 9, ++/*141407*/ OPC_CheckInteger, 7, ++/*141409*/ OPC_CheckType, MVT::i32, ++/*141411*/ OPC_MoveParent, ++/*141412*/ OPC_MoveChild, 10, ++/*141414*/ OPC_CheckInteger, 7, ++/*141416*/ OPC_CheckType, MVT::i32, ++/*141418*/ OPC_MoveParent, ++/*141419*/ OPC_MoveChild, 11, ++/*141421*/ OPC_CheckInteger, 7, ++/*141423*/ OPC_CheckType, MVT::i32, ++/*141425*/ OPC_MoveParent, ++/*141426*/ OPC_MoveChild, 12, ++/*141428*/ OPC_CheckInteger, 7, ++/*141430*/ OPC_CheckType, MVT::i32, ++/*141432*/ OPC_MoveParent, ++/*141433*/ OPC_MoveChild, 13, ++/*141435*/ OPC_CheckInteger, 7, ++/*141437*/ OPC_CheckType, MVT::i32, ++/*141439*/ OPC_MoveParent, ++/*141440*/ OPC_MoveChild, 14, ++/*141442*/ OPC_CheckInteger, 7, ++/*141444*/ OPC_CheckType, MVT::i32, ++/*141446*/ OPC_MoveParent, ++/*141447*/ OPC_MoveChild, 15, ++/*141449*/ OPC_CheckInteger, 7, ++/*141451*/ OPC_CheckType, MVT::i32, ++/*141453*/ OPC_MoveParent, ++/*141454*/ OPC_MoveChild, 16, ++/*141456*/ OPC_CheckInteger, 7, ++/*141458*/ OPC_CheckType, MVT::i32, ++/*141460*/ OPC_MoveParent, ++/*141461*/ OPC_MoveChild, 17, ++/*141463*/ OPC_CheckInteger, 7, ++/*141465*/ OPC_CheckType, MVT::i32, ++/*141467*/ OPC_MoveParent, ++/*141468*/ OPC_MoveChild, 18, ++/*141470*/ OPC_CheckInteger, 7, ++/*141472*/ OPC_CheckType, MVT::i32, ++/*141474*/ OPC_MoveParent, ++/*141475*/ OPC_MoveChild, 19, ++/*141477*/ OPC_CheckInteger, 7, ++/*141479*/ OPC_CheckType, MVT::i32, ++/*141481*/ OPC_MoveParent, ++/*141482*/ OPC_MoveChild, 20, ++/*141484*/ OPC_CheckInteger, 7, ++/*141486*/ OPC_CheckType, MVT::i32, ++/*141488*/ OPC_MoveParent, ++/*141489*/ OPC_MoveChild, 21, ++/*141491*/ OPC_CheckInteger, 7, ++/*141493*/ OPC_CheckType, MVT::i32, ++/*141495*/ OPC_MoveParent, ++/*141496*/ OPC_MoveChild, 22, ++/*141498*/ OPC_CheckInteger, 7, ++/*141500*/ OPC_CheckType, MVT::i32, ++/*141502*/ OPC_MoveParent, ++/*141503*/ OPC_MoveChild, 23, ++/*141505*/ OPC_CheckInteger, 7, ++/*141507*/ OPC_CheckType, MVT::i32, ++/*141509*/ OPC_MoveParent, ++/*141510*/ OPC_MoveChild, 24, ++/*141512*/ OPC_CheckInteger, 7, ++/*141514*/ OPC_CheckType, MVT::i32, ++/*141516*/ OPC_MoveParent, ++/*141517*/ OPC_MoveChild, 25, ++/*141519*/ OPC_CheckInteger, 7, ++/*141521*/ OPC_CheckType, MVT::i32, ++/*141523*/ OPC_MoveParent, ++/*141524*/ OPC_MoveChild, 26, ++/*141526*/ OPC_CheckInteger, 7, ++/*141528*/ OPC_CheckType, MVT::i32, ++/*141530*/ OPC_MoveParent, ++/*141531*/ OPC_MoveChild, 27, ++/*141533*/ OPC_CheckInteger, 7, ++/*141535*/ OPC_CheckType, MVT::i32, ++/*141537*/ OPC_MoveParent, ++/*141538*/ OPC_MoveChild, 28, ++/*141540*/ OPC_CheckInteger, 7, ++/*141542*/ OPC_CheckType, MVT::i32, ++/*141544*/ OPC_MoveParent, ++/*141545*/ OPC_MoveChild, 29, ++/*141547*/ OPC_CheckInteger, 7, ++/*141549*/ OPC_CheckType, MVT::i32, ++/*141551*/ OPC_MoveParent, ++/*141552*/ OPC_MoveChild, 30, ++/*141554*/ OPC_CheckInteger, 7, ++/*141556*/ OPC_CheckType, MVT::i32, ++/*141558*/ OPC_MoveParent, ++/*141559*/ OPC_MoveChild, 31, ++/*141561*/ OPC_CheckInteger, 7, ++/*141563*/ OPC_CheckType, MVT::i32, ++/*141565*/ OPC_MoveParent, ++/*141566*/ OPC_CheckType, MVT::v32i8, ++/*141568*/ OPC_MoveParent, ++/*141569*/ OPC_MoveParent, ++/*141570*/ OPC_MoveParent, ++/*141571*/ OPC_MoveChild1, ++/*141572*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*141575*/ OPC_CheckChild0Integer, 1, ++/*141577*/ OPC_CheckChild0Type, MVT::i32, ++/*141579*/ OPC_CheckChild1Integer, 1, ++/*141581*/ OPC_CheckChild1Type, MVT::i32, ++/*141583*/ OPC_CheckChild2Integer, 1, ++/*141585*/ OPC_CheckChild2Type, MVT::i32, ++/*141587*/ OPC_CheckChild3Integer, 1, ++/*141589*/ OPC_CheckChild3Type, MVT::i32, ++/*141591*/ OPC_CheckChild4Integer, 1, ++/*141593*/ OPC_CheckChild4Type, MVT::i32, ++/*141595*/ OPC_MoveChild5, ++/*141596*/ OPC_CheckInteger, 1, ++/*141598*/ OPC_CheckType, MVT::i32, ++/*141600*/ OPC_MoveParent, ++/*141601*/ OPC_MoveChild6, ++/*141602*/ OPC_CheckInteger, 1, ++/*141604*/ OPC_CheckType, MVT::i32, ++/*141606*/ OPC_MoveParent, ++/*141607*/ OPC_MoveChild7, ++/*141608*/ OPC_CheckInteger, 1, ++/*141610*/ OPC_CheckType, MVT::i32, ++/*141612*/ OPC_MoveParent, ++/*141613*/ OPC_MoveChild, 8, ++/*141615*/ OPC_CheckInteger, 1, ++/*141617*/ OPC_CheckType, MVT::i32, ++/*141619*/ OPC_MoveParent, ++/*141620*/ OPC_MoveChild, 9, ++/*141622*/ OPC_CheckInteger, 1, ++/*141624*/ OPC_CheckType, MVT::i32, ++/*141626*/ OPC_MoveParent, ++/*141627*/ OPC_MoveChild, 10, ++/*141629*/ OPC_CheckInteger, 1, ++/*141631*/ OPC_CheckType, MVT::i32, ++/*141633*/ OPC_MoveParent, ++/*141634*/ OPC_MoveChild, 11, ++/*141636*/ OPC_CheckInteger, 1, ++/*141638*/ OPC_CheckType, MVT::i32, ++/*141640*/ OPC_MoveParent, ++/*141641*/ OPC_MoveChild, 12, ++/*141643*/ OPC_CheckInteger, 1, ++/*141645*/ OPC_CheckType, MVT::i32, ++/*141647*/ OPC_MoveParent, ++/*141648*/ OPC_MoveChild, 13, ++/*141650*/ OPC_CheckInteger, 1, ++/*141652*/ OPC_CheckType, MVT::i32, ++/*141654*/ OPC_MoveParent, ++/*141655*/ OPC_MoveChild, 14, ++/*141657*/ OPC_CheckInteger, 1, ++/*141659*/ OPC_CheckType, MVT::i32, ++/*141661*/ OPC_MoveParent, ++/*141662*/ OPC_MoveChild, 15, ++/*141664*/ OPC_CheckInteger, 1, ++/*141666*/ OPC_CheckType, MVT::i32, ++/*141668*/ OPC_MoveParent, ++/*141669*/ OPC_MoveChild, 16, ++/*141671*/ OPC_CheckInteger, 1, ++/*141673*/ OPC_CheckType, MVT::i32, ++/*141675*/ OPC_MoveParent, ++/*141676*/ OPC_MoveChild, 17, ++/*141678*/ OPC_CheckInteger, 1, ++/*141680*/ OPC_CheckType, MVT::i32, ++/*141682*/ OPC_MoveParent, ++/*141683*/ OPC_MoveChild, 18, ++/*141685*/ OPC_CheckInteger, 1, ++/*141687*/ OPC_CheckType, MVT::i32, ++/*141689*/ OPC_MoveParent, ++/*141690*/ OPC_MoveChild, 19, ++/*141692*/ OPC_CheckInteger, 1, ++/*141694*/ OPC_CheckType, MVT::i32, ++/*141696*/ OPC_MoveParent, ++/*141697*/ OPC_MoveChild, 20, ++/*141699*/ OPC_CheckInteger, 1, ++/*141701*/ OPC_CheckType, MVT::i32, ++/*141703*/ OPC_MoveParent, ++/*141704*/ OPC_MoveChild, 21, ++/*141706*/ OPC_CheckInteger, 1, ++/*141708*/ OPC_CheckType, MVT::i32, ++/*141710*/ OPC_MoveParent, ++/*141711*/ OPC_MoveChild, 22, ++/*141713*/ OPC_CheckInteger, 1, ++/*141715*/ OPC_CheckType, MVT::i32, ++/*141717*/ OPC_MoveParent, ++/*141718*/ OPC_MoveChild, 23, ++/*141720*/ OPC_CheckInteger, 1, ++/*141722*/ OPC_CheckType, MVT::i32, ++/*141724*/ OPC_MoveParent, ++/*141725*/ OPC_MoveChild, 24, ++/*141727*/ OPC_CheckInteger, 1, ++/*141729*/ OPC_CheckType, MVT::i32, ++/*141731*/ OPC_MoveParent, ++/*141732*/ OPC_MoveChild, 25, ++/*141734*/ OPC_CheckInteger, 1, ++/*141736*/ OPC_CheckType, MVT::i32, ++/*141738*/ OPC_MoveParent, ++/*141739*/ OPC_MoveChild, 26, ++/*141741*/ OPC_CheckInteger, 1, ++/*141743*/ OPC_CheckType, MVT::i32, ++/*141745*/ OPC_MoveParent, ++/*141746*/ OPC_MoveChild, 27, ++/*141748*/ OPC_CheckInteger, 1, ++/*141750*/ OPC_CheckType, MVT::i32, ++/*141752*/ OPC_MoveParent, ++/*141753*/ OPC_MoveChild, 28, ++/*141755*/ OPC_CheckInteger, 1, ++/*141757*/ OPC_CheckType, MVT::i32, ++/*141759*/ OPC_MoveParent, ++/*141760*/ OPC_MoveChild, 29, ++/*141762*/ OPC_CheckInteger, 1, ++/*141764*/ OPC_CheckType, MVT::i32, ++/*141766*/ OPC_MoveParent, ++/*141767*/ OPC_MoveChild, 30, ++/*141769*/ OPC_CheckInteger, 1, ++/*141771*/ OPC_CheckType, MVT::i32, ++/*141773*/ OPC_MoveParent, ++/*141774*/ OPC_MoveChild, 31, ++/*141776*/ OPC_CheckInteger, 1, ++/*141778*/ OPC_CheckType, MVT::i32, ++/*141780*/ OPC_MoveParent, ++/*141781*/ OPC_CheckType, MVT::v32i8, ++/*141783*/ OPC_MoveParent, ++/*141784*/ OPC_CheckType, MVT::v32i8, ++/*141786*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*141788*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*141796*/ 0, /*End of Scope*/ ++/*141797*/ /*Scope*/ 42|128,10/*1322*/, /*->143121*/ ++/*141799*/ OPC_CheckChild0Same, 1, ++/*141801*/ OPC_MoveChild1, ++/*141802*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*141805*/ OPC_Scope, 15|128,5/*655*/, /*->142463*/ // 2 children in Scope ++/*141808*/ OPC_MoveChild0, ++/*141809*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*141812*/ OPC_CheckChild0Integer, 1, ++/*141814*/ OPC_CheckChild0Type, MVT::i32, ++/*141816*/ OPC_CheckChild1Integer, 1, ++/*141818*/ OPC_CheckChild1Type, MVT::i32, ++/*141820*/ OPC_CheckChild2Integer, 1, ++/*141822*/ OPC_CheckChild2Type, MVT::i32, ++/*141824*/ OPC_CheckChild3Integer, 1, ++/*141826*/ OPC_CheckChild3Type, MVT::i32, ++/*141828*/ OPC_CheckChild4Integer, 1, ++/*141830*/ OPC_CheckChild4Type, MVT::i32, ++/*141832*/ OPC_MoveChild5, ++/*141833*/ OPC_CheckInteger, 1, ++/*141835*/ OPC_CheckType, MVT::i32, ++/*141837*/ OPC_MoveParent, ++/*141838*/ OPC_MoveChild6, ++/*141839*/ OPC_CheckInteger, 1, ++/*141841*/ OPC_CheckType, MVT::i32, ++/*141843*/ OPC_MoveParent, ++/*141844*/ OPC_MoveChild7, ++/*141845*/ OPC_CheckInteger, 1, ++/*141847*/ OPC_CheckType, MVT::i32, ++/*141849*/ OPC_MoveParent, ++/*141850*/ OPC_MoveChild, 8, ++/*141852*/ OPC_CheckInteger, 1, ++/*141854*/ OPC_CheckType, MVT::i32, ++/*141856*/ OPC_MoveParent, ++/*141857*/ OPC_MoveChild, 9, ++/*141859*/ OPC_CheckInteger, 1, ++/*141861*/ OPC_CheckType, MVT::i32, ++/*141863*/ OPC_MoveParent, ++/*141864*/ OPC_MoveChild, 10, ++/*141866*/ OPC_CheckInteger, 1, ++/*141868*/ OPC_CheckType, MVT::i32, ++/*141870*/ OPC_MoveParent, ++/*141871*/ OPC_MoveChild, 11, ++/*141873*/ OPC_CheckInteger, 1, ++/*141875*/ OPC_CheckType, MVT::i32, ++/*141877*/ OPC_MoveParent, ++/*141878*/ OPC_MoveChild, 12, ++/*141880*/ OPC_CheckInteger, 1, ++/*141882*/ OPC_CheckType, MVT::i32, ++/*141884*/ OPC_MoveParent, ++/*141885*/ OPC_MoveChild, 13, ++/*141887*/ OPC_CheckInteger, 1, ++/*141889*/ OPC_CheckType, MVT::i32, ++/*141891*/ OPC_MoveParent, ++/*141892*/ OPC_MoveChild, 14, ++/*141894*/ OPC_CheckInteger, 1, ++/*141896*/ OPC_CheckType, MVT::i32, ++/*141898*/ OPC_MoveParent, ++/*141899*/ OPC_MoveChild, 15, ++/*141901*/ OPC_CheckInteger, 1, ++/*141903*/ OPC_CheckType, MVT::i32, ++/*141905*/ OPC_MoveParent, ++/*141906*/ OPC_MoveChild, 16, ++/*141908*/ OPC_CheckInteger, 1, ++/*141910*/ OPC_CheckType, MVT::i32, ++/*141912*/ OPC_MoveParent, ++/*141913*/ OPC_MoveChild, 17, ++/*141915*/ OPC_CheckInteger, 1, ++/*141917*/ OPC_CheckType, MVT::i32, ++/*141919*/ OPC_MoveParent, ++/*141920*/ OPC_MoveChild, 18, ++/*141922*/ OPC_CheckInteger, 1, ++/*141924*/ OPC_CheckType, MVT::i32, ++/*141926*/ OPC_MoveParent, ++/*141927*/ OPC_MoveChild, 19, ++/*141929*/ OPC_CheckInteger, 1, ++/*141931*/ OPC_CheckType, MVT::i32, ++/*141933*/ OPC_MoveParent, ++/*141934*/ OPC_MoveChild, 20, ++/*141936*/ OPC_CheckInteger, 1, ++/*141938*/ OPC_CheckType, MVT::i32, ++/*141940*/ OPC_MoveParent, ++/*141941*/ OPC_MoveChild, 21, ++/*141943*/ OPC_CheckInteger, 1, ++/*141945*/ OPC_CheckType, MVT::i32, ++/*141947*/ OPC_MoveParent, ++/*141948*/ OPC_MoveChild, 22, ++/*141950*/ OPC_CheckInteger, 1, ++/*141952*/ OPC_CheckType, MVT::i32, ++/*141954*/ OPC_MoveParent, ++/*141955*/ OPC_MoveChild, 23, ++/*141957*/ OPC_CheckInteger, 1, ++/*141959*/ OPC_CheckType, MVT::i32, ++/*141961*/ OPC_MoveParent, ++/*141962*/ OPC_MoveChild, 24, ++/*141964*/ OPC_CheckInteger, 1, ++/*141966*/ OPC_CheckType, MVT::i32, ++/*141968*/ OPC_MoveParent, ++/*141969*/ OPC_MoveChild, 25, ++/*141971*/ OPC_CheckInteger, 1, ++/*141973*/ OPC_CheckType, MVT::i32, ++/*141975*/ OPC_MoveParent, ++/*141976*/ OPC_MoveChild, 26, ++/*141978*/ OPC_CheckInteger, 1, ++/*141980*/ OPC_CheckType, MVT::i32, ++/*141982*/ OPC_MoveParent, ++/*141983*/ OPC_MoveChild, 27, ++/*141985*/ OPC_CheckInteger, 1, ++/*141987*/ OPC_CheckType, MVT::i32, ++/*141989*/ OPC_MoveParent, ++/*141990*/ OPC_MoveChild, 28, ++/*141992*/ OPC_CheckInteger, 1, ++/*141994*/ OPC_CheckType, MVT::i32, ++/*141996*/ OPC_MoveParent, ++/*141997*/ OPC_MoveChild, 29, ++/*141999*/ OPC_CheckInteger, 1, ++/*142001*/ OPC_CheckType, MVT::i32, ++/*142003*/ OPC_MoveParent, ++/*142004*/ OPC_MoveChild, 30, ++/*142006*/ OPC_CheckInteger, 1, ++/*142008*/ OPC_CheckType, MVT::i32, ++/*142010*/ OPC_MoveParent, ++/*142011*/ OPC_MoveChild, 31, ++/*142013*/ OPC_CheckInteger, 1, ++/*142015*/ OPC_CheckType, MVT::i32, ++/*142017*/ OPC_MoveParent, ++/*142018*/ OPC_MoveParent, ++/*142019*/ OPC_CheckChild1Same, 0, ++/*142021*/ OPC_MoveParent, ++/*142022*/ OPC_MoveParent, ++/*142023*/ OPC_MoveChild1, ++/*142024*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*142027*/ OPC_CheckChild0Integer, 7, ++/*142029*/ OPC_CheckChild0Type, MVT::i32, ++/*142031*/ OPC_CheckChild1Integer, 7, ++/*142033*/ OPC_CheckChild1Type, MVT::i32, ++/*142035*/ OPC_CheckChild2Integer, 7, ++/*142037*/ OPC_CheckChild2Type, MVT::i32, ++/*142039*/ OPC_CheckChild3Integer, 7, ++/*142041*/ OPC_CheckChild3Type, MVT::i32, ++/*142043*/ OPC_CheckChild4Integer, 7, ++/*142045*/ OPC_CheckChild4Type, MVT::i32, ++/*142047*/ OPC_MoveChild5, ++/*142048*/ OPC_CheckInteger, 7, ++/*142050*/ OPC_CheckType, MVT::i32, ++/*142052*/ OPC_MoveParent, ++/*142053*/ OPC_MoveChild6, ++/*142054*/ OPC_CheckInteger, 7, ++/*142056*/ OPC_CheckType, MVT::i32, ++/*142058*/ OPC_MoveParent, ++/*142059*/ OPC_MoveChild7, ++/*142060*/ OPC_CheckInteger, 7, ++/*142062*/ OPC_CheckType, MVT::i32, ++/*142064*/ OPC_MoveParent, ++/*142065*/ OPC_MoveChild, 8, ++/*142067*/ OPC_CheckInteger, 7, ++/*142069*/ OPC_CheckType, MVT::i32, ++/*142071*/ OPC_MoveParent, ++/*142072*/ OPC_MoveChild, 9, ++/*142074*/ OPC_CheckInteger, 7, ++/*142076*/ OPC_CheckType, MVT::i32, ++/*142078*/ OPC_MoveParent, ++/*142079*/ OPC_MoveChild, 10, ++/*142081*/ OPC_CheckInteger, 7, ++/*142083*/ OPC_CheckType, MVT::i32, ++/*142085*/ OPC_MoveParent, ++/*142086*/ OPC_MoveChild, 11, ++/*142088*/ OPC_CheckInteger, 7, ++/*142090*/ OPC_CheckType, MVT::i32, ++/*142092*/ OPC_MoveParent, ++/*142093*/ OPC_MoveChild, 12, ++/*142095*/ OPC_CheckInteger, 7, ++/*142097*/ OPC_CheckType, MVT::i32, ++/*142099*/ OPC_MoveParent, ++/*142100*/ OPC_MoveChild, 13, ++/*142102*/ OPC_CheckInteger, 7, ++/*142104*/ OPC_CheckType, MVT::i32, ++/*142106*/ OPC_MoveParent, ++/*142107*/ OPC_MoveChild, 14, ++/*142109*/ OPC_CheckInteger, 7, ++/*142111*/ OPC_CheckType, MVT::i32, ++/*142113*/ OPC_MoveParent, ++/*142114*/ OPC_MoveChild, 15, ++/*142116*/ OPC_CheckInteger, 7, ++/*142118*/ OPC_CheckType, MVT::i32, ++/*142120*/ OPC_MoveParent, ++/*142121*/ OPC_MoveChild, 16, ++/*142123*/ OPC_CheckInteger, 7, ++/*142125*/ OPC_CheckType, MVT::i32, ++/*142127*/ OPC_MoveParent, ++/*142128*/ OPC_MoveChild, 17, ++/*142130*/ OPC_CheckInteger, 7, ++/*142132*/ OPC_CheckType, MVT::i32, ++/*142134*/ OPC_MoveParent, ++/*142135*/ OPC_MoveChild, 18, ++/*142137*/ OPC_CheckInteger, 7, ++/*142139*/ OPC_CheckType, MVT::i32, ++/*142141*/ OPC_MoveParent, ++/*142142*/ OPC_MoveChild, 19, ++/*142144*/ OPC_CheckInteger, 7, ++/*142146*/ OPC_CheckType, MVT::i32, ++/*142148*/ OPC_MoveParent, ++/*142149*/ OPC_MoveChild, 20, ++/*142151*/ OPC_CheckInteger, 7, ++/*142153*/ OPC_CheckType, MVT::i32, ++/*142155*/ OPC_MoveParent, ++/*142156*/ OPC_MoveChild, 21, ++/*142158*/ OPC_CheckInteger, 7, ++/*142160*/ OPC_CheckType, MVT::i32, ++/*142162*/ OPC_MoveParent, ++/*142163*/ OPC_MoveChild, 22, ++/*142165*/ OPC_CheckInteger, 7, ++/*142167*/ OPC_CheckType, MVT::i32, ++/*142169*/ OPC_MoveParent, ++/*142170*/ OPC_MoveChild, 23, ++/*142172*/ OPC_CheckInteger, 7, ++/*142174*/ OPC_CheckType, MVT::i32, ++/*142176*/ OPC_MoveParent, ++/*142177*/ OPC_MoveChild, 24, ++/*142179*/ OPC_CheckInteger, 7, ++/*142181*/ OPC_CheckType, MVT::i32, ++/*142183*/ OPC_MoveParent, ++/*142184*/ OPC_MoveChild, 25, ++/*142186*/ OPC_CheckInteger, 7, ++/*142188*/ OPC_CheckType, MVT::i32, ++/*142190*/ OPC_MoveParent, ++/*142191*/ OPC_MoveChild, 26, ++/*142193*/ OPC_CheckInteger, 7, ++/*142195*/ OPC_CheckType, MVT::i32, ++/*142197*/ OPC_MoveParent, ++/*142198*/ OPC_MoveChild, 27, ++/*142200*/ OPC_CheckInteger, 7, ++/*142202*/ OPC_CheckType, MVT::i32, ++/*142204*/ OPC_MoveParent, ++/*142205*/ OPC_MoveChild, 28, ++/*142207*/ OPC_CheckInteger, 7, ++/*142209*/ OPC_CheckType, MVT::i32, ++/*142211*/ OPC_MoveParent, ++/*142212*/ OPC_MoveChild, 29, ++/*142214*/ OPC_CheckInteger, 7, ++/*142216*/ OPC_CheckType, MVT::i32, ++/*142218*/ OPC_MoveParent, ++/*142219*/ OPC_MoveChild, 30, ++/*142221*/ OPC_CheckInteger, 7, ++/*142223*/ OPC_CheckType, MVT::i32, ++/*142225*/ OPC_MoveParent, ++/*142226*/ OPC_MoveChild, 31, ++/*142228*/ OPC_CheckInteger, 7, ++/*142230*/ OPC_CheckType, MVT::i32, ++/*142232*/ OPC_MoveParent, ++/*142233*/ OPC_CheckType, MVT::v32i8, ++/*142235*/ OPC_MoveParent, ++/*142236*/ OPC_MoveParent, ++/*142237*/ OPC_MoveParent, ++/*142238*/ OPC_MoveChild1, ++/*142239*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*142242*/ OPC_CheckChild0Integer, 1, ++/*142244*/ OPC_CheckChild0Type, MVT::i32, ++/*142246*/ OPC_CheckChild1Integer, 1, ++/*142248*/ OPC_CheckChild1Type, MVT::i32, ++/*142250*/ OPC_CheckChild2Integer, 1, ++/*142252*/ OPC_CheckChild2Type, MVT::i32, ++/*142254*/ OPC_CheckChild3Integer, 1, ++/*142256*/ OPC_CheckChild3Type, MVT::i32, ++/*142258*/ OPC_CheckChild4Integer, 1, ++/*142260*/ OPC_CheckChild4Type, MVT::i32, ++/*142262*/ OPC_MoveChild5, ++/*142263*/ OPC_CheckInteger, 1, ++/*142265*/ OPC_CheckType, MVT::i32, ++/*142267*/ OPC_MoveParent, ++/*142268*/ OPC_MoveChild6, ++/*142269*/ OPC_CheckInteger, 1, ++/*142271*/ OPC_CheckType, MVT::i32, ++/*142273*/ OPC_MoveParent, ++/*142274*/ OPC_MoveChild7, ++/*142275*/ OPC_CheckInteger, 1, ++/*142277*/ OPC_CheckType, MVT::i32, ++/*142279*/ OPC_MoveParent, ++/*142280*/ OPC_MoveChild, 8, ++/*142282*/ OPC_CheckInteger, 1, ++/*142284*/ OPC_CheckType, MVT::i32, ++/*142286*/ OPC_MoveParent, ++/*142287*/ OPC_MoveChild, 9, ++/*142289*/ OPC_CheckInteger, 1, ++/*142291*/ OPC_CheckType, MVT::i32, ++/*142293*/ OPC_MoveParent, ++/*142294*/ OPC_MoveChild, 10, ++/*142296*/ OPC_CheckInteger, 1, ++/*142298*/ OPC_CheckType, MVT::i32, ++/*142300*/ OPC_MoveParent, ++/*142301*/ OPC_MoveChild, 11, ++/*142303*/ OPC_CheckInteger, 1, ++/*142305*/ OPC_CheckType, MVT::i32, ++/*142307*/ OPC_MoveParent, ++/*142308*/ OPC_MoveChild, 12, ++/*142310*/ OPC_CheckInteger, 1, ++/*142312*/ OPC_CheckType, MVT::i32, ++/*142314*/ OPC_MoveParent, ++/*142315*/ OPC_MoveChild, 13, ++/*142317*/ OPC_CheckInteger, 1, ++/*142319*/ OPC_CheckType, MVT::i32, ++/*142321*/ OPC_MoveParent, ++/*142322*/ OPC_MoveChild, 14, ++/*142324*/ OPC_CheckInteger, 1, ++/*142326*/ OPC_CheckType, MVT::i32, ++/*142328*/ OPC_MoveParent, ++/*142329*/ OPC_MoveChild, 15, ++/*142331*/ OPC_CheckInteger, 1, ++/*142333*/ OPC_CheckType, MVT::i32, ++/*142335*/ OPC_MoveParent, ++/*142336*/ OPC_MoveChild, 16, ++/*142338*/ OPC_CheckInteger, 1, ++/*142340*/ OPC_CheckType, MVT::i32, ++/*142342*/ OPC_MoveParent, ++/*142343*/ OPC_MoveChild, 17, ++/*142345*/ OPC_CheckInteger, 1, ++/*142347*/ OPC_CheckType, MVT::i32, ++/*142349*/ OPC_MoveParent, ++/*142350*/ OPC_MoveChild, 18, ++/*142352*/ OPC_CheckInteger, 1, ++/*142354*/ OPC_CheckType, MVT::i32, ++/*142356*/ OPC_MoveParent, ++/*142357*/ OPC_MoveChild, 19, ++/*142359*/ OPC_CheckInteger, 1, ++/*142361*/ OPC_CheckType, MVT::i32, ++/*142363*/ OPC_MoveParent, ++/*142364*/ OPC_MoveChild, 20, ++/*142366*/ OPC_CheckInteger, 1, ++/*142368*/ OPC_CheckType, MVT::i32, ++/*142370*/ OPC_MoveParent, ++/*142371*/ OPC_MoveChild, 21, ++/*142373*/ OPC_CheckInteger, 1, ++/*142375*/ OPC_CheckType, MVT::i32, ++/*142377*/ OPC_MoveParent, ++/*142378*/ OPC_MoveChild, 22, ++/*142380*/ OPC_CheckInteger, 1, ++/*142382*/ OPC_CheckType, MVT::i32, ++/*142384*/ OPC_MoveParent, ++/*142385*/ OPC_MoveChild, 23, ++/*142387*/ OPC_CheckInteger, 1, ++/*142389*/ OPC_CheckType, MVT::i32, ++/*142391*/ OPC_MoveParent, ++/*142392*/ OPC_MoveChild, 24, ++/*142394*/ OPC_CheckInteger, 1, ++/*142396*/ OPC_CheckType, MVT::i32, ++/*142398*/ OPC_MoveParent, ++/*142399*/ OPC_MoveChild, 25, ++/*142401*/ OPC_CheckInteger, 1, ++/*142403*/ OPC_CheckType, MVT::i32, ++/*142405*/ OPC_MoveParent, ++/*142406*/ OPC_MoveChild, 26, ++/*142408*/ OPC_CheckInteger, 1, ++/*142410*/ OPC_CheckType, MVT::i32, ++/*142412*/ OPC_MoveParent, ++/*142413*/ OPC_MoveChild, 27, ++/*142415*/ OPC_CheckInteger, 1, ++/*142417*/ OPC_CheckType, MVT::i32, ++/*142419*/ OPC_MoveParent, ++/*142420*/ OPC_MoveChild, 28, ++/*142422*/ OPC_CheckInteger, 1, ++/*142424*/ OPC_CheckType, MVT::i32, ++/*142426*/ OPC_MoveParent, ++/*142427*/ OPC_MoveChild, 29, ++/*142429*/ OPC_CheckInteger, 1, ++/*142431*/ OPC_CheckType, MVT::i32, ++/*142433*/ OPC_MoveParent, ++/*142434*/ OPC_MoveChild, 30, ++/*142436*/ OPC_CheckInteger, 1, ++/*142438*/ OPC_CheckType, MVT::i32, ++/*142440*/ OPC_MoveParent, ++/*142441*/ OPC_MoveChild, 31, ++/*142443*/ OPC_CheckInteger, 1, ++/*142445*/ OPC_CheckType, MVT::i32, ++/*142447*/ OPC_MoveParent, ++/*142448*/ OPC_CheckType, MVT::v32i8, ++/*142450*/ OPC_MoveParent, ++/*142451*/ OPC_CheckType, MVT::v32i8, ++/*142453*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*142455*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*142463*/ /*Scope*/ 15|128,5/*655*/, /*->143120*/ ++/*142465*/ OPC_CheckChild0Same, 0, ++/*142467*/ OPC_MoveChild1, ++/*142468*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*142471*/ OPC_CheckChild0Integer, 1, ++/*142473*/ OPC_CheckChild0Type, MVT::i32, ++/*142475*/ OPC_CheckChild1Integer, 1, ++/*142477*/ OPC_CheckChild1Type, MVT::i32, ++/*142479*/ OPC_CheckChild2Integer, 1, ++/*142481*/ OPC_CheckChild2Type, MVT::i32, ++/*142483*/ OPC_CheckChild3Integer, 1, ++/*142485*/ OPC_CheckChild3Type, MVT::i32, ++/*142487*/ OPC_CheckChild4Integer, 1, ++/*142489*/ OPC_CheckChild4Type, MVT::i32, ++/*142491*/ OPC_MoveChild5, ++/*142492*/ OPC_CheckInteger, 1, ++/*142494*/ OPC_CheckType, MVT::i32, ++/*142496*/ OPC_MoveParent, ++/*142497*/ OPC_MoveChild6, ++/*142498*/ OPC_CheckInteger, 1, ++/*142500*/ OPC_CheckType, MVT::i32, ++/*142502*/ OPC_MoveParent, ++/*142503*/ OPC_MoveChild7, ++/*142504*/ OPC_CheckInteger, 1, ++/*142506*/ OPC_CheckType, MVT::i32, ++/*142508*/ OPC_MoveParent, ++/*142509*/ OPC_MoveChild, 8, ++/*142511*/ OPC_CheckInteger, 1, ++/*142513*/ OPC_CheckType, MVT::i32, ++/*142515*/ OPC_MoveParent, ++/*142516*/ OPC_MoveChild, 9, ++/*142518*/ OPC_CheckInteger, 1, ++/*142520*/ OPC_CheckType, MVT::i32, ++/*142522*/ OPC_MoveParent, ++/*142523*/ OPC_MoveChild, 10, ++/*142525*/ OPC_CheckInteger, 1, ++/*142527*/ OPC_CheckType, MVT::i32, ++/*142529*/ OPC_MoveParent, ++/*142530*/ OPC_MoveChild, 11, ++/*142532*/ OPC_CheckInteger, 1, ++/*142534*/ OPC_CheckType, MVT::i32, ++/*142536*/ OPC_MoveParent, ++/*142537*/ OPC_MoveChild, 12, ++/*142539*/ OPC_CheckInteger, 1, ++/*142541*/ OPC_CheckType, MVT::i32, ++/*142543*/ OPC_MoveParent, ++/*142544*/ OPC_MoveChild, 13, ++/*142546*/ OPC_CheckInteger, 1, ++/*142548*/ OPC_CheckType, MVT::i32, ++/*142550*/ OPC_MoveParent, ++/*142551*/ OPC_MoveChild, 14, ++/*142553*/ OPC_CheckInteger, 1, ++/*142555*/ OPC_CheckType, MVT::i32, ++/*142557*/ OPC_MoveParent, ++/*142558*/ OPC_MoveChild, 15, ++/*142560*/ OPC_CheckInteger, 1, ++/*142562*/ OPC_CheckType, MVT::i32, ++/*142564*/ OPC_MoveParent, ++/*142565*/ OPC_MoveChild, 16, ++/*142567*/ OPC_CheckInteger, 1, ++/*142569*/ OPC_CheckType, MVT::i32, ++/*142571*/ OPC_MoveParent, ++/*142572*/ OPC_MoveChild, 17, ++/*142574*/ OPC_CheckInteger, 1, ++/*142576*/ OPC_CheckType, MVT::i32, ++/*142578*/ OPC_MoveParent, ++/*142579*/ OPC_MoveChild, 18, ++/*142581*/ OPC_CheckInteger, 1, ++/*142583*/ OPC_CheckType, MVT::i32, ++/*142585*/ OPC_MoveParent, ++/*142586*/ OPC_MoveChild, 19, ++/*142588*/ OPC_CheckInteger, 1, ++/*142590*/ OPC_CheckType, MVT::i32, ++/*142592*/ OPC_MoveParent, ++/*142593*/ OPC_MoveChild, 20, ++/*142595*/ OPC_CheckInteger, 1, ++/*142597*/ OPC_CheckType, MVT::i32, ++/*142599*/ OPC_MoveParent, ++/*142600*/ OPC_MoveChild, 21, ++/*142602*/ OPC_CheckInteger, 1, ++/*142604*/ OPC_CheckType, MVT::i32, ++/*142606*/ OPC_MoveParent, ++/*142607*/ OPC_MoveChild, 22, ++/*142609*/ OPC_CheckInteger, 1, ++/*142611*/ OPC_CheckType, MVT::i32, ++/*142613*/ OPC_MoveParent, ++/*142614*/ OPC_MoveChild, 23, ++/*142616*/ OPC_CheckInteger, 1, ++/*142618*/ OPC_CheckType, MVT::i32, ++/*142620*/ OPC_MoveParent, ++/*142621*/ OPC_MoveChild, 24, ++/*142623*/ OPC_CheckInteger, 1, ++/*142625*/ OPC_CheckType, MVT::i32, ++/*142627*/ OPC_MoveParent, ++/*142628*/ OPC_MoveChild, 25, ++/*142630*/ OPC_CheckInteger, 1, ++/*142632*/ OPC_CheckType, MVT::i32, ++/*142634*/ OPC_MoveParent, ++/*142635*/ OPC_MoveChild, 26, ++/*142637*/ OPC_CheckInteger, 1, ++/*142639*/ OPC_CheckType, MVT::i32, ++/*142641*/ OPC_MoveParent, ++/*142642*/ OPC_MoveChild, 27, ++/*142644*/ OPC_CheckInteger, 1, ++/*142646*/ OPC_CheckType, MVT::i32, ++/*142648*/ OPC_MoveParent, ++/*142649*/ OPC_MoveChild, 28, ++/*142651*/ OPC_CheckInteger, 1, ++/*142653*/ OPC_CheckType, MVT::i32, ++/*142655*/ OPC_MoveParent, ++/*142656*/ OPC_MoveChild, 29, ++/*142658*/ OPC_CheckInteger, 1, ++/*142660*/ OPC_CheckType, MVT::i32, ++/*142662*/ OPC_MoveParent, ++/*142663*/ OPC_MoveChild, 30, ++/*142665*/ OPC_CheckInteger, 1, ++/*142667*/ OPC_CheckType, MVT::i32, ++/*142669*/ OPC_MoveParent, ++/*142670*/ OPC_MoveChild, 31, ++/*142672*/ OPC_CheckInteger, 1, ++/*142674*/ OPC_CheckType, MVT::i32, ++/*142676*/ OPC_MoveParent, ++/*142677*/ OPC_MoveParent, ++/*142678*/ OPC_MoveParent, ++/*142679*/ OPC_MoveParent, ++/*142680*/ OPC_MoveChild1, ++/*142681*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*142684*/ OPC_CheckChild0Integer, 7, ++/*142686*/ OPC_CheckChild0Type, MVT::i32, ++/*142688*/ OPC_CheckChild1Integer, 7, ++/*142690*/ OPC_CheckChild1Type, MVT::i32, ++/*142692*/ OPC_CheckChild2Integer, 7, ++/*142694*/ OPC_CheckChild2Type, MVT::i32, ++/*142696*/ OPC_CheckChild3Integer, 7, ++/*142698*/ OPC_CheckChild3Type, MVT::i32, ++/*142700*/ OPC_CheckChild4Integer, 7, ++/*142702*/ OPC_CheckChild4Type, MVT::i32, ++/*142704*/ OPC_MoveChild5, ++/*142705*/ OPC_CheckInteger, 7, ++/*142707*/ OPC_CheckType, MVT::i32, ++/*142709*/ OPC_MoveParent, ++/*142710*/ OPC_MoveChild6, ++/*142711*/ OPC_CheckInteger, 7, ++/*142713*/ OPC_CheckType, MVT::i32, ++/*142715*/ OPC_MoveParent, ++/*142716*/ OPC_MoveChild7, ++/*142717*/ OPC_CheckInteger, 7, ++/*142719*/ OPC_CheckType, MVT::i32, ++/*142721*/ OPC_MoveParent, ++/*142722*/ OPC_MoveChild, 8, ++/*142724*/ OPC_CheckInteger, 7, ++/*142726*/ OPC_CheckType, MVT::i32, ++/*142728*/ OPC_MoveParent, ++/*142729*/ OPC_MoveChild, 9, ++/*142731*/ OPC_CheckInteger, 7, ++/*142733*/ OPC_CheckType, MVT::i32, ++/*142735*/ OPC_MoveParent, ++/*142736*/ OPC_MoveChild, 10, ++/*142738*/ OPC_CheckInteger, 7, ++/*142740*/ OPC_CheckType, MVT::i32, ++/*142742*/ OPC_MoveParent, ++/*142743*/ OPC_MoveChild, 11, ++/*142745*/ OPC_CheckInteger, 7, ++/*142747*/ OPC_CheckType, MVT::i32, ++/*142749*/ OPC_MoveParent, ++/*142750*/ OPC_MoveChild, 12, ++/*142752*/ OPC_CheckInteger, 7, ++/*142754*/ OPC_CheckType, MVT::i32, ++/*142756*/ OPC_MoveParent, ++/*142757*/ OPC_MoveChild, 13, ++/*142759*/ OPC_CheckInteger, 7, ++/*142761*/ OPC_CheckType, MVT::i32, ++/*142763*/ OPC_MoveParent, ++/*142764*/ OPC_MoveChild, 14, ++/*142766*/ OPC_CheckInteger, 7, ++/*142768*/ OPC_CheckType, MVT::i32, ++/*142770*/ OPC_MoveParent, ++/*142771*/ OPC_MoveChild, 15, ++/*142773*/ OPC_CheckInteger, 7, ++/*142775*/ OPC_CheckType, MVT::i32, ++/*142777*/ OPC_MoveParent, ++/*142778*/ OPC_MoveChild, 16, ++/*142780*/ OPC_CheckInteger, 7, ++/*142782*/ OPC_CheckType, MVT::i32, ++/*142784*/ OPC_MoveParent, ++/*142785*/ OPC_MoveChild, 17, ++/*142787*/ OPC_CheckInteger, 7, ++/*142789*/ OPC_CheckType, MVT::i32, ++/*142791*/ OPC_MoveParent, ++/*142792*/ OPC_MoveChild, 18, ++/*142794*/ OPC_CheckInteger, 7, ++/*142796*/ OPC_CheckType, MVT::i32, ++/*142798*/ OPC_MoveParent, ++/*142799*/ OPC_MoveChild, 19, ++/*142801*/ OPC_CheckInteger, 7, ++/*142803*/ OPC_CheckType, MVT::i32, ++/*142805*/ OPC_MoveParent, ++/*142806*/ OPC_MoveChild, 20, ++/*142808*/ OPC_CheckInteger, 7, ++/*142810*/ OPC_CheckType, MVT::i32, ++/*142812*/ OPC_MoveParent, ++/*142813*/ OPC_MoveChild, 21, ++/*142815*/ OPC_CheckInteger, 7, ++/*142817*/ OPC_CheckType, MVT::i32, ++/*142819*/ OPC_MoveParent, ++/*142820*/ OPC_MoveChild, 22, ++/*142822*/ OPC_CheckInteger, 7, ++/*142824*/ OPC_CheckType, MVT::i32, ++/*142826*/ OPC_MoveParent, ++/*142827*/ OPC_MoveChild, 23, ++/*142829*/ OPC_CheckInteger, 7, ++/*142831*/ OPC_CheckType, MVT::i32, ++/*142833*/ OPC_MoveParent, ++/*142834*/ OPC_MoveChild, 24, ++/*142836*/ OPC_CheckInteger, 7, ++/*142838*/ OPC_CheckType, MVT::i32, ++/*142840*/ OPC_MoveParent, ++/*142841*/ OPC_MoveChild, 25, ++/*142843*/ OPC_CheckInteger, 7, ++/*142845*/ OPC_CheckType, MVT::i32, ++/*142847*/ OPC_MoveParent, ++/*142848*/ OPC_MoveChild, 26, ++/*142850*/ OPC_CheckInteger, 7, ++/*142852*/ OPC_CheckType, MVT::i32, ++/*142854*/ OPC_MoveParent, ++/*142855*/ OPC_MoveChild, 27, ++/*142857*/ OPC_CheckInteger, 7, ++/*142859*/ OPC_CheckType, MVT::i32, ++/*142861*/ OPC_MoveParent, ++/*142862*/ OPC_MoveChild, 28, ++/*142864*/ OPC_CheckInteger, 7, ++/*142866*/ OPC_CheckType, MVT::i32, ++/*142868*/ OPC_MoveParent, ++/*142869*/ OPC_MoveChild, 29, ++/*142871*/ OPC_CheckInteger, 7, ++/*142873*/ OPC_CheckType, MVT::i32, ++/*142875*/ OPC_MoveParent, ++/*142876*/ OPC_MoveChild, 30, ++/*142878*/ OPC_CheckInteger, 7, ++/*142880*/ OPC_CheckType, MVT::i32, ++/*142882*/ OPC_MoveParent, ++/*142883*/ OPC_MoveChild, 31, ++/*142885*/ OPC_CheckInteger, 7, ++/*142887*/ OPC_CheckType, MVT::i32, ++/*142889*/ OPC_MoveParent, ++/*142890*/ OPC_CheckType, MVT::v32i8, ++/*142892*/ OPC_MoveParent, ++/*142893*/ OPC_MoveParent, ++/*142894*/ OPC_MoveParent, ++/*142895*/ OPC_MoveChild1, ++/*142896*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*142899*/ OPC_CheckChild0Integer, 1, ++/*142901*/ OPC_CheckChild0Type, MVT::i32, ++/*142903*/ OPC_CheckChild1Integer, 1, ++/*142905*/ OPC_CheckChild1Type, MVT::i32, ++/*142907*/ OPC_CheckChild2Integer, 1, ++/*142909*/ OPC_CheckChild2Type, MVT::i32, ++/*142911*/ OPC_CheckChild3Integer, 1, ++/*142913*/ OPC_CheckChild3Type, MVT::i32, ++/*142915*/ OPC_CheckChild4Integer, 1, ++/*142917*/ OPC_CheckChild4Type, MVT::i32, ++/*142919*/ OPC_MoveChild5, ++/*142920*/ OPC_CheckInteger, 1, ++/*142922*/ OPC_CheckType, MVT::i32, ++/*142924*/ OPC_MoveParent, ++/*142925*/ OPC_MoveChild6, ++/*142926*/ OPC_CheckInteger, 1, ++/*142928*/ OPC_CheckType, MVT::i32, ++/*142930*/ OPC_MoveParent, ++/*142931*/ OPC_MoveChild7, ++/*142932*/ OPC_CheckInteger, 1, ++/*142934*/ OPC_CheckType, MVT::i32, ++/*142936*/ OPC_MoveParent, ++/*142937*/ OPC_MoveChild, 8, ++/*142939*/ OPC_CheckInteger, 1, ++/*142941*/ OPC_CheckType, MVT::i32, ++/*142943*/ OPC_MoveParent, ++/*142944*/ OPC_MoveChild, 9, ++/*142946*/ OPC_CheckInteger, 1, ++/*142948*/ OPC_CheckType, MVT::i32, ++/*142950*/ OPC_MoveParent, ++/*142951*/ OPC_MoveChild, 10, ++/*142953*/ OPC_CheckInteger, 1, ++/*142955*/ OPC_CheckType, MVT::i32, ++/*142957*/ OPC_MoveParent, ++/*142958*/ OPC_MoveChild, 11, ++/*142960*/ OPC_CheckInteger, 1, ++/*142962*/ OPC_CheckType, MVT::i32, ++/*142964*/ OPC_MoveParent, ++/*142965*/ OPC_MoveChild, 12, ++/*142967*/ OPC_CheckInteger, 1, ++/*142969*/ OPC_CheckType, MVT::i32, ++/*142971*/ OPC_MoveParent, ++/*142972*/ OPC_MoveChild, 13, ++/*142974*/ OPC_CheckInteger, 1, ++/*142976*/ OPC_CheckType, MVT::i32, ++/*142978*/ OPC_MoveParent, ++/*142979*/ OPC_MoveChild, 14, ++/*142981*/ OPC_CheckInteger, 1, ++/*142983*/ OPC_CheckType, MVT::i32, ++/*142985*/ OPC_MoveParent, ++/*142986*/ OPC_MoveChild, 15, ++/*142988*/ OPC_CheckInteger, 1, ++/*142990*/ OPC_CheckType, MVT::i32, ++/*142992*/ OPC_MoveParent, ++/*142993*/ OPC_MoveChild, 16, ++/*142995*/ OPC_CheckInteger, 1, ++/*142997*/ OPC_CheckType, MVT::i32, ++/*142999*/ OPC_MoveParent, ++/*143000*/ OPC_MoveChild, 17, ++/*143002*/ OPC_CheckInteger, 1, ++/*143004*/ OPC_CheckType, MVT::i32, ++/*143006*/ OPC_MoveParent, ++/*143007*/ OPC_MoveChild, 18, ++/*143009*/ OPC_CheckInteger, 1, ++/*143011*/ OPC_CheckType, MVT::i32, ++/*143013*/ OPC_MoveParent, ++/*143014*/ OPC_MoveChild, 19, ++/*143016*/ OPC_CheckInteger, 1, ++/*143018*/ OPC_CheckType, MVT::i32, ++/*143020*/ OPC_MoveParent, ++/*143021*/ OPC_MoveChild, 20, ++/*143023*/ OPC_CheckInteger, 1, ++/*143025*/ OPC_CheckType, MVT::i32, ++/*143027*/ OPC_MoveParent, ++/*143028*/ OPC_MoveChild, 21, ++/*143030*/ OPC_CheckInteger, 1, ++/*143032*/ OPC_CheckType, MVT::i32, ++/*143034*/ OPC_MoveParent, ++/*143035*/ OPC_MoveChild, 22, ++/*143037*/ OPC_CheckInteger, 1, ++/*143039*/ OPC_CheckType, MVT::i32, ++/*143041*/ OPC_MoveParent, ++/*143042*/ OPC_MoveChild, 23, ++/*143044*/ OPC_CheckInteger, 1, ++/*143046*/ OPC_CheckType, MVT::i32, ++/*143048*/ OPC_MoveParent, ++/*143049*/ OPC_MoveChild, 24, ++/*143051*/ OPC_CheckInteger, 1, ++/*143053*/ OPC_CheckType, MVT::i32, ++/*143055*/ OPC_MoveParent, ++/*143056*/ OPC_MoveChild, 25, ++/*143058*/ OPC_CheckInteger, 1, ++/*143060*/ OPC_CheckType, MVT::i32, ++/*143062*/ OPC_MoveParent, ++/*143063*/ OPC_MoveChild, 26, ++/*143065*/ OPC_CheckInteger, 1, ++/*143067*/ OPC_CheckType, MVT::i32, ++/*143069*/ OPC_MoveParent, ++/*143070*/ OPC_MoveChild, 27, ++/*143072*/ OPC_CheckInteger, 1, ++/*143074*/ OPC_CheckType, MVT::i32, ++/*143076*/ OPC_MoveParent, ++/*143077*/ OPC_MoveChild, 28, ++/*143079*/ OPC_CheckInteger, 1, ++/*143081*/ OPC_CheckType, MVT::i32, ++/*143083*/ OPC_MoveParent, ++/*143084*/ OPC_MoveChild, 29, ++/*143086*/ OPC_CheckInteger, 1, ++/*143088*/ OPC_CheckType, MVT::i32, ++/*143090*/ OPC_MoveParent, ++/*143091*/ OPC_MoveChild, 30, ++/*143093*/ OPC_CheckInteger, 1, ++/*143095*/ OPC_CheckType, MVT::i32, ++/*143097*/ OPC_MoveParent, ++/*143098*/ OPC_MoveChild, 31, ++/*143100*/ OPC_CheckInteger, 1, ++/*143102*/ OPC_CheckType, MVT::i32, ++/*143104*/ OPC_MoveParent, ++/*143105*/ OPC_CheckType, MVT::v32i8, ++/*143107*/ OPC_MoveParent, ++/*143108*/ OPC_CheckType, MVT::v32i8, ++/*143110*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*143112*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*143120*/ 0, /*End of Scope*/ ++/*143121*/ /*Scope*/ 89|128,8/*1113*/, /*->144236*/ ++/*143123*/ OPC_MoveChild0, ++/*143124*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*143127*/ OPC_CheckChild0Integer, 1, ++/*143129*/ OPC_CheckChild0Type, MVT::i32, ++/*143131*/ OPC_CheckChild1Integer, 1, ++/*143133*/ OPC_CheckChild1Type, MVT::i32, ++/*143135*/ OPC_CheckChild2Integer, 1, ++/*143137*/ OPC_CheckChild2Type, MVT::i32, ++/*143139*/ OPC_CheckChild3Integer, 1, ++/*143141*/ OPC_CheckChild3Type, MVT::i32, ++/*143143*/ OPC_CheckChild4Integer, 1, ++/*143145*/ OPC_CheckChild4Type, MVT::i32, ++/*143147*/ OPC_MoveChild5, ++/*143148*/ OPC_CheckInteger, 1, ++/*143150*/ OPC_CheckType, MVT::i32, ++/*143152*/ OPC_MoveParent, ++/*143153*/ OPC_MoveChild6, ++/*143154*/ OPC_CheckInteger, 1, ++/*143156*/ OPC_CheckType, MVT::i32, ++/*143158*/ OPC_MoveParent, ++/*143159*/ OPC_MoveChild7, ++/*143160*/ OPC_CheckInteger, 1, ++/*143162*/ OPC_CheckType, MVT::i32, ++/*143164*/ OPC_MoveParent, ++/*143165*/ OPC_MoveChild, 8, ++/*143167*/ OPC_CheckInteger, 1, ++/*143169*/ OPC_CheckType, MVT::i32, ++/*143171*/ OPC_MoveParent, ++/*143172*/ OPC_MoveChild, 9, ++/*143174*/ OPC_CheckInteger, 1, ++/*143176*/ OPC_CheckType, MVT::i32, ++/*143178*/ OPC_MoveParent, ++/*143179*/ OPC_MoveChild, 10, ++/*143181*/ OPC_CheckInteger, 1, ++/*143183*/ OPC_CheckType, MVT::i32, ++/*143185*/ OPC_MoveParent, ++/*143186*/ OPC_MoveChild, 11, ++/*143188*/ OPC_CheckInteger, 1, ++/*143190*/ OPC_CheckType, MVT::i32, ++/*143192*/ OPC_MoveParent, ++/*143193*/ OPC_MoveChild, 12, ++/*143195*/ OPC_CheckInteger, 1, ++/*143197*/ OPC_CheckType, MVT::i32, ++/*143199*/ OPC_MoveParent, ++/*143200*/ OPC_MoveChild, 13, ++/*143202*/ OPC_CheckInteger, 1, ++/*143204*/ OPC_CheckType, MVT::i32, ++/*143206*/ OPC_MoveParent, ++/*143207*/ OPC_MoveChild, 14, ++/*143209*/ OPC_CheckInteger, 1, ++/*143211*/ OPC_CheckType, MVT::i32, ++/*143213*/ OPC_MoveParent, ++/*143214*/ OPC_MoveChild, 15, ++/*143216*/ OPC_CheckInteger, 1, ++/*143218*/ OPC_CheckType, MVT::i32, ++/*143220*/ OPC_MoveParent, ++/*143221*/ OPC_MoveChild, 16, ++/*143223*/ OPC_CheckInteger, 1, ++/*143225*/ OPC_CheckType, MVT::i32, ++/*143227*/ OPC_MoveParent, ++/*143228*/ OPC_MoveChild, 17, ++/*143230*/ OPC_CheckInteger, 1, ++/*143232*/ OPC_CheckType, MVT::i32, ++/*143234*/ OPC_MoveParent, ++/*143235*/ OPC_MoveChild, 18, ++/*143237*/ OPC_CheckInteger, 1, ++/*143239*/ OPC_CheckType, MVT::i32, ++/*143241*/ OPC_MoveParent, ++/*143242*/ OPC_MoveChild, 19, ++/*143244*/ OPC_CheckInteger, 1, ++/*143246*/ OPC_CheckType, MVT::i32, ++/*143248*/ OPC_MoveParent, ++/*143249*/ OPC_MoveChild, 20, ++/*143251*/ OPC_CheckInteger, 1, ++/*143253*/ OPC_CheckType, MVT::i32, ++/*143255*/ OPC_MoveParent, ++/*143256*/ OPC_MoveChild, 21, ++/*143258*/ OPC_CheckInteger, 1, ++/*143260*/ OPC_CheckType, MVT::i32, ++/*143262*/ OPC_MoveParent, ++/*143263*/ OPC_MoveChild, 22, ++/*143265*/ OPC_CheckInteger, 1, ++/*143267*/ OPC_CheckType, MVT::i32, ++/*143269*/ OPC_MoveParent, ++/*143270*/ OPC_MoveChild, 23, ++/*143272*/ OPC_CheckInteger, 1, ++/*143274*/ OPC_CheckType, MVT::i32, ++/*143276*/ OPC_MoveParent, ++/*143277*/ OPC_MoveChild, 24, ++/*143279*/ OPC_CheckInteger, 1, ++/*143281*/ OPC_CheckType, MVT::i32, ++/*143283*/ OPC_MoveParent, ++/*143284*/ OPC_MoveChild, 25, ++/*143286*/ OPC_CheckInteger, 1, ++/*143288*/ OPC_CheckType, MVT::i32, ++/*143290*/ OPC_MoveParent, ++/*143291*/ OPC_MoveChild, 26, ++/*143293*/ OPC_CheckInteger, 1, ++/*143295*/ OPC_CheckType, MVT::i32, ++/*143297*/ OPC_MoveParent, ++/*143298*/ OPC_MoveChild, 27, ++/*143300*/ OPC_CheckInteger, 1, ++/*143302*/ OPC_CheckType, MVT::i32, ++/*143304*/ OPC_MoveParent, ++/*143305*/ OPC_MoveChild, 28, ++/*143307*/ OPC_CheckInteger, 1, ++/*143309*/ OPC_CheckType, MVT::i32, ++/*143311*/ OPC_MoveParent, ++/*143312*/ OPC_MoveChild, 29, ++/*143314*/ OPC_CheckInteger, 1, ++/*143316*/ OPC_CheckType, MVT::i32, ++/*143318*/ OPC_MoveParent, ++/*143319*/ OPC_MoveChild, 30, ++/*143321*/ OPC_CheckInteger, 1, ++/*143323*/ OPC_CheckType, MVT::i32, ++/*143325*/ OPC_MoveParent, ++/*143326*/ OPC_MoveChild, 31, ++/*143328*/ OPC_CheckInteger, 1, ++/*143330*/ OPC_CheckType, MVT::i32, ++/*143332*/ OPC_MoveParent, ++/*143333*/ OPC_MoveParent, ++/*143334*/ OPC_MoveChild1, ++/*143335*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*143338*/ OPC_Scope, 62|128,3/*446*/, /*->143787*/ // 2 children in Scope ++/*143341*/ OPC_CheckChild0Same, 1, ++/*143343*/ OPC_CheckChild1Same, 0, ++/*143345*/ OPC_MoveParent, ++/*143346*/ OPC_MoveParent, ++/*143347*/ OPC_MoveChild1, ++/*143348*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*143351*/ OPC_CheckChild0Integer, 7, ++/*143353*/ OPC_CheckChild0Type, MVT::i32, ++/*143355*/ OPC_CheckChild1Integer, 7, ++/*143357*/ OPC_CheckChild1Type, MVT::i32, ++/*143359*/ OPC_CheckChild2Integer, 7, ++/*143361*/ OPC_CheckChild2Type, MVT::i32, ++/*143363*/ OPC_CheckChild3Integer, 7, ++/*143365*/ OPC_CheckChild3Type, MVT::i32, ++/*143367*/ OPC_CheckChild4Integer, 7, ++/*143369*/ OPC_CheckChild4Type, MVT::i32, ++/*143371*/ OPC_MoveChild5, ++/*143372*/ OPC_CheckInteger, 7, ++/*143374*/ OPC_CheckType, MVT::i32, ++/*143376*/ OPC_MoveParent, ++/*143377*/ OPC_MoveChild6, ++/*143378*/ OPC_CheckInteger, 7, ++/*143380*/ OPC_CheckType, MVT::i32, ++/*143382*/ OPC_MoveParent, ++/*143383*/ OPC_MoveChild7, ++/*143384*/ OPC_CheckInteger, 7, ++/*143386*/ OPC_CheckType, MVT::i32, ++/*143388*/ OPC_MoveParent, ++/*143389*/ OPC_MoveChild, 8, ++/*143391*/ OPC_CheckInteger, 7, ++/*143393*/ OPC_CheckType, MVT::i32, ++/*143395*/ OPC_MoveParent, ++/*143396*/ OPC_MoveChild, 9, ++/*143398*/ OPC_CheckInteger, 7, ++/*143400*/ OPC_CheckType, MVT::i32, ++/*143402*/ OPC_MoveParent, ++/*143403*/ OPC_MoveChild, 10, ++/*143405*/ OPC_CheckInteger, 7, ++/*143407*/ OPC_CheckType, MVT::i32, ++/*143409*/ OPC_MoveParent, ++/*143410*/ OPC_MoveChild, 11, ++/*143412*/ OPC_CheckInteger, 7, ++/*143414*/ OPC_CheckType, MVT::i32, ++/*143416*/ OPC_MoveParent, ++/*143417*/ OPC_MoveChild, 12, ++/*143419*/ OPC_CheckInteger, 7, ++/*143421*/ OPC_CheckType, MVT::i32, ++/*143423*/ OPC_MoveParent, ++/*143424*/ OPC_MoveChild, 13, ++/*143426*/ OPC_CheckInteger, 7, ++/*143428*/ OPC_CheckType, MVT::i32, ++/*143430*/ OPC_MoveParent, ++/*143431*/ OPC_MoveChild, 14, ++/*143433*/ OPC_CheckInteger, 7, ++/*143435*/ OPC_CheckType, MVT::i32, ++/*143437*/ OPC_MoveParent, ++/*143438*/ OPC_MoveChild, 15, ++/*143440*/ OPC_CheckInteger, 7, ++/*143442*/ OPC_CheckType, MVT::i32, ++/*143444*/ OPC_MoveParent, ++/*143445*/ OPC_MoveChild, 16, ++/*143447*/ OPC_CheckInteger, 7, ++/*143449*/ OPC_CheckType, MVT::i32, ++/*143451*/ OPC_MoveParent, ++/*143452*/ OPC_MoveChild, 17, ++/*143454*/ OPC_CheckInteger, 7, ++/*143456*/ OPC_CheckType, MVT::i32, ++/*143458*/ OPC_MoveParent, ++/*143459*/ OPC_MoveChild, 18, ++/*143461*/ OPC_CheckInteger, 7, ++/*143463*/ OPC_CheckType, MVT::i32, ++/*143465*/ OPC_MoveParent, ++/*143466*/ OPC_MoveChild, 19, ++/*143468*/ OPC_CheckInteger, 7, ++/*143470*/ OPC_CheckType, MVT::i32, ++/*143472*/ OPC_MoveParent, ++/*143473*/ OPC_MoveChild, 20, ++/*143475*/ OPC_CheckInteger, 7, ++/*143477*/ OPC_CheckType, MVT::i32, ++/*143479*/ OPC_MoveParent, ++/*143480*/ OPC_MoveChild, 21, ++/*143482*/ OPC_CheckInteger, 7, ++/*143484*/ OPC_CheckType, MVT::i32, ++/*143486*/ OPC_MoveParent, ++/*143487*/ OPC_MoveChild, 22, ++/*143489*/ OPC_CheckInteger, 7, ++/*143491*/ OPC_CheckType, MVT::i32, ++/*143493*/ OPC_MoveParent, ++/*143494*/ OPC_MoveChild, 23, ++/*143496*/ OPC_CheckInteger, 7, ++/*143498*/ OPC_CheckType, MVT::i32, ++/*143500*/ OPC_MoveParent, ++/*143501*/ OPC_MoveChild, 24, ++/*143503*/ OPC_CheckInteger, 7, ++/*143505*/ OPC_CheckType, MVT::i32, ++/*143507*/ OPC_MoveParent, ++/*143508*/ OPC_MoveChild, 25, ++/*143510*/ OPC_CheckInteger, 7, ++/*143512*/ OPC_CheckType, MVT::i32, ++/*143514*/ OPC_MoveParent, ++/*143515*/ OPC_MoveChild, 26, ++/*143517*/ OPC_CheckInteger, 7, ++/*143519*/ OPC_CheckType, MVT::i32, ++/*143521*/ OPC_MoveParent, ++/*143522*/ OPC_MoveChild, 27, ++/*143524*/ OPC_CheckInteger, 7, ++/*143526*/ OPC_CheckType, MVT::i32, ++/*143528*/ OPC_MoveParent, ++/*143529*/ OPC_MoveChild, 28, ++/*143531*/ OPC_CheckInteger, 7, ++/*143533*/ OPC_CheckType, MVT::i32, ++/*143535*/ OPC_MoveParent, ++/*143536*/ OPC_MoveChild, 29, ++/*143538*/ OPC_CheckInteger, 7, ++/*143540*/ OPC_CheckType, MVT::i32, ++/*143542*/ OPC_MoveParent, ++/*143543*/ OPC_MoveChild, 30, ++/*143545*/ OPC_CheckInteger, 7, ++/*143547*/ OPC_CheckType, MVT::i32, ++/*143549*/ OPC_MoveParent, ++/*143550*/ OPC_MoveChild, 31, ++/*143552*/ OPC_CheckInteger, 7, ++/*143554*/ OPC_CheckType, MVT::i32, ++/*143556*/ OPC_MoveParent, ++/*143557*/ OPC_CheckType, MVT::v32i8, ++/*143559*/ OPC_MoveParent, ++/*143560*/ OPC_MoveParent, ++/*143561*/ OPC_MoveParent, ++/*143562*/ OPC_MoveChild1, ++/*143563*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*143566*/ OPC_CheckChild0Integer, 1, ++/*143568*/ OPC_CheckChild0Type, MVT::i32, ++/*143570*/ OPC_CheckChild1Integer, 1, ++/*143572*/ OPC_CheckChild1Type, MVT::i32, ++/*143574*/ OPC_CheckChild2Integer, 1, ++/*143576*/ OPC_CheckChild2Type, MVT::i32, ++/*143578*/ OPC_CheckChild3Integer, 1, ++/*143580*/ OPC_CheckChild3Type, MVT::i32, ++/*143582*/ OPC_CheckChild4Integer, 1, ++/*143584*/ OPC_CheckChild4Type, MVT::i32, ++/*143586*/ OPC_MoveChild5, ++/*143587*/ OPC_CheckInteger, 1, ++/*143589*/ OPC_CheckType, MVT::i32, ++/*143591*/ OPC_MoveParent, ++/*143592*/ OPC_MoveChild6, ++/*143593*/ OPC_CheckInteger, 1, ++/*143595*/ OPC_CheckType, MVT::i32, ++/*143597*/ OPC_MoveParent, ++/*143598*/ OPC_MoveChild7, ++/*143599*/ OPC_CheckInteger, 1, ++/*143601*/ OPC_CheckType, MVT::i32, ++/*143603*/ OPC_MoveParent, ++/*143604*/ OPC_MoveChild, 8, ++/*143606*/ OPC_CheckInteger, 1, ++/*143608*/ OPC_CheckType, MVT::i32, ++/*143610*/ OPC_MoveParent, ++/*143611*/ OPC_MoveChild, 9, ++/*143613*/ OPC_CheckInteger, 1, ++/*143615*/ OPC_CheckType, MVT::i32, ++/*143617*/ OPC_MoveParent, ++/*143618*/ OPC_MoveChild, 10, ++/*143620*/ OPC_CheckInteger, 1, ++/*143622*/ OPC_CheckType, MVT::i32, ++/*143624*/ OPC_MoveParent, ++/*143625*/ OPC_MoveChild, 11, ++/*143627*/ OPC_CheckInteger, 1, ++/*143629*/ OPC_CheckType, MVT::i32, ++/*143631*/ OPC_MoveParent, ++/*143632*/ OPC_MoveChild, 12, ++/*143634*/ OPC_CheckInteger, 1, ++/*143636*/ OPC_CheckType, MVT::i32, ++/*143638*/ OPC_MoveParent, ++/*143639*/ OPC_MoveChild, 13, ++/*143641*/ OPC_CheckInteger, 1, ++/*143643*/ OPC_CheckType, MVT::i32, ++/*143645*/ OPC_MoveParent, ++/*143646*/ OPC_MoveChild, 14, ++/*143648*/ OPC_CheckInteger, 1, ++/*143650*/ OPC_CheckType, MVT::i32, ++/*143652*/ OPC_MoveParent, ++/*143653*/ OPC_MoveChild, 15, ++/*143655*/ OPC_CheckInteger, 1, ++/*143657*/ OPC_CheckType, MVT::i32, ++/*143659*/ OPC_MoveParent, ++/*143660*/ OPC_MoveChild, 16, ++/*143662*/ OPC_CheckInteger, 1, ++/*143664*/ OPC_CheckType, MVT::i32, ++/*143666*/ OPC_MoveParent, ++/*143667*/ OPC_MoveChild, 17, ++/*143669*/ OPC_CheckInteger, 1, ++/*143671*/ OPC_CheckType, MVT::i32, ++/*143673*/ OPC_MoveParent, ++/*143674*/ OPC_MoveChild, 18, ++/*143676*/ OPC_CheckInteger, 1, ++/*143678*/ OPC_CheckType, MVT::i32, ++/*143680*/ OPC_MoveParent, ++/*143681*/ OPC_MoveChild, 19, ++/*143683*/ OPC_CheckInteger, 1, ++/*143685*/ OPC_CheckType, MVT::i32, ++/*143687*/ OPC_MoveParent, ++/*143688*/ OPC_MoveChild, 20, ++/*143690*/ OPC_CheckInteger, 1, ++/*143692*/ OPC_CheckType, MVT::i32, ++/*143694*/ OPC_MoveParent, ++/*143695*/ OPC_MoveChild, 21, ++/*143697*/ OPC_CheckInteger, 1, ++/*143699*/ OPC_CheckType, MVT::i32, ++/*143701*/ OPC_MoveParent, ++/*143702*/ OPC_MoveChild, 22, ++/*143704*/ OPC_CheckInteger, 1, ++/*143706*/ OPC_CheckType, MVT::i32, ++/*143708*/ OPC_MoveParent, ++/*143709*/ OPC_MoveChild, 23, ++/*143711*/ OPC_CheckInteger, 1, ++/*143713*/ OPC_CheckType, MVT::i32, ++/*143715*/ OPC_MoveParent, ++/*143716*/ OPC_MoveChild, 24, ++/*143718*/ OPC_CheckInteger, 1, ++/*143720*/ OPC_CheckType, MVT::i32, ++/*143722*/ OPC_MoveParent, ++/*143723*/ OPC_MoveChild, 25, ++/*143725*/ OPC_CheckInteger, 1, ++/*143727*/ OPC_CheckType, MVT::i32, ++/*143729*/ OPC_MoveParent, ++/*143730*/ OPC_MoveChild, 26, ++/*143732*/ OPC_CheckInteger, 1, ++/*143734*/ OPC_CheckType, MVT::i32, ++/*143736*/ OPC_MoveParent, ++/*143737*/ OPC_MoveChild, 27, ++/*143739*/ OPC_CheckInteger, 1, ++/*143741*/ OPC_CheckType, MVT::i32, ++/*143743*/ OPC_MoveParent, ++/*143744*/ OPC_MoveChild, 28, ++/*143746*/ OPC_CheckInteger, 1, ++/*143748*/ OPC_CheckType, MVT::i32, ++/*143750*/ OPC_MoveParent, ++/*143751*/ OPC_MoveChild, 29, ++/*143753*/ OPC_CheckInteger, 1, ++/*143755*/ OPC_CheckType, MVT::i32, ++/*143757*/ OPC_MoveParent, ++/*143758*/ OPC_MoveChild, 30, ++/*143760*/ OPC_CheckInteger, 1, ++/*143762*/ OPC_CheckType, MVT::i32, ++/*143764*/ OPC_MoveParent, ++/*143765*/ OPC_MoveChild, 31, ++/*143767*/ OPC_CheckInteger, 1, ++/*143769*/ OPC_CheckType, MVT::i32, ++/*143771*/ OPC_MoveParent, ++/*143772*/ OPC_CheckType, MVT::v32i8, ++/*143774*/ OPC_MoveParent, ++/*143775*/ OPC_CheckType, MVT::v32i8, ++/*143777*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*143779*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*143787*/ /*Scope*/ 62|128,3/*446*/, /*->144235*/ ++/*143789*/ OPC_CheckChild0Same, 0, ++/*143791*/ OPC_CheckChild1Same, 1, ++/*143793*/ OPC_MoveParent, ++/*143794*/ OPC_MoveParent, ++/*143795*/ OPC_MoveChild1, ++/*143796*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*143799*/ OPC_CheckChild0Integer, 7, ++/*143801*/ OPC_CheckChild0Type, MVT::i32, ++/*143803*/ OPC_CheckChild1Integer, 7, ++/*143805*/ OPC_CheckChild1Type, MVT::i32, ++/*143807*/ OPC_CheckChild2Integer, 7, ++/*143809*/ OPC_CheckChild2Type, MVT::i32, ++/*143811*/ OPC_CheckChild3Integer, 7, ++/*143813*/ OPC_CheckChild3Type, MVT::i32, ++/*143815*/ OPC_CheckChild4Integer, 7, ++/*143817*/ OPC_CheckChild4Type, MVT::i32, ++/*143819*/ OPC_MoveChild5, ++/*143820*/ OPC_CheckInteger, 7, ++/*143822*/ OPC_CheckType, MVT::i32, ++/*143824*/ OPC_MoveParent, ++/*143825*/ OPC_MoveChild6, ++/*143826*/ OPC_CheckInteger, 7, ++/*143828*/ OPC_CheckType, MVT::i32, ++/*143830*/ OPC_MoveParent, ++/*143831*/ OPC_MoveChild7, ++/*143832*/ OPC_CheckInteger, 7, ++/*143834*/ OPC_CheckType, MVT::i32, ++/*143836*/ OPC_MoveParent, ++/*143837*/ OPC_MoveChild, 8, ++/*143839*/ OPC_CheckInteger, 7, ++/*143841*/ OPC_CheckType, MVT::i32, ++/*143843*/ OPC_MoveParent, ++/*143844*/ OPC_MoveChild, 9, ++/*143846*/ OPC_CheckInteger, 7, ++/*143848*/ OPC_CheckType, MVT::i32, ++/*143850*/ OPC_MoveParent, ++/*143851*/ OPC_MoveChild, 10, ++/*143853*/ OPC_CheckInteger, 7, ++/*143855*/ OPC_CheckType, MVT::i32, ++/*143857*/ OPC_MoveParent, ++/*143858*/ OPC_MoveChild, 11, ++/*143860*/ OPC_CheckInteger, 7, ++/*143862*/ OPC_CheckType, MVT::i32, ++/*143864*/ OPC_MoveParent, ++/*143865*/ OPC_MoveChild, 12, ++/*143867*/ OPC_CheckInteger, 7, ++/*143869*/ OPC_CheckType, MVT::i32, ++/*143871*/ OPC_MoveParent, ++/*143872*/ OPC_MoveChild, 13, ++/*143874*/ OPC_CheckInteger, 7, ++/*143876*/ OPC_CheckType, MVT::i32, ++/*143878*/ OPC_MoveParent, ++/*143879*/ OPC_MoveChild, 14, ++/*143881*/ OPC_CheckInteger, 7, ++/*143883*/ OPC_CheckType, MVT::i32, ++/*143885*/ OPC_MoveParent, ++/*143886*/ OPC_MoveChild, 15, ++/*143888*/ OPC_CheckInteger, 7, ++/*143890*/ OPC_CheckType, MVT::i32, ++/*143892*/ OPC_MoveParent, ++/*143893*/ OPC_MoveChild, 16, ++/*143895*/ OPC_CheckInteger, 7, ++/*143897*/ OPC_CheckType, MVT::i32, ++/*143899*/ OPC_MoveParent, ++/*143900*/ OPC_MoveChild, 17, ++/*143902*/ OPC_CheckInteger, 7, ++/*143904*/ OPC_CheckType, MVT::i32, ++/*143906*/ OPC_MoveParent, ++/*143907*/ OPC_MoveChild, 18, ++/*143909*/ OPC_CheckInteger, 7, ++/*143911*/ OPC_CheckType, MVT::i32, ++/*143913*/ OPC_MoveParent, ++/*143914*/ OPC_MoveChild, 19, ++/*143916*/ OPC_CheckInteger, 7, ++/*143918*/ OPC_CheckType, MVT::i32, ++/*143920*/ OPC_MoveParent, ++/*143921*/ OPC_MoveChild, 20, ++/*143923*/ OPC_CheckInteger, 7, ++/*143925*/ OPC_CheckType, MVT::i32, ++/*143927*/ OPC_MoveParent, ++/*143928*/ OPC_MoveChild, 21, ++/*143930*/ OPC_CheckInteger, 7, ++/*143932*/ OPC_CheckType, MVT::i32, ++/*143934*/ OPC_MoveParent, ++/*143935*/ OPC_MoveChild, 22, ++/*143937*/ OPC_CheckInteger, 7, ++/*143939*/ OPC_CheckType, MVT::i32, ++/*143941*/ OPC_MoveParent, ++/*143942*/ OPC_MoveChild, 23, ++/*143944*/ OPC_CheckInteger, 7, ++/*143946*/ OPC_CheckType, MVT::i32, ++/*143948*/ OPC_MoveParent, ++/*143949*/ OPC_MoveChild, 24, ++/*143951*/ OPC_CheckInteger, 7, ++/*143953*/ OPC_CheckType, MVT::i32, ++/*143955*/ OPC_MoveParent, ++/*143956*/ OPC_MoveChild, 25, ++/*143958*/ OPC_CheckInteger, 7, ++/*143960*/ OPC_CheckType, MVT::i32, ++/*143962*/ OPC_MoveParent, ++/*143963*/ OPC_MoveChild, 26, ++/*143965*/ OPC_CheckInteger, 7, ++/*143967*/ OPC_CheckType, MVT::i32, ++/*143969*/ OPC_MoveParent, ++/*143970*/ OPC_MoveChild, 27, ++/*143972*/ OPC_CheckInteger, 7, ++/*143974*/ OPC_CheckType, MVT::i32, ++/*143976*/ OPC_MoveParent, ++/*143977*/ OPC_MoveChild, 28, ++/*143979*/ OPC_CheckInteger, 7, ++/*143981*/ OPC_CheckType, MVT::i32, ++/*143983*/ OPC_MoveParent, ++/*143984*/ OPC_MoveChild, 29, ++/*143986*/ OPC_CheckInteger, 7, ++/*143988*/ OPC_CheckType, MVT::i32, ++/*143990*/ OPC_MoveParent, ++/*143991*/ OPC_MoveChild, 30, ++/*143993*/ OPC_CheckInteger, 7, ++/*143995*/ OPC_CheckType, MVT::i32, ++/*143997*/ OPC_MoveParent, ++/*143998*/ OPC_MoveChild, 31, ++/*144000*/ OPC_CheckInteger, 7, ++/*144002*/ OPC_CheckType, MVT::i32, ++/*144004*/ OPC_MoveParent, ++/*144005*/ OPC_CheckType, MVT::v32i8, ++/*144007*/ OPC_MoveParent, ++/*144008*/ OPC_MoveParent, ++/*144009*/ OPC_MoveParent, ++/*144010*/ OPC_MoveChild1, ++/*144011*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*144014*/ OPC_CheckChild0Integer, 1, ++/*144016*/ OPC_CheckChild0Type, MVT::i32, ++/*144018*/ OPC_CheckChild1Integer, 1, ++/*144020*/ OPC_CheckChild1Type, MVT::i32, ++/*144022*/ OPC_CheckChild2Integer, 1, ++/*144024*/ OPC_CheckChild2Type, MVT::i32, ++/*144026*/ OPC_CheckChild3Integer, 1, ++/*144028*/ OPC_CheckChild3Type, MVT::i32, ++/*144030*/ OPC_CheckChild4Integer, 1, ++/*144032*/ OPC_CheckChild4Type, MVT::i32, ++/*144034*/ OPC_MoveChild5, ++/*144035*/ OPC_CheckInteger, 1, ++/*144037*/ OPC_CheckType, MVT::i32, ++/*144039*/ OPC_MoveParent, ++/*144040*/ OPC_MoveChild6, ++/*144041*/ OPC_CheckInteger, 1, ++/*144043*/ OPC_CheckType, MVT::i32, ++/*144045*/ OPC_MoveParent, ++/*144046*/ OPC_MoveChild7, ++/*144047*/ OPC_CheckInteger, 1, ++/*144049*/ OPC_CheckType, MVT::i32, ++/*144051*/ OPC_MoveParent, ++/*144052*/ OPC_MoveChild, 8, ++/*144054*/ OPC_CheckInteger, 1, ++/*144056*/ OPC_CheckType, MVT::i32, ++/*144058*/ OPC_MoveParent, ++/*144059*/ OPC_MoveChild, 9, ++/*144061*/ OPC_CheckInteger, 1, ++/*144063*/ OPC_CheckType, MVT::i32, ++/*144065*/ OPC_MoveParent, ++/*144066*/ OPC_MoveChild, 10, ++/*144068*/ OPC_CheckInteger, 1, ++/*144070*/ OPC_CheckType, MVT::i32, ++/*144072*/ OPC_MoveParent, ++/*144073*/ OPC_MoveChild, 11, ++/*144075*/ OPC_CheckInteger, 1, ++/*144077*/ OPC_CheckType, MVT::i32, ++/*144079*/ OPC_MoveParent, ++/*144080*/ OPC_MoveChild, 12, ++/*144082*/ OPC_CheckInteger, 1, ++/*144084*/ OPC_CheckType, MVT::i32, ++/*144086*/ OPC_MoveParent, ++/*144087*/ OPC_MoveChild, 13, ++/*144089*/ OPC_CheckInteger, 1, ++/*144091*/ OPC_CheckType, MVT::i32, ++/*144093*/ OPC_MoveParent, ++/*144094*/ OPC_MoveChild, 14, ++/*144096*/ OPC_CheckInteger, 1, ++/*144098*/ OPC_CheckType, MVT::i32, ++/*144100*/ OPC_MoveParent, ++/*144101*/ OPC_MoveChild, 15, ++/*144103*/ OPC_CheckInteger, 1, ++/*144105*/ OPC_CheckType, MVT::i32, ++/*144107*/ OPC_MoveParent, ++/*144108*/ OPC_MoveChild, 16, ++/*144110*/ OPC_CheckInteger, 1, ++/*144112*/ OPC_CheckType, MVT::i32, ++/*144114*/ OPC_MoveParent, ++/*144115*/ OPC_MoveChild, 17, ++/*144117*/ OPC_CheckInteger, 1, ++/*144119*/ OPC_CheckType, MVT::i32, ++/*144121*/ OPC_MoveParent, ++/*144122*/ OPC_MoveChild, 18, ++/*144124*/ OPC_CheckInteger, 1, ++/*144126*/ OPC_CheckType, MVT::i32, ++/*144128*/ OPC_MoveParent, ++/*144129*/ OPC_MoveChild, 19, ++/*144131*/ OPC_CheckInteger, 1, ++/*144133*/ OPC_CheckType, MVT::i32, ++/*144135*/ OPC_MoveParent, ++/*144136*/ OPC_MoveChild, 20, ++/*144138*/ OPC_CheckInteger, 1, ++/*144140*/ OPC_CheckType, MVT::i32, ++/*144142*/ OPC_MoveParent, ++/*144143*/ OPC_MoveChild, 21, ++/*144145*/ OPC_CheckInteger, 1, ++/*144147*/ OPC_CheckType, MVT::i32, ++/*144149*/ OPC_MoveParent, ++/*144150*/ OPC_MoveChild, 22, ++/*144152*/ OPC_CheckInteger, 1, ++/*144154*/ OPC_CheckType, MVT::i32, ++/*144156*/ OPC_MoveParent, ++/*144157*/ OPC_MoveChild, 23, ++/*144159*/ OPC_CheckInteger, 1, ++/*144161*/ OPC_CheckType, MVT::i32, ++/*144163*/ OPC_MoveParent, ++/*144164*/ OPC_MoveChild, 24, ++/*144166*/ OPC_CheckInteger, 1, ++/*144168*/ OPC_CheckType, MVT::i32, ++/*144170*/ OPC_MoveParent, ++/*144171*/ OPC_MoveChild, 25, ++/*144173*/ OPC_CheckInteger, 1, ++/*144175*/ OPC_CheckType, MVT::i32, ++/*144177*/ OPC_MoveParent, ++/*144178*/ OPC_MoveChild, 26, ++/*144180*/ OPC_CheckInteger, 1, ++/*144182*/ OPC_CheckType, MVT::i32, ++/*144184*/ OPC_MoveParent, ++/*144185*/ OPC_MoveChild, 27, ++/*144187*/ OPC_CheckInteger, 1, ++/*144189*/ OPC_CheckType, MVT::i32, ++/*144191*/ OPC_MoveParent, ++/*144192*/ OPC_MoveChild, 28, ++/*144194*/ OPC_CheckInteger, 1, ++/*144196*/ OPC_CheckType, MVT::i32, ++/*144198*/ OPC_MoveParent, ++/*144199*/ OPC_MoveChild, 29, ++/*144201*/ OPC_CheckInteger, 1, ++/*144203*/ OPC_CheckType, MVT::i32, ++/*144205*/ OPC_MoveParent, ++/*144206*/ OPC_MoveChild, 30, ++/*144208*/ OPC_CheckInteger, 1, ++/*144210*/ OPC_CheckType, MVT::i32, ++/*144212*/ OPC_MoveParent, ++/*144213*/ OPC_MoveChild, 31, ++/*144215*/ OPC_CheckInteger, 1, ++/*144217*/ OPC_CheckType, MVT::i32, ++/*144219*/ OPC_MoveParent, ++/*144220*/ OPC_CheckType, MVT::v32i8, ++/*144222*/ OPC_MoveParent, ++/*144223*/ OPC_CheckType, MVT::v32i8, ++/*144225*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*144227*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*144235*/ 0, /*End of Scope*/ ++/*144236*/ 0, /*End of Scope*/ ++/*144237*/ /*Scope*/ 13|128,62/*7949*/, /*->152188*/ ++/*144239*/ OPC_MoveChild0, ++/*144240*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*144243*/ OPC_CheckChild0Integer, 1, ++/*144245*/ OPC_CheckChild0Type, MVT::i32, ++/*144247*/ OPC_CheckChild1Integer, 1, ++/*144249*/ OPC_CheckChild1Type, MVT::i32, ++/*144251*/ OPC_CheckChild2Integer, 1, ++/*144253*/ OPC_CheckChild2Type, MVT::i32, ++/*144255*/ OPC_CheckChild3Integer, 1, ++/*144257*/ OPC_CheckChild3Type, MVT::i32, ++/*144259*/ OPC_CheckChild4Integer, 1, ++/*144261*/ OPC_CheckChild4Type, MVT::i32, ++/*144263*/ OPC_MoveChild5, ++/*144264*/ OPC_CheckInteger, 1, ++/*144266*/ OPC_CheckType, MVT::i32, ++/*144268*/ OPC_MoveParent, ++/*144269*/ OPC_MoveChild6, ++/*144270*/ OPC_CheckInteger, 1, ++/*144272*/ OPC_CheckType, MVT::i32, ++/*144274*/ OPC_MoveParent, ++/*144275*/ OPC_MoveChild7, ++/*144276*/ OPC_CheckInteger, 1, ++/*144278*/ OPC_CheckType, MVT::i32, ++/*144280*/ OPC_MoveParent, ++/*144281*/ OPC_MoveChild, 8, ++/*144283*/ OPC_CheckInteger, 1, ++/*144285*/ OPC_CheckType, MVT::i32, ++/*144287*/ OPC_MoveParent, ++/*144288*/ OPC_MoveChild, 9, ++/*144290*/ OPC_CheckInteger, 1, ++/*144292*/ OPC_CheckType, MVT::i32, ++/*144294*/ OPC_MoveParent, ++/*144295*/ OPC_MoveChild, 10, ++/*144297*/ OPC_CheckInteger, 1, ++/*144299*/ OPC_CheckType, MVT::i32, ++/*144301*/ OPC_MoveParent, ++/*144302*/ OPC_MoveChild, 11, ++/*144304*/ OPC_CheckInteger, 1, ++/*144306*/ OPC_CheckType, MVT::i32, ++/*144308*/ OPC_MoveParent, ++/*144309*/ OPC_MoveChild, 12, ++/*144311*/ OPC_CheckInteger, 1, ++/*144313*/ OPC_CheckType, MVT::i32, ++/*144315*/ OPC_MoveParent, ++/*144316*/ OPC_MoveChild, 13, ++/*144318*/ OPC_CheckInteger, 1, ++/*144320*/ OPC_CheckType, MVT::i32, ++/*144322*/ OPC_MoveParent, ++/*144323*/ OPC_MoveChild, 14, ++/*144325*/ OPC_CheckInteger, 1, ++/*144327*/ OPC_CheckType, MVT::i32, ++/*144329*/ OPC_MoveParent, ++/*144330*/ OPC_MoveChild, 15, ++/*144332*/ OPC_CheckInteger, 1, ++/*144334*/ OPC_CheckType, MVT::i32, ++/*144336*/ OPC_MoveParent, ++/*144337*/ OPC_MoveChild, 16, ++/*144339*/ OPC_CheckInteger, 1, ++/*144341*/ OPC_CheckType, MVT::i32, ++/*144343*/ OPC_MoveParent, ++/*144344*/ OPC_MoveChild, 17, ++/*144346*/ OPC_CheckInteger, 1, ++/*144348*/ OPC_CheckType, MVT::i32, ++/*144350*/ OPC_MoveParent, ++/*144351*/ OPC_MoveChild, 18, ++/*144353*/ OPC_CheckInteger, 1, ++/*144355*/ OPC_CheckType, MVT::i32, ++/*144357*/ OPC_MoveParent, ++/*144358*/ OPC_MoveChild, 19, ++/*144360*/ OPC_CheckInteger, 1, ++/*144362*/ OPC_CheckType, MVT::i32, ++/*144364*/ OPC_MoveParent, ++/*144365*/ OPC_MoveChild, 20, ++/*144367*/ OPC_CheckInteger, 1, ++/*144369*/ OPC_CheckType, MVT::i32, ++/*144371*/ OPC_MoveParent, ++/*144372*/ OPC_MoveChild, 21, ++/*144374*/ OPC_CheckInteger, 1, ++/*144376*/ OPC_CheckType, MVT::i32, ++/*144378*/ OPC_MoveParent, ++/*144379*/ OPC_MoveChild, 22, ++/*144381*/ OPC_CheckInteger, 1, ++/*144383*/ OPC_CheckType, MVT::i32, ++/*144385*/ OPC_MoveParent, ++/*144386*/ OPC_MoveChild, 23, ++/*144388*/ OPC_CheckInteger, 1, ++/*144390*/ OPC_CheckType, MVT::i32, ++/*144392*/ OPC_MoveParent, ++/*144393*/ OPC_MoveChild, 24, ++/*144395*/ OPC_CheckInteger, 1, ++/*144397*/ OPC_CheckType, MVT::i32, ++/*144399*/ OPC_MoveParent, ++/*144400*/ OPC_MoveChild, 25, ++/*144402*/ OPC_CheckInteger, 1, ++/*144404*/ OPC_CheckType, MVT::i32, ++/*144406*/ OPC_MoveParent, ++/*144407*/ OPC_MoveChild, 26, ++/*144409*/ OPC_CheckInteger, 1, ++/*144411*/ OPC_CheckType, MVT::i32, ++/*144413*/ OPC_MoveParent, ++/*144414*/ OPC_MoveChild, 27, ++/*144416*/ OPC_CheckInteger, 1, ++/*144418*/ OPC_CheckType, MVT::i32, ++/*144420*/ OPC_MoveParent, ++/*144421*/ OPC_MoveChild, 28, ++/*144423*/ OPC_CheckInteger, 1, ++/*144425*/ OPC_CheckType, MVT::i32, ++/*144427*/ OPC_MoveParent, ++/*144428*/ OPC_MoveChild, 29, ++/*144430*/ OPC_CheckInteger, 1, ++/*144432*/ OPC_CheckType, MVT::i32, ++/*144434*/ OPC_MoveParent, ++/*144435*/ OPC_MoveChild, 30, ++/*144437*/ OPC_CheckInteger, 1, ++/*144439*/ OPC_CheckType, MVT::i32, ++/*144441*/ OPC_MoveParent, ++/*144442*/ OPC_MoveChild, 31, ++/*144444*/ OPC_CheckInteger, 1, ++/*144446*/ OPC_CheckType, MVT::i32, ++/*144448*/ OPC_MoveParent, ++/*144449*/ OPC_MoveParent, ++/*144450*/ OPC_RecordChild1, // #1 = $b ++/*144451*/ OPC_MoveParent, ++/*144452*/ OPC_MoveParent, ++/*144453*/ OPC_MoveChild1, ++/*144454*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*144457*/ OPC_MoveChild0, ++/*144458*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*144461*/ OPC_Scope, 120|128,30/*3960*/, /*->148424*/ // 4 children in Scope ++/*144464*/ OPC_MoveChild0, ++/*144465*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*144468*/ OPC_Scope, 17|128,5/*657*/, /*->145128*/ // 6 children in Scope ++/*144471*/ OPC_MoveChild0, ++/*144472*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*144475*/ OPC_CheckChild0Integer, 1, ++/*144477*/ OPC_CheckChild0Type, MVT::i32, ++/*144479*/ OPC_CheckChild1Integer, 1, ++/*144481*/ OPC_CheckChild1Type, MVT::i32, ++/*144483*/ OPC_CheckChild2Integer, 1, ++/*144485*/ OPC_CheckChild2Type, MVT::i32, ++/*144487*/ OPC_CheckChild3Integer, 1, ++/*144489*/ OPC_CheckChild3Type, MVT::i32, ++/*144491*/ OPC_CheckChild4Integer, 1, ++/*144493*/ OPC_CheckChild4Type, MVT::i32, ++/*144495*/ OPC_MoveChild5, ++/*144496*/ OPC_CheckInteger, 1, ++/*144498*/ OPC_CheckType, MVT::i32, ++/*144500*/ OPC_MoveParent, ++/*144501*/ OPC_MoveChild6, ++/*144502*/ OPC_CheckInteger, 1, ++/*144504*/ OPC_CheckType, MVT::i32, ++/*144506*/ OPC_MoveParent, ++/*144507*/ OPC_MoveChild7, ++/*144508*/ OPC_CheckInteger, 1, ++/*144510*/ OPC_CheckType, MVT::i32, ++/*144512*/ OPC_MoveParent, ++/*144513*/ OPC_MoveChild, 8, ++/*144515*/ OPC_CheckInteger, 1, ++/*144517*/ OPC_CheckType, MVT::i32, ++/*144519*/ OPC_MoveParent, ++/*144520*/ OPC_MoveChild, 9, ++/*144522*/ OPC_CheckInteger, 1, ++/*144524*/ OPC_CheckType, MVT::i32, ++/*144526*/ OPC_MoveParent, ++/*144527*/ OPC_MoveChild, 10, ++/*144529*/ OPC_CheckInteger, 1, ++/*144531*/ OPC_CheckType, MVT::i32, ++/*144533*/ OPC_MoveParent, ++/*144534*/ OPC_MoveChild, 11, ++/*144536*/ OPC_CheckInteger, 1, ++/*144538*/ OPC_CheckType, MVT::i32, ++/*144540*/ OPC_MoveParent, ++/*144541*/ OPC_MoveChild, 12, ++/*144543*/ OPC_CheckInteger, 1, ++/*144545*/ OPC_CheckType, MVT::i32, ++/*144547*/ OPC_MoveParent, ++/*144548*/ OPC_MoveChild, 13, ++/*144550*/ OPC_CheckInteger, 1, ++/*144552*/ OPC_CheckType, MVT::i32, ++/*144554*/ OPC_MoveParent, ++/*144555*/ OPC_MoveChild, 14, ++/*144557*/ OPC_CheckInteger, 1, ++/*144559*/ OPC_CheckType, MVT::i32, ++/*144561*/ OPC_MoveParent, ++/*144562*/ OPC_MoveChild, 15, ++/*144564*/ OPC_CheckInteger, 1, ++/*144566*/ OPC_CheckType, MVT::i32, ++/*144568*/ OPC_MoveParent, ++/*144569*/ OPC_MoveChild, 16, ++/*144571*/ OPC_CheckInteger, 1, ++/*144573*/ OPC_CheckType, MVT::i32, ++/*144575*/ OPC_MoveParent, ++/*144576*/ OPC_MoveChild, 17, ++/*144578*/ OPC_CheckInteger, 1, ++/*144580*/ OPC_CheckType, MVT::i32, ++/*144582*/ OPC_MoveParent, ++/*144583*/ OPC_MoveChild, 18, ++/*144585*/ OPC_CheckInteger, 1, ++/*144587*/ OPC_CheckType, MVT::i32, ++/*144589*/ OPC_MoveParent, ++/*144590*/ OPC_MoveChild, 19, ++/*144592*/ OPC_CheckInteger, 1, ++/*144594*/ OPC_CheckType, MVT::i32, ++/*144596*/ OPC_MoveParent, ++/*144597*/ OPC_MoveChild, 20, ++/*144599*/ OPC_CheckInteger, 1, ++/*144601*/ OPC_CheckType, MVT::i32, ++/*144603*/ OPC_MoveParent, ++/*144604*/ OPC_MoveChild, 21, ++/*144606*/ OPC_CheckInteger, 1, ++/*144608*/ OPC_CheckType, MVT::i32, ++/*144610*/ OPC_MoveParent, ++/*144611*/ OPC_MoveChild, 22, ++/*144613*/ OPC_CheckInteger, 1, ++/*144615*/ OPC_CheckType, MVT::i32, ++/*144617*/ OPC_MoveParent, ++/*144618*/ OPC_MoveChild, 23, ++/*144620*/ OPC_CheckInteger, 1, ++/*144622*/ OPC_CheckType, MVT::i32, ++/*144624*/ OPC_MoveParent, ++/*144625*/ OPC_MoveChild, 24, ++/*144627*/ OPC_CheckInteger, 1, ++/*144629*/ OPC_CheckType, MVT::i32, ++/*144631*/ OPC_MoveParent, ++/*144632*/ OPC_MoveChild, 25, ++/*144634*/ OPC_CheckInteger, 1, ++/*144636*/ OPC_CheckType, MVT::i32, ++/*144638*/ OPC_MoveParent, ++/*144639*/ OPC_MoveChild, 26, ++/*144641*/ OPC_CheckInteger, 1, ++/*144643*/ OPC_CheckType, MVT::i32, ++/*144645*/ OPC_MoveParent, ++/*144646*/ OPC_MoveChild, 27, ++/*144648*/ OPC_CheckInteger, 1, ++/*144650*/ OPC_CheckType, MVT::i32, ++/*144652*/ OPC_MoveParent, ++/*144653*/ OPC_MoveChild, 28, ++/*144655*/ OPC_CheckInteger, 1, ++/*144657*/ OPC_CheckType, MVT::i32, ++/*144659*/ OPC_MoveParent, ++/*144660*/ OPC_MoveChild, 29, ++/*144662*/ OPC_CheckInteger, 1, ++/*144664*/ OPC_CheckType, MVT::i32, ++/*144666*/ OPC_MoveParent, ++/*144667*/ OPC_MoveChild, 30, ++/*144669*/ OPC_CheckInteger, 1, ++/*144671*/ OPC_CheckType, MVT::i32, ++/*144673*/ OPC_MoveParent, ++/*144674*/ OPC_MoveChild, 31, ++/*144676*/ OPC_CheckInteger, 1, ++/*144678*/ OPC_CheckType, MVT::i32, ++/*144680*/ OPC_MoveParent, ++/*144681*/ OPC_MoveParent, ++/*144682*/ OPC_CheckChild1Same, 0, ++/*144684*/ OPC_MoveParent, ++/*144685*/ OPC_CheckChild1Same, 1, ++/*144687*/ OPC_MoveParent, ++/*144688*/ OPC_MoveChild1, ++/*144689*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*144692*/ OPC_CheckChild0Integer, 7, ++/*144694*/ OPC_CheckChild0Type, MVT::i32, ++/*144696*/ OPC_CheckChild1Integer, 7, ++/*144698*/ OPC_CheckChild1Type, MVT::i32, ++/*144700*/ OPC_CheckChild2Integer, 7, ++/*144702*/ OPC_CheckChild2Type, MVT::i32, ++/*144704*/ OPC_CheckChild3Integer, 7, ++/*144706*/ OPC_CheckChild3Type, MVT::i32, ++/*144708*/ OPC_CheckChild4Integer, 7, ++/*144710*/ OPC_CheckChild4Type, MVT::i32, ++/*144712*/ OPC_MoveChild5, ++/*144713*/ OPC_CheckInteger, 7, ++/*144715*/ OPC_CheckType, MVT::i32, ++/*144717*/ OPC_MoveParent, ++/*144718*/ OPC_MoveChild6, ++/*144719*/ OPC_CheckInteger, 7, ++/*144721*/ OPC_CheckType, MVT::i32, ++/*144723*/ OPC_MoveParent, ++/*144724*/ OPC_MoveChild7, ++/*144725*/ OPC_CheckInteger, 7, ++/*144727*/ OPC_CheckType, MVT::i32, ++/*144729*/ OPC_MoveParent, ++/*144730*/ OPC_MoveChild, 8, ++/*144732*/ OPC_CheckInteger, 7, ++/*144734*/ OPC_CheckType, MVT::i32, ++/*144736*/ OPC_MoveParent, ++/*144737*/ OPC_MoveChild, 9, ++/*144739*/ OPC_CheckInteger, 7, ++/*144741*/ OPC_CheckType, MVT::i32, ++/*144743*/ OPC_MoveParent, ++/*144744*/ OPC_MoveChild, 10, ++/*144746*/ OPC_CheckInteger, 7, ++/*144748*/ OPC_CheckType, MVT::i32, ++/*144750*/ OPC_MoveParent, ++/*144751*/ OPC_MoveChild, 11, ++/*144753*/ OPC_CheckInteger, 7, ++/*144755*/ OPC_CheckType, MVT::i32, ++/*144757*/ OPC_MoveParent, ++/*144758*/ OPC_MoveChild, 12, ++/*144760*/ OPC_CheckInteger, 7, ++/*144762*/ OPC_CheckType, MVT::i32, ++/*144764*/ OPC_MoveParent, ++/*144765*/ OPC_MoveChild, 13, ++/*144767*/ OPC_CheckInteger, 7, ++/*144769*/ OPC_CheckType, MVT::i32, ++/*144771*/ OPC_MoveParent, ++/*144772*/ OPC_MoveChild, 14, ++/*144774*/ OPC_CheckInteger, 7, ++/*144776*/ OPC_CheckType, MVT::i32, ++/*144778*/ OPC_MoveParent, ++/*144779*/ OPC_MoveChild, 15, ++/*144781*/ OPC_CheckInteger, 7, ++/*144783*/ OPC_CheckType, MVT::i32, ++/*144785*/ OPC_MoveParent, ++/*144786*/ OPC_MoveChild, 16, ++/*144788*/ OPC_CheckInteger, 7, ++/*144790*/ OPC_CheckType, MVT::i32, ++/*144792*/ OPC_MoveParent, ++/*144793*/ OPC_MoveChild, 17, ++/*144795*/ OPC_CheckInteger, 7, ++/*144797*/ OPC_CheckType, MVT::i32, ++/*144799*/ OPC_MoveParent, ++/*144800*/ OPC_MoveChild, 18, ++/*144802*/ OPC_CheckInteger, 7, ++/*144804*/ OPC_CheckType, MVT::i32, ++/*144806*/ OPC_MoveParent, ++/*144807*/ OPC_MoveChild, 19, ++/*144809*/ OPC_CheckInteger, 7, ++/*144811*/ OPC_CheckType, MVT::i32, ++/*144813*/ OPC_MoveParent, ++/*144814*/ OPC_MoveChild, 20, ++/*144816*/ OPC_CheckInteger, 7, ++/*144818*/ OPC_CheckType, MVT::i32, ++/*144820*/ OPC_MoveParent, ++/*144821*/ OPC_MoveChild, 21, ++/*144823*/ OPC_CheckInteger, 7, ++/*144825*/ OPC_CheckType, MVT::i32, ++/*144827*/ OPC_MoveParent, ++/*144828*/ OPC_MoveChild, 22, ++/*144830*/ OPC_CheckInteger, 7, ++/*144832*/ OPC_CheckType, MVT::i32, ++/*144834*/ OPC_MoveParent, ++/*144835*/ OPC_MoveChild, 23, ++/*144837*/ OPC_CheckInteger, 7, ++/*144839*/ OPC_CheckType, MVT::i32, ++/*144841*/ OPC_MoveParent, ++/*144842*/ OPC_MoveChild, 24, ++/*144844*/ OPC_CheckInteger, 7, ++/*144846*/ OPC_CheckType, MVT::i32, ++/*144848*/ OPC_MoveParent, ++/*144849*/ OPC_MoveChild, 25, ++/*144851*/ OPC_CheckInteger, 7, ++/*144853*/ OPC_CheckType, MVT::i32, ++/*144855*/ OPC_MoveParent, ++/*144856*/ OPC_MoveChild, 26, ++/*144858*/ OPC_CheckInteger, 7, ++/*144860*/ OPC_CheckType, MVT::i32, ++/*144862*/ OPC_MoveParent, ++/*144863*/ OPC_MoveChild, 27, ++/*144865*/ OPC_CheckInteger, 7, ++/*144867*/ OPC_CheckType, MVT::i32, ++/*144869*/ OPC_MoveParent, ++/*144870*/ OPC_MoveChild, 28, ++/*144872*/ OPC_CheckInteger, 7, ++/*144874*/ OPC_CheckType, MVT::i32, ++/*144876*/ OPC_MoveParent, ++/*144877*/ OPC_MoveChild, 29, ++/*144879*/ OPC_CheckInteger, 7, ++/*144881*/ OPC_CheckType, MVT::i32, ++/*144883*/ OPC_MoveParent, ++/*144884*/ OPC_MoveChild, 30, ++/*144886*/ OPC_CheckInteger, 7, ++/*144888*/ OPC_CheckType, MVT::i32, ++/*144890*/ OPC_MoveParent, ++/*144891*/ OPC_MoveChild, 31, ++/*144893*/ OPC_CheckInteger, 7, ++/*144895*/ OPC_CheckType, MVT::i32, ++/*144897*/ OPC_MoveParent, ++/*144898*/ OPC_CheckType, MVT::v32i8, ++/*144900*/ OPC_MoveParent, ++/*144901*/ OPC_MoveParent, ++/*144902*/ OPC_MoveParent, ++/*144903*/ OPC_MoveChild1, ++/*144904*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*144907*/ OPC_CheckChild0Integer, 1, ++/*144909*/ OPC_CheckChild0Type, MVT::i32, ++/*144911*/ OPC_CheckChild1Integer, 1, ++/*144913*/ OPC_CheckChild1Type, MVT::i32, ++/*144915*/ OPC_CheckChild2Integer, 1, ++/*144917*/ OPC_CheckChild2Type, MVT::i32, ++/*144919*/ OPC_CheckChild3Integer, 1, ++/*144921*/ OPC_CheckChild3Type, MVT::i32, ++/*144923*/ OPC_CheckChild4Integer, 1, ++/*144925*/ OPC_CheckChild4Type, MVT::i32, ++/*144927*/ OPC_MoveChild5, ++/*144928*/ OPC_CheckInteger, 1, ++/*144930*/ OPC_CheckType, MVT::i32, ++/*144932*/ OPC_MoveParent, ++/*144933*/ OPC_MoveChild6, ++/*144934*/ OPC_CheckInteger, 1, ++/*144936*/ OPC_CheckType, MVT::i32, ++/*144938*/ OPC_MoveParent, ++/*144939*/ OPC_MoveChild7, ++/*144940*/ OPC_CheckInteger, 1, ++/*144942*/ OPC_CheckType, MVT::i32, ++/*144944*/ OPC_MoveParent, ++/*144945*/ OPC_MoveChild, 8, ++/*144947*/ OPC_CheckInteger, 1, ++/*144949*/ OPC_CheckType, MVT::i32, ++/*144951*/ OPC_MoveParent, ++/*144952*/ OPC_MoveChild, 9, ++/*144954*/ OPC_CheckInteger, 1, ++/*144956*/ OPC_CheckType, MVT::i32, ++/*144958*/ OPC_MoveParent, ++/*144959*/ OPC_MoveChild, 10, ++/*144961*/ OPC_CheckInteger, 1, ++/*144963*/ OPC_CheckType, MVT::i32, ++/*144965*/ OPC_MoveParent, ++/*144966*/ OPC_MoveChild, 11, ++/*144968*/ OPC_CheckInteger, 1, ++/*144970*/ OPC_CheckType, MVT::i32, ++/*144972*/ OPC_MoveParent, ++/*144973*/ OPC_MoveChild, 12, ++/*144975*/ OPC_CheckInteger, 1, ++/*144977*/ OPC_CheckType, MVT::i32, ++/*144979*/ OPC_MoveParent, ++/*144980*/ OPC_MoveChild, 13, ++/*144982*/ OPC_CheckInteger, 1, ++/*144984*/ OPC_CheckType, MVT::i32, ++/*144986*/ OPC_MoveParent, ++/*144987*/ OPC_MoveChild, 14, ++/*144989*/ OPC_CheckInteger, 1, ++/*144991*/ OPC_CheckType, MVT::i32, ++/*144993*/ OPC_MoveParent, ++/*144994*/ OPC_MoveChild, 15, ++/*144996*/ OPC_CheckInteger, 1, ++/*144998*/ OPC_CheckType, MVT::i32, ++/*145000*/ OPC_MoveParent, ++/*145001*/ OPC_MoveChild, 16, ++/*145003*/ OPC_CheckInteger, 1, ++/*145005*/ OPC_CheckType, MVT::i32, ++/*145007*/ OPC_MoveParent, ++/*145008*/ OPC_MoveChild, 17, ++/*145010*/ OPC_CheckInteger, 1, ++/*145012*/ OPC_CheckType, MVT::i32, ++/*145014*/ OPC_MoveParent, ++/*145015*/ OPC_MoveChild, 18, ++/*145017*/ OPC_CheckInteger, 1, ++/*145019*/ OPC_CheckType, MVT::i32, ++/*145021*/ OPC_MoveParent, ++/*145022*/ OPC_MoveChild, 19, ++/*145024*/ OPC_CheckInteger, 1, ++/*145026*/ OPC_CheckType, MVT::i32, ++/*145028*/ OPC_MoveParent, ++/*145029*/ OPC_MoveChild, 20, ++/*145031*/ OPC_CheckInteger, 1, ++/*145033*/ OPC_CheckType, MVT::i32, ++/*145035*/ OPC_MoveParent, ++/*145036*/ OPC_MoveChild, 21, ++/*145038*/ OPC_CheckInteger, 1, ++/*145040*/ OPC_CheckType, MVT::i32, ++/*145042*/ OPC_MoveParent, ++/*145043*/ OPC_MoveChild, 22, ++/*145045*/ OPC_CheckInteger, 1, ++/*145047*/ OPC_CheckType, MVT::i32, ++/*145049*/ OPC_MoveParent, ++/*145050*/ OPC_MoveChild, 23, ++/*145052*/ OPC_CheckInteger, 1, ++/*145054*/ OPC_CheckType, MVT::i32, ++/*145056*/ OPC_MoveParent, ++/*145057*/ OPC_MoveChild, 24, ++/*145059*/ OPC_CheckInteger, 1, ++/*145061*/ OPC_CheckType, MVT::i32, ++/*145063*/ OPC_MoveParent, ++/*145064*/ OPC_MoveChild, 25, ++/*145066*/ OPC_CheckInteger, 1, ++/*145068*/ OPC_CheckType, MVT::i32, ++/*145070*/ OPC_MoveParent, ++/*145071*/ OPC_MoveChild, 26, ++/*145073*/ OPC_CheckInteger, 1, ++/*145075*/ OPC_CheckType, MVT::i32, ++/*145077*/ OPC_MoveParent, ++/*145078*/ OPC_MoveChild, 27, ++/*145080*/ OPC_CheckInteger, 1, ++/*145082*/ OPC_CheckType, MVT::i32, ++/*145084*/ OPC_MoveParent, ++/*145085*/ OPC_MoveChild, 28, ++/*145087*/ OPC_CheckInteger, 1, ++/*145089*/ OPC_CheckType, MVT::i32, ++/*145091*/ OPC_MoveParent, ++/*145092*/ OPC_MoveChild, 29, ++/*145094*/ OPC_CheckInteger, 1, ++/*145096*/ OPC_CheckType, MVT::i32, ++/*145098*/ OPC_MoveParent, ++/*145099*/ OPC_MoveChild, 30, ++/*145101*/ OPC_CheckInteger, 1, ++/*145103*/ OPC_CheckType, MVT::i32, ++/*145105*/ OPC_MoveParent, ++/*145106*/ OPC_MoveChild, 31, ++/*145108*/ OPC_CheckInteger, 1, ++/*145110*/ OPC_CheckType, MVT::i32, ++/*145112*/ OPC_MoveParent, ++/*145113*/ OPC_CheckType, MVT::v32i8, ++/*145115*/ OPC_MoveParent, ++/*145116*/ OPC_CheckType, MVT::v32i8, ++/*145118*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*145120*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b)), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a), LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*145128*/ /*Scope*/ 17|128,5/*657*/, /*->145787*/ ++/*145130*/ OPC_CheckChild0Same, 0, ++/*145132*/ OPC_MoveChild1, ++/*145133*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*145136*/ OPC_CheckChild0Integer, 1, ++/*145138*/ OPC_CheckChild0Type, MVT::i32, ++/*145140*/ OPC_CheckChild1Integer, 1, ++/*145142*/ OPC_CheckChild1Type, MVT::i32, ++/*145144*/ OPC_CheckChild2Integer, 1, ++/*145146*/ OPC_CheckChild2Type, MVT::i32, ++/*145148*/ OPC_CheckChild3Integer, 1, ++/*145150*/ OPC_CheckChild3Type, MVT::i32, ++/*145152*/ OPC_CheckChild4Integer, 1, ++/*145154*/ OPC_CheckChild4Type, MVT::i32, ++/*145156*/ OPC_MoveChild5, ++/*145157*/ OPC_CheckInteger, 1, ++/*145159*/ OPC_CheckType, MVT::i32, ++/*145161*/ OPC_MoveParent, ++/*145162*/ OPC_MoveChild6, ++/*145163*/ OPC_CheckInteger, 1, ++/*145165*/ OPC_CheckType, MVT::i32, ++/*145167*/ OPC_MoveParent, ++/*145168*/ OPC_MoveChild7, ++/*145169*/ OPC_CheckInteger, 1, ++/*145171*/ OPC_CheckType, MVT::i32, ++/*145173*/ OPC_MoveParent, ++/*145174*/ OPC_MoveChild, 8, ++/*145176*/ OPC_CheckInteger, 1, ++/*145178*/ OPC_CheckType, MVT::i32, ++/*145180*/ OPC_MoveParent, ++/*145181*/ OPC_MoveChild, 9, ++/*145183*/ OPC_CheckInteger, 1, ++/*145185*/ OPC_CheckType, MVT::i32, ++/*145187*/ OPC_MoveParent, ++/*145188*/ OPC_MoveChild, 10, ++/*145190*/ OPC_CheckInteger, 1, ++/*145192*/ OPC_CheckType, MVT::i32, ++/*145194*/ OPC_MoveParent, ++/*145195*/ OPC_MoveChild, 11, ++/*145197*/ OPC_CheckInteger, 1, ++/*145199*/ OPC_CheckType, MVT::i32, ++/*145201*/ OPC_MoveParent, ++/*145202*/ OPC_MoveChild, 12, ++/*145204*/ OPC_CheckInteger, 1, ++/*145206*/ OPC_CheckType, MVT::i32, ++/*145208*/ OPC_MoveParent, ++/*145209*/ OPC_MoveChild, 13, ++/*145211*/ OPC_CheckInteger, 1, ++/*145213*/ OPC_CheckType, MVT::i32, ++/*145215*/ OPC_MoveParent, ++/*145216*/ OPC_MoveChild, 14, ++/*145218*/ OPC_CheckInteger, 1, ++/*145220*/ OPC_CheckType, MVT::i32, ++/*145222*/ OPC_MoveParent, ++/*145223*/ OPC_MoveChild, 15, ++/*145225*/ OPC_CheckInteger, 1, ++/*145227*/ OPC_CheckType, MVT::i32, ++/*145229*/ OPC_MoveParent, ++/*145230*/ OPC_MoveChild, 16, ++/*145232*/ OPC_CheckInteger, 1, ++/*145234*/ OPC_CheckType, MVT::i32, ++/*145236*/ OPC_MoveParent, ++/*145237*/ OPC_MoveChild, 17, ++/*145239*/ OPC_CheckInteger, 1, ++/*145241*/ OPC_CheckType, MVT::i32, ++/*145243*/ OPC_MoveParent, ++/*145244*/ OPC_MoveChild, 18, ++/*145246*/ OPC_CheckInteger, 1, ++/*145248*/ OPC_CheckType, MVT::i32, ++/*145250*/ OPC_MoveParent, ++/*145251*/ OPC_MoveChild, 19, ++/*145253*/ OPC_CheckInteger, 1, ++/*145255*/ OPC_CheckType, MVT::i32, ++/*145257*/ OPC_MoveParent, ++/*145258*/ OPC_MoveChild, 20, ++/*145260*/ OPC_CheckInteger, 1, ++/*145262*/ OPC_CheckType, MVT::i32, ++/*145264*/ OPC_MoveParent, ++/*145265*/ OPC_MoveChild, 21, ++/*145267*/ OPC_CheckInteger, 1, ++/*145269*/ OPC_CheckType, MVT::i32, ++/*145271*/ OPC_MoveParent, ++/*145272*/ OPC_MoveChild, 22, ++/*145274*/ OPC_CheckInteger, 1, ++/*145276*/ OPC_CheckType, MVT::i32, ++/*145278*/ OPC_MoveParent, ++/*145279*/ OPC_MoveChild, 23, ++/*145281*/ OPC_CheckInteger, 1, ++/*145283*/ OPC_CheckType, MVT::i32, ++/*145285*/ OPC_MoveParent, ++/*145286*/ OPC_MoveChild, 24, ++/*145288*/ OPC_CheckInteger, 1, ++/*145290*/ OPC_CheckType, MVT::i32, ++/*145292*/ OPC_MoveParent, ++/*145293*/ OPC_MoveChild, 25, ++/*145295*/ OPC_CheckInteger, 1, ++/*145297*/ OPC_CheckType, MVT::i32, ++/*145299*/ OPC_MoveParent, ++/*145300*/ OPC_MoveChild, 26, ++/*145302*/ OPC_CheckInteger, 1, ++/*145304*/ OPC_CheckType, MVT::i32, ++/*145306*/ OPC_MoveParent, ++/*145307*/ OPC_MoveChild, 27, ++/*145309*/ OPC_CheckInteger, 1, ++/*145311*/ OPC_CheckType, MVT::i32, ++/*145313*/ OPC_MoveParent, ++/*145314*/ OPC_MoveChild, 28, ++/*145316*/ OPC_CheckInteger, 1, ++/*145318*/ OPC_CheckType, MVT::i32, ++/*145320*/ OPC_MoveParent, ++/*145321*/ OPC_MoveChild, 29, ++/*145323*/ OPC_CheckInteger, 1, ++/*145325*/ OPC_CheckType, MVT::i32, ++/*145327*/ OPC_MoveParent, ++/*145328*/ OPC_MoveChild, 30, ++/*145330*/ OPC_CheckInteger, 1, ++/*145332*/ OPC_CheckType, MVT::i32, ++/*145334*/ OPC_MoveParent, ++/*145335*/ OPC_MoveChild, 31, ++/*145337*/ OPC_CheckInteger, 1, ++/*145339*/ OPC_CheckType, MVT::i32, ++/*145341*/ OPC_MoveParent, ++/*145342*/ OPC_MoveParent, ++/*145343*/ OPC_MoveParent, ++/*145344*/ OPC_CheckChild1Same, 1, ++/*145346*/ OPC_MoveParent, ++/*145347*/ OPC_MoveChild1, ++/*145348*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*145351*/ OPC_CheckChild0Integer, 7, ++/*145353*/ OPC_CheckChild0Type, MVT::i32, ++/*145355*/ OPC_CheckChild1Integer, 7, ++/*145357*/ OPC_CheckChild1Type, MVT::i32, ++/*145359*/ OPC_CheckChild2Integer, 7, ++/*145361*/ OPC_CheckChild2Type, MVT::i32, ++/*145363*/ OPC_CheckChild3Integer, 7, ++/*145365*/ OPC_CheckChild3Type, MVT::i32, ++/*145367*/ OPC_CheckChild4Integer, 7, ++/*145369*/ OPC_CheckChild4Type, MVT::i32, ++/*145371*/ OPC_MoveChild5, ++/*145372*/ OPC_CheckInteger, 7, ++/*145374*/ OPC_CheckType, MVT::i32, ++/*145376*/ OPC_MoveParent, ++/*145377*/ OPC_MoveChild6, ++/*145378*/ OPC_CheckInteger, 7, ++/*145380*/ OPC_CheckType, MVT::i32, ++/*145382*/ OPC_MoveParent, ++/*145383*/ OPC_MoveChild7, ++/*145384*/ OPC_CheckInteger, 7, ++/*145386*/ OPC_CheckType, MVT::i32, ++/*145388*/ OPC_MoveParent, ++/*145389*/ OPC_MoveChild, 8, ++/*145391*/ OPC_CheckInteger, 7, ++/*145393*/ OPC_CheckType, MVT::i32, ++/*145395*/ OPC_MoveParent, ++/*145396*/ OPC_MoveChild, 9, ++/*145398*/ OPC_CheckInteger, 7, ++/*145400*/ OPC_CheckType, MVT::i32, ++/*145402*/ OPC_MoveParent, ++/*145403*/ OPC_MoveChild, 10, ++/*145405*/ OPC_CheckInteger, 7, ++/*145407*/ OPC_CheckType, MVT::i32, ++/*145409*/ OPC_MoveParent, ++/*145410*/ OPC_MoveChild, 11, ++/*145412*/ OPC_CheckInteger, 7, ++/*145414*/ OPC_CheckType, MVT::i32, ++/*145416*/ OPC_MoveParent, ++/*145417*/ OPC_MoveChild, 12, ++/*145419*/ OPC_CheckInteger, 7, ++/*145421*/ OPC_CheckType, MVT::i32, ++/*145423*/ OPC_MoveParent, ++/*145424*/ OPC_MoveChild, 13, ++/*145426*/ OPC_CheckInteger, 7, ++/*145428*/ OPC_CheckType, MVT::i32, ++/*145430*/ OPC_MoveParent, ++/*145431*/ OPC_MoveChild, 14, ++/*145433*/ OPC_CheckInteger, 7, ++/*145435*/ OPC_CheckType, MVT::i32, ++/*145437*/ OPC_MoveParent, ++/*145438*/ OPC_MoveChild, 15, ++/*145440*/ OPC_CheckInteger, 7, ++/*145442*/ OPC_CheckType, MVT::i32, ++/*145444*/ OPC_MoveParent, ++/*145445*/ OPC_MoveChild, 16, ++/*145447*/ OPC_CheckInteger, 7, ++/*145449*/ OPC_CheckType, MVT::i32, ++/*145451*/ OPC_MoveParent, ++/*145452*/ OPC_MoveChild, 17, ++/*145454*/ OPC_CheckInteger, 7, ++/*145456*/ OPC_CheckType, MVT::i32, ++/*145458*/ OPC_MoveParent, ++/*145459*/ OPC_MoveChild, 18, ++/*145461*/ OPC_CheckInteger, 7, ++/*145463*/ OPC_CheckType, MVT::i32, ++/*145465*/ OPC_MoveParent, ++/*145466*/ OPC_MoveChild, 19, ++/*145468*/ OPC_CheckInteger, 7, ++/*145470*/ OPC_CheckType, MVT::i32, ++/*145472*/ OPC_MoveParent, ++/*145473*/ OPC_MoveChild, 20, ++/*145475*/ OPC_CheckInteger, 7, ++/*145477*/ OPC_CheckType, MVT::i32, ++/*145479*/ OPC_MoveParent, ++/*145480*/ OPC_MoveChild, 21, ++/*145482*/ OPC_CheckInteger, 7, ++/*145484*/ OPC_CheckType, MVT::i32, ++/*145486*/ OPC_MoveParent, ++/*145487*/ OPC_MoveChild, 22, ++/*145489*/ OPC_CheckInteger, 7, ++/*145491*/ OPC_CheckType, MVT::i32, ++/*145493*/ OPC_MoveParent, ++/*145494*/ OPC_MoveChild, 23, ++/*145496*/ OPC_CheckInteger, 7, ++/*145498*/ OPC_CheckType, MVT::i32, ++/*145500*/ OPC_MoveParent, ++/*145501*/ OPC_MoveChild, 24, ++/*145503*/ OPC_CheckInteger, 7, ++/*145505*/ OPC_CheckType, MVT::i32, ++/*145507*/ OPC_MoveParent, ++/*145508*/ OPC_MoveChild, 25, ++/*145510*/ OPC_CheckInteger, 7, ++/*145512*/ OPC_CheckType, MVT::i32, ++/*145514*/ OPC_MoveParent, ++/*145515*/ OPC_MoveChild, 26, ++/*145517*/ OPC_CheckInteger, 7, ++/*145519*/ OPC_CheckType, MVT::i32, ++/*145521*/ OPC_MoveParent, ++/*145522*/ OPC_MoveChild, 27, ++/*145524*/ OPC_CheckInteger, 7, ++/*145526*/ OPC_CheckType, MVT::i32, ++/*145528*/ OPC_MoveParent, ++/*145529*/ OPC_MoveChild, 28, ++/*145531*/ OPC_CheckInteger, 7, ++/*145533*/ OPC_CheckType, MVT::i32, ++/*145535*/ OPC_MoveParent, ++/*145536*/ OPC_MoveChild, 29, ++/*145538*/ OPC_CheckInteger, 7, ++/*145540*/ OPC_CheckType, MVT::i32, ++/*145542*/ OPC_MoveParent, ++/*145543*/ OPC_MoveChild, 30, ++/*145545*/ OPC_CheckInteger, 7, ++/*145547*/ OPC_CheckType, MVT::i32, ++/*145549*/ OPC_MoveParent, ++/*145550*/ OPC_MoveChild, 31, ++/*145552*/ OPC_CheckInteger, 7, ++/*145554*/ OPC_CheckType, MVT::i32, ++/*145556*/ OPC_MoveParent, ++/*145557*/ OPC_CheckType, MVT::v32i8, ++/*145559*/ OPC_MoveParent, ++/*145560*/ OPC_MoveParent, ++/*145561*/ OPC_MoveParent, ++/*145562*/ OPC_MoveChild1, ++/*145563*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*145566*/ OPC_CheckChild0Integer, 1, ++/*145568*/ OPC_CheckChild0Type, MVT::i32, ++/*145570*/ OPC_CheckChild1Integer, 1, ++/*145572*/ OPC_CheckChild1Type, MVT::i32, ++/*145574*/ OPC_CheckChild2Integer, 1, ++/*145576*/ OPC_CheckChild2Type, MVT::i32, ++/*145578*/ OPC_CheckChild3Integer, 1, ++/*145580*/ OPC_CheckChild3Type, MVT::i32, ++/*145582*/ OPC_CheckChild4Integer, 1, ++/*145584*/ OPC_CheckChild4Type, MVT::i32, ++/*145586*/ OPC_MoveChild5, ++/*145587*/ OPC_CheckInteger, 1, ++/*145589*/ OPC_CheckType, MVT::i32, ++/*145591*/ OPC_MoveParent, ++/*145592*/ OPC_MoveChild6, ++/*145593*/ OPC_CheckInteger, 1, ++/*145595*/ OPC_CheckType, MVT::i32, ++/*145597*/ OPC_MoveParent, ++/*145598*/ OPC_MoveChild7, ++/*145599*/ OPC_CheckInteger, 1, ++/*145601*/ OPC_CheckType, MVT::i32, ++/*145603*/ OPC_MoveParent, ++/*145604*/ OPC_MoveChild, 8, ++/*145606*/ OPC_CheckInteger, 1, ++/*145608*/ OPC_CheckType, MVT::i32, ++/*145610*/ OPC_MoveParent, ++/*145611*/ OPC_MoveChild, 9, ++/*145613*/ OPC_CheckInteger, 1, ++/*145615*/ OPC_CheckType, MVT::i32, ++/*145617*/ OPC_MoveParent, ++/*145618*/ OPC_MoveChild, 10, ++/*145620*/ OPC_CheckInteger, 1, ++/*145622*/ OPC_CheckType, MVT::i32, ++/*145624*/ OPC_MoveParent, ++/*145625*/ OPC_MoveChild, 11, ++/*145627*/ OPC_CheckInteger, 1, ++/*145629*/ OPC_CheckType, MVT::i32, ++/*145631*/ OPC_MoveParent, ++/*145632*/ OPC_MoveChild, 12, ++/*145634*/ OPC_CheckInteger, 1, ++/*145636*/ OPC_CheckType, MVT::i32, ++/*145638*/ OPC_MoveParent, ++/*145639*/ OPC_MoveChild, 13, ++/*145641*/ OPC_CheckInteger, 1, ++/*145643*/ OPC_CheckType, MVT::i32, ++/*145645*/ OPC_MoveParent, ++/*145646*/ OPC_MoveChild, 14, ++/*145648*/ OPC_CheckInteger, 1, ++/*145650*/ OPC_CheckType, MVT::i32, ++/*145652*/ OPC_MoveParent, ++/*145653*/ OPC_MoveChild, 15, ++/*145655*/ OPC_CheckInteger, 1, ++/*145657*/ OPC_CheckType, MVT::i32, ++/*145659*/ OPC_MoveParent, ++/*145660*/ OPC_MoveChild, 16, ++/*145662*/ OPC_CheckInteger, 1, ++/*145664*/ OPC_CheckType, MVT::i32, ++/*145666*/ OPC_MoveParent, ++/*145667*/ OPC_MoveChild, 17, ++/*145669*/ OPC_CheckInteger, 1, ++/*145671*/ OPC_CheckType, MVT::i32, ++/*145673*/ OPC_MoveParent, ++/*145674*/ OPC_MoveChild, 18, ++/*145676*/ OPC_CheckInteger, 1, ++/*145678*/ OPC_CheckType, MVT::i32, ++/*145680*/ OPC_MoveParent, ++/*145681*/ OPC_MoveChild, 19, ++/*145683*/ OPC_CheckInteger, 1, ++/*145685*/ OPC_CheckType, MVT::i32, ++/*145687*/ OPC_MoveParent, ++/*145688*/ OPC_MoveChild, 20, ++/*145690*/ OPC_CheckInteger, 1, ++/*145692*/ OPC_CheckType, MVT::i32, ++/*145694*/ OPC_MoveParent, ++/*145695*/ OPC_MoveChild, 21, ++/*145697*/ OPC_CheckInteger, 1, ++/*145699*/ OPC_CheckType, MVT::i32, ++/*145701*/ OPC_MoveParent, ++/*145702*/ OPC_MoveChild, 22, ++/*145704*/ OPC_CheckInteger, 1, ++/*145706*/ OPC_CheckType, MVT::i32, ++/*145708*/ OPC_MoveParent, ++/*145709*/ OPC_MoveChild, 23, ++/*145711*/ OPC_CheckInteger, 1, ++/*145713*/ OPC_CheckType, MVT::i32, ++/*145715*/ OPC_MoveParent, ++/*145716*/ OPC_MoveChild, 24, ++/*145718*/ OPC_CheckInteger, 1, ++/*145720*/ OPC_CheckType, MVT::i32, ++/*145722*/ OPC_MoveParent, ++/*145723*/ OPC_MoveChild, 25, ++/*145725*/ OPC_CheckInteger, 1, ++/*145727*/ OPC_CheckType, MVT::i32, ++/*145729*/ OPC_MoveParent, ++/*145730*/ OPC_MoveChild, 26, ++/*145732*/ OPC_CheckInteger, 1, ++/*145734*/ OPC_CheckType, MVT::i32, ++/*145736*/ OPC_MoveParent, ++/*145737*/ OPC_MoveChild, 27, ++/*145739*/ OPC_CheckInteger, 1, ++/*145741*/ OPC_CheckType, MVT::i32, ++/*145743*/ OPC_MoveParent, ++/*145744*/ OPC_MoveChild, 28, ++/*145746*/ OPC_CheckInteger, 1, ++/*145748*/ OPC_CheckType, MVT::i32, ++/*145750*/ OPC_MoveParent, ++/*145751*/ OPC_MoveChild, 29, ++/*145753*/ OPC_CheckInteger, 1, ++/*145755*/ OPC_CheckType, MVT::i32, ++/*145757*/ OPC_MoveParent, ++/*145758*/ OPC_MoveChild, 30, ++/*145760*/ OPC_CheckInteger, 1, ++/*145762*/ OPC_CheckType, MVT::i32, ++/*145764*/ OPC_MoveParent, ++/*145765*/ OPC_MoveChild, 31, ++/*145767*/ OPC_CheckInteger, 1, ++/*145769*/ OPC_CheckType, MVT::i32, ++/*145771*/ OPC_MoveParent, ++/*145772*/ OPC_CheckType, MVT::v32i8, ++/*145774*/ OPC_MoveParent, ++/*145775*/ OPC_CheckType, MVT::v32i8, ++/*145777*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*145779*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b)), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*145787*/ /*Scope*/ 17|128,5/*657*/, /*->146446*/ ++/*145789*/ OPC_MoveChild0, ++/*145790*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*145793*/ OPC_CheckChild0Integer, 1, ++/*145795*/ OPC_CheckChild0Type, MVT::i32, ++/*145797*/ OPC_CheckChild1Integer, 1, ++/*145799*/ OPC_CheckChild1Type, MVT::i32, ++/*145801*/ OPC_CheckChild2Integer, 1, ++/*145803*/ OPC_CheckChild2Type, MVT::i32, ++/*145805*/ OPC_CheckChild3Integer, 1, ++/*145807*/ OPC_CheckChild3Type, MVT::i32, ++/*145809*/ OPC_CheckChild4Integer, 1, ++/*145811*/ OPC_CheckChild4Type, MVT::i32, ++/*145813*/ OPC_MoveChild5, ++/*145814*/ OPC_CheckInteger, 1, ++/*145816*/ OPC_CheckType, MVT::i32, ++/*145818*/ OPC_MoveParent, ++/*145819*/ OPC_MoveChild6, ++/*145820*/ OPC_CheckInteger, 1, ++/*145822*/ OPC_CheckType, MVT::i32, ++/*145824*/ OPC_MoveParent, ++/*145825*/ OPC_MoveChild7, ++/*145826*/ OPC_CheckInteger, 1, ++/*145828*/ OPC_CheckType, MVT::i32, ++/*145830*/ OPC_MoveParent, ++/*145831*/ OPC_MoveChild, 8, ++/*145833*/ OPC_CheckInteger, 1, ++/*145835*/ OPC_CheckType, MVT::i32, ++/*145837*/ OPC_MoveParent, ++/*145838*/ OPC_MoveChild, 9, ++/*145840*/ OPC_CheckInteger, 1, ++/*145842*/ OPC_CheckType, MVT::i32, ++/*145844*/ OPC_MoveParent, ++/*145845*/ OPC_MoveChild, 10, ++/*145847*/ OPC_CheckInteger, 1, ++/*145849*/ OPC_CheckType, MVT::i32, ++/*145851*/ OPC_MoveParent, ++/*145852*/ OPC_MoveChild, 11, ++/*145854*/ OPC_CheckInteger, 1, ++/*145856*/ OPC_CheckType, MVT::i32, ++/*145858*/ OPC_MoveParent, ++/*145859*/ OPC_MoveChild, 12, ++/*145861*/ OPC_CheckInteger, 1, ++/*145863*/ OPC_CheckType, MVT::i32, ++/*145865*/ OPC_MoveParent, ++/*145866*/ OPC_MoveChild, 13, ++/*145868*/ OPC_CheckInteger, 1, ++/*145870*/ OPC_CheckType, MVT::i32, ++/*145872*/ OPC_MoveParent, ++/*145873*/ OPC_MoveChild, 14, ++/*145875*/ OPC_CheckInteger, 1, ++/*145877*/ OPC_CheckType, MVT::i32, ++/*145879*/ OPC_MoveParent, ++/*145880*/ OPC_MoveChild, 15, ++/*145882*/ OPC_CheckInteger, 1, ++/*145884*/ OPC_CheckType, MVT::i32, ++/*145886*/ OPC_MoveParent, ++/*145887*/ OPC_MoveChild, 16, ++/*145889*/ OPC_CheckInteger, 1, ++/*145891*/ OPC_CheckType, MVT::i32, ++/*145893*/ OPC_MoveParent, ++/*145894*/ OPC_MoveChild, 17, ++/*145896*/ OPC_CheckInteger, 1, ++/*145898*/ OPC_CheckType, MVT::i32, ++/*145900*/ OPC_MoveParent, ++/*145901*/ OPC_MoveChild, 18, ++/*145903*/ OPC_CheckInteger, 1, ++/*145905*/ OPC_CheckType, MVT::i32, ++/*145907*/ OPC_MoveParent, ++/*145908*/ OPC_MoveChild, 19, ++/*145910*/ OPC_CheckInteger, 1, ++/*145912*/ OPC_CheckType, MVT::i32, ++/*145914*/ OPC_MoveParent, ++/*145915*/ OPC_MoveChild, 20, ++/*145917*/ OPC_CheckInteger, 1, ++/*145919*/ OPC_CheckType, MVT::i32, ++/*145921*/ OPC_MoveParent, ++/*145922*/ OPC_MoveChild, 21, ++/*145924*/ OPC_CheckInteger, 1, ++/*145926*/ OPC_CheckType, MVT::i32, ++/*145928*/ OPC_MoveParent, ++/*145929*/ OPC_MoveChild, 22, ++/*145931*/ OPC_CheckInteger, 1, ++/*145933*/ OPC_CheckType, MVT::i32, ++/*145935*/ OPC_MoveParent, ++/*145936*/ OPC_MoveChild, 23, ++/*145938*/ OPC_CheckInteger, 1, ++/*145940*/ OPC_CheckType, MVT::i32, ++/*145942*/ OPC_MoveParent, ++/*145943*/ OPC_MoveChild, 24, ++/*145945*/ OPC_CheckInteger, 1, ++/*145947*/ OPC_CheckType, MVT::i32, ++/*145949*/ OPC_MoveParent, ++/*145950*/ OPC_MoveChild, 25, ++/*145952*/ OPC_CheckInteger, 1, ++/*145954*/ OPC_CheckType, MVT::i32, ++/*145956*/ OPC_MoveParent, ++/*145957*/ OPC_MoveChild, 26, ++/*145959*/ OPC_CheckInteger, 1, ++/*145961*/ OPC_CheckType, MVT::i32, ++/*145963*/ OPC_MoveParent, ++/*145964*/ OPC_MoveChild, 27, ++/*145966*/ OPC_CheckInteger, 1, ++/*145968*/ OPC_CheckType, MVT::i32, ++/*145970*/ OPC_MoveParent, ++/*145971*/ OPC_MoveChild, 28, ++/*145973*/ OPC_CheckInteger, 1, ++/*145975*/ OPC_CheckType, MVT::i32, ++/*145977*/ OPC_MoveParent, ++/*145978*/ OPC_MoveChild, 29, ++/*145980*/ OPC_CheckInteger, 1, ++/*145982*/ OPC_CheckType, MVT::i32, ++/*145984*/ OPC_MoveParent, ++/*145985*/ OPC_MoveChild, 30, ++/*145987*/ OPC_CheckInteger, 1, ++/*145989*/ OPC_CheckType, MVT::i32, ++/*145991*/ OPC_MoveParent, ++/*145992*/ OPC_MoveChild, 31, ++/*145994*/ OPC_CheckInteger, 1, ++/*145996*/ OPC_CheckType, MVT::i32, ++/*145998*/ OPC_MoveParent, ++/*145999*/ OPC_MoveParent, ++/*146000*/ OPC_CheckChild1Same, 1, ++/*146002*/ OPC_MoveParent, ++/*146003*/ OPC_CheckChild1Same, 0, ++/*146005*/ OPC_MoveParent, ++/*146006*/ OPC_MoveChild1, ++/*146007*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*146010*/ OPC_CheckChild0Integer, 7, ++/*146012*/ OPC_CheckChild0Type, MVT::i32, ++/*146014*/ OPC_CheckChild1Integer, 7, ++/*146016*/ OPC_CheckChild1Type, MVT::i32, ++/*146018*/ OPC_CheckChild2Integer, 7, ++/*146020*/ OPC_CheckChild2Type, MVT::i32, ++/*146022*/ OPC_CheckChild3Integer, 7, ++/*146024*/ OPC_CheckChild3Type, MVT::i32, ++/*146026*/ OPC_CheckChild4Integer, 7, ++/*146028*/ OPC_CheckChild4Type, MVT::i32, ++/*146030*/ OPC_MoveChild5, ++/*146031*/ OPC_CheckInteger, 7, ++/*146033*/ OPC_CheckType, MVT::i32, ++/*146035*/ OPC_MoveParent, ++/*146036*/ OPC_MoveChild6, ++/*146037*/ OPC_CheckInteger, 7, ++/*146039*/ OPC_CheckType, MVT::i32, ++/*146041*/ OPC_MoveParent, ++/*146042*/ OPC_MoveChild7, ++/*146043*/ OPC_CheckInteger, 7, ++/*146045*/ OPC_CheckType, MVT::i32, ++/*146047*/ OPC_MoveParent, ++/*146048*/ OPC_MoveChild, 8, ++/*146050*/ OPC_CheckInteger, 7, ++/*146052*/ OPC_CheckType, MVT::i32, ++/*146054*/ OPC_MoveParent, ++/*146055*/ OPC_MoveChild, 9, ++/*146057*/ OPC_CheckInteger, 7, ++/*146059*/ OPC_CheckType, MVT::i32, ++/*146061*/ OPC_MoveParent, ++/*146062*/ OPC_MoveChild, 10, ++/*146064*/ OPC_CheckInteger, 7, ++/*146066*/ OPC_CheckType, MVT::i32, ++/*146068*/ OPC_MoveParent, ++/*146069*/ OPC_MoveChild, 11, ++/*146071*/ OPC_CheckInteger, 7, ++/*146073*/ OPC_CheckType, MVT::i32, ++/*146075*/ OPC_MoveParent, ++/*146076*/ OPC_MoveChild, 12, ++/*146078*/ OPC_CheckInteger, 7, ++/*146080*/ OPC_CheckType, MVT::i32, ++/*146082*/ OPC_MoveParent, ++/*146083*/ OPC_MoveChild, 13, ++/*146085*/ OPC_CheckInteger, 7, ++/*146087*/ OPC_CheckType, MVT::i32, ++/*146089*/ OPC_MoveParent, ++/*146090*/ OPC_MoveChild, 14, ++/*146092*/ OPC_CheckInteger, 7, ++/*146094*/ OPC_CheckType, MVT::i32, ++/*146096*/ OPC_MoveParent, ++/*146097*/ OPC_MoveChild, 15, ++/*146099*/ OPC_CheckInteger, 7, ++/*146101*/ OPC_CheckType, MVT::i32, ++/*146103*/ OPC_MoveParent, ++/*146104*/ OPC_MoveChild, 16, ++/*146106*/ OPC_CheckInteger, 7, ++/*146108*/ OPC_CheckType, MVT::i32, ++/*146110*/ OPC_MoveParent, ++/*146111*/ OPC_MoveChild, 17, ++/*146113*/ OPC_CheckInteger, 7, ++/*146115*/ OPC_CheckType, MVT::i32, ++/*146117*/ OPC_MoveParent, ++/*146118*/ OPC_MoveChild, 18, ++/*146120*/ OPC_CheckInteger, 7, ++/*146122*/ OPC_CheckType, MVT::i32, ++/*146124*/ OPC_MoveParent, ++/*146125*/ OPC_MoveChild, 19, ++/*146127*/ OPC_CheckInteger, 7, ++/*146129*/ OPC_CheckType, MVT::i32, ++/*146131*/ OPC_MoveParent, ++/*146132*/ OPC_MoveChild, 20, ++/*146134*/ OPC_CheckInteger, 7, ++/*146136*/ OPC_CheckType, MVT::i32, ++/*146138*/ OPC_MoveParent, ++/*146139*/ OPC_MoveChild, 21, ++/*146141*/ OPC_CheckInteger, 7, ++/*146143*/ OPC_CheckType, MVT::i32, ++/*146145*/ OPC_MoveParent, ++/*146146*/ OPC_MoveChild, 22, ++/*146148*/ OPC_CheckInteger, 7, ++/*146150*/ OPC_CheckType, MVT::i32, ++/*146152*/ OPC_MoveParent, ++/*146153*/ OPC_MoveChild, 23, ++/*146155*/ OPC_CheckInteger, 7, ++/*146157*/ OPC_CheckType, MVT::i32, ++/*146159*/ OPC_MoveParent, ++/*146160*/ OPC_MoveChild, 24, ++/*146162*/ OPC_CheckInteger, 7, ++/*146164*/ OPC_CheckType, MVT::i32, ++/*146166*/ OPC_MoveParent, ++/*146167*/ OPC_MoveChild, 25, ++/*146169*/ OPC_CheckInteger, 7, ++/*146171*/ OPC_CheckType, MVT::i32, ++/*146173*/ OPC_MoveParent, ++/*146174*/ OPC_MoveChild, 26, ++/*146176*/ OPC_CheckInteger, 7, ++/*146178*/ OPC_CheckType, MVT::i32, ++/*146180*/ OPC_MoveParent, ++/*146181*/ OPC_MoveChild, 27, ++/*146183*/ OPC_CheckInteger, 7, ++/*146185*/ OPC_CheckType, MVT::i32, ++/*146187*/ OPC_MoveParent, ++/*146188*/ OPC_MoveChild, 28, ++/*146190*/ OPC_CheckInteger, 7, ++/*146192*/ OPC_CheckType, MVT::i32, ++/*146194*/ OPC_MoveParent, ++/*146195*/ OPC_MoveChild, 29, ++/*146197*/ OPC_CheckInteger, 7, ++/*146199*/ OPC_CheckType, MVT::i32, ++/*146201*/ OPC_MoveParent, ++/*146202*/ OPC_MoveChild, 30, ++/*146204*/ OPC_CheckInteger, 7, ++/*146206*/ OPC_CheckType, MVT::i32, ++/*146208*/ OPC_MoveParent, ++/*146209*/ OPC_MoveChild, 31, ++/*146211*/ OPC_CheckInteger, 7, ++/*146213*/ OPC_CheckType, MVT::i32, ++/*146215*/ OPC_MoveParent, ++/*146216*/ OPC_CheckType, MVT::v32i8, ++/*146218*/ OPC_MoveParent, ++/*146219*/ OPC_MoveParent, ++/*146220*/ OPC_MoveParent, ++/*146221*/ OPC_MoveChild1, ++/*146222*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*146225*/ OPC_CheckChild0Integer, 1, ++/*146227*/ OPC_CheckChild0Type, MVT::i32, ++/*146229*/ OPC_CheckChild1Integer, 1, ++/*146231*/ OPC_CheckChild1Type, MVT::i32, ++/*146233*/ OPC_CheckChild2Integer, 1, ++/*146235*/ OPC_CheckChild2Type, MVT::i32, ++/*146237*/ OPC_CheckChild3Integer, 1, ++/*146239*/ OPC_CheckChild3Type, MVT::i32, ++/*146241*/ OPC_CheckChild4Integer, 1, ++/*146243*/ OPC_CheckChild4Type, MVT::i32, ++/*146245*/ OPC_MoveChild5, ++/*146246*/ OPC_CheckInteger, 1, ++/*146248*/ OPC_CheckType, MVT::i32, ++/*146250*/ OPC_MoveParent, ++/*146251*/ OPC_MoveChild6, ++/*146252*/ OPC_CheckInteger, 1, ++/*146254*/ OPC_CheckType, MVT::i32, ++/*146256*/ OPC_MoveParent, ++/*146257*/ OPC_MoveChild7, ++/*146258*/ OPC_CheckInteger, 1, ++/*146260*/ OPC_CheckType, MVT::i32, ++/*146262*/ OPC_MoveParent, ++/*146263*/ OPC_MoveChild, 8, ++/*146265*/ OPC_CheckInteger, 1, ++/*146267*/ OPC_CheckType, MVT::i32, ++/*146269*/ OPC_MoveParent, ++/*146270*/ OPC_MoveChild, 9, ++/*146272*/ OPC_CheckInteger, 1, ++/*146274*/ OPC_CheckType, MVT::i32, ++/*146276*/ OPC_MoveParent, ++/*146277*/ OPC_MoveChild, 10, ++/*146279*/ OPC_CheckInteger, 1, ++/*146281*/ OPC_CheckType, MVT::i32, ++/*146283*/ OPC_MoveParent, ++/*146284*/ OPC_MoveChild, 11, ++/*146286*/ OPC_CheckInteger, 1, ++/*146288*/ OPC_CheckType, MVT::i32, ++/*146290*/ OPC_MoveParent, ++/*146291*/ OPC_MoveChild, 12, ++/*146293*/ OPC_CheckInteger, 1, ++/*146295*/ OPC_CheckType, MVT::i32, ++/*146297*/ OPC_MoveParent, ++/*146298*/ OPC_MoveChild, 13, ++/*146300*/ OPC_CheckInteger, 1, ++/*146302*/ OPC_CheckType, MVT::i32, ++/*146304*/ OPC_MoveParent, ++/*146305*/ OPC_MoveChild, 14, ++/*146307*/ OPC_CheckInteger, 1, ++/*146309*/ OPC_CheckType, MVT::i32, ++/*146311*/ OPC_MoveParent, ++/*146312*/ OPC_MoveChild, 15, ++/*146314*/ OPC_CheckInteger, 1, ++/*146316*/ OPC_CheckType, MVT::i32, ++/*146318*/ OPC_MoveParent, ++/*146319*/ OPC_MoveChild, 16, ++/*146321*/ OPC_CheckInteger, 1, ++/*146323*/ OPC_CheckType, MVT::i32, ++/*146325*/ OPC_MoveParent, ++/*146326*/ OPC_MoveChild, 17, ++/*146328*/ OPC_CheckInteger, 1, ++/*146330*/ OPC_CheckType, MVT::i32, ++/*146332*/ OPC_MoveParent, ++/*146333*/ OPC_MoveChild, 18, ++/*146335*/ OPC_CheckInteger, 1, ++/*146337*/ OPC_CheckType, MVT::i32, ++/*146339*/ OPC_MoveParent, ++/*146340*/ OPC_MoveChild, 19, ++/*146342*/ OPC_CheckInteger, 1, ++/*146344*/ OPC_CheckType, MVT::i32, ++/*146346*/ OPC_MoveParent, ++/*146347*/ OPC_MoveChild, 20, ++/*146349*/ OPC_CheckInteger, 1, ++/*146351*/ OPC_CheckType, MVT::i32, ++/*146353*/ OPC_MoveParent, ++/*146354*/ OPC_MoveChild, 21, ++/*146356*/ OPC_CheckInteger, 1, ++/*146358*/ OPC_CheckType, MVT::i32, ++/*146360*/ OPC_MoveParent, ++/*146361*/ OPC_MoveChild, 22, ++/*146363*/ OPC_CheckInteger, 1, ++/*146365*/ OPC_CheckType, MVT::i32, ++/*146367*/ OPC_MoveParent, ++/*146368*/ OPC_MoveChild, 23, ++/*146370*/ OPC_CheckInteger, 1, ++/*146372*/ OPC_CheckType, MVT::i32, ++/*146374*/ OPC_MoveParent, ++/*146375*/ OPC_MoveChild, 24, ++/*146377*/ OPC_CheckInteger, 1, ++/*146379*/ OPC_CheckType, MVT::i32, ++/*146381*/ OPC_MoveParent, ++/*146382*/ OPC_MoveChild, 25, ++/*146384*/ OPC_CheckInteger, 1, ++/*146386*/ OPC_CheckType, MVT::i32, ++/*146388*/ OPC_MoveParent, ++/*146389*/ OPC_MoveChild, 26, ++/*146391*/ OPC_CheckInteger, 1, ++/*146393*/ OPC_CheckType, MVT::i32, ++/*146395*/ OPC_MoveParent, ++/*146396*/ OPC_MoveChild, 27, ++/*146398*/ OPC_CheckInteger, 1, ++/*146400*/ OPC_CheckType, MVT::i32, ++/*146402*/ OPC_MoveParent, ++/*146403*/ OPC_MoveChild, 28, ++/*146405*/ OPC_CheckInteger, 1, ++/*146407*/ OPC_CheckType, MVT::i32, ++/*146409*/ OPC_MoveParent, ++/*146410*/ OPC_MoveChild, 29, ++/*146412*/ OPC_CheckInteger, 1, ++/*146414*/ OPC_CheckType, MVT::i32, ++/*146416*/ OPC_MoveParent, ++/*146417*/ OPC_MoveChild, 30, ++/*146419*/ OPC_CheckInteger, 1, ++/*146421*/ OPC_CheckType, MVT::i32, ++/*146423*/ OPC_MoveParent, ++/*146424*/ OPC_MoveChild, 31, ++/*146426*/ OPC_CheckInteger, 1, ++/*146428*/ OPC_CheckType, MVT::i32, ++/*146430*/ OPC_MoveParent, ++/*146431*/ OPC_CheckType, MVT::v32i8, ++/*146433*/ OPC_MoveParent, ++/*146434*/ OPC_CheckType, MVT::v32i8, ++/*146436*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*146438*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b)), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b), LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*146446*/ /*Scope*/ 17|128,5/*657*/, /*->147105*/ ++/*146448*/ OPC_CheckChild0Same, 1, ++/*146450*/ OPC_MoveChild1, ++/*146451*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*146454*/ OPC_CheckChild0Integer, 1, ++/*146456*/ OPC_CheckChild0Type, MVT::i32, ++/*146458*/ OPC_CheckChild1Integer, 1, ++/*146460*/ OPC_CheckChild1Type, MVT::i32, ++/*146462*/ OPC_CheckChild2Integer, 1, ++/*146464*/ OPC_CheckChild2Type, MVT::i32, ++/*146466*/ OPC_CheckChild3Integer, 1, ++/*146468*/ OPC_CheckChild3Type, MVT::i32, ++/*146470*/ OPC_CheckChild4Integer, 1, ++/*146472*/ OPC_CheckChild4Type, MVT::i32, ++/*146474*/ OPC_MoveChild5, ++/*146475*/ OPC_CheckInteger, 1, ++/*146477*/ OPC_CheckType, MVT::i32, ++/*146479*/ OPC_MoveParent, ++/*146480*/ OPC_MoveChild6, ++/*146481*/ OPC_CheckInteger, 1, ++/*146483*/ OPC_CheckType, MVT::i32, ++/*146485*/ OPC_MoveParent, ++/*146486*/ OPC_MoveChild7, ++/*146487*/ OPC_CheckInteger, 1, ++/*146489*/ OPC_CheckType, MVT::i32, ++/*146491*/ OPC_MoveParent, ++/*146492*/ OPC_MoveChild, 8, ++/*146494*/ OPC_CheckInteger, 1, ++/*146496*/ OPC_CheckType, MVT::i32, ++/*146498*/ OPC_MoveParent, ++/*146499*/ OPC_MoveChild, 9, ++/*146501*/ OPC_CheckInteger, 1, ++/*146503*/ OPC_CheckType, MVT::i32, ++/*146505*/ OPC_MoveParent, ++/*146506*/ OPC_MoveChild, 10, ++/*146508*/ OPC_CheckInteger, 1, ++/*146510*/ OPC_CheckType, MVT::i32, ++/*146512*/ OPC_MoveParent, ++/*146513*/ OPC_MoveChild, 11, ++/*146515*/ OPC_CheckInteger, 1, ++/*146517*/ OPC_CheckType, MVT::i32, ++/*146519*/ OPC_MoveParent, ++/*146520*/ OPC_MoveChild, 12, ++/*146522*/ OPC_CheckInteger, 1, ++/*146524*/ OPC_CheckType, MVT::i32, ++/*146526*/ OPC_MoveParent, ++/*146527*/ OPC_MoveChild, 13, ++/*146529*/ OPC_CheckInteger, 1, ++/*146531*/ OPC_CheckType, MVT::i32, ++/*146533*/ OPC_MoveParent, ++/*146534*/ OPC_MoveChild, 14, ++/*146536*/ OPC_CheckInteger, 1, ++/*146538*/ OPC_CheckType, MVT::i32, ++/*146540*/ OPC_MoveParent, ++/*146541*/ OPC_MoveChild, 15, ++/*146543*/ OPC_CheckInteger, 1, ++/*146545*/ OPC_CheckType, MVT::i32, ++/*146547*/ OPC_MoveParent, ++/*146548*/ OPC_MoveChild, 16, ++/*146550*/ OPC_CheckInteger, 1, ++/*146552*/ OPC_CheckType, MVT::i32, ++/*146554*/ OPC_MoveParent, ++/*146555*/ OPC_MoveChild, 17, ++/*146557*/ OPC_CheckInteger, 1, ++/*146559*/ OPC_CheckType, MVT::i32, ++/*146561*/ OPC_MoveParent, ++/*146562*/ OPC_MoveChild, 18, ++/*146564*/ OPC_CheckInteger, 1, ++/*146566*/ OPC_CheckType, MVT::i32, ++/*146568*/ OPC_MoveParent, ++/*146569*/ OPC_MoveChild, 19, ++/*146571*/ OPC_CheckInteger, 1, ++/*146573*/ OPC_CheckType, MVT::i32, ++/*146575*/ OPC_MoveParent, ++/*146576*/ OPC_MoveChild, 20, ++/*146578*/ OPC_CheckInteger, 1, ++/*146580*/ OPC_CheckType, MVT::i32, ++/*146582*/ OPC_MoveParent, ++/*146583*/ OPC_MoveChild, 21, ++/*146585*/ OPC_CheckInteger, 1, ++/*146587*/ OPC_CheckType, MVT::i32, ++/*146589*/ OPC_MoveParent, ++/*146590*/ OPC_MoveChild, 22, ++/*146592*/ OPC_CheckInteger, 1, ++/*146594*/ OPC_CheckType, MVT::i32, ++/*146596*/ OPC_MoveParent, ++/*146597*/ OPC_MoveChild, 23, ++/*146599*/ OPC_CheckInteger, 1, ++/*146601*/ OPC_CheckType, MVT::i32, ++/*146603*/ OPC_MoveParent, ++/*146604*/ OPC_MoveChild, 24, ++/*146606*/ OPC_CheckInteger, 1, ++/*146608*/ OPC_CheckType, MVT::i32, ++/*146610*/ OPC_MoveParent, ++/*146611*/ OPC_MoveChild, 25, ++/*146613*/ OPC_CheckInteger, 1, ++/*146615*/ OPC_CheckType, MVT::i32, ++/*146617*/ OPC_MoveParent, ++/*146618*/ OPC_MoveChild, 26, ++/*146620*/ OPC_CheckInteger, 1, ++/*146622*/ OPC_CheckType, MVT::i32, ++/*146624*/ OPC_MoveParent, ++/*146625*/ OPC_MoveChild, 27, ++/*146627*/ OPC_CheckInteger, 1, ++/*146629*/ OPC_CheckType, MVT::i32, ++/*146631*/ OPC_MoveParent, ++/*146632*/ OPC_MoveChild, 28, ++/*146634*/ OPC_CheckInteger, 1, ++/*146636*/ OPC_CheckType, MVT::i32, ++/*146638*/ OPC_MoveParent, ++/*146639*/ OPC_MoveChild, 29, ++/*146641*/ OPC_CheckInteger, 1, ++/*146643*/ OPC_CheckType, MVT::i32, ++/*146645*/ OPC_MoveParent, ++/*146646*/ OPC_MoveChild, 30, ++/*146648*/ OPC_CheckInteger, 1, ++/*146650*/ OPC_CheckType, MVT::i32, ++/*146652*/ OPC_MoveParent, ++/*146653*/ OPC_MoveChild, 31, ++/*146655*/ OPC_CheckInteger, 1, ++/*146657*/ OPC_CheckType, MVT::i32, ++/*146659*/ OPC_MoveParent, ++/*146660*/ OPC_MoveParent, ++/*146661*/ OPC_MoveParent, ++/*146662*/ OPC_CheckChild1Same, 0, ++/*146664*/ OPC_MoveParent, ++/*146665*/ OPC_MoveChild1, ++/*146666*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*146669*/ OPC_CheckChild0Integer, 7, ++/*146671*/ OPC_CheckChild0Type, MVT::i32, ++/*146673*/ OPC_CheckChild1Integer, 7, ++/*146675*/ OPC_CheckChild1Type, MVT::i32, ++/*146677*/ OPC_CheckChild2Integer, 7, ++/*146679*/ OPC_CheckChild2Type, MVT::i32, ++/*146681*/ OPC_CheckChild3Integer, 7, ++/*146683*/ OPC_CheckChild3Type, MVT::i32, ++/*146685*/ OPC_CheckChild4Integer, 7, ++/*146687*/ OPC_CheckChild4Type, MVT::i32, ++/*146689*/ OPC_MoveChild5, ++/*146690*/ OPC_CheckInteger, 7, ++/*146692*/ OPC_CheckType, MVT::i32, ++/*146694*/ OPC_MoveParent, ++/*146695*/ OPC_MoveChild6, ++/*146696*/ OPC_CheckInteger, 7, ++/*146698*/ OPC_CheckType, MVT::i32, ++/*146700*/ OPC_MoveParent, ++/*146701*/ OPC_MoveChild7, ++/*146702*/ OPC_CheckInteger, 7, ++/*146704*/ OPC_CheckType, MVT::i32, ++/*146706*/ OPC_MoveParent, ++/*146707*/ OPC_MoveChild, 8, ++/*146709*/ OPC_CheckInteger, 7, ++/*146711*/ OPC_CheckType, MVT::i32, ++/*146713*/ OPC_MoveParent, ++/*146714*/ OPC_MoveChild, 9, ++/*146716*/ OPC_CheckInteger, 7, ++/*146718*/ OPC_CheckType, MVT::i32, ++/*146720*/ OPC_MoveParent, ++/*146721*/ OPC_MoveChild, 10, ++/*146723*/ OPC_CheckInteger, 7, ++/*146725*/ OPC_CheckType, MVT::i32, ++/*146727*/ OPC_MoveParent, ++/*146728*/ OPC_MoveChild, 11, ++/*146730*/ OPC_CheckInteger, 7, ++/*146732*/ OPC_CheckType, MVT::i32, ++/*146734*/ OPC_MoveParent, ++/*146735*/ OPC_MoveChild, 12, ++/*146737*/ OPC_CheckInteger, 7, ++/*146739*/ OPC_CheckType, MVT::i32, ++/*146741*/ OPC_MoveParent, ++/*146742*/ OPC_MoveChild, 13, ++/*146744*/ OPC_CheckInteger, 7, ++/*146746*/ OPC_CheckType, MVT::i32, ++/*146748*/ OPC_MoveParent, ++/*146749*/ OPC_MoveChild, 14, ++/*146751*/ OPC_CheckInteger, 7, ++/*146753*/ OPC_CheckType, MVT::i32, ++/*146755*/ OPC_MoveParent, ++/*146756*/ OPC_MoveChild, 15, ++/*146758*/ OPC_CheckInteger, 7, ++/*146760*/ OPC_CheckType, MVT::i32, ++/*146762*/ OPC_MoveParent, ++/*146763*/ OPC_MoveChild, 16, ++/*146765*/ OPC_CheckInteger, 7, ++/*146767*/ OPC_CheckType, MVT::i32, ++/*146769*/ OPC_MoveParent, ++/*146770*/ OPC_MoveChild, 17, ++/*146772*/ OPC_CheckInteger, 7, ++/*146774*/ OPC_CheckType, MVT::i32, ++/*146776*/ OPC_MoveParent, ++/*146777*/ OPC_MoveChild, 18, ++/*146779*/ OPC_CheckInteger, 7, ++/*146781*/ OPC_CheckType, MVT::i32, ++/*146783*/ OPC_MoveParent, ++/*146784*/ OPC_MoveChild, 19, ++/*146786*/ OPC_CheckInteger, 7, ++/*146788*/ OPC_CheckType, MVT::i32, ++/*146790*/ OPC_MoveParent, ++/*146791*/ OPC_MoveChild, 20, ++/*146793*/ OPC_CheckInteger, 7, ++/*146795*/ OPC_CheckType, MVT::i32, ++/*146797*/ OPC_MoveParent, ++/*146798*/ OPC_MoveChild, 21, ++/*146800*/ OPC_CheckInteger, 7, ++/*146802*/ OPC_CheckType, MVT::i32, ++/*146804*/ OPC_MoveParent, ++/*146805*/ OPC_MoveChild, 22, ++/*146807*/ OPC_CheckInteger, 7, ++/*146809*/ OPC_CheckType, MVT::i32, ++/*146811*/ OPC_MoveParent, ++/*146812*/ OPC_MoveChild, 23, ++/*146814*/ OPC_CheckInteger, 7, ++/*146816*/ OPC_CheckType, MVT::i32, ++/*146818*/ OPC_MoveParent, ++/*146819*/ OPC_MoveChild, 24, ++/*146821*/ OPC_CheckInteger, 7, ++/*146823*/ OPC_CheckType, MVT::i32, ++/*146825*/ OPC_MoveParent, ++/*146826*/ OPC_MoveChild, 25, ++/*146828*/ OPC_CheckInteger, 7, ++/*146830*/ OPC_CheckType, MVT::i32, ++/*146832*/ OPC_MoveParent, ++/*146833*/ OPC_MoveChild, 26, ++/*146835*/ OPC_CheckInteger, 7, ++/*146837*/ OPC_CheckType, MVT::i32, ++/*146839*/ OPC_MoveParent, ++/*146840*/ OPC_MoveChild, 27, ++/*146842*/ OPC_CheckInteger, 7, ++/*146844*/ OPC_CheckType, MVT::i32, ++/*146846*/ OPC_MoveParent, ++/*146847*/ OPC_MoveChild, 28, ++/*146849*/ OPC_CheckInteger, 7, ++/*146851*/ OPC_CheckType, MVT::i32, ++/*146853*/ OPC_MoveParent, ++/*146854*/ OPC_MoveChild, 29, ++/*146856*/ OPC_CheckInteger, 7, ++/*146858*/ OPC_CheckType, MVT::i32, ++/*146860*/ OPC_MoveParent, ++/*146861*/ OPC_MoveChild, 30, ++/*146863*/ OPC_CheckInteger, 7, ++/*146865*/ OPC_CheckType, MVT::i32, ++/*146867*/ OPC_MoveParent, ++/*146868*/ OPC_MoveChild, 31, ++/*146870*/ OPC_CheckInteger, 7, ++/*146872*/ OPC_CheckType, MVT::i32, ++/*146874*/ OPC_MoveParent, ++/*146875*/ OPC_CheckType, MVT::v32i8, ++/*146877*/ OPC_MoveParent, ++/*146878*/ OPC_MoveParent, ++/*146879*/ OPC_MoveParent, ++/*146880*/ OPC_MoveChild1, ++/*146881*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*146884*/ OPC_CheckChild0Integer, 1, ++/*146886*/ OPC_CheckChild0Type, MVT::i32, ++/*146888*/ OPC_CheckChild1Integer, 1, ++/*146890*/ OPC_CheckChild1Type, MVT::i32, ++/*146892*/ OPC_CheckChild2Integer, 1, ++/*146894*/ OPC_CheckChild2Type, MVT::i32, ++/*146896*/ OPC_CheckChild3Integer, 1, ++/*146898*/ OPC_CheckChild3Type, MVT::i32, ++/*146900*/ OPC_CheckChild4Integer, 1, ++/*146902*/ OPC_CheckChild4Type, MVT::i32, ++/*146904*/ OPC_MoveChild5, ++/*146905*/ OPC_CheckInteger, 1, ++/*146907*/ OPC_CheckType, MVT::i32, ++/*146909*/ OPC_MoveParent, ++/*146910*/ OPC_MoveChild6, ++/*146911*/ OPC_CheckInteger, 1, ++/*146913*/ OPC_CheckType, MVT::i32, ++/*146915*/ OPC_MoveParent, ++/*146916*/ OPC_MoveChild7, ++/*146917*/ OPC_CheckInteger, 1, ++/*146919*/ OPC_CheckType, MVT::i32, ++/*146921*/ OPC_MoveParent, ++/*146922*/ OPC_MoveChild, 8, ++/*146924*/ OPC_CheckInteger, 1, ++/*146926*/ OPC_CheckType, MVT::i32, ++/*146928*/ OPC_MoveParent, ++/*146929*/ OPC_MoveChild, 9, ++/*146931*/ OPC_CheckInteger, 1, ++/*146933*/ OPC_CheckType, MVT::i32, ++/*146935*/ OPC_MoveParent, ++/*146936*/ OPC_MoveChild, 10, ++/*146938*/ OPC_CheckInteger, 1, ++/*146940*/ OPC_CheckType, MVT::i32, ++/*146942*/ OPC_MoveParent, ++/*146943*/ OPC_MoveChild, 11, ++/*146945*/ OPC_CheckInteger, 1, ++/*146947*/ OPC_CheckType, MVT::i32, ++/*146949*/ OPC_MoveParent, ++/*146950*/ OPC_MoveChild, 12, ++/*146952*/ OPC_CheckInteger, 1, ++/*146954*/ OPC_CheckType, MVT::i32, ++/*146956*/ OPC_MoveParent, ++/*146957*/ OPC_MoveChild, 13, ++/*146959*/ OPC_CheckInteger, 1, ++/*146961*/ OPC_CheckType, MVT::i32, ++/*146963*/ OPC_MoveParent, ++/*146964*/ OPC_MoveChild, 14, ++/*146966*/ OPC_CheckInteger, 1, ++/*146968*/ OPC_CheckType, MVT::i32, ++/*146970*/ OPC_MoveParent, ++/*146971*/ OPC_MoveChild, 15, ++/*146973*/ OPC_CheckInteger, 1, ++/*146975*/ OPC_CheckType, MVT::i32, ++/*146977*/ OPC_MoveParent, ++/*146978*/ OPC_MoveChild, 16, ++/*146980*/ OPC_CheckInteger, 1, ++/*146982*/ OPC_CheckType, MVT::i32, ++/*146984*/ OPC_MoveParent, ++/*146985*/ OPC_MoveChild, 17, ++/*146987*/ OPC_CheckInteger, 1, ++/*146989*/ OPC_CheckType, MVT::i32, ++/*146991*/ OPC_MoveParent, ++/*146992*/ OPC_MoveChild, 18, ++/*146994*/ OPC_CheckInteger, 1, ++/*146996*/ OPC_CheckType, MVT::i32, ++/*146998*/ OPC_MoveParent, ++/*146999*/ OPC_MoveChild, 19, ++/*147001*/ OPC_CheckInteger, 1, ++/*147003*/ OPC_CheckType, MVT::i32, ++/*147005*/ OPC_MoveParent, ++/*147006*/ OPC_MoveChild, 20, ++/*147008*/ OPC_CheckInteger, 1, ++/*147010*/ OPC_CheckType, MVT::i32, ++/*147012*/ OPC_MoveParent, ++/*147013*/ OPC_MoveChild, 21, ++/*147015*/ OPC_CheckInteger, 1, ++/*147017*/ OPC_CheckType, MVT::i32, ++/*147019*/ OPC_MoveParent, ++/*147020*/ OPC_MoveChild, 22, ++/*147022*/ OPC_CheckInteger, 1, ++/*147024*/ OPC_CheckType, MVT::i32, ++/*147026*/ OPC_MoveParent, ++/*147027*/ OPC_MoveChild, 23, ++/*147029*/ OPC_CheckInteger, 1, ++/*147031*/ OPC_CheckType, MVT::i32, ++/*147033*/ OPC_MoveParent, ++/*147034*/ OPC_MoveChild, 24, ++/*147036*/ OPC_CheckInteger, 1, ++/*147038*/ OPC_CheckType, MVT::i32, ++/*147040*/ OPC_MoveParent, ++/*147041*/ OPC_MoveChild, 25, ++/*147043*/ OPC_CheckInteger, 1, ++/*147045*/ OPC_CheckType, MVT::i32, ++/*147047*/ OPC_MoveParent, ++/*147048*/ OPC_MoveChild, 26, ++/*147050*/ OPC_CheckInteger, 1, ++/*147052*/ OPC_CheckType, MVT::i32, ++/*147054*/ OPC_MoveParent, ++/*147055*/ OPC_MoveChild, 27, ++/*147057*/ OPC_CheckInteger, 1, ++/*147059*/ OPC_CheckType, MVT::i32, ++/*147061*/ OPC_MoveParent, ++/*147062*/ OPC_MoveChild, 28, ++/*147064*/ OPC_CheckInteger, 1, ++/*147066*/ OPC_CheckType, MVT::i32, ++/*147068*/ OPC_MoveParent, ++/*147069*/ OPC_MoveChild, 29, ++/*147071*/ OPC_CheckInteger, 1, ++/*147073*/ OPC_CheckType, MVT::i32, ++/*147075*/ OPC_MoveParent, ++/*147076*/ OPC_MoveChild, 30, ++/*147078*/ OPC_CheckInteger, 1, ++/*147080*/ OPC_CheckType, MVT::i32, ++/*147082*/ OPC_MoveParent, ++/*147083*/ OPC_MoveChild, 31, ++/*147085*/ OPC_CheckInteger, 1, ++/*147087*/ OPC_CheckType, MVT::i32, ++/*147089*/ OPC_MoveParent, ++/*147090*/ OPC_CheckType, MVT::v32i8, ++/*147092*/ OPC_MoveParent, ++/*147093*/ OPC_CheckType, MVT::v32i8, ++/*147095*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*147097*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b)), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*147105*/ /*Scope*/ 17|128,5/*657*/, /*->147764*/ ++/*147107*/ OPC_CheckChild0Same, 0, ++/*147109*/ OPC_CheckChild1Same, 1, ++/*147111*/ OPC_MoveParent, ++/*147112*/ OPC_MoveChild1, ++/*147113*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*147116*/ OPC_CheckChild0Integer, 1, ++/*147118*/ OPC_CheckChild0Type, MVT::i32, ++/*147120*/ OPC_CheckChild1Integer, 1, ++/*147122*/ OPC_CheckChild1Type, MVT::i32, ++/*147124*/ OPC_CheckChild2Integer, 1, ++/*147126*/ OPC_CheckChild2Type, MVT::i32, ++/*147128*/ OPC_CheckChild3Integer, 1, ++/*147130*/ OPC_CheckChild3Type, MVT::i32, ++/*147132*/ OPC_CheckChild4Integer, 1, ++/*147134*/ OPC_CheckChild4Type, MVT::i32, ++/*147136*/ OPC_MoveChild5, ++/*147137*/ OPC_CheckInteger, 1, ++/*147139*/ OPC_CheckType, MVT::i32, ++/*147141*/ OPC_MoveParent, ++/*147142*/ OPC_MoveChild6, ++/*147143*/ OPC_CheckInteger, 1, ++/*147145*/ OPC_CheckType, MVT::i32, ++/*147147*/ OPC_MoveParent, ++/*147148*/ OPC_MoveChild7, ++/*147149*/ OPC_CheckInteger, 1, ++/*147151*/ OPC_CheckType, MVT::i32, ++/*147153*/ OPC_MoveParent, ++/*147154*/ OPC_MoveChild, 8, ++/*147156*/ OPC_CheckInteger, 1, ++/*147158*/ OPC_CheckType, MVT::i32, ++/*147160*/ OPC_MoveParent, ++/*147161*/ OPC_MoveChild, 9, ++/*147163*/ OPC_CheckInteger, 1, ++/*147165*/ OPC_CheckType, MVT::i32, ++/*147167*/ OPC_MoveParent, ++/*147168*/ OPC_MoveChild, 10, ++/*147170*/ OPC_CheckInteger, 1, ++/*147172*/ OPC_CheckType, MVT::i32, ++/*147174*/ OPC_MoveParent, ++/*147175*/ OPC_MoveChild, 11, ++/*147177*/ OPC_CheckInteger, 1, ++/*147179*/ OPC_CheckType, MVT::i32, ++/*147181*/ OPC_MoveParent, ++/*147182*/ OPC_MoveChild, 12, ++/*147184*/ OPC_CheckInteger, 1, ++/*147186*/ OPC_CheckType, MVT::i32, ++/*147188*/ OPC_MoveParent, ++/*147189*/ OPC_MoveChild, 13, ++/*147191*/ OPC_CheckInteger, 1, ++/*147193*/ OPC_CheckType, MVT::i32, ++/*147195*/ OPC_MoveParent, ++/*147196*/ OPC_MoveChild, 14, ++/*147198*/ OPC_CheckInteger, 1, ++/*147200*/ OPC_CheckType, MVT::i32, ++/*147202*/ OPC_MoveParent, ++/*147203*/ OPC_MoveChild, 15, ++/*147205*/ OPC_CheckInteger, 1, ++/*147207*/ OPC_CheckType, MVT::i32, ++/*147209*/ OPC_MoveParent, ++/*147210*/ OPC_MoveChild, 16, ++/*147212*/ OPC_CheckInteger, 1, ++/*147214*/ OPC_CheckType, MVT::i32, ++/*147216*/ OPC_MoveParent, ++/*147217*/ OPC_MoveChild, 17, ++/*147219*/ OPC_CheckInteger, 1, ++/*147221*/ OPC_CheckType, MVT::i32, ++/*147223*/ OPC_MoveParent, ++/*147224*/ OPC_MoveChild, 18, ++/*147226*/ OPC_CheckInteger, 1, ++/*147228*/ OPC_CheckType, MVT::i32, ++/*147230*/ OPC_MoveParent, ++/*147231*/ OPC_MoveChild, 19, ++/*147233*/ OPC_CheckInteger, 1, ++/*147235*/ OPC_CheckType, MVT::i32, ++/*147237*/ OPC_MoveParent, ++/*147238*/ OPC_MoveChild, 20, ++/*147240*/ OPC_CheckInteger, 1, ++/*147242*/ OPC_CheckType, MVT::i32, ++/*147244*/ OPC_MoveParent, ++/*147245*/ OPC_MoveChild, 21, ++/*147247*/ OPC_CheckInteger, 1, ++/*147249*/ OPC_CheckType, MVT::i32, ++/*147251*/ OPC_MoveParent, ++/*147252*/ OPC_MoveChild, 22, ++/*147254*/ OPC_CheckInteger, 1, ++/*147256*/ OPC_CheckType, MVT::i32, ++/*147258*/ OPC_MoveParent, ++/*147259*/ OPC_MoveChild, 23, ++/*147261*/ OPC_CheckInteger, 1, ++/*147263*/ OPC_CheckType, MVT::i32, ++/*147265*/ OPC_MoveParent, ++/*147266*/ OPC_MoveChild, 24, ++/*147268*/ OPC_CheckInteger, 1, ++/*147270*/ OPC_CheckType, MVT::i32, ++/*147272*/ OPC_MoveParent, ++/*147273*/ OPC_MoveChild, 25, ++/*147275*/ OPC_CheckInteger, 1, ++/*147277*/ OPC_CheckType, MVT::i32, ++/*147279*/ OPC_MoveParent, ++/*147280*/ OPC_MoveChild, 26, ++/*147282*/ OPC_CheckInteger, 1, ++/*147284*/ OPC_CheckType, MVT::i32, ++/*147286*/ OPC_MoveParent, ++/*147287*/ OPC_MoveChild, 27, ++/*147289*/ OPC_CheckInteger, 1, ++/*147291*/ OPC_CheckType, MVT::i32, ++/*147293*/ OPC_MoveParent, ++/*147294*/ OPC_MoveChild, 28, ++/*147296*/ OPC_CheckInteger, 1, ++/*147298*/ OPC_CheckType, MVT::i32, ++/*147300*/ OPC_MoveParent, ++/*147301*/ OPC_MoveChild, 29, ++/*147303*/ OPC_CheckInteger, 1, ++/*147305*/ OPC_CheckType, MVT::i32, ++/*147307*/ OPC_MoveParent, ++/*147308*/ OPC_MoveChild, 30, ++/*147310*/ OPC_CheckInteger, 1, ++/*147312*/ OPC_CheckType, MVT::i32, ++/*147314*/ OPC_MoveParent, ++/*147315*/ OPC_MoveChild, 31, ++/*147317*/ OPC_CheckInteger, 1, ++/*147319*/ OPC_CheckType, MVT::i32, ++/*147321*/ OPC_MoveParent, ++/*147322*/ OPC_MoveParent, ++/*147323*/ OPC_MoveParent, ++/*147324*/ OPC_MoveChild1, ++/*147325*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*147328*/ OPC_CheckChild0Integer, 7, ++/*147330*/ OPC_CheckChild0Type, MVT::i32, ++/*147332*/ OPC_CheckChild1Integer, 7, ++/*147334*/ OPC_CheckChild1Type, MVT::i32, ++/*147336*/ OPC_CheckChild2Integer, 7, ++/*147338*/ OPC_CheckChild2Type, MVT::i32, ++/*147340*/ OPC_CheckChild3Integer, 7, ++/*147342*/ OPC_CheckChild3Type, MVT::i32, ++/*147344*/ OPC_CheckChild4Integer, 7, ++/*147346*/ OPC_CheckChild4Type, MVT::i32, ++/*147348*/ OPC_MoveChild5, ++/*147349*/ OPC_CheckInteger, 7, ++/*147351*/ OPC_CheckType, MVT::i32, ++/*147353*/ OPC_MoveParent, ++/*147354*/ OPC_MoveChild6, ++/*147355*/ OPC_CheckInteger, 7, ++/*147357*/ OPC_CheckType, MVT::i32, ++/*147359*/ OPC_MoveParent, ++/*147360*/ OPC_MoveChild7, ++/*147361*/ OPC_CheckInteger, 7, ++/*147363*/ OPC_CheckType, MVT::i32, ++/*147365*/ OPC_MoveParent, ++/*147366*/ OPC_MoveChild, 8, ++/*147368*/ OPC_CheckInteger, 7, ++/*147370*/ OPC_CheckType, MVT::i32, ++/*147372*/ OPC_MoveParent, ++/*147373*/ OPC_MoveChild, 9, ++/*147375*/ OPC_CheckInteger, 7, ++/*147377*/ OPC_CheckType, MVT::i32, ++/*147379*/ OPC_MoveParent, ++/*147380*/ OPC_MoveChild, 10, ++/*147382*/ OPC_CheckInteger, 7, ++/*147384*/ OPC_CheckType, MVT::i32, ++/*147386*/ OPC_MoveParent, ++/*147387*/ OPC_MoveChild, 11, ++/*147389*/ OPC_CheckInteger, 7, ++/*147391*/ OPC_CheckType, MVT::i32, ++/*147393*/ OPC_MoveParent, ++/*147394*/ OPC_MoveChild, 12, ++/*147396*/ OPC_CheckInteger, 7, ++/*147398*/ OPC_CheckType, MVT::i32, ++/*147400*/ OPC_MoveParent, ++/*147401*/ OPC_MoveChild, 13, ++/*147403*/ OPC_CheckInteger, 7, ++/*147405*/ OPC_CheckType, MVT::i32, ++/*147407*/ OPC_MoveParent, ++/*147408*/ OPC_MoveChild, 14, ++/*147410*/ OPC_CheckInteger, 7, ++/*147412*/ OPC_CheckType, MVT::i32, ++/*147414*/ OPC_MoveParent, ++/*147415*/ OPC_MoveChild, 15, ++/*147417*/ OPC_CheckInteger, 7, ++/*147419*/ OPC_CheckType, MVT::i32, ++/*147421*/ OPC_MoveParent, ++/*147422*/ OPC_MoveChild, 16, ++/*147424*/ OPC_CheckInteger, 7, ++/*147426*/ OPC_CheckType, MVT::i32, ++/*147428*/ OPC_MoveParent, ++/*147429*/ OPC_MoveChild, 17, ++/*147431*/ OPC_CheckInteger, 7, ++/*147433*/ OPC_CheckType, MVT::i32, ++/*147435*/ OPC_MoveParent, ++/*147436*/ OPC_MoveChild, 18, ++/*147438*/ OPC_CheckInteger, 7, ++/*147440*/ OPC_CheckType, MVT::i32, ++/*147442*/ OPC_MoveParent, ++/*147443*/ OPC_MoveChild, 19, ++/*147445*/ OPC_CheckInteger, 7, ++/*147447*/ OPC_CheckType, MVT::i32, ++/*147449*/ OPC_MoveParent, ++/*147450*/ OPC_MoveChild, 20, ++/*147452*/ OPC_CheckInteger, 7, ++/*147454*/ OPC_CheckType, MVT::i32, ++/*147456*/ OPC_MoveParent, ++/*147457*/ OPC_MoveChild, 21, ++/*147459*/ OPC_CheckInteger, 7, ++/*147461*/ OPC_CheckType, MVT::i32, ++/*147463*/ OPC_MoveParent, ++/*147464*/ OPC_MoveChild, 22, ++/*147466*/ OPC_CheckInteger, 7, ++/*147468*/ OPC_CheckType, MVT::i32, ++/*147470*/ OPC_MoveParent, ++/*147471*/ OPC_MoveChild, 23, ++/*147473*/ OPC_CheckInteger, 7, ++/*147475*/ OPC_CheckType, MVT::i32, ++/*147477*/ OPC_MoveParent, ++/*147478*/ OPC_MoveChild, 24, ++/*147480*/ OPC_CheckInteger, 7, ++/*147482*/ OPC_CheckType, MVT::i32, ++/*147484*/ OPC_MoveParent, ++/*147485*/ OPC_MoveChild, 25, ++/*147487*/ OPC_CheckInteger, 7, ++/*147489*/ OPC_CheckType, MVT::i32, ++/*147491*/ OPC_MoveParent, ++/*147492*/ OPC_MoveChild, 26, ++/*147494*/ OPC_CheckInteger, 7, ++/*147496*/ OPC_CheckType, MVT::i32, ++/*147498*/ OPC_MoveParent, ++/*147499*/ OPC_MoveChild, 27, ++/*147501*/ OPC_CheckInteger, 7, ++/*147503*/ OPC_CheckType, MVT::i32, ++/*147505*/ OPC_MoveParent, ++/*147506*/ OPC_MoveChild, 28, ++/*147508*/ OPC_CheckInteger, 7, ++/*147510*/ OPC_CheckType, MVT::i32, ++/*147512*/ OPC_MoveParent, ++/*147513*/ OPC_MoveChild, 29, ++/*147515*/ OPC_CheckInteger, 7, ++/*147517*/ OPC_CheckType, MVT::i32, ++/*147519*/ OPC_MoveParent, ++/*147520*/ OPC_MoveChild, 30, ++/*147522*/ OPC_CheckInteger, 7, ++/*147524*/ OPC_CheckType, MVT::i32, ++/*147526*/ OPC_MoveParent, ++/*147527*/ OPC_MoveChild, 31, ++/*147529*/ OPC_CheckInteger, 7, ++/*147531*/ OPC_CheckType, MVT::i32, ++/*147533*/ OPC_MoveParent, ++/*147534*/ OPC_CheckType, MVT::v32i8, ++/*147536*/ OPC_MoveParent, ++/*147537*/ OPC_MoveParent, ++/*147538*/ OPC_MoveParent, ++/*147539*/ OPC_MoveChild1, ++/*147540*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*147543*/ OPC_CheckChild0Integer, 1, ++/*147545*/ OPC_CheckChild0Type, MVT::i32, ++/*147547*/ OPC_CheckChild1Integer, 1, ++/*147549*/ OPC_CheckChild1Type, MVT::i32, ++/*147551*/ OPC_CheckChild2Integer, 1, ++/*147553*/ OPC_CheckChild2Type, MVT::i32, ++/*147555*/ OPC_CheckChild3Integer, 1, ++/*147557*/ OPC_CheckChild3Type, MVT::i32, ++/*147559*/ OPC_CheckChild4Integer, 1, ++/*147561*/ OPC_CheckChild4Type, MVT::i32, ++/*147563*/ OPC_MoveChild5, ++/*147564*/ OPC_CheckInteger, 1, ++/*147566*/ OPC_CheckType, MVT::i32, ++/*147568*/ OPC_MoveParent, ++/*147569*/ OPC_MoveChild6, ++/*147570*/ OPC_CheckInteger, 1, ++/*147572*/ OPC_CheckType, MVT::i32, ++/*147574*/ OPC_MoveParent, ++/*147575*/ OPC_MoveChild7, ++/*147576*/ OPC_CheckInteger, 1, ++/*147578*/ OPC_CheckType, MVT::i32, ++/*147580*/ OPC_MoveParent, ++/*147581*/ OPC_MoveChild, 8, ++/*147583*/ OPC_CheckInteger, 1, ++/*147585*/ OPC_CheckType, MVT::i32, ++/*147587*/ OPC_MoveParent, ++/*147588*/ OPC_MoveChild, 9, ++/*147590*/ OPC_CheckInteger, 1, ++/*147592*/ OPC_CheckType, MVT::i32, ++/*147594*/ OPC_MoveParent, ++/*147595*/ OPC_MoveChild, 10, ++/*147597*/ OPC_CheckInteger, 1, ++/*147599*/ OPC_CheckType, MVT::i32, ++/*147601*/ OPC_MoveParent, ++/*147602*/ OPC_MoveChild, 11, ++/*147604*/ OPC_CheckInteger, 1, ++/*147606*/ OPC_CheckType, MVT::i32, ++/*147608*/ OPC_MoveParent, ++/*147609*/ OPC_MoveChild, 12, ++/*147611*/ OPC_CheckInteger, 1, ++/*147613*/ OPC_CheckType, MVT::i32, ++/*147615*/ OPC_MoveParent, ++/*147616*/ OPC_MoveChild, 13, ++/*147618*/ OPC_CheckInteger, 1, ++/*147620*/ OPC_CheckType, MVT::i32, ++/*147622*/ OPC_MoveParent, ++/*147623*/ OPC_MoveChild, 14, ++/*147625*/ OPC_CheckInteger, 1, ++/*147627*/ OPC_CheckType, MVT::i32, ++/*147629*/ OPC_MoveParent, ++/*147630*/ OPC_MoveChild, 15, ++/*147632*/ OPC_CheckInteger, 1, ++/*147634*/ OPC_CheckType, MVT::i32, ++/*147636*/ OPC_MoveParent, ++/*147637*/ OPC_MoveChild, 16, ++/*147639*/ OPC_CheckInteger, 1, ++/*147641*/ OPC_CheckType, MVT::i32, ++/*147643*/ OPC_MoveParent, ++/*147644*/ OPC_MoveChild, 17, ++/*147646*/ OPC_CheckInteger, 1, ++/*147648*/ OPC_CheckType, MVT::i32, ++/*147650*/ OPC_MoveParent, ++/*147651*/ OPC_MoveChild, 18, ++/*147653*/ OPC_CheckInteger, 1, ++/*147655*/ OPC_CheckType, MVT::i32, ++/*147657*/ OPC_MoveParent, ++/*147658*/ OPC_MoveChild, 19, ++/*147660*/ OPC_CheckInteger, 1, ++/*147662*/ OPC_CheckType, MVT::i32, ++/*147664*/ OPC_MoveParent, ++/*147665*/ OPC_MoveChild, 20, ++/*147667*/ OPC_CheckInteger, 1, ++/*147669*/ OPC_CheckType, MVT::i32, ++/*147671*/ OPC_MoveParent, ++/*147672*/ OPC_MoveChild, 21, ++/*147674*/ OPC_CheckInteger, 1, ++/*147676*/ OPC_CheckType, MVT::i32, ++/*147678*/ OPC_MoveParent, ++/*147679*/ OPC_MoveChild, 22, ++/*147681*/ OPC_CheckInteger, 1, ++/*147683*/ OPC_CheckType, MVT::i32, ++/*147685*/ OPC_MoveParent, ++/*147686*/ OPC_MoveChild, 23, ++/*147688*/ OPC_CheckInteger, 1, ++/*147690*/ OPC_CheckType, MVT::i32, ++/*147692*/ OPC_MoveParent, ++/*147693*/ OPC_MoveChild, 24, ++/*147695*/ OPC_CheckInteger, 1, ++/*147697*/ OPC_CheckType, MVT::i32, ++/*147699*/ OPC_MoveParent, ++/*147700*/ OPC_MoveChild, 25, ++/*147702*/ OPC_CheckInteger, 1, ++/*147704*/ OPC_CheckType, MVT::i32, ++/*147706*/ OPC_MoveParent, ++/*147707*/ OPC_MoveChild, 26, ++/*147709*/ OPC_CheckInteger, 1, ++/*147711*/ OPC_CheckType, MVT::i32, ++/*147713*/ OPC_MoveParent, ++/*147714*/ OPC_MoveChild, 27, ++/*147716*/ OPC_CheckInteger, 1, ++/*147718*/ OPC_CheckType, MVT::i32, ++/*147720*/ OPC_MoveParent, ++/*147721*/ OPC_MoveChild, 28, ++/*147723*/ OPC_CheckInteger, 1, ++/*147725*/ OPC_CheckType, MVT::i32, ++/*147727*/ OPC_MoveParent, ++/*147728*/ OPC_MoveChild, 29, ++/*147730*/ OPC_CheckInteger, 1, ++/*147732*/ OPC_CheckType, MVT::i32, ++/*147734*/ OPC_MoveParent, ++/*147735*/ OPC_MoveChild, 30, ++/*147737*/ OPC_CheckInteger, 1, ++/*147739*/ OPC_CheckType, MVT::i32, ++/*147741*/ OPC_MoveParent, ++/*147742*/ OPC_MoveChild, 31, ++/*147744*/ OPC_CheckInteger, 1, ++/*147746*/ OPC_CheckType, MVT::i32, ++/*147748*/ OPC_MoveParent, ++/*147749*/ OPC_CheckType, MVT::v32i8, ++/*147751*/ OPC_MoveParent, ++/*147752*/ OPC_CheckType, MVT::v32i8, ++/*147754*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*147756*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b)), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*147764*/ /*Scope*/ 17|128,5/*657*/, /*->148423*/ ++/*147766*/ OPC_CheckChild0Same, 1, ++/*147768*/ OPC_CheckChild1Same, 0, ++/*147770*/ OPC_MoveParent, ++/*147771*/ OPC_MoveChild1, ++/*147772*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*147775*/ OPC_CheckChild0Integer, 1, ++/*147777*/ OPC_CheckChild0Type, MVT::i32, ++/*147779*/ OPC_CheckChild1Integer, 1, ++/*147781*/ OPC_CheckChild1Type, MVT::i32, ++/*147783*/ OPC_CheckChild2Integer, 1, ++/*147785*/ OPC_CheckChild2Type, MVT::i32, ++/*147787*/ OPC_CheckChild3Integer, 1, ++/*147789*/ OPC_CheckChild3Type, MVT::i32, ++/*147791*/ OPC_CheckChild4Integer, 1, ++/*147793*/ OPC_CheckChild4Type, MVT::i32, ++/*147795*/ OPC_MoveChild5, ++/*147796*/ OPC_CheckInteger, 1, ++/*147798*/ OPC_CheckType, MVT::i32, ++/*147800*/ OPC_MoveParent, ++/*147801*/ OPC_MoveChild6, ++/*147802*/ OPC_CheckInteger, 1, ++/*147804*/ OPC_CheckType, MVT::i32, ++/*147806*/ OPC_MoveParent, ++/*147807*/ OPC_MoveChild7, ++/*147808*/ OPC_CheckInteger, 1, ++/*147810*/ OPC_CheckType, MVT::i32, ++/*147812*/ OPC_MoveParent, ++/*147813*/ OPC_MoveChild, 8, ++/*147815*/ OPC_CheckInteger, 1, ++/*147817*/ OPC_CheckType, MVT::i32, ++/*147819*/ OPC_MoveParent, ++/*147820*/ OPC_MoveChild, 9, ++/*147822*/ OPC_CheckInteger, 1, ++/*147824*/ OPC_CheckType, MVT::i32, ++/*147826*/ OPC_MoveParent, ++/*147827*/ OPC_MoveChild, 10, ++/*147829*/ OPC_CheckInteger, 1, ++/*147831*/ OPC_CheckType, MVT::i32, ++/*147833*/ OPC_MoveParent, ++/*147834*/ OPC_MoveChild, 11, ++/*147836*/ OPC_CheckInteger, 1, ++/*147838*/ OPC_CheckType, MVT::i32, ++/*147840*/ OPC_MoveParent, ++/*147841*/ OPC_MoveChild, 12, ++/*147843*/ OPC_CheckInteger, 1, ++/*147845*/ OPC_CheckType, MVT::i32, ++/*147847*/ OPC_MoveParent, ++/*147848*/ OPC_MoveChild, 13, ++/*147850*/ OPC_CheckInteger, 1, ++/*147852*/ OPC_CheckType, MVT::i32, ++/*147854*/ OPC_MoveParent, ++/*147855*/ OPC_MoveChild, 14, ++/*147857*/ OPC_CheckInteger, 1, ++/*147859*/ OPC_CheckType, MVT::i32, ++/*147861*/ OPC_MoveParent, ++/*147862*/ OPC_MoveChild, 15, ++/*147864*/ OPC_CheckInteger, 1, ++/*147866*/ OPC_CheckType, MVT::i32, ++/*147868*/ OPC_MoveParent, ++/*147869*/ OPC_MoveChild, 16, ++/*147871*/ OPC_CheckInteger, 1, ++/*147873*/ OPC_CheckType, MVT::i32, ++/*147875*/ OPC_MoveParent, ++/*147876*/ OPC_MoveChild, 17, ++/*147878*/ OPC_CheckInteger, 1, ++/*147880*/ OPC_CheckType, MVT::i32, ++/*147882*/ OPC_MoveParent, ++/*147883*/ OPC_MoveChild, 18, ++/*147885*/ OPC_CheckInteger, 1, ++/*147887*/ OPC_CheckType, MVT::i32, ++/*147889*/ OPC_MoveParent, ++/*147890*/ OPC_MoveChild, 19, ++/*147892*/ OPC_CheckInteger, 1, ++/*147894*/ OPC_CheckType, MVT::i32, ++/*147896*/ OPC_MoveParent, ++/*147897*/ OPC_MoveChild, 20, ++/*147899*/ OPC_CheckInteger, 1, ++/*147901*/ OPC_CheckType, MVT::i32, ++/*147903*/ OPC_MoveParent, ++/*147904*/ OPC_MoveChild, 21, ++/*147906*/ OPC_CheckInteger, 1, ++/*147908*/ OPC_CheckType, MVT::i32, ++/*147910*/ OPC_MoveParent, ++/*147911*/ OPC_MoveChild, 22, ++/*147913*/ OPC_CheckInteger, 1, ++/*147915*/ OPC_CheckType, MVT::i32, ++/*147917*/ OPC_MoveParent, ++/*147918*/ OPC_MoveChild, 23, ++/*147920*/ OPC_CheckInteger, 1, ++/*147922*/ OPC_CheckType, MVT::i32, ++/*147924*/ OPC_MoveParent, ++/*147925*/ OPC_MoveChild, 24, ++/*147927*/ OPC_CheckInteger, 1, ++/*147929*/ OPC_CheckType, MVT::i32, ++/*147931*/ OPC_MoveParent, ++/*147932*/ OPC_MoveChild, 25, ++/*147934*/ OPC_CheckInteger, 1, ++/*147936*/ OPC_CheckType, MVT::i32, ++/*147938*/ OPC_MoveParent, ++/*147939*/ OPC_MoveChild, 26, ++/*147941*/ OPC_CheckInteger, 1, ++/*147943*/ OPC_CheckType, MVT::i32, ++/*147945*/ OPC_MoveParent, ++/*147946*/ OPC_MoveChild, 27, ++/*147948*/ OPC_CheckInteger, 1, ++/*147950*/ OPC_CheckType, MVT::i32, ++/*147952*/ OPC_MoveParent, ++/*147953*/ OPC_MoveChild, 28, ++/*147955*/ OPC_CheckInteger, 1, ++/*147957*/ OPC_CheckType, MVT::i32, ++/*147959*/ OPC_MoveParent, ++/*147960*/ OPC_MoveChild, 29, ++/*147962*/ OPC_CheckInteger, 1, ++/*147964*/ OPC_CheckType, MVT::i32, ++/*147966*/ OPC_MoveParent, ++/*147967*/ OPC_MoveChild, 30, ++/*147969*/ OPC_CheckInteger, 1, ++/*147971*/ OPC_CheckType, MVT::i32, ++/*147973*/ OPC_MoveParent, ++/*147974*/ OPC_MoveChild, 31, ++/*147976*/ OPC_CheckInteger, 1, ++/*147978*/ OPC_CheckType, MVT::i32, ++/*147980*/ OPC_MoveParent, ++/*147981*/ OPC_MoveParent, ++/*147982*/ OPC_MoveParent, ++/*147983*/ OPC_MoveChild1, ++/*147984*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*147987*/ OPC_CheckChild0Integer, 7, ++/*147989*/ OPC_CheckChild0Type, MVT::i32, ++/*147991*/ OPC_CheckChild1Integer, 7, ++/*147993*/ OPC_CheckChild1Type, MVT::i32, ++/*147995*/ OPC_CheckChild2Integer, 7, ++/*147997*/ OPC_CheckChild2Type, MVT::i32, ++/*147999*/ OPC_CheckChild3Integer, 7, ++/*148001*/ OPC_CheckChild3Type, MVT::i32, ++/*148003*/ OPC_CheckChild4Integer, 7, ++/*148005*/ OPC_CheckChild4Type, MVT::i32, ++/*148007*/ OPC_MoveChild5, ++/*148008*/ OPC_CheckInteger, 7, ++/*148010*/ OPC_CheckType, MVT::i32, ++/*148012*/ OPC_MoveParent, ++/*148013*/ OPC_MoveChild6, ++/*148014*/ OPC_CheckInteger, 7, ++/*148016*/ OPC_CheckType, MVT::i32, ++/*148018*/ OPC_MoveParent, ++/*148019*/ OPC_MoveChild7, ++/*148020*/ OPC_CheckInteger, 7, ++/*148022*/ OPC_CheckType, MVT::i32, ++/*148024*/ OPC_MoveParent, ++/*148025*/ OPC_MoveChild, 8, ++/*148027*/ OPC_CheckInteger, 7, ++/*148029*/ OPC_CheckType, MVT::i32, ++/*148031*/ OPC_MoveParent, ++/*148032*/ OPC_MoveChild, 9, ++/*148034*/ OPC_CheckInteger, 7, ++/*148036*/ OPC_CheckType, MVT::i32, ++/*148038*/ OPC_MoveParent, ++/*148039*/ OPC_MoveChild, 10, ++/*148041*/ OPC_CheckInteger, 7, ++/*148043*/ OPC_CheckType, MVT::i32, ++/*148045*/ OPC_MoveParent, ++/*148046*/ OPC_MoveChild, 11, ++/*148048*/ OPC_CheckInteger, 7, ++/*148050*/ OPC_CheckType, MVT::i32, ++/*148052*/ OPC_MoveParent, ++/*148053*/ OPC_MoveChild, 12, ++/*148055*/ OPC_CheckInteger, 7, ++/*148057*/ OPC_CheckType, MVT::i32, ++/*148059*/ OPC_MoveParent, ++/*148060*/ OPC_MoveChild, 13, ++/*148062*/ OPC_CheckInteger, 7, ++/*148064*/ OPC_CheckType, MVT::i32, ++/*148066*/ OPC_MoveParent, ++/*148067*/ OPC_MoveChild, 14, ++/*148069*/ OPC_CheckInteger, 7, ++/*148071*/ OPC_CheckType, MVT::i32, ++/*148073*/ OPC_MoveParent, ++/*148074*/ OPC_MoveChild, 15, ++/*148076*/ OPC_CheckInteger, 7, ++/*148078*/ OPC_CheckType, MVT::i32, ++/*148080*/ OPC_MoveParent, ++/*148081*/ OPC_MoveChild, 16, ++/*148083*/ OPC_CheckInteger, 7, ++/*148085*/ OPC_CheckType, MVT::i32, ++/*148087*/ OPC_MoveParent, ++/*148088*/ OPC_MoveChild, 17, ++/*148090*/ OPC_CheckInteger, 7, ++/*148092*/ OPC_CheckType, MVT::i32, ++/*148094*/ OPC_MoveParent, ++/*148095*/ OPC_MoveChild, 18, ++/*148097*/ OPC_CheckInteger, 7, ++/*148099*/ OPC_CheckType, MVT::i32, ++/*148101*/ OPC_MoveParent, ++/*148102*/ OPC_MoveChild, 19, ++/*148104*/ OPC_CheckInteger, 7, ++/*148106*/ OPC_CheckType, MVT::i32, ++/*148108*/ OPC_MoveParent, ++/*148109*/ OPC_MoveChild, 20, ++/*148111*/ OPC_CheckInteger, 7, ++/*148113*/ OPC_CheckType, MVT::i32, ++/*148115*/ OPC_MoveParent, ++/*148116*/ OPC_MoveChild, 21, ++/*148118*/ OPC_CheckInteger, 7, ++/*148120*/ OPC_CheckType, MVT::i32, ++/*148122*/ OPC_MoveParent, ++/*148123*/ OPC_MoveChild, 22, ++/*148125*/ OPC_CheckInteger, 7, ++/*148127*/ OPC_CheckType, MVT::i32, ++/*148129*/ OPC_MoveParent, ++/*148130*/ OPC_MoveChild, 23, ++/*148132*/ OPC_CheckInteger, 7, ++/*148134*/ OPC_CheckType, MVT::i32, ++/*148136*/ OPC_MoveParent, ++/*148137*/ OPC_MoveChild, 24, ++/*148139*/ OPC_CheckInteger, 7, ++/*148141*/ OPC_CheckType, MVT::i32, ++/*148143*/ OPC_MoveParent, ++/*148144*/ OPC_MoveChild, 25, ++/*148146*/ OPC_CheckInteger, 7, ++/*148148*/ OPC_CheckType, MVT::i32, ++/*148150*/ OPC_MoveParent, ++/*148151*/ OPC_MoveChild, 26, ++/*148153*/ OPC_CheckInteger, 7, ++/*148155*/ OPC_CheckType, MVT::i32, ++/*148157*/ OPC_MoveParent, ++/*148158*/ OPC_MoveChild, 27, ++/*148160*/ OPC_CheckInteger, 7, ++/*148162*/ OPC_CheckType, MVT::i32, ++/*148164*/ OPC_MoveParent, ++/*148165*/ OPC_MoveChild, 28, ++/*148167*/ OPC_CheckInteger, 7, ++/*148169*/ OPC_CheckType, MVT::i32, ++/*148171*/ OPC_MoveParent, ++/*148172*/ OPC_MoveChild, 29, ++/*148174*/ OPC_CheckInteger, 7, ++/*148176*/ OPC_CheckType, MVT::i32, ++/*148178*/ OPC_MoveParent, ++/*148179*/ OPC_MoveChild, 30, ++/*148181*/ OPC_CheckInteger, 7, ++/*148183*/ OPC_CheckType, MVT::i32, ++/*148185*/ OPC_MoveParent, ++/*148186*/ OPC_MoveChild, 31, ++/*148188*/ OPC_CheckInteger, 7, ++/*148190*/ OPC_CheckType, MVT::i32, ++/*148192*/ OPC_MoveParent, ++/*148193*/ OPC_CheckType, MVT::v32i8, ++/*148195*/ OPC_MoveParent, ++/*148196*/ OPC_MoveParent, ++/*148197*/ OPC_MoveParent, ++/*148198*/ OPC_MoveChild1, ++/*148199*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*148202*/ OPC_CheckChild0Integer, 1, ++/*148204*/ OPC_CheckChild0Type, MVT::i32, ++/*148206*/ OPC_CheckChild1Integer, 1, ++/*148208*/ OPC_CheckChild1Type, MVT::i32, ++/*148210*/ OPC_CheckChild2Integer, 1, ++/*148212*/ OPC_CheckChild2Type, MVT::i32, ++/*148214*/ OPC_CheckChild3Integer, 1, ++/*148216*/ OPC_CheckChild3Type, MVT::i32, ++/*148218*/ OPC_CheckChild4Integer, 1, ++/*148220*/ OPC_CheckChild4Type, MVT::i32, ++/*148222*/ OPC_MoveChild5, ++/*148223*/ OPC_CheckInteger, 1, ++/*148225*/ OPC_CheckType, MVT::i32, ++/*148227*/ OPC_MoveParent, ++/*148228*/ OPC_MoveChild6, ++/*148229*/ OPC_CheckInteger, 1, ++/*148231*/ OPC_CheckType, MVT::i32, ++/*148233*/ OPC_MoveParent, ++/*148234*/ OPC_MoveChild7, ++/*148235*/ OPC_CheckInteger, 1, ++/*148237*/ OPC_CheckType, MVT::i32, ++/*148239*/ OPC_MoveParent, ++/*148240*/ OPC_MoveChild, 8, ++/*148242*/ OPC_CheckInteger, 1, ++/*148244*/ OPC_CheckType, MVT::i32, ++/*148246*/ OPC_MoveParent, ++/*148247*/ OPC_MoveChild, 9, ++/*148249*/ OPC_CheckInteger, 1, ++/*148251*/ OPC_CheckType, MVT::i32, ++/*148253*/ OPC_MoveParent, ++/*148254*/ OPC_MoveChild, 10, ++/*148256*/ OPC_CheckInteger, 1, ++/*148258*/ OPC_CheckType, MVT::i32, ++/*148260*/ OPC_MoveParent, ++/*148261*/ OPC_MoveChild, 11, ++/*148263*/ OPC_CheckInteger, 1, ++/*148265*/ OPC_CheckType, MVT::i32, ++/*148267*/ OPC_MoveParent, ++/*148268*/ OPC_MoveChild, 12, ++/*148270*/ OPC_CheckInteger, 1, ++/*148272*/ OPC_CheckType, MVT::i32, ++/*148274*/ OPC_MoveParent, ++/*148275*/ OPC_MoveChild, 13, ++/*148277*/ OPC_CheckInteger, 1, ++/*148279*/ OPC_CheckType, MVT::i32, ++/*148281*/ OPC_MoveParent, ++/*148282*/ OPC_MoveChild, 14, ++/*148284*/ OPC_CheckInteger, 1, ++/*148286*/ OPC_CheckType, MVT::i32, ++/*148288*/ OPC_MoveParent, ++/*148289*/ OPC_MoveChild, 15, ++/*148291*/ OPC_CheckInteger, 1, ++/*148293*/ OPC_CheckType, MVT::i32, ++/*148295*/ OPC_MoveParent, ++/*148296*/ OPC_MoveChild, 16, ++/*148298*/ OPC_CheckInteger, 1, ++/*148300*/ OPC_CheckType, MVT::i32, ++/*148302*/ OPC_MoveParent, ++/*148303*/ OPC_MoveChild, 17, ++/*148305*/ OPC_CheckInteger, 1, ++/*148307*/ OPC_CheckType, MVT::i32, ++/*148309*/ OPC_MoveParent, ++/*148310*/ OPC_MoveChild, 18, ++/*148312*/ OPC_CheckInteger, 1, ++/*148314*/ OPC_CheckType, MVT::i32, ++/*148316*/ OPC_MoveParent, ++/*148317*/ OPC_MoveChild, 19, ++/*148319*/ OPC_CheckInteger, 1, ++/*148321*/ OPC_CheckType, MVT::i32, ++/*148323*/ OPC_MoveParent, ++/*148324*/ OPC_MoveChild, 20, ++/*148326*/ OPC_CheckInteger, 1, ++/*148328*/ OPC_CheckType, MVT::i32, ++/*148330*/ OPC_MoveParent, ++/*148331*/ OPC_MoveChild, 21, ++/*148333*/ OPC_CheckInteger, 1, ++/*148335*/ OPC_CheckType, MVT::i32, ++/*148337*/ OPC_MoveParent, ++/*148338*/ OPC_MoveChild, 22, ++/*148340*/ OPC_CheckInteger, 1, ++/*148342*/ OPC_CheckType, MVT::i32, ++/*148344*/ OPC_MoveParent, ++/*148345*/ OPC_MoveChild, 23, ++/*148347*/ OPC_CheckInteger, 1, ++/*148349*/ OPC_CheckType, MVT::i32, ++/*148351*/ OPC_MoveParent, ++/*148352*/ OPC_MoveChild, 24, ++/*148354*/ OPC_CheckInteger, 1, ++/*148356*/ OPC_CheckType, MVT::i32, ++/*148358*/ OPC_MoveParent, ++/*148359*/ OPC_MoveChild, 25, ++/*148361*/ OPC_CheckInteger, 1, ++/*148363*/ OPC_CheckType, MVT::i32, ++/*148365*/ OPC_MoveParent, ++/*148366*/ OPC_MoveChild, 26, ++/*148368*/ OPC_CheckInteger, 1, ++/*148370*/ OPC_CheckType, MVT::i32, ++/*148372*/ OPC_MoveParent, ++/*148373*/ OPC_MoveChild, 27, ++/*148375*/ OPC_CheckInteger, 1, ++/*148377*/ OPC_CheckType, MVT::i32, ++/*148379*/ OPC_MoveParent, ++/*148380*/ OPC_MoveChild, 28, ++/*148382*/ OPC_CheckInteger, 1, ++/*148384*/ OPC_CheckType, MVT::i32, ++/*148386*/ OPC_MoveParent, ++/*148387*/ OPC_MoveChild, 29, ++/*148389*/ OPC_CheckInteger, 1, ++/*148391*/ OPC_CheckType, MVT::i32, ++/*148393*/ OPC_MoveParent, ++/*148394*/ OPC_MoveChild, 30, ++/*148396*/ OPC_CheckInteger, 1, ++/*148398*/ OPC_CheckType, MVT::i32, ++/*148400*/ OPC_MoveParent, ++/*148401*/ OPC_MoveChild, 31, ++/*148403*/ OPC_CheckInteger, 1, ++/*148405*/ OPC_CheckType, MVT::i32, ++/*148407*/ OPC_MoveParent, ++/*148408*/ OPC_CheckType, MVT::v32i8, ++/*148410*/ OPC_MoveParent, ++/*148411*/ OPC_CheckType, MVT::v32i8, ++/*148413*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*148415*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b)), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*148423*/ 0, /*End of Scope*/ ++/*148424*/ /*Scope*/ 42|128,10/*1322*/, /*->149748*/ ++/*148426*/ OPC_CheckChild0Same, 1, ++/*148428*/ OPC_MoveChild1, ++/*148429*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*148432*/ OPC_Scope, 15|128,5/*655*/, /*->149090*/ // 2 children in Scope ++/*148435*/ OPC_MoveChild0, ++/*148436*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*148439*/ OPC_CheckChild0Integer, 1, ++/*148441*/ OPC_CheckChild0Type, MVT::i32, ++/*148443*/ OPC_CheckChild1Integer, 1, ++/*148445*/ OPC_CheckChild1Type, MVT::i32, ++/*148447*/ OPC_CheckChild2Integer, 1, ++/*148449*/ OPC_CheckChild2Type, MVT::i32, ++/*148451*/ OPC_CheckChild3Integer, 1, ++/*148453*/ OPC_CheckChild3Type, MVT::i32, ++/*148455*/ OPC_CheckChild4Integer, 1, ++/*148457*/ OPC_CheckChild4Type, MVT::i32, ++/*148459*/ OPC_MoveChild5, ++/*148460*/ OPC_CheckInteger, 1, ++/*148462*/ OPC_CheckType, MVT::i32, ++/*148464*/ OPC_MoveParent, ++/*148465*/ OPC_MoveChild6, ++/*148466*/ OPC_CheckInteger, 1, ++/*148468*/ OPC_CheckType, MVT::i32, ++/*148470*/ OPC_MoveParent, ++/*148471*/ OPC_MoveChild7, ++/*148472*/ OPC_CheckInteger, 1, ++/*148474*/ OPC_CheckType, MVT::i32, ++/*148476*/ OPC_MoveParent, ++/*148477*/ OPC_MoveChild, 8, ++/*148479*/ OPC_CheckInteger, 1, ++/*148481*/ OPC_CheckType, MVT::i32, ++/*148483*/ OPC_MoveParent, ++/*148484*/ OPC_MoveChild, 9, ++/*148486*/ OPC_CheckInteger, 1, ++/*148488*/ OPC_CheckType, MVT::i32, ++/*148490*/ OPC_MoveParent, ++/*148491*/ OPC_MoveChild, 10, ++/*148493*/ OPC_CheckInteger, 1, ++/*148495*/ OPC_CheckType, MVT::i32, ++/*148497*/ OPC_MoveParent, ++/*148498*/ OPC_MoveChild, 11, ++/*148500*/ OPC_CheckInteger, 1, ++/*148502*/ OPC_CheckType, MVT::i32, ++/*148504*/ OPC_MoveParent, ++/*148505*/ OPC_MoveChild, 12, ++/*148507*/ OPC_CheckInteger, 1, ++/*148509*/ OPC_CheckType, MVT::i32, ++/*148511*/ OPC_MoveParent, ++/*148512*/ OPC_MoveChild, 13, ++/*148514*/ OPC_CheckInteger, 1, ++/*148516*/ OPC_CheckType, MVT::i32, ++/*148518*/ OPC_MoveParent, ++/*148519*/ OPC_MoveChild, 14, ++/*148521*/ OPC_CheckInteger, 1, ++/*148523*/ OPC_CheckType, MVT::i32, ++/*148525*/ OPC_MoveParent, ++/*148526*/ OPC_MoveChild, 15, ++/*148528*/ OPC_CheckInteger, 1, ++/*148530*/ OPC_CheckType, MVT::i32, ++/*148532*/ OPC_MoveParent, ++/*148533*/ OPC_MoveChild, 16, ++/*148535*/ OPC_CheckInteger, 1, ++/*148537*/ OPC_CheckType, MVT::i32, ++/*148539*/ OPC_MoveParent, ++/*148540*/ OPC_MoveChild, 17, ++/*148542*/ OPC_CheckInteger, 1, ++/*148544*/ OPC_CheckType, MVT::i32, ++/*148546*/ OPC_MoveParent, ++/*148547*/ OPC_MoveChild, 18, ++/*148549*/ OPC_CheckInteger, 1, ++/*148551*/ OPC_CheckType, MVT::i32, ++/*148553*/ OPC_MoveParent, ++/*148554*/ OPC_MoveChild, 19, ++/*148556*/ OPC_CheckInteger, 1, ++/*148558*/ OPC_CheckType, MVT::i32, ++/*148560*/ OPC_MoveParent, ++/*148561*/ OPC_MoveChild, 20, ++/*148563*/ OPC_CheckInteger, 1, ++/*148565*/ OPC_CheckType, MVT::i32, ++/*148567*/ OPC_MoveParent, ++/*148568*/ OPC_MoveChild, 21, ++/*148570*/ OPC_CheckInteger, 1, ++/*148572*/ OPC_CheckType, MVT::i32, ++/*148574*/ OPC_MoveParent, ++/*148575*/ OPC_MoveChild, 22, ++/*148577*/ OPC_CheckInteger, 1, ++/*148579*/ OPC_CheckType, MVT::i32, ++/*148581*/ OPC_MoveParent, ++/*148582*/ OPC_MoveChild, 23, ++/*148584*/ OPC_CheckInteger, 1, ++/*148586*/ OPC_CheckType, MVT::i32, ++/*148588*/ OPC_MoveParent, ++/*148589*/ OPC_MoveChild, 24, ++/*148591*/ OPC_CheckInteger, 1, ++/*148593*/ OPC_CheckType, MVT::i32, ++/*148595*/ OPC_MoveParent, ++/*148596*/ OPC_MoveChild, 25, ++/*148598*/ OPC_CheckInteger, 1, ++/*148600*/ OPC_CheckType, MVT::i32, ++/*148602*/ OPC_MoveParent, ++/*148603*/ OPC_MoveChild, 26, ++/*148605*/ OPC_CheckInteger, 1, ++/*148607*/ OPC_CheckType, MVT::i32, ++/*148609*/ OPC_MoveParent, ++/*148610*/ OPC_MoveChild, 27, ++/*148612*/ OPC_CheckInteger, 1, ++/*148614*/ OPC_CheckType, MVT::i32, ++/*148616*/ OPC_MoveParent, ++/*148617*/ OPC_MoveChild, 28, ++/*148619*/ OPC_CheckInteger, 1, ++/*148621*/ OPC_CheckType, MVT::i32, ++/*148623*/ OPC_MoveParent, ++/*148624*/ OPC_MoveChild, 29, ++/*148626*/ OPC_CheckInteger, 1, ++/*148628*/ OPC_CheckType, MVT::i32, ++/*148630*/ OPC_MoveParent, ++/*148631*/ OPC_MoveChild, 30, ++/*148633*/ OPC_CheckInteger, 1, ++/*148635*/ OPC_CheckType, MVT::i32, ++/*148637*/ OPC_MoveParent, ++/*148638*/ OPC_MoveChild, 31, ++/*148640*/ OPC_CheckInteger, 1, ++/*148642*/ OPC_CheckType, MVT::i32, ++/*148644*/ OPC_MoveParent, ++/*148645*/ OPC_MoveParent, ++/*148646*/ OPC_CheckChild1Same, 0, ++/*148648*/ OPC_MoveParent, ++/*148649*/ OPC_MoveParent, ++/*148650*/ OPC_MoveChild1, ++/*148651*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*148654*/ OPC_CheckChild0Integer, 7, ++/*148656*/ OPC_CheckChild0Type, MVT::i32, ++/*148658*/ OPC_CheckChild1Integer, 7, ++/*148660*/ OPC_CheckChild1Type, MVT::i32, ++/*148662*/ OPC_CheckChild2Integer, 7, ++/*148664*/ OPC_CheckChild2Type, MVT::i32, ++/*148666*/ OPC_CheckChild3Integer, 7, ++/*148668*/ OPC_CheckChild3Type, MVT::i32, ++/*148670*/ OPC_CheckChild4Integer, 7, ++/*148672*/ OPC_CheckChild4Type, MVT::i32, ++/*148674*/ OPC_MoveChild5, ++/*148675*/ OPC_CheckInteger, 7, ++/*148677*/ OPC_CheckType, MVT::i32, ++/*148679*/ OPC_MoveParent, ++/*148680*/ OPC_MoveChild6, ++/*148681*/ OPC_CheckInteger, 7, ++/*148683*/ OPC_CheckType, MVT::i32, ++/*148685*/ OPC_MoveParent, ++/*148686*/ OPC_MoveChild7, ++/*148687*/ OPC_CheckInteger, 7, ++/*148689*/ OPC_CheckType, MVT::i32, ++/*148691*/ OPC_MoveParent, ++/*148692*/ OPC_MoveChild, 8, ++/*148694*/ OPC_CheckInteger, 7, ++/*148696*/ OPC_CheckType, MVT::i32, ++/*148698*/ OPC_MoveParent, ++/*148699*/ OPC_MoveChild, 9, ++/*148701*/ OPC_CheckInteger, 7, ++/*148703*/ OPC_CheckType, MVT::i32, ++/*148705*/ OPC_MoveParent, ++/*148706*/ OPC_MoveChild, 10, ++/*148708*/ OPC_CheckInteger, 7, ++/*148710*/ OPC_CheckType, MVT::i32, ++/*148712*/ OPC_MoveParent, ++/*148713*/ OPC_MoveChild, 11, ++/*148715*/ OPC_CheckInteger, 7, ++/*148717*/ OPC_CheckType, MVT::i32, ++/*148719*/ OPC_MoveParent, ++/*148720*/ OPC_MoveChild, 12, ++/*148722*/ OPC_CheckInteger, 7, ++/*148724*/ OPC_CheckType, MVT::i32, ++/*148726*/ OPC_MoveParent, ++/*148727*/ OPC_MoveChild, 13, ++/*148729*/ OPC_CheckInteger, 7, ++/*148731*/ OPC_CheckType, MVT::i32, ++/*148733*/ OPC_MoveParent, ++/*148734*/ OPC_MoveChild, 14, ++/*148736*/ OPC_CheckInteger, 7, ++/*148738*/ OPC_CheckType, MVT::i32, ++/*148740*/ OPC_MoveParent, ++/*148741*/ OPC_MoveChild, 15, ++/*148743*/ OPC_CheckInteger, 7, ++/*148745*/ OPC_CheckType, MVT::i32, ++/*148747*/ OPC_MoveParent, ++/*148748*/ OPC_MoveChild, 16, ++/*148750*/ OPC_CheckInteger, 7, ++/*148752*/ OPC_CheckType, MVT::i32, ++/*148754*/ OPC_MoveParent, ++/*148755*/ OPC_MoveChild, 17, ++/*148757*/ OPC_CheckInteger, 7, ++/*148759*/ OPC_CheckType, MVT::i32, ++/*148761*/ OPC_MoveParent, ++/*148762*/ OPC_MoveChild, 18, ++/*148764*/ OPC_CheckInteger, 7, ++/*148766*/ OPC_CheckType, MVT::i32, ++/*148768*/ OPC_MoveParent, ++/*148769*/ OPC_MoveChild, 19, ++/*148771*/ OPC_CheckInteger, 7, ++/*148773*/ OPC_CheckType, MVT::i32, ++/*148775*/ OPC_MoveParent, ++/*148776*/ OPC_MoveChild, 20, ++/*148778*/ OPC_CheckInteger, 7, ++/*148780*/ OPC_CheckType, MVT::i32, ++/*148782*/ OPC_MoveParent, ++/*148783*/ OPC_MoveChild, 21, ++/*148785*/ OPC_CheckInteger, 7, ++/*148787*/ OPC_CheckType, MVT::i32, ++/*148789*/ OPC_MoveParent, ++/*148790*/ OPC_MoveChild, 22, ++/*148792*/ OPC_CheckInteger, 7, ++/*148794*/ OPC_CheckType, MVT::i32, ++/*148796*/ OPC_MoveParent, ++/*148797*/ OPC_MoveChild, 23, ++/*148799*/ OPC_CheckInteger, 7, ++/*148801*/ OPC_CheckType, MVT::i32, ++/*148803*/ OPC_MoveParent, ++/*148804*/ OPC_MoveChild, 24, ++/*148806*/ OPC_CheckInteger, 7, ++/*148808*/ OPC_CheckType, MVT::i32, ++/*148810*/ OPC_MoveParent, ++/*148811*/ OPC_MoveChild, 25, ++/*148813*/ OPC_CheckInteger, 7, ++/*148815*/ OPC_CheckType, MVT::i32, ++/*148817*/ OPC_MoveParent, ++/*148818*/ OPC_MoveChild, 26, ++/*148820*/ OPC_CheckInteger, 7, ++/*148822*/ OPC_CheckType, MVT::i32, ++/*148824*/ OPC_MoveParent, ++/*148825*/ OPC_MoveChild, 27, ++/*148827*/ OPC_CheckInteger, 7, ++/*148829*/ OPC_CheckType, MVT::i32, ++/*148831*/ OPC_MoveParent, ++/*148832*/ OPC_MoveChild, 28, ++/*148834*/ OPC_CheckInteger, 7, ++/*148836*/ OPC_CheckType, MVT::i32, ++/*148838*/ OPC_MoveParent, ++/*148839*/ OPC_MoveChild, 29, ++/*148841*/ OPC_CheckInteger, 7, ++/*148843*/ OPC_CheckType, MVT::i32, ++/*148845*/ OPC_MoveParent, ++/*148846*/ OPC_MoveChild, 30, ++/*148848*/ OPC_CheckInteger, 7, ++/*148850*/ OPC_CheckType, MVT::i32, ++/*148852*/ OPC_MoveParent, ++/*148853*/ OPC_MoveChild, 31, ++/*148855*/ OPC_CheckInteger, 7, ++/*148857*/ OPC_CheckType, MVT::i32, ++/*148859*/ OPC_MoveParent, ++/*148860*/ OPC_CheckType, MVT::v32i8, ++/*148862*/ OPC_MoveParent, ++/*148863*/ OPC_MoveParent, ++/*148864*/ OPC_MoveParent, ++/*148865*/ OPC_MoveChild1, ++/*148866*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*148869*/ OPC_CheckChild0Integer, 1, ++/*148871*/ OPC_CheckChild0Type, MVT::i32, ++/*148873*/ OPC_CheckChild1Integer, 1, ++/*148875*/ OPC_CheckChild1Type, MVT::i32, ++/*148877*/ OPC_CheckChild2Integer, 1, ++/*148879*/ OPC_CheckChild2Type, MVT::i32, ++/*148881*/ OPC_CheckChild3Integer, 1, ++/*148883*/ OPC_CheckChild3Type, MVT::i32, ++/*148885*/ OPC_CheckChild4Integer, 1, ++/*148887*/ OPC_CheckChild4Type, MVT::i32, ++/*148889*/ OPC_MoveChild5, ++/*148890*/ OPC_CheckInteger, 1, ++/*148892*/ OPC_CheckType, MVT::i32, ++/*148894*/ OPC_MoveParent, ++/*148895*/ OPC_MoveChild6, ++/*148896*/ OPC_CheckInteger, 1, ++/*148898*/ OPC_CheckType, MVT::i32, ++/*148900*/ OPC_MoveParent, ++/*148901*/ OPC_MoveChild7, ++/*148902*/ OPC_CheckInteger, 1, ++/*148904*/ OPC_CheckType, MVT::i32, ++/*148906*/ OPC_MoveParent, ++/*148907*/ OPC_MoveChild, 8, ++/*148909*/ OPC_CheckInteger, 1, ++/*148911*/ OPC_CheckType, MVT::i32, ++/*148913*/ OPC_MoveParent, ++/*148914*/ OPC_MoveChild, 9, ++/*148916*/ OPC_CheckInteger, 1, ++/*148918*/ OPC_CheckType, MVT::i32, ++/*148920*/ OPC_MoveParent, ++/*148921*/ OPC_MoveChild, 10, ++/*148923*/ OPC_CheckInteger, 1, ++/*148925*/ OPC_CheckType, MVT::i32, ++/*148927*/ OPC_MoveParent, ++/*148928*/ OPC_MoveChild, 11, ++/*148930*/ OPC_CheckInteger, 1, ++/*148932*/ OPC_CheckType, MVT::i32, ++/*148934*/ OPC_MoveParent, ++/*148935*/ OPC_MoveChild, 12, ++/*148937*/ OPC_CheckInteger, 1, ++/*148939*/ OPC_CheckType, MVT::i32, ++/*148941*/ OPC_MoveParent, ++/*148942*/ OPC_MoveChild, 13, ++/*148944*/ OPC_CheckInteger, 1, ++/*148946*/ OPC_CheckType, MVT::i32, ++/*148948*/ OPC_MoveParent, ++/*148949*/ OPC_MoveChild, 14, ++/*148951*/ OPC_CheckInteger, 1, ++/*148953*/ OPC_CheckType, MVT::i32, ++/*148955*/ OPC_MoveParent, ++/*148956*/ OPC_MoveChild, 15, ++/*148958*/ OPC_CheckInteger, 1, ++/*148960*/ OPC_CheckType, MVT::i32, ++/*148962*/ OPC_MoveParent, ++/*148963*/ OPC_MoveChild, 16, ++/*148965*/ OPC_CheckInteger, 1, ++/*148967*/ OPC_CheckType, MVT::i32, ++/*148969*/ OPC_MoveParent, ++/*148970*/ OPC_MoveChild, 17, ++/*148972*/ OPC_CheckInteger, 1, ++/*148974*/ OPC_CheckType, MVT::i32, ++/*148976*/ OPC_MoveParent, ++/*148977*/ OPC_MoveChild, 18, ++/*148979*/ OPC_CheckInteger, 1, ++/*148981*/ OPC_CheckType, MVT::i32, ++/*148983*/ OPC_MoveParent, ++/*148984*/ OPC_MoveChild, 19, ++/*148986*/ OPC_CheckInteger, 1, ++/*148988*/ OPC_CheckType, MVT::i32, ++/*148990*/ OPC_MoveParent, ++/*148991*/ OPC_MoveChild, 20, ++/*148993*/ OPC_CheckInteger, 1, ++/*148995*/ OPC_CheckType, MVT::i32, ++/*148997*/ OPC_MoveParent, ++/*148998*/ OPC_MoveChild, 21, ++/*149000*/ OPC_CheckInteger, 1, ++/*149002*/ OPC_CheckType, MVT::i32, ++/*149004*/ OPC_MoveParent, ++/*149005*/ OPC_MoveChild, 22, ++/*149007*/ OPC_CheckInteger, 1, ++/*149009*/ OPC_CheckType, MVT::i32, ++/*149011*/ OPC_MoveParent, ++/*149012*/ OPC_MoveChild, 23, ++/*149014*/ OPC_CheckInteger, 1, ++/*149016*/ OPC_CheckType, MVT::i32, ++/*149018*/ OPC_MoveParent, ++/*149019*/ OPC_MoveChild, 24, ++/*149021*/ OPC_CheckInteger, 1, ++/*149023*/ OPC_CheckType, MVT::i32, ++/*149025*/ OPC_MoveParent, ++/*149026*/ OPC_MoveChild, 25, ++/*149028*/ OPC_CheckInteger, 1, ++/*149030*/ OPC_CheckType, MVT::i32, ++/*149032*/ OPC_MoveParent, ++/*149033*/ OPC_MoveChild, 26, ++/*149035*/ OPC_CheckInteger, 1, ++/*149037*/ OPC_CheckType, MVT::i32, ++/*149039*/ OPC_MoveParent, ++/*149040*/ OPC_MoveChild, 27, ++/*149042*/ OPC_CheckInteger, 1, ++/*149044*/ OPC_CheckType, MVT::i32, ++/*149046*/ OPC_MoveParent, ++/*149047*/ OPC_MoveChild, 28, ++/*149049*/ OPC_CheckInteger, 1, ++/*149051*/ OPC_CheckType, MVT::i32, ++/*149053*/ OPC_MoveParent, ++/*149054*/ OPC_MoveChild, 29, ++/*149056*/ OPC_CheckInteger, 1, ++/*149058*/ OPC_CheckType, MVT::i32, ++/*149060*/ OPC_MoveParent, ++/*149061*/ OPC_MoveChild, 30, ++/*149063*/ OPC_CheckInteger, 1, ++/*149065*/ OPC_CheckType, MVT::i32, ++/*149067*/ OPC_MoveParent, ++/*149068*/ OPC_MoveChild, 31, ++/*149070*/ OPC_CheckInteger, 1, ++/*149072*/ OPC_CheckType, MVT::i32, ++/*149074*/ OPC_MoveParent, ++/*149075*/ OPC_CheckType, MVT::v32i8, ++/*149077*/ OPC_MoveParent, ++/*149078*/ OPC_CheckType, MVT::v32i8, ++/*149080*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*149082*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b)), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*149090*/ /*Scope*/ 15|128,5/*655*/, /*->149747*/ ++/*149092*/ OPC_CheckChild0Same, 0, ++/*149094*/ OPC_MoveChild1, ++/*149095*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*149098*/ OPC_CheckChild0Integer, 1, ++/*149100*/ OPC_CheckChild0Type, MVT::i32, ++/*149102*/ OPC_CheckChild1Integer, 1, ++/*149104*/ OPC_CheckChild1Type, MVT::i32, ++/*149106*/ OPC_CheckChild2Integer, 1, ++/*149108*/ OPC_CheckChild2Type, MVT::i32, ++/*149110*/ OPC_CheckChild3Integer, 1, ++/*149112*/ OPC_CheckChild3Type, MVT::i32, ++/*149114*/ OPC_CheckChild4Integer, 1, ++/*149116*/ OPC_CheckChild4Type, MVT::i32, ++/*149118*/ OPC_MoveChild5, ++/*149119*/ OPC_CheckInteger, 1, ++/*149121*/ OPC_CheckType, MVT::i32, ++/*149123*/ OPC_MoveParent, ++/*149124*/ OPC_MoveChild6, ++/*149125*/ OPC_CheckInteger, 1, ++/*149127*/ OPC_CheckType, MVT::i32, ++/*149129*/ OPC_MoveParent, ++/*149130*/ OPC_MoveChild7, ++/*149131*/ OPC_CheckInteger, 1, ++/*149133*/ OPC_CheckType, MVT::i32, ++/*149135*/ OPC_MoveParent, ++/*149136*/ OPC_MoveChild, 8, ++/*149138*/ OPC_CheckInteger, 1, ++/*149140*/ OPC_CheckType, MVT::i32, ++/*149142*/ OPC_MoveParent, ++/*149143*/ OPC_MoveChild, 9, ++/*149145*/ OPC_CheckInteger, 1, ++/*149147*/ OPC_CheckType, MVT::i32, ++/*149149*/ OPC_MoveParent, ++/*149150*/ OPC_MoveChild, 10, ++/*149152*/ OPC_CheckInteger, 1, ++/*149154*/ OPC_CheckType, MVT::i32, ++/*149156*/ OPC_MoveParent, ++/*149157*/ OPC_MoveChild, 11, ++/*149159*/ OPC_CheckInteger, 1, ++/*149161*/ OPC_CheckType, MVT::i32, ++/*149163*/ OPC_MoveParent, ++/*149164*/ OPC_MoveChild, 12, ++/*149166*/ OPC_CheckInteger, 1, ++/*149168*/ OPC_CheckType, MVT::i32, ++/*149170*/ OPC_MoveParent, ++/*149171*/ OPC_MoveChild, 13, ++/*149173*/ OPC_CheckInteger, 1, ++/*149175*/ OPC_CheckType, MVT::i32, ++/*149177*/ OPC_MoveParent, ++/*149178*/ OPC_MoveChild, 14, ++/*149180*/ OPC_CheckInteger, 1, ++/*149182*/ OPC_CheckType, MVT::i32, ++/*149184*/ OPC_MoveParent, ++/*149185*/ OPC_MoveChild, 15, ++/*149187*/ OPC_CheckInteger, 1, ++/*149189*/ OPC_CheckType, MVT::i32, ++/*149191*/ OPC_MoveParent, ++/*149192*/ OPC_MoveChild, 16, ++/*149194*/ OPC_CheckInteger, 1, ++/*149196*/ OPC_CheckType, MVT::i32, ++/*149198*/ OPC_MoveParent, ++/*149199*/ OPC_MoveChild, 17, ++/*149201*/ OPC_CheckInteger, 1, ++/*149203*/ OPC_CheckType, MVT::i32, ++/*149205*/ OPC_MoveParent, ++/*149206*/ OPC_MoveChild, 18, ++/*149208*/ OPC_CheckInteger, 1, ++/*149210*/ OPC_CheckType, MVT::i32, ++/*149212*/ OPC_MoveParent, ++/*149213*/ OPC_MoveChild, 19, ++/*149215*/ OPC_CheckInteger, 1, ++/*149217*/ OPC_CheckType, MVT::i32, ++/*149219*/ OPC_MoveParent, ++/*149220*/ OPC_MoveChild, 20, ++/*149222*/ OPC_CheckInteger, 1, ++/*149224*/ OPC_CheckType, MVT::i32, ++/*149226*/ OPC_MoveParent, ++/*149227*/ OPC_MoveChild, 21, ++/*149229*/ OPC_CheckInteger, 1, ++/*149231*/ OPC_CheckType, MVT::i32, ++/*149233*/ OPC_MoveParent, ++/*149234*/ OPC_MoveChild, 22, ++/*149236*/ OPC_CheckInteger, 1, ++/*149238*/ OPC_CheckType, MVT::i32, ++/*149240*/ OPC_MoveParent, ++/*149241*/ OPC_MoveChild, 23, ++/*149243*/ OPC_CheckInteger, 1, ++/*149245*/ OPC_CheckType, MVT::i32, ++/*149247*/ OPC_MoveParent, ++/*149248*/ OPC_MoveChild, 24, ++/*149250*/ OPC_CheckInteger, 1, ++/*149252*/ OPC_CheckType, MVT::i32, ++/*149254*/ OPC_MoveParent, ++/*149255*/ OPC_MoveChild, 25, ++/*149257*/ OPC_CheckInteger, 1, ++/*149259*/ OPC_CheckType, MVT::i32, ++/*149261*/ OPC_MoveParent, ++/*149262*/ OPC_MoveChild, 26, ++/*149264*/ OPC_CheckInteger, 1, ++/*149266*/ OPC_CheckType, MVT::i32, ++/*149268*/ OPC_MoveParent, ++/*149269*/ OPC_MoveChild, 27, ++/*149271*/ OPC_CheckInteger, 1, ++/*149273*/ OPC_CheckType, MVT::i32, ++/*149275*/ OPC_MoveParent, ++/*149276*/ OPC_MoveChild, 28, ++/*149278*/ OPC_CheckInteger, 1, ++/*149280*/ OPC_CheckType, MVT::i32, ++/*149282*/ OPC_MoveParent, ++/*149283*/ OPC_MoveChild, 29, ++/*149285*/ OPC_CheckInteger, 1, ++/*149287*/ OPC_CheckType, MVT::i32, ++/*149289*/ OPC_MoveParent, ++/*149290*/ OPC_MoveChild, 30, ++/*149292*/ OPC_CheckInteger, 1, ++/*149294*/ OPC_CheckType, MVT::i32, ++/*149296*/ OPC_MoveParent, ++/*149297*/ OPC_MoveChild, 31, ++/*149299*/ OPC_CheckInteger, 1, ++/*149301*/ OPC_CheckType, MVT::i32, ++/*149303*/ OPC_MoveParent, ++/*149304*/ OPC_MoveParent, ++/*149305*/ OPC_MoveParent, ++/*149306*/ OPC_MoveParent, ++/*149307*/ OPC_MoveChild1, ++/*149308*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*149311*/ OPC_CheckChild0Integer, 7, ++/*149313*/ OPC_CheckChild0Type, MVT::i32, ++/*149315*/ OPC_CheckChild1Integer, 7, ++/*149317*/ OPC_CheckChild1Type, MVT::i32, ++/*149319*/ OPC_CheckChild2Integer, 7, ++/*149321*/ OPC_CheckChild2Type, MVT::i32, ++/*149323*/ OPC_CheckChild3Integer, 7, ++/*149325*/ OPC_CheckChild3Type, MVT::i32, ++/*149327*/ OPC_CheckChild4Integer, 7, ++/*149329*/ OPC_CheckChild4Type, MVT::i32, ++/*149331*/ OPC_MoveChild5, ++/*149332*/ OPC_CheckInteger, 7, ++/*149334*/ OPC_CheckType, MVT::i32, ++/*149336*/ OPC_MoveParent, ++/*149337*/ OPC_MoveChild6, ++/*149338*/ OPC_CheckInteger, 7, ++/*149340*/ OPC_CheckType, MVT::i32, ++/*149342*/ OPC_MoveParent, ++/*149343*/ OPC_MoveChild7, ++/*149344*/ OPC_CheckInteger, 7, ++/*149346*/ OPC_CheckType, MVT::i32, ++/*149348*/ OPC_MoveParent, ++/*149349*/ OPC_MoveChild, 8, ++/*149351*/ OPC_CheckInteger, 7, ++/*149353*/ OPC_CheckType, MVT::i32, ++/*149355*/ OPC_MoveParent, ++/*149356*/ OPC_MoveChild, 9, ++/*149358*/ OPC_CheckInteger, 7, ++/*149360*/ OPC_CheckType, MVT::i32, ++/*149362*/ OPC_MoveParent, ++/*149363*/ OPC_MoveChild, 10, ++/*149365*/ OPC_CheckInteger, 7, ++/*149367*/ OPC_CheckType, MVT::i32, ++/*149369*/ OPC_MoveParent, ++/*149370*/ OPC_MoveChild, 11, ++/*149372*/ OPC_CheckInteger, 7, ++/*149374*/ OPC_CheckType, MVT::i32, ++/*149376*/ OPC_MoveParent, ++/*149377*/ OPC_MoveChild, 12, ++/*149379*/ OPC_CheckInteger, 7, ++/*149381*/ OPC_CheckType, MVT::i32, ++/*149383*/ OPC_MoveParent, ++/*149384*/ OPC_MoveChild, 13, ++/*149386*/ OPC_CheckInteger, 7, ++/*149388*/ OPC_CheckType, MVT::i32, ++/*149390*/ OPC_MoveParent, ++/*149391*/ OPC_MoveChild, 14, ++/*149393*/ OPC_CheckInteger, 7, ++/*149395*/ OPC_CheckType, MVT::i32, ++/*149397*/ OPC_MoveParent, ++/*149398*/ OPC_MoveChild, 15, ++/*149400*/ OPC_CheckInteger, 7, ++/*149402*/ OPC_CheckType, MVT::i32, ++/*149404*/ OPC_MoveParent, ++/*149405*/ OPC_MoveChild, 16, ++/*149407*/ OPC_CheckInteger, 7, ++/*149409*/ OPC_CheckType, MVT::i32, ++/*149411*/ OPC_MoveParent, ++/*149412*/ OPC_MoveChild, 17, ++/*149414*/ OPC_CheckInteger, 7, ++/*149416*/ OPC_CheckType, MVT::i32, ++/*149418*/ OPC_MoveParent, ++/*149419*/ OPC_MoveChild, 18, ++/*149421*/ OPC_CheckInteger, 7, ++/*149423*/ OPC_CheckType, MVT::i32, ++/*149425*/ OPC_MoveParent, ++/*149426*/ OPC_MoveChild, 19, ++/*149428*/ OPC_CheckInteger, 7, ++/*149430*/ OPC_CheckType, MVT::i32, ++/*149432*/ OPC_MoveParent, ++/*149433*/ OPC_MoveChild, 20, ++/*149435*/ OPC_CheckInteger, 7, ++/*149437*/ OPC_CheckType, MVT::i32, ++/*149439*/ OPC_MoveParent, ++/*149440*/ OPC_MoveChild, 21, ++/*149442*/ OPC_CheckInteger, 7, ++/*149444*/ OPC_CheckType, MVT::i32, ++/*149446*/ OPC_MoveParent, ++/*149447*/ OPC_MoveChild, 22, ++/*149449*/ OPC_CheckInteger, 7, ++/*149451*/ OPC_CheckType, MVT::i32, ++/*149453*/ OPC_MoveParent, ++/*149454*/ OPC_MoveChild, 23, ++/*149456*/ OPC_CheckInteger, 7, ++/*149458*/ OPC_CheckType, MVT::i32, ++/*149460*/ OPC_MoveParent, ++/*149461*/ OPC_MoveChild, 24, ++/*149463*/ OPC_CheckInteger, 7, ++/*149465*/ OPC_CheckType, MVT::i32, ++/*149467*/ OPC_MoveParent, ++/*149468*/ OPC_MoveChild, 25, ++/*149470*/ OPC_CheckInteger, 7, ++/*149472*/ OPC_CheckType, MVT::i32, ++/*149474*/ OPC_MoveParent, ++/*149475*/ OPC_MoveChild, 26, ++/*149477*/ OPC_CheckInteger, 7, ++/*149479*/ OPC_CheckType, MVT::i32, ++/*149481*/ OPC_MoveParent, ++/*149482*/ OPC_MoveChild, 27, ++/*149484*/ OPC_CheckInteger, 7, ++/*149486*/ OPC_CheckType, MVT::i32, ++/*149488*/ OPC_MoveParent, ++/*149489*/ OPC_MoveChild, 28, ++/*149491*/ OPC_CheckInteger, 7, ++/*149493*/ OPC_CheckType, MVT::i32, ++/*149495*/ OPC_MoveParent, ++/*149496*/ OPC_MoveChild, 29, ++/*149498*/ OPC_CheckInteger, 7, ++/*149500*/ OPC_CheckType, MVT::i32, ++/*149502*/ OPC_MoveParent, ++/*149503*/ OPC_MoveChild, 30, ++/*149505*/ OPC_CheckInteger, 7, ++/*149507*/ OPC_CheckType, MVT::i32, ++/*149509*/ OPC_MoveParent, ++/*149510*/ OPC_MoveChild, 31, ++/*149512*/ OPC_CheckInteger, 7, ++/*149514*/ OPC_CheckType, MVT::i32, ++/*149516*/ OPC_MoveParent, ++/*149517*/ OPC_CheckType, MVT::v32i8, ++/*149519*/ OPC_MoveParent, ++/*149520*/ OPC_MoveParent, ++/*149521*/ OPC_MoveParent, ++/*149522*/ OPC_MoveChild1, ++/*149523*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*149526*/ OPC_CheckChild0Integer, 1, ++/*149528*/ OPC_CheckChild0Type, MVT::i32, ++/*149530*/ OPC_CheckChild1Integer, 1, ++/*149532*/ OPC_CheckChild1Type, MVT::i32, ++/*149534*/ OPC_CheckChild2Integer, 1, ++/*149536*/ OPC_CheckChild2Type, MVT::i32, ++/*149538*/ OPC_CheckChild3Integer, 1, ++/*149540*/ OPC_CheckChild3Type, MVT::i32, ++/*149542*/ OPC_CheckChild4Integer, 1, ++/*149544*/ OPC_CheckChild4Type, MVT::i32, ++/*149546*/ OPC_MoveChild5, ++/*149547*/ OPC_CheckInteger, 1, ++/*149549*/ OPC_CheckType, MVT::i32, ++/*149551*/ OPC_MoveParent, ++/*149552*/ OPC_MoveChild6, ++/*149553*/ OPC_CheckInteger, 1, ++/*149555*/ OPC_CheckType, MVT::i32, ++/*149557*/ OPC_MoveParent, ++/*149558*/ OPC_MoveChild7, ++/*149559*/ OPC_CheckInteger, 1, ++/*149561*/ OPC_CheckType, MVT::i32, ++/*149563*/ OPC_MoveParent, ++/*149564*/ OPC_MoveChild, 8, ++/*149566*/ OPC_CheckInteger, 1, ++/*149568*/ OPC_CheckType, MVT::i32, ++/*149570*/ OPC_MoveParent, ++/*149571*/ OPC_MoveChild, 9, ++/*149573*/ OPC_CheckInteger, 1, ++/*149575*/ OPC_CheckType, MVT::i32, ++/*149577*/ OPC_MoveParent, ++/*149578*/ OPC_MoveChild, 10, ++/*149580*/ OPC_CheckInteger, 1, ++/*149582*/ OPC_CheckType, MVT::i32, ++/*149584*/ OPC_MoveParent, ++/*149585*/ OPC_MoveChild, 11, ++/*149587*/ OPC_CheckInteger, 1, ++/*149589*/ OPC_CheckType, MVT::i32, ++/*149591*/ OPC_MoveParent, ++/*149592*/ OPC_MoveChild, 12, ++/*149594*/ OPC_CheckInteger, 1, ++/*149596*/ OPC_CheckType, MVT::i32, ++/*149598*/ OPC_MoveParent, ++/*149599*/ OPC_MoveChild, 13, ++/*149601*/ OPC_CheckInteger, 1, ++/*149603*/ OPC_CheckType, MVT::i32, ++/*149605*/ OPC_MoveParent, ++/*149606*/ OPC_MoveChild, 14, ++/*149608*/ OPC_CheckInteger, 1, ++/*149610*/ OPC_CheckType, MVT::i32, ++/*149612*/ OPC_MoveParent, ++/*149613*/ OPC_MoveChild, 15, ++/*149615*/ OPC_CheckInteger, 1, ++/*149617*/ OPC_CheckType, MVT::i32, ++/*149619*/ OPC_MoveParent, ++/*149620*/ OPC_MoveChild, 16, ++/*149622*/ OPC_CheckInteger, 1, ++/*149624*/ OPC_CheckType, MVT::i32, ++/*149626*/ OPC_MoveParent, ++/*149627*/ OPC_MoveChild, 17, ++/*149629*/ OPC_CheckInteger, 1, ++/*149631*/ OPC_CheckType, MVT::i32, ++/*149633*/ OPC_MoveParent, ++/*149634*/ OPC_MoveChild, 18, ++/*149636*/ OPC_CheckInteger, 1, ++/*149638*/ OPC_CheckType, MVT::i32, ++/*149640*/ OPC_MoveParent, ++/*149641*/ OPC_MoveChild, 19, ++/*149643*/ OPC_CheckInteger, 1, ++/*149645*/ OPC_CheckType, MVT::i32, ++/*149647*/ OPC_MoveParent, ++/*149648*/ OPC_MoveChild, 20, ++/*149650*/ OPC_CheckInteger, 1, ++/*149652*/ OPC_CheckType, MVT::i32, ++/*149654*/ OPC_MoveParent, ++/*149655*/ OPC_MoveChild, 21, ++/*149657*/ OPC_CheckInteger, 1, ++/*149659*/ OPC_CheckType, MVT::i32, ++/*149661*/ OPC_MoveParent, ++/*149662*/ OPC_MoveChild, 22, ++/*149664*/ OPC_CheckInteger, 1, ++/*149666*/ OPC_CheckType, MVT::i32, ++/*149668*/ OPC_MoveParent, ++/*149669*/ OPC_MoveChild, 23, ++/*149671*/ OPC_CheckInteger, 1, ++/*149673*/ OPC_CheckType, MVT::i32, ++/*149675*/ OPC_MoveParent, ++/*149676*/ OPC_MoveChild, 24, ++/*149678*/ OPC_CheckInteger, 1, ++/*149680*/ OPC_CheckType, MVT::i32, ++/*149682*/ OPC_MoveParent, ++/*149683*/ OPC_MoveChild, 25, ++/*149685*/ OPC_CheckInteger, 1, ++/*149687*/ OPC_CheckType, MVT::i32, ++/*149689*/ OPC_MoveParent, ++/*149690*/ OPC_MoveChild, 26, ++/*149692*/ OPC_CheckInteger, 1, ++/*149694*/ OPC_CheckType, MVT::i32, ++/*149696*/ OPC_MoveParent, ++/*149697*/ OPC_MoveChild, 27, ++/*149699*/ OPC_CheckInteger, 1, ++/*149701*/ OPC_CheckType, MVT::i32, ++/*149703*/ OPC_MoveParent, ++/*149704*/ OPC_MoveChild, 28, ++/*149706*/ OPC_CheckInteger, 1, ++/*149708*/ OPC_CheckType, MVT::i32, ++/*149710*/ OPC_MoveParent, ++/*149711*/ OPC_MoveChild, 29, ++/*149713*/ OPC_CheckInteger, 1, ++/*149715*/ OPC_CheckType, MVT::i32, ++/*149717*/ OPC_MoveParent, ++/*149718*/ OPC_MoveChild, 30, ++/*149720*/ OPC_CheckInteger, 1, ++/*149722*/ OPC_CheckType, MVT::i32, ++/*149724*/ OPC_MoveParent, ++/*149725*/ OPC_MoveChild, 31, ++/*149727*/ OPC_CheckInteger, 1, ++/*149729*/ OPC_CheckType, MVT::i32, ++/*149731*/ OPC_MoveParent, ++/*149732*/ OPC_CheckType, MVT::v32i8, ++/*149734*/ OPC_MoveParent, ++/*149735*/ OPC_CheckType, MVT::v32i8, ++/*149737*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*149739*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b)), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*149747*/ 0, /*End of Scope*/ ++/*149748*/ /*Scope*/ 42|128,10/*1322*/, /*->151072*/ ++/*149750*/ OPC_CheckChild0Same, 0, ++/*149752*/ OPC_MoveChild1, ++/*149753*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*149756*/ OPC_Scope, 15|128,5/*655*/, /*->150414*/ // 2 children in Scope ++/*149759*/ OPC_MoveChild0, ++/*149760*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*149763*/ OPC_CheckChild0Integer, 1, ++/*149765*/ OPC_CheckChild0Type, MVT::i32, ++/*149767*/ OPC_CheckChild1Integer, 1, ++/*149769*/ OPC_CheckChild1Type, MVT::i32, ++/*149771*/ OPC_CheckChild2Integer, 1, ++/*149773*/ OPC_CheckChild2Type, MVT::i32, ++/*149775*/ OPC_CheckChild3Integer, 1, ++/*149777*/ OPC_CheckChild3Type, MVT::i32, ++/*149779*/ OPC_CheckChild4Integer, 1, ++/*149781*/ OPC_CheckChild4Type, MVT::i32, ++/*149783*/ OPC_MoveChild5, ++/*149784*/ OPC_CheckInteger, 1, ++/*149786*/ OPC_CheckType, MVT::i32, ++/*149788*/ OPC_MoveParent, ++/*149789*/ OPC_MoveChild6, ++/*149790*/ OPC_CheckInteger, 1, ++/*149792*/ OPC_CheckType, MVT::i32, ++/*149794*/ OPC_MoveParent, ++/*149795*/ OPC_MoveChild7, ++/*149796*/ OPC_CheckInteger, 1, ++/*149798*/ OPC_CheckType, MVT::i32, ++/*149800*/ OPC_MoveParent, ++/*149801*/ OPC_MoveChild, 8, ++/*149803*/ OPC_CheckInteger, 1, ++/*149805*/ OPC_CheckType, MVT::i32, ++/*149807*/ OPC_MoveParent, ++/*149808*/ OPC_MoveChild, 9, ++/*149810*/ OPC_CheckInteger, 1, ++/*149812*/ OPC_CheckType, MVT::i32, ++/*149814*/ OPC_MoveParent, ++/*149815*/ OPC_MoveChild, 10, ++/*149817*/ OPC_CheckInteger, 1, ++/*149819*/ OPC_CheckType, MVT::i32, ++/*149821*/ OPC_MoveParent, ++/*149822*/ OPC_MoveChild, 11, ++/*149824*/ OPC_CheckInteger, 1, ++/*149826*/ OPC_CheckType, MVT::i32, ++/*149828*/ OPC_MoveParent, ++/*149829*/ OPC_MoveChild, 12, ++/*149831*/ OPC_CheckInteger, 1, ++/*149833*/ OPC_CheckType, MVT::i32, ++/*149835*/ OPC_MoveParent, ++/*149836*/ OPC_MoveChild, 13, ++/*149838*/ OPC_CheckInteger, 1, ++/*149840*/ OPC_CheckType, MVT::i32, ++/*149842*/ OPC_MoveParent, ++/*149843*/ OPC_MoveChild, 14, ++/*149845*/ OPC_CheckInteger, 1, ++/*149847*/ OPC_CheckType, MVT::i32, ++/*149849*/ OPC_MoveParent, ++/*149850*/ OPC_MoveChild, 15, ++/*149852*/ OPC_CheckInteger, 1, ++/*149854*/ OPC_CheckType, MVT::i32, ++/*149856*/ OPC_MoveParent, ++/*149857*/ OPC_MoveChild, 16, ++/*149859*/ OPC_CheckInteger, 1, ++/*149861*/ OPC_CheckType, MVT::i32, ++/*149863*/ OPC_MoveParent, ++/*149864*/ OPC_MoveChild, 17, ++/*149866*/ OPC_CheckInteger, 1, ++/*149868*/ OPC_CheckType, MVT::i32, ++/*149870*/ OPC_MoveParent, ++/*149871*/ OPC_MoveChild, 18, ++/*149873*/ OPC_CheckInteger, 1, ++/*149875*/ OPC_CheckType, MVT::i32, ++/*149877*/ OPC_MoveParent, ++/*149878*/ OPC_MoveChild, 19, ++/*149880*/ OPC_CheckInteger, 1, ++/*149882*/ OPC_CheckType, MVT::i32, ++/*149884*/ OPC_MoveParent, ++/*149885*/ OPC_MoveChild, 20, ++/*149887*/ OPC_CheckInteger, 1, ++/*149889*/ OPC_CheckType, MVT::i32, ++/*149891*/ OPC_MoveParent, ++/*149892*/ OPC_MoveChild, 21, ++/*149894*/ OPC_CheckInteger, 1, ++/*149896*/ OPC_CheckType, MVT::i32, ++/*149898*/ OPC_MoveParent, ++/*149899*/ OPC_MoveChild, 22, ++/*149901*/ OPC_CheckInteger, 1, ++/*149903*/ OPC_CheckType, MVT::i32, ++/*149905*/ OPC_MoveParent, ++/*149906*/ OPC_MoveChild, 23, ++/*149908*/ OPC_CheckInteger, 1, ++/*149910*/ OPC_CheckType, MVT::i32, ++/*149912*/ OPC_MoveParent, ++/*149913*/ OPC_MoveChild, 24, ++/*149915*/ OPC_CheckInteger, 1, ++/*149917*/ OPC_CheckType, MVT::i32, ++/*149919*/ OPC_MoveParent, ++/*149920*/ OPC_MoveChild, 25, ++/*149922*/ OPC_CheckInteger, 1, ++/*149924*/ OPC_CheckType, MVT::i32, ++/*149926*/ OPC_MoveParent, ++/*149927*/ OPC_MoveChild, 26, ++/*149929*/ OPC_CheckInteger, 1, ++/*149931*/ OPC_CheckType, MVT::i32, ++/*149933*/ OPC_MoveParent, ++/*149934*/ OPC_MoveChild, 27, ++/*149936*/ OPC_CheckInteger, 1, ++/*149938*/ OPC_CheckType, MVT::i32, ++/*149940*/ OPC_MoveParent, ++/*149941*/ OPC_MoveChild, 28, ++/*149943*/ OPC_CheckInteger, 1, ++/*149945*/ OPC_CheckType, MVT::i32, ++/*149947*/ OPC_MoveParent, ++/*149948*/ OPC_MoveChild, 29, ++/*149950*/ OPC_CheckInteger, 1, ++/*149952*/ OPC_CheckType, MVT::i32, ++/*149954*/ OPC_MoveParent, ++/*149955*/ OPC_MoveChild, 30, ++/*149957*/ OPC_CheckInteger, 1, ++/*149959*/ OPC_CheckType, MVT::i32, ++/*149961*/ OPC_MoveParent, ++/*149962*/ OPC_MoveChild, 31, ++/*149964*/ OPC_CheckInteger, 1, ++/*149966*/ OPC_CheckType, MVT::i32, ++/*149968*/ OPC_MoveParent, ++/*149969*/ OPC_MoveParent, ++/*149970*/ OPC_CheckChild1Same, 1, ++/*149972*/ OPC_MoveParent, ++/*149973*/ OPC_MoveParent, ++/*149974*/ OPC_MoveChild1, ++/*149975*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*149978*/ OPC_CheckChild0Integer, 7, ++/*149980*/ OPC_CheckChild0Type, MVT::i32, ++/*149982*/ OPC_CheckChild1Integer, 7, ++/*149984*/ OPC_CheckChild1Type, MVT::i32, ++/*149986*/ OPC_CheckChild2Integer, 7, ++/*149988*/ OPC_CheckChild2Type, MVT::i32, ++/*149990*/ OPC_CheckChild3Integer, 7, ++/*149992*/ OPC_CheckChild3Type, MVT::i32, ++/*149994*/ OPC_CheckChild4Integer, 7, ++/*149996*/ OPC_CheckChild4Type, MVT::i32, ++/*149998*/ OPC_MoveChild5, ++/*149999*/ OPC_CheckInteger, 7, ++/*150001*/ OPC_CheckType, MVT::i32, ++/*150003*/ OPC_MoveParent, ++/*150004*/ OPC_MoveChild6, ++/*150005*/ OPC_CheckInteger, 7, ++/*150007*/ OPC_CheckType, MVT::i32, ++/*150009*/ OPC_MoveParent, ++/*150010*/ OPC_MoveChild7, ++/*150011*/ OPC_CheckInteger, 7, ++/*150013*/ OPC_CheckType, MVT::i32, ++/*150015*/ OPC_MoveParent, ++/*150016*/ OPC_MoveChild, 8, ++/*150018*/ OPC_CheckInteger, 7, ++/*150020*/ OPC_CheckType, MVT::i32, ++/*150022*/ OPC_MoveParent, ++/*150023*/ OPC_MoveChild, 9, ++/*150025*/ OPC_CheckInteger, 7, ++/*150027*/ OPC_CheckType, MVT::i32, ++/*150029*/ OPC_MoveParent, ++/*150030*/ OPC_MoveChild, 10, ++/*150032*/ OPC_CheckInteger, 7, ++/*150034*/ OPC_CheckType, MVT::i32, ++/*150036*/ OPC_MoveParent, ++/*150037*/ OPC_MoveChild, 11, ++/*150039*/ OPC_CheckInteger, 7, ++/*150041*/ OPC_CheckType, MVT::i32, ++/*150043*/ OPC_MoveParent, ++/*150044*/ OPC_MoveChild, 12, ++/*150046*/ OPC_CheckInteger, 7, ++/*150048*/ OPC_CheckType, MVT::i32, ++/*150050*/ OPC_MoveParent, ++/*150051*/ OPC_MoveChild, 13, ++/*150053*/ OPC_CheckInteger, 7, ++/*150055*/ OPC_CheckType, MVT::i32, ++/*150057*/ OPC_MoveParent, ++/*150058*/ OPC_MoveChild, 14, ++/*150060*/ OPC_CheckInteger, 7, ++/*150062*/ OPC_CheckType, MVT::i32, ++/*150064*/ OPC_MoveParent, ++/*150065*/ OPC_MoveChild, 15, ++/*150067*/ OPC_CheckInteger, 7, ++/*150069*/ OPC_CheckType, MVT::i32, ++/*150071*/ OPC_MoveParent, ++/*150072*/ OPC_MoveChild, 16, ++/*150074*/ OPC_CheckInteger, 7, ++/*150076*/ OPC_CheckType, MVT::i32, ++/*150078*/ OPC_MoveParent, ++/*150079*/ OPC_MoveChild, 17, ++/*150081*/ OPC_CheckInteger, 7, ++/*150083*/ OPC_CheckType, MVT::i32, ++/*150085*/ OPC_MoveParent, ++/*150086*/ OPC_MoveChild, 18, ++/*150088*/ OPC_CheckInteger, 7, ++/*150090*/ OPC_CheckType, MVT::i32, ++/*150092*/ OPC_MoveParent, ++/*150093*/ OPC_MoveChild, 19, ++/*150095*/ OPC_CheckInteger, 7, ++/*150097*/ OPC_CheckType, MVT::i32, ++/*150099*/ OPC_MoveParent, ++/*150100*/ OPC_MoveChild, 20, ++/*150102*/ OPC_CheckInteger, 7, ++/*150104*/ OPC_CheckType, MVT::i32, ++/*150106*/ OPC_MoveParent, ++/*150107*/ OPC_MoveChild, 21, ++/*150109*/ OPC_CheckInteger, 7, ++/*150111*/ OPC_CheckType, MVT::i32, ++/*150113*/ OPC_MoveParent, ++/*150114*/ OPC_MoveChild, 22, ++/*150116*/ OPC_CheckInteger, 7, ++/*150118*/ OPC_CheckType, MVT::i32, ++/*150120*/ OPC_MoveParent, ++/*150121*/ OPC_MoveChild, 23, ++/*150123*/ OPC_CheckInteger, 7, ++/*150125*/ OPC_CheckType, MVT::i32, ++/*150127*/ OPC_MoveParent, ++/*150128*/ OPC_MoveChild, 24, ++/*150130*/ OPC_CheckInteger, 7, ++/*150132*/ OPC_CheckType, MVT::i32, ++/*150134*/ OPC_MoveParent, ++/*150135*/ OPC_MoveChild, 25, ++/*150137*/ OPC_CheckInteger, 7, ++/*150139*/ OPC_CheckType, MVT::i32, ++/*150141*/ OPC_MoveParent, ++/*150142*/ OPC_MoveChild, 26, ++/*150144*/ OPC_CheckInteger, 7, ++/*150146*/ OPC_CheckType, MVT::i32, ++/*150148*/ OPC_MoveParent, ++/*150149*/ OPC_MoveChild, 27, ++/*150151*/ OPC_CheckInteger, 7, ++/*150153*/ OPC_CheckType, MVT::i32, ++/*150155*/ OPC_MoveParent, ++/*150156*/ OPC_MoveChild, 28, ++/*150158*/ OPC_CheckInteger, 7, ++/*150160*/ OPC_CheckType, MVT::i32, ++/*150162*/ OPC_MoveParent, ++/*150163*/ OPC_MoveChild, 29, ++/*150165*/ OPC_CheckInteger, 7, ++/*150167*/ OPC_CheckType, MVT::i32, ++/*150169*/ OPC_MoveParent, ++/*150170*/ OPC_MoveChild, 30, ++/*150172*/ OPC_CheckInteger, 7, ++/*150174*/ OPC_CheckType, MVT::i32, ++/*150176*/ OPC_MoveParent, ++/*150177*/ OPC_MoveChild, 31, ++/*150179*/ OPC_CheckInteger, 7, ++/*150181*/ OPC_CheckType, MVT::i32, ++/*150183*/ OPC_MoveParent, ++/*150184*/ OPC_CheckType, MVT::v32i8, ++/*150186*/ OPC_MoveParent, ++/*150187*/ OPC_MoveParent, ++/*150188*/ OPC_MoveParent, ++/*150189*/ OPC_MoveChild1, ++/*150190*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*150193*/ OPC_CheckChild0Integer, 1, ++/*150195*/ OPC_CheckChild0Type, MVT::i32, ++/*150197*/ OPC_CheckChild1Integer, 1, ++/*150199*/ OPC_CheckChild1Type, MVT::i32, ++/*150201*/ OPC_CheckChild2Integer, 1, ++/*150203*/ OPC_CheckChild2Type, MVT::i32, ++/*150205*/ OPC_CheckChild3Integer, 1, ++/*150207*/ OPC_CheckChild3Type, MVT::i32, ++/*150209*/ OPC_CheckChild4Integer, 1, ++/*150211*/ OPC_CheckChild4Type, MVT::i32, ++/*150213*/ OPC_MoveChild5, ++/*150214*/ OPC_CheckInteger, 1, ++/*150216*/ OPC_CheckType, MVT::i32, ++/*150218*/ OPC_MoveParent, ++/*150219*/ OPC_MoveChild6, ++/*150220*/ OPC_CheckInteger, 1, ++/*150222*/ OPC_CheckType, MVT::i32, ++/*150224*/ OPC_MoveParent, ++/*150225*/ OPC_MoveChild7, ++/*150226*/ OPC_CheckInteger, 1, ++/*150228*/ OPC_CheckType, MVT::i32, ++/*150230*/ OPC_MoveParent, ++/*150231*/ OPC_MoveChild, 8, ++/*150233*/ OPC_CheckInteger, 1, ++/*150235*/ OPC_CheckType, MVT::i32, ++/*150237*/ OPC_MoveParent, ++/*150238*/ OPC_MoveChild, 9, ++/*150240*/ OPC_CheckInteger, 1, ++/*150242*/ OPC_CheckType, MVT::i32, ++/*150244*/ OPC_MoveParent, ++/*150245*/ OPC_MoveChild, 10, ++/*150247*/ OPC_CheckInteger, 1, ++/*150249*/ OPC_CheckType, MVT::i32, ++/*150251*/ OPC_MoveParent, ++/*150252*/ OPC_MoveChild, 11, ++/*150254*/ OPC_CheckInteger, 1, ++/*150256*/ OPC_CheckType, MVT::i32, ++/*150258*/ OPC_MoveParent, ++/*150259*/ OPC_MoveChild, 12, ++/*150261*/ OPC_CheckInteger, 1, ++/*150263*/ OPC_CheckType, MVT::i32, ++/*150265*/ OPC_MoveParent, ++/*150266*/ OPC_MoveChild, 13, ++/*150268*/ OPC_CheckInteger, 1, ++/*150270*/ OPC_CheckType, MVT::i32, ++/*150272*/ OPC_MoveParent, ++/*150273*/ OPC_MoveChild, 14, ++/*150275*/ OPC_CheckInteger, 1, ++/*150277*/ OPC_CheckType, MVT::i32, ++/*150279*/ OPC_MoveParent, ++/*150280*/ OPC_MoveChild, 15, ++/*150282*/ OPC_CheckInteger, 1, ++/*150284*/ OPC_CheckType, MVT::i32, ++/*150286*/ OPC_MoveParent, ++/*150287*/ OPC_MoveChild, 16, ++/*150289*/ OPC_CheckInteger, 1, ++/*150291*/ OPC_CheckType, MVT::i32, ++/*150293*/ OPC_MoveParent, ++/*150294*/ OPC_MoveChild, 17, ++/*150296*/ OPC_CheckInteger, 1, ++/*150298*/ OPC_CheckType, MVT::i32, ++/*150300*/ OPC_MoveParent, ++/*150301*/ OPC_MoveChild, 18, ++/*150303*/ OPC_CheckInteger, 1, ++/*150305*/ OPC_CheckType, MVT::i32, ++/*150307*/ OPC_MoveParent, ++/*150308*/ OPC_MoveChild, 19, ++/*150310*/ OPC_CheckInteger, 1, ++/*150312*/ OPC_CheckType, MVT::i32, ++/*150314*/ OPC_MoveParent, ++/*150315*/ OPC_MoveChild, 20, ++/*150317*/ OPC_CheckInteger, 1, ++/*150319*/ OPC_CheckType, MVT::i32, ++/*150321*/ OPC_MoveParent, ++/*150322*/ OPC_MoveChild, 21, ++/*150324*/ OPC_CheckInteger, 1, ++/*150326*/ OPC_CheckType, MVT::i32, ++/*150328*/ OPC_MoveParent, ++/*150329*/ OPC_MoveChild, 22, ++/*150331*/ OPC_CheckInteger, 1, ++/*150333*/ OPC_CheckType, MVT::i32, ++/*150335*/ OPC_MoveParent, ++/*150336*/ OPC_MoveChild, 23, ++/*150338*/ OPC_CheckInteger, 1, ++/*150340*/ OPC_CheckType, MVT::i32, ++/*150342*/ OPC_MoveParent, ++/*150343*/ OPC_MoveChild, 24, ++/*150345*/ OPC_CheckInteger, 1, ++/*150347*/ OPC_CheckType, MVT::i32, ++/*150349*/ OPC_MoveParent, ++/*150350*/ OPC_MoveChild, 25, ++/*150352*/ OPC_CheckInteger, 1, ++/*150354*/ OPC_CheckType, MVT::i32, ++/*150356*/ OPC_MoveParent, ++/*150357*/ OPC_MoveChild, 26, ++/*150359*/ OPC_CheckInteger, 1, ++/*150361*/ OPC_CheckType, MVT::i32, ++/*150363*/ OPC_MoveParent, ++/*150364*/ OPC_MoveChild, 27, ++/*150366*/ OPC_CheckInteger, 1, ++/*150368*/ OPC_CheckType, MVT::i32, ++/*150370*/ OPC_MoveParent, ++/*150371*/ OPC_MoveChild, 28, ++/*150373*/ OPC_CheckInteger, 1, ++/*150375*/ OPC_CheckType, MVT::i32, ++/*150377*/ OPC_MoveParent, ++/*150378*/ OPC_MoveChild, 29, ++/*150380*/ OPC_CheckInteger, 1, ++/*150382*/ OPC_CheckType, MVT::i32, ++/*150384*/ OPC_MoveParent, ++/*150385*/ OPC_MoveChild, 30, ++/*150387*/ OPC_CheckInteger, 1, ++/*150389*/ OPC_CheckType, MVT::i32, ++/*150391*/ OPC_MoveParent, ++/*150392*/ OPC_MoveChild, 31, ++/*150394*/ OPC_CheckInteger, 1, ++/*150396*/ OPC_CheckType, MVT::i32, ++/*150398*/ OPC_MoveParent, ++/*150399*/ OPC_CheckType, MVT::v32i8, ++/*150401*/ OPC_MoveParent, ++/*150402*/ OPC_CheckType, MVT::v32i8, ++/*150404*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*150406*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b)), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*150414*/ /*Scope*/ 15|128,5/*655*/, /*->151071*/ ++/*150416*/ OPC_CheckChild0Same, 1, ++/*150418*/ OPC_MoveChild1, ++/*150419*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*150422*/ OPC_CheckChild0Integer, 1, ++/*150424*/ OPC_CheckChild0Type, MVT::i32, ++/*150426*/ OPC_CheckChild1Integer, 1, ++/*150428*/ OPC_CheckChild1Type, MVT::i32, ++/*150430*/ OPC_CheckChild2Integer, 1, ++/*150432*/ OPC_CheckChild2Type, MVT::i32, ++/*150434*/ OPC_CheckChild3Integer, 1, ++/*150436*/ OPC_CheckChild3Type, MVT::i32, ++/*150438*/ OPC_CheckChild4Integer, 1, ++/*150440*/ OPC_CheckChild4Type, MVT::i32, ++/*150442*/ OPC_MoveChild5, ++/*150443*/ OPC_CheckInteger, 1, ++/*150445*/ OPC_CheckType, MVT::i32, ++/*150447*/ OPC_MoveParent, ++/*150448*/ OPC_MoveChild6, ++/*150449*/ OPC_CheckInteger, 1, ++/*150451*/ OPC_CheckType, MVT::i32, ++/*150453*/ OPC_MoveParent, ++/*150454*/ OPC_MoveChild7, ++/*150455*/ OPC_CheckInteger, 1, ++/*150457*/ OPC_CheckType, MVT::i32, ++/*150459*/ OPC_MoveParent, ++/*150460*/ OPC_MoveChild, 8, ++/*150462*/ OPC_CheckInteger, 1, ++/*150464*/ OPC_CheckType, MVT::i32, ++/*150466*/ OPC_MoveParent, ++/*150467*/ OPC_MoveChild, 9, ++/*150469*/ OPC_CheckInteger, 1, ++/*150471*/ OPC_CheckType, MVT::i32, ++/*150473*/ OPC_MoveParent, ++/*150474*/ OPC_MoveChild, 10, ++/*150476*/ OPC_CheckInteger, 1, ++/*150478*/ OPC_CheckType, MVT::i32, ++/*150480*/ OPC_MoveParent, ++/*150481*/ OPC_MoveChild, 11, ++/*150483*/ OPC_CheckInteger, 1, ++/*150485*/ OPC_CheckType, MVT::i32, ++/*150487*/ OPC_MoveParent, ++/*150488*/ OPC_MoveChild, 12, ++/*150490*/ OPC_CheckInteger, 1, ++/*150492*/ OPC_CheckType, MVT::i32, ++/*150494*/ OPC_MoveParent, ++/*150495*/ OPC_MoveChild, 13, ++/*150497*/ OPC_CheckInteger, 1, ++/*150499*/ OPC_CheckType, MVT::i32, ++/*150501*/ OPC_MoveParent, ++/*150502*/ OPC_MoveChild, 14, ++/*150504*/ OPC_CheckInteger, 1, ++/*150506*/ OPC_CheckType, MVT::i32, ++/*150508*/ OPC_MoveParent, ++/*150509*/ OPC_MoveChild, 15, ++/*150511*/ OPC_CheckInteger, 1, ++/*150513*/ OPC_CheckType, MVT::i32, ++/*150515*/ OPC_MoveParent, ++/*150516*/ OPC_MoveChild, 16, ++/*150518*/ OPC_CheckInteger, 1, ++/*150520*/ OPC_CheckType, MVT::i32, ++/*150522*/ OPC_MoveParent, ++/*150523*/ OPC_MoveChild, 17, ++/*150525*/ OPC_CheckInteger, 1, ++/*150527*/ OPC_CheckType, MVT::i32, ++/*150529*/ OPC_MoveParent, ++/*150530*/ OPC_MoveChild, 18, ++/*150532*/ OPC_CheckInteger, 1, ++/*150534*/ OPC_CheckType, MVT::i32, ++/*150536*/ OPC_MoveParent, ++/*150537*/ OPC_MoveChild, 19, ++/*150539*/ OPC_CheckInteger, 1, ++/*150541*/ OPC_CheckType, MVT::i32, ++/*150543*/ OPC_MoveParent, ++/*150544*/ OPC_MoveChild, 20, ++/*150546*/ OPC_CheckInteger, 1, ++/*150548*/ OPC_CheckType, MVT::i32, ++/*150550*/ OPC_MoveParent, ++/*150551*/ OPC_MoveChild, 21, ++/*150553*/ OPC_CheckInteger, 1, ++/*150555*/ OPC_CheckType, MVT::i32, ++/*150557*/ OPC_MoveParent, ++/*150558*/ OPC_MoveChild, 22, ++/*150560*/ OPC_CheckInteger, 1, ++/*150562*/ OPC_CheckType, MVT::i32, ++/*150564*/ OPC_MoveParent, ++/*150565*/ OPC_MoveChild, 23, ++/*150567*/ OPC_CheckInteger, 1, ++/*150569*/ OPC_CheckType, MVT::i32, ++/*150571*/ OPC_MoveParent, ++/*150572*/ OPC_MoveChild, 24, ++/*150574*/ OPC_CheckInteger, 1, ++/*150576*/ OPC_CheckType, MVT::i32, ++/*150578*/ OPC_MoveParent, ++/*150579*/ OPC_MoveChild, 25, ++/*150581*/ OPC_CheckInteger, 1, ++/*150583*/ OPC_CheckType, MVT::i32, ++/*150585*/ OPC_MoveParent, ++/*150586*/ OPC_MoveChild, 26, ++/*150588*/ OPC_CheckInteger, 1, ++/*150590*/ OPC_CheckType, MVT::i32, ++/*150592*/ OPC_MoveParent, ++/*150593*/ OPC_MoveChild, 27, ++/*150595*/ OPC_CheckInteger, 1, ++/*150597*/ OPC_CheckType, MVT::i32, ++/*150599*/ OPC_MoveParent, ++/*150600*/ OPC_MoveChild, 28, ++/*150602*/ OPC_CheckInteger, 1, ++/*150604*/ OPC_CheckType, MVT::i32, ++/*150606*/ OPC_MoveParent, ++/*150607*/ OPC_MoveChild, 29, ++/*150609*/ OPC_CheckInteger, 1, ++/*150611*/ OPC_CheckType, MVT::i32, ++/*150613*/ OPC_MoveParent, ++/*150614*/ OPC_MoveChild, 30, ++/*150616*/ OPC_CheckInteger, 1, ++/*150618*/ OPC_CheckType, MVT::i32, ++/*150620*/ OPC_MoveParent, ++/*150621*/ OPC_MoveChild, 31, ++/*150623*/ OPC_CheckInteger, 1, ++/*150625*/ OPC_CheckType, MVT::i32, ++/*150627*/ OPC_MoveParent, ++/*150628*/ OPC_MoveParent, ++/*150629*/ OPC_MoveParent, ++/*150630*/ OPC_MoveParent, ++/*150631*/ OPC_MoveChild1, ++/*150632*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*150635*/ OPC_CheckChild0Integer, 7, ++/*150637*/ OPC_CheckChild0Type, MVT::i32, ++/*150639*/ OPC_CheckChild1Integer, 7, ++/*150641*/ OPC_CheckChild1Type, MVT::i32, ++/*150643*/ OPC_CheckChild2Integer, 7, ++/*150645*/ OPC_CheckChild2Type, MVT::i32, ++/*150647*/ OPC_CheckChild3Integer, 7, ++/*150649*/ OPC_CheckChild3Type, MVT::i32, ++/*150651*/ OPC_CheckChild4Integer, 7, ++/*150653*/ OPC_CheckChild4Type, MVT::i32, ++/*150655*/ OPC_MoveChild5, ++/*150656*/ OPC_CheckInteger, 7, ++/*150658*/ OPC_CheckType, MVT::i32, ++/*150660*/ OPC_MoveParent, ++/*150661*/ OPC_MoveChild6, ++/*150662*/ OPC_CheckInteger, 7, ++/*150664*/ OPC_CheckType, MVT::i32, ++/*150666*/ OPC_MoveParent, ++/*150667*/ OPC_MoveChild7, ++/*150668*/ OPC_CheckInteger, 7, ++/*150670*/ OPC_CheckType, MVT::i32, ++/*150672*/ OPC_MoveParent, ++/*150673*/ OPC_MoveChild, 8, ++/*150675*/ OPC_CheckInteger, 7, ++/*150677*/ OPC_CheckType, MVT::i32, ++/*150679*/ OPC_MoveParent, ++/*150680*/ OPC_MoveChild, 9, ++/*150682*/ OPC_CheckInteger, 7, ++/*150684*/ OPC_CheckType, MVT::i32, ++/*150686*/ OPC_MoveParent, ++/*150687*/ OPC_MoveChild, 10, ++/*150689*/ OPC_CheckInteger, 7, ++/*150691*/ OPC_CheckType, MVT::i32, ++/*150693*/ OPC_MoveParent, ++/*150694*/ OPC_MoveChild, 11, ++/*150696*/ OPC_CheckInteger, 7, ++/*150698*/ OPC_CheckType, MVT::i32, ++/*150700*/ OPC_MoveParent, ++/*150701*/ OPC_MoveChild, 12, ++/*150703*/ OPC_CheckInteger, 7, ++/*150705*/ OPC_CheckType, MVT::i32, ++/*150707*/ OPC_MoveParent, ++/*150708*/ OPC_MoveChild, 13, ++/*150710*/ OPC_CheckInteger, 7, ++/*150712*/ OPC_CheckType, MVT::i32, ++/*150714*/ OPC_MoveParent, ++/*150715*/ OPC_MoveChild, 14, ++/*150717*/ OPC_CheckInteger, 7, ++/*150719*/ OPC_CheckType, MVT::i32, ++/*150721*/ OPC_MoveParent, ++/*150722*/ OPC_MoveChild, 15, ++/*150724*/ OPC_CheckInteger, 7, ++/*150726*/ OPC_CheckType, MVT::i32, ++/*150728*/ OPC_MoveParent, ++/*150729*/ OPC_MoveChild, 16, ++/*150731*/ OPC_CheckInteger, 7, ++/*150733*/ OPC_CheckType, MVT::i32, ++/*150735*/ OPC_MoveParent, ++/*150736*/ OPC_MoveChild, 17, ++/*150738*/ OPC_CheckInteger, 7, ++/*150740*/ OPC_CheckType, MVT::i32, ++/*150742*/ OPC_MoveParent, ++/*150743*/ OPC_MoveChild, 18, ++/*150745*/ OPC_CheckInteger, 7, ++/*150747*/ OPC_CheckType, MVT::i32, ++/*150749*/ OPC_MoveParent, ++/*150750*/ OPC_MoveChild, 19, ++/*150752*/ OPC_CheckInteger, 7, ++/*150754*/ OPC_CheckType, MVT::i32, ++/*150756*/ OPC_MoveParent, ++/*150757*/ OPC_MoveChild, 20, ++/*150759*/ OPC_CheckInteger, 7, ++/*150761*/ OPC_CheckType, MVT::i32, ++/*150763*/ OPC_MoveParent, ++/*150764*/ OPC_MoveChild, 21, ++/*150766*/ OPC_CheckInteger, 7, ++/*150768*/ OPC_CheckType, MVT::i32, ++/*150770*/ OPC_MoveParent, ++/*150771*/ OPC_MoveChild, 22, ++/*150773*/ OPC_CheckInteger, 7, ++/*150775*/ OPC_CheckType, MVT::i32, ++/*150777*/ OPC_MoveParent, ++/*150778*/ OPC_MoveChild, 23, ++/*150780*/ OPC_CheckInteger, 7, ++/*150782*/ OPC_CheckType, MVT::i32, ++/*150784*/ OPC_MoveParent, ++/*150785*/ OPC_MoveChild, 24, ++/*150787*/ OPC_CheckInteger, 7, ++/*150789*/ OPC_CheckType, MVT::i32, ++/*150791*/ OPC_MoveParent, ++/*150792*/ OPC_MoveChild, 25, ++/*150794*/ OPC_CheckInteger, 7, ++/*150796*/ OPC_CheckType, MVT::i32, ++/*150798*/ OPC_MoveParent, ++/*150799*/ OPC_MoveChild, 26, ++/*150801*/ OPC_CheckInteger, 7, ++/*150803*/ OPC_CheckType, MVT::i32, ++/*150805*/ OPC_MoveParent, ++/*150806*/ OPC_MoveChild, 27, ++/*150808*/ OPC_CheckInteger, 7, ++/*150810*/ OPC_CheckType, MVT::i32, ++/*150812*/ OPC_MoveParent, ++/*150813*/ OPC_MoveChild, 28, ++/*150815*/ OPC_CheckInteger, 7, ++/*150817*/ OPC_CheckType, MVT::i32, ++/*150819*/ OPC_MoveParent, ++/*150820*/ OPC_MoveChild, 29, ++/*150822*/ OPC_CheckInteger, 7, ++/*150824*/ OPC_CheckType, MVT::i32, ++/*150826*/ OPC_MoveParent, ++/*150827*/ OPC_MoveChild, 30, ++/*150829*/ OPC_CheckInteger, 7, ++/*150831*/ OPC_CheckType, MVT::i32, ++/*150833*/ OPC_MoveParent, ++/*150834*/ OPC_MoveChild, 31, ++/*150836*/ OPC_CheckInteger, 7, ++/*150838*/ OPC_CheckType, MVT::i32, ++/*150840*/ OPC_MoveParent, ++/*150841*/ OPC_CheckType, MVT::v32i8, ++/*150843*/ OPC_MoveParent, ++/*150844*/ OPC_MoveParent, ++/*150845*/ OPC_MoveParent, ++/*150846*/ OPC_MoveChild1, ++/*150847*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*150850*/ OPC_CheckChild0Integer, 1, ++/*150852*/ OPC_CheckChild0Type, MVT::i32, ++/*150854*/ OPC_CheckChild1Integer, 1, ++/*150856*/ OPC_CheckChild1Type, MVT::i32, ++/*150858*/ OPC_CheckChild2Integer, 1, ++/*150860*/ OPC_CheckChild2Type, MVT::i32, ++/*150862*/ OPC_CheckChild3Integer, 1, ++/*150864*/ OPC_CheckChild3Type, MVT::i32, ++/*150866*/ OPC_CheckChild4Integer, 1, ++/*150868*/ OPC_CheckChild4Type, MVT::i32, ++/*150870*/ OPC_MoveChild5, ++/*150871*/ OPC_CheckInteger, 1, ++/*150873*/ OPC_CheckType, MVT::i32, ++/*150875*/ OPC_MoveParent, ++/*150876*/ OPC_MoveChild6, ++/*150877*/ OPC_CheckInteger, 1, ++/*150879*/ OPC_CheckType, MVT::i32, ++/*150881*/ OPC_MoveParent, ++/*150882*/ OPC_MoveChild7, ++/*150883*/ OPC_CheckInteger, 1, ++/*150885*/ OPC_CheckType, MVT::i32, ++/*150887*/ OPC_MoveParent, ++/*150888*/ OPC_MoveChild, 8, ++/*150890*/ OPC_CheckInteger, 1, ++/*150892*/ OPC_CheckType, MVT::i32, ++/*150894*/ OPC_MoveParent, ++/*150895*/ OPC_MoveChild, 9, ++/*150897*/ OPC_CheckInteger, 1, ++/*150899*/ OPC_CheckType, MVT::i32, ++/*150901*/ OPC_MoveParent, ++/*150902*/ OPC_MoveChild, 10, ++/*150904*/ OPC_CheckInteger, 1, ++/*150906*/ OPC_CheckType, MVT::i32, ++/*150908*/ OPC_MoveParent, ++/*150909*/ OPC_MoveChild, 11, ++/*150911*/ OPC_CheckInteger, 1, ++/*150913*/ OPC_CheckType, MVT::i32, ++/*150915*/ OPC_MoveParent, ++/*150916*/ OPC_MoveChild, 12, ++/*150918*/ OPC_CheckInteger, 1, ++/*150920*/ OPC_CheckType, MVT::i32, ++/*150922*/ OPC_MoveParent, ++/*150923*/ OPC_MoveChild, 13, ++/*150925*/ OPC_CheckInteger, 1, ++/*150927*/ OPC_CheckType, MVT::i32, ++/*150929*/ OPC_MoveParent, ++/*150930*/ OPC_MoveChild, 14, ++/*150932*/ OPC_CheckInteger, 1, ++/*150934*/ OPC_CheckType, MVT::i32, ++/*150936*/ OPC_MoveParent, ++/*150937*/ OPC_MoveChild, 15, ++/*150939*/ OPC_CheckInteger, 1, ++/*150941*/ OPC_CheckType, MVT::i32, ++/*150943*/ OPC_MoveParent, ++/*150944*/ OPC_MoveChild, 16, ++/*150946*/ OPC_CheckInteger, 1, ++/*150948*/ OPC_CheckType, MVT::i32, ++/*150950*/ OPC_MoveParent, ++/*150951*/ OPC_MoveChild, 17, ++/*150953*/ OPC_CheckInteger, 1, ++/*150955*/ OPC_CheckType, MVT::i32, ++/*150957*/ OPC_MoveParent, ++/*150958*/ OPC_MoveChild, 18, ++/*150960*/ OPC_CheckInteger, 1, ++/*150962*/ OPC_CheckType, MVT::i32, ++/*150964*/ OPC_MoveParent, ++/*150965*/ OPC_MoveChild, 19, ++/*150967*/ OPC_CheckInteger, 1, ++/*150969*/ OPC_CheckType, MVT::i32, ++/*150971*/ OPC_MoveParent, ++/*150972*/ OPC_MoveChild, 20, ++/*150974*/ OPC_CheckInteger, 1, ++/*150976*/ OPC_CheckType, MVT::i32, ++/*150978*/ OPC_MoveParent, ++/*150979*/ OPC_MoveChild, 21, ++/*150981*/ OPC_CheckInteger, 1, ++/*150983*/ OPC_CheckType, MVT::i32, ++/*150985*/ OPC_MoveParent, ++/*150986*/ OPC_MoveChild, 22, ++/*150988*/ OPC_CheckInteger, 1, ++/*150990*/ OPC_CheckType, MVT::i32, ++/*150992*/ OPC_MoveParent, ++/*150993*/ OPC_MoveChild, 23, ++/*150995*/ OPC_CheckInteger, 1, ++/*150997*/ OPC_CheckType, MVT::i32, ++/*150999*/ OPC_MoveParent, ++/*151000*/ OPC_MoveChild, 24, ++/*151002*/ OPC_CheckInteger, 1, ++/*151004*/ OPC_CheckType, MVT::i32, ++/*151006*/ OPC_MoveParent, ++/*151007*/ OPC_MoveChild, 25, ++/*151009*/ OPC_CheckInteger, 1, ++/*151011*/ OPC_CheckType, MVT::i32, ++/*151013*/ OPC_MoveParent, ++/*151014*/ OPC_MoveChild, 26, ++/*151016*/ OPC_CheckInteger, 1, ++/*151018*/ OPC_CheckType, MVT::i32, ++/*151020*/ OPC_MoveParent, ++/*151021*/ OPC_MoveChild, 27, ++/*151023*/ OPC_CheckInteger, 1, ++/*151025*/ OPC_CheckType, MVT::i32, ++/*151027*/ OPC_MoveParent, ++/*151028*/ OPC_MoveChild, 28, ++/*151030*/ OPC_CheckInteger, 1, ++/*151032*/ OPC_CheckType, MVT::i32, ++/*151034*/ OPC_MoveParent, ++/*151035*/ OPC_MoveChild, 29, ++/*151037*/ OPC_CheckInteger, 1, ++/*151039*/ OPC_CheckType, MVT::i32, ++/*151041*/ OPC_MoveParent, ++/*151042*/ OPC_MoveChild, 30, ++/*151044*/ OPC_CheckInteger, 1, ++/*151046*/ OPC_CheckType, MVT::i32, ++/*151048*/ OPC_MoveParent, ++/*151049*/ OPC_MoveChild, 31, ++/*151051*/ OPC_CheckInteger, 1, ++/*151053*/ OPC_CheckType, MVT::i32, ++/*151055*/ OPC_MoveParent, ++/*151056*/ OPC_CheckType, MVT::v32i8, ++/*151058*/ OPC_MoveParent, ++/*151059*/ OPC_CheckType, MVT::v32i8, ++/*151061*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*151063*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b)), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*151071*/ 0, /*End of Scope*/ ++/*151072*/ /*Scope*/ 89|128,8/*1113*/, /*->152187*/ ++/*151074*/ OPC_MoveChild0, ++/*151075*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*151078*/ OPC_CheckChild0Integer, 1, ++/*151080*/ OPC_CheckChild0Type, MVT::i32, ++/*151082*/ OPC_CheckChild1Integer, 1, ++/*151084*/ OPC_CheckChild1Type, MVT::i32, ++/*151086*/ OPC_CheckChild2Integer, 1, ++/*151088*/ OPC_CheckChild2Type, MVT::i32, ++/*151090*/ OPC_CheckChild3Integer, 1, ++/*151092*/ OPC_CheckChild3Type, MVT::i32, ++/*151094*/ OPC_CheckChild4Integer, 1, ++/*151096*/ OPC_CheckChild4Type, MVT::i32, ++/*151098*/ OPC_MoveChild5, ++/*151099*/ OPC_CheckInteger, 1, ++/*151101*/ OPC_CheckType, MVT::i32, ++/*151103*/ OPC_MoveParent, ++/*151104*/ OPC_MoveChild6, ++/*151105*/ OPC_CheckInteger, 1, ++/*151107*/ OPC_CheckType, MVT::i32, ++/*151109*/ OPC_MoveParent, ++/*151110*/ OPC_MoveChild7, ++/*151111*/ OPC_CheckInteger, 1, ++/*151113*/ OPC_CheckType, MVT::i32, ++/*151115*/ OPC_MoveParent, ++/*151116*/ OPC_MoveChild, 8, ++/*151118*/ OPC_CheckInteger, 1, ++/*151120*/ OPC_CheckType, MVT::i32, ++/*151122*/ OPC_MoveParent, ++/*151123*/ OPC_MoveChild, 9, ++/*151125*/ OPC_CheckInteger, 1, ++/*151127*/ OPC_CheckType, MVT::i32, ++/*151129*/ OPC_MoveParent, ++/*151130*/ OPC_MoveChild, 10, ++/*151132*/ OPC_CheckInteger, 1, ++/*151134*/ OPC_CheckType, MVT::i32, ++/*151136*/ OPC_MoveParent, ++/*151137*/ OPC_MoveChild, 11, ++/*151139*/ OPC_CheckInteger, 1, ++/*151141*/ OPC_CheckType, MVT::i32, ++/*151143*/ OPC_MoveParent, ++/*151144*/ OPC_MoveChild, 12, ++/*151146*/ OPC_CheckInteger, 1, ++/*151148*/ OPC_CheckType, MVT::i32, ++/*151150*/ OPC_MoveParent, ++/*151151*/ OPC_MoveChild, 13, ++/*151153*/ OPC_CheckInteger, 1, ++/*151155*/ OPC_CheckType, MVT::i32, ++/*151157*/ OPC_MoveParent, ++/*151158*/ OPC_MoveChild, 14, ++/*151160*/ OPC_CheckInteger, 1, ++/*151162*/ OPC_CheckType, MVT::i32, ++/*151164*/ OPC_MoveParent, ++/*151165*/ OPC_MoveChild, 15, ++/*151167*/ OPC_CheckInteger, 1, ++/*151169*/ OPC_CheckType, MVT::i32, ++/*151171*/ OPC_MoveParent, ++/*151172*/ OPC_MoveChild, 16, ++/*151174*/ OPC_CheckInteger, 1, ++/*151176*/ OPC_CheckType, MVT::i32, ++/*151178*/ OPC_MoveParent, ++/*151179*/ OPC_MoveChild, 17, ++/*151181*/ OPC_CheckInteger, 1, ++/*151183*/ OPC_CheckType, MVT::i32, ++/*151185*/ OPC_MoveParent, ++/*151186*/ OPC_MoveChild, 18, ++/*151188*/ OPC_CheckInteger, 1, ++/*151190*/ OPC_CheckType, MVT::i32, ++/*151192*/ OPC_MoveParent, ++/*151193*/ OPC_MoveChild, 19, ++/*151195*/ OPC_CheckInteger, 1, ++/*151197*/ OPC_CheckType, MVT::i32, ++/*151199*/ OPC_MoveParent, ++/*151200*/ OPC_MoveChild, 20, ++/*151202*/ OPC_CheckInteger, 1, ++/*151204*/ OPC_CheckType, MVT::i32, ++/*151206*/ OPC_MoveParent, ++/*151207*/ OPC_MoveChild, 21, ++/*151209*/ OPC_CheckInteger, 1, ++/*151211*/ OPC_CheckType, MVT::i32, ++/*151213*/ OPC_MoveParent, ++/*151214*/ OPC_MoveChild, 22, ++/*151216*/ OPC_CheckInteger, 1, ++/*151218*/ OPC_CheckType, MVT::i32, ++/*151220*/ OPC_MoveParent, ++/*151221*/ OPC_MoveChild, 23, ++/*151223*/ OPC_CheckInteger, 1, ++/*151225*/ OPC_CheckType, MVT::i32, ++/*151227*/ OPC_MoveParent, ++/*151228*/ OPC_MoveChild, 24, ++/*151230*/ OPC_CheckInteger, 1, ++/*151232*/ OPC_CheckType, MVT::i32, ++/*151234*/ OPC_MoveParent, ++/*151235*/ OPC_MoveChild, 25, ++/*151237*/ OPC_CheckInteger, 1, ++/*151239*/ OPC_CheckType, MVT::i32, ++/*151241*/ OPC_MoveParent, ++/*151242*/ OPC_MoveChild, 26, ++/*151244*/ OPC_CheckInteger, 1, ++/*151246*/ OPC_CheckType, MVT::i32, ++/*151248*/ OPC_MoveParent, ++/*151249*/ OPC_MoveChild, 27, ++/*151251*/ OPC_CheckInteger, 1, ++/*151253*/ OPC_CheckType, MVT::i32, ++/*151255*/ OPC_MoveParent, ++/*151256*/ OPC_MoveChild, 28, ++/*151258*/ OPC_CheckInteger, 1, ++/*151260*/ OPC_CheckType, MVT::i32, ++/*151262*/ OPC_MoveParent, ++/*151263*/ OPC_MoveChild, 29, ++/*151265*/ OPC_CheckInteger, 1, ++/*151267*/ OPC_CheckType, MVT::i32, ++/*151269*/ OPC_MoveParent, ++/*151270*/ OPC_MoveChild, 30, ++/*151272*/ OPC_CheckInteger, 1, ++/*151274*/ OPC_CheckType, MVT::i32, ++/*151276*/ OPC_MoveParent, ++/*151277*/ OPC_MoveChild, 31, ++/*151279*/ OPC_CheckInteger, 1, ++/*151281*/ OPC_CheckType, MVT::i32, ++/*151283*/ OPC_MoveParent, ++/*151284*/ OPC_MoveParent, ++/*151285*/ OPC_MoveChild1, ++/*151286*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*151289*/ OPC_Scope, 62|128,3/*446*/, /*->151738*/ // 2 children in Scope ++/*151292*/ OPC_CheckChild0Same, 0, ++/*151294*/ OPC_CheckChild1Same, 1, ++/*151296*/ OPC_MoveParent, ++/*151297*/ OPC_MoveParent, ++/*151298*/ OPC_MoveChild1, ++/*151299*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*151302*/ OPC_CheckChild0Integer, 7, ++/*151304*/ OPC_CheckChild0Type, MVT::i32, ++/*151306*/ OPC_CheckChild1Integer, 7, ++/*151308*/ OPC_CheckChild1Type, MVT::i32, ++/*151310*/ OPC_CheckChild2Integer, 7, ++/*151312*/ OPC_CheckChild2Type, MVT::i32, ++/*151314*/ OPC_CheckChild3Integer, 7, ++/*151316*/ OPC_CheckChild3Type, MVT::i32, ++/*151318*/ OPC_CheckChild4Integer, 7, ++/*151320*/ OPC_CheckChild4Type, MVT::i32, ++/*151322*/ OPC_MoveChild5, ++/*151323*/ OPC_CheckInteger, 7, ++/*151325*/ OPC_CheckType, MVT::i32, ++/*151327*/ OPC_MoveParent, ++/*151328*/ OPC_MoveChild6, ++/*151329*/ OPC_CheckInteger, 7, ++/*151331*/ OPC_CheckType, MVT::i32, ++/*151333*/ OPC_MoveParent, ++/*151334*/ OPC_MoveChild7, ++/*151335*/ OPC_CheckInteger, 7, ++/*151337*/ OPC_CheckType, MVT::i32, ++/*151339*/ OPC_MoveParent, ++/*151340*/ OPC_MoveChild, 8, ++/*151342*/ OPC_CheckInteger, 7, ++/*151344*/ OPC_CheckType, MVT::i32, ++/*151346*/ OPC_MoveParent, ++/*151347*/ OPC_MoveChild, 9, ++/*151349*/ OPC_CheckInteger, 7, ++/*151351*/ OPC_CheckType, MVT::i32, ++/*151353*/ OPC_MoveParent, ++/*151354*/ OPC_MoveChild, 10, ++/*151356*/ OPC_CheckInteger, 7, ++/*151358*/ OPC_CheckType, MVT::i32, ++/*151360*/ OPC_MoveParent, ++/*151361*/ OPC_MoveChild, 11, ++/*151363*/ OPC_CheckInteger, 7, ++/*151365*/ OPC_CheckType, MVT::i32, ++/*151367*/ OPC_MoveParent, ++/*151368*/ OPC_MoveChild, 12, ++/*151370*/ OPC_CheckInteger, 7, ++/*151372*/ OPC_CheckType, MVT::i32, ++/*151374*/ OPC_MoveParent, ++/*151375*/ OPC_MoveChild, 13, ++/*151377*/ OPC_CheckInteger, 7, ++/*151379*/ OPC_CheckType, MVT::i32, ++/*151381*/ OPC_MoveParent, ++/*151382*/ OPC_MoveChild, 14, ++/*151384*/ OPC_CheckInteger, 7, ++/*151386*/ OPC_CheckType, MVT::i32, ++/*151388*/ OPC_MoveParent, ++/*151389*/ OPC_MoveChild, 15, ++/*151391*/ OPC_CheckInteger, 7, ++/*151393*/ OPC_CheckType, MVT::i32, ++/*151395*/ OPC_MoveParent, ++/*151396*/ OPC_MoveChild, 16, ++/*151398*/ OPC_CheckInteger, 7, ++/*151400*/ OPC_CheckType, MVT::i32, ++/*151402*/ OPC_MoveParent, ++/*151403*/ OPC_MoveChild, 17, ++/*151405*/ OPC_CheckInteger, 7, ++/*151407*/ OPC_CheckType, MVT::i32, ++/*151409*/ OPC_MoveParent, ++/*151410*/ OPC_MoveChild, 18, ++/*151412*/ OPC_CheckInteger, 7, ++/*151414*/ OPC_CheckType, MVT::i32, ++/*151416*/ OPC_MoveParent, ++/*151417*/ OPC_MoveChild, 19, ++/*151419*/ OPC_CheckInteger, 7, ++/*151421*/ OPC_CheckType, MVT::i32, ++/*151423*/ OPC_MoveParent, ++/*151424*/ OPC_MoveChild, 20, ++/*151426*/ OPC_CheckInteger, 7, ++/*151428*/ OPC_CheckType, MVT::i32, ++/*151430*/ OPC_MoveParent, ++/*151431*/ OPC_MoveChild, 21, ++/*151433*/ OPC_CheckInteger, 7, ++/*151435*/ OPC_CheckType, MVT::i32, ++/*151437*/ OPC_MoveParent, ++/*151438*/ OPC_MoveChild, 22, ++/*151440*/ OPC_CheckInteger, 7, ++/*151442*/ OPC_CheckType, MVT::i32, ++/*151444*/ OPC_MoveParent, ++/*151445*/ OPC_MoveChild, 23, ++/*151447*/ OPC_CheckInteger, 7, ++/*151449*/ OPC_CheckType, MVT::i32, ++/*151451*/ OPC_MoveParent, ++/*151452*/ OPC_MoveChild, 24, ++/*151454*/ OPC_CheckInteger, 7, ++/*151456*/ OPC_CheckType, MVT::i32, ++/*151458*/ OPC_MoveParent, ++/*151459*/ OPC_MoveChild, 25, ++/*151461*/ OPC_CheckInteger, 7, ++/*151463*/ OPC_CheckType, MVT::i32, ++/*151465*/ OPC_MoveParent, ++/*151466*/ OPC_MoveChild, 26, ++/*151468*/ OPC_CheckInteger, 7, ++/*151470*/ OPC_CheckType, MVT::i32, ++/*151472*/ OPC_MoveParent, ++/*151473*/ OPC_MoveChild, 27, ++/*151475*/ OPC_CheckInteger, 7, ++/*151477*/ OPC_CheckType, MVT::i32, ++/*151479*/ OPC_MoveParent, ++/*151480*/ OPC_MoveChild, 28, ++/*151482*/ OPC_CheckInteger, 7, ++/*151484*/ OPC_CheckType, MVT::i32, ++/*151486*/ OPC_MoveParent, ++/*151487*/ OPC_MoveChild, 29, ++/*151489*/ OPC_CheckInteger, 7, ++/*151491*/ OPC_CheckType, MVT::i32, ++/*151493*/ OPC_MoveParent, ++/*151494*/ OPC_MoveChild, 30, ++/*151496*/ OPC_CheckInteger, 7, ++/*151498*/ OPC_CheckType, MVT::i32, ++/*151500*/ OPC_MoveParent, ++/*151501*/ OPC_MoveChild, 31, ++/*151503*/ OPC_CheckInteger, 7, ++/*151505*/ OPC_CheckType, MVT::i32, ++/*151507*/ OPC_MoveParent, ++/*151508*/ OPC_CheckType, MVT::v32i8, ++/*151510*/ OPC_MoveParent, ++/*151511*/ OPC_MoveParent, ++/*151512*/ OPC_MoveParent, ++/*151513*/ OPC_MoveChild1, ++/*151514*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*151517*/ OPC_CheckChild0Integer, 1, ++/*151519*/ OPC_CheckChild0Type, MVT::i32, ++/*151521*/ OPC_CheckChild1Integer, 1, ++/*151523*/ OPC_CheckChild1Type, MVT::i32, ++/*151525*/ OPC_CheckChild2Integer, 1, ++/*151527*/ OPC_CheckChild2Type, MVT::i32, ++/*151529*/ OPC_CheckChild3Integer, 1, ++/*151531*/ OPC_CheckChild3Type, MVT::i32, ++/*151533*/ OPC_CheckChild4Integer, 1, ++/*151535*/ OPC_CheckChild4Type, MVT::i32, ++/*151537*/ OPC_MoveChild5, ++/*151538*/ OPC_CheckInteger, 1, ++/*151540*/ OPC_CheckType, MVT::i32, ++/*151542*/ OPC_MoveParent, ++/*151543*/ OPC_MoveChild6, ++/*151544*/ OPC_CheckInteger, 1, ++/*151546*/ OPC_CheckType, MVT::i32, ++/*151548*/ OPC_MoveParent, ++/*151549*/ OPC_MoveChild7, ++/*151550*/ OPC_CheckInteger, 1, ++/*151552*/ OPC_CheckType, MVT::i32, ++/*151554*/ OPC_MoveParent, ++/*151555*/ OPC_MoveChild, 8, ++/*151557*/ OPC_CheckInteger, 1, ++/*151559*/ OPC_CheckType, MVT::i32, ++/*151561*/ OPC_MoveParent, ++/*151562*/ OPC_MoveChild, 9, ++/*151564*/ OPC_CheckInteger, 1, ++/*151566*/ OPC_CheckType, MVT::i32, ++/*151568*/ OPC_MoveParent, ++/*151569*/ OPC_MoveChild, 10, ++/*151571*/ OPC_CheckInteger, 1, ++/*151573*/ OPC_CheckType, MVT::i32, ++/*151575*/ OPC_MoveParent, ++/*151576*/ OPC_MoveChild, 11, ++/*151578*/ OPC_CheckInteger, 1, ++/*151580*/ OPC_CheckType, MVT::i32, ++/*151582*/ OPC_MoveParent, ++/*151583*/ OPC_MoveChild, 12, ++/*151585*/ OPC_CheckInteger, 1, ++/*151587*/ OPC_CheckType, MVT::i32, ++/*151589*/ OPC_MoveParent, ++/*151590*/ OPC_MoveChild, 13, ++/*151592*/ OPC_CheckInteger, 1, ++/*151594*/ OPC_CheckType, MVT::i32, ++/*151596*/ OPC_MoveParent, ++/*151597*/ OPC_MoveChild, 14, ++/*151599*/ OPC_CheckInteger, 1, ++/*151601*/ OPC_CheckType, MVT::i32, ++/*151603*/ OPC_MoveParent, ++/*151604*/ OPC_MoveChild, 15, ++/*151606*/ OPC_CheckInteger, 1, ++/*151608*/ OPC_CheckType, MVT::i32, ++/*151610*/ OPC_MoveParent, ++/*151611*/ OPC_MoveChild, 16, ++/*151613*/ OPC_CheckInteger, 1, ++/*151615*/ OPC_CheckType, MVT::i32, ++/*151617*/ OPC_MoveParent, ++/*151618*/ OPC_MoveChild, 17, ++/*151620*/ OPC_CheckInteger, 1, ++/*151622*/ OPC_CheckType, MVT::i32, ++/*151624*/ OPC_MoveParent, ++/*151625*/ OPC_MoveChild, 18, ++/*151627*/ OPC_CheckInteger, 1, ++/*151629*/ OPC_CheckType, MVT::i32, ++/*151631*/ OPC_MoveParent, ++/*151632*/ OPC_MoveChild, 19, ++/*151634*/ OPC_CheckInteger, 1, ++/*151636*/ OPC_CheckType, MVT::i32, ++/*151638*/ OPC_MoveParent, ++/*151639*/ OPC_MoveChild, 20, ++/*151641*/ OPC_CheckInteger, 1, ++/*151643*/ OPC_CheckType, MVT::i32, ++/*151645*/ OPC_MoveParent, ++/*151646*/ OPC_MoveChild, 21, ++/*151648*/ OPC_CheckInteger, 1, ++/*151650*/ OPC_CheckType, MVT::i32, ++/*151652*/ OPC_MoveParent, ++/*151653*/ OPC_MoveChild, 22, ++/*151655*/ OPC_CheckInteger, 1, ++/*151657*/ OPC_CheckType, MVT::i32, ++/*151659*/ OPC_MoveParent, ++/*151660*/ OPC_MoveChild, 23, ++/*151662*/ OPC_CheckInteger, 1, ++/*151664*/ OPC_CheckType, MVT::i32, ++/*151666*/ OPC_MoveParent, ++/*151667*/ OPC_MoveChild, 24, ++/*151669*/ OPC_CheckInteger, 1, ++/*151671*/ OPC_CheckType, MVT::i32, ++/*151673*/ OPC_MoveParent, ++/*151674*/ OPC_MoveChild, 25, ++/*151676*/ OPC_CheckInteger, 1, ++/*151678*/ OPC_CheckType, MVT::i32, ++/*151680*/ OPC_MoveParent, ++/*151681*/ OPC_MoveChild, 26, ++/*151683*/ OPC_CheckInteger, 1, ++/*151685*/ OPC_CheckType, MVT::i32, ++/*151687*/ OPC_MoveParent, ++/*151688*/ OPC_MoveChild, 27, ++/*151690*/ OPC_CheckInteger, 1, ++/*151692*/ OPC_CheckType, MVT::i32, ++/*151694*/ OPC_MoveParent, ++/*151695*/ OPC_MoveChild, 28, ++/*151697*/ OPC_CheckInteger, 1, ++/*151699*/ OPC_CheckType, MVT::i32, ++/*151701*/ OPC_MoveParent, ++/*151702*/ OPC_MoveChild, 29, ++/*151704*/ OPC_CheckInteger, 1, ++/*151706*/ OPC_CheckType, MVT::i32, ++/*151708*/ OPC_MoveParent, ++/*151709*/ OPC_MoveChild, 30, ++/*151711*/ OPC_CheckInteger, 1, ++/*151713*/ OPC_CheckType, MVT::i32, ++/*151715*/ OPC_MoveParent, ++/*151716*/ OPC_MoveChild, 31, ++/*151718*/ OPC_CheckInteger, 1, ++/*151720*/ OPC_CheckType, MVT::i32, ++/*151722*/ OPC_MoveParent, ++/*151723*/ OPC_CheckType, MVT::v32i8, ++/*151725*/ OPC_MoveParent, ++/*151726*/ OPC_CheckType, MVT::v32i8, ++/*151728*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*151730*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b)), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*151738*/ /*Scope*/ 62|128,3/*446*/, /*->152186*/ ++/*151740*/ OPC_CheckChild0Same, 1, ++/*151742*/ OPC_CheckChild1Same, 0, ++/*151744*/ OPC_MoveParent, ++/*151745*/ OPC_MoveParent, ++/*151746*/ OPC_MoveChild1, ++/*151747*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*151750*/ OPC_CheckChild0Integer, 7, ++/*151752*/ OPC_CheckChild0Type, MVT::i32, ++/*151754*/ OPC_CheckChild1Integer, 7, ++/*151756*/ OPC_CheckChild1Type, MVT::i32, ++/*151758*/ OPC_CheckChild2Integer, 7, ++/*151760*/ OPC_CheckChild2Type, MVT::i32, ++/*151762*/ OPC_CheckChild3Integer, 7, ++/*151764*/ OPC_CheckChild3Type, MVT::i32, ++/*151766*/ OPC_CheckChild4Integer, 7, ++/*151768*/ OPC_CheckChild4Type, MVT::i32, ++/*151770*/ OPC_MoveChild5, ++/*151771*/ OPC_CheckInteger, 7, ++/*151773*/ OPC_CheckType, MVT::i32, ++/*151775*/ OPC_MoveParent, ++/*151776*/ OPC_MoveChild6, ++/*151777*/ OPC_CheckInteger, 7, ++/*151779*/ OPC_CheckType, MVT::i32, ++/*151781*/ OPC_MoveParent, ++/*151782*/ OPC_MoveChild7, ++/*151783*/ OPC_CheckInteger, 7, ++/*151785*/ OPC_CheckType, MVT::i32, ++/*151787*/ OPC_MoveParent, ++/*151788*/ OPC_MoveChild, 8, ++/*151790*/ OPC_CheckInteger, 7, ++/*151792*/ OPC_CheckType, MVT::i32, ++/*151794*/ OPC_MoveParent, ++/*151795*/ OPC_MoveChild, 9, ++/*151797*/ OPC_CheckInteger, 7, ++/*151799*/ OPC_CheckType, MVT::i32, ++/*151801*/ OPC_MoveParent, ++/*151802*/ OPC_MoveChild, 10, ++/*151804*/ OPC_CheckInteger, 7, ++/*151806*/ OPC_CheckType, MVT::i32, ++/*151808*/ OPC_MoveParent, ++/*151809*/ OPC_MoveChild, 11, ++/*151811*/ OPC_CheckInteger, 7, ++/*151813*/ OPC_CheckType, MVT::i32, ++/*151815*/ OPC_MoveParent, ++/*151816*/ OPC_MoveChild, 12, ++/*151818*/ OPC_CheckInteger, 7, ++/*151820*/ OPC_CheckType, MVT::i32, ++/*151822*/ OPC_MoveParent, ++/*151823*/ OPC_MoveChild, 13, ++/*151825*/ OPC_CheckInteger, 7, ++/*151827*/ OPC_CheckType, MVT::i32, ++/*151829*/ OPC_MoveParent, ++/*151830*/ OPC_MoveChild, 14, ++/*151832*/ OPC_CheckInteger, 7, ++/*151834*/ OPC_CheckType, MVT::i32, ++/*151836*/ OPC_MoveParent, ++/*151837*/ OPC_MoveChild, 15, ++/*151839*/ OPC_CheckInteger, 7, ++/*151841*/ OPC_CheckType, MVT::i32, ++/*151843*/ OPC_MoveParent, ++/*151844*/ OPC_MoveChild, 16, ++/*151846*/ OPC_CheckInteger, 7, ++/*151848*/ OPC_CheckType, MVT::i32, ++/*151850*/ OPC_MoveParent, ++/*151851*/ OPC_MoveChild, 17, ++/*151853*/ OPC_CheckInteger, 7, ++/*151855*/ OPC_CheckType, MVT::i32, ++/*151857*/ OPC_MoveParent, ++/*151858*/ OPC_MoveChild, 18, ++/*151860*/ OPC_CheckInteger, 7, ++/*151862*/ OPC_CheckType, MVT::i32, ++/*151864*/ OPC_MoveParent, ++/*151865*/ OPC_MoveChild, 19, ++/*151867*/ OPC_CheckInteger, 7, ++/*151869*/ OPC_CheckType, MVT::i32, ++/*151871*/ OPC_MoveParent, ++/*151872*/ OPC_MoveChild, 20, ++/*151874*/ OPC_CheckInteger, 7, ++/*151876*/ OPC_CheckType, MVT::i32, ++/*151878*/ OPC_MoveParent, ++/*151879*/ OPC_MoveChild, 21, ++/*151881*/ OPC_CheckInteger, 7, ++/*151883*/ OPC_CheckType, MVT::i32, ++/*151885*/ OPC_MoveParent, ++/*151886*/ OPC_MoveChild, 22, ++/*151888*/ OPC_CheckInteger, 7, ++/*151890*/ OPC_CheckType, MVT::i32, ++/*151892*/ OPC_MoveParent, ++/*151893*/ OPC_MoveChild, 23, ++/*151895*/ OPC_CheckInteger, 7, ++/*151897*/ OPC_CheckType, MVT::i32, ++/*151899*/ OPC_MoveParent, ++/*151900*/ OPC_MoveChild, 24, ++/*151902*/ OPC_CheckInteger, 7, ++/*151904*/ OPC_CheckType, MVT::i32, ++/*151906*/ OPC_MoveParent, ++/*151907*/ OPC_MoveChild, 25, ++/*151909*/ OPC_CheckInteger, 7, ++/*151911*/ OPC_CheckType, MVT::i32, ++/*151913*/ OPC_MoveParent, ++/*151914*/ OPC_MoveChild, 26, ++/*151916*/ OPC_CheckInteger, 7, ++/*151918*/ OPC_CheckType, MVT::i32, ++/*151920*/ OPC_MoveParent, ++/*151921*/ OPC_MoveChild, 27, ++/*151923*/ OPC_CheckInteger, 7, ++/*151925*/ OPC_CheckType, MVT::i32, ++/*151927*/ OPC_MoveParent, ++/*151928*/ OPC_MoveChild, 28, ++/*151930*/ OPC_CheckInteger, 7, ++/*151932*/ OPC_CheckType, MVT::i32, ++/*151934*/ OPC_MoveParent, ++/*151935*/ OPC_MoveChild, 29, ++/*151937*/ OPC_CheckInteger, 7, ++/*151939*/ OPC_CheckType, MVT::i32, ++/*151941*/ OPC_MoveParent, ++/*151942*/ OPC_MoveChild, 30, ++/*151944*/ OPC_CheckInteger, 7, ++/*151946*/ OPC_CheckType, MVT::i32, ++/*151948*/ OPC_MoveParent, ++/*151949*/ OPC_MoveChild, 31, ++/*151951*/ OPC_CheckInteger, 7, ++/*151953*/ OPC_CheckType, MVT::i32, ++/*151955*/ OPC_MoveParent, ++/*151956*/ OPC_CheckType, MVT::v32i8, ++/*151958*/ OPC_MoveParent, ++/*151959*/ OPC_MoveParent, ++/*151960*/ OPC_MoveParent, ++/*151961*/ OPC_MoveChild1, ++/*151962*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*151965*/ OPC_CheckChild0Integer, 1, ++/*151967*/ OPC_CheckChild0Type, MVT::i32, ++/*151969*/ OPC_CheckChild1Integer, 1, ++/*151971*/ OPC_CheckChild1Type, MVT::i32, ++/*151973*/ OPC_CheckChild2Integer, 1, ++/*151975*/ OPC_CheckChild2Type, MVT::i32, ++/*151977*/ OPC_CheckChild3Integer, 1, ++/*151979*/ OPC_CheckChild3Type, MVT::i32, ++/*151981*/ OPC_CheckChild4Integer, 1, ++/*151983*/ OPC_CheckChild4Type, MVT::i32, ++/*151985*/ OPC_MoveChild5, ++/*151986*/ OPC_CheckInteger, 1, ++/*151988*/ OPC_CheckType, MVT::i32, ++/*151990*/ OPC_MoveParent, ++/*151991*/ OPC_MoveChild6, ++/*151992*/ OPC_CheckInteger, 1, ++/*151994*/ OPC_CheckType, MVT::i32, ++/*151996*/ OPC_MoveParent, ++/*151997*/ OPC_MoveChild7, ++/*151998*/ OPC_CheckInteger, 1, ++/*152000*/ OPC_CheckType, MVT::i32, ++/*152002*/ OPC_MoveParent, ++/*152003*/ OPC_MoveChild, 8, ++/*152005*/ OPC_CheckInteger, 1, ++/*152007*/ OPC_CheckType, MVT::i32, ++/*152009*/ OPC_MoveParent, ++/*152010*/ OPC_MoveChild, 9, ++/*152012*/ OPC_CheckInteger, 1, ++/*152014*/ OPC_CheckType, MVT::i32, ++/*152016*/ OPC_MoveParent, ++/*152017*/ OPC_MoveChild, 10, ++/*152019*/ OPC_CheckInteger, 1, ++/*152021*/ OPC_CheckType, MVT::i32, ++/*152023*/ OPC_MoveParent, ++/*152024*/ OPC_MoveChild, 11, ++/*152026*/ OPC_CheckInteger, 1, ++/*152028*/ OPC_CheckType, MVT::i32, ++/*152030*/ OPC_MoveParent, ++/*152031*/ OPC_MoveChild, 12, ++/*152033*/ OPC_CheckInteger, 1, ++/*152035*/ OPC_CheckType, MVT::i32, ++/*152037*/ OPC_MoveParent, ++/*152038*/ OPC_MoveChild, 13, ++/*152040*/ OPC_CheckInteger, 1, ++/*152042*/ OPC_CheckType, MVT::i32, ++/*152044*/ OPC_MoveParent, ++/*152045*/ OPC_MoveChild, 14, ++/*152047*/ OPC_CheckInteger, 1, ++/*152049*/ OPC_CheckType, MVT::i32, ++/*152051*/ OPC_MoveParent, ++/*152052*/ OPC_MoveChild, 15, ++/*152054*/ OPC_CheckInteger, 1, ++/*152056*/ OPC_CheckType, MVT::i32, ++/*152058*/ OPC_MoveParent, ++/*152059*/ OPC_MoveChild, 16, ++/*152061*/ OPC_CheckInteger, 1, ++/*152063*/ OPC_CheckType, MVT::i32, ++/*152065*/ OPC_MoveParent, ++/*152066*/ OPC_MoveChild, 17, ++/*152068*/ OPC_CheckInteger, 1, ++/*152070*/ OPC_CheckType, MVT::i32, ++/*152072*/ OPC_MoveParent, ++/*152073*/ OPC_MoveChild, 18, ++/*152075*/ OPC_CheckInteger, 1, ++/*152077*/ OPC_CheckType, MVT::i32, ++/*152079*/ OPC_MoveParent, ++/*152080*/ OPC_MoveChild, 19, ++/*152082*/ OPC_CheckInteger, 1, ++/*152084*/ OPC_CheckType, MVT::i32, ++/*152086*/ OPC_MoveParent, ++/*152087*/ OPC_MoveChild, 20, ++/*152089*/ OPC_CheckInteger, 1, ++/*152091*/ OPC_CheckType, MVT::i32, ++/*152093*/ OPC_MoveParent, ++/*152094*/ OPC_MoveChild, 21, ++/*152096*/ OPC_CheckInteger, 1, ++/*152098*/ OPC_CheckType, MVT::i32, ++/*152100*/ OPC_MoveParent, ++/*152101*/ OPC_MoveChild, 22, ++/*152103*/ OPC_CheckInteger, 1, ++/*152105*/ OPC_CheckType, MVT::i32, ++/*152107*/ OPC_MoveParent, ++/*152108*/ OPC_MoveChild, 23, ++/*152110*/ OPC_CheckInteger, 1, ++/*152112*/ OPC_CheckType, MVT::i32, ++/*152114*/ OPC_MoveParent, ++/*152115*/ OPC_MoveChild, 24, ++/*152117*/ OPC_CheckInteger, 1, ++/*152119*/ OPC_CheckType, MVT::i32, ++/*152121*/ OPC_MoveParent, ++/*152122*/ OPC_MoveChild, 25, ++/*152124*/ OPC_CheckInteger, 1, ++/*152126*/ OPC_CheckType, MVT::i32, ++/*152128*/ OPC_MoveParent, ++/*152129*/ OPC_MoveChild, 26, ++/*152131*/ OPC_CheckInteger, 1, ++/*152133*/ OPC_CheckType, MVT::i32, ++/*152135*/ OPC_MoveParent, ++/*152136*/ OPC_MoveChild, 27, ++/*152138*/ OPC_CheckInteger, 1, ++/*152140*/ OPC_CheckType, MVT::i32, ++/*152142*/ OPC_MoveParent, ++/*152143*/ OPC_MoveChild, 28, ++/*152145*/ OPC_CheckInteger, 1, ++/*152147*/ OPC_CheckType, MVT::i32, ++/*152149*/ OPC_MoveParent, ++/*152150*/ OPC_MoveChild, 29, ++/*152152*/ OPC_CheckInteger, 1, ++/*152154*/ OPC_CheckType, MVT::i32, ++/*152156*/ OPC_MoveParent, ++/*152157*/ OPC_MoveChild, 30, ++/*152159*/ OPC_CheckInteger, 1, ++/*152161*/ OPC_CheckType, MVT::i32, ++/*152163*/ OPC_MoveParent, ++/*152164*/ OPC_MoveChild, 31, ++/*152166*/ OPC_CheckInteger, 1, ++/*152168*/ OPC_CheckType, MVT::i32, ++/*152170*/ OPC_MoveParent, ++/*152171*/ OPC_CheckType, MVT::v32i8, ++/*152173*/ OPC_MoveParent, ++/*152174*/ OPC_CheckType, MVT::v32i8, ++/*152176*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*152178*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b)), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*152186*/ 0, /*End of Scope*/ ++/*152187*/ 0, /*End of Scope*/ ++/*152188*/ /*Scope*/ 13|128,62/*7949*/, /*->160139*/ ++/*152190*/ OPC_RecordChild0, // #1 = $b ++/*152191*/ OPC_MoveChild1, ++/*152192*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*152195*/ OPC_CheckChild0Integer, 1, ++/*152197*/ OPC_CheckChild0Type, MVT::i32, ++/*152199*/ OPC_CheckChild1Integer, 1, ++/*152201*/ OPC_CheckChild1Type, MVT::i32, ++/*152203*/ OPC_CheckChild2Integer, 1, ++/*152205*/ OPC_CheckChild2Type, MVT::i32, ++/*152207*/ OPC_CheckChild3Integer, 1, ++/*152209*/ OPC_CheckChild3Type, MVT::i32, ++/*152211*/ OPC_CheckChild4Integer, 1, ++/*152213*/ OPC_CheckChild4Type, MVT::i32, ++/*152215*/ OPC_MoveChild5, ++/*152216*/ OPC_CheckInteger, 1, ++/*152218*/ OPC_CheckType, MVT::i32, ++/*152220*/ OPC_MoveParent, ++/*152221*/ OPC_MoveChild6, ++/*152222*/ OPC_CheckInteger, 1, ++/*152224*/ OPC_CheckType, MVT::i32, ++/*152226*/ OPC_MoveParent, ++/*152227*/ OPC_MoveChild7, ++/*152228*/ OPC_CheckInteger, 1, ++/*152230*/ OPC_CheckType, MVT::i32, ++/*152232*/ OPC_MoveParent, ++/*152233*/ OPC_MoveChild, 8, ++/*152235*/ OPC_CheckInteger, 1, ++/*152237*/ OPC_CheckType, MVT::i32, ++/*152239*/ OPC_MoveParent, ++/*152240*/ OPC_MoveChild, 9, ++/*152242*/ OPC_CheckInteger, 1, ++/*152244*/ OPC_CheckType, MVT::i32, ++/*152246*/ OPC_MoveParent, ++/*152247*/ OPC_MoveChild, 10, ++/*152249*/ OPC_CheckInteger, 1, ++/*152251*/ OPC_CheckType, MVT::i32, ++/*152253*/ OPC_MoveParent, ++/*152254*/ OPC_MoveChild, 11, ++/*152256*/ OPC_CheckInteger, 1, ++/*152258*/ OPC_CheckType, MVT::i32, ++/*152260*/ OPC_MoveParent, ++/*152261*/ OPC_MoveChild, 12, ++/*152263*/ OPC_CheckInteger, 1, ++/*152265*/ OPC_CheckType, MVT::i32, ++/*152267*/ OPC_MoveParent, ++/*152268*/ OPC_MoveChild, 13, ++/*152270*/ OPC_CheckInteger, 1, ++/*152272*/ OPC_CheckType, MVT::i32, ++/*152274*/ OPC_MoveParent, ++/*152275*/ OPC_MoveChild, 14, ++/*152277*/ OPC_CheckInteger, 1, ++/*152279*/ OPC_CheckType, MVT::i32, ++/*152281*/ OPC_MoveParent, ++/*152282*/ OPC_MoveChild, 15, ++/*152284*/ OPC_CheckInteger, 1, ++/*152286*/ OPC_CheckType, MVT::i32, ++/*152288*/ OPC_MoveParent, ++/*152289*/ OPC_MoveChild, 16, ++/*152291*/ OPC_CheckInteger, 1, ++/*152293*/ OPC_CheckType, MVT::i32, ++/*152295*/ OPC_MoveParent, ++/*152296*/ OPC_MoveChild, 17, ++/*152298*/ OPC_CheckInteger, 1, ++/*152300*/ OPC_CheckType, MVT::i32, ++/*152302*/ OPC_MoveParent, ++/*152303*/ OPC_MoveChild, 18, ++/*152305*/ OPC_CheckInteger, 1, ++/*152307*/ OPC_CheckType, MVT::i32, ++/*152309*/ OPC_MoveParent, ++/*152310*/ OPC_MoveChild, 19, ++/*152312*/ OPC_CheckInteger, 1, ++/*152314*/ OPC_CheckType, MVT::i32, ++/*152316*/ OPC_MoveParent, ++/*152317*/ OPC_MoveChild, 20, ++/*152319*/ OPC_CheckInteger, 1, ++/*152321*/ OPC_CheckType, MVT::i32, ++/*152323*/ OPC_MoveParent, ++/*152324*/ OPC_MoveChild, 21, ++/*152326*/ OPC_CheckInteger, 1, ++/*152328*/ OPC_CheckType, MVT::i32, ++/*152330*/ OPC_MoveParent, ++/*152331*/ OPC_MoveChild, 22, ++/*152333*/ OPC_CheckInteger, 1, ++/*152335*/ OPC_CheckType, MVT::i32, ++/*152337*/ OPC_MoveParent, ++/*152338*/ OPC_MoveChild, 23, ++/*152340*/ OPC_CheckInteger, 1, ++/*152342*/ OPC_CheckType, MVT::i32, ++/*152344*/ OPC_MoveParent, ++/*152345*/ OPC_MoveChild, 24, ++/*152347*/ OPC_CheckInteger, 1, ++/*152349*/ OPC_CheckType, MVT::i32, ++/*152351*/ OPC_MoveParent, ++/*152352*/ OPC_MoveChild, 25, ++/*152354*/ OPC_CheckInteger, 1, ++/*152356*/ OPC_CheckType, MVT::i32, ++/*152358*/ OPC_MoveParent, ++/*152359*/ OPC_MoveChild, 26, ++/*152361*/ OPC_CheckInteger, 1, ++/*152363*/ OPC_CheckType, MVT::i32, ++/*152365*/ OPC_MoveParent, ++/*152366*/ OPC_MoveChild, 27, ++/*152368*/ OPC_CheckInteger, 1, ++/*152370*/ OPC_CheckType, MVT::i32, ++/*152372*/ OPC_MoveParent, ++/*152373*/ OPC_MoveChild, 28, ++/*152375*/ OPC_CheckInteger, 1, ++/*152377*/ OPC_CheckType, MVT::i32, ++/*152379*/ OPC_MoveParent, ++/*152380*/ OPC_MoveChild, 29, ++/*152382*/ OPC_CheckInteger, 1, ++/*152384*/ OPC_CheckType, MVT::i32, ++/*152386*/ OPC_MoveParent, ++/*152387*/ OPC_MoveChild, 30, ++/*152389*/ OPC_CheckInteger, 1, ++/*152391*/ OPC_CheckType, MVT::i32, ++/*152393*/ OPC_MoveParent, ++/*152394*/ OPC_MoveChild, 31, ++/*152396*/ OPC_CheckInteger, 1, ++/*152398*/ OPC_CheckType, MVT::i32, ++/*152400*/ OPC_MoveParent, ++/*152401*/ OPC_MoveParent, ++/*152402*/ OPC_MoveParent, ++/*152403*/ OPC_MoveParent, ++/*152404*/ OPC_MoveChild1, ++/*152405*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*152408*/ OPC_MoveChild0, ++/*152409*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*152412*/ OPC_Scope, 120|128,30/*3960*/, /*->156375*/ // 4 children in Scope ++/*152415*/ OPC_MoveChild0, ++/*152416*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*152419*/ OPC_Scope, 17|128,5/*657*/, /*->153079*/ // 6 children in Scope ++/*152422*/ OPC_MoveChild0, ++/*152423*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*152426*/ OPC_CheckChild0Integer, 1, ++/*152428*/ OPC_CheckChild0Type, MVT::i32, ++/*152430*/ OPC_CheckChild1Integer, 1, ++/*152432*/ OPC_CheckChild1Type, MVT::i32, ++/*152434*/ OPC_CheckChild2Integer, 1, ++/*152436*/ OPC_CheckChild2Type, MVT::i32, ++/*152438*/ OPC_CheckChild3Integer, 1, ++/*152440*/ OPC_CheckChild3Type, MVT::i32, ++/*152442*/ OPC_CheckChild4Integer, 1, ++/*152444*/ OPC_CheckChild4Type, MVT::i32, ++/*152446*/ OPC_MoveChild5, ++/*152447*/ OPC_CheckInteger, 1, ++/*152449*/ OPC_CheckType, MVT::i32, ++/*152451*/ OPC_MoveParent, ++/*152452*/ OPC_MoveChild6, ++/*152453*/ OPC_CheckInteger, 1, ++/*152455*/ OPC_CheckType, MVT::i32, ++/*152457*/ OPC_MoveParent, ++/*152458*/ OPC_MoveChild7, ++/*152459*/ OPC_CheckInteger, 1, ++/*152461*/ OPC_CheckType, MVT::i32, ++/*152463*/ OPC_MoveParent, ++/*152464*/ OPC_MoveChild, 8, ++/*152466*/ OPC_CheckInteger, 1, ++/*152468*/ OPC_CheckType, MVT::i32, ++/*152470*/ OPC_MoveParent, ++/*152471*/ OPC_MoveChild, 9, ++/*152473*/ OPC_CheckInteger, 1, ++/*152475*/ OPC_CheckType, MVT::i32, ++/*152477*/ OPC_MoveParent, ++/*152478*/ OPC_MoveChild, 10, ++/*152480*/ OPC_CheckInteger, 1, ++/*152482*/ OPC_CheckType, MVT::i32, ++/*152484*/ OPC_MoveParent, ++/*152485*/ OPC_MoveChild, 11, ++/*152487*/ OPC_CheckInteger, 1, ++/*152489*/ OPC_CheckType, MVT::i32, ++/*152491*/ OPC_MoveParent, ++/*152492*/ OPC_MoveChild, 12, ++/*152494*/ OPC_CheckInteger, 1, ++/*152496*/ OPC_CheckType, MVT::i32, ++/*152498*/ OPC_MoveParent, ++/*152499*/ OPC_MoveChild, 13, ++/*152501*/ OPC_CheckInteger, 1, ++/*152503*/ OPC_CheckType, MVT::i32, ++/*152505*/ OPC_MoveParent, ++/*152506*/ OPC_MoveChild, 14, ++/*152508*/ OPC_CheckInteger, 1, ++/*152510*/ OPC_CheckType, MVT::i32, ++/*152512*/ OPC_MoveParent, ++/*152513*/ OPC_MoveChild, 15, ++/*152515*/ OPC_CheckInteger, 1, ++/*152517*/ OPC_CheckType, MVT::i32, ++/*152519*/ OPC_MoveParent, ++/*152520*/ OPC_MoveChild, 16, ++/*152522*/ OPC_CheckInteger, 1, ++/*152524*/ OPC_CheckType, MVT::i32, ++/*152526*/ OPC_MoveParent, ++/*152527*/ OPC_MoveChild, 17, ++/*152529*/ OPC_CheckInteger, 1, ++/*152531*/ OPC_CheckType, MVT::i32, ++/*152533*/ OPC_MoveParent, ++/*152534*/ OPC_MoveChild, 18, ++/*152536*/ OPC_CheckInteger, 1, ++/*152538*/ OPC_CheckType, MVT::i32, ++/*152540*/ OPC_MoveParent, ++/*152541*/ OPC_MoveChild, 19, ++/*152543*/ OPC_CheckInteger, 1, ++/*152545*/ OPC_CheckType, MVT::i32, ++/*152547*/ OPC_MoveParent, ++/*152548*/ OPC_MoveChild, 20, ++/*152550*/ OPC_CheckInteger, 1, ++/*152552*/ OPC_CheckType, MVT::i32, ++/*152554*/ OPC_MoveParent, ++/*152555*/ OPC_MoveChild, 21, ++/*152557*/ OPC_CheckInteger, 1, ++/*152559*/ OPC_CheckType, MVT::i32, ++/*152561*/ OPC_MoveParent, ++/*152562*/ OPC_MoveChild, 22, ++/*152564*/ OPC_CheckInteger, 1, ++/*152566*/ OPC_CheckType, MVT::i32, ++/*152568*/ OPC_MoveParent, ++/*152569*/ OPC_MoveChild, 23, ++/*152571*/ OPC_CheckInteger, 1, ++/*152573*/ OPC_CheckType, MVT::i32, ++/*152575*/ OPC_MoveParent, ++/*152576*/ OPC_MoveChild, 24, ++/*152578*/ OPC_CheckInteger, 1, ++/*152580*/ OPC_CheckType, MVT::i32, ++/*152582*/ OPC_MoveParent, ++/*152583*/ OPC_MoveChild, 25, ++/*152585*/ OPC_CheckInteger, 1, ++/*152587*/ OPC_CheckType, MVT::i32, ++/*152589*/ OPC_MoveParent, ++/*152590*/ OPC_MoveChild, 26, ++/*152592*/ OPC_CheckInteger, 1, ++/*152594*/ OPC_CheckType, MVT::i32, ++/*152596*/ OPC_MoveParent, ++/*152597*/ OPC_MoveChild, 27, ++/*152599*/ OPC_CheckInteger, 1, ++/*152601*/ OPC_CheckType, MVT::i32, ++/*152603*/ OPC_MoveParent, ++/*152604*/ OPC_MoveChild, 28, ++/*152606*/ OPC_CheckInteger, 1, ++/*152608*/ OPC_CheckType, MVT::i32, ++/*152610*/ OPC_MoveParent, ++/*152611*/ OPC_MoveChild, 29, ++/*152613*/ OPC_CheckInteger, 1, ++/*152615*/ OPC_CheckType, MVT::i32, ++/*152617*/ OPC_MoveParent, ++/*152618*/ OPC_MoveChild, 30, ++/*152620*/ OPC_CheckInteger, 1, ++/*152622*/ OPC_CheckType, MVT::i32, ++/*152624*/ OPC_MoveParent, ++/*152625*/ OPC_MoveChild, 31, ++/*152627*/ OPC_CheckInteger, 1, ++/*152629*/ OPC_CheckType, MVT::i32, ++/*152631*/ OPC_MoveParent, ++/*152632*/ OPC_MoveParent, ++/*152633*/ OPC_CheckChild1Same, 0, ++/*152635*/ OPC_MoveParent, ++/*152636*/ OPC_CheckChild1Same, 1, ++/*152638*/ OPC_MoveParent, ++/*152639*/ OPC_MoveChild1, ++/*152640*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*152643*/ OPC_CheckChild0Integer, 7, ++/*152645*/ OPC_CheckChild0Type, MVT::i32, ++/*152647*/ OPC_CheckChild1Integer, 7, ++/*152649*/ OPC_CheckChild1Type, MVT::i32, ++/*152651*/ OPC_CheckChild2Integer, 7, ++/*152653*/ OPC_CheckChild2Type, MVT::i32, ++/*152655*/ OPC_CheckChild3Integer, 7, ++/*152657*/ OPC_CheckChild3Type, MVT::i32, ++/*152659*/ OPC_CheckChild4Integer, 7, ++/*152661*/ OPC_CheckChild4Type, MVT::i32, ++/*152663*/ OPC_MoveChild5, ++/*152664*/ OPC_CheckInteger, 7, ++/*152666*/ OPC_CheckType, MVT::i32, ++/*152668*/ OPC_MoveParent, ++/*152669*/ OPC_MoveChild6, ++/*152670*/ OPC_CheckInteger, 7, ++/*152672*/ OPC_CheckType, MVT::i32, ++/*152674*/ OPC_MoveParent, ++/*152675*/ OPC_MoveChild7, ++/*152676*/ OPC_CheckInteger, 7, ++/*152678*/ OPC_CheckType, MVT::i32, ++/*152680*/ OPC_MoveParent, ++/*152681*/ OPC_MoveChild, 8, ++/*152683*/ OPC_CheckInteger, 7, ++/*152685*/ OPC_CheckType, MVT::i32, ++/*152687*/ OPC_MoveParent, ++/*152688*/ OPC_MoveChild, 9, ++/*152690*/ OPC_CheckInteger, 7, ++/*152692*/ OPC_CheckType, MVT::i32, ++/*152694*/ OPC_MoveParent, ++/*152695*/ OPC_MoveChild, 10, ++/*152697*/ OPC_CheckInteger, 7, ++/*152699*/ OPC_CheckType, MVT::i32, ++/*152701*/ OPC_MoveParent, ++/*152702*/ OPC_MoveChild, 11, ++/*152704*/ OPC_CheckInteger, 7, ++/*152706*/ OPC_CheckType, MVT::i32, ++/*152708*/ OPC_MoveParent, ++/*152709*/ OPC_MoveChild, 12, ++/*152711*/ OPC_CheckInteger, 7, ++/*152713*/ OPC_CheckType, MVT::i32, ++/*152715*/ OPC_MoveParent, ++/*152716*/ OPC_MoveChild, 13, ++/*152718*/ OPC_CheckInteger, 7, ++/*152720*/ OPC_CheckType, MVT::i32, ++/*152722*/ OPC_MoveParent, ++/*152723*/ OPC_MoveChild, 14, ++/*152725*/ OPC_CheckInteger, 7, ++/*152727*/ OPC_CheckType, MVT::i32, ++/*152729*/ OPC_MoveParent, ++/*152730*/ OPC_MoveChild, 15, ++/*152732*/ OPC_CheckInteger, 7, ++/*152734*/ OPC_CheckType, MVT::i32, ++/*152736*/ OPC_MoveParent, ++/*152737*/ OPC_MoveChild, 16, ++/*152739*/ OPC_CheckInteger, 7, ++/*152741*/ OPC_CheckType, MVT::i32, ++/*152743*/ OPC_MoveParent, ++/*152744*/ OPC_MoveChild, 17, ++/*152746*/ OPC_CheckInteger, 7, ++/*152748*/ OPC_CheckType, MVT::i32, ++/*152750*/ OPC_MoveParent, ++/*152751*/ OPC_MoveChild, 18, ++/*152753*/ OPC_CheckInteger, 7, ++/*152755*/ OPC_CheckType, MVT::i32, ++/*152757*/ OPC_MoveParent, ++/*152758*/ OPC_MoveChild, 19, ++/*152760*/ OPC_CheckInteger, 7, ++/*152762*/ OPC_CheckType, MVT::i32, ++/*152764*/ OPC_MoveParent, ++/*152765*/ OPC_MoveChild, 20, ++/*152767*/ OPC_CheckInteger, 7, ++/*152769*/ OPC_CheckType, MVT::i32, ++/*152771*/ OPC_MoveParent, ++/*152772*/ OPC_MoveChild, 21, ++/*152774*/ OPC_CheckInteger, 7, ++/*152776*/ OPC_CheckType, MVT::i32, ++/*152778*/ OPC_MoveParent, ++/*152779*/ OPC_MoveChild, 22, ++/*152781*/ OPC_CheckInteger, 7, ++/*152783*/ OPC_CheckType, MVT::i32, ++/*152785*/ OPC_MoveParent, ++/*152786*/ OPC_MoveChild, 23, ++/*152788*/ OPC_CheckInteger, 7, ++/*152790*/ OPC_CheckType, MVT::i32, ++/*152792*/ OPC_MoveParent, ++/*152793*/ OPC_MoveChild, 24, ++/*152795*/ OPC_CheckInteger, 7, ++/*152797*/ OPC_CheckType, MVT::i32, ++/*152799*/ OPC_MoveParent, ++/*152800*/ OPC_MoveChild, 25, ++/*152802*/ OPC_CheckInteger, 7, ++/*152804*/ OPC_CheckType, MVT::i32, ++/*152806*/ OPC_MoveParent, ++/*152807*/ OPC_MoveChild, 26, ++/*152809*/ OPC_CheckInteger, 7, ++/*152811*/ OPC_CheckType, MVT::i32, ++/*152813*/ OPC_MoveParent, ++/*152814*/ OPC_MoveChild, 27, ++/*152816*/ OPC_CheckInteger, 7, ++/*152818*/ OPC_CheckType, MVT::i32, ++/*152820*/ OPC_MoveParent, ++/*152821*/ OPC_MoveChild, 28, ++/*152823*/ OPC_CheckInteger, 7, ++/*152825*/ OPC_CheckType, MVT::i32, ++/*152827*/ OPC_MoveParent, ++/*152828*/ OPC_MoveChild, 29, ++/*152830*/ OPC_CheckInteger, 7, ++/*152832*/ OPC_CheckType, MVT::i32, ++/*152834*/ OPC_MoveParent, ++/*152835*/ OPC_MoveChild, 30, ++/*152837*/ OPC_CheckInteger, 7, ++/*152839*/ OPC_CheckType, MVT::i32, ++/*152841*/ OPC_MoveParent, ++/*152842*/ OPC_MoveChild, 31, ++/*152844*/ OPC_CheckInteger, 7, ++/*152846*/ OPC_CheckType, MVT::i32, ++/*152848*/ OPC_MoveParent, ++/*152849*/ OPC_CheckType, MVT::v32i8, ++/*152851*/ OPC_MoveParent, ++/*152852*/ OPC_MoveParent, ++/*152853*/ OPC_MoveParent, ++/*152854*/ OPC_MoveChild1, ++/*152855*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*152858*/ OPC_CheckChild0Integer, 1, ++/*152860*/ OPC_CheckChild0Type, MVT::i32, ++/*152862*/ OPC_CheckChild1Integer, 1, ++/*152864*/ OPC_CheckChild1Type, MVT::i32, ++/*152866*/ OPC_CheckChild2Integer, 1, ++/*152868*/ OPC_CheckChild2Type, MVT::i32, ++/*152870*/ OPC_CheckChild3Integer, 1, ++/*152872*/ OPC_CheckChild3Type, MVT::i32, ++/*152874*/ OPC_CheckChild4Integer, 1, ++/*152876*/ OPC_CheckChild4Type, MVT::i32, ++/*152878*/ OPC_MoveChild5, ++/*152879*/ OPC_CheckInteger, 1, ++/*152881*/ OPC_CheckType, MVT::i32, ++/*152883*/ OPC_MoveParent, ++/*152884*/ OPC_MoveChild6, ++/*152885*/ OPC_CheckInteger, 1, ++/*152887*/ OPC_CheckType, MVT::i32, ++/*152889*/ OPC_MoveParent, ++/*152890*/ OPC_MoveChild7, ++/*152891*/ OPC_CheckInteger, 1, ++/*152893*/ OPC_CheckType, MVT::i32, ++/*152895*/ OPC_MoveParent, ++/*152896*/ OPC_MoveChild, 8, ++/*152898*/ OPC_CheckInteger, 1, ++/*152900*/ OPC_CheckType, MVT::i32, ++/*152902*/ OPC_MoveParent, ++/*152903*/ OPC_MoveChild, 9, ++/*152905*/ OPC_CheckInteger, 1, ++/*152907*/ OPC_CheckType, MVT::i32, ++/*152909*/ OPC_MoveParent, ++/*152910*/ OPC_MoveChild, 10, ++/*152912*/ OPC_CheckInteger, 1, ++/*152914*/ OPC_CheckType, MVT::i32, ++/*152916*/ OPC_MoveParent, ++/*152917*/ OPC_MoveChild, 11, ++/*152919*/ OPC_CheckInteger, 1, ++/*152921*/ OPC_CheckType, MVT::i32, ++/*152923*/ OPC_MoveParent, ++/*152924*/ OPC_MoveChild, 12, ++/*152926*/ OPC_CheckInteger, 1, ++/*152928*/ OPC_CheckType, MVT::i32, ++/*152930*/ OPC_MoveParent, ++/*152931*/ OPC_MoveChild, 13, ++/*152933*/ OPC_CheckInteger, 1, ++/*152935*/ OPC_CheckType, MVT::i32, ++/*152937*/ OPC_MoveParent, ++/*152938*/ OPC_MoveChild, 14, ++/*152940*/ OPC_CheckInteger, 1, ++/*152942*/ OPC_CheckType, MVT::i32, ++/*152944*/ OPC_MoveParent, ++/*152945*/ OPC_MoveChild, 15, ++/*152947*/ OPC_CheckInteger, 1, ++/*152949*/ OPC_CheckType, MVT::i32, ++/*152951*/ OPC_MoveParent, ++/*152952*/ OPC_MoveChild, 16, ++/*152954*/ OPC_CheckInteger, 1, ++/*152956*/ OPC_CheckType, MVT::i32, ++/*152958*/ OPC_MoveParent, ++/*152959*/ OPC_MoveChild, 17, ++/*152961*/ OPC_CheckInteger, 1, ++/*152963*/ OPC_CheckType, MVT::i32, ++/*152965*/ OPC_MoveParent, ++/*152966*/ OPC_MoveChild, 18, ++/*152968*/ OPC_CheckInteger, 1, ++/*152970*/ OPC_CheckType, MVT::i32, ++/*152972*/ OPC_MoveParent, ++/*152973*/ OPC_MoveChild, 19, ++/*152975*/ OPC_CheckInteger, 1, ++/*152977*/ OPC_CheckType, MVT::i32, ++/*152979*/ OPC_MoveParent, ++/*152980*/ OPC_MoveChild, 20, ++/*152982*/ OPC_CheckInteger, 1, ++/*152984*/ OPC_CheckType, MVT::i32, ++/*152986*/ OPC_MoveParent, ++/*152987*/ OPC_MoveChild, 21, ++/*152989*/ OPC_CheckInteger, 1, ++/*152991*/ OPC_CheckType, MVT::i32, ++/*152993*/ OPC_MoveParent, ++/*152994*/ OPC_MoveChild, 22, ++/*152996*/ OPC_CheckInteger, 1, ++/*152998*/ OPC_CheckType, MVT::i32, ++/*153000*/ OPC_MoveParent, ++/*153001*/ OPC_MoveChild, 23, ++/*153003*/ OPC_CheckInteger, 1, ++/*153005*/ OPC_CheckType, MVT::i32, ++/*153007*/ OPC_MoveParent, ++/*153008*/ OPC_MoveChild, 24, ++/*153010*/ OPC_CheckInteger, 1, ++/*153012*/ OPC_CheckType, MVT::i32, ++/*153014*/ OPC_MoveParent, ++/*153015*/ OPC_MoveChild, 25, ++/*153017*/ OPC_CheckInteger, 1, ++/*153019*/ OPC_CheckType, MVT::i32, ++/*153021*/ OPC_MoveParent, ++/*153022*/ OPC_MoveChild, 26, ++/*153024*/ OPC_CheckInteger, 1, ++/*153026*/ OPC_CheckType, MVT::i32, ++/*153028*/ OPC_MoveParent, ++/*153029*/ OPC_MoveChild, 27, ++/*153031*/ OPC_CheckInteger, 1, ++/*153033*/ OPC_CheckType, MVT::i32, ++/*153035*/ OPC_MoveParent, ++/*153036*/ OPC_MoveChild, 28, ++/*153038*/ OPC_CheckInteger, 1, ++/*153040*/ OPC_CheckType, MVT::i32, ++/*153042*/ OPC_MoveParent, ++/*153043*/ OPC_MoveChild, 29, ++/*153045*/ OPC_CheckInteger, 1, ++/*153047*/ OPC_CheckType, MVT::i32, ++/*153049*/ OPC_MoveParent, ++/*153050*/ OPC_MoveChild, 30, ++/*153052*/ OPC_CheckInteger, 1, ++/*153054*/ OPC_CheckType, MVT::i32, ++/*153056*/ OPC_MoveParent, ++/*153057*/ OPC_MoveChild, 31, ++/*153059*/ OPC_CheckInteger, 1, ++/*153061*/ OPC_CheckType, MVT::i32, ++/*153063*/ OPC_MoveParent, ++/*153064*/ OPC_CheckType, MVT::v32i8, ++/*153066*/ OPC_MoveParent, ++/*153067*/ OPC_CheckType, MVT::v32i8, ++/*153069*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*153071*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a), LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*153079*/ /*Scope*/ 17|128,5/*657*/, /*->153738*/ ++/*153081*/ OPC_CheckChild0Same, 0, ++/*153083*/ OPC_MoveChild1, ++/*153084*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*153087*/ OPC_CheckChild0Integer, 1, ++/*153089*/ OPC_CheckChild0Type, MVT::i32, ++/*153091*/ OPC_CheckChild1Integer, 1, ++/*153093*/ OPC_CheckChild1Type, MVT::i32, ++/*153095*/ OPC_CheckChild2Integer, 1, ++/*153097*/ OPC_CheckChild2Type, MVT::i32, ++/*153099*/ OPC_CheckChild3Integer, 1, ++/*153101*/ OPC_CheckChild3Type, MVT::i32, ++/*153103*/ OPC_CheckChild4Integer, 1, ++/*153105*/ OPC_CheckChild4Type, MVT::i32, ++/*153107*/ OPC_MoveChild5, ++/*153108*/ OPC_CheckInteger, 1, ++/*153110*/ OPC_CheckType, MVT::i32, ++/*153112*/ OPC_MoveParent, ++/*153113*/ OPC_MoveChild6, ++/*153114*/ OPC_CheckInteger, 1, ++/*153116*/ OPC_CheckType, MVT::i32, ++/*153118*/ OPC_MoveParent, ++/*153119*/ OPC_MoveChild7, ++/*153120*/ OPC_CheckInteger, 1, ++/*153122*/ OPC_CheckType, MVT::i32, ++/*153124*/ OPC_MoveParent, ++/*153125*/ OPC_MoveChild, 8, ++/*153127*/ OPC_CheckInteger, 1, ++/*153129*/ OPC_CheckType, MVT::i32, ++/*153131*/ OPC_MoveParent, ++/*153132*/ OPC_MoveChild, 9, ++/*153134*/ OPC_CheckInteger, 1, ++/*153136*/ OPC_CheckType, MVT::i32, ++/*153138*/ OPC_MoveParent, ++/*153139*/ OPC_MoveChild, 10, ++/*153141*/ OPC_CheckInteger, 1, ++/*153143*/ OPC_CheckType, MVT::i32, ++/*153145*/ OPC_MoveParent, ++/*153146*/ OPC_MoveChild, 11, ++/*153148*/ OPC_CheckInteger, 1, ++/*153150*/ OPC_CheckType, MVT::i32, ++/*153152*/ OPC_MoveParent, ++/*153153*/ OPC_MoveChild, 12, ++/*153155*/ OPC_CheckInteger, 1, ++/*153157*/ OPC_CheckType, MVT::i32, ++/*153159*/ OPC_MoveParent, ++/*153160*/ OPC_MoveChild, 13, ++/*153162*/ OPC_CheckInteger, 1, ++/*153164*/ OPC_CheckType, MVT::i32, ++/*153166*/ OPC_MoveParent, ++/*153167*/ OPC_MoveChild, 14, ++/*153169*/ OPC_CheckInteger, 1, ++/*153171*/ OPC_CheckType, MVT::i32, ++/*153173*/ OPC_MoveParent, ++/*153174*/ OPC_MoveChild, 15, ++/*153176*/ OPC_CheckInteger, 1, ++/*153178*/ OPC_CheckType, MVT::i32, ++/*153180*/ OPC_MoveParent, ++/*153181*/ OPC_MoveChild, 16, ++/*153183*/ OPC_CheckInteger, 1, ++/*153185*/ OPC_CheckType, MVT::i32, ++/*153187*/ OPC_MoveParent, ++/*153188*/ OPC_MoveChild, 17, ++/*153190*/ OPC_CheckInteger, 1, ++/*153192*/ OPC_CheckType, MVT::i32, ++/*153194*/ OPC_MoveParent, ++/*153195*/ OPC_MoveChild, 18, ++/*153197*/ OPC_CheckInteger, 1, ++/*153199*/ OPC_CheckType, MVT::i32, ++/*153201*/ OPC_MoveParent, ++/*153202*/ OPC_MoveChild, 19, ++/*153204*/ OPC_CheckInteger, 1, ++/*153206*/ OPC_CheckType, MVT::i32, ++/*153208*/ OPC_MoveParent, ++/*153209*/ OPC_MoveChild, 20, ++/*153211*/ OPC_CheckInteger, 1, ++/*153213*/ OPC_CheckType, MVT::i32, ++/*153215*/ OPC_MoveParent, ++/*153216*/ OPC_MoveChild, 21, ++/*153218*/ OPC_CheckInteger, 1, ++/*153220*/ OPC_CheckType, MVT::i32, ++/*153222*/ OPC_MoveParent, ++/*153223*/ OPC_MoveChild, 22, ++/*153225*/ OPC_CheckInteger, 1, ++/*153227*/ OPC_CheckType, MVT::i32, ++/*153229*/ OPC_MoveParent, ++/*153230*/ OPC_MoveChild, 23, ++/*153232*/ OPC_CheckInteger, 1, ++/*153234*/ OPC_CheckType, MVT::i32, ++/*153236*/ OPC_MoveParent, ++/*153237*/ OPC_MoveChild, 24, ++/*153239*/ OPC_CheckInteger, 1, ++/*153241*/ OPC_CheckType, MVT::i32, ++/*153243*/ OPC_MoveParent, ++/*153244*/ OPC_MoveChild, 25, ++/*153246*/ OPC_CheckInteger, 1, ++/*153248*/ OPC_CheckType, MVT::i32, ++/*153250*/ OPC_MoveParent, ++/*153251*/ OPC_MoveChild, 26, ++/*153253*/ OPC_CheckInteger, 1, ++/*153255*/ OPC_CheckType, MVT::i32, ++/*153257*/ OPC_MoveParent, ++/*153258*/ OPC_MoveChild, 27, ++/*153260*/ OPC_CheckInteger, 1, ++/*153262*/ OPC_CheckType, MVT::i32, ++/*153264*/ OPC_MoveParent, ++/*153265*/ OPC_MoveChild, 28, ++/*153267*/ OPC_CheckInteger, 1, ++/*153269*/ OPC_CheckType, MVT::i32, ++/*153271*/ OPC_MoveParent, ++/*153272*/ OPC_MoveChild, 29, ++/*153274*/ OPC_CheckInteger, 1, ++/*153276*/ OPC_CheckType, MVT::i32, ++/*153278*/ OPC_MoveParent, ++/*153279*/ OPC_MoveChild, 30, ++/*153281*/ OPC_CheckInteger, 1, ++/*153283*/ OPC_CheckType, MVT::i32, ++/*153285*/ OPC_MoveParent, ++/*153286*/ OPC_MoveChild, 31, ++/*153288*/ OPC_CheckInteger, 1, ++/*153290*/ OPC_CheckType, MVT::i32, ++/*153292*/ OPC_MoveParent, ++/*153293*/ OPC_MoveParent, ++/*153294*/ OPC_MoveParent, ++/*153295*/ OPC_CheckChild1Same, 1, ++/*153297*/ OPC_MoveParent, ++/*153298*/ OPC_MoveChild1, ++/*153299*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*153302*/ OPC_CheckChild0Integer, 7, ++/*153304*/ OPC_CheckChild0Type, MVT::i32, ++/*153306*/ OPC_CheckChild1Integer, 7, ++/*153308*/ OPC_CheckChild1Type, MVT::i32, ++/*153310*/ OPC_CheckChild2Integer, 7, ++/*153312*/ OPC_CheckChild2Type, MVT::i32, ++/*153314*/ OPC_CheckChild3Integer, 7, ++/*153316*/ OPC_CheckChild3Type, MVT::i32, ++/*153318*/ OPC_CheckChild4Integer, 7, ++/*153320*/ OPC_CheckChild4Type, MVT::i32, ++/*153322*/ OPC_MoveChild5, ++/*153323*/ OPC_CheckInteger, 7, ++/*153325*/ OPC_CheckType, MVT::i32, ++/*153327*/ OPC_MoveParent, ++/*153328*/ OPC_MoveChild6, ++/*153329*/ OPC_CheckInteger, 7, ++/*153331*/ OPC_CheckType, MVT::i32, ++/*153333*/ OPC_MoveParent, ++/*153334*/ OPC_MoveChild7, ++/*153335*/ OPC_CheckInteger, 7, ++/*153337*/ OPC_CheckType, MVT::i32, ++/*153339*/ OPC_MoveParent, ++/*153340*/ OPC_MoveChild, 8, ++/*153342*/ OPC_CheckInteger, 7, ++/*153344*/ OPC_CheckType, MVT::i32, ++/*153346*/ OPC_MoveParent, ++/*153347*/ OPC_MoveChild, 9, ++/*153349*/ OPC_CheckInteger, 7, ++/*153351*/ OPC_CheckType, MVT::i32, ++/*153353*/ OPC_MoveParent, ++/*153354*/ OPC_MoveChild, 10, ++/*153356*/ OPC_CheckInteger, 7, ++/*153358*/ OPC_CheckType, MVT::i32, ++/*153360*/ OPC_MoveParent, ++/*153361*/ OPC_MoveChild, 11, ++/*153363*/ OPC_CheckInteger, 7, ++/*153365*/ OPC_CheckType, MVT::i32, ++/*153367*/ OPC_MoveParent, ++/*153368*/ OPC_MoveChild, 12, ++/*153370*/ OPC_CheckInteger, 7, ++/*153372*/ OPC_CheckType, MVT::i32, ++/*153374*/ OPC_MoveParent, ++/*153375*/ OPC_MoveChild, 13, ++/*153377*/ OPC_CheckInteger, 7, ++/*153379*/ OPC_CheckType, MVT::i32, ++/*153381*/ OPC_MoveParent, ++/*153382*/ OPC_MoveChild, 14, ++/*153384*/ OPC_CheckInteger, 7, ++/*153386*/ OPC_CheckType, MVT::i32, ++/*153388*/ OPC_MoveParent, ++/*153389*/ OPC_MoveChild, 15, ++/*153391*/ OPC_CheckInteger, 7, ++/*153393*/ OPC_CheckType, MVT::i32, ++/*153395*/ OPC_MoveParent, ++/*153396*/ OPC_MoveChild, 16, ++/*153398*/ OPC_CheckInteger, 7, ++/*153400*/ OPC_CheckType, MVT::i32, ++/*153402*/ OPC_MoveParent, ++/*153403*/ OPC_MoveChild, 17, ++/*153405*/ OPC_CheckInteger, 7, ++/*153407*/ OPC_CheckType, MVT::i32, ++/*153409*/ OPC_MoveParent, ++/*153410*/ OPC_MoveChild, 18, ++/*153412*/ OPC_CheckInteger, 7, ++/*153414*/ OPC_CheckType, MVT::i32, ++/*153416*/ OPC_MoveParent, ++/*153417*/ OPC_MoveChild, 19, ++/*153419*/ OPC_CheckInteger, 7, ++/*153421*/ OPC_CheckType, MVT::i32, ++/*153423*/ OPC_MoveParent, ++/*153424*/ OPC_MoveChild, 20, ++/*153426*/ OPC_CheckInteger, 7, ++/*153428*/ OPC_CheckType, MVT::i32, ++/*153430*/ OPC_MoveParent, ++/*153431*/ OPC_MoveChild, 21, ++/*153433*/ OPC_CheckInteger, 7, ++/*153435*/ OPC_CheckType, MVT::i32, ++/*153437*/ OPC_MoveParent, ++/*153438*/ OPC_MoveChild, 22, ++/*153440*/ OPC_CheckInteger, 7, ++/*153442*/ OPC_CheckType, MVT::i32, ++/*153444*/ OPC_MoveParent, ++/*153445*/ OPC_MoveChild, 23, ++/*153447*/ OPC_CheckInteger, 7, ++/*153449*/ OPC_CheckType, MVT::i32, ++/*153451*/ OPC_MoveParent, ++/*153452*/ OPC_MoveChild, 24, ++/*153454*/ OPC_CheckInteger, 7, ++/*153456*/ OPC_CheckType, MVT::i32, ++/*153458*/ OPC_MoveParent, ++/*153459*/ OPC_MoveChild, 25, ++/*153461*/ OPC_CheckInteger, 7, ++/*153463*/ OPC_CheckType, MVT::i32, ++/*153465*/ OPC_MoveParent, ++/*153466*/ OPC_MoveChild, 26, ++/*153468*/ OPC_CheckInteger, 7, ++/*153470*/ OPC_CheckType, MVT::i32, ++/*153472*/ OPC_MoveParent, ++/*153473*/ OPC_MoveChild, 27, ++/*153475*/ OPC_CheckInteger, 7, ++/*153477*/ OPC_CheckType, MVT::i32, ++/*153479*/ OPC_MoveParent, ++/*153480*/ OPC_MoveChild, 28, ++/*153482*/ OPC_CheckInteger, 7, ++/*153484*/ OPC_CheckType, MVT::i32, ++/*153486*/ OPC_MoveParent, ++/*153487*/ OPC_MoveChild, 29, ++/*153489*/ OPC_CheckInteger, 7, ++/*153491*/ OPC_CheckType, MVT::i32, ++/*153493*/ OPC_MoveParent, ++/*153494*/ OPC_MoveChild, 30, ++/*153496*/ OPC_CheckInteger, 7, ++/*153498*/ OPC_CheckType, MVT::i32, ++/*153500*/ OPC_MoveParent, ++/*153501*/ OPC_MoveChild, 31, ++/*153503*/ OPC_CheckInteger, 7, ++/*153505*/ OPC_CheckType, MVT::i32, ++/*153507*/ OPC_MoveParent, ++/*153508*/ OPC_CheckType, MVT::v32i8, ++/*153510*/ OPC_MoveParent, ++/*153511*/ OPC_MoveParent, ++/*153512*/ OPC_MoveParent, ++/*153513*/ OPC_MoveChild1, ++/*153514*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*153517*/ OPC_CheckChild0Integer, 1, ++/*153519*/ OPC_CheckChild0Type, MVT::i32, ++/*153521*/ OPC_CheckChild1Integer, 1, ++/*153523*/ OPC_CheckChild1Type, MVT::i32, ++/*153525*/ OPC_CheckChild2Integer, 1, ++/*153527*/ OPC_CheckChild2Type, MVT::i32, ++/*153529*/ OPC_CheckChild3Integer, 1, ++/*153531*/ OPC_CheckChild3Type, MVT::i32, ++/*153533*/ OPC_CheckChild4Integer, 1, ++/*153535*/ OPC_CheckChild4Type, MVT::i32, ++/*153537*/ OPC_MoveChild5, ++/*153538*/ OPC_CheckInteger, 1, ++/*153540*/ OPC_CheckType, MVT::i32, ++/*153542*/ OPC_MoveParent, ++/*153543*/ OPC_MoveChild6, ++/*153544*/ OPC_CheckInteger, 1, ++/*153546*/ OPC_CheckType, MVT::i32, ++/*153548*/ OPC_MoveParent, ++/*153549*/ OPC_MoveChild7, ++/*153550*/ OPC_CheckInteger, 1, ++/*153552*/ OPC_CheckType, MVT::i32, ++/*153554*/ OPC_MoveParent, ++/*153555*/ OPC_MoveChild, 8, ++/*153557*/ OPC_CheckInteger, 1, ++/*153559*/ OPC_CheckType, MVT::i32, ++/*153561*/ OPC_MoveParent, ++/*153562*/ OPC_MoveChild, 9, ++/*153564*/ OPC_CheckInteger, 1, ++/*153566*/ OPC_CheckType, MVT::i32, ++/*153568*/ OPC_MoveParent, ++/*153569*/ OPC_MoveChild, 10, ++/*153571*/ OPC_CheckInteger, 1, ++/*153573*/ OPC_CheckType, MVT::i32, ++/*153575*/ OPC_MoveParent, ++/*153576*/ OPC_MoveChild, 11, ++/*153578*/ OPC_CheckInteger, 1, ++/*153580*/ OPC_CheckType, MVT::i32, ++/*153582*/ OPC_MoveParent, ++/*153583*/ OPC_MoveChild, 12, ++/*153585*/ OPC_CheckInteger, 1, ++/*153587*/ OPC_CheckType, MVT::i32, ++/*153589*/ OPC_MoveParent, ++/*153590*/ OPC_MoveChild, 13, ++/*153592*/ OPC_CheckInteger, 1, ++/*153594*/ OPC_CheckType, MVT::i32, ++/*153596*/ OPC_MoveParent, ++/*153597*/ OPC_MoveChild, 14, ++/*153599*/ OPC_CheckInteger, 1, ++/*153601*/ OPC_CheckType, MVT::i32, ++/*153603*/ OPC_MoveParent, ++/*153604*/ OPC_MoveChild, 15, ++/*153606*/ OPC_CheckInteger, 1, ++/*153608*/ OPC_CheckType, MVT::i32, ++/*153610*/ OPC_MoveParent, ++/*153611*/ OPC_MoveChild, 16, ++/*153613*/ OPC_CheckInteger, 1, ++/*153615*/ OPC_CheckType, MVT::i32, ++/*153617*/ OPC_MoveParent, ++/*153618*/ OPC_MoveChild, 17, ++/*153620*/ OPC_CheckInteger, 1, ++/*153622*/ OPC_CheckType, MVT::i32, ++/*153624*/ OPC_MoveParent, ++/*153625*/ OPC_MoveChild, 18, ++/*153627*/ OPC_CheckInteger, 1, ++/*153629*/ OPC_CheckType, MVT::i32, ++/*153631*/ OPC_MoveParent, ++/*153632*/ OPC_MoveChild, 19, ++/*153634*/ OPC_CheckInteger, 1, ++/*153636*/ OPC_CheckType, MVT::i32, ++/*153638*/ OPC_MoveParent, ++/*153639*/ OPC_MoveChild, 20, ++/*153641*/ OPC_CheckInteger, 1, ++/*153643*/ OPC_CheckType, MVT::i32, ++/*153645*/ OPC_MoveParent, ++/*153646*/ OPC_MoveChild, 21, ++/*153648*/ OPC_CheckInteger, 1, ++/*153650*/ OPC_CheckType, MVT::i32, ++/*153652*/ OPC_MoveParent, ++/*153653*/ OPC_MoveChild, 22, ++/*153655*/ OPC_CheckInteger, 1, ++/*153657*/ OPC_CheckType, MVT::i32, ++/*153659*/ OPC_MoveParent, ++/*153660*/ OPC_MoveChild, 23, ++/*153662*/ OPC_CheckInteger, 1, ++/*153664*/ OPC_CheckType, MVT::i32, ++/*153666*/ OPC_MoveParent, ++/*153667*/ OPC_MoveChild, 24, ++/*153669*/ OPC_CheckInteger, 1, ++/*153671*/ OPC_CheckType, MVT::i32, ++/*153673*/ OPC_MoveParent, ++/*153674*/ OPC_MoveChild, 25, ++/*153676*/ OPC_CheckInteger, 1, ++/*153678*/ OPC_CheckType, MVT::i32, ++/*153680*/ OPC_MoveParent, ++/*153681*/ OPC_MoveChild, 26, ++/*153683*/ OPC_CheckInteger, 1, ++/*153685*/ OPC_CheckType, MVT::i32, ++/*153687*/ OPC_MoveParent, ++/*153688*/ OPC_MoveChild, 27, ++/*153690*/ OPC_CheckInteger, 1, ++/*153692*/ OPC_CheckType, MVT::i32, ++/*153694*/ OPC_MoveParent, ++/*153695*/ OPC_MoveChild, 28, ++/*153697*/ OPC_CheckInteger, 1, ++/*153699*/ OPC_CheckType, MVT::i32, ++/*153701*/ OPC_MoveParent, ++/*153702*/ OPC_MoveChild, 29, ++/*153704*/ OPC_CheckInteger, 1, ++/*153706*/ OPC_CheckType, MVT::i32, ++/*153708*/ OPC_MoveParent, ++/*153709*/ OPC_MoveChild, 30, ++/*153711*/ OPC_CheckInteger, 1, ++/*153713*/ OPC_CheckType, MVT::i32, ++/*153715*/ OPC_MoveParent, ++/*153716*/ OPC_MoveChild, 31, ++/*153718*/ OPC_CheckInteger, 1, ++/*153720*/ OPC_CheckType, MVT::i32, ++/*153722*/ OPC_MoveParent, ++/*153723*/ OPC_CheckType, MVT::v32i8, ++/*153725*/ OPC_MoveParent, ++/*153726*/ OPC_CheckType, MVT::v32i8, ++/*153728*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*153730*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*153738*/ /*Scope*/ 17|128,5/*657*/, /*->154397*/ ++/*153740*/ OPC_MoveChild0, ++/*153741*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*153744*/ OPC_CheckChild0Integer, 1, ++/*153746*/ OPC_CheckChild0Type, MVT::i32, ++/*153748*/ OPC_CheckChild1Integer, 1, ++/*153750*/ OPC_CheckChild1Type, MVT::i32, ++/*153752*/ OPC_CheckChild2Integer, 1, ++/*153754*/ OPC_CheckChild2Type, MVT::i32, ++/*153756*/ OPC_CheckChild3Integer, 1, ++/*153758*/ OPC_CheckChild3Type, MVT::i32, ++/*153760*/ OPC_CheckChild4Integer, 1, ++/*153762*/ OPC_CheckChild4Type, MVT::i32, ++/*153764*/ OPC_MoveChild5, ++/*153765*/ OPC_CheckInteger, 1, ++/*153767*/ OPC_CheckType, MVT::i32, ++/*153769*/ OPC_MoveParent, ++/*153770*/ OPC_MoveChild6, ++/*153771*/ OPC_CheckInteger, 1, ++/*153773*/ OPC_CheckType, MVT::i32, ++/*153775*/ OPC_MoveParent, ++/*153776*/ OPC_MoveChild7, ++/*153777*/ OPC_CheckInteger, 1, ++/*153779*/ OPC_CheckType, MVT::i32, ++/*153781*/ OPC_MoveParent, ++/*153782*/ OPC_MoveChild, 8, ++/*153784*/ OPC_CheckInteger, 1, ++/*153786*/ OPC_CheckType, MVT::i32, ++/*153788*/ OPC_MoveParent, ++/*153789*/ OPC_MoveChild, 9, ++/*153791*/ OPC_CheckInteger, 1, ++/*153793*/ OPC_CheckType, MVT::i32, ++/*153795*/ OPC_MoveParent, ++/*153796*/ OPC_MoveChild, 10, ++/*153798*/ OPC_CheckInteger, 1, ++/*153800*/ OPC_CheckType, MVT::i32, ++/*153802*/ OPC_MoveParent, ++/*153803*/ OPC_MoveChild, 11, ++/*153805*/ OPC_CheckInteger, 1, ++/*153807*/ OPC_CheckType, MVT::i32, ++/*153809*/ OPC_MoveParent, ++/*153810*/ OPC_MoveChild, 12, ++/*153812*/ OPC_CheckInteger, 1, ++/*153814*/ OPC_CheckType, MVT::i32, ++/*153816*/ OPC_MoveParent, ++/*153817*/ OPC_MoveChild, 13, ++/*153819*/ OPC_CheckInteger, 1, ++/*153821*/ OPC_CheckType, MVT::i32, ++/*153823*/ OPC_MoveParent, ++/*153824*/ OPC_MoveChild, 14, ++/*153826*/ OPC_CheckInteger, 1, ++/*153828*/ OPC_CheckType, MVT::i32, ++/*153830*/ OPC_MoveParent, ++/*153831*/ OPC_MoveChild, 15, ++/*153833*/ OPC_CheckInteger, 1, ++/*153835*/ OPC_CheckType, MVT::i32, ++/*153837*/ OPC_MoveParent, ++/*153838*/ OPC_MoveChild, 16, ++/*153840*/ OPC_CheckInteger, 1, ++/*153842*/ OPC_CheckType, MVT::i32, ++/*153844*/ OPC_MoveParent, ++/*153845*/ OPC_MoveChild, 17, ++/*153847*/ OPC_CheckInteger, 1, ++/*153849*/ OPC_CheckType, MVT::i32, ++/*153851*/ OPC_MoveParent, ++/*153852*/ OPC_MoveChild, 18, ++/*153854*/ OPC_CheckInteger, 1, ++/*153856*/ OPC_CheckType, MVT::i32, ++/*153858*/ OPC_MoveParent, ++/*153859*/ OPC_MoveChild, 19, ++/*153861*/ OPC_CheckInteger, 1, ++/*153863*/ OPC_CheckType, MVT::i32, ++/*153865*/ OPC_MoveParent, ++/*153866*/ OPC_MoveChild, 20, ++/*153868*/ OPC_CheckInteger, 1, ++/*153870*/ OPC_CheckType, MVT::i32, ++/*153872*/ OPC_MoveParent, ++/*153873*/ OPC_MoveChild, 21, ++/*153875*/ OPC_CheckInteger, 1, ++/*153877*/ OPC_CheckType, MVT::i32, ++/*153879*/ OPC_MoveParent, ++/*153880*/ OPC_MoveChild, 22, ++/*153882*/ OPC_CheckInteger, 1, ++/*153884*/ OPC_CheckType, MVT::i32, ++/*153886*/ OPC_MoveParent, ++/*153887*/ OPC_MoveChild, 23, ++/*153889*/ OPC_CheckInteger, 1, ++/*153891*/ OPC_CheckType, MVT::i32, ++/*153893*/ OPC_MoveParent, ++/*153894*/ OPC_MoveChild, 24, ++/*153896*/ OPC_CheckInteger, 1, ++/*153898*/ OPC_CheckType, MVT::i32, ++/*153900*/ OPC_MoveParent, ++/*153901*/ OPC_MoveChild, 25, ++/*153903*/ OPC_CheckInteger, 1, ++/*153905*/ OPC_CheckType, MVT::i32, ++/*153907*/ OPC_MoveParent, ++/*153908*/ OPC_MoveChild, 26, ++/*153910*/ OPC_CheckInteger, 1, ++/*153912*/ OPC_CheckType, MVT::i32, ++/*153914*/ OPC_MoveParent, ++/*153915*/ OPC_MoveChild, 27, ++/*153917*/ OPC_CheckInteger, 1, ++/*153919*/ OPC_CheckType, MVT::i32, ++/*153921*/ OPC_MoveParent, ++/*153922*/ OPC_MoveChild, 28, ++/*153924*/ OPC_CheckInteger, 1, ++/*153926*/ OPC_CheckType, MVT::i32, ++/*153928*/ OPC_MoveParent, ++/*153929*/ OPC_MoveChild, 29, ++/*153931*/ OPC_CheckInteger, 1, ++/*153933*/ OPC_CheckType, MVT::i32, ++/*153935*/ OPC_MoveParent, ++/*153936*/ OPC_MoveChild, 30, ++/*153938*/ OPC_CheckInteger, 1, ++/*153940*/ OPC_CheckType, MVT::i32, ++/*153942*/ OPC_MoveParent, ++/*153943*/ OPC_MoveChild, 31, ++/*153945*/ OPC_CheckInteger, 1, ++/*153947*/ OPC_CheckType, MVT::i32, ++/*153949*/ OPC_MoveParent, ++/*153950*/ OPC_MoveParent, ++/*153951*/ OPC_CheckChild1Same, 1, ++/*153953*/ OPC_MoveParent, ++/*153954*/ OPC_CheckChild1Same, 0, ++/*153956*/ OPC_MoveParent, ++/*153957*/ OPC_MoveChild1, ++/*153958*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*153961*/ OPC_CheckChild0Integer, 7, ++/*153963*/ OPC_CheckChild0Type, MVT::i32, ++/*153965*/ OPC_CheckChild1Integer, 7, ++/*153967*/ OPC_CheckChild1Type, MVT::i32, ++/*153969*/ OPC_CheckChild2Integer, 7, ++/*153971*/ OPC_CheckChild2Type, MVT::i32, ++/*153973*/ OPC_CheckChild3Integer, 7, ++/*153975*/ OPC_CheckChild3Type, MVT::i32, ++/*153977*/ OPC_CheckChild4Integer, 7, ++/*153979*/ OPC_CheckChild4Type, MVT::i32, ++/*153981*/ OPC_MoveChild5, ++/*153982*/ OPC_CheckInteger, 7, ++/*153984*/ OPC_CheckType, MVT::i32, ++/*153986*/ OPC_MoveParent, ++/*153987*/ OPC_MoveChild6, ++/*153988*/ OPC_CheckInteger, 7, ++/*153990*/ OPC_CheckType, MVT::i32, ++/*153992*/ OPC_MoveParent, ++/*153993*/ OPC_MoveChild7, ++/*153994*/ OPC_CheckInteger, 7, ++/*153996*/ OPC_CheckType, MVT::i32, ++/*153998*/ OPC_MoveParent, ++/*153999*/ OPC_MoveChild, 8, ++/*154001*/ OPC_CheckInteger, 7, ++/*154003*/ OPC_CheckType, MVT::i32, ++/*154005*/ OPC_MoveParent, ++/*154006*/ OPC_MoveChild, 9, ++/*154008*/ OPC_CheckInteger, 7, ++/*154010*/ OPC_CheckType, MVT::i32, ++/*154012*/ OPC_MoveParent, ++/*154013*/ OPC_MoveChild, 10, ++/*154015*/ OPC_CheckInteger, 7, ++/*154017*/ OPC_CheckType, MVT::i32, ++/*154019*/ OPC_MoveParent, ++/*154020*/ OPC_MoveChild, 11, ++/*154022*/ OPC_CheckInteger, 7, ++/*154024*/ OPC_CheckType, MVT::i32, ++/*154026*/ OPC_MoveParent, ++/*154027*/ OPC_MoveChild, 12, ++/*154029*/ OPC_CheckInteger, 7, ++/*154031*/ OPC_CheckType, MVT::i32, ++/*154033*/ OPC_MoveParent, ++/*154034*/ OPC_MoveChild, 13, ++/*154036*/ OPC_CheckInteger, 7, ++/*154038*/ OPC_CheckType, MVT::i32, ++/*154040*/ OPC_MoveParent, ++/*154041*/ OPC_MoveChild, 14, ++/*154043*/ OPC_CheckInteger, 7, ++/*154045*/ OPC_CheckType, MVT::i32, ++/*154047*/ OPC_MoveParent, ++/*154048*/ OPC_MoveChild, 15, ++/*154050*/ OPC_CheckInteger, 7, ++/*154052*/ OPC_CheckType, MVT::i32, ++/*154054*/ OPC_MoveParent, ++/*154055*/ OPC_MoveChild, 16, ++/*154057*/ OPC_CheckInteger, 7, ++/*154059*/ OPC_CheckType, MVT::i32, ++/*154061*/ OPC_MoveParent, ++/*154062*/ OPC_MoveChild, 17, ++/*154064*/ OPC_CheckInteger, 7, ++/*154066*/ OPC_CheckType, MVT::i32, ++/*154068*/ OPC_MoveParent, ++/*154069*/ OPC_MoveChild, 18, ++/*154071*/ OPC_CheckInteger, 7, ++/*154073*/ OPC_CheckType, MVT::i32, ++/*154075*/ OPC_MoveParent, ++/*154076*/ OPC_MoveChild, 19, ++/*154078*/ OPC_CheckInteger, 7, ++/*154080*/ OPC_CheckType, MVT::i32, ++/*154082*/ OPC_MoveParent, ++/*154083*/ OPC_MoveChild, 20, ++/*154085*/ OPC_CheckInteger, 7, ++/*154087*/ OPC_CheckType, MVT::i32, ++/*154089*/ OPC_MoveParent, ++/*154090*/ OPC_MoveChild, 21, ++/*154092*/ OPC_CheckInteger, 7, ++/*154094*/ OPC_CheckType, MVT::i32, ++/*154096*/ OPC_MoveParent, ++/*154097*/ OPC_MoveChild, 22, ++/*154099*/ OPC_CheckInteger, 7, ++/*154101*/ OPC_CheckType, MVT::i32, ++/*154103*/ OPC_MoveParent, ++/*154104*/ OPC_MoveChild, 23, ++/*154106*/ OPC_CheckInteger, 7, ++/*154108*/ OPC_CheckType, MVT::i32, ++/*154110*/ OPC_MoveParent, ++/*154111*/ OPC_MoveChild, 24, ++/*154113*/ OPC_CheckInteger, 7, ++/*154115*/ OPC_CheckType, MVT::i32, ++/*154117*/ OPC_MoveParent, ++/*154118*/ OPC_MoveChild, 25, ++/*154120*/ OPC_CheckInteger, 7, ++/*154122*/ OPC_CheckType, MVT::i32, ++/*154124*/ OPC_MoveParent, ++/*154125*/ OPC_MoveChild, 26, ++/*154127*/ OPC_CheckInteger, 7, ++/*154129*/ OPC_CheckType, MVT::i32, ++/*154131*/ OPC_MoveParent, ++/*154132*/ OPC_MoveChild, 27, ++/*154134*/ OPC_CheckInteger, 7, ++/*154136*/ OPC_CheckType, MVT::i32, ++/*154138*/ OPC_MoveParent, ++/*154139*/ OPC_MoveChild, 28, ++/*154141*/ OPC_CheckInteger, 7, ++/*154143*/ OPC_CheckType, MVT::i32, ++/*154145*/ OPC_MoveParent, ++/*154146*/ OPC_MoveChild, 29, ++/*154148*/ OPC_CheckInteger, 7, ++/*154150*/ OPC_CheckType, MVT::i32, ++/*154152*/ OPC_MoveParent, ++/*154153*/ OPC_MoveChild, 30, ++/*154155*/ OPC_CheckInteger, 7, ++/*154157*/ OPC_CheckType, MVT::i32, ++/*154159*/ OPC_MoveParent, ++/*154160*/ OPC_MoveChild, 31, ++/*154162*/ OPC_CheckInteger, 7, ++/*154164*/ OPC_CheckType, MVT::i32, ++/*154166*/ OPC_MoveParent, ++/*154167*/ OPC_CheckType, MVT::v32i8, ++/*154169*/ OPC_MoveParent, ++/*154170*/ OPC_MoveParent, ++/*154171*/ OPC_MoveParent, ++/*154172*/ OPC_MoveChild1, ++/*154173*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*154176*/ OPC_CheckChild0Integer, 1, ++/*154178*/ OPC_CheckChild0Type, MVT::i32, ++/*154180*/ OPC_CheckChild1Integer, 1, ++/*154182*/ OPC_CheckChild1Type, MVT::i32, ++/*154184*/ OPC_CheckChild2Integer, 1, ++/*154186*/ OPC_CheckChild2Type, MVT::i32, ++/*154188*/ OPC_CheckChild3Integer, 1, ++/*154190*/ OPC_CheckChild3Type, MVT::i32, ++/*154192*/ OPC_CheckChild4Integer, 1, ++/*154194*/ OPC_CheckChild4Type, MVT::i32, ++/*154196*/ OPC_MoveChild5, ++/*154197*/ OPC_CheckInteger, 1, ++/*154199*/ OPC_CheckType, MVT::i32, ++/*154201*/ OPC_MoveParent, ++/*154202*/ OPC_MoveChild6, ++/*154203*/ OPC_CheckInteger, 1, ++/*154205*/ OPC_CheckType, MVT::i32, ++/*154207*/ OPC_MoveParent, ++/*154208*/ OPC_MoveChild7, ++/*154209*/ OPC_CheckInteger, 1, ++/*154211*/ OPC_CheckType, MVT::i32, ++/*154213*/ OPC_MoveParent, ++/*154214*/ OPC_MoveChild, 8, ++/*154216*/ OPC_CheckInteger, 1, ++/*154218*/ OPC_CheckType, MVT::i32, ++/*154220*/ OPC_MoveParent, ++/*154221*/ OPC_MoveChild, 9, ++/*154223*/ OPC_CheckInteger, 1, ++/*154225*/ OPC_CheckType, MVT::i32, ++/*154227*/ OPC_MoveParent, ++/*154228*/ OPC_MoveChild, 10, ++/*154230*/ OPC_CheckInteger, 1, ++/*154232*/ OPC_CheckType, MVT::i32, ++/*154234*/ OPC_MoveParent, ++/*154235*/ OPC_MoveChild, 11, ++/*154237*/ OPC_CheckInteger, 1, ++/*154239*/ OPC_CheckType, MVT::i32, ++/*154241*/ OPC_MoveParent, ++/*154242*/ OPC_MoveChild, 12, ++/*154244*/ OPC_CheckInteger, 1, ++/*154246*/ OPC_CheckType, MVT::i32, ++/*154248*/ OPC_MoveParent, ++/*154249*/ OPC_MoveChild, 13, ++/*154251*/ OPC_CheckInteger, 1, ++/*154253*/ OPC_CheckType, MVT::i32, ++/*154255*/ OPC_MoveParent, ++/*154256*/ OPC_MoveChild, 14, ++/*154258*/ OPC_CheckInteger, 1, ++/*154260*/ OPC_CheckType, MVT::i32, ++/*154262*/ OPC_MoveParent, ++/*154263*/ OPC_MoveChild, 15, ++/*154265*/ OPC_CheckInteger, 1, ++/*154267*/ OPC_CheckType, MVT::i32, ++/*154269*/ OPC_MoveParent, ++/*154270*/ OPC_MoveChild, 16, ++/*154272*/ OPC_CheckInteger, 1, ++/*154274*/ OPC_CheckType, MVT::i32, ++/*154276*/ OPC_MoveParent, ++/*154277*/ OPC_MoveChild, 17, ++/*154279*/ OPC_CheckInteger, 1, ++/*154281*/ OPC_CheckType, MVT::i32, ++/*154283*/ OPC_MoveParent, ++/*154284*/ OPC_MoveChild, 18, ++/*154286*/ OPC_CheckInteger, 1, ++/*154288*/ OPC_CheckType, MVT::i32, ++/*154290*/ OPC_MoveParent, ++/*154291*/ OPC_MoveChild, 19, ++/*154293*/ OPC_CheckInteger, 1, ++/*154295*/ OPC_CheckType, MVT::i32, ++/*154297*/ OPC_MoveParent, ++/*154298*/ OPC_MoveChild, 20, ++/*154300*/ OPC_CheckInteger, 1, ++/*154302*/ OPC_CheckType, MVT::i32, ++/*154304*/ OPC_MoveParent, ++/*154305*/ OPC_MoveChild, 21, ++/*154307*/ OPC_CheckInteger, 1, ++/*154309*/ OPC_CheckType, MVT::i32, ++/*154311*/ OPC_MoveParent, ++/*154312*/ OPC_MoveChild, 22, ++/*154314*/ OPC_CheckInteger, 1, ++/*154316*/ OPC_CheckType, MVT::i32, ++/*154318*/ OPC_MoveParent, ++/*154319*/ OPC_MoveChild, 23, ++/*154321*/ OPC_CheckInteger, 1, ++/*154323*/ OPC_CheckType, MVT::i32, ++/*154325*/ OPC_MoveParent, ++/*154326*/ OPC_MoveChild, 24, ++/*154328*/ OPC_CheckInteger, 1, ++/*154330*/ OPC_CheckType, MVT::i32, ++/*154332*/ OPC_MoveParent, ++/*154333*/ OPC_MoveChild, 25, ++/*154335*/ OPC_CheckInteger, 1, ++/*154337*/ OPC_CheckType, MVT::i32, ++/*154339*/ OPC_MoveParent, ++/*154340*/ OPC_MoveChild, 26, ++/*154342*/ OPC_CheckInteger, 1, ++/*154344*/ OPC_CheckType, MVT::i32, ++/*154346*/ OPC_MoveParent, ++/*154347*/ OPC_MoveChild, 27, ++/*154349*/ OPC_CheckInteger, 1, ++/*154351*/ OPC_CheckType, MVT::i32, ++/*154353*/ OPC_MoveParent, ++/*154354*/ OPC_MoveChild, 28, ++/*154356*/ OPC_CheckInteger, 1, ++/*154358*/ OPC_CheckType, MVT::i32, ++/*154360*/ OPC_MoveParent, ++/*154361*/ OPC_MoveChild, 29, ++/*154363*/ OPC_CheckInteger, 1, ++/*154365*/ OPC_CheckType, MVT::i32, ++/*154367*/ OPC_MoveParent, ++/*154368*/ OPC_MoveChild, 30, ++/*154370*/ OPC_CheckInteger, 1, ++/*154372*/ OPC_CheckType, MVT::i32, ++/*154374*/ OPC_MoveParent, ++/*154375*/ OPC_MoveChild, 31, ++/*154377*/ OPC_CheckInteger, 1, ++/*154379*/ OPC_CheckType, MVT::i32, ++/*154381*/ OPC_MoveParent, ++/*154382*/ OPC_CheckType, MVT::v32i8, ++/*154384*/ OPC_MoveParent, ++/*154385*/ OPC_CheckType, MVT::v32i8, ++/*154387*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*154389*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b), LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*154397*/ /*Scope*/ 17|128,5/*657*/, /*->155056*/ ++/*154399*/ OPC_CheckChild0Same, 1, ++/*154401*/ OPC_MoveChild1, ++/*154402*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*154405*/ OPC_CheckChild0Integer, 1, ++/*154407*/ OPC_CheckChild0Type, MVT::i32, ++/*154409*/ OPC_CheckChild1Integer, 1, ++/*154411*/ OPC_CheckChild1Type, MVT::i32, ++/*154413*/ OPC_CheckChild2Integer, 1, ++/*154415*/ OPC_CheckChild2Type, MVT::i32, ++/*154417*/ OPC_CheckChild3Integer, 1, ++/*154419*/ OPC_CheckChild3Type, MVT::i32, ++/*154421*/ OPC_CheckChild4Integer, 1, ++/*154423*/ OPC_CheckChild4Type, MVT::i32, ++/*154425*/ OPC_MoveChild5, ++/*154426*/ OPC_CheckInteger, 1, ++/*154428*/ OPC_CheckType, MVT::i32, ++/*154430*/ OPC_MoveParent, ++/*154431*/ OPC_MoveChild6, ++/*154432*/ OPC_CheckInteger, 1, ++/*154434*/ OPC_CheckType, MVT::i32, ++/*154436*/ OPC_MoveParent, ++/*154437*/ OPC_MoveChild7, ++/*154438*/ OPC_CheckInteger, 1, ++/*154440*/ OPC_CheckType, MVT::i32, ++/*154442*/ OPC_MoveParent, ++/*154443*/ OPC_MoveChild, 8, ++/*154445*/ OPC_CheckInteger, 1, ++/*154447*/ OPC_CheckType, MVT::i32, ++/*154449*/ OPC_MoveParent, ++/*154450*/ OPC_MoveChild, 9, ++/*154452*/ OPC_CheckInteger, 1, ++/*154454*/ OPC_CheckType, MVT::i32, ++/*154456*/ OPC_MoveParent, ++/*154457*/ OPC_MoveChild, 10, ++/*154459*/ OPC_CheckInteger, 1, ++/*154461*/ OPC_CheckType, MVT::i32, ++/*154463*/ OPC_MoveParent, ++/*154464*/ OPC_MoveChild, 11, ++/*154466*/ OPC_CheckInteger, 1, ++/*154468*/ OPC_CheckType, MVT::i32, ++/*154470*/ OPC_MoveParent, ++/*154471*/ OPC_MoveChild, 12, ++/*154473*/ OPC_CheckInteger, 1, ++/*154475*/ OPC_CheckType, MVT::i32, ++/*154477*/ OPC_MoveParent, ++/*154478*/ OPC_MoveChild, 13, ++/*154480*/ OPC_CheckInteger, 1, ++/*154482*/ OPC_CheckType, MVT::i32, ++/*154484*/ OPC_MoveParent, ++/*154485*/ OPC_MoveChild, 14, ++/*154487*/ OPC_CheckInteger, 1, ++/*154489*/ OPC_CheckType, MVT::i32, ++/*154491*/ OPC_MoveParent, ++/*154492*/ OPC_MoveChild, 15, ++/*154494*/ OPC_CheckInteger, 1, ++/*154496*/ OPC_CheckType, MVT::i32, ++/*154498*/ OPC_MoveParent, ++/*154499*/ OPC_MoveChild, 16, ++/*154501*/ OPC_CheckInteger, 1, ++/*154503*/ OPC_CheckType, MVT::i32, ++/*154505*/ OPC_MoveParent, ++/*154506*/ OPC_MoveChild, 17, ++/*154508*/ OPC_CheckInteger, 1, ++/*154510*/ OPC_CheckType, MVT::i32, ++/*154512*/ OPC_MoveParent, ++/*154513*/ OPC_MoveChild, 18, ++/*154515*/ OPC_CheckInteger, 1, ++/*154517*/ OPC_CheckType, MVT::i32, ++/*154519*/ OPC_MoveParent, ++/*154520*/ OPC_MoveChild, 19, ++/*154522*/ OPC_CheckInteger, 1, ++/*154524*/ OPC_CheckType, MVT::i32, ++/*154526*/ OPC_MoveParent, ++/*154527*/ OPC_MoveChild, 20, ++/*154529*/ OPC_CheckInteger, 1, ++/*154531*/ OPC_CheckType, MVT::i32, ++/*154533*/ OPC_MoveParent, ++/*154534*/ OPC_MoveChild, 21, ++/*154536*/ OPC_CheckInteger, 1, ++/*154538*/ OPC_CheckType, MVT::i32, ++/*154540*/ OPC_MoveParent, ++/*154541*/ OPC_MoveChild, 22, ++/*154543*/ OPC_CheckInteger, 1, ++/*154545*/ OPC_CheckType, MVT::i32, ++/*154547*/ OPC_MoveParent, ++/*154548*/ OPC_MoveChild, 23, ++/*154550*/ OPC_CheckInteger, 1, ++/*154552*/ OPC_CheckType, MVT::i32, ++/*154554*/ OPC_MoveParent, ++/*154555*/ OPC_MoveChild, 24, ++/*154557*/ OPC_CheckInteger, 1, ++/*154559*/ OPC_CheckType, MVT::i32, ++/*154561*/ OPC_MoveParent, ++/*154562*/ OPC_MoveChild, 25, ++/*154564*/ OPC_CheckInteger, 1, ++/*154566*/ OPC_CheckType, MVT::i32, ++/*154568*/ OPC_MoveParent, ++/*154569*/ OPC_MoveChild, 26, ++/*154571*/ OPC_CheckInteger, 1, ++/*154573*/ OPC_CheckType, MVT::i32, ++/*154575*/ OPC_MoveParent, ++/*154576*/ OPC_MoveChild, 27, ++/*154578*/ OPC_CheckInteger, 1, ++/*154580*/ OPC_CheckType, MVT::i32, ++/*154582*/ OPC_MoveParent, ++/*154583*/ OPC_MoveChild, 28, ++/*154585*/ OPC_CheckInteger, 1, ++/*154587*/ OPC_CheckType, MVT::i32, ++/*154589*/ OPC_MoveParent, ++/*154590*/ OPC_MoveChild, 29, ++/*154592*/ OPC_CheckInteger, 1, ++/*154594*/ OPC_CheckType, MVT::i32, ++/*154596*/ OPC_MoveParent, ++/*154597*/ OPC_MoveChild, 30, ++/*154599*/ OPC_CheckInteger, 1, ++/*154601*/ OPC_CheckType, MVT::i32, ++/*154603*/ OPC_MoveParent, ++/*154604*/ OPC_MoveChild, 31, ++/*154606*/ OPC_CheckInteger, 1, ++/*154608*/ OPC_CheckType, MVT::i32, ++/*154610*/ OPC_MoveParent, ++/*154611*/ OPC_MoveParent, ++/*154612*/ OPC_MoveParent, ++/*154613*/ OPC_CheckChild1Same, 0, ++/*154615*/ OPC_MoveParent, ++/*154616*/ OPC_MoveChild1, ++/*154617*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*154620*/ OPC_CheckChild0Integer, 7, ++/*154622*/ OPC_CheckChild0Type, MVT::i32, ++/*154624*/ OPC_CheckChild1Integer, 7, ++/*154626*/ OPC_CheckChild1Type, MVT::i32, ++/*154628*/ OPC_CheckChild2Integer, 7, ++/*154630*/ OPC_CheckChild2Type, MVT::i32, ++/*154632*/ OPC_CheckChild3Integer, 7, ++/*154634*/ OPC_CheckChild3Type, MVT::i32, ++/*154636*/ OPC_CheckChild4Integer, 7, ++/*154638*/ OPC_CheckChild4Type, MVT::i32, ++/*154640*/ OPC_MoveChild5, ++/*154641*/ OPC_CheckInteger, 7, ++/*154643*/ OPC_CheckType, MVT::i32, ++/*154645*/ OPC_MoveParent, ++/*154646*/ OPC_MoveChild6, ++/*154647*/ OPC_CheckInteger, 7, ++/*154649*/ OPC_CheckType, MVT::i32, ++/*154651*/ OPC_MoveParent, ++/*154652*/ OPC_MoveChild7, ++/*154653*/ OPC_CheckInteger, 7, ++/*154655*/ OPC_CheckType, MVT::i32, ++/*154657*/ OPC_MoveParent, ++/*154658*/ OPC_MoveChild, 8, ++/*154660*/ OPC_CheckInteger, 7, ++/*154662*/ OPC_CheckType, MVT::i32, ++/*154664*/ OPC_MoveParent, ++/*154665*/ OPC_MoveChild, 9, ++/*154667*/ OPC_CheckInteger, 7, ++/*154669*/ OPC_CheckType, MVT::i32, ++/*154671*/ OPC_MoveParent, ++/*154672*/ OPC_MoveChild, 10, ++/*154674*/ OPC_CheckInteger, 7, ++/*154676*/ OPC_CheckType, MVT::i32, ++/*154678*/ OPC_MoveParent, ++/*154679*/ OPC_MoveChild, 11, ++/*154681*/ OPC_CheckInteger, 7, ++/*154683*/ OPC_CheckType, MVT::i32, ++/*154685*/ OPC_MoveParent, ++/*154686*/ OPC_MoveChild, 12, ++/*154688*/ OPC_CheckInteger, 7, ++/*154690*/ OPC_CheckType, MVT::i32, ++/*154692*/ OPC_MoveParent, ++/*154693*/ OPC_MoveChild, 13, ++/*154695*/ OPC_CheckInteger, 7, ++/*154697*/ OPC_CheckType, MVT::i32, ++/*154699*/ OPC_MoveParent, ++/*154700*/ OPC_MoveChild, 14, ++/*154702*/ OPC_CheckInteger, 7, ++/*154704*/ OPC_CheckType, MVT::i32, ++/*154706*/ OPC_MoveParent, ++/*154707*/ OPC_MoveChild, 15, ++/*154709*/ OPC_CheckInteger, 7, ++/*154711*/ OPC_CheckType, MVT::i32, ++/*154713*/ OPC_MoveParent, ++/*154714*/ OPC_MoveChild, 16, ++/*154716*/ OPC_CheckInteger, 7, ++/*154718*/ OPC_CheckType, MVT::i32, ++/*154720*/ OPC_MoveParent, ++/*154721*/ OPC_MoveChild, 17, ++/*154723*/ OPC_CheckInteger, 7, ++/*154725*/ OPC_CheckType, MVT::i32, ++/*154727*/ OPC_MoveParent, ++/*154728*/ OPC_MoveChild, 18, ++/*154730*/ OPC_CheckInteger, 7, ++/*154732*/ OPC_CheckType, MVT::i32, ++/*154734*/ OPC_MoveParent, ++/*154735*/ OPC_MoveChild, 19, ++/*154737*/ OPC_CheckInteger, 7, ++/*154739*/ OPC_CheckType, MVT::i32, ++/*154741*/ OPC_MoveParent, ++/*154742*/ OPC_MoveChild, 20, ++/*154744*/ OPC_CheckInteger, 7, ++/*154746*/ OPC_CheckType, MVT::i32, ++/*154748*/ OPC_MoveParent, ++/*154749*/ OPC_MoveChild, 21, ++/*154751*/ OPC_CheckInteger, 7, ++/*154753*/ OPC_CheckType, MVT::i32, ++/*154755*/ OPC_MoveParent, ++/*154756*/ OPC_MoveChild, 22, ++/*154758*/ OPC_CheckInteger, 7, ++/*154760*/ OPC_CheckType, MVT::i32, ++/*154762*/ OPC_MoveParent, ++/*154763*/ OPC_MoveChild, 23, ++/*154765*/ OPC_CheckInteger, 7, ++/*154767*/ OPC_CheckType, MVT::i32, ++/*154769*/ OPC_MoveParent, ++/*154770*/ OPC_MoveChild, 24, ++/*154772*/ OPC_CheckInteger, 7, ++/*154774*/ OPC_CheckType, MVT::i32, ++/*154776*/ OPC_MoveParent, ++/*154777*/ OPC_MoveChild, 25, ++/*154779*/ OPC_CheckInteger, 7, ++/*154781*/ OPC_CheckType, MVT::i32, ++/*154783*/ OPC_MoveParent, ++/*154784*/ OPC_MoveChild, 26, ++/*154786*/ OPC_CheckInteger, 7, ++/*154788*/ OPC_CheckType, MVT::i32, ++/*154790*/ OPC_MoveParent, ++/*154791*/ OPC_MoveChild, 27, ++/*154793*/ OPC_CheckInteger, 7, ++/*154795*/ OPC_CheckType, MVT::i32, ++/*154797*/ OPC_MoveParent, ++/*154798*/ OPC_MoveChild, 28, ++/*154800*/ OPC_CheckInteger, 7, ++/*154802*/ OPC_CheckType, MVT::i32, ++/*154804*/ OPC_MoveParent, ++/*154805*/ OPC_MoveChild, 29, ++/*154807*/ OPC_CheckInteger, 7, ++/*154809*/ OPC_CheckType, MVT::i32, ++/*154811*/ OPC_MoveParent, ++/*154812*/ OPC_MoveChild, 30, ++/*154814*/ OPC_CheckInteger, 7, ++/*154816*/ OPC_CheckType, MVT::i32, ++/*154818*/ OPC_MoveParent, ++/*154819*/ OPC_MoveChild, 31, ++/*154821*/ OPC_CheckInteger, 7, ++/*154823*/ OPC_CheckType, MVT::i32, ++/*154825*/ OPC_MoveParent, ++/*154826*/ OPC_CheckType, MVT::v32i8, ++/*154828*/ OPC_MoveParent, ++/*154829*/ OPC_MoveParent, ++/*154830*/ OPC_MoveParent, ++/*154831*/ OPC_MoveChild1, ++/*154832*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*154835*/ OPC_CheckChild0Integer, 1, ++/*154837*/ OPC_CheckChild0Type, MVT::i32, ++/*154839*/ OPC_CheckChild1Integer, 1, ++/*154841*/ OPC_CheckChild1Type, MVT::i32, ++/*154843*/ OPC_CheckChild2Integer, 1, ++/*154845*/ OPC_CheckChild2Type, MVT::i32, ++/*154847*/ OPC_CheckChild3Integer, 1, ++/*154849*/ OPC_CheckChild3Type, MVT::i32, ++/*154851*/ OPC_CheckChild4Integer, 1, ++/*154853*/ OPC_CheckChild4Type, MVT::i32, ++/*154855*/ OPC_MoveChild5, ++/*154856*/ OPC_CheckInteger, 1, ++/*154858*/ OPC_CheckType, MVT::i32, ++/*154860*/ OPC_MoveParent, ++/*154861*/ OPC_MoveChild6, ++/*154862*/ OPC_CheckInteger, 1, ++/*154864*/ OPC_CheckType, MVT::i32, ++/*154866*/ OPC_MoveParent, ++/*154867*/ OPC_MoveChild7, ++/*154868*/ OPC_CheckInteger, 1, ++/*154870*/ OPC_CheckType, MVT::i32, ++/*154872*/ OPC_MoveParent, ++/*154873*/ OPC_MoveChild, 8, ++/*154875*/ OPC_CheckInteger, 1, ++/*154877*/ OPC_CheckType, MVT::i32, ++/*154879*/ OPC_MoveParent, ++/*154880*/ OPC_MoveChild, 9, ++/*154882*/ OPC_CheckInteger, 1, ++/*154884*/ OPC_CheckType, MVT::i32, ++/*154886*/ OPC_MoveParent, ++/*154887*/ OPC_MoveChild, 10, ++/*154889*/ OPC_CheckInteger, 1, ++/*154891*/ OPC_CheckType, MVT::i32, ++/*154893*/ OPC_MoveParent, ++/*154894*/ OPC_MoveChild, 11, ++/*154896*/ OPC_CheckInteger, 1, ++/*154898*/ OPC_CheckType, MVT::i32, ++/*154900*/ OPC_MoveParent, ++/*154901*/ OPC_MoveChild, 12, ++/*154903*/ OPC_CheckInteger, 1, ++/*154905*/ OPC_CheckType, MVT::i32, ++/*154907*/ OPC_MoveParent, ++/*154908*/ OPC_MoveChild, 13, ++/*154910*/ OPC_CheckInteger, 1, ++/*154912*/ OPC_CheckType, MVT::i32, ++/*154914*/ OPC_MoveParent, ++/*154915*/ OPC_MoveChild, 14, ++/*154917*/ OPC_CheckInteger, 1, ++/*154919*/ OPC_CheckType, MVT::i32, ++/*154921*/ OPC_MoveParent, ++/*154922*/ OPC_MoveChild, 15, ++/*154924*/ OPC_CheckInteger, 1, ++/*154926*/ OPC_CheckType, MVT::i32, ++/*154928*/ OPC_MoveParent, ++/*154929*/ OPC_MoveChild, 16, ++/*154931*/ OPC_CheckInteger, 1, ++/*154933*/ OPC_CheckType, MVT::i32, ++/*154935*/ OPC_MoveParent, ++/*154936*/ OPC_MoveChild, 17, ++/*154938*/ OPC_CheckInteger, 1, ++/*154940*/ OPC_CheckType, MVT::i32, ++/*154942*/ OPC_MoveParent, ++/*154943*/ OPC_MoveChild, 18, ++/*154945*/ OPC_CheckInteger, 1, ++/*154947*/ OPC_CheckType, MVT::i32, ++/*154949*/ OPC_MoveParent, ++/*154950*/ OPC_MoveChild, 19, ++/*154952*/ OPC_CheckInteger, 1, ++/*154954*/ OPC_CheckType, MVT::i32, ++/*154956*/ OPC_MoveParent, ++/*154957*/ OPC_MoveChild, 20, ++/*154959*/ OPC_CheckInteger, 1, ++/*154961*/ OPC_CheckType, MVT::i32, ++/*154963*/ OPC_MoveParent, ++/*154964*/ OPC_MoveChild, 21, ++/*154966*/ OPC_CheckInteger, 1, ++/*154968*/ OPC_CheckType, MVT::i32, ++/*154970*/ OPC_MoveParent, ++/*154971*/ OPC_MoveChild, 22, ++/*154973*/ OPC_CheckInteger, 1, ++/*154975*/ OPC_CheckType, MVT::i32, ++/*154977*/ OPC_MoveParent, ++/*154978*/ OPC_MoveChild, 23, ++/*154980*/ OPC_CheckInteger, 1, ++/*154982*/ OPC_CheckType, MVT::i32, ++/*154984*/ OPC_MoveParent, ++/*154985*/ OPC_MoveChild, 24, ++/*154987*/ OPC_CheckInteger, 1, ++/*154989*/ OPC_CheckType, MVT::i32, ++/*154991*/ OPC_MoveParent, ++/*154992*/ OPC_MoveChild, 25, ++/*154994*/ OPC_CheckInteger, 1, ++/*154996*/ OPC_CheckType, MVT::i32, ++/*154998*/ OPC_MoveParent, ++/*154999*/ OPC_MoveChild, 26, ++/*155001*/ OPC_CheckInteger, 1, ++/*155003*/ OPC_CheckType, MVT::i32, ++/*155005*/ OPC_MoveParent, ++/*155006*/ OPC_MoveChild, 27, ++/*155008*/ OPC_CheckInteger, 1, ++/*155010*/ OPC_CheckType, MVT::i32, ++/*155012*/ OPC_MoveParent, ++/*155013*/ OPC_MoveChild, 28, ++/*155015*/ OPC_CheckInteger, 1, ++/*155017*/ OPC_CheckType, MVT::i32, ++/*155019*/ OPC_MoveParent, ++/*155020*/ OPC_MoveChild, 29, ++/*155022*/ OPC_CheckInteger, 1, ++/*155024*/ OPC_CheckType, MVT::i32, ++/*155026*/ OPC_MoveParent, ++/*155027*/ OPC_MoveChild, 30, ++/*155029*/ OPC_CheckInteger, 1, ++/*155031*/ OPC_CheckType, MVT::i32, ++/*155033*/ OPC_MoveParent, ++/*155034*/ OPC_MoveChild, 31, ++/*155036*/ OPC_CheckInteger, 1, ++/*155038*/ OPC_CheckType, MVT::i32, ++/*155040*/ OPC_MoveParent, ++/*155041*/ OPC_CheckType, MVT::v32i8, ++/*155043*/ OPC_MoveParent, ++/*155044*/ OPC_CheckType, MVT::v32i8, ++/*155046*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*155048*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*155056*/ /*Scope*/ 17|128,5/*657*/, /*->155715*/ ++/*155058*/ OPC_CheckChild0Same, 0, ++/*155060*/ OPC_CheckChild1Same, 1, ++/*155062*/ OPC_MoveParent, ++/*155063*/ OPC_MoveChild1, ++/*155064*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*155067*/ OPC_CheckChild0Integer, 1, ++/*155069*/ OPC_CheckChild0Type, MVT::i32, ++/*155071*/ OPC_CheckChild1Integer, 1, ++/*155073*/ OPC_CheckChild1Type, MVT::i32, ++/*155075*/ OPC_CheckChild2Integer, 1, ++/*155077*/ OPC_CheckChild2Type, MVT::i32, ++/*155079*/ OPC_CheckChild3Integer, 1, ++/*155081*/ OPC_CheckChild3Type, MVT::i32, ++/*155083*/ OPC_CheckChild4Integer, 1, ++/*155085*/ OPC_CheckChild4Type, MVT::i32, ++/*155087*/ OPC_MoveChild5, ++/*155088*/ OPC_CheckInteger, 1, ++/*155090*/ OPC_CheckType, MVT::i32, ++/*155092*/ OPC_MoveParent, ++/*155093*/ OPC_MoveChild6, ++/*155094*/ OPC_CheckInteger, 1, ++/*155096*/ OPC_CheckType, MVT::i32, ++/*155098*/ OPC_MoveParent, ++/*155099*/ OPC_MoveChild7, ++/*155100*/ OPC_CheckInteger, 1, ++/*155102*/ OPC_CheckType, MVT::i32, ++/*155104*/ OPC_MoveParent, ++/*155105*/ OPC_MoveChild, 8, ++/*155107*/ OPC_CheckInteger, 1, ++/*155109*/ OPC_CheckType, MVT::i32, ++/*155111*/ OPC_MoveParent, ++/*155112*/ OPC_MoveChild, 9, ++/*155114*/ OPC_CheckInteger, 1, ++/*155116*/ OPC_CheckType, MVT::i32, ++/*155118*/ OPC_MoveParent, ++/*155119*/ OPC_MoveChild, 10, ++/*155121*/ OPC_CheckInteger, 1, ++/*155123*/ OPC_CheckType, MVT::i32, ++/*155125*/ OPC_MoveParent, ++/*155126*/ OPC_MoveChild, 11, ++/*155128*/ OPC_CheckInteger, 1, ++/*155130*/ OPC_CheckType, MVT::i32, ++/*155132*/ OPC_MoveParent, ++/*155133*/ OPC_MoveChild, 12, ++/*155135*/ OPC_CheckInteger, 1, ++/*155137*/ OPC_CheckType, MVT::i32, ++/*155139*/ OPC_MoveParent, ++/*155140*/ OPC_MoveChild, 13, ++/*155142*/ OPC_CheckInteger, 1, ++/*155144*/ OPC_CheckType, MVT::i32, ++/*155146*/ OPC_MoveParent, ++/*155147*/ OPC_MoveChild, 14, ++/*155149*/ OPC_CheckInteger, 1, ++/*155151*/ OPC_CheckType, MVT::i32, ++/*155153*/ OPC_MoveParent, ++/*155154*/ OPC_MoveChild, 15, ++/*155156*/ OPC_CheckInteger, 1, ++/*155158*/ OPC_CheckType, MVT::i32, ++/*155160*/ OPC_MoveParent, ++/*155161*/ OPC_MoveChild, 16, ++/*155163*/ OPC_CheckInteger, 1, ++/*155165*/ OPC_CheckType, MVT::i32, ++/*155167*/ OPC_MoveParent, ++/*155168*/ OPC_MoveChild, 17, ++/*155170*/ OPC_CheckInteger, 1, ++/*155172*/ OPC_CheckType, MVT::i32, ++/*155174*/ OPC_MoveParent, ++/*155175*/ OPC_MoveChild, 18, ++/*155177*/ OPC_CheckInteger, 1, ++/*155179*/ OPC_CheckType, MVT::i32, ++/*155181*/ OPC_MoveParent, ++/*155182*/ OPC_MoveChild, 19, ++/*155184*/ OPC_CheckInteger, 1, ++/*155186*/ OPC_CheckType, MVT::i32, ++/*155188*/ OPC_MoveParent, ++/*155189*/ OPC_MoveChild, 20, ++/*155191*/ OPC_CheckInteger, 1, ++/*155193*/ OPC_CheckType, MVT::i32, ++/*155195*/ OPC_MoveParent, ++/*155196*/ OPC_MoveChild, 21, ++/*155198*/ OPC_CheckInteger, 1, ++/*155200*/ OPC_CheckType, MVT::i32, ++/*155202*/ OPC_MoveParent, ++/*155203*/ OPC_MoveChild, 22, ++/*155205*/ OPC_CheckInteger, 1, ++/*155207*/ OPC_CheckType, MVT::i32, ++/*155209*/ OPC_MoveParent, ++/*155210*/ OPC_MoveChild, 23, ++/*155212*/ OPC_CheckInteger, 1, ++/*155214*/ OPC_CheckType, MVT::i32, ++/*155216*/ OPC_MoveParent, ++/*155217*/ OPC_MoveChild, 24, ++/*155219*/ OPC_CheckInteger, 1, ++/*155221*/ OPC_CheckType, MVT::i32, ++/*155223*/ OPC_MoveParent, ++/*155224*/ OPC_MoveChild, 25, ++/*155226*/ OPC_CheckInteger, 1, ++/*155228*/ OPC_CheckType, MVT::i32, ++/*155230*/ OPC_MoveParent, ++/*155231*/ OPC_MoveChild, 26, ++/*155233*/ OPC_CheckInteger, 1, ++/*155235*/ OPC_CheckType, MVT::i32, ++/*155237*/ OPC_MoveParent, ++/*155238*/ OPC_MoveChild, 27, ++/*155240*/ OPC_CheckInteger, 1, ++/*155242*/ OPC_CheckType, MVT::i32, ++/*155244*/ OPC_MoveParent, ++/*155245*/ OPC_MoveChild, 28, ++/*155247*/ OPC_CheckInteger, 1, ++/*155249*/ OPC_CheckType, MVT::i32, ++/*155251*/ OPC_MoveParent, ++/*155252*/ OPC_MoveChild, 29, ++/*155254*/ OPC_CheckInteger, 1, ++/*155256*/ OPC_CheckType, MVT::i32, ++/*155258*/ OPC_MoveParent, ++/*155259*/ OPC_MoveChild, 30, ++/*155261*/ OPC_CheckInteger, 1, ++/*155263*/ OPC_CheckType, MVT::i32, ++/*155265*/ OPC_MoveParent, ++/*155266*/ OPC_MoveChild, 31, ++/*155268*/ OPC_CheckInteger, 1, ++/*155270*/ OPC_CheckType, MVT::i32, ++/*155272*/ OPC_MoveParent, ++/*155273*/ OPC_MoveParent, ++/*155274*/ OPC_MoveParent, ++/*155275*/ OPC_MoveChild1, ++/*155276*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*155279*/ OPC_CheckChild0Integer, 7, ++/*155281*/ OPC_CheckChild0Type, MVT::i32, ++/*155283*/ OPC_CheckChild1Integer, 7, ++/*155285*/ OPC_CheckChild1Type, MVT::i32, ++/*155287*/ OPC_CheckChild2Integer, 7, ++/*155289*/ OPC_CheckChild2Type, MVT::i32, ++/*155291*/ OPC_CheckChild3Integer, 7, ++/*155293*/ OPC_CheckChild3Type, MVT::i32, ++/*155295*/ OPC_CheckChild4Integer, 7, ++/*155297*/ OPC_CheckChild4Type, MVT::i32, ++/*155299*/ OPC_MoveChild5, ++/*155300*/ OPC_CheckInteger, 7, ++/*155302*/ OPC_CheckType, MVT::i32, ++/*155304*/ OPC_MoveParent, ++/*155305*/ OPC_MoveChild6, ++/*155306*/ OPC_CheckInteger, 7, ++/*155308*/ OPC_CheckType, MVT::i32, ++/*155310*/ OPC_MoveParent, ++/*155311*/ OPC_MoveChild7, ++/*155312*/ OPC_CheckInteger, 7, ++/*155314*/ OPC_CheckType, MVT::i32, ++/*155316*/ OPC_MoveParent, ++/*155317*/ OPC_MoveChild, 8, ++/*155319*/ OPC_CheckInteger, 7, ++/*155321*/ OPC_CheckType, MVT::i32, ++/*155323*/ OPC_MoveParent, ++/*155324*/ OPC_MoveChild, 9, ++/*155326*/ OPC_CheckInteger, 7, ++/*155328*/ OPC_CheckType, MVT::i32, ++/*155330*/ OPC_MoveParent, ++/*155331*/ OPC_MoveChild, 10, ++/*155333*/ OPC_CheckInteger, 7, ++/*155335*/ OPC_CheckType, MVT::i32, ++/*155337*/ OPC_MoveParent, ++/*155338*/ OPC_MoveChild, 11, ++/*155340*/ OPC_CheckInteger, 7, ++/*155342*/ OPC_CheckType, MVT::i32, ++/*155344*/ OPC_MoveParent, ++/*155345*/ OPC_MoveChild, 12, ++/*155347*/ OPC_CheckInteger, 7, ++/*155349*/ OPC_CheckType, MVT::i32, ++/*155351*/ OPC_MoveParent, ++/*155352*/ OPC_MoveChild, 13, ++/*155354*/ OPC_CheckInteger, 7, ++/*155356*/ OPC_CheckType, MVT::i32, ++/*155358*/ OPC_MoveParent, ++/*155359*/ OPC_MoveChild, 14, ++/*155361*/ OPC_CheckInteger, 7, ++/*155363*/ OPC_CheckType, MVT::i32, ++/*155365*/ OPC_MoveParent, ++/*155366*/ OPC_MoveChild, 15, ++/*155368*/ OPC_CheckInteger, 7, ++/*155370*/ OPC_CheckType, MVT::i32, ++/*155372*/ OPC_MoveParent, ++/*155373*/ OPC_MoveChild, 16, ++/*155375*/ OPC_CheckInteger, 7, ++/*155377*/ OPC_CheckType, MVT::i32, ++/*155379*/ OPC_MoveParent, ++/*155380*/ OPC_MoveChild, 17, ++/*155382*/ OPC_CheckInteger, 7, ++/*155384*/ OPC_CheckType, MVT::i32, ++/*155386*/ OPC_MoveParent, ++/*155387*/ OPC_MoveChild, 18, ++/*155389*/ OPC_CheckInteger, 7, ++/*155391*/ OPC_CheckType, MVT::i32, ++/*155393*/ OPC_MoveParent, ++/*155394*/ OPC_MoveChild, 19, ++/*155396*/ OPC_CheckInteger, 7, ++/*155398*/ OPC_CheckType, MVT::i32, ++/*155400*/ OPC_MoveParent, ++/*155401*/ OPC_MoveChild, 20, ++/*155403*/ OPC_CheckInteger, 7, ++/*155405*/ OPC_CheckType, MVT::i32, ++/*155407*/ OPC_MoveParent, ++/*155408*/ OPC_MoveChild, 21, ++/*155410*/ OPC_CheckInteger, 7, ++/*155412*/ OPC_CheckType, MVT::i32, ++/*155414*/ OPC_MoveParent, ++/*155415*/ OPC_MoveChild, 22, ++/*155417*/ OPC_CheckInteger, 7, ++/*155419*/ OPC_CheckType, MVT::i32, ++/*155421*/ OPC_MoveParent, ++/*155422*/ OPC_MoveChild, 23, ++/*155424*/ OPC_CheckInteger, 7, ++/*155426*/ OPC_CheckType, MVT::i32, ++/*155428*/ OPC_MoveParent, ++/*155429*/ OPC_MoveChild, 24, ++/*155431*/ OPC_CheckInteger, 7, ++/*155433*/ OPC_CheckType, MVT::i32, ++/*155435*/ OPC_MoveParent, ++/*155436*/ OPC_MoveChild, 25, ++/*155438*/ OPC_CheckInteger, 7, ++/*155440*/ OPC_CheckType, MVT::i32, ++/*155442*/ OPC_MoveParent, ++/*155443*/ OPC_MoveChild, 26, ++/*155445*/ OPC_CheckInteger, 7, ++/*155447*/ OPC_CheckType, MVT::i32, ++/*155449*/ OPC_MoveParent, ++/*155450*/ OPC_MoveChild, 27, ++/*155452*/ OPC_CheckInteger, 7, ++/*155454*/ OPC_CheckType, MVT::i32, ++/*155456*/ OPC_MoveParent, ++/*155457*/ OPC_MoveChild, 28, ++/*155459*/ OPC_CheckInteger, 7, ++/*155461*/ OPC_CheckType, MVT::i32, ++/*155463*/ OPC_MoveParent, ++/*155464*/ OPC_MoveChild, 29, ++/*155466*/ OPC_CheckInteger, 7, ++/*155468*/ OPC_CheckType, MVT::i32, ++/*155470*/ OPC_MoveParent, ++/*155471*/ OPC_MoveChild, 30, ++/*155473*/ OPC_CheckInteger, 7, ++/*155475*/ OPC_CheckType, MVT::i32, ++/*155477*/ OPC_MoveParent, ++/*155478*/ OPC_MoveChild, 31, ++/*155480*/ OPC_CheckInteger, 7, ++/*155482*/ OPC_CheckType, MVT::i32, ++/*155484*/ OPC_MoveParent, ++/*155485*/ OPC_CheckType, MVT::v32i8, ++/*155487*/ OPC_MoveParent, ++/*155488*/ OPC_MoveParent, ++/*155489*/ OPC_MoveParent, ++/*155490*/ OPC_MoveChild1, ++/*155491*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*155494*/ OPC_CheckChild0Integer, 1, ++/*155496*/ OPC_CheckChild0Type, MVT::i32, ++/*155498*/ OPC_CheckChild1Integer, 1, ++/*155500*/ OPC_CheckChild1Type, MVT::i32, ++/*155502*/ OPC_CheckChild2Integer, 1, ++/*155504*/ OPC_CheckChild2Type, MVT::i32, ++/*155506*/ OPC_CheckChild3Integer, 1, ++/*155508*/ OPC_CheckChild3Type, MVT::i32, ++/*155510*/ OPC_CheckChild4Integer, 1, ++/*155512*/ OPC_CheckChild4Type, MVT::i32, ++/*155514*/ OPC_MoveChild5, ++/*155515*/ OPC_CheckInteger, 1, ++/*155517*/ OPC_CheckType, MVT::i32, ++/*155519*/ OPC_MoveParent, ++/*155520*/ OPC_MoveChild6, ++/*155521*/ OPC_CheckInteger, 1, ++/*155523*/ OPC_CheckType, MVT::i32, ++/*155525*/ OPC_MoveParent, ++/*155526*/ OPC_MoveChild7, ++/*155527*/ OPC_CheckInteger, 1, ++/*155529*/ OPC_CheckType, MVT::i32, ++/*155531*/ OPC_MoveParent, ++/*155532*/ OPC_MoveChild, 8, ++/*155534*/ OPC_CheckInteger, 1, ++/*155536*/ OPC_CheckType, MVT::i32, ++/*155538*/ OPC_MoveParent, ++/*155539*/ OPC_MoveChild, 9, ++/*155541*/ OPC_CheckInteger, 1, ++/*155543*/ OPC_CheckType, MVT::i32, ++/*155545*/ OPC_MoveParent, ++/*155546*/ OPC_MoveChild, 10, ++/*155548*/ OPC_CheckInteger, 1, ++/*155550*/ OPC_CheckType, MVT::i32, ++/*155552*/ OPC_MoveParent, ++/*155553*/ OPC_MoveChild, 11, ++/*155555*/ OPC_CheckInteger, 1, ++/*155557*/ OPC_CheckType, MVT::i32, ++/*155559*/ OPC_MoveParent, ++/*155560*/ OPC_MoveChild, 12, ++/*155562*/ OPC_CheckInteger, 1, ++/*155564*/ OPC_CheckType, MVT::i32, ++/*155566*/ OPC_MoveParent, ++/*155567*/ OPC_MoveChild, 13, ++/*155569*/ OPC_CheckInteger, 1, ++/*155571*/ OPC_CheckType, MVT::i32, ++/*155573*/ OPC_MoveParent, ++/*155574*/ OPC_MoveChild, 14, ++/*155576*/ OPC_CheckInteger, 1, ++/*155578*/ OPC_CheckType, MVT::i32, ++/*155580*/ OPC_MoveParent, ++/*155581*/ OPC_MoveChild, 15, ++/*155583*/ OPC_CheckInteger, 1, ++/*155585*/ OPC_CheckType, MVT::i32, ++/*155587*/ OPC_MoveParent, ++/*155588*/ OPC_MoveChild, 16, ++/*155590*/ OPC_CheckInteger, 1, ++/*155592*/ OPC_CheckType, MVT::i32, ++/*155594*/ OPC_MoveParent, ++/*155595*/ OPC_MoveChild, 17, ++/*155597*/ OPC_CheckInteger, 1, ++/*155599*/ OPC_CheckType, MVT::i32, ++/*155601*/ OPC_MoveParent, ++/*155602*/ OPC_MoveChild, 18, ++/*155604*/ OPC_CheckInteger, 1, ++/*155606*/ OPC_CheckType, MVT::i32, ++/*155608*/ OPC_MoveParent, ++/*155609*/ OPC_MoveChild, 19, ++/*155611*/ OPC_CheckInteger, 1, ++/*155613*/ OPC_CheckType, MVT::i32, ++/*155615*/ OPC_MoveParent, ++/*155616*/ OPC_MoveChild, 20, ++/*155618*/ OPC_CheckInteger, 1, ++/*155620*/ OPC_CheckType, MVT::i32, ++/*155622*/ OPC_MoveParent, ++/*155623*/ OPC_MoveChild, 21, ++/*155625*/ OPC_CheckInteger, 1, ++/*155627*/ OPC_CheckType, MVT::i32, ++/*155629*/ OPC_MoveParent, ++/*155630*/ OPC_MoveChild, 22, ++/*155632*/ OPC_CheckInteger, 1, ++/*155634*/ OPC_CheckType, MVT::i32, ++/*155636*/ OPC_MoveParent, ++/*155637*/ OPC_MoveChild, 23, ++/*155639*/ OPC_CheckInteger, 1, ++/*155641*/ OPC_CheckType, MVT::i32, ++/*155643*/ OPC_MoveParent, ++/*155644*/ OPC_MoveChild, 24, ++/*155646*/ OPC_CheckInteger, 1, ++/*155648*/ OPC_CheckType, MVT::i32, ++/*155650*/ OPC_MoveParent, ++/*155651*/ OPC_MoveChild, 25, ++/*155653*/ OPC_CheckInteger, 1, ++/*155655*/ OPC_CheckType, MVT::i32, ++/*155657*/ OPC_MoveParent, ++/*155658*/ OPC_MoveChild, 26, ++/*155660*/ OPC_CheckInteger, 1, ++/*155662*/ OPC_CheckType, MVT::i32, ++/*155664*/ OPC_MoveParent, ++/*155665*/ OPC_MoveChild, 27, ++/*155667*/ OPC_CheckInteger, 1, ++/*155669*/ OPC_CheckType, MVT::i32, ++/*155671*/ OPC_MoveParent, ++/*155672*/ OPC_MoveChild, 28, ++/*155674*/ OPC_CheckInteger, 1, ++/*155676*/ OPC_CheckType, MVT::i32, ++/*155678*/ OPC_MoveParent, ++/*155679*/ OPC_MoveChild, 29, ++/*155681*/ OPC_CheckInteger, 1, ++/*155683*/ OPC_CheckType, MVT::i32, ++/*155685*/ OPC_MoveParent, ++/*155686*/ OPC_MoveChild, 30, ++/*155688*/ OPC_CheckInteger, 1, ++/*155690*/ OPC_CheckType, MVT::i32, ++/*155692*/ OPC_MoveParent, ++/*155693*/ OPC_MoveChild, 31, ++/*155695*/ OPC_CheckInteger, 1, ++/*155697*/ OPC_CheckType, MVT::i32, ++/*155699*/ OPC_MoveParent, ++/*155700*/ OPC_CheckType, MVT::v32i8, ++/*155702*/ OPC_MoveParent, ++/*155703*/ OPC_CheckType, MVT::v32i8, ++/*155705*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*155707*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*155715*/ /*Scope*/ 17|128,5/*657*/, /*->156374*/ ++/*155717*/ OPC_CheckChild0Same, 1, ++/*155719*/ OPC_CheckChild1Same, 0, ++/*155721*/ OPC_MoveParent, ++/*155722*/ OPC_MoveChild1, ++/*155723*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*155726*/ OPC_CheckChild0Integer, 1, ++/*155728*/ OPC_CheckChild0Type, MVT::i32, ++/*155730*/ OPC_CheckChild1Integer, 1, ++/*155732*/ OPC_CheckChild1Type, MVT::i32, ++/*155734*/ OPC_CheckChild2Integer, 1, ++/*155736*/ OPC_CheckChild2Type, MVT::i32, ++/*155738*/ OPC_CheckChild3Integer, 1, ++/*155740*/ OPC_CheckChild3Type, MVT::i32, ++/*155742*/ OPC_CheckChild4Integer, 1, ++/*155744*/ OPC_CheckChild4Type, MVT::i32, ++/*155746*/ OPC_MoveChild5, ++/*155747*/ OPC_CheckInteger, 1, ++/*155749*/ OPC_CheckType, MVT::i32, ++/*155751*/ OPC_MoveParent, ++/*155752*/ OPC_MoveChild6, ++/*155753*/ OPC_CheckInteger, 1, ++/*155755*/ OPC_CheckType, MVT::i32, ++/*155757*/ OPC_MoveParent, ++/*155758*/ OPC_MoveChild7, ++/*155759*/ OPC_CheckInteger, 1, ++/*155761*/ OPC_CheckType, MVT::i32, ++/*155763*/ OPC_MoveParent, ++/*155764*/ OPC_MoveChild, 8, ++/*155766*/ OPC_CheckInteger, 1, ++/*155768*/ OPC_CheckType, MVT::i32, ++/*155770*/ OPC_MoveParent, ++/*155771*/ OPC_MoveChild, 9, ++/*155773*/ OPC_CheckInteger, 1, ++/*155775*/ OPC_CheckType, MVT::i32, ++/*155777*/ OPC_MoveParent, ++/*155778*/ OPC_MoveChild, 10, ++/*155780*/ OPC_CheckInteger, 1, ++/*155782*/ OPC_CheckType, MVT::i32, ++/*155784*/ OPC_MoveParent, ++/*155785*/ OPC_MoveChild, 11, ++/*155787*/ OPC_CheckInteger, 1, ++/*155789*/ OPC_CheckType, MVT::i32, ++/*155791*/ OPC_MoveParent, ++/*155792*/ OPC_MoveChild, 12, ++/*155794*/ OPC_CheckInteger, 1, ++/*155796*/ OPC_CheckType, MVT::i32, ++/*155798*/ OPC_MoveParent, ++/*155799*/ OPC_MoveChild, 13, ++/*155801*/ OPC_CheckInteger, 1, ++/*155803*/ OPC_CheckType, MVT::i32, ++/*155805*/ OPC_MoveParent, ++/*155806*/ OPC_MoveChild, 14, ++/*155808*/ OPC_CheckInteger, 1, ++/*155810*/ OPC_CheckType, MVT::i32, ++/*155812*/ OPC_MoveParent, ++/*155813*/ OPC_MoveChild, 15, ++/*155815*/ OPC_CheckInteger, 1, ++/*155817*/ OPC_CheckType, MVT::i32, ++/*155819*/ OPC_MoveParent, ++/*155820*/ OPC_MoveChild, 16, ++/*155822*/ OPC_CheckInteger, 1, ++/*155824*/ OPC_CheckType, MVT::i32, ++/*155826*/ OPC_MoveParent, ++/*155827*/ OPC_MoveChild, 17, ++/*155829*/ OPC_CheckInteger, 1, ++/*155831*/ OPC_CheckType, MVT::i32, ++/*155833*/ OPC_MoveParent, ++/*155834*/ OPC_MoveChild, 18, ++/*155836*/ OPC_CheckInteger, 1, ++/*155838*/ OPC_CheckType, MVT::i32, ++/*155840*/ OPC_MoveParent, ++/*155841*/ OPC_MoveChild, 19, ++/*155843*/ OPC_CheckInteger, 1, ++/*155845*/ OPC_CheckType, MVT::i32, ++/*155847*/ OPC_MoveParent, ++/*155848*/ OPC_MoveChild, 20, ++/*155850*/ OPC_CheckInteger, 1, ++/*155852*/ OPC_CheckType, MVT::i32, ++/*155854*/ OPC_MoveParent, ++/*155855*/ OPC_MoveChild, 21, ++/*155857*/ OPC_CheckInteger, 1, ++/*155859*/ OPC_CheckType, MVT::i32, ++/*155861*/ OPC_MoveParent, ++/*155862*/ OPC_MoveChild, 22, ++/*155864*/ OPC_CheckInteger, 1, ++/*155866*/ OPC_CheckType, MVT::i32, ++/*155868*/ OPC_MoveParent, ++/*155869*/ OPC_MoveChild, 23, ++/*155871*/ OPC_CheckInteger, 1, ++/*155873*/ OPC_CheckType, MVT::i32, ++/*155875*/ OPC_MoveParent, ++/*155876*/ OPC_MoveChild, 24, ++/*155878*/ OPC_CheckInteger, 1, ++/*155880*/ OPC_CheckType, MVT::i32, ++/*155882*/ OPC_MoveParent, ++/*155883*/ OPC_MoveChild, 25, ++/*155885*/ OPC_CheckInteger, 1, ++/*155887*/ OPC_CheckType, MVT::i32, ++/*155889*/ OPC_MoveParent, ++/*155890*/ OPC_MoveChild, 26, ++/*155892*/ OPC_CheckInteger, 1, ++/*155894*/ OPC_CheckType, MVT::i32, ++/*155896*/ OPC_MoveParent, ++/*155897*/ OPC_MoveChild, 27, ++/*155899*/ OPC_CheckInteger, 1, ++/*155901*/ OPC_CheckType, MVT::i32, ++/*155903*/ OPC_MoveParent, ++/*155904*/ OPC_MoveChild, 28, ++/*155906*/ OPC_CheckInteger, 1, ++/*155908*/ OPC_CheckType, MVT::i32, ++/*155910*/ OPC_MoveParent, ++/*155911*/ OPC_MoveChild, 29, ++/*155913*/ OPC_CheckInteger, 1, ++/*155915*/ OPC_CheckType, MVT::i32, ++/*155917*/ OPC_MoveParent, ++/*155918*/ OPC_MoveChild, 30, ++/*155920*/ OPC_CheckInteger, 1, ++/*155922*/ OPC_CheckType, MVT::i32, ++/*155924*/ OPC_MoveParent, ++/*155925*/ OPC_MoveChild, 31, ++/*155927*/ OPC_CheckInteger, 1, ++/*155929*/ OPC_CheckType, MVT::i32, ++/*155931*/ OPC_MoveParent, ++/*155932*/ OPC_MoveParent, ++/*155933*/ OPC_MoveParent, ++/*155934*/ OPC_MoveChild1, ++/*155935*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*155938*/ OPC_CheckChild0Integer, 7, ++/*155940*/ OPC_CheckChild0Type, MVT::i32, ++/*155942*/ OPC_CheckChild1Integer, 7, ++/*155944*/ OPC_CheckChild1Type, MVT::i32, ++/*155946*/ OPC_CheckChild2Integer, 7, ++/*155948*/ OPC_CheckChild2Type, MVT::i32, ++/*155950*/ OPC_CheckChild3Integer, 7, ++/*155952*/ OPC_CheckChild3Type, MVT::i32, ++/*155954*/ OPC_CheckChild4Integer, 7, ++/*155956*/ OPC_CheckChild4Type, MVT::i32, ++/*155958*/ OPC_MoveChild5, ++/*155959*/ OPC_CheckInteger, 7, ++/*155961*/ OPC_CheckType, MVT::i32, ++/*155963*/ OPC_MoveParent, ++/*155964*/ OPC_MoveChild6, ++/*155965*/ OPC_CheckInteger, 7, ++/*155967*/ OPC_CheckType, MVT::i32, ++/*155969*/ OPC_MoveParent, ++/*155970*/ OPC_MoveChild7, ++/*155971*/ OPC_CheckInteger, 7, ++/*155973*/ OPC_CheckType, MVT::i32, ++/*155975*/ OPC_MoveParent, ++/*155976*/ OPC_MoveChild, 8, ++/*155978*/ OPC_CheckInteger, 7, ++/*155980*/ OPC_CheckType, MVT::i32, ++/*155982*/ OPC_MoveParent, ++/*155983*/ OPC_MoveChild, 9, ++/*155985*/ OPC_CheckInteger, 7, ++/*155987*/ OPC_CheckType, MVT::i32, ++/*155989*/ OPC_MoveParent, ++/*155990*/ OPC_MoveChild, 10, ++/*155992*/ OPC_CheckInteger, 7, ++/*155994*/ OPC_CheckType, MVT::i32, ++/*155996*/ OPC_MoveParent, ++/*155997*/ OPC_MoveChild, 11, ++/*155999*/ OPC_CheckInteger, 7, ++/*156001*/ OPC_CheckType, MVT::i32, ++/*156003*/ OPC_MoveParent, ++/*156004*/ OPC_MoveChild, 12, ++/*156006*/ OPC_CheckInteger, 7, ++/*156008*/ OPC_CheckType, MVT::i32, ++/*156010*/ OPC_MoveParent, ++/*156011*/ OPC_MoveChild, 13, ++/*156013*/ OPC_CheckInteger, 7, ++/*156015*/ OPC_CheckType, MVT::i32, ++/*156017*/ OPC_MoveParent, ++/*156018*/ OPC_MoveChild, 14, ++/*156020*/ OPC_CheckInteger, 7, ++/*156022*/ OPC_CheckType, MVT::i32, ++/*156024*/ OPC_MoveParent, ++/*156025*/ OPC_MoveChild, 15, ++/*156027*/ OPC_CheckInteger, 7, ++/*156029*/ OPC_CheckType, MVT::i32, ++/*156031*/ OPC_MoveParent, ++/*156032*/ OPC_MoveChild, 16, ++/*156034*/ OPC_CheckInteger, 7, ++/*156036*/ OPC_CheckType, MVT::i32, ++/*156038*/ OPC_MoveParent, ++/*156039*/ OPC_MoveChild, 17, ++/*156041*/ OPC_CheckInteger, 7, ++/*156043*/ OPC_CheckType, MVT::i32, ++/*156045*/ OPC_MoveParent, ++/*156046*/ OPC_MoveChild, 18, ++/*156048*/ OPC_CheckInteger, 7, ++/*156050*/ OPC_CheckType, MVT::i32, ++/*156052*/ OPC_MoveParent, ++/*156053*/ OPC_MoveChild, 19, ++/*156055*/ OPC_CheckInteger, 7, ++/*156057*/ OPC_CheckType, MVT::i32, ++/*156059*/ OPC_MoveParent, ++/*156060*/ OPC_MoveChild, 20, ++/*156062*/ OPC_CheckInteger, 7, ++/*156064*/ OPC_CheckType, MVT::i32, ++/*156066*/ OPC_MoveParent, ++/*156067*/ OPC_MoveChild, 21, ++/*156069*/ OPC_CheckInteger, 7, ++/*156071*/ OPC_CheckType, MVT::i32, ++/*156073*/ OPC_MoveParent, ++/*156074*/ OPC_MoveChild, 22, ++/*156076*/ OPC_CheckInteger, 7, ++/*156078*/ OPC_CheckType, MVT::i32, ++/*156080*/ OPC_MoveParent, ++/*156081*/ OPC_MoveChild, 23, ++/*156083*/ OPC_CheckInteger, 7, ++/*156085*/ OPC_CheckType, MVT::i32, ++/*156087*/ OPC_MoveParent, ++/*156088*/ OPC_MoveChild, 24, ++/*156090*/ OPC_CheckInteger, 7, ++/*156092*/ OPC_CheckType, MVT::i32, ++/*156094*/ OPC_MoveParent, ++/*156095*/ OPC_MoveChild, 25, ++/*156097*/ OPC_CheckInteger, 7, ++/*156099*/ OPC_CheckType, MVT::i32, ++/*156101*/ OPC_MoveParent, ++/*156102*/ OPC_MoveChild, 26, ++/*156104*/ OPC_CheckInteger, 7, ++/*156106*/ OPC_CheckType, MVT::i32, ++/*156108*/ OPC_MoveParent, ++/*156109*/ OPC_MoveChild, 27, ++/*156111*/ OPC_CheckInteger, 7, ++/*156113*/ OPC_CheckType, MVT::i32, ++/*156115*/ OPC_MoveParent, ++/*156116*/ OPC_MoveChild, 28, ++/*156118*/ OPC_CheckInteger, 7, ++/*156120*/ OPC_CheckType, MVT::i32, ++/*156122*/ OPC_MoveParent, ++/*156123*/ OPC_MoveChild, 29, ++/*156125*/ OPC_CheckInteger, 7, ++/*156127*/ OPC_CheckType, MVT::i32, ++/*156129*/ OPC_MoveParent, ++/*156130*/ OPC_MoveChild, 30, ++/*156132*/ OPC_CheckInteger, 7, ++/*156134*/ OPC_CheckType, MVT::i32, ++/*156136*/ OPC_MoveParent, ++/*156137*/ OPC_MoveChild, 31, ++/*156139*/ OPC_CheckInteger, 7, ++/*156141*/ OPC_CheckType, MVT::i32, ++/*156143*/ OPC_MoveParent, ++/*156144*/ OPC_CheckType, MVT::v32i8, ++/*156146*/ OPC_MoveParent, ++/*156147*/ OPC_MoveParent, ++/*156148*/ OPC_MoveParent, ++/*156149*/ OPC_MoveChild1, ++/*156150*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*156153*/ OPC_CheckChild0Integer, 1, ++/*156155*/ OPC_CheckChild0Type, MVT::i32, ++/*156157*/ OPC_CheckChild1Integer, 1, ++/*156159*/ OPC_CheckChild1Type, MVT::i32, ++/*156161*/ OPC_CheckChild2Integer, 1, ++/*156163*/ OPC_CheckChild2Type, MVT::i32, ++/*156165*/ OPC_CheckChild3Integer, 1, ++/*156167*/ OPC_CheckChild3Type, MVT::i32, ++/*156169*/ OPC_CheckChild4Integer, 1, ++/*156171*/ OPC_CheckChild4Type, MVT::i32, ++/*156173*/ OPC_MoveChild5, ++/*156174*/ OPC_CheckInteger, 1, ++/*156176*/ OPC_CheckType, MVT::i32, ++/*156178*/ OPC_MoveParent, ++/*156179*/ OPC_MoveChild6, ++/*156180*/ OPC_CheckInteger, 1, ++/*156182*/ OPC_CheckType, MVT::i32, ++/*156184*/ OPC_MoveParent, ++/*156185*/ OPC_MoveChild7, ++/*156186*/ OPC_CheckInteger, 1, ++/*156188*/ OPC_CheckType, MVT::i32, ++/*156190*/ OPC_MoveParent, ++/*156191*/ OPC_MoveChild, 8, ++/*156193*/ OPC_CheckInteger, 1, ++/*156195*/ OPC_CheckType, MVT::i32, ++/*156197*/ OPC_MoveParent, ++/*156198*/ OPC_MoveChild, 9, ++/*156200*/ OPC_CheckInteger, 1, ++/*156202*/ OPC_CheckType, MVT::i32, ++/*156204*/ OPC_MoveParent, ++/*156205*/ OPC_MoveChild, 10, ++/*156207*/ OPC_CheckInteger, 1, ++/*156209*/ OPC_CheckType, MVT::i32, ++/*156211*/ OPC_MoveParent, ++/*156212*/ OPC_MoveChild, 11, ++/*156214*/ OPC_CheckInteger, 1, ++/*156216*/ OPC_CheckType, MVT::i32, ++/*156218*/ OPC_MoveParent, ++/*156219*/ OPC_MoveChild, 12, ++/*156221*/ OPC_CheckInteger, 1, ++/*156223*/ OPC_CheckType, MVT::i32, ++/*156225*/ OPC_MoveParent, ++/*156226*/ OPC_MoveChild, 13, ++/*156228*/ OPC_CheckInteger, 1, ++/*156230*/ OPC_CheckType, MVT::i32, ++/*156232*/ OPC_MoveParent, ++/*156233*/ OPC_MoveChild, 14, ++/*156235*/ OPC_CheckInteger, 1, ++/*156237*/ OPC_CheckType, MVT::i32, ++/*156239*/ OPC_MoveParent, ++/*156240*/ OPC_MoveChild, 15, ++/*156242*/ OPC_CheckInteger, 1, ++/*156244*/ OPC_CheckType, MVT::i32, ++/*156246*/ OPC_MoveParent, ++/*156247*/ OPC_MoveChild, 16, ++/*156249*/ OPC_CheckInteger, 1, ++/*156251*/ OPC_CheckType, MVT::i32, ++/*156253*/ OPC_MoveParent, ++/*156254*/ OPC_MoveChild, 17, ++/*156256*/ OPC_CheckInteger, 1, ++/*156258*/ OPC_CheckType, MVT::i32, ++/*156260*/ OPC_MoveParent, ++/*156261*/ OPC_MoveChild, 18, ++/*156263*/ OPC_CheckInteger, 1, ++/*156265*/ OPC_CheckType, MVT::i32, ++/*156267*/ OPC_MoveParent, ++/*156268*/ OPC_MoveChild, 19, ++/*156270*/ OPC_CheckInteger, 1, ++/*156272*/ OPC_CheckType, MVT::i32, ++/*156274*/ OPC_MoveParent, ++/*156275*/ OPC_MoveChild, 20, ++/*156277*/ OPC_CheckInteger, 1, ++/*156279*/ OPC_CheckType, MVT::i32, ++/*156281*/ OPC_MoveParent, ++/*156282*/ OPC_MoveChild, 21, ++/*156284*/ OPC_CheckInteger, 1, ++/*156286*/ OPC_CheckType, MVT::i32, ++/*156288*/ OPC_MoveParent, ++/*156289*/ OPC_MoveChild, 22, ++/*156291*/ OPC_CheckInteger, 1, ++/*156293*/ OPC_CheckType, MVT::i32, ++/*156295*/ OPC_MoveParent, ++/*156296*/ OPC_MoveChild, 23, ++/*156298*/ OPC_CheckInteger, 1, ++/*156300*/ OPC_CheckType, MVT::i32, ++/*156302*/ OPC_MoveParent, ++/*156303*/ OPC_MoveChild, 24, ++/*156305*/ OPC_CheckInteger, 1, ++/*156307*/ OPC_CheckType, MVT::i32, ++/*156309*/ OPC_MoveParent, ++/*156310*/ OPC_MoveChild, 25, ++/*156312*/ OPC_CheckInteger, 1, ++/*156314*/ OPC_CheckType, MVT::i32, ++/*156316*/ OPC_MoveParent, ++/*156317*/ OPC_MoveChild, 26, ++/*156319*/ OPC_CheckInteger, 1, ++/*156321*/ OPC_CheckType, MVT::i32, ++/*156323*/ OPC_MoveParent, ++/*156324*/ OPC_MoveChild, 27, ++/*156326*/ OPC_CheckInteger, 1, ++/*156328*/ OPC_CheckType, MVT::i32, ++/*156330*/ OPC_MoveParent, ++/*156331*/ OPC_MoveChild, 28, ++/*156333*/ OPC_CheckInteger, 1, ++/*156335*/ OPC_CheckType, MVT::i32, ++/*156337*/ OPC_MoveParent, ++/*156338*/ OPC_MoveChild, 29, ++/*156340*/ OPC_CheckInteger, 1, ++/*156342*/ OPC_CheckType, MVT::i32, ++/*156344*/ OPC_MoveParent, ++/*156345*/ OPC_MoveChild, 30, ++/*156347*/ OPC_CheckInteger, 1, ++/*156349*/ OPC_CheckType, MVT::i32, ++/*156351*/ OPC_MoveParent, ++/*156352*/ OPC_MoveChild, 31, ++/*156354*/ OPC_CheckInteger, 1, ++/*156356*/ OPC_CheckType, MVT::i32, ++/*156358*/ OPC_MoveParent, ++/*156359*/ OPC_CheckType, MVT::v32i8, ++/*156361*/ OPC_MoveParent, ++/*156362*/ OPC_CheckType, MVT::v32i8, ++/*156364*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*156366*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*156374*/ 0, /*End of Scope*/ ++/*156375*/ /*Scope*/ 42|128,10/*1322*/, /*->157699*/ ++/*156377*/ OPC_CheckChild0Same, 1, ++/*156379*/ OPC_MoveChild1, ++/*156380*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*156383*/ OPC_Scope, 15|128,5/*655*/, /*->157041*/ // 2 children in Scope ++/*156386*/ OPC_MoveChild0, ++/*156387*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*156390*/ OPC_CheckChild0Integer, 1, ++/*156392*/ OPC_CheckChild0Type, MVT::i32, ++/*156394*/ OPC_CheckChild1Integer, 1, ++/*156396*/ OPC_CheckChild1Type, MVT::i32, ++/*156398*/ OPC_CheckChild2Integer, 1, ++/*156400*/ OPC_CheckChild2Type, MVT::i32, ++/*156402*/ OPC_CheckChild3Integer, 1, ++/*156404*/ OPC_CheckChild3Type, MVT::i32, ++/*156406*/ OPC_CheckChild4Integer, 1, ++/*156408*/ OPC_CheckChild4Type, MVT::i32, ++/*156410*/ OPC_MoveChild5, ++/*156411*/ OPC_CheckInteger, 1, ++/*156413*/ OPC_CheckType, MVT::i32, ++/*156415*/ OPC_MoveParent, ++/*156416*/ OPC_MoveChild6, ++/*156417*/ OPC_CheckInteger, 1, ++/*156419*/ OPC_CheckType, MVT::i32, ++/*156421*/ OPC_MoveParent, ++/*156422*/ OPC_MoveChild7, ++/*156423*/ OPC_CheckInteger, 1, ++/*156425*/ OPC_CheckType, MVT::i32, ++/*156427*/ OPC_MoveParent, ++/*156428*/ OPC_MoveChild, 8, ++/*156430*/ OPC_CheckInteger, 1, ++/*156432*/ OPC_CheckType, MVT::i32, ++/*156434*/ OPC_MoveParent, ++/*156435*/ OPC_MoveChild, 9, ++/*156437*/ OPC_CheckInteger, 1, ++/*156439*/ OPC_CheckType, MVT::i32, ++/*156441*/ OPC_MoveParent, ++/*156442*/ OPC_MoveChild, 10, ++/*156444*/ OPC_CheckInteger, 1, ++/*156446*/ OPC_CheckType, MVT::i32, ++/*156448*/ OPC_MoveParent, ++/*156449*/ OPC_MoveChild, 11, ++/*156451*/ OPC_CheckInteger, 1, ++/*156453*/ OPC_CheckType, MVT::i32, ++/*156455*/ OPC_MoveParent, ++/*156456*/ OPC_MoveChild, 12, ++/*156458*/ OPC_CheckInteger, 1, ++/*156460*/ OPC_CheckType, MVT::i32, ++/*156462*/ OPC_MoveParent, ++/*156463*/ OPC_MoveChild, 13, ++/*156465*/ OPC_CheckInteger, 1, ++/*156467*/ OPC_CheckType, MVT::i32, ++/*156469*/ OPC_MoveParent, ++/*156470*/ OPC_MoveChild, 14, ++/*156472*/ OPC_CheckInteger, 1, ++/*156474*/ OPC_CheckType, MVT::i32, ++/*156476*/ OPC_MoveParent, ++/*156477*/ OPC_MoveChild, 15, ++/*156479*/ OPC_CheckInteger, 1, ++/*156481*/ OPC_CheckType, MVT::i32, ++/*156483*/ OPC_MoveParent, ++/*156484*/ OPC_MoveChild, 16, ++/*156486*/ OPC_CheckInteger, 1, ++/*156488*/ OPC_CheckType, MVT::i32, ++/*156490*/ OPC_MoveParent, ++/*156491*/ OPC_MoveChild, 17, ++/*156493*/ OPC_CheckInteger, 1, ++/*156495*/ OPC_CheckType, MVT::i32, ++/*156497*/ OPC_MoveParent, ++/*156498*/ OPC_MoveChild, 18, ++/*156500*/ OPC_CheckInteger, 1, ++/*156502*/ OPC_CheckType, MVT::i32, ++/*156504*/ OPC_MoveParent, ++/*156505*/ OPC_MoveChild, 19, ++/*156507*/ OPC_CheckInteger, 1, ++/*156509*/ OPC_CheckType, MVT::i32, ++/*156511*/ OPC_MoveParent, ++/*156512*/ OPC_MoveChild, 20, ++/*156514*/ OPC_CheckInteger, 1, ++/*156516*/ OPC_CheckType, MVT::i32, ++/*156518*/ OPC_MoveParent, ++/*156519*/ OPC_MoveChild, 21, ++/*156521*/ OPC_CheckInteger, 1, ++/*156523*/ OPC_CheckType, MVT::i32, ++/*156525*/ OPC_MoveParent, ++/*156526*/ OPC_MoveChild, 22, ++/*156528*/ OPC_CheckInteger, 1, ++/*156530*/ OPC_CheckType, MVT::i32, ++/*156532*/ OPC_MoveParent, ++/*156533*/ OPC_MoveChild, 23, ++/*156535*/ OPC_CheckInteger, 1, ++/*156537*/ OPC_CheckType, MVT::i32, ++/*156539*/ OPC_MoveParent, ++/*156540*/ OPC_MoveChild, 24, ++/*156542*/ OPC_CheckInteger, 1, ++/*156544*/ OPC_CheckType, MVT::i32, ++/*156546*/ OPC_MoveParent, ++/*156547*/ OPC_MoveChild, 25, ++/*156549*/ OPC_CheckInteger, 1, ++/*156551*/ OPC_CheckType, MVT::i32, ++/*156553*/ OPC_MoveParent, ++/*156554*/ OPC_MoveChild, 26, ++/*156556*/ OPC_CheckInteger, 1, ++/*156558*/ OPC_CheckType, MVT::i32, ++/*156560*/ OPC_MoveParent, ++/*156561*/ OPC_MoveChild, 27, ++/*156563*/ OPC_CheckInteger, 1, ++/*156565*/ OPC_CheckType, MVT::i32, ++/*156567*/ OPC_MoveParent, ++/*156568*/ OPC_MoveChild, 28, ++/*156570*/ OPC_CheckInteger, 1, ++/*156572*/ OPC_CheckType, MVT::i32, ++/*156574*/ OPC_MoveParent, ++/*156575*/ OPC_MoveChild, 29, ++/*156577*/ OPC_CheckInteger, 1, ++/*156579*/ OPC_CheckType, MVT::i32, ++/*156581*/ OPC_MoveParent, ++/*156582*/ OPC_MoveChild, 30, ++/*156584*/ OPC_CheckInteger, 1, ++/*156586*/ OPC_CheckType, MVT::i32, ++/*156588*/ OPC_MoveParent, ++/*156589*/ OPC_MoveChild, 31, ++/*156591*/ OPC_CheckInteger, 1, ++/*156593*/ OPC_CheckType, MVT::i32, ++/*156595*/ OPC_MoveParent, ++/*156596*/ OPC_MoveParent, ++/*156597*/ OPC_CheckChild1Same, 0, ++/*156599*/ OPC_MoveParent, ++/*156600*/ OPC_MoveParent, ++/*156601*/ OPC_MoveChild1, ++/*156602*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*156605*/ OPC_CheckChild0Integer, 7, ++/*156607*/ OPC_CheckChild0Type, MVT::i32, ++/*156609*/ OPC_CheckChild1Integer, 7, ++/*156611*/ OPC_CheckChild1Type, MVT::i32, ++/*156613*/ OPC_CheckChild2Integer, 7, ++/*156615*/ OPC_CheckChild2Type, MVT::i32, ++/*156617*/ OPC_CheckChild3Integer, 7, ++/*156619*/ OPC_CheckChild3Type, MVT::i32, ++/*156621*/ OPC_CheckChild4Integer, 7, ++/*156623*/ OPC_CheckChild4Type, MVT::i32, ++/*156625*/ OPC_MoveChild5, ++/*156626*/ OPC_CheckInteger, 7, ++/*156628*/ OPC_CheckType, MVT::i32, ++/*156630*/ OPC_MoveParent, ++/*156631*/ OPC_MoveChild6, ++/*156632*/ OPC_CheckInteger, 7, ++/*156634*/ OPC_CheckType, MVT::i32, ++/*156636*/ OPC_MoveParent, ++/*156637*/ OPC_MoveChild7, ++/*156638*/ OPC_CheckInteger, 7, ++/*156640*/ OPC_CheckType, MVT::i32, ++/*156642*/ OPC_MoveParent, ++/*156643*/ OPC_MoveChild, 8, ++/*156645*/ OPC_CheckInteger, 7, ++/*156647*/ OPC_CheckType, MVT::i32, ++/*156649*/ OPC_MoveParent, ++/*156650*/ OPC_MoveChild, 9, ++/*156652*/ OPC_CheckInteger, 7, ++/*156654*/ OPC_CheckType, MVT::i32, ++/*156656*/ OPC_MoveParent, ++/*156657*/ OPC_MoveChild, 10, ++/*156659*/ OPC_CheckInteger, 7, ++/*156661*/ OPC_CheckType, MVT::i32, ++/*156663*/ OPC_MoveParent, ++/*156664*/ OPC_MoveChild, 11, ++/*156666*/ OPC_CheckInteger, 7, ++/*156668*/ OPC_CheckType, MVT::i32, ++/*156670*/ OPC_MoveParent, ++/*156671*/ OPC_MoveChild, 12, ++/*156673*/ OPC_CheckInteger, 7, ++/*156675*/ OPC_CheckType, MVT::i32, ++/*156677*/ OPC_MoveParent, ++/*156678*/ OPC_MoveChild, 13, ++/*156680*/ OPC_CheckInteger, 7, ++/*156682*/ OPC_CheckType, MVT::i32, ++/*156684*/ OPC_MoveParent, ++/*156685*/ OPC_MoveChild, 14, ++/*156687*/ OPC_CheckInteger, 7, ++/*156689*/ OPC_CheckType, MVT::i32, ++/*156691*/ OPC_MoveParent, ++/*156692*/ OPC_MoveChild, 15, ++/*156694*/ OPC_CheckInteger, 7, ++/*156696*/ OPC_CheckType, MVT::i32, ++/*156698*/ OPC_MoveParent, ++/*156699*/ OPC_MoveChild, 16, ++/*156701*/ OPC_CheckInteger, 7, ++/*156703*/ OPC_CheckType, MVT::i32, ++/*156705*/ OPC_MoveParent, ++/*156706*/ OPC_MoveChild, 17, ++/*156708*/ OPC_CheckInteger, 7, ++/*156710*/ OPC_CheckType, MVT::i32, ++/*156712*/ OPC_MoveParent, ++/*156713*/ OPC_MoveChild, 18, ++/*156715*/ OPC_CheckInteger, 7, ++/*156717*/ OPC_CheckType, MVT::i32, ++/*156719*/ OPC_MoveParent, ++/*156720*/ OPC_MoveChild, 19, ++/*156722*/ OPC_CheckInteger, 7, ++/*156724*/ OPC_CheckType, MVT::i32, ++/*156726*/ OPC_MoveParent, ++/*156727*/ OPC_MoveChild, 20, ++/*156729*/ OPC_CheckInteger, 7, ++/*156731*/ OPC_CheckType, MVT::i32, ++/*156733*/ OPC_MoveParent, ++/*156734*/ OPC_MoveChild, 21, ++/*156736*/ OPC_CheckInteger, 7, ++/*156738*/ OPC_CheckType, MVT::i32, ++/*156740*/ OPC_MoveParent, ++/*156741*/ OPC_MoveChild, 22, ++/*156743*/ OPC_CheckInteger, 7, ++/*156745*/ OPC_CheckType, MVT::i32, ++/*156747*/ OPC_MoveParent, ++/*156748*/ OPC_MoveChild, 23, ++/*156750*/ OPC_CheckInteger, 7, ++/*156752*/ OPC_CheckType, MVT::i32, ++/*156754*/ OPC_MoveParent, ++/*156755*/ OPC_MoveChild, 24, ++/*156757*/ OPC_CheckInteger, 7, ++/*156759*/ OPC_CheckType, MVT::i32, ++/*156761*/ OPC_MoveParent, ++/*156762*/ OPC_MoveChild, 25, ++/*156764*/ OPC_CheckInteger, 7, ++/*156766*/ OPC_CheckType, MVT::i32, ++/*156768*/ OPC_MoveParent, ++/*156769*/ OPC_MoveChild, 26, ++/*156771*/ OPC_CheckInteger, 7, ++/*156773*/ OPC_CheckType, MVT::i32, ++/*156775*/ OPC_MoveParent, ++/*156776*/ OPC_MoveChild, 27, ++/*156778*/ OPC_CheckInteger, 7, ++/*156780*/ OPC_CheckType, MVT::i32, ++/*156782*/ OPC_MoveParent, ++/*156783*/ OPC_MoveChild, 28, ++/*156785*/ OPC_CheckInteger, 7, ++/*156787*/ OPC_CheckType, MVT::i32, ++/*156789*/ OPC_MoveParent, ++/*156790*/ OPC_MoveChild, 29, ++/*156792*/ OPC_CheckInteger, 7, ++/*156794*/ OPC_CheckType, MVT::i32, ++/*156796*/ OPC_MoveParent, ++/*156797*/ OPC_MoveChild, 30, ++/*156799*/ OPC_CheckInteger, 7, ++/*156801*/ OPC_CheckType, MVT::i32, ++/*156803*/ OPC_MoveParent, ++/*156804*/ OPC_MoveChild, 31, ++/*156806*/ OPC_CheckInteger, 7, ++/*156808*/ OPC_CheckType, MVT::i32, ++/*156810*/ OPC_MoveParent, ++/*156811*/ OPC_CheckType, MVT::v32i8, ++/*156813*/ OPC_MoveParent, ++/*156814*/ OPC_MoveParent, ++/*156815*/ OPC_MoveParent, ++/*156816*/ OPC_MoveChild1, ++/*156817*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*156820*/ OPC_CheckChild0Integer, 1, ++/*156822*/ OPC_CheckChild0Type, MVT::i32, ++/*156824*/ OPC_CheckChild1Integer, 1, ++/*156826*/ OPC_CheckChild1Type, MVT::i32, ++/*156828*/ OPC_CheckChild2Integer, 1, ++/*156830*/ OPC_CheckChild2Type, MVT::i32, ++/*156832*/ OPC_CheckChild3Integer, 1, ++/*156834*/ OPC_CheckChild3Type, MVT::i32, ++/*156836*/ OPC_CheckChild4Integer, 1, ++/*156838*/ OPC_CheckChild4Type, MVT::i32, ++/*156840*/ OPC_MoveChild5, ++/*156841*/ OPC_CheckInteger, 1, ++/*156843*/ OPC_CheckType, MVT::i32, ++/*156845*/ OPC_MoveParent, ++/*156846*/ OPC_MoveChild6, ++/*156847*/ OPC_CheckInteger, 1, ++/*156849*/ OPC_CheckType, MVT::i32, ++/*156851*/ OPC_MoveParent, ++/*156852*/ OPC_MoveChild7, ++/*156853*/ OPC_CheckInteger, 1, ++/*156855*/ OPC_CheckType, MVT::i32, ++/*156857*/ OPC_MoveParent, ++/*156858*/ OPC_MoveChild, 8, ++/*156860*/ OPC_CheckInteger, 1, ++/*156862*/ OPC_CheckType, MVT::i32, ++/*156864*/ OPC_MoveParent, ++/*156865*/ OPC_MoveChild, 9, ++/*156867*/ OPC_CheckInteger, 1, ++/*156869*/ OPC_CheckType, MVT::i32, ++/*156871*/ OPC_MoveParent, ++/*156872*/ OPC_MoveChild, 10, ++/*156874*/ OPC_CheckInteger, 1, ++/*156876*/ OPC_CheckType, MVT::i32, ++/*156878*/ OPC_MoveParent, ++/*156879*/ OPC_MoveChild, 11, ++/*156881*/ OPC_CheckInteger, 1, ++/*156883*/ OPC_CheckType, MVT::i32, ++/*156885*/ OPC_MoveParent, ++/*156886*/ OPC_MoveChild, 12, ++/*156888*/ OPC_CheckInteger, 1, ++/*156890*/ OPC_CheckType, MVT::i32, ++/*156892*/ OPC_MoveParent, ++/*156893*/ OPC_MoveChild, 13, ++/*156895*/ OPC_CheckInteger, 1, ++/*156897*/ OPC_CheckType, MVT::i32, ++/*156899*/ OPC_MoveParent, ++/*156900*/ OPC_MoveChild, 14, ++/*156902*/ OPC_CheckInteger, 1, ++/*156904*/ OPC_CheckType, MVT::i32, ++/*156906*/ OPC_MoveParent, ++/*156907*/ OPC_MoveChild, 15, ++/*156909*/ OPC_CheckInteger, 1, ++/*156911*/ OPC_CheckType, MVT::i32, ++/*156913*/ OPC_MoveParent, ++/*156914*/ OPC_MoveChild, 16, ++/*156916*/ OPC_CheckInteger, 1, ++/*156918*/ OPC_CheckType, MVT::i32, ++/*156920*/ OPC_MoveParent, ++/*156921*/ OPC_MoveChild, 17, ++/*156923*/ OPC_CheckInteger, 1, ++/*156925*/ OPC_CheckType, MVT::i32, ++/*156927*/ OPC_MoveParent, ++/*156928*/ OPC_MoveChild, 18, ++/*156930*/ OPC_CheckInteger, 1, ++/*156932*/ OPC_CheckType, MVT::i32, ++/*156934*/ OPC_MoveParent, ++/*156935*/ OPC_MoveChild, 19, ++/*156937*/ OPC_CheckInteger, 1, ++/*156939*/ OPC_CheckType, MVT::i32, ++/*156941*/ OPC_MoveParent, ++/*156942*/ OPC_MoveChild, 20, ++/*156944*/ OPC_CheckInteger, 1, ++/*156946*/ OPC_CheckType, MVT::i32, ++/*156948*/ OPC_MoveParent, ++/*156949*/ OPC_MoveChild, 21, ++/*156951*/ OPC_CheckInteger, 1, ++/*156953*/ OPC_CheckType, MVT::i32, ++/*156955*/ OPC_MoveParent, ++/*156956*/ OPC_MoveChild, 22, ++/*156958*/ OPC_CheckInteger, 1, ++/*156960*/ OPC_CheckType, MVT::i32, ++/*156962*/ OPC_MoveParent, ++/*156963*/ OPC_MoveChild, 23, ++/*156965*/ OPC_CheckInteger, 1, ++/*156967*/ OPC_CheckType, MVT::i32, ++/*156969*/ OPC_MoveParent, ++/*156970*/ OPC_MoveChild, 24, ++/*156972*/ OPC_CheckInteger, 1, ++/*156974*/ OPC_CheckType, MVT::i32, ++/*156976*/ OPC_MoveParent, ++/*156977*/ OPC_MoveChild, 25, ++/*156979*/ OPC_CheckInteger, 1, ++/*156981*/ OPC_CheckType, MVT::i32, ++/*156983*/ OPC_MoveParent, ++/*156984*/ OPC_MoveChild, 26, ++/*156986*/ OPC_CheckInteger, 1, ++/*156988*/ OPC_CheckType, MVT::i32, ++/*156990*/ OPC_MoveParent, ++/*156991*/ OPC_MoveChild, 27, ++/*156993*/ OPC_CheckInteger, 1, ++/*156995*/ OPC_CheckType, MVT::i32, ++/*156997*/ OPC_MoveParent, ++/*156998*/ OPC_MoveChild, 28, ++/*157000*/ OPC_CheckInteger, 1, ++/*157002*/ OPC_CheckType, MVT::i32, ++/*157004*/ OPC_MoveParent, ++/*157005*/ OPC_MoveChild, 29, ++/*157007*/ OPC_CheckInteger, 1, ++/*157009*/ OPC_CheckType, MVT::i32, ++/*157011*/ OPC_MoveParent, ++/*157012*/ OPC_MoveChild, 30, ++/*157014*/ OPC_CheckInteger, 1, ++/*157016*/ OPC_CheckType, MVT::i32, ++/*157018*/ OPC_MoveParent, ++/*157019*/ OPC_MoveChild, 31, ++/*157021*/ OPC_CheckInteger, 1, ++/*157023*/ OPC_CheckType, MVT::i32, ++/*157025*/ OPC_MoveParent, ++/*157026*/ OPC_CheckType, MVT::v32i8, ++/*157028*/ OPC_MoveParent, ++/*157029*/ OPC_CheckType, MVT::v32i8, ++/*157031*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*157033*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*157041*/ /*Scope*/ 15|128,5/*655*/, /*->157698*/ ++/*157043*/ OPC_CheckChild0Same, 0, ++/*157045*/ OPC_MoveChild1, ++/*157046*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*157049*/ OPC_CheckChild0Integer, 1, ++/*157051*/ OPC_CheckChild0Type, MVT::i32, ++/*157053*/ OPC_CheckChild1Integer, 1, ++/*157055*/ OPC_CheckChild1Type, MVT::i32, ++/*157057*/ OPC_CheckChild2Integer, 1, ++/*157059*/ OPC_CheckChild2Type, MVT::i32, ++/*157061*/ OPC_CheckChild3Integer, 1, ++/*157063*/ OPC_CheckChild3Type, MVT::i32, ++/*157065*/ OPC_CheckChild4Integer, 1, ++/*157067*/ OPC_CheckChild4Type, MVT::i32, ++/*157069*/ OPC_MoveChild5, ++/*157070*/ OPC_CheckInteger, 1, ++/*157072*/ OPC_CheckType, MVT::i32, ++/*157074*/ OPC_MoveParent, ++/*157075*/ OPC_MoveChild6, ++/*157076*/ OPC_CheckInteger, 1, ++/*157078*/ OPC_CheckType, MVT::i32, ++/*157080*/ OPC_MoveParent, ++/*157081*/ OPC_MoveChild7, ++/*157082*/ OPC_CheckInteger, 1, ++/*157084*/ OPC_CheckType, MVT::i32, ++/*157086*/ OPC_MoveParent, ++/*157087*/ OPC_MoveChild, 8, ++/*157089*/ OPC_CheckInteger, 1, ++/*157091*/ OPC_CheckType, MVT::i32, ++/*157093*/ OPC_MoveParent, ++/*157094*/ OPC_MoveChild, 9, ++/*157096*/ OPC_CheckInteger, 1, ++/*157098*/ OPC_CheckType, MVT::i32, ++/*157100*/ OPC_MoveParent, ++/*157101*/ OPC_MoveChild, 10, ++/*157103*/ OPC_CheckInteger, 1, ++/*157105*/ OPC_CheckType, MVT::i32, ++/*157107*/ OPC_MoveParent, ++/*157108*/ OPC_MoveChild, 11, ++/*157110*/ OPC_CheckInteger, 1, ++/*157112*/ OPC_CheckType, MVT::i32, ++/*157114*/ OPC_MoveParent, ++/*157115*/ OPC_MoveChild, 12, ++/*157117*/ OPC_CheckInteger, 1, ++/*157119*/ OPC_CheckType, MVT::i32, ++/*157121*/ OPC_MoveParent, ++/*157122*/ OPC_MoveChild, 13, ++/*157124*/ OPC_CheckInteger, 1, ++/*157126*/ OPC_CheckType, MVT::i32, ++/*157128*/ OPC_MoveParent, ++/*157129*/ OPC_MoveChild, 14, ++/*157131*/ OPC_CheckInteger, 1, ++/*157133*/ OPC_CheckType, MVT::i32, ++/*157135*/ OPC_MoveParent, ++/*157136*/ OPC_MoveChild, 15, ++/*157138*/ OPC_CheckInteger, 1, ++/*157140*/ OPC_CheckType, MVT::i32, ++/*157142*/ OPC_MoveParent, ++/*157143*/ OPC_MoveChild, 16, ++/*157145*/ OPC_CheckInteger, 1, ++/*157147*/ OPC_CheckType, MVT::i32, ++/*157149*/ OPC_MoveParent, ++/*157150*/ OPC_MoveChild, 17, ++/*157152*/ OPC_CheckInteger, 1, ++/*157154*/ OPC_CheckType, MVT::i32, ++/*157156*/ OPC_MoveParent, ++/*157157*/ OPC_MoveChild, 18, ++/*157159*/ OPC_CheckInteger, 1, ++/*157161*/ OPC_CheckType, MVT::i32, ++/*157163*/ OPC_MoveParent, ++/*157164*/ OPC_MoveChild, 19, ++/*157166*/ OPC_CheckInteger, 1, ++/*157168*/ OPC_CheckType, MVT::i32, ++/*157170*/ OPC_MoveParent, ++/*157171*/ OPC_MoveChild, 20, ++/*157173*/ OPC_CheckInteger, 1, ++/*157175*/ OPC_CheckType, MVT::i32, ++/*157177*/ OPC_MoveParent, ++/*157178*/ OPC_MoveChild, 21, ++/*157180*/ OPC_CheckInteger, 1, ++/*157182*/ OPC_CheckType, MVT::i32, ++/*157184*/ OPC_MoveParent, ++/*157185*/ OPC_MoveChild, 22, ++/*157187*/ OPC_CheckInteger, 1, ++/*157189*/ OPC_CheckType, MVT::i32, ++/*157191*/ OPC_MoveParent, ++/*157192*/ OPC_MoveChild, 23, ++/*157194*/ OPC_CheckInteger, 1, ++/*157196*/ OPC_CheckType, MVT::i32, ++/*157198*/ OPC_MoveParent, ++/*157199*/ OPC_MoveChild, 24, ++/*157201*/ OPC_CheckInteger, 1, ++/*157203*/ OPC_CheckType, MVT::i32, ++/*157205*/ OPC_MoveParent, ++/*157206*/ OPC_MoveChild, 25, ++/*157208*/ OPC_CheckInteger, 1, ++/*157210*/ OPC_CheckType, MVT::i32, ++/*157212*/ OPC_MoveParent, ++/*157213*/ OPC_MoveChild, 26, ++/*157215*/ OPC_CheckInteger, 1, ++/*157217*/ OPC_CheckType, MVT::i32, ++/*157219*/ OPC_MoveParent, ++/*157220*/ OPC_MoveChild, 27, ++/*157222*/ OPC_CheckInteger, 1, ++/*157224*/ OPC_CheckType, MVT::i32, ++/*157226*/ OPC_MoveParent, ++/*157227*/ OPC_MoveChild, 28, ++/*157229*/ OPC_CheckInteger, 1, ++/*157231*/ OPC_CheckType, MVT::i32, ++/*157233*/ OPC_MoveParent, ++/*157234*/ OPC_MoveChild, 29, ++/*157236*/ OPC_CheckInteger, 1, ++/*157238*/ OPC_CheckType, MVT::i32, ++/*157240*/ OPC_MoveParent, ++/*157241*/ OPC_MoveChild, 30, ++/*157243*/ OPC_CheckInteger, 1, ++/*157245*/ OPC_CheckType, MVT::i32, ++/*157247*/ OPC_MoveParent, ++/*157248*/ OPC_MoveChild, 31, ++/*157250*/ OPC_CheckInteger, 1, ++/*157252*/ OPC_CheckType, MVT::i32, ++/*157254*/ OPC_MoveParent, ++/*157255*/ OPC_MoveParent, ++/*157256*/ OPC_MoveParent, ++/*157257*/ OPC_MoveParent, ++/*157258*/ OPC_MoveChild1, ++/*157259*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*157262*/ OPC_CheckChild0Integer, 7, ++/*157264*/ OPC_CheckChild0Type, MVT::i32, ++/*157266*/ OPC_CheckChild1Integer, 7, ++/*157268*/ OPC_CheckChild1Type, MVT::i32, ++/*157270*/ OPC_CheckChild2Integer, 7, ++/*157272*/ OPC_CheckChild2Type, MVT::i32, ++/*157274*/ OPC_CheckChild3Integer, 7, ++/*157276*/ OPC_CheckChild3Type, MVT::i32, ++/*157278*/ OPC_CheckChild4Integer, 7, ++/*157280*/ OPC_CheckChild4Type, MVT::i32, ++/*157282*/ OPC_MoveChild5, ++/*157283*/ OPC_CheckInteger, 7, ++/*157285*/ OPC_CheckType, MVT::i32, ++/*157287*/ OPC_MoveParent, ++/*157288*/ OPC_MoveChild6, ++/*157289*/ OPC_CheckInteger, 7, ++/*157291*/ OPC_CheckType, MVT::i32, ++/*157293*/ OPC_MoveParent, ++/*157294*/ OPC_MoveChild7, ++/*157295*/ OPC_CheckInteger, 7, ++/*157297*/ OPC_CheckType, MVT::i32, ++/*157299*/ OPC_MoveParent, ++/*157300*/ OPC_MoveChild, 8, ++/*157302*/ OPC_CheckInteger, 7, ++/*157304*/ OPC_CheckType, MVT::i32, ++/*157306*/ OPC_MoveParent, ++/*157307*/ OPC_MoveChild, 9, ++/*157309*/ OPC_CheckInteger, 7, ++/*157311*/ OPC_CheckType, MVT::i32, ++/*157313*/ OPC_MoveParent, ++/*157314*/ OPC_MoveChild, 10, ++/*157316*/ OPC_CheckInteger, 7, ++/*157318*/ OPC_CheckType, MVT::i32, ++/*157320*/ OPC_MoveParent, ++/*157321*/ OPC_MoveChild, 11, ++/*157323*/ OPC_CheckInteger, 7, ++/*157325*/ OPC_CheckType, MVT::i32, ++/*157327*/ OPC_MoveParent, ++/*157328*/ OPC_MoveChild, 12, ++/*157330*/ OPC_CheckInteger, 7, ++/*157332*/ OPC_CheckType, MVT::i32, ++/*157334*/ OPC_MoveParent, ++/*157335*/ OPC_MoveChild, 13, ++/*157337*/ OPC_CheckInteger, 7, ++/*157339*/ OPC_CheckType, MVT::i32, ++/*157341*/ OPC_MoveParent, ++/*157342*/ OPC_MoveChild, 14, ++/*157344*/ OPC_CheckInteger, 7, ++/*157346*/ OPC_CheckType, MVT::i32, ++/*157348*/ OPC_MoveParent, ++/*157349*/ OPC_MoveChild, 15, ++/*157351*/ OPC_CheckInteger, 7, ++/*157353*/ OPC_CheckType, MVT::i32, ++/*157355*/ OPC_MoveParent, ++/*157356*/ OPC_MoveChild, 16, ++/*157358*/ OPC_CheckInteger, 7, ++/*157360*/ OPC_CheckType, MVT::i32, ++/*157362*/ OPC_MoveParent, ++/*157363*/ OPC_MoveChild, 17, ++/*157365*/ OPC_CheckInteger, 7, ++/*157367*/ OPC_CheckType, MVT::i32, ++/*157369*/ OPC_MoveParent, ++/*157370*/ OPC_MoveChild, 18, ++/*157372*/ OPC_CheckInteger, 7, ++/*157374*/ OPC_CheckType, MVT::i32, ++/*157376*/ OPC_MoveParent, ++/*157377*/ OPC_MoveChild, 19, ++/*157379*/ OPC_CheckInteger, 7, ++/*157381*/ OPC_CheckType, MVT::i32, ++/*157383*/ OPC_MoveParent, ++/*157384*/ OPC_MoveChild, 20, ++/*157386*/ OPC_CheckInteger, 7, ++/*157388*/ OPC_CheckType, MVT::i32, ++/*157390*/ OPC_MoveParent, ++/*157391*/ OPC_MoveChild, 21, ++/*157393*/ OPC_CheckInteger, 7, ++/*157395*/ OPC_CheckType, MVT::i32, ++/*157397*/ OPC_MoveParent, ++/*157398*/ OPC_MoveChild, 22, ++/*157400*/ OPC_CheckInteger, 7, ++/*157402*/ OPC_CheckType, MVT::i32, ++/*157404*/ OPC_MoveParent, ++/*157405*/ OPC_MoveChild, 23, ++/*157407*/ OPC_CheckInteger, 7, ++/*157409*/ OPC_CheckType, MVT::i32, ++/*157411*/ OPC_MoveParent, ++/*157412*/ OPC_MoveChild, 24, ++/*157414*/ OPC_CheckInteger, 7, ++/*157416*/ OPC_CheckType, MVT::i32, ++/*157418*/ OPC_MoveParent, ++/*157419*/ OPC_MoveChild, 25, ++/*157421*/ OPC_CheckInteger, 7, ++/*157423*/ OPC_CheckType, MVT::i32, ++/*157425*/ OPC_MoveParent, ++/*157426*/ OPC_MoveChild, 26, ++/*157428*/ OPC_CheckInteger, 7, ++/*157430*/ OPC_CheckType, MVT::i32, ++/*157432*/ OPC_MoveParent, ++/*157433*/ OPC_MoveChild, 27, ++/*157435*/ OPC_CheckInteger, 7, ++/*157437*/ OPC_CheckType, MVT::i32, ++/*157439*/ OPC_MoveParent, ++/*157440*/ OPC_MoveChild, 28, ++/*157442*/ OPC_CheckInteger, 7, ++/*157444*/ OPC_CheckType, MVT::i32, ++/*157446*/ OPC_MoveParent, ++/*157447*/ OPC_MoveChild, 29, ++/*157449*/ OPC_CheckInteger, 7, ++/*157451*/ OPC_CheckType, MVT::i32, ++/*157453*/ OPC_MoveParent, ++/*157454*/ OPC_MoveChild, 30, ++/*157456*/ OPC_CheckInteger, 7, ++/*157458*/ OPC_CheckType, MVT::i32, ++/*157460*/ OPC_MoveParent, ++/*157461*/ OPC_MoveChild, 31, ++/*157463*/ OPC_CheckInteger, 7, ++/*157465*/ OPC_CheckType, MVT::i32, ++/*157467*/ OPC_MoveParent, ++/*157468*/ OPC_CheckType, MVT::v32i8, ++/*157470*/ OPC_MoveParent, ++/*157471*/ OPC_MoveParent, ++/*157472*/ OPC_MoveParent, ++/*157473*/ OPC_MoveChild1, ++/*157474*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*157477*/ OPC_CheckChild0Integer, 1, ++/*157479*/ OPC_CheckChild0Type, MVT::i32, ++/*157481*/ OPC_CheckChild1Integer, 1, ++/*157483*/ OPC_CheckChild1Type, MVT::i32, ++/*157485*/ OPC_CheckChild2Integer, 1, ++/*157487*/ OPC_CheckChild2Type, MVT::i32, ++/*157489*/ OPC_CheckChild3Integer, 1, ++/*157491*/ OPC_CheckChild3Type, MVT::i32, ++/*157493*/ OPC_CheckChild4Integer, 1, ++/*157495*/ OPC_CheckChild4Type, MVT::i32, ++/*157497*/ OPC_MoveChild5, ++/*157498*/ OPC_CheckInteger, 1, ++/*157500*/ OPC_CheckType, MVT::i32, ++/*157502*/ OPC_MoveParent, ++/*157503*/ OPC_MoveChild6, ++/*157504*/ OPC_CheckInteger, 1, ++/*157506*/ OPC_CheckType, MVT::i32, ++/*157508*/ OPC_MoveParent, ++/*157509*/ OPC_MoveChild7, ++/*157510*/ OPC_CheckInteger, 1, ++/*157512*/ OPC_CheckType, MVT::i32, ++/*157514*/ OPC_MoveParent, ++/*157515*/ OPC_MoveChild, 8, ++/*157517*/ OPC_CheckInteger, 1, ++/*157519*/ OPC_CheckType, MVT::i32, ++/*157521*/ OPC_MoveParent, ++/*157522*/ OPC_MoveChild, 9, ++/*157524*/ OPC_CheckInteger, 1, ++/*157526*/ OPC_CheckType, MVT::i32, ++/*157528*/ OPC_MoveParent, ++/*157529*/ OPC_MoveChild, 10, ++/*157531*/ OPC_CheckInteger, 1, ++/*157533*/ OPC_CheckType, MVT::i32, ++/*157535*/ OPC_MoveParent, ++/*157536*/ OPC_MoveChild, 11, ++/*157538*/ OPC_CheckInteger, 1, ++/*157540*/ OPC_CheckType, MVT::i32, ++/*157542*/ OPC_MoveParent, ++/*157543*/ OPC_MoveChild, 12, ++/*157545*/ OPC_CheckInteger, 1, ++/*157547*/ OPC_CheckType, MVT::i32, ++/*157549*/ OPC_MoveParent, ++/*157550*/ OPC_MoveChild, 13, ++/*157552*/ OPC_CheckInteger, 1, ++/*157554*/ OPC_CheckType, MVT::i32, ++/*157556*/ OPC_MoveParent, ++/*157557*/ OPC_MoveChild, 14, ++/*157559*/ OPC_CheckInteger, 1, ++/*157561*/ OPC_CheckType, MVT::i32, ++/*157563*/ OPC_MoveParent, ++/*157564*/ OPC_MoveChild, 15, ++/*157566*/ OPC_CheckInteger, 1, ++/*157568*/ OPC_CheckType, MVT::i32, ++/*157570*/ OPC_MoveParent, ++/*157571*/ OPC_MoveChild, 16, ++/*157573*/ OPC_CheckInteger, 1, ++/*157575*/ OPC_CheckType, MVT::i32, ++/*157577*/ OPC_MoveParent, ++/*157578*/ OPC_MoveChild, 17, ++/*157580*/ OPC_CheckInteger, 1, ++/*157582*/ OPC_CheckType, MVT::i32, ++/*157584*/ OPC_MoveParent, ++/*157585*/ OPC_MoveChild, 18, ++/*157587*/ OPC_CheckInteger, 1, ++/*157589*/ OPC_CheckType, MVT::i32, ++/*157591*/ OPC_MoveParent, ++/*157592*/ OPC_MoveChild, 19, ++/*157594*/ OPC_CheckInteger, 1, ++/*157596*/ OPC_CheckType, MVT::i32, ++/*157598*/ OPC_MoveParent, ++/*157599*/ OPC_MoveChild, 20, ++/*157601*/ OPC_CheckInteger, 1, ++/*157603*/ OPC_CheckType, MVT::i32, ++/*157605*/ OPC_MoveParent, ++/*157606*/ OPC_MoveChild, 21, ++/*157608*/ OPC_CheckInteger, 1, ++/*157610*/ OPC_CheckType, MVT::i32, ++/*157612*/ OPC_MoveParent, ++/*157613*/ OPC_MoveChild, 22, ++/*157615*/ OPC_CheckInteger, 1, ++/*157617*/ OPC_CheckType, MVT::i32, ++/*157619*/ OPC_MoveParent, ++/*157620*/ OPC_MoveChild, 23, ++/*157622*/ OPC_CheckInteger, 1, ++/*157624*/ OPC_CheckType, MVT::i32, ++/*157626*/ OPC_MoveParent, ++/*157627*/ OPC_MoveChild, 24, ++/*157629*/ OPC_CheckInteger, 1, ++/*157631*/ OPC_CheckType, MVT::i32, ++/*157633*/ OPC_MoveParent, ++/*157634*/ OPC_MoveChild, 25, ++/*157636*/ OPC_CheckInteger, 1, ++/*157638*/ OPC_CheckType, MVT::i32, ++/*157640*/ OPC_MoveParent, ++/*157641*/ OPC_MoveChild, 26, ++/*157643*/ OPC_CheckInteger, 1, ++/*157645*/ OPC_CheckType, MVT::i32, ++/*157647*/ OPC_MoveParent, ++/*157648*/ OPC_MoveChild, 27, ++/*157650*/ OPC_CheckInteger, 1, ++/*157652*/ OPC_CheckType, MVT::i32, ++/*157654*/ OPC_MoveParent, ++/*157655*/ OPC_MoveChild, 28, ++/*157657*/ OPC_CheckInteger, 1, ++/*157659*/ OPC_CheckType, MVT::i32, ++/*157661*/ OPC_MoveParent, ++/*157662*/ OPC_MoveChild, 29, ++/*157664*/ OPC_CheckInteger, 1, ++/*157666*/ OPC_CheckType, MVT::i32, ++/*157668*/ OPC_MoveParent, ++/*157669*/ OPC_MoveChild, 30, ++/*157671*/ OPC_CheckInteger, 1, ++/*157673*/ OPC_CheckType, MVT::i32, ++/*157675*/ OPC_MoveParent, ++/*157676*/ OPC_MoveChild, 31, ++/*157678*/ OPC_CheckInteger, 1, ++/*157680*/ OPC_CheckType, MVT::i32, ++/*157682*/ OPC_MoveParent, ++/*157683*/ OPC_CheckType, MVT::v32i8, ++/*157685*/ OPC_MoveParent, ++/*157686*/ OPC_CheckType, MVT::v32i8, ++/*157688*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*157690*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*157698*/ 0, /*End of Scope*/ ++/*157699*/ /*Scope*/ 42|128,10/*1322*/, /*->159023*/ ++/*157701*/ OPC_CheckChild0Same, 0, ++/*157703*/ OPC_MoveChild1, ++/*157704*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*157707*/ OPC_Scope, 15|128,5/*655*/, /*->158365*/ // 2 children in Scope ++/*157710*/ OPC_MoveChild0, ++/*157711*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*157714*/ OPC_CheckChild0Integer, 1, ++/*157716*/ OPC_CheckChild0Type, MVT::i32, ++/*157718*/ OPC_CheckChild1Integer, 1, ++/*157720*/ OPC_CheckChild1Type, MVT::i32, ++/*157722*/ OPC_CheckChild2Integer, 1, ++/*157724*/ OPC_CheckChild2Type, MVT::i32, ++/*157726*/ OPC_CheckChild3Integer, 1, ++/*157728*/ OPC_CheckChild3Type, MVT::i32, ++/*157730*/ OPC_CheckChild4Integer, 1, ++/*157732*/ OPC_CheckChild4Type, MVT::i32, ++/*157734*/ OPC_MoveChild5, ++/*157735*/ OPC_CheckInteger, 1, ++/*157737*/ OPC_CheckType, MVT::i32, ++/*157739*/ OPC_MoveParent, ++/*157740*/ OPC_MoveChild6, ++/*157741*/ OPC_CheckInteger, 1, ++/*157743*/ OPC_CheckType, MVT::i32, ++/*157745*/ OPC_MoveParent, ++/*157746*/ OPC_MoveChild7, ++/*157747*/ OPC_CheckInteger, 1, ++/*157749*/ OPC_CheckType, MVT::i32, ++/*157751*/ OPC_MoveParent, ++/*157752*/ OPC_MoveChild, 8, ++/*157754*/ OPC_CheckInteger, 1, ++/*157756*/ OPC_CheckType, MVT::i32, ++/*157758*/ OPC_MoveParent, ++/*157759*/ OPC_MoveChild, 9, ++/*157761*/ OPC_CheckInteger, 1, ++/*157763*/ OPC_CheckType, MVT::i32, ++/*157765*/ OPC_MoveParent, ++/*157766*/ OPC_MoveChild, 10, ++/*157768*/ OPC_CheckInteger, 1, ++/*157770*/ OPC_CheckType, MVT::i32, ++/*157772*/ OPC_MoveParent, ++/*157773*/ OPC_MoveChild, 11, ++/*157775*/ OPC_CheckInteger, 1, ++/*157777*/ OPC_CheckType, MVT::i32, ++/*157779*/ OPC_MoveParent, ++/*157780*/ OPC_MoveChild, 12, ++/*157782*/ OPC_CheckInteger, 1, ++/*157784*/ OPC_CheckType, MVT::i32, ++/*157786*/ OPC_MoveParent, ++/*157787*/ OPC_MoveChild, 13, ++/*157789*/ OPC_CheckInteger, 1, ++/*157791*/ OPC_CheckType, MVT::i32, ++/*157793*/ OPC_MoveParent, ++/*157794*/ OPC_MoveChild, 14, ++/*157796*/ OPC_CheckInteger, 1, ++/*157798*/ OPC_CheckType, MVT::i32, ++/*157800*/ OPC_MoveParent, ++/*157801*/ OPC_MoveChild, 15, ++/*157803*/ OPC_CheckInteger, 1, ++/*157805*/ OPC_CheckType, MVT::i32, ++/*157807*/ OPC_MoveParent, ++/*157808*/ OPC_MoveChild, 16, ++/*157810*/ OPC_CheckInteger, 1, ++/*157812*/ OPC_CheckType, MVT::i32, ++/*157814*/ OPC_MoveParent, ++/*157815*/ OPC_MoveChild, 17, ++/*157817*/ OPC_CheckInteger, 1, ++/*157819*/ OPC_CheckType, MVT::i32, ++/*157821*/ OPC_MoveParent, ++/*157822*/ OPC_MoveChild, 18, ++/*157824*/ OPC_CheckInteger, 1, ++/*157826*/ OPC_CheckType, MVT::i32, ++/*157828*/ OPC_MoveParent, ++/*157829*/ OPC_MoveChild, 19, ++/*157831*/ OPC_CheckInteger, 1, ++/*157833*/ OPC_CheckType, MVT::i32, ++/*157835*/ OPC_MoveParent, ++/*157836*/ OPC_MoveChild, 20, ++/*157838*/ OPC_CheckInteger, 1, ++/*157840*/ OPC_CheckType, MVT::i32, ++/*157842*/ OPC_MoveParent, ++/*157843*/ OPC_MoveChild, 21, ++/*157845*/ OPC_CheckInteger, 1, ++/*157847*/ OPC_CheckType, MVT::i32, ++/*157849*/ OPC_MoveParent, ++/*157850*/ OPC_MoveChild, 22, ++/*157852*/ OPC_CheckInteger, 1, ++/*157854*/ OPC_CheckType, MVT::i32, ++/*157856*/ OPC_MoveParent, ++/*157857*/ OPC_MoveChild, 23, ++/*157859*/ OPC_CheckInteger, 1, ++/*157861*/ OPC_CheckType, MVT::i32, ++/*157863*/ OPC_MoveParent, ++/*157864*/ OPC_MoveChild, 24, ++/*157866*/ OPC_CheckInteger, 1, ++/*157868*/ OPC_CheckType, MVT::i32, ++/*157870*/ OPC_MoveParent, ++/*157871*/ OPC_MoveChild, 25, ++/*157873*/ OPC_CheckInteger, 1, ++/*157875*/ OPC_CheckType, MVT::i32, ++/*157877*/ OPC_MoveParent, ++/*157878*/ OPC_MoveChild, 26, ++/*157880*/ OPC_CheckInteger, 1, ++/*157882*/ OPC_CheckType, MVT::i32, ++/*157884*/ OPC_MoveParent, ++/*157885*/ OPC_MoveChild, 27, ++/*157887*/ OPC_CheckInteger, 1, ++/*157889*/ OPC_CheckType, MVT::i32, ++/*157891*/ OPC_MoveParent, ++/*157892*/ OPC_MoveChild, 28, ++/*157894*/ OPC_CheckInteger, 1, ++/*157896*/ OPC_CheckType, MVT::i32, ++/*157898*/ OPC_MoveParent, ++/*157899*/ OPC_MoveChild, 29, ++/*157901*/ OPC_CheckInteger, 1, ++/*157903*/ OPC_CheckType, MVT::i32, ++/*157905*/ OPC_MoveParent, ++/*157906*/ OPC_MoveChild, 30, ++/*157908*/ OPC_CheckInteger, 1, ++/*157910*/ OPC_CheckType, MVT::i32, ++/*157912*/ OPC_MoveParent, ++/*157913*/ OPC_MoveChild, 31, ++/*157915*/ OPC_CheckInteger, 1, ++/*157917*/ OPC_CheckType, MVT::i32, ++/*157919*/ OPC_MoveParent, ++/*157920*/ OPC_MoveParent, ++/*157921*/ OPC_CheckChild1Same, 1, ++/*157923*/ OPC_MoveParent, ++/*157924*/ OPC_MoveParent, ++/*157925*/ OPC_MoveChild1, ++/*157926*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*157929*/ OPC_CheckChild0Integer, 7, ++/*157931*/ OPC_CheckChild0Type, MVT::i32, ++/*157933*/ OPC_CheckChild1Integer, 7, ++/*157935*/ OPC_CheckChild1Type, MVT::i32, ++/*157937*/ OPC_CheckChild2Integer, 7, ++/*157939*/ OPC_CheckChild2Type, MVT::i32, ++/*157941*/ OPC_CheckChild3Integer, 7, ++/*157943*/ OPC_CheckChild3Type, MVT::i32, ++/*157945*/ OPC_CheckChild4Integer, 7, ++/*157947*/ OPC_CheckChild4Type, MVT::i32, ++/*157949*/ OPC_MoveChild5, ++/*157950*/ OPC_CheckInteger, 7, ++/*157952*/ OPC_CheckType, MVT::i32, ++/*157954*/ OPC_MoveParent, ++/*157955*/ OPC_MoveChild6, ++/*157956*/ OPC_CheckInteger, 7, ++/*157958*/ OPC_CheckType, MVT::i32, ++/*157960*/ OPC_MoveParent, ++/*157961*/ OPC_MoveChild7, ++/*157962*/ OPC_CheckInteger, 7, ++/*157964*/ OPC_CheckType, MVT::i32, ++/*157966*/ OPC_MoveParent, ++/*157967*/ OPC_MoveChild, 8, ++/*157969*/ OPC_CheckInteger, 7, ++/*157971*/ OPC_CheckType, MVT::i32, ++/*157973*/ OPC_MoveParent, ++/*157974*/ OPC_MoveChild, 9, ++/*157976*/ OPC_CheckInteger, 7, ++/*157978*/ OPC_CheckType, MVT::i32, ++/*157980*/ OPC_MoveParent, ++/*157981*/ OPC_MoveChild, 10, ++/*157983*/ OPC_CheckInteger, 7, ++/*157985*/ OPC_CheckType, MVT::i32, ++/*157987*/ OPC_MoveParent, ++/*157988*/ OPC_MoveChild, 11, ++/*157990*/ OPC_CheckInteger, 7, ++/*157992*/ OPC_CheckType, MVT::i32, ++/*157994*/ OPC_MoveParent, ++/*157995*/ OPC_MoveChild, 12, ++/*157997*/ OPC_CheckInteger, 7, ++/*157999*/ OPC_CheckType, MVT::i32, ++/*158001*/ OPC_MoveParent, ++/*158002*/ OPC_MoveChild, 13, ++/*158004*/ OPC_CheckInteger, 7, ++/*158006*/ OPC_CheckType, MVT::i32, ++/*158008*/ OPC_MoveParent, ++/*158009*/ OPC_MoveChild, 14, ++/*158011*/ OPC_CheckInteger, 7, ++/*158013*/ OPC_CheckType, MVT::i32, ++/*158015*/ OPC_MoveParent, ++/*158016*/ OPC_MoveChild, 15, ++/*158018*/ OPC_CheckInteger, 7, ++/*158020*/ OPC_CheckType, MVT::i32, ++/*158022*/ OPC_MoveParent, ++/*158023*/ OPC_MoveChild, 16, ++/*158025*/ OPC_CheckInteger, 7, ++/*158027*/ OPC_CheckType, MVT::i32, ++/*158029*/ OPC_MoveParent, ++/*158030*/ OPC_MoveChild, 17, ++/*158032*/ OPC_CheckInteger, 7, ++/*158034*/ OPC_CheckType, MVT::i32, ++/*158036*/ OPC_MoveParent, ++/*158037*/ OPC_MoveChild, 18, ++/*158039*/ OPC_CheckInteger, 7, ++/*158041*/ OPC_CheckType, MVT::i32, ++/*158043*/ OPC_MoveParent, ++/*158044*/ OPC_MoveChild, 19, ++/*158046*/ OPC_CheckInteger, 7, ++/*158048*/ OPC_CheckType, MVT::i32, ++/*158050*/ OPC_MoveParent, ++/*158051*/ OPC_MoveChild, 20, ++/*158053*/ OPC_CheckInteger, 7, ++/*158055*/ OPC_CheckType, MVT::i32, ++/*158057*/ OPC_MoveParent, ++/*158058*/ OPC_MoveChild, 21, ++/*158060*/ OPC_CheckInteger, 7, ++/*158062*/ OPC_CheckType, MVT::i32, ++/*158064*/ OPC_MoveParent, ++/*158065*/ OPC_MoveChild, 22, ++/*158067*/ OPC_CheckInteger, 7, ++/*158069*/ OPC_CheckType, MVT::i32, ++/*158071*/ OPC_MoveParent, ++/*158072*/ OPC_MoveChild, 23, ++/*158074*/ OPC_CheckInteger, 7, ++/*158076*/ OPC_CheckType, MVT::i32, ++/*158078*/ OPC_MoveParent, ++/*158079*/ OPC_MoveChild, 24, ++/*158081*/ OPC_CheckInteger, 7, ++/*158083*/ OPC_CheckType, MVT::i32, ++/*158085*/ OPC_MoveParent, ++/*158086*/ OPC_MoveChild, 25, ++/*158088*/ OPC_CheckInteger, 7, ++/*158090*/ OPC_CheckType, MVT::i32, ++/*158092*/ OPC_MoveParent, ++/*158093*/ OPC_MoveChild, 26, ++/*158095*/ OPC_CheckInteger, 7, ++/*158097*/ OPC_CheckType, MVT::i32, ++/*158099*/ OPC_MoveParent, ++/*158100*/ OPC_MoveChild, 27, ++/*158102*/ OPC_CheckInteger, 7, ++/*158104*/ OPC_CheckType, MVT::i32, ++/*158106*/ OPC_MoveParent, ++/*158107*/ OPC_MoveChild, 28, ++/*158109*/ OPC_CheckInteger, 7, ++/*158111*/ OPC_CheckType, MVT::i32, ++/*158113*/ OPC_MoveParent, ++/*158114*/ OPC_MoveChild, 29, ++/*158116*/ OPC_CheckInteger, 7, ++/*158118*/ OPC_CheckType, MVT::i32, ++/*158120*/ OPC_MoveParent, ++/*158121*/ OPC_MoveChild, 30, ++/*158123*/ OPC_CheckInteger, 7, ++/*158125*/ OPC_CheckType, MVT::i32, ++/*158127*/ OPC_MoveParent, ++/*158128*/ OPC_MoveChild, 31, ++/*158130*/ OPC_CheckInteger, 7, ++/*158132*/ OPC_CheckType, MVT::i32, ++/*158134*/ OPC_MoveParent, ++/*158135*/ OPC_CheckType, MVT::v32i8, ++/*158137*/ OPC_MoveParent, ++/*158138*/ OPC_MoveParent, ++/*158139*/ OPC_MoveParent, ++/*158140*/ OPC_MoveChild1, ++/*158141*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*158144*/ OPC_CheckChild0Integer, 1, ++/*158146*/ OPC_CheckChild0Type, MVT::i32, ++/*158148*/ OPC_CheckChild1Integer, 1, ++/*158150*/ OPC_CheckChild1Type, MVT::i32, ++/*158152*/ OPC_CheckChild2Integer, 1, ++/*158154*/ OPC_CheckChild2Type, MVT::i32, ++/*158156*/ OPC_CheckChild3Integer, 1, ++/*158158*/ OPC_CheckChild3Type, MVT::i32, ++/*158160*/ OPC_CheckChild4Integer, 1, ++/*158162*/ OPC_CheckChild4Type, MVT::i32, ++/*158164*/ OPC_MoveChild5, ++/*158165*/ OPC_CheckInteger, 1, ++/*158167*/ OPC_CheckType, MVT::i32, ++/*158169*/ OPC_MoveParent, ++/*158170*/ OPC_MoveChild6, ++/*158171*/ OPC_CheckInteger, 1, ++/*158173*/ OPC_CheckType, MVT::i32, ++/*158175*/ OPC_MoveParent, ++/*158176*/ OPC_MoveChild7, ++/*158177*/ OPC_CheckInteger, 1, ++/*158179*/ OPC_CheckType, MVT::i32, ++/*158181*/ OPC_MoveParent, ++/*158182*/ OPC_MoveChild, 8, ++/*158184*/ OPC_CheckInteger, 1, ++/*158186*/ OPC_CheckType, MVT::i32, ++/*158188*/ OPC_MoveParent, ++/*158189*/ OPC_MoveChild, 9, ++/*158191*/ OPC_CheckInteger, 1, ++/*158193*/ OPC_CheckType, MVT::i32, ++/*158195*/ OPC_MoveParent, ++/*158196*/ OPC_MoveChild, 10, ++/*158198*/ OPC_CheckInteger, 1, ++/*158200*/ OPC_CheckType, MVT::i32, ++/*158202*/ OPC_MoveParent, ++/*158203*/ OPC_MoveChild, 11, ++/*158205*/ OPC_CheckInteger, 1, ++/*158207*/ OPC_CheckType, MVT::i32, ++/*158209*/ OPC_MoveParent, ++/*158210*/ OPC_MoveChild, 12, ++/*158212*/ OPC_CheckInteger, 1, ++/*158214*/ OPC_CheckType, MVT::i32, ++/*158216*/ OPC_MoveParent, ++/*158217*/ OPC_MoveChild, 13, ++/*158219*/ OPC_CheckInteger, 1, ++/*158221*/ OPC_CheckType, MVT::i32, ++/*158223*/ OPC_MoveParent, ++/*158224*/ OPC_MoveChild, 14, ++/*158226*/ OPC_CheckInteger, 1, ++/*158228*/ OPC_CheckType, MVT::i32, ++/*158230*/ OPC_MoveParent, ++/*158231*/ OPC_MoveChild, 15, ++/*158233*/ OPC_CheckInteger, 1, ++/*158235*/ OPC_CheckType, MVT::i32, ++/*158237*/ OPC_MoveParent, ++/*158238*/ OPC_MoveChild, 16, ++/*158240*/ OPC_CheckInteger, 1, ++/*158242*/ OPC_CheckType, MVT::i32, ++/*158244*/ OPC_MoveParent, ++/*158245*/ OPC_MoveChild, 17, ++/*158247*/ OPC_CheckInteger, 1, ++/*158249*/ OPC_CheckType, MVT::i32, ++/*158251*/ OPC_MoveParent, ++/*158252*/ OPC_MoveChild, 18, ++/*158254*/ OPC_CheckInteger, 1, ++/*158256*/ OPC_CheckType, MVT::i32, ++/*158258*/ OPC_MoveParent, ++/*158259*/ OPC_MoveChild, 19, ++/*158261*/ OPC_CheckInteger, 1, ++/*158263*/ OPC_CheckType, MVT::i32, ++/*158265*/ OPC_MoveParent, ++/*158266*/ OPC_MoveChild, 20, ++/*158268*/ OPC_CheckInteger, 1, ++/*158270*/ OPC_CheckType, MVT::i32, ++/*158272*/ OPC_MoveParent, ++/*158273*/ OPC_MoveChild, 21, ++/*158275*/ OPC_CheckInteger, 1, ++/*158277*/ OPC_CheckType, MVT::i32, ++/*158279*/ OPC_MoveParent, ++/*158280*/ OPC_MoveChild, 22, ++/*158282*/ OPC_CheckInteger, 1, ++/*158284*/ OPC_CheckType, MVT::i32, ++/*158286*/ OPC_MoveParent, ++/*158287*/ OPC_MoveChild, 23, ++/*158289*/ OPC_CheckInteger, 1, ++/*158291*/ OPC_CheckType, MVT::i32, ++/*158293*/ OPC_MoveParent, ++/*158294*/ OPC_MoveChild, 24, ++/*158296*/ OPC_CheckInteger, 1, ++/*158298*/ OPC_CheckType, MVT::i32, ++/*158300*/ OPC_MoveParent, ++/*158301*/ OPC_MoveChild, 25, ++/*158303*/ OPC_CheckInteger, 1, ++/*158305*/ OPC_CheckType, MVT::i32, ++/*158307*/ OPC_MoveParent, ++/*158308*/ OPC_MoveChild, 26, ++/*158310*/ OPC_CheckInteger, 1, ++/*158312*/ OPC_CheckType, MVT::i32, ++/*158314*/ OPC_MoveParent, ++/*158315*/ OPC_MoveChild, 27, ++/*158317*/ OPC_CheckInteger, 1, ++/*158319*/ OPC_CheckType, MVT::i32, ++/*158321*/ OPC_MoveParent, ++/*158322*/ OPC_MoveChild, 28, ++/*158324*/ OPC_CheckInteger, 1, ++/*158326*/ OPC_CheckType, MVT::i32, ++/*158328*/ OPC_MoveParent, ++/*158329*/ OPC_MoveChild, 29, ++/*158331*/ OPC_CheckInteger, 1, ++/*158333*/ OPC_CheckType, MVT::i32, ++/*158335*/ OPC_MoveParent, ++/*158336*/ OPC_MoveChild, 30, ++/*158338*/ OPC_CheckInteger, 1, ++/*158340*/ OPC_CheckType, MVT::i32, ++/*158342*/ OPC_MoveParent, ++/*158343*/ OPC_MoveChild, 31, ++/*158345*/ OPC_CheckInteger, 1, ++/*158347*/ OPC_CheckType, MVT::i32, ++/*158349*/ OPC_MoveParent, ++/*158350*/ OPC_CheckType, MVT::v32i8, ++/*158352*/ OPC_MoveParent, ++/*158353*/ OPC_CheckType, MVT::v32i8, ++/*158355*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*158357*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*158365*/ /*Scope*/ 15|128,5/*655*/, /*->159022*/ ++/*158367*/ OPC_CheckChild0Same, 1, ++/*158369*/ OPC_MoveChild1, ++/*158370*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*158373*/ OPC_CheckChild0Integer, 1, ++/*158375*/ OPC_CheckChild0Type, MVT::i32, ++/*158377*/ OPC_CheckChild1Integer, 1, ++/*158379*/ OPC_CheckChild1Type, MVT::i32, ++/*158381*/ OPC_CheckChild2Integer, 1, ++/*158383*/ OPC_CheckChild2Type, MVT::i32, ++/*158385*/ OPC_CheckChild3Integer, 1, ++/*158387*/ OPC_CheckChild3Type, MVT::i32, ++/*158389*/ OPC_CheckChild4Integer, 1, ++/*158391*/ OPC_CheckChild4Type, MVT::i32, ++/*158393*/ OPC_MoveChild5, ++/*158394*/ OPC_CheckInteger, 1, ++/*158396*/ OPC_CheckType, MVT::i32, ++/*158398*/ OPC_MoveParent, ++/*158399*/ OPC_MoveChild6, ++/*158400*/ OPC_CheckInteger, 1, ++/*158402*/ OPC_CheckType, MVT::i32, ++/*158404*/ OPC_MoveParent, ++/*158405*/ OPC_MoveChild7, ++/*158406*/ OPC_CheckInteger, 1, ++/*158408*/ OPC_CheckType, MVT::i32, ++/*158410*/ OPC_MoveParent, ++/*158411*/ OPC_MoveChild, 8, ++/*158413*/ OPC_CheckInteger, 1, ++/*158415*/ OPC_CheckType, MVT::i32, ++/*158417*/ OPC_MoveParent, ++/*158418*/ OPC_MoveChild, 9, ++/*158420*/ OPC_CheckInteger, 1, ++/*158422*/ OPC_CheckType, MVT::i32, ++/*158424*/ OPC_MoveParent, ++/*158425*/ OPC_MoveChild, 10, ++/*158427*/ OPC_CheckInteger, 1, ++/*158429*/ OPC_CheckType, MVT::i32, ++/*158431*/ OPC_MoveParent, ++/*158432*/ OPC_MoveChild, 11, ++/*158434*/ OPC_CheckInteger, 1, ++/*158436*/ OPC_CheckType, MVT::i32, ++/*158438*/ OPC_MoveParent, ++/*158439*/ OPC_MoveChild, 12, ++/*158441*/ OPC_CheckInteger, 1, ++/*158443*/ OPC_CheckType, MVT::i32, ++/*158445*/ OPC_MoveParent, ++/*158446*/ OPC_MoveChild, 13, ++/*158448*/ OPC_CheckInteger, 1, ++/*158450*/ OPC_CheckType, MVT::i32, ++/*158452*/ OPC_MoveParent, ++/*158453*/ OPC_MoveChild, 14, ++/*158455*/ OPC_CheckInteger, 1, ++/*158457*/ OPC_CheckType, MVT::i32, ++/*158459*/ OPC_MoveParent, ++/*158460*/ OPC_MoveChild, 15, ++/*158462*/ OPC_CheckInteger, 1, ++/*158464*/ OPC_CheckType, MVT::i32, ++/*158466*/ OPC_MoveParent, ++/*158467*/ OPC_MoveChild, 16, ++/*158469*/ OPC_CheckInteger, 1, ++/*158471*/ OPC_CheckType, MVT::i32, ++/*158473*/ OPC_MoveParent, ++/*158474*/ OPC_MoveChild, 17, ++/*158476*/ OPC_CheckInteger, 1, ++/*158478*/ OPC_CheckType, MVT::i32, ++/*158480*/ OPC_MoveParent, ++/*158481*/ OPC_MoveChild, 18, ++/*158483*/ OPC_CheckInteger, 1, ++/*158485*/ OPC_CheckType, MVT::i32, ++/*158487*/ OPC_MoveParent, ++/*158488*/ OPC_MoveChild, 19, ++/*158490*/ OPC_CheckInteger, 1, ++/*158492*/ OPC_CheckType, MVT::i32, ++/*158494*/ OPC_MoveParent, ++/*158495*/ OPC_MoveChild, 20, ++/*158497*/ OPC_CheckInteger, 1, ++/*158499*/ OPC_CheckType, MVT::i32, ++/*158501*/ OPC_MoveParent, ++/*158502*/ OPC_MoveChild, 21, ++/*158504*/ OPC_CheckInteger, 1, ++/*158506*/ OPC_CheckType, MVT::i32, ++/*158508*/ OPC_MoveParent, ++/*158509*/ OPC_MoveChild, 22, ++/*158511*/ OPC_CheckInteger, 1, ++/*158513*/ OPC_CheckType, MVT::i32, ++/*158515*/ OPC_MoveParent, ++/*158516*/ OPC_MoveChild, 23, ++/*158518*/ OPC_CheckInteger, 1, ++/*158520*/ OPC_CheckType, MVT::i32, ++/*158522*/ OPC_MoveParent, ++/*158523*/ OPC_MoveChild, 24, ++/*158525*/ OPC_CheckInteger, 1, ++/*158527*/ OPC_CheckType, MVT::i32, ++/*158529*/ OPC_MoveParent, ++/*158530*/ OPC_MoveChild, 25, ++/*158532*/ OPC_CheckInteger, 1, ++/*158534*/ OPC_CheckType, MVT::i32, ++/*158536*/ OPC_MoveParent, ++/*158537*/ OPC_MoveChild, 26, ++/*158539*/ OPC_CheckInteger, 1, ++/*158541*/ OPC_CheckType, MVT::i32, ++/*158543*/ OPC_MoveParent, ++/*158544*/ OPC_MoveChild, 27, ++/*158546*/ OPC_CheckInteger, 1, ++/*158548*/ OPC_CheckType, MVT::i32, ++/*158550*/ OPC_MoveParent, ++/*158551*/ OPC_MoveChild, 28, ++/*158553*/ OPC_CheckInteger, 1, ++/*158555*/ OPC_CheckType, MVT::i32, ++/*158557*/ OPC_MoveParent, ++/*158558*/ OPC_MoveChild, 29, ++/*158560*/ OPC_CheckInteger, 1, ++/*158562*/ OPC_CheckType, MVT::i32, ++/*158564*/ OPC_MoveParent, ++/*158565*/ OPC_MoveChild, 30, ++/*158567*/ OPC_CheckInteger, 1, ++/*158569*/ OPC_CheckType, MVT::i32, ++/*158571*/ OPC_MoveParent, ++/*158572*/ OPC_MoveChild, 31, ++/*158574*/ OPC_CheckInteger, 1, ++/*158576*/ OPC_CheckType, MVT::i32, ++/*158578*/ OPC_MoveParent, ++/*158579*/ OPC_MoveParent, ++/*158580*/ OPC_MoveParent, ++/*158581*/ OPC_MoveParent, ++/*158582*/ OPC_MoveChild1, ++/*158583*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*158586*/ OPC_CheckChild0Integer, 7, ++/*158588*/ OPC_CheckChild0Type, MVT::i32, ++/*158590*/ OPC_CheckChild1Integer, 7, ++/*158592*/ OPC_CheckChild1Type, MVT::i32, ++/*158594*/ OPC_CheckChild2Integer, 7, ++/*158596*/ OPC_CheckChild2Type, MVT::i32, ++/*158598*/ OPC_CheckChild3Integer, 7, ++/*158600*/ OPC_CheckChild3Type, MVT::i32, ++/*158602*/ OPC_CheckChild4Integer, 7, ++/*158604*/ OPC_CheckChild4Type, MVT::i32, ++/*158606*/ OPC_MoveChild5, ++/*158607*/ OPC_CheckInteger, 7, ++/*158609*/ OPC_CheckType, MVT::i32, ++/*158611*/ OPC_MoveParent, ++/*158612*/ OPC_MoveChild6, ++/*158613*/ OPC_CheckInteger, 7, ++/*158615*/ OPC_CheckType, MVT::i32, ++/*158617*/ OPC_MoveParent, ++/*158618*/ OPC_MoveChild7, ++/*158619*/ OPC_CheckInteger, 7, ++/*158621*/ OPC_CheckType, MVT::i32, ++/*158623*/ OPC_MoveParent, ++/*158624*/ OPC_MoveChild, 8, ++/*158626*/ OPC_CheckInteger, 7, ++/*158628*/ OPC_CheckType, MVT::i32, ++/*158630*/ OPC_MoveParent, ++/*158631*/ OPC_MoveChild, 9, ++/*158633*/ OPC_CheckInteger, 7, ++/*158635*/ OPC_CheckType, MVT::i32, ++/*158637*/ OPC_MoveParent, ++/*158638*/ OPC_MoveChild, 10, ++/*158640*/ OPC_CheckInteger, 7, ++/*158642*/ OPC_CheckType, MVT::i32, ++/*158644*/ OPC_MoveParent, ++/*158645*/ OPC_MoveChild, 11, ++/*158647*/ OPC_CheckInteger, 7, ++/*158649*/ OPC_CheckType, MVT::i32, ++/*158651*/ OPC_MoveParent, ++/*158652*/ OPC_MoveChild, 12, ++/*158654*/ OPC_CheckInteger, 7, ++/*158656*/ OPC_CheckType, MVT::i32, ++/*158658*/ OPC_MoveParent, ++/*158659*/ OPC_MoveChild, 13, ++/*158661*/ OPC_CheckInteger, 7, ++/*158663*/ OPC_CheckType, MVT::i32, ++/*158665*/ OPC_MoveParent, ++/*158666*/ OPC_MoveChild, 14, ++/*158668*/ OPC_CheckInteger, 7, ++/*158670*/ OPC_CheckType, MVT::i32, ++/*158672*/ OPC_MoveParent, ++/*158673*/ OPC_MoveChild, 15, ++/*158675*/ OPC_CheckInteger, 7, ++/*158677*/ OPC_CheckType, MVT::i32, ++/*158679*/ OPC_MoveParent, ++/*158680*/ OPC_MoveChild, 16, ++/*158682*/ OPC_CheckInteger, 7, ++/*158684*/ OPC_CheckType, MVT::i32, ++/*158686*/ OPC_MoveParent, ++/*158687*/ OPC_MoveChild, 17, ++/*158689*/ OPC_CheckInteger, 7, ++/*158691*/ OPC_CheckType, MVT::i32, ++/*158693*/ OPC_MoveParent, ++/*158694*/ OPC_MoveChild, 18, ++/*158696*/ OPC_CheckInteger, 7, ++/*158698*/ OPC_CheckType, MVT::i32, ++/*158700*/ OPC_MoveParent, ++/*158701*/ OPC_MoveChild, 19, ++/*158703*/ OPC_CheckInteger, 7, ++/*158705*/ OPC_CheckType, MVT::i32, ++/*158707*/ OPC_MoveParent, ++/*158708*/ OPC_MoveChild, 20, ++/*158710*/ OPC_CheckInteger, 7, ++/*158712*/ OPC_CheckType, MVT::i32, ++/*158714*/ OPC_MoveParent, ++/*158715*/ OPC_MoveChild, 21, ++/*158717*/ OPC_CheckInteger, 7, ++/*158719*/ OPC_CheckType, MVT::i32, ++/*158721*/ OPC_MoveParent, ++/*158722*/ OPC_MoveChild, 22, ++/*158724*/ OPC_CheckInteger, 7, ++/*158726*/ OPC_CheckType, MVT::i32, ++/*158728*/ OPC_MoveParent, ++/*158729*/ OPC_MoveChild, 23, ++/*158731*/ OPC_CheckInteger, 7, ++/*158733*/ OPC_CheckType, MVT::i32, ++/*158735*/ OPC_MoveParent, ++/*158736*/ OPC_MoveChild, 24, ++/*158738*/ OPC_CheckInteger, 7, ++/*158740*/ OPC_CheckType, MVT::i32, ++/*158742*/ OPC_MoveParent, ++/*158743*/ OPC_MoveChild, 25, ++/*158745*/ OPC_CheckInteger, 7, ++/*158747*/ OPC_CheckType, MVT::i32, ++/*158749*/ OPC_MoveParent, ++/*158750*/ OPC_MoveChild, 26, ++/*158752*/ OPC_CheckInteger, 7, ++/*158754*/ OPC_CheckType, MVT::i32, ++/*158756*/ OPC_MoveParent, ++/*158757*/ OPC_MoveChild, 27, ++/*158759*/ OPC_CheckInteger, 7, ++/*158761*/ OPC_CheckType, MVT::i32, ++/*158763*/ OPC_MoveParent, ++/*158764*/ OPC_MoveChild, 28, ++/*158766*/ OPC_CheckInteger, 7, ++/*158768*/ OPC_CheckType, MVT::i32, ++/*158770*/ OPC_MoveParent, ++/*158771*/ OPC_MoveChild, 29, ++/*158773*/ OPC_CheckInteger, 7, ++/*158775*/ OPC_CheckType, MVT::i32, ++/*158777*/ OPC_MoveParent, ++/*158778*/ OPC_MoveChild, 30, ++/*158780*/ OPC_CheckInteger, 7, ++/*158782*/ OPC_CheckType, MVT::i32, ++/*158784*/ OPC_MoveParent, ++/*158785*/ OPC_MoveChild, 31, ++/*158787*/ OPC_CheckInteger, 7, ++/*158789*/ OPC_CheckType, MVT::i32, ++/*158791*/ OPC_MoveParent, ++/*158792*/ OPC_CheckType, MVT::v32i8, ++/*158794*/ OPC_MoveParent, ++/*158795*/ OPC_MoveParent, ++/*158796*/ OPC_MoveParent, ++/*158797*/ OPC_MoveChild1, ++/*158798*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*158801*/ OPC_CheckChild0Integer, 1, ++/*158803*/ OPC_CheckChild0Type, MVT::i32, ++/*158805*/ OPC_CheckChild1Integer, 1, ++/*158807*/ OPC_CheckChild1Type, MVT::i32, ++/*158809*/ OPC_CheckChild2Integer, 1, ++/*158811*/ OPC_CheckChild2Type, MVT::i32, ++/*158813*/ OPC_CheckChild3Integer, 1, ++/*158815*/ OPC_CheckChild3Type, MVT::i32, ++/*158817*/ OPC_CheckChild4Integer, 1, ++/*158819*/ OPC_CheckChild4Type, MVT::i32, ++/*158821*/ OPC_MoveChild5, ++/*158822*/ OPC_CheckInteger, 1, ++/*158824*/ OPC_CheckType, MVT::i32, ++/*158826*/ OPC_MoveParent, ++/*158827*/ OPC_MoveChild6, ++/*158828*/ OPC_CheckInteger, 1, ++/*158830*/ OPC_CheckType, MVT::i32, ++/*158832*/ OPC_MoveParent, ++/*158833*/ OPC_MoveChild7, ++/*158834*/ OPC_CheckInteger, 1, ++/*158836*/ OPC_CheckType, MVT::i32, ++/*158838*/ OPC_MoveParent, ++/*158839*/ OPC_MoveChild, 8, ++/*158841*/ OPC_CheckInteger, 1, ++/*158843*/ OPC_CheckType, MVT::i32, ++/*158845*/ OPC_MoveParent, ++/*158846*/ OPC_MoveChild, 9, ++/*158848*/ OPC_CheckInteger, 1, ++/*158850*/ OPC_CheckType, MVT::i32, ++/*158852*/ OPC_MoveParent, ++/*158853*/ OPC_MoveChild, 10, ++/*158855*/ OPC_CheckInteger, 1, ++/*158857*/ OPC_CheckType, MVT::i32, ++/*158859*/ OPC_MoveParent, ++/*158860*/ OPC_MoveChild, 11, ++/*158862*/ OPC_CheckInteger, 1, ++/*158864*/ OPC_CheckType, MVT::i32, ++/*158866*/ OPC_MoveParent, ++/*158867*/ OPC_MoveChild, 12, ++/*158869*/ OPC_CheckInteger, 1, ++/*158871*/ OPC_CheckType, MVT::i32, ++/*158873*/ OPC_MoveParent, ++/*158874*/ OPC_MoveChild, 13, ++/*158876*/ OPC_CheckInteger, 1, ++/*158878*/ OPC_CheckType, MVT::i32, ++/*158880*/ OPC_MoveParent, ++/*158881*/ OPC_MoveChild, 14, ++/*158883*/ OPC_CheckInteger, 1, ++/*158885*/ OPC_CheckType, MVT::i32, ++/*158887*/ OPC_MoveParent, ++/*158888*/ OPC_MoveChild, 15, ++/*158890*/ OPC_CheckInteger, 1, ++/*158892*/ OPC_CheckType, MVT::i32, ++/*158894*/ OPC_MoveParent, ++/*158895*/ OPC_MoveChild, 16, ++/*158897*/ OPC_CheckInteger, 1, ++/*158899*/ OPC_CheckType, MVT::i32, ++/*158901*/ OPC_MoveParent, ++/*158902*/ OPC_MoveChild, 17, ++/*158904*/ OPC_CheckInteger, 1, ++/*158906*/ OPC_CheckType, MVT::i32, ++/*158908*/ OPC_MoveParent, ++/*158909*/ OPC_MoveChild, 18, ++/*158911*/ OPC_CheckInteger, 1, ++/*158913*/ OPC_CheckType, MVT::i32, ++/*158915*/ OPC_MoveParent, ++/*158916*/ OPC_MoveChild, 19, ++/*158918*/ OPC_CheckInteger, 1, ++/*158920*/ OPC_CheckType, MVT::i32, ++/*158922*/ OPC_MoveParent, ++/*158923*/ OPC_MoveChild, 20, ++/*158925*/ OPC_CheckInteger, 1, ++/*158927*/ OPC_CheckType, MVT::i32, ++/*158929*/ OPC_MoveParent, ++/*158930*/ OPC_MoveChild, 21, ++/*158932*/ OPC_CheckInteger, 1, ++/*158934*/ OPC_CheckType, MVT::i32, ++/*158936*/ OPC_MoveParent, ++/*158937*/ OPC_MoveChild, 22, ++/*158939*/ OPC_CheckInteger, 1, ++/*158941*/ OPC_CheckType, MVT::i32, ++/*158943*/ OPC_MoveParent, ++/*158944*/ OPC_MoveChild, 23, ++/*158946*/ OPC_CheckInteger, 1, ++/*158948*/ OPC_CheckType, MVT::i32, ++/*158950*/ OPC_MoveParent, ++/*158951*/ OPC_MoveChild, 24, ++/*158953*/ OPC_CheckInteger, 1, ++/*158955*/ OPC_CheckType, MVT::i32, ++/*158957*/ OPC_MoveParent, ++/*158958*/ OPC_MoveChild, 25, ++/*158960*/ OPC_CheckInteger, 1, ++/*158962*/ OPC_CheckType, MVT::i32, ++/*158964*/ OPC_MoveParent, ++/*158965*/ OPC_MoveChild, 26, ++/*158967*/ OPC_CheckInteger, 1, ++/*158969*/ OPC_CheckType, MVT::i32, ++/*158971*/ OPC_MoveParent, ++/*158972*/ OPC_MoveChild, 27, ++/*158974*/ OPC_CheckInteger, 1, ++/*158976*/ OPC_CheckType, MVT::i32, ++/*158978*/ OPC_MoveParent, ++/*158979*/ OPC_MoveChild, 28, ++/*158981*/ OPC_CheckInteger, 1, ++/*158983*/ OPC_CheckType, MVT::i32, ++/*158985*/ OPC_MoveParent, ++/*158986*/ OPC_MoveChild, 29, ++/*158988*/ OPC_CheckInteger, 1, ++/*158990*/ OPC_CheckType, MVT::i32, ++/*158992*/ OPC_MoveParent, ++/*158993*/ OPC_MoveChild, 30, ++/*158995*/ OPC_CheckInteger, 1, ++/*158997*/ OPC_CheckType, MVT::i32, ++/*158999*/ OPC_MoveParent, ++/*159000*/ OPC_MoveChild, 31, ++/*159002*/ OPC_CheckInteger, 1, ++/*159004*/ OPC_CheckType, MVT::i32, ++/*159006*/ OPC_MoveParent, ++/*159007*/ OPC_CheckType, MVT::v32i8, ++/*159009*/ OPC_MoveParent, ++/*159010*/ OPC_CheckType, MVT::v32i8, ++/*159012*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*159014*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*159022*/ 0, /*End of Scope*/ ++/*159023*/ /*Scope*/ 89|128,8/*1113*/, /*->160138*/ ++/*159025*/ OPC_MoveChild0, ++/*159026*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*159029*/ OPC_CheckChild0Integer, 1, ++/*159031*/ OPC_CheckChild0Type, MVT::i32, ++/*159033*/ OPC_CheckChild1Integer, 1, ++/*159035*/ OPC_CheckChild1Type, MVT::i32, ++/*159037*/ OPC_CheckChild2Integer, 1, ++/*159039*/ OPC_CheckChild2Type, MVT::i32, ++/*159041*/ OPC_CheckChild3Integer, 1, ++/*159043*/ OPC_CheckChild3Type, MVT::i32, ++/*159045*/ OPC_CheckChild4Integer, 1, ++/*159047*/ OPC_CheckChild4Type, MVT::i32, ++/*159049*/ OPC_MoveChild5, ++/*159050*/ OPC_CheckInteger, 1, ++/*159052*/ OPC_CheckType, MVT::i32, ++/*159054*/ OPC_MoveParent, ++/*159055*/ OPC_MoveChild6, ++/*159056*/ OPC_CheckInteger, 1, ++/*159058*/ OPC_CheckType, MVT::i32, ++/*159060*/ OPC_MoveParent, ++/*159061*/ OPC_MoveChild7, ++/*159062*/ OPC_CheckInteger, 1, ++/*159064*/ OPC_CheckType, MVT::i32, ++/*159066*/ OPC_MoveParent, ++/*159067*/ OPC_MoveChild, 8, ++/*159069*/ OPC_CheckInteger, 1, ++/*159071*/ OPC_CheckType, MVT::i32, ++/*159073*/ OPC_MoveParent, ++/*159074*/ OPC_MoveChild, 9, ++/*159076*/ OPC_CheckInteger, 1, ++/*159078*/ OPC_CheckType, MVT::i32, ++/*159080*/ OPC_MoveParent, ++/*159081*/ OPC_MoveChild, 10, ++/*159083*/ OPC_CheckInteger, 1, ++/*159085*/ OPC_CheckType, MVT::i32, ++/*159087*/ OPC_MoveParent, ++/*159088*/ OPC_MoveChild, 11, ++/*159090*/ OPC_CheckInteger, 1, ++/*159092*/ OPC_CheckType, MVT::i32, ++/*159094*/ OPC_MoveParent, ++/*159095*/ OPC_MoveChild, 12, ++/*159097*/ OPC_CheckInteger, 1, ++/*159099*/ OPC_CheckType, MVT::i32, ++/*159101*/ OPC_MoveParent, ++/*159102*/ OPC_MoveChild, 13, ++/*159104*/ OPC_CheckInteger, 1, ++/*159106*/ OPC_CheckType, MVT::i32, ++/*159108*/ OPC_MoveParent, ++/*159109*/ OPC_MoveChild, 14, ++/*159111*/ OPC_CheckInteger, 1, ++/*159113*/ OPC_CheckType, MVT::i32, ++/*159115*/ OPC_MoveParent, ++/*159116*/ OPC_MoveChild, 15, ++/*159118*/ OPC_CheckInteger, 1, ++/*159120*/ OPC_CheckType, MVT::i32, ++/*159122*/ OPC_MoveParent, ++/*159123*/ OPC_MoveChild, 16, ++/*159125*/ OPC_CheckInteger, 1, ++/*159127*/ OPC_CheckType, MVT::i32, ++/*159129*/ OPC_MoveParent, ++/*159130*/ OPC_MoveChild, 17, ++/*159132*/ OPC_CheckInteger, 1, ++/*159134*/ OPC_CheckType, MVT::i32, ++/*159136*/ OPC_MoveParent, ++/*159137*/ OPC_MoveChild, 18, ++/*159139*/ OPC_CheckInteger, 1, ++/*159141*/ OPC_CheckType, MVT::i32, ++/*159143*/ OPC_MoveParent, ++/*159144*/ OPC_MoveChild, 19, ++/*159146*/ OPC_CheckInteger, 1, ++/*159148*/ OPC_CheckType, MVT::i32, ++/*159150*/ OPC_MoveParent, ++/*159151*/ OPC_MoveChild, 20, ++/*159153*/ OPC_CheckInteger, 1, ++/*159155*/ OPC_CheckType, MVT::i32, ++/*159157*/ OPC_MoveParent, ++/*159158*/ OPC_MoveChild, 21, ++/*159160*/ OPC_CheckInteger, 1, ++/*159162*/ OPC_CheckType, MVT::i32, ++/*159164*/ OPC_MoveParent, ++/*159165*/ OPC_MoveChild, 22, ++/*159167*/ OPC_CheckInteger, 1, ++/*159169*/ OPC_CheckType, MVT::i32, ++/*159171*/ OPC_MoveParent, ++/*159172*/ OPC_MoveChild, 23, ++/*159174*/ OPC_CheckInteger, 1, ++/*159176*/ OPC_CheckType, MVT::i32, ++/*159178*/ OPC_MoveParent, ++/*159179*/ OPC_MoveChild, 24, ++/*159181*/ OPC_CheckInteger, 1, ++/*159183*/ OPC_CheckType, MVT::i32, ++/*159185*/ OPC_MoveParent, ++/*159186*/ OPC_MoveChild, 25, ++/*159188*/ OPC_CheckInteger, 1, ++/*159190*/ OPC_CheckType, MVT::i32, ++/*159192*/ OPC_MoveParent, ++/*159193*/ OPC_MoveChild, 26, ++/*159195*/ OPC_CheckInteger, 1, ++/*159197*/ OPC_CheckType, MVT::i32, ++/*159199*/ OPC_MoveParent, ++/*159200*/ OPC_MoveChild, 27, ++/*159202*/ OPC_CheckInteger, 1, ++/*159204*/ OPC_CheckType, MVT::i32, ++/*159206*/ OPC_MoveParent, ++/*159207*/ OPC_MoveChild, 28, ++/*159209*/ OPC_CheckInteger, 1, ++/*159211*/ OPC_CheckType, MVT::i32, ++/*159213*/ OPC_MoveParent, ++/*159214*/ OPC_MoveChild, 29, ++/*159216*/ OPC_CheckInteger, 1, ++/*159218*/ OPC_CheckType, MVT::i32, ++/*159220*/ OPC_MoveParent, ++/*159221*/ OPC_MoveChild, 30, ++/*159223*/ OPC_CheckInteger, 1, ++/*159225*/ OPC_CheckType, MVT::i32, ++/*159227*/ OPC_MoveParent, ++/*159228*/ OPC_MoveChild, 31, ++/*159230*/ OPC_CheckInteger, 1, ++/*159232*/ OPC_CheckType, MVT::i32, ++/*159234*/ OPC_MoveParent, ++/*159235*/ OPC_MoveParent, ++/*159236*/ OPC_MoveChild1, ++/*159237*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*159240*/ OPC_Scope, 62|128,3/*446*/, /*->159689*/ // 2 children in Scope ++/*159243*/ OPC_CheckChild0Same, 0, ++/*159245*/ OPC_CheckChild1Same, 1, ++/*159247*/ OPC_MoveParent, ++/*159248*/ OPC_MoveParent, ++/*159249*/ OPC_MoveChild1, ++/*159250*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*159253*/ OPC_CheckChild0Integer, 7, ++/*159255*/ OPC_CheckChild0Type, MVT::i32, ++/*159257*/ OPC_CheckChild1Integer, 7, ++/*159259*/ OPC_CheckChild1Type, MVT::i32, ++/*159261*/ OPC_CheckChild2Integer, 7, ++/*159263*/ OPC_CheckChild2Type, MVT::i32, ++/*159265*/ OPC_CheckChild3Integer, 7, ++/*159267*/ OPC_CheckChild3Type, MVT::i32, ++/*159269*/ OPC_CheckChild4Integer, 7, ++/*159271*/ OPC_CheckChild4Type, MVT::i32, ++/*159273*/ OPC_MoveChild5, ++/*159274*/ OPC_CheckInteger, 7, ++/*159276*/ OPC_CheckType, MVT::i32, ++/*159278*/ OPC_MoveParent, ++/*159279*/ OPC_MoveChild6, ++/*159280*/ OPC_CheckInteger, 7, ++/*159282*/ OPC_CheckType, MVT::i32, ++/*159284*/ OPC_MoveParent, ++/*159285*/ OPC_MoveChild7, ++/*159286*/ OPC_CheckInteger, 7, ++/*159288*/ OPC_CheckType, MVT::i32, ++/*159290*/ OPC_MoveParent, ++/*159291*/ OPC_MoveChild, 8, ++/*159293*/ OPC_CheckInteger, 7, ++/*159295*/ OPC_CheckType, MVT::i32, ++/*159297*/ OPC_MoveParent, ++/*159298*/ OPC_MoveChild, 9, ++/*159300*/ OPC_CheckInteger, 7, ++/*159302*/ OPC_CheckType, MVT::i32, ++/*159304*/ OPC_MoveParent, ++/*159305*/ OPC_MoveChild, 10, ++/*159307*/ OPC_CheckInteger, 7, ++/*159309*/ OPC_CheckType, MVT::i32, ++/*159311*/ OPC_MoveParent, ++/*159312*/ OPC_MoveChild, 11, ++/*159314*/ OPC_CheckInteger, 7, ++/*159316*/ OPC_CheckType, MVT::i32, ++/*159318*/ OPC_MoveParent, ++/*159319*/ OPC_MoveChild, 12, ++/*159321*/ OPC_CheckInteger, 7, ++/*159323*/ OPC_CheckType, MVT::i32, ++/*159325*/ OPC_MoveParent, ++/*159326*/ OPC_MoveChild, 13, ++/*159328*/ OPC_CheckInteger, 7, ++/*159330*/ OPC_CheckType, MVT::i32, ++/*159332*/ OPC_MoveParent, ++/*159333*/ OPC_MoveChild, 14, ++/*159335*/ OPC_CheckInteger, 7, ++/*159337*/ OPC_CheckType, MVT::i32, ++/*159339*/ OPC_MoveParent, ++/*159340*/ OPC_MoveChild, 15, ++/*159342*/ OPC_CheckInteger, 7, ++/*159344*/ OPC_CheckType, MVT::i32, ++/*159346*/ OPC_MoveParent, ++/*159347*/ OPC_MoveChild, 16, ++/*159349*/ OPC_CheckInteger, 7, ++/*159351*/ OPC_CheckType, MVT::i32, ++/*159353*/ OPC_MoveParent, ++/*159354*/ OPC_MoveChild, 17, ++/*159356*/ OPC_CheckInteger, 7, ++/*159358*/ OPC_CheckType, MVT::i32, ++/*159360*/ OPC_MoveParent, ++/*159361*/ OPC_MoveChild, 18, ++/*159363*/ OPC_CheckInteger, 7, ++/*159365*/ OPC_CheckType, MVT::i32, ++/*159367*/ OPC_MoveParent, ++/*159368*/ OPC_MoveChild, 19, ++/*159370*/ OPC_CheckInteger, 7, ++/*159372*/ OPC_CheckType, MVT::i32, ++/*159374*/ OPC_MoveParent, ++/*159375*/ OPC_MoveChild, 20, ++/*159377*/ OPC_CheckInteger, 7, ++/*159379*/ OPC_CheckType, MVT::i32, ++/*159381*/ OPC_MoveParent, ++/*159382*/ OPC_MoveChild, 21, ++/*159384*/ OPC_CheckInteger, 7, ++/*159386*/ OPC_CheckType, MVT::i32, ++/*159388*/ OPC_MoveParent, ++/*159389*/ OPC_MoveChild, 22, ++/*159391*/ OPC_CheckInteger, 7, ++/*159393*/ OPC_CheckType, MVT::i32, ++/*159395*/ OPC_MoveParent, ++/*159396*/ OPC_MoveChild, 23, ++/*159398*/ OPC_CheckInteger, 7, ++/*159400*/ OPC_CheckType, MVT::i32, ++/*159402*/ OPC_MoveParent, ++/*159403*/ OPC_MoveChild, 24, ++/*159405*/ OPC_CheckInteger, 7, ++/*159407*/ OPC_CheckType, MVT::i32, ++/*159409*/ OPC_MoveParent, ++/*159410*/ OPC_MoveChild, 25, ++/*159412*/ OPC_CheckInteger, 7, ++/*159414*/ OPC_CheckType, MVT::i32, ++/*159416*/ OPC_MoveParent, ++/*159417*/ OPC_MoveChild, 26, ++/*159419*/ OPC_CheckInteger, 7, ++/*159421*/ OPC_CheckType, MVT::i32, ++/*159423*/ OPC_MoveParent, ++/*159424*/ OPC_MoveChild, 27, ++/*159426*/ OPC_CheckInteger, 7, ++/*159428*/ OPC_CheckType, MVT::i32, ++/*159430*/ OPC_MoveParent, ++/*159431*/ OPC_MoveChild, 28, ++/*159433*/ OPC_CheckInteger, 7, ++/*159435*/ OPC_CheckType, MVT::i32, ++/*159437*/ OPC_MoveParent, ++/*159438*/ OPC_MoveChild, 29, ++/*159440*/ OPC_CheckInteger, 7, ++/*159442*/ OPC_CheckType, MVT::i32, ++/*159444*/ OPC_MoveParent, ++/*159445*/ OPC_MoveChild, 30, ++/*159447*/ OPC_CheckInteger, 7, ++/*159449*/ OPC_CheckType, MVT::i32, ++/*159451*/ OPC_MoveParent, ++/*159452*/ OPC_MoveChild, 31, ++/*159454*/ OPC_CheckInteger, 7, ++/*159456*/ OPC_CheckType, MVT::i32, ++/*159458*/ OPC_MoveParent, ++/*159459*/ OPC_CheckType, MVT::v32i8, ++/*159461*/ OPC_MoveParent, ++/*159462*/ OPC_MoveParent, ++/*159463*/ OPC_MoveParent, ++/*159464*/ OPC_MoveChild1, ++/*159465*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*159468*/ OPC_CheckChild0Integer, 1, ++/*159470*/ OPC_CheckChild0Type, MVT::i32, ++/*159472*/ OPC_CheckChild1Integer, 1, ++/*159474*/ OPC_CheckChild1Type, MVT::i32, ++/*159476*/ OPC_CheckChild2Integer, 1, ++/*159478*/ OPC_CheckChild2Type, MVT::i32, ++/*159480*/ OPC_CheckChild3Integer, 1, ++/*159482*/ OPC_CheckChild3Type, MVT::i32, ++/*159484*/ OPC_CheckChild4Integer, 1, ++/*159486*/ OPC_CheckChild4Type, MVT::i32, ++/*159488*/ OPC_MoveChild5, ++/*159489*/ OPC_CheckInteger, 1, ++/*159491*/ OPC_CheckType, MVT::i32, ++/*159493*/ OPC_MoveParent, ++/*159494*/ OPC_MoveChild6, ++/*159495*/ OPC_CheckInteger, 1, ++/*159497*/ OPC_CheckType, MVT::i32, ++/*159499*/ OPC_MoveParent, ++/*159500*/ OPC_MoveChild7, ++/*159501*/ OPC_CheckInteger, 1, ++/*159503*/ OPC_CheckType, MVT::i32, ++/*159505*/ OPC_MoveParent, ++/*159506*/ OPC_MoveChild, 8, ++/*159508*/ OPC_CheckInteger, 1, ++/*159510*/ OPC_CheckType, MVT::i32, ++/*159512*/ OPC_MoveParent, ++/*159513*/ OPC_MoveChild, 9, ++/*159515*/ OPC_CheckInteger, 1, ++/*159517*/ OPC_CheckType, MVT::i32, ++/*159519*/ OPC_MoveParent, ++/*159520*/ OPC_MoveChild, 10, ++/*159522*/ OPC_CheckInteger, 1, ++/*159524*/ OPC_CheckType, MVT::i32, ++/*159526*/ OPC_MoveParent, ++/*159527*/ OPC_MoveChild, 11, ++/*159529*/ OPC_CheckInteger, 1, ++/*159531*/ OPC_CheckType, MVT::i32, ++/*159533*/ OPC_MoveParent, ++/*159534*/ OPC_MoveChild, 12, ++/*159536*/ OPC_CheckInteger, 1, ++/*159538*/ OPC_CheckType, MVT::i32, ++/*159540*/ OPC_MoveParent, ++/*159541*/ OPC_MoveChild, 13, ++/*159543*/ OPC_CheckInteger, 1, ++/*159545*/ OPC_CheckType, MVT::i32, ++/*159547*/ OPC_MoveParent, ++/*159548*/ OPC_MoveChild, 14, ++/*159550*/ OPC_CheckInteger, 1, ++/*159552*/ OPC_CheckType, MVT::i32, ++/*159554*/ OPC_MoveParent, ++/*159555*/ OPC_MoveChild, 15, ++/*159557*/ OPC_CheckInteger, 1, ++/*159559*/ OPC_CheckType, MVT::i32, ++/*159561*/ OPC_MoveParent, ++/*159562*/ OPC_MoveChild, 16, ++/*159564*/ OPC_CheckInteger, 1, ++/*159566*/ OPC_CheckType, MVT::i32, ++/*159568*/ OPC_MoveParent, ++/*159569*/ OPC_MoveChild, 17, ++/*159571*/ OPC_CheckInteger, 1, ++/*159573*/ OPC_CheckType, MVT::i32, ++/*159575*/ OPC_MoveParent, ++/*159576*/ OPC_MoveChild, 18, ++/*159578*/ OPC_CheckInteger, 1, ++/*159580*/ OPC_CheckType, MVT::i32, ++/*159582*/ OPC_MoveParent, ++/*159583*/ OPC_MoveChild, 19, ++/*159585*/ OPC_CheckInteger, 1, ++/*159587*/ OPC_CheckType, MVT::i32, ++/*159589*/ OPC_MoveParent, ++/*159590*/ OPC_MoveChild, 20, ++/*159592*/ OPC_CheckInteger, 1, ++/*159594*/ OPC_CheckType, MVT::i32, ++/*159596*/ OPC_MoveParent, ++/*159597*/ OPC_MoveChild, 21, ++/*159599*/ OPC_CheckInteger, 1, ++/*159601*/ OPC_CheckType, MVT::i32, ++/*159603*/ OPC_MoveParent, ++/*159604*/ OPC_MoveChild, 22, ++/*159606*/ OPC_CheckInteger, 1, ++/*159608*/ OPC_CheckType, MVT::i32, ++/*159610*/ OPC_MoveParent, ++/*159611*/ OPC_MoveChild, 23, ++/*159613*/ OPC_CheckInteger, 1, ++/*159615*/ OPC_CheckType, MVT::i32, ++/*159617*/ OPC_MoveParent, ++/*159618*/ OPC_MoveChild, 24, ++/*159620*/ OPC_CheckInteger, 1, ++/*159622*/ OPC_CheckType, MVT::i32, ++/*159624*/ OPC_MoveParent, ++/*159625*/ OPC_MoveChild, 25, ++/*159627*/ OPC_CheckInteger, 1, ++/*159629*/ OPC_CheckType, MVT::i32, ++/*159631*/ OPC_MoveParent, ++/*159632*/ OPC_MoveChild, 26, ++/*159634*/ OPC_CheckInteger, 1, ++/*159636*/ OPC_CheckType, MVT::i32, ++/*159638*/ OPC_MoveParent, ++/*159639*/ OPC_MoveChild, 27, ++/*159641*/ OPC_CheckInteger, 1, ++/*159643*/ OPC_CheckType, MVT::i32, ++/*159645*/ OPC_MoveParent, ++/*159646*/ OPC_MoveChild, 28, ++/*159648*/ OPC_CheckInteger, 1, ++/*159650*/ OPC_CheckType, MVT::i32, ++/*159652*/ OPC_MoveParent, ++/*159653*/ OPC_MoveChild, 29, ++/*159655*/ OPC_CheckInteger, 1, ++/*159657*/ OPC_CheckType, MVT::i32, ++/*159659*/ OPC_MoveParent, ++/*159660*/ OPC_MoveChild, 30, ++/*159662*/ OPC_CheckInteger, 1, ++/*159664*/ OPC_CheckType, MVT::i32, ++/*159666*/ OPC_MoveParent, ++/*159667*/ OPC_MoveChild, 31, ++/*159669*/ OPC_CheckInteger, 1, ++/*159671*/ OPC_CheckType, MVT::i32, ++/*159673*/ OPC_MoveParent, ++/*159674*/ OPC_CheckType, MVT::v32i8, ++/*159676*/ OPC_MoveParent, ++/*159677*/ OPC_CheckType, MVT::v32i8, ++/*159679*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*159681*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*159689*/ /*Scope*/ 62|128,3/*446*/, /*->160137*/ ++/*159691*/ OPC_CheckChild0Same, 1, ++/*159693*/ OPC_CheckChild1Same, 0, ++/*159695*/ OPC_MoveParent, ++/*159696*/ OPC_MoveParent, ++/*159697*/ OPC_MoveChild1, ++/*159698*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*159701*/ OPC_CheckChild0Integer, 7, ++/*159703*/ OPC_CheckChild0Type, MVT::i32, ++/*159705*/ OPC_CheckChild1Integer, 7, ++/*159707*/ OPC_CheckChild1Type, MVT::i32, ++/*159709*/ OPC_CheckChild2Integer, 7, ++/*159711*/ OPC_CheckChild2Type, MVT::i32, ++/*159713*/ OPC_CheckChild3Integer, 7, ++/*159715*/ OPC_CheckChild3Type, MVT::i32, ++/*159717*/ OPC_CheckChild4Integer, 7, ++/*159719*/ OPC_CheckChild4Type, MVT::i32, ++/*159721*/ OPC_MoveChild5, ++/*159722*/ OPC_CheckInteger, 7, ++/*159724*/ OPC_CheckType, MVT::i32, ++/*159726*/ OPC_MoveParent, ++/*159727*/ OPC_MoveChild6, ++/*159728*/ OPC_CheckInteger, 7, ++/*159730*/ OPC_CheckType, MVT::i32, ++/*159732*/ OPC_MoveParent, ++/*159733*/ OPC_MoveChild7, ++/*159734*/ OPC_CheckInteger, 7, ++/*159736*/ OPC_CheckType, MVT::i32, ++/*159738*/ OPC_MoveParent, ++/*159739*/ OPC_MoveChild, 8, ++/*159741*/ OPC_CheckInteger, 7, ++/*159743*/ OPC_CheckType, MVT::i32, ++/*159745*/ OPC_MoveParent, ++/*159746*/ OPC_MoveChild, 9, ++/*159748*/ OPC_CheckInteger, 7, ++/*159750*/ OPC_CheckType, MVT::i32, ++/*159752*/ OPC_MoveParent, ++/*159753*/ OPC_MoveChild, 10, ++/*159755*/ OPC_CheckInteger, 7, ++/*159757*/ OPC_CheckType, MVT::i32, ++/*159759*/ OPC_MoveParent, ++/*159760*/ OPC_MoveChild, 11, ++/*159762*/ OPC_CheckInteger, 7, ++/*159764*/ OPC_CheckType, MVT::i32, ++/*159766*/ OPC_MoveParent, ++/*159767*/ OPC_MoveChild, 12, ++/*159769*/ OPC_CheckInteger, 7, ++/*159771*/ OPC_CheckType, MVT::i32, ++/*159773*/ OPC_MoveParent, ++/*159774*/ OPC_MoveChild, 13, ++/*159776*/ OPC_CheckInteger, 7, ++/*159778*/ OPC_CheckType, MVT::i32, ++/*159780*/ OPC_MoveParent, ++/*159781*/ OPC_MoveChild, 14, ++/*159783*/ OPC_CheckInteger, 7, ++/*159785*/ OPC_CheckType, MVT::i32, ++/*159787*/ OPC_MoveParent, ++/*159788*/ OPC_MoveChild, 15, ++/*159790*/ OPC_CheckInteger, 7, ++/*159792*/ OPC_CheckType, MVT::i32, ++/*159794*/ OPC_MoveParent, ++/*159795*/ OPC_MoveChild, 16, ++/*159797*/ OPC_CheckInteger, 7, ++/*159799*/ OPC_CheckType, MVT::i32, ++/*159801*/ OPC_MoveParent, ++/*159802*/ OPC_MoveChild, 17, ++/*159804*/ OPC_CheckInteger, 7, ++/*159806*/ OPC_CheckType, MVT::i32, ++/*159808*/ OPC_MoveParent, ++/*159809*/ OPC_MoveChild, 18, ++/*159811*/ OPC_CheckInteger, 7, ++/*159813*/ OPC_CheckType, MVT::i32, ++/*159815*/ OPC_MoveParent, ++/*159816*/ OPC_MoveChild, 19, ++/*159818*/ OPC_CheckInteger, 7, ++/*159820*/ OPC_CheckType, MVT::i32, ++/*159822*/ OPC_MoveParent, ++/*159823*/ OPC_MoveChild, 20, ++/*159825*/ OPC_CheckInteger, 7, ++/*159827*/ OPC_CheckType, MVT::i32, ++/*159829*/ OPC_MoveParent, ++/*159830*/ OPC_MoveChild, 21, ++/*159832*/ OPC_CheckInteger, 7, ++/*159834*/ OPC_CheckType, MVT::i32, ++/*159836*/ OPC_MoveParent, ++/*159837*/ OPC_MoveChild, 22, ++/*159839*/ OPC_CheckInteger, 7, ++/*159841*/ OPC_CheckType, MVT::i32, ++/*159843*/ OPC_MoveParent, ++/*159844*/ OPC_MoveChild, 23, ++/*159846*/ OPC_CheckInteger, 7, ++/*159848*/ OPC_CheckType, MVT::i32, ++/*159850*/ OPC_MoveParent, ++/*159851*/ OPC_MoveChild, 24, ++/*159853*/ OPC_CheckInteger, 7, ++/*159855*/ OPC_CheckType, MVT::i32, ++/*159857*/ OPC_MoveParent, ++/*159858*/ OPC_MoveChild, 25, ++/*159860*/ OPC_CheckInteger, 7, ++/*159862*/ OPC_CheckType, MVT::i32, ++/*159864*/ OPC_MoveParent, ++/*159865*/ OPC_MoveChild, 26, ++/*159867*/ OPC_CheckInteger, 7, ++/*159869*/ OPC_CheckType, MVT::i32, ++/*159871*/ OPC_MoveParent, ++/*159872*/ OPC_MoveChild, 27, ++/*159874*/ OPC_CheckInteger, 7, ++/*159876*/ OPC_CheckType, MVT::i32, ++/*159878*/ OPC_MoveParent, ++/*159879*/ OPC_MoveChild, 28, ++/*159881*/ OPC_CheckInteger, 7, ++/*159883*/ OPC_CheckType, MVT::i32, ++/*159885*/ OPC_MoveParent, ++/*159886*/ OPC_MoveChild, 29, ++/*159888*/ OPC_CheckInteger, 7, ++/*159890*/ OPC_CheckType, MVT::i32, ++/*159892*/ OPC_MoveParent, ++/*159893*/ OPC_MoveChild, 30, ++/*159895*/ OPC_CheckInteger, 7, ++/*159897*/ OPC_CheckType, MVT::i32, ++/*159899*/ OPC_MoveParent, ++/*159900*/ OPC_MoveChild, 31, ++/*159902*/ OPC_CheckInteger, 7, ++/*159904*/ OPC_CheckType, MVT::i32, ++/*159906*/ OPC_MoveParent, ++/*159907*/ OPC_CheckType, MVT::v32i8, ++/*159909*/ OPC_MoveParent, ++/*159910*/ OPC_MoveParent, ++/*159911*/ OPC_MoveParent, ++/*159912*/ OPC_MoveChild1, ++/*159913*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*159916*/ OPC_CheckChild0Integer, 1, ++/*159918*/ OPC_CheckChild0Type, MVT::i32, ++/*159920*/ OPC_CheckChild1Integer, 1, ++/*159922*/ OPC_CheckChild1Type, MVT::i32, ++/*159924*/ OPC_CheckChild2Integer, 1, ++/*159926*/ OPC_CheckChild2Type, MVT::i32, ++/*159928*/ OPC_CheckChild3Integer, 1, ++/*159930*/ OPC_CheckChild3Type, MVT::i32, ++/*159932*/ OPC_CheckChild4Integer, 1, ++/*159934*/ OPC_CheckChild4Type, MVT::i32, ++/*159936*/ OPC_MoveChild5, ++/*159937*/ OPC_CheckInteger, 1, ++/*159939*/ OPC_CheckType, MVT::i32, ++/*159941*/ OPC_MoveParent, ++/*159942*/ OPC_MoveChild6, ++/*159943*/ OPC_CheckInteger, 1, ++/*159945*/ OPC_CheckType, MVT::i32, ++/*159947*/ OPC_MoveParent, ++/*159948*/ OPC_MoveChild7, ++/*159949*/ OPC_CheckInteger, 1, ++/*159951*/ OPC_CheckType, MVT::i32, ++/*159953*/ OPC_MoveParent, ++/*159954*/ OPC_MoveChild, 8, ++/*159956*/ OPC_CheckInteger, 1, ++/*159958*/ OPC_CheckType, MVT::i32, ++/*159960*/ OPC_MoveParent, ++/*159961*/ OPC_MoveChild, 9, ++/*159963*/ OPC_CheckInteger, 1, ++/*159965*/ OPC_CheckType, MVT::i32, ++/*159967*/ OPC_MoveParent, ++/*159968*/ OPC_MoveChild, 10, ++/*159970*/ OPC_CheckInteger, 1, ++/*159972*/ OPC_CheckType, MVT::i32, ++/*159974*/ OPC_MoveParent, ++/*159975*/ OPC_MoveChild, 11, ++/*159977*/ OPC_CheckInteger, 1, ++/*159979*/ OPC_CheckType, MVT::i32, ++/*159981*/ OPC_MoveParent, ++/*159982*/ OPC_MoveChild, 12, ++/*159984*/ OPC_CheckInteger, 1, ++/*159986*/ OPC_CheckType, MVT::i32, ++/*159988*/ OPC_MoveParent, ++/*159989*/ OPC_MoveChild, 13, ++/*159991*/ OPC_CheckInteger, 1, ++/*159993*/ OPC_CheckType, MVT::i32, ++/*159995*/ OPC_MoveParent, ++/*159996*/ OPC_MoveChild, 14, ++/*159998*/ OPC_CheckInteger, 1, ++/*160000*/ OPC_CheckType, MVT::i32, ++/*160002*/ OPC_MoveParent, ++/*160003*/ OPC_MoveChild, 15, ++/*160005*/ OPC_CheckInteger, 1, ++/*160007*/ OPC_CheckType, MVT::i32, ++/*160009*/ OPC_MoveParent, ++/*160010*/ OPC_MoveChild, 16, ++/*160012*/ OPC_CheckInteger, 1, ++/*160014*/ OPC_CheckType, MVT::i32, ++/*160016*/ OPC_MoveParent, ++/*160017*/ OPC_MoveChild, 17, ++/*160019*/ OPC_CheckInteger, 1, ++/*160021*/ OPC_CheckType, MVT::i32, ++/*160023*/ OPC_MoveParent, ++/*160024*/ OPC_MoveChild, 18, ++/*160026*/ OPC_CheckInteger, 1, ++/*160028*/ OPC_CheckType, MVT::i32, ++/*160030*/ OPC_MoveParent, ++/*160031*/ OPC_MoveChild, 19, ++/*160033*/ OPC_CheckInteger, 1, ++/*160035*/ OPC_CheckType, MVT::i32, ++/*160037*/ OPC_MoveParent, ++/*160038*/ OPC_MoveChild, 20, ++/*160040*/ OPC_CheckInteger, 1, ++/*160042*/ OPC_CheckType, MVT::i32, ++/*160044*/ OPC_MoveParent, ++/*160045*/ OPC_MoveChild, 21, ++/*160047*/ OPC_CheckInteger, 1, ++/*160049*/ OPC_CheckType, MVT::i32, ++/*160051*/ OPC_MoveParent, ++/*160052*/ OPC_MoveChild, 22, ++/*160054*/ OPC_CheckInteger, 1, ++/*160056*/ OPC_CheckType, MVT::i32, ++/*160058*/ OPC_MoveParent, ++/*160059*/ OPC_MoveChild, 23, ++/*160061*/ OPC_CheckInteger, 1, ++/*160063*/ OPC_CheckType, MVT::i32, ++/*160065*/ OPC_MoveParent, ++/*160066*/ OPC_MoveChild, 24, ++/*160068*/ OPC_CheckInteger, 1, ++/*160070*/ OPC_CheckType, MVT::i32, ++/*160072*/ OPC_MoveParent, ++/*160073*/ OPC_MoveChild, 25, ++/*160075*/ OPC_CheckInteger, 1, ++/*160077*/ OPC_CheckType, MVT::i32, ++/*160079*/ OPC_MoveParent, ++/*160080*/ OPC_MoveChild, 26, ++/*160082*/ OPC_CheckInteger, 1, ++/*160084*/ OPC_CheckType, MVT::i32, ++/*160086*/ OPC_MoveParent, ++/*160087*/ OPC_MoveChild, 27, ++/*160089*/ OPC_CheckInteger, 1, ++/*160091*/ OPC_CheckType, MVT::i32, ++/*160093*/ OPC_MoveParent, ++/*160094*/ OPC_MoveChild, 28, ++/*160096*/ OPC_CheckInteger, 1, ++/*160098*/ OPC_CheckType, MVT::i32, ++/*160100*/ OPC_MoveParent, ++/*160101*/ OPC_MoveChild, 29, ++/*160103*/ OPC_CheckInteger, 1, ++/*160105*/ OPC_CheckType, MVT::i32, ++/*160107*/ OPC_MoveParent, ++/*160108*/ OPC_MoveChild, 30, ++/*160110*/ OPC_CheckInteger, 1, ++/*160112*/ OPC_CheckType, MVT::i32, ++/*160114*/ OPC_MoveParent, ++/*160115*/ OPC_MoveChild, 31, ++/*160117*/ OPC_CheckInteger, 1, ++/*160119*/ OPC_CheckType, MVT::i32, ++/*160121*/ OPC_MoveParent, ++/*160122*/ OPC_CheckType, MVT::v32i8, ++/*160124*/ OPC_MoveParent, ++/*160125*/ OPC_CheckType, MVT::v32i8, ++/*160127*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*160129*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*160137*/ 0, /*End of Scope*/ ++/*160138*/ 0, /*End of Scope*/ ++/*160139*/ 0, /*End of Scope*/ ++/*160140*/ /*Scope*/ 45|128,50|128,2/*39213*/, /*->199356*/ ++/*160143*/ OPC_MoveChild0, ++/*160144*/ OPC_SwitchOpcode /*2 cases */, 46|128,123/*15790*/, TARGET_VAL(ISD::BUILD_VECTOR),// ->175939 ++/*160149*/ OPC_CheckChild0Integer, 1, ++/*160151*/ OPC_CheckChild0Type, MVT::i32, ++/*160153*/ OPC_CheckChild1Integer, 1, ++/*160155*/ OPC_CheckChild1Type, MVT::i32, ++/*160157*/ OPC_CheckChild2Integer, 1, ++/*160159*/ OPC_CheckChild2Type, MVT::i32, ++/*160161*/ OPC_CheckChild3Integer, 1, ++/*160163*/ OPC_CheckChild3Type, MVT::i32, ++/*160165*/ OPC_CheckChild4Integer, 1, ++/*160167*/ OPC_CheckChild4Type, MVT::i32, ++/*160169*/ OPC_MoveChild5, ++/*160170*/ OPC_CheckInteger, 1, ++/*160172*/ OPC_CheckType, MVT::i32, ++/*160174*/ OPC_MoveParent, ++/*160175*/ OPC_MoveChild6, ++/*160176*/ OPC_CheckInteger, 1, ++/*160178*/ OPC_CheckType, MVT::i32, ++/*160180*/ OPC_MoveParent, ++/*160181*/ OPC_MoveChild7, ++/*160182*/ OPC_CheckInteger, 1, ++/*160184*/ OPC_CheckType, MVT::i32, ++/*160186*/ OPC_MoveParent, ++/*160187*/ OPC_MoveChild, 8, ++/*160189*/ OPC_CheckInteger, 1, ++/*160191*/ OPC_CheckType, MVT::i32, ++/*160193*/ OPC_MoveParent, ++/*160194*/ OPC_MoveChild, 9, ++/*160196*/ OPC_CheckInteger, 1, ++/*160198*/ OPC_CheckType, MVT::i32, ++/*160200*/ OPC_MoveParent, ++/*160201*/ OPC_MoveChild, 10, ++/*160203*/ OPC_CheckInteger, 1, ++/*160205*/ OPC_CheckType, MVT::i32, ++/*160207*/ OPC_MoveParent, ++/*160208*/ OPC_MoveChild, 11, ++/*160210*/ OPC_CheckInteger, 1, ++/*160212*/ OPC_CheckType, MVT::i32, ++/*160214*/ OPC_MoveParent, ++/*160215*/ OPC_MoveChild, 12, ++/*160217*/ OPC_CheckInteger, 1, ++/*160219*/ OPC_CheckType, MVT::i32, ++/*160221*/ OPC_MoveParent, ++/*160222*/ OPC_MoveChild, 13, ++/*160224*/ OPC_CheckInteger, 1, ++/*160226*/ OPC_CheckType, MVT::i32, ++/*160228*/ OPC_MoveParent, ++/*160229*/ OPC_MoveChild, 14, ++/*160231*/ OPC_CheckInteger, 1, ++/*160233*/ OPC_CheckType, MVT::i32, ++/*160235*/ OPC_MoveParent, ++/*160236*/ OPC_MoveChild, 15, ++/*160238*/ OPC_CheckInteger, 1, ++/*160240*/ OPC_CheckType, MVT::i32, ++/*160242*/ OPC_MoveParent, ++/*160243*/ OPC_Scope, 26|128,118/*15130*/, /*->175376*/ // 2 children in Scope ++/*160246*/ OPC_MoveChild, 16, ++/*160248*/ OPC_CheckInteger, 1, ++/*160250*/ OPC_CheckType, MVT::i32, ++/*160252*/ OPC_MoveParent, ++/*160253*/ OPC_MoveChild, 17, ++/*160255*/ OPC_CheckInteger, 1, ++/*160257*/ OPC_CheckType, MVT::i32, ++/*160259*/ OPC_MoveParent, ++/*160260*/ OPC_MoveChild, 18, ++/*160262*/ OPC_CheckInteger, 1, ++/*160264*/ OPC_CheckType, MVT::i32, ++/*160266*/ OPC_MoveParent, ++/*160267*/ OPC_MoveChild, 19, ++/*160269*/ OPC_CheckInteger, 1, ++/*160271*/ OPC_CheckType, MVT::i32, ++/*160273*/ OPC_MoveParent, ++/*160274*/ OPC_MoveChild, 20, ++/*160276*/ OPC_CheckInteger, 1, ++/*160278*/ OPC_CheckType, MVT::i32, ++/*160280*/ OPC_MoveParent, ++/*160281*/ OPC_MoveChild, 21, ++/*160283*/ OPC_CheckInteger, 1, ++/*160285*/ OPC_CheckType, MVT::i32, ++/*160287*/ OPC_MoveParent, ++/*160288*/ OPC_MoveChild, 22, ++/*160290*/ OPC_CheckInteger, 1, ++/*160292*/ OPC_CheckType, MVT::i32, ++/*160294*/ OPC_MoveParent, ++/*160295*/ OPC_MoveChild, 23, ++/*160297*/ OPC_CheckInteger, 1, ++/*160299*/ OPC_CheckType, MVT::i32, ++/*160301*/ OPC_MoveParent, ++/*160302*/ OPC_MoveChild, 24, ++/*160304*/ OPC_CheckInteger, 1, ++/*160306*/ OPC_CheckType, MVT::i32, ++/*160308*/ OPC_MoveParent, ++/*160309*/ OPC_MoveChild, 25, ++/*160311*/ OPC_CheckInteger, 1, ++/*160313*/ OPC_CheckType, MVT::i32, ++/*160315*/ OPC_MoveParent, ++/*160316*/ OPC_MoveChild, 26, ++/*160318*/ OPC_CheckInteger, 1, ++/*160320*/ OPC_CheckType, MVT::i32, ++/*160322*/ OPC_MoveParent, ++/*160323*/ OPC_MoveChild, 27, ++/*160325*/ OPC_CheckInteger, 1, ++/*160327*/ OPC_CheckType, MVT::i32, ++/*160329*/ OPC_MoveParent, ++/*160330*/ OPC_MoveChild, 28, ++/*160332*/ OPC_CheckInteger, 1, ++/*160334*/ OPC_CheckType, MVT::i32, ++/*160336*/ OPC_MoveParent, ++/*160337*/ OPC_MoveChild, 29, ++/*160339*/ OPC_CheckInteger, 1, ++/*160341*/ OPC_CheckType, MVT::i32, ++/*160343*/ OPC_MoveParent, ++/*160344*/ OPC_MoveChild, 30, ++/*160346*/ OPC_CheckInteger, 1, ++/*160348*/ OPC_CheckType, MVT::i32, ++/*160350*/ OPC_MoveParent, ++/*160351*/ OPC_MoveChild, 31, ++/*160353*/ OPC_CheckInteger, 1, ++/*160355*/ OPC_CheckType, MVT::i32, ++/*160357*/ OPC_MoveParent, ++/*160358*/ OPC_MoveParent, ++/*160359*/ OPC_MoveChild1, ++/*160360*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*160363*/ OPC_RecordChild0, // #0 = $a ++/*160364*/ OPC_RecordChild1, // #1 = $b ++/*160365*/ OPC_MoveParent, ++/*160366*/ OPC_MoveParent, ++/*160367*/ OPC_MoveChild1, ++/*160368*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*160371*/ OPC_MoveChild0, ++/*160372*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*160375*/ OPC_Scope, 120|128,30/*3960*/, /*->164338*/ // 7 children in Scope ++/*160378*/ OPC_MoveChild0, ++/*160379*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*160382*/ OPC_Scope, 17|128,5/*657*/, /*->161042*/ // 6 children in Scope ++/*160385*/ OPC_MoveChild0, ++/*160386*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*160389*/ OPC_CheckChild0Integer, 1, ++/*160391*/ OPC_CheckChild0Type, MVT::i32, ++/*160393*/ OPC_CheckChild1Integer, 1, ++/*160395*/ OPC_CheckChild1Type, MVT::i32, ++/*160397*/ OPC_CheckChild2Integer, 1, ++/*160399*/ OPC_CheckChild2Type, MVT::i32, ++/*160401*/ OPC_CheckChild3Integer, 1, ++/*160403*/ OPC_CheckChild3Type, MVT::i32, ++/*160405*/ OPC_CheckChild4Integer, 1, ++/*160407*/ OPC_CheckChild4Type, MVT::i32, ++/*160409*/ OPC_MoveChild5, ++/*160410*/ OPC_CheckInteger, 1, ++/*160412*/ OPC_CheckType, MVT::i32, ++/*160414*/ OPC_MoveParent, ++/*160415*/ OPC_MoveChild6, ++/*160416*/ OPC_CheckInteger, 1, ++/*160418*/ OPC_CheckType, MVT::i32, ++/*160420*/ OPC_MoveParent, ++/*160421*/ OPC_MoveChild7, ++/*160422*/ OPC_CheckInteger, 1, ++/*160424*/ OPC_CheckType, MVT::i32, ++/*160426*/ OPC_MoveParent, ++/*160427*/ OPC_MoveChild, 8, ++/*160429*/ OPC_CheckInteger, 1, ++/*160431*/ OPC_CheckType, MVT::i32, ++/*160433*/ OPC_MoveParent, ++/*160434*/ OPC_MoveChild, 9, ++/*160436*/ OPC_CheckInteger, 1, ++/*160438*/ OPC_CheckType, MVT::i32, ++/*160440*/ OPC_MoveParent, ++/*160441*/ OPC_MoveChild, 10, ++/*160443*/ OPC_CheckInteger, 1, ++/*160445*/ OPC_CheckType, MVT::i32, ++/*160447*/ OPC_MoveParent, ++/*160448*/ OPC_MoveChild, 11, ++/*160450*/ OPC_CheckInteger, 1, ++/*160452*/ OPC_CheckType, MVT::i32, ++/*160454*/ OPC_MoveParent, ++/*160455*/ OPC_MoveChild, 12, ++/*160457*/ OPC_CheckInteger, 1, ++/*160459*/ OPC_CheckType, MVT::i32, ++/*160461*/ OPC_MoveParent, ++/*160462*/ OPC_MoveChild, 13, ++/*160464*/ OPC_CheckInteger, 1, ++/*160466*/ OPC_CheckType, MVT::i32, ++/*160468*/ OPC_MoveParent, ++/*160469*/ OPC_MoveChild, 14, ++/*160471*/ OPC_CheckInteger, 1, ++/*160473*/ OPC_CheckType, MVT::i32, ++/*160475*/ OPC_MoveParent, ++/*160476*/ OPC_MoveChild, 15, ++/*160478*/ OPC_CheckInteger, 1, ++/*160480*/ OPC_CheckType, MVT::i32, ++/*160482*/ OPC_MoveParent, ++/*160483*/ OPC_MoveChild, 16, ++/*160485*/ OPC_CheckInteger, 1, ++/*160487*/ OPC_CheckType, MVT::i32, ++/*160489*/ OPC_MoveParent, ++/*160490*/ OPC_MoveChild, 17, ++/*160492*/ OPC_CheckInteger, 1, ++/*160494*/ OPC_CheckType, MVT::i32, ++/*160496*/ OPC_MoveParent, ++/*160497*/ OPC_MoveChild, 18, ++/*160499*/ OPC_CheckInteger, 1, ++/*160501*/ OPC_CheckType, MVT::i32, ++/*160503*/ OPC_MoveParent, ++/*160504*/ OPC_MoveChild, 19, ++/*160506*/ OPC_CheckInteger, 1, ++/*160508*/ OPC_CheckType, MVT::i32, ++/*160510*/ OPC_MoveParent, ++/*160511*/ OPC_MoveChild, 20, ++/*160513*/ OPC_CheckInteger, 1, ++/*160515*/ OPC_CheckType, MVT::i32, ++/*160517*/ OPC_MoveParent, ++/*160518*/ OPC_MoveChild, 21, ++/*160520*/ OPC_CheckInteger, 1, ++/*160522*/ OPC_CheckType, MVT::i32, ++/*160524*/ OPC_MoveParent, ++/*160525*/ OPC_MoveChild, 22, ++/*160527*/ OPC_CheckInteger, 1, ++/*160529*/ OPC_CheckType, MVT::i32, ++/*160531*/ OPC_MoveParent, ++/*160532*/ OPC_MoveChild, 23, ++/*160534*/ OPC_CheckInteger, 1, ++/*160536*/ OPC_CheckType, MVT::i32, ++/*160538*/ OPC_MoveParent, ++/*160539*/ OPC_MoveChild, 24, ++/*160541*/ OPC_CheckInteger, 1, ++/*160543*/ OPC_CheckType, MVT::i32, ++/*160545*/ OPC_MoveParent, ++/*160546*/ OPC_MoveChild, 25, ++/*160548*/ OPC_CheckInteger, 1, ++/*160550*/ OPC_CheckType, MVT::i32, ++/*160552*/ OPC_MoveParent, ++/*160553*/ OPC_MoveChild, 26, ++/*160555*/ OPC_CheckInteger, 1, ++/*160557*/ OPC_CheckType, MVT::i32, ++/*160559*/ OPC_MoveParent, ++/*160560*/ OPC_MoveChild, 27, ++/*160562*/ OPC_CheckInteger, 1, ++/*160564*/ OPC_CheckType, MVT::i32, ++/*160566*/ OPC_MoveParent, ++/*160567*/ OPC_MoveChild, 28, ++/*160569*/ OPC_CheckInteger, 1, ++/*160571*/ OPC_CheckType, MVT::i32, ++/*160573*/ OPC_MoveParent, ++/*160574*/ OPC_MoveChild, 29, ++/*160576*/ OPC_CheckInteger, 1, ++/*160578*/ OPC_CheckType, MVT::i32, ++/*160580*/ OPC_MoveParent, ++/*160581*/ OPC_MoveChild, 30, ++/*160583*/ OPC_CheckInteger, 1, ++/*160585*/ OPC_CheckType, MVT::i32, ++/*160587*/ OPC_MoveParent, ++/*160588*/ OPC_MoveChild, 31, ++/*160590*/ OPC_CheckInteger, 1, ++/*160592*/ OPC_CheckType, MVT::i32, ++/*160594*/ OPC_MoveParent, ++/*160595*/ OPC_MoveParent, ++/*160596*/ OPC_CheckChild1Same, 0, ++/*160598*/ OPC_MoveParent, ++/*160599*/ OPC_CheckChild1Same, 1, ++/*160601*/ OPC_MoveParent, ++/*160602*/ OPC_MoveChild1, ++/*160603*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*160606*/ OPC_CheckChild0Integer, 7, ++/*160608*/ OPC_CheckChild0Type, MVT::i32, ++/*160610*/ OPC_CheckChild1Integer, 7, ++/*160612*/ OPC_CheckChild1Type, MVT::i32, ++/*160614*/ OPC_CheckChild2Integer, 7, ++/*160616*/ OPC_CheckChild2Type, MVT::i32, ++/*160618*/ OPC_CheckChild3Integer, 7, ++/*160620*/ OPC_CheckChild3Type, MVT::i32, ++/*160622*/ OPC_CheckChild4Integer, 7, ++/*160624*/ OPC_CheckChild4Type, MVT::i32, ++/*160626*/ OPC_MoveChild5, ++/*160627*/ OPC_CheckInteger, 7, ++/*160629*/ OPC_CheckType, MVT::i32, ++/*160631*/ OPC_MoveParent, ++/*160632*/ OPC_MoveChild6, ++/*160633*/ OPC_CheckInteger, 7, ++/*160635*/ OPC_CheckType, MVT::i32, ++/*160637*/ OPC_MoveParent, ++/*160638*/ OPC_MoveChild7, ++/*160639*/ OPC_CheckInteger, 7, ++/*160641*/ OPC_CheckType, MVT::i32, ++/*160643*/ OPC_MoveParent, ++/*160644*/ OPC_MoveChild, 8, ++/*160646*/ OPC_CheckInteger, 7, ++/*160648*/ OPC_CheckType, MVT::i32, ++/*160650*/ OPC_MoveParent, ++/*160651*/ OPC_MoveChild, 9, ++/*160653*/ OPC_CheckInteger, 7, ++/*160655*/ OPC_CheckType, MVT::i32, ++/*160657*/ OPC_MoveParent, ++/*160658*/ OPC_MoveChild, 10, ++/*160660*/ OPC_CheckInteger, 7, ++/*160662*/ OPC_CheckType, MVT::i32, ++/*160664*/ OPC_MoveParent, ++/*160665*/ OPC_MoveChild, 11, ++/*160667*/ OPC_CheckInteger, 7, ++/*160669*/ OPC_CheckType, MVT::i32, ++/*160671*/ OPC_MoveParent, ++/*160672*/ OPC_MoveChild, 12, ++/*160674*/ OPC_CheckInteger, 7, ++/*160676*/ OPC_CheckType, MVT::i32, ++/*160678*/ OPC_MoveParent, ++/*160679*/ OPC_MoveChild, 13, ++/*160681*/ OPC_CheckInteger, 7, ++/*160683*/ OPC_CheckType, MVT::i32, ++/*160685*/ OPC_MoveParent, ++/*160686*/ OPC_MoveChild, 14, ++/*160688*/ OPC_CheckInteger, 7, ++/*160690*/ OPC_CheckType, MVT::i32, ++/*160692*/ OPC_MoveParent, ++/*160693*/ OPC_MoveChild, 15, ++/*160695*/ OPC_CheckInteger, 7, ++/*160697*/ OPC_CheckType, MVT::i32, ++/*160699*/ OPC_MoveParent, ++/*160700*/ OPC_MoveChild, 16, ++/*160702*/ OPC_CheckInteger, 7, ++/*160704*/ OPC_CheckType, MVT::i32, ++/*160706*/ OPC_MoveParent, ++/*160707*/ OPC_MoveChild, 17, ++/*160709*/ OPC_CheckInteger, 7, ++/*160711*/ OPC_CheckType, MVT::i32, ++/*160713*/ OPC_MoveParent, ++/*160714*/ OPC_MoveChild, 18, ++/*160716*/ OPC_CheckInteger, 7, ++/*160718*/ OPC_CheckType, MVT::i32, ++/*160720*/ OPC_MoveParent, ++/*160721*/ OPC_MoveChild, 19, ++/*160723*/ OPC_CheckInteger, 7, ++/*160725*/ OPC_CheckType, MVT::i32, ++/*160727*/ OPC_MoveParent, ++/*160728*/ OPC_MoveChild, 20, ++/*160730*/ OPC_CheckInteger, 7, ++/*160732*/ OPC_CheckType, MVT::i32, ++/*160734*/ OPC_MoveParent, ++/*160735*/ OPC_MoveChild, 21, ++/*160737*/ OPC_CheckInteger, 7, ++/*160739*/ OPC_CheckType, MVT::i32, ++/*160741*/ OPC_MoveParent, ++/*160742*/ OPC_MoveChild, 22, ++/*160744*/ OPC_CheckInteger, 7, ++/*160746*/ OPC_CheckType, MVT::i32, ++/*160748*/ OPC_MoveParent, ++/*160749*/ OPC_MoveChild, 23, ++/*160751*/ OPC_CheckInteger, 7, ++/*160753*/ OPC_CheckType, MVT::i32, ++/*160755*/ OPC_MoveParent, ++/*160756*/ OPC_MoveChild, 24, ++/*160758*/ OPC_CheckInteger, 7, ++/*160760*/ OPC_CheckType, MVT::i32, ++/*160762*/ OPC_MoveParent, ++/*160763*/ OPC_MoveChild, 25, ++/*160765*/ OPC_CheckInteger, 7, ++/*160767*/ OPC_CheckType, MVT::i32, ++/*160769*/ OPC_MoveParent, ++/*160770*/ OPC_MoveChild, 26, ++/*160772*/ OPC_CheckInteger, 7, ++/*160774*/ OPC_CheckType, MVT::i32, ++/*160776*/ OPC_MoveParent, ++/*160777*/ OPC_MoveChild, 27, ++/*160779*/ OPC_CheckInteger, 7, ++/*160781*/ OPC_CheckType, MVT::i32, ++/*160783*/ OPC_MoveParent, ++/*160784*/ OPC_MoveChild, 28, ++/*160786*/ OPC_CheckInteger, 7, ++/*160788*/ OPC_CheckType, MVT::i32, ++/*160790*/ OPC_MoveParent, ++/*160791*/ OPC_MoveChild, 29, ++/*160793*/ OPC_CheckInteger, 7, ++/*160795*/ OPC_CheckType, MVT::i32, ++/*160797*/ OPC_MoveParent, ++/*160798*/ OPC_MoveChild, 30, ++/*160800*/ OPC_CheckInteger, 7, ++/*160802*/ OPC_CheckType, MVT::i32, ++/*160804*/ OPC_MoveParent, ++/*160805*/ OPC_MoveChild, 31, ++/*160807*/ OPC_CheckInteger, 7, ++/*160809*/ OPC_CheckType, MVT::i32, ++/*160811*/ OPC_MoveParent, ++/*160812*/ OPC_CheckType, MVT::v32i8, ++/*160814*/ OPC_MoveParent, ++/*160815*/ OPC_MoveParent, ++/*160816*/ OPC_MoveParent, ++/*160817*/ OPC_MoveChild1, ++/*160818*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*160821*/ OPC_CheckChild0Integer, 1, ++/*160823*/ OPC_CheckChild0Type, MVT::i32, ++/*160825*/ OPC_CheckChild1Integer, 1, ++/*160827*/ OPC_CheckChild1Type, MVT::i32, ++/*160829*/ OPC_CheckChild2Integer, 1, ++/*160831*/ OPC_CheckChild2Type, MVT::i32, ++/*160833*/ OPC_CheckChild3Integer, 1, ++/*160835*/ OPC_CheckChild3Type, MVT::i32, ++/*160837*/ OPC_CheckChild4Integer, 1, ++/*160839*/ OPC_CheckChild4Type, MVT::i32, ++/*160841*/ OPC_MoveChild5, ++/*160842*/ OPC_CheckInteger, 1, ++/*160844*/ OPC_CheckType, MVT::i32, ++/*160846*/ OPC_MoveParent, ++/*160847*/ OPC_MoveChild6, ++/*160848*/ OPC_CheckInteger, 1, ++/*160850*/ OPC_CheckType, MVT::i32, ++/*160852*/ OPC_MoveParent, ++/*160853*/ OPC_MoveChild7, ++/*160854*/ OPC_CheckInteger, 1, ++/*160856*/ OPC_CheckType, MVT::i32, ++/*160858*/ OPC_MoveParent, ++/*160859*/ OPC_MoveChild, 8, ++/*160861*/ OPC_CheckInteger, 1, ++/*160863*/ OPC_CheckType, MVT::i32, ++/*160865*/ OPC_MoveParent, ++/*160866*/ OPC_MoveChild, 9, ++/*160868*/ OPC_CheckInteger, 1, ++/*160870*/ OPC_CheckType, MVT::i32, ++/*160872*/ OPC_MoveParent, ++/*160873*/ OPC_MoveChild, 10, ++/*160875*/ OPC_CheckInteger, 1, ++/*160877*/ OPC_CheckType, MVT::i32, ++/*160879*/ OPC_MoveParent, ++/*160880*/ OPC_MoveChild, 11, ++/*160882*/ OPC_CheckInteger, 1, ++/*160884*/ OPC_CheckType, MVT::i32, ++/*160886*/ OPC_MoveParent, ++/*160887*/ OPC_MoveChild, 12, ++/*160889*/ OPC_CheckInteger, 1, ++/*160891*/ OPC_CheckType, MVT::i32, ++/*160893*/ OPC_MoveParent, ++/*160894*/ OPC_MoveChild, 13, ++/*160896*/ OPC_CheckInteger, 1, ++/*160898*/ OPC_CheckType, MVT::i32, ++/*160900*/ OPC_MoveParent, ++/*160901*/ OPC_MoveChild, 14, ++/*160903*/ OPC_CheckInteger, 1, ++/*160905*/ OPC_CheckType, MVT::i32, ++/*160907*/ OPC_MoveParent, ++/*160908*/ OPC_MoveChild, 15, ++/*160910*/ OPC_CheckInteger, 1, ++/*160912*/ OPC_CheckType, MVT::i32, ++/*160914*/ OPC_MoveParent, ++/*160915*/ OPC_MoveChild, 16, ++/*160917*/ OPC_CheckInteger, 1, ++/*160919*/ OPC_CheckType, MVT::i32, ++/*160921*/ OPC_MoveParent, ++/*160922*/ OPC_MoveChild, 17, ++/*160924*/ OPC_CheckInteger, 1, ++/*160926*/ OPC_CheckType, MVT::i32, ++/*160928*/ OPC_MoveParent, ++/*160929*/ OPC_MoveChild, 18, ++/*160931*/ OPC_CheckInteger, 1, ++/*160933*/ OPC_CheckType, MVT::i32, ++/*160935*/ OPC_MoveParent, ++/*160936*/ OPC_MoveChild, 19, ++/*160938*/ OPC_CheckInteger, 1, ++/*160940*/ OPC_CheckType, MVT::i32, ++/*160942*/ OPC_MoveParent, ++/*160943*/ OPC_MoveChild, 20, ++/*160945*/ OPC_CheckInteger, 1, ++/*160947*/ OPC_CheckType, MVT::i32, ++/*160949*/ OPC_MoveParent, ++/*160950*/ OPC_MoveChild, 21, ++/*160952*/ OPC_CheckInteger, 1, ++/*160954*/ OPC_CheckType, MVT::i32, ++/*160956*/ OPC_MoveParent, ++/*160957*/ OPC_MoveChild, 22, ++/*160959*/ OPC_CheckInteger, 1, ++/*160961*/ OPC_CheckType, MVT::i32, ++/*160963*/ OPC_MoveParent, ++/*160964*/ OPC_MoveChild, 23, ++/*160966*/ OPC_CheckInteger, 1, ++/*160968*/ OPC_CheckType, MVT::i32, ++/*160970*/ OPC_MoveParent, ++/*160971*/ OPC_MoveChild, 24, ++/*160973*/ OPC_CheckInteger, 1, ++/*160975*/ OPC_CheckType, MVT::i32, ++/*160977*/ OPC_MoveParent, ++/*160978*/ OPC_MoveChild, 25, ++/*160980*/ OPC_CheckInteger, 1, ++/*160982*/ OPC_CheckType, MVT::i32, ++/*160984*/ OPC_MoveParent, ++/*160985*/ OPC_MoveChild, 26, ++/*160987*/ OPC_CheckInteger, 1, ++/*160989*/ OPC_CheckType, MVT::i32, ++/*160991*/ OPC_MoveParent, ++/*160992*/ OPC_MoveChild, 27, ++/*160994*/ OPC_CheckInteger, 1, ++/*160996*/ OPC_CheckType, MVT::i32, ++/*160998*/ OPC_MoveParent, ++/*160999*/ OPC_MoveChild, 28, ++/*161001*/ OPC_CheckInteger, 1, ++/*161003*/ OPC_CheckType, MVT::i32, ++/*161005*/ OPC_MoveParent, ++/*161006*/ OPC_MoveChild, 29, ++/*161008*/ OPC_CheckInteger, 1, ++/*161010*/ OPC_CheckType, MVT::i32, ++/*161012*/ OPC_MoveParent, ++/*161013*/ OPC_MoveChild, 30, ++/*161015*/ OPC_CheckInteger, 1, ++/*161017*/ OPC_CheckType, MVT::i32, ++/*161019*/ OPC_MoveParent, ++/*161020*/ OPC_MoveChild, 31, ++/*161022*/ OPC_CheckInteger, 1, ++/*161024*/ OPC_CheckType, MVT::i32, ++/*161026*/ OPC_MoveParent, ++/*161027*/ OPC_CheckType, MVT::v32i8, ++/*161029*/ OPC_MoveParent, ++/*161030*/ OPC_CheckType, MVT::v32i8, ++/*161032*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*161034*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b)), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a), LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*161042*/ /*Scope*/ 17|128,5/*657*/, /*->161701*/ ++/*161044*/ OPC_CheckChild0Same, 0, ++/*161046*/ OPC_MoveChild1, ++/*161047*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*161050*/ OPC_CheckChild0Integer, 1, ++/*161052*/ OPC_CheckChild0Type, MVT::i32, ++/*161054*/ OPC_CheckChild1Integer, 1, ++/*161056*/ OPC_CheckChild1Type, MVT::i32, ++/*161058*/ OPC_CheckChild2Integer, 1, ++/*161060*/ OPC_CheckChild2Type, MVT::i32, ++/*161062*/ OPC_CheckChild3Integer, 1, ++/*161064*/ OPC_CheckChild3Type, MVT::i32, ++/*161066*/ OPC_CheckChild4Integer, 1, ++/*161068*/ OPC_CheckChild4Type, MVT::i32, ++/*161070*/ OPC_MoveChild5, ++/*161071*/ OPC_CheckInteger, 1, ++/*161073*/ OPC_CheckType, MVT::i32, ++/*161075*/ OPC_MoveParent, ++/*161076*/ OPC_MoveChild6, ++/*161077*/ OPC_CheckInteger, 1, ++/*161079*/ OPC_CheckType, MVT::i32, ++/*161081*/ OPC_MoveParent, ++/*161082*/ OPC_MoveChild7, ++/*161083*/ OPC_CheckInteger, 1, ++/*161085*/ OPC_CheckType, MVT::i32, ++/*161087*/ OPC_MoveParent, ++/*161088*/ OPC_MoveChild, 8, ++/*161090*/ OPC_CheckInteger, 1, ++/*161092*/ OPC_CheckType, MVT::i32, ++/*161094*/ OPC_MoveParent, ++/*161095*/ OPC_MoveChild, 9, ++/*161097*/ OPC_CheckInteger, 1, ++/*161099*/ OPC_CheckType, MVT::i32, ++/*161101*/ OPC_MoveParent, ++/*161102*/ OPC_MoveChild, 10, ++/*161104*/ OPC_CheckInteger, 1, ++/*161106*/ OPC_CheckType, MVT::i32, ++/*161108*/ OPC_MoveParent, ++/*161109*/ OPC_MoveChild, 11, ++/*161111*/ OPC_CheckInteger, 1, ++/*161113*/ OPC_CheckType, MVT::i32, ++/*161115*/ OPC_MoveParent, ++/*161116*/ OPC_MoveChild, 12, ++/*161118*/ OPC_CheckInteger, 1, ++/*161120*/ OPC_CheckType, MVT::i32, ++/*161122*/ OPC_MoveParent, ++/*161123*/ OPC_MoveChild, 13, ++/*161125*/ OPC_CheckInteger, 1, ++/*161127*/ OPC_CheckType, MVT::i32, ++/*161129*/ OPC_MoveParent, ++/*161130*/ OPC_MoveChild, 14, ++/*161132*/ OPC_CheckInteger, 1, ++/*161134*/ OPC_CheckType, MVT::i32, ++/*161136*/ OPC_MoveParent, ++/*161137*/ OPC_MoveChild, 15, ++/*161139*/ OPC_CheckInteger, 1, ++/*161141*/ OPC_CheckType, MVT::i32, ++/*161143*/ OPC_MoveParent, ++/*161144*/ OPC_MoveChild, 16, ++/*161146*/ OPC_CheckInteger, 1, ++/*161148*/ OPC_CheckType, MVT::i32, ++/*161150*/ OPC_MoveParent, ++/*161151*/ OPC_MoveChild, 17, ++/*161153*/ OPC_CheckInteger, 1, ++/*161155*/ OPC_CheckType, MVT::i32, ++/*161157*/ OPC_MoveParent, ++/*161158*/ OPC_MoveChild, 18, ++/*161160*/ OPC_CheckInteger, 1, ++/*161162*/ OPC_CheckType, MVT::i32, ++/*161164*/ OPC_MoveParent, ++/*161165*/ OPC_MoveChild, 19, ++/*161167*/ OPC_CheckInteger, 1, ++/*161169*/ OPC_CheckType, MVT::i32, ++/*161171*/ OPC_MoveParent, ++/*161172*/ OPC_MoveChild, 20, ++/*161174*/ OPC_CheckInteger, 1, ++/*161176*/ OPC_CheckType, MVT::i32, ++/*161178*/ OPC_MoveParent, ++/*161179*/ OPC_MoveChild, 21, ++/*161181*/ OPC_CheckInteger, 1, ++/*161183*/ OPC_CheckType, MVT::i32, ++/*161185*/ OPC_MoveParent, ++/*161186*/ OPC_MoveChild, 22, ++/*161188*/ OPC_CheckInteger, 1, ++/*161190*/ OPC_CheckType, MVT::i32, ++/*161192*/ OPC_MoveParent, ++/*161193*/ OPC_MoveChild, 23, ++/*161195*/ OPC_CheckInteger, 1, ++/*161197*/ OPC_CheckType, MVT::i32, ++/*161199*/ OPC_MoveParent, ++/*161200*/ OPC_MoveChild, 24, ++/*161202*/ OPC_CheckInteger, 1, ++/*161204*/ OPC_CheckType, MVT::i32, ++/*161206*/ OPC_MoveParent, ++/*161207*/ OPC_MoveChild, 25, ++/*161209*/ OPC_CheckInteger, 1, ++/*161211*/ OPC_CheckType, MVT::i32, ++/*161213*/ OPC_MoveParent, ++/*161214*/ OPC_MoveChild, 26, ++/*161216*/ OPC_CheckInteger, 1, ++/*161218*/ OPC_CheckType, MVT::i32, ++/*161220*/ OPC_MoveParent, ++/*161221*/ OPC_MoveChild, 27, ++/*161223*/ OPC_CheckInteger, 1, ++/*161225*/ OPC_CheckType, MVT::i32, ++/*161227*/ OPC_MoveParent, ++/*161228*/ OPC_MoveChild, 28, ++/*161230*/ OPC_CheckInteger, 1, ++/*161232*/ OPC_CheckType, MVT::i32, ++/*161234*/ OPC_MoveParent, ++/*161235*/ OPC_MoveChild, 29, ++/*161237*/ OPC_CheckInteger, 1, ++/*161239*/ OPC_CheckType, MVT::i32, ++/*161241*/ OPC_MoveParent, ++/*161242*/ OPC_MoveChild, 30, ++/*161244*/ OPC_CheckInteger, 1, ++/*161246*/ OPC_CheckType, MVT::i32, ++/*161248*/ OPC_MoveParent, ++/*161249*/ OPC_MoveChild, 31, ++/*161251*/ OPC_CheckInteger, 1, ++/*161253*/ OPC_CheckType, MVT::i32, ++/*161255*/ OPC_MoveParent, ++/*161256*/ OPC_MoveParent, ++/*161257*/ OPC_MoveParent, ++/*161258*/ OPC_CheckChild1Same, 1, ++/*161260*/ OPC_MoveParent, ++/*161261*/ OPC_MoveChild1, ++/*161262*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*161265*/ OPC_CheckChild0Integer, 7, ++/*161267*/ OPC_CheckChild0Type, MVT::i32, ++/*161269*/ OPC_CheckChild1Integer, 7, ++/*161271*/ OPC_CheckChild1Type, MVT::i32, ++/*161273*/ OPC_CheckChild2Integer, 7, ++/*161275*/ OPC_CheckChild2Type, MVT::i32, ++/*161277*/ OPC_CheckChild3Integer, 7, ++/*161279*/ OPC_CheckChild3Type, MVT::i32, ++/*161281*/ OPC_CheckChild4Integer, 7, ++/*161283*/ OPC_CheckChild4Type, MVT::i32, ++/*161285*/ OPC_MoveChild5, ++/*161286*/ OPC_CheckInteger, 7, ++/*161288*/ OPC_CheckType, MVT::i32, ++/*161290*/ OPC_MoveParent, ++/*161291*/ OPC_MoveChild6, ++/*161292*/ OPC_CheckInteger, 7, ++/*161294*/ OPC_CheckType, MVT::i32, ++/*161296*/ OPC_MoveParent, ++/*161297*/ OPC_MoveChild7, ++/*161298*/ OPC_CheckInteger, 7, ++/*161300*/ OPC_CheckType, MVT::i32, ++/*161302*/ OPC_MoveParent, ++/*161303*/ OPC_MoveChild, 8, ++/*161305*/ OPC_CheckInteger, 7, ++/*161307*/ OPC_CheckType, MVT::i32, ++/*161309*/ OPC_MoveParent, ++/*161310*/ OPC_MoveChild, 9, ++/*161312*/ OPC_CheckInteger, 7, ++/*161314*/ OPC_CheckType, MVT::i32, ++/*161316*/ OPC_MoveParent, ++/*161317*/ OPC_MoveChild, 10, ++/*161319*/ OPC_CheckInteger, 7, ++/*161321*/ OPC_CheckType, MVT::i32, ++/*161323*/ OPC_MoveParent, ++/*161324*/ OPC_MoveChild, 11, ++/*161326*/ OPC_CheckInteger, 7, ++/*161328*/ OPC_CheckType, MVT::i32, ++/*161330*/ OPC_MoveParent, ++/*161331*/ OPC_MoveChild, 12, ++/*161333*/ OPC_CheckInteger, 7, ++/*161335*/ OPC_CheckType, MVT::i32, ++/*161337*/ OPC_MoveParent, ++/*161338*/ OPC_MoveChild, 13, ++/*161340*/ OPC_CheckInteger, 7, ++/*161342*/ OPC_CheckType, MVT::i32, ++/*161344*/ OPC_MoveParent, ++/*161345*/ OPC_MoveChild, 14, ++/*161347*/ OPC_CheckInteger, 7, ++/*161349*/ OPC_CheckType, MVT::i32, ++/*161351*/ OPC_MoveParent, ++/*161352*/ OPC_MoveChild, 15, ++/*161354*/ OPC_CheckInteger, 7, ++/*161356*/ OPC_CheckType, MVT::i32, ++/*161358*/ OPC_MoveParent, ++/*161359*/ OPC_MoveChild, 16, ++/*161361*/ OPC_CheckInteger, 7, ++/*161363*/ OPC_CheckType, MVT::i32, ++/*161365*/ OPC_MoveParent, ++/*161366*/ OPC_MoveChild, 17, ++/*161368*/ OPC_CheckInteger, 7, ++/*161370*/ OPC_CheckType, MVT::i32, ++/*161372*/ OPC_MoveParent, ++/*161373*/ OPC_MoveChild, 18, ++/*161375*/ OPC_CheckInteger, 7, ++/*161377*/ OPC_CheckType, MVT::i32, ++/*161379*/ OPC_MoveParent, ++/*161380*/ OPC_MoveChild, 19, ++/*161382*/ OPC_CheckInteger, 7, ++/*161384*/ OPC_CheckType, MVT::i32, ++/*161386*/ OPC_MoveParent, ++/*161387*/ OPC_MoveChild, 20, ++/*161389*/ OPC_CheckInteger, 7, ++/*161391*/ OPC_CheckType, MVT::i32, ++/*161393*/ OPC_MoveParent, ++/*161394*/ OPC_MoveChild, 21, ++/*161396*/ OPC_CheckInteger, 7, ++/*161398*/ OPC_CheckType, MVT::i32, ++/*161400*/ OPC_MoveParent, ++/*161401*/ OPC_MoveChild, 22, ++/*161403*/ OPC_CheckInteger, 7, ++/*161405*/ OPC_CheckType, MVT::i32, ++/*161407*/ OPC_MoveParent, ++/*161408*/ OPC_MoveChild, 23, ++/*161410*/ OPC_CheckInteger, 7, ++/*161412*/ OPC_CheckType, MVT::i32, ++/*161414*/ OPC_MoveParent, ++/*161415*/ OPC_MoveChild, 24, ++/*161417*/ OPC_CheckInteger, 7, ++/*161419*/ OPC_CheckType, MVT::i32, ++/*161421*/ OPC_MoveParent, ++/*161422*/ OPC_MoveChild, 25, ++/*161424*/ OPC_CheckInteger, 7, ++/*161426*/ OPC_CheckType, MVT::i32, ++/*161428*/ OPC_MoveParent, ++/*161429*/ OPC_MoveChild, 26, ++/*161431*/ OPC_CheckInteger, 7, ++/*161433*/ OPC_CheckType, MVT::i32, ++/*161435*/ OPC_MoveParent, ++/*161436*/ OPC_MoveChild, 27, ++/*161438*/ OPC_CheckInteger, 7, ++/*161440*/ OPC_CheckType, MVT::i32, ++/*161442*/ OPC_MoveParent, ++/*161443*/ OPC_MoveChild, 28, ++/*161445*/ OPC_CheckInteger, 7, ++/*161447*/ OPC_CheckType, MVT::i32, ++/*161449*/ OPC_MoveParent, ++/*161450*/ OPC_MoveChild, 29, ++/*161452*/ OPC_CheckInteger, 7, ++/*161454*/ OPC_CheckType, MVT::i32, ++/*161456*/ OPC_MoveParent, ++/*161457*/ OPC_MoveChild, 30, ++/*161459*/ OPC_CheckInteger, 7, ++/*161461*/ OPC_CheckType, MVT::i32, ++/*161463*/ OPC_MoveParent, ++/*161464*/ OPC_MoveChild, 31, ++/*161466*/ OPC_CheckInteger, 7, ++/*161468*/ OPC_CheckType, MVT::i32, ++/*161470*/ OPC_MoveParent, ++/*161471*/ OPC_CheckType, MVT::v32i8, ++/*161473*/ OPC_MoveParent, ++/*161474*/ OPC_MoveParent, ++/*161475*/ OPC_MoveParent, ++/*161476*/ OPC_MoveChild1, ++/*161477*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*161480*/ OPC_CheckChild0Integer, 1, ++/*161482*/ OPC_CheckChild0Type, MVT::i32, ++/*161484*/ OPC_CheckChild1Integer, 1, ++/*161486*/ OPC_CheckChild1Type, MVT::i32, ++/*161488*/ OPC_CheckChild2Integer, 1, ++/*161490*/ OPC_CheckChild2Type, MVT::i32, ++/*161492*/ OPC_CheckChild3Integer, 1, ++/*161494*/ OPC_CheckChild3Type, MVT::i32, ++/*161496*/ OPC_CheckChild4Integer, 1, ++/*161498*/ OPC_CheckChild4Type, MVT::i32, ++/*161500*/ OPC_MoveChild5, ++/*161501*/ OPC_CheckInteger, 1, ++/*161503*/ OPC_CheckType, MVT::i32, ++/*161505*/ OPC_MoveParent, ++/*161506*/ OPC_MoveChild6, ++/*161507*/ OPC_CheckInteger, 1, ++/*161509*/ OPC_CheckType, MVT::i32, ++/*161511*/ OPC_MoveParent, ++/*161512*/ OPC_MoveChild7, ++/*161513*/ OPC_CheckInteger, 1, ++/*161515*/ OPC_CheckType, MVT::i32, ++/*161517*/ OPC_MoveParent, ++/*161518*/ OPC_MoveChild, 8, ++/*161520*/ OPC_CheckInteger, 1, ++/*161522*/ OPC_CheckType, MVT::i32, ++/*161524*/ OPC_MoveParent, ++/*161525*/ OPC_MoveChild, 9, ++/*161527*/ OPC_CheckInteger, 1, ++/*161529*/ OPC_CheckType, MVT::i32, ++/*161531*/ OPC_MoveParent, ++/*161532*/ OPC_MoveChild, 10, ++/*161534*/ OPC_CheckInteger, 1, ++/*161536*/ OPC_CheckType, MVT::i32, ++/*161538*/ OPC_MoveParent, ++/*161539*/ OPC_MoveChild, 11, ++/*161541*/ OPC_CheckInteger, 1, ++/*161543*/ OPC_CheckType, MVT::i32, ++/*161545*/ OPC_MoveParent, ++/*161546*/ OPC_MoveChild, 12, ++/*161548*/ OPC_CheckInteger, 1, ++/*161550*/ OPC_CheckType, MVT::i32, ++/*161552*/ OPC_MoveParent, ++/*161553*/ OPC_MoveChild, 13, ++/*161555*/ OPC_CheckInteger, 1, ++/*161557*/ OPC_CheckType, MVT::i32, ++/*161559*/ OPC_MoveParent, ++/*161560*/ OPC_MoveChild, 14, ++/*161562*/ OPC_CheckInteger, 1, ++/*161564*/ OPC_CheckType, MVT::i32, ++/*161566*/ OPC_MoveParent, ++/*161567*/ OPC_MoveChild, 15, ++/*161569*/ OPC_CheckInteger, 1, ++/*161571*/ OPC_CheckType, MVT::i32, ++/*161573*/ OPC_MoveParent, ++/*161574*/ OPC_MoveChild, 16, ++/*161576*/ OPC_CheckInteger, 1, ++/*161578*/ OPC_CheckType, MVT::i32, ++/*161580*/ OPC_MoveParent, ++/*161581*/ OPC_MoveChild, 17, ++/*161583*/ OPC_CheckInteger, 1, ++/*161585*/ OPC_CheckType, MVT::i32, ++/*161587*/ OPC_MoveParent, ++/*161588*/ OPC_MoveChild, 18, ++/*161590*/ OPC_CheckInteger, 1, ++/*161592*/ OPC_CheckType, MVT::i32, ++/*161594*/ OPC_MoveParent, ++/*161595*/ OPC_MoveChild, 19, ++/*161597*/ OPC_CheckInteger, 1, ++/*161599*/ OPC_CheckType, MVT::i32, ++/*161601*/ OPC_MoveParent, ++/*161602*/ OPC_MoveChild, 20, ++/*161604*/ OPC_CheckInteger, 1, ++/*161606*/ OPC_CheckType, MVT::i32, ++/*161608*/ OPC_MoveParent, ++/*161609*/ OPC_MoveChild, 21, ++/*161611*/ OPC_CheckInteger, 1, ++/*161613*/ OPC_CheckType, MVT::i32, ++/*161615*/ OPC_MoveParent, ++/*161616*/ OPC_MoveChild, 22, ++/*161618*/ OPC_CheckInteger, 1, ++/*161620*/ OPC_CheckType, MVT::i32, ++/*161622*/ OPC_MoveParent, ++/*161623*/ OPC_MoveChild, 23, ++/*161625*/ OPC_CheckInteger, 1, ++/*161627*/ OPC_CheckType, MVT::i32, ++/*161629*/ OPC_MoveParent, ++/*161630*/ OPC_MoveChild, 24, ++/*161632*/ OPC_CheckInteger, 1, ++/*161634*/ OPC_CheckType, MVT::i32, ++/*161636*/ OPC_MoveParent, ++/*161637*/ OPC_MoveChild, 25, ++/*161639*/ OPC_CheckInteger, 1, ++/*161641*/ OPC_CheckType, MVT::i32, ++/*161643*/ OPC_MoveParent, ++/*161644*/ OPC_MoveChild, 26, ++/*161646*/ OPC_CheckInteger, 1, ++/*161648*/ OPC_CheckType, MVT::i32, ++/*161650*/ OPC_MoveParent, ++/*161651*/ OPC_MoveChild, 27, ++/*161653*/ OPC_CheckInteger, 1, ++/*161655*/ OPC_CheckType, MVT::i32, ++/*161657*/ OPC_MoveParent, ++/*161658*/ OPC_MoveChild, 28, ++/*161660*/ OPC_CheckInteger, 1, ++/*161662*/ OPC_CheckType, MVT::i32, ++/*161664*/ OPC_MoveParent, ++/*161665*/ OPC_MoveChild, 29, ++/*161667*/ OPC_CheckInteger, 1, ++/*161669*/ OPC_CheckType, MVT::i32, ++/*161671*/ OPC_MoveParent, ++/*161672*/ OPC_MoveChild, 30, ++/*161674*/ OPC_CheckInteger, 1, ++/*161676*/ OPC_CheckType, MVT::i32, ++/*161678*/ OPC_MoveParent, ++/*161679*/ OPC_MoveChild, 31, ++/*161681*/ OPC_CheckInteger, 1, ++/*161683*/ OPC_CheckType, MVT::i32, ++/*161685*/ OPC_MoveParent, ++/*161686*/ OPC_CheckType, MVT::v32i8, ++/*161688*/ OPC_MoveParent, ++/*161689*/ OPC_CheckType, MVT::v32i8, ++/*161691*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*161693*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b)), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*161701*/ /*Scope*/ 17|128,5/*657*/, /*->162360*/ ++/*161703*/ OPC_MoveChild0, ++/*161704*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*161707*/ OPC_CheckChild0Integer, 1, ++/*161709*/ OPC_CheckChild0Type, MVT::i32, ++/*161711*/ OPC_CheckChild1Integer, 1, ++/*161713*/ OPC_CheckChild1Type, MVT::i32, ++/*161715*/ OPC_CheckChild2Integer, 1, ++/*161717*/ OPC_CheckChild2Type, MVT::i32, ++/*161719*/ OPC_CheckChild3Integer, 1, ++/*161721*/ OPC_CheckChild3Type, MVT::i32, ++/*161723*/ OPC_CheckChild4Integer, 1, ++/*161725*/ OPC_CheckChild4Type, MVT::i32, ++/*161727*/ OPC_MoveChild5, ++/*161728*/ OPC_CheckInteger, 1, ++/*161730*/ OPC_CheckType, MVT::i32, ++/*161732*/ OPC_MoveParent, ++/*161733*/ OPC_MoveChild6, ++/*161734*/ OPC_CheckInteger, 1, ++/*161736*/ OPC_CheckType, MVT::i32, ++/*161738*/ OPC_MoveParent, ++/*161739*/ OPC_MoveChild7, ++/*161740*/ OPC_CheckInteger, 1, ++/*161742*/ OPC_CheckType, MVT::i32, ++/*161744*/ OPC_MoveParent, ++/*161745*/ OPC_MoveChild, 8, ++/*161747*/ OPC_CheckInteger, 1, ++/*161749*/ OPC_CheckType, MVT::i32, ++/*161751*/ OPC_MoveParent, ++/*161752*/ OPC_MoveChild, 9, ++/*161754*/ OPC_CheckInteger, 1, ++/*161756*/ OPC_CheckType, MVT::i32, ++/*161758*/ OPC_MoveParent, ++/*161759*/ OPC_MoveChild, 10, ++/*161761*/ OPC_CheckInteger, 1, ++/*161763*/ OPC_CheckType, MVT::i32, ++/*161765*/ OPC_MoveParent, ++/*161766*/ OPC_MoveChild, 11, ++/*161768*/ OPC_CheckInteger, 1, ++/*161770*/ OPC_CheckType, MVT::i32, ++/*161772*/ OPC_MoveParent, ++/*161773*/ OPC_MoveChild, 12, ++/*161775*/ OPC_CheckInteger, 1, ++/*161777*/ OPC_CheckType, MVT::i32, ++/*161779*/ OPC_MoveParent, ++/*161780*/ OPC_MoveChild, 13, ++/*161782*/ OPC_CheckInteger, 1, ++/*161784*/ OPC_CheckType, MVT::i32, ++/*161786*/ OPC_MoveParent, ++/*161787*/ OPC_MoveChild, 14, ++/*161789*/ OPC_CheckInteger, 1, ++/*161791*/ OPC_CheckType, MVT::i32, ++/*161793*/ OPC_MoveParent, ++/*161794*/ OPC_MoveChild, 15, ++/*161796*/ OPC_CheckInteger, 1, ++/*161798*/ OPC_CheckType, MVT::i32, ++/*161800*/ OPC_MoveParent, ++/*161801*/ OPC_MoveChild, 16, ++/*161803*/ OPC_CheckInteger, 1, ++/*161805*/ OPC_CheckType, MVT::i32, ++/*161807*/ OPC_MoveParent, ++/*161808*/ OPC_MoveChild, 17, ++/*161810*/ OPC_CheckInteger, 1, ++/*161812*/ OPC_CheckType, MVT::i32, ++/*161814*/ OPC_MoveParent, ++/*161815*/ OPC_MoveChild, 18, ++/*161817*/ OPC_CheckInteger, 1, ++/*161819*/ OPC_CheckType, MVT::i32, ++/*161821*/ OPC_MoveParent, ++/*161822*/ OPC_MoveChild, 19, ++/*161824*/ OPC_CheckInteger, 1, ++/*161826*/ OPC_CheckType, MVT::i32, ++/*161828*/ OPC_MoveParent, ++/*161829*/ OPC_MoveChild, 20, ++/*161831*/ OPC_CheckInteger, 1, ++/*161833*/ OPC_CheckType, MVT::i32, ++/*161835*/ OPC_MoveParent, ++/*161836*/ OPC_MoveChild, 21, ++/*161838*/ OPC_CheckInteger, 1, ++/*161840*/ OPC_CheckType, MVT::i32, ++/*161842*/ OPC_MoveParent, ++/*161843*/ OPC_MoveChild, 22, ++/*161845*/ OPC_CheckInteger, 1, ++/*161847*/ OPC_CheckType, MVT::i32, ++/*161849*/ OPC_MoveParent, ++/*161850*/ OPC_MoveChild, 23, ++/*161852*/ OPC_CheckInteger, 1, ++/*161854*/ OPC_CheckType, MVT::i32, ++/*161856*/ OPC_MoveParent, ++/*161857*/ OPC_MoveChild, 24, ++/*161859*/ OPC_CheckInteger, 1, ++/*161861*/ OPC_CheckType, MVT::i32, ++/*161863*/ OPC_MoveParent, ++/*161864*/ OPC_MoveChild, 25, ++/*161866*/ OPC_CheckInteger, 1, ++/*161868*/ OPC_CheckType, MVT::i32, ++/*161870*/ OPC_MoveParent, ++/*161871*/ OPC_MoveChild, 26, ++/*161873*/ OPC_CheckInteger, 1, ++/*161875*/ OPC_CheckType, MVT::i32, ++/*161877*/ OPC_MoveParent, ++/*161878*/ OPC_MoveChild, 27, ++/*161880*/ OPC_CheckInteger, 1, ++/*161882*/ OPC_CheckType, MVT::i32, ++/*161884*/ OPC_MoveParent, ++/*161885*/ OPC_MoveChild, 28, ++/*161887*/ OPC_CheckInteger, 1, ++/*161889*/ OPC_CheckType, MVT::i32, ++/*161891*/ OPC_MoveParent, ++/*161892*/ OPC_MoveChild, 29, ++/*161894*/ OPC_CheckInteger, 1, ++/*161896*/ OPC_CheckType, MVT::i32, ++/*161898*/ OPC_MoveParent, ++/*161899*/ OPC_MoveChild, 30, ++/*161901*/ OPC_CheckInteger, 1, ++/*161903*/ OPC_CheckType, MVT::i32, ++/*161905*/ OPC_MoveParent, ++/*161906*/ OPC_MoveChild, 31, ++/*161908*/ OPC_CheckInteger, 1, ++/*161910*/ OPC_CheckType, MVT::i32, ++/*161912*/ OPC_MoveParent, ++/*161913*/ OPC_MoveParent, ++/*161914*/ OPC_CheckChild1Same, 1, ++/*161916*/ OPC_MoveParent, ++/*161917*/ OPC_CheckChild1Same, 0, ++/*161919*/ OPC_MoveParent, ++/*161920*/ OPC_MoveChild1, ++/*161921*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*161924*/ OPC_CheckChild0Integer, 7, ++/*161926*/ OPC_CheckChild0Type, MVT::i32, ++/*161928*/ OPC_CheckChild1Integer, 7, ++/*161930*/ OPC_CheckChild1Type, MVT::i32, ++/*161932*/ OPC_CheckChild2Integer, 7, ++/*161934*/ OPC_CheckChild2Type, MVT::i32, ++/*161936*/ OPC_CheckChild3Integer, 7, ++/*161938*/ OPC_CheckChild3Type, MVT::i32, ++/*161940*/ OPC_CheckChild4Integer, 7, ++/*161942*/ OPC_CheckChild4Type, MVT::i32, ++/*161944*/ OPC_MoveChild5, ++/*161945*/ OPC_CheckInteger, 7, ++/*161947*/ OPC_CheckType, MVT::i32, ++/*161949*/ OPC_MoveParent, ++/*161950*/ OPC_MoveChild6, ++/*161951*/ OPC_CheckInteger, 7, ++/*161953*/ OPC_CheckType, MVT::i32, ++/*161955*/ OPC_MoveParent, ++/*161956*/ OPC_MoveChild7, ++/*161957*/ OPC_CheckInteger, 7, ++/*161959*/ OPC_CheckType, MVT::i32, ++/*161961*/ OPC_MoveParent, ++/*161962*/ OPC_MoveChild, 8, ++/*161964*/ OPC_CheckInteger, 7, ++/*161966*/ OPC_CheckType, MVT::i32, ++/*161968*/ OPC_MoveParent, ++/*161969*/ OPC_MoveChild, 9, ++/*161971*/ OPC_CheckInteger, 7, ++/*161973*/ OPC_CheckType, MVT::i32, ++/*161975*/ OPC_MoveParent, ++/*161976*/ OPC_MoveChild, 10, ++/*161978*/ OPC_CheckInteger, 7, ++/*161980*/ OPC_CheckType, MVT::i32, ++/*161982*/ OPC_MoveParent, ++/*161983*/ OPC_MoveChild, 11, ++/*161985*/ OPC_CheckInteger, 7, ++/*161987*/ OPC_CheckType, MVT::i32, ++/*161989*/ OPC_MoveParent, ++/*161990*/ OPC_MoveChild, 12, ++/*161992*/ OPC_CheckInteger, 7, ++/*161994*/ OPC_CheckType, MVT::i32, ++/*161996*/ OPC_MoveParent, ++/*161997*/ OPC_MoveChild, 13, ++/*161999*/ OPC_CheckInteger, 7, ++/*162001*/ OPC_CheckType, MVT::i32, ++/*162003*/ OPC_MoveParent, ++/*162004*/ OPC_MoveChild, 14, ++/*162006*/ OPC_CheckInteger, 7, ++/*162008*/ OPC_CheckType, MVT::i32, ++/*162010*/ OPC_MoveParent, ++/*162011*/ OPC_MoveChild, 15, ++/*162013*/ OPC_CheckInteger, 7, ++/*162015*/ OPC_CheckType, MVT::i32, ++/*162017*/ OPC_MoveParent, ++/*162018*/ OPC_MoveChild, 16, ++/*162020*/ OPC_CheckInteger, 7, ++/*162022*/ OPC_CheckType, MVT::i32, ++/*162024*/ OPC_MoveParent, ++/*162025*/ OPC_MoveChild, 17, ++/*162027*/ OPC_CheckInteger, 7, ++/*162029*/ OPC_CheckType, MVT::i32, ++/*162031*/ OPC_MoveParent, ++/*162032*/ OPC_MoveChild, 18, ++/*162034*/ OPC_CheckInteger, 7, ++/*162036*/ OPC_CheckType, MVT::i32, ++/*162038*/ OPC_MoveParent, ++/*162039*/ OPC_MoveChild, 19, ++/*162041*/ OPC_CheckInteger, 7, ++/*162043*/ OPC_CheckType, MVT::i32, ++/*162045*/ OPC_MoveParent, ++/*162046*/ OPC_MoveChild, 20, ++/*162048*/ OPC_CheckInteger, 7, ++/*162050*/ OPC_CheckType, MVT::i32, ++/*162052*/ OPC_MoveParent, ++/*162053*/ OPC_MoveChild, 21, ++/*162055*/ OPC_CheckInteger, 7, ++/*162057*/ OPC_CheckType, MVT::i32, ++/*162059*/ OPC_MoveParent, ++/*162060*/ OPC_MoveChild, 22, ++/*162062*/ OPC_CheckInteger, 7, ++/*162064*/ OPC_CheckType, MVT::i32, ++/*162066*/ OPC_MoveParent, ++/*162067*/ OPC_MoveChild, 23, ++/*162069*/ OPC_CheckInteger, 7, ++/*162071*/ OPC_CheckType, MVT::i32, ++/*162073*/ OPC_MoveParent, ++/*162074*/ OPC_MoveChild, 24, ++/*162076*/ OPC_CheckInteger, 7, ++/*162078*/ OPC_CheckType, MVT::i32, ++/*162080*/ OPC_MoveParent, ++/*162081*/ OPC_MoveChild, 25, ++/*162083*/ OPC_CheckInteger, 7, ++/*162085*/ OPC_CheckType, MVT::i32, ++/*162087*/ OPC_MoveParent, ++/*162088*/ OPC_MoveChild, 26, ++/*162090*/ OPC_CheckInteger, 7, ++/*162092*/ OPC_CheckType, MVT::i32, ++/*162094*/ OPC_MoveParent, ++/*162095*/ OPC_MoveChild, 27, ++/*162097*/ OPC_CheckInteger, 7, ++/*162099*/ OPC_CheckType, MVT::i32, ++/*162101*/ OPC_MoveParent, ++/*162102*/ OPC_MoveChild, 28, ++/*162104*/ OPC_CheckInteger, 7, ++/*162106*/ OPC_CheckType, MVT::i32, ++/*162108*/ OPC_MoveParent, ++/*162109*/ OPC_MoveChild, 29, ++/*162111*/ OPC_CheckInteger, 7, ++/*162113*/ OPC_CheckType, MVT::i32, ++/*162115*/ OPC_MoveParent, ++/*162116*/ OPC_MoveChild, 30, ++/*162118*/ OPC_CheckInteger, 7, ++/*162120*/ OPC_CheckType, MVT::i32, ++/*162122*/ OPC_MoveParent, ++/*162123*/ OPC_MoveChild, 31, ++/*162125*/ OPC_CheckInteger, 7, ++/*162127*/ OPC_CheckType, MVT::i32, ++/*162129*/ OPC_MoveParent, ++/*162130*/ OPC_CheckType, MVT::v32i8, ++/*162132*/ OPC_MoveParent, ++/*162133*/ OPC_MoveParent, ++/*162134*/ OPC_MoveParent, ++/*162135*/ OPC_MoveChild1, ++/*162136*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*162139*/ OPC_CheckChild0Integer, 1, ++/*162141*/ OPC_CheckChild0Type, MVT::i32, ++/*162143*/ OPC_CheckChild1Integer, 1, ++/*162145*/ OPC_CheckChild1Type, MVT::i32, ++/*162147*/ OPC_CheckChild2Integer, 1, ++/*162149*/ OPC_CheckChild2Type, MVT::i32, ++/*162151*/ OPC_CheckChild3Integer, 1, ++/*162153*/ OPC_CheckChild3Type, MVT::i32, ++/*162155*/ OPC_CheckChild4Integer, 1, ++/*162157*/ OPC_CheckChild4Type, MVT::i32, ++/*162159*/ OPC_MoveChild5, ++/*162160*/ OPC_CheckInteger, 1, ++/*162162*/ OPC_CheckType, MVT::i32, ++/*162164*/ OPC_MoveParent, ++/*162165*/ OPC_MoveChild6, ++/*162166*/ OPC_CheckInteger, 1, ++/*162168*/ OPC_CheckType, MVT::i32, ++/*162170*/ OPC_MoveParent, ++/*162171*/ OPC_MoveChild7, ++/*162172*/ OPC_CheckInteger, 1, ++/*162174*/ OPC_CheckType, MVT::i32, ++/*162176*/ OPC_MoveParent, ++/*162177*/ OPC_MoveChild, 8, ++/*162179*/ OPC_CheckInteger, 1, ++/*162181*/ OPC_CheckType, MVT::i32, ++/*162183*/ OPC_MoveParent, ++/*162184*/ OPC_MoveChild, 9, ++/*162186*/ OPC_CheckInteger, 1, ++/*162188*/ OPC_CheckType, MVT::i32, ++/*162190*/ OPC_MoveParent, ++/*162191*/ OPC_MoveChild, 10, ++/*162193*/ OPC_CheckInteger, 1, ++/*162195*/ OPC_CheckType, MVT::i32, ++/*162197*/ OPC_MoveParent, ++/*162198*/ OPC_MoveChild, 11, ++/*162200*/ OPC_CheckInteger, 1, ++/*162202*/ OPC_CheckType, MVT::i32, ++/*162204*/ OPC_MoveParent, ++/*162205*/ OPC_MoveChild, 12, ++/*162207*/ OPC_CheckInteger, 1, ++/*162209*/ OPC_CheckType, MVT::i32, ++/*162211*/ OPC_MoveParent, ++/*162212*/ OPC_MoveChild, 13, ++/*162214*/ OPC_CheckInteger, 1, ++/*162216*/ OPC_CheckType, MVT::i32, ++/*162218*/ OPC_MoveParent, ++/*162219*/ OPC_MoveChild, 14, ++/*162221*/ OPC_CheckInteger, 1, ++/*162223*/ OPC_CheckType, MVT::i32, ++/*162225*/ OPC_MoveParent, ++/*162226*/ OPC_MoveChild, 15, ++/*162228*/ OPC_CheckInteger, 1, ++/*162230*/ OPC_CheckType, MVT::i32, ++/*162232*/ OPC_MoveParent, ++/*162233*/ OPC_MoveChild, 16, ++/*162235*/ OPC_CheckInteger, 1, ++/*162237*/ OPC_CheckType, MVT::i32, ++/*162239*/ OPC_MoveParent, ++/*162240*/ OPC_MoveChild, 17, ++/*162242*/ OPC_CheckInteger, 1, ++/*162244*/ OPC_CheckType, MVT::i32, ++/*162246*/ OPC_MoveParent, ++/*162247*/ OPC_MoveChild, 18, ++/*162249*/ OPC_CheckInteger, 1, ++/*162251*/ OPC_CheckType, MVT::i32, ++/*162253*/ OPC_MoveParent, ++/*162254*/ OPC_MoveChild, 19, ++/*162256*/ OPC_CheckInteger, 1, ++/*162258*/ OPC_CheckType, MVT::i32, ++/*162260*/ OPC_MoveParent, ++/*162261*/ OPC_MoveChild, 20, ++/*162263*/ OPC_CheckInteger, 1, ++/*162265*/ OPC_CheckType, MVT::i32, ++/*162267*/ OPC_MoveParent, ++/*162268*/ OPC_MoveChild, 21, ++/*162270*/ OPC_CheckInteger, 1, ++/*162272*/ OPC_CheckType, MVT::i32, ++/*162274*/ OPC_MoveParent, ++/*162275*/ OPC_MoveChild, 22, ++/*162277*/ OPC_CheckInteger, 1, ++/*162279*/ OPC_CheckType, MVT::i32, ++/*162281*/ OPC_MoveParent, ++/*162282*/ OPC_MoveChild, 23, ++/*162284*/ OPC_CheckInteger, 1, ++/*162286*/ OPC_CheckType, MVT::i32, ++/*162288*/ OPC_MoveParent, ++/*162289*/ OPC_MoveChild, 24, ++/*162291*/ OPC_CheckInteger, 1, ++/*162293*/ OPC_CheckType, MVT::i32, ++/*162295*/ OPC_MoveParent, ++/*162296*/ OPC_MoveChild, 25, ++/*162298*/ OPC_CheckInteger, 1, ++/*162300*/ OPC_CheckType, MVT::i32, ++/*162302*/ OPC_MoveParent, ++/*162303*/ OPC_MoveChild, 26, ++/*162305*/ OPC_CheckInteger, 1, ++/*162307*/ OPC_CheckType, MVT::i32, ++/*162309*/ OPC_MoveParent, ++/*162310*/ OPC_MoveChild, 27, ++/*162312*/ OPC_CheckInteger, 1, ++/*162314*/ OPC_CheckType, MVT::i32, ++/*162316*/ OPC_MoveParent, ++/*162317*/ OPC_MoveChild, 28, ++/*162319*/ OPC_CheckInteger, 1, ++/*162321*/ OPC_CheckType, MVT::i32, ++/*162323*/ OPC_MoveParent, ++/*162324*/ OPC_MoveChild, 29, ++/*162326*/ OPC_CheckInteger, 1, ++/*162328*/ OPC_CheckType, MVT::i32, ++/*162330*/ OPC_MoveParent, ++/*162331*/ OPC_MoveChild, 30, ++/*162333*/ OPC_CheckInteger, 1, ++/*162335*/ OPC_CheckType, MVT::i32, ++/*162337*/ OPC_MoveParent, ++/*162338*/ OPC_MoveChild, 31, ++/*162340*/ OPC_CheckInteger, 1, ++/*162342*/ OPC_CheckType, MVT::i32, ++/*162344*/ OPC_MoveParent, ++/*162345*/ OPC_CheckType, MVT::v32i8, ++/*162347*/ OPC_MoveParent, ++/*162348*/ OPC_CheckType, MVT::v32i8, ++/*162350*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*162352*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b)), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b), LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*162360*/ /*Scope*/ 17|128,5/*657*/, /*->163019*/ ++/*162362*/ OPC_CheckChild0Same, 1, ++/*162364*/ OPC_MoveChild1, ++/*162365*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*162368*/ OPC_CheckChild0Integer, 1, ++/*162370*/ OPC_CheckChild0Type, MVT::i32, ++/*162372*/ OPC_CheckChild1Integer, 1, ++/*162374*/ OPC_CheckChild1Type, MVT::i32, ++/*162376*/ OPC_CheckChild2Integer, 1, ++/*162378*/ OPC_CheckChild2Type, MVT::i32, ++/*162380*/ OPC_CheckChild3Integer, 1, ++/*162382*/ OPC_CheckChild3Type, MVT::i32, ++/*162384*/ OPC_CheckChild4Integer, 1, ++/*162386*/ OPC_CheckChild4Type, MVT::i32, ++/*162388*/ OPC_MoveChild5, ++/*162389*/ OPC_CheckInteger, 1, ++/*162391*/ OPC_CheckType, MVT::i32, ++/*162393*/ OPC_MoveParent, ++/*162394*/ OPC_MoveChild6, ++/*162395*/ OPC_CheckInteger, 1, ++/*162397*/ OPC_CheckType, MVT::i32, ++/*162399*/ OPC_MoveParent, ++/*162400*/ OPC_MoveChild7, ++/*162401*/ OPC_CheckInteger, 1, ++/*162403*/ OPC_CheckType, MVT::i32, ++/*162405*/ OPC_MoveParent, ++/*162406*/ OPC_MoveChild, 8, ++/*162408*/ OPC_CheckInteger, 1, ++/*162410*/ OPC_CheckType, MVT::i32, ++/*162412*/ OPC_MoveParent, ++/*162413*/ OPC_MoveChild, 9, ++/*162415*/ OPC_CheckInteger, 1, ++/*162417*/ OPC_CheckType, MVT::i32, ++/*162419*/ OPC_MoveParent, ++/*162420*/ OPC_MoveChild, 10, ++/*162422*/ OPC_CheckInteger, 1, ++/*162424*/ OPC_CheckType, MVT::i32, ++/*162426*/ OPC_MoveParent, ++/*162427*/ OPC_MoveChild, 11, ++/*162429*/ OPC_CheckInteger, 1, ++/*162431*/ OPC_CheckType, MVT::i32, ++/*162433*/ OPC_MoveParent, ++/*162434*/ OPC_MoveChild, 12, ++/*162436*/ OPC_CheckInteger, 1, ++/*162438*/ OPC_CheckType, MVT::i32, ++/*162440*/ OPC_MoveParent, ++/*162441*/ OPC_MoveChild, 13, ++/*162443*/ OPC_CheckInteger, 1, ++/*162445*/ OPC_CheckType, MVT::i32, ++/*162447*/ OPC_MoveParent, ++/*162448*/ OPC_MoveChild, 14, ++/*162450*/ OPC_CheckInteger, 1, ++/*162452*/ OPC_CheckType, MVT::i32, ++/*162454*/ OPC_MoveParent, ++/*162455*/ OPC_MoveChild, 15, ++/*162457*/ OPC_CheckInteger, 1, ++/*162459*/ OPC_CheckType, MVT::i32, ++/*162461*/ OPC_MoveParent, ++/*162462*/ OPC_MoveChild, 16, ++/*162464*/ OPC_CheckInteger, 1, ++/*162466*/ OPC_CheckType, MVT::i32, ++/*162468*/ OPC_MoveParent, ++/*162469*/ OPC_MoveChild, 17, ++/*162471*/ OPC_CheckInteger, 1, ++/*162473*/ OPC_CheckType, MVT::i32, ++/*162475*/ OPC_MoveParent, ++/*162476*/ OPC_MoveChild, 18, ++/*162478*/ OPC_CheckInteger, 1, ++/*162480*/ OPC_CheckType, MVT::i32, ++/*162482*/ OPC_MoveParent, ++/*162483*/ OPC_MoveChild, 19, ++/*162485*/ OPC_CheckInteger, 1, ++/*162487*/ OPC_CheckType, MVT::i32, ++/*162489*/ OPC_MoveParent, ++/*162490*/ OPC_MoveChild, 20, ++/*162492*/ OPC_CheckInteger, 1, ++/*162494*/ OPC_CheckType, MVT::i32, ++/*162496*/ OPC_MoveParent, ++/*162497*/ OPC_MoveChild, 21, ++/*162499*/ OPC_CheckInteger, 1, ++/*162501*/ OPC_CheckType, MVT::i32, ++/*162503*/ OPC_MoveParent, ++/*162504*/ OPC_MoveChild, 22, ++/*162506*/ OPC_CheckInteger, 1, ++/*162508*/ OPC_CheckType, MVT::i32, ++/*162510*/ OPC_MoveParent, ++/*162511*/ OPC_MoveChild, 23, ++/*162513*/ OPC_CheckInteger, 1, ++/*162515*/ OPC_CheckType, MVT::i32, ++/*162517*/ OPC_MoveParent, ++/*162518*/ OPC_MoveChild, 24, ++/*162520*/ OPC_CheckInteger, 1, ++/*162522*/ OPC_CheckType, MVT::i32, ++/*162524*/ OPC_MoveParent, ++/*162525*/ OPC_MoveChild, 25, ++/*162527*/ OPC_CheckInteger, 1, ++/*162529*/ OPC_CheckType, MVT::i32, ++/*162531*/ OPC_MoveParent, ++/*162532*/ OPC_MoveChild, 26, ++/*162534*/ OPC_CheckInteger, 1, ++/*162536*/ OPC_CheckType, MVT::i32, ++/*162538*/ OPC_MoveParent, ++/*162539*/ OPC_MoveChild, 27, ++/*162541*/ OPC_CheckInteger, 1, ++/*162543*/ OPC_CheckType, MVT::i32, ++/*162545*/ OPC_MoveParent, ++/*162546*/ OPC_MoveChild, 28, ++/*162548*/ OPC_CheckInteger, 1, ++/*162550*/ OPC_CheckType, MVT::i32, ++/*162552*/ OPC_MoveParent, ++/*162553*/ OPC_MoveChild, 29, ++/*162555*/ OPC_CheckInteger, 1, ++/*162557*/ OPC_CheckType, MVT::i32, ++/*162559*/ OPC_MoveParent, ++/*162560*/ OPC_MoveChild, 30, ++/*162562*/ OPC_CheckInteger, 1, ++/*162564*/ OPC_CheckType, MVT::i32, ++/*162566*/ OPC_MoveParent, ++/*162567*/ OPC_MoveChild, 31, ++/*162569*/ OPC_CheckInteger, 1, ++/*162571*/ OPC_CheckType, MVT::i32, ++/*162573*/ OPC_MoveParent, ++/*162574*/ OPC_MoveParent, ++/*162575*/ OPC_MoveParent, ++/*162576*/ OPC_CheckChild1Same, 0, ++/*162578*/ OPC_MoveParent, ++/*162579*/ OPC_MoveChild1, ++/*162580*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*162583*/ OPC_CheckChild0Integer, 7, ++/*162585*/ OPC_CheckChild0Type, MVT::i32, ++/*162587*/ OPC_CheckChild1Integer, 7, ++/*162589*/ OPC_CheckChild1Type, MVT::i32, ++/*162591*/ OPC_CheckChild2Integer, 7, ++/*162593*/ OPC_CheckChild2Type, MVT::i32, ++/*162595*/ OPC_CheckChild3Integer, 7, ++/*162597*/ OPC_CheckChild3Type, MVT::i32, ++/*162599*/ OPC_CheckChild4Integer, 7, ++/*162601*/ OPC_CheckChild4Type, MVT::i32, ++/*162603*/ OPC_MoveChild5, ++/*162604*/ OPC_CheckInteger, 7, ++/*162606*/ OPC_CheckType, MVT::i32, ++/*162608*/ OPC_MoveParent, ++/*162609*/ OPC_MoveChild6, ++/*162610*/ OPC_CheckInteger, 7, ++/*162612*/ OPC_CheckType, MVT::i32, ++/*162614*/ OPC_MoveParent, ++/*162615*/ OPC_MoveChild7, ++/*162616*/ OPC_CheckInteger, 7, ++/*162618*/ OPC_CheckType, MVT::i32, ++/*162620*/ OPC_MoveParent, ++/*162621*/ OPC_MoveChild, 8, ++/*162623*/ OPC_CheckInteger, 7, ++/*162625*/ OPC_CheckType, MVT::i32, ++/*162627*/ OPC_MoveParent, ++/*162628*/ OPC_MoveChild, 9, ++/*162630*/ OPC_CheckInteger, 7, ++/*162632*/ OPC_CheckType, MVT::i32, ++/*162634*/ OPC_MoveParent, ++/*162635*/ OPC_MoveChild, 10, ++/*162637*/ OPC_CheckInteger, 7, ++/*162639*/ OPC_CheckType, MVT::i32, ++/*162641*/ OPC_MoveParent, ++/*162642*/ OPC_MoveChild, 11, ++/*162644*/ OPC_CheckInteger, 7, ++/*162646*/ OPC_CheckType, MVT::i32, ++/*162648*/ OPC_MoveParent, ++/*162649*/ OPC_MoveChild, 12, ++/*162651*/ OPC_CheckInteger, 7, ++/*162653*/ OPC_CheckType, MVT::i32, ++/*162655*/ OPC_MoveParent, ++/*162656*/ OPC_MoveChild, 13, ++/*162658*/ OPC_CheckInteger, 7, ++/*162660*/ OPC_CheckType, MVT::i32, ++/*162662*/ OPC_MoveParent, ++/*162663*/ OPC_MoveChild, 14, ++/*162665*/ OPC_CheckInteger, 7, ++/*162667*/ OPC_CheckType, MVT::i32, ++/*162669*/ OPC_MoveParent, ++/*162670*/ OPC_MoveChild, 15, ++/*162672*/ OPC_CheckInteger, 7, ++/*162674*/ OPC_CheckType, MVT::i32, ++/*162676*/ OPC_MoveParent, ++/*162677*/ OPC_MoveChild, 16, ++/*162679*/ OPC_CheckInteger, 7, ++/*162681*/ OPC_CheckType, MVT::i32, ++/*162683*/ OPC_MoveParent, ++/*162684*/ OPC_MoveChild, 17, ++/*162686*/ OPC_CheckInteger, 7, ++/*162688*/ OPC_CheckType, MVT::i32, ++/*162690*/ OPC_MoveParent, ++/*162691*/ OPC_MoveChild, 18, ++/*162693*/ OPC_CheckInteger, 7, ++/*162695*/ OPC_CheckType, MVT::i32, ++/*162697*/ OPC_MoveParent, ++/*162698*/ OPC_MoveChild, 19, ++/*162700*/ OPC_CheckInteger, 7, ++/*162702*/ OPC_CheckType, MVT::i32, ++/*162704*/ OPC_MoveParent, ++/*162705*/ OPC_MoveChild, 20, ++/*162707*/ OPC_CheckInteger, 7, ++/*162709*/ OPC_CheckType, MVT::i32, ++/*162711*/ OPC_MoveParent, ++/*162712*/ OPC_MoveChild, 21, ++/*162714*/ OPC_CheckInteger, 7, ++/*162716*/ OPC_CheckType, MVT::i32, ++/*162718*/ OPC_MoveParent, ++/*162719*/ OPC_MoveChild, 22, ++/*162721*/ OPC_CheckInteger, 7, ++/*162723*/ OPC_CheckType, MVT::i32, ++/*162725*/ OPC_MoveParent, ++/*162726*/ OPC_MoveChild, 23, ++/*162728*/ OPC_CheckInteger, 7, ++/*162730*/ OPC_CheckType, MVT::i32, ++/*162732*/ OPC_MoveParent, ++/*162733*/ OPC_MoveChild, 24, ++/*162735*/ OPC_CheckInteger, 7, ++/*162737*/ OPC_CheckType, MVT::i32, ++/*162739*/ OPC_MoveParent, ++/*162740*/ OPC_MoveChild, 25, ++/*162742*/ OPC_CheckInteger, 7, ++/*162744*/ OPC_CheckType, MVT::i32, ++/*162746*/ OPC_MoveParent, ++/*162747*/ OPC_MoveChild, 26, ++/*162749*/ OPC_CheckInteger, 7, ++/*162751*/ OPC_CheckType, MVT::i32, ++/*162753*/ OPC_MoveParent, ++/*162754*/ OPC_MoveChild, 27, ++/*162756*/ OPC_CheckInteger, 7, ++/*162758*/ OPC_CheckType, MVT::i32, ++/*162760*/ OPC_MoveParent, ++/*162761*/ OPC_MoveChild, 28, ++/*162763*/ OPC_CheckInteger, 7, ++/*162765*/ OPC_CheckType, MVT::i32, ++/*162767*/ OPC_MoveParent, ++/*162768*/ OPC_MoveChild, 29, ++/*162770*/ OPC_CheckInteger, 7, ++/*162772*/ OPC_CheckType, MVT::i32, ++/*162774*/ OPC_MoveParent, ++/*162775*/ OPC_MoveChild, 30, ++/*162777*/ OPC_CheckInteger, 7, ++/*162779*/ OPC_CheckType, MVT::i32, ++/*162781*/ OPC_MoveParent, ++/*162782*/ OPC_MoveChild, 31, ++/*162784*/ OPC_CheckInteger, 7, ++/*162786*/ OPC_CheckType, MVT::i32, ++/*162788*/ OPC_MoveParent, ++/*162789*/ OPC_CheckType, MVT::v32i8, ++/*162791*/ OPC_MoveParent, ++/*162792*/ OPC_MoveParent, ++/*162793*/ OPC_MoveParent, ++/*162794*/ OPC_MoveChild1, ++/*162795*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*162798*/ OPC_CheckChild0Integer, 1, ++/*162800*/ OPC_CheckChild0Type, MVT::i32, ++/*162802*/ OPC_CheckChild1Integer, 1, ++/*162804*/ OPC_CheckChild1Type, MVT::i32, ++/*162806*/ OPC_CheckChild2Integer, 1, ++/*162808*/ OPC_CheckChild2Type, MVT::i32, ++/*162810*/ OPC_CheckChild3Integer, 1, ++/*162812*/ OPC_CheckChild3Type, MVT::i32, ++/*162814*/ OPC_CheckChild4Integer, 1, ++/*162816*/ OPC_CheckChild4Type, MVT::i32, ++/*162818*/ OPC_MoveChild5, ++/*162819*/ OPC_CheckInteger, 1, ++/*162821*/ OPC_CheckType, MVT::i32, ++/*162823*/ OPC_MoveParent, ++/*162824*/ OPC_MoveChild6, ++/*162825*/ OPC_CheckInteger, 1, ++/*162827*/ OPC_CheckType, MVT::i32, ++/*162829*/ OPC_MoveParent, ++/*162830*/ OPC_MoveChild7, ++/*162831*/ OPC_CheckInteger, 1, ++/*162833*/ OPC_CheckType, MVT::i32, ++/*162835*/ OPC_MoveParent, ++/*162836*/ OPC_MoveChild, 8, ++/*162838*/ OPC_CheckInteger, 1, ++/*162840*/ OPC_CheckType, MVT::i32, ++/*162842*/ OPC_MoveParent, ++/*162843*/ OPC_MoveChild, 9, ++/*162845*/ OPC_CheckInteger, 1, ++/*162847*/ OPC_CheckType, MVT::i32, ++/*162849*/ OPC_MoveParent, ++/*162850*/ OPC_MoveChild, 10, ++/*162852*/ OPC_CheckInteger, 1, ++/*162854*/ OPC_CheckType, MVT::i32, ++/*162856*/ OPC_MoveParent, ++/*162857*/ OPC_MoveChild, 11, ++/*162859*/ OPC_CheckInteger, 1, ++/*162861*/ OPC_CheckType, MVT::i32, ++/*162863*/ OPC_MoveParent, ++/*162864*/ OPC_MoveChild, 12, ++/*162866*/ OPC_CheckInteger, 1, ++/*162868*/ OPC_CheckType, MVT::i32, ++/*162870*/ OPC_MoveParent, ++/*162871*/ OPC_MoveChild, 13, ++/*162873*/ OPC_CheckInteger, 1, ++/*162875*/ OPC_CheckType, MVT::i32, ++/*162877*/ OPC_MoveParent, ++/*162878*/ OPC_MoveChild, 14, ++/*162880*/ OPC_CheckInteger, 1, ++/*162882*/ OPC_CheckType, MVT::i32, ++/*162884*/ OPC_MoveParent, ++/*162885*/ OPC_MoveChild, 15, ++/*162887*/ OPC_CheckInteger, 1, ++/*162889*/ OPC_CheckType, MVT::i32, ++/*162891*/ OPC_MoveParent, ++/*162892*/ OPC_MoveChild, 16, ++/*162894*/ OPC_CheckInteger, 1, ++/*162896*/ OPC_CheckType, MVT::i32, ++/*162898*/ OPC_MoveParent, ++/*162899*/ OPC_MoveChild, 17, ++/*162901*/ OPC_CheckInteger, 1, ++/*162903*/ OPC_CheckType, MVT::i32, ++/*162905*/ OPC_MoveParent, ++/*162906*/ OPC_MoveChild, 18, ++/*162908*/ OPC_CheckInteger, 1, ++/*162910*/ OPC_CheckType, MVT::i32, ++/*162912*/ OPC_MoveParent, ++/*162913*/ OPC_MoveChild, 19, ++/*162915*/ OPC_CheckInteger, 1, ++/*162917*/ OPC_CheckType, MVT::i32, ++/*162919*/ OPC_MoveParent, ++/*162920*/ OPC_MoveChild, 20, ++/*162922*/ OPC_CheckInteger, 1, ++/*162924*/ OPC_CheckType, MVT::i32, ++/*162926*/ OPC_MoveParent, ++/*162927*/ OPC_MoveChild, 21, ++/*162929*/ OPC_CheckInteger, 1, ++/*162931*/ OPC_CheckType, MVT::i32, ++/*162933*/ OPC_MoveParent, ++/*162934*/ OPC_MoveChild, 22, ++/*162936*/ OPC_CheckInteger, 1, ++/*162938*/ OPC_CheckType, MVT::i32, ++/*162940*/ OPC_MoveParent, ++/*162941*/ OPC_MoveChild, 23, ++/*162943*/ OPC_CheckInteger, 1, ++/*162945*/ OPC_CheckType, MVT::i32, ++/*162947*/ OPC_MoveParent, ++/*162948*/ OPC_MoveChild, 24, ++/*162950*/ OPC_CheckInteger, 1, ++/*162952*/ OPC_CheckType, MVT::i32, ++/*162954*/ OPC_MoveParent, ++/*162955*/ OPC_MoveChild, 25, ++/*162957*/ OPC_CheckInteger, 1, ++/*162959*/ OPC_CheckType, MVT::i32, ++/*162961*/ OPC_MoveParent, ++/*162962*/ OPC_MoveChild, 26, ++/*162964*/ OPC_CheckInteger, 1, ++/*162966*/ OPC_CheckType, MVT::i32, ++/*162968*/ OPC_MoveParent, ++/*162969*/ OPC_MoveChild, 27, ++/*162971*/ OPC_CheckInteger, 1, ++/*162973*/ OPC_CheckType, MVT::i32, ++/*162975*/ OPC_MoveParent, ++/*162976*/ OPC_MoveChild, 28, ++/*162978*/ OPC_CheckInteger, 1, ++/*162980*/ OPC_CheckType, MVT::i32, ++/*162982*/ OPC_MoveParent, ++/*162983*/ OPC_MoveChild, 29, ++/*162985*/ OPC_CheckInteger, 1, ++/*162987*/ OPC_CheckType, MVT::i32, ++/*162989*/ OPC_MoveParent, ++/*162990*/ OPC_MoveChild, 30, ++/*162992*/ OPC_CheckInteger, 1, ++/*162994*/ OPC_CheckType, MVT::i32, ++/*162996*/ OPC_MoveParent, ++/*162997*/ OPC_MoveChild, 31, ++/*162999*/ OPC_CheckInteger, 1, ++/*163001*/ OPC_CheckType, MVT::i32, ++/*163003*/ OPC_MoveParent, ++/*163004*/ OPC_CheckType, MVT::v32i8, ++/*163006*/ OPC_MoveParent, ++/*163007*/ OPC_CheckType, MVT::v32i8, ++/*163009*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*163011*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b)), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*163019*/ /*Scope*/ 17|128,5/*657*/, /*->163678*/ ++/*163021*/ OPC_CheckChild0Same, 0, ++/*163023*/ OPC_CheckChild1Same, 1, ++/*163025*/ OPC_MoveParent, ++/*163026*/ OPC_MoveChild1, ++/*163027*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*163030*/ OPC_CheckChild0Integer, 1, ++/*163032*/ OPC_CheckChild0Type, MVT::i32, ++/*163034*/ OPC_CheckChild1Integer, 1, ++/*163036*/ OPC_CheckChild1Type, MVT::i32, ++/*163038*/ OPC_CheckChild2Integer, 1, ++/*163040*/ OPC_CheckChild2Type, MVT::i32, ++/*163042*/ OPC_CheckChild3Integer, 1, ++/*163044*/ OPC_CheckChild3Type, MVT::i32, ++/*163046*/ OPC_CheckChild4Integer, 1, ++/*163048*/ OPC_CheckChild4Type, MVT::i32, ++/*163050*/ OPC_MoveChild5, ++/*163051*/ OPC_CheckInteger, 1, ++/*163053*/ OPC_CheckType, MVT::i32, ++/*163055*/ OPC_MoveParent, ++/*163056*/ OPC_MoveChild6, ++/*163057*/ OPC_CheckInteger, 1, ++/*163059*/ OPC_CheckType, MVT::i32, ++/*163061*/ OPC_MoveParent, ++/*163062*/ OPC_MoveChild7, ++/*163063*/ OPC_CheckInteger, 1, ++/*163065*/ OPC_CheckType, MVT::i32, ++/*163067*/ OPC_MoveParent, ++/*163068*/ OPC_MoveChild, 8, ++/*163070*/ OPC_CheckInteger, 1, ++/*163072*/ OPC_CheckType, MVT::i32, ++/*163074*/ OPC_MoveParent, ++/*163075*/ OPC_MoveChild, 9, ++/*163077*/ OPC_CheckInteger, 1, ++/*163079*/ OPC_CheckType, MVT::i32, ++/*163081*/ OPC_MoveParent, ++/*163082*/ OPC_MoveChild, 10, ++/*163084*/ OPC_CheckInteger, 1, ++/*163086*/ OPC_CheckType, MVT::i32, ++/*163088*/ OPC_MoveParent, ++/*163089*/ OPC_MoveChild, 11, ++/*163091*/ OPC_CheckInteger, 1, ++/*163093*/ OPC_CheckType, MVT::i32, ++/*163095*/ OPC_MoveParent, ++/*163096*/ OPC_MoveChild, 12, ++/*163098*/ OPC_CheckInteger, 1, ++/*163100*/ OPC_CheckType, MVT::i32, ++/*163102*/ OPC_MoveParent, ++/*163103*/ OPC_MoveChild, 13, ++/*163105*/ OPC_CheckInteger, 1, ++/*163107*/ OPC_CheckType, MVT::i32, ++/*163109*/ OPC_MoveParent, ++/*163110*/ OPC_MoveChild, 14, ++/*163112*/ OPC_CheckInteger, 1, ++/*163114*/ OPC_CheckType, MVT::i32, ++/*163116*/ OPC_MoveParent, ++/*163117*/ OPC_MoveChild, 15, ++/*163119*/ OPC_CheckInteger, 1, ++/*163121*/ OPC_CheckType, MVT::i32, ++/*163123*/ OPC_MoveParent, ++/*163124*/ OPC_MoveChild, 16, ++/*163126*/ OPC_CheckInteger, 1, ++/*163128*/ OPC_CheckType, MVT::i32, ++/*163130*/ OPC_MoveParent, ++/*163131*/ OPC_MoveChild, 17, ++/*163133*/ OPC_CheckInteger, 1, ++/*163135*/ OPC_CheckType, MVT::i32, ++/*163137*/ OPC_MoveParent, ++/*163138*/ OPC_MoveChild, 18, ++/*163140*/ OPC_CheckInteger, 1, ++/*163142*/ OPC_CheckType, MVT::i32, ++/*163144*/ OPC_MoveParent, ++/*163145*/ OPC_MoveChild, 19, ++/*163147*/ OPC_CheckInteger, 1, ++/*163149*/ OPC_CheckType, MVT::i32, ++/*163151*/ OPC_MoveParent, ++/*163152*/ OPC_MoveChild, 20, ++/*163154*/ OPC_CheckInteger, 1, ++/*163156*/ OPC_CheckType, MVT::i32, ++/*163158*/ OPC_MoveParent, ++/*163159*/ OPC_MoveChild, 21, ++/*163161*/ OPC_CheckInteger, 1, ++/*163163*/ OPC_CheckType, MVT::i32, ++/*163165*/ OPC_MoveParent, ++/*163166*/ OPC_MoveChild, 22, ++/*163168*/ OPC_CheckInteger, 1, ++/*163170*/ OPC_CheckType, MVT::i32, ++/*163172*/ OPC_MoveParent, ++/*163173*/ OPC_MoveChild, 23, ++/*163175*/ OPC_CheckInteger, 1, ++/*163177*/ OPC_CheckType, MVT::i32, ++/*163179*/ OPC_MoveParent, ++/*163180*/ OPC_MoveChild, 24, ++/*163182*/ OPC_CheckInteger, 1, ++/*163184*/ OPC_CheckType, MVT::i32, ++/*163186*/ OPC_MoveParent, ++/*163187*/ OPC_MoveChild, 25, ++/*163189*/ OPC_CheckInteger, 1, ++/*163191*/ OPC_CheckType, MVT::i32, ++/*163193*/ OPC_MoveParent, ++/*163194*/ OPC_MoveChild, 26, ++/*163196*/ OPC_CheckInteger, 1, ++/*163198*/ OPC_CheckType, MVT::i32, ++/*163200*/ OPC_MoveParent, ++/*163201*/ OPC_MoveChild, 27, ++/*163203*/ OPC_CheckInteger, 1, ++/*163205*/ OPC_CheckType, MVT::i32, ++/*163207*/ OPC_MoveParent, ++/*163208*/ OPC_MoveChild, 28, ++/*163210*/ OPC_CheckInteger, 1, ++/*163212*/ OPC_CheckType, MVT::i32, ++/*163214*/ OPC_MoveParent, ++/*163215*/ OPC_MoveChild, 29, ++/*163217*/ OPC_CheckInteger, 1, ++/*163219*/ OPC_CheckType, MVT::i32, ++/*163221*/ OPC_MoveParent, ++/*163222*/ OPC_MoveChild, 30, ++/*163224*/ OPC_CheckInteger, 1, ++/*163226*/ OPC_CheckType, MVT::i32, ++/*163228*/ OPC_MoveParent, ++/*163229*/ OPC_MoveChild, 31, ++/*163231*/ OPC_CheckInteger, 1, ++/*163233*/ OPC_CheckType, MVT::i32, ++/*163235*/ OPC_MoveParent, ++/*163236*/ OPC_MoveParent, ++/*163237*/ OPC_MoveParent, ++/*163238*/ OPC_MoveChild1, ++/*163239*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*163242*/ OPC_CheckChild0Integer, 7, ++/*163244*/ OPC_CheckChild0Type, MVT::i32, ++/*163246*/ OPC_CheckChild1Integer, 7, ++/*163248*/ OPC_CheckChild1Type, MVT::i32, ++/*163250*/ OPC_CheckChild2Integer, 7, ++/*163252*/ OPC_CheckChild2Type, MVT::i32, ++/*163254*/ OPC_CheckChild3Integer, 7, ++/*163256*/ OPC_CheckChild3Type, MVT::i32, ++/*163258*/ OPC_CheckChild4Integer, 7, ++/*163260*/ OPC_CheckChild4Type, MVT::i32, ++/*163262*/ OPC_MoveChild5, ++/*163263*/ OPC_CheckInteger, 7, ++/*163265*/ OPC_CheckType, MVT::i32, ++/*163267*/ OPC_MoveParent, ++/*163268*/ OPC_MoveChild6, ++/*163269*/ OPC_CheckInteger, 7, ++/*163271*/ OPC_CheckType, MVT::i32, ++/*163273*/ OPC_MoveParent, ++/*163274*/ OPC_MoveChild7, ++/*163275*/ OPC_CheckInteger, 7, ++/*163277*/ OPC_CheckType, MVT::i32, ++/*163279*/ OPC_MoveParent, ++/*163280*/ OPC_MoveChild, 8, ++/*163282*/ OPC_CheckInteger, 7, ++/*163284*/ OPC_CheckType, MVT::i32, ++/*163286*/ OPC_MoveParent, ++/*163287*/ OPC_MoveChild, 9, ++/*163289*/ OPC_CheckInteger, 7, ++/*163291*/ OPC_CheckType, MVT::i32, ++/*163293*/ OPC_MoveParent, ++/*163294*/ OPC_MoveChild, 10, ++/*163296*/ OPC_CheckInteger, 7, ++/*163298*/ OPC_CheckType, MVT::i32, ++/*163300*/ OPC_MoveParent, ++/*163301*/ OPC_MoveChild, 11, ++/*163303*/ OPC_CheckInteger, 7, ++/*163305*/ OPC_CheckType, MVT::i32, ++/*163307*/ OPC_MoveParent, ++/*163308*/ OPC_MoveChild, 12, ++/*163310*/ OPC_CheckInteger, 7, ++/*163312*/ OPC_CheckType, MVT::i32, ++/*163314*/ OPC_MoveParent, ++/*163315*/ OPC_MoveChild, 13, ++/*163317*/ OPC_CheckInteger, 7, ++/*163319*/ OPC_CheckType, MVT::i32, ++/*163321*/ OPC_MoveParent, ++/*163322*/ OPC_MoveChild, 14, ++/*163324*/ OPC_CheckInteger, 7, ++/*163326*/ OPC_CheckType, MVT::i32, ++/*163328*/ OPC_MoveParent, ++/*163329*/ OPC_MoveChild, 15, ++/*163331*/ OPC_CheckInteger, 7, ++/*163333*/ OPC_CheckType, MVT::i32, ++/*163335*/ OPC_MoveParent, ++/*163336*/ OPC_MoveChild, 16, ++/*163338*/ OPC_CheckInteger, 7, ++/*163340*/ OPC_CheckType, MVT::i32, ++/*163342*/ OPC_MoveParent, ++/*163343*/ OPC_MoveChild, 17, ++/*163345*/ OPC_CheckInteger, 7, ++/*163347*/ OPC_CheckType, MVT::i32, ++/*163349*/ OPC_MoveParent, ++/*163350*/ OPC_MoveChild, 18, ++/*163352*/ OPC_CheckInteger, 7, ++/*163354*/ OPC_CheckType, MVT::i32, ++/*163356*/ OPC_MoveParent, ++/*163357*/ OPC_MoveChild, 19, ++/*163359*/ OPC_CheckInteger, 7, ++/*163361*/ OPC_CheckType, MVT::i32, ++/*163363*/ OPC_MoveParent, ++/*163364*/ OPC_MoveChild, 20, ++/*163366*/ OPC_CheckInteger, 7, ++/*163368*/ OPC_CheckType, MVT::i32, ++/*163370*/ OPC_MoveParent, ++/*163371*/ OPC_MoveChild, 21, ++/*163373*/ OPC_CheckInteger, 7, ++/*163375*/ OPC_CheckType, MVT::i32, ++/*163377*/ OPC_MoveParent, ++/*163378*/ OPC_MoveChild, 22, ++/*163380*/ OPC_CheckInteger, 7, ++/*163382*/ OPC_CheckType, MVT::i32, ++/*163384*/ OPC_MoveParent, ++/*163385*/ OPC_MoveChild, 23, ++/*163387*/ OPC_CheckInteger, 7, ++/*163389*/ OPC_CheckType, MVT::i32, ++/*163391*/ OPC_MoveParent, ++/*163392*/ OPC_MoveChild, 24, ++/*163394*/ OPC_CheckInteger, 7, ++/*163396*/ OPC_CheckType, MVT::i32, ++/*163398*/ OPC_MoveParent, ++/*163399*/ OPC_MoveChild, 25, ++/*163401*/ OPC_CheckInteger, 7, ++/*163403*/ OPC_CheckType, MVT::i32, ++/*163405*/ OPC_MoveParent, ++/*163406*/ OPC_MoveChild, 26, ++/*163408*/ OPC_CheckInteger, 7, ++/*163410*/ OPC_CheckType, MVT::i32, ++/*163412*/ OPC_MoveParent, ++/*163413*/ OPC_MoveChild, 27, ++/*163415*/ OPC_CheckInteger, 7, ++/*163417*/ OPC_CheckType, MVT::i32, ++/*163419*/ OPC_MoveParent, ++/*163420*/ OPC_MoveChild, 28, ++/*163422*/ OPC_CheckInteger, 7, ++/*163424*/ OPC_CheckType, MVT::i32, ++/*163426*/ OPC_MoveParent, ++/*163427*/ OPC_MoveChild, 29, ++/*163429*/ OPC_CheckInteger, 7, ++/*163431*/ OPC_CheckType, MVT::i32, ++/*163433*/ OPC_MoveParent, ++/*163434*/ OPC_MoveChild, 30, ++/*163436*/ OPC_CheckInteger, 7, ++/*163438*/ OPC_CheckType, MVT::i32, ++/*163440*/ OPC_MoveParent, ++/*163441*/ OPC_MoveChild, 31, ++/*163443*/ OPC_CheckInteger, 7, ++/*163445*/ OPC_CheckType, MVT::i32, ++/*163447*/ OPC_MoveParent, ++/*163448*/ OPC_CheckType, MVT::v32i8, ++/*163450*/ OPC_MoveParent, ++/*163451*/ OPC_MoveParent, ++/*163452*/ OPC_MoveParent, ++/*163453*/ OPC_MoveChild1, ++/*163454*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*163457*/ OPC_CheckChild0Integer, 1, ++/*163459*/ OPC_CheckChild0Type, MVT::i32, ++/*163461*/ OPC_CheckChild1Integer, 1, ++/*163463*/ OPC_CheckChild1Type, MVT::i32, ++/*163465*/ OPC_CheckChild2Integer, 1, ++/*163467*/ OPC_CheckChild2Type, MVT::i32, ++/*163469*/ OPC_CheckChild3Integer, 1, ++/*163471*/ OPC_CheckChild3Type, MVT::i32, ++/*163473*/ OPC_CheckChild4Integer, 1, ++/*163475*/ OPC_CheckChild4Type, MVT::i32, ++/*163477*/ OPC_MoveChild5, ++/*163478*/ OPC_CheckInteger, 1, ++/*163480*/ OPC_CheckType, MVT::i32, ++/*163482*/ OPC_MoveParent, ++/*163483*/ OPC_MoveChild6, ++/*163484*/ OPC_CheckInteger, 1, ++/*163486*/ OPC_CheckType, MVT::i32, ++/*163488*/ OPC_MoveParent, ++/*163489*/ OPC_MoveChild7, ++/*163490*/ OPC_CheckInteger, 1, ++/*163492*/ OPC_CheckType, MVT::i32, ++/*163494*/ OPC_MoveParent, ++/*163495*/ OPC_MoveChild, 8, ++/*163497*/ OPC_CheckInteger, 1, ++/*163499*/ OPC_CheckType, MVT::i32, ++/*163501*/ OPC_MoveParent, ++/*163502*/ OPC_MoveChild, 9, ++/*163504*/ OPC_CheckInteger, 1, ++/*163506*/ OPC_CheckType, MVT::i32, ++/*163508*/ OPC_MoveParent, ++/*163509*/ OPC_MoveChild, 10, ++/*163511*/ OPC_CheckInteger, 1, ++/*163513*/ OPC_CheckType, MVT::i32, ++/*163515*/ OPC_MoveParent, ++/*163516*/ OPC_MoveChild, 11, ++/*163518*/ OPC_CheckInteger, 1, ++/*163520*/ OPC_CheckType, MVT::i32, ++/*163522*/ OPC_MoveParent, ++/*163523*/ OPC_MoveChild, 12, ++/*163525*/ OPC_CheckInteger, 1, ++/*163527*/ OPC_CheckType, MVT::i32, ++/*163529*/ OPC_MoveParent, ++/*163530*/ OPC_MoveChild, 13, ++/*163532*/ OPC_CheckInteger, 1, ++/*163534*/ OPC_CheckType, MVT::i32, ++/*163536*/ OPC_MoveParent, ++/*163537*/ OPC_MoveChild, 14, ++/*163539*/ OPC_CheckInteger, 1, ++/*163541*/ OPC_CheckType, MVT::i32, ++/*163543*/ OPC_MoveParent, ++/*163544*/ OPC_MoveChild, 15, ++/*163546*/ OPC_CheckInteger, 1, ++/*163548*/ OPC_CheckType, MVT::i32, ++/*163550*/ OPC_MoveParent, ++/*163551*/ OPC_MoveChild, 16, ++/*163553*/ OPC_CheckInteger, 1, ++/*163555*/ OPC_CheckType, MVT::i32, ++/*163557*/ OPC_MoveParent, ++/*163558*/ OPC_MoveChild, 17, ++/*163560*/ OPC_CheckInteger, 1, ++/*163562*/ OPC_CheckType, MVT::i32, ++/*163564*/ OPC_MoveParent, ++/*163565*/ OPC_MoveChild, 18, ++/*163567*/ OPC_CheckInteger, 1, ++/*163569*/ OPC_CheckType, MVT::i32, ++/*163571*/ OPC_MoveParent, ++/*163572*/ OPC_MoveChild, 19, ++/*163574*/ OPC_CheckInteger, 1, ++/*163576*/ OPC_CheckType, MVT::i32, ++/*163578*/ OPC_MoveParent, ++/*163579*/ OPC_MoveChild, 20, ++/*163581*/ OPC_CheckInteger, 1, ++/*163583*/ OPC_CheckType, MVT::i32, ++/*163585*/ OPC_MoveParent, ++/*163586*/ OPC_MoveChild, 21, ++/*163588*/ OPC_CheckInteger, 1, ++/*163590*/ OPC_CheckType, MVT::i32, ++/*163592*/ OPC_MoveParent, ++/*163593*/ OPC_MoveChild, 22, ++/*163595*/ OPC_CheckInteger, 1, ++/*163597*/ OPC_CheckType, MVT::i32, ++/*163599*/ OPC_MoveParent, ++/*163600*/ OPC_MoveChild, 23, ++/*163602*/ OPC_CheckInteger, 1, ++/*163604*/ OPC_CheckType, MVT::i32, ++/*163606*/ OPC_MoveParent, ++/*163607*/ OPC_MoveChild, 24, ++/*163609*/ OPC_CheckInteger, 1, ++/*163611*/ OPC_CheckType, MVT::i32, ++/*163613*/ OPC_MoveParent, ++/*163614*/ OPC_MoveChild, 25, ++/*163616*/ OPC_CheckInteger, 1, ++/*163618*/ OPC_CheckType, MVT::i32, ++/*163620*/ OPC_MoveParent, ++/*163621*/ OPC_MoveChild, 26, ++/*163623*/ OPC_CheckInteger, 1, ++/*163625*/ OPC_CheckType, MVT::i32, ++/*163627*/ OPC_MoveParent, ++/*163628*/ OPC_MoveChild, 27, ++/*163630*/ OPC_CheckInteger, 1, ++/*163632*/ OPC_CheckType, MVT::i32, ++/*163634*/ OPC_MoveParent, ++/*163635*/ OPC_MoveChild, 28, ++/*163637*/ OPC_CheckInteger, 1, ++/*163639*/ OPC_CheckType, MVT::i32, ++/*163641*/ OPC_MoveParent, ++/*163642*/ OPC_MoveChild, 29, ++/*163644*/ OPC_CheckInteger, 1, ++/*163646*/ OPC_CheckType, MVT::i32, ++/*163648*/ OPC_MoveParent, ++/*163649*/ OPC_MoveChild, 30, ++/*163651*/ OPC_CheckInteger, 1, ++/*163653*/ OPC_CheckType, MVT::i32, ++/*163655*/ OPC_MoveParent, ++/*163656*/ OPC_MoveChild, 31, ++/*163658*/ OPC_CheckInteger, 1, ++/*163660*/ OPC_CheckType, MVT::i32, ++/*163662*/ OPC_MoveParent, ++/*163663*/ OPC_CheckType, MVT::v32i8, ++/*163665*/ OPC_MoveParent, ++/*163666*/ OPC_CheckType, MVT::v32i8, ++/*163668*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*163670*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b)), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*163678*/ /*Scope*/ 17|128,5/*657*/, /*->164337*/ ++/*163680*/ OPC_CheckChild0Same, 1, ++/*163682*/ OPC_CheckChild1Same, 0, ++/*163684*/ OPC_MoveParent, ++/*163685*/ OPC_MoveChild1, ++/*163686*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*163689*/ OPC_CheckChild0Integer, 1, ++/*163691*/ OPC_CheckChild0Type, MVT::i32, ++/*163693*/ OPC_CheckChild1Integer, 1, ++/*163695*/ OPC_CheckChild1Type, MVT::i32, ++/*163697*/ OPC_CheckChild2Integer, 1, ++/*163699*/ OPC_CheckChild2Type, MVT::i32, ++/*163701*/ OPC_CheckChild3Integer, 1, ++/*163703*/ OPC_CheckChild3Type, MVT::i32, ++/*163705*/ OPC_CheckChild4Integer, 1, ++/*163707*/ OPC_CheckChild4Type, MVT::i32, ++/*163709*/ OPC_MoveChild5, ++/*163710*/ OPC_CheckInteger, 1, ++/*163712*/ OPC_CheckType, MVT::i32, ++/*163714*/ OPC_MoveParent, ++/*163715*/ OPC_MoveChild6, ++/*163716*/ OPC_CheckInteger, 1, ++/*163718*/ OPC_CheckType, MVT::i32, ++/*163720*/ OPC_MoveParent, ++/*163721*/ OPC_MoveChild7, ++/*163722*/ OPC_CheckInteger, 1, ++/*163724*/ OPC_CheckType, MVT::i32, ++/*163726*/ OPC_MoveParent, ++/*163727*/ OPC_MoveChild, 8, ++/*163729*/ OPC_CheckInteger, 1, ++/*163731*/ OPC_CheckType, MVT::i32, ++/*163733*/ OPC_MoveParent, ++/*163734*/ OPC_MoveChild, 9, ++/*163736*/ OPC_CheckInteger, 1, ++/*163738*/ OPC_CheckType, MVT::i32, ++/*163740*/ OPC_MoveParent, ++/*163741*/ OPC_MoveChild, 10, ++/*163743*/ OPC_CheckInteger, 1, ++/*163745*/ OPC_CheckType, MVT::i32, ++/*163747*/ OPC_MoveParent, ++/*163748*/ OPC_MoveChild, 11, ++/*163750*/ OPC_CheckInteger, 1, ++/*163752*/ OPC_CheckType, MVT::i32, ++/*163754*/ OPC_MoveParent, ++/*163755*/ OPC_MoveChild, 12, ++/*163757*/ OPC_CheckInteger, 1, ++/*163759*/ OPC_CheckType, MVT::i32, ++/*163761*/ OPC_MoveParent, ++/*163762*/ OPC_MoveChild, 13, ++/*163764*/ OPC_CheckInteger, 1, ++/*163766*/ OPC_CheckType, MVT::i32, ++/*163768*/ OPC_MoveParent, ++/*163769*/ OPC_MoveChild, 14, ++/*163771*/ OPC_CheckInteger, 1, ++/*163773*/ OPC_CheckType, MVT::i32, ++/*163775*/ OPC_MoveParent, ++/*163776*/ OPC_MoveChild, 15, ++/*163778*/ OPC_CheckInteger, 1, ++/*163780*/ OPC_CheckType, MVT::i32, ++/*163782*/ OPC_MoveParent, ++/*163783*/ OPC_MoveChild, 16, ++/*163785*/ OPC_CheckInteger, 1, ++/*163787*/ OPC_CheckType, MVT::i32, ++/*163789*/ OPC_MoveParent, ++/*163790*/ OPC_MoveChild, 17, ++/*163792*/ OPC_CheckInteger, 1, ++/*163794*/ OPC_CheckType, MVT::i32, ++/*163796*/ OPC_MoveParent, ++/*163797*/ OPC_MoveChild, 18, ++/*163799*/ OPC_CheckInteger, 1, ++/*163801*/ OPC_CheckType, MVT::i32, ++/*163803*/ OPC_MoveParent, ++/*163804*/ OPC_MoveChild, 19, ++/*163806*/ OPC_CheckInteger, 1, ++/*163808*/ OPC_CheckType, MVT::i32, ++/*163810*/ OPC_MoveParent, ++/*163811*/ OPC_MoveChild, 20, ++/*163813*/ OPC_CheckInteger, 1, ++/*163815*/ OPC_CheckType, MVT::i32, ++/*163817*/ OPC_MoveParent, ++/*163818*/ OPC_MoveChild, 21, ++/*163820*/ OPC_CheckInteger, 1, ++/*163822*/ OPC_CheckType, MVT::i32, ++/*163824*/ OPC_MoveParent, ++/*163825*/ OPC_MoveChild, 22, ++/*163827*/ OPC_CheckInteger, 1, ++/*163829*/ OPC_CheckType, MVT::i32, ++/*163831*/ OPC_MoveParent, ++/*163832*/ OPC_MoveChild, 23, ++/*163834*/ OPC_CheckInteger, 1, ++/*163836*/ OPC_CheckType, MVT::i32, ++/*163838*/ OPC_MoveParent, ++/*163839*/ OPC_MoveChild, 24, ++/*163841*/ OPC_CheckInteger, 1, ++/*163843*/ OPC_CheckType, MVT::i32, ++/*163845*/ OPC_MoveParent, ++/*163846*/ OPC_MoveChild, 25, ++/*163848*/ OPC_CheckInteger, 1, ++/*163850*/ OPC_CheckType, MVT::i32, ++/*163852*/ OPC_MoveParent, ++/*163853*/ OPC_MoveChild, 26, ++/*163855*/ OPC_CheckInteger, 1, ++/*163857*/ OPC_CheckType, MVT::i32, ++/*163859*/ OPC_MoveParent, ++/*163860*/ OPC_MoveChild, 27, ++/*163862*/ OPC_CheckInteger, 1, ++/*163864*/ OPC_CheckType, MVT::i32, ++/*163866*/ OPC_MoveParent, ++/*163867*/ OPC_MoveChild, 28, ++/*163869*/ OPC_CheckInteger, 1, ++/*163871*/ OPC_CheckType, MVT::i32, ++/*163873*/ OPC_MoveParent, ++/*163874*/ OPC_MoveChild, 29, ++/*163876*/ OPC_CheckInteger, 1, ++/*163878*/ OPC_CheckType, MVT::i32, ++/*163880*/ OPC_MoveParent, ++/*163881*/ OPC_MoveChild, 30, ++/*163883*/ OPC_CheckInteger, 1, ++/*163885*/ OPC_CheckType, MVT::i32, ++/*163887*/ OPC_MoveParent, ++/*163888*/ OPC_MoveChild, 31, ++/*163890*/ OPC_CheckInteger, 1, ++/*163892*/ OPC_CheckType, MVT::i32, ++/*163894*/ OPC_MoveParent, ++/*163895*/ OPC_MoveParent, ++/*163896*/ OPC_MoveParent, ++/*163897*/ OPC_MoveChild1, ++/*163898*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*163901*/ OPC_CheckChild0Integer, 7, ++/*163903*/ OPC_CheckChild0Type, MVT::i32, ++/*163905*/ OPC_CheckChild1Integer, 7, ++/*163907*/ OPC_CheckChild1Type, MVT::i32, ++/*163909*/ OPC_CheckChild2Integer, 7, ++/*163911*/ OPC_CheckChild2Type, MVT::i32, ++/*163913*/ OPC_CheckChild3Integer, 7, ++/*163915*/ OPC_CheckChild3Type, MVT::i32, ++/*163917*/ OPC_CheckChild4Integer, 7, ++/*163919*/ OPC_CheckChild4Type, MVT::i32, ++/*163921*/ OPC_MoveChild5, ++/*163922*/ OPC_CheckInteger, 7, ++/*163924*/ OPC_CheckType, MVT::i32, ++/*163926*/ OPC_MoveParent, ++/*163927*/ OPC_MoveChild6, ++/*163928*/ OPC_CheckInteger, 7, ++/*163930*/ OPC_CheckType, MVT::i32, ++/*163932*/ OPC_MoveParent, ++/*163933*/ OPC_MoveChild7, ++/*163934*/ OPC_CheckInteger, 7, ++/*163936*/ OPC_CheckType, MVT::i32, ++/*163938*/ OPC_MoveParent, ++/*163939*/ OPC_MoveChild, 8, ++/*163941*/ OPC_CheckInteger, 7, ++/*163943*/ OPC_CheckType, MVT::i32, ++/*163945*/ OPC_MoveParent, ++/*163946*/ OPC_MoveChild, 9, ++/*163948*/ OPC_CheckInteger, 7, ++/*163950*/ OPC_CheckType, MVT::i32, ++/*163952*/ OPC_MoveParent, ++/*163953*/ OPC_MoveChild, 10, ++/*163955*/ OPC_CheckInteger, 7, ++/*163957*/ OPC_CheckType, MVT::i32, ++/*163959*/ OPC_MoveParent, ++/*163960*/ OPC_MoveChild, 11, ++/*163962*/ OPC_CheckInteger, 7, ++/*163964*/ OPC_CheckType, MVT::i32, ++/*163966*/ OPC_MoveParent, ++/*163967*/ OPC_MoveChild, 12, ++/*163969*/ OPC_CheckInteger, 7, ++/*163971*/ OPC_CheckType, MVT::i32, ++/*163973*/ OPC_MoveParent, ++/*163974*/ OPC_MoveChild, 13, ++/*163976*/ OPC_CheckInteger, 7, ++/*163978*/ OPC_CheckType, MVT::i32, ++/*163980*/ OPC_MoveParent, ++/*163981*/ OPC_MoveChild, 14, ++/*163983*/ OPC_CheckInteger, 7, ++/*163985*/ OPC_CheckType, MVT::i32, ++/*163987*/ OPC_MoveParent, ++/*163988*/ OPC_MoveChild, 15, ++/*163990*/ OPC_CheckInteger, 7, ++/*163992*/ OPC_CheckType, MVT::i32, ++/*163994*/ OPC_MoveParent, ++/*163995*/ OPC_MoveChild, 16, ++/*163997*/ OPC_CheckInteger, 7, ++/*163999*/ OPC_CheckType, MVT::i32, ++/*164001*/ OPC_MoveParent, ++/*164002*/ OPC_MoveChild, 17, ++/*164004*/ OPC_CheckInteger, 7, ++/*164006*/ OPC_CheckType, MVT::i32, ++/*164008*/ OPC_MoveParent, ++/*164009*/ OPC_MoveChild, 18, ++/*164011*/ OPC_CheckInteger, 7, ++/*164013*/ OPC_CheckType, MVT::i32, ++/*164015*/ OPC_MoveParent, ++/*164016*/ OPC_MoveChild, 19, ++/*164018*/ OPC_CheckInteger, 7, ++/*164020*/ OPC_CheckType, MVT::i32, ++/*164022*/ OPC_MoveParent, ++/*164023*/ OPC_MoveChild, 20, ++/*164025*/ OPC_CheckInteger, 7, ++/*164027*/ OPC_CheckType, MVT::i32, ++/*164029*/ OPC_MoveParent, ++/*164030*/ OPC_MoveChild, 21, ++/*164032*/ OPC_CheckInteger, 7, ++/*164034*/ OPC_CheckType, MVT::i32, ++/*164036*/ OPC_MoveParent, ++/*164037*/ OPC_MoveChild, 22, ++/*164039*/ OPC_CheckInteger, 7, ++/*164041*/ OPC_CheckType, MVT::i32, ++/*164043*/ OPC_MoveParent, ++/*164044*/ OPC_MoveChild, 23, ++/*164046*/ OPC_CheckInteger, 7, ++/*164048*/ OPC_CheckType, MVT::i32, ++/*164050*/ OPC_MoveParent, ++/*164051*/ OPC_MoveChild, 24, ++/*164053*/ OPC_CheckInteger, 7, ++/*164055*/ OPC_CheckType, MVT::i32, ++/*164057*/ OPC_MoveParent, ++/*164058*/ OPC_MoveChild, 25, ++/*164060*/ OPC_CheckInteger, 7, ++/*164062*/ OPC_CheckType, MVT::i32, ++/*164064*/ OPC_MoveParent, ++/*164065*/ OPC_MoveChild, 26, ++/*164067*/ OPC_CheckInteger, 7, ++/*164069*/ OPC_CheckType, MVT::i32, ++/*164071*/ OPC_MoveParent, ++/*164072*/ OPC_MoveChild, 27, ++/*164074*/ OPC_CheckInteger, 7, ++/*164076*/ OPC_CheckType, MVT::i32, ++/*164078*/ OPC_MoveParent, ++/*164079*/ OPC_MoveChild, 28, ++/*164081*/ OPC_CheckInteger, 7, ++/*164083*/ OPC_CheckType, MVT::i32, ++/*164085*/ OPC_MoveParent, ++/*164086*/ OPC_MoveChild, 29, ++/*164088*/ OPC_CheckInteger, 7, ++/*164090*/ OPC_CheckType, MVT::i32, ++/*164092*/ OPC_MoveParent, ++/*164093*/ OPC_MoveChild, 30, ++/*164095*/ OPC_CheckInteger, 7, ++/*164097*/ OPC_CheckType, MVT::i32, ++/*164099*/ OPC_MoveParent, ++/*164100*/ OPC_MoveChild, 31, ++/*164102*/ OPC_CheckInteger, 7, ++/*164104*/ OPC_CheckType, MVT::i32, ++/*164106*/ OPC_MoveParent, ++/*164107*/ OPC_CheckType, MVT::v32i8, ++/*164109*/ OPC_MoveParent, ++/*164110*/ OPC_MoveParent, ++/*164111*/ OPC_MoveParent, ++/*164112*/ OPC_MoveChild1, ++/*164113*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*164116*/ OPC_CheckChild0Integer, 1, ++/*164118*/ OPC_CheckChild0Type, MVT::i32, ++/*164120*/ OPC_CheckChild1Integer, 1, ++/*164122*/ OPC_CheckChild1Type, MVT::i32, ++/*164124*/ OPC_CheckChild2Integer, 1, ++/*164126*/ OPC_CheckChild2Type, MVT::i32, ++/*164128*/ OPC_CheckChild3Integer, 1, ++/*164130*/ OPC_CheckChild3Type, MVT::i32, ++/*164132*/ OPC_CheckChild4Integer, 1, ++/*164134*/ OPC_CheckChild4Type, MVT::i32, ++/*164136*/ OPC_MoveChild5, ++/*164137*/ OPC_CheckInteger, 1, ++/*164139*/ OPC_CheckType, MVT::i32, ++/*164141*/ OPC_MoveParent, ++/*164142*/ OPC_MoveChild6, ++/*164143*/ OPC_CheckInteger, 1, ++/*164145*/ OPC_CheckType, MVT::i32, ++/*164147*/ OPC_MoveParent, ++/*164148*/ OPC_MoveChild7, ++/*164149*/ OPC_CheckInteger, 1, ++/*164151*/ OPC_CheckType, MVT::i32, ++/*164153*/ OPC_MoveParent, ++/*164154*/ OPC_MoveChild, 8, ++/*164156*/ OPC_CheckInteger, 1, ++/*164158*/ OPC_CheckType, MVT::i32, ++/*164160*/ OPC_MoveParent, ++/*164161*/ OPC_MoveChild, 9, ++/*164163*/ OPC_CheckInteger, 1, ++/*164165*/ OPC_CheckType, MVT::i32, ++/*164167*/ OPC_MoveParent, ++/*164168*/ OPC_MoveChild, 10, ++/*164170*/ OPC_CheckInteger, 1, ++/*164172*/ OPC_CheckType, MVT::i32, ++/*164174*/ OPC_MoveParent, ++/*164175*/ OPC_MoveChild, 11, ++/*164177*/ OPC_CheckInteger, 1, ++/*164179*/ OPC_CheckType, MVT::i32, ++/*164181*/ OPC_MoveParent, ++/*164182*/ OPC_MoveChild, 12, ++/*164184*/ OPC_CheckInteger, 1, ++/*164186*/ OPC_CheckType, MVT::i32, ++/*164188*/ OPC_MoveParent, ++/*164189*/ OPC_MoveChild, 13, ++/*164191*/ OPC_CheckInteger, 1, ++/*164193*/ OPC_CheckType, MVT::i32, ++/*164195*/ OPC_MoveParent, ++/*164196*/ OPC_MoveChild, 14, ++/*164198*/ OPC_CheckInteger, 1, ++/*164200*/ OPC_CheckType, MVT::i32, ++/*164202*/ OPC_MoveParent, ++/*164203*/ OPC_MoveChild, 15, ++/*164205*/ OPC_CheckInteger, 1, ++/*164207*/ OPC_CheckType, MVT::i32, ++/*164209*/ OPC_MoveParent, ++/*164210*/ OPC_MoveChild, 16, ++/*164212*/ OPC_CheckInteger, 1, ++/*164214*/ OPC_CheckType, MVT::i32, ++/*164216*/ OPC_MoveParent, ++/*164217*/ OPC_MoveChild, 17, ++/*164219*/ OPC_CheckInteger, 1, ++/*164221*/ OPC_CheckType, MVT::i32, ++/*164223*/ OPC_MoveParent, ++/*164224*/ OPC_MoveChild, 18, ++/*164226*/ OPC_CheckInteger, 1, ++/*164228*/ OPC_CheckType, MVT::i32, ++/*164230*/ OPC_MoveParent, ++/*164231*/ OPC_MoveChild, 19, ++/*164233*/ OPC_CheckInteger, 1, ++/*164235*/ OPC_CheckType, MVT::i32, ++/*164237*/ OPC_MoveParent, ++/*164238*/ OPC_MoveChild, 20, ++/*164240*/ OPC_CheckInteger, 1, ++/*164242*/ OPC_CheckType, MVT::i32, ++/*164244*/ OPC_MoveParent, ++/*164245*/ OPC_MoveChild, 21, ++/*164247*/ OPC_CheckInteger, 1, ++/*164249*/ OPC_CheckType, MVT::i32, ++/*164251*/ OPC_MoveParent, ++/*164252*/ OPC_MoveChild, 22, ++/*164254*/ OPC_CheckInteger, 1, ++/*164256*/ OPC_CheckType, MVT::i32, ++/*164258*/ OPC_MoveParent, ++/*164259*/ OPC_MoveChild, 23, ++/*164261*/ OPC_CheckInteger, 1, ++/*164263*/ OPC_CheckType, MVT::i32, ++/*164265*/ OPC_MoveParent, ++/*164266*/ OPC_MoveChild, 24, ++/*164268*/ OPC_CheckInteger, 1, ++/*164270*/ OPC_CheckType, MVT::i32, ++/*164272*/ OPC_MoveParent, ++/*164273*/ OPC_MoveChild, 25, ++/*164275*/ OPC_CheckInteger, 1, ++/*164277*/ OPC_CheckType, MVT::i32, ++/*164279*/ OPC_MoveParent, ++/*164280*/ OPC_MoveChild, 26, ++/*164282*/ OPC_CheckInteger, 1, ++/*164284*/ OPC_CheckType, MVT::i32, ++/*164286*/ OPC_MoveParent, ++/*164287*/ OPC_MoveChild, 27, ++/*164289*/ OPC_CheckInteger, 1, ++/*164291*/ OPC_CheckType, MVT::i32, ++/*164293*/ OPC_MoveParent, ++/*164294*/ OPC_MoveChild, 28, ++/*164296*/ OPC_CheckInteger, 1, ++/*164298*/ OPC_CheckType, MVT::i32, ++/*164300*/ OPC_MoveParent, ++/*164301*/ OPC_MoveChild, 29, ++/*164303*/ OPC_CheckInteger, 1, ++/*164305*/ OPC_CheckType, MVT::i32, ++/*164307*/ OPC_MoveParent, ++/*164308*/ OPC_MoveChild, 30, ++/*164310*/ OPC_CheckInteger, 1, ++/*164312*/ OPC_CheckType, MVT::i32, ++/*164314*/ OPC_MoveParent, ++/*164315*/ OPC_MoveChild, 31, ++/*164317*/ OPC_CheckInteger, 1, ++/*164319*/ OPC_CheckType, MVT::i32, ++/*164321*/ OPC_MoveParent, ++/*164322*/ OPC_CheckType, MVT::v32i8, ++/*164324*/ OPC_MoveParent, ++/*164325*/ OPC_CheckType, MVT::v32i8, ++/*164327*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*164329*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b)), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*164337*/ 0, /*End of Scope*/ ++/*164338*/ /*Scope*/ 42|128,10/*1322*/, /*->165662*/ ++/*164340*/ OPC_CheckChild0Same, 1, ++/*164342*/ OPC_MoveChild1, ++/*164343*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*164346*/ OPC_Scope, 15|128,5/*655*/, /*->165004*/ // 2 children in Scope ++/*164349*/ OPC_MoveChild0, ++/*164350*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*164353*/ OPC_CheckChild0Integer, 1, ++/*164355*/ OPC_CheckChild0Type, MVT::i32, ++/*164357*/ OPC_CheckChild1Integer, 1, ++/*164359*/ OPC_CheckChild1Type, MVT::i32, ++/*164361*/ OPC_CheckChild2Integer, 1, ++/*164363*/ OPC_CheckChild2Type, MVT::i32, ++/*164365*/ OPC_CheckChild3Integer, 1, ++/*164367*/ OPC_CheckChild3Type, MVT::i32, ++/*164369*/ OPC_CheckChild4Integer, 1, ++/*164371*/ OPC_CheckChild4Type, MVT::i32, ++/*164373*/ OPC_MoveChild5, ++/*164374*/ OPC_CheckInteger, 1, ++/*164376*/ OPC_CheckType, MVT::i32, ++/*164378*/ OPC_MoveParent, ++/*164379*/ OPC_MoveChild6, ++/*164380*/ OPC_CheckInteger, 1, ++/*164382*/ OPC_CheckType, MVT::i32, ++/*164384*/ OPC_MoveParent, ++/*164385*/ OPC_MoveChild7, ++/*164386*/ OPC_CheckInteger, 1, ++/*164388*/ OPC_CheckType, MVT::i32, ++/*164390*/ OPC_MoveParent, ++/*164391*/ OPC_MoveChild, 8, ++/*164393*/ OPC_CheckInteger, 1, ++/*164395*/ OPC_CheckType, MVT::i32, ++/*164397*/ OPC_MoveParent, ++/*164398*/ OPC_MoveChild, 9, ++/*164400*/ OPC_CheckInteger, 1, ++/*164402*/ OPC_CheckType, MVT::i32, ++/*164404*/ OPC_MoveParent, ++/*164405*/ OPC_MoveChild, 10, ++/*164407*/ OPC_CheckInteger, 1, ++/*164409*/ OPC_CheckType, MVT::i32, ++/*164411*/ OPC_MoveParent, ++/*164412*/ OPC_MoveChild, 11, ++/*164414*/ OPC_CheckInteger, 1, ++/*164416*/ OPC_CheckType, MVT::i32, ++/*164418*/ OPC_MoveParent, ++/*164419*/ OPC_MoveChild, 12, ++/*164421*/ OPC_CheckInteger, 1, ++/*164423*/ OPC_CheckType, MVT::i32, ++/*164425*/ OPC_MoveParent, ++/*164426*/ OPC_MoveChild, 13, ++/*164428*/ OPC_CheckInteger, 1, ++/*164430*/ OPC_CheckType, MVT::i32, ++/*164432*/ OPC_MoveParent, ++/*164433*/ OPC_MoveChild, 14, ++/*164435*/ OPC_CheckInteger, 1, ++/*164437*/ OPC_CheckType, MVT::i32, ++/*164439*/ OPC_MoveParent, ++/*164440*/ OPC_MoveChild, 15, ++/*164442*/ OPC_CheckInteger, 1, ++/*164444*/ OPC_CheckType, MVT::i32, ++/*164446*/ OPC_MoveParent, ++/*164447*/ OPC_MoveChild, 16, ++/*164449*/ OPC_CheckInteger, 1, ++/*164451*/ OPC_CheckType, MVT::i32, ++/*164453*/ OPC_MoveParent, ++/*164454*/ OPC_MoveChild, 17, ++/*164456*/ OPC_CheckInteger, 1, ++/*164458*/ OPC_CheckType, MVT::i32, ++/*164460*/ OPC_MoveParent, ++/*164461*/ OPC_MoveChild, 18, ++/*164463*/ OPC_CheckInteger, 1, ++/*164465*/ OPC_CheckType, MVT::i32, ++/*164467*/ OPC_MoveParent, ++/*164468*/ OPC_MoveChild, 19, ++/*164470*/ OPC_CheckInteger, 1, ++/*164472*/ OPC_CheckType, MVT::i32, ++/*164474*/ OPC_MoveParent, ++/*164475*/ OPC_MoveChild, 20, ++/*164477*/ OPC_CheckInteger, 1, ++/*164479*/ OPC_CheckType, MVT::i32, ++/*164481*/ OPC_MoveParent, ++/*164482*/ OPC_MoveChild, 21, ++/*164484*/ OPC_CheckInteger, 1, ++/*164486*/ OPC_CheckType, MVT::i32, ++/*164488*/ OPC_MoveParent, ++/*164489*/ OPC_MoveChild, 22, ++/*164491*/ OPC_CheckInteger, 1, ++/*164493*/ OPC_CheckType, MVT::i32, ++/*164495*/ OPC_MoveParent, ++/*164496*/ OPC_MoveChild, 23, ++/*164498*/ OPC_CheckInteger, 1, ++/*164500*/ OPC_CheckType, MVT::i32, ++/*164502*/ OPC_MoveParent, ++/*164503*/ OPC_MoveChild, 24, ++/*164505*/ OPC_CheckInteger, 1, ++/*164507*/ OPC_CheckType, MVT::i32, ++/*164509*/ OPC_MoveParent, ++/*164510*/ OPC_MoveChild, 25, ++/*164512*/ OPC_CheckInteger, 1, ++/*164514*/ OPC_CheckType, MVT::i32, ++/*164516*/ OPC_MoveParent, ++/*164517*/ OPC_MoveChild, 26, ++/*164519*/ OPC_CheckInteger, 1, ++/*164521*/ OPC_CheckType, MVT::i32, ++/*164523*/ OPC_MoveParent, ++/*164524*/ OPC_MoveChild, 27, ++/*164526*/ OPC_CheckInteger, 1, ++/*164528*/ OPC_CheckType, MVT::i32, ++/*164530*/ OPC_MoveParent, ++/*164531*/ OPC_MoveChild, 28, ++/*164533*/ OPC_CheckInteger, 1, ++/*164535*/ OPC_CheckType, MVT::i32, ++/*164537*/ OPC_MoveParent, ++/*164538*/ OPC_MoveChild, 29, ++/*164540*/ OPC_CheckInteger, 1, ++/*164542*/ OPC_CheckType, MVT::i32, ++/*164544*/ OPC_MoveParent, ++/*164545*/ OPC_MoveChild, 30, ++/*164547*/ OPC_CheckInteger, 1, ++/*164549*/ OPC_CheckType, MVT::i32, ++/*164551*/ OPC_MoveParent, ++/*164552*/ OPC_MoveChild, 31, ++/*164554*/ OPC_CheckInteger, 1, ++/*164556*/ OPC_CheckType, MVT::i32, ++/*164558*/ OPC_MoveParent, ++/*164559*/ OPC_MoveParent, ++/*164560*/ OPC_CheckChild1Same, 0, ++/*164562*/ OPC_MoveParent, ++/*164563*/ OPC_MoveParent, ++/*164564*/ OPC_MoveChild1, ++/*164565*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*164568*/ OPC_CheckChild0Integer, 7, ++/*164570*/ OPC_CheckChild0Type, MVT::i32, ++/*164572*/ OPC_CheckChild1Integer, 7, ++/*164574*/ OPC_CheckChild1Type, MVT::i32, ++/*164576*/ OPC_CheckChild2Integer, 7, ++/*164578*/ OPC_CheckChild2Type, MVT::i32, ++/*164580*/ OPC_CheckChild3Integer, 7, ++/*164582*/ OPC_CheckChild3Type, MVT::i32, ++/*164584*/ OPC_CheckChild4Integer, 7, ++/*164586*/ OPC_CheckChild4Type, MVT::i32, ++/*164588*/ OPC_MoveChild5, ++/*164589*/ OPC_CheckInteger, 7, ++/*164591*/ OPC_CheckType, MVT::i32, ++/*164593*/ OPC_MoveParent, ++/*164594*/ OPC_MoveChild6, ++/*164595*/ OPC_CheckInteger, 7, ++/*164597*/ OPC_CheckType, MVT::i32, ++/*164599*/ OPC_MoveParent, ++/*164600*/ OPC_MoveChild7, ++/*164601*/ OPC_CheckInteger, 7, ++/*164603*/ OPC_CheckType, MVT::i32, ++/*164605*/ OPC_MoveParent, ++/*164606*/ OPC_MoveChild, 8, ++/*164608*/ OPC_CheckInteger, 7, ++/*164610*/ OPC_CheckType, MVT::i32, ++/*164612*/ OPC_MoveParent, ++/*164613*/ OPC_MoveChild, 9, ++/*164615*/ OPC_CheckInteger, 7, ++/*164617*/ OPC_CheckType, MVT::i32, ++/*164619*/ OPC_MoveParent, ++/*164620*/ OPC_MoveChild, 10, ++/*164622*/ OPC_CheckInteger, 7, ++/*164624*/ OPC_CheckType, MVT::i32, ++/*164626*/ OPC_MoveParent, ++/*164627*/ OPC_MoveChild, 11, ++/*164629*/ OPC_CheckInteger, 7, ++/*164631*/ OPC_CheckType, MVT::i32, ++/*164633*/ OPC_MoveParent, ++/*164634*/ OPC_MoveChild, 12, ++/*164636*/ OPC_CheckInteger, 7, ++/*164638*/ OPC_CheckType, MVT::i32, ++/*164640*/ OPC_MoveParent, ++/*164641*/ OPC_MoveChild, 13, ++/*164643*/ OPC_CheckInteger, 7, ++/*164645*/ OPC_CheckType, MVT::i32, ++/*164647*/ OPC_MoveParent, ++/*164648*/ OPC_MoveChild, 14, ++/*164650*/ OPC_CheckInteger, 7, ++/*164652*/ OPC_CheckType, MVT::i32, ++/*164654*/ OPC_MoveParent, ++/*164655*/ OPC_MoveChild, 15, ++/*164657*/ OPC_CheckInteger, 7, ++/*164659*/ OPC_CheckType, MVT::i32, ++/*164661*/ OPC_MoveParent, ++/*164662*/ OPC_MoveChild, 16, ++/*164664*/ OPC_CheckInteger, 7, ++/*164666*/ OPC_CheckType, MVT::i32, ++/*164668*/ OPC_MoveParent, ++/*164669*/ OPC_MoveChild, 17, ++/*164671*/ OPC_CheckInteger, 7, ++/*164673*/ OPC_CheckType, MVT::i32, ++/*164675*/ OPC_MoveParent, ++/*164676*/ OPC_MoveChild, 18, ++/*164678*/ OPC_CheckInteger, 7, ++/*164680*/ OPC_CheckType, MVT::i32, ++/*164682*/ OPC_MoveParent, ++/*164683*/ OPC_MoveChild, 19, ++/*164685*/ OPC_CheckInteger, 7, ++/*164687*/ OPC_CheckType, MVT::i32, ++/*164689*/ OPC_MoveParent, ++/*164690*/ OPC_MoveChild, 20, ++/*164692*/ OPC_CheckInteger, 7, ++/*164694*/ OPC_CheckType, MVT::i32, ++/*164696*/ OPC_MoveParent, ++/*164697*/ OPC_MoveChild, 21, ++/*164699*/ OPC_CheckInteger, 7, ++/*164701*/ OPC_CheckType, MVT::i32, ++/*164703*/ OPC_MoveParent, ++/*164704*/ OPC_MoveChild, 22, ++/*164706*/ OPC_CheckInteger, 7, ++/*164708*/ OPC_CheckType, MVT::i32, ++/*164710*/ OPC_MoveParent, ++/*164711*/ OPC_MoveChild, 23, ++/*164713*/ OPC_CheckInteger, 7, ++/*164715*/ OPC_CheckType, MVT::i32, ++/*164717*/ OPC_MoveParent, ++/*164718*/ OPC_MoveChild, 24, ++/*164720*/ OPC_CheckInteger, 7, ++/*164722*/ OPC_CheckType, MVT::i32, ++/*164724*/ OPC_MoveParent, ++/*164725*/ OPC_MoveChild, 25, ++/*164727*/ OPC_CheckInteger, 7, ++/*164729*/ OPC_CheckType, MVT::i32, ++/*164731*/ OPC_MoveParent, ++/*164732*/ OPC_MoveChild, 26, ++/*164734*/ OPC_CheckInteger, 7, ++/*164736*/ OPC_CheckType, MVT::i32, ++/*164738*/ OPC_MoveParent, ++/*164739*/ OPC_MoveChild, 27, ++/*164741*/ OPC_CheckInteger, 7, ++/*164743*/ OPC_CheckType, MVT::i32, ++/*164745*/ OPC_MoveParent, ++/*164746*/ OPC_MoveChild, 28, ++/*164748*/ OPC_CheckInteger, 7, ++/*164750*/ OPC_CheckType, MVT::i32, ++/*164752*/ OPC_MoveParent, ++/*164753*/ OPC_MoveChild, 29, ++/*164755*/ OPC_CheckInteger, 7, ++/*164757*/ OPC_CheckType, MVT::i32, ++/*164759*/ OPC_MoveParent, ++/*164760*/ OPC_MoveChild, 30, ++/*164762*/ OPC_CheckInteger, 7, ++/*164764*/ OPC_CheckType, MVT::i32, ++/*164766*/ OPC_MoveParent, ++/*164767*/ OPC_MoveChild, 31, ++/*164769*/ OPC_CheckInteger, 7, ++/*164771*/ OPC_CheckType, MVT::i32, ++/*164773*/ OPC_MoveParent, ++/*164774*/ OPC_CheckType, MVT::v32i8, ++/*164776*/ OPC_MoveParent, ++/*164777*/ OPC_MoveParent, ++/*164778*/ OPC_MoveParent, ++/*164779*/ OPC_MoveChild1, ++/*164780*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*164783*/ OPC_CheckChild0Integer, 1, ++/*164785*/ OPC_CheckChild0Type, MVT::i32, ++/*164787*/ OPC_CheckChild1Integer, 1, ++/*164789*/ OPC_CheckChild1Type, MVT::i32, ++/*164791*/ OPC_CheckChild2Integer, 1, ++/*164793*/ OPC_CheckChild2Type, MVT::i32, ++/*164795*/ OPC_CheckChild3Integer, 1, ++/*164797*/ OPC_CheckChild3Type, MVT::i32, ++/*164799*/ OPC_CheckChild4Integer, 1, ++/*164801*/ OPC_CheckChild4Type, MVT::i32, ++/*164803*/ OPC_MoveChild5, ++/*164804*/ OPC_CheckInteger, 1, ++/*164806*/ OPC_CheckType, MVT::i32, ++/*164808*/ OPC_MoveParent, ++/*164809*/ OPC_MoveChild6, ++/*164810*/ OPC_CheckInteger, 1, ++/*164812*/ OPC_CheckType, MVT::i32, ++/*164814*/ OPC_MoveParent, ++/*164815*/ OPC_MoveChild7, ++/*164816*/ OPC_CheckInteger, 1, ++/*164818*/ OPC_CheckType, MVT::i32, ++/*164820*/ OPC_MoveParent, ++/*164821*/ OPC_MoveChild, 8, ++/*164823*/ OPC_CheckInteger, 1, ++/*164825*/ OPC_CheckType, MVT::i32, ++/*164827*/ OPC_MoveParent, ++/*164828*/ OPC_MoveChild, 9, ++/*164830*/ OPC_CheckInteger, 1, ++/*164832*/ OPC_CheckType, MVT::i32, ++/*164834*/ OPC_MoveParent, ++/*164835*/ OPC_MoveChild, 10, ++/*164837*/ OPC_CheckInteger, 1, ++/*164839*/ OPC_CheckType, MVT::i32, ++/*164841*/ OPC_MoveParent, ++/*164842*/ OPC_MoveChild, 11, ++/*164844*/ OPC_CheckInteger, 1, ++/*164846*/ OPC_CheckType, MVT::i32, ++/*164848*/ OPC_MoveParent, ++/*164849*/ OPC_MoveChild, 12, ++/*164851*/ OPC_CheckInteger, 1, ++/*164853*/ OPC_CheckType, MVT::i32, ++/*164855*/ OPC_MoveParent, ++/*164856*/ OPC_MoveChild, 13, ++/*164858*/ OPC_CheckInteger, 1, ++/*164860*/ OPC_CheckType, MVT::i32, ++/*164862*/ OPC_MoveParent, ++/*164863*/ OPC_MoveChild, 14, ++/*164865*/ OPC_CheckInteger, 1, ++/*164867*/ OPC_CheckType, MVT::i32, ++/*164869*/ OPC_MoveParent, ++/*164870*/ OPC_MoveChild, 15, ++/*164872*/ OPC_CheckInteger, 1, ++/*164874*/ OPC_CheckType, MVT::i32, ++/*164876*/ OPC_MoveParent, ++/*164877*/ OPC_MoveChild, 16, ++/*164879*/ OPC_CheckInteger, 1, ++/*164881*/ OPC_CheckType, MVT::i32, ++/*164883*/ OPC_MoveParent, ++/*164884*/ OPC_MoveChild, 17, ++/*164886*/ OPC_CheckInteger, 1, ++/*164888*/ OPC_CheckType, MVT::i32, ++/*164890*/ OPC_MoveParent, ++/*164891*/ OPC_MoveChild, 18, ++/*164893*/ OPC_CheckInteger, 1, ++/*164895*/ OPC_CheckType, MVT::i32, ++/*164897*/ OPC_MoveParent, ++/*164898*/ OPC_MoveChild, 19, ++/*164900*/ OPC_CheckInteger, 1, ++/*164902*/ OPC_CheckType, MVT::i32, ++/*164904*/ OPC_MoveParent, ++/*164905*/ OPC_MoveChild, 20, ++/*164907*/ OPC_CheckInteger, 1, ++/*164909*/ OPC_CheckType, MVT::i32, ++/*164911*/ OPC_MoveParent, ++/*164912*/ OPC_MoveChild, 21, ++/*164914*/ OPC_CheckInteger, 1, ++/*164916*/ OPC_CheckType, MVT::i32, ++/*164918*/ OPC_MoveParent, ++/*164919*/ OPC_MoveChild, 22, ++/*164921*/ OPC_CheckInteger, 1, ++/*164923*/ OPC_CheckType, MVT::i32, ++/*164925*/ OPC_MoveParent, ++/*164926*/ OPC_MoveChild, 23, ++/*164928*/ OPC_CheckInteger, 1, ++/*164930*/ OPC_CheckType, MVT::i32, ++/*164932*/ OPC_MoveParent, ++/*164933*/ OPC_MoveChild, 24, ++/*164935*/ OPC_CheckInteger, 1, ++/*164937*/ OPC_CheckType, MVT::i32, ++/*164939*/ OPC_MoveParent, ++/*164940*/ OPC_MoveChild, 25, ++/*164942*/ OPC_CheckInteger, 1, ++/*164944*/ OPC_CheckType, MVT::i32, ++/*164946*/ OPC_MoveParent, ++/*164947*/ OPC_MoveChild, 26, ++/*164949*/ OPC_CheckInteger, 1, ++/*164951*/ OPC_CheckType, MVT::i32, ++/*164953*/ OPC_MoveParent, ++/*164954*/ OPC_MoveChild, 27, ++/*164956*/ OPC_CheckInteger, 1, ++/*164958*/ OPC_CheckType, MVT::i32, ++/*164960*/ OPC_MoveParent, ++/*164961*/ OPC_MoveChild, 28, ++/*164963*/ OPC_CheckInteger, 1, ++/*164965*/ OPC_CheckType, MVT::i32, ++/*164967*/ OPC_MoveParent, ++/*164968*/ OPC_MoveChild, 29, ++/*164970*/ OPC_CheckInteger, 1, ++/*164972*/ OPC_CheckType, MVT::i32, ++/*164974*/ OPC_MoveParent, ++/*164975*/ OPC_MoveChild, 30, ++/*164977*/ OPC_CheckInteger, 1, ++/*164979*/ OPC_CheckType, MVT::i32, ++/*164981*/ OPC_MoveParent, ++/*164982*/ OPC_MoveChild, 31, ++/*164984*/ OPC_CheckInteger, 1, ++/*164986*/ OPC_CheckType, MVT::i32, ++/*164988*/ OPC_MoveParent, ++/*164989*/ OPC_CheckType, MVT::v32i8, ++/*164991*/ OPC_MoveParent, ++/*164992*/ OPC_CheckType, MVT::v32i8, ++/*164994*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*164996*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b)), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*165004*/ /*Scope*/ 15|128,5/*655*/, /*->165661*/ ++/*165006*/ OPC_CheckChild0Same, 0, ++/*165008*/ OPC_MoveChild1, ++/*165009*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*165012*/ OPC_CheckChild0Integer, 1, ++/*165014*/ OPC_CheckChild0Type, MVT::i32, ++/*165016*/ OPC_CheckChild1Integer, 1, ++/*165018*/ OPC_CheckChild1Type, MVT::i32, ++/*165020*/ OPC_CheckChild2Integer, 1, ++/*165022*/ OPC_CheckChild2Type, MVT::i32, ++/*165024*/ OPC_CheckChild3Integer, 1, ++/*165026*/ OPC_CheckChild3Type, MVT::i32, ++/*165028*/ OPC_CheckChild4Integer, 1, ++/*165030*/ OPC_CheckChild4Type, MVT::i32, ++/*165032*/ OPC_MoveChild5, ++/*165033*/ OPC_CheckInteger, 1, ++/*165035*/ OPC_CheckType, MVT::i32, ++/*165037*/ OPC_MoveParent, ++/*165038*/ OPC_MoveChild6, ++/*165039*/ OPC_CheckInteger, 1, ++/*165041*/ OPC_CheckType, MVT::i32, ++/*165043*/ OPC_MoveParent, ++/*165044*/ OPC_MoveChild7, ++/*165045*/ OPC_CheckInteger, 1, ++/*165047*/ OPC_CheckType, MVT::i32, ++/*165049*/ OPC_MoveParent, ++/*165050*/ OPC_MoveChild, 8, ++/*165052*/ OPC_CheckInteger, 1, ++/*165054*/ OPC_CheckType, MVT::i32, ++/*165056*/ OPC_MoveParent, ++/*165057*/ OPC_MoveChild, 9, ++/*165059*/ OPC_CheckInteger, 1, ++/*165061*/ OPC_CheckType, MVT::i32, ++/*165063*/ OPC_MoveParent, ++/*165064*/ OPC_MoveChild, 10, ++/*165066*/ OPC_CheckInteger, 1, ++/*165068*/ OPC_CheckType, MVT::i32, ++/*165070*/ OPC_MoveParent, ++/*165071*/ OPC_MoveChild, 11, ++/*165073*/ OPC_CheckInteger, 1, ++/*165075*/ OPC_CheckType, MVT::i32, ++/*165077*/ OPC_MoveParent, ++/*165078*/ OPC_MoveChild, 12, ++/*165080*/ OPC_CheckInteger, 1, ++/*165082*/ OPC_CheckType, MVT::i32, ++/*165084*/ OPC_MoveParent, ++/*165085*/ OPC_MoveChild, 13, ++/*165087*/ OPC_CheckInteger, 1, ++/*165089*/ OPC_CheckType, MVT::i32, ++/*165091*/ OPC_MoveParent, ++/*165092*/ OPC_MoveChild, 14, ++/*165094*/ OPC_CheckInteger, 1, ++/*165096*/ OPC_CheckType, MVT::i32, ++/*165098*/ OPC_MoveParent, ++/*165099*/ OPC_MoveChild, 15, ++/*165101*/ OPC_CheckInteger, 1, ++/*165103*/ OPC_CheckType, MVT::i32, ++/*165105*/ OPC_MoveParent, ++/*165106*/ OPC_MoveChild, 16, ++/*165108*/ OPC_CheckInteger, 1, ++/*165110*/ OPC_CheckType, MVT::i32, ++/*165112*/ OPC_MoveParent, ++/*165113*/ OPC_MoveChild, 17, ++/*165115*/ OPC_CheckInteger, 1, ++/*165117*/ OPC_CheckType, MVT::i32, ++/*165119*/ OPC_MoveParent, ++/*165120*/ OPC_MoveChild, 18, ++/*165122*/ OPC_CheckInteger, 1, ++/*165124*/ OPC_CheckType, MVT::i32, ++/*165126*/ OPC_MoveParent, ++/*165127*/ OPC_MoveChild, 19, ++/*165129*/ OPC_CheckInteger, 1, ++/*165131*/ OPC_CheckType, MVT::i32, ++/*165133*/ OPC_MoveParent, ++/*165134*/ OPC_MoveChild, 20, ++/*165136*/ OPC_CheckInteger, 1, ++/*165138*/ OPC_CheckType, MVT::i32, ++/*165140*/ OPC_MoveParent, ++/*165141*/ OPC_MoveChild, 21, ++/*165143*/ OPC_CheckInteger, 1, ++/*165145*/ OPC_CheckType, MVT::i32, ++/*165147*/ OPC_MoveParent, ++/*165148*/ OPC_MoveChild, 22, ++/*165150*/ OPC_CheckInteger, 1, ++/*165152*/ OPC_CheckType, MVT::i32, ++/*165154*/ OPC_MoveParent, ++/*165155*/ OPC_MoveChild, 23, ++/*165157*/ OPC_CheckInteger, 1, ++/*165159*/ OPC_CheckType, MVT::i32, ++/*165161*/ OPC_MoveParent, ++/*165162*/ OPC_MoveChild, 24, ++/*165164*/ OPC_CheckInteger, 1, ++/*165166*/ OPC_CheckType, MVT::i32, ++/*165168*/ OPC_MoveParent, ++/*165169*/ OPC_MoveChild, 25, ++/*165171*/ OPC_CheckInteger, 1, ++/*165173*/ OPC_CheckType, MVT::i32, ++/*165175*/ OPC_MoveParent, ++/*165176*/ OPC_MoveChild, 26, ++/*165178*/ OPC_CheckInteger, 1, ++/*165180*/ OPC_CheckType, MVT::i32, ++/*165182*/ OPC_MoveParent, ++/*165183*/ OPC_MoveChild, 27, ++/*165185*/ OPC_CheckInteger, 1, ++/*165187*/ OPC_CheckType, MVT::i32, ++/*165189*/ OPC_MoveParent, ++/*165190*/ OPC_MoveChild, 28, ++/*165192*/ OPC_CheckInteger, 1, ++/*165194*/ OPC_CheckType, MVT::i32, ++/*165196*/ OPC_MoveParent, ++/*165197*/ OPC_MoveChild, 29, ++/*165199*/ OPC_CheckInteger, 1, ++/*165201*/ OPC_CheckType, MVT::i32, ++/*165203*/ OPC_MoveParent, ++/*165204*/ OPC_MoveChild, 30, ++/*165206*/ OPC_CheckInteger, 1, ++/*165208*/ OPC_CheckType, MVT::i32, ++/*165210*/ OPC_MoveParent, ++/*165211*/ OPC_MoveChild, 31, ++/*165213*/ OPC_CheckInteger, 1, ++/*165215*/ OPC_CheckType, MVT::i32, ++/*165217*/ OPC_MoveParent, ++/*165218*/ OPC_MoveParent, ++/*165219*/ OPC_MoveParent, ++/*165220*/ OPC_MoveParent, ++/*165221*/ OPC_MoveChild1, ++/*165222*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*165225*/ OPC_CheckChild0Integer, 7, ++/*165227*/ OPC_CheckChild0Type, MVT::i32, ++/*165229*/ OPC_CheckChild1Integer, 7, ++/*165231*/ OPC_CheckChild1Type, MVT::i32, ++/*165233*/ OPC_CheckChild2Integer, 7, ++/*165235*/ OPC_CheckChild2Type, MVT::i32, ++/*165237*/ OPC_CheckChild3Integer, 7, ++/*165239*/ OPC_CheckChild3Type, MVT::i32, ++/*165241*/ OPC_CheckChild4Integer, 7, ++/*165243*/ OPC_CheckChild4Type, MVT::i32, ++/*165245*/ OPC_MoveChild5, ++/*165246*/ OPC_CheckInteger, 7, ++/*165248*/ OPC_CheckType, MVT::i32, ++/*165250*/ OPC_MoveParent, ++/*165251*/ OPC_MoveChild6, ++/*165252*/ OPC_CheckInteger, 7, ++/*165254*/ OPC_CheckType, MVT::i32, ++/*165256*/ OPC_MoveParent, ++/*165257*/ OPC_MoveChild7, ++/*165258*/ OPC_CheckInteger, 7, ++/*165260*/ OPC_CheckType, MVT::i32, ++/*165262*/ OPC_MoveParent, ++/*165263*/ OPC_MoveChild, 8, ++/*165265*/ OPC_CheckInteger, 7, ++/*165267*/ OPC_CheckType, MVT::i32, ++/*165269*/ OPC_MoveParent, ++/*165270*/ OPC_MoveChild, 9, ++/*165272*/ OPC_CheckInteger, 7, ++/*165274*/ OPC_CheckType, MVT::i32, ++/*165276*/ OPC_MoveParent, ++/*165277*/ OPC_MoveChild, 10, ++/*165279*/ OPC_CheckInteger, 7, ++/*165281*/ OPC_CheckType, MVT::i32, ++/*165283*/ OPC_MoveParent, ++/*165284*/ OPC_MoveChild, 11, ++/*165286*/ OPC_CheckInteger, 7, ++/*165288*/ OPC_CheckType, MVT::i32, ++/*165290*/ OPC_MoveParent, ++/*165291*/ OPC_MoveChild, 12, ++/*165293*/ OPC_CheckInteger, 7, ++/*165295*/ OPC_CheckType, MVT::i32, ++/*165297*/ OPC_MoveParent, ++/*165298*/ OPC_MoveChild, 13, ++/*165300*/ OPC_CheckInteger, 7, ++/*165302*/ OPC_CheckType, MVT::i32, ++/*165304*/ OPC_MoveParent, ++/*165305*/ OPC_MoveChild, 14, ++/*165307*/ OPC_CheckInteger, 7, ++/*165309*/ OPC_CheckType, MVT::i32, ++/*165311*/ OPC_MoveParent, ++/*165312*/ OPC_MoveChild, 15, ++/*165314*/ OPC_CheckInteger, 7, ++/*165316*/ OPC_CheckType, MVT::i32, ++/*165318*/ OPC_MoveParent, ++/*165319*/ OPC_MoveChild, 16, ++/*165321*/ OPC_CheckInteger, 7, ++/*165323*/ OPC_CheckType, MVT::i32, ++/*165325*/ OPC_MoveParent, ++/*165326*/ OPC_MoveChild, 17, ++/*165328*/ OPC_CheckInteger, 7, ++/*165330*/ OPC_CheckType, MVT::i32, ++/*165332*/ OPC_MoveParent, ++/*165333*/ OPC_MoveChild, 18, ++/*165335*/ OPC_CheckInteger, 7, ++/*165337*/ OPC_CheckType, MVT::i32, ++/*165339*/ OPC_MoveParent, ++/*165340*/ OPC_MoveChild, 19, ++/*165342*/ OPC_CheckInteger, 7, ++/*165344*/ OPC_CheckType, MVT::i32, ++/*165346*/ OPC_MoveParent, ++/*165347*/ OPC_MoveChild, 20, ++/*165349*/ OPC_CheckInteger, 7, ++/*165351*/ OPC_CheckType, MVT::i32, ++/*165353*/ OPC_MoveParent, ++/*165354*/ OPC_MoveChild, 21, ++/*165356*/ OPC_CheckInteger, 7, ++/*165358*/ OPC_CheckType, MVT::i32, ++/*165360*/ OPC_MoveParent, ++/*165361*/ OPC_MoveChild, 22, ++/*165363*/ OPC_CheckInteger, 7, ++/*165365*/ OPC_CheckType, MVT::i32, ++/*165367*/ OPC_MoveParent, ++/*165368*/ OPC_MoveChild, 23, ++/*165370*/ OPC_CheckInteger, 7, ++/*165372*/ OPC_CheckType, MVT::i32, ++/*165374*/ OPC_MoveParent, ++/*165375*/ OPC_MoveChild, 24, ++/*165377*/ OPC_CheckInteger, 7, ++/*165379*/ OPC_CheckType, MVT::i32, ++/*165381*/ OPC_MoveParent, ++/*165382*/ OPC_MoveChild, 25, ++/*165384*/ OPC_CheckInteger, 7, ++/*165386*/ OPC_CheckType, MVT::i32, ++/*165388*/ OPC_MoveParent, ++/*165389*/ OPC_MoveChild, 26, ++/*165391*/ OPC_CheckInteger, 7, ++/*165393*/ OPC_CheckType, MVT::i32, ++/*165395*/ OPC_MoveParent, ++/*165396*/ OPC_MoveChild, 27, ++/*165398*/ OPC_CheckInteger, 7, ++/*165400*/ OPC_CheckType, MVT::i32, ++/*165402*/ OPC_MoveParent, ++/*165403*/ OPC_MoveChild, 28, ++/*165405*/ OPC_CheckInteger, 7, ++/*165407*/ OPC_CheckType, MVT::i32, ++/*165409*/ OPC_MoveParent, ++/*165410*/ OPC_MoveChild, 29, ++/*165412*/ OPC_CheckInteger, 7, ++/*165414*/ OPC_CheckType, MVT::i32, ++/*165416*/ OPC_MoveParent, ++/*165417*/ OPC_MoveChild, 30, ++/*165419*/ OPC_CheckInteger, 7, ++/*165421*/ OPC_CheckType, MVT::i32, ++/*165423*/ OPC_MoveParent, ++/*165424*/ OPC_MoveChild, 31, ++/*165426*/ OPC_CheckInteger, 7, ++/*165428*/ OPC_CheckType, MVT::i32, ++/*165430*/ OPC_MoveParent, ++/*165431*/ OPC_CheckType, MVT::v32i8, ++/*165433*/ OPC_MoveParent, ++/*165434*/ OPC_MoveParent, ++/*165435*/ OPC_MoveParent, ++/*165436*/ OPC_MoveChild1, ++/*165437*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*165440*/ OPC_CheckChild0Integer, 1, ++/*165442*/ OPC_CheckChild0Type, MVT::i32, ++/*165444*/ OPC_CheckChild1Integer, 1, ++/*165446*/ OPC_CheckChild1Type, MVT::i32, ++/*165448*/ OPC_CheckChild2Integer, 1, ++/*165450*/ OPC_CheckChild2Type, MVT::i32, ++/*165452*/ OPC_CheckChild3Integer, 1, ++/*165454*/ OPC_CheckChild3Type, MVT::i32, ++/*165456*/ OPC_CheckChild4Integer, 1, ++/*165458*/ OPC_CheckChild4Type, MVT::i32, ++/*165460*/ OPC_MoveChild5, ++/*165461*/ OPC_CheckInteger, 1, ++/*165463*/ OPC_CheckType, MVT::i32, ++/*165465*/ OPC_MoveParent, ++/*165466*/ OPC_MoveChild6, ++/*165467*/ OPC_CheckInteger, 1, ++/*165469*/ OPC_CheckType, MVT::i32, ++/*165471*/ OPC_MoveParent, ++/*165472*/ OPC_MoveChild7, ++/*165473*/ OPC_CheckInteger, 1, ++/*165475*/ OPC_CheckType, MVT::i32, ++/*165477*/ OPC_MoveParent, ++/*165478*/ OPC_MoveChild, 8, ++/*165480*/ OPC_CheckInteger, 1, ++/*165482*/ OPC_CheckType, MVT::i32, ++/*165484*/ OPC_MoveParent, ++/*165485*/ OPC_MoveChild, 9, ++/*165487*/ OPC_CheckInteger, 1, ++/*165489*/ OPC_CheckType, MVT::i32, ++/*165491*/ OPC_MoveParent, ++/*165492*/ OPC_MoveChild, 10, ++/*165494*/ OPC_CheckInteger, 1, ++/*165496*/ OPC_CheckType, MVT::i32, ++/*165498*/ OPC_MoveParent, ++/*165499*/ OPC_MoveChild, 11, ++/*165501*/ OPC_CheckInteger, 1, ++/*165503*/ OPC_CheckType, MVT::i32, ++/*165505*/ OPC_MoveParent, ++/*165506*/ OPC_MoveChild, 12, ++/*165508*/ OPC_CheckInteger, 1, ++/*165510*/ OPC_CheckType, MVT::i32, ++/*165512*/ OPC_MoveParent, ++/*165513*/ OPC_MoveChild, 13, ++/*165515*/ OPC_CheckInteger, 1, ++/*165517*/ OPC_CheckType, MVT::i32, ++/*165519*/ OPC_MoveParent, ++/*165520*/ OPC_MoveChild, 14, ++/*165522*/ OPC_CheckInteger, 1, ++/*165524*/ OPC_CheckType, MVT::i32, ++/*165526*/ OPC_MoveParent, ++/*165527*/ OPC_MoveChild, 15, ++/*165529*/ OPC_CheckInteger, 1, ++/*165531*/ OPC_CheckType, MVT::i32, ++/*165533*/ OPC_MoveParent, ++/*165534*/ OPC_MoveChild, 16, ++/*165536*/ OPC_CheckInteger, 1, ++/*165538*/ OPC_CheckType, MVT::i32, ++/*165540*/ OPC_MoveParent, ++/*165541*/ OPC_MoveChild, 17, ++/*165543*/ OPC_CheckInteger, 1, ++/*165545*/ OPC_CheckType, MVT::i32, ++/*165547*/ OPC_MoveParent, ++/*165548*/ OPC_MoveChild, 18, ++/*165550*/ OPC_CheckInteger, 1, ++/*165552*/ OPC_CheckType, MVT::i32, ++/*165554*/ OPC_MoveParent, ++/*165555*/ OPC_MoveChild, 19, ++/*165557*/ OPC_CheckInteger, 1, ++/*165559*/ OPC_CheckType, MVT::i32, ++/*165561*/ OPC_MoveParent, ++/*165562*/ OPC_MoveChild, 20, ++/*165564*/ OPC_CheckInteger, 1, ++/*165566*/ OPC_CheckType, MVT::i32, ++/*165568*/ OPC_MoveParent, ++/*165569*/ OPC_MoveChild, 21, ++/*165571*/ OPC_CheckInteger, 1, ++/*165573*/ OPC_CheckType, MVT::i32, ++/*165575*/ OPC_MoveParent, ++/*165576*/ OPC_MoveChild, 22, ++/*165578*/ OPC_CheckInteger, 1, ++/*165580*/ OPC_CheckType, MVT::i32, ++/*165582*/ OPC_MoveParent, ++/*165583*/ OPC_MoveChild, 23, ++/*165585*/ OPC_CheckInteger, 1, ++/*165587*/ OPC_CheckType, MVT::i32, ++/*165589*/ OPC_MoveParent, ++/*165590*/ OPC_MoveChild, 24, ++/*165592*/ OPC_CheckInteger, 1, ++/*165594*/ OPC_CheckType, MVT::i32, ++/*165596*/ OPC_MoveParent, ++/*165597*/ OPC_MoveChild, 25, ++/*165599*/ OPC_CheckInteger, 1, ++/*165601*/ OPC_CheckType, MVT::i32, ++/*165603*/ OPC_MoveParent, ++/*165604*/ OPC_MoveChild, 26, ++/*165606*/ OPC_CheckInteger, 1, ++/*165608*/ OPC_CheckType, MVT::i32, ++/*165610*/ OPC_MoveParent, ++/*165611*/ OPC_MoveChild, 27, ++/*165613*/ OPC_CheckInteger, 1, ++/*165615*/ OPC_CheckType, MVT::i32, ++/*165617*/ OPC_MoveParent, ++/*165618*/ OPC_MoveChild, 28, ++/*165620*/ OPC_CheckInteger, 1, ++/*165622*/ OPC_CheckType, MVT::i32, ++/*165624*/ OPC_MoveParent, ++/*165625*/ OPC_MoveChild, 29, ++/*165627*/ OPC_CheckInteger, 1, ++/*165629*/ OPC_CheckType, MVT::i32, ++/*165631*/ OPC_MoveParent, ++/*165632*/ OPC_MoveChild, 30, ++/*165634*/ OPC_CheckInteger, 1, ++/*165636*/ OPC_CheckType, MVT::i32, ++/*165638*/ OPC_MoveParent, ++/*165639*/ OPC_MoveChild, 31, ++/*165641*/ OPC_CheckInteger, 1, ++/*165643*/ OPC_CheckType, MVT::i32, ++/*165645*/ OPC_MoveParent, ++/*165646*/ OPC_CheckType, MVT::v32i8, ++/*165648*/ OPC_MoveParent, ++/*165649*/ OPC_CheckType, MVT::v32i8, ++/*165651*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*165653*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b)), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*165661*/ 0, /*End of Scope*/ ++/*165662*/ /*Scope*/ 42|128,10/*1322*/, /*->166986*/ ++/*165664*/ OPC_CheckChild0Same, 0, ++/*165666*/ OPC_MoveChild1, ++/*165667*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*165670*/ OPC_Scope, 15|128,5/*655*/, /*->166328*/ // 2 children in Scope ++/*165673*/ OPC_MoveChild0, ++/*165674*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*165677*/ OPC_CheckChild0Integer, 1, ++/*165679*/ OPC_CheckChild0Type, MVT::i32, ++/*165681*/ OPC_CheckChild1Integer, 1, ++/*165683*/ OPC_CheckChild1Type, MVT::i32, ++/*165685*/ OPC_CheckChild2Integer, 1, ++/*165687*/ OPC_CheckChild2Type, MVT::i32, ++/*165689*/ OPC_CheckChild3Integer, 1, ++/*165691*/ OPC_CheckChild3Type, MVT::i32, ++/*165693*/ OPC_CheckChild4Integer, 1, ++/*165695*/ OPC_CheckChild4Type, MVT::i32, ++/*165697*/ OPC_MoveChild5, ++/*165698*/ OPC_CheckInteger, 1, ++/*165700*/ OPC_CheckType, MVT::i32, ++/*165702*/ OPC_MoveParent, ++/*165703*/ OPC_MoveChild6, ++/*165704*/ OPC_CheckInteger, 1, ++/*165706*/ OPC_CheckType, MVT::i32, ++/*165708*/ OPC_MoveParent, ++/*165709*/ OPC_MoveChild7, ++/*165710*/ OPC_CheckInteger, 1, ++/*165712*/ OPC_CheckType, MVT::i32, ++/*165714*/ OPC_MoveParent, ++/*165715*/ OPC_MoveChild, 8, ++/*165717*/ OPC_CheckInteger, 1, ++/*165719*/ OPC_CheckType, MVT::i32, ++/*165721*/ OPC_MoveParent, ++/*165722*/ OPC_MoveChild, 9, ++/*165724*/ OPC_CheckInteger, 1, ++/*165726*/ OPC_CheckType, MVT::i32, ++/*165728*/ OPC_MoveParent, ++/*165729*/ OPC_MoveChild, 10, ++/*165731*/ OPC_CheckInteger, 1, ++/*165733*/ OPC_CheckType, MVT::i32, ++/*165735*/ OPC_MoveParent, ++/*165736*/ OPC_MoveChild, 11, ++/*165738*/ OPC_CheckInteger, 1, ++/*165740*/ OPC_CheckType, MVT::i32, ++/*165742*/ OPC_MoveParent, ++/*165743*/ OPC_MoveChild, 12, ++/*165745*/ OPC_CheckInteger, 1, ++/*165747*/ OPC_CheckType, MVT::i32, ++/*165749*/ OPC_MoveParent, ++/*165750*/ OPC_MoveChild, 13, ++/*165752*/ OPC_CheckInteger, 1, ++/*165754*/ OPC_CheckType, MVT::i32, ++/*165756*/ OPC_MoveParent, ++/*165757*/ OPC_MoveChild, 14, ++/*165759*/ OPC_CheckInteger, 1, ++/*165761*/ OPC_CheckType, MVT::i32, ++/*165763*/ OPC_MoveParent, ++/*165764*/ OPC_MoveChild, 15, ++/*165766*/ OPC_CheckInteger, 1, ++/*165768*/ OPC_CheckType, MVT::i32, ++/*165770*/ OPC_MoveParent, ++/*165771*/ OPC_MoveChild, 16, ++/*165773*/ OPC_CheckInteger, 1, ++/*165775*/ OPC_CheckType, MVT::i32, ++/*165777*/ OPC_MoveParent, ++/*165778*/ OPC_MoveChild, 17, ++/*165780*/ OPC_CheckInteger, 1, ++/*165782*/ OPC_CheckType, MVT::i32, ++/*165784*/ OPC_MoveParent, ++/*165785*/ OPC_MoveChild, 18, ++/*165787*/ OPC_CheckInteger, 1, ++/*165789*/ OPC_CheckType, MVT::i32, ++/*165791*/ OPC_MoveParent, ++/*165792*/ OPC_MoveChild, 19, ++/*165794*/ OPC_CheckInteger, 1, ++/*165796*/ OPC_CheckType, MVT::i32, ++/*165798*/ OPC_MoveParent, ++/*165799*/ OPC_MoveChild, 20, ++/*165801*/ OPC_CheckInteger, 1, ++/*165803*/ OPC_CheckType, MVT::i32, ++/*165805*/ OPC_MoveParent, ++/*165806*/ OPC_MoveChild, 21, ++/*165808*/ OPC_CheckInteger, 1, ++/*165810*/ OPC_CheckType, MVT::i32, ++/*165812*/ OPC_MoveParent, ++/*165813*/ OPC_MoveChild, 22, ++/*165815*/ OPC_CheckInteger, 1, ++/*165817*/ OPC_CheckType, MVT::i32, ++/*165819*/ OPC_MoveParent, ++/*165820*/ OPC_MoveChild, 23, ++/*165822*/ OPC_CheckInteger, 1, ++/*165824*/ OPC_CheckType, MVT::i32, ++/*165826*/ OPC_MoveParent, ++/*165827*/ OPC_MoveChild, 24, ++/*165829*/ OPC_CheckInteger, 1, ++/*165831*/ OPC_CheckType, MVT::i32, ++/*165833*/ OPC_MoveParent, ++/*165834*/ OPC_MoveChild, 25, ++/*165836*/ OPC_CheckInteger, 1, ++/*165838*/ OPC_CheckType, MVT::i32, ++/*165840*/ OPC_MoveParent, ++/*165841*/ OPC_MoveChild, 26, ++/*165843*/ OPC_CheckInteger, 1, ++/*165845*/ OPC_CheckType, MVT::i32, ++/*165847*/ OPC_MoveParent, ++/*165848*/ OPC_MoveChild, 27, ++/*165850*/ OPC_CheckInteger, 1, ++/*165852*/ OPC_CheckType, MVT::i32, ++/*165854*/ OPC_MoveParent, ++/*165855*/ OPC_MoveChild, 28, ++/*165857*/ OPC_CheckInteger, 1, ++/*165859*/ OPC_CheckType, MVT::i32, ++/*165861*/ OPC_MoveParent, ++/*165862*/ OPC_MoveChild, 29, ++/*165864*/ OPC_CheckInteger, 1, ++/*165866*/ OPC_CheckType, MVT::i32, ++/*165868*/ OPC_MoveParent, ++/*165869*/ OPC_MoveChild, 30, ++/*165871*/ OPC_CheckInteger, 1, ++/*165873*/ OPC_CheckType, MVT::i32, ++/*165875*/ OPC_MoveParent, ++/*165876*/ OPC_MoveChild, 31, ++/*165878*/ OPC_CheckInteger, 1, ++/*165880*/ OPC_CheckType, MVT::i32, ++/*165882*/ OPC_MoveParent, ++/*165883*/ OPC_MoveParent, ++/*165884*/ OPC_CheckChild1Same, 1, ++/*165886*/ OPC_MoveParent, ++/*165887*/ OPC_MoveParent, ++/*165888*/ OPC_MoveChild1, ++/*165889*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*165892*/ OPC_CheckChild0Integer, 7, ++/*165894*/ OPC_CheckChild0Type, MVT::i32, ++/*165896*/ OPC_CheckChild1Integer, 7, ++/*165898*/ OPC_CheckChild1Type, MVT::i32, ++/*165900*/ OPC_CheckChild2Integer, 7, ++/*165902*/ OPC_CheckChild2Type, MVT::i32, ++/*165904*/ OPC_CheckChild3Integer, 7, ++/*165906*/ OPC_CheckChild3Type, MVT::i32, ++/*165908*/ OPC_CheckChild4Integer, 7, ++/*165910*/ OPC_CheckChild4Type, MVT::i32, ++/*165912*/ OPC_MoveChild5, ++/*165913*/ OPC_CheckInteger, 7, ++/*165915*/ OPC_CheckType, MVT::i32, ++/*165917*/ OPC_MoveParent, ++/*165918*/ OPC_MoveChild6, ++/*165919*/ OPC_CheckInteger, 7, ++/*165921*/ OPC_CheckType, MVT::i32, ++/*165923*/ OPC_MoveParent, ++/*165924*/ OPC_MoveChild7, ++/*165925*/ OPC_CheckInteger, 7, ++/*165927*/ OPC_CheckType, MVT::i32, ++/*165929*/ OPC_MoveParent, ++/*165930*/ OPC_MoveChild, 8, ++/*165932*/ OPC_CheckInteger, 7, ++/*165934*/ OPC_CheckType, MVT::i32, ++/*165936*/ OPC_MoveParent, ++/*165937*/ OPC_MoveChild, 9, ++/*165939*/ OPC_CheckInteger, 7, ++/*165941*/ OPC_CheckType, MVT::i32, ++/*165943*/ OPC_MoveParent, ++/*165944*/ OPC_MoveChild, 10, ++/*165946*/ OPC_CheckInteger, 7, ++/*165948*/ OPC_CheckType, MVT::i32, ++/*165950*/ OPC_MoveParent, ++/*165951*/ OPC_MoveChild, 11, ++/*165953*/ OPC_CheckInteger, 7, ++/*165955*/ OPC_CheckType, MVT::i32, ++/*165957*/ OPC_MoveParent, ++/*165958*/ OPC_MoveChild, 12, ++/*165960*/ OPC_CheckInteger, 7, ++/*165962*/ OPC_CheckType, MVT::i32, ++/*165964*/ OPC_MoveParent, ++/*165965*/ OPC_MoveChild, 13, ++/*165967*/ OPC_CheckInteger, 7, ++/*165969*/ OPC_CheckType, MVT::i32, ++/*165971*/ OPC_MoveParent, ++/*165972*/ OPC_MoveChild, 14, ++/*165974*/ OPC_CheckInteger, 7, ++/*165976*/ OPC_CheckType, MVT::i32, ++/*165978*/ OPC_MoveParent, ++/*165979*/ OPC_MoveChild, 15, ++/*165981*/ OPC_CheckInteger, 7, ++/*165983*/ OPC_CheckType, MVT::i32, ++/*165985*/ OPC_MoveParent, ++/*165986*/ OPC_MoveChild, 16, ++/*165988*/ OPC_CheckInteger, 7, ++/*165990*/ OPC_CheckType, MVT::i32, ++/*165992*/ OPC_MoveParent, ++/*165993*/ OPC_MoveChild, 17, ++/*165995*/ OPC_CheckInteger, 7, ++/*165997*/ OPC_CheckType, MVT::i32, ++/*165999*/ OPC_MoveParent, ++/*166000*/ OPC_MoveChild, 18, ++/*166002*/ OPC_CheckInteger, 7, ++/*166004*/ OPC_CheckType, MVT::i32, ++/*166006*/ OPC_MoveParent, ++/*166007*/ OPC_MoveChild, 19, ++/*166009*/ OPC_CheckInteger, 7, ++/*166011*/ OPC_CheckType, MVT::i32, ++/*166013*/ OPC_MoveParent, ++/*166014*/ OPC_MoveChild, 20, ++/*166016*/ OPC_CheckInteger, 7, ++/*166018*/ OPC_CheckType, MVT::i32, ++/*166020*/ OPC_MoveParent, ++/*166021*/ OPC_MoveChild, 21, ++/*166023*/ OPC_CheckInteger, 7, ++/*166025*/ OPC_CheckType, MVT::i32, ++/*166027*/ OPC_MoveParent, ++/*166028*/ OPC_MoveChild, 22, ++/*166030*/ OPC_CheckInteger, 7, ++/*166032*/ OPC_CheckType, MVT::i32, ++/*166034*/ OPC_MoveParent, ++/*166035*/ OPC_MoveChild, 23, ++/*166037*/ OPC_CheckInteger, 7, ++/*166039*/ OPC_CheckType, MVT::i32, ++/*166041*/ OPC_MoveParent, ++/*166042*/ OPC_MoveChild, 24, ++/*166044*/ OPC_CheckInteger, 7, ++/*166046*/ OPC_CheckType, MVT::i32, ++/*166048*/ OPC_MoveParent, ++/*166049*/ OPC_MoveChild, 25, ++/*166051*/ OPC_CheckInteger, 7, ++/*166053*/ OPC_CheckType, MVT::i32, ++/*166055*/ OPC_MoveParent, ++/*166056*/ OPC_MoveChild, 26, ++/*166058*/ OPC_CheckInteger, 7, ++/*166060*/ OPC_CheckType, MVT::i32, ++/*166062*/ OPC_MoveParent, ++/*166063*/ OPC_MoveChild, 27, ++/*166065*/ OPC_CheckInteger, 7, ++/*166067*/ OPC_CheckType, MVT::i32, ++/*166069*/ OPC_MoveParent, ++/*166070*/ OPC_MoveChild, 28, ++/*166072*/ OPC_CheckInteger, 7, ++/*166074*/ OPC_CheckType, MVT::i32, ++/*166076*/ OPC_MoveParent, ++/*166077*/ OPC_MoveChild, 29, ++/*166079*/ OPC_CheckInteger, 7, ++/*166081*/ OPC_CheckType, MVT::i32, ++/*166083*/ OPC_MoveParent, ++/*166084*/ OPC_MoveChild, 30, ++/*166086*/ OPC_CheckInteger, 7, ++/*166088*/ OPC_CheckType, MVT::i32, ++/*166090*/ OPC_MoveParent, ++/*166091*/ OPC_MoveChild, 31, ++/*166093*/ OPC_CheckInteger, 7, ++/*166095*/ OPC_CheckType, MVT::i32, ++/*166097*/ OPC_MoveParent, ++/*166098*/ OPC_CheckType, MVT::v32i8, ++/*166100*/ OPC_MoveParent, ++/*166101*/ OPC_MoveParent, ++/*166102*/ OPC_MoveParent, ++/*166103*/ OPC_MoveChild1, ++/*166104*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*166107*/ OPC_CheckChild0Integer, 1, ++/*166109*/ OPC_CheckChild0Type, MVT::i32, ++/*166111*/ OPC_CheckChild1Integer, 1, ++/*166113*/ OPC_CheckChild1Type, MVT::i32, ++/*166115*/ OPC_CheckChild2Integer, 1, ++/*166117*/ OPC_CheckChild2Type, MVT::i32, ++/*166119*/ OPC_CheckChild3Integer, 1, ++/*166121*/ OPC_CheckChild3Type, MVT::i32, ++/*166123*/ OPC_CheckChild4Integer, 1, ++/*166125*/ OPC_CheckChild4Type, MVT::i32, ++/*166127*/ OPC_MoveChild5, ++/*166128*/ OPC_CheckInteger, 1, ++/*166130*/ OPC_CheckType, MVT::i32, ++/*166132*/ OPC_MoveParent, ++/*166133*/ OPC_MoveChild6, ++/*166134*/ OPC_CheckInteger, 1, ++/*166136*/ OPC_CheckType, MVT::i32, ++/*166138*/ OPC_MoveParent, ++/*166139*/ OPC_MoveChild7, ++/*166140*/ OPC_CheckInteger, 1, ++/*166142*/ OPC_CheckType, MVT::i32, ++/*166144*/ OPC_MoveParent, ++/*166145*/ OPC_MoveChild, 8, ++/*166147*/ OPC_CheckInteger, 1, ++/*166149*/ OPC_CheckType, MVT::i32, ++/*166151*/ OPC_MoveParent, ++/*166152*/ OPC_MoveChild, 9, ++/*166154*/ OPC_CheckInteger, 1, ++/*166156*/ OPC_CheckType, MVT::i32, ++/*166158*/ OPC_MoveParent, ++/*166159*/ OPC_MoveChild, 10, ++/*166161*/ OPC_CheckInteger, 1, ++/*166163*/ OPC_CheckType, MVT::i32, ++/*166165*/ OPC_MoveParent, ++/*166166*/ OPC_MoveChild, 11, ++/*166168*/ OPC_CheckInteger, 1, ++/*166170*/ OPC_CheckType, MVT::i32, ++/*166172*/ OPC_MoveParent, ++/*166173*/ OPC_MoveChild, 12, ++/*166175*/ OPC_CheckInteger, 1, ++/*166177*/ OPC_CheckType, MVT::i32, ++/*166179*/ OPC_MoveParent, ++/*166180*/ OPC_MoveChild, 13, ++/*166182*/ OPC_CheckInteger, 1, ++/*166184*/ OPC_CheckType, MVT::i32, ++/*166186*/ OPC_MoveParent, ++/*166187*/ OPC_MoveChild, 14, ++/*166189*/ OPC_CheckInteger, 1, ++/*166191*/ OPC_CheckType, MVT::i32, ++/*166193*/ OPC_MoveParent, ++/*166194*/ OPC_MoveChild, 15, ++/*166196*/ OPC_CheckInteger, 1, ++/*166198*/ OPC_CheckType, MVT::i32, ++/*166200*/ OPC_MoveParent, ++/*166201*/ OPC_MoveChild, 16, ++/*166203*/ OPC_CheckInteger, 1, ++/*166205*/ OPC_CheckType, MVT::i32, ++/*166207*/ OPC_MoveParent, ++/*166208*/ OPC_MoveChild, 17, ++/*166210*/ OPC_CheckInteger, 1, ++/*166212*/ OPC_CheckType, MVT::i32, ++/*166214*/ OPC_MoveParent, ++/*166215*/ OPC_MoveChild, 18, ++/*166217*/ OPC_CheckInteger, 1, ++/*166219*/ OPC_CheckType, MVT::i32, ++/*166221*/ OPC_MoveParent, ++/*166222*/ OPC_MoveChild, 19, ++/*166224*/ OPC_CheckInteger, 1, ++/*166226*/ OPC_CheckType, MVT::i32, ++/*166228*/ OPC_MoveParent, ++/*166229*/ OPC_MoveChild, 20, ++/*166231*/ OPC_CheckInteger, 1, ++/*166233*/ OPC_CheckType, MVT::i32, ++/*166235*/ OPC_MoveParent, ++/*166236*/ OPC_MoveChild, 21, ++/*166238*/ OPC_CheckInteger, 1, ++/*166240*/ OPC_CheckType, MVT::i32, ++/*166242*/ OPC_MoveParent, ++/*166243*/ OPC_MoveChild, 22, ++/*166245*/ OPC_CheckInteger, 1, ++/*166247*/ OPC_CheckType, MVT::i32, ++/*166249*/ OPC_MoveParent, ++/*166250*/ OPC_MoveChild, 23, ++/*166252*/ OPC_CheckInteger, 1, ++/*166254*/ OPC_CheckType, MVT::i32, ++/*166256*/ OPC_MoveParent, ++/*166257*/ OPC_MoveChild, 24, ++/*166259*/ OPC_CheckInteger, 1, ++/*166261*/ OPC_CheckType, MVT::i32, ++/*166263*/ OPC_MoveParent, ++/*166264*/ OPC_MoveChild, 25, ++/*166266*/ OPC_CheckInteger, 1, ++/*166268*/ OPC_CheckType, MVT::i32, ++/*166270*/ OPC_MoveParent, ++/*166271*/ OPC_MoveChild, 26, ++/*166273*/ OPC_CheckInteger, 1, ++/*166275*/ OPC_CheckType, MVT::i32, ++/*166277*/ OPC_MoveParent, ++/*166278*/ OPC_MoveChild, 27, ++/*166280*/ OPC_CheckInteger, 1, ++/*166282*/ OPC_CheckType, MVT::i32, ++/*166284*/ OPC_MoveParent, ++/*166285*/ OPC_MoveChild, 28, ++/*166287*/ OPC_CheckInteger, 1, ++/*166289*/ OPC_CheckType, MVT::i32, ++/*166291*/ OPC_MoveParent, ++/*166292*/ OPC_MoveChild, 29, ++/*166294*/ OPC_CheckInteger, 1, ++/*166296*/ OPC_CheckType, MVT::i32, ++/*166298*/ OPC_MoveParent, ++/*166299*/ OPC_MoveChild, 30, ++/*166301*/ OPC_CheckInteger, 1, ++/*166303*/ OPC_CheckType, MVT::i32, ++/*166305*/ OPC_MoveParent, ++/*166306*/ OPC_MoveChild, 31, ++/*166308*/ OPC_CheckInteger, 1, ++/*166310*/ OPC_CheckType, MVT::i32, ++/*166312*/ OPC_MoveParent, ++/*166313*/ OPC_CheckType, MVT::v32i8, ++/*166315*/ OPC_MoveParent, ++/*166316*/ OPC_CheckType, MVT::v32i8, ++/*166318*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*166320*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b)), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*166328*/ /*Scope*/ 15|128,5/*655*/, /*->166985*/ ++/*166330*/ OPC_CheckChild0Same, 1, ++/*166332*/ OPC_MoveChild1, ++/*166333*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*166336*/ OPC_CheckChild0Integer, 1, ++/*166338*/ OPC_CheckChild0Type, MVT::i32, ++/*166340*/ OPC_CheckChild1Integer, 1, ++/*166342*/ OPC_CheckChild1Type, MVT::i32, ++/*166344*/ OPC_CheckChild2Integer, 1, ++/*166346*/ OPC_CheckChild2Type, MVT::i32, ++/*166348*/ OPC_CheckChild3Integer, 1, ++/*166350*/ OPC_CheckChild3Type, MVT::i32, ++/*166352*/ OPC_CheckChild4Integer, 1, ++/*166354*/ OPC_CheckChild4Type, MVT::i32, ++/*166356*/ OPC_MoveChild5, ++/*166357*/ OPC_CheckInteger, 1, ++/*166359*/ OPC_CheckType, MVT::i32, ++/*166361*/ OPC_MoveParent, ++/*166362*/ OPC_MoveChild6, ++/*166363*/ OPC_CheckInteger, 1, ++/*166365*/ OPC_CheckType, MVT::i32, ++/*166367*/ OPC_MoveParent, ++/*166368*/ OPC_MoveChild7, ++/*166369*/ OPC_CheckInteger, 1, ++/*166371*/ OPC_CheckType, MVT::i32, ++/*166373*/ OPC_MoveParent, ++/*166374*/ OPC_MoveChild, 8, ++/*166376*/ OPC_CheckInteger, 1, ++/*166378*/ OPC_CheckType, MVT::i32, ++/*166380*/ OPC_MoveParent, ++/*166381*/ OPC_MoveChild, 9, ++/*166383*/ OPC_CheckInteger, 1, ++/*166385*/ OPC_CheckType, MVT::i32, ++/*166387*/ OPC_MoveParent, ++/*166388*/ OPC_MoveChild, 10, ++/*166390*/ OPC_CheckInteger, 1, ++/*166392*/ OPC_CheckType, MVT::i32, ++/*166394*/ OPC_MoveParent, ++/*166395*/ OPC_MoveChild, 11, ++/*166397*/ OPC_CheckInteger, 1, ++/*166399*/ OPC_CheckType, MVT::i32, ++/*166401*/ OPC_MoveParent, ++/*166402*/ OPC_MoveChild, 12, ++/*166404*/ OPC_CheckInteger, 1, ++/*166406*/ OPC_CheckType, MVT::i32, ++/*166408*/ OPC_MoveParent, ++/*166409*/ OPC_MoveChild, 13, ++/*166411*/ OPC_CheckInteger, 1, ++/*166413*/ OPC_CheckType, MVT::i32, ++/*166415*/ OPC_MoveParent, ++/*166416*/ OPC_MoveChild, 14, ++/*166418*/ OPC_CheckInteger, 1, ++/*166420*/ OPC_CheckType, MVT::i32, ++/*166422*/ OPC_MoveParent, ++/*166423*/ OPC_MoveChild, 15, ++/*166425*/ OPC_CheckInteger, 1, ++/*166427*/ OPC_CheckType, MVT::i32, ++/*166429*/ OPC_MoveParent, ++/*166430*/ OPC_MoveChild, 16, ++/*166432*/ OPC_CheckInteger, 1, ++/*166434*/ OPC_CheckType, MVT::i32, ++/*166436*/ OPC_MoveParent, ++/*166437*/ OPC_MoveChild, 17, ++/*166439*/ OPC_CheckInteger, 1, ++/*166441*/ OPC_CheckType, MVT::i32, ++/*166443*/ OPC_MoveParent, ++/*166444*/ OPC_MoveChild, 18, ++/*166446*/ OPC_CheckInteger, 1, ++/*166448*/ OPC_CheckType, MVT::i32, ++/*166450*/ OPC_MoveParent, ++/*166451*/ OPC_MoveChild, 19, ++/*166453*/ OPC_CheckInteger, 1, ++/*166455*/ OPC_CheckType, MVT::i32, ++/*166457*/ OPC_MoveParent, ++/*166458*/ OPC_MoveChild, 20, ++/*166460*/ OPC_CheckInteger, 1, ++/*166462*/ OPC_CheckType, MVT::i32, ++/*166464*/ OPC_MoveParent, ++/*166465*/ OPC_MoveChild, 21, ++/*166467*/ OPC_CheckInteger, 1, ++/*166469*/ OPC_CheckType, MVT::i32, ++/*166471*/ OPC_MoveParent, ++/*166472*/ OPC_MoveChild, 22, ++/*166474*/ OPC_CheckInteger, 1, ++/*166476*/ OPC_CheckType, MVT::i32, ++/*166478*/ OPC_MoveParent, ++/*166479*/ OPC_MoveChild, 23, ++/*166481*/ OPC_CheckInteger, 1, ++/*166483*/ OPC_CheckType, MVT::i32, ++/*166485*/ OPC_MoveParent, ++/*166486*/ OPC_MoveChild, 24, ++/*166488*/ OPC_CheckInteger, 1, ++/*166490*/ OPC_CheckType, MVT::i32, ++/*166492*/ OPC_MoveParent, ++/*166493*/ OPC_MoveChild, 25, ++/*166495*/ OPC_CheckInteger, 1, ++/*166497*/ OPC_CheckType, MVT::i32, ++/*166499*/ OPC_MoveParent, ++/*166500*/ OPC_MoveChild, 26, ++/*166502*/ OPC_CheckInteger, 1, ++/*166504*/ OPC_CheckType, MVT::i32, ++/*166506*/ OPC_MoveParent, ++/*166507*/ OPC_MoveChild, 27, ++/*166509*/ OPC_CheckInteger, 1, ++/*166511*/ OPC_CheckType, MVT::i32, ++/*166513*/ OPC_MoveParent, ++/*166514*/ OPC_MoveChild, 28, ++/*166516*/ OPC_CheckInteger, 1, ++/*166518*/ OPC_CheckType, MVT::i32, ++/*166520*/ OPC_MoveParent, ++/*166521*/ OPC_MoveChild, 29, ++/*166523*/ OPC_CheckInteger, 1, ++/*166525*/ OPC_CheckType, MVT::i32, ++/*166527*/ OPC_MoveParent, ++/*166528*/ OPC_MoveChild, 30, ++/*166530*/ OPC_CheckInteger, 1, ++/*166532*/ OPC_CheckType, MVT::i32, ++/*166534*/ OPC_MoveParent, ++/*166535*/ OPC_MoveChild, 31, ++/*166537*/ OPC_CheckInteger, 1, ++/*166539*/ OPC_CheckType, MVT::i32, ++/*166541*/ OPC_MoveParent, ++/*166542*/ OPC_MoveParent, ++/*166543*/ OPC_MoveParent, ++/*166544*/ OPC_MoveParent, ++/*166545*/ OPC_MoveChild1, ++/*166546*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*166549*/ OPC_CheckChild0Integer, 7, ++/*166551*/ OPC_CheckChild0Type, MVT::i32, ++/*166553*/ OPC_CheckChild1Integer, 7, ++/*166555*/ OPC_CheckChild1Type, MVT::i32, ++/*166557*/ OPC_CheckChild2Integer, 7, ++/*166559*/ OPC_CheckChild2Type, MVT::i32, ++/*166561*/ OPC_CheckChild3Integer, 7, ++/*166563*/ OPC_CheckChild3Type, MVT::i32, ++/*166565*/ OPC_CheckChild4Integer, 7, ++/*166567*/ OPC_CheckChild4Type, MVT::i32, ++/*166569*/ OPC_MoveChild5, ++/*166570*/ OPC_CheckInteger, 7, ++/*166572*/ OPC_CheckType, MVT::i32, ++/*166574*/ OPC_MoveParent, ++/*166575*/ OPC_MoveChild6, ++/*166576*/ OPC_CheckInteger, 7, ++/*166578*/ OPC_CheckType, MVT::i32, ++/*166580*/ OPC_MoveParent, ++/*166581*/ OPC_MoveChild7, ++/*166582*/ OPC_CheckInteger, 7, ++/*166584*/ OPC_CheckType, MVT::i32, ++/*166586*/ OPC_MoveParent, ++/*166587*/ OPC_MoveChild, 8, ++/*166589*/ OPC_CheckInteger, 7, ++/*166591*/ OPC_CheckType, MVT::i32, ++/*166593*/ OPC_MoveParent, ++/*166594*/ OPC_MoveChild, 9, ++/*166596*/ OPC_CheckInteger, 7, ++/*166598*/ OPC_CheckType, MVT::i32, ++/*166600*/ OPC_MoveParent, ++/*166601*/ OPC_MoveChild, 10, ++/*166603*/ OPC_CheckInteger, 7, ++/*166605*/ OPC_CheckType, MVT::i32, ++/*166607*/ OPC_MoveParent, ++/*166608*/ OPC_MoveChild, 11, ++/*166610*/ OPC_CheckInteger, 7, ++/*166612*/ OPC_CheckType, MVT::i32, ++/*166614*/ OPC_MoveParent, ++/*166615*/ OPC_MoveChild, 12, ++/*166617*/ OPC_CheckInteger, 7, ++/*166619*/ OPC_CheckType, MVT::i32, ++/*166621*/ OPC_MoveParent, ++/*166622*/ OPC_MoveChild, 13, ++/*166624*/ OPC_CheckInteger, 7, ++/*166626*/ OPC_CheckType, MVT::i32, ++/*166628*/ OPC_MoveParent, ++/*166629*/ OPC_MoveChild, 14, ++/*166631*/ OPC_CheckInteger, 7, ++/*166633*/ OPC_CheckType, MVT::i32, ++/*166635*/ OPC_MoveParent, ++/*166636*/ OPC_MoveChild, 15, ++/*166638*/ OPC_CheckInteger, 7, ++/*166640*/ OPC_CheckType, MVT::i32, ++/*166642*/ OPC_MoveParent, ++/*166643*/ OPC_MoveChild, 16, ++/*166645*/ OPC_CheckInteger, 7, ++/*166647*/ OPC_CheckType, MVT::i32, ++/*166649*/ OPC_MoveParent, ++/*166650*/ OPC_MoveChild, 17, ++/*166652*/ OPC_CheckInteger, 7, ++/*166654*/ OPC_CheckType, MVT::i32, ++/*166656*/ OPC_MoveParent, ++/*166657*/ OPC_MoveChild, 18, ++/*166659*/ OPC_CheckInteger, 7, ++/*166661*/ OPC_CheckType, MVT::i32, ++/*166663*/ OPC_MoveParent, ++/*166664*/ OPC_MoveChild, 19, ++/*166666*/ OPC_CheckInteger, 7, ++/*166668*/ OPC_CheckType, MVT::i32, ++/*166670*/ OPC_MoveParent, ++/*166671*/ OPC_MoveChild, 20, ++/*166673*/ OPC_CheckInteger, 7, ++/*166675*/ OPC_CheckType, MVT::i32, ++/*166677*/ OPC_MoveParent, ++/*166678*/ OPC_MoveChild, 21, ++/*166680*/ OPC_CheckInteger, 7, ++/*166682*/ OPC_CheckType, MVT::i32, ++/*166684*/ OPC_MoveParent, ++/*166685*/ OPC_MoveChild, 22, ++/*166687*/ OPC_CheckInteger, 7, ++/*166689*/ OPC_CheckType, MVT::i32, ++/*166691*/ OPC_MoveParent, ++/*166692*/ OPC_MoveChild, 23, ++/*166694*/ OPC_CheckInteger, 7, ++/*166696*/ OPC_CheckType, MVT::i32, ++/*166698*/ OPC_MoveParent, ++/*166699*/ OPC_MoveChild, 24, ++/*166701*/ OPC_CheckInteger, 7, ++/*166703*/ OPC_CheckType, MVT::i32, ++/*166705*/ OPC_MoveParent, ++/*166706*/ OPC_MoveChild, 25, ++/*166708*/ OPC_CheckInteger, 7, ++/*166710*/ OPC_CheckType, MVT::i32, ++/*166712*/ OPC_MoveParent, ++/*166713*/ OPC_MoveChild, 26, ++/*166715*/ OPC_CheckInteger, 7, ++/*166717*/ OPC_CheckType, MVT::i32, ++/*166719*/ OPC_MoveParent, ++/*166720*/ OPC_MoveChild, 27, ++/*166722*/ OPC_CheckInteger, 7, ++/*166724*/ OPC_CheckType, MVT::i32, ++/*166726*/ OPC_MoveParent, ++/*166727*/ OPC_MoveChild, 28, ++/*166729*/ OPC_CheckInteger, 7, ++/*166731*/ OPC_CheckType, MVT::i32, ++/*166733*/ OPC_MoveParent, ++/*166734*/ OPC_MoveChild, 29, ++/*166736*/ OPC_CheckInteger, 7, ++/*166738*/ OPC_CheckType, MVT::i32, ++/*166740*/ OPC_MoveParent, ++/*166741*/ OPC_MoveChild, 30, ++/*166743*/ OPC_CheckInteger, 7, ++/*166745*/ OPC_CheckType, MVT::i32, ++/*166747*/ OPC_MoveParent, ++/*166748*/ OPC_MoveChild, 31, ++/*166750*/ OPC_CheckInteger, 7, ++/*166752*/ OPC_CheckType, MVT::i32, ++/*166754*/ OPC_MoveParent, ++/*166755*/ OPC_CheckType, MVT::v32i8, ++/*166757*/ OPC_MoveParent, ++/*166758*/ OPC_MoveParent, ++/*166759*/ OPC_MoveParent, ++/*166760*/ OPC_MoveChild1, ++/*166761*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*166764*/ OPC_CheckChild0Integer, 1, ++/*166766*/ OPC_CheckChild0Type, MVT::i32, ++/*166768*/ OPC_CheckChild1Integer, 1, ++/*166770*/ OPC_CheckChild1Type, MVT::i32, ++/*166772*/ OPC_CheckChild2Integer, 1, ++/*166774*/ OPC_CheckChild2Type, MVT::i32, ++/*166776*/ OPC_CheckChild3Integer, 1, ++/*166778*/ OPC_CheckChild3Type, MVT::i32, ++/*166780*/ OPC_CheckChild4Integer, 1, ++/*166782*/ OPC_CheckChild4Type, MVT::i32, ++/*166784*/ OPC_MoveChild5, ++/*166785*/ OPC_CheckInteger, 1, ++/*166787*/ OPC_CheckType, MVT::i32, ++/*166789*/ OPC_MoveParent, ++/*166790*/ OPC_MoveChild6, ++/*166791*/ OPC_CheckInteger, 1, ++/*166793*/ OPC_CheckType, MVT::i32, ++/*166795*/ OPC_MoveParent, ++/*166796*/ OPC_MoveChild7, ++/*166797*/ OPC_CheckInteger, 1, ++/*166799*/ OPC_CheckType, MVT::i32, ++/*166801*/ OPC_MoveParent, ++/*166802*/ OPC_MoveChild, 8, ++/*166804*/ OPC_CheckInteger, 1, ++/*166806*/ OPC_CheckType, MVT::i32, ++/*166808*/ OPC_MoveParent, ++/*166809*/ OPC_MoveChild, 9, ++/*166811*/ OPC_CheckInteger, 1, ++/*166813*/ OPC_CheckType, MVT::i32, ++/*166815*/ OPC_MoveParent, ++/*166816*/ OPC_MoveChild, 10, ++/*166818*/ OPC_CheckInteger, 1, ++/*166820*/ OPC_CheckType, MVT::i32, ++/*166822*/ OPC_MoveParent, ++/*166823*/ OPC_MoveChild, 11, ++/*166825*/ OPC_CheckInteger, 1, ++/*166827*/ OPC_CheckType, MVT::i32, ++/*166829*/ OPC_MoveParent, ++/*166830*/ OPC_MoveChild, 12, ++/*166832*/ OPC_CheckInteger, 1, ++/*166834*/ OPC_CheckType, MVT::i32, ++/*166836*/ OPC_MoveParent, ++/*166837*/ OPC_MoveChild, 13, ++/*166839*/ OPC_CheckInteger, 1, ++/*166841*/ OPC_CheckType, MVT::i32, ++/*166843*/ OPC_MoveParent, ++/*166844*/ OPC_MoveChild, 14, ++/*166846*/ OPC_CheckInteger, 1, ++/*166848*/ OPC_CheckType, MVT::i32, ++/*166850*/ OPC_MoveParent, ++/*166851*/ OPC_MoveChild, 15, ++/*166853*/ OPC_CheckInteger, 1, ++/*166855*/ OPC_CheckType, MVT::i32, ++/*166857*/ OPC_MoveParent, ++/*166858*/ OPC_MoveChild, 16, ++/*166860*/ OPC_CheckInteger, 1, ++/*166862*/ OPC_CheckType, MVT::i32, ++/*166864*/ OPC_MoveParent, ++/*166865*/ OPC_MoveChild, 17, ++/*166867*/ OPC_CheckInteger, 1, ++/*166869*/ OPC_CheckType, MVT::i32, ++/*166871*/ OPC_MoveParent, ++/*166872*/ OPC_MoveChild, 18, ++/*166874*/ OPC_CheckInteger, 1, ++/*166876*/ OPC_CheckType, MVT::i32, ++/*166878*/ OPC_MoveParent, ++/*166879*/ OPC_MoveChild, 19, ++/*166881*/ OPC_CheckInteger, 1, ++/*166883*/ OPC_CheckType, MVT::i32, ++/*166885*/ OPC_MoveParent, ++/*166886*/ OPC_MoveChild, 20, ++/*166888*/ OPC_CheckInteger, 1, ++/*166890*/ OPC_CheckType, MVT::i32, ++/*166892*/ OPC_MoveParent, ++/*166893*/ OPC_MoveChild, 21, ++/*166895*/ OPC_CheckInteger, 1, ++/*166897*/ OPC_CheckType, MVT::i32, ++/*166899*/ OPC_MoveParent, ++/*166900*/ OPC_MoveChild, 22, ++/*166902*/ OPC_CheckInteger, 1, ++/*166904*/ OPC_CheckType, MVT::i32, ++/*166906*/ OPC_MoveParent, ++/*166907*/ OPC_MoveChild, 23, ++/*166909*/ OPC_CheckInteger, 1, ++/*166911*/ OPC_CheckType, MVT::i32, ++/*166913*/ OPC_MoveParent, ++/*166914*/ OPC_MoveChild, 24, ++/*166916*/ OPC_CheckInteger, 1, ++/*166918*/ OPC_CheckType, MVT::i32, ++/*166920*/ OPC_MoveParent, ++/*166921*/ OPC_MoveChild, 25, ++/*166923*/ OPC_CheckInteger, 1, ++/*166925*/ OPC_CheckType, MVT::i32, ++/*166927*/ OPC_MoveParent, ++/*166928*/ OPC_MoveChild, 26, ++/*166930*/ OPC_CheckInteger, 1, ++/*166932*/ OPC_CheckType, MVT::i32, ++/*166934*/ OPC_MoveParent, ++/*166935*/ OPC_MoveChild, 27, ++/*166937*/ OPC_CheckInteger, 1, ++/*166939*/ OPC_CheckType, MVT::i32, ++/*166941*/ OPC_MoveParent, ++/*166942*/ OPC_MoveChild, 28, ++/*166944*/ OPC_CheckInteger, 1, ++/*166946*/ OPC_CheckType, MVT::i32, ++/*166948*/ OPC_MoveParent, ++/*166949*/ OPC_MoveChild, 29, ++/*166951*/ OPC_CheckInteger, 1, ++/*166953*/ OPC_CheckType, MVT::i32, ++/*166955*/ OPC_MoveParent, ++/*166956*/ OPC_MoveChild, 30, ++/*166958*/ OPC_CheckInteger, 1, ++/*166960*/ OPC_CheckType, MVT::i32, ++/*166962*/ OPC_MoveParent, ++/*166963*/ OPC_MoveChild, 31, ++/*166965*/ OPC_CheckInteger, 1, ++/*166967*/ OPC_CheckType, MVT::i32, ++/*166969*/ OPC_MoveParent, ++/*166970*/ OPC_CheckType, MVT::v32i8, ++/*166972*/ OPC_MoveParent, ++/*166973*/ OPC_CheckType, MVT::v32i8, ++/*166975*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*166977*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b)), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*166985*/ 0, /*End of Scope*/ ++/*166986*/ /*Scope*/ 16|128,36/*4624*/, /*->171612*/ ++/*166988*/ OPC_MoveChild0, ++/*166989*/ OPC_SwitchOpcode /*2 cases */, 17|128,5/*657*/, TARGET_VAL(ISD::BUILD_VECTOR),// ->167651 ++/*166994*/ OPC_CheckChild0Integer, 1, ++/*166996*/ OPC_CheckChild0Type, MVT::i32, ++/*166998*/ OPC_CheckChild1Integer, 1, ++/*167000*/ OPC_CheckChild1Type, MVT::i32, ++/*167002*/ OPC_CheckChild2Integer, 1, ++/*167004*/ OPC_CheckChild2Type, MVT::i32, ++/*167006*/ OPC_CheckChild3Integer, 1, ++/*167008*/ OPC_CheckChild3Type, MVT::i32, ++/*167010*/ OPC_CheckChild4Integer, 1, ++/*167012*/ OPC_CheckChild4Type, MVT::i32, ++/*167014*/ OPC_MoveChild5, ++/*167015*/ OPC_CheckInteger, 1, ++/*167017*/ OPC_CheckType, MVT::i32, ++/*167019*/ OPC_MoveParent, ++/*167020*/ OPC_MoveChild6, ++/*167021*/ OPC_CheckInteger, 1, ++/*167023*/ OPC_CheckType, MVT::i32, ++/*167025*/ OPC_MoveParent, ++/*167026*/ OPC_MoveChild7, ++/*167027*/ OPC_CheckInteger, 1, ++/*167029*/ OPC_CheckType, MVT::i32, ++/*167031*/ OPC_MoveParent, ++/*167032*/ OPC_MoveChild, 8, ++/*167034*/ OPC_CheckInteger, 1, ++/*167036*/ OPC_CheckType, MVT::i32, ++/*167038*/ OPC_MoveParent, ++/*167039*/ OPC_MoveChild, 9, ++/*167041*/ OPC_CheckInteger, 1, ++/*167043*/ OPC_CheckType, MVT::i32, ++/*167045*/ OPC_MoveParent, ++/*167046*/ OPC_MoveChild, 10, ++/*167048*/ OPC_CheckInteger, 1, ++/*167050*/ OPC_CheckType, MVT::i32, ++/*167052*/ OPC_MoveParent, ++/*167053*/ OPC_MoveChild, 11, ++/*167055*/ OPC_CheckInteger, 1, ++/*167057*/ OPC_CheckType, MVT::i32, ++/*167059*/ OPC_MoveParent, ++/*167060*/ OPC_MoveChild, 12, ++/*167062*/ OPC_CheckInteger, 1, ++/*167064*/ OPC_CheckType, MVT::i32, ++/*167066*/ OPC_MoveParent, ++/*167067*/ OPC_MoveChild, 13, ++/*167069*/ OPC_CheckInteger, 1, ++/*167071*/ OPC_CheckType, MVT::i32, ++/*167073*/ OPC_MoveParent, ++/*167074*/ OPC_MoveChild, 14, ++/*167076*/ OPC_CheckInteger, 1, ++/*167078*/ OPC_CheckType, MVT::i32, ++/*167080*/ OPC_MoveParent, ++/*167081*/ OPC_MoveChild, 15, ++/*167083*/ OPC_CheckInteger, 1, ++/*167085*/ OPC_CheckType, MVT::i32, ++/*167087*/ OPC_MoveParent, ++/*167088*/ OPC_MoveChild, 16, ++/*167090*/ OPC_CheckInteger, 1, ++/*167092*/ OPC_CheckType, MVT::i32, ++/*167094*/ OPC_MoveParent, ++/*167095*/ OPC_MoveChild, 17, ++/*167097*/ OPC_CheckInteger, 1, ++/*167099*/ OPC_CheckType, MVT::i32, ++/*167101*/ OPC_MoveParent, ++/*167102*/ OPC_MoveChild, 18, ++/*167104*/ OPC_CheckInteger, 1, ++/*167106*/ OPC_CheckType, MVT::i32, ++/*167108*/ OPC_MoveParent, ++/*167109*/ OPC_MoveChild, 19, ++/*167111*/ OPC_CheckInteger, 1, ++/*167113*/ OPC_CheckType, MVT::i32, ++/*167115*/ OPC_MoveParent, ++/*167116*/ OPC_MoveChild, 20, ++/*167118*/ OPC_CheckInteger, 1, ++/*167120*/ OPC_CheckType, MVT::i32, ++/*167122*/ OPC_MoveParent, ++/*167123*/ OPC_MoveChild, 21, ++/*167125*/ OPC_CheckInteger, 1, ++/*167127*/ OPC_CheckType, MVT::i32, ++/*167129*/ OPC_MoveParent, ++/*167130*/ OPC_MoveChild, 22, ++/*167132*/ OPC_CheckInteger, 1, ++/*167134*/ OPC_CheckType, MVT::i32, ++/*167136*/ OPC_MoveParent, ++/*167137*/ OPC_MoveChild, 23, ++/*167139*/ OPC_CheckInteger, 1, ++/*167141*/ OPC_CheckType, MVT::i32, ++/*167143*/ OPC_MoveParent, ++/*167144*/ OPC_MoveChild, 24, ++/*167146*/ OPC_CheckInteger, 1, ++/*167148*/ OPC_CheckType, MVT::i32, ++/*167150*/ OPC_MoveParent, ++/*167151*/ OPC_MoveChild, 25, ++/*167153*/ OPC_CheckInteger, 1, ++/*167155*/ OPC_CheckType, MVT::i32, ++/*167157*/ OPC_MoveParent, ++/*167158*/ OPC_MoveChild, 26, ++/*167160*/ OPC_CheckInteger, 1, ++/*167162*/ OPC_CheckType, MVT::i32, ++/*167164*/ OPC_MoveParent, ++/*167165*/ OPC_MoveChild, 27, ++/*167167*/ OPC_CheckInteger, 1, ++/*167169*/ OPC_CheckType, MVT::i32, ++/*167171*/ OPC_MoveParent, ++/*167172*/ OPC_MoveChild, 28, ++/*167174*/ OPC_CheckInteger, 1, ++/*167176*/ OPC_CheckType, MVT::i32, ++/*167178*/ OPC_MoveParent, ++/*167179*/ OPC_MoveChild, 29, ++/*167181*/ OPC_CheckInteger, 1, ++/*167183*/ OPC_CheckType, MVT::i32, ++/*167185*/ OPC_MoveParent, ++/*167186*/ OPC_MoveChild, 30, ++/*167188*/ OPC_CheckInteger, 1, ++/*167190*/ OPC_CheckType, MVT::i32, ++/*167192*/ OPC_MoveParent, ++/*167193*/ OPC_MoveChild, 31, ++/*167195*/ OPC_CheckInteger, 1, ++/*167197*/ OPC_CheckType, MVT::i32, ++/*167199*/ OPC_MoveParent, ++/*167200*/ OPC_MoveParent, ++/*167201*/ OPC_MoveChild1, ++/*167202*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*167205*/ OPC_CheckChild0Same, 1, ++/*167207*/ OPC_CheckChild1Same, 0, ++/*167209*/ OPC_MoveParent, ++/*167210*/ OPC_MoveParent, ++/*167211*/ OPC_MoveChild1, ++/*167212*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*167215*/ OPC_CheckChild0Integer, 7, ++/*167217*/ OPC_CheckChild0Type, MVT::i32, ++/*167219*/ OPC_CheckChild1Integer, 7, ++/*167221*/ OPC_CheckChild1Type, MVT::i32, ++/*167223*/ OPC_CheckChild2Integer, 7, ++/*167225*/ OPC_CheckChild2Type, MVT::i32, ++/*167227*/ OPC_CheckChild3Integer, 7, ++/*167229*/ OPC_CheckChild3Type, MVT::i32, ++/*167231*/ OPC_CheckChild4Integer, 7, ++/*167233*/ OPC_CheckChild4Type, MVT::i32, ++/*167235*/ OPC_MoveChild5, ++/*167236*/ OPC_CheckInteger, 7, ++/*167238*/ OPC_CheckType, MVT::i32, ++/*167240*/ OPC_MoveParent, ++/*167241*/ OPC_MoveChild6, ++/*167242*/ OPC_CheckInteger, 7, ++/*167244*/ OPC_CheckType, MVT::i32, ++/*167246*/ OPC_MoveParent, ++/*167247*/ OPC_MoveChild7, ++/*167248*/ OPC_CheckInteger, 7, ++/*167250*/ OPC_CheckType, MVT::i32, ++/*167252*/ OPC_MoveParent, ++/*167253*/ OPC_MoveChild, 8, ++/*167255*/ OPC_CheckInteger, 7, ++/*167257*/ OPC_CheckType, MVT::i32, ++/*167259*/ OPC_MoveParent, ++/*167260*/ OPC_MoveChild, 9, ++/*167262*/ OPC_CheckInteger, 7, ++/*167264*/ OPC_CheckType, MVT::i32, ++/*167266*/ OPC_MoveParent, ++/*167267*/ OPC_MoveChild, 10, ++/*167269*/ OPC_CheckInteger, 7, ++/*167271*/ OPC_CheckType, MVT::i32, ++/*167273*/ OPC_MoveParent, ++/*167274*/ OPC_MoveChild, 11, ++/*167276*/ OPC_CheckInteger, 7, ++/*167278*/ OPC_CheckType, MVT::i32, ++/*167280*/ OPC_MoveParent, ++/*167281*/ OPC_MoveChild, 12, ++/*167283*/ OPC_CheckInteger, 7, ++/*167285*/ OPC_CheckType, MVT::i32, ++/*167287*/ OPC_MoveParent, ++/*167288*/ OPC_MoveChild, 13, ++/*167290*/ OPC_CheckInteger, 7, ++/*167292*/ OPC_CheckType, MVT::i32, ++/*167294*/ OPC_MoveParent, ++/*167295*/ OPC_MoveChild, 14, ++/*167297*/ OPC_CheckInteger, 7, ++/*167299*/ OPC_CheckType, MVT::i32, ++/*167301*/ OPC_MoveParent, ++/*167302*/ OPC_MoveChild, 15, ++/*167304*/ OPC_CheckInteger, 7, ++/*167306*/ OPC_CheckType, MVT::i32, ++/*167308*/ OPC_MoveParent, ++/*167309*/ OPC_MoveChild, 16, ++/*167311*/ OPC_CheckInteger, 7, ++/*167313*/ OPC_CheckType, MVT::i32, ++/*167315*/ OPC_MoveParent, ++/*167316*/ OPC_MoveChild, 17, ++/*167318*/ OPC_CheckInteger, 7, ++/*167320*/ OPC_CheckType, MVT::i32, ++/*167322*/ OPC_MoveParent, ++/*167323*/ OPC_MoveChild, 18, ++/*167325*/ OPC_CheckInteger, 7, ++/*167327*/ OPC_CheckType, MVT::i32, ++/*167329*/ OPC_MoveParent, ++/*167330*/ OPC_MoveChild, 19, ++/*167332*/ OPC_CheckInteger, 7, ++/*167334*/ OPC_CheckType, MVT::i32, ++/*167336*/ OPC_MoveParent, ++/*167337*/ OPC_MoveChild, 20, ++/*167339*/ OPC_CheckInteger, 7, ++/*167341*/ OPC_CheckType, MVT::i32, ++/*167343*/ OPC_MoveParent, ++/*167344*/ OPC_MoveChild, 21, ++/*167346*/ OPC_CheckInteger, 7, ++/*167348*/ OPC_CheckType, MVT::i32, ++/*167350*/ OPC_MoveParent, ++/*167351*/ OPC_MoveChild, 22, ++/*167353*/ OPC_CheckInteger, 7, ++/*167355*/ OPC_CheckType, MVT::i32, ++/*167357*/ OPC_MoveParent, ++/*167358*/ OPC_MoveChild, 23, ++/*167360*/ OPC_CheckInteger, 7, ++/*167362*/ OPC_CheckType, MVT::i32, ++/*167364*/ OPC_MoveParent, ++/*167365*/ OPC_MoveChild, 24, ++/*167367*/ OPC_CheckInteger, 7, ++/*167369*/ OPC_CheckType, MVT::i32, ++/*167371*/ OPC_MoveParent, ++/*167372*/ OPC_MoveChild, 25, ++/*167374*/ OPC_CheckInteger, 7, ++/*167376*/ OPC_CheckType, MVT::i32, ++/*167378*/ OPC_MoveParent, ++/*167379*/ OPC_MoveChild, 26, ++/*167381*/ OPC_CheckInteger, 7, ++/*167383*/ OPC_CheckType, MVT::i32, ++/*167385*/ OPC_MoveParent, ++/*167386*/ OPC_MoveChild, 27, ++/*167388*/ OPC_CheckInteger, 7, ++/*167390*/ OPC_CheckType, MVT::i32, ++/*167392*/ OPC_MoveParent, ++/*167393*/ OPC_MoveChild, 28, ++/*167395*/ OPC_CheckInteger, 7, ++/*167397*/ OPC_CheckType, MVT::i32, ++/*167399*/ OPC_MoveParent, ++/*167400*/ OPC_MoveChild, 29, ++/*167402*/ OPC_CheckInteger, 7, ++/*167404*/ OPC_CheckType, MVT::i32, ++/*167406*/ OPC_MoveParent, ++/*167407*/ OPC_MoveChild, 30, ++/*167409*/ OPC_CheckInteger, 7, ++/*167411*/ OPC_CheckType, MVT::i32, ++/*167413*/ OPC_MoveParent, ++/*167414*/ OPC_MoveChild, 31, ++/*167416*/ OPC_CheckInteger, 7, ++/*167418*/ OPC_CheckType, MVT::i32, ++/*167420*/ OPC_MoveParent, ++/*167421*/ OPC_CheckType, MVT::v32i8, ++/*167423*/ OPC_MoveParent, ++/*167424*/ OPC_MoveParent, ++/*167425*/ OPC_MoveParent, ++/*167426*/ OPC_MoveChild1, ++/*167427*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*167430*/ OPC_CheckChild0Integer, 1, ++/*167432*/ OPC_CheckChild0Type, MVT::i32, ++/*167434*/ OPC_CheckChild1Integer, 1, ++/*167436*/ OPC_CheckChild1Type, MVT::i32, ++/*167438*/ OPC_CheckChild2Integer, 1, ++/*167440*/ OPC_CheckChild2Type, MVT::i32, ++/*167442*/ OPC_CheckChild3Integer, 1, ++/*167444*/ OPC_CheckChild3Type, MVT::i32, ++/*167446*/ OPC_CheckChild4Integer, 1, ++/*167448*/ OPC_CheckChild4Type, MVT::i32, ++/*167450*/ OPC_MoveChild5, ++/*167451*/ OPC_CheckInteger, 1, ++/*167453*/ OPC_CheckType, MVT::i32, ++/*167455*/ OPC_MoveParent, ++/*167456*/ OPC_MoveChild6, ++/*167457*/ OPC_CheckInteger, 1, ++/*167459*/ OPC_CheckType, MVT::i32, ++/*167461*/ OPC_MoveParent, ++/*167462*/ OPC_MoveChild7, ++/*167463*/ OPC_CheckInteger, 1, ++/*167465*/ OPC_CheckType, MVT::i32, ++/*167467*/ OPC_MoveParent, ++/*167468*/ OPC_MoveChild, 8, ++/*167470*/ OPC_CheckInteger, 1, ++/*167472*/ OPC_CheckType, MVT::i32, ++/*167474*/ OPC_MoveParent, ++/*167475*/ OPC_MoveChild, 9, ++/*167477*/ OPC_CheckInteger, 1, ++/*167479*/ OPC_CheckType, MVT::i32, ++/*167481*/ OPC_MoveParent, ++/*167482*/ OPC_MoveChild, 10, ++/*167484*/ OPC_CheckInteger, 1, ++/*167486*/ OPC_CheckType, MVT::i32, ++/*167488*/ OPC_MoveParent, ++/*167489*/ OPC_MoveChild, 11, ++/*167491*/ OPC_CheckInteger, 1, ++/*167493*/ OPC_CheckType, MVT::i32, ++/*167495*/ OPC_MoveParent, ++/*167496*/ OPC_MoveChild, 12, ++/*167498*/ OPC_CheckInteger, 1, ++/*167500*/ OPC_CheckType, MVT::i32, ++/*167502*/ OPC_MoveParent, ++/*167503*/ OPC_MoveChild, 13, ++/*167505*/ OPC_CheckInteger, 1, ++/*167507*/ OPC_CheckType, MVT::i32, ++/*167509*/ OPC_MoveParent, ++/*167510*/ OPC_MoveChild, 14, ++/*167512*/ OPC_CheckInteger, 1, ++/*167514*/ OPC_CheckType, MVT::i32, ++/*167516*/ OPC_MoveParent, ++/*167517*/ OPC_MoveChild, 15, ++/*167519*/ OPC_CheckInteger, 1, ++/*167521*/ OPC_CheckType, MVT::i32, ++/*167523*/ OPC_MoveParent, ++/*167524*/ OPC_MoveChild, 16, ++/*167526*/ OPC_CheckInteger, 1, ++/*167528*/ OPC_CheckType, MVT::i32, ++/*167530*/ OPC_MoveParent, ++/*167531*/ OPC_MoveChild, 17, ++/*167533*/ OPC_CheckInteger, 1, ++/*167535*/ OPC_CheckType, MVT::i32, ++/*167537*/ OPC_MoveParent, ++/*167538*/ OPC_MoveChild, 18, ++/*167540*/ OPC_CheckInteger, 1, ++/*167542*/ OPC_CheckType, MVT::i32, ++/*167544*/ OPC_MoveParent, ++/*167545*/ OPC_MoveChild, 19, ++/*167547*/ OPC_CheckInteger, 1, ++/*167549*/ OPC_CheckType, MVT::i32, ++/*167551*/ OPC_MoveParent, ++/*167552*/ OPC_MoveChild, 20, ++/*167554*/ OPC_CheckInteger, 1, ++/*167556*/ OPC_CheckType, MVT::i32, ++/*167558*/ OPC_MoveParent, ++/*167559*/ OPC_MoveChild, 21, ++/*167561*/ OPC_CheckInteger, 1, ++/*167563*/ OPC_CheckType, MVT::i32, ++/*167565*/ OPC_MoveParent, ++/*167566*/ OPC_MoveChild, 22, ++/*167568*/ OPC_CheckInteger, 1, ++/*167570*/ OPC_CheckType, MVT::i32, ++/*167572*/ OPC_MoveParent, ++/*167573*/ OPC_MoveChild, 23, ++/*167575*/ OPC_CheckInteger, 1, ++/*167577*/ OPC_CheckType, MVT::i32, ++/*167579*/ OPC_MoveParent, ++/*167580*/ OPC_MoveChild, 24, ++/*167582*/ OPC_CheckInteger, 1, ++/*167584*/ OPC_CheckType, MVT::i32, ++/*167586*/ OPC_MoveParent, ++/*167587*/ OPC_MoveChild, 25, ++/*167589*/ OPC_CheckInteger, 1, ++/*167591*/ OPC_CheckType, MVT::i32, ++/*167593*/ OPC_MoveParent, ++/*167594*/ OPC_MoveChild, 26, ++/*167596*/ OPC_CheckInteger, 1, ++/*167598*/ OPC_CheckType, MVT::i32, ++/*167600*/ OPC_MoveParent, ++/*167601*/ OPC_MoveChild, 27, ++/*167603*/ OPC_CheckInteger, 1, ++/*167605*/ OPC_CheckType, MVT::i32, ++/*167607*/ OPC_MoveParent, ++/*167608*/ OPC_MoveChild, 28, ++/*167610*/ OPC_CheckInteger, 1, ++/*167612*/ OPC_CheckType, MVT::i32, ++/*167614*/ OPC_MoveParent, ++/*167615*/ OPC_MoveChild, 29, ++/*167617*/ OPC_CheckInteger, 1, ++/*167619*/ OPC_CheckType, MVT::i32, ++/*167621*/ OPC_MoveParent, ++/*167622*/ OPC_MoveChild, 30, ++/*167624*/ OPC_CheckInteger, 1, ++/*167626*/ OPC_CheckType, MVT::i32, ++/*167628*/ OPC_MoveParent, ++/*167629*/ OPC_MoveChild, 31, ++/*167631*/ OPC_CheckInteger, 1, ++/*167633*/ OPC_CheckType, MVT::i32, ++/*167635*/ OPC_MoveParent, ++/*167636*/ OPC_CheckType, MVT::v32i8, ++/*167638*/ OPC_MoveParent, ++/*167639*/ OPC_CheckType, MVT::v32i8, ++/*167641*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*167643*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b)), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*167651*/ /*SwitchOpcode*/ 116|128,30/*3956*/, TARGET_VAL(ISD::ADD),// ->171611 ++/*167655*/ OPC_Scope, 17|128,5/*657*/, /*->168315*/ // 6 children in Scope ++/*167658*/ OPC_MoveChild0, ++/*167659*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*167662*/ OPC_CheckChild0Integer, 1, ++/*167664*/ OPC_CheckChild0Type, MVT::i32, ++/*167666*/ OPC_CheckChild1Integer, 1, ++/*167668*/ OPC_CheckChild1Type, MVT::i32, ++/*167670*/ OPC_CheckChild2Integer, 1, ++/*167672*/ OPC_CheckChild2Type, MVT::i32, ++/*167674*/ OPC_CheckChild3Integer, 1, ++/*167676*/ OPC_CheckChild3Type, MVT::i32, ++/*167678*/ OPC_CheckChild4Integer, 1, ++/*167680*/ OPC_CheckChild4Type, MVT::i32, ++/*167682*/ OPC_MoveChild5, ++/*167683*/ OPC_CheckInteger, 1, ++/*167685*/ OPC_CheckType, MVT::i32, ++/*167687*/ OPC_MoveParent, ++/*167688*/ OPC_MoveChild6, ++/*167689*/ OPC_CheckInteger, 1, ++/*167691*/ OPC_CheckType, MVT::i32, ++/*167693*/ OPC_MoveParent, ++/*167694*/ OPC_MoveChild7, ++/*167695*/ OPC_CheckInteger, 1, ++/*167697*/ OPC_CheckType, MVT::i32, ++/*167699*/ OPC_MoveParent, ++/*167700*/ OPC_MoveChild, 8, ++/*167702*/ OPC_CheckInteger, 1, ++/*167704*/ OPC_CheckType, MVT::i32, ++/*167706*/ OPC_MoveParent, ++/*167707*/ OPC_MoveChild, 9, ++/*167709*/ OPC_CheckInteger, 1, ++/*167711*/ OPC_CheckType, MVT::i32, ++/*167713*/ OPC_MoveParent, ++/*167714*/ OPC_MoveChild, 10, ++/*167716*/ OPC_CheckInteger, 1, ++/*167718*/ OPC_CheckType, MVT::i32, ++/*167720*/ OPC_MoveParent, ++/*167721*/ OPC_MoveChild, 11, ++/*167723*/ OPC_CheckInteger, 1, ++/*167725*/ OPC_CheckType, MVT::i32, ++/*167727*/ OPC_MoveParent, ++/*167728*/ OPC_MoveChild, 12, ++/*167730*/ OPC_CheckInteger, 1, ++/*167732*/ OPC_CheckType, MVT::i32, ++/*167734*/ OPC_MoveParent, ++/*167735*/ OPC_MoveChild, 13, ++/*167737*/ OPC_CheckInteger, 1, ++/*167739*/ OPC_CheckType, MVT::i32, ++/*167741*/ OPC_MoveParent, ++/*167742*/ OPC_MoveChild, 14, ++/*167744*/ OPC_CheckInteger, 1, ++/*167746*/ OPC_CheckType, MVT::i32, ++/*167748*/ OPC_MoveParent, ++/*167749*/ OPC_MoveChild, 15, ++/*167751*/ OPC_CheckInteger, 1, ++/*167753*/ OPC_CheckType, MVT::i32, ++/*167755*/ OPC_MoveParent, ++/*167756*/ OPC_MoveChild, 16, ++/*167758*/ OPC_CheckInteger, 1, ++/*167760*/ OPC_CheckType, MVT::i32, ++/*167762*/ OPC_MoveParent, ++/*167763*/ OPC_MoveChild, 17, ++/*167765*/ OPC_CheckInteger, 1, ++/*167767*/ OPC_CheckType, MVT::i32, ++/*167769*/ OPC_MoveParent, ++/*167770*/ OPC_MoveChild, 18, ++/*167772*/ OPC_CheckInteger, 1, ++/*167774*/ OPC_CheckType, MVT::i32, ++/*167776*/ OPC_MoveParent, ++/*167777*/ OPC_MoveChild, 19, ++/*167779*/ OPC_CheckInteger, 1, ++/*167781*/ OPC_CheckType, MVT::i32, ++/*167783*/ OPC_MoveParent, ++/*167784*/ OPC_MoveChild, 20, ++/*167786*/ OPC_CheckInteger, 1, ++/*167788*/ OPC_CheckType, MVT::i32, ++/*167790*/ OPC_MoveParent, ++/*167791*/ OPC_MoveChild, 21, ++/*167793*/ OPC_CheckInteger, 1, ++/*167795*/ OPC_CheckType, MVT::i32, ++/*167797*/ OPC_MoveParent, ++/*167798*/ OPC_MoveChild, 22, ++/*167800*/ OPC_CheckInteger, 1, ++/*167802*/ OPC_CheckType, MVT::i32, ++/*167804*/ OPC_MoveParent, ++/*167805*/ OPC_MoveChild, 23, ++/*167807*/ OPC_CheckInteger, 1, ++/*167809*/ OPC_CheckType, MVT::i32, ++/*167811*/ OPC_MoveParent, ++/*167812*/ OPC_MoveChild, 24, ++/*167814*/ OPC_CheckInteger, 1, ++/*167816*/ OPC_CheckType, MVT::i32, ++/*167818*/ OPC_MoveParent, ++/*167819*/ OPC_MoveChild, 25, ++/*167821*/ OPC_CheckInteger, 1, ++/*167823*/ OPC_CheckType, MVT::i32, ++/*167825*/ OPC_MoveParent, ++/*167826*/ OPC_MoveChild, 26, ++/*167828*/ OPC_CheckInteger, 1, ++/*167830*/ OPC_CheckType, MVT::i32, ++/*167832*/ OPC_MoveParent, ++/*167833*/ OPC_MoveChild, 27, ++/*167835*/ OPC_CheckInteger, 1, ++/*167837*/ OPC_CheckType, MVT::i32, ++/*167839*/ OPC_MoveParent, ++/*167840*/ OPC_MoveChild, 28, ++/*167842*/ OPC_CheckInteger, 1, ++/*167844*/ OPC_CheckType, MVT::i32, ++/*167846*/ OPC_MoveParent, ++/*167847*/ OPC_MoveChild, 29, ++/*167849*/ OPC_CheckInteger, 1, ++/*167851*/ OPC_CheckType, MVT::i32, ++/*167853*/ OPC_MoveParent, ++/*167854*/ OPC_MoveChild, 30, ++/*167856*/ OPC_CheckInteger, 1, ++/*167858*/ OPC_CheckType, MVT::i32, ++/*167860*/ OPC_MoveParent, ++/*167861*/ OPC_MoveChild, 31, ++/*167863*/ OPC_CheckInteger, 1, ++/*167865*/ OPC_CheckType, MVT::i32, ++/*167867*/ OPC_MoveParent, ++/*167868*/ OPC_MoveParent, ++/*167869*/ OPC_CheckChild1Same, 1, ++/*167871*/ OPC_MoveParent, ++/*167872*/ OPC_CheckChild1Same, 0, ++/*167874*/ OPC_MoveParent, ++/*167875*/ OPC_MoveChild1, ++/*167876*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*167879*/ OPC_CheckChild0Integer, 7, ++/*167881*/ OPC_CheckChild0Type, MVT::i32, ++/*167883*/ OPC_CheckChild1Integer, 7, ++/*167885*/ OPC_CheckChild1Type, MVT::i32, ++/*167887*/ OPC_CheckChild2Integer, 7, ++/*167889*/ OPC_CheckChild2Type, MVT::i32, ++/*167891*/ OPC_CheckChild3Integer, 7, ++/*167893*/ OPC_CheckChild3Type, MVT::i32, ++/*167895*/ OPC_CheckChild4Integer, 7, ++/*167897*/ OPC_CheckChild4Type, MVT::i32, ++/*167899*/ OPC_MoveChild5, ++/*167900*/ OPC_CheckInteger, 7, ++/*167902*/ OPC_CheckType, MVT::i32, ++/*167904*/ OPC_MoveParent, ++/*167905*/ OPC_MoveChild6, ++/*167906*/ OPC_CheckInteger, 7, ++/*167908*/ OPC_CheckType, MVT::i32, ++/*167910*/ OPC_MoveParent, ++/*167911*/ OPC_MoveChild7, ++/*167912*/ OPC_CheckInteger, 7, ++/*167914*/ OPC_CheckType, MVT::i32, ++/*167916*/ OPC_MoveParent, ++/*167917*/ OPC_MoveChild, 8, ++/*167919*/ OPC_CheckInteger, 7, ++/*167921*/ OPC_CheckType, MVT::i32, ++/*167923*/ OPC_MoveParent, ++/*167924*/ OPC_MoveChild, 9, ++/*167926*/ OPC_CheckInteger, 7, ++/*167928*/ OPC_CheckType, MVT::i32, ++/*167930*/ OPC_MoveParent, ++/*167931*/ OPC_MoveChild, 10, ++/*167933*/ OPC_CheckInteger, 7, ++/*167935*/ OPC_CheckType, MVT::i32, ++/*167937*/ OPC_MoveParent, ++/*167938*/ OPC_MoveChild, 11, ++/*167940*/ OPC_CheckInteger, 7, ++/*167942*/ OPC_CheckType, MVT::i32, ++/*167944*/ OPC_MoveParent, ++/*167945*/ OPC_MoveChild, 12, ++/*167947*/ OPC_CheckInteger, 7, ++/*167949*/ OPC_CheckType, MVT::i32, ++/*167951*/ OPC_MoveParent, ++/*167952*/ OPC_MoveChild, 13, ++/*167954*/ OPC_CheckInteger, 7, ++/*167956*/ OPC_CheckType, MVT::i32, ++/*167958*/ OPC_MoveParent, ++/*167959*/ OPC_MoveChild, 14, ++/*167961*/ OPC_CheckInteger, 7, ++/*167963*/ OPC_CheckType, MVT::i32, ++/*167965*/ OPC_MoveParent, ++/*167966*/ OPC_MoveChild, 15, ++/*167968*/ OPC_CheckInteger, 7, ++/*167970*/ OPC_CheckType, MVT::i32, ++/*167972*/ OPC_MoveParent, ++/*167973*/ OPC_MoveChild, 16, ++/*167975*/ OPC_CheckInteger, 7, ++/*167977*/ OPC_CheckType, MVT::i32, ++/*167979*/ OPC_MoveParent, ++/*167980*/ OPC_MoveChild, 17, ++/*167982*/ OPC_CheckInteger, 7, ++/*167984*/ OPC_CheckType, MVT::i32, ++/*167986*/ OPC_MoveParent, ++/*167987*/ OPC_MoveChild, 18, ++/*167989*/ OPC_CheckInteger, 7, ++/*167991*/ OPC_CheckType, MVT::i32, ++/*167993*/ OPC_MoveParent, ++/*167994*/ OPC_MoveChild, 19, ++/*167996*/ OPC_CheckInteger, 7, ++/*167998*/ OPC_CheckType, MVT::i32, ++/*168000*/ OPC_MoveParent, ++/*168001*/ OPC_MoveChild, 20, ++/*168003*/ OPC_CheckInteger, 7, ++/*168005*/ OPC_CheckType, MVT::i32, ++/*168007*/ OPC_MoveParent, ++/*168008*/ OPC_MoveChild, 21, ++/*168010*/ OPC_CheckInteger, 7, ++/*168012*/ OPC_CheckType, MVT::i32, ++/*168014*/ OPC_MoveParent, ++/*168015*/ OPC_MoveChild, 22, ++/*168017*/ OPC_CheckInteger, 7, ++/*168019*/ OPC_CheckType, MVT::i32, ++/*168021*/ OPC_MoveParent, ++/*168022*/ OPC_MoveChild, 23, ++/*168024*/ OPC_CheckInteger, 7, ++/*168026*/ OPC_CheckType, MVT::i32, ++/*168028*/ OPC_MoveParent, ++/*168029*/ OPC_MoveChild, 24, ++/*168031*/ OPC_CheckInteger, 7, ++/*168033*/ OPC_CheckType, MVT::i32, ++/*168035*/ OPC_MoveParent, ++/*168036*/ OPC_MoveChild, 25, ++/*168038*/ OPC_CheckInteger, 7, ++/*168040*/ OPC_CheckType, MVT::i32, ++/*168042*/ OPC_MoveParent, ++/*168043*/ OPC_MoveChild, 26, ++/*168045*/ OPC_CheckInteger, 7, ++/*168047*/ OPC_CheckType, MVT::i32, ++/*168049*/ OPC_MoveParent, ++/*168050*/ OPC_MoveChild, 27, ++/*168052*/ OPC_CheckInteger, 7, ++/*168054*/ OPC_CheckType, MVT::i32, ++/*168056*/ OPC_MoveParent, ++/*168057*/ OPC_MoveChild, 28, ++/*168059*/ OPC_CheckInteger, 7, ++/*168061*/ OPC_CheckType, MVT::i32, ++/*168063*/ OPC_MoveParent, ++/*168064*/ OPC_MoveChild, 29, ++/*168066*/ OPC_CheckInteger, 7, ++/*168068*/ OPC_CheckType, MVT::i32, ++/*168070*/ OPC_MoveParent, ++/*168071*/ OPC_MoveChild, 30, ++/*168073*/ OPC_CheckInteger, 7, ++/*168075*/ OPC_CheckType, MVT::i32, ++/*168077*/ OPC_MoveParent, ++/*168078*/ OPC_MoveChild, 31, ++/*168080*/ OPC_CheckInteger, 7, ++/*168082*/ OPC_CheckType, MVT::i32, ++/*168084*/ OPC_MoveParent, ++/*168085*/ OPC_CheckType, MVT::v32i8, ++/*168087*/ OPC_MoveParent, ++/*168088*/ OPC_MoveParent, ++/*168089*/ OPC_MoveParent, ++/*168090*/ OPC_MoveChild1, ++/*168091*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*168094*/ OPC_CheckChild0Integer, 1, ++/*168096*/ OPC_CheckChild0Type, MVT::i32, ++/*168098*/ OPC_CheckChild1Integer, 1, ++/*168100*/ OPC_CheckChild1Type, MVT::i32, ++/*168102*/ OPC_CheckChild2Integer, 1, ++/*168104*/ OPC_CheckChild2Type, MVT::i32, ++/*168106*/ OPC_CheckChild3Integer, 1, ++/*168108*/ OPC_CheckChild3Type, MVT::i32, ++/*168110*/ OPC_CheckChild4Integer, 1, ++/*168112*/ OPC_CheckChild4Type, MVT::i32, ++/*168114*/ OPC_MoveChild5, ++/*168115*/ OPC_CheckInteger, 1, ++/*168117*/ OPC_CheckType, MVT::i32, ++/*168119*/ OPC_MoveParent, ++/*168120*/ OPC_MoveChild6, ++/*168121*/ OPC_CheckInteger, 1, ++/*168123*/ OPC_CheckType, MVT::i32, ++/*168125*/ OPC_MoveParent, ++/*168126*/ OPC_MoveChild7, ++/*168127*/ OPC_CheckInteger, 1, ++/*168129*/ OPC_CheckType, MVT::i32, ++/*168131*/ OPC_MoveParent, ++/*168132*/ OPC_MoveChild, 8, ++/*168134*/ OPC_CheckInteger, 1, ++/*168136*/ OPC_CheckType, MVT::i32, ++/*168138*/ OPC_MoveParent, ++/*168139*/ OPC_MoveChild, 9, ++/*168141*/ OPC_CheckInteger, 1, ++/*168143*/ OPC_CheckType, MVT::i32, ++/*168145*/ OPC_MoveParent, ++/*168146*/ OPC_MoveChild, 10, ++/*168148*/ OPC_CheckInteger, 1, ++/*168150*/ OPC_CheckType, MVT::i32, ++/*168152*/ OPC_MoveParent, ++/*168153*/ OPC_MoveChild, 11, ++/*168155*/ OPC_CheckInteger, 1, ++/*168157*/ OPC_CheckType, MVT::i32, ++/*168159*/ OPC_MoveParent, ++/*168160*/ OPC_MoveChild, 12, ++/*168162*/ OPC_CheckInteger, 1, ++/*168164*/ OPC_CheckType, MVT::i32, ++/*168166*/ OPC_MoveParent, ++/*168167*/ OPC_MoveChild, 13, ++/*168169*/ OPC_CheckInteger, 1, ++/*168171*/ OPC_CheckType, MVT::i32, ++/*168173*/ OPC_MoveParent, ++/*168174*/ OPC_MoveChild, 14, ++/*168176*/ OPC_CheckInteger, 1, ++/*168178*/ OPC_CheckType, MVT::i32, ++/*168180*/ OPC_MoveParent, ++/*168181*/ OPC_MoveChild, 15, ++/*168183*/ OPC_CheckInteger, 1, ++/*168185*/ OPC_CheckType, MVT::i32, ++/*168187*/ OPC_MoveParent, ++/*168188*/ OPC_MoveChild, 16, ++/*168190*/ OPC_CheckInteger, 1, ++/*168192*/ OPC_CheckType, MVT::i32, ++/*168194*/ OPC_MoveParent, ++/*168195*/ OPC_MoveChild, 17, ++/*168197*/ OPC_CheckInteger, 1, ++/*168199*/ OPC_CheckType, MVT::i32, ++/*168201*/ OPC_MoveParent, ++/*168202*/ OPC_MoveChild, 18, ++/*168204*/ OPC_CheckInteger, 1, ++/*168206*/ OPC_CheckType, MVT::i32, ++/*168208*/ OPC_MoveParent, ++/*168209*/ OPC_MoveChild, 19, ++/*168211*/ OPC_CheckInteger, 1, ++/*168213*/ OPC_CheckType, MVT::i32, ++/*168215*/ OPC_MoveParent, ++/*168216*/ OPC_MoveChild, 20, ++/*168218*/ OPC_CheckInteger, 1, ++/*168220*/ OPC_CheckType, MVT::i32, ++/*168222*/ OPC_MoveParent, ++/*168223*/ OPC_MoveChild, 21, ++/*168225*/ OPC_CheckInteger, 1, ++/*168227*/ OPC_CheckType, MVT::i32, ++/*168229*/ OPC_MoveParent, ++/*168230*/ OPC_MoveChild, 22, ++/*168232*/ OPC_CheckInteger, 1, ++/*168234*/ OPC_CheckType, MVT::i32, ++/*168236*/ OPC_MoveParent, ++/*168237*/ OPC_MoveChild, 23, ++/*168239*/ OPC_CheckInteger, 1, ++/*168241*/ OPC_CheckType, MVT::i32, ++/*168243*/ OPC_MoveParent, ++/*168244*/ OPC_MoveChild, 24, ++/*168246*/ OPC_CheckInteger, 1, ++/*168248*/ OPC_CheckType, MVT::i32, ++/*168250*/ OPC_MoveParent, ++/*168251*/ OPC_MoveChild, 25, ++/*168253*/ OPC_CheckInteger, 1, ++/*168255*/ OPC_CheckType, MVT::i32, ++/*168257*/ OPC_MoveParent, ++/*168258*/ OPC_MoveChild, 26, ++/*168260*/ OPC_CheckInteger, 1, ++/*168262*/ OPC_CheckType, MVT::i32, ++/*168264*/ OPC_MoveParent, ++/*168265*/ OPC_MoveChild, 27, ++/*168267*/ OPC_CheckInteger, 1, ++/*168269*/ OPC_CheckType, MVT::i32, ++/*168271*/ OPC_MoveParent, ++/*168272*/ OPC_MoveChild, 28, ++/*168274*/ OPC_CheckInteger, 1, ++/*168276*/ OPC_CheckType, MVT::i32, ++/*168278*/ OPC_MoveParent, ++/*168279*/ OPC_MoveChild, 29, ++/*168281*/ OPC_CheckInteger, 1, ++/*168283*/ OPC_CheckType, MVT::i32, ++/*168285*/ OPC_MoveParent, ++/*168286*/ OPC_MoveChild, 30, ++/*168288*/ OPC_CheckInteger, 1, ++/*168290*/ OPC_CheckType, MVT::i32, ++/*168292*/ OPC_MoveParent, ++/*168293*/ OPC_MoveChild, 31, ++/*168295*/ OPC_CheckInteger, 1, ++/*168297*/ OPC_CheckType, MVT::i32, ++/*168299*/ OPC_MoveParent, ++/*168300*/ OPC_CheckType, MVT::v32i8, ++/*168302*/ OPC_MoveParent, ++/*168303*/ OPC_CheckType, MVT::v32i8, ++/*168305*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*168307*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a)), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a), LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*168315*/ /*Scope*/ 17|128,5/*657*/, /*->168974*/ ++/*168317*/ OPC_CheckChild0Same, 1, ++/*168319*/ OPC_MoveChild1, ++/*168320*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*168323*/ OPC_CheckChild0Integer, 1, ++/*168325*/ OPC_CheckChild0Type, MVT::i32, ++/*168327*/ OPC_CheckChild1Integer, 1, ++/*168329*/ OPC_CheckChild1Type, MVT::i32, ++/*168331*/ OPC_CheckChild2Integer, 1, ++/*168333*/ OPC_CheckChild2Type, MVT::i32, ++/*168335*/ OPC_CheckChild3Integer, 1, ++/*168337*/ OPC_CheckChild3Type, MVT::i32, ++/*168339*/ OPC_CheckChild4Integer, 1, ++/*168341*/ OPC_CheckChild4Type, MVT::i32, ++/*168343*/ OPC_MoveChild5, ++/*168344*/ OPC_CheckInteger, 1, ++/*168346*/ OPC_CheckType, MVT::i32, ++/*168348*/ OPC_MoveParent, ++/*168349*/ OPC_MoveChild6, ++/*168350*/ OPC_CheckInteger, 1, ++/*168352*/ OPC_CheckType, MVT::i32, ++/*168354*/ OPC_MoveParent, ++/*168355*/ OPC_MoveChild7, ++/*168356*/ OPC_CheckInteger, 1, ++/*168358*/ OPC_CheckType, MVT::i32, ++/*168360*/ OPC_MoveParent, ++/*168361*/ OPC_MoveChild, 8, ++/*168363*/ OPC_CheckInteger, 1, ++/*168365*/ OPC_CheckType, MVT::i32, ++/*168367*/ OPC_MoveParent, ++/*168368*/ OPC_MoveChild, 9, ++/*168370*/ OPC_CheckInteger, 1, ++/*168372*/ OPC_CheckType, MVT::i32, ++/*168374*/ OPC_MoveParent, ++/*168375*/ OPC_MoveChild, 10, ++/*168377*/ OPC_CheckInteger, 1, ++/*168379*/ OPC_CheckType, MVT::i32, ++/*168381*/ OPC_MoveParent, ++/*168382*/ OPC_MoveChild, 11, ++/*168384*/ OPC_CheckInteger, 1, ++/*168386*/ OPC_CheckType, MVT::i32, ++/*168388*/ OPC_MoveParent, ++/*168389*/ OPC_MoveChild, 12, ++/*168391*/ OPC_CheckInteger, 1, ++/*168393*/ OPC_CheckType, MVT::i32, ++/*168395*/ OPC_MoveParent, ++/*168396*/ OPC_MoveChild, 13, ++/*168398*/ OPC_CheckInteger, 1, ++/*168400*/ OPC_CheckType, MVT::i32, ++/*168402*/ OPC_MoveParent, ++/*168403*/ OPC_MoveChild, 14, ++/*168405*/ OPC_CheckInteger, 1, ++/*168407*/ OPC_CheckType, MVT::i32, ++/*168409*/ OPC_MoveParent, ++/*168410*/ OPC_MoveChild, 15, ++/*168412*/ OPC_CheckInteger, 1, ++/*168414*/ OPC_CheckType, MVT::i32, ++/*168416*/ OPC_MoveParent, ++/*168417*/ OPC_MoveChild, 16, ++/*168419*/ OPC_CheckInteger, 1, ++/*168421*/ OPC_CheckType, MVT::i32, ++/*168423*/ OPC_MoveParent, ++/*168424*/ OPC_MoveChild, 17, ++/*168426*/ OPC_CheckInteger, 1, ++/*168428*/ OPC_CheckType, MVT::i32, ++/*168430*/ OPC_MoveParent, ++/*168431*/ OPC_MoveChild, 18, ++/*168433*/ OPC_CheckInteger, 1, ++/*168435*/ OPC_CheckType, MVT::i32, ++/*168437*/ OPC_MoveParent, ++/*168438*/ OPC_MoveChild, 19, ++/*168440*/ OPC_CheckInteger, 1, ++/*168442*/ OPC_CheckType, MVT::i32, ++/*168444*/ OPC_MoveParent, ++/*168445*/ OPC_MoveChild, 20, ++/*168447*/ OPC_CheckInteger, 1, ++/*168449*/ OPC_CheckType, MVT::i32, ++/*168451*/ OPC_MoveParent, ++/*168452*/ OPC_MoveChild, 21, ++/*168454*/ OPC_CheckInteger, 1, ++/*168456*/ OPC_CheckType, MVT::i32, ++/*168458*/ OPC_MoveParent, ++/*168459*/ OPC_MoveChild, 22, ++/*168461*/ OPC_CheckInteger, 1, ++/*168463*/ OPC_CheckType, MVT::i32, ++/*168465*/ OPC_MoveParent, ++/*168466*/ OPC_MoveChild, 23, ++/*168468*/ OPC_CheckInteger, 1, ++/*168470*/ OPC_CheckType, MVT::i32, ++/*168472*/ OPC_MoveParent, ++/*168473*/ OPC_MoveChild, 24, ++/*168475*/ OPC_CheckInteger, 1, ++/*168477*/ OPC_CheckType, MVT::i32, ++/*168479*/ OPC_MoveParent, ++/*168480*/ OPC_MoveChild, 25, ++/*168482*/ OPC_CheckInteger, 1, ++/*168484*/ OPC_CheckType, MVT::i32, ++/*168486*/ OPC_MoveParent, ++/*168487*/ OPC_MoveChild, 26, ++/*168489*/ OPC_CheckInteger, 1, ++/*168491*/ OPC_CheckType, MVT::i32, ++/*168493*/ OPC_MoveParent, ++/*168494*/ OPC_MoveChild, 27, ++/*168496*/ OPC_CheckInteger, 1, ++/*168498*/ OPC_CheckType, MVT::i32, ++/*168500*/ OPC_MoveParent, ++/*168501*/ OPC_MoveChild, 28, ++/*168503*/ OPC_CheckInteger, 1, ++/*168505*/ OPC_CheckType, MVT::i32, ++/*168507*/ OPC_MoveParent, ++/*168508*/ OPC_MoveChild, 29, ++/*168510*/ OPC_CheckInteger, 1, ++/*168512*/ OPC_CheckType, MVT::i32, ++/*168514*/ OPC_MoveParent, ++/*168515*/ OPC_MoveChild, 30, ++/*168517*/ OPC_CheckInteger, 1, ++/*168519*/ OPC_CheckType, MVT::i32, ++/*168521*/ OPC_MoveParent, ++/*168522*/ OPC_MoveChild, 31, ++/*168524*/ OPC_CheckInteger, 1, ++/*168526*/ OPC_CheckType, MVT::i32, ++/*168528*/ OPC_MoveParent, ++/*168529*/ OPC_MoveParent, ++/*168530*/ OPC_MoveParent, ++/*168531*/ OPC_CheckChild1Same, 0, ++/*168533*/ OPC_MoveParent, ++/*168534*/ OPC_MoveChild1, ++/*168535*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*168538*/ OPC_CheckChild0Integer, 7, ++/*168540*/ OPC_CheckChild0Type, MVT::i32, ++/*168542*/ OPC_CheckChild1Integer, 7, ++/*168544*/ OPC_CheckChild1Type, MVT::i32, ++/*168546*/ OPC_CheckChild2Integer, 7, ++/*168548*/ OPC_CheckChild2Type, MVT::i32, ++/*168550*/ OPC_CheckChild3Integer, 7, ++/*168552*/ OPC_CheckChild3Type, MVT::i32, ++/*168554*/ OPC_CheckChild4Integer, 7, ++/*168556*/ OPC_CheckChild4Type, MVT::i32, ++/*168558*/ OPC_MoveChild5, ++/*168559*/ OPC_CheckInteger, 7, ++/*168561*/ OPC_CheckType, MVT::i32, ++/*168563*/ OPC_MoveParent, ++/*168564*/ OPC_MoveChild6, ++/*168565*/ OPC_CheckInteger, 7, ++/*168567*/ OPC_CheckType, MVT::i32, ++/*168569*/ OPC_MoveParent, ++/*168570*/ OPC_MoveChild7, ++/*168571*/ OPC_CheckInteger, 7, ++/*168573*/ OPC_CheckType, MVT::i32, ++/*168575*/ OPC_MoveParent, ++/*168576*/ OPC_MoveChild, 8, ++/*168578*/ OPC_CheckInteger, 7, ++/*168580*/ OPC_CheckType, MVT::i32, ++/*168582*/ OPC_MoveParent, ++/*168583*/ OPC_MoveChild, 9, ++/*168585*/ OPC_CheckInteger, 7, ++/*168587*/ OPC_CheckType, MVT::i32, ++/*168589*/ OPC_MoveParent, ++/*168590*/ OPC_MoveChild, 10, ++/*168592*/ OPC_CheckInteger, 7, ++/*168594*/ OPC_CheckType, MVT::i32, ++/*168596*/ OPC_MoveParent, ++/*168597*/ OPC_MoveChild, 11, ++/*168599*/ OPC_CheckInteger, 7, ++/*168601*/ OPC_CheckType, MVT::i32, ++/*168603*/ OPC_MoveParent, ++/*168604*/ OPC_MoveChild, 12, ++/*168606*/ OPC_CheckInteger, 7, ++/*168608*/ OPC_CheckType, MVT::i32, ++/*168610*/ OPC_MoveParent, ++/*168611*/ OPC_MoveChild, 13, ++/*168613*/ OPC_CheckInteger, 7, ++/*168615*/ OPC_CheckType, MVT::i32, ++/*168617*/ OPC_MoveParent, ++/*168618*/ OPC_MoveChild, 14, ++/*168620*/ OPC_CheckInteger, 7, ++/*168622*/ OPC_CheckType, MVT::i32, ++/*168624*/ OPC_MoveParent, ++/*168625*/ OPC_MoveChild, 15, ++/*168627*/ OPC_CheckInteger, 7, ++/*168629*/ OPC_CheckType, MVT::i32, ++/*168631*/ OPC_MoveParent, ++/*168632*/ OPC_MoveChild, 16, ++/*168634*/ OPC_CheckInteger, 7, ++/*168636*/ OPC_CheckType, MVT::i32, ++/*168638*/ OPC_MoveParent, ++/*168639*/ OPC_MoveChild, 17, ++/*168641*/ OPC_CheckInteger, 7, ++/*168643*/ OPC_CheckType, MVT::i32, ++/*168645*/ OPC_MoveParent, ++/*168646*/ OPC_MoveChild, 18, ++/*168648*/ OPC_CheckInteger, 7, ++/*168650*/ OPC_CheckType, MVT::i32, ++/*168652*/ OPC_MoveParent, ++/*168653*/ OPC_MoveChild, 19, ++/*168655*/ OPC_CheckInteger, 7, ++/*168657*/ OPC_CheckType, MVT::i32, ++/*168659*/ OPC_MoveParent, ++/*168660*/ OPC_MoveChild, 20, ++/*168662*/ OPC_CheckInteger, 7, ++/*168664*/ OPC_CheckType, MVT::i32, ++/*168666*/ OPC_MoveParent, ++/*168667*/ OPC_MoveChild, 21, ++/*168669*/ OPC_CheckInteger, 7, ++/*168671*/ OPC_CheckType, MVT::i32, ++/*168673*/ OPC_MoveParent, ++/*168674*/ OPC_MoveChild, 22, ++/*168676*/ OPC_CheckInteger, 7, ++/*168678*/ OPC_CheckType, MVT::i32, ++/*168680*/ OPC_MoveParent, ++/*168681*/ OPC_MoveChild, 23, ++/*168683*/ OPC_CheckInteger, 7, ++/*168685*/ OPC_CheckType, MVT::i32, ++/*168687*/ OPC_MoveParent, ++/*168688*/ OPC_MoveChild, 24, ++/*168690*/ OPC_CheckInteger, 7, ++/*168692*/ OPC_CheckType, MVT::i32, ++/*168694*/ OPC_MoveParent, ++/*168695*/ OPC_MoveChild, 25, ++/*168697*/ OPC_CheckInteger, 7, ++/*168699*/ OPC_CheckType, MVT::i32, ++/*168701*/ OPC_MoveParent, ++/*168702*/ OPC_MoveChild, 26, ++/*168704*/ OPC_CheckInteger, 7, ++/*168706*/ OPC_CheckType, MVT::i32, ++/*168708*/ OPC_MoveParent, ++/*168709*/ OPC_MoveChild, 27, ++/*168711*/ OPC_CheckInteger, 7, ++/*168713*/ OPC_CheckType, MVT::i32, ++/*168715*/ OPC_MoveParent, ++/*168716*/ OPC_MoveChild, 28, ++/*168718*/ OPC_CheckInteger, 7, ++/*168720*/ OPC_CheckType, MVT::i32, ++/*168722*/ OPC_MoveParent, ++/*168723*/ OPC_MoveChild, 29, ++/*168725*/ OPC_CheckInteger, 7, ++/*168727*/ OPC_CheckType, MVT::i32, ++/*168729*/ OPC_MoveParent, ++/*168730*/ OPC_MoveChild, 30, ++/*168732*/ OPC_CheckInteger, 7, ++/*168734*/ OPC_CheckType, MVT::i32, ++/*168736*/ OPC_MoveParent, ++/*168737*/ OPC_MoveChild, 31, ++/*168739*/ OPC_CheckInteger, 7, ++/*168741*/ OPC_CheckType, MVT::i32, ++/*168743*/ OPC_MoveParent, ++/*168744*/ OPC_CheckType, MVT::v32i8, ++/*168746*/ OPC_MoveParent, ++/*168747*/ OPC_MoveParent, ++/*168748*/ OPC_MoveParent, ++/*168749*/ OPC_MoveChild1, ++/*168750*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*168753*/ OPC_CheckChild0Integer, 1, ++/*168755*/ OPC_CheckChild0Type, MVT::i32, ++/*168757*/ OPC_CheckChild1Integer, 1, ++/*168759*/ OPC_CheckChild1Type, MVT::i32, ++/*168761*/ OPC_CheckChild2Integer, 1, ++/*168763*/ OPC_CheckChild2Type, MVT::i32, ++/*168765*/ OPC_CheckChild3Integer, 1, ++/*168767*/ OPC_CheckChild3Type, MVT::i32, ++/*168769*/ OPC_CheckChild4Integer, 1, ++/*168771*/ OPC_CheckChild4Type, MVT::i32, ++/*168773*/ OPC_MoveChild5, ++/*168774*/ OPC_CheckInteger, 1, ++/*168776*/ OPC_CheckType, MVT::i32, ++/*168778*/ OPC_MoveParent, ++/*168779*/ OPC_MoveChild6, ++/*168780*/ OPC_CheckInteger, 1, ++/*168782*/ OPC_CheckType, MVT::i32, ++/*168784*/ OPC_MoveParent, ++/*168785*/ OPC_MoveChild7, ++/*168786*/ OPC_CheckInteger, 1, ++/*168788*/ OPC_CheckType, MVT::i32, ++/*168790*/ OPC_MoveParent, ++/*168791*/ OPC_MoveChild, 8, ++/*168793*/ OPC_CheckInteger, 1, ++/*168795*/ OPC_CheckType, MVT::i32, ++/*168797*/ OPC_MoveParent, ++/*168798*/ OPC_MoveChild, 9, ++/*168800*/ OPC_CheckInteger, 1, ++/*168802*/ OPC_CheckType, MVT::i32, ++/*168804*/ OPC_MoveParent, ++/*168805*/ OPC_MoveChild, 10, ++/*168807*/ OPC_CheckInteger, 1, ++/*168809*/ OPC_CheckType, MVT::i32, ++/*168811*/ OPC_MoveParent, ++/*168812*/ OPC_MoveChild, 11, ++/*168814*/ OPC_CheckInteger, 1, ++/*168816*/ OPC_CheckType, MVT::i32, ++/*168818*/ OPC_MoveParent, ++/*168819*/ OPC_MoveChild, 12, ++/*168821*/ OPC_CheckInteger, 1, ++/*168823*/ OPC_CheckType, MVT::i32, ++/*168825*/ OPC_MoveParent, ++/*168826*/ OPC_MoveChild, 13, ++/*168828*/ OPC_CheckInteger, 1, ++/*168830*/ OPC_CheckType, MVT::i32, ++/*168832*/ OPC_MoveParent, ++/*168833*/ OPC_MoveChild, 14, ++/*168835*/ OPC_CheckInteger, 1, ++/*168837*/ OPC_CheckType, MVT::i32, ++/*168839*/ OPC_MoveParent, ++/*168840*/ OPC_MoveChild, 15, ++/*168842*/ OPC_CheckInteger, 1, ++/*168844*/ OPC_CheckType, MVT::i32, ++/*168846*/ OPC_MoveParent, ++/*168847*/ OPC_MoveChild, 16, ++/*168849*/ OPC_CheckInteger, 1, ++/*168851*/ OPC_CheckType, MVT::i32, ++/*168853*/ OPC_MoveParent, ++/*168854*/ OPC_MoveChild, 17, ++/*168856*/ OPC_CheckInteger, 1, ++/*168858*/ OPC_CheckType, MVT::i32, ++/*168860*/ OPC_MoveParent, ++/*168861*/ OPC_MoveChild, 18, ++/*168863*/ OPC_CheckInteger, 1, ++/*168865*/ OPC_CheckType, MVT::i32, ++/*168867*/ OPC_MoveParent, ++/*168868*/ OPC_MoveChild, 19, ++/*168870*/ OPC_CheckInteger, 1, ++/*168872*/ OPC_CheckType, MVT::i32, ++/*168874*/ OPC_MoveParent, ++/*168875*/ OPC_MoveChild, 20, ++/*168877*/ OPC_CheckInteger, 1, ++/*168879*/ OPC_CheckType, MVT::i32, ++/*168881*/ OPC_MoveParent, ++/*168882*/ OPC_MoveChild, 21, ++/*168884*/ OPC_CheckInteger, 1, ++/*168886*/ OPC_CheckType, MVT::i32, ++/*168888*/ OPC_MoveParent, ++/*168889*/ OPC_MoveChild, 22, ++/*168891*/ OPC_CheckInteger, 1, ++/*168893*/ OPC_CheckType, MVT::i32, ++/*168895*/ OPC_MoveParent, ++/*168896*/ OPC_MoveChild, 23, ++/*168898*/ OPC_CheckInteger, 1, ++/*168900*/ OPC_CheckType, MVT::i32, ++/*168902*/ OPC_MoveParent, ++/*168903*/ OPC_MoveChild, 24, ++/*168905*/ OPC_CheckInteger, 1, ++/*168907*/ OPC_CheckType, MVT::i32, ++/*168909*/ OPC_MoveParent, ++/*168910*/ OPC_MoveChild, 25, ++/*168912*/ OPC_CheckInteger, 1, ++/*168914*/ OPC_CheckType, MVT::i32, ++/*168916*/ OPC_MoveParent, ++/*168917*/ OPC_MoveChild, 26, ++/*168919*/ OPC_CheckInteger, 1, ++/*168921*/ OPC_CheckType, MVT::i32, ++/*168923*/ OPC_MoveParent, ++/*168924*/ OPC_MoveChild, 27, ++/*168926*/ OPC_CheckInteger, 1, ++/*168928*/ OPC_CheckType, MVT::i32, ++/*168930*/ OPC_MoveParent, ++/*168931*/ OPC_MoveChild, 28, ++/*168933*/ OPC_CheckInteger, 1, ++/*168935*/ OPC_CheckType, MVT::i32, ++/*168937*/ OPC_MoveParent, ++/*168938*/ OPC_MoveChild, 29, ++/*168940*/ OPC_CheckInteger, 1, ++/*168942*/ OPC_CheckType, MVT::i32, ++/*168944*/ OPC_MoveParent, ++/*168945*/ OPC_MoveChild, 30, ++/*168947*/ OPC_CheckInteger, 1, ++/*168949*/ OPC_CheckType, MVT::i32, ++/*168951*/ OPC_MoveParent, ++/*168952*/ OPC_MoveChild, 31, ++/*168954*/ OPC_CheckInteger, 1, ++/*168956*/ OPC_CheckType, MVT::i32, ++/*168958*/ OPC_MoveParent, ++/*168959*/ OPC_CheckType, MVT::v32i8, ++/*168961*/ OPC_MoveParent, ++/*168962*/ OPC_CheckType, MVT::v32i8, ++/*168964*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*168966*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a)), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*168974*/ /*Scope*/ 17|128,5/*657*/, /*->169633*/ ++/*168976*/ OPC_MoveChild0, ++/*168977*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*168980*/ OPC_CheckChild0Integer, 1, ++/*168982*/ OPC_CheckChild0Type, MVT::i32, ++/*168984*/ OPC_CheckChild1Integer, 1, ++/*168986*/ OPC_CheckChild1Type, MVT::i32, ++/*168988*/ OPC_CheckChild2Integer, 1, ++/*168990*/ OPC_CheckChild2Type, MVT::i32, ++/*168992*/ OPC_CheckChild3Integer, 1, ++/*168994*/ OPC_CheckChild3Type, MVT::i32, ++/*168996*/ OPC_CheckChild4Integer, 1, ++/*168998*/ OPC_CheckChild4Type, MVT::i32, ++/*169000*/ OPC_MoveChild5, ++/*169001*/ OPC_CheckInteger, 1, ++/*169003*/ OPC_CheckType, MVT::i32, ++/*169005*/ OPC_MoveParent, ++/*169006*/ OPC_MoveChild6, ++/*169007*/ OPC_CheckInteger, 1, ++/*169009*/ OPC_CheckType, MVT::i32, ++/*169011*/ OPC_MoveParent, ++/*169012*/ OPC_MoveChild7, ++/*169013*/ OPC_CheckInteger, 1, ++/*169015*/ OPC_CheckType, MVT::i32, ++/*169017*/ OPC_MoveParent, ++/*169018*/ OPC_MoveChild, 8, ++/*169020*/ OPC_CheckInteger, 1, ++/*169022*/ OPC_CheckType, MVT::i32, ++/*169024*/ OPC_MoveParent, ++/*169025*/ OPC_MoveChild, 9, ++/*169027*/ OPC_CheckInteger, 1, ++/*169029*/ OPC_CheckType, MVT::i32, ++/*169031*/ OPC_MoveParent, ++/*169032*/ OPC_MoveChild, 10, ++/*169034*/ OPC_CheckInteger, 1, ++/*169036*/ OPC_CheckType, MVT::i32, ++/*169038*/ OPC_MoveParent, ++/*169039*/ OPC_MoveChild, 11, ++/*169041*/ OPC_CheckInteger, 1, ++/*169043*/ OPC_CheckType, MVT::i32, ++/*169045*/ OPC_MoveParent, ++/*169046*/ OPC_MoveChild, 12, ++/*169048*/ OPC_CheckInteger, 1, ++/*169050*/ OPC_CheckType, MVT::i32, ++/*169052*/ OPC_MoveParent, ++/*169053*/ OPC_MoveChild, 13, ++/*169055*/ OPC_CheckInteger, 1, ++/*169057*/ OPC_CheckType, MVT::i32, ++/*169059*/ OPC_MoveParent, ++/*169060*/ OPC_MoveChild, 14, ++/*169062*/ OPC_CheckInteger, 1, ++/*169064*/ OPC_CheckType, MVT::i32, ++/*169066*/ OPC_MoveParent, ++/*169067*/ OPC_MoveChild, 15, ++/*169069*/ OPC_CheckInteger, 1, ++/*169071*/ OPC_CheckType, MVT::i32, ++/*169073*/ OPC_MoveParent, ++/*169074*/ OPC_MoveChild, 16, ++/*169076*/ OPC_CheckInteger, 1, ++/*169078*/ OPC_CheckType, MVT::i32, ++/*169080*/ OPC_MoveParent, ++/*169081*/ OPC_MoveChild, 17, ++/*169083*/ OPC_CheckInteger, 1, ++/*169085*/ OPC_CheckType, MVT::i32, ++/*169087*/ OPC_MoveParent, ++/*169088*/ OPC_MoveChild, 18, ++/*169090*/ OPC_CheckInteger, 1, ++/*169092*/ OPC_CheckType, MVT::i32, ++/*169094*/ OPC_MoveParent, ++/*169095*/ OPC_MoveChild, 19, ++/*169097*/ OPC_CheckInteger, 1, ++/*169099*/ OPC_CheckType, MVT::i32, ++/*169101*/ OPC_MoveParent, ++/*169102*/ OPC_MoveChild, 20, ++/*169104*/ OPC_CheckInteger, 1, ++/*169106*/ OPC_CheckType, MVT::i32, ++/*169108*/ OPC_MoveParent, ++/*169109*/ OPC_MoveChild, 21, ++/*169111*/ OPC_CheckInteger, 1, ++/*169113*/ OPC_CheckType, MVT::i32, ++/*169115*/ OPC_MoveParent, ++/*169116*/ OPC_MoveChild, 22, ++/*169118*/ OPC_CheckInteger, 1, ++/*169120*/ OPC_CheckType, MVT::i32, ++/*169122*/ OPC_MoveParent, ++/*169123*/ OPC_MoveChild, 23, ++/*169125*/ OPC_CheckInteger, 1, ++/*169127*/ OPC_CheckType, MVT::i32, ++/*169129*/ OPC_MoveParent, ++/*169130*/ OPC_MoveChild, 24, ++/*169132*/ OPC_CheckInteger, 1, ++/*169134*/ OPC_CheckType, MVT::i32, ++/*169136*/ OPC_MoveParent, ++/*169137*/ OPC_MoveChild, 25, ++/*169139*/ OPC_CheckInteger, 1, ++/*169141*/ OPC_CheckType, MVT::i32, ++/*169143*/ OPC_MoveParent, ++/*169144*/ OPC_MoveChild, 26, ++/*169146*/ OPC_CheckInteger, 1, ++/*169148*/ OPC_CheckType, MVT::i32, ++/*169150*/ OPC_MoveParent, ++/*169151*/ OPC_MoveChild, 27, ++/*169153*/ OPC_CheckInteger, 1, ++/*169155*/ OPC_CheckType, MVT::i32, ++/*169157*/ OPC_MoveParent, ++/*169158*/ OPC_MoveChild, 28, ++/*169160*/ OPC_CheckInteger, 1, ++/*169162*/ OPC_CheckType, MVT::i32, ++/*169164*/ OPC_MoveParent, ++/*169165*/ OPC_MoveChild, 29, ++/*169167*/ OPC_CheckInteger, 1, ++/*169169*/ OPC_CheckType, MVT::i32, ++/*169171*/ OPC_MoveParent, ++/*169172*/ OPC_MoveChild, 30, ++/*169174*/ OPC_CheckInteger, 1, ++/*169176*/ OPC_CheckType, MVT::i32, ++/*169178*/ OPC_MoveParent, ++/*169179*/ OPC_MoveChild, 31, ++/*169181*/ OPC_CheckInteger, 1, ++/*169183*/ OPC_CheckType, MVT::i32, ++/*169185*/ OPC_MoveParent, ++/*169186*/ OPC_MoveParent, ++/*169187*/ OPC_CheckChild1Same, 0, ++/*169189*/ OPC_MoveParent, ++/*169190*/ OPC_CheckChild1Same, 1, ++/*169192*/ OPC_MoveParent, ++/*169193*/ OPC_MoveChild1, ++/*169194*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*169197*/ OPC_CheckChild0Integer, 7, ++/*169199*/ OPC_CheckChild0Type, MVT::i32, ++/*169201*/ OPC_CheckChild1Integer, 7, ++/*169203*/ OPC_CheckChild1Type, MVT::i32, ++/*169205*/ OPC_CheckChild2Integer, 7, ++/*169207*/ OPC_CheckChild2Type, MVT::i32, ++/*169209*/ OPC_CheckChild3Integer, 7, ++/*169211*/ OPC_CheckChild3Type, MVT::i32, ++/*169213*/ OPC_CheckChild4Integer, 7, ++/*169215*/ OPC_CheckChild4Type, MVT::i32, ++/*169217*/ OPC_MoveChild5, ++/*169218*/ OPC_CheckInteger, 7, ++/*169220*/ OPC_CheckType, MVT::i32, ++/*169222*/ OPC_MoveParent, ++/*169223*/ OPC_MoveChild6, ++/*169224*/ OPC_CheckInteger, 7, ++/*169226*/ OPC_CheckType, MVT::i32, ++/*169228*/ OPC_MoveParent, ++/*169229*/ OPC_MoveChild7, ++/*169230*/ OPC_CheckInteger, 7, ++/*169232*/ OPC_CheckType, MVT::i32, ++/*169234*/ OPC_MoveParent, ++/*169235*/ OPC_MoveChild, 8, ++/*169237*/ OPC_CheckInteger, 7, ++/*169239*/ OPC_CheckType, MVT::i32, ++/*169241*/ OPC_MoveParent, ++/*169242*/ OPC_MoveChild, 9, ++/*169244*/ OPC_CheckInteger, 7, ++/*169246*/ OPC_CheckType, MVT::i32, ++/*169248*/ OPC_MoveParent, ++/*169249*/ OPC_MoveChild, 10, ++/*169251*/ OPC_CheckInteger, 7, ++/*169253*/ OPC_CheckType, MVT::i32, ++/*169255*/ OPC_MoveParent, ++/*169256*/ OPC_MoveChild, 11, ++/*169258*/ OPC_CheckInteger, 7, ++/*169260*/ OPC_CheckType, MVT::i32, ++/*169262*/ OPC_MoveParent, ++/*169263*/ OPC_MoveChild, 12, ++/*169265*/ OPC_CheckInteger, 7, ++/*169267*/ OPC_CheckType, MVT::i32, ++/*169269*/ OPC_MoveParent, ++/*169270*/ OPC_MoveChild, 13, ++/*169272*/ OPC_CheckInteger, 7, ++/*169274*/ OPC_CheckType, MVT::i32, ++/*169276*/ OPC_MoveParent, ++/*169277*/ OPC_MoveChild, 14, ++/*169279*/ OPC_CheckInteger, 7, ++/*169281*/ OPC_CheckType, MVT::i32, ++/*169283*/ OPC_MoveParent, ++/*169284*/ OPC_MoveChild, 15, ++/*169286*/ OPC_CheckInteger, 7, ++/*169288*/ OPC_CheckType, MVT::i32, ++/*169290*/ OPC_MoveParent, ++/*169291*/ OPC_MoveChild, 16, ++/*169293*/ OPC_CheckInteger, 7, ++/*169295*/ OPC_CheckType, MVT::i32, ++/*169297*/ OPC_MoveParent, ++/*169298*/ OPC_MoveChild, 17, ++/*169300*/ OPC_CheckInteger, 7, ++/*169302*/ OPC_CheckType, MVT::i32, ++/*169304*/ OPC_MoveParent, ++/*169305*/ OPC_MoveChild, 18, ++/*169307*/ OPC_CheckInteger, 7, ++/*169309*/ OPC_CheckType, MVT::i32, ++/*169311*/ OPC_MoveParent, ++/*169312*/ OPC_MoveChild, 19, ++/*169314*/ OPC_CheckInteger, 7, ++/*169316*/ OPC_CheckType, MVT::i32, ++/*169318*/ OPC_MoveParent, ++/*169319*/ OPC_MoveChild, 20, ++/*169321*/ OPC_CheckInteger, 7, ++/*169323*/ OPC_CheckType, MVT::i32, ++/*169325*/ OPC_MoveParent, ++/*169326*/ OPC_MoveChild, 21, ++/*169328*/ OPC_CheckInteger, 7, ++/*169330*/ OPC_CheckType, MVT::i32, ++/*169332*/ OPC_MoveParent, ++/*169333*/ OPC_MoveChild, 22, ++/*169335*/ OPC_CheckInteger, 7, ++/*169337*/ OPC_CheckType, MVT::i32, ++/*169339*/ OPC_MoveParent, ++/*169340*/ OPC_MoveChild, 23, ++/*169342*/ OPC_CheckInteger, 7, ++/*169344*/ OPC_CheckType, MVT::i32, ++/*169346*/ OPC_MoveParent, ++/*169347*/ OPC_MoveChild, 24, ++/*169349*/ OPC_CheckInteger, 7, ++/*169351*/ OPC_CheckType, MVT::i32, ++/*169353*/ OPC_MoveParent, ++/*169354*/ OPC_MoveChild, 25, ++/*169356*/ OPC_CheckInteger, 7, ++/*169358*/ OPC_CheckType, MVT::i32, ++/*169360*/ OPC_MoveParent, ++/*169361*/ OPC_MoveChild, 26, ++/*169363*/ OPC_CheckInteger, 7, ++/*169365*/ OPC_CheckType, MVT::i32, ++/*169367*/ OPC_MoveParent, ++/*169368*/ OPC_MoveChild, 27, ++/*169370*/ OPC_CheckInteger, 7, ++/*169372*/ OPC_CheckType, MVT::i32, ++/*169374*/ OPC_MoveParent, ++/*169375*/ OPC_MoveChild, 28, ++/*169377*/ OPC_CheckInteger, 7, ++/*169379*/ OPC_CheckType, MVT::i32, ++/*169381*/ OPC_MoveParent, ++/*169382*/ OPC_MoveChild, 29, ++/*169384*/ OPC_CheckInteger, 7, ++/*169386*/ OPC_CheckType, MVT::i32, ++/*169388*/ OPC_MoveParent, ++/*169389*/ OPC_MoveChild, 30, ++/*169391*/ OPC_CheckInteger, 7, ++/*169393*/ OPC_CheckType, MVT::i32, ++/*169395*/ OPC_MoveParent, ++/*169396*/ OPC_MoveChild, 31, ++/*169398*/ OPC_CheckInteger, 7, ++/*169400*/ OPC_CheckType, MVT::i32, ++/*169402*/ OPC_MoveParent, ++/*169403*/ OPC_CheckType, MVT::v32i8, ++/*169405*/ OPC_MoveParent, ++/*169406*/ OPC_MoveParent, ++/*169407*/ OPC_MoveParent, ++/*169408*/ OPC_MoveChild1, ++/*169409*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*169412*/ OPC_CheckChild0Integer, 1, ++/*169414*/ OPC_CheckChild0Type, MVT::i32, ++/*169416*/ OPC_CheckChild1Integer, 1, ++/*169418*/ OPC_CheckChild1Type, MVT::i32, ++/*169420*/ OPC_CheckChild2Integer, 1, ++/*169422*/ OPC_CheckChild2Type, MVT::i32, ++/*169424*/ OPC_CheckChild3Integer, 1, ++/*169426*/ OPC_CheckChild3Type, MVT::i32, ++/*169428*/ OPC_CheckChild4Integer, 1, ++/*169430*/ OPC_CheckChild4Type, MVT::i32, ++/*169432*/ OPC_MoveChild5, ++/*169433*/ OPC_CheckInteger, 1, ++/*169435*/ OPC_CheckType, MVT::i32, ++/*169437*/ OPC_MoveParent, ++/*169438*/ OPC_MoveChild6, ++/*169439*/ OPC_CheckInteger, 1, ++/*169441*/ OPC_CheckType, MVT::i32, ++/*169443*/ OPC_MoveParent, ++/*169444*/ OPC_MoveChild7, ++/*169445*/ OPC_CheckInteger, 1, ++/*169447*/ OPC_CheckType, MVT::i32, ++/*169449*/ OPC_MoveParent, ++/*169450*/ OPC_MoveChild, 8, ++/*169452*/ OPC_CheckInteger, 1, ++/*169454*/ OPC_CheckType, MVT::i32, ++/*169456*/ OPC_MoveParent, ++/*169457*/ OPC_MoveChild, 9, ++/*169459*/ OPC_CheckInteger, 1, ++/*169461*/ OPC_CheckType, MVT::i32, ++/*169463*/ OPC_MoveParent, ++/*169464*/ OPC_MoveChild, 10, ++/*169466*/ OPC_CheckInteger, 1, ++/*169468*/ OPC_CheckType, MVT::i32, ++/*169470*/ OPC_MoveParent, ++/*169471*/ OPC_MoveChild, 11, ++/*169473*/ OPC_CheckInteger, 1, ++/*169475*/ OPC_CheckType, MVT::i32, ++/*169477*/ OPC_MoveParent, ++/*169478*/ OPC_MoveChild, 12, ++/*169480*/ OPC_CheckInteger, 1, ++/*169482*/ OPC_CheckType, MVT::i32, ++/*169484*/ OPC_MoveParent, ++/*169485*/ OPC_MoveChild, 13, ++/*169487*/ OPC_CheckInteger, 1, ++/*169489*/ OPC_CheckType, MVT::i32, ++/*169491*/ OPC_MoveParent, ++/*169492*/ OPC_MoveChild, 14, ++/*169494*/ OPC_CheckInteger, 1, ++/*169496*/ OPC_CheckType, MVT::i32, ++/*169498*/ OPC_MoveParent, ++/*169499*/ OPC_MoveChild, 15, ++/*169501*/ OPC_CheckInteger, 1, ++/*169503*/ OPC_CheckType, MVT::i32, ++/*169505*/ OPC_MoveParent, ++/*169506*/ OPC_MoveChild, 16, ++/*169508*/ OPC_CheckInteger, 1, ++/*169510*/ OPC_CheckType, MVT::i32, ++/*169512*/ OPC_MoveParent, ++/*169513*/ OPC_MoveChild, 17, ++/*169515*/ OPC_CheckInteger, 1, ++/*169517*/ OPC_CheckType, MVT::i32, ++/*169519*/ OPC_MoveParent, ++/*169520*/ OPC_MoveChild, 18, ++/*169522*/ OPC_CheckInteger, 1, ++/*169524*/ OPC_CheckType, MVT::i32, ++/*169526*/ OPC_MoveParent, ++/*169527*/ OPC_MoveChild, 19, ++/*169529*/ OPC_CheckInteger, 1, ++/*169531*/ OPC_CheckType, MVT::i32, ++/*169533*/ OPC_MoveParent, ++/*169534*/ OPC_MoveChild, 20, ++/*169536*/ OPC_CheckInteger, 1, ++/*169538*/ OPC_CheckType, MVT::i32, ++/*169540*/ OPC_MoveParent, ++/*169541*/ OPC_MoveChild, 21, ++/*169543*/ OPC_CheckInteger, 1, ++/*169545*/ OPC_CheckType, MVT::i32, ++/*169547*/ OPC_MoveParent, ++/*169548*/ OPC_MoveChild, 22, ++/*169550*/ OPC_CheckInteger, 1, ++/*169552*/ OPC_CheckType, MVT::i32, ++/*169554*/ OPC_MoveParent, ++/*169555*/ OPC_MoveChild, 23, ++/*169557*/ OPC_CheckInteger, 1, ++/*169559*/ OPC_CheckType, MVT::i32, ++/*169561*/ OPC_MoveParent, ++/*169562*/ OPC_MoveChild, 24, ++/*169564*/ OPC_CheckInteger, 1, ++/*169566*/ OPC_CheckType, MVT::i32, ++/*169568*/ OPC_MoveParent, ++/*169569*/ OPC_MoveChild, 25, ++/*169571*/ OPC_CheckInteger, 1, ++/*169573*/ OPC_CheckType, MVT::i32, ++/*169575*/ OPC_MoveParent, ++/*169576*/ OPC_MoveChild, 26, ++/*169578*/ OPC_CheckInteger, 1, ++/*169580*/ OPC_CheckType, MVT::i32, ++/*169582*/ OPC_MoveParent, ++/*169583*/ OPC_MoveChild, 27, ++/*169585*/ OPC_CheckInteger, 1, ++/*169587*/ OPC_CheckType, MVT::i32, ++/*169589*/ OPC_MoveParent, ++/*169590*/ OPC_MoveChild, 28, ++/*169592*/ OPC_CheckInteger, 1, ++/*169594*/ OPC_CheckType, MVT::i32, ++/*169596*/ OPC_MoveParent, ++/*169597*/ OPC_MoveChild, 29, ++/*169599*/ OPC_CheckInteger, 1, ++/*169601*/ OPC_CheckType, MVT::i32, ++/*169603*/ OPC_MoveParent, ++/*169604*/ OPC_MoveChild, 30, ++/*169606*/ OPC_CheckInteger, 1, ++/*169608*/ OPC_CheckType, MVT::i32, ++/*169610*/ OPC_MoveParent, ++/*169611*/ OPC_MoveChild, 31, ++/*169613*/ OPC_CheckInteger, 1, ++/*169615*/ OPC_CheckType, MVT::i32, ++/*169617*/ OPC_MoveParent, ++/*169618*/ OPC_CheckType, MVT::v32i8, ++/*169620*/ OPC_MoveParent, ++/*169621*/ OPC_CheckType, MVT::v32i8, ++/*169623*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*169625*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a)), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b), LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*169633*/ /*Scope*/ 17|128,5/*657*/, /*->170292*/ ++/*169635*/ OPC_CheckChild0Same, 0, ++/*169637*/ OPC_MoveChild1, ++/*169638*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*169641*/ OPC_CheckChild0Integer, 1, ++/*169643*/ OPC_CheckChild0Type, MVT::i32, ++/*169645*/ OPC_CheckChild1Integer, 1, ++/*169647*/ OPC_CheckChild1Type, MVT::i32, ++/*169649*/ OPC_CheckChild2Integer, 1, ++/*169651*/ OPC_CheckChild2Type, MVT::i32, ++/*169653*/ OPC_CheckChild3Integer, 1, ++/*169655*/ OPC_CheckChild3Type, MVT::i32, ++/*169657*/ OPC_CheckChild4Integer, 1, ++/*169659*/ OPC_CheckChild4Type, MVT::i32, ++/*169661*/ OPC_MoveChild5, ++/*169662*/ OPC_CheckInteger, 1, ++/*169664*/ OPC_CheckType, MVT::i32, ++/*169666*/ OPC_MoveParent, ++/*169667*/ OPC_MoveChild6, ++/*169668*/ OPC_CheckInteger, 1, ++/*169670*/ OPC_CheckType, MVT::i32, ++/*169672*/ OPC_MoveParent, ++/*169673*/ OPC_MoveChild7, ++/*169674*/ OPC_CheckInteger, 1, ++/*169676*/ OPC_CheckType, MVT::i32, ++/*169678*/ OPC_MoveParent, ++/*169679*/ OPC_MoveChild, 8, ++/*169681*/ OPC_CheckInteger, 1, ++/*169683*/ OPC_CheckType, MVT::i32, ++/*169685*/ OPC_MoveParent, ++/*169686*/ OPC_MoveChild, 9, ++/*169688*/ OPC_CheckInteger, 1, ++/*169690*/ OPC_CheckType, MVT::i32, ++/*169692*/ OPC_MoveParent, ++/*169693*/ OPC_MoveChild, 10, ++/*169695*/ OPC_CheckInteger, 1, ++/*169697*/ OPC_CheckType, MVT::i32, ++/*169699*/ OPC_MoveParent, ++/*169700*/ OPC_MoveChild, 11, ++/*169702*/ OPC_CheckInteger, 1, ++/*169704*/ OPC_CheckType, MVT::i32, ++/*169706*/ OPC_MoveParent, ++/*169707*/ OPC_MoveChild, 12, ++/*169709*/ OPC_CheckInteger, 1, ++/*169711*/ OPC_CheckType, MVT::i32, ++/*169713*/ OPC_MoveParent, ++/*169714*/ OPC_MoveChild, 13, ++/*169716*/ OPC_CheckInteger, 1, ++/*169718*/ OPC_CheckType, MVT::i32, ++/*169720*/ OPC_MoveParent, ++/*169721*/ OPC_MoveChild, 14, ++/*169723*/ OPC_CheckInteger, 1, ++/*169725*/ OPC_CheckType, MVT::i32, ++/*169727*/ OPC_MoveParent, ++/*169728*/ OPC_MoveChild, 15, ++/*169730*/ OPC_CheckInteger, 1, ++/*169732*/ OPC_CheckType, MVT::i32, ++/*169734*/ OPC_MoveParent, ++/*169735*/ OPC_MoveChild, 16, ++/*169737*/ OPC_CheckInteger, 1, ++/*169739*/ OPC_CheckType, MVT::i32, ++/*169741*/ OPC_MoveParent, ++/*169742*/ OPC_MoveChild, 17, ++/*169744*/ OPC_CheckInteger, 1, ++/*169746*/ OPC_CheckType, MVT::i32, ++/*169748*/ OPC_MoveParent, ++/*169749*/ OPC_MoveChild, 18, ++/*169751*/ OPC_CheckInteger, 1, ++/*169753*/ OPC_CheckType, MVT::i32, ++/*169755*/ OPC_MoveParent, ++/*169756*/ OPC_MoveChild, 19, ++/*169758*/ OPC_CheckInteger, 1, ++/*169760*/ OPC_CheckType, MVT::i32, ++/*169762*/ OPC_MoveParent, ++/*169763*/ OPC_MoveChild, 20, ++/*169765*/ OPC_CheckInteger, 1, ++/*169767*/ OPC_CheckType, MVT::i32, ++/*169769*/ OPC_MoveParent, ++/*169770*/ OPC_MoveChild, 21, ++/*169772*/ OPC_CheckInteger, 1, ++/*169774*/ OPC_CheckType, MVT::i32, ++/*169776*/ OPC_MoveParent, ++/*169777*/ OPC_MoveChild, 22, ++/*169779*/ OPC_CheckInteger, 1, ++/*169781*/ OPC_CheckType, MVT::i32, ++/*169783*/ OPC_MoveParent, ++/*169784*/ OPC_MoveChild, 23, ++/*169786*/ OPC_CheckInteger, 1, ++/*169788*/ OPC_CheckType, MVT::i32, ++/*169790*/ OPC_MoveParent, ++/*169791*/ OPC_MoveChild, 24, ++/*169793*/ OPC_CheckInteger, 1, ++/*169795*/ OPC_CheckType, MVT::i32, ++/*169797*/ OPC_MoveParent, ++/*169798*/ OPC_MoveChild, 25, ++/*169800*/ OPC_CheckInteger, 1, ++/*169802*/ OPC_CheckType, MVT::i32, ++/*169804*/ OPC_MoveParent, ++/*169805*/ OPC_MoveChild, 26, ++/*169807*/ OPC_CheckInteger, 1, ++/*169809*/ OPC_CheckType, MVT::i32, ++/*169811*/ OPC_MoveParent, ++/*169812*/ OPC_MoveChild, 27, ++/*169814*/ OPC_CheckInteger, 1, ++/*169816*/ OPC_CheckType, MVT::i32, ++/*169818*/ OPC_MoveParent, ++/*169819*/ OPC_MoveChild, 28, ++/*169821*/ OPC_CheckInteger, 1, ++/*169823*/ OPC_CheckType, MVT::i32, ++/*169825*/ OPC_MoveParent, ++/*169826*/ OPC_MoveChild, 29, ++/*169828*/ OPC_CheckInteger, 1, ++/*169830*/ OPC_CheckType, MVT::i32, ++/*169832*/ OPC_MoveParent, ++/*169833*/ OPC_MoveChild, 30, ++/*169835*/ OPC_CheckInteger, 1, ++/*169837*/ OPC_CheckType, MVT::i32, ++/*169839*/ OPC_MoveParent, ++/*169840*/ OPC_MoveChild, 31, ++/*169842*/ OPC_CheckInteger, 1, ++/*169844*/ OPC_CheckType, MVT::i32, ++/*169846*/ OPC_MoveParent, ++/*169847*/ OPC_MoveParent, ++/*169848*/ OPC_MoveParent, ++/*169849*/ OPC_CheckChild1Same, 1, ++/*169851*/ OPC_MoveParent, ++/*169852*/ OPC_MoveChild1, ++/*169853*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*169856*/ OPC_CheckChild0Integer, 7, ++/*169858*/ OPC_CheckChild0Type, MVT::i32, ++/*169860*/ OPC_CheckChild1Integer, 7, ++/*169862*/ OPC_CheckChild1Type, MVT::i32, ++/*169864*/ OPC_CheckChild2Integer, 7, ++/*169866*/ OPC_CheckChild2Type, MVT::i32, ++/*169868*/ OPC_CheckChild3Integer, 7, ++/*169870*/ OPC_CheckChild3Type, MVT::i32, ++/*169872*/ OPC_CheckChild4Integer, 7, ++/*169874*/ OPC_CheckChild4Type, MVT::i32, ++/*169876*/ OPC_MoveChild5, ++/*169877*/ OPC_CheckInteger, 7, ++/*169879*/ OPC_CheckType, MVT::i32, ++/*169881*/ OPC_MoveParent, ++/*169882*/ OPC_MoveChild6, ++/*169883*/ OPC_CheckInteger, 7, ++/*169885*/ OPC_CheckType, MVT::i32, ++/*169887*/ OPC_MoveParent, ++/*169888*/ OPC_MoveChild7, ++/*169889*/ OPC_CheckInteger, 7, ++/*169891*/ OPC_CheckType, MVT::i32, ++/*169893*/ OPC_MoveParent, ++/*169894*/ OPC_MoveChild, 8, ++/*169896*/ OPC_CheckInteger, 7, ++/*169898*/ OPC_CheckType, MVT::i32, ++/*169900*/ OPC_MoveParent, ++/*169901*/ OPC_MoveChild, 9, ++/*169903*/ OPC_CheckInteger, 7, ++/*169905*/ OPC_CheckType, MVT::i32, ++/*169907*/ OPC_MoveParent, ++/*169908*/ OPC_MoveChild, 10, ++/*169910*/ OPC_CheckInteger, 7, ++/*169912*/ OPC_CheckType, MVT::i32, ++/*169914*/ OPC_MoveParent, ++/*169915*/ OPC_MoveChild, 11, ++/*169917*/ OPC_CheckInteger, 7, ++/*169919*/ OPC_CheckType, MVT::i32, ++/*169921*/ OPC_MoveParent, ++/*169922*/ OPC_MoveChild, 12, ++/*169924*/ OPC_CheckInteger, 7, ++/*169926*/ OPC_CheckType, MVT::i32, ++/*169928*/ OPC_MoveParent, ++/*169929*/ OPC_MoveChild, 13, ++/*169931*/ OPC_CheckInteger, 7, ++/*169933*/ OPC_CheckType, MVT::i32, ++/*169935*/ OPC_MoveParent, ++/*169936*/ OPC_MoveChild, 14, ++/*169938*/ OPC_CheckInteger, 7, ++/*169940*/ OPC_CheckType, MVT::i32, ++/*169942*/ OPC_MoveParent, ++/*169943*/ OPC_MoveChild, 15, ++/*169945*/ OPC_CheckInteger, 7, ++/*169947*/ OPC_CheckType, MVT::i32, ++/*169949*/ OPC_MoveParent, ++/*169950*/ OPC_MoveChild, 16, ++/*169952*/ OPC_CheckInteger, 7, ++/*169954*/ OPC_CheckType, MVT::i32, ++/*169956*/ OPC_MoveParent, ++/*169957*/ OPC_MoveChild, 17, ++/*169959*/ OPC_CheckInteger, 7, ++/*169961*/ OPC_CheckType, MVT::i32, ++/*169963*/ OPC_MoveParent, ++/*169964*/ OPC_MoveChild, 18, ++/*169966*/ OPC_CheckInteger, 7, ++/*169968*/ OPC_CheckType, MVT::i32, ++/*169970*/ OPC_MoveParent, ++/*169971*/ OPC_MoveChild, 19, ++/*169973*/ OPC_CheckInteger, 7, ++/*169975*/ OPC_CheckType, MVT::i32, ++/*169977*/ OPC_MoveParent, ++/*169978*/ OPC_MoveChild, 20, ++/*169980*/ OPC_CheckInteger, 7, ++/*169982*/ OPC_CheckType, MVT::i32, ++/*169984*/ OPC_MoveParent, ++/*169985*/ OPC_MoveChild, 21, ++/*169987*/ OPC_CheckInteger, 7, ++/*169989*/ OPC_CheckType, MVT::i32, ++/*169991*/ OPC_MoveParent, ++/*169992*/ OPC_MoveChild, 22, ++/*169994*/ OPC_CheckInteger, 7, ++/*169996*/ OPC_CheckType, MVT::i32, ++/*169998*/ OPC_MoveParent, ++/*169999*/ OPC_MoveChild, 23, ++/*170001*/ OPC_CheckInteger, 7, ++/*170003*/ OPC_CheckType, MVT::i32, ++/*170005*/ OPC_MoveParent, ++/*170006*/ OPC_MoveChild, 24, ++/*170008*/ OPC_CheckInteger, 7, ++/*170010*/ OPC_CheckType, MVT::i32, ++/*170012*/ OPC_MoveParent, ++/*170013*/ OPC_MoveChild, 25, ++/*170015*/ OPC_CheckInteger, 7, ++/*170017*/ OPC_CheckType, MVT::i32, ++/*170019*/ OPC_MoveParent, ++/*170020*/ OPC_MoveChild, 26, ++/*170022*/ OPC_CheckInteger, 7, ++/*170024*/ OPC_CheckType, MVT::i32, ++/*170026*/ OPC_MoveParent, ++/*170027*/ OPC_MoveChild, 27, ++/*170029*/ OPC_CheckInteger, 7, ++/*170031*/ OPC_CheckType, MVT::i32, ++/*170033*/ OPC_MoveParent, ++/*170034*/ OPC_MoveChild, 28, ++/*170036*/ OPC_CheckInteger, 7, ++/*170038*/ OPC_CheckType, MVT::i32, ++/*170040*/ OPC_MoveParent, ++/*170041*/ OPC_MoveChild, 29, ++/*170043*/ OPC_CheckInteger, 7, ++/*170045*/ OPC_CheckType, MVT::i32, ++/*170047*/ OPC_MoveParent, ++/*170048*/ OPC_MoveChild, 30, ++/*170050*/ OPC_CheckInteger, 7, ++/*170052*/ OPC_CheckType, MVT::i32, ++/*170054*/ OPC_MoveParent, ++/*170055*/ OPC_MoveChild, 31, ++/*170057*/ OPC_CheckInteger, 7, ++/*170059*/ OPC_CheckType, MVT::i32, ++/*170061*/ OPC_MoveParent, ++/*170062*/ OPC_CheckType, MVT::v32i8, ++/*170064*/ OPC_MoveParent, ++/*170065*/ OPC_MoveParent, ++/*170066*/ OPC_MoveParent, ++/*170067*/ OPC_MoveChild1, ++/*170068*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*170071*/ OPC_CheckChild0Integer, 1, ++/*170073*/ OPC_CheckChild0Type, MVT::i32, ++/*170075*/ OPC_CheckChild1Integer, 1, ++/*170077*/ OPC_CheckChild1Type, MVT::i32, ++/*170079*/ OPC_CheckChild2Integer, 1, ++/*170081*/ OPC_CheckChild2Type, MVT::i32, ++/*170083*/ OPC_CheckChild3Integer, 1, ++/*170085*/ OPC_CheckChild3Type, MVT::i32, ++/*170087*/ OPC_CheckChild4Integer, 1, ++/*170089*/ OPC_CheckChild4Type, MVT::i32, ++/*170091*/ OPC_MoveChild5, ++/*170092*/ OPC_CheckInteger, 1, ++/*170094*/ OPC_CheckType, MVT::i32, ++/*170096*/ OPC_MoveParent, ++/*170097*/ OPC_MoveChild6, ++/*170098*/ OPC_CheckInteger, 1, ++/*170100*/ OPC_CheckType, MVT::i32, ++/*170102*/ OPC_MoveParent, ++/*170103*/ OPC_MoveChild7, ++/*170104*/ OPC_CheckInteger, 1, ++/*170106*/ OPC_CheckType, MVT::i32, ++/*170108*/ OPC_MoveParent, ++/*170109*/ OPC_MoveChild, 8, ++/*170111*/ OPC_CheckInteger, 1, ++/*170113*/ OPC_CheckType, MVT::i32, ++/*170115*/ OPC_MoveParent, ++/*170116*/ OPC_MoveChild, 9, ++/*170118*/ OPC_CheckInteger, 1, ++/*170120*/ OPC_CheckType, MVT::i32, ++/*170122*/ OPC_MoveParent, ++/*170123*/ OPC_MoveChild, 10, ++/*170125*/ OPC_CheckInteger, 1, ++/*170127*/ OPC_CheckType, MVT::i32, ++/*170129*/ OPC_MoveParent, ++/*170130*/ OPC_MoveChild, 11, ++/*170132*/ OPC_CheckInteger, 1, ++/*170134*/ OPC_CheckType, MVT::i32, ++/*170136*/ OPC_MoveParent, ++/*170137*/ OPC_MoveChild, 12, ++/*170139*/ OPC_CheckInteger, 1, ++/*170141*/ OPC_CheckType, MVT::i32, ++/*170143*/ OPC_MoveParent, ++/*170144*/ OPC_MoveChild, 13, ++/*170146*/ OPC_CheckInteger, 1, ++/*170148*/ OPC_CheckType, MVT::i32, ++/*170150*/ OPC_MoveParent, ++/*170151*/ OPC_MoveChild, 14, ++/*170153*/ OPC_CheckInteger, 1, ++/*170155*/ OPC_CheckType, MVT::i32, ++/*170157*/ OPC_MoveParent, ++/*170158*/ OPC_MoveChild, 15, ++/*170160*/ OPC_CheckInteger, 1, ++/*170162*/ OPC_CheckType, MVT::i32, ++/*170164*/ OPC_MoveParent, ++/*170165*/ OPC_MoveChild, 16, ++/*170167*/ OPC_CheckInteger, 1, ++/*170169*/ OPC_CheckType, MVT::i32, ++/*170171*/ OPC_MoveParent, ++/*170172*/ OPC_MoveChild, 17, ++/*170174*/ OPC_CheckInteger, 1, ++/*170176*/ OPC_CheckType, MVT::i32, ++/*170178*/ OPC_MoveParent, ++/*170179*/ OPC_MoveChild, 18, ++/*170181*/ OPC_CheckInteger, 1, ++/*170183*/ OPC_CheckType, MVT::i32, ++/*170185*/ OPC_MoveParent, ++/*170186*/ OPC_MoveChild, 19, ++/*170188*/ OPC_CheckInteger, 1, ++/*170190*/ OPC_CheckType, MVT::i32, ++/*170192*/ OPC_MoveParent, ++/*170193*/ OPC_MoveChild, 20, ++/*170195*/ OPC_CheckInteger, 1, ++/*170197*/ OPC_CheckType, MVT::i32, ++/*170199*/ OPC_MoveParent, ++/*170200*/ OPC_MoveChild, 21, ++/*170202*/ OPC_CheckInteger, 1, ++/*170204*/ OPC_CheckType, MVT::i32, ++/*170206*/ OPC_MoveParent, ++/*170207*/ OPC_MoveChild, 22, ++/*170209*/ OPC_CheckInteger, 1, ++/*170211*/ OPC_CheckType, MVT::i32, ++/*170213*/ OPC_MoveParent, ++/*170214*/ OPC_MoveChild, 23, ++/*170216*/ OPC_CheckInteger, 1, ++/*170218*/ OPC_CheckType, MVT::i32, ++/*170220*/ OPC_MoveParent, ++/*170221*/ OPC_MoveChild, 24, ++/*170223*/ OPC_CheckInteger, 1, ++/*170225*/ OPC_CheckType, MVT::i32, ++/*170227*/ OPC_MoveParent, ++/*170228*/ OPC_MoveChild, 25, ++/*170230*/ OPC_CheckInteger, 1, ++/*170232*/ OPC_CheckType, MVT::i32, ++/*170234*/ OPC_MoveParent, ++/*170235*/ OPC_MoveChild, 26, ++/*170237*/ OPC_CheckInteger, 1, ++/*170239*/ OPC_CheckType, MVT::i32, ++/*170241*/ OPC_MoveParent, ++/*170242*/ OPC_MoveChild, 27, ++/*170244*/ OPC_CheckInteger, 1, ++/*170246*/ OPC_CheckType, MVT::i32, ++/*170248*/ OPC_MoveParent, ++/*170249*/ OPC_MoveChild, 28, ++/*170251*/ OPC_CheckInteger, 1, ++/*170253*/ OPC_CheckType, MVT::i32, ++/*170255*/ OPC_MoveParent, ++/*170256*/ OPC_MoveChild, 29, ++/*170258*/ OPC_CheckInteger, 1, ++/*170260*/ OPC_CheckType, MVT::i32, ++/*170262*/ OPC_MoveParent, ++/*170263*/ OPC_MoveChild, 30, ++/*170265*/ OPC_CheckInteger, 1, ++/*170267*/ OPC_CheckType, MVT::i32, ++/*170269*/ OPC_MoveParent, ++/*170270*/ OPC_MoveChild, 31, ++/*170272*/ OPC_CheckInteger, 1, ++/*170274*/ OPC_CheckType, MVT::i32, ++/*170276*/ OPC_MoveParent, ++/*170277*/ OPC_CheckType, MVT::v32i8, ++/*170279*/ OPC_MoveParent, ++/*170280*/ OPC_CheckType, MVT::v32i8, ++/*170282*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*170284*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a)), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*170292*/ /*Scope*/ 17|128,5/*657*/, /*->170951*/ ++/*170294*/ OPC_CheckChild0Same, 1, ++/*170296*/ OPC_CheckChild1Same, 0, ++/*170298*/ OPC_MoveParent, ++/*170299*/ OPC_MoveChild1, ++/*170300*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*170303*/ OPC_CheckChild0Integer, 1, ++/*170305*/ OPC_CheckChild0Type, MVT::i32, ++/*170307*/ OPC_CheckChild1Integer, 1, ++/*170309*/ OPC_CheckChild1Type, MVT::i32, ++/*170311*/ OPC_CheckChild2Integer, 1, ++/*170313*/ OPC_CheckChild2Type, MVT::i32, ++/*170315*/ OPC_CheckChild3Integer, 1, ++/*170317*/ OPC_CheckChild3Type, MVT::i32, ++/*170319*/ OPC_CheckChild4Integer, 1, ++/*170321*/ OPC_CheckChild4Type, MVT::i32, ++/*170323*/ OPC_MoveChild5, ++/*170324*/ OPC_CheckInteger, 1, ++/*170326*/ OPC_CheckType, MVT::i32, ++/*170328*/ OPC_MoveParent, ++/*170329*/ OPC_MoveChild6, ++/*170330*/ OPC_CheckInteger, 1, ++/*170332*/ OPC_CheckType, MVT::i32, ++/*170334*/ OPC_MoveParent, ++/*170335*/ OPC_MoveChild7, ++/*170336*/ OPC_CheckInteger, 1, ++/*170338*/ OPC_CheckType, MVT::i32, ++/*170340*/ OPC_MoveParent, ++/*170341*/ OPC_MoveChild, 8, ++/*170343*/ OPC_CheckInteger, 1, ++/*170345*/ OPC_CheckType, MVT::i32, ++/*170347*/ OPC_MoveParent, ++/*170348*/ OPC_MoveChild, 9, ++/*170350*/ OPC_CheckInteger, 1, ++/*170352*/ OPC_CheckType, MVT::i32, ++/*170354*/ OPC_MoveParent, ++/*170355*/ OPC_MoveChild, 10, ++/*170357*/ OPC_CheckInteger, 1, ++/*170359*/ OPC_CheckType, MVT::i32, ++/*170361*/ OPC_MoveParent, ++/*170362*/ OPC_MoveChild, 11, ++/*170364*/ OPC_CheckInteger, 1, ++/*170366*/ OPC_CheckType, MVT::i32, ++/*170368*/ OPC_MoveParent, ++/*170369*/ OPC_MoveChild, 12, ++/*170371*/ OPC_CheckInteger, 1, ++/*170373*/ OPC_CheckType, MVT::i32, ++/*170375*/ OPC_MoveParent, ++/*170376*/ OPC_MoveChild, 13, ++/*170378*/ OPC_CheckInteger, 1, ++/*170380*/ OPC_CheckType, MVT::i32, ++/*170382*/ OPC_MoveParent, ++/*170383*/ OPC_MoveChild, 14, ++/*170385*/ OPC_CheckInteger, 1, ++/*170387*/ OPC_CheckType, MVT::i32, ++/*170389*/ OPC_MoveParent, ++/*170390*/ OPC_MoveChild, 15, ++/*170392*/ OPC_CheckInteger, 1, ++/*170394*/ OPC_CheckType, MVT::i32, ++/*170396*/ OPC_MoveParent, ++/*170397*/ OPC_MoveChild, 16, ++/*170399*/ OPC_CheckInteger, 1, ++/*170401*/ OPC_CheckType, MVT::i32, ++/*170403*/ OPC_MoveParent, ++/*170404*/ OPC_MoveChild, 17, ++/*170406*/ OPC_CheckInteger, 1, ++/*170408*/ OPC_CheckType, MVT::i32, ++/*170410*/ OPC_MoveParent, ++/*170411*/ OPC_MoveChild, 18, ++/*170413*/ OPC_CheckInteger, 1, ++/*170415*/ OPC_CheckType, MVT::i32, ++/*170417*/ OPC_MoveParent, ++/*170418*/ OPC_MoveChild, 19, ++/*170420*/ OPC_CheckInteger, 1, ++/*170422*/ OPC_CheckType, MVT::i32, ++/*170424*/ OPC_MoveParent, ++/*170425*/ OPC_MoveChild, 20, ++/*170427*/ OPC_CheckInteger, 1, ++/*170429*/ OPC_CheckType, MVT::i32, ++/*170431*/ OPC_MoveParent, ++/*170432*/ OPC_MoveChild, 21, ++/*170434*/ OPC_CheckInteger, 1, ++/*170436*/ OPC_CheckType, MVT::i32, ++/*170438*/ OPC_MoveParent, ++/*170439*/ OPC_MoveChild, 22, ++/*170441*/ OPC_CheckInteger, 1, ++/*170443*/ OPC_CheckType, MVT::i32, ++/*170445*/ OPC_MoveParent, ++/*170446*/ OPC_MoveChild, 23, ++/*170448*/ OPC_CheckInteger, 1, ++/*170450*/ OPC_CheckType, MVT::i32, ++/*170452*/ OPC_MoveParent, ++/*170453*/ OPC_MoveChild, 24, ++/*170455*/ OPC_CheckInteger, 1, ++/*170457*/ OPC_CheckType, MVT::i32, ++/*170459*/ OPC_MoveParent, ++/*170460*/ OPC_MoveChild, 25, ++/*170462*/ OPC_CheckInteger, 1, ++/*170464*/ OPC_CheckType, MVT::i32, ++/*170466*/ OPC_MoveParent, ++/*170467*/ OPC_MoveChild, 26, ++/*170469*/ OPC_CheckInteger, 1, ++/*170471*/ OPC_CheckType, MVT::i32, ++/*170473*/ OPC_MoveParent, ++/*170474*/ OPC_MoveChild, 27, ++/*170476*/ OPC_CheckInteger, 1, ++/*170478*/ OPC_CheckType, MVT::i32, ++/*170480*/ OPC_MoveParent, ++/*170481*/ OPC_MoveChild, 28, ++/*170483*/ OPC_CheckInteger, 1, ++/*170485*/ OPC_CheckType, MVT::i32, ++/*170487*/ OPC_MoveParent, ++/*170488*/ OPC_MoveChild, 29, ++/*170490*/ OPC_CheckInteger, 1, ++/*170492*/ OPC_CheckType, MVT::i32, ++/*170494*/ OPC_MoveParent, ++/*170495*/ OPC_MoveChild, 30, ++/*170497*/ OPC_CheckInteger, 1, ++/*170499*/ OPC_CheckType, MVT::i32, ++/*170501*/ OPC_MoveParent, ++/*170502*/ OPC_MoveChild, 31, ++/*170504*/ OPC_CheckInteger, 1, ++/*170506*/ OPC_CheckType, MVT::i32, ++/*170508*/ OPC_MoveParent, ++/*170509*/ OPC_MoveParent, ++/*170510*/ OPC_MoveParent, ++/*170511*/ OPC_MoveChild1, ++/*170512*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*170515*/ OPC_CheckChild0Integer, 7, ++/*170517*/ OPC_CheckChild0Type, MVT::i32, ++/*170519*/ OPC_CheckChild1Integer, 7, ++/*170521*/ OPC_CheckChild1Type, MVT::i32, ++/*170523*/ OPC_CheckChild2Integer, 7, ++/*170525*/ OPC_CheckChild2Type, MVT::i32, ++/*170527*/ OPC_CheckChild3Integer, 7, ++/*170529*/ OPC_CheckChild3Type, MVT::i32, ++/*170531*/ OPC_CheckChild4Integer, 7, ++/*170533*/ OPC_CheckChild4Type, MVT::i32, ++/*170535*/ OPC_MoveChild5, ++/*170536*/ OPC_CheckInteger, 7, ++/*170538*/ OPC_CheckType, MVT::i32, ++/*170540*/ OPC_MoveParent, ++/*170541*/ OPC_MoveChild6, ++/*170542*/ OPC_CheckInteger, 7, ++/*170544*/ OPC_CheckType, MVT::i32, ++/*170546*/ OPC_MoveParent, ++/*170547*/ OPC_MoveChild7, ++/*170548*/ OPC_CheckInteger, 7, ++/*170550*/ OPC_CheckType, MVT::i32, ++/*170552*/ OPC_MoveParent, ++/*170553*/ OPC_MoveChild, 8, ++/*170555*/ OPC_CheckInteger, 7, ++/*170557*/ OPC_CheckType, MVT::i32, ++/*170559*/ OPC_MoveParent, ++/*170560*/ OPC_MoveChild, 9, ++/*170562*/ OPC_CheckInteger, 7, ++/*170564*/ OPC_CheckType, MVT::i32, ++/*170566*/ OPC_MoveParent, ++/*170567*/ OPC_MoveChild, 10, ++/*170569*/ OPC_CheckInteger, 7, ++/*170571*/ OPC_CheckType, MVT::i32, ++/*170573*/ OPC_MoveParent, ++/*170574*/ OPC_MoveChild, 11, ++/*170576*/ OPC_CheckInteger, 7, ++/*170578*/ OPC_CheckType, MVT::i32, ++/*170580*/ OPC_MoveParent, ++/*170581*/ OPC_MoveChild, 12, ++/*170583*/ OPC_CheckInteger, 7, ++/*170585*/ OPC_CheckType, MVT::i32, ++/*170587*/ OPC_MoveParent, ++/*170588*/ OPC_MoveChild, 13, ++/*170590*/ OPC_CheckInteger, 7, ++/*170592*/ OPC_CheckType, MVT::i32, ++/*170594*/ OPC_MoveParent, ++/*170595*/ OPC_MoveChild, 14, ++/*170597*/ OPC_CheckInteger, 7, ++/*170599*/ OPC_CheckType, MVT::i32, ++/*170601*/ OPC_MoveParent, ++/*170602*/ OPC_MoveChild, 15, ++/*170604*/ OPC_CheckInteger, 7, ++/*170606*/ OPC_CheckType, MVT::i32, ++/*170608*/ OPC_MoveParent, ++/*170609*/ OPC_MoveChild, 16, ++/*170611*/ OPC_CheckInteger, 7, ++/*170613*/ OPC_CheckType, MVT::i32, ++/*170615*/ OPC_MoveParent, ++/*170616*/ OPC_MoveChild, 17, ++/*170618*/ OPC_CheckInteger, 7, ++/*170620*/ OPC_CheckType, MVT::i32, ++/*170622*/ OPC_MoveParent, ++/*170623*/ OPC_MoveChild, 18, ++/*170625*/ OPC_CheckInteger, 7, ++/*170627*/ OPC_CheckType, MVT::i32, ++/*170629*/ OPC_MoveParent, ++/*170630*/ OPC_MoveChild, 19, ++/*170632*/ OPC_CheckInteger, 7, ++/*170634*/ OPC_CheckType, MVT::i32, ++/*170636*/ OPC_MoveParent, ++/*170637*/ OPC_MoveChild, 20, ++/*170639*/ OPC_CheckInteger, 7, ++/*170641*/ OPC_CheckType, MVT::i32, ++/*170643*/ OPC_MoveParent, ++/*170644*/ OPC_MoveChild, 21, ++/*170646*/ OPC_CheckInteger, 7, ++/*170648*/ OPC_CheckType, MVT::i32, ++/*170650*/ OPC_MoveParent, ++/*170651*/ OPC_MoveChild, 22, ++/*170653*/ OPC_CheckInteger, 7, ++/*170655*/ OPC_CheckType, MVT::i32, ++/*170657*/ OPC_MoveParent, ++/*170658*/ OPC_MoveChild, 23, ++/*170660*/ OPC_CheckInteger, 7, ++/*170662*/ OPC_CheckType, MVT::i32, ++/*170664*/ OPC_MoveParent, ++/*170665*/ OPC_MoveChild, 24, ++/*170667*/ OPC_CheckInteger, 7, ++/*170669*/ OPC_CheckType, MVT::i32, ++/*170671*/ OPC_MoveParent, ++/*170672*/ OPC_MoveChild, 25, ++/*170674*/ OPC_CheckInteger, 7, ++/*170676*/ OPC_CheckType, MVT::i32, ++/*170678*/ OPC_MoveParent, ++/*170679*/ OPC_MoveChild, 26, ++/*170681*/ OPC_CheckInteger, 7, ++/*170683*/ OPC_CheckType, MVT::i32, ++/*170685*/ OPC_MoveParent, ++/*170686*/ OPC_MoveChild, 27, ++/*170688*/ OPC_CheckInteger, 7, ++/*170690*/ OPC_CheckType, MVT::i32, ++/*170692*/ OPC_MoveParent, ++/*170693*/ OPC_MoveChild, 28, ++/*170695*/ OPC_CheckInteger, 7, ++/*170697*/ OPC_CheckType, MVT::i32, ++/*170699*/ OPC_MoveParent, ++/*170700*/ OPC_MoveChild, 29, ++/*170702*/ OPC_CheckInteger, 7, ++/*170704*/ OPC_CheckType, MVT::i32, ++/*170706*/ OPC_MoveParent, ++/*170707*/ OPC_MoveChild, 30, ++/*170709*/ OPC_CheckInteger, 7, ++/*170711*/ OPC_CheckType, MVT::i32, ++/*170713*/ OPC_MoveParent, ++/*170714*/ OPC_MoveChild, 31, ++/*170716*/ OPC_CheckInteger, 7, ++/*170718*/ OPC_CheckType, MVT::i32, ++/*170720*/ OPC_MoveParent, ++/*170721*/ OPC_CheckType, MVT::v32i8, ++/*170723*/ OPC_MoveParent, ++/*170724*/ OPC_MoveParent, ++/*170725*/ OPC_MoveParent, ++/*170726*/ OPC_MoveChild1, ++/*170727*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*170730*/ OPC_CheckChild0Integer, 1, ++/*170732*/ OPC_CheckChild0Type, MVT::i32, ++/*170734*/ OPC_CheckChild1Integer, 1, ++/*170736*/ OPC_CheckChild1Type, MVT::i32, ++/*170738*/ OPC_CheckChild2Integer, 1, ++/*170740*/ OPC_CheckChild2Type, MVT::i32, ++/*170742*/ OPC_CheckChild3Integer, 1, ++/*170744*/ OPC_CheckChild3Type, MVT::i32, ++/*170746*/ OPC_CheckChild4Integer, 1, ++/*170748*/ OPC_CheckChild4Type, MVT::i32, ++/*170750*/ OPC_MoveChild5, ++/*170751*/ OPC_CheckInteger, 1, ++/*170753*/ OPC_CheckType, MVT::i32, ++/*170755*/ OPC_MoveParent, ++/*170756*/ OPC_MoveChild6, ++/*170757*/ OPC_CheckInteger, 1, ++/*170759*/ OPC_CheckType, MVT::i32, ++/*170761*/ OPC_MoveParent, ++/*170762*/ OPC_MoveChild7, ++/*170763*/ OPC_CheckInteger, 1, ++/*170765*/ OPC_CheckType, MVT::i32, ++/*170767*/ OPC_MoveParent, ++/*170768*/ OPC_MoveChild, 8, ++/*170770*/ OPC_CheckInteger, 1, ++/*170772*/ OPC_CheckType, MVT::i32, ++/*170774*/ OPC_MoveParent, ++/*170775*/ OPC_MoveChild, 9, ++/*170777*/ OPC_CheckInteger, 1, ++/*170779*/ OPC_CheckType, MVT::i32, ++/*170781*/ OPC_MoveParent, ++/*170782*/ OPC_MoveChild, 10, ++/*170784*/ OPC_CheckInteger, 1, ++/*170786*/ OPC_CheckType, MVT::i32, ++/*170788*/ OPC_MoveParent, ++/*170789*/ OPC_MoveChild, 11, ++/*170791*/ OPC_CheckInteger, 1, ++/*170793*/ OPC_CheckType, MVT::i32, ++/*170795*/ OPC_MoveParent, ++/*170796*/ OPC_MoveChild, 12, ++/*170798*/ OPC_CheckInteger, 1, ++/*170800*/ OPC_CheckType, MVT::i32, ++/*170802*/ OPC_MoveParent, ++/*170803*/ OPC_MoveChild, 13, ++/*170805*/ OPC_CheckInteger, 1, ++/*170807*/ OPC_CheckType, MVT::i32, ++/*170809*/ OPC_MoveParent, ++/*170810*/ OPC_MoveChild, 14, ++/*170812*/ OPC_CheckInteger, 1, ++/*170814*/ OPC_CheckType, MVT::i32, ++/*170816*/ OPC_MoveParent, ++/*170817*/ OPC_MoveChild, 15, ++/*170819*/ OPC_CheckInteger, 1, ++/*170821*/ OPC_CheckType, MVT::i32, ++/*170823*/ OPC_MoveParent, ++/*170824*/ OPC_MoveChild, 16, ++/*170826*/ OPC_CheckInteger, 1, ++/*170828*/ OPC_CheckType, MVT::i32, ++/*170830*/ OPC_MoveParent, ++/*170831*/ OPC_MoveChild, 17, ++/*170833*/ OPC_CheckInteger, 1, ++/*170835*/ OPC_CheckType, MVT::i32, ++/*170837*/ OPC_MoveParent, ++/*170838*/ OPC_MoveChild, 18, ++/*170840*/ OPC_CheckInteger, 1, ++/*170842*/ OPC_CheckType, MVT::i32, ++/*170844*/ OPC_MoveParent, ++/*170845*/ OPC_MoveChild, 19, ++/*170847*/ OPC_CheckInteger, 1, ++/*170849*/ OPC_CheckType, MVT::i32, ++/*170851*/ OPC_MoveParent, ++/*170852*/ OPC_MoveChild, 20, ++/*170854*/ OPC_CheckInteger, 1, ++/*170856*/ OPC_CheckType, MVT::i32, ++/*170858*/ OPC_MoveParent, ++/*170859*/ OPC_MoveChild, 21, ++/*170861*/ OPC_CheckInteger, 1, ++/*170863*/ OPC_CheckType, MVT::i32, ++/*170865*/ OPC_MoveParent, ++/*170866*/ OPC_MoveChild, 22, ++/*170868*/ OPC_CheckInteger, 1, ++/*170870*/ OPC_CheckType, MVT::i32, ++/*170872*/ OPC_MoveParent, ++/*170873*/ OPC_MoveChild, 23, ++/*170875*/ OPC_CheckInteger, 1, ++/*170877*/ OPC_CheckType, MVT::i32, ++/*170879*/ OPC_MoveParent, ++/*170880*/ OPC_MoveChild, 24, ++/*170882*/ OPC_CheckInteger, 1, ++/*170884*/ OPC_CheckType, MVT::i32, ++/*170886*/ OPC_MoveParent, ++/*170887*/ OPC_MoveChild, 25, ++/*170889*/ OPC_CheckInteger, 1, ++/*170891*/ OPC_CheckType, MVT::i32, ++/*170893*/ OPC_MoveParent, ++/*170894*/ OPC_MoveChild, 26, ++/*170896*/ OPC_CheckInteger, 1, ++/*170898*/ OPC_CheckType, MVT::i32, ++/*170900*/ OPC_MoveParent, ++/*170901*/ OPC_MoveChild, 27, ++/*170903*/ OPC_CheckInteger, 1, ++/*170905*/ OPC_CheckType, MVT::i32, ++/*170907*/ OPC_MoveParent, ++/*170908*/ OPC_MoveChild, 28, ++/*170910*/ OPC_CheckInteger, 1, ++/*170912*/ OPC_CheckType, MVT::i32, ++/*170914*/ OPC_MoveParent, ++/*170915*/ OPC_MoveChild, 29, ++/*170917*/ OPC_CheckInteger, 1, ++/*170919*/ OPC_CheckType, MVT::i32, ++/*170921*/ OPC_MoveParent, ++/*170922*/ OPC_MoveChild, 30, ++/*170924*/ OPC_CheckInteger, 1, ++/*170926*/ OPC_CheckType, MVT::i32, ++/*170928*/ OPC_MoveParent, ++/*170929*/ OPC_MoveChild, 31, ++/*170931*/ OPC_CheckInteger, 1, ++/*170933*/ OPC_CheckType, MVT::i32, ++/*170935*/ OPC_MoveParent, ++/*170936*/ OPC_CheckType, MVT::v32i8, ++/*170938*/ OPC_MoveParent, ++/*170939*/ OPC_CheckType, MVT::v32i8, ++/*170941*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*170943*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a)), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*170951*/ /*Scope*/ 17|128,5/*657*/, /*->171610*/ ++/*170953*/ OPC_CheckChild0Same, 0, ++/*170955*/ OPC_CheckChild1Same, 1, ++/*170957*/ OPC_MoveParent, ++/*170958*/ OPC_MoveChild1, ++/*170959*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*170962*/ OPC_CheckChild0Integer, 1, ++/*170964*/ OPC_CheckChild0Type, MVT::i32, ++/*170966*/ OPC_CheckChild1Integer, 1, ++/*170968*/ OPC_CheckChild1Type, MVT::i32, ++/*170970*/ OPC_CheckChild2Integer, 1, ++/*170972*/ OPC_CheckChild2Type, MVT::i32, ++/*170974*/ OPC_CheckChild3Integer, 1, ++/*170976*/ OPC_CheckChild3Type, MVT::i32, ++/*170978*/ OPC_CheckChild4Integer, 1, ++/*170980*/ OPC_CheckChild4Type, MVT::i32, ++/*170982*/ OPC_MoveChild5, ++/*170983*/ OPC_CheckInteger, 1, ++/*170985*/ OPC_CheckType, MVT::i32, ++/*170987*/ OPC_MoveParent, ++/*170988*/ OPC_MoveChild6, ++/*170989*/ OPC_CheckInteger, 1, ++/*170991*/ OPC_CheckType, MVT::i32, ++/*170993*/ OPC_MoveParent, ++/*170994*/ OPC_MoveChild7, ++/*170995*/ OPC_CheckInteger, 1, ++/*170997*/ OPC_CheckType, MVT::i32, ++/*170999*/ OPC_MoveParent, ++/*171000*/ OPC_MoveChild, 8, ++/*171002*/ OPC_CheckInteger, 1, ++/*171004*/ OPC_CheckType, MVT::i32, ++/*171006*/ OPC_MoveParent, ++/*171007*/ OPC_MoveChild, 9, ++/*171009*/ OPC_CheckInteger, 1, ++/*171011*/ OPC_CheckType, MVT::i32, ++/*171013*/ OPC_MoveParent, ++/*171014*/ OPC_MoveChild, 10, ++/*171016*/ OPC_CheckInteger, 1, ++/*171018*/ OPC_CheckType, MVT::i32, ++/*171020*/ OPC_MoveParent, ++/*171021*/ OPC_MoveChild, 11, ++/*171023*/ OPC_CheckInteger, 1, ++/*171025*/ OPC_CheckType, MVT::i32, ++/*171027*/ OPC_MoveParent, ++/*171028*/ OPC_MoveChild, 12, ++/*171030*/ OPC_CheckInteger, 1, ++/*171032*/ OPC_CheckType, MVT::i32, ++/*171034*/ OPC_MoveParent, ++/*171035*/ OPC_MoveChild, 13, ++/*171037*/ OPC_CheckInteger, 1, ++/*171039*/ OPC_CheckType, MVT::i32, ++/*171041*/ OPC_MoveParent, ++/*171042*/ OPC_MoveChild, 14, ++/*171044*/ OPC_CheckInteger, 1, ++/*171046*/ OPC_CheckType, MVT::i32, ++/*171048*/ OPC_MoveParent, ++/*171049*/ OPC_MoveChild, 15, ++/*171051*/ OPC_CheckInteger, 1, ++/*171053*/ OPC_CheckType, MVT::i32, ++/*171055*/ OPC_MoveParent, ++/*171056*/ OPC_MoveChild, 16, ++/*171058*/ OPC_CheckInteger, 1, ++/*171060*/ OPC_CheckType, MVT::i32, ++/*171062*/ OPC_MoveParent, ++/*171063*/ OPC_MoveChild, 17, ++/*171065*/ OPC_CheckInteger, 1, ++/*171067*/ OPC_CheckType, MVT::i32, ++/*171069*/ OPC_MoveParent, ++/*171070*/ OPC_MoveChild, 18, ++/*171072*/ OPC_CheckInteger, 1, ++/*171074*/ OPC_CheckType, MVT::i32, ++/*171076*/ OPC_MoveParent, ++/*171077*/ OPC_MoveChild, 19, ++/*171079*/ OPC_CheckInteger, 1, ++/*171081*/ OPC_CheckType, MVT::i32, ++/*171083*/ OPC_MoveParent, ++/*171084*/ OPC_MoveChild, 20, ++/*171086*/ OPC_CheckInteger, 1, ++/*171088*/ OPC_CheckType, MVT::i32, ++/*171090*/ OPC_MoveParent, ++/*171091*/ OPC_MoveChild, 21, ++/*171093*/ OPC_CheckInteger, 1, ++/*171095*/ OPC_CheckType, MVT::i32, ++/*171097*/ OPC_MoveParent, ++/*171098*/ OPC_MoveChild, 22, ++/*171100*/ OPC_CheckInteger, 1, ++/*171102*/ OPC_CheckType, MVT::i32, ++/*171104*/ OPC_MoveParent, ++/*171105*/ OPC_MoveChild, 23, ++/*171107*/ OPC_CheckInteger, 1, ++/*171109*/ OPC_CheckType, MVT::i32, ++/*171111*/ OPC_MoveParent, ++/*171112*/ OPC_MoveChild, 24, ++/*171114*/ OPC_CheckInteger, 1, ++/*171116*/ OPC_CheckType, MVT::i32, ++/*171118*/ OPC_MoveParent, ++/*171119*/ OPC_MoveChild, 25, ++/*171121*/ OPC_CheckInteger, 1, ++/*171123*/ OPC_CheckType, MVT::i32, ++/*171125*/ OPC_MoveParent, ++/*171126*/ OPC_MoveChild, 26, ++/*171128*/ OPC_CheckInteger, 1, ++/*171130*/ OPC_CheckType, MVT::i32, ++/*171132*/ OPC_MoveParent, ++/*171133*/ OPC_MoveChild, 27, ++/*171135*/ OPC_CheckInteger, 1, ++/*171137*/ OPC_CheckType, MVT::i32, ++/*171139*/ OPC_MoveParent, ++/*171140*/ OPC_MoveChild, 28, ++/*171142*/ OPC_CheckInteger, 1, ++/*171144*/ OPC_CheckType, MVT::i32, ++/*171146*/ OPC_MoveParent, ++/*171147*/ OPC_MoveChild, 29, ++/*171149*/ OPC_CheckInteger, 1, ++/*171151*/ OPC_CheckType, MVT::i32, ++/*171153*/ OPC_MoveParent, ++/*171154*/ OPC_MoveChild, 30, ++/*171156*/ OPC_CheckInteger, 1, ++/*171158*/ OPC_CheckType, MVT::i32, ++/*171160*/ OPC_MoveParent, ++/*171161*/ OPC_MoveChild, 31, ++/*171163*/ OPC_CheckInteger, 1, ++/*171165*/ OPC_CheckType, MVT::i32, ++/*171167*/ OPC_MoveParent, ++/*171168*/ OPC_MoveParent, ++/*171169*/ OPC_MoveParent, ++/*171170*/ OPC_MoveChild1, ++/*171171*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*171174*/ OPC_CheckChild0Integer, 7, ++/*171176*/ OPC_CheckChild0Type, MVT::i32, ++/*171178*/ OPC_CheckChild1Integer, 7, ++/*171180*/ OPC_CheckChild1Type, MVT::i32, ++/*171182*/ OPC_CheckChild2Integer, 7, ++/*171184*/ OPC_CheckChild2Type, MVT::i32, ++/*171186*/ OPC_CheckChild3Integer, 7, ++/*171188*/ OPC_CheckChild3Type, MVT::i32, ++/*171190*/ OPC_CheckChild4Integer, 7, ++/*171192*/ OPC_CheckChild4Type, MVT::i32, ++/*171194*/ OPC_MoveChild5, ++/*171195*/ OPC_CheckInteger, 7, ++/*171197*/ OPC_CheckType, MVT::i32, ++/*171199*/ OPC_MoveParent, ++/*171200*/ OPC_MoveChild6, ++/*171201*/ OPC_CheckInteger, 7, ++/*171203*/ OPC_CheckType, MVT::i32, ++/*171205*/ OPC_MoveParent, ++/*171206*/ OPC_MoveChild7, ++/*171207*/ OPC_CheckInteger, 7, ++/*171209*/ OPC_CheckType, MVT::i32, ++/*171211*/ OPC_MoveParent, ++/*171212*/ OPC_MoveChild, 8, ++/*171214*/ OPC_CheckInteger, 7, ++/*171216*/ OPC_CheckType, MVT::i32, ++/*171218*/ OPC_MoveParent, ++/*171219*/ OPC_MoveChild, 9, ++/*171221*/ OPC_CheckInteger, 7, ++/*171223*/ OPC_CheckType, MVT::i32, ++/*171225*/ OPC_MoveParent, ++/*171226*/ OPC_MoveChild, 10, ++/*171228*/ OPC_CheckInteger, 7, ++/*171230*/ OPC_CheckType, MVT::i32, ++/*171232*/ OPC_MoveParent, ++/*171233*/ OPC_MoveChild, 11, ++/*171235*/ OPC_CheckInteger, 7, ++/*171237*/ OPC_CheckType, MVT::i32, ++/*171239*/ OPC_MoveParent, ++/*171240*/ OPC_MoveChild, 12, ++/*171242*/ OPC_CheckInteger, 7, ++/*171244*/ OPC_CheckType, MVT::i32, ++/*171246*/ OPC_MoveParent, ++/*171247*/ OPC_MoveChild, 13, ++/*171249*/ OPC_CheckInteger, 7, ++/*171251*/ OPC_CheckType, MVT::i32, ++/*171253*/ OPC_MoveParent, ++/*171254*/ OPC_MoveChild, 14, ++/*171256*/ OPC_CheckInteger, 7, ++/*171258*/ OPC_CheckType, MVT::i32, ++/*171260*/ OPC_MoveParent, ++/*171261*/ OPC_MoveChild, 15, ++/*171263*/ OPC_CheckInteger, 7, ++/*171265*/ OPC_CheckType, MVT::i32, ++/*171267*/ OPC_MoveParent, ++/*171268*/ OPC_MoveChild, 16, ++/*171270*/ OPC_CheckInteger, 7, ++/*171272*/ OPC_CheckType, MVT::i32, ++/*171274*/ OPC_MoveParent, ++/*171275*/ OPC_MoveChild, 17, ++/*171277*/ OPC_CheckInteger, 7, ++/*171279*/ OPC_CheckType, MVT::i32, ++/*171281*/ OPC_MoveParent, ++/*171282*/ OPC_MoveChild, 18, ++/*171284*/ OPC_CheckInteger, 7, ++/*171286*/ OPC_CheckType, MVT::i32, ++/*171288*/ OPC_MoveParent, ++/*171289*/ OPC_MoveChild, 19, ++/*171291*/ OPC_CheckInteger, 7, ++/*171293*/ OPC_CheckType, MVT::i32, ++/*171295*/ OPC_MoveParent, ++/*171296*/ OPC_MoveChild, 20, ++/*171298*/ OPC_CheckInteger, 7, ++/*171300*/ OPC_CheckType, MVT::i32, ++/*171302*/ OPC_MoveParent, ++/*171303*/ OPC_MoveChild, 21, ++/*171305*/ OPC_CheckInteger, 7, ++/*171307*/ OPC_CheckType, MVT::i32, ++/*171309*/ OPC_MoveParent, ++/*171310*/ OPC_MoveChild, 22, ++/*171312*/ OPC_CheckInteger, 7, ++/*171314*/ OPC_CheckType, MVT::i32, ++/*171316*/ OPC_MoveParent, ++/*171317*/ OPC_MoveChild, 23, ++/*171319*/ OPC_CheckInteger, 7, ++/*171321*/ OPC_CheckType, MVT::i32, ++/*171323*/ OPC_MoveParent, ++/*171324*/ OPC_MoveChild, 24, ++/*171326*/ OPC_CheckInteger, 7, ++/*171328*/ OPC_CheckType, MVT::i32, ++/*171330*/ OPC_MoveParent, ++/*171331*/ OPC_MoveChild, 25, ++/*171333*/ OPC_CheckInteger, 7, ++/*171335*/ OPC_CheckType, MVT::i32, ++/*171337*/ OPC_MoveParent, ++/*171338*/ OPC_MoveChild, 26, ++/*171340*/ OPC_CheckInteger, 7, ++/*171342*/ OPC_CheckType, MVT::i32, ++/*171344*/ OPC_MoveParent, ++/*171345*/ OPC_MoveChild, 27, ++/*171347*/ OPC_CheckInteger, 7, ++/*171349*/ OPC_CheckType, MVT::i32, ++/*171351*/ OPC_MoveParent, ++/*171352*/ OPC_MoveChild, 28, ++/*171354*/ OPC_CheckInteger, 7, ++/*171356*/ OPC_CheckType, MVT::i32, ++/*171358*/ OPC_MoveParent, ++/*171359*/ OPC_MoveChild, 29, ++/*171361*/ OPC_CheckInteger, 7, ++/*171363*/ OPC_CheckType, MVT::i32, ++/*171365*/ OPC_MoveParent, ++/*171366*/ OPC_MoveChild, 30, ++/*171368*/ OPC_CheckInteger, 7, ++/*171370*/ OPC_CheckType, MVT::i32, ++/*171372*/ OPC_MoveParent, ++/*171373*/ OPC_MoveChild, 31, ++/*171375*/ OPC_CheckInteger, 7, ++/*171377*/ OPC_CheckType, MVT::i32, ++/*171379*/ OPC_MoveParent, ++/*171380*/ OPC_CheckType, MVT::v32i8, ++/*171382*/ OPC_MoveParent, ++/*171383*/ OPC_MoveParent, ++/*171384*/ OPC_MoveParent, ++/*171385*/ OPC_MoveChild1, ++/*171386*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*171389*/ OPC_CheckChild0Integer, 1, ++/*171391*/ OPC_CheckChild0Type, MVT::i32, ++/*171393*/ OPC_CheckChild1Integer, 1, ++/*171395*/ OPC_CheckChild1Type, MVT::i32, ++/*171397*/ OPC_CheckChild2Integer, 1, ++/*171399*/ OPC_CheckChild2Type, MVT::i32, ++/*171401*/ OPC_CheckChild3Integer, 1, ++/*171403*/ OPC_CheckChild3Type, MVT::i32, ++/*171405*/ OPC_CheckChild4Integer, 1, ++/*171407*/ OPC_CheckChild4Type, MVT::i32, ++/*171409*/ OPC_MoveChild5, ++/*171410*/ OPC_CheckInteger, 1, ++/*171412*/ OPC_CheckType, MVT::i32, ++/*171414*/ OPC_MoveParent, ++/*171415*/ OPC_MoveChild6, ++/*171416*/ OPC_CheckInteger, 1, ++/*171418*/ OPC_CheckType, MVT::i32, ++/*171420*/ OPC_MoveParent, ++/*171421*/ OPC_MoveChild7, ++/*171422*/ OPC_CheckInteger, 1, ++/*171424*/ OPC_CheckType, MVT::i32, ++/*171426*/ OPC_MoveParent, ++/*171427*/ OPC_MoveChild, 8, ++/*171429*/ OPC_CheckInteger, 1, ++/*171431*/ OPC_CheckType, MVT::i32, ++/*171433*/ OPC_MoveParent, ++/*171434*/ OPC_MoveChild, 9, ++/*171436*/ OPC_CheckInteger, 1, ++/*171438*/ OPC_CheckType, MVT::i32, ++/*171440*/ OPC_MoveParent, ++/*171441*/ OPC_MoveChild, 10, ++/*171443*/ OPC_CheckInteger, 1, ++/*171445*/ OPC_CheckType, MVT::i32, ++/*171447*/ OPC_MoveParent, ++/*171448*/ OPC_MoveChild, 11, ++/*171450*/ OPC_CheckInteger, 1, ++/*171452*/ OPC_CheckType, MVT::i32, ++/*171454*/ OPC_MoveParent, ++/*171455*/ OPC_MoveChild, 12, ++/*171457*/ OPC_CheckInteger, 1, ++/*171459*/ OPC_CheckType, MVT::i32, ++/*171461*/ OPC_MoveParent, ++/*171462*/ OPC_MoveChild, 13, ++/*171464*/ OPC_CheckInteger, 1, ++/*171466*/ OPC_CheckType, MVT::i32, ++/*171468*/ OPC_MoveParent, ++/*171469*/ OPC_MoveChild, 14, ++/*171471*/ OPC_CheckInteger, 1, ++/*171473*/ OPC_CheckType, MVT::i32, ++/*171475*/ OPC_MoveParent, ++/*171476*/ OPC_MoveChild, 15, ++/*171478*/ OPC_CheckInteger, 1, ++/*171480*/ OPC_CheckType, MVT::i32, ++/*171482*/ OPC_MoveParent, ++/*171483*/ OPC_MoveChild, 16, ++/*171485*/ OPC_CheckInteger, 1, ++/*171487*/ OPC_CheckType, MVT::i32, ++/*171489*/ OPC_MoveParent, ++/*171490*/ OPC_MoveChild, 17, ++/*171492*/ OPC_CheckInteger, 1, ++/*171494*/ OPC_CheckType, MVT::i32, ++/*171496*/ OPC_MoveParent, ++/*171497*/ OPC_MoveChild, 18, ++/*171499*/ OPC_CheckInteger, 1, ++/*171501*/ OPC_CheckType, MVT::i32, ++/*171503*/ OPC_MoveParent, ++/*171504*/ OPC_MoveChild, 19, ++/*171506*/ OPC_CheckInteger, 1, ++/*171508*/ OPC_CheckType, MVT::i32, ++/*171510*/ OPC_MoveParent, ++/*171511*/ OPC_MoveChild, 20, ++/*171513*/ OPC_CheckInteger, 1, ++/*171515*/ OPC_CheckType, MVT::i32, ++/*171517*/ OPC_MoveParent, ++/*171518*/ OPC_MoveChild, 21, ++/*171520*/ OPC_CheckInteger, 1, ++/*171522*/ OPC_CheckType, MVT::i32, ++/*171524*/ OPC_MoveParent, ++/*171525*/ OPC_MoveChild, 22, ++/*171527*/ OPC_CheckInteger, 1, ++/*171529*/ OPC_CheckType, MVT::i32, ++/*171531*/ OPC_MoveParent, ++/*171532*/ OPC_MoveChild, 23, ++/*171534*/ OPC_CheckInteger, 1, ++/*171536*/ OPC_CheckType, MVT::i32, ++/*171538*/ OPC_MoveParent, ++/*171539*/ OPC_MoveChild, 24, ++/*171541*/ OPC_CheckInteger, 1, ++/*171543*/ OPC_CheckType, MVT::i32, ++/*171545*/ OPC_MoveParent, ++/*171546*/ OPC_MoveChild, 25, ++/*171548*/ OPC_CheckInteger, 1, ++/*171550*/ OPC_CheckType, MVT::i32, ++/*171552*/ OPC_MoveParent, ++/*171553*/ OPC_MoveChild, 26, ++/*171555*/ OPC_CheckInteger, 1, ++/*171557*/ OPC_CheckType, MVT::i32, ++/*171559*/ OPC_MoveParent, ++/*171560*/ OPC_MoveChild, 27, ++/*171562*/ OPC_CheckInteger, 1, ++/*171564*/ OPC_CheckType, MVT::i32, ++/*171566*/ OPC_MoveParent, ++/*171567*/ OPC_MoveChild, 28, ++/*171569*/ OPC_CheckInteger, 1, ++/*171571*/ OPC_CheckType, MVT::i32, ++/*171573*/ OPC_MoveParent, ++/*171574*/ OPC_MoveChild, 29, ++/*171576*/ OPC_CheckInteger, 1, ++/*171578*/ OPC_CheckType, MVT::i32, ++/*171580*/ OPC_MoveParent, ++/*171581*/ OPC_MoveChild, 30, ++/*171583*/ OPC_CheckInteger, 1, ++/*171585*/ OPC_CheckType, MVT::i32, ++/*171587*/ OPC_MoveParent, ++/*171588*/ OPC_MoveChild, 31, ++/*171590*/ OPC_CheckInteger, 1, ++/*171592*/ OPC_CheckType, MVT::i32, ++/*171594*/ OPC_MoveParent, ++/*171595*/ OPC_CheckType, MVT::v32i8, ++/*171597*/ OPC_MoveParent, ++/*171598*/ OPC_CheckType, MVT::v32i8, ++/*171600*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*171602*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a)), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*171610*/ 0, /*End of Scope*/ ++/*171611*/ 0, // EndSwitchOpcode ++/*171612*/ /*Scope*/ 42|128,10/*1322*/, /*->172936*/ ++/*171614*/ OPC_CheckChild0Same, 0, ++/*171616*/ OPC_MoveChild1, ++/*171617*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*171620*/ OPC_Scope, 15|128,5/*655*/, /*->172278*/ // 2 children in Scope ++/*171623*/ OPC_MoveChild0, ++/*171624*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*171627*/ OPC_CheckChild0Integer, 1, ++/*171629*/ OPC_CheckChild0Type, MVT::i32, ++/*171631*/ OPC_CheckChild1Integer, 1, ++/*171633*/ OPC_CheckChild1Type, MVT::i32, ++/*171635*/ OPC_CheckChild2Integer, 1, ++/*171637*/ OPC_CheckChild2Type, MVT::i32, ++/*171639*/ OPC_CheckChild3Integer, 1, ++/*171641*/ OPC_CheckChild3Type, MVT::i32, ++/*171643*/ OPC_CheckChild4Integer, 1, ++/*171645*/ OPC_CheckChild4Type, MVT::i32, ++/*171647*/ OPC_MoveChild5, ++/*171648*/ OPC_CheckInteger, 1, ++/*171650*/ OPC_CheckType, MVT::i32, ++/*171652*/ OPC_MoveParent, ++/*171653*/ OPC_MoveChild6, ++/*171654*/ OPC_CheckInteger, 1, ++/*171656*/ OPC_CheckType, MVT::i32, ++/*171658*/ OPC_MoveParent, ++/*171659*/ OPC_MoveChild7, ++/*171660*/ OPC_CheckInteger, 1, ++/*171662*/ OPC_CheckType, MVT::i32, ++/*171664*/ OPC_MoveParent, ++/*171665*/ OPC_MoveChild, 8, ++/*171667*/ OPC_CheckInteger, 1, ++/*171669*/ OPC_CheckType, MVT::i32, ++/*171671*/ OPC_MoveParent, ++/*171672*/ OPC_MoveChild, 9, ++/*171674*/ OPC_CheckInteger, 1, ++/*171676*/ OPC_CheckType, MVT::i32, ++/*171678*/ OPC_MoveParent, ++/*171679*/ OPC_MoveChild, 10, ++/*171681*/ OPC_CheckInteger, 1, ++/*171683*/ OPC_CheckType, MVT::i32, ++/*171685*/ OPC_MoveParent, ++/*171686*/ OPC_MoveChild, 11, ++/*171688*/ OPC_CheckInteger, 1, ++/*171690*/ OPC_CheckType, MVT::i32, ++/*171692*/ OPC_MoveParent, ++/*171693*/ OPC_MoveChild, 12, ++/*171695*/ OPC_CheckInteger, 1, ++/*171697*/ OPC_CheckType, MVT::i32, ++/*171699*/ OPC_MoveParent, ++/*171700*/ OPC_MoveChild, 13, ++/*171702*/ OPC_CheckInteger, 1, ++/*171704*/ OPC_CheckType, MVT::i32, ++/*171706*/ OPC_MoveParent, ++/*171707*/ OPC_MoveChild, 14, ++/*171709*/ OPC_CheckInteger, 1, ++/*171711*/ OPC_CheckType, MVT::i32, ++/*171713*/ OPC_MoveParent, ++/*171714*/ OPC_MoveChild, 15, ++/*171716*/ OPC_CheckInteger, 1, ++/*171718*/ OPC_CheckType, MVT::i32, ++/*171720*/ OPC_MoveParent, ++/*171721*/ OPC_MoveChild, 16, ++/*171723*/ OPC_CheckInteger, 1, ++/*171725*/ OPC_CheckType, MVT::i32, ++/*171727*/ OPC_MoveParent, ++/*171728*/ OPC_MoveChild, 17, ++/*171730*/ OPC_CheckInteger, 1, ++/*171732*/ OPC_CheckType, MVT::i32, ++/*171734*/ OPC_MoveParent, ++/*171735*/ OPC_MoveChild, 18, ++/*171737*/ OPC_CheckInteger, 1, ++/*171739*/ OPC_CheckType, MVT::i32, ++/*171741*/ OPC_MoveParent, ++/*171742*/ OPC_MoveChild, 19, ++/*171744*/ OPC_CheckInteger, 1, ++/*171746*/ OPC_CheckType, MVT::i32, ++/*171748*/ OPC_MoveParent, ++/*171749*/ OPC_MoveChild, 20, ++/*171751*/ OPC_CheckInteger, 1, ++/*171753*/ OPC_CheckType, MVT::i32, ++/*171755*/ OPC_MoveParent, ++/*171756*/ OPC_MoveChild, 21, ++/*171758*/ OPC_CheckInteger, 1, ++/*171760*/ OPC_CheckType, MVT::i32, ++/*171762*/ OPC_MoveParent, ++/*171763*/ OPC_MoveChild, 22, ++/*171765*/ OPC_CheckInteger, 1, ++/*171767*/ OPC_CheckType, MVT::i32, ++/*171769*/ OPC_MoveParent, ++/*171770*/ OPC_MoveChild, 23, ++/*171772*/ OPC_CheckInteger, 1, ++/*171774*/ OPC_CheckType, MVT::i32, ++/*171776*/ OPC_MoveParent, ++/*171777*/ OPC_MoveChild, 24, ++/*171779*/ OPC_CheckInteger, 1, ++/*171781*/ OPC_CheckType, MVT::i32, ++/*171783*/ OPC_MoveParent, ++/*171784*/ OPC_MoveChild, 25, ++/*171786*/ OPC_CheckInteger, 1, ++/*171788*/ OPC_CheckType, MVT::i32, ++/*171790*/ OPC_MoveParent, ++/*171791*/ OPC_MoveChild, 26, ++/*171793*/ OPC_CheckInteger, 1, ++/*171795*/ OPC_CheckType, MVT::i32, ++/*171797*/ OPC_MoveParent, ++/*171798*/ OPC_MoveChild, 27, ++/*171800*/ OPC_CheckInteger, 1, ++/*171802*/ OPC_CheckType, MVT::i32, ++/*171804*/ OPC_MoveParent, ++/*171805*/ OPC_MoveChild, 28, ++/*171807*/ OPC_CheckInteger, 1, ++/*171809*/ OPC_CheckType, MVT::i32, ++/*171811*/ OPC_MoveParent, ++/*171812*/ OPC_MoveChild, 29, ++/*171814*/ OPC_CheckInteger, 1, ++/*171816*/ OPC_CheckType, MVT::i32, ++/*171818*/ OPC_MoveParent, ++/*171819*/ OPC_MoveChild, 30, ++/*171821*/ OPC_CheckInteger, 1, ++/*171823*/ OPC_CheckType, MVT::i32, ++/*171825*/ OPC_MoveParent, ++/*171826*/ OPC_MoveChild, 31, ++/*171828*/ OPC_CheckInteger, 1, ++/*171830*/ OPC_CheckType, MVT::i32, ++/*171832*/ OPC_MoveParent, ++/*171833*/ OPC_MoveParent, ++/*171834*/ OPC_CheckChild1Same, 1, ++/*171836*/ OPC_MoveParent, ++/*171837*/ OPC_MoveParent, ++/*171838*/ OPC_MoveChild1, ++/*171839*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*171842*/ OPC_CheckChild0Integer, 7, ++/*171844*/ OPC_CheckChild0Type, MVT::i32, ++/*171846*/ OPC_CheckChild1Integer, 7, ++/*171848*/ OPC_CheckChild1Type, MVT::i32, ++/*171850*/ OPC_CheckChild2Integer, 7, ++/*171852*/ OPC_CheckChild2Type, MVT::i32, ++/*171854*/ OPC_CheckChild3Integer, 7, ++/*171856*/ OPC_CheckChild3Type, MVT::i32, ++/*171858*/ OPC_CheckChild4Integer, 7, ++/*171860*/ OPC_CheckChild4Type, MVT::i32, ++/*171862*/ OPC_MoveChild5, ++/*171863*/ OPC_CheckInteger, 7, ++/*171865*/ OPC_CheckType, MVT::i32, ++/*171867*/ OPC_MoveParent, ++/*171868*/ OPC_MoveChild6, ++/*171869*/ OPC_CheckInteger, 7, ++/*171871*/ OPC_CheckType, MVT::i32, ++/*171873*/ OPC_MoveParent, ++/*171874*/ OPC_MoveChild7, ++/*171875*/ OPC_CheckInteger, 7, ++/*171877*/ OPC_CheckType, MVT::i32, ++/*171879*/ OPC_MoveParent, ++/*171880*/ OPC_MoveChild, 8, ++/*171882*/ OPC_CheckInteger, 7, ++/*171884*/ OPC_CheckType, MVT::i32, ++/*171886*/ OPC_MoveParent, ++/*171887*/ OPC_MoveChild, 9, ++/*171889*/ OPC_CheckInteger, 7, ++/*171891*/ OPC_CheckType, MVT::i32, ++/*171893*/ OPC_MoveParent, ++/*171894*/ OPC_MoveChild, 10, ++/*171896*/ OPC_CheckInteger, 7, ++/*171898*/ OPC_CheckType, MVT::i32, ++/*171900*/ OPC_MoveParent, ++/*171901*/ OPC_MoveChild, 11, ++/*171903*/ OPC_CheckInteger, 7, ++/*171905*/ OPC_CheckType, MVT::i32, ++/*171907*/ OPC_MoveParent, ++/*171908*/ OPC_MoveChild, 12, ++/*171910*/ OPC_CheckInteger, 7, ++/*171912*/ OPC_CheckType, MVT::i32, ++/*171914*/ OPC_MoveParent, ++/*171915*/ OPC_MoveChild, 13, ++/*171917*/ OPC_CheckInteger, 7, ++/*171919*/ OPC_CheckType, MVT::i32, ++/*171921*/ OPC_MoveParent, ++/*171922*/ OPC_MoveChild, 14, ++/*171924*/ OPC_CheckInteger, 7, ++/*171926*/ OPC_CheckType, MVT::i32, ++/*171928*/ OPC_MoveParent, ++/*171929*/ OPC_MoveChild, 15, ++/*171931*/ OPC_CheckInteger, 7, ++/*171933*/ OPC_CheckType, MVT::i32, ++/*171935*/ OPC_MoveParent, ++/*171936*/ OPC_MoveChild, 16, ++/*171938*/ OPC_CheckInteger, 7, ++/*171940*/ OPC_CheckType, MVT::i32, ++/*171942*/ OPC_MoveParent, ++/*171943*/ OPC_MoveChild, 17, ++/*171945*/ OPC_CheckInteger, 7, ++/*171947*/ OPC_CheckType, MVT::i32, ++/*171949*/ OPC_MoveParent, ++/*171950*/ OPC_MoveChild, 18, ++/*171952*/ OPC_CheckInteger, 7, ++/*171954*/ OPC_CheckType, MVT::i32, ++/*171956*/ OPC_MoveParent, ++/*171957*/ OPC_MoveChild, 19, ++/*171959*/ OPC_CheckInteger, 7, ++/*171961*/ OPC_CheckType, MVT::i32, ++/*171963*/ OPC_MoveParent, ++/*171964*/ OPC_MoveChild, 20, ++/*171966*/ OPC_CheckInteger, 7, ++/*171968*/ OPC_CheckType, MVT::i32, ++/*171970*/ OPC_MoveParent, ++/*171971*/ OPC_MoveChild, 21, ++/*171973*/ OPC_CheckInteger, 7, ++/*171975*/ OPC_CheckType, MVT::i32, ++/*171977*/ OPC_MoveParent, ++/*171978*/ OPC_MoveChild, 22, ++/*171980*/ OPC_CheckInteger, 7, ++/*171982*/ OPC_CheckType, MVT::i32, ++/*171984*/ OPC_MoveParent, ++/*171985*/ OPC_MoveChild, 23, ++/*171987*/ OPC_CheckInteger, 7, ++/*171989*/ OPC_CheckType, MVT::i32, ++/*171991*/ OPC_MoveParent, ++/*171992*/ OPC_MoveChild, 24, ++/*171994*/ OPC_CheckInteger, 7, ++/*171996*/ OPC_CheckType, MVT::i32, ++/*171998*/ OPC_MoveParent, ++/*171999*/ OPC_MoveChild, 25, ++/*172001*/ OPC_CheckInteger, 7, ++/*172003*/ OPC_CheckType, MVT::i32, ++/*172005*/ OPC_MoveParent, ++/*172006*/ OPC_MoveChild, 26, ++/*172008*/ OPC_CheckInteger, 7, ++/*172010*/ OPC_CheckType, MVT::i32, ++/*172012*/ OPC_MoveParent, ++/*172013*/ OPC_MoveChild, 27, ++/*172015*/ OPC_CheckInteger, 7, ++/*172017*/ OPC_CheckType, MVT::i32, ++/*172019*/ OPC_MoveParent, ++/*172020*/ OPC_MoveChild, 28, ++/*172022*/ OPC_CheckInteger, 7, ++/*172024*/ OPC_CheckType, MVT::i32, ++/*172026*/ OPC_MoveParent, ++/*172027*/ OPC_MoveChild, 29, ++/*172029*/ OPC_CheckInteger, 7, ++/*172031*/ OPC_CheckType, MVT::i32, ++/*172033*/ OPC_MoveParent, ++/*172034*/ OPC_MoveChild, 30, ++/*172036*/ OPC_CheckInteger, 7, ++/*172038*/ OPC_CheckType, MVT::i32, ++/*172040*/ OPC_MoveParent, ++/*172041*/ OPC_MoveChild, 31, ++/*172043*/ OPC_CheckInteger, 7, ++/*172045*/ OPC_CheckType, MVT::i32, ++/*172047*/ OPC_MoveParent, ++/*172048*/ OPC_CheckType, MVT::v32i8, ++/*172050*/ OPC_MoveParent, ++/*172051*/ OPC_MoveParent, ++/*172052*/ OPC_MoveParent, ++/*172053*/ OPC_MoveChild1, ++/*172054*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*172057*/ OPC_CheckChild0Integer, 1, ++/*172059*/ OPC_CheckChild0Type, MVT::i32, ++/*172061*/ OPC_CheckChild1Integer, 1, ++/*172063*/ OPC_CheckChild1Type, MVT::i32, ++/*172065*/ OPC_CheckChild2Integer, 1, ++/*172067*/ OPC_CheckChild2Type, MVT::i32, ++/*172069*/ OPC_CheckChild3Integer, 1, ++/*172071*/ OPC_CheckChild3Type, MVT::i32, ++/*172073*/ OPC_CheckChild4Integer, 1, ++/*172075*/ OPC_CheckChild4Type, MVT::i32, ++/*172077*/ OPC_MoveChild5, ++/*172078*/ OPC_CheckInteger, 1, ++/*172080*/ OPC_CheckType, MVT::i32, ++/*172082*/ OPC_MoveParent, ++/*172083*/ OPC_MoveChild6, ++/*172084*/ OPC_CheckInteger, 1, ++/*172086*/ OPC_CheckType, MVT::i32, ++/*172088*/ OPC_MoveParent, ++/*172089*/ OPC_MoveChild7, ++/*172090*/ OPC_CheckInteger, 1, ++/*172092*/ OPC_CheckType, MVT::i32, ++/*172094*/ OPC_MoveParent, ++/*172095*/ OPC_MoveChild, 8, ++/*172097*/ OPC_CheckInteger, 1, ++/*172099*/ OPC_CheckType, MVT::i32, ++/*172101*/ OPC_MoveParent, ++/*172102*/ OPC_MoveChild, 9, ++/*172104*/ OPC_CheckInteger, 1, ++/*172106*/ OPC_CheckType, MVT::i32, ++/*172108*/ OPC_MoveParent, ++/*172109*/ OPC_MoveChild, 10, ++/*172111*/ OPC_CheckInteger, 1, ++/*172113*/ OPC_CheckType, MVT::i32, ++/*172115*/ OPC_MoveParent, ++/*172116*/ OPC_MoveChild, 11, ++/*172118*/ OPC_CheckInteger, 1, ++/*172120*/ OPC_CheckType, MVT::i32, ++/*172122*/ OPC_MoveParent, ++/*172123*/ OPC_MoveChild, 12, ++/*172125*/ OPC_CheckInteger, 1, ++/*172127*/ OPC_CheckType, MVT::i32, ++/*172129*/ OPC_MoveParent, ++/*172130*/ OPC_MoveChild, 13, ++/*172132*/ OPC_CheckInteger, 1, ++/*172134*/ OPC_CheckType, MVT::i32, ++/*172136*/ OPC_MoveParent, ++/*172137*/ OPC_MoveChild, 14, ++/*172139*/ OPC_CheckInteger, 1, ++/*172141*/ OPC_CheckType, MVT::i32, ++/*172143*/ OPC_MoveParent, ++/*172144*/ OPC_MoveChild, 15, ++/*172146*/ OPC_CheckInteger, 1, ++/*172148*/ OPC_CheckType, MVT::i32, ++/*172150*/ OPC_MoveParent, ++/*172151*/ OPC_MoveChild, 16, ++/*172153*/ OPC_CheckInteger, 1, ++/*172155*/ OPC_CheckType, MVT::i32, ++/*172157*/ OPC_MoveParent, ++/*172158*/ OPC_MoveChild, 17, ++/*172160*/ OPC_CheckInteger, 1, ++/*172162*/ OPC_CheckType, MVT::i32, ++/*172164*/ OPC_MoveParent, ++/*172165*/ OPC_MoveChild, 18, ++/*172167*/ OPC_CheckInteger, 1, ++/*172169*/ OPC_CheckType, MVT::i32, ++/*172171*/ OPC_MoveParent, ++/*172172*/ OPC_MoveChild, 19, ++/*172174*/ OPC_CheckInteger, 1, ++/*172176*/ OPC_CheckType, MVT::i32, ++/*172178*/ OPC_MoveParent, ++/*172179*/ OPC_MoveChild, 20, ++/*172181*/ OPC_CheckInteger, 1, ++/*172183*/ OPC_CheckType, MVT::i32, ++/*172185*/ OPC_MoveParent, ++/*172186*/ OPC_MoveChild, 21, ++/*172188*/ OPC_CheckInteger, 1, ++/*172190*/ OPC_CheckType, MVT::i32, ++/*172192*/ OPC_MoveParent, ++/*172193*/ OPC_MoveChild, 22, ++/*172195*/ OPC_CheckInteger, 1, ++/*172197*/ OPC_CheckType, MVT::i32, ++/*172199*/ OPC_MoveParent, ++/*172200*/ OPC_MoveChild, 23, ++/*172202*/ OPC_CheckInteger, 1, ++/*172204*/ OPC_CheckType, MVT::i32, ++/*172206*/ OPC_MoveParent, ++/*172207*/ OPC_MoveChild, 24, ++/*172209*/ OPC_CheckInteger, 1, ++/*172211*/ OPC_CheckType, MVT::i32, ++/*172213*/ OPC_MoveParent, ++/*172214*/ OPC_MoveChild, 25, ++/*172216*/ OPC_CheckInteger, 1, ++/*172218*/ OPC_CheckType, MVT::i32, ++/*172220*/ OPC_MoveParent, ++/*172221*/ OPC_MoveChild, 26, ++/*172223*/ OPC_CheckInteger, 1, ++/*172225*/ OPC_CheckType, MVT::i32, ++/*172227*/ OPC_MoveParent, ++/*172228*/ OPC_MoveChild, 27, ++/*172230*/ OPC_CheckInteger, 1, ++/*172232*/ OPC_CheckType, MVT::i32, ++/*172234*/ OPC_MoveParent, ++/*172235*/ OPC_MoveChild, 28, ++/*172237*/ OPC_CheckInteger, 1, ++/*172239*/ OPC_CheckType, MVT::i32, ++/*172241*/ OPC_MoveParent, ++/*172242*/ OPC_MoveChild, 29, ++/*172244*/ OPC_CheckInteger, 1, ++/*172246*/ OPC_CheckType, MVT::i32, ++/*172248*/ OPC_MoveParent, ++/*172249*/ OPC_MoveChild, 30, ++/*172251*/ OPC_CheckInteger, 1, ++/*172253*/ OPC_CheckType, MVT::i32, ++/*172255*/ OPC_MoveParent, ++/*172256*/ OPC_MoveChild, 31, ++/*172258*/ OPC_CheckInteger, 1, ++/*172260*/ OPC_CheckType, MVT::i32, ++/*172262*/ OPC_MoveParent, ++/*172263*/ OPC_CheckType, MVT::v32i8, ++/*172265*/ OPC_MoveParent, ++/*172266*/ OPC_CheckType, MVT::v32i8, ++/*172268*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*172270*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a)), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*172278*/ /*Scope*/ 15|128,5/*655*/, /*->172935*/ ++/*172280*/ OPC_CheckChild0Same, 1, ++/*172282*/ OPC_MoveChild1, ++/*172283*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*172286*/ OPC_CheckChild0Integer, 1, ++/*172288*/ OPC_CheckChild0Type, MVT::i32, ++/*172290*/ OPC_CheckChild1Integer, 1, ++/*172292*/ OPC_CheckChild1Type, MVT::i32, ++/*172294*/ OPC_CheckChild2Integer, 1, ++/*172296*/ OPC_CheckChild2Type, MVT::i32, ++/*172298*/ OPC_CheckChild3Integer, 1, ++/*172300*/ OPC_CheckChild3Type, MVT::i32, ++/*172302*/ OPC_CheckChild4Integer, 1, ++/*172304*/ OPC_CheckChild4Type, MVT::i32, ++/*172306*/ OPC_MoveChild5, ++/*172307*/ OPC_CheckInteger, 1, ++/*172309*/ OPC_CheckType, MVT::i32, ++/*172311*/ OPC_MoveParent, ++/*172312*/ OPC_MoveChild6, ++/*172313*/ OPC_CheckInteger, 1, ++/*172315*/ OPC_CheckType, MVT::i32, ++/*172317*/ OPC_MoveParent, ++/*172318*/ OPC_MoveChild7, ++/*172319*/ OPC_CheckInteger, 1, ++/*172321*/ OPC_CheckType, MVT::i32, ++/*172323*/ OPC_MoveParent, ++/*172324*/ OPC_MoveChild, 8, ++/*172326*/ OPC_CheckInteger, 1, ++/*172328*/ OPC_CheckType, MVT::i32, ++/*172330*/ OPC_MoveParent, ++/*172331*/ OPC_MoveChild, 9, ++/*172333*/ OPC_CheckInteger, 1, ++/*172335*/ OPC_CheckType, MVT::i32, ++/*172337*/ OPC_MoveParent, ++/*172338*/ OPC_MoveChild, 10, ++/*172340*/ OPC_CheckInteger, 1, ++/*172342*/ OPC_CheckType, MVT::i32, ++/*172344*/ OPC_MoveParent, ++/*172345*/ OPC_MoveChild, 11, ++/*172347*/ OPC_CheckInteger, 1, ++/*172349*/ OPC_CheckType, MVT::i32, ++/*172351*/ OPC_MoveParent, ++/*172352*/ OPC_MoveChild, 12, ++/*172354*/ OPC_CheckInteger, 1, ++/*172356*/ OPC_CheckType, MVT::i32, ++/*172358*/ OPC_MoveParent, ++/*172359*/ OPC_MoveChild, 13, ++/*172361*/ OPC_CheckInteger, 1, ++/*172363*/ OPC_CheckType, MVT::i32, ++/*172365*/ OPC_MoveParent, ++/*172366*/ OPC_MoveChild, 14, ++/*172368*/ OPC_CheckInteger, 1, ++/*172370*/ OPC_CheckType, MVT::i32, ++/*172372*/ OPC_MoveParent, ++/*172373*/ OPC_MoveChild, 15, ++/*172375*/ OPC_CheckInteger, 1, ++/*172377*/ OPC_CheckType, MVT::i32, ++/*172379*/ OPC_MoveParent, ++/*172380*/ OPC_MoveChild, 16, ++/*172382*/ OPC_CheckInteger, 1, ++/*172384*/ OPC_CheckType, MVT::i32, ++/*172386*/ OPC_MoveParent, ++/*172387*/ OPC_MoveChild, 17, ++/*172389*/ OPC_CheckInteger, 1, ++/*172391*/ OPC_CheckType, MVT::i32, ++/*172393*/ OPC_MoveParent, ++/*172394*/ OPC_MoveChild, 18, ++/*172396*/ OPC_CheckInteger, 1, ++/*172398*/ OPC_CheckType, MVT::i32, ++/*172400*/ OPC_MoveParent, ++/*172401*/ OPC_MoveChild, 19, ++/*172403*/ OPC_CheckInteger, 1, ++/*172405*/ OPC_CheckType, MVT::i32, ++/*172407*/ OPC_MoveParent, ++/*172408*/ OPC_MoveChild, 20, ++/*172410*/ OPC_CheckInteger, 1, ++/*172412*/ OPC_CheckType, MVT::i32, ++/*172414*/ OPC_MoveParent, ++/*172415*/ OPC_MoveChild, 21, ++/*172417*/ OPC_CheckInteger, 1, ++/*172419*/ OPC_CheckType, MVT::i32, ++/*172421*/ OPC_MoveParent, ++/*172422*/ OPC_MoveChild, 22, ++/*172424*/ OPC_CheckInteger, 1, ++/*172426*/ OPC_CheckType, MVT::i32, ++/*172428*/ OPC_MoveParent, ++/*172429*/ OPC_MoveChild, 23, ++/*172431*/ OPC_CheckInteger, 1, ++/*172433*/ OPC_CheckType, MVT::i32, ++/*172435*/ OPC_MoveParent, ++/*172436*/ OPC_MoveChild, 24, ++/*172438*/ OPC_CheckInteger, 1, ++/*172440*/ OPC_CheckType, MVT::i32, ++/*172442*/ OPC_MoveParent, ++/*172443*/ OPC_MoveChild, 25, ++/*172445*/ OPC_CheckInteger, 1, ++/*172447*/ OPC_CheckType, MVT::i32, ++/*172449*/ OPC_MoveParent, ++/*172450*/ OPC_MoveChild, 26, ++/*172452*/ OPC_CheckInteger, 1, ++/*172454*/ OPC_CheckType, MVT::i32, ++/*172456*/ OPC_MoveParent, ++/*172457*/ OPC_MoveChild, 27, ++/*172459*/ OPC_CheckInteger, 1, ++/*172461*/ OPC_CheckType, MVT::i32, ++/*172463*/ OPC_MoveParent, ++/*172464*/ OPC_MoveChild, 28, ++/*172466*/ OPC_CheckInteger, 1, ++/*172468*/ OPC_CheckType, MVT::i32, ++/*172470*/ OPC_MoveParent, ++/*172471*/ OPC_MoveChild, 29, ++/*172473*/ OPC_CheckInteger, 1, ++/*172475*/ OPC_CheckType, MVT::i32, ++/*172477*/ OPC_MoveParent, ++/*172478*/ OPC_MoveChild, 30, ++/*172480*/ OPC_CheckInteger, 1, ++/*172482*/ OPC_CheckType, MVT::i32, ++/*172484*/ OPC_MoveParent, ++/*172485*/ OPC_MoveChild, 31, ++/*172487*/ OPC_CheckInteger, 1, ++/*172489*/ OPC_CheckType, MVT::i32, ++/*172491*/ OPC_MoveParent, ++/*172492*/ OPC_MoveParent, ++/*172493*/ OPC_MoveParent, ++/*172494*/ OPC_MoveParent, ++/*172495*/ OPC_MoveChild1, ++/*172496*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*172499*/ OPC_CheckChild0Integer, 7, ++/*172501*/ OPC_CheckChild0Type, MVT::i32, ++/*172503*/ OPC_CheckChild1Integer, 7, ++/*172505*/ OPC_CheckChild1Type, MVT::i32, ++/*172507*/ OPC_CheckChild2Integer, 7, ++/*172509*/ OPC_CheckChild2Type, MVT::i32, ++/*172511*/ OPC_CheckChild3Integer, 7, ++/*172513*/ OPC_CheckChild3Type, MVT::i32, ++/*172515*/ OPC_CheckChild4Integer, 7, ++/*172517*/ OPC_CheckChild4Type, MVT::i32, ++/*172519*/ OPC_MoveChild5, ++/*172520*/ OPC_CheckInteger, 7, ++/*172522*/ OPC_CheckType, MVT::i32, ++/*172524*/ OPC_MoveParent, ++/*172525*/ OPC_MoveChild6, ++/*172526*/ OPC_CheckInteger, 7, ++/*172528*/ OPC_CheckType, MVT::i32, ++/*172530*/ OPC_MoveParent, ++/*172531*/ OPC_MoveChild7, ++/*172532*/ OPC_CheckInteger, 7, ++/*172534*/ OPC_CheckType, MVT::i32, ++/*172536*/ OPC_MoveParent, ++/*172537*/ OPC_MoveChild, 8, ++/*172539*/ OPC_CheckInteger, 7, ++/*172541*/ OPC_CheckType, MVT::i32, ++/*172543*/ OPC_MoveParent, ++/*172544*/ OPC_MoveChild, 9, ++/*172546*/ OPC_CheckInteger, 7, ++/*172548*/ OPC_CheckType, MVT::i32, ++/*172550*/ OPC_MoveParent, ++/*172551*/ OPC_MoveChild, 10, ++/*172553*/ OPC_CheckInteger, 7, ++/*172555*/ OPC_CheckType, MVT::i32, ++/*172557*/ OPC_MoveParent, ++/*172558*/ OPC_MoveChild, 11, ++/*172560*/ OPC_CheckInteger, 7, ++/*172562*/ OPC_CheckType, MVT::i32, ++/*172564*/ OPC_MoveParent, ++/*172565*/ OPC_MoveChild, 12, ++/*172567*/ OPC_CheckInteger, 7, ++/*172569*/ OPC_CheckType, MVT::i32, ++/*172571*/ OPC_MoveParent, ++/*172572*/ OPC_MoveChild, 13, ++/*172574*/ OPC_CheckInteger, 7, ++/*172576*/ OPC_CheckType, MVT::i32, ++/*172578*/ OPC_MoveParent, ++/*172579*/ OPC_MoveChild, 14, ++/*172581*/ OPC_CheckInteger, 7, ++/*172583*/ OPC_CheckType, MVT::i32, ++/*172585*/ OPC_MoveParent, ++/*172586*/ OPC_MoveChild, 15, ++/*172588*/ OPC_CheckInteger, 7, ++/*172590*/ OPC_CheckType, MVT::i32, ++/*172592*/ OPC_MoveParent, ++/*172593*/ OPC_MoveChild, 16, ++/*172595*/ OPC_CheckInteger, 7, ++/*172597*/ OPC_CheckType, MVT::i32, ++/*172599*/ OPC_MoveParent, ++/*172600*/ OPC_MoveChild, 17, ++/*172602*/ OPC_CheckInteger, 7, ++/*172604*/ OPC_CheckType, MVT::i32, ++/*172606*/ OPC_MoveParent, ++/*172607*/ OPC_MoveChild, 18, ++/*172609*/ OPC_CheckInteger, 7, ++/*172611*/ OPC_CheckType, MVT::i32, ++/*172613*/ OPC_MoveParent, ++/*172614*/ OPC_MoveChild, 19, ++/*172616*/ OPC_CheckInteger, 7, ++/*172618*/ OPC_CheckType, MVT::i32, ++/*172620*/ OPC_MoveParent, ++/*172621*/ OPC_MoveChild, 20, ++/*172623*/ OPC_CheckInteger, 7, ++/*172625*/ OPC_CheckType, MVT::i32, ++/*172627*/ OPC_MoveParent, ++/*172628*/ OPC_MoveChild, 21, ++/*172630*/ OPC_CheckInteger, 7, ++/*172632*/ OPC_CheckType, MVT::i32, ++/*172634*/ OPC_MoveParent, ++/*172635*/ OPC_MoveChild, 22, ++/*172637*/ OPC_CheckInteger, 7, ++/*172639*/ OPC_CheckType, MVT::i32, ++/*172641*/ OPC_MoveParent, ++/*172642*/ OPC_MoveChild, 23, ++/*172644*/ OPC_CheckInteger, 7, ++/*172646*/ OPC_CheckType, MVT::i32, ++/*172648*/ OPC_MoveParent, ++/*172649*/ OPC_MoveChild, 24, ++/*172651*/ OPC_CheckInteger, 7, ++/*172653*/ OPC_CheckType, MVT::i32, ++/*172655*/ OPC_MoveParent, ++/*172656*/ OPC_MoveChild, 25, ++/*172658*/ OPC_CheckInteger, 7, ++/*172660*/ OPC_CheckType, MVT::i32, ++/*172662*/ OPC_MoveParent, ++/*172663*/ OPC_MoveChild, 26, ++/*172665*/ OPC_CheckInteger, 7, ++/*172667*/ OPC_CheckType, MVT::i32, ++/*172669*/ OPC_MoveParent, ++/*172670*/ OPC_MoveChild, 27, ++/*172672*/ OPC_CheckInteger, 7, ++/*172674*/ OPC_CheckType, MVT::i32, ++/*172676*/ OPC_MoveParent, ++/*172677*/ OPC_MoveChild, 28, ++/*172679*/ OPC_CheckInteger, 7, ++/*172681*/ OPC_CheckType, MVT::i32, ++/*172683*/ OPC_MoveParent, ++/*172684*/ OPC_MoveChild, 29, ++/*172686*/ OPC_CheckInteger, 7, ++/*172688*/ OPC_CheckType, MVT::i32, ++/*172690*/ OPC_MoveParent, ++/*172691*/ OPC_MoveChild, 30, ++/*172693*/ OPC_CheckInteger, 7, ++/*172695*/ OPC_CheckType, MVT::i32, ++/*172697*/ OPC_MoveParent, ++/*172698*/ OPC_MoveChild, 31, ++/*172700*/ OPC_CheckInteger, 7, ++/*172702*/ OPC_CheckType, MVT::i32, ++/*172704*/ OPC_MoveParent, ++/*172705*/ OPC_CheckType, MVT::v32i8, ++/*172707*/ OPC_MoveParent, ++/*172708*/ OPC_MoveParent, ++/*172709*/ OPC_MoveParent, ++/*172710*/ OPC_MoveChild1, ++/*172711*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*172714*/ OPC_CheckChild0Integer, 1, ++/*172716*/ OPC_CheckChild0Type, MVT::i32, ++/*172718*/ OPC_CheckChild1Integer, 1, ++/*172720*/ OPC_CheckChild1Type, MVT::i32, ++/*172722*/ OPC_CheckChild2Integer, 1, ++/*172724*/ OPC_CheckChild2Type, MVT::i32, ++/*172726*/ OPC_CheckChild3Integer, 1, ++/*172728*/ OPC_CheckChild3Type, MVT::i32, ++/*172730*/ OPC_CheckChild4Integer, 1, ++/*172732*/ OPC_CheckChild4Type, MVT::i32, ++/*172734*/ OPC_MoveChild5, ++/*172735*/ OPC_CheckInteger, 1, ++/*172737*/ OPC_CheckType, MVT::i32, ++/*172739*/ OPC_MoveParent, ++/*172740*/ OPC_MoveChild6, ++/*172741*/ OPC_CheckInteger, 1, ++/*172743*/ OPC_CheckType, MVT::i32, ++/*172745*/ OPC_MoveParent, ++/*172746*/ OPC_MoveChild7, ++/*172747*/ OPC_CheckInteger, 1, ++/*172749*/ OPC_CheckType, MVT::i32, ++/*172751*/ OPC_MoveParent, ++/*172752*/ OPC_MoveChild, 8, ++/*172754*/ OPC_CheckInteger, 1, ++/*172756*/ OPC_CheckType, MVT::i32, ++/*172758*/ OPC_MoveParent, ++/*172759*/ OPC_MoveChild, 9, ++/*172761*/ OPC_CheckInteger, 1, ++/*172763*/ OPC_CheckType, MVT::i32, ++/*172765*/ OPC_MoveParent, ++/*172766*/ OPC_MoveChild, 10, ++/*172768*/ OPC_CheckInteger, 1, ++/*172770*/ OPC_CheckType, MVT::i32, ++/*172772*/ OPC_MoveParent, ++/*172773*/ OPC_MoveChild, 11, ++/*172775*/ OPC_CheckInteger, 1, ++/*172777*/ OPC_CheckType, MVT::i32, ++/*172779*/ OPC_MoveParent, ++/*172780*/ OPC_MoveChild, 12, ++/*172782*/ OPC_CheckInteger, 1, ++/*172784*/ OPC_CheckType, MVT::i32, ++/*172786*/ OPC_MoveParent, ++/*172787*/ OPC_MoveChild, 13, ++/*172789*/ OPC_CheckInteger, 1, ++/*172791*/ OPC_CheckType, MVT::i32, ++/*172793*/ OPC_MoveParent, ++/*172794*/ OPC_MoveChild, 14, ++/*172796*/ OPC_CheckInteger, 1, ++/*172798*/ OPC_CheckType, MVT::i32, ++/*172800*/ OPC_MoveParent, ++/*172801*/ OPC_MoveChild, 15, ++/*172803*/ OPC_CheckInteger, 1, ++/*172805*/ OPC_CheckType, MVT::i32, ++/*172807*/ OPC_MoveParent, ++/*172808*/ OPC_MoveChild, 16, ++/*172810*/ OPC_CheckInteger, 1, ++/*172812*/ OPC_CheckType, MVT::i32, ++/*172814*/ OPC_MoveParent, ++/*172815*/ OPC_MoveChild, 17, ++/*172817*/ OPC_CheckInteger, 1, ++/*172819*/ OPC_CheckType, MVT::i32, ++/*172821*/ OPC_MoveParent, ++/*172822*/ OPC_MoveChild, 18, ++/*172824*/ OPC_CheckInteger, 1, ++/*172826*/ OPC_CheckType, MVT::i32, ++/*172828*/ OPC_MoveParent, ++/*172829*/ OPC_MoveChild, 19, ++/*172831*/ OPC_CheckInteger, 1, ++/*172833*/ OPC_CheckType, MVT::i32, ++/*172835*/ OPC_MoveParent, ++/*172836*/ OPC_MoveChild, 20, ++/*172838*/ OPC_CheckInteger, 1, ++/*172840*/ OPC_CheckType, MVT::i32, ++/*172842*/ OPC_MoveParent, ++/*172843*/ OPC_MoveChild, 21, ++/*172845*/ OPC_CheckInteger, 1, ++/*172847*/ OPC_CheckType, MVT::i32, ++/*172849*/ OPC_MoveParent, ++/*172850*/ OPC_MoveChild, 22, ++/*172852*/ OPC_CheckInteger, 1, ++/*172854*/ OPC_CheckType, MVT::i32, ++/*172856*/ OPC_MoveParent, ++/*172857*/ OPC_MoveChild, 23, ++/*172859*/ OPC_CheckInteger, 1, ++/*172861*/ OPC_CheckType, MVT::i32, ++/*172863*/ OPC_MoveParent, ++/*172864*/ OPC_MoveChild, 24, ++/*172866*/ OPC_CheckInteger, 1, ++/*172868*/ OPC_CheckType, MVT::i32, ++/*172870*/ OPC_MoveParent, ++/*172871*/ OPC_MoveChild, 25, ++/*172873*/ OPC_CheckInteger, 1, ++/*172875*/ OPC_CheckType, MVT::i32, ++/*172877*/ OPC_MoveParent, ++/*172878*/ OPC_MoveChild, 26, ++/*172880*/ OPC_CheckInteger, 1, ++/*172882*/ OPC_CheckType, MVT::i32, ++/*172884*/ OPC_MoveParent, ++/*172885*/ OPC_MoveChild, 27, ++/*172887*/ OPC_CheckInteger, 1, ++/*172889*/ OPC_CheckType, MVT::i32, ++/*172891*/ OPC_MoveParent, ++/*172892*/ OPC_MoveChild, 28, ++/*172894*/ OPC_CheckInteger, 1, ++/*172896*/ OPC_CheckType, MVT::i32, ++/*172898*/ OPC_MoveParent, ++/*172899*/ OPC_MoveChild, 29, ++/*172901*/ OPC_CheckInteger, 1, ++/*172903*/ OPC_CheckType, MVT::i32, ++/*172905*/ OPC_MoveParent, ++/*172906*/ OPC_MoveChild, 30, ++/*172908*/ OPC_CheckInteger, 1, ++/*172910*/ OPC_CheckType, MVT::i32, ++/*172912*/ OPC_MoveParent, ++/*172913*/ OPC_MoveChild, 31, ++/*172915*/ OPC_CheckInteger, 1, ++/*172917*/ OPC_CheckType, MVT::i32, ++/*172919*/ OPC_MoveParent, ++/*172920*/ OPC_CheckType, MVT::v32i8, ++/*172922*/ OPC_MoveParent, ++/*172923*/ OPC_CheckType, MVT::v32i8, ++/*172925*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*172927*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a)), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*172935*/ 0, /*End of Scope*/ ++/*172936*/ /*Scope*/ 42|128,10/*1322*/, /*->174260*/ ++/*172938*/ OPC_CheckChild0Same, 1, ++/*172940*/ OPC_MoveChild1, ++/*172941*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*172944*/ OPC_Scope, 15|128,5/*655*/, /*->173602*/ // 2 children in Scope ++/*172947*/ OPC_MoveChild0, ++/*172948*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*172951*/ OPC_CheckChild0Integer, 1, ++/*172953*/ OPC_CheckChild0Type, MVT::i32, ++/*172955*/ OPC_CheckChild1Integer, 1, ++/*172957*/ OPC_CheckChild1Type, MVT::i32, ++/*172959*/ OPC_CheckChild2Integer, 1, ++/*172961*/ OPC_CheckChild2Type, MVT::i32, ++/*172963*/ OPC_CheckChild3Integer, 1, ++/*172965*/ OPC_CheckChild3Type, MVT::i32, ++/*172967*/ OPC_CheckChild4Integer, 1, ++/*172969*/ OPC_CheckChild4Type, MVT::i32, ++/*172971*/ OPC_MoveChild5, ++/*172972*/ OPC_CheckInteger, 1, ++/*172974*/ OPC_CheckType, MVT::i32, ++/*172976*/ OPC_MoveParent, ++/*172977*/ OPC_MoveChild6, ++/*172978*/ OPC_CheckInteger, 1, ++/*172980*/ OPC_CheckType, MVT::i32, ++/*172982*/ OPC_MoveParent, ++/*172983*/ OPC_MoveChild7, ++/*172984*/ OPC_CheckInteger, 1, ++/*172986*/ OPC_CheckType, MVT::i32, ++/*172988*/ OPC_MoveParent, ++/*172989*/ OPC_MoveChild, 8, ++/*172991*/ OPC_CheckInteger, 1, ++/*172993*/ OPC_CheckType, MVT::i32, ++/*172995*/ OPC_MoveParent, ++/*172996*/ OPC_MoveChild, 9, ++/*172998*/ OPC_CheckInteger, 1, ++/*173000*/ OPC_CheckType, MVT::i32, ++/*173002*/ OPC_MoveParent, ++/*173003*/ OPC_MoveChild, 10, ++/*173005*/ OPC_CheckInteger, 1, ++/*173007*/ OPC_CheckType, MVT::i32, ++/*173009*/ OPC_MoveParent, ++/*173010*/ OPC_MoveChild, 11, ++/*173012*/ OPC_CheckInteger, 1, ++/*173014*/ OPC_CheckType, MVT::i32, ++/*173016*/ OPC_MoveParent, ++/*173017*/ OPC_MoveChild, 12, ++/*173019*/ OPC_CheckInteger, 1, ++/*173021*/ OPC_CheckType, MVT::i32, ++/*173023*/ OPC_MoveParent, ++/*173024*/ OPC_MoveChild, 13, ++/*173026*/ OPC_CheckInteger, 1, ++/*173028*/ OPC_CheckType, MVT::i32, ++/*173030*/ OPC_MoveParent, ++/*173031*/ OPC_MoveChild, 14, ++/*173033*/ OPC_CheckInteger, 1, ++/*173035*/ OPC_CheckType, MVT::i32, ++/*173037*/ OPC_MoveParent, ++/*173038*/ OPC_MoveChild, 15, ++/*173040*/ OPC_CheckInteger, 1, ++/*173042*/ OPC_CheckType, MVT::i32, ++/*173044*/ OPC_MoveParent, ++/*173045*/ OPC_MoveChild, 16, ++/*173047*/ OPC_CheckInteger, 1, ++/*173049*/ OPC_CheckType, MVT::i32, ++/*173051*/ OPC_MoveParent, ++/*173052*/ OPC_MoveChild, 17, ++/*173054*/ OPC_CheckInteger, 1, ++/*173056*/ OPC_CheckType, MVT::i32, ++/*173058*/ OPC_MoveParent, ++/*173059*/ OPC_MoveChild, 18, ++/*173061*/ OPC_CheckInteger, 1, ++/*173063*/ OPC_CheckType, MVT::i32, ++/*173065*/ OPC_MoveParent, ++/*173066*/ OPC_MoveChild, 19, ++/*173068*/ OPC_CheckInteger, 1, ++/*173070*/ OPC_CheckType, MVT::i32, ++/*173072*/ OPC_MoveParent, ++/*173073*/ OPC_MoveChild, 20, ++/*173075*/ OPC_CheckInteger, 1, ++/*173077*/ OPC_CheckType, MVT::i32, ++/*173079*/ OPC_MoveParent, ++/*173080*/ OPC_MoveChild, 21, ++/*173082*/ OPC_CheckInteger, 1, ++/*173084*/ OPC_CheckType, MVT::i32, ++/*173086*/ OPC_MoveParent, ++/*173087*/ OPC_MoveChild, 22, ++/*173089*/ OPC_CheckInteger, 1, ++/*173091*/ OPC_CheckType, MVT::i32, ++/*173093*/ OPC_MoveParent, ++/*173094*/ OPC_MoveChild, 23, ++/*173096*/ OPC_CheckInteger, 1, ++/*173098*/ OPC_CheckType, MVT::i32, ++/*173100*/ OPC_MoveParent, ++/*173101*/ OPC_MoveChild, 24, ++/*173103*/ OPC_CheckInteger, 1, ++/*173105*/ OPC_CheckType, MVT::i32, ++/*173107*/ OPC_MoveParent, ++/*173108*/ OPC_MoveChild, 25, ++/*173110*/ OPC_CheckInteger, 1, ++/*173112*/ OPC_CheckType, MVT::i32, ++/*173114*/ OPC_MoveParent, ++/*173115*/ OPC_MoveChild, 26, ++/*173117*/ OPC_CheckInteger, 1, ++/*173119*/ OPC_CheckType, MVT::i32, ++/*173121*/ OPC_MoveParent, ++/*173122*/ OPC_MoveChild, 27, ++/*173124*/ OPC_CheckInteger, 1, ++/*173126*/ OPC_CheckType, MVT::i32, ++/*173128*/ OPC_MoveParent, ++/*173129*/ OPC_MoveChild, 28, ++/*173131*/ OPC_CheckInteger, 1, ++/*173133*/ OPC_CheckType, MVT::i32, ++/*173135*/ OPC_MoveParent, ++/*173136*/ OPC_MoveChild, 29, ++/*173138*/ OPC_CheckInteger, 1, ++/*173140*/ OPC_CheckType, MVT::i32, ++/*173142*/ OPC_MoveParent, ++/*173143*/ OPC_MoveChild, 30, ++/*173145*/ OPC_CheckInteger, 1, ++/*173147*/ OPC_CheckType, MVT::i32, ++/*173149*/ OPC_MoveParent, ++/*173150*/ OPC_MoveChild, 31, ++/*173152*/ OPC_CheckInteger, 1, ++/*173154*/ OPC_CheckType, MVT::i32, ++/*173156*/ OPC_MoveParent, ++/*173157*/ OPC_MoveParent, ++/*173158*/ OPC_CheckChild1Same, 0, ++/*173160*/ OPC_MoveParent, ++/*173161*/ OPC_MoveParent, ++/*173162*/ OPC_MoveChild1, ++/*173163*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*173166*/ OPC_CheckChild0Integer, 7, ++/*173168*/ OPC_CheckChild0Type, MVT::i32, ++/*173170*/ OPC_CheckChild1Integer, 7, ++/*173172*/ OPC_CheckChild1Type, MVT::i32, ++/*173174*/ OPC_CheckChild2Integer, 7, ++/*173176*/ OPC_CheckChild2Type, MVT::i32, ++/*173178*/ OPC_CheckChild3Integer, 7, ++/*173180*/ OPC_CheckChild3Type, MVT::i32, ++/*173182*/ OPC_CheckChild4Integer, 7, ++/*173184*/ OPC_CheckChild4Type, MVT::i32, ++/*173186*/ OPC_MoveChild5, ++/*173187*/ OPC_CheckInteger, 7, ++/*173189*/ OPC_CheckType, MVT::i32, ++/*173191*/ OPC_MoveParent, ++/*173192*/ OPC_MoveChild6, ++/*173193*/ OPC_CheckInteger, 7, ++/*173195*/ OPC_CheckType, MVT::i32, ++/*173197*/ OPC_MoveParent, ++/*173198*/ OPC_MoveChild7, ++/*173199*/ OPC_CheckInteger, 7, ++/*173201*/ OPC_CheckType, MVT::i32, ++/*173203*/ OPC_MoveParent, ++/*173204*/ OPC_MoveChild, 8, ++/*173206*/ OPC_CheckInteger, 7, ++/*173208*/ OPC_CheckType, MVT::i32, ++/*173210*/ OPC_MoveParent, ++/*173211*/ OPC_MoveChild, 9, ++/*173213*/ OPC_CheckInteger, 7, ++/*173215*/ OPC_CheckType, MVT::i32, ++/*173217*/ OPC_MoveParent, ++/*173218*/ OPC_MoveChild, 10, ++/*173220*/ OPC_CheckInteger, 7, ++/*173222*/ OPC_CheckType, MVT::i32, ++/*173224*/ OPC_MoveParent, ++/*173225*/ OPC_MoveChild, 11, ++/*173227*/ OPC_CheckInteger, 7, ++/*173229*/ OPC_CheckType, MVT::i32, ++/*173231*/ OPC_MoveParent, ++/*173232*/ OPC_MoveChild, 12, ++/*173234*/ OPC_CheckInteger, 7, ++/*173236*/ OPC_CheckType, MVT::i32, ++/*173238*/ OPC_MoveParent, ++/*173239*/ OPC_MoveChild, 13, ++/*173241*/ OPC_CheckInteger, 7, ++/*173243*/ OPC_CheckType, MVT::i32, ++/*173245*/ OPC_MoveParent, ++/*173246*/ OPC_MoveChild, 14, ++/*173248*/ OPC_CheckInteger, 7, ++/*173250*/ OPC_CheckType, MVT::i32, ++/*173252*/ OPC_MoveParent, ++/*173253*/ OPC_MoveChild, 15, ++/*173255*/ OPC_CheckInteger, 7, ++/*173257*/ OPC_CheckType, MVT::i32, ++/*173259*/ OPC_MoveParent, ++/*173260*/ OPC_MoveChild, 16, ++/*173262*/ OPC_CheckInteger, 7, ++/*173264*/ OPC_CheckType, MVT::i32, ++/*173266*/ OPC_MoveParent, ++/*173267*/ OPC_MoveChild, 17, ++/*173269*/ OPC_CheckInteger, 7, ++/*173271*/ OPC_CheckType, MVT::i32, ++/*173273*/ OPC_MoveParent, ++/*173274*/ OPC_MoveChild, 18, ++/*173276*/ OPC_CheckInteger, 7, ++/*173278*/ OPC_CheckType, MVT::i32, ++/*173280*/ OPC_MoveParent, ++/*173281*/ OPC_MoveChild, 19, ++/*173283*/ OPC_CheckInteger, 7, ++/*173285*/ OPC_CheckType, MVT::i32, ++/*173287*/ OPC_MoveParent, ++/*173288*/ OPC_MoveChild, 20, ++/*173290*/ OPC_CheckInteger, 7, ++/*173292*/ OPC_CheckType, MVT::i32, ++/*173294*/ OPC_MoveParent, ++/*173295*/ OPC_MoveChild, 21, ++/*173297*/ OPC_CheckInteger, 7, ++/*173299*/ OPC_CheckType, MVT::i32, ++/*173301*/ OPC_MoveParent, ++/*173302*/ OPC_MoveChild, 22, ++/*173304*/ OPC_CheckInteger, 7, ++/*173306*/ OPC_CheckType, MVT::i32, ++/*173308*/ OPC_MoveParent, ++/*173309*/ OPC_MoveChild, 23, ++/*173311*/ OPC_CheckInteger, 7, ++/*173313*/ OPC_CheckType, MVT::i32, ++/*173315*/ OPC_MoveParent, ++/*173316*/ OPC_MoveChild, 24, ++/*173318*/ OPC_CheckInteger, 7, ++/*173320*/ OPC_CheckType, MVT::i32, ++/*173322*/ OPC_MoveParent, ++/*173323*/ OPC_MoveChild, 25, ++/*173325*/ OPC_CheckInteger, 7, ++/*173327*/ OPC_CheckType, MVT::i32, ++/*173329*/ OPC_MoveParent, ++/*173330*/ OPC_MoveChild, 26, ++/*173332*/ OPC_CheckInteger, 7, ++/*173334*/ OPC_CheckType, MVT::i32, ++/*173336*/ OPC_MoveParent, ++/*173337*/ OPC_MoveChild, 27, ++/*173339*/ OPC_CheckInteger, 7, ++/*173341*/ OPC_CheckType, MVT::i32, ++/*173343*/ OPC_MoveParent, ++/*173344*/ OPC_MoveChild, 28, ++/*173346*/ OPC_CheckInteger, 7, ++/*173348*/ OPC_CheckType, MVT::i32, ++/*173350*/ OPC_MoveParent, ++/*173351*/ OPC_MoveChild, 29, ++/*173353*/ OPC_CheckInteger, 7, ++/*173355*/ OPC_CheckType, MVT::i32, ++/*173357*/ OPC_MoveParent, ++/*173358*/ OPC_MoveChild, 30, ++/*173360*/ OPC_CheckInteger, 7, ++/*173362*/ OPC_CheckType, MVT::i32, ++/*173364*/ OPC_MoveParent, ++/*173365*/ OPC_MoveChild, 31, ++/*173367*/ OPC_CheckInteger, 7, ++/*173369*/ OPC_CheckType, MVT::i32, ++/*173371*/ OPC_MoveParent, ++/*173372*/ OPC_CheckType, MVT::v32i8, ++/*173374*/ OPC_MoveParent, ++/*173375*/ OPC_MoveParent, ++/*173376*/ OPC_MoveParent, ++/*173377*/ OPC_MoveChild1, ++/*173378*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*173381*/ OPC_CheckChild0Integer, 1, ++/*173383*/ OPC_CheckChild0Type, MVT::i32, ++/*173385*/ OPC_CheckChild1Integer, 1, ++/*173387*/ OPC_CheckChild1Type, MVT::i32, ++/*173389*/ OPC_CheckChild2Integer, 1, ++/*173391*/ OPC_CheckChild2Type, MVT::i32, ++/*173393*/ OPC_CheckChild3Integer, 1, ++/*173395*/ OPC_CheckChild3Type, MVT::i32, ++/*173397*/ OPC_CheckChild4Integer, 1, ++/*173399*/ OPC_CheckChild4Type, MVT::i32, ++/*173401*/ OPC_MoveChild5, ++/*173402*/ OPC_CheckInteger, 1, ++/*173404*/ OPC_CheckType, MVT::i32, ++/*173406*/ OPC_MoveParent, ++/*173407*/ OPC_MoveChild6, ++/*173408*/ OPC_CheckInteger, 1, ++/*173410*/ OPC_CheckType, MVT::i32, ++/*173412*/ OPC_MoveParent, ++/*173413*/ OPC_MoveChild7, ++/*173414*/ OPC_CheckInteger, 1, ++/*173416*/ OPC_CheckType, MVT::i32, ++/*173418*/ OPC_MoveParent, ++/*173419*/ OPC_MoveChild, 8, ++/*173421*/ OPC_CheckInteger, 1, ++/*173423*/ OPC_CheckType, MVT::i32, ++/*173425*/ OPC_MoveParent, ++/*173426*/ OPC_MoveChild, 9, ++/*173428*/ OPC_CheckInteger, 1, ++/*173430*/ OPC_CheckType, MVT::i32, ++/*173432*/ OPC_MoveParent, ++/*173433*/ OPC_MoveChild, 10, ++/*173435*/ OPC_CheckInteger, 1, ++/*173437*/ OPC_CheckType, MVT::i32, ++/*173439*/ OPC_MoveParent, ++/*173440*/ OPC_MoveChild, 11, ++/*173442*/ OPC_CheckInteger, 1, ++/*173444*/ OPC_CheckType, MVT::i32, ++/*173446*/ OPC_MoveParent, ++/*173447*/ OPC_MoveChild, 12, ++/*173449*/ OPC_CheckInteger, 1, ++/*173451*/ OPC_CheckType, MVT::i32, ++/*173453*/ OPC_MoveParent, ++/*173454*/ OPC_MoveChild, 13, ++/*173456*/ OPC_CheckInteger, 1, ++/*173458*/ OPC_CheckType, MVT::i32, ++/*173460*/ OPC_MoveParent, ++/*173461*/ OPC_MoveChild, 14, ++/*173463*/ OPC_CheckInteger, 1, ++/*173465*/ OPC_CheckType, MVT::i32, ++/*173467*/ OPC_MoveParent, ++/*173468*/ OPC_MoveChild, 15, ++/*173470*/ OPC_CheckInteger, 1, ++/*173472*/ OPC_CheckType, MVT::i32, ++/*173474*/ OPC_MoveParent, ++/*173475*/ OPC_MoveChild, 16, ++/*173477*/ OPC_CheckInteger, 1, ++/*173479*/ OPC_CheckType, MVT::i32, ++/*173481*/ OPC_MoveParent, ++/*173482*/ OPC_MoveChild, 17, ++/*173484*/ OPC_CheckInteger, 1, ++/*173486*/ OPC_CheckType, MVT::i32, ++/*173488*/ OPC_MoveParent, ++/*173489*/ OPC_MoveChild, 18, ++/*173491*/ OPC_CheckInteger, 1, ++/*173493*/ OPC_CheckType, MVT::i32, ++/*173495*/ OPC_MoveParent, ++/*173496*/ OPC_MoveChild, 19, ++/*173498*/ OPC_CheckInteger, 1, ++/*173500*/ OPC_CheckType, MVT::i32, ++/*173502*/ OPC_MoveParent, ++/*173503*/ OPC_MoveChild, 20, ++/*173505*/ OPC_CheckInteger, 1, ++/*173507*/ OPC_CheckType, MVT::i32, ++/*173509*/ OPC_MoveParent, ++/*173510*/ OPC_MoveChild, 21, ++/*173512*/ OPC_CheckInteger, 1, ++/*173514*/ OPC_CheckType, MVT::i32, ++/*173516*/ OPC_MoveParent, ++/*173517*/ OPC_MoveChild, 22, ++/*173519*/ OPC_CheckInteger, 1, ++/*173521*/ OPC_CheckType, MVT::i32, ++/*173523*/ OPC_MoveParent, ++/*173524*/ OPC_MoveChild, 23, ++/*173526*/ OPC_CheckInteger, 1, ++/*173528*/ OPC_CheckType, MVT::i32, ++/*173530*/ OPC_MoveParent, ++/*173531*/ OPC_MoveChild, 24, ++/*173533*/ OPC_CheckInteger, 1, ++/*173535*/ OPC_CheckType, MVT::i32, ++/*173537*/ OPC_MoveParent, ++/*173538*/ OPC_MoveChild, 25, ++/*173540*/ OPC_CheckInteger, 1, ++/*173542*/ OPC_CheckType, MVT::i32, ++/*173544*/ OPC_MoveParent, ++/*173545*/ OPC_MoveChild, 26, ++/*173547*/ OPC_CheckInteger, 1, ++/*173549*/ OPC_CheckType, MVT::i32, ++/*173551*/ OPC_MoveParent, ++/*173552*/ OPC_MoveChild, 27, ++/*173554*/ OPC_CheckInteger, 1, ++/*173556*/ OPC_CheckType, MVT::i32, ++/*173558*/ OPC_MoveParent, ++/*173559*/ OPC_MoveChild, 28, ++/*173561*/ OPC_CheckInteger, 1, ++/*173563*/ OPC_CheckType, MVT::i32, ++/*173565*/ OPC_MoveParent, ++/*173566*/ OPC_MoveChild, 29, ++/*173568*/ OPC_CheckInteger, 1, ++/*173570*/ OPC_CheckType, MVT::i32, ++/*173572*/ OPC_MoveParent, ++/*173573*/ OPC_MoveChild, 30, ++/*173575*/ OPC_CheckInteger, 1, ++/*173577*/ OPC_CheckType, MVT::i32, ++/*173579*/ OPC_MoveParent, ++/*173580*/ OPC_MoveChild, 31, ++/*173582*/ OPC_CheckInteger, 1, ++/*173584*/ OPC_CheckType, MVT::i32, ++/*173586*/ OPC_MoveParent, ++/*173587*/ OPC_CheckType, MVT::v32i8, ++/*173589*/ OPC_MoveParent, ++/*173590*/ OPC_CheckType, MVT::v32i8, ++/*173592*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*173594*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a)), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*173602*/ /*Scope*/ 15|128,5/*655*/, /*->174259*/ ++/*173604*/ OPC_CheckChild0Same, 0, ++/*173606*/ OPC_MoveChild1, ++/*173607*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*173610*/ OPC_CheckChild0Integer, 1, ++/*173612*/ OPC_CheckChild0Type, MVT::i32, ++/*173614*/ OPC_CheckChild1Integer, 1, ++/*173616*/ OPC_CheckChild1Type, MVT::i32, ++/*173618*/ OPC_CheckChild2Integer, 1, ++/*173620*/ OPC_CheckChild2Type, MVT::i32, ++/*173622*/ OPC_CheckChild3Integer, 1, ++/*173624*/ OPC_CheckChild3Type, MVT::i32, ++/*173626*/ OPC_CheckChild4Integer, 1, ++/*173628*/ OPC_CheckChild4Type, MVT::i32, ++/*173630*/ OPC_MoveChild5, ++/*173631*/ OPC_CheckInteger, 1, ++/*173633*/ OPC_CheckType, MVT::i32, ++/*173635*/ OPC_MoveParent, ++/*173636*/ OPC_MoveChild6, ++/*173637*/ OPC_CheckInteger, 1, ++/*173639*/ OPC_CheckType, MVT::i32, ++/*173641*/ OPC_MoveParent, ++/*173642*/ OPC_MoveChild7, ++/*173643*/ OPC_CheckInteger, 1, ++/*173645*/ OPC_CheckType, MVT::i32, ++/*173647*/ OPC_MoveParent, ++/*173648*/ OPC_MoveChild, 8, ++/*173650*/ OPC_CheckInteger, 1, ++/*173652*/ OPC_CheckType, MVT::i32, ++/*173654*/ OPC_MoveParent, ++/*173655*/ OPC_MoveChild, 9, ++/*173657*/ OPC_CheckInteger, 1, ++/*173659*/ OPC_CheckType, MVT::i32, ++/*173661*/ OPC_MoveParent, ++/*173662*/ OPC_MoveChild, 10, ++/*173664*/ OPC_CheckInteger, 1, ++/*173666*/ OPC_CheckType, MVT::i32, ++/*173668*/ OPC_MoveParent, ++/*173669*/ OPC_MoveChild, 11, ++/*173671*/ OPC_CheckInteger, 1, ++/*173673*/ OPC_CheckType, MVT::i32, ++/*173675*/ OPC_MoveParent, ++/*173676*/ OPC_MoveChild, 12, ++/*173678*/ OPC_CheckInteger, 1, ++/*173680*/ OPC_CheckType, MVT::i32, ++/*173682*/ OPC_MoveParent, ++/*173683*/ OPC_MoveChild, 13, ++/*173685*/ OPC_CheckInteger, 1, ++/*173687*/ OPC_CheckType, MVT::i32, ++/*173689*/ OPC_MoveParent, ++/*173690*/ OPC_MoveChild, 14, ++/*173692*/ OPC_CheckInteger, 1, ++/*173694*/ OPC_CheckType, MVT::i32, ++/*173696*/ OPC_MoveParent, ++/*173697*/ OPC_MoveChild, 15, ++/*173699*/ OPC_CheckInteger, 1, ++/*173701*/ OPC_CheckType, MVT::i32, ++/*173703*/ OPC_MoveParent, ++/*173704*/ OPC_MoveChild, 16, ++/*173706*/ OPC_CheckInteger, 1, ++/*173708*/ OPC_CheckType, MVT::i32, ++/*173710*/ OPC_MoveParent, ++/*173711*/ OPC_MoveChild, 17, ++/*173713*/ OPC_CheckInteger, 1, ++/*173715*/ OPC_CheckType, MVT::i32, ++/*173717*/ OPC_MoveParent, ++/*173718*/ OPC_MoveChild, 18, ++/*173720*/ OPC_CheckInteger, 1, ++/*173722*/ OPC_CheckType, MVT::i32, ++/*173724*/ OPC_MoveParent, ++/*173725*/ OPC_MoveChild, 19, ++/*173727*/ OPC_CheckInteger, 1, ++/*173729*/ OPC_CheckType, MVT::i32, ++/*173731*/ OPC_MoveParent, ++/*173732*/ OPC_MoveChild, 20, ++/*173734*/ OPC_CheckInteger, 1, ++/*173736*/ OPC_CheckType, MVT::i32, ++/*173738*/ OPC_MoveParent, ++/*173739*/ OPC_MoveChild, 21, ++/*173741*/ OPC_CheckInteger, 1, ++/*173743*/ OPC_CheckType, MVT::i32, ++/*173745*/ OPC_MoveParent, ++/*173746*/ OPC_MoveChild, 22, ++/*173748*/ OPC_CheckInteger, 1, ++/*173750*/ OPC_CheckType, MVT::i32, ++/*173752*/ OPC_MoveParent, ++/*173753*/ OPC_MoveChild, 23, ++/*173755*/ OPC_CheckInteger, 1, ++/*173757*/ OPC_CheckType, MVT::i32, ++/*173759*/ OPC_MoveParent, ++/*173760*/ OPC_MoveChild, 24, ++/*173762*/ OPC_CheckInteger, 1, ++/*173764*/ OPC_CheckType, MVT::i32, ++/*173766*/ OPC_MoveParent, ++/*173767*/ OPC_MoveChild, 25, ++/*173769*/ OPC_CheckInteger, 1, ++/*173771*/ OPC_CheckType, MVT::i32, ++/*173773*/ OPC_MoveParent, ++/*173774*/ OPC_MoveChild, 26, ++/*173776*/ OPC_CheckInteger, 1, ++/*173778*/ OPC_CheckType, MVT::i32, ++/*173780*/ OPC_MoveParent, ++/*173781*/ OPC_MoveChild, 27, ++/*173783*/ OPC_CheckInteger, 1, ++/*173785*/ OPC_CheckType, MVT::i32, ++/*173787*/ OPC_MoveParent, ++/*173788*/ OPC_MoveChild, 28, ++/*173790*/ OPC_CheckInteger, 1, ++/*173792*/ OPC_CheckType, MVT::i32, ++/*173794*/ OPC_MoveParent, ++/*173795*/ OPC_MoveChild, 29, ++/*173797*/ OPC_CheckInteger, 1, ++/*173799*/ OPC_CheckType, MVT::i32, ++/*173801*/ OPC_MoveParent, ++/*173802*/ OPC_MoveChild, 30, ++/*173804*/ OPC_CheckInteger, 1, ++/*173806*/ OPC_CheckType, MVT::i32, ++/*173808*/ OPC_MoveParent, ++/*173809*/ OPC_MoveChild, 31, ++/*173811*/ OPC_CheckInteger, 1, ++/*173813*/ OPC_CheckType, MVT::i32, ++/*173815*/ OPC_MoveParent, ++/*173816*/ OPC_MoveParent, ++/*173817*/ OPC_MoveParent, ++/*173818*/ OPC_MoveParent, ++/*173819*/ OPC_MoveChild1, ++/*173820*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*173823*/ OPC_CheckChild0Integer, 7, ++/*173825*/ OPC_CheckChild0Type, MVT::i32, ++/*173827*/ OPC_CheckChild1Integer, 7, ++/*173829*/ OPC_CheckChild1Type, MVT::i32, ++/*173831*/ OPC_CheckChild2Integer, 7, ++/*173833*/ OPC_CheckChild2Type, MVT::i32, ++/*173835*/ OPC_CheckChild3Integer, 7, ++/*173837*/ OPC_CheckChild3Type, MVT::i32, ++/*173839*/ OPC_CheckChild4Integer, 7, ++/*173841*/ OPC_CheckChild4Type, MVT::i32, ++/*173843*/ OPC_MoveChild5, ++/*173844*/ OPC_CheckInteger, 7, ++/*173846*/ OPC_CheckType, MVT::i32, ++/*173848*/ OPC_MoveParent, ++/*173849*/ OPC_MoveChild6, ++/*173850*/ OPC_CheckInteger, 7, ++/*173852*/ OPC_CheckType, MVT::i32, ++/*173854*/ OPC_MoveParent, ++/*173855*/ OPC_MoveChild7, ++/*173856*/ OPC_CheckInteger, 7, ++/*173858*/ OPC_CheckType, MVT::i32, ++/*173860*/ OPC_MoveParent, ++/*173861*/ OPC_MoveChild, 8, ++/*173863*/ OPC_CheckInteger, 7, ++/*173865*/ OPC_CheckType, MVT::i32, ++/*173867*/ OPC_MoveParent, ++/*173868*/ OPC_MoveChild, 9, ++/*173870*/ OPC_CheckInteger, 7, ++/*173872*/ OPC_CheckType, MVT::i32, ++/*173874*/ OPC_MoveParent, ++/*173875*/ OPC_MoveChild, 10, ++/*173877*/ OPC_CheckInteger, 7, ++/*173879*/ OPC_CheckType, MVT::i32, ++/*173881*/ OPC_MoveParent, ++/*173882*/ OPC_MoveChild, 11, ++/*173884*/ OPC_CheckInteger, 7, ++/*173886*/ OPC_CheckType, MVT::i32, ++/*173888*/ OPC_MoveParent, ++/*173889*/ OPC_MoveChild, 12, ++/*173891*/ OPC_CheckInteger, 7, ++/*173893*/ OPC_CheckType, MVT::i32, ++/*173895*/ OPC_MoveParent, ++/*173896*/ OPC_MoveChild, 13, ++/*173898*/ OPC_CheckInteger, 7, ++/*173900*/ OPC_CheckType, MVT::i32, ++/*173902*/ OPC_MoveParent, ++/*173903*/ OPC_MoveChild, 14, ++/*173905*/ OPC_CheckInteger, 7, ++/*173907*/ OPC_CheckType, MVT::i32, ++/*173909*/ OPC_MoveParent, ++/*173910*/ OPC_MoveChild, 15, ++/*173912*/ OPC_CheckInteger, 7, ++/*173914*/ OPC_CheckType, MVT::i32, ++/*173916*/ OPC_MoveParent, ++/*173917*/ OPC_MoveChild, 16, ++/*173919*/ OPC_CheckInteger, 7, ++/*173921*/ OPC_CheckType, MVT::i32, ++/*173923*/ OPC_MoveParent, ++/*173924*/ OPC_MoveChild, 17, ++/*173926*/ OPC_CheckInteger, 7, ++/*173928*/ OPC_CheckType, MVT::i32, ++/*173930*/ OPC_MoveParent, ++/*173931*/ OPC_MoveChild, 18, ++/*173933*/ OPC_CheckInteger, 7, ++/*173935*/ OPC_CheckType, MVT::i32, ++/*173937*/ OPC_MoveParent, ++/*173938*/ OPC_MoveChild, 19, ++/*173940*/ OPC_CheckInteger, 7, ++/*173942*/ OPC_CheckType, MVT::i32, ++/*173944*/ OPC_MoveParent, ++/*173945*/ OPC_MoveChild, 20, ++/*173947*/ OPC_CheckInteger, 7, ++/*173949*/ OPC_CheckType, MVT::i32, ++/*173951*/ OPC_MoveParent, ++/*173952*/ OPC_MoveChild, 21, ++/*173954*/ OPC_CheckInteger, 7, ++/*173956*/ OPC_CheckType, MVT::i32, ++/*173958*/ OPC_MoveParent, ++/*173959*/ OPC_MoveChild, 22, ++/*173961*/ OPC_CheckInteger, 7, ++/*173963*/ OPC_CheckType, MVT::i32, ++/*173965*/ OPC_MoveParent, ++/*173966*/ OPC_MoveChild, 23, ++/*173968*/ OPC_CheckInteger, 7, ++/*173970*/ OPC_CheckType, MVT::i32, ++/*173972*/ OPC_MoveParent, ++/*173973*/ OPC_MoveChild, 24, ++/*173975*/ OPC_CheckInteger, 7, ++/*173977*/ OPC_CheckType, MVT::i32, ++/*173979*/ OPC_MoveParent, ++/*173980*/ OPC_MoveChild, 25, ++/*173982*/ OPC_CheckInteger, 7, ++/*173984*/ OPC_CheckType, MVT::i32, ++/*173986*/ OPC_MoveParent, ++/*173987*/ OPC_MoveChild, 26, ++/*173989*/ OPC_CheckInteger, 7, ++/*173991*/ OPC_CheckType, MVT::i32, ++/*173993*/ OPC_MoveParent, ++/*173994*/ OPC_MoveChild, 27, ++/*173996*/ OPC_CheckInteger, 7, ++/*173998*/ OPC_CheckType, MVT::i32, ++/*174000*/ OPC_MoveParent, ++/*174001*/ OPC_MoveChild, 28, ++/*174003*/ OPC_CheckInteger, 7, ++/*174005*/ OPC_CheckType, MVT::i32, ++/*174007*/ OPC_MoveParent, ++/*174008*/ OPC_MoveChild, 29, ++/*174010*/ OPC_CheckInteger, 7, ++/*174012*/ OPC_CheckType, MVT::i32, ++/*174014*/ OPC_MoveParent, ++/*174015*/ OPC_MoveChild, 30, ++/*174017*/ OPC_CheckInteger, 7, ++/*174019*/ OPC_CheckType, MVT::i32, ++/*174021*/ OPC_MoveParent, ++/*174022*/ OPC_MoveChild, 31, ++/*174024*/ OPC_CheckInteger, 7, ++/*174026*/ OPC_CheckType, MVT::i32, ++/*174028*/ OPC_MoveParent, ++/*174029*/ OPC_CheckType, MVT::v32i8, ++/*174031*/ OPC_MoveParent, ++/*174032*/ OPC_MoveParent, ++/*174033*/ OPC_MoveParent, ++/*174034*/ OPC_MoveChild1, ++/*174035*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*174038*/ OPC_CheckChild0Integer, 1, ++/*174040*/ OPC_CheckChild0Type, MVT::i32, ++/*174042*/ OPC_CheckChild1Integer, 1, ++/*174044*/ OPC_CheckChild1Type, MVT::i32, ++/*174046*/ OPC_CheckChild2Integer, 1, ++/*174048*/ OPC_CheckChild2Type, MVT::i32, ++/*174050*/ OPC_CheckChild3Integer, 1, ++/*174052*/ OPC_CheckChild3Type, MVT::i32, ++/*174054*/ OPC_CheckChild4Integer, 1, ++/*174056*/ OPC_CheckChild4Type, MVT::i32, ++/*174058*/ OPC_MoveChild5, ++/*174059*/ OPC_CheckInteger, 1, ++/*174061*/ OPC_CheckType, MVT::i32, ++/*174063*/ OPC_MoveParent, ++/*174064*/ OPC_MoveChild6, ++/*174065*/ OPC_CheckInteger, 1, ++/*174067*/ OPC_CheckType, MVT::i32, ++/*174069*/ OPC_MoveParent, ++/*174070*/ OPC_MoveChild7, ++/*174071*/ OPC_CheckInteger, 1, ++/*174073*/ OPC_CheckType, MVT::i32, ++/*174075*/ OPC_MoveParent, ++/*174076*/ OPC_MoveChild, 8, ++/*174078*/ OPC_CheckInteger, 1, ++/*174080*/ OPC_CheckType, MVT::i32, ++/*174082*/ OPC_MoveParent, ++/*174083*/ OPC_MoveChild, 9, ++/*174085*/ OPC_CheckInteger, 1, ++/*174087*/ OPC_CheckType, MVT::i32, ++/*174089*/ OPC_MoveParent, ++/*174090*/ OPC_MoveChild, 10, ++/*174092*/ OPC_CheckInteger, 1, ++/*174094*/ OPC_CheckType, MVT::i32, ++/*174096*/ OPC_MoveParent, ++/*174097*/ OPC_MoveChild, 11, ++/*174099*/ OPC_CheckInteger, 1, ++/*174101*/ OPC_CheckType, MVT::i32, ++/*174103*/ OPC_MoveParent, ++/*174104*/ OPC_MoveChild, 12, ++/*174106*/ OPC_CheckInteger, 1, ++/*174108*/ OPC_CheckType, MVT::i32, ++/*174110*/ OPC_MoveParent, ++/*174111*/ OPC_MoveChild, 13, ++/*174113*/ OPC_CheckInteger, 1, ++/*174115*/ OPC_CheckType, MVT::i32, ++/*174117*/ OPC_MoveParent, ++/*174118*/ OPC_MoveChild, 14, ++/*174120*/ OPC_CheckInteger, 1, ++/*174122*/ OPC_CheckType, MVT::i32, ++/*174124*/ OPC_MoveParent, ++/*174125*/ OPC_MoveChild, 15, ++/*174127*/ OPC_CheckInteger, 1, ++/*174129*/ OPC_CheckType, MVT::i32, ++/*174131*/ OPC_MoveParent, ++/*174132*/ OPC_MoveChild, 16, ++/*174134*/ OPC_CheckInteger, 1, ++/*174136*/ OPC_CheckType, MVT::i32, ++/*174138*/ OPC_MoveParent, ++/*174139*/ OPC_MoveChild, 17, ++/*174141*/ OPC_CheckInteger, 1, ++/*174143*/ OPC_CheckType, MVT::i32, ++/*174145*/ OPC_MoveParent, ++/*174146*/ OPC_MoveChild, 18, ++/*174148*/ OPC_CheckInteger, 1, ++/*174150*/ OPC_CheckType, MVT::i32, ++/*174152*/ OPC_MoveParent, ++/*174153*/ OPC_MoveChild, 19, ++/*174155*/ OPC_CheckInteger, 1, ++/*174157*/ OPC_CheckType, MVT::i32, ++/*174159*/ OPC_MoveParent, ++/*174160*/ OPC_MoveChild, 20, ++/*174162*/ OPC_CheckInteger, 1, ++/*174164*/ OPC_CheckType, MVT::i32, ++/*174166*/ OPC_MoveParent, ++/*174167*/ OPC_MoveChild, 21, ++/*174169*/ OPC_CheckInteger, 1, ++/*174171*/ OPC_CheckType, MVT::i32, ++/*174173*/ OPC_MoveParent, ++/*174174*/ OPC_MoveChild, 22, ++/*174176*/ OPC_CheckInteger, 1, ++/*174178*/ OPC_CheckType, MVT::i32, ++/*174180*/ OPC_MoveParent, ++/*174181*/ OPC_MoveChild, 23, ++/*174183*/ OPC_CheckInteger, 1, ++/*174185*/ OPC_CheckType, MVT::i32, ++/*174187*/ OPC_MoveParent, ++/*174188*/ OPC_MoveChild, 24, ++/*174190*/ OPC_CheckInteger, 1, ++/*174192*/ OPC_CheckType, MVT::i32, ++/*174194*/ OPC_MoveParent, ++/*174195*/ OPC_MoveChild, 25, ++/*174197*/ OPC_CheckInteger, 1, ++/*174199*/ OPC_CheckType, MVT::i32, ++/*174201*/ OPC_MoveParent, ++/*174202*/ OPC_MoveChild, 26, ++/*174204*/ OPC_CheckInteger, 1, ++/*174206*/ OPC_CheckType, MVT::i32, ++/*174208*/ OPC_MoveParent, ++/*174209*/ OPC_MoveChild, 27, ++/*174211*/ OPC_CheckInteger, 1, ++/*174213*/ OPC_CheckType, MVT::i32, ++/*174215*/ OPC_MoveParent, ++/*174216*/ OPC_MoveChild, 28, ++/*174218*/ OPC_CheckInteger, 1, ++/*174220*/ OPC_CheckType, MVT::i32, ++/*174222*/ OPC_MoveParent, ++/*174223*/ OPC_MoveChild, 29, ++/*174225*/ OPC_CheckInteger, 1, ++/*174227*/ OPC_CheckType, MVT::i32, ++/*174229*/ OPC_MoveParent, ++/*174230*/ OPC_MoveChild, 30, ++/*174232*/ OPC_CheckInteger, 1, ++/*174234*/ OPC_CheckType, MVT::i32, ++/*174236*/ OPC_MoveParent, ++/*174237*/ OPC_MoveChild, 31, ++/*174239*/ OPC_CheckInteger, 1, ++/*174241*/ OPC_CheckType, MVT::i32, ++/*174243*/ OPC_MoveParent, ++/*174244*/ OPC_CheckType, MVT::v32i8, ++/*174246*/ OPC_MoveParent, ++/*174247*/ OPC_CheckType, MVT::v32i8, ++/*174249*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*174251*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a)), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*174259*/ 0, /*End of Scope*/ ++/*174260*/ /*Scope*/ 89|128,8/*1113*/, /*->175375*/ ++/*174262*/ OPC_MoveChild0, ++/*174263*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*174266*/ OPC_CheckChild0Integer, 1, ++/*174268*/ OPC_CheckChild0Type, MVT::i32, ++/*174270*/ OPC_CheckChild1Integer, 1, ++/*174272*/ OPC_CheckChild1Type, MVT::i32, ++/*174274*/ OPC_CheckChild2Integer, 1, ++/*174276*/ OPC_CheckChild2Type, MVT::i32, ++/*174278*/ OPC_CheckChild3Integer, 1, ++/*174280*/ OPC_CheckChild3Type, MVT::i32, ++/*174282*/ OPC_CheckChild4Integer, 1, ++/*174284*/ OPC_CheckChild4Type, MVT::i32, ++/*174286*/ OPC_MoveChild5, ++/*174287*/ OPC_CheckInteger, 1, ++/*174289*/ OPC_CheckType, MVT::i32, ++/*174291*/ OPC_MoveParent, ++/*174292*/ OPC_MoveChild6, ++/*174293*/ OPC_CheckInteger, 1, ++/*174295*/ OPC_CheckType, MVT::i32, ++/*174297*/ OPC_MoveParent, ++/*174298*/ OPC_MoveChild7, ++/*174299*/ OPC_CheckInteger, 1, ++/*174301*/ OPC_CheckType, MVT::i32, ++/*174303*/ OPC_MoveParent, ++/*174304*/ OPC_MoveChild, 8, ++/*174306*/ OPC_CheckInteger, 1, ++/*174308*/ OPC_CheckType, MVT::i32, ++/*174310*/ OPC_MoveParent, ++/*174311*/ OPC_MoveChild, 9, ++/*174313*/ OPC_CheckInteger, 1, ++/*174315*/ OPC_CheckType, MVT::i32, ++/*174317*/ OPC_MoveParent, ++/*174318*/ OPC_MoveChild, 10, ++/*174320*/ OPC_CheckInteger, 1, ++/*174322*/ OPC_CheckType, MVT::i32, ++/*174324*/ OPC_MoveParent, ++/*174325*/ OPC_MoveChild, 11, ++/*174327*/ OPC_CheckInteger, 1, ++/*174329*/ OPC_CheckType, MVT::i32, ++/*174331*/ OPC_MoveParent, ++/*174332*/ OPC_MoveChild, 12, ++/*174334*/ OPC_CheckInteger, 1, ++/*174336*/ OPC_CheckType, MVT::i32, ++/*174338*/ OPC_MoveParent, ++/*174339*/ OPC_MoveChild, 13, ++/*174341*/ OPC_CheckInteger, 1, ++/*174343*/ OPC_CheckType, MVT::i32, ++/*174345*/ OPC_MoveParent, ++/*174346*/ OPC_MoveChild, 14, ++/*174348*/ OPC_CheckInteger, 1, ++/*174350*/ OPC_CheckType, MVT::i32, ++/*174352*/ OPC_MoveParent, ++/*174353*/ OPC_MoveChild, 15, ++/*174355*/ OPC_CheckInteger, 1, ++/*174357*/ OPC_CheckType, MVT::i32, ++/*174359*/ OPC_MoveParent, ++/*174360*/ OPC_MoveChild, 16, ++/*174362*/ OPC_CheckInteger, 1, ++/*174364*/ OPC_CheckType, MVT::i32, ++/*174366*/ OPC_MoveParent, ++/*174367*/ OPC_MoveChild, 17, ++/*174369*/ OPC_CheckInteger, 1, ++/*174371*/ OPC_CheckType, MVT::i32, ++/*174373*/ OPC_MoveParent, ++/*174374*/ OPC_MoveChild, 18, ++/*174376*/ OPC_CheckInteger, 1, ++/*174378*/ OPC_CheckType, MVT::i32, ++/*174380*/ OPC_MoveParent, ++/*174381*/ OPC_MoveChild, 19, ++/*174383*/ OPC_CheckInteger, 1, ++/*174385*/ OPC_CheckType, MVT::i32, ++/*174387*/ OPC_MoveParent, ++/*174388*/ OPC_MoveChild, 20, ++/*174390*/ OPC_CheckInteger, 1, ++/*174392*/ OPC_CheckType, MVT::i32, ++/*174394*/ OPC_MoveParent, ++/*174395*/ OPC_MoveChild, 21, ++/*174397*/ OPC_CheckInteger, 1, ++/*174399*/ OPC_CheckType, MVT::i32, ++/*174401*/ OPC_MoveParent, ++/*174402*/ OPC_MoveChild, 22, ++/*174404*/ OPC_CheckInteger, 1, ++/*174406*/ OPC_CheckType, MVT::i32, ++/*174408*/ OPC_MoveParent, ++/*174409*/ OPC_MoveChild, 23, ++/*174411*/ OPC_CheckInteger, 1, ++/*174413*/ OPC_CheckType, MVT::i32, ++/*174415*/ OPC_MoveParent, ++/*174416*/ OPC_MoveChild, 24, ++/*174418*/ OPC_CheckInteger, 1, ++/*174420*/ OPC_CheckType, MVT::i32, ++/*174422*/ OPC_MoveParent, ++/*174423*/ OPC_MoveChild, 25, ++/*174425*/ OPC_CheckInteger, 1, ++/*174427*/ OPC_CheckType, MVT::i32, ++/*174429*/ OPC_MoveParent, ++/*174430*/ OPC_MoveChild, 26, ++/*174432*/ OPC_CheckInteger, 1, ++/*174434*/ OPC_CheckType, MVT::i32, ++/*174436*/ OPC_MoveParent, ++/*174437*/ OPC_MoveChild, 27, ++/*174439*/ OPC_CheckInteger, 1, ++/*174441*/ OPC_CheckType, MVT::i32, ++/*174443*/ OPC_MoveParent, ++/*174444*/ OPC_MoveChild, 28, ++/*174446*/ OPC_CheckInteger, 1, ++/*174448*/ OPC_CheckType, MVT::i32, ++/*174450*/ OPC_MoveParent, ++/*174451*/ OPC_MoveChild, 29, ++/*174453*/ OPC_CheckInteger, 1, ++/*174455*/ OPC_CheckType, MVT::i32, ++/*174457*/ OPC_MoveParent, ++/*174458*/ OPC_MoveChild, 30, ++/*174460*/ OPC_CheckInteger, 1, ++/*174462*/ OPC_CheckType, MVT::i32, ++/*174464*/ OPC_MoveParent, ++/*174465*/ OPC_MoveChild, 31, ++/*174467*/ OPC_CheckInteger, 1, ++/*174469*/ OPC_CheckType, MVT::i32, ++/*174471*/ OPC_MoveParent, ++/*174472*/ OPC_MoveParent, ++/*174473*/ OPC_MoveChild1, ++/*174474*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*174477*/ OPC_Scope, 62|128,3/*446*/, /*->174926*/ // 2 children in Scope ++/*174480*/ OPC_CheckChild0Same, 1, ++/*174482*/ OPC_CheckChild1Same, 0, ++/*174484*/ OPC_MoveParent, ++/*174485*/ OPC_MoveParent, ++/*174486*/ OPC_MoveChild1, ++/*174487*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*174490*/ OPC_CheckChild0Integer, 7, ++/*174492*/ OPC_CheckChild0Type, MVT::i32, ++/*174494*/ OPC_CheckChild1Integer, 7, ++/*174496*/ OPC_CheckChild1Type, MVT::i32, ++/*174498*/ OPC_CheckChild2Integer, 7, ++/*174500*/ OPC_CheckChild2Type, MVT::i32, ++/*174502*/ OPC_CheckChild3Integer, 7, ++/*174504*/ OPC_CheckChild3Type, MVT::i32, ++/*174506*/ OPC_CheckChild4Integer, 7, ++/*174508*/ OPC_CheckChild4Type, MVT::i32, ++/*174510*/ OPC_MoveChild5, ++/*174511*/ OPC_CheckInteger, 7, ++/*174513*/ OPC_CheckType, MVT::i32, ++/*174515*/ OPC_MoveParent, ++/*174516*/ OPC_MoveChild6, ++/*174517*/ OPC_CheckInteger, 7, ++/*174519*/ OPC_CheckType, MVT::i32, ++/*174521*/ OPC_MoveParent, ++/*174522*/ OPC_MoveChild7, ++/*174523*/ OPC_CheckInteger, 7, ++/*174525*/ OPC_CheckType, MVT::i32, ++/*174527*/ OPC_MoveParent, ++/*174528*/ OPC_MoveChild, 8, ++/*174530*/ OPC_CheckInteger, 7, ++/*174532*/ OPC_CheckType, MVT::i32, ++/*174534*/ OPC_MoveParent, ++/*174535*/ OPC_MoveChild, 9, ++/*174537*/ OPC_CheckInteger, 7, ++/*174539*/ OPC_CheckType, MVT::i32, ++/*174541*/ OPC_MoveParent, ++/*174542*/ OPC_MoveChild, 10, ++/*174544*/ OPC_CheckInteger, 7, ++/*174546*/ OPC_CheckType, MVT::i32, ++/*174548*/ OPC_MoveParent, ++/*174549*/ OPC_MoveChild, 11, ++/*174551*/ OPC_CheckInteger, 7, ++/*174553*/ OPC_CheckType, MVT::i32, ++/*174555*/ OPC_MoveParent, ++/*174556*/ OPC_MoveChild, 12, ++/*174558*/ OPC_CheckInteger, 7, ++/*174560*/ OPC_CheckType, MVT::i32, ++/*174562*/ OPC_MoveParent, ++/*174563*/ OPC_MoveChild, 13, ++/*174565*/ OPC_CheckInteger, 7, ++/*174567*/ OPC_CheckType, MVT::i32, ++/*174569*/ OPC_MoveParent, ++/*174570*/ OPC_MoveChild, 14, ++/*174572*/ OPC_CheckInteger, 7, ++/*174574*/ OPC_CheckType, MVT::i32, ++/*174576*/ OPC_MoveParent, ++/*174577*/ OPC_MoveChild, 15, ++/*174579*/ OPC_CheckInteger, 7, ++/*174581*/ OPC_CheckType, MVT::i32, ++/*174583*/ OPC_MoveParent, ++/*174584*/ OPC_MoveChild, 16, ++/*174586*/ OPC_CheckInteger, 7, ++/*174588*/ OPC_CheckType, MVT::i32, ++/*174590*/ OPC_MoveParent, ++/*174591*/ OPC_MoveChild, 17, ++/*174593*/ OPC_CheckInteger, 7, ++/*174595*/ OPC_CheckType, MVT::i32, ++/*174597*/ OPC_MoveParent, ++/*174598*/ OPC_MoveChild, 18, ++/*174600*/ OPC_CheckInteger, 7, ++/*174602*/ OPC_CheckType, MVT::i32, ++/*174604*/ OPC_MoveParent, ++/*174605*/ OPC_MoveChild, 19, ++/*174607*/ OPC_CheckInteger, 7, ++/*174609*/ OPC_CheckType, MVT::i32, ++/*174611*/ OPC_MoveParent, ++/*174612*/ OPC_MoveChild, 20, ++/*174614*/ OPC_CheckInteger, 7, ++/*174616*/ OPC_CheckType, MVT::i32, ++/*174618*/ OPC_MoveParent, ++/*174619*/ OPC_MoveChild, 21, ++/*174621*/ OPC_CheckInteger, 7, ++/*174623*/ OPC_CheckType, MVT::i32, ++/*174625*/ OPC_MoveParent, ++/*174626*/ OPC_MoveChild, 22, ++/*174628*/ OPC_CheckInteger, 7, ++/*174630*/ OPC_CheckType, MVT::i32, ++/*174632*/ OPC_MoveParent, ++/*174633*/ OPC_MoveChild, 23, ++/*174635*/ OPC_CheckInteger, 7, ++/*174637*/ OPC_CheckType, MVT::i32, ++/*174639*/ OPC_MoveParent, ++/*174640*/ OPC_MoveChild, 24, ++/*174642*/ OPC_CheckInteger, 7, ++/*174644*/ OPC_CheckType, MVT::i32, ++/*174646*/ OPC_MoveParent, ++/*174647*/ OPC_MoveChild, 25, ++/*174649*/ OPC_CheckInteger, 7, ++/*174651*/ OPC_CheckType, MVT::i32, ++/*174653*/ OPC_MoveParent, ++/*174654*/ OPC_MoveChild, 26, ++/*174656*/ OPC_CheckInteger, 7, ++/*174658*/ OPC_CheckType, MVT::i32, ++/*174660*/ OPC_MoveParent, ++/*174661*/ OPC_MoveChild, 27, ++/*174663*/ OPC_CheckInteger, 7, ++/*174665*/ OPC_CheckType, MVT::i32, ++/*174667*/ OPC_MoveParent, ++/*174668*/ OPC_MoveChild, 28, ++/*174670*/ OPC_CheckInteger, 7, ++/*174672*/ OPC_CheckType, MVT::i32, ++/*174674*/ OPC_MoveParent, ++/*174675*/ OPC_MoveChild, 29, ++/*174677*/ OPC_CheckInteger, 7, ++/*174679*/ OPC_CheckType, MVT::i32, ++/*174681*/ OPC_MoveParent, ++/*174682*/ OPC_MoveChild, 30, ++/*174684*/ OPC_CheckInteger, 7, ++/*174686*/ OPC_CheckType, MVT::i32, ++/*174688*/ OPC_MoveParent, ++/*174689*/ OPC_MoveChild, 31, ++/*174691*/ OPC_CheckInteger, 7, ++/*174693*/ OPC_CheckType, MVT::i32, ++/*174695*/ OPC_MoveParent, ++/*174696*/ OPC_CheckType, MVT::v32i8, ++/*174698*/ OPC_MoveParent, ++/*174699*/ OPC_MoveParent, ++/*174700*/ OPC_MoveParent, ++/*174701*/ OPC_MoveChild1, ++/*174702*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*174705*/ OPC_CheckChild0Integer, 1, ++/*174707*/ OPC_CheckChild0Type, MVT::i32, ++/*174709*/ OPC_CheckChild1Integer, 1, ++/*174711*/ OPC_CheckChild1Type, MVT::i32, ++/*174713*/ OPC_CheckChild2Integer, 1, ++/*174715*/ OPC_CheckChild2Type, MVT::i32, ++/*174717*/ OPC_CheckChild3Integer, 1, ++/*174719*/ OPC_CheckChild3Type, MVT::i32, ++/*174721*/ OPC_CheckChild4Integer, 1, ++/*174723*/ OPC_CheckChild4Type, MVT::i32, ++/*174725*/ OPC_MoveChild5, ++/*174726*/ OPC_CheckInteger, 1, ++/*174728*/ OPC_CheckType, MVT::i32, ++/*174730*/ OPC_MoveParent, ++/*174731*/ OPC_MoveChild6, ++/*174732*/ OPC_CheckInteger, 1, ++/*174734*/ OPC_CheckType, MVT::i32, ++/*174736*/ OPC_MoveParent, ++/*174737*/ OPC_MoveChild7, ++/*174738*/ OPC_CheckInteger, 1, ++/*174740*/ OPC_CheckType, MVT::i32, ++/*174742*/ OPC_MoveParent, ++/*174743*/ OPC_MoveChild, 8, ++/*174745*/ OPC_CheckInteger, 1, ++/*174747*/ OPC_CheckType, MVT::i32, ++/*174749*/ OPC_MoveParent, ++/*174750*/ OPC_MoveChild, 9, ++/*174752*/ OPC_CheckInteger, 1, ++/*174754*/ OPC_CheckType, MVT::i32, ++/*174756*/ OPC_MoveParent, ++/*174757*/ OPC_MoveChild, 10, ++/*174759*/ OPC_CheckInteger, 1, ++/*174761*/ OPC_CheckType, MVT::i32, ++/*174763*/ OPC_MoveParent, ++/*174764*/ OPC_MoveChild, 11, ++/*174766*/ OPC_CheckInteger, 1, ++/*174768*/ OPC_CheckType, MVT::i32, ++/*174770*/ OPC_MoveParent, ++/*174771*/ OPC_MoveChild, 12, ++/*174773*/ OPC_CheckInteger, 1, ++/*174775*/ OPC_CheckType, MVT::i32, ++/*174777*/ OPC_MoveParent, ++/*174778*/ OPC_MoveChild, 13, ++/*174780*/ OPC_CheckInteger, 1, ++/*174782*/ OPC_CheckType, MVT::i32, ++/*174784*/ OPC_MoveParent, ++/*174785*/ OPC_MoveChild, 14, ++/*174787*/ OPC_CheckInteger, 1, ++/*174789*/ OPC_CheckType, MVT::i32, ++/*174791*/ OPC_MoveParent, ++/*174792*/ OPC_MoveChild, 15, ++/*174794*/ OPC_CheckInteger, 1, ++/*174796*/ OPC_CheckType, MVT::i32, ++/*174798*/ OPC_MoveParent, ++/*174799*/ OPC_MoveChild, 16, ++/*174801*/ OPC_CheckInteger, 1, ++/*174803*/ OPC_CheckType, MVT::i32, ++/*174805*/ OPC_MoveParent, ++/*174806*/ OPC_MoveChild, 17, ++/*174808*/ OPC_CheckInteger, 1, ++/*174810*/ OPC_CheckType, MVT::i32, ++/*174812*/ OPC_MoveParent, ++/*174813*/ OPC_MoveChild, 18, ++/*174815*/ OPC_CheckInteger, 1, ++/*174817*/ OPC_CheckType, MVT::i32, ++/*174819*/ OPC_MoveParent, ++/*174820*/ OPC_MoveChild, 19, ++/*174822*/ OPC_CheckInteger, 1, ++/*174824*/ OPC_CheckType, MVT::i32, ++/*174826*/ OPC_MoveParent, ++/*174827*/ OPC_MoveChild, 20, ++/*174829*/ OPC_CheckInteger, 1, ++/*174831*/ OPC_CheckType, MVT::i32, ++/*174833*/ OPC_MoveParent, ++/*174834*/ OPC_MoveChild, 21, ++/*174836*/ OPC_CheckInteger, 1, ++/*174838*/ OPC_CheckType, MVT::i32, ++/*174840*/ OPC_MoveParent, ++/*174841*/ OPC_MoveChild, 22, ++/*174843*/ OPC_CheckInteger, 1, ++/*174845*/ OPC_CheckType, MVT::i32, ++/*174847*/ OPC_MoveParent, ++/*174848*/ OPC_MoveChild, 23, ++/*174850*/ OPC_CheckInteger, 1, ++/*174852*/ OPC_CheckType, MVT::i32, ++/*174854*/ OPC_MoveParent, ++/*174855*/ OPC_MoveChild, 24, ++/*174857*/ OPC_CheckInteger, 1, ++/*174859*/ OPC_CheckType, MVT::i32, ++/*174861*/ OPC_MoveParent, ++/*174862*/ OPC_MoveChild, 25, ++/*174864*/ OPC_CheckInteger, 1, ++/*174866*/ OPC_CheckType, MVT::i32, ++/*174868*/ OPC_MoveParent, ++/*174869*/ OPC_MoveChild, 26, ++/*174871*/ OPC_CheckInteger, 1, ++/*174873*/ OPC_CheckType, MVT::i32, ++/*174875*/ OPC_MoveParent, ++/*174876*/ OPC_MoveChild, 27, ++/*174878*/ OPC_CheckInteger, 1, ++/*174880*/ OPC_CheckType, MVT::i32, ++/*174882*/ OPC_MoveParent, ++/*174883*/ OPC_MoveChild, 28, ++/*174885*/ OPC_CheckInteger, 1, ++/*174887*/ OPC_CheckType, MVT::i32, ++/*174889*/ OPC_MoveParent, ++/*174890*/ OPC_MoveChild, 29, ++/*174892*/ OPC_CheckInteger, 1, ++/*174894*/ OPC_CheckType, MVT::i32, ++/*174896*/ OPC_MoveParent, ++/*174897*/ OPC_MoveChild, 30, ++/*174899*/ OPC_CheckInteger, 1, ++/*174901*/ OPC_CheckType, MVT::i32, ++/*174903*/ OPC_MoveParent, ++/*174904*/ OPC_MoveChild, 31, ++/*174906*/ OPC_CheckInteger, 1, ++/*174908*/ OPC_CheckType, MVT::i32, ++/*174910*/ OPC_MoveParent, ++/*174911*/ OPC_CheckType, MVT::v32i8, ++/*174913*/ OPC_MoveParent, ++/*174914*/ OPC_CheckType, MVT::v32i8, ++/*174916*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*174918*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a)), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*174926*/ /*Scope*/ 62|128,3/*446*/, /*->175374*/ ++/*174928*/ OPC_CheckChild0Same, 0, ++/*174930*/ OPC_CheckChild1Same, 1, ++/*174932*/ OPC_MoveParent, ++/*174933*/ OPC_MoveParent, ++/*174934*/ OPC_MoveChild1, ++/*174935*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*174938*/ OPC_CheckChild0Integer, 7, ++/*174940*/ OPC_CheckChild0Type, MVT::i32, ++/*174942*/ OPC_CheckChild1Integer, 7, ++/*174944*/ OPC_CheckChild1Type, MVT::i32, ++/*174946*/ OPC_CheckChild2Integer, 7, ++/*174948*/ OPC_CheckChild2Type, MVT::i32, ++/*174950*/ OPC_CheckChild3Integer, 7, ++/*174952*/ OPC_CheckChild3Type, MVT::i32, ++/*174954*/ OPC_CheckChild4Integer, 7, ++/*174956*/ OPC_CheckChild4Type, MVT::i32, ++/*174958*/ OPC_MoveChild5, ++/*174959*/ OPC_CheckInteger, 7, ++/*174961*/ OPC_CheckType, MVT::i32, ++/*174963*/ OPC_MoveParent, ++/*174964*/ OPC_MoveChild6, ++/*174965*/ OPC_CheckInteger, 7, ++/*174967*/ OPC_CheckType, MVT::i32, ++/*174969*/ OPC_MoveParent, ++/*174970*/ OPC_MoveChild7, ++/*174971*/ OPC_CheckInteger, 7, ++/*174973*/ OPC_CheckType, MVT::i32, ++/*174975*/ OPC_MoveParent, ++/*174976*/ OPC_MoveChild, 8, ++/*174978*/ OPC_CheckInteger, 7, ++/*174980*/ OPC_CheckType, MVT::i32, ++/*174982*/ OPC_MoveParent, ++/*174983*/ OPC_MoveChild, 9, ++/*174985*/ OPC_CheckInteger, 7, ++/*174987*/ OPC_CheckType, MVT::i32, ++/*174989*/ OPC_MoveParent, ++/*174990*/ OPC_MoveChild, 10, ++/*174992*/ OPC_CheckInteger, 7, ++/*174994*/ OPC_CheckType, MVT::i32, ++/*174996*/ OPC_MoveParent, ++/*174997*/ OPC_MoveChild, 11, ++/*174999*/ OPC_CheckInteger, 7, ++/*175001*/ OPC_CheckType, MVT::i32, ++/*175003*/ OPC_MoveParent, ++/*175004*/ OPC_MoveChild, 12, ++/*175006*/ OPC_CheckInteger, 7, ++/*175008*/ OPC_CheckType, MVT::i32, ++/*175010*/ OPC_MoveParent, ++/*175011*/ OPC_MoveChild, 13, ++/*175013*/ OPC_CheckInteger, 7, ++/*175015*/ OPC_CheckType, MVT::i32, ++/*175017*/ OPC_MoveParent, ++/*175018*/ OPC_MoveChild, 14, ++/*175020*/ OPC_CheckInteger, 7, ++/*175022*/ OPC_CheckType, MVT::i32, ++/*175024*/ OPC_MoveParent, ++/*175025*/ OPC_MoveChild, 15, ++/*175027*/ OPC_CheckInteger, 7, ++/*175029*/ OPC_CheckType, MVT::i32, ++/*175031*/ OPC_MoveParent, ++/*175032*/ OPC_MoveChild, 16, ++/*175034*/ OPC_CheckInteger, 7, ++/*175036*/ OPC_CheckType, MVT::i32, ++/*175038*/ OPC_MoveParent, ++/*175039*/ OPC_MoveChild, 17, ++/*175041*/ OPC_CheckInteger, 7, ++/*175043*/ OPC_CheckType, MVT::i32, ++/*175045*/ OPC_MoveParent, ++/*175046*/ OPC_MoveChild, 18, ++/*175048*/ OPC_CheckInteger, 7, ++/*175050*/ OPC_CheckType, MVT::i32, ++/*175052*/ OPC_MoveParent, ++/*175053*/ OPC_MoveChild, 19, ++/*175055*/ OPC_CheckInteger, 7, ++/*175057*/ OPC_CheckType, MVT::i32, ++/*175059*/ OPC_MoveParent, ++/*175060*/ OPC_MoveChild, 20, ++/*175062*/ OPC_CheckInteger, 7, ++/*175064*/ OPC_CheckType, MVT::i32, ++/*175066*/ OPC_MoveParent, ++/*175067*/ OPC_MoveChild, 21, ++/*175069*/ OPC_CheckInteger, 7, ++/*175071*/ OPC_CheckType, MVT::i32, ++/*175073*/ OPC_MoveParent, ++/*175074*/ OPC_MoveChild, 22, ++/*175076*/ OPC_CheckInteger, 7, ++/*175078*/ OPC_CheckType, MVT::i32, ++/*175080*/ OPC_MoveParent, ++/*175081*/ OPC_MoveChild, 23, ++/*175083*/ OPC_CheckInteger, 7, ++/*175085*/ OPC_CheckType, MVT::i32, ++/*175087*/ OPC_MoveParent, ++/*175088*/ OPC_MoveChild, 24, ++/*175090*/ OPC_CheckInteger, 7, ++/*175092*/ OPC_CheckType, MVT::i32, ++/*175094*/ OPC_MoveParent, ++/*175095*/ OPC_MoveChild, 25, ++/*175097*/ OPC_CheckInteger, 7, ++/*175099*/ OPC_CheckType, MVT::i32, ++/*175101*/ OPC_MoveParent, ++/*175102*/ OPC_MoveChild, 26, ++/*175104*/ OPC_CheckInteger, 7, ++/*175106*/ OPC_CheckType, MVT::i32, ++/*175108*/ OPC_MoveParent, ++/*175109*/ OPC_MoveChild, 27, ++/*175111*/ OPC_CheckInteger, 7, ++/*175113*/ OPC_CheckType, MVT::i32, ++/*175115*/ OPC_MoveParent, ++/*175116*/ OPC_MoveChild, 28, ++/*175118*/ OPC_CheckInteger, 7, ++/*175120*/ OPC_CheckType, MVT::i32, ++/*175122*/ OPC_MoveParent, ++/*175123*/ OPC_MoveChild, 29, ++/*175125*/ OPC_CheckInteger, 7, ++/*175127*/ OPC_CheckType, MVT::i32, ++/*175129*/ OPC_MoveParent, ++/*175130*/ OPC_MoveChild, 30, ++/*175132*/ OPC_CheckInteger, 7, ++/*175134*/ OPC_CheckType, MVT::i32, ++/*175136*/ OPC_MoveParent, ++/*175137*/ OPC_MoveChild, 31, ++/*175139*/ OPC_CheckInteger, 7, ++/*175141*/ OPC_CheckType, MVT::i32, ++/*175143*/ OPC_MoveParent, ++/*175144*/ OPC_CheckType, MVT::v32i8, ++/*175146*/ OPC_MoveParent, ++/*175147*/ OPC_MoveParent, ++/*175148*/ OPC_MoveParent, ++/*175149*/ OPC_MoveChild1, ++/*175150*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*175153*/ OPC_CheckChild0Integer, 1, ++/*175155*/ OPC_CheckChild0Type, MVT::i32, ++/*175157*/ OPC_CheckChild1Integer, 1, ++/*175159*/ OPC_CheckChild1Type, MVT::i32, ++/*175161*/ OPC_CheckChild2Integer, 1, ++/*175163*/ OPC_CheckChild2Type, MVT::i32, ++/*175165*/ OPC_CheckChild3Integer, 1, ++/*175167*/ OPC_CheckChild3Type, MVT::i32, ++/*175169*/ OPC_CheckChild4Integer, 1, ++/*175171*/ OPC_CheckChild4Type, MVT::i32, ++/*175173*/ OPC_MoveChild5, ++/*175174*/ OPC_CheckInteger, 1, ++/*175176*/ OPC_CheckType, MVT::i32, ++/*175178*/ OPC_MoveParent, ++/*175179*/ OPC_MoveChild6, ++/*175180*/ OPC_CheckInteger, 1, ++/*175182*/ OPC_CheckType, MVT::i32, ++/*175184*/ OPC_MoveParent, ++/*175185*/ OPC_MoveChild7, ++/*175186*/ OPC_CheckInteger, 1, ++/*175188*/ OPC_CheckType, MVT::i32, ++/*175190*/ OPC_MoveParent, ++/*175191*/ OPC_MoveChild, 8, ++/*175193*/ OPC_CheckInteger, 1, ++/*175195*/ OPC_CheckType, MVT::i32, ++/*175197*/ OPC_MoveParent, ++/*175198*/ OPC_MoveChild, 9, ++/*175200*/ OPC_CheckInteger, 1, ++/*175202*/ OPC_CheckType, MVT::i32, ++/*175204*/ OPC_MoveParent, ++/*175205*/ OPC_MoveChild, 10, ++/*175207*/ OPC_CheckInteger, 1, ++/*175209*/ OPC_CheckType, MVT::i32, ++/*175211*/ OPC_MoveParent, ++/*175212*/ OPC_MoveChild, 11, ++/*175214*/ OPC_CheckInteger, 1, ++/*175216*/ OPC_CheckType, MVT::i32, ++/*175218*/ OPC_MoveParent, ++/*175219*/ OPC_MoveChild, 12, ++/*175221*/ OPC_CheckInteger, 1, ++/*175223*/ OPC_CheckType, MVT::i32, ++/*175225*/ OPC_MoveParent, ++/*175226*/ OPC_MoveChild, 13, ++/*175228*/ OPC_CheckInteger, 1, ++/*175230*/ OPC_CheckType, MVT::i32, ++/*175232*/ OPC_MoveParent, ++/*175233*/ OPC_MoveChild, 14, ++/*175235*/ OPC_CheckInteger, 1, ++/*175237*/ OPC_CheckType, MVT::i32, ++/*175239*/ OPC_MoveParent, ++/*175240*/ OPC_MoveChild, 15, ++/*175242*/ OPC_CheckInteger, 1, ++/*175244*/ OPC_CheckType, MVT::i32, ++/*175246*/ OPC_MoveParent, ++/*175247*/ OPC_MoveChild, 16, ++/*175249*/ OPC_CheckInteger, 1, ++/*175251*/ OPC_CheckType, MVT::i32, ++/*175253*/ OPC_MoveParent, ++/*175254*/ OPC_MoveChild, 17, ++/*175256*/ OPC_CheckInteger, 1, ++/*175258*/ OPC_CheckType, MVT::i32, ++/*175260*/ OPC_MoveParent, ++/*175261*/ OPC_MoveChild, 18, ++/*175263*/ OPC_CheckInteger, 1, ++/*175265*/ OPC_CheckType, MVT::i32, ++/*175267*/ OPC_MoveParent, ++/*175268*/ OPC_MoveChild, 19, ++/*175270*/ OPC_CheckInteger, 1, ++/*175272*/ OPC_CheckType, MVT::i32, ++/*175274*/ OPC_MoveParent, ++/*175275*/ OPC_MoveChild, 20, ++/*175277*/ OPC_CheckInteger, 1, ++/*175279*/ OPC_CheckType, MVT::i32, ++/*175281*/ OPC_MoveParent, ++/*175282*/ OPC_MoveChild, 21, ++/*175284*/ OPC_CheckInteger, 1, ++/*175286*/ OPC_CheckType, MVT::i32, ++/*175288*/ OPC_MoveParent, ++/*175289*/ OPC_MoveChild, 22, ++/*175291*/ OPC_CheckInteger, 1, ++/*175293*/ OPC_CheckType, MVT::i32, ++/*175295*/ OPC_MoveParent, ++/*175296*/ OPC_MoveChild, 23, ++/*175298*/ OPC_CheckInteger, 1, ++/*175300*/ OPC_CheckType, MVT::i32, ++/*175302*/ OPC_MoveParent, ++/*175303*/ OPC_MoveChild, 24, ++/*175305*/ OPC_CheckInteger, 1, ++/*175307*/ OPC_CheckType, MVT::i32, ++/*175309*/ OPC_MoveParent, ++/*175310*/ OPC_MoveChild, 25, ++/*175312*/ OPC_CheckInteger, 1, ++/*175314*/ OPC_CheckType, MVT::i32, ++/*175316*/ OPC_MoveParent, ++/*175317*/ OPC_MoveChild, 26, ++/*175319*/ OPC_CheckInteger, 1, ++/*175321*/ OPC_CheckType, MVT::i32, ++/*175323*/ OPC_MoveParent, ++/*175324*/ OPC_MoveChild, 27, ++/*175326*/ OPC_CheckInteger, 1, ++/*175328*/ OPC_CheckType, MVT::i32, ++/*175330*/ OPC_MoveParent, ++/*175331*/ OPC_MoveChild, 28, ++/*175333*/ OPC_CheckInteger, 1, ++/*175335*/ OPC_CheckType, MVT::i32, ++/*175337*/ OPC_MoveParent, ++/*175338*/ OPC_MoveChild, 29, ++/*175340*/ OPC_CheckInteger, 1, ++/*175342*/ OPC_CheckType, MVT::i32, ++/*175344*/ OPC_MoveParent, ++/*175345*/ OPC_MoveChild, 30, ++/*175347*/ OPC_CheckInteger, 1, ++/*175349*/ OPC_CheckType, MVT::i32, ++/*175351*/ OPC_MoveParent, ++/*175352*/ OPC_MoveChild, 31, ++/*175354*/ OPC_CheckInteger, 1, ++/*175356*/ OPC_CheckType, MVT::i32, ++/*175358*/ OPC_MoveParent, ++/*175359*/ OPC_CheckType, MVT::v32i8, ++/*175361*/ OPC_MoveParent, ++/*175362*/ OPC_CheckType, MVT::v32i8, ++/*175364*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*175366*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a)), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*175374*/ 0, /*End of Scope*/ ++/*175375*/ 0, /*End of Scope*/ ++/*175376*/ /*Scope*/ 48|128,4/*560*/, /*->175938*/ ++/*175378*/ OPC_MoveParent, ++/*175379*/ OPC_MoveChild1, ++/*175380*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*175383*/ OPC_RecordChild0, // #0 = $a ++/*175384*/ OPC_RecordChild1, // #1 = $b ++/*175385*/ OPC_MoveParent, ++/*175386*/ OPC_MoveParent, ++/*175387*/ OPC_MoveChild1, ++/*175388*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*175391*/ OPC_MoveChild0, ++/*175392*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*175395*/ OPC_MoveChild0, ++/*175396*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*175399*/ OPC_CheckChild0Integer, 1, ++/*175401*/ OPC_CheckChild0Type, MVT::i32, ++/*175403*/ OPC_CheckChild1Integer, 1, ++/*175405*/ OPC_CheckChild1Type, MVT::i32, ++/*175407*/ OPC_CheckChild2Integer, 1, ++/*175409*/ OPC_CheckChild2Type, MVT::i32, ++/*175411*/ OPC_CheckChild3Integer, 1, ++/*175413*/ OPC_CheckChild3Type, MVT::i32, ++/*175415*/ OPC_CheckChild4Integer, 1, ++/*175417*/ OPC_CheckChild4Type, MVT::i32, ++/*175419*/ OPC_MoveChild5, ++/*175420*/ OPC_CheckInteger, 1, ++/*175422*/ OPC_CheckType, MVT::i32, ++/*175424*/ OPC_MoveParent, ++/*175425*/ OPC_MoveChild6, ++/*175426*/ OPC_CheckInteger, 1, ++/*175428*/ OPC_CheckType, MVT::i32, ++/*175430*/ OPC_MoveParent, ++/*175431*/ OPC_MoveChild7, ++/*175432*/ OPC_CheckInteger, 1, ++/*175434*/ OPC_CheckType, MVT::i32, ++/*175436*/ OPC_MoveParent, ++/*175437*/ OPC_MoveChild, 8, ++/*175439*/ OPC_CheckInteger, 1, ++/*175441*/ OPC_CheckType, MVT::i32, ++/*175443*/ OPC_MoveParent, ++/*175444*/ OPC_MoveChild, 9, ++/*175446*/ OPC_CheckInteger, 1, ++/*175448*/ OPC_CheckType, MVT::i32, ++/*175450*/ OPC_MoveParent, ++/*175451*/ OPC_MoveChild, 10, ++/*175453*/ OPC_CheckInteger, 1, ++/*175455*/ OPC_CheckType, MVT::i32, ++/*175457*/ OPC_MoveParent, ++/*175458*/ OPC_MoveChild, 11, ++/*175460*/ OPC_CheckInteger, 1, ++/*175462*/ OPC_CheckType, MVT::i32, ++/*175464*/ OPC_MoveParent, ++/*175465*/ OPC_MoveChild, 12, ++/*175467*/ OPC_CheckInteger, 1, ++/*175469*/ OPC_CheckType, MVT::i32, ++/*175471*/ OPC_MoveParent, ++/*175472*/ OPC_MoveChild, 13, ++/*175474*/ OPC_CheckInteger, 1, ++/*175476*/ OPC_CheckType, MVT::i32, ++/*175478*/ OPC_MoveParent, ++/*175479*/ OPC_MoveChild, 14, ++/*175481*/ OPC_CheckInteger, 1, ++/*175483*/ OPC_CheckType, MVT::i32, ++/*175485*/ OPC_MoveParent, ++/*175486*/ OPC_MoveChild, 15, ++/*175488*/ OPC_CheckInteger, 1, ++/*175490*/ OPC_CheckType, MVT::i32, ++/*175492*/ OPC_MoveParent, ++/*175493*/ OPC_MoveParent, ++/*175494*/ OPC_MoveChild1, ++/*175495*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*175498*/ OPC_CheckChild0Same, 0, ++/*175500*/ OPC_CheckChild1Same, 1, ++/*175502*/ OPC_MoveParent, ++/*175503*/ OPC_MoveParent, ++/*175504*/ OPC_MoveChild1, ++/*175505*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*175508*/ OPC_Scope, 84|128,1/*212*/, /*->175723*/ // 2 children in Scope ++/*175511*/ OPC_CheckChild0Integer, 7, ++/*175513*/ OPC_CheckChild0Type, MVT::i32, ++/*175515*/ OPC_CheckChild1Integer, 7, ++/*175517*/ OPC_CheckChild1Type, MVT::i32, ++/*175519*/ OPC_CheckChild2Integer, 7, ++/*175521*/ OPC_CheckChild2Type, MVT::i32, ++/*175523*/ OPC_CheckChild3Integer, 7, ++/*175525*/ OPC_CheckChild3Type, MVT::i32, ++/*175527*/ OPC_CheckChild4Integer, 7, ++/*175529*/ OPC_CheckChild4Type, MVT::i32, ++/*175531*/ OPC_MoveChild5, ++/*175532*/ OPC_CheckInteger, 7, ++/*175534*/ OPC_CheckType, MVT::i32, ++/*175536*/ OPC_MoveParent, ++/*175537*/ OPC_MoveChild6, ++/*175538*/ OPC_CheckInteger, 7, ++/*175540*/ OPC_CheckType, MVT::i32, ++/*175542*/ OPC_MoveParent, ++/*175543*/ OPC_MoveChild7, ++/*175544*/ OPC_CheckInteger, 7, ++/*175546*/ OPC_CheckType, MVT::i32, ++/*175548*/ OPC_MoveParent, ++/*175549*/ OPC_MoveChild, 8, ++/*175551*/ OPC_CheckInteger, 7, ++/*175553*/ OPC_CheckType, MVT::i32, ++/*175555*/ OPC_MoveParent, ++/*175556*/ OPC_MoveChild, 9, ++/*175558*/ OPC_CheckInteger, 7, ++/*175560*/ OPC_CheckType, MVT::i32, ++/*175562*/ OPC_MoveParent, ++/*175563*/ OPC_MoveChild, 10, ++/*175565*/ OPC_CheckInteger, 7, ++/*175567*/ OPC_CheckType, MVT::i32, ++/*175569*/ OPC_MoveParent, ++/*175570*/ OPC_MoveChild, 11, ++/*175572*/ OPC_CheckInteger, 7, ++/*175574*/ OPC_CheckType, MVT::i32, ++/*175576*/ OPC_MoveParent, ++/*175577*/ OPC_MoveChild, 12, ++/*175579*/ OPC_CheckInteger, 7, ++/*175581*/ OPC_CheckType, MVT::i32, ++/*175583*/ OPC_MoveParent, ++/*175584*/ OPC_MoveChild, 13, ++/*175586*/ OPC_CheckInteger, 7, ++/*175588*/ OPC_CheckType, MVT::i32, ++/*175590*/ OPC_MoveParent, ++/*175591*/ OPC_MoveChild, 14, ++/*175593*/ OPC_CheckInteger, 7, ++/*175595*/ OPC_CheckType, MVT::i32, ++/*175597*/ OPC_MoveParent, ++/*175598*/ OPC_MoveChild, 15, ++/*175600*/ OPC_CheckInteger, 7, ++/*175602*/ OPC_CheckType, MVT::i32, ++/*175604*/ OPC_MoveParent, ++/*175605*/ OPC_CheckType, MVT::v16i8, ++/*175607*/ OPC_MoveParent, ++/*175608*/ OPC_MoveParent, ++/*175609*/ OPC_MoveParent, ++/*175610*/ OPC_MoveChild1, ++/*175611*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*175614*/ OPC_CheckChild0Integer, 1, ++/*175616*/ OPC_CheckChild0Type, MVT::i32, ++/*175618*/ OPC_CheckChild1Integer, 1, ++/*175620*/ OPC_CheckChild1Type, MVT::i32, ++/*175622*/ OPC_CheckChild2Integer, 1, ++/*175624*/ OPC_CheckChild2Type, MVT::i32, ++/*175626*/ OPC_CheckChild3Integer, 1, ++/*175628*/ OPC_CheckChild3Type, MVT::i32, ++/*175630*/ OPC_CheckChild4Integer, 1, ++/*175632*/ OPC_CheckChild4Type, MVT::i32, ++/*175634*/ OPC_MoveChild5, ++/*175635*/ OPC_CheckInteger, 1, ++/*175637*/ OPC_CheckType, MVT::i32, ++/*175639*/ OPC_MoveParent, ++/*175640*/ OPC_MoveChild6, ++/*175641*/ OPC_CheckInteger, 1, ++/*175643*/ OPC_CheckType, MVT::i32, ++/*175645*/ OPC_MoveParent, ++/*175646*/ OPC_MoveChild7, ++/*175647*/ OPC_CheckInteger, 1, ++/*175649*/ OPC_CheckType, MVT::i32, ++/*175651*/ OPC_MoveParent, ++/*175652*/ OPC_MoveChild, 8, ++/*175654*/ OPC_CheckInteger, 1, ++/*175656*/ OPC_CheckType, MVT::i32, ++/*175658*/ OPC_MoveParent, ++/*175659*/ OPC_MoveChild, 9, ++/*175661*/ OPC_CheckInteger, 1, ++/*175663*/ OPC_CheckType, MVT::i32, ++/*175665*/ OPC_MoveParent, ++/*175666*/ OPC_MoveChild, 10, ++/*175668*/ OPC_CheckInteger, 1, ++/*175670*/ OPC_CheckType, MVT::i32, ++/*175672*/ OPC_MoveParent, ++/*175673*/ OPC_MoveChild, 11, ++/*175675*/ OPC_CheckInteger, 1, ++/*175677*/ OPC_CheckType, MVT::i32, ++/*175679*/ OPC_MoveParent, ++/*175680*/ OPC_MoveChild, 12, ++/*175682*/ OPC_CheckInteger, 1, ++/*175684*/ OPC_CheckType, MVT::i32, ++/*175686*/ OPC_MoveParent, ++/*175687*/ OPC_MoveChild, 13, ++/*175689*/ OPC_CheckInteger, 1, ++/*175691*/ OPC_CheckType, MVT::i32, ++/*175693*/ OPC_MoveParent, ++/*175694*/ OPC_MoveChild, 14, ++/*175696*/ OPC_CheckInteger, 1, ++/*175698*/ OPC_CheckType, MVT::i32, ++/*175700*/ OPC_MoveParent, ++/*175701*/ OPC_MoveChild, 15, ++/*175703*/ OPC_CheckInteger, 1, ++/*175705*/ OPC_CheckType, MVT::i32, ++/*175707*/ OPC_MoveParent, ++/*175708*/ OPC_CheckType, MVT::v16i8, ++/*175710*/ OPC_MoveParent, ++/*175711*/ OPC_CheckType, MVT::v16i8, ++/*175713*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*175715*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b)), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*175723*/ /*Scope*/ 84|128,1/*212*/, /*->175937*/ ++/*175725*/ OPC_CheckChild0Integer, 15, ++/*175727*/ OPC_CheckChild0Type, MVT::i32, ++/*175729*/ OPC_CheckChild1Integer, 15, ++/*175731*/ OPC_CheckChild1Type, MVT::i32, ++/*175733*/ OPC_CheckChild2Integer, 15, ++/*175735*/ OPC_CheckChild2Type, MVT::i32, ++/*175737*/ OPC_CheckChild3Integer, 15, ++/*175739*/ OPC_CheckChild3Type, MVT::i32, ++/*175741*/ OPC_CheckChild4Integer, 15, ++/*175743*/ OPC_CheckChild4Type, MVT::i32, ++/*175745*/ OPC_MoveChild5, ++/*175746*/ OPC_CheckInteger, 15, ++/*175748*/ OPC_CheckType, MVT::i32, ++/*175750*/ OPC_MoveParent, ++/*175751*/ OPC_MoveChild6, ++/*175752*/ OPC_CheckInteger, 15, ++/*175754*/ OPC_CheckType, MVT::i32, ++/*175756*/ OPC_MoveParent, ++/*175757*/ OPC_MoveChild7, ++/*175758*/ OPC_CheckInteger, 15, ++/*175760*/ OPC_CheckType, MVT::i32, ++/*175762*/ OPC_MoveParent, ++/*175763*/ OPC_MoveChild, 8, ++/*175765*/ OPC_CheckInteger, 15, ++/*175767*/ OPC_CheckType, MVT::i32, ++/*175769*/ OPC_MoveParent, ++/*175770*/ OPC_MoveChild, 9, ++/*175772*/ OPC_CheckInteger, 15, ++/*175774*/ OPC_CheckType, MVT::i32, ++/*175776*/ OPC_MoveParent, ++/*175777*/ OPC_MoveChild, 10, ++/*175779*/ OPC_CheckInteger, 15, ++/*175781*/ OPC_CheckType, MVT::i32, ++/*175783*/ OPC_MoveParent, ++/*175784*/ OPC_MoveChild, 11, ++/*175786*/ OPC_CheckInteger, 15, ++/*175788*/ OPC_CheckType, MVT::i32, ++/*175790*/ OPC_MoveParent, ++/*175791*/ OPC_MoveChild, 12, ++/*175793*/ OPC_CheckInteger, 15, ++/*175795*/ OPC_CheckType, MVT::i32, ++/*175797*/ OPC_MoveParent, ++/*175798*/ OPC_MoveChild, 13, ++/*175800*/ OPC_CheckInteger, 15, ++/*175802*/ OPC_CheckType, MVT::i32, ++/*175804*/ OPC_MoveParent, ++/*175805*/ OPC_MoveChild, 14, ++/*175807*/ OPC_CheckInteger, 15, ++/*175809*/ OPC_CheckType, MVT::i32, ++/*175811*/ OPC_MoveParent, ++/*175812*/ OPC_MoveChild, 15, ++/*175814*/ OPC_CheckInteger, 15, ++/*175816*/ OPC_CheckType, MVT::i32, ++/*175818*/ OPC_MoveParent, ++/*175819*/ OPC_CheckType, MVT::v16i16, ++/*175821*/ OPC_MoveParent, ++/*175822*/ OPC_MoveParent, ++/*175823*/ OPC_MoveParent, ++/*175824*/ OPC_MoveChild1, ++/*175825*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*175828*/ OPC_CheckChild0Integer, 1, ++/*175830*/ OPC_CheckChild0Type, MVT::i32, ++/*175832*/ OPC_CheckChild1Integer, 1, ++/*175834*/ OPC_CheckChild1Type, MVT::i32, ++/*175836*/ OPC_CheckChild2Integer, 1, ++/*175838*/ OPC_CheckChild2Type, MVT::i32, ++/*175840*/ OPC_CheckChild3Integer, 1, ++/*175842*/ OPC_CheckChild3Type, MVT::i32, ++/*175844*/ OPC_CheckChild4Integer, 1, ++/*175846*/ OPC_CheckChild4Type, MVT::i32, ++/*175848*/ OPC_MoveChild5, ++/*175849*/ OPC_CheckInteger, 1, ++/*175851*/ OPC_CheckType, MVT::i32, ++/*175853*/ OPC_MoveParent, ++/*175854*/ OPC_MoveChild6, ++/*175855*/ OPC_CheckInteger, 1, ++/*175857*/ OPC_CheckType, MVT::i32, ++/*175859*/ OPC_MoveParent, ++/*175860*/ OPC_MoveChild7, ++/*175861*/ OPC_CheckInteger, 1, ++/*175863*/ OPC_CheckType, MVT::i32, ++/*175865*/ OPC_MoveParent, ++/*175866*/ OPC_MoveChild, 8, ++/*175868*/ OPC_CheckInteger, 1, ++/*175870*/ OPC_CheckType, MVT::i32, ++/*175872*/ OPC_MoveParent, ++/*175873*/ OPC_MoveChild, 9, ++/*175875*/ OPC_CheckInteger, 1, ++/*175877*/ OPC_CheckType, MVT::i32, ++/*175879*/ OPC_MoveParent, ++/*175880*/ OPC_MoveChild, 10, ++/*175882*/ OPC_CheckInteger, 1, ++/*175884*/ OPC_CheckType, MVT::i32, ++/*175886*/ OPC_MoveParent, ++/*175887*/ OPC_MoveChild, 11, ++/*175889*/ OPC_CheckInteger, 1, ++/*175891*/ OPC_CheckType, MVT::i32, ++/*175893*/ OPC_MoveParent, ++/*175894*/ OPC_MoveChild, 12, ++/*175896*/ OPC_CheckInteger, 1, ++/*175898*/ OPC_CheckType, MVT::i32, ++/*175900*/ OPC_MoveParent, ++/*175901*/ OPC_MoveChild, 13, ++/*175903*/ OPC_CheckInteger, 1, ++/*175905*/ OPC_CheckType, MVT::i32, ++/*175907*/ OPC_MoveParent, ++/*175908*/ OPC_MoveChild, 14, ++/*175910*/ OPC_CheckInteger, 1, ++/*175912*/ OPC_CheckType, MVT::i32, ++/*175914*/ OPC_MoveParent, ++/*175915*/ OPC_MoveChild, 15, ++/*175917*/ OPC_CheckInteger, 1, ++/*175919*/ OPC_CheckType, MVT::i32, ++/*175921*/ OPC_MoveParent, ++/*175922*/ OPC_CheckType, MVT::v16i16, ++/*175924*/ OPC_MoveParent, ++/*175925*/ OPC_CheckType, MVT::v16i16, ++/*175927*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*175929*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b)), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*175937*/ 0, /*End of Scope*/ ++/*175938*/ 0, /*End of Scope*/ ++/*175939*/ /*SwitchOpcode*/ 115|128,54|128,1/*23411*/, TARGET_VAL(ISD::ADD),// ->199355 ++/*175944*/ OPC_Scope, 78|128,30/*3918*/, /*->179865*/ // 4 children in Scope ++/*175947*/ OPC_MoveChild0, ++/*175948*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*175951*/ OPC_CheckChild0Integer, 1, ++/*175953*/ OPC_CheckChild0Type, MVT::i32, ++/*175955*/ OPC_CheckChild1Integer, 1, ++/*175957*/ OPC_CheckChild1Type, MVT::i32, ++/*175959*/ OPC_CheckChild2Integer, 1, ++/*175961*/ OPC_CheckChild2Type, MVT::i32, ++/*175963*/ OPC_CheckChild3Integer, 1, ++/*175965*/ OPC_CheckChild3Type, MVT::i32, ++/*175967*/ OPC_CheckChild4Integer, 1, ++/*175969*/ OPC_CheckChild4Type, MVT::i32, ++/*175971*/ OPC_MoveChild5, ++/*175972*/ OPC_CheckInteger, 1, ++/*175974*/ OPC_CheckType, MVT::i32, ++/*175976*/ OPC_MoveParent, ++/*175977*/ OPC_MoveChild6, ++/*175978*/ OPC_CheckInteger, 1, ++/*175980*/ OPC_CheckType, MVT::i32, ++/*175982*/ OPC_MoveParent, ++/*175983*/ OPC_MoveChild7, ++/*175984*/ OPC_CheckInteger, 1, ++/*175986*/ OPC_CheckType, MVT::i32, ++/*175988*/ OPC_MoveParent, ++/*175989*/ OPC_MoveChild, 8, ++/*175991*/ OPC_CheckInteger, 1, ++/*175993*/ OPC_CheckType, MVT::i32, ++/*175995*/ OPC_MoveParent, ++/*175996*/ OPC_MoveChild, 9, ++/*175998*/ OPC_CheckInteger, 1, ++/*176000*/ OPC_CheckType, MVT::i32, ++/*176002*/ OPC_MoveParent, ++/*176003*/ OPC_MoveChild, 10, ++/*176005*/ OPC_CheckInteger, 1, ++/*176007*/ OPC_CheckType, MVT::i32, ++/*176009*/ OPC_MoveParent, ++/*176010*/ OPC_MoveChild, 11, ++/*176012*/ OPC_CheckInteger, 1, ++/*176014*/ OPC_CheckType, MVT::i32, ++/*176016*/ OPC_MoveParent, ++/*176017*/ OPC_MoveChild, 12, ++/*176019*/ OPC_CheckInteger, 1, ++/*176021*/ OPC_CheckType, MVT::i32, ++/*176023*/ OPC_MoveParent, ++/*176024*/ OPC_MoveChild, 13, ++/*176026*/ OPC_CheckInteger, 1, ++/*176028*/ OPC_CheckType, MVT::i32, ++/*176030*/ OPC_MoveParent, ++/*176031*/ OPC_MoveChild, 14, ++/*176033*/ OPC_CheckInteger, 1, ++/*176035*/ OPC_CheckType, MVT::i32, ++/*176037*/ OPC_MoveParent, ++/*176038*/ OPC_MoveChild, 15, ++/*176040*/ OPC_CheckInteger, 1, ++/*176042*/ OPC_CheckType, MVT::i32, ++/*176044*/ OPC_MoveParent, ++/*176045*/ OPC_MoveParent, ++/*176046*/ OPC_RecordChild1, // #0 = $a ++/*176047*/ OPC_MoveParent, ++/*176048*/ OPC_RecordChild1, // #1 = $b ++/*176049*/ OPC_MoveParent, ++/*176050*/ OPC_MoveChild1, ++/*176051*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*176054*/ OPC_MoveChild0, ++/*176055*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*176058*/ OPC_Scope, 24|128,15/*1944*/, /*->178005*/ // 4 children in Scope ++/*176061*/ OPC_MoveChild0, ++/*176062*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*176065*/ OPC_Scope, 65|128,2/*321*/, /*->176389*/ // 6 children in Scope ++/*176068*/ OPC_MoveChild0, ++/*176069*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*176072*/ OPC_CheckChild0Integer, 1, ++/*176074*/ OPC_CheckChild0Type, MVT::i32, ++/*176076*/ OPC_CheckChild1Integer, 1, ++/*176078*/ OPC_CheckChild1Type, MVT::i32, ++/*176080*/ OPC_CheckChild2Integer, 1, ++/*176082*/ OPC_CheckChild2Type, MVT::i32, ++/*176084*/ OPC_CheckChild3Integer, 1, ++/*176086*/ OPC_CheckChild3Type, MVT::i32, ++/*176088*/ OPC_CheckChild4Integer, 1, ++/*176090*/ OPC_CheckChild4Type, MVT::i32, ++/*176092*/ OPC_MoveChild5, ++/*176093*/ OPC_CheckInteger, 1, ++/*176095*/ OPC_CheckType, MVT::i32, ++/*176097*/ OPC_MoveParent, ++/*176098*/ OPC_MoveChild6, ++/*176099*/ OPC_CheckInteger, 1, ++/*176101*/ OPC_CheckType, MVT::i32, ++/*176103*/ OPC_MoveParent, ++/*176104*/ OPC_MoveChild7, ++/*176105*/ OPC_CheckInteger, 1, ++/*176107*/ OPC_CheckType, MVT::i32, ++/*176109*/ OPC_MoveParent, ++/*176110*/ OPC_MoveChild, 8, ++/*176112*/ OPC_CheckInteger, 1, ++/*176114*/ OPC_CheckType, MVT::i32, ++/*176116*/ OPC_MoveParent, ++/*176117*/ OPC_MoveChild, 9, ++/*176119*/ OPC_CheckInteger, 1, ++/*176121*/ OPC_CheckType, MVT::i32, ++/*176123*/ OPC_MoveParent, ++/*176124*/ OPC_MoveChild, 10, ++/*176126*/ OPC_CheckInteger, 1, ++/*176128*/ OPC_CheckType, MVT::i32, ++/*176130*/ OPC_MoveParent, ++/*176131*/ OPC_MoveChild, 11, ++/*176133*/ OPC_CheckInteger, 1, ++/*176135*/ OPC_CheckType, MVT::i32, ++/*176137*/ OPC_MoveParent, ++/*176138*/ OPC_MoveChild, 12, ++/*176140*/ OPC_CheckInteger, 1, ++/*176142*/ OPC_CheckType, MVT::i32, ++/*176144*/ OPC_MoveParent, ++/*176145*/ OPC_MoveChild, 13, ++/*176147*/ OPC_CheckInteger, 1, ++/*176149*/ OPC_CheckType, MVT::i32, ++/*176151*/ OPC_MoveParent, ++/*176152*/ OPC_MoveChild, 14, ++/*176154*/ OPC_CheckInteger, 1, ++/*176156*/ OPC_CheckType, MVT::i32, ++/*176158*/ OPC_MoveParent, ++/*176159*/ OPC_MoveChild, 15, ++/*176161*/ OPC_CheckInteger, 1, ++/*176163*/ OPC_CheckType, MVT::i32, ++/*176165*/ OPC_MoveParent, ++/*176166*/ OPC_MoveParent, ++/*176167*/ OPC_CheckChild1Same, 0, ++/*176169*/ OPC_MoveParent, ++/*176170*/ OPC_CheckChild1Same, 1, ++/*176172*/ OPC_MoveParent, ++/*176173*/ OPC_MoveChild1, ++/*176174*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*176177*/ OPC_CheckChild0Integer, 7, ++/*176179*/ OPC_CheckChild0Type, MVT::i32, ++/*176181*/ OPC_CheckChild1Integer, 7, ++/*176183*/ OPC_CheckChild1Type, MVT::i32, ++/*176185*/ OPC_CheckChild2Integer, 7, ++/*176187*/ OPC_CheckChild2Type, MVT::i32, ++/*176189*/ OPC_CheckChild3Integer, 7, ++/*176191*/ OPC_CheckChild3Type, MVT::i32, ++/*176193*/ OPC_CheckChild4Integer, 7, ++/*176195*/ OPC_CheckChild4Type, MVT::i32, ++/*176197*/ OPC_MoveChild5, ++/*176198*/ OPC_CheckInteger, 7, ++/*176200*/ OPC_CheckType, MVT::i32, ++/*176202*/ OPC_MoveParent, ++/*176203*/ OPC_MoveChild6, ++/*176204*/ OPC_CheckInteger, 7, ++/*176206*/ OPC_CheckType, MVT::i32, ++/*176208*/ OPC_MoveParent, ++/*176209*/ OPC_MoveChild7, ++/*176210*/ OPC_CheckInteger, 7, ++/*176212*/ OPC_CheckType, MVT::i32, ++/*176214*/ OPC_MoveParent, ++/*176215*/ OPC_MoveChild, 8, ++/*176217*/ OPC_CheckInteger, 7, ++/*176219*/ OPC_CheckType, MVT::i32, ++/*176221*/ OPC_MoveParent, ++/*176222*/ OPC_MoveChild, 9, ++/*176224*/ OPC_CheckInteger, 7, ++/*176226*/ OPC_CheckType, MVT::i32, ++/*176228*/ OPC_MoveParent, ++/*176229*/ OPC_MoveChild, 10, ++/*176231*/ OPC_CheckInteger, 7, ++/*176233*/ OPC_CheckType, MVT::i32, ++/*176235*/ OPC_MoveParent, ++/*176236*/ OPC_MoveChild, 11, ++/*176238*/ OPC_CheckInteger, 7, ++/*176240*/ OPC_CheckType, MVT::i32, ++/*176242*/ OPC_MoveParent, ++/*176243*/ OPC_MoveChild, 12, ++/*176245*/ OPC_CheckInteger, 7, ++/*176247*/ OPC_CheckType, MVT::i32, ++/*176249*/ OPC_MoveParent, ++/*176250*/ OPC_MoveChild, 13, ++/*176252*/ OPC_CheckInteger, 7, ++/*176254*/ OPC_CheckType, MVT::i32, ++/*176256*/ OPC_MoveParent, ++/*176257*/ OPC_MoveChild, 14, ++/*176259*/ OPC_CheckInteger, 7, ++/*176261*/ OPC_CheckType, MVT::i32, ++/*176263*/ OPC_MoveParent, ++/*176264*/ OPC_MoveChild, 15, ++/*176266*/ OPC_CheckInteger, 7, ++/*176268*/ OPC_CheckType, MVT::i32, ++/*176270*/ OPC_MoveParent, ++/*176271*/ OPC_CheckType, MVT::v16i8, ++/*176273*/ OPC_MoveParent, ++/*176274*/ OPC_MoveParent, ++/*176275*/ OPC_MoveParent, ++/*176276*/ OPC_MoveChild1, ++/*176277*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*176280*/ OPC_CheckChild0Integer, 1, ++/*176282*/ OPC_CheckChild0Type, MVT::i32, ++/*176284*/ OPC_CheckChild1Integer, 1, ++/*176286*/ OPC_CheckChild1Type, MVT::i32, ++/*176288*/ OPC_CheckChild2Integer, 1, ++/*176290*/ OPC_CheckChild2Type, MVT::i32, ++/*176292*/ OPC_CheckChild3Integer, 1, ++/*176294*/ OPC_CheckChild3Type, MVT::i32, ++/*176296*/ OPC_CheckChild4Integer, 1, ++/*176298*/ OPC_CheckChild4Type, MVT::i32, ++/*176300*/ OPC_MoveChild5, ++/*176301*/ OPC_CheckInteger, 1, ++/*176303*/ OPC_CheckType, MVT::i32, ++/*176305*/ OPC_MoveParent, ++/*176306*/ OPC_MoveChild6, ++/*176307*/ OPC_CheckInteger, 1, ++/*176309*/ OPC_CheckType, MVT::i32, ++/*176311*/ OPC_MoveParent, ++/*176312*/ OPC_MoveChild7, ++/*176313*/ OPC_CheckInteger, 1, ++/*176315*/ OPC_CheckType, MVT::i32, ++/*176317*/ OPC_MoveParent, ++/*176318*/ OPC_MoveChild, 8, ++/*176320*/ OPC_CheckInteger, 1, ++/*176322*/ OPC_CheckType, MVT::i32, ++/*176324*/ OPC_MoveParent, ++/*176325*/ OPC_MoveChild, 9, ++/*176327*/ OPC_CheckInteger, 1, ++/*176329*/ OPC_CheckType, MVT::i32, ++/*176331*/ OPC_MoveParent, ++/*176332*/ OPC_MoveChild, 10, ++/*176334*/ OPC_CheckInteger, 1, ++/*176336*/ OPC_CheckType, MVT::i32, ++/*176338*/ OPC_MoveParent, ++/*176339*/ OPC_MoveChild, 11, ++/*176341*/ OPC_CheckInteger, 1, ++/*176343*/ OPC_CheckType, MVT::i32, ++/*176345*/ OPC_MoveParent, ++/*176346*/ OPC_MoveChild, 12, ++/*176348*/ OPC_CheckInteger, 1, ++/*176350*/ OPC_CheckType, MVT::i32, ++/*176352*/ OPC_MoveParent, ++/*176353*/ OPC_MoveChild, 13, ++/*176355*/ OPC_CheckInteger, 1, ++/*176357*/ OPC_CheckType, MVT::i32, ++/*176359*/ OPC_MoveParent, ++/*176360*/ OPC_MoveChild, 14, ++/*176362*/ OPC_CheckInteger, 1, ++/*176364*/ OPC_CheckType, MVT::i32, ++/*176366*/ OPC_MoveParent, ++/*176367*/ OPC_MoveChild, 15, ++/*176369*/ OPC_CheckInteger, 1, ++/*176371*/ OPC_CheckType, MVT::i32, ++/*176373*/ OPC_MoveParent, ++/*176374*/ OPC_CheckType, MVT::v16i8, ++/*176376*/ OPC_MoveParent, ++/*176377*/ OPC_CheckType, MVT::v16i8, ++/*176379*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*176381*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a), LSX128B:{ *:[v16i8] }:$b), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a), LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*176389*/ /*Scope*/ 65|128,2/*321*/, /*->176712*/ ++/*176391*/ OPC_CheckChild0Same, 0, ++/*176393*/ OPC_MoveChild1, ++/*176394*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*176397*/ OPC_CheckChild0Integer, 1, ++/*176399*/ OPC_CheckChild0Type, MVT::i32, ++/*176401*/ OPC_CheckChild1Integer, 1, ++/*176403*/ OPC_CheckChild1Type, MVT::i32, ++/*176405*/ OPC_CheckChild2Integer, 1, ++/*176407*/ OPC_CheckChild2Type, MVT::i32, ++/*176409*/ OPC_CheckChild3Integer, 1, ++/*176411*/ OPC_CheckChild3Type, MVT::i32, ++/*176413*/ OPC_CheckChild4Integer, 1, ++/*176415*/ OPC_CheckChild4Type, MVT::i32, ++/*176417*/ OPC_MoveChild5, ++/*176418*/ OPC_CheckInteger, 1, ++/*176420*/ OPC_CheckType, MVT::i32, ++/*176422*/ OPC_MoveParent, ++/*176423*/ OPC_MoveChild6, ++/*176424*/ OPC_CheckInteger, 1, ++/*176426*/ OPC_CheckType, MVT::i32, ++/*176428*/ OPC_MoveParent, ++/*176429*/ OPC_MoveChild7, ++/*176430*/ OPC_CheckInteger, 1, ++/*176432*/ OPC_CheckType, MVT::i32, ++/*176434*/ OPC_MoveParent, ++/*176435*/ OPC_MoveChild, 8, ++/*176437*/ OPC_CheckInteger, 1, ++/*176439*/ OPC_CheckType, MVT::i32, ++/*176441*/ OPC_MoveParent, ++/*176442*/ OPC_MoveChild, 9, ++/*176444*/ OPC_CheckInteger, 1, ++/*176446*/ OPC_CheckType, MVT::i32, ++/*176448*/ OPC_MoveParent, ++/*176449*/ OPC_MoveChild, 10, ++/*176451*/ OPC_CheckInteger, 1, ++/*176453*/ OPC_CheckType, MVT::i32, ++/*176455*/ OPC_MoveParent, ++/*176456*/ OPC_MoveChild, 11, ++/*176458*/ OPC_CheckInteger, 1, ++/*176460*/ OPC_CheckType, MVT::i32, ++/*176462*/ OPC_MoveParent, ++/*176463*/ OPC_MoveChild, 12, ++/*176465*/ OPC_CheckInteger, 1, ++/*176467*/ OPC_CheckType, MVT::i32, ++/*176469*/ OPC_MoveParent, ++/*176470*/ OPC_MoveChild, 13, ++/*176472*/ OPC_CheckInteger, 1, ++/*176474*/ OPC_CheckType, MVT::i32, ++/*176476*/ OPC_MoveParent, ++/*176477*/ OPC_MoveChild, 14, ++/*176479*/ OPC_CheckInteger, 1, ++/*176481*/ OPC_CheckType, MVT::i32, ++/*176483*/ OPC_MoveParent, ++/*176484*/ OPC_MoveChild, 15, ++/*176486*/ OPC_CheckInteger, 1, ++/*176488*/ OPC_CheckType, MVT::i32, ++/*176490*/ OPC_MoveParent, ++/*176491*/ OPC_MoveParent, ++/*176492*/ OPC_MoveParent, ++/*176493*/ OPC_CheckChild1Same, 1, ++/*176495*/ OPC_MoveParent, ++/*176496*/ OPC_MoveChild1, ++/*176497*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*176500*/ OPC_CheckChild0Integer, 7, ++/*176502*/ OPC_CheckChild0Type, MVT::i32, ++/*176504*/ OPC_CheckChild1Integer, 7, ++/*176506*/ OPC_CheckChild1Type, MVT::i32, ++/*176508*/ OPC_CheckChild2Integer, 7, ++/*176510*/ OPC_CheckChild2Type, MVT::i32, ++/*176512*/ OPC_CheckChild3Integer, 7, ++/*176514*/ OPC_CheckChild3Type, MVT::i32, ++/*176516*/ OPC_CheckChild4Integer, 7, ++/*176518*/ OPC_CheckChild4Type, MVT::i32, ++/*176520*/ OPC_MoveChild5, ++/*176521*/ OPC_CheckInteger, 7, ++/*176523*/ OPC_CheckType, MVT::i32, ++/*176525*/ OPC_MoveParent, ++/*176526*/ OPC_MoveChild6, ++/*176527*/ OPC_CheckInteger, 7, ++/*176529*/ OPC_CheckType, MVT::i32, ++/*176531*/ OPC_MoveParent, ++/*176532*/ OPC_MoveChild7, ++/*176533*/ OPC_CheckInteger, 7, ++/*176535*/ OPC_CheckType, MVT::i32, ++/*176537*/ OPC_MoveParent, ++/*176538*/ OPC_MoveChild, 8, ++/*176540*/ OPC_CheckInteger, 7, ++/*176542*/ OPC_CheckType, MVT::i32, ++/*176544*/ OPC_MoveParent, ++/*176545*/ OPC_MoveChild, 9, ++/*176547*/ OPC_CheckInteger, 7, ++/*176549*/ OPC_CheckType, MVT::i32, ++/*176551*/ OPC_MoveParent, ++/*176552*/ OPC_MoveChild, 10, ++/*176554*/ OPC_CheckInteger, 7, ++/*176556*/ OPC_CheckType, MVT::i32, ++/*176558*/ OPC_MoveParent, ++/*176559*/ OPC_MoveChild, 11, ++/*176561*/ OPC_CheckInteger, 7, ++/*176563*/ OPC_CheckType, MVT::i32, ++/*176565*/ OPC_MoveParent, ++/*176566*/ OPC_MoveChild, 12, ++/*176568*/ OPC_CheckInteger, 7, ++/*176570*/ OPC_CheckType, MVT::i32, ++/*176572*/ OPC_MoveParent, ++/*176573*/ OPC_MoveChild, 13, ++/*176575*/ OPC_CheckInteger, 7, ++/*176577*/ OPC_CheckType, MVT::i32, ++/*176579*/ OPC_MoveParent, ++/*176580*/ OPC_MoveChild, 14, ++/*176582*/ OPC_CheckInteger, 7, ++/*176584*/ OPC_CheckType, MVT::i32, ++/*176586*/ OPC_MoveParent, ++/*176587*/ OPC_MoveChild, 15, ++/*176589*/ OPC_CheckInteger, 7, ++/*176591*/ OPC_CheckType, MVT::i32, ++/*176593*/ OPC_MoveParent, ++/*176594*/ OPC_CheckType, MVT::v16i8, ++/*176596*/ OPC_MoveParent, ++/*176597*/ OPC_MoveParent, ++/*176598*/ OPC_MoveParent, ++/*176599*/ OPC_MoveChild1, ++/*176600*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*176603*/ OPC_CheckChild0Integer, 1, ++/*176605*/ OPC_CheckChild0Type, MVT::i32, ++/*176607*/ OPC_CheckChild1Integer, 1, ++/*176609*/ OPC_CheckChild1Type, MVT::i32, ++/*176611*/ OPC_CheckChild2Integer, 1, ++/*176613*/ OPC_CheckChild2Type, MVT::i32, ++/*176615*/ OPC_CheckChild3Integer, 1, ++/*176617*/ OPC_CheckChild3Type, MVT::i32, ++/*176619*/ OPC_CheckChild4Integer, 1, ++/*176621*/ OPC_CheckChild4Type, MVT::i32, ++/*176623*/ OPC_MoveChild5, ++/*176624*/ OPC_CheckInteger, 1, ++/*176626*/ OPC_CheckType, MVT::i32, ++/*176628*/ OPC_MoveParent, ++/*176629*/ OPC_MoveChild6, ++/*176630*/ OPC_CheckInteger, 1, ++/*176632*/ OPC_CheckType, MVT::i32, ++/*176634*/ OPC_MoveParent, ++/*176635*/ OPC_MoveChild7, ++/*176636*/ OPC_CheckInteger, 1, ++/*176638*/ OPC_CheckType, MVT::i32, ++/*176640*/ OPC_MoveParent, ++/*176641*/ OPC_MoveChild, 8, ++/*176643*/ OPC_CheckInteger, 1, ++/*176645*/ OPC_CheckType, MVT::i32, ++/*176647*/ OPC_MoveParent, ++/*176648*/ OPC_MoveChild, 9, ++/*176650*/ OPC_CheckInteger, 1, ++/*176652*/ OPC_CheckType, MVT::i32, ++/*176654*/ OPC_MoveParent, ++/*176655*/ OPC_MoveChild, 10, ++/*176657*/ OPC_CheckInteger, 1, ++/*176659*/ OPC_CheckType, MVT::i32, ++/*176661*/ OPC_MoveParent, ++/*176662*/ OPC_MoveChild, 11, ++/*176664*/ OPC_CheckInteger, 1, ++/*176666*/ OPC_CheckType, MVT::i32, ++/*176668*/ OPC_MoveParent, ++/*176669*/ OPC_MoveChild, 12, ++/*176671*/ OPC_CheckInteger, 1, ++/*176673*/ OPC_CheckType, MVT::i32, ++/*176675*/ OPC_MoveParent, ++/*176676*/ OPC_MoveChild, 13, ++/*176678*/ OPC_CheckInteger, 1, ++/*176680*/ OPC_CheckType, MVT::i32, ++/*176682*/ OPC_MoveParent, ++/*176683*/ OPC_MoveChild, 14, ++/*176685*/ OPC_CheckInteger, 1, ++/*176687*/ OPC_CheckType, MVT::i32, ++/*176689*/ OPC_MoveParent, ++/*176690*/ OPC_MoveChild, 15, ++/*176692*/ OPC_CheckInteger, 1, ++/*176694*/ OPC_CheckType, MVT::i32, ++/*176696*/ OPC_MoveParent, ++/*176697*/ OPC_CheckType, MVT::v16i8, ++/*176699*/ OPC_MoveParent, ++/*176700*/ OPC_CheckType, MVT::v16i8, ++/*176702*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*176704*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a), LSX128B:{ *:[v16i8] }:$b), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*176712*/ /*Scope*/ 65|128,2/*321*/, /*->177035*/ ++/*176714*/ OPC_MoveChild0, ++/*176715*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*176718*/ OPC_CheckChild0Integer, 1, ++/*176720*/ OPC_CheckChild0Type, MVT::i32, ++/*176722*/ OPC_CheckChild1Integer, 1, ++/*176724*/ OPC_CheckChild1Type, MVT::i32, ++/*176726*/ OPC_CheckChild2Integer, 1, ++/*176728*/ OPC_CheckChild2Type, MVT::i32, ++/*176730*/ OPC_CheckChild3Integer, 1, ++/*176732*/ OPC_CheckChild3Type, MVT::i32, ++/*176734*/ OPC_CheckChild4Integer, 1, ++/*176736*/ OPC_CheckChild4Type, MVT::i32, ++/*176738*/ OPC_MoveChild5, ++/*176739*/ OPC_CheckInteger, 1, ++/*176741*/ OPC_CheckType, MVT::i32, ++/*176743*/ OPC_MoveParent, ++/*176744*/ OPC_MoveChild6, ++/*176745*/ OPC_CheckInteger, 1, ++/*176747*/ OPC_CheckType, MVT::i32, ++/*176749*/ OPC_MoveParent, ++/*176750*/ OPC_MoveChild7, ++/*176751*/ OPC_CheckInteger, 1, ++/*176753*/ OPC_CheckType, MVT::i32, ++/*176755*/ OPC_MoveParent, ++/*176756*/ OPC_MoveChild, 8, ++/*176758*/ OPC_CheckInteger, 1, ++/*176760*/ OPC_CheckType, MVT::i32, ++/*176762*/ OPC_MoveParent, ++/*176763*/ OPC_MoveChild, 9, ++/*176765*/ OPC_CheckInteger, 1, ++/*176767*/ OPC_CheckType, MVT::i32, ++/*176769*/ OPC_MoveParent, ++/*176770*/ OPC_MoveChild, 10, ++/*176772*/ OPC_CheckInteger, 1, ++/*176774*/ OPC_CheckType, MVT::i32, ++/*176776*/ OPC_MoveParent, ++/*176777*/ OPC_MoveChild, 11, ++/*176779*/ OPC_CheckInteger, 1, ++/*176781*/ OPC_CheckType, MVT::i32, ++/*176783*/ OPC_MoveParent, ++/*176784*/ OPC_MoveChild, 12, ++/*176786*/ OPC_CheckInteger, 1, ++/*176788*/ OPC_CheckType, MVT::i32, ++/*176790*/ OPC_MoveParent, ++/*176791*/ OPC_MoveChild, 13, ++/*176793*/ OPC_CheckInteger, 1, ++/*176795*/ OPC_CheckType, MVT::i32, ++/*176797*/ OPC_MoveParent, ++/*176798*/ OPC_MoveChild, 14, ++/*176800*/ OPC_CheckInteger, 1, ++/*176802*/ OPC_CheckType, MVT::i32, ++/*176804*/ OPC_MoveParent, ++/*176805*/ OPC_MoveChild, 15, ++/*176807*/ OPC_CheckInteger, 1, ++/*176809*/ OPC_CheckType, MVT::i32, ++/*176811*/ OPC_MoveParent, ++/*176812*/ OPC_MoveParent, ++/*176813*/ OPC_CheckChild1Same, 1, ++/*176815*/ OPC_MoveParent, ++/*176816*/ OPC_CheckChild1Same, 0, ++/*176818*/ OPC_MoveParent, ++/*176819*/ OPC_MoveChild1, ++/*176820*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*176823*/ OPC_CheckChild0Integer, 7, ++/*176825*/ OPC_CheckChild0Type, MVT::i32, ++/*176827*/ OPC_CheckChild1Integer, 7, ++/*176829*/ OPC_CheckChild1Type, MVT::i32, ++/*176831*/ OPC_CheckChild2Integer, 7, ++/*176833*/ OPC_CheckChild2Type, MVT::i32, ++/*176835*/ OPC_CheckChild3Integer, 7, ++/*176837*/ OPC_CheckChild3Type, MVT::i32, ++/*176839*/ OPC_CheckChild4Integer, 7, ++/*176841*/ OPC_CheckChild4Type, MVT::i32, ++/*176843*/ OPC_MoveChild5, ++/*176844*/ OPC_CheckInteger, 7, ++/*176846*/ OPC_CheckType, MVT::i32, ++/*176848*/ OPC_MoveParent, ++/*176849*/ OPC_MoveChild6, ++/*176850*/ OPC_CheckInteger, 7, ++/*176852*/ OPC_CheckType, MVT::i32, ++/*176854*/ OPC_MoveParent, ++/*176855*/ OPC_MoveChild7, ++/*176856*/ OPC_CheckInteger, 7, ++/*176858*/ OPC_CheckType, MVT::i32, ++/*176860*/ OPC_MoveParent, ++/*176861*/ OPC_MoveChild, 8, ++/*176863*/ OPC_CheckInteger, 7, ++/*176865*/ OPC_CheckType, MVT::i32, ++/*176867*/ OPC_MoveParent, ++/*176868*/ OPC_MoveChild, 9, ++/*176870*/ OPC_CheckInteger, 7, ++/*176872*/ OPC_CheckType, MVT::i32, ++/*176874*/ OPC_MoveParent, ++/*176875*/ OPC_MoveChild, 10, ++/*176877*/ OPC_CheckInteger, 7, ++/*176879*/ OPC_CheckType, MVT::i32, ++/*176881*/ OPC_MoveParent, ++/*176882*/ OPC_MoveChild, 11, ++/*176884*/ OPC_CheckInteger, 7, ++/*176886*/ OPC_CheckType, MVT::i32, ++/*176888*/ OPC_MoveParent, ++/*176889*/ OPC_MoveChild, 12, ++/*176891*/ OPC_CheckInteger, 7, ++/*176893*/ OPC_CheckType, MVT::i32, ++/*176895*/ OPC_MoveParent, ++/*176896*/ OPC_MoveChild, 13, ++/*176898*/ OPC_CheckInteger, 7, ++/*176900*/ OPC_CheckType, MVT::i32, ++/*176902*/ OPC_MoveParent, ++/*176903*/ OPC_MoveChild, 14, ++/*176905*/ OPC_CheckInteger, 7, ++/*176907*/ OPC_CheckType, MVT::i32, ++/*176909*/ OPC_MoveParent, ++/*176910*/ OPC_MoveChild, 15, ++/*176912*/ OPC_CheckInteger, 7, ++/*176914*/ OPC_CheckType, MVT::i32, ++/*176916*/ OPC_MoveParent, ++/*176917*/ OPC_CheckType, MVT::v16i8, ++/*176919*/ OPC_MoveParent, ++/*176920*/ OPC_MoveParent, ++/*176921*/ OPC_MoveParent, ++/*176922*/ OPC_MoveChild1, ++/*176923*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*176926*/ OPC_CheckChild0Integer, 1, ++/*176928*/ OPC_CheckChild0Type, MVT::i32, ++/*176930*/ OPC_CheckChild1Integer, 1, ++/*176932*/ OPC_CheckChild1Type, MVT::i32, ++/*176934*/ OPC_CheckChild2Integer, 1, ++/*176936*/ OPC_CheckChild2Type, MVT::i32, ++/*176938*/ OPC_CheckChild3Integer, 1, ++/*176940*/ OPC_CheckChild3Type, MVT::i32, ++/*176942*/ OPC_CheckChild4Integer, 1, ++/*176944*/ OPC_CheckChild4Type, MVT::i32, ++/*176946*/ OPC_MoveChild5, ++/*176947*/ OPC_CheckInteger, 1, ++/*176949*/ OPC_CheckType, MVT::i32, ++/*176951*/ OPC_MoveParent, ++/*176952*/ OPC_MoveChild6, ++/*176953*/ OPC_CheckInteger, 1, ++/*176955*/ OPC_CheckType, MVT::i32, ++/*176957*/ OPC_MoveParent, ++/*176958*/ OPC_MoveChild7, ++/*176959*/ OPC_CheckInteger, 1, ++/*176961*/ OPC_CheckType, MVT::i32, ++/*176963*/ OPC_MoveParent, ++/*176964*/ OPC_MoveChild, 8, ++/*176966*/ OPC_CheckInteger, 1, ++/*176968*/ OPC_CheckType, MVT::i32, ++/*176970*/ OPC_MoveParent, ++/*176971*/ OPC_MoveChild, 9, ++/*176973*/ OPC_CheckInteger, 1, ++/*176975*/ OPC_CheckType, MVT::i32, ++/*176977*/ OPC_MoveParent, ++/*176978*/ OPC_MoveChild, 10, ++/*176980*/ OPC_CheckInteger, 1, ++/*176982*/ OPC_CheckType, MVT::i32, ++/*176984*/ OPC_MoveParent, ++/*176985*/ OPC_MoveChild, 11, ++/*176987*/ OPC_CheckInteger, 1, ++/*176989*/ OPC_CheckType, MVT::i32, ++/*176991*/ OPC_MoveParent, ++/*176992*/ OPC_MoveChild, 12, ++/*176994*/ OPC_CheckInteger, 1, ++/*176996*/ OPC_CheckType, MVT::i32, ++/*176998*/ OPC_MoveParent, ++/*176999*/ OPC_MoveChild, 13, ++/*177001*/ OPC_CheckInteger, 1, ++/*177003*/ OPC_CheckType, MVT::i32, ++/*177005*/ OPC_MoveParent, ++/*177006*/ OPC_MoveChild, 14, ++/*177008*/ OPC_CheckInteger, 1, ++/*177010*/ OPC_CheckType, MVT::i32, ++/*177012*/ OPC_MoveParent, ++/*177013*/ OPC_MoveChild, 15, ++/*177015*/ OPC_CheckInteger, 1, ++/*177017*/ OPC_CheckType, MVT::i32, ++/*177019*/ OPC_MoveParent, ++/*177020*/ OPC_CheckType, MVT::v16i8, ++/*177022*/ OPC_MoveParent, ++/*177023*/ OPC_CheckType, MVT::v16i8, ++/*177025*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*177027*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a), LSX128B:{ *:[v16i8] }:$b), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b), LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*177035*/ /*Scope*/ 65|128,2/*321*/, /*->177358*/ ++/*177037*/ OPC_CheckChild0Same, 1, ++/*177039*/ OPC_MoveChild1, ++/*177040*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*177043*/ OPC_CheckChild0Integer, 1, ++/*177045*/ OPC_CheckChild0Type, MVT::i32, ++/*177047*/ OPC_CheckChild1Integer, 1, ++/*177049*/ OPC_CheckChild1Type, MVT::i32, ++/*177051*/ OPC_CheckChild2Integer, 1, ++/*177053*/ OPC_CheckChild2Type, MVT::i32, ++/*177055*/ OPC_CheckChild3Integer, 1, ++/*177057*/ OPC_CheckChild3Type, MVT::i32, ++/*177059*/ OPC_CheckChild4Integer, 1, ++/*177061*/ OPC_CheckChild4Type, MVT::i32, ++/*177063*/ OPC_MoveChild5, ++/*177064*/ OPC_CheckInteger, 1, ++/*177066*/ OPC_CheckType, MVT::i32, ++/*177068*/ OPC_MoveParent, ++/*177069*/ OPC_MoveChild6, ++/*177070*/ OPC_CheckInteger, 1, ++/*177072*/ OPC_CheckType, MVT::i32, ++/*177074*/ OPC_MoveParent, ++/*177075*/ OPC_MoveChild7, ++/*177076*/ OPC_CheckInteger, 1, ++/*177078*/ OPC_CheckType, MVT::i32, ++/*177080*/ OPC_MoveParent, ++/*177081*/ OPC_MoveChild, 8, ++/*177083*/ OPC_CheckInteger, 1, ++/*177085*/ OPC_CheckType, MVT::i32, ++/*177087*/ OPC_MoveParent, ++/*177088*/ OPC_MoveChild, 9, ++/*177090*/ OPC_CheckInteger, 1, ++/*177092*/ OPC_CheckType, MVT::i32, ++/*177094*/ OPC_MoveParent, ++/*177095*/ OPC_MoveChild, 10, ++/*177097*/ OPC_CheckInteger, 1, ++/*177099*/ OPC_CheckType, MVT::i32, ++/*177101*/ OPC_MoveParent, ++/*177102*/ OPC_MoveChild, 11, ++/*177104*/ OPC_CheckInteger, 1, ++/*177106*/ OPC_CheckType, MVT::i32, ++/*177108*/ OPC_MoveParent, ++/*177109*/ OPC_MoveChild, 12, ++/*177111*/ OPC_CheckInteger, 1, ++/*177113*/ OPC_CheckType, MVT::i32, ++/*177115*/ OPC_MoveParent, ++/*177116*/ OPC_MoveChild, 13, ++/*177118*/ OPC_CheckInteger, 1, ++/*177120*/ OPC_CheckType, MVT::i32, ++/*177122*/ OPC_MoveParent, ++/*177123*/ OPC_MoveChild, 14, ++/*177125*/ OPC_CheckInteger, 1, ++/*177127*/ OPC_CheckType, MVT::i32, ++/*177129*/ OPC_MoveParent, ++/*177130*/ OPC_MoveChild, 15, ++/*177132*/ OPC_CheckInteger, 1, ++/*177134*/ OPC_CheckType, MVT::i32, ++/*177136*/ OPC_MoveParent, ++/*177137*/ OPC_MoveParent, ++/*177138*/ OPC_MoveParent, ++/*177139*/ OPC_CheckChild1Same, 0, ++/*177141*/ OPC_MoveParent, ++/*177142*/ OPC_MoveChild1, ++/*177143*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*177146*/ OPC_CheckChild0Integer, 7, ++/*177148*/ OPC_CheckChild0Type, MVT::i32, ++/*177150*/ OPC_CheckChild1Integer, 7, ++/*177152*/ OPC_CheckChild1Type, MVT::i32, ++/*177154*/ OPC_CheckChild2Integer, 7, ++/*177156*/ OPC_CheckChild2Type, MVT::i32, ++/*177158*/ OPC_CheckChild3Integer, 7, ++/*177160*/ OPC_CheckChild3Type, MVT::i32, ++/*177162*/ OPC_CheckChild4Integer, 7, ++/*177164*/ OPC_CheckChild4Type, MVT::i32, ++/*177166*/ OPC_MoveChild5, ++/*177167*/ OPC_CheckInteger, 7, ++/*177169*/ OPC_CheckType, MVT::i32, ++/*177171*/ OPC_MoveParent, ++/*177172*/ OPC_MoveChild6, ++/*177173*/ OPC_CheckInteger, 7, ++/*177175*/ OPC_CheckType, MVT::i32, ++/*177177*/ OPC_MoveParent, ++/*177178*/ OPC_MoveChild7, ++/*177179*/ OPC_CheckInteger, 7, ++/*177181*/ OPC_CheckType, MVT::i32, ++/*177183*/ OPC_MoveParent, ++/*177184*/ OPC_MoveChild, 8, ++/*177186*/ OPC_CheckInteger, 7, ++/*177188*/ OPC_CheckType, MVT::i32, ++/*177190*/ OPC_MoveParent, ++/*177191*/ OPC_MoveChild, 9, ++/*177193*/ OPC_CheckInteger, 7, ++/*177195*/ OPC_CheckType, MVT::i32, ++/*177197*/ OPC_MoveParent, ++/*177198*/ OPC_MoveChild, 10, ++/*177200*/ OPC_CheckInteger, 7, ++/*177202*/ OPC_CheckType, MVT::i32, ++/*177204*/ OPC_MoveParent, ++/*177205*/ OPC_MoveChild, 11, ++/*177207*/ OPC_CheckInteger, 7, ++/*177209*/ OPC_CheckType, MVT::i32, ++/*177211*/ OPC_MoveParent, ++/*177212*/ OPC_MoveChild, 12, ++/*177214*/ OPC_CheckInteger, 7, ++/*177216*/ OPC_CheckType, MVT::i32, ++/*177218*/ OPC_MoveParent, ++/*177219*/ OPC_MoveChild, 13, ++/*177221*/ OPC_CheckInteger, 7, ++/*177223*/ OPC_CheckType, MVT::i32, ++/*177225*/ OPC_MoveParent, ++/*177226*/ OPC_MoveChild, 14, ++/*177228*/ OPC_CheckInteger, 7, ++/*177230*/ OPC_CheckType, MVT::i32, ++/*177232*/ OPC_MoveParent, ++/*177233*/ OPC_MoveChild, 15, ++/*177235*/ OPC_CheckInteger, 7, ++/*177237*/ OPC_CheckType, MVT::i32, ++/*177239*/ OPC_MoveParent, ++/*177240*/ OPC_CheckType, MVT::v16i8, ++/*177242*/ OPC_MoveParent, ++/*177243*/ OPC_MoveParent, ++/*177244*/ OPC_MoveParent, ++/*177245*/ OPC_MoveChild1, ++/*177246*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*177249*/ OPC_CheckChild0Integer, 1, ++/*177251*/ OPC_CheckChild0Type, MVT::i32, ++/*177253*/ OPC_CheckChild1Integer, 1, ++/*177255*/ OPC_CheckChild1Type, MVT::i32, ++/*177257*/ OPC_CheckChild2Integer, 1, ++/*177259*/ OPC_CheckChild2Type, MVT::i32, ++/*177261*/ OPC_CheckChild3Integer, 1, ++/*177263*/ OPC_CheckChild3Type, MVT::i32, ++/*177265*/ OPC_CheckChild4Integer, 1, ++/*177267*/ OPC_CheckChild4Type, MVT::i32, ++/*177269*/ OPC_MoveChild5, ++/*177270*/ OPC_CheckInteger, 1, ++/*177272*/ OPC_CheckType, MVT::i32, ++/*177274*/ OPC_MoveParent, ++/*177275*/ OPC_MoveChild6, ++/*177276*/ OPC_CheckInteger, 1, ++/*177278*/ OPC_CheckType, MVT::i32, ++/*177280*/ OPC_MoveParent, ++/*177281*/ OPC_MoveChild7, ++/*177282*/ OPC_CheckInteger, 1, ++/*177284*/ OPC_CheckType, MVT::i32, ++/*177286*/ OPC_MoveParent, ++/*177287*/ OPC_MoveChild, 8, ++/*177289*/ OPC_CheckInteger, 1, ++/*177291*/ OPC_CheckType, MVT::i32, ++/*177293*/ OPC_MoveParent, ++/*177294*/ OPC_MoveChild, 9, ++/*177296*/ OPC_CheckInteger, 1, ++/*177298*/ OPC_CheckType, MVT::i32, ++/*177300*/ OPC_MoveParent, ++/*177301*/ OPC_MoveChild, 10, ++/*177303*/ OPC_CheckInteger, 1, ++/*177305*/ OPC_CheckType, MVT::i32, ++/*177307*/ OPC_MoveParent, ++/*177308*/ OPC_MoveChild, 11, ++/*177310*/ OPC_CheckInteger, 1, ++/*177312*/ OPC_CheckType, MVT::i32, ++/*177314*/ OPC_MoveParent, ++/*177315*/ OPC_MoveChild, 12, ++/*177317*/ OPC_CheckInteger, 1, ++/*177319*/ OPC_CheckType, MVT::i32, ++/*177321*/ OPC_MoveParent, ++/*177322*/ OPC_MoveChild, 13, ++/*177324*/ OPC_CheckInteger, 1, ++/*177326*/ OPC_CheckType, MVT::i32, ++/*177328*/ OPC_MoveParent, ++/*177329*/ OPC_MoveChild, 14, ++/*177331*/ OPC_CheckInteger, 1, ++/*177333*/ OPC_CheckType, MVT::i32, ++/*177335*/ OPC_MoveParent, ++/*177336*/ OPC_MoveChild, 15, ++/*177338*/ OPC_CheckInteger, 1, ++/*177340*/ OPC_CheckType, MVT::i32, ++/*177342*/ OPC_MoveParent, ++/*177343*/ OPC_CheckType, MVT::v16i8, ++/*177345*/ OPC_MoveParent, ++/*177346*/ OPC_CheckType, MVT::v16i8, ++/*177348*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*177350*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a), LSX128B:{ *:[v16i8] }:$b), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*177358*/ /*Scope*/ 65|128,2/*321*/, /*->177681*/ ++/*177360*/ OPC_CheckChild0Same, 0, ++/*177362*/ OPC_CheckChild1Same, 1, ++/*177364*/ OPC_MoveParent, ++/*177365*/ OPC_MoveChild1, ++/*177366*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*177369*/ OPC_CheckChild0Integer, 1, ++/*177371*/ OPC_CheckChild0Type, MVT::i32, ++/*177373*/ OPC_CheckChild1Integer, 1, ++/*177375*/ OPC_CheckChild1Type, MVT::i32, ++/*177377*/ OPC_CheckChild2Integer, 1, ++/*177379*/ OPC_CheckChild2Type, MVT::i32, ++/*177381*/ OPC_CheckChild3Integer, 1, ++/*177383*/ OPC_CheckChild3Type, MVT::i32, ++/*177385*/ OPC_CheckChild4Integer, 1, ++/*177387*/ OPC_CheckChild4Type, MVT::i32, ++/*177389*/ OPC_MoveChild5, ++/*177390*/ OPC_CheckInteger, 1, ++/*177392*/ OPC_CheckType, MVT::i32, ++/*177394*/ OPC_MoveParent, ++/*177395*/ OPC_MoveChild6, ++/*177396*/ OPC_CheckInteger, 1, ++/*177398*/ OPC_CheckType, MVT::i32, ++/*177400*/ OPC_MoveParent, ++/*177401*/ OPC_MoveChild7, ++/*177402*/ OPC_CheckInteger, 1, ++/*177404*/ OPC_CheckType, MVT::i32, ++/*177406*/ OPC_MoveParent, ++/*177407*/ OPC_MoveChild, 8, ++/*177409*/ OPC_CheckInteger, 1, ++/*177411*/ OPC_CheckType, MVT::i32, ++/*177413*/ OPC_MoveParent, ++/*177414*/ OPC_MoveChild, 9, ++/*177416*/ OPC_CheckInteger, 1, ++/*177418*/ OPC_CheckType, MVT::i32, ++/*177420*/ OPC_MoveParent, ++/*177421*/ OPC_MoveChild, 10, ++/*177423*/ OPC_CheckInteger, 1, ++/*177425*/ OPC_CheckType, MVT::i32, ++/*177427*/ OPC_MoveParent, ++/*177428*/ OPC_MoveChild, 11, ++/*177430*/ OPC_CheckInteger, 1, ++/*177432*/ OPC_CheckType, MVT::i32, ++/*177434*/ OPC_MoveParent, ++/*177435*/ OPC_MoveChild, 12, ++/*177437*/ OPC_CheckInteger, 1, ++/*177439*/ OPC_CheckType, MVT::i32, ++/*177441*/ OPC_MoveParent, ++/*177442*/ OPC_MoveChild, 13, ++/*177444*/ OPC_CheckInteger, 1, ++/*177446*/ OPC_CheckType, MVT::i32, ++/*177448*/ OPC_MoveParent, ++/*177449*/ OPC_MoveChild, 14, ++/*177451*/ OPC_CheckInteger, 1, ++/*177453*/ OPC_CheckType, MVT::i32, ++/*177455*/ OPC_MoveParent, ++/*177456*/ OPC_MoveChild, 15, ++/*177458*/ OPC_CheckInteger, 1, ++/*177460*/ OPC_CheckType, MVT::i32, ++/*177462*/ OPC_MoveParent, ++/*177463*/ OPC_MoveParent, ++/*177464*/ OPC_MoveParent, ++/*177465*/ OPC_MoveChild1, ++/*177466*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*177469*/ OPC_CheckChild0Integer, 7, ++/*177471*/ OPC_CheckChild0Type, MVT::i32, ++/*177473*/ OPC_CheckChild1Integer, 7, ++/*177475*/ OPC_CheckChild1Type, MVT::i32, ++/*177477*/ OPC_CheckChild2Integer, 7, ++/*177479*/ OPC_CheckChild2Type, MVT::i32, ++/*177481*/ OPC_CheckChild3Integer, 7, ++/*177483*/ OPC_CheckChild3Type, MVT::i32, ++/*177485*/ OPC_CheckChild4Integer, 7, ++/*177487*/ OPC_CheckChild4Type, MVT::i32, ++/*177489*/ OPC_MoveChild5, ++/*177490*/ OPC_CheckInteger, 7, ++/*177492*/ OPC_CheckType, MVT::i32, ++/*177494*/ OPC_MoveParent, ++/*177495*/ OPC_MoveChild6, ++/*177496*/ OPC_CheckInteger, 7, ++/*177498*/ OPC_CheckType, MVT::i32, ++/*177500*/ OPC_MoveParent, ++/*177501*/ OPC_MoveChild7, ++/*177502*/ OPC_CheckInteger, 7, ++/*177504*/ OPC_CheckType, MVT::i32, ++/*177506*/ OPC_MoveParent, ++/*177507*/ OPC_MoveChild, 8, ++/*177509*/ OPC_CheckInteger, 7, ++/*177511*/ OPC_CheckType, MVT::i32, ++/*177513*/ OPC_MoveParent, ++/*177514*/ OPC_MoveChild, 9, ++/*177516*/ OPC_CheckInteger, 7, ++/*177518*/ OPC_CheckType, MVT::i32, ++/*177520*/ OPC_MoveParent, ++/*177521*/ OPC_MoveChild, 10, ++/*177523*/ OPC_CheckInteger, 7, ++/*177525*/ OPC_CheckType, MVT::i32, ++/*177527*/ OPC_MoveParent, ++/*177528*/ OPC_MoveChild, 11, ++/*177530*/ OPC_CheckInteger, 7, ++/*177532*/ OPC_CheckType, MVT::i32, ++/*177534*/ OPC_MoveParent, ++/*177535*/ OPC_MoveChild, 12, ++/*177537*/ OPC_CheckInteger, 7, ++/*177539*/ OPC_CheckType, MVT::i32, ++/*177541*/ OPC_MoveParent, ++/*177542*/ OPC_MoveChild, 13, ++/*177544*/ OPC_CheckInteger, 7, ++/*177546*/ OPC_CheckType, MVT::i32, ++/*177548*/ OPC_MoveParent, ++/*177549*/ OPC_MoveChild, 14, ++/*177551*/ OPC_CheckInteger, 7, ++/*177553*/ OPC_CheckType, MVT::i32, ++/*177555*/ OPC_MoveParent, ++/*177556*/ OPC_MoveChild, 15, ++/*177558*/ OPC_CheckInteger, 7, ++/*177560*/ OPC_CheckType, MVT::i32, ++/*177562*/ OPC_MoveParent, ++/*177563*/ OPC_CheckType, MVT::v16i8, ++/*177565*/ OPC_MoveParent, ++/*177566*/ OPC_MoveParent, ++/*177567*/ OPC_MoveParent, ++/*177568*/ OPC_MoveChild1, ++/*177569*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*177572*/ OPC_CheckChild0Integer, 1, ++/*177574*/ OPC_CheckChild0Type, MVT::i32, ++/*177576*/ OPC_CheckChild1Integer, 1, ++/*177578*/ OPC_CheckChild1Type, MVT::i32, ++/*177580*/ OPC_CheckChild2Integer, 1, ++/*177582*/ OPC_CheckChild2Type, MVT::i32, ++/*177584*/ OPC_CheckChild3Integer, 1, ++/*177586*/ OPC_CheckChild3Type, MVT::i32, ++/*177588*/ OPC_CheckChild4Integer, 1, ++/*177590*/ OPC_CheckChild4Type, MVT::i32, ++/*177592*/ OPC_MoveChild5, ++/*177593*/ OPC_CheckInteger, 1, ++/*177595*/ OPC_CheckType, MVT::i32, ++/*177597*/ OPC_MoveParent, ++/*177598*/ OPC_MoveChild6, ++/*177599*/ OPC_CheckInteger, 1, ++/*177601*/ OPC_CheckType, MVT::i32, ++/*177603*/ OPC_MoveParent, ++/*177604*/ OPC_MoveChild7, ++/*177605*/ OPC_CheckInteger, 1, ++/*177607*/ OPC_CheckType, MVT::i32, ++/*177609*/ OPC_MoveParent, ++/*177610*/ OPC_MoveChild, 8, ++/*177612*/ OPC_CheckInteger, 1, ++/*177614*/ OPC_CheckType, MVT::i32, ++/*177616*/ OPC_MoveParent, ++/*177617*/ OPC_MoveChild, 9, ++/*177619*/ OPC_CheckInteger, 1, ++/*177621*/ OPC_CheckType, MVT::i32, ++/*177623*/ OPC_MoveParent, ++/*177624*/ OPC_MoveChild, 10, ++/*177626*/ OPC_CheckInteger, 1, ++/*177628*/ OPC_CheckType, MVT::i32, ++/*177630*/ OPC_MoveParent, ++/*177631*/ OPC_MoveChild, 11, ++/*177633*/ OPC_CheckInteger, 1, ++/*177635*/ OPC_CheckType, MVT::i32, ++/*177637*/ OPC_MoveParent, ++/*177638*/ OPC_MoveChild, 12, ++/*177640*/ OPC_CheckInteger, 1, ++/*177642*/ OPC_CheckType, MVT::i32, ++/*177644*/ OPC_MoveParent, ++/*177645*/ OPC_MoveChild, 13, ++/*177647*/ OPC_CheckInteger, 1, ++/*177649*/ OPC_CheckType, MVT::i32, ++/*177651*/ OPC_MoveParent, ++/*177652*/ OPC_MoveChild, 14, ++/*177654*/ OPC_CheckInteger, 1, ++/*177656*/ OPC_CheckType, MVT::i32, ++/*177658*/ OPC_MoveParent, ++/*177659*/ OPC_MoveChild, 15, ++/*177661*/ OPC_CheckInteger, 1, ++/*177663*/ OPC_CheckType, MVT::i32, ++/*177665*/ OPC_MoveParent, ++/*177666*/ OPC_CheckType, MVT::v16i8, ++/*177668*/ OPC_MoveParent, ++/*177669*/ OPC_CheckType, MVT::v16i8, ++/*177671*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*177673*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a), LSX128B:{ *:[v16i8] }:$b), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*177681*/ /*Scope*/ 65|128,2/*321*/, /*->178004*/ ++/*177683*/ OPC_CheckChild0Same, 1, ++/*177685*/ OPC_CheckChild1Same, 0, ++/*177687*/ OPC_MoveParent, ++/*177688*/ OPC_MoveChild1, ++/*177689*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*177692*/ OPC_CheckChild0Integer, 1, ++/*177694*/ OPC_CheckChild0Type, MVT::i32, ++/*177696*/ OPC_CheckChild1Integer, 1, ++/*177698*/ OPC_CheckChild1Type, MVT::i32, ++/*177700*/ OPC_CheckChild2Integer, 1, ++/*177702*/ OPC_CheckChild2Type, MVT::i32, ++/*177704*/ OPC_CheckChild3Integer, 1, ++/*177706*/ OPC_CheckChild3Type, MVT::i32, ++/*177708*/ OPC_CheckChild4Integer, 1, ++/*177710*/ OPC_CheckChild4Type, MVT::i32, ++/*177712*/ OPC_MoveChild5, ++/*177713*/ OPC_CheckInteger, 1, ++/*177715*/ OPC_CheckType, MVT::i32, ++/*177717*/ OPC_MoveParent, ++/*177718*/ OPC_MoveChild6, ++/*177719*/ OPC_CheckInteger, 1, ++/*177721*/ OPC_CheckType, MVT::i32, ++/*177723*/ OPC_MoveParent, ++/*177724*/ OPC_MoveChild7, ++/*177725*/ OPC_CheckInteger, 1, ++/*177727*/ OPC_CheckType, MVT::i32, ++/*177729*/ OPC_MoveParent, ++/*177730*/ OPC_MoveChild, 8, ++/*177732*/ OPC_CheckInteger, 1, ++/*177734*/ OPC_CheckType, MVT::i32, ++/*177736*/ OPC_MoveParent, ++/*177737*/ OPC_MoveChild, 9, ++/*177739*/ OPC_CheckInteger, 1, ++/*177741*/ OPC_CheckType, MVT::i32, ++/*177743*/ OPC_MoveParent, ++/*177744*/ OPC_MoveChild, 10, ++/*177746*/ OPC_CheckInteger, 1, ++/*177748*/ OPC_CheckType, MVT::i32, ++/*177750*/ OPC_MoveParent, ++/*177751*/ OPC_MoveChild, 11, ++/*177753*/ OPC_CheckInteger, 1, ++/*177755*/ OPC_CheckType, MVT::i32, ++/*177757*/ OPC_MoveParent, ++/*177758*/ OPC_MoveChild, 12, ++/*177760*/ OPC_CheckInteger, 1, ++/*177762*/ OPC_CheckType, MVT::i32, ++/*177764*/ OPC_MoveParent, ++/*177765*/ OPC_MoveChild, 13, ++/*177767*/ OPC_CheckInteger, 1, ++/*177769*/ OPC_CheckType, MVT::i32, ++/*177771*/ OPC_MoveParent, ++/*177772*/ OPC_MoveChild, 14, ++/*177774*/ OPC_CheckInteger, 1, ++/*177776*/ OPC_CheckType, MVT::i32, ++/*177778*/ OPC_MoveParent, ++/*177779*/ OPC_MoveChild, 15, ++/*177781*/ OPC_CheckInteger, 1, ++/*177783*/ OPC_CheckType, MVT::i32, ++/*177785*/ OPC_MoveParent, ++/*177786*/ OPC_MoveParent, ++/*177787*/ OPC_MoveParent, ++/*177788*/ OPC_MoveChild1, ++/*177789*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*177792*/ OPC_CheckChild0Integer, 7, ++/*177794*/ OPC_CheckChild0Type, MVT::i32, ++/*177796*/ OPC_CheckChild1Integer, 7, ++/*177798*/ OPC_CheckChild1Type, MVT::i32, ++/*177800*/ OPC_CheckChild2Integer, 7, ++/*177802*/ OPC_CheckChild2Type, MVT::i32, ++/*177804*/ OPC_CheckChild3Integer, 7, ++/*177806*/ OPC_CheckChild3Type, MVT::i32, ++/*177808*/ OPC_CheckChild4Integer, 7, ++/*177810*/ OPC_CheckChild4Type, MVT::i32, ++/*177812*/ OPC_MoveChild5, ++/*177813*/ OPC_CheckInteger, 7, ++/*177815*/ OPC_CheckType, MVT::i32, ++/*177817*/ OPC_MoveParent, ++/*177818*/ OPC_MoveChild6, ++/*177819*/ OPC_CheckInteger, 7, ++/*177821*/ OPC_CheckType, MVT::i32, ++/*177823*/ OPC_MoveParent, ++/*177824*/ OPC_MoveChild7, ++/*177825*/ OPC_CheckInteger, 7, ++/*177827*/ OPC_CheckType, MVT::i32, ++/*177829*/ OPC_MoveParent, ++/*177830*/ OPC_MoveChild, 8, ++/*177832*/ OPC_CheckInteger, 7, ++/*177834*/ OPC_CheckType, MVT::i32, ++/*177836*/ OPC_MoveParent, ++/*177837*/ OPC_MoveChild, 9, ++/*177839*/ OPC_CheckInteger, 7, ++/*177841*/ OPC_CheckType, MVT::i32, ++/*177843*/ OPC_MoveParent, ++/*177844*/ OPC_MoveChild, 10, ++/*177846*/ OPC_CheckInteger, 7, ++/*177848*/ OPC_CheckType, MVT::i32, ++/*177850*/ OPC_MoveParent, ++/*177851*/ OPC_MoveChild, 11, ++/*177853*/ OPC_CheckInteger, 7, ++/*177855*/ OPC_CheckType, MVT::i32, ++/*177857*/ OPC_MoveParent, ++/*177858*/ OPC_MoveChild, 12, ++/*177860*/ OPC_CheckInteger, 7, ++/*177862*/ OPC_CheckType, MVT::i32, ++/*177864*/ OPC_MoveParent, ++/*177865*/ OPC_MoveChild, 13, ++/*177867*/ OPC_CheckInteger, 7, ++/*177869*/ OPC_CheckType, MVT::i32, ++/*177871*/ OPC_MoveParent, ++/*177872*/ OPC_MoveChild, 14, ++/*177874*/ OPC_CheckInteger, 7, ++/*177876*/ OPC_CheckType, MVT::i32, ++/*177878*/ OPC_MoveParent, ++/*177879*/ OPC_MoveChild, 15, ++/*177881*/ OPC_CheckInteger, 7, ++/*177883*/ OPC_CheckType, MVT::i32, ++/*177885*/ OPC_MoveParent, ++/*177886*/ OPC_CheckType, MVT::v16i8, ++/*177888*/ OPC_MoveParent, ++/*177889*/ OPC_MoveParent, ++/*177890*/ OPC_MoveParent, ++/*177891*/ OPC_MoveChild1, ++/*177892*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*177895*/ OPC_CheckChild0Integer, 1, ++/*177897*/ OPC_CheckChild0Type, MVT::i32, ++/*177899*/ OPC_CheckChild1Integer, 1, ++/*177901*/ OPC_CheckChild1Type, MVT::i32, ++/*177903*/ OPC_CheckChild2Integer, 1, ++/*177905*/ OPC_CheckChild2Type, MVT::i32, ++/*177907*/ OPC_CheckChild3Integer, 1, ++/*177909*/ OPC_CheckChild3Type, MVT::i32, ++/*177911*/ OPC_CheckChild4Integer, 1, ++/*177913*/ OPC_CheckChild4Type, MVT::i32, ++/*177915*/ OPC_MoveChild5, ++/*177916*/ OPC_CheckInteger, 1, ++/*177918*/ OPC_CheckType, MVT::i32, ++/*177920*/ OPC_MoveParent, ++/*177921*/ OPC_MoveChild6, ++/*177922*/ OPC_CheckInteger, 1, ++/*177924*/ OPC_CheckType, MVT::i32, ++/*177926*/ OPC_MoveParent, ++/*177927*/ OPC_MoveChild7, ++/*177928*/ OPC_CheckInteger, 1, ++/*177930*/ OPC_CheckType, MVT::i32, ++/*177932*/ OPC_MoveParent, ++/*177933*/ OPC_MoveChild, 8, ++/*177935*/ OPC_CheckInteger, 1, ++/*177937*/ OPC_CheckType, MVT::i32, ++/*177939*/ OPC_MoveParent, ++/*177940*/ OPC_MoveChild, 9, ++/*177942*/ OPC_CheckInteger, 1, ++/*177944*/ OPC_CheckType, MVT::i32, ++/*177946*/ OPC_MoveParent, ++/*177947*/ OPC_MoveChild, 10, ++/*177949*/ OPC_CheckInteger, 1, ++/*177951*/ OPC_CheckType, MVT::i32, ++/*177953*/ OPC_MoveParent, ++/*177954*/ OPC_MoveChild, 11, ++/*177956*/ OPC_CheckInteger, 1, ++/*177958*/ OPC_CheckType, MVT::i32, ++/*177960*/ OPC_MoveParent, ++/*177961*/ OPC_MoveChild, 12, ++/*177963*/ OPC_CheckInteger, 1, ++/*177965*/ OPC_CheckType, MVT::i32, ++/*177967*/ OPC_MoveParent, ++/*177968*/ OPC_MoveChild, 13, ++/*177970*/ OPC_CheckInteger, 1, ++/*177972*/ OPC_CheckType, MVT::i32, ++/*177974*/ OPC_MoveParent, ++/*177975*/ OPC_MoveChild, 14, ++/*177977*/ OPC_CheckInteger, 1, ++/*177979*/ OPC_CheckType, MVT::i32, ++/*177981*/ OPC_MoveParent, ++/*177982*/ OPC_MoveChild, 15, ++/*177984*/ OPC_CheckInteger, 1, ++/*177986*/ OPC_CheckType, MVT::i32, ++/*177988*/ OPC_MoveParent, ++/*177989*/ OPC_CheckType, MVT::v16i8, ++/*177991*/ OPC_MoveParent, ++/*177992*/ OPC_CheckType, MVT::v16i8, ++/*177994*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*177996*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a), LSX128B:{ *:[v16i8] }:$b), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*178004*/ 0, /*End of Scope*/ ++/*178005*/ /*Scope*/ 10|128,5/*650*/, /*->178657*/ ++/*178007*/ OPC_CheckChild0Same, 1, ++/*178009*/ OPC_MoveChild1, ++/*178010*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*178013*/ OPC_Scope, 63|128,2/*319*/, /*->178335*/ // 2 children in Scope ++/*178016*/ OPC_MoveChild0, ++/*178017*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*178020*/ OPC_CheckChild0Integer, 1, ++/*178022*/ OPC_CheckChild0Type, MVT::i32, ++/*178024*/ OPC_CheckChild1Integer, 1, ++/*178026*/ OPC_CheckChild1Type, MVT::i32, ++/*178028*/ OPC_CheckChild2Integer, 1, ++/*178030*/ OPC_CheckChild2Type, MVT::i32, ++/*178032*/ OPC_CheckChild3Integer, 1, ++/*178034*/ OPC_CheckChild3Type, MVT::i32, ++/*178036*/ OPC_CheckChild4Integer, 1, ++/*178038*/ OPC_CheckChild4Type, MVT::i32, ++/*178040*/ OPC_MoveChild5, ++/*178041*/ OPC_CheckInteger, 1, ++/*178043*/ OPC_CheckType, MVT::i32, ++/*178045*/ OPC_MoveParent, ++/*178046*/ OPC_MoveChild6, ++/*178047*/ OPC_CheckInteger, 1, ++/*178049*/ OPC_CheckType, MVT::i32, ++/*178051*/ OPC_MoveParent, ++/*178052*/ OPC_MoveChild7, ++/*178053*/ OPC_CheckInteger, 1, ++/*178055*/ OPC_CheckType, MVT::i32, ++/*178057*/ OPC_MoveParent, ++/*178058*/ OPC_MoveChild, 8, ++/*178060*/ OPC_CheckInteger, 1, ++/*178062*/ OPC_CheckType, MVT::i32, ++/*178064*/ OPC_MoveParent, ++/*178065*/ OPC_MoveChild, 9, ++/*178067*/ OPC_CheckInteger, 1, ++/*178069*/ OPC_CheckType, MVT::i32, ++/*178071*/ OPC_MoveParent, ++/*178072*/ OPC_MoveChild, 10, ++/*178074*/ OPC_CheckInteger, 1, ++/*178076*/ OPC_CheckType, MVT::i32, ++/*178078*/ OPC_MoveParent, ++/*178079*/ OPC_MoveChild, 11, ++/*178081*/ OPC_CheckInteger, 1, ++/*178083*/ OPC_CheckType, MVT::i32, ++/*178085*/ OPC_MoveParent, ++/*178086*/ OPC_MoveChild, 12, ++/*178088*/ OPC_CheckInteger, 1, ++/*178090*/ OPC_CheckType, MVT::i32, ++/*178092*/ OPC_MoveParent, ++/*178093*/ OPC_MoveChild, 13, ++/*178095*/ OPC_CheckInteger, 1, ++/*178097*/ OPC_CheckType, MVT::i32, ++/*178099*/ OPC_MoveParent, ++/*178100*/ OPC_MoveChild, 14, ++/*178102*/ OPC_CheckInteger, 1, ++/*178104*/ OPC_CheckType, MVT::i32, ++/*178106*/ OPC_MoveParent, ++/*178107*/ OPC_MoveChild, 15, ++/*178109*/ OPC_CheckInteger, 1, ++/*178111*/ OPC_CheckType, MVT::i32, ++/*178113*/ OPC_MoveParent, ++/*178114*/ OPC_MoveParent, ++/*178115*/ OPC_CheckChild1Same, 0, ++/*178117*/ OPC_MoveParent, ++/*178118*/ OPC_MoveParent, ++/*178119*/ OPC_MoveChild1, ++/*178120*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*178123*/ OPC_CheckChild0Integer, 7, ++/*178125*/ OPC_CheckChild0Type, MVT::i32, ++/*178127*/ OPC_CheckChild1Integer, 7, ++/*178129*/ OPC_CheckChild1Type, MVT::i32, ++/*178131*/ OPC_CheckChild2Integer, 7, ++/*178133*/ OPC_CheckChild2Type, MVT::i32, ++/*178135*/ OPC_CheckChild3Integer, 7, ++/*178137*/ OPC_CheckChild3Type, MVT::i32, ++/*178139*/ OPC_CheckChild4Integer, 7, ++/*178141*/ OPC_CheckChild4Type, MVT::i32, ++/*178143*/ OPC_MoveChild5, ++/*178144*/ OPC_CheckInteger, 7, ++/*178146*/ OPC_CheckType, MVT::i32, ++/*178148*/ OPC_MoveParent, ++/*178149*/ OPC_MoveChild6, ++/*178150*/ OPC_CheckInteger, 7, ++/*178152*/ OPC_CheckType, MVT::i32, ++/*178154*/ OPC_MoveParent, ++/*178155*/ OPC_MoveChild7, ++/*178156*/ OPC_CheckInteger, 7, ++/*178158*/ OPC_CheckType, MVT::i32, ++/*178160*/ OPC_MoveParent, ++/*178161*/ OPC_MoveChild, 8, ++/*178163*/ OPC_CheckInteger, 7, ++/*178165*/ OPC_CheckType, MVT::i32, ++/*178167*/ OPC_MoveParent, ++/*178168*/ OPC_MoveChild, 9, ++/*178170*/ OPC_CheckInteger, 7, ++/*178172*/ OPC_CheckType, MVT::i32, ++/*178174*/ OPC_MoveParent, ++/*178175*/ OPC_MoveChild, 10, ++/*178177*/ OPC_CheckInteger, 7, ++/*178179*/ OPC_CheckType, MVT::i32, ++/*178181*/ OPC_MoveParent, ++/*178182*/ OPC_MoveChild, 11, ++/*178184*/ OPC_CheckInteger, 7, ++/*178186*/ OPC_CheckType, MVT::i32, ++/*178188*/ OPC_MoveParent, ++/*178189*/ OPC_MoveChild, 12, ++/*178191*/ OPC_CheckInteger, 7, ++/*178193*/ OPC_CheckType, MVT::i32, ++/*178195*/ OPC_MoveParent, ++/*178196*/ OPC_MoveChild, 13, ++/*178198*/ OPC_CheckInteger, 7, ++/*178200*/ OPC_CheckType, MVT::i32, ++/*178202*/ OPC_MoveParent, ++/*178203*/ OPC_MoveChild, 14, ++/*178205*/ OPC_CheckInteger, 7, ++/*178207*/ OPC_CheckType, MVT::i32, ++/*178209*/ OPC_MoveParent, ++/*178210*/ OPC_MoveChild, 15, ++/*178212*/ OPC_CheckInteger, 7, ++/*178214*/ OPC_CheckType, MVT::i32, ++/*178216*/ OPC_MoveParent, ++/*178217*/ OPC_CheckType, MVT::v16i8, ++/*178219*/ OPC_MoveParent, ++/*178220*/ OPC_MoveParent, ++/*178221*/ OPC_MoveParent, ++/*178222*/ OPC_MoveChild1, ++/*178223*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*178226*/ OPC_CheckChild0Integer, 1, ++/*178228*/ OPC_CheckChild0Type, MVT::i32, ++/*178230*/ OPC_CheckChild1Integer, 1, ++/*178232*/ OPC_CheckChild1Type, MVT::i32, ++/*178234*/ OPC_CheckChild2Integer, 1, ++/*178236*/ OPC_CheckChild2Type, MVT::i32, ++/*178238*/ OPC_CheckChild3Integer, 1, ++/*178240*/ OPC_CheckChild3Type, MVT::i32, ++/*178242*/ OPC_CheckChild4Integer, 1, ++/*178244*/ OPC_CheckChild4Type, MVT::i32, ++/*178246*/ OPC_MoveChild5, ++/*178247*/ OPC_CheckInteger, 1, ++/*178249*/ OPC_CheckType, MVT::i32, ++/*178251*/ OPC_MoveParent, ++/*178252*/ OPC_MoveChild6, ++/*178253*/ OPC_CheckInteger, 1, ++/*178255*/ OPC_CheckType, MVT::i32, ++/*178257*/ OPC_MoveParent, ++/*178258*/ OPC_MoveChild7, ++/*178259*/ OPC_CheckInteger, 1, ++/*178261*/ OPC_CheckType, MVT::i32, ++/*178263*/ OPC_MoveParent, ++/*178264*/ OPC_MoveChild, 8, ++/*178266*/ OPC_CheckInteger, 1, ++/*178268*/ OPC_CheckType, MVT::i32, ++/*178270*/ OPC_MoveParent, ++/*178271*/ OPC_MoveChild, 9, ++/*178273*/ OPC_CheckInteger, 1, ++/*178275*/ OPC_CheckType, MVT::i32, ++/*178277*/ OPC_MoveParent, ++/*178278*/ OPC_MoveChild, 10, ++/*178280*/ OPC_CheckInteger, 1, ++/*178282*/ OPC_CheckType, MVT::i32, ++/*178284*/ OPC_MoveParent, ++/*178285*/ OPC_MoveChild, 11, ++/*178287*/ OPC_CheckInteger, 1, ++/*178289*/ OPC_CheckType, MVT::i32, ++/*178291*/ OPC_MoveParent, ++/*178292*/ OPC_MoveChild, 12, ++/*178294*/ OPC_CheckInteger, 1, ++/*178296*/ OPC_CheckType, MVT::i32, ++/*178298*/ OPC_MoveParent, ++/*178299*/ OPC_MoveChild, 13, ++/*178301*/ OPC_CheckInteger, 1, ++/*178303*/ OPC_CheckType, MVT::i32, ++/*178305*/ OPC_MoveParent, ++/*178306*/ OPC_MoveChild, 14, ++/*178308*/ OPC_CheckInteger, 1, ++/*178310*/ OPC_CheckType, MVT::i32, ++/*178312*/ OPC_MoveParent, ++/*178313*/ OPC_MoveChild, 15, ++/*178315*/ OPC_CheckInteger, 1, ++/*178317*/ OPC_CheckType, MVT::i32, ++/*178319*/ OPC_MoveParent, ++/*178320*/ OPC_CheckType, MVT::v16i8, ++/*178322*/ OPC_MoveParent, ++/*178323*/ OPC_CheckType, MVT::v16i8, ++/*178325*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*178327*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a), LSX128B:{ *:[v16i8] }:$b), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*178335*/ /*Scope*/ 63|128,2/*319*/, /*->178656*/ ++/*178337*/ OPC_CheckChild0Same, 0, ++/*178339*/ OPC_MoveChild1, ++/*178340*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*178343*/ OPC_CheckChild0Integer, 1, ++/*178345*/ OPC_CheckChild0Type, MVT::i32, ++/*178347*/ OPC_CheckChild1Integer, 1, ++/*178349*/ OPC_CheckChild1Type, MVT::i32, ++/*178351*/ OPC_CheckChild2Integer, 1, ++/*178353*/ OPC_CheckChild2Type, MVT::i32, ++/*178355*/ OPC_CheckChild3Integer, 1, ++/*178357*/ OPC_CheckChild3Type, MVT::i32, ++/*178359*/ OPC_CheckChild4Integer, 1, ++/*178361*/ OPC_CheckChild4Type, MVT::i32, ++/*178363*/ OPC_MoveChild5, ++/*178364*/ OPC_CheckInteger, 1, ++/*178366*/ OPC_CheckType, MVT::i32, ++/*178368*/ OPC_MoveParent, ++/*178369*/ OPC_MoveChild6, ++/*178370*/ OPC_CheckInteger, 1, ++/*178372*/ OPC_CheckType, MVT::i32, ++/*178374*/ OPC_MoveParent, ++/*178375*/ OPC_MoveChild7, ++/*178376*/ OPC_CheckInteger, 1, ++/*178378*/ OPC_CheckType, MVT::i32, ++/*178380*/ OPC_MoveParent, ++/*178381*/ OPC_MoveChild, 8, ++/*178383*/ OPC_CheckInteger, 1, ++/*178385*/ OPC_CheckType, MVT::i32, ++/*178387*/ OPC_MoveParent, ++/*178388*/ OPC_MoveChild, 9, ++/*178390*/ OPC_CheckInteger, 1, ++/*178392*/ OPC_CheckType, MVT::i32, ++/*178394*/ OPC_MoveParent, ++/*178395*/ OPC_MoveChild, 10, ++/*178397*/ OPC_CheckInteger, 1, ++/*178399*/ OPC_CheckType, MVT::i32, ++/*178401*/ OPC_MoveParent, ++/*178402*/ OPC_MoveChild, 11, ++/*178404*/ OPC_CheckInteger, 1, ++/*178406*/ OPC_CheckType, MVT::i32, ++/*178408*/ OPC_MoveParent, ++/*178409*/ OPC_MoveChild, 12, ++/*178411*/ OPC_CheckInteger, 1, ++/*178413*/ OPC_CheckType, MVT::i32, ++/*178415*/ OPC_MoveParent, ++/*178416*/ OPC_MoveChild, 13, ++/*178418*/ OPC_CheckInteger, 1, ++/*178420*/ OPC_CheckType, MVT::i32, ++/*178422*/ OPC_MoveParent, ++/*178423*/ OPC_MoveChild, 14, ++/*178425*/ OPC_CheckInteger, 1, ++/*178427*/ OPC_CheckType, MVT::i32, ++/*178429*/ OPC_MoveParent, ++/*178430*/ OPC_MoveChild, 15, ++/*178432*/ OPC_CheckInteger, 1, ++/*178434*/ OPC_CheckType, MVT::i32, ++/*178436*/ OPC_MoveParent, ++/*178437*/ OPC_MoveParent, ++/*178438*/ OPC_MoveParent, ++/*178439*/ OPC_MoveParent, ++/*178440*/ OPC_MoveChild1, ++/*178441*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*178444*/ OPC_CheckChild0Integer, 7, ++/*178446*/ OPC_CheckChild0Type, MVT::i32, ++/*178448*/ OPC_CheckChild1Integer, 7, ++/*178450*/ OPC_CheckChild1Type, MVT::i32, ++/*178452*/ OPC_CheckChild2Integer, 7, ++/*178454*/ OPC_CheckChild2Type, MVT::i32, ++/*178456*/ OPC_CheckChild3Integer, 7, ++/*178458*/ OPC_CheckChild3Type, MVT::i32, ++/*178460*/ OPC_CheckChild4Integer, 7, ++/*178462*/ OPC_CheckChild4Type, MVT::i32, ++/*178464*/ OPC_MoveChild5, ++/*178465*/ OPC_CheckInteger, 7, ++/*178467*/ OPC_CheckType, MVT::i32, ++/*178469*/ OPC_MoveParent, ++/*178470*/ OPC_MoveChild6, ++/*178471*/ OPC_CheckInteger, 7, ++/*178473*/ OPC_CheckType, MVT::i32, ++/*178475*/ OPC_MoveParent, ++/*178476*/ OPC_MoveChild7, ++/*178477*/ OPC_CheckInteger, 7, ++/*178479*/ OPC_CheckType, MVT::i32, ++/*178481*/ OPC_MoveParent, ++/*178482*/ OPC_MoveChild, 8, ++/*178484*/ OPC_CheckInteger, 7, ++/*178486*/ OPC_CheckType, MVT::i32, ++/*178488*/ OPC_MoveParent, ++/*178489*/ OPC_MoveChild, 9, ++/*178491*/ OPC_CheckInteger, 7, ++/*178493*/ OPC_CheckType, MVT::i32, ++/*178495*/ OPC_MoveParent, ++/*178496*/ OPC_MoveChild, 10, ++/*178498*/ OPC_CheckInteger, 7, ++/*178500*/ OPC_CheckType, MVT::i32, ++/*178502*/ OPC_MoveParent, ++/*178503*/ OPC_MoveChild, 11, ++/*178505*/ OPC_CheckInteger, 7, ++/*178507*/ OPC_CheckType, MVT::i32, ++/*178509*/ OPC_MoveParent, ++/*178510*/ OPC_MoveChild, 12, ++/*178512*/ OPC_CheckInteger, 7, ++/*178514*/ OPC_CheckType, MVT::i32, ++/*178516*/ OPC_MoveParent, ++/*178517*/ OPC_MoveChild, 13, ++/*178519*/ OPC_CheckInteger, 7, ++/*178521*/ OPC_CheckType, MVT::i32, ++/*178523*/ OPC_MoveParent, ++/*178524*/ OPC_MoveChild, 14, ++/*178526*/ OPC_CheckInteger, 7, ++/*178528*/ OPC_CheckType, MVT::i32, ++/*178530*/ OPC_MoveParent, ++/*178531*/ OPC_MoveChild, 15, ++/*178533*/ OPC_CheckInteger, 7, ++/*178535*/ OPC_CheckType, MVT::i32, ++/*178537*/ OPC_MoveParent, ++/*178538*/ OPC_CheckType, MVT::v16i8, ++/*178540*/ OPC_MoveParent, ++/*178541*/ OPC_MoveParent, ++/*178542*/ OPC_MoveParent, ++/*178543*/ OPC_MoveChild1, ++/*178544*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*178547*/ OPC_CheckChild0Integer, 1, ++/*178549*/ OPC_CheckChild0Type, MVT::i32, ++/*178551*/ OPC_CheckChild1Integer, 1, ++/*178553*/ OPC_CheckChild1Type, MVT::i32, ++/*178555*/ OPC_CheckChild2Integer, 1, ++/*178557*/ OPC_CheckChild2Type, MVT::i32, ++/*178559*/ OPC_CheckChild3Integer, 1, ++/*178561*/ OPC_CheckChild3Type, MVT::i32, ++/*178563*/ OPC_CheckChild4Integer, 1, ++/*178565*/ OPC_CheckChild4Type, MVT::i32, ++/*178567*/ OPC_MoveChild5, ++/*178568*/ OPC_CheckInteger, 1, ++/*178570*/ OPC_CheckType, MVT::i32, ++/*178572*/ OPC_MoveParent, ++/*178573*/ OPC_MoveChild6, ++/*178574*/ OPC_CheckInteger, 1, ++/*178576*/ OPC_CheckType, MVT::i32, ++/*178578*/ OPC_MoveParent, ++/*178579*/ OPC_MoveChild7, ++/*178580*/ OPC_CheckInteger, 1, ++/*178582*/ OPC_CheckType, MVT::i32, ++/*178584*/ OPC_MoveParent, ++/*178585*/ OPC_MoveChild, 8, ++/*178587*/ OPC_CheckInteger, 1, ++/*178589*/ OPC_CheckType, MVT::i32, ++/*178591*/ OPC_MoveParent, ++/*178592*/ OPC_MoveChild, 9, ++/*178594*/ OPC_CheckInteger, 1, ++/*178596*/ OPC_CheckType, MVT::i32, ++/*178598*/ OPC_MoveParent, ++/*178599*/ OPC_MoveChild, 10, ++/*178601*/ OPC_CheckInteger, 1, ++/*178603*/ OPC_CheckType, MVT::i32, ++/*178605*/ OPC_MoveParent, ++/*178606*/ OPC_MoveChild, 11, ++/*178608*/ OPC_CheckInteger, 1, ++/*178610*/ OPC_CheckType, MVT::i32, ++/*178612*/ OPC_MoveParent, ++/*178613*/ OPC_MoveChild, 12, ++/*178615*/ OPC_CheckInteger, 1, ++/*178617*/ OPC_CheckType, MVT::i32, ++/*178619*/ OPC_MoveParent, ++/*178620*/ OPC_MoveChild, 13, ++/*178622*/ OPC_CheckInteger, 1, ++/*178624*/ OPC_CheckType, MVT::i32, ++/*178626*/ OPC_MoveParent, ++/*178627*/ OPC_MoveChild, 14, ++/*178629*/ OPC_CheckInteger, 1, ++/*178631*/ OPC_CheckType, MVT::i32, ++/*178633*/ OPC_MoveParent, ++/*178634*/ OPC_MoveChild, 15, ++/*178636*/ OPC_CheckInteger, 1, ++/*178638*/ OPC_CheckType, MVT::i32, ++/*178640*/ OPC_MoveParent, ++/*178641*/ OPC_CheckType, MVT::v16i8, ++/*178643*/ OPC_MoveParent, ++/*178644*/ OPC_CheckType, MVT::v16i8, ++/*178646*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*178648*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a), LSX128B:{ *:[v16i8] }:$b), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*178656*/ 0, /*End of Scope*/ ++/*178657*/ /*Scope*/ 10|128,5/*650*/, /*->179309*/ ++/*178659*/ OPC_CheckChild0Same, 0, ++/*178661*/ OPC_MoveChild1, ++/*178662*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*178665*/ OPC_Scope, 63|128,2/*319*/, /*->178987*/ // 2 children in Scope ++/*178668*/ OPC_MoveChild0, ++/*178669*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*178672*/ OPC_CheckChild0Integer, 1, ++/*178674*/ OPC_CheckChild0Type, MVT::i32, ++/*178676*/ OPC_CheckChild1Integer, 1, ++/*178678*/ OPC_CheckChild1Type, MVT::i32, ++/*178680*/ OPC_CheckChild2Integer, 1, ++/*178682*/ OPC_CheckChild2Type, MVT::i32, ++/*178684*/ OPC_CheckChild3Integer, 1, ++/*178686*/ OPC_CheckChild3Type, MVT::i32, ++/*178688*/ OPC_CheckChild4Integer, 1, ++/*178690*/ OPC_CheckChild4Type, MVT::i32, ++/*178692*/ OPC_MoveChild5, ++/*178693*/ OPC_CheckInteger, 1, ++/*178695*/ OPC_CheckType, MVT::i32, ++/*178697*/ OPC_MoveParent, ++/*178698*/ OPC_MoveChild6, ++/*178699*/ OPC_CheckInteger, 1, ++/*178701*/ OPC_CheckType, MVT::i32, ++/*178703*/ OPC_MoveParent, ++/*178704*/ OPC_MoveChild7, ++/*178705*/ OPC_CheckInteger, 1, ++/*178707*/ OPC_CheckType, MVT::i32, ++/*178709*/ OPC_MoveParent, ++/*178710*/ OPC_MoveChild, 8, ++/*178712*/ OPC_CheckInteger, 1, ++/*178714*/ OPC_CheckType, MVT::i32, ++/*178716*/ OPC_MoveParent, ++/*178717*/ OPC_MoveChild, 9, ++/*178719*/ OPC_CheckInteger, 1, ++/*178721*/ OPC_CheckType, MVT::i32, ++/*178723*/ OPC_MoveParent, ++/*178724*/ OPC_MoveChild, 10, ++/*178726*/ OPC_CheckInteger, 1, ++/*178728*/ OPC_CheckType, MVT::i32, ++/*178730*/ OPC_MoveParent, ++/*178731*/ OPC_MoveChild, 11, ++/*178733*/ OPC_CheckInteger, 1, ++/*178735*/ OPC_CheckType, MVT::i32, ++/*178737*/ OPC_MoveParent, ++/*178738*/ OPC_MoveChild, 12, ++/*178740*/ OPC_CheckInteger, 1, ++/*178742*/ OPC_CheckType, MVT::i32, ++/*178744*/ OPC_MoveParent, ++/*178745*/ OPC_MoveChild, 13, ++/*178747*/ OPC_CheckInteger, 1, ++/*178749*/ OPC_CheckType, MVT::i32, ++/*178751*/ OPC_MoveParent, ++/*178752*/ OPC_MoveChild, 14, ++/*178754*/ OPC_CheckInteger, 1, ++/*178756*/ OPC_CheckType, MVT::i32, ++/*178758*/ OPC_MoveParent, ++/*178759*/ OPC_MoveChild, 15, ++/*178761*/ OPC_CheckInteger, 1, ++/*178763*/ OPC_CheckType, MVT::i32, ++/*178765*/ OPC_MoveParent, ++/*178766*/ OPC_MoveParent, ++/*178767*/ OPC_CheckChild1Same, 1, ++/*178769*/ OPC_MoveParent, ++/*178770*/ OPC_MoveParent, ++/*178771*/ OPC_MoveChild1, ++/*178772*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*178775*/ OPC_CheckChild0Integer, 7, ++/*178777*/ OPC_CheckChild0Type, MVT::i32, ++/*178779*/ OPC_CheckChild1Integer, 7, ++/*178781*/ OPC_CheckChild1Type, MVT::i32, ++/*178783*/ OPC_CheckChild2Integer, 7, ++/*178785*/ OPC_CheckChild2Type, MVT::i32, ++/*178787*/ OPC_CheckChild3Integer, 7, ++/*178789*/ OPC_CheckChild3Type, MVT::i32, ++/*178791*/ OPC_CheckChild4Integer, 7, ++/*178793*/ OPC_CheckChild4Type, MVT::i32, ++/*178795*/ OPC_MoveChild5, ++/*178796*/ OPC_CheckInteger, 7, ++/*178798*/ OPC_CheckType, MVT::i32, ++/*178800*/ OPC_MoveParent, ++/*178801*/ OPC_MoveChild6, ++/*178802*/ OPC_CheckInteger, 7, ++/*178804*/ OPC_CheckType, MVT::i32, ++/*178806*/ OPC_MoveParent, ++/*178807*/ OPC_MoveChild7, ++/*178808*/ OPC_CheckInteger, 7, ++/*178810*/ OPC_CheckType, MVT::i32, ++/*178812*/ OPC_MoveParent, ++/*178813*/ OPC_MoveChild, 8, ++/*178815*/ OPC_CheckInteger, 7, ++/*178817*/ OPC_CheckType, MVT::i32, ++/*178819*/ OPC_MoveParent, ++/*178820*/ OPC_MoveChild, 9, ++/*178822*/ OPC_CheckInteger, 7, ++/*178824*/ OPC_CheckType, MVT::i32, ++/*178826*/ OPC_MoveParent, ++/*178827*/ OPC_MoveChild, 10, ++/*178829*/ OPC_CheckInteger, 7, ++/*178831*/ OPC_CheckType, MVT::i32, ++/*178833*/ OPC_MoveParent, ++/*178834*/ OPC_MoveChild, 11, ++/*178836*/ OPC_CheckInteger, 7, ++/*178838*/ OPC_CheckType, MVT::i32, ++/*178840*/ OPC_MoveParent, ++/*178841*/ OPC_MoveChild, 12, ++/*178843*/ OPC_CheckInteger, 7, ++/*178845*/ OPC_CheckType, MVT::i32, ++/*178847*/ OPC_MoveParent, ++/*178848*/ OPC_MoveChild, 13, ++/*178850*/ OPC_CheckInteger, 7, ++/*178852*/ OPC_CheckType, MVT::i32, ++/*178854*/ OPC_MoveParent, ++/*178855*/ OPC_MoveChild, 14, ++/*178857*/ OPC_CheckInteger, 7, ++/*178859*/ OPC_CheckType, MVT::i32, ++/*178861*/ OPC_MoveParent, ++/*178862*/ OPC_MoveChild, 15, ++/*178864*/ OPC_CheckInteger, 7, ++/*178866*/ OPC_CheckType, MVT::i32, ++/*178868*/ OPC_MoveParent, ++/*178869*/ OPC_CheckType, MVT::v16i8, ++/*178871*/ OPC_MoveParent, ++/*178872*/ OPC_MoveParent, ++/*178873*/ OPC_MoveParent, ++/*178874*/ OPC_MoveChild1, ++/*178875*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*178878*/ OPC_CheckChild0Integer, 1, ++/*178880*/ OPC_CheckChild0Type, MVT::i32, ++/*178882*/ OPC_CheckChild1Integer, 1, ++/*178884*/ OPC_CheckChild1Type, MVT::i32, ++/*178886*/ OPC_CheckChild2Integer, 1, ++/*178888*/ OPC_CheckChild2Type, MVT::i32, ++/*178890*/ OPC_CheckChild3Integer, 1, ++/*178892*/ OPC_CheckChild3Type, MVT::i32, ++/*178894*/ OPC_CheckChild4Integer, 1, ++/*178896*/ OPC_CheckChild4Type, MVT::i32, ++/*178898*/ OPC_MoveChild5, ++/*178899*/ OPC_CheckInteger, 1, ++/*178901*/ OPC_CheckType, MVT::i32, ++/*178903*/ OPC_MoveParent, ++/*178904*/ OPC_MoveChild6, ++/*178905*/ OPC_CheckInteger, 1, ++/*178907*/ OPC_CheckType, MVT::i32, ++/*178909*/ OPC_MoveParent, ++/*178910*/ OPC_MoveChild7, ++/*178911*/ OPC_CheckInteger, 1, ++/*178913*/ OPC_CheckType, MVT::i32, ++/*178915*/ OPC_MoveParent, ++/*178916*/ OPC_MoveChild, 8, ++/*178918*/ OPC_CheckInteger, 1, ++/*178920*/ OPC_CheckType, MVT::i32, ++/*178922*/ OPC_MoveParent, ++/*178923*/ OPC_MoveChild, 9, ++/*178925*/ OPC_CheckInteger, 1, ++/*178927*/ OPC_CheckType, MVT::i32, ++/*178929*/ OPC_MoveParent, ++/*178930*/ OPC_MoveChild, 10, ++/*178932*/ OPC_CheckInteger, 1, ++/*178934*/ OPC_CheckType, MVT::i32, ++/*178936*/ OPC_MoveParent, ++/*178937*/ OPC_MoveChild, 11, ++/*178939*/ OPC_CheckInteger, 1, ++/*178941*/ OPC_CheckType, MVT::i32, ++/*178943*/ OPC_MoveParent, ++/*178944*/ OPC_MoveChild, 12, ++/*178946*/ OPC_CheckInteger, 1, ++/*178948*/ OPC_CheckType, MVT::i32, ++/*178950*/ OPC_MoveParent, ++/*178951*/ OPC_MoveChild, 13, ++/*178953*/ OPC_CheckInteger, 1, ++/*178955*/ OPC_CheckType, MVT::i32, ++/*178957*/ OPC_MoveParent, ++/*178958*/ OPC_MoveChild, 14, ++/*178960*/ OPC_CheckInteger, 1, ++/*178962*/ OPC_CheckType, MVT::i32, ++/*178964*/ OPC_MoveParent, ++/*178965*/ OPC_MoveChild, 15, ++/*178967*/ OPC_CheckInteger, 1, ++/*178969*/ OPC_CheckType, MVT::i32, ++/*178971*/ OPC_MoveParent, ++/*178972*/ OPC_CheckType, MVT::v16i8, ++/*178974*/ OPC_MoveParent, ++/*178975*/ OPC_CheckType, MVT::v16i8, ++/*178977*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*178979*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a), LSX128B:{ *:[v16i8] }:$b), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*178987*/ /*Scope*/ 63|128,2/*319*/, /*->179308*/ ++/*178989*/ OPC_CheckChild0Same, 1, ++/*178991*/ OPC_MoveChild1, ++/*178992*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*178995*/ OPC_CheckChild0Integer, 1, ++/*178997*/ OPC_CheckChild0Type, MVT::i32, ++/*178999*/ OPC_CheckChild1Integer, 1, ++/*179001*/ OPC_CheckChild1Type, MVT::i32, ++/*179003*/ OPC_CheckChild2Integer, 1, ++/*179005*/ OPC_CheckChild2Type, MVT::i32, ++/*179007*/ OPC_CheckChild3Integer, 1, ++/*179009*/ OPC_CheckChild3Type, MVT::i32, ++/*179011*/ OPC_CheckChild4Integer, 1, ++/*179013*/ OPC_CheckChild4Type, MVT::i32, ++/*179015*/ OPC_MoveChild5, ++/*179016*/ OPC_CheckInteger, 1, ++/*179018*/ OPC_CheckType, MVT::i32, ++/*179020*/ OPC_MoveParent, ++/*179021*/ OPC_MoveChild6, ++/*179022*/ OPC_CheckInteger, 1, ++/*179024*/ OPC_CheckType, MVT::i32, ++/*179026*/ OPC_MoveParent, ++/*179027*/ OPC_MoveChild7, ++/*179028*/ OPC_CheckInteger, 1, ++/*179030*/ OPC_CheckType, MVT::i32, ++/*179032*/ OPC_MoveParent, ++/*179033*/ OPC_MoveChild, 8, ++/*179035*/ OPC_CheckInteger, 1, ++/*179037*/ OPC_CheckType, MVT::i32, ++/*179039*/ OPC_MoveParent, ++/*179040*/ OPC_MoveChild, 9, ++/*179042*/ OPC_CheckInteger, 1, ++/*179044*/ OPC_CheckType, MVT::i32, ++/*179046*/ OPC_MoveParent, ++/*179047*/ OPC_MoveChild, 10, ++/*179049*/ OPC_CheckInteger, 1, ++/*179051*/ OPC_CheckType, MVT::i32, ++/*179053*/ OPC_MoveParent, ++/*179054*/ OPC_MoveChild, 11, ++/*179056*/ OPC_CheckInteger, 1, ++/*179058*/ OPC_CheckType, MVT::i32, ++/*179060*/ OPC_MoveParent, ++/*179061*/ OPC_MoveChild, 12, ++/*179063*/ OPC_CheckInteger, 1, ++/*179065*/ OPC_CheckType, MVT::i32, ++/*179067*/ OPC_MoveParent, ++/*179068*/ OPC_MoveChild, 13, ++/*179070*/ OPC_CheckInteger, 1, ++/*179072*/ OPC_CheckType, MVT::i32, ++/*179074*/ OPC_MoveParent, ++/*179075*/ OPC_MoveChild, 14, ++/*179077*/ OPC_CheckInteger, 1, ++/*179079*/ OPC_CheckType, MVT::i32, ++/*179081*/ OPC_MoveParent, ++/*179082*/ OPC_MoveChild, 15, ++/*179084*/ OPC_CheckInteger, 1, ++/*179086*/ OPC_CheckType, MVT::i32, ++/*179088*/ OPC_MoveParent, ++/*179089*/ OPC_MoveParent, ++/*179090*/ OPC_MoveParent, ++/*179091*/ OPC_MoveParent, ++/*179092*/ OPC_MoveChild1, ++/*179093*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*179096*/ OPC_CheckChild0Integer, 7, ++/*179098*/ OPC_CheckChild0Type, MVT::i32, ++/*179100*/ OPC_CheckChild1Integer, 7, ++/*179102*/ OPC_CheckChild1Type, MVT::i32, ++/*179104*/ OPC_CheckChild2Integer, 7, ++/*179106*/ OPC_CheckChild2Type, MVT::i32, ++/*179108*/ OPC_CheckChild3Integer, 7, ++/*179110*/ OPC_CheckChild3Type, MVT::i32, ++/*179112*/ OPC_CheckChild4Integer, 7, ++/*179114*/ OPC_CheckChild4Type, MVT::i32, ++/*179116*/ OPC_MoveChild5, ++/*179117*/ OPC_CheckInteger, 7, ++/*179119*/ OPC_CheckType, MVT::i32, ++/*179121*/ OPC_MoveParent, ++/*179122*/ OPC_MoveChild6, ++/*179123*/ OPC_CheckInteger, 7, ++/*179125*/ OPC_CheckType, MVT::i32, ++/*179127*/ OPC_MoveParent, ++/*179128*/ OPC_MoveChild7, ++/*179129*/ OPC_CheckInteger, 7, ++/*179131*/ OPC_CheckType, MVT::i32, ++/*179133*/ OPC_MoveParent, ++/*179134*/ OPC_MoveChild, 8, ++/*179136*/ OPC_CheckInteger, 7, ++/*179138*/ OPC_CheckType, MVT::i32, ++/*179140*/ OPC_MoveParent, ++/*179141*/ OPC_MoveChild, 9, ++/*179143*/ OPC_CheckInteger, 7, ++/*179145*/ OPC_CheckType, MVT::i32, ++/*179147*/ OPC_MoveParent, ++/*179148*/ OPC_MoveChild, 10, ++/*179150*/ OPC_CheckInteger, 7, ++/*179152*/ OPC_CheckType, MVT::i32, ++/*179154*/ OPC_MoveParent, ++/*179155*/ OPC_MoveChild, 11, ++/*179157*/ OPC_CheckInteger, 7, ++/*179159*/ OPC_CheckType, MVT::i32, ++/*179161*/ OPC_MoveParent, ++/*179162*/ OPC_MoveChild, 12, ++/*179164*/ OPC_CheckInteger, 7, ++/*179166*/ OPC_CheckType, MVT::i32, ++/*179168*/ OPC_MoveParent, ++/*179169*/ OPC_MoveChild, 13, ++/*179171*/ OPC_CheckInteger, 7, ++/*179173*/ OPC_CheckType, MVT::i32, ++/*179175*/ OPC_MoveParent, ++/*179176*/ OPC_MoveChild, 14, ++/*179178*/ OPC_CheckInteger, 7, ++/*179180*/ OPC_CheckType, MVT::i32, ++/*179182*/ OPC_MoveParent, ++/*179183*/ OPC_MoveChild, 15, ++/*179185*/ OPC_CheckInteger, 7, ++/*179187*/ OPC_CheckType, MVT::i32, ++/*179189*/ OPC_MoveParent, ++/*179190*/ OPC_CheckType, MVT::v16i8, ++/*179192*/ OPC_MoveParent, ++/*179193*/ OPC_MoveParent, ++/*179194*/ OPC_MoveParent, ++/*179195*/ OPC_MoveChild1, ++/*179196*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*179199*/ OPC_CheckChild0Integer, 1, ++/*179201*/ OPC_CheckChild0Type, MVT::i32, ++/*179203*/ OPC_CheckChild1Integer, 1, ++/*179205*/ OPC_CheckChild1Type, MVT::i32, ++/*179207*/ OPC_CheckChild2Integer, 1, ++/*179209*/ OPC_CheckChild2Type, MVT::i32, ++/*179211*/ OPC_CheckChild3Integer, 1, ++/*179213*/ OPC_CheckChild3Type, MVT::i32, ++/*179215*/ OPC_CheckChild4Integer, 1, ++/*179217*/ OPC_CheckChild4Type, MVT::i32, ++/*179219*/ OPC_MoveChild5, ++/*179220*/ OPC_CheckInteger, 1, ++/*179222*/ OPC_CheckType, MVT::i32, ++/*179224*/ OPC_MoveParent, ++/*179225*/ OPC_MoveChild6, ++/*179226*/ OPC_CheckInteger, 1, ++/*179228*/ OPC_CheckType, MVT::i32, ++/*179230*/ OPC_MoveParent, ++/*179231*/ OPC_MoveChild7, ++/*179232*/ OPC_CheckInteger, 1, ++/*179234*/ OPC_CheckType, MVT::i32, ++/*179236*/ OPC_MoveParent, ++/*179237*/ OPC_MoveChild, 8, ++/*179239*/ OPC_CheckInteger, 1, ++/*179241*/ OPC_CheckType, MVT::i32, ++/*179243*/ OPC_MoveParent, ++/*179244*/ OPC_MoveChild, 9, ++/*179246*/ OPC_CheckInteger, 1, ++/*179248*/ OPC_CheckType, MVT::i32, ++/*179250*/ OPC_MoveParent, ++/*179251*/ OPC_MoveChild, 10, ++/*179253*/ OPC_CheckInteger, 1, ++/*179255*/ OPC_CheckType, MVT::i32, ++/*179257*/ OPC_MoveParent, ++/*179258*/ OPC_MoveChild, 11, ++/*179260*/ OPC_CheckInteger, 1, ++/*179262*/ OPC_CheckType, MVT::i32, ++/*179264*/ OPC_MoveParent, ++/*179265*/ OPC_MoveChild, 12, ++/*179267*/ OPC_CheckInteger, 1, ++/*179269*/ OPC_CheckType, MVT::i32, ++/*179271*/ OPC_MoveParent, ++/*179272*/ OPC_MoveChild, 13, ++/*179274*/ OPC_CheckInteger, 1, ++/*179276*/ OPC_CheckType, MVT::i32, ++/*179278*/ OPC_MoveParent, ++/*179279*/ OPC_MoveChild, 14, ++/*179281*/ OPC_CheckInteger, 1, ++/*179283*/ OPC_CheckType, MVT::i32, ++/*179285*/ OPC_MoveParent, ++/*179286*/ OPC_MoveChild, 15, ++/*179288*/ OPC_CheckInteger, 1, ++/*179290*/ OPC_CheckType, MVT::i32, ++/*179292*/ OPC_MoveParent, ++/*179293*/ OPC_CheckType, MVT::v16i8, ++/*179295*/ OPC_MoveParent, ++/*179296*/ OPC_CheckType, MVT::v16i8, ++/*179298*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*179300*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a), LSX128B:{ *:[v16i8] }:$b), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*179308*/ 0, /*End of Scope*/ ++/*179309*/ /*Scope*/ 41|128,4/*553*/, /*->179864*/ ++/*179311*/ OPC_MoveChild0, ++/*179312*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*179315*/ OPC_CheckChild0Integer, 1, ++/*179317*/ OPC_CheckChild0Type, MVT::i32, ++/*179319*/ OPC_CheckChild1Integer, 1, ++/*179321*/ OPC_CheckChild1Type, MVT::i32, ++/*179323*/ OPC_CheckChild2Integer, 1, ++/*179325*/ OPC_CheckChild2Type, MVT::i32, ++/*179327*/ OPC_CheckChild3Integer, 1, ++/*179329*/ OPC_CheckChild3Type, MVT::i32, ++/*179331*/ OPC_CheckChild4Integer, 1, ++/*179333*/ OPC_CheckChild4Type, MVT::i32, ++/*179335*/ OPC_MoveChild5, ++/*179336*/ OPC_CheckInteger, 1, ++/*179338*/ OPC_CheckType, MVT::i32, ++/*179340*/ OPC_MoveParent, ++/*179341*/ OPC_MoveChild6, ++/*179342*/ OPC_CheckInteger, 1, ++/*179344*/ OPC_CheckType, MVT::i32, ++/*179346*/ OPC_MoveParent, ++/*179347*/ OPC_MoveChild7, ++/*179348*/ OPC_CheckInteger, 1, ++/*179350*/ OPC_CheckType, MVT::i32, ++/*179352*/ OPC_MoveParent, ++/*179353*/ OPC_MoveChild, 8, ++/*179355*/ OPC_CheckInteger, 1, ++/*179357*/ OPC_CheckType, MVT::i32, ++/*179359*/ OPC_MoveParent, ++/*179360*/ OPC_MoveChild, 9, ++/*179362*/ OPC_CheckInteger, 1, ++/*179364*/ OPC_CheckType, MVT::i32, ++/*179366*/ OPC_MoveParent, ++/*179367*/ OPC_MoveChild, 10, ++/*179369*/ OPC_CheckInteger, 1, ++/*179371*/ OPC_CheckType, MVT::i32, ++/*179373*/ OPC_MoveParent, ++/*179374*/ OPC_MoveChild, 11, ++/*179376*/ OPC_CheckInteger, 1, ++/*179378*/ OPC_CheckType, MVT::i32, ++/*179380*/ OPC_MoveParent, ++/*179381*/ OPC_MoveChild, 12, ++/*179383*/ OPC_CheckInteger, 1, ++/*179385*/ OPC_CheckType, MVT::i32, ++/*179387*/ OPC_MoveParent, ++/*179388*/ OPC_MoveChild, 13, ++/*179390*/ OPC_CheckInteger, 1, ++/*179392*/ OPC_CheckType, MVT::i32, ++/*179394*/ OPC_MoveParent, ++/*179395*/ OPC_MoveChild, 14, ++/*179397*/ OPC_CheckInteger, 1, ++/*179399*/ OPC_CheckType, MVT::i32, ++/*179401*/ OPC_MoveParent, ++/*179402*/ OPC_MoveChild, 15, ++/*179404*/ OPC_CheckInteger, 1, ++/*179406*/ OPC_CheckType, MVT::i32, ++/*179408*/ OPC_MoveParent, ++/*179409*/ OPC_MoveParent, ++/*179410*/ OPC_MoveChild1, ++/*179411*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*179414*/ OPC_Scope, 94|128,1/*222*/, /*->179639*/ // 2 children in Scope ++/*179417*/ OPC_CheckChild0Same, 0, ++/*179419*/ OPC_CheckChild1Same, 1, ++/*179421*/ OPC_MoveParent, ++/*179422*/ OPC_MoveParent, ++/*179423*/ OPC_MoveChild1, ++/*179424*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*179427*/ OPC_CheckChild0Integer, 7, ++/*179429*/ OPC_CheckChild0Type, MVT::i32, ++/*179431*/ OPC_CheckChild1Integer, 7, ++/*179433*/ OPC_CheckChild1Type, MVT::i32, ++/*179435*/ OPC_CheckChild2Integer, 7, ++/*179437*/ OPC_CheckChild2Type, MVT::i32, ++/*179439*/ OPC_CheckChild3Integer, 7, ++/*179441*/ OPC_CheckChild3Type, MVT::i32, ++/*179443*/ OPC_CheckChild4Integer, 7, ++/*179445*/ OPC_CheckChild4Type, MVT::i32, ++/*179447*/ OPC_MoveChild5, ++/*179448*/ OPC_CheckInteger, 7, ++/*179450*/ OPC_CheckType, MVT::i32, ++/*179452*/ OPC_MoveParent, ++/*179453*/ OPC_MoveChild6, ++/*179454*/ OPC_CheckInteger, 7, ++/*179456*/ OPC_CheckType, MVT::i32, ++/*179458*/ OPC_MoveParent, ++/*179459*/ OPC_MoveChild7, ++/*179460*/ OPC_CheckInteger, 7, ++/*179462*/ OPC_CheckType, MVT::i32, ++/*179464*/ OPC_MoveParent, ++/*179465*/ OPC_MoveChild, 8, ++/*179467*/ OPC_CheckInteger, 7, ++/*179469*/ OPC_CheckType, MVT::i32, ++/*179471*/ OPC_MoveParent, ++/*179472*/ OPC_MoveChild, 9, ++/*179474*/ OPC_CheckInteger, 7, ++/*179476*/ OPC_CheckType, MVT::i32, ++/*179478*/ OPC_MoveParent, ++/*179479*/ OPC_MoveChild, 10, ++/*179481*/ OPC_CheckInteger, 7, ++/*179483*/ OPC_CheckType, MVT::i32, ++/*179485*/ OPC_MoveParent, ++/*179486*/ OPC_MoveChild, 11, ++/*179488*/ OPC_CheckInteger, 7, ++/*179490*/ OPC_CheckType, MVT::i32, ++/*179492*/ OPC_MoveParent, ++/*179493*/ OPC_MoveChild, 12, ++/*179495*/ OPC_CheckInteger, 7, ++/*179497*/ OPC_CheckType, MVT::i32, ++/*179499*/ OPC_MoveParent, ++/*179500*/ OPC_MoveChild, 13, ++/*179502*/ OPC_CheckInteger, 7, ++/*179504*/ OPC_CheckType, MVT::i32, ++/*179506*/ OPC_MoveParent, ++/*179507*/ OPC_MoveChild, 14, ++/*179509*/ OPC_CheckInteger, 7, ++/*179511*/ OPC_CheckType, MVT::i32, ++/*179513*/ OPC_MoveParent, ++/*179514*/ OPC_MoveChild, 15, ++/*179516*/ OPC_CheckInteger, 7, ++/*179518*/ OPC_CheckType, MVT::i32, ++/*179520*/ OPC_MoveParent, ++/*179521*/ OPC_CheckType, MVT::v16i8, ++/*179523*/ OPC_MoveParent, ++/*179524*/ OPC_MoveParent, ++/*179525*/ OPC_MoveParent, ++/*179526*/ OPC_MoveChild1, ++/*179527*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*179530*/ OPC_CheckChild0Integer, 1, ++/*179532*/ OPC_CheckChild0Type, MVT::i32, ++/*179534*/ OPC_CheckChild1Integer, 1, ++/*179536*/ OPC_CheckChild1Type, MVT::i32, ++/*179538*/ OPC_CheckChild2Integer, 1, ++/*179540*/ OPC_CheckChild2Type, MVT::i32, ++/*179542*/ OPC_CheckChild3Integer, 1, ++/*179544*/ OPC_CheckChild3Type, MVT::i32, ++/*179546*/ OPC_CheckChild4Integer, 1, ++/*179548*/ OPC_CheckChild4Type, MVT::i32, ++/*179550*/ OPC_MoveChild5, ++/*179551*/ OPC_CheckInteger, 1, ++/*179553*/ OPC_CheckType, MVT::i32, ++/*179555*/ OPC_MoveParent, ++/*179556*/ OPC_MoveChild6, ++/*179557*/ OPC_CheckInteger, 1, ++/*179559*/ OPC_CheckType, MVT::i32, ++/*179561*/ OPC_MoveParent, ++/*179562*/ OPC_MoveChild7, ++/*179563*/ OPC_CheckInteger, 1, ++/*179565*/ OPC_CheckType, MVT::i32, ++/*179567*/ OPC_MoveParent, ++/*179568*/ OPC_MoveChild, 8, ++/*179570*/ OPC_CheckInteger, 1, ++/*179572*/ OPC_CheckType, MVT::i32, ++/*179574*/ OPC_MoveParent, ++/*179575*/ OPC_MoveChild, 9, ++/*179577*/ OPC_CheckInteger, 1, ++/*179579*/ OPC_CheckType, MVT::i32, ++/*179581*/ OPC_MoveParent, ++/*179582*/ OPC_MoveChild, 10, ++/*179584*/ OPC_CheckInteger, 1, ++/*179586*/ OPC_CheckType, MVT::i32, ++/*179588*/ OPC_MoveParent, ++/*179589*/ OPC_MoveChild, 11, ++/*179591*/ OPC_CheckInteger, 1, ++/*179593*/ OPC_CheckType, MVT::i32, ++/*179595*/ OPC_MoveParent, ++/*179596*/ OPC_MoveChild, 12, ++/*179598*/ OPC_CheckInteger, 1, ++/*179600*/ OPC_CheckType, MVT::i32, ++/*179602*/ OPC_MoveParent, ++/*179603*/ OPC_MoveChild, 13, ++/*179605*/ OPC_CheckInteger, 1, ++/*179607*/ OPC_CheckType, MVT::i32, ++/*179609*/ OPC_MoveParent, ++/*179610*/ OPC_MoveChild, 14, ++/*179612*/ OPC_CheckInteger, 1, ++/*179614*/ OPC_CheckType, MVT::i32, ++/*179616*/ OPC_MoveParent, ++/*179617*/ OPC_MoveChild, 15, ++/*179619*/ OPC_CheckInteger, 1, ++/*179621*/ OPC_CheckType, MVT::i32, ++/*179623*/ OPC_MoveParent, ++/*179624*/ OPC_CheckType, MVT::v16i8, ++/*179626*/ OPC_MoveParent, ++/*179627*/ OPC_CheckType, MVT::v16i8, ++/*179629*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*179631*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a), LSX128B:{ *:[v16i8] }:$b), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*179639*/ /*Scope*/ 94|128,1/*222*/, /*->179863*/ ++/*179641*/ OPC_CheckChild0Same, 1, ++/*179643*/ OPC_CheckChild1Same, 0, ++/*179645*/ OPC_MoveParent, ++/*179646*/ OPC_MoveParent, ++/*179647*/ OPC_MoveChild1, ++/*179648*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*179651*/ OPC_CheckChild0Integer, 7, ++/*179653*/ OPC_CheckChild0Type, MVT::i32, ++/*179655*/ OPC_CheckChild1Integer, 7, ++/*179657*/ OPC_CheckChild1Type, MVT::i32, ++/*179659*/ OPC_CheckChild2Integer, 7, ++/*179661*/ OPC_CheckChild2Type, MVT::i32, ++/*179663*/ OPC_CheckChild3Integer, 7, ++/*179665*/ OPC_CheckChild3Type, MVT::i32, ++/*179667*/ OPC_CheckChild4Integer, 7, ++/*179669*/ OPC_CheckChild4Type, MVT::i32, ++/*179671*/ OPC_MoveChild5, ++/*179672*/ OPC_CheckInteger, 7, ++/*179674*/ OPC_CheckType, MVT::i32, ++/*179676*/ OPC_MoveParent, ++/*179677*/ OPC_MoveChild6, ++/*179678*/ OPC_CheckInteger, 7, ++/*179680*/ OPC_CheckType, MVT::i32, ++/*179682*/ OPC_MoveParent, ++/*179683*/ OPC_MoveChild7, ++/*179684*/ OPC_CheckInteger, 7, ++/*179686*/ OPC_CheckType, MVT::i32, ++/*179688*/ OPC_MoveParent, ++/*179689*/ OPC_MoveChild, 8, ++/*179691*/ OPC_CheckInteger, 7, ++/*179693*/ OPC_CheckType, MVT::i32, ++/*179695*/ OPC_MoveParent, ++/*179696*/ OPC_MoveChild, 9, ++/*179698*/ OPC_CheckInteger, 7, ++/*179700*/ OPC_CheckType, MVT::i32, ++/*179702*/ OPC_MoveParent, ++/*179703*/ OPC_MoveChild, 10, ++/*179705*/ OPC_CheckInteger, 7, ++/*179707*/ OPC_CheckType, MVT::i32, ++/*179709*/ OPC_MoveParent, ++/*179710*/ OPC_MoveChild, 11, ++/*179712*/ OPC_CheckInteger, 7, ++/*179714*/ OPC_CheckType, MVT::i32, ++/*179716*/ OPC_MoveParent, ++/*179717*/ OPC_MoveChild, 12, ++/*179719*/ OPC_CheckInteger, 7, ++/*179721*/ OPC_CheckType, MVT::i32, ++/*179723*/ OPC_MoveParent, ++/*179724*/ OPC_MoveChild, 13, ++/*179726*/ OPC_CheckInteger, 7, ++/*179728*/ OPC_CheckType, MVT::i32, ++/*179730*/ OPC_MoveParent, ++/*179731*/ OPC_MoveChild, 14, ++/*179733*/ OPC_CheckInteger, 7, ++/*179735*/ OPC_CheckType, MVT::i32, ++/*179737*/ OPC_MoveParent, ++/*179738*/ OPC_MoveChild, 15, ++/*179740*/ OPC_CheckInteger, 7, ++/*179742*/ OPC_CheckType, MVT::i32, ++/*179744*/ OPC_MoveParent, ++/*179745*/ OPC_CheckType, MVT::v16i8, ++/*179747*/ OPC_MoveParent, ++/*179748*/ OPC_MoveParent, ++/*179749*/ OPC_MoveParent, ++/*179750*/ OPC_MoveChild1, ++/*179751*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*179754*/ OPC_CheckChild0Integer, 1, ++/*179756*/ OPC_CheckChild0Type, MVT::i32, ++/*179758*/ OPC_CheckChild1Integer, 1, ++/*179760*/ OPC_CheckChild1Type, MVT::i32, ++/*179762*/ OPC_CheckChild2Integer, 1, ++/*179764*/ OPC_CheckChild2Type, MVT::i32, ++/*179766*/ OPC_CheckChild3Integer, 1, ++/*179768*/ OPC_CheckChild3Type, MVT::i32, ++/*179770*/ OPC_CheckChild4Integer, 1, ++/*179772*/ OPC_CheckChild4Type, MVT::i32, ++/*179774*/ OPC_MoveChild5, ++/*179775*/ OPC_CheckInteger, 1, ++/*179777*/ OPC_CheckType, MVT::i32, ++/*179779*/ OPC_MoveParent, ++/*179780*/ OPC_MoveChild6, ++/*179781*/ OPC_CheckInteger, 1, ++/*179783*/ OPC_CheckType, MVT::i32, ++/*179785*/ OPC_MoveParent, ++/*179786*/ OPC_MoveChild7, ++/*179787*/ OPC_CheckInteger, 1, ++/*179789*/ OPC_CheckType, MVT::i32, ++/*179791*/ OPC_MoveParent, ++/*179792*/ OPC_MoveChild, 8, ++/*179794*/ OPC_CheckInteger, 1, ++/*179796*/ OPC_CheckType, MVT::i32, ++/*179798*/ OPC_MoveParent, ++/*179799*/ OPC_MoveChild, 9, ++/*179801*/ OPC_CheckInteger, 1, ++/*179803*/ OPC_CheckType, MVT::i32, ++/*179805*/ OPC_MoveParent, ++/*179806*/ OPC_MoveChild, 10, ++/*179808*/ OPC_CheckInteger, 1, ++/*179810*/ OPC_CheckType, MVT::i32, ++/*179812*/ OPC_MoveParent, ++/*179813*/ OPC_MoveChild, 11, ++/*179815*/ OPC_CheckInteger, 1, ++/*179817*/ OPC_CheckType, MVT::i32, ++/*179819*/ OPC_MoveParent, ++/*179820*/ OPC_MoveChild, 12, ++/*179822*/ OPC_CheckInteger, 1, ++/*179824*/ OPC_CheckType, MVT::i32, ++/*179826*/ OPC_MoveParent, ++/*179827*/ OPC_MoveChild, 13, ++/*179829*/ OPC_CheckInteger, 1, ++/*179831*/ OPC_CheckType, MVT::i32, ++/*179833*/ OPC_MoveParent, ++/*179834*/ OPC_MoveChild, 14, ++/*179836*/ OPC_CheckInteger, 1, ++/*179838*/ OPC_CheckType, MVT::i32, ++/*179840*/ OPC_MoveParent, ++/*179841*/ OPC_MoveChild, 15, ++/*179843*/ OPC_CheckInteger, 1, ++/*179845*/ OPC_CheckType, MVT::i32, ++/*179847*/ OPC_MoveParent, ++/*179848*/ OPC_CheckType, MVT::v16i8, ++/*179850*/ OPC_MoveParent, ++/*179851*/ OPC_CheckType, MVT::v16i8, ++/*179853*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*179855*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a), LSX128B:{ *:[v16i8] }:$b), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*179863*/ 0, /*End of Scope*/ ++/*179864*/ 0, /*End of Scope*/ ++/*179865*/ /*Scope*/ 78|128,30/*3918*/, /*->183785*/ ++/*179867*/ OPC_RecordChild0, // #0 = $a ++/*179868*/ OPC_MoveChild1, ++/*179869*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*179872*/ OPC_CheckChild0Integer, 1, ++/*179874*/ OPC_CheckChild0Type, MVT::i32, ++/*179876*/ OPC_CheckChild1Integer, 1, ++/*179878*/ OPC_CheckChild1Type, MVT::i32, ++/*179880*/ OPC_CheckChild2Integer, 1, ++/*179882*/ OPC_CheckChild2Type, MVT::i32, ++/*179884*/ OPC_CheckChild3Integer, 1, ++/*179886*/ OPC_CheckChild3Type, MVT::i32, ++/*179888*/ OPC_CheckChild4Integer, 1, ++/*179890*/ OPC_CheckChild4Type, MVT::i32, ++/*179892*/ OPC_MoveChild5, ++/*179893*/ OPC_CheckInteger, 1, ++/*179895*/ OPC_CheckType, MVT::i32, ++/*179897*/ OPC_MoveParent, ++/*179898*/ OPC_MoveChild6, ++/*179899*/ OPC_CheckInteger, 1, ++/*179901*/ OPC_CheckType, MVT::i32, ++/*179903*/ OPC_MoveParent, ++/*179904*/ OPC_MoveChild7, ++/*179905*/ OPC_CheckInteger, 1, ++/*179907*/ OPC_CheckType, MVT::i32, ++/*179909*/ OPC_MoveParent, ++/*179910*/ OPC_MoveChild, 8, ++/*179912*/ OPC_CheckInteger, 1, ++/*179914*/ OPC_CheckType, MVT::i32, ++/*179916*/ OPC_MoveParent, ++/*179917*/ OPC_MoveChild, 9, ++/*179919*/ OPC_CheckInteger, 1, ++/*179921*/ OPC_CheckType, MVT::i32, ++/*179923*/ OPC_MoveParent, ++/*179924*/ OPC_MoveChild, 10, ++/*179926*/ OPC_CheckInteger, 1, ++/*179928*/ OPC_CheckType, MVT::i32, ++/*179930*/ OPC_MoveParent, ++/*179931*/ OPC_MoveChild, 11, ++/*179933*/ OPC_CheckInteger, 1, ++/*179935*/ OPC_CheckType, MVT::i32, ++/*179937*/ OPC_MoveParent, ++/*179938*/ OPC_MoveChild, 12, ++/*179940*/ OPC_CheckInteger, 1, ++/*179942*/ OPC_CheckType, MVT::i32, ++/*179944*/ OPC_MoveParent, ++/*179945*/ OPC_MoveChild, 13, ++/*179947*/ OPC_CheckInteger, 1, ++/*179949*/ OPC_CheckType, MVT::i32, ++/*179951*/ OPC_MoveParent, ++/*179952*/ OPC_MoveChild, 14, ++/*179954*/ OPC_CheckInteger, 1, ++/*179956*/ OPC_CheckType, MVT::i32, ++/*179958*/ OPC_MoveParent, ++/*179959*/ OPC_MoveChild, 15, ++/*179961*/ OPC_CheckInteger, 1, ++/*179963*/ OPC_CheckType, MVT::i32, ++/*179965*/ OPC_MoveParent, ++/*179966*/ OPC_MoveParent, ++/*179967*/ OPC_MoveParent, ++/*179968*/ OPC_RecordChild1, // #1 = $b ++/*179969*/ OPC_MoveParent, ++/*179970*/ OPC_MoveChild1, ++/*179971*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*179974*/ OPC_MoveChild0, ++/*179975*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*179978*/ OPC_Scope, 24|128,15/*1944*/, /*->181925*/ // 4 children in Scope ++/*179981*/ OPC_MoveChild0, ++/*179982*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*179985*/ OPC_Scope, 65|128,2/*321*/, /*->180309*/ // 6 children in Scope ++/*179988*/ OPC_MoveChild0, ++/*179989*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*179992*/ OPC_CheckChild0Integer, 1, ++/*179994*/ OPC_CheckChild0Type, MVT::i32, ++/*179996*/ OPC_CheckChild1Integer, 1, ++/*179998*/ OPC_CheckChild1Type, MVT::i32, ++/*180000*/ OPC_CheckChild2Integer, 1, ++/*180002*/ OPC_CheckChild2Type, MVT::i32, ++/*180004*/ OPC_CheckChild3Integer, 1, ++/*180006*/ OPC_CheckChild3Type, MVT::i32, ++/*180008*/ OPC_CheckChild4Integer, 1, ++/*180010*/ OPC_CheckChild4Type, MVT::i32, ++/*180012*/ OPC_MoveChild5, ++/*180013*/ OPC_CheckInteger, 1, ++/*180015*/ OPC_CheckType, MVT::i32, ++/*180017*/ OPC_MoveParent, ++/*180018*/ OPC_MoveChild6, ++/*180019*/ OPC_CheckInteger, 1, ++/*180021*/ OPC_CheckType, MVT::i32, ++/*180023*/ OPC_MoveParent, ++/*180024*/ OPC_MoveChild7, ++/*180025*/ OPC_CheckInteger, 1, ++/*180027*/ OPC_CheckType, MVT::i32, ++/*180029*/ OPC_MoveParent, ++/*180030*/ OPC_MoveChild, 8, ++/*180032*/ OPC_CheckInteger, 1, ++/*180034*/ OPC_CheckType, MVT::i32, ++/*180036*/ OPC_MoveParent, ++/*180037*/ OPC_MoveChild, 9, ++/*180039*/ OPC_CheckInteger, 1, ++/*180041*/ OPC_CheckType, MVT::i32, ++/*180043*/ OPC_MoveParent, ++/*180044*/ OPC_MoveChild, 10, ++/*180046*/ OPC_CheckInteger, 1, ++/*180048*/ OPC_CheckType, MVT::i32, ++/*180050*/ OPC_MoveParent, ++/*180051*/ OPC_MoveChild, 11, ++/*180053*/ OPC_CheckInteger, 1, ++/*180055*/ OPC_CheckType, MVT::i32, ++/*180057*/ OPC_MoveParent, ++/*180058*/ OPC_MoveChild, 12, ++/*180060*/ OPC_CheckInteger, 1, ++/*180062*/ OPC_CheckType, MVT::i32, ++/*180064*/ OPC_MoveParent, ++/*180065*/ OPC_MoveChild, 13, ++/*180067*/ OPC_CheckInteger, 1, ++/*180069*/ OPC_CheckType, MVT::i32, ++/*180071*/ OPC_MoveParent, ++/*180072*/ OPC_MoveChild, 14, ++/*180074*/ OPC_CheckInteger, 1, ++/*180076*/ OPC_CheckType, MVT::i32, ++/*180078*/ OPC_MoveParent, ++/*180079*/ OPC_MoveChild, 15, ++/*180081*/ OPC_CheckInteger, 1, ++/*180083*/ OPC_CheckType, MVT::i32, ++/*180085*/ OPC_MoveParent, ++/*180086*/ OPC_MoveParent, ++/*180087*/ OPC_CheckChild1Same, 0, ++/*180089*/ OPC_MoveParent, ++/*180090*/ OPC_CheckChild1Same, 1, ++/*180092*/ OPC_MoveParent, ++/*180093*/ OPC_MoveChild1, ++/*180094*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*180097*/ OPC_CheckChild0Integer, 7, ++/*180099*/ OPC_CheckChild0Type, MVT::i32, ++/*180101*/ OPC_CheckChild1Integer, 7, ++/*180103*/ OPC_CheckChild1Type, MVT::i32, ++/*180105*/ OPC_CheckChild2Integer, 7, ++/*180107*/ OPC_CheckChild2Type, MVT::i32, ++/*180109*/ OPC_CheckChild3Integer, 7, ++/*180111*/ OPC_CheckChild3Type, MVT::i32, ++/*180113*/ OPC_CheckChild4Integer, 7, ++/*180115*/ OPC_CheckChild4Type, MVT::i32, ++/*180117*/ OPC_MoveChild5, ++/*180118*/ OPC_CheckInteger, 7, ++/*180120*/ OPC_CheckType, MVT::i32, ++/*180122*/ OPC_MoveParent, ++/*180123*/ OPC_MoveChild6, ++/*180124*/ OPC_CheckInteger, 7, ++/*180126*/ OPC_CheckType, MVT::i32, ++/*180128*/ OPC_MoveParent, ++/*180129*/ OPC_MoveChild7, ++/*180130*/ OPC_CheckInteger, 7, ++/*180132*/ OPC_CheckType, MVT::i32, ++/*180134*/ OPC_MoveParent, ++/*180135*/ OPC_MoveChild, 8, ++/*180137*/ OPC_CheckInteger, 7, ++/*180139*/ OPC_CheckType, MVT::i32, ++/*180141*/ OPC_MoveParent, ++/*180142*/ OPC_MoveChild, 9, ++/*180144*/ OPC_CheckInteger, 7, ++/*180146*/ OPC_CheckType, MVT::i32, ++/*180148*/ OPC_MoveParent, ++/*180149*/ OPC_MoveChild, 10, ++/*180151*/ OPC_CheckInteger, 7, ++/*180153*/ OPC_CheckType, MVT::i32, ++/*180155*/ OPC_MoveParent, ++/*180156*/ OPC_MoveChild, 11, ++/*180158*/ OPC_CheckInteger, 7, ++/*180160*/ OPC_CheckType, MVT::i32, ++/*180162*/ OPC_MoveParent, ++/*180163*/ OPC_MoveChild, 12, ++/*180165*/ OPC_CheckInteger, 7, ++/*180167*/ OPC_CheckType, MVT::i32, ++/*180169*/ OPC_MoveParent, ++/*180170*/ OPC_MoveChild, 13, ++/*180172*/ OPC_CheckInteger, 7, ++/*180174*/ OPC_CheckType, MVT::i32, ++/*180176*/ OPC_MoveParent, ++/*180177*/ OPC_MoveChild, 14, ++/*180179*/ OPC_CheckInteger, 7, ++/*180181*/ OPC_CheckType, MVT::i32, ++/*180183*/ OPC_MoveParent, ++/*180184*/ OPC_MoveChild, 15, ++/*180186*/ OPC_CheckInteger, 7, ++/*180188*/ OPC_CheckType, MVT::i32, ++/*180190*/ OPC_MoveParent, ++/*180191*/ OPC_CheckType, MVT::v16i8, ++/*180193*/ OPC_MoveParent, ++/*180194*/ OPC_MoveParent, ++/*180195*/ OPC_MoveParent, ++/*180196*/ OPC_MoveChild1, ++/*180197*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*180200*/ OPC_CheckChild0Integer, 1, ++/*180202*/ OPC_CheckChild0Type, MVT::i32, ++/*180204*/ OPC_CheckChild1Integer, 1, ++/*180206*/ OPC_CheckChild1Type, MVT::i32, ++/*180208*/ OPC_CheckChild2Integer, 1, ++/*180210*/ OPC_CheckChild2Type, MVT::i32, ++/*180212*/ OPC_CheckChild3Integer, 1, ++/*180214*/ OPC_CheckChild3Type, MVT::i32, ++/*180216*/ OPC_CheckChild4Integer, 1, ++/*180218*/ OPC_CheckChild4Type, MVT::i32, ++/*180220*/ OPC_MoveChild5, ++/*180221*/ OPC_CheckInteger, 1, ++/*180223*/ OPC_CheckType, MVT::i32, ++/*180225*/ OPC_MoveParent, ++/*180226*/ OPC_MoveChild6, ++/*180227*/ OPC_CheckInteger, 1, ++/*180229*/ OPC_CheckType, MVT::i32, ++/*180231*/ OPC_MoveParent, ++/*180232*/ OPC_MoveChild7, ++/*180233*/ OPC_CheckInteger, 1, ++/*180235*/ OPC_CheckType, MVT::i32, ++/*180237*/ OPC_MoveParent, ++/*180238*/ OPC_MoveChild, 8, ++/*180240*/ OPC_CheckInteger, 1, ++/*180242*/ OPC_CheckType, MVT::i32, ++/*180244*/ OPC_MoveParent, ++/*180245*/ OPC_MoveChild, 9, ++/*180247*/ OPC_CheckInteger, 1, ++/*180249*/ OPC_CheckType, MVT::i32, ++/*180251*/ OPC_MoveParent, ++/*180252*/ OPC_MoveChild, 10, ++/*180254*/ OPC_CheckInteger, 1, ++/*180256*/ OPC_CheckType, MVT::i32, ++/*180258*/ OPC_MoveParent, ++/*180259*/ OPC_MoveChild, 11, ++/*180261*/ OPC_CheckInteger, 1, ++/*180263*/ OPC_CheckType, MVT::i32, ++/*180265*/ OPC_MoveParent, ++/*180266*/ OPC_MoveChild, 12, ++/*180268*/ OPC_CheckInteger, 1, ++/*180270*/ OPC_CheckType, MVT::i32, ++/*180272*/ OPC_MoveParent, ++/*180273*/ OPC_MoveChild, 13, ++/*180275*/ OPC_CheckInteger, 1, ++/*180277*/ OPC_CheckType, MVT::i32, ++/*180279*/ OPC_MoveParent, ++/*180280*/ OPC_MoveChild, 14, ++/*180282*/ OPC_CheckInteger, 1, ++/*180284*/ OPC_CheckType, MVT::i32, ++/*180286*/ OPC_MoveParent, ++/*180287*/ OPC_MoveChild, 15, ++/*180289*/ OPC_CheckInteger, 1, ++/*180291*/ OPC_CheckType, MVT::i32, ++/*180293*/ OPC_MoveParent, ++/*180294*/ OPC_CheckType, MVT::v16i8, ++/*180296*/ OPC_MoveParent, ++/*180297*/ OPC_CheckType, MVT::v16i8, ++/*180299*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*180301*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$b), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a), LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*180309*/ /*Scope*/ 65|128,2/*321*/, /*->180632*/ ++/*180311*/ OPC_CheckChild0Same, 0, ++/*180313*/ OPC_MoveChild1, ++/*180314*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*180317*/ OPC_CheckChild0Integer, 1, ++/*180319*/ OPC_CheckChild0Type, MVT::i32, ++/*180321*/ OPC_CheckChild1Integer, 1, ++/*180323*/ OPC_CheckChild1Type, MVT::i32, ++/*180325*/ OPC_CheckChild2Integer, 1, ++/*180327*/ OPC_CheckChild2Type, MVT::i32, ++/*180329*/ OPC_CheckChild3Integer, 1, ++/*180331*/ OPC_CheckChild3Type, MVT::i32, ++/*180333*/ OPC_CheckChild4Integer, 1, ++/*180335*/ OPC_CheckChild4Type, MVT::i32, ++/*180337*/ OPC_MoveChild5, ++/*180338*/ OPC_CheckInteger, 1, ++/*180340*/ OPC_CheckType, MVT::i32, ++/*180342*/ OPC_MoveParent, ++/*180343*/ OPC_MoveChild6, ++/*180344*/ OPC_CheckInteger, 1, ++/*180346*/ OPC_CheckType, MVT::i32, ++/*180348*/ OPC_MoveParent, ++/*180349*/ OPC_MoveChild7, ++/*180350*/ OPC_CheckInteger, 1, ++/*180352*/ OPC_CheckType, MVT::i32, ++/*180354*/ OPC_MoveParent, ++/*180355*/ OPC_MoveChild, 8, ++/*180357*/ OPC_CheckInteger, 1, ++/*180359*/ OPC_CheckType, MVT::i32, ++/*180361*/ OPC_MoveParent, ++/*180362*/ OPC_MoveChild, 9, ++/*180364*/ OPC_CheckInteger, 1, ++/*180366*/ OPC_CheckType, MVT::i32, ++/*180368*/ OPC_MoveParent, ++/*180369*/ OPC_MoveChild, 10, ++/*180371*/ OPC_CheckInteger, 1, ++/*180373*/ OPC_CheckType, MVT::i32, ++/*180375*/ OPC_MoveParent, ++/*180376*/ OPC_MoveChild, 11, ++/*180378*/ OPC_CheckInteger, 1, ++/*180380*/ OPC_CheckType, MVT::i32, ++/*180382*/ OPC_MoveParent, ++/*180383*/ OPC_MoveChild, 12, ++/*180385*/ OPC_CheckInteger, 1, ++/*180387*/ OPC_CheckType, MVT::i32, ++/*180389*/ OPC_MoveParent, ++/*180390*/ OPC_MoveChild, 13, ++/*180392*/ OPC_CheckInteger, 1, ++/*180394*/ OPC_CheckType, MVT::i32, ++/*180396*/ OPC_MoveParent, ++/*180397*/ OPC_MoveChild, 14, ++/*180399*/ OPC_CheckInteger, 1, ++/*180401*/ OPC_CheckType, MVT::i32, ++/*180403*/ OPC_MoveParent, ++/*180404*/ OPC_MoveChild, 15, ++/*180406*/ OPC_CheckInteger, 1, ++/*180408*/ OPC_CheckType, MVT::i32, ++/*180410*/ OPC_MoveParent, ++/*180411*/ OPC_MoveParent, ++/*180412*/ OPC_MoveParent, ++/*180413*/ OPC_CheckChild1Same, 1, ++/*180415*/ OPC_MoveParent, ++/*180416*/ OPC_MoveChild1, ++/*180417*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*180420*/ OPC_CheckChild0Integer, 7, ++/*180422*/ OPC_CheckChild0Type, MVT::i32, ++/*180424*/ OPC_CheckChild1Integer, 7, ++/*180426*/ OPC_CheckChild1Type, MVT::i32, ++/*180428*/ OPC_CheckChild2Integer, 7, ++/*180430*/ OPC_CheckChild2Type, MVT::i32, ++/*180432*/ OPC_CheckChild3Integer, 7, ++/*180434*/ OPC_CheckChild3Type, MVT::i32, ++/*180436*/ OPC_CheckChild4Integer, 7, ++/*180438*/ OPC_CheckChild4Type, MVT::i32, ++/*180440*/ OPC_MoveChild5, ++/*180441*/ OPC_CheckInteger, 7, ++/*180443*/ OPC_CheckType, MVT::i32, ++/*180445*/ OPC_MoveParent, ++/*180446*/ OPC_MoveChild6, ++/*180447*/ OPC_CheckInteger, 7, ++/*180449*/ OPC_CheckType, MVT::i32, ++/*180451*/ OPC_MoveParent, ++/*180452*/ OPC_MoveChild7, ++/*180453*/ OPC_CheckInteger, 7, ++/*180455*/ OPC_CheckType, MVT::i32, ++/*180457*/ OPC_MoveParent, ++/*180458*/ OPC_MoveChild, 8, ++/*180460*/ OPC_CheckInteger, 7, ++/*180462*/ OPC_CheckType, MVT::i32, ++/*180464*/ OPC_MoveParent, ++/*180465*/ OPC_MoveChild, 9, ++/*180467*/ OPC_CheckInteger, 7, ++/*180469*/ OPC_CheckType, MVT::i32, ++/*180471*/ OPC_MoveParent, ++/*180472*/ OPC_MoveChild, 10, ++/*180474*/ OPC_CheckInteger, 7, ++/*180476*/ OPC_CheckType, MVT::i32, ++/*180478*/ OPC_MoveParent, ++/*180479*/ OPC_MoveChild, 11, ++/*180481*/ OPC_CheckInteger, 7, ++/*180483*/ OPC_CheckType, MVT::i32, ++/*180485*/ OPC_MoveParent, ++/*180486*/ OPC_MoveChild, 12, ++/*180488*/ OPC_CheckInteger, 7, ++/*180490*/ OPC_CheckType, MVT::i32, ++/*180492*/ OPC_MoveParent, ++/*180493*/ OPC_MoveChild, 13, ++/*180495*/ OPC_CheckInteger, 7, ++/*180497*/ OPC_CheckType, MVT::i32, ++/*180499*/ OPC_MoveParent, ++/*180500*/ OPC_MoveChild, 14, ++/*180502*/ OPC_CheckInteger, 7, ++/*180504*/ OPC_CheckType, MVT::i32, ++/*180506*/ OPC_MoveParent, ++/*180507*/ OPC_MoveChild, 15, ++/*180509*/ OPC_CheckInteger, 7, ++/*180511*/ OPC_CheckType, MVT::i32, ++/*180513*/ OPC_MoveParent, ++/*180514*/ OPC_CheckType, MVT::v16i8, ++/*180516*/ OPC_MoveParent, ++/*180517*/ OPC_MoveParent, ++/*180518*/ OPC_MoveParent, ++/*180519*/ OPC_MoveChild1, ++/*180520*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*180523*/ OPC_CheckChild0Integer, 1, ++/*180525*/ OPC_CheckChild0Type, MVT::i32, ++/*180527*/ OPC_CheckChild1Integer, 1, ++/*180529*/ OPC_CheckChild1Type, MVT::i32, ++/*180531*/ OPC_CheckChild2Integer, 1, ++/*180533*/ OPC_CheckChild2Type, MVT::i32, ++/*180535*/ OPC_CheckChild3Integer, 1, ++/*180537*/ OPC_CheckChild3Type, MVT::i32, ++/*180539*/ OPC_CheckChild4Integer, 1, ++/*180541*/ OPC_CheckChild4Type, MVT::i32, ++/*180543*/ OPC_MoveChild5, ++/*180544*/ OPC_CheckInteger, 1, ++/*180546*/ OPC_CheckType, MVT::i32, ++/*180548*/ OPC_MoveParent, ++/*180549*/ OPC_MoveChild6, ++/*180550*/ OPC_CheckInteger, 1, ++/*180552*/ OPC_CheckType, MVT::i32, ++/*180554*/ OPC_MoveParent, ++/*180555*/ OPC_MoveChild7, ++/*180556*/ OPC_CheckInteger, 1, ++/*180558*/ OPC_CheckType, MVT::i32, ++/*180560*/ OPC_MoveParent, ++/*180561*/ OPC_MoveChild, 8, ++/*180563*/ OPC_CheckInteger, 1, ++/*180565*/ OPC_CheckType, MVT::i32, ++/*180567*/ OPC_MoveParent, ++/*180568*/ OPC_MoveChild, 9, ++/*180570*/ OPC_CheckInteger, 1, ++/*180572*/ OPC_CheckType, MVT::i32, ++/*180574*/ OPC_MoveParent, ++/*180575*/ OPC_MoveChild, 10, ++/*180577*/ OPC_CheckInteger, 1, ++/*180579*/ OPC_CheckType, MVT::i32, ++/*180581*/ OPC_MoveParent, ++/*180582*/ OPC_MoveChild, 11, ++/*180584*/ OPC_CheckInteger, 1, ++/*180586*/ OPC_CheckType, MVT::i32, ++/*180588*/ OPC_MoveParent, ++/*180589*/ OPC_MoveChild, 12, ++/*180591*/ OPC_CheckInteger, 1, ++/*180593*/ OPC_CheckType, MVT::i32, ++/*180595*/ OPC_MoveParent, ++/*180596*/ OPC_MoveChild, 13, ++/*180598*/ OPC_CheckInteger, 1, ++/*180600*/ OPC_CheckType, MVT::i32, ++/*180602*/ OPC_MoveParent, ++/*180603*/ OPC_MoveChild, 14, ++/*180605*/ OPC_CheckInteger, 1, ++/*180607*/ OPC_CheckType, MVT::i32, ++/*180609*/ OPC_MoveParent, ++/*180610*/ OPC_MoveChild, 15, ++/*180612*/ OPC_CheckInteger, 1, ++/*180614*/ OPC_CheckType, MVT::i32, ++/*180616*/ OPC_MoveParent, ++/*180617*/ OPC_CheckType, MVT::v16i8, ++/*180619*/ OPC_MoveParent, ++/*180620*/ OPC_CheckType, MVT::v16i8, ++/*180622*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*180624*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$b), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*180632*/ /*Scope*/ 65|128,2/*321*/, /*->180955*/ ++/*180634*/ OPC_MoveChild0, ++/*180635*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*180638*/ OPC_CheckChild0Integer, 1, ++/*180640*/ OPC_CheckChild0Type, MVT::i32, ++/*180642*/ OPC_CheckChild1Integer, 1, ++/*180644*/ OPC_CheckChild1Type, MVT::i32, ++/*180646*/ OPC_CheckChild2Integer, 1, ++/*180648*/ OPC_CheckChild2Type, MVT::i32, ++/*180650*/ OPC_CheckChild3Integer, 1, ++/*180652*/ OPC_CheckChild3Type, MVT::i32, ++/*180654*/ OPC_CheckChild4Integer, 1, ++/*180656*/ OPC_CheckChild4Type, MVT::i32, ++/*180658*/ OPC_MoveChild5, ++/*180659*/ OPC_CheckInteger, 1, ++/*180661*/ OPC_CheckType, MVT::i32, ++/*180663*/ OPC_MoveParent, ++/*180664*/ OPC_MoveChild6, ++/*180665*/ OPC_CheckInteger, 1, ++/*180667*/ OPC_CheckType, MVT::i32, ++/*180669*/ OPC_MoveParent, ++/*180670*/ OPC_MoveChild7, ++/*180671*/ OPC_CheckInteger, 1, ++/*180673*/ OPC_CheckType, MVT::i32, ++/*180675*/ OPC_MoveParent, ++/*180676*/ OPC_MoveChild, 8, ++/*180678*/ OPC_CheckInteger, 1, ++/*180680*/ OPC_CheckType, MVT::i32, ++/*180682*/ OPC_MoveParent, ++/*180683*/ OPC_MoveChild, 9, ++/*180685*/ OPC_CheckInteger, 1, ++/*180687*/ OPC_CheckType, MVT::i32, ++/*180689*/ OPC_MoveParent, ++/*180690*/ OPC_MoveChild, 10, ++/*180692*/ OPC_CheckInteger, 1, ++/*180694*/ OPC_CheckType, MVT::i32, ++/*180696*/ OPC_MoveParent, ++/*180697*/ OPC_MoveChild, 11, ++/*180699*/ OPC_CheckInteger, 1, ++/*180701*/ OPC_CheckType, MVT::i32, ++/*180703*/ OPC_MoveParent, ++/*180704*/ OPC_MoveChild, 12, ++/*180706*/ OPC_CheckInteger, 1, ++/*180708*/ OPC_CheckType, MVT::i32, ++/*180710*/ OPC_MoveParent, ++/*180711*/ OPC_MoveChild, 13, ++/*180713*/ OPC_CheckInteger, 1, ++/*180715*/ OPC_CheckType, MVT::i32, ++/*180717*/ OPC_MoveParent, ++/*180718*/ OPC_MoveChild, 14, ++/*180720*/ OPC_CheckInteger, 1, ++/*180722*/ OPC_CheckType, MVT::i32, ++/*180724*/ OPC_MoveParent, ++/*180725*/ OPC_MoveChild, 15, ++/*180727*/ OPC_CheckInteger, 1, ++/*180729*/ OPC_CheckType, MVT::i32, ++/*180731*/ OPC_MoveParent, ++/*180732*/ OPC_MoveParent, ++/*180733*/ OPC_CheckChild1Same, 1, ++/*180735*/ OPC_MoveParent, ++/*180736*/ OPC_CheckChild1Same, 0, ++/*180738*/ OPC_MoveParent, ++/*180739*/ OPC_MoveChild1, ++/*180740*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*180743*/ OPC_CheckChild0Integer, 7, ++/*180745*/ OPC_CheckChild0Type, MVT::i32, ++/*180747*/ OPC_CheckChild1Integer, 7, ++/*180749*/ OPC_CheckChild1Type, MVT::i32, ++/*180751*/ OPC_CheckChild2Integer, 7, ++/*180753*/ OPC_CheckChild2Type, MVT::i32, ++/*180755*/ OPC_CheckChild3Integer, 7, ++/*180757*/ OPC_CheckChild3Type, MVT::i32, ++/*180759*/ OPC_CheckChild4Integer, 7, ++/*180761*/ OPC_CheckChild4Type, MVT::i32, ++/*180763*/ OPC_MoveChild5, ++/*180764*/ OPC_CheckInteger, 7, ++/*180766*/ OPC_CheckType, MVT::i32, ++/*180768*/ OPC_MoveParent, ++/*180769*/ OPC_MoveChild6, ++/*180770*/ OPC_CheckInteger, 7, ++/*180772*/ OPC_CheckType, MVT::i32, ++/*180774*/ OPC_MoveParent, ++/*180775*/ OPC_MoveChild7, ++/*180776*/ OPC_CheckInteger, 7, ++/*180778*/ OPC_CheckType, MVT::i32, ++/*180780*/ OPC_MoveParent, ++/*180781*/ OPC_MoveChild, 8, ++/*180783*/ OPC_CheckInteger, 7, ++/*180785*/ OPC_CheckType, MVT::i32, ++/*180787*/ OPC_MoveParent, ++/*180788*/ OPC_MoveChild, 9, ++/*180790*/ OPC_CheckInteger, 7, ++/*180792*/ OPC_CheckType, MVT::i32, ++/*180794*/ OPC_MoveParent, ++/*180795*/ OPC_MoveChild, 10, ++/*180797*/ OPC_CheckInteger, 7, ++/*180799*/ OPC_CheckType, MVT::i32, ++/*180801*/ OPC_MoveParent, ++/*180802*/ OPC_MoveChild, 11, ++/*180804*/ OPC_CheckInteger, 7, ++/*180806*/ OPC_CheckType, MVT::i32, ++/*180808*/ OPC_MoveParent, ++/*180809*/ OPC_MoveChild, 12, ++/*180811*/ OPC_CheckInteger, 7, ++/*180813*/ OPC_CheckType, MVT::i32, ++/*180815*/ OPC_MoveParent, ++/*180816*/ OPC_MoveChild, 13, ++/*180818*/ OPC_CheckInteger, 7, ++/*180820*/ OPC_CheckType, MVT::i32, ++/*180822*/ OPC_MoveParent, ++/*180823*/ OPC_MoveChild, 14, ++/*180825*/ OPC_CheckInteger, 7, ++/*180827*/ OPC_CheckType, MVT::i32, ++/*180829*/ OPC_MoveParent, ++/*180830*/ OPC_MoveChild, 15, ++/*180832*/ OPC_CheckInteger, 7, ++/*180834*/ OPC_CheckType, MVT::i32, ++/*180836*/ OPC_MoveParent, ++/*180837*/ OPC_CheckType, MVT::v16i8, ++/*180839*/ OPC_MoveParent, ++/*180840*/ OPC_MoveParent, ++/*180841*/ OPC_MoveParent, ++/*180842*/ OPC_MoveChild1, ++/*180843*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*180846*/ OPC_CheckChild0Integer, 1, ++/*180848*/ OPC_CheckChild0Type, MVT::i32, ++/*180850*/ OPC_CheckChild1Integer, 1, ++/*180852*/ OPC_CheckChild1Type, MVT::i32, ++/*180854*/ OPC_CheckChild2Integer, 1, ++/*180856*/ OPC_CheckChild2Type, MVT::i32, ++/*180858*/ OPC_CheckChild3Integer, 1, ++/*180860*/ OPC_CheckChild3Type, MVT::i32, ++/*180862*/ OPC_CheckChild4Integer, 1, ++/*180864*/ OPC_CheckChild4Type, MVT::i32, ++/*180866*/ OPC_MoveChild5, ++/*180867*/ OPC_CheckInteger, 1, ++/*180869*/ OPC_CheckType, MVT::i32, ++/*180871*/ OPC_MoveParent, ++/*180872*/ OPC_MoveChild6, ++/*180873*/ OPC_CheckInteger, 1, ++/*180875*/ OPC_CheckType, MVT::i32, ++/*180877*/ OPC_MoveParent, ++/*180878*/ OPC_MoveChild7, ++/*180879*/ OPC_CheckInteger, 1, ++/*180881*/ OPC_CheckType, MVT::i32, ++/*180883*/ OPC_MoveParent, ++/*180884*/ OPC_MoveChild, 8, ++/*180886*/ OPC_CheckInteger, 1, ++/*180888*/ OPC_CheckType, MVT::i32, ++/*180890*/ OPC_MoveParent, ++/*180891*/ OPC_MoveChild, 9, ++/*180893*/ OPC_CheckInteger, 1, ++/*180895*/ OPC_CheckType, MVT::i32, ++/*180897*/ OPC_MoveParent, ++/*180898*/ OPC_MoveChild, 10, ++/*180900*/ OPC_CheckInteger, 1, ++/*180902*/ OPC_CheckType, MVT::i32, ++/*180904*/ OPC_MoveParent, ++/*180905*/ OPC_MoveChild, 11, ++/*180907*/ OPC_CheckInteger, 1, ++/*180909*/ OPC_CheckType, MVT::i32, ++/*180911*/ OPC_MoveParent, ++/*180912*/ OPC_MoveChild, 12, ++/*180914*/ OPC_CheckInteger, 1, ++/*180916*/ OPC_CheckType, MVT::i32, ++/*180918*/ OPC_MoveParent, ++/*180919*/ OPC_MoveChild, 13, ++/*180921*/ OPC_CheckInteger, 1, ++/*180923*/ OPC_CheckType, MVT::i32, ++/*180925*/ OPC_MoveParent, ++/*180926*/ OPC_MoveChild, 14, ++/*180928*/ OPC_CheckInteger, 1, ++/*180930*/ OPC_CheckType, MVT::i32, ++/*180932*/ OPC_MoveParent, ++/*180933*/ OPC_MoveChild, 15, ++/*180935*/ OPC_CheckInteger, 1, ++/*180937*/ OPC_CheckType, MVT::i32, ++/*180939*/ OPC_MoveParent, ++/*180940*/ OPC_CheckType, MVT::v16i8, ++/*180942*/ OPC_MoveParent, ++/*180943*/ OPC_CheckType, MVT::v16i8, ++/*180945*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*180947*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$b), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b), LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*180955*/ /*Scope*/ 65|128,2/*321*/, /*->181278*/ ++/*180957*/ OPC_CheckChild0Same, 1, ++/*180959*/ OPC_MoveChild1, ++/*180960*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*180963*/ OPC_CheckChild0Integer, 1, ++/*180965*/ OPC_CheckChild0Type, MVT::i32, ++/*180967*/ OPC_CheckChild1Integer, 1, ++/*180969*/ OPC_CheckChild1Type, MVT::i32, ++/*180971*/ OPC_CheckChild2Integer, 1, ++/*180973*/ OPC_CheckChild2Type, MVT::i32, ++/*180975*/ OPC_CheckChild3Integer, 1, ++/*180977*/ OPC_CheckChild3Type, MVT::i32, ++/*180979*/ OPC_CheckChild4Integer, 1, ++/*180981*/ OPC_CheckChild4Type, MVT::i32, ++/*180983*/ OPC_MoveChild5, ++/*180984*/ OPC_CheckInteger, 1, ++/*180986*/ OPC_CheckType, MVT::i32, ++/*180988*/ OPC_MoveParent, ++/*180989*/ OPC_MoveChild6, ++/*180990*/ OPC_CheckInteger, 1, ++/*180992*/ OPC_CheckType, MVT::i32, ++/*180994*/ OPC_MoveParent, ++/*180995*/ OPC_MoveChild7, ++/*180996*/ OPC_CheckInteger, 1, ++/*180998*/ OPC_CheckType, MVT::i32, ++/*181000*/ OPC_MoveParent, ++/*181001*/ OPC_MoveChild, 8, ++/*181003*/ OPC_CheckInteger, 1, ++/*181005*/ OPC_CheckType, MVT::i32, ++/*181007*/ OPC_MoveParent, ++/*181008*/ OPC_MoveChild, 9, ++/*181010*/ OPC_CheckInteger, 1, ++/*181012*/ OPC_CheckType, MVT::i32, ++/*181014*/ OPC_MoveParent, ++/*181015*/ OPC_MoveChild, 10, ++/*181017*/ OPC_CheckInteger, 1, ++/*181019*/ OPC_CheckType, MVT::i32, ++/*181021*/ OPC_MoveParent, ++/*181022*/ OPC_MoveChild, 11, ++/*181024*/ OPC_CheckInteger, 1, ++/*181026*/ OPC_CheckType, MVT::i32, ++/*181028*/ OPC_MoveParent, ++/*181029*/ OPC_MoveChild, 12, ++/*181031*/ OPC_CheckInteger, 1, ++/*181033*/ OPC_CheckType, MVT::i32, ++/*181035*/ OPC_MoveParent, ++/*181036*/ OPC_MoveChild, 13, ++/*181038*/ OPC_CheckInteger, 1, ++/*181040*/ OPC_CheckType, MVT::i32, ++/*181042*/ OPC_MoveParent, ++/*181043*/ OPC_MoveChild, 14, ++/*181045*/ OPC_CheckInteger, 1, ++/*181047*/ OPC_CheckType, MVT::i32, ++/*181049*/ OPC_MoveParent, ++/*181050*/ OPC_MoveChild, 15, ++/*181052*/ OPC_CheckInteger, 1, ++/*181054*/ OPC_CheckType, MVT::i32, ++/*181056*/ OPC_MoveParent, ++/*181057*/ OPC_MoveParent, ++/*181058*/ OPC_MoveParent, ++/*181059*/ OPC_CheckChild1Same, 0, ++/*181061*/ OPC_MoveParent, ++/*181062*/ OPC_MoveChild1, ++/*181063*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*181066*/ OPC_CheckChild0Integer, 7, ++/*181068*/ OPC_CheckChild0Type, MVT::i32, ++/*181070*/ OPC_CheckChild1Integer, 7, ++/*181072*/ OPC_CheckChild1Type, MVT::i32, ++/*181074*/ OPC_CheckChild2Integer, 7, ++/*181076*/ OPC_CheckChild2Type, MVT::i32, ++/*181078*/ OPC_CheckChild3Integer, 7, ++/*181080*/ OPC_CheckChild3Type, MVT::i32, ++/*181082*/ OPC_CheckChild4Integer, 7, ++/*181084*/ OPC_CheckChild4Type, MVT::i32, ++/*181086*/ OPC_MoveChild5, ++/*181087*/ OPC_CheckInteger, 7, ++/*181089*/ OPC_CheckType, MVT::i32, ++/*181091*/ OPC_MoveParent, ++/*181092*/ OPC_MoveChild6, ++/*181093*/ OPC_CheckInteger, 7, ++/*181095*/ OPC_CheckType, MVT::i32, ++/*181097*/ OPC_MoveParent, ++/*181098*/ OPC_MoveChild7, ++/*181099*/ OPC_CheckInteger, 7, ++/*181101*/ OPC_CheckType, MVT::i32, ++/*181103*/ OPC_MoveParent, ++/*181104*/ OPC_MoveChild, 8, ++/*181106*/ OPC_CheckInteger, 7, ++/*181108*/ OPC_CheckType, MVT::i32, ++/*181110*/ OPC_MoveParent, ++/*181111*/ OPC_MoveChild, 9, ++/*181113*/ OPC_CheckInteger, 7, ++/*181115*/ OPC_CheckType, MVT::i32, ++/*181117*/ OPC_MoveParent, ++/*181118*/ OPC_MoveChild, 10, ++/*181120*/ OPC_CheckInteger, 7, ++/*181122*/ OPC_CheckType, MVT::i32, ++/*181124*/ OPC_MoveParent, ++/*181125*/ OPC_MoveChild, 11, ++/*181127*/ OPC_CheckInteger, 7, ++/*181129*/ OPC_CheckType, MVT::i32, ++/*181131*/ OPC_MoveParent, ++/*181132*/ OPC_MoveChild, 12, ++/*181134*/ OPC_CheckInteger, 7, ++/*181136*/ OPC_CheckType, MVT::i32, ++/*181138*/ OPC_MoveParent, ++/*181139*/ OPC_MoveChild, 13, ++/*181141*/ OPC_CheckInteger, 7, ++/*181143*/ OPC_CheckType, MVT::i32, ++/*181145*/ OPC_MoveParent, ++/*181146*/ OPC_MoveChild, 14, ++/*181148*/ OPC_CheckInteger, 7, ++/*181150*/ OPC_CheckType, MVT::i32, ++/*181152*/ OPC_MoveParent, ++/*181153*/ OPC_MoveChild, 15, ++/*181155*/ OPC_CheckInteger, 7, ++/*181157*/ OPC_CheckType, MVT::i32, ++/*181159*/ OPC_MoveParent, ++/*181160*/ OPC_CheckType, MVT::v16i8, ++/*181162*/ OPC_MoveParent, ++/*181163*/ OPC_MoveParent, ++/*181164*/ OPC_MoveParent, ++/*181165*/ OPC_MoveChild1, ++/*181166*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*181169*/ OPC_CheckChild0Integer, 1, ++/*181171*/ OPC_CheckChild0Type, MVT::i32, ++/*181173*/ OPC_CheckChild1Integer, 1, ++/*181175*/ OPC_CheckChild1Type, MVT::i32, ++/*181177*/ OPC_CheckChild2Integer, 1, ++/*181179*/ OPC_CheckChild2Type, MVT::i32, ++/*181181*/ OPC_CheckChild3Integer, 1, ++/*181183*/ OPC_CheckChild3Type, MVT::i32, ++/*181185*/ OPC_CheckChild4Integer, 1, ++/*181187*/ OPC_CheckChild4Type, MVT::i32, ++/*181189*/ OPC_MoveChild5, ++/*181190*/ OPC_CheckInteger, 1, ++/*181192*/ OPC_CheckType, MVT::i32, ++/*181194*/ OPC_MoveParent, ++/*181195*/ OPC_MoveChild6, ++/*181196*/ OPC_CheckInteger, 1, ++/*181198*/ OPC_CheckType, MVT::i32, ++/*181200*/ OPC_MoveParent, ++/*181201*/ OPC_MoveChild7, ++/*181202*/ OPC_CheckInteger, 1, ++/*181204*/ OPC_CheckType, MVT::i32, ++/*181206*/ OPC_MoveParent, ++/*181207*/ OPC_MoveChild, 8, ++/*181209*/ OPC_CheckInteger, 1, ++/*181211*/ OPC_CheckType, MVT::i32, ++/*181213*/ OPC_MoveParent, ++/*181214*/ OPC_MoveChild, 9, ++/*181216*/ OPC_CheckInteger, 1, ++/*181218*/ OPC_CheckType, MVT::i32, ++/*181220*/ OPC_MoveParent, ++/*181221*/ OPC_MoveChild, 10, ++/*181223*/ OPC_CheckInteger, 1, ++/*181225*/ OPC_CheckType, MVT::i32, ++/*181227*/ OPC_MoveParent, ++/*181228*/ OPC_MoveChild, 11, ++/*181230*/ OPC_CheckInteger, 1, ++/*181232*/ OPC_CheckType, MVT::i32, ++/*181234*/ OPC_MoveParent, ++/*181235*/ OPC_MoveChild, 12, ++/*181237*/ OPC_CheckInteger, 1, ++/*181239*/ OPC_CheckType, MVT::i32, ++/*181241*/ OPC_MoveParent, ++/*181242*/ OPC_MoveChild, 13, ++/*181244*/ OPC_CheckInteger, 1, ++/*181246*/ OPC_CheckType, MVT::i32, ++/*181248*/ OPC_MoveParent, ++/*181249*/ OPC_MoveChild, 14, ++/*181251*/ OPC_CheckInteger, 1, ++/*181253*/ OPC_CheckType, MVT::i32, ++/*181255*/ OPC_MoveParent, ++/*181256*/ OPC_MoveChild, 15, ++/*181258*/ OPC_CheckInteger, 1, ++/*181260*/ OPC_CheckType, MVT::i32, ++/*181262*/ OPC_MoveParent, ++/*181263*/ OPC_CheckType, MVT::v16i8, ++/*181265*/ OPC_MoveParent, ++/*181266*/ OPC_CheckType, MVT::v16i8, ++/*181268*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*181270*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$b), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*181278*/ /*Scope*/ 65|128,2/*321*/, /*->181601*/ ++/*181280*/ OPC_CheckChild0Same, 0, ++/*181282*/ OPC_CheckChild1Same, 1, ++/*181284*/ OPC_MoveParent, ++/*181285*/ OPC_MoveChild1, ++/*181286*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*181289*/ OPC_CheckChild0Integer, 1, ++/*181291*/ OPC_CheckChild0Type, MVT::i32, ++/*181293*/ OPC_CheckChild1Integer, 1, ++/*181295*/ OPC_CheckChild1Type, MVT::i32, ++/*181297*/ OPC_CheckChild2Integer, 1, ++/*181299*/ OPC_CheckChild2Type, MVT::i32, ++/*181301*/ OPC_CheckChild3Integer, 1, ++/*181303*/ OPC_CheckChild3Type, MVT::i32, ++/*181305*/ OPC_CheckChild4Integer, 1, ++/*181307*/ OPC_CheckChild4Type, MVT::i32, ++/*181309*/ OPC_MoveChild5, ++/*181310*/ OPC_CheckInteger, 1, ++/*181312*/ OPC_CheckType, MVT::i32, ++/*181314*/ OPC_MoveParent, ++/*181315*/ OPC_MoveChild6, ++/*181316*/ OPC_CheckInteger, 1, ++/*181318*/ OPC_CheckType, MVT::i32, ++/*181320*/ OPC_MoveParent, ++/*181321*/ OPC_MoveChild7, ++/*181322*/ OPC_CheckInteger, 1, ++/*181324*/ OPC_CheckType, MVT::i32, ++/*181326*/ OPC_MoveParent, ++/*181327*/ OPC_MoveChild, 8, ++/*181329*/ OPC_CheckInteger, 1, ++/*181331*/ OPC_CheckType, MVT::i32, ++/*181333*/ OPC_MoveParent, ++/*181334*/ OPC_MoveChild, 9, ++/*181336*/ OPC_CheckInteger, 1, ++/*181338*/ OPC_CheckType, MVT::i32, ++/*181340*/ OPC_MoveParent, ++/*181341*/ OPC_MoveChild, 10, ++/*181343*/ OPC_CheckInteger, 1, ++/*181345*/ OPC_CheckType, MVT::i32, ++/*181347*/ OPC_MoveParent, ++/*181348*/ OPC_MoveChild, 11, ++/*181350*/ OPC_CheckInteger, 1, ++/*181352*/ OPC_CheckType, MVT::i32, ++/*181354*/ OPC_MoveParent, ++/*181355*/ OPC_MoveChild, 12, ++/*181357*/ OPC_CheckInteger, 1, ++/*181359*/ OPC_CheckType, MVT::i32, ++/*181361*/ OPC_MoveParent, ++/*181362*/ OPC_MoveChild, 13, ++/*181364*/ OPC_CheckInteger, 1, ++/*181366*/ OPC_CheckType, MVT::i32, ++/*181368*/ OPC_MoveParent, ++/*181369*/ OPC_MoveChild, 14, ++/*181371*/ OPC_CheckInteger, 1, ++/*181373*/ OPC_CheckType, MVT::i32, ++/*181375*/ OPC_MoveParent, ++/*181376*/ OPC_MoveChild, 15, ++/*181378*/ OPC_CheckInteger, 1, ++/*181380*/ OPC_CheckType, MVT::i32, ++/*181382*/ OPC_MoveParent, ++/*181383*/ OPC_MoveParent, ++/*181384*/ OPC_MoveParent, ++/*181385*/ OPC_MoveChild1, ++/*181386*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*181389*/ OPC_CheckChild0Integer, 7, ++/*181391*/ OPC_CheckChild0Type, MVT::i32, ++/*181393*/ OPC_CheckChild1Integer, 7, ++/*181395*/ OPC_CheckChild1Type, MVT::i32, ++/*181397*/ OPC_CheckChild2Integer, 7, ++/*181399*/ OPC_CheckChild2Type, MVT::i32, ++/*181401*/ OPC_CheckChild3Integer, 7, ++/*181403*/ OPC_CheckChild3Type, MVT::i32, ++/*181405*/ OPC_CheckChild4Integer, 7, ++/*181407*/ OPC_CheckChild4Type, MVT::i32, ++/*181409*/ OPC_MoveChild5, ++/*181410*/ OPC_CheckInteger, 7, ++/*181412*/ OPC_CheckType, MVT::i32, ++/*181414*/ OPC_MoveParent, ++/*181415*/ OPC_MoveChild6, ++/*181416*/ OPC_CheckInteger, 7, ++/*181418*/ OPC_CheckType, MVT::i32, ++/*181420*/ OPC_MoveParent, ++/*181421*/ OPC_MoveChild7, ++/*181422*/ OPC_CheckInteger, 7, ++/*181424*/ OPC_CheckType, MVT::i32, ++/*181426*/ OPC_MoveParent, ++/*181427*/ OPC_MoveChild, 8, ++/*181429*/ OPC_CheckInteger, 7, ++/*181431*/ OPC_CheckType, MVT::i32, ++/*181433*/ OPC_MoveParent, ++/*181434*/ OPC_MoveChild, 9, ++/*181436*/ OPC_CheckInteger, 7, ++/*181438*/ OPC_CheckType, MVT::i32, ++/*181440*/ OPC_MoveParent, ++/*181441*/ OPC_MoveChild, 10, ++/*181443*/ OPC_CheckInteger, 7, ++/*181445*/ OPC_CheckType, MVT::i32, ++/*181447*/ OPC_MoveParent, ++/*181448*/ OPC_MoveChild, 11, ++/*181450*/ OPC_CheckInteger, 7, ++/*181452*/ OPC_CheckType, MVT::i32, ++/*181454*/ OPC_MoveParent, ++/*181455*/ OPC_MoveChild, 12, ++/*181457*/ OPC_CheckInteger, 7, ++/*181459*/ OPC_CheckType, MVT::i32, ++/*181461*/ OPC_MoveParent, ++/*181462*/ OPC_MoveChild, 13, ++/*181464*/ OPC_CheckInteger, 7, ++/*181466*/ OPC_CheckType, MVT::i32, ++/*181468*/ OPC_MoveParent, ++/*181469*/ OPC_MoveChild, 14, ++/*181471*/ OPC_CheckInteger, 7, ++/*181473*/ OPC_CheckType, MVT::i32, ++/*181475*/ OPC_MoveParent, ++/*181476*/ OPC_MoveChild, 15, ++/*181478*/ OPC_CheckInteger, 7, ++/*181480*/ OPC_CheckType, MVT::i32, ++/*181482*/ OPC_MoveParent, ++/*181483*/ OPC_CheckType, MVT::v16i8, ++/*181485*/ OPC_MoveParent, ++/*181486*/ OPC_MoveParent, ++/*181487*/ OPC_MoveParent, ++/*181488*/ OPC_MoveChild1, ++/*181489*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*181492*/ OPC_CheckChild0Integer, 1, ++/*181494*/ OPC_CheckChild0Type, MVT::i32, ++/*181496*/ OPC_CheckChild1Integer, 1, ++/*181498*/ OPC_CheckChild1Type, MVT::i32, ++/*181500*/ OPC_CheckChild2Integer, 1, ++/*181502*/ OPC_CheckChild2Type, MVT::i32, ++/*181504*/ OPC_CheckChild3Integer, 1, ++/*181506*/ OPC_CheckChild3Type, MVT::i32, ++/*181508*/ OPC_CheckChild4Integer, 1, ++/*181510*/ OPC_CheckChild4Type, MVT::i32, ++/*181512*/ OPC_MoveChild5, ++/*181513*/ OPC_CheckInteger, 1, ++/*181515*/ OPC_CheckType, MVT::i32, ++/*181517*/ OPC_MoveParent, ++/*181518*/ OPC_MoveChild6, ++/*181519*/ OPC_CheckInteger, 1, ++/*181521*/ OPC_CheckType, MVT::i32, ++/*181523*/ OPC_MoveParent, ++/*181524*/ OPC_MoveChild7, ++/*181525*/ OPC_CheckInteger, 1, ++/*181527*/ OPC_CheckType, MVT::i32, ++/*181529*/ OPC_MoveParent, ++/*181530*/ OPC_MoveChild, 8, ++/*181532*/ OPC_CheckInteger, 1, ++/*181534*/ OPC_CheckType, MVT::i32, ++/*181536*/ OPC_MoveParent, ++/*181537*/ OPC_MoveChild, 9, ++/*181539*/ OPC_CheckInteger, 1, ++/*181541*/ OPC_CheckType, MVT::i32, ++/*181543*/ OPC_MoveParent, ++/*181544*/ OPC_MoveChild, 10, ++/*181546*/ OPC_CheckInteger, 1, ++/*181548*/ OPC_CheckType, MVT::i32, ++/*181550*/ OPC_MoveParent, ++/*181551*/ OPC_MoveChild, 11, ++/*181553*/ OPC_CheckInteger, 1, ++/*181555*/ OPC_CheckType, MVT::i32, ++/*181557*/ OPC_MoveParent, ++/*181558*/ OPC_MoveChild, 12, ++/*181560*/ OPC_CheckInteger, 1, ++/*181562*/ OPC_CheckType, MVT::i32, ++/*181564*/ OPC_MoveParent, ++/*181565*/ OPC_MoveChild, 13, ++/*181567*/ OPC_CheckInteger, 1, ++/*181569*/ OPC_CheckType, MVT::i32, ++/*181571*/ OPC_MoveParent, ++/*181572*/ OPC_MoveChild, 14, ++/*181574*/ OPC_CheckInteger, 1, ++/*181576*/ OPC_CheckType, MVT::i32, ++/*181578*/ OPC_MoveParent, ++/*181579*/ OPC_MoveChild, 15, ++/*181581*/ OPC_CheckInteger, 1, ++/*181583*/ OPC_CheckType, MVT::i32, ++/*181585*/ OPC_MoveParent, ++/*181586*/ OPC_CheckType, MVT::v16i8, ++/*181588*/ OPC_MoveParent, ++/*181589*/ OPC_CheckType, MVT::v16i8, ++/*181591*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*181593*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$b), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*181601*/ /*Scope*/ 65|128,2/*321*/, /*->181924*/ ++/*181603*/ OPC_CheckChild0Same, 1, ++/*181605*/ OPC_CheckChild1Same, 0, ++/*181607*/ OPC_MoveParent, ++/*181608*/ OPC_MoveChild1, ++/*181609*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*181612*/ OPC_CheckChild0Integer, 1, ++/*181614*/ OPC_CheckChild0Type, MVT::i32, ++/*181616*/ OPC_CheckChild1Integer, 1, ++/*181618*/ OPC_CheckChild1Type, MVT::i32, ++/*181620*/ OPC_CheckChild2Integer, 1, ++/*181622*/ OPC_CheckChild2Type, MVT::i32, ++/*181624*/ OPC_CheckChild3Integer, 1, ++/*181626*/ OPC_CheckChild3Type, MVT::i32, ++/*181628*/ OPC_CheckChild4Integer, 1, ++/*181630*/ OPC_CheckChild4Type, MVT::i32, ++/*181632*/ OPC_MoveChild5, ++/*181633*/ OPC_CheckInteger, 1, ++/*181635*/ OPC_CheckType, MVT::i32, ++/*181637*/ OPC_MoveParent, ++/*181638*/ OPC_MoveChild6, ++/*181639*/ OPC_CheckInteger, 1, ++/*181641*/ OPC_CheckType, MVT::i32, ++/*181643*/ OPC_MoveParent, ++/*181644*/ OPC_MoveChild7, ++/*181645*/ OPC_CheckInteger, 1, ++/*181647*/ OPC_CheckType, MVT::i32, ++/*181649*/ OPC_MoveParent, ++/*181650*/ OPC_MoveChild, 8, ++/*181652*/ OPC_CheckInteger, 1, ++/*181654*/ OPC_CheckType, MVT::i32, ++/*181656*/ OPC_MoveParent, ++/*181657*/ OPC_MoveChild, 9, ++/*181659*/ OPC_CheckInteger, 1, ++/*181661*/ OPC_CheckType, MVT::i32, ++/*181663*/ OPC_MoveParent, ++/*181664*/ OPC_MoveChild, 10, ++/*181666*/ OPC_CheckInteger, 1, ++/*181668*/ OPC_CheckType, MVT::i32, ++/*181670*/ OPC_MoveParent, ++/*181671*/ OPC_MoveChild, 11, ++/*181673*/ OPC_CheckInteger, 1, ++/*181675*/ OPC_CheckType, MVT::i32, ++/*181677*/ OPC_MoveParent, ++/*181678*/ OPC_MoveChild, 12, ++/*181680*/ OPC_CheckInteger, 1, ++/*181682*/ OPC_CheckType, MVT::i32, ++/*181684*/ OPC_MoveParent, ++/*181685*/ OPC_MoveChild, 13, ++/*181687*/ OPC_CheckInteger, 1, ++/*181689*/ OPC_CheckType, MVT::i32, ++/*181691*/ OPC_MoveParent, ++/*181692*/ OPC_MoveChild, 14, ++/*181694*/ OPC_CheckInteger, 1, ++/*181696*/ OPC_CheckType, MVT::i32, ++/*181698*/ OPC_MoveParent, ++/*181699*/ OPC_MoveChild, 15, ++/*181701*/ OPC_CheckInteger, 1, ++/*181703*/ OPC_CheckType, MVT::i32, ++/*181705*/ OPC_MoveParent, ++/*181706*/ OPC_MoveParent, ++/*181707*/ OPC_MoveParent, ++/*181708*/ OPC_MoveChild1, ++/*181709*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*181712*/ OPC_CheckChild0Integer, 7, ++/*181714*/ OPC_CheckChild0Type, MVT::i32, ++/*181716*/ OPC_CheckChild1Integer, 7, ++/*181718*/ OPC_CheckChild1Type, MVT::i32, ++/*181720*/ OPC_CheckChild2Integer, 7, ++/*181722*/ OPC_CheckChild2Type, MVT::i32, ++/*181724*/ OPC_CheckChild3Integer, 7, ++/*181726*/ OPC_CheckChild3Type, MVT::i32, ++/*181728*/ OPC_CheckChild4Integer, 7, ++/*181730*/ OPC_CheckChild4Type, MVT::i32, ++/*181732*/ OPC_MoveChild5, ++/*181733*/ OPC_CheckInteger, 7, ++/*181735*/ OPC_CheckType, MVT::i32, ++/*181737*/ OPC_MoveParent, ++/*181738*/ OPC_MoveChild6, ++/*181739*/ OPC_CheckInteger, 7, ++/*181741*/ OPC_CheckType, MVT::i32, ++/*181743*/ OPC_MoveParent, ++/*181744*/ OPC_MoveChild7, ++/*181745*/ OPC_CheckInteger, 7, ++/*181747*/ OPC_CheckType, MVT::i32, ++/*181749*/ OPC_MoveParent, ++/*181750*/ OPC_MoveChild, 8, ++/*181752*/ OPC_CheckInteger, 7, ++/*181754*/ OPC_CheckType, MVT::i32, ++/*181756*/ OPC_MoveParent, ++/*181757*/ OPC_MoveChild, 9, ++/*181759*/ OPC_CheckInteger, 7, ++/*181761*/ OPC_CheckType, MVT::i32, ++/*181763*/ OPC_MoveParent, ++/*181764*/ OPC_MoveChild, 10, ++/*181766*/ OPC_CheckInteger, 7, ++/*181768*/ OPC_CheckType, MVT::i32, ++/*181770*/ OPC_MoveParent, ++/*181771*/ OPC_MoveChild, 11, ++/*181773*/ OPC_CheckInteger, 7, ++/*181775*/ OPC_CheckType, MVT::i32, ++/*181777*/ OPC_MoveParent, ++/*181778*/ OPC_MoveChild, 12, ++/*181780*/ OPC_CheckInteger, 7, ++/*181782*/ OPC_CheckType, MVT::i32, ++/*181784*/ OPC_MoveParent, ++/*181785*/ OPC_MoveChild, 13, ++/*181787*/ OPC_CheckInteger, 7, ++/*181789*/ OPC_CheckType, MVT::i32, ++/*181791*/ OPC_MoveParent, ++/*181792*/ OPC_MoveChild, 14, ++/*181794*/ OPC_CheckInteger, 7, ++/*181796*/ OPC_CheckType, MVT::i32, ++/*181798*/ OPC_MoveParent, ++/*181799*/ OPC_MoveChild, 15, ++/*181801*/ OPC_CheckInteger, 7, ++/*181803*/ OPC_CheckType, MVT::i32, ++/*181805*/ OPC_MoveParent, ++/*181806*/ OPC_CheckType, MVT::v16i8, ++/*181808*/ OPC_MoveParent, ++/*181809*/ OPC_MoveParent, ++/*181810*/ OPC_MoveParent, ++/*181811*/ OPC_MoveChild1, ++/*181812*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*181815*/ OPC_CheckChild0Integer, 1, ++/*181817*/ OPC_CheckChild0Type, MVT::i32, ++/*181819*/ OPC_CheckChild1Integer, 1, ++/*181821*/ OPC_CheckChild1Type, MVT::i32, ++/*181823*/ OPC_CheckChild2Integer, 1, ++/*181825*/ OPC_CheckChild2Type, MVT::i32, ++/*181827*/ OPC_CheckChild3Integer, 1, ++/*181829*/ OPC_CheckChild3Type, MVT::i32, ++/*181831*/ OPC_CheckChild4Integer, 1, ++/*181833*/ OPC_CheckChild4Type, MVT::i32, ++/*181835*/ OPC_MoveChild5, ++/*181836*/ OPC_CheckInteger, 1, ++/*181838*/ OPC_CheckType, MVT::i32, ++/*181840*/ OPC_MoveParent, ++/*181841*/ OPC_MoveChild6, ++/*181842*/ OPC_CheckInteger, 1, ++/*181844*/ OPC_CheckType, MVT::i32, ++/*181846*/ OPC_MoveParent, ++/*181847*/ OPC_MoveChild7, ++/*181848*/ OPC_CheckInteger, 1, ++/*181850*/ OPC_CheckType, MVT::i32, ++/*181852*/ OPC_MoveParent, ++/*181853*/ OPC_MoveChild, 8, ++/*181855*/ OPC_CheckInteger, 1, ++/*181857*/ OPC_CheckType, MVT::i32, ++/*181859*/ OPC_MoveParent, ++/*181860*/ OPC_MoveChild, 9, ++/*181862*/ OPC_CheckInteger, 1, ++/*181864*/ OPC_CheckType, MVT::i32, ++/*181866*/ OPC_MoveParent, ++/*181867*/ OPC_MoveChild, 10, ++/*181869*/ OPC_CheckInteger, 1, ++/*181871*/ OPC_CheckType, MVT::i32, ++/*181873*/ OPC_MoveParent, ++/*181874*/ OPC_MoveChild, 11, ++/*181876*/ OPC_CheckInteger, 1, ++/*181878*/ OPC_CheckType, MVT::i32, ++/*181880*/ OPC_MoveParent, ++/*181881*/ OPC_MoveChild, 12, ++/*181883*/ OPC_CheckInteger, 1, ++/*181885*/ OPC_CheckType, MVT::i32, ++/*181887*/ OPC_MoveParent, ++/*181888*/ OPC_MoveChild, 13, ++/*181890*/ OPC_CheckInteger, 1, ++/*181892*/ OPC_CheckType, MVT::i32, ++/*181894*/ OPC_MoveParent, ++/*181895*/ OPC_MoveChild, 14, ++/*181897*/ OPC_CheckInteger, 1, ++/*181899*/ OPC_CheckType, MVT::i32, ++/*181901*/ OPC_MoveParent, ++/*181902*/ OPC_MoveChild, 15, ++/*181904*/ OPC_CheckInteger, 1, ++/*181906*/ OPC_CheckType, MVT::i32, ++/*181908*/ OPC_MoveParent, ++/*181909*/ OPC_CheckType, MVT::v16i8, ++/*181911*/ OPC_MoveParent, ++/*181912*/ OPC_CheckType, MVT::v16i8, ++/*181914*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*181916*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$b), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*181924*/ 0, /*End of Scope*/ ++/*181925*/ /*Scope*/ 10|128,5/*650*/, /*->182577*/ ++/*181927*/ OPC_CheckChild0Same, 1, ++/*181929*/ OPC_MoveChild1, ++/*181930*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*181933*/ OPC_Scope, 63|128,2/*319*/, /*->182255*/ // 2 children in Scope ++/*181936*/ OPC_MoveChild0, ++/*181937*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*181940*/ OPC_CheckChild0Integer, 1, ++/*181942*/ OPC_CheckChild0Type, MVT::i32, ++/*181944*/ OPC_CheckChild1Integer, 1, ++/*181946*/ OPC_CheckChild1Type, MVT::i32, ++/*181948*/ OPC_CheckChild2Integer, 1, ++/*181950*/ OPC_CheckChild2Type, MVT::i32, ++/*181952*/ OPC_CheckChild3Integer, 1, ++/*181954*/ OPC_CheckChild3Type, MVT::i32, ++/*181956*/ OPC_CheckChild4Integer, 1, ++/*181958*/ OPC_CheckChild4Type, MVT::i32, ++/*181960*/ OPC_MoveChild5, ++/*181961*/ OPC_CheckInteger, 1, ++/*181963*/ OPC_CheckType, MVT::i32, ++/*181965*/ OPC_MoveParent, ++/*181966*/ OPC_MoveChild6, ++/*181967*/ OPC_CheckInteger, 1, ++/*181969*/ OPC_CheckType, MVT::i32, ++/*181971*/ OPC_MoveParent, ++/*181972*/ OPC_MoveChild7, ++/*181973*/ OPC_CheckInteger, 1, ++/*181975*/ OPC_CheckType, MVT::i32, ++/*181977*/ OPC_MoveParent, ++/*181978*/ OPC_MoveChild, 8, ++/*181980*/ OPC_CheckInteger, 1, ++/*181982*/ OPC_CheckType, MVT::i32, ++/*181984*/ OPC_MoveParent, ++/*181985*/ OPC_MoveChild, 9, ++/*181987*/ OPC_CheckInteger, 1, ++/*181989*/ OPC_CheckType, MVT::i32, ++/*181991*/ OPC_MoveParent, ++/*181992*/ OPC_MoveChild, 10, ++/*181994*/ OPC_CheckInteger, 1, ++/*181996*/ OPC_CheckType, MVT::i32, ++/*181998*/ OPC_MoveParent, ++/*181999*/ OPC_MoveChild, 11, ++/*182001*/ OPC_CheckInteger, 1, ++/*182003*/ OPC_CheckType, MVT::i32, ++/*182005*/ OPC_MoveParent, ++/*182006*/ OPC_MoveChild, 12, ++/*182008*/ OPC_CheckInteger, 1, ++/*182010*/ OPC_CheckType, MVT::i32, ++/*182012*/ OPC_MoveParent, ++/*182013*/ OPC_MoveChild, 13, ++/*182015*/ OPC_CheckInteger, 1, ++/*182017*/ OPC_CheckType, MVT::i32, ++/*182019*/ OPC_MoveParent, ++/*182020*/ OPC_MoveChild, 14, ++/*182022*/ OPC_CheckInteger, 1, ++/*182024*/ OPC_CheckType, MVT::i32, ++/*182026*/ OPC_MoveParent, ++/*182027*/ OPC_MoveChild, 15, ++/*182029*/ OPC_CheckInteger, 1, ++/*182031*/ OPC_CheckType, MVT::i32, ++/*182033*/ OPC_MoveParent, ++/*182034*/ OPC_MoveParent, ++/*182035*/ OPC_CheckChild1Same, 0, ++/*182037*/ OPC_MoveParent, ++/*182038*/ OPC_MoveParent, ++/*182039*/ OPC_MoveChild1, ++/*182040*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*182043*/ OPC_CheckChild0Integer, 7, ++/*182045*/ OPC_CheckChild0Type, MVT::i32, ++/*182047*/ OPC_CheckChild1Integer, 7, ++/*182049*/ OPC_CheckChild1Type, MVT::i32, ++/*182051*/ OPC_CheckChild2Integer, 7, ++/*182053*/ OPC_CheckChild2Type, MVT::i32, ++/*182055*/ OPC_CheckChild3Integer, 7, ++/*182057*/ OPC_CheckChild3Type, MVT::i32, ++/*182059*/ OPC_CheckChild4Integer, 7, ++/*182061*/ OPC_CheckChild4Type, MVT::i32, ++/*182063*/ OPC_MoveChild5, ++/*182064*/ OPC_CheckInteger, 7, ++/*182066*/ OPC_CheckType, MVT::i32, ++/*182068*/ OPC_MoveParent, ++/*182069*/ OPC_MoveChild6, ++/*182070*/ OPC_CheckInteger, 7, ++/*182072*/ OPC_CheckType, MVT::i32, ++/*182074*/ OPC_MoveParent, ++/*182075*/ OPC_MoveChild7, ++/*182076*/ OPC_CheckInteger, 7, ++/*182078*/ OPC_CheckType, MVT::i32, ++/*182080*/ OPC_MoveParent, ++/*182081*/ OPC_MoveChild, 8, ++/*182083*/ OPC_CheckInteger, 7, ++/*182085*/ OPC_CheckType, MVT::i32, ++/*182087*/ OPC_MoveParent, ++/*182088*/ OPC_MoveChild, 9, ++/*182090*/ OPC_CheckInteger, 7, ++/*182092*/ OPC_CheckType, MVT::i32, ++/*182094*/ OPC_MoveParent, ++/*182095*/ OPC_MoveChild, 10, ++/*182097*/ OPC_CheckInteger, 7, ++/*182099*/ OPC_CheckType, MVT::i32, ++/*182101*/ OPC_MoveParent, ++/*182102*/ OPC_MoveChild, 11, ++/*182104*/ OPC_CheckInteger, 7, ++/*182106*/ OPC_CheckType, MVT::i32, ++/*182108*/ OPC_MoveParent, ++/*182109*/ OPC_MoveChild, 12, ++/*182111*/ OPC_CheckInteger, 7, ++/*182113*/ OPC_CheckType, MVT::i32, ++/*182115*/ OPC_MoveParent, ++/*182116*/ OPC_MoveChild, 13, ++/*182118*/ OPC_CheckInteger, 7, ++/*182120*/ OPC_CheckType, MVT::i32, ++/*182122*/ OPC_MoveParent, ++/*182123*/ OPC_MoveChild, 14, ++/*182125*/ OPC_CheckInteger, 7, ++/*182127*/ OPC_CheckType, MVT::i32, ++/*182129*/ OPC_MoveParent, ++/*182130*/ OPC_MoveChild, 15, ++/*182132*/ OPC_CheckInteger, 7, ++/*182134*/ OPC_CheckType, MVT::i32, ++/*182136*/ OPC_MoveParent, ++/*182137*/ OPC_CheckType, MVT::v16i8, ++/*182139*/ OPC_MoveParent, ++/*182140*/ OPC_MoveParent, ++/*182141*/ OPC_MoveParent, ++/*182142*/ OPC_MoveChild1, ++/*182143*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*182146*/ OPC_CheckChild0Integer, 1, ++/*182148*/ OPC_CheckChild0Type, MVT::i32, ++/*182150*/ OPC_CheckChild1Integer, 1, ++/*182152*/ OPC_CheckChild1Type, MVT::i32, ++/*182154*/ OPC_CheckChild2Integer, 1, ++/*182156*/ OPC_CheckChild2Type, MVT::i32, ++/*182158*/ OPC_CheckChild3Integer, 1, ++/*182160*/ OPC_CheckChild3Type, MVT::i32, ++/*182162*/ OPC_CheckChild4Integer, 1, ++/*182164*/ OPC_CheckChild4Type, MVT::i32, ++/*182166*/ OPC_MoveChild5, ++/*182167*/ OPC_CheckInteger, 1, ++/*182169*/ OPC_CheckType, MVT::i32, ++/*182171*/ OPC_MoveParent, ++/*182172*/ OPC_MoveChild6, ++/*182173*/ OPC_CheckInteger, 1, ++/*182175*/ OPC_CheckType, MVT::i32, ++/*182177*/ OPC_MoveParent, ++/*182178*/ OPC_MoveChild7, ++/*182179*/ OPC_CheckInteger, 1, ++/*182181*/ OPC_CheckType, MVT::i32, ++/*182183*/ OPC_MoveParent, ++/*182184*/ OPC_MoveChild, 8, ++/*182186*/ OPC_CheckInteger, 1, ++/*182188*/ OPC_CheckType, MVT::i32, ++/*182190*/ OPC_MoveParent, ++/*182191*/ OPC_MoveChild, 9, ++/*182193*/ OPC_CheckInteger, 1, ++/*182195*/ OPC_CheckType, MVT::i32, ++/*182197*/ OPC_MoveParent, ++/*182198*/ OPC_MoveChild, 10, ++/*182200*/ OPC_CheckInteger, 1, ++/*182202*/ OPC_CheckType, MVT::i32, ++/*182204*/ OPC_MoveParent, ++/*182205*/ OPC_MoveChild, 11, ++/*182207*/ OPC_CheckInteger, 1, ++/*182209*/ OPC_CheckType, MVT::i32, ++/*182211*/ OPC_MoveParent, ++/*182212*/ OPC_MoveChild, 12, ++/*182214*/ OPC_CheckInteger, 1, ++/*182216*/ OPC_CheckType, MVT::i32, ++/*182218*/ OPC_MoveParent, ++/*182219*/ OPC_MoveChild, 13, ++/*182221*/ OPC_CheckInteger, 1, ++/*182223*/ OPC_CheckType, MVT::i32, ++/*182225*/ OPC_MoveParent, ++/*182226*/ OPC_MoveChild, 14, ++/*182228*/ OPC_CheckInteger, 1, ++/*182230*/ OPC_CheckType, MVT::i32, ++/*182232*/ OPC_MoveParent, ++/*182233*/ OPC_MoveChild, 15, ++/*182235*/ OPC_CheckInteger, 1, ++/*182237*/ OPC_CheckType, MVT::i32, ++/*182239*/ OPC_MoveParent, ++/*182240*/ OPC_CheckType, MVT::v16i8, ++/*182242*/ OPC_MoveParent, ++/*182243*/ OPC_CheckType, MVT::v16i8, ++/*182245*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*182247*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$b), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*182255*/ /*Scope*/ 63|128,2/*319*/, /*->182576*/ ++/*182257*/ OPC_CheckChild0Same, 0, ++/*182259*/ OPC_MoveChild1, ++/*182260*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*182263*/ OPC_CheckChild0Integer, 1, ++/*182265*/ OPC_CheckChild0Type, MVT::i32, ++/*182267*/ OPC_CheckChild1Integer, 1, ++/*182269*/ OPC_CheckChild1Type, MVT::i32, ++/*182271*/ OPC_CheckChild2Integer, 1, ++/*182273*/ OPC_CheckChild2Type, MVT::i32, ++/*182275*/ OPC_CheckChild3Integer, 1, ++/*182277*/ OPC_CheckChild3Type, MVT::i32, ++/*182279*/ OPC_CheckChild4Integer, 1, ++/*182281*/ OPC_CheckChild4Type, MVT::i32, ++/*182283*/ OPC_MoveChild5, ++/*182284*/ OPC_CheckInteger, 1, ++/*182286*/ OPC_CheckType, MVT::i32, ++/*182288*/ OPC_MoveParent, ++/*182289*/ OPC_MoveChild6, ++/*182290*/ OPC_CheckInteger, 1, ++/*182292*/ OPC_CheckType, MVT::i32, ++/*182294*/ OPC_MoveParent, ++/*182295*/ OPC_MoveChild7, ++/*182296*/ OPC_CheckInteger, 1, ++/*182298*/ OPC_CheckType, MVT::i32, ++/*182300*/ OPC_MoveParent, ++/*182301*/ OPC_MoveChild, 8, ++/*182303*/ OPC_CheckInteger, 1, ++/*182305*/ OPC_CheckType, MVT::i32, ++/*182307*/ OPC_MoveParent, ++/*182308*/ OPC_MoveChild, 9, ++/*182310*/ OPC_CheckInteger, 1, ++/*182312*/ OPC_CheckType, MVT::i32, ++/*182314*/ OPC_MoveParent, ++/*182315*/ OPC_MoveChild, 10, ++/*182317*/ OPC_CheckInteger, 1, ++/*182319*/ OPC_CheckType, MVT::i32, ++/*182321*/ OPC_MoveParent, ++/*182322*/ OPC_MoveChild, 11, ++/*182324*/ OPC_CheckInteger, 1, ++/*182326*/ OPC_CheckType, MVT::i32, ++/*182328*/ OPC_MoveParent, ++/*182329*/ OPC_MoveChild, 12, ++/*182331*/ OPC_CheckInteger, 1, ++/*182333*/ OPC_CheckType, MVT::i32, ++/*182335*/ OPC_MoveParent, ++/*182336*/ OPC_MoveChild, 13, ++/*182338*/ OPC_CheckInteger, 1, ++/*182340*/ OPC_CheckType, MVT::i32, ++/*182342*/ OPC_MoveParent, ++/*182343*/ OPC_MoveChild, 14, ++/*182345*/ OPC_CheckInteger, 1, ++/*182347*/ OPC_CheckType, MVT::i32, ++/*182349*/ OPC_MoveParent, ++/*182350*/ OPC_MoveChild, 15, ++/*182352*/ OPC_CheckInteger, 1, ++/*182354*/ OPC_CheckType, MVT::i32, ++/*182356*/ OPC_MoveParent, ++/*182357*/ OPC_MoveParent, ++/*182358*/ OPC_MoveParent, ++/*182359*/ OPC_MoveParent, ++/*182360*/ OPC_MoveChild1, ++/*182361*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*182364*/ OPC_CheckChild0Integer, 7, ++/*182366*/ OPC_CheckChild0Type, MVT::i32, ++/*182368*/ OPC_CheckChild1Integer, 7, ++/*182370*/ OPC_CheckChild1Type, MVT::i32, ++/*182372*/ OPC_CheckChild2Integer, 7, ++/*182374*/ OPC_CheckChild2Type, MVT::i32, ++/*182376*/ OPC_CheckChild3Integer, 7, ++/*182378*/ OPC_CheckChild3Type, MVT::i32, ++/*182380*/ OPC_CheckChild4Integer, 7, ++/*182382*/ OPC_CheckChild4Type, MVT::i32, ++/*182384*/ OPC_MoveChild5, ++/*182385*/ OPC_CheckInteger, 7, ++/*182387*/ OPC_CheckType, MVT::i32, ++/*182389*/ OPC_MoveParent, ++/*182390*/ OPC_MoveChild6, ++/*182391*/ OPC_CheckInteger, 7, ++/*182393*/ OPC_CheckType, MVT::i32, ++/*182395*/ OPC_MoveParent, ++/*182396*/ OPC_MoveChild7, ++/*182397*/ OPC_CheckInteger, 7, ++/*182399*/ OPC_CheckType, MVT::i32, ++/*182401*/ OPC_MoveParent, ++/*182402*/ OPC_MoveChild, 8, ++/*182404*/ OPC_CheckInteger, 7, ++/*182406*/ OPC_CheckType, MVT::i32, ++/*182408*/ OPC_MoveParent, ++/*182409*/ OPC_MoveChild, 9, ++/*182411*/ OPC_CheckInteger, 7, ++/*182413*/ OPC_CheckType, MVT::i32, ++/*182415*/ OPC_MoveParent, ++/*182416*/ OPC_MoveChild, 10, ++/*182418*/ OPC_CheckInteger, 7, ++/*182420*/ OPC_CheckType, MVT::i32, ++/*182422*/ OPC_MoveParent, ++/*182423*/ OPC_MoveChild, 11, ++/*182425*/ OPC_CheckInteger, 7, ++/*182427*/ OPC_CheckType, MVT::i32, ++/*182429*/ OPC_MoveParent, ++/*182430*/ OPC_MoveChild, 12, ++/*182432*/ OPC_CheckInteger, 7, ++/*182434*/ OPC_CheckType, MVT::i32, ++/*182436*/ OPC_MoveParent, ++/*182437*/ OPC_MoveChild, 13, ++/*182439*/ OPC_CheckInteger, 7, ++/*182441*/ OPC_CheckType, MVT::i32, ++/*182443*/ OPC_MoveParent, ++/*182444*/ OPC_MoveChild, 14, ++/*182446*/ OPC_CheckInteger, 7, ++/*182448*/ OPC_CheckType, MVT::i32, ++/*182450*/ OPC_MoveParent, ++/*182451*/ OPC_MoveChild, 15, ++/*182453*/ OPC_CheckInteger, 7, ++/*182455*/ OPC_CheckType, MVT::i32, ++/*182457*/ OPC_MoveParent, ++/*182458*/ OPC_CheckType, MVT::v16i8, ++/*182460*/ OPC_MoveParent, ++/*182461*/ OPC_MoveParent, ++/*182462*/ OPC_MoveParent, ++/*182463*/ OPC_MoveChild1, ++/*182464*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*182467*/ OPC_CheckChild0Integer, 1, ++/*182469*/ OPC_CheckChild0Type, MVT::i32, ++/*182471*/ OPC_CheckChild1Integer, 1, ++/*182473*/ OPC_CheckChild1Type, MVT::i32, ++/*182475*/ OPC_CheckChild2Integer, 1, ++/*182477*/ OPC_CheckChild2Type, MVT::i32, ++/*182479*/ OPC_CheckChild3Integer, 1, ++/*182481*/ OPC_CheckChild3Type, MVT::i32, ++/*182483*/ OPC_CheckChild4Integer, 1, ++/*182485*/ OPC_CheckChild4Type, MVT::i32, ++/*182487*/ OPC_MoveChild5, ++/*182488*/ OPC_CheckInteger, 1, ++/*182490*/ OPC_CheckType, MVT::i32, ++/*182492*/ OPC_MoveParent, ++/*182493*/ OPC_MoveChild6, ++/*182494*/ OPC_CheckInteger, 1, ++/*182496*/ OPC_CheckType, MVT::i32, ++/*182498*/ OPC_MoveParent, ++/*182499*/ OPC_MoveChild7, ++/*182500*/ OPC_CheckInteger, 1, ++/*182502*/ OPC_CheckType, MVT::i32, ++/*182504*/ OPC_MoveParent, ++/*182505*/ OPC_MoveChild, 8, ++/*182507*/ OPC_CheckInteger, 1, ++/*182509*/ OPC_CheckType, MVT::i32, ++/*182511*/ OPC_MoveParent, ++/*182512*/ OPC_MoveChild, 9, ++/*182514*/ OPC_CheckInteger, 1, ++/*182516*/ OPC_CheckType, MVT::i32, ++/*182518*/ OPC_MoveParent, ++/*182519*/ OPC_MoveChild, 10, ++/*182521*/ OPC_CheckInteger, 1, ++/*182523*/ OPC_CheckType, MVT::i32, ++/*182525*/ OPC_MoveParent, ++/*182526*/ OPC_MoveChild, 11, ++/*182528*/ OPC_CheckInteger, 1, ++/*182530*/ OPC_CheckType, MVT::i32, ++/*182532*/ OPC_MoveParent, ++/*182533*/ OPC_MoveChild, 12, ++/*182535*/ OPC_CheckInteger, 1, ++/*182537*/ OPC_CheckType, MVT::i32, ++/*182539*/ OPC_MoveParent, ++/*182540*/ OPC_MoveChild, 13, ++/*182542*/ OPC_CheckInteger, 1, ++/*182544*/ OPC_CheckType, MVT::i32, ++/*182546*/ OPC_MoveParent, ++/*182547*/ OPC_MoveChild, 14, ++/*182549*/ OPC_CheckInteger, 1, ++/*182551*/ OPC_CheckType, MVT::i32, ++/*182553*/ OPC_MoveParent, ++/*182554*/ OPC_MoveChild, 15, ++/*182556*/ OPC_CheckInteger, 1, ++/*182558*/ OPC_CheckType, MVT::i32, ++/*182560*/ OPC_MoveParent, ++/*182561*/ OPC_CheckType, MVT::v16i8, ++/*182563*/ OPC_MoveParent, ++/*182564*/ OPC_CheckType, MVT::v16i8, ++/*182566*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*182568*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$b), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*182576*/ 0, /*End of Scope*/ ++/*182577*/ /*Scope*/ 10|128,5/*650*/, /*->183229*/ ++/*182579*/ OPC_CheckChild0Same, 0, ++/*182581*/ OPC_MoveChild1, ++/*182582*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*182585*/ OPC_Scope, 63|128,2/*319*/, /*->182907*/ // 2 children in Scope ++/*182588*/ OPC_MoveChild0, ++/*182589*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*182592*/ OPC_CheckChild0Integer, 1, ++/*182594*/ OPC_CheckChild0Type, MVT::i32, ++/*182596*/ OPC_CheckChild1Integer, 1, ++/*182598*/ OPC_CheckChild1Type, MVT::i32, ++/*182600*/ OPC_CheckChild2Integer, 1, ++/*182602*/ OPC_CheckChild2Type, MVT::i32, ++/*182604*/ OPC_CheckChild3Integer, 1, ++/*182606*/ OPC_CheckChild3Type, MVT::i32, ++/*182608*/ OPC_CheckChild4Integer, 1, ++/*182610*/ OPC_CheckChild4Type, MVT::i32, ++/*182612*/ OPC_MoveChild5, ++/*182613*/ OPC_CheckInteger, 1, ++/*182615*/ OPC_CheckType, MVT::i32, ++/*182617*/ OPC_MoveParent, ++/*182618*/ OPC_MoveChild6, ++/*182619*/ OPC_CheckInteger, 1, ++/*182621*/ OPC_CheckType, MVT::i32, ++/*182623*/ OPC_MoveParent, ++/*182624*/ OPC_MoveChild7, ++/*182625*/ OPC_CheckInteger, 1, ++/*182627*/ OPC_CheckType, MVT::i32, ++/*182629*/ OPC_MoveParent, ++/*182630*/ OPC_MoveChild, 8, ++/*182632*/ OPC_CheckInteger, 1, ++/*182634*/ OPC_CheckType, MVT::i32, ++/*182636*/ OPC_MoveParent, ++/*182637*/ OPC_MoveChild, 9, ++/*182639*/ OPC_CheckInteger, 1, ++/*182641*/ OPC_CheckType, MVT::i32, ++/*182643*/ OPC_MoveParent, ++/*182644*/ OPC_MoveChild, 10, ++/*182646*/ OPC_CheckInteger, 1, ++/*182648*/ OPC_CheckType, MVT::i32, ++/*182650*/ OPC_MoveParent, ++/*182651*/ OPC_MoveChild, 11, ++/*182653*/ OPC_CheckInteger, 1, ++/*182655*/ OPC_CheckType, MVT::i32, ++/*182657*/ OPC_MoveParent, ++/*182658*/ OPC_MoveChild, 12, ++/*182660*/ OPC_CheckInteger, 1, ++/*182662*/ OPC_CheckType, MVT::i32, ++/*182664*/ OPC_MoveParent, ++/*182665*/ OPC_MoveChild, 13, ++/*182667*/ OPC_CheckInteger, 1, ++/*182669*/ OPC_CheckType, MVT::i32, ++/*182671*/ OPC_MoveParent, ++/*182672*/ OPC_MoveChild, 14, ++/*182674*/ OPC_CheckInteger, 1, ++/*182676*/ OPC_CheckType, MVT::i32, ++/*182678*/ OPC_MoveParent, ++/*182679*/ OPC_MoveChild, 15, ++/*182681*/ OPC_CheckInteger, 1, ++/*182683*/ OPC_CheckType, MVT::i32, ++/*182685*/ OPC_MoveParent, ++/*182686*/ OPC_MoveParent, ++/*182687*/ OPC_CheckChild1Same, 1, ++/*182689*/ OPC_MoveParent, ++/*182690*/ OPC_MoveParent, ++/*182691*/ OPC_MoveChild1, ++/*182692*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*182695*/ OPC_CheckChild0Integer, 7, ++/*182697*/ OPC_CheckChild0Type, MVT::i32, ++/*182699*/ OPC_CheckChild1Integer, 7, ++/*182701*/ OPC_CheckChild1Type, MVT::i32, ++/*182703*/ OPC_CheckChild2Integer, 7, ++/*182705*/ OPC_CheckChild2Type, MVT::i32, ++/*182707*/ OPC_CheckChild3Integer, 7, ++/*182709*/ OPC_CheckChild3Type, MVT::i32, ++/*182711*/ OPC_CheckChild4Integer, 7, ++/*182713*/ OPC_CheckChild4Type, MVT::i32, ++/*182715*/ OPC_MoveChild5, ++/*182716*/ OPC_CheckInteger, 7, ++/*182718*/ OPC_CheckType, MVT::i32, ++/*182720*/ OPC_MoveParent, ++/*182721*/ OPC_MoveChild6, ++/*182722*/ OPC_CheckInteger, 7, ++/*182724*/ OPC_CheckType, MVT::i32, ++/*182726*/ OPC_MoveParent, ++/*182727*/ OPC_MoveChild7, ++/*182728*/ OPC_CheckInteger, 7, ++/*182730*/ OPC_CheckType, MVT::i32, ++/*182732*/ OPC_MoveParent, ++/*182733*/ OPC_MoveChild, 8, ++/*182735*/ OPC_CheckInteger, 7, ++/*182737*/ OPC_CheckType, MVT::i32, ++/*182739*/ OPC_MoveParent, ++/*182740*/ OPC_MoveChild, 9, ++/*182742*/ OPC_CheckInteger, 7, ++/*182744*/ OPC_CheckType, MVT::i32, ++/*182746*/ OPC_MoveParent, ++/*182747*/ OPC_MoveChild, 10, ++/*182749*/ OPC_CheckInteger, 7, ++/*182751*/ OPC_CheckType, MVT::i32, ++/*182753*/ OPC_MoveParent, ++/*182754*/ OPC_MoveChild, 11, ++/*182756*/ OPC_CheckInteger, 7, ++/*182758*/ OPC_CheckType, MVT::i32, ++/*182760*/ OPC_MoveParent, ++/*182761*/ OPC_MoveChild, 12, ++/*182763*/ OPC_CheckInteger, 7, ++/*182765*/ OPC_CheckType, MVT::i32, ++/*182767*/ OPC_MoveParent, ++/*182768*/ OPC_MoveChild, 13, ++/*182770*/ OPC_CheckInteger, 7, ++/*182772*/ OPC_CheckType, MVT::i32, ++/*182774*/ OPC_MoveParent, ++/*182775*/ OPC_MoveChild, 14, ++/*182777*/ OPC_CheckInteger, 7, ++/*182779*/ OPC_CheckType, MVT::i32, ++/*182781*/ OPC_MoveParent, ++/*182782*/ OPC_MoveChild, 15, ++/*182784*/ OPC_CheckInteger, 7, ++/*182786*/ OPC_CheckType, MVT::i32, ++/*182788*/ OPC_MoveParent, ++/*182789*/ OPC_CheckType, MVT::v16i8, ++/*182791*/ OPC_MoveParent, ++/*182792*/ OPC_MoveParent, ++/*182793*/ OPC_MoveParent, ++/*182794*/ OPC_MoveChild1, ++/*182795*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*182798*/ OPC_CheckChild0Integer, 1, ++/*182800*/ OPC_CheckChild0Type, MVT::i32, ++/*182802*/ OPC_CheckChild1Integer, 1, ++/*182804*/ OPC_CheckChild1Type, MVT::i32, ++/*182806*/ OPC_CheckChild2Integer, 1, ++/*182808*/ OPC_CheckChild2Type, MVT::i32, ++/*182810*/ OPC_CheckChild3Integer, 1, ++/*182812*/ OPC_CheckChild3Type, MVT::i32, ++/*182814*/ OPC_CheckChild4Integer, 1, ++/*182816*/ OPC_CheckChild4Type, MVT::i32, ++/*182818*/ OPC_MoveChild5, ++/*182819*/ OPC_CheckInteger, 1, ++/*182821*/ OPC_CheckType, MVT::i32, ++/*182823*/ OPC_MoveParent, ++/*182824*/ OPC_MoveChild6, ++/*182825*/ OPC_CheckInteger, 1, ++/*182827*/ OPC_CheckType, MVT::i32, ++/*182829*/ OPC_MoveParent, ++/*182830*/ OPC_MoveChild7, ++/*182831*/ OPC_CheckInteger, 1, ++/*182833*/ OPC_CheckType, MVT::i32, ++/*182835*/ OPC_MoveParent, ++/*182836*/ OPC_MoveChild, 8, ++/*182838*/ OPC_CheckInteger, 1, ++/*182840*/ OPC_CheckType, MVT::i32, ++/*182842*/ OPC_MoveParent, ++/*182843*/ OPC_MoveChild, 9, ++/*182845*/ OPC_CheckInteger, 1, ++/*182847*/ OPC_CheckType, MVT::i32, ++/*182849*/ OPC_MoveParent, ++/*182850*/ OPC_MoveChild, 10, ++/*182852*/ OPC_CheckInteger, 1, ++/*182854*/ OPC_CheckType, MVT::i32, ++/*182856*/ OPC_MoveParent, ++/*182857*/ OPC_MoveChild, 11, ++/*182859*/ OPC_CheckInteger, 1, ++/*182861*/ OPC_CheckType, MVT::i32, ++/*182863*/ OPC_MoveParent, ++/*182864*/ OPC_MoveChild, 12, ++/*182866*/ OPC_CheckInteger, 1, ++/*182868*/ OPC_CheckType, MVT::i32, ++/*182870*/ OPC_MoveParent, ++/*182871*/ OPC_MoveChild, 13, ++/*182873*/ OPC_CheckInteger, 1, ++/*182875*/ OPC_CheckType, MVT::i32, ++/*182877*/ OPC_MoveParent, ++/*182878*/ OPC_MoveChild, 14, ++/*182880*/ OPC_CheckInteger, 1, ++/*182882*/ OPC_CheckType, MVT::i32, ++/*182884*/ OPC_MoveParent, ++/*182885*/ OPC_MoveChild, 15, ++/*182887*/ OPC_CheckInteger, 1, ++/*182889*/ OPC_CheckType, MVT::i32, ++/*182891*/ OPC_MoveParent, ++/*182892*/ OPC_CheckType, MVT::v16i8, ++/*182894*/ OPC_MoveParent, ++/*182895*/ OPC_CheckType, MVT::v16i8, ++/*182897*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*182899*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$b), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*182907*/ /*Scope*/ 63|128,2/*319*/, /*->183228*/ ++/*182909*/ OPC_CheckChild0Same, 1, ++/*182911*/ OPC_MoveChild1, ++/*182912*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*182915*/ OPC_CheckChild0Integer, 1, ++/*182917*/ OPC_CheckChild0Type, MVT::i32, ++/*182919*/ OPC_CheckChild1Integer, 1, ++/*182921*/ OPC_CheckChild1Type, MVT::i32, ++/*182923*/ OPC_CheckChild2Integer, 1, ++/*182925*/ OPC_CheckChild2Type, MVT::i32, ++/*182927*/ OPC_CheckChild3Integer, 1, ++/*182929*/ OPC_CheckChild3Type, MVT::i32, ++/*182931*/ OPC_CheckChild4Integer, 1, ++/*182933*/ OPC_CheckChild4Type, MVT::i32, ++/*182935*/ OPC_MoveChild5, ++/*182936*/ OPC_CheckInteger, 1, ++/*182938*/ OPC_CheckType, MVT::i32, ++/*182940*/ OPC_MoveParent, ++/*182941*/ OPC_MoveChild6, ++/*182942*/ OPC_CheckInteger, 1, ++/*182944*/ OPC_CheckType, MVT::i32, ++/*182946*/ OPC_MoveParent, ++/*182947*/ OPC_MoveChild7, ++/*182948*/ OPC_CheckInteger, 1, ++/*182950*/ OPC_CheckType, MVT::i32, ++/*182952*/ OPC_MoveParent, ++/*182953*/ OPC_MoveChild, 8, ++/*182955*/ OPC_CheckInteger, 1, ++/*182957*/ OPC_CheckType, MVT::i32, ++/*182959*/ OPC_MoveParent, ++/*182960*/ OPC_MoveChild, 9, ++/*182962*/ OPC_CheckInteger, 1, ++/*182964*/ OPC_CheckType, MVT::i32, ++/*182966*/ OPC_MoveParent, ++/*182967*/ OPC_MoveChild, 10, ++/*182969*/ OPC_CheckInteger, 1, ++/*182971*/ OPC_CheckType, MVT::i32, ++/*182973*/ OPC_MoveParent, ++/*182974*/ OPC_MoveChild, 11, ++/*182976*/ OPC_CheckInteger, 1, ++/*182978*/ OPC_CheckType, MVT::i32, ++/*182980*/ OPC_MoveParent, ++/*182981*/ OPC_MoveChild, 12, ++/*182983*/ OPC_CheckInteger, 1, ++/*182985*/ OPC_CheckType, MVT::i32, ++/*182987*/ OPC_MoveParent, ++/*182988*/ OPC_MoveChild, 13, ++/*182990*/ OPC_CheckInteger, 1, ++/*182992*/ OPC_CheckType, MVT::i32, ++/*182994*/ OPC_MoveParent, ++/*182995*/ OPC_MoveChild, 14, ++/*182997*/ OPC_CheckInteger, 1, ++/*182999*/ OPC_CheckType, MVT::i32, ++/*183001*/ OPC_MoveParent, ++/*183002*/ OPC_MoveChild, 15, ++/*183004*/ OPC_CheckInteger, 1, ++/*183006*/ OPC_CheckType, MVT::i32, ++/*183008*/ OPC_MoveParent, ++/*183009*/ OPC_MoveParent, ++/*183010*/ OPC_MoveParent, ++/*183011*/ OPC_MoveParent, ++/*183012*/ OPC_MoveChild1, ++/*183013*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*183016*/ OPC_CheckChild0Integer, 7, ++/*183018*/ OPC_CheckChild0Type, MVT::i32, ++/*183020*/ OPC_CheckChild1Integer, 7, ++/*183022*/ OPC_CheckChild1Type, MVT::i32, ++/*183024*/ OPC_CheckChild2Integer, 7, ++/*183026*/ OPC_CheckChild2Type, MVT::i32, ++/*183028*/ OPC_CheckChild3Integer, 7, ++/*183030*/ OPC_CheckChild3Type, MVT::i32, ++/*183032*/ OPC_CheckChild4Integer, 7, ++/*183034*/ OPC_CheckChild4Type, MVT::i32, ++/*183036*/ OPC_MoveChild5, ++/*183037*/ OPC_CheckInteger, 7, ++/*183039*/ OPC_CheckType, MVT::i32, ++/*183041*/ OPC_MoveParent, ++/*183042*/ OPC_MoveChild6, ++/*183043*/ OPC_CheckInteger, 7, ++/*183045*/ OPC_CheckType, MVT::i32, ++/*183047*/ OPC_MoveParent, ++/*183048*/ OPC_MoveChild7, ++/*183049*/ OPC_CheckInteger, 7, ++/*183051*/ OPC_CheckType, MVT::i32, ++/*183053*/ OPC_MoveParent, ++/*183054*/ OPC_MoveChild, 8, ++/*183056*/ OPC_CheckInteger, 7, ++/*183058*/ OPC_CheckType, MVT::i32, ++/*183060*/ OPC_MoveParent, ++/*183061*/ OPC_MoveChild, 9, ++/*183063*/ OPC_CheckInteger, 7, ++/*183065*/ OPC_CheckType, MVT::i32, ++/*183067*/ OPC_MoveParent, ++/*183068*/ OPC_MoveChild, 10, ++/*183070*/ OPC_CheckInteger, 7, ++/*183072*/ OPC_CheckType, MVT::i32, ++/*183074*/ OPC_MoveParent, ++/*183075*/ OPC_MoveChild, 11, ++/*183077*/ OPC_CheckInteger, 7, ++/*183079*/ OPC_CheckType, MVT::i32, ++/*183081*/ OPC_MoveParent, ++/*183082*/ OPC_MoveChild, 12, ++/*183084*/ OPC_CheckInteger, 7, ++/*183086*/ OPC_CheckType, MVT::i32, ++/*183088*/ OPC_MoveParent, ++/*183089*/ OPC_MoveChild, 13, ++/*183091*/ OPC_CheckInteger, 7, ++/*183093*/ OPC_CheckType, MVT::i32, ++/*183095*/ OPC_MoveParent, ++/*183096*/ OPC_MoveChild, 14, ++/*183098*/ OPC_CheckInteger, 7, ++/*183100*/ OPC_CheckType, MVT::i32, ++/*183102*/ OPC_MoveParent, ++/*183103*/ OPC_MoveChild, 15, ++/*183105*/ OPC_CheckInteger, 7, ++/*183107*/ OPC_CheckType, MVT::i32, ++/*183109*/ OPC_MoveParent, ++/*183110*/ OPC_CheckType, MVT::v16i8, ++/*183112*/ OPC_MoveParent, ++/*183113*/ OPC_MoveParent, ++/*183114*/ OPC_MoveParent, ++/*183115*/ OPC_MoveChild1, ++/*183116*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*183119*/ OPC_CheckChild0Integer, 1, ++/*183121*/ OPC_CheckChild0Type, MVT::i32, ++/*183123*/ OPC_CheckChild1Integer, 1, ++/*183125*/ OPC_CheckChild1Type, MVT::i32, ++/*183127*/ OPC_CheckChild2Integer, 1, ++/*183129*/ OPC_CheckChild2Type, MVT::i32, ++/*183131*/ OPC_CheckChild3Integer, 1, ++/*183133*/ OPC_CheckChild3Type, MVT::i32, ++/*183135*/ OPC_CheckChild4Integer, 1, ++/*183137*/ OPC_CheckChild4Type, MVT::i32, ++/*183139*/ OPC_MoveChild5, ++/*183140*/ OPC_CheckInteger, 1, ++/*183142*/ OPC_CheckType, MVT::i32, ++/*183144*/ OPC_MoveParent, ++/*183145*/ OPC_MoveChild6, ++/*183146*/ OPC_CheckInteger, 1, ++/*183148*/ OPC_CheckType, MVT::i32, ++/*183150*/ OPC_MoveParent, ++/*183151*/ OPC_MoveChild7, ++/*183152*/ OPC_CheckInteger, 1, ++/*183154*/ OPC_CheckType, MVT::i32, ++/*183156*/ OPC_MoveParent, ++/*183157*/ OPC_MoveChild, 8, ++/*183159*/ OPC_CheckInteger, 1, ++/*183161*/ OPC_CheckType, MVT::i32, ++/*183163*/ OPC_MoveParent, ++/*183164*/ OPC_MoveChild, 9, ++/*183166*/ OPC_CheckInteger, 1, ++/*183168*/ OPC_CheckType, MVT::i32, ++/*183170*/ OPC_MoveParent, ++/*183171*/ OPC_MoveChild, 10, ++/*183173*/ OPC_CheckInteger, 1, ++/*183175*/ OPC_CheckType, MVT::i32, ++/*183177*/ OPC_MoveParent, ++/*183178*/ OPC_MoveChild, 11, ++/*183180*/ OPC_CheckInteger, 1, ++/*183182*/ OPC_CheckType, MVT::i32, ++/*183184*/ OPC_MoveParent, ++/*183185*/ OPC_MoveChild, 12, ++/*183187*/ OPC_CheckInteger, 1, ++/*183189*/ OPC_CheckType, MVT::i32, ++/*183191*/ OPC_MoveParent, ++/*183192*/ OPC_MoveChild, 13, ++/*183194*/ OPC_CheckInteger, 1, ++/*183196*/ OPC_CheckType, MVT::i32, ++/*183198*/ OPC_MoveParent, ++/*183199*/ OPC_MoveChild, 14, ++/*183201*/ OPC_CheckInteger, 1, ++/*183203*/ OPC_CheckType, MVT::i32, ++/*183205*/ OPC_MoveParent, ++/*183206*/ OPC_MoveChild, 15, ++/*183208*/ OPC_CheckInteger, 1, ++/*183210*/ OPC_CheckType, MVT::i32, ++/*183212*/ OPC_MoveParent, ++/*183213*/ OPC_CheckType, MVT::v16i8, ++/*183215*/ OPC_MoveParent, ++/*183216*/ OPC_CheckType, MVT::v16i8, ++/*183218*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*183220*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$b), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*183228*/ 0, /*End of Scope*/ ++/*183229*/ /*Scope*/ 41|128,4/*553*/, /*->183784*/ ++/*183231*/ OPC_MoveChild0, ++/*183232*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*183235*/ OPC_CheckChild0Integer, 1, ++/*183237*/ OPC_CheckChild0Type, MVT::i32, ++/*183239*/ OPC_CheckChild1Integer, 1, ++/*183241*/ OPC_CheckChild1Type, MVT::i32, ++/*183243*/ OPC_CheckChild2Integer, 1, ++/*183245*/ OPC_CheckChild2Type, MVT::i32, ++/*183247*/ OPC_CheckChild3Integer, 1, ++/*183249*/ OPC_CheckChild3Type, MVT::i32, ++/*183251*/ OPC_CheckChild4Integer, 1, ++/*183253*/ OPC_CheckChild4Type, MVT::i32, ++/*183255*/ OPC_MoveChild5, ++/*183256*/ OPC_CheckInteger, 1, ++/*183258*/ OPC_CheckType, MVT::i32, ++/*183260*/ OPC_MoveParent, ++/*183261*/ OPC_MoveChild6, ++/*183262*/ OPC_CheckInteger, 1, ++/*183264*/ OPC_CheckType, MVT::i32, ++/*183266*/ OPC_MoveParent, ++/*183267*/ OPC_MoveChild7, ++/*183268*/ OPC_CheckInteger, 1, ++/*183270*/ OPC_CheckType, MVT::i32, ++/*183272*/ OPC_MoveParent, ++/*183273*/ OPC_MoveChild, 8, ++/*183275*/ OPC_CheckInteger, 1, ++/*183277*/ OPC_CheckType, MVT::i32, ++/*183279*/ OPC_MoveParent, ++/*183280*/ OPC_MoveChild, 9, ++/*183282*/ OPC_CheckInteger, 1, ++/*183284*/ OPC_CheckType, MVT::i32, ++/*183286*/ OPC_MoveParent, ++/*183287*/ OPC_MoveChild, 10, ++/*183289*/ OPC_CheckInteger, 1, ++/*183291*/ OPC_CheckType, MVT::i32, ++/*183293*/ OPC_MoveParent, ++/*183294*/ OPC_MoveChild, 11, ++/*183296*/ OPC_CheckInteger, 1, ++/*183298*/ OPC_CheckType, MVT::i32, ++/*183300*/ OPC_MoveParent, ++/*183301*/ OPC_MoveChild, 12, ++/*183303*/ OPC_CheckInteger, 1, ++/*183305*/ OPC_CheckType, MVT::i32, ++/*183307*/ OPC_MoveParent, ++/*183308*/ OPC_MoveChild, 13, ++/*183310*/ OPC_CheckInteger, 1, ++/*183312*/ OPC_CheckType, MVT::i32, ++/*183314*/ OPC_MoveParent, ++/*183315*/ OPC_MoveChild, 14, ++/*183317*/ OPC_CheckInteger, 1, ++/*183319*/ OPC_CheckType, MVT::i32, ++/*183321*/ OPC_MoveParent, ++/*183322*/ OPC_MoveChild, 15, ++/*183324*/ OPC_CheckInteger, 1, ++/*183326*/ OPC_CheckType, MVT::i32, ++/*183328*/ OPC_MoveParent, ++/*183329*/ OPC_MoveParent, ++/*183330*/ OPC_MoveChild1, ++/*183331*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*183334*/ OPC_Scope, 94|128,1/*222*/, /*->183559*/ // 2 children in Scope ++/*183337*/ OPC_CheckChild0Same, 0, ++/*183339*/ OPC_CheckChild1Same, 1, ++/*183341*/ OPC_MoveParent, ++/*183342*/ OPC_MoveParent, ++/*183343*/ OPC_MoveChild1, ++/*183344*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*183347*/ OPC_CheckChild0Integer, 7, ++/*183349*/ OPC_CheckChild0Type, MVT::i32, ++/*183351*/ OPC_CheckChild1Integer, 7, ++/*183353*/ OPC_CheckChild1Type, MVT::i32, ++/*183355*/ OPC_CheckChild2Integer, 7, ++/*183357*/ OPC_CheckChild2Type, MVT::i32, ++/*183359*/ OPC_CheckChild3Integer, 7, ++/*183361*/ OPC_CheckChild3Type, MVT::i32, ++/*183363*/ OPC_CheckChild4Integer, 7, ++/*183365*/ OPC_CheckChild4Type, MVT::i32, ++/*183367*/ OPC_MoveChild5, ++/*183368*/ OPC_CheckInteger, 7, ++/*183370*/ OPC_CheckType, MVT::i32, ++/*183372*/ OPC_MoveParent, ++/*183373*/ OPC_MoveChild6, ++/*183374*/ OPC_CheckInteger, 7, ++/*183376*/ OPC_CheckType, MVT::i32, ++/*183378*/ OPC_MoveParent, ++/*183379*/ OPC_MoveChild7, ++/*183380*/ OPC_CheckInteger, 7, ++/*183382*/ OPC_CheckType, MVT::i32, ++/*183384*/ OPC_MoveParent, ++/*183385*/ OPC_MoveChild, 8, ++/*183387*/ OPC_CheckInteger, 7, ++/*183389*/ OPC_CheckType, MVT::i32, ++/*183391*/ OPC_MoveParent, ++/*183392*/ OPC_MoveChild, 9, ++/*183394*/ OPC_CheckInteger, 7, ++/*183396*/ OPC_CheckType, MVT::i32, ++/*183398*/ OPC_MoveParent, ++/*183399*/ OPC_MoveChild, 10, ++/*183401*/ OPC_CheckInteger, 7, ++/*183403*/ OPC_CheckType, MVT::i32, ++/*183405*/ OPC_MoveParent, ++/*183406*/ OPC_MoveChild, 11, ++/*183408*/ OPC_CheckInteger, 7, ++/*183410*/ OPC_CheckType, MVT::i32, ++/*183412*/ OPC_MoveParent, ++/*183413*/ OPC_MoveChild, 12, ++/*183415*/ OPC_CheckInteger, 7, ++/*183417*/ OPC_CheckType, MVT::i32, ++/*183419*/ OPC_MoveParent, ++/*183420*/ OPC_MoveChild, 13, ++/*183422*/ OPC_CheckInteger, 7, ++/*183424*/ OPC_CheckType, MVT::i32, ++/*183426*/ OPC_MoveParent, ++/*183427*/ OPC_MoveChild, 14, ++/*183429*/ OPC_CheckInteger, 7, ++/*183431*/ OPC_CheckType, MVT::i32, ++/*183433*/ OPC_MoveParent, ++/*183434*/ OPC_MoveChild, 15, ++/*183436*/ OPC_CheckInteger, 7, ++/*183438*/ OPC_CheckType, MVT::i32, ++/*183440*/ OPC_MoveParent, ++/*183441*/ OPC_CheckType, MVT::v16i8, ++/*183443*/ OPC_MoveParent, ++/*183444*/ OPC_MoveParent, ++/*183445*/ OPC_MoveParent, ++/*183446*/ OPC_MoveChild1, ++/*183447*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*183450*/ OPC_CheckChild0Integer, 1, ++/*183452*/ OPC_CheckChild0Type, MVT::i32, ++/*183454*/ OPC_CheckChild1Integer, 1, ++/*183456*/ OPC_CheckChild1Type, MVT::i32, ++/*183458*/ OPC_CheckChild2Integer, 1, ++/*183460*/ OPC_CheckChild2Type, MVT::i32, ++/*183462*/ OPC_CheckChild3Integer, 1, ++/*183464*/ OPC_CheckChild3Type, MVT::i32, ++/*183466*/ OPC_CheckChild4Integer, 1, ++/*183468*/ OPC_CheckChild4Type, MVT::i32, ++/*183470*/ OPC_MoveChild5, ++/*183471*/ OPC_CheckInteger, 1, ++/*183473*/ OPC_CheckType, MVT::i32, ++/*183475*/ OPC_MoveParent, ++/*183476*/ OPC_MoveChild6, ++/*183477*/ OPC_CheckInteger, 1, ++/*183479*/ OPC_CheckType, MVT::i32, ++/*183481*/ OPC_MoveParent, ++/*183482*/ OPC_MoveChild7, ++/*183483*/ OPC_CheckInteger, 1, ++/*183485*/ OPC_CheckType, MVT::i32, ++/*183487*/ OPC_MoveParent, ++/*183488*/ OPC_MoveChild, 8, ++/*183490*/ OPC_CheckInteger, 1, ++/*183492*/ OPC_CheckType, MVT::i32, ++/*183494*/ OPC_MoveParent, ++/*183495*/ OPC_MoveChild, 9, ++/*183497*/ OPC_CheckInteger, 1, ++/*183499*/ OPC_CheckType, MVT::i32, ++/*183501*/ OPC_MoveParent, ++/*183502*/ OPC_MoveChild, 10, ++/*183504*/ OPC_CheckInteger, 1, ++/*183506*/ OPC_CheckType, MVT::i32, ++/*183508*/ OPC_MoveParent, ++/*183509*/ OPC_MoveChild, 11, ++/*183511*/ OPC_CheckInteger, 1, ++/*183513*/ OPC_CheckType, MVT::i32, ++/*183515*/ OPC_MoveParent, ++/*183516*/ OPC_MoveChild, 12, ++/*183518*/ OPC_CheckInteger, 1, ++/*183520*/ OPC_CheckType, MVT::i32, ++/*183522*/ OPC_MoveParent, ++/*183523*/ OPC_MoveChild, 13, ++/*183525*/ OPC_CheckInteger, 1, ++/*183527*/ OPC_CheckType, MVT::i32, ++/*183529*/ OPC_MoveParent, ++/*183530*/ OPC_MoveChild, 14, ++/*183532*/ OPC_CheckInteger, 1, ++/*183534*/ OPC_CheckType, MVT::i32, ++/*183536*/ OPC_MoveParent, ++/*183537*/ OPC_MoveChild, 15, ++/*183539*/ OPC_CheckInteger, 1, ++/*183541*/ OPC_CheckType, MVT::i32, ++/*183543*/ OPC_MoveParent, ++/*183544*/ OPC_CheckType, MVT::v16i8, ++/*183546*/ OPC_MoveParent, ++/*183547*/ OPC_CheckType, MVT::v16i8, ++/*183549*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*183551*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$b), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*183559*/ /*Scope*/ 94|128,1/*222*/, /*->183783*/ ++/*183561*/ OPC_CheckChild0Same, 1, ++/*183563*/ OPC_CheckChild1Same, 0, ++/*183565*/ OPC_MoveParent, ++/*183566*/ OPC_MoveParent, ++/*183567*/ OPC_MoveChild1, ++/*183568*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*183571*/ OPC_CheckChild0Integer, 7, ++/*183573*/ OPC_CheckChild0Type, MVT::i32, ++/*183575*/ OPC_CheckChild1Integer, 7, ++/*183577*/ OPC_CheckChild1Type, MVT::i32, ++/*183579*/ OPC_CheckChild2Integer, 7, ++/*183581*/ OPC_CheckChild2Type, MVT::i32, ++/*183583*/ OPC_CheckChild3Integer, 7, ++/*183585*/ OPC_CheckChild3Type, MVT::i32, ++/*183587*/ OPC_CheckChild4Integer, 7, ++/*183589*/ OPC_CheckChild4Type, MVT::i32, ++/*183591*/ OPC_MoveChild5, ++/*183592*/ OPC_CheckInteger, 7, ++/*183594*/ OPC_CheckType, MVT::i32, ++/*183596*/ OPC_MoveParent, ++/*183597*/ OPC_MoveChild6, ++/*183598*/ OPC_CheckInteger, 7, ++/*183600*/ OPC_CheckType, MVT::i32, ++/*183602*/ OPC_MoveParent, ++/*183603*/ OPC_MoveChild7, ++/*183604*/ OPC_CheckInteger, 7, ++/*183606*/ OPC_CheckType, MVT::i32, ++/*183608*/ OPC_MoveParent, ++/*183609*/ OPC_MoveChild, 8, ++/*183611*/ OPC_CheckInteger, 7, ++/*183613*/ OPC_CheckType, MVT::i32, ++/*183615*/ OPC_MoveParent, ++/*183616*/ OPC_MoveChild, 9, ++/*183618*/ OPC_CheckInteger, 7, ++/*183620*/ OPC_CheckType, MVT::i32, ++/*183622*/ OPC_MoveParent, ++/*183623*/ OPC_MoveChild, 10, ++/*183625*/ OPC_CheckInteger, 7, ++/*183627*/ OPC_CheckType, MVT::i32, ++/*183629*/ OPC_MoveParent, ++/*183630*/ OPC_MoveChild, 11, ++/*183632*/ OPC_CheckInteger, 7, ++/*183634*/ OPC_CheckType, MVT::i32, ++/*183636*/ OPC_MoveParent, ++/*183637*/ OPC_MoveChild, 12, ++/*183639*/ OPC_CheckInteger, 7, ++/*183641*/ OPC_CheckType, MVT::i32, ++/*183643*/ OPC_MoveParent, ++/*183644*/ OPC_MoveChild, 13, ++/*183646*/ OPC_CheckInteger, 7, ++/*183648*/ OPC_CheckType, MVT::i32, ++/*183650*/ OPC_MoveParent, ++/*183651*/ OPC_MoveChild, 14, ++/*183653*/ OPC_CheckInteger, 7, ++/*183655*/ OPC_CheckType, MVT::i32, ++/*183657*/ OPC_MoveParent, ++/*183658*/ OPC_MoveChild, 15, ++/*183660*/ OPC_CheckInteger, 7, ++/*183662*/ OPC_CheckType, MVT::i32, ++/*183664*/ OPC_MoveParent, ++/*183665*/ OPC_CheckType, MVT::v16i8, ++/*183667*/ OPC_MoveParent, ++/*183668*/ OPC_MoveParent, ++/*183669*/ OPC_MoveParent, ++/*183670*/ OPC_MoveChild1, ++/*183671*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*183674*/ OPC_CheckChild0Integer, 1, ++/*183676*/ OPC_CheckChild0Type, MVT::i32, ++/*183678*/ OPC_CheckChild1Integer, 1, ++/*183680*/ OPC_CheckChild1Type, MVT::i32, ++/*183682*/ OPC_CheckChild2Integer, 1, ++/*183684*/ OPC_CheckChild2Type, MVT::i32, ++/*183686*/ OPC_CheckChild3Integer, 1, ++/*183688*/ OPC_CheckChild3Type, MVT::i32, ++/*183690*/ OPC_CheckChild4Integer, 1, ++/*183692*/ OPC_CheckChild4Type, MVT::i32, ++/*183694*/ OPC_MoveChild5, ++/*183695*/ OPC_CheckInteger, 1, ++/*183697*/ OPC_CheckType, MVT::i32, ++/*183699*/ OPC_MoveParent, ++/*183700*/ OPC_MoveChild6, ++/*183701*/ OPC_CheckInteger, 1, ++/*183703*/ OPC_CheckType, MVT::i32, ++/*183705*/ OPC_MoveParent, ++/*183706*/ OPC_MoveChild7, ++/*183707*/ OPC_CheckInteger, 1, ++/*183709*/ OPC_CheckType, MVT::i32, ++/*183711*/ OPC_MoveParent, ++/*183712*/ OPC_MoveChild, 8, ++/*183714*/ OPC_CheckInteger, 1, ++/*183716*/ OPC_CheckType, MVT::i32, ++/*183718*/ OPC_MoveParent, ++/*183719*/ OPC_MoveChild, 9, ++/*183721*/ OPC_CheckInteger, 1, ++/*183723*/ OPC_CheckType, MVT::i32, ++/*183725*/ OPC_MoveParent, ++/*183726*/ OPC_MoveChild, 10, ++/*183728*/ OPC_CheckInteger, 1, ++/*183730*/ OPC_CheckType, MVT::i32, ++/*183732*/ OPC_MoveParent, ++/*183733*/ OPC_MoveChild, 11, ++/*183735*/ OPC_CheckInteger, 1, ++/*183737*/ OPC_CheckType, MVT::i32, ++/*183739*/ OPC_MoveParent, ++/*183740*/ OPC_MoveChild, 12, ++/*183742*/ OPC_CheckInteger, 1, ++/*183744*/ OPC_CheckType, MVT::i32, ++/*183746*/ OPC_MoveParent, ++/*183747*/ OPC_MoveChild, 13, ++/*183749*/ OPC_CheckInteger, 1, ++/*183751*/ OPC_CheckType, MVT::i32, ++/*183753*/ OPC_MoveParent, ++/*183754*/ OPC_MoveChild, 14, ++/*183756*/ OPC_CheckInteger, 1, ++/*183758*/ OPC_CheckType, MVT::i32, ++/*183760*/ OPC_MoveParent, ++/*183761*/ OPC_MoveChild, 15, ++/*183763*/ OPC_CheckInteger, 1, ++/*183765*/ OPC_CheckType, MVT::i32, ++/*183767*/ OPC_MoveParent, ++/*183768*/ OPC_CheckType, MVT::v16i8, ++/*183770*/ OPC_MoveParent, ++/*183771*/ OPC_CheckType, MVT::v16i8, ++/*183773*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*183775*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$b), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*183783*/ 0, /*End of Scope*/ ++/*183784*/ 0, /*End of Scope*/ ++/*183785*/ /*Scope*/ 78|128,30/*3918*/, /*->187705*/ ++/*183787*/ OPC_MoveChild0, ++/*183788*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*183791*/ OPC_CheckChild0Integer, 1, ++/*183793*/ OPC_CheckChild0Type, MVT::i32, ++/*183795*/ OPC_CheckChild1Integer, 1, ++/*183797*/ OPC_CheckChild1Type, MVT::i32, ++/*183799*/ OPC_CheckChild2Integer, 1, ++/*183801*/ OPC_CheckChild2Type, MVT::i32, ++/*183803*/ OPC_CheckChild3Integer, 1, ++/*183805*/ OPC_CheckChild3Type, MVT::i32, ++/*183807*/ OPC_CheckChild4Integer, 1, ++/*183809*/ OPC_CheckChild4Type, MVT::i32, ++/*183811*/ OPC_MoveChild5, ++/*183812*/ OPC_CheckInteger, 1, ++/*183814*/ OPC_CheckType, MVT::i32, ++/*183816*/ OPC_MoveParent, ++/*183817*/ OPC_MoveChild6, ++/*183818*/ OPC_CheckInteger, 1, ++/*183820*/ OPC_CheckType, MVT::i32, ++/*183822*/ OPC_MoveParent, ++/*183823*/ OPC_MoveChild7, ++/*183824*/ OPC_CheckInteger, 1, ++/*183826*/ OPC_CheckType, MVT::i32, ++/*183828*/ OPC_MoveParent, ++/*183829*/ OPC_MoveChild, 8, ++/*183831*/ OPC_CheckInteger, 1, ++/*183833*/ OPC_CheckType, MVT::i32, ++/*183835*/ OPC_MoveParent, ++/*183836*/ OPC_MoveChild, 9, ++/*183838*/ OPC_CheckInteger, 1, ++/*183840*/ OPC_CheckType, MVT::i32, ++/*183842*/ OPC_MoveParent, ++/*183843*/ OPC_MoveChild, 10, ++/*183845*/ OPC_CheckInteger, 1, ++/*183847*/ OPC_CheckType, MVT::i32, ++/*183849*/ OPC_MoveParent, ++/*183850*/ OPC_MoveChild, 11, ++/*183852*/ OPC_CheckInteger, 1, ++/*183854*/ OPC_CheckType, MVT::i32, ++/*183856*/ OPC_MoveParent, ++/*183857*/ OPC_MoveChild, 12, ++/*183859*/ OPC_CheckInteger, 1, ++/*183861*/ OPC_CheckType, MVT::i32, ++/*183863*/ OPC_MoveParent, ++/*183864*/ OPC_MoveChild, 13, ++/*183866*/ OPC_CheckInteger, 1, ++/*183868*/ OPC_CheckType, MVT::i32, ++/*183870*/ OPC_MoveParent, ++/*183871*/ OPC_MoveChild, 14, ++/*183873*/ OPC_CheckInteger, 1, ++/*183875*/ OPC_CheckType, MVT::i32, ++/*183877*/ OPC_MoveParent, ++/*183878*/ OPC_MoveChild, 15, ++/*183880*/ OPC_CheckInteger, 1, ++/*183882*/ OPC_CheckType, MVT::i32, ++/*183884*/ OPC_MoveParent, ++/*183885*/ OPC_MoveParent, ++/*183886*/ OPC_RecordChild1, // #0 = $b ++/*183887*/ OPC_MoveParent, ++/*183888*/ OPC_RecordChild1, // #1 = $a ++/*183889*/ OPC_MoveParent, ++/*183890*/ OPC_MoveChild1, ++/*183891*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*183894*/ OPC_MoveChild0, ++/*183895*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*183898*/ OPC_Scope, 24|128,15/*1944*/, /*->185845*/ // 4 children in Scope ++/*183901*/ OPC_MoveChild0, ++/*183902*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*183905*/ OPC_Scope, 65|128,2/*321*/, /*->184229*/ // 6 children in Scope ++/*183908*/ OPC_MoveChild0, ++/*183909*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*183912*/ OPC_CheckChild0Integer, 1, ++/*183914*/ OPC_CheckChild0Type, MVT::i32, ++/*183916*/ OPC_CheckChild1Integer, 1, ++/*183918*/ OPC_CheckChild1Type, MVT::i32, ++/*183920*/ OPC_CheckChild2Integer, 1, ++/*183922*/ OPC_CheckChild2Type, MVT::i32, ++/*183924*/ OPC_CheckChild3Integer, 1, ++/*183926*/ OPC_CheckChild3Type, MVT::i32, ++/*183928*/ OPC_CheckChild4Integer, 1, ++/*183930*/ OPC_CheckChild4Type, MVT::i32, ++/*183932*/ OPC_MoveChild5, ++/*183933*/ OPC_CheckInteger, 1, ++/*183935*/ OPC_CheckType, MVT::i32, ++/*183937*/ OPC_MoveParent, ++/*183938*/ OPC_MoveChild6, ++/*183939*/ OPC_CheckInteger, 1, ++/*183941*/ OPC_CheckType, MVT::i32, ++/*183943*/ OPC_MoveParent, ++/*183944*/ OPC_MoveChild7, ++/*183945*/ OPC_CheckInteger, 1, ++/*183947*/ OPC_CheckType, MVT::i32, ++/*183949*/ OPC_MoveParent, ++/*183950*/ OPC_MoveChild, 8, ++/*183952*/ OPC_CheckInteger, 1, ++/*183954*/ OPC_CheckType, MVT::i32, ++/*183956*/ OPC_MoveParent, ++/*183957*/ OPC_MoveChild, 9, ++/*183959*/ OPC_CheckInteger, 1, ++/*183961*/ OPC_CheckType, MVT::i32, ++/*183963*/ OPC_MoveParent, ++/*183964*/ OPC_MoveChild, 10, ++/*183966*/ OPC_CheckInteger, 1, ++/*183968*/ OPC_CheckType, MVT::i32, ++/*183970*/ OPC_MoveParent, ++/*183971*/ OPC_MoveChild, 11, ++/*183973*/ OPC_CheckInteger, 1, ++/*183975*/ OPC_CheckType, MVT::i32, ++/*183977*/ OPC_MoveParent, ++/*183978*/ OPC_MoveChild, 12, ++/*183980*/ OPC_CheckInteger, 1, ++/*183982*/ OPC_CheckType, MVT::i32, ++/*183984*/ OPC_MoveParent, ++/*183985*/ OPC_MoveChild, 13, ++/*183987*/ OPC_CheckInteger, 1, ++/*183989*/ OPC_CheckType, MVT::i32, ++/*183991*/ OPC_MoveParent, ++/*183992*/ OPC_MoveChild, 14, ++/*183994*/ OPC_CheckInteger, 1, ++/*183996*/ OPC_CheckType, MVT::i32, ++/*183998*/ OPC_MoveParent, ++/*183999*/ OPC_MoveChild, 15, ++/*184001*/ OPC_CheckInteger, 1, ++/*184003*/ OPC_CheckType, MVT::i32, ++/*184005*/ OPC_MoveParent, ++/*184006*/ OPC_MoveParent, ++/*184007*/ OPC_CheckChild1Same, 1, ++/*184009*/ OPC_MoveParent, ++/*184010*/ OPC_CheckChild1Same, 0, ++/*184012*/ OPC_MoveParent, ++/*184013*/ OPC_MoveChild1, ++/*184014*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*184017*/ OPC_CheckChild0Integer, 7, ++/*184019*/ OPC_CheckChild0Type, MVT::i32, ++/*184021*/ OPC_CheckChild1Integer, 7, ++/*184023*/ OPC_CheckChild1Type, MVT::i32, ++/*184025*/ OPC_CheckChild2Integer, 7, ++/*184027*/ OPC_CheckChild2Type, MVT::i32, ++/*184029*/ OPC_CheckChild3Integer, 7, ++/*184031*/ OPC_CheckChild3Type, MVT::i32, ++/*184033*/ OPC_CheckChild4Integer, 7, ++/*184035*/ OPC_CheckChild4Type, MVT::i32, ++/*184037*/ OPC_MoveChild5, ++/*184038*/ OPC_CheckInteger, 7, ++/*184040*/ OPC_CheckType, MVT::i32, ++/*184042*/ OPC_MoveParent, ++/*184043*/ OPC_MoveChild6, ++/*184044*/ OPC_CheckInteger, 7, ++/*184046*/ OPC_CheckType, MVT::i32, ++/*184048*/ OPC_MoveParent, ++/*184049*/ OPC_MoveChild7, ++/*184050*/ OPC_CheckInteger, 7, ++/*184052*/ OPC_CheckType, MVT::i32, ++/*184054*/ OPC_MoveParent, ++/*184055*/ OPC_MoveChild, 8, ++/*184057*/ OPC_CheckInteger, 7, ++/*184059*/ OPC_CheckType, MVT::i32, ++/*184061*/ OPC_MoveParent, ++/*184062*/ OPC_MoveChild, 9, ++/*184064*/ OPC_CheckInteger, 7, ++/*184066*/ OPC_CheckType, MVT::i32, ++/*184068*/ OPC_MoveParent, ++/*184069*/ OPC_MoveChild, 10, ++/*184071*/ OPC_CheckInteger, 7, ++/*184073*/ OPC_CheckType, MVT::i32, ++/*184075*/ OPC_MoveParent, ++/*184076*/ OPC_MoveChild, 11, ++/*184078*/ OPC_CheckInteger, 7, ++/*184080*/ OPC_CheckType, MVT::i32, ++/*184082*/ OPC_MoveParent, ++/*184083*/ OPC_MoveChild, 12, ++/*184085*/ OPC_CheckInteger, 7, ++/*184087*/ OPC_CheckType, MVT::i32, ++/*184089*/ OPC_MoveParent, ++/*184090*/ OPC_MoveChild, 13, ++/*184092*/ OPC_CheckInteger, 7, ++/*184094*/ OPC_CheckType, MVT::i32, ++/*184096*/ OPC_MoveParent, ++/*184097*/ OPC_MoveChild, 14, ++/*184099*/ OPC_CheckInteger, 7, ++/*184101*/ OPC_CheckType, MVT::i32, ++/*184103*/ OPC_MoveParent, ++/*184104*/ OPC_MoveChild, 15, ++/*184106*/ OPC_CheckInteger, 7, ++/*184108*/ OPC_CheckType, MVT::i32, ++/*184110*/ OPC_MoveParent, ++/*184111*/ OPC_CheckType, MVT::v16i8, ++/*184113*/ OPC_MoveParent, ++/*184114*/ OPC_MoveParent, ++/*184115*/ OPC_MoveParent, ++/*184116*/ OPC_MoveChild1, ++/*184117*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*184120*/ OPC_CheckChild0Integer, 1, ++/*184122*/ OPC_CheckChild0Type, MVT::i32, ++/*184124*/ OPC_CheckChild1Integer, 1, ++/*184126*/ OPC_CheckChild1Type, MVT::i32, ++/*184128*/ OPC_CheckChild2Integer, 1, ++/*184130*/ OPC_CheckChild2Type, MVT::i32, ++/*184132*/ OPC_CheckChild3Integer, 1, ++/*184134*/ OPC_CheckChild3Type, MVT::i32, ++/*184136*/ OPC_CheckChild4Integer, 1, ++/*184138*/ OPC_CheckChild4Type, MVT::i32, ++/*184140*/ OPC_MoveChild5, ++/*184141*/ OPC_CheckInteger, 1, ++/*184143*/ OPC_CheckType, MVT::i32, ++/*184145*/ OPC_MoveParent, ++/*184146*/ OPC_MoveChild6, ++/*184147*/ OPC_CheckInteger, 1, ++/*184149*/ OPC_CheckType, MVT::i32, ++/*184151*/ OPC_MoveParent, ++/*184152*/ OPC_MoveChild7, ++/*184153*/ OPC_CheckInteger, 1, ++/*184155*/ OPC_CheckType, MVT::i32, ++/*184157*/ OPC_MoveParent, ++/*184158*/ OPC_MoveChild, 8, ++/*184160*/ OPC_CheckInteger, 1, ++/*184162*/ OPC_CheckType, MVT::i32, ++/*184164*/ OPC_MoveParent, ++/*184165*/ OPC_MoveChild, 9, ++/*184167*/ OPC_CheckInteger, 1, ++/*184169*/ OPC_CheckType, MVT::i32, ++/*184171*/ OPC_MoveParent, ++/*184172*/ OPC_MoveChild, 10, ++/*184174*/ OPC_CheckInteger, 1, ++/*184176*/ OPC_CheckType, MVT::i32, ++/*184178*/ OPC_MoveParent, ++/*184179*/ OPC_MoveChild, 11, ++/*184181*/ OPC_CheckInteger, 1, ++/*184183*/ OPC_CheckType, MVT::i32, ++/*184185*/ OPC_MoveParent, ++/*184186*/ OPC_MoveChild, 12, ++/*184188*/ OPC_CheckInteger, 1, ++/*184190*/ OPC_CheckType, MVT::i32, ++/*184192*/ OPC_MoveParent, ++/*184193*/ OPC_MoveChild, 13, ++/*184195*/ OPC_CheckInteger, 1, ++/*184197*/ OPC_CheckType, MVT::i32, ++/*184199*/ OPC_MoveParent, ++/*184200*/ OPC_MoveChild, 14, ++/*184202*/ OPC_CheckInteger, 1, ++/*184204*/ OPC_CheckType, MVT::i32, ++/*184206*/ OPC_MoveParent, ++/*184207*/ OPC_MoveChild, 15, ++/*184209*/ OPC_CheckInteger, 1, ++/*184211*/ OPC_CheckType, MVT::i32, ++/*184213*/ OPC_MoveParent, ++/*184214*/ OPC_CheckType, MVT::v16i8, ++/*184216*/ OPC_MoveParent, ++/*184217*/ OPC_CheckType, MVT::v16i8, ++/*184219*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*184221*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b), LSX128B:{ *:[v16i8] }:$a), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a), LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*184229*/ /*Scope*/ 65|128,2/*321*/, /*->184552*/ ++/*184231*/ OPC_CheckChild0Same, 1, ++/*184233*/ OPC_MoveChild1, ++/*184234*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*184237*/ OPC_CheckChild0Integer, 1, ++/*184239*/ OPC_CheckChild0Type, MVT::i32, ++/*184241*/ OPC_CheckChild1Integer, 1, ++/*184243*/ OPC_CheckChild1Type, MVT::i32, ++/*184245*/ OPC_CheckChild2Integer, 1, ++/*184247*/ OPC_CheckChild2Type, MVT::i32, ++/*184249*/ OPC_CheckChild3Integer, 1, ++/*184251*/ OPC_CheckChild3Type, MVT::i32, ++/*184253*/ OPC_CheckChild4Integer, 1, ++/*184255*/ OPC_CheckChild4Type, MVT::i32, ++/*184257*/ OPC_MoveChild5, ++/*184258*/ OPC_CheckInteger, 1, ++/*184260*/ OPC_CheckType, MVT::i32, ++/*184262*/ OPC_MoveParent, ++/*184263*/ OPC_MoveChild6, ++/*184264*/ OPC_CheckInteger, 1, ++/*184266*/ OPC_CheckType, MVT::i32, ++/*184268*/ OPC_MoveParent, ++/*184269*/ OPC_MoveChild7, ++/*184270*/ OPC_CheckInteger, 1, ++/*184272*/ OPC_CheckType, MVT::i32, ++/*184274*/ OPC_MoveParent, ++/*184275*/ OPC_MoveChild, 8, ++/*184277*/ OPC_CheckInteger, 1, ++/*184279*/ OPC_CheckType, MVT::i32, ++/*184281*/ OPC_MoveParent, ++/*184282*/ OPC_MoveChild, 9, ++/*184284*/ OPC_CheckInteger, 1, ++/*184286*/ OPC_CheckType, MVT::i32, ++/*184288*/ OPC_MoveParent, ++/*184289*/ OPC_MoveChild, 10, ++/*184291*/ OPC_CheckInteger, 1, ++/*184293*/ OPC_CheckType, MVT::i32, ++/*184295*/ OPC_MoveParent, ++/*184296*/ OPC_MoveChild, 11, ++/*184298*/ OPC_CheckInteger, 1, ++/*184300*/ OPC_CheckType, MVT::i32, ++/*184302*/ OPC_MoveParent, ++/*184303*/ OPC_MoveChild, 12, ++/*184305*/ OPC_CheckInteger, 1, ++/*184307*/ OPC_CheckType, MVT::i32, ++/*184309*/ OPC_MoveParent, ++/*184310*/ OPC_MoveChild, 13, ++/*184312*/ OPC_CheckInteger, 1, ++/*184314*/ OPC_CheckType, MVT::i32, ++/*184316*/ OPC_MoveParent, ++/*184317*/ OPC_MoveChild, 14, ++/*184319*/ OPC_CheckInteger, 1, ++/*184321*/ OPC_CheckType, MVT::i32, ++/*184323*/ OPC_MoveParent, ++/*184324*/ OPC_MoveChild, 15, ++/*184326*/ OPC_CheckInteger, 1, ++/*184328*/ OPC_CheckType, MVT::i32, ++/*184330*/ OPC_MoveParent, ++/*184331*/ OPC_MoveParent, ++/*184332*/ OPC_MoveParent, ++/*184333*/ OPC_CheckChild1Same, 0, ++/*184335*/ OPC_MoveParent, ++/*184336*/ OPC_MoveChild1, ++/*184337*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*184340*/ OPC_CheckChild0Integer, 7, ++/*184342*/ OPC_CheckChild0Type, MVT::i32, ++/*184344*/ OPC_CheckChild1Integer, 7, ++/*184346*/ OPC_CheckChild1Type, MVT::i32, ++/*184348*/ OPC_CheckChild2Integer, 7, ++/*184350*/ OPC_CheckChild2Type, MVT::i32, ++/*184352*/ OPC_CheckChild3Integer, 7, ++/*184354*/ OPC_CheckChild3Type, MVT::i32, ++/*184356*/ OPC_CheckChild4Integer, 7, ++/*184358*/ OPC_CheckChild4Type, MVT::i32, ++/*184360*/ OPC_MoveChild5, ++/*184361*/ OPC_CheckInteger, 7, ++/*184363*/ OPC_CheckType, MVT::i32, ++/*184365*/ OPC_MoveParent, ++/*184366*/ OPC_MoveChild6, ++/*184367*/ OPC_CheckInteger, 7, ++/*184369*/ OPC_CheckType, MVT::i32, ++/*184371*/ OPC_MoveParent, ++/*184372*/ OPC_MoveChild7, ++/*184373*/ OPC_CheckInteger, 7, ++/*184375*/ OPC_CheckType, MVT::i32, ++/*184377*/ OPC_MoveParent, ++/*184378*/ OPC_MoveChild, 8, ++/*184380*/ OPC_CheckInteger, 7, ++/*184382*/ OPC_CheckType, MVT::i32, ++/*184384*/ OPC_MoveParent, ++/*184385*/ OPC_MoveChild, 9, ++/*184387*/ OPC_CheckInteger, 7, ++/*184389*/ OPC_CheckType, MVT::i32, ++/*184391*/ OPC_MoveParent, ++/*184392*/ OPC_MoveChild, 10, ++/*184394*/ OPC_CheckInteger, 7, ++/*184396*/ OPC_CheckType, MVT::i32, ++/*184398*/ OPC_MoveParent, ++/*184399*/ OPC_MoveChild, 11, ++/*184401*/ OPC_CheckInteger, 7, ++/*184403*/ OPC_CheckType, MVT::i32, ++/*184405*/ OPC_MoveParent, ++/*184406*/ OPC_MoveChild, 12, ++/*184408*/ OPC_CheckInteger, 7, ++/*184410*/ OPC_CheckType, MVT::i32, ++/*184412*/ OPC_MoveParent, ++/*184413*/ OPC_MoveChild, 13, ++/*184415*/ OPC_CheckInteger, 7, ++/*184417*/ OPC_CheckType, MVT::i32, ++/*184419*/ OPC_MoveParent, ++/*184420*/ OPC_MoveChild, 14, ++/*184422*/ OPC_CheckInteger, 7, ++/*184424*/ OPC_CheckType, MVT::i32, ++/*184426*/ OPC_MoveParent, ++/*184427*/ OPC_MoveChild, 15, ++/*184429*/ OPC_CheckInteger, 7, ++/*184431*/ OPC_CheckType, MVT::i32, ++/*184433*/ OPC_MoveParent, ++/*184434*/ OPC_CheckType, MVT::v16i8, ++/*184436*/ OPC_MoveParent, ++/*184437*/ OPC_MoveParent, ++/*184438*/ OPC_MoveParent, ++/*184439*/ OPC_MoveChild1, ++/*184440*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*184443*/ OPC_CheckChild0Integer, 1, ++/*184445*/ OPC_CheckChild0Type, MVT::i32, ++/*184447*/ OPC_CheckChild1Integer, 1, ++/*184449*/ OPC_CheckChild1Type, MVT::i32, ++/*184451*/ OPC_CheckChild2Integer, 1, ++/*184453*/ OPC_CheckChild2Type, MVT::i32, ++/*184455*/ OPC_CheckChild3Integer, 1, ++/*184457*/ OPC_CheckChild3Type, MVT::i32, ++/*184459*/ OPC_CheckChild4Integer, 1, ++/*184461*/ OPC_CheckChild4Type, MVT::i32, ++/*184463*/ OPC_MoveChild5, ++/*184464*/ OPC_CheckInteger, 1, ++/*184466*/ OPC_CheckType, MVT::i32, ++/*184468*/ OPC_MoveParent, ++/*184469*/ OPC_MoveChild6, ++/*184470*/ OPC_CheckInteger, 1, ++/*184472*/ OPC_CheckType, MVT::i32, ++/*184474*/ OPC_MoveParent, ++/*184475*/ OPC_MoveChild7, ++/*184476*/ OPC_CheckInteger, 1, ++/*184478*/ OPC_CheckType, MVT::i32, ++/*184480*/ OPC_MoveParent, ++/*184481*/ OPC_MoveChild, 8, ++/*184483*/ OPC_CheckInteger, 1, ++/*184485*/ OPC_CheckType, MVT::i32, ++/*184487*/ OPC_MoveParent, ++/*184488*/ OPC_MoveChild, 9, ++/*184490*/ OPC_CheckInteger, 1, ++/*184492*/ OPC_CheckType, MVT::i32, ++/*184494*/ OPC_MoveParent, ++/*184495*/ OPC_MoveChild, 10, ++/*184497*/ OPC_CheckInteger, 1, ++/*184499*/ OPC_CheckType, MVT::i32, ++/*184501*/ OPC_MoveParent, ++/*184502*/ OPC_MoveChild, 11, ++/*184504*/ OPC_CheckInteger, 1, ++/*184506*/ OPC_CheckType, MVT::i32, ++/*184508*/ OPC_MoveParent, ++/*184509*/ OPC_MoveChild, 12, ++/*184511*/ OPC_CheckInteger, 1, ++/*184513*/ OPC_CheckType, MVT::i32, ++/*184515*/ OPC_MoveParent, ++/*184516*/ OPC_MoveChild, 13, ++/*184518*/ OPC_CheckInteger, 1, ++/*184520*/ OPC_CheckType, MVT::i32, ++/*184522*/ OPC_MoveParent, ++/*184523*/ OPC_MoveChild, 14, ++/*184525*/ OPC_CheckInteger, 1, ++/*184527*/ OPC_CheckType, MVT::i32, ++/*184529*/ OPC_MoveParent, ++/*184530*/ OPC_MoveChild, 15, ++/*184532*/ OPC_CheckInteger, 1, ++/*184534*/ OPC_CheckType, MVT::i32, ++/*184536*/ OPC_MoveParent, ++/*184537*/ OPC_CheckType, MVT::v16i8, ++/*184539*/ OPC_MoveParent, ++/*184540*/ OPC_CheckType, MVT::v16i8, ++/*184542*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*184544*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b), LSX128B:{ *:[v16i8] }:$a), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*184552*/ /*Scope*/ 65|128,2/*321*/, /*->184875*/ ++/*184554*/ OPC_MoveChild0, ++/*184555*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*184558*/ OPC_CheckChild0Integer, 1, ++/*184560*/ OPC_CheckChild0Type, MVT::i32, ++/*184562*/ OPC_CheckChild1Integer, 1, ++/*184564*/ OPC_CheckChild1Type, MVT::i32, ++/*184566*/ OPC_CheckChild2Integer, 1, ++/*184568*/ OPC_CheckChild2Type, MVT::i32, ++/*184570*/ OPC_CheckChild3Integer, 1, ++/*184572*/ OPC_CheckChild3Type, MVT::i32, ++/*184574*/ OPC_CheckChild4Integer, 1, ++/*184576*/ OPC_CheckChild4Type, MVT::i32, ++/*184578*/ OPC_MoveChild5, ++/*184579*/ OPC_CheckInteger, 1, ++/*184581*/ OPC_CheckType, MVT::i32, ++/*184583*/ OPC_MoveParent, ++/*184584*/ OPC_MoveChild6, ++/*184585*/ OPC_CheckInteger, 1, ++/*184587*/ OPC_CheckType, MVT::i32, ++/*184589*/ OPC_MoveParent, ++/*184590*/ OPC_MoveChild7, ++/*184591*/ OPC_CheckInteger, 1, ++/*184593*/ OPC_CheckType, MVT::i32, ++/*184595*/ OPC_MoveParent, ++/*184596*/ OPC_MoveChild, 8, ++/*184598*/ OPC_CheckInteger, 1, ++/*184600*/ OPC_CheckType, MVT::i32, ++/*184602*/ OPC_MoveParent, ++/*184603*/ OPC_MoveChild, 9, ++/*184605*/ OPC_CheckInteger, 1, ++/*184607*/ OPC_CheckType, MVT::i32, ++/*184609*/ OPC_MoveParent, ++/*184610*/ OPC_MoveChild, 10, ++/*184612*/ OPC_CheckInteger, 1, ++/*184614*/ OPC_CheckType, MVT::i32, ++/*184616*/ OPC_MoveParent, ++/*184617*/ OPC_MoveChild, 11, ++/*184619*/ OPC_CheckInteger, 1, ++/*184621*/ OPC_CheckType, MVT::i32, ++/*184623*/ OPC_MoveParent, ++/*184624*/ OPC_MoveChild, 12, ++/*184626*/ OPC_CheckInteger, 1, ++/*184628*/ OPC_CheckType, MVT::i32, ++/*184630*/ OPC_MoveParent, ++/*184631*/ OPC_MoveChild, 13, ++/*184633*/ OPC_CheckInteger, 1, ++/*184635*/ OPC_CheckType, MVT::i32, ++/*184637*/ OPC_MoveParent, ++/*184638*/ OPC_MoveChild, 14, ++/*184640*/ OPC_CheckInteger, 1, ++/*184642*/ OPC_CheckType, MVT::i32, ++/*184644*/ OPC_MoveParent, ++/*184645*/ OPC_MoveChild, 15, ++/*184647*/ OPC_CheckInteger, 1, ++/*184649*/ OPC_CheckType, MVT::i32, ++/*184651*/ OPC_MoveParent, ++/*184652*/ OPC_MoveParent, ++/*184653*/ OPC_CheckChild1Same, 0, ++/*184655*/ OPC_MoveParent, ++/*184656*/ OPC_CheckChild1Same, 1, ++/*184658*/ OPC_MoveParent, ++/*184659*/ OPC_MoveChild1, ++/*184660*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*184663*/ OPC_CheckChild0Integer, 7, ++/*184665*/ OPC_CheckChild0Type, MVT::i32, ++/*184667*/ OPC_CheckChild1Integer, 7, ++/*184669*/ OPC_CheckChild1Type, MVT::i32, ++/*184671*/ OPC_CheckChild2Integer, 7, ++/*184673*/ OPC_CheckChild2Type, MVT::i32, ++/*184675*/ OPC_CheckChild3Integer, 7, ++/*184677*/ OPC_CheckChild3Type, MVT::i32, ++/*184679*/ OPC_CheckChild4Integer, 7, ++/*184681*/ OPC_CheckChild4Type, MVT::i32, ++/*184683*/ OPC_MoveChild5, ++/*184684*/ OPC_CheckInteger, 7, ++/*184686*/ OPC_CheckType, MVT::i32, ++/*184688*/ OPC_MoveParent, ++/*184689*/ OPC_MoveChild6, ++/*184690*/ OPC_CheckInteger, 7, ++/*184692*/ OPC_CheckType, MVT::i32, ++/*184694*/ OPC_MoveParent, ++/*184695*/ OPC_MoveChild7, ++/*184696*/ OPC_CheckInteger, 7, ++/*184698*/ OPC_CheckType, MVT::i32, ++/*184700*/ OPC_MoveParent, ++/*184701*/ OPC_MoveChild, 8, ++/*184703*/ OPC_CheckInteger, 7, ++/*184705*/ OPC_CheckType, MVT::i32, ++/*184707*/ OPC_MoveParent, ++/*184708*/ OPC_MoveChild, 9, ++/*184710*/ OPC_CheckInteger, 7, ++/*184712*/ OPC_CheckType, MVT::i32, ++/*184714*/ OPC_MoveParent, ++/*184715*/ OPC_MoveChild, 10, ++/*184717*/ OPC_CheckInteger, 7, ++/*184719*/ OPC_CheckType, MVT::i32, ++/*184721*/ OPC_MoveParent, ++/*184722*/ OPC_MoveChild, 11, ++/*184724*/ OPC_CheckInteger, 7, ++/*184726*/ OPC_CheckType, MVT::i32, ++/*184728*/ OPC_MoveParent, ++/*184729*/ OPC_MoveChild, 12, ++/*184731*/ OPC_CheckInteger, 7, ++/*184733*/ OPC_CheckType, MVT::i32, ++/*184735*/ OPC_MoveParent, ++/*184736*/ OPC_MoveChild, 13, ++/*184738*/ OPC_CheckInteger, 7, ++/*184740*/ OPC_CheckType, MVT::i32, ++/*184742*/ OPC_MoveParent, ++/*184743*/ OPC_MoveChild, 14, ++/*184745*/ OPC_CheckInteger, 7, ++/*184747*/ OPC_CheckType, MVT::i32, ++/*184749*/ OPC_MoveParent, ++/*184750*/ OPC_MoveChild, 15, ++/*184752*/ OPC_CheckInteger, 7, ++/*184754*/ OPC_CheckType, MVT::i32, ++/*184756*/ OPC_MoveParent, ++/*184757*/ OPC_CheckType, MVT::v16i8, ++/*184759*/ OPC_MoveParent, ++/*184760*/ OPC_MoveParent, ++/*184761*/ OPC_MoveParent, ++/*184762*/ OPC_MoveChild1, ++/*184763*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*184766*/ OPC_CheckChild0Integer, 1, ++/*184768*/ OPC_CheckChild0Type, MVT::i32, ++/*184770*/ OPC_CheckChild1Integer, 1, ++/*184772*/ OPC_CheckChild1Type, MVT::i32, ++/*184774*/ OPC_CheckChild2Integer, 1, ++/*184776*/ OPC_CheckChild2Type, MVT::i32, ++/*184778*/ OPC_CheckChild3Integer, 1, ++/*184780*/ OPC_CheckChild3Type, MVT::i32, ++/*184782*/ OPC_CheckChild4Integer, 1, ++/*184784*/ OPC_CheckChild4Type, MVT::i32, ++/*184786*/ OPC_MoveChild5, ++/*184787*/ OPC_CheckInteger, 1, ++/*184789*/ OPC_CheckType, MVT::i32, ++/*184791*/ OPC_MoveParent, ++/*184792*/ OPC_MoveChild6, ++/*184793*/ OPC_CheckInteger, 1, ++/*184795*/ OPC_CheckType, MVT::i32, ++/*184797*/ OPC_MoveParent, ++/*184798*/ OPC_MoveChild7, ++/*184799*/ OPC_CheckInteger, 1, ++/*184801*/ OPC_CheckType, MVT::i32, ++/*184803*/ OPC_MoveParent, ++/*184804*/ OPC_MoveChild, 8, ++/*184806*/ OPC_CheckInteger, 1, ++/*184808*/ OPC_CheckType, MVT::i32, ++/*184810*/ OPC_MoveParent, ++/*184811*/ OPC_MoveChild, 9, ++/*184813*/ OPC_CheckInteger, 1, ++/*184815*/ OPC_CheckType, MVT::i32, ++/*184817*/ OPC_MoveParent, ++/*184818*/ OPC_MoveChild, 10, ++/*184820*/ OPC_CheckInteger, 1, ++/*184822*/ OPC_CheckType, MVT::i32, ++/*184824*/ OPC_MoveParent, ++/*184825*/ OPC_MoveChild, 11, ++/*184827*/ OPC_CheckInteger, 1, ++/*184829*/ OPC_CheckType, MVT::i32, ++/*184831*/ OPC_MoveParent, ++/*184832*/ OPC_MoveChild, 12, ++/*184834*/ OPC_CheckInteger, 1, ++/*184836*/ OPC_CheckType, MVT::i32, ++/*184838*/ OPC_MoveParent, ++/*184839*/ OPC_MoveChild, 13, ++/*184841*/ OPC_CheckInteger, 1, ++/*184843*/ OPC_CheckType, MVT::i32, ++/*184845*/ OPC_MoveParent, ++/*184846*/ OPC_MoveChild, 14, ++/*184848*/ OPC_CheckInteger, 1, ++/*184850*/ OPC_CheckType, MVT::i32, ++/*184852*/ OPC_MoveParent, ++/*184853*/ OPC_MoveChild, 15, ++/*184855*/ OPC_CheckInteger, 1, ++/*184857*/ OPC_CheckType, MVT::i32, ++/*184859*/ OPC_MoveParent, ++/*184860*/ OPC_CheckType, MVT::v16i8, ++/*184862*/ OPC_MoveParent, ++/*184863*/ OPC_CheckType, MVT::v16i8, ++/*184865*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*184867*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b), LSX128B:{ *:[v16i8] }:$a), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b), LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*184875*/ /*Scope*/ 65|128,2/*321*/, /*->185198*/ ++/*184877*/ OPC_CheckChild0Same, 0, ++/*184879*/ OPC_MoveChild1, ++/*184880*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*184883*/ OPC_CheckChild0Integer, 1, ++/*184885*/ OPC_CheckChild0Type, MVT::i32, ++/*184887*/ OPC_CheckChild1Integer, 1, ++/*184889*/ OPC_CheckChild1Type, MVT::i32, ++/*184891*/ OPC_CheckChild2Integer, 1, ++/*184893*/ OPC_CheckChild2Type, MVT::i32, ++/*184895*/ OPC_CheckChild3Integer, 1, ++/*184897*/ OPC_CheckChild3Type, MVT::i32, ++/*184899*/ OPC_CheckChild4Integer, 1, ++/*184901*/ OPC_CheckChild4Type, MVT::i32, ++/*184903*/ OPC_MoveChild5, ++/*184904*/ OPC_CheckInteger, 1, ++/*184906*/ OPC_CheckType, MVT::i32, ++/*184908*/ OPC_MoveParent, ++/*184909*/ OPC_MoveChild6, ++/*184910*/ OPC_CheckInteger, 1, ++/*184912*/ OPC_CheckType, MVT::i32, ++/*184914*/ OPC_MoveParent, ++/*184915*/ OPC_MoveChild7, ++/*184916*/ OPC_CheckInteger, 1, ++/*184918*/ OPC_CheckType, MVT::i32, ++/*184920*/ OPC_MoveParent, ++/*184921*/ OPC_MoveChild, 8, ++/*184923*/ OPC_CheckInteger, 1, ++/*184925*/ OPC_CheckType, MVT::i32, ++/*184927*/ OPC_MoveParent, ++/*184928*/ OPC_MoveChild, 9, ++/*184930*/ OPC_CheckInteger, 1, ++/*184932*/ OPC_CheckType, MVT::i32, ++/*184934*/ OPC_MoveParent, ++/*184935*/ OPC_MoveChild, 10, ++/*184937*/ OPC_CheckInteger, 1, ++/*184939*/ OPC_CheckType, MVT::i32, ++/*184941*/ OPC_MoveParent, ++/*184942*/ OPC_MoveChild, 11, ++/*184944*/ OPC_CheckInteger, 1, ++/*184946*/ OPC_CheckType, MVT::i32, ++/*184948*/ OPC_MoveParent, ++/*184949*/ OPC_MoveChild, 12, ++/*184951*/ OPC_CheckInteger, 1, ++/*184953*/ OPC_CheckType, MVT::i32, ++/*184955*/ OPC_MoveParent, ++/*184956*/ OPC_MoveChild, 13, ++/*184958*/ OPC_CheckInteger, 1, ++/*184960*/ OPC_CheckType, MVT::i32, ++/*184962*/ OPC_MoveParent, ++/*184963*/ OPC_MoveChild, 14, ++/*184965*/ OPC_CheckInteger, 1, ++/*184967*/ OPC_CheckType, MVT::i32, ++/*184969*/ OPC_MoveParent, ++/*184970*/ OPC_MoveChild, 15, ++/*184972*/ OPC_CheckInteger, 1, ++/*184974*/ OPC_CheckType, MVT::i32, ++/*184976*/ OPC_MoveParent, ++/*184977*/ OPC_MoveParent, ++/*184978*/ OPC_MoveParent, ++/*184979*/ OPC_CheckChild1Same, 1, ++/*184981*/ OPC_MoveParent, ++/*184982*/ OPC_MoveChild1, ++/*184983*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*184986*/ OPC_CheckChild0Integer, 7, ++/*184988*/ OPC_CheckChild0Type, MVT::i32, ++/*184990*/ OPC_CheckChild1Integer, 7, ++/*184992*/ OPC_CheckChild1Type, MVT::i32, ++/*184994*/ OPC_CheckChild2Integer, 7, ++/*184996*/ OPC_CheckChild2Type, MVT::i32, ++/*184998*/ OPC_CheckChild3Integer, 7, ++/*185000*/ OPC_CheckChild3Type, MVT::i32, ++/*185002*/ OPC_CheckChild4Integer, 7, ++/*185004*/ OPC_CheckChild4Type, MVT::i32, ++/*185006*/ OPC_MoveChild5, ++/*185007*/ OPC_CheckInteger, 7, ++/*185009*/ OPC_CheckType, MVT::i32, ++/*185011*/ OPC_MoveParent, ++/*185012*/ OPC_MoveChild6, ++/*185013*/ OPC_CheckInteger, 7, ++/*185015*/ OPC_CheckType, MVT::i32, ++/*185017*/ OPC_MoveParent, ++/*185018*/ OPC_MoveChild7, ++/*185019*/ OPC_CheckInteger, 7, ++/*185021*/ OPC_CheckType, MVT::i32, ++/*185023*/ OPC_MoveParent, ++/*185024*/ OPC_MoveChild, 8, ++/*185026*/ OPC_CheckInteger, 7, ++/*185028*/ OPC_CheckType, MVT::i32, ++/*185030*/ OPC_MoveParent, ++/*185031*/ OPC_MoveChild, 9, ++/*185033*/ OPC_CheckInteger, 7, ++/*185035*/ OPC_CheckType, MVT::i32, ++/*185037*/ OPC_MoveParent, ++/*185038*/ OPC_MoveChild, 10, ++/*185040*/ OPC_CheckInteger, 7, ++/*185042*/ OPC_CheckType, MVT::i32, ++/*185044*/ OPC_MoveParent, ++/*185045*/ OPC_MoveChild, 11, ++/*185047*/ OPC_CheckInteger, 7, ++/*185049*/ OPC_CheckType, MVT::i32, ++/*185051*/ OPC_MoveParent, ++/*185052*/ OPC_MoveChild, 12, ++/*185054*/ OPC_CheckInteger, 7, ++/*185056*/ OPC_CheckType, MVT::i32, ++/*185058*/ OPC_MoveParent, ++/*185059*/ OPC_MoveChild, 13, ++/*185061*/ OPC_CheckInteger, 7, ++/*185063*/ OPC_CheckType, MVT::i32, ++/*185065*/ OPC_MoveParent, ++/*185066*/ OPC_MoveChild, 14, ++/*185068*/ OPC_CheckInteger, 7, ++/*185070*/ OPC_CheckType, MVT::i32, ++/*185072*/ OPC_MoveParent, ++/*185073*/ OPC_MoveChild, 15, ++/*185075*/ OPC_CheckInteger, 7, ++/*185077*/ OPC_CheckType, MVT::i32, ++/*185079*/ OPC_MoveParent, ++/*185080*/ OPC_CheckType, MVT::v16i8, ++/*185082*/ OPC_MoveParent, ++/*185083*/ OPC_MoveParent, ++/*185084*/ OPC_MoveParent, ++/*185085*/ OPC_MoveChild1, ++/*185086*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*185089*/ OPC_CheckChild0Integer, 1, ++/*185091*/ OPC_CheckChild0Type, MVT::i32, ++/*185093*/ OPC_CheckChild1Integer, 1, ++/*185095*/ OPC_CheckChild1Type, MVT::i32, ++/*185097*/ OPC_CheckChild2Integer, 1, ++/*185099*/ OPC_CheckChild2Type, MVT::i32, ++/*185101*/ OPC_CheckChild3Integer, 1, ++/*185103*/ OPC_CheckChild3Type, MVT::i32, ++/*185105*/ OPC_CheckChild4Integer, 1, ++/*185107*/ OPC_CheckChild4Type, MVT::i32, ++/*185109*/ OPC_MoveChild5, ++/*185110*/ OPC_CheckInteger, 1, ++/*185112*/ OPC_CheckType, MVT::i32, ++/*185114*/ OPC_MoveParent, ++/*185115*/ OPC_MoveChild6, ++/*185116*/ OPC_CheckInteger, 1, ++/*185118*/ OPC_CheckType, MVT::i32, ++/*185120*/ OPC_MoveParent, ++/*185121*/ OPC_MoveChild7, ++/*185122*/ OPC_CheckInteger, 1, ++/*185124*/ OPC_CheckType, MVT::i32, ++/*185126*/ OPC_MoveParent, ++/*185127*/ OPC_MoveChild, 8, ++/*185129*/ OPC_CheckInteger, 1, ++/*185131*/ OPC_CheckType, MVT::i32, ++/*185133*/ OPC_MoveParent, ++/*185134*/ OPC_MoveChild, 9, ++/*185136*/ OPC_CheckInteger, 1, ++/*185138*/ OPC_CheckType, MVT::i32, ++/*185140*/ OPC_MoveParent, ++/*185141*/ OPC_MoveChild, 10, ++/*185143*/ OPC_CheckInteger, 1, ++/*185145*/ OPC_CheckType, MVT::i32, ++/*185147*/ OPC_MoveParent, ++/*185148*/ OPC_MoveChild, 11, ++/*185150*/ OPC_CheckInteger, 1, ++/*185152*/ OPC_CheckType, MVT::i32, ++/*185154*/ OPC_MoveParent, ++/*185155*/ OPC_MoveChild, 12, ++/*185157*/ OPC_CheckInteger, 1, ++/*185159*/ OPC_CheckType, MVT::i32, ++/*185161*/ OPC_MoveParent, ++/*185162*/ OPC_MoveChild, 13, ++/*185164*/ OPC_CheckInteger, 1, ++/*185166*/ OPC_CheckType, MVT::i32, ++/*185168*/ OPC_MoveParent, ++/*185169*/ OPC_MoveChild, 14, ++/*185171*/ OPC_CheckInteger, 1, ++/*185173*/ OPC_CheckType, MVT::i32, ++/*185175*/ OPC_MoveParent, ++/*185176*/ OPC_MoveChild, 15, ++/*185178*/ OPC_CheckInteger, 1, ++/*185180*/ OPC_CheckType, MVT::i32, ++/*185182*/ OPC_MoveParent, ++/*185183*/ OPC_CheckType, MVT::v16i8, ++/*185185*/ OPC_MoveParent, ++/*185186*/ OPC_CheckType, MVT::v16i8, ++/*185188*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*185190*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b), LSX128B:{ *:[v16i8] }:$a), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*185198*/ /*Scope*/ 65|128,2/*321*/, /*->185521*/ ++/*185200*/ OPC_CheckChild0Same, 1, ++/*185202*/ OPC_CheckChild1Same, 0, ++/*185204*/ OPC_MoveParent, ++/*185205*/ OPC_MoveChild1, ++/*185206*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*185209*/ OPC_CheckChild0Integer, 1, ++/*185211*/ OPC_CheckChild0Type, MVT::i32, ++/*185213*/ OPC_CheckChild1Integer, 1, ++/*185215*/ OPC_CheckChild1Type, MVT::i32, ++/*185217*/ OPC_CheckChild2Integer, 1, ++/*185219*/ OPC_CheckChild2Type, MVT::i32, ++/*185221*/ OPC_CheckChild3Integer, 1, ++/*185223*/ OPC_CheckChild3Type, MVT::i32, ++/*185225*/ OPC_CheckChild4Integer, 1, ++/*185227*/ OPC_CheckChild4Type, MVT::i32, ++/*185229*/ OPC_MoveChild5, ++/*185230*/ OPC_CheckInteger, 1, ++/*185232*/ OPC_CheckType, MVT::i32, ++/*185234*/ OPC_MoveParent, ++/*185235*/ OPC_MoveChild6, ++/*185236*/ OPC_CheckInteger, 1, ++/*185238*/ OPC_CheckType, MVT::i32, ++/*185240*/ OPC_MoveParent, ++/*185241*/ OPC_MoveChild7, ++/*185242*/ OPC_CheckInteger, 1, ++/*185244*/ OPC_CheckType, MVT::i32, ++/*185246*/ OPC_MoveParent, ++/*185247*/ OPC_MoveChild, 8, ++/*185249*/ OPC_CheckInteger, 1, ++/*185251*/ OPC_CheckType, MVT::i32, ++/*185253*/ OPC_MoveParent, ++/*185254*/ OPC_MoveChild, 9, ++/*185256*/ OPC_CheckInteger, 1, ++/*185258*/ OPC_CheckType, MVT::i32, ++/*185260*/ OPC_MoveParent, ++/*185261*/ OPC_MoveChild, 10, ++/*185263*/ OPC_CheckInteger, 1, ++/*185265*/ OPC_CheckType, MVT::i32, ++/*185267*/ OPC_MoveParent, ++/*185268*/ OPC_MoveChild, 11, ++/*185270*/ OPC_CheckInteger, 1, ++/*185272*/ OPC_CheckType, MVT::i32, ++/*185274*/ OPC_MoveParent, ++/*185275*/ OPC_MoveChild, 12, ++/*185277*/ OPC_CheckInteger, 1, ++/*185279*/ OPC_CheckType, MVT::i32, ++/*185281*/ OPC_MoveParent, ++/*185282*/ OPC_MoveChild, 13, ++/*185284*/ OPC_CheckInteger, 1, ++/*185286*/ OPC_CheckType, MVT::i32, ++/*185288*/ OPC_MoveParent, ++/*185289*/ OPC_MoveChild, 14, ++/*185291*/ OPC_CheckInteger, 1, ++/*185293*/ OPC_CheckType, MVT::i32, ++/*185295*/ OPC_MoveParent, ++/*185296*/ OPC_MoveChild, 15, ++/*185298*/ OPC_CheckInteger, 1, ++/*185300*/ OPC_CheckType, MVT::i32, ++/*185302*/ OPC_MoveParent, ++/*185303*/ OPC_MoveParent, ++/*185304*/ OPC_MoveParent, ++/*185305*/ OPC_MoveChild1, ++/*185306*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*185309*/ OPC_CheckChild0Integer, 7, ++/*185311*/ OPC_CheckChild0Type, MVT::i32, ++/*185313*/ OPC_CheckChild1Integer, 7, ++/*185315*/ OPC_CheckChild1Type, MVT::i32, ++/*185317*/ OPC_CheckChild2Integer, 7, ++/*185319*/ OPC_CheckChild2Type, MVT::i32, ++/*185321*/ OPC_CheckChild3Integer, 7, ++/*185323*/ OPC_CheckChild3Type, MVT::i32, ++/*185325*/ OPC_CheckChild4Integer, 7, ++/*185327*/ OPC_CheckChild4Type, MVT::i32, ++/*185329*/ OPC_MoveChild5, ++/*185330*/ OPC_CheckInteger, 7, ++/*185332*/ OPC_CheckType, MVT::i32, ++/*185334*/ OPC_MoveParent, ++/*185335*/ OPC_MoveChild6, ++/*185336*/ OPC_CheckInteger, 7, ++/*185338*/ OPC_CheckType, MVT::i32, ++/*185340*/ OPC_MoveParent, ++/*185341*/ OPC_MoveChild7, ++/*185342*/ OPC_CheckInteger, 7, ++/*185344*/ OPC_CheckType, MVT::i32, ++/*185346*/ OPC_MoveParent, ++/*185347*/ OPC_MoveChild, 8, ++/*185349*/ OPC_CheckInteger, 7, ++/*185351*/ OPC_CheckType, MVT::i32, ++/*185353*/ OPC_MoveParent, ++/*185354*/ OPC_MoveChild, 9, ++/*185356*/ OPC_CheckInteger, 7, ++/*185358*/ OPC_CheckType, MVT::i32, ++/*185360*/ OPC_MoveParent, ++/*185361*/ OPC_MoveChild, 10, ++/*185363*/ OPC_CheckInteger, 7, ++/*185365*/ OPC_CheckType, MVT::i32, ++/*185367*/ OPC_MoveParent, ++/*185368*/ OPC_MoveChild, 11, ++/*185370*/ OPC_CheckInteger, 7, ++/*185372*/ OPC_CheckType, MVT::i32, ++/*185374*/ OPC_MoveParent, ++/*185375*/ OPC_MoveChild, 12, ++/*185377*/ OPC_CheckInteger, 7, ++/*185379*/ OPC_CheckType, MVT::i32, ++/*185381*/ OPC_MoveParent, ++/*185382*/ OPC_MoveChild, 13, ++/*185384*/ OPC_CheckInteger, 7, ++/*185386*/ OPC_CheckType, MVT::i32, ++/*185388*/ OPC_MoveParent, ++/*185389*/ OPC_MoveChild, 14, ++/*185391*/ OPC_CheckInteger, 7, ++/*185393*/ OPC_CheckType, MVT::i32, ++/*185395*/ OPC_MoveParent, ++/*185396*/ OPC_MoveChild, 15, ++/*185398*/ OPC_CheckInteger, 7, ++/*185400*/ OPC_CheckType, MVT::i32, ++/*185402*/ OPC_MoveParent, ++/*185403*/ OPC_CheckType, MVT::v16i8, ++/*185405*/ OPC_MoveParent, ++/*185406*/ OPC_MoveParent, ++/*185407*/ OPC_MoveParent, ++/*185408*/ OPC_MoveChild1, ++/*185409*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*185412*/ OPC_CheckChild0Integer, 1, ++/*185414*/ OPC_CheckChild0Type, MVT::i32, ++/*185416*/ OPC_CheckChild1Integer, 1, ++/*185418*/ OPC_CheckChild1Type, MVT::i32, ++/*185420*/ OPC_CheckChild2Integer, 1, ++/*185422*/ OPC_CheckChild2Type, MVT::i32, ++/*185424*/ OPC_CheckChild3Integer, 1, ++/*185426*/ OPC_CheckChild3Type, MVT::i32, ++/*185428*/ OPC_CheckChild4Integer, 1, ++/*185430*/ OPC_CheckChild4Type, MVT::i32, ++/*185432*/ OPC_MoveChild5, ++/*185433*/ OPC_CheckInteger, 1, ++/*185435*/ OPC_CheckType, MVT::i32, ++/*185437*/ OPC_MoveParent, ++/*185438*/ OPC_MoveChild6, ++/*185439*/ OPC_CheckInteger, 1, ++/*185441*/ OPC_CheckType, MVT::i32, ++/*185443*/ OPC_MoveParent, ++/*185444*/ OPC_MoveChild7, ++/*185445*/ OPC_CheckInteger, 1, ++/*185447*/ OPC_CheckType, MVT::i32, ++/*185449*/ OPC_MoveParent, ++/*185450*/ OPC_MoveChild, 8, ++/*185452*/ OPC_CheckInteger, 1, ++/*185454*/ OPC_CheckType, MVT::i32, ++/*185456*/ OPC_MoveParent, ++/*185457*/ OPC_MoveChild, 9, ++/*185459*/ OPC_CheckInteger, 1, ++/*185461*/ OPC_CheckType, MVT::i32, ++/*185463*/ OPC_MoveParent, ++/*185464*/ OPC_MoveChild, 10, ++/*185466*/ OPC_CheckInteger, 1, ++/*185468*/ OPC_CheckType, MVT::i32, ++/*185470*/ OPC_MoveParent, ++/*185471*/ OPC_MoveChild, 11, ++/*185473*/ OPC_CheckInteger, 1, ++/*185475*/ OPC_CheckType, MVT::i32, ++/*185477*/ OPC_MoveParent, ++/*185478*/ OPC_MoveChild, 12, ++/*185480*/ OPC_CheckInteger, 1, ++/*185482*/ OPC_CheckType, MVT::i32, ++/*185484*/ OPC_MoveParent, ++/*185485*/ OPC_MoveChild, 13, ++/*185487*/ OPC_CheckInteger, 1, ++/*185489*/ OPC_CheckType, MVT::i32, ++/*185491*/ OPC_MoveParent, ++/*185492*/ OPC_MoveChild, 14, ++/*185494*/ OPC_CheckInteger, 1, ++/*185496*/ OPC_CheckType, MVT::i32, ++/*185498*/ OPC_MoveParent, ++/*185499*/ OPC_MoveChild, 15, ++/*185501*/ OPC_CheckInteger, 1, ++/*185503*/ OPC_CheckType, MVT::i32, ++/*185505*/ OPC_MoveParent, ++/*185506*/ OPC_CheckType, MVT::v16i8, ++/*185508*/ OPC_MoveParent, ++/*185509*/ OPC_CheckType, MVT::v16i8, ++/*185511*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*185513*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b), LSX128B:{ *:[v16i8] }:$a), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*185521*/ /*Scope*/ 65|128,2/*321*/, /*->185844*/ ++/*185523*/ OPC_CheckChild0Same, 0, ++/*185525*/ OPC_CheckChild1Same, 1, ++/*185527*/ OPC_MoveParent, ++/*185528*/ OPC_MoveChild1, ++/*185529*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*185532*/ OPC_CheckChild0Integer, 1, ++/*185534*/ OPC_CheckChild0Type, MVT::i32, ++/*185536*/ OPC_CheckChild1Integer, 1, ++/*185538*/ OPC_CheckChild1Type, MVT::i32, ++/*185540*/ OPC_CheckChild2Integer, 1, ++/*185542*/ OPC_CheckChild2Type, MVT::i32, ++/*185544*/ OPC_CheckChild3Integer, 1, ++/*185546*/ OPC_CheckChild3Type, MVT::i32, ++/*185548*/ OPC_CheckChild4Integer, 1, ++/*185550*/ OPC_CheckChild4Type, MVT::i32, ++/*185552*/ OPC_MoveChild5, ++/*185553*/ OPC_CheckInteger, 1, ++/*185555*/ OPC_CheckType, MVT::i32, ++/*185557*/ OPC_MoveParent, ++/*185558*/ OPC_MoveChild6, ++/*185559*/ OPC_CheckInteger, 1, ++/*185561*/ OPC_CheckType, MVT::i32, ++/*185563*/ OPC_MoveParent, ++/*185564*/ OPC_MoveChild7, ++/*185565*/ OPC_CheckInteger, 1, ++/*185567*/ OPC_CheckType, MVT::i32, ++/*185569*/ OPC_MoveParent, ++/*185570*/ OPC_MoveChild, 8, ++/*185572*/ OPC_CheckInteger, 1, ++/*185574*/ OPC_CheckType, MVT::i32, ++/*185576*/ OPC_MoveParent, ++/*185577*/ OPC_MoveChild, 9, ++/*185579*/ OPC_CheckInteger, 1, ++/*185581*/ OPC_CheckType, MVT::i32, ++/*185583*/ OPC_MoveParent, ++/*185584*/ OPC_MoveChild, 10, ++/*185586*/ OPC_CheckInteger, 1, ++/*185588*/ OPC_CheckType, MVT::i32, ++/*185590*/ OPC_MoveParent, ++/*185591*/ OPC_MoveChild, 11, ++/*185593*/ OPC_CheckInteger, 1, ++/*185595*/ OPC_CheckType, MVT::i32, ++/*185597*/ OPC_MoveParent, ++/*185598*/ OPC_MoveChild, 12, ++/*185600*/ OPC_CheckInteger, 1, ++/*185602*/ OPC_CheckType, MVT::i32, ++/*185604*/ OPC_MoveParent, ++/*185605*/ OPC_MoveChild, 13, ++/*185607*/ OPC_CheckInteger, 1, ++/*185609*/ OPC_CheckType, MVT::i32, ++/*185611*/ OPC_MoveParent, ++/*185612*/ OPC_MoveChild, 14, ++/*185614*/ OPC_CheckInteger, 1, ++/*185616*/ OPC_CheckType, MVT::i32, ++/*185618*/ OPC_MoveParent, ++/*185619*/ OPC_MoveChild, 15, ++/*185621*/ OPC_CheckInteger, 1, ++/*185623*/ OPC_CheckType, MVT::i32, ++/*185625*/ OPC_MoveParent, ++/*185626*/ OPC_MoveParent, ++/*185627*/ OPC_MoveParent, ++/*185628*/ OPC_MoveChild1, ++/*185629*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*185632*/ OPC_CheckChild0Integer, 7, ++/*185634*/ OPC_CheckChild0Type, MVT::i32, ++/*185636*/ OPC_CheckChild1Integer, 7, ++/*185638*/ OPC_CheckChild1Type, MVT::i32, ++/*185640*/ OPC_CheckChild2Integer, 7, ++/*185642*/ OPC_CheckChild2Type, MVT::i32, ++/*185644*/ OPC_CheckChild3Integer, 7, ++/*185646*/ OPC_CheckChild3Type, MVT::i32, ++/*185648*/ OPC_CheckChild4Integer, 7, ++/*185650*/ OPC_CheckChild4Type, MVT::i32, ++/*185652*/ OPC_MoveChild5, ++/*185653*/ OPC_CheckInteger, 7, ++/*185655*/ OPC_CheckType, MVT::i32, ++/*185657*/ OPC_MoveParent, ++/*185658*/ OPC_MoveChild6, ++/*185659*/ OPC_CheckInteger, 7, ++/*185661*/ OPC_CheckType, MVT::i32, ++/*185663*/ OPC_MoveParent, ++/*185664*/ OPC_MoveChild7, ++/*185665*/ OPC_CheckInteger, 7, ++/*185667*/ OPC_CheckType, MVT::i32, ++/*185669*/ OPC_MoveParent, ++/*185670*/ OPC_MoveChild, 8, ++/*185672*/ OPC_CheckInteger, 7, ++/*185674*/ OPC_CheckType, MVT::i32, ++/*185676*/ OPC_MoveParent, ++/*185677*/ OPC_MoveChild, 9, ++/*185679*/ OPC_CheckInteger, 7, ++/*185681*/ OPC_CheckType, MVT::i32, ++/*185683*/ OPC_MoveParent, ++/*185684*/ OPC_MoveChild, 10, ++/*185686*/ OPC_CheckInteger, 7, ++/*185688*/ OPC_CheckType, MVT::i32, ++/*185690*/ OPC_MoveParent, ++/*185691*/ OPC_MoveChild, 11, ++/*185693*/ OPC_CheckInteger, 7, ++/*185695*/ OPC_CheckType, MVT::i32, ++/*185697*/ OPC_MoveParent, ++/*185698*/ OPC_MoveChild, 12, ++/*185700*/ OPC_CheckInteger, 7, ++/*185702*/ OPC_CheckType, MVT::i32, ++/*185704*/ OPC_MoveParent, ++/*185705*/ OPC_MoveChild, 13, ++/*185707*/ OPC_CheckInteger, 7, ++/*185709*/ OPC_CheckType, MVT::i32, ++/*185711*/ OPC_MoveParent, ++/*185712*/ OPC_MoveChild, 14, ++/*185714*/ OPC_CheckInteger, 7, ++/*185716*/ OPC_CheckType, MVT::i32, ++/*185718*/ OPC_MoveParent, ++/*185719*/ OPC_MoveChild, 15, ++/*185721*/ OPC_CheckInteger, 7, ++/*185723*/ OPC_CheckType, MVT::i32, ++/*185725*/ OPC_MoveParent, ++/*185726*/ OPC_CheckType, MVT::v16i8, ++/*185728*/ OPC_MoveParent, ++/*185729*/ OPC_MoveParent, ++/*185730*/ OPC_MoveParent, ++/*185731*/ OPC_MoveChild1, ++/*185732*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*185735*/ OPC_CheckChild0Integer, 1, ++/*185737*/ OPC_CheckChild0Type, MVT::i32, ++/*185739*/ OPC_CheckChild1Integer, 1, ++/*185741*/ OPC_CheckChild1Type, MVT::i32, ++/*185743*/ OPC_CheckChild2Integer, 1, ++/*185745*/ OPC_CheckChild2Type, MVT::i32, ++/*185747*/ OPC_CheckChild3Integer, 1, ++/*185749*/ OPC_CheckChild3Type, MVT::i32, ++/*185751*/ OPC_CheckChild4Integer, 1, ++/*185753*/ OPC_CheckChild4Type, MVT::i32, ++/*185755*/ OPC_MoveChild5, ++/*185756*/ OPC_CheckInteger, 1, ++/*185758*/ OPC_CheckType, MVT::i32, ++/*185760*/ OPC_MoveParent, ++/*185761*/ OPC_MoveChild6, ++/*185762*/ OPC_CheckInteger, 1, ++/*185764*/ OPC_CheckType, MVT::i32, ++/*185766*/ OPC_MoveParent, ++/*185767*/ OPC_MoveChild7, ++/*185768*/ OPC_CheckInteger, 1, ++/*185770*/ OPC_CheckType, MVT::i32, ++/*185772*/ OPC_MoveParent, ++/*185773*/ OPC_MoveChild, 8, ++/*185775*/ OPC_CheckInteger, 1, ++/*185777*/ OPC_CheckType, MVT::i32, ++/*185779*/ OPC_MoveParent, ++/*185780*/ OPC_MoveChild, 9, ++/*185782*/ OPC_CheckInteger, 1, ++/*185784*/ OPC_CheckType, MVT::i32, ++/*185786*/ OPC_MoveParent, ++/*185787*/ OPC_MoveChild, 10, ++/*185789*/ OPC_CheckInteger, 1, ++/*185791*/ OPC_CheckType, MVT::i32, ++/*185793*/ OPC_MoveParent, ++/*185794*/ OPC_MoveChild, 11, ++/*185796*/ OPC_CheckInteger, 1, ++/*185798*/ OPC_CheckType, MVT::i32, ++/*185800*/ OPC_MoveParent, ++/*185801*/ OPC_MoveChild, 12, ++/*185803*/ OPC_CheckInteger, 1, ++/*185805*/ OPC_CheckType, MVT::i32, ++/*185807*/ OPC_MoveParent, ++/*185808*/ OPC_MoveChild, 13, ++/*185810*/ OPC_CheckInteger, 1, ++/*185812*/ OPC_CheckType, MVT::i32, ++/*185814*/ OPC_MoveParent, ++/*185815*/ OPC_MoveChild, 14, ++/*185817*/ OPC_CheckInteger, 1, ++/*185819*/ OPC_CheckType, MVT::i32, ++/*185821*/ OPC_MoveParent, ++/*185822*/ OPC_MoveChild, 15, ++/*185824*/ OPC_CheckInteger, 1, ++/*185826*/ OPC_CheckType, MVT::i32, ++/*185828*/ OPC_MoveParent, ++/*185829*/ OPC_CheckType, MVT::v16i8, ++/*185831*/ OPC_MoveParent, ++/*185832*/ OPC_CheckType, MVT::v16i8, ++/*185834*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*185836*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b), LSX128B:{ *:[v16i8] }:$a), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*185844*/ 0, /*End of Scope*/ ++/*185845*/ /*Scope*/ 10|128,5/*650*/, /*->186497*/ ++/*185847*/ OPC_CheckChild0Same, 0, ++/*185849*/ OPC_MoveChild1, ++/*185850*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*185853*/ OPC_Scope, 63|128,2/*319*/, /*->186175*/ // 2 children in Scope ++/*185856*/ OPC_MoveChild0, ++/*185857*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*185860*/ OPC_CheckChild0Integer, 1, ++/*185862*/ OPC_CheckChild0Type, MVT::i32, ++/*185864*/ OPC_CheckChild1Integer, 1, ++/*185866*/ OPC_CheckChild1Type, MVT::i32, ++/*185868*/ OPC_CheckChild2Integer, 1, ++/*185870*/ OPC_CheckChild2Type, MVT::i32, ++/*185872*/ OPC_CheckChild3Integer, 1, ++/*185874*/ OPC_CheckChild3Type, MVT::i32, ++/*185876*/ OPC_CheckChild4Integer, 1, ++/*185878*/ OPC_CheckChild4Type, MVT::i32, ++/*185880*/ OPC_MoveChild5, ++/*185881*/ OPC_CheckInteger, 1, ++/*185883*/ OPC_CheckType, MVT::i32, ++/*185885*/ OPC_MoveParent, ++/*185886*/ OPC_MoveChild6, ++/*185887*/ OPC_CheckInteger, 1, ++/*185889*/ OPC_CheckType, MVT::i32, ++/*185891*/ OPC_MoveParent, ++/*185892*/ OPC_MoveChild7, ++/*185893*/ OPC_CheckInteger, 1, ++/*185895*/ OPC_CheckType, MVT::i32, ++/*185897*/ OPC_MoveParent, ++/*185898*/ OPC_MoveChild, 8, ++/*185900*/ OPC_CheckInteger, 1, ++/*185902*/ OPC_CheckType, MVT::i32, ++/*185904*/ OPC_MoveParent, ++/*185905*/ OPC_MoveChild, 9, ++/*185907*/ OPC_CheckInteger, 1, ++/*185909*/ OPC_CheckType, MVT::i32, ++/*185911*/ OPC_MoveParent, ++/*185912*/ OPC_MoveChild, 10, ++/*185914*/ OPC_CheckInteger, 1, ++/*185916*/ OPC_CheckType, MVT::i32, ++/*185918*/ OPC_MoveParent, ++/*185919*/ OPC_MoveChild, 11, ++/*185921*/ OPC_CheckInteger, 1, ++/*185923*/ OPC_CheckType, MVT::i32, ++/*185925*/ OPC_MoveParent, ++/*185926*/ OPC_MoveChild, 12, ++/*185928*/ OPC_CheckInteger, 1, ++/*185930*/ OPC_CheckType, MVT::i32, ++/*185932*/ OPC_MoveParent, ++/*185933*/ OPC_MoveChild, 13, ++/*185935*/ OPC_CheckInteger, 1, ++/*185937*/ OPC_CheckType, MVT::i32, ++/*185939*/ OPC_MoveParent, ++/*185940*/ OPC_MoveChild, 14, ++/*185942*/ OPC_CheckInteger, 1, ++/*185944*/ OPC_CheckType, MVT::i32, ++/*185946*/ OPC_MoveParent, ++/*185947*/ OPC_MoveChild, 15, ++/*185949*/ OPC_CheckInteger, 1, ++/*185951*/ OPC_CheckType, MVT::i32, ++/*185953*/ OPC_MoveParent, ++/*185954*/ OPC_MoveParent, ++/*185955*/ OPC_CheckChild1Same, 1, ++/*185957*/ OPC_MoveParent, ++/*185958*/ OPC_MoveParent, ++/*185959*/ OPC_MoveChild1, ++/*185960*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*185963*/ OPC_CheckChild0Integer, 7, ++/*185965*/ OPC_CheckChild0Type, MVT::i32, ++/*185967*/ OPC_CheckChild1Integer, 7, ++/*185969*/ OPC_CheckChild1Type, MVT::i32, ++/*185971*/ OPC_CheckChild2Integer, 7, ++/*185973*/ OPC_CheckChild2Type, MVT::i32, ++/*185975*/ OPC_CheckChild3Integer, 7, ++/*185977*/ OPC_CheckChild3Type, MVT::i32, ++/*185979*/ OPC_CheckChild4Integer, 7, ++/*185981*/ OPC_CheckChild4Type, MVT::i32, ++/*185983*/ OPC_MoveChild5, ++/*185984*/ OPC_CheckInteger, 7, ++/*185986*/ OPC_CheckType, MVT::i32, ++/*185988*/ OPC_MoveParent, ++/*185989*/ OPC_MoveChild6, ++/*185990*/ OPC_CheckInteger, 7, ++/*185992*/ OPC_CheckType, MVT::i32, ++/*185994*/ OPC_MoveParent, ++/*185995*/ OPC_MoveChild7, ++/*185996*/ OPC_CheckInteger, 7, ++/*185998*/ OPC_CheckType, MVT::i32, ++/*186000*/ OPC_MoveParent, ++/*186001*/ OPC_MoveChild, 8, ++/*186003*/ OPC_CheckInteger, 7, ++/*186005*/ OPC_CheckType, MVT::i32, ++/*186007*/ OPC_MoveParent, ++/*186008*/ OPC_MoveChild, 9, ++/*186010*/ OPC_CheckInteger, 7, ++/*186012*/ OPC_CheckType, MVT::i32, ++/*186014*/ OPC_MoveParent, ++/*186015*/ OPC_MoveChild, 10, ++/*186017*/ OPC_CheckInteger, 7, ++/*186019*/ OPC_CheckType, MVT::i32, ++/*186021*/ OPC_MoveParent, ++/*186022*/ OPC_MoveChild, 11, ++/*186024*/ OPC_CheckInteger, 7, ++/*186026*/ OPC_CheckType, MVT::i32, ++/*186028*/ OPC_MoveParent, ++/*186029*/ OPC_MoveChild, 12, ++/*186031*/ OPC_CheckInteger, 7, ++/*186033*/ OPC_CheckType, MVT::i32, ++/*186035*/ OPC_MoveParent, ++/*186036*/ OPC_MoveChild, 13, ++/*186038*/ OPC_CheckInteger, 7, ++/*186040*/ OPC_CheckType, MVT::i32, ++/*186042*/ OPC_MoveParent, ++/*186043*/ OPC_MoveChild, 14, ++/*186045*/ OPC_CheckInteger, 7, ++/*186047*/ OPC_CheckType, MVT::i32, ++/*186049*/ OPC_MoveParent, ++/*186050*/ OPC_MoveChild, 15, ++/*186052*/ OPC_CheckInteger, 7, ++/*186054*/ OPC_CheckType, MVT::i32, ++/*186056*/ OPC_MoveParent, ++/*186057*/ OPC_CheckType, MVT::v16i8, ++/*186059*/ OPC_MoveParent, ++/*186060*/ OPC_MoveParent, ++/*186061*/ OPC_MoveParent, ++/*186062*/ OPC_MoveChild1, ++/*186063*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*186066*/ OPC_CheckChild0Integer, 1, ++/*186068*/ OPC_CheckChild0Type, MVT::i32, ++/*186070*/ OPC_CheckChild1Integer, 1, ++/*186072*/ OPC_CheckChild1Type, MVT::i32, ++/*186074*/ OPC_CheckChild2Integer, 1, ++/*186076*/ OPC_CheckChild2Type, MVT::i32, ++/*186078*/ OPC_CheckChild3Integer, 1, ++/*186080*/ OPC_CheckChild3Type, MVT::i32, ++/*186082*/ OPC_CheckChild4Integer, 1, ++/*186084*/ OPC_CheckChild4Type, MVT::i32, ++/*186086*/ OPC_MoveChild5, ++/*186087*/ OPC_CheckInteger, 1, ++/*186089*/ OPC_CheckType, MVT::i32, ++/*186091*/ OPC_MoveParent, ++/*186092*/ OPC_MoveChild6, ++/*186093*/ OPC_CheckInteger, 1, ++/*186095*/ OPC_CheckType, MVT::i32, ++/*186097*/ OPC_MoveParent, ++/*186098*/ OPC_MoveChild7, ++/*186099*/ OPC_CheckInteger, 1, ++/*186101*/ OPC_CheckType, MVT::i32, ++/*186103*/ OPC_MoveParent, ++/*186104*/ OPC_MoveChild, 8, ++/*186106*/ OPC_CheckInteger, 1, ++/*186108*/ OPC_CheckType, MVT::i32, ++/*186110*/ OPC_MoveParent, ++/*186111*/ OPC_MoveChild, 9, ++/*186113*/ OPC_CheckInteger, 1, ++/*186115*/ OPC_CheckType, MVT::i32, ++/*186117*/ OPC_MoveParent, ++/*186118*/ OPC_MoveChild, 10, ++/*186120*/ OPC_CheckInteger, 1, ++/*186122*/ OPC_CheckType, MVT::i32, ++/*186124*/ OPC_MoveParent, ++/*186125*/ OPC_MoveChild, 11, ++/*186127*/ OPC_CheckInteger, 1, ++/*186129*/ OPC_CheckType, MVT::i32, ++/*186131*/ OPC_MoveParent, ++/*186132*/ OPC_MoveChild, 12, ++/*186134*/ OPC_CheckInteger, 1, ++/*186136*/ OPC_CheckType, MVT::i32, ++/*186138*/ OPC_MoveParent, ++/*186139*/ OPC_MoveChild, 13, ++/*186141*/ OPC_CheckInteger, 1, ++/*186143*/ OPC_CheckType, MVT::i32, ++/*186145*/ OPC_MoveParent, ++/*186146*/ OPC_MoveChild, 14, ++/*186148*/ OPC_CheckInteger, 1, ++/*186150*/ OPC_CheckType, MVT::i32, ++/*186152*/ OPC_MoveParent, ++/*186153*/ OPC_MoveChild, 15, ++/*186155*/ OPC_CheckInteger, 1, ++/*186157*/ OPC_CheckType, MVT::i32, ++/*186159*/ OPC_MoveParent, ++/*186160*/ OPC_CheckType, MVT::v16i8, ++/*186162*/ OPC_MoveParent, ++/*186163*/ OPC_CheckType, MVT::v16i8, ++/*186165*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*186167*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b), LSX128B:{ *:[v16i8] }:$a), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*186175*/ /*Scope*/ 63|128,2/*319*/, /*->186496*/ ++/*186177*/ OPC_CheckChild0Same, 1, ++/*186179*/ OPC_MoveChild1, ++/*186180*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*186183*/ OPC_CheckChild0Integer, 1, ++/*186185*/ OPC_CheckChild0Type, MVT::i32, ++/*186187*/ OPC_CheckChild1Integer, 1, ++/*186189*/ OPC_CheckChild1Type, MVT::i32, ++/*186191*/ OPC_CheckChild2Integer, 1, ++/*186193*/ OPC_CheckChild2Type, MVT::i32, ++/*186195*/ OPC_CheckChild3Integer, 1, ++/*186197*/ OPC_CheckChild3Type, MVT::i32, ++/*186199*/ OPC_CheckChild4Integer, 1, ++/*186201*/ OPC_CheckChild4Type, MVT::i32, ++/*186203*/ OPC_MoveChild5, ++/*186204*/ OPC_CheckInteger, 1, ++/*186206*/ OPC_CheckType, MVT::i32, ++/*186208*/ OPC_MoveParent, ++/*186209*/ OPC_MoveChild6, ++/*186210*/ OPC_CheckInteger, 1, ++/*186212*/ OPC_CheckType, MVT::i32, ++/*186214*/ OPC_MoveParent, ++/*186215*/ OPC_MoveChild7, ++/*186216*/ OPC_CheckInteger, 1, ++/*186218*/ OPC_CheckType, MVT::i32, ++/*186220*/ OPC_MoveParent, ++/*186221*/ OPC_MoveChild, 8, ++/*186223*/ OPC_CheckInteger, 1, ++/*186225*/ OPC_CheckType, MVT::i32, ++/*186227*/ OPC_MoveParent, ++/*186228*/ OPC_MoveChild, 9, ++/*186230*/ OPC_CheckInteger, 1, ++/*186232*/ OPC_CheckType, MVT::i32, ++/*186234*/ OPC_MoveParent, ++/*186235*/ OPC_MoveChild, 10, ++/*186237*/ OPC_CheckInteger, 1, ++/*186239*/ OPC_CheckType, MVT::i32, ++/*186241*/ OPC_MoveParent, ++/*186242*/ OPC_MoveChild, 11, ++/*186244*/ OPC_CheckInteger, 1, ++/*186246*/ OPC_CheckType, MVT::i32, ++/*186248*/ OPC_MoveParent, ++/*186249*/ OPC_MoveChild, 12, ++/*186251*/ OPC_CheckInteger, 1, ++/*186253*/ OPC_CheckType, MVT::i32, ++/*186255*/ OPC_MoveParent, ++/*186256*/ OPC_MoveChild, 13, ++/*186258*/ OPC_CheckInteger, 1, ++/*186260*/ OPC_CheckType, MVT::i32, ++/*186262*/ OPC_MoveParent, ++/*186263*/ OPC_MoveChild, 14, ++/*186265*/ OPC_CheckInteger, 1, ++/*186267*/ OPC_CheckType, MVT::i32, ++/*186269*/ OPC_MoveParent, ++/*186270*/ OPC_MoveChild, 15, ++/*186272*/ OPC_CheckInteger, 1, ++/*186274*/ OPC_CheckType, MVT::i32, ++/*186276*/ OPC_MoveParent, ++/*186277*/ OPC_MoveParent, ++/*186278*/ OPC_MoveParent, ++/*186279*/ OPC_MoveParent, ++/*186280*/ OPC_MoveChild1, ++/*186281*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*186284*/ OPC_CheckChild0Integer, 7, ++/*186286*/ OPC_CheckChild0Type, MVT::i32, ++/*186288*/ OPC_CheckChild1Integer, 7, ++/*186290*/ OPC_CheckChild1Type, MVT::i32, ++/*186292*/ OPC_CheckChild2Integer, 7, ++/*186294*/ OPC_CheckChild2Type, MVT::i32, ++/*186296*/ OPC_CheckChild3Integer, 7, ++/*186298*/ OPC_CheckChild3Type, MVT::i32, ++/*186300*/ OPC_CheckChild4Integer, 7, ++/*186302*/ OPC_CheckChild4Type, MVT::i32, ++/*186304*/ OPC_MoveChild5, ++/*186305*/ OPC_CheckInteger, 7, ++/*186307*/ OPC_CheckType, MVT::i32, ++/*186309*/ OPC_MoveParent, ++/*186310*/ OPC_MoveChild6, ++/*186311*/ OPC_CheckInteger, 7, ++/*186313*/ OPC_CheckType, MVT::i32, ++/*186315*/ OPC_MoveParent, ++/*186316*/ OPC_MoveChild7, ++/*186317*/ OPC_CheckInteger, 7, ++/*186319*/ OPC_CheckType, MVT::i32, ++/*186321*/ OPC_MoveParent, ++/*186322*/ OPC_MoveChild, 8, ++/*186324*/ OPC_CheckInteger, 7, ++/*186326*/ OPC_CheckType, MVT::i32, ++/*186328*/ OPC_MoveParent, ++/*186329*/ OPC_MoveChild, 9, ++/*186331*/ OPC_CheckInteger, 7, ++/*186333*/ OPC_CheckType, MVT::i32, ++/*186335*/ OPC_MoveParent, ++/*186336*/ OPC_MoveChild, 10, ++/*186338*/ OPC_CheckInteger, 7, ++/*186340*/ OPC_CheckType, MVT::i32, ++/*186342*/ OPC_MoveParent, ++/*186343*/ OPC_MoveChild, 11, ++/*186345*/ OPC_CheckInteger, 7, ++/*186347*/ OPC_CheckType, MVT::i32, ++/*186349*/ OPC_MoveParent, ++/*186350*/ OPC_MoveChild, 12, ++/*186352*/ OPC_CheckInteger, 7, ++/*186354*/ OPC_CheckType, MVT::i32, ++/*186356*/ OPC_MoveParent, ++/*186357*/ OPC_MoveChild, 13, ++/*186359*/ OPC_CheckInteger, 7, ++/*186361*/ OPC_CheckType, MVT::i32, ++/*186363*/ OPC_MoveParent, ++/*186364*/ OPC_MoveChild, 14, ++/*186366*/ OPC_CheckInteger, 7, ++/*186368*/ OPC_CheckType, MVT::i32, ++/*186370*/ OPC_MoveParent, ++/*186371*/ OPC_MoveChild, 15, ++/*186373*/ OPC_CheckInteger, 7, ++/*186375*/ OPC_CheckType, MVT::i32, ++/*186377*/ OPC_MoveParent, ++/*186378*/ OPC_CheckType, MVT::v16i8, ++/*186380*/ OPC_MoveParent, ++/*186381*/ OPC_MoveParent, ++/*186382*/ OPC_MoveParent, ++/*186383*/ OPC_MoveChild1, ++/*186384*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*186387*/ OPC_CheckChild0Integer, 1, ++/*186389*/ OPC_CheckChild0Type, MVT::i32, ++/*186391*/ OPC_CheckChild1Integer, 1, ++/*186393*/ OPC_CheckChild1Type, MVT::i32, ++/*186395*/ OPC_CheckChild2Integer, 1, ++/*186397*/ OPC_CheckChild2Type, MVT::i32, ++/*186399*/ OPC_CheckChild3Integer, 1, ++/*186401*/ OPC_CheckChild3Type, MVT::i32, ++/*186403*/ OPC_CheckChild4Integer, 1, ++/*186405*/ OPC_CheckChild4Type, MVT::i32, ++/*186407*/ OPC_MoveChild5, ++/*186408*/ OPC_CheckInteger, 1, ++/*186410*/ OPC_CheckType, MVT::i32, ++/*186412*/ OPC_MoveParent, ++/*186413*/ OPC_MoveChild6, ++/*186414*/ OPC_CheckInteger, 1, ++/*186416*/ OPC_CheckType, MVT::i32, ++/*186418*/ OPC_MoveParent, ++/*186419*/ OPC_MoveChild7, ++/*186420*/ OPC_CheckInteger, 1, ++/*186422*/ OPC_CheckType, MVT::i32, ++/*186424*/ OPC_MoveParent, ++/*186425*/ OPC_MoveChild, 8, ++/*186427*/ OPC_CheckInteger, 1, ++/*186429*/ OPC_CheckType, MVT::i32, ++/*186431*/ OPC_MoveParent, ++/*186432*/ OPC_MoveChild, 9, ++/*186434*/ OPC_CheckInteger, 1, ++/*186436*/ OPC_CheckType, MVT::i32, ++/*186438*/ OPC_MoveParent, ++/*186439*/ OPC_MoveChild, 10, ++/*186441*/ OPC_CheckInteger, 1, ++/*186443*/ OPC_CheckType, MVT::i32, ++/*186445*/ OPC_MoveParent, ++/*186446*/ OPC_MoveChild, 11, ++/*186448*/ OPC_CheckInteger, 1, ++/*186450*/ OPC_CheckType, MVT::i32, ++/*186452*/ OPC_MoveParent, ++/*186453*/ OPC_MoveChild, 12, ++/*186455*/ OPC_CheckInteger, 1, ++/*186457*/ OPC_CheckType, MVT::i32, ++/*186459*/ OPC_MoveParent, ++/*186460*/ OPC_MoveChild, 13, ++/*186462*/ OPC_CheckInteger, 1, ++/*186464*/ OPC_CheckType, MVT::i32, ++/*186466*/ OPC_MoveParent, ++/*186467*/ OPC_MoveChild, 14, ++/*186469*/ OPC_CheckInteger, 1, ++/*186471*/ OPC_CheckType, MVT::i32, ++/*186473*/ OPC_MoveParent, ++/*186474*/ OPC_MoveChild, 15, ++/*186476*/ OPC_CheckInteger, 1, ++/*186478*/ OPC_CheckType, MVT::i32, ++/*186480*/ OPC_MoveParent, ++/*186481*/ OPC_CheckType, MVT::v16i8, ++/*186483*/ OPC_MoveParent, ++/*186484*/ OPC_CheckType, MVT::v16i8, ++/*186486*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*186488*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b), LSX128B:{ *:[v16i8] }:$a), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*186496*/ 0, /*End of Scope*/ ++/*186497*/ /*Scope*/ 10|128,5/*650*/, /*->187149*/ ++/*186499*/ OPC_CheckChild0Same, 1, ++/*186501*/ OPC_MoveChild1, ++/*186502*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*186505*/ OPC_Scope, 63|128,2/*319*/, /*->186827*/ // 2 children in Scope ++/*186508*/ OPC_MoveChild0, ++/*186509*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*186512*/ OPC_CheckChild0Integer, 1, ++/*186514*/ OPC_CheckChild0Type, MVT::i32, ++/*186516*/ OPC_CheckChild1Integer, 1, ++/*186518*/ OPC_CheckChild1Type, MVT::i32, ++/*186520*/ OPC_CheckChild2Integer, 1, ++/*186522*/ OPC_CheckChild2Type, MVT::i32, ++/*186524*/ OPC_CheckChild3Integer, 1, ++/*186526*/ OPC_CheckChild3Type, MVT::i32, ++/*186528*/ OPC_CheckChild4Integer, 1, ++/*186530*/ OPC_CheckChild4Type, MVT::i32, ++/*186532*/ OPC_MoveChild5, ++/*186533*/ OPC_CheckInteger, 1, ++/*186535*/ OPC_CheckType, MVT::i32, ++/*186537*/ OPC_MoveParent, ++/*186538*/ OPC_MoveChild6, ++/*186539*/ OPC_CheckInteger, 1, ++/*186541*/ OPC_CheckType, MVT::i32, ++/*186543*/ OPC_MoveParent, ++/*186544*/ OPC_MoveChild7, ++/*186545*/ OPC_CheckInteger, 1, ++/*186547*/ OPC_CheckType, MVT::i32, ++/*186549*/ OPC_MoveParent, ++/*186550*/ OPC_MoveChild, 8, ++/*186552*/ OPC_CheckInteger, 1, ++/*186554*/ OPC_CheckType, MVT::i32, ++/*186556*/ OPC_MoveParent, ++/*186557*/ OPC_MoveChild, 9, ++/*186559*/ OPC_CheckInteger, 1, ++/*186561*/ OPC_CheckType, MVT::i32, ++/*186563*/ OPC_MoveParent, ++/*186564*/ OPC_MoveChild, 10, ++/*186566*/ OPC_CheckInteger, 1, ++/*186568*/ OPC_CheckType, MVT::i32, ++/*186570*/ OPC_MoveParent, ++/*186571*/ OPC_MoveChild, 11, ++/*186573*/ OPC_CheckInteger, 1, ++/*186575*/ OPC_CheckType, MVT::i32, ++/*186577*/ OPC_MoveParent, ++/*186578*/ OPC_MoveChild, 12, ++/*186580*/ OPC_CheckInteger, 1, ++/*186582*/ OPC_CheckType, MVT::i32, ++/*186584*/ OPC_MoveParent, ++/*186585*/ OPC_MoveChild, 13, ++/*186587*/ OPC_CheckInteger, 1, ++/*186589*/ OPC_CheckType, MVT::i32, ++/*186591*/ OPC_MoveParent, ++/*186592*/ OPC_MoveChild, 14, ++/*186594*/ OPC_CheckInteger, 1, ++/*186596*/ OPC_CheckType, MVT::i32, ++/*186598*/ OPC_MoveParent, ++/*186599*/ OPC_MoveChild, 15, ++/*186601*/ OPC_CheckInteger, 1, ++/*186603*/ OPC_CheckType, MVT::i32, ++/*186605*/ OPC_MoveParent, ++/*186606*/ OPC_MoveParent, ++/*186607*/ OPC_CheckChild1Same, 0, ++/*186609*/ OPC_MoveParent, ++/*186610*/ OPC_MoveParent, ++/*186611*/ OPC_MoveChild1, ++/*186612*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*186615*/ OPC_CheckChild0Integer, 7, ++/*186617*/ OPC_CheckChild0Type, MVT::i32, ++/*186619*/ OPC_CheckChild1Integer, 7, ++/*186621*/ OPC_CheckChild1Type, MVT::i32, ++/*186623*/ OPC_CheckChild2Integer, 7, ++/*186625*/ OPC_CheckChild2Type, MVT::i32, ++/*186627*/ OPC_CheckChild3Integer, 7, ++/*186629*/ OPC_CheckChild3Type, MVT::i32, ++/*186631*/ OPC_CheckChild4Integer, 7, ++/*186633*/ OPC_CheckChild4Type, MVT::i32, ++/*186635*/ OPC_MoveChild5, ++/*186636*/ OPC_CheckInteger, 7, ++/*186638*/ OPC_CheckType, MVT::i32, ++/*186640*/ OPC_MoveParent, ++/*186641*/ OPC_MoveChild6, ++/*186642*/ OPC_CheckInteger, 7, ++/*186644*/ OPC_CheckType, MVT::i32, ++/*186646*/ OPC_MoveParent, ++/*186647*/ OPC_MoveChild7, ++/*186648*/ OPC_CheckInteger, 7, ++/*186650*/ OPC_CheckType, MVT::i32, ++/*186652*/ OPC_MoveParent, ++/*186653*/ OPC_MoveChild, 8, ++/*186655*/ OPC_CheckInteger, 7, ++/*186657*/ OPC_CheckType, MVT::i32, ++/*186659*/ OPC_MoveParent, ++/*186660*/ OPC_MoveChild, 9, ++/*186662*/ OPC_CheckInteger, 7, ++/*186664*/ OPC_CheckType, MVT::i32, ++/*186666*/ OPC_MoveParent, ++/*186667*/ OPC_MoveChild, 10, ++/*186669*/ OPC_CheckInteger, 7, ++/*186671*/ OPC_CheckType, MVT::i32, ++/*186673*/ OPC_MoveParent, ++/*186674*/ OPC_MoveChild, 11, ++/*186676*/ OPC_CheckInteger, 7, ++/*186678*/ OPC_CheckType, MVT::i32, ++/*186680*/ OPC_MoveParent, ++/*186681*/ OPC_MoveChild, 12, ++/*186683*/ OPC_CheckInteger, 7, ++/*186685*/ OPC_CheckType, MVT::i32, ++/*186687*/ OPC_MoveParent, ++/*186688*/ OPC_MoveChild, 13, ++/*186690*/ OPC_CheckInteger, 7, ++/*186692*/ OPC_CheckType, MVT::i32, ++/*186694*/ OPC_MoveParent, ++/*186695*/ OPC_MoveChild, 14, ++/*186697*/ OPC_CheckInteger, 7, ++/*186699*/ OPC_CheckType, MVT::i32, ++/*186701*/ OPC_MoveParent, ++/*186702*/ OPC_MoveChild, 15, ++/*186704*/ OPC_CheckInteger, 7, ++/*186706*/ OPC_CheckType, MVT::i32, ++/*186708*/ OPC_MoveParent, ++/*186709*/ OPC_CheckType, MVT::v16i8, ++/*186711*/ OPC_MoveParent, ++/*186712*/ OPC_MoveParent, ++/*186713*/ OPC_MoveParent, ++/*186714*/ OPC_MoveChild1, ++/*186715*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*186718*/ OPC_CheckChild0Integer, 1, ++/*186720*/ OPC_CheckChild0Type, MVT::i32, ++/*186722*/ OPC_CheckChild1Integer, 1, ++/*186724*/ OPC_CheckChild1Type, MVT::i32, ++/*186726*/ OPC_CheckChild2Integer, 1, ++/*186728*/ OPC_CheckChild2Type, MVT::i32, ++/*186730*/ OPC_CheckChild3Integer, 1, ++/*186732*/ OPC_CheckChild3Type, MVT::i32, ++/*186734*/ OPC_CheckChild4Integer, 1, ++/*186736*/ OPC_CheckChild4Type, MVT::i32, ++/*186738*/ OPC_MoveChild5, ++/*186739*/ OPC_CheckInteger, 1, ++/*186741*/ OPC_CheckType, MVT::i32, ++/*186743*/ OPC_MoveParent, ++/*186744*/ OPC_MoveChild6, ++/*186745*/ OPC_CheckInteger, 1, ++/*186747*/ OPC_CheckType, MVT::i32, ++/*186749*/ OPC_MoveParent, ++/*186750*/ OPC_MoveChild7, ++/*186751*/ OPC_CheckInteger, 1, ++/*186753*/ OPC_CheckType, MVT::i32, ++/*186755*/ OPC_MoveParent, ++/*186756*/ OPC_MoveChild, 8, ++/*186758*/ OPC_CheckInteger, 1, ++/*186760*/ OPC_CheckType, MVT::i32, ++/*186762*/ OPC_MoveParent, ++/*186763*/ OPC_MoveChild, 9, ++/*186765*/ OPC_CheckInteger, 1, ++/*186767*/ OPC_CheckType, MVT::i32, ++/*186769*/ OPC_MoveParent, ++/*186770*/ OPC_MoveChild, 10, ++/*186772*/ OPC_CheckInteger, 1, ++/*186774*/ OPC_CheckType, MVT::i32, ++/*186776*/ OPC_MoveParent, ++/*186777*/ OPC_MoveChild, 11, ++/*186779*/ OPC_CheckInteger, 1, ++/*186781*/ OPC_CheckType, MVT::i32, ++/*186783*/ OPC_MoveParent, ++/*186784*/ OPC_MoveChild, 12, ++/*186786*/ OPC_CheckInteger, 1, ++/*186788*/ OPC_CheckType, MVT::i32, ++/*186790*/ OPC_MoveParent, ++/*186791*/ OPC_MoveChild, 13, ++/*186793*/ OPC_CheckInteger, 1, ++/*186795*/ OPC_CheckType, MVT::i32, ++/*186797*/ OPC_MoveParent, ++/*186798*/ OPC_MoveChild, 14, ++/*186800*/ OPC_CheckInteger, 1, ++/*186802*/ OPC_CheckType, MVT::i32, ++/*186804*/ OPC_MoveParent, ++/*186805*/ OPC_MoveChild, 15, ++/*186807*/ OPC_CheckInteger, 1, ++/*186809*/ OPC_CheckType, MVT::i32, ++/*186811*/ OPC_MoveParent, ++/*186812*/ OPC_CheckType, MVT::v16i8, ++/*186814*/ OPC_MoveParent, ++/*186815*/ OPC_CheckType, MVT::v16i8, ++/*186817*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*186819*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b), LSX128B:{ *:[v16i8] }:$a), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*186827*/ /*Scope*/ 63|128,2/*319*/, /*->187148*/ ++/*186829*/ OPC_CheckChild0Same, 0, ++/*186831*/ OPC_MoveChild1, ++/*186832*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*186835*/ OPC_CheckChild0Integer, 1, ++/*186837*/ OPC_CheckChild0Type, MVT::i32, ++/*186839*/ OPC_CheckChild1Integer, 1, ++/*186841*/ OPC_CheckChild1Type, MVT::i32, ++/*186843*/ OPC_CheckChild2Integer, 1, ++/*186845*/ OPC_CheckChild2Type, MVT::i32, ++/*186847*/ OPC_CheckChild3Integer, 1, ++/*186849*/ OPC_CheckChild3Type, MVT::i32, ++/*186851*/ OPC_CheckChild4Integer, 1, ++/*186853*/ OPC_CheckChild4Type, MVT::i32, ++/*186855*/ OPC_MoveChild5, ++/*186856*/ OPC_CheckInteger, 1, ++/*186858*/ OPC_CheckType, MVT::i32, ++/*186860*/ OPC_MoveParent, ++/*186861*/ OPC_MoveChild6, ++/*186862*/ OPC_CheckInteger, 1, ++/*186864*/ OPC_CheckType, MVT::i32, ++/*186866*/ OPC_MoveParent, ++/*186867*/ OPC_MoveChild7, ++/*186868*/ OPC_CheckInteger, 1, ++/*186870*/ OPC_CheckType, MVT::i32, ++/*186872*/ OPC_MoveParent, ++/*186873*/ OPC_MoveChild, 8, ++/*186875*/ OPC_CheckInteger, 1, ++/*186877*/ OPC_CheckType, MVT::i32, ++/*186879*/ OPC_MoveParent, ++/*186880*/ OPC_MoveChild, 9, ++/*186882*/ OPC_CheckInteger, 1, ++/*186884*/ OPC_CheckType, MVT::i32, ++/*186886*/ OPC_MoveParent, ++/*186887*/ OPC_MoveChild, 10, ++/*186889*/ OPC_CheckInteger, 1, ++/*186891*/ OPC_CheckType, MVT::i32, ++/*186893*/ OPC_MoveParent, ++/*186894*/ OPC_MoveChild, 11, ++/*186896*/ OPC_CheckInteger, 1, ++/*186898*/ OPC_CheckType, MVT::i32, ++/*186900*/ OPC_MoveParent, ++/*186901*/ OPC_MoveChild, 12, ++/*186903*/ OPC_CheckInteger, 1, ++/*186905*/ OPC_CheckType, MVT::i32, ++/*186907*/ OPC_MoveParent, ++/*186908*/ OPC_MoveChild, 13, ++/*186910*/ OPC_CheckInteger, 1, ++/*186912*/ OPC_CheckType, MVT::i32, ++/*186914*/ OPC_MoveParent, ++/*186915*/ OPC_MoveChild, 14, ++/*186917*/ OPC_CheckInteger, 1, ++/*186919*/ OPC_CheckType, MVT::i32, ++/*186921*/ OPC_MoveParent, ++/*186922*/ OPC_MoveChild, 15, ++/*186924*/ OPC_CheckInteger, 1, ++/*186926*/ OPC_CheckType, MVT::i32, ++/*186928*/ OPC_MoveParent, ++/*186929*/ OPC_MoveParent, ++/*186930*/ OPC_MoveParent, ++/*186931*/ OPC_MoveParent, ++/*186932*/ OPC_MoveChild1, ++/*186933*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*186936*/ OPC_CheckChild0Integer, 7, ++/*186938*/ OPC_CheckChild0Type, MVT::i32, ++/*186940*/ OPC_CheckChild1Integer, 7, ++/*186942*/ OPC_CheckChild1Type, MVT::i32, ++/*186944*/ OPC_CheckChild2Integer, 7, ++/*186946*/ OPC_CheckChild2Type, MVT::i32, ++/*186948*/ OPC_CheckChild3Integer, 7, ++/*186950*/ OPC_CheckChild3Type, MVT::i32, ++/*186952*/ OPC_CheckChild4Integer, 7, ++/*186954*/ OPC_CheckChild4Type, MVT::i32, ++/*186956*/ OPC_MoveChild5, ++/*186957*/ OPC_CheckInteger, 7, ++/*186959*/ OPC_CheckType, MVT::i32, ++/*186961*/ OPC_MoveParent, ++/*186962*/ OPC_MoveChild6, ++/*186963*/ OPC_CheckInteger, 7, ++/*186965*/ OPC_CheckType, MVT::i32, ++/*186967*/ OPC_MoveParent, ++/*186968*/ OPC_MoveChild7, ++/*186969*/ OPC_CheckInteger, 7, ++/*186971*/ OPC_CheckType, MVT::i32, ++/*186973*/ OPC_MoveParent, ++/*186974*/ OPC_MoveChild, 8, ++/*186976*/ OPC_CheckInteger, 7, ++/*186978*/ OPC_CheckType, MVT::i32, ++/*186980*/ OPC_MoveParent, ++/*186981*/ OPC_MoveChild, 9, ++/*186983*/ OPC_CheckInteger, 7, ++/*186985*/ OPC_CheckType, MVT::i32, ++/*186987*/ OPC_MoveParent, ++/*186988*/ OPC_MoveChild, 10, ++/*186990*/ OPC_CheckInteger, 7, ++/*186992*/ OPC_CheckType, MVT::i32, ++/*186994*/ OPC_MoveParent, ++/*186995*/ OPC_MoveChild, 11, ++/*186997*/ OPC_CheckInteger, 7, ++/*186999*/ OPC_CheckType, MVT::i32, ++/*187001*/ OPC_MoveParent, ++/*187002*/ OPC_MoveChild, 12, ++/*187004*/ OPC_CheckInteger, 7, ++/*187006*/ OPC_CheckType, MVT::i32, ++/*187008*/ OPC_MoveParent, ++/*187009*/ OPC_MoveChild, 13, ++/*187011*/ OPC_CheckInteger, 7, ++/*187013*/ OPC_CheckType, MVT::i32, ++/*187015*/ OPC_MoveParent, ++/*187016*/ OPC_MoveChild, 14, ++/*187018*/ OPC_CheckInteger, 7, ++/*187020*/ OPC_CheckType, MVT::i32, ++/*187022*/ OPC_MoveParent, ++/*187023*/ OPC_MoveChild, 15, ++/*187025*/ OPC_CheckInteger, 7, ++/*187027*/ OPC_CheckType, MVT::i32, ++/*187029*/ OPC_MoveParent, ++/*187030*/ OPC_CheckType, MVT::v16i8, ++/*187032*/ OPC_MoveParent, ++/*187033*/ OPC_MoveParent, ++/*187034*/ OPC_MoveParent, ++/*187035*/ OPC_MoveChild1, ++/*187036*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*187039*/ OPC_CheckChild0Integer, 1, ++/*187041*/ OPC_CheckChild0Type, MVT::i32, ++/*187043*/ OPC_CheckChild1Integer, 1, ++/*187045*/ OPC_CheckChild1Type, MVT::i32, ++/*187047*/ OPC_CheckChild2Integer, 1, ++/*187049*/ OPC_CheckChild2Type, MVT::i32, ++/*187051*/ OPC_CheckChild3Integer, 1, ++/*187053*/ OPC_CheckChild3Type, MVT::i32, ++/*187055*/ OPC_CheckChild4Integer, 1, ++/*187057*/ OPC_CheckChild4Type, MVT::i32, ++/*187059*/ OPC_MoveChild5, ++/*187060*/ OPC_CheckInteger, 1, ++/*187062*/ OPC_CheckType, MVT::i32, ++/*187064*/ OPC_MoveParent, ++/*187065*/ OPC_MoveChild6, ++/*187066*/ OPC_CheckInteger, 1, ++/*187068*/ OPC_CheckType, MVT::i32, ++/*187070*/ OPC_MoveParent, ++/*187071*/ OPC_MoveChild7, ++/*187072*/ OPC_CheckInteger, 1, ++/*187074*/ OPC_CheckType, MVT::i32, ++/*187076*/ OPC_MoveParent, ++/*187077*/ OPC_MoveChild, 8, ++/*187079*/ OPC_CheckInteger, 1, ++/*187081*/ OPC_CheckType, MVT::i32, ++/*187083*/ OPC_MoveParent, ++/*187084*/ OPC_MoveChild, 9, ++/*187086*/ OPC_CheckInteger, 1, ++/*187088*/ OPC_CheckType, MVT::i32, ++/*187090*/ OPC_MoveParent, ++/*187091*/ OPC_MoveChild, 10, ++/*187093*/ OPC_CheckInteger, 1, ++/*187095*/ OPC_CheckType, MVT::i32, ++/*187097*/ OPC_MoveParent, ++/*187098*/ OPC_MoveChild, 11, ++/*187100*/ OPC_CheckInteger, 1, ++/*187102*/ OPC_CheckType, MVT::i32, ++/*187104*/ OPC_MoveParent, ++/*187105*/ OPC_MoveChild, 12, ++/*187107*/ OPC_CheckInteger, 1, ++/*187109*/ OPC_CheckType, MVT::i32, ++/*187111*/ OPC_MoveParent, ++/*187112*/ OPC_MoveChild, 13, ++/*187114*/ OPC_CheckInteger, 1, ++/*187116*/ OPC_CheckType, MVT::i32, ++/*187118*/ OPC_MoveParent, ++/*187119*/ OPC_MoveChild, 14, ++/*187121*/ OPC_CheckInteger, 1, ++/*187123*/ OPC_CheckType, MVT::i32, ++/*187125*/ OPC_MoveParent, ++/*187126*/ OPC_MoveChild, 15, ++/*187128*/ OPC_CheckInteger, 1, ++/*187130*/ OPC_CheckType, MVT::i32, ++/*187132*/ OPC_MoveParent, ++/*187133*/ OPC_CheckType, MVT::v16i8, ++/*187135*/ OPC_MoveParent, ++/*187136*/ OPC_CheckType, MVT::v16i8, ++/*187138*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*187140*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b), LSX128B:{ *:[v16i8] }:$a), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*187148*/ 0, /*End of Scope*/ ++/*187149*/ /*Scope*/ 41|128,4/*553*/, /*->187704*/ ++/*187151*/ OPC_MoveChild0, ++/*187152*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*187155*/ OPC_CheckChild0Integer, 1, ++/*187157*/ OPC_CheckChild0Type, MVT::i32, ++/*187159*/ OPC_CheckChild1Integer, 1, ++/*187161*/ OPC_CheckChild1Type, MVT::i32, ++/*187163*/ OPC_CheckChild2Integer, 1, ++/*187165*/ OPC_CheckChild2Type, MVT::i32, ++/*187167*/ OPC_CheckChild3Integer, 1, ++/*187169*/ OPC_CheckChild3Type, MVT::i32, ++/*187171*/ OPC_CheckChild4Integer, 1, ++/*187173*/ OPC_CheckChild4Type, MVT::i32, ++/*187175*/ OPC_MoveChild5, ++/*187176*/ OPC_CheckInteger, 1, ++/*187178*/ OPC_CheckType, MVT::i32, ++/*187180*/ OPC_MoveParent, ++/*187181*/ OPC_MoveChild6, ++/*187182*/ OPC_CheckInteger, 1, ++/*187184*/ OPC_CheckType, MVT::i32, ++/*187186*/ OPC_MoveParent, ++/*187187*/ OPC_MoveChild7, ++/*187188*/ OPC_CheckInteger, 1, ++/*187190*/ OPC_CheckType, MVT::i32, ++/*187192*/ OPC_MoveParent, ++/*187193*/ OPC_MoveChild, 8, ++/*187195*/ OPC_CheckInteger, 1, ++/*187197*/ OPC_CheckType, MVT::i32, ++/*187199*/ OPC_MoveParent, ++/*187200*/ OPC_MoveChild, 9, ++/*187202*/ OPC_CheckInteger, 1, ++/*187204*/ OPC_CheckType, MVT::i32, ++/*187206*/ OPC_MoveParent, ++/*187207*/ OPC_MoveChild, 10, ++/*187209*/ OPC_CheckInteger, 1, ++/*187211*/ OPC_CheckType, MVT::i32, ++/*187213*/ OPC_MoveParent, ++/*187214*/ OPC_MoveChild, 11, ++/*187216*/ OPC_CheckInteger, 1, ++/*187218*/ OPC_CheckType, MVT::i32, ++/*187220*/ OPC_MoveParent, ++/*187221*/ OPC_MoveChild, 12, ++/*187223*/ OPC_CheckInteger, 1, ++/*187225*/ OPC_CheckType, MVT::i32, ++/*187227*/ OPC_MoveParent, ++/*187228*/ OPC_MoveChild, 13, ++/*187230*/ OPC_CheckInteger, 1, ++/*187232*/ OPC_CheckType, MVT::i32, ++/*187234*/ OPC_MoveParent, ++/*187235*/ OPC_MoveChild, 14, ++/*187237*/ OPC_CheckInteger, 1, ++/*187239*/ OPC_CheckType, MVT::i32, ++/*187241*/ OPC_MoveParent, ++/*187242*/ OPC_MoveChild, 15, ++/*187244*/ OPC_CheckInteger, 1, ++/*187246*/ OPC_CheckType, MVT::i32, ++/*187248*/ OPC_MoveParent, ++/*187249*/ OPC_MoveParent, ++/*187250*/ OPC_MoveChild1, ++/*187251*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*187254*/ OPC_Scope, 94|128,1/*222*/, /*->187479*/ // 2 children in Scope ++/*187257*/ OPC_CheckChild0Same, 1, ++/*187259*/ OPC_CheckChild1Same, 0, ++/*187261*/ OPC_MoveParent, ++/*187262*/ OPC_MoveParent, ++/*187263*/ OPC_MoveChild1, ++/*187264*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*187267*/ OPC_CheckChild0Integer, 7, ++/*187269*/ OPC_CheckChild0Type, MVT::i32, ++/*187271*/ OPC_CheckChild1Integer, 7, ++/*187273*/ OPC_CheckChild1Type, MVT::i32, ++/*187275*/ OPC_CheckChild2Integer, 7, ++/*187277*/ OPC_CheckChild2Type, MVT::i32, ++/*187279*/ OPC_CheckChild3Integer, 7, ++/*187281*/ OPC_CheckChild3Type, MVT::i32, ++/*187283*/ OPC_CheckChild4Integer, 7, ++/*187285*/ OPC_CheckChild4Type, MVT::i32, ++/*187287*/ OPC_MoveChild5, ++/*187288*/ OPC_CheckInteger, 7, ++/*187290*/ OPC_CheckType, MVT::i32, ++/*187292*/ OPC_MoveParent, ++/*187293*/ OPC_MoveChild6, ++/*187294*/ OPC_CheckInteger, 7, ++/*187296*/ OPC_CheckType, MVT::i32, ++/*187298*/ OPC_MoveParent, ++/*187299*/ OPC_MoveChild7, ++/*187300*/ OPC_CheckInteger, 7, ++/*187302*/ OPC_CheckType, MVT::i32, ++/*187304*/ OPC_MoveParent, ++/*187305*/ OPC_MoveChild, 8, ++/*187307*/ OPC_CheckInteger, 7, ++/*187309*/ OPC_CheckType, MVT::i32, ++/*187311*/ OPC_MoveParent, ++/*187312*/ OPC_MoveChild, 9, ++/*187314*/ OPC_CheckInteger, 7, ++/*187316*/ OPC_CheckType, MVT::i32, ++/*187318*/ OPC_MoveParent, ++/*187319*/ OPC_MoveChild, 10, ++/*187321*/ OPC_CheckInteger, 7, ++/*187323*/ OPC_CheckType, MVT::i32, ++/*187325*/ OPC_MoveParent, ++/*187326*/ OPC_MoveChild, 11, ++/*187328*/ OPC_CheckInteger, 7, ++/*187330*/ OPC_CheckType, MVT::i32, ++/*187332*/ OPC_MoveParent, ++/*187333*/ OPC_MoveChild, 12, ++/*187335*/ OPC_CheckInteger, 7, ++/*187337*/ OPC_CheckType, MVT::i32, ++/*187339*/ OPC_MoveParent, ++/*187340*/ OPC_MoveChild, 13, ++/*187342*/ OPC_CheckInteger, 7, ++/*187344*/ OPC_CheckType, MVT::i32, ++/*187346*/ OPC_MoveParent, ++/*187347*/ OPC_MoveChild, 14, ++/*187349*/ OPC_CheckInteger, 7, ++/*187351*/ OPC_CheckType, MVT::i32, ++/*187353*/ OPC_MoveParent, ++/*187354*/ OPC_MoveChild, 15, ++/*187356*/ OPC_CheckInteger, 7, ++/*187358*/ OPC_CheckType, MVT::i32, ++/*187360*/ OPC_MoveParent, ++/*187361*/ OPC_CheckType, MVT::v16i8, ++/*187363*/ OPC_MoveParent, ++/*187364*/ OPC_MoveParent, ++/*187365*/ OPC_MoveParent, ++/*187366*/ OPC_MoveChild1, ++/*187367*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*187370*/ OPC_CheckChild0Integer, 1, ++/*187372*/ OPC_CheckChild0Type, MVT::i32, ++/*187374*/ OPC_CheckChild1Integer, 1, ++/*187376*/ OPC_CheckChild1Type, MVT::i32, ++/*187378*/ OPC_CheckChild2Integer, 1, ++/*187380*/ OPC_CheckChild2Type, MVT::i32, ++/*187382*/ OPC_CheckChild3Integer, 1, ++/*187384*/ OPC_CheckChild3Type, MVT::i32, ++/*187386*/ OPC_CheckChild4Integer, 1, ++/*187388*/ OPC_CheckChild4Type, MVT::i32, ++/*187390*/ OPC_MoveChild5, ++/*187391*/ OPC_CheckInteger, 1, ++/*187393*/ OPC_CheckType, MVT::i32, ++/*187395*/ OPC_MoveParent, ++/*187396*/ OPC_MoveChild6, ++/*187397*/ OPC_CheckInteger, 1, ++/*187399*/ OPC_CheckType, MVT::i32, ++/*187401*/ OPC_MoveParent, ++/*187402*/ OPC_MoveChild7, ++/*187403*/ OPC_CheckInteger, 1, ++/*187405*/ OPC_CheckType, MVT::i32, ++/*187407*/ OPC_MoveParent, ++/*187408*/ OPC_MoveChild, 8, ++/*187410*/ OPC_CheckInteger, 1, ++/*187412*/ OPC_CheckType, MVT::i32, ++/*187414*/ OPC_MoveParent, ++/*187415*/ OPC_MoveChild, 9, ++/*187417*/ OPC_CheckInteger, 1, ++/*187419*/ OPC_CheckType, MVT::i32, ++/*187421*/ OPC_MoveParent, ++/*187422*/ OPC_MoveChild, 10, ++/*187424*/ OPC_CheckInteger, 1, ++/*187426*/ OPC_CheckType, MVT::i32, ++/*187428*/ OPC_MoveParent, ++/*187429*/ OPC_MoveChild, 11, ++/*187431*/ OPC_CheckInteger, 1, ++/*187433*/ OPC_CheckType, MVT::i32, ++/*187435*/ OPC_MoveParent, ++/*187436*/ OPC_MoveChild, 12, ++/*187438*/ OPC_CheckInteger, 1, ++/*187440*/ OPC_CheckType, MVT::i32, ++/*187442*/ OPC_MoveParent, ++/*187443*/ OPC_MoveChild, 13, ++/*187445*/ OPC_CheckInteger, 1, ++/*187447*/ OPC_CheckType, MVT::i32, ++/*187449*/ OPC_MoveParent, ++/*187450*/ OPC_MoveChild, 14, ++/*187452*/ OPC_CheckInteger, 1, ++/*187454*/ OPC_CheckType, MVT::i32, ++/*187456*/ OPC_MoveParent, ++/*187457*/ OPC_MoveChild, 15, ++/*187459*/ OPC_CheckInteger, 1, ++/*187461*/ OPC_CheckType, MVT::i32, ++/*187463*/ OPC_MoveParent, ++/*187464*/ OPC_CheckType, MVT::v16i8, ++/*187466*/ OPC_MoveParent, ++/*187467*/ OPC_CheckType, MVT::v16i8, ++/*187469*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*187471*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b), LSX128B:{ *:[v16i8] }:$a), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*187479*/ /*Scope*/ 94|128,1/*222*/, /*->187703*/ ++/*187481*/ OPC_CheckChild0Same, 0, ++/*187483*/ OPC_CheckChild1Same, 1, ++/*187485*/ OPC_MoveParent, ++/*187486*/ OPC_MoveParent, ++/*187487*/ OPC_MoveChild1, ++/*187488*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*187491*/ OPC_CheckChild0Integer, 7, ++/*187493*/ OPC_CheckChild0Type, MVT::i32, ++/*187495*/ OPC_CheckChild1Integer, 7, ++/*187497*/ OPC_CheckChild1Type, MVT::i32, ++/*187499*/ OPC_CheckChild2Integer, 7, ++/*187501*/ OPC_CheckChild2Type, MVT::i32, ++/*187503*/ OPC_CheckChild3Integer, 7, ++/*187505*/ OPC_CheckChild3Type, MVT::i32, ++/*187507*/ OPC_CheckChild4Integer, 7, ++/*187509*/ OPC_CheckChild4Type, MVT::i32, ++/*187511*/ OPC_MoveChild5, ++/*187512*/ OPC_CheckInteger, 7, ++/*187514*/ OPC_CheckType, MVT::i32, ++/*187516*/ OPC_MoveParent, ++/*187517*/ OPC_MoveChild6, ++/*187518*/ OPC_CheckInteger, 7, ++/*187520*/ OPC_CheckType, MVT::i32, ++/*187522*/ OPC_MoveParent, ++/*187523*/ OPC_MoveChild7, ++/*187524*/ OPC_CheckInteger, 7, ++/*187526*/ OPC_CheckType, MVT::i32, ++/*187528*/ OPC_MoveParent, ++/*187529*/ OPC_MoveChild, 8, ++/*187531*/ OPC_CheckInteger, 7, ++/*187533*/ OPC_CheckType, MVT::i32, ++/*187535*/ OPC_MoveParent, ++/*187536*/ OPC_MoveChild, 9, ++/*187538*/ OPC_CheckInteger, 7, ++/*187540*/ OPC_CheckType, MVT::i32, ++/*187542*/ OPC_MoveParent, ++/*187543*/ OPC_MoveChild, 10, ++/*187545*/ OPC_CheckInteger, 7, ++/*187547*/ OPC_CheckType, MVT::i32, ++/*187549*/ OPC_MoveParent, ++/*187550*/ OPC_MoveChild, 11, ++/*187552*/ OPC_CheckInteger, 7, ++/*187554*/ OPC_CheckType, MVT::i32, ++/*187556*/ OPC_MoveParent, ++/*187557*/ OPC_MoveChild, 12, ++/*187559*/ OPC_CheckInteger, 7, ++/*187561*/ OPC_CheckType, MVT::i32, ++/*187563*/ OPC_MoveParent, ++/*187564*/ OPC_MoveChild, 13, ++/*187566*/ OPC_CheckInteger, 7, ++/*187568*/ OPC_CheckType, MVT::i32, ++/*187570*/ OPC_MoveParent, ++/*187571*/ OPC_MoveChild, 14, ++/*187573*/ OPC_CheckInteger, 7, ++/*187575*/ OPC_CheckType, MVT::i32, ++/*187577*/ OPC_MoveParent, ++/*187578*/ OPC_MoveChild, 15, ++/*187580*/ OPC_CheckInteger, 7, ++/*187582*/ OPC_CheckType, MVT::i32, ++/*187584*/ OPC_MoveParent, ++/*187585*/ OPC_CheckType, MVT::v16i8, ++/*187587*/ OPC_MoveParent, ++/*187588*/ OPC_MoveParent, ++/*187589*/ OPC_MoveParent, ++/*187590*/ OPC_MoveChild1, ++/*187591*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*187594*/ OPC_CheckChild0Integer, 1, ++/*187596*/ OPC_CheckChild0Type, MVT::i32, ++/*187598*/ OPC_CheckChild1Integer, 1, ++/*187600*/ OPC_CheckChild1Type, MVT::i32, ++/*187602*/ OPC_CheckChild2Integer, 1, ++/*187604*/ OPC_CheckChild2Type, MVT::i32, ++/*187606*/ OPC_CheckChild3Integer, 1, ++/*187608*/ OPC_CheckChild3Type, MVT::i32, ++/*187610*/ OPC_CheckChild4Integer, 1, ++/*187612*/ OPC_CheckChild4Type, MVT::i32, ++/*187614*/ OPC_MoveChild5, ++/*187615*/ OPC_CheckInteger, 1, ++/*187617*/ OPC_CheckType, MVT::i32, ++/*187619*/ OPC_MoveParent, ++/*187620*/ OPC_MoveChild6, ++/*187621*/ OPC_CheckInteger, 1, ++/*187623*/ OPC_CheckType, MVT::i32, ++/*187625*/ OPC_MoveParent, ++/*187626*/ OPC_MoveChild7, ++/*187627*/ OPC_CheckInteger, 1, ++/*187629*/ OPC_CheckType, MVT::i32, ++/*187631*/ OPC_MoveParent, ++/*187632*/ OPC_MoveChild, 8, ++/*187634*/ OPC_CheckInteger, 1, ++/*187636*/ OPC_CheckType, MVT::i32, ++/*187638*/ OPC_MoveParent, ++/*187639*/ OPC_MoveChild, 9, ++/*187641*/ OPC_CheckInteger, 1, ++/*187643*/ OPC_CheckType, MVT::i32, ++/*187645*/ OPC_MoveParent, ++/*187646*/ OPC_MoveChild, 10, ++/*187648*/ OPC_CheckInteger, 1, ++/*187650*/ OPC_CheckType, MVT::i32, ++/*187652*/ OPC_MoveParent, ++/*187653*/ OPC_MoveChild, 11, ++/*187655*/ OPC_CheckInteger, 1, ++/*187657*/ OPC_CheckType, MVT::i32, ++/*187659*/ OPC_MoveParent, ++/*187660*/ OPC_MoveChild, 12, ++/*187662*/ OPC_CheckInteger, 1, ++/*187664*/ OPC_CheckType, MVT::i32, ++/*187666*/ OPC_MoveParent, ++/*187667*/ OPC_MoveChild, 13, ++/*187669*/ OPC_CheckInteger, 1, ++/*187671*/ OPC_CheckType, MVT::i32, ++/*187673*/ OPC_MoveParent, ++/*187674*/ OPC_MoveChild, 14, ++/*187676*/ OPC_CheckInteger, 1, ++/*187678*/ OPC_CheckType, MVT::i32, ++/*187680*/ OPC_MoveParent, ++/*187681*/ OPC_MoveChild, 15, ++/*187683*/ OPC_CheckInteger, 1, ++/*187685*/ OPC_CheckType, MVT::i32, ++/*187687*/ OPC_MoveParent, ++/*187688*/ OPC_CheckType, MVT::v16i8, ++/*187690*/ OPC_MoveParent, ++/*187691*/ OPC_CheckType, MVT::v16i8, ++/*187693*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*187695*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b), LSX128B:{ *:[v16i8] }:$a), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*187703*/ 0, /*End of Scope*/ ++/*187704*/ 0, /*End of Scope*/ ++/*187705*/ /*Scope*/ 127|128,90/*11647*/, /*->199354*/ ++/*187707*/ OPC_RecordChild0, // #0 = $b ++/*187708*/ OPC_Scope, 77|128,30/*3917*/, /*->191628*/ // 2 children in Scope ++/*187711*/ OPC_MoveChild1, ++/*187712*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*187715*/ OPC_CheckChild0Integer, 1, ++/*187717*/ OPC_CheckChild0Type, MVT::i32, ++/*187719*/ OPC_CheckChild1Integer, 1, ++/*187721*/ OPC_CheckChild1Type, MVT::i32, ++/*187723*/ OPC_CheckChild2Integer, 1, ++/*187725*/ OPC_CheckChild2Type, MVT::i32, ++/*187727*/ OPC_CheckChild3Integer, 1, ++/*187729*/ OPC_CheckChild3Type, MVT::i32, ++/*187731*/ OPC_CheckChild4Integer, 1, ++/*187733*/ OPC_CheckChild4Type, MVT::i32, ++/*187735*/ OPC_MoveChild5, ++/*187736*/ OPC_CheckInteger, 1, ++/*187738*/ OPC_CheckType, MVT::i32, ++/*187740*/ OPC_MoveParent, ++/*187741*/ OPC_MoveChild6, ++/*187742*/ OPC_CheckInteger, 1, ++/*187744*/ OPC_CheckType, MVT::i32, ++/*187746*/ OPC_MoveParent, ++/*187747*/ OPC_MoveChild7, ++/*187748*/ OPC_CheckInteger, 1, ++/*187750*/ OPC_CheckType, MVT::i32, ++/*187752*/ OPC_MoveParent, ++/*187753*/ OPC_MoveChild, 8, ++/*187755*/ OPC_CheckInteger, 1, ++/*187757*/ OPC_CheckType, MVT::i32, ++/*187759*/ OPC_MoveParent, ++/*187760*/ OPC_MoveChild, 9, ++/*187762*/ OPC_CheckInteger, 1, ++/*187764*/ OPC_CheckType, MVT::i32, ++/*187766*/ OPC_MoveParent, ++/*187767*/ OPC_MoveChild, 10, ++/*187769*/ OPC_CheckInteger, 1, ++/*187771*/ OPC_CheckType, MVT::i32, ++/*187773*/ OPC_MoveParent, ++/*187774*/ OPC_MoveChild, 11, ++/*187776*/ OPC_CheckInteger, 1, ++/*187778*/ OPC_CheckType, MVT::i32, ++/*187780*/ OPC_MoveParent, ++/*187781*/ OPC_MoveChild, 12, ++/*187783*/ OPC_CheckInteger, 1, ++/*187785*/ OPC_CheckType, MVT::i32, ++/*187787*/ OPC_MoveParent, ++/*187788*/ OPC_MoveChild, 13, ++/*187790*/ OPC_CheckInteger, 1, ++/*187792*/ OPC_CheckType, MVT::i32, ++/*187794*/ OPC_MoveParent, ++/*187795*/ OPC_MoveChild, 14, ++/*187797*/ OPC_CheckInteger, 1, ++/*187799*/ OPC_CheckType, MVT::i32, ++/*187801*/ OPC_MoveParent, ++/*187802*/ OPC_MoveChild, 15, ++/*187804*/ OPC_CheckInteger, 1, ++/*187806*/ OPC_CheckType, MVT::i32, ++/*187808*/ OPC_MoveParent, ++/*187809*/ OPC_MoveParent, ++/*187810*/ OPC_MoveParent, ++/*187811*/ OPC_RecordChild1, // #1 = $a ++/*187812*/ OPC_MoveParent, ++/*187813*/ OPC_MoveChild1, ++/*187814*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*187817*/ OPC_MoveChild0, ++/*187818*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*187821*/ OPC_Scope, 24|128,15/*1944*/, /*->189768*/ // 4 children in Scope ++/*187824*/ OPC_MoveChild0, ++/*187825*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*187828*/ OPC_Scope, 65|128,2/*321*/, /*->188152*/ // 6 children in Scope ++/*187831*/ OPC_MoveChild0, ++/*187832*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*187835*/ OPC_CheckChild0Integer, 1, ++/*187837*/ OPC_CheckChild0Type, MVT::i32, ++/*187839*/ OPC_CheckChild1Integer, 1, ++/*187841*/ OPC_CheckChild1Type, MVT::i32, ++/*187843*/ OPC_CheckChild2Integer, 1, ++/*187845*/ OPC_CheckChild2Type, MVT::i32, ++/*187847*/ OPC_CheckChild3Integer, 1, ++/*187849*/ OPC_CheckChild3Type, MVT::i32, ++/*187851*/ OPC_CheckChild4Integer, 1, ++/*187853*/ OPC_CheckChild4Type, MVT::i32, ++/*187855*/ OPC_MoveChild5, ++/*187856*/ OPC_CheckInteger, 1, ++/*187858*/ OPC_CheckType, MVT::i32, ++/*187860*/ OPC_MoveParent, ++/*187861*/ OPC_MoveChild6, ++/*187862*/ OPC_CheckInteger, 1, ++/*187864*/ OPC_CheckType, MVT::i32, ++/*187866*/ OPC_MoveParent, ++/*187867*/ OPC_MoveChild7, ++/*187868*/ OPC_CheckInteger, 1, ++/*187870*/ OPC_CheckType, MVT::i32, ++/*187872*/ OPC_MoveParent, ++/*187873*/ OPC_MoveChild, 8, ++/*187875*/ OPC_CheckInteger, 1, ++/*187877*/ OPC_CheckType, MVT::i32, ++/*187879*/ OPC_MoveParent, ++/*187880*/ OPC_MoveChild, 9, ++/*187882*/ OPC_CheckInteger, 1, ++/*187884*/ OPC_CheckType, MVT::i32, ++/*187886*/ OPC_MoveParent, ++/*187887*/ OPC_MoveChild, 10, ++/*187889*/ OPC_CheckInteger, 1, ++/*187891*/ OPC_CheckType, MVT::i32, ++/*187893*/ OPC_MoveParent, ++/*187894*/ OPC_MoveChild, 11, ++/*187896*/ OPC_CheckInteger, 1, ++/*187898*/ OPC_CheckType, MVT::i32, ++/*187900*/ OPC_MoveParent, ++/*187901*/ OPC_MoveChild, 12, ++/*187903*/ OPC_CheckInteger, 1, ++/*187905*/ OPC_CheckType, MVT::i32, ++/*187907*/ OPC_MoveParent, ++/*187908*/ OPC_MoveChild, 13, ++/*187910*/ OPC_CheckInteger, 1, ++/*187912*/ OPC_CheckType, MVT::i32, ++/*187914*/ OPC_MoveParent, ++/*187915*/ OPC_MoveChild, 14, ++/*187917*/ OPC_CheckInteger, 1, ++/*187919*/ OPC_CheckType, MVT::i32, ++/*187921*/ OPC_MoveParent, ++/*187922*/ OPC_MoveChild, 15, ++/*187924*/ OPC_CheckInteger, 1, ++/*187926*/ OPC_CheckType, MVT::i32, ++/*187928*/ OPC_MoveParent, ++/*187929*/ OPC_MoveParent, ++/*187930*/ OPC_CheckChild1Same, 1, ++/*187932*/ OPC_MoveParent, ++/*187933*/ OPC_CheckChild1Same, 0, ++/*187935*/ OPC_MoveParent, ++/*187936*/ OPC_MoveChild1, ++/*187937*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*187940*/ OPC_CheckChild0Integer, 7, ++/*187942*/ OPC_CheckChild0Type, MVT::i32, ++/*187944*/ OPC_CheckChild1Integer, 7, ++/*187946*/ OPC_CheckChild1Type, MVT::i32, ++/*187948*/ OPC_CheckChild2Integer, 7, ++/*187950*/ OPC_CheckChild2Type, MVT::i32, ++/*187952*/ OPC_CheckChild3Integer, 7, ++/*187954*/ OPC_CheckChild3Type, MVT::i32, ++/*187956*/ OPC_CheckChild4Integer, 7, ++/*187958*/ OPC_CheckChild4Type, MVT::i32, ++/*187960*/ OPC_MoveChild5, ++/*187961*/ OPC_CheckInteger, 7, ++/*187963*/ OPC_CheckType, MVT::i32, ++/*187965*/ OPC_MoveParent, ++/*187966*/ OPC_MoveChild6, ++/*187967*/ OPC_CheckInteger, 7, ++/*187969*/ OPC_CheckType, MVT::i32, ++/*187971*/ OPC_MoveParent, ++/*187972*/ OPC_MoveChild7, ++/*187973*/ OPC_CheckInteger, 7, ++/*187975*/ OPC_CheckType, MVT::i32, ++/*187977*/ OPC_MoveParent, ++/*187978*/ OPC_MoveChild, 8, ++/*187980*/ OPC_CheckInteger, 7, ++/*187982*/ OPC_CheckType, MVT::i32, ++/*187984*/ OPC_MoveParent, ++/*187985*/ OPC_MoveChild, 9, ++/*187987*/ OPC_CheckInteger, 7, ++/*187989*/ OPC_CheckType, MVT::i32, ++/*187991*/ OPC_MoveParent, ++/*187992*/ OPC_MoveChild, 10, ++/*187994*/ OPC_CheckInteger, 7, ++/*187996*/ OPC_CheckType, MVT::i32, ++/*187998*/ OPC_MoveParent, ++/*187999*/ OPC_MoveChild, 11, ++/*188001*/ OPC_CheckInteger, 7, ++/*188003*/ OPC_CheckType, MVT::i32, ++/*188005*/ OPC_MoveParent, ++/*188006*/ OPC_MoveChild, 12, ++/*188008*/ OPC_CheckInteger, 7, ++/*188010*/ OPC_CheckType, MVT::i32, ++/*188012*/ OPC_MoveParent, ++/*188013*/ OPC_MoveChild, 13, ++/*188015*/ OPC_CheckInteger, 7, ++/*188017*/ OPC_CheckType, MVT::i32, ++/*188019*/ OPC_MoveParent, ++/*188020*/ OPC_MoveChild, 14, ++/*188022*/ OPC_CheckInteger, 7, ++/*188024*/ OPC_CheckType, MVT::i32, ++/*188026*/ OPC_MoveParent, ++/*188027*/ OPC_MoveChild, 15, ++/*188029*/ OPC_CheckInteger, 7, ++/*188031*/ OPC_CheckType, MVT::i32, ++/*188033*/ OPC_MoveParent, ++/*188034*/ OPC_CheckType, MVT::v16i8, ++/*188036*/ OPC_MoveParent, ++/*188037*/ OPC_MoveParent, ++/*188038*/ OPC_MoveParent, ++/*188039*/ OPC_MoveChild1, ++/*188040*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*188043*/ OPC_CheckChild0Integer, 1, ++/*188045*/ OPC_CheckChild0Type, MVT::i32, ++/*188047*/ OPC_CheckChild1Integer, 1, ++/*188049*/ OPC_CheckChild1Type, MVT::i32, ++/*188051*/ OPC_CheckChild2Integer, 1, ++/*188053*/ OPC_CheckChild2Type, MVT::i32, ++/*188055*/ OPC_CheckChild3Integer, 1, ++/*188057*/ OPC_CheckChild3Type, MVT::i32, ++/*188059*/ OPC_CheckChild4Integer, 1, ++/*188061*/ OPC_CheckChild4Type, MVT::i32, ++/*188063*/ OPC_MoveChild5, ++/*188064*/ OPC_CheckInteger, 1, ++/*188066*/ OPC_CheckType, MVT::i32, ++/*188068*/ OPC_MoveParent, ++/*188069*/ OPC_MoveChild6, ++/*188070*/ OPC_CheckInteger, 1, ++/*188072*/ OPC_CheckType, MVT::i32, ++/*188074*/ OPC_MoveParent, ++/*188075*/ OPC_MoveChild7, ++/*188076*/ OPC_CheckInteger, 1, ++/*188078*/ OPC_CheckType, MVT::i32, ++/*188080*/ OPC_MoveParent, ++/*188081*/ OPC_MoveChild, 8, ++/*188083*/ OPC_CheckInteger, 1, ++/*188085*/ OPC_CheckType, MVT::i32, ++/*188087*/ OPC_MoveParent, ++/*188088*/ OPC_MoveChild, 9, ++/*188090*/ OPC_CheckInteger, 1, ++/*188092*/ OPC_CheckType, MVT::i32, ++/*188094*/ OPC_MoveParent, ++/*188095*/ OPC_MoveChild, 10, ++/*188097*/ OPC_CheckInteger, 1, ++/*188099*/ OPC_CheckType, MVT::i32, ++/*188101*/ OPC_MoveParent, ++/*188102*/ OPC_MoveChild, 11, ++/*188104*/ OPC_CheckInteger, 1, ++/*188106*/ OPC_CheckType, MVT::i32, ++/*188108*/ OPC_MoveParent, ++/*188109*/ OPC_MoveChild, 12, ++/*188111*/ OPC_CheckInteger, 1, ++/*188113*/ OPC_CheckType, MVT::i32, ++/*188115*/ OPC_MoveParent, ++/*188116*/ OPC_MoveChild, 13, ++/*188118*/ OPC_CheckInteger, 1, ++/*188120*/ OPC_CheckType, MVT::i32, ++/*188122*/ OPC_MoveParent, ++/*188123*/ OPC_MoveChild, 14, ++/*188125*/ OPC_CheckInteger, 1, ++/*188127*/ OPC_CheckType, MVT::i32, ++/*188129*/ OPC_MoveParent, ++/*188130*/ OPC_MoveChild, 15, ++/*188132*/ OPC_CheckInteger, 1, ++/*188134*/ OPC_CheckType, MVT::i32, ++/*188136*/ OPC_MoveParent, ++/*188137*/ OPC_CheckType, MVT::v16i8, ++/*188139*/ OPC_MoveParent, ++/*188140*/ OPC_CheckType, MVT::v16i8, ++/*188142*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*188144*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$a), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a), LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*188152*/ /*Scope*/ 65|128,2/*321*/, /*->188475*/ ++/*188154*/ OPC_CheckChild0Same, 1, ++/*188156*/ OPC_MoveChild1, ++/*188157*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*188160*/ OPC_CheckChild0Integer, 1, ++/*188162*/ OPC_CheckChild0Type, MVT::i32, ++/*188164*/ OPC_CheckChild1Integer, 1, ++/*188166*/ OPC_CheckChild1Type, MVT::i32, ++/*188168*/ OPC_CheckChild2Integer, 1, ++/*188170*/ OPC_CheckChild2Type, MVT::i32, ++/*188172*/ OPC_CheckChild3Integer, 1, ++/*188174*/ OPC_CheckChild3Type, MVT::i32, ++/*188176*/ OPC_CheckChild4Integer, 1, ++/*188178*/ OPC_CheckChild4Type, MVT::i32, ++/*188180*/ OPC_MoveChild5, ++/*188181*/ OPC_CheckInteger, 1, ++/*188183*/ OPC_CheckType, MVT::i32, ++/*188185*/ OPC_MoveParent, ++/*188186*/ OPC_MoveChild6, ++/*188187*/ OPC_CheckInteger, 1, ++/*188189*/ OPC_CheckType, MVT::i32, ++/*188191*/ OPC_MoveParent, ++/*188192*/ OPC_MoveChild7, ++/*188193*/ OPC_CheckInteger, 1, ++/*188195*/ OPC_CheckType, MVT::i32, ++/*188197*/ OPC_MoveParent, ++/*188198*/ OPC_MoveChild, 8, ++/*188200*/ OPC_CheckInteger, 1, ++/*188202*/ OPC_CheckType, MVT::i32, ++/*188204*/ OPC_MoveParent, ++/*188205*/ OPC_MoveChild, 9, ++/*188207*/ OPC_CheckInteger, 1, ++/*188209*/ OPC_CheckType, MVT::i32, ++/*188211*/ OPC_MoveParent, ++/*188212*/ OPC_MoveChild, 10, ++/*188214*/ OPC_CheckInteger, 1, ++/*188216*/ OPC_CheckType, MVT::i32, ++/*188218*/ OPC_MoveParent, ++/*188219*/ OPC_MoveChild, 11, ++/*188221*/ OPC_CheckInteger, 1, ++/*188223*/ OPC_CheckType, MVT::i32, ++/*188225*/ OPC_MoveParent, ++/*188226*/ OPC_MoveChild, 12, ++/*188228*/ OPC_CheckInteger, 1, ++/*188230*/ OPC_CheckType, MVT::i32, ++/*188232*/ OPC_MoveParent, ++/*188233*/ OPC_MoveChild, 13, ++/*188235*/ OPC_CheckInteger, 1, ++/*188237*/ OPC_CheckType, MVT::i32, ++/*188239*/ OPC_MoveParent, ++/*188240*/ OPC_MoveChild, 14, ++/*188242*/ OPC_CheckInteger, 1, ++/*188244*/ OPC_CheckType, MVT::i32, ++/*188246*/ OPC_MoveParent, ++/*188247*/ OPC_MoveChild, 15, ++/*188249*/ OPC_CheckInteger, 1, ++/*188251*/ OPC_CheckType, MVT::i32, ++/*188253*/ OPC_MoveParent, ++/*188254*/ OPC_MoveParent, ++/*188255*/ OPC_MoveParent, ++/*188256*/ OPC_CheckChild1Same, 0, ++/*188258*/ OPC_MoveParent, ++/*188259*/ OPC_MoveChild1, ++/*188260*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*188263*/ OPC_CheckChild0Integer, 7, ++/*188265*/ OPC_CheckChild0Type, MVT::i32, ++/*188267*/ OPC_CheckChild1Integer, 7, ++/*188269*/ OPC_CheckChild1Type, MVT::i32, ++/*188271*/ OPC_CheckChild2Integer, 7, ++/*188273*/ OPC_CheckChild2Type, MVT::i32, ++/*188275*/ OPC_CheckChild3Integer, 7, ++/*188277*/ OPC_CheckChild3Type, MVT::i32, ++/*188279*/ OPC_CheckChild4Integer, 7, ++/*188281*/ OPC_CheckChild4Type, MVT::i32, ++/*188283*/ OPC_MoveChild5, ++/*188284*/ OPC_CheckInteger, 7, ++/*188286*/ OPC_CheckType, MVT::i32, ++/*188288*/ OPC_MoveParent, ++/*188289*/ OPC_MoveChild6, ++/*188290*/ OPC_CheckInteger, 7, ++/*188292*/ OPC_CheckType, MVT::i32, ++/*188294*/ OPC_MoveParent, ++/*188295*/ OPC_MoveChild7, ++/*188296*/ OPC_CheckInteger, 7, ++/*188298*/ OPC_CheckType, MVT::i32, ++/*188300*/ OPC_MoveParent, ++/*188301*/ OPC_MoveChild, 8, ++/*188303*/ OPC_CheckInteger, 7, ++/*188305*/ OPC_CheckType, MVT::i32, ++/*188307*/ OPC_MoveParent, ++/*188308*/ OPC_MoveChild, 9, ++/*188310*/ OPC_CheckInteger, 7, ++/*188312*/ OPC_CheckType, MVT::i32, ++/*188314*/ OPC_MoveParent, ++/*188315*/ OPC_MoveChild, 10, ++/*188317*/ OPC_CheckInteger, 7, ++/*188319*/ OPC_CheckType, MVT::i32, ++/*188321*/ OPC_MoveParent, ++/*188322*/ OPC_MoveChild, 11, ++/*188324*/ OPC_CheckInteger, 7, ++/*188326*/ OPC_CheckType, MVT::i32, ++/*188328*/ OPC_MoveParent, ++/*188329*/ OPC_MoveChild, 12, ++/*188331*/ OPC_CheckInteger, 7, ++/*188333*/ OPC_CheckType, MVT::i32, ++/*188335*/ OPC_MoveParent, ++/*188336*/ OPC_MoveChild, 13, ++/*188338*/ OPC_CheckInteger, 7, ++/*188340*/ OPC_CheckType, MVT::i32, ++/*188342*/ OPC_MoveParent, ++/*188343*/ OPC_MoveChild, 14, ++/*188345*/ OPC_CheckInteger, 7, ++/*188347*/ OPC_CheckType, MVT::i32, ++/*188349*/ OPC_MoveParent, ++/*188350*/ OPC_MoveChild, 15, ++/*188352*/ OPC_CheckInteger, 7, ++/*188354*/ OPC_CheckType, MVT::i32, ++/*188356*/ OPC_MoveParent, ++/*188357*/ OPC_CheckType, MVT::v16i8, ++/*188359*/ OPC_MoveParent, ++/*188360*/ OPC_MoveParent, ++/*188361*/ OPC_MoveParent, ++/*188362*/ OPC_MoveChild1, ++/*188363*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*188366*/ OPC_CheckChild0Integer, 1, ++/*188368*/ OPC_CheckChild0Type, MVT::i32, ++/*188370*/ OPC_CheckChild1Integer, 1, ++/*188372*/ OPC_CheckChild1Type, MVT::i32, ++/*188374*/ OPC_CheckChild2Integer, 1, ++/*188376*/ OPC_CheckChild2Type, MVT::i32, ++/*188378*/ OPC_CheckChild3Integer, 1, ++/*188380*/ OPC_CheckChild3Type, MVT::i32, ++/*188382*/ OPC_CheckChild4Integer, 1, ++/*188384*/ OPC_CheckChild4Type, MVT::i32, ++/*188386*/ OPC_MoveChild5, ++/*188387*/ OPC_CheckInteger, 1, ++/*188389*/ OPC_CheckType, MVT::i32, ++/*188391*/ OPC_MoveParent, ++/*188392*/ OPC_MoveChild6, ++/*188393*/ OPC_CheckInteger, 1, ++/*188395*/ OPC_CheckType, MVT::i32, ++/*188397*/ OPC_MoveParent, ++/*188398*/ OPC_MoveChild7, ++/*188399*/ OPC_CheckInteger, 1, ++/*188401*/ OPC_CheckType, MVT::i32, ++/*188403*/ OPC_MoveParent, ++/*188404*/ OPC_MoveChild, 8, ++/*188406*/ OPC_CheckInteger, 1, ++/*188408*/ OPC_CheckType, MVT::i32, ++/*188410*/ OPC_MoveParent, ++/*188411*/ OPC_MoveChild, 9, ++/*188413*/ OPC_CheckInteger, 1, ++/*188415*/ OPC_CheckType, MVT::i32, ++/*188417*/ OPC_MoveParent, ++/*188418*/ OPC_MoveChild, 10, ++/*188420*/ OPC_CheckInteger, 1, ++/*188422*/ OPC_CheckType, MVT::i32, ++/*188424*/ OPC_MoveParent, ++/*188425*/ OPC_MoveChild, 11, ++/*188427*/ OPC_CheckInteger, 1, ++/*188429*/ OPC_CheckType, MVT::i32, ++/*188431*/ OPC_MoveParent, ++/*188432*/ OPC_MoveChild, 12, ++/*188434*/ OPC_CheckInteger, 1, ++/*188436*/ OPC_CheckType, MVT::i32, ++/*188438*/ OPC_MoveParent, ++/*188439*/ OPC_MoveChild, 13, ++/*188441*/ OPC_CheckInteger, 1, ++/*188443*/ OPC_CheckType, MVT::i32, ++/*188445*/ OPC_MoveParent, ++/*188446*/ OPC_MoveChild, 14, ++/*188448*/ OPC_CheckInteger, 1, ++/*188450*/ OPC_CheckType, MVT::i32, ++/*188452*/ OPC_MoveParent, ++/*188453*/ OPC_MoveChild, 15, ++/*188455*/ OPC_CheckInteger, 1, ++/*188457*/ OPC_CheckType, MVT::i32, ++/*188459*/ OPC_MoveParent, ++/*188460*/ OPC_CheckType, MVT::v16i8, ++/*188462*/ OPC_MoveParent, ++/*188463*/ OPC_CheckType, MVT::v16i8, ++/*188465*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*188467*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$a), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*188475*/ /*Scope*/ 65|128,2/*321*/, /*->188798*/ ++/*188477*/ OPC_MoveChild0, ++/*188478*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*188481*/ OPC_CheckChild0Integer, 1, ++/*188483*/ OPC_CheckChild0Type, MVT::i32, ++/*188485*/ OPC_CheckChild1Integer, 1, ++/*188487*/ OPC_CheckChild1Type, MVT::i32, ++/*188489*/ OPC_CheckChild2Integer, 1, ++/*188491*/ OPC_CheckChild2Type, MVT::i32, ++/*188493*/ OPC_CheckChild3Integer, 1, ++/*188495*/ OPC_CheckChild3Type, MVT::i32, ++/*188497*/ OPC_CheckChild4Integer, 1, ++/*188499*/ OPC_CheckChild4Type, MVT::i32, ++/*188501*/ OPC_MoveChild5, ++/*188502*/ OPC_CheckInteger, 1, ++/*188504*/ OPC_CheckType, MVT::i32, ++/*188506*/ OPC_MoveParent, ++/*188507*/ OPC_MoveChild6, ++/*188508*/ OPC_CheckInteger, 1, ++/*188510*/ OPC_CheckType, MVT::i32, ++/*188512*/ OPC_MoveParent, ++/*188513*/ OPC_MoveChild7, ++/*188514*/ OPC_CheckInteger, 1, ++/*188516*/ OPC_CheckType, MVT::i32, ++/*188518*/ OPC_MoveParent, ++/*188519*/ OPC_MoveChild, 8, ++/*188521*/ OPC_CheckInteger, 1, ++/*188523*/ OPC_CheckType, MVT::i32, ++/*188525*/ OPC_MoveParent, ++/*188526*/ OPC_MoveChild, 9, ++/*188528*/ OPC_CheckInteger, 1, ++/*188530*/ OPC_CheckType, MVT::i32, ++/*188532*/ OPC_MoveParent, ++/*188533*/ OPC_MoveChild, 10, ++/*188535*/ OPC_CheckInteger, 1, ++/*188537*/ OPC_CheckType, MVT::i32, ++/*188539*/ OPC_MoveParent, ++/*188540*/ OPC_MoveChild, 11, ++/*188542*/ OPC_CheckInteger, 1, ++/*188544*/ OPC_CheckType, MVT::i32, ++/*188546*/ OPC_MoveParent, ++/*188547*/ OPC_MoveChild, 12, ++/*188549*/ OPC_CheckInteger, 1, ++/*188551*/ OPC_CheckType, MVT::i32, ++/*188553*/ OPC_MoveParent, ++/*188554*/ OPC_MoveChild, 13, ++/*188556*/ OPC_CheckInteger, 1, ++/*188558*/ OPC_CheckType, MVT::i32, ++/*188560*/ OPC_MoveParent, ++/*188561*/ OPC_MoveChild, 14, ++/*188563*/ OPC_CheckInteger, 1, ++/*188565*/ OPC_CheckType, MVT::i32, ++/*188567*/ OPC_MoveParent, ++/*188568*/ OPC_MoveChild, 15, ++/*188570*/ OPC_CheckInteger, 1, ++/*188572*/ OPC_CheckType, MVT::i32, ++/*188574*/ OPC_MoveParent, ++/*188575*/ OPC_MoveParent, ++/*188576*/ OPC_CheckChild1Same, 0, ++/*188578*/ OPC_MoveParent, ++/*188579*/ OPC_CheckChild1Same, 1, ++/*188581*/ OPC_MoveParent, ++/*188582*/ OPC_MoveChild1, ++/*188583*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*188586*/ OPC_CheckChild0Integer, 7, ++/*188588*/ OPC_CheckChild0Type, MVT::i32, ++/*188590*/ OPC_CheckChild1Integer, 7, ++/*188592*/ OPC_CheckChild1Type, MVT::i32, ++/*188594*/ OPC_CheckChild2Integer, 7, ++/*188596*/ OPC_CheckChild2Type, MVT::i32, ++/*188598*/ OPC_CheckChild3Integer, 7, ++/*188600*/ OPC_CheckChild3Type, MVT::i32, ++/*188602*/ OPC_CheckChild4Integer, 7, ++/*188604*/ OPC_CheckChild4Type, MVT::i32, ++/*188606*/ OPC_MoveChild5, ++/*188607*/ OPC_CheckInteger, 7, ++/*188609*/ OPC_CheckType, MVT::i32, ++/*188611*/ OPC_MoveParent, ++/*188612*/ OPC_MoveChild6, ++/*188613*/ OPC_CheckInteger, 7, ++/*188615*/ OPC_CheckType, MVT::i32, ++/*188617*/ OPC_MoveParent, ++/*188618*/ OPC_MoveChild7, ++/*188619*/ OPC_CheckInteger, 7, ++/*188621*/ OPC_CheckType, MVT::i32, ++/*188623*/ OPC_MoveParent, ++/*188624*/ OPC_MoveChild, 8, ++/*188626*/ OPC_CheckInteger, 7, ++/*188628*/ OPC_CheckType, MVT::i32, ++/*188630*/ OPC_MoveParent, ++/*188631*/ OPC_MoveChild, 9, ++/*188633*/ OPC_CheckInteger, 7, ++/*188635*/ OPC_CheckType, MVT::i32, ++/*188637*/ OPC_MoveParent, ++/*188638*/ OPC_MoveChild, 10, ++/*188640*/ OPC_CheckInteger, 7, ++/*188642*/ OPC_CheckType, MVT::i32, ++/*188644*/ OPC_MoveParent, ++/*188645*/ OPC_MoveChild, 11, ++/*188647*/ OPC_CheckInteger, 7, ++/*188649*/ OPC_CheckType, MVT::i32, ++/*188651*/ OPC_MoveParent, ++/*188652*/ OPC_MoveChild, 12, ++/*188654*/ OPC_CheckInteger, 7, ++/*188656*/ OPC_CheckType, MVT::i32, ++/*188658*/ OPC_MoveParent, ++/*188659*/ OPC_MoveChild, 13, ++/*188661*/ OPC_CheckInteger, 7, ++/*188663*/ OPC_CheckType, MVT::i32, ++/*188665*/ OPC_MoveParent, ++/*188666*/ OPC_MoveChild, 14, ++/*188668*/ OPC_CheckInteger, 7, ++/*188670*/ OPC_CheckType, MVT::i32, ++/*188672*/ OPC_MoveParent, ++/*188673*/ OPC_MoveChild, 15, ++/*188675*/ OPC_CheckInteger, 7, ++/*188677*/ OPC_CheckType, MVT::i32, ++/*188679*/ OPC_MoveParent, ++/*188680*/ OPC_CheckType, MVT::v16i8, ++/*188682*/ OPC_MoveParent, ++/*188683*/ OPC_MoveParent, ++/*188684*/ OPC_MoveParent, ++/*188685*/ OPC_MoveChild1, ++/*188686*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*188689*/ OPC_CheckChild0Integer, 1, ++/*188691*/ OPC_CheckChild0Type, MVT::i32, ++/*188693*/ OPC_CheckChild1Integer, 1, ++/*188695*/ OPC_CheckChild1Type, MVT::i32, ++/*188697*/ OPC_CheckChild2Integer, 1, ++/*188699*/ OPC_CheckChild2Type, MVT::i32, ++/*188701*/ OPC_CheckChild3Integer, 1, ++/*188703*/ OPC_CheckChild3Type, MVT::i32, ++/*188705*/ OPC_CheckChild4Integer, 1, ++/*188707*/ OPC_CheckChild4Type, MVT::i32, ++/*188709*/ OPC_MoveChild5, ++/*188710*/ OPC_CheckInteger, 1, ++/*188712*/ OPC_CheckType, MVT::i32, ++/*188714*/ OPC_MoveParent, ++/*188715*/ OPC_MoveChild6, ++/*188716*/ OPC_CheckInteger, 1, ++/*188718*/ OPC_CheckType, MVT::i32, ++/*188720*/ OPC_MoveParent, ++/*188721*/ OPC_MoveChild7, ++/*188722*/ OPC_CheckInteger, 1, ++/*188724*/ OPC_CheckType, MVT::i32, ++/*188726*/ OPC_MoveParent, ++/*188727*/ OPC_MoveChild, 8, ++/*188729*/ OPC_CheckInteger, 1, ++/*188731*/ OPC_CheckType, MVT::i32, ++/*188733*/ OPC_MoveParent, ++/*188734*/ OPC_MoveChild, 9, ++/*188736*/ OPC_CheckInteger, 1, ++/*188738*/ OPC_CheckType, MVT::i32, ++/*188740*/ OPC_MoveParent, ++/*188741*/ OPC_MoveChild, 10, ++/*188743*/ OPC_CheckInteger, 1, ++/*188745*/ OPC_CheckType, MVT::i32, ++/*188747*/ OPC_MoveParent, ++/*188748*/ OPC_MoveChild, 11, ++/*188750*/ OPC_CheckInteger, 1, ++/*188752*/ OPC_CheckType, MVT::i32, ++/*188754*/ OPC_MoveParent, ++/*188755*/ OPC_MoveChild, 12, ++/*188757*/ OPC_CheckInteger, 1, ++/*188759*/ OPC_CheckType, MVT::i32, ++/*188761*/ OPC_MoveParent, ++/*188762*/ OPC_MoveChild, 13, ++/*188764*/ OPC_CheckInteger, 1, ++/*188766*/ OPC_CheckType, MVT::i32, ++/*188768*/ OPC_MoveParent, ++/*188769*/ OPC_MoveChild, 14, ++/*188771*/ OPC_CheckInteger, 1, ++/*188773*/ OPC_CheckType, MVT::i32, ++/*188775*/ OPC_MoveParent, ++/*188776*/ OPC_MoveChild, 15, ++/*188778*/ OPC_CheckInteger, 1, ++/*188780*/ OPC_CheckType, MVT::i32, ++/*188782*/ OPC_MoveParent, ++/*188783*/ OPC_CheckType, MVT::v16i8, ++/*188785*/ OPC_MoveParent, ++/*188786*/ OPC_CheckType, MVT::v16i8, ++/*188788*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*188790*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$a), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b), LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*188798*/ /*Scope*/ 65|128,2/*321*/, /*->189121*/ ++/*188800*/ OPC_CheckChild0Same, 0, ++/*188802*/ OPC_MoveChild1, ++/*188803*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*188806*/ OPC_CheckChild0Integer, 1, ++/*188808*/ OPC_CheckChild0Type, MVT::i32, ++/*188810*/ OPC_CheckChild1Integer, 1, ++/*188812*/ OPC_CheckChild1Type, MVT::i32, ++/*188814*/ OPC_CheckChild2Integer, 1, ++/*188816*/ OPC_CheckChild2Type, MVT::i32, ++/*188818*/ OPC_CheckChild3Integer, 1, ++/*188820*/ OPC_CheckChild3Type, MVT::i32, ++/*188822*/ OPC_CheckChild4Integer, 1, ++/*188824*/ OPC_CheckChild4Type, MVT::i32, ++/*188826*/ OPC_MoveChild5, ++/*188827*/ OPC_CheckInteger, 1, ++/*188829*/ OPC_CheckType, MVT::i32, ++/*188831*/ OPC_MoveParent, ++/*188832*/ OPC_MoveChild6, ++/*188833*/ OPC_CheckInteger, 1, ++/*188835*/ OPC_CheckType, MVT::i32, ++/*188837*/ OPC_MoveParent, ++/*188838*/ OPC_MoveChild7, ++/*188839*/ OPC_CheckInteger, 1, ++/*188841*/ OPC_CheckType, MVT::i32, ++/*188843*/ OPC_MoveParent, ++/*188844*/ OPC_MoveChild, 8, ++/*188846*/ OPC_CheckInteger, 1, ++/*188848*/ OPC_CheckType, MVT::i32, ++/*188850*/ OPC_MoveParent, ++/*188851*/ OPC_MoveChild, 9, ++/*188853*/ OPC_CheckInteger, 1, ++/*188855*/ OPC_CheckType, MVT::i32, ++/*188857*/ OPC_MoveParent, ++/*188858*/ OPC_MoveChild, 10, ++/*188860*/ OPC_CheckInteger, 1, ++/*188862*/ OPC_CheckType, MVT::i32, ++/*188864*/ OPC_MoveParent, ++/*188865*/ OPC_MoveChild, 11, ++/*188867*/ OPC_CheckInteger, 1, ++/*188869*/ OPC_CheckType, MVT::i32, ++/*188871*/ OPC_MoveParent, ++/*188872*/ OPC_MoveChild, 12, ++/*188874*/ OPC_CheckInteger, 1, ++/*188876*/ OPC_CheckType, MVT::i32, ++/*188878*/ OPC_MoveParent, ++/*188879*/ OPC_MoveChild, 13, ++/*188881*/ OPC_CheckInteger, 1, ++/*188883*/ OPC_CheckType, MVT::i32, ++/*188885*/ OPC_MoveParent, ++/*188886*/ OPC_MoveChild, 14, ++/*188888*/ OPC_CheckInteger, 1, ++/*188890*/ OPC_CheckType, MVT::i32, ++/*188892*/ OPC_MoveParent, ++/*188893*/ OPC_MoveChild, 15, ++/*188895*/ OPC_CheckInteger, 1, ++/*188897*/ OPC_CheckType, MVT::i32, ++/*188899*/ OPC_MoveParent, ++/*188900*/ OPC_MoveParent, ++/*188901*/ OPC_MoveParent, ++/*188902*/ OPC_CheckChild1Same, 1, ++/*188904*/ OPC_MoveParent, ++/*188905*/ OPC_MoveChild1, ++/*188906*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*188909*/ OPC_CheckChild0Integer, 7, ++/*188911*/ OPC_CheckChild0Type, MVT::i32, ++/*188913*/ OPC_CheckChild1Integer, 7, ++/*188915*/ OPC_CheckChild1Type, MVT::i32, ++/*188917*/ OPC_CheckChild2Integer, 7, ++/*188919*/ OPC_CheckChild2Type, MVT::i32, ++/*188921*/ OPC_CheckChild3Integer, 7, ++/*188923*/ OPC_CheckChild3Type, MVT::i32, ++/*188925*/ OPC_CheckChild4Integer, 7, ++/*188927*/ OPC_CheckChild4Type, MVT::i32, ++/*188929*/ OPC_MoveChild5, ++/*188930*/ OPC_CheckInteger, 7, ++/*188932*/ OPC_CheckType, MVT::i32, ++/*188934*/ OPC_MoveParent, ++/*188935*/ OPC_MoveChild6, ++/*188936*/ OPC_CheckInteger, 7, ++/*188938*/ OPC_CheckType, MVT::i32, ++/*188940*/ OPC_MoveParent, ++/*188941*/ OPC_MoveChild7, ++/*188942*/ OPC_CheckInteger, 7, ++/*188944*/ OPC_CheckType, MVT::i32, ++/*188946*/ OPC_MoveParent, ++/*188947*/ OPC_MoveChild, 8, ++/*188949*/ OPC_CheckInteger, 7, ++/*188951*/ OPC_CheckType, MVT::i32, ++/*188953*/ OPC_MoveParent, ++/*188954*/ OPC_MoveChild, 9, ++/*188956*/ OPC_CheckInteger, 7, ++/*188958*/ OPC_CheckType, MVT::i32, ++/*188960*/ OPC_MoveParent, ++/*188961*/ OPC_MoveChild, 10, ++/*188963*/ OPC_CheckInteger, 7, ++/*188965*/ OPC_CheckType, MVT::i32, ++/*188967*/ OPC_MoveParent, ++/*188968*/ OPC_MoveChild, 11, ++/*188970*/ OPC_CheckInteger, 7, ++/*188972*/ OPC_CheckType, MVT::i32, ++/*188974*/ OPC_MoveParent, ++/*188975*/ OPC_MoveChild, 12, ++/*188977*/ OPC_CheckInteger, 7, ++/*188979*/ OPC_CheckType, MVT::i32, ++/*188981*/ OPC_MoveParent, ++/*188982*/ OPC_MoveChild, 13, ++/*188984*/ OPC_CheckInteger, 7, ++/*188986*/ OPC_CheckType, MVT::i32, ++/*188988*/ OPC_MoveParent, ++/*188989*/ OPC_MoveChild, 14, ++/*188991*/ OPC_CheckInteger, 7, ++/*188993*/ OPC_CheckType, MVT::i32, ++/*188995*/ OPC_MoveParent, ++/*188996*/ OPC_MoveChild, 15, ++/*188998*/ OPC_CheckInteger, 7, ++/*189000*/ OPC_CheckType, MVT::i32, ++/*189002*/ OPC_MoveParent, ++/*189003*/ OPC_CheckType, MVT::v16i8, ++/*189005*/ OPC_MoveParent, ++/*189006*/ OPC_MoveParent, ++/*189007*/ OPC_MoveParent, ++/*189008*/ OPC_MoveChild1, ++/*189009*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*189012*/ OPC_CheckChild0Integer, 1, ++/*189014*/ OPC_CheckChild0Type, MVT::i32, ++/*189016*/ OPC_CheckChild1Integer, 1, ++/*189018*/ OPC_CheckChild1Type, MVT::i32, ++/*189020*/ OPC_CheckChild2Integer, 1, ++/*189022*/ OPC_CheckChild2Type, MVT::i32, ++/*189024*/ OPC_CheckChild3Integer, 1, ++/*189026*/ OPC_CheckChild3Type, MVT::i32, ++/*189028*/ OPC_CheckChild4Integer, 1, ++/*189030*/ OPC_CheckChild4Type, MVT::i32, ++/*189032*/ OPC_MoveChild5, ++/*189033*/ OPC_CheckInteger, 1, ++/*189035*/ OPC_CheckType, MVT::i32, ++/*189037*/ OPC_MoveParent, ++/*189038*/ OPC_MoveChild6, ++/*189039*/ OPC_CheckInteger, 1, ++/*189041*/ OPC_CheckType, MVT::i32, ++/*189043*/ OPC_MoveParent, ++/*189044*/ OPC_MoveChild7, ++/*189045*/ OPC_CheckInteger, 1, ++/*189047*/ OPC_CheckType, MVT::i32, ++/*189049*/ OPC_MoveParent, ++/*189050*/ OPC_MoveChild, 8, ++/*189052*/ OPC_CheckInteger, 1, ++/*189054*/ OPC_CheckType, MVT::i32, ++/*189056*/ OPC_MoveParent, ++/*189057*/ OPC_MoveChild, 9, ++/*189059*/ OPC_CheckInteger, 1, ++/*189061*/ OPC_CheckType, MVT::i32, ++/*189063*/ OPC_MoveParent, ++/*189064*/ OPC_MoveChild, 10, ++/*189066*/ OPC_CheckInteger, 1, ++/*189068*/ OPC_CheckType, MVT::i32, ++/*189070*/ OPC_MoveParent, ++/*189071*/ OPC_MoveChild, 11, ++/*189073*/ OPC_CheckInteger, 1, ++/*189075*/ OPC_CheckType, MVT::i32, ++/*189077*/ OPC_MoveParent, ++/*189078*/ OPC_MoveChild, 12, ++/*189080*/ OPC_CheckInteger, 1, ++/*189082*/ OPC_CheckType, MVT::i32, ++/*189084*/ OPC_MoveParent, ++/*189085*/ OPC_MoveChild, 13, ++/*189087*/ OPC_CheckInteger, 1, ++/*189089*/ OPC_CheckType, MVT::i32, ++/*189091*/ OPC_MoveParent, ++/*189092*/ OPC_MoveChild, 14, ++/*189094*/ OPC_CheckInteger, 1, ++/*189096*/ OPC_CheckType, MVT::i32, ++/*189098*/ OPC_MoveParent, ++/*189099*/ OPC_MoveChild, 15, ++/*189101*/ OPC_CheckInteger, 1, ++/*189103*/ OPC_CheckType, MVT::i32, ++/*189105*/ OPC_MoveParent, ++/*189106*/ OPC_CheckType, MVT::v16i8, ++/*189108*/ OPC_MoveParent, ++/*189109*/ OPC_CheckType, MVT::v16i8, ++/*189111*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*189113*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$a), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*189121*/ /*Scope*/ 65|128,2/*321*/, /*->189444*/ ++/*189123*/ OPC_CheckChild0Same, 1, ++/*189125*/ OPC_CheckChild1Same, 0, ++/*189127*/ OPC_MoveParent, ++/*189128*/ OPC_MoveChild1, ++/*189129*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*189132*/ OPC_CheckChild0Integer, 1, ++/*189134*/ OPC_CheckChild0Type, MVT::i32, ++/*189136*/ OPC_CheckChild1Integer, 1, ++/*189138*/ OPC_CheckChild1Type, MVT::i32, ++/*189140*/ OPC_CheckChild2Integer, 1, ++/*189142*/ OPC_CheckChild2Type, MVT::i32, ++/*189144*/ OPC_CheckChild3Integer, 1, ++/*189146*/ OPC_CheckChild3Type, MVT::i32, ++/*189148*/ OPC_CheckChild4Integer, 1, ++/*189150*/ OPC_CheckChild4Type, MVT::i32, ++/*189152*/ OPC_MoveChild5, ++/*189153*/ OPC_CheckInteger, 1, ++/*189155*/ OPC_CheckType, MVT::i32, ++/*189157*/ OPC_MoveParent, ++/*189158*/ OPC_MoveChild6, ++/*189159*/ OPC_CheckInteger, 1, ++/*189161*/ OPC_CheckType, MVT::i32, ++/*189163*/ OPC_MoveParent, ++/*189164*/ OPC_MoveChild7, ++/*189165*/ OPC_CheckInteger, 1, ++/*189167*/ OPC_CheckType, MVT::i32, ++/*189169*/ OPC_MoveParent, ++/*189170*/ OPC_MoveChild, 8, ++/*189172*/ OPC_CheckInteger, 1, ++/*189174*/ OPC_CheckType, MVT::i32, ++/*189176*/ OPC_MoveParent, ++/*189177*/ OPC_MoveChild, 9, ++/*189179*/ OPC_CheckInteger, 1, ++/*189181*/ OPC_CheckType, MVT::i32, ++/*189183*/ OPC_MoveParent, ++/*189184*/ OPC_MoveChild, 10, ++/*189186*/ OPC_CheckInteger, 1, ++/*189188*/ OPC_CheckType, MVT::i32, ++/*189190*/ OPC_MoveParent, ++/*189191*/ OPC_MoveChild, 11, ++/*189193*/ OPC_CheckInteger, 1, ++/*189195*/ OPC_CheckType, MVT::i32, ++/*189197*/ OPC_MoveParent, ++/*189198*/ OPC_MoveChild, 12, ++/*189200*/ OPC_CheckInteger, 1, ++/*189202*/ OPC_CheckType, MVT::i32, ++/*189204*/ OPC_MoveParent, ++/*189205*/ OPC_MoveChild, 13, ++/*189207*/ OPC_CheckInteger, 1, ++/*189209*/ OPC_CheckType, MVT::i32, ++/*189211*/ OPC_MoveParent, ++/*189212*/ OPC_MoveChild, 14, ++/*189214*/ OPC_CheckInteger, 1, ++/*189216*/ OPC_CheckType, MVT::i32, ++/*189218*/ OPC_MoveParent, ++/*189219*/ OPC_MoveChild, 15, ++/*189221*/ OPC_CheckInteger, 1, ++/*189223*/ OPC_CheckType, MVT::i32, ++/*189225*/ OPC_MoveParent, ++/*189226*/ OPC_MoveParent, ++/*189227*/ OPC_MoveParent, ++/*189228*/ OPC_MoveChild1, ++/*189229*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*189232*/ OPC_CheckChild0Integer, 7, ++/*189234*/ OPC_CheckChild0Type, MVT::i32, ++/*189236*/ OPC_CheckChild1Integer, 7, ++/*189238*/ OPC_CheckChild1Type, MVT::i32, ++/*189240*/ OPC_CheckChild2Integer, 7, ++/*189242*/ OPC_CheckChild2Type, MVT::i32, ++/*189244*/ OPC_CheckChild3Integer, 7, ++/*189246*/ OPC_CheckChild3Type, MVT::i32, ++/*189248*/ OPC_CheckChild4Integer, 7, ++/*189250*/ OPC_CheckChild4Type, MVT::i32, ++/*189252*/ OPC_MoveChild5, ++/*189253*/ OPC_CheckInteger, 7, ++/*189255*/ OPC_CheckType, MVT::i32, ++/*189257*/ OPC_MoveParent, ++/*189258*/ OPC_MoveChild6, ++/*189259*/ OPC_CheckInteger, 7, ++/*189261*/ OPC_CheckType, MVT::i32, ++/*189263*/ OPC_MoveParent, ++/*189264*/ OPC_MoveChild7, ++/*189265*/ OPC_CheckInteger, 7, ++/*189267*/ OPC_CheckType, MVT::i32, ++/*189269*/ OPC_MoveParent, ++/*189270*/ OPC_MoveChild, 8, ++/*189272*/ OPC_CheckInteger, 7, ++/*189274*/ OPC_CheckType, MVT::i32, ++/*189276*/ OPC_MoveParent, ++/*189277*/ OPC_MoveChild, 9, ++/*189279*/ OPC_CheckInteger, 7, ++/*189281*/ OPC_CheckType, MVT::i32, ++/*189283*/ OPC_MoveParent, ++/*189284*/ OPC_MoveChild, 10, ++/*189286*/ OPC_CheckInteger, 7, ++/*189288*/ OPC_CheckType, MVT::i32, ++/*189290*/ OPC_MoveParent, ++/*189291*/ OPC_MoveChild, 11, ++/*189293*/ OPC_CheckInteger, 7, ++/*189295*/ OPC_CheckType, MVT::i32, ++/*189297*/ OPC_MoveParent, ++/*189298*/ OPC_MoveChild, 12, ++/*189300*/ OPC_CheckInteger, 7, ++/*189302*/ OPC_CheckType, MVT::i32, ++/*189304*/ OPC_MoveParent, ++/*189305*/ OPC_MoveChild, 13, ++/*189307*/ OPC_CheckInteger, 7, ++/*189309*/ OPC_CheckType, MVT::i32, ++/*189311*/ OPC_MoveParent, ++/*189312*/ OPC_MoveChild, 14, ++/*189314*/ OPC_CheckInteger, 7, ++/*189316*/ OPC_CheckType, MVT::i32, ++/*189318*/ OPC_MoveParent, ++/*189319*/ OPC_MoveChild, 15, ++/*189321*/ OPC_CheckInteger, 7, ++/*189323*/ OPC_CheckType, MVT::i32, ++/*189325*/ OPC_MoveParent, ++/*189326*/ OPC_CheckType, MVT::v16i8, ++/*189328*/ OPC_MoveParent, ++/*189329*/ OPC_MoveParent, ++/*189330*/ OPC_MoveParent, ++/*189331*/ OPC_MoveChild1, ++/*189332*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*189335*/ OPC_CheckChild0Integer, 1, ++/*189337*/ OPC_CheckChild0Type, MVT::i32, ++/*189339*/ OPC_CheckChild1Integer, 1, ++/*189341*/ OPC_CheckChild1Type, MVT::i32, ++/*189343*/ OPC_CheckChild2Integer, 1, ++/*189345*/ OPC_CheckChild2Type, MVT::i32, ++/*189347*/ OPC_CheckChild3Integer, 1, ++/*189349*/ OPC_CheckChild3Type, MVT::i32, ++/*189351*/ OPC_CheckChild4Integer, 1, ++/*189353*/ OPC_CheckChild4Type, MVT::i32, ++/*189355*/ OPC_MoveChild5, ++/*189356*/ OPC_CheckInteger, 1, ++/*189358*/ OPC_CheckType, MVT::i32, ++/*189360*/ OPC_MoveParent, ++/*189361*/ OPC_MoveChild6, ++/*189362*/ OPC_CheckInteger, 1, ++/*189364*/ OPC_CheckType, MVT::i32, ++/*189366*/ OPC_MoveParent, ++/*189367*/ OPC_MoveChild7, ++/*189368*/ OPC_CheckInteger, 1, ++/*189370*/ OPC_CheckType, MVT::i32, ++/*189372*/ OPC_MoveParent, ++/*189373*/ OPC_MoveChild, 8, ++/*189375*/ OPC_CheckInteger, 1, ++/*189377*/ OPC_CheckType, MVT::i32, ++/*189379*/ OPC_MoveParent, ++/*189380*/ OPC_MoveChild, 9, ++/*189382*/ OPC_CheckInteger, 1, ++/*189384*/ OPC_CheckType, MVT::i32, ++/*189386*/ OPC_MoveParent, ++/*189387*/ OPC_MoveChild, 10, ++/*189389*/ OPC_CheckInteger, 1, ++/*189391*/ OPC_CheckType, MVT::i32, ++/*189393*/ OPC_MoveParent, ++/*189394*/ OPC_MoveChild, 11, ++/*189396*/ OPC_CheckInteger, 1, ++/*189398*/ OPC_CheckType, MVT::i32, ++/*189400*/ OPC_MoveParent, ++/*189401*/ OPC_MoveChild, 12, ++/*189403*/ OPC_CheckInteger, 1, ++/*189405*/ OPC_CheckType, MVT::i32, ++/*189407*/ OPC_MoveParent, ++/*189408*/ OPC_MoveChild, 13, ++/*189410*/ OPC_CheckInteger, 1, ++/*189412*/ OPC_CheckType, MVT::i32, ++/*189414*/ OPC_MoveParent, ++/*189415*/ OPC_MoveChild, 14, ++/*189417*/ OPC_CheckInteger, 1, ++/*189419*/ OPC_CheckType, MVT::i32, ++/*189421*/ OPC_MoveParent, ++/*189422*/ OPC_MoveChild, 15, ++/*189424*/ OPC_CheckInteger, 1, ++/*189426*/ OPC_CheckType, MVT::i32, ++/*189428*/ OPC_MoveParent, ++/*189429*/ OPC_CheckType, MVT::v16i8, ++/*189431*/ OPC_MoveParent, ++/*189432*/ OPC_CheckType, MVT::v16i8, ++/*189434*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*189436*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$a), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*189444*/ /*Scope*/ 65|128,2/*321*/, /*->189767*/ ++/*189446*/ OPC_CheckChild0Same, 0, ++/*189448*/ OPC_CheckChild1Same, 1, ++/*189450*/ OPC_MoveParent, ++/*189451*/ OPC_MoveChild1, ++/*189452*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*189455*/ OPC_CheckChild0Integer, 1, ++/*189457*/ OPC_CheckChild0Type, MVT::i32, ++/*189459*/ OPC_CheckChild1Integer, 1, ++/*189461*/ OPC_CheckChild1Type, MVT::i32, ++/*189463*/ OPC_CheckChild2Integer, 1, ++/*189465*/ OPC_CheckChild2Type, MVT::i32, ++/*189467*/ OPC_CheckChild3Integer, 1, ++/*189469*/ OPC_CheckChild3Type, MVT::i32, ++/*189471*/ OPC_CheckChild4Integer, 1, ++/*189473*/ OPC_CheckChild4Type, MVT::i32, ++/*189475*/ OPC_MoveChild5, ++/*189476*/ OPC_CheckInteger, 1, ++/*189478*/ OPC_CheckType, MVT::i32, ++/*189480*/ OPC_MoveParent, ++/*189481*/ OPC_MoveChild6, ++/*189482*/ OPC_CheckInteger, 1, ++/*189484*/ OPC_CheckType, MVT::i32, ++/*189486*/ OPC_MoveParent, ++/*189487*/ OPC_MoveChild7, ++/*189488*/ OPC_CheckInteger, 1, ++/*189490*/ OPC_CheckType, MVT::i32, ++/*189492*/ OPC_MoveParent, ++/*189493*/ OPC_MoveChild, 8, ++/*189495*/ OPC_CheckInteger, 1, ++/*189497*/ OPC_CheckType, MVT::i32, ++/*189499*/ OPC_MoveParent, ++/*189500*/ OPC_MoveChild, 9, ++/*189502*/ OPC_CheckInteger, 1, ++/*189504*/ OPC_CheckType, MVT::i32, ++/*189506*/ OPC_MoveParent, ++/*189507*/ OPC_MoveChild, 10, ++/*189509*/ OPC_CheckInteger, 1, ++/*189511*/ OPC_CheckType, MVT::i32, ++/*189513*/ OPC_MoveParent, ++/*189514*/ OPC_MoveChild, 11, ++/*189516*/ OPC_CheckInteger, 1, ++/*189518*/ OPC_CheckType, MVT::i32, ++/*189520*/ OPC_MoveParent, ++/*189521*/ OPC_MoveChild, 12, ++/*189523*/ OPC_CheckInteger, 1, ++/*189525*/ OPC_CheckType, MVT::i32, ++/*189527*/ OPC_MoveParent, ++/*189528*/ OPC_MoveChild, 13, ++/*189530*/ OPC_CheckInteger, 1, ++/*189532*/ OPC_CheckType, MVT::i32, ++/*189534*/ OPC_MoveParent, ++/*189535*/ OPC_MoveChild, 14, ++/*189537*/ OPC_CheckInteger, 1, ++/*189539*/ OPC_CheckType, MVT::i32, ++/*189541*/ OPC_MoveParent, ++/*189542*/ OPC_MoveChild, 15, ++/*189544*/ OPC_CheckInteger, 1, ++/*189546*/ OPC_CheckType, MVT::i32, ++/*189548*/ OPC_MoveParent, ++/*189549*/ OPC_MoveParent, ++/*189550*/ OPC_MoveParent, ++/*189551*/ OPC_MoveChild1, ++/*189552*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*189555*/ OPC_CheckChild0Integer, 7, ++/*189557*/ OPC_CheckChild0Type, MVT::i32, ++/*189559*/ OPC_CheckChild1Integer, 7, ++/*189561*/ OPC_CheckChild1Type, MVT::i32, ++/*189563*/ OPC_CheckChild2Integer, 7, ++/*189565*/ OPC_CheckChild2Type, MVT::i32, ++/*189567*/ OPC_CheckChild3Integer, 7, ++/*189569*/ OPC_CheckChild3Type, MVT::i32, ++/*189571*/ OPC_CheckChild4Integer, 7, ++/*189573*/ OPC_CheckChild4Type, MVT::i32, ++/*189575*/ OPC_MoveChild5, ++/*189576*/ OPC_CheckInteger, 7, ++/*189578*/ OPC_CheckType, MVT::i32, ++/*189580*/ OPC_MoveParent, ++/*189581*/ OPC_MoveChild6, ++/*189582*/ OPC_CheckInteger, 7, ++/*189584*/ OPC_CheckType, MVT::i32, ++/*189586*/ OPC_MoveParent, ++/*189587*/ OPC_MoveChild7, ++/*189588*/ OPC_CheckInteger, 7, ++/*189590*/ OPC_CheckType, MVT::i32, ++/*189592*/ OPC_MoveParent, ++/*189593*/ OPC_MoveChild, 8, ++/*189595*/ OPC_CheckInteger, 7, ++/*189597*/ OPC_CheckType, MVT::i32, ++/*189599*/ OPC_MoveParent, ++/*189600*/ OPC_MoveChild, 9, ++/*189602*/ OPC_CheckInteger, 7, ++/*189604*/ OPC_CheckType, MVT::i32, ++/*189606*/ OPC_MoveParent, ++/*189607*/ OPC_MoveChild, 10, ++/*189609*/ OPC_CheckInteger, 7, ++/*189611*/ OPC_CheckType, MVT::i32, ++/*189613*/ OPC_MoveParent, ++/*189614*/ OPC_MoveChild, 11, ++/*189616*/ OPC_CheckInteger, 7, ++/*189618*/ OPC_CheckType, MVT::i32, ++/*189620*/ OPC_MoveParent, ++/*189621*/ OPC_MoveChild, 12, ++/*189623*/ OPC_CheckInteger, 7, ++/*189625*/ OPC_CheckType, MVT::i32, ++/*189627*/ OPC_MoveParent, ++/*189628*/ OPC_MoveChild, 13, ++/*189630*/ OPC_CheckInteger, 7, ++/*189632*/ OPC_CheckType, MVT::i32, ++/*189634*/ OPC_MoveParent, ++/*189635*/ OPC_MoveChild, 14, ++/*189637*/ OPC_CheckInteger, 7, ++/*189639*/ OPC_CheckType, MVT::i32, ++/*189641*/ OPC_MoveParent, ++/*189642*/ OPC_MoveChild, 15, ++/*189644*/ OPC_CheckInteger, 7, ++/*189646*/ OPC_CheckType, MVT::i32, ++/*189648*/ OPC_MoveParent, ++/*189649*/ OPC_CheckType, MVT::v16i8, ++/*189651*/ OPC_MoveParent, ++/*189652*/ OPC_MoveParent, ++/*189653*/ OPC_MoveParent, ++/*189654*/ OPC_MoveChild1, ++/*189655*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*189658*/ OPC_CheckChild0Integer, 1, ++/*189660*/ OPC_CheckChild0Type, MVT::i32, ++/*189662*/ OPC_CheckChild1Integer, 1, ++/*189664*/ OPC_CheckChild1Type, MVT::i32, ++/*189666*/ OPC_CheckChild2Integer, 1, ++/*189668*/ OPC_CheckChild2Type, MVT::i32, ++/*189670*/ OPC_CheckChild3Integer, 1, ++/*189672*/ OPC_CheckChild3Type, MVT::i32, ++/*189674*/ OPC_CheckChild4Integer, 1, ++/*189676*/ OPC_CheckChild4Type, MVT::i32, ++/*189678*/ OPC_MoveChild5, ++/*189679*/ OPC_CheckInteger, 1, ++/*189681*/ OPC_CheckType, MVT::i32, ++/*189683*/ OPC_MoveParent, ++/*189684*/ OPC_MoveChild6, ++/*189685*/ OPC_CheckInteger, 1, ++/*189687*/ OPC_CheckType, MVT::i32, ++/*189689*/ OPC_MoveParent, ++/*189690*/ OPC_MoveChild7, ++/*189691*/ OPC_CheckInteger, 1, ++/*189693*/ OPC_CheckType, MVT::i32, ++/*189695*/ OPC_MoveParent, ++/*189696*/ OPC_MoveChild, 8, ++/*189698*/ OPC_CheckInteger, 1, ++/*189700*/ OPC_CheckType, MVT::i32, ++/*189702*/ OPC_MoveParent, ++/*189703*/ OPC_MoveChild, 9, ++/*189705*/ OPC_CheckInteger, 1, ++/*189707*/ OPC_CheckType, MVT::i32, ++/*189709*/ OPC_MoveParent, ++/*189710*/ OPC_MoveChild, 10, ++/*189712*/ OPC_CheckInteger, 1, ++/*189714*/ OPC_CheckType, MVT::i32, ++/*189716*/ OPC_MoveParent, ++/*189717*/ OPC_MoveChild, 11, ++/*189719*/ OPC_CheckInteger, 1, ++/*189721*/ OPC_CheckType, MVT::i32, ++/*189723*/ OPC_MoveParent, ++/*189724*/ OPC_MoveChild, 12, ++/*189726*/ OPC_CheckInteger, 1, ++/*189728*/ OPC_CheckType, MVT::i32, ++/*189730*/ OPC_MoveParent, ++/*189731*/ OPC_MoveChild, 13, ++/*189733*/ OPC_CheckInteger, 1, ++/*189735*/ OPC_CheckType, MVT::i32, ++/*189737*/ OPC_MoveParent, ++/*189738*/ OPC_MoveChild, 14, ++/*189740*/ OPC_CheckInteger, 1, ++/*189742*/ OPC_CheckType, MVT::i32, ++/*189744*/ OPC_MoveParent, ++/*189745*/ OPC_MoveChild, 15, ++/*189747*/ OPC_CheckInteger, 1, ++/*189749*/ OPC_CheckType, MVT::i32, ++/*189751*/ OPC_MoveParent, ++/*189752*/ OPC_CheckType, MVT::v16i8, ++/*189754*/ OPC_MoveParent, ++/*189755*/ OPC_CheckType, MVT::v16i8, ++/*189757*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*189759*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$a), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*189767*/ 0, /*End of Scope*/ ++/*189768*/ /*Scope*/ 10|128,5/*650*/, /*->190420*/ ++/*189770*/ OPC_CheckChild0Same, 0, ++/*189772*/ OPC_MoveChild1, ++/*189773*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*189776*/ OPC_Scope, 63|128,2/*319*/, /*->190098*/ // 2 children in Scope ++/*189779*/ OPC_MoveChild0, ++/*189780*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*189783*/ OPC_CheckChild0Integer, 1, ++/*189785*/ OPC_CheckChild0Type, MVT::i32, ++/*189787*/ OPC_CheckChild1Integer, 1, ++/*189789*/ OPC_CheckChild1Type, MVT::i32, ++/*189791*/ OPC_CheckChild2Integer, 1, ++/*189793*/ OPC_CheckChild2Type, MVT::i32, ++/*189795*/ OPC_CheckChild3Integer, 1, ++/*189797*/ OPC_CheckChild3Type, MVT::i32, ++/*189799*/ OPC_CheckChild4Integer, 1, ++/*189801*/ OPC_CheckChild4Type, MVT::i32, ++/*189803*/ OPC_MoveChild5, ++/*189804*/ OPC_CheckInteger, 1, ++/*189806*/ OPC_CheckType, MVT::i32, ++/*189808*/ OPC_MoveParent, ++/*189809*/ OPC_MoveChild6, ++/*189810*/ OPC_CheckInteger, 1, ++/*189812*/ OPC_CheckType, MVT::i32, ++/*189814*/ OPC_MoveParent, ++/*189815*/ OPC_MoveChild7, ++/*189816*/ OPC_CheckInteger, 1, ++/*189818*/ OPC_CheckType, MVT::i32, ++/*189820*/ OPC_MoveParent, ++/*189821*/ OPC_MoveChild, 8, ++/*189823*/ OPC_CheckInteger, 1, ++/*189825*/ OPC_CheckType, MVT::i32, ++/*189827*/ OPC_MoveParent, ++/*189828*/ OPC_MoveChild, 9, ++/*189830*/ OPC_CheckInteger, 1, ++/*189832*/ OPC_CheckType, MVT::i32, ++/*189834*/ OPC_MoveParent, ++/*189835*/ OPC_MoveChild, 10, ++/*189837*/ OPC_CheckInteger, 1, ++/*189839*/ OPC_CheckType, MVT::i32, ++/*189841*/ OPC_MoveParent, ++/*189842*/ OPC_MoveChild, 11, ++/*189844*/ OPC_CheckInteger, 1, ++/*189846*/ OPC_CheckType, MVT::i32, ++/*189848*/ OPC_MoveParent, ++/*189849*/ OPC_MoveChild, 12, ++/*189851*/ OPC_CheckInteger, 1, ++/*189853*/ OPC_CheckType, MVT::i32, ++/*189855*/ OPC_MoveParent, ++/*189856*/ OPC_MoveChild, 13, ++/*189858*/ OPC_CheckInteger, 1, ++/*189860*/ OPC_CheckType, MVT::i32, ++/*189862*/ OPC_MoveParent, ++/*189863*/ OPC_MoveChild, 14, ++/*189865*/ OPC_CheckInteger, 1, ++/*189867*/ OPC_CheckType, MVT::i32, ++/*189869*/ OPC_MoveParent, ++/*189870*/ OPC_MoveChild, 15, ++/*189872*/ OPC_CheckInteger, 1, ++/*189874*/ OPC_CheckType, MVT::i32, ++/*189876*/ OPC_MoveParent, ++/*189877*/ OPC_MoveParent, ++/*189878*/ OPC_CheckChild1Same, 1, ++/*189880*/ OPC_MoveParent, ++/*189881*/ OPC_MoveParent, ++/*189882*/ OPC_MoveChild1, ++/*189883*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*189886*/ OPC_CheckChild0Integer, 7, ++/*189888*/ OPC_CheckChild0Type, MVT::i32, ++/*189890*/ OPC_CheckChild1Integer, 7, ++/*189892*/ OPC_CheckChild1Type, MVT::i32, ++/*189894*/ OPC_CheckChild2Integer, 7, ++/*189896*/ OPC_CheckChild2Type, MVT::i32, ++/*189898*/ OPC_CheckChild3Integer, 7, ++/*189900*/ OPC_CheckChild3Type, MVT::i32, ++/*189902*/ OPC_CheckChild4Integer, 7, ++/*189904*/ OPC_CheckChild4Type, MVT::i32, ++/*189906*/ OPC_MoveChild5, ++/*189907*/ OPC_CheckInteger, 7, ++/*189909*/ OPC_CheckType, MVT::i32, ++/*189911*/ OPC_MoveParent, ++/*189912*/ OPC_MoveChild6, ++/*189913*/ OPC_CheckInteger, 7, ++/*189915*/ OPC_CheckType, MVT::i32, ++/*189917*/ OPC_MoveParent, ++/*189918*/ OPC_MoveChild7, ++/*189919*/ OPC_CheckInteger, 7, ++/*189921*/ OPC_CheckType, MVT::i32, ++/*189923*/ OPC_MoveParent, ++/*189924*/ OPC_MoveChild, 8, ++/*189926*/ OPC_CheckInteger, 7, ++/*189928*/ OPC_CheckType, MVT::i32, ++/*189930*/ OPC_MoveParent, ++/*189931*/ OPC_MoveChild, 9, ++/*189933*/ OPC_CheckInteger, 7, ++/*189935*/ OPC_CheckType, MVT::i32, ++/*189937*/ OPC_MoveParent, ++/*189938*/ OPC_MoveChild, 10, ++/*189940*/ OPC_CheckInteger, 7, ++/*189942*/ OPC_CheckType, MVT::i32, ++/*189944*/ OPC_MoveParent, ++/*189945*/ OPC_MoveChild, 11, ++/*189947*/ OPC_CheckInteger, 7, ++/*189949*/ OPC_CheckType, MVT::i32, ++/*189951*/ OPC_MoveParent, ++/*189952*/ OPC_MoveChild, 12, ++/*189954*/ OPC_CheckInteger, 7, ++/*189956*/ OPC_CheckType, MVT::i32, ++/*189958*/ OPC_MoveParent, ++/*189959*/ OPC_MoveChild, 13, ++/*189961*/ OPC_CheckInteger, 7, ++/*189963*/ OPC_CheckType, MVT::i32, ++/*189965*/ OPC_MoveParent, ++/*189966*/ OPC_MoveChild, 14, ++/*189968*/ OPC_CheckInteger, 7, ++/*189970*/ OPC_CheckType, MVT::i32, ++/*189972*/ OPC_MoveParent, ++/*189973*/ OPC_MoveChild, 15, ++/*189975*/ OPC_CheckInteger, 7, ++/*189977*/ OPC_CheckType, MVT::i32, ++/*189979*/ OPC_MoveParent, ++/*189980*/ OPC_CheckType, MVT::v16i8, ++/*189982*/ OPC_MoveParent, ++/*189983*/ OPC_MoveParent, ++/*189984*/ OPC_MoveParent, ++/*189985*/ OPC_MoveChild1, ++/*189986*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*189989*/ OPC_CheckChild0Integer, 1, ++/*189991*/ OPC_CheckChild0Type, MVT::i32, ++/*189993*/ OPC_CheckChild1Integer, 1, ++/*189995*/ OPC_CheckChild1Type, MVT::i32, ++/*189997*/ OPC_CheckChild2Integer, 1, ++/*189999*/ OPC_CheckChild2Type, MVT::i32, ++/*190001*/ OPC_CheckChild3Integer, 1, ++/*190003*/ OPC_CheckChild3Type, MVT::i32, ++/*190005*/ OPC_CheckChild4Integer, 1, ++/*190007*/ OPC_CheckChild4Type, MVT::i32, ++/*190009*/ OPC_MoveChild5, ++/*190010*/ OPC_CheckInteger, 1, ++/*190012*/ OPC_CheckType, MVT::i32, ++/*190014*/ OPC_MoveParent, ++/*190015*/ OPC_MoveChild6, ++/*190016*/ OPC_CheckInteger, 1, ++/*190018*/ OPC_CheckType, MVT::i32, ++/*190020*/ OPC_MoveParent, ++/*190021*/ OPC_MoveChild7, ++/*190022*/ OPC_CheckInteger, 1, ++/*190024*/ OPC_CheckType, MVT::i32, ++/*190026*/ OPC_MoveParent, ++/*190027*/ OPC_MoveChild, 8, ++/*190029*/ OPC_CheckInteger, 1, ++/*190031*/ OPC_CheckType, MVT::i32, ++/*190033*/ OPC_MoveParent, ++/*190034*/ OPC_MoveChild, 9, ++/*190036*/ OPC_CheckInteger, 1, ++/*190038*/ OPC_CheckType, MVT::i32, ++/*190040*/ OPC_MoveParent, ++/*190041*/ OPC_MoveChild, 10, ++/*190043*/ OPC_CheckInteger, 1, ++/*190045*/ OPC_CheckType, MVT::i32, ++/*190047*/ OPC_MoveParent, ++/*190048*/ OPC_MoveChild, 11, ++/*190050*/ OPC_CheckInteger, 1, ++/*190052*/ OPC_CheckType, MVT::i32, ++/*190054*/ OPC_MoveParent, ++/*190055*/ OPC_MoveChild, 12, ++/*190057*/ OPC_CheckInteger, 1, ++/*190059*/ OPC_CheckType, MVT::i32, ++/*190061*/ OPC_MoveParent, ++/*190062*/ OPC_MoveChild, 13, ++/*190064*/ OPC_CheckInteger, 1, ++/*190066*/ OPC_CheckType, MVT::i32, ++/*190068*/ OPC_MoveParent, ++/*190069*/ OPC_MoveChild, 14, ++/*190071*/ OPC_CheckInteger, 1, ++/*190073*/ OPC_CheckType, MVT::i32, ++/*190075*/ OPC_MoveParent, ++/*190076*/ OPC_MoveChild, 15, ++/*190078*/ OPC_CheckInteger, 1, ++/*190080*/ OPC_CheckType, MVT::i32, ++/*190082*/ OPC_MoveParent, ++/*190083*/ OPC_CheckType, MVT::v16i8, ++/*190085*/ OPC_MoveParent, ++/*190086*/ OPC_CheckType, MVT::v16i8, ++/*190088*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*190090*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$a), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*190098*/ /*Scope*/ 63|128,2/*319*/, /*->190419*/ ++/*190100*/ OPC_CheckChild0Same, 1, ++/*190102*/ OPC_MoveChild1, ++/*190103*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*190106*/ OPC_CheckChild0Integer, 1, ++/*190108*/ OPC_CheckChild0Type, MVT::i32, ++/*190110*/ OPC_CheckChild1Integer, 1, ++/*190112*/ OPC_CheckChild1Type, MVT::i32, ++/*190114*/ OPC_CheckChild2Integer, 1, ++/*190116*/ OPC_CheckChild2Type, MVT::i32, ++/*190118*/ OPC_CheckChild3Integer, 1, ++/*190120*/ OPC_CheckChild3Type, MVT::i32, ++/*190122*/ OPC_CheckChild4Integer, 1, ++/*190124*/ OPC_CheckChild4Type, MVT::i32, ++/*190126*/ OPC_MoveChild5, ++/*190127*/ OPC_CheckInteger, 1, ++/*190129*/ OPC_CheckType, MVT::i32, ++/*190131*/ OPC_MoveParent, ++/*190132*/ OPC_MoveChild6, ++/*190133*/ OPC_CheckInteger, 1, ++/*190135*/ OPC_CheckType, MVT::i32, ++/*190137*/ OPC_MoveParent, ++/*190138*/ OPC_MoveChild7, ++/*190139*/ OPC_CheckInteger, 1, ++/*190141*/ OPC_CheckType, MVT::i32, ++/*190143*/ OPC_MoveParent, ++/*190144*/ OPC_MoveChild, 8, ++/*190146*/ OPC_CheckInteger, 1, ++/*190148*/ OPC_CheckType, MVT::i32, ++/*190150*/ OPC_MoveParent, ++/*190151*/ OPC_MoveChild, 9, ++/*190153*/ OPC_CheckInteger, 1, ++/*190155*/ OPC_CheckType, MVT::i32, ++/*190157*/ OPC_MoveParent, ++/*190158*/ OPC_MoveChild, 10, ++/*190160*/ OPC_CheckInteger, 1, ++/*190162*/ OPC_CheckType, MVT::i32, ++/*190164*/ OPC_MoveParent, ++/*190165*/ OPC_MoveChild, 11, ++/*190167*/ OPC_CheckInteger, 1, ++/*190169*/ OPC_CheckType, MVT::i32, ++/*190171*/ OPC_MoveParent, ++/*190172*/ OPC_MoveChild, 12, ++/*190174*/ OPC_CheckInteger, 1, ++/*190176*/ OPC_CheckType, MVT::i32, ++/*190178*/ OPC_MoveParent, ++/*190179*/ OPC_MoveChild, 13, ++/*190181*/ OPC_CheckInteger, 1, ++/*190183*/ OPC_CheckType, MVT::i32, ++/*190185*/ OPC_MoveParent, ++/*190186*/ OPC_MoveChild, 14, ++/*190188*/ OPC_CheckInteger, 1, ++/*190190*/ OPC_CheckType, MVT::i32, ++/*190192*/ OPC_MoveParent, ++/*190193*/ OPC_MoveChild, 15, ++/*190195*/ OPC_CheckInteger, 1, ++/*190197*/ OPC_CheckType, MVT::i32, ++/*190199*/ OPC_MoveParent, ++/*190200*/ OPC_MoveParent, ++/*190201*/ OPC_MoveParent, ++/*190202*/ OPC_MoveParent, ++/*190203*/ OPC_MoveChild1, ++/*190204*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*190207*/ OPC_CheckChild0Integer, 7, ++/*190209*/ OPC_CheckChild0Type, MVT::i32, ++/*190211*/ OPC_CheckChild1Integer, 7, ++/*190213*/ OPC_CheckChild1Type, MVT::i32, ++/*190215*/ OPC_CheckChild2Integer, 7, ++/*190217*/ OPC_CheckChild2Type, MVT::i32, ++/*190219*/ OPC_CheckChild3Integer, 7, ++/*190221*/ OPC_CheckChild3Type, MVT::i32, ++/*190223*/ OPC_CheckChild4Integer, 7, ++/*190225*/ OPC_CheckChild4Type, MVT::i32, ++/*190227*/ OPC_MoveChild5, ++/*190228*/ OPC_CheckInteger, 7, ++/*190230*/ OPC_CheckType, MVT::i32, ++/*190232*/ OPC_MoveParent, ++/*190233*/ OPC_MoveChild6, ++/*190234*/ OPC_CheckInteger, 7, ++/*190236*/ OPC_CheckType, MVT::i32, ++/*190238*/ OPC_MoveParent, ++/*190239*/ OPC_MoveChild7, ++/*190240*/ OPC_CheckInteger, 7, ++/*190242*/ OPC_CheckType, MVT::i32, ++/*190244*/ OPC_MoveParent, ++/*190245*/ OPC_MoveChild, 8, ++/*190247*/ OPC_CheckInteger, 7, ++/*190249*/ OPC_CheckType, MVT::i32, ++/*190251*/ OPC_MoveParent, ++/*190252*/ OPC_MoveChild, 9, ++/*190254*/ OPC_CheckInteger, 7, ++/*190256*/ OPC_CheckType, MVT::i32, ++/*190258*/ OPC_MoveParent, ++/*190259*/ OPC_MoveChild, 10, ++/*190261*/ OPC_CheckInteger, 7, ++/*190263*/ OPC_CheckType, MVT::i32, ++/*190265*/ OPC_MoveParent, ++/*190266*/ OPC_MoveChild, 11, ++/*190268*/ OPC_CheckInteger, 7, ++/*190270*/ OPC_CheckType, MVT::i32, ++/*190272*/ OPC_MoveParent, ++/*190273*/ OPC_MoveChild, 12, ++/*190275*/ OPC_CheckInteger, 7, ++/*190277*/ OPC_CheckType, MVT::i32, ++/*190279*/ OPC_MoveParent, ++/*190280*/ OPC_MoveChild, 13, ++/*190282*/ OPC_CheckInteger, 7, ++/*190284*/ OPC_CheckType, MVT::i32, ++/*190286*/ OPC_MoveParent, ++/*190287*/ OPC_MoveChild, 14, ++/*190289*/ OPC_CheckInteger, 7, ++/*190291*/ OPC_CheckType, MVT::i32, ++/*190293*/ OPC_MoveParent, ++/*190294*/ OPC_MoveChild, 15, ++/*190296*/ OPC_CheckInteger, 7, ++/*190298*/ OPC_CheckType, MVT::i32, ++/*190300*/ OPC_MoveParent, ++/*190301*/ OPC_CheckType, MVT::v16i8, ++/*190303*/ OPC_MoveParent, ++/*190304*/ OPC_MoveParent, ++/*190305*/ OPC_MoveParent, ++/*190306*/ OPC_MoveChild1, ++/*190307*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*190310*/ OPC_CheckChild0Integer, 1, ++/*190312*/ OPC_CheckChild0Type, MVT::i32, ++/*190314*/ OPC_CheckChild1Integer, 1, ++/*190316*/ OPC_CheckChild1Type, MVT::i32, ++/*190318*/ OPC_CheckChild2Integer, 1, ++/*190320*/ OPC_CheckChild2Type, MVT::i32, ++/*190322*/ OPC_CheckChild3Integer, 1, ++/*190324*/ OPC_CheckChild3Type, MVT::i32, ++/*190326*/ OPC_CheckChild4Integer, 1, ++/*190328*/ OPC_CheckChild4Type, MVT::i32, ++/*190330*/ OPC_MoveChild5, ++/*190331*/ OPC_CheckInteger, 1, ++/*190333*/ OPC_CheckType, MVT::i32, ++/*190335*/ OPC_MoveParent, ++/*190336*/ OPC_MoveChild6, ++/*190337*/ OPC_CheckInteger, 1, ++/*190339*/ OPC_CheckType, MVT::i32, ++/*190341*/ OPC_MoveParent, ++/*190342*/ OPC_MoveChild7, ++/*190343*/ OPC_CheckInteger, 1, ++/*190345*/ OPC_CheckType, MVT::i32, ++/*190347*/ OPC_MoveParent, ++/*190348*/ OPC_MoveChild, 8, ++/*190350*/ OPC_CheckInteger, 1, ++/*190352*/ OPC_CheckType, MVT::i32, ++/*190354*/ OPC_MoveParent, ++/*190355*/ OPC_MoveChild, 9, ++/*190357*/ OPC_CheckInteger, 1, ++/*190359*/ OPC_CheckType, MVT::i32, ++/*190361*/ OPC_MoveParent, ++/*190362*/ OPC_MoveChild, 10, ++/*190364*/ OPC_CheckInteger, 1, ++/*190366*/ OPC_CheckType, MVT::i32, ++/*190368*/ OPC_MoveParent, ++/*190369*/ OPC_MoveChild, 11, ++/*190371*/ OPC_CheckInteger, 1, ++/*190373*/ OPC_CheckType, MVT::i32, ++/*190375*/ OPC_MoveParent, ++/*190376*/ OPC_MoveChild, 12, ++/*190378*/ OPC_CheckInteger, 1, ++/*190380*/ OPC_CheckType, MVT::i32, ++/*190382*/ OPC_MoveParent, ++/*190383*/ OPC_MoveChild, 13, ++/*190385*/ OPC_CheckInteger, 1, ++/*190387*/ OPC_CheckType, MVT::i32, ++/*190389*/ OPC_MoveParent, ++/*190390*/ OPC_MoveChild, 14, ++/*190392*/ OPC_CheckInteger, 1, ++/*190394*/ OPC_CheckType, MVT::i32, ++/*190396*/ OPC_MoveParent, ++/*190397*/ OPC_MoveChild, 15, ++/*190399*/ OPC_CheckInteger, 1, ++/*190401*/ OPC_CheckType, MVT::i32, ++/*190403*/ OPC_MoveParent, ++/*190404*/ OPC_CheckType, MVT::v16i8, ++/*190406*/ OPC_MoveParent, ++/*190407*/ OPC_CheckType, MVT::v16i8, ++/*190409*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*190411*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$a), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*190419*/ 0, /*End of Scope*/ ++/*190420*/ /*Scope*/ 10|128,5/*650*/, /*->191072*/ ++/*190422*/ OPC_CheckChild0Same, 1, ++/*190424*/ OPC_MoveChild1, ++/*190425*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*190428*/ OPC_Scope, 63|128,2/*319*/, /*->190750*/ // 2 children in Scope ++/*190431*/ OPC_MoveChild0, ++/*190432*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*190435*/ OPC_CheckChild0Integer, 1, ++/*190437*/ OPC_CheckChild0Type, MVT::i32, ++/*190439*/ OPC_CheckChild1Integer, 1, ++/*190441*/ OPC_CheckChild1Type, MVT::i32, ++/*190443*/ OPC_CheckChild2Integer, 1, ++/*190445*/ OPC_CheckChild2Type, MVT::i32, ++/*190447*/ OPC_CheckChild3Integer, 1, ++/*190449*/ OPC_CheckChild3Type, MVT::i32, ++/*190451*/ OPC_CheckChild4Integer, 1, ++/*190453*/ OPC_CheckChild4Type, MVT::i32, ++/*190455*/ OPC_MoveChild5, ++/*190456*/ OPC_CheckInteger, 1, ++/*190458*/ OPC_CheckType, MVT::i32, ++/*190460*/ OPC_MoveParent, ++/*190461*/ OPC_MoveChild6, ++/*190462*/ OPC_CheckInteger, 1, ++/*190464*/ OPC_CheckType, MVT::i32, ++/*190466*/ OPC_MoveParent, ++/*190467*/ OPC_MoveChild7, ++/*190468*/ OPC_CheckInteger, 1, ++/*190470*/ OPC_CheckType, MVT::i32, ++/*190472*/ OPC_MoveParent, ++/*190473*/ OPC_MoveChild, 8, ++/*190475*/ OPC_CheckInteger, 1, ++/*190477*/ OPC_CheckType, MVT::i32, ++/*190479*/ OPC_MoveParent, ++/*190480*/ OPC_MoveChild, 9, ++/*190482*/ OPC_CheckInteger, 1, ++/*190484*/ OPC_CheckType, MVT::i32, ++/*190486*/ OPC_MoveParent, ++/*190487*/ OPC_MoveChild, 10, ++/*190489*/ OPC_CheckInteger, 1, ++/*190491*/ OPC_CheckType, MVT::i32, ++/*190493*/ OPC_MoveParent, ++/*190494*/ OPC_MoveChild, 11, ++/*190496*/ OPC_CheckInteger, 1, ++/*190498*/ OPC_CheckType, MVT::i32, ++/*190500*/ OPC_MoveParent, ++/*190501*/ OPC_MoveChild, 12, ++/*190503*/ OPC_CheckInteger, 1, ++/*190505*/ OPC_CheckType, MVT::i32, ++/*190507*/ OPC_MoveParent, ++/*190508*/ OPC_MoveChild, 13, ++/*190510*/ OPC_CheckInteger, 1, ++/*190512*/ OPC_CheckType, MVT::i32, ++/*190514*/ OPC_MoveParent, ++/*190515*/ OPC_MoveChild, 14, ++/*190517*/ OPC_CheckInteger, 1, ++/*190519*/ OPC_CheckType, MVT::i32, ++/*190521*/ OPC_MoveParent, ++/*190522*/ OPC_MoveChild, 15, ++/*190524*/ OPC_CheckInteger, 1, ++/*190526*/ OPC_CheckType, MVT::i32, ++/*190528*/ OPC_MoveParent, ++/*190529*/ OPC_MoveParent, ++/*190530*/ OPC_CheckChild1Same, 0, ++/*190532*/ OPC_MoveParent, ++/*190533*/ OPC_MoveParent, ++/*190534*/ OPC_MoveChild1, ++/*190535*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*190538*/ OPC_CheckChild0Integer, 7, ++/*190540*/ OPC_CheckChild0Type, MVT::i32, ++/*190542*/ OPC_CheckChild1Integer, 7, ++/*190544*/ OPC_CheckChild1Type, MVT::i32, ++/*190546*/ OPC_CheckChild2Integer, 7, ++/*190548*/ OPC_CheckChild2Type, MVT::i32, ++/*190550*/ OPC_CheckChild3Integer, 7, ++/*190552*/ OPC_CheckChild3Type, MVT::i32, ++/*190554*/ OPC_CheckChild4Integer, 7, ++/*190556*/ OPC_CheckChild4Type, MVT::i32, ++/*190558*/ OPC_MoveChild5, ++/*190559*/ OPC_CheckInteger, 7, ++/*190561*/ OPC_CheckType, MVT::i32, ++/*190563*/ OPC_MoveParent, ++/*190564*/ OPC_MoveChild6, ++/*190565*/ OPC_CheckInteger, 7, ++/*190567*/ OPC_CheckType, MVT::i32, ++/*190569*/ OPC_MoveParent, ++/*190570*/ OPC_MoveChild7, ++/*190571*/ OPC_CheckInteger, 7, ++/*190573*/ OPC_CheckType, MVT::i32, ++/*190575*/ OPC_MoveParent, ++/*190576*/ OPC_MoveChild, 8, ++/*190578*/ OPC_CheckInteger, 7, ++/*190580*/ OPC_CheckType, MVT::i32, ++/*190582*/ OPC_MoveParent, ++/*190583*/ OPC_MoveChild, 9, ++/*190585*/ OPC_CheckInteger, 7, ++/*190587*/ OPC_CheckType, MVT::i32, ++/*190589*/ OPC_MoveParent, ++/*190590*/ OPC_MoveChild, 10, ++/*190592*/ OPC_CheckInteger, 7, ++/*190594*/ OPC_CheckType, MVT::i32, ++/*190596*/ OPC_MoveParent, ++/*190597*/ OPC_MoveChild, 11, ++/*190599*/ OPC_CheckInteger, 7, ++/*190601*/ OPC_CheckType, MVT::i32, ++/*190603*/ OPC_MoveParent, ++/*190604*/ OPC_MoveChild, 12, ++/*190606*/ OPC_CheckInteger, 7, ++/*190608*/ OPC_CheckType, MVT::i32, ++/*190610*/ OPC_MoveParent, ++/*190611*/ OPC_MoveChild, 13, ++/*190613*/ OPC_CheckInteger, 7, ++/*190615*/ OPC_CheckType, MVT::i32, ++/*190617*/ OPC_MoveParent, ++/*190618*/ OPC_MoveChild, 14, ++/*190620*/ OPC_CheckInteger, 7, ++/*190622*/ OPC_CheckType, MVT::i32, ++/*190624*/ OPC_MoveParent, ++/*190625*/ OPC_MoveChild, 15, ++/*190627*/ OPC_CheckInteger, 7, ++/*190629*/ OPC_CheckType, MVT::i32, ++/*190631*/ OPC_MoveParent, ++/*190632*/ OPC_CheckType, MVT::v16i8, ++/*190634*/ OPC_MoveParent, ++/*190635*/ OPC_MoveParent, ++/*190636*/ OPC_MoveParent, ++/*190637*/ OPC_MoveChild1, ++/*190638*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*190641*/ OPC_CheckChild0Integer, 1, ++/*190643*/ OPC_CheckChild0Type, MVT::i32, ++/*190645*/ OPC_CheckChild1Integer, 1, ++/*190647*/ OPC_CheckChild1Type, MVT::i32, ++/*190649*/ OPC_CheckChild2Integer, 1, ++/*190651*/ OPC_CheckChild2Type, MVT::i32, ++/*190653*/ OPC_CheckChild3Integer, 1, ++/*190655*/ OPC_CheckChild3Type, MVT::i32, ++/*190657*/ OPC_CheckChild4Integer, 1, ++/*190659*/ OPC_CheckChild4Type, MVT::i32, ++/*190661*/ OPC_MoveChild5, ++/*190662*/ OPC_CheckInteger, 1, ++/*190664*/ OPC_CheckType, MVT::i32, ++/*190666*/ OPC_MoveParent, ++/*190667*/ OPC_MoveChild6, ++/*190668*/ OPC_CheckInteger, 1, ++/*190670*/ OPC_CheckType, MVT::i32, ++/*190672*/ OPC_MoveParent, ++/*190673*/ OPC_MoveChild7, ++/*190674*/ OPC_CheckInteger, 1, ++/*190676*/ OPC_CheckType, MVT::i32, ++/*190678*/ OPC_MoveParent, ++/*190679*/ OPC_MoveChild, 8, ++/*190681*/ OPC_CheckInteger, 1, ++/*190683*/ OPC_CheckType, MVT::i32, ++/*190685*/ OPC_MoveParent, ++/*190686*/ OPC_MoveChild, 9, ++/*190688*/ OPC_CheckInteger, 1, ++/*190690*/ OPC_CheckType, MVT::i32, ++/*190692*/ OPC_MoveParent, ++/*190693*/ OPC_MoveChild, 10, ++/*190695*/ OPC_CheckInteger, 1, ++/*190697*/ OPC_CheckType, MVT::i32, ++/*190699*/ OPC_MoveParent, ++/*190700*/ OPC_MoveChild, 11, ++/*190702*/ OPC_CheckInteger, 1, ++/*190704*/ OPC_CheckType, MVT::i32, ++/*190706*/ OPC_MoveParent, ++/*190707*/ OPC_MoveChild, 12, ++/*190709*/ OPC_CheckInteger, 1, ++/*190711*/ OPC_CheckType, MVT::i32, ++/*190713*/ OPC_MoveParent, ++/*190714*/ OPC_MoveChild, 13, ++/*190716*/ OPC_CheckInteger, 1, ++/*190718*/ OPC_CheckType, MVT::i32, ++/*190720*/ OPC_MoveParent, ++/*190721*/ OPC_MoveChild, 14, ++/*190723*/ OPC_CheckInteger, 1, ++/*190725*/ OPC_CheckType, MVT::i32, ++/*190727*/ OPC_MoveParent, ++/*190728*/ OPC_MoveChild, 15, ++/*190730*/ OPC_CheckInteger, 1, ++/*190732*/ OPC_CheckType, MVT::i32, ++/*190734*/ OPC_MoveParent, ++/*190735*/ OPC_CheckType, MVT::v16i8, ++/*190737*/ OPC_MoveParent, ++/*190738*/ OPC_CheckType, MVT::v16i8, ++/*190740*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*190742*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$a), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*190750*/ /*Scope*/ 63|128,2/*319*/, /*->191071*/ ++/*190752*/ OPC_CheckChild0Same, 0, ++/*190754*/ OPC_MoveChild1, ++/*190755*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*190758*/ OPC_CheckChild0Integer, 1, ++/*190760*/ OPC_CheckChild0Type, MVT::i32, ++/*190762*/ OPC_CheckChild1Integer, 1, ++/*190764*/ OPC_CheckChild1Type, MVT::i32, ++/*190766*/ OPC_CheckChild2Integer, 1, ++/*190768*/ OPC_CheckChild2Type, MVT::i32, ++/*190770*/ OPC_CheckChild3Integer, 1, ++/*190772*/ OPC_CheckChild3Type, MVT::i32, ++/*190774*/ OPC_CheckChild4Integer, 1, ++/*190776*/ OPC_CheckChild4Type, MVT::i32, ++/*190778*/ OPC_MoveChild5, ++/*190779*/ OPC_CheckInteger, 1, ++/*190781*/ OPC_CheckType, MVT::i32, ++/*190783*/ OPC_MoveParent, ++/*190784*/ OPC_MoveChild6, ++/*190785*/ OPC_CheckInteger, 1, ++/*190787*/ OPC_CheckType, MVT::i32, ++/*190789*/ OPC_MoveParent, ++/*190790*/ OPC_MoveChild7, ++/*190791*/ OPC_CheckInteger, 1, ++/*190793*/ OPC_CheckType, MVT::i32, ++/*190795*/ OPC_MoveParent, ++/*190796*/ OPC_MoveChild, 8, ++/*190798*/ OPC_CheckInteger, 1, ++/*190800*/ OPC_CheckType, MVT::i32, ++/*190802*/ OPC_MoveParent, ++/*190803*/ OPC_MoveChild, 9, ++/*190805*/ OPC_CheckInteger, 1, ++/*190807*/ OPC_CheckType, MVT::i32, ++/*190809*/ OPC_MoveParent, ++/*190810*/ OPC_MoveChild, 10, ++/*190812*/ OPC_CheckInteger, 1, ++/*190814*/ OPC_CheckType, MVT::i32, ++/*190816*/ OPC_MoveParent, ++/*190817*/ OPC_MoveChild, 11, ++/*190819*/ OPC_CheckInteger, 1, ++/*190821*/ OPC_CheckType, MVT::i32, ++/*190823*/ OPC_MoveParent, ++/*190824*/ OPC_MoveChild, 12, ++/*190826*/ OPC_CheckInteger, 1, ++/*190828*/ OPC_CheckType, MVT::i32, ++/*190830*/ OPC_MoveParent, ++/*190831*/ OPC_MoveChild, 13, ++/*190833*/ OPC_CheckInteger, 1, ++/*190835*/ OPC_CheckType, MVT::i32, ++/*190837*/ OPC_MoveParent, ++/*190838*/ OPC_MoveChild, 14, ++/*190840*/ OPC_CheckInteger, 1, ++/*190842*/ OPC_CheckType, MVT::i32, ++/*190844*/ OPC_MoveParent, ++/*190845*/ OPC_MoveChild, 15, ++/*190847*/ OPC_CheckInteger, 1, ++/*190849*/ OPC_CheckType, MVT::i32, ++/*190851*/ OPC_MoveParent, ++/*190852*/ OPC_MoveParent, ++/*190853*/ OPC_MoveParent, ++/*190854*/ OPC_MoveParent, ++/*190855*/ OPC_MoveChild1, ++/*190856*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*190859*/ OPC_CheckChild0Integer, 7, ++/*190861*/ OPC_CheckChild0Type, MVT::i32, ++/*190863*/ OPC_CheckChild1Integer, 7, ++/*190865*/ OPC_CheckChild1Type, MVT::i32, ++/*190867*/ OPC_CheckChild2Integer, 7, ++/*190869*/ OPC_CheckChild2Type, MVT::i32, ++/*190871*/ OPC_CheckChild3Integer, 7, ++/*190873*/ OPC_CheckChild3Type, MVT::i32, ++/*190875*/ OPC_CheckChild4Integer, 7, ++/*190877*/ OPC_CheckChild4Type, MVT::i32, ++/*190879*/ OPC_MoveChild5, ++/*190880*/ OPC_CheckInteger, 7, ++/*190882*/ OPC_CheckType, MVT::i32, ++/*190884*/ OPC_MoveParent, ++/*190885*/ OPC_MoveChild6, ++/*190886*/ OPC_CheckInteger, 7, ++/*190888*/ OPC_CheckType, MVT::i32, ++/*190890*/ OPC_MoveParent, ++/*190891*/ OPC_MoveChild7, ++/*190892*/ OPC_CheckInteger, 7, ++/*190894*/ OPC_CheckType, MVT::i32, ++/*190896*/ OPC_MoveParent, ++/*190897*/ OPC_MoveChild, 8, ++/*190899*/ OPC_CheckInteger, 7, ++/*190901*/ OPC_CheckType, MVT::i32, ++/*190903*/ OPC_MoveParent, ++/*190904*/ OPC_MoveChild, 9, ++/*190906*/ OPC_CheckInteger, 7, ++/*190908*/ OPC_CheckType, MVT::i32, ++/*190910*/ OPC_MoveParent, ++/*190911*/ OPC_MoveChild, 10, ++/*190913*/ OPC_CheckInteger, 7, ++/*190915*/ OPC_CheckType, MVT::i32, ++/*190917*/ OPC_MoveParent, ++/*190918*/ OPC_MoveChild, 11, ++/*190920*/ OPC_CheckInteger, 7, ++/*190922*/ OPC_CheckType, MVT::i32, ++/*190924*/ OPC_MoveParent, ++/*190925*/ OPC_MoveChild, 12, ++/*190927*/ OPC_CheckInteger, 7, ++/*190929*/ OPC_CheckType, MVT::i32, ++/*190931*/ OPC_MoveParent, ++/*190932*/ OPC_MoveChild, 13, ++/*190934*/ OPC_CheckInteger, 7, ++/*190936*/ OPC_CheckType, MVT::i32, ++/*190938*/ OPC_MoveParent, ++/*190939*/ OPC_MoveChild, 14, ++/*190941*/ OPC_CheckInteger, 7, ++/*190943*/ OPC_CheckType, MVT::i32, ++/*190945*/ OPC_MoveParent, ++/*190946*/ OPC_MoveChild, 15, ++/*190948*/ OPC_CheckInteger, 7, ++/*190950*/ OPC_CheckType, MVT::i32, ++/*190952*/ OPC_MoveParent, ++/*190953*/ OPC_CheckType, MVT::v16i8, ++/*190955*/ OPC_MoveParent, ++/*190956*/ OPC_MoveParent, ++/*190957*/ OPC_MoveParent, ++/*190958*/ OPC_MoveChild1, ++/*190959*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*190962*/ OPC_CheckChild0Integer, 1, ++/*190964*/ OPC_CheckChild0Type, MVT::i32, ++/*190966*/ OPC_CheckChild1Integer, 1, ++/*190968*/ OPC_CheckChild1Type, MVT::i32, ++/*190970*/ OPC_CheckChild2Integer, 1, ++/*190972*/ OPC_CheckChild2Type, MVT::i32, ++/*190974*/ OPC_CheckChild3Integer, 1, ++/*190976*/ OPC_CheckChild3Type, MVT::i32, ++/*190978*/ OPC_CheckChild4Integer, 1, ++/*190980*/ OPC_CheckChild4Type, MVT::i32, ++/*190982*/ OPC_MoveChild5, ++/*190983*/ OPC_CheckInteger, 1, ++/*190985*/ OPC_CheckType, MVT::i32, ++/*190987*/ OPC_MoveParent, ++/*190988*/ OPC_MoveChild6, ++/*190989*/ OPC_CheckInteger, 1, ++/*190991*/ OPC_CheckType, MVT::i32, ++/*190993*/ OPC_MoveParent, ++/*190994*/ OPC_MoveChild7, ++/*190995*/ OPC_CheckInteger, 1, ++/*190997*/ OPC_CheckType, MVT::i32, ++/*190999*/ OPC_MoveParent, ++/*191000*/ OPC_MoveChild, 8, ++/*191002*/ OPC_CheckInteger, 1, ++/*191004*/ OPC_CheckType, MVT::i32, ++/*191006*/ OPC_MoveParent, ++/*191007*/ OPC_MoveChild, 9, ++/*191009*/ OPC_CheckInteger, 1, ++/*191011*/ OPC_CheckType, MVT::i32, ++/*191013*/ OPC_MoveParent, ++/*191014*/ OPC_MoveChild, 10, ++/*191016*/ OPC_CheckInteger, 1, ++/*191018*/ OPC_CheckType, MVT::i32, ++/*191020*/ OPC_MoveParent, ++/*191021*/ OPC_MoveChild, 11, ++/*191023*/ OPC_CheckInteger, 1, ++/*191025*/ OPC_CheckType, MVT::i32, ++/*191027*/ OPC_MoveParent, ++/*191028*/ OPC_MoveChild, 12, ++/*191030*/ OPC_CheckInteger, 1, ++/*191032*/ OPC_CheckType, MVT::i32, ++/*191034*/ OPC_MoveParent, ++/*191035*/ OPC_MoveChild, 13, ++/*191037*/ OPC_CheckInteger, 1, ++/*191039*/ OPC_CheckType, MVT::i32, ++/*191041*/ OPC_MoveParent, ++/*191042*/ OPC_MoveChild, 14, ++/*191044*/ OPC_CheckInteger, 1, ++/*191046*/ OPC_CheckType, MVT::i32, ++/*191048*/ OPC_MoveParent, ++/*191049*/ OPC_MoveChild, 15, ++/*191051*/ OPC_CheckInteger, 1, ++/*191053*/ OPC_CheckType, MVT::i32, ++/*191055*/ OPC_MoveParent, ++/*191056*/ OPC_CheckType, MVT::v16i8, ++/*191058*/ OPC_MoveParent, ++/*191059*/ OPC_CheckType, MVT::v16i8, ++/*191061*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*191063*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$a), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*191071*/ 0, /*End of Scope*/ ++/*191072*/ /*Scope*/ 41|128,4/*553*/, /*->191627*/ ++/*191074*/ OPC_MoveChild0, ++/*191075*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*191078*/ OPC_CheckChild0Integer, 1, ++/*191080*/ OPC_CheckChild0Type, MVT::i32, ++/*191082*/ OPC_CheckChild1Integer, 1, ++/*191084*/ OPC_CheckChild1Type, MVT::i32, ++/*191086*/ OPC_CheckChild2Integer, 1, ++/*191088*/ OPC_CheckChild2Type, MVT::i32, ++/*191090*/ OPC_CheckChild3Integer, 1, ++/*191092*/ OPC_CheckChild3Type, MVT::i32, ++/*191094*/ OPC_CheckChild4Integer, 1, ++/*191096*/ OPC_CheckChild4Type, MVT::i32, ++/*191098*/ OPC_MoveChild5, ++/*191099*/ OPC_CheckInteger, 1, ++/*191101*/ OPC_CheckType, MVT::i32, ++/*191103*/ OPC_MoveParent, ++/*191104*/ OPC_MoveChild6, ++/*191105*/ OPC_CheckInteger, 1, ++/*191107*/ OPC_CheckType, MVT::i32, ++/*191109*/ OPC_MoveParent, ++/*191110*/ OPC_MoveChild7, ++/*191111*/ OPC_CheckInteger, 1, ++/*191113*/ OPC_CheckType, MVT::i32, ++/*191115*/ OPC_MoveParent, ++/*191116*/ OPC_MoveChild, 8, ++/*191118*/ OPC_CheckInteger, 1, ++/*191120*/ OPC_CheckType, MVT::i32, ++/*191122*/ OPC_MoveParent, ++/*191123*/ OPC_MoveChild, 9, ++/*191125*/ OPC_CheckInteger, 1, ++/*191127*/ OPC_CheckType, MVT::i32, ++/*191129*/ OPC_MoveParent, ++/*191130*/ OPC_MoveChild, 10, ++/*191132*/ OPC_CheckInteger, 1, ++/*191134*/ OPC_CheckType, MVT::i32, ++/*191136*/ OPC_MoveParent, ++/*191137*/ OPC_MoveChild, 11, ++/*191139*/ OPC_CheckInteger, 1, ++/*191141*/ OPC_CheckType, MVT::i32, ++/*191143*/ OPC_MoveParent, ++/*191144*/ OPC_MoveChild, 12, ++/*191146*/ OPC_CheckInteger, 1, ++/*191148*/ OPC_CheckType, MVT::i32, ++/*191150*/ OPC_MoveParent, ++/*191151*/ OPC_MoveChild, 13, ++/*191153*/ OPC_CheckInteger, 1, ++/*191155*/ OPC_CheckType, MVT::i32, ++/*191157*/ OPC_MoveParent, ++/*191158*/ OPC_MoveChild, 14, ++/*191160*/ OPC_CheckInteger, 1, ++/*191162*/ OPC_CheckType, MVT::i32, ++/*191164*/ OPC_MoveParent, ++/*191165*/ OPC_MoveChild, 15, ++/*191167*/ OPC_CheckInteger, 1, ++/*191169*/ OPC_CheckType, MVT::i32, ++/*191171*/ OPC_MoveParent, ++/*191172*/ OPC_MoveParent, ++/*191173*/ OPC_MoveChild1, ++/*191174*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*191177*/ OPC_Scope, 94|128,1/*222*/, /*->191402*/ // 2 children in Scope ++/*191180*/ OPC_CheckChild0Same, 1, ++/*191182*/ OPC_CheckChild1Same, 0, ++/*191184*/ OPC_MoveParent, ++/*191185*/ OPC_MoveParent, ++/*191186*/ OPC_MoveChild1, ++/*191187*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*191190*/ OPC_CheckChild0Integer, 7, ++/*191192*/ OPC_CheckChild0Type, MVT::i32, ++/*191194*/ OPC_CheckChild1Integer, 7, ++/*191196*/ OPC_CheckChild1Type, MVT::i32, ++/*191198*/ OPC_CheckChild2Integer, 7, ++/*191200*/ OPC_CheckChild2Type, MVT::i32, ++/*191202*/ OPC_CheckChild3Integer, 7, ++/*191204*/ OPC_CheckChild3Type, MVT::i32, ++/*191206*/ OPC_CheckChild4Integer, 7, ++/*191208*/ OPC_CheckChild4Type, MVT::i32, ++/*191210*/ OPC_MoveChild5, ++/*191211*/ OPC_CheckInteger, 7, ++/*191213*/ OPC_CheckType, MVT::i32, ++/*191215*/ OPC_MoveParent, ++/*191216*/ OPC_MoveChild6, ++/*191217*/ OPC_CheckInteger, 7, ++/*191219*/ OPC_CheckType, MVT::i32, ++/*191221*/ OPC_MoveParent, ++/*191222*/ OPC_MoveChild7, ++/*191223*/ OPC_CheckInteger, 7, ++/*191225*/ OPC_CheckType, MVT::i32, ++/*191227*/ OPC_MoveParent, ++/*191228*/ OPC_MoveChild, 8, ++/*191230*/ OPC_CheckInteger, 7, ++/*191232*/ OPC_CheckType, MVT::i32, ++/*191234*/ OPC_MoveParent, ++/*191235*/ OPC_MoveChild, 9, ++/*191237*/ OPC_CheckInteger, 7, ++/*191239*/ OPC_CheckType, MVT::i32, ++/*191241*/ OPC_MoveParent, ++/*191242*/ OPC_MoveChild, 10, ++/*191244*/ OPC_CheckInteger, 7, ++/*191246*/ OPC_CheckType, MVT::i32, ++/*191248*/ OPC_MoveParent, ++/*191249*/ OPC_MoveChild, 11, ++/*191251*/ OPC_CheckInteger, 7, ++/*191253*/ OPC_CheckType, MVT::i32, ++/*191255*/ OPC_MoveParent, ++/*191256*/ OPC_MoveChild, 12, ++/*191258*/ OPC_CheckInteger, 7, ++/*191260*/ OPC_CheckType, MVT::i32, ++/*191262*/ OPC_MoveParent, ++/*191263*/ OPC_MoveChild, 13, ++/*191265*/ OPC_CheckInteger, 7, ++/*191267*/ OPC_CheckType, MVT::i32, ++/*191269*/ OPC_MoveParent, ++/*191270*/ OPC_MoveChild, 14, ++/*191272*/ OPC_CheckInteger, 7, ++/*191274*/ OPC_CheckType, MVT::i32, ++/*191276*/ OPC_MoveParent, ++/*191277*/ OPC_MoveChild, 15, ++/*191279*/ OPC_CheckInteger, 7, ++/*191281*/ OPC_CheckType, MVT::i32, ++/*191283*/ OPC_MoveParent, ++/*191284*/ OPC_CheckType, MVT::v16i8, ++/*191286*/ OPC_MoveParent, ++/*191287*/ OPC_MoveParent, ++/*191288*/ OPC_MoveParent, ++/*191289*/ OPC_MoveChild1, ++/*191290*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*191293*/ OPC_CheckChild0Integer, 1, ++/*191295*/ OPC_CheckChild0Type, MVT::i32, ++/*191297*/ OPC_CheckChild1Integer, 1, ++/*191299*/ OPC_CheckChild1Type, MVT::i32, ++/*191301*/ OPC_CheckChild2Integer, 1, ++/*191303*/ OPC_CheckChild2Type, MVT::i32, ++/*191305*/ OPC_CheckChild3Integer, 1, ++/*191307*/ OPC_CheckChild3Type, MVT::i32, ++/*191309*/ OPC_CheckChild4Integer, 1, ++/*191311*/ OPC_CheckChild4Type, MVT::i32, ++/*191313*/ OPC_MoveChild5, ++/*191314*/ OPC_CheckInteger, 1, ++/*191316*/ OPC_CheckType, MVT::i32, ++/*191318*/ OPC_MoveParent, ++/*191319*/ OPC_MoveChild6, ++/*191320*/ OPC_CheckInteger, 1, ++/*191322*/ OPC_CheckType, MVT::i32, ++/*191324*/ OPC_MoveParent, ++/*191325*/ OPC_MoveChild7, ++/*191326*/ OPC_CheckInteger, 1, ++/*191328*/ OPC_CheckType, MVT::i32, ++/*191330*/ OPC_MoveParent, ++/*191331*/ OPC_MoveChild, 8, ++/*191333*/ OPC_CheckInteger, 1, ++/*191335*/ OPC_CheckType, MVT::i32, ++/*191337*/ OPC_MoveParent, ++/*191338*/ OPC_MoveChild, 9, ++/*191340*/ OPC_CheckInteger, 1, ++/*191342*/ OPC_CheckType, MVT::i32, ++/*191344*/ OPC_MoveParent, ++/*191345*/ OPC_MoveChild, 10, ++/*191347*/ OPC_CheckInteger, 1, ++/*191349*/ OPC_CheckType, MVT::i32, ++/*191351*/ OPC_MoveParent, ++/*191352*/ OPC_MoveChild, 11, ++/*191354*/ OPC_CheckInteger, 1, ++/*191356*/ OPC_CheckType, MVT::i32, ++/*191358*/ OPC_MoveParent, ++/*191359*/ OPC_MoveChild, 12, ++/*191361*/ OPC_CheckInteger, 1, ++/*191363*/ OPC_CheckType, MVT::i32, ++/*191365*/ OPC_MoveParent, ++/*191366*/ OPC_MoveChild, 13, ++/*191368*/ OPC_CheckInteger, 1, ++/*191370*/ OPC_CheckType, MVT::i32, ++/*191372*/ OPC_MoveParent, ++/*191373*/ OPC_MoveChild, 14, ++/*191375*/ OPC_CheckInteger, 1, ++/*191377*/ OPC_CheckType, MVT::i32, ++/*191379*/ OPC_MoveParent, ++/*191380*/ OPC_MoveChild, 15, ++/*191382*/ OPC_CheckInteger, 1, ++/*191384*/ OPC_CheckType, MVT::i32, ++/*191386*/ OPC_MoveParent, ++/*191387*/ OPC_CheckType, MVT::v16i8, ++/*191389*/ OPC_MoveParent, ++/*191390*/ OPC_CheckType, MVT::v16i8, ++/*191392*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*191394*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$a), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*191402*/ /*Scope*/ 94|128,1/*222*/, /*->191626*/ ++/*191404*/ OPC_CheckChild0Same, 0, ++/*191406*/ OPC_CheckChild1Same, 1, ++/*191408*/ OPC_MoveParent, ++/*191409*/ OPC_MoveParent, ++/*191410*/ OPC_MoveChild1, ++/*191411*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*191414*/ OPC_CheckChild0Integer, 7, ++/*191416*/ OPC_CheckChild0Type, MVT::i32, ++/*191418*/ OPC_CheckChild1Integer, 7, ++/*191420*/ OPC_CheckChild1Type, MVT::i32, ++/*191422*/ OPC_CheckChild2Integer, 7, ++/*191424*/ OPC_CheckChild2Type, MVT::i32, ++/*191426*/ OPC_CheckChild3Integer, 7, ++/*191428*/ OPC_CheckChild3Type, MVT::i32, ++/*191430*/ OPC_CheckChild4Integer, 7, ++/*191432*/ OPC_CheckChild4Type, MVT::i32, ++/*191434*/ OPC_MoveChild5, ++/*191435*/ OPC_CheckInteger, 7, ++/*191437*/ OPC_CheckType, MVT::i32, ++/*191439*/ OPC_MoveParent, ++/*191440*/ OPC_MoveChild6, ++/*191441*/ OPC_CheckInteger, 7, ++/*191443*/ OPC_CheckType, MVT::i32, ++/*191445*/ OPC_MoveParent, ++/*191446*/ OPC_MoveChild7, ++/*191447*/ OPC_CheckInteger, 7, ++/*191449*/ OPC_CheckType, MVT::i32, ++/*191451*/ OPC_MoveParent, ++/*191452*/ OPC_MoveChild, 8, ++/*191454*/ OPC_CheckInteger, 7, ++/*191456*/ OPC_CheckType, MVT::i32, ++/*191458*/ OPC_MoveParent, ++/*191459*/ OPC_MoveChild, 9, ++/*191461*/ OPC_CheckInteger, 7, ++/*191463*/ OPC_CheckType, MVT::i32, ++/*191465*/ OPC_MoveParent, ++/*191466*/ OPC_MoveChild, 10, ++/*191468*/ OPC_CheckInteger, 7, ++/*191470*/ OPC_CheckType, MVT::i32, ++/*191472*/ OPC_MoveParent, ++/*191473*/ OPC_MoveChild, 11, ++/*191475*/ OPC_CheckInteger, 7, ++/*191477*/ OPC_CheckType, MVT::i32, ++/*191479*/ OPC_MoveParent, ++/*191480*/ OPC_MoveChild, 12, ++/*191482*/ OPC_CheckInteger, 7, ++/*191484*/ OPC_CheckType, MVT::i32, ++/*191486*/ OPC_MoveParent, ++/*191487*/ OPC_MoveChild, 13, ++/*191489*/ OPC_CheckInteger, 7, ++/*191491*/ OPC_CheckType, MVT::i32, ++/*191493*/ OPC_MoveParent, ++/*191494*/ OPC_MoveChild, 14, ++/*191496*/ OPC_CheckInteger, 7, ++/*191498*/ OPC_CheckType, MVT::i32, ++/*191500*/ OPC_MoveParent, ++/*191501*/ OPC_MoveChild, 15, ++/*191503*/ OPC_CheckInteger, 7, ++/*191505*/ OPC_CheckType, MVT::i32, ++/*191507*/ OPC_MoveParent, ++/*191508*/ OPC_CheckType, MVT::v16i8, ++/*191510*/ OPC_MoveParent, ++/*191511*/ OPC_MoveParent, ++/*191512*/ OPC_MoveParent, ++/*191513*/ OPC_MoveChild1, ++/*191514*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*191517*/ OPC_CheckChild0Integer, 1, ++/*191519*/ OPC_CheckChild0Type, MVT::i32, ++/*191521*/ OPC_CheckChild1Integer, 1, ++/*191523*/ OPC_CheckChild1Type, MVT::i32, ++/*191525*/ OPC_CheckChild2Integer, 1, ++/*191527*/ OPC_CheckChild2Type, MVT::i32, ++/*191529*/ OPC_CheckChild3Integer, 1, ++/*191531*/ OPC_CheckChild3Type, MVT::i32, ++/*191533*/ OPC_CheckChild4Integer, 1, ++/*191535*/ OPC_CheckChild4Type, MVT::i32, ++/*191537*/ OPC_MoveChild5, ++/*191538*/ OPC_CheckInteger, 1, ++/*191540*/ OPC_CheckType, MVT::i32, ++/*191542*/ OPC_MoveParent, ++/*191543*/ OPC_MoveChild6, ++/*191544*/ OPC_CheckInteger, 1, ++/*191546*/ OPC_CheckType, MVT::i32, ++/*191548*/ OPC_MoveParent, ++/*191549*/ OPC_MoveChild7, ++/*191550*/ OPC_CheckInteger, 1, ++/*191552*/ OPC_CheckType, MVT::i32, ++/*191554*/ OPC_MoveParent, ++/*191555*/ OPC_MoveChild, 8, ++/*191557*/ OPC_CheckInteger, 1, ++/*191559*/ OPC_CheckType, MVT::i32, ++/*191561*/ OPC_MoveParent, ++/*191562*/ OPC_MoveChild, 9, ++/*191564*/ OPC_CheckInteger, 1, ++/*191566*/ OPC_CheckType, MVT::i32, ++/*191568*/ OPC_MoveParent, ++/*191569*/ OPC_MoveChild, 10, ++/*191571*/ OPC_CheckInteger, 1, ++/*191573*/ OPC_CheckType, MVT::i32, ++/*191575*/ OPC_MoveParent, ++/*191576*/ OPC_MoveChild, 11, ++/*191578*/ OPC_CheckInteger, 1, ++/*191580*/ OPC_CheckType, MVT::i32, ++/*191582*/ OPC_MoveParent, ++/*191583*/ OPC_MoveChild, 12, ++/*191585*/ OPC_CheckInteger, 1, ++/*191587*/ OPC_CheckType, MVT::i32, ++/*191589*/ OPC_MoveParent, ++/*191590*/ OPC_MoveChild, 13, ++/*191592*/ OPC_CheckInteger, 1, ++/*191594*/ OPC_CheckType, MVT::i32, ++/*191596*/ OPC_MoveParent, ++/*191597*/ OPC_MoveChild, 14, ++/*191599*/ OPC_CheckInteger, 1, ++/*191601*/ OPC_CheckType, MVT::i32, ++/*191603*/ OPC_MoveParent, ++/*191604*/ OPC_MoveChild, 15, ++/*191606*/ OPC_CheckInteger, 1, ++/*191608*/ OPC_CheckType, MVT::i32, ++/*191610*/ OPC_MoveParent, ++/*191611*/ OPC_CheckType, MVT::v16i8, ++/*191613*/ OPC_MoveParent, ++/*191614*/ OPC_CheckType, MVT::v16i8, ++/*191616*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*191618*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$a), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*191626*/ 0, /*End of Scope*/ ++/*191627*/ 0, /*End of Scope*/ ++/*191628*/ /*Scope*/ 43|128,60/*7723*/, /*->199353*/ ++/*191630*/ OPC_RecordChild1, // #1 = $b ++/*191631*/ OPC_MoveParent, ++/*191632*/ OPC_MoveChild1, ++/*191633*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*191636*/ OPC_CheckChild0Integer, 1, ++/*191638*/ OPC_CheckChild0Type, MVT::i32, ++/*191640*/ OPC_CheckChild1Integer, 1, ++/*191642*/ OPC_CheckChild1Type, MVT::i32, ++/*191644*/ OPC_CheckChild2Integer, 1, ++/*191646*/ OPC_CheckChild2Type, MVT::i32, ++/*191648*/ OPC_CheckChild3Integer, 1, ++/*191650*/ OPC_CheckChild3Type, MVT::i32, ++/*191652*/ OPC_CheckChild4Integer, 1, ++/*191654*/ OPC_CheckChild4Type, MVT::i32, ++/*191656*/ OPC_MoveChild5, ++/*191657*/ OPC_CheckInteger, 1, ++/*191659*/ OPC_CheckType, MVT::i32, ++/*191661*/ OPC_MoveParent, ++/*191662*/ OPC_MoveChild6, ++/*191663*/ OPC_CheckInteger, 1, ++/*191665*/ OPC_CheckType, MVT::i32, ++/*191667*/ OPC_MoveParent, ++/*191668*/ OPC_MoveChild7, ++/*191669*/ OPC_CheckInteger, 1, ++/*191671*/ OPC_CheckType, MVT::i32, ++/*191673*/ OPC_MoveParent, ++/*191674*/ OPC_MoveChild, 8, ++/*191676*/ OPC_CheckInteger, 1, ++/*191678*/ OPC_CheckType, MVT::i32, ++/*191680*/ OPC_MoveParent, ++/*191681*/ OPC_MoveChild, 9, ++/*191683*/ OPC_CheckInteger, 1, ++/*191685*/ OPC_CheckType, MVT::i32, ++/*191687*/ OPC_MoveParent, ++/*191688*/ OPC_MoveChild, 10, ++/*191690*/ OPC_CheckInteger, 1, ++/*191692*/ OPC_CheckType, MVT::i32, ++/*191694*/ OPC_MoveParent, ++/*191695*/ OPC_MoveChild, 11, ++/*191697*/ OPC_CheckInteger, 1, ++/*191699*/ OPC_CheckType, MVT::i32, ++/*191701*/ OPC_MoveParent, ++/*191702*/ OPC_MoveChild, 12, ++/*191704*/ OPC_CheckInteger, 1, ++/*191706*/ OPC_CheckType, MVT::i32, ++/*191708*/ OPC_MoveParent, ++/*191709*/ OPC_MoveChild, 13, ++/*191711*/ OPC_CheckInteger, 1, ++/*191713*/ OPC_CheckType, MVT::i32, ++/*191715*/ OPC_MoveParent, ++/*191716*/ OPC_MoveChild, 14, ++/*191718*/ OPC_CheckInteger, 1, ++/*191720*/ OPC_CheckType, MVT::i32, ++/*191722*/ OPC_MoveParent, ++/*191723*/ OPC_MoveChild, 15, ++/*191725*/ OPC_CheckInteger, 1, ++/*191727*/ OPC_CheckType, MVT::i32, ++/*191729*/ OPC_MoveParent, ++/*191730*/ OPC_MoveParent, ++/*191731*/ OPC_MoveParent, ++/*191732*/ OPC_MoveChild1, ++/*191733*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*191736*/ OPC_MoveChild0, ++/*191737*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*191740*/ OPC_Scope, 24|128,15/*1944*/, /*->193687*/ // 7 children in Scope ++/*191743*/ OPC_MoveChild0, ++/*191744*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*191747*/ OPC_Scope, 65|128,2/*321*/, /*->192071*/ // 6 children in Scope ++/*191750*/ OPC_MoveChild0, ++/*191751*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*191754*/ OPC_CheckChild0Integer, 1, ++/*191756*/ OPC_CheckChild0Type, MVT::i32, ++/*191758*/ OPC_CheckChild1Integer, 1, ++/*191760*/ OPC_CheckChild1Type, MVT::i32, ++/*191762*/ OPC_CheckChild2Integer, 1, ++/*191764*/ OPC_CheckChild2Type, MVT::i32, ++/*191766*/ OPC_CheckChild3Integer, 1, ++/*191768*/ OPC_CheckChild3Type, MVT::i32, ++/*191770*/ OPC_CheckChild4Integer, 1, ++/*191772*/ OPC_CheckChild4Type, MVT::i32, ++/*191774*/ OPC_MoveChild5, ++/*191775*/ OPC_CheckInteger, 1, ++/*191777*/ OPC_CheckType, MVT::i32, ++/*191779*/ OPC_MoveParent, ++/*191780*/ OPC_MoveChild6, ++/*191781*/ OPC_CheckInteger, 1, ++/*191783*/ OPC_CheckType, MVT::i32, ++/*191785*/ OPC_MoveParent, ++/*191786*/ OPC_MoveChild7, ++/*191787*/ OPC_CheckInteger, 1, ++/*191789*/ OPC_CheckType, MVT::i32, ++/*191791*/ OPC_MoveParent, ++/*191792*/ OPC_MoveChild, 8, ++/*191794*/ OPC_CheckInteger, 1, ++/*191796*/ OPC_CheckType, MVT::i32, ++/*191798*/ OPC_MoveParent, ++/*191799*/ OPC_MoveChild, 9, ++/*191801*/ OPC_CheckInteger, 1, ++/*191803*/ OPC_CheckType, MVT::i32, ++/*191805*/ OPC_MoveParent, ++/*191806*/ OPC_MoveChild, 10, ++/*191808*/ OPC_CheckInteger, 1, ++/*191810*/ OPC_CheckType, MVT::i32, ++/*191812*/ OPC_MoveParent, ++/*191813*/ OPC_MoveChild, 11, ++/*191815*/ OPC_CheckInteger, 1, ++/*191817*/ OPC_CheckType, MVT::i32, ++/*191819*/ OPC_MoveParent, ++/*191820*/ OPC_MoveChild, 12, ++/*191822*/ OPC_CheckInteger, 1, ++/*191824*/ OPC_CheckType, MVT::i32, ++/*191826*/ OPC_MoveParent, ++/*191827*/ OPC_MoveChild, 13, ++/*191829*/ OPC_CheckInteger, 1, ++/*191831*/ OPC_CheckType, MVT::i32, ++/*191833*/ OPC_MoveParent, ++/*191834*/ OPC_MoveChild, 14, ++/*191836*/ OPC_CheckInteger, 1, ++/*191838*/ OPC_CheckType, MVT::i32, ++/*191840*/ OPC_MoveParent, ++/*191841*/ OPC_MoveChild, 15, ++/*191843*/ OPC_CheckInteger, 1, ++/*191845*/ OPC_CheckType, MVT::i32, ++/*191847*/ OPC_MoveParent, ++/*191848*/ OPC_MoveParent, ++/*191849*/ OPC_CheckChild1Same, 0, ++/*191851*/ OPC_MoveParent, ++/*191852*/ OPC_CheckChild1Same, 1, ++/*191854*/ OPC_MoveParent, ++/*191855*/ OPC_MoveChild1, ++/*191856*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*191859*/ OPC_CheckChild0Integer, 7, ++/*191861*/ OPC_CheckChild0Type, MVT::i32, ++/*191863*/ OPC_CheckChild1Integer, 7, ++/*191865*/ OPC_CheckChild1Type, MVT::i32, ++/*191867*/ OPC_CheckChild2Integer, 7, ++/*191869*/ OPC_CheckChild2Type, MVT::i32, ++/*191871*/ OPC_CheckChild3Integer, 7, ++/*191873*/ OPC_CheckChild3Type, MVT::i32, ++/*191875*/ OPC_CheckChild4Integer, 7, ++/*191877*/ OPC_CheckChild4Type, MVT::i32, ++/*191879*/ OPC_MoveChild5, ++/*191880*/ OPC_CheckInteger, 7, ++/*191882*/ OPC_CheckType, MVT::i32, ++/*191884*/ OPC_MoveParent, ++/*191885*/ OPC_MoveChild6, ++/*191886*/ OPC_CheckInteger, 7, ++/*191888*/ OPC_CheckType, MVT::i32, ++/*191890*/ OPC_MoveParent, ++/*191891*/ OPC_MoveChild7, ++/*191892*/ OPC_CheckInteger, 7, ++/*191894*/ OPC_CheckType, MVT::i32, ++/*191896*/ OPC_MoveParent, ++/*191897*/ OPC_MoveChild, 8, ++/*191899*/ OPC_CheckInteger, 7, ++/*191901*/ OPC_CheckType, MVT::i32, ++/*191903*/ OPC_MoveParent, ++/*191904*/ OPC_MoveChild, 9, ++/*191906*/ OPC_CheckInteger, 7, ++/*191908*/ OPC_CheckType, MVT::i32, ++/*191910*/ OPC_MoveParent, ++/*191911*/ OPC_MoveChild, 10, ++/*191913*/ OPC_CheckInteger, 7, ++/*191915*/ OPC_CheckType, MVT::i32, ++/*191917*/ OPC_MoveParent, ++/*191918*/ OPC_MoveChild, 11, ++/*191920*/ OPC_CheckInteger, 7, ++/*191922*/ OPC_CheckType, MVT::i32, ++/*191924*/ OPC_MoveParent, ++/*191925*/ OPC_MoveChild, 12, ++/*191927*/ OPC_CheckInteger, 7, ++/*191929*/ OPC_CheckType, MVT::i32, ++/*191931*/ OPC_MoveParent, ++/*191932*/ OPC_MoveChild, 13, ++/*191934*/ OPC_CheckInteger, 7, ++/*191936*/ OPC_CheckType, MVT::i32, ++/*191938*/ OPC_MoveParent, ++/*191939*/ OPC_MoveChild, 14, ++/*191941*/ OPC_CheckInteger, 7, ++/*191943*/ OPC_CheckType, MVT::i32, ++/*191945*/ OPC_MoveParent, ++/*191946*/ OPC_MoveChild, 15, ++/*191948*/ OPC_CheckInteger, 7, ++/*191950*/ OPC_CheckType, MVT::i32, ++/*191952*/ OPC_MoveParent, ++/*191953*/ OPC_CheckType, MVT::v16i8, ++/*191955*/ OPC_MoveParent, ++/*191956*/ OPC_MoveParent, ++/*191957*/ OPC_MoveParent, ++/*191958*/ OPC_MoveChild1, ++/*191959*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*191962*/ OPC_CheckChild0Integer, 1, ++/*191964*/ OPC_CheckChild0Type, MVT::i32, ++/*191966*/ OPC_CheckChild1Integer, 1, ++/*191968*/ OPC_CheckChild1Type, MVT::i32, ++/*191970*/ OPC_CheckChild2Integer, 1, ++/*191972*/ OPC_CheckChild2Type, MVT::i32, ++/*191974*/ OPC_CheckChild3Integer, 1, ++/*191976*/ OPC_CheckChild3Type, MVT::i32, ++/*191978*/ OPC_CheckChild4Integer, 1, ++/*191980*/ OPC_CheckChild4Type, MVT::i32, ++/*191982*/ OPC_MoveChild5, ++/*191983*/ OPC_CheckInteger, 1, ++/*191985*/ OPC_CheckType, MVT::i32, ++/*191987*/ OPC_MoveParent, ++/*191988*/ OPC_MoveChild6, ++/*191989*/ OPC_CheckInteger, 1, ++/*191991*/ OPC_CheckType, MVT::i32, ++/*191993*/ OPC_MoveParent, ++/*191994*/ OPC_MoveChild7, ++/*191995*/ OPC_CheckInteger, 1, ++/*191997*/ OPC_CheckType, MVT::i32, ++/*191999*/ OPC_MoveParent, ++/*192000*/ OPC_MoveChild, 8, ++/*192002*/ OPC_CheckInteger, 1, ++/*192004*/ OPC_CheckType, MVT::i32, ++/*192006*/ OPC_MoveParent, ++/*192007*/ OPC_MoveChild, 9, ++/*192009*/ OPC_CheckInteger, 1, ++/*192011*/ OPC_CheckType, MVT::i32, ++/*192013*/ OPC_MoveParent, ++/*192014*/ OPC_MoveChild, 10, ++/*192016*/ OPC_CheckInteger, 1, ++/*192018*/ OPC_CheckType, MVT::i32, ++/*192020*/ OPC_MoveParent, ++/*192021*/ OPC_MoveChild, 11, ++/*192023*/ OPC_CheckInteger, 1, ++/*192025*/ OPC_CheckType, MVT::i32, ++/*192027*/ OPC_MoveParent, ++/*192028*/ OPC_MoveChild, 12, ++/*192030*/ OPC_CheckInteger, 1, ++/*192032*/ OPC_CheckType, MVT::i32, ++/*192034*/ OPC_MoveParent, ++/*192035*/ OPC_MoveChild, 13, ++/*192037*/ OPC_CheckInteger, 1, ++/*192039*/ OPC_CheckType, MVT::i32, ++/*192041*/ OPC_MoveParent, ++/*192042*/ OPC_MoveChild, 14, ++/*192044*/ OPC_CheckInteger, 1, ++/*192046*/ OPC_CheckType, MVT::i32, ++/*192048*/ OPC_MoveParent, ++/*192049*/ OPC_MoveChild, 15, ++/*192051*/ OPC_CheckInteger, 1, ++/*192053*/ OPC_CheckType, MVT::i32, ++/*192055*/ OPC_MoveParent, ++/*192056*/ OPC_CheckType, MVT::v16i8, ++/*192058*/ OPC_MoveParent, ++/*192059*/ OPC_CheckType, MVT::v16i8, ++/*192061*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*192063*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a), LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*192071*/ /*Scope*/ 65|128,2/*321*/, /*->192394*/ ++/*192073*/ OPC_CheckChild0Same, 0, ++/*192075*/ OPC_MoveChild1, ++/*192076*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*192079*/ OPC_CheckChild0Integer, 1, ++/*192081*/ OPC_CheckChild0Type, MVT::i32, ++/*192083*/ OPC_CheckChild1Integer, 1, ++/*192085*/ OPC_CheckChild1Type, MVT::i32, ++/*192087*/ OPC_CheckChild2Integer, 1, ++/*192089*/ OPC_CheckChild2Type, MVT::i32, ++/*192091*/ OPC_CheckChild3Integer, 1, ++/*192093*/ OPC_CheckChild3Type, MVT::i32, ++/*192095*/ OPC_CheckChild4Integer, 1, ++/*192097*/ OPC_CheckChild4Type, MVT::i32, ++/*192099*/ OPC_MoveChild5, ++/*192100*/ OPC_CheckInteger, 1, ++/*192102*/ OPC_CheckType, MVT::i32, ++/*192104*/ OPC_MoveParent, ++/*192105*/ OPC_MoveChild6, ++/*192106*/ OPC_CheckInteger, 1, ++/*192108*/ OPC_CheckType, MVT::i32, ++/*192110*/ OPC_MoveParent, ++/*192111*/ OPC_MoveChild7, ++/*192112*/ OPC_CheckInteger, 1, ++/*192114*/ OPC_CheckType, MVT::i32, ++/*192116*/ OPC_MoveParent, ++/*192117*/ OPC_MoveChild, 8, ++/*192119*/ OPC_CheckInteger, 1, ++/*192121*/ OPC_CheckType, MVT::i32, ++/*192123*/ OPC_MoveParent, ++/*192124*/ OPC_MoveChild, 9, ++/*192126*/ OPC_CheckInteger, 1, ++/*192128*/ OPC_CheckType, MVT::i32, ++/*192130*/ OPC_MoveParent, ++/*192131*/ OPC_MoveChild, 10, ++/*192133*/ OPC_CheckInteger, 1, ++/*192135*/ OPC_CheckType, MVT::i32, ++/*192137*/ OPC_MoveParent, ++/*192138*/ OPC_MoveChild, 11, ++/*192140*/ OPC_CheckInteger, 1, ++/*192142*/ OPC_CheckType, MVT::i32, ++/*192144*/ OPC_MoveParent, ++/*192145*/ OPC_MoveChild, 12, ++/*192147*/ OPC_CheckInteger, 1, ++/*192149*/ OPC_CheckType, MVT::i32, ++/*192151*/ OPC_MoveParent, ++/*192152*/ OPC_MoveChild, 13, ++/*192154*/ OPC_CheckInteger, 1, ++/*192156*/ OPC_CheckType, MVT::i32, ++/*192158*/ OPC_MoveParent, ++/*192159*/ OPC_MoveChild, 14, ++/*192161*/ OPC_CheckInteger, 1, ++/*192163*/ OPC_CheckType, MVT::i32, ++/*192165*/ OPC_MoveParent, ++/*192166*/ OPC_MoveChild, 15, ++/*192168*/ OPC_CheckInteger, 1, ++/*192170*/ OPC_CheckType, MVT::i32, ++/*192172*/ OPC_MoveParent, ++/*192173*/ OPC_MoveParent, ++/*192174*/ OPC_MoveParent, ++/*192175*/ OPC_CheckChild1Same, 1, ++/*192177*/ OPC_MoveParent, ++/*192178*/ OPC_MoveChild1, ++/*192179*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*192182*/ OPC_CheckChild0Integer, 7, ++/*192184*/ OPC_CheckChild0Type, MVT::i32, ++/*192186*/ OPC_CheckChild1Integer, 7, ++/*192188*/ OPC_CheckChild1Type, MVT::i32, ++/*192190*/ OPC_CheckChild2Integer, 7, ++/*192192*/ OPC_CheckChild2Type, MVT::i32, ++/*192194*/ OPC_CheckChild3Integer, 7, ++/*192196*/ OPC_CheckChild3Type, MVT::i32, ++/*192198*/ OPC_CheckChild4Integer, 7, ++/*192200*/ OPC_CheckChild4Type, MVT::i32, ++/*192202*/ OPC_MoveChild5, ++/*192203*/ OPC_CheckInteger, 7, ++/*192205*/ OPC_CheckType, MVT::i32, ++/*192207*/ OPC_MoveParent, ++/*192208*/ OPC_MoveChild6, ++/*192209*/ OPC_CheckInteger, 7, ++/*192211*/ OPC_CheckType, MVT::i32, ++/*192213*/ OPC_MoveParent, ++/*192214*/ OPC_MoveChild7, ++/*192215*/ OPC_CheckInteger, 7, ++/*192217*/ OPC_CheckType, MVT::i32, ++/*192219*/ OPC_MoveParent, ++/*192220*/ OPC_MoveChild, 8, ++/*192222*/ OPC_CheckInteger, 7, ++/*192224*/ OPC_CheckType, MVT::i32, ++/*192226*/ OPC_MoveParent, ++/*192227*/ OPC_MoveChild, 9, ++/*192229*/ OPC_CheckInteger, 7, ++/*192231*/ OPC_CheckType, MVT::i32, ++/*192233*/ OPC_MoveParent, ++/*192234*/ OPC_MoveChild, 10, ++/*192236*/ OPC_CheckInteger, 7, ++/*192238*/ OPC_CheckType, MVT::i32, ++/*192240*/ OPC_MoveParent, ++/*192241*/ OPC_MoveChild, 11, ++/*192243*/ OPC_CheckInteger, 7, ++/*192245*/ OPC_CheckType, MVT::i32, ++/*192247*/ OPC_MoveParent, ++/*192248*/ OPC_MoveChild, 12, ++/*192250*/ OPC_CheckInteger, 7, ++/*192252*/ OPC_CheckType, MVT::i32, ++/*192254*/ OPC_MoveParent, ++/*192255*/ OPC_MoveChild, 13, ++/*192257*/ OPC_CheckInteger, 7, ++/*192259*/ OPC_CheckType, MVT::i32, ++/*192261*/ OPC_MoveParent, ++/*192262*/ OPC_MoveChild, 14, ++/*192264*/ OPC_CheckInteger, 7, ++/*192266*/ OPC_CheckType, MVT::i32, ++/*192268*/ OPC_MoveParent, ++/*192269*/ OPC_MoveChild, 15, ++/*192271*/ OPC_CheckInteger, 7, ++/*192273*/ OPC_CheckType, MVT::i32, ++/*192275*/ OPC_MoveParent, ++/*192276*/ OPC_CheckType, MVT::v16i8, ++/*192278*/ OPC_MoveParent, ++/*192279*/ OPC_MoveParent, ++/*192280*/ OPC_MoveParent, ++/*192281*/ OPC_MoveChild1, ++/*192282*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*192285*/ OPC_CheckChild0Integer, 1, ++/*192287*/ OPC_CheckChild0Type, MVT::i32, ++/*192289*/ OPC_CheckChild1Integer, 1, ++/*192291*/ OPC_CheckChild1Type, MVT::i32, ++/*192293*/ OPC_CheckChild2Integer, 1, ++/*192295*/ OPC_CheckChild2Type, MVT::i32, ++/*192297*/ OPC_CheckChild3Integer, 1, ++/*192299*/ OPC_CheckChild3Type, MVT::i32, ++/*192301*/ OPC_CheckChild4Integer, 1, ++/*192303*/ OPC_CheckChild4Type, MVT::i32, ++/*192305*/ OPC_MoveChild5, ++/*192306*/ OPC_CheckInteger, 1, ++/*192308*/ OPC_CheckType, MVT::i32, ++/*192310*/ OPC_MoveParent, ++/*192311*/ OPC_MoveChild6, ++/*192312*/ OPC_CheckInteger, 1, ++/*192314*/ OPC_CheckType, MVT::i32, ++/*192316*/ OPC_MoveParent, ++/*192317*/ OPC_MoveChild7, ++/*192318*/ OPC_CheckInteger, 1, ++/*192320*/ OPC_CheckType, MVT::i32, ++/*192322*/ OPC_MoveParent, ++/*192323*/ OPC_MoveChild, 8, ++/*192325*/ OPC_CheckInteger, 1, ++/*192327*/ OPC_CheckType, MVT::i32, ++/*192329*/ OPC_MoveParent, ++/*192330*/ OPC_MoveChild, 9, ++/*192332*/ OPC_CheckInteger, 1, ++/*192334*/ OPC_CheckType, MVT::i32, ++/*192336*/ OPC_MoveParent, ++/*192337*/ OPC_MoveChild, 10, ++/*192339*/ OPC_CheckInteger, 1, ++/*192341*/ OPC_CheckType, MVT::i32, ++/*192343*/ OPC_MoveParent, ++/*192344*/ OPC_MoveChild, 11, ++/*192346*/ OPC_CheckInteger, 1, ++/*192348*/ OPC_CheckType, MVT::i32, ++/*192350*/ OPC_MoveParent, ++/*192351*/ OPC_MoveChild, 12, ++/*192353*/ OPC_CheckInteger, 1, ++/*192355*/ OPC_CheckType, MVT::i32, ++/*192357*/ OPC_MoveParent, ++/*192358*/ OPC_MoveChild, 13, ++/*192360*/ OPC_CheckInteger, 1, ++/*192362*/ OPC_CheckType, MVT::i32, ++/*192364*/ OPC_MoveParent, ++/*192365*/ OPC_MoveChild, 14, ++/*192367*/ OPC_CheckInteger, 1, ++/*192369*/ OPC_CheckType, MVT::i32, ++/*192371*/ OPC_MoveParent, ++/*192372*/ OPC_MoveChild, 15, ++/*192374*/ OPC_CheckInteger, 1, ++/*192376*/ OPC_CheckType, MVT::i32, ++/*192378*/ OPC_MoveParent, ++/*192379*/ OPC_CheckType, MVT::v16i8, ++/*192381*/ OPC_MoveParent, ++/*192382*/ OPC_CheckType, MVT::v16i8, ++/*192384*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*192386*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*192394*/ /*Scope*/ 65|128,2/*321*/, /*->192717*/ ++/*192396*/ OPC_MoveChild0, ++/*192397*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*192400*/ OPC_CheckChild0Integer, 1, ++/*192402*/ OPC_CheckChild0Type, MVT::i32, ++/*192404*/ OPC_CheckChild1Integer, 1, ++/*192406*/ OPC_CheckChild1Type, MVT::i32, ++/*192408*/ OPC_CheckChild2Integer, 1, ++/*192410*/ OPC_CheckChild2Type, MVT::i32, ++/*192412*/ OPC_CheckChild3Integer, 1, ++/*192414*/ OPC_CheckChild3Type, MVT::i32, ++/*192416*/ OPC_CheckChild4Integer, 1, ++/*192418*/ OPC_CheckChild4Type, MVT::i32, ++/*192420*/ OPC_MoveChild5, ++/*192421*/ OPC_CheckInteger, 1, ++/*192423*/ OPC_CheckType, MVT::i32, ++/*192425*/ OPC_MoveParent, ++/*192426*/ OPC_MoveChild6, ++/*192427*/ OPC_CheckInteger, 1, ++/*192429*/ OPC_CheckType, MVT::i32, ++/*192431*/ OPC_MoveParent, ++/*192432*/ OPC_MoveChild7, ++/*192433*/ OPC_CheckInteger, 1, ++/*192435*/ OPC_CheckType, MVT::i32, ++/*192437*/ OPC_MoveParent, ++/*192438*/ OPC_MoveChild, 8, ++/*192440*/ OPC_CheckInteger, 1, ++/*192442*/ OPC_CheckType, MVT::i32, ++/*192444*/ OPC_MoveParent, ++/*192445*/ OPC_MoveChild, 9, ++/*192447*/ OPC_CheckInteger, 1, ++/*192449*/ OPC_CheckType, MVT::i32, ++/*192451*/ OPC_MoveParent, ++/*192452*/ OPC_MoveChild, 10, ++/*192454*/ OPC_CheckInteger, 1, ++/*192456*/ OPC_CheckType, MVT::i32, ++/*192458*/ OPC_MoveParent, ++/*192459*/ OPC_MoveChild, 11, ++/*192461*/ OPC_CheckInteger, 1, ++/*192463*/ OPC_CheckType, MVT::i32, ++/*192465*/ OPC_MoveParent, ++/*192466*/ OPC_MoveChild, 12, ++/*192468*/ OPC_CheckInteger, 1, ++/*192470*/ OPC_CheckType, MVT::i32, ++/*192472*/ OPC_MoveParent, ++/*192473*/ OPC_MoveChild, 13, ++/*192475*/ OPC_CheckInteger, 1, ++/*192477*/ OPC_CheckType, MVT::i32, ++/*192479*/ OPC_MoveParent, ++/*192480*/ OPC_MoveChild, 14, ++/*192482*/ OPC_CheckInteger, 1, ++/*192484*/ OPC_CheckType, MVT::i32, ++/*192486*/ OPC_MoveParent, ++/*192487*/ OPC_MoveChild, 15, ++/*192489*/ OPC_CheckInteger, 1, ++/*192491*/ OPC_CheckType, MVT::i32, ++/*192493*/ OPC_MoveParent, ++/*192494*/ OPC_MoveParent, ++/*192495*/ OPC_CheckChild1Same, 1, ++/*192497*/ OPC_MoveParent, ++/*192498*/ OPC_CheckChild1Same, 0, ++/*192500*/ OPC_MoveParent, ++/*192501*/ OPC_MoveChild1, ++/*192502*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*192505*/ OPC_CheckChild0Integer, 7, ++/*192507*/ OPC_CheckChild0Type, MVT::i32, ++/*192509*/ OPC_CheckChild1Integer, 7, ++/*192511*/ OPC_CheckChild1Type, MVT::i32, ++/*192513*/ OPC_CheckChild2Integer, 7, ++/*192515*/ OPC_CheckChild2Type, MVT::i32, ++/*192517*/ OPC_CheckChild3Integer, 7, ++/*192519*/ OPC_CheckChild3Type, MVT::i32, ++/*192521*/ OPC_CheckChild4Integer, 7, ++/*192523*/ OPC_CheckChild4Type, MVT::i32, ++/*192525*/ OPC_MoveChild5, ++/*192526*/ OPC_CheckInteger, 7, ++/*192528*/ OPC_CheckType, MVT::i32, ++/*192530*/ OPC_MoveParent, ++/*192531*/ OPC_MoveChild6, ++/*192532*/ OPC_CheckInteger, 7, ++/*192534*/ OPC_CheckType, MVT::i32, ++/*192536*/ OPC_MoveParent, ++/*192537*/ OPC_MoveChild7, ++/*192538*/ OPC_CheckInteger, 7, ++/*192540*/ OPC_CheckType, MVT::i32, ++/*192542*/ OPC_MoveParent, ++/*192543*/ OPC_MoveChild, 8, ++/*192545*/ OPC_CheckInteger, 7, ++/*192547*/ OPC_CheckType, MVT::i32, ++/*192549*/ OPC_MoveParent, ++/*192550*/ OPC_MoveChild, 9, ++/*192552*/ OPC_CheckInteger, 7, ++/*192554*/ OPC_CheckType, MVT::i32, ++/*192556*/ OPC_MoveParent, ++/*192557*/ OPC_MoveChild, 10, ++/*192559*/ OPC_CheckInteger, 7, ++/*192561*/ OPC_CheckType, MVT::i32, ++/*192563*/ OPC_MoveParent, ++/*192564*/ OPC_MoveChild, 11, ++/*192566*/ OPC_CheckInteger, 7, ++/*192568*/ OPC_CheckType, MVT::i32, ++/*192570*/ OPC_MoveParent, ++/*192571*/ OPC_MoveChild, 12, ++/*192573*/ OPC_CheckInteger, 7, ++/*192575*/ OPC_CheckType, MVT::i32, ++/*192577*/ OPC_MoveParent, ++/*192578*/ OPC_MoveChild, 13, ++/*192580*/ OPC_CheckInteger, 7, ++/*192582*/ OPC_CheckType, MVT::i32, ++/*192584*/ OPC_MoveParent, ++/*192585*/ OPC_MoveChild, 14, ++/*192587*/ OPC_CheckInteger, 7, ++/*192589*/ OPC_CheckType, MVT::i32, ++/*192591*/ OPC_MoveParent, ++/*192592*/ OPC_MoveChild, 15, ++/*192594*/ OPC_CheckInteger, 7, ++/*192596*/ OPC_CheckType, MVT::i32, ++/*192598*/ OPC_MoveParent, ++/*192599*/ OPC_CheckType, MVT::v16i8, ++/*192601*/ OPC_MoveParent, ++/*192602*/ OPC_MoveParent, ++/*192603*/ OPC_MoveParent, ++/*192604*/ OPC_MoveChild1, ++/*192605*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*192608*/ OPC_CheckChild0Integer, 1, ++/*192610*/ OPC_CheckChild0Type, MVT::i32, ++/*192612*/ OPC_CheckChild1Integer, 1, ++/*192614*/ OPC_CheckChild1Type, MVT::i32, ++/*192616*/ OPC_CheckChild2Integer, 1, ++/*192618*/ OPC_CheckChild2Type, MVT::i32, ++/*192620*/ OPC_CheckChild3Integer, 1, ++/*192622*/ OPC_CheckChild3Type, MVT::i32, ++/*192624*/ OPC_CheckChild4Integer, 1, ++/*192626*/ OPC_CheckChild4Type, MVT::i32, ++/*192628*/ OPC_MoveChild5, ++/*192629*/ OPC_CheckInteger, 1, ++/*192631*/ OPC_CheckType, MVT::i32, ++/*192633*/ OPC_MoveParent, ++/*192634*/ OPC_MoveChild6, ++/*192635*/ OPC_CheckInteger, 1, ++/*192637*/ OPC_CheckType, MVT::i32, ++/*192639*/ OPC_MoveParent, ++/*192640*/ OPC_MoveChild7, ++/*192641*/ OPC_CheckInteger, 1, ++/*192643*/ OPC_CheckType, MVT::i32, ++/*192645*/ OPC_MoveParent, ++/*192646*/ OPC_MoveChild, 8, ++/*192648*/ OPC_CheckInteger, 1, ++/*192650*/ OPC_CheckType, MVT::i32, ++/*192652*/ OPC_MoveParent, ++/*192653*/ OPC_MoveChild, 9, ++/*192655*/ OPC_CheckInteger, 1, ++/*192657*/ OPC_CheckType, MVT::i32, ++/*192659*/ OPC_MoveParent, ++/*192660*/ OPC_MoveChild, 10, ++/*192662*/ OPC_CheckInteger, 1, ++/*192664*/ OPC_CheckType, MVT::i32, ++/*192666*/ OPC_MoveParent, ++/*192667*/ OPC_MoveChild, 11, ++/*192669*/ OPC_CheckInteger, 1, ++/*192671*/ OPC_CheckType, MVT::i32, ++/*192673*/ OPC_MoveParent, ++/*192674*/ OPC_MoveChild, 12, ++/*192676*/ OPC_CheckInteger, 1, ++/*192678*/ OPC_CheckType, MVT::i32, ++/*192680*/ OPC_MoveParent, ++/*192681*/ OPC_MoveChild, 13, ++/*192683*/ OPC_CheckInteger, 1, ++/*192685*/ OPC_CheckType, MVT::i32, ++/*192687*/ OPC_MoveParent, ++/*192688*/ OPC_MoveChild, 14, ++/*192690*/ OPC_CheckInteger, 1, ++/*192692*/ OPC_CheckType, MVT::i32, ++/*192694*/ OPC_MoveParent, ++/*192695*/ OPC_MoveChild, 15, ++/*192697*/ OPC_CheckInteger, 1, ++/*192699*/ OPC_CheckType, MVT::i32, ++/*192701*/ OPC_MoveParent, ++/*192702*/ OPC_CheckType, MVT::v16i8, ++/*192704*/ OPC_MoveParent, ++/*192705*/ OPC_CheckType, MVT::v16i8, ++/*192707*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*192709*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b), LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*192717*/ /*Scope*/ 65|128,2/*321*/, /*->193040*/ ++/*192719*/ OPC_CheckChild0Same, 1, ++/*192721*/ OPC_MoveChild1, ++/*192722*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*192725*/ OPC_CheckChild0Integer, 1, ++/*192727*/ OPC_CheckChild0Type, MVT::i32, ++/*192729*/ OPC_CheckChild1Integer, 1, ++/*192731*/ OPC_CheckChild1Type, MVT::i32, ++/*192733*/ OPC_CheckChild2Integer, 1, ++/*192735*/ OPC_CheckChild2Type, MVT::i32, ++/*192737*/ OPC_CheckChild3Integer, 1, ++/*192739*/ OPC_CheckChild3Type, MVT::i32, ++/*192741*/ OPC_CheckChild4Integer, 1, ++/*192743*/ OPC_CheckChild4Type, MVT::i32, ++/*192745*/ OPC_MoveChild5, ++/*192746*/ OPC_CheckInteger, 1, ++/*192748*/ OPC_CheckType, MVT::i32, ++/*192750*/ OPC_MoveParent, ++/*192751*/ OPC_MoveChild6, ++/*192752*/ OPC_CheckInteger, 1, ++/*192754*/ OPC_CheckType, MVT::i32, ++/*192756*/ OPC_MoveParent, ++/*192757*/ OPC_MoveChild7, ++/*192758*/ OPC_CheckInteger, 1, ++/*192760*/ OPC_CheckType, MVT::i32, ++/*192762*/ OPC_MoveParent, ++/*192763*/ OPC_MoveChild, 8, ++/*192765*/ OPC_CheckInteger, 1, ++/*192767*/ OPC_CheckType, MVT::i32, ++/*192769*/ OPC_MoveParent, ++/*192770*/ OPC_MoveChild, 9, ++/*192772*/ OPC_CheckInteger, 1, ++/*192774*/ OPC_CheckType, MVT::i32, ++/*192776*/ OPC_MoveParent, ++/*192777*/ OPC_MoveChild, 10, ++/*192779*/ OPC_CheckInteger, 1, ++/*192781*/ OPC_CheckType, MVT::i32, ++/*192783*/ OPC_MoveParent, ++/*192784*/ OPC_MoveChild, 11, ++/*192786*/ OPC_CheckInteger, 1, ++/*192788*/ OPC_CheckType, MVT::i32, ++/*192790*/ OPC_MoveParent, ++/*192791*/ OPC_MoveChild, 12, ++/*192793*/ OPC_CheckInteger, 1, ++/*192795*/ OPC_CheckType, MVT::i32, ++/*192797*/ OPC_MoveParent, ++/*192798*/ OPC_MoveChild, 13, ++/*192800*/ OPC_CheckInteger, 1, ++/*192802*/ OPC_CheckType, MVT::i32, ++/*192804*/ OPC_MoveParent, ++/*192805*/ OPC_MoveChild, 14, ++/*192807*/ OPC_CheckInteger, 1, ++/*192809*/ OPC_CheckType, MVT::i32, ++/*192811*/ OPC_MoveParent, ++/*192812*/ OPC_MoveChild, 15, ++/*192814*/ OPC_CheckInteger, 1, ++/*192816*/ OPC_CheckType, MVT::i32, ++/*192818*/ OPC_MoveParent, ++/*192819*/ OPC_MoveParent, ++/*192820*/ OPC_MoveParent, ++/*192821*/ OPC_CheckChild1Same, 0, ++/*192823*/ OPC_MoveParent, ++/*192824*/ OPC_MoveChild1, ++/*192825*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*192828*/ OPC_CheckChild0Integer, 7, ++/*192830*/ OPC_CheckChild0Type, MVT::i32, ++/*192832*/ OPC_CheckChild1Integer, 7, ++/*192834*/ OPC_CheckChild1Type, MVT::i32, ++/*192836*/ OPC_CheckChild2Integer, 7, ++/*192838*/ OPC_CheckChild2Type, MVT::i32, ++/*192840*/ OPC_CheckChild3Integer, 7, ++/*192842*/ OPC_CheckChild3Type, MVT::i32, ++/*192844*/ OPC_CheckChild4Integer, 7, ++/*192846*/ OPC_CheckChild4Type, MVT::i32, ++/*192848*/ OPC_MoveChild5, ++/*192849*/ OPC_CheckInteger, 7, ++/*192851*/ OPC_CheckType, MVT::i32, ++/*192853*/ OPC_MoveParent, ++/*192854*/ OPC_MoveChild6, ++/*192855*/ OPC_CheckInteger, 7, ++/*192857*/ OPC_CheckType, MVT::i32, ++/*192859*/ OPC_MoveParent, ++/*192860*/ OPC_MoveChild7, ++/*192861*/ OPC_CheckInteger, 7, ++/*192863*/ OPC_CheckType, MVT::i32, ++/*192865*/ OPC_MoveParent, ++/*192866*/ OPC_MoveChild, 8, ++/*192868*/ OPC_CheckInteger, 7, ++/*192870*/ OPC_CheckType, MVT::i32, ++/*192872*/ OPC_MoveParent, ++/*192873*/ OPC_MoveChild, 9, ++/*192875*/ OPC_CheckInteger, 7, ++/*192877*/ OPC_CheckType, MVT::i32, ++/*192879*/ OPC_MoveParent, ++/*192880*/ OPC_MoveChild, 10, ++/*192882*/ OPC_CheckInteger, 7, ++/*192884*/ OPC_CheckType, MVT::i32, ++/*192886*/ OPC_MoveParent, ++/*192887*/ OPC_MoveChild, 11, ++/*192889*/ OPC_CheckInteger, 7, ++/*192891*/ OPC_CheckType, MVT::i32, ++/*192893*/ OPC_MoveParent, ++/*192894*/ OPC_MoveChild, 12, ++/*192896*/ OPC_CheckInteger, 7, ++/*192898*/ OPC_CheckType, MVT::i32, ++/*192900*/ OPC_MoveParent, ++/*192901*/ OPC_MoveChild, 13, ++/*192903*/ OPC_CheckInteger, 7, ++/*192905*/ OPC_CheckType, MVT::i32, ++/*192907*/ OPC_MoveParent, ++/*192908*/ OPC_MoveChild, 14, ++/*192910*/ OPC_CheckInteger, 7, ++/*192912*/ OPC_CheckType, MVT::i32, ++/*192914*/ OPC_MoveParent, ++/*192915*/ OPC_MoveChild, 15, ++/*192917*/ OPC_CheckInteger, 7, ++/*192919*/ OPC_CheckType, MVT::i32, ++/*192921*/ OPC_MoveParent, ++/*192922*/ OPC_CheckType, MVT::v16i8, ++/*192924*/ OPC_MoveParent, ++/*192925*/ OPC_MoveParent, ++/*192926*/ OPC_MoveParent, ++/*192927*/ OPC_MoveChild1, ++/*192928*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*192931*/ OPC_CheckChild0Integer, 1, ++/*192933*/ OPC_CheckChild0Type, MVT::i32, ++/*192935*/ OPC_CheckChild1Integer, 1, ++/*192937*/ OPC_CheckChild1Type, MVT::i32, ++/*192939*/ OPC_CheckChild2Integer, 1, ++/*192941*/ OPC_CheckChild2Type, MVT::i32, ++/*192943*/ OPC_CheckChild3Integer, 1, ++/*192945*/ OPC_CheckChild3Type, MVT::i32, ++/*192947*/ OPC_CheckChild4Integer, 1, ++/*192949*/ OPC_CheckChild4Type, MVT::i32, ++/*192951*/ OPC_MoveChild5, ++/*192952*/ OPC_CheckInteger, 1, ++/*192954*/ OPC_CheckType, MVT::i32, ++/*192956*/ OPC_MoveParent, ++/*192957*/ OPC_MoveChild6, ++/*192958*/ OPC_CheckInteger, 1, ++/*192960*/ OPC_CheckType, MVT::i32, ++/*192962*/ OPC_MoveParent, ++/*192963*/ OPC_MoveChild7, ++/*192964*/ OPC_CheckInteger, 1, ++/*192966*/ OPC_CheckType, MVT::i32, ++/*192968*/ OPC_MoveParent, ++/*192969*/ OPC_MoveChild, 8, ++/*192971*/ OPC_CheckInteger, 1, ++/*192973*/ OPC_CheckType, MVT::i32, ++/*192975*/ OPC_MoveParent, ++/*192976*/ OPC_MoveChild, 9, ++/*192978*/ OPC_CheckInteger, 1, ++/*192980*/ OPC_CheckType, MVT::i32, ++/*192982*/ OPC_MoveParent, ++/*192983*/ OPC_MoveChild, 10, ++/*192985*/ OPC_CheckInteger, 1, ++/*192987*/ OPC_CheckType, MVT::i32, ++/*192989*/ OPC_MoveParent, ++/*192990*/ OPC_MoveChild, 11, ++/*192992*/ OPC_CheckInteger, 1, ++/*192994*/ OPC_CheckType, MVT::i32, ++/*192996*/ OPC_MoveParent, ++/*192997*/ OPC_MoveChild, 12, ++/*192999*/ OPC_CheckInteger, 1, ++/*193001*/ OPC_CheckType, MVT::i32, ++/*193003*/ OPC_MoveParent, ++/*193004*/ OPC_MoveChild, 13, ++/*193006*/ OPC_CheckInteger, 1, ++/*193008*/ OPC_CheckType, MVT::i32, ++/*193010*/ OPC_MoveParent, ++/*193011*/ OPC_MoveChild, 14, ++/*193013*/ OPC_CheckInteger, 1, ++/*193015*/ OPC_CheckType, MVT::i32, ++/*193017*/ OPC_MoveParent, ++/*193018*/ OPC_MoveChild, 15, ++/*193020*/ OPC_CheckInteger, 1, ++/*193022*/ OPC_CheckType, MVT::i32, ++/*193024*/ OPC_MoveParent, ++/*193025*/ OPC_CheckType, MVT::v16i8, ++/*193027*/ OPC_MoveParent, ++/*193028*/ OPC_CheckType, MVT::v16i8, ++/*193030*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*193032*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*193040*/ /*Scope*/ 65|128,2/*321*/, /*->193363*/ ++/*193042*/ OPC_CheckChild0Same, 0, ++/*193044*/ OPC_CheckChild1Same, 1, ++/*193046*/ OPC_MoveParent, ++/*193047*/ OPC_MoveChild1, ++/*193048*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*193051*/ OPC_CheckChild0Integer, 1, ++/*193053*/ OPC_CheckChild0Type, MVT::i32, ++/*193055*/ OPC_CheckChild1Integer, 1, ++/*193057*/ OPC_CheckChild1Type, MVT::i32, ++/*193059*/ OPC_CheckChild2Integer, 1, ++/*193061*/ OPC_CheckChild2Type, MVT::i32, ++/*193063*/ OPC_CheckChild3Integer, 1, ++/*193065*/ OPC_CheckChild3Type, MVT::i32, ++/*193067*/ OPC_CheckChild4Integer, 1, ++/*193069*/ OPC_CheckChild4Type, MVT::i32, ++/*193071*/ OPC_MoveChild5, ++/*193072*/ OPC_CheckInteger, 1, ++/*193074*/ OPC_CheckType, MVT::i32, ++/*193076*/ OPC_MoveParent, ++/*193077*/ OPC_MoveChild6, ++/*193078*/ OPC_CheckInteger, 1, ++/*193080*/ OPC_CheckType, MVT::i32, ++/*193082*/ OPC_MoveParent, ++/*193083*/ OPC_MoveChild7, ++/*193084*/ OPC_CheckInteger, 1, ++/*193086*/ OPC_CheckType, MVT::i32, ++/*193088*/ OPC_MoveParent, ++/*193089*/ OPC_MoveChild, 8, ++/*193091*/ OPC_CheckInteger, 1, ++/*193093*/ OPC_CheckType, MVT::i32, ++/*193095*/ OPC_MoveParent, ++/*193096*/ OPC_MoveChild, 9, ++/*193098*/ OPC_CheckInteger, 1, ++/*193100*/ OPC_CheckType, MVT::i32, ++/*193102*/ OPC_MoveParent, ++/*193103*/ OPC_MoveChild, 10, ++/*193105*/ OPC_CheckInteger, 1, ++/*193107*/ OPC_CheckType, MVT::i32, ++/*193109*/ OPC_MoveParent, ++/*193110*/ OPC_MoveChild, 11, ++/*193112*/ OPC_CheckInteger, 1, ++/*193114*/ OPC_CheckType, MVT::i32, ++/*193116*/ OPC_MoveParent, ++/*193117*/ OPC_MoveChild, 12, ++/*193119*/ OPC_CheckInteger, 1, ++/*193121*/ OPC_CheckType, MVT::i32, ++/*193123*/ OPC_MoveParent, ++/*193124*/ OPC_MoveChild, 13, ++/*193126*/ OPC_CheckInteger, 1, ++/*193128*/ OPC_CheckType, MVT::i32, ++/*193130*/ OPC_MoveParent, ++/*193131*/ OPC_MoveChild, 14, ++/*193133*/ OPC_CheckInteger, 1, ++/*193135*/ OPC_CheckType, MVT::i32, ++/*193137*/ OPC_MoveParent, ++/*193138*/ OPC_MoveChild, 15, ++/*193140*/ OPC_CheckInteger, 1, ++/*193142*/ OPC_CheckType, MVT::i32, ++/*193144*/ OPC_MoveParent, ++/*193145*/ OPC_MoveParent, ++/*193146*/ OPC_MoveParent, ++/*193147*/ OPC_MoveChild1, ++/*193148*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*193151*/ OPC_CheckChild0Integer, 7, ++/*193153*/ OPC_CheckChild0Type, MVT::i32, ++/*193155*/ OPC_CheckChild1Integer, 7, ++/*193157*/ OPC_CheckChild1Type, MVT::i32, ++/*193159*/ OPC_CheckChild2Integer, 7, ++/*193161*/ OPC_CheckChild2Type, MVT::i32, ++/*193163*/ OPC_CheckChild3Integer, 7, ++/*193165*/ OPC_CheckChild3Type, MVT::i32, ++/*193167*/ OPC_CheckChild4Integer, 7, ++/*193169*/ OPC_CheckChild4Type, MVT::i32, ++/*193171*/ OPC_MoveChild5, ++/*193172*/ OPC_CheckInteger, 7, ++/*193174*/ OPC_CheckType, MVT::i32, ++/*193176*/ OPC_MoveParent, ++/*193177*/ OPC_MoveChild6, ++/*193178*/ OPC_CheckInteger, 7, ++/*193180*/ OPC_CheckType, MVT::i32, ++/*193182*/ OPC_MoveParent, ++/*193183*/ OPC_MoveChild7, ++/*193184*/ OPC_CheckInteger, 7, ++/*193186*/ OPC_CheckType, MVT::i32, ++/*193188*/ OPC_MoveParent, ++/*193189*/ OPC_MoveChild, 8, ++/*193191*/ OPC_CheckInteger, 7, ++/*193193*/ OPC_CheckType, MVT::i32, ++/*193195*/ OPC_MoveParent, ++/*193196*/ OPC_MoveChild, 9, ++/*193198*/ OPC_CheckInteger, 7, ++/*193200*/ OPC_CheckType, MVT::i32, ++/*193202*/ OPC_MoveParent, ++/*193203*/ OPC_MoveChild, 10, ++/*193205*/ OPC_CheckInteger, 7, ++/*193207*/ OPC_CheckType, MVT::i32, ++/*193209*/ OPC_MoveParent, ++/*193210*/ OPC_MoveChild, 11, ++/*193212*/ OPC_CheckInteger, 7, ++/*193214*/ OPC_CheckType, MVT::i32, ++/*193216*/ OPC_MoveParent, ++/*193217*/ OPC_MoveChild, 12, ++/*193219*/ OPC_CheckInteger, 7, ++/*193221*/ OPC_CheckType, MVT::i32, ++/*193223*/ OPC_MoveParent, ++/*193224*/ OPC_MoveChild, 13, ++/*193226*/ OPC_CheckInteger, 7, ++/*193228*/ OPC_CheckType, MVT::i32, ++/*193230*/ OPC_MoveParent, ++/*193231*/ OPC_MoveChild, 14, ++/*193233*/ OPC_CheckInteger, 7, ++/*193235*/ OPC_CheckType, MVT::i32, ++/*193237*/ OPC_MoveParent, ++/*193238*/ OPC_MoveChild, 15, ++/*193240*/ OPC_CheckInteger, 7, ++/*193242*/ OPC_CheckType, MVT::i32, ++/*193244*/ OPC_MoveParent, ++/*193245*/ OPC_CheckType, MVT::v16i8, ++/*193247*/ OPC_MoveParent, ++/*193248*/ OPC_MoveParent, ++/*193249*/ OPC_MoveParent, ++/*193250*/ OPC_MoveChild1, ++/*193251*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*193254*/ OPC_CheckChild0Integer, 1, ++/*193256*/ OPC_CheckChild0Type, MVT::i32, ++/*193258*/ OPC_CheckChild1Integer, 1, ++/*193260*/ OPC_CheckChild1Type, MVT::i32, ++/*193262*/ OPC_CheckChild2Integer, 1, ++/*193264*/ OPC_CheckChild2Type, MVT::i32, ++/*193266*/ OPC_CheckChild3Integer, 1, ++/*193268*/ OPC_CheckChild3Type, MVT::i32, ++/*193270*/ OPC_CheckChild4Integer, 1, ++/*193272*/ OPC_CheckChild4Type, MVT::i32, ++/*193274*/ OPC_MoveChild5, ++/*193275*/ OPC_CheckInteger, 1, ++/*193277*/ OPC_CheckType, MVT::i32, ++/*193279*/ OPC_MoveParent, ++/*193280*/ OPC_MoveChild6, ++/*193281*/ OPC_CheckInteger, 1, ++/*193283*/ OPC_CheckType, MVT::i32, ++/*193285*/ OPC_MoveParent, ++/*193286*/ OPC_MoveChild7, ++/*193287*/ OPC_CheckInteger, 1, ++/*193289*/ OPC_CheckType, MVT::i32, ++/*193291*/ OPC_MoveParent, ++/*193292*/ OPC_MoveChild, 8, ++/*193294*/ OPC_CheckInteger, 1, ++/*193296*/ OPC_CheckType, MVT::i32, ++/*193298*/ OPC_MoveParent, ++/*193299*/ OPC_MoveChild, 9, ++/*193301*/ OPC_CheckInteger, 1, ++/*193303*/ OPC_CheckType, MVT::i32, ++/*193305*/ OPC_MoveParent, ++/*193306*/ OPC_MoveChild, 10, ++/*193308*/ OPC_CheckInteger, 1, ++/*193310*/ OPC_CheckType, MVT::i32, ++/*193312*/ OPC_MoveParent, ++/*193313*/ OPC_MoveChild, 11, ++/*193315*/ OPC_CheckInteger, 1, ++/*193317*/ OPC_CheckType, MVT::i32, ++/*193319*/ OPC_MoveParent, ++/*193320*/ OPC_MoveChild, 12, ++/*193322*/ OPC_CheckInteger, 1, ++/*193324*/ OPC_CheckType, MVT::i32, ++/*193326*/ OPC_MoveParent, ++/*193327*/ OPC_MoveChild, 13, ++/*193329*/ OPC_CheckInteger, 1, ++/*193331*/ OPC_CheckType, MVT::i32, ++/*193333*/ OPC_MoveParent, ++/*193334*/ OPC_MoveChild, 14, ++/*193336*/ OPC_CheckInteger, 1, ++/*193338*/ OPC_CheckType, MVT::i32, ++/*193340*/ OPC_MoveParent, ++/*193341*/ OPC_MoveChild, 15, ++/*193343*/ OPC_CheckInteger, 1, ++/*193345*/ OPC_CheckType, MVT::i32, ++/*193347*/ OPC_MoveParent, ++/*193348*/ OPC_CheckType, MVT::v16i8, ++/*193350*/ OPC_MoveParent, ++/*193351*/ OPC_CheckType, MVT::v16i8, ++/*193353*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*193355*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*193363*/ /*Scope*/ 65|128,2/*321*/, /*->193686*/ ++/*193365*/ OPC_CheckChild0Same, 1, ++/*193367*/ OPC_CheckChild1Same, 0, ++/*193369*/ OPC_MoveParent, ++/*193370*/ OPC_MoveChild1, ++/*193371*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*193374*/ OPC_CheckChild0Integer, 1, ++/*193376*/ OPC_CheckChild0Type, MVT::i32, ++/*193378*/ OPC_CheckChild1Integer, 1, ++/*193380*/ OPC_CheckChild1Type, MVT::i32, ++/*193382*/ OPC_CheckChild2Integer, 1, ++/*193384*/ OPC_CheckChild2Type, MVT::i32, ++/*193386*/ OPC_CheckChild3Integer, 1, ++/*193388*/ OPC_CheckChild3Type, MVT::i32, ++/*193390*/ OPC_CheckChild4Integer, 1, ++/*193392*/ OPC_CheckChild4Type, MVT::i32, ++/*193394*/ OPC_MoveChild5, ++/*193395*/ OPC_CheckInteger, 1, ++/*193397*/ OPC_CheckType, MVT::i32, ++/*193399*/ OPC_MoveParent, ++/*193400*/ OPC_MoveChild6, ++/*193401*/ OPC_CheckInteger, 1, ++/*193403*/ OPC_CheckType, MVT::i32, ++/*193405*/ OPC_MoveParent, ++/*193406*/ OPC_MoveChild7, ++/*193407*/ OPC_CheckInteger, 1, ++/*193409*/ OPC_CheckType, MVT::i32, ++/*193411*/ OPC_MoveParent, ++/*193412*/ OPC_MoveChild, 8, ++/*193414*/ OPC_CheckInteger, 1, ++/*193416*/ OPC_CheckType, MVT::i32, ++/*193418*/ OPC_MoveParent, ++/*193419*/ OPC_MoveChild, 9, ++/*193421*/ OPC_CheckInteger, 1, ++/*193423*/ OPC_CheckType, MVT::i32, ++/*193425*/ OPC_MoveParent, ++/*193426*/ OPC_MoveChild, 10, ++/*193428*/ OPC_CheckInteger, 1, ++/*193430*/ OPC_CheckType, MVT::i32, ++/*193432*/ OPC_MoveParent, ++/*193433*/ OPC_MoveChild, 11, ++/*193435*/ OPC_CheckInteger, 1, ++/*193437*/ OPC_CheckType, MVT::i32, ++/*193439*/ OPC_MoveParent, ++/*193440*/ OPC_MoveChild, 12, ++/*193442*/ OPC_CheckInteger, 1, ++/*193444*/ OPC_CheckType, MVT::i32, ++/*193446*/ OPC_MoveParent, ++/*193447*/ OPC_MoveChild, 13, ++/*193449*/ OPC_CheckInteger, 1, ++/*193451*/ OPC_CheckType, MVT::i32, ++/*193453*/ OPC_MoveParent, ++/*193454*/ OPC_MoveChild, 14, ++/*193456*/ OPC_CheckInteger, 1, ++/*193458*/ OPC_CheckType, MVT::i32, ++/*193460*/ OPC_MoveParent, ++/*193461*/ OPC_MoveChild, 15, ++/*193463*/ OPC_CheckInteger, 1, ++/*193465*/ OPC_CheckType, MVT::i32, ++/*193467*/ OPC_MoveParent, ++/*193468*/ OPC_MoveParent, ++/*193469*/ OPC_MoveParent, ++/*193470*/ OPC_MoveChild1, ++/*193471*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*193474*/ OPC_CheckChild0Integer, 7, ++/*193476*/ OPC_CheckChild0Type, MVT::i32, ++/*193478*/ OPC_CheckChild1Integer, 7, ++/*193480*/ OPC_CheckChild1Type, MVT::i32, ++/*193482*/ OPC_CheckChild2Integer, 7, ++/*193484*/ OPC_CheckChild2Type, MVT::i32, ++/*193486*/ OPC_CheckChild3Integer, 7, ++/*193488*/ OPC_CheckChild3Type, MVT::i32, ++/*193490*/ OPC_CheckChild4Integer, 7, ++/*193492*/ OPC_CheckChild4Type, MVT::i32, ++/*193494*/ OPC_MoveChild5, ++/*193495*/ OPC_CheckInteger, 7, ++/*193497*/ OPC_CheckType, MVT::i32, ++/*193499*/ OPC_MoveParent, ++/*193500*/ OPC_MoveChild6, ++/*193501*/ OPC_CheckInteger, 7, ++/*193503*/ OPC_CheckType, MVT::i32, ++/*193505*/ OPC_MoveParent, ++/*193506*/ OPC_MoveChild7, ++/*193507*/ OPC_CheckInteger, 7, ++/*193509*/ OPC_CheckType, MVT::i32, ++/*193511*/ OPC_MoveParent, ++/*193512*/ OPC_MoveChild, 8, ++/*193514*/ OPC_CheckInteger, 7, ++/*193516*/ OPC_CheckType, MVT::i32, ++/*193518*/ OPC_MoveParent, ++/*193519*/ OPC_MoveChild, 9, ++/*193521*/ OPC_CheckInteger, 7, ++/*193523*/ OPC_CheckType, MVT::i32, ++/*193525*/ OPC_MoveParent, ++/*193526*/ OPC_MoveChild, 10, ++/*193528*/ OPC_CheckInteger, 7, ++/*193530*/ OPC_CheckType, MVT::i32, ++/*193532*/ OPC_MoveParent, ++/*193533*/ OPC_MoveChild, 11, ++/*193535*/ OPC_CheckInteger, 7, ++/*193537*/ OPC_CheckType, MVT::i32, ++/*193539*/ OPC_MoveParent, ++/*193540*/ OPC_MoveChild, 12, ++/*193542*/ OPC_CheckInteger, 7, ++/*193544*/ OPC_CheckType, MVT::i32, ++/*193546*/ OPC_MoveParent, ++/*193547*/ OPC_MoveChild, 13, ++/*193549*/ OPC_CheckInteger, 7, ++/*193551*/ OPC_CheckType, MVT::i32, ++/*193553*/ OPC_MoveParent, ++/*193554*/ OPC_MoveChild, 14, ++/*193556*/ OPC_CheckInteger, 7, ++/*193558*/ OPC_CheckType, MVT::i32, ++/*193560*/ OPC_MoveParent, ++/*193561*/ OPC_MoveChild, 15, ++/*193563*/ OPC_CheckInteger, 7, ++/*193565*/ OPC_CheckType, MVT::i32, ++/*193567*/ OPC_MoveParent, ++/*193568*/ OPC_CheckType, MVT::v16i8, ++/*193570*/ OPC_MoveParent, ++/*193571*/ OPC_MoveParent, ++/*193572*/ OPC_MoveParent, ++/*193573*/ OPC_MoveChild1, ++/*193574*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*193577*/ OPC_CheckChild0Integer, 1, ++/*193579*/ OPC_CheckChild0Type, MVT::i32, ++/*193581*/ OPC_CheckChild1Integer, 1, ++/*193583*/ OPC_CheckChild1Type, MVT::i32, ++/*193585*/ OPC_CheckChild2Integer, 1, ++/*193587*/ OPC_CheckChild2Type, MVT::i32, ++/*193589*/ OPC_CheckChild3Integer, 1, ++/*193591*/ OPC_CheckChild3Type, MVT::i32, ++/*193593*/ OPC_CheckChild4Integer, 1, ++/*193595*/ OPC_CheckChild4Type, MVT::i32, ++/*193597*/ OPC_MoveChild5, ++/*193598*/ OPC_CheckInteger, 1, ++/*193600*/ OPC_CheckType, MVT::i32, ++/*193602*/ OPC_MoveParent, ++/*193603*/ OPC_MoveChild6, ++/*193604*/ OPC_CheckInteger, 1, ++/*193606*/ OPC_CheckType, MVT::i32, ++/*193608*/ OPC_MoveParent, ++/*193609*/ OPC_MoveChild7, ++/*193610*/ OPC_CheckInteger, 1, ++/*193612*/ OPC_CheckType, MVT::i32, ++/*193614*/ OPC_MoveParent, ++/*193615*/ OPC_MoveChild, 8, ++/*193617*/ OPC_CheckInteger, 1, ++/*193619*/ OPC_CheckType, MVT::i32, ++/*193621*/ OPC_MoveParent, ++/*193622*/ OPC_MoveChild, 9, ++/*193624*/ OPC_CheckInteger, 1, ++/*193626*/ OPC_CheckType, MVT::i32, ++/*193628*/ OPC_MoveParent, ++/*193629*/ OPC_MoveChild, 10, ++/*193631*/ OPC_CheckInteger, 1, ++/*193633*/ OPC_CheckType, MVT::i32, ++/*193635*/ OPC_MoveParent, ++/*193636*/ OPC_MoveChild, 11, ++/*193638*/ OPC_CheckInteger, 1, ++/*193640*/ OPC_CheckType, MVT::i32, ++/*193642*/ OPC_MoveParent, ++/*193643*/ OPC_MoveChild, 12, ++/*193645*/ OPC_CheckInteger, 1, ++/*193647*/ OPC_CheckType, MVT::i32, ++/*193649*/ OPC_MoveParent, ++/*193650*/ OPC_MoveChild, 13, ++/*193652*/ OPC_CheckInteger, 1, ++/*193654*/ OPC_CheckType, MVT::i32, ++/*193656*/ OPC_MoveParent, ++/*193657*/ OPC_MoveChild, 14, ++/*193659*/ OPC_CheckInteger, 1, ++/*193661*/ OPC_CheckType, MVT::i32, ++/*193663*/ OPC_MoveParent, ++/*193664*/ OPC_MoveChild, 15, ++/*193666*/ OPC_CheckInteger, 1, ++/*193668*/ OPC_CheckType, MVT::i32, ++/*193670*/ OPC_MoveParent, ++/*193671*/ OPC_CheckType, MVT::v16i8, ++/*193673*/ OPC_MoveParent, ++/*193674*/ OPC_CheckType, MVT::v16i8, ++/*193676*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*193678*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*193686*/ 0, /*End of Scope*/ ++/*193687*/ /*Scope*/ 10|128,5/*650*/, /*->194339*/ ++/*193689*/ OPC_CheckChild0Same, 1, ++/*193691*/ OPC_MoveChild1, ++/*193692*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*193695*/ OPC_Scope, 63|128,2/*319*/, /*->194017*/ // 2 children in Scope ++/*193698*/ OPC_MoveChild0, ++/*193699*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*193702*/ OPC_CheckChild0Integer, 1, ++/*193704*/ OPC_CheckChild0Type, MVT::i32, ++/*193706*/ OPC_CheckChild1Integer, 1, ++/*193708*/ OPC_CheckChild1Type, MVT::i32, ++/*193710*/ OPC_CheckChild2Integer, 1, ++/*193712*/ OPC_CheckChild2Type, MVT::i32, ++/*193714*/ OPC_CheckChild3Integer, 1, ++/*193716*/ OPC_CheckChild3Type, MVT::i32, ++/*193718*/ OPC_CheckChild4Integer, 1, ++/*193720*/ OPC_CheckChild4Type, MVT::i32, ++/*193722*/ OPC_MoveChild5, ++/*193723*/ OPC_CheckInteger, 1, ++/*193725*/ OPC_CheckType, MVT::i32, ++/*193727*/ OPC_MoveParent, ++/*193728*/ OPC_MoveChild6, ++/*193729*/ OPC_CheckInteger, 1, ++/*193731*/ OPC_CheckType, MVT::i32, ++/*193733*/ OPC_MoveParent, ++/*193734*/ OPC_MoveChild7, ++/*193735*/ OPC_CheckInteger, 1, ++/*193737*/ OPC_CheckType, MVT::i32, ++/*193739*/ OPC_MoveParent, ++/*193740*/ OPC_MoveChild, 8, ++/*193742*/ OPC_CheckInteger, 1, ++/*193744*/ OPC_CheckType, MVT::i32, ++/*193746*/ OPC_MoveParent, ++/*193747*/ OPC_MoveChild, 9, ++/*193749*/ OPC_CheckInteger, 1, ++/*193751*/ OPC_CheckType, MVT::i32, ++/*193753*/ OPC_MoveParent, ++/*193754*/ OPC_MoveChild, 10, ++/*193756*/ OPC_CheckInteger, 1, ++/*193758*/ OPC_CheckType, MVT::i32, ++/*193760*/ OPC_MoveParent, ++/*193761*/ OPC_MoveChild, 11, ++/*193763*/ OPC_CheckInteger, 1, ++/*193765*/ OPC_CheckType, MVT::i32, ++/*193767*/ OPC_MoveParent, ++/*193768*/ OPC_MoveChild, 12, ++/*193770*/ OPC_CheckInteger, 1, ++/*193772*/ OPC_CheckType, MVT::i32, ++/*193774*/ OPC_MoveParent, ++/*193775*/ OPC_MoveChild, 13, ++/*193777*/ OPC_CheckInteger, 1, ++/*193779*/ OPC_CheckType, MVT::i32, ++/*193781*/ OPC_MoveParent, ++/*193782*/ OPC_MoveChild, 14, ++/*193784*/ OPC_CheckInteger, 1, ++/*193786*/ OPC_CheckType, MVT::i32, ++/*193788*/ OPC_MoveParent, ++/*193789*/ OPC_MoveChild, 15, ++/*193791*/ OPC_CheckInteger, 1, ++/*193793*/ OPC_CheckType, MVT::i32, ++/*193795*/ OPC_MoveParent, ++/*193796*/ OPC_MoveParent, ++/*193797*/ OPC_CheckChild1Same, 0, ++/*193799*/ OPC_MoveParent, ++/*193800*/ OPC_MoveParent, ++/*193801*/ OPC_MoveChild1, ++/*193802*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*193805*/ OPC_CheckChild0Integer, 7, ++/*193807*/ OPC_CheckChild0Type, MVT::i32, ++/*193809*/ OPC_CheckChild1Integer, 7, ++/*193811*/ OPC_CheckChild1Type, MVT::i32, ++/*193813*/ OPC_CheckChild2Integer, 7, ++/*193815*/ OPC_CheckChild2Type, MVT::i32, ++/*193817*/ OPC_CheckChild3Integer, 7, ++/*193819*/ OPC_CheckChild3Type, MVT::i32, ++/*193821*/ OPC_CheckChild4Integer, 7, ++/*193823*/ OPC_CheckChild4Type, MVT::i32, ++/*193825*/ OPC_MoveChild5, ++/*193826*/ OPC_CheckInteger, 7, ++/*193828*/ OPC_CheckType, MVT::i32, ++/*193830*/ OPC_MoveParent, ++/*193831*/ OPC_MoveChild6, ++/*193832*/ OPC_CheckInteger, 7, ++/*193834*/ OPC_CheckType, MVT::i32, ++/*193836*/ OPC_MoveParent, ++/*193837*/ OPC_MoveChild7, ++/*193838*/ OPC_CheckInteger, 7, ++/*193840*/ OPC_CheckType, MVT::i32, ++/*193842*/ OPC_MoveParent, ++/*193843*/ OPC_MoveChild, 8, ++/*193845*/ OPC_CheckInteger, 7, ++/*193847*/ OPC_CheckType, MVT::i32, ++/*193849*/ OPC_MoveParent, ++/*193850*/ OPC_MoveChild, 9, ++/*193852*/ OPC_CheckInteger, 7, ++/*193854*/ OPC_CheckType, MVT::i32, ++/*193856*/ OPC_MoveParent, ++/*193857*/ OPC_MoveChild, 10, ++/*193859*/ OPC_CheckInteger, 7, ++/*193861*/ OPC_CheckType, MVT::i32, ++/*193863*/ OPC_MoveParent, ++/*193864*/ OPC_MoveChild, 11, ++/*193866*/ OPC_CheckInteger, 7, ++/*193868*/ OPC_CheckType, MVT::i32, ++/*193870*/ OPC_MoveParent, ++/*193871*/ OPC_MoveChild, 12, ++/*193873*/ OPC_CheckInteger, 7, ++/*193875*/ OPC_CheckType, MVT::i32, ++/*193877*/ OPC_MoveParent, ++/*193878*/ OPC_MoveChild, 13, ++/*193880*/ OPC_CheckInteger, 7, ++/*193882*/ OPC_CheckType, MVT::i32, ++/*193884*/ OPC_MoveParent, ++/*193885*/ OPC_MoveChild, 14, ++/*193887*/ OPC_CheckInteger, 7, ++/*193889*/ OPC_CheckType, MVT::i32, ++/*193891*/ OPC_MoveParent, ++/*193892*/ OPC_MoveChild, 15, ++/*193894*/ OPC_CheckInteger, 7, ++/*193896*/ OPC_CheckType, MVT::i32, ++/*193898*/ OPC_MoveParent, ++/*193899*/ OPC_CheckType, MVT::v16i8, ++/*193901*/ OPC_MoveParent, ++/*193902*/ OPC_MoveParent, ++/*193903*/ OPC_MoveParent, ++/*193904*/ OPC_MoveChild1, ++/*193905*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*193908*/ OPC_CheckChild0Integer, 1, ++/*193910*/ OPC_CheckChild0Type, MVT::i32, ++/*193912*/ OPC_CheckChild1Integer, 1, ++/*193914*/ OPC_CheckChild1Type, MVT::i32, ++/*193916*/ OPC_CheckChild2Integer, 1, ++/*193918*/ OPC_CheckChild2Type, MVT::i32, ++/*193920*/ OPC_CheckChild3Integer, 1, ++/*193922*/ OPC_CheckChild3Type, MVT::i32, ++/*193924*/ OPC_CheckChild4Integer, 1, ++/*193926*/ OPC_CheckChild4Type, MVT::i32, ++/*193928*/ OPC_MoveChild5, ++/*193929*/ OPC_CheckInteger, 1, ++/*193931*/ OPC_CheckType, MVT::i32, ++/*193933*/ OPC_MoveParent, ++/*193934*/ OPC_MoveChild6, ++/*193935*/ OPC_CheckInteger, 1, ++/*193937*/ OPC_CheckType, MVT::i32, ++/*193939*/ OPC_MoveParent, ++/*193940*/ OPC_MoveChild7, ++/*193941*/ OPC_CheckInteger, 1, ++/*193943*/ OPC_CheckType, MVT::i32, ++/*193945*/ OPC_MoveParent, ++/*193946*/ OPC_MoveChild, 8, ++/*193948*/ OPC_CheckInteger, 1, ++/*193950*/ OPC_CheckType, MVT::i32, ++/*193952*/ OPC_MoveParent, ++/*193953*/ OPC_MoveChild, 9, ++/*193955*/ OPC_CheckInteger, 1, ++/*193957*/ OPC_CheckType, MVT::i32, ++/*193959*/ OPC_MoveParent, ++/*193960*/ OPC_MoveChild, 10, ++/*193962*/ OPC_CheckInteger, 1, ++/*193964*/ OPC_CheckType, MVT::i32, ++/*193966*/ OPC_MoveParent, ++/*193967*/ OPC_MoveChild, 11, ++/*193969*/ OPC_CheckInteger, 1, ++/*193971*/ OPC_CheckType, MVT::i32, ++/*193973*/ OPC_MoveParent, ++/*193974*/ OPC_MoveChild, 12, ++/*193976*/ OPC_CheckInteger, 1, ++/*193978*/ OPC_CheckType, MVT::i32, ++/*193980*/ OPC_MoveParent, ++/*193981*/ OPC_MoveChild, 13, ++/*193983*/ OPC_CheckInteger, 1, ++/*193985*/ OPC_CheckType, MVT::i32, ++/*193987*/ OPC_MoveParent, ++/*193988*/ OPC_MoveChild, 14, ++/*193990*/ OPC_CheckInteger, 1, ++/*193992*/ OPC_CheckType, MVT::i32, ++/*193994*/ OPC_MoveParent, ++/*193995*/ OPC_MoveChild, 15, ++/*193997*/ OPC_CheckInteger, 1, ++/*193999*/ OPC_CheckType, MVT::i32, ++/*194001*/ OPC_MoveParent, ++/*194002*/ OPC_CheckType, MVT::v16i8, ++/*194004*/ OPC_MoveParent, ++/*194005*/ OPC_CheckType, MVT::v16i8, ++/*194007*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*194009*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*194017*/ /*Scope*/ 63|128,2/*319*/, /*->194338*/ ++/*194019*/ OPC_CheckChild0Same, 0, ++/*194021*/ OPC_MoveChild1, ++/*194022*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*194025*/ OPC_CheckChild0Integer, 1, ++/*194027*/ OPC_CheckChild0Type, MVT::i32, ++/*194029*/ OPC_CheckChild1Integer, 1, ++/*194031*/ OPC_CheckChild1Type, MVT::i32, ++/*194033*/ OPC_CheckChild2Integer, 1, ++/*194035*/ OPC_CheckChild2Type, MVT::i32, ++/*194037*/ OPC_CheckChild3Integer, 1, ++/*194039*/ OPC_CheckChild3Type, MVT::i32, ++/*194041*/ OPC_CheckChild4Integer, 1, ++/*194043*/ OPC_CheckChild4Type, MVT::i32, ++/*194045*/ OPC_MoveChild5, ++/*194046*/ OPC_CheckInteger, 1, ++/*194048*/ OPC_CheckType, MVT::i32, ++/*194050*/ OPC_MoveParent, ++/*194051*/ OPC_MoveChild6, ++/*194052*/ OPC_CheckInteger, 1, ++/*194054*/ OPC_CheckType, MVT::i32, ++/*194056*/ OPC_MoveParent, ++/*194057*/ OPC_MoveChild7, ++/*194058*/ OPC_CheckInteger, 1, ++/*194060*/ OPC_CheckType, MVT::i32, ++/*194062*/ OPC_MoveParent, ++/*194063*/ OPC_MoveChild, 8, ++/*194065*/ OPC_CheckInteger, 1, ++/*194067*/ OPC_CheckType, MVT::i32, ++/*194069*/ OPC_MoveParent, ++/*194070*/ OPC_MoveChild, 9, ++/*194072*/ OPC_CheckInteger, 1, ++/*194074*/ OPC_CheckType, MVT::i32, ++/*194076*/ OPC_MoveParent, ++/*194077*/ OPC_MoveChild, 10, ++/*194079*/ OPC_CheckInteger, 1, ++/*194081*/ OPC_CheckType, MVT::i32, ++/*194083*/ OPC_MoveParent, ++/*194084*/ OPC_MoveChild, 11, ++/*194086*/ OPC_CheckInteger, 1, ++/*194088*/ OPC_CheckType, MVT::i32, ++/*194090*/ OPC_MoveParent, ++/*194091*/ OPC_MoveChild, 12, ++/*194093*/ OPC_CheckInteger, 1, ++/*194095*/ OPC_CheckType, MVT::i32, ++/*194097*/ OPC_MoveParent, ++/*194098*/ OPC_MoveChild, 13, ++/*194100*/ OPC_CheckInteger, 1, ++/*194102*/ OPC_CheckType, MVT::i32, ++/*194104*/ OPC_MoveParent, ++/*194105*/ OPC_MoveChild, 14, ++/*194107*/ OPC_CheckInteger, 1, ++/*194109*/ OPC_CheckType, MVT::i32, ++/*194111*/ OPC_MoveParent, ++/*194112*/ OPC_MoveChild, 15, ++/*194114*/ OPC_CheckInteger, 1, ++/*194116*/ OPC_CheckType, MVT::i32, ++/*194118*/ OPC_MoveParent, ++/*194119*/ OPC_MoveParent, ++/*194120*/ OPC_MoveParent, ++/*194121*/ OPC_MoveParent, ++/*194122*/ OPC_MoveChild1, ++/*194123*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*194126*/ OPC_CheckChild0Integer, 7, ++/*194128*/ OPC_CheckChild0Type, MVT::i32, ++/*194130*/ OPC_CheckChild1Integer, 7, ++/*194132*/ OPC_CheckChild1Type, MVT::i32, ++/*194134*/ OPC_CheckChild2Integer, 7, ++/*194136*/ OPC_CheckChild2Type, MVT::i32, ++/*194138*/ OPC_CheckChild3Integer, 7, ++/*194140*/ OPC_CheckChild3Type, MVT::i32, ++/*194142*/ OPC_CheckChild4Integer, 7, ++/*194144*/ OPC_CheckChild4Type, MVT::i32, ++/*194146*/ OPC_MoveChild5, ++/*194147*/ OPC_CheckInteger, 7, ++/*194149*/ OPC_CheckType, MVT::i32, ++/*194151*/ OPC_MoveParent, ++/*194152*/ OPC_MoveChild6, ++/*194153*/ OPC_CheckInteger, 7, ++/*194155*/ OPC_CheckType, MVT::i32, ++/*194157*/ OPC_MoveParent, ++/*194158*/ OPC_MoveChild7, ++/*194159*/ OPC_CheckInteger, 7, ++/*194161*/ OPC_CheckType, MVT::i32, ++/*194163*/ OPC_MoveParent, ++/*194164*/ OPC_MoveChild, 8, ++/*194166*/ OPC_CheckInteger, 7, ++/*194168*/ OPC_CheckType, MVT::i32, ++/*194170*/ OPC_MoveParent, ++/*194171*/ OPC_MoveChild, 9, ++/*194173*/ OPC_CheckInteger, 7, ++/*194175*/ OPC_CheckType, MVT::i32, ++/*194177*/ OPC_MoveParent, ++/*194178*/ OPC_MoveChild, 10, ++/*194180*/ OPC_CheckInteger, 7, ++/*194182*/ OPC_CheckType, MVT::i32, ++/*194184*/ OPC_MoveParent, ++/*194185*/ OPC_MoveChild, 11, ++/*194187*/ OPC_CheckInteger, 7, ++/*194189*/ OPC_CheckType, MVT::i32, ++/*194191*/ OPC_MoveParent, ++/*194192*/ OPC_MoveChild, 12, ++/*194194*/ OPC_CheckInteger, 7, ++/*194196*/ OPC_CheckType, MVT::i32, ++/*194198*/ OPC_MoveParent, ++/*194199*/ OPC_MoveChild, 13, ++/*194201*/ OPC_CheckInteger, 7, ++/*194203*/ OPC_CheckType, MVT::i32, ++/*194205*/ OPC_MoveParent, ++/*194206*/ OPC_MoveChild, 14, ++/*194208*/ OPC_CheckInteger, 7, ++/*194210*/ OPC_CheckType, MVT::i32, ++/*194212*/ OPC_MoveParent, ++/*194213*/ OPC_MoveChild, 15, ++/*194215*/ OPC_CheckInteger, 7, ++/*194217*/ OPC_CheckType, MVT::i32, ++/*194219*/ OPC_MoveParent, ++/*194220*/ OPC_CheckType, MVT::v16i8, ++/*194222*/ OPC_MoveParent, ++/*194223*/ OPC_MoveParent, ++/*194224*/ OPC_MoveParent, ++/*194225*/ OPC_MoveChild1, ++/*194226*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*194229*/ OPC_CheckChild0Integer, 1, ++/*194231*/ OPC_CheckChild0Type, MVT::i32, ++/*194233*/ OPC_CheckChild1Integer, 1, ++/*194235*/ OPC_CheckChild1Type, MVT::i32, ++/*194237*/ OPC_CheckChild2Integer, 1, ++/*194239*/ OPC_CheckChild2Type, MVT::i32, ++/*194241*/ OPC_CheckChild3Integer, 1, ++/*194243*/ OPC_CheckChild3Type, MVT::i32, ++/*194245*/ OPC_CheckChild4Integer, 1, ++/*194247*/ OPC_CheckChild4Type, MVT::i32, ++/*194249*/ OPC_MoveChild5, ++/*194250*/ OPC_CheckInteger, 1, ++/*194252*/ OPC_CheckType, MVT::i32, ++/*194254*/ OPC_MoveParent, ++/*194255*/ OPC_MoveChild6, ++/*194256*/ OPC_CheckInteger, 1, ++/*194258*/ OPC_CheckType, MVT::i32, ++/*194260*/ OPC_MoveParent, ++/*194261*/ OPC_MoveChild7, ++/*194262*/ OPC_CheckInteger, 1, ++/*194264*/ OPC_CheckType, MVT::i32, ++/*194266*/ OPC_MoveParent, ++/*194267*/ OPC_MoveChild, 8, ++/*194269*/ OPC_CheckInteger, 1, ++/*194271*/ OPC_CheckType, MVT::i32, ++/*194273*/ OPC_MoveParent, ++/*194274*/ OPC_MoveChild, 9, ++/*194276*/ OPC_CheckInteger, 1, ++/*194278*/ OPC_CheckType, MVT::i32, ++/*194280*/ OPC_MoveParent, ++/*194281*/ OPC_MoveChild, 10, ++/*194283*/ OPC_CheckInteger, 1, ++/*194285*/ OPC_CheckType, MVT::i32, ++/*194287*/ OPC_MoveParent, ++/*194288*/ OPC_MoveChild, 11, ++/*194290*/ OPC_CheckInteger, 1, ++/*194292*/ OPC_CheckType, MVT::i32, ++/*194294*/ OPC_MoveParent, ++/*194295*/ OPC_MoveChild, 12, ++/*194297*/ OPC_CheckInteger, 1, ++/*194299*/ OPC_CheckType, MVT::i32, ++/*194301*/ OPC_MoveParent, ++/*194302*/ OPC_MoveChild, 13, ++/*194304*/ OPC_CheckInteger, 1, ++/*194306*/ OPC_CheckType, MVT::i32, ++/*194308*/ OPC_MoveParent, ++/*194309*/ OPC_MoveChild, 14, ++/*194311*/ OPC_CheckInteger, 1, ++/*194313*/ OPC_CheckType, MVT::i32, ++/*194315*/ OPC_MoveParent, ++/*194316*/ OPC_MoveChild, 15, ++/*194318*/ OPC_CheckInteger, 1, ++/*194320*/ OPC_CheckType, MVT::i32, ++/*194322*/ OPC_MoveParent, ++/*194323*/ OPC_CheckType, MVT::v16i8, ++/*194325*/ OPC_MoveParent, ++/*194326*/ OPC_CheckType, MVT::v16i8, ++/*194328*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*194330*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*194338*/ 0, /*End of Scope*/ ++/*194339*/ /*Scope*/ 10|128,5/*650*/, /*->194991*/ ++/*194341*/ OPC_CheckChild0Same, 0, ++/*194343*/ OPC_MoveChild1, ++/*194344*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*194347*/ OPC_Scope, 63|128,2/*319*/, /*->194669*/ // 2 children in Scope ++/*194350*/ OPC_MoveChild0, ++/*194351*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*194354*/ OPC_CheckChild0Integer, 1, ++/*194356*/ OPC_CheckChild0Type, MVT::i32, ++/*194358*/ OPC_CheckChild1Integer, 1, ++/*194360*/ OPC_CheckChild1Type, MVT::i32, ++/*194362*/ OPC_CheckChild2Integer, 1, ++/*194364*/ OPC_CheckChild2Type, MVT::i32, ++/*194366*/ OPC_CheckChild3Integer, 1, ++/*194368*/ OPC_CheckChild3Type, MVT::i32, ++/*194370*/ OPC_CheckChild4Integer, 1, ++/*194372*/ OPC_CheckChild4Type, MVT::i32, ++/*194374*/ OPC_MoveChild5, ++/*194375*/ OPC_CheckInteger, 1, ++/*194377*/ OPC_CheckType, MVT::i32, ++/*194379*/ OPC_MoveParent, ++/*194380*/ OPC_MoveChild6, ++/*194381*/ OPC_CheckInteger, 1, ++/*194383*/ OPC_CheckType, MVT::i32, ++/*194385*/ OPC_MoveParent, ++/*194386*/ OPC_MoveChild7, ++/*194387*/ OPC_CheckInteger, 1, ++/*194389*/ OPC_CheckType, MVT::i32, ++/*194391*/ OPC_MoveParent, ++/*194392*/ OPC_MoveChild, 8, ++/*194394*/ OPC_CheckInteger, 1, ++/*194396*/ OPC_CheckType, MVT::i32, ++/*194398*/ OPC_MoveParent, ++/*194399*/ OPC_MoveChild, 9, ++/*194401*/ OPC_CheckInteger, 1, ++/*194403*/ OPC_CheckType, MVT::i32, ++/*194405*/ OPC_MoveParent, ++/*194406*/ OPC_MoveChild, 10, ++/*194408*/ OPC_CheckInteger, 1, ++/*194410*/ OPC_CheckType, MVT::i32, ++/*194412*/ OPC_MoveParent, ++/*194413*/ OPC_MoveChild, 11, ++/*194415*/ OPC_CheckInteger, 1, ++/*194417*/ OPC_CheckType, MVT::i32, ++/*194419*/ OPC_MoveParent, ++/*194420*/ OPC_MoveChild, 12, ++/*194422*/ OPC_CheckInteger, 1, ++/*194424*/ OPC_CheckType, MVT::i32, ++/*194426*/ OPC_MoveParent, ++/*194427*/ OPC_MoveChild, 13, ++/*194429*/ OPC_CheckInteger, 1, ++/*194431*/ OPC_CheckType, MVT::i32, ++/*194433*/ OPC_MoveParent, ++/*194434*/ OPC_MoveChild, 14, ++/*194436*/ OPC_CheckInteger, 1, ++/*194438*/ OPC_CheckType, MVT::i32, ++/*194440*/ OPC_MoveParent, ++/*194441*/ OPC_MoveChild, 15, ++/*194443*/ OPC_CheckInteger, 1, ++/*194445*/ OPC_CheckType, MVT::i32, ++/*194447*/ OPC_MoveParent, ++/*194448*/ OPC_MoveParent, ++/*194449*/ OPC_CheckChild1Same, 1, ++/*194451*/ OPC_MoveParent, ++/*194452*/ OPC_MoveParent, ++/*194453*/ OPC_MoveChild1, ++/*194454*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*194457*/ OPC_CheckChild0Integer, 7, ++/*194459*/ OPC_CheckChild0Type, MVT::i32, ++/*194461*/ OPC_CheckChild1Integer, 7, ++/*194463*/ OPC_CheckChild1Type, MVT::i32, ++/*194465*/ OPC_CheckChild2Integer, 7, ++/*194467*/ OPC_CheckChild2Type, MVT::i32, ++/*194469*/ OPC_CheckChild3Integer, 7, ++/*194471*/ OPC_CheckChild3Type, MVT::i32, ++/*194473*/ OPC_CheckChild4Integer, 7, ++/*194475*/ OPC_CheckChild4Type, MVT::i32, ++/*194477*/ OPC_MoveChild5, ++/*194478*/ OPC_CheckInteger, 7, ++/*194480*/ OPC_CheckType, MVT::i32, ++/*194482*/ OPC_MoveParent, ++/*194483*/ OPC_MoveChild6, ++/*194484*/ OPC_CheckInteger, 7, ++/*194486*/ OPC_CheckType, MVT::i32, ++/*194488*/ OPC_MoveParent, ++/*194489*/ OPC_MoveChild7, ++/*194490*/ OPC_CheckInteger, 7, ++/*194492*/ OPC_CheckType, MVT::i32, ++/*194494*/ OPC_MoveParent, ++/*194495*/ OPC_MoveChild, 8, ++/*194497*/ OPC_CheckInteger, 7, ++/*194499*/ OPC_CheckType, MVT::i32, ++/*194501*/ OPC_MoveParent, ++/*194502*/ OPC_MoveChild, 9, ++/*194504*/ OPC_CheckInteger, 7, ++/*194506*/ OPC_CheckType, MVT::i32, ++/*194508*/ OPC_MoveParent, ++/*194509*/ OPC_MoveChild, 10, ++/*194511*/ OPC_CheckInteger, 7, ++/*194513*/ OPC_CheckType, MVT::i32, ++/*194515*/ OPC_MoveParent, ++/*194516*/ OPC_MoveChild, 11, ++/*194518*/ OPC_CheckInteger, 7, ++/*194520*/ OPC_CheckType, MVT::i32, ++/*194522*/ OPC_MoveParent, ++/*194523*/ OPC_MoveChild, 12, ++/*194525*/ OPC_CheckInteger, 7, ++/*194527*/ OPC_CheckType, MVT::i32, ++/*194529*/ OPC_MoveParent, ++/*194530*/ OPC_MoveChild, 13, ++/*194532*/ OPC_CheckInteger, 7, ++/*194534*/ OPC_CheckType, MVT::i32, ++/*194536*/ OPC_MoveParent, ++/*194537*/ OPC_MoveChild, 14, ++/*194539*/ OPC_CheckInteger, 7, ++/*194541*/ OPC_CheckType, MVT::i32, ++/*194543*/ OPC_MoveParent, ++/*194544*/ OPC_MoveChild, 15, ++/*194546*/ OPC_CheckInteger, 7, ++/*194548*/ OPC_CheckType, MVT::i32, ++/*194550*/ OPC_MoveParent, ++/*194551*/ OPC_CheckType, MVT::v16i8, ++/*194553*/ OPC_MoveParent, ++/*194554*/ OPC_MoveParent, ++/*194555*/ OPC_MoveParent, ++/*194556*/ OPC_MoveChild1, ++/*194557*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*194560*/ OPC_CheckChild0Integer, 1, ++/*194562*/ OPC_CheckChild0Type, MVT::i32, ++/*194564*/ OPC_CheckChild1Integer, 1, ++/*194566*/ OPC_CheckChild1Type, MVT::i32, ++/*194568*/ OPC_CheckChild2Integer, 1, ++/*194570*/ OPC_CheckChild2Type, MVT::i32, ++/*194572*/ OPC_CheckChild3Integer, 1, ++/*194574*/ OPC_CheckChild3Type, MVT::i32, ++/*194576*/ OPC_CheckChild4Integer, 1, ++/*194578*/ OPC_CheckChild4Type, MVT::i32, ++/*194580*/ OPC_MoveChild5, ++/*194581*/ OPC_CheckInteger, 1, ++/*194583*/ OPC_CheckType, MVT::i32, ++/*194585*/ OPC_MoveParent, ++/*194586*/ OPC_MoveChild6, ++/*194587*/ OPC_CheckInteger, 1, ++/*194589*/ OPC_CheckType, MVT::i32, ++/*194591*/ OPC_MoveParent, ++/*194592*/ OPC_MoveChild7, ++/*194593*/ OPC_CheckInteger, 1, ++/*194595*/ OPC_CheckType, MVT::i32, ++/*194597*/ OPC_MoveParent, ++/*194598*/ OPC_MoveChild, 8, ++/*194600*/ OPC_CheckInteger, 1, ++/*194602*/ OPC_CheckType, MVT::i32, ++/*194604*/ OPC_MoveParent, ++/*194605*/ OPC_MoveChild, 9, ++/*194607*/ OPC_CheckInteger, 1, ++/*194609*/ OPC_CheckType, MVT::i32, ++/*194611*/ OPC_MoveParent, ++/*194612*/ OPC_MoveChild, 10, ++/*194614*/ OPC_CheckInteger, 1, ++/*194616*/ OPC_CheckType, MVT::i32, ++/*194618*/ OPC_MoveParent, ++/*194619*/ OPC_MoveChild, 11, ++/*194621*/ OPC_CheckInteger, 1, ++/*194623*/ OPC_CheckType, MVT::i32, ++/*194625*/ OPC_MoveParent, ++/*194626*/ OPC_MoveChild, 12, ++/*194628*/ OPC_CheckInteger, 1, ++/*194630*/ OPC_CheckType, MVT::i32, ++/*194632*/ OPC_MoveParent, ++/*194633*/ OPC_MoveChild, 13, ++/*194635*/ OPC_CheckInteger, 1, ++/*194637*/ OPC_CheckType, MVT::i32, ++/*194639*/ OPC_MoveParent, ++/*194640*/ OPC_MoveChild, 14, ++/*194642*/ OPC_CheckInteger, 1, ++/*194644*/ OPC_CheckType, MVT::i32, ++/*194646*/ OPC_MoveParent, ++/*194647*/ OPC_MoveChild, 15, ++/*194649*/ OPC_CheckInteger, 1, ++/*194651*/ OPC_CheckType, MVT::i32, ++/*194653*/ OPC_MoveParent, ++/*194654*/ OPC_CheckType, MVT::v16i8, ++/*194656*/ OPC_MoveParent, ++/*194657*/ OPC_CheckType, MVT::v16i8, ++/*194659*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*194661*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*194669*/ /*Scope*/ 63|128,2/*319*/, /*->194990*/ ++/*194671*/ OPC_CheckChild0Same, 1, ++/*194673*/ OPC_MoveChild1, ++/*194674*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*194677*/ OPC_CheckChild0Integer, 1, ++/*194679*/ OPC_CheckChild0Type, MVT::i32, ++/*194681*/ OPC_CheckChild1Integer, 1, ++/*194683*/ OPC_CheckChild1Type, MVT::i32, ++/*194685*/ OPC_CheckChild2Integer, 1, ++/*194687*/ OPC_CheckChild2Type, MVT::i32, ++/*194689*/ OPC_CheckChild3Integer, 1, ++/*194691*/ OPC_CheckChild3Type, MVT::i32, ++/*194693*/ OPC_CheckChild4Integer, 1, ++/*194695*/ OPC_CheckChild4Type, MVT::i32, ++/*194697*/ OPC_MoveChild5, ++/*194698*/ OPC_CheckInteger, 1, ++/*194700*/ OPC_CheckType, MVT::i32, ++/*194702*/ OPC_MoveParent, ++/*194703*/ OPC_MoveChild6, ++/*194704*/ OPC_CheckInteger, 1, ++/*194706*/ OPC_CheckType, MVT::i32, ++/*194708*/ OPC_MoveParent, ++/*194709*/ OPC_MoveChild7, ++/*194710*/ OPC_CheckInteger, 1, ++/*194712*/ OPC_CheckType, MVT::i32, ++/*194714*/ OPC_MoveParent, ++/*194715*/ OPC_MoveChild, 8, ++/*194717*/ OPC_CheckInteger, 1, ++/*194719*/ OPC_CheckType, MVT::i32, ++/*194721*/ OPC_MoveParent, ++/*194722*/ OPC_MoveChild, 9, ++/*194724*/ OPC_CheckInteger, 1, ++/*194726*/ OPC_CheckType, MVT::i32, ++/*194728*/ OPC_MoveParent, ++/*194729*/ OPC_MoveChild, 10, ++/*194731*/ OPC_CheckInteger, 1, ++/*194733*/ OPC_CheckType, MVT::i32, ++/*194735*/ OPC_MoveParent, ++/*194736*/ OPC_MoveChild, 11, ++/*194738*/ OPC_CheckInteger, 1, ++/*194740*/ OPC_CheckType, MVT::i32, ++/*194742*/ OPC_MoveParent, ++/*194743*/ OPC_MoveChild, 12, ++/*194745*/ OPC_CheckInteger, 1, ++/*194747*/ OPC_CheckType, MVT::i32, ++/*194749*/ OPC_MoveParent, ++/*194750*/ OPC_MoveChild, 13, ++/*194752*/ OPC_CheckInteger, 1, ++/*194754*/ OPC_CheckType, MVT::i32, ++/*194756*/ OPC_MoveParent, ++/*194757*/ OPC_MoveChild, 14, ++/*194759*/ OPC_CheckInteger, 1, ++/*194761*/ OPC_CheckType, MVT::i32, ++/*194763*/ OPC_MoveParent, ++/*194764*/ OPC_MoveChild, 15, ++/*194766*/ OPC_CheckInteger, 1, ++/*194768*/ OPC_CheckType, MVT::i32, ++/*194770*/ OPC_MoveParent, ++/*194771*/ OPC_MoveParent, ++/*194772*/ OPC_MoveParent, ++/*194773*/ OPC_MoveParent, ++/*194774*/ OPC_MoveChild1, ++/*194775*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*194778*/ OPC_CheckChild0Integer, 7, ++/*194780*/ OPC_CheckChild0Type, MVT::i32, ++/*194782*/ OPC_CheckChild1Integer, 7, ++/*194784*/ OPC_CheckChild1Type, MVT::i32, ++/*194786*/ OPC_CheckChild2Integer, 7, ++/*194788*/ OPC_CheckChild2Type, MVT::i32, ++/*194790*/ OPC_CheckChild3Integer, 7, ++/*194792*/ OPC_CheckChild3Type, MVT::i32, ++/*194794*/ OPC_CheckChild4Integer, 7, ++/*194796*/ OPC_CheckChild4Type, MVT::i32, ++/*194798*/ OPC_MoveChild5, ++/*194799*/ OPC_CheckInteger, 7, ++/*194801*/ OPC_CheckType, MVT::i32, ++/*194803*/ OPC_MoveParent, ++/*194804*/ OPC_MoveChild6, ++/*194805*/ OPC_CheckInteger, 7, ++/*194807*/ OPC_CheckType, MVT::i32, ++/*194809*/ OPC_MoveParent, ++/*194810*/ OPC_MoveChild7, ++/*194811*/ OPC_CheckInteger, 7, ++/*194813*/ OPC_CheckType, MVT::i32, ++/*194815*/ OPC_MoveParent, ++/*194816*/ OPC_MoveChild, 8, ++/*194818*/ OPC_CheckInteger, 7, ++/*194820*/ OPC_CheckType, MVT::i32, ++/*194822*/ OPC_MoveParent, ++/*194823*/ OPC_MoveChild, 9, ++/*194825*/ OPC_CheckInteger, 7, ++/*194827*/ OPC_CheckType, MVT::i32, ++/*194829*/ OPC_MoveParent, ++/*194830*/ OPC_MoveChild, 10, ++/*194832*/ OPC_CheckInteger, 7, ++/*194834*/ OPC_CheckType, MVT::i32, ++/*194836*/ OPC_MoveParent, ++/*194837*/ OPC_MoveChild, 11, ++/*194839*/ OPC_CheckInteger, 7, ++/*194841*/ OPC_CheckType, MVT::i32, ++/*194843*/ OPC_MoveParent, ++/*194844*/ OPC_MoveChild, 12, ++/*194846*/ OPC_CheckInteger, 7, ++/*194848*/ OPC_CheckType, MVT::i32, ++/*194850*/ OPC_MoveParent, ++/*194851*/ OPC_MoveChild, 13, ++/*194853*/ OPC_CheckInteger, 7, ++/*194855*/ OPC_CheckType, MVT::i32, ++/*194857*/ OPC_MoveParent, ++/*194858*/ OPC_MoveChild, 14, ++/*194860*/ OPC_CheckInteger, 7, ++/*194862*/ OPC_CheckType, MVT::i32, ++/*194864*/ OPC_MoveParent, ++/*194865*/ OPC_MoveChild, 15, ++/*194867*/ OPC_CheckInteger, 7, ++/*194869*/ OPC_CheckType, MVT::i32, ++/*194871*/ OPC_MoveParent, ++/*194872*/ OPC_CheckType, MVT::v16i8, ++/*194874*/ OPC_MoveParent, ++/*194875*/ OPC_MoveParent, ++/*194876*/ OPC_MoveParent, ++/*194877*/ OPC_MoveChild1, ++/*194878*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*194881*/ OPC_CheckChild0Integer, 1, ++/*194883*/ OPC_CheckChild0Type, MVT::i32, ++/*194885*/ OPC_CheckChild1Integer, 1, ++/*194887*/ OPC_CheckChild1Type, MVT::i32, ++/*194889*/ OPC_CheckChild2Integer, 1, ++/*194891*/ OPC_CheckChild2Type, MVT::i32, ++/*194893*/ OPC_CheckChild3Integer, 1, ++/*194895*/ OPC_CheckChild3Type, MVT::i32, ++/*194897*/ OPC_CheckChild4Integer, 1, ++/*194899*/ OPC_CheckChild4Type, MVT::i32, ++/*194901*/ OPC_MoveChild5, ++/*194902*/ OPC_CheckInteger, 1, ++/*194904*/ OPC_CheckType, MVT::i32, ++/*194906*/ OPC_MoveParent, ++/*194907*/ OPC_MoveChild6, ++/*194908*/ OPC_CheckInteger, 1, ++/*194910*/ OPC_CheckType, MVT::i32, ++/*194912*/ OPC_MoveParent, ++/*194913*/ OPC_MoveChild7, ++/*194914*/ OPC_CheckInteger, 1, ++/*194916*/ OPC_CheckType, MVT::i32, ++/*194918*/ OPC_MoveParent, ++/*194919*/ OPC_MoveChild, 8, ++/*194921*/ OPC_CheckInteger, 1, ++/*194923*/ OPC_CheckType, MVT::i32, ++/*194925*/ OPC_MoveParent, ++/*194926*/ OPC_MoveChild, 9, ++/*194928*/ OPC_CheckInteger, 1, ++/*194930*/ OPC_CheckType, MVT::i32, ++/*194932*/ OPC_MoveParent, ++/*194933*/ OPC_MoveChild, 10, ++/*194935*/ OPC_CheckInteger, 1, ++/*194937*/ OPC_CheckType, MVT::i32, ++/*194939*/ OPC_MoveParent, ++/*194940*/ OPC_MoveChild, 11, ++/*194942*/ OPC_CheckInteger, 1, ++/*194944*/ OPC_CheckType, MVT::i32, ++/*194946*/ OPC_MoveParent, ++/*194947*/ OPC_MoveChild, 12, ++/*194949*/ OPC_CheckInteger, 1, ++/*194951*/ OPC_CheckType, MVT::i32, ++/*194953*/ OPC_MoveParent, ++/*194954*/ OPC_MoveChild, 13, ++/*194956*/ OPC_CheckInteger, 1, ++/*194958*/ OPC_CheckType, MVT::i32, ++/*194960*/ OPC_MoveParent, ++/*194961*/ OPC_MoveChild, 14, ++/*194963*/ OPC_CheckInteger, 1, ++/*194965*/ OPC_CheckType, MVT::i32, ++/*194967*/ OPC_MoveParent, ++/*194968*/ OPC_MoveChild, 15, ++/*194970*/ OPC_CheckInteger, 1, ++/*194972*/ OPC_CheckType, MVT::i32, ++/*194974*/ OPC_MoveParent, ++/*194975*/ OPC_CheckType, MVT::v16i8, ++/*194977*/ OPC_MoveParent, ++/*194978*/ OPC_CheckType, MVT::v16i8, ++/*194980*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*194982*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*194990*/ 0, /*End of Scope*/ ++/*194991*/ /*Scope*/ 68|128,19/*2500*/, /*->197493*/ ++/*194993*/ OPC_MoveChild0, ++/*194994*/ OPC_SwitchOpcode /*2 cases */, 37|128,4/*549*/, TARGET_VAL(ISD::BUILD_VECTOR),// ->195548 ++/*194999*/ OPC_CheckChild0Integer, 1, ++/*195001*/ OPC_CheckChild0Type, MVT::i32, ++/*195003*/ OPC_CheckChild1Integer, 1, ++/*195005*/ OPC_CheckChild1Type, MVT::i32, ++/*195007*/ OPC_CheckChild2Integer, 1, ++/*195009*/ OPC_CheckChild2Type, MVT::i32, ++/*195011*/ OPC_CheckChild3Integer, 1, ++/*195013*/ OPC_CheckChild3Type, MVT::i32, ++/*195015*/ OPC_CheckChild4Integer, 1, ++/*195017*/ OPC_CheckChild4Type, MVT::i32, ++/*195019*/ OPC_MoveChild5, ++/*195020*/ OPC_CheckInteger, 1, ++/*195022*/ OPC_CheckType, MVT::i32, ++/*195024*/ OPC_MoveParent, ++/*195025*/ OPC_MoveChild6, ++/*195026*/ OPC_CheckInteger, 1, ++/*195028*/ OPC_CheckType, MVT::i32, ++/*195030*/ OPC_MoveParent, ++/*195031*/ OPC_MoveChild7, ++/*195032*/ OPC_CheckInteger, 1, ++/*195034*/ OPC_CheckType, MVT::i32, ++/*195036*/ OPC_MoveParent, ++/*195037*/ OPC_MoveChild, 8, ++/*195039*/ OPC_CheckInteger, 1, ++/*195041*/ OPC_CheckType, MVT::i32, ++/*195043*/ OPC_MoveParent, ++/*195044*/ OPC_MoveChild, 9, ++/*195046*/ OPC_CheckInteger, 1, ++/*195048*/ OPC_CheckType, MVT::i32, ++/*195050*/ OPC_MoveParent, ++/*195051*/ OPC_MoveChild, 10, ++/*195053*/ OPC_CheckInteger, 1, ++/*195055*/ OPC_CheckType, MVT::i32, ++/*195057*/ OPC_MoveParent, ++/*195058*/ OPC_MoveChild, 11, ++/*195060*/ OPC_CheckInteger, 1, ++/*195062*/ OPC_CheckType, MVT::i32, ++/*195064*/ OPC_MoveParent, ++/*195065*/ OPC_MoveChild, 12, ++/*195067*/ OPC_CheckInteger, 1, ++/*195069*/ OPC_CheckType, MVT::i32, ++/*195071*/ OPC_MoveParent, ++/*195072*/ OPC_MoveChild, 13, ++/*195074*/ OPC_CheckInteger, 1, ++/*195076*/ OPC_CheckType, MVT::i32, ++/*195078*/ OPC_MoveParent, ++/*195079*/ OPC_MoveChild, 14, ++/*195081*/ OPC_CheckInteger, 1, ++/*195083*/ OPC_CheckType, MVT::i32, ++/*195085*/ OPC_MoveParent, ++/*195086*/ OPC_MoveChild, 15, ++/*195088*/ OPC_CheckInteger, 1, ++/*195090*/ OPC_CheckType, MVT::i32, ++/*195092*/ OPC_MoveParent, ++/*195093*/ OPC_MoveParent, ++/*195094*/ OPC_MoveChild1, ++/*195095*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*195098*/ OPC_Scope, 94|128,1/*222*/, /*->195323*/ // 2 children in Scope ++/*195101*/ OPC_CheckChild0Same, 0, ++/*195103*/ OPC_CheckChild1Same, 1, ++/*195105*/ OPC_MoveParent, ++/*195106*/ OPC_MoveParent, ++/*195107*/ OPC_MoveChild1, ++/*195108*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*195111*/ OPC_CheckChild0Integer, 7, ++/*195113*/ OPC_CheckChild0Type, MVT::i32, ++/*195115*/ OPC_CheckChild1Integer, 7, ++/*195117*/ OPC_CheckChild1Type, MVT::i32, ++/*195119*/ OPC_CheckChild2Integer, 7, ++/*195121*/ OPC_CheckChild2Type, MVT::i32, ++/*195123*/ OPC_CheckChild3Integer, 7, ++/*195125*/ OPC_CheckChild3Type, MVT::i32, ++/*195127*/ OPC_CheckChild4Integer, 7, ++/*195129*/ OPC_CheckChild4Type, MVT::i32, ++/*195131*/ OPC_MoveChild5, ++/*195132*/ OPC_CheckInteger, 7, ++/*195134*/ OPC_CheckType, MVT::i32, ++/*195136*/ OPC_MoveParent, ++/*195137*/ OPC_MoveChild6, ++/*195138*/ OPC_CheckInteger, 7, ++/*195140*/ OPC_CheckType, MVT::i32, ++/*195142*/ OPC_MoveParent, ++/*195143*/ OPC_MoveChild7, ++/*195144*/ OPC_CheckInteger, 7, ++/*195146*/ OPC_CheckType, MVT::i32, ++/*195148*/ OPC_MoveParent, ++/*195149*/ OPC_MoveChild, 8, ++/*195151*/ OPC_CheckInteger, 7, ++/*195153*/ OPC_CheckType, MVT::i32, ++/*195155*/ OPC_MoveParent, ++/*195156*/ OPC_MoveChild, 9, ++/*195158*/ OPC_CheckInteger, 7, ++/*195160*/ OPC_CheckType, MVT::i32, ++/*195162*/ OPC_MoveParent, ++/*195163*/ OPC_MoveChild, 10, ++/*195165*/ OPC_CheckInteger, 7, ++/*195167*/ OPC_CheckType, MVT::i32, ++/*195169*/ OPC_MoveParent, ++/*195170*/ OPC_MoveChild, 11, ++/*195172*/ OPC_CheckInteger, 7, ++/*195174*/ OPC_CheckType, MVT::i32, ++/*195176*/ OPC_MoveParent, ++/*195177*/ OPC_MoveChild, 12, ++/*195179*/ OPC_CheckInteger, 7, ++/*195181*/ OPC_CheckType, MVT::i32, ++/*195183*/ OPC_MoveParent, ++/*195184*/ OPC_MoveChild, 13, ++/*195186*/ OPC_CheckInteger, 7, ++/*195188*/ OPC_CheckType, MVT::i32, ++/*195190*/ OPC_MoveParent, ++/*195191*/ OPC_MoveChild, 14, ++/*195193*/ OPC_CheckInteger, 7, ++/*195195*/ OPC_CheckType, MVT::i32, ++/*195197*/ OPC_MoveParent, ++/*195198*/ OPC_MoveChild, 15, ++/*195200*/ OPC_CheckInteger, 7, ++/*195202*/ OPC_CheckType, MVT::i32, ++/*195204*/ OPC_MoveParent, ++/*195205*/ OPC_CheckType, MVT::v16i8, ++/*195207*/ OPC_MoveParent, ++/*195208*/ OPC_MoveParent, ++/*195209*/ OPC_MoveParent, ++/*195210*/ OPC_MoveChild1, ++/*195211*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*195214*/ OPC_CheckChild0Integer, 1, ++/*195216*/ OPC_CheckChild0Type, MVT::i32, ++/*195218*/ OPC_CheckChild1Integer, 1, ++/*195220*/ OPC_CheckChild1Type, MVT::i32, ++/*195222*/ OPC_CheckChild2Integer, 1, ++/*195224*/ OPC_CheckChild2Type, MVT::i32, ++/*195226*/ OPC_CheckChild3Integer, 1, ++/*195228*/ OPC_CheckChild3Type, MVT::i32, ++/*195230*/ OPC_CheckChild4Integer, 1, ++/*195232*/ OPC_CheckChild4Type, MVT::i32, ++/*195234*/ OPC_MoveChild5, ++/*195235*/ OPC_CheckInteger, 1, ++/*195237*/ OPC_CheckType, MVT::i32, ++/*195239*/ OPC_MoveParent, ++/*195240*/ OPC_MoveChild6, ++/*195241*/ OPC_CheckInteger, 1, ++/*195243*/ OPC_CheckType, MVT::i32, ++/*195245*/ OPC_MoveParent, ++/*195246*/ OPC_MoveChild7, ++/*195247*/ OPC_CheckInteger, 1, ++/*195249*/ OPC_CheckType, MVT::i32, ++/*195251*/ OPC_MoveParent, ++/*195252*/ OPC_MoveChild, 8, ++/*195254*/ OPC_CheckInteger, 1, ++/*195256*/ OPC_CheckType, MVT::i32, ++/*195258*/ OPC_MoveParent, ++/*195259*/ OPC_MoveChild, 9, ++/*195261*/ OPC_CheckInteger, 1, ++/*195263*/ OPC_CheckType, MVT::i32, ++/*195265*/ OPC_MoveParent, ++/*195266*/ OPC_MoveChild, 10, ++/*195268*/ OPC_CheckInteger, 1, ++/*195270*/ OPC_CheckType, MVT::i32, ++/*195272*/ OPC_MoveParent, ++/*195273*/ OPC_MoveChild, 11, ++/*195275*/ OPC_CheckInteger, 1, ++/*195277*/ OPC_CheckType, MVT::i32, ++/*195279*/ OPC_MoveParent, ++/*195280*/ OPC_MoveChild, 12, ++/*195282*/ OPC_CheckInteger, 1, ++/*195284*/ OPC_CheckType, MVT::i32, ++/*195286*/ OPC_MoveParent, ++/*195287*/ OPC_MoveChild, 13, ++/*195289*/ OPC_CheckInteger, 1, ++/*195291*/ OPC_CheckType, MVT::i32, ++/*195293*/ OPC_MoveParent, ++/*195294*/ OPC_MoveChild, 14, ++/*195296*/ OPC_CheckInteger, 1, ++/*195298*/ OPC_CheckType, MVT::i32, ++/*195300*/ OPC_MoveParent, ++/*195301*/ OPC_MoveChild, 15, ++/*195303*/ OPC_CheckInteger, 1, ++/*195305*/ OPC_CheckType, MVT::i32, ++/*195307*/ OPC_MoveParent, ++/*195308*/ OPC_CheckType, MVT::v16i8, ++/*195310*/ OPC_MoveParent, ++/*195311*/ OPC_CheckType, MVT::v16i8, ++/*195313*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*195315*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*195323*/ /*Scope*/ 94|128,1/*222*/, /*->195547*/ ++/*195325*/ OPC_CheckChild0Same, 1, ++/*195327*/ OPC_CheckChild1Same, 0, ++/*195329*/ OPC_MoveParent, ++/*195330*/ OPC_MoveParent, ++/*195331*/ OPC_MoveChild1, ++/*195332*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*195335*/ OPC_CheckChild0Integer, 7, ++/*195337*/ OPC_CheckChild0Type, MVT::i32, ++/*195339*/ OPC_CheckChild1Integer, 7, ++/*195341*/ OPC_CheckChild1Type, MVT::i32, ++/*195343*/ OPC_CheckChild2Integer, 7, ++/*195345*/ OPC_CheckChild2Type, MVT::i32, ++/*195347*/ OPC_CheckChild3Integer, 7, ++/*195349*/ OPC_CheckChild3Type, MVT::i32, ++/*195351*/ OPC_CheckChild4Integer, 7, ++/*195353*/ OPC_CheckChild4Type, MVT::i32, ++/*195355*/ OPC_MoveChild5, ++/*195356*/ OPC_CheckInteger, 7, ++/*195358*/ OPC_CheckType, MVT::i32, ++/*195360*/ OPC_MoveParent, ++/*195361*/ OPC_MoveChild6, ++/*195362*/ OPC_CheckInteger, 7, ++/*195364*/ OPC_CheckType, MVT::i32, ++/*195366*/ OPC_MoveParent, ++/*195367*/ OPC_MoveChild7, ++/*195368*/ OPC_CheckInteger, 7, ++/*195370*/ OPC_CheckType, MVT::i32, ++/*195372*/ OPC_MoveParent, ++/*195373*/ OPC_MoveChild, 8, ++/*195375*/ OPC_CheckInteger, 7, ++/*195377*/ OPC_CheckType, MVT::i32, ++/*195379*/ OPC_MoveParent, ++/*195380*/ OPC_MoveChild, 9, ++/*195382*/ OPC_CheckInteger, 7, ++/*195384*/ OPC_CheckType, MVT::i32, ++/*195386*/ OPC_MoveParent, ++/*195387*/ OPC_MoveChild, 10, ++/*195389*/ OPC_CheckInteger, 7, ++/*195391*/ OPC_CheckType, MVT::i32, ++/*195393*/ OPC_MoveParent, ++/*195394*/ OPC_MoveChild, 11, ++/*195396*/ OPC_CheckInteger, 7, ++/*195398*/ OPC_CheckType, MVT::i32, ++/*195400*/ OPC_MoveParent, ++/*195401*/ OPC_MoveChild, 12, ++/*195403*/ OPC_CheckInteger, 7, ++/*195405*/ OPC_CheckType, MVT::i32, ++/*195407*/ OPC_MoveParent, ++/*195408*/ OPC_MoveChild, 13, ++/*195410*/ OPC_CheckInteger, 7, ++/*195412*/ OPC_CheckType, MVT::i32, ++/*195414*/ OPC_MoveParent, ++/*195415*/ OPC_MoveChild, 14, ++/*195417*/ OPC_CheckInteger, 7, ++/*195419*/ OPC_CheckType, MVT::i32, ++/*195421*/ OPC_MoveParent, ++/*195422*/ OPC_MoveChild, 15, ++/*195424*/ OPC_CheckInteger, 7, ++/*195426*/ OPC_CheckType, MVT::i32, ++/*195428*/ OPC_MoveParent, ++/*195429*/ OPC_CheckType, MVT::v16i8, ++/*195431*/ OPC_MoveParent, ++/*195432*/ OPC_MoveParent, ++/*195433*/ OPC_MoveParent, ++/*195434*/ OPC_MoveChild1, ++/*195435*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*195438*/ OPC_CheckChild0Integer, 1, ++/*195440*/ OPC_CheckChild0Type, MVT::i32, ++/*195442*/ OPC_CheckChild1Integer, 1, ++/*195444*/ OPC_CheckChild1Type, MVT::i32, ++/*195446*/ OPC_CheckChild2Integer, 1, ++/*195448*/ OPC_CheckChild2Type, MVT::i32, ++/*195450*/ OPC_CheckChild3Integer, 1, ++/*195452*/ OPC_CheckChild3Type, MVT::i32, ++/*195454*/ OPC_CheckChild4Integer, 1, ++/*195456*/ OPC_CheckChild4Type, MVT::i32, ++/*195458*/ OPC_MoveChild5, ++/*195459*/ OPC_CheckInteger, 1, ++/*195461*/ OPC_CheckType, MVT::i32, ++/*195463*/ OPC_MoveParent, ++/*195464*/ OPC_MoveChild6, ++/*195465*/ OPC_CheckInteger, 1, ++/*195467*/ OPC_CheckType, MVT::i32, ++/*195469*/ OPC_MoveParent, ++/*195470*/ OPC_MoveChild7, ++/*195471*/ OPC_CheckInteger, 1, ++/*195473*/ OPC_CheckType, MVT::i32, ++/*195475*/ OPC_MoveParent, ++/*195476*/ OPC_MoveChild, 8, ++/*195478*/ OPC_CheckInteger, 1, ++/*195480*/ OPC_CheckType, MVT::i32, ++/*195482*/ OPC_MoveParent, ++/*195483*/ OPC_MoveChild, 9, ++/*195485*/ OPC_CheckInteger, 1, ++/*195487*/ OPC_CheckType, MVT::i32, ++/*195489*/ OPC_MoveParent, ++/*195490*/ OPC_MoveChild, 10, ++/*195492*/ OPC_CheckInteger, 1, ++/*195494*/ OPC_CheckType, MVT::i32, ++/*195496*/ OPC_MoveParent, ++/*195497*/ OPC_MoveChild, 11, ++/*195499*/ OPC_CheckInteger, 1, ++/*195501*/ OPC_CheckType, MVT::i32, ++/*195503*/ OPC_MoveParent, ++/*195504*/ OPC_MoveChild, 12, ++/*195506*/ OPC_CheckInteger, 1, ++/*195508*/ OPC_CheckType, MVT::i32, ++/*195510*/ OPC_MoveParent, ++/*195511*/ OPC_MoveChild, 13, ++/*195513*/ OPC_CheckInteger, 1, ++/*195515*/ OPC_CheckType, MVT::i32, ++/*195517*/ OPC_MoveParent, ++/*195518*/ OPC_MoveChild, 14, ++/*195520*/ OPC_CheckInteger, 1, ++/*195522*/ OPC_CheckType, MVT::i32, ++/*195524*/ OPC_MoveParent, ++/*195525*/ OPC_MoveChild, 15, ++/*195527*/ OPC_CheckInteger, 1, ++/*195529*/ OPC_CheckType, MVT::i32, ++/*195531*/ OPC_MoveParent, ++/*195532*/ OPC_CheckType, MVT::v16i8, ++/*195534*/ OPC_MoveParent, ++/*195535*/ OPC_CheckType, MVT::v16i8, ++/*195537*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*195539*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*195547*/ 0, /*End of Scope*/ ++/*195548*/ /*SwitchOpcode*/ 20|128,15/*1940*/, TARGET_VAL(ISD::ADD),// ->197492 ++/*195552*/ OPC_Scope, 65|128,2/*321*/, /*->195876*/ // 6 children in Scope ++/*195555*/ OPC_MoveChild0, ++/*195556*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*195559*/ OPC_CheckChild0Integer, 1, ++/*195561*/ OPC_CheckChild0Type, MVT::i32, ++/*195563*/ OPC_CheckChild1Integer, 1, ++/*195565*/ OPC_CheckChild1Type, MVT::i32, ++/*195567*/ OPC_CheckChild2Integer, 1, ++/*195569*/ OPC_CheckChild2Type, MVT::i32, ++/*195571*/ OPC_CheckChild3Integer, 1, ++/*195573*/ OPC_CheckChild3Type, MVT::i32, ++/*195575*/ OPC_CheckChild4Integer, 1, ++/*195577*/ OPC_CheckChild4Type, MVT::i32, ++/*195579*/ OPC_MoveChild5, ++/*195580*/ OPC_CheckInteger, 1, ++/*195582*/ OPC_CheckType, MVT::i32, ++/*195584*/ OPC_MoveParent, ++/*195585*/ OPC_MoveChild6, ++/*195586*/ OPC_CheckInteger, 1, ++/*195588*/ OPC_CheckType, MVT::i32, ++/*195590*/ OPC_MoveParent, ++/*195591*/ OPC_MoveChild7, ++/*195592*/ OPC_CheckInteger, 1, ++/*195594*/ OPC_CheckType, MVT::i32, ++/*195596*/ OPC_MoveParent, ++/*195597*/ OPC_MoveChild, 8, ++/*195599*/ OPC_CheckInteger, 1, ++/*195601*/ OPC_CheckType, MVT::i32, ++/*195603*/ OPC_MoveParent, ++/*195604*/ OPC_MoveChild, 9, ++/*195606*/ OPC_CheckInteger, 1, ++/*195608*/ OPC_CheckType, MVT::i32, ++/*195610*/ OPC_MoveParent, ++/*195611*/ OPC_MoveChild, 10, ++/*195613*/ OPC_CheckInteger, 1, ++/*195615*/ OPC_CheckType, MVT::i32, ++/*195617*/ OPC_MoveParent, ++/*195618*/ OPC_MoveChild, 11, ++/*195620*/ OPC_CheckInteger, 1, ++/*195622*/ OPC_CheckType, MVT::i32, ++/*195624*/ OPC_MoveParent, ++/*195625*/ OPC_MoveChild, 12, ++/*195627*/ OPC_CheckInteger, 1, ++/*195629*/ OPC_CheckType, MVT::i32, ++/*195631*/ OPC_MoveParent, ++/*195632*/ OPC_MoveChild, 13, ++/*195634*/ OPC_CheckInteger, 1, ++/*195636*/ OPC_CheckType, MVT::i32, ++/*195638*/ OPC_MoveParent, ++/*195639*/ OPC_MoveChild, 14, ++/*195641*/ OPC_CheckInteger, 1, ++/*195643*/ OPC_CheckType, MVT::i32, ++/*195645*/ OPC_MoveParent, ++/*195646*/ OPC_MoveChild, 15, ++/*195648*/ OPC_CheckInteger, 1, ++/*195650*/ OPC_CheckType, MVT::i32, ++/*195652*/ OPC_MoveParent, ++/*195653*/ OPC_MoveParent, ++/*195654*/ OPC_CheckChild1Same, 1, ++/*195656*/ OPC_MoveParent, ++/*195657*/ OPC_CheckChild1Same, 0, ++/*195659*/ OPC_MoveParent, ++/*195660*/ OPC_MoveChild1, ++/*195661*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*195664*/ OPC_CheckChild0Integer, 7, ++/*195666*/ OPC_CheckChild0Type, MVT::i32, ++/*195668*/ OPC_CheckChild1Integer, 7, ++/*195670*/ OPC_CheckChild1Type, MVT::i32, ++/*195672*/ OPC_CheckChild2Integer, 7, ++/*195674*/ OPC_CheckChild2Type, MVT::i32, ++/*195676*/ OPC_CheckChild3Integer, 7, ++/*195678*/ OPC_CheckChild3Type, MVT::i32, ++/*195680*/ OPC_CheckChild4Integer, 7, ++/*195682*/ OPC_CheckChild4Type, MVT::i32, ++/*195684*/ OPC_MoveChild5, ++/*195685*/ OPC_CheckInteger, 7, ++/*195687*/ OPC_CheckType, MVT::i32, ++/*195689*/ OPC_MoveParent, ++/*195690*/ OPC_MoveChild6, ++/*195691*/ OPC_CheckInteger, 7, ++/*195693*/ OPC_CheckType, MVT::i32, ++/*195695*/ OPC_MoveParent, ++/*195696*/ OPC_MoveChild7, ++/*195697*/ OPC_CheckInteger, 7, ++/*195699*/ OPC_CheckType, MVT::i32, ++/*195701*/ OPC_MoveParent, ++/*195702*/ OPC_MoveChild, 8, ++/*195704*/ OPC_CheckInteger, 7, ++/*195706*/ OPC_CheckType, MVT::i32, ++/*195708*/ OPC_MoveParent, ++/*195709*/ OPC_MoveChild, 9, ++/*195711*/ OPC_CheckInteger, 7, ++/*195713*/ OPC_CheckType, MVT::i32, ++/*195715*/ OPC_MoveParent, ++/*195716*/ OPC_MoveChild, 10, ++/*195718*/ OPC_CheckInteger, 7, ++/*195720*/ OPC_CheckType, MVT::i32, ++/*195722*/ OPC_MoveParent, ++/*195723*/ OPC_MoveChild, 11, ++/*195725*/ OPC_CheckInteger, 7, ++/*195727*/ OPC_CheckType, MVT::i32, ++/*195729*/ OPC_MoveParent, ++/*195730*/ OPC_MoveChild, 12, ++/*195732*/ OPC_CheckInteger, 7, ++/*195734*/ OPC_CheckType, MVT::i32, ++/*195736*/ OPC_MoveParent, ++/*195737*/ OPC_MoveChild, 13, ++/*195739*/ OPC_CheckInteger, 7, ++/*195741*/ OPC_CheckType, MVT::i32, ++/*195743*/ OPC_MoveParent, ++/*195744*/ OPC_MoveChild, 14, ++/*195746*/ OPC_CheckInteger, 7, ++/*195748*/ OPC_CheckType, MVT::i32, ++/*195750*/ OPC_MoveParent, ++/*195751*/ OPC_MoveChild, 15, ++/*195753*/ OPC_CheckInteger, 7, ++/*195755*/ OPC_CheckType, MVT::i32, ++/*195757*/ OPC_MoveParent, ++/*195758*/ OPC_CheckType, MVT::v16i8, ++/*195760*/ OPC_MoveParent, ++/*195761*/ OPC_MoveParent, ++/*195762*/ OPC_MoveParent, ++/*195763*/ OPC_MoveChild1, ++/*195764*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*195767*/ OPC_CheckChild0Integer, 1, ++/*195769*/ OPC_CheckChild0Type, MVT::i32, ++/*195771*/ OPC_CheckChild1Integer, 1, ++/*195773*/ OPC_CheckChild1Type, MVT::i32, ++/*195775*/ OPC_CheckChild2Integer, 1, ++/*195777*/ OPC_CheckChild2Type, MVT::i32, ++/*195779*/ OPC_CheckChild3Integer, 1, ++/*195781*/ OPC_CheckChild3Type, MVT::i32, ++/*195783*/ OPC_CheckChild4Integer, 1, ++/*195785*/ OPC_CheckChild4Type, MVT::i32, ++/*195787*/ OPC_MoveChild5, ++/*195788*/ OPC_CheckInteger, 1, ++/*195790*/ OPC_CheckType, MVT::i32, ++/*195792*/ OPC_MoveParent, ++/*195793*/ OPC_MoveChild6, ++/*195794*/ OPC_CheckInteger, 1, ++/*195796*/ OPC_CheckType, MVT::i32, ++/*195798*/ OPC_MoveParent, ++/*195799*/ OPC_MoveChild7, ++/*195800*/ OPC_CheckInteger, 1, ++/*195802*/ OPC_CheckType, MVT::i32, ++/*195804*/ OPC_MoveParent, ++/*195805*/ OPC_MoveChild, 8, ++/*195807*/ OPC_CheckInteger, 1, ++/*195809*/ OPC_CheckType, MVT::i32, ++/*195811*/ OPC_MoveParent, ++/*195812*/ OPC_MoveChild, 9, ++/*195814*/ OPC_CheckInteger, 1, ++/*195816*/ OPC_CheckType, MVT::i32, ++/*195818*/ OPC_MoveParent, ++/*195819*/ OPC_MoveChild, 10, ++/*195821*/ OPC_CheckInteger, 1, ++/*195823*/ OPC_CheckType, MVT::i32, ++/*195825*/ OPC_MoveParent, ++/*195826*/ OPC_MoveChild, 11, ++/*195828*/ OPC_CheckInteger, 1, ++/*195830*/ OPC_CheckType, MVT::i32, ++/*195832*/ OPC_MoveParent, ++/*195833*/ OPC_MoveChild, 12, ++/*195835*/ OPC_CheckInteger, 1, ++/*195837*/ OPC_CheckType, MVT::i32, ++/*195839*/ OPC_MoveParent, ++/*195840*/ OPC_MoveChild, 13, ++/*195842*/ OPC_CheckInteger, 1, ++/*195844*/ OPC_CheckType, MVT::i32, ++/*195846*/ OPC_MoveParent, ++/*195847*/ OPC_MoveChild, 14, ++/*195849*/ OPC_CheckInteger, 1, ++/*195851*/ OPC_CheckType, MVT::i32, ++/*195853*/ OPC_MoveParent, ++/*195854*/ OPC_MoveChild, 15, ++/*195856*/ OPC_CheckInteger, 1, ++/*195858*/ OPC_CheckType, MVT::i32, ++/*195860*/ OPC_MoveParent, ++/*195861*/ OPC_CheckType, MVT::v16i8, ++/*195863*/ OPC_MoveParent, ++/*195864*/ OPC_CheckType, MVT::v16i8, ++/*195866*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*195868*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a), LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*195876*/ /*Scope*/ 65|128,2/*321*/, /*->196199*/ ++/*195878*/ OPC_CheckChild0Same, 1, ++/*195880*/ OPC_MoveChild1, ++/*195881*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*195884*/ OPC_CheckChild0Integer, 1, ++/*195886*/ OPC_CheckChild0Type, MVT::i32, ++/*195888*/ OPC_CheckChild1Integer, 1, ++/*195890*/ OPC_CheckChild1Type, MVT::i32, ++/*195892*/ OPC_CheckChild2Integer, 1, ++/*195894*/ OPC_CheckChild2Type, MVT::i32, ++/*195896*/ OPC_CheckChild3Integer, 1, ++/*195898*/ OPC_CheckChild3Type, MVT::i32, ++/*195900*/ OPC_CheckChild4Integer, 1, ++/*195902*/ OPC_CheckChild4Type, MVT::i32, ++/*195904*/ OPC_MoveChild5, ++/*195905*/ OPC_CheckInteger, 1, ++/*195907*/ OPC_CheckType, MVT::i32, ++/*195909*/ OPC_MoveParent, ++/*195910*/ OPC_MoveChild6, ++/*195911*/ OPC_CheckInteger, 1, ++/*195913*/ OPC_CheckType, MVT::i32, ++/*195915*/ OPC_MoveParent, ++/*195916*/ OPC_MoveChild7, ++/*195917*/ OPC_CheckInteger, 1, ++/*195919*/ OPC_CheckType, MVT::i32, ++/*195921*/ OPC_MoveParent, ++/*195922*/ OPC_MoveChild, 8, ++/*195924*/ OPC_CheckInteger, 1, ++/*195926*/ OPC_CheckType, MVT::i32, ++/*195928*/ OPC_MoveParent, ++/*195929*/ OPC_MoveChild, 9, ++/*195931*/ OPC_CheckInteger, 1, ++/*195933*/ OPC_CheckType, MVT::i32, ++/*195935*/ OPC_MoveParent, ++/*195936*/ OPC_MoveChild, 10, ++/*195938*/ OPC_CheckInteger, 1, ++/*195940*/ OPC_CheckType, MVT::i32, ++/*195942*/ OPC_MoveParent, ++/*195943*/ OPC_MoveChild, 11, ++/*195945*/ OPC_CheckInteger, 1, ++/*195947*/ OPC_CheckType, MVT::i32, ++/*195949*/ OPC_MoveParent, ++/*195950*/ OPC_MoveChild, 12, ++/*195952*/ OPC_CheckInteger, 1, ++/*195954*/ OPC_CheckType, MVT::i32, ++/*195956*/ OPC_MoveParent, ++/*195957*/ OPC_MoveChild, 13, ++/*195959*/ OPC_CheckInteger, 1, ++/*195961*/ OPC_CheckType, MVT::i32, ++/*195963*/ OPC_MoveParent, ++/*195964*/ OPC_MoveChild, 14, ++/*195966*/ OPC_CheckInteger, 1, ++/*195968*/ OPC_CheckType, MVT::i32, ++/*195970*/ OPC_MoveParent, ++/*195971*/ OPC_MoveChild, 15, ++/*195973*/ OPC_CheckInteger, 1, ++/*195975*/ OPC_CheckType, MVT::i32, ++/*195977*/ OPC_MoveParent, ++/*195978*/ OPC_MoveParent, ++/*195979*/ OPC_MoveParent, ++/*195980*/ OPC_CheckChild1Same, 0, ++/*195982*/ OPC_MoveParent, ++/*195983*/ OPC_MoveChild1, ++/*195984*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*195987*/ OPC_CheckChild0Integer, 7, ++/*195989*/ OPC_CheckChild0Type, MVT::i32, ++/*195991*/ OPC_CheckChild1Integer, 7, ++/*195993*/ OPC_CheckChild1Type, MVT::i32, ++/*195995*/ OPC_CheckChild2Integer, 7, ++/*195997*/ OPC_CheckChild2Type, MVT::i32, ++/*195999*/ OPC_CheckChild3Integer, 7, ++/*196001*/ OPC_CheckChild3Type, MVT::i32, ++/*196003*/ OPC_CheckChild4Integer, 7, ++/*196005*/ OPC_CheckChild4Type, MVT::i32, ++/*196007*/ OPC_MoveChild5, ++/*196008*/ OPC_CheckInteger, 7, ++/*196010*/ OPC_CheckType, MVT::i32, ++/*196012*/ OPC_MoveParent, ++/*196013*/ OPC_MoveChild6, ++/*196014*/ OPC_CheckInteger, 7, ++/*196016*/ OPC_CheckType, MVT::i32, ++/*196018*/ OPC_MoveParent, ++/*196019*/ OPC_MoveChild7, ++/*196020*/ OPC_CheckInteger, 7, ++/*196022*/ OPC_CheckType, MVT::i32, ++/*196024*/ OPC_MoveParent, ++/*196025*/ OPC_MoveChild, 8, ++/*196027*/ OPC_CheckInteger, 7, ++/*196029*/ OPC_CheckType, MVT::i32, ++/*196031*/ OPC_MoveParent, ++/*196032*/ OPC_MoveChild, 9, ++/*196034*/ OPC_CheckInteger, 7, ++/*196036*/ OPC_CheckType, MVT::i32, ++/*196038*/ OPC_MoveParent, ++/*196039*/ OPC_MoveChild, 10, ++/*196041*/ OPC_CheckInteger, 7, ++/*196043*/ OPC_CheckType, MVT::i32, ++/*196045*/ OPC_MoveParent, ++/*196046*/ OPC_MoveChild, 11, ++/*196048*/ OPC_CheckInteger, 7, ++/*196050*/ OPC_CheckType, MVT::i32, ++/*196052*/ OPC_MoveParent, ++/*196053*/ OPC_MoveChild, 12, ++/*196055*/ OPC_CheckInteger, 7, ++/*196057*/ OPC_CheckType, MVT::i32, ++/*196059*/ OPC_MoveParent, ++/*196060*/ OPC_MoveChild, 13, ++/*196062*/ OPC_CheckInteger, 7, ++/*196064*/ OPC_CheckType, MVT::i32, ++/*196066*/ OPC_MoveParent, ++/*196067*/ OPC_MoveChild, 14, ++/*196069*/ OPC_CheckInteger, 7, ++/*196071*/ OPC_CheckType, MVT::i32, ++/*196073*/ OPC_MoveParent, ++/*196074*/ OPC_MoveChild, 15, ++/*196076*/ OPC_CheckInteger, 7, ++/*196078*/ OPC_CheckType, MVT::i32, ++/*196080*/ OPC_MoveParent, ++/*196081*/ OPC_CheckType, MVT::v16i8, ++/*196083*/ OPC_MoveParent, ++/*196084*/ OPC_MoveParent, ++/*196085*/ OPC_MoveParent, ++/*196086*/ OPC_MoveChild1, ++/*196087*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*196090*/ OPC_CheckChild0Integer, 1, ++/*196092*/ OPC_CheckChild0Type, MVT::i32, ++/*196094*/ OPC_CheckChild1Integer, 1, ++/*196096*/ OPC_CheckChild1Type, MVT::i32, ++/*196098*/ OPC_CheckChild2Integer, 1, ++/*196100*/ OPC_CheckChild2Type, MVT::i32, ++/*196102*/ OPC_CheckChild3Integer, 1, ++/*196104*/ OPC_CheckChild3Type, MVT::i32, ++/*196106*/ OPC_CheckChild4Integer, 1, ++/*196108*/ OPC_CheckChild4Type, MVT::i32, ++/*196110*/ OPC_MoveChild5, ++/*196111*/ OPC_CheckInteger, 1, ++/*196113*/ OPC_CheckType, MVT::i32, ++/*196115*/ OPC_MoveParent, ++/*196116*/ OPC_MoveChild6, ++/*196117*/ OPC_CheckInteger, 1, ++/*196119*/ OPC_CheckType, MVT::i32, ++/*196121*/ OPC_MoveParent, ++/*196122*/ OPC_MoveChild7, ++/*196123*/ OPC_CheckInteger, 1, ++/*196125*/ OPC_CheckType, MVT::i32, ++/*196127*/ OPC_MoveParent, ++/*196128*/ OPC_MoveChild, 8, ++/*196130*/ OPC_CheckInteger, 1, ++/*196132*/ OPC_CheckType, MVT::i32, ++/*196134*/ OPC_MoveParent, ++/*196135*/ OPC_MoveChild, 9, ++/*196137*/ OPC_CheckInteger, 1, ++/*196139*/ OPC_CheckType, MVT::i32, ++/*196141*/ OPC_MoveParent, ++/*196142*/ OPC_MoveChild, 10, ++/*196144*/ OPC_CheckInteger, 1, ++/*196146*/ OPC_CheckType, MVT::i32, ++/*196148*/ OPC_MoveParent, ++/*196149*/ OPC_MoveChild, 11, ++/*196151*/ OPC_CheckInteger, 1, ++/*196153*/ OPC_CheckType, MVT::i32, ++/*196155*/ OPC_MoveParent, ++/*196156*/ OPC_MoveChild, 12, ++/*196158*/ OPC_CheckInteger, 1, ++/*196160*/ OPC_CheckType, MVT::i32, ++/*196162*/ OPC_MoveParent, ++/*196163*/ OPC_MoveChild, 13, ++/*196165*/ OPC_CheckInteger, 1, ++/*196167*/ OPC_CheckType, MVT::i32, ++/*196169*/ OPC_MoveParent, ++/*196170*/ OPC_MoveChild, 14, ++/*196172*/ OPC_CheckInteger, 1, ++/*196174*/ OPC_CheckType, MVT::i32, ++/*196176*/ OPC_MoveParent, ++/*196177*/ OPC_MoveChild, 15, ++/*196179*/ OPC_CheckInteger, 1, ++/*196181*/ OPC_CheckType, MVT::i32, ++/*196183*/ OPC_MoveParent, ++/*196184*/ OPC_CheckType, MVT::v16i8, ++/*196186*/ OPC_MoveParent, ++/*196187*/ OPC_CheckType, MVT::v16i8, ++/*196189*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*196191*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*196199*/ /*Scope*/ 65|128,2/*321*/, /*->196522*/ ++/*196201*/ OPC_MoveChild0, ++/*196202*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*196205*/ OPC_CheckChild0Integer, 1, ++/*196207*/ OPC_CheckChild0Type, MVT::i32, ++/*196209*/ OPC_CheckChild1Integer, 1, ++/*196211*/ OPC_CheckChild1Type, MVT::i32, ++/*196213*/ OPC_CheckChild2Integer, 1, ++/*196215*/ OPC_CheckChild2Type, MVT::i32, ++/*196217*/ OPC_CheckChild3Integer, 1, ++/*196219*/ OPC_CheckChild3Type, MVT::i32, ++/*196221*/ OPC_CheckChild4Integer, 1, ++/*196223*/ OPC_CheckChild4Type, MVT::i32, ++/*196225*/ OPC_MoveChild5, ++/*196226*/ OPC_CheckInteger, 1, ++/*196228*/ OPC_CheckType, MVT::i32, ++/*196230*/ OPC_MoveParent, ++/*196231*/ OPC_MoveChild6, ++/*196232*/ OPC_CheckInteger, 1, ++/*196234*/ OPC_CheckType, MVT::i32, ++/*196236*/ OPC_MoveParent, ++/*196237*/ OPC_MoveChild7, ++/*196238*/ OPC_CheckInteger, 1, ++/*196240*/ OPC_CheckType, MVT::i32, ++/*196242*/ OPC_MoveParent, ++/*196243*/ OPC_MoveChild, 8, ++/*196245*/ OPC_CheckInteger, 1, ++/*196247*/ OPC_CheckType, MVT::i32, ++/*196249*/ OPC_MoveParent, ++/*196250*/ OPC_MoveChild, 9, ++/*196252*/ OPC_CheckInteger, 1, ++/*196254*/ OPC_CheckType, MVT::i32, ++/*196256*/ OPC_MoveParent, ++/*196257*/ OPC_MoveChild, 10, ++/*196259*/ OPC_CheckInteger, 1, ++/*196261*/ OPC_CheckType, MVT::i32, ++/*196263*/ OPC_MoveParent, ++/*196264*/ OPC_MoveChild, 11, ++/*196266*/ OPC_CheckInteger, 1, ++/*196268*/ OPC_CheckType, MVT::i32, ++/*196270*/ OPC_MoveParent, ++/*196271*/ OPC_MoveChild, 12, ++/*196273*/ OPC_CheckInteger, 1, ++/*196275*/ OPC_CheckType, MVT::i32, ++/*196277*/ OPC_MoveParent, ++/*196278*/ OPC_MoveChild, 13, ++/*196280*/ OPC_CheckInteger, 1, ++/*196282*/ OPC_CheckType, MVT::i32, ++/*196284*/ OPC_MoveParent, ++/*196285*/ OPC_MoveChild, 14, ++/*196287*/ OPC_CheckInteger, 1, ++/*196289*/ OPC_CheckType, MVT::i32, ++/*196291*/ OPC_MoveParent, ++/*196292*/ OPC_MoveChild, 15, ++/*196294*/ OPC_CheckInteger, 1, ++/*196296*/ OPC_CheckType, MVT::i32, ++/*196298*/ OPC_MoveParent, ++/*196299*/ OPC_MoveParent, ++/*196300*/ OPC_CheckChild1Same, 0, ++/*196302*/ OPC_MoveParent, ++/*196303*/ OPC_CheckChild1Same, 1, ++/*196305*/ OPC_MoveParent, ++/*196306*/ OPC_MoveChild1, ++/*196307*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*196310*/ OPC_CheckChild0Integer, 7, ++/*196312*/ OPC_CheckChild0Type, MVT::i32, ++/*196314*/ OPC_CheckChild1Integer, 7, ++/*196316*/ OPC_CheckChild1Type, MVT::i32, ++/*196318*/ OPC_CheckChild2Integer, 7, ++/*196320*/ OPC_CheckChild2Type, MVT::i32, ++/*196322*/ OPC_CheckChild3Integer, 7, ++/*196324*/ OPC_CheckChild3Type, MVT::i32, ++/*196326*/ OPC_CheckChild4Integer, 7, ++/*196328*/ OPC_CheckChild4Type, MVT::i32, ++/*196330*/ OPC_MoveChild5, ++/*196331*/ OPC_CheckInteger, 7, ++/*196333*/ OPC_CheckType, MVT::i32, ++/*196335*/ OPC_MoveParent, ++/*196336*/ OPC_MoveChild6, ++/*196337*/ OPC_CheckInteger, 7, ++/*196339*/ OPC_CheckType, MVT::i32, ++/*196341*/ OPC_MoveParent, ++/*196342*/ OPC_MoveChild7, ++/*196343*/ OPC_CheckInteger, 7, ++/*196345*/ OPC_CheckType, MVT::i32, ++/*196347*/ OPC_MoveParent, ++/*196348*/ OPC_MoveChild, 8, ++/*196350*/ OPC_CheckInteger, 7, ++/*196352*/ OPC_CheckType, MVT::i32, ++/*196354*/ OPC_MoveParent, ++/*196355*/ OPC_MoveChild, 9, ++/*196357*/ OPC_CheckInteger, 7, ++/*196359*/ OPC_CheckType, MVT::i32, ++/*196361*/ OPC_MoveParent, ++/*196362*/ OPC_MoveChild, 10, ++/*196364*/ OPC_CheckInteger, 7, ++/*196366*/ OPC_CheckType, MVT::i32, ++/*196368*/ OPC_MoveParent, ++/*196369*/ OPC_MoveChild, 11, ++/*196371*/ OPC_CheckInteger, 7, ++/*196373*/ OPC_CheckType, MVT::i32, ++/*196375*/ OPC_MoveParent, ++/*196376*/ OPC_MoveChild, 12, ++/*196378*/ OPC_CheckInteger, 7, ++/*196380*/ OPC_CheckType, MVT::i32, ++/*196382*/ OPC_MoveParent, ++/*196383*/ OPC_MoveChild, 13, ++/*196385*/ OPC_CheckInteger, 7, ++/*196387*/ OPC_CheckType, MVT::i32, ++/*196389*/ OPC_MoveParent, ++/*196390*/ OPC_MoveChild, 14, ++/*196392*/ OPC_CheckInteger, 7, ++/*196394*/ OPC_CheckType, MVT::i32, ++/*196396*/ OPC_MoveParent, ++/*196397*/ OPC_MoveChild, 15, ++/*196399*/ OPC_CheckInteger, 7, ++/*196401*/ OPC_CheckType, MVT::i32, ++/*196403*/ OPC_MoveParent, ++/*196404*/ OPC_CheckType, MVT::v16i8, ++/*196406*/ OPC_MoveParent, ++/*196407*/ OPC_MoveParent, ++/*196408*/ OPC_MoveParent, ++/*196409*/ OPC_MoveChild1, ++/*196410*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*196413*/ OPC_CheckChild0Integer, 1, ++/*196415*/ OPC_CheckChild0Type, MVT::i32, ++/*196417*/ OPC_CheckChild1Integer, 1, ++/*196419*/ OPC_CheckChild1Type, MVT::i32, ++/*196421*/ OPC_CheckChild2Integer, 1, ++/*196423*/ OPC_CheckChild2Type, MVT::i32, ++/*196425*/ OPC_CheckChild3Integer, 1, ++/*196427*/ OPC_CheckChild3Type, MVT::i32, ++/*196429*/ OPC_CheckChild4Integer, 1, ++/*196431*/ OPC_CheckChild4Type, MVT::i32, ++/*196433*/ OPC_MoveChild5, ++/*196434*/ OPC_CheckInteger, 1, ++/*196436*/ OPC_CheckType, MVT::i32, ++/*196438*/ OPC_MoveParent, ++/*196439*/ OPC_MoveChild6, ++/*196440*/ OPC_CheckInteger, 1, ++/*196442*/ OPC_CheckType, MVT::i32, ++/*196444*/ OPC_MoveParent, ++/*196445*/ OPC_MoveChild7, ++/*196446*/ OPC_CheckInteger, 1, ++/*196448*/ OPC_CheckType, MVT::i32, ++/*196450*/ OPC_MoveParent, ++/*196451*/ OPC_MoveChild, 8, ++/*196453*/ OPC_CheckInteger, 1, ++/*196455*/ OPC_CheckType, MVT::i32, ++/*196457*/ OPC_MoveParent, ++/*196458*/ OPC_MoveChild, 9, ++/*196460*/ OPC_CheckInteger, 1, ++/*196462*/ OPC_CheckType, MVT::i32, ++/*196464*/ OPC_MoveParent, ++/*196465*/ OPC_MoveChild, 10, ++/*196467*/ OPC_CheckInteger, 1, ++/*196469*/ OPC_CheckType, MVT::i32, ++/*196471*/ OPC_MoveParent, ++/*196472*/ OPC_MoveChild, 11, ++/*196474*/ OPC_CheckInteger, 1, ++/*196476*/ OPC_CheckType, MVT::i32, ++/*196478*/ OPC_MoveParent, ++/*196479*/ OPC_MoveChild, 12, ++/*196481*/ OPC_CheckInteger, 1, ++/*196483*/ OPC_CheckType, MVT::i32, ++/*196485*/ OPC_MoveParent, ++/*196486*/ OPC_MoveChild, 13, ++/*196488*/ OPC_CheckInteger, 1, ++/*196490*/ OPC_CheckType, MVT::i32, ++/*196492*/ OPC_MoveParent, ++/*196493*/ OPC_MoveChild, 14, ++/*196495*/ OPC_CheckInteger, 1, ++/*196497*/ OPC_CheckType, MVT::i32, ++/*196499*/ OPC_MoveParent, ++/*196500*/ OPC_MoveChild, 15, ++/*196502*/ OPC_CheckInteger, 1, ++/*196504*/ OPC_CheckType, MVT::i32, ++/*196506*/ OPC_MoveParent, ++/*196507*/ OPC_CheckType, MVT::v16i8, ++/*196509*/ OPC_MoveParent, ++/*196510*/ OPC_CheckType, MVT::v16i8, ++/*196512*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*196514*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b), LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*196522*/ /*Scope*/ 65|128,2/*321*/, /*->196845*/ ++/*196524*/ OPC_CheckChild0Same, 0, ++/*196526*/ OPC_MoveChild1, ++/*196527*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*196530*/ OPC_CheckChild0Integer, 1, ++/*196532*/ OPC_CheckChild0Type, MVT::i32, ++/*196534*/ OPC_CheckChild1Integer, 1, ++/*196536*/ OPC_CheckChild1Type, MVT::i32, ++/*196538*/ OPC_CheckChild2Integer, 1, ++/*196540*/ OPC_CheckChild2Type, MVT::i32, ++/*196542*/ OPC_CheckChild3Integer, 1, ++/*196544*/ OPC_CheckChild3Type, MVT::i32, ++/*196546*/ OPC_CheckChild4Integer, 1, ++/*196548*/ OPC_CheckChild4Type, MVT::i32, ++/*196550*/ OPC_MoveChild5, ++/*196551*/ OPC_CheckInteger, 1, ++/*196553*/ OPC_CheckType, MVT::i32, ++/*196555*/ OPC_MoveParent, ++/*196556*/ OPC_MoveChild6, ++/*196557*/ OPC_CheckInteger, 1, ++/*196559*/ OPC_CheckType, MVT::i32, ++/*196561*/ OPC_MoveParent, ++/*196562*/ OPC_MoveChild7, ++/*196563*/ OPC_CheckInteger, 1, ++/*196565*/ OPC_CheckType, MVT::i32, ++/*196567*/ OPC_MoveParent, ++/*196568*/ OPC_MoveChild, 8, ++/*196570*/ OPC_CheckInteger, 1, ++/*196572*/ OPC_CheckType, MVT::i32, ++/*196574*/ OPC_MoveParent, ++/*196575*/ OPC_MoveChild, 9, ++/*196577*/ OPC_CheckInteger, 1, ++/*196579*/ OPC_CheckType, MVT::i32, ++/*196581*/ OPC_MoveParent, ++/*196582*/ OPC_MoveChild, 10, ++/*196584*/ OPC_CheckInteger, 1, ++/*196586*/ OPC_CheckType, MVT::i32, ++/*196588*/ OPC_MoveParent, ++/*196589*/ OPC_MoveChild, 11, ++/*196591*/ OPC_CheckInteger, 1, ++/*196593*/ OPC_CheckType, MVT::i32, ++/*196595*/ OPC_MoveParent, ++/*196596*/ OPC_MoveChild, 12, ++/*196598*/ OPC_CheckInteger, 1, ++/*196600*/ OPC_CheckType, MVT::i32, ++/*196602*/ OPC_MoveParent, ++/*196603*/ OPC_MoveChild, 13, ++/*196605*/ OPC_CheckInteger, 1, ++/*196607*/ OPC_CheckType, MVT::i32, ++/*196609*/ OPC_MoveParent, ++/*196610*/ OPC_MoveChild, 14, ++/*196612*/ OPC_CheckInteger, 1, ++/*196614*/ OPC_CheckType, MVT::i32, ++/*196616*/ OPC_MoveParent, ++/*196617*/ OPC_MoveChild, 15, ++/*196619*/ OPC_CheckInteger, 1, ++/*196621*/ OPC_CheckType, MVT::i32, ++/*196623*/ OPC_MoveParent, ++/*196624*/ OPC_MoveParent, ++/*196625*/ OPC_MoveParent, ++/*196626*/ OPC_CheckChild1Same, 1, ++/*196628*/ OPC_MoveParent, ++/*196629*/ OPC_MoveChild1, ++/*196630*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*196633*/ OPC_CheckChild0Integer, 7, ++/*196635*/ OPC_CheckChild0Type, MVT::i32, ++/*196637*/ OPC_CheckChild1Integer, 7, ++/*196639*/ OPC_CheckChild1Type, MVT::i32, ++/*196641*/ OPC_CheckChild2Integer, 7, ++/*196643*/ OPC_CheckChild2Type, MVT::i32, ++/*196645*/ OPC_CheckChild3Integer, 7, ++/*196647*/ OPC_CheckChild3Type, MVT::i32, ++/*196649*/ OPC_CheckChild4Integer, 7, ++/*196651*/ OPC_CheckChild4Type, MVT::i32, ++/*196653*/ OPC_MoveChild5, ++/*196654*/ OPC_CheckInteger, 7, ++/*196656*/ OPC_CheckType, MVT::i32, ++/*196658*/ OPC_MoveParent, ++/*196659*/ OPC_MoveChild6, ++/*196660*/ OPC_CheckInteger, 7, ++/*196662*/ OPC_CheckType, MVT::i32, ++/*196664*/ OPC_MoveParent, ++/*196665*/ OPC_MoveChild7, ++/*196666*/ OPC_CheckInteger, 7, ++/*196668*/ OPC_CheckType, MVT::i32, ++/*196670*/ OPC_MoveParent, ++/*196671*/ OPC_MoveChild, 8, ++/*196673*/ OPC_CheckInteger, 7, ++/*196675*/ OPC_CheckType, MVT::i32, ++/*196677*/ OPC_MoveParent, ++/*196678*/ OPC_MoveChild, 9, ++/*196680*/ OPC_CheckInteger, 7, ++/*196682*/ OPC_CheckType, MVT::i32, ++/*196684*/ OPC_MoveParent, ++/*196685*/ OPC_MoveChild, 10, ++/*196687*/ OPC_CheckInteger, 7, ++/*196689*/ OPC_CheckType, MVT::i32, ++/*196691*/ OPC_MoveParent, ++/*196692*/ OPC_MoveChild, 11, ++/*196694*/ OPC_CheckInteger, 7, ++/*196696*/ OPC_CheckType, MVT::i32, ++/*196698*/ OPC_MoveParent, ++/*196699*/ OPC_MoveChild, 12, ++/*196701*/ OPC_CheckInteger, 7, ++/*196703*/ OPC_CheckType, MVT::i32, ++/*196705*/ OPC_MoveParent, ++/*196706*/ OPC_MoveChild, 13, ++/*196708*/ OPC_CheckInteger, 7, ++/*196710*/ OPC_CheckType, MVT::i32, ++/*196712*/ OPC_MoveParent, ++/*196713*/ OPC_MoveChild, 14, ++/*196715*/ OPC_CheckInteger, 7, ++/*196717*/ OPC_CheckType, MVT::i32, ++/*196719*/ OPC_MoveParent, ++/*196720*/ OPC_MoveChild, 15, ++/*196722*/ OPC_CheckInteger, 7, ++/*196724*/ OPC_CheckType, MVT::i32, ++/*196726*/ OPC_MoveParent, ++/*196727*/ OPC_CheckType, MVT::v16i8, ++/*196729*/ OPC_MoveParent, ++/*196730*/ OPC_MoveParent, ++/*196731*/ OPC_MoveParent, ++/*196732*/ OPC_MoveChild1, ++/*196733*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*196736*/ OPC_CheckChild0Integer, 1, ++/*196738*/ OPC_CheckChild0Type, MVT::i32, ++/*196740*/ OPC_CheckChild1Integer, 1, ++/*196742*/ OPC_CheckChild1Type, MVT::i32, ++/*196744*/ OPC_CheckChild2Integer, 1, ++/*196746*/ OPC_CheckChild2Type, MVT::i32, ++/*196748*/ OPC_CheckChild3Integer, 1, ++/*196750*/ OPC_CheckChild3Type, MVT::i32, ++/*196752*/ OPC_CheckChild4Integer, 1, ++/*196754*/ OPC_CheckChild4Type, MVT::i32, ++/*196756*/ OPC_MoveChild5, ++/*196757*/ OPC_CheckInteger, 1, ++/*196759*/ OPC_CheckType, MVT::i32, ++/*196761*/ OPC_MoveParent, ++/*196762*/ OPC_MoveChild6, ++/*196763*/ OPC_CheckInteger, 1, ++/*196765*/ OPC_CheckType, MVT::i32, ++/*196767*/ OPC_MoveParent, ++/*196768*/ OPC_MoveChild7, ++/*196769*/ OPC_CheckInteger, 1, ++/*196771*/ OPC_CheckType, MVT::i32, ++/*196773*/ OPC_MoveParent, ++/*196774*/ OPC_MoveChild, 8, ++/*196776*/ OPC_CheckInteger, 1, ++/*196778*/ OPC_CheckType, MVT::i32, ++/*196780*/ OPC_MoveParent, ++/*196781*/ OPC_MoveChild, 9, ++/*196783*/ OPC_CheckInteger, 1, ++/*196785*/ OPC_CheckType, MVT::i32, ++/*196787*/ OPC_MoveParent, ++/*196788*/ OPC_MoveChild, 10, ++/*196790*/ OPC_CheckInteger, 1, ++/*196792*/ OPC_CheckType, MVT::i32, ++/*196794*/ OPC_MoveParent, ++/*196795*/ OPC_MoveChild, 11, ++/*196797*/ OPC_CheckInteger, 1, ++/*196799*/ OPC_CheckType, MVT::i32, ++/*196801*/ OPC_MoveParent, ++/*196802*/ OPC_MoveChild, 12, ++/*196804*/ OPC_CheckInteger, 1, ++/*196806*/ OPC_CheckType, MVT::i32, ++/*196808*/ OPC_MoveParent, ++/*196809*/ OPC_MoveChild, 13, ++/*196811*/ OPC_CheckInteger, 1, ++/*196813*/ OPC_CheckType, MVT::i32, ++/*196815*/ OPC_MoveParent, ++/*196816*/ OPC_MoveChild, 14, ++/*196818*/ OPC_CheckInteger, 1, ++/*196820*/ OPC_CheckType, MVT::i32, ++/*196822*/ OPC_MoveParent, ++/*196823*/ OPC_MoveChild, 15, ++/*196825*/ OPC_CheckInteger, 1, ++/*196827*/ OPC_CheckType, MVT::i32, ++/*196829*/ OPC_MoveParent, ++/*196830*/ OPC_CheckType, MVT::v16i8, ++/*196832*/ OPC_MoveParent, ++/*196833*/ OPC_CheckType, MVT::v16i8, ++/*196835*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*196837*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*196845*/ /*Scope*/ 65|128,2/*321*/, /*->197168*/ ++/*196847*/ OPC_CheckChild0Same, 1, ++/*196849*/ OPC_CheckChild1Same, 0, ++/*196851*/ OPC_MoveParent, ++/*196852*/ OPC_MoveChild1, ++/*196853*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*196856*/ OPC_CheckChild0Integer, 1, ++/*196858*/ OPC_CheckChild0Type, MVT::i32, ++/*196860*/ OPC_CheckChild1Integer, 1, ++/*196862*/ OPC_CheckChild1Type, MVT::i32, ++/*196864*/ OPC_CheckChild2Integer, 1, ++/*196866*/ OPC_CheckChild2Type, MVT::i32, ++/*196868*/ OPC_CheckChild3Integer, 1, ++/*196870*/ OPC_CheckChild3Type, MVT::i32, ++/*196872*/ OPC_CheckChild4Integer, 1, ++/*196874*/ OPC_CheckChild4Type, MVT::i32, ++/*196876*/ OPC_MoveChild5, ++/*196877*/ OPC_CheckInteger, 1, ++/*196879*/ OPC_CheckType, MVT::i32, ++/*196881*/ OPC_MoveParent, ++/*196882*/ OPC_MoveChild6, ++/*196883*/ OPC_CheckInteger, 1, ++/*196885*/ OPC_CheckType, MVT::i32, ++/*196887*/ OPC_MoveParent, ++/*196888*/ OPC_MoveChild7, ++/*196889*/ OPC_CheckInteger, 1, ++/*196891*/ OPC_CheckType, MVT::i32, ++/*196893*/ OPC_MoveParent, ++/*196894*/ OPC_MoveChild, 8, ++/*196896*/ OPC_CheckInteger, 1, ++/*196898*/ OPC_CheckType, MVT::i32, ++/*196900*/ OPC_MoveParent, ++/*196901*/ OPC_MoveChild, 9, ++/*196903*/ OPC_CheckInteger, 1, ++/*196905*/ OPC_CheckType, MVT::i32, ++/*196907*/ OPC_MoveParent, ++/*196908*/ OPC_MoveChild, 10, ++/*196910*/ OPC_CheckInteger, 1, ++/*196912*/ OPC_CheckType, MVT::i32, ++/*196914*/ OPC_MoveParent, ++/*196915*/ OPC_MoveChild, 11, ++/*196917*/ OPC_CheckInteger, 1, ++/*196919*/ OPC_CheckType, MVT::i32, ++/*196921*/ OPC_MoveParent, ++/*196922*/ OPC_MoveChild, 12, ++/*196924*/ OPC_CheckInteger, 1, ++/*196926*/ OPC_CheckType, MVT::i32, ++/*196928*/ OPC_MoveParent, ++/*196929*/ OPC_MoveChild, 13, ++/*196931*/ OPC_CheckInteger, 1, ++/*196933*/ OPC_CheckType, MVT::i32, ++/*196935*/ OPC_MoveParent, ++/*196936*/ OPC_MoveChild, 14, ++/*196938*/ OPC_CheckInteger, 1, ++/*196940*/ OPC_CheckType, MVT::i32, ++/*196942*/ OPC_MoveParent, ++/*196943*/ OPC_MoveChild, 15, ++/*196945*/ OPC_CheckInteger, 1, ++/*196947*/ OPC_CheckType, MVT::i32, ++/*196949*/ OPC_MoveParent, ++/*196950*/ OPC_MoveParent, ++/*196951*/ OPC_MoveParent, ++/*196952*/ OPC_MoveChild1, ++/*196953*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*196956*/ OPC_CheckChild0Integer, 7, ++/*196958*/ OPC_CheckChild0Type, MVT::i32, ++/*196960*/ OPC_CheckChild1Integer, 7, ++/*196962*/ OPC_CheckChild1Type, MVT::i32, ++/*196964*/ OPC_CheckChild2Integer, 7, ++/*196966*/ OPC_CheckChild2Type, MVT::i32, ++/*196968*/ OPC_CheckChild3Integer, 7, ++/*196970*/ OPC_CheckChild3Type, MVT::i32, ++/*196972*/ OPC_CheckChild4Integer, 7, ++/*196974*/ OPC_CheckChild4Type, MVT::i32, ++/*196976*/ OPC_MoveChild5, ++/*196977*/ OPC_CheckInteger, 7, ++/*196979*/ OPC_CheckType, MVT::i32, ++/*196981*/ OPC_MoveParent, ++/*196982*/ OPC_MoveChild6, ++/*196983*/ OPC_CheckInteger, 7, ++/*196985*/ OPC_CheckType, MVT::i32, ++/*196987*/ OPC_MoveParent, ++/*196988*/ OPC_MoveChild7, ++/*196989*/ OPC_CheckInteger, 7, ++/*196991*/ OPC_CheckType, MVT::i32, ++/*196993*/ OPC_MoveParent, ++/*196994*/ OPC_MoveChild, 8, ++/*196996*/ OPC_CheckInteger, 7, ++/*196998*/ OPC_CheckType, MVT::i32, ++/*197000*/ OPC_MoveParent, ++/*197001*/ OPC_MoveChild, 9, ++/*197003*/ OPC_CheckInteger, 7, ++/*197005*/ OPC_CheckType, MVT::i32, ++/*197007*/ OPC_MoveParent, ++/*197008*/ OPC_MoveChild, 10, ++/*197010*/ OPC_CheckInteger, 7, ++/*197012*/ OPC_CheckType, MVT::i32, ++/*197014*/ OPC_MoveParent, ++/*197015*/ OPC_MoveChild, 11, ++/*197017*/ OPC_CheckInteger, 7, ++/*197019*/ OPC_CheckType, MVT::i32, ++/*197021*/ OPC_MoveParent, ++/*197022*/ OPC_MoveChild, 12, ++/*197024*/ OPC_CheckInteger, 7, ++/*197026*/ OPC_CheckType, MVT::i32, ++/*197028*/ OPC_MoveParent, ++/*197029*/ OPC_MoveChild, 13, ++/*197031*/ OPC_CheckInteger, 7, ++/*197033*/ OPC_CheckType, MVT::i32, ++/*197035*/ OPC_MoveParent, ++/*197036*/ OPC_MoveChild, 14, ++/*197038*/ OPC_CheckInteger, 7, ++/*197040*/ OPC_CheckType, MVT::i32, ++/*197042*/ OPC_MoveParent, ++/*197043*/ OPC_MoveChild, 15, ++/*197045*/ OPC_CheckInteger, 7, ++/*197047*/ OPC_CheckType, MVT::i32, ++/*197049*/ OPC_MoveParent, ++/*197050*/ OPC_CheckType, MVT::v16i8, ++/*197052*/ OPC_MoveParent, ++/*197053*/ OPC_MoveParent, ++/*197054*/ OPC_MoveParent, ++/*197055*/ OPC_MoveChild1, ++/*197056*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*197059*/ OPC_CheckChild0Integer, 1, ++/*197061*/ OPC_CheckChild0Type, MVT::i32, ++/*197063*/ OPC_CheckChild1Integer, 1, ++/*197065*/ OPC_CheckChild1Type, MVT::i32, ++/*197067*/ OPC_CheckChild2Integer, 1, ++/*197069*/ OPC_CheckChild2Type, MVT::i32, ++/*197071*/ OPC_CheckChild3Integer, 1, ++/*197073*/ OPC_CheckChild3Type, MVT::i32, ++/*197075*/ OPC_CheckChild4Integer, 1, ++/*197077*/ OPC_CheckChild4Type, MVT::i32, ++/*197079*/ OPC_MoveChild5, ++/*197080*/ OPC_CheckInteger, 1, ++/*197082*/ OPC_CheckType, MVT::i32, ++/*197084*/ OPC_MoveParent, ++/*197085*/ OPC_MoveChild6, ++/*197086*/ OPC_CheckInteger, 1, ++/*197088*/ OPC_CheckType, MVT::i32, ++/*197090*/ OPC_MoveParent, ++/*197091*/ OPC_MoveChild7, ++/*197092*/ OPC_CheckInteger, 1, ++/*197094*/ OPC_CheckType, MVT::i32, ++/*197096*/ OPC_MoveParent, ++/*197097*/ OPC_MoveChild, 8, ++/*197099*/ OPC_CheckInteger, 1, ++/*197101*/ OPC_CheckType, MVT::i32, ++/*197103*/ OPC_MoveParent, ++/*197104*/ OPC_MoveChild, 9, ++/*197106*/ OPC_CheckInteger, 1, ++/*197108*/ OPC_CheckType, MVT::i32, ++/*197110*/ OPC_MoveParent, ++/*197111*/ OPC_MoveChild, 10, ++/*197113*/ OPC_CheckInteger, 1, ++/*197115*/ OPC_CheckType, MVT::i32, ++/*197117*/ OPC_MoveParent, ++/*197118*/ OPC_MoveChild, 11, ++/*197120*/ OPC_CheckInteger, 1, ++/*197122*/ OPC_CheckType, MVT::i32, ++/*197124*/ OPC_MoveParent, ++/*197125*/ OPC_MoveChild, 12, ++/*197127*/ OPC_CheckInteger, 1, ++/*197129*/ OPC_CheckType, MVT::i32, ++/*197131*/ OPC_MoveParent, ++/*197132*/ OPC_MoveChild, 13, ++/*197134*/ OPC_CheckInteger, 1, ++/*197136*/ OPC_CheckType, MVT::i32, ++/*197138*/ OPC_MoveParent, ++/*197139*/ OPC_MoveChild, 14, ++/*197141*/ OPC_CheckInteger, 1, ++/*197143*/ OPC_CheckType, MVT::i32, ++/*197145*/ OPC_MoveParent, ++/*197146*/ OPC_MoveChild, 15, ++/*197148*/ OPC_CheckInteger, 1, ++/*197150*/ OPC_CheckType, MVT::i32, ++/*197152*/ OPC_MoveParent, ++/*197153*/ OPC_CheckType, MVT::v16i8, ++/*197155*/ OPC_MoveParent, ++/*197156*/ OPC_CheckType, MVT::v16i8, ++/*197158*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*197160*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*197168*/ /*Scope*/ 65|128,2/*321*/, /*->197491*/ ++/*197170*/ OPC_CheckChild0Same, 0, ++/*197172*/ OPC_CheckChild1Same, 1, ++/*197174*/ OPC_MoveParent, ++/*197175*/ OPC_MoveChild1, ++/*197176*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*197179*/ OPC_CheckChild0Integer, 1, ++/*197181*/ OPC_CheckChild0Type, MVT::i32, ++/*197183*/ OPC_CheckChild1Integer, 1, ++/*197185*/ OPC_CheckChild1Type, MVT::i32, ++/*197187*/ OPC_CheckChild2Integer, 1, ++/*197189*/ OPC_CheckChild2Type, MVT::i32, ++/*197191*/ OPC_CheckChild3Integer, 1, ++/*197193*/ OPC_CheckChild3Type, MVT::i32, ++/*197195*/ OPC_CheckChild4Integer, 1, ++/*197197*/ OPC_CheckChild4Type, MVT::i32, ++/*197199*/ OPC_MoveChild5, ++/*197200*/ OPC_CheckInteger, 1, ++/*197202*/ OPC_CheckType, MVT::i32, ++/*197204*/ OPC_MoveParent, ++/*197205*/ OPC_MoveChild6, ++/*197206*/ OPC_CheckInteger, 1, ++/*197208*/ OPC_CheckType, MVT::i32, ++/*197210*/ OPC_MoveParent, ++/*197211*/ OPC_MoveChild7, ++/*197212*/ OPC_CheckInteger, 1, ++/*197214*/ OPC_CheckType, MVT::i32, ++/*197216*/ OPC_MoveParent, ++/*197217*/ OPC_MoveChild, 8, ++/*197219*/ OPC_CheckInteger, 1, ++/*197221*/ OPC_CheckType, MVT::i32, ++/*197223*/ OPC_MoveParent, ++/*197224*/ OPC_MoveChild, 9, ++/*197226*/ OPC_CheckInteger, 1, ++/*197228*/ OPC_CheckType, MVT::i32, ++/*197230*/ OPC_MoveParent, ++/*197231*/ OPC_MoveChild, 10, ++/*197233*/ OPC_CheckInteger, 1, ++/*197235*/ OPC_CheckType, MVT::i32, ++/*197237*/ OPC_MoveParent, ++/*197238*/ OPC_MoveChild, 11, ++/*197240*/ OPC_CheckInteger, 1, ++/*197242*/ OPC_CheckType, MVT::i32, ++/*197244*/ OPC_MoveParent, ++/*197245*/ OPC_MoveChild, 12, ++/*197247*/ OPC_CheckInteger, 1, ++/*197249*/ OPC_CheckType, MVT::i32, ++/*197251*/ OPC_MoveParent, ++/*197252*/ OPC_MoveChild, 13, ++/*197254*/ OPC_CheckInteger, 1, ++/*197256*/ OPC_CheckType, MVT::i32, ++/*197258*/ OPC_MoveParent, ++/*197259*/ OPC_MoveChild, 14, ++/*197261*/ OPC_CheckInteger, 1, ++/*197263*/ OPC_CheckType, MVT::i32, ++/*197265*/ OPC_MoveParent, ++/*197266*/ OPC_MoveChild, 15, ++/*197268*/ OPC_CheckInteger, 1, ++/*197270*/ OPC_CheckType, MVT::i32, ++/*197272*/ OPC_MoveParent, ++/*197273*/ OPC_MoveParent, ++/*197274*/ OPC_MoveParent, ++/*197275*/ OPC_MoveChild1, ++/*197276*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*197279*/ OPC_CheckChild0Integer, 7, ++/*197281*/ OPC_CheckChild0Type, MVT::i32, ++/*197283*/ OPC_CheckChild1Integer, 7, ++/*197285*/ OPC_CheckChild1Type, MVT::i32, ++/*197287*/ OPC_CheckChild2Integer, 7, ++/*197289*/ OPC_CheckChild2Type, MVT::i32, ++/*197291*/ OPC_CheckChild3Integer, 7, ++/*197293*/ OPC_CheckChild3Type, MVT::i32, ++/*197295*/ OPC_CheckChild4Integer, 7, ++/*197297*/ OPC_CheckChild4Type, MVT::i32, ++/*197299*/ OPC_MoveChild5, ++/*197300*/ OPC_CheckInteger, 7, ++/*197302*/ OPC_CheckType, MVT::i32, ++/*197304*/ OPC_MoveParent, ++/*197305*/ OPC_MoveChild6, ++/*197306*/ OPC_CheckInteger, 7, ++/*197308*/ OPC_CheckType, MVT::i32, ++/*197310*/ OPC_MoveParent, ++/*197311*/ OPC_MoveChild7, ++/*197312*/ OPC_CheckInteger, 7, ++/*197314*/ OPC_CheckType, MVT::i32, ++/*197316*/ OPC_MoveParent, ++/*197317*/ OPC_MoveChild, 8, ++/*197319*/ OPC_CheckInteger, 7, ++/*197321*/ OPC_CheckType, MVT::i32, ++/*197323*/ OPC_MoveParent, ++/*197324*/ OPC_MoveChild, 9, ++/*197326*/ OPC_CheckInteger, 7, ++/*197328*/ OPC_CheckType, MVT::i32, ++/*197330*/ OPC_MoveParent, ++/*197331*/ OPC_MoveChild, 10, ++/*197333*/ OPC_CheckInteger, 7, ++/*197335*/ OPC_CheckType, MVT::i32, ++/*197337*/ OPC_MoveParent, ++/*197338*/ OPC_MoveChild, 11, ++/*197340*/ OPC_CheckInteger, 7, ++/*197342*/ OPC_CheckType, MVT::i32, ++/*197344*/ OPC_MoveParent, ++/*197345*/ OPC_MoveChild, 12, ++/*197347*/ OPC_CheckInteger, 7, ++/*197349*/ OPC_CheckType, MVT::i32, ++/*197351*/ OPC_MoveParent, ++/*197352*/ OPC_MoveChild, 13, ++/*197354*/ OPC_CheckInteger, 7, ++/*197356*/ OPC_CheckType, MVT::i32, ++/*197358*/ OPC_MoveParent, ++/*197359*/ OPC_MoveChild, 14, ++/*197361*/ OPC_CheckInteger, 7, ++/*197363*/ OPC_CheckType, MVT::i32, ++/*197365*/ OPC_MoveParent, ++/*197366*/ OPC_MoveChild, 15, ++/*197368*/ OPC_CheckInteger, 7, ++/*197370*/ OPC_CheckType, MVT::i32, ++/*197372*/ OPC_MoveParent, ++/*197373*/ OPC_CheckType, MVT::v16i8, ++/*197375*/ OPC_MoveParent, ++/*197376*/ OPC_MoveParent, ++/*197377*/ OPC_MoveParent, ++/*197378*/ OPC_MoveChild1, ++/*197379*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*197382*/ OPC_CheckChild0Integer, 1, ++/*197384*/ OPC_CheckChild0Type, MVT::i32, ++/*197386*/ OPC_CheckChild1Integer, 1, ++/*197388*/ OPC_CheckChild1Type, MVT::i32, ++/*197390*/ OPC_CheckChild2Integer, 1, ++/*197392*/ OPC_CheckChild2Type, MVT::i32, ++/*197394*/ OPC_CheckChild3Integer, 1, ++/*197396*/ OPC_CheckChild3Type, MVT::i32, ++/*197398*/ OPC_CheckChild4Integer, 1, ++/*197400*/ OPC_CheckChild4Type, MVT::i32, ++/*197402*/ OPC_MoveChild5, ++/*197403*/ OPC_CheckInteger, 1, ++/*197405*/ OPC_CheckType, MVT::i32, ++/*197407*/ OPC_MoveParent, ++/*197408*/ OPC_MoveChild6, ++/*197409*/ OPC_CheckInteger, 1, ++/*197411*/ OPC_CheckType, MVT::i32, ++/*197413*/ OPC_MoveParent, ++/*197414*/ OPC_MoveChild7, ++/*197415*/ OPC_CheckInteger, 1, ++/*197417*/ OPC_CheckType, MVT::i32, ++/*197419*/ OPC_MoveParent, ++/*197420*/ OPC_MoveChild, 8, ++/*197422*/ OPC_CheckInteger, 1, ++/*197424*/ OPC_CheckType, MVT::i32, ++/*197426*/ OPC_MoveParent, ++/*197427*/ OPC_MoveChild, 9, ++/*197429*/ OPC_CheckInteger, 1, ++/*197431*/ OPC_CheckType, MVT::i32, ++/*197433*/ OPC_MoveParent, ++/*197434*/ OPC_MoveChild, 10, ++/*197436*/ OPC_CheckInteger, 1, ++/*197438*/ OPC_CheckType, MVT::i32, ++/*197440*/ OPC_MoveParent, ++/*197441*/ OPC_MoveChild, 11, ++/*197443*/ OPC_CheckInteger, 1, ++/*197445*/ OPC_CheckType, MVT::i32, ++/*197447*/ OPC_MoveParent, ++/*197448*/ OPC_MoveChild, 12, ++/*197450*/ OPC_CheckInteger, 1, ++/*197452*/ OPC_CheckType, MVT::i32, ++/*197454*/ OPC_MoveParent, ++/*197455*/ OPC_MoveChild, 13, ++/*197457*/ OPC_CheckInteger, 1, ++/*197459*/ OPC_CheckType, MVT::i32, ++/*197461*/ OPC_MoveParent, ++/*197462*/ OPC_MoveChild, 14, ++/*197464*/ OPC_CheckInteger, 1, ++/*197466*/ OPC_CheckType, MVT::i32, ++/*197468*/ OPC_MoveParent, ++/*197469*/ OPC_MoveChild, 15, ++/*197471*/ OPC_CheckInteger, 1, ++/*197473*/ OPC_CheckType, MVT::i32, ++/*197475*/ OPC_MoveParent, ++/*197476*/ OPC_CheckType, MVT::v16i8, ++/*197478*/ OPC_MoveParent, ++/*197479*/ OPC_CheckType, MVT::v16i8, ++/*197481*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*197483*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*197491*/ 0, /*End of Scope*/ ++/*197492*/ 0, // EndSwitchOpcode ++/*197493*/ /*Scope*/ 10|128,5/*650*/, /*->198145*/ ++/*197495*/ OPC_CheckChild0Same, 0, ++/*197497*/ OPC_MoveChild1, ++/*197498*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*197501*/ OPC_Scope, 63|128,2/*319*/, /*->197823*/ // 2 children in Scope ++/*197504*/ OPC_MoveChild0, ++/*197505*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*197508*/ OPC_CheckChild0Integer, 1, ++/*197510*/ OPC_CheckChild0Type, MVT::i32, ++/*197512*/ OPC_CheckChild1Integer, 1, ++/*197514*/ OPC_CheckChild1Type, MVT::i32, ++/*197516*/ OPC_CheckChild2Integer, 1, ++/*197518*/ OPC_CheckChild2Type, MVT::i32, ++/*197520*/ OPC_CheckChild3Integer, 1, ++/*197522*/ OPC_CheckChild3Type, MVT::i32, ++/*197524*/ OPC_CheckChild4Integer, 1, ++/*197526*/ OPC_CheckChild4Type, MVT::i32, ++/*197528*/ OPC_MoveChild5, ++/*197529*/ OPC_CheckInteger, 1, ++/*197531*/ OPC_CheckType, MVT::i32, ++/*197533*/ OPC_MoveParent, ++/*197534*/ OPC_MoveChild6, ++/*197535*/ OPC_CheckInteger, 1, ++/*197537*/ OPC_CheckType, MVT::i32, ++/*197539*/ OPC_MoveParent, ++/*197540*/ OPC_MoveChild7, ++/*197541*/ OPC_CheckInteger, 1, ++/*197543*/ OPC_CheckType, MVT::i32, ++/*197545*/ OPC_MoveParent, ++/*197546*/ OPC_MoveChild, 8, ++/*197548*/ OPC_CheckInteger, 1, ++/*197550*/ OPC_CheckType, MVT::i32, ++/*197552*/ OPC_MoveParent, ++/*197553*/ OPC_MoveChild, 9, ++/*197555*/ OPC_CheckInteger, 1, ++/*197557*/ OPC_CheckType, MVT::i32, ++/*197559*/ OPC_MoveParent, ++/*197560*/ OPC_MoveChild, 10, ++/*197562*/ OPC_CheckInteger, 1, ++/*197564*/ OPC_CheckType, MVT::i32, ++/*197566*/ OPC_MoveParent, ++/*197567*/ OPC_MoveChild, 11, ++/*197569*/ OPC_CheckInteger, 1, ++/*197571*/ OPC_CheckType, MVT::i32, ++/*197573*/ OPC_MoveParent, ++/*197574*/ OPC_MoveChild, 12, ++/*197576*/ OPC_CheckInteger, 1, ++/*197578*/ OPC_CheckType, MVT::i32, ++/*197580*/ OPC_MoveParent, ++/*197581*/ OPC_MoveChild, 13, ++/*197583*/ OPC_CheckInteger, 1, ++/*197585*/ OPC_CheckType, MVT::i32, ++/*197587*/ OPC_MoveParent, ++/*197588*/ OPC_MoveChild, 14, ++/*197590*/ OPC_CheckInteger, 1, ++/*197592*/ OPC_CheckType, MVT::i32, ++/*197594*/ OPC_MoveParent, ++/*197595*/ OPC_MoveChild, 15, ++/*197597*/ OPC_CheckInteger, 1, ++/*197599*/ OPC_CheckType, MVT::i32, ++/*197601*/ OPC_MoveParent, ++/*197602*/ OPC_MoveParent, ++/*197603*/ OPC_CheckChild1Same, 1, ++/*197605*/ OPC_MoveParent, ++/*197606*/ OPC_MoveParent, ++/*197607*/ OPC_MoveChild1, ++/*197608*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*197611*/ OPC_CheckChild0Integer, 7, ++/*197613*/ OPC_CheckChild0Type, MVT::i32, ++/*197615*/ OPC_CheckChild1Integer, 7, ++/*197617*/ OPC_CheckChild1Type, MVT::i32, ++/*197619*/ OPC_CheckChild2Integer, 7, ++/*197621*/ OPC_CheckChild2Type, MVT::i32, ++/*197623*/ OPC_CheckChild3Integer, 7, ++/*197625*/ OPC_CheckChild3Type, MVT::i32, ++/*197627*/ OPC_CheckChild4Integer, 7, ++/*197629*/ OPC_CheckChild4Type, MVT::i32, ++/*197631*/ OPC_MoveChild5, ++/*197632*/ OPC_CheckInteger, 7, ++/*197634*/ OPC_CheckType, MVT::i32, ++/*197636*/ OPC_MoveParent, ++/*197637*/ OPC_MoveChild6, ++/*197638*/ OPC_CheckInteger, 7, ++/*197640*/ OPC_CheckType, MVT::i32, ++/*197642*/ OPC_MoveParent, ++/*197643*/ OPC_MoveChild7, ++/*197644*/ OPC_CheckInteger, 7, ++/*197646*/ OPC_CheckType, MVT::i32, ++/*197648*/ OPC_MoveParent, ++/*197649*/ OPC_MoveChild, 8, ++/*197651*/ OPC_CheckInteger, 7, ++/*197653*/ OPC_CheckType, MVT::i32, ++/*197655*/ OPC_MoveParent, ++/*197656*/ OPC_MoveChild, 9, ++/*197658*/ OPC_CheckInteger, 7, ++/*197660*/ OPC_CheckType, MVT::i32, ++/*197662*/ OPC_MoveParent, ++/*197663*/ OPC_MoveChild, 10, ++/*197665*/ OPC_CheckInteger, 7, ++/*197667*/ OPC_CheckType, MVT::i32, ++/*197669*/ OPC_MoveParent, ++/*197670*/ OPC_MoveChild, 11, ++/*197672*/ OPC_CheckInteger, 7, ++/*197674*/ OPC_CheckType, MVT::i32, ++/*197676*/ OPC_MoveParent, ++/*197677*/ OPC_MoveChild, 12, ++/*197679*/ OPC_CheckInteger, 7, ++/*197681*/ OPC_CheckType, MVT::i32, ++/*197683*/ OPC_MoveParent, ++/*197684*/ OPC_MoveChild, 13, ++/*197686*/ OPC_CheckInteger, 7, ++/*197688*/ OPC_CheckType, MVT::i32, ++/*197690*/ OPC_MoveParent, ++/*197691*/ OPC_MoveChild, 14, ++/*197693*/ OPC_CheckInteger, 7, ++/*197695*/ OPC_CheckType, MVT::i32, ++/*197697*/ OPC_MoveParent, ++/*197698*/ OPC_MoveChild, 15, ++/*197700*/ OPC_CheckInteger, 7, ++/*197702*/ OPC_CheckType, MVT::i32, ++/*197704*/ OPC_MoveParent, ++/*197705*/ OPC_CheckType, MVT::v16i8, ++/*197707*/ OPC_MoveParent, ++/*197708*/ OPC_MoveParent, ++/*197709*/ OPC_MoveParent, ++/*197710*/ OPC_MoveChild1, ++/*197711*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*197714*/ OPC_CheckChild0Integer, 1, ++/*197716*/ OPC_CheckChild0Type, MVT::i32, ++/*197718*/ OPC_CheckChild1Integer, 1, ++/*197720*/ OPC_CheckChild1Type, MVT::i32, ++/*197722*/ OPC_CheckChild2Integer, 1, ++/*197724*/ OPC_CheckChild2Type, MVT::i32, ++/*197726*/ OPC_CheckChild3Integer, 1, ++/*197728*/ OPC_CheckChild3Type, MVT::i32, ++/*197730*/ OPC_CheckChild4Integer, 1, ++/*197732*/ OPC_CheckChild4Type, MVT::i32, ++/*197734*/ OPC_MoveChild5, ++/*197735*/ OPC_CheckInteger, 1, ++/*197737*/ OPC_CheckType, MVT::i32, ++/*197739*/ OPC_MoveParent, ++/*197740*/ OPC_MoveChild6, ++/*197741*/ OPC_CheckInteger, 1, ++/*197743*/ OPC_CheckType, MVT::i32, ++/*197745*/ OPC_MoveParent, ++/*197746*/ OPC_MoveChild7, ++/*197747*/ OPC_CheckInteger, 1, ++/*197749*/ OPC_CheckType, MVT::i32, ++/*197751*/ OPC_MoveParent, ++/*197752*/ OPC_MoveChild, 8, ++/*197754*/ OPC_CheckInteger, 1, ++/*197756*/ OPC_CheckType, MVT::i32, ++/*197758*/ OPC_MoveParent, ++/*197759*/ OPC_MoveChild, 9, ++/*197761*/ OPC_CheckInteger, 1, ++/*197763*/ OPC_CheckType, MVT::i32, ++/*197765*/ OPC_MoveParent, ++/*197766*/ OPC_MoveChild, 10, ++/*197768*/ OPC_CheckInteger, 1, ++/*197770*/ OPC_CheckType, MVT::i32, ++/*197772*/ OPC_MoveParent, ++/*197773*/ OPC_MoveChild, 11, ++/*197775*/ OPC_CheckInteger, 1, ++/*197777*/ OPC_CheckType, MVT::i32, ++/*197779*/ OPC_MoveParent, ++/*197780*/ OPC_MoveChild, 12, ++/*197782*/ OPC_CheckInteger, 1, ++/*197784*/ OPC_CheckType, MVT::i32, ++/*197786*/ OPC_MoveParent, ++/*197787*/ OPC_MoveChild, 13, ++/*197789*/ OPC_CheckInteger, 1, ++/*197791*/ OPC_CheckType, MVT::i32, ++/*197793*/ OPC_MoveParent, ++/*197794*/ OPC_MoveChild, 14, ++/*197796*/ OPC_CheckInteger, 1, ++/*197798*/ OPC_CheckType, MVT::i32, ++/*197800*/ OPC_MoveParent, ++/*197801*/ OPC_MoveChild, 15, ++/*197803*/ OPC_CheckInteger, 1, ++/*197805*/ OPC_CheckType, MVT::i32, ++/*197807*/ OPC_MoveParent, ++/*197808*/ OPC_CheckType, MVT::v16i8, ++/*197810*/ OPC_MoveParent, ++/*197811*/ OPC_CheckType, MVT::v16i8, ++/*197813*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*197815*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*197823*/ /*Scope*/ 63|128,2/*319*/, /*->198144*/ ++/*197825*/ OPC_CheckChild0Same, 1, ++/*197827*/ OPC_MoveChild1, ++/*197828*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*197831*/ OPC_CheckChild0Integer, 1, ++/*197833*/ OPC_CheckChild0Type, MVT::i32, ++/*197835*/ OPC_CheckChild1Integer, 1, ++/*197837*/ OPC_CheckChild1Type, MVT::i32, ++/*197839*/ OPC_CheckChild2Integer, 1, ++/*197841*/ OPC_CheckChild2Type, MVT::i32, ++/*197843*/ OPC_CheckChild3Integer, 1, ++/*197845*/ OPC_CheckChild3Type, MVT::i32, ++/*197847*/ OPC_CheckChild4Integer, 1, ++/*197849*/ OPC_CheckChild4Type, MVT::i32, ++/*197851*/ OPC_MoveChild5, ++/*197852*/ OPC_CheckInteger, 1, ++/*197854*/ OPC_CheckType, MVT::i32, ++/*197856*/ OPC_MoveParent, ++/*197857*/ OPC_MoveChild6, ++/*197858*/ OPC_CheckInteger, 1, ++/*197860*/ OPC_CheckType, MVT::i32, ++/*197862*/ OPC_MoveParent, ++/*197863*/ OPC_MoveChild7, ++/*197864*/ OPC_CheckInteger, 1, ++/*197866*/ OPC_CheckType, MVT::i32, ++/*197868*/ OPC_MoveParent, ++/*197869*/ OPC_MoveChild, 8, ++/*197871*/ OPC_CheckInteger, 1, ++/*197873*/ OPC_CheckType, MVT::i32, ++/*197875*/ OPC_MoveParent, ++/*197876*/ OPC_MoveChild, 9, ++/*197878*/ OPC_CheckInteger, 1, ++/*197880*/ OPC_CheckType, MVT::i32, ++/*197882*/ OPC_MoveParent, ++/*197883*/ OPC_MoveChild, 10, ++/*197885*/ OPC_CheckInteger, 1, ++/*197887*/ OPC_CheckType, MVT::i32, ++/*197889*/ OPC_MoveParent, ++/*197890*/ OPC_MoveChild, 11, ++/*197892*/ OPC_CheckInteger, 1, ++/*197894*/ OPC_CheckType, MVT::i32, ++/*197896*/ OPC_MoveParent, ++/*197897*/ OPC_MoveChild, 12, ++/*197899*/ OPC_CheckInteger, 1, ++/*197901*/ OPC_CheckType, MVT::i32, ++/*197903*/ OPC_MoveParent, ++/*197904*/ OPC_MoveChild, 13, ++/*197906*/ OPC_CheckInteger, 1, ++/*197908*/ OPC_CheckType, MVT::i32, ++/*197910*/ OPC_MoveParent, ++/*197911*/ OPC_MoveChild, 14, ++/*197913*/ OPC_CheckInteger, 1, ++/*197915*/ OPC_CheckType, MVT::i32, ++/*197917*/ OPC_MoveParent, ++/*197918*/ OPC_MoveChild, 15, ++/*197920*/ OPC_CheckInteger, 1, ++/*197922*/ OPC_CheckType, MVT::i32, ++/*197924*/ OPC_MoveParent, ++/*197925*/ OPC_MoveParent, ++/*197926*/ OPC_MoveParent, ++/*197927*/ OPC_MoveParent, ++/*197928*/ OPC_MoveChild1, ++/*197929*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*197932*/ OPC_CheckChild0Integer, 7, ++/*197934*/ OPC_CheckChild0Type, MVT::i32, ++/*197936*/ OPC_CheckChild1Integer, 7, ++/*197938*/ OPC_CheckChild1Type, MVT::i32, ++/*197940*/ OPC_CheckChild2Integer, 7, ++/*197942*/ OPC_CheckChild2Type, MVT::i32, ++/*197944*/ OPC_CheckChild3Integer, 7, ++/*197946*/ OPC_CheckChild3Type, MVT::i32, ++/*197948*/ OPC_CheckChild4Integer, 7, ++/*197950*/ OPC_CheckChild4Type, MVT::i32, ++/*197952*/ OPC_MoveChild5, ++/*197953*/ OPC_CheckInteger, 7, ++/*197955*/ OPC_CheckType, MVT::i32, ++/*197957*/ OPC_MoveParent, ++/*197958*/ OPC_MoveChild6, ++/*197959*/ OPC_CheckInteger, 7, ++/*197961*/ OPC_CheckType, MVT::i32, ++/*197963*/ OPC_MoveParent, ++/*197964*/ OPC_MoveChild7, ++/*197965*/ OPC_CheckInteger, 7, ++/*197967*/ OPC_CheckType, MVT::i32, ++/*197969*/ OPC_MoveParent, ++/*197970*/ OPC_MoveChild, 8, ++/*197972*/ OPC_CheckInteger, 7, ++/*197974*/ OPC_CheckType, MVT::i32, ++/*197976*/ OPC_MoveParent, ++/*197977*/ OPC_MoveChild, 9, ++/*197979*/ OPC_CheckInteger, 7, ++/*197981*/ OPC_CheckType, MVT::i32, ++/*197983*/ OPC_MoveParent, ++/*197984*/ OPC_MoveChild, 10, ++/*197986*/ OPC_CheckInteger, 7, ++/*197988*/ OPC_CheckType, MVT::i32, ++/*197990*/ OPC_MoveParent, ++/*197991*/ OPC_MoveChild, 11, ++/*197993*/ OPC_CheckInteger, 7, ++/*197995*/ OPC_CheckType, MVT::i32, ++/*197997*/ OPC_MoveParent, ++/*197998*/ OPC_MoveChild, 12, ++/*198000*/ OPC_CheckInteger, 7, ++/*198002*/ OPC_CheckType, MVT::i32, ++/*198004*/ OPC_MoveParent, ++/*198005*/ OPC_MoveChild, 13, ++/*198007*/ OPC_CheckInteger, 7, ++/*198009*/ OPC_CheckType, MVT::i32, ++/*198011*/ OPC_MoveParent, ++/*198012*/ OPC_MoveChild, 14, ++/*198014*/ OPC_CheckInteger, 7, ++/*198016*/ OPC_CheckType, MVT::i32, ++/*198018*/ OPC_MoveParent, ++/*198019*/ OPC_MoveChild, 15, ++/*198021*/ OPC_CheckInteger, 7, ++/*198023*/ OPC_CheckType, MVT::i32, ++/*198025*/ OPC_MoveParent, ++/*198026*/ OPC_CheckType, MVT::v16i8, ++/*198028*/ OPC_MoveParent, ++/*198029*/ OPC_MoveParent, ++/*198030*/ OPC_MoveParent, ++/*198031*/ OPC_MoveChild1, ++/*198032*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*198035*/ OPC_CheckChild0Integer, 1, ++/*198037*/ OPC_CheckChild0Type, MVT::i32, ++/*198039*/ OPC_CheckChild1Integer, 1, ++/*198041*/ OPC_CheckChild1Type, MVT::i32, ++/*198043*/ OPC_CheckChild2Integer, 1, ++/*198045*/ OPC_CheckChild2Type, MVT::i32, ++/*198047*/ OPC_CheckChild3Integer, 1, ++/*198049*/ OPC_CheckChild3Type, MVT::i32, ++/*198051*/ OPC_CheckChild4Integer, 1, ++/*198053*/ OPC_CheckChild4Type, MVT::i32, ++/*198055*/ OPC_MoveChild5, ++/*198056*/ OPC_CheckInteger, 1, ++/*198058*/ OPC_CheckType, MVT::i32, ++/*198060*/ OPC_MoveParent, ++/*198061*/ OPC_MoveChild6, ++/*198062*/ OPC_CheckInteger, 1, ++/*198064*/ OPC_CheckType, MVT::i32, ++/*198066*/ OPC_MoveParent, ++/*198067*/ OPC_MoveChild7, ++/*198068*/ OPC_CheckInteger, 1, ++/*198070*/ OPC_CheckType, MVT::i32, ++/*198072*/ OPC_MoveParent, ++/*198073*/ OPC_MoveChild, 8, ++/*198075*/ OPC_CheckInteger, 1, ++/*198077*/ OPC_CheckType, MVT::i32, ++/*198079*/ OPC_MoveParent, ++/*198080*/ OPC_MoveChild, 9, ++/*198082*/ OPC_CheckInteger, 1, ++/*198084*/ OPC_CheckType, MVT::i32, ++/*198086*/ OPC_MoveParent, ++/*198087*/ OPC_MoveChild, 10, ++/*198089*/ OPC_CheckInteger, 1, ++/*198091*/ OPC_CheckType, MVT::i32, ++/*198093*/ OPC_MoveParent, ++/*198094*/ OPC_MoveChild, 11, ++/*198096*/ OPC_CheckInteger, 1, ++/*198098*/ OPC_CheckType, MVT::i32, ++/*198100*/ OPC_MoveParent, ++/*198101*/ OPC_MoveChild, 12, ++/*198103*/ OPC_CheckInteger, 1, ++/*198105*/ OPC_CheckType, MVT::i32, ++/*198107*/ OPC_MoveParent, ++/*198108*/ OPC_MoveChild, 13, ++/*198110*/ OPC_CheckInteger, 1, ++/*198112*/ OPC_CheckType, MVT::i32, ++/*198114*/ OPC_MoveParent, ++/*198115*/ OPC_MoveChild, 14, ++/*198117*/ OPC_CheckInteger, 1, ++/*198119*/ OPC_CheckType, MVT::i32, ++/*198121*/ OPC_MoveParent, ++/*198122*/ OPC_MoveChild, 15, ++/*198124*/ OPC_CheckInteger, 1, ++/*198126*/ OPC_CheckType, MVT::i32, ++/*198128*/ OPC_MoveParent, ++/*198129*/ OPC_CheckType, MVT::v16i8, ++/*198131*/ OPC_MoveParent, ++/*198132*/ OPC_CheckType, MVT::v16i8, ++/*198134*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*198136*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*198144*/ 0, /*End of Scope*/ ++/*198145*/ /*Scope*/ 10|128,5/*650*/, /*->198797*/ ++/*198147*/ OPC_CheckChild0Same, 1, ++/*198149*/ OPC_MoveChild1, ++/*198150*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*198153*/ OPC_Scope, 63|128,2/*319*/, /*->198475*/ // 2 children in Scope ++/*198156*/ OPC_MoveChild0, ++/*198157*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*198160*/ OPC_CheckChild0Integer, 1, ++/*198162*/ OPC_CheckChild0Type, MVT::i32, ++/*198164*/ OPC_CheckChild1Integer, 1, ++/*198166*/ OPC_CheckChild1Type, MVT::i32, ++/*198168*/ OPC_CheckChild2Integer, 1, ++/*198170*/ OPC_CheckChild2Type, MVT::i32, ++/*198172*/ OPC_CheckChild3Integer, 1, ++/*198174*/ OPC_CheckChild3Type, MVT::i32, ++/*198176*/ OPC_CheckChild4Integer, 1, ++/*198178*/ OPC_CheckChild4Type, MVT::i32, ++/*198180*/ OPC_MoveChild5, ++/*198181*/ OPC_CheckInteger, 1, ++/*198183*/ OPC_CheckType, MVT::i32, ++/*198185*/ OPC_MoveParent, ++/*198186*/ OPC_MoveChild6, ++/*198187*/ OPC_CheckInteger, 1, ++/*198189*/ OPC_CheckType, MVT::i32, ++/*198191*/ OPC_MoveParent, ++/*198192*/ OPC_MoveChild7, ++/*198193*/ OPC_CheckInteger, 1, ++/*198195*/ OPC_CheckType, MVT::i32, ++/*198197*/ OPC_MoveParent, ++/*198198*/ OPC_MoveChild, 8, ++/*198200*/ OPC_CheckInteger, 1, ++/*198202*/ OPC_CheckType, MVT::i32, ++/*198204*/ OPC_MoveParent, ++/*198205*/ OPC_MoveChild, 9, ++/*198207*/ OPC_CheckInteger, 1, ++/*198209*/ OPC_CheckType, MVT::i32, ++/*198211*/ OPC_MoveParent, ++/*198212*/ OPC_MoveChild, 10, ++/*198214*/ OPC_CheckInteger, 1, ++/*198216*/ OPC_CheckType, MVT::i32, ++/*198218*/ OPC_MoveParent, ++/*198219*/ OPC_MoveChild, 11, ++/*198221*/ OPC_CheckInteger, 1, ++/*198223*/ OPC_CheckType, MVT::i32, ++/*198225*/ OPC_MoveParent, ++/*198226*/ OPC_MoveChild, 12, ++/*198228*/ OPC_CheckInteger, 1, ++/*198230*/ OPC_CheckType, MVT::i32, ++/*198232*/ OPC_MoveParent, ++/*198233*/ OPC_MoveChild, 13, ++/*198235*/ OPC_CheckInteger, 1, ++/*198237*/ OPC_CheckType, MVT::i32, ++/*198239*/ OPC_MoveParent, ++/*198240*/ OPC_MoveChild, 14, ++/*198242*/ OPC_CheckInteger, 1, ++/*198244*/ OPC_CheckType, MVT::i32, ++/*198246*/ OPC_MoveParent, ++/*198247*/ OPC_MoveChild, 15, ++/*198249*/ OPC_CheckInteger, 1, ++/*198251*/ OPC_CheckType, MVT::i32, ++/*198253*/ OPC_MoveParent, ++/*198254*/ OPC_MoveParent, ++/*198255*/ OPC_CheckChild1Same, 0, ++/*198257*/ OPC_MoveParent, ++/*198258*/ OPC_MoveParent, ++/*198259*/ OPC_MoveChild1, ++/*198260*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*198263*/ OPC_CheckChild0Integer, 7, ++/*198265*/ OPC_CheckChild0Type, MVT::i32, ++/*198267*/ OPC_CheckChild1Integer, 7, ++/*198269*/ OPC_CheckChild1Type, MVT::i32, ++/*198271*/ OPC_CheckChild2Integer, 7, ++/*198273*/ OPC_CheckChild2Type, MVT::i32, ++/*198275*/ OPC_CheckChild3Integer, 7, ++/*198277*/ OPC_CheckChild3Type, MVT::i32, ++/*198279*/ OPC_CheckChild4Integer, 7, ++/*198281*/ OPC_CheckChild4Type, MVT::i32, ++/*198283*/ OPC_MoveChild5, ++/*198284*/ OPC_CheckInteger, 7, ++/*198286*/ OPC_CheckType, MVT::i32, ++/*198288*/ OPC_MoveParent, ++/*198289*/ OPC_MoveChild6, ++/*198290*/ OPC_CheckInteger, 7, ++/*198292*/ OPC_CheckType, MVT::i32, ++/*198294*/ OPC_MoveParent, ++/*198295*/ OPC_MoveChild7, ++/*198296*/ OPC_CheckInteger, 7, ++/*198298*/ OPC_CheckType, MVT::i32, ++/*198300*/ OPC_MoveParent, ++/*198301*/ OPC_MoveChild, 8, ++/*198303*/ OPC_CheckInteger, 7, ++/*198305*/ OPC_CheckType, MVT::i32, ++/*198307*/ OPC_MoveParent, ++/*198308*/ OPC_MoveChild, 9, ++/*198310*/ OPC_CheckInteger, 7, ++/*198312*/ OPC_CheckType, MVT::i32, ++/*198314*/ OPC_MoveParent, ++/*198315*/ OPC_MoveChild, 10, ++/*198317*/ OPC_CheckInteger, 7, ++/*198319*/ OPC_CheckType, MVT::i32, ++/*198321*/ OPC_MoveParent, ++/*198322*/ OPC_MoveChild, 11, ++/*198324*/ OPC_CheckInteger, 7, ++/*198326*/ OPC_CheckType, MVT::i32, ++/*198328*/ OPC_MoveParent, ++/*198329*/ OPC_MoveChild, 12, ++/*198331*/ OPC_CheckInteger, 7, ++/*198333*/ OPC_CheckType, MVT::i32, ++/*198335*/ OPC_MoveParent, ++/*198336*/ OPC_MoveChild, 13, ++/*198338*/ OPC_CheckInteger, 7, ++/*198340*/ OPC_CheckType, MVT::i32, ++/*198342*/ OPC_MoveParent, ++/*198343*/ OPC_MoveChild, 14, ++/*198345*/ OPC_CheckInteger, 7, ++/*198347*/ OPC_CheckType, MVT::i32, ++/*198349*/ OPC_MoveParent, ++/*198350*/ OPC_MoveChild, 15, ++/*198352*/ OPC_CheckInteger, 7, ++/*198354*/ OPC_CheckType, MVT::i32, ++/*198356*/ OPC_MoveParent, ++/*198357*/ OPC_CheckType, MVT::v16i8, ++/*198359*/ OPC_MoveParent, ++/*198360*/ OPC_MoveParent, ++/*198361*/ OPC_MoveParent, ++/*198362*/ OPC_MoveChild1, ++/*198363*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*198366*/ OPC_CheckChild0Integer, 1, ++/*198368*/ OPC_CheckChild0Type, MVT::i32, ++/*198370*/ OPC_CheckChild1Integer, 1, ++/*198372*/ OPC_CheckChild1Type, MVT::i32, ++/*198374*/ OPC_CheckChild2Integer, 1, ++/*198376*/ OPC_CheckChild2Type, MVT::i32, ++/*198378*/ OPC_CheckChild3Integer, 1, ++/*198380*/ OPC_CheckChild3Type, MVT::i32, ++/*198382*/ OPC_CheckChild4Integer, 1, ++/*198384*/ OPC_CheckChild4Type, MVT::i32, ++/*198386*/ OPC_MoveChild5, ++/*198387*/ OPC_CheckInteger, 1, ++/*198389*/ OPC_CheckType, MVT::i32, ++/*198391*/ OPC_MoveParent, ++/*198392*/ OPC_MoveChild6, ++/*198393*/ OPC_CheckInteger, 1, ++/*198395*/ OPC_CheckType, MVT::i32, ++/*198397*/ OPC_MoveParent, ++/*198398*/ OPC_MoveChild7, ++/*198399*/ OPC_CheckInteger, 1, ++/*198401*/ OPC_CheckType, MVT::i32, ++/*198403*/ OPC_MoveParent, ++/*198404*/ OPC_MoveChild, 8, ++/*198406*/ OPC_CheckInteger, 1, ++/*198408*/ OPC_CheckType, MVT::i32, ++/*198410*/ OPC_MoveParent, ++/*198411*/ OPC_MoveChild, 9, ++/*198413*/ OPC_CheckInteger, 1, ++/*198415*/ OPC_CheckType, MVT::i32, ++/*198417*/ OPC_MoveParent, ++/*198418*/ OPC_MoveChild, 10, ++/*198420*/ OPC_CheckInteger, 1, ++/*198422*/ OPC_CheckType, MVT::i32, ++/*198424*/ OPC_MoveParent, ++/*198425*/ OPC_MoveChild, 11, ++/*198427*/ OPC_CheckInteger, 1, ++/*198429*/ OPC_CheckType, MVT::i32, ++/*198431*/ OPC_MoveParent, ++/*198432*/ OPC_MoveChild, 12, ++/*198434*/ OPC_CheckInteger, 1, ++/*198436*/ OPC_CheckType, MVT::i32, ++/*198438*/ OPC_MoveParent, ++/*198439*/ OPC_MoveChild, 13, ++/*198441*/ OPC_CheckInteger, 1, ++/*198443*/ OPC_CheckType, MVT::i32, ++/*198445*/ OPC_MoveParent, ++/*198446*/ OPC_MoveChild, 14, ++/*198448*/ OPC_CheckInteger, 1, ++/*198450*/ OPC_CheckType, MVT::i32, ++/*198452*/ OPC_MoveParent, ++/*198453*/ OPC_MoveChild, 15, ++/*198455*/ OPC_CheckInteger, 1, ++/*198457*/ OPC_CheckType, MVT::i32, ++/*198459*/ OPC_MoveParent, ++/*198460*/ OPC_CheckType, MVT::v16i8, ++/*198462*/ OPC_MoveParent, ++/*198463*/ OPC_CheckType, MVT::v16i8, ++/*198465*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*198467*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*198475*/ /*Scope*/ 63|128,2/*319*/, /*->198796*/ ++/*198477*/ OPC_CheckChild0Same, 0, ++/*198479*/ OPC_MoveChild1, ++/*198480*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*198483*/ OPC_CheckChild0Integer, 1, ++/*198485*/ OPC_CheckChild0Type, MVT::i32, ++/*198487*/ OPC_CheckChild1Integer, 1, ++/*198489*/ OPC_CheckChild1Type, MVT::i32, ++/*198491*/ OPC_CheckChild2Integer, 1, ++/*198493*/ OPC_CheckChild2Type, MVT::i32, ++/*198495*/ OPC_CheckChild3Integer, 1, ++/*198497*/ OPC_CheckChild3Type, MVT::i32, ++/*198499*/ OPC_CheckChild4Integer, 1, ++/*198501*/ OPC_CheckChild4Type, MVT::i32, ++/*198503*/ OPC_MoveChild5, ++/*198504*/ OPC_CheckInteger, 1, ++/*198506*/ OPC_CheckType, MVT::i32, ++/*198508*/ OPC_MoveParent, ++/*198509*/ OPC_MoveChild6, ++/*198510*/ OPC_CheckInteger, 1, ++/*198512*/ OPC_CheckType, MVT::i32, ++/*198514*/ OPC_MoveParent, ++/*198515*/ OPC_MoveChild7, ++/*198516*/ OPC_CheckInteger, 1, ++/*198518*/ OPC_CheckType, MVT::i32, ++/*198520*/ OPC_MoveParent, ++/*198521*/ OPC_MoveChild, 8, ++/*198523*/ OPC_CheckInteger, 1, ++/*198525*/ OPC_CheckType, MVT::i32, ++/*198527*/ OPC_MoveParent, ++/*198528*/ OPC_MoveChild, 9, ++/*198530*/ OPC_CheckInteger, 1, ++/*198532*/ OPC_CheckType, MVT::i32, ++/*198534*/ OPC_MoveParent, ++/*198535*/ OPC_MoveChild, 10, ++/*198537*/ OPC_CheckInteger, 1, ++/*198539*/ OPC_CheckType, MVT::i32, ++/*198541*/ OPC_MoveParent, ++/*198542*/ OPC_MoveChild, 11, ++/*198544*/ OPC_CheckInteger, 1, ++/*198546*/ OPC_CheckType, MVT::i32, ++/*198548*/ OPC_MoveParent, ++/*198549*/ OPC_MoveChild, 12, ++/*198551*/ OPC_CheckInteger, 1, ++/*198553*/ OPC_CheckType, MVT::i32, ++/*198555*/ OPC_MoveParent, ++/*198556*/ OPC_MoveChild, 13, ++/*198558*/ OPC_CheckInteger, 1, ++/*198560*/ OPC_CheckType, MVT::i32, ++/*198562*/ OPC_MoveParent, ++/*198563*/ OPC_MoveChild, 14, ++/*198565*/ OPC_CheckInteger, 1, ++/*198567*/ OPC_CheckType, MVT::i32, ++/*198569*/ OPC_MoveParent, ++/*198570*/ OPC_MoveChild, 15, ++/*198572*/ OPC_CheckInteger, 1, ++/*198574*/ OPC_CheckType, MVT::i32, ++/*198576*/ OPC_MoveParent, ++/*198577*/ OPC_MoveParent, ++/*198578*/ OPC_MoveParent, ++/*198579*/ OPC_MoveParent, ++/*198580*/ OPC_MoveChild1, ++/*198581*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*198584*/ OPC_CheckChild0Integer, 7, ++/*198586*/ OPC_CheckChild0Type, MVT::i32, ++/*198588*/ OPC_CheckChild1Integer, 7, ++/*198590*/ OPC_CheckChild1Type, MVT::i32, ++/*198592*/ OPC_CheckChild2Integer, 7, ++/*198594*/ OPC_CheckChild2Type, MVT::i32, ++/*198596*/ OPC_CheckChild3Integer, 7, ++/*198598*/ OPC_CheckChild3Type, MVT::i32, ++/*198600*/ OPC_CheckChild4Integer, 7, ++/*198602*/ OPC_CheckChild4Type, MVT::i32, ++/*198604*/ OPC_MoveChild5, ++/*198605*/ OPC_CheckInteger, 7, ++/*198607*/ OPC_CheckType, MVT::i32, ++/*198609*/ OPC_MoveParent, ++/*198610*/ OPC_MoveChild6, ++/*198611*/ OPC_CheckInteger, 7, ++/*198613*/ OPC_CheckType, MVT::i32, ++/*198615*/ OPC_MoveParent, ++/*198616*/ OPC_MoveChild7, ++/*198617*/ OPC_CheckInteger, 7, ++/*198619*/ OPC_CheckType, MVT::i32, ++/*198621*/ OPC_MoveParent, ++/*198622*/ OPC_MoveChild, 8, ++/*198624*/ OPC_CheckInteger, 7, ++/*198626*/ OPC_CheckType, MVT::i32, ++/*198628*/ OPC_MoveParent, ++/*198629*/ OPC_MoveChild, 9, ++/*198631*/ OPC_CheckInteger, 7, ++/*198633*/ OPC_CheckType, MVT::i32, ++/*198635*/ OPC_MoveParent, ++/*198636*/ OPC_MoveChild, 10, ++/*198638*/ OPC_CheckInteger, 7, ++/*198640*/ OPC_CheckType, MVT::i32, ++/*198642*/ OPC_MoveParent, ++/*198643*/ OPC_MoveChild, 11, ++/*198645*/ OPC_CheckInteger, 7, ++/*198647*/ OPC_CheckType, MVT::i32, ++/*198649*/ OPC_MoveParent, ++/*198650*/ OPC_MoveChild, 12, ++/*198652*/ OPC_CheckInteger, 7, ++/*198654*/ OPC_CheckType, MVT::i32, ++/*198656*/ OPC_MoveParent, ++/*198657*/ OPC_MoveChild, 13, ++/*198659*/ OPC_CheckInteger, 7, ++/*198661*/ OPC_CheckType, MVT::i32, ++/*198663*/ OPC_MoveParent, ++/*198664*/ OPC_MoveChild, 14, ++/*198666*/ OPC_CheckInteger, 7, ++/*198668*/ OPC_CheckType, MVT::i32, ++/*198670*/ OPC_MoveParent, ++/*198671*/ OPC_MoveChild, 15, ++/*198673*/ OPC_CheckInteger, 7, ++/*198675*/ OPC_CheckType, MVT::i32, ++/*198677*/ OPC_MoveParent, ++/*198678*/ OPC_CheckType, MVT::v16i8, ++/*198680*/ OPC_MoveParent, ++/*198681*/ OPC_MoveParent, ++/*198682*/ OPC_MoveParent, ++/*198683*/ OPC_MoveChild1, ++/*198684*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*198687*/ OPC_CheckChild0Integer, 1, ++/*198689*/ OPC_CheckChild0Type, MVT::i32, ++/*198691*/ OPC_CheckChild1Integer, 1, ++/*198693*/ OPC_CheckChild1Type, MVT::i32, ++/*198695*/ OPC_CheckChild2Integer, 1, ++/*198697*/ OPC_CheckChild2Type, MVT::i32, ++/*198699*/ OPC_CheckChild3Integer, 1, ++/*198701*/ OPC_CheckChild3Type, MVT::i32, ++/*198703*/ OPC_CheckChild4Integer, 1, ++/*198705*/ OPC_CheckChild4Type, MVT::i32, ++/*198707*/ OPC_MoveChild5, ++/*198708*/ OPC_CheckInteger, 1, ++/*198710*/ OPC_CheckType, MVT::i32, ++/*198712*/ OPC_MoveParent, ++/*198713*/ OPC_MoveChild6, ++/*198714*/ OPC_CheckInteger, 1, ++/*198716*/ OPC_CheckType, MVT::i32, ++/*198718*/ OPC_MoveParent, ++/*198719*/ OPC_MoveChild7, ++/*198720*/ OPC_CheckInteger, 1, ++/*198722*/ OPC_CheckType, MVT::i32, ++/*198724*/ OPC_MoveParent, ++/*198725*/ OPC_MoveChild, 8, ++/*198727*/ OPC_CheckInteger, 1, ++/*198729*/ OPC_CheckType, MVT::i32, ++/*198731*/ OPC_MoveParent, ++/*198732*/ OPC_MoveChild, 9, ++/*198734*/ OPC_CheckInteger, 1, ++/*198736*/ OPC_CheckType, MVT::i32, ++/*198738*/ OPC_MoveParent, ++/*198739*/ OPC_MoveChild, 10, ++/*198741*/ OPC_CheckInteger, 1, ++/*198743*/ OPC_CheckType, MVT::i32, ++/*198745*/ OPC_MoveParent, ++/*198746*/ OPC_MoveChild, 11, ++/*198748*/ OPC_CheckInteger, 1, ++/*198750*/ OPC_CheckType, MVT::i32, ++/*198752*/ OPC_MoveParent, ++/*198753*/ OPC_MoveChild, 12, ++/*198755*/ OPC_CheckInteger, 1, ++/*198757*/ OPC_CheckType, MVT::i32, ++/*198759*/ OPC_MoveParent, ++/*198760*/ OPC_MoveChild, 13, ++/*198762*/ OPC_CheckInteger, 1, ++/*198764*/ OPC_CheckType, MVT::i32, ++/*198766*/ OPC_MoveParent, ++/*198767*/ OPC_MoveChild, 14, ++/*198769*/ OPC_CheckInteger, 1, ++/*198771*/ OPC_CheckType, MVT::i32, ++/*198773*/ OPC_MoveParent, ++/*198774*/ OPC_MoveChild, 15, ++/*198776*/ OPC_CheckInteger, 1, ++/*198778*/ OPC_CheckType, MVT::i32, ++/*198780*/ OPC_MoveParent, ++/*198781*/ OPC_CheckType, MVT::v16i8, ++/*198783*/ OPC_MoveParent, ++/*198784*/ OPC_CheckType, MVT::v16i8, ++/*198786*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*198788*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*198796*/ 0, /*End of Scope*/ ++/*198797*/ /*Scope*/ 41|128,4/*553*/, /*->199352*/ ++/*198799*/ OPC_MoveChild0, ++/*198800*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*198803*/ OPC_CheckChild0Integer, 1, ++/*198805*/ OPC_CheckChild0Type, MVT::i32, ++/*198807*/ OPC_CheckChild1Integer, 1, ++/*198809*/ OPC_CheckChild1Type, MVT::i32, ++/*198811*/ OPC_CheckChild2Integer, 1, ++/*198813*/ OPC_CheckChild2Type, MVT::i32, ++/*198815*/ OPC_CheckChild3Integer, 1, ++/*198817*/ OPC_CheckChild3Type, MVT::i32, ++/*198819*/ OPC_CheckChild4Integer, 1, ++/*198821*/ OPC_CheckChild4Type, MVT::i32, ++/*198823*/ OPC_MoveChild5, ++/*198824*/ OPC_CheckInteger, 1, ++/*198826*/ OPC_CheckType, MVT::i32, ++/*198828*/ OPC_MoveParent, ++/*198829*/ OPC_MoveChild6, ++/*198830*/ OPC_CheckInteger, 1, ++/*198832*/ OPC_CheckType, MVT::i32, ++/*198834*/ OPC_MoveParent, ++/*198835*/ OPC_MoveChild7, ++/*198836*/ OPC_CheckInteger, 1, ++/*198838*/ OPC_CheckType, MVT::i32, ++/*198840*/ OPC_MoveParent, ++/*198841*/ OPC_MoveChild, 8, ++/*198843*/ OPC_CheckInteger, 1, ++/*198845*/ OPC_CheckType, MVT::i32, ++/*198847*/ OPC_MoveParent, ++/*198848*/ OPC_MoveChild, 9, ++/*198850*/ OPC_CheckInteger, 1, ++/*198852*/ OPC_CheckType, MVT::i32, ++/*198854*/ OPC_MoveParent, ++/*198855*/ OPC_MoveChild, 10, ++/*198857*/ OPC_CheckInteger, 1, ++/*198859*/ OPC_CheckType, MVT::i32, ++/*198861*/ OPC_MoveParent, ++/*198862*/ OPC_MoveChild, 11, ++/*198864*/ OPC_CheckInteger, 1, ++/*198866*/ OPC_CheckType, MVT::i32, ++/*198868*/ OPC_MoveParent, ++/*198869*/ OPC_MoveChild, 12, ++/*198871*/ OPC_CheckInteger, 1, ++/*198873*/ OPC_CheckType, MVT::i32, ++/*198875*/ OPC_MoveParent, ++/*198876*/ OPC_MoveChild, 13, ++/*198878*/ OPC_CheckInteger, 1, ++/*198880*/ OPC_CheckType, MVT::i32, ++/*198882*/ OPC_MoveParent, ++/*198883*/ OPC_MoveChild, 14, ++/*198885*/ OPC_CheckInteger, 1, ++/*198887*/ OPC_CheckType, MVT::i32, ++/*198889*/ OPC_MoveParent, ++/*198890*/ OPC_MoveChild, 15, ++/*198892*/ OPC_CheckInteger, 1, ++/*198894*/ OPC_CheckType, MVT::i32, ++/*198896*/ OPC_MoveParent, ++/*198897*/ OPC_MoveParent, ++/*198898*/ OPC_MoveChild1, ++/*198899*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*198902*/ OPC_Scope, 94|128,1/*222*/, /*->199127*/ // 2 children in Scope ++/*198905*/ OPC_CheckChild0Same, 1, ++/*198907*/ OPC_CheckChild1Same, 0, ++/*198909*/ OPC_MoveParent, ++/*198910*/ OPC_MoveParent, ++/*198911*/ OPC_MoveChild1, ++/*198912*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*198915*/ OPC_CheckChild0Integer, 7, ++/*198917*/ OPC_CheckChild0Type, MVT::i32, ++/*198919*/ OPC_CheckChild1Integer, 7, ++/*198921*/ OPC_CheckChild1Type, MVT::i32, ++/*198923*/ OPC_CheckChild2Integer, 7, ++/*198925*/ OPC_CheckChild2Type, MVT::i32, ++/*198927*/ OPC_CheckChild3Integer, 7, ++/*198929*/ OPC_CheckChild3Type, MVT::i32, ++/*198931*/ OPC_CheckChild4Integer, 7, ++/*198933*/ OPC_CheckChild4Type, MVT::i32, ++/*198935*/ OPC_MoveChild5, ++/*198936*/ OPC_CheckInteger, 7, ++/*198938*/ OPC_CheckType, MVT::i32, ++/*198940*/ OPC_MoveParent, ++/*198941*/ OPC_MoveChild6, ++/*198942*/ OPC_CheckInteger, 7, ++/*198944*/ OPC_CheckType, MVT::i32, ++/*198946*/ OPC_MoveParent, ++/*198947*/ OPC_MoveChild7, ++/*198948*/ OPC_CheckInteger, 7, ++/*198950*/ OPC_CheckType, MVT::i32, ++/*198952*/ OPC_MoveParent, ++/*198953*/ OPC_MoveChild, 8, ++/*198955*/ OPC_CheckInteger, 7, ++/*198957*/ OPC_CheckType, MVT::i32, ++/*198959*/ OPC_MoveParent, ++/*198960*/ OPC_MoveChild, 9, ++/*198962*/ OPC_CheckInteger, 7, ++/*198964*/ OPC_CheckType, MVT::i32, ++/*198966*/ OPC_MoveParent, ++/*198967*/ OPC_MoveChild, 10, ++/*198969*/ OPC_CheckInteger, 7, ++/*198971*/ OPC_CheckType, MVT::i32, ++/*198973*/ OPC_MoveParent, ++/*198974*/ OPC_MoveChild, 11, ++/*198976*/ OPC_CheckInteger, 7, ++/*198978*/ OPC_CheckType, MVT::i32, ++/*198980*/ OPC_MoveParent, ++/*198981*/ OPC_MoveChild, 12, ++/*198983*/ OPC_CheckInteger, 7, ++/*198985*/ OPC_CheckType, MVT::i32, ++/*198987*/ OPC_MoveParent, ++/*198988*/ OPC_MoveChild, 13, ++/*198990*/ OPC_CheckInteger, 7, ++/*198992*/ OPC_CheckType, MVT::i32, ++/*198994*/ OPC_MoveParent, ++/*198995*/ OPC_MoveChild, 14, ++/*198997*/ OPC_CheckInteger, 7, ++/*198999*/ OPC_CheckType, MVT::i32, ++/*199001*/ OPC_MoveParent, ++/*199002*/ OPC_MoveChild, 15, ++/*199004*/ OPC_CheckInteger, 7, ++/*199006*/ OPC_CheckType, MVT::i32, ++/*199008*/ OPC_MoveParent, ++/*199009*/ OPC_CheckType, MVT::v16i8, ++/*199011*/ OPC_MoveParent, ++/*199012*/ OPC_MoveParent, ++/*199013*/ OPC_MoveParent, ++/*199014*/ OPC_MoveChild1, ++/*199015*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*199018*/ OPC_CheckChild0Integer, 1, ++/*199020*/ OPC_CheckChild0Type, MVT::i32, ++/*199022*/ OPC_CheckChild1Integer, 1, ++/*199024*/ OPC_CheckChild1Type, MVT::i32, ++/*199026*/ OPC_CheckChild2Integer, 1, ++/*199028*/ OPC_CheckChild2Type, MVT::i32, ++/*199030*/ OPC_CheckChild3Integer, 1, ++/*199032*/ OPC_CheckChild3Type, MVT::i32, ++/*199034*/ OPC_CheckChild4Integer, 1, ++/*199036*/ OPC_CheckChild4Type, MVT::i32, ++/*199038*/ OPC_MoveChild5, ++/*199039*/ OPC_CheckInteger, 1, ++/*199041*/ OPC_CheckType, MVT::i32, ++/*199043*/ OPC_MoveParent, ++/*199044*/ OPC_MoveChild6, ++/*199045*/ OPC_CheckInteger, 1, ++/*199047*/ OPC_CheckType, MVT::i32, ++/*199049*/ OPC_MoveParent, ++/*199050*/ OPC_MoveChild7, ++/*199051*/ OPC_CheckInteger, 1, ++/*199053*/ OPC_CheckType, MVT::i32, ++/*199055*/ OPC_MoveParent, ++/*199056*/ OPC_MoveChild, 8, ++/*199058*/ OPC_CheckInteger, 1, ++/*199060*/ OPC_CheckType, MVT::i32, ++/*199062*/ OPC_MoveParent, ++/*199063*/ OPC_MoveChild, 9, ++/*199065*/ OPC_CheckInteger, 1, ++/*199067*/ OPC_CheckType, MVT::i32, ++/*199069*/ OPC_MoveParent, ++/*199070*/ OPC_MoveChild, 10, ++/*199072*/ OPC_CheckInteger, 1, ++/*199074*/ OPC_CheckType, MVT::i32, ++/*199076*/ OPC_MoveParent, ++/*199077*/ OPC_MoveChild, 11, ++/*199079*/ OPC_CheckInteger, 1, ++/*199081*/ OPC_CheckType, MVT::i32, ++/*199083*/ OPC_MoveParent, ++/*199084*/ OPC_MoveChild, 12, ++/*199086*/ OPC_CheckInteger, 1, ++/*199088*/ OPC_CheckType, MVT::i32, ++/*199090*/ OPC_MoveParent, ++/*199091*/ OPC_MoveChild, 13, ++/*199093*/ OPC_CheckInteger, 1, ++/*199095*/ OPC_CheckType, MVT::i32, ++/*199097*/ OPC_MoveParent, ++/*199098*/ OPC_MoveChild, 14, ++/*199100*/ OPC_CheckInteger, 1, ++/*199102*/ OPC_CheckType, MVT::i32, ++/*199104*/ OPC_MoveParent, ++/*199105*/ OPC_MoveChild, 15, ++/*199107*/ OPC_CheckInteger, 1, ++/*199109*/ OPC_CheckType, MVT::i32, ++/*199111*/ OPC_MoveParent, ++/*199112*/ OPC_CheckType, MVT::v16i8, ++/*199114*/ OPC_MoveParent, ++/*199115*/ OPC_CheckType, MVT::v16i8, ++/*199117*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*199119*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*199127*/ /*Scope*/ 94|128,1/*222*/, /*->199351*/ ++/*199129*/ OPC_CheckChild0Same, 0, ++/*199131*/ OPC_CheckChild1Same, 1, ++/*199133*/ OPC_MoveParent, ++/*199134*/ OPC_MoveParent, ++/*199135*/ OPC_MoveChild1, ++/*199136*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*199139*/ OPC_CheckChild0Integer, 7, ++/*199141*/ OPC_CheckChild0Type, MVT::i32, ++/*199143*/ OPC_CheckChild1Integer, 7, ++/*199145*/ OPC_CheckChild1Type, MVT::i32, ++/*199147*/ OPC_CheckChild2Integer, 7, ++/*199149*/ OPC_CheckChild2Type, MVT::i32, ++/*199151*/ OPC_CheckChild3Integer, 7, ++/*199153*/ OPC_CheckChild3Type, MVT::i32, ++/*199155*/ OPC_CheckChild4Integer, 7, ++/*199157*/ OPC_CheckChild4Type, MVT::i32, ++/*199159*/ OPC_MoveChild5, ++/*199160*/ OPC_CheckInteger, 7, ++/*199162*/ OPC_CheckType, MVT::i32, ++/*199164*/ OPC_MoveParent, ++/*199165*/ OPC_MoveChild6, ++/*199166*/ OPC_CheckInteger, 7, ++/*199168*/ OPC_CheckType, MVT::i32, ++/*199170*/ OPC_MoveParent, ++/*199171*/ OPC_MoveChild7, ++/*199172*/ OPC_CheckInteger, 7, ++/*199174*/ OPC_CheckType, MVT::i32, ++/*199176*/ OPC_MoveParent, ++/*199177*/ OPC_MoveChild, 8, ++/*199179*/ OPC_CheckInteger, 7, ++/*199181*/ OPC_CheckType, MVT::i32, ++/*199183*/ OPC_MoveParent, ++/*199184*/ OPC_MoveChild, 9, ++/*199186*/ OPC_CheckInteger, 7, ++/*199188*/ OPC_CheckType, MVT::i32, ++/*199190*/ OPC_MoveParent, ++/*199191*/ OPC_MoveChild, 10, ++/*199193*/ OPC_CheckInteger, 7, ++/*199195*/ OPC_CheckType, MVT::i32, ++/*199197*/ OPC_MoveParent, ++/*199198*/ OPC_MoveChild, 11, ++/*199200*/ OPC_CheckInteger, 7, ++/*199202*/ OPC_CheckType, MVT::i32, ++/*199204*/ OPC_MoveParent, ++/*199205*/ OPC_MoveChild, 12, ++/*199207*/ OPC_CheckInteger, 7, ++/*199209*/ OPC_CheckType, MVT::i32, ++/*199211*/ OPC_MoveParent, ++/*199212*/ OPC_MoveChild, 13, ++/*199214*/ OPC_CheckInteger, 7, ++/*199216*/ OPC_CheckType, MVT::i32, ++/*199218*/ OPC_MoveParent, ++/*199219*/ OPC_MoveChild, 14, ++/*199221*/ OPC_CheckInteger, 7, ++/*199223*/ OPC_CheckType, MVT::i32, ++/*199225*/ OPC_MoveParent, ++/*199226*/ OPC_MoveChild, 15, ++/*199228*/ OPC_CheckInteger, 7, ++/*199230*/ OPC_CheckType, MVT::i32, ++/*199232*/ OPC_MoveParent, ++/*199233*/ OPC_CheckType, MVT::v16i8, ++/*199235*/ OPC_MoveParent, ++/*199236*/ OPC_MoveParent, ++/*199237*/ OPC_MoveParent, ++/*199238*/ OPC_MoveChild1, ++/*199239*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*199242*/ OPC_CheckChild0Integer, 1, ++/*199244*/ OPC_CheckChild0Type, MVT::i32, ++/*199246*/ OPC_CheckChild1Integer, 1, ++/*199248*/ OPC_CheckChild1Type, MVT::i32, ++/*199250*/ OPC_CheckChild2Integer, 1, ++/*199252*/ OPC_CheckChild2Type, MVT::i32, ++/*199254*/ OPC_CheckChild3Integer, 1, ++/*199256*/ OPC_CheckChild3Type, MVT::i32, ++/*199258*/ OPC_CheckChild4Integer, 1, ++/*199260*/ OPC_CheckChild4Type, MVT::i32, ++/*199262*/ OPC_MoveChild5, ++/*199263*/ OPC_CheckInteger, 1, ++/*199265*/ OPC_CheckType, MVT::i32, ++/*199267*/ OPC_MoveParent, ++/*199268*/ OPC_MoveChild6, ++/*199269*/ OPC_CheckInteger, 1, ++/*199271*/ OPC_CheckType, MVT::i32, ++/*199273*/ OPC_MoveParent, ++/*199274*/ OPC_MoveChild7, ++/*199275*/ OPC_CheckInteger, 1, ++/*199277*/ OPC_CheckType, MVT::i32, ++/*199279*/ OPC_MoveParent, ++/*199280*/ OPC_MoveChild, 8, ++/*199282*/ OPC_CheckInteger, 1, ++/*199284*/ OPC_CheckType, MVT::i32, ++/*199286*/ OPC_MoveParent, ++/*199287*/ OPC_MoveChild, 9, ++/*199289*/ OPC_CheckInteger, 1, ++/*199291*/ OPC_CheckType, MVT::i32, ++/*199293*/ OPC_MoveParent, ++/*199294*/ OPC_MoveChild, 10, ++/*199296*/ OPC_CheckInteger, 1, ++/*199298*/ OPC_CheckType, MVT::i32, ++/*199300*/ OPC_MoveParent, ++/*199301*/ OPC_MoveChild, 11, ++/*199303*/ OPC_CheckInteger, 1, ++/*199305*/ OPC_CheckType, MVT::i32, ++/*199307*/ OPC_MoveParent, ++/*199308*/ OPC_MoveChild, 12, ++/*199310*/ OPC_CheckInteger, 1, ++/*199312*/ OPC_CheckType, MVT::i32, ++/*199314*/ OPC_MoveParent, ++/*199315*/ OPC_MoveChild, 13, ++/*199317*/ OPC_CheckInteger, 1, ++/*199319*/ OPC_CheckType, MVT::i32, ++/*199321*/ OPC_MoveParent, ++/*199322*/ OPC_MoveChild, 14, ++/*199324*/ OPC_CheckInteger, 1, ++/*199326*/ OPC_CheckType, MVT::i32, ++/*199328*/ OPC_MoveParent, ++/*199329*/ OPC_MoveChild, 15, ++/*199331*/ OPC_CheckInteger, 1, ++/*199333*/ OPC_CheckType, MVT::i32, ++/*199335*/ OPC_MoveParent, ++/*199336*/ OPC_CheckType, MVT::v16i8, ++/*199338*/ OPC_MoveParent, ++/*199339*/ OPC_CheckType, MVT::v16i8, ++/*199341*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*199343*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*199351*/ 0, /*End of Scope*/ ++/*199352*/ 0, /*End of Scope*/ ++/*199353*/ 0, /*End of Scope*/ ++/*199354*/ 0, /*End of Scope*/ ++/*199355*/ 0, // EndSwitchOpcode ++/*199356*/ /*Scope*/ 67|128,122/*15683*/, /*->215041*/ ++/*199358*/ OPC_RecordChild0, // #0 = $b ++/*199359*/ OPC_MoveChild1, ++/*199360*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*199363*/ OPC_Scope, 77|128,30/*3917*/, /*->203283*/ // 4 children in Scope ++/*199366*/ OPC_MoveChild0, ++/*199367*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*199370*/ OPC_CheckChild0Integer, 1, ++/*199372*/ OPC_CheckChild0Type, MVT::i32, ++/*199374*/ OPC_CheckChild1Integer, 1, ++/*199376*/ OPC_CheckChild1Type, MVT::i32, ++/*199378*/ OPC_CheckChild2Integer, 1, ++/*199380*/ OPC_CheckChild2Type, MVT::i32, ++/*199382*/ OPC_CheckChild3Integer, 1, ++/*199384*/ OPC_CheckChild3Type, MVT::i32, ++/*199386*/ OPC_CheckChild4Integer, 1, ++/*199388*/ OPC_CheckChild4Type, MVT::i32, ++/*199390*/ OPC_MoveChild5, ++/*199391*/ OPC_CheckInteger, 1, ++/*199393*/ OPC_CheckType, MVT::i32, ++/*199395*/ OPC_MoveParent, ++/*199396*/ OPC_MoveChild6, ++/*199397*/ OPC_CheckInteger, 1, ++/*199399*/ OPC_CheckType, MVT::i32, ++/*199401*/ OPC_MoveParent, ++/*199402*/ OPC_MoveChild7, ++/*199403*/ OPC_CheckInteger, 1, ++/*199405*/ OPC_CheckType, MVT::i32, ++/*199407*/ OPC_MoveParent, ++/*199408*/ OPC_MoveChild, 8, ++/*199410*/ OPC_CheckInteger, 1, ++/*199412*/ OPC_CheckType, MVT::i32, ++/*199414*/ OPC_MoveParent, ++/*199415*/ OPC_MoveChild, 9, ++/*199417*/ OPC_CheckInteger, 1, ++/*199419*/ OPC_CheckType, MVT::i32, ++/*199421*/ OPC_MoveParent, ++/*199422*/ OPC_MoveChild, 10, ++/*199424*/ OPC_CheckInteger, 1, ++/*199426*/ OPC_CheckType, MVT::i32, ++/*199428*/ OPC_MoveParent, ++/*199429*/ OPC_MoveChild, 11, ++/*199431*/ OPC_CheckInteger, 1, ++/*199433*/ OPC_CheckType, MVT::i32, ++/*199435*/ OPC_MoveParent, ++/*199436*/ OPC_MoveChild, 12, ++/*199438*/ OPC_CheckInteger, 1, ++/*199440*/ OPC_CheckType, MVT::i32, ++/*199442*/ OPC_MoveParent, ++/*199443*/ OPC_MoveChild, 13, ++/*199445*/ OPC_CheckInteger, 1, ++/*199447*/ OPC_CheckType, MVT::i32, ++/*199449*/ OPC_MoveParent, ++/*199450*/ OPC_MoveChild, 14, ++/*199452*/ OPC_CheckInteger, 1, ++/*199454*/ OPC_CheckType, MVT::i32, ++/*199456*/ OPC_MoveParent, ++/*199457*/ OPC_MoveChild, 15, ++/*199459*/ OPC_CheckInteger, 1, ++/*199461*/ OPC_CheckType, MVT::i32, ++/*199463*/ OPC_MoveParent, ++/*199464*/ OPC_MoveParent, ++/*199465*/ OPC_RecordChild1, // #1 = $a ++/*199466*/ OPC_MoveParent, ++/*199467*/ OPC_MoveParent, ++/*199468*/ OPC_MoveChild1, ++/*199469*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*199472*/ OPC_MoveChild0, ++/*199473*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*199476*/ OPC_Scope, 24|128,15/*1944*/, /*->201423*/ // 4 children in Scope ++/*199479*/ OPC_MoveChild0, ++/*199480*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*199483*/ OPC_Scope, 65|128,2/*321*/, /*->199807*/ // 6 children in Scope ++/*199486*/ OPC_MoveChild0, ++/*199487*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*199490*/ OPC_CheckChild0Integer, 1, ++/*199492*/ OPC_CheckChild0Type, MVT::i32, ++/*199494*/ OPC_CheckChild1Integer, 1, ++/*199496*/ OPC_CheckChild1Type, MVT::i32, ++/*199498*/ OPC_CheckChild2Integer, 1, ++/*199500*/ OPC_CheckChild2Type, MVT::i32, ++/*199502*/ OPC_CheckChild3Integer, 1, ++/*199504*/ OPC_CheckChild3Type, MVT::i32, ++/*199506*/ OPC_CheckChild4Integer, 1, ++/*199508*/ OPC_CheckChild4Type, MVT::i32, ++/*199510*/ OPC_MoveChild5, ++/*199511*/ OPC_CheckInteger, 1, ++/*199513*/ OPC_CheckType, MVT::i32, ++/*199515*/ OPC_MoveParent, ++/*199516*/ OPC_MoveChild6, ++/*199517*/ OPC_CheckInteger, 1, ++/*199519*/ OPC_CheckType, MVT::i32, ++/*199521*/ OPC_MoveParent, ++/*199522*/ OPC_MoveChild7, ++/*199523*/ OPC_CheckInteger, 1, ++/*199525*/ OPC_CheckType, MVT::i32, ++/*199527*/ OPC_MoveParent, ++/*199528*/ OPC_MoveChild, 8, ++/*199530*/ OPC_CheckInteger, 1, ++/*199532*/ OPC_CheckType, MVT::i32, ++/*199534*/ OPC_MoveParent, ++/*199535*/ OPC_MoveChild, 9, ++/*199537*/ OPC_CheckInteger, 1, ++/*199539*/ OPC_CheckType, MVT::i32, ++/*199541*/ OPC_MoveParent, ++/*199542*/ OPC_MoveChild, 10, ++/*199544*/ OPC_CheckInteger, 1, ++/*199546*/ OPC_CheckType, MVT::i32, ++/*199548*/ OPC_MoveParent, ++/*199549*/ OPC_MoveChild, 11, ++/*199551*/ OPC_CheckInteger, 1, ++/*199553*/ OPC_CheckType, MVT::i32, ++/*199555*/ OPC_MoveParent, ++/*199556*/ OPC_MoveChild, 12, ++/*199558*/ OPC_CheckInteger, 1, ++/*199560*/ OPC_CheckType, MVT::i32, ++/*199562*/ OPC_MoveParent, ++/*199563*/ OPC_MoveChild, 13, ++/*199565*/ OPC_CheckInteger, 1, ++/*199567*/ OPC_CheckType, MVT::i32, ++/*199569*/ OPC_MoveParent, ++/*199570*/ OPC_MoveChild, 14, ++/*199572*/ OPC_CheckInteger, 1, ++/*199574*/ OPC_CheckType, MVT::i32, ++/*199576*/ OPC_MoveParent, ++/*199577*/ OPC_MoveChild, 15, ++/*199579*/ OPC_CheckInteger, 1, ++/*199581*/ OPC_CheckType, MVT::i32, ++/*199583*/ OPC_MoveParent, ++/*199584*/ OPC_MoveParent, ++/*199585*/ OPC_CheckChild1Same, 1, ++/*199587*/ OPC_MoveParent, ++/*199588*/ OPC_CheckChild1Same, 0, ++/*199590*/ OPC_MoveParent, ++/*199591*/ OPC_MoveChild1, ++/*199592*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*199595*/ OPC_CheckChild0Integer, 7, ++/*199597*/ OPC_CheckChild0Type, MVT::i32, ++/*199599*/ OPC_CheckChild1Integer, 7, ++/*199601*/ OPC_CheckChild1Type, MVT::i32, ++/*199603*/ OPC_CheckChild2Integer, 7, ++/*199605*/ OPC_CheckChild2Type, MVT::i32, ++/*199607*/ OPC_CheckChild3Integer, 7, ++/*199609*/ OPC_CheckChild3Type, MVT::i32, ++/*199611*/ OPC_CheckChild4Integer, 7, ++/*199613*/ OPC_CheckChild4Type, MVT::i32, ++/*199615*/ OPC_MoveChild5, ++/*199616*/ OPC_CheckInteger, 7, ++/*199618*/ OPC_CheckType, MVT::i32, ++/*199620*/ OPC_MoveParent, ++/*199621*/ OPC_MoveChild6, ++/*199622*/ OPC_CheckInteger, 7, ++/*199624*/ OPC_CheckType, MVT::i32, ++/*199626*/ OPC_MoveParent, ++/*199627*/ OPC_MoveChild7, ++/*199628*/ OPC_CheckInteger, 7, ++/*199630*/ OPC_CheckType, MVT::i32, ++/*199632*/ OPC_MoveParent, ++/*199633*/ OPC_MoveChild, 8, ++/*199635*/ OPC_CheckInteger, 7, ++/*199637*/ OPC_CheckType, MVT::i32, ++/*199639*/ OPC_MoveParent, ++/*199640*/ OPC_MoveChild, 9, ++/*199642*/ OPC_CheckInteger, 7, ++/*199644*/ OPC_CheckType, MVT::i32, ++/*199646*/ OPC_MoveParent, ++/*199647*/ OPC_MoveChild, 10, ++/*199649*/ OPC_CheckInteger, 7, ++/*199651*/ OPC_CheckType, MVT::i32, ++/*199653*/ OPC_MoveParent, ++/*199654*/ OPC_MoveChild, 11, ++/*199656*/ OPC_CheckInteger, 7, ++/*199658*/ OPC_CheckType, MVT::i32, ++/*199660*/ OPC_MoveParent, ++/*199661*/ OPC_MoveChild, 12, ++/*199663*/ OPC_CheckInteger, 7, ++/*199665*/ OPC_CheckType, MVT::i32, ++/*199667*/ OPC_MoveParent, ++/*199668*/ OPC_MoveChild, 13, ++/*199670*/ OPC_CheckInteger, 7, ++/*199672*/ OPC_CheckType, MVT::i32, ++/*199674*/ OPC_MoveParent, ++/*199675*/ OPC_MoveChild, 14, ++/*199677*/ OPC_CheckInteger, 7, ++/*199679*/ OPC_CheckType, MVT::i32, ++/*199681*/ OPC_MoveParent, ++/*199682*/ OPC_MoveChild, 15, ++/*199684*/ OPC_CheckInteger, 7, ++/*199686*/ OPC_CheckType, MVT::i32, ++/*199688*/ OPC_MoveParent, ++/*199689*/ OPC_CheckType, MVT::v16i8, ++/*199691*/ OPC_MoveParent, ++/*199692*/ OPC_MoveParent, ++/*199693*/ OPC_MoveParent, ++/*199694*/ OPC_MoveChild1, ++/*199695*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*199698*/ OPC_CheckChild0Integer, 1, ++/*199700*/ OPC_CheckChild0Type, MVT::i32, ++/*199702*/ OPC_CheckChild1Integer, 1, ++/*199704*/ OPC_CheckChild1Type, MVT::i32, ++/*199706*/ OPC_CheckChild2Integer, 1, ++/*199708*/ OPC_CheckChild2Type, MVT::i32, ++/*199710*/ OPC_CheckChild3Integer, 1, ++/*199712*/ OPC_CheckChild3Type, MVT::i32, ++/*199714*/ OPC_CheckChild4Integer, 1, ++/*199716*/ OPC_CheckChild4Type, MVT::i32, ++/*199718*/ OPC_MoveChild5, ++/*199719*/ OPC_CheckInteger, 1, ++/*199721*/ OPC_CheckType, MVT::i32, ++/*199723*/ OPC_MoveParent, ++/*199724*/ OPC_MoveChild6, ++/*199725*/ OPC_CheckInteger, 1, ++/*199727*/ OPC_CheckType, MVT::i32, ++/*199729*/ OPC_MoveParent, ++/*199730*/ OPC_MoveChild7, ++/*199731*/ OPC_CheckInteger, 1, ++/*199733*/ OPC_CheckType, MVT::i32, ++/*199735*/ OPC_MoveParent, ++/*199736*/ OPC_MoveChild, 8, ++/*199738*/ OPC_CheckInteger, 1, ++/*199740*/ OPC_CheckType, MVT::i32, ++/*199742*/ OPC_MoveParent, ++/*199743*/ OPC_MoveChild, 9, ++/*199745*/ OPC_CheckInteger, 1, ++/*199747*/ OPC_CheckType, MVT::i32, ++/*199749*/ OPC_MoveParent, ++/*199750*/ OPC_MoveChild, 10, ++/*199752*/ OPC_CheckInteger, 1, ++/*199754*/ OPC_CheckType, MVT::i32, ++/*199756*/ OPC_MoveParent, ++/*199757*/ OPC_MoveChild, 11, ++/*199759*/ OPC_CheckInteger, 1, ++/*199761*/ OPC_CheckType, MVT::i32, ++/*199763*/ OPC_MoveParent, ++/*199764*/ OPC_MoveChild, 12, ++/*199766*/ OPC_CheckInteger, 1, ++/*199768*/ OPC_CheckType, MVT::i32, ++/*199770*/ OPC_MoveParent, ++/*199771*/ OPC_MoveChild, 13, ++/*199773*/ OPC_CheckInteger, 1, ++/*199775*/ OPC_CheckType, MVT::i32, ++/*199777*/ OPC_MoveParent, ++/*199778*/ OPC_MoveChild, 14, ++/*199780*/ OPC_CheckInteger, 1, ++/*199782*/ OPC_CheckType, MVT::i32, ++/*199784*/ OPC_MoveParent, ++/*199785*/ OPC_MoveChild, 15, ++/*199787*/ OPC_CheckInteger, 1, ++/*199789*/ OPC_CheckType, MVT::i32, ++/*199791*/ OPC_MoveParent, ++/*199792*/ OPC_CheckType, MVT::v16i8, ++/*199794*/ OPC_MoveParent, ++/*199795*/ OPC_CheckType, MVT::v16i8, ++/*199797*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*199799*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a)), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a), LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*199807*/ /*Scope*/ 65|128,2/*321*/, /*->200130*/ ++/*199809*/ OPC_CheckChild0Same, 1, ++/*199811*/ OPC_MoveChild1, ++/*199812*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*199815*/ OPC_CheckChild0Integer, 1, ++/*199817*/ OPC_CheckChild0Type, MVT::i32, ++/*199819*/ OPC_CheckChild1Integer, 1, ++/*199821*/ OPC_CheckChild1Type, MVT::i32, ++/*199823*/ OPC_CheckChild2Integer, 1, ++/*199825*/ OPC_CheckChild2Type, MVT::i32, ++/*199827*/ OPC_CheckChild3Integer, 1, ++/*199829*/ OPC_CheckChild3Type, MVT::i32, ++/*199831*/ OPC_CheckChild4Integer, 1, ++/*199833*/ OPC_CheckChild4Type, MVT::i32, ++/*199835*/ OPC_MoveChild5, ++/*199836*/ OPC_CheckInteger, 1, ++/*199838*/ OPC_CheckType, MVT::i32, ++/*199840*/ OPC_MoveParent, ++/*199841*/ OPC_MoveChild6, ++/*199842*/ OPC_CheckInteger, 1, ++/*199844*/ OPC_CheckType, MVT::i32, ++/*199846*/ OPC_MoveParent, ++/*199847*/ OPC_MoveChild7, ++/*199848*/ OPC_CheckInteger, 1, ++/*199850*/ OPC_CheckType, MVT::i32, ++/*199852*/ OPC_MoveParent, ++/*199853*/ OPC_MoveChild, 8, ++/*199855*/ OPC_CheckInteger, 1, ++/*199857*/ OPC_CheckType, MVT::i32, ++/*199859*/ OPC_MoveParent, ++/*199860*/ OPC_MoveChild, 9, ++/*199862*/ OPC_CheckInteger, 1, ++/*199864*/ OPC_CheckType, MVT::i32, ++/*199866*/ OPC_MoveParent, ++/*199867*/ OPC_MoveChild, 10, ++/*199869*/ OPC_CheckInteger, 1, ++/*199871*/ OPC_CheckType, MVT::i32, ++/*199873*/ OPC_MoveParent, ++/*199874*/ OPC_MoveChild, 11, ++/*199876*/ OPC_CheckInteger, 1, ++/*199878*/ OPC_CheckType, MVT::i32, ++/*199880*/ OPC_MoveParent, ++/*199881*/ OPC_MoveChild, 12, ++/*199883*/ OPC_CheckInteger, 1, ++/*199885*/ OPC_CheckType, MVT::i32, ++/*199887*/ OPC_MoveParent, ++/*199888*/ OPC_MoveChild, 13, ++/*199890*/ OPC_CheckInteger, 1, ++/*199892*/ OPC_CheckType, MVT::i32, ++/*199894*/ OPC_MoveParent, ++/*199895*/ OPC_MoveChild, 14, ++/*199897*/ OPC_CheckInteger, 1, ++/*199899*/ OPC_CheckType, MVT::i32, ++/*199901*/ OPC_MoveParent, ++/*199902*/ OPC_MoveChild, 15, ++/*199904*/ OPC_CheckInteger, 1, ++/*199906*/ OPC_CheckType, MVT::i32, ++/*199908*/ OPC_MoveParent, ++/*199909*/ OPC_MoveParent, ++/*199910*/ OPC_MoveParent, ++/*199911*/ OPC_CheckChild1Same, 0, ++/*199913*/ OPC_MoveParent, ++/*199914*/ OPC_MoveChild1, ++/*199915*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*199918*/ OPC_CheckChild0Integer, 7, ++/*199920*/ OPC_CheckChild0Type, MVT::i32, ++/*199922*/ OPC_CheckChild1Integer, 7, ++/*199924*/ OPC_CheckChild1Type, MVT::i32, ++/*199926*/ OPC_CheckChild2Integer, 7, ++/*199928*/ OPC_CheckChild2Type, MVT::i32, ++/*199930*/ OPC_CheckChild3Integer, 7, ++/*199932*/ OPC_CheckChild3Type, MVT::i32, ++/*199934*/ OPC_CheckChild4Integer, 7, ++/*199936*/ OPC_CheckChild4Type, MVT::i32, ++/*199938*/ OPC_MoveChild5, ++/*199939*/ OPC_CheckInteger, 7, ++/*199941*/ OPC_CheckType, MVT::i32, ++/*199943*/ OPC_MoveParent, ++/*199944*/ OPC_MoveChild6, ++/*199945*/ OPC_CheckInteger, 7, ++/*199947*/ OPC_CheckType, MVT::i32, ++/*199949*/ OPC_MoveParent, ++/*199950*/ OPC_MoveChild7, ++/*199951*/ OPC_CheckInteger, 7, ++/*199953*/ OPC_CheckType, MVT::i32, ++/*199955*/ OPC_MoveParent, ++/*199956*/ OPC_MoveChild, 8, ++/*199958*/ OPC_CheckInteger, 7, ++/*199960*/ OPC_CheckType, MVT::i32, ++/*199962*/ OPC_MoveParent, ++/*199963*/ OPC_MoveChild, 9, ++/*199965*/ OPC_CheckInteger, 7, ++/*199967*/ OPC_CheckType, MVT::i32, ++/*199969*/ OPC_MoveParent, ++/*199970*/ OPC_MoveChild, 10, ++/*199972*/ OPC_CheckInteger, 7, ++/*199974*/ OPC_CheckType, MVT::i32, ++/*199976*/ OPC_MoveParent, ++/*199977*/ OPC_MoveChild, 11, ++/*199979*/ OPC_CheckInteger, 7, ++/*199981*/ OPC_CheckType, MVT::i32, ++/*199983*/ OPC_MoveParent, ++/*199984*/ OPC_MoveChild, 12, ++/*199986*/ OPC_CheckInteger, 7, ++/*199988*/ OPC_CheckType, MVT::i32, ++/*199990*/ OPC_MoveParent, ++/*199991*/ OPC_MoveChild, 13, ++/*199993*/ OPC_CheckInteger, 7, ++/*199995*/ OPC_CheckType, MVT::i32, ++/*199997*/ OPC_MoveParent, ++/*199998*/ OPC_MoveChild, 14, ++/*200000*/ OPC_CheckInteger, 7, ++/*200002*/ OPC_CheckType, MVT::i32, ++/*200004*/ OPC_MoveParent, ++/*200005*/ OPC_MoveChild, 15, ++/*200007*/ OPC_CheckInteger, 7, ++/*200009*/ OPC_CheckType, MVT::i32, ++/*200011*/ OPC_MoveParent, ++/*200012*/ OPC_CheckType, MVT::v16i8, ++/*200014*/ OPC_MoveParent, ++/*200015*/ OPC_MoveParent, ++/*200016*/ OPC_MoveParent, ++/*200017*/ OPC_MoveChild1, ++/*200018*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*200021*/ OPC_CheckChild0Integer, 1, ++/*200023*/ OPC_CheckChild0Type, MVT::i32, ++/*200025*/ OPC_CheckChild1Integer, 1, ++/*200027*/ OPC_CheckChild1Type, MVT::i32, ++/*200029*/ OPC_CheckChild2Integer, 1, ++/*200031*/ OPC_CheckChild2Type, MVT::i32, ++/*200033*/ OPC_CheckChild3Integer, 1, ++/*200035*/ OPC_CheckChild3Type, MVT::i32, ++/*200037*/ OPC_CheckChild4Integer, 1, ++/*200039*/ OPC_CheckChild4Type, MVT::i32, ++/*200041*/ OPC_MoveChild5, ++/*200042*/ OPC_CheckInteger, 1, ++/*200044*/ OPC_CheckType, MVT::i32, ++/*200046*/ OPC_MoveParent, ++/*200047*/ OPC_MoveChild6, ++/*200048*/ OPC_CheckInteger, 1, ++/*200050*/ OPC_CheckType, MVT::i32, ++/*200052*/ OPC_MoveParent, ++/*200053*/ OPC_MoveChild7, ++/*200054*/ OPC_CheckInteger, 1, ++/*200056*/ OPC_CheckType, MVT::i32, ++/*200058*/ OPC_MoveParent, ++/*200059*/ OPC_MoveChild, 8, ++/*200061*/ OPC_CheckInteger, 1, ++/*200063*/ OPC_CheckType, MVT::i32, ++/*200065*/ OPC_MoveParent, ++/*200066*/ OPC_MoveChild, 9, ++/*200068*/ OPC_CheckInteger, 1, ++/*200070*/ OPC_CheckType, MVT::i32, ++/*200072*/ OPC_MoveParent, ++/*200073*/ OPC_MoveChild, 10, ++/*200075*/ OPC_CheckInteger, 1, ++/*200077*/ OPC_CheckType, MVT::i32, ++/*200079*/ OPC_MoveParent, ++/*200080*/ OPC_MoveChild, 11, ++/*200082*/ OPC_CheckInteger, 1, ++/*200084*/ OPC_CheckType, MVT::i32, ++/*200086*/ OPC_MoveParent, ++/*200087*/ OPC_MoveChild, 12, ++/*200089*/ OPC_CheckInteger, 1, ++/*200091*/ OPC_CheckType, MVT::i32, ++/*200093*/ OPC_MoveParent, ++/*200094*/ OPC_MoveChild, 13, ++/*200096*/ OPC_CheckInteger, 1, ++/*200098*/ OPC_CheckType, MVT::i32, ++/*200100*/ OPC_MoveParent, ++/*200101*/ OPC_MoveChild, 14, ++/*200103*/ OPC_CheckInteger, 1, ++/*200105*/ OPC_CheckType, MVT::i32, ++/*200107*/ OPC_MoveParent, ++/*200108*/ OPC_MoveChild, 15, ++/*200110*/ OPC_CheckInteger, 1, ++/*200112*/ OPC_CheckType, MVT::i32, ++/*200114*/ OPC_MoveParent, ++/*200115*/ OPC_CheckType, MVT::v16i8, ++/*200117*/ OPC_MoveParent, ++/*200118*/ OPC_CheckType, MVT::v16i8, ++/*200120*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*200122*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a)), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*200130*/ /*Scope*/ 65|128,2/*321*/, /*->200453*/ ++/*200132*/ OPC_MoveChild0, ++/*200133*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*200136*/ OPC_CheckChild0Integer, 1, ++/*200138*/ OPC_CheckChild0Type, MVT::i32, ++/*200140*/ OPC_CheckChild1Integer, 1, ++/*200142*/ OPC_CheckChild1Type, MVT::i32, ++/*200144*/ OPC_CheckChild2Integer, 1, ++/*200146*/ OPC_CheckChild2Type, MVT::i32, ++/*200148*/ OPC_CheckChild3Integer, 1, ++/*200150*/ OPC_CheckChild3Type, MVT::i32, ++/*200152*/ OPC_CheckChild4Integer, 1, ++/*200154*/ OPC_CheckChild4Type, MVT::i32, ++/*200156*/ OPC_MoveChild5, ++/*200157*/ OPC_CheckInteger, 1, ++/*200159*/ OPC_CheckType, MVT::i32, ++/*200161*/ OPC_MoveParent, ++/*200162*/ OPC_MoveChild6, ++/*200163*/ OPC_CheckInteger, 1, ++/*200165*/ OPC_CheckType, MVT::i32, ++/*200167*/ OPC_MoveParent, ++/*200168*/ OPC_MoveChild7, ++/*200169*/ OPC_CheckInteger, 1, ++/*200171*/ OPC_CheckType, MVT::i32, ++/*200173*/ OPC_MoveParent, ++/*200174*/ OPC_MoveChild, 8, ++/*200176*/ OPC_CheckInteger, 1, ++/*200178*/ OPC_CheckType, MVT::i32, ++/*200180*/ OPC_MoveParent, ++/*200181*/ OPC_MoveChild, 9, ++/*200183*/ OPC_CheckInteger, 1, ++/*200185*/ OPC_CheckType, MVT::i32, ++/*200187*/ OPC_MoveParent, ++/*200188*/ OPC_MoveChild, 10, ++/*200190*/ OPC_CheckInteger, 1, ++/*200192*/ OPC_CheckType, MVT::i32, ++/*200194*/ OPC_MoveParent, ++/*200195*/ OPC_MoveChild, 11, ++/*200197*/ OPC_CheckInteger, 1, ++/*200199*/ OPC_CheckType, MVT::i32, ++/*200201*/ OPC_MoveParent, ++/*200202*/ OPC_MoveChild, 12, ++/*200204*/ OPC_CheckInteger, 1, ++/*200206*/ OPC_CheckType, MVT::i32, ++/*200208*/ OPC_MoveParent, ++/*200209*/ OPC_MoveChild, 13, ++/*200211*/ OPC_CheckInteger, 1, ++/*200213*/ OPC_CheckType, MVT::i32, ++/*200215*/ OPC_MoveParent, ++/*200216*/ OPC_MoveChild, 14, ++/*200218*/ OPC_CheckInteger, 1, ++/*200220*/ OPC_CheckType, MVT::i32, ++/*200222*/ OPC_MoveParent, ++/*200223*/ OPC_MoveChild, 15, ++/*200225*/ OPC_CheckInteger, 1, ++/*200227*/ OPC_CheckType, MVT::i32, ++/*200229*/ OPC_MoveParent, ++/*200230*/ OPC_MoveParent, ++/*200231*/ OPC_CheckChild1Same, 0, ++/*200233*/ OPC_MoveParent, ++/*200234*/ OPC_CheckChild1Same, 1, ++/*200236*/ OPC_MoveParent, ++/*200237*/ OPC_MoveChild1, ++/*200238*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*200241*/ OPC_CheckChild0Integer, 7, ++/*200243*/ OPC_CheckChild0Type, MVT::i32, ++/*200245*/ OPC_CheckChild1Integer, 7, ++/*200247*/ OPC_CheckChild1Type, MVT::i32, ++/*200249*/ OPC_CheckChild2Integer, 7, ++/*200251*/ OPC_CheckChild2Type, MVT::i32, ++/*200253*/ OPC_CheckChild3Integer, 7, ++/*200255*/ OPC_CheckChild3Type, MVT::i32, ++/*200257*/ OPC_CheckChild4Integer, 7, ++/*200259*/ OPC_CheckChild4Type, MVT::i32, ++/*200261*/ OPC_MoveChild5, ++/*200262*/ OPC_CheckInteger, 7, ++/*200264*/ OPC_CheckType, MVT::i32, ++/*200266*/ OPC_MoveParent, ++/*200267*/ OPC_MoveChild6, ++/*200268*/ OPC_CheckInteger, 7, ++/*200270*/ OPC_CheckType, MVT::i32, ++/*200272*/ OPC_MoveParent, ++/*200273*/ OPC_MoveChild7, ++/*200274*/ OPC_CheckInteger, 7, ++/*200276*/ OPC_CheckType, MVT::i32, ++/*200278*/ OPC_MoveParent, ++/*200279*/ OPC_MoveChild, 8, ++/*200281*/ OPC_CheckInteger, 7, ++/*200283*/ OPC_CheckType, MVT::i32, ++/*200285*/ OPC_MoveParent, ++/*200286*/ OPC_MoveChild, 9, ++/*200288*/ OPC_CheckInteger, 7, ++/*200290*/ OPC_CheckType, MVT::i32, ++/*200292*/ OPC_MoveParent, ++/*200293*/ OPC_MoveChild, 10, ++/*200295*/ OPC_CheckInteger, 7, ++/*200297*/ OPC_CheckType, MVT::i32, ++/*200299*/ OPC_MoveParent, ++/*200300*/ OPC_MoveChild, 11, ++/*200302*/ OPC_CheckInteger, 7, ++/*200304*/ OPC_CheckType, MVT::i32, ++/*200306*/ OPC_MoveParent, ++/*200307*/ OPC_MoveChild, 12, ++/*200309*/ OPC_CheckInteger, 7, ++/*200311*/ OPC_CheckType, MVT::i32, ++/*200313*/ OPC_MoveParent, ++/*200314*/ OPC_MoveChild, 13, ++/*200316*/ OPC_CheckInteger, 7, ++/*200318*/ OPC_CheckType, MVT::i32, ++/*200320*/ OPC_MoveParent, ++/*200321*/ OPC_MoveChild, 14, ++/*200323*/ OPC_CheckInteger, 7, ++/*200325*/ OPC_CheckType, MVT::i32, ++/*200327*/ OPC_MoveParent, ++/*200328*/ OPC_MoveChild, 15, ++/*200330*/ OPC_CheckInteger, 7, ++/*200332*/ OPC_CheckType, MVT::i32, ++/*200334*/ OPC_MoveParent, ++/*200335*/ OPC_CheckType, MVT::v16i8, ++/*200337*/ OPC_MoveParent, ++/*200338*/ OPC_MoveParent, ++/*200339*/ OPC_MoveParent, ++/*200340*/ OPC_MoveChild1, ++/*200341*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*200344*/ OPC_CheckChild0Integer, 1, ++/*200346*/ OPC_CheckChild0Type, MVT::i32, ++/*200348*/ OPC_CheckChild1Integer, 1, ++/*200350*/ OPC_CheckChild1Type, MVT::i32, ++/*200352*/ OPC_CheckChild2Integer, 1, ++/*200354*/ OPC_CheckChild2Type, MVT::i32, ++/*200356*/ OPC_CheckChild3Integer, 1, ++/*200358*/ OPC_CheckChild3Type, MVT::i32, ++/*200360*/ OPC_CheckChild4Integer, 1, ++/*200362*/ OPC_CheckChild4Type, MVT::i32, ++/*200364*/ OPC_MoveChild5, ++/*200365*/ OPC_CheckInteger, 1, ++/*200367*/ OPC_CheckType, MVT::i32, ++/*200369*/ OPC_MoveParent, ++/*200370*/ OPC_MoveChild6, ++/*200371*/ OPC_CheckInteger, 1, ++/*200373*/ OPC_CheckType, MVT::i32, ++/*200375*/ OPC_MoveParent, ++/*200376*/ OPC_MoveChild7, ++/*200377*/ OPC_CheckInteger, 1, ++/*200379*/ OPC_CheckType, MVT::i32, ++/*200381*/ OPC_MoveParent, ++/*200382*/ OPC_MoveChild, 8, ++/*200384*/ OPC_CheckInteger, 1, ++/*200386*/ OPC_CheckType, MVT::i32, ++/*200388*/ OPC_MoveParent, ++/*200389*/ OPC_MoveChild, 9, ++/*200391*/ OPC_CheckInteger, 1, ++/*200393*/ OPC_CheckType, MVT::i32, ++/*200395*/ OPC_MoveParent, ++/*200396*/ OPC_MoveChild, 10, ++/*200398*/ OPC_CheckInteger, 1, ++/*200400*/ OPC_CheckType, MVT::i32, ++/*200402*/ OPC_MoveParent, ++/*200403*/ OPC_MoveChild, 11, ++/*200405*/ OPC_CheckInteger, 1, ++/*200407*/ OPC_CheckType, MVT::i32, ++/*200409*/ OPC_MoveParent, ++/*200410*/ OPC_MoveChild, 12, ++/*200412*/ OPC_CheckInteger, 1, ++/*200414*/ OPC_CheckType, MVT::i32, ++/*200416*/ OPC_MoveParent, ++/*200417*/ OPC_MoveChild, 13, ++/*200419*/ OPC_CheckInteger, 1, ++/*200421*/ OPC_CheckType, MVT::i32, ++/*200423*/ OPC_MoveParent, ++/*200424*/ OPC_MoveChild, 14, ++/*200426*/ OPC_CheckInteger, 1, ++/*200428*/ OPC_CheckType, MVT::i32, ++/*200430*/ OPC_MoveParent, ++/*200431*/ OPC_MoveChild, 15, ++/*200433*/ OPC_CheckInteger, 1, ++/*200435*/ OPC_CheckType, MVT::i32, ++/*200437*/ OPC_MoveParent, ++/*200438*/ OPC_CheckType, MVT::v16i8, ++/*200440*/ OPC_MoveParent, ++/*200441*/ OPC_CheckType, MVT::v16i8, ++/*200443*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*200445*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a)), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b), LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*200453*/ /*Scope*/ 65|128,2/*321*/, /*->200776*/ ++/*200455*/ OPC_CheckChild0Same, 0, ++/*200457*/ OPC_MoveChild1, ++/*200458*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*200461*/ OPC_CheckChild0Integer, 1, ++/*200463*/ OPC_CheckChild0Type, MVT::i32, ++/*200465*/ OPC_CheckChild1Integer, 1, ++/*200467*/ OPC_CheckChild1Type, MVT::i32, ++/*200469*/ OPC_CheckChild2Integer, 1, ++/*200471*/ OPC_CheckChild2Type, MVT::i32, ++/*200473*/ OPC_CheckChild3Integer, 1, ++/*200475*/ OPC_CheckChild3Type, MVT::i32, ++/*200477*/ OPC_CheckChild4Integer, 1, ++/*200479*/ OPC_CheckChild4Type, MVT::i32, ++/*200481*/ OPC_MoveChild5, ++/*200482*/ OPC_CheckInteger, 1, ++/*200484*/ OPC_CheckType, MVT::i32, ++/*200486*/ OPC_MoveParent, ++/*200487*/ OPC_MoveChild6, ++/*200488*/ OPC_CheckInteger, 1, ++/*200490*/ OPC_CheckType, MVT::i32, ++/*200492*/ OPC_MoveParent, ++/*200493*/ OPC_MoveChild7, ++/*200494*/ OPC_CheckInteger, 1, ++/*200496*/ OPC_CheckType, MVT::i32, ++/*200498*/ OPC_MoveParent, ++/*200499*/ OPC_MoveChild, 8, ++/*200501*/ OPC_CheckInteger, 1, ++/*200503*/ OPC_CheckType, MVT::i32, ++/*200505*/ OPC_MoveParent, ++/*200506*/ OPC_MoveChild, 9, ++/*200508*/ OPC_CheckInteger, 1, ++/*200510*/ OPC_CheckType, MVT::i32, ++/*200512*/ OPC_MoveParent, ++/*200513*/ OPC_MoveChild, 10, ++/*200515*/ OPC_CheckInteger, 1, ++/*200517*/ OPC_CheckType, MVT::i32, ++/*200519*/ OPC_MoveParent, ++/*200520*/ OPC_MoveChild, 11, ++/*200522*/ OPC_CheckInteger, 1, ++/*200524*/ OPC_CheckType, MVT::i32, ++/*200526*/ OPC_MoveParent, ++/*200527*/ OPC_MoveChild, 12, ++/*200529*/ OPC_CheckInteger, 1, ++/*200531*/ OPC_CheckType, MVT::i32, ++/*200533*/ OPC_MoveParent, ++/*200534*/ OPC_MoveChild, 13, ++/*200536*/ OPC_CheckInteger, 1, ++/*200538*/ OPC_CheckType, MVT::i32, ++/*200540*/ OPC_MoveParent, ++/*200541*/ OPC_MoveChild, 14, ++/*200543*/ OPC_CheckInteger, 1, ++/*200545*/ OPC_CheckType, MVT::i32, ++/*200547*/ OPC_MoveParent, ++/*200548*/ OPC_MoveChild, 15, ++/*200550*/ OPC_CheckInteger, 1, ++/*200552*/ OPC_CheckType, MVT::i32, ++/*200554*/ OPC_MoveParent, ++/*200555*/ OPC_MoveParent, ++/*200556*/ OPC_MoveParent, ++/*200557*/ OPC_CheckChild1Same, 1, ++/*200559*/ OPC_MoveParent, ++/*200560*/ OPC_MoveChild1, ++/*200561*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*200564*/ OPC_CheckChild0Integer, 7, ++/*200566*/ OPC_CheckChild0Type, MVT::i32, ++/*200568*/ OPC_CheckChild1Integer, 7, ++/*200570*/ OPC_CheckChild1Type, MVT::i32, ++/*200572*/ OPC_CheckChild2Integer, 7, ++/*200574*/ OPC_CheckChild2Type, MVT::i32, ++/*200576*/ OPC_CheckChild3Integer, 7, ++/*200578*/ OPC_CheckChild3Type, MVT::i32, ++/*200580*/ OPC_CheckChild4Integer, 7, ++/*200582*/ OPC_CheckChild4Type, MVT::i32, ++/*200584*/ OPC_MoveChild5, ++/*200585*/ OPC_CheckInteger, 7, ++/*200587*/ OPC_CheckType, MVT::i32, ++/*200589*/ OPC_MoveParent, ++/*200590*/ OPC_MoveChild6, ++/*200591*/ OPC_CheckInteger, 7, ++/*200593*/ OPC_CheckType, MVT::i32, ++/*200595*/ OPC_MoveParent, ++/*200596*/ OPC_MoveChild7, ++/*200597*/ OPC_CheckInteger, 7, ++/*200599*/ OPC_CheckType, MVT::i32, ++/*200601*/ OPC_MoveParent, ++/*200602*/ OPC_MoveChild, 8, ++/*200604*/ OPC_CheckInteger, 7, ++/*200606*/ OPC_CheckType, MVT::i32, ++/*200608*/ OPC_MoveParent, ++/*200609*/ OPC_MoveChild, 9, ++/*200611*/ OPC_CheckInteger, 7, ++/*200613*/ OPC_CheckType, MVT::i32, ++/*200615*/ OPC_MoveParent, ++/*200616*/ OPC_MoveChild, 10, ++/*200618*/ OPC_CheckInteger, 7, ++/*200620*/ OPC_CheckType, MVT::i32, ++/*200622*/ OPC_MoveParent, ++/*200623*/ OPC_MoveChild, 11, ++/*200625*/ OPC_CheckInteger, 7, ++/*200627*/ OPC_CheckType, MVT::i32, ++/*200629*/ OPC_MoveParent, ++/*200630*/ OPC_MoveChild, 12, ++/*200632*/ OPC_CheckInteger, 7, ++/*200634*/ OPC_CheckType, MVT::i32, ++/*200636*/ OPC_MoveParent, ++/*200637*/ OPC_MoveChild, 13, ++/*200639*/ OPC_CheckInteger, 7, ++/*200641*/ OPC_CheckType, MVT::i32, ++/*200643*/ OPC_MoveParent, ++/*200644*/ OPC_MoveChild, 14, ++/*200646*/ OPC_CheckInteger, 7, ++/*200648*/ OPC_CheckType, MVT::i32, ++/*200650*/ OPC_MoveParent, ++/*200651*/ OPC_MoveChild, 15, ++/*200653*/ OPC_CheckInteger, 7, ++/*200655*/ OPC_CheckType, MVT::i32, ++/*200657*/ OPC_MoveParent, ++/*200658*/ OPC_CheckType, MVT::v16i8, ++/*200660*/ OPC_MoveParent, ++/*200661*/ OPC_MoveParent, ++/*200662*/ OPC_MoveParent, ++/*200663*/ OPC_MoveChild1, ++/*200664*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*200667*/ OPC_CheckChild0Integer, 1, ++/*200669*/ OPC_CheckChild0Type, MVT::i32, ++/*200671*/ OPC_CheckChild1Integer, 1, ++/*200673*/ OPC_CheckChild1Type, MVT::i32, ++/*200675*/ OPC_CheckChild2Integer, 1, ++/*200677*/ OPC_CheckChild2Type, MVT::i32, ++/*200679*/ OPC_CheckChild3Integer, 1, ++/*200681*/ OPC_CheckChild3Type, MVT::i32, ++/*200683*/ OPC_CheckChild4Integer, 1, ++/*200685*/ OPC_CheckChild4Type, MVT::i32, ++/*200687*/ OPC_MoveChild5, ++/*200688*/ OPC_CheckInteger, 1, ++/*200690*/ OPC_CheckType, MVT::i32, ++/*200692*/ OPC_MoveParent, ++/*200693*/ OPC_MoveChild6, ++/*200694*/ OPC_CheckInteger, 1, ++/*200696*/ OPC_CheckType, MVT::i32, ++/*200698*/ OPC_MoveParent, ++/*200699*/ OPC_MoveChild7, ++/*200700*/ OPC_CheckInteger, 1, ++/*200702*/ OPC_CheckType, MVT::i32, ++/*200704*/ OPC_MoveParent, ++/*200705*/ OPC_MoveChild, 8, ++/*200707*/ OPC_CheckInteger, 1, ++/*200709*/ OPC_CheckType, MVT::i32, ++/*200711*/ OPC_MoveParent, ++/*200712*/ OPC_MoveChild, 9, ++/*200714*/ OPC_CheckInteger, 1, ++/*200716*/ OPC_CheckType, MVT::i32, ++/*200718*/ OPC_MoveParent, ++/*200719*/ OPC_MoveChild, 10, ++/*200721*/ OPC_CheckInteger, 1, ++/*200723*/ OPC_CheckType, MVT::i32, ++/*200725*/ OPC_MoveParent, ++/*200726*/ OPC_MoveChild, 11, ++/*200728*/ OPC_CheckInteger, 1, ++/*200730*/ OPC_CheckType, MVT::i32, ++/*200732*/ OPC_MoveParent, ++/*200733*/ OPC_MoveChild, 12, ++/*200735*/ OPC_CheckInteger, 1, ++/*200737*/ OPC_CheckType, MVT::i32, ++/*200739*/ OPC_MoveParent, ++/*200740*/ OPC_MoveChild, 13, ++/*200742*/ OPC_CheckInteger, 1, ++/*200744*/ OPC_CheckType, MVT::i32, ++/*200746*/ OPC_MoveParent, ++/*200747*/ OPC_MoveChild, 14, ++/*200749*/ OPC_CheckInteger, 1, ++/*200751*/ OPC_CheckType, MVT::i32, ++/*200753*/ OPC_MoveParent, ++/*200754*/ OPC_MoveChild, 15, ++/*200756*/ OPC_CheckInteger, 1, ++/*200758*/ OPC_CheckType, MVT::i32, ++/*200760*/ OPC_MoveParent, ++/*200761*/ OPC_CheckType, MVT::v16i8, ++/*200763*/ OPC_MoveParent, ++/*200764*/ OPC_CheckType, MVT::v16i8, ++/*200766*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*200768*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a)), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*200776*/ /*Scope*/ 65|128,2/*321*/, /*->201099*/ ++/*200778*/ OPC_CheckChild0Same, 1, ++/*200780*/ OPC_CheckChild1Same, 0, ++/*200782*/ OPC_MoveParent, ++/*200783*/ OPC_MoveChild1, ++/*200784*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*200787*/ OPC_CheckChild0Integer, 1, ++/*200789*/ OPC_CheckChild0Type, MVT::i32, ++/*200791*/ OPC_CheckChild1Integer, 1, ++/*200793*/ OPC_CheckChild1Type, MVT::i32, ++/*200795*/ OPC_CheckChild2Integer, 1, ++/*200797*/ OPC_CheckChild2Type, MVT::i32, ++/*200799*/ OPC_CheckChild3Integer, 1, ++/*200801*/ OPC_CheckChild3Type, MVT::i32, ++/*200803*/ OPC_CheckChild4Integer, 1, ++/*200805*/ OPC_CheckChild4Type, MVT::i32, ++/*200807*/ OPC_MoveChild5, ++/*200808*/ OPC_CheckInteger, 1, ++/*200810*/ OPC_CheckType, MVT::i32, ++/*200812*/ OPC_MoveParent, ++/*200813*/ OPC_MoveChild6, ++/*200814*/ OPC_CheckInteger, 1, ++/*200816*/ OPC_CheckType, MVT::i32, ++/*200818*/ OPC_MoveParent, ++/*200819*/ OPC_MoveChild7, ++/*200820*/ OPC_CheckInteger, 1, ++/*200822*/ OPC_CheckType, MVT::i32, ++/*200824*/ OPC_MoveParent, ++/*200825*/ OPC_MoveChild, 8, ++/*200827*/ OPC_CheckInteger, 1, ++/*200829*/ OPC_CheckType, MVT::i32, ++/*200831*/ OPC_MoveParent, ++/*200832*/ OPC_MoveChild, 9, ++/*200834*/ OPC_CheckInteger, 1, ++/*200836*/ OPC_CheckType, MVT::i32, ++/*200838*/ OPC_MoveParent, ++/*200839*/ OPC_MoveChild, 10, ++/*200841*/ OPC_CheckInteger, 1, ++/*200843*/ OPC_CheckType, MVT::i32, ++/*200845*/ OPC_MoveParent, ++/*200846*/ OPC_MoveChild, 11, ++/*200848*/ OPC_CheckInteger, 1, ++/*200850*/ OPC_CheckType, MVT::i32, ++/*200852*/ OPC_MoveParent, ++/*200853*/ OPC_MoveChild, 12, ++/*200855*/ OPC_CheckInteger, 1, ++/*200857*/ OPC_CheckType, MVT::i32, ++/*200859*/ OPC_MoveParent, ++/*200860*/ OPC_MoveChild, 13, ++/*200862*/ OPC_CheckInteger, 1, ++/*200864*/ OPC_CheckType, MVT::i32, ++/*200866*/ OPC_MoveParent, ++/*200867*/ OPC_MoveChild, 14, ++/*200869*/ OPC_CheckInteger, 1, ++/*200871*/ OPC_CheckType, MVT::i32, ++/*200873*/ OPC_MoveParent, ++/*200874*/ OPC_MoveChild, 15, ++/*200876*/ OPC_CheckInteger, 1, ++/*200878*/ OPC_CheckType, MVT::i32, ++/*200880*/ OPC_MoveParent, ++/*200881*/ OPC_MoveParent, ++/*200882*/ OPC_MoveParent, ++/*200883*/ OPC_MoveChild1, ++/*200884*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*200887*/ OPC_CheckChild0Integer, 7, ++/*200889*/ OPC_CheckChild0Type, MVT::i32, ++/*200891*/ OPC_CheckChild1Integer, 7, ++/*200893*/ OPC_CheckChild1Type, MVT::i32, ++/*200895*/ OPC_CheckChild2Integer, 7, ++/*200897*/ OPC_CheckChild2Type, MVT::i32, ++/*200899*/ OPC_CheckChild3Integer, 7, ++/*200901*/ OPC_CheckChild3Type, MVT::i32, ++/*200903*/ OPC_CheckChild4Integer, 7, ++/*200905*/ OPC_CheckChild4Type, MVT::i32, ++/*200907*/ OPC_MoveChild5, ++/*200908*/ OPC_CheckInteger, 7, ++/*200910*/ OPC_CheckType, MVT::i32, ++/*200912*/ OPC_MoveParent, ++/*200913*/ OPC_MoveChild6, ++/*200914*/ OPC_CheckInteger, 7, ++/*200916*/ OPC_CheckType, MVT::i32, ++/*200918*/ OPC_MoveParent, ++/*200919*/ OPC_MoveChild7, ++/*200920*/ OPC_CheckInteger, 7, ++/*200922*/ OPC_CheckType, MVT::i32, ++/*200924*/ OPC_MoveParent, ++/*200925*/ OPC_MoveChild, 8, ++/*200927*/ OPC_CheckInteger, 7, ++/*200929*/ OPC_CheckType, MVT::i32, ++/*200931*/ OPC_MoveParent, ++/*200932*/ OPC_MoveChild, 9, ++/*200934*/ OPC_CheckInteger, 7, ++/*200936*/ OPC_CheckType, MVT::i32, ++/*200938*/ OPC_MoveParent, ++/*200939*/ OPC_MoveChild, 10, ++/*200941*/ OPC_CheckInteger, 7, ++/*200943*/ OPC_CheckType, MVT::i32, ++/*200945*/ OPC_MoveParent, ++/*200946*/ OPC_MoveChild, 11, ++/*200948*/ OPC_CheckInteger, 7, ++/*200950*/ OPC_CheckType, MVT::i32, ++/*200952*/ OPC_MoveParent, ++/*200953*/ OPC_MoveChild, 12, ++/*200955*/ OPC_CheckInteger, 7, ++/*200957*/ OPC_CheckType, MVT::i32, ++/*200959*/ OPC_MoveParent, ++/*200960*/ OPC_MoveChild, 13, ++/*200962*/ OPC_CheckInteger, 7, ++/*200964*/ OPC_CheckType, MVT::i32, ++/*200966*/ OPC_MoveParent, ++/*200967*/ OPC_MoveChild, 14, ++/*200969*/ OPC_CheckInteger, 7, ++/*200971*/ OPC_CheckType, MVT::i32, ++/*200973*/ OPC_MoveParent, ++/*200974*/ OPC_MoveChild, 15, ++/*200976*/ OPC_CheckInteger, 7, ++/*200978*/ OPC_CheckType, MVT::i32, ++/*200980*/ OPC_MoveParent, ++/*200981*/ OPC_CheckType, MVT::v16i8, ++/*200983*/ OPC_MoveParent, ++/*200984*/ OPC_MoveParent, ++/*200985*/ OPC_MoveParent, ++/*200986*/ OPC_MoveChild1, ++/*200987*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*200990*/ OPC_CheckChild0Integer, 1, ++/*200992*/ OPC_CheckChild0Type, MVT::i32, ++/*200994*/ OPC_CheckChild1Integer, 1, ++/*200996*/ OPC_CheckChild1Type, MVT::i32, ++/*200998*/ OPC_CheckChild2Integer, 1, ++/*201000*/ OPC_CheckChild2Type, MVT::i32, ++/*201002*/ OPC_CheckChild3Integer, 1, ++/*201004*/ OPC_CheckChild3Type, MVT::i32, ++/*201006*/ OPC_CheckChild4Integer, 1, ++/*201008*/ OPC_CheckChild4Type, MVT::i32, ++/*201010*/ OPC_MoveChild5, ++/*201011*/ OPC_CheckInteger, 1, ++/*201013*/ OPC_CheckType, MVT::i32, ++/*201015*/ OPC_MoveParent, ++/*201016*/ OPC_MoveChild6, ++/*201017*/ OPC_CheckInteger, 1, ++/*201019*/ OPC_CheckType, MVT::i32, ++/*201021*/ OPC_MoveParent, ++/*201022*/ OPC_MoveChild7, ++/*201023*/ OPC_CheckInteger, 1, ++/*201025*/ OPC_CheckType, MVT::i32, ++/*201027*/ OPC_MoveParent, ++/*201028*/ OPC_MoveChild, 8, ++/*201030*/ OPC_CheckInteger, 1, ++/*201032*/ OPC_CheckType, MVT::i32, ++/*201034*/ OPC_MoveParent, ++/*201035*/ OPC_MoveChild, 9, ++/*201037*/ OPC_CheckInteger, 1, ++/*201039*/ OPC_CheckType, MVT::i32, ++/*201041*/ OPC_MoveParent, ++/*201042*/ OPC_MoveChild, 10, ++/*201044*/ OPC_CheckInteger, 1, ++/*201046*/ OPC_CheckType, MVT::i32, ++/*201048*/ OPC_MoveParent, ++/*201049*/ OPC_MoveChild, 11, ++/*201051*/ OPC_CheckInteger, 1, ++/*201053*/ OPC_CheckType, MVT::i32, ++/*201055*/ OPC_MoveParent, ++/*201056*/ OPC_MoveChild, 12, ++/*201058*/ OPC_CheckInteger, 1, ++/*201060*/ OPC_CheckType, MVT::i32, ++/*201062*/ OPC_MoveParent, ++/*201063*/ OPC_MoveChild, 13, ++/*201065*/ OPC_CheckInteger, 1, ++/*201067*/ OPC_CheckType, MVT::i32, ++/*201069*/ OPC_MoveParent, ++/*201070*/ OPC_MoveChild, 14, ++/*201072*/ OPC_CheckInteger, 1, ++/*201074*/ OPC_CheckType, MVT::i32, ++/*201076*/ OPC_MoveParent, ++/*201077*/ OPC_MoveChild, 15, ++/*201079*/ OPC_CheckInteger, 1, ++/*201081*/ OPC_CheckType, MVT::i32, ++/*201083*/ OPC_MoveParent, ++/*201084*/ OPC_CheckType, MVT::v16i8, ++/*201086*/ OPC_MoveParent, ++/*201087*/ OPC_CheckType, MVT::v16i8, ++/*201089*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*201091*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a)), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*201099*/ /*Scope*/ 65|128,2/*321*/, /*->201422*/ ++/*201101*/ OPC_CheckChild0Same, 0, ++/*201103*/ OPC_CheckChild1Same, 1, ++/*201105*/ OPC_MoveParent, ++/*201106*/ OPC_MoveChild1, ++/*201107*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*201110*/ OPC_CheckChild0Integer, 1, ++/*201112*/ OPC_CheckChild0Type, MVT::i32, ++/*201114*/ OPC_CheckChild1Integer, 1, ++/*201116*/ OPC_CheckChild1Type, MVT::i32, ++/*201118*/ OPC_CheckChild2Integer, 1, ++/*201120*/ OPC_CheckChild2Type, MVT::i32, ++/*201122*/ OPC_CheckChild3Integer, 1, ++/*201124*/ OPC_CheckChild3Type, MVT::i32, ++/*201126*/ OPC_CheckChild4Integer, 1, ++/*201128*/ OPC_CheckChild4Type, MVT::i32, ++/*201130*/ OPC_MoveChild5, ++/*201131*/ OPC_CheckInteger, 1, ++/*201133*/ OPC_CheckType, MVT::i32, ++/*201135*/ OPC_MoveParent, ++/*201136*/ OPC_MoveChild6, ++/*201137*/ OPC_CheckInteger, 1, ++/*201139*/ OPC_CheckType, MVT::i32, ++/*201141*/ OPC_MoveParent, ++/*201142*/ OPC_MoveChild7, ++/*201143*/ OPC_CheckInteger, 1, ++/*201145*/ OPC_CheckType, MVT::i32, ++/*201147*/ OPC_MoveParent, ++/*201148*/ OPC_MoveChild, 8, ++/*201150*/ OPC_CheckInteger, 1, ++/*201152*/ OPC_CheckType, MVT::i32, ++/*201154*/ OPC_MoveParent, ++/*201155*/ OPC_MoveChild, 9, ++/*201157*/ OPC_CheckInteger, 1, ++/*201159*/ OPC_CheckType, MVT::i32, ++/*201161*/ OPC_MoveParent, ++/*201162*/ OPC_MoveChild, 10, ++/*201164*/ OPC_CheckInteger, 1, ++/*201166*/ OPC_CheckType, MVT::i32, ++/*201168*/ OPC_MoveParent, ++/*201169*/ OPC_MoveChild, 11, ++/*201171*/ OPC_CheckInteger, 1, ++/*201173*/ OPC_CheckType, MVT::i32, ++/*201175*/ OPC_MoveParent, ++/*201176*/ OPC_MoveChild, 12, ++/*201178*/ OPC_CheckInteger, 1, ++/*201180*/ OPC_CheckType, MVT::i32, ++/*201182*/ OPC_MoveParent, ++/*201183*/ OPC_MoveChild, 13, ++/*201185*/ OPC_CheckInteger, 1, ++/*201187*/ OPC_CheckType, MVT::i32, ++/*201189*/ OPC_MoveParent, ++/*201190*/ OPC_MoveChild, 14, ++/*201192*/ OPC_CheckInteger, 1, ++/*201194*/ OPC_CheckType, MVT::i32, ++/*201196*/ OPC_MoveParent, ++/*201197*/ OPC_MoveChild, 15, ++/*201199*/ OPC_CheckInteger, 1, ++/*201201*/ OPC_CheckType, MVT::i32, ++/*201203*/ OPC_MoveParent, ++/*201204*/ OPC_MoveParent, ++/*201205*/ OPC_MoveParent, ++/*201206*/ OPC_MoveChild1, ++/*201207*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*201210*/ OPC_CheckChild0Integer, 7, ++/*201212*/ OPC_CheckChild0Type, MVT::i32, ++/*201214*/ OPC_CheckChild1Integer, 7, ++/*201216*/ OPC_CheckChild1Type, MVT::i32, ++/*201218*/ OPC_CheckChild2Integer, 7, ++/*201220*/ OPC_CheckChild2Type, MVT::i32, ++/*201222*/ OPC_CheckChild3Integer, 7, ++/*201224*/ OPC_CheckChild3Type, MVT::i32, ++/*201226*/ OPC_CheckChild4Integer, 7, ++/*201228*/ OPC_CheckChild4Type, MVT::i32, ++/*201230*/ OPC_MoveChild5, ++/*201231*/ OPC_CheckInteger, 7, ++/*201233*/ OPC_CheckType, MVT::i32, ++/*201235*/ OPC_MoveParent, ++/*201236*/ OPC_MoveChild6, ++/*201237*/ OPC_CheckInteger, 7, ++/*201239*/ OPC_CheckType, MVT::i32, ++/*201241*/ OPC_MoveParent, ++/*201242*/ OPC_MoveChild7, ++/*201243*/ OPC_CheckInteger, 7, ++/*201245*/ OPC_CheckType, MVT::i32, ++/*201247*/ OPC_MoveParent, ++/*201248*/ OPC_MoveChild, 8, ++/*201250*/ OPC_CheckInteger, 7, ++/*201252*/ OPC_CheckType, MVT::i32, ++/*201254*/ OPC_MoveParent, ++/*201255*/ OPC_MoveChild, 9, ++/*201257*/ OPC_CheckInteger, 7, ++/*201259*/ OPC_CheckType, MVT::i32, ++/*201261*/ OPC_MoveParent, ++/*201262*/ OPC_MoveChild, 10, ++/*201264*/ OPC_CheckInteger, 7, ++/*201266*/ OPC_CheckType, MVT::i32, ++/*201268*/ OPC_MoveParent, ++/*201269*/ OPC_MoveChild, 11, ++/*201271*/ OPC_CheckInteger, 7, ++/*201273*/ OPC_CheckType, MVT::i32, ++/*201275*/ OPC_MoveParent, ++/*201276*/ OPC_MoveChild, 12, ++/*201278*/ OPC_CheckInteger, 7, ++/*201280*/ OPC_CheckType, MVT::i32, ++/*201282*/ OPC_MoveParent, ++/*201283*/ OPC_MoveChild, 13, ++/*201285*/ OPC_CheckInteger, 7, ++/*201287*/ OPC_CheckType, MVT::i32, ++/*201289*/ OPC_MoveParent, ++/*201290*/ OPC_MoveChild, 14, ++/*201292*/ OPC_CheckInteger, 7, ++/*201294*/ OPC_CheckType, MVT::i32, ++/*201296*/ OPC_MoveParent, ++/*201297*/ OPC_MoveChild, 15, ++/*201299*/ OPC_CheckInteger, 7, ++/*201301*/ OPC_CheckType, MVT::i32, ++/*201303*/ OPC_MoveParent, ++/*201304*/ OPC_CheckType, MVT::v16i8, ++/*201306*/ OPC_MoveParent, ++/*201307*/ OPC_MoveParent, ++/*201308*/ OPC_MoveParent, ++/*201309*/ OPC_MoveChild1, ++/*201310*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*201313*/ OPC_CheckChild0Integer, 1, ++/*201315*/ OPC_CheckChild0Type, MVT::i32, ++/*201317*/ OPC_CheckChild1Integer, 1, ++/*201319*/ OPC_CheckChild1Type, MVT::i32, ++/*201321*/ OPC_CheckChild2Integer, 1, ++/*201323*/ OPC_CheckChild2Type, MVT::i32, ++/*201325*/ OPC_CheckChild3Integer, 1, ++/*201327*/ OPC_CheckChild3Type, MVT::i32, ++/*201329*/ OPC_CheckChild4Integer, 1, ++/*201331*/ OPC_CheckChild4Type, MVT::i32, ++/*201333*/ OPC_MoveChild5, ++/*201334*/ OPC_CheckInteger, 1, ++/*201336*/ OPC_CheckType, MVT::i32, ++/*201338*/ OPC_MoveParent, ++/*201339*/ OPC_MoveChild6, ++/*201340*/ OPC_CheckInteger, 1, ++/*201342*/ OPC_CheckType, MVT::i32, ++/*201344*/ OPC_MoveParent, ++/*201345*/ OPC_MoveChild7, ++/*201346*/ OPC_CheckInteger, 1, ++/*201348*/ OPC_CheckType, MVT::i32, ++/*201350*/ OPC_MoveParent, ++/*201351*/ OPC_MoveChild, 8, ++/*201353*/ OPC_CheckInteger, 1, ++/*201355*/ OPC_CheckType, MVT::i32, ++/*201357*/ OPC_MoveParent, ++/*201358*/ OPC_MoveChild, 9, ++/*201360*/ OPC_CheckInteger, 1, ++/*201362*/ OPC_CheckType, MVT::i32, ++/*201364*/ OPC_MoveParent, ++/*201365*/ OPC_MoveChild, 10, ++/*201367*/ OPC_CheckInteger, 1, ++/*201369*/ OPC_CheckType, MVT::i32, ++/*201371*/ OPC_MoveParent, ++/*201372*/ OPC_MoveChild, 11, ++/*201374*/ OPC_CheckInteger, 1, ++/*201376*/ OPC_CheckType, MVT::i32, ++/*201378*/ OPC_MoveParent, ++/*201379*/ OPC_MoveChild, 12, ++/*201381*/ OPC_CheckInteger, 1, ++/*201383*/ OPC_CheckType, MVT::i32, ++/*201385*/ OPC_MoveParent, ++/*201386*/ OPC_MoveChild, 13, ++/*201388*/ OPC_CheckInteger, 1, ++/*201390*/ OPC_CheckType, MVT::i32, ++/*201392*/ OPC_MoveParent, ++/*201393*/ OPC_MoveChild, 14, ++/*201395*/ OPC_CheckInteger, 1, ++/*201397*/ OPC_CheckType, MVT::i32, ++/*201399*/ OPC_MoveParent, ++/*201400*/ OPC_MoveChild, 15, ++/*201402*/ OPC_CheckInteger, 1, ++/*201404*/ OPC_CheckType, MVT::i32, ++/*201406*/ OPC_MoveParent, ++/*201407*/ OPC_CheckType, MVT::v16i8, ++/*201409*/ OPC_MoveParent, ++/*201410*/ OPC_CheckType, MVT::v16i8, ++/*201412*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*201414*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a)), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*201422*/ 0, /*End of Scope*/ ++/*201423*/ /*Scope*/ 10|128,5/*650*/, /*->202075*/ ++/*201425*/ OPC_CheckChild0Same, 0, ++/*201427*/ OPC_MoveChild1, ++/*201428*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*201431*/ OPC_Scope, 63|128,2/*319*/, /*->201753*/ // 2 children in Scope ++/*201434*/ OPC_MoveChild0, ++/*201435*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*201438*/ OPC_CheckChild0Integer, 1, ++/*201440*/ OPC_CheckChild0Type, MVT::i32, ++/*201442*/ OPC_CheckChild1Integer, 1, ++/*201444*/ OPC_CheckChild1Type, MVT::i32, ++/*201446*/ OPC_CheckChild2Integer, 1, ++/*201448*/ OPC_CheckChild2Type, MVT::i32, ++/*201450*/ OPC_CheckChild3Integer, 1, ++/*201452*/ OPC_CheckChild3Type, MVT::i32, ++/*201454*/ OPC_CheckChild4Integer, 1, ++/*201456*/ OPC_CheckChild4Type, MVT::i32, ++/*201458*/ OPC_MoveChild5, ++/*201459*/ OPC_CheckInteger, 1, ++/*201461*/ OPC_CheckType, MVT::i32, ++/*201463*/ OPC_MoveParent, ++/*201464*/ OPC_MoveChild6, ++/*201465*/ OPC_CheckInteger, 1, ++/*201467*/ OPC_CheckType, MVT::i32, ++/*201469*/ OPC_MoveParent, ++/*201470*/ OPC_MoveChild7, ++/*201471*/ OPC_CheckInteger, 1, ++/*201473*/ OPC_CheckType, MVT::i32, ++/*201475*/ OPC_MoveParent, ++/*201476*/ OPC_MoveChild, 8, ++/*201478*/ OPC_CheckInteger, 1, ++/*201480*/ OPC_CheckType, MVT::i32, ++/*201482*/ OPC_MoveParent, ++/*201483*/ OPC_MoveChild, 9, ++/*201485*/ OPC_CheckInteger, 1, ++/*201487*/ OPC_CheckType, MVT::i32, ++/*201489*/ OPC_MoveParent, ++/*201490*/ OPC_MoveChild, 10, ++/*201492*/ OPC_CheckInteger, 1, ++/*201494*/ OPC_CheckType, MVT::i32, ++/*201496*/ OPC_MoveParent, ++/*201497*/ OPC_MoveChild, 11, ++/*201499*/ OPC_CheckInteger, 1, ++/*201501*/ OPC_CheckType, MVT::i32, ++/*201503*/ OPC_MoveParent, ++/*201504*/ OPC_MoveChild, 12, ++/*201506*/ OPC_CheckInteger, 1, ++/*201508*/ OPC_CheckType, MVT::i32, ++/*201510*/ OPC_MoveParent, ++/*201511*/ OPC_MoveChild, 13, ++/*201513*/ OPC_CheckInteger, 1, ++/*201515*/ OPC_CheckType, MVT::i32, ++/*201517*/ OPC_MoveParent, ++/*201518*/ OPC_MoveChild, 14, ++/*201520*/ OPC_CheckInteger, 1, ++/*201522*/ OPC_CheckType, MVT::i32, ++/*201524*/ OPC_MoveParent, ++/*201525*/ OPC_MoveChild, 15, ++/*201527*/ OPC_CheckInteger, 1, ++/*201529*/ OPC_CheckType, MVT::i32, ++/*201531*/ OPC_MoveParent, ++/*201532*/ OPC_MoveParent, ++/*201533*/ OPC_CheckChild1Same, 1, ++/*201535*/ OPC_MoveParent, ++/*201536*/ OPC_MoveParent, ++/*201537*/ OPC_MoveChild1, ++/*201538*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*201541*/ OPC_CheckChild0Integer, 7, ++/*201543*/ OPC_CheckChild0Type, MVT::i32, ++/*201545*/ OPC_CheckChild1Integer, 7, ++/*201547*/ OPC_CheckChild1Type, MVT::i32, ++/*201549*/ OPC_CheckChild2Integer, 7, ++/*201551*/ OPC_CheckChild2Type, MVT::i32, ++/*201553*/ OPC_CheckChild3Integer, 7, ++/*201555*/ OPC_CheckChild3Type, MVT::i32, ++/*201557*/ OPC_CheckChild4Integer, 7, ++/*201559*/ OPC_CheckChild4Type, MVT::i32, ++/*201561*/ OPC_MoveChild5, ++/*201562*/ OPC_CheckInteger, 7, ++/*201564*/ OPC_CheckType, MVT::i32, ++/*201566*/ OPC_MoveParent, ++/*201567*/ OPC_MoveChild6, ++/*201568*/ OPC_CheckInteger, 7, ++/*201570*/ OPC_CheckType, MVT::i32, ++/*201572*/ OPC_MoveParent, ++/*201573*/ OPC_MoveChild7, ++/*201574*/ OPC_CheckInteger, 7, ++/*201576*/ OPC_CheckType, MVT::i32, ++/*201578*/ OPC_MoveParent, ++/*201579*/ OPC_MoveChild, 8, ++/*201581*/ OPC_CheckInteger, 7, ++/*201583*/ OPC_CheckType, MVT::i32, ++/*201585*/ OPC_MoveParent, ++/*201586*/ OPC_MoveChild, 9, ++/*201588*/ OPC_CheckInteger, 7, ++/*201590*/ OPC_CheckType, MVT::i32, ++/*201592*/ OPC_MoveParent, ++/*201593*/ OPC_MoveChild, 10, ++/*201595*/ OPC_CheckInteger, 7, ++/*201597*/ OPC_CheckType, MVT::i32, ++/*201599*/ OPC_MoveParent, ++/*201600*/ OPC_MoveChild, 11, ++/*201602*/ OPC_CheckInteger, 7, ++/*201604*/ OPC_CheckType, MVT::i32, ++/*201606*/ OPC_MoveParent, ++/*201607*/ OPC_MoveChild, 12, ++/*201609*/ OPC_CheckInteger, 7, ++/*201611*/ OPC_CheckType, MVT::i32, ++/*201613*/ OPC_MoveParent, ++/*201614*/ OPC_MoveChild, 13, ++/*201616*/ OPC_CheckInteger, 7, ++/*201618*/ OPC_CheckType, MVT::i32, ++/*201620*/ OPC_MoveParent, ++/*201621*/ OPC_MoveChild, 14, ++/*201623*/ OPC_CheckInteger, 7, ++/*201625*/ OPC_CheckType, MVT::i32, ++/*201627*/ OPC_MoveParent, ++/*201628*/ OPC_MoveChild, 15, ++/*201630*/ OPC_CheckInteger, 7, ++/*201632*/ OPC_CheckType, MVT::i32, ++/*201634*/ OPC_MoveParent, ++/*201635*/ OPC_CheckType, MVT::v16i8, ++/*201637*/ OPC_MoveParent, ++/*201638*/ OPC_MoveParent, ++/*201639*/ OPC_MoveParent, ++/*201640*/ OPC_MoveChild1, ++/*201641*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*201644*/ OPC_CheckChild0Integer, 1, ++/*201646*/ OPC_CheckChild0Type, MVT::i32, ++/*201648*/ OPC_CheckChild1Integer, 1, ++/*201650*/ OPC_CheckChild1Type, MVT::i32, ++/*201652*/ OPC_CheckChild2Integer, 1, ++/*201654*/ OPC_CheckChild2Type, MVT::i32, ++/*201656*/ OPC_CheckChild3Integer, 1, ++/*201658*/ OPC_CheckChild3Type, MVT::i32, ++/*201660*/ OPC_CheckChild4Integer, 1, ++/*201662*/ OPC_CheckChild4Type, MVT::i32, ++/*201664*/ OPC_MoveChild5, ++/*201665*/ OPC_CheckInteger, 1, ++/*201667*/ OPC_CheckType, MVT::i32, ++/*201669*/ OPC_MoveParent, ++/*201670*/ OPC_MoveChild6, ++/*201671*/ OPC_CheckInteger, 1, ++/*201673*/ OPC_CheckType, MVT::i32, ++/*201675*/ OPC_MoveParent, ++/*201676*/ OPC_MoveChild7, ++/*201677*/ OPC_CheckInteger, 1, ++/*201679*/ OPC_CheckType, MVT::i32, ++/*201681*/ OPC_MoveParent, ++/*201682*/ OPC_MoveChild, 8, ++/*201684*/ OPC_CheckInteger, 1, ++/*201686*/ OPC_CheckType, MVT::i32, ++/*201688*/ OPC_MoveParent, ++/*201689*/ OPC_MoveChild, 9, ++/*201691*/ OPC_CheckInteger, 1, ++/*201693*/ OPC_CheckType, MVT::i32, ++/*201695*/ OPC_MoveParent, ++/*201696*/ OPC_MoveChild, 10, ++/*201698*/ OPC_CheckInteger, 1, ++/*201700*/ OPC_CheckType, MVT::i32, ++/*201702*/ OPC_MoveParent, ++/*201703*/ OPC_MoveChild, 11, ++/*201705*/ OPC_CheckInteger, 1, ++/*201707*/ OPC_CheckType, MVT::i32, ++/*201709*/ OPC_MoveParent, ++/*201710*/ OPC_MoveChild, 12, ++/*201712*/ OPC_CheckInteger, 1, ++/*201714*/ OPC_CheckType, MVT::i32, ++/*201716*/ OPC_MoveParent, ++/*201717*/ OPC_MoveChild, 13, ++/*201719*/ OPC_CheckInteger, 1, ++/*201721*/ OPC_CheckType, MVT::i32, ++/*201723*/ OPC_MoveParent, ++/*201724*/ OPC_MoveChild, 14, ++/*201726*/ OPC_CheckInteger, 1, ++/*201728*/ OPC_CheckType, MVT::i32, ++/*201730*/ OPC_MoveParent, ++/*201731*/ OPC_MoveChild, 15, ++/*201733*/ OPC_CheckInteger, 1, ++/*201735*/ OPC_CheckType, MVT::i32, ++/*201737*/ OPC_MoveParent, ++/*201738*/ OPC_CheckType, MVT::v16i8, ++/*201740*/ OPC_MoveParent, ++/*201741*/ OPC_CheckType, MVT::v16i8, ++/*201743*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*201745*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a)), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*201753*/ /*Scope*/ 63|128,2/*319*/, /*->202074*/ ++/*201755*/ OPC_CheckChild0Same, 1, ++/*201757*/ OPC_MoveChild1, ++/*201758*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*201761*/ OPC_CheckChild0Integer, 1, ++/*201763*/ OPC_CheckChild0Type, MVT::i32, ++/*201765*/ OPC_CheckChild1Integer, 1, ++/*201767*/ OPC_CheckChild1Type, MVT::i32, ++/*201769*/ OPC_CheckChild2Integer, 1, ++/*201771*/ OPC_CheckChild2Type, MVT::i32, ++/*201773*/ OPC_CheckChild3Integer, 1, ++/*201775*/ OPC_CheckChild3Type, MVT::i32, ++/*201777*/ OPC_CheckChild4Integer, 1, ++/*201779*/ OPC_CheckChild4Type, MVT::i32, ++/*201781*/ OPC_MoveChild5, ++/*201782*/ OPC_CheckInteger, 1, ++/*201784*/ OPC_CheckType, MVT::i32, ++/*201786*/ OPC_MoveParent, ++/*201787*/ OPC_MoveChild6, ++/*201788*/ OPC_CheckInteger, 1, ++/*201790*/ OPC_CheckType, MVT::i32, ++/*201792*/ OPC_MoveParent, ++/*201793*/ OPC_MoveChild7, ++/*201794*/ OPC_CheckInteger, 1, ++/*201796*/ OPC_CheckType, MVT::i32, ++/*201798*/ OPC_MoveParent, ++/*201799*/ OPC_MoveChild, 8, ++/*201801*/ OPC_CheckInteger, 1, ++/*201803*/ OPC_CheckType, MVT::i32, ++/*201805*/ OPC_MoveParent, ++/*201806*/ OPC_MoveChild, 9, ++/*201808*/ OPC_CheckInteger, 1, ++/*201810*/ OPC_CheckType, MVT::i32, ++/*201812*/ OPC_MoveParent, ++/*201813*/ OPC_MoveChild, 10, ++/*201815*/ OPC_CheckInteger, 1, ++/*201817*/ OPC_CheckType, MVT::i32, ++/*201819*/ OPC_MoveParent, ++/*201820*/ OPC_MoveChild, 11, ++/*201822*/ OPC_CheckInteger, 1, ++/*201824*/ OPC_CheckType, MVT::i32, ++/*201826*/ OPC_MoveParent, ++/*201827*/ OPC_MoveChild, 12, ++/*201829*/ OPC_CheckInteger, 1, ++/*201831*/ OPC_CheckType, MVT::i32, ++/*201833*/ OPC_MoveParent, ++/*201834*/ OPC_MoveChild, 13, ++/*201836*/ OPC_CheckInteger, 1, ++/*201838*/ OPC_CheckType, MVT::i32, ++/*201840*/ OPC_MoveParent, ++/*201841*/ OPC_MoveChild, 14, ++/*201843*/ OPC_CheckInteger, 1, ++/*201845*/ OPC_CheckType, MVT::i32, ++/*201847*/ OPC_MoveParent, ++/*201848*/ OPC_MoveChild, 15, ++/*201850*/ OPC_CheckInteger, 1, ++/*201852*/ OPC_CheckType, MVT::i32, ++/*201854*/ OPC_MoveParent, ++/*201855*/ OPC_MoveParent, ++/*201856*/ OPC_MoveParent, ++/*201857*/ OPC_MoveParent, ++/*201858*/ OPC_MoveChild1, ++/*201859*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*201862*/ OPC_CheckChild0Integer, 7, ++/*201864*/ OPC_CheckChild0Type, MVT::i32, ++/*201866*/ OPC_CheckChild1Integer, 7, ++/*201868*/ OPC_CheckChild1Type, MVT::i32, ++/*201870*/ OPC_CheckChild2Integer, 7, ++/*201872*/ OPC_CheckChild2Type, MVT::i32, ++/*201874*/ OPC_CheckChild3Integer, 7, ++/*201876*/ OPC_CheckChild3Type, MVT::i32, ++/*201878*/ OPC_CheckChild4Integer, 7, ++/*201880*/ OPC_CheckChild4Type, MVT::i32, ++/*201882*/ OPC_MoveChild5, ++/*201883*/ OPC_CheckInteger, 7, ++/*201885*/ OPC_CheckType, MVT::i32, ++/*201887*/ OPC_MoveParent, ++/*201888*/ OPC_MoveChild6, ++/*201889*/ OPC_CheckInteger, 7, ++/*201891*/ OPC_CheckType, MVT::i32, ++/*201893*/ OPC_MoveParent, ++/*201894*/ OPC_MoveChild7, ++/*201895*/ OPC_CheckInteger, 7, ++/*201897*/ OPC_CheckType, MVT::i32, ++/*201899*/ OPC_MoveParent, ++/*201900*/ OPC_MoveChild, 8, ++/*201902*/ OPC_CheckInteger, 7, ++/*201904*/ OPC_CheckType, MVT::i32, ++/*201906*/ OPC_MoveParent, ++/*201907*/ OPC_MoveChild, 9, ++/*201909*/ OPC_CheckInteger, 7, ++/*201911*/ OPC_CheckType, MVT::i32, ++/*201913*/ OPC_MoveParent, ++/*201914*/ OPC_MoveChild, 10, ++/*201916*/ OPC_CheckInteger, 7, ++/*201918*/ OPC_CheckType, MVT::i32, ++/*201920*/ OPC_MoveParent, ++/*201921*/ OPC_MoveChild, 11, ++/*201923*/ OPC_CheckInteger, 7, ++/*201925*/ OPC_CheckType, MVT::i32, ++/*201927*/ OPC_MoveParent, ++/*201928*/ OPC_MoveChild, 12, ++/*201930*/ OPC_CheckInteger, 7, ++/*201932*/ OPC_CheckType, MVT::i32, ++/*201934*/ OPC_MoveParent, ++/*201935*/ OPC_MoveChild, 13, ++/*201937*/ OPC_CheckInteger, 7, ++/*201939*/ OPC_CheckType, MVT::i32, ++/*201941*/ OPC_MoveParent, ++/*201942*/ OPC_MoveChild, 14, ++/*201944*/ OPC_CheckInteger, 7, ++/*201946*/ OPC_CheckType, MVT::i32, ++/*201948*/ OPC_MoveParent, ++/*201949*/ OPC_MoveChild, 15, ++/*201951*/ OPC_CheckInteger, 7, ++/*201953*/ OPC_CheckType, MVT::i32, ++/*201955*/ OPC_MoveParent, ++/*201956*/ OPC_CheckType, MVT::v16i8, ++/*201958*/ OPC_MoveParent, ++/*201959*/ OPC_MoveParent, ++/*201960*/ OPC_MoveParent, ++/*201961*/ OPC_MoveChild1, ++/*201962*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*201965*/ OPC_CheckChild0Integer, 1, ++/*201967*/ OPC_CheckChild0Type, MVT::i32, ++/*201969*/ OPC_CheckChild1Integer, 1, ++/*201971*/ OPC_CheckChild1Type, MVT::i32, ++/*201973*/ OPC_CheckChild2Integer, 1, ++/*201975*/ OPC_CheckChild2Type, MVT::i32, ++/*201977*/ OPC_CheckChild3Integer, 1, ++/*201979*/ OPC_CheckChild3Type, MVT::i32, ++/*201981*/ OPC_CheckChild4Integer, 1, ++/*201983*/ OPC_CheckChild4Type, MVT::i32, ++/*201985*/ OPC_MoveChild5, ++/*201986*/ OPC_CheckInteger, 1, ++/*201988*/ OPC_CheckType, MVT::i32, ++/*201990*/ OPC_MoveParent, ++/*201991*/ OPC_MoveChild6, ++/*201992*/ OPC_CheckInteger, 1, ++/*201994*/ OPC_CheckType, MVT::i32, ++/*201996*/ OPC_MoveParent, ++/*201997*/ OPC_MoveChild7, ++/*201998*/ OPC_CheckInteger, 1, ++/*202000*/ OPC_CheckType, MVT::i32, ++/*202002*/ OPC_MoveParent, ++/*202003*/ OPC_MoveChild, 8, ++/*202005*/ OPC_CheckInteger, 1, ++/*202007*/ OPC_CheckType, MVT::i32, ++/*202009*/ OPC_MoveParent, ++/*202010*/ OPC_MoveChild, 9, ++/*202012*/ OPC_CheckInteger, 1, ++/*202014*/ OPC_CheckType, MVT::i32, ++/*202016*/ OPC_MoveParent, ++/*202017*/ OPC_MoveChild, 10, ++/*202019*/ OPC_CheckInteger, 1, ++/*202021*/ OPC_CheckType, MVT::i32, ++/*202023*/ OPC_MoveParent, ++/*202024*/ OPC_MoveChild, 11, ++/*202026*/ OPC_CheckInteger, 1, ++/*202028*/ OPC_CheckType, MVT::i32, ++/*202030*/ OPC_MoveParent, ++/*202031*/ OPC_MoveChild, 12, ++/*202033*/ OPC_CheckInteger, 1, ++/*202035*/ OPC_CheckType, MVT::i32, ++/*202037*/ OPC_MoveParent, ++/*202038*/ OPC_MoveChild, 13, ++/*202040*/ OPC_CheckInteger, 1, ++/*202042*/ OPC_CheckType, MVT::i32, ++/*202044*/ OPC_MoveParent, ++/*202045*/ OPC_MoveChild, 14, ++/*202047*/ OPC_CheckInteger, 1, ++/*202049*/ OPC_CheckType, MVT::i32, ++/*202051*/ OPC_MoveParent, ++/*202052*/ OPC_MoveChild, 15, ++/*202054*/ OPC_CheckInteger, 1, ++/*202056*/ OPC_CheckType, MVT::i32, ++/*202058*/ OPC_MoveParent, ++/*202059*/ OPC_CheckType, MVT::v16i8, ++/*202061*/ OPC_MoveParent, ++/*202062*/ OPC_CheckType, MVT::v16i8, ++/*202064*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*202066*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a)), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*202074*/ 0, /*End of Scope*/ ++/*202075*/ /*Scope*/ 10|128,5/*650*/, /*->202727*/ ++/*202077*/ OPC_CheckChild0Same, 1, ++/*202079*/ OPC_MoveChild1, ++/*202080*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*202083*/ OPC_Scope, 63|128,2/*319*/, /*->202405*/ // 2 children in Scope ++/*202086*/ OPC_MoveChild0, ++/*202087*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*202090*/ OPC_CheckChild0Integer, 1, ++/*202092*/ OPC_CheckChild0Type, MVT::i32, ++/*202094*/ OPC_CheckChild1Integer, 1, ++/*202096*/ OPC_CheckChild1Type, MVT::i32, ++/*202098*/ OPC_CheckChild2Integer, 1, ++/*202100*/ OPC_CheckChild2Type, MVT::i32, ++/*202102*/ OPC_CheckChild3Integer, 1, ++/*202104*/ OPC_CheckChild3Type, MVT::i32, ++/*202106*/ OPC_CheckChild4Integer, 1, ++/*202108*/ OPC_CheckChild4Type, MVT::i32, ++/*202110*/ OPC_MoveChild5, ++/*202111*/ OPC_CheckInteger, 1, ++/*202113*/ OPC_CheckType, MVT::i32, ++/*202115*/ OPC_MoveParent, ++/*202116*/ OPC_MoveChild6, ++/*202117*/ OPC_CheckInteger, 1, ++/*202119*/ OPC_CheckType, MVT::i32, ++/*202121*/ OPC_MoveParent, ++/*202122*/ OPC_MoveChild7, ++/*202123*/ OPC_CheckInteger, 1, ++/*202125*/ OPC_CheckType, MVT::i32, ++/*202127*/ OPC_MoveParent, ++/*202128*/ OPC_MoveChild, 8, ++/*202130*/ OPC_CheckInteger, 1, ++/*202132*/ OPC_CheckType, MVT::i32, ++/*202134*/ OPC_MoveParent, ++/*202135*/ OPC_MoveChild, 9, ++/*202137*/ OPC_CheckInteger, 1, ++/*202139*/ OPC_CheckType, MVT::i32, ++/*202141*/ OPC_MoveParent, ++/*202142*/ OPC_MoveChild, 10, ++/*202144*/ OPC_CheckInteger, 1, ++/*202146*/ OPC_CheckType, MVT::i32, ++/*202148*/ OPC_MoveParent, ++/*202149*/ OPC_MoveChild, 11, ++/*202151*/ OPC_CheckInteger, 1, ++/*202153*/ OPC_CheckType, MVT::i32, ++/*202155*/ OPC_MoveParent, ++/*202156*/ OPC_MoveChild, 12, ++/*202158*/ OPC_CheckInteger, 1, ++/*202160*/ OPC_CheckType, MVT::i32, ++/*202162*/ OPC_MoveParent, ++/*202163*/ OPC_MoveChild, 13, ++/*202165*/ OPC_CheckInteger, 1, ++/*202167*/ OPC_CheckType, MVT::i32, ++/*202169*/ OPC_MoveParent, ++/*202170*/ OPC_MoveChild, 14, ++/*202172*/ OPC_CheckInteger, 1, ++/*202174*/ OPC_CheckType, MVT::i32, ++/*202176*/ OPC_MoveParent, ++/*202177*/ OPC_MoveChild, 15, ++/*202179*/ OPC_CheckInteger, 1, ++/*202181*/ OPC_CheckType, MVT::i32, ++/*202183*/ OPC_MoveParent, ++/*202184*/ OPC_MoveParent, ++/*202185*/ OPC_CheckChild1Same, 0, ++/*202187*/ OPC_MoveParent, ++/*202188*/ OPC_MoveParent, ++/*202189*/ OPC_MoveChild1, ++/*202190*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*202193*/ OPC_CheckChild0Integer, 7, ++/*202195*/ OPC_CheckChild0Type, MVT::i32, ++/*202197*/ OPC_CheckChild1Integer, 7, ++/*202199*/ OPC_CheckChild1Type, MVT::i32, ++/*202201*/ OPC_CheckChild2Integer, 7, ++/*202203*/ OPC_CheckChild2Type, MVT::i32, ++/*202205*/ OPC_CheckChild3Integer, 7, ++/*202207*/ OPC_CheckChild3Type, MVT::i32, ++/*202209*/ OPC_CheckChild4Integer, 7, ++/*202211*/ OPC_CheckChild4Type, MVT::i32, ++/*202213*/ OPC_MoveChild5, ++/*202214*/ OPC_CheckInteger, 7, ++/*202216*/ OPC_CheckType, MVT::i32, ++/*202218*/ OPC_MoveParent, ++/*202219*/ OPC_MoveChild6, ++/*202220*/ OPC_CheckInteger, 7, ++/*202222*/ OPC_CheckType, MVT::i32, ++/*202224*/ OPC_MoveParent, ++/*202225*/ OPC_MoveChild7, ++/*202226*/ OPC_CheckInteger, 7, ++/*202228*/ OPC_CheckType, MVT::i32, ++/*202230*/ OPC_MoveParent, ++/*202231*/ OPC_MoveChild, 8, ++/*202233*/ OPC_CheckInteger, 7, ++/*202235*/ OPC_CheckType, MVT::i32, ++/*202237*/ OPC_MoveParent, ++/*202238*/ OPC_MoveChild, 9, ++/*202240*/ OPC_CheckInteger, 7, ++/*202242*/ OPC_CheckType, MVT::i32, ++/*202244*/ OPC_MoveParent, ++/*202245*/ OPC_MoveChild, 10, ++/*202247*/ OPC_CheckInteger, 7, ++/*202249*/ OPC_CheckType, MVT::i32, ++/*202251*/ OPC_MoveParent, ++/*202252*/ OPC_MoveChild, 11, ++/*202254*/ OPC_CheckInteger, 7, ++/*202256*/ OPC_CheckType, MVT::i32, ++/*202258*/ OPC_MoveParent, ++/*202259*/ OPC_MoveChild, 12, ++/*202261*/ OPC_CheckInteger, 7, ++/*202263*/ OPC_CheckType, MVT::i32, ++/*202265*/ OPC_MoveParent, ++/*202266*/ OPC_MoveChild, 13, ++/*202268*/ OPC_CheckInteger, 7, ++/*202270*/ OPC_CheckType, MVT::i32, ++/*202272*/ OPC_MoveParent, ++/*202273*/ OPC_MoveChild, 14, ++/*202275*/ OPC_CheckInteger, 7, ++/*202277*/ OPC_CheckType, MVT::i32, ++/*202279*/ OPC_MoveParent, ++/*202280*/ OPC_MoveChild, 15, ++/*202282*/ OPC_CheckInteger, 7, ++/*202284*/ OPC_CheckType, MVT::i32, ++/*202286*/ OPC_MoveParent, ++/*202287*/ OPC_CheckType, MVT::v16i8, ++/*202289*/ OPC_MoveParent, ++/*202290*/ OPC_MoveParent, ++/*202291*/ OPC_MoveParent, ++/*202292*/ OPC_MoveChild1, ++/*202293*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*202296*/ OPC_CheckChild0Integer, 1, ++/*202298*/ OPC_CheckChild0Type, MVT::i32, ++/*202300*/ OPC_CheckChild1Integer, 1, ++/*202302*/ OPC_CheckChild1Type, MVT::i32, ++/*202304*/ OPC_CheckChild2Integer, 1, ++/*202306*/ OPC_CheckChild2Type, MVT::i32, ++/*202308*/ OPC_CheckChild3Integer, 1, ++/*202310*/ OPC_CheckChild3Type, MVT::i32, ++/*202312*/ OPC_CheckChild4Integer, 1, ++/*202314*/ OPC_CheckChild4Type, MVT::i32, ++/*202316*/ OPC_MoveChild5, ++/*202317*/ OPC_CheckInteger, 1, ++/*202319*/ OPC_CheckType, MVT::i32, ++/*202321*/ OPC_MoveParent, ++/*202322*/ OPC_MoveChild6, ++/*202323*/ OPC_CheckInteger, 1, ++/*202325*/ OPC_CheckType, MVT::i32, ++/*202327*/ OPC_MoveParent, ++/*202328*/ OPC_MoveChild7, ++/*202329*/ OPC_CheckInteger, 1, ++/*202331*/ OPC_CheckType, MVT::i32, ++/*202333*/ OPC_MoveParent, ++/*202334*/ OPC_MoveChild, 8, ++/*202336*/ OPC_CheckInteger, 1, ++/*202338*/ OPC_CheckType, MVT::i32, ++/*202340*/ OPC_MoveParent, ++/*202341*/ OPC_MoveChild, 9, ++/*202343*/ OPC_CheckInteger, 1, ++/*202345*/ OPC_CheckType, MVT::i32, ++/*202347*/ OPC_MoveParent, ++/*202348*/ OPC_MoveChild, 10, ++/*202350*/ OPC_CheckInteger, 1, ++/*202352*/ OPC_CheckType, MVT::i32, ++/*202354*/ OPC_MoveParent, ++/*202355*/ OPC_MoveChild, 11, ++/*202357*/ OPC_CheckInteger, 1, ++/*202359*/ OPC_CheckType, MVT::i32, ++/*202361*/ OPC_MoveParent, ++/*202362*/ OPC_MoveChild, 12, ++/*202364*/ OPC_CheckInteger, 1, ++/*202366*/ OPC_CheckType, MVT::i32, ++/*202368*/ OPC_MoveParent, ++/*202369*/ OPC_MoveChild, 13, ++/*202371*/ OPC_CheckInteger, 1, ++/*202373*/ OPC_CheckType, MVT::i32, ++/*202375*/ OPC_MoveParent, ++/*202376*/ OPC_MoveChild, 14, ++/*202378*/ OPC_CheckInteger, 1, ++/*202380*/ OPC_CheckType, MVT::i32, ++/*202382*/ OPC_MoveParent, ++/*202383*/ OPC_MoveChild, 15, ++/*202385*/ OPC_CheckInteger, 1, ++/*202387*/ OPC_CheckType, MVT::i32, ++/*202389*/ OPC_MoveParent, ++/*202390*/ OPC_CheckType, MVT::v16i8, ++/*202392*/ OPC_MoveParent, ++/*202393*/ OPC_CheckType, MVT::v16i8, ++/*202395*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*202397*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a)), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*202405*/ /*Scope*/ 63|128,2/*319*/, /*->202726*/ ++/*202407*/ OPC_CheckChild0Same, 0, ++/*202409*/ OPC_MoveChild1, ++/*202410*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*202413*/ OPC_CheckChild0Integer, 1, ++/*202415*/ OPC_CheckChild0Type, MVT::i32, ++/*202417*/ OPC_CheckChild1Integer, 1, ++/*202419*/ OPC_CheckChild1Type, MVT::i32, ++/*202421*/ OPC_CheckChild2Integer, 1, ++/*202423*/ OPC_CheckChild2Type, MVT::i32, ++/*202425*/ OPC_CheckChild3Integer, 1, ++/*202427*/ OPC_CheckChild3Type, MVT::i32, ++/*202429*/ OPC_CheckChild4Integer, 1, ++/*202431*/ OPC_CheckChild4Type, MVT::i32, ++/*202433*/ OPC_MoveChild5, ++/*202434*/ OPC_CheckInteger, 1, ++/*202436*/ OPC_CheckType, MVT::i32, ++/*202438*/ OPC_MoveParent, ++/*202439*/ OPC_MoveChild6, ++/*202440*/ OPC_CheckInteger, 1, ++/*202442*/ OPC_CheckType, MVT::i32, ++/*202444*/ OPC_MoveParent, ++/*202445*/ OPC_MoveChild7, ++/*202446*/ OPC_CheckInteger, 1, ++/*202448*/ OPC_CheckType, MVT::i32, ++/*202450*/ OPC_MoveParent, ++/*202451*/ OPC_MoveChild, 8, ++/*202453*/ OPC_CheckInteger, 1, ++/*202455*/ OPC_CheckType, MVT::i32, ++/*202457*/ OPC_MoveParent, ++/*202458*/ OPC_MoveChild, 9, ++/*202460*/ OPC_CheckInteger, 1, ++/*202462*/ OPC_CheckType, MVT::i32, ++/*202464*/ OPC_MoveParent, ++/*202465*/ OPC_MoveChild, 10, ++/*202467*/ OPC_CheckInteger, 1, ++/*202469*/ OPC_CheckType, MVT::i32, ++/*202471*/ OPC_MoveParent, ++/*202472*/ OPC_MoveChild, 11, ++/*202474*/ OPC_CheckInteger, 1, ++/*202476*/ OPC_CheckType, MVT::i32, ++/*202478*/ OPC_MoveParent, ++/*202479*/ OPC_MoveChild, 12, ++/*202481*/ OPC_CheckInteger, 1, ++/*202483*/ OPC_CheckType, MVT::i32, ++/*202485*/ OPC_MoveParent, ++/*202486*/ OPC_MoveChild, 13, ++/*202488*/ OPC_CheckInteger, 1, ++/*202490*/ OPC_CheckType, MVT::i32, ++/*202492*/ OPC_MoveParent, ++/*202493*/ OPC_MoveChild, 14, ++/*202495*/ OPC_CheckInteger, 1, ++/*202497*/ OPC_CheckType, MVT::i32, ++/*202499*/ OPC_MoveParent, ++/*202500*/ OPC_MoveChild, 15, ++/*202502*/ OPC_CheckInteger, 1, ++/*202504*/ OPC_CheckType, MVT::i32, ++/*202506*/ OPC_MoveParent, ++/*202507*/ OPC_MoveParent, ++/*202508*/ OPC_MoveParent, ++/*202509*/ OPC_MoveParent, ++/*202510*/ OPC_MoveChild1, ++/*202511*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*202514*/ OPC_CheckChild0Integer, 7, ++/*202516*/ OPC_CheckChild0Type, MVT::i32, ++/*202518*/ OPC_CheckChild1Integer, 7, ++/*202520*/ OPC_CheckChild1Type, MVT::i32, ++/*202522*/ OPC_CheckChild2Integer, 7, ++/*202524*/ OPC_CheckChild2Type, MVT::i32, ++/*202526*/ OPC_CheckChild3Integer, 7, ++/*202528*/ OPC_CheckChild3Type, MVT::i32, ++/*202530*/ OPC_CheckChild4Integer, 7, ++/*202532*/ OPC_CheckChild4Type, MVT::i32, ++/*202534*/ OPC_MoveChild5, ++/*202535*/ OPC_CheckInteger, 7, ++/*202537*/ OPC_CheckType, MVT::i32, ++/*202539*/ OPC_MoveParent, ++/*202540*/ OPC_MoveChild6, ++/*202541*/ OPC_CheckInteger, 7, ++/*202543*/ OPC_CheckType, MVT::i32, ++/*202545*/ OPC_MoveParent, ++/*202546*/ OPC_MoveChild7, ++/*202547*/ OPC_CheckInteger, 7, ++/*202549*/ OPC_CheckType, MVT::i32, ++/*202551*/ OPC_MoveParent, ++/*202552*/ OPC_MoveChild, 8, ++/*202554*/ OPC_CheckInteger, 7, ++/*202556*/ OPC_CheckType, MVT::i32, ++/*202558*/ OPC_MoveParent, ++/*202559*/ OPC_MoveChild, 9, ++/*202561*/ OPC_CheckInteger, 7, ++/*202563*/ OPC_CheckType, MVT::i32, ++/*202565*/ OPC_MoveParent, ++/*202566*/ OPC_MoveChild, 10, ++/*202568*/ OPC_CheckInteger, 7, ++/*202570*/ OPC_CheckType, MVT::i32, ++/*202572*/ OPC_MoveParent, ++/*202573*/ OPC_MoveChild, 11, ++/*202575*/ OPC_CheckInteger, 7, ++/*202577*/ OPC_CheckType, MVT::i32, ++/*202579*/ OPC_MoveParent, ++/*202580*/ OPC_MoveChild, 12, ++/*202582*/ OPC_CheckInteger, 7, ++/*202584*/ OPC_CheckType, MVT::i32, ++/*202586*/ OPC_MoveParent, ++/*202587*/ OPC_MoveChild, 13, ++/*202589*/ OPC_CheckInteger, 7, ++/*202591*/ OPC_CheckType, MVT::i32, ++/*202593*/ OPC_MoveParent, ++/*202594*/ OPC_MoveChild, 14, ++/*202596*/ OPC_CheckInteger, 7, ++/*202598*/ OPC_CheckType, MVT::i32, ++/*202600*/ OPC_MoveParent, ++/*202601*/ OPC_MoveChild, 15, ++/*202603*/ OPC_CheckInteger, 7, ++/*202605*/ OPC_CheckType, MVT::i32, ++/*202607*/ OPC_MoveParent, ++/*202608*/ OPC_CheckType, MVT::v16i8, ++/*202610*/ OPC_MoveParent, ++/*202611*/ OPC_MoveParent, ++/*202612*/ OPC_MoveParent, ++/*202613*/ OPC_MoveChild1, ++/*202614*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*202617*/ OPC_CheckChild0Integer, 1, ++/*202619*/ OPC_CheckChild0Type, MVT::i32, ++/*202621*/ OPC_CheckChild1Integer, 1, ++/*202623*/ OPC_CheckChild1Type, MVT::i32, ++/*202625*/ OPC_CheckChild2Integer, 1, ++/*202627*/ OPC_CheckChild2Type, MVT::i32, ++/*202629*/ OPC_CheckChild3Integer, 1, ++/*202631*/ OPC_CheckChild3Type, MVT::i32, ++/*202633*/ OPC_CheckChild4Integer, 1, ++/*202635*/ OPC_CheckChild4Type, MVT::i32, ++/*202637*/ OPC_MoveChild5, ++/*202638*/ OPC_CheckInteger, 1, ++/*202640*/ OPC_CheckType, MVT::i32, ++/*202642*/ OPC_MoveParent, ++/*202643*/ OPC_MoveChild6, ++/*202644*/ OPC_CheckInteger, 1, ++/*202646*/ OPC_CheckType, MVT::i32, ++/*202648*/ OPC_MoveParent, ++/*202649*/ OPC_MoveChild7, ++/*202650*/ OPC_CheckInteger, 1, ++/*202652*/ OPC_CheckType, MVT::i32, ++/*202654*/ OPC_MoveParent, ++/*202655*/ OPC_MoveChild, 8, ++/*202657*/ OPC_CheckInteger, 1, ++/*202659*/ OPC_CheckType, MVT::i32, ++/*202661*/ OPC_MoveParent, ++/*202662*/ OPC_MoveChild, 9, ++/*202664*/ OPC_CheckInteger, 1, ++/*202666*/ OPC_CheckType, MVT::i32, ++/*202668*/ OPC_MoveParent, ++/*202669*/ OPC_MoveChild, 10, ++/*202671*/ OPC_CheckInteger, 1, ++/*202673*/ OPC_CheckType, MVT::i32, ++/*202675*/ OPC_MoveParent, ++/*202676*/ OPC_MoveChild, 11, ++/*202678*/ OPC_CheckInteger, 1, ++/*202680*/ OPC_CheckType, MVT::i32, ++/*202682*/ OPC_MoveParent, ++/*202683*/ OPC_MoveChild, 12, ++/*202685*/ OPC_CheckInteger, 1, ++/*202687*/ OPC_CheckType, MVT::i32, ++/*202689*/ OPC_MoveParent, ++/*202690*/ OPC_MoveChild, 13, ++/*202692*/ OPC_CheckInteger, 1, ++/*202694*/ OPC_CheckType, MVT::i32, ++/*202696*/ OPC_MoveParent, ++/*202697*/ OPC_MoveChild, 14, ++/*202699*/ OPC_CheckInteger, 1, ++/*202701*/ OPC_CheckType, MVT::i32, ++/*202703*/ OPC_MoveParent, ++/*202704*/ OPC_MoveChild, 15, ++/*202706*/ OPC_CheckInteger, 1, ++/*202708*/ OPC_CheckType, MVT::i32, ++/*202710*/ OPC_MoveParent, ++/*202711*/ OPC_CheckType, MVT::v16i8, ++/*202713*/ OPC_MoveParent, ++/*202714*/ OPC_CheckType, MVT::v16i8, ++/*202716*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*202718*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a)), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*202726*/ 0, /*End of Scope*/ ++/*202727*/ /*Scope*/ 41|128,4/*553*/, /*->203282*/ ++/*202729*/ OPC_MoveChild0, ++/*202730*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*202733*/ OPC_CheckChild0Integer, 1, ++/*202735*/ OPC_CheckChild0Type, MVT::i32, ++/*202737*/ OPC_CheckChild1Integer, 1, ++/*202739*/ OPC_CheckChild1Type, MVT::i32, ++/*202741*/ OPC_CheckChild2Integer, 1, ++/*202743*/ OPC_CheckChild2Type, MVT::i32, ++/*202745*/ OPC_CheckChild3Integer, 1, ++/*202747*/ OPC_CheckChild3Type, MVT::i32, ++/*202749*/ OPC_CheckChild4Integer, 1, ++/*202751*/ OPC_CheckChild4Type, MVT::i32, ++/*202753*/ OPC_MoveChild5, ++/*202754*/ OPC_CheckInteger, 1, ++/*202756*/ OPC_CheckType, MVT::i32, ++/*202758*/ OPC_MoveParent, ++/*202759*/ OPC_MoveChild6, ++/*202760*/ OPC_CheckInteger, 1, ++/*202762*/ OPC_CheckType, MVT::i32, ++/*202764*/ OPC_MoveParent, ++/*202765*/ OPC_MoveChild7, ++/*202766*/ OPC_CheckInteger, 1, ++/*202768*/ OPC_CheckType, MVT::i32, ++/*202770*/ OPC_MoveParent, ++/*202771*/ OPC_MoveChild, 8, ++/*202773*/ OPC_CheckInteger, 1, ++/*202775*/ OPC_CheckType, MVT::i32, ++/*202777*/ OPC_MoveParent, ++/*202778*/ OPC_MoveChild, 9, ++/*202780*/ OPC_CheckInteger, 1, ++/*202782*/ OPC_CheckType, MVT::i32, ++/*202784*/ OPC_MoveParent, ++/*202785*/ OPC_MoveChild, 10, ++/*202787*/ OPC_CheckInteger, 1, ++/*202789*/ OPC_CheckType, MVT::i32, ++/*202791*/ OPC_MoveParent, ++/*202792*/ OPC_MoveChild, 11, ++/*202794*/ OPC_CheckInteger, 1, ++/*202796*/ OPC_CheckType, MVT::i32, ++/*202798*/ OPC_MoveParent, ++/*202799*/ OPC_MoveChild, 12, ++/*202801*/ OPC_CheckInteger, 1, ++/*202803*/ OPC_CheckType, MVT::i32, ++/*202805*/ OPC_MoveParent, ++/*202806*/ OPC_MoveChild, 13, ++/*202808*/ OPC_CheckInteger, 1, ++/*202810*/ OPC_CheckType, MVT::i32, ++/*202812*/ OPC_MoveParent, ++/*202813*/ OPC_MoveChild, 14, ++/*202815*/ OPC_CheckInteger, 1, ++/*202817*/ OPC_CheckType, MVT::i32, ++/*202819*/ OPC_MoveParent, ++/*202820*/ OPC_MoveChild, 15, ++/*202822*/ OPC_CheckInteger, 1, ++/*202824*/ OPC_CheckType, MVT::i32, ++/*202826*/ OPC_MoveParent, ++/*202827*/ OPC_MoveParent, ++/*202828*/ OPC_MoveChild1, ++/*202829*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*202832*/ OPC_Scope, 94|128,1/*222*/, /*->203057*/ // 2 children in Scope ++/*202835*/ OPC_CheckChild0Same, 1, ++/*202837*/ OPC_CheckChild1Same, 0, ++/*202839*/ OPC_MoveParent, ++/*202840*/ OPC_MoveParent, ++/*202841*/ OPC_MoveChild1, ++/*202842*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*202845*/ OPC_CheckChild0Integer, 7, ++/*202847*/ OPC_CheckChild0Type, MVT::i32, ++/*202849*/ OPC_CheckChild1Integer, 7, ++/*202851*/ OPC_CheckChild1Type, MVT::i32, ++/*202853*/ OPC_CheckChild2Integer, 7, ++/*202855*/ OPC_CheckChild2Type, MVT::i32, ++/*202857*/ OPC_CheckChild3Integer, 7, ++/*202859*/ OPC_CheckChild3Type, MVT::i32, ++/*202861*/ OPC_CheckChild4Integer, 7, ++/*202863*/ OPC_CheckChild4Type, MVT::i32, ++/*202865*/ OPC_MoveChild5, ++/*202866*/ OPC_CheckInteger, 7, ++/*202868*/ OPC_CheckType, MVT::i32, ++/*202870*/ OPC_MoveParent, ++/*202871*/ OPC_MoveChild6, ++/*202872*/ OPC_CheckInteger, 7, ++/*202874*/ OPC_CheckType, MVT::i32, ++/*202876*/ OPC_MoveParent, ++/*202877*/ OPC_MoveChild7, ++/*202878*/ OPC_CheckInteger, 7, ++/*202880*/ OPC_CheckType, MVT::i32, ++/*202882*/ OPC_MoveParent, ++/*202883*/ OPC_MoveChild, 8, ++/*202885*/ OPC_CheckInteger, 7, ++/*202887*/ OPC_CheckType, MVT::i32, ++/*202889*/ OPC_MoveParent, ++/*202890*/ OPC_MoveChild, 9, ++/*202892*/ OPC_CheckInteger, 7, ++/*202894*/ OPC_CheckType, MVT::i32, ++/*202896*/ OPC_MoveParent, ++/*202897*/ OPC_MoveChild, 10, ++/*202899*/ OPC_CheckInteger, 7, ++/*202901*/ OPC_CheckType, MVT::i32, ++/*202903*/ OPC_MoveParent, ++/*202904*/ OPC_MoveChild, 11, ++/*202906*/ OPC_CheckInteger, 7, ++/*202908*/ OPC_CheckType, MVT::i32, ++/*202910*/ OPC_MoveParent, ++/*202911*/ OPC_MoveChild, 12, ++/*202913*/ OPC_CheckInteger, 7, ++/*202915*/ OPC_CheckType, MVT::i32, ++/*202917*/ OPC_MoveParent, ++/*202918*/ OPC_MoveChild, 13, ++/*202920*/ OPC_CheckInteger, 7, ++/*202922*/ OPC_CheckType, MVT::i32, ++/*202924*/ OPC_MoveParent, ++/*202925*/ OPC_MoveChild, 14, ++/*202927*/ OPC_CheckInteger, 7, ++/*202929*/ OPC_CheckType, MVT::i32, ++/*202931*/ OPC_MoveParent, ++/*202932*/ OPC_MoveChild, 15, ++/*202934*/ OPC_CheckInteger, 7, ++/*202936*/ OPC_CheckType, MVT::i32, ++/*202938*/ OPC_MoveParent, ++/*202939*/ OPC_CheckType, MVT::v16i8, ++/*202941*/ OPC_MoveParent, ++/*202942*/ OPC_MoveParent, ++/*202943*/ OPC_MoveParent, ++/*202944*/ OPC_MoveChild1, ++/*202945*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*202948*/ OPC_CheckChild0Integer, 1, ++/*202950*/ OPC_CheckChild0Type, MVT::i32, ++/*202952*/ OPC_CheckChild1Integer, 1, ++/*202954*/ OPC_CheckChild1Type, MVT::i32, ++/*202956*/ OPC_CheckChild2Integer, 1, ++/*202958*/ OPC_CheckChild2Type, MVT::i32, ++/*202960*/ OPC_CheckChild3Integer, 1, ++/*202962*/ OPC_CheckChild3Type, MVT::i32, ++/*202964*/ OPC_CheckChild4Integer, 1, ++/*202966*/ OPC_CheckChild4Type, MVT::i32, ++/*202968*/ OPC_MoveChild5, ++/*202969*/ OPC_CheckInteger, 1, ++/*202971*/ OPC_CheckType, MVT::i32, ++/*202973*/ OPC_MoveParent, ++/*202974*/ OPC_MoveChild6, ++/*202975*/ OPC_CheckInteger, 1, ++/*202977*/ OPC_CheckType, MVT::i32, ++/*202979*/ OPC_MoveParent, ++/*202980*/ OPC_MoveChild7, ++/*202981*/ OPC_CheckInteger, 1, ++/*202983*/ OPC_CheckType, MVT::i32, ++/*202985*/ OPC_MoveParent, ++/*202986*/ OPC_MoveChild, 8, ++/*202988*/ OPC_CheckInteger, 1, ++/*202990*/ OPC_CheckType, MVT::i32, ++/*202992*/ OPC_MoveParent, ++/*202993*/ OPC_MoveChild, 9, ++/*202995*/ OPC_CheckInteger, 1, ++/*202997*/ OPC_CheckType, MVT::i32, ++/*202999*/ OPC_MoveParent, ++/*203000*/ OPC_MoveChild, 10, ++/*203002*/ OPC_CheckInteger, 1, ++/*203004*/ OPC_CheckType, MVT::i32, ++/*203006*/ OPC_MoveParent, ++/*203007*/ OPC_MoveChild, 11, ++/*203009*/ OPC_CheckInteger, 1, ++/*203011*/ OPC_CheckType, MVT::i32, ++/*203013*/ OPC_MoveParent, ++/*203014*/ OPC_MoveChild, 12, ++/*203016*/ OPC_CheckInteger, 1, ++/*203018*/ OPC_CheckType, MVT::i32, ++/*203020*/ OPC_MoveParent, ++/*203021*/ OPC_MoveChild, 13, ++/*203023*/ OPC_CheckInteger, 1, ++/*203025*/ OPC_CheckType, MVT::i32, ++/*203027*/ OPC_MoveParent, ++/*203028*/ OPC_MoveChild, 14, ++/*203030*/ OPC_CheckInteger, 1, ++/*203032*/ OPC_CheckType, MVT::i32, ++/*203034*/ OPC_MoveParent, ++/*203035*/ OPC_MoveChild, 15, ++/*203037*/ OPC_CheckInteger, 1, ++/*203039*/ OPC_CheckType, MVT::i32, ++/*203041*/ OPC_MoveParent, ++/*203042*/ OPC_CheckType, MVT::v16i8, ++/*203044*/ OPC_MoveParent, ++/*203045*/ OPC_CheckType, MVT::v16i8, ++/*203047*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*203049*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a)), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*203057*/ /*Scope*/ 94|128,1/*222*/, /*->203281*/ ++/*203059*/ OPC_CheckChild0Same, 0, ++/*203061*/ OPC_CheckChild1Same, 1, ++/*203063*/ OPC_MoveParent, ++/*203064*/ OPC_MoveParent, ++/*203065*/ OPC_MoveChild1, ++/*203066*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*203069*/ OPC_CheckChild0Integer, 7, ++/*203071*/ OPC_CheckChild0Type, MVT::i32, ++/*203073*/ OPC_CheckChild1Integer, 7, ++/*203075*/ OPC_CheckChild1Type, MVT::i32, ++/*203077*/ OPC_CheckChild2Integer, 7, ++/*203079*/ OPC_CheckChild2Type, MVT::i32, ++/*203081*/ OPC_CheckChild3Integer, 7, ++/*203083*/ OPC_CheckChild3Type, MVT::i32, ++/*203085*/ OPC_CheckChild4Integer, 7, ++/*203087*/ OPC_CheckChild4Type, MVT::i32, ++/*203089*/ OPC_MoveChild5, ++/*203090*/ OPC_CheckInteger, 7, ++/*203092*/ OPC_CheckType, MVT::i32, ++/*203094*/ OPC_MoveParent, ++/*203095*/ OPC_MoveChild6, ++/*203096*/ OPC_CheckInteger, 7, ++/*203098*/ OPC_CheckType, MVT::i32, ++/*203100*/ OPC_MoveParent, ++/*203101*/ OPC_MoveChild7, ++/*203102*/ OPC_CheckInteger, 7, ++/*203104*/ OPC_CheckType, MVT::i32, ++/*203106*/ OPC_MoveParent, ++/*203107*/ OPC_MoveChild, 8, ++/*203109*/ OPC_CheckInteger, 7, ++/*203111*/ OPC_CheckType, MVT::i32, ++/*203113*/ OPC_MoveParent, ++/*203114*/ OPC_MoveChild, 9, ++/*203116*/ OPC_CheckInteger, 7, ++/*203118*/ OPC_CheckType, MVT::i32, ++/*203120*/ OPC_MoveParent, ++/*203121*/ OPC_MoveChild, 10, ++/*203123*/ OPC_CheckInteger, 7, ++/*203125*/ OPC_CheckType, MVT::i32, ++/*203127*/ OPC_MoveParent, ++/*203128*/ OPC_MoveChild, 11, ++/*203130*/ OPC_CheckInteger, 7, ++/*203132*/ OPC_CheckType, MVT::i32, ++/*203134*/ OPC_MoveParent, ++/*203135*/ OPC_MoveChild, 12, ++/*203137*/ OPC_CheckInteger, 7, ++/*203139*/ OPC_CheckType, MVT::i32, ++/*203141*/ OPC_MoveParent, ++/*203142*/ OPC_MoveChild, 13, ++/*203144*/ OPC_CheckInteger, 7, ++/*203146*/ OPC_CheckType, MVT::i32, ++/*203148*/ OPC_MoveParent, ++/*203149*/ OPC_MoveChild, 14, ++/*203151*/ OPC_CheckInteger, 7, ++/*203153*/ OPC_CheckType, MVT::i32, ++/*203155*/ OPC_MoveParent, ++/*203156*/ OPC_MoveChild, 15, ++/*203158*/ OPC_CheckInteger, 7, ++/*203160*/ OPC_CheckType, MVT::i32, ++/*203162*/ OPC_MoveParent, ++/*203163*/ OPC_CheckType, MVT::v16i8, ++/*203165*/ OPC_MoveParent, ++/*203166*/ OPC_MoveParent, ++/*203167*/ OPC_MoveParent, ++/*203168*/ OPC_MoveChild1, ++/*203169*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*203172*/ OPC_CheckChild0Integer, 1, ++/*203174*/ OPC_CheckChild0Type, MVT::i32, ++/*203176*/ OPC_CheckChild1Integer, 1, ++/*203178*/ OPC_CheckChild1Type, MVT::i32, ++/*203180*/ OPC_CheckChild2Integer, 1, ++/*203182*/ OPC_CheckChild2Type, MVT::i32, ++/*203184*/ OPC_CheckChild3Integer, 1, ++/*203186*/ OPC_CheckChild3Type, MVT::i32, ++/*203188*/ OPC_CheckChild4Integer, 1, ++/*203190*/ OPC_CheckChild4Type, MVT::i32, ++/*203192*/ OPC_MoveChild5, ++/*203193*/ OPC_CheckInteger, 1, ++/*203195*/ OPC_CheckType, MVT::i32, ++/*203197*/ OPC_MoveParent, ++/*203198*/ OPC_MoveChild6, ++/*203199*/ OPC_CheckInteger, 1, ++/*203201*/ OPC_CheckType, MVT::i32, ++/*203203*/ OPC_MoveParent, ++/*203204*/ OPC_MoveChild7, ++/*203205*/ OPC_CheckInteger, 1, ++/*203207*/ OPC_CheckType, MVT::i32, ++/*203209*/ OPC_MoveParent, ++/*203210*/ OPC_MoveChild, 8, ++/*203212*/ OPC_CheckInteger, 1, ++/*203214*/ OPC_CheckType, MVT::i32, ++/*203216*/ OPC_MoveParent, ++/*203217*/ OPC_MoveChild, 9, ++/*203219*/ OPC_CheckInteger, 1, ++/*203221*/ OPC_CheckType, MVT::i32, ++/*203223*/ OPC_MoveParent, ++/*203224*/ OPC_MoveChild, 10, ++/*203226*/ OPC_CheckInteger, 1, ++/*203228*/ OPC_CheckType, MVT::i32, ++/*203230*/ OPC_MoveParent, ++/*203231*/ OPC_MoveChild, 11, ++/*203233*/ OPC_CheckInteger, 1, ++/*203235*/ OPC_CheckType, MVT::i32, ++/*203237*/ OPC_MoveParent, ++/*203238*/ OPC_MoveChild, 12, ++/*203240*/ OPC_CheckInteger, 1, ++/*203242*/ OPC_CheckType, MVT::i32, ++/*203244*/ OPC_MoveParent, ++/*203245*/ OPC_MoveChild, 13, ++/*203247*/ OPC_CheckInteger, 1, ++/*203249*/ OPC_CheckType, MVT::i32, ++/*203251*/ OPC_MoveParent, ++/*203252*/ OPC_MoveChild, 14, ++/*203254*/ OPC_CheckInteger, 1, ++/*203256*/ OPC_CheckType, MVT::i32, ++/*203258*/ OPC_MoveParent, ++/*203259*/ OPC_MoveChild, 15, ++/*203261*/ OPC_CheckInteger, 1, ++/*203263*/ OPC_CheckType, MVT::i32, ++/*203265*/ OPC_MoveParent, ++/*203266*/ OPC_CheckType, MVT::v16i8, ++/*203268*/ OPC_MoveParent, ++/*203269*/ OPC_CheckType, MVT::v16i8, ++/*203271*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*203273*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a)), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*203281*/ 0, /*End of Scope*/ ++/*203282*/ 0, /*End of Scope*/ ++/*203283*/ /*Scope*/ 77|128,30/*3917*/, /*->207202*/ ++/*203285*/ OPC_RecordChild0, // #1 = $a ++/*203286*/ OPC_MoveChild1, ++/*203287*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*203290*/ OPC_CheckChild0Integer, 1, ++/*203292*/ OPC_CheckChild0Type, MVT::i32, ++/*203294*/ OPC_CheckChild1Integer, 1, ++/*203296*/ OPC_CheckChild1Type, MVT::i32, ++/*203298*/ OPC_CheckChild2Integer, 1, ++/*203300*/ OPC_CheckChild2Type, MVT::i32, ++/*203302*/ OPC_CheckChild3Integer, 1, ++/*203304*/ OPC_CheckChild3Type, MVT::i32, ++/*203306*/ OPC_CheckChild4Integer, 1, ++/*203308*/ OPC_CheckChild4Type, MVT::i32, ++/*203310*/ OPC_MoveChild5, ++/*203311*/ OPC_CheckInteger, 1, ++/*203313*/ OPC_CheckType, MVT::i32, ++/*203315*/ OPC_MoveParent, ++/*203316*/ OPC_MoveChild6, ++/*203317*/ OPC_CheckInteger, 1, ++/*203319*/ OPC_CheckType, MVT::i32, ++/*203321*/ OPC_MoveParent, ++/*203322*/ OPC_MoveChild7, ++/*203323*/ OPC_CheckInteger, 1, ++/*203325*/ OPC_CheckType, MVT::i32, ++/*203327*/ OPC_MoveParent, ++/*203328*/ OPC_MoveChild, 8, ++/*203330*/ OPC_CheckInteger, 1, ++/*203332*/ OPC_CheckType, MVT::i32, ++/*203334*/ OPC_MoveParent, ++/*203335*/ OPC_MoveChild, 9, ++/*203337*/ OPC_CheckInteger, 1, ++/*203339*/ OPC_CheckType, MVT::i32, ++/*203341*/ OPC_MoveParent, ++/*203342*/ OPC_MoveChild, 10, ++/*203344*/ OPC_CheckInteger, 1, ++/*203346*/ OPC_CheckType, MVT::i32, ++/*203348*/ OPC_MoveParent, ++/*203349*/ OPC_MoveChild, 11, ++/*203351*/ OPC_CheckInteger, 1, ++/*203353*/ OPC_CheckType, MVT::i32, ++/*203355*/ OPC_MoveParent, ++/*203356*/ OPC_MoveChild, 12, ++/*203358*/ OPC_CheckInteger, 1, ++/*203360*/ OPC_CheckType, MVT::i32, ++/*203362*/ OPC_MoveParent, ++/*203363*/ OPC_MoveChild, 13, ++/*203365*/ OPC_CheckInteger, 1, ++/*203367*/ OPC_CheckType, MVT::i32, ++/*203369*/ OPC_MoveParent, ++/*203370*/ OPC_MoveChild, 14, ++/*203372*/ OPC_CheckInteger, 1, ++/*203374*/ OPC_CheckType, MVT::i32, ++/*203376*/ OPC_MoveParent, ++/*203377*/ OPC_MoveChild, 15, ++/*203379*/ OPC_CheckInteger, 1, ++/*203381*/ OPC_CheckType, MVT::i32, ++/*203383*/ OPC_MoveParent, ++/*203384*/ OPC_MoveParent, ++/*203385*/ OPC_MoveParent, ++/*203386*/ OPC_MoveParent, ++/*203387*/ OPC_MoveChild1, ++/*203388*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*203391*/ OPC_MoveChild0, ++/*203392*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*203395*/ OPC_Scope, 24|128,15/*1944*/, /*->205342*/ // 4 children in Scope ++/*203398*/ OPC_MoveChild0, ++/*203399*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*203402*/ OPC_Scope, 65|128,2/*321*/, /*->203726*/ // 6 children in Scope ++/*203405*/ OPC_MoveChild0, ++/*203406*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*203409*/ OPC_CheckChild0Integer, 1, ++/*203411*/ OPC_CheckChild0Type, MVT::i32, ++/*203413*/ OPC_CheckChild1Integer, 1, ++/*203415*/ OPC_CheckChild1Type, MVT::i32, ++/*203417*/ OPC_CheckChild2Integer, 1, ++/*203419*/ OPC_CheckChild2Type, MVT::i32, ++/*203421*/ OPC_CheckChild3Integer, 1, ++/*203423*/ OPC_CheckChild3Type, MVT::i32, ++/*203425*/ OPC_CheckChild4Integer, 1, ++/*203427*/ OPC_CheckChild4Type, MVT::i32, ++/*203429*/ OPC_MoveChild5, ++/*203430*/ OPC_CheckInteger, 1, ++/*203432*/ OPC_CheckType, MVT::i32, ++/*203434*/ OPC_MoveParent, ++/*203435*/ OPC_MoveChild6, ++/*203436*/ OPC_CheckInteger, 1, ++/*203438*/ OPC_CheckType, MVT::i32, ++/*203440*/ OPC_MoveParent, ++/*203441*/ OPC_MoveChild7, ++/*203442*/ OPC_CheckInteger, 1, ++/*203444*/ OPC_CheckType, MVT::i32, ++/*203446*/ OPC_MoveParent, ++/*203447*/ OPC_MoveChild, 8, ++/*203449*/ OPC_CheckInteger, 1, ++/*203451*/ OPC_CheckType, MVT::i32, ++/*203453*/ OPC_MoveParent, ++/*203454*/ OPC_MoveChild, 9, ++/*203456*/ OPC_CheckInteger, 1, ++/*203458*/ OPC_CheckType, MVT::i32, ++/*203460*/ OPC_MoveParent, ++/*203461*/ OPC_MoveChild, 10, ++/*203463*/ OPC_CheckInteger, 1, ++/*203465*/ OPC_CheckType, MVT::i32, ++/*203467*/ OPC_MoveParent, ++/*203468*/ OPC_MoveChild, 11, ++/*203470*/ OPC_CheckInteger, 1, ++/*203472*/ OPC_CheckType, MVT::i32, ++/*203474*/ OPC_MoveParent, ++/*203475*/ OPC_MoveChild, 12, ++/*203477*/ OPC_CheckInteger, 1, ++/*203479*/ OPC_CheckType, MVT::i32, ++/*203481*/ OPC_MoveParent, ++/*203482*/ OPC_MoveChild, 13, ++/*203484*/ OPC_CheckInteger, 1, ++/*203486*/ OPC_CheckType, MVT::i32, ++/*203488*/ OPC_MoveParent, ++/*203489*/ OPC_MoveChild, 14, ++/*203491*/ OPC_CheckInteger, 1, ++/*203493*/ OPC_CheckType, MVT::i32, ++/*203495*/ OPC_MoveParent, ++/*203496*/ OPC_MoveChild, 15, ++/*203498*/ OPC_CheckInteger, 1, ++/*203500*/ OPC_CheckType, MVT::i32, ++/*203502*/ OPC_MoveParent, ++/*203503*/ OPC_MoveParent, ++/*203504*/ OPC_CheckChild1Same, 1, ++/*203506*/ OPC_MoveParent, ++/*203507*/ OPC_CheckChild1Same, 0, ++/*203509*/ OPC_MoveParent, ++/*203510*/ OPC_MoveChild1, ++/*203511*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*203514*/ OPC_CheckChild0Integer, 7, ++/*203516*/ OPC_CheckChild0Type, MVT::i32, ++/*203518*/ OPC_CheckChild1Integer, 7, ++/*203520*/ OPC_CheckChild1Type, MVT::i32, ++/*203522*/ OPC_CheckChild2Integer, 7, ++/*203524*/ OPC_CheckChild2Type, MVT::i32, ++/*203526*/ OPC_CheckChild3Integer, 7, ++/*203528*/ OPC_CheckChild3Type, MVT::i32, ++/*203530*/ OPC_CheckChild4Integer, 7, ++/*203532*/ OPC_CheckChild4Type, MVT::i32, ++/*203534*/ OPC_MoveChild5, ++/*203535*/ OPC_CheckInteger, 7, ++/*203537*/ OPC_CheckType, MVT::i32, ++/*203539*/ OPC_MoveParent, ++/*203540*/ OPC_MoveChild6, ++/*203541*/ OPC_CheckInteger, 7, ++/*203543*/ OPC_CheckType, MVT::i32, ++/*203545*/ OPC_MoveParent, ++/*203546*/ OPC_MoveChild7, ++/*203547*/ OPC_CheckInteger, 7, ++/*203549*/ OPC_CheckType, MVT::i32, ++/*203551*/ OPC_MoveParent, ++/*203552*/ OPC_MoveChild, 8, ++/*203554*/ OPC_CheckInteger, 7, ++/*203556*/ OPC_CheckType, MVT::i32, ++/*203558*/ OPC_MoveParent, ++/*203559*/ OPC_MoveChild, 9, ++/*203561*/ OPC_CheckInteger, 7, ++/*203563*/ OPC_CheckType, MVT::i32, ++/*203565*/ OPC_MoveParent, ++/*203566*/ OPC_MoveChild, 10, ++/*203568*/ OPC_CheckInteger, 7, ++/*203570*/ OPC_CheckType, MVT::i32, ++/*203572*/ OPC_MoveParent, ++/*203573*/ OPC_MoveChild, 11, ++/*203575*/ OPC_CheckInteger, 7, ++/*203577*/ OPC_CheckType, MVT::i32, ++/*203579*/ OPC_MoveParent, ++/*203580*/ OPC_MoveChild, 12, ++/*203582*/ OPC_CheckInteger, 7, ++/*203584*/ OPC_CheckType, MVT::i32, ++/*203586*/ OPC_MoveParent, ++/*203587*/ OPC_MoveChild, 13, ++/*203589*/ OPC_CheckInteger, 7, ++/*203591*/ OPC_CheckType, MVT::i32, ++/*203593*/ OPC_MoveParent, ++/*203594*/ OPC_MoveChild, 14, ++/*203596*/ OPC_CheckInteger, 7, ++/*203598*/ OPC_CheckType, MVT::i32, ++/*203600*/ OPC_MoveParent, ++/*203601*/ OPC_MoveChild, 15, ++/*203603*/ OPC_CheckInteger, 7, ++/*203605*/ OPC_CheckType, MVT::i32, ++/*203607*/ OPC_MoveParent, ++/*203608*/ OPC_CheckType, MVT::v16i8, ++/*203610*/ OPC_MoveParent, ++/*203611*/ OPC_MoveParent, ++/*203612*/ OPC_MoveParent, ++/*203613*/ OPC_MoveChild1, ++/*203614*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*203617*/ OPC_CheckChild0Integer, 1, ++/*203619*/ OPC_CheckChild0Type, MVT::i32, ++/*203621*/ OPC_CheckChild1Integer, 1, ++/*203623*/ OPC_CheckChild1Type, MVT::i32, ++/*203625*/ OPC_CheckChild2Integer, 1, ++/*203627*/ OPC_CheckChild2Type, MVT::i32, ++/*203629*/ OPC_CheckChild3Integer, 1, ++/*203631*/ OPC_CheckChild3Type, MVT::i32, ++/*203633*/ OPC_CheckChild4Integer, 1, ++/*203635*/ OPC_CheckChild4Type, MVT::i32, ++/*203637*/ OPC_MoveChild5, ++/*203638*/ OPC_CheckInteger, 1, ++/*203640*/ OPC_CheckType, MVT::i32, ++/*203642*/ OPC_MoveParent, ++/*203643*/ OPC_MoveChild6, ++/*203644*/ OPC_CheckInteger, 1, ++/*203646*/ OPC_CheckType, MVT::i32, ++/*203648*/ OPC_MoveParent, ++/*203649*/ OPC_MoveChild7, ++/*203650*/ OPC_CheckInteger, 1, ++/*203652*/ OPC_CheckType, MVT::i32, ++/*203654*/ OPC_MoveParent, ++/*203655*/ OPC_MoveChild, 8, ++/*203657*/ OPC_CheckInteger, 1, ++/*203659*/ OPC_CheckType, MVT::i32, ++/*203661*/ OPC_MoveParent, ++/*203662*/ OPC_MoveChild, 9, ++/*203664*/ OPC_CheckInteger, 1, ++/*203666*/ OPC_CheckType, MVT::i32, ++/*203668*/ OPC_MoveParent, ++/*203669*/ OPC_MoveChild, 10, ++/*203671*/ OPC_CheckInteger, 1, ++/*203673*/ OPC_CheckType, MVT::i32, ++/*203675*/ OPC_MoveParent, ++/*203676*/ OPC_MoveChild, 11, ++/*203678*/ OPC_CheckInteger, 1, ++/*203680*/ OPC_CheckType, MVT::i32, ++/*203682*/ OPC_MoveParent, ++/*203683*/ OPC_MoveChild, 12, ++/*203685*/ OPC_CheckInteger, 1, ++/*203687*/ OPC_CheckType, MVT::i32, ++/*203689*/ OPC_MoveParent, ++/*203690*/ OPC_MoveChild, 13, ++/*203692*/ OPC_CheckInteger, 1, ++/*203694*/ OPC_CheckType, MVT::i32, ++/*203696*/ OPC_MoveParent, ++/*203697*/ OPC_MoveChild, 14, ++/*203699*/ OPC_CheckInteger, 1, ++/*203701*/ OPC_CheckType, MVT::i32, ++/*203703*/ OPC_MoveParent, ++/*203704*/ OPC_MoveChild, 15, ++/*203706*/ OPC_CheckInteger, 1, ++/*203708*/ OPC_CheckType, MVT::i32, ++/*203710*/ OPC_MoveParent, ++/*203711*/ OPC_CheckType, MVT::v16i8, ++/*203713*/ OPC_MoveParent, ++/*203714*/ OPC_CheckType, MVT::v16i8, ++/*203716*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*203718*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a), LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*203726*/ /*Scope*/ 65|128,2/*321*/, /*->204049*/ ++/*203728*/ OPC_CheckChild0Same, 1, ++/*203730*/ OPC_MoveChild1, ++/*203731*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*203734*/ OPC_CheckChild0Integer, 1, ++/*203736*/ OPC_CheckChild0Type, MVT::i32, ++/*203738*/ OPC_CheckChild1Integer, 1, ++/*203740*/ OPC_CheckChild1Type, MVT::i32, ++/*203742*/ OPC_CheckChild2Integer, 1, ++/*203744*/ OPC_CheckChild2Type, MVT::i32, ++/*203746*/ OPC_CheckChild3Integer, 1, ++/*203748*/ OPC_CheckChild3Type, MVT::i32, ++/*203750*/ OPC_CheckChild4Integer, 1, ++/*203752*/ OPC_CheckChild4Type, MVT::i32, ++/*203754*/ OPC_MoveChild5, ++/*203755*/ OPC_CheckInteger, 1, ++/*203757*/ OPC_CheckType, MVT::i32, ++/*203759*/ OPC_MoveParent, ++/*203760*/ OPC_MoveChild6, ++/*203761*/ OPC_CheckInteger, 1, ++/*203763*/ OPC_CheckType, MVT::i32, ++/*203765*/ OPC_MoveParent, ++/*203766*/ OPC_MoveChild7, ++/*203767*/ OPC_CheckInteger, 1, ++/*203769*/ OPC_CheckType, MVT::i32, ++/*203771*/ OPC_MoveParent, ++/*203772*/ OPC_MoveChild, 8, ++/*203774*/ OPC_CheckInteger, 1, ++/*203776*/ OPC_CheckType, MVT::i32, ++/*203778*/ OPC_MoveParent, ++/*203779*/ OPC_MoveChild, 9, ++/*203781*/ OPC_CheckInteger, 1, ++/*203783*/ OPC_CheckType, MVT::i32, ++/*203785*/ OPC_MoveParent, ++/*203786*/ OPC_MoveChild, 10, ++/*203788*/ OPC_CheckInteger, 1, ++/*203790*/ OPC_CheckType, MVT::i32, ++/*203792*/ OPC_MoveParent, ++/*203793*/ OPC_MoveChild, 11, ++/*203795*/ OPC_CheckInteger, 1, ++/*203797*/ OPC_CheckType, MVT::i32, ++/*203799*/ OPC_MoveParent, ++/*203800*/ OPC_MoveChild, 12, ++/*203802*/ OPC_CheckInteger, 1, ++/*203804*/ OPC_CheckType, MVT::i32, ++/*203806*/ OPC_MoveParent, ++/*203807*/ OPC_MoveChild, 13, ++/*203809*/ OPC_CheckInteger, 1, ++/*203811*/ OPC_CheckType, MVT::i32, ++/*203813*/ OPC_MoveParent, ++/*203814*/ OPC_MoveChild, 14, ++/*203816*/ OPC_CheckInteger, 1, ++/*203818*/ OPC_CheckType, MVT::i32, ++/*203820*/ OPC_MoveParent, ++/*203821*/ OPC_MoveChild, 15, ++/*203823*/ OPC_CheckInteger, 1, ++/*203825*/ OPC_CheckType, MVT::i32, ++/*203827*/ OPC_MoveParent, ++/*203828*/ OPC_MoveParent, ++/*203829*/ OPC_MoveParent, ++/*203830*/ OPC_CheckChild1Same, 0, ++/*203832*/ OPC_MoveParent, ++/*203833*/ OPC_MoveChild1, ++/*203834*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*203837*/ OPC_CheckChild0Integer, 7, ++/*203839*/ OPC_CheckChild0Type, MVT::i32, ++/*203841*/ OPC_CheckChild1Integer, 7, ++/*203843*/ OPC_CheckChild1Type, MVT::i32, ++/*203845*/ OPC_CheckChild2Integer, 7, ++/*203847*/ OPC_CheckChild2Type, MVT::i32, ++/*203849*/ OPC_CheckChild3Integer, 7, ++/*203851*/ OPC_CheckChild3Type, MVT::i32, ++/*203853*/ OPC_CheckChild4Integer, 7, ++/*203855*/ OPC_CheckChild4Type, MVT::i32, ++/*203857*/ OPC_MoveChild5, ++/*203858*/ OPC_CheckInteger, 7, ++/*203860*/ OPC_CheckType, MVT::i32, ++/*203862*/ OPC_MoveParent, ++/*203863*/ OPC_MoveChild6, ++/*203864*/ OPC_CheckInteger, 7, ++/*203866*/ OPC_CheckType, MVT::i32, ++/*203868*/ OPC_MoveParent, ++/*203869*/ OPC_MoveChild7, ++/*203870*/ OPC_CheckInteger, 7, ++/*203872*/ OPC_CheckType, MVT::i32, ++/*203874*/ OPC_MoveParent, ++/*203875*/ OPC_MoveChild, 8, ++/*203877*/ OPC_CheckInteger, 7, ++/*203879*/ OPC_CheckType, MVT::i32, ++/*203881*/ OPC_MoveParent, ++/*203882*/ OPC_MoveChild, 9, ++/*203884*/ OPC_CheckInteger, 7, ++/*203886*/ OPC_CheckType, MVT::i32, ++/*203888*/ OPC_MoveParent, ++/*203889*/ OPC_MoveChild, 10, ++/*203891*/ OPC_CheckInteger, 7, ++/*203893*/ OPC_CheckType, MVT::i32, ++/*203895*/ OPC_MoveParent, ++/*203896*/ OPC_MoveChild, 11, ++/*203898*/ OPC_CheckInteger, 7, ++/*203900*/ OPC_CheckType, MVT::i32, ++/*203902*/ OPC_MoveParent, ++/*203903*/ OPC_MoveChild, 12, ++/*203905*/ OPC_CheckInteger, 7, ++/*203907*/ OPC_CheckType, MVT::i32, ++/*203909*/ OPC_MoveParent, ++/*203910*/ OPC_MoveChild, 13, ++/*203912*/ OPC_CheckInteger, 7, ++/*203914*/ OPC_CheckType, MVT::i32, ++/*203916*/ OPC_MoveParent, ++/*203917*/ OPC_MoveChild, 14, ++/*203919*/ OPC_CheckInteger, 7, ++/*203921*/ OPC_CheckType, MVT::i32, ++/*203923*/ OPC_MoveParent, ++/*203924*/ OPC_MoveChild, 15, ++/*203926*/ OPC_CheckInteger, 7, ++/*203928*/ OPC_CheckType, MVT::i32, ++/*203930*/ OPC_MoveParent, ++/*203931*/ OPC_CheckType, MVT::v16i8, ++/*203933*/ OPC_MoveParent, ++/*203934*/ OPC_MoveParent, ++/*203935*/ OPC_MoveParent, ++/*203936*/ OPC_MoveChild1, ++/*203937*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*203940*/ OPC_CheckChild0Integer, 1, ++/*203942*/ OPC_CheckChild0Type, MVT::i32, ++/*203944*/ OPC_CheckChild1Integer, 1, ++/*203946*/ OPC_CheckChild1Type, MVT::i32, ++/*203948*/ OPC_CheckChild2Integer, 1, ++/*203950*/ OPC_CheckChild2Type, MVT::i32, ++/*203952*/ OPC_CheckChild3Integer, 1, ++/*203954*/ OPC_CheckChild3Type, MVT::i32, ++/*203956*/ OPC_CheckChild4Integer, 1, ++/*203958*/ OPC_CheckChild4Type, MVT::i32, ++/*203960*/ OPC_MoveChild5, ++/*203961*/ OPC_CheckInteger, 1, ++/*203963*/ OPC_CheckType, MVT::i32, ++/*203965*/ OPC_MoveParent, ++/*203966*/ OPC_MoveChild6, ++/*203967*/ OPC_CheckInteger, 1, ++/*203969*/ OPC_CheckType, MVT::i32, ++/*203971*/ OPC_MoveParent, ++/*203972*/ OPC_MoveChild7, ++/*203973*/ OPC_CheckInteger, 1, ++/*203975*/ OPC_CheckType, MVT::i32, ++/*203977*/ OPC_MoveParent, ++/*203978*/ OPC_MoveChild, 8, ++/*203980*/ OPC_CheckInteger, 1, ++/*203982*/ OPC_CheckType, MVT::i32, ++/*203984*/ OPC_MoveParent, ++/*203985*/ OPC_MoveChild, 9, ++/*203987*/ OPC_CheckInteger, 1, ++/*203989*/ OPC_CheckType, MVT::i32, ++/*203991*/ OPC_MoveParent, ++/*203992*/ OPC_MoveChild, 10, ++/*203994*/ OPC_CheckInteger, 1, ++/*203996*/ OPC_CheckType, MVT::i32, ++/*203998*/ OPC_MoveParent, ++/*203999*/ OPC_MoveChild, 11, ++/*204001*/ OPC_CheckInteger, 1, ++/*204003*/ OPC_CheckType, MVT::i32, ++/*204005*/ OPC_MoveParent, ++/*204006*/ OPC_MoveChild, 12, ++/*204008*/ OPC_CheckInteger, 1, ++/*204010*/ OPC_CheckType, MVT::i32, ++/*204012*/ OPC_MoveParent, ++/*204013*/ OPC_MoveChild, 13, ++/*204015*/ OPC_CheckInteger, 1, ++/*204017*/ OPC_CheckType, MVT::i32, ++/*204019*/ OPC_MoveParent, ++/*204020*/ OPC_MoveChild, 14, ++/*204022*/ OPC_CheckInteger, 1, ++/*204024*/ OPC_CheckType, MVT::i32, ++/*204026*/ OPC_MoveParent, ++/*204027*/ OPC_MoveChild, 15, ++/*204029*/ OPC_CheckInteger, 1, ++/*204031*/ OPC_CheckType, MVT::i32, ++/*204033*/ OPC_MoveParent, ++/*204034*/ OPC_CheckType, MVT::v16i8, ++/*204036*/ OPC_MoveParent, ++/*204037*/ OPC_CheckType, MVT::v16i8, ++/*204039*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*204041*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*204049*/ /*Scope*/ 65|128,2/*321*/, /*->204372*/ ++/*204051*/ OPC_MoveChild0, ++/*204052*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*204055*/ OPC_CheckChild0Integer, 1, ++/*204057*/ OPC_CheckChild0Type, MVT::i32, ++/*204059*/ OPC_CheckChild1Integer, 1, ++/*204061*/ OPC_CheckChild1Type, MVT::i32, ++/*204063*/ OPC_CheckChild2Integer, 1, ++/*204065*/ OPC_CheckChild2Type, MVT::i32, ++/*204067*/ OPC_CheckChild3Integer, 1, ++/*204069*/ OPC_CheckChild3Type, MVT::i32, ++/*204071*/ OPC_CheckChild4Integer, 1, ++/*204073*/ OPC_CheckChild4Type, MVT::i32, ++/*204075*/ OPC_MoveChild5, ++/*204076*/ OPC_CheckInteger, 1, ++/*204078*/ OPC_CheckType, MVT::i32, ++/*204080*/ OPC_MoveParent, ++/*204081*/ OPC_MoveChild6, ++/*204082*/ OPC_CheckInteger, 1, ++/*204084*/ OPC_CheckType, MVT::i32, ++/*204086*/ OPC_MoveParent, ++/*204087*/ OPC_MoveChild7, ++/*204088*/ OPC_CheckInteger, 1, ++/*204090*/ OPC_CheckType, MVT::i32, ++/*204092*/ OPC_MoveParent, ++/*204093*/ OPC_MoveChild, 8, ++/*204095*/ OPC_CheckInteger, 1, ++/*204097*/ OPC_CheckType, MVT::i32, ++/*204099*/ OPC_MoveParent, ++/*204100*/ OPC_MoveChild, 9, ++/*204102*/ OPC_CheckInteger, 1, ++/*204104*/ OPC_CheckType, MVT::i32, ++/*204106*/ OPC_MoveParent, ++/*204107*/ OPC_MoveChild, 10, ++/*204109*/ OPC_CheckInteger, 1, ++/*204111*/ OPC_CheckType, MVT::i32, ++/*204113*/ OPC_MoveParent, ++/*204114*/ OPC_MoveChild, 11, ++/*204116*/ OPC_CheckInteger, 1, ++/*204118*/ OPC_CheckType, MVT::i32, ++/*204120*/ OPC_MoveParent, ++/*204121*/ OPC_MoveChild, 12, ++/*204123*/ OPC_CheckInteger, 1, ++/*204125*/ OPC_CheckType, MVT::i32, ++/*204127*/ OPC_MoveParent, ++/*204128*/ OPC_MoveChild, 13, ++/*204130*/ OPC_CheckInteger, 1, ++/*204132*/ OPC_CheckType, MVT::i32, ++/*204134*/ OPC_MoveParent, ++/*204135*/ OPC_MoveChild, 14, ++/*204137*/ OPC_CheckInteger, 1, ++/*204139*/ OPC_CheckType, MVT::i32, ++/*204141*/ OPC_MoveParent, ++/*204142*/ OPC_MoveChild, 15, ++/*204144*/ OPC_CheckInteger, 1, ++/*204146*/ OPC_CheckType, MVT::i32, ++/*204148*/ OPC_MoveParent, ++/*204149*/ OPC_MoveParent, ++/*204150*/ OPC_CheckChild1Same, 0, ++/*204152*/ OPC_MoveParent, ++/*204153*/ OPC_CheckChild1Same, 1, ++/*204155*/ OPC_MoveParent, ++/*204156*/ OPC_MoveChild1, ++/*204157*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*204160*/ OPC_CheckChild0Integer, 7, ++/*204162*/ OPC_CheckChild0Type, MVT::i32, ++/*204164*/ OPC_CheckChild1Integer, 7, ++/*204166*/ OPC_CheckChild1Type, MVT::i32, ++/*204168*/ OPC_CheckChild2Integer, 7, ++/*204170*/ OPC_CheckChild2Type, MVT::i32, ++/*204172*/ OPC_CheckChild3Integer, 7, ++/*204174*/ OPC_CheckChild3Type, MVT::i32, ++/*204176*/ OPC_CheckChild4Integer, 7, ++/*204178*/ OPC_CheckChild4Type, MVT::i32, ++/*204180*/ OPC_MoveChild5, ++/*204181*/ OPC_CheckInteger, 7, ++/*204183*/ OPC_CheckType, MVT::i32, ++/*204185*/ OPC_MoveParent, ++/*204186*/ OPC_MoveChild6, ++/*204187*/ OPC_CheckInteger, 7, ++/*204189*/ OPC_CheckType, MVT::i32, ++/*204191*/ OPC_MoveParent, ++/*204192*/ OPC_MoveChild7, ++/*204193*/ OPC_CheckInteger, 7, ++/*204195*/ OPC_CheckType, MVT::i32, ++/*204197*/ OPC_MoveParent, ++/*204198*/ OPC_MoveChild, 8, ++/*204200*/ OPC_CheckInteger, 7, ++/*204202*/ OPC_CheckType, MVT::i32, ++/*204204*/ OPC_MoveParent, ++/*204205*/ OPC_MoveChild, 9, ++/*204207*/ OPC_CheckInteger, 7, ++/*204209*/ OPC_CheckType, MVT::i32, ++/*204211*/ OPC_MoveParent, ++/*204212*/ OPC_MoveChild, 10, ++/*204214*/ OPC_CheckInteger, 7, ++/*204216*/ OPC_CheckType, MVT::i32, ++/*204218*/ OPC_MoveParent, ++/*204219*/ OPC_MoveChild, 11, ++/*204221*/ OPC_CheckInteger, 7, ++/*204223*/ OPC_CheckType, MVT::i32, ++/*204225*/ OPC_MoveParent, ++/*204226*/ OPC_MoveChild, 12, ++/*204228*/ OPC_CheckInteger, 7, ++/*204230*/ OPC_CheckType, MVT::i32, ++/*204232*/ OPC_MoveParent, ++/*204233*/ OPC_MoveChild, 13, ++/*204235*/ OPC_CheckInteger, 7, ++/*204237*/ OPC_CheckType, MVT::i32, ++/*204239*/ OPC_MoveParent, ++/*204240*/ OPC_MoveChild, 14, ++/*204242*/ OPC_CheckInteger, 7, ++/*204244*/ OPC_CheckType, MVT::i32, ++/*204246*/ OPC_MoveParent, ++/*204247*/ OPC_MoveChild, 15, ++/*204249*/ OPC_CheckInteger, 7, ++/*204251*/ OPC_CheckType, MVT::i32, ++/*204253*/ OPC_MoveParent, ++/*204254*/ OPC_CheckType, MVT::v16i8, ++/*204256*/ OPC_MoveParent, ++/*204257*/ OPC_MoveParent, ++/*204258*/ OPC_MoveParent, ++/*204259*/ OPC_MoveChild1, ++/*204260*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*204263*/ OPC_CheckChild0Integer, 1, ++/*204265*/ OPC_CheckChild0Type, MVT::i32, ++/*204267*/ OPC_CheckChild1Integer, 1, ++/*204269*/ OPC_CheckChild1Type, MVT::i32, ++/*204271*/ OPC_CheckChild2Integer, 1, ++/*204273*/ OPC_CheckChild2Type, MVT::i32, ++/*204275*/ OPC_CheckChild3Integer, 1, ++/*204277*/ OPC_CheckChild3Type, MVT::i32, ++/*204279*/ OPC_CheckChild4Integer, 1, ++/*204281*/ OPC_CheckChild4Type, MVT::i32, ++/*204283*/ OPC_MoveChild5, ++/*204284*/ OPC_CheckInteger, 1, ++/*204286*/ OPC_CheckType, MVT::i32, ++/*204288*/ OPC_MoveParent, ++/*204289*/ OPC_MoveChild6, ++/*204290*/ OPC_CheckInteger, 1, ++/*204292*/ OPC_CheckType, MVT::i32, ++/*204294*/ OPC_MoveParent, ++/*204295*/ OPC_MoveChild7, ++/*204296*/ OPC_CheckInteger, 1, ++/*204298*/ OPC_CheckType, MVT::i32, ++/*204300*/ OPC_MoveParent, ++/*204301*/ OPC_MoveChild, 8, ++/*204303*/ OPC_CheckInteger, 1, ++/*204305*/ OPC_CheckType, MVT::i32, ++/*204307*/ OPC_MoveParent, ++/*204308*/ OPC_MoveChild, 9, ++/*204310*/ OPC_CheckInteger, 1, ++/*204312*/ OPC_CheckType, MVT::i32, ++/*204314*/ OPC_MoveParent, ++/*204315*/ OPC_MoveChild, 10, ++/*204317*/ OPC_CheckInteger, 1, ++/*204319*/ OPC_CheckType, MVT::i32, ++/*204321*/ OPC_MoveParent, ++/*204322*/ OPC_MoveChild, 11, ++/*204324*/ OPC_CheckInteger, 1, ++/*204326*/ OPC_CheckType, MVT::i32, ++/*204328*/ OPC_MoveParent, ++/*204329*/ OPC_MoveChild, 12, ++/*204331*/ OPC_CheckInteger, 1, ++/*204333*/ OPC_CheckType, MVT::i32, ++/*204335*/ OPC_MoveParent, ++/*204336*/ OPC_MoveChild, 13, ++/*204338*/ OPC_CheckInteger, 1, ++/*204340*/ OPC_CheckType, MVT::i32, ++/*204342*/ OPC_MoveParent, ++/*204343*/ OPC_MoveChild, 14, ++/*204345*/ OPC_CheckInteger, 1, ++/*204347*/ OPC_CheckType, MVT::i32, ++/*204349*/ OPC_MoveParent, ++/*204350*/ OPC_MoveChild, 15, ++/*204352*/ OPC_CheckInteger, 1, ++/*204354*/ OPC_CheckType, MVT::i32, ++/*204356*/ OPC_MoveParent, ++/*204357*/ OPC_CheckType, MVT::v16i8, ++/*204359*/ OPC_MoveParent, ++/*204360*/ OPC_CheckType, MVT::v16i8, ++/*204362*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*204364*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b), LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*204372*/ /*Scope*/ 65|128,2/*321*/, /*->204695*/ ++/*204374*/ OPC_CheckChild0Same, 0, ++/*204376*/ OPC_MoveChild1, ++/*204377*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*204380*/ OPC_CheckChild0Integer, 1, ++/*204382*/ OPC_CheckChild0Type, MVT::i32, ++/*204384*/ OPC_CheckChild1Integer, 1, ++/*204386*/ OPC_CheckChild1Type, MVT::i32, ++/*204388*/ OPC_CheckChild2Integer, 1, ++/*204390*/ OPC_CheckChild2Type, MVT::i32, ++/*204392*/ OPC_CheckChild3Integer, 1, ++/*204394*/ OPC_CheckChild3Type, MVT::i32, ++/*204396*/ OPC_CheckChild4Integer, 1, ++/*204398*/ OPC_CheckChild4Type, MVT::i32, ++/*204400*/ OPC_MoveChild5, ++/*204401*/ OPC_CheckInteger, 1, ++/*204403*/ OPC_CheckType, MVT::i32, ++/*204405*/ OPC_MoveParent, ++/*204406*/ OPC_MoveChild6, ++/*204407*/ OPC_CheckInteger, 1, ++/*204409*/ OPC_CheckType, MVT::i32, ++/*204411*/ OPC_MoveParent, ++/*204412*/ OPC_MoveChild7, ++/*204413*/ OPC_CheckInteger, 1, ++/*204415*/ OPC_CheckType, MVT::i32, ++/*204417*/ OPC_MoveParent, ++/*204418*/ OPC_MoveChild, 8, ++/*204420*/ OPC_CheckInteger, 1, ++/*204422*/ OPC_CheckType, MVT::i32, ++/*204424*/ OPC_MoveParent, ++/*204425*/ OPC_MoveChild, 9, ++/*204427*/ OPC_CheckInteger, 1, ++/*204429*/ OPC_CheckType, MVT::i32, ++/*204431*/ OPC_MoveParent, ++/*204432*/ OPC_MoveChild, 10, ++/*204434*/ OPC_CheckInteger, 1, ++/*204436*/ OPC_CheckType, MVT::i32, ++/*204438*/ OPC_MoveParent, ++/*204439*/ OPC_MoveChild, 11, ++/*204441*/ OPC_CheckInteger, 1, ++/*204443*/ OPC_CheckType, MVT::i32, ++/*204445*/ OPC_MoveParent, ++/*204446*/ OPC_MoveChild, 12, ++/*204448*/ OPC_CheckInteger, 1, ++/*204450*/ OPC_CheckType, MVT::i32, ++/*204452*/ OPC_MoveParent, ++/*204453*/ OPC_MoveChild, 13, ++/*204455*/ OPC_CheckInteger, 1, ++/*204457*/ OPC_CheckType, MVT::i32, ++/*204459*/ OPC_MoveParent, ++/*204460*/ OPC_MoveChild, 14, ++/*204462*/ OPC_CheckInteger, 1, ++/*204464*/ OPC_CheckType, MVT::i32, ++/*204466*/ OPC_MoveParent, ++/*204467*/ OPC_MoveChild, 15, ++/*204469*/ OPC_CheckInteger, 1, ++/*204471*/ OPC_CheckType, MVT::i32, ++/*204473*/ OPC_MoveParent, ++/*204474*/ OPC_MoveParent, ++/*204475*/ OPC_MoveParent, ++/*204476*/ OPC_CheckChild1Same, 1, ++/*204478*/ OPC_MoveParent, ++/*204479*/ OPC_MoveChild1, ++/*204480*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*204483*/ OPC_CheckChild0Integer, 7, ++/*204485*/ OPC_CheckChild0Type, MVT::i32, ++/*204487*/ OPC_CheckChild1Integer, 7, ++/*204489*/ OPC_CheckChild1Type, MVT::i32, ++/*204491*/ OPC_CheckChild2Integer, 7, ++/*204493*/ OPC_CheckChild2Type, MVT::i32, ++/*204495*/ OPC_CheckChild3Integer, 7, ++/*204497*/ OPC_CheckChild3Type, MVT::i32, ++/*204499*/ OPC_CheckChild4Integer, 7, ++/*204501*/ OPC_CheckChild4Type, MVT::i32, ++/*204503*/ OPC_MoveChild5, ++/*204504*/ OPC_CheckInteger, 7, ++/*204506*/ OPC_CheckType, MVT::i32, ++/*204508*/ OPC_MoveParent, ++/*204509*/ OPC_MoveChild6, ++/*204510*/ OPC_CheckInteger, 7, ++/*204512*/ OPC_CheckType, MVT::i32, ++/*204514*/ OPC_MoveParent, ++/*204515*/ OPC_MoveChild7, ++/*204516*/ OPC_CheckInteger, 7, ++/*204518*/ OPC_CheckType, MVT::i32, ++/*204520*/ OPC_MoveParent, ++/*204521*/ OPC_MoveChild, 8, ++/*204523*/ OPC_CheckInteger, 7, ++/*204525*/ OPC_CheckType, MVT::i32, ++/*204527*/ OPC_MoveParent, ++/*204528*/ OPC_MoveChild, 9, ++/*204530*/ OPC_CheckInteger, 7, ++/*204532*/ OPC_CheckType, MVT::i32, ++/*204534*/ OPC_MoveParent, ++/*204535*/ OPC_MoveChild, 10, ++/*204537*/ OPC_CheckInteger, 7, ++/*204539*/ OPC_CheckType, MVT::i32, ++/*204541*/ OPC_MoveParent, ++/*204542*/ OPC_MoveChild, 11, ++/*204544*/ OPC_CheckInteger, 7, ++/*204546*/ OPC_CheckType, MVT::i32, ++/*204548*/ OPC_MoveParent, ++/*204549*/ OPC_MoveChild, 12, ++/*204551*/ OPC_CheckInteger, 7, ++/*204553*/ OPC_CheckType, MVT::i32, ++/*204555*/ OPC_MoveParent, ++/*204556*/ OPC_MoveChild, 13, ++/*204558*/ OPC_CheckInteger, 7, ++/*204560*/ OPC_CheckType, MVT::i32, ++/*204562*/ OPC_MoveParent, ++/*204563*/ OPC_MoveChild, 14, ++/*204565*/ OPC_CheckInteger, 7, ++/*204567*/ OPC_CheckType, MVT::i32, ++/*204569*/ OPC_MoveParent, ++/*204570*/ OPC_MoveChild, 15, ++/*204572*/ OPC_CheckInteger, 7, ++/*204574*/ OPC_CheckType, MVT::i32, ++/*204576*/ OPC_MoveParent, ++/*204577*/ OPC_CheckType, MVT::v16i8, ++/*204579*/ OPC_MoveParent, ++/*204580*/ OPC_MoveParent, ++/*204581*/ OPC_MoveParent, ++/*204582*/ OPC_MoveChild1, ++/*204583*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*204586*/ OPC_CheckChild0Integer, 1, ++/*204588*/ OPC_CheckChild0Type, MVT::i32, ++/*204590*/ OPC_CheckChild1Integer, 1, ++/*204592*/ OPC_CheckChild1Type, MVT::i32, ++/*204594*/ OPC_CheckChild2Integer, 1, ++/*204596*/ OPC_CheckChild2Type, MVT::i32, ++/*204598*/ OPC_CheckChild3Integer, 1, ++/*204600*/ OPC_CheckChild3Type, MVT::i32, ++/*204602*/ OPC_CheckChild4Integer, 1, ++/*204604*/ OPC_CheckChild4Type, MVT::i32, ++/*204606*/ OPC_MoveChild5, ++/*204607*/ OPC_CheckInteger, 1, ++/*204609*/ OPC_CheckType, MVT::i32, ++/*204611*/ OPC_MoveParent, ++/*204612*/ OPC_MoveChild6, ++/*204613*/ OPC_CheckInteger, 1, ++/*204615*/ OPC_CheckType, MVT::i32, ++/*204617*/ OPC_MoveParent, ++/*204618*/ OPC_MoveChild7, ++/*204619*/ OPC_CheckInteger, 1, ++/*204621*/ OPC_CheckType, MVT::i32, ++/*204623*/ OPC_MoveParent, ++/*204624*/ OPC_MoveChild, 8, ++/*204626*/ OPC_CheckInteger, 1, ++/*204628*/ OPC_CheckType, MVT::i32, ++/*204630*/ OPC_MoveParent, ++/*204631*/ OPC_MoveChild, 9, ++/*204633*/ OPC_CheckInteger, 1, ++/*204635*/ OPC_CheckType, MVT::i32, ++/*204637*/ OPC_MoveParent, ++/*204638*/ OPC_MoveChild, 10, ++/*204640*/ OPC_CheckInteger, 1, ++/*204642*/ OPC_CheckType, MVT::i32, ++/*204644*/ OPC_MoveParent, ++/*204645*/ OPC_MoveChild, 11, ++/*204647*/ OPC_CheckInteger, 1, ++/*204649*/ OPC_CheckType, MVT::i32, ++/*204651*/ OPC_MoveParent, ++/*204652*/ OPC_MoveChild, 12, ++/*204654*/ OPC_CheckInteger, 1, ++/*204656*/ OPC_CheckType, MVT::i32, ++/*204658*/ OPC_MoveParent, ++/*204659*/ OPC_MoveChild, 13, ++/*204661*/ OPC_CheckInteger, 1, ++/*204663*/ OPC_CheckType, MVT::i32, ++/*204665*/ OPC_MoveParent, ++/*204666*/ OPC_MoveChild, 14, ++/*204668*/ OPC_CheckInteger, 1, ++/*204670*/ OPC_CheckType, MVT::i32, ++/*204672*/ OPC_MoveParent, ++/*204673*/ OPC_MoveChild, 15, ++/*204675*/ OPC_CheckInteger, 1, ++/*204677*/ OPC_CheckType, MVT::i32, ++/*204679*/ OPC_MoveParent, ++/*204680*/ OPC_CheckType, MVT::v16i8, ++/*204682*/ OPC_MoveParent, ++/*204683*/ OPC_CheckType, MVT::v16i8, ++/*204685*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*204687*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*204695*/ /*Scope*/ 65|128,2/*321*/, /*->205018*/ ++/*204697*/ OPC_CheckChild0Same, 1, ++/*204699*/ OPC_CheckChild1Same, 0, ++/*204701*/ OPC_MoveParent, ++/*204702*/ OPC_MoveChild1, ++/*204703*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*204706*/ OPC_CheckChild0Integer, 1, ++/*204708*/ OPC_CheckChild0Type, MVT::i32, ++/*204710*/ OPC_CheckChild1Integer, 1, ++/*204712*/ OPC_CheckChild1Type, MVT::i32, ++/*204714*/ OPC_CheckChild2Integer, 1, ++/*204716*/ OPC_CheckChild2Type, MVT::i32, ++/*204718*/ OPC_CheckChild3Integer, 1, ++/*204720*/ OPC_CheckChild3Type, MVT::i32, ++/*204722*/ OPC_CheckChild4Integer, 1, ++/*204724*/ OPC_CheckChild4Type, MVT::i32, ++/*204726*/ OPC_MoveChild5, ++/*204727*/ OPC_CheckInteger, 1, ++/*204729*/ OPC_CheckType, MVT::i32, ++/*204731*/ OPC_MoveParent, ++/*204732*/ OPC_MoveChild6, ++/*204733*/ OPC_CheckInteger, 1, ++/*204735*/ OPC_CheckType, MVT::i32, ++/*204737*/ OPC_MoveParent, ++/*204738*/ OPC_MoveChild7, ++/*204739*/ OPC_CheckInteger, 1, ++/*204741*/ OPC_CheckType, MVT::i32, ++/*204743*/ OPC_MoveParent, ++/*204744*/ OPC_MoveChild, 8, ++/*204746*/ OPC_CheckInteger, 1, ++/*204748*/ OPC_CheckType, MVT::i32, ++/*204750*/ OPC_MoveParent, ++/*204751*/ OPC_MoveChild, 9, ++/*204753*/ OPC_CheckInteger, 1, ++/*204755*/ OPC_CheckType, MVT::i32, ++/*204757*/ OPC_MoveParent, ++/*204758*/ OPC_MoveChild, 10, ++/*204760*/ OPC_CheckInteger, 1, ++/*204762*/ OPC_CheckType, MVT::i32, ++/*204764*/ OPC_MoveParent, ++/*204765*/ OPC_MoveChild, 11, ++/*204767*/ OPC_CheckInteger, 1, ++/*204769*/ OPC_CheckType, MVT::i32, ++/*204771*/ OPC_MoveParent, ++/*204772*/ OPC_MoveChild, 12, ++/*204774*/ OPC_CheckInteger, 1, ++/*204776*/ OPC_CheckType, MVT::i32, ++/*204778*/ OPC_MoveParent, ++/*204779*/ OPC_MoveChild, 13, ++/*204781*/ OPC_CheckInteger, 1, ++/*204783*/ OPC_CheckType, MVT::i32, ++/*204785*/ OPC_MoveParent, ++/*204786*/ OPC_MoveChild, 14, ++/*204788*/ OPC_CheckInteger, 1, ++/*204790*/ OPC_CheckType, MVT::i32, ++/*204792*/ OPC_MoveParent, ++/*204793*/ OPC_MoveChild, 15, ++/*204795*/ OPC_CheckInteger, 1, ++/*204797*/ OPC_CheckType, MVT::i32, ++/*204799*/ OPC_MoveParent, ++/*204800*/ OPC_MoveParent, ++/*204801*/ OPC_MoveParent, ++/*204802*/ OPC_MoveChild1, ++/*204803*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*204806*/ OPC_CheckChild0Integer, 7, ++/*204808*/ OPC_CheckChild0Type, MVT::i32, ++/*204810*/ OPC_CheckChild1Integer, 7, ++/*204812*/ OPC_CheckChild1Type, MVT::i32, ++/*204814*/ OPC_CheckChild2Integer, 7, ++/*204816*/ OPC_CheckChild2Type, MVT::i32, ++/*204818*/ OPC_CheckChild3Integer, 7, ++/*204820*/ OPC_CheckChild3Type, MVT::i32, ++/*204822*/ OPC_CheckChild4Integer, 7, ++/*204824*/ OPC_CheckChild4Type, MVT::i32, ++/*204826*/ OPC_MoveChild5, ++/*204827*/ OPC_CheckInteger, 7, ++/*204829*/ OPC_CheckType, MVT::i32, ++/*204831*/ OPC_MoveParent, ++/*204832*/ OPC_MoveChild6, ++/*204833*/ OPC_CheckInteger, 7, ++/*204835*/ OPC_CheckType, MVT::i32, ++/*204837*/ OPC_MoveParent, ++/*204838*/ OPC_MoveChild7, ++/*204839*/ OPC_CheckInteger, 7, ++/*204841*/ OPC_CheckType, MVT::i32, ++/*204843*/ OPC_MoveParent, ++/*204844*/ OPC_MoveChild, 8, ++/*204846*/ OPC_CheckInteger, 7, ++/*204848*/ OPC_CheckType, MVT::i32, ++/*204850*/ OPC_MoveParent, ++/*204851*/ OPC_MoveChild, 9, ++/*204853*/ OPC_CheckInteger, 7, ++/*204855*/ OPC_CheckType, MVT::i32, ++/*204857*/ OPC_MoveParent, ++/*204858*/ OPC_MoveChild, 10, ++/*204860*/ OPC_CheckInteger, 7, ++/*204862*/ OPC_CheckType, MVT::i32, ++/*204864*/ OPC_MoveParent, ++/*204865*/ OPC_MoveChild, 11, ++/*204867*/ OPC_CheckInteger, 7, ++/*204869*/ OPC_CheckType, MVT::i32, ++/*204871*/ OPC_MoveParent, ++/*204872*/ OPC_MoveChild, 12, ++/*204874*/ OPC_CheckInteger, 7, ++/*204876*/ OPC_CheckType, MVT::i32, ++/*204878*/ OPC_MoveParent, ++/*204879*/ OPC_MoveChild, 13, ++/*204881*/ OPC_CheckInteger, 7, ++/*204883*/ OPC_CheckType, MVT::i32, ++/*204885*/ OPC_MoveParent, ++/*204886*/ OPC_MoveChild, 14, ++/*204888*/ OPC_CheckInteger, 7, ++/*204890*/ OPC_CheckType, MVT::i32, ++/*204892*/ OPC_MoveParent, ++/*204893*/ OPC_MoveChild, 15, ++/*204895*/ OPC_CheckInteger, 7, ++/*204897*/ OPC_CheckType, MVT::i32, ++/*204899*/ OPC_MoveParent, ++/*204900*/ OPC_CheckType, MVT::v16i8, ++/*204902*/ OPC_MoveParent, ++/*204903*/ OPC_MoveParent, ++/*204904*/ OPC_MoveParent, ++/*204905*/ OPC_MoveChild1, ++/*204906*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*204909*/ OPC_CheckChild0Integer, 1, ++/*204911*/ OPC_CheckChild0Type, MVT::i32, ++/*204913*/ OPC_CheckChild1Integer, 1, ++/*204915*/ OPC_CheckChild1Type, MVT::i32, ++/*204917*/ OPC_CheckChild2Integer, 1, ++/*204919*/ OPC_CheckChild2Type, MVT::i32, ++/*204921*/ OPC_CheckChild3Integer, 1, ++/*204923*/ OPC_CheckChild3Type, MVT::i32, ++/*204925*/ OPC_CheckChild4Integer, 1, ++/*204927*/ OPC_CheckChild4Type, MVT::i32, ++/*204929*/ OPC_MoveChild5, ++/*204930*/ OPC_CheckInteger, 1, ++/*204932*/ OPC_CheckType, MVT::i32, ++/*204934*/ OPC_MoveParent, ++/*204935*/ OPC_MoveChild6, ++/*204936*/ OPC_CheckInteger, 1, ++/*204938*/ OPC_CheckType, MVT::i32, ++/*204940*/ OPC_MoveParent, ++/*204941*/ OPC_MoveChild7, ++/*204942*/ OPC_CheckInteger, 1, ++/*204944*/ OPC_CheckType, MVT::i32, ++/*204946*/ OPC_MoveParent, ++/*204947*/ OPC_MoveChild, 8, ++/*204949*/ OPC_CheckInteger, 1, ++/*204951*/ OPC_CheckType, MVT::i32, ++/*204953*/ OPC_MoveParent, ++/*204954*/ OPC_MoveChild, 9, ++/*204956*/ OPC_CheckInteger, 1, ++/*204958*/ OPC_CheckType, MVT::i32, ++/*204960*/ OPC_MoveParent, ++/*204961*/ OPC_MoveChild, 10, ++/*204963*/ OPC_CheckInteger, 1, ++/*204965*/ OPC_CheckType, MVT::i32, ++/*204967*/ OPC_MoveParent, ++/*204968*/ OPC_MoveChild, 11, ++/*204970*/ OPC_CheckInteger, 1, ++/*204972*/ OPC_CheckType, MVT::i32, ++/*204974*/ OPC_MoveParent, ++/*204975*/ OPC_MoveChild, 12, ++/*204977*/ OPC_CheckInteger, 1, ++/*204979*/ OPC_CheckType, MVT::i32, ++/*204981*/ OPC_MoveParent, ++/*204982*/ OPC_MoveChild, 13, ++/*204984*/ OPC_CheckInteger, 1, ++/*204986*/ OPC_CheckType, MVT::i32, ++/*204988*/ OPC_MoveParent, ++/*204989*/ OPC_MoveChild, 14, ++/*204991*/ OPC_CheckInteger, 1, ++/*204993*/ OPC_CheckType, MVT::i32, ++/*204995*/ OPC_MoveParent, ++/*204996*/ OPC_MoveChild, 15, ++/*204998*/ OPC_CheckInteger, 1, ++/*205000*/ OPC_CheckType, MVT::i32, ++/*205002*/ OPC_MoveParent, ++/*205003*/ OPC_CheckType, MVT::v16i8, ++/*205005*/ OPC_MoveParent, ++/*205006*/ OPC_CheckType, MVT::v16i8, ++/*205008*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*205010*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*205018*/ /*Scope*/ 65|128,2/*321*/, /*->205341*/ ++/*205020*/ OPC_CheckChild0Same, 0, ++/*205022*/ OPC_CheckChild1Same, 1, ++/*205024*/ OPC_MoveParent, ++/*205025*/ OPC_MoveChild1, ++/*205026*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*205029*/ OPC_CheckChild0Integer, 1, ++/*205031*/ OPC_CheckChild0Type, MVT::i32, ++/*205033*/ OPC_CheckChild1Integer, 1, ++/*205035*/ OPC_CheckChild1Type, MVT::i32, ++/*205037*/ OPC_CheckChild2Integer, 1, ++/*205039*/ OPC_CheckChild2Type, MVT::i32, ++/*205041*/ OPC_CheckChild3Integer, 1, ++/*205043*/ OPC_CheckChild3Type, MVT::i32, ++/*205045*/ OPC_CheckChild4Integer, 1, ++/*205047*/ OPC_CheckChild4Type, MVT::i32, ++/*205049*/ OPC_MoveChild5, ++/*205050*/ OPC_CheckInteger, 1, ++/*205052*/ OPC_CheckType, MVT::i32, ++/*205054*/ OPC_MoveParent, ++/*205055*/ OPC_MoveChild6, ++/*205056*/ OPC_CheckInteger, 1, ++/*205058*/ OPC_CheckType, MVT::i32, ++/*205060*/ OPC_MoveParent, ++/*205061*/ OPC_MoveChild7, ++/*205062*/ OPC_CheckInteger, 1, ++/*205064*/ OPC_CheckType, MVT::i32, ++/*205066*/ OPC_MoveParent, ++/*205067*/ OPC_MoveChild, 8, ++/*205069*/ OPC_CheckInteger, 1, ++/*205071*/ OPC_CheckType, MVT::i32, ++/*205073*/ OPC_MoveParent, ++/*205074*/ OPC_MoveChild, 9, ++/*205076*/ OPC_CheckInteger, 1, ++/*205078*/ OPC_CheckType, MVT::i32, ++/*205080*/ OPC_MoveParent, ++/*205081*/ OPC_MoveChild, 10, ++/*205083*/ OPC_CheckInteger, 1, ++/*205085*/ OPC_CheckType, MVT::i32, ++/*205087*/ OPC_MoveParent, ++/*205088*/ OPC_MoveChild, 11, ++/*205090*/ OPC_CheckInteger, 1, ++/*205092*/ OPC_CheckType, MVT::i32, ++/*205094*/ OPC_MoveParent, ++/*205095*/ OPC_MoveChild, 12, ++/*205097*/ OPC_CheckInteger, 1, ++/*205099*/ OPC_CheckType, MVT::i32, ++/*205101*/ OPC_MoveParent, ++/*205102*/ OPC_MoveChild, 13, ++/*205104*/ OPC_CheckInteger, 1, ++/*205106*/ OPC_CheckType, MVT::i32, ++/*205108*/ OPC_MoveParent, ++/*205109*/ OPC_MoveChild, 14, ++/*205111*/ OPC_CheckInteger, 1, ++/*205113*/ OPC_CheckType, MVT::i32, ++/*205115*/ OPC_MoveParent, ++/*205116*/ OPC_MoveChild, 15, ++/*205118*/ OPC_CheckInteger, 1, ++/*205120*/ OPC_CheckType, MVT::i32, ++/*205122*/ OPC_MoveParent, ++/*205123*/ OPC_MoveParent, ++/*205124*/ OPC_MoveParent, ++/*205125*/ OPC_MoveChild1, ++/*205126*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*205129*/ OPC_CheckChild0Integer, 7, ++/*205131*/ OPC_CheckChild0Type, MVT::i32, ++/*205133*/ OPC_CheckChild1Integer, 7, ++/*205135*/ OPC_CheckChild1Type, MVT::i32, ++/*205137*/ OPC_CheckChild2Integer, 7, ++/*205139*/ OPC_CheckChild2Type, MVT::i32, ++/*205141*/ OPC_CheckChild3Integer, 7, ++/*205143*/ OPC_CheckChild3Type, MVT::i32, ++/*205145*/ OPC_CheckChild4Integer, 7, ++/*205147*/ OPC_CheckChild4Type, MVT::i32, ++/*205149*/ OPC_MoveChild5, ++/*205150*/ OPC_CheckInteger, 7, ++/*205152*/ OPC_CheckType, MVT::i32, ++/*205154*/ OPC_MoveParent, ++/*205155*/ OPC_MoveChild6, ++/*205156*/ OPC_CheckInteger, 7, ++/*205158*/ OPC_CheckType, MVT::i32, ++/*205160*/ OPC_MoveParent, ++/*205161*/ OPC_MoveChild7, ++/*205162*/ OPC_CheckInteger, 7, ++/*205164*/ OPC_CheckType, MVT::i32, ++/*205166*/ OPC_MoveParent, ++/*205167*/ OPC_MoveChild, 8, ++/*205169*/ OPC_CheckInteger, 7, ++/*205171*/ OPC_CheckType, MVT::i32, ++/*205173*/ OPC_MoveParent, ++/*205174*/ OPC_MoveChild, 9, ++/*205176*/ OPC_CheckInteger, 7, ++/*205178*/ OPC_CheckType, MVT::i32, ++/*205180*/ OPC_MoveParent, ++/*205181*/ OPC_MoveChild, 10, ++/*205183*/ OPC_CheckInteger, 7, ++/*205185*/ OPC_CheckType, MVT::i32, ++/*205187*/ OPC_MoveParent, ++/*205188*/ OPC_MoveChild, 11, ++/*205190*/ OPC_CheckInteger, 7, ++/*205192*/ OPC_CheckType, MVT::i32, ++/*205194*/ OPC_MoveParent, ++/*205195*/ OPC_MoveChild, 12, ++/*205197*/ OPC_CheckInteger, 7, ++/*205199*/ OPC_CheckType, MVT::i32, ++/*205201*/ OPC_MoveParent, ++/*205202*/ OPC_MoveChild, 13, ++/*205204*/ OPC_CheckInteger, 7, ++/*205206*/ OPC_CheckType, MVT::i32, ++/*205208*/ OPC_MoveParent, ++/*205209*/ OPC_MoveChild, 14, ++/*205211*/ OPC_CheckInteger, 7, ++/*205213*/ OPC_CheckType, MVT::i32, ++/*205215*/ OPC_MoveParent, ++/*205216*/ OPC_MoveChild, 15, ++/*205218*/ OPC_CheckInteger, 7, ++/*205220*/ OPC_CheckType, MVT::i32, ++/*205222*/ OPC_MoveParent, ++/*205223*/ OPC_CheckType, MVT::v16i8, ++/*205225*/ OPC_MoveParent, ++/*205226*/ OPC_MoveParent, ++/*205227*/ OPC_MoveParent, ++/*205228*/ OPC_MoveChild1, ++/*205229*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*205232*/ OPC_CheckChild0Integer, 1, ++/*205234*/ OPC_CheckChild0Type, MVT::i32, ++/*205236*/ OPC_CheckChild1Integer, 1, ++/*205238*/ OPC_CheckChild1Type, MVT::i32, ++/*205240*/ OPC_CheckChild2Integer, 1, ++/*205242*/ OPC_CheckChild2Type, MVT::i32, ++/*205244*/ OPC_CheckChild3Integer, 1, ++/*205246*/ OPC_CheckChild3Type, MVT::i32, ++/*205248*/ OPC_CheckChild4Integer, 1, ++/*205250*/ OPC_CheckChild4Type, MVT::i32, ++/*205252*/ OPC_MoveChild5, ++/*205253*/ OPC_CheckInteger, 1, ++/*205255*/ OPC_CheckType, MVT::i32, ++/*205257*/ OPC_MoveParent, ++/*205258*/ OPC_MoveChild6, ++/*205259*/ OPC_CheckInteger, 1, ++/*205261*/ OPC_CheckType, MVT::i32, ++/*205263*/ OPC_MoveParent, ++/*205264*/ OPC_MoveChild7, ++/*205265*/ OPC_CheckInteger, 1, ++/*205267*/ OPC_CheckType, MVT::i32, ++/*205269*/ OPC_MoveParent, ++/*205270*/ OPC_MoveChild, 8, ++/*205272*/ OPC_CheckInteger, 1, ++/*205274*/ OPC_CheckType, MVT::i32, ++/*205276*/ OPC_MoveParent, ++/*205277*/ OPC_MoveChild, 9, ++/*205279*/ OPC_CheckInteger, 1, ++/*205281*/ OPC_CheckType, MVT::i32, ++/*205283*/ OPC_MoveParent, ++/*205284*/ OPC_MoveChild, 10, ++/*205286*/ OPC_CheckInteger, 1, ++/*205288*/ OPC_CheckType, MVT::i32, ++/*205290*/ OPC_MoveParent, ++/*205291*/ OPC_MoveChild, 11, ++/*205293*/ OPC_CheckInteger, 1, ++/*205295*/ OPC_CheckType, MVT::i32, ++/*205297*/ OPC_MoveParent, ++/*205298*/ OPC_MoveChild, 12, ++/*205300*/ OPC_CheckInteger, 1, ++/*205302*/ OPC_CheckType, MVT::i32, ++/*205304*/ OPC_MoveParent, ++/*205305*/ OPC_MoveChild, 13, ++/*205307*/ OPC_CheckInteger, 1, ++/*205309*/ OPC_CheckType, MVT::i32, ++/*205311*/ OPC_MoveParent, ++/*205312*/ OPC_MoveChild, 14, ++/*205314*/ OPC_CheckInteger, 1, ++/*205316*/ OPC_CheckType, MVT::i32, ++/*205318*/ OPC_MoveParent, ++/*205319*/ OPC_MoveChild, 15, ++/*205321*/ OPC_CheckInteger, 1, ++/*205323*/ OPC_CheckType, MVT::i32, ++/*205325*/ OPC_MoveParent, ++/*205326*/ OPC_CheckType, MVT::v16i8, ++/*205328*/ OPC_MoveParent, ++/*205329*/ OPC_CheckType, MVT::v16i8, ++/*205331*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*205333*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*205341*/ 0, /*End of Scope*/ ++/*205342*/ /*Scope*/ 10|128,5/*650*/, /*->205994*/ ++/*205344*/ OPC_CheckChild0Same, 0, ++/*205346*/ OPC_MoveChild1, ++/*205347*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*205350*/ OPC_Scope, 63|128,2/*319*/, /*->205672*/ // 2 children in Scope ++/*205353*/ OPC_MoveChild0, ++/*205354*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*205357*/ OPC_CheckChild0Integer, 1, ++/*205359*/ OPC_CheckChild0Type, MVT::i32, ++/*205361*/ OPC_CheckChild1Integer, 1, ++/*205363*/ OPC_CheckChild1Type, MVT::i32, ++/*205365*/ OPC_CheckChild2Integer, 1, ++/*205367*/ OPC_CheckChild2Type, MVT::i32, ++/*205369*/ OPC_CheckChild3Integer, 1, ++/*205371*/ OPC_CheckChild3Type, MVT::i32, ++/*205373*/ OPC_CheckChild4Integer, 1, ++/*205375*/ OPC_CheckChild4Type, MVT::i32, ++/*205377*/ OPC_MoveChild5, ++/*205378*/ OPC_CheckInteger, 1, ++/*205380*/ OPC_CheckType, MVT::i32, ++/*205382*/ OPC_MoveParent, ++/*205383*/ OPC_MoveChild6, ++/*205384*/ OPC_CheckInteger, 1, ++/*205386*/ OPC_CheckType, MVT::i32, ++/*205388*/ OPC_MoveParent, ++/*205389*/ OPC_MoveChild7, ++/*205390*/ OPC_CheckInteger, 1, ++/*205392*/ OPC_CheckType, MVT::i32, ++/*205394*/ OPC_MoveParent, ++/*205395*/ OPC_MoveChild, 8, ++/*205397*/ OPC_CheckInteger, 1, ++/*205399*/ OPC_CheckType, MVT::i32, ++/*205401*/ OPC_MoveParent, ++/*205402*/ OPC_MoveChild, 9, ++/*205404*/ OPC_CheckInteger, 1, ++/*205406*/ OPC_CheckType, MVT::i32, ++/*205408*/ OPC_MoveParent, ++/*205409*/ OPC_MoveChild, 10, ++/*205411*/ OPC_CheckInteger, 1, ++/*205413*/ OPC_CheckType, MVT::i32, ++/*205415*/ OPC_MoveParent, ++/*205416*/ OPC_MoveChild, 11, ++/*205418*/ OPC_CheckInteger, 1, ++/*205420*/ OPC_CheckType, MVT::i32, ++/*205422*/ OPC_MoveParent, ++/*205423*/ OPC_MoveChild, 12, ++/*205425*/ OPC_CheckInteger, 1, ++/*205427*/ OPC_CheckType, MVT::i32, ++/*205429*/ OPC_MoveParent, ++/*205430*/ OPC_MoveChild, 13, ++/*205432*/ OPC_CheckInteger, 1, ++/*205434*/ OPC_CheckType, MVT::i32, ++/*205436*/ OPC_MoveParent, ++/*205437*/ OPC_MoveChild, 14, ++/*205439*/ OPC_CheckInteger, 1, ++/*205441*/ OPC_CheckType, MVT::i32, ++/*205443*/ OPC_MoveParent, ++/*205444*/ OPC_MoveChild, 15, ++/*205446*/ OPC_CheckInteger, 1, ++/*205448*/ OPC_CheckType, MVT::i32, ++/*205450*/ OPC_MoveParent, ++/*205451*/ OPC_MoveParent, ++/*205452*/ OPC_CheckChild1Same, 1, ++/*205454*/ OPC_MoveParent, ++/*205455*/ OPC_MoveParent, ++/*205456*/ OPC_MoveChild1, ++/*205457*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*205460*/ OPC_CheckChild0Integer, 7, ++/*205462*/ OPC_CheckChild0Type, MVT::i32, ++/*205464*/ OPC_CheckChild1Integer, 7, ++/*205466*/ OPC_CheckChild1Type, MVT::i32, ++/*205468*/ OPC_CheckChild2Integer, 7, ++/*205470*/ OPC_CheckChild2Type, MVT::i32, ++/*205472*/ OPC_CheckChild3Integer, 7, ++/*205474*/ OPC_CheckChild3Type, MVT::i32, ++/*205476*/ OPC_CheckChild4Integer, 7, ++/*205478*/ OPC_CheckChild4Type, MVT::i32, ++/*205480*/ OPC_MoveChild5, ++/*205481*/ OPC_CheckInteger, 7, ++/*205483*/ OPC_CheckType, MVT::i32, ++/*205485*/ OPC_MoveParent, ++/*205486*/ OPC_MoveChild6, ++/*205487*/ OPC_CheckInteger, 7, ++/*205489*/ OPC_CheckType, MVT::i32, ++/*205491*/ OPC_MoveParent, ++/*205492*/ OPC_MoveChild7, ++/*205493*/ OPC_CheckInteger, 7, ++/*205495*/ OPC_CheckType, MVT::i32, ++/*205497*/ OPC_MoveParent, ++/*205498*/ OPC_MoveChild, 8, ++/*205500*/ OPC_CheckInteger, 7, ++/*205502*/ OPC_CheckType, MVT::i32, ++/*205504*/ OPC_MoveParent, ++/*205505*/ OPC_MoveChild, 9, ++/*205507*/ OPC_CheckInteger, 7, ++/*205509*/ OPC_CheckType, MVT::i32, ++/*205511*/ OPC_MoveParent, ++/*205512*/ OPC_MoveChild, 10, ++/*205514*/ OPC_CheckInteger, 7, ++/*205516*/ OPC_CheckType, MVT::i32, ++/*205518*/ OPC_MoveParent, ++/*205519*/ OPC_MoveChild, 11, ++/*205521*/ OPC_CheckInteger, 7, ++/*205523*/ OPC_CheckType, MVT::i32, ++/*205525*/ OPC_MoveParent, ++/*205526*/ OPC_MoveChild, 12, ++/*205528*/ OPC_CheckInteger, 7, ++/*205530*/ OPC_CheckType, MVT::i32, ++/*205532*/ OPC_MoveParent, ++/*205533*/ OPC_MoveChild, 13, ++/*205535*/ OPC_CheckInteger, 7, ++/*205537*/ OPC_CheckType, MVT::i32, ++/*205539*/ OPC_MoveParent, ++/*205540*/ OPC_MoveChild, 14, ++/*205542*/ OPC_CheckInteger, 7, ++/*205544*/ OPC_CheckType, MVT::i32, ++/*205546*/ OPC_MoveParent, ++/*205547*/ OPC_MoveChild, 15, ++/*205549*/ OPC_CheckInteger, 7, ++/*205551*/ OPC_CheckType, MVT::i32, ++/*205553*/ OPC_MoveParent, ++/*205554*/ OPC_CheckType, MVT::v16i8, ++/*205556*/ OPC_MoveParent, ++/*205557*/ OPC_MoveParent, ++/*205558*/ OPC_MoveParent, ++/*205559*/ OPC_MoveChild1, ++/*205560*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*205563*/ OPC_CheckChild0Integer, 1, ++/*205565*/ OPC_CheckChild0Type, MVT::i32, ++/*205567*/ OPC_CheckChild1Integer, 1, ++/*205569*/ OPC_CheckChild1Type, MVT::i32, ++/*205571*/ OPC_CheckChild2Integer, 1, ++/*205573*/ OPC_CheckChild2Type, MVT::i32, ++/*205575*/ OPC_CheckChild3Integer, 1, ++/*205577*/ OPC_CheckChild3Type, MVT::i32, ++/*205579*/ OPC_CheckChild4Integer, 1, ++/*205581*/ OPC_CheckChild4Type, MVT::i32, ++/*205583*/ OPC_MoveChild5, ++/*205584*/ OPC_CheckInteger, 1, ++/*205586*/ OPC_CheckType, MVT::i32, ++/*205588*/ OPC_MoveParent, ++/*205589*/ OPC_MoveChild6, ++/*205590*/ OPC_CheckInteger, 1, ++/*205592*/ OPC_CheckType, MVT::i32, ++/*205594*/ OPC_MoveParent, ++/*205595*/ OPC_MoveChild7, ++/*205596*/ OPC_CheckInteger, 1, ++/*205598*/ OPC_CheckType, MVT::i32, ++/*205600*/ OPC_MoveParent, ++/*205601*/ OPC_MoveChild, 8, ++/*205603*/ OPC_CheckInteger, 1, ++/*205605*/ OPC_CheckType, MVT::i32, ++/*205607*/ OPC_MoveParent, ++/*205608*/ OPC_MoveChild, 9, ++/*205610*/ OPC_CheckInteger, 1, ++/*205612*/ OPC_CheckType, MVT::i32, ++/*205614*/ OPC_MoveParent, ++/*205615*/ OPC_MoveChild, 10, ++/*205617*/ OPC_CheckInteger, 1, ++/*205619*/ OPC_CheckType, MVT::i32, ++/*205621*/ OPC_MoveParent, ++/*205622*/ OPC_MoveChild, 11, ++/*205624*/ OPC_CheckInteger, 1, ++/*205626*/ OPC_CheckType, MVT::i32, ++/*205628*/ OPC_MoveParent, ++/*205629*/ OPC_MoveChild, 12, ++/*205631*/ OPC_CheckInteger, 1, ++/*205633*/ OPC_CheckType, MVT::i32, ++/*205635*/ OPC_MoveParent, ++/*205636*/ OPC_MoveChild, 13, ++/*205638*/ OPC_CheckInteger, 1, ++/*205640*/ OPC_CheckType, MVT::i32, ++/*205642*/ OPC_MoveParent, ++/*205643*/ OPC_MoveChild, 14, ++/*205645*/ OPC_CheckInteger, 1, ++/*205647*/ OPC_CheckType, MVT::i32, ++/*205649*/ OPC_MoveParent, ++/*205650*/ OPC_MoveChild, 15, ++/*205652*/ OPC_CheckInteger, 1, ++/*205654*/ OPC_CheckType, MVT::i32, ++/*205656*/ OPC_MoveParent, ++/*205657*/ OPC_CheckType, MVT::v16i8, ++/*205659*/ OPC_MoveParent, ++/*205660*/ OPC_CheckType, MVT::v16i8, ++/*205662*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*205664*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*205672*/ /*Scope*/ 63|128,2/*319*/, /*->205993*/ ++/*205674*/ OPC_CheckChild0Same, 1, ++/*205676*/ OPC_MoveChild1, ++/*205677*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*205680*/ OPC_CheckChild0Integer, 1, ++/*205682*/ OPC_CheckChild0Type, MVT::i32, ++/*205684*/ OPC_CheckChild1Integer, 1, ++/*205686*/ OPC_CheckChild1Type, MVT::i32, ++/*205688*/ OPC_CheckChild2Integer, 1, ++/*205690*/ OPC_CheckChild2Type, MVT::i32, ++/*205692*/ OPC_CheckChild3Integer, 1, ++/*205694*/ OPC_CheckChild3Type, MVT::i32, ++/*205696*/ OPC_CheckChild4Integer, 1, ++/*205698*/ OPC_CheckChild4Type, MVT::i32, ++/*205700*/ OPC_MoveChild5, ++/*205701*/ OPC_CheckInteger, 1, ++/*205703*/ OPC_CheckType, MVT::i32, ++/*205705*/ OPC_MoveParent, ++/*205706*/ OPC_MoveChild6, ++/*205707*/ OPC_CheckInteger, 1, ++/*205709*/ OPC_CheckType, MVT::i32, ++/*205711*/ OPC_MoveParent, ++/*205712*/ OPC_MoveChild7, ++/*205713*/ OPC_CheckInteger, 1, ++/*205715*/ OPC_CheckType, MVT::i32, ++/*205717*/ OPC_MoveParent, ++/*205718*/ OPC_MoveChild, 8, ++/*205720*/ OPC_CheckInteger, 1, ++/*205722*/ OPC_CheckType, MVT::i32, ++/*205724*/ OPC_MoveParent, ++/*205725*/ OPC_MoveChild, 9, ++/*205727*/ OPC_CheckInteger, 1, ++/*205729*/ OPC_CheckType, MVT::i32, ++/*205731*/ OPC_MoveParent, ++/*205732*/ OPC_MoveChild, 10, ++/*205734*/ OPC_CheckInteger, 1, ++/*205736*/ OPC_CheckType, MVT::i32, ++/*205738*/ OPC_MoveParent, ++/*205739*/ OPC_MoveChild, 11, ++/*205741*/ OPC_CheckInteger, 1, ++/*205743*/ OPC_CheckType, MVT::i32, ++/*205745*/ OPC_MoveParent, ++/*205746*/ OPC_MoveChild, 12, ++/*205748*/ OPC_CheckInteger, 1, ++/*205750*/ OPC_CheckType, MVT::i32, ++/*205752*/ OPC_MoveParent, ++/*205753*/ OPC_MoveChild, 13, ++/*205755*/ OPC_CheckInteger, 1, ++/*205757*/ OPC_CheckType, MVT::i32, ++/*205759*/ OPC_MoveParent, ++/*205760*/ OPC_MoveChild, 14, ++/*205762*/ OPC_CheckInteger, 1, ++/*205764*/ OPC_CheckType, MVT::i32, ++/*205766*/ OPC_MoveParent, ++/*205767*/ OPC_MoveChild, 15, ++/*205769*/ OPC_CheckInteger, 1, ++/*205771*/ OPC_CheckType, MVT::i32, ++/*205773*/ OPC_MoveParent, ++/*205774*/ OPC_MoveParent, ++/*205775*/ OPC_MoveParent, ++/*205776*/ OPC_MoveParent, ++/*205777*/ OPC_MoveChild1, ++/*205778*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*205781*/ OPC_CheckChild0Integer, 7, ++/*205783*/ OPC_CheckChild0Type, MVT::i32, ++/*205785*/ OPC_CheckChild1Integer, 7, ++/*205787*/ OPC_CheckChild1Type, MVT::i32, ++/*205789*/ OPC_CheckChild2Integer, 7, ++/*205791*/ OPC_CheckChild2Type, MVT::i32, ++/*205793*/ OPC_CheckChild3Integer, 7, ++/*205795*/ OPC_CheckChild3Type, MVT::i32, ++/*205797*/ OPC_CheckChild4Integer, 7, ++/*205799*/ OPC_CheckChild4Type, MVT::i32, ++/*205801*/ OPC_MoveChild5, ++/*205802*/ OPC_CheckInteger, 7, ++/*205804*/ OPC_CheckType, MVT::i32, ++/*205806*/ OPC_MoveParent, ++/*205807*/ OPC_MoveChild6, ++/*205808*/ OPC_CheckInteger, 7, ++/*205810*/ OPC_CheckType, MVT::i32, ++/*205812*/ OPC_MoveParent, ++/*205813*/ OPC_MoveChild7, ++/*205814*/ OPC_CheckInteger, 7, ++/*205816*/ OPC_CheckType, MVT::i32, ++/*205818*/ OPC_MoveParent, ++/*205819*/ OPC_MoveChild, 8, ++/*205821*/ OPC_CheckInteger, 7, ++/*205823*/ OPC_CheckType, MVT::i32, ++/*205825*/ OPC_MoveParent, ++/*205826*/ OPC_MoveChild, 9, ++/*205828*/ OPC_CheckInteger, 7, ++/*205830*/ OPC_CheckType, MVT::i32, ++/*205832*/ OPC_MoveParent, ++/*205833*/ OPC_MoveChild, 10, ++/*205835*/ OPC_CheckInteger, 7, ++/*205837*/ OPC_CheckType, MVT::i32, ++/*205839*/ OPC_MoveParent, ++/*205840*/ OPC_MoveChild, 11, ++/*205842*/ OPC_CheckInteger, 7, ++/*205844*/ OPC_CheckType, MVT::i32, ++/*205846*/ OPC_MoveParent, ++/*205847*/ OPC_MoveChild, 12, ++/*205849*/ OPC_CheckInteger, 7, ++/*205851*/ OPC_CheckType, MVT::i32, ++/*205853*/ OPC_MoveParent, ++/*205854*/ OPC_MoveChild, 13, ++/*205856*/ OPC_CheckInteger, 7, ++/*205858*/ OPC_CheckType, MVT::i32, ++/*205860*/ OPC_MoveParent, ++/*205861*/ OPC_MoveChild, 14, ++/*205863*/ OPC_CheckInteger, 7, ++/*205865*/ OPC_CheckType, MVT::i32, ++/*205867*/ OPC_MoveParent, ++/*205868*/ OPC_MoveChild, 15, ++/*205870*/ OPC_CheckInteger, 7, ++/*205872*/ OPC_CheckType, MVT::i32, ++/*205874*/ OPC_MoveParent, ++/*205875*/ OPC_CheckType, MVT::v16i8, ++/*205877*/ OPC_MoveParent, ++/*205878*/ OPC_MoveParent, ++/*205879*/ OPC_MoveParent, ++/*205880*/ OPC_MoveChild1, ++/*205881*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*205884*/ OPC_CheckChild0Integer, 1, ++/*205886*/ OPC_CheckChild0Type, MVT::i32, ++/*205888*/ OPC_CheckChild1Integer, 1, ++/*205890*/ OPC_CheckChild1Type, MVT::i32, ++/*205892*/ OPC_CheckChild2Integer, 1, ++/*205894*/ OPC_CheckChild2Type, MVT::i32, ++/*205896*/ OPC_CheckChild3Integer, 1, ++/*205898*/ OPC_CheckChild3Type, MVT::i32, ++/*205900*/ OPC_CheckChild4Integer, 1, ++/*205902*/ OPC_CheckChild4Type, MVT::i32, ++/*205904*/ OPC_MoveChild5, ++/*205905*/ OPC_CheckInteger, 1, ++/*205907*/ OPC_CheckType, MVT::i32, ++/*205909*/ OPC_MoveParent, ++/*205910*/ OPC_MoveChild6, ++/*205911*/ OPC_CheckInteger, 1, ++/*205913*/ OPC_CheckType, MVT::i32, ++/*205915*/ OPC_MoveParent, ++/*205916*/ OPC_MoveChild7, ++/*205917*/ OPC_CheckInteger, 1, ++/*205919*/ OPC_CheckType, MVT::i32, ++/*205921*/ OPC_MoveParent, ++/*205922*/ OPC_MoveChild, 8, ++/*205924*/ OPC_CheckInteger, 1, ++/*205926*/ OPC_CheckType, MVT::i32, ++/*205928*/ OPC_MoveParent, ++/*205929*/ OPC_MoveChild, 9, ++/*205931*/ OPC_CheckInteger, 1, ++/*205933*/ OPC_CheckType, MVT::i32, ++/*205935*/ OPC_MoveParent, ++/*205936*/ OPC_MoveChild, 10, ++/*205938*/ OPC_CheckInteger, 1, ++/*205940*/ OPC_CheckType, MVT::i32, ++/*205942*/ OPC_MoveParent, ++/*205943*/ OPC_MoveChild, 11, ++/*205945*/ OPC_CheckInteger, 1, ++/*205947*/ OPC_CheckType, MVT::i32, ++/*205949*/ OPC_MoveParent, ++/*205950*/ OPC_MoveChild, 12, ++/*205952*/ OPC_CheckInteger, 1, ++/*205954*/ OPC_CheckType, MVT::i32, ++/*205956*/ OPC_MoveParent, ++/*205957*/ OPC_MoveChild, 13, ++/*205959*/ OPC_CheckInteger, 1, ++/*205961*/ OPC_CheckType, MVT::i32, ++/*205963*/ OPC_MoveParent, ++/*205964*/ OPC_MoveChild, 14, ++/*205966*/ OPC_CheckInteger, 1, ++/*205968*/ OPC_CheckType, MVT::i32, ++/*205970*/ OPC_MoveParent, ++/*205971*/ OPC_MoveChild, 15, ++/*205973*/ OPC_CheckInteger, 1, ++/*205975*/ OPC_CheckType, MVT::i32, ++/*205977*/ OPC_MoveParent, ++/*205978*/ OPC_CheckType, MVT::v16i8, ++/*205980*/ OPC_MoveParent, ++/*205981*/ OPC_CheckType, MVT::v16i8, ++/*205983*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*205985*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*205993*/ 0, /*End of Scope*/ ++/*205994*/ /*Scope*/ 10|128,5/*650*/, /*->206646*/ ++/*205996*/ OPC_CheckChild0Same, 1, ++/*205998*/ OPC_MoveChild1, ++/*205999*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*206002*/ OPC_Scope, 63|128,2/*319*/, /*->206324*/ // 2 children in Scope ++/*206005*/ OPC_MoveChild0, ++/*206006*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*206009*/ OPC_CheckChild0Integer, 1, ++/*206011*/ OPC_CheckChild0Type, MVT::i32, ++/*206013*/ OPC_CheckChild1Integer, 1, ++/*206015*/ OPC_CheckChild1Type, MVT::i32, ++/*206017*/ OPC_CheckChild2Integer, 1, ++/*206019*/ OPC_CheckChild2Type, MVT::i32, ++/*206021*/ OPC_CheckChild3Integer, 1, ++/*206023*/ OPC_CheckChild3Type, MVT::i32, ++/*206025*/ OPC_CheckChild4Integer, 1, ++/*206027*/ OPC_CheckChild4Type, MVT::i32, ++/*206029*/ OPC_MoveChild5, ++/*206030*/ OPC_CheckInteger, 1, ++/*206032*/ OPC_CheckType, MVT::i32, ++/*206034*/ OPC_MoveParent, ++/*206035*/ OPC_MoveChild6, ++/*206036*/ OPC_CheckInteger, 1, ++/*206038*/ OPC_CheckType, MVT::i32, ++/*206040*/ OPC_MoveParent, ++/*206041*/ OPC_MoveChild7, ++/*206042*/ OPC_CheckInteger, 1, ++/*206044*/ OPC_CheckType, MVT::i32, ++/*206046*/ OPC_MoveParent, ++/*206047*/ OPC_MoveChild, 8, ++/*206049*/ OPC_CheckInteger, 1, ++/*206051*/ OPC_CheckType, MVT::i32, ++/*206053*/ OPC_MoveParent, ++/*206054*/ OPC_MoveChild, 9, ++/*206056*/ OPC_CheckInteger, 1, ++/*206058*/ OPC_CheckType, MVT::i32, ++/*206060*/ OPC_MoveParent, ++/*206061*/ OPC_MoveChild, 10, ++/*206063*/ OPC_CheckInteger, 1, ++/*206065*/ OPC_CheckType, MVT::i32, ++/*206067*/ OPC_MoveParent, ++/*206068*/ OPC_MoveChild, 11, ++/*206070*/ OPC_CheckInteger, 1, ++/*206072*/ OPC_CheckType, MVT::i32, ++/*206074*/ OPC_MoveParent, ++/*206075*/ OPC_MoveChild, 12, ++/*206077*/ OPC_CheckInteger, 1, ++/*206079*/ OPC_CheckType, MVT::i32, ++/*206081*/ OPC_MoveParent, ++/*206082*/ OPC_MoveChild, 13, ++/*206084*/ OPC_CheckInteger, 1, ++/*206086*/ OPC_CheckType, MVT::i32, ++/*206088*/ OPC_MoveParent, ++/*206089*/ OPC_MoveChild, 14, ++/*206091*/ OPC_CheckInteger, 1, ++/*206093*/ OPC_CheckType, MVT::i32, ++/*206095*/ OPC_MoveParent, ++/*206096*/ OPC_MoveChild, 15, ++/*206098*/ OPC_CheckInteger, 1, ++/*206100*/ OPC_CheckType, MVT::i32, ++/*206102*/ OPC_MoveParent, ++/*206103*/ OPC_MoveParent, ++/*206104*/ OPC_CheckChild1Same, 0, ++/*206106*/ OPC_MoveParent, ++/*206107*/ OPC_MoveParent, ++/*206108*/ OPC_MoveChild1, ++/*206109*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*206112*/ OPC_CheckChild0Integer, 7, ++/*206114*/ OPC_CheckChild0Type, MVT::i32, ++/*206116*/ OPC_CheckChild1Integer, 7, ++/*206118*/ OPC_CheckChild1Type, MVT::i32, ++/*206120*/ OPC_CheckChild2Integer, 7, ++/*206122*/ OPC_CheckChild2Type, MVT::i32, ++/*206124*/ OPC_CheckChild3Integer, 7, ++/*206126*/ OPC_CheckChild3Type, MVT::i32, ++/*206128*/ OPC_CheckChild4Integer, 7, ++/*206130*/ OPC_CheckChild4Type, MVT::i32, ++/*206132*/ OPC_MoveChild5, ++/*206133*/ OPC_CheckInteger, 7, ++/*206135*/ OPC_CheckType, MVT::i32, ++/*206137*/ OPC_MoveParent, ++/*206138*/ OPC_MoveChild6, ++/*206139*/ OPC_CheckInteger, 7, ++/*206141*/ OPC_CheckType, MVT::i32, ++/*206143*/ OPC_MoveParent, ++/*206144*/ OPC_MoveChild7, ++/*206145*/ OPC_CheckInteger, 7, ++/*206147*/ OPC_CheckType, MVT::i32, ++/*206149*/ OPC_MoveParent, ++/*206150*/ OPC_MoveChild, 8, ++/*206152*/ OPC_CheckInteger, 7, ++/*206154*/ OPC_CheckType, MVT::i32, ++/*206156*/ OPC_MoveParent, ++/*206157*/ OPC_MoveChild, 9, ++/*206159*/ OPC_CheckInteger, 7, ++/*206161*/ OPC_CheckType, MVT::i32, ++/*206163*/ OPC_MoveParent, ++/*206164*/ OPC_MoveChild, 10, ++/*206166*/ OPC_CheckInteger, 7, ++/*206168*/ OPC_CheckType, MVT::i32, ++/*206170*/ OPC_MoveParent, ++/*206171*/ OPC_MoveChild, 11, ++/*206173*/ OPC_CheckInteger, 7, ++/*206175*/ OPC_CheckType, MVT::i32, ++/*206177*/ OPC_MoveParent, ++/*206178*/ OPC_MoveChild, 12, ++/*206180*/ OPC_CheckInteger, 7, ++/*206182*/ OPC_CheckType, MVT::i32, ++/*206184*/ OPC_MoveParent, ++/*206185*/ OPC_MoveChild, 13, ++/*206187*/ OPC_CheckInteger, 7, ++/*206189*/ OPC_CheckType, MVT::i32, ++/*206191*/ OPC_MoveParent, ++/*206192*/ OPC_MoveChild, 14, ++/*206194*/ OPC_CheckInteger, 7, ++/*206196*/ OPC_CheckType, MVT::i32, ++/*206198*/ OPC_MoveParent, ++/*206199*/ OPC_MoveChild, 15, ++/*206201*/ OPC_CheckInteger, 7, ++/*206203*/ OPC_CheckType, MVT::i32, ++/*206205*/ OPC_MoveParent, ++/*206206*/ OPC_CheckType, MVT::v16i8, ++/*206208*/ OPC_MoveParent, ++/*206209*/ OPC_MoveParent, ++/*206210*/ OPC_MoveParent, ++/*206211*/ OPC_MoveChild1, ++/*206212*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*206215*/ OPC_CheckChild0Integer, 1, ++/*206217*/ OPC_CheckChild0Type, MVT::i32, ++/*206219*/ OPC_CheckChild1Integer, 1, ++/*206221*/ OPC_CheckChild1Type, MVT::i32, ++/*206223*/ OPC_CheckChild2Integer, 1, ++/*206225*/ OPC_CheckChild2Type, MVT::i32, ++/*206227*/ OPC_CheckChild3Integer, 1, ++/*206229*/ OPC_CheckChild3Type, MVT::i32, ++/*206231*/ OPC_CheckChild4Integer, 1, ++/*206233*/ OPC_CheckChild4Type, MVT::i32, ++/*206235*/ OPC_MoveChild5, ++/*206236*/ OPC_CheckInteger, 1, ++/*206238*/ OPC_CheckType, MVT::i32, ++/*206240*/ OPC_MoveParent, ++/*206241*/ OPC_MoveChild6, ++/*206242*/ OPC_CheckInteger, 1, ++/*206244*/ OPC_CheckType, MVT::i32, ++/*206246*/ OPC_MoveParent, ++/*206247*/ OPC_MoveChild7, ++/*206248*/ OPC_CheckInteger, 1, ++/*206250*/ OPC_CheckType, MVT::i32, ++/*206252*/ OPC_MoveParent, ++/*206253*/ OPC_MoveChild, 8, ++/*206255*/ OPC_CheckInteger, 1, ++/*206257*/ OPC_CheckType, MVT::i32, ++/*206259*/ OPC_MoveParent, ++/*206260*/ OPC_MoveChild, 9, ++/*206262*/ OPC_CheckInteger, 1, ++/*206264*/ OPC_CheckType, MVT::i32, ++/*206266*/ OPC_MoveParent, ++/*206267*/ OPC_MoveChild, 10, ++/*206269*/ OPC_CheckInteger, 1, ++/*206271*/ OPC_CheckType, MVT::i32, ++/*206273*/ OPC_MoveParent, ++/*206274*/ OPC_MoveChild, 11, ++/*206276*/ OPC_CheckInteger, 1, ++/*206278*/ OPC_CheckType, MVT::i32, ++/*206280*/ OPC_MoveParent, ++/*206281*/ OPC_MoveChild, 12, ++/*206283*/ OPC_CheckInteger, 1, ++/*206285*/ OPC_CheckType, MVT::i32, ++/*206287*/ OPC_MoveParent, ++/*206288*/ OPC_MoveChild, 13, ++/*206290*/ OPC_CheckInteger, 1, ++/*206292*/ OPC_CheckType, MVT::i32, ++/*206294*/ OPC_MoveParent, ++/*206295*/ OPC_MoveChild, 14, ++/*206297*/ OPC_CheckInteger, 1, ++/*206299*/ OPC_CheckType, MVT::i32, ++/*206301*/ OPC_MoveParent, ++/*206302*/ OPC_MoveChild, 15, ++/*206304*/ OPC_CheckInteger, 1, ++/*206306*/ OPC_CheckType, MVT::i32, ++/*206308*/ OPC_MoveParent, ++/*206309*/ OPC_CheckType, MVT::v16i8, ++/*206311*/ OPC_MoveParent, ++/*206312*/ OPC_CheckType, MVT::v16i8, ++/*206314*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*206316*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*206324*/ /*Scope*/ 63|128,2/*319*/, /*->206645*/ ++/*206326*/ OPC_CheckChild0Same, 0, ++/*206328*/ OPC_MoveChild1, ++/*206329*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*206332*/ OPC_CheckChild0Integer, 1, ++/*206334*/ OPC_CheckChild0Type, MVT::i32, ++/*206336*/ OPC_CheckChild1Integer, 1, ++/*206338*/ OPC_CheckChild1Type, MVT::i32, ++/*206340*/ OPC_CheckChild2Integer, 1, ++/*206342*/ OPC_CheckChild2Type, MVT::i32, ++/*206344*/ OPC_CheckChild3Integer, 1, ++/*206346*/ OPC_CheckChild3Type, MVT::i32, ++/*206348*/ OPC_CheckChild4Integer, 1, ++/*206350*/ OPC_CheckChild4Type, MVT::i32, ++/*206352*/ OPC_MoveChild5, ++/*206353*/ OPC_CheckInteger, 1, ++/*206355*/ OPC_CheckType, MVT::i32, ++/*206357*/ OPC_MoveParent, ++/*206358*/ OPC_MoveChild6, ++/*206359*/ OPC_CheckInteger, 1, ++/*206361*/ OPC_CheckType, MVT::i32, ++/*206363*/ OPC_MoveParent, ++/*206364*/ OPC_MoveChild7, ++/*206365*/ OPC_CheckInteger, 1, ++/*206367*/ OPC_CheckType, MVT::i32, ++/*206369*/ OPC_MoveParent, ++/*206370*/ OPC_MoveChild, 8, ++/*206372*/ OPC_CheckInteger, 1, ++/*206374*/ OPC_CheckType, MVT::i32, ++/*206376*/ OPC_MoveParent, ++/*206377*/ OPC_MoveChild, 9, ++/*206379*/ OPC_CheckInteger, 1, ++/*206381*/ OPC_CheckType, MVT::i32, ++/*206383*/ OPC_MoveParent, ++/*206384*/ OPC_MoveChild, 10, ++/*206386*/ OPC_CheckInteger, 1, ++/*206388*/ OPC_CheckType, MVT::i32, ++/*206390*/ OPC_MoveParent, ++/*206391*/ OPC_MoveChild, 11, ++/*206393*/ OPC_CheckInteger, 1, ++/*206395*/ OPC_CheckType, MVT::i32, ++/*206397*/ OPC_MoveParent, ++/*206398*/ OPC_MoveChild, 12, ++/*206400*/ OPC_CheckInteger, 1, ++/*206402*/ OPC_CheckType, MVT::i32, ++/*206404*/ OPC_MoveParent, ++/*206405*/ OPC_MoveChild, 13, ++/*206407*/ OPC_CheckInteger, 1, ++/*206409*/ OPC_CheckType, MVT::i32, ++/*206411*/ OPC_MoveParent, ++/*206412*/ OPC_MoveChild, 14, ++/*206414*/ OPC_CheckInteger, 1, ++/*206416*/ OPC_CheckType, MVT::i32, ++/*206418*/ OPC_MoveParent, ++/*206419*/ OPC_MoveChild, 15, ++/*206421*/ OPC_CheckInteger, 1, ++/*206423*/ OPC_CheckType, MVT::i32, ++/*206425*/ OPC_MoveParent, ++/*206426*/ OPC_MoveParent, ++/*206427*/ OPC_MoveParent, ++/*206428*/ OPC_MoveParent, ++/*206429*/ OPC_MoveChild1, ++/*206430*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*206433*/ OPC_CheckChild0Integer, 7, ++/*206435*/ OPC_CheckChild0Type, MVT::i32, ++/*206437*/ OPC_CheckChild1Integer, 7, ++/*206439*/ OPC_CheckChild1Type, MVT::i32, ++/*206441*/ OPC_CheckChild2Integer, 7, ++/*206443*/ OPC_CheckChild2Type, MVT::i32, ++/*206445*/ OPC_CheckChild3Integer, 7, ++/*206447*/ OPC_CheckChild3Type, MVT::i32, ++/*206449*/ OPC_CheckChild4Integer, 7, ++/*206451*/ OPC_CheckChild4Type, MVT::i32, ++/*206453*/ OPC_MoveChild5, ++/*206454*/ OPC_CheckInteger, 7, ++/*206456*/ OPC_CheckType, MVT::i32, ++/*206458*/ OPC_MoveParent, ++/*206459*/ OPC_MoveChild6, ++/*206460*/ OPC_CheckInteger, 7, ++/*206462*/ OPC_CheckType, MVT::i32, ++/*206464*/ OPC_MoveParent, ++/*206465*/ OPC_MoveChild7, ++/*206466*/ OPC_CheckInteger, 7, ++/*206468*/ OPC_CheckType, MVT::i32, ++/*206470*/ OPC_MoveParent, ++/*206471*/ OPC_MoveChild, 8, ++/*206473*/ OPC_CheckInteger, 7, ++/*206475*/ OPC_CheckType, MVT::i32, ++/*206477*/ OPC_MoveParent, ++/*206478*/ OPC_MoveChild, 9, ++/*206480*/ OPC_CheckInteger, 7, ++/*206482*/ OPC_CheckType, MVT::i32, ++/*206484*/ OPC_MoveParent, ++/*206485*/ OPC_MoveChild, 10, ++/*206487*/ OPC_CheckInteger, 7, ++/*206489*/ OPC_CheckType, MVT::i32, ++/*206491*/ OPC_MoveParent, ++/*206492*/ OPC_MoveChild, 11, ++/*206494*/ OPC_CheckInteger, 7, ++/*206496*/ OPC_CheckType, MVT::i32, ++/*206498*/ OPC_MoveParent, ++/*206499*/ OPC_MoveChild, 12, ++/*206501*/ OPC_CheckInteger, 7, ++/*206503*/ OPC_CheckType, MVT::i32, ++/*206505*/ OPC_MoveParent, ++/*206506*/ OPC_MoveChild, 13, ++/*206508*/ OPC_CheckInteger, 7, ++/*206510*/ OPC_CheckType, MVT::i32, ++/*206512*/ OPC_MoveParent, ++/*206513*/ OPC_MoveChild, 14, ++/*206515*/ OPC_CheckInteger, 7, ++/*206517*/ OPC_CheckType, MVT::i32, ++/*206519*/ OPC_MoveParent, ++/*206520*/ OPC_MoveChild, 15, ++/*206522*/ OPC_CheckInteger, 7, ++/*206524*/ OPC_CheckType, MVT::i32, ++/*206526*/ OPC_MoveParent, ++/*206527*/ OPC_CheckType, MVT::v16i8, ++/*206529*/ OPC_MoveParent, ++/*206530*/ OPC_MoveParent, ++/*206531*/ OPC_MoveParent, ++/*206532*/ OPC_MoveChild1, ++/*206533*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*206536*/ OPC_CheckChild0Integer, 1, ++/*206538*/ OPC_CheckChild0Type, MVT::i32, ++/*206540*/ OPC_CheckChild1Integer, 1, ++/*206542*/ OPC_CheckChild1Type, MVT::i32, ++/*206544*/ OPC_CheckChild2Integer, 1, ++/*206546*/ OPC_CheckChild2Type, MVT::i32, ++/*206548*/ OPC_CheckChild3Integer, 1, ++/*206550*/ OPC_CheckChild3Type, MVT::i32, ++/*206552*/ OPC_CheckChild4Integer, 1, ++/*206554*/ OPC_CheckChild4Type, MVT::i32, ++/*206556*/ OPC_MoveChild5, ++/*206557*/ OPC_CheckInteger, 1, ++/*206559*/ OPC_CheckType, MVT::i32, ++/*206561*/ OPC_MoveParent, ++/*206562*/ OPC_MoveChild6, ++/*206563*/ OPC_CheckInteger, 1, ++/*206565*/ OPC_CheckType, MVT::i32, ++/*206567*/ OPC_MoveParent, ++/*206568*/ OPC_MoveChild7, ++/*206569*/ OPC_CheckInteger, 1, ++/*206571*/ OPC_CheckType, MVT::i32, ++/*206573*/ OPC_MoveParent, ++/*206574*/ OPC_MoveChild, 8, ++/*206576*/ OPC_CheckInteger, 1, ++/*206578*/ OPC_CheckType, MVT::i32, ++/*206580*/ OPC_MoveParent, ++/*206581*/ OPC_MoveChild, 9, ++/*206583*/ OPC_CheckInteger, 1, ++/*206585*/ OPC_CheckType, MVT::i32, ++/*206587*/ OPC_MoveParent, ++/*206588*/ OPC_MoveChild, 10, ++/*206590*/ OPC_CheckInteger, 1, ++/*206592*/ OPC_CheckType, MVT::i32, ++/*206594*/ OPC_MoveParent, ++/*206595*/ OPC_MoveChild, 11, ++/*206597*/ OPC_CheckInteger, 1, ++/*206599*/ OPC_CheckType, MVT::i32, ++/*206601*/ OPC_MoveParent, ++/*206602*/ OPC_MoveChild, 12, ++/*206604*/ OPC_CheckInteger, 1, ++/*206606*/ OPC_CheckType, MVT::i32, ++/*206608*/ OPC_MoveParent, ++/*206609*/ OPC_MoveChild, 13, ++/*206611*/ OPC_CheckInteger, 1, ++/*206613*/ OPC_CheckType, MVT::i32, ++/*206615*/ OPC_MoveParent, ++/*206616*/ OPC_MoveChild, 14, ++/*206618*/ OPC_CheckInteger, 1, ++/*206620*/ OPC_CheckType, MVT::i32, ++/*206622*/ OPC_MoveParent, ++/*206623*/ OPC_MoveChild, 15, ++/*206625*/ OPC_CheckInteger, 1, ++/*206627*/ OPC_CheckType, MVT::i32, ++/*206629*/ OPC_MoveParent, ++/*206630*/ OPC_CheckType, MVT::v16i8, ++/*206632*/ OPC_MoveParent, ++/*206633*/ OPC_CheckType, MVT::v16i8, ++/*206635*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*206637*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*206645*/ 0, /*End of Scope*/ ++/*206646*/ /*Scope*/ 41|128,4/*553*/, /*->207201*/ ++/*206648*/ OPC_MoveChild0, ++/*206649*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*206652*/ OPC_CheckChild0Integer, 1, ++/*206654*/ OPC_CheckChild0Type, MVT::i32, ++/*206656*/ OPC_CheckChild1Integer, 1, ++/*206658*/ OPC_CheckChild1Type, MVT::i32, ++/*206660*/ OPC_CheckChild2Integer, 1, ++/*206662*/ OPC_CheckChild2Type, MVT::i32, ++/*206664*/ OPC_CheckChild3Integer, 1, ++/*206666*/ OPC_CheckChild3Type, MVT::i32, ++/*206668*/ OPC_CheckChild4Integer, 1, ++/*206670*/ OPC_CheckChild4Type, MVT::i32, ++/*206672*/ OPC_MoveChild5, ++/*206673*/ OPC_CheckInteger, 1, ++/*206675*/ OPC_CheckType, MVT::i32, ++/*206677*/ OPC_MoveParent, ++/*206678*/ OPC_MoveChild6, ++/*206679*/ OPC_CheckInteger, 1, ++/*206681*/ OPC_CheckType, MVT::i32, ++/*206683*/ OPC_MoveParent, ++/*206684*/ OPC_MoveChild7, ++/*206685*/ OPC_CheckInteger, 1, ++/*206687*/ OPC_CheckType, MVT::i32, ++/*206689*/ OPC_MoveParent, ++/*206690*/ OPC_MoveChild, 8, ++/*206692*/ OPC_CheckInteger, 1, ++/*206694*/ OPC_CheckType, MVT::i32, ++/*206696*/ OPC_MoveParent, ++/*206697*/ OPC_MoveChild, 9, ++/*206699*/ OPC_CheckInteger, 1, ++/*206701*/ OPC_CheckType, MVT::i32, ++/*206703*/ OPC_MoveParent, ++/*206704*/ OPC_MoveChild, 10, ++/*206706*/ OPC_CheckInteger, 1, ++/*206708*/ OPC_CheckType, MVT::i32, ++/*206710*/ OPC_MoveParent, ++/*206711*/ OPC_MoveChild, 11, ++/*206713*/ OPC_CheckInteger, 1, ++/*206715*/ OPC_CheckType, MVT::i32, ++/*206717*/ OPC_MoveParent, ++/*206718*/ OPC_MoveChild, 12, ++/*206720*/ OPC_CheckInteger, 1, ++/*206722*/ OPC_CheckType, MVT::i32, ++/*206724*/ OPC_MoveParent, ++/*206725*/ OPC_MoveChild, 13, ++/*206727*/ OPC_CheckInteger, 1, ++/*206729*/ OPC_CheckType, MVT::i32, ++/*206731*/ OPC_MoveParent, ++/*206732*/ OPC_MoveChild, 14, ++/*206734*/ OPC_CheckInteger, 1, ++/*206736*/ OPC_CheckType, MVT::i32, ++/*206738*/ OPC_MoveParent, ++/*206739*/ OPC_MoveChild, 15, ++/*206741*/ OPC_CheckInteger, 1, ++/*206743*/ OPC_CheckType, MVT::i32, ++/*206745*/ OPC_MoveParent, ++/*206746*/ OPC_MoveParent, ++/*206747*/ OPC_MoveChild1, ++/*206748*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*206751*/ OPC_Scope, 94|128,1/*222*/, /*->206976*/ // 2 children in Scope ++/*206754*/ OPC_CheckChild0Same, 1, ++/*206756*/ OPC_CheckChild1Same, 0, ++/*206758*/ OPC_MoveParent, ++/*206759*/ OPC_MoveParent, ++/*206760*/ OPC_MoveChild1, ++/*206761*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*206764*/ OPC_CheckChild0Integer, 7, ++/*206766*/ OPC_CheckChild0Type, MVT::i32, ++/*206768*/ OPC_CheckChild1Integer, 7, ++/*206770*/ OPC_CheckChild1Type, MVT::i32, ++/*206772*/ OPC_CheckChild2Integer, 7, ++/*206774*/ OPC_CheckChild2Type, MVT::i32, ++/*206776*/ OPC_CheckChild3Integer, 7, ++/*206778*/ OPC_CheckChild3Type, MVT::i32, ++/*206780*/ OPC_CheckChild4Integer, 7, ++/*206782*/ OPC_CheckChild4Type, MVT::i32, ++/*206784*/ OPC_MoveChild5, ++/*206785*/ OPC_CheckInteger, 7, ++/*206787*/ OPC_CheckType, MVT::i32, ++/*206789*/ OPC_MoveParent, ++/*206790*/ OPC_MoveChild6, ++/*206791*/ OPC_CheckInteger, 7, ++/*206793*/ OPC_CheckType, MVT::i32, ++/*206795*/ OPC_MoveParent, ++/*206796*/ OPC_MoveChild7, ++/*206797*/ OPC_CheckInteger, 7, ++/*206799*/ OPC_CheckType, MVT::i32, ++/*206801*/ OPC_MoveParent, ++/*206802*/ OPC_MoveChild, 8, ++/*206804*/ OPC_CheckInteger, 7, ++/*206806*/ OPC_CheckType, MVT::i32, ++/*206808*/ OPC_MoveParent, ++/*206809*/ OPC_MoveChild, 9, ++/*206811*/ OPC_CheckInteger, 7, ++/*206813*/ OPC_CheckType, MVT::i32, ++/*206815*/ OPC_MoveParent, ++/*206816*/ OPC_MoveChild, 10, ++/*206818*/ OPC_CheckInteger, 7, ++/*206820*/ OPC_CheckType, MVT::i32, ++/*206822*/ OPC_MoveParent, ++/*206823*/ OPC_MoveChild, 11, ++/*206825*/ OPC_CheckInteger, 7, ++/*206827*/ OPC_CheckType, MVT::i32, ++/*206829*/ OPC_MoveParent, ++/*206830*/ OPC_MoveChild, 12, ++/*206832*/ OPC_CheckInteger, 7, ++/*206834*/ OPC_CheckType, MVT::i32, ++/*206836*/ OPC_MoveParent, ++/*206837*/ OPC_MoveChild, 13, ++/*206839*/ OPC_CheckInteger, 7, ++/*206841*/ OPC_CheckType, MVT::i32, ++/*206843*/ OPC_MoveParent, ++/*206844*/ OPC_MoveChild, 14, ++/*206846*/ OPC_CheckInteger, 7, ++/*206848*/ OPC_CheckType, MVT::i32, ++/*206850*/ OPC_MoveParent, ++/*206851*/ OPC_MoveChild, 15, ++/*206853*/ OPC_CheckInteger, 7, ++/*206855*/ OPC_CheckType, MVT::i32, ++/*206857*/ OPC_MoveParent, ++/*206858*/ OPC_CheckType, MVT::v16i8, ++/*206860*/ OPC_MoveParent, ++/*206861*/ OPC_MoveParent, ++/*206862*/ OPC_MoveParent, ++/*206863*/ OPC_MoveChild1, ++/*206864*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*206867*/ OPC_CheckChild0Integer, 1, ++/*206869*/ OPC_CheckChild0Type, MVT::i32, ++/*206871*/ OPC_CheckChild1Integer, 1, ++/*206873*/ OPC_CheckChild1Type, MVT::i32, ++/*206875*/ OPC_CheckChild2Integer, 1, ++/*206877*/ OPC_CheckChild2Type, MVT::i32, ++/*206879*/ OPC_CheckChild3Integer, 1, ++/*206881*/ OPC_CheckChild3Type, MVT::i32, ++/*206883*/ OPC_CheckChild4Integer, 1, ++/*206885*/ OPC_CheckChild4Type, MVT::i32, ++/*206887*/ OPC_MoveChild5, ++/*206888*/ OPC_CheckInteger, 1, ++/*206890*/ OPC_CheckType, MVT::i32, ++/*206892*/ OPC_MoveParent, ++/*206893*/ OPC_MoveChild6, ++/*206894*/ OPC_CheckInteger, 1, ++/*206896*/ OPC_CheckType, MVT::i32, ++/*206898*/ OPC_MoveParent, ++/*206899*/ OPC_MoveChild7, ++/*206900*/ OPC_CheckInteger, 1, ++/*206902*/ OPC_CheckType, MVT::i32, ++/*206904*/ OPC_MoveParent, ++/*206905*/ OPC_MoveChild, 8, ++/*206907*/ OPC_CheckInteger, 1, ++/*206909*/ OPC_CheckType, MVT::i32, ++/*206911*/ OPC_MoveParent, ++/*206912*/ OPC_MoveChild, 9, ++/*206914*/ OPC_CheckInteger, 1, ++/*206916*/ OPC_CheckType, MVT::i32, ++/*206918*/ OPC_MoveParent, ++/*206919*/ OPC_MoveChild, 10, ++/*206921*/ OPC_CheckInteger, 1, ++/*206923*/ OPC_CheckType, MVT::i32, ++/*206925*/ OPC_MoveParent, ++/*206926*/ OPC_MoveChild, 11, ++/*206928*/ OPC_CheckInteger, 1, ++/*206930*/ OPC_CheckType, MVT::i32, ++/*206932*/ OPC_MoveParent, ++/*206933*/ OPC_MoveChild, 12, ++/*206935*/ OPC_CheckInteger, 1, ++/*206937*/ OPC_CheckType, MVT::i32, ++/*206939*/ OPC_MoveParent, ++/*206940*/ OPC_MoveChild, 13, ++/*206942*/ OPC_CheckInteger, 1, ++/*206944*/ OPC_CheckType, MVT::i32, ++/*206946*/ OPC_MoveParent, ++/*206947*/ OPC_MoveChild, 14, ++/*206949*/ OPC_CheckInteger, 1, ++/*206951*/ OPC_CheckType, MVT::i32, ++/*206953*/ OPC_MoveParent, ++/*206954*/ OPC_MoveChild, 15, ++/*206956*/ OPC_CheckInteger, 1, ++/*206958*/ OPC_CheckType, MVT::i32, ++/*206960*/ OPC_MoveParent, ++/*206961*/ OPC_CheckType, MVT::v16i8, ++/*206963*/ OPC_MoveParent, ++/*206964*/ OPC_CheckType, MVT::v16i8, ++/*206966*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*206968*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*206976*/ /*Scope*/ 94|128,1/*222*/, /*->207200*/ ++/*206978*/ OPC_CheckChild0Same, 0, ++/*206980*/ OPC_CheckChild1Same, 1, ++/*206982*/ OPC_MoveParent, ++/*206983*/ OPC_MoveParent, ++/*206984*/ OPC_MoveChild1, ++/*206985*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*206988*/ OPC_CheckChild0Integer, 7, ++/*206990*/ OPC_CheckChild0Type, MVT::i32, ++/*206992*/ OPC_CheckChild1Integer, 7, ++/*206994*/ OPC_CheckChild1Type, MVT::i32, ++/*206996*/ OPC_CheckChild2Integer, 7, ++/*206998*/ OPC_CheckChild2Type, MVT::i32, ++/*207000*/ OPC_CheckChild3Integer, 7, ++/*207002*/ OPC_CheckChild3Type, MVT::i32, ++/*207004*/ OPC_CheckChild4Integer, 7, ++/*207006*/ OPC_CheckChild4Type, MVT::i32, ++/*207008*/ OPC_MoveChild5, ++/*207009*/ OPC_CheckInteger, 7, ++/*207011*/ OPC_CheckType, MVT::i32, ++/*207013*/ OPC_MoveParent, ++/*207014*/ OPC_MoveChild6, ++/*207015*/ OPC_CheckInteger, 7, ++/*207017*/ OPC_CheckType, MVT::i32, ++/*207019*/ OPC_MoveParent, ++/*207020*/ OPC_MoveChild7, ++/*207021*/ OPC_CheckInteger, 7, ++/*207023*/ OPC_CheckType, MVT::i32, ++/*207025*/ OPC_MoveParent, ++/*207026*/ OPC_MoveChild, 8, ++/*207028*/ OPC_CheckInteger, 7, ++/*207030*/ OPC_CheckType, MVT::i32, ++/*207032*/ OPC_MoveParent, ++/*207033*/ OPC_MoveChild, 9, ++/*207035*/ OPC_CheckInteger, 7, ++/*207037*/ OPC_CheckType, MVT::i32, ++/*207039*/ OPC_MoveParent, ++/*207040*/ OPC_MoveChild, 10, ++/*207042*/ OPC_CheckInteger, 7, ++/*207044*/ OPC_CheckType, MVT::i32, ++/*207046*/ OPC_MoveParent, ++/*207047*/ OPC_MoveChild, 11, ++/*207049*/ OPC_CheckInteger, 7, ++/*207051*/ OPC_CheckType, MVT::i32, ++/*207053*/ OPC_MoveParent, ++/*207054*/ OPC_MoveChild, 12, ++/*207056*/ OPC_CheckInteger, 7, ++/*207058*/ OPC_CheckType, MVT::i32, ++/*207060*/ OPC_MoveParent, ++/*207061*/ OPC_MoveChild, 13, ++/*207063*/ OPC_CheckInteger, 7, ++/*207065*/ OPC_CheckType, MVT::i32, ++/*207067*/ OPC_MoveParent, ++/*207068*/ OPC_MoveChild, 14, ++/*207070*/ OPC_CheckInteger, 7, ++/*207072*/ OPC_CheckType, MVT::i32, ++/*207074*/ OPC_MoveParent, ++/*207075*/ OPC_MoveChild, 15, ++/*207077*/ OPC_CheckInteger, 7, ++/*207079*/ OPC_CheckType, MVT::i32, ++/*207081*/ OPC_MoveParent, ++/*207082*/ OPC_CheckType, MVT::v16i8, ++/*207084*/ OPC_MoveParent, ++/*207085*/ OPC_MoveParent, ++/*207086*/ OPC_MoveParent, ++/*207087*/ OPC_MoveChild1, ++/*207088*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*207091*/ OPC_CheckChild0Integer, 1, ++/*207093*/ OPC_CheckChild0Type, MVT::i32, ++/*207095*/ OPC_CheckChild1Integer, 1, ++/*207097*/ OPC_CheckChild1Type, MVT::i32, ++/*207099*/ OPC_CheckChild2Integer, 1, ++/*207101*/ OPC_CheckChild2Type, MVT::i32, ++/*207103*/ OPC_CheckChild3Integer, 1, ++/*207105*/ OPC_CheckChild3Type, MVT::i32, ++/*207107*/ OPC_CheckChild4Integer, 1, ++/*207109*/ OPC_CheckChild4Type, MVT::i32, ++/*207111*/ OPC_MoveChild5, ++/*207112*/ OPC_CheckInteger, 1, ++/*207114*/ OPC_CheckType, MVT::i32, ++/*207116*/ OPC_MoveParent, ++/*207117*/ OPC_MoveChild6, ++/*207118*/ OPC_CheckInteger, 1, ++/*207120*/ OPC_CheckType, MVT::i32, ++/*207122*/ OPC_MoveParent, ++/*207123*/ OPC_MoveChild7, ++/*207124*/ OPC_CheckInteger, 1, ++/*207126*/ OPC_CheckType, MVT::i32, ++/*207128*/ OPC_MoveParent, ++/*207129*/ OPC_MoveChild, 8, ++/*207131*/ OPC_CheckInteger, 1, ++/*207133*/ OPC_CheckType, MVT::i32, ++/*207135*/ OPC_MoveParent, ++/*207136*/ OPC_MoveChild, 9, ++/*207138*/ OPC_CheckInteger, 1, ++/*207140*/ OPC_CheckType, MVT::i32, ++/*207142*/ OPC_MoveParent, ++/*207143*/ OPC_MoveChild, 10, ++/*207145*/ OPC_CheckInteger, 1, ++/*207147*/ OPC_CheckType, MVT::i32, ++/*207149*/ OPC_MoveParent, ++/*207150*/ OPC_MoveChild, 11, ++/*207152*/ OPC_CheckInteger, 1, ++/*207154*/ OPC_CheckType, MVT::i32, ++/*207156*/ OPC_MoveParent, ++/*207157*/ OPC_MoveChild, 12, ++/*207159*/ OPC_CheckInteger, 1, ++/*207161*/ OPC_CheckType, MVT::i32, ++/*207163*/ OPC_MoveParent, ++/*207164*/ OPC_MoveChild, 13, ++/*207166*/ OPC_CheckInteger, 1, ++/*207168*/ OPC_CheckType, MVT::i32, ++/*207170*/ OPC_MoveParent, ++/*207171*/ OPC_MoveChild, 14, ++/*207173*/ OPC_CheckInteger, 1, ++/*207175*/ OPC_CheckType, MVT::i32, ++/*207177*/ OPC_MoveParent, ++/*207178*/ OPC_MoveChild, 15, ++/*207180*/ OPC_CheckInteger, 1, ++/*207182*/ OPC_CheckType, MVT::i32, ++/*207184*/ OPC_MoveParent, ++/*207185*/ OPC_CheckType, MVT::v16i8, ++/*207187*/ OPC_MoveParent, ++/*207188*/ OPC_CheckType, MVT::v16i8, ++/*207190*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*207192*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*207200*/ 0, /*End of Scope*/ ++/*207201*/ 0, /*End of Scope*/ ++/*207202*/ /*Scope*/ 77|128,30/*3917*/, /*->211121*/ ++/*207204*/ OPC_MoveChild0, ++/*207205*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*207208*/ OPC_CheckChild0Integer, 1, ++/*207210*/ OPC_CheckChild0Type, MVT::i32, ++/*207212*/ OPC_CheckChild1Integer, 1, ++/*207214*/ OPC_CheckChild1Type, MVT::i32, ++/*207216*/ OPC_CheckChild2Integer, 1, ++/*207218*/ OPC_CheckChild2Type, MVT::i32, ++/*207220*/ OPC_CheckChild3Integer, 1, ++/*207222*/ OPC_CheckChild3Type, MVT::i32, ++/*207224*/ OPC_CheckChild4Integer, 1, ++/*207226*/ OPC_CheckChild4Type, MVT::i32, ++/*207228*/ OPC_MoveChild5, ++/*207229*/ OPC_CheckInteger, 1, ++/*207231*/ OPC_CheckType, MVT::i32, ++/*207233*/ OPC_MoveParent, ++/*207234*/ OPC_MoveChild6, ++/*207235*/ OPC_CheckInteger, 1, ++/*207237*/ OPC_CheckType, MVT::i32, ++/*207239*/ OPC_MoveParent, ++/*207240*/ OPC_MoveChild7, ++/*207241*/ OPC_CheckInteger, 1, ++/*207243*/ OPC_CheckType, MVT::i32, ++/*207245*/ OPC_MoveParent, ++/*207246*/ OPC_MoveChild, 8, ++/*207248*/ OPC_CheckInteger, 1, ++/*207250*/ OPC_CheckType, MVT::i32, ++/*207252*/ OPC_MoveParent, ++/*207253*/ OPC_MoveChild, 9, ++/*207255*/ OPC_CheckInteger, 1, ++/*207257*/ OPC_CheckType, MVT::i32, ++/*207259*/ OPC_MoveParent, ++/*207260*/ OPC_MoveChild, 10, ++/*207262*/ OPC_CheckInteger, 1, ++/*207264*/ OPC_CheckType, MVT::i32, ++/*207266*/ OPC_MoveParent, ++/*207267*/ OPC_MoveChild, 11, ++/*207269*/ OPC_CheckInteger, 1, ++/*207271*/ OPC_CheckType, MVT::i32, ++/*207273*/ OPC_MoveParent, ++/*207274*/ OPC_MoveChild, 12, ++/*207276*/ OPC_CheckInteger, 1, ++/*207278*/ OPC_CheckType, MVT::i32, ++/*207280*/ OPC_MoveParent, ++/*207281*/ OPC_MoveChild, 13, ++/*207283*/ OPC_CheckInteger, 1, ++/*207285*/ OPC_CheckType, MVT::i32, ++/*207287*/ OPC_MoveParent, ++/*207288*/ OPC_MoveChild, 14, ++/*207290*/ OPC_CheckInteger, 1, ++/*207292*/ OPC_CheckType, MVT::i32, ++/*207294*/ OPC_MoveParent, ++/*207295*/ OPC_MoveChild, 15, ++/*207297*/ OPC_CheckInteger, 1, ++/*207299*/ OPC_CheckType, MVT::i32, ++/*207301*/ OPC_MoveParent, ++/*207302*/ OPC_MoveParent, ++/*207303*/ OPC_RecordChild1, // #1 = $b ++/*207304*/ OPC_MoveParent, ++/*207305*/ OPC_MoveParent, ++/*207306*/ OPC_MoveChild1, ++/*207307*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*207310*/ OPC_MoveChild0, ++/*207311*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*207314*/ OPC_Scope, 24|128,15/*1944*/, /*->209261*/ // 4 children in Scope ++/*207317*/ OPC_MoveChild0, ++/*207318*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*207321*/ OPC_Scope, 65|128,2/*321*/, /*->207645*/ // 6 children in Scope ++/*207324*/ OPC_MoveChild0, ++/*207325*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*207328*/ OPC_CheckChild0Integer, 1, ++/*207330*/ OPC_CheckChild0Type, MVT::i32, ++/*207332*/ OPC_CheckChild1Integer, 1, ++/*207334*/ OPC_CheckChild1Type, MVT::i32, ++/*207336*/ OPC_CheckChild2Integer, 1, ++/*207338*/ OPC_CheckChild2Type, MVT::i32, ++/*207340*/ OPC_CheckChild3Integer, 1, ++/*207342*/ OPC_CheckChild3Type, MVT::i32, ++/*207344*/ OPC_CheckChild4Integer, 1, ++/*207346*/ OPC_CheckChild4Type, MVT::i32, ++/*207348*/ OPC_MoveChild5, ++/*207349*/ OPC_CheckInteger, 1, ++/*207351*/ OPC_CheckType, MVT::i32, ++/*207353*/ OPC_MoveParent, ++/*207354*/ OPC_MoveChild6, ++/*207355*/ OPC_CheckInteger, 1, ++/*207357*/ OPC_CheckType, MVT::i32, ++/*207359*/ OPC_MoveParent, ++/*207360*/ OPC_MoveChild7, ++/*207361*/ OPC_CheckInteger, 1, ++/*207363*/ OPC_CheckType, MVT::i32, ++/*207365*/ OPC_MoveParent, ++/*207366*/ OPC_MoveChild, 8, ++/*207368*/ OPC_CheckInteger, 1, ++/*207370*/ OPC_CheckType, MVT::i32, ++/*207372*/ OPC_MoveParent, ++/*207373*/ OPC_MoveChild, 9, ++/*207375*/ OPC_CheckInteger, 1, ++/*207377*/ OPC_CheckType, MVT::i32, ++/*207379*/ OPC_MoveParent, ++/*207380*/ OPC_MoveChild, 10, ++/*207382*/ OPC_CheckInteger, 1, ++/*207384*/ OPC_CheckType, MVT::i32, ++/*207386*/ OPC_MoveParent, ++/*207387*/ OPC_MoveChild, 11, ++/*207389*/ OPC_CheckInteger, 1, ++/*207391*/ OPC_CheckType, MVT::i32, ++/*207393*/ OPC_MoveParent, ++/*207394*/ OPC_MoveChild, 12, ++/*207396*/ OPC_CheckInteger, 1, ++/*207398*/ OPC_CheckType, MVT::i32, ++/*207400*/ OPC_MoveParent, ++/*207401*/ OPC_MoveChild, 13, ++/*207403*/ OPC_CheckInteger, 1, ++/*207405*/ OPC_CheckType, MVT::i32, ++/*207407*/ OPC_MoveParent, ++/*207408*/ OPC_MoveChild, 14, ++/*207410*/ OPC_CheckInteger, 1, ++/*207412*/ OPC_CheckType, MVT::i32, ++/*207414*/ OPC_MoveParent, ++/*207415*/ OPC_MoveChild, 15, ++/*207417*/ OPC_CheckInteger, 1, ++/*207419*/ OPC_CheckType, MVT::i32, ++/*207421*/ OPC_MoveParent, ++/*207422*/ OPC_MoveParent, ++/*207423*/ OPC_CheckChild1Same, 0, ++/*207425*/ OPC_MoveParent, ++/*207426*/ OPC_CheckChild1Same, 1, ++/*207428*/ OPC_MoveParent, ++/*207429*/ OPC_MoveChild1, ++/*207430*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*207433*/ OPC_CheckChild0Integer, 7, ++/*207435*/ OPC_CheckChild0Type, MVT::i32, ++/*207437*/ OPC_CheckChild1Integer, 7, ++/*207439*/ OPC_CheckChild1Type, MVT::i32, ++/*207441*/ OPC_CheckChild2Integer, 7, ++/*207443*/ OPC_CheckChild2Type, MVT::i32, ++/*207445*/ OPC_CheckChild3Integer, 7, ++/*207447*/ OPC_CheckChild3Type, MVT::i32, ++/*207449*/ OPC_CheckChild4Integer, 7, ++/*207451*/ OPC_CheckChild4Type, MVT::i32, ++/*207453*/ OPC_MoveChild5, ++/*207454*/ OPC_CheckInteger, 7, ++/*207456*/ OPC_CheckType, MVT::i32, ++/*207458*/ OPC_MoveParent, ++/*207459*/ OPC_MoveChild6, ++/*207460*/ OPC_CheckInteger, 7, ++/*207462*/ OPC_CheckType, MVT::i32, ++/*207464*/ OPC_MoveParent, ++/*207465*/ OPC_MoveChild7, ++/*207466*/ OPC_CheckInteger, 7, ++/*207468*/ OPC_CheckType, MVT::i32, ++/*207470*/ OPC_MoveParent, ++/*207471*/ OPC_MoveChild, 8, ++/*207473*/ OPC_CheckInteger, 7, ++/*207475*/ OPC_CheckType, MVT::i32, ++/*207477*/ OPC_MoveParent, ++/*207478*/ OPC_MoveChild, 9, ++/*207480*/ OPC_CheckInteger, 7, ++/*207482*/ OPC_CheckType, MVT::i32, ++/*207484*/ OPC_MoveParent, ++/*207485*/ OPC_MoveChild, 10, ++/*207487*/ OPC_CheckInteger, 7, ++/*207489*/ OPC_CheckType, MVT::i32, ++/*207491*/ OPC_MoveParent, ++/*207492*/ OPC_MoveChild, 11, ++/*207494*/ OPC_CheckInteger, 7, ++/*207496*/ OPC_CheckType, MVT::i32, ++/*207498*/ OPC_MoveParent, ++/*207499*/ OPC_MoveChild, 12, ++/*207501*/ OPC_CheckInteger, 7, ++/*207503*/ OPC_CheckType, MVT::i32, ++/*207505*/ OPC_MoveParent, ++/*207506*/ OPC_MoveChild, 13, ++/*207508*/ OPC_CheckInteger, 7, ++/*207510*/ OPC_CheckType, MVT::i32, ++/*207512*/ OPC_MoveParent, ++/*207513*/ OPC_MoveChild, 14, ++/*207515*/ OPC_CheckInteger, 7, ++/*207517*/ OPC_CheckType, MVT::i32, ++/*207519*/ OPC_MoveParent, ++/*207520*/ OPC_MoveChild, 15, ++/*207522*/ OPC_CheckInteger, 7, ++/*207524*/ OPC_CheckType, MVT::i32, ++/*207526*/ OPC_MoveParent, ++/*207527*/ OPC_CheckType, MVT::v16i8, ++/*207529*/ OPC_MoveParent, ++/*207530*/ OPC_MoveParent, ++/*207531*/ OPC_MoveParent, ++/*207532*/ OPC_MoveChild1, ++/*207533*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*207536*/ OPC_CheckChild0Integer, 1, ++/*207538*/ OPC_CheckChild0Type, MVT::i32, ++/*207540*/ OPC_CheckChild1Integer, 1, ++/*207542*/ OPC_CheckChild1Type, MVT::i32, ++/*207544*/ OPC_CheckChild2Integer, 1, ++/*207546*/ OPC_CheckChild2Type, MVT::i32, ++/*207548*/ OPC_CheckChild3Integer, 1, ++/*207550*/ OPC_CheckChild3Type, MVT::i32, ++/*207552*/ OPC_CheckChild4Integer, 1, ++/*207554*/ OPC_CheckChild4Type, MVT::i32, ++/*207556*/ OPC_MoveChild5, ++/*207557*/ OPC_CheckInteger, 1, ++/*207559*/ OPC_CheckType, MVT::i32, ++/*207561*/ OPC_MoveParent, ++/*207562*/ OPC_MoveChild6, ++/*207563*/ OPC_CheckInteger, 1, ++/*207565*/ OPC_CheckType, MVT::i32, ++/*207567*/ OPC_MoveParent, ++/*207568*/ OPC_MoveChild7, ++/*207569*/ OPC_CheckInteger, 1, ++/*207571*/ OPC_CheckType, MVT::i32, ++/*207573*/ OPC_MoveParent, ++/*207574*/ OPC_MoveChild, 8, ++/*207576*/ OPC_CheckInteger, 1, ++/*207578*/ OPC_CheckType, MVT::i32, ++/*207580*/ OPC_MoveParent, ++/*207581*/ OPC_MoveChild, 9, ++/*207583*/ OPC_CheckInteger, 1, ++/*207585*/ OPC_CheckType, MVT::i32, ++/*207587*/ OPC_MoveParent, ++/*207588*/ OPC_MoveChild, 10, ++/*207590*/ OPC_CheckInteger, 1, ++/*207592*/ OPC_CheckType, MVT::i32, ++/*207594*/ OPC_MoveParent, ++/*207595*/ OPC_MoveChild, 11, ++/*207597*/ OPC_CheckInteger, 1, ++/*207599*/ OPC_CheckType, MVT::i32, ++/*207601*/ OPC_MoveParent, ++/*207602*/ OPC_MoveChild, 12, ++/*207604*/ OPC_CheckInteger, 1, ++/*207606*/ OPC_CheckType, MVT::i32, ++/*207608*/ OPC_MoveParent, ++/*207609*/ OPC_MoveChild, 13, ++/*207611*/ OPC_CheckInteger, 1, ++/*207613*/ OPC_CheckType, MVT::i32, ++/*207615*/ OPC_MoveParent, ++/*207616*/ OPC_MoveChild, 14, ++/*207618*/ OPC_CheckInteger, 1, ++/*207620*/ OPC_CheckType, MVT::i32, ++/*207622*/ OPC_MoveParent, ++/*207623*/ OPC_MoveChild, 15, ++/*207625*/ OPC_CheckInteger, 1, ++/*207627*/ OPC_CheckType, MVT::i32, ++/*207629*/ OPC_MoveParent, ++/*207630*/ OPC_CheckType, MVT::v16i8, ++/*207632*/ OPC_MoveParent, ++/*207633*/ OPC_CheckType, MVT::v16i8, ++/*207635*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*207637*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b)), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a), LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*207645*/ /*Scope*/ 65|128,2/*321*/, /*->207968*/ ++/*207647*/ OPC_CheckChild0Same, 0, ++/*207649*/ OPC_MoveChild1, ++/*207650*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*207653*/ OPC_CheckChild0Integer, 1, ++/*207655*/ OPC_CheckChild0Type, MVT::i32, ++/*207657*/ OPC_CheckChild1Integer, 1, ++/*207659*/ OPC_CheckChild1Type, MVT::i32, ++/*207661*/ OPC_CheckChild2Integer, 1, ++/*207663*/ OPC_CheckChild2Type, MVT::i32, ++/*207665*/ OPC_CheckChild3Integer, 1, ++/*207667*/ OPC_CheckChild3Type, MVT::i32, ++/*207669*/ OPC_CheckChild4Integer, 1, ++/*207671*/ OPC_CheckChild4Type, MVT::i32, ++/*207673*/ OPC_MoveChild5, ++/*207674*/ OPC_CheckInteger, 1, ++/*207676*/ OPC_CheckType, MVT::i32, ++/*207678*/ OPC_MoveParent, ++/*207679*/ OPC_MoveChild6, ++/*207680*/ OPC_CheckInteger, 1, ++/*207682*/ OPC_CheckType, MVT::i32, ++/*207684*/ OPC_MoveParent, ++/*207685*/ OPC_MoveChild7, ++/*207686*/ OPC_CheckInteger, 1, ++/*207688*/ OPC_CheckType, MVT::i32, ++/*207690*/ OPC_MoveParent, ++/*207691*/ OPC_MoveChild, 8, ++/*207693*/ OPC_CheckInteger, 1, ++/*207695*/ OPC_CheckType, MVT::i32, ++/*207697*/ OPC_MoveParent, ++/*207698*/ OPC_MoveChild, 9, ++/*207700*/ OPC_CheckInteger, 1, ++/*207702*/ OPC_CheckType, MVT::i32, ++/*207704*/ OPC_MoveParent, ++/*207705*/ OPC_MoveChild, 10, ++/*207707*/ OPC_CheckInteger, 1, ++/*207709*/ OPC_CheckType, MVT::i32, ++/*207711*/ OPC_MoveParent, ++/*207712*/ OPC_MoveChild, 11, ++/*207714*/ OPC_CheckInteger, 1, ++/*207716*/ OPC_CheckType, MVT::i32, ++/*207718*/ OPC_MoveParent, ++/*207719*/ OPC_MoveChild, 12, ++/*207721*/ OPC_CheckInteger, 1, ++/*207723*/ OPC_CheckType, MVT::i32, ++/*207725*/ OPC_MoveParent, ++/*207726*/ OPC_MoveChild, 13, ++/*207728*/ OPC_CheckInteger, 1, ++/*207730*/ OPC_CheckType, MVT::i32, ++/*207732*/ OPC_MoveParent, ++/*207733*/ OPC_MoveChild, 14, ++/*207735*/ OPC_CheckInteger, 1, ++/*207737*/ OPC_CheckType, MVT::i32, ++/*207739*/ OPC_MoveParent, ++/*207740*/ OPC_MoveChild, 15, ++/*207742*/ OPC_CheckInteger, 1, ++/*207744*/ OPC_CheckType, MVT::i32, ++/*207746*/ OPC_MoveParent, ++/*207747*/ OPC_MoveParent, ++/*207748*/ OPC_MoveParent, ++/*207749*/ OPC_CheckChild1Same, 1, ++/*207751*/ OPC_MoveParent, ++/*207752*/ OPC_MoveChild1, ++/*207753*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*207756*/ OPC_CheckChild0Integer, 7, ++/*207758*/ OPC_CheckChild0Type, MVT::i32, ++/*207760*/ OPC_CheckChild1Integer, 7, ++/*207762*/ OPC_CheckChild1Type, MVT::i32, ++/*207764*/ OPC_CheckChild2Integer, 7, ++/*207766*/ OPC_CheckChild2Type, MVT::i32, ++/*207768*/ OPC_CheckChild3Integer, 7, ++/*207770*/ OPC_CheckChild3Type, MVT::i32, ++/*207772*/ OPC_CheckChild4Integer, 7, ++/*207774*/ OPC_CheckChild4Type, MVT::i32, ++/*207776*/ OPC_MoveChild5, ++/*207777*/ OPC_CheckInteger, 7, ++/*207779*/ OPC_CheckType, MVT::i32, ++/*207781*/ OPC_MoveParent, ++/*207782*/ OPC_MoveChild6, ++/*207783*/ OPC_CheckInteger, 7, ++/*207785*/ OPC_CheckType, MVT::i32, ++/*207787*/ OPC_MoveParent, ++/*207788*/ OPC_MoveChild7, ++/*207789*/ OPC_CheckInteger, 7, ++/*207791*/ OPC_CheckType, MVT::i32, ++/*207793*/ OPC_MoveParent, ++/*207794*/ OPC_MoveChild, 8, ++/*207796*/ OPC_CheckInteger, 7, ++/*207798*/ OPC_CheckType, MVT::i32, ++/*207800*/ OPC_MoveParent, ++/*207801*/ OPC_MoveChild, 9, ++/*207803*/ OPC_CheckInteger, 7, ++/*207805*/ OPC_CheckType, MVT::i32, ++/*207807*/ OPC_MoveParent, ++/*207808*/ OPC_MoveChild, 10, ++/*207810*/ OPC_CheckInteger, 7, ++/*207812*/ OPC_CheckType, MVT::i32, ++/*207814*/ OPC_MoveParent, ++/*207815*/ OPC_MoveChild, 11, ++/*207817*/ OPC_CheckInteger, 7, ++/*207819*/ OPC_CheckType, MVT::i32, ++/*207821*/ OPC_MoveParent, ++/*207822*/ OPC_MoveChild, 12, ++/*207824*/ OPC_CheckInteger, 7, ++/*207826*/ OPC_CheckType, MVT::i32, ++/*207828*/ OPC_MoveParent, ++/*207829*/ OPC_MoveChild, 13, ++/*207831*/ OPC_CheckInteger, 7, ++/*207833*/ OPC_CheckType, MVT::i32, ++/*207835*/ OPC_MoveParent, ++/*207836*/ OPC_MoveChild, 14, ++/*207838*/ OPC_CheckInteger, 7, ++/*207840*/ OPC_CheckType, MVT::i32, ++/*207842*/ OPC_MoveParent, ++/*207843*/ OPC_MoveChild, 15, ++/*207845*/ OPC_CheckInteger, 7, ++/*207847*/ OPC_CheckType, MVT::i32, ++/*207849*/ OPC_MoveParent, ++/*207850*/ OPC_CheckType, MVT::v16i8, ++/*207852*/ OPC_MoveParent, ++/*207853*/ OPC_MoveParent, ++/*207854*/ OPC_MoveParent, ++/*207855*/ OPC_MoveChild1, ++/*207856*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*207859*/ OPC_CheckChild0Integer, 1, ++/*207861*/ OPC_CheckChild0Type, MVT::i32, ++/*207863*/ OPC_CheckChild1Integer, 1, ++/*207865*/ OPC_CheckChild1Type, MVT::i32, ++/*207867*/ OPC_CheckChild2Integer, 1, ++/*207869*/ OPC_CheckChild2Type, MVT::i32, ++/*207871*/ OPC_CheckChild3Integer, 1, ++/*207873*/ OPC_CheckChild3Type, MVT::i32, ++/*207875*/ OPC_CheckChild4Integer, 1, ++/*207877*/ OPC_CheckChild4Type, MVT::i32, ++/*207879*/ OPC_MoveChild5, ++/*207880*/ OPC_CheckInteger, 1, ++/*207882*/ OPC_CheckType, MVT::i32, ++/*207884*/ OPC_MoveParent, ++/*207885*/ OPC_MoveChild6, ++/*207886*/ OPC_CheckInteger, 1, ++/*207888*/ OPC_CheckType, MVT::i32, ++/*207890*/ OPC_MoveParent, ++/*207891*/ OPC_MoveChild7, ++/*207892*/ OPC_CheckInteger, 1, ++/*207894*/ OPC_CheckType, MVT::i32, ++/*207896*/ OPC_MoveParent, ++/*207897*/ OPC_MoveChild, 8, ++/*207899*/ OPC_CheckInteger, 1, ++/*207901*/ OPC_CheckType, MVT::i32, ++/*207903*/ OPC_MoveParent, ++/*207904*/ OPC_MoveChild, 9, ++/*207906*/ OPC_CheckInteger, 1, ++/*207908*/ OPC_CheckType, MVT::i32, ++/*207910*/ OPC_MoveParent, ++/*207911*/ OPC_MoveChild, 10, ++/*207913*/ OPC_CheckInteger, 1, ++/*207915*/ OPC_CheckType, MVT::i32, ++/*207917*/ OPC_MoveParent, ++/*207918*/ OPC_MoveChild, 11, ++/*207920*/ OPC_CheckInteger, 1, ++/*207922*/ OPC_CheckType, MVT::i32, ++/*207924*/ OPC_MoveParent, ++/*207925*/ OPC_MoveChild, 12, ++/*207927*/ OPC_CheckInteger, 1, ++/*207929*/ OPC_CheckType, MVT::i32, ++/*207931*/ OPC_MoveParent, ++/*207932*/ OPC_MoveChild, 13, ++/*207934*/ OPC_CheckInteger, 1, ++/*207936*/ OPC_CheckType, MVT::i32, ++/*207938*/ OPC_MoveParent, ++/*207939*/ OPC_MoveChild, 14, ++/*207941*/ OPC_CheckInteger, 1, ++/*207943*/ OPC_CheckType, MVT::i32, ++/*207945*/ OPC_MoveParent, ++/*207946*/ OPC_MoveChild, 15, ++/*207948*/ OPC_CheckInteger, 1, ++/*207950*/ OPC_CheckType, MVT::i32, ++/*207952*/ OPC_MoveParent, ++/*207953*/ OPC_CheckType, MVT::v16i8, ++/*207955*/ OPC_MoveParent, ++/*207956*/ OPC_CheckType, MVT::v16i8, ++/*207958*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*207960*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b)), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*207968*/ /*Scope*/ 65|128,2/*321*/, /*->208291*/ ++/*207970*/ OPC_MoveChild0, ++/*207971*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*207974*/ OPC_CheckChild0Integer, 1, ++/*207976*/ OPC_CheckChild0Type, MVT::i32, ++/*207978*/ OPC_CheckChild1Integer, 1, ++/*207980*/ OPC_CheckChild1Type, MVT::i32, ++/*207982*/ OPC_CheckChild2Integer, 1, ++/*207984*/ OPC_CheckChild2Type, MVT::i32, ++/*207986*/ OPC_CheckChild3Integer, 1, ++/*207988*/ OPC_CheckChild3Type, MVT::i32, ++/*207990*/ OPC_CheckChild4Integer, 1, ++/*207992*/ OPC_CheckChild4Type, MVT::i32, ++/*207994*/ OPC_MoveChild5, ++/*207995*/ OPC_CheckInteger, 1, ++/*207997*/ OPC_CheckType, MVT::i32, ++/*207999*/ OPC_MoveParent, ++/*208000*/ OPC_MoveChild6, ++/*208001*/ OPC_CheckInteger, 1, ++/*208003*/ OPC_CheckType, MVT::i32, ++/*208005*/ OPC_MoveParent, ++/*208006*/ OPC_MoveChild7, ++/*208007*/ OPC_CheckInteger, 1, ++/*208009*/ OPC_CheckType, MVT::i32, ++/*208011*/ OPC_MoveParent, ++/*208012*/ OPC_MoveChild, 8, ++/*208014*/ OPC_CheckInteger, 1, ++/*208016*/ OPC_CheckType, MVT::i32, ++/*208018*/ OPC_MoveParent, ++/*208019*/ OPC_MoveChild, 9, ++/*208021*/ OPC_CheckInteger, 1, ++/*208023*/ OPC_CheckType, MVT::i32, ++/*208025*/ OPC_MoveParent, ++/*208026*/ OPC_MoveChild, 10, ++/*208028*/ OPC_CheckInteger, 1, ++/*208030*/ OPC_CheckType, MVT::i32, ++/*208032*/ OPC_MoveParent, ++/*208033*/ OPC_MoveChild, 11, ++/*208035*/ OPC_CheckInteger, 1, ++/*208037*/ OPC_CheckType, MVT::i32, ++/*208039*/ OPC_MoveParent, ++/*208040*/ OPC_MoveChild, 12, ++/*208042*/ OPC_CheckInteger, 1, ++/*208044*/ OPC_CheckType, MVT::i32, ++/*208046*/ OPC_MoveParent, ++/*208047*/ OPC_MoveChild, 13, ++/*208049*/ OPC_CheckInteger, 1, ++/*208051*/ OPC_CheckType, MVT::i32, ++/*208053*/ OPC_MoveParent, ++/*208054*/ OPC_MoveChild, 14, ++/*208056*/ OPC_CheckInteger, 1, ++/*208058*/ OPC_CheckType, MVT::i32, ++/*208060*/ OPC_MoveParent, ++/*208061*/ OPC_MoveChild, 15, ++/*208063*/ OPC_CheckInteger, 1, ++/*208065*/ OPC_CheckType, MVT::i32, ++/*208067*/ OPC_MoveParent, ++/*208068*/ OPC_MoveParent, ++/*208069*/ OPC_CheckChild1Same, 1, ++/*208071*/ OPC_MoveParent, ++/*208072*/ OPC_CheckChild1Same, 0, ++/*208074*/ OPC_MoveParent, ++/*208075*/ OPC_MoveChild1, ++/*208076*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*208079*/ OPC_CheckChild0Integer, 7, ++/*208081*/ OPC_CheckChild0Type, MVT::i32, ++/*208083*/ OPC_CheckChild1Integer, 7, ++/*208085*/ OPC_CheckChild1Type, MVT::i32, ++/*208087*/ OPC_CheckChild2Integer, 7, ++/*208089*/ OPC_CheckChild2Type, MVT::i32, ++/*208091*/ OPC_CheckChild3Integer, 7, ++/*208093*/ OPC_CheckChild3Type, MVT::i32, ++/*208095*/ OPC_CheckChild4Integer, 7, ++/*208097*/ OPC_CheckChild4Type, MVT::i32, ++/*208099*/ OPC_MoveChild5, ++/*208100*/ OPC_CheckInteger, 7, ++/*208102*/ OPC_CheckType, MVT::i32, ++/*208104*/ OPC_MoveParent, ++/*208105*/ OPC_MoveChild6, ++/*208106*/ OPC_CheckInteger, 7, ++/*208108*/ OPC_CheckType, MVT::i32, ++/*208110*/ OPC_MoveParent, ++/*208111*/ OPC_MoveChild7, ++/*208112*/ OPC_CheckInteger, 7, ++/*208114*/ OPC_CheckType, MVT::i32, ++/*208116*/ OPC_MoveParent, ++/*208117*/ OPC_MoveChild, 8, ++/*208119*/ OPC_CheckInteger, 7, ++/*208121*/ OPC_CheckType, MVT::i32, ++/*208123*/ OPC_MoveParent, ++/*208124*/ OPC_MoveChild, 9, ++/*208126*/ OPC_CheckInteger, 7, ++/*208128*/ OPC_CheckType, MVT::i32, ++/*208130*/ OPC_MoveParent, ++/*208131*/ OPC_MoveChild, 10, ++/*208133*/ OPC_CheckInteger, 7, ++/*208135*/ OPC_CheckType, MVT::i32, ++/*208137*/ OPC_MoveParent, ++/*208138*/ OPC_MoveChild, 11, ++/*208140*/ OPC_CheckInteger, 7, ++/*208142*/ OPC_CheckType, MVT::i32, ++/*208144*/ OPC_MoveParent, ++/*208145*/ OPC_MoveChild, 12, ++/*208147*/ OPC_CheckInteger, 7, ++/*208149*/ OPC_CheckType, MVT::i32, ++/*208151*/ OPC_MoveParent, ++/*208152*/ OPC_MoveChild, 13, ++/*208154*/ OPC_CheckInteger, 7, ++/*208156*/ OPC_CheckType, MVT::i32, ++/*208158*/ OPC_MoveParent, ++/*208159*/ OPC_MoveChild, 14, ++/*208161*/ OPC_CheckInteger, 7, ++/*208163*/ OPC_CheckType, MVT::i32, ++/*208165*/ OPC_MoveParent, ++/*208166*/ OPC_MoveChild, 15, ++/*208168*/ OPC_CheckInteger, 7, ++/*208170*/ OPC_CheckType, MVT::i32, ++/*208172*/ OPC_MoveParent, ++/*208173*/ OPC_CheckType, MVT::v16i8, ++/*208175*/ OPC_MoveParent, ++/*208176*/ OPC_MoveParent, ++/*208177*/ OPC_MoveParent, ++/*208178*/ OPC_MoveChild1, ++/*208179*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*208182*/ OPC_CheckChild0Integer, 1, ++/*208184*/ OPC_CheckChild0Type, MVT::i32, ++/*208186*/ OPC_CheckChild1Integer, 1, ++/*208188*/ OPC_CheckChild1Type, MVT::i32, ++/*208190*/ OPC_CheckChild2Integer, 1, ++/*208192*/ OPC_CheckChild2Type, MVT::i32, ++/*208194*/ OPC_CheckChild3Integer, 1, ++/*208196*/ OPC_CheckChild3Type, MVT::i32, ++/*208198*/ OPC_CheckChild4Integer, 1, ++/*208200*/ OPC_CheckChild4Type, MVT::i32, ++/*208202*/ OPC_MoveChild5, ++/*208203*/ OPC_CheckInteger, 1, ++/*208205*/ OPC_CheckType, MVT::i32, ++/*208207*/ OPC_MoveParent, ++/*208208*/ OPC_MoveChild6, ++/*208209*/ OPC_CheckInteger, 1, ++/*208211*/ OPC_CheckType, MVT::i32, ++/*208213*/ OPC_MoveParent, ++/*208214*/ OPC_MoveChild7, ++/*208215*/ OPC_CheckInteger, 1, ++/*208217*/ OPC_CheckType, MVT::i32, ++/*208219*/ OPC_MoveParent, ++/*208220*/ OPC_MoveChild, 8, ++/*208222*/ OPC_CheckInteger, 1, ++/*208224*/ OPC_CheckType, MVT::i32, ++/*208226*/ OPC_MoveParent, ++/*208227*/ OPC_MoveChild, 9, ++/*208229*/ OPC_CheckInteger, 1, ++/*208231*/ OPC_CheckType, MVT::i32, ++/*208233*/ OPC_MoveParent, ++/*208234*/ OPC_MoveChild, 10, ++/*208236*/ OPC_CheckInteger, 1, ++/*208238*/ OPC_CheckType, MVT::i32, ++/*208240*/ OPC_MoveParent, ++/*208241*/ OPC_MoveChild, 11, ++/*208243*/ OPC_CheckInteger, 1, ++/*208245*/ OPC_CheckType, MVT::i32, ++/*208247*/ OPC_MoveParent, ++/*208248*/ OPC_MoveChild, 12, ++/*208250*/ OPC_CheckInteger, 1, ++/*208252*/ OPC_CheckType, MVT::i32, ++/*208254*/ OPC_MoveParent, ++/*208255*/ OPC_MoveChild, 13, ++/*208257*/ OPC_CheckInteger, 1, ++/*208259*/ OPC_CheckType, MVT::i32, ++/*208261*/ OPC_MoveParent, ++/*208262*/ OPC_MoveChild, 14, ++/*208264*/ OPC_CheckInteger, 1, ++/*208266*/ OPC_CheckType, MVT::i32, ++/*208268*/ OPC_MoveParent, ++/*208269*/ OPC_MoveChild, 15, ++/*208271*/ OPC_CheckInteger, 1, ++/*208273*/ OPC_CheckType, MVT::i32, ++/*208275*/ OPC_MoveParent, ++/*208276*/ OPC_CheckType, MVT::v16i8, ++/*208278*/ OPC_MoveParent, ++/*208279*/ OPC_CheckType, MVT::v16i8, ++/*208281*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*208283*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b)), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b), LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*208291*/ /*Scope*/ 65|128,2/*321*/, /*->208614*/ ++/*208293*/ OPC_CheckChild0Same, 1, ++/*208295*/ OPC_MoveChild1, ++/*208296*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*208299*/ OPC_CheckChild0Integer, 1, ++/*208301*/ OPC_CheckChild0Type, MVT::i32, ++/*208303*/ OPC_CheckChild1Integer, 1, ++/*208305*/ OPC_CheckChild1Type, MVT::i32, ++/*208307*/ OPC_CheckChild2Integer, 1, ++/*208309*/ OPC_CheckChild2Type, MVT::i32, ++/*208311*/ OPC_CheckChild3Integer, 1, ++/*208313*/ OPC_CheckChild3Type, MVT::i32, ++/*208315*/ OPC_CheckChild4Integer, 1, ++/*208317*/ OPC_CheckChild4Type, MVT::i32, ++/*208319*/ OPC_MoveChild5, ++/*208320*/ OPC_CheckInteger, 1, ++/*208322*/ OPC_CheckType, MVT::i32, ++/*208324*/ OPC_MoveParent, ++/*208325*/ OPC_MoveChild6, ++/*208326*/ OPC_CheckInteger, 1, ++/*208328*/ OPC_CheckType, MVT::i32, ++/*208330*/ OPC_MoveParent, ++/*208331*/ OPC_MoveChild7, ++/*208332*/ OPC_CheckInteger, 1, ++/*208334*/ OPC_CheckType, MVT::i32, ++/*208336*/ OPC_MoveParent, ++/*208337*/ OPC_MoveChild, 8, ++/*208339*/ OPC_CheckInteger, 1, ++/*208341*/ OPC_CheckType, MVT::i32, ++/*208343*/ OPC_MoveParent, ++/*208344*/ OPC_MoveChild, 9, ++/*208346*/ OPC_CheckInteger, 1, ++/*208348*/ OPC_CheckType, MVT::i32, ++/*208350*/ OPC_MoveParent, ++/*208351*/ OPC_MoveChild, 10, ++/*208353*/ OPC_CheckInteger, 1, ++/*208355*/ OPC_CheckType, MVT::i32, ++/*208357*/ OPC_MoveParent, ++/*208358*/ OPC_MoveChild, 11, ++/*208360*/ OPC_CheckInteger, 1, ++/*208362*/ OPC_CheckType, MVT::i32, ++/*208364*/ OPC_MoveParent, ++/*208365*/ OPC_MoveChild, 12, ++/*208367*/ OPC_CheckInteger, 1, ++/*208369*/ OPC_CheckType, MVT::i32, ++/*208371*/ OPC_MoveParent, ++/*208372*/ OPC_MoveChild, 13, ++/*208374*/ OPC_CheckInteger, 1, ++/*208376*/ OPC_CheckType, MVT::i32, ++/*208378*/ OPC_MoveParent, ++/*208379*/ OPC_MoveChild, 14, ++/*208381*/ OPC_CheckInteger, 1, ++/*208383*/ OPC_CheckType, MVT::i32, ++/*208385*/ OPC_MoveParent, ++/*208386*/ OPC_MoveChild, 15, ++/*208388*/ OPC_CheckInteger, 1, ++/*208390*/ OPC_CheckType, MVT::i32, ++/*208392*/ OPC_MoveParent, ++/*208393*/ OPC_MoveParent, ++/*208394*/ OPC_MoveParent, ++/*208395*/ OPC_CheckChild1Same, 0, ++/*208397*/ OPC_MoveParent, ++/*208398*/ OPC_MoveChild1, ++/*208399*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*208402*/ OPC_CheckChild0Integer, 7, ++/*208404*/ OPC_CheckChild0Type, MVT::i32, ++/*208406*/ OPC_CheckChild1Integer, 7, ++/*208408*/ OPC_CheckChild1Type, MVT::i32, ++/*208410*/ OPC_CheckChild2Integer, 7, ++/*208412*/ OPC_CheckChild2Type, MVT::i32, ++/*208414*/ OPC_CheckChild3Integer, 7, ++/*208416*/ OPC_CheckChild3Type, MVT::i32, ++/*208418*/ OPC_CheckChild4Integer, 7, ++/*208420*/ OPC_CheckChild4Type, MVT::i32, ++/*208422*/ OPC_MoveChild5, ++/*208423*/ OPC_CheckInteger, 7, ++/*208425*/ OPC_CheckType, MVT::i32, ++/*208427*/ OPC_MoveParent, ++/*208428*/ OPC_MoveChild6, ++/*208429*/ OPC_CheckInteger, 7, ++/*208431*/ OPC_CheckType, MVT::i32, ++/*208433*/ OPC_MoveParent, ++/*208434*/ OPC_MoveChild7, ++/*208435*/ OPC_CheckInteger, 7, ++/*208437*/ OPC_CheckType, MVT::i32, ++/*208439*/ OPC_MoveParent, ++/*208440*/ OPC_MoveChild, 8, ++/*208442*/ OPC_CheckInteger, 7, ++/*208444*/ OPC_CheckType, MVT::i32, ++/*208446*/ OPC_MoveParent, ++/*208447*/ OPC_MoveChild, 9, ++/*208449*/ OPC_CheckInteger, 7, ++/*208451*/ OPC_CheckType, MVT::i32, ++/*208453*/ OPC_MoveParent, ++/*208454*/ OPC_MoveChild, 10, ++/*208456*/ OPC_CheckInteger, 7, ++/*208458*/ OPC_CheckType, MVT::i32, ++/*208460*/ OPC_MoveParent, ++/*208461*/ OPC_MoveChild, 11, ++/*208463*/ OPC_CheckInteger, 7, ++/*208465*/ OPC_CheckType, MVT::i32, ++/*208467*/ OPC_MoveParent, ++/*208468*/ OPC_MoveChild, 12, ++/*208470*/ OPC_CheckInteger, 7, ++/*208472*/ OPC_CheckType, MVT::i32, ++/*208474*/ OPC_MoveParent, ++/*208475*/ OPC_MoveChild, 13, ++/*208477*/ OPC_CheckInteger, 7, ++/*208479*/ OPC_CheckType, MVT::i32, ++/*208481*/ OPC_MoveParent, ++/*208482*/ OPC_MoveChild, 14, ++/*208484*/ OPC_CheckInteger, 7, ++/*208486*/ OPC_CheckType, MVT::i32, ++/*208488*/ OPC_MoveParent, ++/*208489*/ OPC_MoveChild, 15, ++/*208491*/ OPC_CheckInteger, 7, ++/*208493*/ OPC_CheckType, MVT::i32, ++/*208495*/ OPC_MoveParent, ++/*208496*/ OPC_CheckType, MVT::v16i8, ++/*208498*/ OPC_MoveParent, ++/*208499*/ OPC_MoveParent, ++/*208500*/ OPC_MoveParent, ++/*208501*/ OPC_MoveChild1, ++/*208502*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*208505*/ OPC_CheckChild0Integer, 1, ++/*208507*/ OPC_CheckChild0Type, MVT::i32, ++/*208509*/ OPC_CheckChild1Integer, 1, ++/*208511*/ OPC_CheckChild1Type, MVT::i32, ++/*208513*/ OPC_CheckChild2Integer, 1, ++/*208515*/ OPC_CheckChild2Type, MVT::i32, ++/*208517*/ OPC_CheckChild3Integer, 1, ++/*208519*/ OPC_CheckChild3Type, MVT::i32, ++/*208521*/ OPC_CheckChild4Integer, 1, ++/*208523*/ OPC_CheckChild4Type, MVT::i32, ++/*208525*/ OPC_MoveChild5, ++/*208526*/ OPC_CheckInteger, 1, ++/*208528*/ OPC_CheckType, MVT::i32, ++/*208530*/ OPC_MoveParent, ++/*208531*/ OPC_MoveChild6, ++/*208532*/ OPC_CheckInteger, 1, ++/*208534*/ OPC_CheckType, MVT::i32, ++/*208536*/ OPC_MoveParent, ++/*208537*/ OPC_MoveChild7, ++/*208538*/ OPC_CheckInteger, 1, ++/*208540*/ OPC_CheckType, MVT::i32, ++/*208542*/ OPC_MoveParent, ++/*208543*/ OPC_MoveChild, 8, ++/*208545*/ OPC_CheckInteger, 1, ++/*208547*/ OPC_CheckType, MVT::i32, ++/*208549*/ OPC_MoveParent, ++/*208550*/ OPC_MoveChild, 9, ++/*208552*/ OPC_CheckInteger, 1, ++/*208554*/ OPC_CheckType, MVT::i32, ++/*208556*/ OPC_MoveParent, ++/*208557*/ OPC_MoveChild, 10, ++/*208559*/ OPC_CheckInteger, 1, ++/*208561*/ OPC_CheckType, MVT::i32, ++/*208563*/ OPC_MoveParent, ++/*208564*/ OPC_MoveChild, 11, ++/*208566*/ OPC_CheckInteger, 1, ++/*208568*/ OPC_CheckType, MVT::i32, ++/*208570*/ OPC_MoveParent, ++/*208571*/ OPC_MoveChild, 12, ++/*208573*/ OPC_CheckInteger, 1, ++/*208575*/ OPC_CheckType, MVT::i32, ++/*208577*/ OPC_MoveParent, ++/*208578*/ OPC_MoveChild, 13, ++/*208580*/ OPC_CheckInteger, 1, ++/*208582*/ OPC_CheckType, MVT::i32, ++/*208584*/ OPC_MoveParent, ++/*208585*/ OPC_MoveChild, 14, ++/*208587*/ OPC_CheckInteger, 1, ++/*208589*/ OPC_CheckType, MVT::i32, ++/*208591*/ OPC_MoveParent, ++/*208592*/ OPC_MoveChild, 15, ++/*208594*/ OPC_CheckInteger, 1, ++/*208596*/ OPC_CheckType, MVT::i32, ++/*208598*/ OPC_MoveParent, ++/*208599*/ OPC_CheckType, MVT::v16i8, ++/*208601*/ OPC_MoveParent, ++/*208602*/ OPC_CheckType, MVT::v16i8, ++/*208604*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*208606*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b)), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*208614*/ /*Scope*/ 65|128,2/*321*/, /*->208937*/ ++/*208616*/ OPC_CheckChild0Same, 0, ++/*208618*/ OPC_CheckChild1Same, 1, ++/*208620*/ OPC_MoveParent, ++/*208621*/ OPC_MoveChild1, ++/*208622*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*208625*/ OPC_CheckChild0Integer, 1, ++/*208627*/ OPC_CheckChild0Type, MVT::i32, ++/*208629*/ OPC_CheckChild1Integer, 1, ++/*208631*/ OPC_CheckChild1Type, MVT::i32, ++/*208633*/ OPC_CheckChild2Integer, 1, ++/*208635*/ OPC_CheckChild2Type, MVT::i32, ++/*208637*/ OPC_CheckChild3Integer, 1, ++/*208639*/ OPC_CheckChild3Type, MVT::i32, ++/*208641*/ OPC_CheckChild4Integer, 1, ++/*208643*/ OPC_CheckChild4Type, MVT::i32, ++/*208645*/ OPC_MoveChild5, ++/*208646*/ OPC_CheckInteger, 1, ++/*208648*/ OPC_CheckType, MVT::i32, ++/*208650*/ OPC_MoveParent, ++/*208651*/ OPC_MoveChild6, ++/*208652*/ OPC_CheckInteger, 1, ++/*208654*/ OPC_CheckType, MVT::i32, ++/*208656*/ OPC_MoveParent, ++/*208657*/ OPC_MoveChild7, ++/*208658*/ OPC_CheckInteger, 1, ++/*208660*/ OPC_CheckType, MVT::i32, ++/*208662*/ OPC_MoveParent, ++/*208663*/ OPC_MoveChild, 8, ++/*208665*/ OPC_CheckInteger, 1, ++/*208667*/ OPC_CheckType, MVT::i32, ++/*208669*/ OPC_MoveParent, ++/*208670*/ OPC_MoveChild, 9, ++/*208672*/ OPC_CheckInteger, 1, ++/*208674*/ OPC_CheckType, MVT::i32, ++/*208676*/ OPC_MoveParent, ++/*208677*/ OPC_MoveChild, 10, ++/*208679*/ OPC_CheckInteger, 1, ++/*208681*/ OPC_CheckType, MVT::i32, ++/*208683*/ OPC_MoveParent, ++/*208684*/ OPC_MoveChild, 11, ++/*208686*/ OPC_CheckInteger, 1, ++/*208688*/ OPC_CheckType, MVT::i32, ++/*208690*/ OPC_MoveParent, ++/*208691*/ OPC_MoveChild, 12, ++/*208693*/ OPC_CheckInteger, 1, ++/*208695*/ OPC_CheckType, MVT::i32, ++/*208697*/ OPC_MoveParent, ++/*208698*/ OPC_MoveChild, 13, ++/*208700*/ OPC_CheckInteger, 1, ++/*208702*/ OPC_CheckType, MVT::i32, ++/*208704*/ OPC_MoveParent, ++/*208705*/ OPC_MoveChild, 14, ++/*208707*/ OPC_CheckInteger, 1, ++/*208709*/ OPC_CheckType, MVT::i32, ++/*208711*/ OPC_MoveParent, ++/*208712*/ OPC_MoveChild, 15, ++/*208714*/ OPC_CheckInteger, 1, ++/*208716*/ OPC_CheckType, MVT::i32, ++/*208718*/ OPC_MoveParent, ++/*208719*/ OPC_MoveParent, ++/*208720*/ OPC_MoveParent, ++/*208721*/ OPC_MoveChild1, ++/*208722*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*208725*/ OPC_CheckChild0Integer, 7, ++/*208727*/ OPC_CheckChild0Type, MVT::i32, ++/*208729*/ OPC_CheckChild1Integer, 7, ++/*208731*/ OPC_CheckChild1Type, MVT::i32, ++/*208733*/ OPC_CheckChild2Integer, 7, ++/*208735*/ OPC_CheckChild2Type, MVT::i32, ++/*208737*/ OPC_CheckChild3Integer, 7, ++/*208739*/ OPC_CheckChild3Type, MVT::i32, ++/*208741*/ OPC_CheckChild4Integer, 7, ++/*208743*/ OPC_CheckChild4Type, MVT::i32, ++/*208745*/ OPC_MoveChild5, ++/*208746*/ OPC_CheckInteger, 7, ++/*208748*/ OPC_CheckType, MVT::i32, ++/*208750*/ OPC_MoveParent, ++/*208751*/ OPC_MoveChild6, ++/*208752*/ OPC_CheckInteger, 7, ++/*208754*/ OPC_CheckType, MVT::i32, ++/*208756*/ OPC_MoveParent, ++/*208757*/ OPC_MoveChild7, ++/*208758*/ OPC_CheckInteger, 7, ++/*208760*/ OPC_CheckType, MVT::i32, ++/*208762*/ OPC_MoveParent, ++/*208763*/ OPC_MoveChild, 8, ++/*208765*/ OPC_CheckInteger, 7, ++/*208767*/ OPC_CheckType, MVT::i32, ++/*208769*/ OPC_MoveParent, ++/*208770*/ OPC_MoveChild, 9, ++/*208772*/ OPC_CheckInteger, 7, ++/*208774*/ OPC_CheckType, MVT::i32, ++/*208776*/ OPC_MoveParent, ++/*208777*/ OPC_MoveChild, 10, ++/*208779*/ OPC_CheckInteger, 7, ++/*208781*/ OPC_CheckType, MVT::i32, ++/*208783*/ OPC_MoveParent, ++/*208784*/ OPC_MoveChild, 11, ++/*208786*/ OPC_CheckInteger, 7, ++/*208788*/ OPC_CheckType, MVT::i32, ++/*208790*/ OPC_MoveParent, ++/*208791*/ OPC_MoveChild, 12, ++/*208793*/ OPC_CheckInteger, 7, ++/*208795*/ OPC_CheckType, MVT::i32, ++/*208797*/ OPC_MoveParent, ++/*208798*/ OPC_MoveChild, 13, ++/*208800*/ OPC_CheckInteger, 7, ++/*208802*/ OPC_CheckType, MVT::i32, ++/*208804*/ OPC_MoveParent, ++/*208805*/ OPC_MoveChild, 14, ++/*208807*/ OPC_CheckInteger, 7, ++/*208809*/ OPC_CheckType, MVT::i32, ++/*208811*/ OPC_MoveParent, ++/*208812*/ OPC_MoveChild, 15, ++/*208814*/ OPC_CheckInteger, 7, ++/*208816*/ OPC_CheckType, MVT::i32, ++/*208818*/ OPC_MoveParent, ++/*208819*/ OPC_CheckType, MVT::v16i8, ++/*208821*/ OPC_MoveParent, ++/*208822*/ OPC_MoveParent, ++/*208823*/ OPC_MoveParent, ++/*208824*/ OPC_MoveChild1, ++/*208825*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*208828*/ OPC_CheckChild0Integer, 1, ++/*208830*/ OPC_CheckChild0Type, MVT::i32, ++/*208832*/ OPC_CheckChild1Integer, 1, ++/*208834*/ OPC_CheckChild1Type, MVT::i32, ++/*208836*/ OPC_CheckChild2Integer, 1, ++/*208838*/ OPC_CheckChild2Type, MVT::i32, ++/*208840*/ OPC_CheckChild3Integer, 1, ++/*208842*/ OPC_CheckChild3Type, MVT::i32, ++/*208844*/ OPC_CheckChild4Integer, 1, ++/*208846*/ OPC_CheckChild4Type, MVT::i32, ++/*208848*/ OPC_MoveChild5, ++/*208849*/ OPC_CheckInteger, 1, ++/*208851*/ OPC_CheckType, MVT::i32, ++/*208853*/ OPC_MoveParent, ++/*208854*/ OPC_MoveChild6, ++/*208855*/ OPC_CheckInteger, 1, ++/*208857*/ OPC_CheckType, MVT::i32, ++/*208859*/ OPC_MoveParent, ++/*208860*/ OPC_MoveChild7, ++/*208861*/ OPC_CheckInteger, 1, ++/*208863*/ OPC_CheckType, MVT::i32, ++/*208865*/ OPC_MoveParent, ++/*208866*/ OPC_MoveChild, 8, ++/*208868*/ OPC_CheckInteger, 1, ++/*208870*/ OPC_CheckType, MVT::i32, ++/*208872*/ OPC_MoveParent, ++/*208873*/ OPC_MoveChild, 9, ++/*208875*/ OPC_CheckInteger, 1, ++/*208877*/ OPC_CheckType, MVT::i32, ++/*208879*/ OPC_MoveParent, ++/*208880*/ OPC_MoveChild, 10, ++/*208882*/ OPC_CheckInteger, 1, ++/*208884*/ OPC_CheckType, MVT::i32, ++/*208886*/ OPC_MoveParent, ++/*208887*/ OPC_MoveChild, 11, ++/*208889*/ OPC_CheckInteger, 1, ++/*208891*/ OPC_CheckType, MVT::i32, ++/*208893*/ OPC_MoveParent, ++/*208894*/ OPC_MoveChild, 12, ++/*208896*/ OPC_CheckInteger, 1, ++/*208898*/ OPC_CheckType, MVT::i32, ++/*208900*/ OPC_MoveParent, ++/*208901*/ OPC_MoveChild, 13, ++/*208903*/ OPC_CheckInteger, 1, ++/*208905*/ OPC_CheckType, MVT::i32, ++/*208907*/ OPC_MoveParent, ++/*208908*/ OPC_MoveChild, 14, ++/*208910*/ OPC_CheckInteger, 1, ++/*208912*/ OPC_CheckType, MVT::i32, ++/*208914*/ OPC_MoveParent, ++/*208915*/ OPC_MoveChild, 15, ++/*208917*/ OPC_CheckInteger, 1, ++/*208919*/ OPC_CheckType, MVT::i32, ++/*208921*/ OPC_MoveParent, ++/*208922*/ OPC_CheckType, MVT::v16i8, ++/*208924*/ OPC_MoveParent, ++/*208925*/ OPC_CheckType, MVT::v16i8, ++/*208927*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*208929*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b)), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*208937*/ /*Scope*/ 65|128,2/*321*/, /*->209260*/ ++/*208939*/ OPC_CheckChild0Same, 1, ++/*208941*/ OPC_CheckChild1Same, 0, ++/*208943*/ OPC_MoveParent, ++/*208944*/ OPC_MoveChild1, ++/*208945*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*208948*/ OPC_CheckChild0Integer, 1, ++/*208950*/ OPC_CheckChild0Type, MVT::i32, ++/*208952*/ OPC_CheckChild1Integer, 1, ++/*208954*/ OPC_CheckChild1Type, MVT::i32, ++/*208956*/ OPC_CheckChild2Integer, 1, ++/*208958*/ OPC_CheckChild2Type, MVT::i32, ++/*208960*/ OPC_CheckChild3Integer, 1, ++/*208962*/ OPC_CheckChild3Type, MVT::i32, ++/*208964*/ OPC_CheckChild4Integer, 1, ++/*208966*/ OPC_CheckChild4Type, MVT::i32, ++/*208968*/ OPC_MoveChild5, ++/*208969*/ OPC_CheckInteger, 1, ++/*208971*/ OPC_CheckType, MVT::i32, ++/*208973*/ OPC_MoveParent, ++/*208974*/ OPC_MoveChild6, ++/*208975*/ OPC_CheckInteger, 1, ++/*208977*/ OPC_CheckType, MVT::i32, ++/*208979*/ OPC_MoveParent, ++/*208980*/ OPC_MoveChild7, ++/*208981*/ OPC_CheckInteger, 1, ++/*208983*/ OPC_CheckType, MVT::i32, ++/*208985*/ OPC_MoveParent, ++/*208986*/ OPC_MoveChild, 8, ++/*208988*/ OPC_CheckInteger, 1, ++/*208990*/ OPC_CheckType, MVT::i32, ++/*208992*/ OPC_MoveParent, ++/*208993*/ OPC_MoveChild, 9, ++/*208995*/ OPC_CheckInteger, 1, ++/*208997*/ OPC_CheckType, MVT::i32, ++/*208999*/ OPC_MoveParent, ++/*209000*/ OPC_MoveChild, 10, ++/*209002*/ OPC_CheckInteger, 1, ++/*209004*/ OPC_CheckType, MVT::i32, ++/*209006*/ OPC_MoveParent, ++/*209007*/ OPC_MoveChild, 11, ++/*209009*/ OPC_CheckInteger, 1, ++/*209011*/ OPC_CheckType, MVT::i32, ++/*209013*/ OPC_MoveParent, ++/*209014*/ OPC_MoveChild, 12, ++/*209016*/ OPC_CheckInteger, 1, ++/*209018*/ OPC_CheckType, MVT::i32, ++/*209020*/ OPC_MoveParent, ++/*209021*/ OPC_MoveChild, 13, ++/*209023*/ OPC_CheckInteger, 1, ++/*209025*/ OPC_CheckType, MVT::i32, ++/*209027*/ OPC_MoveParent, ++/*209028*/ OPC_MoveChild, 14, ++/*209030*/ OPC_CheckInteger, 1, ++/*209032*/ OPC_CheckType, MVT::i32, ++/*209034*/ OPC_MoveParent, ++/*209035*/ OPC_MoveChild, 15, ++/*209037*/ OPC_CheckInteger, 1, ++/*209039*/ OPC_CheckType, MVT::i32, ++/*209041*/ OPC_MoveParent, ++/*209042*/ OPC_MoveParent, ++/*209043*/ OPC_MoveParent, ++/*209044*/ OPC_MoveChild1, ++/*209045*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*209048*/ OPC_CheckChild0Integer, 7, ++/*209050*/ OPC_CheckChild0Type, MVT::i32, ++/*209052*/ OPC_CheckChild1Integer, 7, ++/*209054*/ OPC_CheckChild1Type, MVT::i32, ++/*209056*/ OPC_CheckChild2Integer, 7, ++/*209058*/ OPC_CheckChild2Type, MVT::i32, ++/*209060*/ OPC_CheckChild3Integer, 7, ++/*209062*/ OPC_CheckChild3Type, MVT::i32, ++/*209064*/ OPC_CheckChild4Integer, 7, ++/*209066*/ OPC_CheckChild4Type, MVT::i32, ++/*209068*/ OPC_MoveChild5, ++/*209069*/ OPC_CheckInteger, 7, ++/*209071*/ OPC_CheckType, MVT::i32, ++/*209073*/ OPC_MoveParent, ++/*209074*/ OPC_MoveChild6, ++/*209075*/ OPC_CheckInteger, 7, ++/*209077*/ OPC_CheckType, MVT::i32, ++/*209079*/ OPC_MoveParent, ++/*209080*/ OPC_MoveChild7, ++/*209081*/ OPC_CheckInteger, 7, ++/*209083*/ OPC_CheckType, MVT::i32, ++/*209085*/ OPC_MoveParent, ++/*209086*/ OPC_MoveChild, 8, ++/*209088*/ OPC_CheckInteger, 7, ++/*209090*/ OPC_CheckType, MVT::i32, ++/*209092*/ OPC_MoveParent, ++/*209093*/ OPC_MoveChild, 9, ++/*209095*/ OPC_CheckInteger, 7, ++/*209097*/ OPC_CheckType, MVT::i32, ++/*209099*/ OPC_MoveParent, ++/*209100*/ OPC_MoveChild, 10, ++/*209102*/ OPC_CheckInteger, 7, ++/*209104*/ OPC_CheckType, MVT::i32, ++/*209106*/ OPC_MoveParent, ++/*209107*/ OPC_MoveChild, 11, ++/*209109*/ OPC_CheckInteger, 7, ++/*209111*/ OPC_CheckType, MVT::i32, ++/*209113*/ OPC_MoveParent, ++/*209114*/ OPC_MoveChild, 12, ++/*209116*/ OPC_CheckInteger, 7, ++/*209118*/ OPC_CheckType, MVT::i32, ++/*209120*/ OPC_MoveParent, ++/*209121*/ OPC_MoveChild, 13, ++/*209123*/ OPC_CheckInteger, 7, ++/*209125*/ OPC_CheckType, MVT::i32, ++/*209127*/ OPC_MoveParent, ++/*209128*/ OPC_MoveChild, 14, ++/*209130*/ OPC_CheckInteger, 7, ++/*209132*/ OPC_CheckType, MVT::i32, ++/*209134*/ OPC_MoveParent, ++/*209135*/ OPC_MoveChild, 15, ++/*209137*/ OPC_CheckInteger, 7, ++/*209139*/ OPC_CheckType, MVT::i32, ++/*209141*/ OPC_MoveParent, ++/*209142*/ OPC_CheckType, MVT::v16i8, ++/*209144*/ OPC_MoveParent, ++/*209145*/ OPC_MoveParent, ++/*209146*/ OPC_MoveParent, ++/*209147*/ OPC_MoveChild1, ++/*209148*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*209151*/ OPC_CheckChild0Integer, 1, ++/*209153*/ OPC_CheckChild0Type, MVT::i32, ++/*209155*/ OPC_CheckChild1Integer, 1, ++/*209157*/ OPC_CheckChild1Type, MVT::i32, ++/*209159*/ OPC_CheckChild2Integer, 1, ++/*209161*/ OPC_CheckChild2Type, MVT::i32, ++/*209163*/ OPC_CheckChild3Integer, 1, ++/*209165*/ OPC_CheckChild3Type, MVT::i32, ++/*209167*/ OPC_CheckChild4Integer, 1, ++/*209169*/ OPC_CheckChild4Type, MVT::i32, ++/*209171*/ OPC_MoveChild5, ++/*209172*/ OPC_CheckInteger, 1, ++/*209174*/ OPC_CheckType, MVT::i32, ++/*209176*/ OPC_MoveParent, ++/*209177*/ OPC_MoveChild6, ++/*209178*/ OPC_CheckInteger, 1, ++/*209180*/ OPC_CheckType, MVT::i32, ++/*209182*/ OPC_MoveParent, ++/*209183*/ OPC_MoveChild7, ++/*209184*/ OPC_CheckInteger, 1, ++/*209186*/ OPC_CheckType, MVT::i32, ++/*209188*/ OPC_MoveParent, ++/*209189*/ OPC_MoveChild, 8, ++/*209191*/ OPC_CheckInteger, 1, ++/*209193*/ OPC_CheckType, MVT::i32, ++/*209195*/ OPC_MoveParent, ++/*209196*/ OPC_MoveChild, 9, ++/*209198*/ OPC_CheckInteger, 1, ++/*209200*/ OPC_CheckType, MVT::i32, ++/*209202*/ OPC_MoveParent, ++/*209203*/ OPC_MoveChild, 10, ++/*209205*/ OPC_CheckInteger, 1, ++/*209207*/ OPC_CheckType, MVT::i32, ++/*209209*/ OPC_MoveParent, ++/*209210*/ OPC_MoveChild, 11, ++/*209212*/ OPC_CheckInteger, 1, ++/*209214*/ OPC_CheckType, MVT::i32, ++/*209216*/ OPC_MoveParent, ++/*209217*/ OPC_MoveChild, 12, ++/*209219*/ OPC_CheckInteger, 1, ++/*209221*/ OPC_CheckType, MVT::i32, ++/*209223*/ OPC_MoveParent, ++/*209224*/ OPC_MoveChild, 13, ++/*209226*/ OPC_CheckInteger, 1, ++/*209228*/ OPC_CheckType, MVT::i32, ++/*209230*/ OPC_MoveParent, ++/*209231*/ OPC_MoveChild, 14, ++/*209233*/ OPC_CheckInteger, 1, ++/*209235*/ OPC_CheckType, MVT::i32, ++/*209237*/ OPC_MoveParent, ++/*209238*/ OPC_MoveChild, 15, ++/*209240*/ OPC_CheckInteger, 1, ++/*209242*/ OPC_CheckType, MVT::i32, ++/*209244*/ OPC_MoveParent, ++/*209245*/ OPC_CheckType, MVT::v16i8, ++/*209247*/ OPC_MoveParent, ++/*209248*/ OPC_CheckType, MVT::v16i8, ++/*209250*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*209252*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b)), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*209260*/ 0, /*End of Scope*/ ++/*209261*/ /*Scope*/ 10|128,5/*650*/, /*->209913*/ ++/*209263*/ OPC_CheckChild0Same, 1, ++/*209265*/ OPC_MoveChild1, ++/*209266*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*209269*/ OPC_Scope, 63|128,2/*319*/, /*->209591*/ // 2 children in Scope ++/*209272*/ OPC_MoveChild0, ++/*209273*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*209276*/ OPC_CheckChild0Integer, 1, ++/*209278*/ OPC_CheckChild0Type, MVT::i32, ++/*209280*/ OPC_CheckChild1Integer, 1, ++/*209282*/ OPC_CheckChild1Type, MVT::i32, ++/*209284*/ OPC_CheckChild2Integer, 1, ++/*209286*/ OPC_CheckChild2Type, MVT::i32, ++/*209288*/ OPC_CheckChild3Integer, 1, ++/*209290*/ OPC_CheckChild3Type, MVT::i32, ++/*209292*/ OPC_CheckChild4Integer, 1, ++/*209294*/ OPC_CheckChild4Type, MVT::i32, ++/*209296*/ OPC_MoveChild5, ++/*209297*/ OPC_CheckInteger, 1, ++/*209299*/ OPC_CheckType, MVT::i32, ++/*209301*/ OPC_MoveParent, ++/*209302*/ OPC_MoveChild6, ++/*209303*/ OPC_CheckInteger, 1, ++/*209305*/ OPC_CheckType, MVT::i32, ++/*209307*/ OPC_MoveParent, ++/*209308*/ OPC_MoveChild7, ++/*209309*/ OPC_CheckInteger, 1, ++/*209311*/ OPC_CheckType, MVT::i32, ++/*209313*/ OPC_MoveParent, ++/*209314*/ OPC_MoveChild, 8, ++/*209316*/ OPC_CheckInteger, 1, ++/*209318*/ OPC_CheckType, MVT::i32, ++/*209320*/ OPC_MoveParent, ++/*209321*/ OPC_MoveChild, 9, ++/*209323*/ OPC_CheckInteger, 1, ++/*209325*/ OPC_CheckType, MVT::i32, ++/*209327*/ OPC_MoveParent, ++/*209328*/ OPC_MoveChild, 10, ++/*209330*/ OPC_CheckInteger, 1, ++/*209332*/ OPC_CheckType, MVT::i32, ++/*209334*/ OPC_MoveParent, ++/*209335*/ OPC_MoveChild, 11, ++/*209337*/ OPC_CheckInteger, 1, ++/*209339*/ OPC_CheckType, MVT::i32, ++/*209341*/ OPC_MoveParent, ++/*209342*/ OPC_MoveChild, 12, ++/*209344*/ OPC_CheckInteger, 1, ++/*209346*/ OPC_CheckType, MVT::i32, ++/*209348*/ OPC_MoveParent, ++/*209349*/ OPC_MoveChild, 13, ++/*209351*/ OPC_CheckInteger, 1, ++/*209353*/ OPC_CheckType, MVT::i32, ++/*209355*/ OPC_MoveParent, ++/*209356*/ OPC_MoveChild, 14, ++/*209358*/ OPC_CheckInteger, 1, ++/*209360*/ OPC_CheckType, MVT::i32, ++/*209362*/ OPC_MoveParent, ++/*209363*/ OPC_MoveChild, 15, ++/*209365*/ OPC_CheckInteger, 1, ++/*209367*/ OPC_CheckType, MVT::i32, ++/*209369*/ OPC_MoveParent, ++/*209370*/ OPC_MoveParent, ++/*209371*/ OPC_CheckChild1Same, 0, ++/*209373*/ OPC_MoveParent, ++/*209374*/ OPC_MoveParent, ++/*209375*/ OPC_MoveChild1, ++/*209376*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*209379*/ OPC_CheckChild0Integer, 7, ++/*209381*/ OPC_CheckChild0Type, MVT::i32, ++/*209383*/ OPC_CheckChild1Integer, 7, ++/*209385*/ OPC_CheckChild1Type, MVT::i32, ++/*209387*/ OPC_CheckChild2Integer, 7, ++/*209389*/ OPC_CheckChild2Type, MVT::i32, ++/*209391*/ OPC_CheckChild3Integer, 7, ++/*209393*/ OPC_CheckChild3Type, MVT::i32, ++/*209395*/ OPC_CheckChild4Integer, 7, ++/*209397*/ OPC_CheckChild4Type, MVT::i32, ++/*209399*/ OPC_MoveChild5, ++/*209400*/ OPC_CheckInteger, 7, ++/*209402*/ OPC_CheckType, MVT::i32, ++/*209404*/ OPC_MoveParent, ++/*209405*/ OPC_MoveChild6, ++/*209406*/ OPC_CheckInteger, 7, ++/*209408*/ OPC_CheckType, MVT::i32, ++/*209410*/ OPC_MoveParent, ++/*209411*/ OPC_MoveChild7, ++/*209412*/ OPC_CheckInteger, 7, ++/*209414*/ OPC_CheckType, MVT::i32, ++/*209416*/ OPC_MoveParent, ++/*209417*/ OPC_MoveChild, 8, ++/*209419*/ OPC_CheckInteger, 7, ++/*209421*/ OPC_CheckType, MVT::i32, ++/*209423*/ OPC_MoveParent, ++/*209424*/ OPC_MoveChild, 9, ++/*209426*/ OPC_CheckInteger, 7, ++/*209428*/ OPC_CheckType, MVT::i32, ++/*209430*/ OPC_MoveParent, ++/*209431*/ OPC_MoveChild, 10, ++/*209433*/ OPC_CheckInteger, 7, ++/*209435*/ OPC_CheckType, MVT::i32, ++/*209437*/ OPC_MoveParent, ++/*209438*/ OPC_MoveChild, 11, ++/*209440*/ OPC_CheckInteger, 7, ++/*209442*/ OPC_CheckType, MVT::i32, ++/*209444*/ OPC_MoveParent, ++/*209445*/ OPC_MoveChild, 12, ++/*209447*/ OPC_CheckInteger, 7, ++/*209449*/ OPC_CheckType, MVT::i32, ++/*209451*/ OPC_MoveParent, ++/*209452*/ OPC_MoveChild, 13, ++/*209454*/ OPC_CheckInteger, 7, ++/*209456*/ OPC_CheckType, MVT::i32, ++/*209458*/ OPC_MoveParent, ++/*209459*/ OPC_MoveChild, 14, ++/*209461*/ OPC_CheckInteger, 7, ++/*209463*/ OPC_CheckType, MVT::i32, ++/*209465*/ OPC_MoveParent, ++/*209466*/ OPC_MoveChild, 15, ++/*209468*/ OPC_CheckInteger, 7, ++/*209470*/ OPC_CheckType, MVT::i32, ++/*209472*/ OPC_MoveParent, ++/*209473*/ OPC_CheckType, MVT::v16i8, ++/*209475*/ OPC_MoveParent, ++/*209476*/ OPC_MoveParent, ++/*209477*/ OPC_MoveParent, ++/*209478*/ OPC_MoveChild1, ++/*209479*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*209482*/ OPC_CheckChild0Integer, 1, ++/*209484*/ OPC_CheckChild0Type, MVT::i32, ++/*209486*/ OPC_CheckChild1Integer, 1, ++/*209488*/ OPC_CheckChild1Type, MVT::i32, ++/*209490*/ OPC_CheckChild2Integer, 1, ++/*209492*/ OPC_CheckChild2Type, MVT::i32, ++/*209494*/ OPC_CheckChild3Integer, 1, ++/*209496*/ OPC_CheckChild3Type, MVT::i32, ++/*209498*/ OPC_CheckChild4Integer, 1, ++/*209500*/ OPC_CheckChild4Type, MVT::i32, ++/*209502*/ OPC_MoveChild5, ++/*209503*/ OPC_CheckInteger, 1, ++/*209505*/ OPC_CheckType, MVT::i32, ++/*209507*/ OPC_MoveParent, ++/*209508*/ OPC_MoveChild6, ++/*209509*/ OPC_CheckInteger, 1, ++/*209511*/ OPC_CheckType, MVT::i32, ++/*209513*/ OPC_MoveParent, ++/*209514*/ OPC_MoveChild7, ++/*209515*/ OPC_CheckInteger, 1, ++/*209517*/ OPC_CheckType, MVT::i32, ++/*209519*/ OPC_MoveParent, ++/*209520*/ OPC_MoveChild, 8, ++/*209522*/ OPC_CheckInteger, 1, ++/*209524*/ OPC_CheckType, MVT::i32, ++/*209526*/ OPC_MoveParent, ++/*209527*/ OPC_MoveChild, 9, ++/*209529*/ OPC_CheckInteger, 1, ++/*209531*/ OPC_CheckType, MVT::i32, ++/*209533*/ OPC_MoveParent, ++/*209534*/ OPC_MoveChild, 10, ++/*209536*/ OPC_CheckInteger, 1, ++/*209538*/ OPC_CheckType, MVT::i32, ++/*209540*/ OPC_MoveParent, ++/*209541*/ OPC_MoveChild, 11, ++/*209543*/ OPC_CheckInteger, 1, ++/*209545*/ OPC_CheckType, MVT::i32, ++/*209547*/ OPC_MoveParent, ++/*209548*/ OPC_MoveChild, 12, ++/*209550*/ OPC_CheckInteger, 1, ++/*209552*/ OPC_CheckType, MVT::i32, ++/*209554*/ OPC_MoveParent, ++/*209555*/ OPC_MoveChild, 13, ++/*209557*/ OPC_CheckInteger, 1, ++/*209559*/ OPC_CheckType, MVT::i32, ++/*209561*/ OPC_MoveParent, ++/*209562*/ OPC_MoveChild, 14, ++/*209564*/ OPC_CheckInteger, 1, ++/*209566*/ OPC_CheckType, MVT::i32, ++/*209568*/ OPC_MoveParent, ++/*209569*/ OPC_MoveChild, 15, ++/*209571*/ OPC_CheckInteger, 1, ++/*209573*/ OPC_CheckType, MVT::i32, ++/*209575*/ OPC_MoveParent, ++/*209576*/ OPC_CheckType, MVT::v16i8, ++/*209578*/ OPC_MoveParent, ++/*209579*/ OPC_CheckType, MVT::v16i8, ++/*209581*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*209583*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b)), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*209591*/ /*Scope*/ 63|128,2/*319*/, /*->209912*/ ++/*209593*/ OPC_CheckChild0Same, 0, ++/*209595*/ OPC_MoveChild1, ++/*209596*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*209599*/ OPC_CheckChild0Integer, 1, ++/*209601*/ OPC_CheckChild0Type, MVT::i32, ++/*209603*/ OPC_CheckChild1Integer, 1, ++/*209605*/ OPC_CheckChild1Type, MVT::i32, ++/*209607*/ OPC_CheckChild2Integer, 1, ++/*209609*/ OPC_CheckChild2Type, MVT::i32, ++/*209611*/ OPC_CheckChild3Integer, 1, ++/*209613*/ OPC_CheckChild3Type, MVT::i32, ++/*209615*/ OPC_CheckChild4Integer, 1, ++/*209617*/ OPC_CheckChild4Type, MVT::i32, ++/*209619*/ OPC_MoveChild5, ++/*209620*/ OPC_CheckInteger, 1, ++/*209622*/ OPC_CheckType, MVT::i32, ++/*209624*/ OPC_MoveParent, ++/*209625*/ OPC_MoveChild6, ++/*209626*/ OPC_CheckInteger, 1, ++/*209628*/ OPC_CheckType, MVT::i32, ++/*209630*/ OPC_MoveParent, ++/*209631*/ OPC_MoveChild7, ++/*209632*/ OPC_CheckInteger, 1, ++/*209634*/ OPC_CheckType, MVT::i32, ++/*209636*/ OPC_MoveParent, ++/*209637*/ OPC_MoveChild, 8, ++/*209639*/ OPC_CheckInteger, 1, ++/*209641*/ OPC_CheckType, MVT::i32, ++/*209643*/ OPC_MoveParent, ++/*209644*/ OPC_MoveChild, 9, ++/*209646*/ OPC_CheckInteger, 1, ++/*209648*/ OPC_CheckType, MVT::i32, ++/*209650*/ OPC_MoveParent, ++/*209651*/ OPC_MoveChild, 10, ++/*209653*/ OPC_CheckInteger, 1, ++/*209655*/ OPC_CheckType, MVT::i32, ++/*209657*/ OPC_MoveParent, ++/*209658*/ OPC_MoveChild, 11, ++/*209660*/ OPC_CheckInteger, 1, ++/*209662*/ OPC_CheckType, MVT::i32, ++/*209664*/ OPC_MoveParent, ++/*209665*/ OPC_MoveChild, 12, ++/*209667*/ OPC_CheckInteger, 1, ++/*209669*/ OPC_CheckType, MVT::i32, ++/*209671*/ OPC_MoveParent, ++/*209672*/ OPC_MoveChild, 13, ++/*209674*/ OPC_CheckInteger, 1, ++/*209676*/ OPC_CheckType, MVT::i32, ++/*209678*/ OPC_MoveParent, ++/*209679*/ OPC_MoveChild, 14, ++/*209681*/ OPC_CheckInteger, 1, ++/*209683*/ OPC_CheckType, MVT::i32, ++/*209685*/ OPC_MoveParent, ++/*209686*/ OPC_MoveChild, 15, ++/*209688*/ OPC_CheckInteger, 1, ++/*209690*/ OPC_CheckType, MVT::i32, ++/*209692*/ OPC_MoveParent, ++/*209693*/ OPC_MoveParent, ++/*209694*/ OPC_MoveParent, ++/*209695*/ OPC_MoveParent, ++/*209696*/ OPC_MoveChild1, ++/*209697*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*209700*/ OPC_CheckChild0Integer, 7, ++/*209702*/ OPC_CheckChild0Type, MVT::i32, ++/*209704*/ OPC_CheckChild1Integer, 7, ++/*209706*/ OPC_CheckChild1Type, MVT::i32, ++/*209708*/ OPC_CheckChild2Integer, 7, ++/*209710*/ OPC_CheckChild2Type, MVT::i32, ++/*209712*/ OPC_CheckChild3Integer, 7, ++/*209714*/ OPC_CheckChild3Type, MVT::i32, ++/*209716*/ OPC_CheckChild4Integer, 7, ++/*209718*/ OPC_CheckChild4Type, MVT::i32, ++/*209720*/ OPC_MoveChild5, ++/*209721*/ OPC_CheckInteger, 7, ++/*209723*/ OPC_CheckType, MVT::i32, ++/*209725*/ OPC_MoveParent, ++/*209726*/ OPC_MoveChild6, ++/*209727*/ OPC_CheckInteger, 7, ++/*209729*/ OPC_CheckType, MVT::i32, ++/*209731*/ OPC_MoveParent, ++/*209732*/ OPC_MoveChild7, ++/*209733*/ OPC_CheckInteger, 7, ++/*209735*/ OPC_CheckType, MVT::i32, ++/*209737*/ OPC_MoveParent, ++/*209738*/ OPC_MoveChild, 8, ++/*209740*/ OPC_CheckInteger, 7, ++/*209742*/ OPC_CheckType, MVT::i32, ++/*209744*/ OPC_MoveParent, ++/*209745*/ OPC_MoveChild, 9, ++/*209747*/ OPC_CheckInteger, 7, ++/*209749*/ OPC_CheckType, MVT::i32, ++/*209751*/ OPC_MoveParent, ++/*209752*/ OPC_MoveChild, 10, ++/*209754*/ OPC_CheckInteger, 7, ++/*209756*/ OPC_CheckType, MVT::i32, ++/*209758*/ OPC_MoveParent, ++/*209759*/ OPC_MoveChild, 11, ++/*209761*/ OPC_CheckInteger, 7, ++/*209763*/ OPC_CheckType, MVT::i32, ++/*209765*/ OPC_MoveParent, ++/*209766*/ OPC_MoveChild, 12, ++/*209768*/ OPC_CheckInteger, 7, ++/*209770*/ OPC_CheckType, MVT::i32, ++/*209772*/ OPC_MoveParent, ++/*209773*/ OPC_MoveChild, 13, ++/*209775*/ OPC_CheckInteger, 7, ++/*209777*/ OPC_CheckType, MVT::i32, ++/*209779*/ OPC_MoveParent, ++/*209780*/ OPC_MoveChild, 14, ++/*209782*/ OPC_CheckInteger, 7, ++/*209784*/ OPC_CheckType, MVT::i32, ++/*209786*/ OPC_MoveParent, ++/*209787*/ OPC_MoveChild, 15, ++/*209789*/ OPC_CheckInteger, 7, ++/*209791*/ OPC_CheckType, MVT::i32, ++/*209793*/ OPC_MoveParent, ++/*209794*/ OPC_CheckType, MVT::v16i8, ++/*209796*/ OPC_MoveParent, ++/*209797*/ OPC_MoveParent, ++/*209798*/ OPC_MoveParent, ++/*209799*/ OPC_MoveChild1, ++/*209800*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*209803*/ OPC_CheckChild0Integer, 1, ++/*209805*/ OPC_CheckChild0Type, MVT::i32, ++/*209807*/ OPC_CheckChild1Integer, 1, ++/*209809*/ OPC_CheckChild1Type, MVT::i32, ++/*209811*/ OPC_CheckChild2Integer, 1, ++/*209813*/ OPC_CheckChild2Type, MVT::i32, ++/*209815*/ OPC_CheckChild3Integer, 1, ++/*209817*/ OPC_CheckChild3Type, MVT::i32, ++/*209819*/ OPC_CheckChild4Integer, 1, ++/*209821*/ OPC_CheckChild4Type, MVT::i32, ++/*209823*/ OPC_MoveChild5, ++/*209824*/ OPC_CheckInteger, 1, ++/*209826*/ OPC_CheckType, MVT::i32, ++/*209828*/ OPC_MoveParent, ++/*209829*/ OPC_MoveChild6, ++/*209830*/ OPC_CheckInteger, 1, ++/*209832*/ OPC_CheckType, MVT::i32, ++/*209834*/ OPC_MoveParent, ++/*209835*/ OPC_MoveChild7, ++/*209836*/ OPC_CheckInteger, 1, ++/*209838*/ OPC_CheckType, MVT::i32, ++/*209840*/ OPC_MoveParent, ++/*209841*/ OPC_MoveChild, 8, ++/*209843*/ OPC_CheckInteger, 1, ++/*209845*/ OPC_CheckType, MVT::i32, ++/*209847*/ OPC_MoveParent, ++/*209848*/ OPC_MoveChild, 9, ++/*209850*/ OPC_CheckInteger, 1, ++/*209852*/ OPC_CheckType, MVT::i32, ++/*209854*/ OPC_MoveParent, ++/*209855*/ OPC_MoveChild, 10, ++/*209857*/ OPC_CheckInteger, 1, ++/*209859*/ OPC_CheckType, MVT::i32, ++/*209861*/ OPC_MoveParent, ++/*209862*/ OPC_MoveChild, 11, ++/*209864*/ OPC_CheckInteger, 1, ++/*209866*/ OPC_CheckType, MVT::i32, ++/*209868*/ OPC_MoveParent, ++/*209869*/ OPC_MoveChild, 12, ++/*209871*/ OPC_CheckInteger, 1, ++/*209873*/ OPC_CheckType, MVT::i32, ++/*209875*/ OPC_MoveParent, ++/*209876*/ OPC_MoveChild, 13, ++/*209878*/ OPC_CheckInteger, 1, ++/*209880*/ OPC_CheckType, MVT::i32, ++/*209882*/ OPC_MoveParent, ++/*209883*/ OPC_MoveChild, 14, ++/*209885*/ OPC_CheckInteger, 1, ++/*209887*/ OPC_CheckType, MVT::i32, ++/*209889*/ OPC_MoveParent, ++/*209890*/ OPC_MoveChild, 15, ++/*209892*/ OPC_CheckInteger, 1, ++/*209894*/ OPC_CheckType, MVT::i32, ++/*209896*/ OPC_MoveParent, ++/*209897*/ OPC_CheckType, MVT::v16i8, ++/*209899*/ OPC_MoveParent, ++/*209900*/ OPC_CheckType, MVT::v16i8, ++/*209902*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*209904*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b)), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*209912*/ 0, /*End of Scope*/ ++/*209913*/ /*Scope*/ 10|128,5/*650*/, /*->210565*/ ++/*209915*/ OPC_CheckChild0Same, 0, ++/*209917*/ OPC_MoveChild1, ++/*209918*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*209921*/ OPC_Scope, 63|128,2/*319*/, /*->210243*/ // 2 children in Scope ++/*209924*/ OPC_MoveChild0, ++/*209925*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*209928*/ OPC_CheckChild0Integer, 1, ++/*209930*/ OPC_CheckChild0Type, MVT::i32, ++/*209932*/ OPC_CheckChild1Integer, 1, ++/*209934*/ OPC_CheckChild1Type, MVT::i32, ++/*209936*/ OPC_CheckChild2Integer, 1, ++/*209938*/ OPC_CheckChild2Type, MVT::i32, ++/*209940*/ OPC_CheckChild3Integer, 1, ++/*209942*/ OPC_CheckChild3Type, MVT::i32, ++/*209944*/ OPC_CheckChild4Integer, 1, ++/*209946*/ OPC_CheckChild4Type, MVT::i32, ++/*209948*/ OPC_MoveChild5, ++/*209949*/ OPC_CheckInteger, 1, ++/*209951*/ OPC_CheckType, MVT::i32, ++/*209953*/ OPC_MoveParent, ++/*209954*/ OPC_MoveChild6, ++/*209955*/ OPC_CheckInteger, 1, ++/*209957*/ OPC_CheckType, MVT::i32, ++/*209959*/ OPC_MoveParent, ++/*209960*/ OPC_MoveChild7, ++/*209961*/ OPC_CheckInteger, 1, ++/*209963*/ OPC_CheckType, MVT::i32, ++/*209965*/ OPC_MoveParent, ++/*209966*/ OPC_MoveChild, 8, ++/*209968*/ OPC_CheckInteger, 1, ++/*209970*/ OPC_CheckType, MVT::i32, ++/*209972*/ OPC_MoveParent, ++/*209973*/ OPC_MoveChild, 9, ++/*209975*/ OPC_CheckInteger, 1, ++/*209977*/ OPC_CheckType, MVT::i32, ++/*209979*/ OPC_MoveParent, ++/*209980*/ OPC_MoveChild, 10, ++/*209982*/ OPC_CheckInteger, 1, ++/*209984*/ OPC_CheckType, MVT::i32, ++/*209986*/ OPC_MoveParent, ++/*209987*/ OPC_MoveChild, 11, ++/*209989*/ OPC_CheckInteger, 1, ++/*209991*/ OPC_CheckType, MVT::i32, ++/*209993*/ OPC_MoveParent, ++/*209994*/ OPC_MoveChild, 12, ++/*209996*/ OPC_CheckInteger, 1, ++/*209998*/ OPC_CheckType, MVT::i32, ++/*210000*/ OPC_MoveParent, ++/*210001*/ OPC_MoveChild, 13, ++/*210003*/ OPC_CheckInteger, 1, ++/*210005*/ OPC_CheckType, MVT::i32, ++/*210007*/ OPC_MoveParent, ++/*210008*/ OPC_MoveChild, 14, ++/*210010*/ OPC_CheckInteger, 1, ++/*210012*/ OPC_CheckType, MVT::i32, ++/*210014*/ OPC_MoveParent, ++/*210015*/ OPC_MoveChild, 15, ++/*210017*/ OPC_CheckInteger, 1, ++/*210019*/ OPC_CheckType, MVT::i32, ++/*210021*/ OPC_MoveParent, ++/*210022*/ OPC_MoveParent, ++/*210023*/ OPC_CheckChild1Same, 1, ++/*210025*/ OPC_MoveParent, ++/*210026*/ OPC_MoveParent, ++/*210027*/ OPC_MoveChild1, ++/*210028*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*210031*/ OPC_CheckChild0Integer, 7, ++/*210033*/ OPC_CheckChild0Type, MVT::i32, ++/*210035*/ OPC_CheckChild1Integer, 7, ++/*210037*/ OPC_CheckChild1Type, MVT::i32, ++/*210039*/ OPC_CheckChild2Integer, 7, ++/*210041*/ OPC_CheckChild2Type, MVT::i32, ++/*210043*/ OPC_CheckChild3Integer, 7, ++/*210045*/ OPC_CheckChild3Type, MVT::i32, ++/*210047*/ OPC_CheckChild4Integer, 7, ++/*210049*/ OPC_CheckChild4Type, MVT::i32, ++/*210051*/ OPC_MoveChild5, ++/*210052*/ OPC_CheckInteger, 7, ++/*210054*/ OPC_CheckType, MVT::i32, ++/*210056*/ OPC_MoveParent, ++/*210057*/ OPC_MoveChild6, ++/*210058*/ OPC_CheckInteger, 7, ++/*210060*/ OPC_CheckType, MVT::i32, ++/*210062*/ OPC_MoveParent, ++/*210063*/ OPC_MoveChild7, ++/*210064*/ OPC_CheckInteger, 7, ++/*210066*/ OPC_CheckType, MVT::i32, ++/*210068*/ OPC_MoveParent, ++/*210069*/ OPC_MoveChild, 8, ++/*210071*/ OPC_CheckInteger, 7, ++/*210073*/ OPC_CheckType, MVT::i32, ++/*210075*/ OPC_MoveParent, ++/*210076*/ OPC_MoveChild, 9, ++/*210078*/ OPC_CheckInteger, 7, ++/*210080*/ OPC_CheckType, MVT::i32, ++/*210082*/ OPC_MoveParent, ++/*210083*/ OPC_MoveChild, 10, ++/*210085*/ OPC_CheckInteger, 7, ++/*210087*/ OPC_CheckType, MVT::i32, ++/*210089*/ OPC_MoveParent, ++/*210090*/ OPC_MoveChild, 11, ++/*210092*/ OPC_CheckInteger, 7, ++/*210094*/ OPC_CheckType, MVT::i32, ++/*210096*/ OPC_MoveParent, ++/*210097*/ OPC_MoveChild, 12, ++/*210099*/ OPC_CheckInteger, 7, ++/*210101*/ OPC_CheckType, MVT::i32, ++/*210103*/ OPC_MoveParent, ++/*210104*/ OPC_MoveChild, 13, ++/*210106*/ OPC_CheckInteger, 7, ++/*210108*/ OPC_CheckType, MVT::i32, ++/*210110*/ OPC_MoveParent, ++/*210111*/ OPC_MoveChild, 14, ++/*210113*/ OPC_CheckInteger, 7, ++/*210115*/ OPC_CheckType, MVT::i32, ++/*210117*/ OPC_MoveParent, ++/*210118*/ OPC_MoveChild, 15, ++/*210120*/ OPC_CheckInteger, 7, ++/*210122*/ OPC_CheckType, MVT::i32, ++/*210124*/ OPC_MoveParent, ++/*210125*/ OPC_CheckType, MVT::v16i8, ++/*210127*/ OPC_MoveParent, ++/*210128*/ OPC_MoveParent, ++/*210129*/ OPC_MoveParent, ++/*210130*/ OPC_MoveChild1, ++/*210131*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*210134*/ OPC_CheckChild0Integer, 1, ++/*210136*/ OPC_CheckChild0Type, MVT::i32, ++/*210138*/ OPC_CheckChild1Integer, 1, ++/*210140*/ OPC_CheckChild1Type, MVT::i32, ++/*210142*/ OPC_CheckChild2Integer, 1, ++/*210144*/ OPC_CheckChild2Type, MVT::i32, ++/*210146*/ OPC_CheckChild3Integer, 1, ++/*210148*/ OPC_CheckChild3Type, MVT::i32, ++/*210150*/ OPC_CheckChild4Integer, 1, ++/*210152*/ OPC_CheckChild4Type, MVT::i32, ++/*210154*/ OPC_MoveChild5, ++/*210155*/ OPC_CheckInteger, 1, ++/*210157*/ OPC_CheckType, MVT::i32, ++/*210159*/ OPC_MoveParent, ++/*210160*/ OPC_MoveChild6, ++/*210161*/ OPC_CheckInteger, 1, ++/*210163*/ OPC_CheckType, MVT::i32, ++/*210165*/ OPC_MoveParent, ++/*210166*/ OPC_MoveChild7, ++/*210167*/ OPC_CheckInteger, 1, ++/*210169*/ OPC_CheckType, MVT::i32, ++/*210171*/ OPC_MoveParent, ++/*210172*/ OPC_MoveChild, 8, ++/*210174*/ OPC_CheckInteger, 1, ++/*210176*/ OPC_CheckType, MVT::i32, ++/*210178*/ OPC_MoveParent, ++/*210179*/ OPC_MoveChild, 9, ++/*210181*/ OPC_CheckInteger, 1, ++/*210183*/ OPC_CheckType, MVT::i32, ++/*210185*/ OPC_MoveParent, ++/*210186*/ OPC_MoveChild, 10, ++/*210188*/ OPC_CheckInteger, 1, ++/*210190*/ OPC_CheckType, MVT::i32, ++/*210192*/ OPC_MoveParent, ++/*210193*/ OPC_MoveChild, 11, ++/*210195*/ OPC_CheckInteger, 1, ++/*210197*/ OPC_CheckType, MVT::i32, ++/*210199*/ OPC_MoveParent, ++/*210200*/ OPC_MoveChild, 12, ++/*210202*/ OPC_CheckInteger, 1, ++/*210204*/ OPC_CheckType, MVT::i32, ++/*210206*/ OPC_MoveParent, ++/*210207*/ OPC_MoveChild, 13, ++/*210209*/ OPC_CheckInteger, 1, ++/*210211*/ OPC_CheckType, MVT::i32, ++/*210213*/ OPC_MoveParent, ++/*210214*/ OPC_MoveChild, 14, ++/*210216*/ OPC_CheckInteger, 1, ++/*210218*/ OPC_CheckType, MVT::i32, ++/*210220*/ OPC_MoveParent, ++/*210221*/ OPC_MoveChild, 15, ++/*210223*/ OPC_CheckInteger, 1, ++/*210225*/ OPC_CheckType, MVT::i32, ++/*210227*/ OPC_MoveParent, ++/*210228*/ OPC_CheckType, MVT::v16i8, ++/*210230*/ OPC_MoveParent, ++/*210231*/ OPC_CheckType, MVT::v16i8, ++/*210233*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*210235*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b)), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*210243*/ /*Scope*/ 63|128,2/*319*/, /*->210564*/ ++/*210245*/ OPC_CheckChild0Same, 1, ++/*210247*/ OPC_MoveChild1, ++/*210248*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*210251*/ OPC_CheckChild0Integer, 1, ++/*210253*/ OPC_CheckChild0Type, MVT::i32, ++/*210255*/ OPC_CheckChild1Integer, 1, ++/*210257*/ OPC_CheckChild1Type, MVT::i32, ++/*210259*/ OPC_CheckChild2Integer, 1, ++/*210261*/ OPC_CheckChild2Type, MVT::i32, ++/*210263*/ OPC_CheckChild3Integer, 1, ++/*210265*/ OPC_CheckChild3Type, MVT::i32, ++/*210267*/ OPC_CheckChild4Integer, 1, ++/*210269*/ OPC_CheckChild4Type, MVT::i32, ++/*210271*/ OPC_MoveChild5, ++/*210272*/ OPC_CheckInteger, 1, ++/*210274*/ OPC_CheckType, MVT::i32, ++/*210276*/ OPC_MoveParent, ++/*210277*/ OPC_MoveChild6, ++/*210278*/ OPC_CheckInteger, 1, ++/*210280*/ OPC_CheckType, MVT::i32, ++/*210282*/ OPC_MoveParent, ++/*210283*/ OPC_MoveChild7, ++/*210284*/ OPC_CheckInteger, 1, ++/*210286*/ OPC_CheckType, MVT::i32, ++/*210288*/ OPC_MoveParent, ++/*210289*/ OPC_MoveChild, 8, ++/*210291*/ OPC_CheckInteger, 1, ++/*210293*/ OPC_CheckType, MVT::i32, ++/*210295*/ OPC_MoveParent, ++/*210296*/ OPC_MoveChild, 9, ++/*210298*/ OPC_CheckInteger, 1, ++/*210300*/ OPC_CheckType, MVT::i32, ++/*210302*/ OPC_MoveParent, ++/*210303*/ OPC_MoveChild, 10, ++/*210305*/ OPC_CheckInteger, 1, ++/*210307*/ OPC_CheckType, MVT::i32, ++/*210309*/ OPC_MoveParent, ++/*210310*/ OPC_MoveChild, 11, ++/*210312*/ OPC_CheckInteger, 1, ++/*210314*/ OPC_CheckType, MVT::i32, ++/*210316*/ OPC_MoveParent, ++/*210317*/ OPC_MoveChild, 12, ++/*210319*/ OPC_CheckInteger, 1, ++/*210321*/ OPC_CheckType, MVT::i32, ++/*210323*/ OPC_MoveParent, ++/*210324*/ OPC_MoveChild, 13, ++/*210326*/ OPC_CheckInteger, 1, ++/*210328*/ OPC_CheckType, MVT::i32, ++/*210330*/ OPC_MoveParent, ++/*210331*/ OPC_MoveChild, 14, ++/*210333*/ OPC_CheckInteger, 1, ++/*210335*/ OPC_CheckType, MVT::i32, ++/*210337*/ OPC_MoveParent, ++/*210338*/ OPC_MoveChild, 15, ++/*210340*/ OPC_CheckInteger, 1, ++/*210342*/ OPC_CheckType, MVT::i32, ++/*210344*/ OPC_MoveParent, ++/*210345*/ OPC_MoveParent, ++/*210346*/ OPC_MoveParent, ++/*210347*/ OPC_MoveParent, ++/*210348*/ OPC_MoveChild1, ++/*210349*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*210352*/ OPC_CheckChild0Integer, 7, ++/*210354*/ OPC_CheckChild0Type, MVT::i32, ++/*210356*/ OPC_CheckChild1Integer, 7, ++/*210358*/ OPC_CheckChild1Type, MVT::i32, ++/*210360*/ OPC_CheckChild2Integer, 7, ++/*210362*/ OPC_CheckChild2Type, MVT::i32, ++/*210364*/ OPC_CheckChild3Integer, 7, ++/*210366*/ OPC_CheckChild3Type, MVT::i32, ++/*210368*/ OPC_CheckChild4Integer, 7, ++/*210370*/ OPC_CheckChild4Type, MVT::i32, ++/*210372*/ OPC_MoveChild5, ++/*210373*/ OPC_CheckInteger, 7, ++/*210375*/ OPC_CheckType, MVT::i32, ++/*210377*/ OPC_MoveParent, ++/*210378*/ OPC_MoveChild6, ++/*210379*/ OPC_CheckInteger, 7, ++/*210381*/ OPC_CheckType, MVT::i32, ++/*210383*/ OPC_MoveParent, ++/*210384*/ OPC_MoveChild7, ++/*210385*/ OPC_CheckInteger, 7, ++/*210387*/ OPC_CheckType, MVT::i32, ++/*210389*/ OPC_MoveParent, ++/*210390*/ OPC_MoveChild, 8, ++/*210392*/ OPC_CheckInteger, 7, ++/*210394*/ OPC_CheckType, MVT::i32, ++/*210396*/ OPC_MoveParent, ++/*210397*/ OPC_MoveChild, 9, ++/*210399*/ OPC_CheckInteger, 7, ++/*210401*/ OPC_CheckType, MVT::i32, ++/*210403*/ OPC_MoveParent, ++/*210404*/ OPC_MoveChild, 10, ++/*210406*/ OPC_CheckInteger, 7, ++/*210408*/ OPC_CheckType, MVT::i32, ++/*210410*/ OPC_MoveParent, ++/*210411*/ OPC_MoveChild, 11, ++/*210413*/ OPC_CheckInteger, 7, ++/*210415*/ OPC_CheckType, MVT::i32, ++/*210417*/ OPC_MoveParent, ++/*210418*/ OPC_MoveChild, 12, ++/*210420*/ OPC_CheckInteger, 7, ++/*210422*/ OPC_CheckType, MVT::i32, ++/*210424*/ OPC_MoveParent, ++/*210425*/ OPC_MoveChild, 13, ++/*210427*/ OPC_CheckInteger, 7, ++/*210429*/ OPC_CheckType, MVT::i32, ++/*210431*/ OPC_MoveParent, ++/*210432*/ OPC_MoveChild, 14, ++/*210434*/ OPC_CheckInteger, 7, ++/*210436*/ OPC_CheckType, MVT::i32, ++/*210438*/ OPC_MoveParent, ++/*210439*/ OPC_MoveChild, 15, ++/*210441*/ OPC_CheckInteger, 7, ++/*210443*/ OPC_CheckType, MVT::i32, ++/*210445*/ OPC_MoveParent, ++/*210446*/ OPC_CheckType, MVT::v16i8, ++/*210448*/ OPC_MoveParent, ++/*210449*/ OPC_MoveParent, ++/*210450*/ OPC_MoveParent, ++/*210451*/ OPC_MoveChild1, ++/*210452*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*210455*/ OPC_CheckChild0Integer, 1, ++/*210457*/ OPC_CheckChild0Type, MVT::i32, ++/*210459*/ OPC_CheckChild1Integer, 1, ++/*210461*/ OPC_CheckChild1Type, MVT::i32, ++/*210463*/ OPC_CheckChild2Integer, 1, ++/*210465*/ OPC_CheckChild2Type, MVT::i32, ++/*210467*/ OPC_CheckChild3Integer, 1, ++/*210469*/ OPC_CheckChild3Type, MVT::i32, ++/*210471*/ OPC_CheckChild4Integer, 1, ++/*210473*/ OPC_CheckChild4Type, MVT::i32, ++/*210475*/ OPC_MoveChild5, ++/*210476*/ OPC_CheckInteger, 1, ++/*210478*/ OPC_CheckType, MVT::i32, ++/*210480*/ OPC_MoveParent, ++/*210481*/ OPC_MoveChild6, ++/*210482*/ OPC_CheckInteger, 1, ++/*210484*/ OPC_CheckType, MVT::i32, ++/*210486*/ OPC_MoveParent, ++/*210487*/ OPC_MoveChild7, ++/*210488*/ OPC_CheckInteger, 1, ++/*210490*/ OPC_CheckType, MVT::i32, ++/*210492*/ OPC_MoveParent, ++/*210493*/ OPC_MoveChild, 8, ++/*210495*/ OPC_CheckInteger, 1, ++/*210497*/ OPC_CheckType, MVT::i32, ++/*210499*/ OPC_MoveParent, ++/*210500*/ OPC_MoveChild, 9, ++/*210502*/ OPC_CheckInteger, 1, ++/*210504*/ OPC_CheckType, MVT::i32, ++/*210506*/ OPC_MoveParent, ++/*210507*/ OPC_MoveChild, 10, ++/*210509*/ OPC_CheckInteger, 1, ++/*210511*/ OPC_CheckType, MVT::i32, ++/*210513*/ OPC_MoveParent, ++/*210514*/ OPC_MoveChild, 11, ++/*210516*/ OPC_CheckInteger, 1, ++/*210518*/ OPC_CheckType, MVT::i32, ++/*210520*/ OPC_MoveParent, ++/*210521*/ OPC_MoveChild, 12, ++/*210523*/ OPC_CheckInteger, 1, ++/*210525*/ OPC_CheckType, MVT::i32, ++/*210527*/ OPC_MoveParent, ++/*210528*/ OPC_MoveChild, 13, ++/*210530*/ OPC_CheckInteger, 1, ++/*210532*/ OPC_CheckType, MVT::i32, ++/*210534*/ OPC_MoveParent, ++/*210535*/ OPC_MoveChild, 14, ++/*210537*/ OPC_CheckInteger, 1, ++/*210539*/ OPC_CheckType, MVT::i32, ++/*210541*/ OPC_MoveParent, ++/*210542*/ OPC_MoveChild, 15, ++/*210544*/ OPC_CheckInteger, 1, ++/*210546*/ OPC_CheckType, MVT::i32, ++/*210548*/ OPC_MoveParent, ++/*210549*/ OPC_CheckType, MVT::v16i8, ++/*210551*/ OPC_MoveParent, ++/*210552*/ OPC_CheckType, MVT::v16i8, ++/*210554*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*210556*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b)), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*210564*/ 0, /*End of Scope*/ ++/*210565*/ /*Scope*/ 41|128,4/*553*/, /*->211120*/ ++/*210567*/ OPC_MoveChild0, ++/*210568*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*210571*/ OPC_CheckChild0Integer, 1, ++/*210573*/ OPC_CheckChild0Type, MVT::i32, ++/*210575*/ OPC_CheckChild1Integer, 1, ++/*210577*/ OPC_CheckChild1Type, MVT::i32, ++/*210579*/ OPC_CheckChild2Integer, 1, ++/*210581*/ OPC_CheckChild2Type, MVT::i32, ++/*210583*/ OPC_CheckChild3Integer, 1, ++/*210585*/ OPC_CheckChild3Type, MVT::i32, ++/*210587*/ OPC_CheckChild4Integer, 1, ++/*210589*/ OPC_CheckChild4Type, MVT::i32, ++/*210591*/ OPC_MoveChild5, ++/*210592*/ OPC_CheckInteger, 1, ++/*210594*/ OPC_CheckType, MVT::i32, ++/*210596*/ OPC_MoveParent, ++/*210597*/ OPC_MoveChild6, ++/*210598*/ OPC_CheckInteger, 1, ++/*210600*/ OPC_CheckType, MVT::i32, ++/*210602*/ OPC_MoveParent, ++/*210603*/ OPC_MoveChild7, ++/*210604*/ OPC_CheckInteger, 1, ++/*210606*/ OPC_CheckType, MVT::i32, ++/*210608*/ OPC_MoveParent, ++/*210609*/ OPC_MoveChild, 8, ++/*210611*/ OPC_CheckInteger, 1, ++/*210613*/ OPC_CheckType, MVT::i32, ++/*210615*/ OPC_MoveParent, ++/*210616*/ OPC_MoveChild, 9, ++/*210618*/ OPC_CheckInteger, 1, ++/*210620*/ OPC_CheckType, MVT::i32, ++/*210622*/ OPC_MoveParent, ++/*210623*/ OPC_MoveChild, 10, ++/*210625*/ OPC_CheckInteger, 1, ++/*210627*/ OPC_CheckType, MVT::i32, ++/*210629*/ OPC_MoveParent, ++/*210630*/ OPC_MoveChild, 11, ++/*210632*/ OPC_CheckInteger, 1, ++/*210634*/ OPC_CheckType, MVT::i32, ++/*210636*/ OPC_MoveParent, ++/*210637*/ OPC_MoveChild, 12, ++/*210639*/ OPC_CheckInteger, 1, ++/*210641*/ OPC_CheckType, MVT::i32, ++/*210643*/ OPC_MoveParent, ++/*210644*/ OPC_MoveChild, 13, ++/*210646*/ OPC_CheckInteger, 1, ++/*210648*/ OPC_CheckType, MVT::i32, ++/*210650*/ OPC_MoveParent, ++/*210651*/ OPC_MoveChild, 14, ++/*210653*/ OPC_CheckInteger, 1, ++/*210655*/ OPC_CheckType, MVT::i32, ++/*210657*/ OPC_MoveParent, ++/*210658*/ OPC_MoveChild, 15, ++/*210660*/ OPC_CheckInteger, 1, ++/*210662*/ OPC_CheckType, MVT::i32, ++/*210664*/ OPC_MoveParent, ++/*210665*/ OPC_MoveParent, ++/*210666*/ OPC_MoveChild1, ++/*210667*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*210670*/ OPC_Scope, 94|128,1/*222*/, /*->210895*/ // 2 children in Scope ++/*210673*/ OPC_CheckChild0Same, 0, ++/*210675*/ OPC_CheckChild1Same, 1, ++/*210677*/ OPC_MoveParent, ++/*210678*/ OPC_MoveParent, ++/*210679*/ OPC_MoveChild1, ++/*210680*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*210683*/ OPC_CheckChild0Integer, 7, ++/*210685*/ OPC_CheckChild0Type, MVT::i32, ++/*210687*/ OPC_CheckChild1Integer, 7, ++/*210689*/ OPC_CheckChild1Type, MVT::i32, ++/*210691*/ OPC_CheckChild2Integer, 7, ++/*210693*/ OPC_CheckChild2Type, MVT::i32, ++/*210695*/ OPC_CheckChild3Integer, 7, ++/*210697*/ OPC_CheckChild3Type, MVT::i32, ++/*210699*/ OPC_CheckChild4Integer, 7, ++/*210701*/ OPC_CheckChild4Type, MVT::i32, ++/*210703*/ OPC_MoveChild5, ++/*210704*/ OPC_CheckInteger, 7, ++/*210706*/ OPC_CheckType, MVT::i32, ++/*210708*/ OPC_MoveParent, ++/*210709*/ OPC_MoveChild6, ++/*210710*/ OPC_CheckInteger, 7, ++/*210712*/ OPC_CheckType, MVT::i32, ++/*210714*/ OPC_MoveParent, ++/*210715*/ OPC_MoveChild7, ++/*210716*/ OPC_CheckInteger, 7, ++/*210718*/ OPC_CheckType, MVT::i32, ++/*210720*/ OPC_MoveParent, ++/*210721*/ OPC_MoveChild, 8, ++/*210723*/ OPC_CheckInteger, 7, ++/*210725*/ OPC_CheckType, MVT::i32, ++/*210727*/ OPC_MoveParent, ++/*210728*/ OPC_MoveChild, 9, ++/*210730*/ OPC_CheckInteger, 7, ++/*210732*/ OPC_CheckType, MVT::i32, ++/*210734*/ OPC_MoveParent, ++/*210735*/ OPC_MoveChild, 10, ++/*210737*/ OPC_CheckInteger, 7, ++/*210739*/ OPC_CheckType, MVT::i32, ++/*210741*/ OPC_MoveParent, ++/*210742*/ OPC_MoveChild, 11, ++/*210744*/ OPC_CheckInteger, 7, ++/*210746*/ OPC_CheckType, MVT::i32, ++/*210748*/ OPC_MoveParent, ++/*210749*/ OPC_MoveChild, 12, ++/*210751*/ OPC_CheckInteger, 7, ++/*210753*/ OPC_CheckType, MVT::i32, ++/*210755*/ OPC_MoveParent, ++/*210756*/ OPC_MoveChild, 13, ++/*210758*/ OPC_CheckInteger, 7, ++/*210760*/ OPC_CheckType, MVT::i32, ++/*210762*/ OPC_MoveParent, ++/*210763*/ OPC_MoveChild, 14, ++/*210765*/ OPC_CheckInteger, 7, ++/*210767*/ OPC_CheckType, MVT::i32, ++/*210769*/ OPC_MoveParent, ++/*210770*/ OPC_MoveChild, 15, ++/*210772*/ OPC_CheckInteger, 7, ++/*210774*/ OPC_CheckType, MVT::i32, ++/*210776*/ OPC_MoveParent, ++/*210777*/ OPC_CheckType, MVT::v16i8, ++/*210779*/ OPC_MoveParent, ++/*210780*/ OPC_MoveParent, ++/*210781*/ OPC_MoveParent, ++/*210782*/ OPC_MoveChild1, ++/*210783*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*210786*/ OPC_CheckChild0Integer, 1, ++/*210788*/ OPC_CheckChild0Type, MVT::i32, ++/*210790*/ OPC_CheckChild1Integer, 1, ++/*210792*/ OPC_CheckChild1Type, MVT::i32, ++/*210794*/ OPC_CheckChild2Integer, 1, ++/*210796*/ OPC_CheckChild2Type, MVT::i32, ++/*210798*/ OPC_CheckChild3Integer, 1, ++/*210800*/ OPC_CheckChild3Type, MVT::i32, ++/*210802*/ OPC_CheckChild4Integer, 1, ++/*210804*/ OPC_CheckChild4Type, MVT::i32, ++/*210806*/ OPC_MoveChild5, ++/*210807*/ OPC_CheckInteger, 1, ++/*210809*/ OPC_CheckType, MVT::i32, ++/*210811*/ OPC_MoveParent, ++/*210812*/ OPC_MoveChild6, ++/*210813*/ OPC_CheckInteger, 1, ++/*210815*/ OPC_CheckType, MVT::i32, ++/*210817*/ OPC_MoveParent, ++/*210818*/ OPC_MoveChild7, ++/*210819*/ OPC_CheckInteger, 1, ++/*210821*/ OPC_CheckType, MVT::i32, ++/*210823*/ OPC_MoveParent, ++/*210824*/ OPC_MoveChild, 8, ++/*210826*/ OPC_CheckInteger, 1, ++/*210828*/ OPC_CheckType, MVT::i32, ++/*210830*/ OPC_MoveParent, ++/*210831*/ OPC_MoveChild, 9, ++/*210833*/ OPC_CheckInteger, 1, ++/*210835*/ OPC_CheckType, MVT::i32, ++/*210837*/ OPC_MoveParent, ++/*210838*/ OPC_MoveChild, 10, ++/*210840*/ OPC_CheckInteger, 1, ++/*210842*/ OPC_CheckType, MVT::i32, ++/*210844*/ OPC_MoveParent, ++/*210845*/ OPC_MoveChild, 11, ++/*210847*/ OPC_CheckInteger, 1, ++/*210849*/ OPC_CheckType, MVT::i32, ++/*210851*/ OPC_MoveParent, ++/*210852*/ OPC_MoveChild, 12, ++/*210854*/ OPC_CheckInteger, 1, ++/*210856*/ OPC_CheckType, MVT::i32, ++/*210858*/ OPC_MoveParent, ++/*210859*/ OPC_MoveChild, 13, ++/*210861*/ OPC_CheckInteger, 1, ++/*210863*/ OPC_CheckType, MVT::i32, ++/*210865*/ OPC_MoveParent, ++/*210866*/ OPC_MoveChild, 14, ++/*210868*/ OPC_CheckInteger, 1, ++/*210870*/ OPC_CheckType, MVT::i32, ++/*210872*/ OPC_MoveParent, ++/*210873*/ OPC_MoveChild, 15, ++/*210875*/ OPC_CheckInteger, 1, ++/*210877*/ OPC_CheckType, MVT::i32, ++/*210879*/ OPC_MoveParent, ++/*210880*/ OPC_CheckType, MVT::v16i8, ++/*210882*/ OPC_MoveParent, ++/*210883*/ OPC_CheckType, MVT::v16i8, ++/*210885*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*210887*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b)), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*210895*/ /*Scope*/ 94|128,1/*222*/, /*->211119*/ ++/*210897*/ OPC_CheckChild0Same, 1, ++/*210899*/ OPC_CheckChild1Same, 0, ++/*210901*/ OPC_MoveParent, ++/*210902*/ OPC_MoveParent, ++/*210903*/ OPC_MoveChild1, ++/*210904*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*210907*/ OPC_CheckChild0Integer, 7, ++/*210909*/ OPC_CheckChild0Type, MVT::i32, ++/*210911*/ OPC_CheckChild1Integer, 7, ++/*210913*/ OPC_CheckChild1Type, MVT::i32, ++/*210915*/ OPC_CheckChild2Integer, 7, ++/*210917*/ OPC_CheckChild2Type, MVT::i32, ++/*210919*/ OPC_CheckChild3Integer, 7, ++/*210921*/ OPC_CheckChild3Type, MVT::i32, ++/*210923*/ OPC_CheckChild4Integer, 7, ++/*210925*/ OPC_CheckChild4Type, MVT::i32, ++/*210927*/ OPC_MoveChild5, ++/*210928*/ OPC_CheckInteger, 7, ++/*210930*/ OPC_CheckType, MVT::i32, ++/*210932*/ OPC_MoveParent, ++/*210933*/ OPC_MoveChild6, ++/*210934*/ OPC_CheckInteger, 7, ++/*210936*/ OPC_CheckType, MVT::i32, ++/*210938*/ OPC_MoveParent, ++/*210939*/ OPC_MoveChild7, ++/*210940*/ OPC_CheckInteger, 7, ++/*210942*/ OPC_CheckType, MVT::i32, ++/*210944*/ OPC_MoveParent, ++/*210945*/ OPC_MoveChild, 8, ++/*210947*/ OPC_CheckInteger, 7, ++/*210949*/ OPC_CheckType, MVT::i32, ++/*210951*/ OPC_MoveParent, ++/*210952*/ OPC_MoveChild, 9, ++/*210954*/ OPC_CheckInteger, 7, ++/*210956*/ OPC_CheckType, MVT::i32, ++/*210958*/ OPC_MoveParent, ++/*210959*/ OPC_MoveChild, 10, ++/*210961*/ OPC_CheckInteger, 7, ++/*210963*/ OPC_CheckType, MVT::i32, ++/*210965*/ OPC_MoveParent, ++/*210966*/ OPC_MoveChild, 11, ++/*210968*/ OPC_CheckInteger, 7, ++/*210970*/ OPC_CheckType, MVT::i32, ++/*210972*/ OPC_MoveParent, ++/*210973*/ OPC_MoveChild, 12, ++/*210975*/ OPC_CheckInteger, 7, ++/*210977*/ OPC_CheckType, MVT::i32, ++/*210979*/ OPC_MoveParent, ++/*210980*/ OPC_MoveChild, 13, ++/*210982*/ OPC_CheckInteger, 7, ++/*210984*/ OPC_CheckType, MVT::i32, ++/*210986*/ OPC_MoveParent, ++/*210987*/ OPC_MoveChild, 14, ++/*210989*/ OPC_CheckInteger, 7, ++/*210991*/ OPC_CheckType, MVT::i32, ++/*210993*/ OPC_MoveParent, ++/*210994*/ OPC_MoveChild, 15, ++/*210996*/ OPC_CheckInteger, 7, ++/*210998*/ OPC_CheckType, MVT::i32, ++/*211000*/ OPC_MoveParent, ++/*211001*/ OPC_CheckType, MVT::v16i8, ++/*211003*/ OPC_MoveParent, ++/*211004*/ OPC_MoveParent, ++/*211005*/ OPC_MoveParent, ++/*211006*/ OPC_MoveChild1, ++/*211007*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*211010*/ OPC_CheckChild0Integer, 1, ++/*211012*/ OPC_CheckChild0Type, MVT::i32, ++/*211014*/ OPC_CheckChild1Integer, 1, ++/*211016*/ OPC_CheckChild1Type, MVT::i32, ++/*211018*/ OPC_CheckChild2Integer, 1, ++/*211020*/ OPC_CheckChild2Type, MVT::i32, ++/*211022*/ OPC_CheckChild3Integer, 1, ++/*211024*/ OPC_CheckChild3Type, MVT::i32, ++/*211026*/ OPC_CheckChild4Integer, 1, ++/*211028*/ OPC_CheckChild4Type, MVT::i32, ++/*211030*/ OPC_MoveChild5, ++/*211031*/ OPC_CheckInteger, 1, ++/*211033*/ OPC_CheckType, MVT::i32, ++/*211035*/ OPC_MoveParent, ++/*211036*/ OPC_MoveChild6, ++/*211037*/ OPC_CheckInteger, 1, ++/*211039*/ OPC_CheckType, MVT::i32, ++/*211041*/ OPC_MoveParent, ++/*211042*/ OPC_MoveChild7, ++/*211043*/ OPC_CheckInteger, 1, ++/*211045*/ OPC_CheckType, MVT::i32, ++/*211047*/ OPC_MoveParent, ++/*211048*/ OPC_MoveChild, 8, ++/*211050*/ OPC_CheckInteger, 1, ++/*211052*/ OPC_CheckType, MVT::i32, ++/*211054*/ OPC_MoveParent, ++/*211055*/ OPC_MoveChild, 9, ++/*211057*/ OPC_CheckInteger, 1, ++/*211059*/ OPC_CheckType, MVT::i32, ++/*211061*/ OPC_MoveParent, ++/*211062*/ OPC_MoveChild, 10, ++/*211064*/ OPC_CheckInteger, 1, ++/*211066*/ OPC_CheckType, MVT::i32, ++/*211068*/ OPC_MoveParent, ++/*211069*/ OPC_MoveChild, 11, ++/*211071*/ OPC_CheckInteger, 1, ++/*211073*/ OPC_CheckType, MVT::i32, ++/*211075*/ OPC_MoveParent, ++/*211076*/ OPC_MoveChild, 12, ++/*211078*/ OPC_CheckInteger, 1, ++/*211080*/ OPC_CheckType, MVT::i32, ++/*211082*/ OPC_MoveParent, ++/*211083*/ OPC_MoveChild, 13, ++/*211085*/ OPC_CheckInteger, 1, ++/*211087*/ OPC_CheckType, MVT::i32, ++/*211089*/ OPC_MoveParent, ++/*211090*/ OPC_MoveChild, 14, ++/*211092*/ OPC_CheckInteger, 1, ++/*211094*/ OPC_CheckType, MVT::i32, ++/*211096*/ OPC_MoveParent, ++/*211097*/ OPC_MoveChild, 15, ++/*211099*/ OPC_CheckInteger, 1, ++/*211101*/ OPC_CheckType, MVT::i32, ++/*211103*/ OPC_MoveParent, ++/*211104*/ OPC_CheckType, MVT::v16i8, ++/*211106*/ OPC_MoveParent, ++/*211107*/ OPC_CheckType, MVT::v16i8, ++/*211109*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*211111*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b)), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*211119*/ 0, /*End of Scope*/ ++/*211120*/ 0, /*End of Scope*/ ++/*211121*/ /*Scope*/ 77|128,30/*3917*/, /*->215040*/ ++/*211123*/ OPC_RecordChild0, // #1 = $b ++/*211124*/ OPC_MoveChild1, ++/*211125*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*211128*/ OPC_CheckChild0Integer, 1, ++/*211130*/ OPC_CheckChild0Type, MVT::i32, ++/*211132*/ OPC_CheckChild1Integer, 1, ++/*211134*/ OPC_CheckChild1Type, MVT::i32, ++/*211136*/ OPC_CheckChild2Integer, 1, ++/*211138*/ OPC_CheckChild2Type, MVT::i32, ++/*211140*/ OPC_CheckChild3Integer, 1, ++/*211142*/ OPC_CheckChild3Type, MVT::i32, ++/*211144*/ OPC_CheckChild4Integer, 1, ++/*211146*/ OPC_CheckChild4Type, MVT::i32, ++/*211148*/ OPC_MoveChild5, ++/*211149*/ OPC_CheckInteger, 1, ++/*211151*/ OPC_CheckType, MVT::i32, ++/*211153*/ OPC_MoveParent, ++/*211154*/ OPC_MoveChild6, ++/*211155*/ OPC_CheckInteger, 1, ++/*211157*/ OPC_CheckType, MVT::i32, ++/*211159*/ OPC_MoveParent, ++/*211160*/ OPC_MoveChild7, ++/*211161*/ OPC_CheckInteger, 1, ++/*211163*/ OPC_CheckType, MVT::i32, ++/*211165*/ OPC_MoveParent, ++/*211166*/ OPC_MoveChild, 8, ++/*211168*/ OPC_CheckInteger, 1, ++/*211170*/ OPC_CheckType, MVT::i32, ++/*211172*/ OPC_MoveParent, ++/*211173*/ OPC_MoveChild, 9, ++/*211175*/ OPC_CheckInteger, 1, ++/*211177*/ OPC_CheckType, MVT::i32, ++/*211179*/ OPC_MoveParent, ++/*211180*/ OPC_MoveChild, 10, ++/*211182*/ OPC_CheckInteger, 1, ++/*211184*/ OPC_CheckType, MVT::i32, ++/*211186*/ OPC_MoveParent, ++/*211187*/ OPC_MoveChild, 11, ++/*211189*/ OPC_CheckInteger, 1, ++/*211191*/ OPC_CheckType, MVT::i32, ++/*211193*/ OPC_MoveParent, ++/*211194*/ OPC_MoveChild, 12, ++/*211196*/ OPC_CheckInteger, 1, ++/*211198*/ OPC_CheckType, MVT::i32, ++/*211200*/ OPC_MoveParent, ++/*211201*/ OPC_MoveChild, 13, ++/*211203*/ OPC_CheckInteger, 1, ++/*211205*/ OPC_CheckType, MVT::i32, ++/*211207*/ OPC_MoveParent, ++/*211208*/ OPC_MoveChild, 14, ++/*211210*/ OPC_CheckInteger, 1, ++/*211212*/ OPC_CheckType, MVT::i32, ++/*211214*/ OPC_MoveParent, ++/*211215*/ OPC_MoveChild, 15, ++/*211217*/ OPC_CheckInteger, 1, ++/*211219*/ OPC_CheckType, MVT::i32, ++/*211221*/ OPC_MoveParent, ++/*211222*/ OPC_MoveParent, ++/*211223*/ OPC_MoveParent, ++/*211224*/ OPC_MoveParent, ++/*211225*/ OPC_MoveChild1, ++/*211226*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*211229*/ OPC_MoveChild0, ++/*211230*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*211233*/ OPC_Scope, 24|128,15/*1944*/, /*->213180*/ // 4 children in Scope ++/*211236*/ OPC_MoveChild0, ++/*211237*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*211240*/ OPC_Scope, 65|128,2/*321*/, /*->211564*/ // 6 children in Scope ++/*211243*/ OPC_MoveChild0, ++/*211244*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*211247*/ OPC_CheckChild0Integer, 1, ++/*211249*/ OPC_CheckChild0Type, MVT::i32, ++/*211251*/ OPC_CheckChild1Integer, 1, ++/*211253*/ OPC_CheckChild1Type, MVT::i32, ++/*211255*/ OPC_CheckChild2Integer, 1, ++/*211257*/ OPC_CheckChild2Type, MVT::i32, ++/*211259*/ OPC_CheckChild3Integer, 1, ++/*211261*/ OPC_CheckChild3Type, MVT::i32, ++/*211263*/ OPC_CheckChild4Integer, 1, ++/*211265*/ OPC_CheckChild4Type, MVT::i32, ++/*211267*/ OPC_MoveChild5, ++/*211268*/ OPC_CheckInteger, 1, ++/*211270*/ OPC_CheckType, MVT::i32, ++/*211272*/ OPC_MoveParent, ++/*211273*/ OPC_MoveChild6, ++/*211274*/ OPC_CheckInteger, 1, ++/*211276*/ OPC_CheckType, MVT::i32, ++/*211278*/ OPC_MoveParent, ++/*211279*/ OPC_MoveChild7, ++/*211280*/ OPC_CheckInteger, 1, ++/*211282*/ OPC_CheckType, MVT::i32, ++/*211284*/ OPC_MoveParent, ++/*211285*/ OPC_MoveChild, 8, ++/*211287*/ OPC_CheckInteger, 1, ++/*211289*/ OPC_CheckType, MVT::i32, ++/*211291*/ OPC_MoveParent, ++/*211292*/ OPC_MoveChild, 9, ++/*211294*/ OPC_CheckInteger, 1, ++/*211296*/ OPC_CheckType, MVT::i32, ++/*211298*/ OPC_MoveParent, ++/*211299*/ OPC_MoveChild, 10, ++/*211301*/ OPC_CheckInteger, 1, ++/*211303*/ OPC_CheckType, MVT::i32, ++/*211305*/ OPC_MoveParent, ++/*211306*/ OPC_MoveChild, 11, ++/*211308*/ OPC_CheckInteger, 1, ++/*211310*/ OPC_CheckType, MVT::i32, ++/*211312*/ OPC_MoveParent, ++/*211313*/ OPC_MoveChild, 12, ++/*211315*/ OPC_CheckInteger, 1, ++/*211317*/ OPC_CheckType, MVT::i32, ++/*211319*/ OPC_MoveParent, ++/*211320*/ OPC_MoveChild, 13, ++/*211322*/ OPC_CheckInteger, 1, ++/*211324*/ OPC_CheckType, MVT::i32, ++/*211326*/ OPC_MoveParent, ++/*211327*/ OPC_MoveChild, 14, ++/*211329*/ OPC_CheckInteger, 1, ++/*211331*/ OPC_CheckType, MVT::i32, ++/*211333*/ OPC_MoveParent, ++/*211334*/ OPC_MoveChild, 15, ++/*211336*/ OPC_CheckInteger, 1, ++/*211338*/ OPC_CheckType, MVT::i32, ++/*211340*/ OPC_MoveParent, ++/*211341*/ OPC_MoveParent, ++/*211342*/ OPC_CheckChild1Same, 0, ++/*211344*/ OPC_MoveParent, ++/*211345*/ OPC_CheckChild1Same, 1, ++/*211347*/ OPC_MoveParent, ++/*211348*/ OPC_MoveChild1, ++/*211349*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*211352*/ OPC_CheckChild0Integer, 7, ++/*211354*/ OPC_CheckChild0Type, MVT::i32, ++/*211356*/ OPC_CheckChild1Integer, 7, ++/*211358*/ OPC_CheckChild1Type, MVT::i32, ++/*211360*/ OPC_CheckChild2Integer, 7, ++/*211362*/ OPC_CheckChild2Type, MVT::i32, ++/*211364*/ OPC_CheckChild3Integer, 7, ++/*211366*/ OPC_CheckChild3Type, MVT::i32, ++/*211368*/ OPC_CheckChild4Integer, 7, ++/*211370*/ OPC_CheckChild4Type, MVT::i32, ++/*211372*/ OPC_MoveChild5, ++/*211373*/ OPC_CheckInteger, 7, ++/*211375*/ OPC_CheckType, MVT::i32, ++/*211377*/ OPC_MoveParent, ++/*211378*/ OPC_MoveChild6, ++/*211379*/ OPC_CheckInteger, 7, ++/*211381*/ OPC_CheckType, MVT::i32, ++/*211383*/ OPC_MoveParent, ++/*211384*/ OPC_MoveChild7, ++/*211385*/ OPC_CheckInteger, 7, ++/*211387*/ OPC_CheckType, MVT::i32, ++/*211389*/ OPC_MoveParent, ++/*211390*/ OPC_MoveChild, 8, ++/*211392*/ OPC_CheckInteger, 7, ++/*211394*/ OPC_CheckType, MVT::i32, ++/*211396*/ OPC_MoveParent, ++/*211397*/ OPC_MoveChild, 9, ++/*211399*/ OPC_CheckInteger, 7, ++/*211401*/ OPC_CheckType, MVT::i32, ++/*211403*/ OPC_MoveParent, ++/*211404*/ OPC_MoveChild, 10, ++/*211406*/ OPC_CheckInteger, 7, ++/*211408*/ OPC_CheckType, MVT::i32, ++/*211410*/ OPC_MoveParent, ++/*211411*/ OPC_MoveChild, 11, ++/*211413*/ OPC_CheckInteger, 7, ++/*211415*/ OPC_CheckType, MVT::i32, ++/*211417*/ OPC_MoveParent, ++/*211418*/ OPC_MoveChild, 12, ++/*211420*/ OPC_CheckInteger, 7, ++/*211422*/ OPC_CheckType, MVT::i32, ++/*211424*/ OPC_MoveParent, ++/*211425*/ OPC_MoveChild, 13, ++/*211427*/ OPC_CheckInteger, 7, ++/*211429*/ OPC_CheckType, MVT::i32, ++/*211431*/ OPC_MoveParent, ++/*211432*/ OPC_MoveChild, 14, ++/*211434*/ OPC_CheckInteger, 7, ++/*211436*/ OPC_CheckType, MVT::i32, ++/*211438*/ OPC_MoveParent, ++/*211439*/ OPC_MoveChild, 15, ++/*211441*/ OPC_CheckInteger, 7, ++/*211443*/ OPC_CheckType, MVT::i32, ++/*211445*/ OPC_MoveParent, ++/*211446*/ OPC_CheckType, MVT::v16i8, ++/*211448*/ OPC_MoveParent, ++/*211449*/ OPC_MoveParent, ++/*211450*/ OPC_MoveParent, ++/*211451*/ OPC_MoveChild1, ++/*211452*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*211455*/ OPC_CheckChild0Integer, 1, ++/*211457*/ OPC_CheckChild0Type, MVT::i32, ++/*211459*/ OPC_CheckChild1Integer, 1, ++/*211461*/ OPC_CheckChild1Type, MVT::i32, ++/*211463*/ OPC_CheckChild2Integer, 1, ++/*211465*/ OPC_CheckChild2Type, MVT::i32, ++/*211467*/ OPC_CheckChild3Integer, 1, ++/*211469*/ OPC_CheckChild3Type, MVT::i32, ++/*211471*/ OPC_CheckChild4Integer, 1, ++/*211473*/ OPC_CheckChild4Type, MVT::i32, ++/*211475*/ OPC_MoveChild5, ++/*211476*/ OPC_CheckInteger, 1, ++/*211478*/ OPC_CheckType, MVT::i32, ++/*211480*/ OPC_MoveParent, ++/*211481*/ OPC_MoveChild6, ++/*211482*/ OPC_CheckInteger, 1, ++/*211484*/ OPC_CheckType, MVT::i32, ++/*211486*/ OPC_MoveParent, ++/*211487*/ OPC_MoveChild7, ++/*211488*/ OPC_CheckInteger, 1, ++/*211490*/ OPC_CheckType, MVT::i32, ++/*211492*/ OPC_MoveParent, ++/*211493*/ OPC_MoveChild, 8, ++/*211495*/ OPC_CheckInteger, 1, ++/*211497*/ OPC_CheckType, MVT::i32, ++/*211499*/ OPC_MoveParent, ++/*211500*/ OPC_MoveChild, 9, ++/*211502*/ OPC_CheckInteger, 1, ++/*211504*/ OPC_CheckType, MVT::i32, ++/*211506*/ OPC_MoveParent, ++/*211507*/ OPC_MoveChild, 10, ++/*211509*/ OPC_CheckInteger, 1, ++/*211511*/ OPC_CheckType, MVT::i32, ++/*211513*/ OPC_MoveParent, ++/*211514*/ OPC_MoveChild, 11, ++/*211516*/ OPC_CheckInteger, 1, ++/*211518*/ OPC_CheckType, MVT::i32, ++/*211520*/ OPC_MoveParent, ++/*211521*/ OPC_MoveChild, 12, ++/*211523*/ OPC_CheckInteger, 1, ++/*211525*/ OPC_CheckType, MVT::i32, ++/*211527*/ OPC_MoveParent, ++/*211528*/ OPC_MoveChild, 13, ++/*211530*/ OPC_CheckInteger, 1, ++/*211532*/ OPC_CheckType, MVT::i32, ++/*211534*/ OPC_MoveParent, ++/*211535*/ OPC_MoveChild, 14, ++/*211537*/ OPC_CheckInteger, 1, ++/*211539*/ OPC_CheckType, MVT::i32, ++/*211541*/ OPC_MoveParent, ++/*211542*/ OPC_MoveChild, 15, ++/*211544*/ OPC_CheckInteger, 1, ++/*211546*/ OPC_CheckType, MVT::i32, ++/*211548*/ OPC_MoveParent, ++/*211549*/ OPC_CheckType, MVT::v16i8, ++/*211551*/ OPC_MoveParent, ++/*211552*/ OPC_CheckType, MVT::v16i8, ++/*211554*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*211556*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a), LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*211564*/ /*Scope*/ 65|128,2/*321*/, /*->211887*/ ++/*211566*/ OPC_CheckChild0Same, 0, ++/*211568*/ OPC_MoveChild1, ++/*211569*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*211572*/ OPC_CheckChild0Integer, 1, ++/*211574*/ OPC_CheckChild0Type, MVT::i32, ++/*211576*/ OPC_CheckChild1Integer, 1, ++/*211578*/ OPC_CheckChild1Type, MVT::i32, ++/*211580*/ OPC_CheckChild2Integer, 1, ++/*211582*/ OPC_CheckChild2Type, MVT::i32, ++/*211584*/ OPC_CheckChild3Integer, 1, ++/*211586*/ OPC_CheckChild3Type, MVT::i32, ++/*211588*/ OPC_CheckChild4Integer, 1, ++/*211590*/ OPC_CheckChild4Type, MVT::i32, ++/*211592*/ OPC_MoveChild5, ++/*211593*/ OPC_CheckInteger, 1, ++/*211595*/ OPC_CheckType, MVT::i32, ++/*211597*/ OPC_MoveParent, ++/*211598*/ OPC_MoveChild6, ++/*211599*/ OPC_CheckInteger, 1, ++/*211601*/ OPC_CheckType, MVT::i32, ++/*211603*/ OPC_MoveParent, ++/*211604*/ OPC_MoveChild7, ++/*211605*/ OPC_CheckInteger, 1, ++/*211607*/ OPC_CheckType, MVT::i32, ++/*211609*/ OPC_MoveParent, ++/*211610*/ OPC_MoveChild, 8, ++/*211612*/ OPC_CheckInteger, 1, ++/*211614*/ OPC_CheckType, MVT::i32, ++/*211616*/ OPC_MoveParent, ++/*211617*/ OPC_MoveChild, 9, ++/*211619*/ OPC_CheckInteger, 1, ++/*211621*/ OPC_CheckType, MVT::i32, ++/*211623*/ OPC_MoveParent, ++/*211624*/ OPC_MoveChild, 10, ++/*211626*/ OPC_CheckInteger, 1, ++/*211628*/ OPC_CheckType, MVT::i32, ++/*211630*/ OPC_MoveParent, ++/*211631*/ OPC_MoveChild, 11, ++/*211633*/ OPC_CheckInteger, 1, ++/*211635*/ OPC_CheckType, MVT::i32, ++/*211637*/ OPC_MoveParent, ++/*211638*/ OPC_MoveChild, 12, ++/*211640*/ OPC_CheckInteger, 1, ++/*211642*/ OPC_CheckType, MVT::i32, ++/*211644*/ OPC_MoveParent, ++/*211645*/ OPC_MoveChild, 13, ++/*211647*/ OPC_CheckInteger, 1, ++/*211649*/ OPC_CheckType, MVT::i32, ++/*211651*/ OPC_MoveParent, ++/*211652*/ OPC_MoveChild, 14, ++/*211654*/ OPC_CheckInteger, 1, ++/*211656*/ OPC_CheckType, MVT::i32, ++/*211658*/ OPC_MoveParent, ++/*211659*/ OPC_MoveChild, 15, ++/*211661*/ OPC_CheckInteger, 1, ++/*211663*/ OPC_CheckType, MVT::i32, ++/*211665*/ OPC_MoveParent, ++/*211666*/ OPC_MoveParent, ++/*211667*/ OPC_MoveParent, ++/*211668*/ OPC_CheckChild1Same, 1, ++/*211670*/ OPC_MoveParent, ++/*211671*/ OPC_MoveChild1, ++/*211672*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*211675*/ OPC_CheckChild0Integer, 7, ++/*211677*/ OPC_CheckChild0Type, MVT::i32, ++/*211679*/ OPC_CheckChild1Integer, 7, ++/*211681*/ OPC_CheckChild1Type, MVT::i32, ++/*211683*/ OPC_CheckChild2Integer, 7, ++/*211685*/ OPC_CheckChild2Type, MVT::i32, ++/*211687*/ OPC_CheckChild3Integer, 7, ++/*211689*/ OPC_CheckChild3Type, MVT::i32, ++/*211691*/ OPC_CheckChild4Integer, 7, ++/*211693*/ OPC_CheckChild4Type, MVT::i32, ++/*211695*/ OPC_MoveChild5, ++/*211696*/ OPC_CheckInteger, 7, ++/*211698*/ OPC_CheckType, MVT::i32, ++/*211700*/ OPC_MoveParent, ++/*211701*/ OPC_MoveChild6, ++/*211702*/ OPC_CheckInteger, 7, ++/*211704*/ OPC_CheckType, MVT::i32, ++/*211706*/ OPC_MoveParent, ++/*211707*/ OPC_MoveChild7, ++/*211708*/ OPC_CheckInteger, 7, ++/*211710*/ OPC_CheckType, MVT::i32, ++/*211712*/ OPC_MoveParent, ++/*211713*/ OPC_MoveChild, 8, ++/*211715*/ OPC_CheckInteger, 7, ++/*211717*/ OPC_CheckType, MVT::i32, ++/*211719*/ OPC_MoveParent, ++/*211720*/ OPC_MoveChild, 9, ++/*211722*/ OPC_CheckInteger, 7, ++/*211724*/ OPC_CheckType, MVT::i32, ++/*211726*/ OPC_MoveParent, ++/*211727*/ OPC_MoveChild, 10, ++/*211729*/ OPC_CheckInteger, 7, ++/*211731*/ OPC_CheckType, MVT::i32, ++/*211733*/ OPC_MoveParent, ++/*211734*/ OPC_MoveChild, 11, ++/*211736*/ OPC_CheckInteger, 7, ++/*211738*/ OPC_CheckType, MVT::i32, ++/*211740*/ OPC_MoveParent, ++/*211741*/ OPC_MoveChild, 12, ++/*211743*/ OPC_CheckInteger, 7, ++/*211745*/ OPC_CheckType, MVT::i32, ++/*211747*/ OPC_MoveParent, ++/*211748*/ OPC_MoveChild, 13, ++/*211750*/ OPC_CheckInteger, 7, ++/*211752*/ OPC_CheckType, MVT::i32, ++/*211754*/ OPC_MoveParent, ++/*211755*/ OPC_MoveChild, 14, ++/*211757*/ OPC_CheckInteger, 7, ++/*211759*/ OPC_CheckType, MVT::i32, ++/*211761*/ OPC_MoveParent, ++/*211762*/ OPC_MoveChild, 15, ++/*211764*/ OPC_CheckInteger, 7, ++/*211766*/ OPC_CheckType, MVT::i32, ++/*211768*/ OPC_MoveParent, ++/*211769*/ OPC_CheckType, MVT::v16i8, ++/*211771*/ OPC_MoveParent, ++/*211772*/ OPC_MoveParent, ++/*211773*/ OPC_MoveParent, ++/*211774*/ OPC_MoveChild1, ++/*211775*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*211778*/ OPC_CheckChild0Integer, 1, ++/*211780*/ OPC_CheckChild0Type, MVT::i32, ++/*211782*/ OPC_CheckChild1Integer, 1, ++/*211784*/ OPC_CheckChild1Type, MVT::i32, ++/*211786*/ OPC_CheckChild2Integer, 1, ++/*211788*/ OPC_CheckChild2Type, MVT::i32, ++/*211790*/ OPC_CheckChild3Integer, 1, ++/*211792*/ OPC_CheckChild3Type, MVT::i32, ++/*211794*/ OPC_CheckChild4Integer, 1, ++/*211796*/ OPC_CheckChild4Type, MVT::i32, ++/*211798*/ OPC_MoveChild5, ++/*211799*/ OPC_CheckInteger, 1, ++/*211801*/ OPC_CheckType, MVT::i32, ++/*211803*/ OPC_MoveParent, ++/*211804*/ OPC_MoveChild6, ++/*211805*/ OPC_CheckInteger, 1, ++/*211807*/ OPC_CheckType, MVT::i32, ++/*211809*/ OPC_MoveParent, ++/*211810*/ OPC_MoveChild7, ++/*211811*/ OPC_CheckInteger, 1, ++/*211813*/ OPC_CheckType, MVT::i32, ++/*211815*/ OPC_MoveParent, ++/*211816*/ OPC_MoveChild, 8, ++/*211818*/ OPC_CheckInteger, 1, ++/*211820*/ OPC_CheckType, MVT::i32, ++/*211822*/ OPC_MoveParent, ++/*211823*/ OPC_MoveChild, 9, ++/*211825*/ OPC_CheckInteger, 1, ++/*211827*/ OPC_CheckType, MVT::i32, ++/*211829*/ OPC_MoveParent, ++/*211830*/ OPC_MoveChild, 10, ++/*211832*/ OPC_CheckInteger, 1, ++/*211834*/ OPC_CheckType, MVT::i32, ++/*211836*/ OPC_MoveParent, ++/*211837*/ OPC_MoveChild, 11, ++/*211839*/ OPC_CheckInteger, 1, ++/*211841*/ OPC_CheckType, MVT::i32, ++/*211843*/ OPC_MoveParent, ++/*211844*/ OPC_MoveChild, 12, ++/*211846*/ OPC_CheckInteger, 1, ++/*211848*/ OPC_CheckType, MVT::i32, ++/*211850*/ OPC_MoveParent, ++/*211851*/ OPC_MoveChild, 13, ++/*211853*/ OPC_CheckInteger, 1, ++/*211855*/ OPC_CheckType, MVT::i32, ++/*211857*/ OPC_MoveParent, ++/*211858*/ OPC_MoveChild, 14, ++/*211860*/ OPC_CheckInteger, 1, ++/*211862*/ OPC_CheckType, MVT::i32, ++/*211864*/ OPC_MoveParent, ++/*211865*/ OPC_MoveChild, 15, ++/*211867*/ OPC_CheckInteger, 1, ++/*211869*/ OPC_CheckType, MVT::i32, ++/*211871*/ OPC_MoveParent, ++/*211872*/ OPC_CheckType, MVT::v16i8, ++/*211874*/ OPC_MoveParent, ++/*211875*/ OPC_CheckType, MVT::v16i8, ++/*211877*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*211879*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*211887*/ /*Scope*/ 65|128,2/*321*/, /*->212210*/ ++/*211889*/ OPC_MoveChild0, ++/*211890*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*211893*/ OPC_CheckChild0Integer, 1, ++/*211895*/ OPC_CheckChild0Type, MVT::i32, ++/*211897*/ OPC_CheckChild1Integer, 1, ++/*211899*/ OPC_CheckChild1Type, MVT::i32, ++/*211901*/ OPC_CheckChild2Integer, 1, ++/*211903*/ OPC_CheckChild2Type, MVT::i32, ++/*211905*/ OPC_CheckChild3Integer, 1, ++/*211907*/ OPC_CheckChild3Type, MVT::i32, ++/*211909*/ OPC_CheckChild4Integer, 1, ++/*211911*/ OPC_CheckChild4Type, MVT::i32, ++/*211913*/ OPC_MoveChild5, ++/*211914*/ OPC_CheckInteger, 1, ++/*211916*/ OPC_CheckType, MVT::i32, ++/*211918*/ OPC_MoveParent, ++/*211919*/ OPC_MoveChild6, ++/*211920*/ OPC_CheckInteger, 1, ++/*211922*/ OPC_CheckType, MVT::i32, ++/*211924*/ OPC_MoveParent, ++/*211925*/ OPC_MoveChild7, ++/*211926*/ OPC_CheckInteger, 1, ++/*211928*/ OPC_CheckType, MVT::i32, ++/*211930*/ OPC_MoveParent, ++/*211931*/ OPC_MoveChild, 8, ++/*211933*/ OPC_CheckInteger, 1, ++/*211935*/ OPC_CheckType, MVT::i32, ++/*211937*/ OPC_MoveParent, ++/*211938*/ OPC_MoveChild, 9, ++/*211940*/ OPC_CheckInteger, 1, ++/*211942*/ OPC_CheckType, MVT::i32, ++/*211944*/ OPC_MoveParent, ++/*211945*/ OPC_MoveChild, 10, ++/*211947*/ OPC_CheckInteger, 1, ++/*211949*/ OPC_CheckType, MVT::i32, ++/*211951*/ OPC_MoveParent, ++/*211952*/ OPC_MoveChild, 11, ++/*211954*/ OPC_CheckInteger, 1, ++/*211956*/ OPC_CheckType, MVT::i32, ++/*211958*/ OPC_MoveParent, ++/*211959*/ OPC_MoveChild, 12, ++/*211961*/ OPC_CheckInteger, 1, ++/*211963*/ OPC_CheckType, MVT::i32, ++/*211965*/ OPC_MoveParent, ++/*211966*/ OPC_MoveChild, 13, ++/*211968*/ OPC_CheckInteger, 1, ++/*211970*/ OPC_CheckType, MVT::i32, ++/*211972*/ OPC_MoveParent, ++/*211973*/ OPC_MoveChild, 14, ++/*211975*/ OPC_CheckInteger, 1, ++/*211977*/ OPC_CheckType, MVT::i32, ++/*211979*/ OPC_MoveParent, ++/*211980*/ OPC_MoveChild, 15, ++/*211982*/ OPC_CheckInteger, 1, ++/*211984*/ OPC_CheckType, MVT::i32, ++/*211986*/ OPC_MoveParent, ++/*211987*/ OPC_MoveParent, ++/*211988*/ OPC_CheckChild1Same, 1, ++/*211990*/ OPC_MoveParent, ++/*211991*/ OPC_CheckChild1Same, 0, ++/*211993*/ OPC_MoveParent, ++/*211994*/ OPC_MoveChild1, ++/*211995*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*211998*/ OPC_CheckChild0Integer, 7, ++/*212000*/ OPC_CheckChild0Type, MVT::i32, ++/*212002*/ OPC_CheckChild1Integer, 7, ++/*212004*/ OPC_CheckChild1Type, MVT::i32, ++/*212006*/ OPC_CheckChild2Integer, 7, ++/*212008*/ OPC_CheckChild2Type, MVT::i32, ++/*212010*/ OPC_CheckChild3Integer, 7, ++/*212012*/ OPC_CheckChild3Type, MVT::i32, ++/*212014*/ OPC_CheckChild4Integer, 7, ++/*212016*/ OPC_CheckChild4Type, MVT::i32, ++/*212018*/ OPC_MoveChild5, ++/*212019*/ OPC_CheckInteger, 7, ++/*212021*/ OPC_CheckType, MVT::i32, ++/*212023*/ OPC_MoveParent, ++/*212024*/ OPC_MoveChild6, ++/*212025*/ OPC_CheckInteger, 7, ++/*212027*/ OPC_CheckType, MVT::i32, ++/*212029*/ OPC_MoveParent, ++/*212030*/ OPC_MoveChild7, ++/*212031*/ OPC_CheckInteger, 7, ++/*212033*/ OPC_CheckType, MVT::i32, ++/*212035*/ OPC_MoveParent, ++/*212036*/ OPC_MoveChild, 8, ++/*212038*/ OPC_CheckInteger, 7, ++/*212040*/ OPC_CheckType, MVT::i32, ++/*212042*/ OPC_MoveParent, ++/*212043*/ OPC_MoveChild, 9, ++/*212045*/ OPC_CheckInteger, 7, ++/*212047*/ OPC_CheckType, MVT::i32, ++/*212049*/ OPC_MoveParent, ++/*212050*/ OPC_MoveChild, 10, ++/*212052*/ OPC_CheckInteger, 7, ++/*212054*/ OPC_CheckType, MVT::i32, ++/*212056*/ OPC_MoveParent, ++/*212057*/ OPC_MoveChild, 11, ++/*212059*/ OPC_CheckInteger, 7, ++/*212061*/ OPC_CheckType, MVT::i32, ++/*212063*/ OPC_MoveParent, ++/*212064*/ OPC_MoveChild, 12, ++/*212066*/ OPC_CheckInteger, 7, ++/*212068*/ OPC_CheckType, MVT::i32, ++/*212070*/ OPC_MoveParent, ++/*212071*/ OPC_MoveChild, 13, ++/*212073*/ OPC_CheckInteger, 7, ++/*212075*/ OPC_CheckType, MVT::i32, ++/*212077*/ OPC_MoveParent, ++/*212078*/ OPC_MoveChild, 14, ++/*212080*/ OPC_CheckInteger, 7, ++/*212082*/ OPC_CheckType, MVT::i32, ++/*212084*/ OPC_MoveParent, ++/*212085*/ OPC_MoveChild, 15, ++/*212087*/ OPC_CheckInteger, 7, ++/*212089*/ OPC_CheckType, MVT::i32, ++/*212091*/ OPC_MoveParent, ++/*212092*/ OPC_CheckType, MVT::v16i8, ++/*212094*/ OPC_MoveParent, ++/*212095*/ OPC_MoveParent, ++/*212096*/ OPC_MoveParent, ++/*212097*/ OPC_MoveChild1, ++/*212098*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*212101*/ OPC_CheckChild0Integer, 1, ++/*212103*/ OPC_CheckChild0Type, MVT::i32, ++/*212105*/ OPC_CheckChild1Integer, 1, ++/*212107*/ OPC_CheckChild1Type, MVT::i32, ++/*212109*/ OPC_CheckChild2Integer, 1, ++/*212111*/ OPC_CheckChild2Type, MVT::i32, ++/*212113*/ OPC_CheckChild3Integer, 1, ++/*212115*/ OPC_CheckChild3Type, MVT::i32, ++/*212117*/ OPC_CheckChild4Integer, 1, ++/*212119*/ OPC_CheckChild4Type, MVT::i32, ++/*212121*/ OPC_MoveChild5, ++/*212122*/ OPC_CheckInteger, 1, ++/*212124*/ OPC_CheckType, MVT::i32, ++/*212126*/ OPC_MoveParent, ++/*212127*/ OPC_MoveChild6, ++/*212128*/ OPC_CheckInteger, 1, ++/*212130*/ OPC_CheckType, MVT::i32, ++/*212132*/ OPC_MoveParent, ++/*212133*/ OPC_MoveChild7, ++/*212134*/ OPC_CheckInteger, 1, ++/*212136*/ OPC_CheckType, MVT::i32, ++/*212138*/ OPC_MoveParent, ++/*212139*/ OPC_MoveChild, 8, ++/*212141*/ OPC_CheckInteger, 1, ++/*212143*/ OPC_CheckType, MVT::i32, ++/*212145*/ OPC_MoveParent, ++/*212146*/ OPC_MoveChild, 9, ++/*212148*/ OPC_CheckInteger, 1, ++/*212150*/ OPC_CheckType, MVT::i32, ++/*212152*/ OPC_MoveParent, ++/*212153*/ OPC_MoveChild, 10, ++/*212155*/ OPC_CheckInteger, 1, ++/*212157*/ OPC_CheckType, MVT::i32, ++/*212159*/ OPC_MoveParent, ++/*212160*/ OPC_MoveChild, 11, ++/*212162*/ OPC_CheckInteger, 1, ++/*212164*/ OPC_CheckType, MVT::i32, ++/*212166*/ OPC_MoveParent, ++/*212167*/ OPC_MoveChild, 12, ++/*212169*/ OPC_CheckInteger, 1, ++/*212171*/ OPC_CheckType, MVT::i32, ++/*212173*/ OPC_MoveParent, ++/*212174*/ OPC_MoveChild, 13, ++/*212176*/ OPC_CheckInteger, 1, ++/*212178*/ OPC_CheckType, MVT::i32, ++/*212180*/ OPC_MoveParent, ++/*212181*/ OPC_MoveChild, 14, ++/*212183*/ OPC_CheckInteger, 1, ++/*212185*/ OPC_CheckType, MVT::i32, ++/*212187*/ OPC_MoveParent, ++/*212188*/ OPC_MoveChild, 15, ++/*212190*/ OPC_CheckInteger, 1, ++/*212192*/ OPC_CheckType, MVT::i32, ++/*212194*/ OPC_MoveParent, ++/*212195*/ OPC_CheckType, MVT::v16i8, ++/*212197*/ OPC_MoveParent, ++/*212198*/ OPC_CheckType, MVT::v16i8, ++/*212200*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*212202*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b), LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*212210*/ /*Scope*/ 65|128,2/*321*/, /*->212533*/ ++/*212212*/ OPC_CheckChild0Same, 1, ++/*212214*/ OPC_MoveChild1, ++/*212215*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*212218*/ OPC_CheckChild0Integer, 1, ++/*212220*/ OPC_CheckChild0Type, MVT::i32, ++/*212222*/ OPC_CheckChild1Integer, 1, ++/*212224*/ OPC_CheckChild1Type, MVT::i32, ++/*212226*/ OPC_CheckChild2Integer, 1, ++/*212228*/ OPC_CheckChild2Type, MVT::i32, ++/*212230*/ OPC_CheckChild3Integer, 1, ++/*212232*/ OPC_CheckChild3Type, MVT::i32, ++/*212234*/ OPC_CheckChild4Integer, 1, ++/*212236*/ OPC_CheckChild4Type, MVT::i32, ++/*212238*/ OPC_MoveChild5, ++/*212239*/ OPC_CheckInteger, 1, ++/*212241*/ OPC_CheckType, MVT::i32, ++/*212243*/ OPC_MoveParent, ++/*212244*/ OPC_MoveChild6, ++/*212245*/ OPC_CheckInteger, 1, ++/*212247*/ OPC_CheckType, MVT::i32, ++/*212249*/ OPC_MoveParent, ++/*212250*/ OPC_MoveChild7, ++/*212251*/ OPC_CheckInteger, 1, ++/*212253*/ OPC_CheckType, MVT::i32, ++/*212255*/ OPC_MoveParent, ++/*212256*/ OPC_MoveChild, 8, ++/*212258*/ OPC_CheckInteger, 1, ++/*212260*/ OPC_CheckType, MVT::i32, ++/*212262*/ OPC_MoveParent, ++/*212263*/ OPC_MoveChild, 9, ++/*212265*/ OPC_CheckInteger, 1, ++/*212267*/ OPC_CheckType, MVT::i32, ++/*212269*/ OPC_MoveParent, ++/*212270*/ OPC_MoveChild, 10, ++/*212272*/ OPC_CheckInteger, 1, ++/*212274*/ OPC_CheckType, MVT::i32, ++/*212276*/ OPC_MoveParent, ++/*212277*/ OPC_MoveChild, 11, ++/*212279*/ OPC_CheckInteger, 1, ++/*212281*/ OPC_CheckType, MVT::i32, ++/*212283*/ OPC_MoveParent, ++/*212284*/ OPC_MoveChild, 12, ++/*212286*/ OPC_CheckInteger, 1, ++/*212288*/ OPC_CheckType, MVT::i32, ++/*212290*/ OPC_MoveParent, ++/*212291*/ OPC_MoveChild, 13, ++/*212293*/ OPC_CheckInteger, 1, ++/*212295*/ OPC_CheckType, MVT::i32, ++/*212297*/ OPC_MoveParent, ++/*212298*/ OPC_MoveChild, 14, ++/*212300*/ OPC_CheckInteger, 1, ++/*212302*/ OPC_CheckType, MVT::i32, ++/*212304*/ OPC_MoveParent, ++/*212305*/ OPC_MoveChild, 15, ++/*212307*/ OPC_CheckInteger, 1, ++/*212309*/ OPC_CheckType, MVT::i32, ++/*212311*/ OPC_MoveParent, ++/*212312*/ OPC_MoveParent, ++/*212313*/ OPC_MoveParent, ++/*212314*/ OPC_CheckChild1Same, 0, ++/*212316*/ OPC_MoveParent, ++/*212317*/ OPC_MoveChild1, ++/*212318*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*212321*/ OPC_CheckChild0Integer, 7, ++/*212323*/ OPC_CheckChild0Type, MVT::i32, ++/*212325*/ OPC_CheckChild1Integer, 7, ++/*212327*/ OPC_CheckChild1Type, MVT::i32, ++/*212329*/ OPC_CheckChild2Integer, 7, ++/*212331*/ OPC_CheckChild2Type, MVT::i32, ++/*212333*/ OPC_CheckChild3Integer, 7, ++/*212335*/ OPC_CheckChild3Type, MVT::i32, ++/*212337*/ OPC_CheckChild4Integer, 7, ++/*212339*/ OPC_CheckChild4Type, MVT::i32, ++/*212341*/ OPC_MoveChild5, ++/*212342*/ OPC_CheckInteger, 7, ++/*212344*/ OPC_CheckType, MVT::i32, ++/*212346*/ OPC_MoveParent, ++/*212347*/ OPC_MoveChild6, ++/*212348*/ OPC_CheckInteger, 7, ++/*212350*/ OPC_CheckType, MVT::i32, ++/*212352*/ OPC_MoveParent, ++/*212353*/ OPC_MoveChild7, ++/*212354*/ OPC_CheckInteger, 7, ++/*212356*/ OPC_CheckType, MVT::i32, ++/*212358*/ OPC_MoveParent, ++/*212359*/ OPC_MoveChild, 8, ++/*212361*/ OPC_CheckInteger, 7, ++/*212363*/ OPC_CheckType, MVT::i32, ++/*212365*/ OPC_MoveParent, ++/*212366*/ OPC_MoveChild, 9, ++/*212368*/ OPC_CheckInteger, 7, ++/*212370*/ OPC_CheckType, MVT::i32, ++/*212372*/ OPC_MoveParent, ++/*212373*/ OPC_MoveChild, 10, ++/*212375*/ OPC_CheckInteger, 7, ++/*212377*/ OPC_CheckType, MVT::i32, ++/*212379*/ OPC_MoveParent, ++/*212380*/ OPC_MoveChild, 11, ++/*212382*/ OPC_CheckInteger, 7, ++/*212384*/ OPC_CheckType, MVT::i32, ++/*212386*/ OPC_MoveParent, ++/*212387*/ OPC_MoveChild, 12, ++/*212389*/ OPC_CheckInteger, 7, ++/*212391*/ OPC_CheckType, MVT::i32, ++/*212393*/ OPC_MoveParent, ++/*212394*/ OPC_MoveChild, 13, ++/*212396*/ OPC_CheckInteger, 7, ++/*212398*/ OPC_CheckType, MVT::i32, ++/*212400*/ OPC_MoveParent, ++/*212401*/ OPC_MoveChild, 14, ++/*212403*/ OPC_CheckInteger, 7, ++/*212405*/ OPC_CheckType, MVT::i32, ++/*212407*/ OPC_MoveParent, ++/*212408*/ OPC_MoveChild, 15, ++/*212410*/ OPC_CheckInteger, 7, ++/*212412*/ OPC_CheckType, MVT::i32, ++/*212414*/ OPC_MoveParent, ++/*212415*/ OPC_CheckType, MVT::v16i8, ++/*212417*/ OPC_MoveParent, ++/*212418*/ OPC_MoveParent, ++/*212419*/ OPC_MoveParent, ++/*212420*/ OPC_MoveChild1, ++/*212421*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*212424*/ OPC_CheckChild0Integer, 1, ++/*212426*/ OPC_CheckChild0Type, MVT::i32, ++/*212428*/ OPC_CheckChild1Integer, 1, ++/*212430*/ OPC_CheckChild1Type, MVT::i32, ++/*212432*/ OPC_CheckChild2Integer, 1, ++/*212434*/ OPC_CheckChild2Type, MVT::i32, ++/*212436*/ OPC_CheckChild3Integer, 1, ++/*212438*/ OPC_CheckChild3Type, MVT::i32, ++/*212440*/ OPC_CheckChild4Integer, 1, ++/*212442*/ OPC_CheckChild4Type, MVT::i32, ++/*212444*/ OPC_MoveChild5, ++/*212445*/ OPC_CheckInteger, 1, ++/*212447*/ OPC_CheckType, MVT::i32, ++/*212449*/ OPC_MoveParent, ++/*212450*/ OPC_MoveChild6, ++/*212451*/ OPC_CheckInteger, 1, ++/*212453*/ OPC_CheckType, MVT::i32, ++/*212455*/ OPC_MoveParent, ++/*212456*/ OPC_MoveChild7, ++/*212457*/ OPC_CheckInteger, 1, ++/*212459*/ OPC_CheckType, MVT::i32, ++/*212461*/ OPC_MoveParent, ++/*212462*/ OPC_MoveChild, 8, ++/*212464*/ OPC_CheckInteger, 1, ++/*212466*/ OPC_CheckType, MVT::i32, ++/*212468*/ OPC_MoveParent, ++/*212469*/ OPC_MoveChild, 9, ++/*212471*/ OPC_CheckInteger, 1, ++/*212473*/ OPC_CheckType, MVT::i32, ++/*212475*/ OPC_MoveParent, ++/*212476*/ OPC_MoveChild, 10, ++/*212478*/ OPC_CheckInteger, 1, ++/*212480*/ OPC_CheckType, MVT::i32, ++/*212482*/ OPC_MoveParent, ++/*212483*/ OPC_MoveChild, 11, ++/*212485*/ OPC_CheckInteger, 1, ++/*212487*/ OPC_CheckType, MVT::i32, ++/*212489*/ OPC_MoveParent, ++/*212490*/ OPC_MoveChild, 12, ++/*212492*/ OPC_CheckInteger, 1, ++/*212494*/ OPC_CheckType, MVT::i32, ++/*212496*/ OPC_MoveParent, ++/*212497*/ OPC_MoveChild, 13, ++/*212499*/ OPC_CheckInteger, 1, ++/*212501*/ OPC_CheckType, MVT::i32, ++/*212503*/ OPC_MoveParent, ++/*212504*/ OPC_MoveChild, 14, ++/*212506*/ OPC_CheckInteger, 1, ++/*212508*/ OPC_CheckType, MVT::i32, ++/*212510*/ OPC_MoveParent, ++/*212511*/ OPC_MoveChild, 15, ++/*212513*/ OPC_CheckInteger, 1, ++/*212515*/ OPC_CheckType, MVT::i32, ++/*212517*/ OPC_MoveParent, ++/*212518*/ OPC_CheckType, MVT::v16i8, ++/*212520*/ OPC_MoveParent, ++/*212521*/ OPC_CheckType, MVT::v16i8, ++/*212523*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*212525*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*212533*/ /*Scope*/ 65|128,2/*321*/, /*->212856*/ ++/*212535*/ OPC_CheckChild0Same, 0, ++/*212537*/ OPC_CheckChild1Same, 1, ++/*212539*/ OPC_MoveParent, ++/*212540*/ OPC_MoveChild1, ++/*212541*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*212544*/ OPC_CheckChild0Integer, 1, ++/*212546*/ OPC_CheckChild0Type, MVT::i32, ++/*212548*/ OPC_CheckChild1Integer, 1, ++/*212550*/ OPC_CheckChild1Type, MVT::i32, ++/*212552*/ OPC_CheckChild2Integer, 1, ++/*212554*/ OPC_CheckChild2Type, MVT::i32, ++/*212556*/ OPC_CheckChild3Integer, 1, ++/*212558*/ OPC_CheckChild3Type, MVT::i32, ++/*212560*/ OPC_CheckChild4Integer, 1, ++/*212562*/ OPC_CheckChild4Type, MVT::i32, ++/*212564*/ OPC_MoveChild5, ++/*212565*/ OPC_CheckInteger, 1, ++/*212567*/ OPC_CheckType, MVT::i32, ++/*212569*/ OPC_MoveParent, ++/*212570*/ OPC_MoveChild6, ++/*212571*/ OPC_CheckInteger, 1, ++/*212573*/ OPC_CheckType, MVT::i32, ++/*212575*/ OPC_MoveParent, ++/*212576*/ OPC_MoveChild7, ++/*212577*/ OPC_CheckInteger, 1, ++/*212579*/ OPC_CheckType, MVT::i32, ++/*212581*/ OPC_MoveParent, ++/*212582*/ OPC_MoveChild, 8, ++/*212584*/ OPC_CheckInteger, 1, ++/*212586*/ OPC_CheckType, MVT::i32, ++/*212588*/ OPC_MoveParent, ++/*212589*/ OPC_MoveChild, 9, ++/*212591*/ OPC_CheckInteger, 1, ++/*212593*/ OPC_CheckType, MVT::i32, ++/*212595*/ OPC_MoveParent, ++/*212596*/ OPC_MoveChild, 10, ++/*212598*/ OPC_CheckInteger, 1, ++/*212600*/ OPC_CheckType, MVT::i32, ++/*212602*/ OPC_MoveParent, ++/*212603*/ OPC_MoveChild, 11, ++/*212605*/ OPC_CheckInteger, 1, ++/*212607*/ OPC_CheckType, MVT::i32, ++/*212609*/ OPC_MoveParent, ++/*212610*/ OPC_MoveChild, 12, ++/*212612*/ OPC_CheckInteger, 1, ++/*212614*/ OPC_CheckType, MVT::i32, ++/*212616*/ OPC_MoveParent, ++/*212617*/ OPC_MoveChild, 13, ++/*212619*/ OPC_CheckInteger, 1, ++/*212621*/ OPC_CheckType, MVT::i32, ++/*212623*/ OPC_MoveParent, ++/*212624*/ OPC_MoveChild, 14, ++/*212626*/ OPC_CheckInteger, 1, ++/*212628*/ OPC_CheckType, MVT::i32, ++/*212630*/ OPC_MoveParent, ++/*212631*/ OPC_MoveChild, 15, ++/*212633*/ OPC_CheckInteger, 1, ++/*212635*/ OPC_CheckType, MVT::i32, ++/*212637*/ OPC_MoveParent, ++/*212638*/ OPC_MoveParent, ++/*212639*/ OPC_MoveParent, ++/*212640*/ OPC_MoveChild1, ++/*212641*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*212644*/ OPC_CheckChild0Integer, 7, ++/*212646*/ OPC_CheckChild0Type, MVT::i32, ++/*212648*/ OPC_CheckChild1Integer, 7, ++/*212650*/ OPC_CheckChild1Type, MVT::i32, ++/*212652*/ OPC_CheckChild2Integer, 7, ++/*212654*/ OPC_CheckChild2Type, MVT::i32, ++/*212656*/ OPC_CheckChild3Integer, 7, ++/*212658*/ OPC_CheckChild3Type, MVT::i32, ++/*212660*/ OPC_CheckChild4Integer, 7, ++/*212662*/ OPC_CheckChild4Type, MVT::i32, ++/*212664*/ OPC_MoveChild5, ++/*212665*/ OPC_CheckInteger, 7, ++/*212667*/ OPC_CheckType, MVT::i32, ++/*212669*/ OPC_MoveParent, ++/*212670*/ OPC_MoveChild6, ++/*212671*/ OPC_CheckInteger, 7, ++/*212673*/ OPC_CheckType, MVT::i32, ++/*212675*/ OPC_MoveParent, ++/*212676*/ OPC_MoveChild7, ++/*212677*/ OPC_CheckInteger, 7, ++/*212679*/ OPC_CheckType, MVT::i32, ++/*212681*/ OPC_MoveParent, ++/*212682*/ OPC_MoveChild, 8, ++/*212684*/ OPC_CheckInteger, 7, ++/*212686*/ OPC_CheckType, MVT::i32, ++/*212688*/ OPC_MoveParent, ++/*212689*/ OPC_MoveChild, 9, ++/*212691*/ OPC_CheckInteger, 7, ++/*212693*/ OPC_CheckType, MVT::i32, ++/*212695*/ OPC_MoveParent, ++/*212696*/ OPC_MoveChild, 10, ++/*212698*/ OPC_CheckInteger, 7, ++/*212700*/ OPC_CheckType, MVT::i32, ++/*212702*/ OPC_MoveParent, ++/*212703*/ OPC_MoveChild, 11, ++/*212705*/ OPC_CheckInteger, 7, ++/*212707*/ OPC_CheckType, MVT::i32, ++/*212709*/ OPC_MoveParent, ++/*212710*/ OPC_MoveChild, 12, ++/*212712*/ OPC_CheckInteger, 7, ++/*212714*/ OPC_CheckType, MVT::i32, ++/*212716*/ OPC_MoveParent, ++/*212717*/ OPC_MoveChild, 13, ++/*212719*/ OPC_CheckInteger, 7, ++/*212721*/ OPC_CheckType, MVT::i32, ++/*212723*/ OPC_MoveParent, ++/*212724*/ OPC_MoveChild, 14, ++/*212726*/ OPC_CheckInteger, 7, ++/*212728*/ OPC_CheckType, MVT::i32, ++/*212730*/ OPC_MoveParent, ++/*212731*/ OPC_MoveChild, 15, ++/*212733*/ OPC_CheckInteger, 7, ++/*212735*/ OPC_CheckType, MVT::i32, ++/*212737*/ OPC_MoveParent, ++/*212738*/ OPC_CheckType, MVT::v16i8, ++/*212740*/ OPC_MoveParent, ++/*212741*/ OPC_MoveParent, ++/*212742*/ OPC_MoveParent, ++/*212743*/ OPC_MoveChild1, ++/*212744*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*212747*/ OPC_CheckChild0Integer, 1, ++/*212749*/ OPC_CheckChild0Type, MVT::i32, ++/*212751*/ OPC_CheckChild1Integer, 1, ++/*212753*/ OPC_CheckChild1Type, MVT::i32, ++/*212755*/ OPC_CheckChild2Integer, 1, ++/*212757*/ OPC_CheckChild2Type, MVT::i32, ++/*212759*/ OPC_CheckChild3Integer, 1, ++/*212761*/ OPC_CheckChild3Type, MVT::i32, ++/*212763*/ OPC_CheckChild4Integer, 1, ++/*212765*/ OPC_CheckChild4Type, MVT::i32, ++/*212767*/ OPC_MoveChild5, ++/*212768*/ OPC_CheckInteger, 1, ++/*212770*/ OPC_CheckType, MVT::i32, ++/*212772*/ OPC_MoveParent, ++/*212773*/ OPC_MoveChild6, ++/*212774*/ OPC_CheckInteger, 1, ++/*212776*/ OPC_CheckType, MVT::i32, ++/*212778*/ OPC_MoveParent, ++/*212779*/ OPC_MoveChild7, ++/*212780*/ OPC_CheckInteger, 1, ++/*212782*/ OPC_CheckType, MVT::i32, ++/*212784*/ OPC_MoveParent, ++/*212785*/ OPC_MoveChild, 8, ++/*212787*/ OPC_CheckInteger, 1, ++/*212789*/ OPC_CheckType, MVT::i32, ++/*212791*/ OPC_MoveParent, ++/*212792*/ OPC_MoveChild, 9, ++/*212794*/ OPC_CheckInteger, 1, ++/*212796*/ OPC_CheckType, MVT::i32, ++/*212798*/ OPC_MoveParent, ++/*212799*/ OPC_MoveChild, 10, ++/*212801*/ OPC_CheckInteger, 1, ++/*212803*/ OPC_CheckType, MVT::i32, ++/*212805*/ OPC_MoveParent, ++/*212806*/ OPC_MoveChild, 11, ++/*212808*/ OPC_CheckInteger, 1, ++/*212810*/ OPC_CheckType, MVT::i32, ++/*212812*/ OPC_MoveParent, ++/*212813*/ OPC_MoveChild, 12, ++/*212815*/ OPC_CheckInteger, 1, ++/*212817*/ OPC_CheckType, MVT::i32, ++/*212819*/ OPC_MoveParent, ++/*212820*/ OPC_MoveChild, 13, ++/*212822*/ OPC_CheckInteger, 1, ++/*212824*/ OPC_CheckType, MVT::i32, ++/*212826*/ OPC_MoveParent, ++/*212827*/ OPC_MoveChild, 14, ++/*212829*/ OPC_CheckInteger, 1, ++/*212831*/ OPC_CheckType, MVT::i32, ++/*212833*/ OPC_MoveParent, ++/*212834*/ OPC_MoveChild, 15, ++/*212836*/ OPC_CheckInteger, 1, ++/*212838*/ OPC_CheckType, MVT::i32, ++/*212840*/ OPC_MoveParent, ++/*212841*/ OPC_CheckType, MVT::v16i8, ++/*212843*/ OPC_MoveParent, ++/*212844*/ OPC_CheckType, MVT::v16i8, ++/*212846*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*212848*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*212856*/ /*Scope*/ 65|128,2/*321*/, /*->213179*/ ++/*212858*/ OPC_CheckChild0Same, 1, ++/*212860*/ OPC_CheckChild1Same, 0, ++/*212862*/ OPC_MoveParent, ++/*212863*/ OPC_MoveChild1, ++/*212864*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*212867*/ OPC_CheckChild0Integer, 1, ++/*212869*/ OPC_CheckChild0Type, MVT::i32, ++/*212871*/ OPC_CheckChild1Integer, 1, ++/*212873*/ OPC_CheckChild1Type, MVT::i32, ++/*212875*/ OPC_CheckChild2Integer, 1, ++/*212877*/ OPC_CheckChild2Type, MVT::i32, ++/*212879*/ OPC_CheckChild3Integer, 1, ++/*212881*/ OPC_CheckChild3Type, MVT::i32, ++/*212883*/ OPC_CheckChild4Integer, 1, ++/*212885*/ OPC_CheckChild4Type, MVT::i32, ++/*212887*/ OPC_MoveChild5, ++/*212888*/ OPC_CheckInteger, 1, ++/*212890*/ OPC_CheckType, MVT::i32, ++/*212892*/ OPC_MoveParent, ++/*212893*/ OPC_MoveChild6, ++/*212894*/ OPC_CheckInteger, 1, ++/*212896*/ OPC_CheckType, MVT::i32, ++/*212898*/ OPC_MoveParent, ++/*212899*/ OPC_MoveChild7, ++/*212900*/ OPC_CheckInteger, 1, ++/*212902*/ OPC_CheckType, MVT::i32, ++/*212904*/ OPC_MoveParent, ++/*212905*/ OPC_MoveChild, 8, ++/*212907*/ OPC_CheckInteger, 1, ++/*212909*/ OPC_CheckType, MVT::i32, ++/*212911*/ OPC_MoveParent, ++/*212912*/ OPC_MoveChild, 9, ++/*212914*/ OPC_CheckInteger, 1, ++/*212916*/ OPC_CheckType, MVT::i32, ++/*212918*/ OPC_MoveParent, ++/*212919*/ OPC_MoveChild, 10, ++/*212921*/ OPC_CheckInteger, 1, ++/*212923*/ OPC_CheckType, MVT::i32, ++/*212925*/ OPC_MoveParent, ++/*212926*/ OPC_MoveChild, 11, ++/*212928*/ OPC_CheckInteger, 1, ++/*212930*/ OPC_CheckType, MVT::i32, ++/*212932*/ OPC_MoveParent, ++/*212933*/ OPC_MoveChild, 12, ++/*212935*/ OPC_CheckInteger, 1, ++/*212937*/ OPC_CheckType, MVT::i32, ++/*212939*/ OPC_MoveParent, ++/*212940*/ OPC_MoveChild, 13, ++/*212942*/ OPC_CheckInteger, 1, ++/*212944*/ OPC_CheckType, MVT::i32, ++/*212946*/ OPC_MoveParent, ++/*212947*/ OPC_MoveChild, 14, ++/*212949*/ OPC_CheckInteger, 1, ++/*212951*/ OPC_CheckType, MVT::i32, ++/*212953*/ OPC_MoveParent, ++/*212954*/ OPC_MoveChild, 15, ++/*212956*/ OPC_CheckInteger, 1, ++/*212958*/ OPC_CheckType, MVT::i32, ++/*212960*/ OPC_MoveParent, ++/*212961*/ OPC_MoveParent, ++/*212962*/ OPC_MoveParent, ++/*212963*/ OPC_MoveChild1, ++/*212964*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*212967*/ OPC_CheckChild0Integer, 7, ++/*212969*/ OPC_CheckChild0Type, MVT::i32, ++/*212971*/ OPC_CheckChild1Integer, 7, ++/*212973*/ OPC_CheckChild1Type, MVT::i32, ++/*212975*/ OPC_CheckChild2Integer, 7, ++/*212977*/ OPC_CheckChild2Type, MVT::i32, ++/*212979*/ OPC_CheckChild3Integer, 7, ++/*212981*/ OPC_CheckChild3Type, MVT::i32, ++/*212983*/ OPC_CheckChild4Integer, 7, ++/*212985*/ OPC_CheckChild4Type, MVT::i32, ++/*212987*/ OPC_MoveChild5, ++/*212988*/ OPC_CheckInteger, 7, ++/*212990*/ OPC_CheckType, MVT::i32, ++/*212992*/ OPC_MoveParent, ++/*212993*/ OPC_MoveChild6, ++/*212994*/ OPC_CheckInteger, 7, ++/*212996*/ OPC_CheckType, MVT::i32, ++/*212998*/ OPC_MoveParent, ++/*212999*/ OPC_MoveChild7, ++/*213000*/ OPC_CheckInteger, 7, ++/*213002*/ OPC_CheckType, MVT::i32, ++/*213004*/ OPC_MoveParent, ++/*213005*/ OPC_MoveChild, 8, ++/*213007*/ OPC_CheckInteger, 7, ++/*213009*/ OPC_CheckType, MVT::i32, ++/*213011*/ OPC_MoveParent, ++/*213012*/ OPC_MoveChild, 9, ++/*213014*/ OPC_CheckInteger, 7, ++/*213016*/ OPC_CheckType, MVT::i32, ++/*213018*/ OPC_MoveParent, ++/*213019*/ OPC_MoveChild, 10, ++/*213021*/ OPC_CheckInteger, 7, ++/*213023*/ OPC_CheckType, MVT::i32, ++/*213025*/ OPC_MoveParent, ++/*213026*/ OPC_MoveChild, 11, ++/*213028*/ OPC_CheckInteger, 7, ++/*213030*/ OPC_CheckType, MVT::i32, ++/*213032*/ OPC_MoveParent, ++/*213033*/ OPC_MoveChild, 12, ++/*213035*/ OPC_CheckInteger, 7, ++/*213037*/ OPC_CheckType, MVT::i32, ++/*213039*/ OPC_MoveParent, ++/*213040*/ OPC_MoveChild, 13, ++/*213042*/ OPC_CheckInteger, 7, ++/*213044*/ OPC_CheckType, MVT::i32, ++/*213046*/ OPC_MoveParent, ++/*213047*/ OPC_MoveChild, 14, ++/*213049*/ OPC_CheckInteger, 7, ++/*213051*/ OPC_CheckType, MVT::i32, ++/*213053*/ OPC_MoveParent, ++/*213054*/ OPC_MoveChild, 15, ++/*213056*/ OPC_CheckInteger, 7, ++/*213058*/ OPC_CheckType, MVT::i32, ++/*213060*/ OPC_MoveParent, ++/*213061*/ OPC_CheckType, MVT::v16i8, ++/*213063*/ OPC_MoveParent, ++/*213064*/ OPC_MoveParent, ++/*213065*/ OPC_MoveParent, ++/*213066*/ OPC_MoveChild1, ++/*213067*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*213070*/ OPC_CheckChild0Integer, 1, ++/*213072*/ OPC_CheckChild0Type, MVT::i32, ++/*213074*/ OPC_CheckChild1Integer, 1, ++/*213076*/ OPC_CheckChild1Type, MVT::i32, ++/*213078*/ OPC_CheckChild2Integer, 1, ++/*213080*/ OPC_CheckChild2Type, MVT::i32, ++/*213082*/ OPC_CheckChild3Integer, 1, ++/*213084*/ OPC_CheckChild3Type, MVT::i32, ++/*213086*/ OPC_CheckChild4Integer, 1, ++/*213088*/ OPC_CheckChild4Type, MVT::i32, ++/*213090*/ OPC_MoveChild5, ++/*213091*/ OPC_CheckInteger, 1, ++/*213093*/ OPC_CheckType, MVT::i32, ++/*213095*/ OPC_MoveParent, ++/*213096*/ OPC_MoveChild6, ++/*213097*/ OPC_CheckInteger, 1, ++/*213099*/ OPC_CheckType, MVT::i32, ++/*213101*/ OPC_MoveParent, ++/*213102*/ OPC_MoveChild7, ++/*213103*/ OPC_CheckInteger, 1, ++/*213105*/ OPC_CheckType, MVT::i32, ++/*213107*/ OPC_MoveParent, ++/*213108*/ OPC_MoveChild, 8, ++/*213110*/ OPC_CheckInteger, 1, ++/*213112*/ OPC_CheckType, MVT::i32, ++/*213114*/ OPC_MoveParent, ++/*213115*/ OPC_MoveChild, 9, ++/*213117*/ OPC_CheckInteger, 1, ++/*213119*/ OPC_CheckType, MVT::i32, ++/*213121*/ OPC_MoveParent, ++/*213122*/ OPC_MoveChild, 10, ++/*213124*/ OPC_CheckInteger, 1, ++/*213126*/ OPC_CheckType, MVT::i32, ++/*213128*/ OPC_MoveParent, ++/*213129*/ OPC_MoveChild, 11, ++/*213131*/ OPC_CheckInteger, 1, ++/*213133*/ OPC_CheckType, MVT::i32, ++/*213135*/ OPC_MoveParent, ++/*213136*/ OPC_MoveChild, 12, ++/*213138*/ OPC_CheckInteger, 1, ++/*213140*/ OPC_CheckType, MVT::i32, ++/*213142*/ OPC_MoveParent, ++/*213143*/ OPC_MoveChild, 13, ++/*213145*/ OPC_CheckInteger, 1, ++/*213147*/ OPC_CheckType, MVT::i32, ++/*213149*/ OPC_MoveParent, ++/*213150*/ OPC_MoveChild, 14, ++/*213152*/ OPC_CheckInteger, 1, ++/*213154*/ OPC_CheckType, MVT::i32, ++/*213156*/ OPC_MoveParent, ++/*213157*/ OPC_MoveChild, 15, ++/*213159*/ OPC_CheckInteger, 1, ++/*213161*/ OPC_CheckType, MVT::i32, ++/*213163*/ OPC_MoveParent, ++/*213164*/ OPC_CheckType, MVT::v16i8, ++/*213166*/ OPC_MoveParent, ++/*213167*/ OPC_CheckType, MVT::v16i8, ++/*213169*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*213171*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*213179*/ 0, /*End of Scope*/ ++/*213180*/ /*Scope*/ 10|128,5/*650*/, /*->213832*/ ++/*213182*/ OPC_CheckChild0Same, 1, ++/*213184*/ OPC_MoveChild1, ++/*213185*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*213188*/ OPC_Scope, 63|128,2/*319*/, /*->213510*/ // 2 children in Scope ++/*213191*/ OPC_MoveChild0, ++/*213192*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*213195*/ OPC_CheckChild0Integer, 1, ++/*213197*/ OPC_CheckChild0Type, MVT::i32, ++/*213199*/ OPC_CheckChild1Integer, 1, ++/*213201*/ OPC_CheckChild1Type, MVT::i32, ++/*213203*/ OPC_CheckChild2Integer, 1, ++/*213205*/ OPC_CheckChild2Type, MVT::i32, ++/*213207*/ OPC_CheckChild3Integer, 1, ++/*213209*/ OPC_CheckChild3Type, MVT::i32, ++/*213211*/ OPC_CheckChild4Integer, 1, ++/*213213*/ OPC_CheckChild4Type, MVT::i32, ++/*213215*/ OPC_MoveChild5, ++/*213216*/ OPC_CheckInteger, 1, ++/*213218*/ OPC_CheckType, MVT::i32, ++/*213220*/ OPC_MoveParent, ++/*213221*/ OPC_MoveChild6, ++/*213222*/ OPC_CheckInteger, 1, ++/*213224*/ OPC_CheckType, MVT::i32, ++/*213226*/ OPC_MoveParent, ++/*213227*/ OPC_MoveChild7, ++/*213228*/ OPC_CheckInteger, 1, ++/*213230*/ OPC_CheckType, MVT::i32, ++/*213232*/ OPC_MoveParent, ++/*213233*/ OPC_MoveChild, 8, ++/*213235*/ OPC_CheckInteger, 1, ++/*213237*/ OPC_CheckType, MVT::i32, ++/*213239*/ OPC_MoveParent, ++/*213240*/ OPC_MoveChild, 9, ++/*213242*/ OPC_CheckInteger, 1, ++/*213244*/ OPC_CheckType, MVT::i32, ++/*213246*/ OPC_MoveParent, ++/*213247*/ OPC_MoveChild, 10, ++/*213249*/ OPC_CheckInteger, 1, ++/*213251*/ OPC_CheckType, MVT::i32, ++/*213253*/ OPC_MoveParent, ++/*213254*/ OPC_MoveChild, 11, ++/*213256*/ OPC_CheckInteger, 1, ++/*213258*/ OPC_CheckType, MVT::i32, ++/*213260*/ OPC_MoveParent, ++/*213261*/ OPC_MoveChild, 12, ++/*213263*/ OPC_CheckInteger, 1, ++/*213265*/ OPC_CheckType, MVT::i32, ++/*213267*/ OPC_MoveParent, ++/*213268*/ OPC_MoveChild, 13, ++/*213270*/ OPC_CheckInteger, 1, ++/*213272*/ OPC_CheckType, MVT::i32, ++/*213274*/ OPC_MoveParent, ++/*213275*/ OPC_MoveChild, 14, ++/*213277*/ OPC_CheckInteger, 1, ++/*213279*/ OPC_CheckType, MVT::i32, ++/*213281*/ OPC_MoveParent, ++/*213282*/ OPC_MoveChild, 15, ++/*213284*/ OPC_CheckInteger, 1, ++/*213286*/ OPC_CheckType, MVT::i32, ++/*213288*/ OPC_MoveParent, ++/*213289*/ OPC_MoveParent, ++/*213290*/ OPC_CheckChild1Same, 0, ++/*213292*/ OPC_MoveParent, ++/*213293*/ OPC_MoveParent, ++/*213294*/ OPC_MoveChild1, ++/*213295*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*213298*/ OPC_CheckChild0Integer, 7, ++/*213300*/ OPC_CheckChild0Type, MVT::i32, ++/*213302*/ OPC_CheckChild1Integer, 7, ++/*213304*/ OPC_CheckChild1Type, MVT::i32, ++/*213306*/ OPC_CheckChild2Integer, 7, ++/*213308*/ OPC_CheckChild2Type, MVT::i32, ++/*213310*/ OPC_CheckChild3Integer, 7, ++/*213312*/ OPC_CheckChild3Type, MVT::i32, ++/*213314*/ OPC_CheckChild4Integer, 7, ++/*213316*/ OPC_CheckChild4Type, MVT::i32, ++/*213318*/ OPC_MoveChild5, ++/*213319*/ OPC_CheckInteger, 7, ++/*213321*/ OPC_CheckType, MVT::i32, ++/*213323*/ OPC_MoveParent, ++/*213324*/ OPC_MoveChild6, ++/*213325*/ OPC_CheckInteger, 7, ++/*213327*/ OPC_CheckType, MVT::i32, ++/*213329*/ OPC_MoveParent, ++/*213330*/ OPC_MoveChild7, ++/*213331*/ OPC_CheckInteger, 7, ++/*213333*/ OPC_CheckType, MVT::i32, ++/*213335*/ OPC_MoveParent, ++/*213336*/ OPC_MoveChild, 8, ++/*213338*/ OPC_CheckInteger, 7, ++/*213340*/ OPC_CheckType, MVT::i32, ++/*213342*/ OPC_MoveParent, ++/*213343*/ OPC_MoveChild, 9, ++/*213345*/ OPC_CheckInteger, 7, ++/*213347*/ OPC_CheckType, MVT::i32, ++/*213349*/ OPC_MoveParent, ++/*213350*/ OPC_MoveChild, 10, ++/*213352*/ OPC_CheckInteger, 7, ++/*213354*/ OPC_CheckType, MVT::i32, ++/*213356*/ OPC_MoveParent, ++/*213357*/ OPC_MoveChild, 11, ++/*213359*/ OPC_CheckInteger, 7, ++/*213361*/ OPC_CheckType, MVT::i32, ++/*213363*/ OPC_MoveParent, ++/*213364*/ OPC_MoveChild, 12, ++/*213366*/ OPC_CheckInteger, 7, ++/*213368*/ OPC_CheckType, MVT::i32, ++/*213370*/ OPC_MoveParent, ++/*213371*/ OPC_MoveChild, 13, ++/*213373*/ OPC_CheckInteger, 7, ++/*213375*/ OPC_CheckType, MVT::i32, ++/*213377*/ OPC_MoveParent, ++/*213378*/ OPC_MoveChild, 14, ++/*213380*/ OPC_CheckInteger, 7, ++/*213382*/ OPC_CheckType, MVT::i32, ++/*213384*/ OPC_MoveParent, ++/*213385*/ OPC_MoveChild, 15, ++/*213387*/ OPC_CheckInteger, 7, ++/*213389*/ OPC_CheckType, MVT::i32, ++/*213391*/ OPC_MoveParent, ++/*213392*/ OPC_CheckType, MVT::v16i8, ++/*213394*/ OPC_MoveParent, ++/*213395*/ OPC_MoveParent, ++/*213396*/ OPC_MoveParent, ++/*213397*/ OPC_MoveChild1, ++/*213398*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*213401*/ OPC_CheckChild0Integer, 1, ++/*213403*/ OPC_CheckChild0Type, MVT::i32, ++/*213405*/ OPC_CheckChild1Integer, 1, ++/*213407*/ OPC_CheckChild1Type, MVT::i32, ++/*213409*/ OPC_CheckChild2Integer, 1, ++/*213411*/ OPC_CheckChild2Type, MVT::i32, ++/*213413*/ OPC_CheckChild3Integer, 1, ++/*213415*/ OPC_CheckChild3Type, MVT::i32, ++/*213417*/ OPC_CheckChild4Integer, 1, ++/*213419*/ OPC_CheckChild4Type, MVT::i32, ++/*213421*/ OPC_MoveChild5, ++/*213422*/ OPC_CheckInteger, 1, ++/*213424*/ OPC_CheckType, MVT::i32, ++/*213426*/ OPC_MoveParent, ++/*213427*/ OPC_MoveChild6, ++/*213428*/ OPC_CheckInteger, 1, ++/*213430*/ OPC_CheckType, MVT::i32, ++/*213432*/ OPC_MoveParent, ++/*213433*/ OPC_MoveChild7, ++/*213434*/ OPC_CheckInteger, 1, ++/*213436*/ OPC_CheckType, MVT::i32, ++/*213438*/ OPC_MoveParent, ++/*213439*/ OPC_MoveChild, 8, ++/*213441*/ OPC_CheckInteger, 1, ++/*213443*/ OPC_CheckType, MVT::i32, ++/*213445*/ OPC_MoveParent, ++/*213446*/ OPC_MoveChild, 9, ++/*213448*/ OPC_CheckInteger, 1, ++/*213450*/ OPC_CheckType, MVT::i32, ++/*213452*/ OPC_MoveParent, ++/*213453*/ OPC_MoveChild, 10, ++/*213455*/ OPC_CheckInteger, 1, ++/*213457*/ OPC_CheckType, MVT::i32, ++/*213459*/ OPC_MoveParent, ++/*213460*/ OPC_MoveChild, 11, ++/*213462*/ OPC_CheckInteger, 1, ++/*213464*/ OPC_CheckType, MVT::i32, ++/*213466*/ OPC_MoveParent, ++/*213467*/ OPC_MoveChild, 12, ++/*213469*/ OPC_CheckInteger, 1, ++/*213471*/ OPC_CheckType, MVT::i32, ++/*213473*/ OPC_MoveParent, ++/*213474*/ OPC_MoveChild, 13, ++/*213476*/ OPC_CheckInteger, 1, ++/*213478*/ OPC_CheckType, MVT::i32, ++/*213480*/ OPC_MoveParent, ++/*213481*/ OPC_MoveChild, 14, ++/*213483*/ OPC_CheckInteger, 1, ++/*213485*/ OPC_CheckType, MVT::i32, ++/*213487*/ OPC_MoveParent, ++/*213488*/ OPC_MoveChild, 15, ++/*213490*/ OPC_CheckInteger, 1, ++/*213492*/ OPC_CheckType, MVT::i32, ++/*213494*/ OPC_MoveParent, ++/*213495*/ OPC_CheckType, MVT::v16i8, ++/*213497*/ OPC_MoveParent, ++/*213498*/ OPC_CheckType, MVT::v16i8, ++/*213500*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*213502*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*213510*/ /*Scope*/ 63|128,2/*319*/, /*->213831*/ ++/*213512*/ OPC_CheckChild0Same, 0, ++/*213514*/ OPC_MoveChild1, ++/*213515*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*213518*/ OPC_CheckChild0Integer, 1, ++/*213520*/ OPC_CheckChild0Type, MVT::i32, ++/*213522*/ OPC_CheckChild1Integer, 1, ++/*213524*/ OPC_CheckChild1Type, MVT::i32, ++/*213526*/ OPC_CheckChild2Integer, 1, ++/*213528*/ OPC_CheckChild2Type, MVT::i32, ++/*213530*/ OPC_CheckChild3Integer, 1, ++/*213532*/ OPC_CheckChild3Type, MVT::i32, ++/*213534*/ OPC_CheckChild4Integer, 1, ++/*213536*/ OPC_CheckChild4Type, MVT::i32, ++/*213538*/ OPC_MoveChild5, ++/*213539*/ OPC_CheckInteger, 1, ++/*213541*/ OPC_CheckType, MVT::i32, ++/*213543*/ OPC_MoveParent, ++/*213544*/ OPC_MoveChild6, ++/*213545*/ OPC_CheckInteger, 1, ++/*213547*/ OPC_CheckType, MVT::i32, ++/*213549*/ OPC_MoveParent, ++/*213550*/ OPC_MoveChild7, ++/*213551*/ OPC_CheckInteger, 1, ++/*213553*/ OPC_CheckType, MVT::i32, ++/*213555*/ OPC_MoveParent, ++/*213556*/ OPC_MoveChild, 8, ++/*213558*/ OPC_CheckInteger, 1, ++/*213560*/ OPC_CheckType, MVT::i32, ++/*213562*/ OPC_MoveParent, ++/*213563*/ OPC_MoveChild, 9, ++/*213565*/ OPC_CheckInteger, 1, ++/*213567*/ OPC_CheckType, MVT::i32, ++/*213569*/ OPC_MoveParent, ++/*213570*/ OPC_MoveChild, 10, ++/*213572*/ OPC_CheckInteger, 1, ++/*213574*/ OPC_CheckType, MVT::i32, ++/*213576*/ OPC_MoveParent, ++/*213577*/ OPC_MoveChild, 11, ++/*213579*/ OPC_CheckInteger, 1, ++/*213581*/ OPC_CheckType, MVT::i32, ++/*213583*/ OPC_MoveParent, ++/*213584*/ OPC_MoveChild, 12, ++/*213586*/ OPC_CheckInteger, 1, ++/*213588*/ OPC_CheckType, MVT::i32, ++/*213590*/ OPC_MoveParent, ++/*213591*/ OPC_MoveChild, 13, ++/*213593*/ OPC_CheckInteger, 1, ++/*213595*/ OPC_CheckType, MVT::i32, ++/*213597*/ OPC_MoveParent, ++/*213598*/ OPC_MoveChild, 14, ++/*213600*/ OPC_CheckInteger, 1, ++/*213602*/ OPC_CheckType, MVT::i32, ++/*213604*/ OPC_MoveParent, ++/*213605*/ OPC_MoveChild, 15, ++/*213607*/ OPC_CheckInteger, 1, ++/*213609*/ OPC_CheckType, MVT::i32, ++/*213611*/ OPC_MoveParent, ++/*213612*/ OPC_MoveParent, ++/*213613*/ OPC_MoveParent, ++/*213614*/ OPC_MoveParent, ++/*213615*/ OPC_MoveChild1, ++/*213616*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*213619*/ OPC_CheckChild0Integer, 7, ++/*213621*/ OPC_CheckChild0Type, MVT::i32, ++/*213623*/ OPC_CheckChild1Integer, 7, ++/*213625*/ OPC_CheckChild1Type, MVT::i32, ++/*213627*/ OPC_CheckChild2Integer, 7, ++/*213629*/ OPC_CheckChild2Type, MVT::i32, ++/*213631*/ OPC_CheckChild3Integer, 7, ++/*213633*/ OPC_CheckChild3Type, MVT::i32, ++/*213635*/ OPC_CheckChild4Integer, 7, ++/*213637*/ OPC_CheckChild4Type, MVT::i32, ++/*213639*/ OPC_MoveChild5, ++/*213640*/ OPC_CheckInteger, 7, ++/*213642*/ OPC_CheckType, MVT::i32, ++/*213644*/ OPC_MoveParent, ++/*213645*/ OPC_MoveChild6, ++/*213646*/ OPC_CheckInteger, 7, ++/*213648*/ OPC_CheckType, MVT::i32, ++/*213650*/ OPC_MoveParent, ++/*213651*/ OPC_MoveChild7, ++/*213652*/ OPC_CheckInteger, 7, ++/*213654*/ OPC_CheckType, MVT::i32, ++/*213656*/ OPC_MoveParent, ++/*213657*/ OPC_MoveChild, 8, ++/*213659*/ OPC_CheckInteger, 7, ++/*213661*/ OPC_CheckType, MVT::i32, ++/*213663*/ OPC_MoveParent, ++/*213664*/ OPC_MoveChild, 9, ++/*213666*/ OPC_CheckInteger, 7, ++/*213668*/ OPC_CheckType, MVT::i32, ++/*213670*/ OPC_MoveParent, ++/*213671*/ OPC_MoveChild, 10, ++/*213673*/ OPC_CheckInteger, 7, ++/*213675*/ OPC_CheckType, MVT::i32, ++/*213677*/ OPC_MoveParent, ++/*213678*/ OPC_MoveChild, 11, ++/*213680*/ OPC_CheckInteger, 7, ++/*213682*/ OPC_CheckType, MVT::i32, ++/*213684*/ OPC_MoveParent, ++/*213685*/ OPC_MoveChild, 12, ++/*213687*/ OPC_CheckInteger, 7, ++/*213689*/ OPC_CheckType, MVT::i32, ++/*213691*/ OPC_MoveParent, ++/*213692*/ OPC_MoveChild, 13, ++/*213694*/ OPC_CheckInteger, 7, ++/*213696*/ OPC_CheckType, MVT::i32, ++/*213698*/ OPC_MoveParent, ++/*213699*/ OPC_MoveChild, 14, ++/*213701*/ OPC_CheckInteger, 7, ++/*213703*/ OPC_CheckType, MVT::i32, ++/*213705*/ OPC_MoveParent, ++/*213706*/ OPC_MoveChild, 15, ++/*213708*/ OPC_CheckInteger, 7, ++/*213710*/ OPC_CheckType, MVT::i32, ++/*213712*/ OPC_MoveParent, ++/*213713*/ OPC_CheckType, MVT::v16i8, ++/*213715*/ OPC_MoveParent, ++/*213716*/ OPC_MoveParent, ++/*213717*/ OPC_MoveParent, ++/*213718*/ OPC_MoveChild1, ++/*213719*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*213722*/ OPC_CheckChild0Integer, 1, ++/*213724*/ OPC_CheckChild0Type, MVT::i32, ++/*213726*/ OPC_CheckChild1Integer, 1, ++/*213728*/ OPC_CheckChild1Type, MVT::i32, ++/*213730*/ OPC_CheckChild2Integer, 1, ++/*213732*/ OPC_CheckChild2Type, MVT::i32, ++/*213734*/ OPC_CheckChild3Integer, 1, ++/*213736*/ OPC_CheckChild3Type, MVT::i32, ++/*213738*/ OPC_CheckChild4Integer, 1, ++/*213740*/ OPC_CheckChild4Type, MVT::i32, ++/*213742*/ OPC_MoveChild5, ++/*213743*/ OPC_CheckInteger, 1, ++/*213745*/ OPC_CheckType, MVT::i32, ++/*213747*/ OPC_MoveParent, ++/*213748*/ OPC_MoveChild6, ++/*213749*/ OPC_CheckInteger, 1, ++/*213751*/ OPC_CheckType, MVT::i32, ++/*213753*/ OPC_MoveParent, ++/*213754*/ OPC_MoveChild7, ++/*213755*/ OPC_CheckInteger, 1, ++/*213757*/ OPC_CheckType, MVT::i32, ++/*213759*/ OPC_MoveParent, ++/*213760*/ OPC_MoveChild, 8, ++/*213762*/ OPC_CheckInteger, 1, ++/*213764*/ OPC_CheckType, MVT::i32, ++/*213766*/ OPC_MoveParent, ++/*213767*/ OPC_MoveChild, 9, ++/*213769*/ OPC_CheckInteger, 1, ++/*213771*/ OPC_CheckType, MVT::i32, ++/*213773*/ OPC_MoveParent, ++/*213774*/ OPC_MoveChild, 10, ++/*213776*/ OPC_CheckInteger, 1, ++/*213778*/ OPC_CheckType, MVT::i32, ++/*213780*/ OPC_MoveParent, ++/*213781*/ OPC_MoveChild, 11, ++/*213783*/ OPC_CheckInteger, 1, ++/*213785*/ OPC_CheckType, MVT::i32, ++/*213787*/ OPC_MoveParent, ++/*213788*/ OPC_MoveChild, 12, ++/*213790*/ OPC_CheckInteger, 1, ++/*213792*/ OPC_CheckType, MVT::i32, ++/*213794*/ OPC_MoveParent, ++/*213795*/ OPC_MoveChild, 13, ++/*213797*/ OPC_CheckInteger, 1, ++/*213799*/ OPC_CheckType, MVT::i32, ++/*213801*/ OPC_MoveParent, ++/*213802*/ OPC_MoveChild, 14, ++/*213804*/ OPC_CheckInteger, 1, ++/*213806*/ OPC_CheckType, MVT::i32, ++/*213808*/ OPC_MoveParent, ++/*213809*/ OPC_MoveChild, 15, ++/*213811*/ OPC_CheckInteger, 1, ++/*213813*/ OPC_CheckType, MVT::i32, ++/*213815*/ OPC_MoveParent, ++/*213816*/ OPC_CheckType, MVT::v16i8, ++/*213818*/ OPC_MoveParent, ++/*213819*/ OPC_CheckType, MVT::v16i8, ++/*213821*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*213823*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*213831*/ 0, /*End of Scope*/ ++/*213832*/ /*Scope*/ 10|128,5/*650*/, /*->214484*/ ++/*213834*/ OPC_CheckChild0Same, 0, ++/*213836*/ OPC_MoveChild1, ++/*213837*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*213840*/ OPC_Scope, 63|128,2/*319*/, /*->214162*/ // 2 children in Scope ++/*213843*/ OPC_MoveChild0, ++/*213844*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*213847*/ OPC_CheckChild0Integer, 1, ++/*213849*/ OPC_CheckChild0Type, MVT::i32, ++/*213851*/ OPC_CheckChild1Integer, 1, ++/*213853*/ OPC_CheckChild1Type, MVT::i32, ++/*213855*/ OPC_CheckChild2Integer, 1, ++/*213857*/ OPC_CheckChild2Type, MVT::i32, ++/*213859*/ OPC_CheckChild3Integer, 1, ++/*213861*/ OPC_CheckChild3Type, MVT::i32, ++/*213863*/ OPC_CheckChild4Integer, 1, ++/*213865*/ OPC_CheckChild4Type, MVT::i32, ++/*213867*/ OPC_MoveChild5, ++/*213868*/ OPC_CheckInteger, 1, ++/*213870*/ OPC_CheckType, MVT::i32, ++/*213872*/ OPC_MoveParent, ++/*213873*/ OPC_MoveChild6, ++/*213874*/ OPC_CheckInteger, 1, ++/*213876*/ OPC_CheckType, MVT::i32, ++/*213878*/ OPC_MoveParent, ++/*213879*/ OPC_MoveChild7, ++/*213880*/ OPC_CheckInteger, 1, ++/*213882*/ OPC_CheckType, MVT::i32, ++/*213884*/ OPC_MoveParent, ++/*213885*/ OPC_MoveChild, 8, ++/*213887*/ OPC_CheckInteger, 1, ++/*213889*/ OPC_CheckType, MVT::i32, ++/*213891*/ OPC_MoveParent, ++/*213892*/ OPC_MoveChild, 9, ++/*213894*/ OPC_CheckInteger, 1, ++/*213896*/ OPC_CheckType, MVT::i32, ++/*213898*/ OPC_MoveParent, ++/*213899*/ OPC_MoveChild, 10, ++/*213901*/ OPC_CheckInteger, 1, ++/*213903*/ OPC_CheckType, MVT::i32, ++/*213905*/ OPC_MoveParent, ++/*213906*/ OPC_MoveChild, 11, ++/*213908*/ OPC_CheckInteger, 1, ++/*213910*/ OPC_CheckType, MVT::i32, ++/*213912*/ OPC_MoveParent, ++/*213913*/ OPC_MoveChild, 12, ++/*213915*/ OPC_CheckInteger, 1, ++/*213917*/ OPC_CheckType, MVT::i32, ++/*213919*/ OPC_MoveParent, ++/*213920*/ OPC_MoveChild, 13, ++/*213922*/ OPC_CheckInteger, 1, ++/*213924*/ OPC_CheckType, MVT::i32, ++/*213926*/ OPC_MoveParent, ++/*213927*/ OPC_MoveChild, 14, ++/*213929*/ OPC_CheckInteger, 1, ++/*213931*/ OPC_CheckType, MVT::i32, ++/*213933*/ OPC_MoveParent, ++/*213934*/ OPC_MoveChild, 15, ++/*213936*/ OPC_CheckInteger, 1, ++/*213938*/ OPC_CheckType, MVT::i32, ++/*213940*/ OPC_MoveParent, ++/*213941*/ OPC_MoveParent, ++/*213942*/ OPC_CheckChild1Same, 1, ++/*213944*/ OPC_MoveParent, ++/*213945*/ OPC_MoveParent, ++/*213946*/ OPC_MoveChild1, ++/*213947*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*213950*/ OPC_CheckChild0Integer, 7, ++/*213952*/ OPC_CheckChild0Type, MVT::i32, ++/*213954*/ OPC_CheckChild1Integer, 7, ++/*213956*/ OPC_CheckChild1Type, MVT::i32, ++/*213958*/ OPC_CheckChild2Integer, 7, ++/*213960*/ OPC_CheckChild2Type, MVT::i32, ++/*213962*/ OPC_CheckChild3Integer, 7, ++/*213964*/ OPC_CheckChild3Type, MVT::i32, ++/*213966*/ OPC_CheckChild4Integer, 7, ++/*213968*/ OPC_CheckChild4Type, MVT::i32, ++/*213970*/ OPC_MoveChild5, ++/*213971*/ OPC_CheckInteger, 7, ++/*213973*/ OPC_CheckType, MVT::i32, ++/*213975*/ OPC_MoveParent, ++/*213976*/ OPC_MoveChild6, ++/*213977*/ OPC_CheckInteger, 7, ++/*213979*/ OPC_CheckType, MVT::i32, ++/*213981*/ OPC_MoveParent, ++/*213982*/ OPC_MoveChild7, ++/*213983*/ OPC_CheckInteger, 7, ++/*213985*/ OPC_CheckType, MVT::i32, ++/*213987*/ OPC_MoveParent, ++/*213988*/ OPC_MoveChild, 8, ++/*213990*/ OPC_CheckInteger, 7, ++/*213992*/ OPC_CheckType, MVT::i32, ++/*213994*/ OPC_MoveParent, ++/*213995*/ OPC_MoveChild, 9, ++/*213997*/ OPC_CheckInteger, 7, ++/*213999*/ OPC_CheckType, MVT::i32, ++/*214001*/ OPC_MoveParent, ++/*214002*/ OPC_MoveChild, 10, ++/*214004*/ OPC_CheckInteger, 7, ++/*214006*/ OPC_CheckType, MVT::i32, ++/*214008*/ OPC_MoveParent, ++/*214009*/ OPC_MoveChild, 11, ++/*214011*/ OPC_CheckInteger, 7, ++/*214013*/ OPC_CheckType, MVT::i32, ++/*214015*/ OPC_MoveParent, ++/*214016*/ OPC_MoveChild, 12, ++/*214018*/ OPC_CheckInteger, 7, ++/*214020*/ OPC_CheckType, MVT::i32, ++/*214022*/ OPC_MoveParent, ++/*214023*/ OPC_MoveChild, 13, ++/*214025*/ OPC_CheckInteger, 7, ++/*214027*/ OPC_CheckType, MVT::i32, ++/*214029*/ OPC_MoveParent, ++/*214030*/ OPC_MoveChild, 14, ++/*214032*/ OPC_CheckInteger, 7, ++/*214034*/ OPC_CheckType, MVT::i32, ++/*214036*/ OPC_MoveParent, ++/*214037*/ OPC_MoveChild, 15, ++/*214039*/ OPC_CheckInteger, 7, ++/*214041*/ OPC_CheckType, MVT::i32, ++/*214043*/ OPC_MoveParent, ++/*214044*/ OPC_CheckType, MVT::v16i8, ++/*214046*/ OPC_MoveParent, ++/*214047*/ OPC_MoveParent, ++/*214048*/ OPC_MoveParent, ++/*214049*/ OPC_MoveChild1, ++/*214050*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*214053*/ OPC_CheckChild0Integer, 1, ++/*214055*/ OPC_CheckChild0Type, MVT::i32, ++/*214057*/ OPC_CheckChild1Integer, 1, ++/*214059*/ OPC_CheckChild1Type, MVT::i32, ++/*214061*/ OPC_CheckChild2Integer, 1, ++/*214063*/ OPC_CheckChild2Type, MVT::i32, ++/*214065*/ OPC_CheckChild3Integer, 1, ++/*214067*/ OPC_CheckChild3Type, MVT::i32, ++/*214069*/ OPC_CheckChild4Integer, 1, ++/*214071*/ OPC_CheckChild4Type, MVT::i32, ++/*214073*/ OPC_MoveChild5, ++/*214074*/ OPC_CheckInteger, 1, ++/*214076*/ OPC_CheckType, MVT::i32, ++/*214078*/ OPC_MoveParent, ++/*214079*/ OPC_MoveChild6, ++/*214080*/ OPC_CheckInteger, 1, ++/*214082*/ OPC_CheckType, MVT::i32, ++/*214084*/ OPC_MoveParent, ++/*214085*/ OPC_MoveChild7, ++/*214086*/ OPC_CheckInteger, 1, ++/*214088*/ OPC_CheckType, MVT::i32, ++/*214090*/ OPC_MoveParent, ++/*214091*/ OPC_MoveChild, 8, ++/*214093*/ OPC_CheckInteger, 1, ++/*214095*/ OPC_CheckType, MVT::i32, ++/*214097*/ OPC_MoveParent, ++/*214098*/ OPC_MoveChild, 9, ++/*214100*/ OPC_CheckInteger, 1, ++/*214102*/ OPC_CheckType, MVT::i32, ++/*214104*/ OPC_MoveParent, ++/*214105*/ OPC_MoveChild, 10, ++/*214107*/ OPC_CheckInteger, 1, ++/*214109*/ OPC_CheckType, MVT::i32, ++/*214111*/ OPC_MoveParent, ++/*214112*/ OPC_MoveChild, 11, ++/*214114*/ OPC_CheckInteger, 1, ++/*214116*/ OPC_CheckType, MVT::i32, ++/*214118*/ OPC_MoveParent, ++/*214119*/ OPC_MoveChild, 12, ++/*214121*/ OPC_CheckInteger, 1, ++/*214123*/ OPC_CheckType, MVT::i32, ++/*214125*/ OPC_MoveParent, ++/*214126*/ OPC_MoveChild, 13, ++/*214128*/ OPC_CheckInteger, 1, ++/*214130*/ OPC_CheckType, MVT::i32, ++/*214132*/ OPC_MoveParent, ++/*214133*/ OPC_MoveChild, 14, ++/*214135*/ OPC_CheckInteger, 1, ++/*214137*/ OPC_CheckType, MVT::i32, ++/*214139*/ OPC_MoveParent, ++/*214140*/ OPC_MoveChild, 15, ++/*214142*/ OPC_CheckInteger, 1, ++/*214144*/ OPC_CheckType, MVT::i32, ++/*214146*/ OPC_MoveParent, ++/*214147*/ OPC_CheckType, MVT::v16i8, ++/*214149*/ OPC_MoveParent, ++/*214150*/ OPC_CheckType, MVT::v16i8, ++/*214152*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*214154*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*214162*/ /*Scope*/ 63|128,2/*319*/, /*->214483*/ ++/*214164*/ OPC_CheckChild0Same, 1, ++/*214166*/ OPC_MoveChild1, ++/*214167*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*214170*/ OPC_CheckChild0Integer, 1, ++/*214172*/ OPC_CheckChild0Type, MVT::i32, ++/*214174*/ OPC_CheckChild1Integer, 1, ++/*214176*/ OPC_CheckChild1Type, MVT::i32, ++/*214178*/ OPC_CheckChild2Integer, 1, ++/*214180*/ OPC_CheckChild2Type, MVT::i32, ++/*214182*/ OPC_CheckChild3Integer, 1, ++/*214184*/ OPC_CheckChild3Type, MVT::i32, ++/*214186*/ OPC_CheckChild4Integer, 1, ++/*214188*/ OPC_CheckChild4Type, MVT::i32, ++/*214190*/ OPC_MoveChild5, ++/*214191*/ OPC_CheckInteger, 1, ++/*214193*/ OPC_CheckType, MVT::i32, ++/*214195*/ OPC_MoveParent, ++/*214196*/ OPC_MoveChild6, ++/*214197*/ OPC_CheckInteger, 1, ++/*214199*/ OPC_CheckType, MVT::i32, ++/*214201*/ OPC_MoveParent, ++/*214202*/ OPC_MoveChild7, ++/*214203*/ OPC_CheckInteger, 1, ++/*214205*/ OPC_CheckType, MVT::i32, ++/*214207*/ OPC_MoveParent, ++/*214208*/ OPC_MoveChild, 8, ++/*214210*/ OPC_CheckInteger, 1, ++/*214212*/ OPC_CheckType, MVT::i32, ++/*214214*/ OPC_MoveParent, ++/*214215*/ OPC_MoveChild, 9, ++/*214217*/ OPC_CheckInteger, 1, ++/*214219*/ OPC_CheckType, MVT::i32, ++/*214221*/ OPC_MoveParent, ++/*214222*/ OPC_MoveChild, 10, ++/*214224*/ OPC_CheckInteger, 1, ++/*214226*/ OPC_CheckType, MVT::i32, ++/*214228*/ OPC_MoveParent, ++/*214229*/ OPC_MoveChild, 11, ++/*214231*/ OPC_CheckInteger, 1, ++/*214233*/ OPC_CheckType, MVT::i32, ++/*214235*/ OPC_MoveParent, ++/*214236*/ OPC_MoveChild, 12, ++/*214238*/ OPC_CheckInteger, 1, ++/*214240*/ OPC_CheckType, MVT::i32, ++/*214242*/ OPC_MoveParent, ++/*214243*/ OPC_MoveChild, 13, ++/*214245*/ OPC_CheckInteger, 1, ++/*214247*/ OPC_CheckType, MVT::i32, ++/*214249*/ OPC_MoveParent, ++/*214250*/ OPC_MoveChild, 14, ++/*214252*/ OPC_CheckInteger, 1, ++/*214254*/ OPC_CheckType, MVT::i32, ++/*214256*/ OPC_MoveParent, ++/*214257*/ OPC_MoveChild, 15, ++/*214259*/ OPC_CheckInteger, 1, ++/*214261*/ OPC_CheckType, MVT::i32, ++/*214263*/ OPC_MoveParent, ++/*214264*/ OPC_MoveParent, ++/*214265*/ OPC_MoveParent, ++/*214266*/ OPC_MoveParent, ++/*214267*/ OPC_MoveChild1, ++/*214268*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*214271*/ OPC_CheckChild0Integer, 7, ++/*214273*/ OPC_CheckChild0Type, MVT::i32, ++/*214275*/ OPC_CheckChild1Integer, 7, ++/*214277*/ OPC_CheckChild1Type, MVT::i32, ++/*214279*/ OPC_CheckChild2Integer, 7, ++/*214281*/ OPC_CheckChild2Type, MVT::i32, ++/*214283*/ OPC_CheckChild3Integer, 7, ++/*214285*/ OPC_CheckChild3Type, MVT::i32, ++/*214287*/ OPC_CheckChild4Integer, 7, ++/*214289*/ OPC_CheckChild4Type, MVT::i32, ++/*214291*/ OPC_MoveChild5, ++/*214292*/ OPC_CheckInteger, 7, ++/*214294*/ OPC_CheckType, MVT::i32, ++/*214296*/ OPC_MoveParent, ++/*214297*/ OPC_MoveChild6, ++/*214298*/ OPC_CheckInteger, 7, ++/*214300*/ OPC_CheckType, MVT::i32, ++/*214302*/ OPC_MoveParent, ++/*214303*/ OPC_MoveChild7, ++/*214304*/ OPC_CheckInteger, 7, ++/*214306*/ OPC_CheckType, MVT::i32, ++/*214308*/ OPC_MoveParent, ++/*214309*/ OPC_MoveChild, 8, ++/*214311*/ OPC_CheckInteger, 7, ++/*214313*/ OPC_CheckType, MVT::i32, ++/*214315*/ OPC_MoveParent, ++/*214316*/ OPC_MoveChild, 9, ++/*214318*/ OPC_CheckInteger, 7, ++/*214320*/ OPC_CheckType, MVT::i32, ++/*214322*/ OPC_MoveParent, ++/*214323*/ OPC_MoveChild, 10, ++/*214325*/ OPC_CheckInteger, 7, ++/*214327*/ OPC_CheckType, MVT::i32, ++/*214329*/ OPC_MoveParent, ++/*214330*/ OPC_MoveChild, 11, ++/*214332*/ OPC_CheckInteger, 7, ++/*214334*/ OPC_CheckType, MVT::i32, ++/*214336*/ OPC_MoveParent, ++/*214337*/ OPC_MoveChild, 12, ++/*214339*/ OPC_CheckInteger, 7, ++/*214341*/ OPC_CheckType, MVT::i32, ++/*214343*/ OPC_MoveParent, ++/*214344*/ OPC_MoveChild, 13, ++/*214346*/ OPC_CheckInteger, 7, ++/*214348*/ OPC_CheckType, MVT::i32, ++/*214350*/ OPC_MoveParent, ++/*214351*/ OPC_MoveChild, 14, ++/*214353*/ OPC_CheckInteger, 7, ++/*214355*/ OPC_CheckType, MVT::i32, ++/*214357*/ OPC_MoveParent, ++/*214358*/ OPC_MoveChild, 15, ++/*214360*/ OPC_CheckInteger, 7, ++/*214362*/ OPC_CheckType, MVT::i32, ++/*214364*/ OPC_MoveParent, ++/*214365*/ OPC_CheckType, MVT::v16i8, ++/*214367*/ OPC_MoveParent, ++/*214368*/ OPC_MoveParent, ++/*214369*/ OPC_MoveParent, ++/*214370*/ OPC_MoveChild1, ++/*214371*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*214374*/ OPC_CheckChild0Integer, 1, ++/*214376*/ OPC_CheckChild0Type, MVT::i32, ++/*214378*/ OPC_CheckChild1Integer, 1, ++/*214380*/ OPC_CheckChild1Type, MVT::i32, ++/*214382*/ OPC_CheckChild2Integer, 1, ++/*214384*/ OPC_CheckChild2Type, MVT::i32, ++/*214386*/ OPC_CheckChild3Integer, 1, ++/*214388*/ OPC_CheckChild3Type, MVT::i32, ++/*214390*/ OPC_CheckChild4Integer, 1, ++/*214392*/ OPC_CheckChild4Type, MVT::i32, ++/*214394*/ OPC_MoveChild5, ++/*214395*/ OPC_CheckInteger, 1, ++/*214397*/ OPC_CheckType, MVT::i32, ++/*214399*/ OPC_MoveParent, ++/*214400*/ OPC_MoveChild6, ++/*214401*/ OPC_CheckInteger, 1, ++/*214403*/ OPC_CheckType, MVT::i32, ++/*214405*/ OPC_MoveParent, ++/*214406*/ OPC_MoveChild7, ++/*214407*/ OPC_CheckInteger, 1, ++/*214409*/ OPC_CheckType, MVT::i32, ++/*214411*/ OPC_MoveParent, ++/*214412*/ OPC_MoveChild, 8, ++/*214414*/ OPC_CheckInteger, 1, ++/*214416*/ OPC_CheckType, MVT::i32, ++/*214418*/ OPC_MoveParent, ++/*214419*/ OPC_MoveChild, 9, ++/*214421*/ OPC_CheckInteger, 1, ++/*214423*/ OPC_CheckType, MVT::i32, ++/*214425*/ OPC_MoveParent, ++/*214426*/ OPC_MoveChild, 10, ++/*214428*/ OPC_CheckInteger, 1, ++/*214430*/ OPC_CheckType, MVT::i32, ++/*214432*/ OPC_MoveParent, ++/*214433*/ OPC_MoveChild, 11, ++/*214435*/ OPC_CheckInteger, 1, ++/*214437*/ OPC_CheckType, MVT::i32, ++/*214439*/ OPC_MoveParent, ++/*214440*/ OPC_MoveChild, 12, ++/*214442*/ OPC_CheckInteger, 1, ++/*214444*/ OPC_CheckType, MVT::i32, ++/*214446*/ OPC_MoveParent, ++/*214447*/ OPC_MoveChild, 13, ++/*214449*/ OPC_CheckInteger, 1, ++/*214451*/ OPC_CheckType, MVT::i32, ++/*214453*/ OPC_MoveParent, ++/*214454*/ OPC_MoveChild, 14, ++/*214456*/ OPC_CheckInteger, 1, ++/*214458*/ OPC_CheckType, MVT::i32, ++/*214460*/ OPC_MoveParent, ++/*214461*/ OPC_MoveChild, 15, ++/*214463*/ OPC_CheckInteger, 1, ++/*214465*/ OPC_CheckType, MVT::i32, ++/*214467*/ OPC_MoveParent, ++/*214468*/ OPC_CheckType, MVT::v16i8, ++/*214470*/ OPC_MoveParent, ++/*214471*/ OPC_CheckType, MVT::v16i8, ++/*214473*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*214475*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*214483*/ 0, /*End of Scope*/ ++/*214484*/ /*Scope*/ 41|128,4/*553*/, /*->215039*/ ++/*214486*/ OPC_MoveChild0, ++/*214487*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*214490*/ OPC_CheckChild0Integer, 1, ++/*214492*/ OPC_CheckChild0Type, MVT::i32, ++/*214494*/ OPC_CheckChild1Integer, 1, ++/*214496*/ OPC_CheckChild1Type, MVT::i32, ++/*214498*/ OPC_CheckChild2Integer, 1, ++/*214500*/ OPC_CheckChild2Type, MVT::i32, ++/*214502*/ OPC_CheckChild3Integer, 1, ++/*214504*/ OPC_CheckChild3Type, MVT::i32, ++/*214506*/ OPC_CheckChild4Integer, 1, ++/*214508*/ OPC_CheckChild4Type, MVT::i32, ++/*214510*/ OPC_MoveChild5, ++/*214511*/ OPC_CheckInteger, 1, ++/*214513*/ OPC_CheckType, MVT::i32, ++/*214515*/ OPC_MoveParent, ++/*214516*/ OPC_MoveChild6, ++/*214517*/ OPC_CheckInteger, 1, ++/*214519*/ OPC_CheckType, MVT::i32, ++/*214521*/ OPC_MoveParent, ++/*214522*/ OPC_MoveChild7, ++/*214523*/ OPC_CheckInteger, 1, ++/*214525*/ OPC_CheckType, MVT::i32, ++/*214527*/ OPC_MoveParent, ++/*214528*/ OPC_MoveChild, 8, ++/*214530*/ OPC_CheckInteger, 1, ++/*214532*/ OPC_CheckType, MVT::i32, ++/*214534*/ OPC_MoveParent, ++/*214535*/ OPC_MoveChild, 9, ++/*214537*/ OPC_CheckInteger, 1, ++/*214539*/ OPC_CheckType, MVT::i32, ++/*214541*/ OPC_MoveParent, ++/*214542*/ OPC_MoveChild, 10, ++/*214544*/ OPC_CheckInteger, 1, ++/*214546*/ OPC_CheckType, MVT::i32, ++/*214548*/ OPC_MoveParent, ++/*214549*/ OPC_MoveChild, 11, ++/*214551*/ OPC_CheckInteger, 1, ++/*214553*/ OPC_CheckType, MVT::i32, ++/*214555*/ OPC_MoveParent, ++/*214556*/ OPC_MoveChild, 12, ++/*214558*/ OPC_CheckInteger, 1, ++/*214560*/ OPC_CheckType, MVT::i32, ++/*214562*/ OPC_MoveParent, ++/*214563*/ OPC_MoveChild, 13, ++/*214565*/ OPC_CheckInteger, 1, ++/*214567*/ OPC_CheckType, MVT::i32, ++/*214569*/ OPC_MoveParent, ++/*214570*/ OPC_MoveChild, 14, ++/*214572*/ OPC_CheckInteger, 1, ++/*214574*/ OPC_CheckType, MVT::i32, ++/*214576*/ OPC_MoveParent, ++/*214577*/ OPC_MoveChild, 15, ++/*214579*/ OPC_CheckInteger, 1, ++/*214581*/ OPC_CheckType, MVT::i32, ++/*214583*/ OPC_MoveParent, ++/*214584*/ OPC_MoveParent, ++/*214585*/ OPC_MoveChild1, ++/*214586*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*214589*/ OPC_Scope, 94|128,1/*222*/, /*->214814*/ // 2 children in Scope ++/*214592*/ OPC_CheckChild0Same, 0, ++/*214594*/ OPC_CheckChild1Same, 1, ++/*214596*/ OPC_MoveParent, ++/*214597*/ OPC_MoveParent, ++/*214598*/ OPC_MoveChild1, ++/*214599*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*214602*/ OPC_CheckChild0Integer, 7, ++/*214604*/ OPC_CheckChild0Type, MVT::i32, ++/*214606*/ OPC_CheckChild1Integer, 7, ++/*214608*/ OPC_CheckChild1Type, MVT::i32, ++/*214610*/ OPC_CheckChild2Integer, 7, ++/*214612*/ OPC_CheckChild2Type, MVT::i32, ++/*214614*/ OPC_CheckChild3Integer, 7, ++/*214616*/ OPC_CheckChild3Type, MVT::i32, ++/*214618*/ OPC_CheckChild4Integer, 7, ++/*214620*/ OPC_CheckChild4Type, MVT::i32, ++/*214622*/ OPC_MoveChild5, ++/*214623*/ OPC_CheckInteger, 7, ++/*214625*/ OPC_CheckType, MVT::i32, ++/*214627*/ OPC_MoveParent, ++/*214628*/ OPC_MoveChild6, ++/*214629*/ OPC_CheckInteger, 7, ++/*214631*/ OPC_CheckType, MVT::i32, ++/*214633*/ OPC_MoveParent, ++/*214634*/ OPC_MoveChild7, ++/*214635*/ OPC_CheckInteger, 7, ++/*214637*/ OPC_CheckType, MVT::i32, ++/*214639*/ OPC_MoveParent, ++/*214640*/ OPC_MoveChild, 8, ++/*214642*/ OPC_CheckInteger, 7, ++/*214644*/ OPC_CheckType, MVT::i32, ++/*214646*/ OPC_MoveParent, ++/*214647*/ OPC_MoveChild, 9, ++/*214649*/ OPC_CheckInteger, 7, ++/*214651*/ OPC_CheckType, MVT::i32, ++/*214653*/ OPC_MoveParent, ++/*214654*/ OPC_MoveChild, 10, ++/*214656*/ OPC_CheckInteger, 7, ++/*214658*/ OPC_CheckType, MVT::i32, ++/*214660*/ OPC_MoveParent, ++/*214661*/ OPC_MoveChild, 11, ++/*214663*/ OPC_CheckInteger, 7, ++/*214665*/ OPC_CheckType, MVT::i32, ++/*214667*/ OPC_MoveParent, ++/*214668*/ OPC_MoveChild, 12, ++/*214670*/ OPC_CheckInteger, 7, ++/*214672*/ OPC_CheckType, MVT::i32, ++/*214674*/ OPC_MoveParent, ++/*214675*/ OPC_MoveChild, 13, ++/*214677*/ OPC_CheckInteger, 7, ++/*214679*/ OPC_CheckType, MVT::i32, ++/*214681*/ OPC_MoveParent, ++/*214682*/ OPC_MoveChild, 14, ++/*214684*/ OPC_CheckInteger, 7, ++/*214686*/ OPC_CheckType, MVT::i32, ++/*214688*/ OPC_MoveParent, ++/*214689*/ OPC_MoveChild, 15, ++/*214691*/ OPC_CheckInteger, 7, ++/*214693*/ OPC_CheckType, MVT::i32, ++/*214695*/ OPC_MoveParent, ++/*214696*/ OPC_CheckType, MVT::v16i8, ++/*214698*/ OPC_MoveParent, ++/*214699*/ OPC_MoveParent, ++/*214700*/ OPC_MoveParent, ++/*214701*/ OPC_MoveChild1, ++/*214702*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*214705*/ OPC_CheckChild0Integer, 1, ++/*214707*/ OPC_CheckChild0Type, MVT::i32, ++/*214709*/ OPC_CheckChild1Integer, 1, ++/*214711*/ OPC_CheckChild1Type, MVT::i32, ++/*214713*/ OPC_CheckChild2Integer, 1, ++/*214715*/ OPC_CheckChild2Type, MVT::i32, ++/*214717*/ OPC_CheckChild3Integer, 1, ++/*214719*/ OPC_CheckChild3Type, MVT::i32, ++/*214721*/ OPC_CheckChild4Integer, 1, ++/*214723*/ OPC_CheckChild4Type, MVT::i32, ++/*214725*/ OPC_MoveChild5, ++/*214726*/ OPC_CheckInteger, 1, ++/*214728*/ OPC_CheckType, MVT::i32, ++/*214730*/ OPC_MoveParent, ++/*214731*/ OPC_MoveChild6, ++/*214732*/ OPC_CheckInteger, 1, ++/*214734*/ OPC_CheckType, MVT::i32, ++/*214736*/ OPC_MoveParent, ++/*214737*/ OPC_MoveChild7, ++/*214738*/ OPC_CheckInteger, 1, ++/*214740*/ OPC_CheckType, MVT::i32, ++/*214742*/ OPC_MoveParent, ++/*214743*/ OPC_MoveChild, 8, ++/*214745*/ OPC_CheckInteger, 1, ++/*214747*/ OPC_CheckType, MVT::i32, ++/*214749*/ OPC_MoveParent, ++/*214750*/ OPC_MoveChild, 9, ++/*214752*/ OPC_CheckInteger, 1, ++/*214754*/ OPC_CheckType, MVT::i32, ++/*214756*/ OPC_MoveParent, ++/*214757*/ OPC_MoveChild, 10, ++/*214759*/ OPC_CheckInteger, 1, ++/*214761*/ OPC_CheckType, MVT::i32, ++/*214763*/ OPC_MoveParent, ++/*214764*/ OPC_MoveChild, 11, ++/*214766*/ OPC_CheckInteger, 1, ++/*214768*/ OPC_CheckType, MVT::i32, ++/*214770*/ OPC_MoveParent, ++/*214771*/ OPC_MoveChild, 12, ++/*214773*/ OPC_CheckInteger, 1, ++/*214775*/ OPC_CheckType, MVT::i32, ++/*214777*/ OPC_MoveParent, ++/*214778*/ OPC_MoveChild, 13, ++/*214780*/ OPC_CheckInteger, 1, ++/*214782*/ OPC_CheckType, MVT::i32, ++/*214784*/ OPC_MoveParent, ++/*214785*/ OPC_MoveChild, 14, ++/*214787*/ OPC_CheckInteger, 1, ++/*214789*/ OPC_CheckType, MVT::i32, ++/*214791*/ OPC_MoveParent, ++/*214792*/ OPC_MoveChild, 15, ++/*214794*/ OPC_CheckInteger, 1, ++/*214796*/ OPC_CheckType, MVT::i32, ++/*214798*/ OPC_MoveParent, ++/*214799*/ OPC_CheckType, MVT::v16i8, ++/*214801*/ OPC_MoveParent, ++/*214802*/ OPC_CheckType, MVT::v16i8, ++/*214804*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*214806*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*214814*/ /*Scope*/ 94|128,1/*222*/, /*->215038*/ ++/*214816*/ OPC_CheckChild0Same, 1, ++/*214818*/ OPC_CheckChild1Same, 0, ++/*214820*/ OPC_MoveParent, ++/*214821*/ OPC_MoveParent, ++/*214822*/ OPC_MoveChild1, ++/*214823*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*214826*/ OPC_CheckChild0Integer, 7, ++/*214828*/ OPC_CheckChild0Type, MVT::i32, ++/*214830*/ OPC_CheckChild1Integer, 7, ++/*214832*/ OPC_CheckChild1Type, MVT::i32, ++/*214834*/ OPC_CheckChild2Integer, 7, ++/*214836*/ OPC_CheckChild2Type, MVT::i32, ++/*214838*/ OPC_CheckChild3Integer, 7, ++/*214840*/ OPC_CheckChild3Type, MVT::i32, ++/*214842*/ OPC_CheckChild4Integer, 7, ++/*214844*/ OPC_CheckChild4Type, MVT::i32, ++/*214846*/ OPC_MoveChild5, ++/*214847*/ OPC_CheckInteger, 7, ++/*214849*/ OPC_CheckType, MVT::i32, ++/*214851*/ OPC_MoveParent, ++/*214852*/ OPC_MoveChild6, ++/*214853*/ OPC_CheckInteger, 7, ++/*214855*/ OPC_CheckType, MVT::i32, ++/*214857*/ OPC_MoveParent, ++/*214858*/ OPC_MoveChild7, ++/*214859*/ OPC_CheckInteger, 7, ++/*214861*/ OPC_CheckType, MVT::i32, ++/*214863*/ OPC_MoveParent, ++/*214864*/ OPC_MoveChild, 8, ++/*214866*/ OPC_CheckInteger, 7, ++/*214868*/ OPC_CheckType, MVT::i32, ++/*214870*/ OPC_MoveParent, ++/*214871*/ OPC_MoveChild, 9, ++/*214873*/ OPC_CheckInteger, 7, ++/*214875*/ OPC_CheckType, MVT::i32, ++/*214877*/ OPC_MoveParent, ++/*214878*/ OPC_MoveChild, 10, ++/*214880*/ OPC_CheckInteger, 7, ++/*214882*/ OPC_CheckType, MVT::i32, ++/*214884*/ OPC_MoveParent, ++/*214885*/ OPC_MoveChild, 11, ++/*214887*/ OPC_CheckInteger, 7, ++/*214889*/ OPC_CheckType, MVT::i32, ++/*214891*/ OPC_MoveParent, ++/*214892*/ OPC_MoveChild, 12, ++/*214894*/ OPC_CheckInteger, 7, ++/*214896*/ OPC_CheckType, MVT::i32, ++/*214898*/ OPC_MoveParent, ++/*214899*/ OPC_MoveChild, 13, ++/*214901*/ OPC_CheckInteger, 7, ++/*214903*/ OPC_CheckType, MVT::i32, ++/*214905*/ OPC_MoveParent, ++/*214906*/ OPC_MoveChild, 14, ++/*214908*/ OPC_CheckInteger, 7, ++/*214910*/ OPC_CheckType, MVT::i32, ++/*214912*/ OPC_MoveParent, ++/*214913*/ OPC_MoveChild, 15, ++/*214915*/ OPC_CheckInteger, 7, ++/*214917*/ OPC_CheckType, MVT::i32, ++/*214919*/ OPC_MoveParent, ++/*214920*/ OPC_CheckType, MVT::v16i8, ++/*214922*/ OPC_MoveParent, ++/*214923*/ OPC_MoveParent, ++/*214924*/ OPC_MoveParent, ++/*214925*/ OPC_MoveChild1, ++/*214926*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*214929*/ OPC_CheckChild0Integer, 1, ++/*214931*/ OPC_CheckChild0Type, MVT::i32, ++/*214933*/ OPC_CheckChild1Integer, 1, ++/*214935*/ OPC_CheckChild1Type, MVT::i32, ++/*214937*/ OPC_CheckChild2Integer, 1, ++/*214939*/ OPC_CheckChild2Type, MVT::i32, ++/*214941*/ OPC_CheckChild3Integer, 1, ++/*214943*/ OPC_CheckChild3Type, MVT::i32, ++/*214945*/ OPC_CheckChild4Integer, 1, ++/*214947*/ OPC_CheckChild4Type, MVT::i32, ++/*214949*/ OPC_MoveChild5, ++/*214950*/ OPC_CheckInteger, 1, ++/*214952*/ OPC_CheckType, MVT::i32, ++/*214954*/ OPC_MoveParent, ++/*214955*/ OPC_MoveChild6, ++/*214956*/ OPC_CheckInteger, 1, ++/*214958*/ OPC_CheckType, MVT::i32, ++/*214960*/ OPC_MoveParent, ++/*214961*/ OPC_MoveChild7, ++/*214962*/ OPC_CheckInteger, 1, ++/*214964*/ OPC_CheckType, MVT::i32, ++/*214966*/ OPC_MoveParent, ++/*214967*/ OPC_MoveChild, 8, ++/*214969*/ OPC_CheckInteger, 1, ++/*214971*/ OPC_CheckType, MVT::i32, ++/*214973*/ OPC_MoveParent, ++/*214974*/ OPC_MoveChild, 9, ++/*214976*/ OPC_CheckInteger, 1, ++/*214978*/ OPC_CheckType, MVT::i32, ++/*214980*/ OPC_MoveParent, ++/*214981*/ OPC_MoveChild, 10, ++/*214983*/ OPC_CheckInteger, 1, ++/*214985*/ OPC_CheckType, MVT::i32, ++/*214987*/ OPC_MoveParent, ++/*214988*/ OPC_MoveChild, 11, ++/*214990*/ OPC_CheckInteger, 1, ++/*214992*/ OPC_CheckType, MVT::i32, ++/*214994*/ OPC_MoveParent, ++/*214995*/ OPC_MoveChild, 12, ++/*214997*/ OPC_CheckInteger, 1, ++/*214999*/ OPC_CheckType, MVT::i32, ++/*215001*/ OPC_MoveParent, ++/*215002*/ OPC_MoveChild, 13, ++/*215004*/ OPC_CheckInteger, 1, ++/*215006*/ OPC_CheckType, MVT::i32, ++/*215008*/ OPC_MoveParent, ++/*215009*/ OPC_MoveChild, 14, ++/*215011*/ OPC_CheckInteger, 1, ++/*215013*/ OPC_CheckType, MVT::i32, ++/*215015*/ OPC_MoveParent, ++/*215016*/ OPC_MoveChild, 15, ++/*215018*/ OPC_CheckInteger, 1, ++/*215020*/ OPC_CheckType, MVT::i32, ++/*215022*/ OPC_MoveParent, ++/*215023*/ OPC_CheckType, MVT::v16i8, ++/*215025*/ OPC_MoveParent, ++/*215026*/ OPC_CheckType, MVT::v16i8, ++/*215028*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*215030*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*215038*/ 0, /*End of Scope*/ ++/*215039*/ 0, /*End of Scope*/ ++/*215040*/ 0, /*End of Scope*/ ++/*215041*/ /*Scope*/ 71|128,113|128,1/*30919*/, /*->245963*/ ++/*215044*/ OPC_MoveChild0, ++/*215045*/ OPC_SwitchOpcode /*2 cases */, 72|128,58/*7496*/, TARGET_VAL(ISD::BUILD_VECTOR),// ->222546 ++/*215050*/ OPC_CheckChild0Integer, 1, ++/*215052*/ OPC_CheckChild0Type, MVT::i32, ++/*215054*/ OPC_CheckChild1Integer, 1, ++/*215056*/ OPC_CheckChild1Type, MVT::i32, ++/*215058*/ OPC_CheckChild2Integer, 1, ++/*215060*/ OPC_CheckChild2Type, MVT::i32, ++/*215062*/ OPC_CheckChild3Integer, 1, ++/*215064*/ OPC_CheckChild3Type, MVT::i32, ++/*215066*/ OPC_CheckChild4Integer, 1, ++/*215068*/ OPC_CheckChild4Type, MVT::i32, ++/*215070*/ OPC_MoveChild5, ++/*215071*/ OPC_CheckInteger, 1, ++/*215073*/ OPC_CheckType, MVT::i32, ++/*215075*/ OPC_MoveParent, ++/*215076*/ OPC_MoveChild6, ++/*215077*/ OPC_CheckInteger, 1, ++/*215079*/ OPC_CheckType, MVT::i32, ++/*215081*/ OPC_MoveParent, ++/*215082*/ OPC_MoveChild7, ++/*215083*/ OPC_CheckInteger, 1, ++/*215085*/ OPC_CheckType, MVT::i32, ++/*215087*/ OPC_MoveParent, ++/*215088*/ OPC_MoveChild, 8, ++/*215090*/ OPC_CheckInteger, 1, ++/*215092*/ OPC_CheckType, MVT::i32, ++/*215094*/ OPC_MoveParent, ++/*215095*/ OPC_MoveChild, 9, ++/*215097*/ OPC_CheckInteger, 1, ++/*215099*/ OPC_CheckType, MVT::i32, ++/*215101*/ OPC_MoveParent, ++/*215102*/ OPC_MoveChild, 10, ++/*215104*/ OPC_CheckInteger, 1, ++/*215106*/ OPC_CheckType, MVT::i32, ++/*215108*/ OPC_MoveParent, ++/*215109*/ OPC_MoveChild, 11, ++/*215111*/ OPC_CheckInteger, 1, ++/*215113*/ OPC_CheckType, MVT::i32, ++/*215115*/ OPC_MoveParent, ++/*215116*/ OPC_MoveChild, 12, ++/*215118*/ OPC_CheckInteger, 1, ++/*215120*/ OPC_CheckType, MVT::i32, ++/*215122*/ OPC_MoveParent, ++/*215123*/ OPC_MoveChild, 13, ++/*215125*/ OPC_CheckInteger, 1, ++/*215127*/ OPC_CheckType, MVT::i32, ++/*215129*/ OPC_MoveParent, ++/*215130*/ OPC_MoveChild, 14, ++/*215132*/ OPC_CheckInteger, 1, ++/*215134*/ OPC_CheckType, MVT::i32, ++/*215136*/ OPC_MoveParent, ++/*215137*/ OPC_MoveChild, 15, ++/*215139*/ OPC_CheckInteger, 1, ++/*215141*/ OPC_CheckType, MVT::i32, ++/*215143*/ OPC_MoveParent, ++/*215144*/ OPC_MoveParent, ++/*215145*/ OPC_MoveChild1, ++/*215146*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*215149*/ OPC_RecordChild0, // #0 = $a ++/*215150*/ OPC_RecordChild1, // #1 = $b ++/*215151*/ OPC_MoveParent, ++/*215152*/ OPC_MoveParent, ++/*215153*/ OPC_MoveChild1, ++/*215154*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*215157*/ OPC_MoveChild0, ++/*215158*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*215161*/ OPC_Scope, 24|128,15/*1944*/, /*->217108*/ // 7 children in Scope ++/*215164*/ OPC_MoveChild0, ++/*215165*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*215168*/ OPC_Scope, 65|128,2/*321*/, /*->215492*/ // 6 children in Scope ++/*215171*/ OPC_MoveChild0, ++/*215172*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*215175*/ OPC_CheckChild0Integer, 1, ++/*215177*/ OPC_CheckChild0Type, MVT::i32, ++/*215179*/ OPC_CheckChild1Integer, 1, ++/*215181*/ OPC_CheckChild1Type, MVT::i32, ++/*215183*/ OPC_CheckChild2Integer, 1, ++/*215185*/ OPC_CheckChild2Type, MVT::i32, ++/*215187*/ OPC_CheckChild3Integer, 1, ++/*215189*/ OPC_CheckChild3Type, MVT::i32, ++/*215191*/ OPC_CheckChild4Integer, 1, ++/*215193*/ OPC_CheckChild4Type, MVT::i32, ++/*215195*/ OPC_MoveChild5, ++/*215196*/ OPC_CheckInteger, 1, ++/*215198*/ OPC_CheckType, MVT::i32, ++/*215200*/ OPC_MoveParent, ++/*215201*/ OPC_MoveChild6, ++/*215202*/ OPC_CheckInteger, 1, ++/*215204*/ OPC_CheckType, MVT::i32, ++/*215206*/ OPC_MoveParent, ++/*215207*/ OPC_MoveChild7, ++/*215208*/ OPC_CheckInteger, 1, ++/*215210*/ OPC_CheckType, MVT::i32, ++/*215212*/ OPC_MoveParent, ++/*215213*/ OPC_MoveChild, 8, ++/*215215*/ OPC_CheckInteger, 1, ++/*215217*/ OPC_CheckType, MVT::i32, ++/*215219*/ OPC_MoveParent, ++/*215220*/ OPC_MoveChild, 9, ++/*215222*/ OPC_CheckInteger, 1, ++/*215224*/ OPC_CheckType, MVT::i32, ++/*215226*/ OPC_MoveParent, ++/*215227*/ OPC_MoveChild, 10, ++/*215229*/ OPC_CheckInteger, 1, ++/*215231*/ OPC_CheckType, MVT::i32, ++/*215233*/ OPC_MoveParent, ++/*215234*/ OPC_MoveChild, 11, ++/*215236*/ OPC_CheckInteger, 1, ++/*215238*/ OPC_CheckType, MVT::i32, ++/*215240*/ OPC_MoveParent, ++/*215241*/ OPC_MoveChild, 12, ++/*215243*/ OPC_CheckInteger, 1, ++/*215245*/ OPC_CheckType, MVT::i32, ++/*215247*/ OPC_MoveParent, ++/*215248*/ OPC_MoveChild, 13, ++/*215250*/ OPC_CheckInteger, 1, ++/*215252*/ OPC_CheckType, MVT::i32, ++/*215254*/ OPC_MoveParent, ++/*215255*/ OPC_MoveChild, 14, ++/*215257*/ OPC_CheckInteger, 1, ++/*215259*/ OPC_CheckType, MVT::i32, ++/*215261*/ OPC_MoveParent, ++/*215262*/ OPC_MoveChild, 15, ++/*215264*/ OPC_CheckInteger, 1, ++/*215266*/ OPC_CheckType, MVT::i32, ++/*215268*/ OPC_MoveParent, ++/*215269*/ OPC_MoveParent, ++/*215270*/ OPC_CheckChild1Same, 0, ++/*215272*/ OPC_MoveParent, ++/*215273*/ OPC_CheckChild1Same, 1, ++/*215275*/ OPC_MoveParent, ++/*215276*/ OPC_MoveChild1, ++/*215277*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*215280*/ OPC_CheckChild0Integer, 7, ++/*215282*/ OPC_CheckChild0Type, MVT::i32, ++/*215284*/ OPC_CheckChild1Integer, 7, ++/*215286*/ OPC_CheckChild1Type, MVT::i32, ++/*215288*/ OPC_CheckChild2Integer, 7, ++/*215290*/ OPC_CheckChild2Type, MVT::i32, ++/*215292*/ OPC_CheckChild3Integer, 7, ++/*215294*/ OPC_CheckChild3Type, MVT::i32, ++/*215296*/ OPC_CheckChild4Integer, 7, ++/*215298*/ OPC_CheckChild4Type, MVT::i32, ++/*215300*/ OPC_MoveChild5, ++/*215301*/ OPC_CheckInteger, 7, ++/*215303*/ OPC_CheckType, MVT::i32, ++/*215305*/ OPC_MoveParent, ++/*215306*/ OPC_MoveChild6, ++/*215307*/ OPC_CheckInteger, 7, ++/*215309*/ OPC_CheckType, MVT::i32, ++/*215311*/ OPC_MoveParent, ++/*215312*/ OPC_MoveChild7, ++/*215313*/ OPC_CheckInteger, 7, ++/*215315*/ OPC_CheckType, MVT::i32, ++/*215317*/ OPC_MoveParent, ++/*215318*/ OPC_MoveChild, 8, ++/*215320*/ OPC_CheckInteger, 7, ++/*215322*/ OPC_CheckType, MVT::i32, ++/*215324*/ OPC_MoveParent, ++/*215325*/ OPC_MoveChild, 9, ++/*215327*/ OPC_CheckInteger, 7, ++/*215329*/ OPC_CheckType, MVT::i32, ++/*215331*/ OPC_MoveParent, ++/*215332*/ OPC_MoveChild, 10, ++/*215334*/ OPC_CheckInteger, 7, ++/*215336*/ OPC_CheckType, MVT::i32, ++/*215338*/ OPC_MoveParent, ++/*215339*/ OPC_MoveChild, 11, ++/*215341*/ OPC_CheckInteger, 7, ++/*215343*/ OPC_CheckType, MVT::i32, ++/*215345*/ OPC_MoveParent, ++/*215346*/ OPC_MoveChild, 12, ++/*215348*/ OPC_CheckInteger, 7, ++/*215350*/ OPC_CheckType, MVT::i32, ++/*215352*/ OPC_MoveParent, ++/*215353*/ OPC_MoveChild, 13, ++/*215355*/ OPC_CheckInteger, 7, ++/*215357*/ OPC_CheckType, MVT::i32, ++/*215359*/ OPC_MoveParent, ++/*215360*/ OPC_MoveChild, 14, ++/*215362*/ OPC_CheckInteger, 7, ++/*215364*/ OPC_CheckType, MVT::i32, ++/*215366*/ OPC_MoveParent, ++/*215367*/ OPC_MoveChild, 15, ++/*215369*/ OPC_CheckInteger, 7, ++/*215371*/ OPC_CheckType, MVT::i32, ++/*215373*/ OPC_MoveParent, ++/*215374*/ OPC_CheckType, MVT::v16i8, ++/*215376*/ OPC_MoveParent, ++/*215377*/ OPC_MoveParent, ++/*215378*/ OPC_MoveParent, ++/*215379*/ OPC_MoveChild1, ++/*215380*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*215383*/ OPC_CheckChild0Integer, 1, ++/*215385*/ OPC_CheckChild0Type, MVT::i32, ++/*215387*/ OPC_CheckChild1Integer, 1, ++/*215389*/ OPC_CheckChild1Type, MVT::i32, ++/*215391*/ OPC_CheckChild2Integer, 1, ++/*215393*/ OPC_CheckChild2Type, MVT::i32, ++/*215395*/ OPC_CheckChild3Integer, 1, ++/*215397*/ OPC_CheckChild3Type, MVT::i32, ++/*215399*/ OPC_CheckChild4Integer, 1, ++/*215401*/ OPC_CheckChild4Type, MVT::i32, ++/*215403*/ OPC_MoveChild5, ++/*215404*/ OPC_CheckInteger, 1, ++/*215406*/ OPC_CheckType, MVT::i32, ++/*215408*/ OPC_MoveParent, ++/*215409*/ OPC_MoveChild6, ++/*215410*/ OPC_CheckInteger, 1, ++/*215412*/ OPC_CheckType, MVT::i32, ++/*215414*/ OPC_MoveParent, ++/*215415*/ OPC_MoveChild7, ++/*215416*/ OPC_CheckInteger, 1, ++/*215418*/ OPC_CheckType, MVT::i32, ++/*215420*/ OPC_MoveParent, ++/*215421*/ OPC_MoveChild, 8, ++/*215423*/ OPC_CheckInteger, 1, ++/*215425*/ OPC_CheckType, MVT::i32, ++/*215427*/ OPC_MoveParent, ++/*215428*/ OPC_MoveChild, 9, ++/*215430*/ OPC_CheckInteger, 1, ++/*215432*/ OPC_CheckType, MVT::i32, ++/*215434*/ OPC_MoveParent, ++/*215435*/ OPC_MoveChild, 10, ++/*215437*/ OPC_CheckInteger, 1, ++/*215439*/ OPC_CheckType, MVT::i32, ++/*215441*/ OPC_MoveParent, ++/*215442*/ OPC_MoveChild, 11, ++/*215444*/ OPC_CheckInteger, 1, ++/*215446*/ OPC_CheckType, MVT::i32, ++/*215448*/ OPC_MoveParent, ++/*215449*/ OPC_MoveChild, 12, ++/*215451*/ OPC_CheckInteger, 1, ++/*215453*/ OPC_CheckType, MVT::i32, ++/*215455*/ OPC_MoveParent, ++/*215456*/ OPC_MoveChild, 13, ++/*215458*/ OPC_CheckInteger, 1, ++/*215460*/ OPC_CheckType, MVT::i32, ++/*215462*/ OPC_MoveParent, ++/*215463*/ OPC_MoveChild, 14, ++/*215465*/ OPC_CheckInteger, 1, ++/*215467*/ OPC_CheckType, MVT::i32, ++/*215469*/ OPC_MoveParent, ++/*215470*/ OPC_MoveChild, 15, ++/*215472*/ OPC_CheckInteger, 1, ++/*215474*/ OPC_CheckType, MVT::i32, ++/*215476*/ OPC_MoveParent, ++/*215477*/ OPC_CheckType, MVT::v16i8, ++/*215479*/ OPC_MoveParent, ++/*215480*/ OPC_CheckType, MVT::v16i8, ++/*215482*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*215484*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b)), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a), LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*215492*/ /*Scope*/ 65|128,2/*321*/, /*->215815*/ ++/*215494*/ OPC_CheckChild0Same, 0, ++/*215496*/ OPC_MoveChild1, ++/*215497*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*215500*/ OPC_CheckChild0Integer, 1, ++/*215502*/ OPC_CheckChild0Type, MVT::i32, ++/*215504*/ OPC_CheckChild1Integer, 1, ++/*215506*/ OPC_CheckChild1Type, MVT::i32, ++/*215508*/ OPC_CheckChild2Integer, 1, ++/*215510*/ OPC_CheckChild2Type, MVT::i32, ++/*215512*/ OPC_CheckChild3Integer, 1, ++/*215514*/ OPC_CheckChild3Type, MVT::i32, ++/*215516*/ OPC_CheckChild4Integer, 1, ++/*215518*/ OPC_CheckChild4Type, MVT::i32, ++/*215520*/ OPC_MoveChild5, ++/*215521*/ OPC_CheckInteger, 1, ++/*215523*/ OPC_CheckType, MVT::i32, ++/*215525*/ OPC_MoveParent, ++/*215526*/ OPC_MoveChild6, ++/*215527*/ OPC_CheckInteger, 1, ++/*215529*/ OPC_CheckType, MVT::i32, ++/*215531*/ OPC_MoveParent, ++/*215532*/ OPC_MoveChild7, ++/*215533*/ OPC_CheckInteger, 1, ++/*215535*/ OPC_CheckType, MVT::i32, ++/*215537*/ OPC_MoveParent, ++/*215538*/ OPC_MoveChild, 8, ++/*215540*/ OPC_CheckInteger, 1, ++/*215542*/ OPC_CheckType, MVT::i32, ++/*215544*/ OPC_MoveParent, ++/*215545*/ OPC_MoveChild, 9, ++/*215547*/ OPC_CheckInteger, 1, ++/*215549*/ OPC_CheckType, MVT::i32, ++/*215551*/ OPC_MoveParent, ++/*215552*/ OPC_MoveChild, 10, ++/*215554*/ OPC_CheckInteger, 1, ++/*215556*/ OPC_CheckType, MVT::i32, ++/*215558*/ OPC_MoveParent, ++/*215559*/ OPC_MoveChild, 11, ++/*215561*/ OPC_CheckInteger, 1, ++/*215563*/ OPC_CheckType, MVT::i32, ++/*215565*/ OPC_MoveParent, ++/*215566*/ OPC_MoveChild, 12, ++/*215568*/ OPC_CheckInteger, 1, ++/*215570*/ OPC_CheckType, MVT::i32, ++/*215572*/ OPC_MoveParent, ++/*215573*/ OPC_MoveChild, 13, ++/*215575*/ OPC_CheckInteger, 1, ++/*215577*/ OPC_CheckType, MVT::i32, ++/*215579*/ OPC_MoveParent, ++/*215580*/ OPC_MoveChild, 14, ++/*215582*/ OPC_CheckInteger, 1, ++/*215584*/ OPC_CheckType, MVT::i32, ++/*215586*/ OPC_MoveParent, ++/*215587*/ OPC_MoveChild, 15, ++/*215589*/ OPC_CheckInteger, 1, ++/*215591*/ OPC_CheckType, MVT::i32, ++/*215593*/ OPC_MoveParent, ++/*215594*/ OPC_MoveParent, ++/*215595*/ OPC_MoveParent, ++/*215596*/ OPC_CheckChild1Same, 1, ++/*215598*/ OPC_MoveParent, ++/*215599*/ OPC_MoveChild1, ++/*215600*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*215603*/ OPC_CheckChild0Integer, 7, ++/*215605*/ OPC_CheckChild0Type, MVT::i32, ++/*215607*/ OPC_CheckChild1Integer, 7, ++/*215609*/ OPC_CheckChild1Type, MVT::i32, ++/*215611*/ OPC_CheckChild2Integer, 7, ++/*215613*/ OPC_CheckChild2Type, MVT::i32, ++/*215615*/ OPC_CheckChild3Integer, 7, ++/*215617*/ OPC_CheckChild3Type, MVT::i32, ++/*215619*/ OPC_CheckChild4Integer, 7, ++/*215621*/ OPC_CheckChild4Type, MVT::i32, ++/*215623*/ OPC_MoveChild5, ++/*215624*/ OPC_CheckInteger, 7, ++/*215626*/ OPC_CheckType, MVT::i32, ++/*215628*/ OPC_MoveParent, ++/*215629*/ OPC_MoveChild6, ++/*215630*/ OPC_CheckInteger, 7, ++/*215632*/ OPC_CheckType, MVT::i32, ++/*215634*/ OPC_MoveParent, ++/*215635*/ OPC_MoveChild7, ++/*215636*/ OPC_CheckInteger, 7, ++/*215638*/ OPC_CheckType, MVT::i32, ++/*215640*/ OPC_MoveParent, ++/*215641*/ OPC_MoveChild, 8, ++/*215643*/ OPC_CheckInteger, 7, ++/*215645*/ OPC_CheckType, MVT::i32, ++/*215647*/ OPC_MoveParent, ++/*215648*/ OPC_MoveChild, 9, ++/*215650*/ OPC_CheckInteger, 7, ++/*215652*/ OPC_CheckType, MVT::i32, ++/*215654*/ OPC_MoveParent, ++/*215655*/ OPC_MoveChild, 10, ++/*215657*/ OPC_CheckInteger, 7, ++/*215659*/ OPC_CheckType, MVT::i32, ++/*215661*/ OPC_MoveParent, ++/*215662*/ OPC_MoveChild, 11, ++/*215664*/ OPC_CheckInteger, 7, ++/*215666*/ OPC_CheckType, MVT::i32, ++/*215668*/ OPC_MoveParent, ++/*215669*/ OPC_MoveChild, 12, ++/*215671*/ OPC_CheckInteger, 7, ++/*215673*/ OPC_CheckType, MVT::i32, ++/*215675*/ OPC_MoveParent, ++/*215676*/ OPC_MoveChild, 13, ++/*215678*/ OPC_CheckInteger, 7, ++/*215680*/ OPC_CheckType, MVT::i32, ++/*215682*/ OPC_MoveParent, ++/*215683*/ OPC_MoveChild, 14, ++/*215685*/ OPC_CheckInteger, 7, ++/*215687*/ OPC_CheckType, MVT::i32, ++/*215689*/ OPC_MoveParent, ++/*215690*/ OPC_MoveChild, 15, ++/*215692*/ OPC_CheckInteger, 7, ++/*215694*/ OPC_CheckType, MVT::i32, ++/*215696*/ OPC_MoveParent, ++/*215697*/ OPC_CheckType, MVT::v16i8, ++/*215699*/ OPC_MoveParent, ++/*215700*/ OPC_MoveParent, ++/*215701*/ OPC_MoveParent, ++/*215702*/ OPC_MoveChild1, ++/*215703*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*215706*/ OPC_CheckChild0Integer, 1, ++/*215708*/ OPC_CheckChild0Type, MVT::i32, ++/*215710*/ OPC_CheckChild1Integer, 1, ++/*215712*/ OPC_CheckChild1Type, MVT::i32, ++/*215714*/ OPC_CheckChild2Integer, 1, ++/*215716*/ OPC_CheckChild2Type, MVT::i32, ++/*215718*/ OPC_CheckChild3Integer, 1, ++/*215720*/ OPC_CheckChild3Type, MVT::i32, ++/*215722*/ OPC_CheckChild4Integer, 1, ++/*215724*/ OPC_CheckChild4Type, MVT::i32, ++/*215726*/ OPC_MoveChild5, ++/*215727*/ OPC_CheckInteger, 1, ++/*215729*/ OPC_CheckType, MVT::i32, ++/*215731*/ OPC_MoveParent, ++/*215732*/ OPC_MoveChild6, ++/*215733*/ OPC_CheckInteger, 1, ++/*215735*/ OPC_CheckType, MVT::i32, ++/*215737*/ OPC_MoveParent, ++/*215738*/ OPC_MoveChild7, ++/*215739*/ OPC_CheckInteger, 1, ++/*215741*/ OPC_CheckType, MVT::i32, ++/*215743*/ OPC_MoveParent, ++/*215744*/ OPC_MoveChild, 8, ++/*215746*/ OPC_CheckInteger, 1, ++/*215748*/ OPC_CheckType, MVT::i32, ++/*215750*/ OPC_MoveParent, ++/*215751*/ OPC_MoveChild, 9, ++/*215753*/ OPC_CheckInteger, 1, ++/*215755*/ OPC_CheckType, MVT::i32, ++/*215757*/ OPC_MoveParent, ++/*215758*/ OPC_MoveChild, 10, ++/*215760*/ OPC_CheckInteger, 1, ++/*215762*/ OPC_CheckType, MVT::i32, ++/*215764*/ OPC_MoveParent, ++/*215765*/ OPC_MoveChild, 11, ++/*215767*/ OPC_CheckInteger, 1, ++/*215769*/ OPC_CheckType, MVT::i32, ++/*215771*/ OPC_MoveParent, ++/*215772*/ OPC_MoveChild, 12, ++/*215774*/ OPC_CheckInteger, 1, ++/*215776*/ OPC_CheckType, MVT::i32, ++/*215778*/ OPC_MoveParent, ++/*215779*/ OPC_MoveChild, 13, ++/*215781*/ OPC_CheckInteger, 1, ++/*215783*/ OPC_CheckType, MVT::i32, ++/*215785*/ OPC_MoveParent, ++/*215786*/ OPC_MoveChild, 14, ++/*215788*/ OPC_CheckInteger, 1, ++/*215790*/ OPC_CheckType, MVT::i32, ++/*215792*/ OPC_MoveParent, ++/*215793*/ OPC_MoveChild, 15, ++/*215795*/ OPC_CheckInteger, 1, ++/*215797*/ OPC_CheckType, MVT::i32, ++/*215799*/ OPC_MoveParent, ++/*215800*/ OPC_CheckType, MVT::v16i8, ++/*215802*/ OPC_MoveParent, ++/*215803*/ OPC_CheckType, MVT::v16i8, ++/*215805*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*215807*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b)), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*215815*/ /*Scope*/ 65|128,2/*321*/, /*->216138*/ ++/*215817*/ OPC_MoveChild0, ++/*215818*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*215821*/ OPC_CheckChild0Integer, 1, ++/*215823*/ OPC_CheckChild0Type, MVT::i32, ++/*215825*/ OPC_CheckChild1Integer, 1, ++/*215827*/ OPC_CheckChild1Type, MVT::i32, ++/*215829*/ OPC_CheckChild2Integer, 1, ++/*215831*/ OPC_CheckChild2Type, MVT::i32, ++/*215833*/ OPC_CheckChild3Integer, 1, ++/*215835*/ OPC_CheckChild3Type, MVT::i32, ++/*215837*/ OPC_CheckChild4Integer, 1, ++/*215839*/ OPC_CheckChild4Type, MVT::i32, ++/*215841*/ OPC_MoveChild5, ++/*215842*/ OPC_CheckInteger, 1, ++/*215844*/ OPC_CheckType, MVT::i32, ++/*215846*/ OPC_MoveParent, ++/*215847*/ OPC_MoveChild6, ++/*215848*/ OPC_CheckInteger, 1, ++/*215850*/ OPC_CheckType, MVT::i32, ++/*215852*/ OPC_MoveParent, ++/*215853*/ OPC_MoveChild7, ++/*215854*/ OPC_CheckInteger, 1, ++/*215856*/ OPC_CheckType, MVT::i32, ++/*215858*/ OPC_MoveParent, ++/*215859*/ OPC_MoveChild, 8, ++/*215861*/ OPC_CheckInteger, 1, ++/*215863*/ OPC_CheckType, MVT::i32, ++/*215865*/ OPC_MoveParent, ++/*215866*/ OPC_MoveChild, 9, ++/*215868*/ OPC_CheckInteger, 1, ++/*215870*/ OPC_CheckType, MVT::i32, ++/*215872*/ OPC_MoveParent, ++/*215873*/ OPC_MoveChild, 10, ++/*215875*/ OPC_CheckInteger, 1, ++/*215877*/ OPC_CheckType, MVT::i32, ++/*215879*/ OPC_MoveParent, ++/*215880*/ OPC_MoveChild, 11, ++/*215882*/ OPC_CheckInteger, 1, ++/*215884*/ OPC_CheckType, MVT::i32, ++/*215886*/ OPC_MoveParent, ++/*215887*/ OPC_MoveChild, 12, ++/*215889*/ OPC_CheckInteger, 1, ++/*215891*/ OPC_CheckType, MVT::i32, ++/*215893*/ OPC_MoveParent, ++/*215894*/ OPC_MoveChild, 13, ++/*215896*/ OPC_CheckInteger, 1, ++/*215898*/ OPC_CheckType, MVT::i32, ++/*215900*/ OPC_MoveParent, ++/*215901*/ OPC_MoveChild, 14, ++/*215903*/ OPC_CheckInteger, 1, ++/*215905*/ OPC_CheckType, MVT::i32, ++/*215907*/ OPC_MoveParent, ++/*215908*/ OPC_MoveChild, 15, ++/*215910*/ OPC_CheckInteger, 1, ++/*215912*/ OPC_CheckType, MVT::i32, ++/*215914*/ OPC_MoveParent, ++/*215915*/ OPC_MoveParent, ++/*215916*/ OPC_CheckChild1Same, 1, ++/*215918*/ OPC_MoveParent, ++/*215919*/ OPC_CheckChild1Same, 0, ++/*215921*/ OPC_MoveParent, ++/*215922*/ OPC_MoveChild1, ++/*215923*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*215926*/ OPC_CheckChild0Integer, 7, ++/*215928*/ OPC_CheckChild0Type, MVT::i32, ++/*215930*/ OPC_CheckChild1Integer, 7, ++/*215932*/ OPC_CheckChild1Type, MVT::i32, ++/*215934*/ OPC_CheckChild2Integer, 7, ++/*215936*/ OPC_CheckChild2Type, MVT::i32, ++/*215938*/ OPC_CheckChild3Integer, 7, ++/*215940*/ OPC_CheckChild3Type, MVT::i32, ++/*215942*/ OPC_CheckChild4Integer, 7, ++/*215944*/ OPC_CheckChild4Type, MVT::i32, ++/*215946*/ OPC_MoveChild5, ++/*215947*/ OPC_CheckInteger, 7, ++/*215949*/ OPC_CheckType, MVT::i32, ++/*215951*/ OPC_MoveParent, ++/*215952*/ OPC_MoveChild6, ++/*215953*/ OPC_CheckInteger, 7, ++/*215955*/ OPC_CheckType, MVT::i32, ++/*215957*/ OPC_MoveParent, ++/*215958*/ OPC_MoveChild7, ++/*215959*/ OPC_CheckInteger, 7, ++/*215961*/ OPC_CheckType, MVT::i32, ++/*215963*/ OPC_MoveParent, ++/*215964*/ OPC_MoveChild, 8, ++/*215966*/ OPC_CheckInteger, 7, ++/*215968*/ OPC_CheckType, MVT::i32, ++/*215970*/ OPC_MoveParent, ++/*215971*/ OPC_MoveChild, 9, ++/*215973*/ OPC_CheckInteger, 7, ++/*215975*/ OPC_CheckType, MVT::i32, ++/*215977*/ OPC_MoveParent, ++/*215978*/ OPC_MoveChild, 10, ++/*215980*/ OPC_CheckInteger, 7, ++/*215982*/ OPC_CheckType, MVT::i32, ++/*215984*/ OPC_MoveParent, ++/*215985*/ OPC_MoveChild, 11, ++/*215987*/ OPC_CheckInteger, 7, ++/*215989*/ OPC_CheckType, MVT::i32, ++/*215991*/ OPC_MoveParent, ++/*215992*/ OPC_MoveChild, 12, ++/*215994*/ OPC_CheckInteger, 7, ++/*215996*/ OPC_CheckType, MVT::i32, ++/*215998*/ OPC_MoveParent, ++/*215999*/ OPC_MoveChild, 13, ++/*216001*/ OPC_CheckInteger, 7, ++/*216003*/ OPC_CheckType, MVT::i32, ++/*216005*/ OPC_MoveParent, ++/*216006*/ OPC_MoveChild, 14, ++/*216008*/ OPC_CheckInteger, 7, ++/*216010*/ OPC_CheckType, MVT::i32, ++/*216012*/ OPC_MoveParent, ++/*216013*/ OPC_MoveChild, 15, ++/*216015*/ OPC_CheckInteger, 7, ++/*216017*/ OPC_CheckType, MVT::i32, ++/*216019*/ OPC_MoveParent, ++/*216020*/ OPC_CheckType, MVT::v16i8, ++/*216022*/ OPC_MoveParent, ++/*216023*/ OPC_MoveParent, ++/*216024*/ OPC_MoveParent, ++/*216025*/ OPC_MoveChild1, ++/*216026*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*216029*/ OPC_CheckChild0Integer, 1, ++/*216031*/ OPC_CheckChild0Type, MVT::i32, ++/*216033*/ OPC_CheckChild1Integer, 1, ++/*216035*/ OPC_CheckChild1Type, MVT::i32, ++/*216037*/ OPC_CheckChild2Integer, 1, ++/*216039*/ OPC_CheckChild2Type, MVT::i32, ++/*216041*/ OPC_CheckChild3Integer, 1, ++/*216043*/ OPC_CheckChild3Type, MVT::i32, ++/*216045*/ OPC_CheckChild4Integer, 1, ++/*216047*/ OPC_CheckChild4Type, MVT::i32, ++/*216049*/ OPC_MoveChild5, ++/*216050*/ OPC_CheckInteger, 1, ++/*216052*/ OPC_CheckType, MVT::i32, ++/*216054*/ OPC_MoveParent, ++/*216055*/ OPC_MoveChild6, ++/*216056*/ OPC_CheckInteger, 1, ++/*216058*/ OPC_CheckType, MVT::i32, ++/*216060*/ OPC_MoveParent, ++/*216061*/ OPC_MoveChild7, ++/*216062*/ OPC_CheckInteger, 1, ++/*216064*/ OPC_CheckType, MVT::i32, ++/*216066*/ OPC_MoveParent, ++/*216067*/ OPC_MoveChild, 8, ++/*216069*/ OPC_CheckInteger, 1, ++/*216071*/ OPC_CheckType, MVT::i32, ++/*216073*/ OPC_MoveParent, ++/*216074*/ OPC_MoveChild, 9, ++/*216076*/ OPC_CheckInteger, 1, ++/*216078*/ OPC_CheckType, MVT::i32, ++/*216080*/ OPC_MoveParent, ++/*216081*/ OPC_MoveChild, 10, ++/*216083*/ OPC_CheckInteger, 1, ++/*216085*/ OPC_CheckType, MVT::i32, ++/*216087*/ OPC_MoveParent, ++/*216088*/ OPC_MoveChild, 11, ++/*216090*/ OPC_CheckInteger, 1, ++/*216092*/ OPC_CheckType, MVT::i32, ++/*216094*/ OPC_MoveParent, ++/*216095*/ OPC_MoveChild, 12, ++/*216097*/ OPC_CheckInteger, 1, ++/*216099*/ OPC_CheckType, MVT::i32, ++/*216101*/ OPC_MoveParent, ++/*216102*/ OPC_MoveChild, 13, ++/*216104*/ OPC_CheckInteger, 1, ++/*216106*/ OPC_CheckType, MVT::i32, ++/*216108*/ OPC_MoveParent, ++/*216109*/ OPC_MoveChild, 14, ++/*216111*/ OPC_CheckInteger, 1, ++/*216113*/ OPC_CheckType, MVT::i32, ++/*216115*/ OPC_MoveParent, ++/*216116*/ OPC_MoveChild, 15, ++/*216118*/ OPC_CheckInteger, 1, ++/*216120*/ OPC_CheckType, MVT::i32, ++/*216122*/ OPC_MoveParent, ++/*216123*/ OPC_CheckType, MVT::v16i8, ++/*216125*/ OPC_MoveParent, ++/*216126*/ OPC_CheckType, MVT::v16i8, ++/*216128*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*216130*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b)), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b), LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*216138*/ /*Scope*/ 65|128,2/*321*/, /*->216461*/ ++/*216140*/ OPC_CheckChild0Same, 1, ++/*216142*/ OPC_MoveChild1, ++/*216143*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*216146*/ OPC_CheckChild0Integer, 1, ++/*216148*/ OPC_CheckChild0Type, MVT::i32, ++/*216150*/ OPC_CheckChild1Integer, 1, ++/*216152*/ OPC_CheckChild1Type, MVT::i32, ++/*216154*/ OPC_CheckChild2Integer, 1, ++/*216156*/ OPC_CheckChild2Type, MVT::i32, ++/*216158*/ OPC_CheckChild3Integer, 1, ++/*216160*/ OPC_CheckChild3Type, MVT::i32, ++/*216162*/ OPC_CheckChild4Integer, 1, ++/*216164*/ OPC_CheckChild4Type, MVT::i32, ++/*216166*/ OPC_MoveChild5, ++/*216167*/ OPC_CheckInteger, 1, ++/*216169*/ OPC_CheckType, MVT::i32, ++/*216171*/ OPC_MoveParent, ++/*216172*/ OPC_MoveChild6, ++/*216173*/ OPC_CheckInteger, 1, ++/*216175*/ OPC_CheckType, MVT::i32, ++/*216177*/ OPC_MoveParent, ++/*216178*/ OPC_MoveChild7, ++/*216179*/ OPC_CheckInteger, 1, ++/*216181*/ OPC_CheckType, MVT::i32, ++/*216183*/ OPC_MoveParent, ++/*216184*/ OPC_MoveChild, 8, ++/*216186*/ OPC_CheckInteger, 1, ++/*216188*/ OPC_CheckType, MVT::i32, ++/*216190*/ OPC_MoveParent, ++/*216191*/ OPC_MoveChild, 9, ++/*216193*/ OPC_CheckInteger, 1, ++/*216195*/ OPC_CheckType, MVT::i32, ++/*216197*/ OPC_MoveParent, ++/*216198*/ OPC_MoveChild, 10, ++/*216200*/ OPC_CheckInteger, 1, ++/*216202*/ OPC_CheckType, MVT::i32, ++/*216204*/ OPC_MoveParent, ++/*216205*/ OPC_MoveChild, 11, ++/*216207*/ OPC_CheckInteger, 1, ++/*216209*/ OPC_CheckType, MVT::i32, ++/*216211*/ OPC_MoveParent, ++/*216212*/ OPC_MoveChild, 12, ++/*216214*/ OPC_CheckInteger, 1, ++/*216216*/ OPC_CheckType, MVT::i32, ++/*216218*/ OPC_MoveParent, ++/*216219*/ OPC_MoveChild, 13, ++/*216221*/ OPC_CheckInteger, 1, ++/*216223*/ OPC_CheckType, MVT::i32, ++/*216225*/ OPC_MoveParent, ++/*216226*/ OPC_MoveChild, 14, ++/*216228*/ OPC_CheckInteger, 1, ++/*216230*/ OPC_CheckType, MVT::i32, ++/*216232*/ OPC_MoveParent, ++/*216233*/ OPC_MoveChild, 15, ++/*216235*/ OPC_CheckInteger, 1, ++/*216237*/ OPC_CheckType, MVT::i32, ++/*216239*/ OPC_MoveParent, ++/*216240*/ OPC_MoveParent, ++/*216241*/ OPC_MoveParent, ++/*216242*/ OPC_CheckChild1Same, 0, ++/*216244*/ OPC_MoveParent, ++/*216245*/ OPC_MoveChild1, ++/*216246*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*216249*/ OPC_CheckChild0Integer, 7, ++/*216251*/ OPC_CheckChild0Type, MVT::i32, ++/*216253*/ OPC_CheckChild1Integer, 7, ++/*216255*/ OPC_CheckChild1Type, MVT::i32, ++/*216257*/ OPC_CheckChild2Integer, 7, ++/*216259*/ OPC_CheckChild2Type, MVT::i32, ++/*216261*/ OPC_CheckChild3Integer, 7, ++/*216263*/ OPC_CheckChild3Type, MVT::i32, ++/*216265*/ OPC_CheckChild4Integer, 7, ++/*216267*/ OPC_CheckChild4Type, MVT::i32, ++/*216269*/ OPC_MoveChild5, ++/*216270*/ OPC_CheckInteger, 7, ++/*216272*/ OPC_CheckType, MVT::i32, ++/*216274*/ OPC_MoveParent, ++/*216275*/ OPC_MoveChild6, ++/*216276*/ OPC_CheckInteger, 7, ++/*216278*/ OPC_CheckType, MVT::i32, ++/*216280*/ OPC_MoveParent, ++/*216281*/ OPC_MoveChild7, ++/*216282*/ OPC_CheckInteger, 7, ++/*216284*/ OPC_CheckType, MVT::i32, ++/*216286*/ OPC_MoveParent, ++/*216287*/ OPC_MoveChild, 8, ++/*216289*/ OPC_CheckInteger, 7, ++/*216291*/ OPC_CheckType, MVT::i32, ++/*216293*/ OPC_MoveParent, ++/*216294*/ OPC_MoveChild, 9, ++/*216296*/ OPC_CheckInteger, 7, ++/*216298*/ OPC_CheckType, MVT::i32, ++/*216300*/ OPC_MoveParent, ++/*216301*/ OPC_MoveChild, 10, ++/*216303*/ OPC_CheckInteger, 7, ++/*216305*/ OPC_CheckType, MVT::i32, ++/*216307*/ OPC_MoveParent, ++/*216308*/ OPC_MoveChild, 11, ++/*216310*/ OPC_CheckInteger, 7, ++/*216312*/ OPC_CheckType, MVT::i32, ++/*216314*/ OPC_MoveParent, ++/*216315*/ OPC_MoveChild, 12, ++/*216317*/ OPC_CheckInteger, 7, ++/*216319*/ OPC_CheckType, MVT::i32, ++/*216321*/ OPC_MoveParent, ++/*216322*/ OPC_MoveChild, 13, ++/*216324*/ OPC_CheckInteger, 7, ++/*216326*/ OPC_CheckType, MVT::i32, ++/*216328*/ OPC_MoveParent, ++/*216329*/ OPC_MoveChild, 14, ++/*216331*/ OPC_CheckInteger, 7, ++/*216333*/ OPC_CheckType, MVT::i32, ++/*216335*/ OPC_MoveParent, ++/*216336*/ OPC_MoveChild, 15, ++/*216338*/ OPC_CheckInteger, 7, ++/*216340*/ OPC_CheckType, MVT::i32, ++/*216342*/ OPC_MoveParent, ++/*216343*/ OPC_CheckType, MVT::v16i8, ++/*216345*/ OPC_MoveParent, ++/*216346*/ OPC_MoveParent, ++/*216347*/ OPC_MoveParent, ++/*216348*/ OPC_MoveChild1, ++/*216349*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*216352*/ OPC_CheckChild0Integer, 1, ++/*216354*/ OPC_CheckChild0Type, MVT::i32, ++/*216356*/ OPC_CheckChild1Integer, 1, ++/*216358*/ OPC_CheckChild1Type, MVT::i32, ++/*216360*/ OPC_CheckChild2Integer, 1, ++/*216362*/ OPC_CheckChild2Type, MVT::i32, ++/*216364*/ OPC_CheckChild3Integer, 1, ++/*216366*/ OPC_CheckChild3Type, MVT::i32, ++/*216368*/ OPC_CheckChild4Integer, 1, ++/*216370*/ OPC_CheckChild4Type, MVT::i32, ++/*216372*/ OPC_MoveChild5, ++/*216373*/ OPC_CheckInteger, 1, ++/*216375*/ OPC_CheckType, MVT::i32, ++/*216377*/ OPC_MoveParent, ++/*216378*/ OPC_MoveChild6, ++/*216379*/ OPC_CheckInteger, 1, ++/*216381*/ OPC_CheckType, MVT::i32, ++/*216383*/ OPC_MoveParent, ++/*216384*/ OPC_MoveChild7, ++/*216385*/ OPC_CheckInteger, 1, ++/*216387*/ OPC_CheckType, MVT::i32, ++/*216389*/ OPC_MoveParent, ++/*216390*/ OPC_MoveChild, 8, ++/*216392*/ OPC_CheckInteger, 1, ++/*216394*/ OPC_CheckType, MVT::i32, ++/*216396*/ OPC_MoveParent, ++/*216397*/ OPC_MoveChild, 9, ++/*216399*/ OPC_CheckInteger, 1, ++/*216401*/ OPC_CheckType, MVT::i32, ++/*216403*/ OPC_MoveParent, ++/*216404*/ OPC_MoveChild, 10, ++/*216406*/ OPC_CheckInteger, 1, ++/*216408*/ OPC_CheckType, MVT::i32, ++/*216410*/ OPC_MoveParent, ++/*216411*/ OPC_MoveChild, 11, ++/*216413*/ OPC_CheckInteger, 1, ++/*216415*/ OPC_CheckType, MVT::i32, ++/*216417*/ OPC_MoveParent, ++/*216418*/ OPC_MoveChild, 12, ++/*216420*/ OPC_CheckInteger, 1, ++/*216422*/ OPC_CheckType, MVT::i32, ++/*216424*/ OPC_MoveParent, ++/*216425*/ OPC_MoveChild, 13, ++/*216427*/ OPC_CheckInteger, 1, ++/*216429*/ OPC_CheckType, MVT::i32, ++/*216431*/ OPC_MoveParent, ++/*216432*/ OPC_MoveChild, 14, ++/*216434*/ OPC_CheckInteger, 1, ++/*216436*/ OPC_CheckType, MVT::i32, ++/*216438*/ OPC_MoveParent, ++/*216439*/ OPC_MoveChild, 15, ++/*216441*/ OPC_CheckInteger, 1, ++/*216443*/ OPC_CheckType, MVT::i32, ++/*216445*/ OPC_MoveParent, ++/*216446*/ OPC_CheckType, MVT::v16i8, ++/*216448*/ OPC_MoveParent, ++/*216449*/ OPC_CheckType, MVT::v16i8, ++/*216451*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*216453*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b)), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*216461*/ /*Scope*/ 65|128,2/*321*/, /*->216784*/ ++/*216463*/ OPC_CheckChild0Same, 0, ++/*216465*/ OPC_CheckChild1Same, 1, ++/*216467*/ OPC_MoveParent, ++/*216468*/ OPC_MoveChild1, ++/*216469*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*216472*/ OPC_CheckChild0Integer, 1, ++/*216474*/ OPC_CheckChild0Type, MVT::i32, ++/*216476*/ OPC_CheckChild1Integer, 1, ++/*216478*/ OPC_CheckChild1Type, MVT::i32, ++/*216480*/ OPC_CheckChild2Integer, 1, ++/*216482*/ OPC_CheckChild2Type, MVT::i32, ++/*216484*/ OPC_CheckChild3Integer, 1, ++/*216486*/ OPC_CheckChild3Type, MVT::i32, ++/*216488*/ OPC_CheckChild4Integer, 1, ++/*216490*/ OPC_CheckChild4Type, MVT::i32, ++/*216492*/ OPC_MoveChild5, ++/*216493*/ OPC_CheckInteger, 1, ++/*216495*/ OPC_CheckType, MVT::i32, ++/*216497*/ OPC_MoveParent, ++/*216498*/ OPC_MoveChild6, ++/*216499*/ OPC_CheckInteger, 1, ++/*216501*/ OPC_CheckType, MVT::i32, ++/*216503*/ OPC_MoveParent, ++/*216504*/ OPC_MoveChild7, ++/*216505*/ OPC_CheckInteger, 1, ++/*216507*/ OPC_CheckType, MVT::i32, ++/*216509*/ OPC_MoveParent, ++/*216510*/ OPC_MoveChild, 8, ++/*216512*/ OPC_CheckInteger, 1, ++/*216514*/ OPC_CheckType, MVT::i32, ++/*216516*/ OPC_MoveParent, ++/*216517*/ OPC_MoveChild, 9, ++/*216519*/ OPC_CheckInteger, 1, ++/*216521*/ OPC_CheckType, MVT::i32, ++/*216523*/ OPC_MoveParent, ++/*216524*/ OPC_MoveChild, 10, ++/*216526*/ OPC_CheckInteger, 1, ++/*216528*/ OPC_CheckType, MVT::i32, ++/*216530*/ OPC_MoveParent, ++/*216531*/ OPC_MoveChild, 11, ++/*216533*/ OPC_CheckInteger, 1, ++/*216535*/ OPC_CheckType, MVT::i32, ++/*216537*/ OPC_MoveParent, ++/*216538*/ OPC_MoveChild, 12, ++/*216540*/ OPC_CheckInteger, 1, ++/*216542*/ OPC_CheckType, MVT::i32, ++/*216544*/ OPC_MoveParent, ++/*216545*/ OPC_MoveChild, 13, ++/*216547*/ OPC_CheckInteger, 1, ++/*216549*/ OPC_CheckType, MVT::i32, ++/*216551*/ OPC_MoveParent, ++/*216552*/ OPC_MoveChild, 14, ++/*216554*/ OPC_CheckInteger, 1, ++/*216556*/ OPC_CheckType, MVT::i32, ++/*216558*/ OPC_MoveParent, ++/*216559*/ OPC_MoveChild, 15, ++/*216561*/ OPC_CheckInteger, 1, ++/*216563*/ OPC_CheckType, MVT::i32, ++/*216565*/ OPC_MoveParent, ++/*216566*/ OPC_MoveParent, ++/*216567*/ OPC_MoveParent, ++/*216568*/ OPC_MoveChild1, ++/*216569*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*216572*/ OPC_CheckChild0Integer, 7, ++/*216574*/ OPC_CheckChild0Type, MVT::i32, ++/*216576*/ OPC_CheckChild1Integer, 7, ++/*216578*/ OPC_CheckChild1Type, MVT::i32, ++/*216580*/ OPC_CheckChild2Integer, 7, ++/*216582*/ OPC_CheckChild2Type, MVT::i32, ++/*216584*/ OPC_CheckChild3Integer, 7, ++/*216586*/ OPC_CheckChild3Type, MVT::i32, ++/*216588*/ OPC_CheckChild4Integer, 7, ++/*216590*/ OPC_CheckChild4Type, MVT::i32, ++/*216592*/ OPC_MoveChild5, ++/*216593*/ OPC_CheckInteger, 7, ++/*216595*/ OPC_CheckType, MVT::i32, ++/*216597*/ OPC_MoveParent, ++/*216598*/ OPC_MoveChild6, ++/*216599*/ OPC_CheckInteger, 7, ++/*216601*/ OPC_CheckType, MVT::i32, ++/*216603*/ OPC_MoveParent, ++/*216604*/ OPC_MoveChild7, ++/*216605*/ OPC_CheckInteger, 7, ++/*216607*/ OPC_CheckType, MVT::i32, ++/*216609*/ OPC_MoveParent, ++/*216610*/ OPC_MoveChild, 8, ++/*216612*/ OPC_CheckInteger, 7, ++/*216614*/ OPC_CheckType, MVT::i32, ++/*216616*/ OPC_MoveParent, ++/*216617*/ OPC_MoveChild, 9, ++/*216619*/ OPC_CheckInteger, 7, ++/*216621*/ OPC_CheckType, MVT::i32, ++/*216623*/ OPC_MoveParent, ++/*216624*/ OPC_MoveChild, 10, ++/*216626*/ OPC_CheckInteger, 7, ++/*216628*/ OPC_CheckType, MVT::i32, ++/*216630*/ OPC_MoveParent, ++/*216631*/ OPC_MoveChild, 11, ++/*216633*/ OPC_CheckInteger, 7, ++/*216635*/ OPC_CheckType, MVT::i32, ++/*216637*/ OPC_MoveParent, ++/*216638*/ OPC_MoveChild, 12, ++/*216640*/ OPC_CheckInteger, 7, ++/*216642*/ OPC_CheckType, MVT::i32, ++/*216644*/ OPC_MoveParent, ++/*216645*/ OPC_MoveChild, 13, ++/*216647*/ OPC_CheckInteger, 7, ++/*216649*/ OPC_CheckType, MVT::i32, ++/*216651*/ OPC_MoveParent, ++/*216652*/ OPC_MoveChild, 14, ++/*216654*/ OPC_CheckInteger, 7, ++/*216656*/ OPC_CheckType, MVT::i32, ++/*216658*/ OPC_MoveParent, ++/*216659*/ OPC_MoveChild, 15, ++/*216661*/ OPC_CheckInteger, 7, ++/*216663*/ OPC_CheckType, MVT::i32, ++/*216665*/ OPC_MoveParent, ++/*216666*/ OPC_CheckType, MVT::v16i8, ++/*216668*/ OPC_MoveParent, ++/*216669*/ OPC_MoveParent, ++/*216670*/ OPC_MoveParent, ++/*216671*/ OPC_MoveChild1, ++/*216672*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*216675*/ OPC_CheckChild0Integer, 1, ++/*216677*/ OPC_CheckChild0Type, MVT::i32, ++/*216679*/ OPC_CheckChild1Integer, 1, ++/*216681*/ OPC_CheckChild1Type, MVT::i32, ++/*216683*/ OPC_CheckChild2Integer, 1, ++/*216685*/ OPC_CheckChild2Type, MVT::i32, ++/*216687*/ OPC_CheckChild3Integer, 1, ++/*216689*/ OPC_CheckChild3Type, MVT::i32, ++/*216691*/ OPC_CheckChild4Integer, 1, ++/*216693*/ OPC_CheckChild4Type, MVT::i32, ++/*216695*/ OPC_MoveChild5, ++/*216696*/ OPC_CheckInteger, 1, ++/*216698*/ OPC_CheckType, MVT::i32, ++/*216700*/ OPC_MoveParent, ++/*216701*/ OPC_MoveChild6, ++/*216702*/ OPC_CheckInteger, 1, ++/*216704*/ OPC_CheckType, MVT::i32, ++/*216706*/ OPC_MoveParent, ++/*216707*/ OPC_MoveChild7, ++/*216708*/ OPC_CheckInteger, 1, ++/*216710*/ OPC_CheckType, MVT::i32, ++/*216712*/ OPC_MoveParent, ++/*216713*/ OPC_MoveChild, 8, ++/*216715*/ OPC_CheckInteger, 1, ++/*216717*/ OPC_CheckType, MVT::i32, ++/*216719*/ OPC_MoveParent, ++/*216720*/ OPC_MoveChild, 9, ++/*216722*/ OPC_CheckInteger, 1, ++/*216724*/ OPC_CheckType, MVT::i32, ++/*216726*/ OPC_MoveParent, ++/*216727*/ OPC_MoveChild, 10, ++/*216729*/ OPC_CheckInteger, 1, ++/*216731*/ OPC_CheckType, MVT::i32, ++/*216733*/ OPC_MoveParent, ++/*216734*/ OPC_MoveChild, 11, ++/*216736*/ OPC_CheckInteger, 1, ++/*216738*/ OPC_CheckType, MVT::i32, ++/*216740*/ OPC_MoveParent, ++/*216741*/ OPC_MoveChild, 12, ++/*216743*/ OPC_CheckInteger, 1, ++/*216745*/ OPC_CheckType, MVT::i32, ++/*216747*/ OPC_MoveParent, ++/*216748*/ OPC_MoveChild, 13, ++/*216750*/ OPC_CheckInteger, 1, ++/*216752*/ OPC_CheckType, MVT::i32, ++/*216754*/ OPC_MoveParent, ++/*216755*/ OPC_MoveChild, 14, ++/*216757*/ OPC_CheckInteger, 1, ++/*216759*/ OPC_CheckType, MVT::i32, ++/*216761*/ OPC_MoveParent, ++/*216762*/ OPC_MoveChild, 15, ++/*216764*/ OPC_CheckInteger, 1, ++/*216766*/ OPC_CheckType, MVT::i32, ++/*216768*/ OPC_MoveParent, ++/*216769*/ OPC_CheckType, MVT::v16i8, ++/*216771*/ OPC_MoveParent, ++/*216772*/ OPC_CheckType, MVT::v16i8, ++/*216774*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*216776*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b)), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*216784*/ /*Scope*/ 65|128,2/*321*/, /*->217107*/ ++/*216786*/ OPC_CheckChild0Same, 1, ++/*216788*/ OPC_CheckChild1Same, 0, ++/*216790*/ OPC_MoveParent, ++/*216791*/ OPC_MoveChild1, ++/*216792*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*216795*/ OPC_CheckChild0Integer, 1, ++/*216797*/ OPC_CheckChild0Type, MVT::i32, ++/*216799*/ OPC_CheckChild1Integer, 1, ++/*216801*/ OPC_CheckChild1Type, MVT::i32, ++/*216803*/ OPC_CheckChild2Integer, 1, ++/*216805*/ OPC_CheckChild2Type, MVT::i32, ++/*216807*/ OPC_CheckChild3Integer, 1, ++/*216809*/ OPC_CheckChild3Type, MVT::i32, ++/*216811*/ OPC_CheckChild4Integer, 1, ++/*216813*/ OPC_CheckChild4Type, MVT::i32, ++/*216815*/ OPC_MoveChild5, ++/*216816*/ OPC_CheckInteger, 1, ++/*216818*/ OPC_CheckType, MVT::i32, ++/*216820*/ OPC_MoveParent, ++/*216821*/ OPC_MoveChild6, ++/*216822*/ OPC_CheckInteger, 1, ++/*216824*/ OPC_CheckType, MVT::i32, ++/*216826*/ OPC_MoveParent, ++/*216827*/ OPC_MoveChild7, ++/*216828*/ OPC_CheckInteger, 1, ++/*216830*/ OPC_CheckType, MVT::i32, ++/*216832*/ OPC_MoveParent, ++/*216833*/ OPC_MoveChild, 8, ++/*216835*/ OPC_CheckInteger, 1, ++/*216837*/ OPC_CheckType, MVT::i32, ++/*216839*/ OPC_MoveParent, ++/*216840*/ OPC_MoveChild, 9, ++/*216842*/ OPC_CheckInteger, 1, ++/*216844*/ OPC_CheckType, MVT::i32, ++/*216846*/ OPC_MoveParent, ++/*216847*/ OPC_MoveChild, 10, ++/*216849*/ OPC_CheckInteger, 1, ++/*216851*/ OPC_CheckType, MVT::i32, ++/*216853*/ OPC_MoveParent, ++/*216854*/ OPC_MoveChild, 11, ++/*216856*/ OPC_CheckInteger, 1, ++/*216858*/ OPC_CheckType, MVT::i32, ++/*216860*/ OPC_MoveParent, ++/*216861*/ OPC_MoveChild, 12, ++/*216863*/ OPC_CheckInteger, 1, ++/*216865*/ OPC_CheckType, MVT::i32, ++/*216867*/ OPC_MoveParent, ++/*216868*/ OPC_MoveChild, 13, ++/*216870*/ OPC_CheckInteger, 1, ++/*216872*/ OPC_CheckType, MVT::i32, ++/*216874*/ OPC_MoveParent, ++/*216875*/ OPC_MoveChild, 14, ++/*216877*/ OPC_CheckInteger, 1, ++/*216879*/ OPC_CheckType, MVT::i32, ++/*216881*/ OPC_MoveParent, ++/*216882*/ OPC_MoveChild, 15, ++/*216884*/ OPC_CheckInteger, 1, ++/*216886*/ OPC_CheckType, MVT::i32, ++/*216888*/ OPC_MoveParent, ++/*216889*/ OPC_MoveParent, ++/*216890*/ OPC_MoveParent, ++/*216891*/ OPC_MoveChild1, ++/*216892*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*216895*/ OPC_CheckChild0Integer, 7, ++/*216897*/ OPC_CheckChild0Type, MVT::i32, ++/*216899*/ OPC_CheckChild1Integer, 7, ++/*216901*/ OPC_CheckChild1Type, MVT::i32, ++/*216903*/ OPC_CheckChild2Integer, 7, ++/*216905*/ OPC_CheckChild2Type, MVT::i32, ++/*216907*/ OPC_CheckChild3Integer, 7, ++/*216909*/ OPC_CheckChild3Type, MVT::i32, ++/*216911*/ OPC_CheckChild4Integer, 7, ++/*216913*/ OPC_CheckChild4Type, MVT::i32, ++/*216915*/ OPC_MoveChild5, ++/*216916*/ OPC_CheckInteger, 7, ++/*216918*/ OPC_CheckType, MVT::i32, ++/*216920*/ OPC_MoveParent, ++/*216921*/ OPC_MoveChild6, ++/*216922*/ OPC_CheckInteger, 7, ++/*216924*/ OPC_CheckType, MVT::i32, ++/*216926*/ OPC_MoveParent, ++/*216927*/ OPC_MoveChild7, ++/*216928*/ OPC_CheckInteger, 7, ++/*216930*/ OPC_CheckType, MVT::i32, ++/*216932*/ OPC_MoveParent, ++/*216933*/ OPC_MoveChild, 8, ++/*216935*/ OPC_CheckInteger, 7, ++/*216937*/ OPC_CheckType, MVT::i32, ++/*216939*/ OPC_MoveParent, ++/*216940*/ OPC_MoveChild, 9, ++/*216942*/ OPC_CheckInteger, 7, ++/*216944*/ OPC_CheckType, MVT::i32, ++/*216946*/ OPC_MoveParent, ++/*216947*/ OPC_MoveChild, 10, ++/*216949*/ OPC_CheckInteger, 7, ++/*216951*/ OPC_CheckType, MVT::i32, ++/*216953*/ OPC_MoveParent, ++/*216954*/ OPC_MoveChild, 11, ++/*216956*/ OPC_CheckInteger, 7, ++/*216958*/ OPC_CheckType, MVT::i32, ++/*216960*/ OPC_MoveParent, ++/*216961*/ OPC_MoveChild, 12, ++/*216963*/ OPC_CheckInteger, 7, ++/*216965*/ OPC_CheckType, MVT::i32, ++/*216967*/ OPC_MoveParent, ++/*216968*/ OPC_MoveChild, 13, ++/*216970*/ OPC_CheckInteger, 7, ++/*216972*/ OPC_CheckType, MVT::i32, ++/*216974*/ OPC_MoveParent, ++/*216975*/ OPC_MoveChild, 14, ++/*216977*/ OPC_CheckInteger, 7, ++/*216979*/ OPC_CheckType, MVT::i32, ++/*216981*/ OPC_MoveParent, ++/*216982*/ OPC_MoveChild, 15, ++/*216984*/ OPC_CheckInteger, 7, ++/*216986*/ OPC_CheckType, MVT::i32, ++/*216988*/ OPC_MoveParent, ++/*216989*/ OPC_CheckType, MVT::v16i8, ++/*216991*/ OPC_MoveParent, ++/*216992*/ OPC_MoveParent, ++/*216993*/ OPC_MoveParent, ++/*216994*/ OPC_MoveChild1, ++/*216995*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*216998*/ OPC_CheckChild0Integer, 1, ++/*217000*/ OPC_CheckChild0Type, MVT::i32, ++/*217002*/ OPC_CheckChild1Integer, 1, ++/*217004*/ OPC_CheckChild1Type, MVT::i32, ++/*217006*/ OPC_CheckChild2Integer, 1, ++/*217008*/ OPC_CheckChild2Type, MVT::i32, ++/*217010*/ OPC_CheckChild3Integer, 1, ++/*217012*/ OPC_CheckChild3Type, MVT::i32, ++/*217014*/ OPC_CheckChild4Integer, 1, ++/*217016*/ OPC_CheckChild4Type, MVT::i32, ++/*217018*/ OPC_MoveChild5, ++/*217019*/ OPC_CheckInteger, 1, ++/*217021*/ OPC_CheckType, MVT::i32, ++/*217023*/ OPC_MoveParent, ++/*217024*/ OPC_MoveChild6, ++/*217025*/ OPC_CheckInteger, 1, ++/*217027*/ OPC_CheckType, MVT::i32, ++/*217029*/ OPC_MoveParent, ++/*217030*/ OPC_MoveChild7, ++/*217031*/ OPC_CheckInteger, 1, ++/*217033*/ OPC_CheckType, MVT::i32, ++/*217035*/ OPC_MoveParent, ++/*217036*/ OPC_MoveChild, 8, ++/*217038*/ OPC_CheckInteger, 1, ++/*217040*/ OPC_CheckType, MVT::i32, ++/*217042*/ OPC_MoveParent, ++/*217043*/ OPC_MoveChild, 9, ++/*217045*/ OPC_CheckInteger, 1, ++/*217047*/ OPC_CheckType, MVT::i32, ++/*217049*/ OPC_MoveParent, ++/*217050*/ OPC_MoveChild, 10, ++/*217052*/ OPC_CheckInteger, 1, ++/*217054*/ OPC_CheckType, MVT::i32, ++/*217056*/ OPC_MoveParent, ++/*217057*/ OPC_MoveChild, 11, ++/*217059*/ OPC_CheckInteger, 1, ++/*217061*/ OPC_CheckType, MVT::i32, ++/*217063*/ OPC_MoveParent, ++/*217064*/ OPC_MoveChild, 12, ++/*217066*/ OPC_CheckInteger, 1, ++/*217068*/ OPC_CheckType, MVT::i32, ++/*217070*/ OPC_MoveParent, ++/*217071*/ OPC_MoveChild, 13, ++/*217073*/ OPC_CheckInteger, 1, ++/*217075*/ OPC_CheckType, MVT::i32, ++/*217077*/ OPC_MoveParent, ++/*217078*/ OPC_MoveChild, 14, ++/*217080*/ OPC_CheckInteger, 1, ++/*217082*/ OPC_CheckType, MVT::i32, ++/*217084*/ OPC_MoveParent, ++/*217085*/ OPC_MoveChild, 15, ++/*217087*/ OPC_CheckInteger, 1, ++/*217089*/ OPC_CheckType, MVT::i32, ++/*217091*/ OPC_MoveParent, ++/*217092*/ OPC_CheckType, MVT::v16i8, ++/*217094*/ OPC_MoveParent, ++/*217095*/ OPC_CheckType, MVT::v16i8, ++/*217097*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*217099*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b)), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*217107*/ 0, /*End of Scope*/ ++/*217108*/ /*Scope*/ 10|128,5/*650*/, /*->217760*/ ++/*217110*/ OPC_CheckChild0Same, 1, ++/*217112*/ OPC_MoveChild1, ++/*217113*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*217116*/ OPC_Scope, 63|128,2/*319*/, /*->217438*/ // 2 children in Scope ++/*217119*/ OPC_MoveChild0, ++/*217120*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*217123*/ OPC_CheckChild0Integer, 1, ++/*217125*/ OPC_CheckChild0Type, MVT::i32, ++/*217127*/ OPC_CheckChild1Integer, 1, ++/*217129*/ OPC_CheckChild1Type, MVT::i32, ++/*217131*/ OPC_CheckChild2Integer, 1, ++/*217133*/ OPC_CheckChild2Type, MVT::i32, ++/*217135*/ OPC_CheckChild3Integer, 1, ++/*217137*/ OPC_CheckChild3Type, MVT::i32, ++/*217139*/ OPC_CheckChild4Integer, 1, ++/*217141*/ OPC_CheckChild4Type, MVT::i32, ++/*217143*/ OPC_MoveChild5, ++/*217144*/ OPC_CheckInteger, 1, ++/*217146*/ OPC_CheckType, MVT::i32, ++/*217148*/ OPC_MoveParent, ++/*217149*/ OPC_MoveChild6, ++/*217150*/ OPC_CheckInteger, 1, ++/*217152*/ OPC_CheckType, MVT::i32, ++/*217154*/ OPC_MoveParent, ++/*217155*/ OPC_MoveChild7, ++/*217156*/ OPC_CheckInteger, 1, ++/*217158*/ OPC_CheckType, MVT::i32, ++/*217160*/ OPC_MoveParent, ++/*217161*/ OPC_MoveChild, 8, ++/*217163*/ OPC_CheckInteger, 1, ++/*217165*/ OPC_CheckType, MVT::i32, ++/*217167*/ OPC_MoveParent, ++/*217168*/ OPC_MoveChild, 9, ++/*217170*/ OPC_CheckInteger, 1, ++/*217172*/ OPC_CheckType, MVT::i32, ++/*217174*/ OPC_MoveParent, ++/*217175*/ OPC_MoveChild, 10, ++/*217177*/ OPC_CheckInteger, 1, ++/*217179*/ OPC_CheckType, MVT::i32, ++/*217181*/ OPC_MoveParent, ++/*217182*/ OPC_MoveChild, 11, ++/*217184*/ OPC_CheckInteger, 1, ++/*217186*/ OPC_CheckType, MVT::i32, ++/*217188*/ OPC_MoveParent, ++/*217189*/ OPC_MoveChild, 12, ++/*217191*/ OPC_CheckInteger, 1, ++/*217193*/ OPC_CheckType, MVT::i32, ++/*217195*/ OPC_MoveParent, ++/*217196*/ OPC_MoveChild, 13, ++/*217198*/ OPC_CheckInteger, 1, ++/*217200*/ OPC_CheckType, MVT::i32, ++/*217202*/ OPC_MoveParent, ++/*217203*/ OPC_MoveChild, 14, ++/*217205*/ OPC_CheckInteger, 1, ++/*217207*/ OPC_CheckType, MVT::i32, ++/*217209*/ OPC_MoveParent, ++/*217210*/ OPC_MoveChild, 15, ++/*217212*/ OPC_CheckInteger, 1, ++/*217214*/ OPC_CheckType, MVT::i32, ++/*217216*/ OPC_MoveParent, ++/*217217*/ OPC_MoveParent, ++/*217218*/ OPC_CheckChild1Same, 0, ++/*217220*/ OPC_MoveParent, ++/*217221*/ OPC_MoveParent, ++/*217222*/ OPC_MoveChild1, ++/*217223*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*217226*/ OPC_CheckChild0Integer, 7, ++/*217228*/ OPC_CheckChild0Type, MVT::i32, ++/*217230*/ OPC_CheckChild1Integer, 7, ++/*217232*/ OPC_CheckChild1Type, MVT::i32, ++/*217234*/ OPC_CheckChild2Integer, 7, ++/*217236*/ OPC_CheckChild2Type, MVT::i32, ++/*217238*/ OPC_CheckChild3Integer, 7, ++/*217240*/ OPC_CheckChild3Type, MVT::i32, ++/*217242*/ OPC_CheckChild4Integer, 7, ++/*217244*/ OPC_CheckChild4Type, MVT::i32, ++/*217246*/ OPC_MoveChild5, ++/*217247*/ OPC_CheckInteger, 7, ++/*217249*/ OPC_CheckType, MVT::i32, ++/*217251*/ OPC_MoveParent, ++/*217252*/ OPC_MoveChild6, ++/*217253*/ OPC_CheckInteger, 7, ++/*217255*/ OPC_CheckType, MVT::i32, ++/*217257*/ OPC_MoveParent, ++/*217258*/ OPC_MoveChild7, ++/*217259*/ OPC_CheckInteger, 7, ++/*217261*/ OPC_CheckType, MVT::i32, ++/*217263*/ OPC_MoveParent, ++/*217264*/ OPC_MoveChild, 8, ++/*217266*/ OPC_CheckInteger, 7, ++/*217268*/ OPC_CheckType, MVT::i32, ++/*217270*/ OPC_MoveParent, ++/*217271*/ OPC_MoveChild, 9, ++/*217273*/ OPC_CheckInteger, 7, ++/*217275*/ OPC_CheckType, MVT::i32, ++/*217277*/ OPC_MoveParent, ++/*217278*/ OPC_MoveChild, 10, ++/*217280*/ OPC_CheckInteger, 7, ++/*217282*/ OPC_CheckType, MVT::i32, ++/*217284*/ OPC_MoveParent, ++/*217285*/ OPC_MoveChild, 11, ++/*217287*/ OPC_CheckInteger, 7, ++/*217289*/ OPC_CheckType, MVT::i32, ++/*217291*/ OPC_MoveParent, ++/*217292*/ OPC_MoveChild, 12, ++/*217294*/ OPC_CheckInteger, 7, ++/*217296*/ OPC_CheckType, MVT::i32, ++/*217298*/ OPC_MoveParent, ++/*217299*/ OPC_MoveChild, 13, ++/*217301*/ OPC_CheckInteger, 7, ++/*217303*/ OPC_CheckType, MVT::i32, ++/*217305*/ OPC_MoveParent, ++/*217306*/ OPC_MoveChild, 14, ++/*217308*/ OPC_CheckInteger, 7, ++/*217310*/ OPC_CheckType, MVT::i32, ++/*217312*/ OPC_MoveParent, ++/*217313*/ OPC_MoveChild, 15, ++/*217315*/ OPC_CheckInteger, 7, ++/*217317*/ OPC_CheckType, MVT::i32, ++/*217319*/ OPC_MoveParent, ++/*217320*/ OPC_CheckType, MVT::v16i8, ++/*217322*/ OPC_MoveParent, ++/*217323*/ OPC_MoveParent, ++/*217324*/ OPC_MoveParent, ++/*217325*/ OPC_MoveChild1, ++/*217326*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*217329*/ OPC_CheckChild0Integer, 1, ++/*217331*/ OPC_CheckChild0Type, MVT::i32, ++/*217333*/ OPC_CheckChild1Integer, 1, ++/*217335*/ OPC_CheckChild1Type, MVT::i32, ++/*217337*/ OPC_CheckChild2Integer, 1, ++/*217339*/ OPC_CheckChild2Type, MVT::i32, ++/*217341*/ OPC_CheckChild3Integer, 1, ++/*217343*/ OPC_CheckChild3Type, MVT::i32, ++/*217345*/ OPC_CheckChild4Integer, 1, ++/*217347*/ OPC_CheckChild4Type, MVT::i32, ++/*217349*/ OPC_MoveChild5, ++/*217350*/ OPC_CheckInteger, 1, ++/*217352*/ OPC_CheckType, MVT::i32, ++/*217354*/ OPC_MoveParent, ++/*217355*/ OPC_MoveChild6, ++/*217356*/ OPC_CheckInteger, 1, ++/*217358*/ OPC_CheckType, MVT::i32, ++/*217360*/ OPC_MoveParent, ++/*217361*/ OPC_MoveChild7, ++/*217362*/ OPC_CheckInteger, 1, ++/*217364*/ OPC_CheckType, MVT::i32, ++/*217366*/ OPC_MoveParent, ++/*217367*/ OPC_MoveChild, 8, ++/*217369*/ OPC_CheckInteger, 1, ++/*217371*/ OPC_CheckType, MVT::i32, ++/*217373*/ OPC_MoveParent, ++/*217374*/ OPC_MoveChild, 9, ++/*217376*/ OPC_CheckInteger, 1, ++/*217378*/ OPC_CheckType, MVT::i32, ++/*217380*/ OPC_MoveParent, ++/*217381*/ OPC_MoveChild, 10, ++/*217383*/ OPC_CheckInteger, 1, ++/*217385*/ OPC_CheckType, MVT::i32, ++/*217387*/ OPC_MoveParent, ++/*217388*/ OPC_MoveChild, 11, ++/*217390*/ OPC_CheckInteger, 1, ++/*217392*/ OPC_CheckType, MVT::i32, ++/*217394*/ OPC_MoveParent, ++/*217395*/ OPC_MoveChild, 12, ++/*217397*/ OPC_CheckInteger, 1, ++/*217399*/ OPC_CheckType, MVT::i32, ++/*217401*/ OPC_MoveParent, ++/*217402*/ OPC_MoveChild, 13, ++/*217404*/ OPC_CheckInteger, 1, ++/*217406*/ OPC_CheckType, MVT::i32, ++/*217408*/ OPC_MoveParent, ++/*217409*/ OPC_MoveChild, 14, ++/*217411*/ OPC_CheckInteger, 1, ++/*217413*/ OPC_CheckType, MVT::i32, ++/*217415*/ OPC_MoveParent, ++/*217416*/ OPC_MoveChild, 15, ++/*217418*/ OPC_CheckInteger, 1, ++/*217420*/ OPC_CheckType, MVT::i32, ++/*217422*/ OPC_MoveParent, ++/*217423*/ OPC_CheckType, MVT::v16i8, ++/*217425*/ OPC_MoveParent, ++/*217426*/ OPC_CheckType, MVT::v16i8, ++/*217428*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*217430*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b)), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*217438*/ /*Scope*/ 63|128,2/*319*/, /*->217759*/ ++/*217440*/ OPC_CheckChild0Same, 0, ++/*217442*/ OPC_MoveChild1, ++/*217443*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*217446*/ OPC_CheckChild0Integer, 1, ++/*217448*/ OPC_CheckChild0Type, MVT::i32, ++/*217450*/ OPC_CheckChild1Integer, 1, ++/*217452*/ OPC_CheckChild1Type, MVT::i32, ++/*217454*/ OPC_CheckChild2Integer, 1, ++/*217456*/ OPC_CheckChild2Type, MVT::i32, ++/*217458*/ OPC_CheckChild3Integer, 1, ++/*217460*/ OPC_CheckChild3Type, MVT::i32, ++/*217462*/ OPC_CheckChild4Integer, 1, ++/*217464*/ OPC_CheckChild4Type, MVT::i32, ++/*217466*/ OPC_MoveChild5, ++/*217467*/ OPC_CheckInteger, 1, ++/*217469*/ OPC_CheckType, MVT::i32, ++/*217471*/ OPC_MoveParent, ++/*217472*/ OPC_MoveChild6, ++/*217473*/ OPC_CheckInteger, 1, ++/*217475*/ OPC_CheckType, MVT::i32, ++/*217477*/ OPC_MoveParent, ++/*217478*/ OPC_MoveChild7, ++/*217479*/ OPC_CheckInteger, 1, ++/*217481*/ OPC_CheckType, MVT::i32, ++/*217483*/ OPC_MoveParent, ++/*217484*/ OPC_MoveChild, 8, ++/*217486*/ OPC_CheckInteger, 1, ++/*217488*/ OPC_CheckType, MVT::i32, ++/*217490*/ OPC_MoveParent, ++/*217491*/ OPC_MoveChild, 9, ++/*217493*/ OPC_CheckInteger, 1, ++/*217495*/ OPC_CheckType, MVT::i32, ++/*217497*/ OPC_MoveParent, ++/*217498*/ OPC_MoveChild, 10, ++/*217500*/ OPC_CheckInteger, 1, ++/*217502*/ OPC_CheckType, MVT::i32, ++/*217504*/ OPC_MoveParent, ++/*217505*/ OPC_MoveChild, 11, ++/*217507*/ OPC_CheckInteger, 1, ++/*217509*/ OPC_CheckType, MVT::i32, ++/*217511*/ OPC_MoveParent, ++/*217512*/ OPC_MoveChild, 12, ++/*217514*/ OPC_CheckInteger, 1, ++/*217516*/ OPC_CheckType, MVT::i32, ++/*217518*/ OPC_MoveParent, ++/*217519*/ OPC_MoveChild, 13, ++/*217521*/ OPC_CheckInteger, 1, ++/*217523*/ OPC_CheckType, MVT::i32, ++/*217525*/ OPC_MoveParent, ++/*217526*/ OPC_MoveChild, 14, ++/*217528*/ OPC_CheckInteger, 1, ++/*217530*/ OPC_CheckType, MVT::i32, ++/*217532*/ OPC_MoveParent, ++/*217533*/ OPC_MoveChild, 15, ++/*217535*/ OPC_CheckInteger, 1, ++/*217537*/ OPC_CheckType, MVT::i32, ++/*217539*/ OPC_MoveParent, ++/*217540*/ OPC_MoveParent, ++/*217541*/ OPC_MoveParent, ++/*217542*/ OPC_MoveParent, ++/*217543*/ OPC_MoveChild1, ++/*217544*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*217547*/ OPC_CheckChild0Integer, 7, ++/*217549*/ OPC_CheckChild0Type, MVT::i32, ++/*217551*/ OPC_CheckChild1Integer, 7, ++/*217553*/ OPC_CheckChild1Type, MVT::i32, ++/*217555*/ OPC_CheckChild2Integer, 7, ++/*217557*/ OPC_CheckChild2Type, MVT::i32, ++/*217559*/ OPC_CheckChild3Integer, 7, ++/*217561*/ OPC_CheckChild3Type, MVT::i32, ++/*217563*/ OPC_CheckChild4Integer, 7, ++/*217565*/ OPC_CheckChild4Type, MVT::i32, ++/*217567*/ OPC_MoveChild5, ++/*217568*/ OPC_CheckInteger, 7, ++/*217570*/ OPC_CheckType, MVT::i32, ++/*217572*/ OPC_MoveParent, ++/*217573*/ OPC_MoveChild6, ++/*217574*/ OPC_CheckInteger, 7, ++/*217576*/ OPC_CheckType, MVT::i32, ++/*217578*/ OPC_MoveParent, ++/*217579*/ OPC_MoveChild7, ++/*217580*/ OPC_CheckInteger, 7, ++/*217582*/ OPC_CheckType, MVT::i32, ++/*217584*/ OPC_MoveParent, ++/*217585*/ OPC_MoveChild, 8, ++/*217587*/ OPC_CheckInteger, 7, ++/*217589*/ OPC_CheckType, MVT::i32, ++/*217591*/ OPC_MoveParent, ++/*217592*/ OPC_MoveChild, 9, ++/*217594*/ OPC_CheckInteger, 7, ++/*217596*/ OPC_CheckType, MVT::i32, ++/*217598*/ OPC_MoveParent, ++/*217599*/ OPC_MoveChild, 10, ++/*217601*/ OPC_CheckInteger, 7, ++/*217603*/ OPC_CheckType, MVT::i32, ++/*217605*/ OPC_MoveParent, ++/*217606*/ OPC_MoveChild, 11, ++/*217608*/ OPC_CheckInteger, 7, ++/*217610*/ OPC_CheckType, MVT::i32, ++/*217612*/ OPC_MoveParent, ++/*217613*/ OPC_MoveChild, 12, ++/*217615*/ OPC_CheckInteger, 7, ++/*217617*/ OPC_CheckType, MVT::i32, ++/*217619*/ OPC_MoveParent, ++/*217620*/ OPC_MoveChild, 13, ++/*217622*/ OPC_CheckInteger, 7, ++/*217624*/ OPC_CheckType, MVT::i32, ++/*217626*/ OPC_MoveParent, ++/*217627*/ OPC_MoveChild, 14, ++/*217629*/ OPC_CheckInteger, 7, ++/*217631*/ OPC_CheckType, MVT::i32, ++/*217633*/ OPC_MoveParent, ++/*217634*/ OPC_MoveChild, 15, ++/*217636*/ OPC_CheckInteger, 7, ++/*217638*/ OPC_CheckType, MVT::i32, ++/*217640*/ OPC_MoveParent, ++/*217641*/ OPC_CheckType, MVT::v16i8, ++/*217643*/ OPC_MoveParent, ++/*217644*/ OPC_MoveParent, ++/*217645*/ OPC_MoveParent, ++/*217646*/ OPC_MoveChild1, ++/*217647*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*217650*/ OPC_CheckChild0Integer, 1, ++/*217652*/ OPC_CheckChild0Type, MVT::i32, ++/*217654*/ OPC_CheckChild1Integer, 1, ++/*217656*/ OPC_CheckChild1Type, MVT::i32, ++/*217658*/ OPC_CheckChild2Integer, 1, ++/*217660*/ OPC_CheckChild2Type, MVT::i32, ++/*217662*/ OPC_CheckChild3Integer, 1, ++/*217664*/ OPC_CheckChild3Type, MVT::i32, ++/*217666*/ OPC_CheckChild4Integer, 1, ++/*217668*/ OPC_CheckChild4Type, MVT::i32, ++/*217670*/ OPC_MoveChild5, ++/*217671*/ OPC_CheckInteger, 1, ++/*217673*/ OPC_CheckType, MVT::i32, ++/*217675*/ OPC_MoveParent, ++/*217676*/ OPC_MoveChild6, ++/*217677*/ OPC_CheckInteger, 1, ++/*217679*/ OPC_CheckType, MVT::i32, ++/*217681*/ OPC_MoveParent, ++/*217682*/ OPC_MoveChild7, ++/*217683*/ OPC_CheckInteger, 1, ++/*217685*/ OPC_CheckType, MVT::i32, ++/*217687*/ OPC_MoveParent, ++/*217688*/ OPC_MoveChild, 8, ++/*217690*/ OPC_CheckInteger, 1, ++/*217692*/ OPC_CheckType, MVT::i32, ++/*217694*/ OPC_MoveParent, ++/*217695*/ OPC_MoveChild, 9, ++/*217697*/ OPC_CheckInteger, 1, ++/*217699*/ OPC_CheckType, MVT::i32, ++/*217701*/ OPC_MoveParent, ++/*217702*/ OPC_MoveChild, 10, ++/*217704*/ OPC_CheckInteger, 1, ++/*217706*/ OPC_CheckType, MVT::i32, ++/*217708*/ OPC_MoveParent, ++/*217709*/ OPC_MoveChild, 11, ++/*217711*/ OPC_CheckInteger, 1, ++/*217713*/ OPC_CheckType, MVT::i32, ++/*217715*/ OPC_MoveParent, ++/*217716*/ OPC_MoveChild, 12, ++/*217718*/ OPC_CheckInteger, 1, ++/*217720*/ OPC_CheckType, MVT::i32, ++/*217722*/ OPC_MoveParent, ++/*217723*/ OPC_MoveChild, 13, ++/*217725*/ OPC_CheckInteger, 1, ++/*217727*/ OPC_CheckType, MVT::i32, ++/*217729*/ OPC_MoveParent, ++/*217730*/ OPC_MoveChild, 14, ++/*217732*/ OPC_CheckInteger, 1, ++/*217734*/ OPC_CheckType, MVT::i32, ++/*217736*/ OPC_MoveParent, ++/*217737*/ OPC_MoveChild, 15, ++/*217739*/ OPC_CheckInteger, 1, ++/*217741*/ OPC_CheckType, MVT::i32, ++/*217743*/ OPC_MoveParent, ++/*217744*/ OPC_CheckType, MVT::v16i8, ++/*217746*/ OPC_MoveParent, ++/*217747*/ OPC_CheckType, MVT::v16i8, ++/*217749*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*217751*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b)), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*217759*/ 0, /*End of Scope*/ ++/*217760*/ /*Scope*/ 10|128,5/*650*/, /*->218412*/ ++/*217762*/ OPC_CheckChild0Same, 0, ++/*217764*/ OPC_MoveChild1, ++/*217765*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*217768*/ OPC_Scope, 63|128,2/*319*/, /*->218090*/ // 2 children in Scope ++/*217771*/ OPC_MoveChild0, ++/*217772*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*217775*/ OPC_CheckChild0Integer, 1, ++/*217777*/ OPC_CheckChild0Type, MVT::i32, ++/*217779*/ OPC_CheckChild1Integer, 1, ++/*217781*/ OPC_CheckChild1Type, MVT::i32, ++/*217783*/ OPC_CheckChild2Integer, 1, ++/*217785*/ OPC_CheckChild2Type, MVT::i32, ++/*217787*/ OPC_CheckChild3Integer, 1, ++/*217789*/ OPC_CheckChild3Type, MVT::i32, ++/*217791*/ OPC_CheckChild4Integer, 1, ++/*217793*/ OPC_CheckChild4Type, MVT::i32, ++/*217795*/ OPC_MoveChild5, ++/*217796*/ OPC_CheckInteger, 1, ++/*217798*/ OPC_CheckType, MVT::i32, ++/*217800*/ OPC_MoveParent, ++/*217801*/ OPC_MoveChild6, ++/*217802*/ OPC_CheckInteger, 1, ++/*217804*/ OPC_CheckType, MVT::i32, ++/*217806*/ OPC_MoveParent, ++/*217807*/ OPC_MoveChild7, ++/*217808*/ OPC_CheckInteger, 1, ++/*217810*/ OPC_CheckType, MVT::i32, ++/*217812*/ OPC_MoveParent, ++/*217813*/ OPC_MoveChild, 8, ++/*217815*/ OPC_CheckInteger, 1, ++/*217817*/ OPC_CheckType, MVT::i32, ++/*217819*/ OPC_MoveParent, ++/*217820*/ OPC_MoveChild, 9, ++/*217822*/ OPC_CheckInteger, 1, ++/*217824*/ OPC_CheckType, MVT::i32, ++/*217826*/ OPC_MoveParent, ++/*217827*/ OPC_MoveChild, 10, ++/*217829*/ OPC_CheckInteger, 1, ++/*217831*/ OPC_CheckType, MVT::i32, ++/*217833*/ OPC_MoveParent, ++/*217834*/ OPC_MoveChild, 11, ++/*217836*/ OPC_CheckInteger, 1, ++/*217838*/ OPC_CheckType, MVT::i32, ++/*217840*/ OPC_MoveParent, ++/*217841*/ OPC_MoveChild, 12, ++/*217843*/ OPC_CheckInteger, 1, ++/*217845*/ OPC_CheckType, MVT::i32, ++/*217847*/ OPC_MoveParent, ++/*217848*/ OPC_MoveChild, 13, ++/*217850*/ OPC_CheckInteger, 1, ++/*217852*/ OPC_CheckType, MVT::i32, ++/*217854*/ OPC_MoveParent, ++/*217855*/ OPC_MoveChild, 14, ++/*217857*/ OPC_CheckInteger, 1, ++/*217859*/ OPC_CheckType, MVT::i32, ++/*217861*/ OPC_MoveParent, ++/*217862*/ OPC_MoveChild, 15, ++/*217864*/ OPC_CheckInteger, 1, ++/*217866*/ OPC_CheckType, MVT::i32, ++/*217868*/ OPC_MoveParent, ++/*217869*/ OPC_MoveParent, ++/*217870*/ OPC_CheckChild1Same, 1, ++/*217872*/ OPC_MoveParent, ++/*217873*/ OPC_MoveParent, ++/*217874*/ OPC_MoveChild1, ++/*217875*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*217878*/ OPC_CheckChild0Integer, 7, ++/*217880*/ OPC_CheckChild0Type, MVT::i32, ++/*217882*/ OPC_CheckChild1Integer, 7, ++/*217884*/ OPC_CheckChild1Type, MVT::i32, ++/*217886*/ OPC_CheckChild2Integer, 7, ++/*217888*/ OPC_CheckChild2Type, MVT::i32, ++/*217890*/ OPC_CheckChild3Integer, 7, ++/*217892*/ OPC_CheckChild3Type, MVT::i32, ++/*217894*/ OPC_CheckChild4Integer, 7, ++/*217896*/ OPC_CheckChild4Type, MVT::i32, ++/*217898*/ OPC_MoveChild5, ++/*217899*/ OPC_CheckInteger, 7, ++/*217901*/ OPC_CheckType, MVT::i32, ++/*217903*/ OPC_MoveParent, ++/*217904*/ OPC_MoveChild6, ++/*217905*/ OPC_CheckInteger, 7, ++/*217907*/ OPC_CheckType, MVT::i32, ++/*217909*/ OPC_MoveParent, ++/*217910*/ OPC_MoveChild7, ++/*217911*/ OPC_CheckInteger, 7, ++/*217913*/ OPC_CheckType, MVT::i32, ++/*217915*/ OPC_MoveParent, ++/*217916*/ OPC_MoveChild, 8, ++/*217918*/ OPC_CheckInteger, 7, ++/*217920*/ OPC_CheckType, MVT::i32, ++/*217922*/ OPC_MoveParent, ++/*217923*/ OPC_MoveChild, 9, ++/*217925*/ OPC_CheckInteger, 7, ++/*217927*/ OPC_CheckType, MVT::i32, ++/*217929*/ OPC_MoveParent, ++/*217930*/ OPC_MoveChild, 10, ++/*217932*/ OPC_CheckInteger, 7, ++/*217934*/ OPC_CheckType, MVT::i32, ++/*217936*/ OPC_MoveParent, ++/*217937*/ OPC_MoveChild, 11, ++/*217939*/ OPC_CheckInteger, 7, ++/*217941*/ OPC_CheckType, MVT::i32, ++/*217943*/ OPC_MoveParent, ++/*217944*/ OPC_MoveChild, 12, ++/*217946*/ OPC_CheckInteger, 7, ++/*217948*/ OPC_CheckType, MVT::i32, ++/*217950*/ OPC_MoveParent, ++/*217951*/ OPC_MoveChild, 13, ++/*217953*/ OPC_CheckInteger, 7, ++/*217955*/ OPC_CheckType, MVT::i32, ++/*217957*/ OPC_MoveParent, ++/*217958*/ OPC_MoveChild, 14, ++/*217960*/ OPC_CheckInteger, 7, ++/*217962*/ OPC_CheckType, MVT::i32, ++/*217964*/ OPC_MoveParent, ++/*217965*/ OPC_MoveChild, 15, ++/*217967*/ OPC_CheckInteger, 7, ++/*217969*/ OPC_CheckType, MVT::i32, ++/*217971*/ OPC_MoveParent, ++/*217972*/ OPC_CheckType, MVT::v16i8, ++/*217974*/ OPC_MoveParent, ++/*217975*/ OPC_MoveParent, ++/*217976*/ OPC_MoveParent, ++/*217977*/ OPC_MoveChild1, ++/*217978*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*217981*/ OPC_CheckChild0Integer, 1, ++/*217983*/ OPC_CheckChild0Type, MVT::i32, ++/*217985*/ OPC_CheckChild1Integer, 1, ++/*217987*/ OPC_CheckChild1Type, MVT::i32, ++/*217989*/ OPC_CheckChild2Integer, 1, ++/*217991*/ OPC_CheckChild2Type, MVT::i32, ++/*217993*/ OPC_CheckChild3Integer, 1, ++/*217995*/ OPC_CheckChild3Type, MVT::i32, ++/*217997*/ OPC_CheckChild4Integer, 1, ++/*217999*/ OPC_CheckChild4Type, MVT::i32, ++/*218001*/ OPC_MoveChild5, ++/*218002*/ OPC_CheckInteger, 1, ++/*218004*/ OPC_CheckType, MVT::i32, ++/*218006*/ OPC_MoveParent, ++/*218007*/ OPC_MoveChild6, ++/*218008*/ OPC_CheckInteger, 1, ++/*218010*/ OPC_CheckType, MVT::i32, ++/*218012*/ OPC_MoveParent, ++/*218013*/ OPC_MoveChild7, ++/*218014*/ OPC_CheckInteger, 1, ++/*218016*/ OPC_CheckType, MVT::i32, ++/*218018*/ OPC_MoveParent, ++/*218019*/ OPC_MoveChild, 8, ++/*218021*/ OPC_CheckInteger, 1, ++/*218023*/ OPC_CheckType, MVT::i32, ++/*218025*/ OPC_MoveParent, ++/*218026*/ OPC_MoveChild, 9, ++/*218028*/ OPC_CheckInteger, 1, ++/*218030*/ OPC_CheckType, MVT::i32, ++/*218032*/ OPC_MoveParent, ++/*218033*/ OPC_MoveChild, 10, ++/*218035*/ OPC_CheckInteger, 1, ++/*218037*/ OPC_CheckType, MVT::i32, ++/*218039*/ OPC_MoveParent, ++/*218040*/ OPC_MoveChild, 11, ++/*218042*/ OPC_CheckInteger, 1, ++/*218044*/ OPC_CheckType, MVT::i32, ++/*218046*/ OPC_MoveParent, ++/*218047*/ OPC_MoveChild, 12, ++/*218049*/ OPC_CheckInteger, 1, ++/*218051*/ OPC_CheckType, MVT::i32, ++/*218053*/ OPC_MoveParent, ++/*218054*/ OPC_MoveChild, 13, ++/*218056*/ OPC_CheckInteger, 1, ++/*218058*/ OPC_CheckType, MVT::i32, ++/*218060*/ OPC_MoveParent, ++/*218061*/ OPC_MoveChild, 14, ++/*218063*/ OPC_CheckInteger, 1, ++/*218065*/ OPC_CheckType, MVT::i32, ++/*218067*/ OPC_MoveParent, ++/*218068*/ OPC_MoveChild, 15, ++/*218070*/ OPC_CheckInteger, 1, ++/*218072*/ OPC_CheckType, MVT::i32, ++/*218074*/ OPC_MoveParent, ++/*218075*/ OPC_CheckType, MVT::v16i8, ++/*218077*/ OPC_MoveParent, ++/*218078*/ OPC_CheckType, MVT::v16i8, ++/*218080*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*218082*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b)), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*218090*/ /*Scope*/ 63|128,2/*319*/, /*->218411*/ ++/*218092*/ OPC_CheckChild0Same, 1, ++/*218094*/ OPC_MoveChild1, ++/*218095*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*218098*/ OPC_CheckChild0Integer, 1, ++/*218100*/ OPC_CheckChild0Type, MVT::i32, ++/*218102*/ OPC_CheckChild1Integer, 1, ++/*218104*/ OPC_CheckChild1Type, MVT::i32, ++/*218106*/ OPC_CheckChild2Integer, 1, ++/*218108*/ OPC_CheckChild2Type, MVT::i32, ++/*218110*/ OPC_CheckChild3Integer, 1, ++/*218112*/ OPC_CheckChild3Type, MVT::i32, ++/*218114*/ OPC_CheckChild4Integer, 1, ++/*218116*/ OPC_CheckChild4Type, MVT::i32, ++/*218118*/ OPC_MoveChild5, ++/*218119*/ OPC_CheckInteger, 1, ++/*218121*/ OPC_CheckType, MVT::i32, ++/*218123*/ OPC_MoveParent, ++/*218124*/ OPC_MoveChild6, ++/*218125*/ OPC_CheckInteger, 1, ++/*218127*/ OPC_CheckType, MVT::i32, ++/*218129*/ OPC_MoveParent, ++/*218130*/ OPC_MoveChild7, ++/*218131*/ OPC_CheckInteger, 1, ++/*218133*/ OPC_CheckType, MVT::i32, ++/*218135*/ OPC_MoveParent, ++/*218136*/ OPC_MoveChild, 8, ++/*218138*/ OPC_CheckInteger, 1, ++/*218140*/ OPC_CheckType, MVT::i32, ++/*218142*/ OPC_MoveParent, ++/*218143*/ OPC_MoveChild, 9, ++/*218145*/ OPC_CheckInteger, 1, ++/*218147*/ OPC_CheckType, MVT::i32, ++/*218149*/ OPC_MoveParent, ++/*218150*/ OPC_MoveChild, 10, ++/*218152*/ OPC_CheckInteger, 1, ++/*218154*/ OPC_CheckType, MVT::i32, ++/*218156*/ OPC_MoveParent, ++/*218157*/ OPC_MoveChild, 11, ++/*218159*/ OPC_CheckInteger, 1, ++/*218161*/ OPC_CheckType, MVT::i32, ++/*218163*/ OPC_MoveParent, ++/*218164*/ OPC_MoveChild, 12, ++/*218166*/ OPC_CheckInteger, 1, ++/*218168*/ OPC_CheckType, MVT::i32, ++/*218170*/ OPC_MoveParent, ++/*218171*/ OPC_MoveChild, 13, ++/*218173*/ OPC_CheckInteger, 1, ++/*218175*/ OPC_CheckType, MVT::i32, ++/*218177*/ OPC_MoveParent, ++/*218178*/ OPC_MoveChild, 14, ++/*218180*/ OPC_CheckInteger, 1, ++/*218182*/ OPC_CheckType, MVT::i32, ++/*218184*/ OPC_MoveParent, ++/*218185*/ OPC_MoveChild, 15, ++/*218187*/ OPC_CheckInteger, 1, ++/*218189*/ OPC_CheckType, MVT::i32, ++/*218191*/ OPC_MoveParent, ++/*218192*/ OPC_MoveParent, ++/*218193*/ OPC_MoveParent, ++/*218194*/ OPC_MoveParent, ++/*218195*/ OPC_MoveChild1, ++/*218196*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*218199*/ OPC_CheckChild0Integer, 7, ++/*218201*/ OPC_CheckChild0Type, MVT::i32, ++/*218203*/ OPC_CheckChild1Integer, 7, ++/*218205*/ OPC_CheckChild1Type, MVT::i32, ++/*218207*/ OPC_CheckChild2Integer, 7, ++/*218209*/ OPC_CheckChild2Type, MVT::i32, ++/*218211*/ OPC_CheckChild3Integer, 7, ++/*218213*/ OPC_CheckChild3Type, MVT::i32, ++/*218215*/ OPC_CheckChild4Integer, 7, ++/*218217*/ OPC_CheckChild4Type, MVT::i32, ++/*218219*/ OPC_MoveChild5, ++/*218220*/ OPC_CheckInteger, 7, ++/*218222*/ OPC_CheckType, MVT::i32, ++/*218224*/ OPC_MoveParent, ++/*218225*/ OPC_MoveChild6, ++/*218226*/ OPC_CheckInteger, 7, ++/*218228*/ OPC_CheckType, MVT::i32, ++/*218230*/ OPC_MoveParent, ++/*218231*/ OPC_MoveChild7, ++/*218232*/ OPC_CheckInteger, 7, ++/*218234*/ OPC_CheckType, MVT::i32, ++/*218236*/ OPC_MoveParent, ++/*218237*/ OPC_MoveChild, 8, ++/*218239*/ OPC_CheckInteger, 7, ++/*218241*/ OPC_CheckType, MVT::i32, ++/*218243*/ OPC_MoveParent, ++/*218244*/ OPC_MoveChild, 9, ++/*218246*/ OPC_CheckInteger, 7, ++/*218248*/ OPC_CheckType, MVT::i32, ++/*218250*/ OPC_MoveParent, ++/*218251*/ OPC_MoveChild, 10, ++/*218253*/ OPC_CheckInteger, 7, ++/*218255*/ OPC_CheckType, MVT::i32, ++/*218257*/ OPC_MoveParent, ++/*218258*/ OPC_MoveChild, 11, ++/*218260*/ OPC_CheckInteger, 7, ++/*218262*/ OPC_CheckType, MVT::i32, ++/*218264*/ OPC_MoveParent, ++/*218265*/ OPC_MoveChild, 12, ++/*218267*/ OPC_CheckInteger, 7, ++/*218269*/ OPC_CheckType, MVT::i32, ++/*218271*/ OPC_MoveParent, ++/*218272*/ OPC_MoveChild, 13, ++/*218274*/ OPC_CheckInteger, 7, ++/*218276*/ OPC_CheckType, MVT::i32, ++/*218278*/ OPC_MoveParent, ++/*218279*/ OPC_MoveChild, 14, ++/*218281*/ OPC_CheckInteger, 7, ++/*218283*/ OPC_CheckType, MVT::i32, ++/*218285*/ OPC_MoveParent, ++/*218286*/ OPC_MoveChild, 15, ++/*218288*/ OPC_CheckInteger, 7, ++/*218290*/ OPC_CheckType, MVT::i32, ++/*218292*/ OPC_MoveParent, ++/*218293*/ OPC_CheckType, MVT::v16i8, ++/*218295*/ OPC_MoveParent, ++/*218296*/ OPC_MoveParent, ++/*218297*/ OPC_MoveParent, ++/*218298*/ OPC_MoveChild1, ++/*218299*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*218302*/ OPC_CheckChild0Integer, 1, ++/*218304*/ OPC_CheckChild0Type, MVT::i32, ++/*218306*/ OPC_CheckChild1Integer, 1, ++/*218308*/ OPC_CheckChild1Type, MVT::i32, ++/*218310*/ OPC_CheckChild2Integer, 1, ++/*218312*/ OPC_CheckChild2Type, MVT::i32, ++/*218314*/ OPC_CheckChild3Integer, 1, ++/*218316*/ OPC_CheckChild3Type, MVT::i32, ++/*218318*/ OPC_CheckChild4Integer, 1, ++/*218320*/ OPC_CheckChild4Type, MVT::i32, ++/*218322*/ OPC_MoveChild5, ++/*218323*/ OPC_CheckInteger, 1, ++/*218325*/ OPC_CheckType, MVT::i32, ++/*218327*/ OPC_MoveParent, ++/*218328*/ OPC_MoveChild6, ++/*218329*/ OPC_CheckInteger, 1, ++/*218331*/ OPC_CheckType, MVT::i32, ++/*218333*/ OPC_MoveParent, ++/*218334*/ OPC_MoveChild7, ++/*218335*/ OPC_CheckInteger, 1, ++/*218337*/ OPC_CheckType, MVT::i32, ++/*218339*/ OPC_MoveParent, ++/*218340*/ OPC_MoveChild, 8, ++/*218342*/ OPC_CheckInteger, 1, ++/*218344*/ OPC_CheckType, MVT::i32, ++/*218346*/ OPC_MoveParent, ++/*218347*/ OPC_MoveChild, 9, ++/*218349*/ OPC_CheckInteger, 1, ++/*218351*/ OPC_CheckType, MVT::i32, ++/*218353*/ OPC_MoveParent, ++/*218354*/ OPC_MoveChild, 10, ++/*218356*/ OPC_CheckInteger, 1, ++/*218358*/ OPC_CheckType, MVT::i32, ++/*218360*/ OPC_MoveParent, ++/*218361*/ OPC_MoveChild, 11, ++/*218363*/ OPC_CheckInteger, 1, ++/*218365*/ OPC_CheckType, MVT::i32, ++/*218367*/ OPC_MoveParent, ++/*218368*/ OPC_MoveChild, 12, ++/*218370*/ OPC_CheckInteger, 1, ++/*218372*/ OPC_CheckType, MVT::i32, ++/*218374*/ OPC_MoveParent, ++/*218375*/ OPC_MoveChild, 13, ++/*218377*/ OPC_CheckInteger, 1, ++/*218379*/ OPC_CheckType, MVT::i32, ++/*218381*/ OPC_MoveParent, ++/*218382*/ OPC_MoveChild, 14, ++/*218384*/ OPC_CheckInteger, 1, ++/*218386*/ OPC_CheckType, MVT::i32, ++/*218388*/ OPC_MoveParent, ++/*218389*/ OPC_MoveChild, 15, ++/*218391*/ OPC_CheckInteger, 1, ++/*218393*/ OPC_CheckType, MVT::i32, ++/*218395*/ OPC_MoveParent, ++/*218396*/ OPC_CheckType, MVT::v16i8, ++/*218398*/ OPC_MoveParent, ++/*218399*/ OPC_CheckType, MVT::v16i8, ++/*218401*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*218403*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b)), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*218411*/ 0, /*End of Scope*/ ++/*218412*/ /*Scope*/ 96|128,17/*2272*/, /*->220686*/ ++/*218414*/ OPC_MoveChild0, ++/*218415*/ OPC_SwitchOpcode /*2 cases */, 65|128,2/*321*/, TARGET_VAL(ISD::BUILD_VECTOR),// ->218741 ++/*218420*/ OPC_CheckChild0Integer, 1, ++/*218422*/ OPC_CheckChild0Type, MVT::i32, ++/*218424*/ OPC_CheckChild1Integer, 1, ++/*218426*/ OPC_CheckChild1Type, MVT::i32, ++/*218428*/ OPC_CheckChild2Integer, 1, ++/*218430*/ OPC_CheckChild2Type, MVT::i32, ++/*218432*/ OPC_CheckChild3Integer, 1, ++/*218434*/ OPC_CheckChild3Type, MVT::i32, ++/*218436*/ OPC_CheckChild4Integer, 1, ++/*218438*/ OPC_CheckChild4Type, MVT::i32, ++/*218440*/ OPC_MoveChild5, ++/*218441*/ OPC_CheckInteger, 1, ++/*218443*/ OPC_CheckType, MVT::i32, ++/*218445*/ OPC_MoveParent, ++/*218446*/ OPC_MoveChild6, ++/*218447*/ OPC_CheckInteger, 1, ++/*218449*/ OPC_CheckType, MVT::i32, ++/*218451*/ OPC_MoveParent, ++/*218452*/ OPC_MoveChild7, ++/*218453*/ OPC_CheckInteger, 1, ++/*218455*/ OPC_CheckType, MVT::i32, ++/*218457*/ OPC_MoveParent, ++/*218458*/ OPC_MoveChild, 8, ++/*218460*/ OPC_CheckInteger, 1, ++/*218462*/ OPC_CheckType, MVT::i32, ++/*218464*/ OPC_MoveParent, ++/*218465*/ OPC_MoveChild, 9, ++/*218467*/ OPC_CheckInteger, 1, ++/*218469*/ OPC_CheckType, MVT::i32, ++/*218471*/ OPC_MoveParent, ++/*218472*/ OPC_MoveChild, 10, ++/*218474*/ OPC_CheckInteger, 1, ++/*218476*/ OPC_CheckType, MVT::i32, ++/*218478*/ OPC_MoveParent, ++/*218479*/ OPC_MoveChild, 11, ++/*218481*/ OPC_CheckInteger, 1, ++/*218483*/ OPC_CheckType, MVT::i32, ++/*218485*/ OPC_MoveParent, ++/*218486*/ OPC_MoveChild, 12, ++/*218488*/ OPC_CheckInteger, 1, ++/*218490*/ OPC_CheckType, MVT::i32, ++/*218492*/ OPC_MoveParent, ++/*218493*/ OPC_MoveChild, 13, ++/*218495*/ OPC_CheckInteger, 1, ++/*218497*/ OPC_CheckType, MVT::i32, ++/*218499*/ OPC_MoveParent, ++/*218500*/ OPC_MoveChild, 14, ++/*218502*/ OPC_CheckInteger, 1, ++/*218504*/ OPC_CheckType, MVT::i32, ++/*218506*/ OPC_MoveParent, ++/*218507*/ OPC_MoveChild, 15, ++/*218509*/ OPC_CheckInteger, 1, ++/*218511*/ OPC_CheckType, MVT::i32, ++/*218513*/ OPC_MoveParent, ++/*218514*/ OPC_MoveParent, ++/*218515*/ OPC_MoveChild1, ++/*218516*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*218519*/ OPC_CheckChild0Same, 1, ++/*218521*/ OPC_CheckChild1Same, 0, ++/*218523*/ OPC_MoveParent, ++/*218524*/ OPC_MoveParent, ++/*218525*/ OPC_MoveChild1, ++/*218526*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*218529*/ OPC_CheckChild0Integer, 7, ++/*218531*/ OPC_CheckChild0Type, MVT::i32, ++/*218533*/ OPC_CheckChild1Integer, 7, ++/*218535*/ OPC_CheckChild1Type, MVT::i32, ++/*218537*/ OPC_CheckChild2Integer, 7, ++/*218539*/ OPC_CheckChild2Type, MVT::i32, ++/*218541*/ OPC_CheckChild3Integer, 7, ++/*218543*/ OPC_CheckChild3Type, MVT::i32, ++/*218545*/ OPC_CheckChild4Integer, 7, ++/*218547*/ OPC_CheckChild4Type, MVT::i32, ++/*218549*/ OPC_MoveChild5, ++/*218550*/ OPC_CheckInteger, 7, ++/*218552*/ OPC_CheckType, MVT::i32, ++/*218554*/ OPC_MoveParent, ++/*218555*/ OPC_MoveChild6, ++/*218556*/ OPC_CheckInteger, 7, ++/*218558*/ OPC_CheckType, MVT::i32, ++/*218560*/ OPC_MoveParent, ++/*218561*/ OPC_MoveChild7, ++/*218562*/ OPC_CheckInteger, 7, ++/*218564*/ OPC_CheckType, MVT::i32, ++/*218566*/ OPC_MoveParent, ++/*218567*/ OPC_MoveChild, 8, ++/*218569*/ OPC_CheckInteger, 7, ++/*218571*/ OPC_CheckType, MVT::i32, ++/*218573*/ OPC_MoveParent, ++/*218574*/ OPC_MoveChild, 9, ++/*218576*/ OPC_CheckInteger, 7, ++/*218578*/ OPC_CheckType, MVT::i32, ++/*218580*/ OPC_MoveParent, ++/*218581*/ OPC_MoveChild, 10, ++/*218583*/ OPC_CheckInteger, 7, ++/*218585*/ OPC_CheckType, MVT::i32, ++/*218587*/ OPC_MoveParent, ++/*218588*/ OPC_MoveChild, 11, ++/*218590*/ OPC_CheckInteger, 7, ++/*218592*/ OPC_CheckType, MVT::i32, ++/*218594*/ OPC_MoveParent, ++/*218595*/ OPC_MoveChild, 12, ++/*218597*/ OPC_CheckInteger, 7, ++/*218599*/ OPC_CheckType, MVT::i32, ++/*218601*/ OPC_MoveParent, ++/*218602*/ OPC_MoveChild, 13, ++/*218604*/ OPC_CheckInteger, 7, ++/*218606*/ OPC_CheckType, MVT::i32, ++/*218608*/ OPC_MoveParent, ++/*218609*/ OPC_MoveChild, 14, ++/*218611*/ OPC_CheckInteger, 7, ++/*218613*/ OPC_CheckType, MVT::i32, ++/*218615*/ OPC_MoveParent, ++/*218616*/ OPC_MoveChild, 15, ++/*218618*/ OPC_CheckInteger, 7, ++/*218620*/ OPC_CheckType, MVT::i32, ++/*218622*/ OPC_MoveParent, ++/*218623*/ OPC_CheckType, MVT::v16i8, ++/*218625*/ OPC_MoveParent, ++/*218626*/ OPC_MoveParent, ++/*218627*/ OPC_MoveParent, ++/*218628*/ OPC_MoveChild1, ++/*218629*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*218632*/ OPC_CheckChild0Integer, 1, ++/*218634*/ OPC_CheckChild0Type, MVT::i32, ++/*218636*/ OPC_CheckChild1Integer, 1, ++/*218638*/ OPC_CheckChild1Type, MVT::i32, ++/*218640*/ OPC_CheckChild2Integer, 1, ++/*218642*/ OPC_CheckChild2Type, MVT::i32, ++/*218644*/ OPC_CheckChild3Integer, 1, ++/*218646*/ OPC_CheckChild3Type, MVT::i32, ++/*218648*/ OPC_CheckChild4Integer, 1, ++/*218650*/ OPC_CheckChild4Type, MVT::i32, ++/*218652*/ OPC_MoveChild5, ++/*218653*/ OPC_CheckInteger, 1, ++/*218655*/ OPC_CheckType, MVT::i32, ++/*218657*/ OPC_MoveParent, ++/*218658*/ OPC_MoveChild6, ++/*218659*/ OPC_CheckInteger, 1, ++/*218661*/ OPC_CheckType, MVT::i32, ++/*218663*/ OPC_MoveParent, ++/*218664*/ OPC_MoveChild7, ++/*218665*/ OPC_CheckInteger, 1, ++/*218667*/ OPC_CheckType, MVT::i32, ++/*218669*/ OPC_MoveParent, ++/*218670*/ OPC_MoveChild, 8, ++/*218672*/ OPC_CheckInteger, 1, ++/*218674*/ OPC_CheckType, MVT::i32, ++/*218676*/ OPC_MoveParent, ++/*218677*/ OPC_MoveChild, 9, ++/*218679*/ OPC_CheckInteger, 1, ++/*218681*/ OPC_CheckType, MVT::i32, ++/*218683*/ OPC_MoveParent, ++/*218684*/ OPC_MoveChild, 10, ++/*218686*/ OPC_CheckInteger, 1, ++/*218688*/ OPC_CheckType, MVT::i32, ++/*218690*/ OPC_MoveParent, ++/*218691*/ OPC_MoveChild, 11, ++/*218693*/ OPC_CheckInteger, 1, ++/*218695*/ OPC_CheckType, MVT::i32, ++/*218697*/ OPC_MoveParent, ++/*218698*/ OPC_MoveChild, 12, ++/*218700*/ OPC_CheckInteger, 1, ++/*218702*/ OPC_CheckType, MVT::i32, ++/*218704*/ OPC_MoveParent, ++/*218705*/ OPC_MoveChild, 13, ++/*218707*/ OPC_CheckInteger, 1, ++/*218709*/ OPC_CheckType, MVT::i32, ++/*218711*/ OPC_MoveParent, ++/*218712*/ OPC_MoveChild, 14, ++/*218714*/ OPC_CheckInteger, 1, ++/*218716*/ OPC_CheckType, MVT::i32, ++/*218718*/ OPC_MoveParent, ++/*218719*/ OPC_MoveChild, 15, ++/*218721*/ OPC_CheckInteger, 1, ++/*218723*/ OPC_CheckType, MVT::i32, ++/*218725*/ OPC_MoveParent, ++/*218726*/ OPC_CheckType, MVT::v16i8, ++/*218728*/ OPC_MoveParent, ++/*218729*/ OPC_CheckType, MVT::v16i8, ++/*218731*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*218733*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b)), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*218741*/ /*SwitchOpcode*/ 20|128,15/*1940*/, TARGET_VAL(ISD::ADD),// ->220685 ++/*218745*/ OPC_Scope, 65|128,2/*321*/, /*->219069*/ // 6 children in Scope ++/*218748*/ OPC_MoveChild0, ++/*218749*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*218752*/ OPC_CheckChild0Integer, 1, ++/*218754*/ OPC_CheckChild0Type, MVT::i32, ++/*218756*/ OPC_CheckChild1Integer, 1, ++/*218758*/ OPC_CheckChild1Type, MVT::i32, ++/*218760*/ OPC_CheckChild2Integer, 1, ++/*218762*/ OPC_CheckChild2Type, MVT::i32, ++/*218764*/ OPC_CheckChild3Integer, 1, ++/*218766*/ OPC_CheckChild3Type, MVT::i32, ++/*218768*/ OPC_CheckChild4Integer, 1, ++/*218770*/ OPC_CheckChild4Type, MVT::i32, ++/*218772*/ OPC_MoveChild5, ++/*218773*/ OPC_CheckInteger, 1, ++/*218775*/ OPC_CheckType, MVT::i32, ++/*218777*/ OPC_MoveParent, ++/*218778*/ OPC_MoveChild6, ++/*218779*/ OPC_CheckInteger, 1, ++/*218781*/ OPC_CheckType, MVT::i32, ++/*218783*/ OPC_MoveParent, ++/*218784*/ OPC_MoveChild7, ++/*218785*/ OPC_CheckInteger, 1, ++/*218787*/ OPC_CheckType, MVT::i32, ++/*218789*/ OPC_MoveParent, ++/*218790*/ OPC_MoveChild, 8, ++/*218792*/ OPC_CheckInteger, 1, ++/*218794*/ OPC_CheckType, MVT::i32, ++/*218796*/ OPC_MoveParent, ++/*218797*/ OPC_MoveChild, 9, ++/*218799*/ OPC_CheckInteger, 1, ++/*218801*/ OPC_CheckType, MVT::i32, ++/*218803*/ OPC_MoveParent, ++/*218804*/ OPC_MoveChild, 10, ++/*218806*/ OPC_CheckInteger, 1, ++/*218808*/ OPC_CheckType, MVT::i32, ++/*218810*/ OPC_MoveParent, ++/*218811*/ OPC_MoveChild, 11, ++/*218813*/ OPC_CheckInteger, 1, ++/*218815*/ OPC_CheckType, MVT::i32, ++/*218817*/ OPC_MoveParent, ++/*218818*/ OPC_MoveChild, 12, ++/*218820*/ OPC_CheckInteger, 1, ++/*218822*/ OPC_CheckType, MVT::i32, ++/*218824*/ OPC_MoveParent, ++/*218825*/ OPC_MoveChild, 13, ++/*218827*/ OPC_CheckInteger, 1, ++/*218829*/ OPC_CheckType, MVT::i32, ++/*218831*/ OPC_MoveParent, ++/*218832*/ OPC_MoveChild, 14, ++/*218834*/ OPC_CheckInteger, 1, ++/*218836*/ OPC_CheckType, MVT::i32, ++/*218838*/ OPC_MoveParent, ++/*218839*/ OPC_MoveChild, 15, ++/*218841*/ OPC_CheckInteger, 1, ++/*218843*/ OPC_CheckType, MVT::i32, ++/*218845*/ OPC_MoveParent, ++/*218846*/ OPC_MoveParent, ++/*218847*/ OPC_CheckChild1Same, 1, ++/*218849*/ OPC_MoveParent, ++/*218850*/ OPC_CheckChild1Same, 0, ++/*218852*/ OPC_MoveParent, ++/*218853*/ OPC_MoveChild1, ++/*218854*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*218857*/ OPC_CheckChild0Integer, 7, ++/*218859*/ OPC_CheckChild0Type, MVT::i32, ++/*218861*/ OPC_CheckChild1Integer, 7, ++/*218863*/ OPC_CheckChild1Type, MVT::i32, ++/*218865*/ OPC_CheckChild2Integer, 7, ++/*218867*/ OPC_CheckChild2Type, MVT::i32, ++/*218869*/ OPC_CheckChild3Integer, 7, ++/*218871*/ OPC_CheckChild3Type, MVT::i32, ++/*218873*/ OPC_CheckChild4Integer, 7, ++/*218875*/ OPC_CheckChild4Type, MVT::i32, ++/*218877*/ OPC_MoveChild5, ++/*218878*/ OPC_CheckInteger, 7, ++/*218880*/ OPC_CheckType, MVT::i32, ++/*218882*/ OPC_MoveParent, ++/*218883*/ OPC_MoveChild6, ++/*218884*/ OPC_CheckInteger, 7, ++/*218886*/ OPC_CheckType, MVT::i32, ++/*218888*/ OPC_MoveParent, ++/*218889*/ OPC_MoveChild7, ++/*218890*/ OPC_CheckInteger, 7, ++/*218892*/ OPC_CheckType, MVT::i32, ++/*218894*/ OPC_MoveParent, ++/*218895*/ OPC_MoveChild, 8, ++/*218897*/ OPC_CheckInteger, 7, ++/*218899*/ OPC_CheckType, MVT::i32, ++/*218901*/ OPC_MoveParent, ++/*218902*/ OPC_MoveChild, 9, ++/*218904*/ OPC_CheckInteger, 7, ++/*218906*/ OPC_CheckType, MVT::i32, ++/*218908*/ OPC_MoveParent, ++/*218909*/ OPC_MoveChild, 10, ++/*218911*/ OPC_CheckInteger, 7, ++/*218913*/ OPC_CheckType, MVT::i32, ++/*218915*/ OPC_MoveParent, ++/*218916*/ OPC_MoveChild, 11, ++/*218918*/ OPC_CheckInteger, 7, ++/*218920*/ OPC_CheckType, MVT::i32, ++/*218922*/ OPC_MoveParent, ++/*218923*/ OPC_MoveChild, 12, ++/*218925*/ OPC_CheckInteger, 7, ++/*218927*/ OPC_CheckType, MVT::i32, ++/*218929*/ OPC_MoveParent, ++/*218930*/ OPC_MoveChild, 13, ++/*218932*/ OPC_CheckInteger, 7, ++/*218934*/ OPC_CheckType, MVT::i32, ++/*218936*/ OPC_MoveParent, ++/*218937*/ OPC_MoveChild, 14, ++/*218939*/ OPC_CheckInteger, 7, ++/*218941*/ OPC_CheckType, MVT::i32, ++/*218943*/ OPC_MoveParent, ++/*218944*/ OPC_MoveChild, 15, ++/*218946*/ OPC_CheckInteger, 7, ++/*218948*/ OPC_CheckType, MVT::i32, ++/*218950*/ OPC_MoveParent, ++/*218951*/ OPC_CheckType, MVT::v16i8, ++/*218953*/ OPC_MoveParent, ++/*218954*/ OPC_MoveParent, ++/*218955*/ OPC_MoveParent, ++/*218956*/ OPC_MoveChild1, ++/*218957*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*218960*/ OPC_CheckChild0Integer, 1, ++/*218962*/ OPC_CheckChild0Type, MVT::i32, ++/*218964*/ OPC_CheckChild1Integer, 1, ++/*218966*/ OPC_CheckChild1Type, MVT::i32, ++/*218968*/ OPC_CheckChild2Integer, 1, ++/*218970*/ OPC_CheckChild2Type, MVT::i32, ++/*218972*/ OPC_CheckChild3Integer, 1, ++/*218974*/ OPC_CheckChild3Type, MVT::i32, ++/*218976*/ OPC_CheckChild4Integer, 1, ++/*218978*/ OPC_CheckChild4Type, MVT::i32, ++/*218980*/ OPC_MoveChild5, ++/*218981*/ OPC_CheckInteger, 1, ++/*218983*/ OPC_CheckType, MVT::i32, ++/*218985*/ OPC_MoveParent, ++/*218986*/ OPC_MoveChild6, ++/*218987*/ OPC_CheckInteger, 1, ++/*218989*/ OPC_CheckType, MVT::i32, ++/*218991*/ OPC_MoveParent, ++/*218992*/ OPC_MoveChild7, ++/*218993*/ OPC_CheckInteger, 1, ++/*218995*/ OPC_CheckType, MVT::i32, ++/*218997*/ OPC_MoveParent, ++/*218998*/ OPC_MoveChild, 8, ++/*219000*/ OPC_CheckInteger, 1, ++/*219002*/ OPC_CheckType, MVT::i32, ++/*219004*/ OPC_MoveParent, ++/*219005*/ OPC_MoveChild, 9, ++/*219007*/ OPC_CheckInteger, 1, ++/*219009*/ OPC_CheckType, MVT::i32, ++/*219011*/ OPC_MoveParent, ++/*219012*/ OPC_MoveChild, 10, ++/*219014*/ OPC_CheckInteger, 1, ++/*219016*/ OPC_CheckType, MVT::i32, ++/*219018*/ OPC_MoveParent, ++/*219019*/ OPC_MoveChild, 11, ++/*219021*/ OPC_CheckInteger, 1, ++/*219023*/ OPC_CheckType, MVT::i32, ++/*219025*/ OPC_MoveParent, ++/*219026*/ OPC_MoveChild, 12, ++/*219028*/ OPC_CheckInteger, 1, ++/*219030*/ OPC_CheckType, MVT::i32, ++/*219032*/ OPC_MoveParent, ++/*219033*/ OPC_MoveChild, 13, ++/*219035*/ OPC_CheckInteger, 1, ++/*219037*/ OPC_CheckType, MVT::i32, ++/*219039*/ OPC_MoveParent, ++/*219040*/ OPC_MoveChild, 14, ++/*219042*/ OPC_CheckInteger, 1, ++/*219044*/ OPC_CheckType, MVT::i32, ++/*219046*/ OPC_MoveParent, ++/*219047*/ OPC_MoveChild, 15, ++/*219049*/ OPC_CheckInteger, 1, ++/*219051*/ OPC_CheckType, MVT::i32, ++/*219053*/ OPC_MoveParent, ++/*219054*/ OPC_CheckType, MVT::v16i8, ++/*219056*/ OPC_MoveParent, ++/*219057*/ OPC_CheckType, MVT::v16i8, ++/*219059*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*219061*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a)), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a), LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*219069*/ /*Scope*/ 65|128,2/*321*/, /*->219392*/ ++/*219071*/ OPC_CheckChild0Same, 1, ++/*219073*/ OPC_MoveChild1, ++/*219074*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*219077*/ OPC_CheckChild0Integer, 1, ++/*219079*/ OPC_CheckChild0Type, MVT::i32, ++/*219081*/ OPC_CheckChild1Integer, 1, ++/*219083*/ OPC_CheckChild1Type, MVT::i32, ++/*219085*/ OPC_CheckChild2Integer, 1, ++/*219087*/ OPC_CheckChild2Type, MVT::i32, ++/*219089*/ OPC_CheckChild3Integer, 1, ++/*219091*/ OPC_CheckChild3Type, MVT::i32, ++/*219093*/ OPC_CheckChild4Integer, 1, ++/*219095*/ OPC_CheckChild4Type, MVT::i32, ++/*219097*/ OPC_MoveChild5, ++/*219098*/ OPC_CheckInteger, 1, ++/*219100*/ OPC_CheckType, MVT::i32, ++/*219102*/ OPC_MoveParent, ++/*219103*/ OPC_MoveChild6, ++/*219104*/ OPC_CheckInteger, 1, ++/*219106*/ OPC_CheckType, MVT::i32, ++/*219108*/ OPC_MoveParent, ++/*219109*/ OPC_MoveChild7, ++/*219110*/ OPC_CheckInteger, 1, ++/*219112*/ OPC_CheckType, MVT::i32, ++/*219114*/ OPC_MoveParent, ++/*219115*/ OPC_MoveChild, 8, ++/*219117*/ OPC_CheckInteger, 1, ++/*219119*/ OPC_CheckType, MVT::i32, ++/*219121*/ OPC_MoveParent, ++/*219122*/ OPC_MoveChild, 9, ++/*219124*/ OPC_CheckInteger, 1, ++/*219126*/ OPC_CheckType, MVT::i32, ++/*219128*/ OPC_MoveParent, ++/*219129*/ OPC_MoveChild, 10, ++/*219131*/ OPC_CheckInteger, 1, ++/*219133*/ OPC_CheckType, MVT::i32, ++/*219135*/ OPC_MoveParent, ++/*219136*/ OPC_MoveChild, 11, ++/*219138*/ OPC_CheckInteger, 1, ++/*219140*/ OPC_CheckType, MVT::i32, ++/*219142*/ OPC_MoveParent, ++/*219143*/ OPC_MoveChild, 12, ++/*219145*/ OPC_CheckInteger, 1, ++/*219147*/ OPC_CheckType, MVT::i32, ++/*219149*/ OPC_MoveParent, ++/*219150*/ OPC_MoveChild, 13, ++/*219152*/ OPC_CheckInteger, 1, ++/*219154*/ OPC_CheckType, MVT::i32, ++/*219156*/ OPC_MoveParent, ++/*219157*/ OPC_MoveChild, 14, ++/*219159*/ OPC_CheckInteger, 1, ++/*219161*/ OPC_CheckType, MVT::i32, ++/*219163*/ OPC_MoveParent, ++/*219164*/ OPC_MoveChild, 15, ++/*219166*/ OPC_CheckInteger, 1, ++/*219168*/ OPC_CheckType, MVT::i32, ++/*219170*/ OPC_MoveParent, ++/*219171*/ OPC_MoveParent, ++/*219172*/ OPC_MoveParent, ++/*219173*/ OPC_CheckChild1Same, 0, ++/*219175*/ OPC_MoveParent, ++/*219176*/ OPC_MoveChild1, ++/*219177*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*219180*/ OPC_CheckChild0Integer, 7, ++/*219182*/ OPC_CheckChild0Type, MVT::i32, ++/*219184*/ OPC_CheckChild1Integer, 7, ++/*219186*/ OPC_CheckChild1Type, MVT::i32, ++/*219188*/ OPC_CheckChild2Integer, 7, ++/*219190*/ OPC_CheckChild2Type, MVT::i32, ++/*219192*/ OPC_CheckChild3Integer, 7, ++/*219194*/ OPC_CheckChild3Type, MVT::i32, ++/*219196*/ OPC_CheckChild4Integer, 7, ++/*219198*/ OPC_CheckChild4Type, MVT::i32, ++/*219200*/ OPC_MoveChild5, ++/*219201*/ OPC_CheckInteger, 7, ++/*219203*/ OPC_CheckType, MVT::i32, ++/*219205*/ OPC_MoveParent, ++/*219206*/ OPC_MoveChild6, ++/*219207*/ OPC_CheckInteger, 7, ++/*219209*/ OPC_CheckType, MVT::i32, ++/*219211*/ OPC_MoveParent, ++/*219212*/ OPC_MoveChild7, ++/*219213*/ OPC_CheckInteger, 7, ++/*219215*/ OPC_CheckType, MVT::i32, ++/*219217*/ OPC_MoveParent, ++/*219218*/ OPC_MoveChild, 8, ++/*219220*/ OPC_CheckInteger, 7, ++/*219222*/ OPC_CheckType, MVT::i32, ++/*219224*/ OPC_MoveParent, ++/*219225*/ OPC_MoveChild, 9, ++/*219227*/ OPC_CheckInteger, 7, ++/*219229*/ OPC_CheckType, MVT::i32, ++/*219231*/ OPC_MoveParent, ++/*219232*/ OPC_MoveChild, 10, ++/*219234*/ OPC_CheckInteger, 7, ++/*219236*/ OPC_CheckType, MVT::i32, ++/*219238*/ OPC_MoveParent, ++/*219239*/ OPC_MoveChild, 11, ++/*219241*/ OPC_CheckInteger, 7, ++/*219243*/ OPC_CheckType, MVT::i32, ++/*219245*/ OPC_MoveParent, ++/*219246*/ OPC_MoveChild, 12, ++/*219248*/ OPC_CheckInteger, 7, ++/*219250*/ OPC_CheckType, MVT::i32, ++/*219252*/ OPC_MoveParent, ++/*219253*/ OPC_MoveChild, 13, ++/*219255*/ OPC_CheckInteger, 7, ++/*219257*/ OPC_CheckType, MVT::i32, ++/*219259*/ OPC_MoveParent, ++/*219260*/ OPC_MoveChild, 14, ++/*219262*/ OPC_CheckInteger, 7, ++/*219264*/ OPC_CheckType, MVT::i32, ++/*219266*/ OPC_MoveParent, ++/*219267*/ OPC_MoveChild, 15, ++/*219269*/ OPC_CheckInteger, 7, ++/*219271*/ OPC_CheckType, MVT::i32, ++/*219273*/ OPC_MoveParent, ++/*219274*/ OPC_CheckType, MVT::v16i8, ++/*219276*/ OPC_MoveParent, ++/*219277*/ OPC_MoveParent, ++/*219278*/ OPC_MoveParent, ++/*219279*/ OPC_MoveChild1, ++/*219280*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*219283*/ OPC_CheckChild0Integer, 1, ++/*219285*/ OPC_CheckChild0Type, MVT::i32, ++/*219287*/ OPC_CheckChild1Integer, 1, ++/*219289*/ OPC_CheckChild1Type, MVT::i32, ++/*219291*/ OPC_CheckChild2Integer, 1, ++/*219293*/ OPC_CheckChild2Type, MVT::i32, ++/*219295*/ OPC_CheckChild3Integer, 1, ++/*219297*/ OPC_CheckChild3Type, MVT::i32, ++/*219299*/ OPC_CheckChild4Integer, 1, ++/*219301*/ OPC_CheckChild4Type, MVT::i32, ++/*219303*/ OPC_MoveChild5, ++/*219304*/ OPC_CheckInteger, 1, ++/*219306*/ OPC_CheckType, MVT::i32, ++/*219308*/ OPC_MoveParent, ++/*219309*/ OPC_MoveChild6, ++/*219310*/ OPC_CheckInteger, 1, ++/*219312*/ OPC_CheckType, MVT::i32, ++/*219314*/ OPC_MoveParent, ++/*219315*/ OPC_MoveChild7, ++/*219316*/ OPC_CheckInteger, 1, ++/*219318*/ OPC_CheckType, MVT::i32, ++/*219320*/ OPC_MoveParent, ++/*219321*/ OPC_MoveChild, 8, ++/*219323*/ OPC_CheckInteger, 1, ++/*219325*/ OPC_CheckType, MVT::i32, ++/*219327*/ OPC_MoveParent, ++/*219328*/ OPC_MoveChild, 9, ++/*219330*/ OPC_CheckInteger, 1, ++/*219332*/ OPC_CheckType, MVT::i32, ++/*219334*/ OPC_MoveParent, ++/*219335*/ OPC_MoveChild, 10, ++/*219337*/ OPC_CheckInteger, 1, ++/*219339*/ OPC_CheckType, MVT::i32, ++/*219341*/ OPC_MoveParent, ++/*219342*/ OPC_MoveChild, 11, ++/*219344*/ OPC_CheckInteger, 1, ++/*219346*/ OPC_CheckType, MVT::i32, ++/*219348*/ OPC_MoveParent, ++/*219349*/ OPC_MoveChild, 12, ++/*219351*/ OPC_CheckInteger, 1, ++/*219353*/ OPC_CheckType, MVT::i32, ++/*219355*/ OPC_MoveParent, ++/*219356*/ OPC_MoveChild, 13, ++/*219358*/ OPC_CheckInteger, 1, ++/*219360*/ OPC_CheckType, MVT::i32, ++/*219362*/ OPC_MoveParent, ++/*219363*/ OPC_MoveChild, 14, ++/*219365*/ OPC_CheckInteger, 1, ++/*219367*/ OPC_CheckType, MVT::i32, ++/*219369*/ OPC_MoveParent, ++/*219370*/ OPC_MoveChild, 15, ++/*219372*/ OPC_CheckInteger, 1, ++/*219374*/ OPC_CheckType, MVT::i32, ++/*219376*/ OPC_MoveParent, ++/*219377*/ OPC_CheckType, MVT::v16i8, ++/*219379*/ OPC_MoveParent, ++/*219380*/ OPC_CheckType, MVT::v16i8, ++/*219382*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*219384*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a)), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*219392*/ /*Scope*/ 65|128,2/*321*/, /*->219715*/ ++/*219394*/ OPC_MoveChild0, ++/*219395*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*219398*/ OPC_CheckChild0Integer, 1, ++/*219400*/ OPC_CheckChild0Type, MVT::i32, ++/*219402*/ OPC_CheckChild1Integer, 1, ++/*219404*/ OPC_CheckChild1Type, MVT::i32, ++/*219406*/ OPC_CheckChild2Integer, 1, ++/*219408*/ OPC_CheckChild2Type, MVT::i32, ++/*219410*/ OPC_CheckChild3Integer, 1, ++/*219412*/ OPC_CheckChild3Type, MVT::i32, ++/*219414*/ OPC_CheckChild4Integer, 1, ++/*219416*/ OPC_CheckChild4Type, MVT::i32, ++/*219418*/ OPC_MoveChild5, ++/*219419*/ OPC_CheckInteger, 1, ++/*219421*/ OPC_CheckType, MVT::i32, ++/*219423*/ OPC_MoveParent, ++/*219424*/ OPC_MoveChild6, ++/*219425*/ OPC_CheckInteger, 1, ++/*219427*/ OPC_CheckType, MVT::i32, ++/*219429*/ OPC_MoveParent, ++/*219430*/ OPC_MoveChild7, ++/*219431*/ OPC_CheckInteger, 1, ++/*219433*/ OPC_CheckType, MVT::i32, ++/*219435*/ OPC_MoveParent, ++/*219436*/ OPC_MoveChild, 8, ++/*219438*/ OPC_CheckInteger, 1, ++/*219440*/ OPC_CheckType, MVT::i32, ++/*219442*/ OPC_MoveParent, ++/*219443*/ OPC_MoveChild, 9, ++/*219445*/ OPC_CheckInteger, 1, ++/*219447*/ OPC_CheckType, MVT::i32, ++/*219449*/ OPC_MoveParent, ++/*219450*/ OPC_MoveChild, 10, ++/*219452*/ OPC_CheckInteger, 1, ++/*219454*/ OPC_CheckType, MVT::i32, ++/*219456*/ OPC_MoveParent, ++/*219457*/ OPC_MoveChild, 11, ++/*219459*/ OPC_CheckInteger, 1, ++/*219461*/ OPC_CheckType, MVT::i32, ++/*219463*/ OPC_MoveParent, ++/*219464*/ OPC_MoveChild, 12, ++/*219466*/ OPC_CheckInteger, 1, ++/*219468*/ OPC_CheckType, MVT::i32, ++/*219470*/ OPC_MoveParent, ++/*219471*/ OPC_MoveChild, 13, ++/*219473*/ OPC_CheckInteger, 1, ++/*219475*/ OPC_CheckType, MVT::i32, ++/*219477*/ OPC_MoveParent, ++/*219478*/ OPC_MoveChild, 14, ++/*219480*/ OPC_CheckInteger, 1, ++/*219482*/ OPC_CheckType, MVT::i32, ++/*219484*/ OPC_MoveParent, ++/*219485*/ OPC_MoveChild, 15, ++/*219487*/ OPC_CheckInteger, 1, ++/*219489*/ OPC_CheckType, MVT::i32, ++/*219491*/ OPC_MoveParent, ++/*219492*/ OPC_MoveParent, ++/*219493*/ OPC_CheckChild1Same, 0, ++/*219495*/ OPC_MoveParent, ++/*219496*/ OPC_CheckChild1Same, 1, ++/*219498*/ OPC_MoveParent, ++/*219499*/ OPC_MoveChild1, ++/*219500*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*219503*/ OPC_CheckChild0Integer, 7, ++/*219505*/ OPC_CheckChild0Type, MVT::i32, ++/*219507*/ OPC_CheckChild1Integer, 7, ++/*219509*/ OPC_CheckChild1Type, MVT::i32, ++/*219511*/ OPC_CheckChild2Integer, 7, ++/*219513*/ OPC_CheckChild2Type, MVT::i32, ++/*219515*/ OPC_CheckChild3Integer, 7, ++/*219517*/ OPC_CheckChild3Type, MVT::i32, ++/*219519*/ OPC_CheckChild4Integer, 7, ++/*219521*/ OPC_CheckChild4Type, MVT::i32, ++/*219523*/ OPC_MoveChild5, ++/*219524*/ OPC_CheckInteger, 7, ++/*219526*/ OPC_CheckType, MVT::i32, ++/*219528*/ OPC_MoveParent, ++/*219529*/ OPC_MoveChild6, ++/*219530*/ OPC_CheckInteger, 7, ++/*219532*/ OPC_CheckType, MVT::i32, ++/*219534*/ OPC_MoveParent, ++/*219535*/ OPC_MoveChild7, ++/*219536*/ OPC_CheckInteger, 7, ++/*219538*/ OPC_CheckType, MVT::i32, ++/*219540*/ OPC_MoveParent, ++/*219541*/ OPC_MoveChild, 8, ++/*219543*/ OPC_CheckInteger, 7, ++/*219545*/ OPC_CheckType, MVT::i32, ++/*219547*/ OPC_MoveParent, ++/*219548*/ OPC_MoveChild, 9, ++/*219550*/ OPC_CheckInteger, 7, ++/*219552*/ OPC_CheckType, MVT::i32, ++/*219554*/ OPC_MoveParent, ++/*219555*/ OPC_MoveChild, 10, ++/*219557*/ OPC_CheckInteger, 7, ++/*219559*/ OPC_CheckType, MVT::i32, ++/*219561*/ OPC_MoveParent, ++/*219562*/ OPC_MoveChild, 11, ++/*219564*/ OPC_CheckInteger, 7, ++/*219566*/ OPC_CheckType, MVT::i32, ++/*219568*/ OPC_MoveParent, ++/*219569*/ OPC_MoveChild, 12, ++/*219571*/ OPC_CheckInteger, 7, ++/*219573*/ OPC_CheckType, MVT::i32, ++/*219575*/ OPC_MoveParent, ++/*219576*/ OPC_MoveChild, 13, ++/*219578*/ OPC_CheckInteger, 7, ++/*219580*/ OPC_CheckType, MVT::i32, ++/*219582*/ OPC_MoveParent, ++/*219583*/ OPC_MoveChild, 14, ++/*219585*/ OPC_CheckInteger, 7, ++/*219587*/ OPC_CheckType, MVT::i32, ++/*219589*/ OPC_MoveParent, ++/*219590*/ OPC_MoveChild, 15, ++/*219592*/ OPC_CheckInteger, 7, ++/*219594*/ OPC_CheckType, MVT::i32, ++/*219596*/ OPC_MoveParent, ++/*219597*/ OPC_CheckType, MVT::v16i8, ++/*219599*/ OPC_MoveParent, ++/*219600*/ OPC_MoveParent, ++/*219601*/ OPC_MoveParent, ++/*219602*/ OPC_MoveChild1, ++/*219603*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*219606*/ OPC_CheckChild0Integer, 1, ++/*219608*/ OPC_CheckChild0Type, MVT::i32, ++/*219610*/ OPC_CheckChild1Integer, 1, ++/*219612*/ OPC_CheckChild1Type, MVT::i32, ++/*219614*/ OPC_CheckChild2Integer, 1, ++/*219616*/ OPC_CheckChild2Type, MVT::i32, ++/*219618*/ OPC_CheckChild3Integer, 1, ++/*219620*/ OPC_CheckChild3Type, MVT::i32, ++/*219622*/ OPC_CheckChild4Integer, 1, ++/*219624*/ OPC_CheckChild4Type, MVT::i32, ++/*219626*/ OPC_MoveChild5, ++/*219627*/ OPC_CheckInteger, 1, ++/*219629*/ OPC_CheckType, MVT::i32, ++/*219631*/ OPC_MoveParent, ++/*219632*/ OPC_MoveChild6, ++/*219633*/ OPC_CheckInteger, 1, ++/*219635*/ OPC_CheckType, MVT::i32, ++/*219637*/ OPC_MoveParent, ++/*219638*/ OPC_MoveChild7, ++/*219639*/ OPC_CheckInteger, 1, ++/*219641*/ OPC_CheckType, MVT::i32, ++/*219643*/ OPC_MoveParent, ++/*219644*/ OPC_MoveChild, 8, ++/*219646*/ OPC_CheckInteger, 1, ++/*219648*/ OPC_CheckType, MVT::i32, ++/*219650*/ OPC_MoveParent, ++/*219651*/ OPC_MoveChild, 9, ++/*219653*/ OPC_CheckInteger, 1, ++/*219655*/ OPC_CheckType, MVT::i32, ++/*219657*/ OPC_MoveParent, ++/*219658*/ OPC_MoveChild, 10, ++/*219660*/ OPC_CheckInteger, 1, ++/*219662*/ OPC_CheckType, MVT::i32, ++/*219664*/ OPC_MoveParent, ++/*219665*/ OPC_MoveChild, 11, ++/*219667*/ OPC_CheckInteger, 1, ++/*219669*/ OPC_CheckType, MVT::i32, ++/*219671*/ OPC_MoveParent, ++/*219672*/ OPC_MoveChild, 12, ++/*219674*/ OPC_CheckInteger, 1, ++/*219676*/ OPC_CheckType, MVT::i32, ++/*219678*/ OPC_MoveParent, ++/*219679*/ OPC_MoveChild, 13, ++/*219681*/ OPC_CheckInteger, 1, ++/*219683*/ OPC_CheckType, MVT::i32, ++/*219685*/ OPC_MoveParent, ++/*219686*/ OPC_MoveChild, 14, ++/*219688*/ OPC_CheckInteger, 1, ++/*219690*/ OPC_CheckType, MVT::i32, ++/*219692*/ OPC_MoveParent, ++/*219693*/ OPC_MoveChild, 15, ++/*219695*/ OPC_CheckInteger, 1, ++/*219697*/ OPC_CheckType, MVT::i32, ++/*219699*/ OPC_MoveParent, ++/*219700*/ OPC_CheckType, MVT::v16i8, ++/*219702*/ OPC_MoveParent, ++/*219703*/ OPC_CheckType, MVT::v16i8, ++/*219705*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*219707*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a)), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b), LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*219715*/ /*Scope*/ 65|128,2/*321*/, /*->220038*/ ++/*219717*/ OPC_CheckChild0Same, 0, ++/*219719*/ OPC_MoveChild1, ++/*219720*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*219723*/ OPC_CheckChild0Integer, 1, ++/*219725*/ OPC_CheckChild0Type, MVT::i32, ++/*219727*/ OPC_CheckChild1Integer, 1, ++/*219729*/ OPC_CheckChild1Type, MVT::i32, ++/*219731*/ OPC_CheckChild2Integer, 1, ++/*219733*/ OPC_CheckChild2Type, MVT::i32, ++/*219735*/ OPC_CheckChild3Integer, 1, ++/*219737*/ OPC_CheckChild3Type, MVT::i32, ++/*219739*/ OPC_CheckChild4Integer, 1, ++/*219741*/ OPC_CheckChild4Type, MVT::i32, ++/*219743*/ OPC_MoveChild5, ++/*219744*/ OPC_CheckInteger, 1, ++/*219746*/ OPC_CheckType, MVT::i32, ++/*219748*/ OPC_MoveParent, ++/*219749*/ OPC_MoveChild6, ++/*219750*/ OPC_CheckInteger, 1, ++/*219752*/ OPC_CheckType, MVT::i32, ++/*219754*/ OPC_MoveParent, ++/*219755*/ OPC_MoveChild7, ++/*219756*/ OPC_CheckInteger, 1, ++/*219758*/ OPC_CheckType, MVT::i32, ++/*219760*/ OPC_MoveParent, ++/*219761*/ OPC_MoveChild, 8, ++/*219763*/ OPC_CheckInteger, 1, ++/*219765*/ OPC_CheckType, MVT::i32, ++/*219767*/ OPC_MoveParent, ++/*219768*/ OPC_MoveChild, 9, ++/*219770*/ OPC_CheckInteger, 1, ++/*219772*/ OPC_CheckType, MVT::i32, ++/*219774*/ OPC_MoveParent, ++/*219775*/ OPC_MoveChild, 10, ++/*219777*/ OPC_CheckInteger, 1, ++/*219779*/ OPC_CheckType, MVT::i32, ++/*219781*/ OPC_MoveParent, ++/*219782*/ OPC_MoveChild, 11, ++/*219784*/ OPC_CheckInteger, 1, ++/*219786*/ OPC_CheckType, MVT::i32, ++/*219788*/ OPC_MoveParent, ++/*219789*/ OPC_MoveChild, 12, ++/*219791*/ OPC_CheckInteger, 1, ++/*219793*/ OPC_CheckType, MVT::i32, ++/*219795*/ OPC_MoveParent, ++/*219796*/ OPC_MoveChild, 13, ++/*219798*/ OPC_CheckInteger, 1, ++/*219800*/ OPC_CheckType, MVT::i32, ++/*219802*/ OPC_MoveParent, ++/*219803*/ OPC_MoveChild, 14, ++/*219805*/ OPC_CheckInteger, 1, ++/*219807*/ OPC_CheckType, MVT::i32, ++/*219809*/ OPC_MoveParent, ++/*219810*/ OPC_MoveChild, 15, ++/*219812*/ OPC_CheckInteger, 1, ++/*219814*/ OPC_CheckType, MVT::i32, ++/*219816*/ OPC_MoveParent, ++/*219817*/ OPC_MoveParent, ++/*219818*/ OPC_MoveParent, ++/*219819*/ OPC_CheckChild1Same, 1, ++/*219821*/ OPC_MoveParent, ++/*219822*/ OPC_MoveChild1, ++/*219823*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*219826*/ OPC_CheckChild0Integer, 7, ++/*219828*/ OPC_CheckChild0Type, MVT::i32, ++/*219830*/ OPC_CheckChild1Integer, 7, ++/*219832*/ OPC_CheckChild1Type, MVT::i32, ++/*219834*/ OPC_CheckChild2Integer, 7, ++/*219836*/ OPC_CheckChild2Type, MVT::i32, ++/*219838*/ OPC_CheckChild3Integer, 7, ++/*219840*/ OPC_CheckChild3Type, MVT::i32, ++/*219842*/ OPC_CheckChild4Integer, 7, ++/*219844*/ OPC_CheckChild4Type, MVT::i32, ++/*219846*/ OPC_MoveChild5, ++/*219847*/ OPC_CheckInteger, 7, ++/*219849*/ OPC_CheckType, MVT::i32, ++/*219851*/ OPC_MoveParent, ++/*219852*/ OPC_MoveChild6, ++/*219853*/ OPC_CheckInteger, 7, ++/*219855*/ OPC_CheckType, MVT::i32, ++/*219857*/ OPC_MoveParent, ++/*219858*/ OPC_MoveChild7, ++/*219859*/ OPC_CheckInteger, 7, ++/*219861*/ OPC_CheckType, MVT::i32, ++/*219863*/ OPC_MoveParent, ++/*219864*/ OPC_MoveChild, 8, ++/*219866*/ OPC_CheckInteger, 7, ++/*219868*/ OPC_CheckType, MVT::i32, ++/*219870*/ OPC_MoveParent, ++/*219871*/ OPC_MoveChild, 9, ++/*219873*/ OPC_CheckInteger, 7, ++/*219875*/ OPC_CheckType, MVT::i32, ++/*219877*/ OPC_MoveParent, ++/*219878*/ OPC_MoveChild, 10, ++/*219880*/ OPC_CheckInteger, 7, ++/*219882*/ OPC_CheckType, MVT::i32, ++/*219884*/ OPC_MoveParent, ++/*219885*/ OPC_MoveChild, 11, ++/*219887*/ OPC_CheckInteger, 7, ++/*219889*/ OPC_CheckType, MVT::i32, ++/*219891*/ OPC_MoveParent, ++/*219892*/ OPC_MoveChild, 12, ++/*219894*/ OPC_CheckInteger, 7, ++/*219896*/ OPC_CheckType, MVT::i32, ++/*219898*/ OPC_MoveParent, ++/*219899*/ OPC_MoveChild, 13, ++/*219901*/ OPC_CheckInteger, 7, ++/*219903*/ OPC_CheckType, MVT::i32, ++/*219905*/ OPC_MoveParent, ++/*219906*/ OPC_MoveChild, 14, ++/*219908*/ OPC_CheckInteger, 7, ++/*219910*/ OPC_CheckType, MVT::i32, ++/*219912*/ OPC_MoveParent, ++/*219913*/ OPC_MoveChild, 15, ++/*219915*/ OPC_CheckInteger, 7, ++/*219917*/ OPC_CheckType, MVT::i32, ++/*219919*/ OPC_MoveParent, ++/*219920*/ OPC_CheckType, MVT::v16i8, ++/*219922*/ OPC_MoveParent, ++/*219923*/ OPC_MoveParent, ++/*219924*/ OPC_MoveParent, ++/*219925*/ OPC_MoveChild1, ++/*219926*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*219929*/ OPC_CheckChild0Integer, 1, ++/*219931*/ OPC_CheckChild0Type, MVT::i32, ++/*219933*/ OPC_CheckChild1Integer, 1, ++/*219935*/ OPC_CheckChild1Type, MVT::i32, ++/*219937*/ OPC_CheckChild2Integer, 1, ++/*219939*/ OPC_CheckChild2Type, MVT::i32, ++/*219941*/ OPC_CheckChild3Integer, 1, ++/*219943*/ OPC_CheckChild3Type, MVT::i32, ++/*219945*/ OPC_CheckChild4Integer, 1, ++/*219947*/ OPC_CheckChild4Type, MVT::i32, ++/*219949*/ OPC_MoveChild5, ++/*219950*/ OPC_CheckInteger, 1, ++/*219952*/ OPC_CheckType, MVT::i32, ++/*219954*/ OPC_MoveParent, ++/*219955*/ OPC_MoveChild6, ++/*219956*/ OPC_CheckInteger, 1, ++/*219958*/ OPC_CheckType, MVT::i32, ++/*219960*/ OPC_MoveParent, ++/*219961*/ OPC_MoveChild7, ++/*219962*/ OPC_CheckInteger, 1, ++/*219964*/ OPC_CheckType, MVT::i32, ++/*219966*/ OPC_MoveParent, ++/*219967*/ OPC_MoveChild, 8, ++/*219969*/ OPC_CheckInteger, 1, ++/*219971*/ OPC_CheckType, MVT::i32, ++/*219973*/ OPC_MoveParent, ++/*219974*/ OPC_MoveChild, 9, ++/*219976*/ OPC_CheckInteger, 1, ++/*219978*/ OPC_CheckType, MVT::i32, ++/*219980*/ OPC_MoveParent, ++/*219981*/ OPC_MoveChild, 10, ++/*219983*/ OPC_CheckInteger, 1, ++/*219985*/ OPC_CheckType, MVT::i32, ++/*219987*/ OPC_MoveParent, ++/*219988*/ OPC_MoveChild, 11, ++/*219990*/ OPC_CheckInteger, 1, ++/*219992*/ OPC_CheckType, MVT::i32, ++/*219994*/ OPC_MoveParent, ++/*219995*/ OPC_MoveChild, 12, ++/*219997*/ OPC_CheckInteger, 1, ++/*219999*/ OPC_CheckType, MVT::i32, ++/*220001*/ OPC_MoveParent, ++/*220002*/ OPC_MoveChild, 13, ++/*220004*/ OPC_CheckInteger, 1, ++/*220006*/ OPC_CheckType, MVT::i32, ++/*220008*/ OPC_MoveParent, ++/*220009*/ OPC_MoveChild, 14, ++/*220011*/ OPC_CheckInteger, 1, ++/*220013*/ OPC_CheckType, MVT::i32, ++/*220015*/ OPC_MoveParent, ++/*220016*/ OPC_MoveChild, 15, ++/*220018*/ OPC_CheckInteger, 1, ++/*220020*/ OPC_CheckType, MVT::i32, ++/*220022*/ OPC_MoveParent, ++/*220023*/ OPC_CheckType, MVT::v16i8, ++/*220025*/ OPC_MoveParent, ++/*220026*/ OPC_CheckType, MVT::v16i8, ++/*220028*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*220030*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a)), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*220038*/ /*Scope*/ 65|128,2/*321*/, /*->220361*/ ++/*220040*/ OPC_CheckChild0Same, 1, ++/*220042*/ OPC_CheckChild1Same, 0, ++/*220044*/ OPC_MoveParent, ++/*220045*/ OPC_MoveChild1, ++/*220046*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*220049*/ OPC_CheckChild0Integer, 1, ++/*220051*/ OPC_CheckChild0Type, MVT::i32, ++/*220053*/ OPC_CheckChild1Integer, 1, ++/*220055*/ OPC_CheckChild1Type, MVT::i32, ++/*220057*/ OPC_CheckChild2Integer, 1, ++/*220059*/ OPC_CheckChild2Type, MVT::i32, ++/*220061*/ OPC_CheckChild3Integer, 1, ++/*220063*/ OPC_CheckChild3Type, MVT::i32, ++/*220065*/ OPC_CheckChild4Integer, 1, ++/*220067*/ OPC_CheckChild4Type, MVT::i32, ++/*220069*/ OPC_MoveChild5, ++/*220070*/ OPC_CheckInteger, 1, ++/*220072*/ OPC_CheckType, MVT::i32, ++/*220074*/ OPC_MoveParent, ++/*220075*/ OPC_MoveChild6, ++/*220076*/ OPC_CheckInteger, 1, ++/*220078*/ OPC_CheckType, MVT::i32, ++/*220080*/ OPC_MoveParent, ++/*220081*/ OPC_MoveChild7, ++/*220082*/ OPC_CheckInteger, 1, ++/*220084*/ OPC_CheckType, MVT::i32, ++/*220086*/ OPC_MoveParent, ++/*220087*/ OPC_MoveChild, 8, ++/*220089*/ OPC_CheckInteger, 1, ++/*220091*/ OPC_CheckType, MVT::i32, ++/*220093*/ OPC_MoveParent, ++/*220094*/ OPC_MoveChild, 9, ++/*220096*/ OPC_CheckInteger, 1, ++/*220098*/ OPC_CheckType, MVT::i32, ++/*220100*/ OPC_MoveParent, ++/*220101*/ OPC_MoveChild, 10, ++/*220103*/ OPC_CheckInteger, 1, ++/*220105*/ OPC_CheckType, MVT::i32, ++/*220107*/ OPC_MoveParent, ++/*220108*/ OPC_MoveChild, 11, ++/*220110*/ OPC_CheckInteger, 1, ++/*220112*/ OPC_CheckType, MVT::i32, ++/*220114*/ OPC_MoveParent, ++/*220115*/ OPC_MoveChild, 12, ++/*220117*/ OPC_CheckInteger, 1, ++/*220119*/ OPC_CheckType, MVT::i32, ++/*220121*/ OPC_MoveParent, ++/*220122*/ OPC_MoveChild, 13, ++/*220124*/ OPC_CheckInteger, 1, ++/*220126*/ OPC_CheckType, MVT::i32, ++/*220128*/ OPC_MoveParent, ++/*220129*/ OPC_MoveChild, 14, ++/*220131*/ OPC_CheckInteger, 1, ++/*220133*/ OPC_CheckType, MVT::i32, ++/*220135*/ OPC_MoveParent, ++/*220136*/ OPC_MoveChild, 15, ++/*220138*/ OPC_CheckInteger, 1, ++/*220140*/ OPC_CheckType, MVT::i32, ++/*220142*/ OPC_MoveParent, ++/*220143*/ OPC_MoveParent, ++/*220144*/ OPC_MoveParent, ++/*220145*/ OPC_MoveChild1, ++/*220146*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*220149*/ OPC_CheckChild0Integer, 7, ++/*220151*/ OPC_CheckChild0Type, MVT::i32, ++/*220153*/ OPC_CheckChild1Integer, 7, ++/*220155*/ OPC_CheckChild1Type, MVT::i32, ++/*220157*/ OPC_CheckChild2Integer, 7, ++/*220159*/ OPC_CheckChild2Type, MVT::i32, ++/*220161*/ OPC_CheckChild3Integer, 7, ++/*220163*/ OPC_CheckChild3Type, MVT::i32, ++/*220165*/ OPC_CheckChild4Integer, 7, ++/*220167*/ OPC_CheckChild4Type, MVT::i32, ++/*220169*/ OPC_MoveChild5, ++/*220170*/ OPC_CheckInteger, 7, ++/*220172*/ OPC_CheckType, MVT::i32, ++/*220174*/ OPC_MoveParent, ++/*220175*/ OPC_MoveChild6, ++/*220176*/ OPC_CheckInteger, 7, ++/*220178*/ OPC_CheckType, MVT::i32, ++/*220180*/ OPC_MoveParent, ++/*220181*/ OPC_MoveChild7, ++/*220182*/ OPC_CheckInteger, 7, ++/*220184*/ OPC_CheckType, MVT::i32, ++/*220186*/ OPC_MoveParent, ++/*220187*/ OPC_MoveChild, 8, ++/*220189*/ OPC_CheckInteger, 7, ++/*220191*/ OPC_CheckType, MVT::i32, ++/*220193*/ OPC_MoveParent, ++/*220194*/ OPC_MoveChild, 9, ++/*220196*/ OPC_CheckInteger, 7, ++/*220198*/ OPC_CheckType, MVT::i32, ++/*220200*/ OPC_MoveParent, ++/*220201*/ OPC_MoveChild, 10, ++/*220203*/ OPC_CheckInteger, 7, ++/*220205*/ OPC_CheckType, MVT::i32, ++/*220207*/ OPC_MoveParent, ++/*220208*/ OPC_MoveChild, 11, ++/*220210*/ OPC_CheckInteger, 7, ++/*220212*/ OPC_CheckType, MVT::i32, ++/*220214*/ OPC_MoveParent, ++/*220215*/ OPC_MoveChild, 12, ++/*220217*/ OPC_CheckInteger, 7, ++/*220219*/ OPC_CheckType, MVT::i32, ++/*220221*/ OPC_MoveParent, ++/*220222*/ OPC_MoveChild, 13, ++/*220224*/ OPC_CheckInteger, 7, ++/*220226*/ OPC_CheckType, MVT::i32, ++/*220228*/ OPC_MoveParent, ++/*220229*/ OPC_MoveChild, 14, ++/*220231*/ OPC_CheckInteger, 7, ++/*220233*/ OPC_CheckType, MVT::i32, ++/*220235*/ OPC_MoveParent, ++/*220236*/ OPC_MoveChild, 15, ++/*220238*/ OPC_CheckInteger, 7, ++/*220240*/ OPC_CheckType, MVT::i32, ++/*220242*/ OPC_MoveParent, ++/*220243*/ OPC_CheckType, MVT::v16i8, ++/*220245*/ OPC_MoveParent, ++/*220246*/ OPC_MoveParent, ++/*220247*/ OPC_MoveParent, ++/*220248*/ OPC_MoveChild1, ++/*220249*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*220252*/ OPC_CheckChild0Integer, 1, ++/*220254*/ OPC_CheckChild0Type, MVT::i32, ++/*220256*/ OPC_CheckChild1Integer, 1, ++/*220258*/ OPC_CheckChild1Type, MVT::i32, ++/*220260*/ OPC_CheckChild2Integer, 1, ++/*220262*/ OPC_CheckChild2Type, MVT::i32, ++/*220264*/ OPC_CheckChild3Integer, 1, ++/*220266*/ OPC_CheckChild3Type, MVT::i32, ++/*220268*/ OPC_CheckChild4Integer, 1, ++/*220270*/ OPC_CheckChild4Type, MVT::i32, ++/*220272*/ OPC_MoveChild5, ++/*220273*/ OPC_CheckInteger, 1, ++/*220275*/ OPC_CheckType, MVT::i32, ++/*220277*/ OPC_MoveParent, ++/*220278*/ OPC_MoveChild6, ++/*220279*/ OPC_CheckInteger, 1, ++/*220281*/ OPC_CheckType, MVT::i32, ++/*220283*/ OPC_MoveParent, ++/*220284*/ OPC_MoveChild7, ++/*220285*/ OPC_CheckInteger, 1, ++/*220287*/ OPC_CheckType, MVT::i32, ++/*220289*/ OPC_MoveParent, ++/*220290*/ OPC_MoveChild, 8, ++/*220292*/ OPC_CheckInteger, 1, ++/*220294*/ OPC_CheckType, MVT::i32, ++/*220296*/ OPC_MoveParent, ++/*220297*/ OPC_MoveChild, 9, ++/*220299*/ OPC_CheckInteger, 1, ++/*220301*/ OPC_CheckType, MVT::i32, ++/*220303*/ OPC_MoveParent, ++/*220304*/ OPC_MoveChild, 10, ++/*220306*/ OPC_CheckInteger, 1, ++/*220308*/ OPC_CheckType, MVT::i32, ++/*220310*/ OPC_MoveParent, ++/*220311*/ OPC_MoveChild, 11, ++/*220313*/ OPC_CheckInteger, 1, ++/*220315*/ OPC_CheckType, MVT::i32, ++/*220317*/ OPC_MoveParent, ++/*220318*/ OPC_MoveChild, 12, ++/*220320*/ OPC_CheckInteger, 1, ++/*220322*/ OPC_CheckType, MVT::i32, ++/*220324*/ OPC_MoveParent, ++/*220325*/ OPC_MoveChild, 13, ++/*220327*/ OPC_CheckInteger, 1, ++/*220329*/ OPC_CheckType, MVT::i32, ++/*220331*/ OPC_MoveParent, ++/*220332*/ OPC_MoveChild, 14, ++/*220334*/ OPC_CheckInteger, 1, ++/*220336*/ OPC_CheckType, MVT::i32, ++/*220338*/ OPC_MoveParent, ++/*220339*/ OPC_MoveChild, 15, ++/*220341*/ OPC_CheckInteger, 1, ++/*220343*/ OPC_CheckType, MVT::i32, ++/*220345*/ OPC_MoveParent, ++/*220346*/ OPC_CheckType, MVT::v16i8, ++/*220348*/ OPC_MoveParent, ++/*220349*/ OPC_CheckType, MVT::v16i8, ++/*220351*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*220353*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a)), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*220361*/ /*Scope*/ 65|128,2/*321*/, /*->220684*/ ++/*220363*/ OPC_CheckChild0Same, 0, ++/*220365*/ OPC_CheckChild1Same, 1, ++/*220367*/ OPC_MoveParent, ++/*220368*/ OPC_MoveChild1, ++/*220369*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*220372*/ OPC_CheckChild0Integer, 1, ++/*220374*/ OPC_CheckChild0Type, MVT::i32, ++/*220376*/ OPC_CheckChild1Integer, 1, ++/*220378*/ OPC_CheckChild1Type, MVT::i32, ++/*220380*/ OPC_CheckChild2Integer, 1, ++/*220382*/ OPC_CheckChild2Type, MVT::i32, ++/*220384*/ OPC_CheckChild3Integer, 1, ++/*220386*/ OPC_CheckChild3Type, MVT::i32, ++/*220388*/ OPC_CheckChild4Integer, 1, ++/*220390*/ OPC_CheckChild4Type, MVT::i32, ++/*220392*/ OPC_MoveChild5, ++/*220393*/ OPC_CheckInteger, 1, ++/*220395*/ OPC_CheckType, MVT::i32, ++/*220397*/ OPC_MoveParent, ++/*220398*/ OPC_MoveChild6, ++/*220399*/ OPC_CheckInteger, 1, ++/*220401*/ OPC_CheckType, MVT::i32, ++/*220403*/ OPC_MoveParent, ++/*220404*/ OPC_MoveChild7, ++/*220405*/ OPC_CheckInteger, 1, ++/*220407*/ OPC_CheckType, MVT::i32, ++/*220409*/ OPC_MoveParent, ++/*220410*/ OPC_MoveChild, 8, ++/*220412*/ OPC_CheckInteger, 1, ++/*220414*/ OPC_CheckType, MVT::i32, ++/*220416*/ OPC_MoveParent, ++/*220417*/ OPC_MoveChild, 9, ++/*220419*/ OPC_CheckInteger, 1, ++/*220421*/ OPC_CheckType, MVT::i32, ++/*220423*/ OPC_MoveParent, ++/*220424*/ OPC_MoveChild, 10, ++/*220426*/ OPC_CheckInteger, 1, ++/*220428*/ OPC_CheckType, MVT::i32, ++/*220430*/ OPC_MoveParent, ++/*220431*/ OPC_MoveChild, 11, ++/*220433*/ OPC_CheckInteger, 1, ++/*220435*/ OPC_CheckType, MVT::i32, ++/*220437*/ OPC_MoveParent, ++/*220438*/ OPC_MoveChild, 12, ++/*220440*/ OPC_CheckInteger, 1, ++/*220442*/ OPC_CheckType, MVT::i32, ++/*220444*/ OPC_MoveParent, ++/*220445*/ OPC_MoveChild, 13, ++/*220447*/ OPC_CheckInteger, 1, ++/*220449*/ OPC_CheckType, MVT::i32, ++/*220451*/ OPC_MoveParent, ++/*220452*/ OPC_MoveChild, 14, ++/*220454*/ OPC_CheckInteger, 1, ++/*220456*/ OPC_CheckType, MVT::i32, ++/*220458*/ OPC_MoveParent, ++/*220459*/ OPC_MoveChild, 15, ++/*220461*/ OPC_CheckInteger, 1, ++/*220463*/ OPC_CheckType, MVT::i32, ++/*220465*/ OPC_MoveParent, ++/*220466*/ OPC_MoveParent, ++/*220467*/ OPC_MoveParent, ++/*220468*/ OPC_MoveChild1, ++/*220469*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*220472*/ OPC_CheckChild0Integer, 7, ++/*220474*/ OPC_CheckChild0Type, MVT::i32, ++/*220476*/ OPC_CheckChild1Integer, 7, ++/*220478*/ OPC_CheckChild1Type, MVT::i32, ++/*220480*/ OPC_CheckChild2Integer, 7, ++/*220482*/ OPC_CheckChild2Type, MVT::i32, ++/*220484*/ OPC_CheckChild3Integer, 7, ++/*220486*/ OPC_CheckChild3Type, MVT::i32, ++/*220488*/ OPC_CheckChild4Integer, 7, ++/*220490*/ OPC_CheckChild4Type, MVT::i32, ++/*220492*/ OPC_MoveChild5, ++/*220493*/ OPC_CheckInteger, 7, ++/*220495*/ OPC_CheckType, MVT::i32, ++/*220497*/ OPC_MoveParent, ++/*220498*/ OPC_MoveChild6, ++/*220499*/ OPC_CheckInteger, 7, ++/*220501*/ OPC_CheckType, MVT::i32, ++/*220503*/ OPC_MoveParent, ++/*220504*/ OPC_MoveChild7, ++/*220505*/ OPC_CheckInteger, 7, ++/*220507*/ OPC_CheckType, MVT::i32, ++/*220509*/ OPC_MoveParent, ++/*220510*/ OPC_MoveChild, 8, ++/*220512*/ OPC_CheckInteger, 7, ++/*220514*/ OPC_CheckType, MVT::i32, ++/*220516*/ OPC_MoveParent, ++/*220517*/ OPC_MoveChild, 9, ++/*220519*/ OPC_CheckInteger, 7, ++/*220521*/ OPC_CheckType, MVT::i32, ++/*220523*/ OPC_MoveParent, ++/*220524*/ OPC_MoveChild, 10, ++/*220526*/ OPC_CheckInteger, 7, ++/*220528*/ OPC_CheckType, MVT::i32, ++/*220530*/ OPC_MoveParent, ++/*220531*/ OPC_MoveChild, 11, ++/*220533*/ OPC_CheckInteger, 7, ++/*220535*/ OPC_CheckType, MVT::i32, ++/*220537*/ OPC_MoveParent, ++/*220538*/ OPC_MoveChild, 12, ++/*220540*/ OPC_CheckInteger, 7, ++/*220542*/ OPC_CheckType, MVT::i32, ++/*220544*/ OPC_MoveParent, ++/*220545*/ OPC_MoveChild, 13, ++/*220547*/ OPC_CheckInteger, 7, ++/*220549*/ OPC_CheckType, MVT::i32, ++/*220551*/ OPC_MoveParent, ++/*220552*/ OPC_MoveChild, 14, ++/*220554*/ OPC_CheckInteger, 7, ++/*220556*/ OPC_CheckType, MVT::i32, ++/*220558*/ OPC_MoveParent, ++/*220559*/ OPC_MoveChild, 15, ++/*220561*/ OPC_CheckInteger, 7, ++/*220563*/ OPC_CheckType, MVT::i32, ++/*220565*/ OPC_MoveParent, ++/*220566*/ OPC_CheckType, MVT::v16i8, ++/*220568*/ OPC_MoveParent, ++/*220569*/ OPC_MoveParent, ++/*220570*/ OPC_MoveParent, ++/*220571*/ OPC_MoveChild1, ++/*220572*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*220575*/ OPC_CheckChild0Integer, 1, ++/*220577*/ OPC_CheckChild0Type, MVT::i32, ++/*220579*/ OPC_CheckChild1Integer, 1, ++/*220581*/ OPC_CheckChild1Type, MVT::i32, ++/*220583*/ OPC_CheckChild2Integer, 1, ++/*220585*/ OPC_CheckChild2Type, MVT::i32, ++/*220587*/ OPC_CheckChild3Integer, 1, ++/*220589*/ OPC_CheckChild3Type, MVT::i32, ++/*220591*/ OPC_CheckChild4Integer, 1, ++/*220593*/ OPC_CheckChild4Type, MVT::i32, ++/*220595*/ OPC_MoveChild5, ++/*220596*/ OPC_CheckInteger, 1, ++/*220598*/ OPC_CheckType, MVT::i32, ++/*220600*/ OPC_MoveParent, ++/*220601*/ OPC_MoveChild6, ++/*220602*/ OPC_CheckInteger, 1, ++/*220604*/ OPC_CheckType, MVT::i32, ++/*220606*/ OPC_MoveParent, ++/*220607*/ OPC_MoveChild7, ++/*220608*/ OPC_CheckInteger, 1, ++/*220610*/ OPC_CheckType, MVT::i32, ++/*220612*/ OPC_MoveParent, ++/*220613*/ OPC_MoveChild, 8, ++/*220615*/ OPC_CheckInteger, 1, ++/*220617*/ OPC_CheckType, MVT::i32, ++/*220619*/ OPC_MoveParent, ++/*220620*/ OPC_MoveChild, 9, ++/*220622*/ OPC_CheckInteger, 1, ++/*220624*/ OPC_CheckType, MVT::i32, ++/*220626*/ OPC_MoveParent, ++/*220627*/ OPC_MoveChild, 10, ++/*220629*/ OPC_CheckInteger, 1, ++/*220631*/ OPC_CheckType, MVT::i32, ++/*220633*/ OPC_MoveParent, ++/*220634*/ OPC_MoveChild, 11, ++/*220636*/ OPC_CheckInteger, 1, ++/*220638*/ OPC_CheckType, MVT::i32, ++/*220640*/ OPC_MoveParent, ++/*220641*/ OPC_MoveChild, 12, ++/*220643*/ OPC_CheckInteger, 1, ++/*220645*/ OPC_CheckType, MVT::i32, ++/*220647*/ OPC_MoveParent, ++/*220648*/ OPC_MoveChild, 13, ++/*220650*/ OPC_CheckInteger, 1, ++/*220652*/ OPC_CheckType, MVT::i32, ++/*220654*/ OPC_MoveParent, ++/*220655*/ OPC_MoveChild, 14, ++/*220657*/ OPC_CheckInteger, 1, ++/*220659*/ OPC_CheckType, MVT::i32, ++/*220661*/ OPC_MoveParent, ++/*220662*/ OPC_MoveChild, 15, ++/*220664*/ OPC_CheckInteger, 1, ++/*220666*/ OPC_CheckType, MVT::i32, ++/*220668*/ OPC_MoveParent, ++/*220669*/ OPC_CheckType, MVT::v16i8, ++/*220671*/ OPC_MoveParent, ++/*220672*/ OPC_CheckType, MVT::v16i8, ++/*220674*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*220676*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a)), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*220684*/ 0, /*End of Scope*/ ++/*220685*/ 0, // EndSwitchOpcode ++/*220686*/ /*Scope*/ 10|128,5/*650*/, /*->221338*/ ++/*220688*/ OPC_CheckChild0Same, 0, ++/*220690*/ OPC_MoveChild1, ++/*220691*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*220694*/ OPC_Scope, 63|128,2/*319*/, /*->221016*/ // 2 children in Scope ++/*220697*/ OPC_MoveChild0, ++/*220698*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*220701*/ OPC_CheckChild0Integer, 1, ++/*220703*/ OPC_CheckChild0Type, MVT::i32, ++/*220705*/ OPC_CheckChild1Integer, 1, ++/*220707*/ OPC_CheckChild1Type, MVT::i32, ++/*220709*/ OPC_CheckChild2Integer, 1, ++/*220711*/ OPC_CheckChild2Type, MVT::i32, ++/*220713*/ OPC_CheckChild3Integer, 1, ++/*220715*/ OPC_CheckChild3Type, MVT::i32, ++/*220717*/ OPC_CheckChild4Integer, 1, ++/*220719*/ OPC_CheckChild4Type, MVT::i32, ++/*220721*/ OPC_MoveChild5, ++/*220722*/ OPC_CheckInteger, 1, ++/*220724*/ OPC_CheckType, MVT::i32, ++/*220726*/ OPC_MoveParent, ++/*220727*/ OPC_MoveChild6, ++/*220728*/ OPC_CheckInteger, 1, ++/*220730*/ OPC_CheckType, MVT::i32, ++/*220732*/ OPC_MoveParent, ++/*220733*/ OPC_MoveChild7, ++/*220734*/ OPC_CheckInteger, 1, ++/*220736*/ OPC_CheckType, MVT::i32, ++/*220738*/ OPC_MoveParent, ++/*220739*/ OPC_MoveChild, 8, ++/*220741*/ OPC_CheckInteger, 1, ++/*220743*/ OPC_CheckType, MVT::i32, ++/*220745*/ OPC_MoveParent, ++/*220746*/ OPC_MoveChild, 9, ++/*220748*/ OPC_CheckInteger, 1, ++/*220750*/ OPC_CheckType, MVT::i32, ++/*220752*/ OPC_MoveParent, ++/*220753*/ OPC_MoveChild, 10, ++/*220755*/ OPC_CheckInteger, 1, ++/*220757*/ OPC_CheckType, MVT::i32, ++/*220759*/ OPC_MoveParent, ++/*220760*/ OPC_MoveChild, 11, ++/*220762*/ OPC_CheckInteger, 1, ++/*220764*/ OPC_CheckType, MVT::i32, ++/*220766*/ OPC_MoveParent, ++/*220767*/ OPC_MoveChild, 12, ++/*220769*/ OPC_CheckInteger, 1, ++/*220771*/ OPC_CheckType, MVT::i32, ++/*220773*/ OPC_MoveParent, ++/*220774*/ OPC_MoveChild, 13, ++/*220776*/ OPC_CheckInteger, 1, ++/*220778*/ OPC_CheckType, MVT::i32, ++/*220780*/ OPC_MoveParent, ++/*220781*/ OPC_MoveChild, 14, ++/*220783*/ OPC_CheckInteger, 1, ++/*220785*/ OPC_CheckType, MVT::i32, ++/*220787*/ OPC_MoveParent, ++/*220788*/ OPC_MoveChild, 15, ++/*220790*/ OPC_CheckInteger, 1, ++/*220792*/ OPC_CheckType, MVT::i32, ++/*220794*/ OPC_MoveParent, ++/*220795*/ OPC_MoveParent, ++/*220796*/ OPC_CheckChild1Same, 1, ++/*220798*/ OPC_MoveParent, ++/*220799*/ OPC_MoveParent, ++/*220800*/ OPC_MoveChild1, ++/*220801*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*220804*/ OPC_CheckChild0Integer, 7, ++/*220806*/ OPC_CheckChild0Type, MVT::i32, ++/*220808*/ OPC_CheckChild1Integer, 7, ++/*220810*/ OPC_CheckChild1Type, MVT::i32, ++/*220812*/ OPC_CheckChild2Integer, 7, ++/*220814*/ OPC_CheckChild2Type, MVT::i32, ++/*220816*/ OPC_CheckChild3Integer, 7, ++/*220818*/ OPC_CheckChild3Type, MVT::i32, ++/*220820*/ OPC_CheckChild4Integer, 7, ++/*220822*/ OPC_CheckChild4Type, MVT::i32, ++/*220824*/ OPC_MoveChild5, ++/*220825*/ OPC_CheckInteger, 7, ++/*220827*/ OPC_CheckType, MVT::i32, ++/*220829*/ OPC_MoveParent, ++/*220830*/ OPC_MoveChild6, ++/*220831*/ OPC_CheckInteger, 7, ++/*220833*/ OPC_CheckType, MVT::i32, ++/*220835*/ OPC_MoveParent, ++/*220836*/ OPC_MoveChild7, ++/*220837*/ OPC_CheckInteger, 7, ++/*220839*/ OPC_CheckType, MVT::i32, ++/*220841*/ OPC_MoveParent, ++/*220842*/ OPC_MoveChild, 8, ++/*220844*/ OPC_CheckInteger, 7, ++/*220846*/ OPC_CheckType, MVT::i32, ++/*220848*/ OPC_MoveParent, ++/*220849*/ OPC_MoveChild, 9, ++/*220851*/ OPC_CheckInteger, 7, ++/*220853*/ OPC_CheckType, MVT::i32, ++/*220855*/ OPC_MoveParent, ++/*220856*/ OPC_MoveChild, 10, ++/*220858*/ OPC_CheckInteger, 7, ++/*220860*/ OPC_CheckType, MVT::i32, ++/*220862*/ OPC_MoveParent, ++/*220863*/ OPC_MoveChild, 11, ++/*220865*/ OPC_CheckInteger, 7, ++/*220867*/ OPC_CheckType, MVT::i32, ++/*220869*/ OPC_MoveParent, ++/*220870*/ OPC_MoveChild, 12, ++/*220872*/ OPC_CheckInteger, 7, ++/*220874*/ OPC_CheckType, MVT::i32, ++/*220876*/ OPC_MoveParent, ++/*220877*/ OPC_MoveChild, 13, ++/*220879*/ OPC_CheckInteger, 7, ++/*220881*/ OPC_CheckType, MVT::i32, ++/*220883*/ OPC_MoveParent, ++/*220884*/ OPC_MoveChild, 14, ++/*220886*/ OPC_CheckInteger, 7, ++/*220888*/ OPC_CheckType, MVT::i32, ++/*220890*/ OPC_MoveParent, ++/*220891*/ OPC_MoveChild, 15, ++/*220893*/ OPC_CheckInteger, 7, ++/*220895*/ OPC_CheckType, MVT::i32, ++/*220897*/ OPC_MoveParent, ++/*220898*/ OPC_CheckType, MVT::v16i8, ++/*220900*/ OPC_MoveParent, ++/*220901*/ OPC_MoveParent, ++/*220902*/ OPC_MoveParent, ++/*220903*/ OPC_MoveChild1, ++/*220904*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*220907*/ OPC_CheckChild0Integer, 1, ++/*220909*/ OPC_CheckChild0Type, MVT::i32, ++/*220911*/ OPC_CheckChild1Integer, 1, ++/*220913*/ OPC_CheckChild1Type, MVT::i32, ++/*220915*/ OPC_CheckChild2Integer, 1, ++/*220917*/ OPC_CheckChild2Type, MVT::i32, ++/*220919*/ OPC_CheckChild3Integer, 1, ++/*220921*/ OPC_CheckChild3Type, MVT::i32, ++/*220923*/ OPC_CheckChild4Integer, 1, ++/*220925*/ OPC_CheckChild4Type, MVT::i32, ++/*220927*/ OPC_MoveChild5, ++/*220928*/ OPC_CheckInteger, 1, ++/*220930*/ OPC_CheckType, MVT::i32, ++/*220932*/ OPC_MoveParent, ++/*220933*/ OPC_MoveChild6, ++/*220934*/ OPC_CheckInteger, 1, ++/*220936*/ OPC_CheckType, MVT::i32, ++/*220938*/ OPC_MoveParent, ++/*220939*/ OPC_MoveChild7, ++/*220940*/ OPC_CheckInteger, 1, ++/*220942*/ OPC_CheckType, MVT::i32, ++/*220944*/ OPC_MoveParent, ++/*220945*/ OPC_MoveChild, 8, ++/*220947*/ OPC_CheckInteger, 1, ++/*220949*/ OPC_CheckType, MVT::i32, ++/*220951*/ OPC_MoveParent, ++/*220952*/ OPC_MoveChild, 9, ++/*220954*/ OPC_CheckInteger, 1, ++/*220956*/ OPC_CheckType, MVT::i32, ++/*220958*/ OPC_MoveParent, ++/*220959*/ OPC_MoveChild, 10, ++/*220961*/ OPC_CheckInteger, 1, ++/*220963*/ OPC_CheckType, MVT::i32, ++/*220965*/ OPC_MoveParent, ++/*220966*/ OPC_MoveChild, 11, ++/*220968*/ OPC_CheckInteger, 1, ++/*220970*/ OPC_CheckType, MVT::i32, ++/*220972*/ OPC_MoveParent, ++/*220973*/ OPC_MoveChild, 12, ++/*220975*/ OPC_CheckInteger, 1, ++/*220977*/ OPC_CheckType, MVT::i32, ++/*220979*/ OPC_MoveParent, ++/*220980*/ OPC_MoveChild, 13, ++/*220982*/ OPC_CheckInteger, 1, ++/*220984*/ OPC_CheckType, MVT::i32, ++/*220986*/ OPC_MoveParent, ++/*220987*/ OPC_MoveChild, 14, ++/*220989*/ OPC_CheckInteger, 1, ++/*220991*/ OPC_CheckType, MVT::i32, ++/*220993*/ OPC_MoveParent, ++/*220994*/ OPC_MoveChild, 15, ++/*220996*/ OPC_CheckInteger, 1, ++/*220998*/ OPC_CheckType, MVT::i32, ++/*221000*/ OPC_MoveParent, ++/*221001*/ OPC_CheckType, MVT::v16i8, ++/*221003*/ OPC_MoveParent, ++/*221004*/ OPC_CheckType, MVT::v16i8, ++/*221006*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*221008*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a)), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*221016*/ /*Scope*/ 63|128,2/*319*/, /*->221337*/ ++/*221018*/ OPC_CheckChild0Same, 1, ++/*221020*/ OPC_MoveChild1, ++/*221021*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*221024*/ OPC_CheckChild0Integer, 1, ++/*221026*/ OPC_CheckChild0Type, MVT::i32, ++/*221028*/ OPC_CheckChild1Integer, 1, ++/*221030*/ OPC_CheckChild1Type, MVT::i32, ++/*221032*/ OPC_CheckChild2Integer, 1, ++/*221034*/ OPC_CheckChild2Type, MVT::i32, ++/*221036*/ OPC_CheckChild3Integer, 1, ++/*221038*/ OPC_CheckChild3Type, MVT::i32, ++/*221040*/ OPC_CheckChild4Integer, 1, ++/*221042*/ OPC_CheckChild4Type, MVT::i32, ++/*221044*/ OPC_MoveChild5, ++/*221045*/ OPC_CheckInteger, 1, ++/*221047*/ OPC_CheckType, MVT::i32, ++/*221049*/ OPC_MoveParent, ++/*221050*/ OPC_MoveChild6, ++/*221051*/ OPC_CheckInteger, 1, ++/*221053*/ OPC_CheckType, MVT::i32, ++/*221055*/ OPC_MoveParent, ++/*221056*/ OPC_MoveChild7, ++/*221057*/ OPC_CheckInteger, 1, ++/*221059*/ OPC_CheckType, MVT::i32, ++/*221061*/ OPC_MoveParent, ++/*221062*/ OPC_MoveChild, 8, ++/*221064*/ OPC_CheckInteger, 1, ++/*221066*/ OPC_CheckType, MVT::i32, ++/*221068*/ OPC_MoveParent, ++/*221069*/ OPC_MoveChild, 9, ++/*221071*/ OPC_CheckInteger, 1, ++/*221073*/ OPC_CheckType, MVT::i32, ++/*221075*/ OPC_MoveParent, ++/*221076*/ OPC_MoveChild, 10, ++/*221078*/ OPC_CheckInteger, 1, ++/*221080*/ OPC_CheckType, MVT::i32, ++/*221082*/ OPC_MoveParent, ++/*221083*/ OPC_MoveChild, 11, ++/*221085*/ OPC_CheckInteger, 1, ++/*221087*/ OPC_CheckType, MVT::i32, ++/*221089*/ OPC_MoveParent, ++/*221090*/ OPC_MoveChild, 12, ++/*221092*/ OPC_CheckInteger, 1, ++/*221094*/ OPC_CheckType, MVT::i32, ++/*221096*/ OPC_MoveParent, ++/*221097*/ OPC_MoveChild, 13, ++/*221099*/ OPC_CheckInteger, 1, ++/*221101*/ OPC_CheckType, MVT::i32, ++/*221103*/ OPC_MoveParent, ++/*221104*/ OPC_MoveChild, 14, ++/*221106*/ OPC_CheckInteger, 1, ++/*221108*/ OPC_CheckType, MVT::i32, ++/*221110*/ OPC_MoveParent, ++/*221111*/ OPC_MoveChild, 15, ++/*221113*/ OPC_CheckInteger, 1, ++/*221115*/ OPC_CheckType, MVT::i32, ++/*221117*/ OPC_MoveParent, ++/*221118*/ OPC_MoveParent, ++/*221119*/ OPC_MoveParent, ++/*221120*/ OPC_MoveParent, ++/*221121*/ OPC_MoveChild1, ++/*221122*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*221125*/ OPC_CheckChild0Integer, 7, ++/*221127*/ OPC_CheckChild0Type, MVT::i32, ++/*221129*/ OPC_CheckChild1Integer, 7, ++/*221131*/ OPC_CheckChild1Type, MVT::i32, ++/*221133*/ OPC_CheckChild2Integer, 7, ++/*221135*/ OPC_CheckChild2Type, MVT::i32, ++/*221137*/ OPC_CheckChild3Integer, 7, ++/*221139*/ OPC_CheckChild3Type, MVT::i32, ++/*221141*/ OPC_CheckChild4Integer, 7, ++/*221143*/ OPC_CheckChild4Type, MVT::i32, ++/*221145*/ OPC_MoveChild5, ++/*221146*/ OPC_CheckInteger, 7, ++/*221148*/ OPC_CheckType, MVT::i32, ++/*221150*/ OPC_MoveParent, ++/*221151*/ OPC_MoveChild6, ++/*221152*/ OPC_CheckInteger, 7, ++/*221154*/ OPC_CheckType, MVT::i32, ++/*221156*/ OPC_MoveParent, ++/*221157*/ OPC_MoveChild7, ++/*221158*/ OPC_CheckInteger, 7, ++/*221160*/ OPC_CheckType, MVT::i32, ++/*221162*/ OPC_MoveParent, ++/*221163*/ OPC_MoveChild, 8, ++/*221165*/ OPC_CheckInteger, 7, ++/*221167*/ OPC_CheckType, MVT::i32, ++/*221169*/ OPC_MoveParent, ++/*221170*/ OPC_MoveChild, 9, ++/*221172*/ OPC_CheckInteger, 7, ++/*221174*/ OPC_CheckType, MVT::i32, ++/*221176*/ OPC_MoveParent, ++/*221177*/ OPC_MoveChild, 10, ++/*221179*/ OPC_CheckInteger, 7, ++/*221181*/ OPC_CheckType, MVT::i32, ++/*221183*/ OPC_MoveParent, ++/*221184*/ OPC_MoveChild, 11, ++/*221186*/ OPC_CheckInteger, 7, ++/*221188*/ OPC_CheckType, MVT::i32, ++/*221190*/ OPC_MoveParent, ++/*221191*/ OPC_MoveChild, 12, ++/*221193*/ OPC_CheckInteger, 7, ++/*221195*/ OPC_CheckType, MVT::i32, ++/*221197*/ OPC_MoveParent, ++/*221198*/ OPC_MoveChild, 13, ++/*221200*/ OPC_CheckInteger, 7, ++/*221202*/ OPC_CheckType, MVT::i32, ++/*221204*/ OPC_MoveParent, ++/*221205*/ OPC_MoveChild, 14, ++/*221207*/ OPC_CheckInteger, 7, ++/*221209*/ OPC_CheckType, MVT::i32, ++/*221211*/ OPC_MoveParent, ++/*221212*/ OPC_MoveChild, 15, ++/*221214*/ OPC_CheckInteger, 7, ++/*221216*/ OPC_CheckType, MVT::i32, ++/*221218*/ OPC_MoveParent, ++/*221219*/ OPC_CheckType, MVT::v16i8, ++/*221221*/ OPC_MoveParent, ++/*221222*/ OPC_MoveParent, ++/*221223*/ OPC_MoveParent, ++/*221224*/ OPC_MoveChild1, ++/*221225*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*221228*/ OPC_CheckChild0Integer, 1, ++/*221230*/ OPC_CheckChild0Type, MVT::i32, ++/*221232*/ OPC_CheckChild1Integer, 1, ++/*221234*/ OPC_CheckChild1Type, MVT::i32, ++/*221236*/ OPC_CheckChild2Integer, 1, ++/*221238*/ OPC_CheckChild2Type, MVT::i32, ++/*221240*/ OPC_CheckChild3Integer, 1, ++/*221242*/ OPC_CheckChild3Type, MVT::i32, ++/*221244*/ OPC_CheckChild4Integer, 1, ++/*221246*/ OPC_CheckChild4Type, MVT::i32, ++/*221248*/ OPC_MoveChild5, ++/*221249*/ OPC_CheckInteger, 1, ++/*221251*/ OPC_CheckType, MVT::i32, ++/*221253*/ OPC_MoveParent, ++/*221254*/ OPC_MoveChild6, ++/*221255*/ OPC_CheckInteger, 1, ++/*221257*/ OPC_CheckType, MVT::i32, ++/*221259*/ OPC_MoveParent, ++/*221260*/ OPC_MoveChild7, ++/*221261*/ OPC_CheckInteger, 1, ++/*221263*/ OPC_CheckType, MVT::i32, ++/*221265*/ OPC_MoveParent, ++/*221266*/ OPC_MoveChild, 8, ++/*221268*/ OPC_CheckInteger, 1, ++/*221270*/ OPC_CheckType, MVT::i32, ++/*221272*/ OPC_MoveParent, ++/*221273*/ OPC_MoveChild, 9, ++/*221275*/ OPC_CheckInteger, 1, ++/*221277*/ OPC_CheckType, MVT::i32, ++/*221279*/ OPC_MoveParent, ++/*221280*/ OPC_MoveChild, 10, ++/*221282*/ OPC_CheckInteger, 1, ++/*221284*/ OPC_CheckType, MVT::i32, ++/*221286*/ OPC_MoveParent, ++/*221287*/ OPC_MoveChild, 11, ++/*221289*/ OPC_CheckInteger, 1, ++/*221291*/ OPC_CheckType, MVT::i32, ++/*221293*/ OPC_MoveParent, ++/*221294*/ OPC_MoveChild, 12, ++/*221296*/ OPC_CheckInteger, 1, ++/*221298*/ OPC_CheckType, MVT::i32, ++/*221300*/ OPC_MoveParent, ++/*221301*/ OPC_MoveChild, 13, ++/*221303*/ OPC_CheckInteger, 1, ++/*221305*/ OPC_CheckType, MVT::i32, ++/*221307*/ OPC_MoveParent, ++/*221308*/ OPC_MoveChild, 14, ++/*221310*/ OPC_CheckInteger, 1, ++/*221312*/ OPC_CheckType, MVT::i32, ++/*221314*/ OPC_MoveParent, ++/*221315*/ OPC_MoveChild, 15, ++/*221317*/ OPC_CheckInteger, 1, ++/*221319*/ OPC_CheckType, MVT::i32, ++/*221321*/ OPC_MoveParent, ++/*221322*/ OPC_CheckType, MVT::v16i8, ++/*221324*/ OPC_MoveParent, ++/*221325*/ OPC_CheckType, MVT::v16i8, ++/*221327*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*221329*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a)), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*221337*/ 0, /*End of Scope*/ ++/*221338*/ /*Scope*/ 10|128,5/*650*/, /*->221990*/ ++/*221340*/ OPC_CheckChild0Same, 1, ++/*221342*/ OPC_MoveChild1, ++/*221343*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*221346*/ OPC_Scope, 63|128,2/*319*/, /*->221668*/ // 2 children in Scope ++/*221349*/ OPC_MoveChild0, ++/*221350*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*221353*/ OPC_CheckChild0Integer, 1, ++/*221355*/ OPC_CheckChild0Type, MVT::i32, ++/*221357*/ OPC_CheckChild1Integer, 1, ++/*221359*/ OPC_CheckChild1Type, MVT::i32, ++/*221361*/ OPC_CheckChild2Integer, 1, ++/*221363*/ OPC_CheckChild2Type, MVT::i32, ++/*221365*/ OPC_CheckChild3Integer, 1, ++/*221367*/ OPC_CheckChild3Type, MVT::i32, ++/*221369*/ OPC_CheckChild4Integer, 1, ++/*221371*/ OPC_CheckChild4Type, MVT::i32, ++/*221373*/ OPC_MoveChild5, ++/*221374*/ OPC_CheckInteger, 1, ++/*221376*/ OPC_CheckType, MVT::i32, ++/*221378*/ OPC_MoveParent, ++/*221379*/ OPC_MoveChild6, ++/*221380*/ OPC_CheckInteger, 1, ++/*221382*/ OPC_CheckType, MVT::i32, ++/*221384*/ OPC_MoveParent, ++/*221385*/ OPC_MoveChild7, ++/*221386*/ OPC_CheckInteger, 1, ++/*221388*/ OPC_CheckType, MVT::i32, ++/*221390*/ OPC_MoveParent, ++/*221391*/ OPC_MoveChild, 8, ++/*221393*/ OPC_CheckInteger, 1, ++/*221395*/ OPC_CheckType, MVT::i32, ++/*221397*/ OPC_MoveParent, ++/*221398*/ OPC_MoveChild, 9, ++/*221400*/ OPC_CheckInteger, 1, ++/*221402*/ OPC_CheckType, MVT::i32, ++/*221404*/ OPC_MoveParent, ++/*221405*/ OPC_MoveChild, 10, ++/*221407*/ OPC_CheckInteger, 1, ++/*221409*/ OPC_CheckType, MVT::i32, ++/*221411*/ OPC_MoveParent, ++/*221412*/ OPC_MoveChild, 11, ++/*221414*/ OPC_CheckInteger, 1, ++/*221416*/ OPC_CheckType, MVT::i32, ++/*221418*/ OPC_MoveParent, ++/*221419*/ OPC_MoveChild, 12, ++/*221421*/ OPC_CheckInteger, 1, ++/*221423*/ OPC_CheckType, MVT::i32, ++/*221425*/ OPC_MoveParent, ++/*221426*/ OPC_MoveChild, 13, ++/*221428*/ OPC_CheckInteger, 1, ++/*221430*/ OPC_CheckType, MVT::i32, ++/*221432*/ OPC_MoveParent, ++/*221433*/ OPC_MoveChild, 14, ++/*221435*/ OPC_CheckInteger, 1, ++/*221437*/ OPC_CheckType, MVT::i32, ++/*221439*/ OPC_MoveParent, ++/*221440*/ OPC_MoveChild, 15, ++/*221442*/ OPC_CheckInteger, 1, ++/*221444*/ OPC_CheckType, MVT::i32, ++/*221446*/ OPC_MoveParent, ++/*221447*/ OPC_MoveParent, ++/*221448*/ OPC_CheckChild1Same, 0, ++/*221450*/ OPC_MoveParent, ++/*221451*/ OPC_MoveParent, ++/*221452*/ OPC_MoveChild1, ++/*221453*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*221456*/ OPC_CheckChild0Integer, 7, ++/*221458*/ OPC_CheckChild0Type, MVT::i32, ++/*221460*/ OPC_CheckChild1Integer, 7, ++/*221462*/ OPC_CheckChild1Type, MVT::i32, ++/*221464*/ OPC_CheckChild2Integer, 7, ++/*221466*/ OPC_CheckChild2Type, MVT::i32, ++/*221468*/ OPC_CheckChild3Integer, 7, ++/*221470*/ OPC_CheckChild3Type, MVT::i32, ++/*221472*/ OPC_CheckChild4Integer, 7, ++/*221474*/ OPC_CheckChild4Type, MVT::i32, ++/*221476*/ OPC_MoveChild5, ++/*221477*/ OPC_CheckInteger, 7, ++/*221479*/ OPC_CheckType, MVT::i32, ++/*221481*/ OPC_MoveParent, ++/*221482*/ OPC_MoveChild6, ++/*221483*/ OPC_CheckInteger, 7, ++/*221485*/ OPC_CheckType, MVT::i32, ++/*221487*/ OPC_MoveParent, ++/*221488*/ OPC_MoveChild7, ++/*221489*/ OPC_CheckInteger, 7, ++/*221491*/ OPC_CheckType, MVT::i32, ++/*221493*/ OPC_MoveParent, ++/*221494*/ OPC_MoveChild, 8, ++/*221496*/ OPC_CheckInteger, 7, ++/*221498*/ OPC_CheckType, MVT::i32, ++/*221500*/ OPC_MoveParent, ++/*221501*/ OPC_MoveChild, 9, ++/*221503*/ OPC_CheckInteger, 7, ++/*221505*/ OPC_CheckType, MVT::i32, ++/*221507*/ OPC_MoveParent, ++/*221508*/ OPC_MoveChild, 10, ++/*221510*/ OPC_CheckInteger, 7, ++/*221512*/ OPC_CheckType, MVT::i32, ++/*221514*/ OPC_MoveParent, ++/*221515*/ OPC_MoveChild, 11, ++/*221517*/ OPC_CheckInteger, 7, ++/*221519*/ OPC_CheckType, MVT::i32, ++/*221521*/ OPC_MoveParent, ++/*221522*/ OPC_MoveChild, 12, ++/*221524*/ OPC_CheckInteger, 7, ++/*221526*/ OPC_CheckType, MVT::i32, ++/*221528*/ OPC_MoveParent, ++/*221529*/ OPC_MoveChild, 13, ++/*221531*/ OPC_CheckInteger, 7, ++/*221533*/ OPC_CheckType, MVT::i32, ++/*221535*/ OPC_MoveParent, ++/*221536*/ OPC_MoveChild, 14, ++/*221538*/ OPC_CheckInteger, 7, ++/*221540*/ OPC_CheckType, MVT::i32, ++/*221542*/ OPC_MoveParent, ++/*221543*/ OPC_MoveChild, 15, ++/*221545*/ OPC_CheckInteger, 7, ++/*221547*/ OPC_CheckType, MVT::i32, ++/*221549*/ OPC_MoveParent, ++/*221550*/ OPC_CheckType, MVT::v16i8, ++/*221552*/ OPC_MoveParent, ++/*221553*/ OPC_MoveParent, ++/*221554*/ OPC_MoveParent, ++/*221555*/ OPC_MoveChild1, ++/*221556*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*221559*/ OPC_CheckChild0Integer, 1, ++/*221561*/ OPC_CheckChild0Type, MVT::i32, ++/*221563*/ OPC_CheckChild1Integer, 1, ++/*221565*/ OPC_CheckChild1Type, MVT::i32, ++/*221567*/ OPC_CheckChild2Integer, 1, ++/*221569*/ OPC_CheckChild2Type, MVT::i32, ++/*221571*/ OPC_CheckChild3Integer, 1, ++/*221573*/ OPC_CheckChild3Type, MVT::i32, ++/*221575*/ OPC_CheckChild4Integer, 1, ++/*221577*/ OPC_CheckChild4Type, MVT::i32, ++/*221579*/ OPC_MoveChild5, ++/*221580*/ OPC_CheckInteger, 1, ++/*221582*/ OPC_CheckType, MVT::i32, ++/*221584*/ OPC_MoveParent, ++/*221585*/ OPC_MoveChild6, ++/*221586*/ OPC_CheckInteger, 1, ++/*221588*/ OPC_CheckType, MVT::i32, ++/*221590*/ OPC_MoveParent, ++/*221591*/ OPC_MoveChild7, ++/*221592*/ OPC_CheckInteger, 1, ++/*221594*/ OPC_CheckType, MVT::i32, ++/*221596*/ OPC_MoveParent, ++/*221597*/ OPC_MoveChild, 8, ++/*221599*/ OPC_CheckInteger, 1, ++/*221601*/ OPC_CheckType, MVT::i32, ++/*221603*/ OPC_MoveParent, ++/*221604*/ OPC_MoveChild, 9, ++/*221606*/ OPC_CheckInteger, 1, ++/*221608*/ OPC_CheckType, MVT::i32, ++/*221610*/ OPC_MoveParent, ++/*221611*/ OPC_MoveChild, 10, ++/*221613*/ OPC_CheckInteger, 1, ++/*221615*/ OPC_CheckType, MVT::i32, ++/*221617*/ OPC_MoveParent, ++/*221618*/ OPC_MoveChild, 11, ++/*221620*/ OPC_CheckInteger, 1, ++/*221622*/ OPC_CheckType, MVT::i32, ++/*221624*/ OPC_MoveParent, ++/*221625*/ OPC_MoveChild, 12, ++/*221627*/ OPC_CheckInteger, 1, ++/*221629*/ OPC_CheckType, MVT::i32, ++/*221631*/ OPC_MoveParent, ++/*221632*/ OPC_MoveChild, 13, ++/*221634*/ OPC_CheckInteger, 1, ++/*221636*/ OPC_CheckType, MVT::i32, ++/*221638*/ OPC_MoveParent, ++/*221639*/ OPC_MoveChild, 14, ++/*221641*/ OPC_CheckInteger, 1, ++/*221643*/ OPC_CheckType, MVT::i32, ++/*221645*/ OPC_MoveParent, ++/*221646*/ OPC_MoveChild, 15, ++/*221648*/ OPC_CheckInteger, 1, ++/*221650*/ OPC_CheckType, MVT::i32, ++/*221652*/ OPC_MoveParent, ++/*221653*/ OPC_CheckType, MVT::v16i8, ++/*221655*/ OPC_MoveParent, ++/*221656*/ OPC_CheckType, MVT::v16i8, ++/*221658*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*221660*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a)), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*221668*/ /*Scope*/ 63|128,2/*319*/, /*->221989*/ ++/*221670*/ OPC_CheckChild0Same, 0, ++/*221672*/ OPC_MoveChild1, ++/*221673*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*221676*/ OPC_CheckChild0Integer, 1, ++/*221678*/ OPC_CheckChild0Type, MVT::i32, ++/*221680*/ OPC_CheckChild1Integer, 1, ++/*221682*/ OPC_CheckChild1Type, MVT::i32, ++/*221684*/ OPC_CheckChild2Integer, 1, ++/*221686*/ OPC_CheckChild2Type, MVT::i32, ++/*221688*/ OPC_CheckChild3Integer, 1, ++/*221690*/ OPC_CheckChild3Type, MVT::i32, ++/*221692*/ OPC_CheckChild4Integer, 1, ++/*221694*/ OPC_CheckChild4Type, MVT::i32, ++/*221696*/ OPC_MoveChild5, ++/*221697*/ OPC_CheckInteger, 1, ++/*221699*/ OPC_CheckType, MVT::i32, ++/*221701*/ OPC_MoveParent, ++/*221702*/ OPC_MoveChild6, ++/*221703*/ OPC_CheckInteger, 1, ++/*221705*/ OPC_CheckType, MVT::i32, ++/*221707*/ OPC_MoveParent, ++/*221708*/ OPC_MoveChild7, ++/*221709*/ OPC_CheckInteger, 1, ++/*221711*/ OPC_CheckType, MVT::i32, ++/*221713*/ OPC_MoveParent, ++/*221714*/ OPC_MoveChild, 8, ++/*221716*/ OPC_CheckInteger, 1, ++/*221718*/ OPC_CheckType, MVT::i32, ++/*221720*/ OPC_MoveParent, ++/*221721*/ OPC_MoveChild, 9, ++/*221723*/ OPC_CheckInteger, 1, ++/*221725*/ OPC_CheckType, MVT::i32, ++/*221727*/ OPC_MoveParent, ++/*221728*/ OPC_MoveChild, 10, ++/*221730*/ OPC_CheckInteger, 1, ++/*221732*/ OPC_CheckType, MVT::i32, ++/*221734*/ OPC_MoveParent, ++/*221735*/ OPC_MoveChild, 11, ++/*221737*/ OPC_CheckInteger, 1, ++/*221739*/ OPC_CheckType, MVT::i32, ++/*221741*/ OPC_MoveParent, ++/*221742*/ OPC_MoveChild, 12, ++/*221744*/ OPC_CheckInteger, 1, ++/*221746*/ OPC_CheckType, MVT::i32, ++/*221748*/ OPC_MoveParent, ++/*221749*/ OPC_MoveChild, 13, ++/*221751*/ OPC_CheckInteger, 1, ++/*221753*/ OPC_CheckType, MVT::i32, ++/*221755*/ OPC_MoveParent, ++/*221756*/ OPC_MoveChild, 14, ++/*221758*/ OPC_CheckInteger, 1, ++/*221760*/ OPC_CheckType, MVT::i32, ++/*221762*/ OPC_MoveParent, ++/*221763*/ OPC_MoveChild, 15, ++/*221765*/ OPC_CheckInteger, 1, ++/*221767*/ OPC_CheckType, MVT::i32, ++/*221769*/ OPC_MoveParent, ++/*221770*/ OPC_MoveParent, ++/*221771*/ OPC_MoveParent, ++/*221772*/ OPC_MoveParent, ++/*221773*/ OPC_MoveChild1, ++/*221774*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*221777*/ OPC_CheckChild0Integer, 7, ++/*221779*/ OPC_CheckChild0Type, MVT::i32, ++/*221781*/ OPC_CheckChild1Integer, 7, ++/*221783*/ OPC_CheckChild1Type, MVT::i32, ++/*221785*/ OPC_CheckChild2Integer, 7, ++/*221787*/ OPC_CheckChild2Type, MVT::i32, ++/*221789*/ OPC_CheckChild3Integer, 7, ++/*221791*/ OPC_CheckChild3Type, MVT::i32, ++/*221793*/ OPC_CheckChild4Integer, 7, ++/*221795*/ OPC_CheckChild4Type, MVT::i32, ++/*221797*/ OPC_MoveChild5, ++/*221798*/ OPC_CheckInteger, 7, ++/*221800*/ OPC_CheckType, MVT::i32, ++/*221802*/ OPC_MoveParent, ++/*221803*/ OPC_MoveChild6, ++/*221804*/ OPC_CheckInteger, 7, ++/*221806*/ OPC_CheckType, MVT::i32, ++/*221808*/ OPC_MoveParent, ++/*221809*/ OPC_MoveChild7, ++/*221810*/ OPC_CheckInteger, 7, ++/*221812*/ OPC_CheckType, MVT::i32, ++/*221814*/ OPC_MoveParent, ++/*221815*/ OPC_MoveChild, 8, ++/*221817*/ OPC_CheckInteger, 7, ++/*221819*/ OPC_CheckType, MVT::i32, ++/*221821*/ OPC_MoveParent, ++/*221822*/ OPC_MoveChild, 9, ++/*221824*/ OPC_CheckInteger, 7, ++/*221826*/ OPC_CheckType, MVT::i32, ++/*221828*/ OPC_MoveParent, ++/*221829*/ OPC_MoveChild, 10, ++/*221831*/ OPC_CheckInteger, 7, ++/*221833*/ OPC_CheckType, MVT::i32, ++/*221835*/ OPC_MoveParent, ++/*221836*/ OPC_MoveChild, 11, ++/*221838*/ OPC_CheckInteger, 7, ++/*221840*/ OPC_CheckType, MVT::i32, ++/*221842*/ OPC_MoveParent, ++/*221843*/ OPC_MoveChild, 12, ++/*221845*/ OPC_CheckInteger, 7, ++/*221847*/ OPC_CheckType, MVT::i32, ++/*221849*/ OPC_MoveParent, ++/*221850*/ OPC_MoveChild, 13, ++/*221852*/ OPC_CheckInteger, 7, ++/*221854*/ OPC_CheckType, MVT::i32, ++/*221856*/ OPC_MoveParent, ++/*221857*/ OPC_MoveChild, 14, ++/*221859*/ OPC_CheckInteger, 7, ++/*221861*/ OPC_CheckType, MVT::i32, ++/*221863*/ OPC_MoveParent, ++/*221864*/ OPC_MoveChild, 15, ++/*221866*/ OPC_CheckInteger, 7, ++/*221868*/ OPC_CheckType, MVT::i32, ++/*221870*/ OPC_MoveParent, ++/*221871*/ OPC_CheckType, MVT::v16i8, ++/*221873*/ OPC_MoveParent, ++/*221874*/ OPC_MoveParent, ++/*221875*/ OPC_MoveParent, ++/*221876*/ OPC_MoveChild1, ++/*221877*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*221880*/ OPC_CheckChild0Integer, 1, ++/*221882*/ OPC_CheckChild0Type, MVT::i32, ++/*221884*/ OPC_CheckChild1Integer, 1, ++/*221886*/ OPC_CheckChild1Type, MVT::i32, ++/*221888*/ OPC_CheckChild2Integer, 1, ++/*221890*/ OPC_CheckChild2Type, MVT::i32, ++/*221892*/ OPC_CheckChild3Integer, 1, ++/*221894*/ OPC_CheckChild3Type, MVT::i32, ++/*221896*/ OPC_CheckChild4Integer, 1, ++/*221898*/ OPC_CheckChild4Type, MVT::i32, ++/*221900*/ OPC_MoveChild5, ++/*221901*/ OPC_CheckInteger, 1, ++/*221903*/ OPC_CheckType, MVT::i32, ++/*221905*/ OPC_MoveParent, ++/*221906*/ OPC_MoveChild6, ++/*221907*/ OPC_CheckInteger, 1, ++/*221909*/ OPC_CheckType, MVT::i32, ++/*221911*/ OPC_MoveParent, ++/*221912*/ OPC_MoveChild7, ++/*221913*/ OPC_CheckInteger, 1, ++/*221915*/ OPC_CheckType, MVT::i32, ++/*221917*/ OPC_MoveParent, ++/*221918*/ OPC_MoveChild, 8, ++/*221920*/ OPC_CheckInteger, 1, ++/*221922*/ OPC_CheckType, MVT::i32, ++/*221924*/ OPC_MoveParent, ++/*221925*/ OPC_MoveChild, 9, ++/*221927*/ OPC_CheckInteger, 1, ++/*221929*/ OPC_CheckType, MVT::i32, ++/*221931*/ OPC_MoveParent, ++/*221932*/ OPC_MoveChild, 10, ++/*221934*/ OPC_CheckInteger, 1, ++/*221936*/ OPC_CheckType, MVT::i32, ++/*221938*/ OPC_MoveParent, ++/*221939*/ OPC_MoveChild, 11, ++/*221941*/ OPC_CheckInteger, 1, ++/*221943*/ OPC_CheckType, MVT::i32, ++/*221945*/ OPC_MoveParent, ++/*221946*/ OPC_MoveChild, 12, ++/*221948*/ OPC_CheckInteger, 1, ++/*221950*/ OPC_CheckType, MVT::i32, ++/*221952*/ OPC_MoveParent, ++/*221953*/ OPC_MoveChild, 13, ++/*221955*/ OPC_CheckInteger, 1, ++/*221957*/ OPC_CheckType, MVT::i32, ++/*221959*/ OPC_MoveParent, ++/*221960*/ OPC_MoveChild, 14, ++/*221962*/ OPC_CheckInteger, 1, ++/*221964*/ OPC_CheckType, MVT::i32, ++/*221966*/ OPC_MoveParent, ++/*221967*/ OPC_MoveChild, 15, ++/*221969*/ OPC_CheckInteger, 1, ++/*221971*/ OPC_CheckType, MVT::i32, ++/*221973*/ OPC_MoveParent, ++/*221974*/ OPC_CheckType, MVT::v16i8, ++/*221976*/ OPC_MoveParent, ++/*221977*/ OPC_CheckType, MVT::v16i8, ++/*221979*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*221981*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a)), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*221989*/ 0, /*End of Scope*/ ++/*221990*/ /*Scope*/ 41|128,4/*553*/, /*->222545*/ ++/*221992*/ OPC_MoveChild0, ++/*221993*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*221996*/ OPC_CheckChild0Integer, 1, ++/*221998*/ OPC_CheckChild0Type, MVT::i32, ++/*222000*/ OPC_CheckChild1Integer, 1, ++/*222002*/ OPC_CheckChild1Type, MVT::i32, ++/*222004*/ OPC_CheckChild2Integer, 1, ++/*222006*/ OPC_CheckChild2Type, MVT::i32, ++/*222008*/ OPC_CheckChild3Integer, 1, ++/*222010*/ OPC_CheckChild3Type, MVT::i32, ++/*222012*/ OPC_CheckChild4Integer, 1, ++/*222014*/ OPC_CheckChild4Type, MVT::i32, ++/*222016*/ OPC_MoveChild5, ++/*222017*/ OPC_CheckInteger, 1, ++/*222019*/ OPC_CheckType, MVT::i32, ++/*222021*/ OPC_MoveParent, ++/*222022*/ OPC_MoveChild6, ++/*222023*/ OPC_CheckInteger, 1, ++/*222025*/ OPC_CheckType, MVT::i32, ++/*222027*/ OPC_MoveParent, ++/*222028*/ OPC_MoveChild7, ++/*222029*/ OPC_CheckInteger, 1, ++/*222031*/ OPC_CheckType, MVT::i32, ++/*222033*/ OPC_MoveParent, ++/*222034*/ OPC_MoveChild, 8, ++/*222036*/ OPC_CheckInteger, 1, ++/*222038*/ OPC_CheckType, MVT::i32, ++/*222040*/ OPC_MoveParent, ++/*222041*/ OPC_MoveChild, 9, ++/*222043*/ OPC_CheckInteger, 1, ++/*222045*/ OPC_CheckType, MVT::i32, ++/*222047*/ OPC_MoveParent, ++/*222048*/ OPC_MoveChild, 10, ++/*222050*/ OPC_CheckInteger, 1, ++/*222052*/ OPC_CheckType, MVT::i32, ++/*222054*/ OPC_MoveParent, ++/*222055*/ OPC_MoveChild, 11, ++/*222057*/ OPC_CheckInteger, 1, ++/*222059*/ OPC_CheckType, MVT::i32, ++/*222061*/ OPC_MoveParent, ++/*222062*/ OPC_MoveChild, 12, ++/*222064*/ OPC_CheckInteger, 1, ++/*222066*/ OPC_CheckType, MVT::i32, ++/*222068*/ OPC_MoveParent, ++/*222069*/ OPC_MoveChild, 13, ++/*222071*/ OPC_CheckInteger, 1, ++/*222073*/ OPC_CheckType, MVT::i32, ++/*222075*/ OPC_MoveParent, ++/*222076*/ OPC_MoveChild, 14, ++/*222078*/ OPC_CheckInteger, 1, ++/*222080*/ OPC_CheckType, MVT::i32, ++/*222082*/ OPC_MoveParent, ++/*222083*/ OPC_MoveChild, 15, ++/*222085*/ OPC_CheckInteger, 1, ++/*222087*/ OPC_CheckType, MVT::i32, ++/*222089*/ OPC_MoveParent, ++/*222090*/ OPC_MoveParent, ++/*222091*/ OPC_MoveChild1, ++/*222092*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*222095*/ OPC_Scope, 94|128,1/*222*/, /*->222320*/ // 2 children in Scope ++/*222098*/ OPC_CheckChild0Same, 1, ++/*222100*/ OPC_CheckChild1Same, 0, ++/*222102*/ OPC_MoveParent, ++/*222103*/ OPC_MoveParent, ++/*222104*/ OPC_MoveChild1, ++/*222105*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*222108*/ OPC_CheckChild0Integer, 7, ++/*222110*/ OPC_CheckChild0Type, MVT::i32, ++/*222112*/ OPC_CheckChild1Integer, 7, ++/*222114*/ OPC_CheckChild1Type, MVT::i32, ++/*222116*/ OPC_CheckChild2Integer, 7, ++/*222118*/ OPC_CheckChild2Type, MVT::i32, ++/*222120*/ OPC_CheckChild3Integer, 7, ++/*222122*/ OPC_CheckChild3Type, MVT::i32, ++/*222124*/ OPC_CheckChild4Integer, 7, ++/*222126*/ OPC_CheckChild4Type, MVT::i32, ++/*222128*/ OPC_MoveChild5, ++/*222129*/ OPC_CheckInteger, 7, ++/*222131*/ OPC_CheckType, MVT::i32, ++/*222133*/ OPC_MoveParent, ++/*222134*/ OPC_MoveChild6, ++/*222135*/ OPC_CheckInteger, 7, ++/*222137*/ OPC_CheckType, MVT::i32, ++/*222139*/ OPC_MoveParent, ++/*222140*/ OPC_MoveChild7, ++/*222141*/ OPC_CheckInteger, 7, ++/*222143*/ OPC_CheckType, MVT::i32, ++/*222145*/ OPC_MoveParent, ++/*222146*/ OPC_MoveChild, 8, ++/*222148*/ OPC_CheckInteger, 7, ++/*222150*/ OPC_CheckType, MVT::i32, ++/*222152*/ OPC_MoveParent, ++/*222153*/ OPC_MoveChild, 9, ++/*222155*/ OPC_CheckInteger, 7, ++/*222157*/ OPC_CheckType, MVT::i32, ++/*222159*/ OPC_MoveParent, ++/*222160*/ OPC_MoveChild, 10, ++/*222162*/ OPC_CheckInteger, 7, ++/*222164*/ OPC_CheckType, MVT::i32, ++/*222166*/ OPC_MoveParent, ++/*222167*/ OPC_MoveChild, 11, ++/*222169*/ OPC_CheckInteger, 7, ++/*222171*/ OPC_CheckType, MVT::i32, ++/*222173*/ OPC_MoveParent, ++/*222174*/ OPC_MoveChild, 12, ++/*222176*/ OPC_CheckInteger, 7, ++/*222178*/ OPC_CheckType, MVT::i32, ++/*222180*/ OPC_MoveParent, ++/*222181*/ OPC_MoveChild, 13, ++/*222183*/ OPC_CheckInteger, 7, ++/*222185*/ OPC_CheckType, MVT::i32, ++/*222187*/ OPC_MoveParent, ++/*222188*/ OPC_MoveChild, 14, ++/*222190*/ OPC_CheckInteger, 7, ++/*222192*/ OPC_CheckType, MVT::i32, ++/*222194*/ OPC_MoveParent, ++/*222195*/ OPC_MoveChild, 15, ++/*222197*/ OPC_CheckInteger, 7, ++/*222199*/ OPC_CheckType, MVT::i32, ++/*222201*/ OPC_MoveParent, ++/*222202*/ OPC_CheckType, MVT::v16i8, ++/*222204*/ OPC_MoveParent, ++/*222205*/ OPC_MoveParent, ++/*222206*/ OPC_MoveParent, ++/*222207*/ OPC_MoveChild1, ++/*222208*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*222211*/ OPC_CheckChild0Integer, 1, ++/*222213*/ OPC_CheckChild0Type, MVT::i32, ++/*222215*/ OPC_CheckChild1Integer, 1, ++/*222217*/ OPC_CheckChild1Type, MVT::i32, ++/*222219*/ OPC_CheckChild2Integer, 1, ++/*222221*/ OPC_CheckChild2Type, MVT::i32, ++/*222223*/ OPC_CheckChild3Integer, 1, ++/*222225*/ OPC_CheckChild3Type, MVT::i32, ++/*222227*/ OPC_CheckChild4Integer, 1, ++/*222229*/ OPC_CheckChild4Type, MVT::i32, ++/*222231*/ OPC_MoveChild5, ++/*222232*/ OPC_CheckInteger, 1, ++/*222234*/ OPC_CheckType, MVT::i32, ++/*222236*/ OPC_MoveParent, ++/*222237*/ OPC_MoveChild6, ++/*222238*/ OPC_CheckInteger, 1, ++/*222240*/ OPC_CheckType, MVT::i32, ++/*222242*/ OPC_MoveParent, ++/*222243*/ OPC_MoveChild7, ++/*222244*/ OPC_CheckInteger, 1, ++/*222246*/ OPC_CheckType, MVT::i32, ++/*222248*/ OPC_MoveParent, ++/*222249*/ OPC_MoveChild, 8, ++/*222251*/ OPC_CheckInteger, 1, ++/*222253*/ OPC_CheckType, MVT::i32, ++/*222255*/ OPC_MoveParent, ++/*222256*/ OPC_MoveChild, 9, ++/*222258*/ OPC_CheckInteger, 1, ++/*222260*/ OPC_CheckType, MVT::i32, ++/*222262*/ OPC_MoveParent, ++/*222263*/ OPC_MoveChild, 10, ++/*222265*/ OPC_CheckInteger, 1, ++/*222267*/ OPC_CheckType, MVT::i32, ++/*222269*/ OPC_MoveParent, ++/*222270*/ OPC_MoveChild, 11, ++/*222272*/ OPC_CheckInteger, 1, ++/*222274*/ OPC_CheckType, MVT::i32, ++/*222276*/ OPC_MoveParent, ++/*222277*/ OPC_MoveChild, 12, ++/*222279*/ OPC_CheckInteger, 1, ++/*222281*/ OPC_CheckType, MVT::i32, ++/*222283*/ OPC_MoveParent, ++/*222284*/ OPC_MoveChild, 13, ++/*222286*/ OPC_CheckInteger, 1, ++/*222288*/ OPC_CheckType, MVT::i32, ++/*222290*/ OPC_MoveParent, ++/*222291*/ OPC_MoveChild, 14, ++/*222293*/ OPC_CheckInteger, 1, ++/*222295*/ OPC_CheckType, MVT::i32, ++/*222297*/ OPC_MoveParent, ++/*222298*/ OPC_MoveChild, 15, ++/*222300*/ OPC_CheckInteger, 1, ++/*222302*/ OPC_CheckType, MVT::i32, ++/*222304*/ OPC_MoveParent, ++/*222305*/ OPC_CheckType, MVT::v16i8, ++/*222307*/ OPC_MoveParent, ++/*222308*/ OPC_CheckType, MVT::v16i8, ++/*222310*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*222312*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a)), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*222320*/ /*Scope*/ 94|128,1/*222*/, /*->222544*/ ++/*222322*/ OPC_CheckChild0Same, 0, ++/*222324*/ OPC_CheckChild1Same, 1, ++/*222326*/ OPC_MoveParent, ++/*222327*/ OPC_MoveParent, ++/*222328*/ OPC_MoveChild1, ++/*222329*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*222332*/ OPC_CheckChild0Integer, 7, ++/*222334*/ OPC_CheckChild0Type, MVT::i32, ++/*222336*/ OPC_CheckChild1Integer, 7, ++/*222338*/ OPC_CheckChild1Type, MVT::i32, ++/*222340*/ OPC_CheckChild2Integer, 7, ++/*222342*/ OPC_CheckChild2Type, MVT::i32, ++/*222344*/ OPC_CheckChild3Integer, 7, ++/*222346*/ OPC_CheckChild3Type, MVT::i32, ++/*222348*/ OPC_CheckChild4Integer, 7, ++/*222350*/ OPC_CheckChild4Type, MVT::i32, ++/*222352*/ OPC_MoveChild5, ++/*222353*/ OPC_CheckInteger, 7, ++/*222355*/ OPC_CheckType, MVT::i32, ++/*222357*/ OPC_MoveParent, ++/*222358*/ OPC_MoveChild6, ++/*222359*/ OPC_CheckInteger, 7, ++/*222361*/ OPC_CheckType, MVT::i32, ++/*222363*/ OPC_MoveParent, ++/*222364*/ OPC_MoveChild7, ++/*222365*/ OPC_CheckInteger, 7, ++/*222367*/ OPC_CheckType, MVT::i32, ++/*222369*/ OPC_MoveParent, ++/*222370*/ OPC_MoveChild, 8, ++/*222372*/ OPC_CheckInteger, 7, ++/*222374*/ OPC_CheckType, MVT::i32, ++/*222376*/ OPC_MoveParent, ++/*222377*/ OPC_MoveChild, 9, ++/*222379*/ OPC_CheckInteger, 7, ++/*222381*/ OPC_CheckType, MVT::i32, ++/*222383*/ OPC_MoveParent, ++/*222384*/ OPC_MoveChild, 10, ++/*222386*/ OPC_CheckInteger, 7, ++/*222388*/ OPC_CheckType, MVT::i32, ++/*222390*/ OPC_MoveParent, ++/*222391*/ OPC_MoveChild, 11, ++/*222393*/ OPC_CheckInteger, 7, ++/*222395*/ OPC_CheckType, MVT::i32, ++/*222397*/ OPC_MoveParent, ++/*222398*/ OPC_MoveChild, 12, ++/*222400*/ OPC_CheckInteger, 7, ++/*222402*/ OPC_CheckType, MVT::i32, ++/*222404*/ OPC_MoveParent, ++/*222405*/ OPC_MoveChild, 13, ++/*222407*/ OPC_CheckInteger, 7, ++/*222409*/ OPC_CheckType, MVT::i32, ++/*222411*/ OPC_MoveParent, ++/*222412*/ OPC_MoveChild, 14, ++/*222414*/ OPC_CheckInteger, 7, ++/*222416*/ OPC_CheckType, MVT::i32, ++/*222418*/ OPC_MoveParent, ++/*222419*/ OPC_MoveChild, 15, ++/*222421*/ OPC_CheckInteger, 7, ++/*222423*/ OPC_CheckType, MVT::i32, ++/*222425*/ OPC_MoveParent, ++/*222426*/ OPC_CheckType, MVT::v16i8, ++/*222428*/ OPC_MoveParent, ++/*222429*/ OPC_MoveParent, ++/*222430*/ OPC_MoveParent, ++/*222431*/ OPC_MoveChild1, ++/*222432*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*222435*/ OPC_CheckChild0Integer, 1, ++/*222437*/ OPC_CheckChild0Type, MVT::i32, ++/*222439*/ OPC_CheckChild1Integer, 1, ++/*222441*/ OPC_CheckChild1Type, MVT::i32, ++/*222443*/ OPC_CheckChild2Integer, 1, ++/*222445*/ OPC_CheckChild2Type, MVT::i32, ++/*222447*/ OPC_CheckChild3Integer, 1, ++/*222449*/ OPC_CheckChild3Type, MVT::i32, ++/*222451*/ OPC_CheckChild4Integer, 1, ++/*222453*/ OPC_CheckChild4Type, MVT::i32, ++/*222455*/ OPC_MoveChild5, ++/*222456*/ OPC_CheckInteger, 1, ++/*222458*/ OPC_CheckType, MVT::i32, ++/*222460*/ OPC_MoveParent, ++/*222461*/ OPC_MoveChild6, ++/*222462*/ OPC_CheckInteger, 1, ++/*222464*/ OPC_CheckType, MVT::i32, ++/*222466*/ OPC_MoveParent, ++/*222467*/ OPC_MoveChild7, ++/*222468*/ OPC_CheckInteger, 1, ++/*222470*/ OPC_CheckType, MVT::i32, ++/*222472*/ OPC_MoveParent, ++/*222473*/ OPC_MoveChild, 8, ++/*222475*/ OPC_CheckInteger, 1, ++/*222477*/ OPC_CheckType, MVT::i32, ++/*222479*/ OPC_MoveParent, ++/*222480*/ OPC_MoveChild, 9, ++/*222482*/ OPC_CheckInteger, 1, ++/*222484*/ OPC_CheckType, MVT::i32, ++/*222486*/ OPC_MoveParent, ++/*222487*/ OPC_MoveChild, 10, ++/*222489*/ OPC_CheckInteger, 1, ++/*222491*/ OPC_CheckType, MVT::i32, ++/*222493*/ OPC_MoveParent, ++/*222494*/ OPC_MoveChild, 11, ++/*222496*/ OPC_CheckInteger, 1, ++/*222498*/ OPC_CheckType, MVT::i32, ++/*222500*/ OPC_MoveParent, ++/*222501*/ OPC_MoveChild, 12, ++/*222503*/ OPC_CheckInteger, 1, ++/*222505*/ OPC_CheckType, MVT::i32, ++/*222507*/ OPC_MoveParent, ++/*222508*/ OPC_MoveChild, 13, ++/*222510*/ OPC_CheckInteger, 1, ++/*222512*/ OPC_CheckType, MVT::i32, ++/*222514*/ OPC_MoveParent, ++/*222515*/ OPC_MoveChild, 14, ++/*222517*/ OPC_CheckInteger, 1, ++/*222519*/ OPC_CheckType, MVT::i32, ++/*222521*/ OPC_MoveParent, ++/*222522*/ OPC_MoveChild, 15, ++/*222524*/ OPC_CheckInteger, 1, ++/*222526*/ OPC_CheckType, MVT::i32, ++/*222528*/ OPC_MoveParent, ++/*222529*/ OPC_CheckType, MVT::v16i8, ++/*222531*/ OPC_MoveParent, ++/*222532*/ OPC_CheckType, MVT::v16i8, ++/*222534*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*222536*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a)), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*222544*/ 0, /*End of Scope*/ ++/*222545*/ 0, /*End of Scope*/ ++/*222546*/ /*SwitchOpcode*/ 115|128,54|128,1/*23411*/, TARGET_VAL(ISD::ADD),// ->245962 ++/*222551*/ OPC_Scope, 78|128,30/*3918*/, /*->226472*/ // 4 children in Scope ++/*222554*/ OPC_MoveChild0, ++/*222555*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*222558*/ OPC_CheckChild0Integer, 1, ++/*222560*/ OPC_CheckChild0Type, MVT::i32, ++/*222562*/ OPC_CheckChild1Integer, 1, ++/*222564*/ OPC_CheckChild1Type, MVT::i32, ++/*222566*/ OPC_CheckChild2Integer, 1, ++/*222568*/ OPC_CheckChild2Type, MVT::i32, ++/*222570*/ OPC_CheckChild3Integer, 1, ++/*222572*/ OPC_CheckChild3Type, MVT::i32, ++/*222574*/ OPC_CheckChild4Integer, 1, ++/*222576*/ OPC_CheckChild4Type, MVT::i32, ++/*222578*/ OPC_MoveChild5, ++/*222579*/ OPC_CheckInteger, 1, ++/*222581*/ OPC_CheckType, MVT::i32, ++/*222583*/ OPC_MoveParent, ++/*222584*/ OPC_MoveChild6, ++/*222585*/ OPC_CheckInteger, 1, ++/*222587*/ OPC_CheckType, MVT::i32, ++/*222589*/ OPC_MoveParent, ++/*222590*/ OPC_MoveChild7, ++/*222591*/ OPC_CheckInteger, 1, ++/*222593*/ OPC_CheckType, MVT::i32, ++/*222595*/ OPC_MoveParent, ++/*222596*/ OPC_MoveChild, 8, ++/*222598*/ OPC_CheckInteger, 1, ++/*222600*/ OPC_CheckType, MVT::i32, ++/*222602*/ OPC_MoveParent, ++/*222603*/ OPC_MoveChild, 9, ++/*222605*/ OPC_CheckInteger, 1, ++/*222607*/ OPC_CheckType, MVT::i32, ++/*222609*/ OPC_MoveParent, ++/*222610*/ OPC_MoveChild, 10, ++/*222612*/ OPC_CheckInteger, 1, ++/*222614*/ OPC_CheckType, MVT::i32, ++/*222616*/ OPC_MoveParent, ++/*222617*/ OPC_MoveChild, 11, ++/*222619*/ OPC_CheckInteger, 1, ++/*222621*/ OPC_CheckType, MVT::i32, ++/*222623*/ OPC_MoveParent, ++/*222624*/ OPC_MoveChild, 12, ++/*222626*/ OPC_CheckInteger, 1, ++/*222628*/ OPC_CheckType, MVT::i32, ++/*222630*/ OPC_MoveParent, ++/*222631*/ OPC_MoveChild, 13, ++/*222633*/ OPC_CheckInteger, 1, ++/*222635*/ OPC_CheckType, MVT::i32, ++/*222637*/ OPC_MoveParent, ++/*222638*/ OPC_MoveChild, 14, ++/*222640*/ OPC_CheckInteger, 1, ++/*222642*/ OPC_CheckType, MVT::i32, ++/*222644*/ OPC_MoveParent, ++/*222645*/ OPC_MoveChild, 15, ++/*222647*/ OPC_CheckInteger, 1, ++/*222649*/ OPC_CheckType, MVT::i32, ++/*222651*/ OPC_MoveParent, ++/*222652*/ OPC_MoveParent, ++/*222653*/ OPC_RecordChild1, // #0 = $a ++/*222654*/ OPC_MoveParent, ++/*222655*/ OPC_RecordChild1, // #1 = $b ++/*222656*/ OPC_MoveParent, ++/*222657*/ OPC_MoveChild1, ++/*222658*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*222661*/ OPC_MoveChild0, ++/*222662*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*222665*/ OPC_Scope, 24|128,15/*1944*/, /*->224612*/ // 4 children in Scope ++/*222668*/ OPC_MoveChild0, ++/*222669*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*222672*/ OPC_Scope, 65|128,2/*321*/, /*->222996*/ // 6 children in Scope ++/*222675*/ OPC_MoveChild0, ++/*222676*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*222679*/ OPC_CheckChild0Integer, 1, ++/*222681*/ OPC_CheckChild0Type, MVT::i32, ++/*222683*/ OPC_CheckChild1Integer, 1, ++/*222685*/ OPC_CheckChild1Type, MVT::i32, ++/*222687*/ OPC_CheckChild2Integer, 1, ++/*222689*/ OPC_CheckChild2Type, MVT::i32, ++/*222691*/ OPC_CheckChild3Integer, 1, ++/*222693*/ OPC_CheckChild3Type, MVT::i32, ++/*222695*/ OPC_CheckChild4Integer, 1, ++/*222697*/ OPC_CheckChild4Type, MVT::i32, ++/*222699*/ OPC_MoveChild5, ++/*222700*/ OPC_CheckInteger, 1, ++/*222702*/ OPC_CheckType, MVT::i32, ++/*222704*/ OPC_MoveParent, ++/*222705*/ OPC_MoveChild6, ++/*222706*/ OPC_CheckInteger, 1, ++/*222708*/ OPC_CheckType, MVT::i32, ++/*222710*/ OPC_MoveParent, ++/*222711*/ OPC_MoveChild7, ++/*222712*/ OPC_CheckInteger, 1, ++/*222714*/ OPC_CheckType, MVT::i32, ++/*222716*/ OPC_MoveParent, ++/*222717*/ OPC_MoveChild, 8, ++/*222719*/ OPC_CheckInteger, 1, ++/*222721*/ OPC_CheckType, MVT::i32, ++/*222723*/ OPC_MoveParent, ++/*222724*/ OPC_MoveChild, 9, ++/*222726*/ OPC_CheckInteger, 1, ++/*222728*/ OPC_CheckType, MVT::i32, ++/*222730*/ OPC_MoveParent, ++/*222731*/ OPC_MoveChild, 10, ++/*222733*/ OPC_CheckInteger, 1, ++/*222735*/ OPC_CheckType, MVT::i32, ++/*222737*/ OPC_MoveParent, ++/*222738*/ OPC_MoveChild, 11, ++/*222740*/ OPC_CheckInteger, 1, ++/*222742*/ OPC_CheckType, MVT::i32, ++/*222744*/ OPC_MoveParent, ++/*222745*/ OPC_MoveChild, 12, ++/*222747*/ OPC_CheckInteger, 1, ++/*222749*/ OPC_CheckType, MVT::i32, ++/*222751*/ OPC_MoveParent, ++/*222752*/ OPC_MoveChild, 13, ++/*222754*/ OPC_CheckInteger, 1, ++/*222756*/ OPC_CheckType, MVT::i32, ++/*222758*/ OPC_MoveParent, ++/*222759*/ OPC_MoveChild, 14, ++/*222761*/ OPC_CheckInteger, 1, ++/*222763*/ OPC_CheckType, MVT::i32, ++/*222765*/ OPC_MoveParent, ++/*222766*/ OPC_MoveChild, 15, ++/*222768*/ OPC_CheckInteger, 1, ++/*222770*/ OPC_CheckType, MVT::i32, ++/*222772*/ OPC_MoveParent, ++/*222773*/ OPC_MoveParent, ++/*222774*/ OPC_CheckChild1Same, 0, ++/*222776*/ OPC_MoveParent, ++/*222777*/ OPC_CheckChild1Same, 1, ++/*222779*/ OPC_MoveParent, ++/*222780*/ OPC_MoveChild1, ++/*222781*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*222784*/ OPC_CheckChild0Integer, 15, ++/*222786*/ OPC_CheckChild0Type, MVT::i32, ++/*222788*/ OPC_CheckChild1Integer, 15, ++/*222790*/ OPC_CheckChild1Type, MVT::i32, ++/*222792*/ OPC_CheckChild2Integer, 15, ++/*222794*/ OPC_CheckChild2Type, MVT::i32, ++/*222796*/ OPC_CheckChild3Integer, 15, ++/*222798*/ OPC_CheckChild3Type, MVT::i32, ++/*222800*/ OPC_CheckChild4Integer, 15, ++/*222802*/ OPC_CheckChild4Type, MVT::i32, ++/*222804*/ OPC_MoveChild5, ++/*222805*/ OPC_CheckInteger, 15, ++/*222807*/ OPC_CheckType, MVT::i32, ++/*222809*/ OPC_MoveParent, ++/*222810*/ OPC_MoveChild6, ++/*222811*/ OPC_CheckInteger, 15, ++/*222813*/ OPC_CheckType, MVT::i32, ++/*222815*/ OPC_MoveParent, ++/*222816*/ OPC_MoveChild7, ++/*222817*/ OPC_CheckInteger, 15, ++/*222819*/ OPC_CheckType, MVT::i32, ++/*222821*/ OPC_MoveParent, ++/*222822*/ OPC_MoveChild, 8, ++/*222824*/ OPC_CheckInteger, 15, ++/*222826*/ OPC_CheckType, MVT::i32, ++/*222828*/ OPC_MoveParent, ++/*222829*/ OPC_MoveChild, 9, ++/*222831*/ OPC_CheckInteger, 15, ++/*222833*/ OPC_CheckType, MVT::i32, ++/*222835*/ OPC_MoveParent, ++/*222836*/ OPC_MoveChild, 10, ++/*222838*/ OPC_CheckInteger, 15, ++/*222840*/ OPC_CheckType, MVT::i32, ++/*222842*/ OPC_MoveParent, ++/*222843*/ OPC_MoveChild, 11, ++/*222845*/ OPC_CheckInteger, 15, ++/*222847*/ OPC_CheckType, MVT::i32, ++/*222849*/ OPC_MoveParent, ++/*222850*/ OPC_MoveChild, 12, ++/*222852*/ OPC_CheckInteger, 15, ++/*222854*/ OPC_CheckType, MVT::i32, ++/*222856*/ OPC_MoveParent, ++/*222857*/ OPC_MoveChild, 13, ++/*222859*/ OPC_CheckInteger, 15, ++/*222861*/ OPC_CheckType, MVT::i32, ++/*222863*/ OPC_MoveParent, ++/*222864*/ OPC_MoveChild, 14, ++/*222866*/ OPC_CheckInteger, 15, ++/*222868*/ OPC_CheckType, MVT::i32, ++/*222870*/ OPC_MoveParent, ++/*222871*/ OPC_MoveChild, 15, ++/*222873*/ OPC_CheckInteger, 15, ++/*222875*/ OPC_CheckType, MVT::i32, ++/*222877*/ OPC_MoveParent, ++/*222878*/ OPC_CheckType, MVT::v16i16, ++/*222880*/ OPC_MoveParent, ++/*222881*/ OPC_MoveParent, ++/*222882*/ OPC_MoveParent, ++/*222883*/ OPC_MoveChild1, ++/*222884*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*222887*/ OPC_CheckChild0Integer, 1, ++/*222889*/ OPC_CheckChild0Type, MVT::i32, ++/*222891*/ OPC_CheckChild1Integer, 1, ++/*222893*/ OPC_CheckChild1Type, MVT::i32, ++/*222895*/ OPC_CheckChild2Integer, 1, ++/*222897*/ OPC_CheckChild2Type, MVT::i32, ++/*222899*/ OPC_CheckChild3Integer, 1, ++/*222901*/ OPC_CheckChild3Type, MVT::i32, ++/*222903*/ OPC_CheckChild4Integer, 1, ++/*222905*/ OPC_CheckChild4Type, MVT::i32, ++/*222907*/ OPC_MoveChild5, ++/*222908*/ OPC_CheckInteger, 1, ++/*222910*/ OPC_CheckType, MVT::i32, ++/*222912*/ OPC_MoveParent, ++/*222913*/ OPC_MoveChild6, ++/*222914*/ OPC_CheckInteger, 1, ++/*222916*/ OPC_CheckType, MVT::i32, ++/*222918*/ OPC_MoveParent, ++/*222919*/ OPC_MoveChild7, ++/*222920*/ OPC_CheckInteger, 1, ++/*222922*/ OPC_CheckType, MVT::i32, ++/*222924*/ OPC_MoveParent, ++/*222925*/ OPC_MoveChild, 8, ++/*222927*/ OPC_CheckInteger, 1, ++/*222929*/ OPC_CheckType, MVT::i32, ++/*222931*/ OPC_MoveParent, ++/*222932*/ OPC_MoveChild, 9, ++/*222934*/ OPC_CheckInteger, 1, ++/*222936*/ OPC_CheckType, MVT::i32, ++/*222938*/ OPC_MoveParent, ++/*222939*/ OPC_MoveChild, 10, ++/*222941*/ OPC_CheckInteger, 1, ++/*222943*/ OPC_CheckType, MVT::i32, ++/*222945*/ OPC_MoveParent, ++/*222946*/ OPC_MoveChild, 11, ++/*222948*/ OPC_CheckInteger, 1, ++/*222950*/ OPC_CheckType, MVT::i32, ++/*222952*/ OPC_MoveParent, ++/*222953*/ OPC_MoveChild, 12, ++/*222955*/ OPC_CheckInteger, 1, ++/*222957*/ OPC_CheckType, MVT::i32, ++/*222959*/ OPC_MoveParent, ++/*222960*/ OPC_MoveChild, 13, ++/*222962*/ OPC_CheckInteger, 1, ++/*222964*/ OPC_CheckType, MVT::i32, ++/*222966*/ OPC_MoveParent, ++/*222967*/ OPC_MoveChild, 14, ++/*222969*/ OPC_CheckInteger, 1, ++/*222971*/ OPC_CheckType, MVT::i32, ++/*222973*/ OPC_MoveParent, ++/*222974*/ OPC_MoveChild, 15, ++/*222976*/ OPC_CheckInteger, 1, ++/*222978*/ OPC_CheckType, MVT::i32, ++/*222980*/ OPC_MoveParent, ++/*222981*/ OPC_CheckType, MVT::v16i16, ++/*222983*/ OPC_MoveParent, ++/*222984*/ OPC_CheckType, MVT::v16i16, ++/*222986*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*222988*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a), LASX256H:{ *:[v16i16] }:$b), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a), LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*222996*/ /*Scope*/ 65|128,2/*321*/, /*->223319*/ ++/*222998*/ OPC_CheckChild0Same, 0, ++/*223000*/ OPC_MoveChild1, ++/*223001*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*223004*/ OPC_CheckChild0Integer, 1, ++/*223006*/ OPC_CheckChild0Type, MVT::i32, ++/*223008*/ OPC_CheckChild1Integer, 1, ++/*223010*/ OPC_CheckChild1Type, MVT::i32, ++/*223012*/ OPC_CheckChild2Integer, 1, ++/*223014*/ OPC_CheckChild2Type, MVT::i32, ++/*223016*/ OPC_CheckChild3Integer, 1, ++/*223018*/ OPC_CheckChild3Type, MVT::i32, ++/*223020*/ OPC_CheckChild4Integer, 1, ++/*223022*/ OPC_CheckChild4Type, MVT::i32, ++/*223024*/ OPC_MoveChild5, ++/*223025*/ OPC_CheckInteger, 1, ++/*223027*/ OPC_CheckType, MVT::i32, ++/*223029*/ OPC_MoveParent, ++/*223030*/ OPC_MoveChild6, ++/*223031*/ OPC_CheckInteger, 1, ++/*223033*/ OPC_CheckType, MVT::i32, ++/*223035*/ OPC_MoveParent, ++/*223036*/ OPC_MoveChild7, ++/*223037*/ OPC_CheckInteger, 1, ++/*223039*/ OPC_CheckType, MVT::i32, ++/*223041*/ OPC_MoveParent, ++/*223042*/ OPC_MoveChild, 8, ++/*223044*/ OPC_CheckInteger, 1, ++/*223046*/ OPC_CheckType, MVT::i32, ++/*223048*/ OPC_MoveParent, ++/*223049*/ OPC_MoveChild, 9, ++/*223051*/ OPC_CheckInteger, 1, ++/*223053*/ OPC_CheckType, MVT::i32, ++/*223055*/ OPC_MoveParent, ++/*223056*/ OPC_MoveChild, 10, ++/*223058*/ OPC_CheckInteger, 1, ++/*223060*/ OPC_CheckType, MVT::i32, ++/*223062*/ OPC_MoveParent, ++/*223063*/ OPC_MoveChild, 11, ++/*223065*/ OPC_CheckInteger, 1, ++/*223067*/ OPC_CheckType, MVT::i32, ++/*223069*/ OPC_MoveParent, ++/*223070*/ OPC_MoveChild, 12, ++/*223072*/ OPC_CheckInteger, 1, ++/*223074*/ OPC_CheckType, MVT::i32, ++/*223076*/ OPC_MoveParent, ++/*223077*/ OPC_MoveChild, 13, ++/*223079*/ OPC_CheckInteger, 1, ++/*223081*/ OPC_CheckType, MVT::i32, ++/*223083*/ OPC_MoveParent, ++/*223084*/ OPC_MoveChild, 14, ++/*223086*/ OPC_CheckInteger, 1, ++/*223088*/ OPC_CheckType, MVT::i32, ++/*223090*/ OPC_MoveParent, ++/*223091*/ OPC_MoveChild, 15, ++/*223093*/ OPC_CheckInteger, 1, ++/*223095*/ OPC_CheckType, MVT::i32, ++/*223097*/ OPC_MoveParent, ++/*223098*/ OPC_MoveParent, ++/*223099*/ OPC_MoveParent, ++/*223100*/ OPC_CheckChild1Same, 1, ++/*223102*/ OPC_MoveParent, ++/*223103*/ OPC_MoveChild1, ++/*223104*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*223107*/ OPC_CheckChild0Integer, 15, ++/*223109*/ OPC_CheckChild0Type, MVT::i32, ++/*223111*/ OPC_CheckChild1Integer, 15, ++/*223113*/ OPC_CheckChild1Type, MVT::i32, ++/*223115*/ OPC_CheckChild2Integer, 15, ++/*223117*/ OPC_CheckChild2Type, MVT::i32, ++/*223119*/ OPC_CheckChild3Integer, 15, ++/*223121*/ OPC_CheckChild3Type, MVT::i32, ++/*223123*/ OPC_CheckChild4Integer, 15, ++/*223125*/ OPC_CheckChild4Type, MVT::i32, ++/*223127*/ OPC_MoveChild5, ++/*223128*/ OPC_CheckInteger, 15, ++/*223130*/ OPC_CheckType, MVT::i32, ++/*223132*/ OPC_MoveParent, ++/*223133*/ OPC_MoveChild6, ++/*223134*/ OPC_CheckInteger, 15, ++/*223136*/ OPC_CheckType, MVT::i32, ++/*223138*/ OPC_MoveParent, ++/*223139*/ OPC_MoveChild7, ++/*223140*/ OPC_CheckInteger, 15, ++/*223142*/ OPC_CheckType, MVT::i32, ++/*223144*/ OPC_MoveParent, ++/*223145*/ OPC_MoveChild, 8, ++/*223147*/ OPC_CheckInteger, 15, ++/*223149*/ OPC_CheckType, MVT::i32, ++/*223151*/ OPC_MoveParent, ++/*223152*/ OPC_MoveChild, 9, ++/*223154*/ OPC_CheckInteger, 15, ++/*223156*/ OPC_CheckType, MVT::i32, ++/*223158*/ OPC_MoveParent, ++/*223159*/ OPC_MoveChild, 10, ++/*223161*/ OPC_CheckInteger, 15, ++/*223163*/ OPC_CheckType, MVT::i32, ++/*223165*/ OPC_MoveParent, ++/*223166*/ OPC_MoveChild, 11, ++/*223168*/ OPC_CheckInteger, 15, ++/*223170*/ OPC_CheckType, MVT::i32, ++/*223172*/ OPC_MoveParent, ++/*223173*/ OPC_MoveChild, 12, ++/*223175*/ OPC_CheckInteger, 15, ++/*223177*/ OPC_CheckType, MVT::i32, ++/*223179*/ OPC_MoveParent, ++/*223180*/ OPC_MoveChild, 13, ++/*223182*/ OPC_CheckInteger, 15, ++/*223184*/ OPC_CheckType, MVT::i32, ++/*223186*/ OPC_MoveParent, ++/*223187*/ OPC_MoveChild, 14, ++/*223189*/ OPC_CheckInteger, 15, ++/*223191*/ OPC_CheckType, MVT::i32, ++/*223193*/ OPC_MoveParent, ++/*223194*/ OPC_MoveChild, 15, ++/*223196*/ OPC_CheckInteger, 15, ++/*223198*/ OPC_CheckType, MVT::i32, ++/*223200*/ OPC_MoveParent, ++/*223201*/ OPC_CheckType, MVT::v16i16, ++/*223203*/ OPC_MoveParent, ++/*223204*/ OPC_MoveParent, ++/*223205*/ OPC_MoveParent, ++/*223206*/ OPC_MoveChild1, ++/*223207*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*223210*/ OPC_CheckChild0Integer, 1, ++/*223212*/ OPC_CheckChild0Type, MVT::i32, ++/*223214*/ OPC_CheckChild1Integer, 1, ++/*223216*/ OPC_CheckChild1Type, MVT::i32, ++/*223218*/ OPC_CheckChild2Integer, 1, ++/*223220*/ OPC_CheckChild2Type, MVT::i32, ++/*223222*/ OPC_CheckChild3Integer, 1, ++/*223224*/ OPC_CheckChild3Type, MVT::i32, ++/*223226*/ OPC_CheckChild4Integer, 1, ++/*223228*/ OPC_CheckChild4Type, MVT::i32, ++/*223230*/ OPC_MoveChild5, ++/*223231*/ OPC_CheckInteger, 1, ++/*223233*/ OPC_CheckType, MVT::i32, ++/*223235*/ OPC_MoveParent, ++/*223236*/ OPC_MoveChild6, ++/*223237*/ OPC_CheckInteger, 1, ++/*223239*/ OPC_CheckType, MVT::i32, ++/*223241*/ OPC_MoveParent, ++/*223242*/ OPC_MoveChild7, ++/*223243*/ OPC_CheckInteger, 1, ++/*223245*/ OPC_CheckType, MVT::i32, ++/*223247*/ OPC_MoveParent, ++/*223248*/ OPC_MoveChild, 8, ++/*223250*/ OPC_CheckInteger, 1, ++/*223252*/ OPC_CheckType, MVT::i32, ++/*223254*/ OPC_MoveParent, ++/*223255*/ OPC_MoveChild, 9, ++/*223257*/ OPC_CheckInteger, 1, ++/*223259*/ OPC_CheckType, MVT::i32, ++/*223261*/ OPC_MoveParent, ++/*223262*/ OPC_MoveChild, 10, ++/*223264*/ OPC_CheckInteger, 1, ++/*223266*/ OPC_CheckType, MVT::i32, ++/*223268*/ OPC_MoveParent, ++/*223269*/ OPC_MoveChild, 11, ++/*223271*/ OPC_CheckInteger, 1, ++/*223273*/ OPC_CheckType, MVT::i32, ++/*223275*/ OPC_MoveParent, ++/*223276*/ OPC_MoveChild, 12, ++/*223278*/ OPC_CheckInteger, 1, ++/*223280*/ OPC_CheckType, MVT::i32, ++/*223282*/ OPC_MoveParent, ++/*223283*/ OPC_MoveChild, 13, ++/*223285*/ OPC_CheckInteger, 1, ++/*223287*/ OPC_CheckType, MVT::i32, ++/*223289*/ OPC_MoveParent, ++/*223290*/ OPC_MoveChild, 14, ++/*223292*/ OPC_CheckInteger, 1, ++/*223294*/ OPC_CheckType, MVT::i32, ++/*223296*/ OPC_MoveParent, ++/*223297*/ OPC_MoveChild, 15, ++/*223299*/ OPC_CheckInteger, 1, ++/*223301*/ OPC_CheckType, MVT::i32, ++/*223303*/ OPC_MoveParent, ++/*223304*/ OPC_CheckType, MVT::v16i16, ++/*223306*/ OPC_MoveParent, ++/*223307*/ OPC_CheckType, MVT::v16i16, ++/*223309*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*223311*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a), LASX256H:{ *:[v16i16] }:$b), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*223319*/ /*Scope*/ 65|128,2/*321*/, /*->223642*/ ++/*223321*/ OPC_MoveChild0, ++/*223322*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*223325*/ OPC_CheckChild0Integer, 1, ++/*223327*/ OPC_CheckChild0Type, MVT::i32, ++/*223329*/ OPC_CheckChild1Integer, 1, ++/*223331*/ OPC_CheckChild1Type, MVT::i32, ++/*223333*/ OPC_CheckChild2Integer, 1, ++/*223335*/ OPC_CheckChild2Type, MVT::i32, ++/*223337*/ OPC_CheckChild3Integer, 1, ++/*223339*/ OPC_CheckChild3Type, MVT::i32, ++/*223341*/ OPC_CheckChild4Integer, 1, ++/*223343*/ OPC_CheckChild4Type, MVT::i32, ++/*223345*/ OPC_MoveChild5, ++/*223346*/ OPC_CheckInteger, 1, ++/*223348*/ OPC_CheckType, MVT::i32, ++/*223350*/ OPC_MoveParent, ++/*223351*/ OPC_MoveChild6, ++/*223352*/ OPC_CheckInteger, 1, ++/*223354*/ OPC_CheckType, MVT::i32, ++/*223356*/ OPC_MoveParent, ++/*223357*/ OPC_MoveChild7, ++/*223358*/ OPC_CheckInteger, 1, ++/*223360*/ OPC_CheckType, MVT::i32, ++/*223362*/ OPC_MoveParent, ++/*223363*/ OPC_MoveChild, 8, ++/*223365*/ OPC_CheckInteger, 1, ++/*223367*/ OPC_CheckType, MVT::i32, ++/*223369*/ OPC_MoveParent, ++/*223370*/ OPC_MoveChild, 9, ++/*223372*/ OPC_CheckInteger, 1, ++/*223374*/ OPC_CheckType, MVT::i32, ++/*223376*/ OPC_MoveParent, ++/*223377*/ OPC_MoveChild, 10, ++/*223379*/ OPC_CheckInteger, 1, ++/*223381*/ OPC_CheckType, MVT::i32, ++/*223383*/ OPC_MoveParent, ++/*223384*/ OPC_MoveChild, 11, ++/*223386*/ OPC_CheckInteger, 1, ++/*223388*/ OPC_CheckType, MVT::i32, ++/*223390*/ OPC_MoveParent, ++/*223391*/ OPC_MoveChild, 12, ++/*223393*/ OPC_CheckInteger, 1, ++/*223395*/ OPC_CheckType, MVT::i32, ++/*223397*/ OPC_MoveParent, ++/*223398*/ OPC_MoveChild, 13, ++/*223400*/ OPC_CheckInteger, 1, ++/*223402*/ OPC_CheckType, MVT::i32, ++/*223404*/ OPC_MoveParent, ++/*223405*/ OPC_MoveChild, 14, ++/*223407*/ OPC_CheckInteger, 1, ++/*223409*/ OPC_CheckType, MVT::i32, ++/*223411*/ OPC_MoveParent, ++/*223412*/ OPC_MoveChild, 15, ++/*223414*/ OPC_CheckInteger, 1, ++/*223416*/ OPC_CheckType, MVT::i32, ++/*223418*/ OPC_MoveParent, ++/*223419*/ OPC_MoveParent, ++/*223420*/ OPC_CheckChild1Same, 1, ++/*223422*/ OPC_MoveParent, ++/*223423*/ OPC_CheckChild1Same, 0, ++/*223425*/ OPC_MoveParent, ++/*223426*/ OPC_MoveChild1, ++/*223427*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*223430*/ OPC_CheckChild0Integer, 15, ++/*223432*/ OPC_CheckChild0Type, MVT::i32, ++/*223434*/ OPC_CheckChild1Integer, 15, ++/*223436*/ OPC_CheckChild1Type, MVT::i32, ++/*223438*/ OPC_CheckChild2Integer, 15, ++/*223440*/ OPC_CheckChild2Type, MVT::i32, ++/*223442*/ OPC_CheckChild3Integer, 15, ++/*223444*/ OPC_CheckChild3Type, MVT::i32, ++/*223446*/ OPC_CheckChild4Integer, 15, ++/*223448*/ OPC_CheckChild4Type, MVT::i32, ++/*223450*/ OPC_MoveChild5, ++/*223451*/ OPC_CheckInteger, 15, ++/*223453*/ OPC_CheckType, MVT::i32, ++/*223455*/ OPC_MoveParent, ++/*223456*/ OPC_MoveChild6, ++/*223457*/ OPC_CheckInteger, 15, ++/*223459*/ OPC_CheckType, MVT::i32, ++/*223461*/ OPC_MoveParent, ++/*223462*/ OPC_MoveChild7, ++/*223463*/ OPC_CheckInteger, 15, ++/*223465*/ OPC_CheckType, MVT::i32, ++/*223467*/ OPC_MoveParent, ++/*223468*/ OPC_MoveChild, 8, ++/*223470*/ OPC_CheckInteger, 15, ++/*223472*/ OPC_CheckType, MVT::i32, ++/*223474*/ OPC_MoveParent, ++/*223475*/ OPC_MoveChild, 9, ++/*223477*/ OPC_CheckInteger, 15, ++/*223479*/ OPC_CheckType, MVT::i32, ++/*223481*/ OPC_MoveParent, ++/*223482*/ OPC_MoveChild, 10, ++/*223484*/ OPC_CheckInteger, 15, ++/*223486*/ OPC_CheckType, MVT::i32, ++/*223488*/ OPC_MoveParent, ++/*223489*/ OPC_MoveChild, 11, ++/*223491*/ OPC_CheckInteger, 15, ++/*223493*/ OPC_CheckType, MVT::i32, ++/*223495*/ OPC_MoveParent, ++/*223496*/ OPC_MoveChild, 12, ++/*223498*/ OPC_CheckInteger, 15, ++/*223500*/ OPC_CheckType, MVT::i32, ++/*223502*/ OPC_MoveParent, ++/*223503*/ OPC_MoveChild, 13, ++/*223505*/ OPC_CheckInteger, 15, ++/*223507*/ OPC_CheckType, MVT::i32, ++/*223509*/ OPC_MoveParent, ++/*223510*/ OPC_MoveChild, 14, ++/*223512*/ OPC_CheckInteger, 15, ++/*223514*/ OPC_CheckType, MVT::i32, ++/*223516*/ OPC_MoveParent, ++/*223517*/ OPC_MoveChild, 15, ++/*223519*/ OPC_CheckInteger, 15, ++/*223521*/ OPC_CheckType, MVT::i32, ++/*223523*/ OPC_MoveParent, ++/*223524*/ OPC_CheckType, MVT::v16i16, ++/*223526*/ OPC_MoveParent, ++/*223527*/ OPC_MoveParent, ++/*223528*/ OPC_MoveParent, ++/*223529*/ OPC_MoveChild1, ++/*223530*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*223533*/ OPC_CheckChild0Integer, 1, ++/*223535*/ OPC_CheckChild0Type, MVT::i32, ++/*223537*/ OPC_CheckChild1Integer, 1, ++/*223539*/ OPC_CheckChild1Type, MVT::i32, ++/*223541*/ OPC_CheckChild2Integer, 1, ++/*223543*/ OPC_CheckChild2Type, MVT::i32, ++/*223545*/ OPC_CheckChild3Integer, 1, ++/*223547*/ OPC_CheckChild3Type, MVT::i32, ++/*223549*/ OPC_CheckChild4Integer, 1, ++/*223551*/ OPC_CheckChild4Type, MVT::i32, ++/*223553*/ OPC_MoveChild5, ++/*223554*/ OPC_CheckInteger, 1, ++/*223556*/ OPC_CheckType, MVT::i32, ++/*223558*/ OPC_MoveParent, ++/*223559*/ OPC_MoveChild6, ++/*223560*/ OPC_CheckInteger, 1, ++/*223562*/ OPC_CheckType, MVT::i32, ++/*223564*/ OPC_MoveParent, ++/*223565*/ OPC_MoveChild7, ++/*223566*/ OPC_CheckInteger, 1, ++/*223568*/ OPC_CheckType, MVT::i32, ++/*223570*/ OPC_MoveParent, ++/*223571*/ OPC_MoveChild, 8, ++/*223573*/ OPC_CheckInteger, 1, ++/*223575*/ OPC_CheckType, MVT::i32, ++/*223577*/ OPC_MoveParent, ++/*223578*/ OPC_MoveChild, 9, ++/*223580*/ OPC_CheckInteger, 1, ++/*223582*/ OPC_CheckType, MVT::i32, ++/*223584*/ OPC_MoveParent, ++/*223585*/ OPC_MoveChild, 10, ++/*223587*/ OPC_CheckInteger, 1, ++/*223589*/ OPC_CheckType, MVT::i32, ++/*223591*/ OPC_MoveParent, ++/*223592*/ OPC_MoveChild, 11, ++/*223594*/ OPC_CheckInteger, 1, ++/*223596*/ OPC_CheckType, MVT::i32, ++/*223598*/ OPC_MoveParent, ++/*223599*/ OPC_MoveChild, 12, ++/*223601*/ OPC_CheckInteger, 1, ++/*223603*/ OPC_CheckType, MVT::i32, ++/*223605*/ OPC_MoveParent, ++/*223606*/ OPC_MoveChild, 13, ++/*223608*/ OPC_CheckInteger, 1, ++/*223610*/ OPC_CheckType, MVT::i32, ++/*223612*/ OPC_MoveParent, ++/*223613*/ OPC_MoveChild, 14, ++/*223615*/ OPC_CheckInteger, 1, ++/*223617*/ OPC_CheckType, MVT::i32, ++/*223619*/ OPC_MoveParent, ++/*223620*/ OPC_MoveChild, 15, ++/*223622*/ OPC_CheckInteger, 1, ++/*223624*/ OPC_CheckType, MVT::i32, ++/*223626*/ OPC_MoveParent, ++/*223627*/ OPC_CheckType, MVT::v16i16, ++/*223629*/ OPC_MoveParent, ++/*223630*/ OPC_CheckType, MVT::v16i16, ++/*223632*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*223634*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a), LASX256H:{ *:[v16i16] }:$b), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b), LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*223642*/ /*Scope*/ 65|128,2/*321*/, /*->223965*/ ++/*223644*/ OPC_CheckChild0Same, 1, ++/*223646*/ OPC_MoveChild1, ++/*223647*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*223650*/ OPC_CheckChild0Integer, 1, ++/*223652*/ OPC_CheckChild0Type, MVT::i32, ++/*223654*/ OPC_CheckChild1Integer, 1, ++/*223656*/ OPC_CheckChild1Type, MVT::i32, ++/*223658*/ OPC_CheckChild2Integer, 1, ++/*223660*/ OPC_CheckChild2Type, MVT::i32, ++/*223662*/ OPC_CheckChild3Integer, 1, ++/*223664*/ OPC_CheckChild3Type, MVT::i32, ++/*223666*/ OPC_CheckChild4Integer, 1, ++/*223668*/ OPC_CheckChild4Type, MVT::i32, ++/*223670*/ OPC_MoveChild5, ++/*223671*/ OPC_CheckInteger, 1, ++/*223673*/ OPC_CheckType, MVT::i32, ++/*223675*/ OPC_MoveParent, ++/*223676*/ OPC_MoveChild6, ++/*223677*/ OPC_CheckInteger, 1, ++/*223679*/ OPC_CheckType, MVT::i32, ++/*223681*/ OPC_MoveParent, ++/*223682*/ OPC_MoveChild7, ++/*223683*/ OPC_CheckInteger, 1, ++/*223685*/ OPC_CheckType, MVT::i32, ++/*223687*/ OPC_MoveParent, ++/*223688*/ OPC_MoveChild, 8, ++/*223690*/ OPC_CheckInteger, 1, ++/*223692*/ OPC_CheckType, MVT::i32, ++/*223694*/ OPC_MoveParent, ++/*223695*/ OPC_MoveChild, 9, ++/*223697*/ OPC_CheckInteger, 1, ++/*223699*/ OPC_CheckType, MVT::i32, ++/*223701*/ OPC_MoveParent, ++/*223702*/ OPC_MoveChild, 10, ++/*223704*/ OPC_CheckInteger, 1, ++/*223706*/ OPC_CheckType, MVT::i32, ++/*223708*/ OPC_MoveParent, ++/*223709*/ OPC_MoveChild, 11, ++/*223711*/ OPC_CheckInteger, 1, ++/*223713*/ OPC_CheckType, MVT::i32, ++/*223715*/ OPC_MoveParent, ++/*223716*/ OPC_MoveChild, 12, ++/*223718*/ OPC_CheckInteger, 1, ++/*223720*/ OPC_CheckType, MVT::i32, ++/*223722*/ OPC_MoveParent, ++/*223723*/ OPC_MoveChild, 13, ++/*223725*/ OPC_CheckInteger, 1, ++/*223727*/ OPC_CheckType, MVT::i32, ++/*223729*/ OPC_MoveParent, ++/*223730*/ OPC_MoveChild, 14, ++/*223732*/ OPC_CheckInteger, 1, ++/*223734*/ OPC_CheckType, MVT::i32, ++/*223736*/ OPC_MoveParent, ++/*223737*/ OPC_MoveChild, 15, ++/*223739*/ OPC_CheckInteger, 1, ++/*223741*/ OPC_CheckType, MVT::i32, ++/*223743*/ OPC_MoveParent, ++/*223744*/ OPC_MoveParent, ++/*223745*/ OPC_MoveParent, ++/*223746*/ OPC_CheckChild1Same, 0, ++/*223748*/ OPC_MoveParent, ++/*223749*/ OPC_MoveChild1, ++/*223750*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*223753*/ OPC_CheckChild0Integer, 15, ++/*223755*/ OPC_CheckChild0Type, MVT::i32, ++/*223757*/ OPC_CheckChild1Integer, 15, ++/*223759*/ OPC_CheckChild1Type, MVT::i32, ++/*223761*/ OPC_CheckChild2Integer, 15, ++/*223763*/ OPC_CheckChild2Type, MVT::i32, ++/*223765*/ OPC_CheckChild3Integer, 15, ++/*223767*/ OPC_CheckChild3Type, MVT::i32, ++/*223769*/ OPC_CheckChild4Integer, 15, ++/*223771*/ OPC_CheckChild4Type, MVT::i32, ++/*223773*/ OPC_MoveChild5, ++/*223774*/ OPC_CheckInteger, 15, ++/*223776*/ OPC_CheckType, MVT::i32, ++/*223778*/ OPC_MoveParent, ++/*223779*/ OPC_MoveChild6, ++/*223780*/ OPC_CheckInteger, 15, ++/*223782*/ OPC_CheckType, MVT::i32, ++/*223784*/ OPC_MoveParent, ++/*223785*/ OPC_MoveChild7, ++/*223786*/ OPC_CheckInteger, 15, ++/*223788*/ OPC_CheckType, MVT::i32, ++/*223790*/ OPC_MoveParent, ++/*223791*/ OPC_MoveChild, 8, ++/*223793*/ OPC_CheckInteger, 15, ++/*223795*/ OPC_CheckType, MVT::i32, ++/*223797*/ OPC_MoveParent, ++/*223798*/ OPC_MoveChild, 9, ++/*223800*/ OPC_CheckInteger, 15, ++/*223802*/ OPC_CheckType, MVT::i32, ++/*223804*/ OPC_MoveParent, ++/*223805*/ OPC_MoveChild, 10, ++/*223807*/ OPC_CheckInteger, 15, ++/*223809*/ OPC_CheckType, MVT::i32, ++/*223811*/ OPC_MoveParent, ++/*223812*/ OPC_MoveChild, 11, ++/*223814*/ OPC_CheckInteger, 15, ++/*223816*/ OPC_CheckType, MVT::i32, ++/*223818*/ OPC_MoveParent, ++/*223819*/ OPC_MoveChild, 12, ++/*223821*/ OPC_CheckInteger, 15, ++/*223823*/ OPC_CheckType, MVT::i32, ++/*223825*/ OPC_MoveParent, ++/*223826*/ OPC_MoveChild, 13, ++/*223828*/ OPC_CheckInteger, 15, ++/*223830*/ OPC_CheckType, MVT::i32, ++/*223832*/ OPC_MoveParent, ++/*223833*/ OPC_MoveChild, 14, ++/*223835*/ OPC_CheckInteger, 15, ++/*223837*/ OPC_CheckType, MVT::i32, ++/*223839*/ OPC_MoveParent, ++/*223840*/ OPC_MoveChild, 15, ++/*223842*/ OPC_CheckInteger, 15, ++/*223844*/ OPC_CheckType, MVT::i32, ++/*223846*/ OPC_MoveParent, ++/*223847*/ OPC_CheckType, MVT::v16i16, ++/*223849*/ OPC_MoveParent, ++/*223850*/ OPC_MoveParent, ++/*223851*/ OPC_MoveParent, ++/*223852*/ OPC_MoveChild1, ++/*223853*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*223856*/ OPC_CheckChild0Integer, 1, ++/*223858*/ OPC_CheckChild0Type, MVT::i32, ++/*223860*/ OPC_CheckChild1Integer, 1, ++/*223862*/ OPC_CheckChild1Type, MVT::i32, ++/*223864*/ OPC_CheckChild2Integer, 1, ++/*223866*/ OPC_CheckChild2Type, MVT::i32, ++/*223868*/ OPC_CheckChild3Integer, 1, ++/*223870*/ OPC_CheckChild3Type, MVT::i32, ++/*223872*/ OPC_CheckChild4Integer, 1, ++/*223874*/ OPC_CheckChild4Type, MVT::i32, ++/*223876*/ OPC_MoveChild5, ++/*223877*/ OPC_CheckInteger, 1, ++/*223879*/ OPC_CheckType, MVT::i32, ++/*223881*/ OPC_MoveParent, ++/*223882*/ OPC_MoveChild6, ++/*223883*/ OPC_CheckInteger, 1, ++/*223885*/ OPC_CheckType, MVT::i32, ++/*223887*/ OPC_MoveParent, ++/*223888*/ OPC_MoveChild7, ++/*223889*/ OPC_CheckInteger, 1, ++/*223891*/ OPC_CheckType, MVT::i32, ++/*223893*/ OPC_MoveParent, ++/*223894*/ OPC_MoveChild, 8, ++/*223896*/ OPC_CheckInteger, 1, ++/*223898*/ OPC_CheckType, MVT::i32, ++/*223900*/ OPC_MoveParent, ++/*223901*/ OPC_MoveChild, 9, ++/*223903*/ OPC_CheckInteger, 1, ++/*223905*/ OPC_CheckType, MVT::i32, ++/*223907*/ OPC_MoveParent, ++/*223908*/ OPC_MoveChild, 10, ++/*223910*/ OPC_CheckInteger, 1, ++/*223912*/ OPC_CheckType, MVT::i32, ++/*223914*/ OPC_MoveParent, ++/*223915*/ OPC_MoveChild, 11, ++/*223917*/ OPC_CheckInteger, 1, ++/*223919*/ OPC_CheckType, MVT::i32, ++/*223921*/ OPC_MoveParent, ++/*223922*/ OPC_MoveChild, 12, ++/*223924*/ OPC_CheckInteger, 1, ++/*223926*/ OPC_CheckType, MVT::i32, ++/*223928*/ OPC_MoveParent, ++/*223929*/ OPC_MoveChild, 13, ++/*223931*/ OPC_CheckInteger, 1, ++/*223933*/ OPC_CheckType, MVT::i32, ++/*223935*/ OPC_MoveParent, ++/*223936*/ OPC_MoveChild, 14, ++/*223938*/ OPC_CheckInteger, 1, ++/*223940*/ OPC_CheckType, MVT::i32, ++/*223942*/ OPC_MoveParent, ++/*223943*/ OPC_MoveChild, 15, ++/*223945*/ OPC_CheckInteger, 1, ++/*223947*/ OPC_CheckType, MVT::i32, ++/*223949*/ OPC_MoveParent, ++/*223950*/ OPC_CheckType, MVT::v16i16, ++/*223952*/ OPC_MoveParent, ++/*223953*/ OPC_CheckType, MVT::v16i16, ++/*223955*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*223957*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a), LASX256H:{ *:[v16i16] }:$b), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*223965*/ /*Scope*/ 65|128,2/*321*/, /*->224288*/ ++/*223967*/ OPC_CheckChild0Same, 0, ++/*223969*/ OPC_CheckChild1Same, 1, ++/*223971*/ OPC_MoveParent, ++/*223972*/ OPC_MoveChild1, ++/*223973*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*223976*/ OPC_CheckChild0Integer, 1, ++/*223978*/ OPC_CheckChild0Type, MVT::i32, ++/*223980*/ OPC_CheckChild1Integer, 1, ++/*223982*/ OPC_CheckChild1Type, MVT::i32, ++/*223984*/ OPC_CheckChild2Integer, 1, ++/*223986*/ OPC_CheckChild2Type, MVT::i32, ++/*223988*/ OPC_CheckChild3Integer, 1, ++/*223990*/ OPC_CheckChild3Type, MVT::i32, ++/*223992*/ OPC_CheckChild4Integer, 1, ++/*223994*/ OPC_CheckChild4Type, MVT::i32, ++/*223996*/ OPC_MoveChild5, ++/*223997*/ OPC_CheckInteger, 1, ++/*223999*/ OPC_CheckType, MVT::i32, ++/*224001*/ OPC_MoveParent, ++/*224002*/ OPC_MoveChild6, ++/*224003*/ OPC_CheckInteger, 1, ++/*224005*/ OPC_CheckType, MVT::i32, ++/*224007*/ OPC_MoveParent, ++/*224008*/ OPC_MoveChild7, ++/*224009*/ OPC_CheckInteger, 1, ++/*224011*/ OPC_CheckType, MVT::i32, ++/*224013*/ OPC_MoveParent, ++/*224014*/ OPC_MoveChild, 8, ++/*224016*/ OPC_CheckInteger, 1, ++/*224018*/ OPC_CheckType, MVT::i32, ++/*224020*/ OPC_MoveParent, ++/*224021*/ OPC_MoveChild, 9, ++/*224023*/ OPC_CheckInteger, 1, ++/*224025*/ OPC_CheckType, MVT::i32, ++/*224027*/ OPC_MoveParent, ++/*224028*/ OPC_MoveChild, 10, ++/*224030*/ OPC_CheckInteger, 1, ++/*224032*/ OPC_CheckType, MVT::i32, ++/*224034*/ OPC_MoveParent, ++/*224035*/ OPC_MoveChild, 11, ++/*224037*/ OPC_CheckInteger, 1, ++/*224039*/ OPC_CheckType, MVT::i32, ++/*224041*/ OPC_MoveParent, ++/*224042*/ OPC_MoveChild, 12, ++/*224044*/ OPC_CheckInteger, 1, ++/*224046*/ OPC_CheckType, MVT::i32, ++/*224048*/ OPC_MoveParent, ++/*224049*/ OPC_MoveChild, 13, ++/*224051*/ OPC_CheckInteger, 1, ++/*224053*/ OPC_CheckType, MVT::i32, ++/*224055*/ OPC_MoveParent, ++/*224056*/ OPC_MoveChild, 14, ++/*224058*/ OPC_CheckInteger, 1, ++/*224060*/ OPC_CheckType, MVT::i32, ++/*224062*/ OPC_MoveParent, ++/*224063*/ OPC_MoveChild, 15, ++/*224065*/ OPC_CheckInteger, 1, ++/*224067*/ OPC_CheckType, MVT::i32, ++/*224069*/ OPC_MoveParent, ++/*224070*/ OPC_MoveParent, ++/*224071*/ OPC_MoveParent, ++/*224072*/ OPC_MoveChild1, ++/*224073*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*224076*/ OPC_CheckChild0Integer, 15, ++/*224078*/ OPC_CheckChild0Type, MVT::i32, ++/*224080*/ OPC_CheckChild1Integer, 15, ++/*224082*/ OPC_CheckChild1Type, MVT::i32, ++/*224084*/ OPC_CheckChild2Integer, 15, ++/*224086*/ OPC_CheckChild2Type, MVT::i32, ++/*224088*/ OPC_CheckChild3Integer, 15, ++/*224090*/ OPC_CheckChild3Type, MVT::i32, ++/*224092*/ OPC_CheckChild4Integer, 15, ++/*224094*/ OPC_CheckChild4Type, MVT::i32, ++/*224096*/ OPC_MoveChild5, ++/*224097*/ OPC_CheckInteger, 15, ++/*224099*/ OPC_CheckType, MVT::i32, ++/*224101*/ OPC_MoveParent, ++/*224102*/ OPC_MoveChild6, ++/*224103*/ OPC_CheckInteger, 15, ++/*224105*/ OPC_CheckType, MVT::i32, ++/*224107*/ OPC_MoveParent, ++/*224108*/ OPC_MoveChild7, ++/*224109*/ OPC_CheckInteger, 15, ++/*224111*/ OPC_CheckType, MVT::i32, ++/*224113*/ OPC_MoveParent, ++/*224114*/ OPC_MoveChild, 8, ++/*224116*/ OPC_CheckInteger, 15, ++/*224118*/ OPC_CheckType, MVT::i32, ++/*224120*/ OPC_MoveParent, ++/*224121*/ OPC_MoveChild, 9, ++/*224123*/ OPC_CheckInteger, 15, ++/*224125*/ OPC_CheckType, MVT::i32, ++/*224127*/ OPC_MoveParent, ++/*224128*/ OPC_MoveChild, 10, ++/*224130*/ OPC_CheckInteger, 15, ++/*224132*/ OPC_CheckType, MVT::i32, ++/*224134*/ OPC_MoveParent, ++/*224135*/ OPC_MoveChild, 11, ++/*224137*/ OPC_CheckInteger, 15, ++/*224139*/ OPC_CheckType, MVT::i32, ++/*224141*/ OPC_MoveParent, ++/*224142*/ OPC_MoveChild, 12, ++/*224144*/ OPC_CheckInteger, 15, ++/*224146*/ OPC_CheckType, MVT::i32, ++/*224148*/ OPC_MoveParent, ++/*224149*/ OPC_MoveChild, 13, ++/*224151*/ OPC_CheckInteger, 15, ++/*224153*/ OPC_CheckType, MVT::i32, ++/*224155*/ OPC_MoveParent, ++/*224156*/ OPC_MoveChild, 14, ++/*224158*/ OPC_CheckInteger, 15, ++/*224160*/ OPC_CheckType, MVT::i32, ++/*224162*/ OPC_MoveParent, ++/*224163*/ OPC_MoveChild, 15, ++/*224165*/ OPC_CheckInteger, 15, ++/*224167*/ OPC_CheckType, MVT::i32, ++/*224169*/ OPC_MoveParent, ++/*224170*/ OPC_CheckType, MVT::v16i16, ++/*224172*/ OPC_MoveParent, ++/*224173*/ OPC_MoveParent, ++/*224174*/ OPC_MoveParent, ++/*224175*/ OPC_MoveChild1, ++/*224176*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*224179*/ OPC_CheckChild0Integer, 1, ++/*224181*/ OPC_CheckChild0Type, MVT::i32, ++/*224183*/ OPC_CheckChild1Integer, 1, ++/*224185*/ OPC_CheckChild1Type, MVT::i32, ++/*224187*/ OPC_CheckChild2Integer, 1, ++/*224189*/ OPC_CheckChild2Type, MVT::i32, ++/*224191*/ OPC_CheckChild3Integer, 1, ++/*224193*/ OPC_CheckChild3Type, MVT::i32, ++/*224195*/ OPC_CheckChild4Integer, 1, ++/*224197*/ OPC_CheckChild4Type, MVT::i32, ++/*224199*/ OPC_MoveChild5, ++/*224200*/ OPC_CheckInteger, 1, ++/*224202*/ OPC_CheckType, MVT::i32, ++/*224204*/ OPC_MoveParent, ++/*224205*/ OPC_MoveChild6, ++/*224206*/ OPC_CheckInteger, 1, ++/*224208*/ OPC_CheckType, MVT::i32, ++/*224210*/ OPC_MoveParent, ++/*224211*/ OPC_MoveChild7, ++/*224212*/ OPC_CheckInteger, 1, ++/*224214*/ OPC_CheckType, MVT::i32, ++/*224216*/ OPC_MoveParent, ++/*224217*/ OPC_MoveChild, 8, ++/*224219*/ OPC_CheckInteger, 1, ++/*224221*/ OPC_CheckType, MVT::i32, ++/*224223*/ OPC_MoveParent, ++/*224224*/ OPC_MoveChild, 9, ++/*224226*/ OPC_CheckInteger, 1, ++/*224228*/ OPC_CheckType, MVT::i32, ++/*224230*/ OPC_MoveParent, ++/*224231*/ OPC_MoveChild, 10, ++/*224233*/ OPC_CheckInteger, 1, ++/*224235*/ OPC_CheckType, MVT::i32, ++/*224237*/ OPC_MoveParent, ++/*224238*/ OPC_MoveChild, 11, ++/*224240*/ OPC_CheckInteger, 1, ++/*224242*/ OPC_CheckType, MVT::i32, ++/*224244*/ OPC_MoveParent, ++/*224245*/ OPC_MoveChild, 12, ++/*224247*/ OPC_CheckInteger, 1, ++/*224249*/ OPC_CheckType, MVT::i32, ++/*224251*/ OPC_MoveParent, ++/*224252*/ OPC_MoveChild, 13, ++/*224254*/ OPC_CheckInteger, 1, ++/*224256*/ OPC_CheckType, MVT::i32, ++/*224258*/ OPC_MoveParent, ++/*224259*/ OPC_MoveChild, 14, ++/*224261*/ OPC_CheckInteger, 1, ++/*224263*/ OPC_CheckType, MVT::i32, ++/*224265*/ OPC_MoveParent, ++/*224266*/ OPC_MoveChild, 15, ++/*224268*/ OPC_CheckInteger, 1, ++/*224270*/ OPC_CheckType, MVT::i32, ++/*224272*/ OPC_MoveParent, ++/*224273*/ OPC_CheckType, MVT::v16i16, ++/*224275*/ OPC_MoveParent, ++/*224276*/ OPC_CheckType, MVT::v16i16, ++/*224278*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*224280*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a), LASX256H:{ *:[v16i16] }:$b), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*224288*/ /*Scope*/ 65|128,2/*321*/, /*->224611*/ ++/*224290*/ OPC_CheckChild0Same, 1, ++/*224292*/ OPC_CheckChild1Same, 0, ++/*224294*/ OPC_MoveParent, ++/*224295*/ OPC_MoveChild1, ++/*224296*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*224299*/ OPC_CheckChild0Integer, 1, ++/*224301*/ OPC_CheckChild0Type, MVT::i32, ++/*224303*/ OPC_CheckChild1Integer, 1, ++/*224305*/ OPC_CheckChild1Type, MVT::i32, ++/*224307*/ OPC_CheckChild2Integer, 1, ++/*224309*/ OPC_CheckChild2Type, MVT::i32, ++/*224311*/ OPC_CheckChild3Integer, 1, ++/*224313*/ OPC_CheckChild3Type, MVT::i32, ++/*224315*/ OPC_CheckChild4Integer, 1, ++/*224317*/ OPC_CheckChild4Type, MVT::i32, ++/*224319*/ OPC_MoveChild5, ++/*224320*/ OPC_CheckInteger, 1, ++/*224322*/ OPC_CheckType, MVT::i32, ++/*224324*/ OPC_MoveParent, ++/*224325*/ OPC_MoveChild6, ++/*224326*/ OPC_CheckInteger, 1, ++/*224328*/ OPC_CheckType, MVT::i32, ++/*224330*/ OPC_MoveParent, ++/*224331*/ OPC_MoveChild7, ++/*224332*/ OPC_CheckInteger, 1, ++/*224334*/ OPC_CheckType, MVT::i32, ++/*224336*/ OPC_MoveParent, ++/*224337*/ OPC_MoveChild, 8, ++/*224339*/ OPC_CheckInteger, 1, ++/*224341*/ OPC_CheckType, MVT::i32, ++/*224343*/ OPC_MoveParent, ++/*224344*/ OPC_MoveChild, 9, ++/*224346*/ OPC_CheckInteger, 1, ++/*224348*/ OPC_CheckType, MVT::i32, ++/*224350*/ OPC_MoveParent, ++/*224351*/ OPC_MoveChild, 10, ++/*224353*/ OPC_CheckInteger, 1, ++/*224355*/ OPC_CheckType, MVT::i32, ++/*224357*/ OPC_MoveParent, ++/*224358*/ OPC_MoveChild, 11, ++/*224360*/ OPC_CheckInteger, 1, ++/*224362*/ OPC_CheckType, MVT::i32, ++/*224364*/ OPC_MoveParent, ++/*224365*/ OPC_MoveChild, 12, ++/*224367*/ OPC_CheckInteger, 1, ++/*224369*/ OPC_CheckType, MVT::i32, ++/*224371*/ OPC_MoveParent, ++/*224372*/ OPC_MoveChild, 13, ++/*224374*/ OPC_CheckInteger, 1, ++/*224376*/ OPC_CheckType, MVT::i32, ++/*224378*/ OPC_MoveParent, ++/*224379*/ OPC_MoveChild, 14, ++/*224381*/ OPC_CheckInteger, 1, ++/*224383*/ OPC_CheckType, MVT::i32, ++/*224385*/ OPC_MoveParent, ++/*224386*/ OPC_MoveChild, 15, ++/*224388*/ OPC_CheckInteger, 1, ++/*224390*/ OPC_CheckType, MVT::i32, ++/*224392*/ OPC_MoveParent, ++/*224393*/ OPC_MoveParent, ++/*224394*/ OPC_MoveParent, ++/*224395*/ OPC_MoveChild1, ++/*224396*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*224399*/ OPC_CheckChild0Integer, 15, ++/*224401*/ OPC_CheckChild0Type, MVT::i32, ++/*224403*/ OPC_CheckChild1Integer, 15, ++/*224405*/ OPC_CheckChild1Type, MVT::i32, ++/*224407*/ OPC_CheckChild2Integer, 15, ++/*224409*/ OPC_CheckChild2Type, MVT::i32, ++/*224411*/ OPC_CheckChild3Integer, 15, ++/*224413*/ OPC_CheckChild3Type, MVT::i32, ++/*224415*/ OPC_CheckChild4Integer, 15, ++/*224417*/ OPC_CheckChild4Type, MVT::i32, ++/*224419*/ OPC_MoveChild5, ++/*224420*/ OPC_CheckInteger, 15, ++/*224422*/ OPC_CheckType, MVT::i32, ++/*224424*/ OPC_MoveParent, ++/*224425*/ OPC_MoveChild6, ++/*224426*/ OPC_CheckInteger, 15, ++/*224428*/ OPC_CheckType, MVT::i32, ++/*224430*/ OPC_MoveParent, ++/*224431*/ OPC_MoveChild7, ++/*224432*/ OPC_CheckInteger, 15, ++/*224434*/ OPC_CheckType, MVT::i32, ++/*224436*/ OPC_MoveParent, ++/*224437*/ OPC_MoveChild, 8, ++/*224439*/ OPC_CheckInteger, 15, ++/*224441*/ OPC_CheckType, MVT::i32, ++/*224443*/ OPC_MoveParent, ++/*224444*/ OPC_MoveChild, 9, ++/*224446*/ OPC_CheckInteger, 15, ++/*224448*/ OPC_CheckType, MVT::i32, ++/*224450*/ OPC_MoveParent, ++/*224451*/ OPC_MoveChild, 10, ++/*224453*/ OPC_CheckInteger, 15, ++/*224455*/ OPC_CheckType, MVT::i32, ++/*224457*/ OPC_MoveParent, ++/*224458*/ OPC_MoveChild, 11, ++/*224460*/ OPC_CheckInteger, 15, ++/*224462*/ OPC_CheckType, MVT::i32, ++/*224464*/ OPC_MoveParent, ++/*224465*/ OPC_MoveChild, 12, ++/*224467*/ OPC_CheckInteger, 15, ++/*224469*/ OPC_CheckType, MVT::i32, ++/*224471*/ OPC_MoveParent, ++/*224472*/ OPC_MoveChild, 13, ++/*224474*/ OPC_CheckInteger, 15, ++/*224476*/ OPC_CheckType, MVT::i32, ++/*224478*/ OPC_MoveParent, ++/*224479*/ OPC_MoveChild, 14, ++/*224481*/ OPC_CheckInteger, 15, ++/*224483*/ OPC_CheckType, MVT::i32, ++/*224485*/ OPC_MoveParent, ++/*224486*/ OPC_MoveChild, 15, ++/*224488*/ OPC_CheckInteger, 15, ++/*224490*/ OPC_CheckType, MVT::i32, ++/*224492*/ OPC_MoveParent, ++/*224493*/ OPC_CheckType, MVT::v16i16, ++/*224495*/ OPC_MoveParent, ++/*224496*/ OPC_MoveParent, ++/*224497*/ OPC_MoveParent, ++/*224498*/ OPC_MoveChild1, ++/*224499*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*224502*/ OPC_CheckChild0Integer, 1, ++/*224504*/ OPC_CheckChild0Type, MVT::i32, ++/*224506*/ OPC_CheckChild1Integer, 1, ++/*224508*/ OPC_CheckChild1Type, MVT::i32, ++/*224510*/ OPC_CheckChild2Integer, 1, ++/*224512*/ OPC_CheckChild2Type, MVT::i32, ++/*224514*/ OPC_CheckChild3Integer, 1, ++/*224516*/ OPC_CheckChild3Type, MVT::i32, ++/*224518*/ OPC_CheckChild4Integer, 1, ++/*224520*/ OPC_CheckChild4Type, MVT::i32, ++/*224522*/ OPC_MoveChild5, ++/*224523*/ OPC_CheckInteger, 1, ++/*224525*/ OPC_CheckType, MVT::i32, ++/*224527*/ OPC_MoveParent, ++/*224528*/ OPC_MoveChild6, ++/*224529*/ OPC_CheckInteger, 1, ++/*224531*/ OPC_CheckType, MVT::i32, ++/*224533*/ OPC_MoveParent, ++/*224534*/ OPC_MoveChild7, ++/*224535*/ OPC_CheckInteger, 1, ++/*224537*/ OPC_CheckType, MVT::i32, ++/*224539*/ OPC_MoveParent, ++/*224540*/ OPC_MoveChild, 8, ++/*224542*/ OPC_CheckInteger, 1, ++/*224544*/ OPC_CheckType, MVT::i32, ++/*224546*/ OPC_MoveParent, ++/*224547*/ OPC_MoveChild, 9, ++/*224549*/ OPC_CheckInteger, 1, ++/*224551*/ OPC_CheckType, MVT::i32, ++/*224553*/ OPC_MoveParent, ++/*224554*/ OPC_MoveChild, 10, ++/*224556*/ OPC_CheckInteger, 1, ++/*224558*/ OPC_CheckType, MVT::i32, ++/*224560*/ OPC_MoveParent, ++/*224561*/ OPC_MoveChild, 11, ++/*224563*/ OPC_CheckInteger, 1, ++/*224565*/ OPC_CheckType, MVT::i32, ++/*224567*/ OPC_MoveParent, ++/*224568*/ OPC_MoveChild, 12, ++/*224570*/ OPC_CheckInteger, 1, ++/*224572*/ OPC_CheckType, MVT::i32, ++/*224574*/ OPC_MoveParent, ++/*224575*/ OPC_MoveChild, 13, ++/*224577*/ OPC_CheckInteger, 1, ++/*224579*/ OPC_CheckType, MVT::i32, ++/*224581*/ OPC_MoveParent, ++/*224582*/ OPC_MoveChild, 14, ++/*224584*/ OPC_CheckInteger, 1, ++/*224586*/ OPC_CheckType, MVT::i32, ++/*224588*/ OPC_MoveParent, ++/*224589*/ OPC_MoveChild, 15, ++/*224591*/ OPC_CheckInteger, 1, ++/*224593*/ OPC_CheckType, MVT::i32, ++/*224595*/ OPC_MoveParent, ++/*224596*/ OPC_CheckType, MVT::v16i16, ++/*224598*/ OPC_MoveParent, ++/*224599*/ OPC_CheckType, MVT::v16i16, ++/*224601*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*224603*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a), LASX256H:{ *:[v16i16] }:$b), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*224611*/ 0, /*End of Scope*/ ++/*224612*/ /*Scope*/ 10|128,5/*650*/, /*->225264*/ ++/*224614*/ OPC_CheckChild0Same, 1, ++/*224616*/ OPC_MoveChild1, ++/*224617*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*224620*/ OPC_Scope, 63|128,2/*319*/, /*->224942*/ // 2 children in Scope ++/*224623*/ OPC_MoveChild0, ++/*224624*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*224627*/ OPC_CheckChild0Integer, 1, ++/*224629*/ OPC_CheckChild0Type, MVT::i32, ++/*224631*/ OPC_CheckChild1Integer, 1, ++/*224633*/ OPC_CheckChild1Type, MVT::i32, ++/*224635*/ OPC_CheckChild2Integer, 1, ++/*224637*/ OPC_CheckChild2Type, MVT::i32, ++/*224639*/ OPC_CheckChild3Integer, 1, ++/*224641*/ OPC_CheckChild3Type, MVT::i32, ++/*224643*/ OPC_CheckChild4Integer, 1, ++/*224645*/ OPC_CheckChild4Type, MVT::i32, ++/*224647*/ OPC_MoveChild5, ++/*224648*/ OPC_CheckInteger, 1, ++/*224650*/ OPC_CheckType, MVT::i32, ++/*224652*/ OPC_MoveParent, ++/*224653*/ OPC_MoveChild6, ++/*224654*/ OPC_CheckInteger, 1, ++/*224656*/ OPC_CheckType, MVT::i32, ++/*224658*/ OPC_MoveParent, ++/*224659*/ OPC_MoveChild7, ++/*224660*/ OPC_CheckInteger, 1, ++/*224662*/ OPC_CheckType, MVT::i32, ++/*224664*/ OPC_MoveParent, ++/*224665*/ OPC_MoveChild, 8, ++/*224667*/ OPC_CheckInteger, 1, ++/*224669*/ OPC_CheckType, MVT::i32, ++/*224671*/ OPC_MoveParent, ++/*224672*/ OPC_MoveChild, 9, ++/*224674*/ OPC_CheckInteger, 1, ++/*224676*/ OPC_CheckType, MVT::i32, ++/*224678*/ OPC_MoveParent, ++/*224679*/ OPC_MoveChild, 10, ++/*224681*/ OPC_CheckInteger, 1, ++/*224683*/ OPC_CheckType, MVT::i32, ++/*224685*/ OPC_MoveParent, ++/*224686*/ OPC_MoveChild, 11, ++/*224688*/ OPC_CheckInteger, 1, ++/*224690*/ OPC_CheckType, MVT::i32, ++/*224692*/ OPC_MoveParent, ++/*224693*/ OPC_MoveChild, 12, ++/*224695*/ OPC_CheckInteger, 1, ++/*224697*/ OPC_CheckType, MVT::i32, ++/*224699*/ OPC_MoveParent, ++/*224700*/ OPC_MoveChild, 13, ++/*224702*/ OPC_CheckInteger, 1, ++/*224704*/ OPC_CheckType, MVT::i32, ++/*224706*/ OPC_MoveParent, ++/*224707*/ OPC_MoveChild, 14, ++/*224709*/ OPC_CheckInteger, 1, ++/*224711*/ OPC_CheckType, MVT::i32, ++/*224713*/ OPC_MoveParent, ++/*224714*/ OPC_MoveChild, 15, ++/*224716*/ OPC_CheckInteger, 1, ++/*224718*/ OPC_CheckType, MVT::i32, ++/*224720*/ OPC_MoveParent, ++/*224721*/ OPC_MoveParent, ++/*224722*/ OPC_CheckChild1Same, 0, ++/*224724*/ OPC_MoveParent, ++/*224725*/ OPC_MoveParent, ++/*224726*/ OPC_MoveChild1, ++/*224727*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*224730*/ OPC_CheckChild0Integer, 15, ++/*224732*/ OPC_CheckChild0Type, MVT::i32, ++/*224734*/ OPC_CheckChild1Integer, 15, ++/*224736*/ OPC_CheckChild1Type, MVT::i32, ++/*224738*/ OPC_CheckChild2Integer, 15, ++/*224740*/ OPC_CheckChild2Type, MVT::i32, ++/*224742*/ OPC_CheckChild3Integer, 15, ++/*224744*/ OPC_CheckChild3Type, MVT::i32, ++/*224746*/ OPC_CheckChild4Integer, 15, ++/*224748*/ OPC_CheckChild4Type, MVT::i32, ++/*224750*/ OPC_MoveChild5, ++/*224751*/ OPC_CheckInteger, 15, ++/*224753*/ OPC_CheckType, MVT::i32, ++/*224755*/ OPC_MoveParent, ++/*224756*/ OPC_MoveChild6, ++/*224757*/ OPC_CheckInteger, 15, ++/*224759*/ OPC_CheckType, MVT::i32, ++/*224761*/ OPC_MoveParent, ++/*224762*/ OPC_MoveChild7, ++/*224763*/ OPC_CheckInteger, 15, ++/*224765*/ OPC_CheckType, MVT::i32, ++/*224767*/ OPC_MoveParent, ++/*224768*/ OPC_MoveChild, 8, ++/*224770*/ OPC_CheckInteger, 15, ++/*224772*/ OPC_CheckType, MVT::i32, ++/*224774*/ OPC_MoveParent, ++/*224775*/ OPC_MoveChild, 9, ++/*224777*/ OPC_CheckInteger, 15, ++/*224779*/ OPC_CheckType, MVT::i32, ++/*224781*/ OPC_MoveParent, ++/*224782*/ OPC_MoveChild, 10, ++/*224784*/ OPC_CheckInteger, 15, ++/*224786*/ OPC_CheckType, MVT::i32, ++/*224788*/ OPC_MoveParent, ++/*224789*/ OPC_MoveChild, 11, ++/*224791*/ OPC_CheckInteger, 15, ++/*224793*/ OPC_CheckType, MVT::i32, ++/*224795*/ OPC_MoveParent, ++/*224796*/ OPC_MoveChild, 12, ++/*224798*/ OPC_CheckInteger, 15, ++/*224800*/ OPC_CheckType, MVT::i32, ++/*224802*/ OPC_MoveParent, ++/*224803*/ OPC_MoveChild, 13, ++/*224805*/ OPC_CheckInteger, 15, ++/*224807*/ OPC_CheckType, MVT::i32, ++/*224809*/ OPC_MoveParent, ++/*224810*/ OPC_MoveChild, 14, ++/*224812*/ OPC_CheckInteger, 15, ++/*224814*/ OPC_CheckType, MVT::i32, ++/*224816*/ OPC_MoveParent, ++/*224817*/ OPC_MoveChild, 15, ++/*224819*/ OPC_CheckInteger, 15, ++/*224821*/ OPC_CheckType, MVT::i32, ++/*224823*/ OPC_MoveParent, ++/*224824*/ OPC_CheckType, MVT::v16i16, ++/*224826*/ OPC_MoveParent, ++/*224827*/ OPC_MoveParent, ++/*224828*/ OPC_MoveParent, ++/*224829*/ OPC_MoveChild1, ++/*224830*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*224833*/ OPC_CheckChild0Integer, 1, ++/*224835*/ OPC_CheckChild0Type, MVT::i32, ++/*224837*/ OPC_CheckChild1Integer, 1, ++/*224839*/ OPC_CheckChild1Type, MVT::i32, ++/*224841*/ OPC_CheckChild2Integer, 1, ++/*224843*/ OPC_CheckChild2Type, MVT::i32, ++/*224845*/ OPC_CheckChild3Integer, 1, ++/*224847*/ OPC_CheckChild3Type, MVT::i32, ++/*224849*/ OPC_CheckChild4Integer, 1, ++/*224851*/ OPC_CheckChild4Type, MVT::i32, ++/*224853*/ OPC_MoveChild5, ++/*224854*/ OPC_CheckInteger, 1, ++/*224856*/ OPC_CheckType, MVT::i32, ++/*224858*/ OPC_MoveParent, ++/*224859*/ OPC_MoveChild6, ++/*224860*/ OPC_CheckInteger, 1, ++/*224862*/ OPC_CheckType, MVT::i32, ++/*224864*/ OPC_MoveParent, ++/*224865*/ OPC_MoveChild7, ++/*224866*/ OPC_CheckInteger, 1, ++/*224868*/ OPC_CheckType, MVT::i32, ++/*224870*/ OPC_MoveParent, ++/*224871*/ OPC_MoveChild, 8, ++/*224873*/ OPC_CheckInteger, 1, ++/*224875*/ OPC_CheckType, MVT::i32, ++/*224877*/ OPC_MoveParent, ++/*224878*/ OPC_MoveChild, 9, ++/*224880*/ OPC_CheckInteger, 1, ++/*224882*/ OPC_CheckType, MVT::i32, ++/*224884*/ OPC_MoveParent, ++/*224885*/ OPC_MoveChild, 10, ++/*224887*/ OPC_CheckInteger, 1, ++/*224889*/ OPC_CheckType, MVT::i32, ++/*224891*/ OPC_MoveParent, ++/*224892*/ OPC_MoveChild, 11, ++/*224894*/ OPC_CheckInteger, 1, ++/*224896*/ OPC_CheckType, MVT::i32, ++/*224898*/ OPC_MoveParent, ++/*224899*/ OPC_MoveChild, 12, ++/*224901*/ OPC_CheckInteger, 1, ++/*224903*/ OPC_CheckType, MVT::i32, ++/*224905*/ OPC_MoveParent, ++/*224906*/ OPC_MoveChild, 13, ++/*224908*/ OPC_CheckInteger, 1, ++/*224910*/ OPC_CheckType, MVT::i32, ++/*224912*/ OPC_MoveParent, ++/*224913*/ OPC_MoveChild, 14, ++/*224915*/ OPC_CheckInteger, 1, ++/*224917*/ OPC_CheckType, MVT::i32, ++/*224919*/ OPC_MoveParent, ++/*224920*/ OPC_MoveChild, 15, ++/*224922*/ OPC_CheckInteger, 1, ++/*224924*/ OPC_CheckType, MVT::i32, ++/*224926*/ OPC_MoveParent, ++/*224927*/ OPC_CheckType, MVT::v16i16, ++/*224929*/ OPC_MoveParent, ++/*224930*/ OPC_CheckType, MVT::v16i16, ++/*224932*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*224934*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a), LASX256H:{ *:[v16i16] }:$b), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*224942*/ /*Scope*/ 63|128,2/*319*/, /*->225263*/ ++/*224944*/ OPC_CheckChild0Same, 0, ++/*224946*/ OPC_MoveChild1, ++/*224947*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*224950*/ OPC_CheckChild0Integer, 1, ++/*224952*/ OPC_CheckChild0Type, MVT::i32, ++/*224954*/ OPC_CheckChild1Integer, 1, ++/*224956*/ OPC_CheckChild1Type, MVT::i32, ++/*224958*/ OPC_CheckChild2Integer, 1, ++/*224960*/ OPC_CheckChild2Type, MVT::i32, ++/*224962*/ OPC_CheckChild3Integer, 1, ++/*224964*/ OPC_CheckChild3Type, MVT::i32, ++/*224966*/ OPC_CheckChild4Integer, 1, ++/*224968*/ OPC_CheckChild4Type, MVT::i32, ++/*224970*/ OPC_MoveChild5, ++/*224971*/ OPC_CheckInteger, 1, ++/*224973*/ OPC_CheckType, MVT::i32, ++/*224975*/ OPC_MoveParent, ++/*224976*/ OPC_MoveChild6, ++/*224977*/ OPC_CheckInteger, 1, ++/*224979*/ OPC_CheckType, MVT::i32, ++/*224981*/ OPC_MoveParent, ++/*224982*/ OPC_MoveChild7, ++/*224983*/ OPC_CheckInteger, 1, ++/*224985*/ OPC_CheckType, MVT::i32, ++/*224987*/ OPC_MoveParent, ++/*224988*/ OPC_MoveChild, 8, ++/*224990*/ OPC_CheckInteger, 1, ++/*224992*/ OPC_CheckType, MVT::i32, ++/*224994*/ OPC_MoveParent, ++/*224995*/ OPC_MoveChild, 9, ++/*224997*/ OPC_CheckInteger, 1, ++/*224999*/ OPC_CheckType, MVT::i32, ++/*225001*/ OPC_MoveParent, ++/*225002*/ OPC_MoveChild, 10, ++/*225004*/ OPC_CheckInteger, 1, ++/*225006*/ OPC_CheckType, MVT::i32, ++/*225008*/ OPC_MoveParent, ++/*225009*/ OPC_MoveChild, 11, ++/*225011*/ OPC_CheckInteger, 1, ++/*225013*/ OPC_CheckType, MVT::i32, ++/*225015*/ OPC_MoveParent, ++/*225016*/ OPC_MoveChild, 12, ++/*225018*/ OPC_CheckInteger, 1, ++/*225020*/ OPC_CheckType, MVT::i32, ++/*225022*/ OPC_MoveParent, ++/*225023*/ OPC_MoveChild, 13, ++/*225025*/ OPC_CheckInteger, 1, ++/*225027*/ OPC_CheckType, MVT::i32, ++/*225029*/ OPC_MoveParent, ++/*225030*/ OPC_MoveChild, 14, ++/*225032*/ OPC_CheckInteger, 1, ++/*225034*/ OPC_CheckType, MVT::i32, ++/*225036*/ OPC_MoveParent, ++/*225037*/ OPC_MoveChild, 15, ++/*225039*/ OPC_CheckInteger, 1, ++/*225041*/ OPC_CheckType, MVT::i32, ++/*225043*/ OPC_MoveParent, ++/*225044*/ OPC_MoveParent, ++/*225045*/ OPC_MoveParent, ++/*225046*/ OPC_MoveParent, ++/*225047*/ OPC_MoveChild1, ++/*225048*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*225051*/ OPC_CheckChild0Integer, 15, ++/*225053*/ OPC_CheckChild0Type, MVT::i32, ++/*225055*/ OPC_CheckChild1Integer, 15, ++/*225057*/ OPC_CheckChild1Type, MVT::i32, ++/*225059*/ OPC_CheckChild2Integer, 15, ++/*225061*/ OPC_CheckChild2Type, MVT::i32, ++/*225063*/ OPC_CheckChild3Integer, 15, ++/*225065*/ OPC_CheckChild3Type, MVT::i32, ++/*225067*/ OPC_CheckChild4Integer, 15, ++/*225069*/ OPC_CheckChild4Type, MVT::i32, ++/*225071*/ OPC_MoveChild5, ++/*225072*/ OPC_CheckInteger, 15, ++/*225074*/ OPC_CheckType, MVT::i32, ++/*225076*/ OPC_MoveParent, ++/*225077*/ OPC_MoveChild6, ++/*225078*/ OPC_CheckInteger, 15, ++/*225080*/ OPC_CheckType, MVT::i32, ++/*225082*/ OPC_MoveParent, ++/*225083*/ OPC_MoveChild7, ++/*225084*/ OPC_CheckInteger, 15, ++/*225086*/ OPC_CheckType, MVT::i32, ++/*225088*/ OPC_MoveParent, ++/*225089*/ OPC_MoveChild, 8, ++/*225091*/ OPC_CheckInteger, 15, ++/*225093*/ OPC_CheckType, MVT::i32, ++/*225095*/ OPC_MoveParent, ++/*225096*/ OPC_MoveChild, 9, ++/*225098*/ OPC_CheckInteger, 15, ++/*225100*/ OPC_CheckType, MVT::i32, ++/*225102*/ OPC_MoveParent, ++/*225103*/ OPC_MoveChild, 10, ++/*225105*/ OPC_CheckInteger, 15, ++/*225107*/ OPC_CheckType, MVT::i32, ++/*225109*/ OPC_MoveParent, ++/*225110*/ OPC_MoveChild, 11, ++/*225112*/ OPC_CheckInteger, 15, ++/*225114*/ OPC_CheckType, MVT::i32, ++/*225116*/ OPC_MoveParent, ++/*225117*/ OPC_MoveChild, 12, ++/*225119*/ OPC_CheckInteger, 15, ++/*225121*/ OPC_CheckType, MVT::i32, ++/*225123*/ OPC_MoveParent, ++/*225124*/ OPC_MoveChild, 13, ++/*225126*/ OPC_CheckInteger, 15, ++/*225128*/ OPC_CheckType, MVT::i32, ++/*225130*/ OPC_MoveParent, ++/*225131*/ OPC_MoveChild, 14, ++/*225133*/ OPC_CheckInteger, 15, ++/*225135*/ OPC_CheckType, MVT::i32, ++/*225137*/ OPC_MoveParent, ++/*225138*/ OPC_MoveChild, 15, ++/*225140*/ OPC_CheckInteger, 15, ++/*225142*/ OPC_CheckType, MVT::i32, ++/*225144*/ OPC_MoveParent, ++/*225145*/ OPC_CheckType, MVT::v16i16, ++/*225147*/ OPC_MoveParent, ++/*225148*/ OPC_MoveParent, ++/*225149*/ OPC_MoveParent, ++/*225150*/ OPC_MoveChild1, ++/*225151*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*225154*/ OPC_CheckChild0Integer, 1, ++/*225156*/ OPC_CheckChild0Type, MVT::i32, ++/*225158*/ OPC_CheckChild1Integer, 1, ++/*225160*/ OPC_CheckChild1Type, MVT::i32, ++/*225162*/ OPC_CheckChild2Integer, 1, ++/*225164*/ OPC_CheckChild2Type, MVT::i32, ++/*225166*/ OPC_CheckChild3Integer, 1, ++/*225168*/ OPC_CheckChild3Type, MVT::i32, ++/*225170*/ OPC_CheckChild4Integer, 1, ++/*225172*/ OPC_CheckChild4Type, MVT::i32, ++/*225174*/ OPC_MoveChild5, ++/*225175*/ OPC_CheckInteger, 1, ++/*225177*/ OPC_CheckType, MVT::i32, ++/*225179*/ OPC_MoveParent, ++/*225180*/ OPC_MoveChild6, ++/*225181*/ OPC_CheckInteger, 1, ++/*225183*/ OPC_CheckType, MVT::i32, ++/*225185*/ OPC_MoveParent, ++/*225186*/ OPC_MoveChild7, ++/*225187*/ OPC_CheckInteger, 1, ++/*225189*/ OPC_CheckType, MVT::i32, ++/*225191*/ OPC_MoveParent, ++/*225192*/ OPC_MoveChild, 8, ++/*225194*/ OPC_CheckInteger, 1, ++/*225196*/ OPC_CheckType, MVT::i32, ++/*225198*/ OPC_MoveParent, ++/*225199*/ OPC_MoveChild, 9, ++/*225201*/ OPC_CheckInteger, 1, ++/*225203*/ OPC_CheckType, MVT::i32, ++/*225205*/ OPC_MoveParent, ++/*225206*/ OPC_MoveChild, 10, ++/*225208*/ OPC_CheckInteger, 1, ++/*225210*/ OPC_CheckType, MVT::i32, ++/*225212*/ OPC_MoveParent, ++/*225213*/ OPC_MoveChild, 11, ++/*225215*/ OPC_CheckInteger, 1, ++/*225217*/ OPC_CheckType, MVT::i32, ++/*225219*/ OPC_MoveParent, ++/*225220*/ OPC_MoveChild, 12, ++/*225222*/ OPC_CheckInteger, 1, ++/*225224*/ OPC_CheckType, MVT::i32, ++/*225226*/ OPC_MoveParent, ++/*225227*/ OPC_MoveChild, 13, ++/*225229*/ OPC_CheckInteger, 1, ++/*225231*/ OPC_CheckType, MVT::i32, ++/*225233*/ OPC_MoveParent, ++/*225234*/ OPC_MoveChild, 14, ++/*225236*/ OPC_CheckInteger, 1, ++/*225238*/ OPC_CheckType, MVT::i32, ++/*225240*/ OPC_MoveParent, ++/*225241*/ OPC_MoveChild, 15, ++/*225243*/ OPC_CheckInteger, 1, ++/*225245*/ OPC_CheckType, MVT::i32, ++/*225247*/ OPC_MoveParent, ++/*225248*/ OPC_CheckType, MVT::v16i16, ++/*225250*/ OPC_MoveParent, ++/*225251*/ OPC_CheckType, MVT::v16i16, ++/*225253*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*225255*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a), LASX256H:{ *:[v16i16] }:$b), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*225263*/ 0, /*End of Scope*/ ++/*225264*/ /*Scope*/ 10|128,5/*650*/, /*->225916*/ ++/*225266*/ OPC_CheckChild0Same, 0, ++/*225268*/ OPC_MoveChild1, ++/*225269*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*225272*/ OPC_Scope, 63|128,2/*319*/, /*->225594*/ // 2 children in Scope ++/*225275*/ OPC_MoveChild0, ++/*225276*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*225279*/ OPC_CheckChild0Integer, 1, ++/*225281*/ OPC_CheckChild0Type, MVT::i32, ++/*225283*/ OPC_CheckChild1Integer, 1, ++/*225285*/ OPC_CheckChild1Type, MVT::i32, ++/*225287*/ OPC_CheckChild2Integer, 1, ++/*225289*/ OPC_CheckChild2Type, MVT::i32, ++/*225291*/ OPC_CheckChild3Integer, 1, ++/*225293*/ OPC_CheckChild3Type, MVT::i32, ++/*225295*/ OPC_CheckChild4Integer, 1, ++/*225297*/ OPC_CheckChild4Type, MVT::i32, ++/*225299*/ OPC_MoveChild5, ++/*225300*/ OPC_CheckInteger, 1, ++/*225302*/ OPC_CheckType, MVT::i32, ++/*225304*/ OPC_MoveParent, ++/*225305*/ OPC_MoveChild6, ++/*225306*/ OPC_CheckInteger, 1, ++/*225308*/ OPC_CheckType, MVT::i32, ++/*225310*/ OPC_MoveParent, ++/*225311*/ OPC_MoveChild7, ++/*225312*/ OPC_CheckInteger, 1, ++/*225314*/ OPC_CheckType, MVT::i32, ++/*225316*/ OPC_MoveParent, ++/*225317*/ OPC_MoveChild, 8, ++/*225319*/ OPC_CheckInteger, 1, ++/*225321*/ OPC_CheckType, MVT::i32, ++/*225323*/ OPC_MoveParent, ++/*225324*/ OPC_MoveChild, 9, ++/*225326*/ OPC_CheckInteger, 1, ++/*225328*/ OPC_CheckType, MVT::i32, ++/*225330*/ OPC_MoveParent, ++/*225331*/ OPC_MoveChild, 10, ++/*225333*/ OPC_CheckInteger, 1, ++/*225335*/ OPC_CheckType, MVT::i32, ++/*225337*/ OPC_MoveParent, ++/*225338*/ OPC_MoveChild, 11, ++/*225340*/ OPC_CheckInteger, 1, ++/*225342*/ OPC_CheckType, MVT::i32, ++/*225344*/ OPC_MoveParent, ++/*225345*/ OPC_MoveChild, 12, ++/*225347*/ OPC_CheckInteger, 1, ++/*225349*/ OPC_CheckType, MVT::i32, ++/*225351*/ OPC_MoveParent, ++/*225352*/ OPC_MoveChild, 13, ++/*225354*/ OPC_CheckInteger, 1, ++/*225356*/ OPC_CheckType, MVT::i32, ++/*225358*/ OPC_MoveParent, ++/*225359*/ OPC_MoveChild, 14, ++/*225361*/ OPC_CheckInteger, 1, ++/*225363*/ OPC_CheckType, MVT::i32, ++/*225365*/ OPC_MoveParent, ++/*225366*/ OPC_MoveChild, 15, ++/*225368*/ OPC_CheckInteger, 1, ++/*225370*/ OPC_CheckType, MVT::i32, ++/*225372*/ OPC_MoveParent, ++/*225373*/ OPC_MoveParent, ++/*225374*/ OPC_CheckChild1Same, 1, ++/*225376*/ OPC_MoveParent, ++/*225377*/ OPC_MoveParent, ++/*225378*/ OPC_MoveChild1, ++/*225379*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*225382*/ OPC_CheckChild0Integer, 15, ++/*225384*/ OPC_CheckChild0Type, MVT::i32, ++/*225386*/ OPC_CheckChild1Integer, 15, ++/*225388*/ OPC_CheckChild1Type, MVT::i32, ++/*225390*/ OPC_CheckChild2Integer, 15, ++/*225392*/ OPC_CheckChild2Type, MVT::i32, ++/*225394*/ OPC_CheckChild3Integer, 15, ++/*225396*/ OPC_CheckChild3Type, MVT::i32, ++/*225398*/ OPC_CheckChild4Integer, 15, ++/*225400*/ OPC_CheckChild4Type, MVT::i32, ++/*225402*/ OPC_MoveChild5, ++/*225403*/ OPC_CheckInteger, 15, ++/*225405*/ OPC_CheckType, MVT::i32, ++/*225407*/ OPC_MoveParent, ++/*225408*/ OPC_MoveChild6, ++/*225409*/ OPC_CheckInteger, 15, ++/*225411*/ OPC_CheckType, MVT::i32, ++/*225413*/ OPC_MoveParent, ++/*225414*/ OPC_MoveChild7, ++/*225415*/ OPC_CheckInteger, 15, ++/*225417*/ OPC_CheckType, MVT::i32, ++/*225419*/ OPC_MoveParent, ++/*225420*/ OPC_MoveChild, 8, ++/*225422*/ OPC_CheckInteger, 15, ++/*225424*/ OPC_CheckType, MVT::i32, ++/*225426*/ OPC_MoveParent, ++/*225427*/ OPC_MoveChild, 9, ++/*225429*/ OPC_CheckInteger, 15, ++/*225431*/ OPC_CheckType, MVT::i32, ++/*225433*/ OPC_MoveParent, ++/*225434*/ OPC_MoveChild, 10, ++/*225436*/ OPC_CheckInteger, 15, ++/*225438*/ OPC_CheckType, MVT::i32, ++/*225440*/ OPC_MoveParent, ++/*225441*/ OPC_MoveChild, 11, ++/*225443*/ OPC_CheckInteger, 15, ++/*225445*/ OPC_CheckType, MVT::i32, ++/*225447*/ OPC_MoveParent, ++/*225448*/ OPC_MoveChild, 12, ++/*225450*/ OPC_CheckInteger, 15, ++/*225452*/ OPC_CheckType, MVT::i32, ++/*225454*/ OPC_MoveParent, ++/*225455*/ OPC_MoveChild, 13, ++/*225457*/ OPC_CheckInteger, 15, ++/*225459*/ OPC_CheckType, MVT::i32, ++/*225461*/ OPC_MoveParent, ++/*225462*/ OPC_MoveChild, 14, ++/*225464*/ OPC_CheckInteger, 15, ++/*225466*/ OPC_CheckType, MVT::i32, ++/*225468*/ OPC_MoveParent, ++/*225469*/ OPC_MoveChild, 15, ++/*225471*/ OPC_CheckInteger, 15, ++/*225473*/ OPC_CheckType, MVT::i32, ++/*225475*/ OPC_MoveParent, ++/*225476*/ OPC_CheckType, MVT::v16i16, ++/*225478*/ OPC_MoveParent, ++/*225479*/ OPC_MoveParent, ++/*225480*/ OPC_MoveParent, ++/*225481*/ OPC_MoveChild1, ++/*225482*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*225485*/ OPC_CheckChild0Integer, 1, ++/*225487*/ OPC_CheckChild0Type, MVT::i32, ++/*225489*/ OPC_CheckChild1Integer, 1, ++/*225491*/ OPC_CheckChild1Type, MVT::i32, ++/*225493*/ OPC_CheckChild2Integer, 1, ++/*225495*/ OPC_CheckChild2Type, MVT::i32, ++/*225497*/ OPC_CheckChild3Integer, 1, ++/*225499*/ OPC_CheckChild3Type, MVT::i32, ++/*225501*/ OPC_CheckChild4Integer, 1, ++/*225503*/ OPC_CheckChild4Type, MVT::i32, ++/*225505*/ OPC_MoveChild5, ++/*225506*/ OPC_CheckInteger, 1, ++/*225508*/ OPC_CheckType, MVT::i32, ++/*225510*/ OPC_MoveParent, ++/*225511*/ OPC_MoveChild6, ++/*225512*/ OPC_CheckInteger, 1, ++/*225514*/ OPC_CheckType, MVT::i32, ++/*225516*/ OPC_MoveParent, ++/*225517*/ OPC_MoveChild7, ++/*225518*/ OPC_CheckInteger, 1, ++/*225520*/ OPC_CheckType, MVT::i32, ++/*225522*/ OPC_MoveParent, ++/*225523*/ OPC_MoveChild, 8, ++/*225525*/ OPC_CheckInteger, 1, ++/*225527*/ OPC_CheckType, MVT::i32, ++/*225529*/ OPC_MoveParent, ++/*225530*/ OPC_MoveChild, 9, ++/*225532*/ OPC_CheckInteger, 1, ++/*225534*/ OPC_CheckType, MVT::i32, ++/*225536*/ OPC_MoveParent, ++/*225537*/ OPC_MoveChild, 10, ++/*225539*/ OPC_CheckInteger, 1, ++/*225541*/ OPC_CheckType, MVT::i32, ++/*225543*/ OPC_MoveParent, ++/*225544*/ OPC_MoveChild, 11, ++/*225546*/ OPC_CheckInteger, 1, ++/*225548*/ OPC_CheckType, MVT::i32, ++/*225550*/ OPC_MoveParent, ++/*225551*/ OPC_MoveChild, 12, ++/*225553*/ OPC_CheckInteger, 1, ++/*225555*/ OPC_CheckType, MVT::i32, ++/*225557*/ OPC_MoveParent, ++/*225558*/ OPC_MoveChild, 13, ++/*225560*/ OPC_CheckInteger, 1, ++/*225562*/ OPC_CheckType, MVT::i32, ++/*225564*/ OPC_MoveParent, ++/*225565*/ OPC_MoveChild, 14, ++/*225567*/ OPC_CheckInteger, 1, ++/*225569*/ OPC_CheckType, MVT::i32, ++/*225571*/ OPC_MoveParent, ++/*225572*/ OPC_MoveChild, 15, ++/*225574*/ OPC_CheckInteger, 1, ++/*225576*/ OPC_CheckType, MVT::i32, ++/*225578*/ OPC_MoveParent, ++/*225579*/ OPC_CheckType, MVT::v16i16, ++/*225581*/ OPC_MoveParent, ++/*225582*/ OPC_CheckType, MVT::v16i16, ++/*225584*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*225586*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a), LASX256H:{ *:[v16i16] }:$b), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*225594*/ /*Scope*/ 63|128,2/*319*/, /*->225915*/ ++/*225596*/ OPC_CheckChild0Same, 1, ++/*225598*/ OPC_MoveChild1, ++/*225599*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*225602*/ OPC_CheckChild0Integer, 1, ++/*225604*/ OPC_CheckChild0Type, MVT::i32, ++/*225606*/ OPC_CheckChild1Integer, 1, ++/*225608*/ OPC_CheckChild1Type, MVT::i32, ++/*225610*/ OPC_CheckChild2Integer, 1, ++/*225612*/ OPC_CheckChild2Type, MVT::i32, ++/*225614*/ OPC_CheckChild3Integer, 1, ++/*225616*/ OPC_CheckChild3Type, MVT::i32, ++/*225618*/ OPC_CheckChild4Integer, 1, ++/*225620*/ OPC_CheckChild4Type, MVT::i32, ++/*225622*/ OPC_MoveChild5, ++/*225623*/ OPC_CheckInteger, 1, ++/*225625*/ OPC_CheckType, MVT::i32, ++/*225627*/ OPC_MoveParent, ++/*225628*/ OPC_MoveChild6, ++/*225629*/ OPC_CheckInteger, 1, ++/*225631*/ OPC_CheckType, MVT::i32, ++/*225633*/ OPC_MoveParent, ++/*225634*/ OPC_MoveChild7, ++/*225635*/ OPC_CheckInteger, 1, ++/*225637*/ OPC_CheckType, MVT::i32, ++/*225639*/ OPC_MoveParent, ++/*225640*/ OPC_MoveChild, 8, ++/*225642*/ OPC_CheckInteger, 1, ++/*225644*/ OPC_CheckType, MVT::i32, ++/*225646*/ OPC_MoveParent, ++/*225647*/ OPC_MoveChild, 9, ++/*225649*/ OPC_CheckInteger, 1, ++/*225651*/ OPC_CheckType, MVT::i32, ++/*225653*/ OPC_MoveParent, ++/*225654*/ OPC_MoveChild, 10, ++/*225656*/ OPC_CheckInteger, 1, ++/*225658*/ OPC_CheckType, MVT::i32, ++/*225660*/ OPC_MoveParent, ++/*225661*/ OPC_MoveChild, 11, ++/*225663*/ OPC_CheckInteger, 1, ++/*225665*/ OPC_CheckType, MVT::i32, ++/*225667*/ OPC_MoveParent, ++/*225668*/ OPC_MoveChild, 12, ++/*225670*/ OPC_CheckInteger, 1, ++/*225672*/ OPC_CheckType, MVT::i32, ++/*225674*/ OPC_MoveParent, ++/*225675*/ OPC_MoveChild, 13, ++/*225677*/ OPC_CheckInteger, 1, ++/*225679*/ OPC_CheckType, MVT::i32, ++/*225681*/ OPC_MoveParent, ++/*225682*/ OPC_MoveChild, 14, ++/*225684*/ OPC_CheckInteger, 1, ++/*225686*/ OPC_CheckType, MVT::i32, ++/*225688*/ OPC_MoveParent, ++/*225689*/ OPC_MoveChild, 15, ++/*225691*/ OPC_CheckInteger, 1, ++/*225693*/ OPC_CheckType, MVT::i32, ++/*225695*/ OPC_MoveParent, ++/*225696*/ OPC_MoveParent, ++/*225697*/ OPC_MoveParent, ++/*225698*/ OPC_MoveParent, ++/*225699*/ OPC_MoveChild1, ++/*225700*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*225703*/ OPC_CheckChild0Integer, 15, ++/*225705*/ OPC_CheckChild0Type, MVT::i32, ++/*225707*/ OPC_CheckChild1Integer, 15, ++/*225709*/ OPC_CheckChild1Type, MVT::i32, ++/*225711*/ OPC_CheckChild2Integer, 15, ++/*225713*/ OPC_CheckChild2Type, MVT::i32, ++/*225715*/ OPC_CheckChild3Integer, 15, ++/*225717*/ OPC_CheckChild3Type, MVT::i32, ++/*225719*/ OPC_CheckChild4Integer, 15, ++/*225721*/ OPC_CheckChild4Type, MVT::i32, ++/*225723*/ OPC_MoveChild5, ++/*225724*/ OPC_CheckInteger, 15, ++/*225726*/ OPC_CheckType, MVT::i32, ++/*225728*/ OPC_MoveParent, ++/*225729*/ OPC_MoveChild6, ++/*225730*/ OPC_CheckInteger, 15, ++/*225732*/ OPC_CheckType, MVT::i32, ++/*225734*/ OPC_MoveParent, ++/*225735*/ OPC_MoveChild7, ++/*225736*/ OPC_CheckInteger, 15, ++/*225738*/ OPC_CheckType, MVT::i32, ++/*225740*/ OPC_MoveParent, ++/*225741*/ OPC_MoveChild, 8, ++/*225743*/ OPC_CheckInteger, 15, ++/*225745*/ OPC_CheckType, MVT::i32, ++/*225747*/ OPC_MoveParent, ++/*225748*/ OPC_MoveChild, 9, ++/*225750*/ OPC_CheckInteger, 15, ++/*225752*/ OPC_CheckType, MVT::i32, ++/*225754*/ OPC_MoveParent, ++/*225755*/ OPC_MoveChild, 10, ++/*225757*/ OPC_CheckInteger, 15, ++/*225759*/ OPC_CheckType, MVT::i32, ++/*225761*/ OPC_MoveParent, ++/*225762*/ OPC_MoveChild, 11, ++/*225764*/ OPC_CheckInteger, 15, ++/*225766*/ OPC_CheckType, MVT::i32, ++/*225768*/ OPC_MoveParent, ++/*225769*/ OPC_MoveChild, 12, ++/*225771*/ OPC_CheckInteger, 15, ++/*225773*/ OPC_CheckType, MVT::i32, ++/*225775*/ OPC_MoveParent, ++/*225776*/ OPC_MoveChild, 13, ++/*225778*/ OPC_CheckInteger, 15, ++/*225780*/ OPC_CheckType, MVT::i32, ++/*225782*/ OPC_MoveParent, ++/*225783*/ OPC_MoveChild, 14, ++/*225785*/ OPC_CheckInteger, 15, ++/*225787*/ OPC_CheckType, MVT::i32, ++/*225789*/ OPC_MoveParent, ++/*225790*/ OPC_MoveChild, 15, ++/*225792*/ OPC_CheckInteger, 15, ++/*225794*/ OPC_CheckType, MVT::i32, ++/*225796*/ OPC_MoveParent, ++/*225797*/ OPC_CheckType, MVT::v16i16, ++/*225799*/ OPC_MoveParent, ++/*225800*/ OPC_MoveParent, ++/*225801*/ OPC_MoveParent, ++/*225802*/ OPC_MoveChild1, ++/*225803*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*225806*/ OPC_CheckChild0Integer, 1, ++/*225808*/ OPC_CheckChild0Type, MVT::i32, ++/*225810*/ OPC_CheckChild1Integer, 1, ++/*225812*/ OPC_CheckChild1Type, MVT::i32, ++/*225814*/ OPC_CheckChild2Integer, 1, ++/*225816*/ OPC_CheckChild2Type, MVT::i32, ++/*225818*/ OPC_CheckChild3Integer, 1, ++/*225820*/ OPC_CheckChild3Type, MVT::i32, ++/*225822*/ OPC_CheckChild4Integer, 1, ++/*225824*/ OPC_CheckChild4Type, MVT::i32, ++/*225826*/ OPC_MoveChild5, ++/*225827*/ OPC_CheckInteger, 1, ++/*225829*/ OPC_CheckType, MVT::i32, ++/*225831*/ OPC_MoveParent, ++/*225832*/ OPC_MoveChild6, ++/*225833*/ OPC_CheckInteger, 1, ++/*225835*/ OPC_CheckType, MVT::i32, ++/*225837*/ OPC_MoveParent, ++/*225838*/ OPC_MoveChild7, ++/*225839*/ OPC_CheckInteger, 1, ++/*225841*/ OPC_CheckType, MVT::i32, ++/*225843*/ OPC_MoveParent, ++/*225844*/ OPC_MoveChild, 8, ++/*225846*/ OPC_CheckInteger, 1, ++/*225848*/ OPC_CheckType, MVT::i32, ++/*225850*/ OPC_MoveParent, ++/*225851*/ OPC_MoveChild, 9, ++/*225853*/ OPC_CheckInteger, 1, ++/*225855*/ OPC_CheckType, MVT::i32, ++/*225857*/ OPC_MoveParent, ++/*225858*/ OPC_MoveChild, 10, ++/*225860*/ OPC_CheckInteger, 1, ++/*225862*/ OPC_CheckType, MVT::i32, ++/*225864*/ OPC_MoveParent, ++/*225865*/ OPC_MoveChild, 11, ++/*225867*/ OPC_CheckInteger, 1, ++/*225869*/ OPC_CheckType, MVT::i32, ++/*225871*/ OPC_MoveParent, ++/*225872*/ OPC_MoveChild, 12, ++/*225874*/ OPC_CheckInteger, 1, ++/*225876*/ OPC_CheckType, MVT::i32, ++/*225878*/ OPC_MoveParent, ++/*225879*/ OPC_MoveChild, 13, ++/*225881*/ OPC_CheckInteger, 1, ++/*225883*/ OPC_CheckType, MVT::i32, ++/*225885*/ OPC_MoveParent, ++/*225886*/ OPC_MoveChild, 14, ++/*225888*/ OPC_CheckInteger, 1, ++/*225890*/ OPC_CheckType, MVT::i32, ++/*225892*/ OPC_MoveParent, ++/*225893*/ OPC_MoveChild, 15, ++/*225895*/ OPC_CheckInteger, 1, ++/*225897*/ OPC_CheckType, MVT::i32, ++/*225899*/ OPC_MoveParent, ++/*225900*/ OPC_CheckType, MVT::v16i16, ++/*225902*/ OPC_MoveParent, ++/*225903*/ OPC_CheckType, MVT::v16i16, ++/*225905*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*225907*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a), LASX256H:{ *:[v16i16] }:$b), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*225915*/ 0, /*End of Scope*/ ++/*225916*/ /*Scope*/ 41|128,4/*553*/, /*->226471*/ ++/*225918*/ OPC_MoveChild0, ++/*225919*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*225922*/ OPC_CheckChild0Integer, 1, ++/*225924*/ OPC_CheckChild0Type, MVT::i32, ++/*225926*/ OPC_CheckChild1Integer, 1, ++/*225928*/ OPC_CheckChild1Type, MVT::i32, ++/*225930*/ OPC_CheckChild2Integer, 1, ++/*225932*/ OPC_CheckChild2Type, MVT::i32, ++/*225934*/ OPC_CheckChild3Integer, 1, ++/*225936*/ OPC_CheckChild3Type, MVT::i32, ++/*225938*/ OPC_CheckChild4Integer, 1, ++/*225940*/ OPC_CheckChild4Type, MVT::i32, ++/*225942*/ OPC_MoveChild5, ++/*225943*/ OPC_CheckInteger, 1, ++/*225945*/ OPC_CheckType, MVT::i32, ++/*225947*/ OPC_MoveParent, ++/*225948*/ OPC_MoveChild6, ++/*225949*/ OPC_CheckInteger, 1, ++/*225951*/ OPC_CheckType, MVT::i32, ++/*225953*/ OPC_MoveParent, ++/*225954*/ OPC_MoveChild7, ++/*225955*/ OPC_CheckInteger, 1, ++/*225957*/ OPC_CheckType, MVT::i32, ++/*225959*/ OPC_MoveParent, ++/*225960*/ OPC_MoveChild, 8, ++/*225962*/ OPC_CheckInteger, 1, ++/*225964*/ OPC_CheckType, MVT::i32, ++/*225966*/ OPC_MoveParent, ++/*225967*/ OPC_MoveChild, 9, ++/*225969*/ OPC_CheckInteger, 1, ++/*225971*/ OPC_CheckType, MVT::i32, ++/*225973*/ OPC_MoveParent, ++/*225974*/ OPC_MoveChild, 10, ++/*225976*/ OPC_CheckInteger, 1, ++/*225978*/ OPC_CheckType, MVT::i32, ++/*225980*/ OPC_MoveParent, ++/*225981*/ OPC_MoveChild, 11, ++/*225983*/ OPC_CheckInteger, 1, ++/*225985*/ OPC_CheckType, MVT::i32, ++/*225987*/ OPC_MoveParent, ++/*225988*/ OPC_MoveChild, 12, ++/*225990*/ OPC_CheckInteger, 1, ++/*225992*/ OPC_CheckType, MVT::i32, ++/*225994*/ OPC_MoveParent, ++/*225995*/ OPC_MoveChild, 13, ++/*225997*/ OPC_CheckInteger, 1, ++/*225999*/ OPC_CheckType, MVT::i32, ++/*226001*/ OPC_MoveParent, ++/*226002*/ OPC_MoveChild, 14, ++/*226004*/ OPC_CheckInteger, 1, ++/*226006*/ OPC_CheckType, MVT::i32, ++/*226008*/ OPC_MoveParent, ++/*226009*/ OPC_MoveChild, 15, ++/*226011*/ OPC_CheckInteger, 1, ++/*226013*/ OPC_CheckType, MVT::i32, ++/*226015*/ OPC_MoveParent, ++/*226016*/ OPC_MoveParent, ++/*226017*/ OPC_MoveChild1, ++/*226018*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*226021*/ OPC_Scope, 94|128,1/*222*/, /*->226246*/ // 2 children in Scope ++/*226024*/ OPC_CheckChild0Same, 0, ++/*226026*/ OPC_CheckChild1Same, 1, ++/*226028*/ OPC_MoveParent, ++/*226029*/ OPC_MoveParent, ++/*226030*/ OPC_MoveChild1, ++/*226031*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*226034*/ OPC_CheckChild0Integer, 15, ++/*226036*/ OPC_CheckChild0Type, MVT::i32, ++/*226038*/ OPC_CheckChild1Integer, 15, ++/*226040*/ OPC_CheckChild1Type, MVT::i32, ++/*226042*/ OPC_CheckChild2Integer, 15, ++/*226044*/ OPC_CheckChild2Type, MVT::i32, ++/*226046*/ OPC_CheckChild3Integer, 15, ++/*226048*/ OPC_CheckChild3Type, MVT::i32, ++/*226050*/ OPC_CheckChild4Integer, 15, ++/*226052*/ OPC_CheckChild4Type, MVT::i32, ++/*226054*/ OPC_MoveChild5, ++/*226055*/ OPC_CheckInteger, 15, ++/*226057*/ OPC_CheckType, MVT::i32, ++/*226059*/ OPC_MoveParent, ++/*226060*/ OPC_MoveChild6, ++/*226061*/ OPC_CheckInteger, 15, ++/*226063*/ OPC_CheckType, MVT::i32, ++/*226065*/ OPC_MoveParent, ++/*226066*/ OPC_MoveChild7, ++/*226067*/ OPC_CheckInteger, 15, ++/*226069*/ OPC_CheckType, MVT::i32, ++/*226071*/ OPC_MoveParent, ++/*226072*/ OPC_MoveChild, 8, ++/*226074*/ OPC_CheckInteger, 15, ++/*226076*/ OPC_CheckType, MVT::i32, ++/*226078*/ OPC_MoveParent, ++/*226079*/ OPC_MoveChild, 9, ++/*226081*/ OPC_CheckInteger, 15, ++/*226083*/ OPC_CheckType, MVT::i32, ++/*226085*/ OPC_MoveParent, ++/*226086*/ OPC_MoveChild, 10, ++/*226088*/ OPC_CheckInteger, 15, ++/*226090*/ OPC_CheckType, MVT::i32, ++/*226092*/ OPC_MoveParent, ++/*226093*/ OPC_MoveChild, 11, ++/*226095*/ OPC_CheckInteger, 15, ++/*226097*/ OPC_CheckType, MVT::i32, ++/*226099*/ OPC_MoveParent, ++/*226100*/ OPC_MoveChild, 12, ++/*226102*/ OPC_CheckInteger, 15, ++/*226104*/ OPC_CheckType, MVT::i32, ++/*226106*/ OPC_MoveParent, ++/*226107*/ OPC_MoveChild, 13, ++/*226109*/ OPC_CheckInteger, 15, ++/*226111*/ OPC_CheckType, MVT::i32, ++/*226113*/ OPC_MoveParent, ++/*226114*/ OPC_MoveChild, 14, ++/*226116*/ OPC_CheckInteger, 15, ++/*226118*/ OPC_CheckType, MVT::i32, ++/*226120*/ OPC_MoveParent, ++/*226121*/ OPC_MoveChild, 15, ++/*226123*/ OPC_CheckInteger, 15, ++/*226125*/ OPC_CheckType, MVT::i32, ++/*226127*/ OPC_MoveParent, ++/*226128*/ OPC_CheckType, MVT::v16i16, ++/*226130*/ OPC_MoveParent, ++/*226131*/ OPC_MoveParent, ++/*226132*/ OPC_MoveParent, ++/*226133*/ OPC_MoveChild1, ++/*226134*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*226137*/ OPC_CheckChild0Integer, 1, ++/*226139*/ OPC_CheckChild0Type, MVT::i32, ++/*226141*/ OPC_CheckChild1Integer, 1, ++/*226143*/ OPC_CheckChild1Type, MVT::i32, ++/*226145*/ OPC_CheckChild2Integer, 1, ++/*226147*/ OPC_CheckChild2Type, MVT::i32, ++/*226149*/ OPC_CheckChild3Integer, 1, ++/*226151*/ OPC_CheckChild3Type, MVT::i32, ++/*226153*/ OPC_CheckChild4Integer, 1, ++/*226155*/ OPC_CheckChild4Type, MVT::i32, ++/*226157*/ OPC_MoveChild5, ++/*226158*/ OPC_CheckInteger, 1, ++/*226160*/ OPC_CheckType, MVT::i32, ++/*226162*/ OPC_MoveParent, ++/*226163*/ OPC_MoveChild6, ++/*226164*/ OPC_CheckInteger, 1, ++/*226166*/ OPC_CheckType, MVT::i32, ++/*226168*/ OPC_MoveParent, ++/*226169*/ OPC_MoveChild7, ++/*226170*/ OPC_CheckInteger, 1, ++/*226172*/ OPC_CheckType, MVT::i32, ++/*226174*/ OPC_MoveParent, ++/*226175*/ OPC_MoveChild, 8, ++/*226177*/ OPC_CheckInteger, 1, ++/*226179*/ OPC_CheckType, MVT::i32, ++/*226181*/ OPC_MoveParent, ++/*226182*/ OPC_MoveChild, 9, ++/*226184*/ OPC_CheckInteger, 1, ++/*226186*/ OPC_CheckType, MVT::i32, ++/*226188*/ OPC_MoveParent, ++/*226189*/ OPC_MoveChild, 10, ++/*226191*/ OPC_CheckInteger, 1, ++/*226193*/ OPC_CheckType, MVT::i32, ++/*226195*/ OPC_MoveParent, ++/*226196*/ OPC_MoveChild, 11, ++/*226198*/ OPC_CheckInteger, 1, ++/*226200*/ OPC_CheckType, MVT::i32, ++/*226202*/ OPC_MoveParent, ++/*226203*/ OPC_MoveChild, 12, ++/*226205*/ OPC_CheckInteger, 1, ++/*226207*/ OPC_CheckType, MVT::i32, ++/*226209*/ OPC_MoveParent, ++/*226210*/ OPC_MoveChild, 13, ++/*226212*/ OPC_CheckInteger, 1, ++/*226214*/ OPC_CheckType, MVT::i32, ++/*226216*/ OPC_MoveParent, ++/*226217*/ OPC_MoveChild, 14, ++/*226219*/ OPC_CheckInteger, 1, ++/*226221*/ OPC_CheckType, MVT::i32, ++/*226223*/ OPC_MoveParent, ++/*226224*/ OPC_MoveChild, 15, ++/*226226*/ OPC_CheckInteger, 1, ++/*226228*/ OPC_CheckType, MVT::i32, ++/*226230*/ OPC_MoveParent, ++/*226231*/ OPC_CheckType, MVT::v16i16, ++/*226233*/ OPC_MoveParent, ++/*226234*/ OPC_CheckType, MVT::v16i16, ++/*226236*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*226238*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a), LASX256H:{ *:[v16i16] }:$b), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*226246*/ /*Scope*/ 94|128,1/*222*/, /*->226470*/ ++/*226248*/ OPC_CheckChild0Same, 1, ++/*226250*/ OPC_CheckChild1Same, 0, ++/*226252*/ OPC_MoveParent, ++/*226253*/ OPC_MoveParent, ++/*226254*/ OPC_MoveChild1, ++/*226255*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*226258*/ OPC_CheckChild0Integer, 15, ++/*226260*/ OPC_CheckChild0Type, MVT::i32, ++/*226262*/ OPC_CheckChild1Integer, 15, ++/*226264*/ OPC_CheckChild1Type, MVT::i32, ++/*226266*/ OPC_CheckChild2Integer, 15, ++/*226268*/ OPC_CheckChild2Type, MVT::i32, ++/*226270*/ OPC_CheckChild3Integer, 15, ++/*226272*/ OPC_CheckChild3Type, MVT::i32, ++/*226274*/ OPC_CheckChild4Integer, 15, ++/*226276*/ OPC_CheckChild4Type, MVT::i32, ++/*226278*/ OPC_MoveChild5, ++/*226279*/ OPC_CheckInteger, 15, ++/*226281*/ OPC_CheckType, MVT::i32, ++/*226283*/ OPC_MoveParent, ++/*226284*/ OPC_MoveChild6, ++/*226285*/ OPC_CheckInteger, 15, ++/*226287*/ OPC_CheckType, MVT::i32, ++/*226289*/ OPC_MoveParent, ++/*226290*/ OPC_MoveChild7, ++/*226291*/ OPC_CheckInteger, 15, ++/*226293*/ OPC_CheckType, MVT::i32, ++/*226295*/ OPC_MoveParent, ++/*226296*/ OPC_MoveChild, 8, ++/*226298*/ OPC_CheckInteger, 15, ++/*226300*/ OPC_CheckType, MVT::i32, ++/*226302*/ OPC_MoveParent, ++/*226303*/ OPC_MoveChild, 9, ++/*226305*/ OPC_CheckInteger, 15, ++/*226307*/ OPC_CheckType, MVT::i32, ++/*226309*/ OPC_MoveParent, ++/*226310*/ OPC_MoveChild, 10, ++/*226312*/ OPC_CheckInteger, 15, ++/*226314*/ OPC_CheckType, MVT::i32, ++/*226316*/ OPC_MoveParent, ++/*226317*/ OPC_MoveChild, 11, ++/*226319*/ OPC_CheckInteger, 15, ++/*226321*/ OPC_CheckType, MVT::i32, ++/*226323*/ OPC_MoveParent, ++/*226324*/ OPC_MoveChild, 12, ++/*226326*/ OPC_CheckInteger, 15, ++/*226328*/ OPC_CheckType, MVT::i32, ++/*226330*/ OPC_MoveParent, ++/*226331*/ OPC_MoveChild, 13, ++/*226333*/ OPC_CheckInteger, 15, ++/*226335*/ OPC_CheckType, MVT::i32, ++/*226337*/ OPC_MoveParent, ++/*226338*/ OPC_MoveChild, 14, ++/*226340*/ OPC_CheckInteger, 15, ++/*226342*/ OPC_CheckType, MVT::i32, ++/*226344*/ OPC_MoveParent, ++/*226345*/ OPC_MoveChild, 15, ++/*226347*/ OPC_CheckInteger, 15, ++/*226349*/ OPC_CheckType, MVT::i32, ++/*226351*/ OPC_MoveParent, ++/*226352*/ OPC_CheckType, MVT::v16i16, ++/*226354*/ OPC_MoveParent, ++/*226355*/ OPC_MoveParent, ++/*226356*/ OPC_MoveParent, ++/*226357*/ OPC_MoveChild1, ++/*226358*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*226361*/ OPC_CheckChild0Integer, 1, ++/*226363*/ OPC_CheckChild0Type, MVT::i32, ++/*226365*/ OPC_CheckChild1Integer, 1, ++/*226367*/ OPC_CheckChild1Type, MVT::i32, ++/*226369*/ OPC_CheckChild2Integer, 1, ++/*226371*/ OPC_CheckChild2Type, MVT::i32, ++/*226373*/ OPC_CheckChild3Integer, 1, ++/*226375*/ OPC_CheckChild3Type, MVT::i32, ++/*226377*/ OPC_CheckChild4Integer, 1, ++/*226379*/ OPC_CheckChild4Type, MVT::i32, ++/*226381*/ OPC_MoveChild5, ++/*226382*/ OPC_CheckInteger, 1, ++/*226384*/ OPC_CheckType, MVT::i32, ++/*226386*/ OPC_MoveParent, ++/*226387*/ OPC_MoveChild6, ++/*226388*/ OPC_CheckInteger, 1, ++/*226390*/ OPC_CheckType, MVT::i32, ++/*226392*/ OPC_MoveParent, ++/*226393*/ OPC_MoveChild7, ++/*226394*/ OPC_CheckInteger, 1, ++/*226396*/ OPC_CheckType, MVT::i32, ++/*226398*/ OPC_MoveParent, ++/*226399*/ OPC_MoveChild, 8, ++/*226401*/ OPC_CheckInteger, 1, ++/*226403*/ OPC_CheckType, MVT::i32, ++/*226405*/ OPC_MoveParent, ++/*226406*/ OPC_MoveChild, 9, ++/*226408*/ OPC_CheckInteger, 1, ++/*226410*/ OPC_CheckType, MVT::i32, ++/*226412*/ OPC_MoveParent, ++/*226413*/ OPC_MoveChild, 10, ++/*226415*/ OPC_CheckInteger, 1, ++/*226417*/ OPC_CheckType, MVT::i32, ++/*226419*/ OPC_MoveParent, ++/*226420*/ OPC_MoveChild, 11, ++/*226422*/ OPC_CheckInteger, 1, ++/*226424*/ OPC_CheckType, MVT::i32, ++/*226426*/ OPC_MoveParent, ++/*226427*/ OPC_MoveChild, 12, ++/*226429*/ OPC_CheckInteger, 1, ++/*226431*/ OPC_CheckType, MVT::i32, ++/*226433*/ OPC_MoveParent, ++/*226434*/ OPC_MoveChild, 13, ++/*226436*/ OPC_CheckInteger, 1, ++/*226438*/ OPC_CheckType, MVT::i32, ++/*226440*/ OPC_MoveParent, ++/*226441*/ OPC_MoveChild, 14, ++/*226443*/ OPC_CheckInteger, 1, ++/*226445*/ OPC_CheckType, MVT::i32, ++/*226447*/ OPC_MoveParent, ++/*226448*/ OPC_MoveChild, 15, ++/*226450*/ OPC_CheckInteger, 1, ++/*226452*/ OPC_CheckType, MVT::i32, ++/*226454*/ OPC_MoveParent, ++/*226455*/ OPC_CheckType, MVT::v16i16, ++/*226457*/ OPC_MoveParent, ++/*226458*/ OPC_CheckType, MVT::v16i16, ++/*226460*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*226462*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a), LASX256H:{ *:[v16i16] }:$b), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*226470*/ 0, /*End of Scope*/ ++/*226471*/ 0, /*End of Scope*/ ++/*226472*/ /*Scope*/ 78|128,30/*3918*/, /*->230392*/ ++/*226474*/ OPC_RecordChild0, // #0 = $a ++/*226475*/ OPC_MoveChild1, ++/*226476*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*226479*/ OPC_CheckChild0Integer, 1, ++/*226481*/ OPC_CheckChild0Type, MVT::i32, ++/*226483*/ OPC_CheckChild1Integer, 1, ++/*226485*/ OPC_CheckChild1Type, MVT::i32, ++/*226487*/ OPC_CheckChild2Integer, 1, ++/*226489*/ OPC_CheckChild2Type, MVT::i32, ++/*226491*/ OPC_CheckChild3Integer, 1, ++/*226493*/ OPC_CheckChild3Type, MVT::i32, ++/*226495*/ OPC_CheckChild4Integer, 1, ++/*226497*/ OPC_CheckChild4Type, MVT::i32, ++/*226499*/ OPC_MoveChild5, ++/*226500*/ OPC_CheckInteger, 1, ++/*226502*/ OPC_CheckType, MVT::i32, ++/*226504*/ OPC_MoveParent, ++/*226505*/ OPC_MoveChild6, ++/*226506*/ OPC_CheckInteger, 1, ++/*226508*/ OPC_CheckType, MVT::i32, ++/*226510*/ OPC_MoveParent, ++/*226511*/ OPC_MoveChild7, ++/*226512*/ OPC_CheckInteger, 1, ++/*226514*/ OPC_CheckType, MVT::i32, ++/*226516*/ OPC_MoveParent, ++/*226517*/ OPC_MoveChild, 8, ++/*226519*/ OPC_CheckInteger, 1, ++/*226521*/ OPC_CheckType, MVT::i32, ++/*226523*/ OPC_MoveParent, ++/*226524*/ OPC_MoveChild, 9, ++/*226526*/ OPC_CheckInteger, 1, ++/*226528*/ OPC_CheckType, MVT::i32, ++/*226530*/ OPC_MoveParent, ++/*226531*/ OPC_MoveChild, 10, ++/*226533*/ OPC_CheckInteger, 1, ++/*226535*/ OPC_CheckType, MVT::i32, ++/*226537*/ OPC_MoveParent, ++/*226538*/ OPC_MoveChild, 11, ++/*226540*/ OPC_CheckInteger, 1, ++/*226542*/ OPC_CheckType, MVT::i32, ++/*226544*/ OPC_MoveParent, ++/*226545*/ OPC_MoveChild, 12, ++/*226547*/ OPC_CheckInteger, 1, ++/*226549*/ OPC_CheckType, MVT::i32, ++/*226551*/ OPC_MoveParent, ++/*226552*/ OPC_MoveChild, 13, ++/*226554*/ OPC_CheckInteger, 1, ++/*226556*/ OPC_CheckType, MVT::i32, ++/*226558*/ OPC_MoveParent, ++/*226559*/ OPC_MoveChild, 14, ++/*226561*/ OPC_CheckInteger, 1, ++/*226563*/ OPC_CheckType, MVT::i32, ++/*226565*/ OPC_MoveParent, ++/*226566*/ OPC_MoveChild, 15, ++/*226568*/ OPC_CheckInteger, 1, ++/*226570*/ OPC_CheckType, MVT::i32, ++/*226572*/ OPC_MoveParent, ++/*226573*/ OPC_MoveParent, ++/*226574*/ OPC_MoveParent, ++/*226575*/ OPC_RecordChild1, // #1 = $b ++/*226576*/ OPC_MoveParent, ++/*226577*/ OPC_MoveChild1, ++/*226578*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*226581*/ OPC_MoveChild0, ++/*226582*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*226585*/ OPC_Scope, 24|128,15/*1944*/, /*->228532*/ // 4 children in Scope ++/*226588*/ OPC_MoveChild0, ++/*226589*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*226592*/ OPC_Scope, 65|128,2/*321*/, /*->226916*/ // 6 children in Scope ++/*226595*/ OPC_MoveChild0, ++/*226596*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*226599*/ OPC_CheckChild0Integer, 1, ++/*226601*/ OPC_CheckChild0Type, MVT::i32, ++/*226603*/ OPC_CheckChild1Integer, 1, ++/*226605*/ OPC_CheckChild1Type, MVT::i32, ++/*226607*/ OPC_CheckChild2Integer, 1, ++/*226609*/ OPC_CheckChild2Type, MVT::i32, ++/*226611*/ OPC_CheckChild3Integer, 1, ++/*226613*/ OPC_CheckChild3Type, MVT::i32, ++/*226615*/ OPC_CheckChild4Integer, 1, ++/*226617*/ OPC_CheckChild4Type, MVT::i32, ++/*226619*/ OPC_MoveChild5, ++/*226620*/ OPC_CheckInteger, 1, ++/*226622*/ OPC_CheckType, MVT::i32, ++/*226624*/ OPC_MoveParent, ++/*226625*/ OPC_MoveChild6, ++/*226626*/ OPC_CheckInteger, 1, ++/*226628*/ OPC_CheckType, MVT::i32, ++/*226630*/ OPC_MoveParent, ++/*226631*/ OPC_MoveChild7, ++/*226632*/ OPC_CheckInteger, 1, ++/*226634*/ OPC_CheckType, MVT::i32, ++/*226636*/ OPC_MoveParent, ++/*226637*/ OPC_MoveChild, 8, ++/*226639*/ OPC_CheckInteger, 1, ++/*226641*/ OPC_CheckType, MVT::i32, ++/*226643*/ OPC_MoveParent, ++/*226644*/ OPC_MoveChild, 9, ++/*226646*/ OPC_CheckInteger, 1, ++/*226648*/ OPC_CheckType, MVT::i32, ++/*226650*/ OPC_MoveParent, ++/*226651*/ OPC_MoveChild, 10, ++/*226653*/ OPC_CheckInteger, 1, ++/*226655*/ OPC_CheckType, MVT::i32, ++/*226657*/ OPC_MoveParent, ++/*226658*/ OPC_MoveChild, 11, ++/*226660*/ OPC_CheckInteger, 1, ++/*226662*/ OPC_CheckType, MVT::i32, ++/*226664*/ OPC_MoveParent, ++/*226665*/ OPC_MoveChild, 12, ++/*226667*/ OPC_CheckInteger, 1, ++/*226669*/ OPC_CheckType, MVT::i32, ++/*226671*/ OPC_MoveParent, ++/*226672*/ OPC_MoveChild, 13, ++/*226674*/ OPC_CheckInteger, 1, ++/*226676*/ OPC_CheckType, MVT::i32, ++/*226678*/ OPC_MoveParent, ++/*226679*/ OPC_MoveChild, 14, ++/*226681*/ OPC_CheckInteger, 1, ++/*226683*/ OPC_CheckType, MVT::i32, ++/*226685*/ OPC_MoveParent, ++/*226686*/ OPC_MoveChild, 15, ++/*226688*/ OPC_CheckInteger, 1, ++/*226690*/ OPC_CheckType, MVT::i32, ++/*226692*/ OPC_MoveParent, ++/*226693*/ OPC_MoveParent, ++/*226694*/ OPC_CheckChild1Same, 0, ++/*226696*/ OPC_MoveParent, ++/*226697*/ OPC_CheckChild1Same, 1, ++/*226699*/ OPC_MoveParent, ++/*226700*/ OPC_MoveChild1, ++/*226701*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*226704*/ OPC_CheckChild0Integer, 15, ++/*226706*/ OPC_CheckChild0Type, MVT::i32, ++/*226708*/ OPC_CheckChild1Integer, 15, ++/*226710*/ OPC_CheckChild1Type, MVT::i32, ++/*226712*/ OPC_CheckChild2Integer, 15, ++/*226714*/ OPC_CheckChild2Type, MVT::i32, ++/*226716*/ OPC_CheckChild3Integer, 15, ++/*226718*/ OPC_CheckChild3Type, MVT::i32, ++/*226720*/ OPC_CheckChild4Integer, 15, ++/*226722*/ OPC_CheckChild4Type, MVT::i32, ++/*226724*/ OPC_MoveChild5, ++/*226725*/ OPC_CheckInteger, 15, ++/*226727*/ OPC_CheckType, MVT::i32, ++/*226729*/ OPC_MoveParent, ++/*226730*/ OPC_MoveChild6, ++/*226731*/ OPC_CheckInteger, 15, ++/*226733*/ OPC_CheckType, MVT::i32, ++/*226735*/ OPC_MoveParent, ++/*226736*/ OPC_MoveChild7, ++/*226737*/ OPC_CheckInteger, 15, ++/*226739*/ OPC_CheckType, MVT::i32, ++/*226741*/ OPC_MoveParent, ++/*226742*/ OPC_MoveChild, 8, ++/*226744*/ OPC_CheckInteger, 15, ++/*226746*/ OPC_CheckType, MVT::i32, ++/*226748*/ OPC_MoveParent, ++/*226749*/ OPC_MoveChild, 9, ++/*226751*/ OPC_CheckInteger, 15, ++/*226753*/ OPC_CheckType, MVT::i32, ++/*226755*/ OPC_MoveParent, ++/*226756*/ OPC_MoveChild, 10, ++/*226758*/ OPC_CheckInteger, 15, ++/*226760*/ OPC_CheckType, MVT::i32, ++/*226762*/ OPC_MoveParent, ++/*226763*/ OPC_MoveChild, 11, ++/*226765*/ OPC_CheckInteger, 15, ++/*226767*/ OPC_CheckType, MVT::i32, ++/*226769*/ OPC_MoveParent, ++/*226770*/ OPC_MoveChild, 12, ++/*226772*/ OPC_CheckInteger, 15, ++/*226774*/ OPC_CheckType, MVT::i32, ++/*226776*/ OPC_MoveParent, ++/*226777*/ OPC_MoveChild, 13, ++/*226779*/ OPC_CheckInteger, 15, ++/*226781*/ OPC_CheckType, MVT::i32, ++/*226783*/ OPC_MoveParent, ++/*226784*/ OPC_MoveChild, 14, ++/*226786*/ OPC_CheckInteger, 15, ++/*226788*/ OPC_CheckType, MVT::i32, ++/*226790*/ OPC_MoveParent, ++/*226791*/ OPC_MoveChild, 15, ++/*226793*/ OPC_CheckInteger, 15, ++/*226795*/ OPC_CheckType, MVT::i32, ++/*226797*/ OPC_MoveParent, ++/*226798*/ OPC_CheckType, MVT::v16i16, ++/*226800*/ OPC_MoveParent, ++/*226801*/ OPC_MoveParent, ++/*226802*/ OPC_MoveParent, ++/*226803*/ OPC_MoveChild1, ++/*226804*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*226807*/ OPC_CheckChild0Integer, 1, ++/*226809*/ OPC_CheckChild0Type, MVT::i32, ++/*226811*/ OPC_CheckChild1Integer, 1, ++/*226813*/ OPC_CheckChild1Type, MVT::i32, ++/*226815*/ OPC_CheckChild2Integer, 1, ++/*226817*/ OPC_CheckChild2Type, MVT::i32, ++/*226819*/ OPC_CheckChild3Integer, 1, ++/*226821*/ OPC_CheckChild3Type, MVT::i32, ++/*226823*/ OPC_CheckChild4Integer, 1, ++/*226825*/ OPC_CheckChild4Type, MVT::i32, ++/*226827*/ OPC_MoveChild5, ++/*226828*/ OPC_CheckInteger, 1, ++/*226830*/ OPC_CheckType, MVT::i32, ++/*226832*/ OPC_MoveParent, ++/*226833*/ OPC_MoveChild6, ++/*226834*/ OPC_CheckInteger, 1, ++/*226836*/ OPC_CheckType, MVT::i32, ++/*226838*/ OPC_MoveParent, ++/*226839*/ OPC_MoveChild7, ++/*226840*/ OPC_CheckInteger, 1, ++/*226842*/ OPC_CheckType, MVT::i32, ++/*226844*/ OPC_MoveParent, ++/*226845*/ OPC_MoveChild, 8, ++/*226847*/ OPC_CheckInteger, 1, ++/*226849*/ OPC_CheckType, MVT::i32, ++/*226851*/ OPC_MoveParent, ++/*226852*/ OPC_MoveChild, 9, ++/*226854*/ OPC_CheckInteger, 1, ++/*226856*/ OPC_CheckType, MVT::i32, ++/*226858*/ OPC_MoveParent, ++/*226859*/ OPC_MoveChild, 10, ++/*226861*/ OPC_CheckInteger, 1, ++/*226863*/ OPC_CheckType, MVT::i32, ++/*226865*/ OPC_MoveParent, ++/*226866*/ OPC_MoveChild, 11, ++/*226868*/ OPC_CheckInteger, 1, ++/*226870*/ OPC_CheckType, MVT::i32, ++/*226872*/ OPC_MoveParent, ++/*226873*/ OPC_MoveChild, 12, ++/*226875*/ OPC_CheckInteger, 1, ++/*226877*/ OPC_CheckType, MVT::i32, ++/*226879*/ OPC_MoveParent, ++/*226880*/ OPC_MoveChild, 13, ++/*226882*/ OPC_CheckInteger, 1, ++/*226884*/ OPC_CheckType, MVT::i32, ++/*226886*/ OPC_MoveParent, ++/*226887*/ OPC_MoveChild, 14, ++/*226889*/ OPC_CheckInteger, 1, ++/*226891*/ OPC_CheckType, MVT::i32, ++/*226893*/ OPC_MoveParent, ++/*226894*/ OPC_MoveChild, 15, ++/*226896*/ OPC_CheckInteger, 1, ++/*226898*/ OPC_CheckType, MVT::i32, ++/*226900*/ OPC_MoveParent, ++/*226901*/ OPC_CheckType, MVT::v16i16, ++/*226903*/ OPC_MoveParent, ++/*226904*/ OPC_CheckType, MVT::v16i16, ++/*226906*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*226908*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$b), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a), LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*226916*/ /*Scope*/ 65|128,2/*321*/, /*->227239*/ ++/*226918*/ OPC_CheckChild0Same, 0, ++/*226920*/ OPC_MoveChild1, ++/*226921*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*226924*/ OPC_CheckChild0Integer, 1, ++/*226926*/ OPC_CheckChild0Type, MVT::i32, ++/*226928*/ OPC_CheckChild1Integer, 1, ++/*226930*/ OPC_CheckChild1Type, MVT::i32, ++/*226932*/ OPC_CheckChild2Integer, 1, ++/*226934*/ OPC_CheckChild2Type, MVT::i32, ++/*226936*/ OPC_CheckChild3Integer, 1, ++/*226938*/ OPC_CheckChild3Type, MVT::i32, ++/*226940*/ OPC_CheckChild4Integer, 1, ++/*226942*/ OPC_CheckChild4Type, MVT::i32, ++/*226944*/ OPC_MoveChild5, ++/*226945*/ OPC_CheckInteger, 1, ++/*226947*/ OPC_CheckType, MVT::i32, ++/*226949*/ OPC_MoveParent, ++/*226950*/ OPC_MoveChild6, ++/*226951*/ OPC_CheckInteger, 1, ++/*226953*/ OPC_CheckType, MVT::i32, ++/*226955*/ OPC_MoveParent, ++/*226956*/ OPC_MoveChild7, ++/*226957*/ OPC_CheckInteger, 1, ++/*226959*/ OPC_CheckType, MVT::i32, ++/*226961*/ OPC_MoveParent, ++/*226962*/ OPC_MoveChild, 8, ++/*226964*/ OPC_CheckInteger, 1, ++/*226966*/ OPC_CheckType, MVT::i32, ++/*226968*/ OPC_MoveParent, ++/*226969*/ OPC_MoveChild, 9, ++/*226971*/ OPC_CheckInteger, 1, ++/*226973*/ OPC_CheckType, MVT::i32, ++/*226975*/ OPC_MoveParent, ++/*226976*/ OPC_MoveChild, 10, ++/*226978*/ OPC_CheckInteger, 1, ++/*226980*/ OPC_CheckType, MVT::i32, ++/*226982*/ OPC_MoveParent, ++/*226983*/ OPC_MoveChild, 11, ++/*226985*/ OPC_CheckInteger, 1, ++/*226987*/ OPC_CheckType, MVT::i32, ++/*226989*/ OPC_MoveParent, ++/*226990*/ OPC_MoveChild, 12, ++/*226992*/ OPC_CheckInteger, 1, ++/*226994*/ OPC_CheckType, MVT::i32, ++/*226996*/ OPC_MoveParent, ++/*226997*/ OPC_MoveChild, 13, ++/*226999*/ OPC_CheckInteger, 1, ++/*227001*/ OPC_CheckType, MVT::i32, ++/*227003*/ OPC_MoveParent, ++/*227004*/ OPC_MoveChild, 14, ++/*227006*/ OPC_CheckInteger, 1, ++/*227008*/ OPC_CheckType, MVT::i32, ++/*227010*/ OPC_MoveParent, ++/*227011*/ OPC_MoveChild, 15, ++/*227013*/ OPC_CheckInteger, 1, ++/*227015*/ OPC_CheckType, MVT::i32, ++/*227017*/ OPC_MoveParent, ++/*227018*/ OPC_MoveParent, ++/*227019*/ OPC_MoveParent, ++/*227020*/ OPC_CheckChild1Same, 1, ++/*227022*/ OPC_MoveParent, ++/*227023*/ OPC_MoveChild1, ++/*227024*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*227027*/ OPC_CheckChild0Integer, 15, ++/*227029*/ OPC_CheckChild0Type, MVT::i32, ++/*227031*/ OPC_CheckChild1Integer, 15, ++/*227033*/ OPC_CheckChild1Type, MVT::i32, ++/*227035*/ OPC_CheckChild2Integer, 15, ++/*227037*/ OPC_CheckChild2Type, MVT::i32, ++/*227039*/ OPC_CheckChild3Integer, 15, ++/*227041*/ OPC_CheckChild3Type, MVT::i32, ++/*227043*/ OPC_CheckChild4Integer, 15, ++/*227045*/ OPC_CheckChild4Type, MVT::i32, ++/*227047*/ OPC_MoveChild5, ++/*227048*/ OPC_CheckInteger, 15, ++/*227050*/ OPC_CheckType, MVT::i32, ++/*227052*/ OPC_MoveParent, ++/*227053*/ OPC_MoveChild6, ++/*227054*/ OPC_CheckInteger, 15, ++/*227056*/ OPC_CheckType, MVT::i32, ++/*227058*/ OPC_MoveParent, ++/*227059*/ OPC_MoveChild7, ++/*227060*/ OPC_CheckInteger, 15, ++/*227062*/ OPC_CheckType, MVT::i32, ++/*227064*/ OPC_MoveParent, ++/*227065*/ OPC_MoveChild, 8, ++/*227067*/ OPC_CheckInteger, 15, ++/*227069*/ OPC_CheckType, MVT::i32, ++/*227071*/ OPC_MoveParent, ++/*227072*/ OPC_MoveChild, 9, ++/*227074*/ OPC_CheckInteger, 15, ++/*227076*/ OPC_CheckType, MVT::i32, ++/*227078*/ OPC_MoveParent, ++/*227079*/ OPC_MoveChild, 10, ++/*227081*/ OPC_CheckInteger, 15, ++/*227083*/ OPC_CheckType, MVT::i32, ++/*227085*/ OPC_MoveParent, ++/*227086*/ OPC_MoveChild, 11, ++/*227088*/ OPC_CheckInteger, 15, ++/*227090*/ OPC_CheckType, MVT::i32, ++/*227092*/ OPC_MoveParent, ++/*227093*/ OPC_MoveChild, 12, ++/*227095*/ OPC_CheckInteger, 15, ++/*227097*/ OPC_CheckType, MVT::i32, ++/*227099*/ OPC_MoveParent, ++/*227100*/ OPC_MoveChild, 13, ++/*227102*/ OPC_CheckInteger, 15, ++/*227104*/ OPC_CheckType, MVT::i32, ++/*227106*/ OPC_MoveParent, ++/*227107*/ OPC_MoveChild, 14, ++/*227109*/ OPC_CheckInteger, 15, ++/*227111*/ OPC_CheckType, MVT::i32, ++/*227113*/ OPC_MoveParent, ++/*227114*/ OPC_MoveChild, 15, ++/*227116*/ OPC_CheckInteger, 15, ++/*227118*/ OPC_CheckType, MVT::i32, ++/*227120*/ OPC_MoveParent, ++/*227121*/ OPC_CheckType, MVT::v16i16, ++/*227123*/ OPC_MoveParent, ++/*227124*/ OPC_MoveParent, ++/*227125*/ OPC_MoveParent, ++/*227126*/ OPC_MoveChild1, ++/*227127*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*227130*/ OPC_CheckChild0Integer, 1, ++/*227132*/ OPC_CheckChild0Type, MVT::i32, ++/*227134*/ OPC_CheckChild1Integer, 1, ++/*227136*/ OPC_CheckChild1Type, MVT::i32, ++/*227138*/ OPC_CheckChild2Integer, 1, ++/*227140*/ OPC_CheckChild2Type, MVT::i32, ++/*227142*/ OPC_CheckChild3Integer, 1, ++/*227144*/ OPC_CheckChild3Type, MVT::i32, ++/*227146*/ OPC_CheckChild4Integer, 1, ++/*227148*/ OPC_CheckChild4Type, MVT::i32, ++/*227150*/ OPC_MoveChild5, ++/*227151*/ OPC_CheckInteger, 1, ++/*227153*/ OPC_CheckType, MVT::i32, ++/*227155*/ OPC_MoveParent, ++/*227156*/ OPC_MoveChild6, ++/*227157*/ OPC_CheckInteger, 1, ++/*227159*/ OPC_CheckType, MVT::i32, ++/*227161*/ OPC_MoveParent, ++/*227162*/ OPC_MoveChild7, ++/*227163*/ OPC_CheckInteger, 1, ++/*227165*/ OPC_CheckType, MVT::i32, ++/*227167*/ OPC_MoveParent, ++/*227168*/ OPC_MoveChild, 8, ++/*227170*/ OPC_CheckInteger, 1, ++/*227172*/ OPC_CheckType, MVT::i32, ++/*227174*/ OPC_MoveParent, ++/*227175*/ OPC_MoveChild, 9, ++/*227177*/ OPC_CheckInteger, 1, ++/*227179*/ OPC_CheckType, MVT::i32, ++/*227181*/ OPC_MoveParent, ++/*227182*/ OPC_MoveChild, 10, ++/*227184*/ OPC_CheckInteger, 1, ++/*227186*/ OPC_CheckType, MVT::i32, ++/*227188*/ OPC_MoveParent, ++/*227189*/ OPC_MoveChild, 11, ++/*227191*/ OPC_CheckInteger, 1, ++/*227193*/ OPC_CheckType, MVT::i32, ++/*227195*/ OPC_MoveParent, ++/*227196*/ OPC_MoveChild, 12, ++/*227198*/ OPC_CheckInteger, 1, ++/*227200*/ OPC_CheckType, MVT::i32, ++/*227202*/ OPC_MoveParent, ++/*227203*/ OPC_MoveChild, 13, ++/*227205*/ OPC_CheckInteger, 1, ++/*227207*/ OPC_CheckType, MVT::i32, ++/*227209*/ OPC_MoveParent, ++/*227210*/ OPC_MoveChild, 14, ++/*227212*/ OPC_CheckInteger, 1, ++/*227214*/ OPC_CheckType, MVT::i32, ++/*227216*/ OPC_MoveParent, ++/*227217*/ OPC_MoveChild, 15, ++/*227219*/ OPC_CheckInteger, 1, ++/*227221*/ OPC_CheckType, MVT::i32, ++/*227223*/ OPC_MoveParent, ++/*227224*/ OPC_CheckType, MVT::v16i16, ++/*227226*/ OPC_MoveParent, ++/*227227*/ OPC_CheckType, MVT::v16i16, ++/*227229*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*227231*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$b), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*227239*/ /*Scope*/ 65|128,2/*321*/, /*->227562*/ ++/*227241*/ OPC_MoveChild0, ++/*227242*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*227245*/ OPC_CheckChild0Integer, 1, ++/*227247*/ OPC_CheckChild0Type, MVT::i32, ++/*227249*/ OPC_CheckChild1Integer, 1, ++/*227251*/ OPC_CheckChild1Type, MVT::i32, ++/*227253*/ OPC_CheckChild2Integer, 1, ++/*227255*/ OPC_CheckChild2Type, MVT::i32, ++/*227257*/ OPC_CheckChild3Integer, 1, ++/*227259*/ OPC_CheckChild3Type, MVT::i32, ++/*227261*/ OPC_CheckChild4Integer, 1, ++/*227263*/ OPC_CheckChild4Type, MVT::i32, ++/*227265*/ OPC_MoveChild5, ++/*227266*/ OPC_CheckInteger, 1, ++/*227268*/ OPC_CheckType, MVT::i32, ++/*227270*/ OPC_MoveParent, ++/*227271*/ OPC_MoveChild6, ++/*227272*/ OPC_CheckInteger, 1, ++/*227274*/ OPC_CheckType, MVT::i32, ++/*227276*/ OPC_MoveParent, ++/*227277*/ OPC_MoveChild7, ++/*227278*/ OPC_CheckInteger, 1, ++/*227280*/ OPC_CheckType, MVT::i32, ++/*227282*/ OPC_MoveParent, ++/*227283*/ OPC_MoveChild, 8, ++/*227285*/ OPC_CheckInteger, 1, ++/*227287*/ OPC_CheckType, MVT::i32, ++/*227289*/ OPC_MoveParent, ++/*227290*/ OPC_MoveChild, 9, ++/*227292*/ OPC_CheckInteger, 1, ++/*227294*/ OPC_CheckType, MVT::i32, ++/*227296*/ OPC_MoveParent, ++/*227297*/ OPC_MoveChild, 10, ++/*227299*/ OPC_CheckInteger, 1, ++/*227301*/ OPC_CheckType, MVT::i32, ++/*227303*/ OPC_MoveParent, ++/*227304*/ OPC_MoveChild, 11, ++/*227306*/ OPC_CheckInteger, 1, ++/*227308*/ OPC_CheckType, MVT::i32, ++/*227310*/ OPC_MoveParent, ++/*227311*/ OPC_MoveChild, 12, ++/*227313*/ OPC_CheckInteger, 1, ++/*227315*/ OPC_CheckType, MVT::i32, ++/*227317*/ OPC_MoveParent, ++/*227318*/ OPC_MoveChild, 13, ++/*227320*/ OPC_CheckInteger, 1, ++/*227322*/ OPC_CheckType, MVT::i32, ++/*227324*/ OPC_MoveParent, ++/*227325*/ OPC_MoveChild, 14, ++/*227327*/ OPC_CheckInteger, 1, ++/*227329*/ OPC_CheckType, MVT::i32, ++/*227331*/ OPC_MoveParent, ++/*227332*/ OPC_MoveChild, 15, ++/*227334*/ OPC_CheckInteger, 1, ++/*227336*/ OPC_CheckType, MVT::i32, ++/*227338*/ OPC_MoveParent, ++/*227339*/ OPC_MoveParent, ++/*227340*/ OPC_CheckChild1Same, 1, ++/*227342*/ OPC_MoveParent, ++/*227343*/ OPC_CheckChild1Same, 0, ++/*227345*/ OPC_MoveParent, ++/*227346*/ OPC_MoveChild1, ++/*227347*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*227350*/ OPC_CheckChild0Integer, 15, ++/*227352*/ OPC_CheckChild0Type, MVT::i32, ++/*227354*/ OPC_CheckChild1Integer, 15, ++/*227356*/ OPC_CheckChild1Type, MVT::i32, ++/*227358*/ OPC_CheckChild2Integer, 15, ++/*227360*/ OPC_CheckChild2Type, MVT::i32, ++/*227362*/ OPC_CheckChild3Integer, 15, ++/*227364*/ OPC_CheckChild3Type, MVT::i32, ++/*227366*/ OPC_CheckChild4Integer, 15, ++/*227368*/ OPC_CheckChild4Type, MVT::i32, ++/*227370*/ OPC_MoveChild5, ++/*227371*/ OPC_CheckInteger, 15, ++/*227373*/ OPC_CheckType, MVT::i32, ++/*227375*/ OPC_MoveParent, ++/*227376*/ OPC_MoveChild6, ++/*227377*/ OPC_CheckInteger, 15, ++/*227379*/ OPC_CheckType, MVT::i32, ++/*227381*/ OPC_MoveParent, ++/*227382*/ OPC_MoveChild7, ++/*227383*/ OPC_CheckInteger, 15, ++/*227385*/ OPC_CheckType, MVT::i32, ++/*227387*/ OPC_MoveParent, ++/*227388*/ OPC_MoveChild, 8, ++/*227390*/ OPC_CheckInteger, 15, ++/*227392*/ OPC_CheckType, MVT::i32, ++/*227394*/ OPC_MoveParent, ++/*227395*/ OPC_MoveChild, 9, ++/*227397*/ OPC_CheckInteger, 15, ++/*227399*/ OPC_CheckType, MVT::i32, ++/*227401*/ OPC_MoveParent, ++/*227402*/ OPC_MoveChild, 10, ++/*227404*/ OPC_CheckInteger, 15, ++/*227406*/ OPC_CheckType, MVT::i32, ++/*227408*/ OPC_MoveParent, ++/*227409*/ OPC_MoveChild, 11, ++/*227411*/ OPC_CheckInteger, 15, ++/*227413*/ OPC_CheckType, MVT::i32, ++/*227415*/ OPC_MoveParent, ++/*227416*/ OPC_MoveChild, 12, ++/*227418*/ OPC_CheckInteger, 15, ++/*227420*/ OPC_CheckType, MVT::i32, ++/*227422*/ OPC_MoveParent, ++/*227423*/ OPC_MoveChild, 13, ++/*227425*/ OPC_CheckInteger, 15, ++/*227427*/ OPC_CheckType, MVT::i32, ++/*227429*/ OPC_MoveParent, ++/*227430*/ OPC_MoveChild, 14, ++/*227432*/ OPC_CheckInteger, 15, ++/*227434*/ OPC_CheckType, MVT::i32, ++/*227436*/ OPC_MoveParent, ++/*227437*/ OPC_MoveChild, 15, ++/*227439*/ OPC_CheckInteger, 15, ++/*227441*/ OPC_CheckType, MVT::i32, ++/*227443*/ OPC_MoveParent, ++/*227444*/ OPC_CheckType, MVT::v16i16, ++/*227446*/ OPC_MoveParent, ++/*227447*/ OPC_MoveParent, ++/*227448*/ OPC_MoveParent, ++/*227449*/ OPC_MoveChild1, ++/*227450*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*227453*/ OPC_CheckChild0Integer, 1, ++/*227455*/ OPC_CheckChild0Type, MVT::i32, ++/*227457*/ OPC_CheckChild1Integer, 1, ++/*227459*/ OPC_CheckChild1Type, MVT::i32, ++/*227461*/ OPC_CheckChild2Integer, 1, ++/*227463*/ OPC_CheckChild2Type, MVT::i32, ++/*227465*/ OPC_CheckChild3Integer, 1, ++/*227467*/ OPC_CheckChild3Type, MVT::i32, ++/*227469*/ OPC_CheckChild4Integer, 1, ++/*227471*/ OPC_CheckChild4Type, MVT::i32, ++/*227473*/ OPC_MoveChild5, ++/*227474*/ OPC_CheckInteger, 1, ++/*227476*/ OPC_CheckType, MVT::i32, ++/*227478*/ OPC_MoveParent, ++/*227479*/ OPC_MoveChild6, ++/*227480*/ OPC_CheckInteger, 1, ++/*227482*/ OPC_CheckType, MVT::i32, ++/*227484*/ OPC_MoveParent, ++/*227485*/ OPC_MoveChild7, ++/*227486*/ OPC_CheckInteger, 1, ++/*227488*/ OPC_CheckType, MVT::i32, ++/*227490*/ OPC_MoveParent, ++/*227491*/ OPC_MoveChild, 8, ++/*227493*/ OPC_CheckInteger, 1, ++/*227495*/ OPC_CheckType, MVT::i32, ++/*227497*/ OPC_MoveParent, ++/*227498*/ OPC_MoveChild, 9, ++/*227500*/ OPC_CheckInteger, 1, ++/*227502*/ OPC_CheckType, MVT::i32, ++/*227504*/ OPC_MoveParent, ++/*227505*/ OPC_MoveChild, 10, ++/*227507*/ OPC_CheckInteger, 1, ++/*227509*/ OPC_CheckType, MVT::i32, ++/*227511*/ OPC_MoveParent, ++/*227512*/ OPC_MoveChild, 11, ++/*227514*/ OPC_CheckInteger, 1, ++/*227516*/ OPC_CheckType, MVT::i32, ++/*227518*/ OPC_MoveParent, ++/*227519*/ OPC_MoveChild, 12, ++/*227521*/ OPC_CheckInteger, 1, ++/*227523*/ OPC_CheckType, MVT::i32, ++/*227525*/ OPC_MoveParent, ++/*227526*/ OPC_MoveChild, 13, ++/*227528*/ OPC_CheckInteger, 1, ++/*227530*/ OPC_CheckType, MVT::i32, ++/*227532*/ OPC_MoveParent, ++/*227533*/ OPC_MoveChild, 14, ++/*227535*/ OPC_CheckInteger, 1, ++/*227537*/ OPC_CheckType, MVT::i32, ++/*227539*/ OPC_MoveParent, ++/*227540*/ OPC_MoveChild, 15, ++/*227542*/ OPC_CheckInteger, 1, ++/*227544*/ OPC_CheckType, MVT::i32, ++/*227546*/ OPC_MoveParent, ++/*227547*/ OPC_CheckType, MVT::v16i16, ++/*227549*/ OPC_MoveParent, ++/*227550*/ OPC_CheckType, MVT::v16i16, ++/*227552*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*227554*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$b), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b), LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*227562*/ /*Scope*/ 65|128,2/*321*/, /*->227885*/ ++/*227564*/ OPC_CheckChild0Same, 1, ++/*227566*/ OPC_MoveChild1, ++/*227567*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*227570*/ OPC_CheckChild0Integer, 1, ++/*227572*/ OPC_CheckChild0Type, MVT::i32, ++/*227574*/ OPC_CheckChild1Integer, 1, ++/*227576*/ OPC_CheckChild1Type, MVT::i32, ++/*227578*/ OPC_CheckChild2Integer, 1, ++/*227580*/ OPC_CheckChild2Type, MVT::i32, ++/*227582*/ OPC_CheckChild3Integer, 1, ++/*227584*/ OPC_CheckChild3Type, MVT::i32, ++/*227586*/ OPC_CheckChild4Integer, 1, ++/*227588*/ OPC_CheckChild4Type, MVT::i32, ++/*227590*/ OPC_MoveChild5, ++/*227591*/ OPC_CheckInteger, 1, ++/*227593*/ OPC_CheckType, MVT::i32, ++/*227595*/ OPC_MoveParent, ++/*227596*/ OPC_MoveChild6, ++/*227597*/ OPC_CheckInteger, 1, ++/*227599*/ OPC_CheckType, MVT::i32, ++/*227601*/ OPC_MoveParent, ++/*227602*/ OPC_MoveChild7, ++/*227603*/ OPC_CheckInteger, 1, ++/*227605*/ OPC_CheckType, MVT::i32, ++/*227607*/ OPC_MoveParent, ++/*227608*/ OPC_MoveChild, 8, ++/*227610*/ OPC_CheckInteger, 1, ++/*227612*/ OPC_CheckType, MVT::i32, ++/*227614*/ OPC_MoveParent, ++/*227615*/ OPC_MoveChild, 9, ++/*227617*/ OPC_CheckInteger, 1, ++/*227619*/ OPC_CheckType, MVT::i32, ++/*227621*/ OPC_MoveParent, ++/*227622*/ OPC_MoveChild, 10, ++/*227624*/ OPC_CheckInteger, 1, ++/*227626*/ OPC_CheckType, MVT::i32, ++/*227628*/ OPC_MoveParent, ++/*227629*/ OPC_MoveChild, 11, ++/*227631*/ OPC_CheckInteger, 1, ++/*227633*/ OPC_CheckType, MVT::i32, ++/*227635*/ OPC_MoveParent, ++/*227636*/ OPC_MoveChild, 12, ++/*227638*/ OPC_CheckInteger, 1, ++/*227640*/ OPC_CheckType, MVT::i32, ++/*227642*/ OPC_MoveParent, ++/*227643*/ OPC_MoveChild, 13, ++/*227645*/ OPC_CheckInteger, 1, ++/*227647*/ OPC_CheckType, MVT::i32, ++/*227649*/ OPC_MoveParent, ++/*227650*/ OPC_MoveChild, 14, ++/*227652*/ OPC_CheckInteger, 1, ++/*227654*/ OPC_CheckType, MVT::i32, ++/*227656*/ OPC_MoveParent, ++/*227657*/ OPC_MoveChild, 15, ++/*227659*/ OPC_CheckInteger, 1, ++/*227661*/ OPC_CheckType, MVT::i32, ++/*227663*/ OPC_MoveParent, ++/*227664*/ OPC_MoveParent, ++/*227665*/ OPC_MoveParent, ++/*227666*/ OPC_CheckChild1Same, 0, ++/*227668*/ OPC_MoveParent, ++/*227669*/ OPC_MoveChild1, ++/*227670*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*227673*/ OPC_CheckChild0Integer, 15, ++/*227675*/ OPC_CheckChild0Type, MVT::i32, ++/*227677*/ OPC_CheckChild1Integer, 15, ++/*227679*/ OPC_CheckChild1Type, MVT::i32, ++/*227681*/ OPC_CheckChild2Integer, 15, ++/*227683*/ OPC_CheckChild2Type, MVT::i32, ++/*227685*/ OPC_CheckChild3Integer, 15, ++/*227687*/ OPC_CheckChild3Type, MVT::i32, ++/*227689*/ OPC_CheckChild4Integer, 15, ++/*227691*/ OPC_CheckChild4Type, MVT::i32, ++/*227693*/ OPC_MoveChild5, ++/*227694*/ OPC_CheckInteger, 15, ++/*227696*/ OPC_CheckType, MVT::i32, ++/*227698*/ OPC_MoveParent, ++/*227699*/ OPC_MoveChild6, ++/*227700*/ OPC_CheckInteger, 15, ++/*227702*/ OPC_CheckType, MVT::i32, ++/*227704*/ OPC_MoveParent, ++/*227705*/ OPC_MoveChild7, ++/*227706*/ OPC_CheckInteger, 15, ++/*227708*/ OPC_CheckType, MVT::i32, ++/*227710*/ OPC_MoveParent, ++/*227711*/ OPC_MoveChild, 8, ++/*227713*/ OPC_CheckInteger, 15, ++/*227715*/ OPC_CheckType, MVT::i32, ++/*227717*/ OPC_MoveParent, ++/*227718*/ OPC_MoveChild, 9, ++/*227720*/ OPC_CheckInteger, 15, ++/*227722*/ OPC_CheckType, MVT::i32, ++/*227724*/ OPC_MoveParent, ++/*227725*/ OPC_MoveChild, 10, ++/*227727*/ OPC_CheckInteger, 15, ++/*227729*/ OPC_CheckType, MVT::i32, ++/*227731*/ OPC_MoveParent, ++/*227732*/ OPC_MoveChild, 11, ++/*227734*/ OPC_CheckInteger, 15, ++/*227736*/ OPC_CheckType, MVT::i32, ++/*227738*/ OPC_MoveParent, ++/*227739*/ OPC_MoveChild, 12, ++/*227741*/ OPC_CheckInteger, 15, ++/*227743*/ OPC_CheckType, MVT::i32, ++/*227745*/ OPC_MoveParent, ++/*227746*/ OPC_MoveChild, 13, ++/*227748*/ OPC_CheckInteger, 15, ++/*227750*/ OPC_CheckType, MVT::i32, ++/*227752*/ OPC_MoveParent, ++/*227753*/ OPC_MoveChild, 14, ++/*227755*/ OPC_CheckInteger, 15, ++/*227757*/ OPC_CheckType, MVT::i32, ++/*227759*/ OPC_MoveParent, ++/*227760*/ OPC_MoveChild, 15, ++/*227762*/ OPC_CheckInteger, 15, ++/*227764*/ OPC_CheckType, MVT::i32, ++/*227766*/ OPC_MoveParent, ++/*227767*/ OPC_CheckType, MVT::v16i16, ++/*227769*/ OPC_MoveParent, ++/*227770*/ OPC_MoveParent, ++/*227771*/ OPC_MoveParent, ++/*227772*/ OPC_MoveChild1, ++/*227773*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*227776*/ OPC_CheckChild0Integer, 1, ++/*227778*/ OPC_CheckChild0Type, MVT::i32, ++/*227780*/ OPC_CheckChild1Integer, 1, ++/*227782*/ OPC_CheckChild1Type, MVT::i32, ++/*227784*/ OPC_CheckChild2Integer, 1, ++/*227786*/ OPC_CheckChild2Type, MVT::i32, ++/*227788*/ OPC_CheckChild3Integer, 1, ++/*227790*/ OPC_CheckChild3Type, MVT::i32, ++/*227792*/ OPC_CheckChild4Integer, 1, ++/*227794*/ OPC_CheckChild4Type, MVT::i32, ++/*227796*/ OPC_MoveChild5, ++/*227797*/ OPC_CheckInteger, 1, ++/*227799*/ OPC_CheckType, MVT::i32, ++/*227801*/ OPC_MoveParent, ++/*227802*/ OPC_MoveChild6, ++/*227803*/ OPC_CheckInteger, 1, ++/*227805*/ OPC_CheckType, MVT::i32, ++/*227807*/ OPC_MoveParent, ++/*227808*/ OPC_MoveChild7, ++/*227809*/ OPC_CheckInteger, 1, ++/*227811*/ OPC_CheckType, MVT::i32, ++/*227813*/ OPC_MoveParent, ++/*227814*/ OPC_MoveChild, 8, ++/*227816*/ OPC_CheckInteger, 1, ++/*227818*/ OPC_CheckType, MVT::i32, ++/*227820*/ OPC_MoveParent, ++/*227821*/ OPC_MoveChild, 9, ++/*227823*/ OPC_CheckInteger, 1, ++/*227825*/ OPC_CheckType, MVT::i32, ++/*227827*/ OPC_MoveParent, ++/*227828*/ OPC_MoveChild, 10, ++/*227830*/ OPC_CheckInteger, 1, ++/*227832*/ OPC_CheckType, MVT::i32, ++/*227834*/ OPC_MoveParent, ++/*227835*/ OPC_MoveChild, 11, ++/*227837*/ OPC_CheckInteger, 1, ++/*227839*/ OPC_CheckType, MVT::i32, ++/*227841*/ OPC_MoveParent, ++/*227842*/ OPC_MoveChild, 12, ++/*227844*/ OPC_CheckInteger, 1, ++/*227846*/ OPC_CheckType, MVT::i32, ++/*227848*/ OPC_MoveParent, ++/*227849*/ OPC_MoveChild, 13, ++/*227851*/ OPC_CheckInteger, 1, ++/*227853*/ OPC_CheckType, MVT::i32, ++/*227855*/ OPC_MoveParent, ++/*227856*/ OPC_MoveChild, 14, ++/*227858*/ OPC_CheckInteger, 1, ++/*227860*/ OPC_CheckType, MVT::i32, ++/*227862*/ OPC_MoveParent, ++/*227863*/ OPC_MoveChild, 15, ++/*227865*/ OPC_CheckInteger, 1, ++/*227867*/ OPC_CheckType, MVT::i32, ++/*227869*/ OPC_MoveParent, ++/*227870*/ OPC_CheckType, MVT::v16i16, ++/*227872*/ OPC_MoveParent, ++/*227873*/ OPC_CheckType, MVT::v16i16, ++/*227875*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*227877*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$b), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*227885*/ /*Scope*/ 65|128,2/*321*/, /*->228208*/ ++/*227887*/ OPC_CheckChild0Same, 0, ++/*227889*/ OPC_CheckChild1Same, 1, ++/*227891*/ OPC_MoveParent, ++/*227892*/ OPC_MoveChild1, ++/*227893*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*227896*/ OPC_CheckChild0Integer, 1, ++/*227898*/ OPC_CheckChild0Type, MVT::i32, ++/*227900*/ OPC_CheckChild1Integer, 1, ++/*227902*/ OPC_CheckChild1Type, MVT::i32, ++/*227904*/ OPC_CheckChild2Integer, 1, ++/*227906*/ OPC_CheckChild2Type, MVT::i32, ++/*227908*/ OPC_CheckChild3Integer, 1, ++/*227910*/ OPC_CheckChild3Type, MVT::i32, ++/*227912*/ OPC_CheckChild4Integer, 1, ++/*227914*/ OPC_CheckChild4Type, MVT::i32, ++/*227916*/ OPC_MoveChild5, ++/*227917*/ OPC_CheckInteger, 1, ++/*227919*/ OPC_CheckType, MVT::i32, ++/*227921*/ OPC_MoveParent, ++/*227922*/ OPC_MoveChild6, ++/*227923*/ OPC_CheckInteger, 1, ++/*227925*/ OPC_CheckType, MVT::i32, ++/*227927*/ OPC_MoveParent, ++/*227928*/ OPC_MoveChild7, ++/*227929*/ OPC_CheckInteger, 1, ++/*227931*/ OPC_CheckType, MVT::i32, ++/*227933*/ OPC_MoveParent, ++/*227934*/ OPC_MoveChild, 8, ++/*227936*/ OPC_CheckInteger, 1, ++/*227938*/ OPC_CheckType, MVT::i32, ++/*227940*/ OPC_MoveParent, ++/*227941*/ OPC_MoveChild, 9, ++/*227943*/ OPC_CheckInteger, 1, ++/*227945*/ OPC_CheckType, MVT::i32, ++/*227947*/ OPC_MoveParent, ++/*227948*/ OPC_MoveChild, 10, ++/*227950*/ OPC_CheckInteger, 1, ++/*227952*/ OPC_CheckType, MVT::i32, ++/*227954*/ OPC_MoveParent, ++/*227955*/ OPC_MoveChild, 11, ++/*227957*/ OPC_CheckInteger, 1, ++/*227959*/ OPC_CheckType, MVT::i32, ++/*227961*/ OPC_MoveParent, ++/*227962*/ OPC_MoveChild, 12, ++/*227964*/ OPC_CheckInteger, 1, ++/*227966*/ OPC_CheckType, MVT::i32, ++/*227968*/ OPC_MoveParent, ++/*227969*/ OPC_MoveChild, 13, ++/*227971*/ OPC_CheckInteger, 1, ++/*227973*/ OPC_CheckType, MVT::i32, ++/*227975*/ OPC_MoveParent, ++/*227976*/ OPC_MoveChild, 14, ++/*227978*/ OPC_CheckInteger, 1, ++/*227980*/ OPC_CheckType, MVT::i32, ++/*227982*/ OPC_MoveParent, ++/*227983*/ OPC_MoveChild, 15, ++/*227985*/ OPC_CheckInteger, 1, ++/*227987*/ OPC_CheckType, MVT::i32, ++/*227989*/ OPC_MoveParent, ++/*227990*/ OPC_MoveParent, ++/*227991*/ OPC_MoveParent, ++/*227992*/ OPC_MoveChild1, ++/*227993*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*227996*/ OPC_CheckChild0Integer, 15, ++/*227998*/ OPC_CheckChild0Type, MVT::i32, ++/*228000*/ OPC_CheckChild1Integer, 15, ++/*228002*/ OPC_CheckChild1Type, MVT::i32, ++/*228004*/ OPC_CheckChild2Integer, 15, ++/*228006*/ OPC_CheckChild2Type, MVT::i32, ++/*228008*/ OPC_CheckChild3Integer, 15, ++/*228010*/ OPC_CheckChild3Type, MVT::i32, ++/*228012*/ OPC_CheckChild4Integer, 15, ++/*228014*/ OPC_CheckChild4Type, MVT::i32, ++/*228016*/ OPC_MoveChild5, ++/*228017*/ OPC_CheckInteger, 15, ++/*228019*/ OPC_CheckType, MVT::i32, ++/*228021*/ OPC_MoveParent, ++/*228022*/ OPC_MoveChild6, ++/*228023*/ OPC_CheckInteger, 15, ++/*228025*/ OPC_CheckType, MVT::i32, ++/*228027*/ OPC_MoveParent, ++/*228028*/ OPC_MoveChild7, ++/*228029*/ OPC_CheckInteger, 15, ++/*228031*/ OPC_CheckType, MVT::i32, ++/*228033*/ OPC_MoveParent, ++/*228034*/ OPC_MoveChild, 8, ++/*228036*/ OPC_CheckInteger, 15, ++/*228038*/ OPC_CheckType, MVT::i32, ++/*228040*/ OPC_MoveParent, ++/*228041*/ OPC_MoveChild, 9, ++/*228043*/ OPC_CheckInteger, 15, ++/*228045*/ OPC_CheckType, MVT::i32, ++/*228047*/ OPC_MoveParent, ++/*228048*/ OPC_MoveChild, 10, ++/*228050*/ OPC_CheckInteger, 15, ++/*228052*/ OPC_CheckType, MVT::i32, ++/*228054*/ OPC_MoveParent, ++/*228055*/ OPC_MoveChild, 11, ++/*228057*/ OPC_CheckInteger, 15, ++/*228059*/ OPC_CheckType, MVT::i32, ++/*228061*/ OPC_MoveParent, ++/*228062*/ OPC_MoveChild, 12, ++/*228064*/ OPC_CheckInteger, 15, ++/*228066*/ OPC_CheckType, MVT::i32, ++/*228068*/ OPC_MoveParent, ++/*228069*/ OPC_MoveChild, 13, ++/*228071*/ OPC_CheckInteger, 15, ++/*228073*/ OPC_CheckType, MVT::i32, ++/*228075*/ OPC_MoveParent, ++/*228076*/ OPC_MoveChild, 14, ++/*228078*/ OPC_CheckInteger, 15, ++/*228080*/ OPC_CheckType, MVT::i32, ++/*228082*/ OPC_MoveParent, ++/*228083*/ OPC_MoveChild, 15, ++/*228085*/ OPC_CheckInteger, 15, ++/*228087*/ OPC_CheckType, MVT::i32, ++/*228089*/ OPC_MoveParent, ++/*228090*/ OPC_CheckType, MVT::v16i16, ++/*228092*/ OPC_MoveParent, ++/*228093*/ OPC_MoveParent, ++/*228094*/ OPC_MoveParent, ++/*228095*/ OPC_MoveChild1, ++/*228096*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*228099*/ OPC_CheckChild0Integer, 1, ++/*228101*/ OPC_CheckChild0Type, MVT::i32, ++/*228103*/ OPC_CheckChild1Integer, 1, ++/*228105*/ OPC_CheckChild1Type, MVT::i32, ++/*228107*/ OPC_CheckChild2Integer, 1, ++/*228109*/ OPC_CheckChild2Type, MVT::i32, ++/*228111*/ OPC_CheckChild3Integer, 1, ++/*228113*/ OPC_CheckChild3Type, MVT::i32, ++/*228115*/ OPC_CheckChild4Integer, 1, ++/*228117*/ OPC_CheckChild4Type, MVT::i32, ++/*228119*/ OPC_MoveChild5, ++/*228120*/ OPC_CheckInteger, 1, ++/*228122*/ OPC_CheckType, MVT::i32, ++/*228124*/ OPC_MoveParent, ++/*228125*/ OPC_MoveChild6, ++/*228126*/ OPC_CheckInteger, 1, ++/*228128*/ OPC_CheckType, MVT::i32, ++/*228130*/ OPC_MoveParent, ++/*228131*/ OPC_MoveChild7, ++/*228132*/ OPC_CheckInteger, 1, ++/*228134*/ OPC_CheckType, MVT::i32, ++/*228136*/ OPC_MoveParent, ++/*228137*/ OPC_MoveChild, 8, ++/*228139*/ OPC_CheckInteger, 1, ++/*228141*/ OPC_CheckType, MVT::i32, ++/*228143*/ OPC_MoveParent, ++/*228144*/ OPC_MoveChild, 9, ++/*228146*/ OPC_CheckInteger, 1, ++/*228148*/ OPC_CheckType, MVT::i32, ++/*228150*/ OPC_MoveParent, ++/*228151*/ OPC_MoveChild, 10, ++/*228153*/ OPC_CheckInteger, 1, ++/*228155*/ OPC_CheckType, MVT::i32, ++/*228157*/ OPC_MoveParent, ++/*228158*/ OPC_MoveChild, 11, ++/*228160*/ OPC_CheckInteger, 1, ++/*228162*/ OPC_CheckType, MVT::i32, ++/*228164*/ OPC_MoveParent, ++/*228165*/ OPC_MoveChild, 12, ++/*228167*/ OPC_CheckInteger, 1, ++/*228169*/ OPC_CheckType, MVT::i32, ++/*228171*/ OPC_MoveParent, ++/*228172*/ OPC_MoveChild, 13, ++/*228174*/ OPC_CheckInteger, 1, ++/*228176*/ OPC_CheckType, MVT::i32, ++/*228178*/ OPC_MoveParent, ++/*228179*/ OPC_MoveChild, 14, ++/*228181*/ OPC_CheckInteger, 1, ++/*228183*/ OPC_CheckType, MVT::i32, ++/*228185*/ OPC_MoveParent, ++/*228186*/ OPC_MoveChild, 15, ++/*228188*/ OPC_CheckInteger, 1, ++/*228190*/ OPC_CheckType, MVT::i32, ++/*228192*/ OPC_MoveParent, ++/*228193*/ OPC_CheckType, MVT::v16i16, ++/*228195*/ OPC_MoveParent, ++/*228196*/ OPC_CheckType, MVT::v16i16, ++/*228198*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*228200*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$b), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*228208*/ /*Scope*/ 65|128,2/*321*/, /*->228531*/ ++/*228210*/ OPC_CheckChild0Same, 1, ++/*228212*/ OPC_CheckChild1Same, 0, ++/*228214*/ OPC_MoveParent, ++/*228215*/ OPC_MoveChild1, ++/*228216*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*228219*/ OPC_CheckChild0Integer, 1, ++/*228221*/ OPC_CheckChild0Type, MVT::i32, ++/*228223*/ OPC_CheckChild1Integer, 1, ++/*228225*/ OPC_CheckChild1Type, MVT::i32, ++/*228227*/ OPC_CheckChild2Integer, 1, ++/*228229*/ OPC_CheckChild2Type, MVT::i32, ++/*228231*/ OPC_CheckChild3Integer, 1, ++/*228233*/ OPC_CheckChild3Type, MVT::i32, ++/*228235*/ OPC_CheckChild4Integer, 1, ++/*228237*/ OPC_CheckChild4Type, MVT::i32, ++/*228239*/ OPC_MoveChild5, ++/*228240*/ OPC_CheckInteger, 1, ++/*228242*/ OPC_CheckType, MVT::i32, ++/*228244*/ OPC_MoveParent, ++/*228245*/ OPC_MoveChild6, ++/*228246*/ OPC_CheckInteger, 1, ++/*228248*/ OPC_CheckType, MVT::i32, ++/*228250*/ OPC_MoveParent, ++/*228251*/ OPC_MoveChild7, ++/*228252*/ OPC_CheckInteger, 1, ++/*228254*/ OPC_CheckType, MVT::i32, ++/*228256*/ OPC_MoveParent, ++/*228257*/ OPC_MoveChild, 8, ++/*228259*/ OPC_CheckInteger, 1, ++/*228261*/ OPC_CheckType, MVT::i32, ++/*228263*/ OPC_MoveParent, ++/*228264*/ OPC_MoveChild, 9, ++/*228266*/ OPC_CheckInteger, 1, ++/*228268*/ OPC_CheckType, MVT::i32, ++/*228270*/ OPC_MoveParent, ++/*228271*/ OPC_MoveChild, 10, ++/*228273*/ OPC_CheckInteger, 1, ++/*228275*/ OPC_CheckType, MVT::i32, ++/*228277*/ OPC_MoveParent, ++/*228278*/ OPC_MoveChild, 11, ++/*228280*/ OPC_CheckInteger, 1, ++/*228282*/ OPC_CheckType, MVT::i32, ++/*228284*/ OPC_MoveParent, ++/*228285*/ OPC_MoveChild, 12, ++/*228287*/ OPC_CheckInteger, 1, ++/*228289*/ OPC_CheckType, MVT::i32, ++/*228291*/ OPC_MoveParent, ++/*228292*/ OPC_MoveChild, 13, ++/*228294*/ OPC_CheckInteger, 1, ++/*228296*/ OPC_CheckType, MVT::i32, ++/*228298*/ OPC_MoveParent, ++/*228299*/ OPC_MoveChild, 14, ++/*228301*/ OPC_CheckInteger, 1, ++/*228303*/ OPC_CheckType, MVT::i32, ++/*228305*/ OPC_MoveParent, ++/*228306*/ OPC_MoveChild, 15, ++/*228308*/ OPC_CheckInteger, 1, ++/*228310*/ OPC_CheckType, MVT::i32, ++/*228312*/ OPC_MoveParent, ++/*228313*/ OPC_MoveParent, ++/*228314*/ OPC_MoveParent, ++/*228315*/ OPC_MoveChild1, ++/*228316*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*228319*/ OPC_CheckChild0Integer, 15, ++/*228321*/ OPC_CheckChild0Type, MVT::i32, ++/*228323*/ OPC_CheckChild1Integer, 15, ++/*228325*/ OPC_CheckChild1Type, MVT::i32, ++/*228327*/ OPC_CheckChild2Integer, 15, ++/*228329*/ OPC_CheckChild2Type, MVT::i32, ++/*228331*/ OPC_CheckChild3Integer, 15, ++/*228333*/ OPC_CheckChild3Type, MVT::i32, ++/*228335*/ OPC_CheckChild4Integer, 15, ++/*228337*/ OPC_CheckChild4Type, MVT::i32, ++/*228339*/ OPC_MoveChild5, ++/*228340*/ OPC_CheckInteger, 15, ++/*228342*/ OPC_CheckType, MVT::i32, ++/*228344*/ OPC_MoveParent, ++/*228345*/ OPC_MoveChild6, ++/*228346*/ OPC_CheckInteger, 15, ++/*228348*/ OPC_CheckType, MVT::i32, ++/*228350*/ OPC_MoveParent, ++/*228351*/ OPC_MoveChild7, ++/*228352*/ OPC_CheckInteger, 15, ++/*228354*/ OPC_CheckType, MVT::i32, ++/*228356*/ OPC_MoveParent, ++/*228357*/ OPC_MoveChild, 8, ++/*228359*/ OPC_CheckInteger, 15, ++/*228361*/ OPC_CheckType, MVT::i32, ++/*228363*/ OPC_MoveParent, ++/*228364*/ OPC_MoveChild, 9, ++/*228366*/ OPC_CheckInteger, 15, ++/*228368*/ OPC_CheckType, MVT::i32, ++/*228370*/ OPC_MoveParent, ++/*228371*/ OPC_MoveChild, 10, ++/*228373*/ OPC_CheckInteger, 15, ++/*228375*/ OPC_CheckType, MVT::i32, ++/*228377*/ OPC_MoveParent, ++/*228378*/ OPC_MoveChild, 11, ++/*228380*/ OPC_CheckInteger, 15, ++/*228382*/ OPC_CheckType, MVT::i32, ++/*228384*/ OPC_MoveParent, ++/*228385*/ OPC_MoveChild, 12, ++/*228387*/ OPC_CheckInteger, 15, ++/*228389*/ OPC_CheckType, MVT::i32, ++/*228391*/ OPC_MoveParent, ++/*228392*/ OPC_MoveChild, 13, ++/*228394*/ OPC_CheckInteger, 15, ++/*228396*/ OPC_CheckType, MVT::i32, ++/*228398*/ OPC_MoveParent, ++/*228399*/ OPC_MoveChild, 14, ++/*228401*/ OPC_CheckInteger, 15, ++/*228403*/ OPC_CheckType, MVT::i32, ++/*228405*/ OPC_MoveParent, ++/*228406*/ OPC_MoveChild, 15, ++/*228408*/ OPC_CheckInteger, 15, ++/*228410*/ OPC_CheckType, MVT::i32, ++/*228412*/ OPC_MoveParent, ++/*228413*/ OPC_CheckType, MVT::v16i16, ++/*228415*/ OPC_MoveParent, ++/*228416*/ OPC_MoveParent, ++/*228417*/ OPC_MoveParent, ++/*228418*/ OPC_MoveChild1, ++/*228419*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*228422*/ OPC_CheckChild0Integer, 1, ++/*228424*/ OPC_CheckChild0Type, MVT::i32, ++/*228426*/ OPC_CheckChild1Integer, 1, ++/*228428*/ OPC_CheckChild1Type, MVT::i32, ++/*228430*/ OPC_CheckChild2Integer, 1, ++/*228432*/ OPC_CheckChild2Type, MVT::i32, ++/*228434*/ OPC_CheckChild3Integer, 1, ++/*228436*/ OPC_CheckChild3Type, MVT::i32, ++/*228438*/ OPC_CheckChild4Integer, 1, ++/*228440*/ OPC_CheckChild4Type, MVT::i32, ++/*228442*/ OPC_MoveChild5, ++/*228443*/ OPC_CheckInteger, 1, ++/*228445*/ OPC_CheckType, MVT::i32, ++/*228447*/ OPC_MoveParent, ++/*228448*/ OPC_MoveChild6, ++/*228449*/ OPC_CheckInteger, 1, ++/*228451*/ OPC_CheckType, MVT::i32, ++/*228453*/ OPC_MoveParent, ++/*228454*/ OPC_MoveChild7, ++/*228455*/ OPC_CheckInteger, 1, ++/*228457*/ OPC_CheckType, MVT::i32, ++/*228459*/ OPC_MoveParent, ++/*228460*/ OPC_MoveChild, 8, ++/*228462*/ OPC_CheckInteger, 1, ++/*228464*/ OPC_CheckType, MVT::i32, ++/*228466*/ OPC_MoveParent, ++/*228467*/ OPC_MoveChild, 9, ++/*228469*/ OPC_CheckInteger, 1, ++/*228471*/ OPC_CheckType, MVT::i32, ++/*228473*/ OPC_MoveParent, ++/*228474*/ OPC_MoveChild, 10, ++/*228476*/ OPC_CheckInteger, 1, ++/*228478*/ OPC_CheckType, MVT::i32, ++/*228480*/ OPC_MoveParent, ++/*228481*/ OPC_MoveChild, 11, ++/*228483*/ OPC_CheckInteger, 1, ++/*228485*/ OPC_CheckType, MVT::i32, ++/*228487*/ OPC_MoveParent, ++/*228488*/ OPC_MoveChild, 12, ++/*228490*/ OPC_CheckInteger, 1, ++/*228492*/ OPC_CheckType, MVT::i32, ++/*228494*/ OPC_MoveParent, ++/*228495*/ OPC_MoveChild, 13, ++/*228497*/ OPC_CheckInteger, 1, ++/*228499*/ OPC_CheckType, MVT::i32, ++/*228501*/ OPC_MoveParent, ++/*228502*/ OPC_MoveChild, 14, ++/*228504*/ OPC_CheckInteger, 1, ++/*228506*/ OPC_CheckType, MVT::i32, ++/*228508*/ OPC_MoveParent, ++/*228509*/ OPC_MoveChild, 15, ++/*228511*/ OPC_CheckInteger, 1, ++/*228513*/ OPC_CheckType, MVT::i32, ++/*228515*/ OPC_MoveParent, ++/*228516*/ OPC_CheckType, MVT::v16i16, ++/*228518*/ OPC_MoveParent, ++/*228519*/ OPC_CheckType, MVT::v16i16, ++/*228521*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*228523*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$b), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*228531*/ 0, /*End of Scope*/ ++/*228532*/ /*Scope*/ 10|128,5/*650*/, /*->229184*/ ++/*228534*/ OPC_CheckChild0Same, 1, ++/*228536*/ OPC_MoveChild1, ++/*228537*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*228540*/ OPC_Scope, 63|128,2/*319*/, /*->228862*/ // 2 children in Scope ++/*228543*/ OPC_MoveChild0, ++/*228544*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*228547*/ OPC_CheckChild0Integer, 1, ++/*228549*/ OPC_CheckChild0Type, MVT::i32, ++/*228551*/ OPC_CheckChild1Integer, 1, ++/*228553*/ OPC_CheckChild1Type, MVT::i32, ++/*228555*/ OPC_CheckChild2Integer, 1, ++/*228557*/ OPC_CheckChild2Type, MVT::i32, ++/*228559*/ OPC_CheckChild3Integer, 1, ++/*228561*/ OPC_CheckChild3Type, MVT::i32, ++/*228563*/ OPC_CheckChild4Integer, 1, ++/*228565*/ OPC_CheckChild4Type, MVT::i32, ++/*228567*/ OPC_MoveChild5, ++/*228568*/ OPC_CheckInteger, 1, ++/*228570*/ OPC_CheckType, MVT::i32, ++/*228572*/ OPC_MoveParent, ++/*228573*/ OPC_MoveChild6, ++/*228574*/ OPC_CheckInteger, 1, ++/*228576*/ OPC_CheckType, MVT::i32, ++/*228578*/ OPC_MoveParent, ++/*228579*/ OPC_MoveChild7, ++/*228580*/ OPC_CheckInteger, 1, ++/*228582*/ OPC_CheckType, MVT::i32, ++/*228584*/ OPC_MoveParent, ++/*228585*/ OPC_MoveChild, 8, ++/*228587*/ OPC_CheckInteger, 1, ++/*228589*/ OPC_CheckType, MVT::i32, ++/*228591*/ OPC_MoveParent, ++/*228592*/ OPC_MoveChild, 9, ++/*228594*/ OPC_CheckInteger, 1, ++/*228596*/ OPC_CheckType, MVT::i32, ++/*228598*/ OPC_MoveParent, ++/*228599*/ OPC_MoveChild, 10, ++/*228601*/ OPC_CheckInteger, 1, ++/*228603*/ OPC_CheckType, MVT::i32, ++/*228605*/ OPC_MoveParent, ++/*228606*/ OPC_MoveChild, 11, ++/*228608*/ OPC_CheckInteger, 1, ++/*228610*/ OPC_CheckType, MVT::i32, ++/*228612*/ OPC_MoveParent, ++/*228613*/ OPC_MoveChild, 12, ++/*228615*/ OPC_CheckInteger, 1, ++/*228617*/ OPC_CheckType, MVT::i32, ++/*228619*/ OPC_MoveParent, ++/*228620*/ OPC_MoveChild, 13, ++/*228622*/ OPC_CheckInteger, 1, ++/*228624*/ OPC_CheckType, MVT::i32, ++/*228626*/ OPC_MoveParent, ++/*228627*/ OPC_MoveChild, 14, ++/*228629*/ OPC_CheckInteger, 1, ++/*228631*/ OPC_CheckType, MVT::i32, ++/*228633*/ OPC_MoveParent, ++/*228634*/ OPC_MoveChild, 15, ++/*228636*/ OPC_CheckInteger, 1, ++/*228638*/ OPC_CheckType, MVT::i32, ++/*228640*/ OPC_MoveParent, ++/*228641*/ OPC_MoveParent, ++/*228642*/ OPC_CheckChild1Same, 0, ++/*228644*/ OPC_MoveParent, ++/*228645*/ OPC_MoveParent, ++/*228646*/ OPC_MoveChild1, ++/*228647*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*228650*/ OPC_CheckChild0Integer, 15, ++/*228652*/ OPC_CheckChild0Type, MVT::i32, ++/*228654*/ OPC_CheckChild1Integer, 15, ++/*228656*/ OPC_CheckChild1Type, MVT::i32, ++/*228658*/ OPC_CheckChild2Integer, 15, ++/*228660*/ OPC_CheckChild2Type, MVT::i32, ++/*228662*/ OPC_CheckChild3Integer, 15, ++/*228664*/ OPC_CheckChild3Type, MVT::i32, ++/*228666*/ OPC_CheckChild4Integer, 15, ++/*228668*/ OPC_CheckChild4Type, MVT::i32, ++/*228670*/ OPC_MoveChild5, ++/*228671*/ OPC_CheckInteger, 15, ++/*228673*/ OPC_CheckType, MVT::i32, ++/*228675*/ OPC_MoveParent, ++/*228676*/ OPC_MoveChild6, ++/*228677*/ OPC_CheckInteger, 15, ++/*228679*/ OPC_CheckType, MVT::i32, ++/*228681*/ OPC_MoveParent, ++/*228682*/ OPC_MoveChild7, ++/*228683*/ OPC_CheckInteger, 15, ++/*228685*/ OPC_CheckType, MVT::i32, ++/*228687*/ OPC_MoveParent, ++/*228688*/ OPC_MoveChild, 8, ++/*228690*/ OPC_CheckInteger, 15, ++/*228692*/ OPC_CheckType, MVT::i32, ++/*228694*/ OPC_MoveParent, ++/*228695*/ OPC_MoveChild, 9, ++/*228697*/ OPC_CheckInteger, 15, ++/*228699*/ OPC_CheckType, MVT::i32, ++/*228701*/ OPC_MoveParent, ++/*228702*/ OPC_MoveChild, 10, ++/*228704*/ OPC_CheckInteger, 15, ++/*228706*/ OPC_CheckType, MVT::i32, ++/*228708*/ OPC_MoveParent, ++/*228709*/ OPC_MoveChild, 11, ++/*228711*/ OPC_CheckInteger, 15, ++/*228713*/ OPC_CheckType, MVT::i32, ++/*228715*/ OPC_MoveParent, ++/*228716*/ OPC_MoveChild, 12, ++/*228718*/ OPC_CheckInteger, 15, ++/*228720*/ OPC_CheckType, MVT::i32, ++/*228722*/ OPC_MoveParent, ++/*228723*/ OPC_MoveChild, 13, ++/*228725*/ OPC_CheckInteger, 15, ++/*228727*/ OPC_CheckType, MVT::i32, ++/*228729*/ OPC_MoveParent, ++/*228730*/ OPC_MoveChild, 14, ++/*228732*/ OPC_CheckInteger, 15, ++/*228734*/ OPC_CheckType, MVT::i32, ++/*228736*/ OPC_MoveParent, ++/*228737*/ OPC_MoveChild, 15, ++/*228739*/ OPC_CheckInteger, 15, ++/*228741*/ OPC_CheckType, MVT::i32, ++/*228743*/ OPC_MoveParent, ++/*228744*/ OPC_CheckType, MVT::v16i16, ++/*228746*/ OPC_MoveParent, ++/*228747*/ OPC_MoveParent, ++/*228748*/ OPC_MoveParent, ++/*228749*/ OPC_MoveChild1, ++/*228750*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*228753*/ OPC_CheckChild0Integer, 1, ++/*228755*/ OPC_CheckChild0Type, MVT::i32, ++/*228757*/ OPC_CheckChild1Integer, 1, ++/*228759*/ OPC_CheckChild1Type, MVT::i32, ++/*228761*/ OPC_CheckChild2Integer, 1, ++/*228763*/ OPC_CheckChild2Type, MVT::i32, ++/*228765*/ OPC_CheckChild3Integer, 1, ++/*228767*/ OPC_CheckChild3Type, MVT::i32, ++/*228769*/ OPC_CheckChild4Integer, 1, ++/*228771*/ OPC_CheckChild4Type, MVT::i32, ++/*228773*/ OPC_MoveChild5, ++/*228774*/ OPC_CheckInteger, 1, ++/*228776*/ OPC_CheckType, MVT::i32, ++/*228778*/ OPC_MoveParent, ++/*228779*/ OPC_MoveChild6, ++/*228780*/ OPC_CheckInteger, 1, ++/*228782*/ OPC_CheckType, MVT::i32, ++/*228784*/ OPC_MoveParent, ++/*228785*/ OPC_MoveChild7, ++/*228786*/ OPC_CheckInteger, 1, ++/*228788*/ OPC_CheckType, MVT::i32, ++/*228790*/ OPC_MoveParent, ++/*228791*/ OPC_MoveChild, 8, ++/*228793*/ OPC_CheckInteger, 1, ++/*228795*/ OPC_CheckType, MVT::i32, ++/*228797*/ OPC_MoveParent, ++/*228798*/ OPC_MoveChild, 9, ++/*228800*/ OPC_CheckInteger, 1, ++/*228802*/ OPC_CheckType, MVT::i32, ++/*228804*/ OPC_MoveParent, ++/*228805*/ OPC_MoveChild, 10, ++/*228807*/ OPC_CheckInteger, 1, ++/*228809*/ OPC_CheckType, MVT::i32, ++/*228811*/ OPC_MoveParent, ++/*228812*/ OPC_MoveChild, 11, ++/*228814*/ OPC_CheckInteger, 1, ++/*228816*/ OPC_CheckType, MVT::i32, ++/*228818*/ OPC_MoveParent, ++/*228819*/ OPC_MoveChild, 12, ++/*228821*/ OPC_CheckInteger, 1, ++/*228823*/ OPC_CheckType, MVT::i32, ++/*228825*/ OPC_MoveParent, ++/*228826*/ OPC_MoveChild, 13, ++/*228828*/ OPC_CheckInteger, 1, ++/*228830*/ OPC_CheckType, MVT::i32, ++/*228832*/ OPC_MoveParent, ++/*228833*/ OPC_MoveChild, 14, ++/*228835*/ OPC_CheckInteger, 1, ++/*228837*/ OPC_CheckType, MVT::i32, ++/*228839*/ OPC_MoveParent, ++/*228840*/ OPC_MoveChild, 15, ++/*228842*/ OPC_CheckInteger, 1, ++/*228844*/ OPC_CheckType, MVT::i32, ++/*228846*/ OPC_MoveParent, ++/*228847*/ OPC_CheckType, MVT::v16i16, ++/*228849*/ OPC_MoveParent, ++/*228850*/ OPC_CheckType, MVT::v16i16, ++/*228852*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*228854*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$b), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*228862*/ /*Scope*/ 63|128,2/*319*/, /*->229183*/ ++/*228864*/ OPC_CheckChild0Same, 0, ++/*228866*/ OPC_MoveChild1, ++/*228867*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*228870*/ OPC_CheckChild0Integer, 1, ++/*228872*/ OPC_CheckChild0Type, MVT::i32, ++/*228874*/ OPC_CheckChild1Integer, 1, ++/*228876*/ OPC_CheckChild1Type, MVT::i32, ++/*228878*/ OPC_CheckChild2Integer, 1, ++/*228880*/ OPC_CheckChild2Type, MVT::i32, ++/*228882*/ OPC_CheckChild3Integer, 1, ++/*228884*/ OPC_CheckChild3Type, MVT::i32, ++/*228886*/ OPC_CheckChild4Integer, 1, ++/*228888*/ OPC_CheckChild4Type, MVT::i32, ++/*228890*/ OPC_MoveChild5, ++/*228891*/ OPC_CheckInteger, 1, ++/*228893*/ OPC_CheckType, MVT::i32, ++/*228895*/ OPC_MoveParent, ++/*228896*/ OPC_MoveChild6, ++/*228897*/ OPC_CheckInteger, 1, ++/*228899*/ OPC_CheckType, MVT::i32, ++/*228901*/ OPC_MoveParent, ++/*228902*/ OPC_MoveChild7, ++/*228903*/ OPC_CheckInteger, 1, ++/*228905*/ OPC_CheckType, MVT::i32, ++/*228907*/ OPC_MoveParent, ++/*228908*/ OPC_MoveChild, 8, ++/*228910*/ OPC_CheckInteger, 1, ++/*228912*/ OPC_CheckType, MVT::i32, ++/*228914*/ OPC_MoveParent, ++/*228915*/ OPC_MoveChild, 9, ++/*228917*/ OPC_CheckInteger, 1, ++/*228919*/ OPC_CheckType, MVT::i32, ++/*228921*/ OPC_MoveParent, ++/*228922*/ OPC_MoveChild, 10, ++/*228924*/ OPC_CheckInteger, 1, ++/*228926*/ OPC_CheckType, MVT::i32, ++/*228928*/ OPC_MoveParent, ++/*228929*/ OPC_MoveChild, 11, ++/*228931*/ OPC_CheckInteger, 1, ++/*228933*/ OPC_CheckType, MVT::i32, ++/*228935*/ OPC_MoveParent, ++/*228936*/ OPC_MoveChild, 12, ++/*228938*/ OPC_CheckInteger, 1, ++/*228940*/ OPC_CheckType, MVT::i32, ++/*228942*/ OPC_MoveParent, ++/*228943*/ OPC_MoveChild, 13, ++/*228945*/ OPC_CheckInteger, 1, ++/*228947*/ OPC_CheckType, MVT::i32, ++/*228949*/ OPC_MoveParent, ++/*228950*/ OPC_MoveChild, 14, ++/*228952*/ OPC_CheckInteger, 1, ++/*228954*/ OPC_CheckType, MVT::i32, ++/*228956*/ OPC_MoveParent, ++/*228957*/ OPC_MoveChild, 15, ++/*228959*/ OPC_CheckInteger, 1, ++/*228961*/ OPC_CheckType, MVT::i32, ++/*228963*/ OPC_MoveParent, ++/*228964*/ OPC_MoveParent, ++/*228965*/ OPC_MoveParent, ++/*228966*/ OPC_MoveParent, ++/*228967*/ OPC_MoveChild1, ++/*228968*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*228971*/ OPC_CheckChild0Integer, 15, ++/*228973*/ OPC_CheckChild0Type, MVT::i32, ++/*228975*/ OPC_CheckChild1Integer, 15, ++/*228977*/ OPC_CheckChild1Type, MVT::i32, ++/*228979*/ OPC_CheckChild2Integer, 15, ++/*228981*/ OPC_CheckChild2Type, MVT::i32, ++/*228983*/ OPC_CheckChild3Integer, 15, ++/*228985*/ OPC_CheckChild3Type, MVT::i32, ++/*228987*/ OPC_CheckChild4Integer, 15, ++/*228989*/ OPC_CheckChild4Type, MVT::i32, ++/*228991*/ OPC_MoveChild5, ++/*228992*/ OPC_CheckInteger, 15, ++/*228994*/ OPC_CheckType, MVT::i32, ++/*228996*/ OPC_MoveParent, ++/*228997*/ OPC_MoveChild6, ++/*228998*/ OPC_CheckInteger, 15, ++/*229000*/ OPC_CheckType, MVT::i32, ++/*229002*/ OPC_MoveParent, ++/*229003*/ OPC_MoveChild7, ++/*229004*/ OPC_CheckInteger, 15, ++/*229006*/ OPC_CheckType, MVT::i32, ++/*229008*/ OPC_MoveParent, ++/*229009*/ OPC_MoveChild, 8, ++/*229011*/ OPC_CheckInteger, 15, ++/*229013*/ OPC_CheckType, MVT::i32, ++/*229015*/ OPC_MoveParent, ++/*229016*/ OPC_MoveChild, 9, ++/*229018*/ OPC_CheckInteger, 15, ++/*229020*/ OPC_CheckType, MVT::i32, ++/*229022*/ OPC_MoveParent, ++/*229023*/ OPC_MoveChild, 10, ++/*229025*/ OPC_CheckInteger, 15, ++/*229027*/ OPC_CheckType, MVT::i32, ++/*229029*/ OPC_MoveParent, ++/*229030*/ OPC_MoveChild, 11, ++/*229032*/ OPC_CheckInteger, 15, ++/*229034*/ OPC_CheckType, MVT::i32, ++/*229036*/ OPC_MoveParent, ++/*229037*/ OPC_MoveChild, 12, ++/*229039*/ OPC_CheckInteger, 15, ++/*229041*/ OPC_CheckType, MVT::i32, ++/*229043*/ OPC_MoveParent, ++/*229044*/ OPC_MoveChild, 13, ++/*229046*/ OPC_CheckInteger, 15, ++/*229048*/ OPC_CheckType, MVT::i32, ++/*229050*/ OPC_MoveParent, ++/*229051*/ OPC_MoveChild, 14, ++/*229053*/ OPC_CheckInteger, 15, ++/*229055*/ OPC_CheckType, MVT::i32, ++/*229057*/ OPC_MoveParent, ++/*229058*/ OPC_MoveChild, 15, ++/*229060*/ OPC_CheckInteger, 15, ++/*229062*/ OPC_CheckType, MVT::i32, ++/*229064*/ OPC_MoveParent, ++/*229065*/ OPC_CheckType, MVT::v16i16, ++/*229067*/ OPC_MoveParent, ++/*229068*/ OPC_MoveParent, ++/*229069*/ OPC_MoveParent, ++/*229070*/ OPC_MoveChild1, ++/*229071*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*229074*/ OPC_CheckChild0Integer, 1, ++/*229076*/ OPC_CheckChild0Type, MVT::i32, ++/*229078*/ OPC_CheckChild1Integer, 1, ++/*229080*/ OPC_CheckChild1Type, MVT::i32, ++/*229082*/ OPC_CheckChild2Integer, 1, ++/*229084*/ OPC_CheckChild2Type, MVT::i32, ++/*229086*/ OPC_CheckChild3Integer, 1, ++/*229088*/ OPC_CheckChild3Type, MVT::i32, ++/*229090*/ OPC_CheckChild4Integer, 1, ++/*229092*/ OPC_CheckChild4Type, MVT::i32, ++/*229094*/ OPC_MoveChild5, ++/*229095*/ OPC_CheckInteger, 1, ++/*229097*/ OPC_CheckType, MVT::i32, ++/*229099*/ OPC_MoveParent, ++/*229100*/ OPC_MoveChild6, ++/*229101*/ OPC_CheckInteger, 1, ++/*229103*/ OPC_CheckType, MVT::i32, ++/*229105*/ OPC_MoveParent, ++/*229106*/ OPC_MoveChild7, ++/*229107*/ OPC_CheckInteger, 1, ++/*229109*/ OPC_CheckType, MVT::i32, ++/*229111*/ OPC_MoveParent, ++/*229112*/ OPC_MoveChild, 8, ++/*229114*/ OPC_CheckInteger, 1, ++/*229116*/ OPC_CheckType, MVT::i32, ++/*229118*/ OPC_MoveParent, ++/*229119*/ OPC_MoveChild, 9, ++/*229121*/ OPC_CheckInteger, 1, ++/*229123*/ OPC_CheckType, MVT::i32, ++/*229125*/ OPC_MoveParent, ++/*229126*/ OPC_MoveChild, 10, ++/*229128*/ OPC_CheckInteger, 1, ++/*229130*/ OPC_CheckType, MVT::i32, ++/*229132*/ OPC_MoveParent, ++/*229133*/ OPC_MoveChild, 11, ++/*229135*/ OPC_CheckInteger, 1, ++/*229137*/ OPC_CheckType, MVT::i32, ++/*229139*/ OPC_MoveParent, ++/*229140*/ OPC_MoveChild, 12, ++/*229142*/ OPC_CheckInteger, 1, ++/*229144*/ OPC_CheckType, MVT::i32, ++/*229146*/ OPC_MoveParent, ++/*229147*/ OPC_MoveChild, 13, ++/*229149*/ OPC_CheckInteger, 1, ++/*229151*/ OPC_CheckType, MVT::i32, ++/*229153*/ OPC_MoveParent, ++/*229154*/ OPC_MoveChild, 14, ++/*229156*/ OPC_CheckInteger, 1, ++/*229158*/ OPC_CheckType, MVT::i32, ++/*229160*/ OPC_MoveParent, ++/*229161*/ OPC_MoveChild, 15, ++/*229163*/ OPC_CheckInteger, 1, ++/*229165*/ OPC_CheckType, MVT::i32, ++/*229167*/ OPC_MoveParent, ++/*229168*/ OPC_CheckType, MVT::v16i16, ++/*229170*/ OPC_MoveParent, ++/*229171*/ OPC_CheckType, MVT::v16i16, ++/*229173*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*229175*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$b), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*229183*/ 0, /*End of Scope*/ ++/*229184*/ /*Scope*/ 10|128,5/*650*/, /*->229836*/ ++/*229186*/ OPC_CheckChild0Same, 0, ++/*229188*/ OPC_MoveChild1, ++/*229189*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*229192*/ OPC_Scope, 63|128,2/*319*/, /*->229514*/ // 2 children in Scope ++/*229195*/ OPC_MoveChild0, ++/*229196*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*229199*/ OPC_CheckChild0Integer, 1, ++/*229201*/ OPC_CheckChild0Type, MVT::i32, ++/*229203*/ OPC_CheckChild1Integer, 1, ++/*229205*/ OPC_CheckChild1Type, MVT::i32, ++/*229207*/ OPC_CheckChild2Integer, 1, ++/*229209*/ OPC_CheckChild2Type, MVT::i32, ++/*229211*/ OPC_CheckChild3Integer, 1, ++/*229213*/ OPC_CheckChild3Type, MVT::i32, ++/*229215*/ OPC_CheckChild4Integer, 1, ++/*229217*/ OPC_CheckChild4Type, MVT::i32, ++/*229219*/ OPC_MoveChild5, ++/*229220*/ OPC_CheckInteger, 1, ++/*229222*/ OPC_CheckType, MVT::i32, ++/*229224*/ OPC_MoveParent, ++/*229225*/ OPC_MoveChild6, ++/*229226*/ OPC_CheckInteger, 1, ++/*229228*/ OPC_CheckType, MVT::i32, ++/*229230*/ OPC_MoveParent, ++/*229231*/ OPC_MoveChild7, ++/*229232*/ OPC_CheckInteger, 1, ++/*229234*/ OPC_CheckType, MVT::i32, ++/*229236*/ OPC_MoveParent, ++/*229237*/ OPC_MoveChild, 8, ++/*229239*/ OPC_CheckInteger, 1, ++/*229241*/ OPC_CheckType, MVT::i32, ++/*229243*/ OPC_MoveParent, ++/*229244*/ OPC_MoveChild, 9, ++/*229246*/ OPC_CheckInteger, 1, ++/*229248*/ OPC_CheckType, MVT::i32, ++/*229250*/ OPC_MoveParent, ++/*229251*/ OPC_MoveChild, 10, ++/*229253*/ OPC_CheckInteger, 1, ++/*229255*/ OPC_CheckType, MVT::i32, ++/*229257*/ OPC_MoveParent, ++/*229258*/ OPC_MoveChild, 11, ++/*229260*/ OPC_CheckInteger, 1, ++/*229262*/ OPC_CheckType, MVT::i32, ++/*229264*/ OPC_MoveParent, ++/*229265*/ OPC_MoveChild, 12, ++/*229267*/ OPC_CheckInteger, 1, ++/*229269*/ OPC_CheckType, MVT::i32, ++/*229271*/ OPC_MoveParent, ++/*229272*/ OPC_MoveChild, 13, ++/*229274*/ OPC_CheckInteger, 1, ++/*229276*/ OPC_CheckType, MVT::i32, ++/*229278*/ OPC_MoveParent, ++/*229279*/ OPC_MoveChild, 14, ++/*229281*/ OPC_CheckInteger, 1, ++/*229283*/ OPC_CheckType, MVT::i32, ++/*229285*/ OPC_MoveParent, ++/*229286*/ OPC_MoveChild, 15, ++/*229288*/ OPC_CheckInteger, 1, ++/*229290*/ OPC_CheckType, MVT::i32, ++/*229292*/ OPC_MoveParent, ++/*229293*/ OPC_MoveParent, ++/*229294*/ OPC_CheckChild1Same, 1, ++/*229296*/ OPC_MoveParent, ++/*229297*/ OPC_MoveParent, ++/*229298*/ OPC_MoveChild1, ++/*229299*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*229302*/ OPC_CheckChild0Integer, 15, ++/*229304*/ OPC_CheckChild0Type, MVT::i32, ++/*229306*/ OPC_CheckChild1Integer, 15, ++/*229308*/ OPC_CheckChild1Type, MVT::i32, ++/*229310*/ OPC_CheckChild2Integer, 15, ++/*229312*/ OPC_CheckChild2Type, MVT::i32, ++/*229314*/ OPC_CheckChild3Integer, 15, ++/*229316*/ OPC_CheckChild3Type, MVT::i32, ++/*229318*/ OPC_CheckChild4Integer, 15, ++/*229320*/ OPC_CheckChild4Type, MVT::i32, ++/*229322*/ OPC_MoveChild5, ++/*229323*/ OPC_CheckInteger, 15, ++/*229325*/ OPC_CheckType, MVT::i32, ++/*229327*/ OPC_MoveParent, ++/*229328*/ OPC_MoveChild6, ++/*229329*/ OPC_CheckInteger, 15, ++/*229331*/ OPC_CheckType, MVT::i32, ++/*229333*/ OPC_MoveParent, ++/*229334*/ OPC_MoveChild7, ++/*229335*/ OPC_CheckInteger, 15, ++/*229337*/ OPC_CheckType, MVT::i32, ++/*229339*/ OPC_MoveParent, ++/*229340*/ OPC_MoveChild, 8, ++/*229342*/ OPC_CheckInteger, 15, ++/*229344*/ OPC_CheckType, MVT::i32, ++/*229346*/ OPC_MoveParent, ++/*229347*/ OPC_MoveChild, 9, ++/*229349*/ OPC_CheckInteger, 15, ++/*229351*/ OPC_CheckType, MVT::i32, ++/*229353*/ OPC_MoveParent, ++/*229354*/ OPC_MoveChild, 10, ++/*229356*/ OPC_CheckInteger, 15, ++/*229358*/ OPC_CheckType, MVT::i32, ++/*229360*/ OPC_MoveParent, ++/*229361*/ OPC_MoveChild, 11, ++/*229363*/ OPC_CheckInteger, 15, ++/*229365*/ OPC_CheckType, MVT::i32, ++/*229367*/ OPC_MoveParent, ++/*229368*/ OPC_MoveChild, 12, ++/*229370*/ OPC_CheckInteger, 15, ++/*229372*/ OPC_CheckType, MVT::i32, ++/*229374*/ OPC_MoveParent, ++/*229375*/ OPC_MoveChild, 13, ++/*229377*/ OPC_CheckInteger, 15, ++/*229379*/ OPC_CheckType, MVT::i32, ++/*229381*/ OPC_MoveParent, ++/*229382*/ OPC_MoveChild, 14, ++/*229384*/ OPC_CheckInteger, 15, ++/*229386*/ OPC_CheckType, MVT::i32, ++/*229388*/ OPC_MoveParent, ++/*229389*/ OPC_MoveChild, 15, ++/*229391*/ OPC_CheckInteger, 15, ++/*229393*/ OPC_CheckType, MVT::i32, ++/*229395*/ OPC_MoveParent, ++/*229396*/ OPC_CheckType, MVT::v16i16, ++/*229398*/ OPC_MoveParent, ++/*229399*/ OPC_MoveParent, ++/*229400*/ OPC_MoveParent, ++/*229401*/ OPC_MoveChild1, ++/*229402*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*229405*/ OPC_CheckChild0Integer, 1, ++/*229407*/ OPC_CheckChild0Type, MVT::i32, ++/*229409*/ OPC_CheckChild1Integer, 1, ++/*229411*/ OPC_CheckChild1Type, MVT::i32, ++/*229413*/ OPC_CheckChild2Integer, 1, ++/*229415*/ OPC_CheckChild2Type, MVT::i32, ++/*229417*/ OPC_CheckChild3Integer, 1, ++/*229419*/ OPC_CheckChild3Type, MVT::i32, ++/*229421*/ OPC_CheckChild4Integer, 1, ++/*229423*/ OPC_CheckChild4Type, MVT::i32, ++/*229425*/ OPC_MoveChild5, ++/*229426*/ OPC_CheckInteger, 1, ++/*229428*/ OPC_CheckType, MVT::i32, ++/*229430*/ OPC_MoveParent, ++/*229431*/ OPC_MoveChild6, ++/*229432*/ OPC_CheckInteger, 1, ++/*229434*/ OPC_CheckType, MVT::i32, ++/*229436*/ OPC_MoveParent, ++/*229437*/ OPC_MoveChild7, ++/*229438*/ OPC_CheckInteger, 1, ++/*229440*/ OPC_CheckType, MVT::i32, ++/*229442*/ OPC_MoveParent, ++/*229443*/ OPC_MoveChild, 8, ++/*229445*/ OPC_CheckInteger, 1, ++/*229447*/ OPC_CheckType, MVT::i32, ++/*229449*/ OPC_MoveParent, ++/*229450*/ OPC_MoveChild, 9, ++/*229452*/ OPC_CheckInteger, 1, ++/*229454*/ OPC_CheckType, MVT::i32, ++/*229456*/ OPC_MoveParent, ++/*229457*/ OPC_MoveChild, 10, ++/*229459*/ OPC_CheckInteger, 1, ++/*229461*/ OPC_CheckType, MVT::i32, ++/*229463*/ OPC_MoveParent, ++/*229464*/ OPC_MoveChild, 11, ++/*229466*/ OPC_CheckInteger, 1, ++/*229468*/ OPC_CheckType, MVT::i32, ++/*229470*/ OPC_MoveParent, ++/*229471*/ OPC_MoveChild, 12, ++/*229473*/ OPC_CheckInteger, 1, ++/*229475*/ OPC_CheckType, MVT::i32, ++/*229477*/ OPC_MoveParent, ++/*229478*/ OPC_MoveChild, 13, ++/*229480*/ OPC_CheckInteger, 1, ++/*229482*/ OPC_CheckType, MVT::i32, ++/*229484*/ OPC_MoveParent, ++/*229485*/ OPC_MoveChild, 14, ++/*229487*/ OPC_CheckInteger, 1, ++/*229489*/ OPC_CheckType, MVT::i32, ++/*229491*/ OPC_MoveParent, ++/*229492*/ OPC_MoveChild, 15, ++/*229494*/ OPC_CheckInteger, 1, ++/*229496*/ OPC_CheckType, MVT::i32, ++/*229498*/ OPC_MoveParent, ++/*229499*/ OPC_CheckType, MVT::v16i16, ++/*229501*/ OPC_MoveParent, ++/*229502*/ OPC_CheckType, MVT::v16i16, ++/*229504*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*229506*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$b), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*229514*/ /*Scope*/ 63|128,2/*319*/, /*->229835*/ ++/*229516*/ OPC_CheckChild0Same, 1, ++/*229518*/ OPC_MoveChild1, ++/*229519*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*229522*/ OPC_CheckChild0Integer, 1, ++/*229524*/ OPC_CheckChild0Type, MVT::i32, ++/*229526*/ OPC_CheckChild1Integer, 1, ++/*229528*/ OPC_CheckChild1Type, MVT::i32, ++/*229530*/ OPC_CheckChild2Integer, 1, ++/*229532*/ OPC_CheckChild2Type, MVT::i32, ++/*229534*/ OPC_CheckChild3Integer, 1, ++/*229536*/ OPC_CheckChild3Type, MVT::i32, ++/*229538*/ OPC_CheckChild4Integer, 1, ++/*229540*/ OPC_CheckChild4Type, MVT::i32, ++/*229542*/ OPC_MoveChild5, ++/*229543*/ OPC_CheckInteger, 1, ++/*229545*/ OPC_CheckType, MVT::i32, ++/*229547*/ OPC_MoveParent, ++/*229548*/ OPC_MoveChild6, ++/*229549*/ OPC_CheckInteger, 1, ++/*229551*/ OPC_CheckType, MVT::i32, ++/*229553*/ OPC_MoveParent, ++/*229554*/ OPC_MoveChild7, ++/*229555*/ OPC_CheckInteger, 1, ++/*229557*/ OPC_CheckType, MVT::i32, ++/*229559*/ OPC_MoveParent, ++/*229560*/ OPC_MoveChild, 8, ++/*229562*/ OPC_CheckInteger, 1, ++/*229564*/ OPC_CheckType, MVT::i32, ++/*229566*/ OPC_MoveParent, ++/*229567*/ OPC_MoveChild, 9, ++/*229569*/ OPC_CheckInteger, 1, ++/*229571*/ OPC_CheckType, MVT::i32, ++/*229573*/ OPC_MoveParent, ++/*229574*/ OPC_MoveChild, 10, ++/*229576*/ OPC_CheckInteger, 1, ++/*229578*/ OPC_CheckType, MVT::i32, ++/*229580*/ OPC_MoveParent, ++/*229581*/ OPC_MoveChild, 11, ++/*229583*/ OPC_CheckInteger, 1, ++/*229585*/ OPC_CheckType, MVT::i32, ++/*229587*/ OPC_MoveParent, ++/*229588*/ OPC_MoveChild, 12, ++/*229590*/ OPC_CheckInteger, 1, ++/*229592*/ OPC_CheckType, MVT::i32, ++/*229594*/ OPC_MoveParent, ++/*229595*/ OPC_MoveChild, 13, ++/*229597*/ OPC_CheckInteger, 1, ++/*229599*/ OPC_CheckType, MVT::i32, ++/*229601*/ OPC_MoveParent, ++/*229602*/ OPC_MoveChild, 14, ++/*229604*/ OPC_CheckInteger, 1, ++/*229606*/ OPC_CheckType, MVT::i32, ++/*229608*/ OPC_MoveParent, ++/*229609*/ OPC_MoveChild, 15, ++/*229611*/ OPC_CheckInteger, 1, ++/*229613*/ OPC_CheckType, MVT::i32, ++/*229615*/ OPC_MoveParent, ++/*229616*/ OPC_MoveParent, ++/*229617*/ OPC_MoveParent, ++/*229618*/ OPC_MoveParent, ++/*229619*/ OPC_MoveChild1, ++/*229620*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*229623*/ OPC_CheckChild0Integer, 15, ++/*229625*/ OPC_CheckChild0Type, MVT::i32, ++/*229627*/ OPC_CheckChild1Integer, 15, ++/*229629*/ OPC_CheckChild1Type, MVT::i32, ++/*229631*/ OPC_CheckChild2Integer, 15, ++/*229633*/ OPC_CheckChild2Type, MVT::i32, ++/*229635*/ OPC_CheckChild3Integer, 15, ++/*229637*/ OPC_CheckChild3Type, MVT::i32, ++/*229639*/ OPC_CheckChild4Integer, 15, ++/*229641*/ OPC_CheckChild4Type, MVT::i32, ++/*229643*/ OPC_MoveChild5, ++/*229644*/ OPC_CheckInteger, 15, ++/*229646*/ OPC_CheckType, MVT::i32, ++/*229648*/ OPC_MoveParent, ++/*229649*/ OPC_MoveChild6, ++/*229650*/ OPC_CheckInteger, 15, ++/*229652*/ OPC_CheckType, MVT::i32, ++/*229654*/ OPC_MoveParent, ++/*229655*/ OPC_MoveChild7, ++/*229656*/ OPC_CheckInteger, 15, ++/*229658*/ OPC_CheckType, MVT::i32, ++/*229660*/ OPC_MoveParent, ++/*229661*/ OPC_MoveChild, 8, ++/*229663*/ OPC_CheckInteger, 15, ++/*229665*/ OPC_CheckType, MVT::i32, ++/*229667*/ OPC_MoveParent, ++/*229668*/ OPC_MoveChild, 9, ++/*229670*/ OPC_CheckInteger, 15, ++/*229672*/ OPC_CheckType, MVT::i32, ++/*229674*/ OPC_MoveParent, ++/*229675*/ OPC_MoveChild, 10, ++/*229677*/ OPC_CheckInteger, 15, ++/*229679*/ OPC_CheckType, MVT::i32, ++/*229681*/ OPC_MoveParent, ++/*229682*/ OPC_MoveChild, 11, ++/*229684*/ OPC_CheckInteger, 15, ++/*229686*/ OPC_CheckType, MVT::i32, ++/*229688*/ OPC_MoveParent, ++/*229689*/ OPC_MoveChild, 12, ++/*229691*/ OPC_CheckInteger, 15, ++/*229693*/ OPC_CheckType, MVT::i32, ++/*229695*/ OPC_MoveParent, ++/*229696*/ OPC_MoveChild, 13, ++/*229698*/ OPC_CheckInteger, 15, ++/*229700*/ OPC_CheckType, MVT::i32, ++/*229702*/ OPC_MoveParent, ++/*229703*/ OPC_MoveChild, 14, ++/*229705*/ OPC_CheckInteger, 15, ++/*229707*/ OPC_CheckType, MVT::i32, ++/*229709*/ OPC_MoveParent, ++/*229710*/ OPC_MoveChild, 15, ++/*229712*/ OPC_CheckInteger, 15, ++/*229714*/ OPC_CheckType, MVT::i32, ++/*229716*/ OPC_MoveParent, ++/*229717*/ OPC_CheckType, MVT::v16i16, ++/*229719*/ OPC_MoveParent, ++/*229720*/ OPC_MoveParent, ++/*229721*/ OPC_MoveParent, ++/*229722*/ OPC_MoveChild1, ++/*229723*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*229726*/ OPC_CheckChild0Integer, 1, ++/*229728*/ OPC_CheckChild0Type, MVT::i32, ++/*229730*/ OPC_CheckChild1Integer, 1, ++/*229732*/ OPC_CheckChild1Type, MVT::i32, ++/*229734*/ OPC_CheckChild2Integer, 1, ++/*229736*/ OPC_CheckChild2Type, MVT::i32, ++/*229738*/ OPC_CheckChild3Integer, 1, ++/*229740*/ OPC_CheckChild3Type, MVT::i32, ++/*229742*/ OPC_CheckChild4Integer, 1, ++/*229744*/ OPC_CheckChild4Type, MVT::i32, ++/*229746*/ OPC_MoveChild5, ++/*229747*/ OPC_CheckInteger, 1, ++/*229749*/ OPC_CheckType, MVT::i32, ++/*229751*/ OPC_MoveParent, ++/*229752*/ OPC_MoveChild6, ++/*229753*/ OPC_CheckInteger, 1, ++/*229755*/ OPC_CheckType, MVT::i32, ++/*229757*/ OPC_MoveParent, ++/*229758*/ OPC_MoveChild7, ++/*229759*/ OPC_CheckInteger, 1, ++/*229761*/ OPC_CheckType, MVT::i32, ++/*229763*/ OPC_MoveParent, ++/*229764*/ OPC_MoveChild, 8, ++/*229766*/ OPC_CheckInteger, 1, ++/*229768*/ OPC_CheckType, MVT::i32, ++/*229770*/ OPC_MoveParent, ++/*229771*/ OPC_MoveChild, 9, ++/*229773*/ OPC_CheckInteger, 1, ++/*229775*/ OPC_CheckType, MVT::i32, ++/*229777*/ OPC_MoveParent, ++/*229778*/ OPC_MoveChild, 10, ++/*229780*/ OPC_CheckInteger, 1, ++/*229782*/ OPC_CheckType, MVT::i32, ++/*229784*/ OPC_MoveParent, ++/*229785*/ OPC_MoveChild, 11, ++/*229787*/ OPC_CheckInteger, 1, ++/*229789*/ OPC_CheckType, MVT::i32, ++/*229791*/ OPC_MoveParent, ++/*229792*/ OPC_MoveChild, 12, ++/*229794*/ OPC_CheckInteger, 1, ++/*229796*/ OPC_CheckType, MVT::i32, ++/*229798*/ OPC_MoveParent, ++/*229799*/ OPC_MoveChild, 13, ++/*229801*/ OPC_CheckInteger, 1, ++/*229803*/ OPC_CheckType, MVT::i32, ++/*229805*/ OPC_MoveParent, ++/*229806*/ OPC_MoveChild, 14, ++/*229808*/ OPC_CheckInteger, 1, ++/*229810*/ OPC_CheckType, MVT::i32, ++/*229812*/ OPC_MoveParent, ++/*229813*/ OPC_MoveChild, 15, ++/*229815*/ OPC_CheckInteger, 1, ++/*229817*/ OPC_CheckType, MVT::i32, ++/*229819*/ OPC_MoveParent, ++/*229820*/ OPC_CheckType, MVT::v16i16, ++/*229822*/ OPC_MoveParent, ++/*229823*/ OPC_CheckType, MVT::v16i16, ++/*229825*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*229827*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$b), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*229835*/ 0, /*End of Scope*/ ++/*229836*/ /*Scope*/ 41|128,4/*553*/, /*->230391*/ ++/*229838*/ OPC_MoveChild0, ++/*229839*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*229842*/ OPC_CheckChild0Integer, 1, ++/*229844*/ OPC_CheckChild0Type, MVT::i32, ++/*229846*/ OPC_CheckChild1Integer, 1, ++/*229848*/ OPC_CheckChild1Type, MVT::i32, ++/*229850*/ OPC_CheckChild2Integer, 1, ++/*229852*/ OPC_CheckChild2Type, MVT::i32, ++/*229854*/ OPC_CheckChild3Integer, 1, ++/*229856*/ OPC_CheckChild3Type, MVT::i32, ++/*229858*/ OPC_CheckChild4Integer, 1, ++/*229860*/ OPC_CheckChild4Type, MVT::i32, ++/*229862*/ OPC_MoveChild5, ++/*229863*/ OPC_CheckInteger, 1, ++/*229865*/ OPC_CheckType, MVT::i32, ++/*229867*/ OPC_MoveParent, ++/*229868*/ OPC_MoveChild6, ++/*229869*/ OPC_CheckInteger, 1, ++/*229871*/ OPC_CheckType, MVT::i32, ++/*229873*/ OPC_MoveParent, ++/*229874*/ OPC_MoveChild7, ++/*229875*/ OPC_CheckInteger, 1, ++/*229877*/ OPC_CheckType, MVT::i32, ++/*229879*/ OPC_MoveParent, ++/*229880*/ OPC_MoveChild, 8, ++/*229882*/ OPC_CheckInteger, 1, ++/*229884*/ OPC_CheckType, MVT::i32, ++/*229886*/ OPC_MoveParent, ++/*229887*/ OPC_MoveChild, 9, ++/*229889*/ OPC_CheckInteger, 1, ++/*229891*/ OPC_CheckType, MVT::i32, ++/*229893*/ OPC_MoveParent, ++/*229894*/ OPC_MoveChild, 10, ++/*229896*/ OPC_CheckInteger, 1, ++/*229898*/ OPC_CheckType, MVT::i32, ++/*229900*/ OPC_MoveParent, ++/*229901*/ OPC_MoveChild, 11, ++/*229903*/ OPC_CheckInteger, 1, ++/*229905*/ OPC_CheckType, MVT::i32, ++/*229907*/ OPC_MoveParent, ++/*229908*/ OPC_MoveChild, 12, ++/*229910*/ OPC_CheckInteger, 1, ++/*229912*/ OPC_CheckType, MVT::i32, ++/*229914*/ OPC_MoveParent, ++/*229915*/ OPC_MoveChild, 13, ++/*229917*/ OPC_CheckInteger, 1, ++/*229919*/ OPC_CheckType, MVT::i32, ++/*229921*/ OPC_MoveParent, ++/*229922*/ OPC_MoveChild, 14, ++/*229924*/ OPC_CheckInteger, 1, ++/*229926*/ OPC_CheckType, MVT::i32, ++/*229928*/ OPC_MoveParent, ++/*229929*/ OPC_MoveChild, 15, ++/*229931*/ OPC_CheckInteger, 1, ++/*229933*/ OPC_CheckType, MVT::i32, ++/*229935*/ OPC_MoveParent, ++/*229936*/ OPC_MoveParent, ++/*229937*/ OPC_MoveChild1, ++/*229938*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*229941*/ OPC_Scope, 94|128,1/*222*/, /*->230166*/ // 2 children in Scope ++/*229944*/ OPC_CheckChild0Same, 0, ++/*229946*/ OPC_CheckChild1Same, 1, ++/*229948*/ OPC_MoveParent, ++/*229949*/ OPC_MoveParent, ++/*229950*/ OPC_MoveChild1, ++/*229951*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*229954*/ OPC_CheckChild0Integer, 15, ++/*229956*/ OPC_CheckChild0Type, MVT::i32, ++/*229958*/ OPC_CheckChild1Integer, 15, ++/*229960*/ OPC_CheckChild1Type, MVT::i32, ++/*229962*/ OPC_CheckChild2Integer, 15, ++/*229964*/ OPC_CheckChild2Type, MVT::i32, ++/*229966*/ OPC_CheckChild3Integer, 15, ++/*229968*/ OPC_CheckChild3Type, MVT::i32, ++/*229970*/ OPC_CheckChild4Integer, 15, ++/*229972*/ OPC_CheckChild4Type, MVT::i32, ++/*229974*/ OPC_MoveChild5, ++/*229975*/ OPC_CheckInteger, 15, ++/*229977*/ OPC_CheckType, MVT::i32, ++/*229979*/ OPC_MoveParent, ++/*229980*/ OPC_MoveChild6, ++/*229981*/ OPC_CheckInteger, 15, ++/*229983*/ OPC_CheckType, MVT::i32, ++/*229985*/ OPC_MoveParent, ++/*229986*/ OPC_MoveChild7, ++/*229987*/ OPC_CheckInteger, 15, ++/*229989*/ OPC_CheckType, MVT::i32, ++/*229991*/ OPC_MoveParent, ++/*229992*/ OPC_MoveChild, 8, ++/*229994*/ OPC_CheckInteger, 15, ++/*229996*/ OPC_CheckType, MVT::i32, ++/*229998*/ OPC_MoveParent, ++/*229999*/ OPC_MoveChild, 9, ++/*230001*/ OPC_CheckInteger, 15, ++/*230003*/ OPC_CheckType, MVT::i32, ++/*230005*/ OPC_MoveParent, ++/*230006*/ OPC_MoveChild, 10, ++/*230008*/ OPC_CheckInteger, 15, ++/*230010*/ OPC_CheckType, MVT::i32, ++/*230012*/ OPC_MoveParent, ++/*230013*/ OPC_MoveChild, 11, ++/*230015*/ OPC_CheckInteger, 15, ++/*230017*/ OPC_CheckType, MVT::i32, ++/*230019*/ OPC_MoveParent, ++/*230020*/ OPC_MoveChild, 12, ++/*230022*/ OPC_CheckInteger, 15, ++/*230024*/ OPC_CheckType, MVT::i32, ++/*230026*/ OPC_MoveParent, ++/*230027*/ OPC_MoveChild, 13, ++/*230029*/ OPC_CheckInteger, 15, ++/*230031*/ OPC_CheckType, MVT::i32, ++/*230033*/ OPC_MoveParent, ++/*230034*/ OPC_MoveChild, 14, ++/*230036*/ OPC_CheckInteger, 15, ++/*230038*/ OPC_CheckType, MVT::i32, ++/*230040*/ OPC_MoveParent, ++/*230041*/ OPC_MoveChild, 15, ++/*230043*/ OPC_CheckInteger, 15, ++/*230045*/ OPC_CheckType, MVT::i32, ++/*230047*/ OPC_MoveParent, ++/*230048*/ OPC_CheckType, MVT::v16i16, ++/*230050*/ OPC_MoveParent, ++/*230051*/ OPC_MoveParent, ++/*230052*/ OPC_MoveParent, ++/*230053*/ OPC_MoveChild1, ++/*230054*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*230057*/ OPC_CheckChild0Integer, 1, ++/*230059*/ OPC_CheckChild0Type, MVT::i32, ++/*230061*/ OPC_CheckChild1Integer, 1, ++/*230063*/ OPC_CheckChild1Type, MVT::i32, ++/*230065*/ OPC_CheckChild2Integer, 1, ++/*230067*/ OPC_CheckChild2Type, MVT::i32, ++/*230069*/ OPC_CheckChild3Integer, 1, ++/*230071*/ OPC_CheckChild3Type, MVT::i32, ++/*230073*/ OPC_CheckChild4Integer, 1, ++/*230075*/ OPC_CheckChild4Type, MVT::i32, ++/*230077*/ OPC_MoveChild5, ++/*230078*/ OPC_CheckInteger, 1, ++/*230080*/ OPC_CheckType, MVT::i32, ++/*230082*/ OPC_MoveParent, ++/*230083*/ OPC_MoveChild6, ++/*230084*/ OPC_CheckInteger, 1, ++/*230086*/ OPC_CheckType, MVT::i32, ++/*230088*/ OPC_MoveParent, ++/*230089*/ OPC_MoveChild7, ++/*230090*/ OPC_CheckInteger, 1, ++/*230092*/ OPC_CheckType, MVT::i32, ++/*230094*/ OPC_MoveParent, ++/*230095*/ OPC_MoveChild, 8, ++/*230097*/ OPC_CheckInteger, 1, ++/*230099*/ OPC_CheckType, MVT::i32, ++/*230101*/ OPC_MoveParent, ++/*230102*/ OPC_MoveChild, 9, ++/*230104*/ OPC_CheckInteger, 1, ++/*230106*/ OPC_CheckType, MVT::i32, ++/*230108*/ OPC_MoveParent, ++/*230109*/ OPC_MoveChild, 10, ++/*230111*/ OPC_CheckInteger, 1, ++/*230113*/ OPC_CheckType, MVT::i32, ++/*230115*/ OPC_MoveParent, ++/*230116*/ OPC_MoveChild, 11, ++/*230118*/ OPC_CheckInteger, 1, ++/*230120*/ OPC_CheckType, MVT::i32, ++/*230122*/ OPC_MoveParent, ++/*230123*/ OPC_MoveChild, 12, ++/*230125*/ OPC_CheckInteger, 1, ++/*230127*/ OPC_CheckType, MVT::i32, ++/*230129*/ OPC_MoveParent, ++/*230130*/ OPC_MoveChild, 13, ++/*230132*/ OPC_CheckInteger, 1, ++/*230134*/ OPC_CheckType, MVT::i32, ++/*230136*/ OPC_MoveParent, ++/*230137*/ OPC_MoveChild, 14, ++/*230139*/ OPC_CheckInteger, 1, ++/*230141*/ OPC_CheckType, MVT::i32, ++/*230143*/ OPC_MoveParent, ++/*230144*/ OPC_MoveChild, 15, ++/*230146*/ OPC_CheckInteger, 1, ++/*230148*/ OPC_CheckType, MVT::i32, ++/*230150*/ OPC_MoveParent, ++/*230151*/ OPC_CheckType, MVT::v16i16, ++/*230153*/ OPC_MoveParent, ++/*230154*/ OPC_CheckType, MVT::v16i16, ++/*230156*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*230158*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$b), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*230166*/ /*Scope*/ 94|128,1/*222*/, /*->230390*/ ++/*230168*/ OPC_CheckChild0Same, 1, ++/*230170*/ OPC_CheckChild1Same, 0, ++/*230172*/ OPC_MoveParent, ++/*230173*/ OPC_MoveParent, ++/*230174*/ OPC_MoveChild1, ++/*230175*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*230178*/ OPC_CheckChild0Integer, 15, ++/*230180*/ OPC_CheckChild0Type, MVT::i32, ++/*230182*/ OPC_CheckChild1Integer, 15, ++/*230184*/ OPC_CheckChild1Type, MVT::i32, ++/*230186*/ OPC_CheckChild2Integer, 15, ++/*230188*/ OPC_CheckChild2Type, MVT::i32, ++/*230190*/ OPC_CheckChild3Integer, 15, ++/*230192*/ OPC_CheckChild3Type, MVT::i32, ++/*230194*/ OPC_CheckChild4Integer, 15, ++/*230196*/ OPC_CheckChild4Type, MVT::i32, ++/*230198*/ OPC_MoveChild5, ++/*230199*/ OPC_CheckInteger, 15, ++/*230201*/ OPC_CheckType, MVT::i32, ++/*230203*/ OPC_MoveParent, ++/*230204*/ OPC_MoveChild6, ++/*230205*/ OPC_CheckInteger, 15, ++/*230207*/ OPC_CheckType, MVT::i32, ++/*230209*/ OPC_MoveParent, ++/*230210*/ OPC_MoveChild7, ++/*230211*/ OPC_CheckInteger, 15, ++/*230213*/ OPC_CheckType, MVT::i32, ++/*230215*/ OPC_MoveParent, ++/*230216*/ OPC_MoveChild, 8, ++/*230218*/ OPC_CheckInteger, 15, ++/*230220*/ OPC_CheckType, MVT::i32, ++/*230222*/ OPC_MoveParent, ++/*230223*/ OPC_MoveChild, 9, ++/*230225*/ OPC_CheckInteger, 15, ++/*230227*/ OPC_CheckType, MVT::i32, ++/*230229*/ OPC_MoveParent, ++/*230230*/ OPC_MoveChild, 10, ++/*230232*/ OPC_CheckInteger, 15, ++/*230234*/ OPC_CheckType, MVT::i32, ++/*230236*/ OPC_MoveParent, ++/*230237*/ OPC_MoveChild, 11, ++/*230239*/ OPC_CheckInteger, 15, ++/*230241*/ OPC_CheckType, MVT::i32, ++/*230243*/ OPC_MoveParent, ++/*230244*/ OPC_MoveChild, 12, ++/*230246*/ OPC_CheckInteger, 15, ++/*230248*/ OPC_CheckType, MVT::i32, ++/*230250*/ OPC_MoveParent, ++/*230251*/ OPC_MoveChild, 13, ++/*230253*/ OPC_CheckInteger, 15, ++/*230255*/ OPC_CheckType, MVT::i32, ++/*230257*/ OPC_MoveParent, ++/*230258*/ OPC_MoveChild, 14, ++/*230260*/ OPC_CheckInteger, 15, ++/*230262*/ OPC_CheckType, MVT::i32, ++/*230264*/ OPC_MoveParent, ++/*230265*/ OPC_MoveChild, 15, ++/*230267*/ OPC_CheckInteger, 15, ++/*230269*/ OPC_CheckType, MVT::i32, ++/*230271*/ OPC_MoveParent, ++/*230272*/ OPC_CheckType, MVT::v16i16, ++/*230274*/ OPC_MoveParent, ++/*230275*/ OPC_MoveParent, ++/*230276*/ OPC_MoveParent, ++/*230277*/ OPC_MoveChild1, ++/*230278*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*230281*/ OPC_CheckChild0Integer, 1, ++/*230283*/ OPC_CheckChild0Type, MVT::i32, ++/*230285*/ OPC_CheckChild1Integer, 1, ++/*230287*/ OPC_CheckChild1Type, MVT::i32, ++/*230289*/ OPC_CheckChild2Integer, 1, ++/*230291*/ OPC_CheckChild2Type, MVT::i32, ++/*230293*/ OPC_CheckChild3Integer, 1, ++/*230295*/ OPC_CheckChild3Type, MVT::i32, ++/*230297*/ OPC_CheckChild4Integer, 1, ++/*230299*/ OPC_CheckChild4Type, MVT::i32, ++/*230301*/ OPC_MoveChild5, ++/*230302*/ OPC_CheckInteger, 1, ++/*230304*/ OPC_CheckType, MVT::i32, ++/*230306*/ OPC_MoveParent, ++/*230307*/ OPC_MoveChild6, ++/*230308*/ OPC_CheckInteger, 1, ++/*230310*/ OPC_CheckType, MVT::i32, ++/*230312*/ OPC_MoveParent, ++/*230313*/ OPC_MoveChild7, ++/*230314*/ OPC_CheckInteger, 1, ++/*230316*/ OPC_CheckType, MVT::i32, ++/*230318*/ OPC_MoveParent, ++/*230319*/ OPC_MoveChild, 8, ++/*230321*/ OPC_CheckInteger, 1, ++/*230323*/ OPC_CheckType, MVT::i32, ++/*230325*/ OPC_MoveParent, ++/*230326*/ OPC_MoveChild, 9, ++/*230328*/ OPC_CheckInteger, 1, ++/*230330*/ OPC_CheckType, MVT::i32, ++/*230332*/ OPC_MoveParent, ++/*230333*/ OPC_MoveChild, 10, ++/*230335*/ OPC_CheckInteger, 1, ++/*230337*/ OPC_CheckType, MVT::i32, ++/*230339*/ OPC_MoveParent, ++/*230340*/ OPC_MoveChild, 11, ++/*230342*/ OPC_CheckInteger, 1, ++/*230344*/ OPC_CheckType, MVT::i32, ++/*230346*/ OPC_MoveParent, ++/*230347*/ OPC_MoveChild, 12, ++/*230349*/ OPC_CheckInteger, 1, ++/*230351*/ OPC_CheckType, MVT::i32, ++/*230353*/ OPC_MoveParent, ++/*230354*/ OPC_MoveChild, 13, ++/*230356*/ OPC_CheckInteger, 1, ++/*230358*/ OPC_CheckType, MVT::i32, ++/*230360*/ OPC_MoveParent, ++/*230361*/ OPC_MoveChild, 14, ++/*230363*/ OPC_CheckInteger, 1, ++/*230365*/ OPC_CheckType, MVT::i32, ++/*230367*/ OPC_MoveParent, ++/*230368*/ OPC_MoveChild, 15, ++/*230370*/ OPC_CheckInteger, 1, ++/*230372*/ OPC_CheckType, MVT::i32, ++/*230374*/ OPC_MoveParent, ++/*230375*/ OPC_CheckType, MVT::v16i16, ++/*230377*/ OPC_MoveParent, ++/*230378*/ OPC_CheckType, MVT::v16i16, ++/*230380*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*230382*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$b), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*230390*/ 0, /*End of Scope*/ ++/*230391*/ 0, /*End of Scope*/ ++/*230392*/ /*Scope*/ 78|128,30/*3918*/, /*->234312*/ ++/*230394*/ OPC_MoveChild0, ++/*230395*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*230398*/ OPC_CheckChild0Integer, 1, ++/*230400*/ OPC_CheckChild0Type, MVT::i32, ++/*230402*/ OPC_CheckChild1Integer, 1, ++/*230404*/ OPC_CheckChild1Type, MVT::i32, ++/*230406*/ OPC_CheckChild2Integer, 1, ++/*230408*/ OPC_CheckChild2Type, MVT::i32, ++/*230410*/ OPC_CheckChild3Integer, 1, ++/*230412*/ OPC_CheckChild3Type, MVT::i32, ++/*230414*/ OPC_CheckChild4Integer, 1, ++/*230416*/ OPC_CheckChild4Type, MVT::i32, ++/*230418*/ OPC_MoveChild5, ++/*230419*/ OPC_CheckInteger, 1, ++/*230421*/ OPC_CheckType, MVT::i32, ++/*230423*/ OPC_MoveParent, ++/*230424*/ OPC_MoveChild6, ++/*230425*/ OPC_CheckInteger, 1, ++/*230427*/ OPC_CheckType, MVT::i32, ++/*230429*/ OPC_MoveParent, ++/*230430*/ OPC_MoveChild7, ++/*230431*/ OPC_CheckInteger, 1, ++/*230433*/ OPC_CheckType, MVT::i32, ++/*230435*/ OPC_MoveParent, ++/*230436*/ OPC_MoveChild, 8, ++/*230438*/ OPC_CheckInteger, 1, ++/*230440*/ OPC_CheckType, MVT::i32, ++/*230442*/ OPC_MoveParent, ++/*230443*/ OPC_MoveChild, 9, ++/*230445*/ OPC_CheckInteger, 1, ++/*230447*/ OPC_CheckType, MVT::i32, ++/*230449*/ OPC_MoveParent, ++/*230450*/ OPC_MoveChild, 10, ++/*230452*/ OPC_CheckInteger, 1, ++/*230454*/ OPC_CheckType, MVT::i32, ++/*230456*/ OPC_MoveParent, ++/*230457*/ OPC_MoveChild, 11, ++/*230459*/ OPC_CheckInteger, 1, ++/*230461*/ OPC_CheckType, MVT::i32, ++/*230463*/ OPC_MoveParent, ++/*230464*/ OPC_MoveChild, 12, ++/*230466*/ OPC_CheckInteger, 1, ++/*230468*/ OPC_CheckType, MVT::i32, ++/*230470*/ OPC_MoveParent, ++/*230471*/ OPC_MoveChild, 13, ++/*230473*/ OPC_CheckInteger, 1, ++/*230475*/ OPC_CheckType, MVT::i32, ++/*230477*/ OPC_MoveParent, ++/*230478*/ OPC_MoveChild, 14, ++/*230480*/ OPC_CheckInteger, 1, ++/*230482*/ OPC_CheckType, MVT::i32, ++/*230484*/ OPC_MoveParent, ++/*230485*/ OPC_MoveChild, 15, ++/*230487*/ OPC_CheckInteger, 1, ++/*230489*/ OPC_CheckType, MVT::i32, ++/*230491*/ OPC_MoveParent, ++/*230492*/ OPC_MoveParent, ++/*230493*/ OPC_RecordChild1, // #0 = $b ++/*230494*/ OPC_MoveParent, ++/*230495*/ OPC_RecordChild1, // #1 = $a ++/*230496*/ OPC_MoveParent, ++/*230497*/ OPC_MoveChild1, ++/*230498*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*230501*/ OPC_MoveChild0, ++/*230502*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*230505*/ OPC_Scope, 24|128,15/*1944*/, /*->232452*/ // 4 children in Scope ++/*230508*/ OPC_MoveChild0, ++/*230509*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*230512*/ OPC_Scope, 65|128,2/*321*/, /*->230836*/ // 6 children in Scope ++/*230515*/ OPC_MoveChild0, ++/*230516*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*230519*/ OPC_CheckChild0Integer, 1, ++/*230521*/ OPC_CheckChild0Type, MVT::i32, ++/*230523*/ OPC_CheckChild1Integer, 1, ++/*230525*/ OPC_CheckChild1Type, MVT::i32, ++/*230527*/ OPC_CheckChild2Integer, 1, ++/*230529*/ OPC_CheckChild2Type, MVT::i32, ++/*230531*/ OPC_CheckChild3Integer, 1, ++/*230533*/ OPC_CheckChild3Type, MVT::i32, ++/*230535*/ OPC_CheckChild4Integer, 1, ++/*230537*/ OPC_CheckChild4Type, MVT::i32, ++/*230539*/ OPC_MoveChild5, ++/*230540*/ OPC_CheckInteger, 1, ++/*230542*/ OPC_CheckType, MVT::i32, ++/*230544*/ OPC_MoveParent, ++/*230545*/ OPC_MoveChild6, ++/*230546*/ OPC_CheckInteger, 1, ++/*230548*/ OPC_CheckType, MVT::i32, ++/*230550*/ OPC_MoveParent, ++/*230551*/ OPC_MoveChild7, ++/*230552*/ OPC_CheckInteger, 1, ++/*230554*/ OPC_CheckType, MVT::i32, ++/*230556*/ OPC_MoveParent, ++/*230557*/ OPC_MoveChild, 8, ++/*230559*/ OPC_CheckInteger, 1, ++/*230561*/ OPC_CheckType, MVT::i32, ++/*230563*/ OPC_MoveParent, ++/*230564*/ OPC_MoveChild, 9, ++/*230566*/ OPC_CheckInteger, 1, ++/*230568*/ OPC_CheckType, MVT::i32, ++/*230570*/ OPC_MoveParent, ++/*230571*/ OPC_MoveChild, 10, ++/*230573*/ OPC_CheckInteger, 1, ++/*230575*/ OPC_CheckType, MVT::i32, ++/*230577*/ OPC_MoveParent, ++/*230578*/ OPC_MoveChild, 11, ++/*230580*/ OPC_CheckInteger, 1, ++/*230582*/ OPC_CheckType, MVT::i32, ++/*230584*/ OPC_MoveParent, ++/*230585*/ OPC_MoveChild, 12, ++/*230587*/ OPC_CheckInteger, 1, ++/*230589*/ OPC_CheckType, MVT::i32, ++/*230591*/ OPC_MoveParent, ++/*230592*/ OPC_MoveChild, 13, ++/*230594*/ OPC_CheckInteger, 1, ++/*230596*/ OPC_CheckType, MVT::i32, ++/*230598*/ OPC_MoveParent, ++/*230599*/ OPC_MoveChild, 14, ++/*230601*/ OPC_CheckInteger, 1, ++/*230603*/ OPC_CheckType, MVT::i32, ++/*230605*/ OPC_MoveParent, ++/*230606*/ OPC_MoveChild, 15, ++/*230608*/ OPC_CheckInteger, 1, ++/*230610*/ OPC_CheckType, MVT::i32, ++/*230612*/ OPC_MoveParent, ++/*230613*/ OPC_MoveParent, ++/*230614*/ OPC_CheckChild1Same, 1, ++/*230616*/ OPC_MoveParent, ++/*230617*/ OPC_CheckChild1Same, 0, ++/*230619*/ OPC_MoveParent, ++/*230620*/ OPC_MoveChild1, ++/*230621*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*230624*/ OPC_CheckChild0Integer, 15, ++/*230626*/ OPC_CheckChild0Type, MVT::i32, ++/*230628*/ OPC_CheckChild1Integer, 15, ++/*230630*/ OPC_CheckChild1Type, MVT::i32, ++/*230632*/ OPC_CheckChild2Integer, 15, ++/*230634*/ OPC_CheckChild2Type, MVT::i32, ++/*230636*/ OPC_CheckChild3Integer, 15, ++/*230638*/ OPC_CheckChild3Type, MVT::i32, ++/*230640*/ OPC_CheckChild4Integer, 15, ++/*230642*/ OPC_CheckChild4Type, MVT::i32, ++/*230644*/ OPC_MoveChild5, ++/*230645*/ OPC_CheckInteger, 15, ++/*230647*/ OPC_CheckType, MVT::i32, ++/*230649*/ OPC_MoveParent, ++/*230650*/ OPC_MoveChild6, ++/*230651*/ OPC_CheckInteger, 15, ++/*230653*/ OPC_CheckType, MVT::i32, ++/*230655*/ OPC_MoveParent, ++/*230656*/ OPC_MoveChild7, ++/*230657*/ OPC_CheckInteger, 15, ++/*230659*/ OPC_CheckType, MVT::i32, ++/*230661*/ OPC_MoveParent, ++/*230662*/ OPC_MoveChild, 8, ++/*230664*/ OPC_CheckInteger, 15, ++/*230666*/ OPC_CheckType, MVT::i32, ++/*230668*/ OPC_MoveParent, ++/*230669*/ OPC_MoveChild, 9, ++/*230671*/ OPC_CheckInteger, 15, ++/*230673*/ OPC_CheckType, MVT::i32, ++/*230675*/ OPC_MoveParent, ++/*230676*/ OPC_MoveChild, 10, ++/*230678*/ OPC_CheckInteger, 15, ++/*230680*/ OPC_CheckType, MVT::i32, ++/*230682*/ OPC_MoveParent, ++/*230683*/ OPC_MoveChild, 11, ++/*230685*/ OPC_CheckInteger, 15, ++/*230687*/ OPC_CheckType, MVT::i32, ++/*230689*/ OPC_MoveParent, ++/*230690*/ OPC_MoveChild, 12, ++/*230692*/ OPC_CheckInteger, 15, ++/*230694*/ OPC_CheckType, MVT::i32, ++/*230696*/ OPC_MoveParent, ++/*230697*/ OPC_MoveChild, 13, ++/*230699*/ OPC_CheckInteger, 15, ++/*230701*/ OPC_CheckType, MVT::i32, ++/*230703*/ OPC_MoveParent, ++/*230704*/ OPC_MoveChild, 14, ++/*230706*/ OPC_CheckInteger, 15, ++/*230708*/ OPC_CheckType, MVT::i32, ++/*230710*/ OPC_MoveParent, ++/*230711*/ OPC_MoveChild, 15, ++/*230713*/ OPC_CheckInteger, 15, ++/*230715*/ OPC_CheckType, MVT::i32, ++/*230717*/ OPC_MoveParent, ++/*230718*/ OPC_CheckType, MVT::v16i16, ++/*230720*/ OPC_MoveParent, ++/*230721*/ OPC_MoveParent, ++/*230722*/ OPC_MoveParent, ++/*230723*/ OPC_MoveChild1, ++/*230724*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*230727*/ OPC_CheckChild0Integer, 1, ++/*230729*/ OPC_CheckChild0Type, MVT::i32, ++/*230731*/ OPC_CheckChild1Integer, 1, ++/*230733*/ OPC_CheckChild1Type, MVT::i32, ++/*230735*/ OPC_CheckChild2Integer, 1, ++/*230737*/ OPC_CheckChild2Type, MVT::i32, ++/*230739*/ OPC_CheckChild3Integer, 1, ++/*230741*/ OPC_CheckChild3Type, MVT::i32, ++/*230743*/ OPC_CheckChild4Integer, 1, ++/*230745*/ OPC_CheckChild4Type, MVT::i32, ++/*230747*/ OPC_MoveChild5, ++/*230748*/ OPC_CheckInteger, 1, ++/*230750*/ OPC_CheckType, MVT::i32, ++/*230752*/ OPC_MoveParent, ++/*230753*/ OPC_MoveChild6, ++/*230754*/ OPC_CheckInteger, 1, ++/*230756*/ OPC_CheckType, MVT::i32, ++/*230758*/ OPC_MoveParent, ++/*230759*/ OPC_MoveChild7, ++/*230760*/ OPC_CheckInteger, 1, ++/*230762*/ OPC_CheckType, MVT::i32, ++/*230764*/ OPC_MoveParent, ++/*230765*/ OPC_MoveChild, 8, ++/*230767*/ OPC_CheckInteger, 1, ++/*230769*/ OPC_CheckType, MVT::i32, ++/*230771*/ OPC_MoveParent, ++/*230772*/ OPC_MoveChild, 9, ++/*230774*/ OPC_CheckInteger, 1, ++/*230776*/ OPC_CheckType, MVT::i32, ++/*230778*/ OPC_MoveParent, ++/*230779*/ OPC_MoveChild, 10, ++/*230781*/ OPC_CheckInteger, 1, ++/*230783*/ OPC_CheckType, MVT::i32, ++/*230785*/ OPC_MoveParent, ++/*230786*/ OPC_MoveChild, 11, ++/*230788*/ OPC_CheckInteger, 1, ++/*230790*/ OPC_CheckType, MVT::i32, ++/*230792*/ OPC_MoveParent, ++/*230793*/ OPC_MoveChild, 12, ++/*230795*/ OPC_CheckInteger, 1, ++/*230797*/ OPC_CheckType, MVT::i32, ++/*230799*/ OPC_MoveParent, ++/*230800*/ OPC_MoveChild, 13, ++/*230802*/ OPC_CheckInteger, 1, ++/*230804*/ OPC_CheckType, MVT::i32, ++/*230806*/ OPC_MoveParent, ++/*230807*/ OPC_MoveChild, 14, ++/*230809*/ OPC_CheckInteger, 1, ++/*230811*/ OPC_CheckType, MVT::i32, ++/*230813*/ OPC_MoveParent, ++/*230814*/ OPC_MoveChild, 15, ++/*230816*/ OPC_CheckInteger, 1, ++/*230818*/ OPC_CheckType, MVT::i32, ++/*230820*/ OPC_MoveParent, ++/*230821*/ OPC_CheckType, MVT::v16i16, ++/*230823*/ OPC_MoveParent, ++/*230824*/ OPC_CheckType, MVT::v16i16, ++/*230826*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*230828*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b), LASX256H:{ *:[v16i16] }:$a), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a), LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*230836*/ /*Scope*/ 65|128,2/*321*/, /*->231159*/ ++/*230838*/ OPC_CheckChild0Same, 1, ++/*230840*/ OPC_MoveChild1, ++/*230841*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*230844*/ OPC_CheckChild0Integer, 1, ++/*230846*/ OPC_CheckChild0Type, MVT::i32, ++/*230848*/ OPC_CheckChild1Integer, 1, ++/*230850*/ OPC_CheckChild1Type, MVT::i32, ++/*230852*/ OPC_CheckChild2Integer, 1, ++/*230854*/ OPC_CheckChild2Type, MVT::i32, ++/*230856*/ OPC_CheckChild3Integer, 1, ++/*230858*/ OPC_CheckChild3Type, MVT::i32, ++/*230860*/ OPC_CheckChild4Integer, 1, ++/*230862*/ OPC_CheckChild4Type, MVT::i32, ++/*230864*/ OPC_MoveChild5, ++/*230865*/ OPC_CheckInteger, 1, ++/*230867*/ OPC_CheckType, MVT::i32, ++/*230869*/ OPC_MoveParent, ++/*230870*/ OPC_MoveChild6, ++/*230871*/ OPC_CheckInteger, 1, ++/*230873*/ OPC_CheckType, MVT::i32, ++/*230875*/ OPC_MoveParent, ++/*230876*/ OPC_MoveChild7, ++/*230877*/ OPC_CheckInteger, 1, ++/*230879*/ OPC_CheckType, MVT::i32, ++/*230881*/ OPC_MoveParent, ++/*230882*/ OPC_MoveChild, 8, ++/*230884*/ OPC_CheckInteger, 1, ++/*230886*/ OPC_CheckType, MVT::i32, ++/*230888*/ OPC_MoveParent, ++/*230889*/ OPC_MoveChild, 9, ++/*230891*/ OPC_CheckInteger, 1, ++/*230893*/ OPC_CheckType, MVT::i32, ++/*230895*/ OPC_MoveParent, ++/*230896*/ OPC_MoveChild, 10, ++/*230898*/ OPC_CheckInteger, 1, ++/*230900*/ OPC_CheckType, MVT::i32, ++/*230902*/ OPC_MoveParent, ++/*230903*/ OPC_MoveChild, 11, ++/*230905*/ OPC_CheckInteger, 1, ++/*230907*/ OPC_CheckType, MVT::i32, ++/*230909*/ OPC_MoveParent, ++/*230910*/ OPC_MoveChild, 12, ++/*230912*/ OPC_CheckInteger, 1, ++/*230914*/ OPC_CheckType, MVT::i32, ++/*230916*/ OPC_MoveParent, ++/*230917*/ OPC_MoveChild, 13, ++/*230919*/ OPC_CheckInteger, 1, ++/*230921*/ OPC_CheckType, MVT::i32, ++/*230923*/ OPC_MoveParent, ++/*230924*/ OPC_MoveChild, 14, ++/*230926*/ OPC_CheckInteger, 1, ++/*230928*/ OPC_CheckType, MVT::i32, ++/*230930*/ OPC_MoveParent, ++/*230931*/ OPC_MoveChild, 15, ++/*230933*/ OPC_CheckInteger, 1, ++/*230935*/ OPC_CheckType, MVT::i32, ++/*230937*/ OPC_MoveParent, ++/*230938*/ OPC_MoveParent, ++/*230939*/ OPC_MoveParent, ++/*230940*/ OPC_CheckChild1Same, 0, ++/*230942*/ OPC_MoveParent, ++/*230943*/ OPC_MoveChild1, ++/*230944*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*230947*/ OPC_CheckChild0Integer, 15, ++/*230949*/ OPC_CheckChild0Type, MVT::i32, ++/*230951*/ OPC_CheckChild1Integer, 15, ++/*230953*/ OPC_CheckChild1Type, MVT::i32, ++/*230955*/ OPC_CheckChild2Integer, 15, ++/*230957*/ OPC_CheckChild2Type, MVT::i32, ++/*230959*/ OPC_CheckChild3Integer, 15, ++/*230961*/ OPC_CheckChild3Type, MVT::i32, ++/*230963*/ OPC_CheckChild4Integer, 15, ++/*230965*/ OPC_CheckChild4Type, MVT::i32, ++/*230967*/ OPC_MoveChild5, ++/*230968*/ OPC_CheckInteger, 15, ++/*230970*/ OPC_CheckType, MVT::i32, ++/*230972*/ OPC_MoveParent, ++/*230973*/ OPC_MoveChild6, ++/*230974*/ OPC_CheckInteger, 15, ++/*230976*/ OPC_CheckType, MVT::i32, ++/*230978*/ OPC_MoveParent, ++/*230979*/ OPC_MoveChild7, ++/*230980*/ OPC_CheckInteger, 15, ++/*230982*/ OPC_CheckType, MVT::i32, ++/*230984*/ OPC_MoveParent, ++/*230985*/ OPC_MoveChild, 8, ++/*230987*/ OPC_CheckInteger, 15, ++/*230989*/ OPC_CheckType, MVT::i32, ++/*230991*/ OPC_MoveParent, ++/*230992*/ OPC_MoveChild, 9, ++/*230994*/ OPC_CheckInteger, 15, ++/*230996*/ OPC_CheckType, MVT::i32, ++/*230998*/ OPC_MoveParent, ++/*230999*/ OPC_MoveChild, 10, ++/*231001*/ OPC_CheckInteger, 15, ++/*231003*/ OPC_CheckType, MVT::i32, ++/*231005*/ OPC_MoveParent, ++/*231006*/ OPC_MoveChild, 11, ++/*231008*/ OPC_CheckInteger, 15, ++/*231010*/ OPC_CheckType, MVT::i32, ++/*231012*/ OPC_MoveParent, ++/*231013*/ OPC_MoveChild, 12, ++/*231015*/ OPC_CheckInteger, 15, ++/*231017*/ OPC_CheckType, MVT::i32, ++/*231019*/ OPC_MoveParent, ++/*231020*/ OPC_MoveChild, 13, ++/*231022*/ OPC_CheckInteger, 15, ++/*231024*/ OPC_CheckType, MVT::i32, ++/*231026*/ OPC_MoveParent, ++/*231027*/ OPC_MoveChild, 14, ++/*231029*/ OPC_CheckInteger, 15, ++/*231031*/ OPC_CheckType, MVT::i32, ++/*231033*/ OPC_MoveParent, ++/*231034*/ OPC_MoveChild, 15, ++/*231036*/ OPC_CheckInteger, 15, ++/*231038*/ OPC_CheckType, MVT::i32, ++/*231040*/ OPC_MoveParent, ++/*231041*/ OPC_CheckType, MVT::v16i16, ++/*231043*/ OPC_MoveParent, ++/*231044*/ OPC_MoveParent, ++/*231045*/ OPC_MoveParent, ++/*231046*/ OPC_MoveChild1, ++/*231047*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*231050*/ OPC_CheckChild0Integer, 1, ++/*231052*/ OPC_CheckChild0Type, MVT::i32, ++/*231054*/ OPC_CheckChild1Integer, 1, ++/*231056*/ OPC_CheckChild1Type, MVT::i32, ++/*231058*/ OPC_CheckChild2Integer, 1, ++/*231060*/ OPC_CheckChild2Type, MVT::i32, ++/*231062*/ OPC_CheckChild3Integer, 1, ++/*231064*/ OPC_CheckChild3Type, MVT::i32, ++/*231066*/ OPC_CheckChild4Integer, 1, ++/*231068*/ OPC_CheckChild4Type, MVT::i32, ++/*231070*/ OPC_MoveChild5, ++/*231071*/ OPC_CheckInteger, 1, ++/*231073*/ OPC_CheckType, MVT::i32, ++/*231075*/ OPC_MoveParent, ++/*231076*/ OPC_MoveChild6, ++/*231077*/ OPC_CheckInteger, 1, ++/*231079*/ OPC_CheckType, MVT::i32, ++/*231081*/ OPC_MoveParent, ++/*231082*/ OPC_MoveChild7, ++/*231083*/ OPC_CheckInteger, 1, ++/*231085*/ OPC_CheckType, MVT::i32, ++/*231087*/ OPC_MoveParent, ++/*231088*/ OPC_MoveChild, 8, ++/*231090*/ OPC_CheckInteger, 1, ++/*231092*/ OPC_CheckType, MVT::i32, ++/*231094*/ OPC_MoveParent, ++/*231095*/ OPC_MoveChild, 9, ++/*231097*/ OPC_CheckInteger, 1, ++/*231099*/ OPC_CheckType, MVT::i32, ++/*231101*/ OPC_MoveParent, ++/*231102*/ OPC_MoveChild, 10, ++/*231104*/ OPC_CheckInteger, 1, ++/*231106*/ OPC_CheckType, MVT::i32, ++/*231108*/ OPC_MoveParent, ++/*231109*/ OPC_MoveChild, 11, ++/*231111*/ OPC_CheckInteger, 1, ++/*231113*/ OPC_CheckType, MVT::i32, ++/*231115*/ OPC_MoveParent, ++/*231116*/ OPC_MoveChild, 12, ++/*231118*/ OPC_CheckInteger, 1, ++/*231120*/ OPC_CheckType, MVT::i32, ++/*231122*/ OPC_MoveParent, ++/*231123*/ OPC_MoveChild, 13, ++/*231125*/ OPC_CheckInteger, 1, ++/*231127*/ OPC_CheckType, MVT::i32, ++/*231129*/ OPC_MoveParent, ++/*231130*/ OPC_MoveChild, 14, ++/*231132*/ OPC_CheckInteger, 1, ++/*231134*/ OPC_CheckType, MVT::i32, ++/*231136*/ OPC_MoveParent, ++/*231137*/ OPC_MoveChild, 15, ++/*231139*/ OPC_CheckInteger, 1, ++/*231141*/ OPC_CheckType, MVT::i32, ++/*231143*/ OPC_MoveParent, ++/*231144*/ OPC_CheckType, MVT::v16i16, ++/*231146*/ OPC_MoveParent, ++/*231147*/ OPC_CheckType, MVT::v16i16, ++/*231149*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*231151*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b), LASX256H:{ *:[v16i16] }:$a), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*231159*/ /*Scope*/ 65|128,2/*321*/, /*->231482*/ ++/*231161*/ OPC_MoveChild0, ++/*231162*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*231165*/ OPC_CheckChild0Integer, 1, ++/*231167*/ OPC_CheckChild0Type, MVT::i32, ++/*231169*/ OPC_CheckChild1Integer, 1, ++/*231171*/ OPC_CheckChild1Type, MVT::i32, ++/*231173*/ OPC_CheckChild2Integer, 1, ++/*231175*/ OPC_CheckChild2Type, MVT::i32, ++/*231177*/ OPC_CheckChild3Integer, 1, ++/*231179*/ OPC_CheckChild3Type, MVT::i32, ++/*231181*/ OPC_CheckChild4Integer, 1, ++/*231183*/ OPC_CheckChild4Type, MVT::i32, ++/*231185*/ OPC_MoveChild5, ++/*231186*/ OPC_CheckInteger, 1, ++/*231188*/ OPC_CheckType, MVT::i32, ++/*231190*/ OPC_MoveParent, ++/*231191*/ OPC_MoveChild6, ++/*231192*/ OPC_CheckInteger, 1, ++/*231194*/ OPC_CheckType, MVT::i32, ++/*231196*/ OPC_MoveParent, ++/*231197*/ OPC_MoveChild7, ++/*231198*/ OPC_CheckInteger, 1, ++/*231200*/ OPC_CheckType, MVT::i32, ++/*231202*/ OPC_MoveParent, ++/*231203*/ OPC_MoveChild, 8, ++/*231205*/ OPC_CheckInteger, 1, ++/*231207*/ OPC_CheckType, MVT::i32, ++/*231209*/ OPC_MoveParent, ++/*231210*/ OPC_MoveChild, 9, ++/*231212*/ OPC_CheckInteger, 1, ++/*231214*/ OPC_CheckType, MVT::i32, ++/*231216*/ OPC_MoveParent, ++/*231217*/ OPC_MoveChild, 10, ++/*231219*/ OPC_CheckInteger, 1, ++/*231221*/ OPC_CheckType, MVT::i32, ++/*231223*/ OPC_MoveParent, ++/*231224*/ OPC_MoveChild, 11, ++/*231226*/ OPC_CheckInteger, 1, ++/*231228*/ OPC_CheckType, MVT::i32, ++/*231230*/ OPC_MoveParent, ++/*231231*/ OPC_MoveChild, 12, ++/*231233*/ OPC_CheckInteger, 1, ++/*231235*/ OPC_CheckType, MVT::i32, ++/*231237*/ OPC_MoveParent, ++/*231238*/ OPC_MoveChild, 13, ++/*231240*/ OPC_CheckInteger, 1, ++/*231242*/ OPC_CheckType, MVT::i32, ++/*231244*/ OPC_MoveParent, ++/*231245*/ OPC_MoveChild, 14, ++/*231247*/ OPC_CheckInteger, 1, ++/*231249*/ OPC_CheckType, MVT::i32, ++/*231251*/ OPC_MoveParent, ++/*231252*/ OPC_MoveChild, 15, ++/*231254*/ OPC_CheckInteger, 1, ++/*231256*/ OPC_CheckType, MVT::i32, ++/*231258*/ OPC_MoveParent, ++/*231259*/ OPC_MoveParent, ++/*231260*/ OPC_CheckChild1Same, 0, ++/*231262*/ OPC_MoveParent, ++/*231263*/ OPC_CheckChild1Same, 1, ++/*231265*/ OPC_MoveParent, ++/*231266*/ OPC_MoveChild1, ++/*231267*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*231270*/ OPC_CheckChild0Integer, 15, ++/*231272*/ OPC_CheckChild0Type, MVT::i32, ++/*231274*/ OPC_CheckChild1Integer, 15, ++/*231276*/ OPC_CheckChild1Type, MVT::i32, ++/*231278*/ OPC_CheckChild2Integer, 15, ++/*231280*/ OPC_CheckChild2Type, MVT::i32, ++/*231282*/ OPC_CheckChild3Integer, 15, ++/*231284*/ OPC_CheckChild3Type, MVT::i32, ++/*231286*/ OPC_CheckChild4Integer, 15, ++/*231288*/ OPC_CheckChild4Type, MVT::i32, ++/*231290*/ OPC_MoveChild5, ++/*231291*/ OPC_CheckInteger, 15, ++/*231293*/ OPC_CheckType, MVT::i32, ++/*231295*/ OPC_MoveParent, ++/*231296*/ OPC_MoveChild6, ++/*231297*/ OPC_CheckInteger, 15, ++/*231299*/ OPC_CheckType, MVT::i32, ++/*231301*/ OPC_MoveParent, ++/*231302*/ OPC_MoveChild7, ++/*231303*/ OPC_CheckInteger, 15, ++/*231305*/ OPC_CheckType, MVT::i32, ++/*231307*/ OPC_MoveParent, ++/*231308*/ OPC_MoveChild, 8, ++/*231310*/ OPC_CheckInteger, 15, ++/*231312*/ OPC_CheckType, MVT::i32, ++/*231314*/ OPC_MoveParent, ++/*231315*/ OPC_MoveChild, 9, ++/*231317*/ OPC_CheckInteger, 15, ++/*231319*/ OPC_CheckType, MVT::i32, ++/*231321*/ OPC_MoveParent, ++/*231322*/ OPC_MoveChild, 10, ++/*231324*/ OPC_CheckInteger, 15, ++/*231326*/ OPC_CheckType, MVT::i32, ++/*231328*/ OPC_MoveParent, ++/*231329*/ OPC_MoveChild, 11, ++/*231331*/ OPC_CheckInteger, 15, ++/*231333*/ OPC_CheckType, MVT::i32, ++/*231335*/ OPC_MoveParent, ++/*231336*/ OPC_MoveChild, 12, ++/*231338*/ OPC_CheckInteger, 15, ++/*231340*/ OPC_CheckType, MVT::i32, ++/*231342*/ OPC_MoveParent, ++/*231343*/ OPC_MoveChild, 13, ++/*231345*/ OPC_CheckInteger, 15, ++/*231347*/ OPC_CheckType, MVT::i32, ++/*231349*/ OPC_MoveParent, ++/*231350*/ OPC_MoveChild, 14, ++/*231352*/ OPC_CheckInteger, 15, ++/*231354*/ OPC_CheckType, MVT::i32, ++/*231356*/ OPC_MoveParent, ++/*231357*/ OPC_MoveChild, 15, ++/*231359*/ OPC_CheckInteger, 15, ++/*231361*/ OPC_CheckType, MVT::i32, ++/*231363*/ OPC_MoveParent, ++/*231364*/ OPC_CheckType, MVT::v16i16, ++/*231366*/ OPC_MoveParent, ++/*231367*/ OPC_MoveParent, ++/*231368*/ OPC_MoveParent, ++/*231369*/ OPC_MoveChild1, ++/*231370*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*231373*/ OPC_CheckChild0Integer, 1, ++/*231375*/ OPC_CheckChild0Type, MVT::i32, ++/*231377*/ OPC_CheckChild1Integer, 1, ++/*231379*/ OPC_CheckChild1Type, MVT::i32, ++/*231381*/ OPC_CheckChild2Integer, 1, ++/*231383*/ OPC_CheckChild2Type, MVT::i32, ++/*231385*/ OPC_CheckChild3Integer, 1, ++/*231387*/ OPC_CheckChild3Type, MVT::i32, ++/*231389*/ OPC_CheckChild4Integer, 1, ++/*231391*/ OPC_CheckChild4Type, MVT::i32, ++/*231393*/ OPC_MoveChild5, ++/*231394*/ OPC_CheckInteger, 1, ++/*231396*/ OPC_CheckType, MVT::i32, ++/*231398*/ OPC_MoveParent, ++/*231399*/ OPC_MoveChild6, ++/*231400*/ OPC_CheckInteger, 1, ++/*231402*/ OPC_CheckType, MVT::i32, ++/*231404*/ OPC_MoveParent, ++/*231405*/ OPC_MoveChild7, ++/*231406*/ OPC_CheckInteger, 1, ++/*231408*/ OPC_CheckType, MVT::i32, ++/*231410*/ OPC_MoveParent, ++/*231411*/ OPC_MoveChild, 8, ++/*231413*/ OPC_CheckInteger, 1, ++/*231415*/ OPC_CheckType, MVT::i32, ++/*231417*/ OPC_MoveParent, ++/*231418*/ OPC_MoveChild, 9, ++/*231420*/ OPC_CheckInteger, 1, ++/*231422*/ OPC_CheckType, MVT::i32, ++/*231424*/ OPC_MoveParent, ++/*231425*/ OPC_MoveChild, 10, ++/*231427*/ OPC_CheckInteger, 1, ++/*231429*/ OPC_CheckType, MVT::i32, ++/*231431*/ OPC_MoveParent, ++/*231432*/ OPC_MoveChild, 11, ++/*231434*/ OPC_CheckInteger, 1, ++/*231436*/ OPC_CheckType, MVT::i32, ++/*231438*/ OPC_MoveParent, ++/*231439*/ OPC_MoveChild, 12, ++/*231441*/ OPC_CheckInteger, 1, ++/*231443*/ OPC_CheckType, MVT::i32, ++/*231445*/ OPC_MoveParent, ++/*231446*/ OPC_MoveChild, 13, ++/*231448*/ OPC_CheckInteger, 1, ++/*231450*/ OPC_CheckType, MVT::i32, ++/*231452*/ OPC_MoveParent, ++/*231453*/ OPC_MoveChild, 14, ++/*231455*/ OPC_CheckInteger, 1, ++/*231457*/ OPC_CheckType, MVT::i32, ++/*231459*/ OPC_MoveParent, ++/*231460*/ OPC_MoveChild, 15, ++/*231462*/ OPC_CheckInteger, 1, ++/*231464*/ OPC_CheckType, MVT::i32, ++/*231466*/ OPC_MoveParent, ++/*231467*/ OPC_CheckType, MVT::v16i16, ++/*231469*/ OPC_MoveParent, ++/*231470*/ OPC_CheckType, MVT::v16i16, ++/*231472*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*231474*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b), LASX256H:{ *:[v16i16] }:$a), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b), LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*231482*/ /*Scope*/ 65|128,2/*321*/, /*->231805*/ ++/*231484*/ OPC_CheckChild0Same, 0, ++/*231486*/ OPC_MoveChild1, ++/*231487*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*231490*/ OPC_CheckChild0Integer, 1, ++/*231492*/ OPC_CheckChild0Type, MVT::i32, ++/*231494*/ OPC_CheckChild1Integer, 1, ++/*231496*/ OPC_CheckChild1Type, MVT::i32, ++/*231498*/ OPC_CheckChild2Integer, 1, ++/*231500*/ OPC_CheckChild2Type, MVT::i32, ++/*231502*/ OPC_CheckChild3Integer, 1, ++/*231504*/ OPC_CheckChild3Type, MVT::i32, ++/*231506*/ OPC_CheckChild4Integer, 1, ++/*231508*/ OPC_CheckChild4Type, MVT::i32, ++/*231510*/ OPC_MoveChild5, ++/*231511*/ OPC_CheckInteger, 1, ++/*231513*/ OPC_CheckType, MVT::i32, ++/*231515*/ OPC_MoveParent, ++/*231516*/ OPC_MoveChild6, ++/*231517*/ OPC_CheckInteger, 1, ++/*231519*/ OPC_CheckType, MVT::i32, ++/*231521*/ OPC_MoveParent, ++/*231522*/ OPC_MoveChild7, ++/*231523*/ OPC_CheckInteger, 1, ++/*231525*/ OPC_CheckType, MVT::i32, ++/*231527*/ OPC_MoveParent, ++/*231528*/ OPC_MoveChild, 8, ++/*231530*/ OPC_CheckInteger, 1, ++/*231532*/ OPC_CheckType, MVT::i32, ++/*231534*/ OPC_MoveParent, ++/*231535*/ OPC_MoveChild, 9, ++/*231537*/ OPC_CheckInteger, 1, ++/*231539*/ OPC_CheckType, MVT::i32, ++/*231541*/ OPC_MoveParent, ++/*231542*/ OPC_MoveChild, 10, ++/*231544*/ OPC_CheckInteger, 1, ++/*231546*/ OPC_CheckType, MVT::i32, ++/*231548*/ OPC_MoveParent, ++/*231549*/ OPC_MoveChild, 11, ++/*231551*/ OPC_CheckInteger, 1, ++/*231553*/ OPC_CheckType, MVT::i32, ++/*231555*/ OPC_MoveParent, ++/*231556*/ OPC_MoveChild, 12, ++/*231558*/ OPC_CheckInteger, 1, ++/*231560*/ OPC_CheckType, MVT::i32, ++/*231562*/ OPC_MoveParent, ++/*231563*/ OPC_MoveChild, 13, ++/*231565*/ OPC_CheckInteger, 1, ++/*231567*/ OPC_CheckType, MVT::i32, ++/*231569*/ OPC_MoveParent, ++/*231570*/ OPC_MoveChild, 14, ++/*231572*/ OPC_CheckInteger, 1, ++/*231574*/ OPC_CheckType, MVT::i32, ++/*231576*/ OPC_MoveParent, ++/*231577*/ OPC_MoveChild, 15, ++/*231579*/ OPC_CheckInteger, 1, ++/*231581*/ OPC_CheckType, MVT::i32, ++/*231583*/ OPC_MoveParent, ++/*231584*/ OPC_MoveParent, ++/*231585*/ OPC_MoveParent, ++/*231586*/ OPC_CheckChild1Same, 1, ++/*231588*/ OPC_MoveParent, ++/*231589*/ OPC_MoveChild1, ++/*231590*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*231593*/ OPC_CheckChild0Integer, 15, ++/*231595*/ OPC_CheckChild0Type, MVT::i32, ++/*231597*/ OPC_CheckChild1Integer, 15, ++/*231599*/ OPC_CheckChild1Type, MVT::i32, ++/*231601*/ OPC_CheckChild2Integer, 15, ++/*231603*/ OPC_CheckChild2Type, MVT::i32, ++/*231605*/ OPC_CheckChild3Integer, 15, ++/*231607*/ OPC_CheckChild3Type, MVT::i32, ++/*231609*/ OPC_CheckChild4Integer, 15, ++/*231611*/ OPC_CheckChild4Type, MVT::i32, ++/*231613*/ OPC_MoveChild5, ++/*231614*/ OPC_CheckInteger, 15, ++/*231616*/ OPC_CheckType, MVT::i32, ++/*231618*/ OPC_MoveParent, ++/*231619*/ OPC_MoveChild6, ++/*231620*/ OPC_CheckInteger, 15, ++/*231622*/ OPC_CheckType, MVT::i32, ++/*231624*/ OPC_MoveParent, ++/*231625*/ OPC_MoveChild7, ++/*231626*/ OPC_CheckInteger, 15, ++/*231628*/ OPC_CheckType, MVT::i32, ++/*231630*/ OPC_MoveParent, ++/*231631*/ OPC_MoveChild, 8, ++/*231633*/ OPC_CheckInteger, 15, ++/*231635*/ OPC_CheckType, MVT::i32, ++/*231637*/ OPC_MoveParent, ++/*231638*/ OPC_MoveChild, 9, ++/*231640*/ OPC_CheckInteger, 15, ++/*231642*/ OPC_CheckType, MVT::i32, ++/*231644*/ OPC_MoveParent, ++/*231645*/ OPC_MoveChild, 10, ++/*231647*/ OPC_CheckInteger, 15, ++/*231649*/ OPC_CheckType, MVT::i32, ++/*231651*/ OPC_MoveParent, ++/*231652*/ OPC_MoveChild, 11, ++/*231654*/ OPC_CheckInteger, 15, ++/*231656*/ OPC_CheckType, MVT::i32, ++/*231658*/ OPC_MoveParent, ++/*231659*/ OPC_MoveChild, 12, ++/*231661*/ OPC_CheckInteger, 15, ++/*231663*/ OPC_CheckType, MVT::i32, ++/*231665*/ OPC_MoveParent, ++/*231666*/ OPC_MoveChild, 13, ++/*231668*/ OPC_CheckInteger, 15, ++/*231670*/ OPC_CheckType, MVT::i32, ++/*231672*/ OPC_MoveParent, ++/*231673*/ OPC_MoveChild, 14, ++/*231675*/ OPC_CheckInteger, 15, ++/*231677*/ OPC_CheckType, MVT::i32, ++/*231679*/ OPC_MoveParent, ++/*231680*/ OPC_MoveChild, 15, ++/*231682*/ OPC_CheckInteger, 15, ++/*231684*/ OPC_CheckType, MVT::i32, ++/*231686*/ OPC_MoveParent, ++/*231687*/ OPC_CheckType, MVT::v16i16, ++/*231689*/ OPC_MoveParent, ++/*231690*/ OPC_MoveParent, ++/*231691*/ OPC_MoveParent, ++/*231692*/ OPC_MoveChild1, ++/*231693*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*231696*/ OPC_CheckChild0Integer, 1, ++/*231698*/ OPC_CheckChild0Type, MVT::i32, ++/*231700*/ OPC_CheckChild1Integer, 1, ++/*231702*/ OPC_CheckChild1Type, MVT::i32, ++/*231704*/ OPC_CheckChild2Integer, 1, ++/*231706*/ OPC_CheckChild2Type, MVT::i32, ++/*231708*/ OPC_CheckChild3Integer, 1, ++/*231710*/ OPC_CheckChild3Type, MVT::i32, ++/*231712*/ OPC_CheckChild4Integer, 1, ++/*231714*/ OPC_CheckChild4Type, MVT::i32, ++/*231716*/ OPC_MoveChild5, ++/*231717*/ OPC_CheckInteger, 1, ++/*231719*/ OPC_CheckType, MVT::i32, ++/*231721*/ OPC_MoveParent, ++/*231722*/ OPC_MoveChild6, ++/*231723*/ OPC_CheckInteger, 1, ++/*231725*/ OPC_CheckType, MVT::i32, ++/*231727*/ OPC_MoveParent, ++/*231728*/ OPC_MoveChild7, ++/*231729*/ OPC_CheckInteger, 1, ++/*231731*/ OPC_CheckType, MVT::i32, ++/*231733*/ OPC_MoveParent, ++/*231734*/ OPC_MoveChild, 8, ++/*231736*/ OPC_CheckInteger, 1, ++/*231738*/ OPC_CheckType, MVT::i32, ++/*231740*/ OPC_MoveParent, ++/*231741*/ OPC_MoveChild, 9, ++/*231743*/ OPC_CheckInteger, 1, ++/*231745*/ OPC_CheckType, MVT::i32, ++/*231747*/ OPC_MoveParent, ++/*231748*/ OPC_MoveChild, 10, ++/*231750*/ OPC_CheckInteger, 1, ++/*231752*/ OPC_CheckType, MVT::i32, ++/*231754*/ OPC_MoveParent, ++/*231755*/ OPC_MoveChild, 11, ++/*231757*/ OPC_CheckInteger, 1, ++/*231759*/ OPC_CheckType, MVT::i32, ++/*231761*/ OPC_MoveParent, ++/*231762*/ OPC_MoveChild, 12, ++/*231764*/ OPC_CheckInteger, 1, ++/*231766*/ OPC_CheckType, MVT::i32, ++/*231768*/ OPC_MoveParent, ++/*231769*/ OPC_MoveChild, 13, ++/*231771*/ OPC_CheckInteger, 1, ++/*231773*/ OPC_CheckType, MVT::i32, ++/*231775*/ OPC_MoveParent, ++/*231776*/ OPC_MoveChild, 14, ++/*231778*/ OPC_CheckInteger, 1, ++/*231780*/ OPC_CheckType, MVT::i32, ++/*231782*/ OPC_MoveParent, ++/*231783*/ OPC_MoveChild, 15, ++/*231785*/ OPC_CheckInteger, 1, ++/*231787*/ OPC_CheckType, MVT::i32, ++/*231789*/ OPC_MoveParent, ++/*231790*/ OPC_CheckType, MVT::v16i16, ++/*231792*/ OPC_MoveParent, ++/*231793*/ OPC_CheckType, MVT::v16i16, ++/*231795*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*231797*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b), LASX256H:{ *:[v16i16] }:$a), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*231805*/ /*Scope*/ 65|128,2/*321*/, /*->232128*/ ++/*231807*/ OPC_CheckChild0Same, 1, ++/*231809*/ OPC_CheckChild1Same, 0, ++/*231811*/ OPC_MoveParent, ++/*231812*/ OPC_MoveChild1, ++/*231813*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*231816*/ OPC_CheckChild0Integer, 1, ++/*231818*/ OPC_CheckChild0Type, MVT::i32, ++/*231820*/ OPC_CheckChild1Integer, 1, ++/*231822*/ OPC_CheckChild1Type, MVT::i32, ++/*231824*/ OPC_CheckChild2Integer, 1, ++/*231826*/ OPC_CheckChild2Type, MVT::i32, ++/*231828*/ OPC_CheckChild3Integer, 1, ++/*231830*/ OPC_CheckChild3Type, MVT::i32, ++/*231832*/ OPC_CheckChild4Integer, 1, ++/*231834*/ OPC_CheckChild4Type, MVT::i32, ++/*231836*/ OPC_MoveChild5, ++/*231837*/ OPC_CheckInteger, 1, ++/*231839*/ OPC_CheckType, MVT::i32, ++/*231841*/ OPC_MoveParent, ++/*231842*/ OPC_MoveChild6, ++/*231843*/ OPC_CheckInteger, 1, ++/*231845*/ OPC_CheckType, MVT::i32, ++/*231847*/ OPC_MoveParent, ++/*231848*/ OPC_MoveChild7, ++/*231849*/ OPC_CheckInteger, 1, ++/*231851*/ OPC_CheckType, MVT::i32, ++/*231853*/ OPC_MoveParent, ++/*231854*/ OPC_MoveChild, 8, ++/*231856*/ OPC_CheckInteger, 1, ++/*231858*/ OPC_CheckType, MVT::i32, ++/*231860*/ OPC_MoveParent, ++/*231861*/ OPC_MoveChild, 9, ++/*231863*/ OPC_CheckInteger, 1, ++/*231865*/ OPC_CheckType, MVT::i32, ++/*231867*/ OPC_MoveParent, ++/*231868*/ OPC_MoveChild, 10, ++/*231870*/ OPC_CheckInteger, 1, ++/*231872*/ OPC_CheckType, MVT::i32, ++/*231874*/ OPC_MoveParent, ++/*231875*/ OPC_MoveChild, 11, ++/*231877*/ OPC_CheckInteger, 1, ++/*231879*/ OPC_CheckType, MVT::i32, ++/*231881*/ OPC_MoveParent, ++/*231882*/ OPC_MoveChild, 12, ++/*231884*/ OPC_CheckInteger, 1, ++/*231886*/ OPC_CheckType, MVT::i32, ++/*231888*/ OPC_MoveParent, ++/*231889*/ OPC_MoveChild, 13, ++/*231891*/ OPC_CheckInteger, 1, ++/*231893*/ OPC_CheckType, MVT::i32, ++/*231895*/ OPC_MoveParent, ++/*231896*/ OPC_MoveChild, 14, ++/*231898*/ OPC_CheckInteger, 1, ++/*231900*/ OPC_CheckType, MVT::i32, ++/*231902*/ OPC_MoveParent, ++/*231903*/ OPC_MoveChild, 15, ++/*231905*/ OPC_CheckInteger, 1, ++/*231907*/ OPC_CheckType, MVT::i32, ++/*231909*/ OPC_MoveParent, ++/*231910*/ OPC_MoveParent, ++/*231911*/ OPC_MoveParent, ++/*231912*/ OPC_MoveChild1, ++/*231913*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*231916*/ OPC_CheckChild0Integer, 15, ++/*231918*/ OPC_CheckChild0Type, MVT::i32, ++/*231920*/ OPC_CheckChild1Integer, 15, ++/*231922*/ OPC_CheckChild1Type, MVT::i32, ++/*231924*/ OPC_CheckChild2Integer, 15, ++/*231926*/ OPC_CheckChild2Type, MVT::i32, ++/*231928*/ OPC_CheckChild3Integer, 15, ++/*231930*/ OPC_CheckChild3Type, MVT::i32, ++/*231932*/ OPC_CheckChild4Integer, 15, ++/*231934*/ OPC_CheckChild4Type, MVT::i32, ++/*231936*/ OPC_MoveChild5, ++/*231937*/ OPC_CheckInteger, 15, ++/*231939*/ OPC_CheckType, MVT::i32, ++/*231941*/ OPC_MoveParent, ++/*231942*/ OPC_MoveChild6, ++/*231943*/ OPC_CheckInteger, 15, ++/*231945*/ OPC_CheckType, MVT::i32, ++/*231947*/ OPC_MoveParent, ++/*231948*/ OPC_MoveChild7, ++/*231949*/ OPC_CheckInteger, 15, ++/*231951*/ OPC_CheckType, MVT::i32, ++/*231953*/ OPC_MoveParent, ++/*231954*/ OPC_MoveChild, 8, ++/*231956*/ OPC_CheckInteger, 15, ++/*231958*/ OPC_CheckType, MVT::i32, ++/*231960*/ OPC_MoveParent, ++/*231961*/ OPC_MoveChild, 9, ++/*231963*/ OPC_CheckInteger, 15, ++/*231965*/ OPC_CheckType, MVT::i32, ++/*231967*/ OPC_MoveParent, ++/*231968*/ OPC_MoveChild, 10, ++/*231970*/ OPC_CheckInteger, 15, ++/*231972*/ OPC_CheckType, MVT::i32, ++/*231974*/ OPC_MoveParent, ++/*231975*/ OPC_MoveChild, 11, ++/*231977*/ OPC_CheckInteger, 15, ++/*231979*/ OPC_CheckType, MVT::i32, ++/*231981*/ OPC_MoveParent, ++/*231982*/ OPC_MoveChild, 12, ++/*231984*/ OPC_CheckInteger, 15, ++/*231986*/ OPC_CheckType, MVT::i32, ++/*231988*/ OPC_MoveParent, ++/*231989*/ OPC_MoveChild, 13, ++/*231991*/ OPC_CheckInteger, 15, ++/*231993*/ OPC_CheckType, MVT::i32, ++/*231995*/ OPC_MoveParent, ++/*231996*/ OPC_MoveChild, 14, ++/*231998*/ OPC_CheckInteger, 15, ++/*232000*/ OPC_CheckType, MVT::i32, ++/*232002*/ OPC_MoveParent, ++/*232003*/ OPC_MoveChild, 15, ++/*232005*/ OPC_CheckInteger, 15, ++/*232007*/ OPC_CheckType, MVT::i32, ++/*232009*/ OPC_MoveParent, ++/*232010*/ OPC_CheckType, MVT::v16i16, ++/*232012*/ OPC_MoveParent, ++/*232013*/ OPC_MoveParent, ++/*232014*/ OPC_MoveParent, ++/*232015*/ OPC_MoveChild1, ++/*232016*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*232019*/ OPC_CheckChild0Integer, 1, ++/*232021*/ OPC_CheckChild0Type, MVT::i32, ++/*232023*/ OPC_CheckChild1Integer, 1, ++/*232025*/ OPC_CheckChild1Type, MVT::i32, ++/*232027*/ OPC_CheckChild2Integer, 1, ++/*232029*/ OPC_CheckChild2Type, MVT::i32, ++/*232031*/ OPC_CheckChild3Integer, 1, ++/*232033*/ OPC_CheckChild3Type, MVT::i32, ++/*232035*/ OPC_CheckChild4Integer, 1, ++/*232037*/ OPC_CheckChild4Type, MVT::i32, ++/*232039*/ OPC_MoveChild5, ++/*232040*/ OPC_CheckInteger, 1, ++/*232042*/ OPC_CheckType, MVT::i32, ++/*232044*/ OPC_MoveParent, ++/*232045*/ OPC_MoveChild6, ++/*232046*/ OPC_CheckInteger, 1, ++/*232048*/ OPC_CheckType, MVT::i32, ++/*232050*/ OPC_MoveParent, ++/*232051*/ OPC_MoveChild7, ++/*232052*/ OPC_CheckInteger, 1, ++/*232054*/ OPC_CheckType, MVT::i32, ++/*232056*/ OPC_MoveParent, ++/*232057*/ OPC_MoveChild, 8, ++/*232059*/ OPC_CheckInteger, 1, ++/*232061*/ OPC_CheckType, MVT::i32, ++/*232063*/ OPC_MoveParent, ++/*232064*/ OPC_MoveChild, 9, ++/*232066*/ OPC_CheckInteger, 1, ++/*232068*/ OPC_CheckType, MVT::i32, ++/*232070*/ OPC_MoveParent, ++/*232071*/ OPC_MoveChild, 10, ++/*232073*/ OPC_CheckInteger, 1, ++/*232075*/ OPC_CheckType, MVT::i32, ++/*232077*/ OPC_MoveParent, ++/*232078*/ OPC_MoveChild, 11, ++/*232080*/ OPC_CheckInteger, 1, ++/*232082*/ OPC_CheckType, MVT::i32, ++/*232084*/ OPC_MoveParent, ++/*232085*/ OPC_MoveChild, 12, ++/*232087*/ OPC_CheckInteger, 1, ++/*232089*/ OPC_CheckType, MVT::i32, ++/*232091*/ OPC_MoveParent, ++/*232092*/ OPC_MoveChild, 13, ++/*232094*/ OPC_CheckInteger, 1, ++/*232096*/ OPC_CheckType, MVT::i32, ++/*232098*/ OPC_MoveParent, ++/*232099*/ OPC_MoveChild, 14, ++/*232101*/ OPC_CheckInteger, 1, ++/*232103*/ OPC_CheckType, MVT::i32, ++/*232105*/ OPC_MoveParent, ++/*232106*/ OPC_MoveChild, 15, ++/*232108*/ OPC_CheckInteger, 1, ++/*232110*/ OPC_CheckType, MVT::i32, ++/*232112*/ OPC_MoveParent, ++/*232113*/ OPC_CheckType, MVT::v16i16, ++/*232115*/ OPC_MoveParent, ++/*232116*/ OPC_CheckType, MVT::v16i16, ++/*232118*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*232120*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b), LASX256H:{ *:[v16i16] }:$a), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*232128*/ /*Scope*/ 65|128,2/*321*/, /*->232451*/ ++/*232130*/ OPC_CheckChild0Same, 0, ++/*232132*/ OPC_CheckChild1Same, 1, ++/*232134*/ OPC_MoveParent, ++/*232135*/ OPC_MoveChild1, ++/*232136*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*232139*/ OPC_CheckChild0Integer, 1, ++/*232141*/ OPC_CheckChild0Type, MVT::i32, ++/*232143*/ OPC_CheckChild1Integer, 1, ++/*232145*/ OPC_CheckChild1Type, MVT::i32, ++/*232147*/ OPC_CheckChild2Integer, 1, ++/*232149*/ OPC_CheckChild2Type, MVT::i32, ++/*232151*/ OPC_CheckChild3Integer, 1, ++/*232153*/ OPC_CheckChild3Type, MVT::i32, ++/*232155*/ OPC_CheckChild4Integer, 1, ++/*232157*/ OPC_CheckChild4Type, MVT::i32, ++/*232159*/ OPC_MoveChild5, ++/*232160*/ OPC_CheckInteger, 1, ++/*232162*/ OPC_CheckType, MVT::i32, ++/*232164*/ OPC_MoveParent, ++/*232165*/ OPC_MoveChild6, ++/*232166*/ OPC_CheckInteger, 1, ++/*232168*/ OPC_CheckType, MVT::i32, ++/*232170*/ OPC_MoveParent, ++/*232171*/ OPC_MoveChild7, ++/*232172*/ OPC_CheckInteger, 1, ++/*232174*/ OPC_CheckType, MVT::i32, ++/*232176*/ OPC_MoveParent, ++/*232177*/ OPC_MoveChild, 8, ++/*232179*/ OPC_CheckInteger, 1, ++/*232181*/ OPC_CheckType, MVT::i32, ++/*232183*/ OPC_MoveParent, ++/*232184*/ OPC_MoveChild, 9, ++/*232186*/ OPC_CheckInteger, 1, ++/*232188*/ OPC_CheckType, MVT::i32, ++/*232190*/ OPC_MoveParent, ++/*232191*/ OPC_MoveChild, 10, ++/*232193*/ OPC_CheckInteger, 1, ++/*232195*/ OPC_CheckType, MVT::i32, ++/*232197*/ OPC_MoveParent, ++/*232198*/ OPC_MoveChild, 11, ++/*232200*/ OPC_CheckInteger, 1, ++/*232202*/ OPC_CheckType, MVT::i32, ++/*232204*/ OPC_MoveParent, ++/*232205*/ OPC_MoveChild, 12, ++/*232207*/ OPC_CheckInteger, 1, ++/*232209*/ OPC_CheckType, MVT::i32, ++/*232211*/ OPC_MoveParent, ++/*232212*/ OPC_MoveChild, 13, ++/*232214*/ OPC_CheckInteger, 1, ++/*232216*/ OPC_CheckType, MVT::i32, ++/*232218*/ OPC_MoveParent, ++/*232219*/ OPC_MoveChild, 14, ++/*232221*/ OPC_CheckInteger, 1, ++/*232223*/ OPC_CheckType, MVT::i32, ++/*232225*/ OPC_MoveParent, ++/*232226*/ OPC_MoveChild, 15, ++/*232228*/ OPC_CheckInteger, 1, ++/*232230*/ OPC_CheckType, MVT::i32, ++/*232232*/ OPC_MoveParent, ++/*232233*/ OPC_MoveParent, ++/*232234*/ OPC_MoveParent, ++/*232235*/ OPC_MoveChild1, ++/*232236*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*232239*/ OPC_CheckChild0Integer, 15, ++/*232241*/ OPC_CheckChild0Type, MVT::i32, ++/*232243*/ OPC_CheckChild1Integer, 15, ++/*232245*/ OPC_CheckChild1Type, MVT::i32, ++/*232247*/ OPC_CheckChild2Integer, 15, ++/*232249*/ OPC_CheckChild2Type, MVT::i32, ++/*232251*/ OPC_CheckChild3Integer, 15, ++/*232253*/ OPC_CheckChild3Type, MVT::i32, ++/*232255*/ OPC_CheckChild4Integer, 15, ++/*232257*/ OPC_CheckChild4Type, MVT::i32, ++/*232259*/ OPC_MoveChild5, ++/*232260*/ OPC_CheckInteger, 15, ++/*232262*/ OPC_CheckType, MVT::i32, ++/*232264*/ OPC_MoveParent, ++/*232265*/ OPC_MoveChild6, ++/*232266*/ OPC_CheckInteger, 15, ++/*232268*/ OPC_CheckType, MVT::i32, ++/*232270*/ OPC_MoveParent, ++/*232271*/ OPC_MoveChild7, ++/*232272*/ OPC_CheckInteger, 15, ++/*232274*/ OPC_CheckType, MVT::i32, ++/*232276*/ OPC_MoveParent, ++/*232277*/ OPC_MoveChild, 8, ++/*232279*/ OPC_CheckInteger, 15, ++/*232281*/ OPC_CheckType, MVT::i32, ++/*232283*/ OPC_MoveParent, ++/*232284*/ OPC_MoveChild, 9, ++/*232286*/ OPC_CheckInteger, 15, ++/*232288*/ OPC_CheckType, MVT::i32, ++/*232290*/ OPC_MoveParent, ++/*232291*/ OPC_MoveChild, 10, ++/*232293*/ OPC_CheckInteger, 15, ++/*232295*/ OPC_CheckType, MVT::i32, ++/*232297*/ OPC_MoveParent, ++/*232298*/ OPC_MoveChild, 11, ++/*232300*/ OPC_CheckInteger, 15, ++/*232302*/ OPC_CheckType, MVT::i32, ++/*232304*/ OPC_MoveParent, ++/*232305*/ OPC_MoveChild, 12, ++/*232307*/ OPC_CheckInteger, 15, ++/*232309*/ OPC_CheckType, MVT::i32, ++/*232311*/ OPC_MoveParent, ++/*232312*/ OPC_MoveChild, 13, ++/*232314*/ OPC_CheckInteger, 15, ++/*232316*/ OPC_CheckType, MVT::i32, ++/*232318*/ OPC_MoveParent, ++/*232319*/ OPC_MoveChild, 14, ++/*232321*/ OPC_CheckInteger, 15, ++/*232323*/ OPC_CheckType, MVT::i32, ++/*232325*/ OPC_MoveParent, ++/*232326*/ OPC_MoveChild, 15, ++/*232328*/ OPC_CheckInteger, 15, ++/*232330*/ OPC_CheckType, MVT::i32, ++/*232332*/ OPC_MoveParent, ++/*232333*/ OPC_CheckType, MVT::v16i16, ++/*232335*/ OPC_MoveParent, ++/*232336*/ OPC_MoveParent, ++/*232337*/ OPC_MoveParent, ++/*232338*/ OPC_MoveChild1, ++/*232339*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*232342*/ OPC_CheckChild0Integer, 1, ++/*232344*/ OPC_CheckChild0Type, MVT::i32, ++/*232346*/ OPC_CheckChild1Integer, 1, ++/*232348*/ OPC_CheckChild1Type, MVT::i32, ++/*232350*/ OPC_CheckChild2Integer, 1, ++/*232352*/ OPC_CheckChild2Type, MVT::i32, ++/*232354*/ OPC_CheckChild3Integer, 1, ++/*232356*/ OPC_CheckChild3Type, MVT::i32, ++/*232358*/ OPC_CheckChild4Integer, 1, ++/*232360*/ OPC_CheckChild4Type, MVT::i32, ++/*232362*/ OPC_MoveChild5, ++/*232363*/ OPC_CheckInteger, 1, ++/*232365*/ OPC_CheckType, MVT::i32, ++/*232367*/ OPC_MoveParent, ++/*232368*/ OPC_MoveChild6, ++/*232369*/ OPC_CheckInteger, 1, ++/*232371*/ OPC_CheckType, MVT::i32, ++/*232373*/ OPC_MoveParent, ++/*232374*/ OPC_MoveChild7, ++/*232375*/ OPC_CheckInteger, 1, ++/*232377*/ OPC_CheckType, MVT::i32, ++/*232379*/ OPC_MoveParent, ++/*232380*/ OPC_MoveChild, 8, ++/*232382*/ OPC_CheckInteger, 1, ++/*232384*/ OPC_CheckType, MVT::i32, ++/*232386*/ OPC_MoveParent, ++/*232387*/ OPC_MoveChild, 9, ++/*232389*/ OPC_CheckInteger, 1, ++/*232391*/ OPC_CheckType, MVT::i32, ++/*232393*/ OPC_MoveParent, ++/*232394*/ OPC_MoveChild, 10, ++/*232396*/ OPC_CheckInteger, 1, ++/*232398*/ OPC_CheckType, MVT::i32, ++/*232400*/ OPC_MoveParent, ++/*232401*/ OPC_MoveChild, 11, ++/*232403*/ OPC_CheckInteger, 1, ++/*232405*/ OPC_CheckType, MVT::i32, ++/*232407*/ OPC_MoveParent, ++/*232408*/ OPC_MoveChild, 12, ++/*232410*/ OPC_CheckInteger, 1, ++/*232412*/ OPC_CheckType, MVT::i32, ++/*232414*/ OPC_MoveParent, ++/*232415*/ OPC_MoveChild, 13, ++/*232417*/ OPC_CheckInteger, 1, ++/*232419*/ OPC_CheckType, MVT::i32, ++/*232421*/ OPC_MoveParent, ++/*232422*/ OPC_MoveChild, 14, ++/*232424*/ OPC_CheckInteger, 1, ++/*232426*/ OPC_CheckType, MVT::i32, ++/*232428*/ OPC_MoveParent, ++/*232429*/ OPC_MoveChild, 15, ++/*232431*/ OPC_CheckInteger, 1, ++/*232433*/ OPC_CheckType, MVT::i32, ++/*232435*/ OPC_MoveParent, ++/*232436*/ OPC_CheckType, MVT::v16i16, ++/*232438*/ OPC_MoveParent, ++/*232439*/ OPC_CheckType, MVT::v16i16, ++/*232441*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*232443*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b), LASX256H:{ *:[v16i16] }:$a), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*232451*/ 0, /*End of Scope*/ ++/*232452*/ /*Scope*/ 10|128,5/*650*/, /*->233104*/ ++/*232454*/ OPC_CheckChild0Same, 0, ++/*232456*/ OPC_MoveChild1, ++/*232457*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*232460*/ OPC_Scope, 63|128,2/*319*/, /*->232782*/ // 2 children in Scope ++/*232463*/ OPC_MoveChild0, ++/*232464*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*232467*/ OPC_CheckChild0Integer, 1, ++/*232469*/ OPC_CheckChild0Type, MVT::i32, ++/*232471*/ OPC_CheckChild1Integer, 1, ++/*232473*/ OPC_CheckChild1Type, MVT::i32, ++/*232475*/ OPC_CheckChild2Integer, 1, ++/*232477*/ OPC_CheckChild2Type, MVT::i32, ++/*232479*/ OPC_CheckChild3Integer, 1, ++/*232481*/ OPC_CheckChild3Type, MVT::i32, ++/*232483*/ OPC_CheckChild4Integer, 1, ++/*232485*/ OPC_CheckChild4Type, MVT::i32, ++/*232487*/ OPC_MoveChild5, ++/*232488*/ OPC_CheckInteger, 1, ++/*232490*/ OPC_CheckType, MVT::i32, ++/*232492*/ OPC_MoveParent, ++/*232493*/ OPC_MoveChild6, ++/*232494*/ OPC_CheckInteger, 1, ++/*232496*/ OPC_CheckType, MVT::i32, ++/*232498*/ OPC_MoveParent, ++/*232499*/ OPC_MoveChild7, ++/*232500*/ OPC_CheckInteger, 1, ++/*232502*/ OPC_CheckType, MVT::i32, ++/*232504*/ OPC_MoveParent, ++/*232505*/ OPC_MoveChild, 8, ++/*232507*/ OPC_CheckInteger, 1, ++/*232509*/ OPC_CheckType, MVT::i32, ++/*232511*/ OPC_MoveParent, ++/*232512*/ OPC_MoveChild, 9, ++/*232514*/ OPC_CheckInteger, 1, ++/*232516*/ OPC_CheckType, MVT::i32, ++/*232518*/ OPC_MoveParent, ++/*232519*/ OPC_MoveChild, 10, ++/*232521*/ OPC_CheckInteger, 1, ++/*232523*/ OPC_CheckType, MVT::i32, ++/*232525*/ OPC_MoveParent, ++/*232526*/ OPC_MoveChild, 11, ++/*232528*/ OPC_CheckInteger, 1, ++/*232530*/ OPC_CheckType, MVT::i32, ++/*232532*/ OPC_MoveParent, ++/*232533*/ OPC_MoveChild, 12, ++/*232535*/ OPC_CheckInteger, 1, ++/*232537*/ OPC_CheckType, MVT::i32, ++/*232539*/ OPC_MoveParent, ++/*232540*/ OPC_MoveChild, 13, ++/*232542*/ OPC_CheckInteger, 1, ++/*232544*/ OPC_CheckType, MVT::i32, ++/*232546*/ OPC_MoveParent, ++/*232547*/ OPC_MoveChild, 14, ++/*232549*/ OPC_CheckInteger, 1, ++/*232551*/ OPC_CheckType, MVT::i32, ++/*232553*/ OPC_MoveParent, ++/*232554*/ OPC_MoveChild, 15, ++/*232556*/ OPC_CheckInteger, 1, ++/*232558*/ OPC_CheckType, MVT::i32, ++/*232560*/ OPC_MoveParent, ++/*232561*/ OPC_MoveParent, ++/*232562*/ OPC_CheckChild1Same, 1, ++/*232564*/ OPC_MoveParent, ++/*232565*/ OPC_MoveParent, ++/*232566*/ OPC_MoveChild1, ++/*232567*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*232570*/ OPC_CheckChild0Integer, 15, ++/*232572*/ OPC_CheckChild0Type, MVT::i32, ++/*232574*/ OPC_CheckChild1Integer, 15, ++/*232576*/ OPC_CheckChild1Type, MVT::i32, ++/*232578*/ OPC_CheckChild2Integer, 15, ++/*232580*/ OPC_CheckChild2Type, MVT::i32, ++/*232582*/ OPC_CheckChild3Integer, 15, ++/*232584*/ OPC_CheckChild3Type, MVT::i32, ++/*232586*/ OPC_CheckChild4Integer, 15, ++/*232588*/ OPC_CheckChild4Type, MVT::i32, ++/*232590*/ OPC_MoveChild5, ++/*232591*/ OPC_CheckInteger, 15, ++/*232593*/ OPC_CheckType, MVT::i32, ++/*232595*/ OPC_MoveParent, ++/*232596*/ OPC_MoveChild6, ++/*232597*/ OPC_CheckInteger, 15, ++/*232599*/ OPC_CheckType, MVT::i32, ++/*232601*/ OPC_MoveParent, ++/*232602*/ OPC_MoveChild7, ++/*232603*/ OPC_CheckInteger, 15, ++/*232605*/ OPC_CheckType, MVT::i32, ++/*232607*/ OPC_MoveParent, ++/*232608*/ OPC_MoveChild, 8, ++/*232610*/ OPC_CheckInteger, 15, ++/*232612*/ OPC_CheckType, MVT::i32, ++/*232614*/ OPC_MoveParent, ++/*232615*/ OPC_MoveChild, 9, ++/*232617*/ OPC_CheckInteger, 15, ++/*232619*/ OPC_CheckType, MVT::i32, ++/*232621*/ OPC_MoveParent, ++/*232622*/ OPC_MoveChild, 10, ++/*232624*/ OPC_CheckInteger, 15, ++/*232626*/ OPC_CheckType, MVT::i32, ++/*232628*/ OPC_MoveParent, ++/*232629*/ OPC_MoveChild, 11, ++/*232631*/ OPC_CheckInteger, 15, ++/*232633*/ OPC_CheckType, MVT::i32, ++/*232635*/ OPC_MoveParent, ++/*232636*/ OPC_MoveChild, 12, ++/*232638*/ OPC_CheckInteger, 15, ++/*232640*/ OPC_CheckType, MVT::i32, ++/*232642*/ OPC_MoveParent, ++/*232643*/ OPC_MoveChild, 13, ++/*232645*/ OPC_CheckInteger, 15, ++/*232647*/ OPC_CheckType, MVT::i32, ++/*232649*/ OPC_MoveParent, ++/*232650*/ OPC_MoveChild, 14, ++/*232652*/ OPC_CheckInteger, 15, ++/*232654*/ OPC_CheckType, MVT::i32, ++/*232656*/ OPC_MoveParent, ++/*232657*/ OPC_MoveChild, 15, ++/*232659*/ OPC_CheckInteger, 15, ++/*232661*/ OPC_CheckType, MVT::i32, ++/*232663*/ OPC_MoveParent, ++/*232664*/ OPC_CheckType, MVT::v16i16, ++/*232666*/ OPC_MoveParent, ++/*232667*/ OPC_MoveParent, ++/*232668*/ OPC_MoveParent, ++/*232669*/ OPC_MoveChild1, ++/*232670*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*232673*/ OPC_CheckChild0Integer, 1, ++/*232675*/ OPC_CheckChild0Type, MVT::i32, ++/*232677*/ OPC_CheckChild1Integer, 1, ++/*232679*/ OPC_CheckChild1Type, MVT::i32, ++/*232681*/ OPC_CheckChild2Integer, 1, ++/*232683*/ OPC_CheckChild2Type, MVT::i32, ++/*232685*/ OPC_CheckChild3Integer, 1, ++/*232687*/ OPC_CheckChild3Type, MVT::i32, ++/*232689*/ OPC_CheckChild4Integer, 1, ++/*232691*/ OPC_CheckChild4Type, MVT::i32, ++/*232693*/ OPC_MoveChild5, ++/*232694*/ OPC_CheckInteger, 1, ++/*232696*/ OPC_CheckType, MVT::i32, ++/*232698*/ OPC_MoveParent, ++/*232699*/ OPC_MoveChild6, ++/*232700*/ OPC_CheckInteger, 1, ++/*232702*/ OPC_CheckType, MVT::i32, ++/*232704*/ OPC_MoveParent, ++/*232705*/ OPC_MoveChild7, ++/*232706*/ OPC_CheckInteger, 1, ++/*232708*/ OPC_CheckType, MVT::i32, ++/*232710*/ OPC_MoveParent, ++/*232711*/ OPC_MoveChild, 8, ++/*232713*/ OPC_CheckInteger, 1, ++/*232715*/ OPC_CheckType, MVT::i32, ++/*232717*/ OPC_MoveParent, ++/*232718*/ OPC_MoveChild, 9, ++/*232720*/ OPC_CheckInteger, 1, ++/*232722*/ OPC_CheckType, MVT::i32, ++/*232724*/ OPC_MoveParent, ++/*232725*/ OPC_MoveChild, 10, ++/*232727*/ OPC_CheckInteger, 1, ++/*232729*/ OPC_CheckType, MVT::i32, ++/*232731*/ OPC_MoveParent, ++/*232732*/ OPC_MoveChild, 11, ++/*232734*/ OPC_CheckInteger, 1, ++/*232736*/ OPC_CheckType, MVT::i32, ++/*232738*/ OPC_MoveParent, ++/*232739*/ OPC_MoveChild, 12, ++/*232741*/ OPC_CheckInteger, 1, ++/*232743*/ OPC_CheckType, MVT::i32, ++/*232745*/ OPC_MoveParent, ++/*232746*/ OPC_MoveChild, 13, ++/*232748*/ OPC_CheckInteger, 1, ++/*232750*/ OPC_CheckType, MVT::i32, ++/*232752*/ OPC_MoveParent, ++/*232753*/ OPC_MoveChild, 14, ++/*232755*/ OPC_CheckInteger, 1, ++/*232757*/ OPC_CheckType, MVT::i32, ++/*232759*/ OPC_MoveParent, ++/*232760*/ OPC_MoveChild, 15, ++/*232762*/ OPC_CheckInteger, 1, ++/*232764*/ OPC_CheckType, MVT::i32, ++/*232766*/ OPC_MoveParent, ++/*232767*/ OPC_CheckType, MVT::v16i16, ++/*232769*/ OPC_MoveParent, ++/*232770*/ OPC_CheckType, MVT::v16i16, ++/*232772*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*232774*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b), LASX256H:{ *:[v16i16] }:$a), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*232782*/ /*Scope*/ 63|128,2/*319*/, /*->233103*/ ++/*232784*/ OPC_CheckChild0Same, 1, ++/*232786*/ OPC_MoveChild1, ++/*232787*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*232790*/ OPC_CheckChild0Integer, 1, ++/*232792*/ OPC_CheckChild0Type, MVT::i32, ++/*232794*/ OPC_CheckChild1Integer, 1, ++/*232796*/ OPC_CheckChild1Type, MVT::i32, ++/*232798*/ OPC_CheckChild2Integer, 1, ++/*232800*/ OPC_CheckChild2Type, MVT::i32, ++/*232802*/ OPC_CheckChild3Integer, 1, ++/*232804*/ OPC_CheckChild3Type, MVT::i32, ++/*232806*/ OPC_CheckChild4Integer, 1, ++/*232808*/ OPC_CheckChild4Type, MVT::i32, ++/*232810*/ OPC_MoveChild5, ++/*232811*/ OPC_CheckInteger, 1, ++/*232813*/ OPC_CheckType, MVT::i32, ++/*232815*/ OPC_MoveParent, ++/*232816*/ OPC_MoveChild6, ++/*232817*/ OPC_CheckInteger, 1, ++/*232819*/ OPC_CheckType, MVT::i32, ++/*232821*/ OPC_MoveParent, ++/*232822*/ OPC_MoveChild7, ++/*232823*/ OPC_CheckInteger, 1, ++/*232825*/ OPC_CheckType, MVT::i32, ++/*232827*/ OPC_MoveParent, ++/*232828*/ OPC_MoveChild, 8, ++/*232830*/ OPC_CheckInteger, 1, ++/*232832*/ OPC_CheckType, MVT::i32, ++/*232834*/ OPC_MoveParent, ++/*232835*/ OPC_MoveChild, 9, ++/*232837*/ OPC_CheckInteger, 1, ++/*232839*/ OPC_CheckType, MVT::i32, ++/*232841*/ OPC_MoveParent, ++/*232842*/ OPC_MoveChild, 10, ++/*232844*/ OPC_CheckInteger, 1, ++/*232846*/ OPC_CheckType, MVT::i32, ++/*232848*/ OPC_MoveParent, ++/*232849*/ OPC_MoveChild, 11, ++/*232851*/ OPC_CheckInteger, 1, ++/*232853*/ OPC_CheckType, MVT::i32, ++/*232855*/ OPC_MoveParent, ++/*232856*/ OPC_MoveChild, 12, ++/*232858*/ OPC_CheckInteger, 1, ++/*232860*/ OPC_CheckType, MVT::i32, ++/*232862*/ OPC_MoveParent, ++/*232863*/ OPC_MoveChild, 13, ++/*232865*/ OPC_CheckInteger, 1, ++/*232867*/ OPC_CheckType, MVT::i32, ++/*232869*/ OPC_MoveParent, ++/*232870*/ OPC_MoveChild, 14, ++/*232872*/ OPC_CheckInteger, 1, ++/*232874*/ OPC_CheckType, MVT::i32, ++/*232876*/ OPC_MoveParent, ++/*232877*/ OPC_MoveChild, 15, ++/*232879*/ OPC_CheckInteger, 1, ++/*232881*/ OPC_CheckType, MVT::i32, ++/*232883*/ OPC_MoveParent, ++/*232884*/ OPC_MoveParent, ++/*232885*/ OPC_MoveParent, ++/*232886*/ OPC_MoveParent, ++/*232887*/ OPC_MoveChild1, ++/*232888*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*232891*/ OPC_CheckChild0Integer, 15, ++/*232893*/ OPC_CheckChild0Type, MVT::i32, ++/*232895*/ OPC_CheckChild1Integer, 15, ++/*232897*/ OPC_CheckChild1Type, MVT::i32, ++/*232899*/ OPC_CheckChild2Integer, 15, ++/*232901*/ OPC_CheckChild2Type, MVT::i32, ++/*232903*/ OPC_CheckChild3Integer, 15, ++/*232905*/ OPC_CheckChild3Type, MVT::i32, ++/*232907*/ OPC_CheckChild4Integer, 15, ++/*232909*/ OPC_CheckChild4Type, MVT::i32, ++/*232911*/ OPC_MoveChild5, ++/*232912*/ OPC_CheckInteger, 15, ++/*232914*/ OPC_CheckType, MVT::i32, ++/*232916*/ OPC_MoveParent, ++/*232917*/ OPC_MoveChild6, ++/*232918*/ OPC_CheckInteger, 15, ++/*232920*/ OPC_CheckType, MVT::i32, ++/*232922*/ OPC_MoveParent, ++/*232923*/ OPC_MoveChild7, ++/*232924*/ OPC_CheckInteger, 15, ++/*232926*/ OPC_CheckType, MVT::i32, ++/*232928*/ OPC_MoveParent, ++/*232929*/ OPC_MoveChild, 8, ++/*232931*/ OPC_CheckInteger, 15, ++/*232933*/ OPC_CheckType, MVT::i32, ++/*232935*/ OPC_MoveParent, ++/*232936*/ OPC_MoveChild, 9, ++/*232938*/ OPC_CheckInteger, 15, ++/*232940*/ OPC_CheckType, MVT::i32, ++/*232942*/ OPC_MoveParent, ++/*232943*/ OPC_MoveChild, 10, ++/*232945*/ OPC_CheckInteger, 15, ++/*232947*/ OPC_CheckType, MVT::i32, ++/*232949*/ OPC_MoveParent, ++/*232950*/ OPC_MoveChild, 11, ++/*232952*/ OPC_CheckInteger, 15, ++/*232954*/ OPC_CheckType, MVT::i32, ++/*232956*/ OPC_MoveParent, ++/*232957*/ OPC_MoveChild, 12, ++/*232959*/ OPC_CheckInteger, 15, ++/*232961*/ OPC_CheckType, MVT::i32, ++/*232963*/ OPC_MoveParent, ++/*232964*/ OPC_MoveChild, 13, ++/*232966*/ OPC_CheckInteger, 15, ++/*232968*/ OPC_CheckType, MVT::i32, ++/*232970*/ OPC_MoveParent, ++/*232971*/ OPC_MoveChild, 14, ++/*232973*/ OPC_CheckInteger, 15, ++/*232975*/ OPC_CheckType, MVT::i32, ++/*232977*/ OPC_MoveParent, ++/*232978*/ OPC_MoveChild, 15, ++/*232980*/ OPC_CheckInteger, 15, ++/*232982*/ OPC_CheckType, MVT::i32, ++/*232984*/ OPC_MoveParent, ++/*232985*/ OPC_CheckType, MVT::v16i16, ++/*232987*/ OPC_MoveParent, ++/*232988*/ OPC_MoveParent, ++/*232989*/ OPC_MoveParent, ++/*232990*/ OPC_MoveChild1, ++/*232991*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*232994*/ OPC_CheckChild0Integer, 1, ++/*232996*/ OPC_CheckChild0Type, MVT::i32, ++/*232998*/ OPC_CheckChild1Integer, 1, ++/*233000*/ OPC_CheckChild1Type, MVT::i32, ++/*233002*/ OPC_CheckChild2Integer, 1, ++/*233004*/ OPC_CheckChild2Type, MVT::i32, ++/*233006*/ OPC_CheckChild3Integer, 1, ++/*233008*/ OPC_CheckChild3Type, MVT::i32, ++/*233010*/ OPC_CheckChild4Integer, 1, ++/*233012*/ OPC_CheckChild4Type, MVT::i32, ++/*233014*/ OPC_MoveChild5, ++/*233015*/ OPC_CheckInteger, 1, ++/*233017*/ OPC_CheckType, MVT::i32, ++/*233019*/ OPC_MoveParent, ++/*233020*/ OPC_MoveChild6, ++/*233021*/ OPC_CheckInteger, 1, ++/*233023*/ OPC_CheckType, MVT::i32, ++/*233025*/ OPC_MoveParent, ++/*233026*/ OPC_MoveChild7, ++/*233027*/ OPC_CheckInteger, 1, ++/*233029*/ OPC_CheckType, MVT::i32, ++/*233031*/ OPC_MoveParent, ++/*233032*/ OPC_MoveChild, 8, ++/*233034*/ OPC_CheckInteger, 1, ++/*233036*/ OPC_CheckType, MVT::i32, ++/*233038*/ OPC_MoveParent, ++/*233039*/ OPC_MoveChild, 9, ++/*233041*/ OPC_CheckInteger, 1, ++/*233043*/ OPC_CheckType, MVT::i32, ++/*233045*/ OPC_MoveParent, ++/*233046*/ OPC_MoveChild, 10, ++/*233048*/ OPC_CheckInteger, 1, ++/*233050*/ OPC_CheckType, MVT::i32, ++/*233052*/ OPC_MoveParent, ++/*233053*/ OPC_MoveChild, 11, ++/*233055*/ OPC_CheckInteger, 1, ++/*233057*/ OPC_CheckType, MVT::i32, ++/*233059*/ OPC_MoveParent, ++/*233060*/ OPC_MoveChild, 12, ++/*233062*/ OPC_CheckInteger, 1, ++/*233064*/ OPC_CheckType, MVT::i32, ++/*233066*/ OPC_MoveParent, ++/*233067*/ OPC_MoveChild, 13, ++/*233069*/ OPC_CheckInteger, 1, ++/*233071*/ OPC_CheckType, MVT::i32, ++/*233073*/ OPC_MoveParent, ++/*233074*/ OPC_MoveChild, 14, ++/*233076*/ OPC_CheckInteger, 1, ++/*233078*/ OPC_CheckType, MVT::i32, ++/*233080*/ OPC_MoveParent, ++/*233081*/ OPC_MoveChild, 15, ++/*233083*/ OPC_CheckInteger, 1, ++/*233085*/ OPC_CheckType, MVT::i32, ++/*233087*/ OPC_MoveParent, ++/*233088*/ OPC_CheckType, MVT::v16i16, ++/*233090*/ OPC_MoveParent, ++/*233091*/ OPC_CheckType, MVT::v16i16, ++/*233093*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*233095*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b), LASX256H:{ *:[v16i16] }:$a), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*233103*/ 0, /*End of Scope*/ ++/*233104*/ /*Scope*/ 10|128,5/*650*/, /*->233756*/ ++/*233106*/ OPC_CheckChild0Same, 1, ++/*233108*/ OPC_MoveChild1, ++/*233109*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*233112*/ OPC_Scope, 63|128,2/*319*/, /*->233434*/ // 2 children in Scope ++/*233115*/ OPC_MoveChild0, ++/*233116*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*233119*/ OPC_CheckChild0Integer, 1, ++/*233121*/ OPC_CheckChild0Type, MVT::i32, ++/*233123*/ OPC_CheckChild1Integer, 1, ++/*233125*/ OPC_CheckChild1Type, MVT::i32, ++/*233127*/ OPC_CheckChild2Integer, 1, ++/*233129*/ OPC_CheckChild2Type, MVT::i32, ++/*233131*/ OPC_CheckChild3Integer, 1, ++/*233133*/ OPC_CheckChild3Type, MVT::i32, ++/*233135*/ OPC_CheckChild4Integer, 1, ++/*233137*/ OPC_CheckChild4Type, MVT::i32, ++/*233139*/ OPC_MoveChild5, ++/*233140*/ OPC_CheckInteger, 1, ++/*233142*/ OPC_CheckType, MVT::i32, ++/*233144*/ OPC_MoveParent, ++/*233145*/ OPC_MoveChild6, ++/*233146*/ OPC_CheckInteger, 1, ++/*233148*/ OPC_CheckType, MVT::i32, ++/*233150*/ OPC_MoveParent, ++/*233151*/ OPC_MoveChild7, ++/*233152*/ OPC_CheckInteger, 1, ++/*233154*/ OPC_CheckType, MVT::i32, ++/*233156*/ OPC_MoveParent, ++/*233157*/ OPC_MoveChild, 8, ++/*233159*/ OPC_CheckInteger, 1, ++/*233161*/ OPC_CheckType, MVT::i32, ++/*233163*/ OPC_MoveParent, ++/*233164*/ OPC_MoveChild, 9, ++/*233166*/ OPC_CheckInteger, 1, ++/*233168*/ OPC_CheckType, MVT::i32, ++/*233170*/ OPC_MoveParent, ++/*233171*/ OPC_MoveChild, 10, ++/*233173*/ OPC_CheckInteger, 1, ++/*233175*/ OPC_CheckType, MVT::i32, ++/*233177*/ OPC_MoveParent, ++/*233178*/ OPC_MoveChild, 11, ++/*233180*/ OPC_CheckInteger, 1, ++/*233182*/ OPC_CheckType, MVT::i32, ++/*233184*/ OPC_MoveParent, ++/*233185*/ OPC_MoveChild, 12, ++/*233187*/ OPC_CheckInteger, 1, ++/*233189*/ OPC_CheckType, MVT::i32, ++/*233191*/ OPC_MoveParent, ++/*233192*/ OPC_MoveChild, 13, ++/*233194*/ OPC_CheckInteger, 1, ++/*233196*/ OPC_CheckType, MVT::i32, ++/*233198*/ OPC_MoveParent, ++/*233199*/ OPC_MoveChild, 14, ++/*233201*/ OPC_CheckInteger, 1, ++/*233203*/ OPC_CheckType, MVT::i32, ++/*233205*/ OPC_MoveParent, ++/*233206*/ OPC_MoveChild, 15, ++/*233208*/ OPC_CheckInteger, 1, ++/*233210*/ OPC_CheckType, MVT::i32, ++/*233212*/ OPC_MoveParent, ++/*233213*/ OPC_MoveParent, ++/*233214*/ OPC_CheckChild1Same, 0, ++/*233216*/ OPC_MoveParent, ++/*233217*/ OPC_MoveParent, ++/*233218*/ OPC_MoveChild1, ++/*233219*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*233222*/ OPC_CheckChild0Integer, 15, ++/*233224*/ OPC_CheckChild0Type, MVT::i32, ++/*233226*/ OPC_CheckChild1Integer, 15, ++/*233228*/ OPC_CheckChild1Type, MVT::i32, ++/*233230*/ OPC_CheckChild2Integer, 15, ++/*233232*/ OPC_CheckChild2Type, MVT::i32, ++/*233234*/ OPC_CheckChild3Integer, 15, ++/*233236*/ OPC_CheckChild3Type, MVT::i32, ++/*233238*/ OPC_CheckChild4Integer, 15, ++/*233240*/ OPC_CheckChild4Type, MVT::i32, ++/*233242*/ OPC_MoveChild5, ++/*233243*/ OPC_CheckInteger, 15, ++/*233245*/ OPC_CheckType, MVT::i32, ++/*233247*/ OPC_MoveParent, ++/*233248*/ OPC_MoveChild6, ++/*233249*/ OPC_CheckInteger, 15, ++/*233251*/ OPC_CheckType, MVT::i32, ++/*233253*/ OPC_MoveParent, ++/*233254*/ OPC_MoveChild7, ++/*233255*/ OPC_CheckInteger, 15, ++/*233257*/ OPC_CheckType, MVT::i32, ++/*233259*/ OPC_MoveParent, ++/*233260*/ OPC_MoveChild, 8, ++/*233262*/ OPC_CheckInteger, 15, ++/*233264*/ OPC_CheckType, MVT::i32, ++/*233266*/ OPC_MoveParent, ++/*233267*/ OPC_MoveChild, 9, ++/*233269*/ OPC_CheckInteger, 15, ++/*233271*/ OPC_CheckType, MVT::i32, ++/*233273*/ OPC_MoveParent, ++/*233274*/ OPC_MoveChild, 10, ++/*233276*/ OPC_CheckInteger, 15, ++/*233278*/ OPC_CheckType, MVT::i32, ++/*233280*/ OPC_MoveParent, ++/*233281*/ OPC_MoveChild, 11, ++/*233283*/ OPC_CheckInteger, 15, ++/*233285*/ OPC_CheckType, MVT::i32, ++/*233287*/ OPC_MoveParent, ++/*233288*/ OPC_MoveChild, 12, ++/*233290*/ OPC_CheckInteger, 15, ++/*233292*/ OPC_CheckType, MVT::i32, ++/*233294*/ OPC_MoveParent, ++/*233295*/ OPC_MoveChild, 13, ++/*233297*/ OPC_CheckInteger, 15, ++/*233299*/ OPC_CheckType, MVT::i32, ++/*233301*/ OPC_MoveParent, ++/*233302*/ OPC_MoveChild, 14, ++/*233304*/ OPC_CheckInteger, 15, ++/*233306*/ OPC_CheckType, MVT::i32, ++/*233308*/ OPC_MoveParent, ++/*233309*/ OPC_MoveChild, 15, ++/*233311*/ OPC_CheckInteger, 15, ++/*233313*/ OPC_CheckType, MVT::i32, ++/*233315*/ OPC_MoveParent, ++/*233316*/ OPC_CheckType, MVT::v16i16, ++/*233318*/ OPC_MoveParent, ++/*233319*/ OPC_MoveParent, ++/*233320*/ OPC_MoveParent, ++/*233321*/ OPC_MoveChild1, ++/*233322*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*233325*/ OPC_CheckChild0Integer, 1, ++/*233327*/ OPC_CheckChild0Type, MVT::i32, ++/*233329*/ OPC_CheckChild1Integer, 1, ++/*233331*/ OPC_CheckChild1Type, MVT::i32, ++/*233333*/ OPC_CheckChild2Integer, 1, ++/*233335*/ OPC_CheckChild2Type, MVT::i32, ++/*233337*/ OPC_CheckChild3Integer, 1, ++/*233339*/ OPC_CheckChild3Type, MVT::i32, ++/*233341*/ OPC_CheckChild4Integer, 1, ++/*233343*/ OPC_CheckChild4Type, MVT::i32, ++/*233345*/ OPC_MoveChild5, ++/*233346*/ OPC_CheckInteger, 1, ++/*233348*/ OPC_CheckType, MVT::i32, ++/*233350*/ OPC_MoveParent, ++/*233351*/ OPC_MoveChild6, ++/*233352*/ OPC_CheckInteger, 1, ++/*233354*/ OPC_CheckType, MVT::i32, ++/*233356*/ OPC_MoveParent, ++/*233357*/ OPC_MoveChild7, ++/*233358*/ OPC_CheckInteger, 1, ++/*233360*/ OPC_CheckType, MVT::i32, ++/*233362*/ OPC_MoveParent, ++/*233363*/ OPC_MoveChild, 8, ++/*233365*/ OPC_CheckInteger, 1, ++/*233367*/ OPC_CheckType, MVT::i32, ++/*233369*/ OPC_MoveParent, ++/*233370*/ OPC_MoveChild, 9, ++/*233372*/ OPC_CheckInteger, 1, ++/*233374*/ OPC_CheckType, MVT::i32, ++/*233376*/ OPC_MoveParent, ++/*233377*/ OPC_MoveChild, 10, ++/*233379*/ OPC_CheckInteger, 1, ++/*233381*/ OPC_CheckType, MVT::i32, ++/*233383*/ OPC_MoveParent, ++/*233384*/ OPC_MoveChild, 11, ++/*233386*/ OPC_CheckInteger, 1, ++/*233388*/ OPC_CheckType, MVT::i32, ++/*233390*/ OPC_MoveParent, ++/*233391*/ OPC_MoveChild, 12, ++/*233393*/ OPC_CheckInteger, 1, ++/*233395*/ OPC_CheckType, MVT::i32, ++/*233397*/ OPC_MoveParent, ++/*233398*/ OPC_MoveChild, 13, ++/*233400*/ OPC_CheckInteger, 1, ++/*233402*/ OPC_CheckType, MVT::i32, ++/*233404*/ OPC_MoveParent, ++/*233405*/ OPC_MoveChild, 14, ++/*233407*/ OPC_CheckInteger, 1, ++/*233409*/ OPC_CheckType, MVT::i32, ++/*233411*/ OPC_MoveParent, ++/*233412*/ OPC_MoveChild, 15, ++/*233414*/ OPC_CheckInteger, 1, ++/*233416*/ OPC_CheckType, MVT::i32, ++/*233418*/ OPC_MoveParent, ++/*233419*/ OPC_CheckType, MVT::v16i16, ++/*233421*/ OPC_MoveParent, ++/*233422*/ OPC_CheckType, MVT::v16i16, ++/*233424*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*233426*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b), LASX256H:{ *:[v16i16] }:$a), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*233434*/ /*Scope*/ 63|128,2/*319*/, /*->233755*/ ++/*233436*/ OPC_CheckChild0Same, 0, ++/*233438*/ OPC_MoveChild1, ++/*233439*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*233442*/ OPC_CheckChild0Integer, 1, ++/*233444*/ OPC_CheckChild0Type, MVT::i32, ++/*233446*/ OPC_CheckChild1Integer, 1, ++/*233448*/ OPC_CheckChild1Type, MVT::i32, ++/*233450*/ OPC_CheckChild2Integer, 1, ++/*233452*/ OPC_CheckChild2Type, MVT::i32, ++/*233454*/ OPC_CheckChild3Integer, 1, ++/*233456*/ OPC_CheckChild3Type, MVT::i32, ++/*233458*/ OPC_CheckChild4Integer, 1, ++/*233460*/ OPC_CheckChild4Type, MVT::i32, ++/*233462*/ OPC_MoveChild5, ++/*233463*/ OPC_CheckInteger, 1, ++/*233465*/ OPC_CheckType, MVT::i32, ++/*233467*/ OPC_MoveParent, ++/*233468*/ OPC_MoveChild6, ++/*233469*/ OPC_CheckInteger, 1, ++/*233471*/ OPC_CheckType, MVT::i32, ++/*233473*/ OPC_MoveParent, ++/*233474*/ OPC_MoveChild7, ++/*233475*/ OPC_CheckInteger, 1, ++/*233477*/ OPC_CheckType, MVT::i32, ++/*233479*/ OPC_MoveParent, ++/*233480*/ OPC_MoveChild, 8, ++/*233482*/ OPC_CheckInteger, 1, ++/*233484*/ OPC_CheckType, MVT::i32, ++/*233486*/ OPC_MoveParent, ++/*233487*/ OPC_MoveChild, 9, ++/*233489*/ OPC_CheckInteger, 1, ++/*233491*/ OPC_CheckType, MVT::i32, ++/*233493*/ OPC_MoveParent, ++/*233494*/ OPC_MoveChild, 10, ++/*233496*/ OPC_CheckInteger, 1, ++/*233498*/ OPC_CheckType, MVT::i32, ++/*233500*/ OPC_MoveParent, ++/*233501*/ OPC_MoveChild, 11, ++/*233503*/ OPC_CheckInteger, 1, ++/*233505*/ OPC_CheckType, MVT::i32, ++/*233507*/ OPC_MoveParent, ++/*233508*/ OPC_MoveChild, 12, ++/*233510*/ OPC_CheckInteger, 1, ++/*233512*/ OPC_CheckType, MVT::i32, ++/*233514*/ OPC_MoveParent, ++/*233515*/ OPC_MoveChild, 13, ++/*233517*/ OPC_CheckInteger, 1, ++/*233519*/ OPC_CheckType, MVT::i32, ++/*233521*/ OPC_MoveParent, ++/*233522*/ OPC_MoveChild, 14, ++/*233524*/ OPC_CheckInteger, 1, ++/*233526*/ OPC_CheckType, MVT::i32, ++/*233528*/ OPC_MoveParent, ++/*233529*/ OPC_MoveChild, 15, ++/*233531*/ OPC_CheckInteger, 1, ++/*233533*/ OPC_CheckType, MVT::i32, ++/*233535*/ OPC_MoveParent, ++/*233536*/ OPC_MoveParent, ++/*233537*/ OPC_MoveParent, ++/*233538*/ OPC_MoveParent, ++/*233539*/ OPC_MoveChild1, ++/*233540*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*233543*/ OPC_CheckChild0Integer, 15, ++/*233545*/ OPC_CheckChild0Type, MVT::i32, ++/*233547*/ OPC_CheckChild1Integer, 15, ++/*233549*/ OPC_CheckChild1Type, MVT::i32, ++/*233551*/ OPC_CheckChild2Integer, 15, ++/*233553*/ OPC_CheckChild2Type, MVT::i32, ++/*233555*/ OPC_CheckChild3Integer, 15, ++/*233557*/ OPC_CheckChild3Type, MVT::i32, ++/*233559*/ OPC_CheckChild4Integer, 15, ++/*233561*/ OPC_CheckChild4Type, MVT::i32, ++/*233563*/ OPC_MoveChild5, ++/*233564*/ OPC_CheckInteger, 15, ++/*233566*/ OPC_CheckType, MVT::i32, ++/*233568*/ OPC_MoveParent, ++/*233569*/ OPC_MoveChild6, ++/*233570*/ OPC_CheckInteger, 15, ++/*233572*/ OPC_CheckType, MVT::i32, ++/*233574*/ OPC_MoveParent, ++/*233575*/ OPC_MoveChild7, ++/*233576*/ OPC_CheckInteger, 15, ++/*233578*/ OPC_CheckType, MVT::i32, ++/*233580*/ OPC_MoveParent, ++/*233581*/ OPC_MoveChild, 8, ++/*233583*/ OPC_CheckInteger, 15, ++/*233585*/ OPC_CheckType, MVT::i32, ++/*233587*/ OPC_MoveParent, ++/*233588*/ OPC_MoveChild, 9, ++/*233590*/ OPC_CheckInteger, 15, ++/*233592*/ OPC_CheckType, MVT::i32, ++/*233594*/ OPC_MoveParent, ++/*233595*/ OPC_MoveChild, 10, ++/*233597*/ OPC_CheckInteger, 15, ++/*233599*/ OPC_CheckType, MVT::i32, ++/*233601*/ OPC_MoveParent, ++/*233602*/ OPC_MoveChild, 11, ++/*233604*/ OPC_CheckInteger, 15, ++/*233606*/ OPC_CheckType, MVT::i32, ++/*233608*/ OPC_MoveParent, ++/*233609*/ OPC_MoveChild, 12, ++/*233611*/ OPC_CheckInteger, 15, ++/*233613*/ OPC_CheckType, MVT::i32, ++/*233615*/ OPC_MoveParent, ++/*233616*/ OPC_MoveChild, 13, ++/*233618*/ OPC_CheckInteger, 15, ++/*233620*/ OPC_CheckType, MVT::i32, ++/*233622*/ OPC_MoveParent, ++/*233623*/ OPC_MoveChild, 14, ++/*233625*/ OPC_CheckInteger, 15, ++/*233627*/ OPC_CheckType, MVT::i32, ++/*233629*/ OPC_MoveParent, ++/*233630*/ OPC_MoveChild, 15, ++/*233632*/ OPC_CheckInteger, 15, ++/*233634*/ OPC_CheckType, MVT::i32, ++/*233636*/ OPC_MoveParent, ++/*233637*/ OPC_CheckType, MVT::v16i16, ++/*233639*/ OPC_MoveParent, ++/*233640*/ OPC_MoveParent, ++/*233641*/ OPC_MoveParent, ++/*233642*/ OPC_MoveChild1, ++/*233643*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*233646*/ OPC_CheckChild0Integer, 1, ++/*233648*/ OPC_CheckChild0Type, MVT::i32, ++/*233650*/ OPC_CheckChild1Integer, 1, ++/*233652*/ OPC_CheckChild1Type, MVT::i32, ++/*233654*/ OPC_CheckChild2Integer, 1, ++/*233656*/ OPC_CheckChild2Type, MVT::i32, ++/*233658*/ OPC_CheckChild3Integer, 1, ++/*233660*/ OPC_CheckChild3Type, MVT::i32, ++/*233662*/ OPC_CheckChild4Integer, 1, ++/*233664*/ OPC_CheckChild4Type, MVT::i32, ++/*233666*/ OPC_MoveChild5, ++/*233667*/ OPC_CheckInteger, 1, ++/*233669*/ OPC_CheckType, MVT::i32, ++/*233671*/ OPC_MoveParent, ++/*233672*/ OPC_MoveChild6, ++/*233673*/ OPC_CheckInteger, 1, ++/*233675*/ OPC_CheckType, MVT::i32, ++/*233677*/ OPC_MoveParent, ++/*233678*/ OPC_MoveChild7, ++/*233679*/ OPC_CheckInteger, 1, ++/*233681*/ OPC_CheckType, MVT::i32, ++/*233683*/ OPC_MoveParent, ++/*233684*/ OPC_MoveChild, 8, ++/*233686*/ OPC_CheckInteger, 1, ++/*233688*/ OPC_CheckType, MVT::i32, ++/*233690*/ OPC_MoveParent, ++/*233691*/ OPC_MoveChild, 9, ++/*233693*/ OPC_CheckInteger, 1, ++/*233695*/ OPC_CheckType, MVT::i32, ++/*233697*/ OPC_MoveParent, ++/*233698*/ OPC_MoveChild, 10, ++/*233700*/ OPC_CheckInteger, 1, ++/*233702*/ OPC_CheckType, MVT::i32, ++/*233704*/ OPC_MoveParent, ++/*233705*/ OPC_MoveChild, 11, ++/*233707*/ OPC_CheckInteger, 1, ++/*233709*/ OPC_CheckType, MVT::i32, ++/*233711*/ OPC_MoveParent, ++/*233712*/ OPC_MoveChild, 12, ++/*233714*/ OPC_CheckInteger, 1, ++/*233716*/ OPC_CheckType, MVT::i32, ++/*233718*/ OPC_MoveParent, ++/*233719*/ OPC_MoveChild, 13, ++/*233721*/ OPC_CheckInteger, 1, ++/*233723*/ OPC_CheckType, MVT::i32, ++/*233725*/ OPC_MoveParent, ++/*233726*/ OPC_MoveChild, 14, ++/*233728*/ OPC_CheckInteger, 1, ++/*233730*/ OPC_CheckType, MVT::i32, ++/*233732*/ OPC_MoveParent, ++/*233733*/ OPC_MoveChild, 15, ++/*233735*/ OPC_CheckInteger, 1, ++/*233737*/ OPC_CheckType, MVT::i32, ++/*233739*/ OPC_MoveParent, ++/*233740*/ OPC_CheckType, MVT::v16i16, ++/*233742*/ OPC_MoveParent, ++/*233743*/ OPC_CheckType, MVT::v16i16, ++/*233745*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*233747*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b), LASX256H:{ *:[v16i16] }:$a), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*233755*/ 0, /*End of Scope*/ ++/*233756*/ /*Scope*/ 41|128,4/*553*/, /*->234311*/ ++/*233758*/ OPC_MoveChild0, ++/*233759*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*233762*/ OPC_CheckChild0Integer, 1, ++/*233764*/ OPC_CheckChild0Type, MVT::i32, ++/*233766*/ OPC_CheckChild1Integer, 1, ++/*233768*/ OPC_CheckChild1Type, MVT::i32, ++/*233770*/ OPC_CheckChild2Integer, 1, ++/*233772*/ OPC_CheckChild2Type, MVT::i32, ++/*233774*/ OPC_CheckChild3Integer, 1, ++/*233776*/ OPC_CheckChild3Type, MVT::i32, ++/*233778*/ OPC_CheckChild4Integer, 1, ++/*233780*/ OPC_CheckChild4Type, MVT::i32, ++/*233782*/ OPC_MoveChild5, ++/*233783*/ OPC_CheckInteger, 1, ++/*233785*/ OPC_CheckType, MVT::i32, ++/*233787*/ OPC_MoveParent, ++/*233788*/ OPC_MoveChild6, ++/*233789*/ OPC_CheckInteger, 1, ++/*233791*/ OPC_CheckType, MVT::i32, ++/*233793*/ OPC_MoveParent, ++/*233794*/ OPC_MoveChild7, ++/*233795*/ OPC_CheckInteger, 1, ++/*233797*/ OPC_CheckType, MVT::i32, ++/*233799*/ OPC_MoveParent, ++/*233800*/ OPC_MoveChild, 8, ++/*233802*/ OPC_CheckInteger, 1, ++/*233804*/ OPC_CheckType, MVT::i32, ++/*233806*/ OPC_MoveParent, ++/*233807*/ OPC_MoveChild, 9, ++/*233809*/ OPC_CheckInteger, 1, ++/*233811*/ OPC_CheckType, MVT::i32, ++/*233813*/ OPC_MoveParent, ++/*233814*/ OPC_MoveChild, 10, ++/*233816*/ OPC_CheckInteger, 1, ++/*233818*/ OPC_CheckType, MVT::i32, ++/*233820*/ OPC_MoveParent, ++/*233821*/ OPC_MoveChild, 11, ++/*233823*/ OPC_CheckInteger, 1, ++/*233825*/ OPC_CheckType, MVT::i32, ++/*233827*/ OPC_MoveParent, ++/*233828*/ OPC_MoveChild, 12, ++/*233830*/ OPC_CheckInteger, 1, ++/*233832*/ OPC_CheckType, MVT::i32, ++/*233834*/ OPC_MoveParent, ++/*233835*/ OPC_MoveChild, 13, ++/*233837*/ OPC_CheckInteger, 1, ++/*233839*/ OPC_CheckType, MVT::i32, ++/*233841*/ OPC_MoveParent, ++/*233842*/ OPC_MoveChild, 14, ++/*233844*/ OPC_CheckInteger, 1, ++/*233846*/ OPC_CheckType, MVT::i32, ++/*233848*/ OPC_MoveParent, ++/*233849*/ OPC_MoveChild, 15, ++/*233851*/ OPC_CheckInteger, 1, ++/*233853*/ OPC_CheckType, MVT::i32, ++/*233855*/ OPC_MoveParent, ++/*233856*/ OPC_MoveParent, ++/*233857*/ OPC_MoveChild1, ++/*233858*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*233861*/ OPC_Scope, 94|128,1/*222*/, /*->234086*/ // 2 children in Scope ++/*233864*/ OPC_CheckChild0Same, 1, ++/*233866*/ OPC_CheckChild1Same, 0, ++/*233868*/ OPC_MoveParent, ++/*233869*/ OPC_MoveParent, ++/*233870*/ OPC_MoveChild1, ++/*233871*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*233874*/ OPC_CheckChild0Integer, 15, ++/*233876*/ OPC_CheckChild0Type, MVT::i32, ++/*233878*/ OPC_CheckChild1Integer, 15, ++/*233880*/ OPC_CheckChild1Type, MVT::i32, ++/*233882*/ OPC_CheckChild2Integer, 15, ++/*233884*/ OPC_CheckChild2Type, MVT::i32, ++/*233886*/ OPC_CheckChild3Integer, 15, ++/*233888*/ OPC_CheckChild3Type, MVT::i32, ++/*233890*/ OPC_CheckChild4Integer, 15, ++/*233892*/ OPC_CheckChild4Type, MVT::i32, ++/*233894*/ OPC_MoveChild5, ++/*233895*/ OPC_CheckInteger, 15, ++/*233897*/ OPC_CheckType, MVT::i32, ++/*233899*/ OPC_MoveParent, ++/*233900*/ OPC_MoveChild6, ++/*233901*/ OPC_CheckInteger, 15, ++/*233903*/ OPC_CheckType, MVT::i32, ++/*233905*/ OPC_MoveParent, ++/*233906*/ OPC_MoveChild7, ++/*233907*/ OPC_CheckInteger, 15, ++/*233909*/ OPC_CheckType, MVT::i32, ++/*233911*/ OPC_MoveParent, ++/*233912*/ OPC_MoveChild, 8, ++/*233914*/ OPC_CheckInteger, 15, ++/*233916*/ OPC_CheckType, MVT::i32, ++/*233918*/ OPC_MoveParent, ++/*233919*/ OPC_MoveChild, 9, ++/*233921*/ OPC_CheckInteger, 15, ++/*233923*/ OPC_CheckType, MVT::i32, ++/*233925*/ OPC_MoveParent, ++/*233926*/ OPC_MoveChild, 10, ++/*233928*/ OPC_CheckInteger, 15, ++/*233930*/ OPC_CheckType, MVT::i32, ++/*233932*/ OPC_MoveParent, ++/*233933*/ OPC_MoveChild, 11, ++/*233935*/ OPC_CheckInteger, 15, ++/*233937*/ OPC_CheckType, MVT::i32, ++/*233939*/ OPC_MoveParent, ++/*233940*/ OPC_MoveChild, 12, ++/*233942*/ OPC_CheckInteger, 15, ++/*233944*/ OPC_CheckType, MVT::i32, ++/*233946*/ OPC_MoveParent, ++/*233947*/ OPC_MoveChild, 13, ++/*233949*/ OPC_CheckInteger, 15, ++/*233951*/ OPC_CheckType, MVT::i32, ++/*233953*/ OPC_MoveParent, ++/*233954*/ OPC_MoveChild, 14, ++/*233956*/ OPC_CheckInteger, 15, ++/*233958*/ OPC_CheckType, MVT::i32, ++/*233960*/ OPC_MoveParent, ++/*233961*/ OPC_MoveChild, 15, ++/*233963*/ OPC_CheckInteger, 15, ++/*233965*/ OPC_CheckType, MVT::i32, ++/*233967*/ OPC_MoveParent, ++/*233968*/ OPC_CheckType, MVT::v16i16, ++/*233970*/ OPC_MoveParent, ++/*233971*/ OPC_MoveParent, ++/*233972*/ OPC_MoveParent, ++/*233973*/ OPC_MoveChild1, ++/*233974*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*233977*/ OPC_CheckChild0Integer, 1, ++/*233979*/ OPC_CheckChild0Type, MVT::i32, ++/*233981*/ OPC_CheckChild1Integer, 1, ++/*233983*/ OPC_CheckChild1Type, MVT::i32, ++/*233985*/ OPC_CheckChild2Integer, 1, ++/*233987*/ OPC_CheckChild2Type, MVT::i32, ++/*233989*/ OPC_CheckChild3Integer, 1, ++/*233991*/ OPC_CheckChild3Type, MVT::i32, ++/*233993*/ OPC_CheckChild4Integer, 1, ++/*233995*/ OPC_CheckChild4Type, MVT::i32, ++/*233997*/ OPC_MoveChild5, ++/*233998*/ OPC_CheckInteger, 1, ++/*234000*/ OPC_CheckType, MVT::i32, ++/*234002*/ OPC_MoveParent, ++/*234003*/ OPC_MoveChild6, ++/*234004*/ OPC_CheckInteger, 1, ++/*234006*/ OPC_CheckType, MVT::i32, ++/*234008*/ OPC_MoveParent, ++/*234009*/ OPC_MoveChild7, ++/*234010*/ OPC_CheckInteger, 1, ++/*234012*/ OPC_CheckType, MVT::i32, ++/*234014*/ OPC_MoveParent, ++/*234015*/ OPC_MoveChild, 8, ++/*234017*/ OPC_CheckInteger, 1, ++/*234019*/ OPC_CheckType, MVT::i32, ++/*234021*/ OPC_MoveParent, ++/*234022*/ OPC_MoveChild, 9, ++/*234024*/ OPC_CheckInteger, 1, ++/*234026*/ OPC_CheckType, MVT::i32, ++/*234028*/ OPC_MoveParent, ++/*234029*/ OPC_MoveChild, 10, ++/*234031*/ OPC_CheckInteger, 1, ++/*234033*/ OPC_CheckType, MVT::i32, ++/*234035*/ OPC_MoveParent, ++/*234036*/ OPC_MoveChild, 11, ++/*234038*/ OPC_CheckInteger, 1, ++/*234040*/ OPC_CheckType, MVT::i32, ++/*234042*/ OPC_MoveParent, ++/*234043*/ OPC_MoveChild, 12, ++/*234045*/ OPC_CheckInteger, 1, ++/*234047*/ OPC_CheckType, MVT::i32, ++/*234049*/ OPC_MoveParent, ++/*234050*/ OPC_MoveChild, 13, ++/*234052*/ OPC_CheckInteger, 1, ++/*234054*/ OPC_CheckType, MVT::i32, ++/*234056*/ OPC_MoveParent, ++/*234057*/ OPC_MoveChild, 14, ++/*234059*/ OPC_CheckInteger, 1, ++/*234061*/ OPC_CheckType, MVT::i32, ++/*234063*/ OPC_MoveParent, ++/*234064*/ OPC_MoveChild, 15, ++/*234066*/ OPC_CheckInteger, 1, ++/*234068*/ OPC_CheckType, MVT::i32, ++/*234070*/ OPC_MoveParent, ++/*234071*/ OPC_CheckType, MVT::v16i16, ++/*234073*/ OPC_MoveParent, ++/*234074*/ OPC_CheckType, MVT::v16i16, ++/*234076*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*234078*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b), LASX256H:{ *:[v16i16] }:$a), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*234086*/ /*Scope*/ 94|128,1/*222*/, /*->234310*/ ++/*234088*/ OPC_CheckChild0Same, 0, ++/*234090*/ OPC_CheckChild1Same, 1, ++/*234092*/ OPC_MoveParent, ++/*234093*/ OPC_MoveParent, ++/*234094*/ OPC_MoveChild1, ++/*234095*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*234098*/ OPC_CheckChild0Integer, 15, ++/*234100*/ OPC_CheckChild0Type, MVT::i32, ++/*234102*/ OPC_CheckChild1Integer, 15, ++/*234104*/ OPC_CheckChild1Type, MVT::i32, ++/*234106*/ OPC_CheckChild2Integer, 15, ++/*234108*/ OPC_CheckChild2Type, MVT::i32, ++/*234110*/ OPC_CheckChild3Integer, 15, ++/*234112*/ OPC_CheckChild3Type, MVT::i32, ++/*234114*/ OPC_CheckChild4Integer, 15, ++/*234116*/ OPC_CheckChild4Type, MVT::i32, ++/*234118*/ OPC_MoveChild5, ++/*234119*/ OPC_CheckInteger, 15, ++/*234121*/ OPC_CheckType, MVT::i32, ++/*234123*/ OPC_MoveParent, ++/*234124*/ OPC_MoveChild6, ++/*234125*/ OPC_CheckInteger, 15, ++/*234127*/ OPC_CheckType, MVT::i32, ++/*234129*/ OPC_MoveParent, ++/*234130*/ OPC_MoveChild7, ++/*234131*/ OPC_CheckInteger, 15, ++/*234133*/ OPC_CheckType, MVT::i32, ++/*234135*/ OPC_MoveParent, ++/*234136*/ OPC_MoveChild, 8, ++/*234138*/ OPC_CheckInteger, 15, ++/*234140*/ OPC_CheckType, MVT::i32, ++/*234142*/ OPC_MoveParent, ++/*234143*/ OPC_MoveChild, 9, ++/*234145*/ OPC_CheckInteger, 15, ++/*234147*/ OPC_CheckType, MVT::i32, ++/*234149*/ OPC_MoveParent, ++/*234150*/ OPC_MoveChild, 10, ++/*234152*/ OPC_CheckInteger, 15, ++/*234154*/ OPC_CheckType, MVT::i32, ++/*234156*/ OPC_MoveParent, ++/*234157*/ OPC_MoveChild, 11, ++/*234159*/ OPC_CheckInteger, 15, ++/*234161*/ OPC_CheckType, MVT::i32, ++/*234163*/ OPC_MoveParent, ++/*234164*/ OPC_MoveChild, 12, ++/*234166*/ OPC_CheckInteger, 15, ++/*234168*/ OPC_CheckType, MVT::i32, ++/*234170*/ OPC_MoveParent, ++/*234171*/ OPC_MoveChild, 13, ++/*234173*/ OPC_CheckInteger, 15, ++/*234175*/ OPC_CheckType, MVT::i32, ++/*234177*/ OPC_MoveParent, ++/*234178*/ OPC_MoveChild, 14, ++/*234180*/ OPC_CheckInteger, 15, ++/*234182*/ OPC_CheckType, MVT::i32, ++/*234184*/ OPC_MoveParent, ++/*234185*/ OPC_MoveChild, 15, ++/*234187*/ OPC_CheckInteger, 15, ++/*234189*/ OPC_CheckType, MVT::i32, ++/*234191*/ OPC_MoveParent, ++/*234192*/ OPC_CheckType, MVT::v16i16, ++/*234194*/ OPC_MoveParent, ++/*234195*/ OPC_MoveParent, ++/*234196*/ OPC_MoveParent, ++/*234197*/ OPC_MoveChild1, ++/*234198*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*234201*/ OPC_CheckChild0Integer, 1, ++/*234203*/ OPC_CheckChild0Type, MVT::i32, ++/*234205*/ OPC_CheckChild1Integer, 1, ++/*234207*/ OPC_CheckChild1Type, MVT::i32, ++/*234209*/ OPC_CheckChild2Integer, 1, ++/*234211*/ OPC_CheckChild2Type, MVT::i32, ++/*234213*/ OPC_CheckChild3Integer, 1, ++/*234215*/ OPC_CheckChild3Type, MVT::i32, ++/*234217*/ OPC_CheckChild4Integer, 1, ++/*234219*/ OPC_CheckChild4Type, MVT::i32, ++/*234221*/ OPC_MoveChild5, ++/*234222*/ OPC_CheckInteger, 1, ++/*234224*/ OPC_CheckType, MVT::i32, ++/*234226*/ OPC_MoveParent, ++/*234227*/ OPC_MoveChild6, ++/*234228*/ OPC_CheckInteger, 1, ++/*234230*/ OPC_CheckType, MVT::i32, ++/*234232*/ OPC_MoveParent, ++/*234233*/ OPC_MoveChild7, ++/*234234*/ OPC_CheckInteger, 1, ++/*234236*/ OPC_CheckType, MVT::i32, ++/*234238*/ OPC_MoveParent, ++/*234239*/ OPC_MoveChild, 8, ++/*234241*/ OPC_CheckInteger, 1, ++/*234243*/ OPC_CheckType, MVT::i32, ++/*234245*/ OPC_MoveParent, ++/*234246*/ OPC_MoveChild, 9, ++/*234248*/ OPC_CheckInteger, 1, ++/*234250*/ OPC_CheckType, MVT::i32, ++/*234252*/ OPC_MoveParent, ++/*234253*/ OPC_MoveChild, 10, ++/*234255*/ OPC_CheckInteger, 1, ++/*234257*/ OPC_CheckType, MVT::i32, ++/*234259*/ OPC_MoveParent, ++/*234260*/ OPC_MoveChild, 11, ++/*234262*/ OPC_CheckInteger, 1, ++/*234264*/ OPC_CheckType, MVT::i32, ++/*234266*/ OPC_MoveParent, ++/*234267*/ OPC_MoveChild, 12, ++/*234269*/ OPC_CheckInteger, 1, ++/*234271*/ OPC_CheckType, MVT::i32, ++/*234273*/ OPC_MoveParent, ++/*234274*/ OPC_MoveChild, 13, ++/*234276*/ OPC_CheckInteger, 1, ++/*234278*/ OPC_CheckType, MVT::i32, ++/*234280*/ OPC_MoveParent, ++/*234281*/ OPC_MoveChild, 14, ++/*234283*/ OPC_CheckInteger, 1, ++/*234285*/ OPC_CheckType, MVT::i32, ++/*234287*/ OPC_MoveParent, ++/*234288*/ OPC_MoveChild, 15, ++/*234290*/ OPC_CheckInteger, 1, ++/*234292*/ OPC_CheckType, MVT::i32, ++/*234294*/ OPC_MoveParent, ++/*234295*/ OPC_CheckType, MVT::v16i16, ++/*234297*/ OPC_MoveParent, ++/*234298*/ OPC_CheckType, MVT::v16i16, ++/*234300*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*234302*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b), LASX256H:{ *:[v16i16] }:$a), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*234310*/ 0, /*End of Scope*/ ++/*234311*/ 0, /*End of Scope*/ ++/*234312*/ /*Scope*/ 127|128,90/*11647*/, /*->245961*/ ++/*234314*/ OPC_RecordChild0, // #0 = $b ++/*234315*/ OPC_Scope, 77|128,30/*3917*/, /*->238235*/ // 2 children in Scope ++/*234318*/ OPC_MoveChild1, ++/*234319*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*234322*/ OPC_CheckChild0Integer, 1, ++/*234324*/ OPC_CheckChild0Type, MVT::i32, ++/*234326*/ OPC_CheckChild1Integer, 1, ++/*234328*/ OPC_CheckChild1Type, MVT::i32, ++/*234330*/ OPC_CheckChild2Integer, 1, ++/*234332*/ OPC_CheckChild2Type, MVT::i32, ++/*234334*/ OPC_CheckChild3Integer, 1, ++/*234336*/ OPC_CheckChild3Type, MVT::i32, ++/*234338*/ OPC_CheckChild4Integer, 1, ++/*234340*/ OPC_CheckChild4Type, MVT::i32, ++/*234342*/ OPC_MoveChild5, ++/*234343*/ OPC_CheckInteger, 1, ++/*234345*/ OPC_CheckType, MVT::i32, ++/*234347*/ OPC_MoveParent, ++/*234348*/ OPC_MoveChild6, ++/*234349*/ OPC_CheckInteger, 1, ++/*234351*/ OPC_CheckType, MVT::i32, ++/*234353*/ OPC_MoveParent, ++/*234354*/ OPC_MoveChild7, ++/*234355*/ OPC_CheckInteger, 1, ++/*234357*/ OPC_CheckType, MVT::i32, ++/*234359*/ OPC_MoveParent, ++/*234360*/ OPC_MoveChild, 8, ++/*234362*/ OPC_CheckInteger, 1, ++/*234364*/ OPC_CheckType, MVT::i32, ++/*234366*/ OPC_MoveParent, ++/*234367*/ OPC_MoveChild, 9, ++/*234369*/ OPC_CheckInteger, 1, ++/*234371*/ OPC_CheckType, MVT::i32, ++/*234373*/ OPC_MoveParent, ++/*234374*/ OPC_MoveChild, 10, ++/*234376*/ OPC_CheckInteger, 1, ++/*234378*/ OPC_CheckType, MVT::i32, ++/*234380*/ OPC_MoveParent, ++/*234381*/ OPC_MoveChild, 11, ++/*234383*/ OPC_CheckInteger, 1, ++/*234385*/ OPC_CheckType, MVT::i32, ++/*234387*/ OPC_MoveParent, ++/*234388*/ OPC_MoveChild, 12, ++/*234390*/ OPC_CheckInteger, 1, ++/*234392*/ OPC_CheckType, MVT::i32, ++/*234394*/ OPC_MoveParent, ++/*234395*/ OPC_MoveChild, 13, ++/*234397*/ OPC_CheckInteger, 1, ++/*234399*/ OPC_CheckType, MVT::i32, ++/*234401*/ OPC_MoveParent, ++/*234402*/ OPC_MoveChild, 14, ++/*234404*/ OPC_CheckInteger, 1, ++/*234406*/ OPC_CheckType, MVT::i32, ++/*234408*/ OPC_MoveParent, ++/*234409*/ OPC_MoveChild, 15, ++/*234411*/ OPC_CheckInteger, 1, ++/*234413*/ OPC_CheckType, MVT::i32, ++/*234415*/ OPC_MoveParent, ++/*234416*/ OPC_MoveParent, ++/*234417*/ OPC_MoveParent, ++/*234418*/ OPC_RecordChild1, // #1 = $a ++/*234419*/ OPC_MoveParent, ++/*234420*/ OPC_MoveChild1, ++/*234421*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*234424*/ OPC_MoveChild0, ++/*234425*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*234428*/ OPC_Scope, 24|128,15/*1944*/, /*->236375*/ // 4 children in Scope ++/*234431*/ OPC_MoveChild0, ++/*234432*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*234435*/ OPC_Scope, 65|128,2/*321*/, /*->234759*/ // 6 children in Scope ++/*234438*/ OPC_MoveChild0, ++/*234439*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*234442*/ OPC_CheckChild0Integer, 1, ++/*234444*/ OPC_CheckChild0Type, MVT::i32, ++/*234446*/ OPC_CheckChild1Integer, 1, ++/*234448*/ OPC_CheckChild1Type, MVT::i32, ++/*234450*/ OPC_CheckChild2Integer, 1, ++/*234452*/ OPC_CheckChild2Type, MVT::i32, ++/*234454*/ OPC_CheckChild3Integer, 1, ++/*234456*/ OPC_CheckChild3Type, MVT::i32, ++/*234458*/ OPC_CheckChild4Integer, 1, ++/*234460*/ OPC_CheckChild4Type, MVT::i32, ++/*234462*/ OPC_MoveChild5, ++/*234463*/ OPC_CheckInteger, 1, ++/*234465*/ OPC_CheckType, MVT::i32, ++/*234467*/ OPC_MoveParent, ++/*234468*/ OPC_MoveChild6, ++/*234469*/ OPC_CheckInteger, 1, ++/*234471*/ OPC_CheckType, MVT::i32, ++/*234473*/ OPC_MoveParent, ++/*234474*/ OPC_MoveChild7, ++/*234475*/ OPC_CheckInteger, 1, ++/*234477*/ OPC_CheckType, MVT::i32, ++/*234479*/ OPC_MoveParent, ++/*234480*/ OPC_MoveChild, 8, ++/*234482*/ OPC_CheckInteger, 1, ++/*234484*/ OPC_CheckType, MVT::i32, ++/*234486*/ OPC_MoveParent, ++/*234487*/ OPC_MoveChild, 9, ++/*234489*/ OPC_CheckInteger, 1, ++/*234491*/ OPC_CheckType, MVT::i32, ++/*234493*/ OPC_MoveParent, ++/*234494*/ OPC_MoveChild, 10, ++/*234496*/ OPC_CheckInteger, 1, ++/*234498*/ OPC_CheckType, MVT::i32, ++/*234500*/ OPC_MoveParent, ++/*234501*/ OPC_MoveChild, 11, ++/*234503*/ OPC_CheckInteger, 1, ++/*234505*/ OPC_CheckType, MVT::i32, ++/*234507*/ OPC_MoveParent, ++/*234508*/ OPC_MoveChild, 12, ++/*234510*/ OPC_CheckInteger, 1, ++/*234512*/ OPC_CheckType, MVT::i32, ++/*234514*/ OPC_MoveParent, ++/*234515*/ OPC_MoveChild, 13, ++/*234517*/ OPC_CheckInteger, 1, ++/*234519*/ OPC_CheckType, MVT::i32, ++/*234521*/ OPC_MoveParent, ++/*234522*/ OPC_MoveChild, 14, ++/*234524*/ OPC_CheckInteger, 1, ++/*234526*/ OPC_CheckType, MVT::i32, ++/*234528*/ OPC_MoveParent, ++/*234529*/ OPC_MoveChild, 15, ++/*234531*/ OPC_CheckInteger, 1, ++/*234533*/ OPC_CheckType, MVT::i32, ++/*234535*/ OPC_MoveParent, ++/*234536*/ OPC_MoveParent, ++/*234537*/ OPC_CheckChild1Same, 1, ++/*234539*/ OPC_MoveParent, ++/*234540*/ OPC_CheckChild1Same, 0, ++/*234542*/ OPC_MoveParent, ++/*234543*/ OPC_MoveChild1, ++/*234544*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*234547*/ OPC_CheckChild0Integer, 15, ++/*234549*/ OPC_CheckChild0Type, MVT::i32, ++/*234551*/ OPC_CheckChild1Integer, 15, ++/*234553*/ OPC_CheckChild1Type, MVT::i32, ++/*234555*/ OPC_CheckChild2Integer, 15, ++/*234557*/ OPC_CheckChild2Type, MVT::i32, ++/*234559*/ OPC_CheckChild3Integer, 15, ++/*234561*/ OPC_CheckChild3Type, MVT::i32, ++/*234563*/ OPC_CheckChild4Integer, 15, ++/*234565*/ OPC_CheckChild4Type, MVT::i32, ++/*234567*/ OPC_MoveChild5, ++/*234568*/ OPC_CheckInteger, 15, ++/*234570*/ OPC_CheckType, MVT::i32, ++/*234572*/ OPC_MoveParent, ++/*234573*/ OPC_MoveChild6, ++/*234574*/ OPC_CheckInteger, 15, ++/*234576*/ OPC_CheckType, MVT::i32, ++/*234578*/ OPC_MoveParent, ++/*234579*/ OPC_MoveChild7, ++/*234580*/ OPC_CheckInteger, 15, ++/*234582*/ OPC_CheckType, MVT::i32, ++/*234584*/ OPC_MoveParent, ++/*234585*/ OPC_MoveChild, 8, ++/*234587*/ OPC_CheckInteger, 15, ++/*234589*/ OPC_CheckType, MVT::i32, ++/*234591*/ OPC_MoveParent, ++/*234592*/ OPC_MoveChild, 9, ++/*234594*/ OPC_CheckInteger, 15, ++/*234596*/ OPC_CheckType, MVT::i32, ++/*234598*/ OPC_MoveParent, ++/*234599*/ OPC_MoveChild, 10, ++/*234601*/ OPC_CheckInteger, 15, ++/*234603*/ OPC_CheckType, MVT::i32, ++/*234605*/ OPC_MoveParent, ++/*234606*/ OPC_MoveChild, 11, ++/*234608*/ OPC_CheckInteger, 15, ++/*234610*/ OPC_CheckType, MVT::i32, ++/*234612*/ OPC_MoveParent, ++/*234613*/ OPC_MoveChild, 12, ++/*234615*/ OPC_CheckInteger, 15, ++/*234617*/ OPC_CheckType, MVT::i32, ++/*234619*/ OPC_MoveParent, ++/*234620*/ OPC_MoveChild, 13, ++/*234622*/ OPC_CheckInteger, 15, ++/*234624*/ OPC_CheckType, MVT::i32, ++/*234626*/ OPC_MoveParent, ++/*234627*/ OPC_MoveChild, 14, ++/*234629*/ OPC_CheckInteger, 15, ++/*234631*/ OPC_CheckType, MVT::i32, ++/*234633*/ OPC_MoveParent, ++/*234634*/ OPC_MoveChild, 15, ++/*234636*/ OPC_CheckInteger, 15, ++/*234638*/ OPC_CheckType, MVT::i32, ++/*234640*/ OPC_MoveParent, ++/*234641*/ OPC_CheckType, MVT::v16i16, ++/*234643*/ OPC_MoveParent, ++/*234644*/ OPC_MoveParent, ++/*234645*/ OPC_MoveParent, ++/*234646*/ OPC_MoveChild1, ++/*234647*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*234650*/ OPC_CheckChild0Integer, 1, ++/*234652*/ OPC_CheckChild0Type, MVT::i32, ++/*234654*/ OPC_CheckChild1Integer, 1, ++/*234656*/ OPC_CheckChild1Type, MVT::i32, ++/*234658*/ OPC_CheckChild2Integer, 1, ++/*234660*/ OPC_CheckChild2Type, MVT::i32, ++/*234662*/ OPC_CheckChild3Integer, 1, ++/*234664*/ OPC_CheckChild3Type, MVT::i32, ++/*234666*/ OPC_CheckChild4Integer, 1, ++/*234668*/ OPC_CheckChild4Type, MVT::i32, ++/*234670*/ OPC_MoveChild5, ++/*234671*/ OPC_CheckInteger, 1, ++/*234673*/ OPC_CheckType, MVT::i32, ++/*234675*/ OPC_MoveParent, ++/*234676*/ OPC_MoveChild6, ++/*234677*/ OPC_CheckInteger, 1, ++/*234679*/ OPC_CheckType, MVT::i32, ++/*234681*/ OPC_MoveParent, ++/*234682*/ OPC_MoveChild7, ++/*234683*/ OPC_CheckInteger, 1, ++/*234685*/ OPC_CheckType, MVT::i32, ++/*234687*/ OPC_MoveParent, ++/*234688*/ OPC_MoveChild, 8, ++/*234690*/ OPC_CheckInteger, 1, ++/*234692*/ OPC_CheckType, MVT::i32, ++/*234694*/ OPC_MoveParent, ++/*234695*/ OPC_MoveChild, 9, ++/*234697*/ OPC_CheckInteger, 1, ++/*234699*/ OPC_CheckType, MVT::i32, ++/*234701*/ OPC_MoveParent, ++/*234702*/ OPC_MoveChild, 10, ++/*234704*/ OPC_CheckInteger, 1, ++/*234706*/ OPC_CheckType, MVT::i32, ++/*234708*/ OPC_MoveParent, ++/*234709*/ OPC_MoveChild, 11, ++/*234711*/ OPC_CheckInteger, 1, ++/*234713*/ OPC_CheckType, MVT::i32, ++/*234715*/ OPC_MoveParent, ++/*234716*/ OPC_MoveChild, 12, ++/*234718*/ OPC_CheckInteger, 1, ++/*234720*/ OPC_CheckType, MVT::i32, ++/*234722*/ OPC_MoveParent, ++/*234723*/ OPC_MoveChild, 13, ++/*234725*/ OPC_CheckInteger, 1, ++/*234727*/ OPC_CheckType, MVT::i32, ++/*234729*/ OPC_MoveParent, ++/*234730*/ OPC_MoveChild, 14, ++/*234732*/ OPC_CheckInteger, 1, ++/*234734*/ OPC_CheckType, MVT::i32, ++/*234736*/ OPC_MoveParent, ++/*234737*/ OPC_MoveChild, 15, ++/*234739*/ OPC_CheckInteger, 1, ++/*234741*/ OPC_CheckType, MVT::i32, ++/*234743*/ OPC_MoveParent, ++/*234744*/ OPC_CheckType, MVT::v16i16, ++/*234746*/ OPC_MoveParent, ++/*234747*/ OPC_CheckType, MVT::v16i16, ++/*234749*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*234751*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$a), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a), LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*234759*/ /*Scope*/ 65|128,2/*321*/, /*->235082*/ ++/*234761*/ OPC_CheckChild0Same, 1, ++/*234763*/ OPC_MoveChild1, ++/*234764*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*234767*/ OPC_CheckChild0Integer, 1, ++/*234769*/ OPC_CheckChild0Type, MVT::i32, ++/*234771*/ OPC_CheckChild1Integer, 1, ++/*234773*/ OPC_CheckChild1Type, MVT::i32, ++/*234775*/ OPC_CheckChild2Integer, 1, ++/*234777*/ OPC_CheckChild2Type, MVT::i32, ++/*234779*/ OPC_CheckChild3Integer, 1, ++/*234781*/ OPC_CheckChild3Type, MVT::i32, ++/*234783*/ OPC_CheckChild4Integer, 1, ++/*234785*/ OPC_CheckChild4Type, MVT::i32, ++/*234787*/ OPC_MoveChild5, ++/*234788*/ OPC_CheckInteger, 1, ++/*234790*/ OPC_CheckType, MVT::i32, ++/*234792*/ OPC_MoveParent, ++/*234793*/ OPC_MoveChild6, ++/*234794*/ OPC_CheckInteger, 1, ++/*234796*/ OPC_CheckType, MVT::i32, ++/*234798*/ OPC_MoveParent, ++/*234799*/ OPC_MoveChild7, ++/*234800*/ OPC_CheckInteger, 1, ++/*234802*/ OPC_CheckType, MVT::i32, ++/*234804*/ OPC_MoveParent, ++/*234805*/ OPC_MoveChild, 8, ++/*234807*/ OPC_CheckInteger, 1, ++/*234809*/ OPC_CheckType, MVT::i32, ++/*234811*/ OPC_MoveParent, ++/*234812*/ OPC_MoveChild, 9, ++/*234814*/ OPC_CheckInteger, 1, ++/*234816*/ OPC_CheckType, MVT::i32, ++/*234818*/ OPC_MoveParent, ++/*234819*/ OPC_MoveChild, 10, ++/*234821*/ OPC_CheckInteger, 1, ++/*234823*/ OPC_CheckType, MVT::i32, ++/*234825*/ OPC_MoveParent, ++/*234826*/ OPC_MoveChild, 11, ++/*234828*/ OPC_CheckInteger, 1, ++/*234830*/ OPC_CheckType, MVT::i32, ++/*234832*/ OPC_MoveParent, ++/*234833*/ OPC_MoveChild, 12, ++/*234835*/ OPC_CheckInteger, 1, ++/*234837*/ OPC_CheckType, MVT::i32, ++/*234839*/ OPC_MoveParent, ++/*234840*/ OPC_MoveChild, 13, ++/*234842*/ OPC_CheckInteger, 1, ++/*234844*/ OPC_CheckType, MVT::i32, ++/*234846*/ OPC_MoveParent, ++/*234847*/ OPC_MoveChild, 14, ++/*234849*/ OPC_CheckInteger, 1, ++/*234851*/ OPC_CheckType, MVT::i32, ++/*234853*/ OPC_MoveParent, ++/*234854*/ OPC_MoveChild, 15, ++/*234856*/ OPC_CheckInteger, 1, ++/*234858*/ OPC_CheckType, MVT::i32, ++/*234860*/ OPC_MoveParent, ++/*234861*/ OPC_MoveParent, ++/*234862*/ OPC_MoveParent, ++/*234863*/ OPC_CheckChild1Same, 0, ++/*234865*/ OPC_MoveParent, ++/*234866*/ OPC_MoveChild1, ++/*234867*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*234870*/ OPC_CheckChild0Integer, 15, ++/*234872*/ OPC_CheckChild0Type, MVT::i32, ++/*234874*/ OPC_CheckChild1Integer, 15, ++/*234876*/ OPC_CheckChild1Type, MVT::i32, ++/*234878*/ OPC_CheckChild2Integer, 15, ++/*234880*/ OPC_CheckChild2Type, MVT::i32, ++/*234882*/ OPC_CheckChild3Integer, 15, ++/*234884*/ OPC_CheckChild3Type, MVT::i32, ++/*234886*/ OPC_CheckChild4Integer, 15, ++/*234888*/ OPC_CheckChild4Type, MVT::i32, ++/*234890*/ OPC_MoveChild5, ++/*234891*/ OPC_CheckInteger, 15, ++/*234893*/ OPC_CheckType, MVT::i32, ++/*234895*/ OPC_MoveParent, ++/*234896*/ OPC_MoveChild6, ++/*234897*/ OPC_CheckInteger, 15, ++/*234899*/ OPC_CheckType, MVT::i32, ++/*234901*/ OPC_MoveParent, ++/*234902*/ OPC_MoveChild7, ++/*234903*/ OPC_CheckInteger, 15, ++/*234905*/ OPC_CheckType, MVT::i32, ++/*234907*/ OPC_MoveParent, ++/*234908*/ OPC_MoveChild, 8, ++/*234910*/ OPC_CheckInteger, 15, ++/*234912*/ OPC_CheckType, MVT::i32, ++/*234914*/ OPC_MoveParent, ++/*234915*/ OPC_MoveChild, 9, ++/*234917*/ OPC_CheckInteger, 15, ++/*234919*/ OPC_CheckType, MVT::i32, ++/*234921*/ OPC_MoveParent, ++/*234922*/ OPC_MoveChild, 10, ++/*234924*/ OPC_CheckInteger, 15, ++/*234926*/ OPC_CheckType, MVT::i32, ++/*234928*/ OPC_MoveParent, ++/*234929*/ OPC_MoveChild, 11, ++/*234931*/ OPC_CheckInteger, 15, ++/*234933*/ OPC_CheckType, MVT::i32, ++/*234935*/ OPC_MoveParent, ++/*234936*/ OPC_MoveChild, 12, ++/*234938*/ OPC_CheckInteger, 15, ++/*234940*/ OPC_CheckType, MVT::i32, ++/*234942*/ OPC_MoveParent, ++/*234943*/ OPC_MoveChild, 13, ++/*234945*/ OPC_CheckInteger, 15, ++/*234947*/ OPC_CheckType, MVT::i32, ++/*234949*/ OPC_MoveParent, ++/*234950*/ OPC_MoveChild, 14, ++/*234952*/ OPC_CheckInteger, 15, ++/*234954*/ OPC_CheckType, MVT::i32, ++/*234956*/ OPC_MoveParent, ++/*234957*/ OPC_MoveChild, 15, ++/*234959*/ OPC_CheckInteger, 15, ++/*234961*/ OPC_CheckType, MVT::i32, ++/*234963*/ OPC_MoveParent, ++/*234964*/ OPC_CheckType, MVT::v16i16, ++/*234966*/ OPC_MoveParent, ++/*234967*/ OPC_MoveParent, ++/*234968*/ OPC_MoveParent, ++/*234969*/ OPC_MoveChild1, ++/*234970*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*234973*/ OPC_CheckChild0Integer, 1, ++/*234975*/ OPC_CheckChild0Type, MVT::i32, ++/*234977*/ OPC_CheckChild1Integer, 1, ++/*234979*/ OPC_CheckChild1Type, MVT::i32, ++/*234981*/ OPC_CheckChild2Integer, 1, ++/*234983*/ OPC_CheckChild2Type, MVT::i32, ++/*234985*/ OPC_CheckChild3Integer, 1, ++/*234987*/ OPC_CheckChild3Type, MVT::i32, ++/*234989*/ OPC_CheckChild4Integer, 1, ++/*234991*/ OPC_CheckChild4Type, MVT::i32, ++/*234993*/ OPC_MoveChild5, ++/*234994*/ OPC_CheckInteger, 1, ++/*234996*/ OPC_CheckType, MVT::i32, ++/*234998*/ OPC_MoveParent, ++/*234999*/ OPC_MoveChild6, ++/*235000*/ OPC_CheckInteger, 1, ++/*235002*/ OPC_CheckType, MVT::i32, ++/*235004*/ OPC_MoveParent, ++/*235005*/ OPC_MoveChild7, ++/*235006*/ OPC_CheckInteger, 1, ++/*235008*/ OPC_CheckType, MVT::i32, ++/*235010*/ OPC_MoveParent, ++/*235011*/ OPC_MoveChild, 8, ++/*235013*/ OPC_CheckInteger, 1, ++/*235015*/ OPC_CheckType, MVT::i32, ++/*235017*/ OPC_MoveParent, ++/*235018*/ OPC_MoveChild, 9, ++/*235020*/ OPC_CheckInteger, 1, ++/*235022*/ OPC_CheckType, MVT::i32, ++/*235024*/ OPC_MoveParent, ++/*235025*/ OPC_MoveChild, 10, ++/*235027*/ OPC_CheckInteger, 1, ++/*235029*/ OPC_CheckType, MVT::i32, ++/*235031*/ OPC_MoveParent, ++/*235032*/ OPC_MoveChild, 11, ++/*235034*/ OPC_CheckInteger, 1, ++/*235036*/ OPC_CheckType, MVT::i32, ++/*235038*/ OPC_MoveParent, ++/*235039*/ OPC_MoveChild, 12, ++/*235041*/ OPC_CheckInteger, 1, ++/*235043*/ OPC_CheckType, MVT::i32, ++/*235045*/ OPC_MoveParent, ++/*235046*/ OPC_MoveChild, 13, ++/*235048*/ OPC_CheckInteger, 1, ++/*235050*/ OPC_CheckType, MVT::i32, ++/*235052*/ OPC_MoveParent, ++/*235053*/ OPC_MoveChild, 14, ++/*235055*/ OPC_CheckInteger, 1, ++/*235057*/ OPC_CheckType, MVT::i32, ++/*235059*/ OPC_MoveParent, ++/*235060*/ OPC_MoveChild, 15, ++/*235062*/ OPC_CheckInteger, 1, ++/*235064*/ OPC_CheckType, MVT::i32, ++/*235066*/ OPC_MoveParent, ++/*235067*/ OPC_CheckType, MVT::v16i16, ++/*235069*/ OPC_MoveParent, ++/*235070*/ OPC_CheckType, MVT::v16i16, ++/*235072*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*235074*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$a), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*235082*/ /*Scope*/ 65|128,2/*321*/, /*->235405*/ ++/*235084*/ OPC_MoveChild0, ++/*235085*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*235088*/ OPC_CheckChild0Integer, 1, ++/*235090*/ OPC_CheckChild0Type, MVT::i32, ++/*235092*/ OPC_CheckChild1Integer, 1, ++/*235094*/ OPC_CheckChild1Type, MVT::i32, ++/*235096*/ OPC_CheckChild2Integer, 1, ++/*235098*/ OPC_CheckChild2Type, MVT::i32, ++/*235100*/ OPC_CheckChild3Integer, 1, ++/*235102*/ OPC_CheckChild3Type, MVT::i32, ++/*235104*/ OPC_CheckChild4Integer, 1, ++/*235106*/ OPC_CheckChild4Type, MVT::i32, ++/*235108*/ OPC_MoveChild5, ++/*235109*/ OPC_CheckInteger, 1, ++/*235111*/ OPC_CheckType, MVT::i32, ++/*235113*/ OPC_MoveParent, ++/*235114*/ OPC_MoveChild6, ++/*235115*/ OPC_CheckInteger, 1, ++/*235117*/ OPC_CheckType, MVT::i32, ++/*235119*/ OPC_MoveParent, ++/*235120*/ OPC_MoveChild7, ++/*235121*/ OPC_CheckInteger, 1, ++/*235123*/ OPC_CheckType, MVT::i32, ++/*235125*/ OPC_MoveParent, ++/*235126*/ OPC_MoveChild, 8, ++/*235128*/ OPC_CheckInteger, 1, ++/*235130*/ OPC_CheckType, MVT::i32, ++/*235132*/ OPC_MoveParent, ++/*235133*/ OPC_MoveChild, 9, ++/*235135*/ OPC_CheckInteger, 1, ++/*235137*/ OPC_CheckType, MVT::i32, ++/*235139*/ OPC_MoveParent, ++/*235140*/ OPC_MoveChild, 10, ++/*235142*/ OPC_CheckInteger, 1, ++/*235144*/ OPC_CheckType, MVT::i32, ++/*235146*/ OPC_MoveParent, ++/*235147*/ OPC_MoveChild, 11, ++/*235149*/ OPC_CheckInteger, 1, ++/*235151*/ OPC_CheckType, MVT::i32, ++/*235153*/ OPC_MoveParent, ++/*235154*/ OPC_MoveChild, 12, ++/*235156*/ OPC_CheckInteger, 1, ++/*235158*/ OPC_CheckType, MVT::i32, ++/*235160*/ OPC_MoveParent, ++/*235161*/ OPC_MoveChild, 13, ++/*235163*/ OPC_CheckInteger, 1, ++/*235165*/ OPC_CheckType, MVT::i32, ++/*235167*/ OPC_MoveParent, ++/*235168*/ OPC_MoveChild, 14, ++/*235170*/ OPC_CheckInteger, 1, ++/*235172*/ OPC_CheckType, MVT::i32, ++/*235174*/ OPC_MoveParent, ++/*235175*/ OPC_MoveChild, 15, ++/*235177*/ OPC_CheckInteger, 1, ++/*235179*/ OPC_CheckType, MVT::i32, ++/*235181*/ OPC_MoveParent, ++/*235182*/ OPC_MoveParent, ++/*235183*/ OPC_CheckChild1Same, 0, ++/*235185*/ OPC_MoveParent, ++/*235186*/ OPC_CheckChild1Same, 1, ++/*235188*/ OPC_MoveParent, ++/*235189*/ OPC_MoveChild1, ++/*235190*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*235193*/ OPC_CheckChild0Integer, 15, ++/*235195*/ OPC_CheckChild0Type, MVT::i32, ++/*235197*/ OPC_CheckChild1Integer, 15, ++/*235199*/ OPC_CheckChild1Type, MVT::i32, ++/*235201*/ OPC_CheckChild2Integer, 15, ++/*235203*/ OPC_CheckChild2Type, MVT::i32, ++/*235205*/ OPC_CheckChild3Integer, 15, ++/*235207*/ OPC_CheckChild3Type, MVT::i32, ++/*235209*/ OPC_CheckChild4Integer, 15, ++/*235211*/ OPC_CheckChild4Type, MVT::i32, ++/*235213*/ OPC_MoveChild5, ++/*235214*/ OPC_CheckInteger, 15, ++/*235216*/ OPC_CheckType, MVT::i32, ++/*235218*/ OPC_MoveParent, ++/*235219*/ OPC_MoveChild6, ++/*235220*/ OPC_CheckInteger, 15, ++/*235222*/ OPC_CheckType, MVT::i32, ++/*235224*/ OPC_MoveParent, ++/*235225*/ OPC_MoveChild7, ++/*235226*/ OPC_CheckInteger, 15, ++/*235228*/ OPC_CheckType, MVT::i32, ++/*235230*/ OPC_MoveParent, ++/*235231*/ OPC_MoveChild, 8, ++/*235233*/ OPC_CheckInteger, 15, ++/*235235*/ OPC_CheckType, MVT::i32, ++/*235237*/ OPC_MoveParent, ++/*235238*/ OPC_MoveChild, 9, ++/*235240*/ OPC_CheckInteger, 15, ++/*235242*/ OPC_CheckType, MVT::i32, ++/*235244*/ OPC_MoveParent, ++/*235245*/ OPC_MoveChild, 10, ++/*235247*/ OPC_CheckInteger, 15, ++/*235249*/ OPC_CheckType, MVT::i32, ++/*235251*/ OPC_MoveParent, ++/*235252*/ OPC_MoveChild, 11, ++/*235254*/ OPC_CheckInteger, 15, ++/*235256*/ OPC_CheckType, MVT::i32, ++/*235258*/ OPC_MoveParent, ++/*235259*/ OPC_MoveChild, 12, ++/*235261*/ OPC_CheckInteger, 15, ++/*235263*/ OPC_CheckType, MVT::i32, ++/*235265*/ OPC_MoveParent, ++/*235266*/ OPC_MoveChild, 13, ++/*235268*/ OPC_CheckInteger, 15, ++/*235270*/ OPC_CheckType, MVT::i32, ++/*235272*/ OPC_MoveParent, ++/*235273*/ OPC_MoveChild, 14, ++/*235275*/ OPC_CheckInteger, 15, ++/*235277*/ OPC_CheckType, MVT::i32, ++/*235279*/ OPC_MoveParent, ++/*235280*/ OPC_MoveChild, 15, ++/*235282*/ OPC_CheckInteger, 15, ++/*235284*/ OPC_CheckType, MVT::i32, ++/*235286*/ OPC_MoveParent, ++/*235287*/ OPC_CheckType, MVT::v16i16, ++/*235289*/ OPC_MoveParent, ++/*235290*/ OPC_MoveParent, ++/*235291*/ OPC_MoveParent, ++/*235292*/ OPC_MoveChild1, ++/*235293*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*235296*/ OPC_CheckChild0Integer, 1, ++/*235298*/ OPC_CheckChild0Type, MVT::i32, ++/*235300*/ OPC_CheckChild1Integer, 1, ++/*235302*/ OPC_CheckChild1Type, MVT::i32, ++/*235304*/ OPC_CheckChild2Integer, 1, ++/*235306*/ OPC_CheckChild2Type, MVT::i32, ++/*235308*/ OPC_CheckChild3Integer, 1, ++/*235310*/ OPC_CheckChild3Type, MVT::i32, ++/*235312*/ OPC_CheckChild4Integer, 1, ++/*235314*/ OPC_CheckChild4Type, MVT::i32, ++/*235316*/ OPC_MoveChild5, ++/*235317*/ OPC_CheckInteger, 1, ++/*235319*/ OPC_CheckType, MVT::i32, ++/*235321*/ OPC_MoveParent, ++/*235322*/ OPC_MoveChild6, ++/*235323*/ OPC_CheckInteger, 1, ++/*235325*/ OPC_CheckType, MVT::i32, ++/*235327*/ OPC_MoveParent, ++/*235328*/ OPC_MoveChild7, ++/*235329*/ OPC_CheckInteger, 1, ++/*235331*/ OPC_CheckType, MVT::i32, ++/*235333*/ OPC_MoveParent, ++/*235334*/ OPC_MoveChild, 8, ++/*235336*/ OPC_CheckInteger, 1, ++/*235338*/ OPC_CheckType, MVT::i32, ++/*235340*/ OPC_MoveParent, ++/*235341*/ OPC_MoveChild, 9, ++/*235343*/ OPC_CheckInteger, 1, ++/*235345*/ OPC_CheckType, MVT::i32, ++/*235347*/ OPC_MoveParent, ++/*235348*/ OPC_MoveChild, 10, ++/*235350*/ OPC_CheckInteger, 1, ++/*235352*/ OPC_CheckType, MVT::i32, ++/*235354*/ OPC_MoveParent, ++/*235355*/ OPC_MoveChild, 11, ++/*235357*/ OPC_CheckInteger, 1, ++/*235359*/ OPC_CheckType, MVT::i32, ++/*235361*/ OPC_MoveParent, ++/*235362*/ OPC_MoveChild, 12, ++/*235364*/ OPC_CheckInteger, 1, ++/*235366*/ OPC_CheckType, MVT::i32, ++/*235368*/ OPC_MoveParent, ++/*235369*/ OPC_MoveChild, 13, ++/*235371*/ OPC_CheckInteger, 1, ++/*235373*/ OPC_CheckType, MVT::i32, ++/*235375*/ OPC_MoveParent, ++/*235376*/ OPC_MoveChild, 14, ++/*235378*/ OPC_CheckInteger, 1, ++/*235380*/ OPC_CheckType, MVT::i32, ++/*235382*/ OPC_MoveParent, ++/*235383*/ OPC_MoveChild, 15, ++/*235385*/ OPC_CheckInteger, 1, ++/*235387*/ OPC_CheckType, MVT::i32, ++/*235389*/ OPC_MoveParent, ++/*235390*/ OPC_CheckType, MVT::v16i16, ++/*235392*/ OPC_MoveParent, ++/*235393*/ OPC_CheckType, MVT::v16i16, ++/*235395*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*235397*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$a), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b), LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*235405*/ /*Scope*/ 65|128,2/*321*/, /*->235728*/ ++/*235407*/ OPC_CheckChild0Same, 0, ++/*235409*/ OPC_MoveChild1, ++/*235410*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*235413*/ OPC_CheckChild0Integer, 1, ++/*235415*/ OPC_CheckChild0Type, MVT::i32, ++/*235417*/ OPC_CheckChild1Integer, 1, ++/*235419*/ OPC_CheckChild1Type, MVT::i32, ++/*235421*/ OPC_CheckChild2Integer, 1, ++/*235423*/ OPC_CheckChild2Type, MVT::i32, ++/*235425*/ OPC_CheckChild3Integer, 1, ++/*235427*/ OPC_CheckChild3Type, MVT::i32, ++/*235429*/ OPC_CheckChild4Integer, 1, ++/*235431*/ OPC_CheckChild4Type, MVT::i32, ++/*235433*/ OPC_MoveChild5, ++/*235434*/ OPC_CheckInteger, 1, ++/*235436*/ OPC_CheckType, MVT::i32, ++/*235438*/ OPC_MoveParent, ++/*235439*/ OPC_MoveChild6, ++/*235440*/ OPC_CheckInteger, 1, ++/*235442*/ OPC_CheckType, MVT::i32, ++/*235444*/ OPC_MoveParent, ++/*235445*/ OPC_MoveChild7, ++/*235446*/ OPC_CheckInteger, 1, ++/*235448*/ OPC_CheckType, MVT::i32, ++/*235450*/ OPC_MoveParent, ++/*235451*/ OPC_MoveChild, 8, ++/*235453*/ OPC_CheckInteger, 1, ++/*235455*/ OPC_CheckType, MVT::i32, ++/*235457*/ OPC_MoveParent, ++/*235458*/ OPC_MoveChild, 9, ++/*235460*/ OPC_CheckInteger, 1, ++/*235462*/ OPC_CheckType, MVT::i32, ++/*235464*/ OPC_MoveParent, ++/*235465*/ OPC_MoveChild, 10, ++/*235467*/ OPC_CheckInteger, 1, ++/*235469*/ OPC_CheckType, MVT::i32, ++/*235471*/ OPC_MoveParent, ++/*235472*/ OPC_MoveChild, 11, ++/*235474*/ OPC_CheckInteger, 1, ++/*235476*/ OPC_CheckType, MVT::i32, ++/*235478*/ OPC_MoveParent, ++/*235479*/ OPC_MoveChild, 12, ++/*235481*/ OPC_CheckInteger, 1, ++/*235483*/ OPC_CheckType, MVT::i32, ++/*235485*/ OPC_MoveParent, ++/*235486*/ OPC_MoveChild, 13, ++/*235488*/ OPC_CheckInteger, 1, ++/*235490*/ OPC_CheckType, MVT::i32, ++/*235492*/ OPC_MoveParent, ++/*235493*/ OPC_MoveChild, 14, ++/*235495*/ OPC_CheckInteger, 1, ++/*235497*/ OPC_CheckType, MVT::i32, ++/*235499*/ OPC_MoveParent, ++/*235500*/ OPC_MoveChild, 15, ++/*235502*/ OPC_CheckInteger, 1, ++/*235504*/ OPC_CheckType, MVT::i32, ++/*235506*/ OPC_MoveParent, ++/*235507*/ OPC_MoveParent, ++/*235508*/ OPC_MoveParent, ++/*235509*/ OPC_CheckChild1Same, 1, ++/*235511*/ OPC_MoveParent, ++/*235512*/ OPC_MoveChild1, ++/*235513*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*235516*/ OPC_CheckChild0Integer, 15, ++/*235518*/ OPC_CheckChild0Type, MVT::i32, ++/*235520*/ OPC_CheckChild1Integer, 15, ++/*235522*/ OPC_CheckChild1Type, MVT::i32, ++/*235524*/ OPC_CheckChild2Integer, 15, ++/*235526*/ OPC_CheckChild2Type, MVT::i32, ++/*235528*/ OPC_CheckChild3Integer, 15, ++/*235530*/ OPC_CheckChild3Type, MVT::i32, ++/*235532*/ OPC_CheckChild4Integer, 15, ++/*235534*/ OPC_CheckChild4Type, MVT::i32, ++/*235536*/ OPC_MoveChild5, ++/*235537*/ OPC_CheckInteger, 15, ++/*235539*/ OPC_CheckType, MVT::i32, ++/*235541*/ OPC_MoveParent, ++/*235542*/ OPC_MoveChild6, ++/*235543*/ OPC_CheckInteger, 15, ++/*235545*/ OPC_CheckType, MVT::i32, ++/*235547*/ OPC_MoveParent, ++/*235548*/ OPC_MoveChild7, ++/*235549*/ OPC_CheckInteger, 15, ++/*235551*/ OPC_CheckType, MVT::i32, ++/*235553*/ OPC_MoveParent, ++/*235554*/ OPC_MoveChild, 8, ++/*235556*/ OPC_CheckInteger, 15, ++/*235558*/ OPC_CheckType, MVT::i32, ++/*235560*/ OPC_MoveParent, ++/*235561*/ OPC_MoveChild, 9, ++/*235563*/ OPC_CheckInteger, 15, ++/*235565*/ OPC_CheckType, MVT::i32, ++/*235567*/ OPC_MoveParent, ++/*235568*/ OPC_MoveChild, 10, ++/*235570*/ OPC_CheckInteger, 15, ++/*235572*/ OPC_CheckType, MVT::i32, ++/*235574*/ OPC_MoveParent, ++/*235575*/ OPC_MoveChild, 11, ++/*235577*/ OPC_CheckInteger, 15, ++/*235579*/ OPC_CheckType, MVT::i32, ++/*235581*/ OPC_MoveParent, ++/*235582*/ OPC_MoveChild, 12, ++/*235584*/ OPC_CheckInteger, 15, ++/*235586*/ OPC_CheckType, MVT::i32, ++/*235588*/ OPC_MoveParent, ++/*235589*/ OPC_MoveChild, 13, ++/*235591*/ OPC_CheckInteger, 15, ++/*235593*/ OPC_CheckType, MVT::i32, ++/*235595*/ OPC_MoveParent, ++/*235596*/ OPC_MoveChild, 14, ++/*235598*/ OPC_CheckInteger, 15, ++/*235600*/ OPC_CheckType, MVT::i32, ++/*235602*/ OPC_MoveParent, ++/*235603*/ OPC_MoveChild, 15, ++/*235605*/ OPC_CheckInteger, 15, ++/*235607*/ OPC_CheckType, MVT::i32, ++/*235609*/ OPC_MoveParent, ++/*235610*/ OPC_CheckType, MVT::v16i16, ++/*235612*/ OPC_MoveParent, ++/*235613*/ OPC_MoveParent, ++/*235614*/ OPC_MoveParent, ++/*235615*/ OPC_MoveChild1, ++/*235616*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*235619*/ OPC_CheckChild0Integer, 1, ++/*235621*/ OPC_CheckChild0Type, MVT::i32, ++/*235623*/ OPC_CheckChild1Integer, 1, ++/*235625*/ OPC_CheckChild1Type, MVT::i32, ++/*235627*/ OPC_CheckChild2Integer, 1, ++/*235629*/ OPC_CheckChild2Type, MVT::i32, ++/*235631*/ OPC_CheckChild3Integer, 1, ++/*235633*/ OPC_CheckChild3Type, MVT::i32, ++/*235635*/ OPC_CheckChild4Integer, 1, ++/*235637*/ OPC_CheckChild4Type, MVT::i32, ++/*235639*/ OPC_MoveChild5, ++/*235640*/ OPC_CheckInteger, 1, ++/*235642*/ OPC_CheckType, MVT::i32, ++/*235644*/ OPC_MoveParent, ++/*235645*/ OPC_MoveChild6, ++/*235646*/ OPC_CheckInteger, 1, ++/*235648*/ OPC_CheckType, MVT::i32, ++/*235650*/ OPC_MoveParent, ++/*235651*/ OPC_MoveChild7, ++/*235652*/ OPC_CheckInteger, 1, ++/*235654*/ OPC_CheckType, MVT::i32, ++/*235656*/ OPC_MoveParent, ++/*235657*/ OPC_MoveChild, 8, ++/*235659*/ OPC_CheckInteger, 1, ++/*235661*/ OPC_CheckType, MVT::i32, ++/*235663*/ OPC_MoveParent, ++/*235664*/ OPC_MoveChild, 9, ++/*235666*/ OPC_CheckInteger, 1, ++/*235668*/ OPC_CheckType, MVT::i32, ++/*235670*/ OPC_MoveParent, ++/*235671*/ OPC_MoveChild, 10, ++/*235673*/ OPC_CheckInteger, 1, ++/*235675*/ OPC_CheckType, MVT::i32, ++/*235677*/ OPC_MoveParent, ++/*235678*/ OPC_MoveChild, 11, ++/*235680*/ OPC_CheckInteger, 1, ++/*235682*/ OPC_CheckType, MVT::i32, ++/*235684*/ OPC_MoveParent, ++/*235685*/ OPC_MoveChild, 12, ++/*235687*/ OPC_CheckInteger, 1, ++/*235689*/ OPC_CheckType, MVT::i32, ++/*235691*/ OPC_MoveParent, ++/*235692*/ OPC_MoveChild, 13, ++/*235694*/ OPC_CheckInteger, 1, ++/*235696*/ OPC_CheckType, MVT::i32, ++/*235698*/ OPC_MoveParent, ++/*235699*/ OPC_MoveChild, 14, ++/*235701*/ OPC_CheckInteger, 1, ++/*235703*/ OPC_CheckType, MVT::i32, ++/*235705*/ OPC_MoveParent, ++/*235706*/ OPC_MoveChild, 15, ++/*235708*/ OPC_CheckInteger, 1, ++/*235710*/ OPC_CheckType, MVT::i32, ++/*235712*/ OPC_MoveParent, ++/*235713*/ OPC_CheckType, MVT::v16i16, ++/*235715*/ OPC_MoveParent, ++/*235716*/ OPC_CheckType, MVT::v16i16, ++/*235718*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*235720*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$a), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*235728*/ /*Scope*/ 65|128,2/*321*/, /*->236051*/ ++/*235730*/ OPC_CheckChild0Same, 1, ++/*235732*/ OPC_CheckChild1Same, 0, ++/*235734*/ OPC_MoveParent, ++/*235735*/ OPC_MoveChild1, ++/*235736*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*235739*/ OPC_CheckChild0Integer, 1, ++/*235741*/ OPC_CheckChild0Type, MVT::i32, ++/*235743*/ OPC_CheckChild1Integer, 1, ++/*235745*/ OPC_CheckChild1Type, MVT::i32, ++/*235747*/ OPC_CheckChild2Integer, 1, ++/*235749*/ OPC_CheckChild2Type, MVT::i32, ++/*235751*/ OPC_CheckChild3Integer, 1, ++/*235753*/ OPC_CheckChild3Type, MVT::i32, ++/*235755*/ OPC_CheckChild4Integer, 1, ++/*235757*/ OPC_CheckChild4Type, MVT::i32, ++/*235759*/ OPC_MoveChild5, ++/*235760*/ OPC_CheckInteger, 1, ++/*235762*/ OPC_CheckType, MVT::i32, ++/*235764*/ OPC_MoveParent, ++/*235765*/ OPC_MoveChild6, ++/*235766*/ OPC_CheckInteger, 1, ++/*235768*/ OPC_CheckType, MVT::i32, ++/*235770*/ OPC_MoveParent, ++/*235771*/ OPC_MoveChild7, ++/*235772*/ OPC_CheckInteger, 1, ++/*235774*/ OPC_CheckType, MVT::i32, ++/*235776*/ OPC_MoveParent, ++/*235777*/ OPC_MoveChild, 8, ++/*235779*/ OPC_CheckInteger, 1, ++/*235781*/ OPC_CheckType, MVT::i32, ++/*235783*/ OPC_MoveParent, ++/*235784*/ OPC_MoveChild, 9, ++/*235786*/ OPC_CheckInteger, 1, ++/*235788*/ OPC_CheckType, MVT::i32, ++/*235790*/ OPC_MoveParent, ++/*235791*/ OPC_MoveChild, 10, ++/*235793*/ OPC_CheckInteger, 1, ++/*235795*/ OPC_CheckType, MVT::i32, ++/*235797*/ OPC_MoveParent, ++/*235798*/ OPC_MoveChild, 11, ++/*235800*/ OPC_CheckInteger, 1, ++/*235802*/ OPC_CheckType, MVT::i32, ++/*235804*/ OPC_MoveParent, ++/*235805*/ OPC_MoveChild, 12, ++/*235807*/ OPC_CheckInteger, 1, ++/*235809*/ OPC_CheckType, MVT::i32, ++/*235811*/ OPC_MoveParent, ++/*235812*/ OPC_MoveChild, 13, ++/*235814*/ OPC_CheckInteger, 1, ++/*235816*/ OPC_CheckType, MVT::i32, ++/*235818*/ OPC_MoveParent, ++/*235819*/ OPC_MoveChild, 14, ++/*235821*/ OPC_CheckInteger, 1, ++/*235823*/ OPC_CheckType, MVT::i32, ++/*235825*/ OPC_MoveParent, ++/*235826*/ OPC_MoveChild, 15, ++/*235828*/ OPC_CheckInteger, 1, ++/*235830*/ OPC_CheckType, MVT::i32, ++/*235832*/ OPC_MoveParent, ++/*235833*/ OPC_MoveParent, ++/*235834*/ OPC_MoveParent, ++/*235835*/ OPC_MoveChild1, ++/*235836*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*235839*/ OPC_CheckChild0Integer, 15, ++/*235841*/ OPC_CheckChild0Type, MVT::i32, ++/*235843*/ OPC_CheckChild1Integer, 15, ++/*235845*/ OPC_CheckChild1Type, MVT::i32, ++/*235847*/ OPC_CheckChild2Integer, 15, ++/*235849*/ OPC_CheckChild2Type, MVT::i32, ++/*235851*/ OPC_CheckChild3Integer, 15, ++/*235853*/ OPC_CheckChild3Type, MVT::i32, ++/*235855*/ OPC_CheckChild4Integer, 15, ++/*235857*/ OPC_CheckChild4Type, MVT::i32, ++/*235859*/ OPC_MoveChild5, ++/*235860*/ OPC_CheckInteger, 15, ++/*235862*/ OPC_CheckType, MVT::i32, ++/*235864*/ OPC_MoveParent, ++/*235865*/ OPC_MoveChild6, ++/*235866*/ OPC_CheckInteger, 15, ++/*235868*/ OPC_CheckType, MVT::i32, ++/*235870*/ OPC_MoveParent, ++/*235871*/ OPC_MoveChild7, ++/*235872*/ OPC_CheckInteger, 15, ++/*235874*/ OPC_CheckType, MVT::i32, ++/*235876*/ OPC_MoveParent, ++/*235877*/ OPC_MoveChild, 8, ++/*235879*/ OPC_CheckInteger, 15, ++/*235881*/ OPC_CheckType, MVT::i32, ++/*235883*/ OPC_MoveParent, ++/*235884*/ OPC_MoveChild, 9, ++/*235886*/ OPC_CheckInteger, 15, ++/*235888*/ OPC_CheckType, MVT::i32, ++/*235890*/ OPC_MoveParent, ++/*235891*/ OPC_MoveChild, 10, ++/*235893*/ OPC_CheckInteger, 15, ++/*235895*/ OPC_CheckType, MVT::i32, ++/*235897*/ OPC_MoveParent, ++/*235898*/ OPC_MoveChild, 11, ++/*235900*/ OPC_CheckInteger, 15, ++/*235902*/ OPC_CheckType, MVT::i32, ++/*235904*/ OPC_MoveParent, ++/*235905*/ OPC_MoveChild, 12, ++/*235907*/ OPC_CheckInteger, 15, ++/*235909*/ OPC_CheckType, MVT::i32, ++/*235911*/ OPC_MoveParent, ++/*235912*/ OPC_MoveChild, 13, ++/*235914*/ OPC_CheckInteger, 15, ++/*235916*/ OPC_CheckType, MVT::i32, ++/*235918*/ OPC_MoveParent, ++/*235919*/ OPC_MoveChild, 14, ++/*235921*/ OPC_CheckInteger, 15, ++/*235923*/ OPC_CheckType, MVT::i32, ++/*235925*/ OPC_MoveParent, ++/*235926*/ OPC_MoveChild, 15, ++/*235928*/ OPC_CheckInteger, 15, ++/*235930*/ OPC_CheckType, MVT::i32, ++/*235932*/ OPC_MoveParent, ++/*235933*/ OPC_CheckType, MVT::v16i16, ++/*235935*/ OPC_MoveParent, ++/*235936*/ OPC_MoveParent, ++/*235937*/ OPC_MoveParent, ++/*235938*/ OPC_MoveChild1, ++/*235939*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*235942*/ OPC_CheckChild0Integer, 1, ++/*235944*/ OPC_CheckChild0Type, MVT::i32, ++/*235946*/ OPC_CheckChild1Integer, 1, ++/*235948*/ OPC_CheckChild1Type, MVT::i32, ++/*235950*/ OPC_CheckChild2Integer, 1, ++/*235952*/ OPC_CheckChild2Type, MVT::i32, ++/*235954*/ OPC_CheckChild3Integer, 1, ++/*235956*/ OPC_CheckChild3Type, MVT::i32, ++/*235958*/ OPC_CheckChild4Integer, 1, ++/*235960*/ OPC_CheckChild4Type, MVT::i32, ++/*235962*/ OPC_MoveChild5, ++/*235963*/ OPC_CheckInteger, 1, ++/*235965*/ OPC_CheckType, MVT::i32, ++/*235967*/ OPC_MoveParent, ++/*235968*/ OPC_MoveChild6, ++/*235969*/ OPC_CheckInteger, 1, ++/*235971*/ OPC_CheckType, MVT::i32, ++/*235973*/ OPC_MoveParent, ++/*235974*/ OPC_MoveChild7, ++/*235975*/ OPC_CheckInteger, 1, ++/*235977*/ OPC_CheckType, MVT::i32, ++/*235979*/ OPC_MoveParent, ++/*235980*/ OPC_MoveChild, 8, ++/*235982*/ OPC_CheckInteger, 1, ++/*235984*/ OPC_CheckType, MVT::i32, ++/*235986*/ OPC_MoveParent, ++/*235987*/ OPC_MoveChild, 9, ++/*235989*/ OPC_CheckInteger, 1, ++/*235991*/ OPC_CheckType, MVT::i32, ++/*235993*/ OPC_MoveParent, ++/*235994*/ OPC_MoveChild, 10, ++/*235996*/ OPC_CheckInteger, 1, ++/*235998*/ OPC_CheckType, MVT::i32, ++/*236000*/ OPC_MoveParent, ++/*236001*/ OPC_MoveChild, 11, ++/*236003*/ OPC_CheckInteger, 1, ++/*236005*/ OPC_CheckType, MVT::i32, ++/*236007*/ OPC_MoveParent, ++/*236008*/ OPC_MoveChild, 12, ++/*236010*/ OPC_CheckInteger, 1, ++/*236012*/ OPC_CheckType, MVT::i32, ++/*236014*/ OPC_MoveParent, ++/*236015*/ OPC_MoveChild, 13, ++/*236017*/ OPC_CheckInteger, 1, ++/*236019*/ OPC_CheckType, MVT::i32, ++/*236021*/ OPC_MoveParent, ++/*236022*/ OPC_MoveChild, 14, ++/*236024*/ OPC_CheckInteger, 1, ++/*236026*/ OPC_CheckType, MVT::i32, ++/*236028*/ OPC_MoveParent, ++/*236029*/ OPC_MoveChild, 15, ++/*236031*/ OPC_CheckInteger, 1, ++/*236033*/ OPC_CheckType, MVT::i32, ++/*236035*/ OPC_MoveParent, ++/*236036*/ OPC_CheckType, MVT::v16i16, ++/*236038*/ OPC_MoveParent, ++/*236039*/ OPC_CheckType, MVT::v16i16, ++/*236041*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*236043*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$a), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*236051*/ /*Scope*/ 65|128,2/*321*/, /*->236374*/ ++/*236053*/ OPC_CheckChild0Same, 0, ++/*236055*/ OPC_CheckChild1Same, 1, ++/*236057*/ OPC_MoveParent, ++/*236058*/ OPC_MoveChild1, ++/*236059*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*236062*/ OPC_CheckChild0Integer, 1, ++/*236064*/ OPC_CheckChild0Type, MVT::i32, ++/*236066*/ OPC_CheckChild1Integer, 1, ++/*236068*/ OPC_CheckChild1Type, MVT::i32, ++/*236070*/ OPC_CheckChild2Integer, 1, ++/*236072*/ OPC_CheckChild2Type, MVT::i32, ++/*236074*/ OPC_CheckChild3Integer, 1, ++/*236076*/ OPC_CheckChild3Type, MVT::i32, ++/*236078*/ OPC_CheckChild4Integer, 1, ++/*236080*/ OPC_CheckChild4Type, MVT::i32, ++/*236082*/ OPC_MoveChild5, ++/*236083*/ OPC_CheckInteger, 1, ++/*236085*/ OPC_CheckType, MVT::i32, ++/*236087*/ OPC_MoveParent, ++/*236088*/ OPC_MoveChild6, ++/*236089*/ OPC_CheckInteger, 1, ++/*236091*/ OPC_CheckType, MVT::i32, ++/*236093*/ OPC_MoveParent, ++/*236094*/ OPC_MoveChild7, ++/*236095*/ OPC_CheckInteger, 1, ++/*236097*/ OPC_CheckType, MVT::i32, ++/*236099*/ OPC_MoveParent, ++/*236100*/ OPC_MoveChild, 8, ++/*236102*/ OPC_CheckInteger, 1, ++/*236104*/ OPC_CheckType, MVT::i32, ++/*236106*/ OPC_MoveParent, ++/*236107*/ OPC_MoveChild, 9, ++/*236109*/ OPC_CheckInteger, 1, ++/*236111*/ OPC_CheckType, MVT::i32, ++/*236113*/ OPC_MoveParent, ++/*236114*/ OPC_MoveChild, 10, ++/*236116*/ OPC_CheckInteger, 1, ++/*236118*/ OPC_CheckType, MVT::i32, ++/*236120*/ OPC_MoveParent, ++/*236121*/ OPC_MoveChild, 11, ++/*236123*/ OPC_CheckInteger, 1, ++/*236125*/ OPC_CheckType, MVT::i32, ++/*236127*/ OPC_MoveParent, ++/*236128*/ OPC_MoveChild, 12, ++/*236130*/ OPC_CheckInteger, 1, ++/*236132*/ OPC_CheckType, MVT::i32, ++/*236134*/ OPC_MoveParent, ++/*236135*/ OPC_MoveChild, 13, ++/*236137*/ OPC_CheckInteger, 1, ++/*236139*/ OPC_CheckType, MVT::i32, ++/*236141*/ OPC_MoveParent, ++/*236142*/ OPC_MoveChild, 14, ++/*236144*/ OPC_CheckInteger, 1, ++/*236146*/ OPC_CheckType, MVT::i32, ++/*236148*/ OPC_MoveParent, ++/*236149*/ OPC_MoveChild, 15, ++/*236151*/ OPC_CheckInteger, 1, ++/*236153*/ OPC_CheckType, MVT::i32, ++/*236155*/ OPC_MoveParent, ++/*236156*/ OPC_MoveParent, ++/*236157*/ OPC_MoveParent, ++/*236158*/ OPC_MoveChild1, ++/*236159*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*236162*/ OPC_CheckChild0Integer, 15, ++/*236164*/ OPC_CheckChild0Type, MVT::i32, ++/*236166*/ OPC_CheckChild1Integer, 15, ++/*236168*/ OPC_CheckChild1Type, MVT::i32, ++/*236170*/ OPC_CheckChild2Integer, 15, ++/*236172*/ OPC_CheckChild2Type, MVT::i32, ++/*236174*/ OPC_CheckChild3Integer, 15, ++/*236176*/ OPC_CheckChild3Type, MVT::i32, ++/*236178*/ OPC_CheckChild4Integer, 15, ++/*236180*/ OPC_CheckChild4Type, MVT::i32, ++/*236182*/ OPC_MoveChild5, ++/*236183*/ OPC_CheckInteger, 15, ++/*236185*/ OPC_CheckType, MVT::i32, ++/*236187*/ OPC_MoveParent, ++/*236188*/ OPC_MoveChild6, ++/*236189*/ OPC_CheckInteger, 15, ++/*236191*/ OPC_CheckType, MVT::i32, ++/*236193*/ OPC_MoveParent, ++/*236194*/ OPC_MoveChild7, ++/*236195*/ OPC_CheckInteger, 15, ++/*236197*/ OPC_CheckType, MVT::i32, ++/*236199*/ OPC_MoveParent, ++/*236200*/ OPC_MoveChild, 8, ++/*236202*/ OPC_CheckInteger, 15, ++/*236204*/ OPC_CheckType, MVT::i32, ++/*236206*/ OPC_MoveParent, ++/*236207*/ OPC_MoveChild, 9, ++/*236209*/ OPC_CheckInteger, 15, ++/*236211*/ OPC_CheckType, MVT::i32, ++/*236213*/ OPC_MoveParent, ++/*236214*/ OPC_MoveChild, 10, ++/*236216*/ OPC_CheckInteger, 15, ++/*236218*/ OPC_CheckType, MVT::i32, ++/*236220*/ OPC_MoveParent, ++/*236221*/ OPC_MoveChild, 11, ++/*236223*/ OPC_CheckInteger, 15, ++/*236225*/ OPC_CheckType, MVT::i32, ++/*236227*/ OPC_MoveParent, ++/*236228*/ OPC_MoveChild, 12, ++/*236230*/ OPC_CheckInteger, 15, ++/*236232*/ OPC_CheckType, MVT::i32, ++/*236234*/ OPC_MoveParent, ++/*236235*/ OPC_MoveChild, 13, ++/*236237*/ OPC_CheckInteger, 15, ++/*236239*/ OPC_CheckType, MVT::i32, ++/*236241*/ OPC_MoveParent, ++/*236242*/ OPC_MoveChild, 14, ++/*236244*/ OPC_CheckInteger, 15, ++/*236246*/ OPC_CheckType, MVT::i32, ++/*236248*/ OPC_MoveParent, ++/*236249*/ OPC_MoveChild, 15, ++/*236251*/ OPC_CheckInteger, 15, ++/*236253*/ OPC_CheckType, MVT::i32, ++/*236255*/ OPC_MoveParent, ++/*236256*/ OPC_CheckType, MVT::v16i16, ++/*236258*/ OPC_MoveParent, ++/*236259*/ OPC_MoveParent, ++/*236260*/ OPC_MoveParent, ++/*236261*/ OPC_MoveChild1, ++/*236262*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*236265*/ OPC_CheckChild0Integer, 1, ++/*236267*/ OPC_CheckChild0Type, MVT::i32, ++/*236269*/ OPC_CheckChild1Integer, 1, ++/*236271*/ OPC_CheckChild1Type, MVT::i32, ++/*236273*/ OPC_CheckChild2Integer, 1, ++/*236275*/ OPC_CheckChild2Type, MVT::i32, ++/*236277*/ OPC_CheckChild3Integer, 1, ++/*236279*/ OPC_CheckChild3Type, MVT::i32, ++/*236281*/ OPC_CheckChild4Integer, 1, ++/*236283*/ OPC_CheckChild4Type, MVT::i32, ++/*236285*/ OPC_MoveChild5, ++/*236286*/ OPC_CheckInteger, 1, ++/*236288*/ OPC_CheckType, MVT::i32, ++/*236290*/ OPC_MoveParent, ++/*236291*/ OPC_MoveChild6, ++/*236292*/ OPC_CheckInteger, 1, ++/*236294*/ OPC_CheckType, MVT::i32, ++/*236296*/ OPC_MoveParent, ++/*236297*/ OPC_MoveChild7, ++/*236298*/ OPC_CheckInteger, 1, ++/*236300*/ OPC_CheckType, MVT::i32, ++/*236302*/ OPC_MoveParent, ++/*236303*/ OPC_MoveChild, 8, ++/*236305*/ OPC_CheckInteger, 1, ++/*236307*/ OPC_CheckType, MVT::i32, ++/*236309*/ OPC_MoveParent, ++/*236310*/ OPC_MoveChild, 9, ++/*236312*/ OPC_CheckInteger, 1, ++/*236314*/ OPC_CheckType, MVT::i32, ++/*236316*/ OPC_MoveParent, ++/*236317*/ OPC_MoveChild, 10, ++/*236319*/ OPC_CheckInteger, 1, ++/*236321*/ OPC_CheckType, MVT::i32, ++/*236323*/ OPC_MoveParent, ++/*236324*/ OPC_MoveChild, 11, ++/*236326*/ OPC_CheckInteger, 1, ++/*236328*/ OPC_CheckType, MVT::i32, ++/*236330*/ OPC_MoveParent, ++/*236331*/ OPC_MoveChild, 12, ++/*236333*/ OPC_CheckInteger, 1, ++/*236335*/ OPC_CheckType, MVT::i32, ++/*236337*/ OPC_MoveParent, ++/*236338*/ OPC_MoveChild, 13, ++/*236340*/ OPC_CheckInteger, 1, ++/*236342*/ OPC_CheckType, MVT::i32, ++/*236344*/ OPC_MoveParent, ++/*236345*/ OPC_MoveChild, 14, ++/*236347*/ OPC_CheckInteger, 1, ++/*236349*/ OPC_CheckType, MVT::i32, ++/*236351*/ OPC_MoveParent, ++/*236352*/ OPC_MoveChild, 15, ++/*236354*/ OPC_CheckInteger, 1, ++/*236356*/ OPC_CheckType, MVT::i32, ++/*236358*/ OPC_MoveParent, ++/*236359*/ OPC_CheckType, MVT::v16i16, ++/*236361*/ OPC_MoveParent, ++/*236362*/ OPC_CheckType, MVT::v16i16, ++/*236364*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*236366*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$a), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*236374*/ 0, /*End of Scope*/ ++/*236375*/ /*Scope*/ 10|128,5/*650*/, /*->237027*/ ++/*236377*/ OPC_CheckChild0Same, 0, ++/*236379*/ OPC_MoveChild1, ++/*236380*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*236383*/ OPC_Scope, 63|128,2/*319*/, /*->236705*/ // 2 children in Scope ++/*236386*/ OPC_MoveChild0, ++/*236387*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*236390*/ OPC_CheckChild0Integer, 1, ++/*236392*/ OPC_CheckChild0Type, MVT::i32, ++/*236394*/ OPC_CheckChild1Integer, 1, ++/*236396*/ OPC_CheckChild1Type, MVT::i32, ++/*236398*/ OPC_CheckChild2Integer, 1, ++/*236400*/ OPC_CheckChild2Type, MVT::i32, ++/*236402*/ OPC_CheckChild3Integer, 1, ++/*236404*/ OPC_CheckChild3Type, MVT::i32, ++/*236406*/ OPC_CheckChild4Integer, 1, ++/*236408*/ OPC_CheckChild4Type, MVT::i32, ++/*236410*/ OPC_MoveChild5, ++/*236411*/ OPC_CheckInteger, 1, ++/*236413*/ OPC_CheckType, MVT::i32, ++/*236415*/ OPC_MoveParent, ++/*236416*/ OPC_MoveChild6, ++/*236417*/ OPC_CheckInteger, 1, ++/*236419*/ OPC_CheckType, MVT::i32, ++/*236421*/ OPC_MoveParent, ++/*236422*/ OPC_MoveChild7, ++/*236423*/ OPC_CheckInteger, 1, ++/*236425*/ OPC_CheckType, MVT::i32, ++/*236427*/ OPC_MoveParent, ++/*236428*/ OPC_MoveChild, 8, ++/*236430*/ OPC_CheckInteger, 1, ++/*236432*/ OPC_CheckType, MVT::i32, ++/*236434*/ OPC_MoveParent, ++/*236435*/ OPC_MoveChild, 9, ++/*236437*/ OPC_CheckInteger, 1, ++/*236439*/ OPC_CheckType, MVT::i32, ++/*236441*/ OPC_MoveParent, ++/*236442*/ OPC_MoveChild, 10, ++/*236444*/ OPC_CheckInteger, 1, ++/*236446*/ OPC_CheckType, MVT::i32, ++/*236448*/ OPC_MoveParent, ++/*236449*/ OPC_MoveChild, 11, ++/*236451*/ OPC_CheckInteger, 1, ++/*236453*/ OPC_CheckType, MVT::i32, ++/*236455*/ OPC_MoveParent, ++/*236456*/ OPC_MoveChild, 12, ++/*236458*/ OPC_CheckInteger, 1, ++/*236460*/ OPC_CheckType, MVT::i32, ++/*236462*/ OPC_MoveParent, ++/*236463*/ OPC_MoveChild, 13, ++/*236465*/ OPC_CheckInteger, 1, ++/*236467*/ OPC_CheckType, MVT::i32, ++/*236469*/ OPC_MoveParent, ++/*236470*/ OPC_MoveChild, 14, ++/*236472*/ OPC_CheckInteger, 1, ++/*236474*/ OPC_CheckType, MVT::i32, ++/*236476*/ OPC_MoveParent, ++/*236477*/ OPC_MoveChild, 15, ++/*236479*/ OPC_CheckInteger, 1, ++/*236481*/ OPC_CheckType, MVT::i32, ++/*236483*/ OPC_MoveParent, ++/*236484*/ OPC_MoveParent, ++/*236485*/ OPC_CheckChild1Same, 1, ++/*236487*/ OPC_MoveParent, ++/*236488*/ OPC_MoveParent, ++/*236489*/ OPC_MoveChild1, ++/*236490*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*236493*/ OPC_CheckChild0Integer, 15, ++/*236495*/ OPC_CheckChild0Type, MVT::i32, ++/*236497*/ OPC_CheckChild1Integer, 15, ++/*236499*/ OPC_CheckChild1Type, MVT::i32, ++/*236501*/ OPC_CheckChild2Integer, 15, ++/*236503*/ OPC_CheckChild2Type, MVT::i32, ++/*236505*/ OPC_CheckChild3Integer, 15, ++/*236507*/ OPC_CheckChild3Type, MVT::i32, ++/*236509*/ OPC_CheckChild4Integer, 15, ++/*236511*/ OPC_CheckChild4Type, MVT::i32, ++/*236513*/ OPC_MoveChild5, ++/*236514*/ OPC_CheckInteger, 15, ++/*236516*/ OPC_CheckType, MVT::i32, ++/*236518*/ OPC_MoveParent, ++/*236519*/ OPC_MoveChild6, ++/*236520*/ OPC_CheckInteger, 15, ++/*236522*/ OPC_CheckType, MVT::i32, ++/*236524*/ OPC_MoveParent, ++/*236525*/ OPC_MoveChild7, ++/*236526*/ OPC_CheckInteger, 15, ++/*236528*/ OPC_CheckType, MVT::i32, ++/*236530*/ OPC_MoveParent, ++/*236531*/ OPC_MoveChild, 8, ++/*236533*/ OPC_CheckInteger, 15, ++/*236535*/ OPC_CheckType, MVT::i32, ++/*236537*/ OPC_MoveParent, ++/*236538*/ OPC_MoveChild, 9, ++/*236540*/ OPC_CheckInteger, 15, ++/*236542*/ OPC_CheckType, MVT::i32, ++/*236544*/ OPC_MoveParent, ++/*236545*/ OPC_MoveChild, 10, ++/*236547*/ OPC_CheckInteger, 15, ++/*236549*/ OPC_CheckType, MVT::i32, ++/*236551*/ OPC_MoveParent, ++/*236552*/ OPC_MoveChild, 11, ++/*236554*/ OPC_CheckInteger, 15, ++/*236556*/ OPC_CheckType, MVT::i32, ++/*236558*/ OPC_MoveParent, ++/*236559*/ OPC_MoveChild, 12, ++/*236561*/ OPC_CheckInteger, 15, ++/*236563*/ OPC_CheckType, MVT::i32, ++/*236565*/ OPC_MoveParent, ++/*236566*/ OPC_MoveChild, 13, ++/*236568*/ OPC_CheckInteger, 15, ++/*236570*/ OPC_CheckType, MVT::i32, ++/*236572*/ OPC_MoveParent, ++/*236573*/ OPC_MoveChild, 14, ++/*236575*/ OPC_CheckInteger, 15, ++/*236577*/ OPC_CheckType, MVT::i32, ++/*236579*/ OPC_MoveParent, ++/*236580*/ OPC_MoveChild, 15, ++/*236582*/ OPC_CheckInteger, 15, ++/*236584*/ OPC_CheckType, MVT::i32, ++/*236586*/ OPC_MoveParent, ++/*236587*/ OPC_CheckType, MVT::v16i16, ++/*236589*/ OPC_MoveParent, ++/*236590*/ OPC_MoveParent, ++/*236591*/ OPC_MoveParent, ++/*236592*/ OPC_MoveChild1, ++/*236593*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*236596*/ OPC_CheckChild0Integer, 1, ++/*236598*/ OPC_CheckChild0Type, MVT::i32, ++/*236600*/ OPC_CheckChild1Integer, 1, ++/*236602*/ OPC_CheckChild1Type, MVT::i32, ++/*236604*/ OPC_CheckChild2Integer, 1, ++/*236606*/ OPC_CheckChild2Type, MVT::i32, ++/*236608*/ OPC_CheckChild3Integer, 1, ++/*236610*/ OPC_CheckChild3Type, MVT::i32, ++/*236612*/ OPC_CheckChild4Integer, 1, ++/*236614*/ OPC_CheckChild4Type, MVT::i32, ++/*236616*/ OPC_MoveChild5, ++/*236617*/ OPC_CheckInteger, 1, ++/*236619*/ OPC_CheckType, MVT::i32, ++/*236621*/ OPC_MoveParent, ++/*236622*/ OPC_MoveChild6, ++/*236623*/ OPC_CheckInteger, 1, ++/*236625*/ OPC_CheckType, MVT::i32, ++/*236627*/ OPC_MoveParent, ++/*236628*/ OPC_MoveChild7, ++/*236629*/ OPC_CheckInteger, 1, ++/*236631*/ OPC_CheckType, MVT::i32, ++/*236633*/ OPC_MoveParent, ++/*236634*/ OPC_MoveChild, 8, ++/*236636*/ OPC_CheckInteger, 1, ++/*236638*/ OPC_CheckType, MVT::i32, ++/*236640*/ OPC_MoveParent, ++/*236641*/ OPC_MoveChild, 9, ++/*236643*/ OPC_CheckInteger, 1, ++/*236645*/ OPC_CheckType, MVT::i32, ++/*236647*/ OPC_MoveParent, ++/*236648*/ OPC_MoveChild, 10, ++/*236650*/ OPC_CheckInteger, 1, ++/*236652*/ OPC_CheckType, MVT::i32, ++/*236654*/ OPC_MoveParent, ++/*236655*/ OPC_MoveChild, 11, ++/*236657*/ OPC_CheckInteger, 1, ++/*236659*/ OPC_CheckType, MVT::i32, ++/*236661*/ OPC_MoveParent, ++/*236662*/ OPC_MoveChild, 12, ++/*236664*/ OPC_CheckInteger, 1, ++/*236666*/ OPC_CheckType, MVT::i32, ++/*236668*/ OPC_MoveParent, ++/*236669*/ OPC_MoveChild, 13, ++/*236671*/ OPC_CheckInteger, 1, ++/*236673*/ OPC_CheckType, MVT::i32, ++/*236675*/ OPC_MoveParent, ++/*236676*/ OPC_MoveChild, 14, ++/*236678*/ OPC_CheckInteger, 1, ++/*236680*/ OPC_CheckType, MVT::i32, ++/*236682*/ OPC_MoveParent, ++/*236683*/ OPC_MoveChild, 15, ++/*236685*/ OPC_CheckInteger, 1, ++/*236687*/ OPC_CheckType, MVT::i32, ++/*236689*/ OPC_MoveParent, ++/*236690*/ OPC_CheckType, MVT::v16i16, ++/*236692*/ OPC_MoveParent, ++/*236693*/ OPC_CheckType, MVT::v16i16, ++/*236695*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*236697*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$a), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*236705*/ /*Scope*/ 63|128,2/*319*/, /*->237026*/ ++/*236707*/ OPC_CheckChild0Same, 1, ++/*236709*/ OPC_MoveChild1, ++/*236710*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*236713*/ OPC_CheckChild0Integer, 1, ++/*236715*/ OPC_CheckChild0Type, MVT::i32, ++/*236717*/ OPC_CheckChild1Integer, 1, ++/*236719*/ OPC_CheckChild1Type, MVT::i32, ++/*236721*/ OPC_CheckChild2Integer, 1, ++/*236723*/ OPC_CheckChild2Type, MVT::i32, ++/*236725*/ OPC_CheckChild3Integer, 1, ++/*236727*/ OPC_CheckChild3Type, MVT::i32, ++/*236729*/ OPC_CheckChild4Integer, 1, ++/*236731*/ OPC_CheckChild4Type, MVT::i32, ++/*236733*/ OPC_MoveChild5, ++/*236734*/ OPC_CheckInteger, 1, ++/*236736*/ OPC_CheckType, MVT::i32, ++/*236738*/ OPC_MoveParent, ++/*236739*/ OPC_MoveChild6, ++/*236740*/ OPC_CheckInteger, 1, ++/*236742*/ OPC_CheckType, MVT::i32, ++/*236744*/ OPC_MoveParent, ++/*236745*/ OPC_MoveChild7, ++/*236746*/ OPC_CheckInteger, 1, ++/*236748*/ OPC_CheckType, MVT::i32, ++/*236750*/ OPC_MoveParent, ++/*236751*/ OPC_MoveChild, 8, ++/*236753*/ OPC_CheckInteger, 1, ++/*236755*/ OPC_CheckType, MVT::i32, ++/*236757*/ OPC_MoveParent, ++/*236758*/ OPC_MoveChild, 9, ++/*236760*/ OPC_CheckInteger, 1, ++/*236762*/ OPC_CheckType, MVT::i32, ++/*236764*/ OPC_MoveParent, ++/*236765*/ OPC_MoveChild, 10, ++/*236767*/ OPC_CheckInteger, 1, ++/*236769*/ OPC_CheckType, MVT::i32, ++/*236771*/ OPC_MoveParent, ++/*236772*/ OPC_MoveChild, 11, ++/*236774*/ OPC_CheckInteger, 1, ++/*236776*/ OPC_CheckType, MVT::i32, ++/*236778*/ OPC_MoveParent, ++/*236779*/ OPC_MoveChild, 12, ++/*236781*/ OPC_CheckInteger, 1, ++/*236783*/ OPC_CheckType, MVT::i32, ++/*236785*/ OPC_MoveParent, ++/*236786*/ OPC_MoveChild, 13, ++/*236788*/ OPC_CheckInteger, 1, ++/*236790*/ OPC_CheckType, MVT::i32, ++/*236792*/ OPC_MoveParent, ++/*236793*/ OPC_MoveChild, 14, ++/*236795*/ OPC_CheckInteger, 1, ++/*236797*/ OPC_CheckType, MVT::i32, ++/*236799*/ OPC_MoveParent, ++/*236800*/ OPC_MoveChild, 15, ++/*236802*/ OPC_CheckInteger, 1, ++/*236804*/ OPC_CheckType, MVT::i32, ++/*236806*/ OPC_MoveParent, ++/*236807*/ OPC_MoveParent, ++/*236808*/ OPC_MoveParent, ++/*236809*/ OPC_MoveParent, ++/*236810*/ OPC_MoveChild1, ++/*236811*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*236814*/ OPC_CheckChild0Integer, 15, ++/*236816*/ OPC_CheckChild0Type, MVT::i32, ++/*236818*/ OPC_CheckChild1Integer, 15, ++/*236820*/ OPC_CheckChild1Type, MVT::i32, ++/*236822*/ OPC_CheckChild2Integer, 15, ++/*236824*/ OPC_CheckChild2Type, MVT::i32, ++/*236826*/ OPC_CheckChild3Integer, 15, ++/*236828*/ OPC_CheckChild3Type, MVT::i32, ++/*236830*/ OPC_CheckChild4Integer, 15, ++/*236832*/ OPC_CheckChild4Type, MVT::i32, ++/*236834*/ OPC_MoveChild5, ++/*236835*/ OPC_CheckInteger, 15, ++/*236837*/ OPC_CheckType, MVT::i32, ++/*236839*/ OPC_MoveParent, ++/*236840*/ OPC_MoveChild6, ++/*236841*/ OPC_CheckInteger, 15, ++/*236843*/ OPC_CheckType, MVT::i32, ++/*236845*/ OPC_MoveParent, ++/*236846*/ OPC_MoveChild7, ++/*236847*/ OPC_CheckInteger, 15, ++/*236849*/ OPC_CheckType, MVT::i32, ++/*236851*/ OPC_MoveParent, ++/*236852*/ OPC_MoveChild, 8, ++/*236854*/ OPC_CheckInteger, 15, ++/*236856*/ OPC_CheckType, MVT::i32, ++/*236858*/ OPC_MoveParent, ++/*236859*/ OPC_MoveChild, 9, ++/*236861*/ OPC_CheckInteger, 15, ++/*236863*/ OPC_CheckType, MVT::i32, ++/*236865*/ OPC_MoveParent, ++/*236866*/ OPC_MoveChild, 10, ++/*236868*/ OPC_CheckInteger, 15, ++/*236870*/ OPC_CheckType, MVT::i32, ++/*236872*/ OPC_MoveParent, ++/*236873*/ OPC_MoveChild, 11, ++/*236875*/ OPC_CheckInteger, 15, ++/*236877*/ OPC_CheckType, MVT::i32, ++/*236879*/ OPC_MoveParent, ++/*236880*/ OPC_MoveChild, 12, ++/*236882*/ OPC_CheckInteger, 15, ++/*236884*/ OPC_CheckType, MVT::i32, ++/*236886*/ OPC_MoveParent, ++/*236887*/ OPC_MoveChild, 13, ++/*236889*/ OPC_CheckInteger, 15, ++/*236891*/ OPC_CheckType, MVT::i32, ++/*236893*/ OPC_MoveParent, ++/*236894*/ OPC_MoveChild, 14, ++/*236896*/ OPC_CheckInteger, 15, ++/*236898*/ OPC_CheckType, MVT::i32, ++/*236900*/ OPC_MoveParent, ++/*236901*/ OPC_MoveChild, 15, ++/*236903*/ OPC_CheckInteger, 15, ++/*236905*/ OPC_CheckType, MVT::i32, ++/*236907*/ OPC_MoveParent, ++/*236908*/ OPC_CheckType, MVT::v16i16, ++/*236910*/ OPC_MoveParent, ++/*236911*/ OPC_MoveParent, ++/*236912*/ OPC_MoveParent, ++/*236913*/ OPC_MoveChild1, ++/*236914*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*236917*/ OPC_CheckChild0Integer, 1, ++/*236919*/ OPC_CheckChild0Type, MVT::i32, ++/*236921*/ OPC_CheckChild1Integer, 1, ++/*236923*/ OPC_CheckChild1Type, MVT::i32, ++/*236925*/ OPC_CheckChild2Integer, 1, ++/*236927*/ OPC_CheckChild2Type, MVT::i32, ++/*236929*/ OPC_CheckChild3Integer, 1, ++/*236931*/ OPC_CheckChild3Type, MVT::i32, ++/*236933*/ OPC_CheckChild4Integer, 1, ++/*236935*/ OPC_CheckChild4Type, MVT::i32, ++/*236937*/ OPC_MoveChild5, ++/*236938*/ OPC_CheckInteger, 1, ++/*236940*/ OPC_CheckType, MVT::i32, ++/*236942*/ OPC_MoveParent, ++/*236943*/ OPC_MoveChild6, ++/*236944*/ OPC_CheckInteger, 1, ++/*236946*/ OPC_CheckType, MVT::i32, ++/*236948*/ OPC_MoveParent, ++/*236949*/ OPC_MoveChild7, ++/*236950*/ OPC_CheckInteger, 1, ++/*236952*/ OPC_CheckType, MVT::i32, ++/*236954*/ OPC_MoveParent, ++/*236955*/ OPC_MoveChild, 8, ++/*236957*/ OPC_CheckInteger, 1, ++/*236959*/ OPC_CheckType, MVT::i32, ++/*236961*/ OPC_MoveParent, ++/*236962*/ OPC_MoveChild, 9, ++/*236964*/ OPC_CheckInteger, 1, ++/*236966*/ OPC_CheckType, MVT::i32, ++/*236968*/ OPC_MoveParent, ++/*236969*/ OPC_MoveChild, 10, ++/*236971*/ OPC_CheckInteger, 1, ++/*236973*/ OPC_CheckType, MVT::i32, ++/*236975*/ OPC_MoveParent, ++/*236976*/ OPC_MoveChild, 11, ++/*236978*/ OPC_CheckInteger, 1, ++/*236980*/ OPC_CheckType, MVT::i32, ++/*236982*/ OPC_MoveParent, ++/*236983*/ OPC_MoveChild, 12, ++/*236985*/ OPC_CheckInteger, 1, ++/*236987*/ OPC_CheckType, MVT::i32, ++/*236989*/ OPC_MoveParent, ++/*236990*/ OPC_MoveChild, 13, ++/*236992*/ OPC_CheckInteger, 1, ++/*236994*/ OPC_CheckType, MVT::i32, ++/*236996*/ OPC_MoveParent, ++/*236997*/ OPC_MoveChild, 14, ++/*236999*/ OPC_CheckInteger, 1, ++/*237001*/ OPC_CheckType, MVT::i32, ++/*237003*/ OPC_MoveParent, ++/*237004*/ OPC_MoveChild, 15, ++/*237006*/ OPC_CheckInteger, 1, ++/*237008*/ OPC_CheckType, MVT::i32, ++/*237010*/ OPC_MoveParent, ++/*237011*/ OPC_CheckType, MVT::v16i16, ++/*237013*/ OPC_MoveParent, ++/*237014*/ OPC_CheckType, MVT::v16i16, ++/*237016*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*237018*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$a), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*237026*/ 0, /*End of Scope*/ ++/*237027*/ /*Scope*/ 10|128,5/*650*/, /*->237679*/ ++/*237029*/ OPC_CheckChild0Same, 1, ++/*237031*/ OPC_MoveChild1, ++/*237032*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*237035*/ OPC_Scope, 63|128,2/*319*/, /*->237357*/ // 2 children in Scope ++/*237038*/ OPC_MoveChild0, ++/*237039*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*237042*/ OPC_CheckChild0Integer, 1, ++/*237044*/ OPC_CheckChild0Type, MVT::i32, ++/*237046*/ OPC_CheckChild1Integer, 1, ++/*237048*/ OPC_CheckChild1Type, MVT::i32, ++/*237050*/ OPC_CheckChild2Integer, 1, ++/*237052*/ OPC_CheckChild2Type, MVT::i32, ++/*237054*/ OPC_CheckChild3Integer, 1, ++/*237056*/ OPC_CheckChild3Type, MVT::i32, ++/*237058*/ OPC_CheckChild4Integer, 1, ++/*237060*/ OPC_CheckChild4Type, MVT::i32, ++/*237062*/ OPC_MoveChild5, ++/*237063*/ OPC_CheckInteger, 1, ++/*237065*/ OPC_CheckType, MVT::i32, ++/*237067*/ OPC_MoveParent, ++/*237068*/ OPC_MoveChild6, ++/*237069*/ OPC_CheckInteger, 1, ++/*237071*/ OPC_CheckType, MVT::i32, ++/*237073*/ OPC_MoveParent, ++/*237074*/ OPC_MoveChild7, ++/*237075*/ OPC_CheckInteger, 1, ++/*237077*/ OPC_CheckType, MVT::i32, ++/*237079*/ OPC_MoveParent, ++/*237080*/ OPC_MoveChild, 8, ++/*237082*/ OPC_CheckInteger, 1, ++/*237084*/ OPC_CheckType, MVT::i32, ++/*237086*/ OPC_MoveParent, ++/*237087*/ OPC_MoveChild, 9, ++/*237089*/ OPC_CheckInteger, 1, ++/*237091*/ OPC_CheckType, MVT::i32, ++/*237093*/ OPC_MoveParent, ++/*237094*/ OPC_MoveChild, 10, ++/*237096*/ OPC_CheckInteger, 1, ++/*237098*/ OPC_CheckType, MVT::i32, ++/*237100*/ OPC_MoveParent, ++/*237101*/ OPC_MoveChild, 11, ++/*237103*/ OPC_CheckInteger, 1, ++/*237105*/ OPC_CheckType, MVT::i32, ++/*237107*/ OPC_MoveParent, ++/*237108*/ OPC_MoveChild, 12, ++/*237110*/ OPC_CheckInteger, 1, ++/*237112*/ OPC_CheckType, MVT::i32, ++/*237114*/ OPC_MoveParent, ++/*237115*/ OPC_MoveChild, 13, ++/*237117*/ OPC_CheckInteger, 1, ++/*237119*/ OPC_CheckType, MVT::i32, ++/*237121*/ OPC_MoveParent, ++/*237122*/ OPC_MoveChild, 14, ++/*237124*/ OPC_CheckInteger, 1, ++/*237126*/ OPC_CheckType, MVT::i32, ++/*237128*/ OPC_MoveParent, ++/*237129*/ OPC_MoveChild, 15, ++/*237131*/ OPC_CheckInteger, 1, ++/*237133*/ OPC_CheckType, MVT::i32, ++/*237135*/ OPC_MoveParent, ++/*237136*/ OPC_MoveParent, ++/*237137*/ OPC_CheckChild1Same, 0, ++/*237139*/ OPC_MoveParent, ++/*237140*/ OPC_MoveParent, ++/*237141*/ OPC_MoveChild1, ++/*237142*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*237145*/ OPC_CheckChild0Integer, 15, ++/*237147*/ OPC_CheckChild0Type, MVT::i32, ++/*237149*/ OPC_CheckChild1Integer, 15, ++/*237151*/ OPC_CheckChild1Type, MVT::i32, ++/*237153*/ OPC_CheckChild2Integer, 15, ++/*237155*/ OPC_CheckChild2Type, MVT::i32, ++/*237157*/ OPC_CheckChild3Integer, 15, ++/*237159*/ OPC_CheckChild3Type, MVT::i32, ++/*237161*/ OPC_CheckChild4Integer, 15, ++/*237163*/ OPC_CheckChild4Type, MVT::i32, ++/*237165*/ OPC_MoveChild5, ++/*237166*/ OPC_CheckInteger, 15, ++/*237168*/ OPC_CheckType, MVT::i32, ++/*237170*/ OPC_MoveParent, ++/*237171*/ OPC_MoveChild6, ++/*237172*/ OPC_CheckInteger, 15, ++/*237174*/ OPC_CheckType, MVT::i32, ++/*237176*/ OPC_MoveParent, ++/*237177*/ OPC_MoveChild7, ++/*237178*/ OPC_CheckInteger, 15, ++/*237180*/ OPC_CheckType, MVT::i32, ++/*237182*/ OPC_MoveParent, ++/*237183*/ OPC_MoveChild, 8, ++/*237185*/ OPC_CheckInteger, 15, ++/*237187*/ OPC_CheckType, MVT::i32, ++/*237189*/ OPC_MoveParent, ++/*237190*/ OPC_MoveChild, 9, ++/*237192*/ OPC_CheckInteger, 15, ++/*237194*/ OPC_CheckType, MVT::i32, ++/*237196*/ OPC_MoveParent, ++/*237197*/ OPC_MoveChild, 10, ++/*237199*/ OPC_CheckInteger, 15, ++/*237201*/ OPC_CheckType, MVT::i32, ++/*237203*/ OPC_MoveParent, ++/*237204*/ OPC_MoveChild, 11, ++/*237206*/ OPC_CheckInteger, 15, ++/*237208*/ OPC_CheckType, MVT::i32, ++/*237210*/ OPC_MoveParent, ++/*237211*/ OPC_MoveChild, 12, ++/*237213*/ OPC_CheckInteger, 15, ++/*237215*/ OPC_CheckType, MVT::i32, ++/*237217*/ OPC_MoveParent, ++/*237218*/ OPC_MoveChild, 13, ++/*237220*/ OPC_CheckInteger, 15, ++/*237222*/ OPC_CheckType, MVT::i32, ++/*237224*/ OPC_MoveParent, ++/*237225*/ OPC_MoveChild, 14, ++/*237227*/ OPC_CheckInteger, 15, ++/*237229*/ OPC_CheckType, MVT::i32, ++/*237231*/ OPC_MoveParent, ++/*237232*/ OPC_MoveChild, 15, ++/*237234*/ OPC_CheckInteger, 15, ++/*237236*/ OPC_CheckType, MVT::i32, ++/*237238*/ OPC_MoveParent, ++/*237239*/ OPC_CheckType, MVT::v16i16, ++/*237241*/ OPC_MoveParent, ++/*237242*/ OPC_MoveParent, ++/*237243*/ OPC_MoveParent, ++/*237244*/ OPC_MoveChild1, ++/*237245*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*237248*/ OPC_CheckChild0Integer, 1, ++/*237250*/ OPC_CheckChild0Type, MVT::i32, ++/*237252*/ OPC_CheckChild1Integer, 1, ++/*237254*/ OPC_CheckChild1Type, MVT::i32, ++/*237256*/ OPC_CheckChild2Integer, 1, ++/*237258*/ OPC_CheckChild2Type, MVT::i32, ++/*237260*/ OPC_CheckChild3Integer, 1, ++/*237262*/ OPC_CheckChild3Type, MVT::i32, ++/*237264*/ OPC_CheckChild4Integer, 1, ++/*237266*/ OPC_CheckChild4Type, MVT::i32, ++/*237268*/ OPC_MoveChild5, ++/*237269*/ OPC_CheckInteger, 1, ++/*237271*/ OPC_CheckType, MVT::i32, ++/*237273*/ OPC_MoveParent, ++/*237274*/ OPC_MoveChild6, ++/*237275*/ OPC_CheckInteger, 1, ++/*237277*/ OPC_CheckType, MVT::i32, ++/*237279*/ OPC_MoveParent, ++/*237280*/ OPC_MoveChild7, ++/*237281*/ OPC_CheckInteger, 1, ++/*237283*/ OPC_CheckType, MVT::i32, ++/*237285*/ OPC_MoveParent, ++/*237286*/ OPC_MoveChild, 8, ++/*237288*/ OPC_CheckInteger, 1, ++/*237290*/ OPC_CheckType, MVT::i32, ++/*237292*/ OPC_MoveParent, ++/*237293*/ OPC_MoveChild, 9, ++/*237295*/ OPC_CheckInteger, 1, ++/*237297*/ OPC_CheckType, MVT::i32, ++/*237299*/ OPC_MoveParent, ++/*237300*/ OPC_MoveChild, 10, ++/*237302*/ OPC_CheckInteger, 1, ++/*237304*/ OPC_CheckType, MVT::i32, ++/*237306*/ OPC_MoveParent, ++/*237307*/ OPC_MoveChild, 11, ++/*237309*/ OPC_CheckInteger, 1, ++/*237311*/ OPC_CheckType, MVT::i32, ++/*237313*/ OPC_MoveParent, ++/*237314*/ OPC_MoveChild, 12, ++/*237316*/ OPC_CheckInteger, 1, ++/*237318*/ OPC_CheckType, MVT::i32, ++/*237320*/ OPC_MoveParent, ++/*237321*/ OPC_MoveChild, 13, ++/*237323*/ OPC_CheckInteger, 1, ++/*237325*/ OPC_CheckType, MVT::i32, ++/*237327*/ OPC_MoveParent, ++/*237328*/ OPC_MoveChild, 14, ++/*237330*/ OPC_CheckInteger, 1, ++/*237332*/ OPC_CheckType, MVT::i32, ++/*237334*/ OPC_MoveParent, ++/*237335*/ OPC_MoveChild, 15, ++/*237337*/ OPC_CheckInteger, 1, ++/*237339*/ OPC_CheckType, MVT::i32, ++/*237341*/ OPC_MoveParent, ++/*237342*/ OPC_CheckType, MVT::v16i16, ++/*237344*/ OPC_MoveParent, ++/*237345*/ OPC_CheckType, MVT::v16i16, ++/*237347*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*237349*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$a), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*237357*/ /*Scope*/ 63|128,2/*319*/, /*->237678*/ ++/*237359*/ OPC_CheckChild0Same, 0, ++/*237361*/ OPC_MoveChild1, ++/*237362*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*237365*/ OPC_CheckChild0Integer, 1, ++/*237367*/ OPC_CheckChild0Type, MVT::i32, ++/*237369*/ OPC_CheckChild1Integer, 1, ++/*237371*/ OPC_CheckChild1Type, MVT::i32, ++/*237373*/ OPC_CheckChild2Integer, 1, ++/*237375*/ OPC_CheckChild2Type, MVT::i32, ++/*237377*/ OPC_CheckChild3Integer, 1, ++/*237379*/ OPC_CheckChild3Type, MVT::i32, ++/*237381*/ OPC_CheckChild4Integer, 1, ++/*237383*/ OPC_CheckChild4Type, MVT::i32, ++/*237385*/ OPC_MoveChild5, ++/*237386*/ OPC_CheckInteger, 1, ++/*237388*/ OPC_CheckType, MVT::i32, ++/*237390*/ OPC_MoveParent, ++/*237391*/ OPC_MoveChild6, ++/*237392*/ OPC_CheckInteger, 1, ++/*237394*/ OPC_CheckType, MVT::i32, ++/*237396*/ OPC_MoveParent, ++/*237397*/ OPC_MoveChild7, ++/*237398*/ OPC_CheckInteger, 1, ++/*237400*/ OPC_CheckType, MVT::i32, ++/*237402*/ OPC_MoveParent, ++/*237403*/ OPC_MoveChild, 8, ++/*237405*/ OPC_CheckInteger, 1, ++/*237407*/ OPC_CheckType, MVT::i32, ++/*237409*/ OPC_MoveParent, ++/*237410*/ OPC_MoveChild, 9, ++/*237412*/ OPC_CheckInteger, 1, ++/*237414*/ OPC_CheckType, MVT::i32, ++/*237416*/ OPC_MoveParent, ++/*237417*/ OPC_MoveChild, 10, ++/*237419*/ OPC_CheckInteger, 1, ++/*237421*/ OPC_CheckType, MVT::i32, ++/*237423*/ OPC_MoveParent, ++/*237424*/ OPC_MoveChild, 11, ++/*237426*/ OPC_CheckInteger, 1, ++/*237428*/ OPC_CheckType, MVT::i32, ++/*237430*/ OPC_MoveParent, ++/*237431*/ OPC_MoveChild, 12, ++/*237433*/ OPC_CheckInteger, 1, ++/*237435*/ OPC_CheckType, MVT::i32, ++/*237437*/ OPC_MoveParent, ++/*237438*/ OPC_MoveChild, 13, ++/*237440*/ OPC_CheckInteger, 1, ++/*237442*/ OPC_CheckType, MVT::i32, ++/*237444*/ OPC_MoveParent, ++/*237445*/ OPC_MoveChild, 14, ++/*237447*/ OPC_CheckInteger, 1, ++/*237449*/ OPC_CheckType, MVT::i32, ++/*237451*/ OPC_MoveParent, ++/*237452*/ OPC_MoveChild, 15, ++/*237454*/ OPC_CheckInteger, 1, ++/*237456*/ OPC_CheckType, MVT::i32, ++/*237458*/ OPC_MoveParent, ++/*237459*/ OPC_MoveParent, ++/*237460*/ OPC_MoveParent, ++/*237461*/ OPC_MoveParent, ++/*237462*/ OPC_MoveChild1, ++/*237463*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*237466*/ OPC_CheckChild0Integer, 15, ++/*237468*/ OPC_CheckChild0Type, MVT::i32, ++/*237470*/ OPC_CheckChild1Integer, 15, ++/*237472*/ OPC_CheckChild1Type, MVT::i32, ++/*237474*/ OPC_CheckChild2Integer, 15, ++/*237476*/ OPC_CheckChild2Type, MVT::i32, ++/*237478*/ OPC_CheckChild3Integer, 15, ++/*237480*/ OPC_CheckChild3Type, MVT::i32, ++/*237482*/ OPC_CheckChild4Integer, 15, ++/*237484*/ OPC_CheckChild4Type, MVT::i32, ++/*237486*/ OPC_MoveChild5, ++/*237487*/ OPC_CheckInteger, 15, ++/*237489*/ OPC_CheckType, MVT::i32, ++/*237491*/ OPC_MoveParent, ++/*237492*/ OPC_MoveChild6, ++/*237493*/ OPC_CheckInteger, 15, ++/*237495*/ OPC_CheckType, MVT::i32, ++/*237497*/ OPC_MoveParent, ++/*237498*/ OPC_MoveChild7, ++/*237499*/ OPC_CheckInteger, 15, ++/*237501*/ OPC_CheckType, MVT::i32, ++/*237503*/ OPC_MoveParent, ++/*237504*/ OPC_MoveChild, 8, ++/*237506*/ OPC_CheckInteger, 15, ++/*237508*/ OPC_CheckType, MVT::i32, ++/*237510*/ OPC_MoveParent, ++/*237511*/ OPC_MoveChild, 9, ++/*237513*/ OPC_CheckInteger, 15, ++/*237515*/ OPC_CheckType, MVT::i32, ++/*237517*/ OPC_MoveParent, ++/*237518*/ OPC_MoveChild, 10, ++/*237520*/ OPC_CheckInteger, 15, ++/*237522*/ OPC_CheckType, MVT::i32, ++/*237524*/ OPC_MoveParent, ++/*237525*/ OPC_MoveChild, 11, ++/*237527*/ OPC_CheckInteger, 15, ++/*237529*/ OPC_CheckType, MVT::i32, ++/*237531*/ OPC_MoveParent, ++/*237532*/ OPC_MoveChild, 12, ++/*237534*/ OPC_CheckInteger, 15, ++/*237536*/ OPC_CheckType, MVT::i32, ++/*237538*/ OPC_MoveParent, ++/*237539*/ OPC_MoveChild, 13, ++/*237541*/ OPC_CheckInteger, 15, ++/*237543*/ OPC_CheckType, MVT::i32, ++/*237545*/ OPC_MoveParent, ++/*237546*/ OPC_MoveChild, 14, ++/*237548*/ OPC_CheckInteger, 15, ++/*237550*/ OPC_CheckType, MVT::i32, ++/*237552*/ OPC_MoveParent, ++/*237553*/ OPC_MoveChild, 15, ++/*237555*/ OPC_CheckInteger, 15, ++/*237557*/ OPC_CheckType, MVT::i32, ++/*237559*/ OPC_MoveParent, ++/*237560*/ OPC_CheckType, MVT::v16i16, ++/*237562*/ OPC_MoveParent, ++/*237563*/ OPC_MoveParent, ++/*237564*/ OPC_MoveParent, ++/*237565*/ OPC_MoveChild1, ++/*237566*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*237569*/ OPC_CheckChild0Integer, 1, ++/*237571*/ OPC_CheckChild0Type, MVT::i32, ++/*237573*/ OPC_CheckChild1Integer, 1, ++/*237575*/ OPC_CheckChild1Type, MVT::i32, ++/*237577*/ OPC_CheckChild2Integer, 1, ++/*237579*/ OPC_CheckChild2Type, MVT::i32, ++/*237581*/ OPC_CheckChild3Integer, 1, ++/*237583*/ OPC_CheckChild3Type, MVT::i32, ++/*237585*/ OPC_CheckChild4Integer, 1, ++/*237587*/ OPC_CheckChild4Type, MVT::i32, ++/*237589*/ OPC_MoveChild5, ++/*237590*/ OPC_CheckInteger, 1, ++/*237592*/ OPC_CheckType, MVT::i32, ++/*237594*/ OPC_MoveParent, ++/*237595*/ OPC_MoveChild6, ++/*237596*/ OPC_CheckInteger, 1, ++/*237598*/ OPC_CheckType, MVT::i32, ++/*237600*/ OPC_MoveParent, ++/*237601*/ OPC_MoveChild7, ++/*237602*/ OPC_CheckInteger, 1, ++/*237604*/ OPC_CheckType, MVT::i32, ++/*237606*/ OPC_MoveParent, ++/*237607*/ OPC_MoveChild, 8, ++/*237609*/ OPC_CheckInteger, 1, ++/*237611*/ OPC_CheckType, MVT::i32, ++/*237613*/ OPC_MoveParent, ++/*237614*/ OPC_MoveChild, 9, ++/*237616*/ OPC_CheckInteger, 1, ++/*237618*/ OPC_CheckType, MVT::i32, ++/*237620*/ OPC_MoveParent, ++/*237621*/ OPC_MoveChild, 10, ++/*237623*/ OPC_CheckInteger, 1, ++/*237625*/ OPC_CheckType, MVT::i32, ++/*237627*/ OPC_MoveParent, ++/*237628*/ OPC_MoveChild, 11, ++/*237630*/ OPC_CheckInteger, 1, ++/*237632*/ OPC_CheckType, MVT::i32, ++/*237634*/ OPC_MoveParent, ++/*237635*/ OPC_MoveChild, 12, ++/*237637*/ OPC_CheckInteger, 1, ++/*237639*/ OPC_CheckType, MVT::i32, ++/*237641*/ OPC_MoveParent, ++/*237642*/ OPC_MoveChild, 13, ++/*237644*/ OPC_CheckInteger, 1, ++/*237646*/ OPC_CheckType, MVT::i32, ++/*237648*/ OPC_MoveParent, ++/*237649*/ OPC_MoveChild, 14, ++/*237651*/ OPC_CheckInteger, 1, ++/*237653*/ OPC_CheckType, MVT::i32, ++/*237655*/ OPC_MoveParent, ++/*237656*/ OPC_MoveChild, 15, ++/*237658*/ OPC_CheckInteger, 1, ++/*237660*/ OPC_CheckType, MVT::i32, ++/*237662*/ OPC_MoveParent, ++/*237663*/ OPC_CheckType, MVT::v16i16, ++/*237665*/ OPC_MoveParent, ++/*237666*/ OPC_CheckType, MVT::v16i16, ++/*237668*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*237670*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$a), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*237678*/ 0, /*End of Scope*/ ++/*237679*/ /*Scope*/ 41|128,4/*553*/, /*->238234*/ ++/*237681*/ OPC_MoveChild0, ++/*237682*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*237685*/ OPC_CheckChild0Integer, 1, ++/*237687*/ OPC_CheckChild0Type, MVT::i32, ++/*237689*/ OPC_CheckChild1Integer, 1, ++/*237691*/ OPC_CheckChild1Type, MVT::i32, ++/*237693*/ OPC_CheckChild2Integer, 1, ++/*237695*/ OPC_CheckChild2Type, MVT::i32, ++/*237697*/ OPC_CheckChild3Integer, 1, ++/*237699*/ OPC_CheckChild3Type, MVT::i32, ++/*237701*/ OPC_CheckChild4Integer, 1, ++/*237703*/ OPC_CheckChild4Type, MVT::i32, ++/*237705*/ OPC_MoveChild5, ++/*237706*/ OPC_CheckInteger, 1, ++/*237708*/ OPC_CheckType, MVT::i32, ++/*237710*/ OPC_MoveParent, ++/*237711*/ OPC_MoveChild6, ++/*237712*/ OPC_CheckInteger, 1, ++/*237714*/ OPC_CheckType, MVT::i32, ++/*237716*/ OPC_MoveParent, ++/*237717*/ OPC_MoveChild7, ++/*237718*/ OPC_CheckInteger, 1, ++/*237720*/ OPC_CheckType, MVT::i32, ++/*237722*/ OPC_MoveParent, ++/*237723*/ OPC_MoveChild, 8, ++/*237725*/ OPC_CheckInteger, 1, ++/*237727*/ OPC_CheckType, MVT::i32, ++/*237729*/ OPC_MoveParent, ++/*237730*/ OPC_MoveChild, 9, ++/*237732*/ OPC_CheckInteger, 1, ++/*237734*/ OPC_CheckType, MVT::i32, ++/*237736*/ OPC_MoveParent, ++/*237737*/ OPC_MoveChild, 10, ++/*237739*/ OPC_CheckInteger, 1, ++/*237741*/ OPC_CheckType, MVT::i32, ++/*237743*/ OPC_MoveParent, ++/*237744*/ OPC_MoveChild, 11, ++/*237746*/ OPC_CheckInteger, 1, ++/*237748*/ OPC_CheckType, MVT::i32, ++/*237750*/ OPC_MoveParent, ++/*237751*/ OPC_MoveChild, 12, ++/*237753*/ OPC_CheckInteger, 1, ++/*237755*/ OPC_CheckType, MVT::i32, ++/*237757*/ OPC_MoveParent, ++/*237758*/ OPC_MoveChild, 13, ++/*237760*/ OPC_CheckInteger, 1, ++/*237762*/ OPC_CheckType, MVT::i32, ++/*237764*/ OPC_MoveParent, ++/*237765*/ OPC_MoveChild, 14, ++/*237767*/ OPC_CheckInteger, 1, ++/*237769*/ OPC_CheckType, MVT::i32, ++/*237771*/ OPC_MoveParent, ++/*237772*/ OPC_MoveChild, 15, ++/*237774*/ OPC_CheckInteger, 1, ++/*237776*/ OPC_CheckType, MVT::i32, ++/*237778*/ OPC_MoveParent, ++/*237779*/ OPC_MoveParent, ++/*237780*/ OPC_MoveChild1, ++/*237781*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*237784*/ OPC_Scope, 94|128,1/*222*/, /*->238009*/ // 2 children in Scope ++/*237787*/ OPC_CheckChild0Same, 1, ++/*237789*/ OPC_CheckChild1Same, 0, ++/*237791*/ OPC_MoveParent, ++/*237792*/ OPC_MoveParent, ++/*237793*/ OPC_MoveChild1, ++/*237794*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*237797*/ OPC_CheckChild0Integer, 15, ++/*237799*/ OPC_CheckChild0Type, MVT::i32, ++/*237801*/ OPC_CheckChild1Integer, 15, ++/*237803*/ OPC_CheckChild1Type, MVT::i32, ++/*237805*/ OPC_CheckChild2Integer, 15, ++/*237807*/ OPC_CheckChild2Type, MVT::i32, ++/*237809*/ OPC_CheckChild3Integer, 15, ++/*237811*/ OPC_CheckChild3Type, MVT::i32, ++/*237813*/ OPC_CheckChild4Integer, 15, ++/*237815*/ OPC_CheckChild4Type, MVT::i32, ++/*237817*/ OPC_MoveChild5, ++/*237818*/ OPC_CheckInteger, 15, ++/*237820*/ OPC_CheckType, MVT::i32, ++/*237822*/ OPC_MoveParent, ++/*237823*/ OPC_MoveChild6, ++/*237824*/ OPC_CheckInteger, 15, ++/*237826*/ OPC_CheckType, MVT::i32, ++/*237828*/ OPC_MoveParent, ++/*237829*/ OPC_MoveChild7, ++/*237830*/ OPC_CheckInteger, 15, ++/*237832*/ OPC_CheckType, MVT::i32, ++/*237834*/ OPC_MoveParent, ++/*237835*/ OPC_MoveChild, 8, ++/*237837*/ OPC_CheckInteger, 15, ++/*237839*/ OPC_CheckType, MVT::i32, ++/*237841*/ OPC_MoveParent, ++/*237842*/ OPC_MoveChild, 9, ++/*237844*/ OPC_CheckInteger, 15, ++/*237846*/ OPC_CheckType, MVT::i32, ++/*237848*/ OPC_MoveParent, ++/*237849*/ OPC_MoveChild, 10, ++/*237851*/ OPC_CheckInteger, 15, ++/*237853*/ OPC_CheckType, MVT::i32, ++/*237855*/ OPC_MoveParent, ++/*237856*/ OPC_MoveChild, 11, ++/*237858*/ OPC_CheckInteger, 15, ++/*237860*/ OPC_CheckType, MVT::i32, ++/*237862*/ OPC_MoveParent, ++/*237863*/ OPC_MoveChild, 12, ++/*237865*/ OPC_CheckInteger, 15, ++/*237867*/ OPC_CheckType, MVT::i32, ++/*237869*/ OPC_MoveParent, ++/*237870*/ OPC_MoveChild, 13, ++/*237872*/ OPC_CheckInteger, 15, ++/*237874*/ OPC_CheckType, MVT::i32, ++/*237876*/ OPC_MoveParent, ++/*237877*/ OPC_MoveChild, 14, ++/*237879*/ OPC_CheckInteger, 15, ++/*237881*/ OPC_CheckType, MVT::i32, ++/*237883*/ OPC_MoveParent, ++/*237884*/ OPC_MoveChild, 15, ++/*237886*/ OPC_CheckInteger, 15, ++/*237888*/ OPC_CheckType, MVT::i32, ++/*237890*/ OPC_MoveParent, ++/*237891*/ OPC_CheckType, MVT::v16i16, ++/*237893*/ OPC_MoveParent, ++/*237894*/ OPC_MoveParent, ++/*237895*/ OPC_MoveParent, ++/*237896*/ OPC_MoveChild1, ++/*237897*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*237900*/ OPC_CheckChild0Integer, 1, ++/*237902*/ OPC_CheckChild0Type, MVT::i32, ++/*237904*/ OPC_CheckChild1Integer, 1, ++/*237906*/ OPC_CheckChild1Type, MVT::i32, ++/*237908*/ OPC_CheckChild2Integer, 1, ++/*237910*/ OPC_CheckChild2Type, MVT::i32, ++/*237912*/ OPC_CheckChild3Integer, 1, ++/*237914*/ OPC_CheckChild3Type, MVT::i32, ++/*237916*/ OPC_CheckChild4Integer, 1, ++/*237918*/ OPC_CheckChild4Type, MVT::i32, ++/*237920*/ OPC_MoveChild5, ++/*237921*/ OPC_CheckInteger, 1, ++/*237923*/ OPC_CheckType, MVT::i32, ++/*237925*/ OPC_MoveParent, ++/*237926*/ OPC_MoveChild6, ++/*237927*/ OPC_CheckInteger, 1, ++/*237929*/ OPC_CheckType, MVT::i32, ++/*237931*/ OPC_MoveParent, ++/*237932*/ OPC_MoveChild7, ++/*237933*/ OPC_CheckInteger, 1, ++/*237935*/ OPC_CheckType, MVT::i32, ++/*237937*/ OPC_MoveParent, ++/*237938*/ OPC_MoveChild, 8, ++/*237940*/ OPC_CheckInteger, 1, ++/*237942*/ OPC_CheckType, MVT::i32, ++/*237944*/ OPC_MoveParent, ++/*237945*/ OPC_MoveChild, 9, ++/*237947*/ OPC_CheckInteger, 1, ++/*237949*/ OPC_CheckType, MVT::i32, ++/*237951*/ OPC_MoveParent, ++/*237952*/ OPC_MoveChild, 10, ++/*237954*/ OPC_CheckInteger, 1, ++/*237956*/ OPC_CheckType, MVT::i32, ++/*237958*/ OPC_MoveParent, ++/*237959*/ OPC_MoveChild, 11, ++/*237961*/ OPC_CheckInteger, 1, ++/*237963*/ OPC_CheckType, MVT::i32, ++/*237965*/ OPC_MoveParent, ++/*237966*/ OPC_MoveChild, 12, ++/*237968*/ OPC_CheckInteger, 1, ++/*237970*/ OPC_CheckType, MVT::i32, ++/*237972*/ OPC_MoveParent, ++/*237973*/ OPC_MoveChild, 13, ++/*237975*/ OPC_CheckInteger, 1, ++/*237977*/ OPC_CheckType, MVT::i32, ++/*237979*/ OPC_MoveParent, ++/*237980*/ OPC_MoveChild, 14, ++/*237982*/ OPC_CheckInteger, 1, ++/*237984*/ OPC_CheckType, MVT::i32, ++/*237986*/ OPC_MoveParent, ++/*237987*/ OPC_MoveChild, 15, ++/*237989*/ OPC_CheckInteger, 1, ++/*237991*/ OPC_CheckType, MVT::i32, ++/*237993*/ OPC_MoveParent, ++/*237994*/ OPC_CheckType, MVT::v16i16, ++/*237996*/ OPC_MoveParent, ++/*237997*/ OPC_CheckType, MVT::v16i16, ++/*237999*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*238001*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$a), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*238009*/ /*Scope*/ 94|128,1/*222*/, /*->238233*/ ++/*238011*/ OPC_CheckChild0Same, 0, ++/*238013*/ OPC_CheckChild1Same, 1, ++/*238015*/ OPC_MoveParent, ++/*238016*/ OPC_MoveParent, ++/*238017*/ OPC_MoveChild1, ++/*238018*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*238021*/ OPC_CheckChild0Integer, 15, ++/*238023*/ OPC_CheckChild0Type, MVT::i32, ++/*238025*/ OPC_CheckChild1Integer, 15, ++/*238027*/ OPC_CheckChild1Type, MVT::i32, ++/*238029*/ OPC_CheckChild2Integer, 15, ++/*238031*/ OPC_CheckChild2Type, MVT::i32, ++/*238033*/ OPC_CheckChild3Integer, 15, ++/*238035*/ OPC_CheckChild3Type, MVT::i32, ++/*238037*/ OPC_CheckChild4Integer, 15, ++/*238039*/ OPC_CheckChild4Type, MVT::i32, ++/*238041*/ OPC_MoveChild5, ++/*238042*/ OPC_CheckInteger, 15, ++/*238044*/ OPC_CheckType, MVT::i32, ++/*238046*/ OPC_MoveParent, ++/*238047*/ OPC_MoveChild6, ++/*238048*/ OPC_CheckInteger, 15, ++/*238050*/ OPC_CheckType, MVT::i32, ++/*238052*/ OPC_MoveParent, ++/*238053*/ OPC_MoveChild7, ++/*238054*/ OPC_CheckInteger, 15, ++/*238056*/ OPC_CheckType, MVT::i32, ++/*238058*/ OPC_MoveParent, ++/*238059*/ OPC_MoveChild, 8, ++/*238061*/ OPC_CheckInteger, 15, ++/*238063*/ OPC_CheckType, MVT::i32, ++/*238065*/ OPC_MoveParent, ++/*238066*/ OPC_MoveChild, 9, ++/*238068*/ OPC_CheckInteger, 15, ++/*238070*/ OPC_CheckType, MVT::i32, ++/*238072*/ OPC_MoveParent, ++/*238073*/ OPC_MoveChild, 10, ++/*238075*/ OPC_CheckInteger, 15, ++/*238077*/ OPC_CheckType, MVT::i32, ++/*238079*/ OPC_MoveParent, ++/*238080*/ OPC_MoveChild, 11, ++/*238082*/ OPC_CheckInteger, 15, ++/*238084*/ OPC_CheckType, MVT::i32, ++/*238086*/ OPC_MoveParent, ++/*238087*/ OPC_MoveChild, 12, ++/*238089*/ OPC_CheckInteger, 15, ++/*238091*/ OPC_CheckType, MVT::i32, ++/*238093*/ OPC_MoveParent, ++/*238094*/ OPC_MoveChild, 13, ++/*238096*/ OPC_CheckInteger, 15, ++/*238098*/ OPC_CheckType, MVT::i32, ++/*238100*/ OPC_MoveParent, ++/*238101*/ OPC_MoveChild, 14, ++/*238103*/ OPC_CheckInteger, 15, ++/*238105*/ OPC_CheckType, MVT::i32, ++/*238107*/ OPC_MoveParent, ++/*238108*/ OPC_MoveChild, 15, ++/*238110*/ OPC_CheckInteger, 15, ++/*238112*/ OPC_CheckType, MVT::i32, ++/*238114*/ OPC_MoveParent, ++/*238115*/ OPC_CheckType, MVT::v16i16, ++/*238117*/ OPC_MoveParent, ++/*238118*/ OPC_MoveParent, ++/*238119*/ OPC_MoveParent, ++/*238120*/ OPC_MoveChild1, ++/*238121*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*238124*/ OPC_CheckChild0Integer, 1, ++/*238126*/ OPC_CheckChild0Type, MVT::i32, ++/*238128*/ OPC_CheckChild1Integer, 1, ++/*238130*/ OPC_CheckChild1Type, MVT::i32, ++/*238132*/ OPC_CheckChild2Integer, 1, ++/*238134*/ OPC_CheckChild2Type, MVT::i32, ++/*238136*/ OPC_CheckChild3Integer, 1, ++/*238138*/ OPC_CheckChild3Type, MVT::i32, ++/*238140*/ OPC_CheckChild4Integer, 1, ++/*238142*/ OPC_CheckChild4Type, MVT::i32, ++/*238144*/ OPC_MoveChild5, ++/*238145*/ OPC_CheckInteger, 1, ++/*238147*/ OPC_CheckType, MVT::i32, ++/*238149*/ OPC_MoveParent, ++/*238150*/ OPC_MoveChild6, ++/*238151*/ OPC_CheckInteger, 1, ++/*238153*/ OPC_CheckType, MVT::i32, ++/*238155*/ OPC_MoveParent, ++/*238156*/ OPC_MoveChild7, ++/*238157*/ OPC_CheckInteger, 1, ++/*238159*/ OPC_CheckType, MVT::i32, ++/*238161*/ OPC_MoveParent, ++/*238162*/ OPC_MoveChild, 8, ++/*238164*/ OPC_CheckInteger, 1, ++/*238166*/ OPC_CheckType, MVT::i32, ++/*238168*/ OPC_MoveParent, ++/*238169*/ OPC_MoveChild, 9, ++/*238171*/ OPC_CheckInteger, 1, ++/*238173*/ OPC_CheckType, MVT::i32, ++/*238175*/ OPC_MoveParent, ++/*238176*/ OPC_MoveChild, 10, ++/*238178*/ OPC_CheckInteger, 1, ++/*238180*/ OPC_CheckType, MVT::i32, ++/*238182*/ OPC_MoveParent, ++/*238183*/ OPC_MoveChild, 11, ++/*238185*/ OPC_CheckInteger, 1, ++/*238187*/ OPC_CheckType, MVT::i32, ++/*238189*/ OPC_MoveParent, ++/*238190*/ OPC_MoveChild, 12, ++/*238192*/ OPC_CheckInteger, 1, ++/*238194*/ OPC_CheckType, MVT::i32, ++/*238196*/ OPC_MoveParent, ++/*238197*/ OPC_MoveChild, 13, ++/*238199*/ OPC_CheckInteger, 1, ++/*238201*/ OPC_CheckType, MVT::i32, ++/*238203*/ OPC_MoveParent, ++/*238204*/ OPC_MoveChild, 14, ++/*238206*/ OPC_CheckInteger, 1, ++/*238208*/ OPC_CheckType, MVT::i32, ++/*238210*/ OPC_MoveParent, ++/*238211*/ OPC_MoveChild, 15, ++/*238213*/ OPC_CheckInteger, 1, ++/*238215*/ OPC_CheckType, MVT::i32, ++/*238217*/ OPC_MoveParent, ++/*238218*/ OPC_CheckType, MVT::v16i16, ++/*238220*/ OPC_MoveParent, ++/*238221*/ OPC_CheckType, MVT::v16i16, ++/*238223*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*238225*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$a), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*238233*/ 0, /*End of Scope*/ ++/*238234*/ 0, /*End of Scope*/ ++/*238235*/ /*Scope*/ 43|128,60/*7723*/, /*->245960*/ ++/*238237*/ OPC_RecordChild1, // #1 = $b ++/*238238*/ OPC_MoveParent, ++/*238239*/ OPC_MoveChild1, ++/*238240*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*238243*/ OPC_CheckChild0Integer, 1, ++/*238245*/ OPC_CheckChild0Type, MVT::i32, ++/*238247*/ OPC_CheckChild1Integer, 1, ++/*238249*/ OPC_CheckChild1Type, MVT::i32, ++/*238251*/ OPC_CheckChild2Integer, 1, ++/*238253*/ OPC_CheckChild2Type, MVT::i32, ++/*238255*/ OPC_CheckChild3Integer, 1, ++/*238257*/ OPC_CheckChild3Type, MVT::i32, ++/*238259*/ OPC_CheckChild4Integer, 1, ++/*238261*/ OPC_CheckChild4Type, MVT::i32, ++/*238263*/ OPC_MoveChild5, ++/*238264*/ OPC_CheckInteger, 1, ++/*238266*/ OPC_CheckType, MVT::i32, ++/*238268*/ OPC_MoveParent, ++/*238269*/ OPC_MoveChild6, ++/*238270*/ OPC_CheckInteger, 1, ++/*238272*/ OPC_CheckType, MVT::i32, ++/*238274*/ OPC_MoveParent, ++/*238275*/ OPC_MoveChild7, ++/*238276*/ OPC_CheckInteger, 1, ++/*238278*/ OPC_CheckType, MVT::i32, ++/*238280*/ OPC_MoveParent, ++/*238281*/ OPC_MoveChild, 8, ++/*238283*/ OPC_CheckInteger, 1, ++/*238285*/ OPC_CheckType, MVT::i32, ++/*238287*/ OPC_MoveParent, ++/*238288*/ OPC_MoveChild, 9, ++/*238290*/ OPC_CheckInteger, 1, ++/*238292*/ OPC_CheckType, MVT::i32, ++/*238294*/ OPC_MoveParent, ++/*238295*/ OPC_MoveChild, 10, ++/*238297*/ OPC_CheckInteger, 1, ++/*238299*/ OPC_CheckType, MVT::i32, ++/*238301*/ OPC_MoveParent, ++/*238302*/ OPC_MoveChild, 11, ++/*238304*/ OPC_CheckInteger, 1, ++/*238306*/ OPC_CheckType, MVT::i32, ++/*238308*/ OPC_MoveParent, ++/*238309*/ OPC_MoveChild, 12, ++/*238311*/ OPC_CheckInteger, 1, ++/*238313*/ OPC_CheckType, MVT::i32, ++/*238315*/ OPC_MoveParent, ++/*238316*/ OPC_MoveChild, 13, ++/*238318*/ OPC_CheckInteger, 1, ++/*238320*/ OPC_CheckType, MVT::i32, ++/*238322*/ OPC_MoveParent, ++/*238323*/ OPC_MoveChild, 14, ++/*238325*/ OPC_CheckInteger, 1, ++/*238327*/ OPC_CheckType, MVT::i32, ++/*238329*/ OPC_MoveParent, ++/*238330*/ OPC_MoveChild, 15, ++/*238332*/ OPC_CheckInteger, 1, ++/*238334*/ OPC_CheckType, MVT::i32, ++/*238336*/ OPC_MoveParent, ++/*238337*/ OPC_MoveParent, ++/*238338*/ OPC_MoveParent, ++/*238339*/ OPC_MoveChild1, ++/*238340*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*238343*/ OPC_MoveChild0, ++/*238344*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*238347*/ OPC_Scope, 24|128,15/*1944*/, /*->240294*/ // 7 children in Scope ++/*238350*/ OPC_MoveChild0, ++/*238351*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*238354*/ OPC_Scope, 65|128,2/*321*/, /*->238678*/ // 6 children in Scope ++/*238357*/ OPC_MoveChild0, ++/*238358*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*238361*/ OPC_CheckChild0Integer, 1, ++/*238363*/ OPC_CheckChild0Type, MVT::i32, ++/*238365*/ OPC_CheckChild1Integer, 1, ++/*238367*/ OPC_CheckChild1Type, MVT::i32, ++/*238369*/ OPC_CheckChild2Integer, 1, ++/*238371*/ OPC_CheckChild2Type, MVT::i32, ++/*238373*/ OPC_CheckChild3Integer, 1, ++/*238375*/ OPC_CheckChild3Type, MVT::i32, ++/*238377*/ OPC_CheckChild4Integer, 1, ++/*238379*/ OPC_CheckChild4Type, MVT::i32, ++/*238381*/ OPC_MoveChild5, ++/*238382*/ OPC_CheckInteger, 1, ++/*238384*/ OPC_CheckType, MVT::i32, ++/*238386*/ OPC_MoveParent, ++/*238387*/ OPC_MoveChild6, ++/*238388*/ OPC_CheckInteger, 1, ++/*238390*/ OPC_CheckType, MVT::i32, ++/*238392*/ OPC_MoveParent, ++/*238393*/ OPC_MoveChild7, ++/*238394*/ OPC_CheckInteger, 1, ++/*238396*/ OPC_CheckType, MVT::i32, ++/*238398*/ OPC_MoveParent, ++/*238399*/ OPC_MoveChild, 8, ++/*238401*/ OPC_CheckInteger, 1, ++/*238403*/ OPC_CheckType, MVT::i32, ++/*238405*/ OPC_MoveParent, ++/*238406*/ OPC_MoveChild, 9, ++/*238408*/ OPC_CheckInteger, 1, ++/*238410*/ OPC_CheckType, MVT::i32, ++/*238412*/ OPC_MoveParent, ++/*238413*/ OPC_MoveChild, 10, ++/*238415*/ OPC_CheckInteger, 1, ++/*238417*/ OPC_CheckType, MVT::i32, ++/*238419*/ OPC_MoveParent, ++/*238420*/ OPC_MoveChild, 11, ++/*238422*/ OPC_CheckInteger, 1, ++/*238424*/ OPC_CheckType, MVT::i32, ++/*238426*/ OPC_MoveParent, ++/*238427*/ OPC_MoveChild, 12, ++/*238429*/ OPC_CheckInteger, 1, ++/*238431*/ OPC_CheckType, MVT::i32, ++/*238433*/ OPC_MoveParent, ++/*238434*/ OPC_MoveChild, 13, ++/*238436*/ OPC_CheckInteger, 1, ++/*238438*/ OPC_CheckType, MVT::i32, ++/*238440*/ OPC_MoveParent, ++/*238441*/ OPC_MoveChild, 14, ++/*238443*/ OPC_CheckInteger, 1, ++/*238445*/ OPC_CheckType, MVT::i32, ++/*238447*/ OPC_MoveParent, ++/*238448*/ OPC_MoveChild, 15, ++/*238450*/ OPC_CheckInteger, 1, ++/*238452*/ OPC_CheckType, MVT::i32, ++/*238454*/ OPC_MoveParent, ++/*238455*/ OPC_MoveParent, ++/*238456*/ OPC_CheckChild1Same, 0, ++/*238458*/ OPC_MoveParent, ++/*238459*/ OPC_CheckChild1Same, 1, ++/*238461*/ OPC_MoveParent, ++/*238462*/ OPC_MoveChild1, ++/*238463*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*238466*/ OPC_CheckChild0Integer, 15, ++/*238468*/ OPC_CheckChild0Type, MVT::i32, ++/*238470*/ OPC_CheckChild1Integer, 15, ++/*238472*/ OPC_CheckChild1Type, MVT::i32, ++/*238474*/ OPC_CheckChild2Integer, 15, ++/*238476*/ OPC_CheckChild2Type, MVT::i32, ++/*238478*/ OPC_CheckChild3Integer, 15, ++/*238480*/ OPC_CheckChild3Type, MVT::i32, ++/*238482*/ OPC_CheckChild4Integer, 15, ++/*238484*/ OPC_CheckChild4Type, MVT::i32, ++/*238486*/ OPC_MoveChild5, ++/*238487*/ OPC_CheckInteger, 15, ++/*238489*/ OPC_CheckType, MVT::i32, ++/*238491*/ OPC_MoveParent, ++/*238492*/ OPC_MoveChild6, ++/*238493*/ OPC_CheckInteger, 15, ++/*238495*/ OPC_CheckType, MVT::i32, ++/*238497*/ OPC_MoveParent, ++/*238498*/ OPC_MoveChild7, ++/*238499*/ OPC_CheckInteger, 15, ++/*238501*/ OPC_CheckType, MVT::i32, ++/*238503*/ OPC_MoveParent, ++/*238504*/ OPC_MoveChild, 8, ++/*238506*/ OPC_CheckInteger, 15, ++/*238508*/ OPC_CheckType, MVT::i32, ++/*238510*/ OPC_MoveParent, ++/*238511*/ OPC_MoveChild, 9, ++/*238513*/ OPC_CheckInteger, 15, ++/*238515*/ OPC_CheckType, MVT::i32, ++/*238517*/ OPC_MoveParent, ++/*238518*/ OPC_MoveChild, 10, ++/*238520*/ OPC_CheckInteger, 15, ++/*238522*/ OPC_CheckType, MVT::i32, ++/*238524*/ OPC_MoveParent, ++/*238525*/ OPC_MoveChild, 11, ++/*238527*/ OPC_CheckInteger, 15, ++/*238529*/ OPC_CheckType, MVT::i32, ++/*238531*/ OPC_MoveParent, ++/*238532*/ OPC_MoveChild, 12, ++/*238534*/ OPC_CheckInteger, 15, ++/*238536*/ OPC_CheckType, MVT::i32, ++/*238538*/ OPC_MoveParent, ++/*238539*/ OPC_MoveChild, 13, ++/*238541*/ OPC_CheckInteger, 15, ++/*238543*/ OPC_CheckType, MVT::i32, ++/*238545*/ OPC_MoveParent, ++/*238546*/ OPC_MoveChild, 14, ++/*238548*/ OPC_CheckInteger, 15, ++/*238550*/ OPC_CheckType, MVT::i32, ++/*238552*/ OPC_MoveParent, ++/*238553*/ OPC_MoveChild, 15, ++/*238555*/ OPC_CheckInteger, 15, ++/*238557*/ OPC_CheckType, MVT::i32, ++/*238559*/ OPC_MoveParent, ++/*238560*/ OPC_CheckType, MVT::v16i16, ++/*238562*/ OPC_MoveParent, ++/*238563*/ OPC_MoveParent, ++/*238564*/ OPC_MoveParent, ++/*238565*/ OPC_MoveChild1, ++/*238566*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*238569*/ OPC_CheckChild0Integer, 1, ++/*238571*/ OPC_CheckChild0Type, MVT::i32, ++/*238573*/ OPC_CheckChild1Integer, 1, ++/*238575*/ OPC_CheckChild1Type, MVT::i32, ++/*238577*/ OPC_CheckChild2Integer, 1, ++/*238579*/ OPC_CheckChild2Type, MVT::i32, ++/*238581*/ OPC_CheckChild3Integer, 1, ++/*238583*/ OPC_CheckChild3Type, MVT::i32, ++/*238585*/ OPC_CheckChild4Integer, 1, ++/*238587*/ OPC_CheckChild4Type, MVT::i32, ++/*238589*/ OPC_MoveChild5, ++/*238590*/ OPC_CheckInteger, 1, ++/*238592*/ OPC_CheckType, MVT::i32, ++/*238594*/ OPC_MoveParent, ++/*238595*/ OPC_MoveChild6, ++/*238596*/ OPC_CheckInteger, 1, ++/*238598*/ OPC_CheckType, MVT::i32, ++/*238600*/ OPC_MoveParent, ++/*238601*/ OPC_MoveChild7, ++/*238602*/ OPC_CheckInteger, 1, ++/*238604*/ OPC_CheckType, MVT::i32, ++/*238606*/ OPC_MoveParent, ++/*238607*/ OPC_MoveChild, 8, ++/*238609*/ OPC_CheckInteger, 1, ++/*238611*/ OPC_CheckType, MVT::i32, ++/*238613*/ OPC_MoveParent, ++/*238614*/ OPC_MoveChild, 9, ++/*238616*/ OPC_CheckInteger, 1, ++/*238618*/ OPC_CheckType, MVT::i32, ++/*238620*/ OPC_MoveParent, ++/*238621*/ OPC_MoveChild, 10, ++/*238623*/ OPC_CheckInteger, 1, ++/*238625*/ OPC_CheckType, MVT::i32, ++/*238627*/ OPC_MoveParent, ++/*238628*/ OPC_MoveChild, 11, ++/*238630*/ OPC_CheckInteger, 1, ++/*238632*/ OPC_CheckType, MVT::i32, ++/*238634*/ OPC_MoveParent, ++/*238635*/ OPC_MoveChild, 12, ++/*238637*/ OPC_CheckInteger, 1, ++/*238639*/ OPC_CheckType, MVT::i32, ++/*238641*/ OPC_MoveParent, ++/*238642*/ OPC_MoveChild, 13, ++/*238644*/ OPC_CheckInteger, 1, ++/*238646*/ OPC_CheckType, MVT::i32, ++/*238648*/ OPC_MoveParent, ++/*238649*/ OPC_MoveChild, 14, ++/*238651*/ OPC_CheckInteger, 1, ++/*238653*/ OPC_CheckType, MVT::i32, ++/*238655*/ OPC_MoveParent, ++/*238656*/ OPC_MoveChild, 15, ++/*238658*/ OPC_CheckInteger, 1, ++/*238660*/ OPC_CheckType, MVT::i32, ++/*238662*/ OPC_MoveParent, ++/*238663*/ OPC_CheckType, MVT::v16i16, ++/*238665*/ OPC_MoveParent, ++/*238666*/ OPC_CheckType, MVT::v16i16, ++/*238668*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*238670*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a), LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*238678*/ /*Scope*/ 65|128,2/*321*/, /*->239001*/ ++/*238680*/ OPC_CheckChild0Same, 0, ++/*238682*/ OPC_MoveChild1, ++/*238683*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*238686*/ OPC_CheckChild0Integer, 1, ++/*238688*/ OPC_CheckChild0Type, MVT::i32, ++/*238690*/ OPC_CheckChild1Integer, 1, ++/*238692*/ OPC_CheckChild1Type, MVT::i32, ++/*238694*/ OPC_CheckChild2Integer, 1, ++/*238696*/ OPC_CheckChild2Type, MVT::i32, ++/*238698*/ OPC_CheckChild3Integer, 1, ++/*238700*/ OPC_CheckChild3Type, MVT::i32, ++/*238702*/ OPC_CheckChild4Integer, 1, ++/*238704*/ OPC_CheckChild4Type, MVT::i32, ++/*238706*/ OPC_MoveChild5, ++/*238707*/ OPC_CheckInteger, 1, ++/*238709*/ OPC_CheckType, MVT::i32, ++/*238711*/ OPC_MoveParent, ++/*238712*/ OPC_MoveChild6, ++/*238713*/ OPC_CheckInteger, 1, ++/*238715*/ OPC_CheckType, MVT::i32, ++/*238717*/ OPC_MoveParent, ++/*238718*/ OPC_MoveChild7, ++/*238719*/ OPC_CheckInteger, 1, ++/*238721*/ OPC_CheckType, MVT::i32, ++/*238723*/ OPC_MoveParent, ++/*238724*/ OPC_MoveChild, 8, ++/*238726*/ OPC_CheckInteger, 1, ++/*238728*/ OPC_CheckType, MVT::i32, ++/*238730*/ OPC_MoveParent, ++/*238731*/ OPC_MoveChild, 9, ++/*238733*/ OPC_CheckInteger, 1, ++/*238735*/ OPC_CheckType, MVT::i32, ++/*238737*/ OPC_MoveParent, ++/*238738*/ OPC_MoveChild, 10, ++/*238740*/ OPC_CheckInteger, 1, ++/*238742*/ OPC_CheckType, MVT::i32, ++/*238744*/ OPC_MoveParent, ++/*238745*/ OPC_MoveChild, 11, ++/*238747*/ OPC_CheckInteger, 1, ++/*238749*/ OPC_CheckType, MVT::i32, ++/*238751*/ OPC_MoveParent, ++/*238752*/ OPC_MoveChild, 12, ++/*238754*/ OPC_CheckInteger, 1, ++/*238756*/ OPC_CheckType, MVT::i32, ++/*238758*/ OPC_MoveParent, ++/*238759*/ OPC_MoveChild, 13, ++/*238761*/ OPC_CheckInteger, 1, ++/*238763*/ OPC_CheckType, MVT::i32, ++/*238765*/ OPC_MoveParent, ++/*238766*/ OPC_MoveChild, 14, ++/*238768*/ OPC_CheckInteger, 1, ++/*238770*/ OPC_CheckType, MVT::i32, ++/*238772*/ OPC_MoveParent, ++/*238773*/ OPC_MoveChild, 15, ++/*238775*/ OPC_CheckInteger, 1, ++/*238777*/ OPC_CheckType, MVT::i32, ++/*238779*/ OPC_MoveParent, ++/*238780*/ OPC_MoveParent, ++/*238781*/ OPC_MoveParent, ++/*238782*/ OPC_CheckChild1Same, 1, ++/*238784*/ OPC_MoveParent, ++/*238785*/ OPC_MoveChild1, ++/*238786*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*238789*/ OPC_CheckChild0Integer, 15, ++/*238791*/ OPC_CheckChild0Type, MVT::i32, ++/*238793*/ OPC_CheckChild1Integer, 15, ++/*238795*/ OPC_CheckChild1Type, MVT::i32, ++/*238797*/ OPC_CheckChild2Integer, 15, ++/*238799*/ OPC_CheckChild2Type, MVT::i32, ++/*238801*/ OPC_CheckChild3Integer, 15, ++/*238803*/ OPC_CheckChild3Type, MVT::i32, ++/*238805*/ OPC_CheckChild4Integer, 15, ++/*238807*/ OPC_CheckChild4Type, MVT::i32, ++/*238809*/ OPC_MoveChild5, ++/*238810*/ OPC_CheckInteger, 15, ++/*238812*/ OPC_CheckType, MVT::i32, ++/*238814*/ OPC_MoveParent, ++/*238815*/ OPC_MoveChild6, ++/*238816*/ OPC_CheckInteger, 15, ++/*238818*/ OPC_CheckType, MVT::i32, ++/*238820*/ OPC_MoveParent, ++/*238821*/ OPC_MoveChild7, ++/*238822*/ OPC_CheckInteger, 15, ++/*238824*/ OPC_CheckType, MVT::i32, ++/*238826*/ OPC_MoveParent, ++/*238827*/ OPC_MoveChild, 8, ++/*238829*/ OPC_CheckInteger, 15, ++/*238831*/ OPC_CheckType, MVT::i32, ++/*238833*/ OPC_MoveParent, ++/*238834*/ OPC_MoveChild, 9, ++/*238836*/ OPC_CheckInteger, 15, ++/*238838*/ OPC_CheckType, MVT::i32, ++/*238840*/ OPC_MoveParent, ++/*238841*/ OPC_MoveChild, 10, ++/*238843*/ OPC_CheckInteger, 15, ++/*238845*/ OPC_CheckType, MVT::i32, ++/*238847*/ OPC_MoveParent, ++/*238848*/ OPC_MoveChild, 11, ++/*238850*/ OPC_CheckInteger, 15, ++/*238852*/ OPC_CheckType, MVT::i32, ++/*238854*/ OPC_MoveParent, ++/*238855*/ OPC_MoveChild, 12, ++/*238857*/ OPC_CheckInteger, 15, ++/*238859*/ OPC_CheckType, MVT::i32, ++/*238861*/ OPC_MoveParent, ++/*238862*/ OPC_MoveChild, 13, ++/*238864*/ OPC_CheckInteger, 15, ++/*238866*/ OPC_CheckType, MVT::i32, ++/*238868*/ OPC_MoveParent, ++/*238869*/ OPC_MoveChild, 14, ++/*238871*/ OPC_CheckInteger, 15, ++/*238873*/ OPC_CheckType, MVT::i32, ++/*238875*/ OPC_MoveParent, ++/*238876*/ OPC_MoveChild, 15, ++/*238878*/ OPC_CheckInteger, 15, ++/*238880*/ OPC_CheckType, MVT::i32, ++/*238882*/ OPC_MoveParent, ++/*238883*/ OPC_CheckType, MVT::v16i16, ++/*238885*/ OPC_MoveParent, ++/*238886*/ OPC_MoveParent, ++/*238887*/ OPC_MoveParent, ++/*238888*/ OPC_MoveChild1, ++/*238889*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*238892*/ OPC_CheckChild0Integer, 1, ++/*238894*/ OPC_CheckChild0Type, MVT::i32, ++/*238896*/ OPC_CheckChild1Integer, 1, ++/*238898*/ OPC_CheckChild1Type, MVT::i32, ++/*238900*/ OPC_CheckChild2Integer, 1, ++/*238902*/ OPC_CheckChild2Type, MVT::i32, ++/*238904*/ OPC_CheckChild3Integer, 1, ++/*238906*/ OPC_CheckChild3Type, MVT::i32, ++/*238908*/ OPC_CheckChild4Integer, 1, ++/*238910*/ OPC_CheckChild4Type, MVT::i32, ++/*238912*/ OPC_MoveChild5, ++/*238913*/ OPC_CheckInteger, 1, ++/*238915*/ OPC_CheckType, MVT::i32, ++/*238917*/ OPC_MoveParent, ++/*238918*/ OPC_MoveChild6, ++/*238919*/ OPC_CheckInteger, 1, ++/*238921*/ OPC_CheckType, MVT::i32, ++/*238923*/ OPC_MoveParent, ++/*238924*/ OPC_MoveChild7, ++/*238925*/ OPC_CheckInteger, 1, ++/*238927*/ OPC_CheckType, MVT::i32, ++/*238929*/ OPC_MoveParent, ++/*238930*/ OPC_MoveChild, 8, ++/*238932*/ OPC_CheckInteger, 1, ++/*238934*/ OPC_CheckType, MVT::i32, ++/*238936*/ OPC_MoveParent, ++/*238937*/ OPC_MoveChild, 9, ++/*238939*/ OPC_CheckInteger, 1, ++/*238941*/ OPC_CheckType, MVT::i32, ++/*238943*/ OPC_MoveParent, ++/*238944*/ OPC_MoveChild, 10, ++/*238946*/ OPC_CheckInteger, 1, ++/*238948*/ OPC_CheckType, MVT::i32, ++/*238950*/ OPC_MoveParent, ++/*238951*/ OPC_MoveChild, 11, ++/*238953*/ OPC_CheckInteger, 1, ++/*238955*/ OPC_CheckType, MVT::i32, ++/*238957*/ OPC_MoveParent, ++/*238958*/ OPC_MoveChild, 12, ++/*238960*/ OPC_CheckInteger, 1, ++/*238962*/ OPC_CheckType, MVT::i32, ++/*238964*/ OPC_MoveParent, ++/*238965*/ OPC_MoveChild, 13, ++/*238967*/ OPC_CheckInteger, 1, ++/*238969*/ OPC_CheckType, MVT::i32, ++/*238971*/ OPC_MoveParent, ++/*238972*/ OPC_MoveChild, 14, ++/*238974*/ OPC_CheckInteger, 1, ++/*238976*/ OPC_CheckType, MVT::i32, ++/*238978*/ OPC_MoveParent, ++/*238979*/ OPC_MoveChild, 15, ++/*238981*/ OPC_CheckInteger, 1, ++/*238983*/ OPC_CheckType, MVT::i32, ++/*238985*/ OPC_MoveParent, ++/*238986*/ OPC_CheckType, MVT::v16i16, ++/*238988*/ OPC_MoveParent, ++/*238989*/ OPC_CheckType, MVT::v16i16, ++/*238991*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*238993*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*239001*/ /*Scope*/ 65|128,2/*321*/, /*->239324*/ ++/*239003*/ OPC_MoveChild0, ++/*239004*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*239007*/ OPC_CheckChild0Integer, 1, ++/*239009*/ OPC_CheckChild0Type, MVT::i32, ++/*239011*/ OPC_CheckChild1Integer, 1, ++/*239013*/ OPC_CheckChild1Type, MVT::i32, ++/*239015*/ OPC_CheckChild2Integer, 1, ++/*239017*/ OPC_CheckChild2Type, MVT::i32, ++/*239019*/ OPC_CheckChild3Integer, 1, ++/*239021*/ OPC_CheckChild3Type, MVT::i32, ++/*239023*/ OPC_CheckChild4Integer, 1, ++/*239025*/ OPC_CheckChild4Type, MVT::i32, ++/*239027*/ OPC_MoveChild5, ++/*239028*/ OPC_CheckInteger, 1, ++/*239030*/ OPC_CheckType, MVT::i32, ++/*239032*/ OPC_MoveParent, ++/*239033*/ OPC_MoveChild6, ++/*239034*/ OPC_CheckInteger, 1, ++/*239036*/ OPC_CheckType, MVT::i32, ++/*239038*/ OPC_MoveParent, ++/*239039*/ OPC_MoveChild7, ++/*239040*/ OPC_CheckInteger, 1, ++/*239042*/ OPC_CheckType, MVT::i32, ++/*239044*/ OPC_MoveParent, ++/*239045*/ OPC_MoveChild, 8, ++/*239047*/ OPC_CheckInteger, 1, ++/*239049*/ OPC_CheckType, MVT::i32, ++/*239051*/ OPC_MoveParent, ++/*239052*/ OPC_MoveChild, 9, ++/*239054*/ OPC_CheckInteger, 1, ++/*239056*/ OPC_CheckType, MVT::i32, ++/*239058*/ OPC_MoveParent, ++/*239059*/ OPC_MoveChild, 10, ++/*239061*/ OPC_CheckInteger, 1, ++/*239063*/ OPC_CheckType, MVT::i32, ++/*239065*/ OPC_MoveParent, ++/*239066*/ OPC_MoveChild, 11, ++/*239068*/ OPC_CheckInteger, 1, ++/*239070*/ OPC_CheckType, MVT::i32, ++/*239072*/ OPC_MoveParent, ++/*239073*/ OPC_MoveChild, 12, ++/*239075*/ OPC_CheckInteger, 1, ++/*239077*/ OPC_CheckType, MVT::i32, ++/*239079*/ OPC_MoveParent, ++/*239080*/ OPC_MoveChild, 13, ++/*239082*/ OPC_CheckInteger, 1, ++/*239084*/ OPC_CheckType, MVT::i32, ++/*239086*/ OPC_MoveParent, ++/*239087*/ OPC_MoveChild, 14, ++/*239089*/ OPC_CheckInteger, 1, ++/*239091*/ OPC_CheckType, MVT::i32, ++/*239093*/ OPC_MoveParent, ++/*239094*/ OPC_MoveChild, 15, ++/*239096*/ OPC_CheckInteger, 1, ++/*239098*/ OPC_CheckType, MVT::i32, ++/*239100*/ OPC_MoveParent, ++/*239101*/ OPC_MoveParent, ++/*239102*/ OPC_CheckChild1Same, 1, ++/*239104*/ OPC_MoveParent, ++/*239105*/ OPC_CheckChild1Same, 0, ++/*239107*/ OPC_MoveParent, ++/*239108*/ OPC_MoveChild1, ++/*239109*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*239112*/ OPC_CheckChild0Integer, 15, ++/*239114*/ OPC_CheckChild0Type, MVT::i32, ++/*239116*/ OPC_CheckChild1Integer, 15, ++/*239118*/ OPC_CheckChild1Type, MVT::i32, ++/*239120*/ OPC_CheckChild2Integer, 15, ++/*239122*/ OPC_CheckChild2Type, MVT::i32, ++/*239124*/ OPC_CheckChild3Integer, 15, ++/*239126*/ OPC_CheckChild3Type, MVT::i32, ++/*239128*/ OPC_CheckChild4Integer, 15, ++/*239130*/ OPC_CheckChild4Type, MVT::i32, ++/*239132*/ OPC_MoveChild5, ++/*239133*/ OPC_CheckInteger, 15, ++/*239135*/ OPC_CheckType, MVT::i32, ++/*239137*/ OPC_MoveParent, ++/*239138*/ OPC_MoveChild6, ++/*239139*/ OPC_CheckInteger, 15, ++/*239141*/ OPC_CheckType, MVT::i32, ++/*239143*/ OPC_MoveParent, ++/*239144*/ OPC_MoveChild7, ++/*239145*/ OPC_CheckInteger, 15, ++/*239147*/ OPC_CheckType, MVT::i32, ++/*239149*/ OPC_MoveParent, ++/*239150*/ OPC_MoveChild, 8, ++/*239152*/ OPC_CheckInteger, 15, ++/*239154*/ OPC_CheckType, MVT::i32, ++/*239156*/ OPC_MoveParent, ++/*239157*/ OPC_MoveChild, 9, ++/*239159*/ OPC_CheckInteger, 15, ++/*239161*/ OPC_CheckType, MVT::i32, ++/*239163*/ OPC_MoveParent, ++/*239164*/ OPC_MoveChild, 10, ++/*239166*/ OPC_CheckInteger, 15, ++/*239168*/ OPC_CheckType, MVT::i32, ++/*239170*/ OPC_MoveParent, ++/*239171*/ OPC_MoveChild, 11, ++/*239173*/ OPC_CheckInteger, 15, ++/*239175*/ OPC_CheckType, MVT::i32, ++/*239177*/ OPC_MoveParent, ++/*239178*/ OPC_MoveChild, 12, ++/*239180*/ OPC_CheckInteger, 15, ++/*239182*/ OPC_CheckType, MVT::i32, ++/*239184*/ OPC_MoveParent, ++/*239185*/ OPC_MoveChild, 13, ++/*239187*/ OPC_CheckInteger, 15, ++/*239189*/ OPC_CheckType, MVT::i32, ++/*239191*/ OPC_MoveParent, ++/*239192*/ OPC_MoveChild, 14, ++/*239194*/ OPC_CheckInteger, 15, ++/*239196*/ OPC_CheckType, MVT::i32, ++/*239198*/ OPC_MoveParent, ++/*239199*/ OPC_MoveChild, 15, ++/*239201*/ OPC_CheckInteger, 15, ++/*239203*/ OPC_CheckType, MVT::i32, ++/*239205*/ OPC_MoveParent, ++/*239206*/ OPC_CheckType, MVT::v16i16, ++/*239208*/ OPC_MoveParent, ++/*239209*/ OPC_MoveParent, ++/*239210*/ OPC_MoveParent, ++/*239211*/ OPC_MoveChild1, ++/*239212*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*239215*/ OPC_CheckChild0Integer, 1, ++/*239217*/ OPC_CheckChild0Type, MVT::i32, ++/*239219*/ OPC_CheckChild1Integer, 1, ++/*239221*/ OPC_CheckChild1Type, MVT::i32, ++/*239223*/ OPC_CheckChild2Integer, 1, ++/*239225*/ OPC_CheckChild2Type, MVT::i32, ++/*239227*/ OPC_CheckChild3Integer, 1, ++/*239229*/ OPC_CheckChild3Type, MVT::i32, ++/*239231*/ OPC_CheckChild4Integer, 1, ++/*239233*/ OPC_CheckChild4Type, MVT::i32, ++/*239235*/ OPC_MoveChild5, ++/*239236*/ OPC_CheckInteger, 1, ++/*239238*/ OPC_CheckType, MVT::i32, ++/*239240*/ OPC_MoveParent, ++/*239241*/ OPC_MoveChild6, ++/*239242*/ OPC_CheckInteger, 1, ++/*239244*/ OPC_CheckType, MVT::i32, ++/*239246*/ OPC_MoveParent, ++/*239247*/ OPC_MoveChild7, ++/*239248*/ OPC_CheckInteger, 1, ++/*239250*/ OPC_CheckType, MVT::i32, ++/*239252*/ OPC_MoveParent, ++/*239253*/ OPC_MoveChild, 8, ++/*239255*/ OPC_CheckInteger, 1, ++/*239257*/ OPC_CheckType, MVT::i32, ++/*239259*/ OPC_MoveParent, ++/*239260*/ OPC_MoveChild, 9, ++/*239262*/ OPC_CheckInteger, 1, ++/*239264*/ OPC_CheckType, MVT::i32, ++/*239266*/ OPC_MoveParent, ++/*239267*/ OPC_MoveChild, 10, ++/*239269*/ OPC_CheckInteger, 1, ++/*239271*/ OPC_CheckType, MVT::i32, ++/*239273*/ OPC_MoveParent, ++/*239274*/ OPC_MoveChild, 11, ++/*239276*/ OPC_CheckInteger, 1, ++/*239278*/ OPC_CheckType, MVT::i32, ++/*239280*/ OPC_MoveParent, ++/*239281*/ OPC_MoveChild, 12, ++/*239283*/ OPC_CheckInteger, 1, ++/*239285*/ OPC_CheckType, MVT::i32, ++/*239287*/ OPC_MoveParent, ++/*239288*/ OPC_MoveChild, 13, ++/*239290*/ OPC_CheckInteger, 1, ++/*239292*/ OPC_CheckType, MVT::i32, ++/*239294*/ OPC_MoveParent, ++/*239295*/ OPC_MoveChild, 14, ++/*239297*/ OPC_CheckInteger, 1, ++/*239299*/ OPC_CheckType, MVT::i32, ++/*239301*/ OPC_MoveParent, ++/*239302*/ OPC_MoveChild, 15, ++/*239304*/ OPC_CheckInteger, 1, ++/*239306*/ OPC_CheckType, MVT::i32, ++/*239308*/ OPC_MoveParent, ++/*239309*/ OPC_CheckType, MVT::v16i16, ++/*239311*/ OPC_MoveParent, ++/*239312*/ OPC_CheckType, MVT::v16i16, ++/*239314*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*239316*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b), LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*239324*/ /*Scope*/ 65|128,2/*321*/, /*->239647*/ ++/*239326*/ OPC_CheckChild0Same, 1, ++/*239328*/ OPC_MoveChild1, ++/*239329*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*239332*/ OPC_CheckChild0Integer, 1, ++/*239334*/ OPC_CheckChild0Type, MVT::i32, ++/*239336*/ OPC_CheckChild1Integer, 1, ++/*239338*/ OPC_CheckChild1Type, MVT::i32, ++/*239340*/ OPC_CheckChild2Integer, 1, ++/*239342*/ OPC_CheckChild2Type, MVT::i32, ++/*239344*/ OPC_CheckChild3Integer, 1, ++/*239346*/ OPC_CheckChild3Type, MVT::i32, ++/*239348*/ OPC_CheckChild4Integer, 1, ++/*239350*/ OPC_CheckChild4Type, MVT::i32, ++/*239352*/ OPC_MoveChild5, ++/*239353*/ OPC_CheckInteger, 1, ++/*239355*/ OPC_CheckType, MVT::i32, ++/*239357*/ OPC_MoveParent, ++/*239358*/ OPC_MoveChild6, ++/*239359*/ OPC_CheckInteger, 1, ++/*239361*/ OPC_CheckType, MVT::i32, ++/*239363*/ OPC_MoveParent, ++/*239364*/ OPC_MoveChild7, ++/*239365*/ OPC_CheckInteger, 1, ++/*239367*/ OPC_CheckType, MVT::i32, ++/*239369*/ OPC_MoveParent, ++/*239370*/ OPC_MoveChild, 8, ++/*239372*/ OPC_CheckInteger, 1, ++/*239374*/ OPC_CheckType, MVT::i32, ++/*239376*/ OPC_MoveParent, ++/*239377*/ OPC_MoveChild, 9, ++/*239379*/ OPC_CheckInteger, 1, ++/*239381*/ OPC_CheckType, MVT::i32, ++/*239383*/ OPC_MoveParent, ++/*239384*/ OPC_MoveChild, 10, ++/*239386*/ OPC_CheckInteger, 1, ++/*239388*/ OPC_CheckType, MVT::i32, ++/*239390*/ OPC_MoveParent, ++/*239391*/ OPC_MoveChild, 11, ++/*239393*/ OPC_CheckInteger, 1, ++/*239395*/ OPC_CheckType, MVT::i32, ++/*239397*/ OPC_MoveParent, ++/*239398*/ OPC_MoveChild, 12, ++/*239400*/ OPC_CheckInteger, 1, ++/*239402*/ OPC_CheckType, MVT::i32, ++/*239404*/ OPC_MoveParent, ++/*239405*/ OPC_MoveChild, 13, ++/*239407*/ OPC_CheckInteger, 1, ++/*239409*/ OPC_CheckType, MVT::i32, ++/*239411*/ OPC_MoveParent, ++/*239412*/ OPC_MoveChild, 14, ++/*239414*/ OPC_CheckInteger, 1, ++/*239416*/ OPC_CheckType, MVT::i32, ++/*239418*/ OPC_MoveParent, ++/*239419*/ OPC_MoveChild, 15, ++/*239421*/ OPC_CheckInteger, 1, ++/*239423*/ OPC_CheckType, MVT::i32, ++/*239425*/ OPC_MoveParent, ++/*239426*/ OPC_MoveParent, ++/*239427*/ OPC_MoveParent, ++/*239428*/ OPC_CheckChild1Same, 0, ++/*239430*/ OPC_MoveParent, ++/*239431*/ OPC_MoveChild1, ++/*239432*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*239435*/ OPC_CheckChild0Integer, 15, ++/*239437*/ OPC_CheckChild0Type, MVT::i32, ++/*239439*/ OPC_CheckChild1Integer, 15, ++/*239441*/ OPC_CheckChild1Type, MVT::i32, ++/*239443*/ OPC_CheckChild2Integer, 15, ++/*239445*/ OPC_CheckChild2Type, MVT::i32, ++/*239447*/ OPC_CheckChild3Integer, 15, ++/*239449*/ OPC_CheckChild3Type, MVT::i32, ++/*239451*/ OPC_CheckChild4Integer, 15, ++/*239453*/ OPC_CheckChild4Type, MVT::i32, ++/*239455*/ OPC_MoveChild5, ++/*239456*/ OPC_CheckInteger, 15, ++/*239458*/ OPC_CheckType, MVT::i32, ++/*239460*/ OPC_MoveParent, ++/*239461*/ OPC_MoveChild6, ++/*239462*/ OPC_CheckInteger, 15, ++/*239464*/ OPC_CheckType, MVT::i32, ++/*239466*/ OPC_MoveParent, ++/*239467*/ OPC_MoveChild7, ++/*239468*/ OPC_CheckInteger, 15, ++/*239470*/ OPC_CheckType, MVT::i32, ++/*239472*/ OPC_MoveParent, ++/*239473*/ OPC_MoveChild, 8, ++/*239475*/ OPC_CheckInteger, 15, ++/*239477*/ OPC_CheckType, MVT::i32, ++/*239479*/ OPC_MoveParent, ++/*239480*/ OPC_MoveChild, 9, ++/*239482*/ OPC_CheckInteger, 15, ++/*239484*/ OPC_CheckType, MVT::i32, ++/*239486*/ OPC_MoveParent, ++/*239487*/ OPC_MoveChild, 10, ++/*239489*/ OPC_CheckInteger, 15, ++/*239491*/ OPC_CheckType, MVT::i32, ++/*239493*/ OPC_MoveParent, ++/*239494*/ OPC_MoveChild, 11, ++/*239496*/ OPC_CheckInteger, 15, ++/*239498*/ OPC_CheckType, MVT::i32, ++/*239500*/ OPC_MoveParent, ++/*239501*/ OPC_MoveChild, 12, ++/*239503*/ OPC_CheckInteger, 15, ++/*239505*/ OPC_CheckType, MVT::i32, ++/*239507*/ OPC_MoveParent, ++/*239508*/ OPC_MoveChild, 13, ++/*239510*/ OPC_CheckInteger, 15, ++/*239512*/ OPC_CheckType, MVT::i32, ++/*239514*/ OPC_MoveParent, ++/*239515*/ OPC_MoveChild, 14, ++/*239517*/ OPC_CheckInteger, 15, ++/*239519*/ OPC_CheckType, MVT::i32, ++/*239521*/ OPC_MoveParent, ++/*239522*/ OPC_MoveChild, 15, ++/*239524*/ OPC_CheckInteger, 15, ++/*239526*/ OPC_CheckType, MVT::i32, ++/*239528*/ OPC_MoveParent, ++/*239529*/ OPC_CheckType, MVT::v16i16, ++/*239531*/ OPC_MoveParent, ++/*239532*/ OPC_MoveParent, ++/*239533*/ OPC_MoveParent, ++/*239534*/ OPC_MoveChild1, ++/*239535*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*239538*/ OPC_CheckChild0Integer, 1, ++/*239540*/ OPC_CheckChild0Type, MVT::i32, ++/*239542*/ OPC_CheckChild1Integer, 1, ++/*239544*/ OPC_CheckChild1Type, MVT::i32, ++/*239546*/ OPC_CheckChild2Integer, 1, ++/*239548*/ OPC_CheckChild2Type, MVT::i32, ++/*239550*/ OPC_CheckChild3Integer, 1, ++/*239552*/ OPC_CheckChild3Type, MVT::i32, ++/*239554*/ OPC_CheckChild4Integer, 1, ++/*239556*/ OPC_CheckChild4Type, MVT::i32, ++/*239558*/ OPC_MoveChild5, ++/*239559*/ OPC_CheckInteger, 1, ++/*239561*/ OPC_CheckType, MVT::i32, ++/*239563*/ OPC_MoveParent, ++/*239564*/ OPC_MoveChild6, ++/*239565*/ OPC_CheckInteger, 1, ++/*239567*/ OPC_CheckType, MVT::i32, ++/*239569*/ OPC_MoveParent, ++/*239570*/ OPC_MoveChild7, ++/*239571*/ OPC_CheckInteger, 1, ++/*239573*/ OPC_CheckType, MVT::i32, ++/*239575*/ OPC_MoveParent, ++/*239576*/ OPC_MoveChild, 8, ++/*239578*/ OPC_CheckInteger, 1, ++/*239580*/ OPC_CheckType, MVT::i32, ++/*239582*/ OPC_MoveParent, ++/*239583*/ OPC_MoveChild, 9, ++/*239585*/ OPC_CheckInteger, 1, ++/*239587*/ OPC_CheckType, MVT::i32, ++/*239589*/ OPC_MoveParent, ++/*239590*/ OPC_MoveChild, 10, ++/*239592*/ OPC_CheckInteger, 1, ++/*239594*/ OPC_CheckType, MVT::i32, ++/*239596*/ OPC_MoveParent, ++/*239597*/ OPC_MoveChild, 11, ++/*239599*/ OPC_CheckInteger, 1, ++/*239601*/ OPC_CheckType, MVT::i32, ++/*239603*/ OPC_MoveParent, ++/*239604*/ OPC_MoveChild, 12, ++/*239606*/ OPC_CheckInteger, 1, ++/*239608*/ OPC_CheckType, MVT::i32, ++/*239610*/ OPC_MoveParent, ++/*239611*/ OPC_MoveChild, 13, ++/*239613*/ OPC_CheckInteger, 1, ++/*239615*/ OPC_CheckType, MVT::i32, ++/*239617*/ OPC_MoveParent, ++/*239618*/ OPC_MoveChild, 14, ++/*239620*/ OPC_CheckInteger, 1, ++/*239622*/ OPC_CheckType, MVT::i32, ++/*239624*/ OPC_MoveParent, ++/*239625*/ OPC_MoveChild, 15, ++/*239627*/ OPC_CheckInteger, 1, ++/*239629*/ OPC_CheckType, MVT::i32, ++/*239631*/ OPC_MoveParent, ++/*239632*/ OPC_CheckType, MVT::v16i16, ++/*239634*/ OPC_MoveParent, ++/*239635*/ OPC_CheckType, MVT::v16i16, ++/*239637*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*239639*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*239647*/ /*Scope*/ 65|128,2/*321*/, /*->239970*/ ++/*239649*/ OPC_CheckChild0Same, 0, ++/*239651*/ OPC_CheckChild1Same, 1, ++/*239653*/ OPC_MoveParent, ++/*239654*/ OPC_MoveChild1, ++/*239655*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*239658*/ OPC_CheckChild0Integer, 1, ++/*239660*/ OPC_CheckChild0Type, MVT::i32, ++/*239662*/ OPC_CheckChild1Integer, 1, ++/*239664*/ OPC_CheckChild1Type, MVT::i32, ++/*239666*/ OPC_CheckChild2Integer, 1, ++/*239668*/ OPC_CheckChild2Type, MVT::i32, ++/*239670*/ OPC_CheckChild3Integer, 1, ++/*239672*/ OPC_CheckChild3Type, MVT::i32, ++/*239674*/ OPC_CheckChild4Integer, 1, ++/*239676*/ OPC_CheckChild4Type, MVT::i32, ++/*239678*/ OPC_MoveChild5, ++/*239679*/ OPC_CheckInteger, 1, ++/*239681*/ OPC_CheckType, MVT::i32, ++/*239683*/ OPC_MoveParent, ++/*239684*/ OPC_MoveChild6, ++/*239685*/ OPC_CheckInteger, 1, ++/*239687*/ OPC_CheckType, MVT::i32, ++/*239689*/ OPC_MoveParent, ++/*239690*/ OPC_MoveChild7, ++/*239691*/ OPC_CheckInteger, 1, ++/*239693*/ OPC_CheckType, MVT::i32, ++/*239695*/ OPC_MoveParent, ++/*239696*/ OPC_MoveChild, 8, ++/*239698*/ OPC_CheckInteger, 1, ++/*239700*/ OPC_CheckType, MVT::i32, ++/*239702*/ OPC_MoveParent, ++/*239703*/ OPC_MoveChild, 9, ++/*239705*/ OPC_CheckInteger, 1, ++/*239707*/ OPC_CheckType, MVT::i32, ++/*239709*/ OPC_MoveParent, ++/*239710*/ OPC_MoveChild, 10, ++/*239712*/ OPC_CheckInteger, 1, ++/*239714*/ OPC_CheckType, MVT::i32, ++/*239716*/ OPC_MoveParent, ++/*239717*/ OPC_MoveChild, 11, ++/*239719*/ OPC_CheckInteger, 1, ++/*239721*/ OPC_CheckType, MVT::i32, ++/*239723*/ OPC_MoveParent, ++/*239724*/ OPC_MoveChild, 12, ++/*239726*/ OPC_CheckInteger, 1, ++/*239728*/ OPC_CheckType, MVT::i32, ++/*239730*/ OPC_MoveParent, ++/*239731*/ OPC_MoveChild, 13, ++/*239733*/ OPC_CheckInteger, 1, ++/*239735*/ OPC_CheckType, MVT::i32, ++/*239737*/ OPC_MoveParent, ++/*239738*/ OPC_MoveChild, 14, ++/*239740*/ OPC_CheckInteger, 1, ++/*239742*/ OPC_CheckType, MVT::i32, ++/*239744*/ OPC_MoveParent, ++/*239745*/ OPC_MoveChild, 15, ++/*239747*/ OPC_CheckInteger, 1, ++/*239749*/ OPC_CheckType, MVT::i32, ++/*239751*/ OPC_MoveParent, ++/*239752*/ OPC_MoveParent, ++/*239753*/ OPC_MoveParent, ++/*239754*/ OPC_MoveChild1, ++/*239755*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*239758*/ OPC_CheckChild0Integer, 15, ++/*239760*/ OPC_CheckChild0Type, MVT::i32, ++/*239762*/ OPC_CheckChild1Integer, 15, ++/*239764*/ OPC_CheckChild1Type, MVT::i32, ++/*239766*/ OPC_CheckChild2Integer, 15, ++/*239768*/ OPC_CheckChild2Type, MVT::i32, ++/*239770*/ OPC_CheckChild3Integer, 15, ++/*239772*/ OPC_CheckChild3Type, MVT::i32, ++/*239774*/ OPC_CheckChild4Integer, 15, ++/*239776*/ OPC_CheckChild4Type, MVT::i32, ++/*239778*/ OPC_MoveChild5, ++/*239779*/ OPC_CheckInteger, 15, ++/*239781*/ OPC_CheckType, MVT::i32, ++/*239783*/ OPC_MoveParent, ++/*239784*/ OPC_MoveChild6, ++/*239785*/ OPC_CheckInteger, 15, ++/*239787*/ OPC_CheckType, MVT::i32, ++/*239789*/ OPC_MoveParent, ++/*239790*/ OPC_MoveChild7, ++/*239791*/ OPC_CheckInteger, 15, ++/*239793*/ OPC_CheckType, MVT::i32, ++/*239795*/ OPC_MoveParent, ++/*239796*/ OPC_MoveChild, 8, ++/*239798*/ OPC_CheckInteger, 15, ++/*239800*/ OPC_CheckType, MVT::i32, ++/*239802*/ OPC_MoveParent, ++/*239803*/ OPC_MoveChild, 9, ++/*239805*/ OPC_CheckInteger, 15, ++/*239807*/ OPC_CheckType, MVT::i32, ++/*239809*/ OPC_MoveParent, ++/*239810*/ OPC_MoveChild, 10, ++/*239812*/ OPC_CheckInteger, 15, ++/*239814*/ OPC_CheckType, MVT::i32, ++/*239816*/ OPC_MoveParent, ++/*239817*/ OPC_MoveChild, 11, ++/*239819*/ OPC_CheckInteger, 15, ++/*239821*/ OPC_CheckType, MVT::i32, ++/*239823*/ OPC_MoveParent, ++/*239824*/ OPC_MoveChild, 12, ++/*239826*/ OPC_CheckInteger, 15, ++/*239828*/ OPC_CheckType, MVT::i32, ++/*239830*/ OPC_MoveParent, ++/*239831*/ OPC_MoveChild, 13, ++/*239833*/ OPC_CheckInteger, 15, ++/*239835*/ OPC_CheckType, MVT::i32, ++/*239837*/ OPC_MoveParent, ++/*239838*/ OPC_MoveChild, 14, ++/*239840*/ OPC_CheckInteger, 15, ++/*239842*/ OPC_CheckType, MVT::i32, ++/*239844*/ OPC_MoveParent, ++/*239845*/ OPC_MoveChild, 15, ++/*239847*/ OPC_CheckInteger, 15, ++/*239849*/ OPC_CheckType, MVT::i32, ++/*239851*/ OPC_MoveParent, ++/*239852*/ OPC_CheckType, MVT::v16i16, ++/*239854*/ OPC_MoveParent, ++/*239855*/ OPC_MoveParent, ++/*239856*/ OPC_MoveParent, ++/*239857*/ OPC_MoveChild1, ++/*239858*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*239861*/ OPC_CheckChild0Integer, 1, ++/*239863*/ OPC_CheckChild0Type, MVT::i32, ++/*239865*/ OPC_CheckChild1Integer, 1, ++/*239867*/ OPC_CheckChild1Type, MVT::i32, ++/*239869*/ OPC_CheckChild2Integer, 1, ++/*239871*/ OPC_CheckChild2Type, MVT::i32, ++/*239873*/ OPC_CheckChild3Integer, 1, ++/*239875*/ OPC_CheckChild3Type, MVT::i32, ++/*239877*/ OPC_CheckChild4Integer, 1, ++/*239879*/ OPC_CheckChild4Type, MVT::i32, ++/*239881*/ OPC_MoveChild5, ++/*239882*/ OPC_CheckInteger, 1, ++/*239884*/ OPC_CheckType, MVT::i32, ++/*239886*/ OPC_MoveParent, ++/*239887*/ OPC_MoveChild6, ++/*239888*/ OPC_CheckInteger, 1, ++/*239890*/ OPC_CheckType, MVT::i32, ++/*239892*/ OPC_MoveParent, ++/*239893*/ OPC_MoveChild7, ++/*239894*/ OPC_CheckInteger, 1, ++/*239896*/ OPC_CheckType, MVT::i32, ++/*239898*/ OPC_MoveParent, ++/*239899*/ OPC_MoveChild, 8, ++/*239901*/ OPC_CheckInteger, 1, ++/*239903*/ OPC_CheckType, MVT::i32, ++/*239905*/ OPC_MoveParent, ++/*239906*/ OPC_MoveChild, 9, ++/*239908*/ OPC_CheckInteger, 1, ++/*239910*/ OPC_CheckType, MVT::i32, ++/*239912*/ OPC_MoveParent, ++/*239913*/ OPC_MoveChild, 10, ++/*239915*/ OPC_CheckInteger, 1, ++/*239917*/ OPC_CheckType, MVT::i32, ++/*239919*/ OPC_MoveParent, ++/*239920*/ OPC_MoveChild, 11, ++/*239922*/ OPC_CheckInteger, 1, ++/*239924*/ OPC_CheckType, MVT::i32, ++/*239926*/ OPC_MoveParent, ++/*239927*/ OPC_MoveChild, 12, ++/*239929*/ OPC_CheckInteger, 1, ++/*239931*/ OPC_CheckType, MVT::i32, ++/*239933*/ OPC_MoveParent, ++/*239934*/ OPC_MoveChild, 13, ++/*239936*/ OPC_CheckInteger, 1, ++/*239938*/ OPC_CheckType, MVT::i32, ++/*239940*/ OPC_MoveParent, ++/*239941*/ OPC_MoveChild, 14, ++/*239943*/ OPC_CheckInteger, 1, ++/*239945*/ OPC_CheckType, MVT::i32, ++/*239947*/ OPC_MoveParent, ++/*239948*/ OPC_MoveChild, 15, ++/*239950*/ OPC_CheckInteger, 1, ++/*239952*/ OPC_CheckType, MVT::i32, ++/*239954*/ OPC_MoveParent, ++/*239955*/ OPC_CheckType, MVT::v16i16, ++/*239957*/ OPC_MoveParent, ++/*239958*/ OPC_CheckType, MVT::v16i16, ++/*239960*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*239962*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*239970*/ /*Scope*/ 65|128,2/*321*/, /*->240293*/ ++/*239972*/ OPC_CheckChild0Same, 1, ++/*239974*/ OPC_CheckChild1Same, 0, ++/*239976*/ OPC_MoveParent, ++/*239977*/ OPC_MoveChild1, ++/*239978*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*239981*/ OPC_CheckChild0Integer, 1, ++/*239983*/ OPC_CheckChild0Type, MVT::i32, ++/*239985*/ OPC_CheckChild1Integer, 1, ++/*239987*/ OPC_CheckChild1Type, MVT::i32, ++/*239989*/ OPC_CheckChild2Integer, 1, ++/*239991*/ OPC_CheckChild2Type, MVT::i32, ++/*239993*/ OPC_CheckChild3Integer, 1, ++/*239995*/ OPC_CheckChild3Type, MVT::i32, ++/*239997*/ OPC_CheckChild4Integer, 1, ++/*239999*/ OPC_CheckChild4Type, MVT::i32, ++/*240001*/ OPC_MoveChild5, ++/*240002*/ OPC_CheckInteger, 1, ++/*240004*/ OPC_CheckType, MVT::i32, ++/*240006*/ OPC_MoveParent, ++/*240007*/ OPC_MoveChild6, ++/*240008*/ OPC_CheckInteger, 1, ++/*240010*/ OPC_CheckType, MVT::i32, ++/*240012*/ OPC_MoveParent, ++/*240013*/ OPC_MoveChild7, ++/*240014*/ OPC_CheckInteger, 1, ++/*240016*/ OPC_CheckType, MVT::i32, ++/*240018*/ OPC_MoveParent, ++/*240019*/ OPC_MoveChild, 8, ++/*240021*/ OPC_CheckInteger, 1, ++/*240023*/ OPC_CheckType, MVT::i32, ++/*240025*/ OPC_MoveParent, ++/*240026*/ OPC_MoveChild, 9, ++/*240028*/ OPC_CheckInteger, 1, ++/*240030*/ OPC_CheckType, MVT::i32, ++/*240032*/ OPC_MoveParent, ++/*240033*/ OPC_MoveChild, 10, ++/*240035*/ OPC_CheckInteger, 1, ++/*240037*/ OPC_CheckType, MVT::i32, ++/*240039*/ OPC_MoveParent, ++/*240040*/ OPC_MoveChild, 11, ++/*240042*/ OPC_CheckInteger, 1, ++/*240044*/ OPC_CheckType, MVT::i32, ++/*240046*/ OPC_MoveParent, ++/*240047*/ OPC_MoveChild, 12, ++/*240049*/ OPC_CheckInteger, 1, ++/*240051*/ OPC_CheckType, MVT::i32, ++/*240053*/ OPC_MoveParent, ++/*240054*/ OPC_MoveChild, 13, ++/*240056*/ OPC_CheckInteger, 1, ++/*240058*/ OPC_CheckType, MVT::i32, ++/*240060*/ OPC_MoveParent, ++/*240061*/ OPC_MoveChild, 14, ++/*240063*/ OPC_CheckInteger, 1, ++/*240065*/ OPC_CheckType, MVT::i32, ++/*240067*/ OPC_MoveParent, ++/*240068*/ OPC_MoveChild, 15, ++/*240070*/ OPC_CheckInteger, 1, ++/*240072*/ OPC_CheckType, MVT::i32, ++/*240074*/ OPC_MoveParent, ++/*240075*/ OPC_MoveParent, ++/*240076*/ OPC_MoveParent, ++/*240077*/ OPC_MoveChild1, ++/*240078*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*240081*/ OPC_CheckChild0Integer, 15, ++/*240083*/ OPC_CheckChild0Type, MVT::i32, ++/*240085*/ OPC_CheckChild1Integer, 15, ++/*240087*/ OPC_CheckChild1Type, MVT::i32, ++/*240089*/ OPC_CheckChild2Integer, 15, ++/*240091*/ OPC_CheckChild2Type, MVT::i32, ++/*240093*/ OPC_CheckChild3Integer, 15, ++/*240095*/ OPC_CheckChild3Type, MVT::i32, ++/*240097*/ OPC_CheckChild4Integer, 15, ++/*240099*/ OPC_CheckChild4Type, MVT::i32, ++/*240101*/ OPC_MoveChild5, ++/*240102*/ OPC_CheckInteger, 15, ++/*240104*/ OPC_CheckType, MVT::i32, ++/*240106*/ OPC_MoveParent, ++/*240107*/ OPC_MoveChild6, ++/*240108*/ OPC_CheckInteger, 15, ++/*240110*/ OPC_CheckType, MVT::i32, ++/*240112*/ OPC_MoveParent, ++/*240113*/ OPC_MoveChild7, ++/*240114*/ OPC_CheckInteger, 15, ++/*240116*/ OPC_CheckType, MVT::i32, ++/*240118*/ OPC_MoveParent, ++/*240119*/ OPC_MoveChild, 8, ++/*240121*/ OPC_CheckInteger, 15, ++/*240123*/ OPC_CheckType, MVT::i32, ++/*240125*/ OPC_MoveParent, ++/*240126*/ OPC_MoveChild, 9, ++/*240128*/ OPC_CheckInteger, 15, ++/*240130*/ OPC_CheckType, MVT::i32, ++/*240132*/ OPC_MoveParent, ++/*240133*/ OPC_MoveChild, 10, ++/*240135*/ OPC_CheckInteger, 15, ++/*240137*/ OPC_CheckType, MVT::i32, ++/*240139*/ OPC_MoveParent, ++/*240140*/ OPC_MoveChild, 11, ++/*240142*/ OPC_CheckInteger, 15, ++/*240144*/ OPC_CheckType, MVT::i32, ++/*240146*/ OPC_MoveParent, ++/*240147*/ OPC_MoveChild, 12, ++/*240149*/ OPC_CheckInteger, 15, ++/*240151*/ OPC_CheckType, MVT::i32, ++/*240153*/ OPC_MoveParent, ++/*240154*/ OPC_MoveChild, 13, ++/*240156*/ OPC_CheckInteger, 15, ++/*240158*/ OPC_CheckType, MVT::i32, ++/*240160*/ OPC_MoveParent, ++/*240161*/ OPC_MoveChild, 14, ++/*240163*/ OPC_CheckInteger, 15, ++/*240165*/ OPC_CheckType, MVT::i32, ++/*240167*/ OPC_MoveParent, ++/*240168*/ OPC_MoveChild, 15, ++/*240170*/ OPC_CheckInteger, 15, ++/*240172*/ OPC_CheckType, MVT::i32, ++/*240174*/ OPC_MoveParent, ++/*240175*/ OPC_CheckType, MVT::v16i16, ++/*240177*/ OPC_MoveParent, ++/*240178*/ OPC_MoveParent, ++/*240179*/ OPC_MoveParent, ++/*240180*/ OPC_MoveChild1, ++/*240181*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*240184*/ OPC_CheckChild0Integer, 1, ++/*240186*/ OPC_CheckChild0Type, MVT::i32, ++/*240188*/ OPC_CheckChild1Integer, 1, ++/*240190*/ OPC_CheckChild1Type, MVT::i32, ++/*240192*/ OPC_CheckChild2Integer, 1, ++/*240194*/ OPC_CheckChild2Type, MVT::i32, ++/*240196*/ OPC_CheckChild3Integer, 1, ++/*240198*/ OPC_CheckChild3Type, MVT::i32, ++/*240200*/ OPC_CheckChild4Integer, 1, ++/*240202*/ OPC_CheckChild4Type, MVT::i32, ++/*240204*/ OPC_MoveChild5, ++/*240205*/ OPC_CheckInteger, 1, ++/*240207*/ OPC_CheckType, MVT::i32, ++/*240209*/ OPC_MoveParent, ++/*240210*/ OPC_MoveChild6, ++/*240211*/ OPC_CheckInteger, 1, ++/*240213*/ OPC_CheckType, MVT::i32, ++/*240215*/ OPC_MoveParent, ++/*240216*/ OPC_MoveChild7, ++/*240217*/ OPC_CheckInteger, 1, ++/*240219*/ OPC_CheckType, MVT::i32, ++/*240221*/ OPC_MoveParent, ++/*240222*/ OPC_MoveChild, 8, ++/*240224*/ OPC_CheckInteger, 1, ++/*240226*/ OPC_CheckType, MVT::i32, ++/*240228*/ OPC_MoveParent, ++/*240229*/ OPC_MoveChild, 9, ++/*240231*/ OPC_CheckInteger, 1, ++/*240233*/ OPC_CheckType, MVT::i32, ++/*240235*/ OPC_MoveParent, ++/*240236*/ OPC_MoveChild, 10, ++/*240238*/ OPC_CheckInteger, 1, ++/*240240*/ OPC_CheckType, MVT::i32, ++/*240242*/ OPC_MoveParent, ++/*240243*/ OPC_MoveChild, 11, ++/*240245*/ OPC_CheckInteger, 1, ++/*240247*/ OPC_CheckType, MVT::i32, ++/*240249*/ OPC_MoveParent, ++/*240250*/ OPC_MoveChild, 12, ++/*240252*/ OPC_CheckInteger, 1, ++/*240254*/ OPC_CheckType, MVT::i32, ++/*240256*/ OPC_MoveParent, ++/*240257*/ OPC_MoveChild, 13, ++/*240259*/ OPC_CheckInteger, 1, ++/*240261*/ OPC_CheckType, MVT::i32, ++/*240263*/ OPC_MoveParent, ++/*240264*/ OPC_MoveChild, 14, ++/*240266*/ OPC_CheckInteger, 1, ++/*240268*/ OPC_CheckType, MVT::i32, ++/*240270*/ OPC_MoveParent, ++/*240271*/ OPC_MoveChild, 15, ++/*240273*/ OPC_CheckInteger, 1, ++/*240275*/ OPC_CheckType, MVT::i32, ++/*240277*/ OPC_MoveParent, ++/*240278*/ OPC_CheckType, MVT::v16i16, ++/*240280*/ OPC_MoveParent, ++/*240281*/ OPC_CheckType, MVT::v16i16, ++/*240283*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*240285*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*240293*/ 0, /*End of Scope*/ ++/*240294*/ /*Scope*/ 10|128,5/*650*/, /*->240946*/ ++/*240296*/ OPC_CheckChild0Same, 1, ++/*240298*/ OPC_MoveChild1, ++/*240299*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*240302*/ OPC_Scope, 63|128,2/*319*/, /*->240624*/ // 2 children in Scope ++/*240305*/ OPC_MoveChild0, ++/*240306*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*240309*/ OPC_CheckChild0Integer, 1, ++/*240311*/ OPC_CheckChild0Type, MVT::i32, ++/*240313*/ OPC_CheckChild1Integer, 1, ++/*240315*/ OPC_CheckChild1Type, MVT::i32, ++/*240317*/ OPC_CheckChild2Integer, 1, ++/*240319*/ OPC_CheckChild2Type, MVT::i32, ++/*240321*/ OPC_CheckChild3Integer, 1, ++/*240323*/ OPC_CheckChild3Type, MVT::i32, ++/*240325*/ OPC_CheckChild4Integer, 1, ++/*240327*/ OPC_CheckChild4Type, MVT::i32, ++/*240329*/ OPC_MoveChild5, ++/*240330*/ OPC_CheckInteger, 1, ++/*240332*/ OPC_CheckType, MVT::i32, ++/*240334*/ OPC_MoveParent, ++/*240335*/ OPC_MoveChild6, ++/*240336*/ OPC_CheckInteger, 1, ++/*240338*/ OPC_CheckType, MVT::i32, ++/*240340*/ OPC_MoveParent, ++/*240341*/ OPC_MoveChild7, ++/*240342*/ OPC_CheckInteger, 1, ++/*240344*/ OPC_CheckType, MVT::i32, ++/*240346*/ OPC_MoveParent, ++/*240347*/ OPC_MoveChild, 8, ++/*240349*/ OPC_CheckInteger, 1, ++/*240351*/ OPC_CheckType, MVT::i32, ++/*240353*/ OPC_MoveParent, ++/*240354*/ OPC_MoveChild, 9, ++/*240356*/ OPC_CheckInteger, 1, ++/*240358*/ OPC_CheckType, MVT::i32, ++/*240360*/ OPC_MoveParent, ++/*240361*/ OPC_MoveChild, 10, ++/*240363*/ OPC_CheckInteger, 1, ++/*240365*/ OPC_CheckType, MVT::i32, ++/*240367*/ OPC_MoveParent, ++/*240368*/ OPC_MoveChild, 11, ++/*240370*/ OPC_CheckInteger, 1, ++/*240372*/ OPC_CheckType, MVT::i32, ++/*240374*/ OPC_MoveParent, ++/*240375*/ OPC_MoveChild, 12, ++/*240377*/ OPC_CheckInteger, 1, ++/*240379*/ OPC_CheckType, MVT::i32, ++/*240381*/ OPC_MoveParent, ++/*240382*/ OPC_MoveChild, 13, ++/*240384*/ OPC_CheckInteger, 1, ++/*240386*/ OPC_CheckType, MVT::i32, ++/*240388*/ OPC_MoveParent, ++/*240389*/ OPC_MoveChild, 14, ++/*240391*/ OPC_CheckInteger, 1, ++/*240393*/ OPC_CheckType, MVT::i32, ++/*240395*/ OPC_MoveParent, ++/*240396*/ OPC_MoveChild, 15, ++/*240398*/ OPC_CheckInteger, 1, ++/*240400*/ OPC_CheckType, MVT::i32, ++/*240402*/ OPC_MoveParent, ++/*240403*/ OPC_MoveParent, ++/*240404*/ OPC_CheckChild1Same, 0, ++/*240406*/ OPC_MoveParent, ++/*240407*/ OPC_MoveParent, ++/*240408*/ OPC_MoveChild1, ++/*240409*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*240412*/ OPC_CheckChild0Integer, 15, ++/*240414*/ OPC_CheckChild0Type, MVT::i32, ++/*240416*/ OPC_CheckChild1Integer, 15, ++/*240418*/ OPC_CheckChild1Type, MVT::i32, ++/*240420*/ OPC_CheckChild2Integer, 15, ++/*240422*/ OPC_CheckChild2Type, MVT::i32, ++/*240424*/ OPC_CheckChild3Integer, 15, ++/*240426*/ OPC_CheckChild3Type, MVT::i32, ++/*240428*/ OPC_CheckChild4Integer, 15, ++/*240430*/ OPC_CheckChild4Type, MVT::i32, ++/*240432*/ OPC_MoveChild5, ++/*240433*/ OPC_CheckInteger, 15, ++/*240435*/ OPC_CheckType, MVT::i32, ++/*240437*/ OPC_MoveParent, ++/*240438*/ OPC_MoveChild6, ++/*240439*/ OPC_CheckInteger, 15, ++/*240441*/ OPC_CheckType, MVT::i32, ++/*240443*/ OPC_MoveParent, ++/*240444*/ OPC_MoveChild7, ++/*240445*/ OPC_CheckInteger, 15, ++/*240447*/ OPC_CheckType, MVT::i32, ++/*240449*/ OPC_MoveParent, ++/*240450*/ OPC_MoveChild, 8, ++/*240452*/ OPC_CheckInteger, 15, ++/*240454*/ OPC_CheckType, MVT::i32, ++/*240456*/ OPC_MoveParent, ++/*240457*/ OPC_MoveChild, 9, ++/*240459*/ OPC_CheckInteger, 15, ++/*240461*/ OPC_CheckType, MVT::i32, ++/*240463*/ OPC_MoveParent, ++/*240464*/ OPC_MoveChild, 10, ++/*240466*/ OPC_CheckInteger, 15, ++/*240468*/ OPC_CheckType, MVT::i32, ++/*240470*/ OPC_MoveParent, ++/*240471*/ OPC_MoveChild, 11, ++/*240473*/ OPC_CheckInteger, 15, ++/*240475*/ OPC_CheckType, MVT::i32, ++/*240477*/ OPC_MoveParent, ++/*240478*/ OPC_MoveChild, 12, ++/*240480*/ OPC_CheckInteger, 15, ++/*240482*/ OPC_CheckType, MVT::i32, ++/*240484*/ OPC_MoveParent, ++/*240485*/ OPC_MoveChild, 13, ++/*240487*/ OPC_CheckInteger, 15, ++/*240489*/ OPC_CheckType, MVT::i32, ++/*240491*/ OPC_MoveParent, ++/*240492*/ OPC_MoveChild, 14, ++/*240494*/ OPC_CheckInteger, 15, ++/*240496*/ OPC_CheckType, MVT::i32, ++/*240498*/ OPC_MoveParent, ++/*240499*/ OPC_MoveChild, 15, ++/*240501*/ OPC_CheckInteger, 15, ++/*240503*/ OPC_CheckType, MVT::i32, ++/*240505*/ OPC_MoveParent, ++/*240506*/ OPC_CheckType, MVT::v16i16, ++/*240508*/ OPC_MoveParent, ++/*240509*/ OPC_MoveParent, ++/*240510*/ OPC_MoveParent, ++/*240511*/ OPC_MoveChild1, ++/*240512*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*240515*/ OPC_CheckChild0Integer, 1, ++/*240517*/ OPC_CheckChild0Type, MVT::i32, ++/*240519*/ OPC_CheckChild1Integer, 1, ++/*240521*/ OPC_CheckChild1Type, MVT::i32, ++/*240523*/ OPC_CheckChild2Integer, 1, ++/*240525*/ OPC_CheckChild2Type, MVT::i32, ++/*240527*/ OPC_CheckChild3Integer, 1, ++/*240529*/ OPC_CheckChild3Type, MVT::i32, ++/*240531*/ OPC_CheckChild4Integer, 1, ++/*240533*/ OPC_CheckChild4Type, MVT::i32, ++/*240535*/ OPC_MoveChild5, ++/*240536*/ OPC_CheckInteger, 1, ++/*240538*/ OPC_CheckType, MVT::i32, ++/*240540*/ OPC_MoveParent, ++/*240541*/ OPC_MoveChild6, ++/*240542*/ OPC_CheckInteger, 1, ++/*240544*/ OPC_CheckType, MVT::i32, ++/*240546*/ OPC_MoveParent, ++/*240547*/ OPC_MoveChild7, ++/*240548*/ OPC_CheckInteger, 1, ++/*240550*/ OPC_CheckType, MVT::i32, ++/*240552*/ OPC_MoveParent, ++/*240553*/ OPC_MoveChild, 8, ++/*240555*/ OPC_CheckInteger, 1, ++/*240557*/ OPC_CheckType, MVT::i32, ++/*240559*/ OPC_MoveParent, ++/*240560*/ OPC_MoveChild, 9, ++/*240562*/ OPC_CheckInteger, 1, ++/*240564*/ OPC_CheckType, MVT::i32, ++/*240566*/ OPC_MoveParent, ++/*240567*/ OPC_MoveChild, 10, ++/*240569*/ OPC_CheckInteger, 1, ++/*240571*/ OPC_CheckType, MVT::i32, ++/*240573*/ OPC_MoveParent, ++/*240574*/ OPC_MoveChild, 11, ++/*240576*/ OPC_CheckInteger, 1, ++/*240578*/ OPC_CheckType, MVT::i32, ++/*240580*/ OPC_MoveParent, ++/*240581*/ OPC_MoveChild, 12, ++/*240583*/ OPC_CheckInteger, 1, ++/*240585*/ OPC_CheckType, MVT::i32, ++/*240587*/ OPC_MoveParent, ++/*240588*/ OPC_MoveChild, 13, ++/*240590*/ OPC_CheckInteger, 1, ++/*240592*/ OPC_CheckType, MVT::i32, ++/*240594*/ OPC_MoveParent, ++/*240595*/ OPC_MoveChild, 14, ++/*240597*/ OPC_CheckInteger, 1, ++/*240599*/ OPC_CheckType, MVT::i32, ++/*240601*/ OPC_MoveParent, ++/*240602*/ OPC_MoveChild, 15, ++/*240604*/ OPC_CheckInteger, 1, ++/*240606*/ OPC_CheckType, MVT::i32, ++/*240608*/ OPC_MoveParent, ++/*240609*/ OPC_CheckType, MVT::v16i16, ++/*240611*/ OPC_MoveParent, ++/*240612*/ OPC_CheckType, MVT::v16i16, ++/*240614*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*240616*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*240624*/ /*Scope*/ 63|128,2/*319*/, /*->240945*/ ++/*240626*/ OPC_CheckChild0Same, 0, ++/*240628*/ OPC_MoveChild1, ++/*240629*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*240632*/ OPC_CheckChild0Integer, 1, ++/*240634*/ OPC_CheckChild0Type, MVT::i32, ++/*240636*/ OPC_CheckChild1Integer, 1, ++/*240638*/ OPC_CheckChild1Type, MVT::i32, ++/*240640*/ OPC_CheckChild2Integer, 1, ++/*240642*/ OPC_CheckChild2Type, MVT::i32, ++/*240644*/ OPC_CheckChild3Integer, 1, ++/*240646*/ OPC_CheckChild3Type, MVT::i32, ++/*240648*/ OPC_CheckChild4Integer, 1, ++/*240650*/ OPC_CheckChild4Type, MVT::i32, ++/*240652*/ OPC_MoveChild5, ++/*240653*/ OPC_CheckInteger, 1, ++/*240655*/ OPC_CheckType, MVT::i32, ++/*240657*/ OPC_MoveParent, ++/*240658*/ OPC_MoveChild6, ++/*240659*/ OPC_CheckInteger, 1, ++/*240661*/ OPC_CheckType, MVT::i32, ++/*240663*/ OPC_MoveParent, ++/*240664*/ OPC_MoveChild7, ++/*240665*/ OPC_CheckInteger, 1, ++/*240667*/ OPC_CheckType, MVT::i32, ++/*240669*/ OPC_MoveParent, ++/*240670*/ OPC_MoveChild, 8, ++/*240672*/ OPC_CheckInteger, 1, ++/*240674*/ OPC_CheckType, MVT::i32, ++/*240676*/ OPC_MoveParent, ++/*240677*/ OPC_MoveChild, 9, ++/*240679*/ OPC_CheckInteger, 1, ++/*240681*/ OPC_CheckType, MVT::i32, ++/*240683*/ OPC_MoveParent, ++/*240684*/ OPC_MoveChild, 10, ++/*240686*/ OPC_CheckInteger, 1, ++/*240688*/ OPC_CheckType, MVT::i32, ++/*240690*/ OPC_MoveParent, ++/*240691*/ OPC_MoveChild, 11, ++/*240693*/ OPC_CheckInteger, 1, ++/*240695*/ OPC_CheckType, MVT::i32, ++/*240697*/ OPC_MoveParent, ++/*240698*/ OPC_MoveChild, 12, ++/*240700*/ OPC_CheckInteger, 1, ++/*240702*/ OPC_CheckType, MVT::i32, ++/*240704*/ OPC_MoveParent, ++/*240705*/ OPC_MoveChild, 13, ++/*240707*/ OPC_CheckInteger, 1, ++/*240709*/ OPC_CheckType, MVT::i32, ++/*240711*/ OPC_MoveParent, ++/*240712*/ OPC_MoveChild, 14, ++/*240714*/ OPC_CheckInteger, 1, ++/*240716*/ OPC_CheckType, MVT::i32, ++/*240718*/ OPC_MoveParent, ++/*240719*/ OPC_MoveChild, 15, ++/*240721*/ OPC_CheckInteger, 1, ++/*240723*/ OPC_CheckType, MVT::i32, ++/*240725*/ OPC_MoveParent, ++/*240726*/ OPC_MoveParent, ++/*240727*/ OPC_MoveParent, ++/*240728*/ OPC_MoveParent, ++/*240729*/ OPC_MoveChild1, ++/*240730*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*240733*/ OPC_CheckChild0Integer, 15, ++/*240735*/ OPC_CheckChild0Type, MVT::i32, ++/*240737*/ OPC_CheckChild1Integer, 15, ++/*240739*/ OPC_CheckChild1Type, MVT::i32, ++/*240741*/ OPC_CheckChild2Integer, 15, ++/*240743*/ OPC_CheckChild2Type, MVT::i32, ++/*240745*/ OPC_CheckChild3Integer, 15, ++/*240747*/ OPC_CheckChild3Type, MVT::i32, ++/*240749*/ OPC_CheckChild4Integer, 15, ++/*240751*/ OPC_CheckChild4Type, MVT::i32, ++/*240753*/ OPC_MoveChild5, ++/*240754*/ OPC_CheckInteger, 15, ++/*240756*/ OPC_CheckType, MVT::i32, ++/*240758*/ OPC_MoveParent, ++/*240759*/ OPC_MoveChild6, ++/*240760*/ OPC_CheckInteger, 15, ++/*240762*/ OPC_CheckType, MVT::i32, ++/*240764*/ OPC_MoveParent, ++/*240765*/ OPC_MoveChild7, ++/*240766*/ OPC_CheckInteger, 15, ++/*240768*/ OPC_CheckType, MVT::i32, ++/*240770*/ OPC_MoveParent, ++/*240771*/ OPC_MoveChild, 8, ++/*240773*/ OPC_CheckInteger, 15, ++/*240775*/ OPC_CheckType, MVT::i32, ++/*240777*/ OPC_MoveParent, ++/*240778*/ OPC_MoveChild, 9, ++/*240780*/ OPC_CheckInteger, 15, ++/*240782*/ OPC_CheckType, MVT::i32, ++/*240784*/ OPC_MoveParent, ++/*240785*/ OPC_MoveChild, 10, ++/*240787*/ OPC_CheckInteger, 15, ++/*240789*/ OPC_CheckType, MVT::i32, ++/*240791*/ OPC_MoveParent, ++/*240792*/ OPC_MoveChild, 11, ++/*240794*/ OPC_CheckInteger, 15, ++/*240796*/ OPC_CheckType, MVT::i32, ++/*240798*/ OPC_MoveParent, ++/*240799*/ OPC_MoveChild, 12, ++/*240801*/ OPC_CheckInteger, 15, ++/*240803*/ OPC_CheckType, MVT::i32, ++/*240805*/ OPC_MoveParent, ++/*240806*/ OPC_MoveChild, 13, ++/*240808*/ OPC_CheckInteger, 15, ++/*240810*/ OPC_CheckType, MVT::i32, ++/*240812*/ OPC_MoveParent, ++/*240813*/ OPC_MoveChild, 14, ++/*240815*/ OPC_CheckInteger, 15, ++/*240817*/ OPC_CheckType, MVT::i32, ++/*240819*/ OPC_MoveParent, ++/*240820*/ OPC_MoveChild, 15, ++/*240822*/ OPC_CheckInteger, 15, ++/*240824*/ OPC_CheckType, MVT::i32, ++/*240826*/ OPC_MoveParent, ++/*240827*/ OPC_CheckType, MVT::v16i16, ++/*240829*/ OPC_MoveParent, ++/*240830*/ OPC_MoveParent, ++/*240831*/ OPC_MoveParent, ++/*240832*/ OPC_MoveChild1, ++/*240833*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*240836*/ OPC_CheckChild0Integer, 1, ++/*240838*/ OPC_CheckChild0Type, MVT::i32, ++/*240840*/ OPC_CheckChild1Integer, 1, ++/*240842*/ OPC_CheckChild1Type, MVT::i32, ++/*240844*/ OPC_CheckChild2Integer, 1, ++/*240846*/ OPC_CheckChild2Type, MVT::i32, ++/*240848*/ OPC_CheckChild3Integer, 1, ++/*240850*/ OPC_CheckChild3Type, MVT::i32, ++/*240852*/ OPC_CheckChild4Integer, 1, ++/*240854*/ OPC_CheckChild4Type, MVT::i32, ++/*240856*/ OPC_MoveChild5, ++/*240857*/ OPC_CheckInteger, 1, ++/*240859*/ OPC_CheckType, MVT::i32, ++/*240861*/ OPC_MoveParent, ++/*240862*/ OPC_MoveChild6, ++/*240863*/ OPC_CheckInteger, 1, ++/*240865*/ OPC_CheckType, MVT::i32, ++/*240867*/ OPC_MoveParent, ++/*240868*/ OPC_MoveChild7, ++/*240869*/ OPC_CheckInteger, 1, ++/*240871*/ OPC_CheckType, MVT::i32, ++/*240873*/ OPC_MoveParent, ++/*240874*/ OPC_MoveChild, 8, ++/*240876*/ OPC_CheckInteger, 1, ++/*240878*/ OPC_CheckType, MVT::i32, ++/*240880*/ OPC_MoveParent, ++/*240881*/ OPC_MoveChild, 9, ++/*240883*/ OPC_CheckInteger, 1, ++/*240885*/ OPC_CheckType, MVT::i32, ++/*240887*/ OPC_MoveParent, ++/*240888*/ OPC_MoveChild, 10, ++/*240890*/ OPC_CheckInteger, 1, ++/*240892*/ OPC_CheckType, MVT::i32, ++/*240894*/ OPC_MoveParent, ++/*240895*/ OPC_MoveChild, 11, ++/*240897*/ OPC_CheckInteger, 1, ++/*240899*/ OPC_CheckType, MVT::i32, ++/*240901*/ OPC_MoveParent, ++/*240902*/ OPC_MoveChild, 12, ++/*240904*/ OPC_CheckInteger, 1, ++/*240906*/ OPC_CheckType, MVT::i32, ++/*240908*/ OPC_MoveParent, ++/*240909*/ OPC_MoveChild, 13, ++/*240911*/ OPC_CheckInteger, 1, ++/*240913*/ OPC_CheckType, MVT::i32, ++/*240915*/ OPC_MoveParent, ++/*240916*/ OPC_MoveChild, 14, ++/*240918*/ OPC_CheckInteger, 1, ++/*240920*/ OPC_CheckType, MVT::i32, ++/*240922*/ OPC_MoveParent, ++/*240923*/ OPC_MoveChild, 15, ++/*240925*/ OPC_CheckInteger, 1, ++/*240927*/ OPC_CheckType, MVT::i32, ++/*240929*/ OPC_MoveParent, ++/*240930*/ OPC_CheckType, MVT::v16i16, ++/*240932*/ OPC_MoveParent, ++/*240933*/ OPC_CheckType, MVT::v16i16, ++/*240935*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*240937*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*240945*/ 0, /*End of Scope*/ ++/*240946*/ /*Scope*/ 10|128,5/*650*/, /*->241598*/ ++/*240948*/ OPC_CheckChild0Same, 0, ++/*240950*/ OPC_MoveChild1, ++/*240951*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*240954*/ OPC_Scope, 63|128,2/*319*/, /*->241276*/ // 2 children in Scope ++/*240957*/ OPC_MoveChild0, ++/*240958*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*240961*/ OPC_CheckChild0Integer, 1, ++/*240963*/ OPC_CheckChild0Type, MVT::i32, ++/*240965*/ OPC_CheckChild1Integer, 1, ++/*240967*/ OPC_CheckChild1Type, MVT::i32, ++/*240969*/ OPC_CheckChild2Integer, 1, ++/*240971*/ OPC_CheckChild2Type, MVT::i32, ++/*240973*/ OPC_CheckChild3Integer, 1, ++/*240975*/ OPC_CheckChild3Type, MVT::i32, ++/*240977*/ OPC_CheckChild4Integer, 1, ++/*240979*/ OPC_CheckChild4Type, MVT::i32, ++/*240981*/ OPC_MoveChild5, ++/*240982*/ OPC_CheckInteger, 1, ++/*240984*/ OPC_CheckType, MVT::i32, ++/*240986*/ OPC_MoveParent, ++/*240987*/ OPC_MoveChild6, ++/*240988*/ OPC_CheckInteger, 1, ++/*240990*/ OPC_CheckType, MVT::i32, ++/*240992*/ OPC_MoveParent, ++/*240993*/ OPC_MoveChild7, ++/*240994*/ OPC_CheckInteger, 1, ++/*240996*/ OPC_CheckType, MVT::i32, ++/*240998*/ OPC_MoveParent, ++/*240999*/ OPC_MoveChild, 8, ++/*241001*/ OPC_CheckInteger, 1, ++/*241003*/ OPC_CheckType, MVT::i32, ++/*241005*/ OPC_MoveParent, ++/*241006*/ OPC_MoveChild, 9, ++/*241008*/ OPC_CheckInteger, 1, ++/*241010*/ OPC_CheckType, MVT::i32, ++/*241012*/ OPC_MoveParent, ++/*241013*/ OPC_MoveChild, 10, ++/*241015*/ OPC_CheckInteger, 1, ++/*241017*/ OPC_CheckType, MVT::i32, ++/*241019*/ OPC_MoveParent, ++/*241020*/ OPC_MoveChild, 11, ++/*241022*/ OPC_CheckInteger, 1, ++/*241024*/ OPC_CheckType, MVT::i32, ++/*241026*/ OPC_MoveParent, ++/*241027*/ OPC_MoveChild, 12, ++/*241029*/ OPC_CheckInteger, 1, ++/*241031*/ OPC_CheckType, MVT::i32, ++/*241033*/ OPC_MoveParent, ++/*241034*/ OPC_MoveChild, 13, ++/*241036*/ OPC_CheckInteger, 1, ++/*241038*/ OPC_CheckType, MVT::i32, ++/*241040*/ OPC_MoveParent, ++/*241041*/ OPC_MoveChild, 14, ++/*241043*/ OPC_CheckInteger, 1, ++/*241045*/ OPC_CheckType, MVT::i32, ++/*241047*/ OPC_MoveParent, ++/*241048*/ OPC_MoveChild, 15, ++/*241050*/ OPC_CheckInteger, 1, ++/*241052*/ OPC_CheckType, MVT::i32, ++/*241054*/ OPC_MoveParent, ++/*241055*/ OPC_MoveParent, ++/*241056*/ OPC_CheckChild1Same, 1, ++/*241058*/ OPC_MoveParent, ++/*241059*/ OPC_MoveParent, ++/*241060*/ OPC_MoveChild1, ++/*241061*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*241064*/ OPC_CheckChild0Integer, 15, ++/*241066*/ OPC_CheckChild0Type, MVT::i32, ++/*241068*/ OPC_CheckChild1Integer, 15, ++/*241070*/ OPC_CheckChild1Type, MVT::i32, ++/*241072*/ OPC_CheckChild2Integer, 15, ++/*241074*/ OPC_CheckChild2Type, MVT::i32, ++/*241076*/ OPC_CheckChild3Integer, 15, ++/*241078*/ OPC_CheckChild3Type, MVT::i32, ++/*241080*/ OPC_CheckChild4Integer, 15, ++/*241082*/ OPC_CheckChild4Type, MVT::i32, ++/*241084*/ OPC_MoveChild5, ++/*241085*/ OPC_CheckInteger, 15, ++/*241087*/ OPC_CheckType, MVT::i32, ++/*241089*/ OPC_MoveParent, ++/*241090*/ OPC_MoveChild6, ++/*241091*/ OPC_CheckInteger, 15, ++/*241093*/ OPC_CheckType, MVT::i32, ++/*241095*/ OPC_MoveParent, ++/*241096*/ OPC_MoveChild7, ++/*241097*/ OPC_CheckInteger, 15, ++/*241099*/ OPC_CheckType, MVT::i32, ++/*241101*/ OPC_MoveParent, ++/*241102*/ OPC_MoveChild, 8, ++/*241104*/ OPC_CheckInteger, 15, ++/*241106*/ OPC_CheckType, MVT::i32, ++/*241108*/ OPC_MoveParent, ++/*241109*/ OPC_MoveChild, 9, ++/*241111*/ OPC_CheckInteger, 15, ++/*241113*/ OPC_CheckType, MVT::i32, ++/*241115*/ OPC_MoveParent, ++/*241116*/ OPC_MoveChild, 10, ++/*241118*/ OPC_CheckInteger, 15, ++/*241120*/ OPC_CheckType, MVT::i32, ++/*241122*/ OPC_MoveParent, ++/*241123*/ OPC_MoveChild, 11, ++/*241125*/ OPC_CheckInteger, 15, ++/*241127*/ OPC_CheckType, MVT::i32, ++/*241129*/ OPC_MoveParent, ++/*241130*/ OPC_MoveChild, 12, ++/*241132*/ OPC_CheckInteger, 15, ++/*241134*/ OPC_CheckType, MVT::i32, ++/*241136*/ OPC_MoveParent, ++/*241137*/ OPC_MoveChild, 13, ++/*241139*/ OPC_CheckInteger, 15, ++/*241141*/ OPC_CheckType, MVT::i32, ++/*241143*/ OPC_MoveParent, ++/*241144*/ OPC_MoveChild, 14, ++/*241146*/ OPC_CheckInteger, 15, ++/*241148*/ OPC_CheckType, MVT::i32, ++/*241150*/ OPC_MoveParent, ++/*241151*/ OPC_MoveChild, 15, ++/*241153*/ OPC_CheckInteger, 15, ++/*241155*/ OPC_CheckType, MVT::i32, ++/*241157*/ OPC_MoveParent, ++/*241158*/ OPC_CheckType, MVT::v16i16, ++/*241160*/ OPC_MoveParent, ++/*241161*/ OPC_MoveParent, ++/*241162*/ OPC_MoveParent, ++/*241163*/ OPC_MoveChild1, ++/*241164*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*241167*/ OPC_CheckChild0Integer, 1, ++/*241169*/ OPC_CheckChild0Type, MVT::i32, ++/*241171*/ OPC_CheckChild1Integer, 1, ++/*241173*/ OPC_CheckChild1Type, MVT::i32, ++/*241175*/ OPC_CheckChild2Integer, 1, ++/*241177*/ OPC_CheckChild2Type, MVT::i32, ++/*241179*/ OPC_CheckChild3Integer, 1, ++/*241181*/ OPC_CheckChild3Type, MVT::i32, ++/*241183*/ OPC_CheckChild4Integer, 1, ++/*241185*/ OPC_CheckChild4Type, MVT::i32, ++/*241187*/ OPC_MoveChild5, ++/*241188*/ OPC_CheckInteger, 1, ++/*241190*/ OPC_CheckType, MVT::i32, ++/*241192*/ OPC_MoveParent, ++/*241193*/ OPC_MoveChild6, ++/*241194*/ OPC_CheckInteger, 1, ++/*241196*/ OPC_CheckType, MVT::i32, ++/*241198*/ OPC_MoveParent, ++/*241199*/ OPC_MoveChild7, ++/*241200*/ OPC_CheckInteger, 1, ++/*241202*/ OPC_CheckType, MVT::i32, ++/*241204*/ OPC_MoveParent, ++/*241205*/ OPC_MoveChild, 8, ++/*241207*/ OPC_CheckInteger, 1, ++/*241209*/ OPC_CheckType, MVT::i32, ++/*241211*/ OPC_MoveParent, ++/*241212*/ OPC_MoveChild, 9, ++/*241214*/ OPC_CheckInteger, 1, ++/*241216*/ OPC_CheckType, MVT::i32, ++/*241218*/ OPC_MoveParent, ++/*241219*/ OPC_MoveChild, 10, ++/*241221*/ OPC_CheckInteger, 1, ++/*241223*/ OPC_CheckType, MVT::i32, ++/*241225*/ OPC_MoveParent, ++/*241226*/ OPC_MoveChild, 11, ++/*241228*/ OPC_CheckInteger, 1, ++/*241230*/ OPC_CheckType, MVT::i32, ++/*241232*/ OPC_MoveParent, ++/*241233*/ OPC_MoveChild, 12, ++/*241235*/ OPC_CheckInteger, 1, ++/*241237*/ OPC_CheckType, MVT::i32, ++/*241239*/ OPC_MoveParent, ++/*241240*/ OPC_MoveChild, 13, ++/*241242*/ OPC_CheckInteger, 1, ++/*241244*/ OPC_CheckType, MVT::i32, ++/*241246*/ OPC_MoveParent, ++/*241247*/ OPC_MoveChild, 14, ++/*241249*/ OPC_CheckInteger, 1, ++/*241251*/ OPC_CheckType, MVT::i32, ++/*241253*/ OPC_MoveParent, ++/*241254*/ OPC_MoveChild, 15, ++/*241256*/ OPC_CheckInteger, 1, ++/*241258*/ OPC_CheckType, MVT::i32, ++/*241260*/ OPC_MoveParent, ++/*241261*/ OPC_CheckType, MVT::v16i16, ++/*241263*/ OPC_MoveParent, ++/*241264*/ OPC_CheckType, MVT::v16i16, ++/*241266*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*241268*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*241276*/ /*Scope*/ 63|128,2/*319*/, /*->241597*/ ++/*241278*/ OPC_CheckChild0Same, 1, ++/*241280*/ OPC_MoveChild1, ++/*241281*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*241284*/ OPC_CheckChild0Integer, 1, ++/*241286*/ OPC_CheckChild0Type, MVT::i32, ++/*241288*/ OPC_CheckChild1Integer, 1, ++/*241290*/ OPC_CheckChild1Type, MVT::i32, ++/*241292*/ OPC_CheckChild2Integer, 1, ++/*241294*/ OPC_CheckChild2Type, MVT::i32, ++/*241296*/ OPC_CheckChild3Integer, 1, ++/*241298*/ OPC_CheckChild3Type, MVT::i32, ++/*241300*/ OPC_CheckChild4Integer, 1, ++/*241302*/ OPC_CheckChild4Type, MVT::i32, ++/*241304*/ OPC_MoveChild5, ++/*241305*/ OPC_CheckInteger, 1, ++/*241307*/ OPC_CheckType, MVT::i32, ++/*241309*/ OPC_MoveParent, ++/*241310*/ OPC_MoveChild6, ++/*241311*/ OPC_CheckInteger, 1, ++/*241313*/ OPC_CheckType, MVT::i32, ++/*241315*/ OPC_MoveParent, ++/*241316*/ OPC_MoveChild7, ++/*241317*/ OPC_CheckInteger, 1, ++/*241319*/ OPC_CheckType, MVT::i32, ++/*241321*/ OPC_MoveParent, ++/*241322*/ OPC_MoveChild, 8, ++/*241324*/ OPC_CheckInteger, 1, ++/*241326*/ OPC_CheckType, MVT::i32, ++/*241328*/ OPC_MoveParent, ++/*241329*/ OPC_MoveChild, 9, ++/*241331*/ OPC_CheckInteger, 1, ++/*241333*/ OPC_CheckType, MVT::i32, ++/*241335*/ OPC_MoveParent, ++/*241336*/ OPC_MoveChild, 10, ++/*241338*/ OPC_CheckInteger, 1, ++/*241340*/ OPC_CheckType, MVT::i32, ++/*241342*/ OPC_MoveParent, ++/*241343*/ OPC_MoveChild, 11, ++/*241345*/ OPC_CheckInteger, 1, ++/*241347*/ OPC_CheckType, MVT::i32, ++/*241349*/ OPC_MoveParent, ++/*241350*/ OPC_MoveChild, 12, ++/*241352*/ OPC_CheckInteger, 1, ++/*241354*/ OPC_CheckType, MVT::i32, ++/*241356*/ OPC_MoveParent, ++/*241357*/ OPC_MoveChild, 13, ++/*241359*/ OPC_CheckInteger, 1, ++/*241361*/ OPC_CheckType, MVT::i32, ++/*241363*/ OPC_MoveParent, ++/*241364*/ OPC_MoveChild, 14, ++/*241366*/ OPC_CheckInteger, 1, ++/*241368*/ OPC_CheckType, MVT::i32, ++/*241370*/ OPC_MoveParent, ++/*241371*/ OPC_MoveChild, 15, ++/*241373*/ OPC_CheckInteger, 1, ++/*241375*/ OPC_CheckType, MVT::i32, ++/*241377*/ OPC_MoveParent, ++/*241378*/ OPC_MoveParent, ++/*241379*/ OPC_MoveParent, ++/*241380*/ OPC_MoveParent, ++/*241381*/ OPC_MoveChild1, ++/*241382*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*241385*/ OPC_CheckChild0Integer, 15, ++/*241387*/ OPC_CheckChild0Type, MVT::i32, ++/*241389*/ OPC_CheckChild1Integer, 15, ++/*241391*/ OPC_CheckChild1Type, MVT::i32, ++/*241393*/ OPC_CheckChild2Integer, 15, ++/*241395*/ OPC_CheckChild2Type, MVT::i32, ++/*241397*/ OPC_CheckChild3Integer, 15, ++/*241399*/ OPC_CheckChild3Type, MVT::i32, ++/*241401*/ OPC_CheckChild4Integer, 15, ++/*241403*/ OPC_CheckChild4Type, MVT::i32, ++/*241405*/ OPC_MoveChild5, ++/*241406*/ OPC_CheckInteger, 15, ++/*241408*/ OPC_CheckType, MVT::i32, ++/*241410*/ OPC_MoveParent, ++/*241411*/ OPC_MoveChild6, ++/*241412*/ OPC_CheckInteger, 15, ++/*241414*/ OPC_CheckType, MVT::i32, ++/*241416*/ OPC_MoveParent, ++/*241417*/ OPC_MoveChild7, ++/*241418*/ OPC_CheckInteger, 15, ++/*241420*/ OPC_CheckType, MVT::i32, ++/*241422*/ OPC_MoveParent, ++/*241423*/ OPC_MoveChild, 8, ++/*241425*/ OPC_CheckInteger, 15, ++/*241427*/ OPC_CheckType, MVT::i32, ++/*241429*/ OPC_MoveParent, ++/*241430*/ OPC_MoveChild, 9, ++/*241432*/ OPC_CheckInteger, 15, ++/*241434*/ OPC_CheckType, MVT::i32, ++/*241436*/ OPC_MoveParent, ++/*241437*/ OPC_MoveChild, 10, ++/*241439*/ OPC_CheckInteger, 15, ++/*241441*/ OPC_CheckType, MVT::i32, ++/*241443*/ OPC_MoveParent, ++/*241444*/ OPC_MoveChild, 11, ++/*241446*/ OPC_CheckInteger, 15, ++/*241448*/ OPC_CheckType, MVT::i32, ++/*241450*/ OPC_MoveParent, ++/*241451*/ OPC_MoveChild, 12, ++/*241453*/ OPC_CheckInteger, 15, ++/*241455*/ OPC_CheckType, MVT::i32, ++/*241457*/ OPC_MoveParent, ++/*241458*/ OPC_MoveChild, 13, ++/*241460*/ OPC_CheckInteger, 15, ++/*241462*/ OPC_CheckType, MVT::i32, ++/*241464*/ OPC_MoveParent, ++/*241465*/ OPC_MoveChild, 14, ++/*241467*/ OPC_CheckInteger, 15, ++/*241469*/ OPC_CheckType, MVT::i32, ++/*241471*/ OPC_MoveParent, ++/*241472*/ OPC_MoveChild, 15, ++/*241474*/ OPC_CheckInteger, 15, ++/*241476*/ OPC_CheckType, MVT::i32, ++/*241478*/ OPC_MoveParent, ++/*241479*/ OPC_CheckType, MVT::v16i16, ++/*241481*/ OPC_MoveParent, ++/*241482*/ OPC_MoveParent, ++/*241483*/ OPC_MoveParent, ++/*241484*/ OPC_MoveChild1, ++/*241485*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*241488*/ OPC_CheckChild0Integer, 1, ++/*241490*/ OPC_CheckChild0Type, MVT::i32, ++/*241492*/ OPC_CheckChild1Integer, 1, ++/*241494*/ OPC_CheckChild1Type, MVT::i32, ++/*241496*/ OPC_CheckChild2Integer, 1, ++/*241498*/ OPC_CheckChild2Type, MVT::i32, ++/*241500*/ OPC_CheckChild3Integer, 1, ++/*241502*/ OPC_CheckChild3Type, MVT::i32, ++/*241504*/ OPC_CheckChild4Integer, 1, ++/*241506*/ OPC_CheckChild4Type, MVT::i32, ++/*241508*/ OPC_MoveChild5, ++/*241509*/ OPC_CheckInteger, 1, ++/*241511*/ OPC_CheckType, MVT::i32, ++/*241513*/ OPC_MoveParent, ++/*241514*/ OPC_MoveChild6, ++/*241515*/ OPC_CheckInteger, 1, ++/*241517*/ OPC_CheckType, MVT::i32, ++/*241519*/ OPC_MoveParent, ++/*241520*/ OPC_MoveChild7, ++/*241521*/ OPC_CheckInteger, 1, ++/*241523*/ OPC_CheckType, MVT::i32, ++/*241525*/ OPC_MoveParent, ++/*241526*/ OPC_MoveChild, 8, ++/*241528*/ OPC_CheckInteger, 1, ++/*241530*/ OPC_CheckType, MVT::i32, ++/*241532*/ OPC_MoveParent, ++/*241533*/ OPC_MoveChild, 9, ++/*241535*/ OPC_CheckInteger, 1, ++/*241537*/ OPC_CheckType, MVT::i32, ++/*241539*/ OPC_MoveParent, ++/*241540*/ OPC_MoveChild, 10, ++/*241542*/ OPC_CheckInteger, 1, ++/*241544*/ OPC_CheckType, MVT::i32, ++/*241546*/ OPC_MoveParent, ++/*241547*/ OPC_MoveChild, 11, ++/*241549*/ OPC_CheckInteger, 1, ++/*241551*/ OPC_CheckType, MVT::i32, ++/*241553*/ OPC_MoveParent, ++/*241554*/ OPC_MoveChild, 12, ++/*241556*/ OPC_CheckInteger, 1, ++/*241558*/ OPC_CheckType, MVT::i32, ++/*241560*/ OPC_MoveParent, ++/*241561*/ OPC_MoveChild, 13, ++/*241563*/ OPC_CheckInteger, 1, ++/*241565*/ OPC_CheckType, MVT::i32, ++/*241567*/ OPC_MoveParent, ++/*241568*/ OPC_MoveChild, 14, ++/*241570*/ OPC_CheckInteger, 1, ++/*241572*/ OPC_CheckType, MVT::i32, ++/*241574*/ OPC_MoveParent, ++/*241575*/ OPC_MoveChild, 15, ++/*241577*/ OPC_CheckInteger, 1, ++/*241579*/ OPC_CheckType, MVT::i32, ++/*241581*/ OPC_MoveParent, ++/*241582*/ OPC_CheckType, MVT::v16i16, ++/*241584*/ OPC_MoveParent, ++/*241585*/ OPC_CheckType, MVT::v16i16, ++/*241587*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*241589*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*241597*/ 0, /*End of Scope*/ ++/*241598*/ /*Scope*/ 68|128,19/*2500*/, /*->244100*/ ++/*241600*/ OPC_MoveChild0, ++/*241601*/ OPC_SwitchOpcode /*2 cases */, 37|128,4/*549*/, TARGET_VAL(ISD::BUILD_VECTOR),// ->242155 ++/*241606*/ OPC_CheckChild0Integer, 1, ++/*241608*/ OPC_CheckChild0Type, MVT::i32, ++/*241610*/ OPC_CheckChild1Integer, 1, ++/*241612*/ OPC_CheckChild1Type, MVT::i32, ++/*241614*/ OPC_CheckChild2Integer, 1, ++/*241616*/ OPC_CheckChild2Type, MVT::i32, ++/*241618*/ OPC_CheckChild3Integer, 1, ++/*241620*/ OPC_CheckChild3Type, MVT::i32, ++/*241622*/ OPC_CheckChild4Integer, 1, ++/*241624*/ OPC_CheckChild4Type, MVT::i32, ++/*241626*/ OPC_MoveChild5, ++/*241627*/ OPC_CheckInteger, 1, ++/*241629*/ OPC_CheckType, MVT::i32, ++/*241631*/ OPC_MoveParent, ++/*241632*/ OPC_MoveChild6, ++/*241633*/ OPC_CheckInteger, 1, ++/*241635*/ OPC_CheckType, MVT::i32, ++/*241637*/ OPC_MoveParent, ++/*241638*/ OPC_MoveChild7, ++/*241639*/ OPC_CheckInteger, 1, ++/*241641*/ OPC_CheckType, MVT::i32, ++/*241643*/ OPC_MoveParent, ++/*241644*/ OPC_MoveChild, 8, ++/*241646*/ OPC_CheckInteger, 1, ++/*241648*/ OPC_CheckType, MVT::i32, ++/*241650*/ OPC_MoveParent, ++/*241651*/ OPC_MoveChild, 9, ++/*241653*/ OPC_CheckInteger, 1, ++/*241655*/ OPC_CheckType, MVT::i32, ++/*241657*/ OPC_MoveParent, ++/*241658*/ OPC_MoveChild, 10, ++/*241660*/ OPC_CheckInteger, 1, ++/*241662*/ OPC_CheckType, MVT::i32, ++/*241664*/ OPC_MoveParent, ++/*241665*/ OPC_MoveChild, 11, ++/*241667*/ OPC_CheckInteger, 1, ++/*241669*/ OPC_CheckType, MVT::i32, ++/*241671*/ OPC_MoveParent, ++/*241672*/ OPC_MoveChild, 12, ++/*241674*/ OPC_CheckInteger, 1, ++/*241676*/ OPC_CheckType, MVT::i32, ++/*241678*/ OPC_MoveParent, ++/*241679*/ OPC_MoveChild, 13, ++/*241681*/ OPC_CheckInteger, 1, ++/*241683*/ OPC_CheckType, MVT::i32, ++/*241685*/ OPC_MoveParent, ++/*241686*/ OPC_MoveChild, 14, ++/*241688*/ OPC_CheckInteger, 1, ++/*241690*/ OPC_CheckType, MVT::i32, ++/*241692*/ OPC_MoveParent, ++/*241693*/ OPC_MoveChild, 15, ++/*241695*/ OPC_CheckInteger, 1, ++/*241697*/ OPC_CheckType, MVT::i32, ++/*241699*/ OPC_MoveParent, ++/*241700*/ OPC_MoveParent, ++/*241701*/ OPC_MoveChild1, ++/*241702*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*241705*/ OPC_Scope, 94|128,1/*222*/, /*->241930*/ // 2 children in Scope ++/*241708*/ OPC_CheckChild0Same, 0, ++/*241710*/ OPC_CheckChild1Same, 1, ++/*241712*/ OPC_MoveParent, ++/*241713*/ OPC_MoveParent, ++/*241714*/ OPC_MoveChild1, ++/*241715*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*241718*/ OPC_CheckChild0Integer, 15, ++/*241720*/ OPC_CheckChild0Type, MVT::i32, ++/*241722*/ OPC_CheckChild1Integer, 15, ++/*241724*/ OPC_CheckChild1Type, MVT::i32, ++/*241726*/ OPC_CheckChild2Integer, 15, ++/*241728*/ OPC_CheckChild2Type, MVT::i32, ++/*241730*/ OPC_CheckChild3Integer, 15, ++/*241732*/ OPC_CheckChild3Type, MVT::i32, ++/*241734*/ OPC_CheckChild4Integer, 15, ++/*241736*/ OPC_CheckChild4Type, MVT::i32, ++/*241738*/ OPC_MoveChild5, ++/*241739*/ OPC_CheckInteger, 15, ++/*241741*/ OPC_CheckType, MVT::i32, ++/*241743*/ OPC_MoveParent, ++/*241744*/ OPC_MoveChild6, ++/*241745*/ OPC_CheckInteger, 15, ++/*241747*/ OPC_CheckType, MVT::i32, ++/*241749*/ OPC_MoveParent, ++/*241750*/ OPC_MoveChild7, ++/*241751*/ OPC_CheckInteger, 15, ++/*241753*/ OPC_CheckType, MVT::i32, ++/*241755*/ OPC_MoveParent, ++/*241756*/ OPC_MoveChild, 8, ++/*241758*/ OPC_CheckInteger, 15, ++/*241760*/ OPC_CheckType, MVT::i32, ++/*241762*/ OPC_MoveParent, ++/*241763*/ OPC_MoveChild, 9, ++/*241765*/ OPC_CheckInteger, 15, ++/*241767*/ OPC_CheckType, MVT::i32, ++/*241769*/ OPC_MoveParent, ++/*241770*/ OPC_MoveChild, 10, ++/*241772*/ OPC_CheckInteger, 15, ++/*241774*/ OPC_CheckType, MVT::i32, ++/*241776*/ OPC_MoveParent, ++/*241777*/ OPC_MoveChild, 11, ++/*241779*/ OPC_CheckInteger, 15, ++/*241781*/ OPC_CheckType, MVT::i32, ++/*241783*/ OPC_MoveParent, ++/*241784*/ OPC_MoveChild, 12, ++/*241786*/ OPC_CheckInteger, 15, ++/*241788*/ OPC_CheckType, MVT::i32, ++/*241790*/ OPC_MoveParent, ++/*241791*/ OPC_MoveChild, 13, ++/*241793*/ OPC_CheckInteger, 15, ++/*241795*/ OPC_CheckType, MVT::i32, ++/*241797*/ OPC_MoveParent, ++/*241798*/ OPC_MoveChild, 14, ++/*241800*/ OPC_CheckInteger, 15, ++/*241802*/ OPC_CheckType, MVT::i32, ++/*241804*/ OPC_MoveParent, ++/*241805*/ OPC_MoveChild, 15, ++/*241807*/ OPC_CheckInteger, 15, ++/*241809*/ OPC_CheckType, MVT::i32, ++/*241811*/ OPC_MoveParent, ++/*241812*/ OPC_CheckType, MVT::v16i16, ++/*241814*/ OPC_MoveParent, ++/*241815*/ OPC_MoveParent, ++/*241816*/ OPC_MoveParent, ++/*241817*/ OPC_MoveChild1, ++/*241818*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*241821*/ OPC_CheckChild0Integer, 1, ++/*241823*/ OPC_CheckChild0Type, MVT::i32, ++/*241825*/ OPC_CheckChild1Integer, 1, ++/*241827*/ OPC_CheckChild1Type, MVT::i32, ++/*241829*/ OPC_CheckChild2Integer, 1, ++/*241831*/ OPC_CheckChild2Type, MVT::i32, ++/*241833*/ OPC_CheckChild3Integer, 1, ++/*241835*/ OPC_CheckChild3Type, MVT::i32, ++/*241837*/ OPC_CheckChild4Integer, 1, ++/*241839*/ OPC_CheckChild4Type, MVT::i32, ++/*241841*/ OPC_MoveChild5, ++/*241842*/ OPC_CheckInteger, 1, ++/*241844*/ OPC_CheckType, MVT::i32, ++/*241846*/ OPC_MoveParent, ++/*241847*/ OPC_MoveChild6, ++/*241848*/ OPC_CheckInteger, 1, ++/*241850*/ OPC_CheckType, MVT::i32, ++/*241852*/ OPC_MoveParent, ++/*241853*/ OPC_MoveChild7, ++/*241854*/ OPC_CheckInteger, 1, ++/*241856*/ OPC_CheckType, MVT::i32, ++/*241858*/ OPC_MoveParent, ++/*241859*/ OPC_MoveChild, 8, ++/*241861*/ OPC_CheckInteger, 1, ++/*241863*/ OPC_CheckType, MVT::i32, ++/*241865*/ OPC_MoveParent, ++/*241866*/ OPC_MoveChild, 9, ++/*241868*/ OPC_CheckInteger, 1, ++/*241870*/ OPC_CheckType, MVT::i32, ++/*241872*/ OPC_MoveParent, ++/*241873*/ OPC_MoveChild, 10, ++/*241875*/ OPC_CheckInteger, 1, ++/*241877*/ OPC_CheckType, MVT::i32, ++/*241879*/ OPC_MoveParent, ++/*241880*/ OPC_MoveChild, 11, ++/*241882*/ OPC_CheckInteger, 1, ++/*241884*/ OPC_CheckType, MVT::i32, ++/*241886*/ OPC_MoveParent, ++/*241887*/ OPC_MoveChild, 12, ++/*241889*/ OPC_CheckInteger, 1, ++/*241891*/ OPC_CheckType, MVT::i32, ++/*241893*/ OPC_MoveParent, ++/*241894*/ OPC_MoveChild, 13, ++/*241896*/ OPC_CheckInteger, 1, ++/*241898*/ OPC_CheckType, MVT::i32, ++/*241900*/ OPC_MoveParent, ++/*241901*/ OPC_MoveChild, 14, ++/*241903*/ OPC_CheckInteger, 1, ++/*241905*/ OPC_CheckType, MVT::i32, ++/*241907*/ OPC_MoveParent, ++/*241908*/ OPC_MoveChild, 15, ++/*241910*/ OPC_CheckInteger, 1, ++/*241912*/ OPC_CheckType, MVT::i32, ++/*241914*/ OPC_MoveParent, ++/*241915*/ OPC_CheckType, MVT::v16i16, ++/*241917*/ OPC_MoveParent, ++/*241918*/ OPC_CheckType, MVT::v16i16, ++/*241920*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*241922*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*241930*/ /*Scope*/ 94|128,1/*222*/, /*->242154*/ ++/*241932*/ OPC_CheckChild0Same, 1, ++/*241934*/ OPC_CheckChild1Same, 0, ++/*241936*/ OPC_MoveParent, ++/*241937*/ OPC_MoveParent, ++/*241938*/ OPC_MoveChild1, ++/*241939*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*241942*/ OPC_CheckChild0Integer, 15, ++/*241944*/ OPC_CheckChild0Type, MVT::i32, ++/*241946*/ OPC_CheckChild1Integer, 15, ++/*241948*/ OPC_CheckChild1Type, MVT::i32, ++/*241950*/ OPC_CheckChild2Integer, 15, ++/*241952*/ OPC_CheckChild2Type, MVT::i32, ++/*241954*/ OPC_CheckChild3Integer, 15, ++/*241956*/ OPC_CheckChild3Type, MVT::i32, ++/*241958*/ OPC_CheckChild4Integer, 15, ++/*241960*/ OPC_CheckChild4Type, MVT::i32, ++/*241962*/ OPC_MoveChild5, ++/*241963*/ OPC_CheckInteger, 15, ++/*241965*/ OPC_CheckType, MVT::i32, ++/*241967*/ OPC_MoveParent, ++/*241968*/ OPC_MoveChild6, ++/*241969*/ OPC_CheckInteger, 15, ++/*241971*/ OPC_CheckType, MVT::i32, ++/*241973*/ OPC_MoveParent, ++/*241974*/ OPC_MoveChild7, ++/*241975*/ OPC_CheckInteger, 15, ++/*241977*/ OPC_CheckType, MVT::i32, ++/*241979*/ OPC_MoveParent, ++/*241980*/ OPC_MoveChild, 8, ++/*241982*/ OPC_CheckInteger, 15, ++/*241984*/ OPC_CheckType, MVT::i32, ++/*241986*/ OPC_MoveParent, ++/*241987*/ OPC_MoveChild, 9, ++/*241989*/ OPC_CheckInteger, 15, ++/*241991*/ OPC_CheckType, MVT::i32, ++/*241993*/ OPC_MoveParent, ++/*241994*/ OPC_MoveChild, 10, ++/*241996*/ OPC_CheckInteger, 15, ++/*241998*/ OPC_CheckType, MVT::i32, ++/*242000*/ OPC_MoveParent, ++/*242001*/ OPC_MoveChild, 11, ++/*242003*/ OPC_CheckInteger, 15, ++/*242005*/ OPC_CheckType, MVT::i32, ++/*242007*/ OPC_MoveParent, ++/*242008*/ OPC_MoveChild, 12, ++/*242010*/ OPC_CheckInteger, 15, ++/*242012*/ OPC_CheckType, MVT::i32, ++/*242014*/ OPC_MoveParent, ++/*242015*/ OPC_MoveChild, 13, ++/*242017*/ OPC_CheckInteger, 15, ++/*242019*/ OPC_CheckType, MVT::i32, ++/*242021*/ OPC_MoveParent, ++/*242022*/ OPC_MoveChild, 14, ++/*242024*/ OPC_CheckInteger, 15, ++/*242026*/ OPC_CheckType, MVT::i32, ++/*242028*/ OPC_MoveParent, ++/*242029*/ OPC_MoveChild, 15, ++/*242031*/ OPC_CheckInteger, 15, ++/*242033*/ OPC_CheckType, MVT::i32, ++/*242035*/ OPC_MoveParent, ++/*242036*/ OPC_CheckType, MVT::v16i16, ++/*242038*/ OPC_MoveParent, ++/*242039*/ OPC_MoveParent, ++/*242040*/ OPC_MoveParent, ++/*242041*/ OPC_MoveChild1, ++/*242042*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*242045*/ OPC_CheckChild0Integer, 1, ++/*242047*/ OPC_CheckChild0Type, MVT::i32, ++/*242049*/ OPC_CheckChild1Integer, 1, ++/*242051*/ OPC_CheckChild1Type, MVT::i32, ++/*242053*/ OPC_CheckChild2Integer, 1, ++/*242055*/ OPC_CheckChild2Type, MVT::i32, ++/*242057*/ OPC_CheckChild3Integer, 1, ++/*242059*/ OPC_CheckChild3Type, MVT::i32, ++/*242061*/ OPC_CheckChild4Integer, 1, ++/*242063*/ OPC_CheckChild4Type, MVT::i32, ++/*242065*/ OPC_MoveChild5, ++/*242066*/ OPC_CheckInteger, 1, ++/*242068*/ OPC_CheckType, MVT::i32, ++/*242070*/ OPC_MoveParent, ++/*242071*/ OPC_MoveChild6, ++/*242072*/ OPC_CheckInteger, 1, ++/*242074*/ OPC_CheckType, MVT::i32, ++/*242076*/ OPC_MoveParent, ++/*242077*/ OPC_MoveChild7, ++/*242078*/ OPC_CheckInteger, 1, ++/*242080*/ OPC_CheckType, MVT::i32, ++/*242082*/ OPC_MoveParent, ++/*242083*/ OPC_MoveChild, 8, ++/*242085*/ OPC_CheckInteger, 1, ++/*242087*/ OPC_CheckType, MVT::i32, ++/*242089*/ OPC_MoveParent, ++/*242090*/ OPC_MoveChild, 9, ++/*242092*/ OPC_CheckInteger, 1, ++/*242094*/ OPC_CheckType, MVT::i32, ++/*242096*/ OPC_MoveParent, ++/*242097*/ OPC_MoveChild, 10, ++/*242099*/ OPC_CheckInteger, 1, ++/*242101*/ OPC_CheckType, MVT::i32, ++/*242103*/ OPC_MoveParent, ++/*242104*/ OPC_MoveChild, 11, ++/*242106*/ OPC_CheckInteger, 1, ++/*242108*/ OPC_CheckType, MVT::i32, ++/*242110*/ OPC_MoveParent, ++/*242111*/ OPC_MoveChild, 12, ++/*242113*/ OPC_CheckInteger, 1, ++/*242115*/ OPC_CheckType, MVT::i32, ++/*242117*/ OPC_MoveParent, ++/*242118*/ OPC_MoveChild, 13, ++/*242120*/ OPC_CheckInteger, 1, ++/*242122*/ OPC_CheckType, MVT::i32, ++/*242124*/ OPC_MoveParent, ++/*242125*/ OPC_MoveChild, 14, ++/*242127*/ OPC_CheckInteger, 1, ++/*242129*/ OPC_CheckType, MVT::i32, ++/*242131*/ OPC_MoveParent, ++/*242132*/ OPC_MoveChild, 15, ++/*242134*/ OPC_CheckInteger, 1, ++/*242136*/ OPC_CheckType, MVT::i32, ++/*242138*/ OPC_MoveParent, ++/*242139*/ OPC_CheckType, MVT::v16i16, ++/*242141*/ OPC_MoveParent, ++/*242142*/ OPC_CheckType, MVT::v16i16, ++/*242144*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*242146*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*242154*/ 0, /*End of Scope*/ ++/*242155*/ /*SwitchOpcode*/ 20|128,15/*1940*/, TARGET_VAL(ISD::ADD),// ->244099 ++/*242159*/ OPC_Scope, 65|128,2/*321*/, /*->242483*/ // 6 children in Scope ++/*242162*/ OPC_MoveChild0, ++/*242163*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*242166*/ OPC_CheckChild0Integer, 1, ++/*242168*/ OPC_CheckChild0Type, MVT::i32, ++/*242170*/ OPC_CheckChild1Integer, 1, ++/*242172*/ OPC_CheckChild1Type, MVT::i32, ++/*242174*/ OPC_CheckChild2Integer, 1, ++/*242176*/ OPC_CheckChild2Type, MVT::i32, ++/*242178*/ OPC_CheckChild3Integer, 1, ++/*242180*/ OPC_CheckChild3Type, MVT::i32, ++/*242182*/ OPC_CheckChild4Integer, 1, ++/*242184*/ OPC_CheckChild4Type, MVT::i32, ++/*242186*/ OPC_MoveChild5, ++/*242187*/ OPC_CheckInteger, 1, ++/*242189*/ OPC_CheckType, MVT::i32, ++/*242191*/ OPC_MoveParent, ++/*242192*/ OPC_MoveChild6, ++/*242193*/ OPC_CheckInteger, 1, ++/*242195*/ OPC_CheckType, MVT::i32, ++/*242197*/ OPC_MoveParent, ++/*242198*/ OPC_MoveChild7, ++/*242199*/ OPC_CheckInteger, 1, ++/*242201*/ OPC_CheckType, MVT::i32, ++/*242203*/ OPC_MoveParent, ++/*242204*/ OPC_MoveChild, 8, ++/*242206*/ OPC_CheckInteger, 1, ++/*242208*/ OPC_CheckType, MVT::i32, ++/*242210*/ OPC_MoveParent, ++/*242211*/ OPC_MoveChild, 9, ++/*242213*/ OPC_CheckInteger, 1, ++/*242215*/ OPC_CheckType, MVT::i32, ++/*242217*/ OPC_MoveParent, ++/*242218*/ OPC_MoveChild, 10, ++/*242220*/ OPC_CheckInteger, 1, ++/*242222*/ OPC_CheckType, MVT::i32, ++/*242224*/ OPC_MoveParent, ++/*242225*/ OPC_MoveChild, 11, ++/*242227*/ OPC_CheckInteger, 1, ++/*242229*/ OPC_CheckType, MVT::i32, ++/*242231*/ OPC_MoveParent, ++/*242232*/ OPC_MoveChild, 12, ++/*242234*/ OPC_CheckInteger, 1, ++/*242236*/ OPC_CheckType, MVT::i32, ++/*242238*/ OPC_MoveParent, ++/*242239*/ OPC_MoveChild, 13, ++/*242241*/ OPC_CheckInteger, 1, ++/*242243*/ OPC_CheckType, MVT::i32, ++/*242245*/ OPC_MoveParent, ++/*242246*/ OPC_MoveChild, 14, ++/*242248*/ OPC_CheckInteger, 1, ++/*242250*/ OPC_CheckType, MVT::i32, ++/*242252*/ OPC_MoveParent, ++/*242253*/ OPC_MoveChild, 15, ++/*242255*/ OPC_CheckInteger, 1, ++/*242257*/ OPC_CheckType, MVT::i32, ++/*242259*/ OPC_MoveParent, ++/*242260*/ OPC_MoveParent, ++/*242261*/ OPC_CheckChild1Same, 1, ++/*242263*/ OPC_MoveParent, ++/*242264*/ OPC_CheckChild1Same, 0, ++/*242266*/ OPC_MoveParent, ++/*242267*/ OPC_MoveChild1, ++/*242268*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*242271*/ OPC_CheckChild0Integer, 15, ++/*242273*/ OPC_CheckChild0Type, MVT::i32, ++/*242275*/ OPC_CheckChild1Integer, 15, ++/*242277*/ OPC_CheckChild1Type, MVT::i32, ++/*242279*/ OPC_CheckChild2Integer, 15, ++/*242281*/ OPC_CheckChild2Type, MVT::i32, ++/*242283*/ OPC_CheckChild3Integer, 15, ++/*242285*/ OPC_CheckChild3Type, MVT::i32, ++/*242287*/ OPC_CheckChild4Integer, 15, ++/*242289*/ OPC_CheckChild4Type, MVT::i32, ++/*242291*/ OPC_MoveChild5, ++/*242292*/ OPC_CheckInteger, 15, ++/*242294*/ OPC_CheckType, MVT::i32, ++/*242296*/ OPC_MoveParent, ++/*242297*/ OPC_MoveChild6, ++/*242298*/ OPC_CheckInteger, 15, ++/*242300*/ OPC_CheckType, MVT::i32, ++/*242302*/ OPC_MoveParent, ++/*242303*/ OPC_MoveChild7, ++/*242304*/ OPC_CheckInteger, 15, ++/*242306*/ OPC_CheckType, MVT::i32, ++/*242308*/ OPC_MoveParent, ++/*242309*/ OPC_MoveChild, 8, ++/*242311*/ OPC_CheckInteger, 15, ++/*242313*/ OPC_CheckType, MVT::i32, ++/*242315*/ OPC_MoveParent, ++/*242316*/ OPC_MoveChild, 9, ++/*242318*/ OPC_CheckInteger, 15, ++/*242320*/ OPC_CheckType, MVT::i32, ++/*242322*/ OPC_MoveParent, ++/*242323*/ OPC_MoveChild, 10, ++/*242325*/ OPC_CheckInteger, 15, ++/*242327*/ OPC_CheckType, MVT::i32, ++/*242329*/ OPC_MoveParent, ++/*242330*/ OPC_MoveChild, 11, ++/*242332*/ OPC_CheckInteger, 15, ++/*242334*/ OPC_CheckType, MVT::i32, ++/*242336*/ OPC_MoveParent, ++/*242337*/ OPC_MoveChild, 12, ++/*242339*/ OPC_CheckInteger, 15, ++/*242341*/ OPC_CheckType, MVT::i32, ++/*242343*/ OPC_MoveParent, ++/*242344*/ OPC_MoveChild, 13, ++/*242346*/ OPC_CheckInteger, 15, ++/*242348*/ OPC_CheckType, MVT::i32, ++/*242350*/ OPC_MoveParent, ++/*242351*/ OPC_MoveChild, 14, ++/*242353*/ OPC_CheckInteger, 15, ++/*242355*/ OPC_CheckType, MVT::i32, ++/*242357*/ OPC_MoveParent, ++/*242358*/ OPC_MoveChild, 15, ++/*242360*/ OPC_CheckInteger, 15, ++/*242362*/ OPC_CheckType, MVT::i32, ++/*242364*/ OPC_MoveParent, ++/*242365*/ OPC_CheckType, MVT::v16i16, ++/*242367*/ OPC_MoveParent, ++/*242368*/ OPC_MoveParent, ++/*242369*/ OPC_MoveParent, ++/*242370*/ OPC_MoveChild1, ++/*242371*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*242374*/ OPC_CheckChild0Integer, 1, ++/*242376*/ OPC_CheckChild0Type, MVT::i32, ++/*242378*/ OPC_CheckChild1Integer, 1, ++/*242380*/ OPC_CheckChild1Type, MVT::i32, ++/*242382*/ OPC_CheckChild2Integer, 1, ++/*242384*/ OPC_CheckChild2Type, MVT::i32, ++/*242386*/ OPC_CheckChild3Integer, 1, ++/*242388*/ OPC_CheckChild3Type, MVT::i32, ++/*242390*/ OPC_CheckChild4Integer, 1, ++/*242392*/ OPC_CheckChild4Type, MVT::i32, ++/*242394*/ OPC_MoveChild5, ++/*242395*/ OPC_CheckInteger, 1, ++/*242397*/ OPC_CheckType, MVT::i32, ++/*242399*/ OPC_MoveParent, ++/*242400*/ OPC_MoveChild6, ++/*242401*/ OPC_CheckInteger, 1, ++/*242403*/ OPC_CheckType, MVT::i32, ++/*242405*/ OPC_MoveParent, ++/*242406*/ OPC_MoveChild7, ++/*242407*/ OPC_CheckInteger, 1, ++/*242409*/ OPC_CheckType, MVT::i32, ++/*242411*/ OPC_MoveParent, ++/*242412*/ OPC_MoveChild, 8, ++/*242414*/ OPC_CheckInteger, 1, ++/*242416*/ OPC_CheckType, MVT::i32, ++/*242418*/ OPC_MoveParent, ++/*242419*/ OPC_MoveChild, 9, ++/*242421*/ OPC_CheckInteger, 1, ++/*242423*/ OPC_CheckType, MVT::i32, ++/*242425*/ OPC_MoveParent, ++/*242426*/ OPC_MoveChild, 10, ++/*242428*/ OPC_CheckInteger, 1, ++/*242430*/ OPC_CheckType, MVT::i32, ++/*242432*/ OPC_MoveParent, ++/*242433*/ OPC_MoveChild, 11, ++/*242435*/ OPC_CheckInteger, 1, ++/*242437*/ OPC_CheckType, MVT::i32, ++/*242439*/ OPC_MoveParent, ++/*242440*/ OPC_MoveChild, 12, ++/*242442*/ OPC_CheckInteger, 1, ++/*242444*/ OPC_CheckType, MVT::i32, ++/*242446*/ OPC_MoveParent, ++/*242447*/ OPC_MoveChild, 13, ++/*242449*/ OPC_CheckInteger, 1, ++/*242451*/ OPC_CheckType, MVT::i32, ++/*242453*/ OPC_MoveParent, ++/*242454*/ OPC_MoveChild, 14, ++/*242456*/ OPC_CheckInteger, 1, ++/*242458*/ OPC_CheckType, MVT::i32, ++/*242460*/ OPC_MoveParent, ++/*242461*/ OPC_MoveChild, 15, ++/*242463*/ OPC_CheckInteger, 1, ++/*242465*/ OPC_CheckType, MVT::i32, ++/*242467*/ OPC_MoveParent, ++/*242468*/ OPC_CheckType, MVT::v16i16, ++/*242470*/ OPC_MoveParent, ++/*242471*/ OPC_CheckType, MVT::v16i16, ++/*242473*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*242475*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a), LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*242483*/ /*Scope*/ 65|128,2/*321*/, /*->242806*/ ++/*242485*/ OPC_CheckChild0Same, 1, ++/*242487*/ OPC_MoveChild1, ++/*242488*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*242491*/ OPC_CheckChild0Integer, 1, ++/*242493*/ OPC_CheckChild0Type, MVT::i32, ++/*242495*/ OPC_CheckChild1Integer, 1, ++/*242497*/ OPC_CheckChild1Type, MVT::i32, ++/*242499*/ OPC_CheckChild2Integer, 1, ++/*242501*/ OPC_CheckChild2Type, MVT::i32, ++/*242503*/ OPC_CheckChild3Integer, 1, ++/*242505*/ OPC_CheckChild3Type, MVT::i32, ++/*242507*/ OPC_CheckChild4Integer, 1, ++/*242509*/ OPC_CheckChild4Type, MVT::i32, ++/*242511*/ OPC_MoveChild5, ++/*242512*/ OPC_CheckInteger, 1, ++/*242514*/ OPC_CheckType, MVT::i32, ++/*242516*/ OPC_MoveParent, ++/*242517*/ OPC_MoveChild6, ++/*242518*/ OPC_CheckInteger, 1, ++/*242520*/ OPC_CheckType, MVT::i32, ++/*242522*/ OPC_MoveParent, ++/*242523*/ OPC_MoveChild7, ++/*242524*/ OPC_CheckInteger, 1, ++/*242526*/ OPC_CheckType, MVT::i32, ++/*242528*/ OPC_MoveParent, ++/*242529*/ OPC_MoveChild, 8, ++/*242531*/ OPC_CheckInteger, 1, ++/*242533*/ OPC_CheckType, MVT::i32, ++/*242535*/ OPC_MoveParent, ++/*242536*/ OPC_MoveChild, 9, ++/*242538*/ OPC_CheckInteger, 1, ++/*242540*/ OPC_CheckType, MVT::i32, ++/*242542*/ OPC_MoveParent, ++/*242543*/ OPC_MoveChild, 10, ++/*242545*/ OPC_CheckInteger, 1, ++/*242547*/ OPC_CheckType, MVT::i32, ++/*242549*/ OPC_MoveParent, ++/*242550*/ OPC_MoveChild, 11, ++/*242552*/ OPC_CheckInteger, 1, ++/*242554*/ OPC_CheckType, MVT::i32, ++/*242556*/ OPC_MoveParent, ++/*242557*/ OPC_MoveChild, 12, ++/*242559*/ OPC_CheckInteger, 1, ++/*242561*/ OPC_CheckType, MVT::i32, ++/*242563*/ OPC_MoveParent, ++/*242564*/ OPC_MoveChild, 13, ++/*242566*/ OPC_CheckInteger, 1, ++/*242568*/ OPC_CheckType, MVT::i32, ++/*242570*/ OPC_MoveParent, ++/*242571*/ OPC_MoveChild, 14, ++/*242573*/ OPC_CheckInteger, 1, ++/*242575*/ OPC_CheckType, MVT::i32, ++/*242577*/ OPC_MoveParent, ++/*242578*/ OPC_MoveChild, 15, ++/*242580*/ OPC_CheckInteger, 1, ++/*242582*/ OPC_CheckType, MVT::i32, ++/*242584*/ OPC_MoveParent, ++/*242585*/ OPC_MoveParent, ++/*242586*/ OPC_MoveParent, ++/*242587*/ OPC_CheckChild1Same, 0, ++/*242589*/ OPC_MoveParent, ++/*242590*/ OPC_MoveChild1, ++/*242591*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*242594*/ OPC_CheckChild0Integer, 15, ++/*242596*/ OPC_CheckChild0Type, MVT::i32, ++/*242598*/ OPC_CheckChild1Integer, 15, ++/*242600*/ OPC_CheckChild1Type, MVT::i32, ++/*242602*/ OPC_CheckChild2Integer, 15, ++/*242604*/ OPC_CheckChild2Type, MVT::i32, ++/*242606*/ OPC_CheckChild3Integer, 15, ++/*242608*/ OPC_CheckChild3Type, MVT::i32, ++/*242610*/ OPC_CheckChild4Integer, 15, ++/*242612*/ OPC_CheckChild4Type, MVT::i32, ++/*242614*/ OPC_MoveChild5, ++/*242615*/ OPC_CheckInteger, 15, ++/*242617*/ OPC_CheckType, MVT::i32, ++/*242619*/ OPC_MoveParent, ++/*242620*/ OPC_MoveChild6, ++/*242621*/ OPC_CheckInteger, 15, ++/*242623*/ OPC_CheckType, MVT::i32, ++/*242625*/ OPC_MoveParent, ++/*242626*/ OPC_MoveChild7, ++/*242627*/ OPC_CheckInteger, 15, ++/*242629*/ OPC_CheckType, MVT::i32, ++/*242631*/ OPC_MoveParent, ++/*242632*/ OPC_MoveChild, 8, ++/*242634*/ OPC_CheckInteger, 15, ++/*242636*/ OPC_CheckType, MVT::i32, ++/*242638*/ OPC_MoveParent, ++/*242639*/ OPC_MoveChild, 9, ++/*242641*/ OPC_CheckInteger, 15, ++/*242643*/ OPC_CheckType, MVT::i32, ++/*242645*/ OPC_MoveParent, ++/*242646*/ OPC_MoveChild, 10, ++/*242648*/ OPC_CheckInteger, 15, ++/*242650*/ OPC_CheckType, MVT::i32, ++/*242652*/ OPC_MoveParent, ++/*242653*/ OPC_MoveChild, 11, ++/*242655*/ OPC_CheckInteger, 15, ++/*242657*/ OPC_CheckType, MVT::i32, ++/*242659*/ OPC_MoveParent, ++/*242660*/ OPC_MoveChild, 12, ++/*242662*/ OPC_CheckInteger, 15, ++/*242664*/ OPC_CheckType, MVT::i32, ++/*242666*/ OPC_MoveParent, ++/*242667*/ OPC_MoveChild, 13, ++/*242669*/ OPC_CheckInteger, 15, ++/*242671*/ OPC_CheckType, MVT::i32, ++/*242673*/ OPC_MoveParent, ++/*242674*/ OPC_MoveChild, 14, ++/*242676*/ OPC_CheckInteger, 15, ++/*242678*/ OPC_CheckType, MVT::i32, ++/*242680*/ OPC_MoveParent, ++/*242681*/ OPC_MoveChild, 15, ++/*242683*/ OPC_CheckInteger, 15, ++/*242685*/ OPC_CheckType, MVT::i32, ++/*242687*/ OPC_MoveParent, ++/*242688*/ OPC_CheckType, MVT::v16i16, ++/*242690*/ OPC_MoveParent, ++/*242691*/ OPC_MoveParent, ++/*242692*/ OPC_MoveParent, ++/*242693*/ OPC_MoveChild1, ++/*242694*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*242697*/ OPC_CheckChild0Integer, 1, ++/*242699*/ OPC_CheckChild0Type, MVT::i32, ++/*242701*/ OPC_CheckChild1Integer, 1, ++/*242703*/ OPC_CheckChild1Type, MVT::i32, ++/*242705*/ OPC_CheckChild2Integer, 1, ++/*242707*/ OPC_CheckChild2Type, MVT::i32, ++/*242709*/ OPC_CheckChild3Integer, 1, ++/*242711*/ OPC_CheckChild3Type, MVT::i32, ++/*242713*/ OPC_CheckChild4Integer, 1, ++/*242715*/ OPC_CheckChild4Type, MVT::i32, ++/*242717*/ OPC_MoveChild5, ++/*242718*/ OPC_CheckInteger, 1, ++/*242720*/ OPC_CheckType, MVT::i32, ++/*242722*/ OPC_MoveParent, ++/*242723*/ OPC_MoveChild6, ++/*242724*/ OPC_CheckInteger, 1, ++/*242726*/ OPC_CheckType, MVT::i32, ++/*242728*/ OPC_MoveParent, ++/*242729*/ OPC_MoveChild7, ++/*242730*/ OPC_CheckInteger, 1, ++/*242732*/ OPC_CheckType, MVT::i32, ++/*242734*/ OPC_MoveParent, ++/*242735*/ OPC_MoveChild, 8, ++/*242737*/ OPC_CheckInteger, 1, ++/*242739*/ OPC_CheckType, MVT::i32, ++/*242741*/ OPC_MoveParent, ++/*242742*/ OPC_MoveChild, 9, ++/*242744*/ OPC_CheckInteger, 1, ++/*242746*/ OPC_CheckType, MVT::i32, ++/*242748*/ OPC_MoveParent, ++/*242749*/ OPC_MoveChild, 10, ++/*242751*/ OPC_CheckInteger, 1, ++/*242753*/ OPC_CheckType, MVT::i32, ++/*242755*/ OPC_MoveParent, ++/*242756*/ OPC_MoveChild, 11, ++/*242758*/ OPC_CheckInteger, 1, ++/*242760*/ OPC_CheckType, MVT::i32, ++/*242762*/ OPC_MoveParent, ++/*242763*/ OPC_MoveChild, 12, ++/*242765*/ OPC_CheckInteger, 1, ++/*242767*/ OPC_CheckType, MVT::i32, ++/*242769*/ OPC_MoveParent, ++/*242770*/ OPC_MoveChild, 13, ++/*242772*/ OPC_CheckInteger, 1, ++/*242774*/ OPC_CheckType, MVT::i32, ++/*242776*/ OPC_MoveParent, ++/*242777*/ OPC_MoveChild, 14, ++/*242779*/ OPC_CheckInteger, 1, ++/*242781*/ OPC_CheckType, MVT::i32, ++/*242783*/ OPC_MoveParent, ++/*242784*/ OPC_MoveChild, 15, ++/*242786*/ OPC_CheckInteger, 1, ++/*242788*/ OPC_CheckType, MVT::i32, ++/*242790*/ OPC_MoveParent, ++/*242791*/ OPC_CheckType, MVT::v16i16, ++/*242793*/ OPC_MoveParent, ++/*242794*/ OPC_CheckType, MVT::v16i16, ++/*242796*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*242798*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*242806*/ /*Scope*/ 65|128,2/*321*/, /*->243129*/ ++/*242808*/ OPC_MoveChild0, ++/*242809*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*242812*/ OPC_CheckChild0Integer, 1, ++/*242814*/ OPC_CheckChild0Type, MVT::i32, ++/*242816*/ OPC_CheckChild1Integer, 1, ++/*242818*/ OPC_CheckChild1Type, MVT::i32, ++/*242820*/ OPC_CheckChild2Integer, 1, ++/*242822*/ OPC_CheckChild2Type, MVT::i32, ++/*242824*/ OPC_CheckChild3Integer, 1, ++/*242826*/ OPC_CheckChild3Type, MVT::i32, ++/*242828*/ OPC_CheckChild4Integer, 1, ++/*242830*/ OPC_CheckChild4Type, MVT::i32, ++/*242832*/ OPC_MoveChild5, ++/*242833*/ OPC_CheckInteger, 1, ++/*242835*/ OPC_CheckType, MVT::i32, ++/*242837*/ OPC_MoveParent, ++/*242838*/ OPC_MoveChild6, ++/*242839*/ OPC_CheckInteger, 1, ++/*242841*/ OPC_CheckType, MVT::i32, ++/*242843*/ OPC_MoveParent, ++/*242844*/ OPC_MoveChild7, ++/*242845*/ OPC_CheckInteger, 1, ++/*242847*/ OPC_CheckType, MVT::i32, ++/*242849*/ OPC_MoveParent, ++/*242850*/ OPC_MoveChild, 8, ++/*242852*/ OPC_CheckInteger, 1, ++/*242854*/ OPC_CheckType, MVT::i32, ++/*242856*/ OPC_MoveParent, ++/*242857*/ OPC_MoveChild, 9, ++/*242859*/ OPC_CheckInteger, 1, ++/*242861*/ OPC_CheckType, MVT::i32, ++/*242863*/ OPC_MoveParent, ++/*242864*/ OPC_MoveChild, 10, ++/*242866*/ OPC_CheckInteger, 1, ++/*242868*/ OPC_CheckType, MVT::i32, ++/*242870*/ OPC_MoveParent, ++/*242871*/ OPC_MoveChild, 11, ++/*242873*/ OPC_CheckInteger, 1, ++/*242875*/ OPC_CheckType, MVT::i32, ++/*242877*/ OPC_MoveParent, ++/*242878*/ OPC_MoveChild, 12, ++/*242880*/ OPC_CheckInteger, 1, ++/*242882*/ OPC_CheckType, MVT::i32, ++/*242884*/ OPC_MoveParent, ++/*242885*/ OPC_MoveChild, 13, ++/*242887*/ OPC_CheckInteger, 1, ++/*242889*/ OPC_CheckType, MVT::i32, ++/*242891*/ OPC_MoveParent, ++/*242892*/ OPC_MoveChild, 14, ++/*242894*/ OPC_CheckInteger, 1, ++/*242896*/ OPC_CheckType, MVT::i32, ++/*242898*/ OPC_MoveParent, ++/*242899*/ OPC_MoveChild, 15, ++/*242901*/ OPC_CheckInteger, 1, ++/*242903*/ OPC_CheckType, MVT::i32, ++/*242905*/ OPC_MoveParent, ++/*242906*/ OPC_MoveParent, ++/*242907*/ OPC_CheckChild1Same, 0, ++/*242909*/ OPC_MoveParent, ++/*242910*/ OPC_CheckChild1Same, 1, ++/*242912*/ OPC_MoveParent, ++/*242913*/ OPC_MoveChild1, ++/*242914*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*242917*/ OPC_CheckChild0Integer, 15, ++/*242919*/ OPC_CheckChild0Type, MVT::i32, ++/*242921*/ OPC_CheckChild1Integer, 15, ++/*242923*/ OPC_CheckChild1Type, MVT::i32, ++/*242925*/ OPC_CheckChild2Integer, 15, ++/*242927*/ OPC_CheckChild2Type, MVT::i32, ++/*242929*/ OPC_CheckChild3Integer, 15, ++/*242931*/ OPC_CheckChild3Type, MVT::i32, ++/*242933*/ OPC_CheckChild4Integer, 15, ++/*242935*/ OPC_CheckChild4Type, MVT::i32, ++/*242937*/ OPC_MoveChild5, ++/*242938*/ OPC_CheckInteger, 15, ++/*242940*/ OPC_CheckType, MVT::i32, ++/*242942*/ OPC_MoveParent, ++/*242943*/ OPC_MoveChild6, ++/*242944*/ OPC_CheckInteger, 15, ++/*242946*/ OPC_CheckType, MVT::i32, ++/*242948*/ OPC_MoveParent, ++/*242949*/ OPC_MoveChild7, ++/*242950*/ OPC_CheckInteger, 15, ++/*242952*/ OPC_CheckType, MVT::i32, ++/*242954*/ OPC_MoveParent, ++/*242955*/ OPC_MoveChild, 8, ++/*242957*/ OPC_CheckInteger, 15, ++/*242959*/ OPC_CheckType, MVT::i32, ++/*242961*/ OPC_MoveParent, ++/*242962*/ OPC_MoveChild, 9, ++/*242964*/ OPC_CheckInteger, 15, ++/*242966*/ OPC_CheckType, MVT::i32, ++/*242968*/ OPC_MoveParent, ++/*242969*/ OPC_MoveChild, 10, ++/*242971*/ OPC_CheckInteger, 15, ++/*242973*/ OPC_CheckType, MVT::i32, ++/*242975*/ OPC_MoveParent, ++/*242976*/ OPC_MoveChild, 11, ++/*242978*/ OPC_CheckInteger, 15, ++/*242980*/ OPC_CheckType, MVT::i32, ++/*242982*/ OPC_MoveParent, ++/*242983*/ OPC_MoveChild, 12, ++/*242985*/ OPC_CheckInteger, 15, ++/*242987*/ OPC_CheckType, MVT::i32, ++/*242989*/ OPC_MoveParent, ++/*242990*/ OPC_MoveChild, 13, ++/*242992*/ OPC_CheckInteger, 15, ++/*242994*/ OPC_CheckType, MVT::i32, ++/*242996*/ OPC_MoveParent, ++/*242997*/ OPC_MoveChild, 14, ++/*242999*/ OPC_CheckInteger, 15, ++/*243001*/ OPC_CheckType, MVT::i32, ++/*243003*/ OPC_MoveParent, ++/*243004*/ OPC_MoveChild, 15, ++/*243006*/ OPC_CheckInteger, 15, ++/*243008*/ OPC_CheckType, MVT::i32, ++/*243010*/ OPC_MoveParent, ++/*243011*/ OPC_CheckType, MVT::v16i16, ++/*243013*/ OPC_MoveParent, ++/*243014*/ OPC_MoveParent, ++/*243015*/ OPC_MoveParent, ++/*243016*/ OPC_MoveChild1, ++/*243017*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*243020*/ OPC_CheckChild0Integer, 1, ++/*243022*/ OPC_CheckChild0Type, MVT::i32, ++/*243024*/ OPC_CheckChild1Integer, 1, ++/*243026*/ OPC_CheckChild1Type, MVT::i32, ++/*243028*/ OPC_CheckChild2Integer, 1, ++/*243030*/ OPC_CheckChild2Type, MVT::i32, ++/*243032*/ OPC_CheckChild3Integer, 1, ++/*243034*/ OPC_CheckChild3Type, MVT::i32, ++/*243036*/ OPC_CheckChild4Integer, 1, ++/*243038*/ OPC_CheckChild4Type, MVT::i32, ++/*243040*/ OPC_MoveChild5, ++/*243041*/ OPC_CheckInteger, 1, ++/*243043*/ OPC_CheckType, MVT::i32, ++/*243045*/ OPC_MoveParent, ++/*243046*/ OPC_MoveChild6, ++/*243047*/ OPC_CheckInteger, 1, ++/*243049*/ OPC_CheckType, MVT::i32, ++/*243051*/ OPC_MoveParent, ++/*243052*/ OPC_MoveChild7, ++/*243053*/ OPC_CheckInteger, 1, ++/*243055*/ OPC_CheckType, MVT::i32, ++/*243057*/ OPC_MoveParent, ++/*243058*/ OPC_MoveChild, 8, ++/*243060*/ OPC_CheckInteger, 1, ++/*243062*/ OPC_CheckType, MVT::i32, ++/*243064*/ OPC_MoveParent, ++/*243065*/ OPC_MoveChild, 9, ++/*243067*/ OPC_CheckInteger, 1, ++/*243069*/ OPC_CheckType, MVT::i32, ++/*243071*/ OPC_MoveParent, ++/*243072*/ OPC_MoveChild, 10, ++/*243074*/ OPC_CheckInteger, 1, ++/*243076*/ OPC_CheckType, MVT::i32, ++/*243078*/ OPC_MoveParent, ++/*243079*/ OPC_MoveChild, 11, ++/*243081*/ OPC_CheckInteger, 1, ++/*243083*/ OPC_CheckType, MVT::i32, ++/*243085*/ OPC_MoveParent, ++/*243086*/ OPC_MoveChild, 12, ++/*243088*/ OPC_CheckInteger, 1, ++/*243090*/ OPC_CheckType, MVT::i32, ++/*243092*/ OPC_MoveParent, ++/*243093*/ OPC_MoveChild, 13, ++/*243095*/ OPC_CheckInteger, 1, ++/*243097*/ OPC_CheckType, MVT::i32, ++/*243099*/ OPC_MoveParent, ++/*243100*/ OPC_MoveChild, 14, ++/*243102*/ OPC_CheckInteger, 1, ++/*243104*/ OPC_CheckType, MVT::i32, ++/*243106*/ OPC_MoveParent, ++/*243107*/ OPC_MoveChild, 15, ++/*243109*/ OPC_CheckInteger, 1, ++/*243111*/ OPC_CheckType, MVT::i32, ++/*243113*/ OPC_MoveParent, ++/*243114*/ OPC_CheckType, MVT::v16i16, ++/*243116*/ OPC_MoveParent, ++/*243117*/ OPC_CheckType, MVT::v16i16, ++/*243119*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*243121*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b), LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*243129*/ /*Scope*/ 65|128,2/*321*/, /*->243452*/ ++/*243131*/ OPC_CheckChild0Same, 0, ++/*243133*/ OPC_MoveChild1, ++/*243134*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*243137*/ OPC_CheckChild0Integer, 1, ++/*243139*/ OPC_CheckChild0Type, MVT::i32, ++/*243141*/ OPC_CheckChild1Integer, 1, ++/*243143*/ OPC_CheckChild1Type, MVT::i32, ++/*243145*/ OPC_CheckChild2Integer, 1, ++/*243147*/ OPC_CheckChild2Type, MVT::i32, ++/*243149*/ OPC_CheckChild3Integer, 1, ++/*243151*/ OPC_CheckChild3Type, MVT::i32, ++/*243153*/ OPC_CheckChild4Integer, 1, ++/*243155*/ OPC_CheckChild4Type, MVT::i32, ++/*243157*/ OPC_MoveChild5, ++/*243158*/ OPC_CheckInteger, 1, ++/*243160*/ OPC_CheckType, MVT::i32, ++/*243162*/ OPC_MoveParent, ++/*243163*/ OPC_MoveChild6, ++/*243164*/ OPC_CheckInteger, 1, ++/*243166*/ OPC_CheckType, MVT::i32, ++/*243168*/ OPC_MoveParent, ++/*243169*/ OPC_MoveChild7, ++/*243170*/ OPC_CheckInteger, 1, ++/*243172*/ OPC_CheckType, MVT::i32, ++/*243174*/ OPC_MoveParent, ++/*243175*/ OPC_MoveChild, 8, ++/*243177*/ OPC_CheckInteger, 1, ++/*243179*/ OPC_CheckType, MVT::i32, ++/*243181*/ OPC_MoveParent, ++/*243182*/ OPC_MoveChild, 9, ++/*243184*/ OPC_CheckInteger, 1, ++/*243186*/ OPC_CheckType, MVT::i32, ++/*243188*/ OPC_MoveParent, ++/*243189*/ OPC_MoveChild, 10, ++/*243191*/ OPC_CheckInteger, 1, ++/*243193*/ OPC_CheckType, MVT::i32, ++/*243195*/ OPC_MoveParent, ++/*243196*/ OPC_MoveChild, 11, ++/*243198*/ OPC_CheckInteger, 1, ++/*243200*/ OPC_CheckType, MVT::i32, ++/*243202*/ OPC_MoveParent, ++/*243203*/ OPC_MoveChild, 12, ++/*243205*/ OPC_CheckInteger, 1, ++/*243207*/ OPC_CheckType, MVT::i32, ++/*243209*/ OPC_MoveParent, ++/*243210*/ OPC_MoveChild, 13, ++/*243212*/ OPC_CheckInteger, 1, ++/*243214*/ OPC_CheckType, MVT::i32, ++/*243216*/ OPC_MoveParent, ++/*243217*/ OPC_MoveChild, 14, ++/*243219*/ OPC_CheckInteger, 1, ++/*243221*/ OPC_CheckType, MVT::i32, ++/*243223*/ OPC_MoveParent, ++/*243224*/ OPC_MoveChild, 15, ++/*243226*/ OPC_CheckInteger, 1, ++/*243228*/ OPC_CheckType, MVT::i32, ++/*243230*/ OPC_MoveParent, ++/*243231*/ OPC_MoveParent, ++/*243232*/ OPC_MoveParent, ++/*243233*/ OPC_CheckChild1Same, 1, ++/*243235*/ OPC_MoveParent, ++/*243236*/ OPC_MoveChild1, ++/*243237*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*243240*/ OPC_CheckChild0Integer, 15, ++/*243242*/ OPC_CheckChild0Type, MVT::i32, ++/*243244*/ OPC_CheckChild1Integer, 15, ++/*243246*/ OPC_CheckChild1Type, MVT::i32, ++/*243248*/ OPC_CheckChild2Integer, 15, ++/*243250*/ OPC_CheckChild2Type, MVT::i32, ++/*243252*/ OPC_CheckChild3Integer, 15, ++/*243254*/ OPC_CheckChild3Type, MVT::i32, ++/*243256*/ OPC_CheckChild4Integer, 15, ++/*243258*/ OPC_CheckChild4Type, MVT::i32, ++/*243260*/ OPC_MoveChild5, ++/*243261*/ OPC_CheckInteger, 15, ++/*243263*/ OPC_CheckType, MVT::i32, ++/*243265*/ OPC_MoveParent, ++/*243266*/ OPC_MoveChild6, ++/*243267*/ OPC_CheckInteger, 15, ++/*243269*/ OPC_CheckType, MVT::i32, ++/*243271*/ OPC_MoveParent, ++/*243272*/ OPC_MoveChild7, ++/*243273*/ OPC_CheckInteger, 15, ++/*243275*/ OPC_CheckType, MVT::i32, ++/*243277*/ OPC_MoveParent, ++/*243278*/ OPC_MoveChild, 8, ++/*243280*/ OPC_CheckInteger, 15, ++/*243282*/ OPC_CheckType, MVT::i32, ++/*243284*/ OPC_MoveParent, ++/*243285*/ OPC_MoveChild, 9, ++/*243287*/ OPC_CheckInteger, 15, ++/*243289*/ OPC_CheckType, MVT::i32, ++/*243291*/ OPC_MoveParent, ++/*243292*/ OPC_MoveChild, 10, ++/*243294*/ OPC_CheckInteger, 15, ++/*243296*/ OPC_CheckType, MVT::i32, ++/*243298*/ OPC_MoveParent, ++/*243299*/ OPC_MoveChild, 11, ++/*243301*/ OPC_CheckInteger, 15, ++/*243303*/ OPC_CheckType, MVT::i32, ++/*243305*/ OPC_MoveParent, ++/*243306*/ OPC_MoveChild, 12, ++/*243308*/ OPC_CheckInteger, 15, ++/*243310*/ OPC_CheckType, MVT::i32, ++/*243312*/ OPC_MoveParent, ++/*243313*/ OPC_MoveChild, 13, ++/*243315*/ OPC_CheckInteger, 15, ++/*243317*/ OPC_CheckType, MVT::i32, ++/*243319*/ OPC_MoveParent, ++/*243320*/ OPC_MoveChild, 14, ++/*243322*/ OPC_CheckInteger, 15, ++/*243324*/ OPC_CheckType, MVT::i32, ++/*243326*/ OPC_MoveParent, ++/*243327*/ OPC_MoveChild, 15, ++/*243329*/ OPC_CheckInteger, 15, ++/*243331*/ OPC_CheckType, MVT::i32, ++/*243333*/ OPC_MoveParent, ++/*243334*/ OPC_CheckType, MVT::v16i16, ++/*243336*/ OPC_MoveParent, ++/*243337*/ OPC_MoveParent, ++/*243338*/ OPC_MoveParent, ++/*243339*/ OPC_MoveChild1, ++/*243340*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*243343*/ OPC_CheckChild0Integer, 1, ++/*243345*/ OPC_CheckChild0Type, MVT::i32, ++/*243347*/ OPC_CheckChild1Integer, 1, ++/*243349*/ OPC_CheckChild1Type, MVT::i32, ++/*243351*/ OPC_CheckChild2Integer, 1, ++/*243353*/ OPC_CheckChild2Type, MVT::i32, ++/*243355*/ OPC_CheckChild3Integer, 1, ++/*243357*/ OPC_CheckChild3Type, MVT::i32, ++/*243359*/ OPC_CheckChild4Integer, 1, ++/*243361*/ OPC_CheckChild4Type, MVT::i32, ++/*243363*/ OPC_MoveChild5, ++/*243364*/ OPC_CheckInteger, 1, ++/*243366*/ OPC_CheckType, MVT::i32, ++/*243368*/ OPC_MoveParent, ++/*243369*/ OPC_MoveChild6, ++/*243370*/ OPC_CheckInteger, 1, ++/*243372*/ OPC_CheckType, MVT::i32, ++/*243374*/ OPC_MoveParent, ++/*243375*/ OPC_MoveChild7, ++/*243376*/ OPC_CheckInteger, 1, ++/*243378*/ OPC_CheckType, MVT::i32, ++/*243380*/ OPC_MoveParent, ++/*243381*/ OPC_MoveChild, 8, ++/*243383*/ OPC_CheckInteger, 1, ++/*243385*/ OPC_CheckType, MVT::i32, ++/*243387*/ OPC_MoveParent, ++/*243388*/ OPC_MoveChild, 9, ++/*243390*/ OPC_CheckInteger, 1, ++/*243392*/ OPC_CheckType, MVT::i32, ++/*243394*/ OPC_MoveParent, ++/*243395*/ OPC_MoveChild, 10, ++/*243397*/ OPC_CheckInteger, 1, ++/*243399*/ OPC_CheckType, MVT::i32, ++/*243401*/ OPC_MoveParent, ++/*243402*/ OPC_MoveChild, 11, ++/*243404*/ OPC_CheckInteger, 1, ++/*243406*/ OPC_CheckType, MVT::i32, ++/*243408*/ OPC_MoveParent, ++/*243409*/ OPC_MoveChild, 12, ++/*243411*/ OPC_CheckInteger, 1, ++/*243413*/ OPC_CheckType, MVT::i32, ++/*243415*/ OPC_MoveParent, ++/*243416*/ OPC_MoveChild, 13, ++/*243418*/ OPC_CheckInteger, 1, ++/*243420*/ OPC_CheckType, MVT::i32, ++/*243422*/ OPC_MoveParent, ++/*243423*/ OPC_MoveChild, 14, ++/*243425*/ OPC_CheckInteger, 1, ++/*243427*/ OPC_CheckType, MVT::i32, ++/*243429*/ OPC_MoveParent, ++/*243430*/ OPC_MoveChild, 15, ++/*243432*/ OPC_CheckInteger, 1, ++/*243434*/ OPC_CheckType, MVT::i32, ++/*243436*/ OPC_MoveParent, ++/*243437*/ OPC_CheckType, MVT::v16i16, ++/*243439*/ OPC_MoveParent, ++/*243440*/ OPC_CheckType, MVT::v16i16, ++/*243442*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*243444*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*243452*/ /*Scope*/ 65|128,2/*321*/, /*->243775*/ ++/*243454*/ OPC_CheckChild0Same, 1, ++/*243456*/ OPC_CheckChild1Same, 0, ++/*243458*/ OPC_MoveParent, ++/*243459*/ OPC_MoveChild1, ++/*243460*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*243463*/ OPC_CheckChild0Integer, 1, ++/*243465*/ OPC_CheckChild0Type, MVT::i32, ++/*243467*/ OPC_CheckChild1Integer, 1, ++/*243469*/ OPC_CheckChild1Type, MVT::i32, ++/*243471*/ OPC_CheckChild2Integer, 1, ++/*243473*/ OPC_CheckChild2Type, MVT::i32, ++/*243475*/ OPC_CheckChild3Integer, 1, ++/*243477*/ OPC_CheckChild3Type, MVT::i32, ++/*243479*/ OPC_CheckChild4Integer, 1, ++/*243481*/ OPC_CheckChild4Type, MVT::i32, ++/*243483*/ OPC_MoveChild5, ++/*243484*/ OPC_CheckInteger, 1, ++/*243486*/ OPC_CheckType, MVT::i32, ++/*243488*/ OPC_MoveParent, ++/*243489*/ OPC_MoveChild6, ++/*243490*/ OPC_CheckInteger, 1, ++/*243492*/ OPC_CheckType, MVT::i32, ++/*243494*/ OPC_MoveParent, ++/*243495*/ OPC_MoveChild7, ++/*243496*/ OPC_CheckInteger, 1, ++/*243498*/ OPC_CheckType, MVT::i32, ++/*243500*/ OPC_MoveParent, ++/*243501*/ OPC_MoveChild, 8, ++/*243503*/ OPC_CheckInteger, 1, ++/*243505*/ OPC_CheckType, MVT::i32, ++/*243507*/ OPC_MoveParent, ++/*243508*/ OPC_MoveChild, 9, ++/*243510*/ OPC_CheckInteger, 1, ++/*243512*/ OPC_CheckType, MVT::i32, ++/*243514*/ OPC_MoveParent, ++/*243515*/ OPC_MoveChild, 10, ++/*243517*/ OPC_CheckInteger, 1, ++/*243519*/ OPC_CheckType, MVT::i32, ++/*243521*/ OPC_MoveParent, ++/*243522*/ OPC_MoveChild, 11, ++/*243524*/ OPC_CheckInteger, 1, ++/*243526*/ OPC_CheckType, MVT::i32, ++/*243528*/ OPC_MoveParent, ++/*243529*/ OPC_MoveChild, 12, ++/*243531*/ OPC_CheckInteger, 1, ++/*243533*/ OPC_CheckType, MVT::i32, ++/*243535*/ OPC_MoveParent, ++/*243536*/ OPC_MoveChild, 13, ++/*243538*/ OPC_CheckInteger, 1, ++/*243540*/ OPC_CheckType, MVT::i32, ++/*243542*/ OPC_MoveParent, ++/*243543*/ OPC_MoveChild, 14, ++/*243545*/ OPC_CheckInteger, 1, ++/*243547*/ OPC_CheckType, MVT::i32, ++/*243549*/ OPC_MoveParent, ++/*243550*/ OPC_MoveChild, 15, ++/*243552*/ OPC_CheckInteger, 1, ++/*243554*/ OPC_CheckType, MVT::i32, ++/*243556*/ OPC_MoveParent, ++/*243557*/ OPC_MoveParent, ++/*243558*/ OPC_MoveParent, ++/*243559*/ OPC_MoveChild1, ++/*243560*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*243563*/ OPC_CheckChild0Integer, 15, ++/*243565*/ OPC_CheckChild0Type, MVT::i32, ++/*243567*/ OPC_CheckChild1Integer, 15, ++/*243569*/ OPC_CheckChild1Type, MVT::i32, ++/*243571*/ OPC_CheckChild2Integer, 15, ++/*243573*/ OPC_CheckChild2Type, MVT::i32, ++/*243575*/ OPC_CheckChild3Integer, 15, ++/*243577*/ OPC_CheckChild3Type, MVT::i32, ++/*243579*/ OPC_CheckChild4Integer, 15, ++/*243581*/ OPC_CheckChild4Type, MVT::i32, ++/*243583*/ OPC_MoveChild5, ++/*243584*/ OPC_CheckInteger, 15, ++/*243586*/ OPC_CheckType, MVT::i32, ++/*243588*/ OPC_MoveParent, ++/*243589*/ OPC_MoveChild6, ++/*243590*/ OPC_CheckInteger, 15, ++/*243592*/ OPC_CheckType, MVT::i32, ++/*243594*/ OPC_MoveParent, ++/*243595*/ OPC_MoveChild7, ++/*243596*/ OPC_CheckInteger, 15, ++/*243598*/ OPC_CheckType, MVT::i32, ++/*243600*/ OPC_MoveParent, ++/*243601*/ OPC_MoveChild, 8, ++/*243603*/ OPC_CheckInteger, 15, ++/*243605*/ OPC_CheckType, MVT::i32, ++/*243607*/ OPC_MoveParent, ++/*243608*/ OPC_MoveChild, 9, ++/*243610*/ OPC_CheckInteger, 15, ++/*243612*/ OPC_CheckType, MVT::i32, ++/*243614*/ OPC_MoveParent, ++/*243615*/ OPC_MoveChild, 10, ++/*243617*/ OPC_CheckInteger, 15, ++/*243619*/ OPC_CheckType, MVT::i32, ++/*243621*/ OPC_MoveParent, ++/*243622*/ OPC_MoveChild, 11, ++/*243624*/ OPC_CheckInteger, 15, ++/*243626*/ OPC_CheckType, MVT::i32, ++/*243628*/ OPC_MoveParent, ++/*243629*/ OPC_MoveChild, 12, ++/*243631*/ OPC_CheckInteger, 15, ++/*243633*/ OPC_CheckType, MVT::i32, ++/*243635*/ OPC_MoveParent, ++/*243636*/ OPC_MoveChild, 13, ++/*243638*/ OPC_CheckInteger, 15, ++/*243640*/ OPC_CheckType, MVT::i32, ++/*243642*/ OPC_MoveParent, ++/*243643*/ OPC_MoveChild, 14, ++/*243645*/ OPC_CheckInteger, 15, ++/*243647*/ OPC_CheckType, MVT::i32, ++/*243649*/ OPC_MoveParent, ++/*243650*/ OPC_MoveChild, 15, ++/*243652*/ OPC_CheckInteger, 15, ++/*243654*/ OPC_CheckType, MVT::i32, ++/*243656*/ OPC_MoveParent, ++/*243657*/ OPC_CheckType, MVT::v16i16, ++/*243659*/ OPC_MoveParent, ++/*243660*/ OPC_MoveParent, ++/*243661*/ OPC_MoveParent, ++/*243662*/ OPC_MoveChild1, ++/*243663*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*243666*/ OPC_CheckChild0Integer, 1, ++/*243668*/ OPC_CheckChild0Type, MVT::i32, ++/*243670*/ OPC_CheckChild1Integer, 1, ++/*243672*/ OPC_CheckChild1Type, MVT::i32, ++/*243674*/ OPC_CheckChild2Integer, 1, ++/*243676*/ OPC_CheckChild2Type, MVT::i32, ++/*243678*/ OPC_CheckChild3Integer, 1, ++/*243680*/ OPC_CheckChild3Type, MVT::i32, ++/*243682*/ OPC_CheckChild4Integer, 1, ++/*243684*/ OPC_CheckChild4Type, MVT::i32, ++/*243686*/ OPC_MoveChild5, ++/*243687*/ OPC_CheckInteger, 1, ++/*243689*/ OPC_CheckType, MVT::i32, ++/*243691*/ OPC_MoveParent, ++/*243692*/ OPC_MoveChild6, ++/*243693*/ OPC_CheckInteger, 1, ++/*243695*/ OPC_CheckType, MVT::i32, ++/*243697*/ OPC_MoveParent, ++/*243698*/ OPC_MoveChild7, ++/*243699*/ OPC_CheckInteger, 1, ++/*243701*/ OPC_CheckType, MVT::i32, ++/*243703*/ OPC_MoveParent, ++/*243704*/ OPC_MoveChild, 8, ++/*243706*/ OPC_CheckInteger, 1, ++/*243708*/ OPC_CheckType, MVT::i32, ++/*243710*/ OPC_MoveParent, ++/*243711*/ OPC_MoveChild, 9, ++/*243713*/ OPC_CheckInteger, 1, ++/*243715*/ OPC_CheckType, MVT::i32, ++/*243717*/ OPC_MoveParent, ++/*243718*/ OPC_MoveChild, 10, ++/*243720*/ OPC_CheckInteger, 1, ++/*243722*/ OPC_CheckType, MVT::i32, ++/*243724*/ OPC_MoveParent, ++/*243725*/ OPC_MoveChild, 11, ++/*243727*/ OPC_CheckInteger, 1, ++/*243729*/ OPC_CheckType, MVT::i32, ++/*243731*/ OPC_MoveParent, ++/*243732*/ OPC_MoveChild, 12, ++/*243734*/ OPC_CheckInteger, 1, ++/*243736*/ OPC_CheckType, MVT::i32, ++/*243738*/ OPC_MoveParent, ++/*243739*/ OPC_MoveChild, 13, ++/*243741*/ OPC_CheckInteger, 1, ++/*243743*/ OPC_CheckType, MVT::i32, ++/*243745*/ OPC_MoveParent, ++/*243746*/ OPC_MoveChild, 14, ++/*243748*/ OPC_CheckInteger, 1, ++/*243750*/ OPC_CheckType, MVT::i32, ++/*243752*/ OPC_MoveParent, ++/*243753*/ OPC_MoveChild, 15, ++/*243755*/ OPC_CheckInteger, 1, ++/*243757*/ OPC_CheckType, MVT::i32, ++/*243759*/ OPC_MoveParent, ++/*243760*/ OPC_CheckType, MVT::v16i16, ++/*243762*/ OPC_MoveParent, ++/*243763*/ OPC_CheckType, MVT::v16i16, ++/*243765*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*243767*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*243775*/ /*Scope*/ 65|128,2/*321*/, /*->244098*/ ++/*243777*/ OPC_CheckChild0Same, 0, ++/*243779*/ OPC_CheckChild1Same, 1, ++/*243781*/ OPC_MoveParent, ++/*243782*/ OPC_MoveChild1, ++/*243783*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*243786*/ OPC_CheckChild0Integer, 1, ++/*243788*/ OPC_CheckChild0Type, MVT::i32, ++/*243790*/ OPC_CheckChild1Integer, 1, ++/*243792*/ OPC_CheckChild1Type, MVT::i32, ++/*243794*/ OPC_CheckChild2Integer, 1, ++/*243796*/ OPC_CheckChild2Type, MVT::i32, ++/*243798*/ OPC_CheckChild3Integer, 1, ++/*243800*/ OPC_CheckChild3Type, MVT::i32, ++/*243802*/ OPC_CheckChild4Integer, 1, ++/*243804*/ OPC_CheckChild4Type, MVT::i32, ++/*243806*/ OPC_MoveChild5, ++/*243807*/ OPC_CheckInteger, 1, ++/*243809*/ OPC_CheckType, MVT::i32, ++/*243811*/ OPC_MoveParent, ++/*243812*/ OPC_MoveChild6, ++/*243813*/ OPC_CheckInteger, 1, ++/*243815*/ OPC_CheckType, MVT::i32, ++/*243817*/ OPC_MoveParent, ++/*243818*/ OPC_MoveChild7, ++/*243819*/ OPC_CheckInteger, 1, ++/*243821*/ OPC_CheckType, MVT::i32, ++/*243823*/ OPC_MoveParent, ++/*243824*/ OPC_MoveChild, 8, ++/*243826*/ OPC_CheckInteger, 1, ++/*243828*/ OPC_CheckType, MVT::i32, ++/*243830*/ OPC_MoveParent, ++/*243831*/ OPC_MoveChild, 9, ++/*243833*/ OPC_CheckInteger, 1, ++/*243835*/ OPC_CheckType, MVT::i32, ++/*243837*/ OPC_MoveParent, ++/*243838*/ OPC_MoveChild, 10, ++/*243840*/ OPC_CheckInteger, 1, ++/*243842*/ OPC_CheckType, MVT::i32, ++/*243844*/ OPC_MoveParent, ++/*243845*/ OPC_MoveChild, 11, ++/*243847*/ OPC_CheckInteger, 1, ++/*243849*/ OPC_CheckType, MVT::i32, ++/*243851*/ OPC_MoveParent, ++/*243852*/ OPC_MoveChild, 12, ++/*243854*/ OPC_CheckInteger, 1, ++/*243856*/ OPC_CheckType, MVT::i32, ++/*243858*/ OPC_MoveParent, ++/*243859*/ OPC_MoveChild, 13, ++/*243861*/ OPC_CheckInteger, 1, ++/*243863*/ OPC_CheckType, MVT::i32, ++/*243865*/ OPC_MoveParent, ++/*243866*/ OPC_MoveChild, 14, ++/*243868*/ OPC_CheckInteger, 1, ++/*243870*/ OPC_CheckType, MVT::i32, ++/*243872*/ OPC_MoveParent, ++/*243873*/ OPC_MoveChild, 15, ++/*243875*/ OPC_CheckInteger, 1, ++/*243877*/ OPC_CheckType, MVT::i32, ++/*243879*/ OPC_MoveParent, ++/*243880*/ OPC_MoveParent, ++/*243881*/ OPC_MoveParent, ++/*243882*/ OPC_MoveChild1, ++/*243883*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*243886*/ OPC_CheckChild0Integer, 15, ++/*243888*/ OPC_CheckChild0Type, MVT::i32, ++/*243890*/ OPC_CheckChild1Integer, 15, ++/*243892*/ OPC_CheckChild1Type, MVT::i32, ++/*243894*/ OPC_CheckChild2Integer, 15, ++/*243896*/ OPC_CheckChild2Type, MVT::i32, ++/*243898*/ OPC_CheckChild3Integer, 15, ++/*243900*/ OPC_CheckChild3Type, MVT::i32, ++/*243902*/ OPC_CheckChild4Integer, 15, ++/*243904*/ OPC_CheckChild4Type, MVT::i32, ++/*243906*/ OPC_MoveChild5, ++/*243907*/ OPC_CheckInteger, 15, ++/*243909*/ OPC_CheckType, MVT::i32, ++/*243911*/ OPC_MoveParent, ++/*243912*/ OPC_MoveChild6, ++/*243913*/ OPC_CheckInteger, 15, ++/*243915*/ OPC_CheckType, MVT::i32, ++/*243917*/ OPC_MoveParent, ++/*243918*/ OPC_MoveChild7, ++/*243919*/ OPC_CheckInteger, 15, ++/*243921*/ OPC_CheckType, MVT::i32, ++/*243923*/ OPC_MoveParent, ++/*243924*/ OPC_MoveChild, 8, ++/*243926*/ OPC_CheckInteger, 15, ++/*243928*/ OPC_CheckType, MVT::i32, ++/*243930*/ OPC_MoveParent, ++/*243931*/ OPC_MoveChild, 9, ++/*243933*/ OPC_CheckInteger, 15, ++/*243935*/ OPC_CheckType, MVT::i32, ++/*243937*/ OPC_MoveParent, ++/*243938*/ OPC_MoveChild, 10, ++/*243940*/ OPC_CheckInteger, 15, ++/*243942*/ OPC_CheckType, MVT::i32, ++/*243944*/ OPC_MoveParent, ++/*243945*/ OPC_MoveChild, 11, ++/*243947*/ OPC_CheckInteger, 15, ++/*243949*/ OPC_CheckType, MVT::i32, ++/*243951*/ OPC_MoveParent, ++/*243952*/ OPC_MoveChild, 12, ++/*243954*/ OPC_CheckInteger, 15, ++/*243956*/ OPC_CheckType, MVT::i32, ++/*243958*/ OPC_MoveParent, ++/*243959*/ OPC_MoveChild, 13, ++/*243961*/ OPC_CheckInteger, 15, ++/*243963*/ OPC_CheckType, MVT::i32, ++/*243965*/ OPC_MoveParent, ++/*243966*/ OPC_MoveChild, 14, ++/*243968*/ OPC_CheckInteger, 15, ++/*243970*/ OPC_CheckType, MVT::i32, ++/*243972*/ OPC_MoveParent, ++/*243973*/ OPC_MoveChild, 15, ++/*243975*/ OPC_CheckInteger, 15, ++/*243977*/ OPC_CheckType, MVT::i32, ++/*243979*/ OPC_MoveParent, ++/*243980*/ OPC_CheckType, MVT::v16i16, ++/*243982*/ OPC_MoveParent, ++/*243983*/ OPC_MoveParent, ++/*243984*/ OPC_MoveParent, ++/*243985*/ OPC_MoveChild1, ++/*243986*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*243989*/ OPC_CheckChild0Integer, 1, ++/*243991*/ OPC_CheckChild0Type, MVT::i32, ++/*243993*/ OPC_CheckChild1Integer, 1, ++/*243995*/ OPC_CheckChild1Type, MVT::i32, ++/*243997*/ OPC_CheckChild2Integer, 1, ++/*243999*/ OPC_CheckChild2Type, MVT::i32, ++/*244001*/ OPC_CheckChild3Integer, 1, ++/*244003*/ OPC_CheckChild3Type, MVT::i32, ++/*244005*/ OPC_CheckChild4Integer, 1, ++/*244007*/ OPC_CheckChild4Type, MVT::i32, ++/*244009*/ OPC_MoveChild5, ++/*244010*/ OPC_CheckInteger, 1, ++/*244012*/ OPC_CheckType, MVT::i32, ++/*244014*/ OPC_MoveParent, ++/*244015*/ OPC_MoveChild6, ++/*244016*/ OPC_CheckInteger, 1, ++/*244018*/ OPC_CheckType, MVT::i32, ++/*244020*/ OPC_MoveParent, ++/*244021*/ OPC_MoveChild7, ++/*244022*/ OPC_CheckInteger, 1, ++/*244024*/ OPC_CheckType, MVT::i32, ++/*244026*/ OPC_MoveParent, ++/*244027*/ OPC_MoveChild, 8, ++/*244029*/ OPC_CheckInteger, 1, ++/*244031*/ OPC_CheckType, MVT::i32, ++/*244033*/ OPC_MoveParent, ++/*244034*/ OPC_MoveChild, 9, ++/*244036*/ OPC_CheckInteger, 1, ++/*244038*/ OPC_CheckType, MVT::i32, ++/*244040*/ OPC_MoveParent, ++/*244041*/ OPC_MoveChild, 10, ++/*244043*/ OPC_CheckInteger, 1, ++/*244045*/ OPC_CheckType, MVT::i32, ++/*244047*/ OPC_MoveParent, ++/*244048*/ OPC_MoveChild, 11, ++/*244050*/ OPC_CheckInteger, 1, ++/*244052*/ OPC_CheckType, MVT::i32, ++/*244054*/ OPC_MoveParent, ++/*244055*/ OPC_MoveChild, 12, ++/*244057*/ OPC_CheckInteger, 1, ++/*244059*/ OPC_CheckType, MVT::i32, ++/*244061*/ OPC_MoveParent, ++/*244062*/ OPC_MoveChild, 13, ++/*244064*/ OPC_CheckInteger, 1, ++/*244066*/ OPC_CheckType, MVT::i32, ++/*244068*/ OPC_MoveParent, ++/*244069*/ OPC_MoveChild, 14, ++/*244071*/ OPC_CheckInteger, 1, ++/*244073*/ OPC_CheckType, MVT::i32, ++/*244075*/ OPC_MoveParent, ++/*244076*/ OPC_MoveChild, 15, ++/*244078*/ OPC_CheckInteger, 1, ++/*244080*/ OPC_CheckType, MVT::i32, ++/*244082*/ OPC_MoveParent, ++/*244083*/ OPC_CheckType, MVT::v16i16, ++/*244085*/ OPC_MoveParent, ++/*244086*/ OPC_CheckType, MVT::v16i16, ++/*244088*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*244090*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*244098*/ 0, /*End of Scope*/ ++/*244099*/ 0, // EndSwitchOpcode ++/*244100*/ /*Scope*/ 10|128,5/*650*/, /*->244752*/ ++/*244102*/ OPC_CheckChild0Same, 0, ++/*244104*/ OPC_MoveChild1, ++/*244105*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*244108*/ OPC_Scope, 63|128,2/*319*/, /*->244430*/ // 2 children in Scope ++/*244111*/ OPC_MoveChild0, ++/*244112*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*244115*/ OPC_CheckChild0Integer, 1, ++/*244117*/ OPC_CheckChild0Type, MVT::i32, ++/*244119*/ OPC_CheckChild1Integer, 1, ++/*244121*/ OPC_CheckChild1Type, MVT::i32, ++/*244123*/ OPC_CheckChild2Integer, 1, ++/*244125*/ OPC_CheckChild2Type, MVT::i32, ++/*244127*/ OPC_CheckChild3Integer, 1, ++/*244129*/ OPC_CheckChild3Type, MVT::i32, ++/*244131*/ OPC_CheckChild4Integer, 1, ++/*244133*/ OPC_CheckChild4Type, MVT::i32, ++/*244135*/ OPC_MoveChild5, ++/*244136*/ OPC_CheckInteger, 1, ++/*244138*/ OPC_CheckType, MVT::i32, ++/*244140*/ OPC_MoveParent, ++/*244141*/ OPC_MoveChild6, ++/*244142*/ OPC_CheckInteger, 1, ++/*244144*/ OPC_CheckType, MVT::i32, ++/*244146*/ OPC_MoveParent, ++/*244147*/ OPC_MoveChild7, ++/*244148*/ OPC_CheckInteger, 1, ++/*244150*/ OPC_CheckType, MVT::i32, ++/*244152*/ OPC_MoveParent, ++/*244153*/ OPC_MoveChild, 8, ++/*244155*/ OPC_CheckInteger, 1, ++/*244157*/ OPC_CheckType, MVT::i32, ++/*244159*/ OPC_MoveParent, ++/*244160*/ OPC_MoveChild, 9, ++/*244162*/ OPC_CheckInteger, 1, ++/*244164*/ OPC_CheckType, MVT::i32, ++/*244166*/ OPC_MoveParent, ++/*244167*/ OPC_MoveChild, 10, ++/*244169*/ OPC_CheckInteger, 1, ++/*244171*/ OPC_CheckType, MVT::i32, ++/*244173*/ OPC_MoveParent, ++/*244174*/ OPC_MoveChild, 11, ++/*244176*/ OPC_CheckInteger, 1, ++/*244178*/ OPC_CheckType, MVT::i32, ++/*244180*/ OPC_MoveParent, ++/*244181*/ OPC_MoveChild, 12, ++/*244183*/ OPC_CheckInteger, 1, ++/*244185*/ OPC_CheckType, MVT::i32, ++/*244187*/ OPC_MoveParent, ++/*244188*/ OPC_MoveChild, 13, ++/*244190*/ OPC_CheckInteger, 1, ++/*244192*/ OPC_CheckType, MVT::i32, ++/*244194*/ OPC_MoveParent, ++/*244195*/ OPC_MoveChild, 14, ++/*244197*/ OPC_CheckInteger, 1, ++/*244199*/ OPC_CheckType, MVT::i32, ++/*244201*/ OPC_MoveParent, ++/*244202*/ OPC_MoveChild, 15, ++/*244204*/ OPC_CheckInteger, 1, ++/*244206*/ OPC_CheckType, MVT::i32, ++/*244208*/ OPC_MoveParent, ++/*244209*/ OPC_MoveParent, ++/*244210*/ OPC_CheckChild1Same, 1, ++/*244212*/ OPC_MoveParent, ++/*244213*/ OPC_MoveParent, ++/*244214*/ OPC_MoveChild1, ++/*244215*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*244218*/ OPC_CheckChild0Integer, 15, ++/*244220*/ OPC_CheckChild0Type, MVT::i32, ++/*244222*/ OPC_CheckChild1Integer, 15, ++/*244224*/ OPC_CheckChild1Type, MVT::i32, ++/*244226*/ OPC_CheckChild2Integer, 15, ++/*244228*/ OPC_CheckChild2Type, MVT::i32, ++/*244230*/ OPC_CheckChild3Integer, 15, ++/*244232*/ OPC_CheckChild3Type, MVT::i32, ++/*244234*/ OPC_CheckChild4Integer, 15, ++/*244236*/ OPC_CheckChild4Type, MVT::i32, ++/*244238*/ OPC_MoveChild5, ++/*244239*/ OPC_CheckInteger, 15, ++/*244241*/ OPC_CheckType, MVT::i32, ++/*244243*/ OPC_MoveParent, ++/*244244*/ OPC_MoveChild6, ++/*244245*/ OPC_CheckInteger, 15, ++/*244247*/ OPC_CheckType, MVT::i32, ++/*244249*/ OPC_MoveParent, ++/*244250*/ OPC_MoveChild7, ++/*244251*/ OPC_CheckInteger, 15, ++/*244253*/ OPC_CheckType, MVT::i32, ++/*244255*/ OPC_MoveParent, ++/*244256*/ OPC_MoveChild, 8, ++/*244258*/ OPC_CheckInteger, 15, ++/*244260*/ OPC_CheckType, MVT::i32, ++/*244262*/ OPC_MoveParent, ++/*244263*/ OPC_MoveChild, 9, ++/*244265*/ OPC_CheckInteger, 15, ++/*244267*/ OPC_CheckType, MVT::i32, ++/*244269*/ OPC_MoveParent, ++/*244270*/ OPC_MoveChild, 10, ++/*244272*/ OPC_CheckInteger, 15, ++/*244274*/ OPC_CheckType, MVT::i32, ++/*244276*/ OPC_MoveParent, ++/*244277*/ OPC_MoveChild, 11, ++/*244279*/ OPC_CheckInteger, 15, ++/*244281*/ OPC_CheckType, MVT::i32, ++/*244283*/ OPC_MoveParent, ++/*244284*/ OPC_MoveChild, 12, ++/*244286*/ OPC_CheckInteger, 15, ++/*244288*/ OPC_CheckType, MVT::i32, ++/*244290*/ OPC_MoveParent, ++/*244291*/ OPC_MoveChild, 13, ++/*244293*/ OPC_CheckInteger, 15, ++/*244295*/ OPC_CheckType, MVT::i32, ++/*244297*/ OPC_MoveParent, ++/*244298*/ OPC_MoveChild, 14, ++/*244300*/ OPC_CheckInteger, 15, ++/*244302*/ OPC_CheckType, MVT::i32, ++/*244304*/ OPC_MoveParent, ++/*244305*/ OPC_MoveChild, 15, ++/*244307*/ OPC_CheckInteger, 15, ++/*244309*/ OPC_CheckType, MVT::i32, ++/*244311*/ OPC_MoveParent, ++/*244312*/ OPC_CheckType, MVT::v16i16, ++/*244314*/ OPC_MoveParent, ++/*244315*/ OPC_MoveParent, ++/*244316*/ OPC_MoveParent, ++/*244317*/ OPC_MoveChild1, ++/*244318*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*244321*/ OPC_CheckChild0Integer, 1, ++/*244323*/ OPC_CheckChild0Type, MVT::i32, ++/*244325*/ OPC_CheckChild1Integer, 1, ++/*244327*/ OPC_CheckChild1Type, MVT::i32, ++/*244329*/ OPC_CheckChild2Integer, 1, ++/*244331*/ OPC_CheckChild2Type, MVT::i32, ++/*244333*/ OPC_CheckChild3Integer, 1, ++/*244335*/ OPC_CheckChild3Type, MVT::i32, ++/*244337*/ OPC_CheckChild4Integer, 1, ++/*244339*/ OPC_CheckChild4Type, MVT::i32, ++/*244341*/ OPC_MoveChild5, ++/*244342*/ OPC_CheckInteger, 1, ++/*244344*/ OPC_CheckType, MVT::i32, ++/*244346*/ OPC_MoveParent, ++/*244347*/ OPC_MoveChild6, ++/*244348*/ OPC_CheckInteger, 1, ++/*244350*/ OPC_CheckType, MVT::i32, ++/*244352*/ OPC_MoveParent, ++/*244353*/ OPC_MoveChild7, ++/*244354*/ OPC_CheckInteger, 1, ++/*244356*/ OPC_CheckType, MVT::i32, ++/*244358*/ OPC_MoveParent, ++/*244359*/ OPC_MoveChild, 8, ++/*244361*/ OPC_CheckInteger, 1, ++/*244363*/ OPC_CheckType, MVT::i32, ++/*244365*/ OPC_MoveParent, ++/*244366*/ OPC_MoveChild, 9, ++/*244368*/ OPC_CheckInteger, 1, ++/*244370*/ OPC_CheckType, MVT::i32, ++/*244372*/ OPC_MoveParent, ++/*244373*/ OPC_MoveChild, 10, ++/*244375*/ OPC_CheckInteger, 1, ++/*244377*/ OPC_CheckType, MVT::i32, ++/*244379*/ OPC_MoveParent, ++/*244380*/ OPC_MoveChild, 11, ++/*244382*/ OPC_CheckInteger, 1, ++/*244384*/ OPC_CheckType, MVT::i32, ++/*244386*/ OPC_MoveParent, ++/*244387*/ OPC_MoveChild, 12, ++/*244389*/ OPC_CheckInteger, 1, ++/*244391*/ OPC_CheckType, MVT::i32, ++/*244393*/ OPC_MoveParent, ++/*244394*/ OPC_MoveChild, 13, ++/*244396*/ OPC_CheckInteger, 1, ++/*244398*/ OPC_CheckType, MVT::i32, ++/*244400*/ OPC_MoveParent, ++/*244401*/ OPC_MoveChild, 14, ++/*244403*/ OPC_CheckInteger, 1, ++/*244405*/ OPC_CheckType, MVT::i32, ++/*244407*/ OPC_MoveParent, ++/*244408*/ OPC_MoveChild, 15, ++/*244410*/ OPC_CheckInteger, 1, ++/*244412*/ OPC_CheckType, MVT::i32, ++/*244414*/ OPC_MoveParent, ++/*244415*/ OPC_CheckType, MVT::v16i16, ++/*244417*/ OPC_MoveParent, ++/*244418*/ OPC_CheckType, MVT::v16i16, ++/*244420*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*244422*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*244430*/ /*Scope*/ 63|128,2/*319*/, /*->244751*/ ++/*244432*/ OPC_CheckChild0Same, 1, ++/*244434*/ OPC_MoveChild1, ++/*244435*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*244438*/ OPC_CheckChild0Integer, 1, ++/*244440*/ OPC_CheckChild0Type, MVT::i32, ++/*244442*/ OPC_CheckChild1Integer, 1, ++/*244444*/ OPC_CheckChild1Type, MVT::i32, ++/*244446*/ OPC_CheckChild2Integer, 1, ++/*244448*/ OPC_CheckChild2Type, MVT::i32, ++/*244450*/ OPC_CheckChild3Integer, 1, ++/*244452*/ OPC_CheckChild3Type, MVT::i32, ++/*244454*/ OPC_CheckChild4Integer, 1, ++/*244456*/ OPC_CheckChild4Type, MVT::i32, ++/*244458*/ OPC_MoveChild5, ++/*244459*/ OPC_CheckInteger, 1, ++/*244461*/ OPC_CheckType, MVT::i32, ++/*244463*/ OPC_MoveParent, ++/*244464*/ OPC_MoveChild6, ++/*244465*/ OPC_CheckInteger, 1, ++/*244467*/ OPC_CheckType, MVT::i32, ++/*244469*/ OPC_MoveParent, ++/*244470*/ OPC_MoveChild7, ++/*244471*/ OPC_CheckInteger, 1, ++/*244473*/ OPC_CheckType, MVT::i32, ++/*244475*/ OPC_MoveParent, ++/*244476*/ OPC_MoveChild, 8, ++/*244478*/ OPC_CheckInteger, 1, ++/*244480*/ OPC_CheckType, MVT::i32, ++/*244482*/ OPC_MoveParent, ++/*244483*/ OPC_MoveChild, 9, ++/*244485*/ OPC_CheckInteger, 1, ++/*244487*/ OPC_CheckType, MVT::i32, ++/*244489*/ OPC_MoveParent, ++/*244490*/ OPC_MoveChild, 10, ++/*244492*/ OPC_CheckInteger, 1, ++/*244494*/ OPC_CheckType, MVT::i32, ++/*244496*/ OPC_MoveParent, ++/*244497*/ OPC_MoveChild, 11, ++/*244499*/ OPC_CheckInteger, 1, ++/*244501*/ OPC_CheckType, MVT::i32, ++/*244503*/ OPC_MoveParent, ++/*244504*/ OPC_MoveChild, 12, ++/*244506*/ OPC_CheckInteger, 1, ++/*244508*/ OPC_CheckType, MVT::i32, ++/*244510*/ OPC_MoveParent, ++/*244511*/ OPC_MoveChild, 13, ++/*244513*/ OPC_CheckInteger, 1, ++/*244515*/ OPC_CheckType, MVT::i32, ++/*244517*/ OPC_MoveParent, ++/*244518*/ OPC_MoveChild, 14, ++/*244520*/ OPC_CheckInteger, 1, ++/*244522*/ OPC_CheckType, MVT::i32, ++/*244524*/ OPC_MoveParent, ++/*244525*/ OPC_MoveChild, 15, ++/*244527*/ OPC_CheckInteger, 1, ++/*244529*/ OPC_CheckType, MVT::i32, ++/*244531*/ OPC_MoveParent, ++/*244532*/ OPC_MoveParent, ++/*244533*/ OPC_MoveParent, ++/*244534*/ OPC_MoveParent, ++/*244535*/ OPC_MoveChild1, ++/*244536*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*244539*/ OPC_CheckChild0Integer, 15, ++/*244541*/ OPC_CheckChild0Type, MVT::i32, ++/*244543*/ OPC_CheckChild1Integer, 15, ++/*244545*/ OPC_CheckChild1Type, MVT::i32, ++/*244547*/ OPC_CheckChild2Integer, 15, ++/*244549*/ OPC_CheckChild2Type, MVT::i32, ++/*244551*/ OPC_CheckChild3Integer, 15, ++/*244553*/ OPC_CheckChild3Type, MVT::i32, ++/*244555*/ OPC_CheckChild4Integer, 15, ++/*244557*/ OPC_CheckChild4Type, MVT::i32, ++/*244559*/ OPC_MoveChild5, ++/*244560*/ OPC_CheckInteger, 15, ++/*244562*/ OPC_CheckType, MVT::i32, ++/*244564*/ OPC_MoveParent, ++/*244565*/ OPC_MoveChild6, ++/*244566*/ OPC_CheckInteger, 15, ++/*244568*/ OPC_CheckType, MVT::i32, ++/*244570*/ OPC_MoveParent, ++/*244571*/ OPC_MoveChild7, ++/*244572*/ OPC_CheckInteger, 15, ++/*244574*/ OPC_CheckType, MVT::i32, ++/*244576*/ OPC_MoveParent, ++/*244577*/ OPC_MoveChild, 8, ++/*244579*/ OPC_CheckInteger, 15, ++/*244581*/ OPC_CheckType, MVT::i32, ++/*244583*/ OPC_MoveParent, ++/*244584*/ OPC_MoveChild, 9, ++/*244586*/ OPC_CheckInteger, 15, ++/*244588*/ OPC_CheckType, MVT::i32, ++/*244590*/ OPC_MoveParent, ++/*244591*/ OPC_MoveChild, 10, ++/*244593*/ OPC_CheckInteger, 15, ++/*244595*/ OPC_CheckType, MVT::i32, ++/*244597*/ OPC_MoveParent, ++/*244598*/ OPC_MoveChild, 11, ++/*244600*/ OPC_CheckInteger, 15, ++/*244602*/ OPC_CheckType, MVT::i32, ++/*244604*/ OPC_MoveParent, ++/*244605*/ OPC_MoveChild, 12, ++/*244607*/ OPC_CheckInteger, 15, ++/*244609*/ OPC_CheckType, MVT::i32, ++/*244611*/ OPC_MoveParent, ++/*244612*/ OPC_MoveChild, 13, ++/*244614*/ OPC_CheckInteger, 15, ++/*244616*/ OPC_CheckType, MVT::i32, ++/*244618*/ OPC_MoveParent, ++/*244619*/ OPC_MoveChild, 14, ++/*244621*/ OPC_CheckInteger, 15, ++/*244623*/ OPC_CheckType, MVT::i32, ++/*244625*/ OPC_MoveParent, ++/*244626*/ OPC_MoveChild, 15, ++/*244628*/ OPC_CheckInteger, 15, ++/*244630*/ OPC_CheckType, MVT::i32, ++/*244632*/ OPC_MoveParent, ++/*244633*/ OPC_CheckType, MVT::v16i16, ++/*244635*/ OPC_MoveParent, ++/*244636*/ OPC_MoveParent, ++/*244637*/ OPC_MoveParent, ++/*244638*/ OPC_MoveChild1, ++/*244639*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*244642*/ OPC_CheckChild0Integer, 1, ++/*244644*/ OPC_CheckChild0Type, MVT::i32, ++/*244646*/ OPC_CheckChild1Integer, 1, ++/*244648*/ OPC_CheckChild1Type, MVT::i32, ++/*244650*/ OPC_CheckChild2Integer, 1, ++/*244652*/ OPC_CheckChild2Type, MVT::i32, ++/*244654*/ OPC_CheckChild3Integer, 1, ++/*244656*/ OPC_CheckChild3Type, MVT::i32, ++/*244658*/ OPC_CheckChild4Integer, 1, ++/*244660*/ OPC_CheckChild4Type, MVT::i32, ++/*244662*/ OPC_MoveChild5, ++/*244663*/ OPC_CheckInteger, 1, ++/*244665*/ OPC_CheckType, MVT::i32, ++/*244667*/ OPC_MoveParent, ++/*244668*/ OPC_MoveChild6, ++/*244669*/ OPC_CheckInteger, 1, ++/*244671*/ OPC_CheckType, MVT::i32, ++/*244673*/ OPC_MoveParent, ++/*244674*/ OPC_MoveChild7, ++/*244675*/ OPC_CheckInteger, 1, ++/*244677*/ OPC_CheckType, MVT::i32, ++/*244679*/ OPC_MoveParent, ++/*244680*/ OPC_MoveChild, 8, ++/*244682*/ OPC_CheckInteger, 1, ++/*244684*/ OPC_CheckType, MVT::i32, ++/*244686*/ OPC_MoveParent, ++/*244687*/ OPC_MoveChild, 9, ++/*244689*/ OPC_CheckInteger, 1, ++/*244691*/ OPC_CheckType, MVT::i32, ++/*244693*/ OPC_MoveParent, ++/*244694*/ OPC_MoveChild, 10, ++/*244696*/ OPC_CheckInteger, 1, ++/*244698*/ OPC_CheckType, MVT::i32, ++/*244700*/ OPC_MoveParent, ++/*244701*/ OPC_MoveChild, 11, ++/*244703*/ OPC_CheckInteger, 1, ++/*244705*/ OPC_CheckType, MVT::i32, ++/*244707*/ OPC_MoveParent, ++/*244708*/ OPC_MoveChild, 12, ++/*244710*/ OPC_CheckInteger, 1, ++/*244712*/ OPC_CheckType, MVT::i32, ++/*244714*/ OPC_MoveParent, ++/*244715*/ OPC_MoveChild, 13, ++/*244717*/ OPC_CheckInteger, 1, ++/*244719*/ OPC_CheckType, MVT::i32, ++/*244721*/ OPC_MoveParent, ++/*244722*/ OPC_MoveChild, 14, ++/*244724*/ OPC_CheckInteger, 1, ++/*244726*/ OPC_CheckType, MVT::i32, ++/*244728*/ OPC_MoveParent, ++/*244729*/ OPC_MoveChild, 15, ++/*244731*/ OPC_CheckInteger, 1, ++/*244733*/ OPC_CheckType, MVT::i32, ++/*244735*/ OPC_MoveParent, ++/*244736*/ OPC_CheckType, MVT::v16i16, ++/*244738*/ OPC_MoveParent, ++/*244739*/ OPC_CheckType, MVT::v16i16, ++/*244741*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*244743*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*244751*/ 0, /*End of Scope*/ ++/*244752*/ /*Scope*/ 10|128,5/*650*/, /*->245404*/ ++/*244754*/ OPC_CheckChild0Same, 1, ++/*244756*/ OPC_MoveChild1, ++/*244757*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*244760*/ OPC_Scope, 63|128,2/*319*/, /*->245082*/ // 2 children in Scope ++/*244763*/ OPC_MoveChild0, ++/*244764*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*244767*/ OPC_CheckChild0Integer, 1, ++/*244769*/ OPC_CheckChild0Type, MVT::i32, ++/*244771*/ OPC_CheckChild1Integer, 1, ++/*244773*/ OPC_CheckChild1Type, MVT::i32, ++/*244775*/ OPC_CheckChild2Integer, 1, ++/*244777*/ OPC_CheckChild2Type, MVT::i32, ++/*244779*/ OPC_CheckChild3Integer, 1, ++/*244781*/ OPC_CheckChild3Type, MVT::i32, ++/*244783*/ OPC_CheckChild4Integer, 1, ++/*244785*/ OPC_CheckChild4Type, MVT::i32, ++/*244787*/ OPC_MoveChild5, ++/*244788*/ OPC_CheckInteger, 1, ++/*244790*/ OPC_CheckType, MVT::i32, ++/*244792*/ OPC_MoveParent, ++/*244793*/ OPC_MoveChild6, ++/*244794*/ OPC_CheckInteger, 1, ++/*244796*/ OPC_CheckType, MVT::i32, ++/*244798*/ OPC_MoveParent, ++/*244799*/ OPC_MoveChild7, ++/*244800*/ OPC_CheckInteger, 1, ++/*244802*/ OPC_CheckType, MVT::i32, ++/*244804*/ OPC_MoveParent, ++/*244805*/ OPC_MoveChild, 8, ++/*244807*/ OPC_CheckInteger, 1, ++/*244809*/ OPC_CheckType, MVT::i32, ++/*244811*/ OPC_MoveParent, ++/*244812*/ OPC_MoveChild, 9, ++/*244814*/ OPC_CheckInteger, 1, ++/*244816*/ OPC_CheckType, MVT::i32, ++/*244818*/ OPC_MoveParent, ++/*244819*/ OPC_MoveChild, 10, ++/*244821*/ OPC_CheckInteger, 1, ++/*244823*/ OPC_CheckType, MVT::i32, ++/*244825*/ OPC_MoveParent, ++/*244826*/ OPC_MoveChild, 11, ++/*244828*/ OPC_CheckInteger, 1, ++/*244830*/ OPC_CheckType, MVT::i32, ++/*244832*/ OPC_MoveParent, ++/*244833*/ OPC_MoveChild, 12, ++/*244835*/ OPC_CheckInteger, 1, ++/*244837*/ OPC_CheckType, MVT::i32, ++/*244839*/ OPC_MoveParent, ++/*244840*/ OPC_MoveChild, 13, ++/*244842*/ OPC_CheckInteger, 1, ++/*244844*/ OPC_CheckType, MVT::i32, ++/*244846*/ OPC_MoveParent, ++/*244847*/ OPC_MoveChild, 14, ++/*244849*/ OPC_CheckInteger, 1, ++/*244851*/ OPC_CheckType, MVT::i32, ++/*244853*/ OPC_MoveParent, ++/*244854*/ OPC_MoveChild, 15, ++/*244856*/ OPC_CheckInteger, 1, ++/*244858*/ OPC_CheckType, MVT::i32, ++/*244860*/ OPC_MoveParent, ++/*244861*/ OPC_MoveParent, ++/*244862*/ OPC_CheckChild1Same, 0, ++/*244864*/ OPC_MoveParent, ++/*244865*/ OPC_MoveParent, ++/*244866*/ OPC_MoveChild1, ++/*244867*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*244870*/ OPC_CheckChild0Integer, 15, ++/*244872*/ OPC_CheckChild0Type, MVT::i32, ++/*244874*/ OPC_CheckChild1Integer, 15, ++/*244876*/ OPC_CheckChild1Type, MVT::i32, ++/*244878*/ OPC_CheckChild2Integer, 15, ++/*244880*/ OPC_CheckChild2Type, MVT::i32, ++/*244882*/ OPC_CheckChild3Integer, 15, ++/*244884*/ OPC_CheckChild3Type, MVT::i32, ++/*244886*/ OPC_CheckChild4Integer, 15, ++/*244888*/ OPC_CheckChild4Type, MVT::i32, ++/*244890*/ OPC_MoveChild5, ++/*244891*/ OPC_CheckInteger, 15, ++/*244893*/ OPC_CheckType, MVT::i32, ++/*244895*/ OPC_MoveParent, ++/*244896*/ OPC_MoveChild6, ++/*244897*/ OPC_CheckInteger, 15, ++/*244899*/ OPC_CheckType, MVT::i32, ++/*244901*/ OPC_MoveParent, ++/*244902*/ OPC_MoveChild7, ++/*244903*/ OPC_CheckInteger, 15, ++/*244905*/ OPC_CheckType, MVT::i32, ++/*244907*/ OPC_MoveParent, ++/*244908*/ OPC_MoveChild, 8, ++/*244910*/ OPC_CheckInteger, 15, ++/*244912*/ OPC_CheckType, MVT::i32, ++/*244914*/ OPC_MoveParent, ++/*244915*/ OPC_MoveChild, 9, ++/*244917*/ OPC_CheckInteger, 15, ++/*244919*/ OPC_CheckType, MVT::i32, ++/*244921*/ OPC_MoveParent, ++/*244922*/ OPC_MoveChild, 10, ++/*244924*/ OPC_CheckInteger, 15, ++/*244926*/ OPC_CheckType, MVT::i32, ++/*244928*/ OPC_MoveParent, ++/*244929*/ OPC_MoveChild, 11, ++/*244931*/ OPC_CheckInteger, 15, ++/*244933*/ OPC_CheckType, MVT::i32, ++/*244935*/ OPC_MoveParent, ++/*244936*/ OPC_MoveChild, 12, ++/*244938*/ OPC_CheckInteger, 15, ++/*244940*/ OPC_CheckType, MVT::i32, ++/*244942*/ OPC_MoveParent, ++/*244943*/ OPC_MoveChild, 13, ++/*244945*/ OPC_CheckInteger, 15, ++/*244947*/ OPC_CheckType, MVT::i32, ++/*244949*/ OPC_MoveParent, ++/*244950*/ OPC_MoveChild, 14, ++/*244952*/ OPC_CheckInteger, 15, ++/*244954*/ OPC_CheckType, MVT::i32, ++/*244956*/ OPC_MoveParent, ++/*244957*/ OPC_MoveChild, 15, ++/*244959*/ OPC_CheckInteger, 15, ++/*244961*/ OPC_CheckType, MVT::i32, ++/*244963*/ OPC_MoveParent, ++/*244964*/ OPC_CheckType, MVT::v16i16, ++/*244966*/ OPC_MoveParent, ++/*244967*/ OPC_MoveParent, ++/*244968*/ OPC_MoveParent, ++/*244969*/ OPC_MoveChild1, ++/*244970*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*244973*/ OPC_CheckChild0Integer, 1, ++/*244975*/ OPC_CheckChild0Type, MVT::i32, ++/*244977*/ OPC_CheckChild1Integer, 1, ++/*244979*/ OPC_CheckChild1Type, MVT::i32, ++/*244981*/ OPC_CheckChild2Integer, 1, ++/*244983*/ OPC_CheckChild2Type, MVT::i32, ++/*244985*/ OPC_CheckChild3Integer, 1, ++/*244987*/ OPC_CheckChild3Type, MVT::i32, ++/*244989*/ OPC_CheckChild4Integer, 1, ++/*244991*/ OPC_CheckChild4Type, MVT::i32, ++/*244993*/ OPC_MoveChild5, ++/*244994*/ OPC_CheckInteger, 1, ++/*244996*/ OPC_CheckType, MVT::i32, ++/*244998*/ OPC_MoveParent, ++/*244999*/ OPC_MoveChild6, ++/*245000*/ OPC_CheckInteger, 1, ++/*245002*/ OPC_CheckType, MVT::i32, ++/*245004*/ OPC_MoveParent, ++/*245005*/ OPC_MoveChild7, ++/*245006*/ OPC_CheckInteger, 1, ++/*245008*/ OPC_CheckType, MVT::i32, ++/*245010*/ OPC_MoveParent, ++/*245011*/ OPC_MoveChild, 8, ++/*245013*/ OPC_CheckInteger, 1, ++/*245015*/ OPC_CheckType, MVT::i32, ++/*245017*/ OPC_MoveParent, ++/*245018*/ OPC_MoveChild, 9, ++/*245020*/ OPC_CheckInteger, 1, ++/*245022*/ OPC_CheckType, MVT::i32, ++/*245024*/ OPC_MoveParent, ++/*245025*/ OPC_MoveChild, 10, ++/*245027*/ OPC_CheckInteger, 1, ++/*245029*/ OPC_CheckType, MVT::i32, ++/*245031*/ OPC_MoveParent, ++/*245032*/ OPC_MoveChild, 11, ++/*245034*/ OPC_CheckInteger, 1, ++/*245036*/ OPC_CheckType, MVT::i32, ++/*245038*/ OPC_MoveParent, ++/*245039*/ OPC_MoveChild, 12, ++/*245041*/ OPC_CheckInteger, 1, ++/*245043*/ OPC_CheckType, MVT::i32, ++/*245045*/ OPC_MoveParent, ++/*245046*/ OPC_MoveChild, 13, ++/*245048*/ OPC_CheckInteger, 1, ++/*245050*/ OPC_CheckType, MVT::i32, ++/*245052*/ OPC_MoveParent, ++/*245053*/ OPC_MoveChild, 14, ++/*245055*/ OPC_CheckInteger, 1, ++/*245057*/ OPC_CheckType, MVT::i32, ++/*245059*/ OPC_MoveParent, ++/*245060*/ OPC_MoveChild, 15, ++/*245062*/ OPC_CheckInteger, 1, ++/*245064*/ OPC_CheckType, MVT::i32, ++/*245066*/ OPC_MoveParent, ++/*245067*/ OPC_CheckType, MVT::v16i16, ++/*245069*/ OPC_MoveParent, ++/*245070*/ OPC_CheckType, MVT::v16i16, ++/*245072*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*245074*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*245082*/ /*Scope*/ 63|128,2/*319*/, /*->245403*/ ++/*245084*/ OPC_CheckChild0Same, 0, ++/*245086*/ OPC_MoveChild1, ++/*245087*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*245090*/ OPC_CheckChild0Integer, 1, ++/*245092*/ OPC_CheckChild0Type, MVT::i32, ++/*245094*/ OPC_CheckChild1Integer, 1, ++/*245096*/ OPC_CheckChild1Type, MVT::i32, ++/*245098*/ OPC_CheckChild2Integer, 1, ++/*245100*/ OPC_CheckChild2Type, MVT::i32, ++/*245102*/ OPC_CheckChild3Integer, 1, ++/*245104*/ OPC_CheckChild3Type, MVT::i32, ++/*245106*/ OPC_CheckChild4Integer, 1, ++/*245108*/ OPC_CheckChild4Type, MVT::i32, ++/*245110*/ OPC_MoveChild5, ++/*245111*/ OPC_CheckInteger, 1, ++/*245113*/ OPC_CheckType, MVT::i32, ++/*245115*/ OPC_MoveParent, ++/*245116*/ OPC_MoveChild6, ++/*245117*/ OPC_CheckInteger, 1, ++/*245119*/ OPC_CheckType, MVT::i32, ++/*245121*/ OPC_MoveParent, ++/*245122*/ OPC_MoveChild7, ++/*245123*/ OPC_CheckInteger, 1, ++/*245125*/ OPC_CheckType, MVT::i32, ++/*245127*/ OPC_MoveParent, ++/*245128*/ OPC_MoveChild, 8, ++/*245130*/ OPC_CheckInteger, 1, ++/*245132*/ OPC_CheckType, MVT::i32, ++/*245134*/ OPC_MoveParent, ++/*245135*/ OPC_MoveChild, 9, ++/*245137*/ OPC_CheckInteger, 1, ++/*245139*/ OPC_CheckType, MVT::i32, ++/*245141*/ OPC_MoveParent, ++/*245142*/ OPC_MoveChild, 10, ++/*245144*/ OPC_CheckInteger, 1, ++/*245146*/ OPC_CheckType, MVT::i32, ++/*245148*/ OPC_MoveParent, ++/*245149*/ OPC_MoveChild, 11, ++/*245151*/ OPC_CheckInteger, 1, ++/*245153*/ OPC_CheckType, MVT::i32, ++/*245155*/ OPC_MoveParent, ++/*245156*/ OPC_MoveChild, 12, ++/*245158*/ OPC_CheckInteger, 1, ++/*245160*/ OPC_CheckType, MVT::i32, ++/*245162*/ OPC_MoveParent, ++/*245163*/ OPC_MoveChild, 13, ++/*245165*/ OPC_CheckInteger, 1, ++/*245167*/ OPC_CheckType, MVT::i32, ++/*245169*/ OPC_MoveParent, ++/*245170*/ OPC_MoveChild, 14, ++/*245172*/ OPC_CheckInteger, 1, ++/*245174*/ OPC_CheckType, MVT::i32, ++/*245176*/ OPC_MoveParent, ++/*245177*/ OPC_MoveChild, 15, ++/*245179*/ OPC_CheckInteger, 1, ++/*245181*/ OPC_CheckType, MVT::i32, ++/*245183*/ OPC_MoveParent, ++/*245184*/ OPC_MoveParent, ++/*245185*/ OPC_MoveParent, ++/*245186*/ OPC_MoveParent, ++/*245187*/ OPC_MoveChild1, ++/*245188*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*245191*/ OPC_CheckChild0Integer, 15, ++/*245193*/ OPC_CheckChild0Type, MVT::i32, ++/*245195*/ OPC_CheckChild1Integer, 15, ++/*245197*/ OPC_CheckChild1Type, MVT::i32, ++/*245199*/ OPC_CheckChild2Integer, 15, ++/*245201*/ OPC_CheckChild2Type, MVT::i32, ++/*245203*/ OPC_CheckChild3Integer, 15, ++/*245205*/ OPC_CheckChild3Type, MVT::i32, ++/*245207*/ OPC_CheckChild4Integer, 15, ++/*245209*/ OPC_CheckChild4Type, MVT::i32, ++/*245211*/ OPC_MoveChild5, ++/*245212*/ OPC_CheckInteger, 15, ++/*245214*/ OPC_CheckType, MVT::i32, ++/*245216*/ OPC_MoveParent, ++/*245217*/ OPC_MoveChild6, ++/*245218*/ OPC_CheckInteger, 15, ++/*245220*/ OPC_CheckType, MVT::i32, ++/*245222*/ OPC_MoveParent, ++/*245223*/ OPC_MoveChild7, ++/*245224*/ OPC_CheckInteger, 15, ++/*245226*/ OPC_CheckType, MVT::i32, ++/*245228*/ OPC_MoveParent, ++/*245229*/ OPC_MoveChild, 8, ++/*245231*/ OPC_CheckInteger, 15, ++/*245233*/ OPC_CheckType, MVT::i32, ++/*245235*/ OPC_MoveParent, ++/*245236*/ OPC_MoveChild, 9, ++/*245238*/ OPC_CheckInteger, 15, ++/*245240*/ OPC_CheckType, MVT::i32, ++/*245242*/ OPC_MoveParent, ++/*245243*/ OPC_MoveChild, 10, ++/*245245*/ OPC_CheckInteger, 15, ++/*245247*/ OPC_CheckType, MVT::i32, ++/*245249*/ OPC_MoveParent, ++/*245250*/ OPC_MoveChild, 11, ++/*245252*/ OPC_CheckInteger, 15, ++/*245254*/ OPC_CheckType, MVT::i32, ++/*245256*/ OPC_MoveParent, ++/*245257*/ OPC_MoveChild, 12, ++/*245259*/ OPC_CheckInteger, 15, ++/*245261*/ OPC_CheckType, MVT::i32, ++/*245263*/ OPC_MoveParent, ++/*245264*/ OPC_MoveChild, 13, ++/*245266*/ OPC_CheckInteger, 15, ++/*245268*/ OPC_CheckType, MVT::i32, ++/*245270*/ OPC_MoveParent, ++/*245271*/ OPC_MoveChild, 14, ++/*245273*/ OPC_CheckInteger, 15, ++/*245275*/ OPC_CheckType, MVT::i32, ++/*245277*/ OPC_MoveParent, ++/*245278*/ OPC_MoveChild, 15, ++/*245280*/ OPC_CheckInteger, 15, ++/*245282*/ OPC_CheckType, MVT::i32, ++/*245284*/ OPC_MoveParent, ++/*245285*/ OPC_CheckType, MVT::v16i16, ++/*245287*/ OPC_MoveParent, ++/*245288*/ OPC_MoveParent, ++/*245289*/ OPC_MoveParent, ++/*245290*/ OPC_MoveChild1, ++/*245291*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*245294*/ OPC_CheckChild0Integer, 1, ++/*245296*/ OPC_CheckChild0Type, MVT::i32, ++/*245298*/ OPC_CheckChild1Integer, 1, ++/*245300*/ OPC_CheckChild1Type, MVT::i32, ++/*245302*/ OPC_CheckChild2Integer, 1, ++/*245304*/ OPC_CheckChild2Type, MVT::i32, ++/*245306*/ OPC_CheckChild3Integer, 1, ++/*245308*/ OPC_CheckChild3Type, MVT::i32, ++/*245310*/ OPC_CheckChild4Integer, 1, ++/*245312*/ OPC_CheckChild4Type, MVT::i32, ++/*245314*/ OPC_MoveChild5, ++/*245315*/ OPC_CheckInteger, 1, ++/*245317*/ OPC_CheckType, MVT::i32, ++/*245319*/ OPC_MoveParent, ++/*245320*/ OPC_MoveChild6, ++/*245321*/ OPC_CheckInteger, 1, ++/*245323*/ OPC_CheckType, MVT::i32, ++/*245325*/ OPC_MoveParent, ++/*245326*/ OPC_MoveChild7, ++/*245327*/ OPC_CheckInteger, 1, ++/*245329*/ OPC_CheckType, MVT::i32, ++/*245331*/ OPC_MoveParent, ++/*245332*/ OPC_MoveChild, 8, ++/*245334*/ OPC_CheckInteger, 1, ++/*245336*/ OPC_CheckType, MVT::i32, ++/*245338*/ OPC_MoveParent, ++/*245339*/ OPC_MoveChild, 9, ++/*245341*/ OPC_CheckInteger, 1, ++/*245343*/ OPC_CheckType, MVT::i32, ++/*245345*/ OPC_MoveParent, ++/*245346*/ OPC_MoveChild, 10, ++/*245348*/ OPC_CheckInteger, 1, ++/*245350*/ OPC_CheckType, MVT::i32, ++/*245352*/ OPC_MoveParent, ++/*245353*/ OPC_MoveChild, 11, ++/*245355*/ OPC_CheckInteger, 1, ++/*245357*/ OPC_CheckType, MVT::i32, ++/*245359*/ OPC_MoveParent, ++/*245360*/ OPC_MoveChild, 12, ++/*245362*/ OPC_CheckInteger, 1, ++/*245364*/ OPC_CheckType, MVT::i32, ++/*245366*/ OPC_MoveParent, ++/*245367*/ OPC_MoveChild, 13, ++/*245369*/ OPC_CheckInteger, 1, ++/*245371*/ OPC_CheckType, MVT::i32, ++/*245373*/ OPC_MoveParent, ++/*245374*/ OPC_MoveChild, 14, ++/*245376*/ OPC_CheckInteger, 1, ++/*245378*/ OPC_CheckType, MVT::i32, ++/*245380*/ OPC_MoveParent, ++/*245381*/ OPC_MoveChild, 15, ++/*245383*/ OPC_CheckInteger, 1, ++/*245385*/ OPC_CheckType, MVT::i32, ++/*245387*/ OPC_MoveParent, ++/*245388*/ OPC_CheckType, MVT::v16i16, ++/*245390*/ OPC_MoveParent, ++/*245391*/ OPC_CheckType, MVT::v16i16, ++/*245393*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*245395*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*245403*/ 0, /*End of Scope*/ ++/*245404*/ /*Scope*/ 41|128,4/*553*/, /*->245959*/ ++/*245406*/ OPC_MoveChild0, ++/*245407*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*245410*/ OPC_CheckChild0Integer, 1, ++/*245412*/ OPC_CheckChild0Type, MVT::i32, ++/*245414*/ OPC_CheckChild1Integer, 1, ++/*245416*/ OPC_CheckChild1Type, MVT::i32, ++/*245418*/ OPC_CheckChild2Integer, 1, ++/*245420*/ OPC_CheckChild2Type, MVT::i32, ++/*245422*/ OPC_CheckChild3Integer, 1, ++/*245424*/ OPC_CheckChild3Type, MVT::i32, ++/*245426*/ OPC_CheckChild4Integer, 1, ++/*245428*/ OPC_CheckChild4Type, MVT::i32, ++/*245430*/ OPC_MoveChild5, ++/*245431*/ OPC_CheckInteger, 1, ++/*245433*/ OPC_CheckType, MVT::i32, ++/*245435*/ OPC_MoveParent, ++/*245436*/ OPC_MoveChild6, ++/*245437*/ OPC_CheckInteger, 1, ++/*245439*/ OPC_CheckType, MVT::i32, ++/*245441*/ OPC_MoveParent, ++/*245442*/ OPC_MoveChild7, ++/*245443*/ OPC_CheckInteger, 1, ++/*245445*/ OPC_CheckType, MVT::i32, ++/*245447*/ OPC_MoveParent, ++/*245448*/ OPC_MoveChild, 8, ++/*245450*/ OPC_CheckInteger, 1, ++/*245452*/ OPC_CheckType, MVT::i32, ++/*245454*/ OPC_MoveParent, ++/*245455*/ OPC_MoveChild, 9, ++/*245457*/ OPC_CheckInteger, 1, ++/*245459*/ OPC_CheckType, MVT::i32, ++/*245461*/ OPC_MoveParent, ++/*245462*/ OPC_MoveChild, 10, ++/*245464*/ OPC_CheckInteger, 1, ++/*245466*/ OPC_CheckType, MVT::i32, ++/*245468*/ OPC_MoveParent, ++/*245469*/ OPC_MoveChild, 11, ++/*245471*/ OPC_CheckInteger, 1, ++/*245473*/ OPC_CheckType, MVT::i32, ++/*245475*/ OPC_MoveParent, ++/*245476*/ OPC_MoveChild, 12, ++/*245478*/ OPC_CheckInteger, 1, ++/*245480*/ OPC_CheckType, MVT::i32, ++/*245482*/ OPC_MoveParent, ++/*245483*/ OPC_MoveChild, 13, ++/*245485*/ OPC_CheckInteger, 1, ++/*245487*/ OPC_CheckType, MVT::i32, ++/*245489*/ OPC_MoveParent, ++/*245490*/ OPC_MoveChild, 14, ++/*245492*/ OPC_CheckInteger, 1, ++/*245494*/ OPC_CheckType, MVT::i32, ++/*245496*/ OPC_MoveParent, ++/*245497*/ OPC_MoveChild, 15, ++/*245499*/ OPC_CheckInteger, 1, ++/*245501*/ OPC_CheckType, MVT::i32, ++/*245503*/ OPC_MoveParent, ++/*245504*/ OPC_MoveParent, ++/*245505*/ OPC_MoveChild1, ++/*245506*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*245509*/ OPC_Scope, 94|128,1/*222*/, /*->245734*/ // 2 children in Scope ++/*245512*/ OPC_CheckChild0Same, 1, ++/*245514*/ OPC_CheckChild1Same, 0, ++/*245516*/ OPC_MoveParent, ++/*245517*/ OPC_MoveParent, ++/*245518*/ OPC_MoveChild1, ++/*245519*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*245522*/ OPC_CheckChild0Integer, 15, ++/*245524*/ OPC_CheckChild0Type, MVT::i32, ++/*245526*/ OPC_CheckChild1Integer, 15, ++/*245528*/ OPC_CheckChild1Type, MVT::i32, ++/*245530*/ OPC_CheckChild2Integer, 15, ++/*245532*/ OPC_CheckChild2Type, MVT::i32, ++/*245534*/ OPC_CheckChild3Integer, 15, ++/*245536*/ OPC_CheckChild3Type, MVT::i32, ++/*245538*/ OPC_CheckChild4Integer, 15, ++/*245540*/ OPC_CheckChild4Type, MVT::i32, ++/*245542*/ OPC_MoveChild5, ++/*245543*/ OPC_CheckInteger, 15, ++/*245545*/ OPC_CheckType, MVT::i32, ++/*245547*/ OPC_MoveParent, ++/*245548*/ OPC_MoveChild6, ++/*245549*/ OPC_CheckInteger, 15, ++/*245551*/ OPC_CheckType, MVT::i32, ++/*245553*/ OPC_MoveParent, ++/*245554*/ OPC_MoveChild7, ++/*245555*/ OPC_CheckInteger, 15, ++/*245557*/ OPC_CheckType, MVT::i32, ++/*245559*/ OPC_MoveParent, ++/*245560*/ OPC_MoveChild, 8, ++/*245562*/ OPC_CheckInteger, 15, ++/*245564*/ OPC_CheckType, MVT::i32, ++/*245566*/ OPC_MoveParent, ++/*245567*/ OPC_MoveChild, 9, ++/*245569*/ OPC_CheckInteger, 15, ++/*245571*/ OPC_CheckType, MVT::i32, ++/*245573*/ OPC_MoveParent, ++/*245574*/ OPC_MoveChild, 10, ++/*245576*/ OPC_CheckInteger, 15, ++/*245578*/ OPC_CheckType, MVT::i32, ++/*245580*/ OPC_MoveParent, ++/*245581*/ OPC_MoveChild, 11, ++/*245583*/ OPC_CheckInteger, 15, ++/*245585*/ OPC_CheckType, MVT::i32, ++/*245587*/ OPC_MoveParent, ++/*245588*/ OPC_MoveChild, 12, ++/*245590*/ OPC_CheckInteger, 15, ++/*245592*/ OPC_CheckType, MVT::i32, ++/*245594*/ OPC_MoveParent, ++/*245595*/ OPC_MoveChild, 13, ++/*245597*/ OPC_CheckInteger, 15, ++/*245599*/ OPC_CheckType, MVT::i32, ++/*245601*/ OPC_MoveParent, ++/*245602*/ OPC_MoveChild, 14, ++/*245604*/ OPC_CheckInteger, 15, ++/*245606*/ OPC_CheckType, MVT::i32, ++/*245608*/ OPC_MoveParent, ++/*245609*/ OPC_MoveChild, 15, ++/*245611*/ OPC_CheckInteger, 15, ++/*245613*/ OPC_CheckType, MVT::i32, ++/*245615*/ OPC_MoveParent, ++/*245616*/ OPC_CheckType, MVT::v16i16, ++/*245618*/ OPC_MoveParent, ++/*245619*/ OPC_MoveParent, ++/*245620*/ OPC_MoveParent, ++/*245621*/ OPC_MoveChild1, ++/*245622*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*245625*/ OPC_CheckChild0Integer, 1, ++/*245627*/ OPC_CheckChild0Type, MVT::i32, ++/*245629*/ OPC_CheckChild1Integer, 1, ++/*245631*/ OPC_CheckChild1Type, MVT::i32, ++/*245633*/ OPC_CheckChild2Integer, 1, ++/*245635*/ OPC_CheckChild2Type, MVT::i32, ++/*245637*/ OPC_CheckChild3Integer, 1, ++/*245639*/ OPC_CheckChild3Type, MVT::i32, ++/*245641*/ OPC_CheckChild4Integer, 1, ++/*245643*/ OPC_CheckChild4Type, MVT::i32, ++/*245645*/ OPC_MoveChild5, ++/*245646*/ OPC_CheckInteger, 1, ++/*245648*/ OPC_CheckType, MVT::i32, ++/*245650*/ OPC_MoveParent, ++/*245651*/ OPC_MoveChild6, ++/*245652*/ OPC_CheckInteger, 1, ++/*245654*/ OPC_CheckType, MVT::i32, ++/*245656*/ OPC_MoveParent, ++/*245657*/ OPC_MoveChild7, ++/*245658*/ OPC_CheckInteger, 1, ++/*245660*/ OPC_CheckType, MVT::i32, ++/*245662*/ OPC_MoveParent, ++/*245663*/ OPC_MoveChild, 8, ++/*245665*/ OPC_CheckInteger, 1, ++/*245667*/ OPC_CheckType, MVT::i32, ++/*245669*/ OPC_MoveParent, ++/*245670*/ OPC_MoveChild, 9, ++/*245672*/ OPC_CheckInteger, 1, ++/*245674*/ OPC_CheckType, MVT::i32, ++/*245676*/ OPC_MoveParent, ++/*245677*/ OPC_MoveChild, 10, ++/*245679*/ OPC_CheckInteger, 1, ++/*245681*/ OPC_CheckType, MVT::i32, ++/*245683*/ OPC_MoveParent, ++/*245684*/ OPC_MoveChild, 11, ++/*245686*/ OPC_CheckInteger, 1, ++/*245688*/ OPC_CheckType, MVT::i32, ++/*245690*/ OPC_MoveParent, ++/*245691*/ OPC_MoveChild, 12, ++/*245693*/ OPC_CheckInteger, 1, ++/*245695*/ OPC_CheckType, MVT::i32, ++/*245697*/ OPC_MoveParent, ++/*245698*/ OPC_MoveChild, 13, ++/*245700*/ OPC_CheckInteger, 1, ++/*245702*/ OPC_CheckType, MVT::i32, ++/*245704*/ OPC_MoveParent, ++/*245705*/ OPC_MoveChild, 14, ++/*245707*/ OPC_CheckInteger, 1, ++/*245709*/ OPC_CheckType, MVT::i32, ++/*245711*/ OPC_MoveParent, ++/*245712*/ OPC_MoveChild, 15, ++/*245714*/ OPC_CheckInteger, 1, ++/*245716*/ OPC_CheckType, MVT::i32, ++/*245718*/ OPC_MoveParent, ++/*245719*/ OPC_CheckType, MVT::v16i16, ++/*245721*/ OPC_MoveParent, ++/*245722*/ OPC_CheckType, MVT::v16i16, ++/*245724*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*245726*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*245734*/ /*Scope*/ 94|128,1/*222*/, /*->245958*/ ++/*245736*/ OPC_CheckChild0Same, 0, ++/*245738*/ OPC_CheckChild1Same, 1, ++/*245740*/ OPC_MoveParent, ++/*245741*/ OPC_MoveParent, ++/*245742*/ OPC_MoveChild1, ++/*245743*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*245746*/ OPC_CheckChild0Integer, 15, ++/*245748*/ OPC_CheckChild0Type, MVT::i32, ++/*245750*/ OPC_CheckChild1Integer, 15, ++/*245752*/ OPC_CheckChild1Type, MVT::i32, ++/*245754*/ OPC_CheckChild2Integer, 15, ++/*245756*/ OPC_CheckChild2Type, MVT::i32, ++/*245758*/ OPC_CheckChild3Integer, 15, ++/*245760*/ OPC_CheckChild3Type, MVT::i32, ++/*245762*/ OPC_CheckChild4Integer, 15, ++/*245764*/ OPC_CheckChild4Type, MVT::i32, ++/*245766*/ OPC_MoveChild5, ++/*245767*/ OPC_CheckInteger, 15, ++/*245769*/ OPC_CheckType, MVT::i32, ++/*245771*/ OPC_MoveParent, ++/*245772*/ OPC_MoveChild6, ++/*245773*/ OPC_CheckInteger, 15, ++/*245775*/ OPC_CheckType, MVT::i32, ++/*245777*/ OPC_MoveParent, ++/*245778*/ OPC_MoveChild7, ++/*245779*/ OPC_CheckInteger, 15, ++/*245781*/ OPC_CheckType, MVT::i32, ++/*245783*/ OPC_MoveParent, ++/*245784*/ OPC_MoveChild, 8, ++/*245786*/ OPC_CheckInteger, 15, ++/*245788*/ OPC_CheckType, MVT::i32, ++/*245790*/ OPC_MoveParent, ++/*245791*/ OPC_MoveChild, 9, ++/*245793*/ OPC_CheckInteger, 15, ++/*245795*/ OPC_CheckType, MVT::i32, ++/*245797*/ OPC_MoveParent, ++/*245798*/ OPC_MoveChild, 10, ++/*245800*/ OPC_CheckInteger, 15, ++/*245802*/ OPC_CheckType, MVT::i32, ++/*245804*/ OPC_MoveParent, ++/*245805*/ OPC_MoveChild, 11, ++/*245807*/ OPC_CheckInteger, 15, ++/*245809*/ OPC_CheckType, MVT::i32, ++/*245811*/ OPC_MoveParent, ++/*245812*/ OPC_MoveChild, 12, ++/*245814*/ OPC_CheckInteger, 15, ++/*245816*/ OPC_CheckType, MVT::i32, ++/*245818*/ OPC_MoveParent, ++/*245819*/ OPC_MoveChild, 13, ++/*245821*/ OPC_CheckInteger, 15, ++/*245823*/ OPC_CheckType, MVT::i32, ++/*245825*/ OPC_MoveParent, ++/*245826*/ OPC_MoveChild, 14, ++/*245828*/ OPC_CheckInteger, 15, ++/*245830*/ OPC_CheckType, MVT::i32, ++/*245832*/ OPC_MoveParent, ++/*245833*/ OPC_MoveChild, 15, ++/*245835*/ OPC_CheckInteger, 15, ++/*245837*/ OPC_CheckType, MVT::i32, ++/*245839*/ OPC_MoveParent, ++/*245840*/ OPC_CheckType, MVT::v16i16, ++/*245842*/ OPC_MoveParent, ++/*245843*/ OPC_MoveParent, ++/*245844*/ OPC_MoveParent, ++/*245845*/ OPC_MoveChild1, ++/*245846*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*245849*/ OPC_CheckChild0Integer, 1, ++/*245851*/ OPC_CheckChild0Type, MVT::i32, ++/*245853*/ OPC_CheckChild1Integer, 1, ++/*245855*/ OPC_CheckChild1Type, MVT::i32, ++/*245857*/ OPC_CheckChild2Integer, 1, ++/*245859*/ OPC_CheckChild2Type, MVT::i32, ++/*245861*/ OPC_CheckChild3Integer, 1, ++/*245863*/ OPC_CheckChild3Type, MVT::i32, ++/*245865*/ OPC_CheckChild4Integer, 1, ++/*245867*/ OPC_CheckChild4Type, MVT::i32, ++/*245869*/ OPC_MoveChild5, ++/*245870*/ OPC_CheckInteger, 1, ++/*245872*/ OPC_CheckType, MVT::i32, ++/*245874*/ OPC_MoveParent, ++/*245875*/ OPC_MoveChild6, ++/*245876*/ OPC_CheckInteger, 1, ++/*245878*/ OPC_CheckType, MVT::i32, ++/*245880*/ OPC_MoveParent, ++/*245881*/ OPC_MoveChild7, ++/*245882*/ OPC_CheckInteger, 1, ++/*245884*/ OPC_CheckType, MVT::i32, ++/*245886*/ OPC_MoveParent, ++/*245887*/ OPC_MoveChild, 8, ++/*245889*/ OPC_CheckInteger, 1, ++/*245891*/ OPC_CheckType, MVT::i32, ++/*245893*/ OPC_MoveParent, ++/*245894*/ OPC_MoveChild, 9, ++/*245896*/ OPC_CheckInteger, 1, ++/*245898*/ OPC_CheckType, MVT::i32, ++/*245900*/ OPC_MoveParent, ++/*245901*/ OPC_MoveChild, 10, ++/*245903*/ OPC_CheckInteger, 1, ++/*245905*/ OPC_CheckType, MVT::i32, ++/*245907*/ OPC_MoveParent, ++/*245908*/ OPC_MoveChild, 11, ++/*245910*/ OPC_CheckInteger, 1, ++/*245912*/ OPC_CheckType, MVT::i32, ++/*245914*/ OPC_MoveParent, ++/*245915*/ OPC_MoveChild, 12, ++/*245917*/ OPC_CheckInteger, 1, ++/*245919*/ OPC_CheckType, MVT::i32, ++/*245921*/ OPC_MoveParent, ++/*245922*/ OPC_MoveChild, 13, ++/*245924*/ OPC_CheckInteger, 1, ++/*245926*/ OPC_CheckType, MVT::i32, ++/*245928*/ OPC_MoveParent, ++/*245929*/ OPC_MoveChild, 14, ++/*245931*/ OPC_CheckInteger, 1, ++/*245933*/ OPC_CheckType, MVT::i32, ++/*245935*/ OPC_MoveParent, ++/*245936*/ OPC_MoveChild, 15, ++/*245938*/ OPC_CheckInteger, 1, ++/*245940*/ OPC_CheckType, MVT::i32, ++/*245942*/ OPC_MoveParent, ++/*245943*/ OPC_CheckType, MVT::v16i16, ++/*245945*/ OPC_MoveParent, ++/*245946*/ OPC_CheckType, MVT::v16i16, ++/*245948*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*245950*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*245958*/ 0, /*End of Scope*/ ++/*245959*/ 0, /*End of Scope*/ ++/*245960*/ 0, /*End of Scope*/ ++/*245961*/ 0, /*End of Scope*/ ++/*245962*/ 0, // EndSwitchOpcode ++/*245963*/ /*Scope*/ 67|128,122/*15683*/, /*->261648*/ ++/*245965*/ OPC_RecordChild0, // #0 = $b ++/*245966*/ OPC_MoveChild1, ++/*245967*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*245970*/ OPC_Scope, 77|128,30/*3917*/, /*->249890*/ // 4 children in Scope ++/*245973*/ OPC_MoveChild0, ++/*245974*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*245977*/ OPC_CheckChild0Integer, 1, ++/*245979*/ OPC_CheckChild0Type, MVT::i32, ++/*245981*/ OPC_CheckChild1Integer, 1, ++/*245983*/ OPC_CheckChild1Type, MVT::i32, ++/*245985*/ OPC_CheckChild2Integer, 1, ++/*245987*/ OPC_CheckChild2Type, MVT::i32, ++/*245989*/ OPC_CheckChild3Integer, 1, ++/*245991*/ OPC_CheckChild3Type, MVT::i32, ++/*245993*/ OPC_CheckChild4Integer, 1, ++/*245995*/ OPC_CheckChild4Type, MVT::i32, ++/*245997*/ OPC_MoveChild5, ++/*245998*/ OPC_CheckInteger, 1, ++/*246000*/ OPC_CheckType, MVT::i32, ++/*246002*/ OPC_MoveParent, ++/*246003*/ OPC_MoveChild6, ++/*246004*/ OPC_CheckInteger, 1, ++/*246006*/ OPC_CheckType, MVT::i32, ++/*246008*/ OPC_MoveParent, ++/*246009*/ OPC_MoveChild7, ++/*246010*/ OPC_CheckInteger, 1, ++/*246012*/ OPC_CheckType, MVT::i32, ++/*246014*/ OPC_MoveParent, ++/*246015*/ OPC_MoveChild, 8, ++/*246017*/ OPC_CheckInteger, 1, ++/*246019*/ OPC_CheckType, MVT::i32, ++/*246021*/ OPC_MoveParent, ++/*246022*/ OPC_MoveChild, 9, ++/*246024*/ OPC_CheckInteger, 1, ++/*246026*/ OPC_CheckType, MVT::i32, ++/*246028*/ OPC_MoveParent, ++/*246029*/ OPC_MoveChild, 10, ++/*246031*/ OPC_CheckInteger, 1, ++/*246033*/ OPC_CheckType, MVT::i32, ++/*246035*/ OPC_MoveParent, ++/*246036*/ OPC_MoveChild, 11, ++/*246038*/ OPC_CheckInteger, 1, ++/*246040*/ OPC_CheckType, MVT::i32, ++/*246042*/ OPC_MoveParent, ++/*246043*/ OPC_MoveChild, 12, ++/*246045*/ OPC_CheckInteger, 1, ++/*246047*/ OPC_CheckType, MVT::i32, ++/*246049*/ OPC_MoveParent, ++/*246050*/ OPC_MoveChild, 13, ++/*246052*/ OPC_CheckInteger, 1, ++/*246054*/ OPC_CheckType, MVT::i32, ++/*246056*/ OPC_MoveParent, ++/*246057*/ OPC_MoveChild, 14, ++/*246059*/ OPC_CheckInteger, 1, ++/*246061*/ OPC_CheckType, MVT::i32, ++/*246063*/ OPC_MoveParent, ++/*246064*/ OPC_MoveChild, 15, ++/*246066*/ OPC_CheckInteger, 1, ++/*246068*/ OPC_CheckType, MVT::i32, ++/*246070*/ OPC_MoveParent, ++/*246071*/ OPC_MoveParent, ++/*246072*/ OPC_RecordChild1, // #1 = $a ++/*246073*/ OPC_MoveParent, ++/*246074*/ OPC_MoveParent, ++/*246075*/ OPC_MoveChild1, ++/*246076*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*246079*/ OPC_MoveChild0, ++/*246080*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*246083*/ OPC_Scope, 24|128,15/*1944*/, /*->248030*/ // 4 children in Scope ++/*246086*/ OPC_MoveChild0, ++/*246087*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*246090*/ OPC_Scope, 65|128,2/*321*/, /*->246414*/ // 6 children in Scope ++/*246093*/ OPC_MoveChild0, ++/*246094*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*246097*/ OPC_CheckChild0Integer, 1, ++/*246099*/ OPC_CheckChild0Type, MVT::i32, ++/*246101*/ OPC_CheckChild1Integer, 1, ++/*246103*/ OPC_CheckChild1Type, MVT::i32, ++/*246105*/ OPC_CheckChild2Integer, 1, ++/*246107*/ OPC_CheckChild2Type, MVT::i32, ++/*246109*/ OPC_CheckChild3Integer, 1, ++/*246111*/ OPC_CheckChild3Type, MVT::i32, ++/*246113*/ OPC_CheckChild4Integer, 1, ++/*246115*/ OPC_CheckChild4Type, MVT::i32, ++/*246117*/ OPC_MoveChild5, ++/*246118*/ OPC_CheckInteger, 1, ++/*246120*/ OPC_CheckType, MVT::i32, ++/*246122*/ OPC_MoveParent, ++/*246123*/ OPC_MoveChild6, ++/*246124*/ OPC_CheckInteger, 1, ++/*246126*/ OPC_CheckType, MVT::i32, ++/*246128*/ OPC_MoveParent, ++/*246129*/ OPC_MoveChild7, ++/*246130*/ OPC_CheckInteger, 1, ++/*246132*/ OPC_CheckType, MVT::i32, ++/*246134*/ OPC_MoveParent, ++/*246135*/ OPC_MoveChild, 8, ++/*246137*/ OPC_CheckInteger, 1, ++/*246139*/ OPC_CheckType, MVT::i32, ++/*246141*/ OPC_MoveParent, ++/*246142*/ OPC_MoveChild, 9, ++/*246144*/ OPC_CheckInteger, 1, ++/*246146*/ OPC_CheckType, MVT::i32, ++/*246148*/ OPC_MoveParent, ++/*246149*/ OPC_MoveChild, 10, ++/*246151*/ OPC_CheckInteger, 1, ++/*246153*/ OPC_CheckType, MVT::i32, ++/*246155*/ OPC_MoveParent, ++/*246156*/ OPC_MoveChild, 11, ++/*246158*/ OPC_CheckInteger, 1, ++/*246160*/ OPC_CheckType, MVT::i32, ++/*246162*/ OPC_MoveParent, ++/*246163*/ OPC_MoveChild, 12, ++/*246165*/ OPC_CheckInteger, 1, ++/*246167*/ OPC_CheckType, MVT::i32, ++/*246169*/ OPC_MoveParent, ++/*246170*/ OPC_MoveChild, 13, ++/*246172*/ OPC_CheckInteger, 1, ++/*246174*/ OPC_CheckType, MVT::i32, ++/*246176*/ OPC_MoveParent, ++/*246177*/ OPC_MoveChild, 14, ++/*246179*/ OPC_CheckInteger, 1, ++/*246181*/ OPC_CheckType, MVT::i32, ++/*246183*/ OPC_MoveParent, ++/*246184*/ OPC_MoveChild, 15, ++/*246186*/ OPC_CheckInteger, 1, ++/*246188*/ OPC_CheckType, MVT::i32, ++/*246190*/ OPC_MoveParent, ++/*246191*/ OPC_MoveParent, ++/*246192*/ OPC_CheckChild1Same, 1, ++/*246194*/ OPC_MoveParent, ++/*246195*/ OPC_CheckChild1Same, 0, ++/*246197*/ OPC_MoveParent, ++/*246198*/ OPC_MoveChild1, ++/*246199*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*246202*/ OPC_CheckChild0Integer, 15, ++/*246204*/ OPC_CheckChild0Type, MVT::i32, ++/*246206*/ OPC_CheckChild1Integer, 15, ++/*246208*/ OPC_CheckChild1Type, MVT::i32, ++/*246210*/ OPC_CheckChild2Integer, 15, ++/*246212*/ OPC_CheckChild2Type, MVT::i32, ++/*246214*/ OPC_CheckChild3Integer, 15, ++/*246216*/ OPC_CheckChild3Type, MVT::i32, ++/*246218*/ OPC_CheckChild4Integer, 15, ++/*246220*/ OPC_CheckChild4Type, MVT::i32, ++/*246222*/ OPC_MoveChild5, ++/*246223*/ OPC_CheckInteger, 15, ++/*246225*/ OPC_CheckType, MVT::i32, ++/*246227*/ OPC_MoveParent, ++/*246228*/ OPC_MoveChild6, ++/*246229*/ OPC_CheckInteger, 15, ++/*246231*/ OPC_CheckType, MVT::i32, ++/*246233*/ OPC_MoveParent, ++/*246234*/ OPC_MoveChild7, ++/*246235*/ OPC_CheckInteger, 15, ++/*246237*/ OPC_CheckType, MVT::i32, ++/*246239*/ OPC_MoveParent, ++/*246240*/ OPC_MoveChild, 8, ++/*246242*/ OPC_CheckInteger, 15, ++/*246244*/ OPC_CheckType, MVT::i32, ++/*246246*/ OPC_MoveParent, ++/*246247*/ OPC_MoveChild, 9, ++/*246249*/ OPC_CheckInteger, 15, ++/*246251*/ OPC_CheckType, MVT::i32, ++/*246253*/ OPC_MoveParent, ++/*246254*/ OPC_MoveChild, 10, ++/*246256*/ OPC_CheckInteger, 15, ++/*246258*/ OPC_CheckType, MVT::i32, ++/*246260*/ OPC_MoveParent, ++/*246261*/ OPC_MoveChild, 11, ++/*246263*/ OPC_CheckInteger, 15, ++/*246265*/ OPC_CheckType, MVT::i32, ++/*246267*/ OPC_MoveParent, ++/*246268*/ OPC_MoveChild, 12, ++/*246270*/ OPC_CheckInteger, 15, ++/*246272*/ OPC_CheckType, MVT::i32, ++/*246274*/ OPC_MoveParent, ++/*246275*/ OPC_MoveChild, 13, ++/*246277*/ OPC_CheckInteger, 15, ++/*246279*/ OPC_CheckType, MVT::i32, ++/*246281*/ OPC_MoveParent, ++/*246282*/ OPC_MoveChild, 14, ++/*246284*/ OPC_CheckInteger, 15, ++/*246286*/ OPC_CheckType, MVT::i32, ++/*246288*/ OPC_MoveParent, ++/*246289*/ OPC_MoveChild, 15, ++/*246291*/ OPC_CheckInteger, 15, ++/*246293*/ OPC_CheckType, MVT::i32, ++/*246295*/ OPC_MoveParent, ++/*246296*/ OPC_CheckType, MVT::v16i16, ++/*246298*/ OPC_MoveParent, ++/*246299*/ OPC_MoveParent, ++/*246300*/ OPC_MoveParent, ++/*246301*/ OPC_MoveChild1, ++/*246302*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*246305*/ OPC_CheckChild0Integer, 1, ++/*246307*/ OPC_CheckChild0Type, MVT::i32, ++/*246309*/ OPC_CheckChild1Integer, 1, ++/*246311*/ OPC_CheckChild1Type, MVT::i32, ++/*246313*/ OPC_CheckChild2Integer, 1, ++/*246315*/ OPC_CheckChild2Type, MVT::i32, ++/*246317*/ OPC_CheckChild3Integer, 1, ++/*246319*/ OPC_CheckChild3Type, MVT::i32, ++/*246321*/ OPC_CheckChild4Integer, 1, ++/*246323*/ OPC_CheckChild4Type, MVT::i32, ++/*246325*/ OPC_MoveChild5, ++/*246326*/ OPC_CheckInteger, 1, ++/*246328*/ OPC_CheckType, MVT::i32, ++/*246330*/ OPC_MoveParent, ++/*246331*/ OPC_MoveChild6, ++/*246332*/ OPC_CheckInteger, 1, ++/*246334*/ OPC_CheckType, MVT::i32, ++/*246336*/ OPC_MoveParent, ++/*246337*/ OPC_MoveChild7, ++/*246338*/ OPC_CheckInteger, 1, ++/*246340*/ OPC_CheckType, MVT::i32, ++/*246342*/ OPC_MoveParent, ++/*246343*/ OPC_MoveChild, 8, ++/*246345*/ OPC_CheckInteger, 1, ++/*246347*/ OPC_CheckType, MVT::i32, ++/*246349*/ OPC_MoveParent, ++/*246350*/ OPC_MoveChild, 9, ++/*246352*/ OPC_CheckInteger, 1, ++/*246354*/ OPC_CheckType, MVT::i32, ++/*246356*/ OPC_MoveParent, ++/*246357*/ OPC_MoveChild, 10, ++/*246359*/ OPC_CheckInteger, 1, ++/*246361*/ OPC_CheckType, MVT::i32, ++/*246363*/ OPC_MoveParent, ++/*246364*/ OPC_MoveChild, 11, ++/*246366*/ OPC_CheckInteger, 1, ++/*246368*/ OPC_CheckType, MVT::i32, ++/*246370*/ OPC_MoveParent, ++/*246371*/ OPC_MoveChild, 12, ++/*246373*/ OPC_CheckInteger, 1, ++/*246375*/ OPC_CheckType, MVT::i32, ++/*246377*/ OPC_MoveParent, ++/*246378*/ OPC_MoveChild, 13, ++/*246380*/ OPC_CheckInteger, 1, ++/*246382*/ OPC_CheckType, MVT::i32, ++/*246384*/ OPC_MoveParent, ++/*246385*/ OPC_MoveChild, 14, ++/*246387*/ OPC_CheckInteger, 1, ++/*246389*/ OPC_CheckType, MVT::i32, ++/*246391*/ OPC_MoveParent, ++/*246392*/ OPC_MoveChild, 15, ++/*246394*/ OPC_CheckInteger, 1, ++/*246396*/ OPC_CheckType, MVT::i32, ++/*246398*/ OPC_MoveParent, ++/*246399*/ OPC_CheckType, MVT::v16i16, ++/*246401*/ OPC_MoveParent, ++/*246402*/ OPC_CheckType, MVT::v16i16, ++/*246404*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*246406*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a)), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a), LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*246414*/ /*Scope*/ 65|128,2/*321*/, /*->246737*/ ++/*246416*/ OPC_CheckChild0Same, 1, ++/*246418*/ OPC_MoveChild1, ++/*246419*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*246422*/ OPC_CheckChild0Integer, 1, ++/*246424*/ OPC_CheckChild0Type, MVT::i32, ++/*246426*/ OPC_CheckChild1Integer, 1, ++/*246428*/ OPC_CheckChild1Type, MVT::i32, ++/*246430*/ OPC_CheckChild2Integer, 1, ++/*246432*/ OPC_CheckChild2Type, MVT::i32, ++/*246434*/ OPC_CheckChild3Integer, 1, ++/*246436*/ OPC_CheckChild3Type, MVT::i32, ++/*246438*/ OPC_CheckChild4Integer, 1, ++/*246440*/ OPC_CheckChild4Type, MVT::i32, ++/*246442*/ OPC_MoveChild5, ++/*246443*/ OPC_CheckInteger, 1, ++/*246445*/ OPC_CheckType, MVT::i32, ++/*246447*/ OPC_MoveParent, ++/*246448*/ OPC_MoveChild6, ++/*246449*/ OPC_CheckInteger, 1, ++/*246451*/ OPC_CheckType, MVT::i32, ++/*246453*/ OPC_MoveParent, ++/*246454*/ OPC_MoveChild7, ++/*246455*/ OPC_CheckInteger, 1, ++/*246457*/ OPC_CheckType, MVT::i32, ++/*246459*/ OPC_MoveParent, ++/*246460*/ OPC_MoveChild, 8, ++/*246462*/ OPC_CheckInteger, 1, ++/*246464*/ OPC_CheckType, MVT::i32, ++/*246466*/ OPC_MoveParent, ++/*246467*/ OPC_MoveChild, 9, ++/*246469*/ OPC_CheckInteger, 1, ++/*246471*/ OPC_CheckType, MVT::i32, ++/*246473*/ OPC_MoveParent, ++/*246474*/ OPC_MoveChild, 10, ++/*246476*/ OPC_CheckInteger, 1, ++/*246478*/ OPC_CheckType, MVT::i32, ++/*246480*/ OPC_MoveParent, ++/*246481*/ OPC_MoveChild, 11, ++/*246483*/ OPC_CheckInteger, 1, ++/*246485*/ OPC_CheckType, MVT::i32, ++/*246487*/ OPC_MoveParent, ++/*246488*/ OPC_MoveChild, 12, ++/*246490*/ OPC_CheckInteger, 1, ++/*246492*/ OPC_CheckType, MVT::i32, ++/*246494*/ OPC_MoveParent, ++/*246495*/ OPC_MoveChild, 13, ++/*246497*/ OPC_CheckInteger, 1, ++/*246499*/ OPC_CheckType, MVT::i32, ++/*246501*/ OPC_MoveParent, ++/*246502*/ OPC_MoveChild, 14, ++/*246504*/ OPC_CheckInteger, 1, ++/*246506*/ OPC_CheckType, MVT::i32, ++/*246508*/ OPC_MoveParent, ++/*246509*/ OPC_MoveChild, 15, ++/*246511*/ OPC_CheckInteger, 1, ++/*246513*/ OPC_CheckType, MVT::i32, ++/*246515*/ OPC_MoveParent, ++/*246516*/ OPC_MoveParent, ++/*246517*/ OPC_MoveParent, ++/*246518*/ OPC_CheckChild1Same, 0, ++/*246520*/ OPC_MoveParent, ++/*246521*/ OPC_MoveChild1, ++/*246522*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*246525*/ OPC_CheckChild0Integer, 15, ++/*246527*/ OPC_CheckChild0Type, MVT::i32, ++/*246529*/ OPC_CheckChild1Integer, 15, ++/*246531*/ OPC_CheckChild1Type, MVT::i32, ++/*246533*/ OPC_CheckChild2Integer, 15, ++/*246535*/ OPC_CheckChild2Type, MVT::i32, ++/*246537*/ OPC_CheckChild3Integer, 15, ++/*246539*/ OPC_CheckChild3Type, MVT::i32, ++/*246541*/ OPC_CheckChild4Integer, 15, ++/*246543*/ OPC_CheckChild4Type, MVT::i32, ++/*246545*/ OPC_MoveChild5, ++/*246546*/ OPC_CheckInteger, 15, ++/*246548*/ OPC_CheckType, MVT::i32, ++/*246550*/ OPC_MoveParent, ++/*246551*/ OPC_MoveChild6, ++/*246552*/ OPC_CheckInteger, 15, ++/*246554*/ OPC_CheckType, MVT::i32, ++/*246556*/ OPC_MoveParent, ++/*246557*/ OPC_MoveChild7, ++/*246558*/ OPC_CheckInteger, 15, ++/*246560*/ OPC_CheckType, MVT::i32, ++/*246562*/ OPC_MoveParent, ++/*246563*/ OPC_MoveChild, 8, ++/*246565*/ OPC_CheckInteger, 15, ++/*246567*/ OPC_CheckType, MVT::i32, ++/*246569*/ OPC_MoveParent, ++/*246570*/ OPC_MoveChild, 9, ++/*246572*/ OPC_CheckInteger, 15, ++/*246574*/ OPC_CheckType, MVT::i32, ++/*246576*/ OPC_MoveParent, ++/*246577*/ OPC_MoveChild, 10, ++/*246579*/ OPC_CheckInteger, 15, ++/*246581*/ OPC_CheckType, MVT::i32, ++/*246583*/ OPC_MoveParent, ++/*246584*/ OPC_MoveChild, 11, ++/*246586*/ OPC_CheckInteger, 15, ++/*246588*/ OPC_CheckType, MVT::i32, ++/*246590*/ OPC_MoveParent, ++/*246591*/ OPC_MoveChild, 12, ++/*246593*/ OPC_CheckInteger, 15, ++/*246595*/ OPC_CheckType, MVT::i32, ++/*246597*/ OPC_MoveParent, ++/*246598*/ OPC_MoveChild, 13, ++/*246600*/ OPC_CheckInteger, 15, ++/*246602*/ OPC_CheckType, MVT::i32, ++/*246604*/ OPC_MoveParent, ++/*246605*/ OPC_MoveChild, 14, ++/*246607*/ OPC_CheckInteger, 15, ++/*246609*/ OPC_CheckType, MVT::i32, ++/*246611*/ OPC_MoveParent, ++/*246612*/ OPC_MoveChild, 15, ++/*246614*/ OPC_CheckInteger, 15, ++/*246616*/ OPC_CheckType, MVT::i32, ++/*246618*/ OPC_MoveParent, ++/*246619*/ OPC_CheckType, MVT::v16i16, ++/*246621*/ OPC_MoveParent, ++/*246622*/ OPC_MoveParent, ++/*246623*/ OPC_MoveParent, ++/*246624*/ OPC_MoveChild1, ++/*246625*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*246628*/ OPC_CheckChild0Integer, 1, ++/*246630*/ OPC_CheckChild0Type, MVT::i32, ++/*246632*/ OPC_CheckChild1Integer, 1, ++/*246634*/ OPC_CheckChild1Type, MVT::i32, ++/*246636*/ OPC_CheckChild2Integer, 1, ++/*246638*/ OPC_CheckChild2Type, MVT::i32, ++/*246640*/ OPC_CheckChild3Integer, 1, ++/*246642*/ OPC_CheckChild3Type, MVT::i32, ++/*246644*/ OPC_CheckChild4Integer, 1, ++/*246646*/ OPC_CheckChild4Type, MVT::i32, ++/*246648*/ OPC_MoveChild5, ++/*246649*/ OPC_CheckInteger, 1, ++/*246651*/ OPC_CheckType, MVT::i32, ++/*246653*/ OPC_MoveParent, ++/*246654*/ OPC_MoveChild6, ++/*246655*/ OPC_CheckInteger, 1, ++/*246657*/ OPC_CheckType, MVT::i32, ++/*246659*/ OPC_MoveParent, ++/*246660*/ OPC_MoveChild7, ++/*246661*/ OPC_CheckInteger, 1, ++/*246663*/ OPC_CheckType, MVT::i32, ++/*246665*/ OPC_MoveParent, ++/*246666*/ OPC_MoveChild, 8, ++/*246668*/ OPC_CheckInteger, 1, ++/*246670*/ OPC_CheckType, MVT::i32, ++/*246672*/ OPC_MoveParent, ++/*246673*/ OPC_MoveChild, 9, ++/*246675*/ OPC_CheckInteger, 1, ++/*246677*/ OPC_CheckType, MVT::i32, ++/*246679*/ OPC_MoveParent, ++/*246680*/ OPC_MoveChild, 10, ++/*246682*/ OPC_CheckInteger, 1, ++/*246684*/ OPC_CheckType, MVT::i32, ++/*246686*/ OPC_MoveParent, ++/*246687*/ OPC_MoveChild, 11, ++/*246689*/ OPC_CheckInteger, 1, ++/*246691*/ OPC_CheckType, MVT::i32, ++/*246693*/ OPC_MoveParent, ++/*246694*/ OPC_MoveChild, 12, ++/*246696*/ OPC_CheckInteger, 1, ++/*246698*/ OPC_CheckType, MVT::i32, ++/*246700*/ OPC_MoveParent, ++/*246701*/ OPC_MoveChild, 13, ++/*246703*/ OPC_CheckInteger, 1, ++/*246705*/ OPC_CheckType, MVT::i32, ++/*246707*/ OPC_MoveParent, ++/*246708*/ OPC_MoveChild, 14, ++/*246710*/ OPC_CheckInteger, 1, ++/*246712*/ OPC_CheckType, MVT::i32, ++/*246714*/ OPC_MoveParent, ++/*246715*/ OPC_MoveChild, 15, ++/*246717*/ OPC_CheckInteger, 1, ++/*246719*/ OPC_CheckType, MVT::i32, ++/*246721*/ OPC_MoveParent, ++/*246722*/ OPC_CheckType, MVT::v16i16, ++/*246724*/ OPC_MoveParent, ++/*246725*/ OPC_CheckType, MVT::v16i16, ++/*246727*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*246729*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a)), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*246737*/ /*Scope*/ 65|128,2/*321*/, /*->247060*/ ++/*246739*/ OPC_MoveChild0, ++/*246740*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*246743*/ OPC_CheckChild0Integer, 1, ++/*246745*/ OPC_CheckChild0Type, MVT::i32, ++/*246747*/ OPC_CheckChild1Integer, 1, ++/*246749*/ OPC_CheckChild1Type, MVT::i32, ++/*246751*/ OPC_CheckChild2Integer, 1, ++/*246753*/ OPC_CheckChild2Type, MVT::i32, ++/*246755*/ OPC_CheckChild3Integer, 1, ++/*246757*/ OPC_CheckChild3Type, MVT::i32, ++/*246759*/ OPC_CheckChild4Integer, 1, ++/*246761*/ OPC_CheckChild4Type, MVT::i32, ++/*246763*/ OPC_MoveChild5, ++/*246764*/ OPC_CheckInteger, 1, ++/*246766*/ OPC_CheckType, MVT::i32, ++/*246768*/ OPC_MoveParent, ++/*246769*/ OPC_MoveChild6, ++/*246770*/ OPC_CheckInteger, 1, ++/*246772*/ OPC_CheckType, MVT::i32, ++/*246774*/ OPC_MoveParent, ++/*246775*/ OPC_MoveChild7, ++/*246776*/ OPC_CheckInteger, 1, ++/*246778*/ OPC_CheckType, MVT::i32, ++/*246780*/ OPC_MoveParent, ++/*246781*/ OPC_MoveChild, 8, ++/*246783*/ OPC_CheckInteger, 1, ++/*246785*/ OPC_CheckType, MVT::i32, ++/*246787*/ OPC_MoveParent, ++/*246788*/ OPC_MoveChild, 9, ++/*246790*/ OPC_CheckInteger, 1, ++/*246792*/ OPC_CheckType, MVT::i32, ++/*246794*/ OPC_MoveParent, ++/*246795*/ OPC_MoveChild, 10, ++/*246797*/ OPC_CheckInteger, 1, ++/*246799*/ OPC_CheckType, MVT::i32, ++/*246801*/ OPC_MoveParent, ++/*246802*/ OPC_MoveChild, 11, ++/*246804*/ OPC_CheckInteger, 1, ++/*246806*/ OPC_CheckType, MVT::i32, ++/*246808*/ OPC_MoveParent, ++/*246809*/ OPC_MoveChild, 12, ++/*246811*/ OPC_CheckInteger, 1, ++/*246813*/ OPC_CheckType, MVT::i32, ++/*246815*/ OPC_MoveParent, ++/*246816*/ OPC_MoveChild, 13, ++/*246818*/ OPC_CheckInteger, 1, ++/*246820*/ OPC_CheckType, MVT::i32, ++/*246822*/ OPC_MoveParent, ++/*246823*/ OPC_MoveChild, 14, ++/*246825*/ OPC_CheckInteger, 1, ++/*246827*/ OPC_CheckType, MVT::i32, ++/*246829*/ OPC_MoveParent, ++/*246830*/ OPC_MoveChild, 15, ++/*246832*/ OPC_CheckInteger, 1, ++/*246834*/ OPC_CheckType, MVT::i32, ++/*246836*/ OPC_MoveParent, ++/*246837*/ OPC_MoveParent, ++/*246838*/ OPC_CheckChild1Same, 0, ++/*246840*/ OPC_MoveParent, ++/*246841*/ OPC_CheckChild1Same, 1, ++/*246843*/ OPC_MoveParent, ++/*246844*/ OPC_MoveChild1, ++/*246845*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*246848*/ OPC_CheckChild0Integer, 15, ++/*246850*/ OPC_CheckChild0Type, MVT::i32, ++/*246852*/ OPC_CheckChild1Integer, 15, ++/*246854*/ OPC_CheckChild1Type, MVT::i32, ++/*246856*/ OPC_CheckChild2Integer, 15, ++/*246858*/ OPC_CheckChild2Type, MVT::i32, ++/*246860*/ OPC_CheckChild3Integer, 15, ++/*246862*/ OPC_CheckChild3Type, MVT::i32, ++/*246864*/ OPC_CheckChild4Integer, 15, ++/*246866*/ OPC_CheckChild4Type, MVT::i32, ++/*246868*/ OPC_MoveChild5, ++/*246869*/ OPC_CheckInteger, 15, ++/*246871*/ OPC_CheckType, MVT::i32, ++/*246873*/ OPC_MoveParent, ++/*246874*/ OPC_MoveChild6, ++/*246875*/ OPC_CheckInteger, 15, ++/*246877*/ OPC_CheckType, MVT::i32, ++/*246879*/ OPC_MoveParent, ++/*246880*/ OPC_MoveChild7, ++/*246881*/ OPC_CheckInteger, 15, ++/*246883*/ OPC_CheckType, MVT::i32, ++/*246885*/ OPC_MoveParent, ++/*246886*/ OPC_MoveChild, 8, ++/*246888*/ OPC_CheckInteger, 15, ++/*246890*/ OPC_CheckType, MVT::i32, ++/*246892*/ OPC_MoveParent, ++/*246893*/ OPC_MoveChild, 9, ++/*246895*/ OPC_CheckInteger, 15, ++/*246897*/ OPC_CheckType, MVT::i32, ++/*246899*/ OPC_MoveParent, ++/*246900*/ OPC_MoveChild, 10, ++/*246902*/ OPC_CheckInteger, 15, ++/*246904*/ OPC_CheckType, MVT::i32, ++/*246906*/ OPC_MoveParent, ++/*246907*/ OPC_MoveChild, 11, ++/*246909*/ OPC_CheckInteger, 15, ++/*246911*/ OPC_CheckType, MVT::i32, ++/*246913*/ OPC_MoveParent, ++/*246914*/ OPC_MoveChild, 12, ++/*246916*/ OPC_CheckInteger, 15, ++/*246918*/ OPC_CheckType, MVT::i32, ++/*246920*/ OPC_MoveParent, ++/*246921*/ OPC_MoveChild, 13, ++/*246923*/ OPC_CheckInteger, 15, ++/*246925*/ OPC_CheckType, MVT::i32, ++/*246927*/ OPC_MoveParent, ++/*246928*/ OPC_MoveChild, 14, ++/*246930*/ OPC_CheckInteger, 15, ++/*246932*/ OPC_CheckType, MVT::i32, ++/*246934*/ OPC_MoveParent, ++/*246935*/ OPC_MoveChild, 15, ++/*246937*/ OPC_CheckInteger, 15, ++/*246939*/ OPC_CheckType, MVT::i32, ++/*246941*/ OPC_MoveParent, ++/*246942*/ OPC_CheckType, MVT::v16i16, ++/*246944*/ OPC_MoveParent, ++/*246945*/ OPC_MoveParent, ++/*246946*/ OPC_MoveParent, ++/*246947*/ OPC_MoveChild1, ++/*246948*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*246951*/ OPC_CheckChild0Integer, 1, ++/*246953*/ OPC_CheckChild0Type, MVT::i32, ++/*246955*/ OPC_CheckChild1Integer, 1, ++/*246957*/ OPC_CheckChild1Type, MVT::i32, ++/*246959*/ OPC_CheckChild2Integer, 1, ++/*246961*/ OPC_CheckChild2Type, MVT::i32, ++/*246963*/ OPC_CheckChild3Integer, 1, ++/*246965*/ OPC_CheckChild3Type, MVT::i32, ++/*246967*/ OPC_CheckChild4Integer, 1, ++/*246969*/ OPC_CheckChild4Type, MVT::i32, ++/*246971*/ OPC_MoveChild5, ++/*246972*/ OPC_CheckInteger, 1, ++/*246974*/ OPC_CheckType, MVT::i32, ++/*246976*/ OPC_MoveParent, ++/*246977*/ OPC_MoveChild6, ++/*246978*/ OPC_CheckInteger, 1, ++/*246980*/ OPC_CheckType, MVT::i32, ++/*246982*/ OPC_MoveParent, ++/*246983*/ OPC_MoveChild7, ++/*246984*/ OPC_CheckInteger, 1, ++/*246986*/ OPC_CheckType, MVT::i32, ++/*246988*/ OPC_MoveParent, ++/*246989*/ OPC_MoveChild, 8, ++/*246991*/ OPC_CheckInteger, 1, ++/*246993*/ OPC_CheckType, MVT::i32, ++/*246995*/ OPC_MoveParent, ++/*246996*/ OPC_MoveChild, 9, ++/*246998*/ OPC_CheckInteger, 1, ++/*247000*/ OPC_CheckType, MVT::i32, ++/*247002*/ OPC_MoveParent, ++/*247003*/ OPC_MoveChild, 10, ++/*247005*/ OPC_CheckInteger, 1, ++/*247007*/ OPC_CheckType, MVT::i32, ++/*247009*/ OPC_MoveParent, ++/*247010*/ OPC_MoveChild, 11, ++/*247012*/ OPC_CheckInteger, 1, ++/*247014*/ OPC_CheckType, MVT::i32, ++/*247016*/ OPC_MoveParent, ++/*247017*/ OPC_MoveChild, 12, ++/*247019*/ OPC_CheckInteger, 1, ++/*247021*/ OPC_CheckType, MVT::i32, ++/*247023*/ OPC_MoveParent, ++/*247024*/ OPC_MoveChild, 13, ++/*247026*/ OPC_CheckInteger, 1, ++/*247028*/ OPC_CheckType, MVT::i32, ++/*247030*/ OPC_MoveParent, ++/*247031*/ OPC_MoveChild, 14, ++/*247033*/ OPC_CheckInteger, 1, ++/*247035*/ OPC_CheckType, MVT::i32, ++/*247037*/ OPC_MoveParent, ++/*247038*/ OPC_MoveChild, 15, ++/*247040*/ OPC_CheckInteger, 1, ++/*247042*/ OPC_CheckType, MVT::i32, ++/*247044*/ OPC_MoveParent, ++/*247045*/ OPC_CheckType, MVT::v16i16, ++/*247047*/ OPC_MoveParent, ++/*247048*/ OPC_CheckType, MVT::v16i16, ++/*247050*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*247052*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a)), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b), LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*247060*/ /*Scope*/ 65|128,2/*321*/, /*->247383*/ ++/*247062*/ OPC_CheckChild0Same, 0, ++/*247064*/ OPC_MoveChild1, ++/*247065*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*247068*/ OPC_CheckChild0Integer, 1, ++/*247070*/ OPC_CheckChild0Type, MVT::i32, ++/*247072*/ OPC_CheckChild1Integer, 1, ++/*247074*/ OPC_CheckChild1Type, MVT::i32, ++/*247076*/ OPC_CheckChild2Integer, 1, ++/*247078*/ OPC_CheckChild2Type, MVT::i32, ++/*247080*/ OPC_CheckChild3Integer, 1, ++/*247082*/ OPC_CheckChild3Type, MVT::i32, ++/*247084*/ OPC_CheckChild4Integer, 1, ++/*247086*/ OPC_CheckChild4Type, MVT::i32, ++/*247088*/ OPC_MoveChild5, ++/*247089*/ OPC_CheckInteger, 1, ++/*247091*/ OPC_CheckType, MVT::i32, ++/*247093*/ OPC_MoveParent, ++/*247094*/ OPC_MoveChild6, ++/*247095*/ OPC_CheckInteger, 1, ++/*247097*/ OPC_CheckType, MVT::i32, ++/*247099*/ OPC_MoveParent, ++/*247100*/ OPC_MoveChild7, ++/*247101*/ OPC_CheckInteger, 1, ++/*247103*/ OPC_CheckType, MVT::i32, ++/*247105*/ OPC_MoveParent, ++/*247106*/ OPC_MoveChild, 8, ++/*247108*/ OPC_CheckInteger, 1, ++/*247110*/ OPC_CheckType, MVT::i32, ++/*247112*/ OPC_MoveParent, ++/*247113*/ OPC_MoveChild, 9, ++/*247115*/ OPC_CheckInteger, 1, ++/*247117*/ OPC_CheckType, MVT::i32, ++/*247119*/ OPC_MoveParent, ++/*247120*/ OPC_MoveChild, 10, ++/*247122*/ OPC_CheckInteger, 1, ++/*247124*/ OPC_CheckType, MVT::i32, ++/*247126*/ OPC_MoveParent, ++/*247127*/ OPC_MoveChild, 11, ++/*247129*/ OPC_CheckInteger, 1, ++/*247131*/ OPC_CheckType, MVT::i32, ++/*247133*/ OPC_MoveParent, ++/*247134*/ OPC_MoveChild, 12, ++/*247136*/ OPC_CheckInteger, 1, ++/*247138*/ OPC_CheckType, MVT::i32, ++/*247140*/ OPC_MoveParent, ++/*247141*/ OPC_MoveChild, 13, ++/*247143*/ OPC_CheckInteger, 1, ++/*247145*/ OPC_CheckType, MVT::i32, ++/*247147*/ OPC_MoveParent, ++/*247148*/ OPC_MoveChild, 14, ++/*247150*/ OPC_CheckInteger, 1, ++/*247152*/ OPC_CheckType, MVT::i32, ++/*247154*/ OPC_MoveParent, ++/*247155*/ OPC_MoveChild, 15, ++/*247157*/ OPC_CheckInteger, 1, ++/*247159*/ OPC_CheckType, MVT::i32, ++/*247161*/ OPC_MoveParent, ++/*247162*/ OPC_MoveParent, ++/*247163*/ OPC_MoveParent, ++/*247164*/ OPC_CheckChild1Same, 1, ++/*247166*/ OPC_MoveParent, ++/*247167*/ OPC_MoveChild1, ++/*247168*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*247171*/ OPC_CheckChild0Integer, 15, ++/*247173*/ OPC_CheckChild0Type, MVT::i32, ++/*247175*/ OPC_CheckChild1Integer, 15, ++/*247177*/ OPC_CheckChild1Type, MVT::i32, ++/*247179*/ OPC_CheckChild2Integer, 15, ++/*247181*/ OPC_CheckChild2Type, MVT::i32, ++/*247183*/ OPC_CheckChild3Integer, 15, ++/*247185*/ OPC_CheckChild3Type, MVT::i32, ++/*247187*/ OPC_CheckChild4Integer, 15, ++/*247189*/ OPC_CheckChild4Type, MVT::i32, ++/*247191*/ OPC_MoveChild5, ++/*247192*/ OPC_CheckInteger, 15, ++/*247194*/ OPC_CheckType, MVT::i32, ++/*247196*/ OPC_MoveParent, ++/*247197*/ OPC_MoveChild6, ++/*247198*/ OPC_CheckInteger, 15, ++/*247200*/ OPC_CheckType, MVT::i32, ++/*247202*/ OPC_MoveParent, ++/*247203*/ OPC_MoveChild7, ++/*247204*/ OPC_CheckInteger, 15, ++/*247206*/ OPC_CheckType, MVT::i32, ++/*247208*/ OPC_MoveParent, ++/*247209*/ OPC_MoveChild, 8, ++/*247211*/ OPC_CheckInteger, 15, ++/*247213*/ OPC_CheckType, MVT::i32, ++/*247215*/ OPC_MoveParent, ++/*247216*/ OPC_MoveChild, 9, ++/*247218*/ OPC_CheckInteger, 15, ++/*247220*/ OPC_CheckType, MVT::i32, ++/*247222*/ OPC_MoveParent, ++/*247223*/ OPC_MoveChild, 10, ++/*247225*/ OPC_CheckInteger, 15, ++/*247227*/ OPC_CheckType, MVT::i32, ++/*247229*/ OPC_MoveParent, ++/*247230*/ OPC_MoveChild, 11, ++/*247232*/ OPC_CheckInteger, 15, ++/*247234*/ OPC_CheckType, MVT::i32, ++/*247236*/ OPC_MoveParent, ++/*247237*/ OPC_MoveChild, 12, ++/*247239*/ OPC_CheckInteger, 15, ++/*247241*/ OPC_CheckType, MVT::i32, ++/*247243*/ OPC_MoveParent, ++/*247244*/ OPC_MoveChild, 13, ++/*247246*/ OPC_CheckInteger, 15, ++/*247248*/ OPC_CheckType, MVT::i32, ++/*247250*/ OPC_MoveParent, ++/*247251*/ OPC_MoveChild, 14, ++/*247253*/ OPC_CheckInteger, 15, ++/*247255*/ OPC_CheckType, MVT::i32, ++/*247257*/ OPC_MoveParent, ++/*247258*/ OPC_MoveChild, 15, ++/*247260*/ OPC_CheckInteger, 15, ++/*247262*/ OPC_CheckType, MVT::i32, ++/*247264*/ OPC_MoveParent, ++/*247265*/ OPC_CheckType, MVT::v16i16, ++/*247267*/ OPC_MoveParent, ++/*247268*/ OPC_MoveParent, ++/*247269*/ OPC_MoveParent, ++/*247270*/ OPC_MoveChild1, ++/*247271*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*247274*/ OPC_CheckChild0Integer, 1, ++/*247276*/ OPC_CheckChild0Type, MVT::i32, ++/*247278*/ OPC_CheckChild1Integer, 1, ++/*247280*/ OPC_CheckChild1Type, MVT::i32, ++/*247282*/ OPC_CheckChild2Integer, 1, ++/*247284*/ OPC_CheckChild2Type, MVT::i32, ++/*247286*/ OPC_CheckChild3Integer, 1, ++/*247288*/ OPC_CheckChild3Type, MVT::i32, ++/*247290*/ OPC_CheckChild4Integer, 1, ++/*247292*/ OPC_CheckChild4Type, MVT::i32, ++/*247294*/ OPC_MoveChild5, ++/*247295*/ OPC_CheckInteger, 1, ++/*247297*/ OPC_CheckType, MVT::i32, ++/*247299*/ OPC_MoveParent, ++/*247300*/ OPC_MoveChild6, ++/*247301*/ OPC_CheckInteger, 1, ++/*247303*/ OPC_CheckType, MVT::i32, ++/*247305*/ OPC_MoveParent, ++/*247306*/ OPC_MoveChild7, ++/*247307*/ OPC_CheckInteger, 1, ++/*247309*/ OPC_CheckType, MVT::i32, ++/*247311*/ OPC_MoveParent, ++/*247312*/ OPC_MoveChild, 8, ++/*247314*/ OPC_CheckInteger, 1, ++/*247316*/ OPC_CheckType, MVT::i32, ++/*247318*/ OPC_MoveParent, ++/*247319*/ OPC_MoveChild, 9, ++/*247321*/ OPC_CheckInteger, 1, ++/*247323*/ OPC_CheckType, MVT::i32, ++/*247325*/ OPC_MoveParent, ++/*247326*/ OPC_MoveChild, 10, ++/*247328*/ OPC_CheckInteger, 1, ++/*247330*/ OPC_CheckType, MVT::i32, ++/*247332*/ OPC_MoveParent, ++/*247333*/ OPC_MoveChild, 11, ++/*247335*/ OPC_CheckInteger, 1, ++/*247337*/ OPC_CheckType, MVT::i32, ++/*247339*/ OPC_MoveParent, ++/*247340*/ OPC_MoveChild, 12, ++/*247342*/ OPC_CheckInteger, 1, ++/*247344*/ OPC_CheckType, MVT::i32, ++/*247346*/ OPC_MoveParent, ++/*247347*/ OPC_MoveChild, 13, ++/*247349*/ OPC_CheckInteger, 1, ++/*247351*/ OPC_CheckType, MVT::i32, ++/*247353*/ OPC_MoveParent, ++/*247354*/ OPC_MoveChild, 14, ++/*247356*/ OPC_CheckInteger, 1, ++/*247358*/ OPC_CheckType, MVT::i32, ++/*247360*/ OPC_MoveParent, ++/*247361*/ OPC_MoveChild, 15, ++/*247363*/ OPC_CheckInteger, 1, ++/*247365*/ OPC_CheckType, MVT::i32, ++/*247367*/ OPC_MoveParent, ++/*247368*/ OPC_CheckType, MVT::v16i16, ++/*247370*/ OPC_MoveParent, ++/*247371*/ OPC_CheckType, MVT::v16i16, ++/*247373*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*247375*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a)), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*247383*/ /*Scope*/ 65|128,2/*321*/, /*->247706*/ ++/*247385*/ OPC_CheckChild0Same, 1, ++/*247387*/ OPC_CheckChild1Same, 0, ++/*247389*/ OPC_MoveParent, ++/*247390*/ OPC_MoveChild1, ++/*247391*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*247394*/ OPC_CheckChild0Integer, 1, ++/*247396*/ OPC_CheckChild0Type, MVT::i32, ++/*247398*/ OPC_CheckChild1Integer, 1, ++/*247400*/ OPC_CheckChild1Type, MVT::i32, ++/*247402*/ OPC_CheckChild2Integer, 1, ++/*247404*/ OPC_CheckChild2Type, MVT::i32, ++/*247406*/ OPC_CheckChild3Integer, 1, ++/*247408*/ OPC_CheckChild3Type, MVT::i32, ++/*247410*/ OPC_CheckChild4Integer, 1, ++/*247412*/ OPC_CheckChild4Type, MVT::i32, ++/*247414*/ OPC_MoveChild5, ++/*247415*/ OPC_CheckInteger, 1, ++/*247417*/ OPC_CheckType, MVT::i32, ++/*247419*/ OPC_MoveParent, ++/*247420*/ OPC_MoveChild6, ++/*247421*/ OPC_CheckInteger, 1, ++/*247423*/ OPC_CheckType, MVT::i32, ++/*247425*/ OPC_MoveParent, ++/*247426*/ OPC_MoveChild7, ++/*247427*/ OPC_CheckInteger, 1, ++/*247429*/ OPC_CheckType, MVT::i32, ++/*247431*/ OPC_MoveParent, ++/*247432*/ OPC_MoveChild, 8, ++/*247434*/ OPC_CheckInteger, 1, ++/*247436*/ OPC_CheckType, MVT::i32, ++/*247438*/ OPC_MoveParent, ++/*247439*/ OPC_MoveChild, 9, ++/*247441*/ OPC_CheckInteger, 1, ++/*247443*/ OPC_CheckType, MVT::i32, ++/*247445*/ OPC_MoveParent, ++/*247446*/ OPC_MoveChild, 10, ++/*247448*/ OPC_CheckInteger, 1, ++/*247450*/ OPC_CheckType, MVT::i32, ++/*247452*/ OPC_MoveParent, ++/*247453*/ OPC_MoveChild, 11, ++/*247455*/ OPC_CheckInteger, 1, ++/*247457*/ OPC_CheckType, MVT::i32, ++/*247459*/ OPC_MoveParent, ++/*247460*/ OPC_MoveChild, 12, ++/*247462*/ OPC_CheckInteger, 1, ++/*247464*/ OPC_CheckType, MVT::i32, ++/*247466*/ OPC_MoveParent, ++/*247467*/ OPC_MoveChild, 13, ++/*247469*/ OPC_CheckInteger, 1, ++/*247471*/ OPC_CheckType, MVT::i32, ++/*247473*/ OPC_MoveParent, ++/*247474*/ OPC_MoveChild, 14, ++/*247476*/ OPC_CheckInteger, 1, ++/*247478*/ OPC_CheckType, MVT::i32, ++/*247480*/ OPC_MoveParent, ++/*247481*/ OPC_MoveChild, 15, ++/*247483*/ OPC_CheckInteger, 1, ++/*247485*/ OPC_CheckType, MVT::i32, ++/*247487*/ OPC_MoveParent, ++/*247488*/ OPC_MoveParent, ++/*247489*/ OPC_MoveParent, ++/*247490*/ OPC_MoveChild1, ++/*247491*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*247494*/ OPC_CheckChild0Integer, 15, ++/*247496*/ OPC_CheckChild0Type, MVT::i32, ++/*247498*/ OPC_CheckChild1Integer, 15, ++/*247500*/ OPC_CheckChild1Type, MVT::i32, ++/*247502*/ OPC_CheckChild2Integer, 15, ++/*247504*/ OPC_CheckChild2Type, MVT::i32, ++/*247506*/ OPC_CheckChild3Integer, 15, ++/*247508*/ OPC_CheckChild3Type, MVT::i32, ++/*247510*/ OPC_CheckChild4Integer, 15, ++/*247512*/ OPC_CheckChild4Type, MVT::i32, ++/*247514*/ OPC_MoveChild5, ++/*247515*/ OPC_CheckInteger, 15, ++/*247517*/ OPC_CheckType, MVT::i32, ++/*247519*/ OPC_MoveParent, ++/*247520*/ OPC_MoveChild6, ++/*247521*/ OPC_CheckInteger, 15, ++/*247523*/ OPC_CheckType, MVT::i32, ++/*247525*/ OPC_MoveParent, ++/*247526*/ OPC_MoveChild7, ++/*247527*/ OPC_CheckInteger, 15, ++/*247529*/ OPC_CheckType, MVT::i32, ++/*247531*/ OPC_MoveParent, ++/*247532*/ OPC_MoveChild, 8, ++/*247534*/ OPC_CheckInteger, 15, ++/*247536*/ OPC_CheckType, MVT::i32, ++/*247538*/ OPC_MoveParent, ++/*247539*/ OPC_MoveChild, 9, ++/*247541*/ OPC_CheckInteger, 15, ++/*247543*/ OPC_CheckType, MVT::i32, ++/*247545*/ OPC_MoveParent, ++/*247546*/ OPC_MoveChild, 10, ++/*247548*/ OPC_CheckInteger, 15, ++/*247550*/ OPC_CheckType, MVT::i32, ++/*247552*/ OPC_MoveParent, ++/*247553*/ OPC_MoveChild, 11, ++/*247555*/ OPC_CheckInteger, 15, ++/*247557*/ OPC_CheckType, MVT::i32, ++/*247559*/ OPC_MoveParent, ++/*247560*/ OPC_MoveChild, 12, ++/*247562*/ OPC_CheckInteger, 15, ++/*247564*/ OPC_CheckType, MVT::i32, ++/*247566*/ OPC_MoveParent, ++/*247567*/ OPC_MoveChild, 13, ++/*247569*/ OPC_CheckInteger, 15, ++/*247571*/ OPC_CheckType, MVT::i32, ++/*247573*/ OPC_MoveParent, ++/*247574*/ OPC_MoveChild, 14, ++/*247576*/ OPC_CheckInteger, 15, ++/*247578*/ OPC_CheckType, MVT::i32, ++/*247580*/ OPC_MoveParent, ++/*247581*/ OPC_MoveChild, 15, ++/*247583*/ OPC_CheckInteger, 15, ++/*247585*/ OPC_CheckType, MVT::i32, ++/*247587*/ OPC_MoveParent, ++/*247588*/ OPC_CheckType, MVT::v16i16, ++/*247590*/ OPC_MoveParent, ++/*247591*/ OPC_MoveParent, ++/*247592*/ OPC_MoveParent, ++/*247593*/ OPC_MoveChild1, ++/*247594*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*247597*/ OPC_CheckChild0Integer, 1, ++/*247599*/ OPC_CheckChild0Type, MVT::i32, ++/*247601*/ OPC_CheckChild1Integer, 1, ++/*247603*/ OPC_CheckChild1Type, MVT::i32, ++/*247605*/ OPC_CheckChild2Integer, 1, ++/*247607*/ OPC_CheckChild2Type, MVT::i32, ++/*247609*/ OPC_CheckChild3Integer, 1, ++/*247611*/ OPC_CheckChild3Type, MVT::i32, ++/*247613*/ OPC_CheckChild4Integer, 1, ++/*247615*/ OPC_CheckChild4Type, MVT::i32, ++/*247617*/ OPC_MoveChild5, ++/*247618*/ OPC_CheckInteger, 1, ++/*247620*/ OPC_CheckType, MVT::i32, ++/*247622*/ OPC_MoveParent, ++/*247623*/ OPC_MoveChild6, ++/*247624*/ OPC_CheckInteger, 1, ++/*247626*/ OPC_CheckType, MVT::i32, ++/*247628*/ OPC_MoveParent, ++/*247629*/ OPC_MoveChild7, ++/*247630*/ OPC_CheckInteger, 1, ++/*247632*/ OPC_CheckType, MVT::i32, ++/*247634*/ OPC_MoveParent, ++/*247635*/ OPC_MoveChild, 8, ++/*247637*/ OPC_CheckInteger, 1, ++/*247639*/ OPC_CheckType, MVT::i32, ++/*247641*/ OPC_MoveParent, ++/*247642*/ OPC_MoveChild, 9, ++/*247644*/ OPC_CheckInteger, 1, ++/*247646*/ OPC_CheckType, MVT::i32, ++/*247648*/ OPC_MoveParent, ++/*247649*/ OPC_MoveChild, 10, ++/*247651*/ OPC_CheckInteger, 1, ++/*247653*/ OPC_CheckType, MVT::i32, ++/*247655*/ OPC_MoveParent, ++/*247656*/ OPC_MoveChild, 11, ++/*247658*/ OPC_CheckInteger, 1, ++/*247660*/ OPC_CheckType, MVT::i32, ++/*247662*/ OPC_MoveParent, ++/*247663*/ OPC_MoveChild, 12, ++/*247665*/ OPC_CheckInteger, 1, ++/*247667*/ OPC_CheckType, MVT::i32, ++/*247669*/ OPC_MoveParent, ++/*247670*/ OPC_MoveChild, 13, ++/*247672*/ OPC_CheckInteger, 1, ++/*247674*/ OPC_CheckType, MVT::i32, ++/*247676*/ OPC_MoveParent, ++/*247677*/ OPC_MoveChild, 14, ++/*247679*/ OPC_CheckInteger, 1, ++/*247681*/ OPC_CheckType, MVT::i32, ++/*247683*/ OPC_MoveParent, ++/*247684*/ OPC_MoveChild, 15, ++/*247686*/ OPC_CheckInteger, 1, ++/*247688*/ OPC_CheckType, MVT::i32, ++/*247690*/ OPC_MoveParent, ++/*247691*/ OPC_CheckType, MVT::v16i16, ++/*247693*/ OPC_MoveParent, ++/*247694*/ OPC_CheckType, MVT::v16i16, ++/*247696*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*247698*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a)), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*247706*/ /*Scope*/ 65|128,2/*321*/, /*->248029*/ ++/*247708*/ OPC_CheckChild0Same, 0, ++/*247710*/ OPC_CheckChild1Same, 1, ++/*247712*/ OPC_MoveParent, ++/*247713*/ OPC_MoveChild1, ++/*247714*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*247717*/ OPC_CheckChild0Integer, 1, ++/*247719*/ OPC_CheckChild0Type, MVT::i32, ++/*247721*/ OPC_CheckChild1Integer, 1, ++/*247723*/ OPC_CheckChild1Type, MVT::i32, ++/*247725*/ OPC_CheckChild2Integer, 1, ++/*247727*/ OPC_CheckChild2Type, MVT::i32, ++/*247729*/ OPC_CheckChild3Integer, 1, ++/*247731*/ OPC_CheckChild3Type, MVT::i32, ++/*247733*/ OPC_CheckChild4Integer, 1, ++/*247735*/ OPC_CheckChild4Type, MVT::i32, ++/*247737*/ OPC_MoveChild5, ++/*247738*/ OPC_CheckInteger, 1, ++/*247740*/ OPC_CheckType, MVT::i32, ++/*247742*/ OPC_MoveParent, ++/*247743*/ OPC_MoveChild6, ++/*247744*/ OPC_CheckInteger, 1, ++/*247746*/ OPC_CheckType, MVT::i32, ++/*247748*/ OPC_MoveParent, ++/*247749*/ OPC_MoveChild7, ++/*247750*/ OPC_CheckInteger, 1, ++/*247752*/ OPC_CheckType, MVT::i32, ++/*247754*/ OPC_MoveParent, ++/*247755*/ OPC_MoveChild, 8, ++/*247757*/ OPC_CheckInteger, 1, ++/*247759*/ OPC_CheckType, MVT::i32, ++/*247761*/ OPC_MoveParent, ++/*247762*/ OPC_MoveChild, 9, ++/*247764*/ OPC_CheckInteger, 1, ++/*247766*/ OPC_CheckType, MVT::i32, ++/*247768*/ OPC_MoveParent, ++/*247769*/ OPC_MoveChild, 10, ++/*247771*/ OPC_CheckInteger, 1, ++/*247773*/ OPC_CheckType, MVT::i32, ++/*247775*/ OPC_MoveParent, ++/*247776*/ OPC_MoveChild, 11, ++/*247778*/ OPC_CheckInteger, 1, ++/*247780*/ OPC_CheckType, MVT::i32, ++/*247782*/ OPC_MoveParent, ++/*247783*/ OPC_MoveChild, 12, ++/*247785*/ OPC_CheckInteger, 1, ++/*247787*/ OPC_CheckType, MVT::i32, ++/*247789*/ OPC_MoveParent, ++/*247790*/ OPC_MoveChild, 13, ++/*247792*/ OPC_CheckInteger, 1, ++/*247794*/ OPC_CheckType, MVT::i32, ++/*247796*/ OPC_MoveParent, ++/*247797*/ OPC_MoveChild, 14, ++/*247799*/ OPC_CheckInteger, 1, ++/*247801*/ OPC_CheckType, MVT::i32, ++/*247803*/ OPC_MoveParent, ++/*247804*/ OPC_MoveChild, 15, ++/*247806*/ OPC_CheckInteger, 1, ++/*247808*/ OPC_CheckType, MVT::i32, ++/*247810*/ OPC_MoveParent, ++/*247811*/ OPC_MoveParent, ++/*247812*/ OPC_MoveParent, ++/*247813*/ OPC_MoveChild1, ++/*247814*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*247817*/ OPC_CheckChild0Integer, 15, ++/*247819*/ OPC_CheckChild0Type, MVT::i32, ++/*247821*/ OPC_CheckChild1Integer, 15, ++/*247823*/ OPC_CheckChild1Type, MVT::i32, ++/*247825*/ OPC_CheckChild2Integer, 15, ++/*247827*/ OPC_CheckChild2Type, MVT::i32, ++/*247829*/ OPC_CheckChild3Integer, 15, ++/*247831*/ OPC_CheckChild3Type, MVT::i32, ++/*247833*/ OPC_CheckChild4Integer, 15, ++/*247835*/ OPC_CheckChild4Type, MVT::i32, ++/*247837*/ OPC_MoveChild5, ++/*247838*/ OPC_CheckInteger, 15, ++/*247840*/ OPC_CheckType, MVT::i32, ++/*247842*/ OPC_MoveParent, ++/*247843*/ OPC_MoveChild6, ++/*247844*/ OPC_CheckInteger, 15, ++/*247846*/ OPC_CheckType, MVT::i32, ++/*247848*/ OPC_MoveParent, ++/*247849*/ OPC_MoveChild7, ++/*247850*/ OPC_CheckInteger, 15, ++/*247852*/ OPC_CheckType, MVT::i32, ++/*247854*/ OPC_MoveParent, ++/*247855*/ OPC_MoveChild, 8, ++/*247857*/ OPC_CheckInteger, 15, ++/*247859*/ OPC_CheckType, MVT::i32, ++/*247861*/ OPC_MoveParent, ++/*247862*/ OPC_MoveChild, 9, ++/*247864*/ OPC_CheckInteger, 15, ++/*247866*/ OPC_CheckType, MVT::i32, ++/*247868*/ OPC_MoveParent, ++/*247869*/ OPC_MoveChild, 10, ++/*247871*/ OPC_CheckInteger, 15, ++/*247873*/ OPC_CheckType, MVT::i32, ++/*247875*/ OPC_MoveParent, ++/*247876*/ OPC_MoveChild, 11, ++/*247878*/ OPC_CheckInteger, 15, ++/*247880*/ OPC_CheckType, MVT::i32, ++/*247882*/ OPC_MoveParent, ++/*247883*/ OPC_MoveChild, 12, ++/*247885*/ OPC_CheckInteger, 15, ++/*247887*/ OPC_CheckType, MVT::i32, ++/*247889*/ OPC_MoveParent, ++/*247890*/ OPC_MoveChild, 13, ++/*247892*/ OPC_CheckInteger, 15, ++/*247894*/ OPC_CheckType, MVT::i32, ++/*247896*/ OPC_MoveParent, ++/*247897*/ OPC_MoveChild, 14, ++/*247899*/ OPC_CheckInteger, 15, ++/*247901*/ OPC_CheckType, MVT::i32, ++/*247903*/ OPC_MoveParent, ++/*247904*/ OPC_MoveChild, 15, ++/*247906*/ OPC_CheckInteger, 15, ++/*247908*/ OPC_CheckType, MVT::i32, ++/*247910*/ OPC_MoveParent, ++/*247911*/ OPC_CheckType, MVT::v16i16, ++/*247913*/ OPC_MoveParent, ++/*247914*/ OPC_MoveParent, ++/*247915*/ OPC_MoveParent, ++/*247916*/ OPC_MoveChild1, ++/*247917*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*247920*/ OPC_CheckChild0Integer, 1, ++/*247922*/ OPC_CheckChild0Type, MVT::i32, ++/*247924*/ OPC_CheckChild1Integer, 1, ++/*247926*/ OPC_CheckChild1Type, MVT::i32, ++/*247928*/ OPC_CheckChild2Integer, 1, ++/*247930*/ OPC_CheckChild2Type, MVT::i32, ++/*247932*/ OPC_CheckChild3Integer, 1, ++/*247934*/ OPC_CheckChild3Type, MVT::i32, ++/*247936*/ OPC_CheckChild4Integer, 1, ++/*247938*/ OPC_CheckChild4Type, MVT::i32, ++/*247940*/ OPC_MoveChild5, ++/*247941*/ OPC_CheckInteger, 1, ++/*247943*/ OPC_CheckType, MVT::i32, ++/*247945*/ OPC_MoveParent, ++/*247946*/ OPC_MoveChild6, ++/*247947*/ OPC_CheckInteger, 1, ++/*247949*/ OPC_CheckType, MVT::i32, ++/*247951*/ OPC_MoveParent, ++/*247952*/ OPC_MoveChild7, ++/*247953*/ OPC_CheckInteger, 1, ++/*247955*/ OPC_CheckType, MVT::i32, ++/*247957*/ OPC_MoveParent, ++/*247958*/ OPC_MoveChild, 8, ++/*247960*/ OPC_CheckInteger, 1, ++/*247962*/ OPC_CheckType, MVT::i32, ++/*247964*/ OPC_MoveParent, ++/*247965*/ OPC_MoveChild, 9, ++/*247967*/ OPC_CheckInteger, 1, ++/*247969*/ OPC_CheckType, MVT::i32, ++/*247971*/ OPC_MoveParent, ++/*247972*/ OPC_MoveChild, 10, ++/*247974*/ OPC_CheckInteger, 1, ++/*247976*/ OPC_CheckType, MVT::i32, ++/*247978*/ OPC_MoveParent, ++/*247979*/ OPC_MoveChild, 11, ++/*247981*/ OPC_CheckInteger, 1, ++/*247983*/ OPC_CheckType, MVT::i32, ++/*247985*/ OPC_MoveParent, ++/*247986*/ OPC_MoveChild, 12, ++/*247988*/ OPC_CheckInteger, 1, ++/*247990*/ OPC_CheckType, MVT::i32, ++/*247992*/ OPC_MoveParent, ++/*247993*/ OPC_MoveChild, 13, ++/*247995*/ OPC_CheckInteger, 1, ++/*247997*/ OPC_CheckType, MVT::i32, ++/*247999*/ OPC_MoveParent, ++/*248000*/ OPC_MoveChild, 14, ++/*248002*/ OPC_CheckInteger, 1, ++/*248004*/ OPC_CheckType, MVT::i32, ++/*248006*/ OPC_MoveParent, ++/*248007*/ OPC_MoveChild, 15, ++/*248009*/ OPC_CheckInteger, 1, ++/*248011*/ OPC_CheckType, MVT::i32, ++/*248013*/ OPC_MoveParent, ++/*248014*/ OPC_CheckType, MVT::v16i16, ++/*248016*/ OPC_MoveParent, ++/*248017*/ OPC_CheckType, MVT::v16i16, ++/*248019*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*248021*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a)), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*248029*/ 0, /*End of Scope*/ ++/*248030*/ /*Scope*/ 10|128,5/*650*/, /*->248682*/ ++/*248032*/ OPC_CheckChild0Same, 0, ++/*248034*/ OPC_MoveChild1, ++/*248035*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*248038*/ OPC_Scope, 63|128,2/*319*/, /*->248360*/ // 2 children in Scope ++/*248041*/ OPC_MoveChild0, ++/*248042*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*248045*/ OPC_CheckChild0Integer, 1, ++/*248047*/ OPC_CheckChild0Type, MVT::i32, ++/*248049*/ OPC_CheckChild1Integer, 1, ++/*248051*/ OPC_CheckChild1Type, MVT::i32, ++/*248053*/ OPC_CheckChild2Integer, 1, ++/*248055*/ OPC_CheckChild2Type, MVT::i32, ++/*248057*/ OPC_CheckChild3Integer, 1, ++/*248059*/ OPC_CheckChild3Type, MVT::i32, ++/*248061*/ OPC_CheckChild4Integer, 1, ++/*248063*/ OPC_CheckChild4Type, MVT::i32, ++/*248065*/ OPC_MoveChild5, ++/*248066*/ OPC_CheckInteger, 1, ++/*248068*/ OPC_CheckType, MVT::i32, ++/*248070*/ OPC_MoveParent, ++/*248071*/ OPC_MoveChild6, ++/*248072*/ OPC_CheckInteger, 1, ++/*248074*/ OPC_CheckType, MVT::i32, ++/*248076*/ OPC_MoveParent, ++/*248077*/ OPC_MoveChild7, ++/*248078*/ OPC_CheckInteger, 1, ++/*248080*/ OPC_CheckType, MVT::i32, ++/*248082*/ OPC_MoveParent, ++/*248083*/ OPC_MoveChild, 8, ++/*248085*/ OPC_CheckInteger, 1, ++/*248087*/ OPC_CheckType, MVT::i32, ++/*248089*/ OPC_MoveParent, ++/*248090*/ OPC_MoveChild, 9, ++/*248092*/ OPC_CheckInteger, 1, ++/*248094*/ OPC_CheckType, MVT::i32, ++/*248096*/ OPC_MoveParent, ++/*248097*/ OPC_MoveChild, 10, ++/*248099*/ OPC_CheckInteger, 1, ++/*248101*/ OPC_CheckType, MVT::i32, ++/*248103*/ OPC_MoveParent, ++/*248104*/ OPC_MoveChild, 11, ++/*248106*/ OPC_CheckInteger, 1, ++/*248108*/ OPC_CheckType, MVT::i32, ++/*248110*/ OPC_MoveParent, ++/*248111*/ OPC_MoveChild, 12, ++/*248113*/ OPC_CheckInteger, 1, ++/*248115*/ OPC_CheckType, MVT::i32, ++/*248117*/ OPC_MoveParent, ++/*248118*/ OPC_MoveChild, 13, ++/*248120*/ OPC_CheckInteger, 1, ++/*248122*/ OPC_CheckType, MVT::i32, ++/*248124*/ OPC_MoveParent, ++/*248125*/ OPC_MoveChild, 14, ++/*248127*/ OPC_CheckInteger, 1, ++/*248129*/ OPC_CheckType, MVT::i32, ++/*248131*/ OPC_MoveParent, ++/*248132*/ OPC_MoveChild, 15, ++/*248134*/ OPC_CheckInteger, 1, ++/*248136*/ OPC_CheckType, MVT::i32, ++/*248138*/ OPC_MoveParent, ++/*248139*/ OPC_MoveParent, ++/*248140*/ OPC_CheckChild1Same, 1, ++/*248142*/ OPC_MoveParent, ++/*248143*/ OPC_MoveParent, ++/*248144*/ OPC_MoveChild1, ++/*248145*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*248148*/ OPC_CheckChild0Integer, 15, ++/*248150*/ OPC_CheckChild0Type, MVT::i32, ++/*248152*/ OPC_CheckChild1Integer, 15, ++/*248154*/ OPC_CheckChild1Type, MVT::i32, ++/*248156*/ OPC_CheckChild2Integer, 15, ++/*248158*/ OPC_CheckChild2Type, MVT::i32, ++/*248160*/ OPC_CheckChild3Integer, 15, ++/*248162*/ OPC_CheckChild3Type, MVT::i32, ++/*248164*/ OPC_CheckChild4Integer, 15, ++/*248166*/ OPC_CheckChild4Type, MVT::i32, ++/*248168*/ OPC_MoveChild5, ++/*248169*/ OPC_CheckInteger, 15, ++/*248171*/ OPC_CheckType, MVT::i32, ++/*248173*/ OPC_MoveParent, ++/*248174*/ OPC_MoveChild6, ++/*248175*/ OPC_CheckInteger, 15, ++/*248177*/ OPC_CheckType, MVT::i32, ++/*248179*/ OPC_MoveParent, ++/*248180*/ OPC_MoveChild7, ++/*248181*/ OPC_CheckInteger, 15, ++/*248183*/ OPC_CheckType, MVT::i32, ++/*248185*/ OPC_MoveParent, ++/*248186*/ OPC_MoveChild, 8, ++/*248188*/ OPC_CheckInteger, 15, ++/*248190*/ OPC_CheckType, MVT::i32, ++/*248192*/ OPC_MoveParent, ++/*248193*/ OPC_MoveChild, 9, ++/*248195*/ OPC_CheckInteger, 15, ++/*248197*/ OPC_CheckType, MVT::i32, ++/*248199*/ OPC_MoveParent, ++/*248200*/ OPC_MoveChild, 10, ++/*248202*/ OPC_CheckInteger, 15, ++/*248204*/ OPC_CheckType, MVT::i32, ++/*248206*/ OPC_MoveParent, ++/*248207*/ OPC_MoveChild, 11, ++/*248209*/ OPC_CheckInteger, 15, ++/*248211*/ OPC_CheckType, MVT::i32, ++/*248213*/ OPC_MoveParent, ++/*248214*/ OPC_MoveChild, 12, ++/*248216*/ OPC_CheckInteger, 15, ++/*248218*/ OPC_CheckType, MVT::i32, ++/*248220*/ OPC_MoveParent, ++/*248221*/ OPC_MoveChild, 13, ++/*248223*/ OPC_CheckInteger, 15, ++/*248225*/ OPC_CheckType, MVT::i32, ++/*248227*/ OPC_MoveParent, ++/*248228*/ OPC_MoveChild, 14, ++/*248230*/ OPC_CheckInteger, 15, ++/*248232*/ OPC_CheckType, MVT::i32, ++/*248234*/ OPC_MoveParent, ++/*248235*/ OPC_MoveChild, 15, ++/*248237*/ OPC_CheckInteger, 15, ++/*248239*/ OPC_CheckType, MVT::i32, ++/*248241*/ OPC_MoveParent, ++/*248242*/ OPC_CheckType, MVT::v16i16, ++/*248244*/ OPC_MoveParent, ++/*248245*/ OPC_MoveParent, ++/*248246*/ OPC_MoveParent, ++/*248247*/ OPC_MoveChild1, ++/*248248*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*248251*/ OPC_CheckChild0Integer, 1, ++/*248253*/ OPC_CheckChild0Type, MVT::i32, ++/*248255*/ OPC_CheckChild1Integer, 1, ++/*248257*/ OPC_CheckChild1Type, MVT::i32, ++/*248259*/ OPC_CheckChild2Integer, 1, ++/*248261*/ OPC_CheckChild2Type, MVT::i32, ++/*248263*/ OPC_CheckChild3Integer, 1, ++/*248265*/ OPC_CheckChild3Type, MVT::i32, ++/*248267*/ OPC_CheckChild4Integer, 1, ++/*248269*/ OPC_CheckChild4Type, MVT::i32, ++/*248271*/ OPC_MoveChild5, ++/*248272*/ OPC_CheckInteger, 1, ++/*248274*/ OPC_CheckType, MVT::i32, ++/*248276*/ OPC_MoveParent, ++/*248277*/ OPC_MoveChild6, ++/*248278*/ OPC_CheckInteger, 1, ++/*248280*/ OPC_CheckType, MVT::i32, ++/*248282*/ OPC_MoveParent, ++/*248283*/ OPC_MoveChild7, ++/*248284*/ OPC_CheckInteger, 1, ++/*248286*/ OPC_CheckType, MVT::i32, ++/*248288*/ OPC_MoveParent, ++/*248289*/ OPC_MoveChild, 8, ++/*248291*/ OPC_CheckInteger, 1, ++/*248293*/ OPC_CheckType, MVT::i32, ++/*248295*/ OPC_MoveParent, ++/*248296*/ OPC_MoveChild, 9, ++/*248298*/ OPC_CheckInteger, 1, ++/*248300*/ OPC_CheckType, MVT::i32, ++/*248302*/ OPC_MoveParent, ++/*248303*/ OPC_MoveChild, 10, ++/*248305*/ OPC_CheckInteger, 1, ++/*248307*/ OPC_CheckType, MVT::i32, ++/*248309*/ OPC_MoveParent, ++/*248310*/ OPC_MoveChild, 11, ++/*248312*/ OPC_CheckInteger, 1, ++/*248314*/ OPC_CheckType, MVT::i32, ++/*248316*/ OPC_MoveParent, ++/*248317*/ OPC_MoveChild, 12, ++/*248319*/ OPC_CheckInteger, 1, ++/*248321*/ OPC_CheckType, MVT::i32, ++/*248323*/ OPC_MoveParent, ++/*248324*/ OPC_MoveChild, 13, ++/*248326*/ OPC_CheckInteger, 1, ++/*248328*/ OPC_CheckType, MVT::i32, ++/*248330*/ OPC_MoveParent, ++/*248331*/ OPC_MoveChild, 14, ++/*248333*/ OPC_CheckInteger, 1, ++/*248335*/ OPC_CheckType, MVT::i32, ++/*248337*/ OPC_MoveParent, ++/*248338*/ OPC_MoveChild, 15, ++/*248340*/ OPC_CheckInteger, 1, ++/*248342*/ OPC_CheckType, MVT::i32, ++/*248344*/ OPC_MoveParent, ++/*248345*/ OPC_CheckType, MVT::v16i16, ++/*248347*/ OPC_MoveParent, ++/*248348*/ OPC_CheckType, MVT::v16i16, ++/*248350*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*248352*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a)), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*248360*/ /*Scope*/ 63|128,2/*319*/, /*->248681*/ ++/*248362*/ OPC_CheckChild0Same, 1, ++/*248364*/ OPC_MoveChild1, ++/*248365*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*248368*/ OPC_CheckChild0Integer, 1, ++/*248370*/ OPC_CheckChild0Type, MVT::i32, ++/*248372*/ OPC_CheckChild1Integer, 1, ++/*248374*/ OPC_CheckChild1Type, MVT::i32, ++/*248376*/ OPC_CheckChild2Integer, 1, ++/*248378*/ OPC_CheckChild2Type, MVT::i32, ++/*248380*/ OPC_CheckChild3Integer, 1, ++/*248382*/ OPC_CheckChild3Type, MVT::i32, ++/*248384*/ OPC_CheckChild4Integer, 1, ++/*248386*/ OPC_CheckChild4Type, MVT::i32, ++/*248388*/ OPC_MoveChild5, ++/*248389*/ OPC_CheckInteger, 1, ++/*248391*/ OPC_CheckType, MVT::i32, ++/*248393*/ OPC_MoveParent, ++/*248394*/ OPC_MoveChild6, ++/*248395*/ OPC_CheckInteger, 1, ++/*248397*/ OPC_CheckType, MVT::i32, ++/*248399*/ OPC_MoveParent, ++/*248400*/ OPC_MoveChild7, ++/*248401*/ OPC_CheckInteger, 1, ++/*248403*/ OPC_CheckType, MVT::i32, ++/*248405*/ OPC_MoveParent, ++/*248406*/ OPC_MoveChild, 8, ++/*248408*/ OPC_CheckInteger, 1, ++/*248410*/ OPC_CheckType, MVT::i32, ++/*248412*/ OPC_MoveParent, ++/*248413*/ OPC_MoveChild, 9, ++/*248415*/ OPC_CheckInteger, 1, ++/*248417*/ OPC_CheckType, MVT::i32, ++/*248419*/ OPC_MoveParent, ++/*248420*/ OPC_MoveChild, 10, ++/*248422*/ OPC_CheckInteger, 1, ++/*248424*/ OPC_CheckType, MVT::i32, ++/*248426*/ OPC_MoveParent, ++/*248427*/ OPC_MoveChild, 11, ++/*248429*/ OPC_CheckInteger, 1, ++/*248431*/ OPC_CheckType, MVT::i32, ++/*248433*/ OPC_MoveParent, ++/*248434*/ OPC_MoveChild, 12, ++/*248436*/ OPC_CheckInteger, 1, ++/*248438*/ OPC_CheckType, MVT::i32, ++/*248440*/ OPC_MoveParent, ++/*248441*/ OPC_MoveChild, 13, ++/*248443*/ OPC_CheckInteger, 1, ++/*248445*/ OPC_CheckType, MVT::i32, ++/*248447*/ OPC_MoveParent, ++/*248448*/ OPC_MoveChild, 14, ++/*248450*/ OPC_CheckInteger, 1, ++/*248452*/ OPC_CheckType, MVT::i32, ++/*248454*/ OPC_MoveParent, ++/*248455*/ OPC_MoveChild, 15, ++/*248457*/ OPC_CheckInteger, 1, ++/*248459*/ OPC_CheckType, MVT::i32, ++/*248461*/ OPC_MoveParent, ++/*248462*/ OPC_MoveParent, ++/*248463*/ OPC_MoveParent, ++/*248464*/ OPC_MoveParent, ++/*248465*/ OPC_MoveChild1, ++/*248466*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*248469*/ OPC_CheckChild0Integer, 15, ++/*248471*/ OPC_CheckChild0Type, MVT::i32, ++/*248473*/ OPC_CheckChild1Integer, 15, ++/*248475*/ OPC_CheckChild1Type, MVT::i32, ++/*248477*/ OPC_CheckChild2Integer, 15, ++/*248479*/ OPC_CheckChild2Type, MVT::i32, ++/*248481*/ OPC_CheckChild3Integer, 15, ++/*248483*/ OPC_CheckChild3Type, MVT::i32, ++/*248485*/ OPC_CheckChild4Integer, 15, ++/*248487*/ OPC_CheckChild4Type, MVT::i32, ++/*248489*/ OPC_MoveChild5, ++/*248490*/ OPC_CheckInteger, 15, ++/*248492*/ OPC_CheckType, MVT::i32, ++/*248494*/ OPC_MoveParent, ++/*248495*/ OPC_MoveChild6, ++/*248496*/ OPC_CheckInteger, 15, ++/*248498*/ OPC_CheckType, MVT::i32, ++/*248500*/ OPC_MoveParent, ++/*248501*/ OPC_MoveChild7, ++/*248502*/ OPC_CheckInteger, 15, ++/*248504*/ OPC_CheckType, MVT::i32, ++/*248506*/ OPC_MoveParent, ++/*248507*/ OPC_MoveChild, 8, ++/*248509*/ OPC_CheckInteger, 15, ++/*248511*/ OPC_CheckType, MVT::i32, ++/*248513*/ OPC_MoveParent, ++/*248514*/ OPC_MoveChild, 9, ++/*248516*/ OPC_CheckInteger, 15, ++/*248518*/ OPC_CheckType, MVT::i32, ++/*248520*/ OPC_MoveParent, ++/*248521*/ OPC_MoveChild, 10, ++/*248523*/ OPC_CheckInteger, 15, ++/*248525*/ OPC_CheckType, MVT::i32, ++/*248527*/ OPC_MoveParent, ++/*248528*/ OPC_MoveChild, 11, ++/*248530*/ OPC_CheckInteger, 15, ++/*248532*/ OPC_CheckType, MVT::i32, ++/*248534*/ OPC_MoveParent, ++/*248535*/ OPC_MoveChild, 12, ++/*248537*/ OPC_CheckInteger, 15, ++/*248539*/ OPC_CheckType, MVT::i32, ++/*248541*/ OPC_MoveParent, ++/*248542*/ OPC_MoveChild, 13, ++/*248544*/ OPC_CheckInteger, 15, ++/*248546*/ OPC_CheckType, MVT::i32, ++/*248548*/ OPC_MoveParent, ++/*248549*/ OPC_MoveChild, 14, ++/*248551*/ OPC_CheckInteger, 15, ++/*248553*/ OPC_CheckType, MVT::i32, ++/*248555*/ OPC_MoveParent, ++/*248556*/ OPC_MoveChild, 15, ++/*248558*/ OPC_CheckInteger, 15, ++/*248560*/ OPC_CheckType, MVT::i32, ++/*248562*/ OPC_MoveParent, ++/*248563*/ OPC_CheckType, MVT::v16i16, ++/*248565*/ OPC_MoveParent, ++/*248566*/ OPC_MoveParent, ++/*248567*/ OPC_MoveParent, ++/*248568*/ OPC_MoveChild1, ++/*248569*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*248572*/ OPC_CheckChild0Integer, 1, ++/*248574*/ OPC_CheckChild0Type, MVT::i32, ++/*248576*/ OPC_CheckChild1Integer, 1, ++/*248578*/ OPC_CheckChild1Type, MVT::i32, ++/*248580*/ OPC_CheckChild2Integer, 1, ++/*248582*/ OPC_CheckChild2Type, MVT::i32, ++/*248584*/ OPC_CheckChild3Integer, 1, ++/*248586*/ OPC_CheckChild3Type, MVT::i32, ++/*248588*/ OPC_CheckChild4Integer, 1, ++/*248590*/ OPC_CheckChild4Type, MVT::i32, ++/*248592*/ OPC_MoveChild5, ++/*248593*/ OPC_CheckInteger, 1, ++/*248595*/ OPC_CheckType, MVT::i32, ++/*248597*/ OPC_MoveParent, ++/*248598*/ OPC_MoveChild6, ++/*248599*/ OPC_CheckInteger, 1, ++/*248601*/ OPC_CheckType, MVT::i32, ++/*248603*/ OPC_MoveParent, ++/*248604*/ OPC_MoveChild7, ++/*248605*/ OPC_CheckInteger, 1, ++/*248607*/ OPC_CheckType, MVT::i32, ++/*248609*/ OPC_MoveParent, ++/*248610*/ OPC_MoveChild, 8, ++/*248612*/ OPC_CheckInteger, 1, ++/*248614*/ OPC_CheckType, MVT::i32, ++/*248616*/ OPC_MoveParent, ++/*248617*/ OPC_MoveChild, 9, ++/*248619*/ OPC_CheckInteger, 1, ++/*248621*/ OPC_CheckType, MVT::i32, ++/*248623*/ OPC_MoveParent, ++/*248624*/ OPC_MoveChild, 10, ++/*248626*/ OPC_CheckInteger, 1, ++/*248628*/ OPC_CheckType, MVT::i32, ++/*248630*/ OPC_MoveParent, ++/*248631*/ OPC_MoveChild, 11, ++/*248633*/ OPC_CheckInteger, 1, ++/*248635*/ OPC_CheckType, MVT::i32, ++/*248637*/ OPC_MoveParent, ++/*248638*/ OPC_MoveChild, 12, ++/*248640*/ OPC_CheckInteger, 1, ++/*248642*/ OPC_CheckType, MVT::i32, ++/*248644*/ OPC_MoveParent, ++/*248645*/ OPC_MoveChild, 13, ++/*248647*/ OPC_CheckInteger, 1, ++/*248649*/ OPC_CheckType, MVT::i32, ++/*248651*/ OPC_MoveParent, ++/*248652*/ OPC_MoveChild, 14, ++/*248654*/ OPC_CheckInteger, 1, ++/*248656*/ OPC_CheckType, MVT::i32, ++/*248658*/ OPC_MoveParent, ++/*248659*/ OPC_MoveChild, 15, ++/*248661*/ OPC_CheckInteger, 1, ++/*248663*/ OPC_CheckType, MVT::i32, ++/*248665*/ OPC_MoveParent, ++/*248666*/ OPC_CheckType, MVT::v16i16, ++/*248668*/ OPC_MoveParent, ++/*248669*/ OPC_CheckType, MVT::v16i16, ++/*248671*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*248673*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a)), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*248681*/ 0, /*End of Scope*/ ++/*248682*/ /*Scope*/ 10|128,5/*650*/, /*->249334*/ ++/*248684*/ OPC_CheckChild0Same, 1, ++/*248686*/ OPC_MoveChild1, ++/*248687*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*248690*/ OPC_Scope, 63|128,2/*319*/, /*->249012*/ // 2 children in Scope ++/*248693*/ OPC_MoveChild0, ++/*248694*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*248697*/ OPC_CheckChild0Integer, 1, ++/*248699*/ OPC_CheckChild0Type, MVT::i32, ++/*248701*/ OPC_CheckChild1Integer, 1, ++/*248703*/ OPC_CheckChild1Type, MVT::i32, ++/*248705*/ OPC_CheckChild2Integer, 1, ++/*248707*/ OPC_CheckChild2Type, MVT::i32, ++/*248709*/ OPC_CheckChild3Integer, 1, ++/*248711*/ OPC_CheckChild3Type, MVT::i32, ++/*248713*/ OPC_CheckChild4Integer, 1, ++/*248715*/ OPC_CheckChild4Type, MVT::i32, ++/*248717*/ OPC_MoveChild5, ++/*248718*/ OPC_CheckInteger, 1, ++/*248720*/ OPC_CheckType, MVT::i32, ++/*248722*/ OPC_MoveParent, ++/*248723*/ OPC_MoveChild6, ++/*248724*/ OPC_CheckInteger, 1, ++/*248726*/ OPC_CheckType, MVT::i32, ++/*248728*/ OPC_MoveParent, ++/*248729*/ OPC_MoveChild7, ++/*248730*/ OPC_CheckInteger, 1, ++/*248732*/ OPC_CheckType, MVT::i32, ++/*248734*/ OPC_MoveParent, ++/*248735*/ OPC_MoveChild, 8, ++/*248737*/ OPC_CheckInteger, 1, ++/*248739*/ OPC_CheckType, MVT::i32, ++/*248741*/ OPC_MoveParent, ++/*248742*/ OPC_MoveChild, 9, ++/*248744*/ OPC_CheckInteger, 1, ++/*248746*/ OPC_CheckType, MVT::i32, ++/*248748*/ OPC_MoveParent, ++/*248749*/ OPC_MoveChild, 10, ++/*248751*/ OPC_CheckInteger, 1, ++/*248753*/ OPC_CheckType, MVT::i32, ++/*248755*/ OPC_MoveParent, ++/*248756*/ OPC_MoveChild, 11, ++/*248758*/ OPC_CheckInteger, 1, ++/*248760*/ OPC_CheckType, MVT::i32, ++/*248762*/ OPC_MoveParent, ++/*248763*/ OPC_MoveChild, 12, ++/*248765*/ OPC_CheckInteger, 1, ++/*248767*/ OPC_CheckType, MVT::i32, ++/*248769*/ OPC_MoveParent, ++/*248770*/ OPC_MoveChild, 13, ++/*248772*/ OPC_CheckInteger, 1, ++/*248774*/ OPC_CheckType, MVT::i32, ++/*248776*/ OPC_MoveParent, ++/*248777*/ OPC_MoveChild, 14, ++/*248779*/ OPC_CheckInteger, 1, ++/*248781*/ OPC_CheckType, MVT::i32, ++/*248783*/ OPC_MoveParent, ++/*248784*/ OPC_MoveChild, 15, ++/*248786*/ OPC_CheckInteger, 1, ++/*248788*/ OPC_CheckType, MVT::i32, ++/*248790*/ OPC_MoveParent, ++/*248791*/ OPC_MoveParent, ++/*248792*/ OPC_CheckChild1Same, 0, ++/*248794*/ OPC_MoveParent, ++/*248795*/ OPC_MoveParent, ++/*248796*/ OPC_MoveChild1, ++/*248797*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*248800*/ OPC_CheckChild0Integer, 15, ++/*248802*/ OPC_CheckChild0Type, MVT::i32, ++/*248804*/ OPC_CheckChild1Integer, 15, ++/*248806*/ OPC_CheckChild1Type, MVT::i32, ++/*248808*/ OPC_CheckChild2Integer, 15, ++/*248810*/ OPC_CheckChild2Type, MVT::i32, ++/*248812*/ OPC_CheckChild3Integer, 15, ++/*248814*/ OPC_CheckChild3Type, MVT::i32, ++/*248816*/ OPC_CheckChild4Integer, 15, ++/*248818*/ OPC_CheckChild4Type, MVT::i32, ++/*248820*/ OPC_MoveChild5, ++/*248821*/ OPC_CheckInteger, 15, ++/*248823*/ OPC_CheckType, MVT::i32, ++/*248825*/ OPC_MoveParent, ++/*248826*/ OPC_MoveChild6, ++/*248827*/ OPC_CheckInteger, 15, ++/*248829*/ OPC_CheckType, MVT::i32, ++/*248831*/ OPC_MoveParent, ++/*248832*/ OPC_MoveChild7, ++/*248833*/ OPC_CheckInteger, 15, ++/*248835*/ OPC_CheckType, MVT::i32, ++/*248837*/ OPC_MoveParent, ++/*248838*/ OPC_MoveChild, 8, ++/*248840*/ OPC_CheckInteger, 15, ++/*248842*/ OPC_CheckType, MVT::i32, ++/*248844*/ OPC_MoveParent, ++/*248845*/ OPC_MoveChild, 9, ++/*248847*/ OPC_CheckInteger, 15, ++/*248849*/ OPC_CheckType, MVT::i32, ++/*248851*/ OPC_MoveParent, ++/*248852*/ OPC_MoveChild, 10, ++/*248854*/ OPC_CheckInteger, 15, ++/*248856*/ OPC_CheckType, MVT::i32, ++/*248858*/ OPC_MoveParent, ++/*248859*/ OPC_MoveChild, 11, ++/*248861*/ OPC_CheckInteger, 15, ++/*248863*/ OPC_CheckType, MVT::i32, ++/*248865*/ OPC_MoveParent, ++/*248866*/ OPC_MoveChild, 12, ++/*248868*/ OPC_CheckInteger, 15, ++/*248870*/ OPC_CheckType, MVT::i32, ++/*248872*/ OPC_MoveParent, ++/*248873*/ OPC_MoveChild, 13, ++/*248875*/ OPC_CheckInteger, 15, ++/*248877*/ OPC_CheckType, MVT::i32, ++/*248879*/ OPC_MoveParent, ++/*248880*/ OPC_MoveChild, 14, ++/*248882*/ OPC_CheckInteger, 15, ++/*248884*/ OPC_CheckType, MVT::i32, ++/*248886*/ OPC_MoveParent, ++/*248887*/ OPC_MoveChild, 15, ++/*248889*/ OPC_CheckInteger, 15, ++/*248891*/ OPC_CheckType, MVT::i32, ++/*248893*/ OPC_MoveParent, ++/*248894*/ OPC_CheckType, MVT::v16i16, ++/*248896*/ OPC_MoveParent, ++/*248897*/ OPC_MoveParent, ++/*248898*/ OPC_MoveParent, ++/*248899*/ OPC_MoveChild1, ++/*248900*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*248903*/ OPC_CheckChild0Integer, 1, ++/*248905*/ OPC_CheckChild0Type, MVT::i32, ++/*248907*/ OPC_CheckChild1Integer, 1, ++/*248909*/ OPC_CheckChild1Type, MVT::i32, ++/*248911*/ OPC_CheckChild2Integer, 1, ++/*248913*/ OPC_CheckChild2Type, MVT::i32, ++/*248915*/ OPC_CheckChild3Integer, 1, ++/*248917*/ OPC_CheckChild3Type, MVT::i32, ++/*248919*/ OPC_CheckChild4Integer, 1, ++/*248921*/ OPC_CheckChild4Type, MVT::i32, ++/*248923*/ OPC_MoveChild5, ++/*248924*/ OPC_CheckInteger, 1, ++/*248926*/ OPC_CheckType, MVT::i32, ++/*248928*/ OPC_MoveParent, ++/*248929*/ OPC_MoveChild6, ++/*248930*/ OPC_CheckInteger, 1, ++/*248932*/ OPC_CheckType, MVT::i32, ++/*248934*/ OPC_MoveParent, ++/*248935*/ OPC_MoveChild7, ++/*248936*/ OPC_CheckInteger, 1, ++/*248938*/ OPC_CheckType, MVT::i32, ++/*248940*/ OPC_MoveParent, ++/*248941*/ OPC_MoveChild, 8, ++/*248943*/ OPC_CheckInteger, 1, ++/*248945*/ OPC_CheckType, MVT::i32, ++/*248947*/ OPC_MoveParent, ++/*248948*/ OPC_MoveChild, 9, ++/*248950*/ OPC_CheckInteger, 1, ++/*248952*/ OPC_CheckType, MVT::i32, ++/*248954*/ OPC_MoveParent, ++/*248955*/ OPC_MoveChild, 10, ++/*248957*/ OPC_CheckInteger, 1, ++/*248959*/ OPC_CheckType, MVT::i32, ++/*248961*/ OPC_MoveParent, ++/*248962*/ OPC_MoveChild, 11, ++/*248964*/ OPC_CheckInteger, 1, ++/*248966*/ OPC_CheckType, MVT::i32, ++/*248968*/ OPC_MoveParent, ++/*248969*/ OPC_MoveChild, 12, ++/*248971*/ OPC_CheckInteger, 1, ++/*248973*/ OPC_CheckType, MVT::i32, ++/*248975*/ OPC_MoveParent, ++/*248976*/ OPC_MoveChild, 13, ++/*248978*/ OPC_CheckInteger, 1, ++/*248980*/ OPC_CheckType, MVT::i32, ++/*248982*/ OPC_MoveParent, ++/*248983*/ OPC_MoveChild, 14, ++/*248985*/ OPC_CheckInteger, 1, ++/*248987*/ OPC_CheckType, MVT::i32, ++/*248989*/ OPC_MoveParent, ++/*248990*/ OPC_MoveChild, 15, ++/*248992*/ OPC_CheckInteger, 1, ++/*248994*/ OPC_CheckType, MVT::i32, ++/*248996*/ OPC_MoveParent, ++/*248997*/ OPC_CheckType, MVT::v16i16, ++/*248999*/ OPC_MoveParent, ++/*249000*/ OPC_CheckType, MVT::v16i16, ++/*249002*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*249004*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a)), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*249012*/ /*Scope*/ 63|128,2/*319*/, /*->249333*/ ++/*249014*/ OPC_CheckChild0Same, 0, ++/*249016*/ OPC_MoveChild1, ++/*249017*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*249020*/ OPC_CheckChild0Integer, 1, ++/*249022*/ OPC_CheckChild0Type, MVT::i32, ++/*249024*/ OPC_CheckChild1Integer, 1, ++/*249026*/ OPC_CheckChild1Type, MVT::i32, ++/*249028*/ OPC_CheckChild2Integer, 1, ++/*249030*/ OPC_CheckChild2Type, MVT::i32, ++/*249032*/ OPC_CheckChild3Integer, 1, ++/*249034*/ OPC_CheckChild3Type, MVT::i32, ++/*249036*/ OPC_CheckChild4Integer, 1, ++/*249038*/ OPC_CheckChild4Type, MVT::i32, ++/*249040*/ OPC_MoveChild5, ++/*249041*/ OPC_CheckInteger, 1, ++/*249043*/ OPC_CheckType, MVT::i32, ++/*249045*/ OPC_MoveParent, ++/*249046*/ OPC_MoveChild6, ++/*249047*/ OPC_CheckInteger, 1, ++/*249049*/ OPC_CheckType, MVT::i32, ++/*249051*/ OPC_MoveParent, ++/*249052*/ OPC_MoveChild7, ++/*249053*/ OPC_CheckInteger, 1, ++/*249055*/ OPC_CheckType, MVT::i32, ++/*249057*/ OPC_MoveParent, ++/*249058*/ OPC_MoveChild, 8, ++/*249060*/ OPC_CheckInteger, 1, ++/*249062*/ OPC_CheckType, MVT::i32, ++/*249064*/ OPC_MoveParent, ++/*249065*/ OPC_MoveChild, 9, ++/*249067*/ OPC_CheckInteger, 1, ++/*249069*/ OPC_CheckType, MVT::i32, ++/*249071*/ OPC_MoveParent, ++/*249072*/ OPC_MoveChild, 10, ++/*249074*/ OPC_CheckInteger, 1, ++/*249076*/ OPC_CheckType, MVT::i32, ++/*249078*/ OPC_MoveParent, ++/*249079*/ OPC_MoveChild, 11, ++/*249081*/ OPC_CheckInteger, 1, ++/*249083*/ OPC_CheckType, MVT::i32, ++/*249085*/ OPC_MoveParent, ++/*249086*/ OPC_MoveChild, 12, ++/*249088*/ OPC_CheckInteger, 1, ++/*249090*/ OPC_CheckType, MVT::i32, ++/*249092*/ OPC_MoveParent, ++/*249093*/ OPC_MoveChild, 13, ++/*249095*/ OPC_CheckInteger, 1, ++/*249097*/ OPC_CheckType, MVT::i32, ++/*249099*/ OPC_MoveParent, ++/*249100*/ OPC_MoveChild, 14, ++/*249102*/ OPC_CheckInteger, 1, ++/*249104*/ OPC_CheckType, MVT::i32, ++/*249106*/ OPC_MoveParent, ++/*249107*/ OPC_MoveChild, 15, ++/*249109*/ OPC_CheckInteger, 1, ++/*249111*/ OPC_CheckType, MVT::i32, ++/*249113*/ OPC_MoveParent, ++/*249114*/ OPC_MoveParent, ++/*249115*/ OPC_MoveParent, ++/*249116*/ OPC_MoveParent, ++/*249117*/ OPC_MoveChild1, ++/*249118*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*249121*/ OPC_CheckChild0Integer, 15, ++/*249123*/ OPC_CheckChild0Type, MVT::i32, ++/*249125*/ OPC_CheckChild1Integer, 15, ++/*249127*/ OPC_CheckChild1Type, MVT::i32, ++/*249129*/ OPC_CheckChild2Integer, 15, ++/*249131*/ OPC_CheckChild2Type, MVT::i32, ++/*249133*/ OPC_CheckChild3Integer, 15, ++/*249135*/ OPC_CheckChild3Type, MVT::i32, ++/*249137*/ OPC_CheckChild4Integer, 15, ++/*249139*/ OPC_CheckChild4Type, MVT::i32, ++/*249141*/ OPC_MoveChild5, ++/*249142*/ OPC_CheckInteger, 15, ++/*249144*/ OPC_CheckType, MVT::i32, ++/*249146*/ OPC_MoveParent, ++/*249147*/ OPC_MoveChild6, ++/*249148*/ OPC_CheckInteger, 15, ++/*249150*/ OPC_CheckType, MVT::i32, ++/*249152*/ OPC_MoveParent, ++/*249153*/ OPC_MoveChild7, ++/*249154*/ OPC_CheckInteger, 15, ++/*249156*/ OPC_CheckType, MVT::i32, ++/*249158*/ OPC_MoveParent, ++/*249159*/ OPC_MoveChild, 8, ++/*249161*/ OPC_CheckInteger, 15, ++/*249163*/ OPC_CheckType, MVT::i32, ++/*249165*/ OPC_MoveParent, ++/*249166*/ OPC_MoveChild, 9, ++/*249168*/ OPC_CheckInteger, 15, ++/*249170*/ OPC_CheckType, MVT::i32, ++/*249172*/ OPC_MoveParent, ++/*249173*/ OPC_MoveChild, 10, ++/*249175*/ OPC_CheckInteger, 15, ++/*249177*/ OPC_CheckType, MVT::i32, ++/*249179*/ OPC_MoveParent, ++/*249180*/ OPC_MoveChild, 11, ++/*249182*/ OPC_CheckInteger, 15, ++/*249184*/ OPC_CheckType, MVT::i32, ++/*249186*/ OPC_MoveParent, ++/*249187*/ OPC_MoveChild, 12, ++/*249189*/ OPC_CheckInteger, 15, ++/*249191*/ OPC_CheckType, MVT::i32, ++/*249193*/ OPC_MoveParent, ++/*249194*/ OPC_MoveChild, 13, ++/*249196*/ OPC_CheckInteger, 15, ++/*249198*/ OPC_CheckType, MVT::i32, ++/*249200*/ OPC_MoveParent, ++/*249201*/ OPC_MoveChild, 14, ++/*249203*/ OPC_CheckInteger, 15, ++/*249205*/ OPC_CheckType, MVT::i32, ++/*249207*/ OPC_MoveParent, ++/*249208*/ OPC_MoveChild, 15, ++/*249210*/ OPC_CheckInteger, 15, ++/*249212*/ OPC_CheckType, MVT::i32, ++/*249214*/ OPC_MoveParent, ++/*249215*/ OPC_CheckType, MVT::v16i16, ++/*249217*/ OPC_MoveParent, ++/*249218*/ OPC_MoveParent, ++/*249219*/ OPC_MoveParent, ++/*249220*/ OPC_MoveChild1, ++/*249221*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*249224*/ OPC_CheckChild0Integer, 1, ++/*249226*/ OPC_CheckChild0Type, MVT::i32, ++/*249228*/ OPC_CheckChild1Integer, 1, ++/*249230*/ OPC_CheckChild1Type, MVT::i32, ++/*249232*/ OPC_CheckChild2Integer, 1, ++/*249234*/ OPC_CheckChild2Type, MVT::i32, ++/*249236*/ OPC_CheckChild3Integer, 1, ++/*249238*/ OPC_CheckChild3Type, MVT::i32, ++/*249240*/ OPC_CheckChild4Integer, 1, ++/*249242*/ OPC_CheckChild4Type, MVT::i32, ++/*249244*/ OPC_MoveChild5, ++/*249245*/ OPC_CheckInteger, 1, ++/*249247*/ OPC_CheckType, MVT::i32, ++/*249249*/ OPC_MoveParent, ++/*249250*/ OPC_MoveChild6, ++/*249251*/ OPC_CheckInteger, 1, ++/*249253*/ OPC_CheckType, MVT::i32, ++/*249255*/ OPC_MoveParent, ++/*249256*/ OPC_MoveChild7, ++/*249257*/ OPC_CheckInteger, 1, ++/*249259*/ OPC_CheckType, MVT::i32, ++/*249261*/ OPC_MoveParent, ++/*249262*/ OPC_MoveChild, 8, ++/*249264*/ OPC_CheckInteger, 1, ++/*249266*/ OPC_CheckType, MVT::i32, ++/*249268*/ OPC_MoveParent, ++/*249269*/ OPC_MoveChild, 9, ++/*249271*/ OPC_CheckInteger, 1, ++/*249273*/ OPC_CheckType, MVT::i32, ++/*249275*/ OPC_MoveParent, ++/*249276*/ OPC_MoveChild, 10, ++/*249278*/ OPC_CheckInteger, 1, ++/*249280*/ OPC_CheckType, MVT::i32, ++/*249282*/ OPC_MoveParent, ++/*249283*/ OPC_MoveChild, 11, ++/*249285*/ OPC_CheckInteger, 1, ++/*249287*/ OPC_CheckType, MVT::i32, ++/*249289*/ OPC_MoveParent, ++/*249290*/ OPC_MoveChild, 12, ++/*249292*/ OPC_CheckInteger, 1, ++/*249294*/ OPC_CheckType, MVT::i32, ++/*249296*/ OPC_MoveParent, ++/*249297*/ OPC_MoveChild, 13, ++/*249299*/ OPC_CheckInteger, 1, ++/*249301*/ OPC_CheckType, MVT::i32, ++/*249303*/ OPC_MoveParent, ++/*249304*/ OPC_MoveChild, 14, ++/*249306*/ OPC_CheckInteger, 1, ++/*249308*/ OPC_CheckType, MVT::i32, ++/*249310*/ OPC_MoveParent, ++/*249311*/ OPC_MoveChild, 15, ++/*249313*/ OPC_CheckInteger, 1, ++/*249315*/ OPC_CheckType, MVT::i32, ++/*249317*/ OPC_MoveParent, ++/*249318*/ OPC_CheckType, MVT::v16i16, ++/*249320*/ OPC_MoveParent, ++/*249321*/ OPC_CheckType, MVT::v16i16, ++/*249323*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*249325*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a)), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*249333*/ 0, /*End of Scope*/ ++/*249334*/ /*Scope*/ 41|128,4/*553*/, /*->249889*/ ++/*249336*/ OPC_MoveChild0, ++/*249337*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*249340*/ OPC_CheckChild0Integer, 1, ++/*249342*/ OPC_CheckChild0Type, MVT::i32, ++/*249344*/ OPC_CheckChild1Integer, 1, ++/*249346*/ OPC_CheckChild1Type, MVT::i32, ++/*249348*/ OPC_CheckChild2Integer, 1, ++/*249350*/ OPC_CheckChild2Type, MVT::i32, ++/*249352*/ OPC_CheckChild3Integer, 1, ++/*249354*/ OPC_CheckChild3Type, MVT::i32, ++/*249356*/ OPC_CheckChild4Integer, 1, ++/*249358*/ OPC_CheckChild4Type, MVT::i32, ++/*249360*/ OPC_MoveChild5, ++/*249361*/ OPC_CheckInteger, 1, ++/*249363*/ OPC_CheckType, MVT::i32, ++/*249365*/ OPC_MoveParent, ++/*249366*/ OPC_MoveChild6, ++/*249367*/ OPC_CheckInteger, 1, ++/*249369*/ OPC_CheckType, MVT::i32, ++/*249371*/ OPC_MoveParent, ++/*249372*/ OPC_MoveChild7, ++/*249373*/ OPC_CheckInteger, 1, ++/*249375*/ OPC_CheckType, MVT::i32, ++/*249377*/ OPC_MoveParent, ++/*249378*/ OPC_MoveChild, 8, ++/*249380*/ OPC_CheckInteger, 1, ++/*249382*/ OPC_CheckType, MVT::i32, ++/*249384*/ OPC_MoveParent, ++/*249385*/ OPC_MoveChild, 9, ++/*249387*/ OPC_CheckInteger, 1, ++/*249389*/ OPC_CheckType, MVT::i32, ++/*249391*/ OPC_MoveParent, ++/*249392*/ OPC_MoveChild, 10, ++/*249394*/ OPC_CheckInteger, 1, ++/*249396*/ OPC_CheckType, MVT::i32, ++/*249398*/ OPC_MoveParent, ++/*249399*/ OPC_MoveChild, 11, ++/*249401*/ OPC_CheckInteger, 1, ++/*249403*/ OPC_CheckType, MVT::i32, ++/*249405*/ OPC_MoveParent, ++/*249406*/ OPC_MoveChild, 12, ++/*249408*/ OPC_CheckInteger, 1, ++/*249410*/ OPC_CheckType, MVT::i32, ++/*249412*/ OPC_MoveParent, ++/*249413*/ OPC_MoveChild, 13, ++/*249415*/ OPC_CheckInteger, 1, ++/*249417*/ OPC_CheckType, MVT::i32, ++/*249419*/ OPC_MoveParent, ++/*249420*/ OPC_MoveChild, 14, ++/*249422*/ OPC_CheckInteger, 1, ++/*249424*/ OPC_CheckType, MVT::i32, ++/*249426*/ OPC_MoveParent, ++/*249427*/ OPC_MoveChild, 15, ++/*249429*/ OPC_CheckInteger, 1, ++/*249431*/ OPC_CheckType, MVT::i32, ++/*249433*/ OPC_MoveParent, ++/*249434*/ OPC_MoveParent, ++/*249435*/ OPC_MoveChild1, ++/*249436*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*249439*/ OPC_Scope, 94|128,1/*222*/, /*->249664*/ // 2 children in Scope ++/*249442*/ OPC_CheckChild0Same, 1, ++/*249444*/ OPC_CheckChild1Same, 0, ++/*249446*/ OPC_MoveParent, ++/*249447*/ OPC_MoveParent, ++/*249448*/ OPC_MoveChild1, ++/*249449*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*249452*/ OPC_CheckChild0Integer, 15, ++/*249454*/ OPC_CheckChild0Type, MVT::i32, ++/*249456*/ OPC_CheckChild1Integer, 15, ++/*249458*/ OPC_CheckChild1Type, MVT::i32, ++/*249460*/ OPC_CheckChild2Integer, 15, ++/*249462*/ OPC_CheckChild2Type, MVT::i32, ++/*249464*/ OPC_CheckChild3Integer, 15, ++/*249466*/ OPC_CheckChild3Type, MVT::i32, ++/*249468*/ OPC_CheckChild4Integer, 15, ++/*249470*/ OPC_CheckChild4Type, MVT::i32, ++/*249472*/ OPC_MoveChild5, ++/*249473*/ OPC_CheckInteger, 15, ++/*249475*/ OPC_CheckType, MVT::i32, ++/*249477*/ OPC_MoveParent, ++/*249478*/ OPC_MoveChild6, ++/*249479*/ OPC_CheckInteger, 15, ++/*249481*/ OPC_CheckType, MVT::i32, ++/*249483*/ OPC_MoveParent, ++/*249484*/ OPC_MoveChild7, ++/*249485*/ OPC_CheckInteger, 15, ++/*249487*/ OPC_CheckType, MVT::i32, ++/*249489*/ OPC_MoveParent, ++/*249490*/ OPC_MoveChild, 8, ++/*249492*/ OPC_CheckInteger, 15, ++/*249494*/ OPC_CheckType, MVT::i32, ++/*249496*/ OPC_MoveParent, ++/*249497*/ OPC_MoveChild, 9, ++/*249499*/ OPC_CheckInteger, 15, ++/*249501*/ OPC_CheckType, MVT::i32, ++/*249503*/ OPC_MoveParent, ++/*249504*/ OPC_MoveChild, 10, ++/*249506*/ OPC_CheckInteger, 15, ++/*249508*/ OPC_CheckType, MVT::i32, ++/*249510*/ OPC_MoveParent, ++/*249511*/ OPC_MoveChild, 11, ++/*249513*/ OPC_CheckInteger, 15, ++/*249515*/ OPC_CheckType, MVT::i32, ++/*249517*/ OPC_MoveParent, ++/*249518*/ OPC_MoveChild, 12, ++/*249520*/ OPC_CheckInteger, 15, ++/*249522*/ OPC_CheckType, MVT::i32, ++/*249524*/ OPC_MoveParent, ++/*249525*/ OPC_MoveChild, 13, ++/*249527*/ OPC_CheckInteger, 15, ++/*249529*/ OPC_CheckType, MVT::i32, ++/*249531*/ OPC_MoveParent, ++/*249532*/ OPC_MoveChild, 14, ++/*249534*/ OPC_CheckInteger, 15, ++/*249536*/ OPC_CheckType, MVT::i32, ++/*249538*/ OPC_MoveParent, ++/*249539*/ OPC_MoveChild, 15, ++/*249541*/ OPC_CheckInteger, 15, ++/*249543*/ OPC_CheckType, MVT::i32, ++/*249545*/ OPC_MoveParent, ++/*249546*/ OPC_CheckType, MVT::v16i16, ++/*249548*/ OPC_MoveParent, ++/*249549*/ OPC_MoveParent, ++/*249550*/ OPC_MoveParent, ++/*249551*/ OPC_MoveChild1, ++/*249552*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*249555*/ OPC_CheckChild0Integer, 1, ++/*249557*/ OPC_CheckChild0Type, MVT::i32, ++/*249559*/ OPC_CheckChild1Integer, 1, ++/*249561*/ OPC_CheckChild1Type, MVT::i32, ++/*249563*/ OPC_CheckChild2Integer, 1, ++/*249565*/ OPC_CheckChild2Type, MVT::i32, ++/*249567*/ OPC_CheckChild3Integer, 1, ++/*249569*/ OPC_CheckChild3Type, MVT::i32, ++/*249571*/ OPC_CheckChild4Integer, 1, ++/*249573*/ OPC_CheckChild4Type, MVT::i32, ++/*249575*/ OPC_MoveChild5, ++/*249576*/ OPC_CheckInteger, 1, ++/*249578*/ OPC_CheckType, MVT::i32, ++/*249580*/ OPC_MoveParent, ++/*249581*/ OPC_MoveChild6, ++/*249582*/ OPC_CheckInteger, 1, ++/*249584*/ OPC_CheckType, MVT::i32, ++/*249586*/ OPC_MoveParent, ++/*249587*/ OPC_MoveChild7, ++/*249588*/ OPC_CheckInteger, 1, ++/*249590*/ OPC_CheckType, MVT::i32, ++/*249592*/ OPC_MoveParent, ++/*249593*/ OPC_MoveChild, 8, ++/*249595*/ OPC_CheckInteger, 1, ++/*249597*/ OPC_CheckType, MVT::i32, ++/*249599*/ OPC_MoveParent, ++/*249600*/ OPC_MoveChild, 9, ++/*249602*/ OPC_CheckInteger, 1, ++/*249604*/ OPC_CheckType, MVT::i32, ++/*249606*/ OPC_MoveParent, ++/*249607*/ OPC_MoveChild, 10, ++/*249609*/ OPC_CheckInteger, 1, ++/*249611*/ OPC_CheckType, MVT::i32, ++/*249613*/ OPC_MoveParent, ++/*249614*/ OPC_MoveChild, 11, ++/*249616*/ OPC_CheckInteger, 1, ++/*249618*/ OPC_CheckType, MVT::i32, ++/*249620*/ OPC_MoveParent, ++/*249621*/ OPC_MoveChild, 12, ++/*249623*/ OPC_CheckInteger, 1, ++/*249625*/ OPC_CheckType, MVT::i32, ++/*249627*/ OPC_MoveParent, ++/*249628*/ OPC_MoveChild, 13, ++/*249630*/ OPC_CheckInteger, 1, ++/*249632*/ OPC_CheckType, MVT::i32, ++/*249634*/ OPC_MoveParent, ++/*249635*/ OPC_MoveChild, 14, ++/*249637*/ OPC_CheckInteger, 1, ++/*249639*/ OPC_CheckType, MVT::i32, ++/*249641*/ OPC_MoveParent, ++/*249642*/ OPC_MoveChild, 15, ++/*249644*/ OPC_CheckInteger, 1, ++/*249646*/ OPC_CheckType, MVT::i32, ++/*249648*/ OPC_MoveParent, ++/*249649*/ OPC_CheckType, MVT::v16i16, ++/*249651*/ OPC_MoveParent, ++/*249652*/ OPC_CheckType, MVT::v16i16, ++/*249654*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*249656*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a)), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*249664*/ /*Scope*/ 94|128,1/*222*/, /*->249888*/ ++/*249666*/ OPC_CheckChild0Same, 0, ++/*249668*/ OPC_CheckChild1Same, 1, ++/*249670*/ OPC_MoveParent, ++/*249671*/ OPC_MoveParent, ++/*249672*/ OPC_MoveChild1, ++/*249673*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*249676*/ OPC_CheckChild0Integer, 15, ++/*249678*/ OPC_CheckChild0Type, MVT::i32, ++/*249680*/ OPC_CheckChild1Integer, 15, ++/*249682*/ OPC_CheckChild1Type, MVT::i32, ++/*249684*/ OPC_CheckChild2Integer, 15, ++/*249686*/ OPC_CheckChild2Type, MVT::i32, ++/*249688*/ OPC_CheckChild3Integer, 15, ++/*249690*/ OPC_CheckChild3Type, MVT::i32, ++/*249692*/ OPC_CheckChild4Integer, 15, ++/*249694*/ OPC_CheckChild4Type, MVT::i32, ++/*249696*/ OPC_MoveChild5, ++/*249697*/ OPC_CheckInteger, 15, ++/*249699*/ OPC_CheckType, MVT::i32, ++/*249701*/ OPC_MoveParent, ++/*249702*/ OPC_MoveChild6, ++/*249703*/ OPC_CheckInteger, 15, ++/*249705*/ OPC_CheckType, MVT::i32, ++/*249707*/ OPC_MoveParent, ++/*249708*/ OPC_MoveChild7, ++/*249709*/ OPC_CheckInteger, 15, ++/*249711*/ OPC_CheckType, MVT::i32, ++/*249713*/ OPC_MoveParent, ++/*249714*/ OPC_MoveChild, 8, ++/*249716*/ OPC_CheckInteger, 15, ++/*249718*/ OPC_CheckType, MVT::i32, ++/*249720*/ OPC_MoveParent, ++/*249721*/ OPC_MoveChild, 9, ++/*249723*/ OPC_CheckInteger, 15, ++/*249725*/ OPC_CheckType, MVT::i32, ++/*249727*/ OPC_MoveParent, ++/*249728*/ OPC_MoveChild, 10, ++/*249730*/ OPC_CheckInteger, 15, ++/*249732*/ OPC_CheckType, MVT::i32, ++/*249734*/ OPC_MoveParent, ++/*249735*/ OPC_MoveChild, 11, ++/*249737*/ OPC_CheckInteger, 15, ++/*249739*/ OPC_CheckType, MVT::i32, ++/*249741*/ OPC_MoveParent, ++/*249742*/ OPC_MoveChild, 12, ++/*249744*/ OPC_CheckInteger, 15, ++/*249746*/ OPC_CheckType, MVT::i32, ++/*249748*/ OPC_MoveParent, ++/*249749*/ OPC_MoveChild, 13, ++/*249751*/ OPC_CheckInteger, 15, ++/*249753*/ OPC_CheckType, MVT::i32, ++/*249755*/ OPC_MoveParent, ++/*249756*/ OPC_MoveChild, 14, ++/*249758*/ OPC_CheckInteger, 15, ++/*249760*/ OPC_CheckType, MVT::i32, ++/*249762*/ OPC_MoveParent, ++/*249763*/ OPC_MoveChild, 15, ++/*249765*/ OPC_CheckInteger, 15, ++/*249767*/ OPC_CheckType, MVT::i32, ++/*249769*/ OPC_MoveParent, ++/*249770*/ OPC_CheckType, MVT::v16i16, ++/*249772*/ OPC_MoveParent, ++/*249773*/ OPC_MoveParent, ++/*249774*/ OPC_MoveParent, ++/*249775*/ OPC_MoveChild1, ++/*249776*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*249779*/ OPC_CheckChild0Integer, 1, ++/*249781*/ OPC_CheckChild0Type, MVT::i32, ++/*249783*/ OPC_CheckChild1Integer, 1, ++/*249785*/ OPC_CheckChild1Type, MVT::i32, ++/*249787*/ OPC_CheckChild2Integer, 1, ++/*249789*/ OPC_CheckChild2Type, MVT::i32, ++/*249791*/ OPC_CheckChild3Integer, 1, ++/*249793*/ OPC_CheckChild3Type, MVT::i32, ++/*249795*/ OPC_CheckChild4Integer, 1, ++/*249797*/ OPC_CheckChild4Type, MVT::i32, ++/*249799*/ OPC_MoveChild5, ++/*249800*/ OPC_CheckInteger, 1, ++/*249802*/ OPC_CheckType, MVT::i32, ++/*249804*/ OPC_MoveParent, ++/*249805*/ OPC_MoveChild6, ++/*249806*/ OPC_CheckInteger, 1, ++/*249808*/ OPC_CheckType, MVT::i32, ++/*249810*/ OPC_MoveParent, ++/*249811*/ OPC_MoveChild7, ++/*249812*/ OPC_CheckInteger, 1, ++/*249814*/ OPC_CheckType, MVT::i32, ++/*249816*/ OPC_MoveParent, ++/*249817*/ OPC_MoveChild, 8, ++/*249819*/ OPC_CheckInteger, 1, ++/*249821*/ OPC_CheckType, MVT::i32, ++/*249823*/ OPC_MoveParent, ++/*249824*/ OPC_MoveChild, 9, ++/*249826*/ OPC_CheckInteger, 1, ++/*249828*/ OPC_CheckType, MVT::i32, ++/*249830*/ OPC_MoveParent, ++/*249831*/ OPC_MoveChild, 10, ++/*249833*/ OPC_CheckInteger, 1, ++/*249835*/ OPC_CheckType, MVT::i32, ++/*249837*/ OPC_MoveParent, ++/*249838*/ OPC_MoveChild, 11, ++/*249840*/ OPC_CheckInteger, 1, ++/*249842*/ OPC_CheckType, MVT::i32, ++/*249844*/ OPC_MoveParent, ++/*249845*/ OPC_MoveChild, 12, ++/*249847*/ OPC_CheckInteger, 1, ++/*249849*/ OPC_CheckType, MVT::i32, ++/*249851*/ OPC_MoveParent, ++/*249852*/ OPC_MoveChild, 13, ++/*249854*/ OPC_CheckInteger, 1, ++/*249856*/ OPC_CheckType, MVT::i32, ++/*249858*/ OPC_MoveParent, ++/*249859*/ OPC_MoveChild, 14, ++/*249861*/ OPC_CheckInteger, 1, ++/*249863*/ OPC_CheckType, MVT::i32, ++/*249865*/ OPC_MoveParent, ++/*249866*/ OPC_MoveChild, 15, ++/*249868*/ OPC_CheckInteger, 1, ++/*249870*/ OPC_CheckType, MVT::i32, ++/*249872*/ OPC_MoveParent, ++/*249873*/ OPC_CheckType, MVT::v16i16, ++/*249875*/ OPC_MoveParent, ++/*249876*/ OPC_CheckType, MVT::v16i16, ++/*249878*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*249880*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a)), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*249888*/ 0, /*End of Scope*/ ++/*249889*/ 0, /*End of Scope*/ ++/*249890*/ /*Scope*/ 77|128,30/*3917*/, /*->253809*/ ++/*249892*/ OPC_RecordChild0, // #1 = $a ++/*249893*/ OPC_MoveChild1, ++/*249894*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*249897*/ OPC_CheckChild0Integer, 1, ++/*249899*/ OPC_CheckChild0Type, MVT::i32, ++/*249901*/ OPC_CheckChild1Integer, 1, ++/*249903*/ OPC_CheckChild1Type, MVT::i32, ++/*249905*/ OPC_CheckChild2Integer, 1, ++/*249907*/ OPC_CheckChild2Type, MVT::i32, ++/*249909*/ OPC_CheckChild3Integer, 1, ++/*249911*/ OPC_CheckChild3Type, MVT::i32, ++/*249913*/ OPC_CheckChild4Integer, 1, ++/*249915*/ OPC_CheckChild4Type, MVT::i32, ++/*249917*/ OPC_MoveChild5, ++/*249918*/ OPC_CheckInteger, 1, ++/*249920*/ OPC_CheckType, MVT::i32, ++/*249922*/ OPC_MoveParent, ++/*249923*/ OPC_MoveChild6, ++/*249924*/ OPC_CheckInteger, 1, ++/*249926*/ OPC_CheckType, MVT::i32, ++/*249928*/ OPC_MoveParent, ++/*249929*/ OPC_MoveChild7, ++/*249930*/ OPC_CheckInteger, 1, ++/*249932*/ OPC_CheckType, MVT::i32, ++/*249934*/ OPC_MoveParent, ++/*249935*/ OPC_MoveChild, 8, ++/*249937*/ OPC_CheckInteger, 1, ++/*249939*/ OPC_CheckType, MVT::i32, ++/*249941*/ OPC_MoveParent, ++/*249942*/ OPC_MoveChild, 9, ++/*249944*/ OPC_CheckInteger, 1, ++/*249946*/ OPC_CheckType, MVT::i32, ++/*249948*/ OPC_MoveParent, ++/*249949*/ OPC_MoveChild, 10, ++/*249951*/ OPC_CheckInteger, 1, ++/*249953*/ OPC_CheckType, MVT::i32, ++/*249955*/ OPC_MoveParent, ++/*249956*/ OPC_MoveChild, 11, ++/*249958*/ OPC_CheckInteger, 1, ++/*249960*/ OPC_CheckType, MVT::i32, ++/*249962*/ OPC_MoveParent, ++/*249963*/ OPC_MoveChild, 12, ++/*249965*/ OPC_CheckInteger, 1, ++/*249967*/ OPC_CheckType, MVT::i32, ++/*249969*/ OPC_MoveParent, ++/*249970*/ OPC_MoveChild, 13, ++/*249972*/ OPC_CheckInteger, 1, ++/*249974*/ OPC_CheckType, MVT::i32, ++/*249976*/ OPC_MoveParent, ++/*249977*/ OPC_MoveChild, 14, ++/*249979*/ OPC_CheckInteger, 1, ++/*249981*/ OPC_CheckType, MVT::i32, ++/*249983*/ OPC_MoveParent, ++/*249984*/ OPC_MoveChild, 15, ++/*249986*/ OPC_CheckInteger, 1, ++/*249988*/ OPC_CheckType, MVT::i32, ++/*249990*/ OPC_MoveParent, ++/*249991*/ OPC_MoveParent, ++/*249992*/ OPC_MoveParent, ++/*249993*/ OPC_MoveParent, ++/*249994*/ OPC_MoveChild1, ++/*249995*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*249998*/ OPC_MoveChild0, ++/*249999*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*250002*/ OPC_Scope, 24|128,15/*1944*/, /*->251949*/ // 4 children in Scope ++/*250005*/ OPC_MoveChild0, ++/*250006*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*250009*/ OPC_Scope, 65|128,2/*321*/, /*->250333*/ // 6 children in Scope ++/*250012*/ OPC_MoveChild0, ++/*250013*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*250016*/ OPC_CheckChild0Integer, 1, ++/*250018*/ OPC_CheckChild0Type, MVT::i32, ++/*250020*/ OPC_CheckChild1Integer, 1, ++/*250022*/ OPC_CheckChild1Type, MVT::i32, ++/*250024*/ OPC_CheckChild2Integer, 1, ++/*250026*/ OPC_CheckChild2Type, MVT::i32, ++/*250028*/ OPC_CheckChild3Integer, 1, ++/*250030*/ OPC_CheckChild3Type, MVT::i32, ++/*250032*/ OPC_CheckChild4Integer, 1, ++/*250034*/ OPC_CheckChild4Type, MVT::i32, ++/*250036*/ OPC_MoveChild5, ++/*250037*/ OPC_CheckInteger, 1, ++/*250039*/ OPC_CheckType, MVT::i32, ++/*250041*/ OPC_MoveParent, ++/*250042*/ OPC_MoveChild6, ++/*250043*/ OPC_CheckInteger, 1, ++/*250045*/ OPC_CheckType, MVT::i32, ++/*250047*/ OPC_MoveParent, ++/*250048*/ OPC_MoveChild7, ++/*250049*/ OPC_CheckInteger, 1, ++/*250051*/ OPC_CheckType, MVT::i32, ++/*250053*/ OPC_MoveParent, ++/*250054*/ OPC_MoveChild, 8, ++/*250056*/ OPC_CheckInteger, 1, ++/*250058*/ OPC_CheckType, MVT::i32, ++/*250060*/ OPC_MoveParent, ++/*250061*/ OPC_MoveChild, 9, ++/*250063*/ OPC_CheckInteger, 1, ++/*250065*/ OPC_CheckType, MVT::i32, ++/*250067*/ OPC_MoveParent, ++/*250068*/ OPC_MoveChild, 10, ++/*250070*/ OPC_CheckInteger, 1, ++/*250072*/ OPC_CheckType, MVT::i32, ++/*250074*/ OPC_MoveParent, ++/*250075*/ OPC_MoveChild, 11, ++/*250077*/ OPC_CheckInteger, 1, ++/*250079*/ OPC_CheckType, MVT::i32, ++/*250081*/ OPC_MoveParent, ++/*250082*/ OPC_MoveChild, 12, ++/*250084*/ OPC_CheckInteger, 1, ++/*250086*/ OPC_CheckType, MVT::i32, ++/*250088*/ OPC_MoveParent, ++/*250089*/ OPC_MoveChild, 13, ++/*250091*/ OPC_CheckInteger, 1, ++/*250093*/ OPC_CheckType, MVT::i32, ++/*250095*/ OPC_MoveParent, ++/*250096*/ OPC_MoveChild, 14, ++/*250098*/ OPC_CheckInteger, 1, ++/*250100*/ OPC_CheckType, MVT::i32, ++/*250102*/ OPC_MoveParent, ++/*250103*/ OPC_MoveChild, 15, ++/*250105*/ OPC_CheckInteger, 1, ++/*250107*/ OPC_CheckType, MVT::i32, ++/*250109*/ OPC_MoveParent, ++/*250110*/ OPC_MoveParent, ++/*250111*/ OPC_CheckChild1Same, 1, ++/*250113*/ OPC_MoveParent, ++/*250114*/ OPC_CheckChild1Same, 0, ++/*250116*/ OPC_MoveParent, ++/*250117*/ OPC_MoveChild1, ++/*250118*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*250121*/ OPC_CheckChild0Integer, 15, ++/*250123*/ OPC_CheckChild0Type, MVT::i32, ++/*250125*/ OPC_CheckChild1Integer, 15, ++/*250127*/ OPC_CheckChild1Type, MVT::i32, ++/*250129*/ OPC_CheckChild2Integer, 15, ++/*250131*/ OPC_CheckChild2Type, MVT::i32, ++/*250133*/ OPC_CheckChild3Integer, 15, ++/*250135*/ OPC_CheckChild3Type, MVT::i32, ++/*250137*/ OPC_CheckChild4Integer, 15, ++/*250139*/ OPC_CheckChild4Type, MVT::i32, ++/*250141*/ OPC_MoveChild5, ++/*250142*/ OPC_CheckInteger, 15, ++/*250144*/ OPC_CheckType, MVT::i32, ++/*250146*/ OPC_MoveParent, ++/*250147*/ OPC_MoveChild6, ++/*250148*/ OPC_CheckInteger, 15, ++/*250150*/ OPC_CheckType, MVT::i32, ++/*250152*/ OPC_MoveParent, ++/*250153*/ OPC_MoveChild7, ++/*250154*/ OPC_CheckInteger, 15, ++/*250156*/ OPC_CheckType, MVT::i32, ++/*250158*/ OPC_MoveParent, ++/*250159*/ OPC_MoveChild, 8, ++/*250161*/ OPC_CheckInteger, 15, ++/*250163*/ OPC_CheckType, MVT::i32, ++/*250165*/ OPC_MoveParent, ++/*250166*/ OPC_MoveChild, 9, ++/*250168*/ OPC_CheckInteger, 15, ++/*250170*/ OPC_CheckType, MVT::i32, ++/*250172*/ OPC_MoveParent, ++/*250173*/ OPC_MoveChild, 10, ++/*250175*/ OPC_CheckInteger, 15, ++/*250177*/ OPC_CheckType, MVT::i32, ++/*250179*/ OPC_MoveParent, ++/*250180*/ OPC_MoveChild, 11, ++/*250182*/ OPC_CheckInteger, 15, ++/*250184*/ OPC_CheckType, MVT::i32, ++/*250186*/ OPC_MoveParent, ++/*250187*/ OPC_MoveChild, 12, ++/*250189*/ OPC_CheckInteger, 15, ++/*250191*/ OPC_CheckType, MVT::i32, ++/*250193*/ OPC_MoveParent, ++/*250194*/ OPC_MoveChild, 13, ++/*250196*/ OPC_CheckInteger, 15, ++/*250198*/ OPC_CheckType, MVT::i32, ++/*250200*/ OPC_MoveParent, ++/*250201*/ OPC_MoveChild, 14, ++/*250203*/ OPC_CheckInteger, 15, ++/*250205*/ OPC_CheckType, MVT::i32, ++/*250207*/ OPC_MoveParent, ++/*250208*/ OPC_MoveChild, 15, ++/*250210*/ OPC_CheckInteger, 15, ++/*250212*/ OPC_CheckType, MVT::i32, ++/*250214*/ OPC_MoveParent, ++/*250215*/ OPC_CheckType, MVT::v16i16, ++/*250217*/ OPC_MoveParent, ++/*250218*/ OPC_MoveParent, ++/*250219*/ OPC_MoveParent, ++/*250220*/ OPC_MoveChild1, ++/*250221*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*250224*/ OPC_CheckChild0Integer, 1, ++/*250226*/ OPC_CheckChild0Type, MVT::i32, ++/*250228*/ OPC_CheckChild1Integer, 1, ++/*250230*/ OPC_CheckChild1Type, MVT::i32, ++/*250232*/ OPC_CheckChild2Integer, 1, ++/*250234*/ OPC_CheckChild2Type, MVT::i32, ++/*250236*/ OPC_CheckChild3Integer, 1, ++/*250238*/ OPC_CheckChild3Type, MVT::i32, ++/*250240*/ OPC_CheckChild4Integer, 1, ++/*250242*/ OPC_CheckChild4Type, MVT::i32, ++/*250244*/ OPC_MoveChild5, ++/*250245*/ OPC_CheckInteger, 1, ++/*250247*/ OPC_CheckType, MVT::i32, ++/*250249*/ OPC_MoveParent, ++/*250250*/ OPC_MoveChild6, ++/*250251*/ OPC_CheckInteger, 1, ++/*250253*/ OPC_CheckType, MVT::i32, ++/*250255*/ OPC_MoveParent, ++/*250256*/ OPC_MoveChild7, ++/*250257*/ OPC_CheckInteger, 1, ++/*250259*/ OPC_CheckType, MVT::i32, ++/*250261*/ OPC_MoveParent, ++/*250262*/ OPC_MoveChild, 8, ++/*250264*/ OPC_CheckInteger, 1, ++/*250266*/ OPC_CheckType, MVT::i32, ++/*250268*/ OPC_MoveParent, ++/*250269*/ OPC_MoveChild, 9, ++/*250271*/ OPC_CheckInteger, 1, ++/*250273*/ OPC_CheckType, MVT::i32, ++/*250275*/ OPC_MoveParent, ++/*250276*/ OPC_MoveChild, 10, ++/*250278*/ OPC_CheckInteger, 1, ++/*250280*/ OPC_CheckType, MVT::i32, ++/*250282*/ OPC_MoveParent, ++/*250283*/ OPC_MoveChild, 11, ++/*250285*/ OPC_CheckInteger, 1, ++/*250287*/ OPC_CheckType, MVT::i32, ++/*250289*/ OPC_MoveParent, ++/*250290*/ OPC_MoveChild, 12, ++/*250292*/ OPC_CheckInteger, 1, ++/*250294*/ OPC_CheckType, MVT::i32, ++/*250296*/ OPC_MoveParent, ++/*250297*/ OPC_MoveChild, 13, ++/*250299*/ OPC_CheckInteger, 1, ++/*250301*/ OPC_CheckType, MVT::i32, ++/*250303*/ OPC_MoveParent, ++/*250304*/ OPC_MoveChild, 14, ++/*250306*/ OPC_CheckInteger, 1, ++/*250308*/ OPC_CheckType, MVT::i32, ++/*250310*/ OPC_MoveParent, ++/*250311*/ OPC_MoveChild, 15, ++/*250313*/ OPC_CheckInteger, 1, ++/*250315*/ OPC_CheckType, MVT::i32, ++/*250317*/ OPC_MoveParent, ++/*250318*/ OPC_CheckType, MVT::v16i16, ++/*250320*/ OPC_MoveParent, ++/*250321*/ OPC_CheckType, MVT::v16i16, ++/*250323*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*250325*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a), LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*250333*/ /*Scope*/ 65|128,2/*321*/, /*->250656*/ ++/*250335*/ OPC_CheckChild0Same, 1, ++/*250337*/ OPC_MoveChild1, ++/*250338*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*250341*/ OPC_CheckChild0Integer, 1, ++/*250343*/ OPC_CheckChild0Type, MVT::i32, ++/*250345*/ OPC_CheckChild1Integer, 1, ++/*250347*/ OPC_CheckChild1Type, MVT::i32, ++/*250349*/ OPC_CheckChild2Integer, 1, ++/*250351*/ OPC_CheckChild2Type, MVT::i32, ++/*250353*/ OPC_CheckChild3Integer, 1, ++/*250355*/ OPC_CheckChild3Type, MVT::i32, ++/*250357*/ OPC_CheckChild4Integer, 1, ++/*250359*/ OPC_CheckChild4Type, MVT::i32, ++/*250361*/ OPC_MoveChild5, ++/*250362*/ OPC_CheckInteger, 1, ++/*250364*/ OPC_CheckType, MVT::i32, ++/*250366*/ OPC_MoveParent, ++/*250367*/ OPC_MoveChild6, ++/*250368*/ OPC_CheckInteger, 1, ++/*250370*/ OPC_CheckType, MVT::i32, ++/*250372*/ OPC_MoveParent, ++/*250373*/ OPC_MoveChild7, ++/*250374*/ OPC_CheckInteger, 1, ++/*250376*/ OPC_CheckType, MVT::i32, ++/*250378*/ OPC_MoveParent, ++/*250379*/ OPC_MoveChild, 8, ++/*250381*/ OPC_CheckInteger, 1, ++/*250383*/ OPC_CheckType, MVT::i32, ++/*250385*/ OPC_MoveParent, ++/*250386*/ OPC_MoveChild, 9, ++/*250388*/ OPC_CheckInteger, 1, ++/*250390*/ OPC_CheckType, MVT::i32, ++/*250392*/ OPC_MoveParent, ++/*250393*/ OPC_MoveChild, 10, ++/*250395*/ OPC_CheckInteger, 1, ++/*250397*/ OPC_CheckType, MVT::i32, ++/*250399*/ OPC_MoveParent, ++/*250400*/ OPC_MoveChild, 11, ++/*250402*/ OPC_CheckInteger, 1, ++/*250404*/ OPC_CheckType, MVT::i32, ++/*250406*/ OPC_MoveParent, ++/*250407*/ OPC_MoveChild, 12, ++/*250409*/ OPC_CheckInteger, 1, ++/*250411*/ OPC_CheckType, MVT::i32, ++/*250413*/ OPC_MoveParent, ++/*250414*/ OPC_MoveChild, 13, ++/*250416*/ OPC_CheckInteger, 1, ++/*250418*/ OPC_CheckType, MVT::i32, ++/*250420*/ OPC_MoveParent, ++/*250421*/ OPC_MoveChild, 14, ++/*250423*/ OPC_CheckInteger, 1, ++/*250425*/ OPC_CheckType, MVT::i32, ++/*250427*/ OPC_MoveParent, ++/*250428*/ OPC_MoveChild, 15, ++/*250430*/ OPC_CheckInteger, 1, ++/*250432*/ OPC_CheckType, MVT::i32, ++/*250434*/ OPC_MoveParent, ++/*250435*/ OPC_MoveParent, ++/*250436*/ OPC_MoveParent, ++/*250437*/ OPC_CheckChild1Same, 0, ++/*250439*/ OPC_MoveParent, ++/*250440*/ OPC_MoveChild1, ++/*250441*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*250444*/ OPC_CheckChild0Integer, 15, ++/*250446*/ OPC_CheckChild0Type, MVT::i32, ++/*250448*/ OPC_CheckChild1Integer, 15, ++/*250450*/ OPC_CheckChild1Type, MVT::i32, ++/*250452*/ OPC_CheckChild2Integer, 15, ++/*250454*/ OPC_CheckChild2Type, MVT::i32, ++/*250456*/ OPC_CheckChild3Integer, 15, ++/*250458*/ OPC_CheckChild3Type, MVT::i32, ++/*250460*/ OPC_CheckChild4Integer, 15, ++/*250462*/ OPC_CheckChild4Type, MVT::i32, ++/*250464*/ OPC_MoveChild5, ++/*250465*/ OPC_CheckInteger, 15, ++/*250467*/ OPC_CheckType, MVT::i32, ++/*250469*/ OPC_MoveParent, ++/*250470*/ OPC_MoveChild6, ++/*250471*/ OPC_CheckInteger, 15, ++/*250473*/ OPC_CheckType, MVT::i32, ++/*250475*/ OPC_MoveParent, ++/*250476*/ OPC_MoveChild7, ++/*250477*/ OPC_CheckInteger, 15, ++/*250479*/ OPC_CheckType, MVT::i32, ++/*250481*/ OPC_MoveParent, ++/*250482*/ OPC_MoveChild, 8, ++/*250484*/ OPC_CheckInteger, 15, ++/*250486*/ OPC_CheckType, MVT::i32, ++/*250488*/ OPC_MoveParent, ++/*250489*/ OPC_MoveChild, 9, ++/*250491*/ OPC_CheckInteger, 15, ++/*250493*/ OPC_CheckType, MVT::i32, ++/*250495*/ OPC_MoveParent, ++/*250496*/ OPC_MoveChild, 10, ++/*250498*/ OPC_CheckInteger, 15, ++/*250500*/ OPC_CheckType, MVT::i32, ++/*250502*/ OPC_MoveParent, ++/*250503*/ OPC_MoveChild, 11, ++/*250505*/ OPC_CheckInteger, 15, ++/*250507*/ OPC_CheckType, MVT::i32, ++/*250509*/ OPC_MoveParent, ++/*250510*/ OPC_MoveChild, 12, ++/*250512*/ OPC_CheckInteger, 15, ++/*250514*/ OPC_CheckType, MVT::i32, ++/*250516*/ OPC_MoveParent, ++/*250517*/ OPC_MoveChild, 13, ++/*250519*/ OPC_CheckInteger, 15, ++/*250521*/ OPC_CheckType, MVT::i32, ++/*250523*/ OPC_MoveParent, ++/*250524*/ OPC_MoveChild, 14, ++/*250526*/ OPC_CheckInteger, 15, ++/*250528*/ OPC_CheckType, MVT::i32, ++/*250530*/ OPC_MoveParent, ++/*250531*/ OPC_MoveChild, 15, ++/*250533*/ OPC_CheckInteger, 15, ++/*250535*/ OPC_CheckType, MVT::i32, ++/*250537*/ OPC_MoveParent, ++/*250538*/ OPC_CheckType, MVT::v16i16, ++/*250540*/ OPC_MoveParent, ++/*250541*/ OPC_MoveParent, ++/*250542*/ OPC_MoveParent, ++/*250543*/ OPC_MoveChild1, ++/*250544*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*250547*/ OPC_CheckChild0Integer, 1, ++/*250549*/ OPC_CheckChild0Type, MVT::i32, ++/*250551*/ OPC_CheckChild1Integer, 1, ++/*250553*/ OPC_CheckChild1Type, MVT::i32, ++/*250555*/ OPC_CheckChild2Integer, 1, ++/*250557*/ OPC_CheckChild2Type, MVT::i32, ++/*250559*/ OPC_CheckChild3Integer, 1, ++/*250561*/ OPC_CheckChild3Type, MVT::i32, ++/*250563*/ OPC_CheckChild4Integer, 1, ++/*250565*/ OPC_CheckChild4Type, MVT::i32, ++/*250567*/ OPC_MoveChild5, ++/*250568*/ OPC_CheckInteger, 1, ++/*250570*/ OPC_CheckType, MVT::i32, ++/*250572*/ OPC_MoveParent, ++/*250573*/ OPC_MoveChild6, ++/*250574*/ OPC_CheckInteger, 1, ++/*250576*/ OPC_CheckType, MVT::i32, ++/*250578*/ OPC_MoveParent, ++/*250579*/ OPC_MoveChild7, ++/*250580*/ OPC_CheckInteger, 1, ++/*250582*/ OPC_CheckType, MVT::i32, ++/*250584*/ OPC_MoveParent, ++/*250585*/ OPC_MoveChild, 8, ++/*250587*/ OPC_CheckInteger, 1, ++/*250589*/ OPC_CheckType, MVT::i32, ++/*250591*/ OPC_MoveParent, ++/*250592*/ OPC_MoveChild, 9, ++/*250594*/ OPC_CheckInteger, 1, ++/*250596*/ OPC_CheckType, MVT::i32, ++/*250598*/ OPC_MoveParent, ++/*250599*/ OPC_MoveChild, 10, ++/*250601*/ OPC_CheckInteger, 1, ++/*250603*/ OPC_CheckType, MVT::i32, ++/*250605*/ OPC_MoveParent, ++/*250606*/ OPC_MoveChild, 11, ++/*250608*/ OPC_CheckInteger, 1, ++/*250610*/ OPC_CheckType, MVT::i32, ++/*250612*/ OPC_MoveParent, ++/*250613*/ OPC_MoveChild, 12, ++/*250615*/ OPC_CheckInteger, 1, ++/*250617*/ OPC_CheckType, MVT::i32, ++/*250619*/ OPC_MoveParent, ++/*250620*/ OPC_MoveChild, 13, ++/*250622*/ OPC_CheckInteger, 1, ++/*250624*/ OPC_CheckType, MVT::i32, ++/*250626*/ OPC_MoveParent, ++/*250627*/ OPC_MoveChild, 14, ++/*250629*/ OPC_CheckInteger, 1, ++/*250631*/ OPC_CheckType, MVT::i32, ++/*250633*/ OPC_MoveParent, ++/*250634*/ OPC_MoveChild, 15, ++/*250636*/ OPC_CheckInteger, 1, ++/*250638*/ OPC_CheckType, MVT::i32, ++/*250640*/ OPC_MoveParent, ++/*250641*/ OPC_CheckType, MVT::v16i16, ++/*250643*/ OPC_MoveParent, ++/*250644*/ OPC_CheckType, MVT::v16i16, ++/*250646*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*250648*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*250656*/ /*Scope*/ 65|128,2/*321*/, /*->250979*/ ++/*250658*/ OPC_MoveChild0, ++/*250659*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*250662*/ OPC_CheckChild0Integer, 1, ++/*250664*/ OPC_CheckChild0Type, MVT::i32, ++/*250666*/ OPC_CheckChild1Integer, 1, ++/*250668*/ OPC_CheckChild1Type, MVT::i32, ++/*250670*/ OPC_CheckChild2Integer, 1, ++/*250672*/ OPC_CheckChild2Type, MVT::i32, ++/*250674*/ OPC_CheckChild3Integer, 1, ++/*250676*/ OPC_CheckChild3Type, MVT::i32, ++/*250678*/ OPC_CheckChild4Integer, 1, ++/*250680*/ OPC_CheckChild4Type, MVT::i32, ++/*250682*/ OPC_MoveChild5, ++/*250683*/ OPC_CheckInteger, 1, ++/*250685*/ OPC_CheckType, MVT::i32, ++/*250687*/ OPC_MoveParent, ++/*250688*/ OPC_MoveChild6, ++/*250689*/ OPC_CheckInteger, 1, ++/*250691*/ OPC_CheckType, MVT::i32, ++/*250693*/ OPC_MoveParent, ++/*250694*/ OPC_MoveChild7, ++/*250695*/ OPC_CheckInteger, 1, ++/*250697*/ OPC_CheckType, MVT::i32, ++/*250699*/ OPC_MoveParent, ++/*250700*/ OPC_MoveChild, 8, ++/*250702*/ OPC_CheckInteger, 1, ++/*250704*/ OPC_CheckType, MVT::i32, ++/*250706*/ OPC_MoveParent, ++/*250707*/ OPC_MoveChild, 9, ++/*250709*/ OPC_CheckInteger, 1, ++/*250711*/ OPC_CheckType, MVT::i32, ++/*250713*/ OPC_MoveParent, ++/*250714*/ OPC_MoveChild, 10, ++/*250716*/ OPC_CheckInteger, 1, ++/*250718*/ OPC_CheckType, MVT::i32, ++/*250720*/ OPC_MoveParent, ++/*250721*/ OPC_MoveChild, 11, ++/*250723*/ OPC_CheckInteger, 1, ++/*250725*/ OPC_CheckType, MVT::i32, ++/*250727*/ OPC_MoveParent, ++/*250728*/ OPC_MoveChild, 12, ++/*250730*/ OPC_CheckInteger, 1, ++/*250732*/ OPC_CheckType, MVT::i32, ++/*250734*/ OPC_MoveParent, ++/*250735*/ OPC_MoveChild, 13, ++/*250737*/ OPC_CheckInteger, 1, ++/*250739*/ OPC_CheckType, MVT::i32, ++/*250741*/ OPC_MoveParent, ++/*250742*/ OPC_MoveChild, 14, ++/*250744*/ OPC_CheckInteger, 1, ++/*250746*/ OPC_CheckType, MVT::i32, ++/*250748*/ OPC_MoveParent, ++/*250749*/ OPC_MoveChild, 15, ++/*250751*/ OPC_CheckInteger, 1, ++/*250753*/ OPC_CheckType, MVT::i32, ++/*250755*/ OPC_MoveParent, ++/*250756*/ OPC_MoveParent, ++/*250757*/ OPC_CheckChild1Same, 0, ++/*250759*/ OPC_MoveParent, ++/*250760*/ OPC_CheckChild1Same, 1, ++/*250762*/ OPC_MoveParent, ++/*250763*/ OPC_MoveChild1, ++/*250764*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*250767*/ OPC_CheckChild0Integer, 15, ++/*250769*/ OPC_CheckChild0Type, MVT::i32, ++/*250771*/ OPC_CheckChild1Integer, 15, ++/*250773*/ OPC_CheckChild1Type, MVT::i32, ++/*250775*/ OPC_CheckChild2Integer, 15, ++/*250777*/ OPC_CheckChild2Type, MVT::i32, ++/*250779*/ OPC_CheckChild3Integer, 15, ++/*250781*/ OPC_CheckChild3Type, MVT::i32, ++/*250783*/ OPC_CheckChild4Integer, 15, ++/*250785*/ OPC_CheckChild4Type, MVT::i32, ++/*250787*/ OPC_MoveChild5, ++/*250788*/ OPC_CheckInteger, 15, ++/*250790*/ OPC_CheckType, MVT::i32, ++/*250792*/ OPC_MoveParent, ++/*250793*/ OPC_MoveChild6, ++/*250794*/ OPC_CheckInteger, 15, ++/*250796*/ OPC_CheckType, MVT::i32, ++/*250798*/ OPC_MoveParent, ++/*250799*/ OPC_MoveChild7, ++/*250800*/ OPC_CheckInteger, 15, ++/*250802*/ OPC_CheckType, MVT::i32, ++/*250804*/ OPC_MoveParent, ++/*250805*/ OPC_MoveChild, 8, ++/*250807*/ OPC_CheckInteger, 15, ++/*250809*/ OPC_CheckType, MVT::i32, ++/*250811*/ OPC_MoveParent, ++/*250812*/ OPC_MoveChild, 9, ++/*250814*/ OPC_CheckInteger, 15, ++/*250816*/ OPC_CheckType, MVT::i32, ++/*250818*/ OPC_MoveParent, ++/*250819*/ OPC_MoveChild, 10, ++/*250821*/ OPC_CheckInteger, 15, ++/*250823*/ OPC_CheckType, MVT::i32, ++/*250825*/ OPC_MoveParent, ++/*250826*/ OPC_MoveChild, 11, ++/*250828*/ OPC_CheckInteger, 15, ++/*250830*/ OPC_CheckType, MVT::i32, ++/*250832*/ OPC_MoveParent, ++/*250833*/ OPC_MoveChild, 12, ++/*250835*/ OPC_CheckInteger, 15, ++/*250837*/ OPC_CheckType, MVT::i32, ++/*250839*/ OPC_MoveParent, ++/*250840*/ OPC_MoveChild, 13, ++/*250842*/ OPC_CheckInteger, 15, ++/*250844*/ OPC_CheckType, MVT::i32, ++/*250846*/ OPC_MoveParent, ++/*250847*/ OPC_MoveChild, 14, ++/*250849*/ OPC_CheckInteger, 15, ++/*250851*/ OPC_CheckType, MVT::i32, ++/*250853*/ OPC_MoveParent, ++/*250854*/ OPC_MoveChild, 15, ++/*250856*/ OPC_CheckInteger, 15, ++/*250858*/ OPC_CheckType, MVT::i32, ++/*250860*/ OPC_MoveParent, ++/*250861*/ OPC_CheckType, MVT::v16i16, ++/*250863*/ OPC_MoveParent, ++/*250864*/ OPC_MoveParent, ++/*250865*/ OPC_MoveParent, ++/*250866*/ OPC_MoveChild1, ++/*250867*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*250870*/ OPC_CheckChild0Integer, 1, ++/*250872*/ OPC_CheckChild0Type, MVT::i32, ++/*250874*/ OPC_CheckChild1Integer, 1, ++/*250876*/ OPC_CheckChild1Type, MVT::i32, ++/*250878*/ OPC_CheckChild2Integer, 1, ++/*250880*/ OPC_CheckChild2Type, MVT::i32, ++/*250882*/ OPC_CheckChild3Integer, 1, ++/*250884*/ OPC_CheckChild3Type, MVT::i32, ++/*250886*/ OPC_CheckChild4Integer, 1, ++/*250888*/ OPC_CheckChild4Type, MVT::i32, ++/*250890*/ OPC_MoveChild5, ++/*250891*/ OPC_CheckInteger, 1, ++/*250893*/ OPC_CheckType, MVT::i32, ++/*250895*/ OPC_MoveParent, ++/*250896*/ OPC_MoveChild6, ++/*250897*/ OPC_CheckInteger, 1, ++/*250899*/ OPC_CheckType, MVT::i32, ++/*250901*/ OPC_MoveParent, ++/*250902*/ OPC_MoveChild7, ++/*250903*/ OPC_CheckInteger, 1, ++/*250905*/ OPC_CheckType, MVT::i32, ++/*250907*/ OPC_MoveParent, ++/*250908*/ OPC_MoveChild, 8, ++/*250910*/ OPC_CheckInteger, 1, ++/*250912*/ OPC_CheckType, MVT::i32, ++/*250914*/ OPC_MoveParent, ++/*250915*/ OPC_MoveChild, 9, ++/*250917*/ OPC_CheckInteger, 1, ++/*250919*/ OPC_CheckType, MVT::i32, ++/*250921*/ OPC_MoveParent, ++/*250922*/ OPC_MoveChild, 10, ++/*250924*/ OPC_CheckInteger, 1, ++/*250926*/ OPC_CheckType, MVT::i32, ++/*250928*/ OPC_MoveParent, ++/*250929*/ OPC_MoveChild, 11, ++/*250931*/ OPC_CheckInteger, 1, ++/*250933*/ OPC_CheckType, MVT::i32, ++/*250935*/ OPC_MoveParent, ++/*250936*/ OPC_MoveChild, 12, ++/*250938*/ OPC_CheckInteger, 1, ++/*250940*/ OPC_CheckType, MVT::i32, ++/*250942*/ OPC_MoveParent, ++/*250943*/ OPC_MoveChild, 13, ++/*250945*/ OPC_CheckInteger, 1, ++/*250947*/ OPC_CheckType, MVT::i32, ++/*250949*/ OPC_MoveParent, ++/*250950*/ OPC_MoveChild, 14, ++/*250952*/ OPC_CheckInteger, 1, ++/*250954*/ OPC_CheckType, MVT::i32, ++/*250956*/ OPC_MoveParent, ++/*250957*/ OPC_MoveChild, 15, ++/*250959*/ OPC_CheckInteger, 1, ++/*250961*/ OPC_CheckType, MVT::i32, ++/*250963*/ OPC_MoveParent, ++/*250964*/ OPC_CheckType, MVT::v16i16, ++/*250966*/ OPC_MoveParent, ++/*250967*/ OPC_CheckType, MVT::v16i16, ++/*250969*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*250971*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b), LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*250979*/ /*Scope*/ 65|128,2/*321*/, /*->251302*/ ++/*250981*/ OPC_CheckChild0Same, 0, ++/*250983*/ OPC_MoveChild1, ++/*250984*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*250987*/ OPC_CheckChild0Integer, 1, ++/*250989*/ OPC_CheckChild0Type, MVT::i32, ++/*250991*/ OPC_CheckChild1Integer, 1, ++/*250993*/ OPC_CheckChild1Type, MVT::i32, ++/*250995*/ OPC_CheckChild2Integer, 1, ++/*250997*/ OPC_CheckChild2Type, MVT::i32, ++/*250999*/ OPC_CheckChild3Integer, 1, ++/*251001*/ OPC_CheckChild3Type, MVT::i32, ++/*251003*/ OPC_CheckChild4Integer, 1, ++/*251005*/ OPC_CheckChild4Type, MVT::i32, ++/*251007*/ OPC_MoveChild5, ++/*251008*/ OPC_CheckInteger, 1, ++/*251010*/ OPC_CheckType, MVT::i32, ++/*251012*/ OPC_MoveParent, ++/*251013*/ OPC_MoveChild6, ++/*251014*/ OPC_CheckInteger, 1, ++/*251016*/ OPC_CheckType, MVT::i32, ++/*251018*/ OPC_MoveParent, ++/*251019*/ OPC_MoveChild7, ++/*251020*/ OPC_CheckInteger, 1, ++/*251022*/ OPC_CheckType, MVT::i32, ++/*251024*/ OPC_MoveParent, ++/*251025*/ OPC_MoveChild, 8, ++/*251027*/ OPC_CheckInteger, 1, ++/*251029*/ OPC_CheckType, MVT::i32, ++/*251031*/ OPC_MoveParent, ++/*251032*/ OPC_MoveChild, 9, ++/*251034*/ OPC_CheckInteger, 1, ++/*251036*/ OPC_CheckType, MVT::i32, ++/*251038*/ OPC_MoveParent, ++/*251039*/ OPC_MoveChild, 10, ++/*251041*/ OPC_CheckInteger, 1, ++/*251043*/ OPC_CheckType, MVT::i32, ++/*251045*/ OPC_MoveParent, ++/*251046*/ OPC_MoveChild, 11, ++/*251048*/ OPC_CheckInteger, 1, ++/*251050*/ OPC_CheckType, MVT::i32, ++/*251052*/ OPC_MoveParent, ++/*251053*/ OPC_MoveChild, 12, ++/*251055*/ OPC_CheckInteger, 1, ++/*251057*/ OPC_CheckType, MVT::i32, ++/*251059*/ OPC_MoveParent, ++/*251060*/ OPC_MoveChild, 13, ++/*251062*/ OPC_CheckInteger, 1, ++/*251064*/ OPC_CheckType, MVT::i32, ++/*251066*/ OPC_MoveParent, ++/*251067*/ OPC_MoveChild, 14, ++/*251069*/ OPC_CheckInteger, 1, ++/*251071*/ OPC_CheckType, MVT::i32, ++/*251073*/ OPC_MoveParent, ++/*251074*/ OPC_MoveChild, 15, ++/*251076*/ OPC_CheckInteger, 1, ++/*251078*/ OPC_CheckType, MVT::i32, ++/*251080*/ OPC_MoveParent, ++/*251081*/ OPC_MoveParent, ++/*251082*/ OPC_MoveParent, ++/*251083*/ OPC_CheckChild1Same, 1, ++/*251085*/ OPC_MoveParent, ++/*251086*/ OPC_MoveChild1, ++/*251087*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*251090*/ OPC_CheckChild0Integer, 15, ++/*251092*/ OPC_CheckChild0Type, MVT::i32, ++/*251094*/ OPC_CheckChild1Integer, 15, ++/*251096*/ OPC_CheckChild1Type, MVT::i32, ++/*251098*/ OPC_CheckChild2Integer, 15, ++/*251100*/ OPC_CheckChild2Type, MVT::i32, ++/*251102*/ OPC_CheckChild3Integer, 15, ++/*251104*/ OPC_CheckChild3Type, MVT::i32, ++/*251106*/ OPC_CheckChild4Integer, 15, ++/*251108*/ OPC_CheckChild4Type, MVT::i32, ++/*251110*/ OPC_MoveChild5, ++/*251111*/ OPC_CheckInteger, 15, ++/*251113*/ OPC_CheckType, MVT::i32, ++/*251115*/ OPC_MoveParent, ++/*251116*/ OPC_MoveChild6, ++/*251117*/ OPC_CheckInteger, 15, ++/*251119*/ OPC_CheckType, MVT::i32, ++/*251121*/ OPC_MoveParent, ++/*251122*/ OPC_MoveChild7, ++/*251123*/ OPC_CheckInteger, 15, ++/*251125*/ OPC_CheckType, MVT::i32, ++/*251127*/ OPC_MoveParent, ++/*251128*/ OPC_MoveChild, 8, ++/*251130*/ OPC_CheckInteger, 15, ++/*251132*/ OPC_CheckType, MVT::i32, ++/*251134*/ OPC_MoveParent, ++/*251135*/ OPC_MoveChild, 9, ++/*251137*/ OPC_CheckInteger, 15, ++/*251139*/ OPC_CheckType, MVT::i32, ++/*251141*/ OPC_MoveParent, ++/*251142*/ OPC_MoveChild, 10, ++/*251144*/ OPC_CheckInteger, 15, ++/*251146*/ OPC_CheckType, MVT::i32, ++/*251148*/ OPC_MoveParent, ++/*251149*/ OPC_MoveChild, 11, ++/*251151*/ OPC_CheckInteger, 15, ++/*251153*/ OPC_CheckType, MVT::i32, ++/*251155*/ OPC_MoveParent, ++/*251156*/ OPC_MoveChild, 12, ++/*251158*/ OPC_CheckInteger, 15, ++/*251160*/ OPC_CheckType, MVT::i32, ++/*251162*/ OPC_MoveParent, ++/*251163*/ OPC_MoveChild, 13, ++/*251165*/ OPC_CheckInteger, 15, ++/*251167*/ OPC_CheckType, MVT::i32, ++/*251169*/ OPC_MoveParent, ++/*251170*/ OPC_MoveChild, 14, ++/*251172*/ OPC_CheckInteger, 15, ++/*251174*/ OPC_CheckType, MVT::i32, ++/*251176*/ OPC_MoveParent, ++/*251177*/ OPC_MoveChild, 15, ++/*251179*/ OPC_CheckInteger, 15, ++/*251181*/ OPC_CheckType, MVT::i32, ++/*251183*/ OPC_MoveParent, ++/*251184*/ OPC_CheckType, MVT::v16i16, ++/*251186*/ OPC_MoveParent, ++/*251187*/ OPC_MoveParent, ++/*251188*/ OPC_MoveParent, ++/*251189*/ OPC_MoveChild1, ++/*251190*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*251193*/ OPC_CheckChild0Integer, 1, ++/*251195*/ OPC_CheckChild0Type, MVT::i32, ++/*251197*/ OPC_CheckChild1Integer, 1, ++/*251199*/ OPC_CheckChild1Type, MVT::i32, ++/*251201*/ OPC_CheckChild2Integer, 1, ++/*251203*/ OPC_CheckChild2Type, MVT::i32, ++/*251205*/ OPC_CheckChild3Integer, 1, ++/*251207*/ OPC_CheckChild3Type, MVT::i32, ++/*251209*/ OPC_CheckChild4Integer, 1, ++/*251211*/ OPC_CheckChild4Type, MVT::i32, ++/*251213*/ OPC_MoveChild5, ++/*251214*/ OPC_CheckInteger, 1, ++/*251216*/ OPC_CheckType, MVT::i32, ++/*251218*/ OPC_MoveParent, ++/*251219*/ OPC_MoveChild6, ++/*251220*/ OPC_CheckInteger, 1, ++/*251222*/ OPC_CheckType, MVT::i32, ++/*251224*/ OPC_MoveParent, ++/*251225*/ OPC_MoveChild7, ++/*251226*/ OPC_CheckInteger, 1, ++/*251228*/ OPC_CheckType, MVT::i32, ++/*251230*/ OPC_MoveParent, ++/*251231*/ OPC_MoveChild, 8, ++/*251233*/ OPC_CheckInteger, 1, ++/*251235*/ OPC_CheckType, MVT::i32, ++/*251237*/ OPC_MoveParent, ++/*251238*/ OPC_MoveChild, 9, ++/*251240*/ OPC_CheckInteger, 1, ++/*251242*/ OPC_CheckType, MVT::i32, ++/*251244*/ OPC_MoveParent, ++/*251245*/ OPC_MoveChild, 10, ++/*251247*/ OPC_CheckInteger, 1, ++/*251249*/ OPC_CheckType, MVT::i32, ++/*251251*/ OPC_MoveParent, ++/*251252*/ OPC_MoveChild, 11, ++/*251254*/ OPC_CheckInteger, 1, ++/*251256*/ OPC_CheckType, MVT::i32, ++/*251258*/ OPC_MoveParent, ++/*251259*/ OPC_MoveChild, 12, ++/*251261*/ OPC_CheckInteger, 1, ++/*251263*/ OPC_CheckType, MVT::i32, ++/*251265*/ OPC_MoveParent, ++/*251266*/ OPC_MoveChild, 13, ++/*251268*/ OPC_CheckInteger, 1, ++/*251270*/ OPC_CheckType, MVT::i32, ++/*251272*/ OPC_MoveParent, ++/*251273*/ OPC_MoveChild, 14, ++/*251275*/ OPC_CheckInteger, 1, ++/*251277*/ OPC_CheckType, MVT::i32, ++/*251279*/ OPC_MoveParent, ++/*251280*/ OPC_MoveChild, 15, ++/*251282*/ OPC_CheckInteger, 1, ++/*251284*/ OPC_CheckType, MVT::i32, ++/*251286*/ OPC_MoveParent, ++/*251287*/ OPC_CheckType, MVT::v16i16, ++/*251289*/ OPC_MoveParent, ++/*251290*/ OPC_CheckType, MVT::v16i16, ++/*251292*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*251294*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*251302*/ /*Scope*/ 65|128,2/*321*/, /*->251625*/ ++/*251304*/ OPC_CheckChild0Same, 1, ++/*251306*/ OPC_CheckChild1Same, 0, ++/*251308*/ OPC_MoveParent, ++/*251309*/ OPC_MoveChild1, ++/*251310*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*251313*/ OPC_CheckChild0Integer, 1, ++/*251315*/ OPC_CheckChild0Type, MVT::i32, ++/*251317*/ OPC_CheckChild1Integer, 1, ++/*251319*/ OPC_CheckChild1Type, MVT::i32, ++/*251321*/ OPC_CheckChild2Integer, 1, ++/*251323*/ OPC_CheckChild2Type, MVT::i32, ++/*251325*/ OPC_CheckChild3Integer, 1, ++/*251327*/ OPC_CheckChild3Type, MVT::i32, ++/*251329*/ OPC_CheckChild4Integer, 1, ++/*251331*/ OPC_CheckChild4Type, MVT::i32, ++/*251333*/ OPC_MoveChild5, ++/*251334*/ OPC_CheckInteger, 1, ++/*251336*/ OPC_CheckType, MVT::i32, ++/*251338*/ OPC_MoveParent, ++/*251339*/ OPC_MoveChild6, ++/*251340*/ OPC_CheckInteger, 1, ++/*251342*/ OPC_CheckType, MVT::i32, ++/*251344*/ OPC_MoveParent, ++/*251345*/ OPC_MoveChild7, ++/*251346*/ OPC_CheckInteger, 1, ++/*251348*/ OPC_CheckType, MVT::i32, ++/*251350*/ OPC_MoveParent, ++/*251351*/ OPC_MoveChild, 8, ++/*251353*/ OPC_CheckInteger, 1, ++/*251355*/ OPC_CheckType, MVT::i32, ++/*251357*/ OPC_MoveParent, ++/*251358*/ OPC_MoveChild, 9, ++/*251360*/ OPC_CheckInteger, 1, ++/*251362*/ OPC_CheckType, MVT::i32, ++/*251364*/ OPC_MoveParent, ++/*251365*/ OPC_MoveChild, 10, ++/*251367*/ OPC_CheckInteger, 1, ++/*251369*/ OPC_CheckType, MVT::i32, ++/*251371*/ OPC_MoveParent, ++/*251372*/ OPC_MoveChild, 11, ++/*251374*/ OPC_CheckInteger, 1, ++/*251376*/ OPC_CheckType, MVT::i32, ++/*251378*/ OPC_MoveParent, ++/*251379*/ OPC_MoveChild, 12, ++/*251381*/ OPC_CheckInteger, 1, ++/*251383*/ OPC_CheckType, MVT::i32, ++/*251385*/ OPC_MoveParent, ++/*251386*/ OPC_MoveChild, 13, ++/*251388*/ OPC_CheckInteger, 1, ++/*251390*/ OPC_CheckType, MVT::i32, ++/*251392*/ OPC_MoveParent, ++/*251393*/ OPC_MoveChild, 14, ++/*251395*/ OPC_CheckInteger, 1, ++/*251397*/ OPC_CheckType, MVT::i32, ++/*251399*/ OPC_MoveParent, ++/*251400*/ OPC_MoveChild, 15, ++/*251402*/ OPC_CheckInteger, 1, ++/*251404*/ OPC_CheckType, MVT::i32, ++/*251406*/ OPC_MoveParent, ++/*251407*/ OPC_MoveParent, ++/*251408*/ OPC_MoveParent, ++/*251409*/ OPC_MoveChild1, ++/*251410*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*251413*/ OPC_CheckChild0Integer, 15, ++/*251415*/ OPC_CheckChild0Type, MVT::i32, ++/*251417*/ OPC_CheckChild1Integer, 15, ++/*251419*/ OPC_CheckChild1Type, MVT::i32, ++/*251421*/ OPC_CheckChild2Integer, 15, ++/*251423*/ OPC_CheckChild2Type, MVT::i32, ++/*251425*/ OPC_CheckChild3Integer, 15, ++/*251427*/ OPC_CheckChild3Type, MVT::i32, ++/*251429*/ OPC_CheckChild4Integer, 15, ++/*251431*/ OPC_CheckChild4Type, MVT::i32, ++/*251433*/ OPC_MoveChild5, ++/*251434*/ OPC_CheckInteger, 15, ++/*251436*/ OPC_CheckType, MVT::i32, ++/*251438*/ OPC_MoveParent, ++/*251439*/ OPC_MoveChild6, ++/*251440*/ OPC_CheckInteger, 15, ++/*251442*/ OPC_CheckType, MVT::i32, ++/*251444*/ OPC_MoveParent, ++/*251445*/ OPC_MoveChild7, ++/*251446*/ OPC_CheckInteger, 15, ++/*251448*/ OPC_CheckType, MVT::i32, ++/*251450*/ OPC_MoveParent, ++/*251451*/ OPC_MoveChild, 8, ++/*251453*/ OPC_CheckInteger, 15, ++/*251455*/ OPC_CheckType, MVT::i32, ++/*251457*/ OPC_MoveParent, ++/*251458*/ OPC_MoveChild, 9, ++/*251460*/ OPC_CheckInteger, 15, ++/*251462*/ OPC_CheckType, MVT::i32, ++/*251464*/ OPC_MoveParent, ++/*251465*/ OPC_MoveChild, 10, ++/*251467*/ OPC_CheckInteger, 15, ++/*251469*/ OPC_CheckType, MVT::i32, ++/*251471*/ OPC_MoveParent, ++/*251472*/ OPC_MoveChild, 11, ++/*251474*/ OPC_CheckInteger, 15, ++/*251476*/ OPC_CheckType, MVT::i32, ++/*251478*/ OPC_MoveParent, ++/*251479*/ OPC_MoveChild, 12, ++/*251481*/ OPC_CheckInteger, 15, ++/*251483*/ OPC_CheckType, MVT::i32, ++/*251485*/ OPC_MoveParent, ++/*251486*/ OPC_MoveChild, 13, ++/*251488*/ OPC_CheckInteger, 15, ++/*251490*/ OPC_CheckType, MVT::i32, ++/*251492*/ OPC_MoveParent, ++/*251493*/ OPC_MoveChild, 14, ++/*251495*/ OPC_CheckInteger, 15, ++/*251497*/ OPC_CheckType, MVT::i32, ++/*251499*/ OPC_MoveParent, ++/*251500*/ OPC_MoveChild, 15, ++/*251502*/ OPC_CheckInteger, 15, ++/*251504*/ OPC_CheckType, MVT::i32, ++/*251506*/ OPC_MoveParent, ++/*251507*/ OPC_CheckType, MVT::v16i16, ++/*251509*/ OPC_MoveParent, ++/*251510*/ OPC_MoveParent, ++/*251511*/ OPC_MoveParent, ++/*251512*/ OPC_MoveChild1, ++/*251513*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*251516*/ OPC_CheckChild0Integer, 1, ++/*251518*/ OPC_CheckChild0Type, MVT::i32, ++/*251520*/ OPC_CheckChild1Integer, 1, ++/*251522*/ OPC_CheckChild1Type, MVT::i32, ++/*251524*/ OPC_CheckChild2Integer, 1, ++/*251526*/ OPC_CheckChild2Type, MVT::i32, ++/*251528*/ OPC_CheckChild3Integer, 1, ++/*251530*/ OPC_CheckChild3Type, MVT::i32, ++/*251532*/ OPC_CheckChild4Integer, 1, ++/*251534*/ OPC_CheckChild4Type, MVT::i32, ++/*251536*/ OPC_MoveChild5, ++/*251537*/ OPC_CheckInteger, 1, ++/*251539*/ OPC_CheckType, MVT::i32, ++/*251541*/ OPC_MoveParent, ++/*251542*/ OPC_MoveChild6, ++/*251543*/ OPC_CheckInteger, 1, ++/*251545*/ OPC_CheckType, MVT::i32, ++/*251547*/ OPC_MoveParent, ++/*251548*/ OPC_MoveChild7, ++/*251549*/ OPC_CheckInteger, 1, ++/*251551*/ OPC_CheckType, MVT::i32, ++/*251553*/ OPC_MoveParent, ++/*251554*/ OPC_MoveChild, 8, ++/*251556*/ OPC_CheckInteger, 1, ++/*251558*/ OPC_CheckType, MVT::i32, ++/*251560*/ OPC_MoveParent, ++/*251561*/ OPC_MoveChild, 9, ++/*251563*/ OPC_CheckInteger, 1, ++/*251565*/ OPC_CheckType, MVT::i32, ++/*251567*/ OPC_MoveParent, ++/*251568*/ OPC_MoveChild, 10, ++/*251570*/ OPC_CheckInteger, 1, ++/*251572*/ OPC_CheckType, MVT::i32, ++/*251574*/ OPC_MoveParent, ++/*251575*/ OPC_MoveChild, 11, ++/*251577*/ OPC_CheckInteger, 1, ++/*251579*/ OPC_CheckType, MVT::i32, ++/*251581*/ OPC_MoveParent, ++/*251582*/ OPC_MoveChild, 12, ++/*251584*/ OPC_CheckInteger, 1, ++/*251586*/ OPC_CheckType, MVT::i32, ++/*251588*/ OPC_MoveParent, ++/*251589*/ OPC_MoveChild, 13, ++/*251591*/ OPC_CheckInteger, 1, ++/*251593*/ OPC_CheckType, MVT::i32, ++/*251595*/ OPC_MoveParent, ++/*251596*/ OPC_MoveChild, 14, ++/*251598*/ OPC_CheckInteger, 1, ++/*251600*/ OPC_CheckType, MVT::i32, ++/*251602*/ OPC_MoveParent, ++/*251603*/ OPC_MoveChild, 15, ++/*251605*/ OPC_CheckInteger, 1, ++/*251607*/ OPC_CheckType, MVT::i32, ++/*251609*/ OPC_MoveParent, ++/*251610*/ OPC_CheckType, MVT::v16i16, ++/*251612*/ OPC_MoveParent, ++/*251613*/ OPC_CheckType, MVT::v16i16, ++/*251615*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*251617*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*251625*/ /*Scope*/ 65|128,2/*321*/, /*->251948*/ ++/*251627*/ OPC_CheckChild0Same, 0, ++/*251629*/ OPC_CheckChild1Same, 1, ++/*251631*/ OPC_MoveParent, ++/*251632*/ OPC_MoveChild1, ++/*251633*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*251636*/ OPC_CheckChild0Integer, 1, ++/*251638*/ OPC_CheckChild0Type, MVT::i32, ++/*251640*/ OPC_CheckChild1Integer, 1, ++/*251642*/ OPC_CheckChild1Type, MVT::i32, ++/*251644*/ OPC_CheckChild2Integer, 1, ++/*251646*/ OPC_CheckChild2Type, MVT::i32, ++/*251648*/ OPC_CheckChild3Integer, 1, ++/*251650*/ OPC_CheckChild3Type, MVT::i32, ++/*251652*/ OPC_CheckChild4Integer, 1, ++/*251654*/ OPC_CheckChild4Type, MVT::i32, ++/*251656*/ OPC_MoveChild5, ++/*251657*/ OPC_CheckInteger, 1, ++/*251659*/ OPC_CheckType, MVT::i32, ++/*251661*/ OPC_MoveParent, ++/*251662*/ OPC_MoveChild6, ++/*251663*/ OPC_CheckInteger, 1, ++/*251665*/ OPC_CheckType, MVT::i32, ++/*251667*/ OPC_MoveParent, ++/*251668*/ OPC_MoveChild7, ++/*251669*/ OPC_CheckInteger, 1, ++/*251671*/ OPC_CheckType, MVT::i32, ++/*251673*/ OPC_MoveParent, ++/*251674*/ OPC_MoveChild, 8, ++/*251676*/ OPC_CheckInteger, 1, ++/*251678*/ OPC_CheckType, MVT::i32, ++/*251680*/ OPC_MoveParent, ++/*251681*/ OPC_MoveChild, 9, ++/*251683*/ OPC_CheckInteger, 1, ++/*251685*/ OPC_CheckType, MVT::i32, ++/*251687*/ OPC_MoveParent, ++/*251688*/ OPC_MoveChild, 10, ++/*251690*/ OPC_CheckInteger, 1, ++/*251692*/ OPC_CheckType, MVT::i32, ++/*251694*/ OPC_MoveParent, ++/*251695*/ OPC_MoveChild, 11, ++/*251697*/ OPC_CheckInteger, 1, ++/*251699*/ OPC_CheckType, MVT::i32, ++/*251701*/ OPC_MoveParent, ++/*251702*/ OPC_MoveChild, 12, ++/*251704*/ OPC_CheckInteger, 1, ++/*251706*/ OPC_CheckType, MVT::i32, ++/*251708*/ OPC_MoveParent, ++/*251709*/ OPC_MoveChild, 13, ++/*251711*/ OPC_CheckInteger, 1, ++/*251713*/ OPC_CheckType, MVT::i32, ++/*251715*/ OPC_MoveParent, ++/*251716*/ OPC_MoveChild, 14, ++/*251718*/ OPC_CheckInteger, 1, ++/*251720*/ OPC_CheckType, MVT::i32, ++/*251722*/ OPC_MoveParent, ++/*251723*/ OPC_MoveChild, 15, ++/*251725*/ OPC_CheckInteger, 1, ++/*251727*/ OPC_CheckType, MVT::i32, ++/*251729*/ OPC_MoveParent, ++/*251730*/ OPC_MoveParent, ++/*251731*/ OPC_MoveParent, ++/*251732*/ OPC_MoveChild1, ++/*251733*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*251736*/ OPC_CheckChild0Integer, 15, ++/*251738*/ OPC_CheckChild0Type, MVT::i32, ++/*251740*/ OPC_CheckChild1Integer, 15, ++/*251742*/ OPC_CheckChild1Type, MVT::i32, ++/*251744*/ OPC_CheckChild2Integer, 15, ++/*251746*/ OPC_CheckChild2Type, MVT::i32, ++/*251748*/ OPC_CheckChild3Integer, 15, ++/*251750*/ OPC_CheckChild3Type, MVT::i32, ++/*251752*/ OPC_CheckChild4Integer, 15, ++/*251754*/ OPC_CheckChild4Type, MVT::i32, ++/*251756*/ OPC_MoveChild5, ++/*251757*/ OPC_CheckInteger, 15, ++/*251759*/ OPC_CheckType, MVT::i32, ++/*251761*/ OPC_MoveParent, ++/*251762*/ OPC_MoveChild6, ++/*251763*/ OPC_CheckInteger, 15, ++/*251765*/ OPC_CheckType, MVT::i32, ++/*251767*/ OPC_MoveParent, ++/*251768*/ OPC_MoveChild7, ++/*251769*/ OPC_CheckInteger, 15, ++/*251771*/ OPC_CheckType, MVT::i32, ++/*251773*/ OPC_MoveParent, ++/*251774*/ OPC_MoveChild, 8, ++/*251776*/ OPC_CheckInteger, 15, ++/*251778*/ OPC_CheckType, MVT::i32, ++/*251780*/ OPC_MoveParent, ++/*251781*/ OPC_MoveChild, 9, ++/*251783*/ OPC_CheckInteger, 15, ++/*251785*/ OPC_CheckType, MVT::i32, ++/*251787*/ OPC_MoveParent, ++/*251788*/ OPC_MoveChild, 10, ++/*251790*/ OPC_CheckInteger, 15, ++/*251792*/ OPC_CheckType, MVT::i32, ++/*251794*/ OPC_MoveParent, ++/*251795*/ OPC_MoveChild, 11, ++/*251797*/ OPC_CheckInteger, 15, ++/*251799*/ OPC_CheckType, MVT::i32, ++/*251801*/ OPC_MoveParent, ++/*251802*/ OPC_MoveChild, 12, ++/*251804*/ OPC_CheckInteger, 15, ++/*251806*/ OPC_CheckType, MVT::i32, ++/*251808*/ OPC_MoveParent, ++/*251809*/ OPC_MoveChild, 13, ++/*251811*/ OPC_CheckInteger, 15, ++/*251813*/ OPC_CheckType, MVT::i32, ++/*251815*/ OPC_MoveParent, ++/*251816*/ OPC_MoveChild, 14, ++/*251818*/ OPC_CheckInteger, 15, ++/*251820*/ OPC_CheckType, MVT::i32, ++/*251822*/ OPC_MoveParent, ++/*251823*/ OPC_MoveChild, 15, ++/*251825*/ OPC_CheckInteger, 15, ++/*251827*/ OPC_CheckType, MVT::i32, ++/*251829*/ OPC_MoveParent, ++/*251830*/ OPC_CheckType, MVT::v16i16, ++/*251832*/ OPC_MoveParent, ++/*251833*/ OPC_MoveParent, ++/*251834*/ OPC_MoveParent, ++/*251835*/ OPC_MoveChild1, ++/*251836*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*251839*/ OPC_CheckChild0Integer, 1, ++/*251841*/ OPC_CheckChild0Type, MVT::i32, ++/*251843*/ OPC_CheckChild1Integer, 1, ++/*251845*/ OPC_CheckChild1Type, MVT::i32, ++/*251847*/ OPC_CheckChild2Integer, 1, ++/*251849*/ OPC_CheckChild2Type, MVT::i32, ++/*251851*/ OPC_CheckChild3Integer, 1, ++/*251853*/ OPC_CheckChild3Type, MVT::i32, ++/*251855*/ OPC_CheckChild4Integer, 1, ++/*251857*/ OPC_CheckChild4Type, MVT::i32, ++/*251859*/ OPC_MoveChild5, ++/*251860*/ OPC_CheckInteger, 1, ++/*251862*/ OPC_CheckType, MVT::i32, ++/*251864*/ OPC_MoveParent, ++/*251865*/ OPC_MoveChild6, ++/*251866*/ OPC_CheckInteger, 1, ++/*251868*/ OPC_CheckType, MVT::i32, ++/*251870*/ OPC_MoveParent, ++/*251871*/ OPC_MoveChild7, ++/*251872*/ OPC_CheckInteger, 1, ++/*251874*/ OPC_CheckType, MVT::i32, ++/*251876*/ OPC_MoveParent, ++/*251877*/ OPC_MoveChild, 8, ++/*251879*/ OPC_CheckInteger, 1, ++/*251881*/ OPC_CheckType, MVT::i32, ++/*251883*/ OPC_MoveParent, ++/*251884*/ OPC_MoveChild, 9, ++/*251886*/ OPC_CheckInteger, 1, ++/*251888*/ OPC_CheckType, MVT::i32, ++/*251890*/ OPC_MoveParent, ++/*251891*/ OPC_MoveChild, 10, ++/*251893*/ OPC_CheckInteger, 1, ++/*251895*/ OPC_CheckType, MVT::i32, ++/*251897*/ OPC_MoveParent, ++/*251898*/ OPC_MoveChild, 11, ++/*251900*/ OPC_CheckInteger, 1, ++/*251902*/ OPC_CheckType, MVT::i32, ++/*251904*/ OPC_MoveParent, ++/*251905*/ OPC_MoveChild, 12, ++/*251907*/ OPC_CheckInteger, 1, ++/*251909*/ OPC_CheckType, MVT::i32, ++/*251911*/ OPC_MoveParent, ++/*251912*/ OPC_MoveChild, 13, ++/*251914*/ OPC_CheckInteger, 1, ++/*251916*/ OPC_CheckType, MVT::i32, ++/*251918*/ OPC_MoveParent, ++/*251919*/ OPC_MoveChild, 14, ++/*251921*/ OPC_CheckInteger, 1, ++/*251923*/ OPC_CheckType, MVT::i32, ++/*251925*/ OPC_MoveParent, ++/*251926*/ OPC_MoveChild, 15, ++/*251928*/ OPC_CheckInteger, 1, ++/*251930*/ OPC_CheckType, MVT::i32, ++/*251932*/ OPC_MoveParent, ++/*251933*/ OPC_CheckType, MVT::v16i16, ++/*251935*/ OPC_MoveParent, ++/*251936*/ OPC_CheckType, MVT::v16i16, ++/*251938*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*251940*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*251948*/ 0, /*End of Scope*/ ++/*251949*/ /*Scope*/ 10|128,5/*650*/, /*->252601*/ ++/*251951*/ OPC_CheckChild0Same, 0, ++/*251953*/ OPC_MoveChild1, ++/*251954*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*251957*/ OPC_Scope, 63|128,2/*319*/, /*->252279*/ // 2 children in Scope ++/*251960*/ OPC_MoveChild0, ++/*251961*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*251964*/ OPC_CheckChild0Integer, 1, ++/*251966*/ OPC_CheckChild0Type, MVT::i32, ++/*251968*/ OPC_CheckChild1Integer, 1, ++/*251970*/ OPC_CheckChild1Type, MVT::i32, ++/*251972*/ OPC_CheckChild2Integer, 1, ++/*251974*/ OPC_CheckChild2Type, MVT::i32, ++/*251976*/ OPC_CheckChild3Integer, 1, ++/*251978*/ OPC_CheckChild3Type, MVT::i32, ++/*251980*/ OPC_CheckChild4Integer, 1, ++/*251982*/ OPC_CheckChild4Type, MVT::i32, ++/*251984*/ OPC_MoveChild5, ++/*251985*/ OPC_CheckInteger, 1, ++/*251987*/ OPC_CheckType, MVT::i32, ++/*251989*/ OPC_MoveParent, ++/*251990*/ OPC_MoveChild6, ++/*251991*/ OPC_CheckInteger, 1, ++/*251993*/ OPC_CheckType, MVT::i32, ++/*251995*/ OPC_MoveParent, ++/*251996*/ OPC_MoveChild7, ++/*251997*/ OPC_CheckInteger, 1, ++/*251999*/ OPC_CheckType, MVT::i32, ++/*252001*/ OPC_MoveParent, ++/*252002*/ OPC_MoveChild, 8, ++/*252004*/ OPC_CheckInteger, 1, ++/*252006*/ OPC_CheckType, MVT::i32, ++/*252008*/ OPC_MoveParent, ++/*252009*/ OPC_MoveChild, 9, ++/*252011*/ OPC_CheckInteger, 1, ++/*252013*/ OPC_CheckType, MVT::i32, ++/*252015*/ OPC_MoveParent, ++/*252016*/ OPC_MoveChild, 10, ++/*252018*/ OPC_CheckInteger, 1, ++/*252020*/ OPC_CheckType, MVT::i32, ++/*252022*/ OPC_MoveParent, ++/*252023*/ OPC_MoveChild, 11, ++/*252025*/ OPC_CheckInteger, 1, ++/*252027*/ OPC_CheckType, MVT::i32, ++/*252029*/ OPC_MoveParent, ++/*252030*/ OPC_MoveChild, 12, ++/*252032*/ OPC_CheckInteger, 1, ++/*252034*/ OPC_CheckType, MVT::i32, ++/*252036*/ OPC_MoveParent, ++/*252037*/ OPC_MoveChild, 13, ++/*252039*/ OPC_CheckInteger, 1, ++/*252041*/ OPC_CheckType, MVT::i32, ++/*252043*/ OPC_MoveParent, ++/*252044*/ OPC_MoveChild, 14, ++/*252046*/ OPC_CheckInteger, 1, ++/*252048*/ OPC_CheckType, MVT::i32, ++/*252050*/ OPC_MoveParent, ++/*252051*/ OPC_MoveChild, 15, ++/*252053*/ OPC_CheckInteger, 1, ++/*252055*/ OPC_CheckType, MVT::i32, ++/*252057*/ OPC_MoveParent, ++/*252058*/ OPC_MoveParent, ++/*252059*/ OPC_CheckChild1Same, 1, ++/*252061*/ OPC_MoveParent, ++/*252062*/ OPC_MoveParent, ++/*252063*/ OPC_MoveChild1, ++/*252064*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*252067*/ OPC_CheckChild0Integer, 15, ++/*252069*/ OPC_CheckChild0Type, MVT::i32, ++/*252071*/ OPC_CheckChild1Integer, 15, ++/*252073*/ OPC_CheckChild1Type, MVT::i32, ++/*252075*/ OPC_CheckChild2Integer, 15, ++/*252077*/ OPC_CheckChild2Type, MVT::i32, ++/*252079*/ OPC_CheckChild3Integer, 15, ++/*252081*/ OPC_CheckChild3Type, MVT::i32, ++/*252083*/ OPC_CheckChild4Integer, 15, ++/*252085*/ OPC_CheckChild4Type, MVT::i32, ++/*252087*/ OPC_MoveChild5, ++/*252088*/ OPC_CheckInteger, 15, ++/*252090*/ OPC_CheckType, MVT::i32, ++/*252092*/ OPC_MoveParent, ++/*252093*/ OPC_MoveChild6, ++/*252094*/ OPC_CheckInteger, 15, ++/*252096*/ OPC_CheckType, MVT::i32, ++/*252098*/ OPC_MoveParent, ++/*252099*/ OPC_MoveChild7, ++/*252100*/ OPC_CheckInteger, 15, ++/*252102*/ OPC_CheckType, MVT::i32, ++/*252104*/ OPC_MoveParent, ++/*252105*/ OPC_MoveChild, 8, ++/*252107*/ OPC_CheckInteger, 15, ++/*252109*/ OPC_CheckType, MVT::i32, ++/*252111*/ OPC_MoveParent, ++/*252112*/ OPC_MoveChild, 9, ++/*252114*/ OPC_CheckInteger, 15, ++/*252116*/ OPC_CheckType, MVT::i32, ++/*252118*/ OPC_MoveParent, ++/*252119*/ OPC_MoveChild, 10, ++/*252121*/ OPC_CheckInteger, 15, ++/*252123*/ OPC_CheckType, MVT::i32, ++/*252125*/ OPC_MoveParent, ++/*252126*/ OPC_MoveChild, 11, ++/*252128*/ OPC_CheckInteger, 15, ++/*252130*/ OPC_CheckType, MVT::i32, ++/*252132*/ OPC_MoveParent, ++/*252133*/ OPC_MoveChild, 12, ++/*252135*/ OPC_CheckInteger, 15, ++/*252137*/ OPC_CheckType, MVT::i32, ++/*252139*/ OPC_MoveParent, ++/*252140*/ OPC_MoveChild, 13, ++/*252142*/ OPC_CheckInteger, 15, ++/*252144*/ OPC_CheckType, MVT::i32, ++/*252146*/ OPC_MoveParent, ++/*252147*/ OPC_MoveChild, 14, ++/*252149*/ OPC_CheckInteger, 15, ++/*252151*/ OPC_CheckType, MVT::i32, ++/*252153*/ OPC_MoveParent, ++/*252154*/ OPC_MoveChild, 15, ++/*252156*/ OPC_CheckInteger, 15, ++/*252158*/ OPC_CheckType, MVT::i32, ++/*252160*/ OPC_MoveParent, ++/*252161*/ OPC_CheckType, MVT::v16i16, ++/*252163*/ OPC_MoveParent, ++/*252164*/ OPC_MoveParent, ++/*252165*/ OPC_MoveParent, ++/*252166*/ OPC_MoveChild1, ++/*252167*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*252170*/ OPC_CheckChild0Integer, 1, ++/*252172*/ OPC_CheckChild0Type, MVT::i32, ++/*252174*/ OPC_CheckChild1Integer, 1, ++/*252176*/ OPC_CheckChild1Type, MVT::i32, ++/*252178*/ OPC_CheckChild2Integer, 1, ++/*252180*/ OPC_CheckChild2Type, MVT::i32, ++/*252182*/ OPC_CheckChild3Integer, 1, ++/*252184*/ OPC_CheckChild3Type, MVT::i32, ++/*252186*/ OPC_CheckChild4Integer, 1, ++/*252188*/ OPC_CheckChild4Type, MVT::i32, ++/*252190*/ OPC_MoveChild5, ++/*252191*/ OPC_CheckInteger, 1, ++/*252193*/ OPC_CheckType, MVT::i32, ++/*252195*/ OPC_MoveParent, ++/*252196*/ OPC_MoveChild6, ++/*252197*/ OPC_CheckInteger, 1, ++/*252199*/ OPC_CheckType, MVT::i32, ++/*252201*/ OPC_MoveParent, ++/*252202*/ OPC_MoveChild7, ++/*252203*/ OPC_CheckInteger, 1, ++/*252205*/ OPC_CheckType, MVT::i32, ++/*252207*/ OPC_MoveParent, ++/*252208*/ OPC_MoveChild, 8, ++/*252210*/ OPC_CheckInteger, 1, ++/*252212*/ OPC_CheckType, MVT::i32, ++/*252214*/ OPC_MoveParent, ++/*252215*/ OPC_MoveChild, 9, ++/*252217*/ OPC_CheckInteger, 1, ++/*252219*/ OPC_CheckType, MVT::i32, ++/*252221*/ OPC_MoveParent, ++/*252222*/ OPC_MoveChild, 10, ++/*252224*/ OPC_CheckInteger, 1, ++/*252226*/ OPC_CheckType, MVT::i32, ++/*252228*/ OPC_MoveParent, ++/*252229*/ OPC_MoveChild, 11, ++/*252231*/ OPC_CheckInteger, 1, ++/*252233*/ OPC_CheckType, MVT::i32, ++/*252235*/ OPC_MoveParent, ++/*252236*/ OPC_MoveChild, 12, ++/*252238*/ OPC_CheckInteger, 1, ++/*252240*/ OPC_CheckType, MVT::i32, ++/*252242*/ OPC_MoveParent, ++/*252243*/ OPC_MoveChild, 13, ++/*252245*/ OPC_CheckInteger, 1, ++/*252247*/ OPC_CheckType, MVT::i32, ++/*252249*/ OPC_MoveParent, ++/*252250*/ OPC_MoveChild, 14, ++/*252252*/ OPC_CheckInteger, 1, ++/*252254*/ OPC_CheckType, MVT::i32, ++/*252256*/ OPC_MoveParent, ++/*252257*/ OPC_MoveChild, 15, ++/*252259*/ OPC_CheckInteger, 1, ++/*252261*/ OPC_CheckType, MVT::i32, ++/*252263*/ OPC_MoveParent, ++/*252264*/ OPC_CheckType, MVT::v16i16, ++/*252266*/ OPC_MoveParent, ++/*252267*/ OPC_CheckType, MVT::v16i16, ++/*252269*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*252271*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*252279*/ /*Scope*/ 63|128,2/*319*/, /*->252600*/ ++/*252281*/ OPC_CheckChild0Same, 1, ++/*252283*/ OPC_MoveChild1, ++/*252284*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*252287*/ OPC_CheckChild0Integer, 1, ++/*252289*/ OPC_CheckChild0Type, MVT::i32, ++/*252291*/ OPC_CheckChild1Integer, 1, ++/*252293*/ OPC_CheckChild1Type, MVT::i32, ++/*252295*/ OPC_CheckChild2Integer, 1, ++/*252297*/ OPC_CheckChild2Type, MVT::i32, ++/*252299*/ OPC_CheckChild3Integer, 1, ++/*252301*/ OPC_CheckChild3Type, MVT::i32, ++/*252303*/ OPC_CheckChild4Integer, 1, ++/*252305*/ OPC_CheckChild4Type, MVT::i32, ++/*252307*/ OPC_MoveChild5, ++/*252308*/ OPC_CheckInteger, 1, ++/*252310*/ OPC_CheckType, MVT::i32, ++/*252312*/ OPC_MoveParent, ++/*252313*/ OPC_MoveChild6, ++/*252314*/ OPC_CheckInteger, 1, ++/*252316*/ OPC_CheckType, MVT::i32, ++/*252318*/ OPC_MoveParent, ++/*252319*/ OPC_MoveChild7, ++/*252320*/ OPC_CheckInteger, 1, ++/*252322*/ OPC_CheckType, MVT::i32, ++/*252324*/ OPC_MoveParent, ++/*252325*/ OPC_MoveChild, 8, ++/*252327*/ OPC_CheckInteger, 1, ++/*252329*/ OPC_CheckType, MVT::i32, ++/*252331*/ OPC_MoveParent, ++/*252332*/ OPC_MoveChild, 9, ++/*252334*/ OPC_CheckInteger, 1, ++/*252336*/ OPC_CheckType, MVT::i32, ++/*252338*/ OPC_MoveParent, ++/*252339*/ OPC_MoveChild, 10, ++/*252341*/ OPC_CheckInteger, 1, ++/*252343*/ OPC_CheckType, MVT::i32, ++/*252345*/ OPC_MoveParent, ++/*252346*/ OPC_MoveChild, 11, ++/*252348*/ OPC_CheckInteger, 1, ++/*252350*/ OPC_CheckType, MVT::i32, ++/*252352*/ OPC_MoveParent, ++/*252353*/ OPC_MoveChild, 12, ++/*252355*/ OPC_CheckInteger, 1, ++/*252357*/ OPC_CheckType, MVT::i32, ++/*252359*/ OPC_MoveParent, ++/*252360*/ OPC_MoveChild, 13, ++/*252362*/ OPC_CheckInteger, 1, ++/*252364*/ OPC_CheckType, MVT::i32, ++/*252366*/ OPC_MoveParent, ++/*252367*/ OPC_MoveChild, 14, ++/*252369*/ OPC_CheckInteger, 1, ++/*252371*/ OPC_CheckType, MVT::i32, ++/*252373*/ OPC_MoveParent, ++/*252374*/ OPC_MoveChild, 15, ++/*252376*/ OPC_CheckInteger, 1, ++/*252378*/ OPC_CheckType, MVT::i32, ++/*252380*/ OPC_MoveParent, ++/*252381*/ OPC_MoveParent, ++/*252382*/ OPC_MoveParent, ++/*252383*/ OPC_MoveParent, ++/*252384*/ OPC_MoveChild1, ++/*252385*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*252388*/ OPC_CheckChild0Integer, 15, ++/*252390*/ OPC_CheckChild0Type, MVT::i32, ++/*252392*/ OPC_CheckChild1Integer, 15, ++/*252394*/ OPC_CheckChild1Type, MVT::i32, ++/*252396*/ OPC_CheckChild2Integer, 15, ++/*252398*/ OPC_CheckChild2Type, MVT::i32, ++/*252400*/ OPC_CheckChild3Integer, 15, ++/*252402*/ OPC_CheckChild3Type, MVT::i32, ++/*252404*/ OPC_CheckChild4Integer, 15, ++/*252406*/ OPC_CheckChild4Type, MVT::i32, ++/*252408*/ OPC_MoveChild5, ++/*252409*/ OPC_CheckInteger, 15, ++/*252411*/ OPC_CheckType, MVT::i32, ++/*252413*/ OPC_MoveParent, ++/*252414*/ OPC_MoveChild6, ++/*252415*/ OPC_CheckInteger, 15, ++/*252417*/ OPC_CheckType, MVT::i32, ++/*252419*/ OPC_MoveParent, ++/*252420*/ OPC_MoveChild7, ++/*252421*/ OPC_CheckInteger, 15, ++/*252423*/ OPC_CheckType, MVT::i32, ++/*252425*/ OPC_MoveParent, ++/*252426*/ OPC_MoveChild, 8, ++/*252428*/ OPC_CheckInteger, 15, ++/*252430*/ OPC_CheckType, MVT::i32, ++/*252432*/ OPC_MoveParent, ++/*252433*/ OPC_MoveChild, 9, ++/*252435*/ OPC_CheckInteger, 15, ++/*252437*/ OPC_CheckType, MVT::i32, ++/*252439*/ OPC_MoveParent, ++/*252440*/ OPC_MoveChild, 10, ++/*252442*/ OPC_CheckInteger, 15, ++/*252444*/ OPC_CheckType, MVT::i32, ++/*252446*/ OPC_MoveParent, ++/*252447*/ OPC_MoveChild, 11, ++/*252449*/ OPC_CheckInteger, 15, ++/*252451*/ OPC_CheckType, MVT::i32, ++/*252453*/ OPC_MoveParent, ++/*252454*/ OPC_MoveChild, 12, ++/*252456*/ OPC_CheckInteger, 15, ++/*252458*/ OPC_CheckType, MVT::i32, ++/*252460*/ OPC_MoveParent, ++/*252461*/ OPC_MoveChild, 13, ++/*252463*/ OPC_CheckInteger, 15, ++/*252465*/ OPC_CheckType, MVT::i32, ++/*252467*/ OPC_MoveParent, ++/*252468*/ OPC_MoveChild, 14, ++/*252470*/ OPC_CheckInteger, 15, ++/*252472*/ OPC_CheckType, MVT::i32, ++/*252474*/ OPC_MoveParent, ++/*252475*/ OPC_MoveChild, 15, ++/*252477*/ OPC_CheckInteger, 15, ++/*252479*/ OPC_CheckType, MVT::i32, ++/*252481*/ OPC_MoveParent, ++/*252482*/ OPC_CheckType, MVT::v16i16, ++/*252484*/ OPC_MoveParent, ++/*252485*/ OPC_MoveParent, ++/*252486*/ OPC_MoveParent, ++/*252487*/ OPC_MoveChild1, ++/*252488*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*252491*/ OPC_CheckChild0Integer, 1, ++/*252493*/ OPC_CheckChild0Type, MVT::i32, ++/*252495*/ OPC_CheckChild1Integer, 1, ++/*252497*/ OPC_CheckChild1Type, MVT::i32, ++/*252499*/ OPC_CheckChild2Integer, 1, ++/*252501*/ OPC_CheckChild2Type, MVT::i32, ++/*252503*/ OPC_CheckChild3Integer, 1, ++/*252505*/ OPC_CheckChild3Type, MVT::i32, ++/*252507*/ OPC_CheckChild4Integer, 1, ++/*252509*/ OPC_CheckChild4Type, MVT::i32, ++/*252511*/ OPC_MoveChild5, ++/*252512*/ OPC_CheckInteger, 1, ++/*252514*/ OPC_CheckType, MVT::i32, ++/*252516*/ OPC_MoveParent, ++/*252517*/ OPC_MoveChild6, ++/*252518*/ OPC_CheckInteger, 1, ++/*252520*/ OPC_CheckType, MVT::i32, ++/*252522*/ OPC_MoveParent, ++/*252523*/ OPC_MoveChild7, ++/*252524*/ OPC_CheckInteger, 1, ++/*252526*/ OPC_CheckType, MVT::i32, ++/*252528*/ OPC_MoveParent, ++/*252529*/ OPC_MoveChild, 8, ++/*252531*/ OPC_CheckInteger, 1, ++/*252533*/ OPC_CheckType, MVT::i32, ++/*252535*/ OPC_MoveParent, ++/*252536*/ OPC_MoveChild, 9, ++/*252538*/ OPC_CheckInteger, 1, ++/*252540*/ OPC_CheckType, MVT::i32, ++/*252542*/ OPC_MoveParent, ++/*252543*/ OPC_MoveChild, 10, ++/*252545*/ OPC_CheckInteger, 1, ++/*252547*/ OPC_CheckType, MVT::i32, ++/*252549*/ OPC_MoveParent, ++/*252550*/ OPC_MoveChild, 11, ++/*252552*/ OPC_CheckInteger, 1, ++/*252554*/ OPC_CheckType, MVT::i32, ++/*252556*/ OPC_MoveParent, ++/*252557*/ OPC_MoveChild, 12, ++/*252559*/ OPC_CheckInteger, 1, ++/*252561*/ OPC_CheckType, MVT::i32, ++/*252563*/ OPC_MoveParent, ++/*252564*/ OPC_MoveChild, 13, ++/*252566*/ OPC_CheckInteger, 1, ++/*252568*/ OPC_CheckType, MVT::i32, ++/*252570*/ OPC_MoveParent, ++/*252571*/ OPC_MoveChild, 14, ++/*252573*/ OPC_CheckInteger, 1, ++/*252575*/ OPC_CheckType, MVT::i32, ++/*252577*/ OPC_MoveParent, ++/*252578*/ OPC_MoveChild, 15, ++/*252580*/ OPC_CheckInteger, 1, ++/*252582*/ OPC_CheckType, MVT::i32, ++/*252584*/ OPC_MoveParent, ++/*252585*/ OPC_CheckType, MVT::v16i16, ++/*252587*/ OPC_MoveParent, ++/*252588*/ OPC_CheckType, MVT::v16i16, ++/*252590*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*252592*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*252600*/ 0, /*End of Scope*/ ++/*252601*/ /*Scope*/ 10|128,5/*650*/, /*->253253*/ ++/*252603*/ OPC_CheckChild0Same, 1, ++/*252605*/ OPC_MoveChild1, ++/*252606*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*252609*/ OPC_Scope, 63|128,2/*319*/, /*->252931*/ // 2 children in Scope ++/*252612*/ OPC_MoveChild0, ++/*252613*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*252616*/ OPC_CheckChild0Integer, 1, ++/*252618*/ OPC_CheckChild0Type, MVT::i32, ++/*252620*/ OPC_CheckChild1Integer, 1, ++/*252622*/ OPC_CheckChild1Type, MVT::i32, ++/*252624*/ OPC_CheckChild2Integer, 1, ++/*252626*/ OPC_CheckChild2Type, MVT::i32, ++/*252628*/ OPC_CheckChild3Integer, 1, ++/*252630*/ OPC_CheckChild3Type, MVT::i32, ++/*252632*/ OPC_CheckChild4Integer, 1, ++/*252634*/ OPC_CheckChild4Type, MVT::i32, ++/*252636*/ OPC_MoveChild5, ++/*252637*/ OPC_CheckInteger, 1, ++/*252639*/ OPC_CheckType, MVT::i32, ++/*252641*/ OPC_MoveParent, ++/*252642*/ OPC_MoveChild6, ++/*252643*/ OPC_CheckInteger, 1, ++/*252645*/ OPC_CheckType, MVT::i32, ++/*252647*/ OPC_MoveParent, ++/*252648*/ OPC_MoveChild7, ++/*252649*/ OPC_CheckInteger, 1, ++/*252651*/ OPC_CheckType, MVT::i32, ++/*252653*/ OPC_MoveParent, ++/*252654*/ OPC_MoveChild, 8, ++/*252656*/ OPC_CheckInteger, 1, ++/*252658*/ OPC_CheckType, MVT::i32, ++/*252660*/ OPC_MoveParent, ++/*252661*/ OPC_MoveChild, 9, ++/*252663*/ OPC_CheckInteger, 1, ++/*252665*/ OPC_CheckType, MVT::i32, ++/*252667*/ OPC_MoveParent, ++/*252668*/ OPC_MoveChild, 10, ++/*252670*/ OPC_CheckInteger, 1, ++/*252672*/ OPC_CheckType, MVT::i32, ++/*252674*/ OPC_MoveParent, ++/*252675*/ OPC_MoveChild, 11, ++/*252677*/ OPC_CheckInteger, 1, ++/*252679*/ OPC_CheckType, MVT::i32, ++/*252681*/ OPC_MoveParent, ++/*252682*/ OPC_MoveChild, 12, ++/*252684*/ OPC_CheckInteger, 1, ++/*252686*/ OPC_CheckType, MVT::i32, ++/*252688*/ OPC_MoveParent, ++/*252689*/ OPC_MoveChild, 13, ++/*252691*/ OPC_CheckInteger, 1, ++/*252693*/ OPC_CheckType, MVT::i32, ++/*252695*/ OPC_MoveParent, ++/*252696*/ OPC_MoveChild, 14, ++/*252698*/ OPC_CheckInteger, 1, ++/*252700*/ OPC_CheckType, MVT::i32, ++/*252702*/ OPC_MoveParent, ++/*252703*/ OPC_MoveChild, 15, ++/*252705*/ OPC_CheckInteger, 1, ++/*252707*/ OPC_CheckType, MVT::i32, ++/*252709*/ OPC_MoveParent, ++/*252710*/ OPC_MoveParent, ++/*252711*/ OPC_CheckChild1Same, 0, ++/*252713*/ OPC_MoveParent, ++/*252714*/ OPC_MoveParent, ++/*252715*/ OPC_MoveChild1, ++/*252716*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*252719*/ OPC_CheckChild0Integer, 15, ++/*252721*/ OPC_CheckChild0Type, MVT::i32, ++/*252723*/ OPC_CheckChild1Integer, 15, ++/*252725*/ OPC_CheckChild1Type, MVT::i32, ++/*252727*/ OPC_CheckChild2Integer, 15, ++/*252729*/ OPC_CheckChild2Type, MVT::i32, ++/*252731*/ OPC_CheckChild3Integer, 15, ++/*252733*/ OPC_CheckChild3Type, MVT::i32, ++/*252735*/ OPC_CheckChild4Integer, 15, ++/*252737*/ OPC_CheckChild4Type, MVT::i32, ++/*252739*/ OPC_MoveChild5, ++/*252740*/ OPC_CheckInteger, 15, ++/*252742*/ OPC_CheckType, MVT::i32, ++/*252744*/ OPC_MoveParent, ++/*252745*/ OPC_MoveChild6, ++/*252746*/ OPC_CheckInteger, 15, ++/*252748*/ OPC_CheckType, MVT::i32, ++/*252750*/ OPC_MoveParent, ++/*252751*/ OPC_MoveChild7, ++/*252752*/ OPC_CheckInteger, 15, ++/*252754*/ OPC_CheckType, MVT::i32, ++/*252756*/ OPC_MoveParent, ++/*252757*/ OPC_MoveChild, 8, ++/*252759*/ OPC_CheckInteger, 15, ++/*252761*/ OPC_CheckType, MVT::i32, ++/*252763*/ OPC_MoveParent, ++/*252764*/ OPC_MoveChild, 9, ++/*252766*/ OPC_CheckInteger, 15, ++/*252768*/ OPC_CheckType, MVT::i32, ++/*252770*/ OPC_MoveParent, ++/*252771*/ OPC_MoveChild, 10, ++/*252773*/ OPC_CheckInteger, 15, ++/*252775*/ OPC_CheckType, MVT::i32, ++/*252777*/ OPC_MoveParent, ++/*252778*/ OPC_MoveChild, 11, ++/*252780*/ OPC_CheckInteger, 15, ++/*252782*/ OPC_CheckType, MVT::i32, ++/*252784*/ OPC_MoveParent, ++/*252785*/ OPC_MoveChild, 12, ++/*252787*/ OPC_CheckInteger, 15, ++/*252789*/ OPC_CheckType, MVT::i32, ++/*252791*/ OPC_MoveParent, ++/*252792*/ OPC_MoveChild, 13, ++/*252794*/ OPC_CheckInteger, 15, ++/*252796*/ OPC_CheckType, MVT::i32, ++/*252798*/ OPC_MoveParent, ++/*252799*/ OPC_MoveChild, 14, ++/*252801*/ OPC_CheckInteger, 15, ++/*252803*/ OPC_CheckType, MVT::i32, ++/*252805*/ OPC_MoveParent, ++/*252806*/ OPC_MoveChild, 15, ++/*252808*/ OPC_CheckInteger, 15, ++/*252810*/ OPC_CheckType, MVT::i32, ++/*252812*/ OPC_MoveParent, ++/*252813*/ OPC_CheckType, MVT::v16i16, ++/*252815*/ OPC_MoveParent, ++/*252816*/ OPC_MoveParent, ++/*252817*/ OPC_MoveParent, ++/*252818*/ OPC_MoveChild1, ++/*252819*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*252822*/ OPC_CheckChild0Integer, 1, ++/*252824*/ OPC_CheckChild0Type, MVT::i32, ++/*252826*/ OPC_CheckChild1Integer, 1, ++/*252828*/ OPC_CheckChild1Type, MVT::i32, ++/*252830*/ OPC_CheckChild2Integer, 1, ++/*252832*/ OPC_CheckChild2Type, MVT::i32, ++/*252834*/ OPC_CheckChild3Integer, 1, ++/*252836*/ OPC_CheckChild3Type, MVT::i32, ++/*252838*/ OPC_CheckChild4Integer, 1, ++/*252840*/ OPC_CheckChild4Type, MVT::i32, ++/*252842*/ OPC_MoveChild5, ++/*252843*/ OPC_CheckInteger, 1, ++/*252845*/ OPC_CheckType, MVT::i32, ++/*252847*/ OPC_MoveParent, ++/*252848*/ OPC_MoveChild6, ++/*252849*/ OPC_CheckInteger, 1, ++/*252851*/ OPC_CheckType, MVT::i32, ++/*252853*/ OPC_MoveParent, ++/*252854*/ OPC_MoveChild7, ++/*252855*/ OPC_CheckInteger, 1, ++/*252857*/ OPC_CheckType, MVT::i32, ++/*252859*/ OPC_MoveParent, ++/*252860*/ OPC_MoveChild, 8, ++/*252862*/ OPC_CheckInteger, 1, ++/*252864*/ OPC_CheckType, MVT::i32, ++/*252866*/ OPC_MoveParent, ++/*252867*/ OPC_MoveChild, 9, ++/*252869*/ OPC_CheckInteger, 1, ++/*252871*/ OPC_CheckType, MVT::i32, ++/*252873*/ OPC_MoveParent, ++/*252874*/ OPC_MoveChild, 10, ++/*252876*/ OPC_CheckInteger, 1, ++/*252878*/ OPC_CheckType, MVT::i32, ++/*252880*/ OPC_MoveParent, ++/*252881*/ OPC_MoveChild, 11, ++/*252883*/ OPC_CheckInteger, 1, ++/*252885*/ OPC_CheckType, MVT::i32, ++/*252887*/ OPC_MoveParent, ++/*252888*/ OPC_MoveChild, 12, ++/*252890*/ OPC_CheckInteger, 1, ++/*252892*/ OPC_CheckType, MVT::i32, ++/*252894*/ OPC_MoveParent, ++/*252895*/ OPC_MoveChild, 13, ++/*252897*/ OPC_CheckInteger, 1, ++/*252899*/ OPC_CheckType, MVT::i32, ++/*252901*/ OPC_MoveParent, ++/*252902*/ OPC_MoveChild, 14, ++/*252904*/ OPC_CheckInteger, 1, ++/*252906*/ OPC_CheckType, MVT::i32, ++/*252908*/ OPC_MoveParent, ++/*252909*/ OPC_MoveChild, 15, ++/*252911*/ OPC_CheckInteger, 1, ++/*252913*/ OPC_CheckType, MVT::i32, ++/*252915*/ OPC_MoveParent, ++/*252916*/ OPC_CheckType, MVT::v16i16, ++/*252918*/ OPC_MoveParent, ++/*252919*/ OPC_CheckType, MVT::v16i16, ++/*252921*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*252923*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*252931*/ /*Scope*/ 63|128,2/*319*/, /*->253252*/ ++/*252933*/ OPC_CheckChild0Same, 0, ++/*252935*/ OPC_MoveChild1, ++/*252936*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*252939*/ OPC_CheckChild0Integer, 1, ++/*252941*/ OPC_CheckChild0Type, MVT::i32, ++/*252943*/ OPC_CheckChild1Integer, 1, ++/*252945*/ OPC_CheckChild1Type, MVT::i32, ++/*252947*/ OPC_CheckChild2Integer, 1, ++/*252949*/ OPC_CheckChild2Type, MVT::i32, ++/*252951*/ OPC_CheckChild3Integer, 1, ++/*252953*/ OPC_CheckChild3Type, MVT::i32, ++/*252955*/ OPC_CheckChild4Integer, 1, ++/*252957*/ OPC_CheckChild4Type, MVT::i32, ++/*252959*/ OPC_MoveChild5, ++/*252960*/ OPC_CheckInteger, 1, ++/*252962*/ OPC_CheckType, MVT::i32, ++/*252964*/ OPC_MoveParent, ++/*252965*/ OPC_MoveChild6, ++/*252966*/ OPC_CheckInteger, 1, ++/*252968*/ OPC_CheckType, MVT::i32, ++/*252970*/ OPC_MoveParent, ++/*252971*/ OPC_MoveChild7, ++/*252972*/ OPC_CheckInteger, 1, ++/*252974*/ OPC_CheckType, MVT::i32, ++/*252976*/ OPC_MoveParent, ++/*252977*/ OPC_MoveChild, 8, ++/*252979*/ OPC_CheckInteger, 1, ++/*252981*/ OPC_CheckType, MVT::i32, ++/*252983*/ OPC_MoveParent, ++/*252984*/ OPC_MoveChild, 9, ++/*252986*/ OPC_CheckInteger, 1, ++/*252988*/ OPC_CheckType, MVT::i32, ++/*252990*/ OPC_MoveParent, ++/*252991*/ OPC_MoveChild, 10, ++/*252993*/ OPC_CheckInteger, 1, ++/*252995*/ OPC_CheckType, MVT::i32, ++/*252997*/ OPC_MoveParent, ++/*252998*/ OPC_MoveChild, 11, ++/*253000*/ OPC_CheckInteger, 1, ++/*253002*/ OPC_CheckType, MVT::i32, ++/*253004*/ OPC_MoveParent, ++/*253005*/ OPC_MoveChild, 12, ++/*253007*/ OPC_CheckInteger, 1, ++/*253009*/ OPC_CheckType, MVT::i32, ++/*253011*/ OPC_MoveParent, ++/*253012*/ OPC_MoveChild, 13, ++/*253014*/ OPC_CheckInteger, 1, ++/*253016*/ OPC_CheckType, MVT::i32, ++/*253018*/ OPC_MoveParent, ++/*253019*/ OPC_MoveChild, 14, ++/*253021*/ OPC_CheckInteger, 1, ++/*253023*/ OPC_CheckType, MVT::i32, ++/*253025*/ OPC_MoveParent, ++/*253026*/ OPC_MoveChild, 15, ++/*253028*/ OPC_CheckInteger, 1, ++/*253030*/ OPC_CheckType, MVT::i32, ++/*253032*/ OPC_MoveParent, ++/*253033*/ OPC_MoveParent, ++/*253034*/ OPC_MoveParent, ++/*253035*/ OPC_MoveParent, ++/*253036*/ OPC_MoveChild1, ++/*253037*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*253040*/ OPC_CheckChild0Integer, 15, ++/*253042*/ OPC_CheckChild0Type, MVT::i32, ++/*253044*/ OPC_CheckChild1Integer, 15, ++/*253046*/ OPC_CheckChild1Type, MVT::i32, ++/*253048*/ OPC_CheckChild2Integer, 15, ++/*253050*/ OPC_CheckChild2Type, MVT::i32, ++/*253052*/ OPC_CheckChild3Integer, 15, ++/*253054*/ OPC_CheckChild3Type, MVT::i32, ++/*253056*/ OPC_CheckChild4Integer, 15, ++/*253058*/ OPC_CheckChild4Type, MVT::i32, ++/*253060*/ OPC_MoveChild5, ++/*253061*/ OPC_CheckInteger, 15, ++/*253063*/ OPC_CheckType, MVT::i32, ++/*253065*/ OPC_MoveParent, ++/*253066*/ OPC_MoveChild6, ++/*253067*/ OPC_CheckInteger, 15, ++/*253069*/ OPC_CheckType, MVT::i32, ++/*253071*/ OPC_MoveParent, ++/*253072*/ OPC_MoveChild7, ++/*253073*/ OPC_CheckInteger, 15, ++/*253075*/ OPC_CheckType, MVT::i32, ++/*253077*/ OPC_MoveParent, ++/*253078*/ OPC_MoveChild, 8, ++/*253080*/ OPC_CheckInteger, 15, ++/*253082*/ OPC_CheckType, MVT::i32, ++/*253084*/ OPC_MoveParent, ++/*253085*/ OPC_MoveChild, 9, ++/*253087*/ OPC_CheckInteger, 15, ++/*253089*/ OPC_CheckType, MVT::i32, ++/*253091*/ OPC_MoveParent, ++/*253092*/ OPC_MoveChild, 10, ++/*253094*/ OPC_CheckInteger, 15, ++/*253096*/ OPC_CheckType, MVT::i32, ++/*253098*/ OPC_MoveParent, ++/*253099*/ OPC_MoveChild, 11, ++/*253101*/ OPC_CheckInteger, 15, ++/*253103*/ OPC_CheckType, MVT::i32, ++/*253105*/ OPC_MoveParent, ++/*253106*/ OPC_MoveChild, 12, ++/*253108*/ OPC_CheckInteger, 15, ++/*253110*/ OPC_CheckType, MVT::i32, ++/*253112*/ OPC_MoveParent, ++/*253113*/ OPC_MoveChild, 13, ++/*253115*/ OPC_CheckInteger, 15, ++/*253117*/ OPC_CheckType, MVT::i32, ++/*253119*/ OPC_MoveParent, ++/*253120*/ OPC_MoveChild, 14, ++/*253122*/ OPC_CheckInteger, 15, ++/*253124*/ OPC_CheckType, MVT::i32, ++/*253126*/ OPC_MoveParent, ++/*253127*/ OPC_MoveChild, 15, ++/*253129*/ OPC_CheckInteger, 15, ++/*253131*/ OPC_CheckType, MVT::i32, ++/*253133*/ OPC_MoveParent, ++/*253134*/ OPC_CheckType, MVT::v16i16, ++/*253136*/ OPC_MoveParent, ++/*253137*/ OPC_MoveParent, ++/*253138*/ OPC_MoveParent, ++/*253139*/ OPC_MoveChild1, ++/*253140*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*253143*/ OPC_CheckChild0Integer, 1, ++/*253145*/ OPC_CheckChild0Type, MVT::i32, ++/*253147*/ OPC_CheckChild1Integer, 1, ++/*253149*/ OPC_CheckChild1Type, MVT::i32, ++/*253151*/ OPC_CheckChild2Integer, 1, ++/*253153*/ OPC_CheckChild2Type, MVT::i32, ++/*253155*/ OPC_CheckChild3Integer, 1, ++/*253157*/ OPC_CheckChild3Type, MVT::i32, ++/*253159*/ OPC_CheckChild4Integer, 1, ++/*253161*/ OPC_CheckChild4Type, MVT::i32, ++/*253163*/ OPC_MoveChild5, ++/*253164*/ OPC_CheckInteger, 1, ++/*253166*/ OPC_CheckType, MVT::i32, ++/*253168*/ OPC_MoveParent, ++/*253169*/ OPC_MoveChild6, ++/*253170*/ OPC_CheckInteger, 1, ++/*253172*/ OPC_CheckType, MVT::i32, ++/*253174*/ OPC_MoveParent, ++/*253175*/ OPC_MoveChild7, ++/*253176*/ OPC_CheckInteger, 1, ++/*253178*/ OPC_CheckType, MVT::i32, ++/*253180*/ OPC_MoveParent, ++/*253181*/ OPC_MoveChild, 8, ++/*253183*/ OPC_CheckInteger, 1, ++/*253185*/ OPC_CheckType, MVT::i32, ++/*253187*/ OPC_MoveParent, ++/*253188*/ OPC_MoveChild, 9, ++/*253190*/ OPC_CheckInteger, 1, ++/*253192*/ OPC_CheckType, MVT::i32, ++/*253194*/ OPC_MoveParent, ++/*253195*/ OPC_MoveChild, 10, ++/*253197*/ OPC_CheckInteger, 1, ++/*253199*/ OPC_CheckType, MVT::i32, ++/*253201*/ OPC_MoveParent, ++/*253202*/ OPC_MoveChild, 11, ++/*253204*/ OPC_CheckInteger, 1, ++/*253206*/ OPC_CheckType, MVT::i32, ++/*253208*/ OPC_MoveParent, ++/*253209*/ OPC_MoveChild, 12, ++/*253211*/ OPC_CheckInteger, 1, ++/*253213*/ OPC_CheckType, MVT::i32, ++/*253215*/ OPC_MoveParent, ++/*253216*/ OPC_MoveChild, 13, ++/*253218*/ OPC_CheckInteger, 1, ++/*253220*/ OPC_CheckType, MVT::i32, ++/*253222*/ OPC_MoveParent, ++/*253223*/ OPC_MoveChild, 14, ++/*253225*/ OPC_CheckInteger, 1, ++/*253227*/ OPC_CheckType, MVT::i32, ++/*253229*/ OPC_MoveParent, ++/*253230*/ OPC_MoveChild, 15, ++/*253232*/ OPC_CheckInteger, 1, ++/*253234*/ OPC_CheckType, MVT::i32, ++/*253236*/ OPC_MoveParent, ++/*253237*/ OPC_CheckType, MVT::v16i16, ++/*253239*/ OPC_MoveParent, ++/*253240*/ OPC_CheckType, MVT::v16i16, ++/*253242*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*253244*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*253252*/ 0, /*End of Scope*/ ++/*253253*/ /*Scope*/ 41|128,4/*553*/, /*->253808*/ ++/*253255*/ OPC_MoveChild0, ++/*253256*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*253259*/ OPC_CheckChild0Integer, 1, ++/*253261*/ OPC_CheckChild0Type, MVT::i32, ++/*253263*/ OPC_CheckChild1Integer, 1, ++/*253265*/ OPC_CheckChild1Type, MVT::i32, ++/*253267*/ OPC_CheckChild2Integer, 1, ++/*253269*/ OPC_CheckChild2Type, MVT::i32, ++/*253271*/ OPC_CheckChild3Integer, 1, ++/*253273*/ OPC_CheckChild3Type, MVT::i32, ++/*253275*/ OPC_CheckChild4Integer, 1, ++/*253277*/ OPC_CheckChild4Type, MVT::i32, ++/*253279*/ OPC_MoveChild5, ++/*253280*/ OPC_CheckInteger, 1, ++/*253282*/ OPC_CheckType, MVT::i32, ++/*253284*/ OPC_MoveParent, ++/*253285*/ OPC_MoveChild6, ++/*253286*/ OPC_CheckInteger, 1, ++/*253288*/ OPC_CheckType, MVT::i32, ++/*253290*/ OPC_MoveParent, ++/*253291*/ OPC_MoveChild7, ++/*253292*/ OPC_CheckInteger, 1, ++/*253294*/ OPC_CheckType, MVT::i32, ++/*253296*/ OPC_MoveParent, ++/*253297*/ OPC_MoveChild, 8, ++/*253299*/ OPC_CheckInteger, 1, ++/*253301*/ OPC_CheckType, MVT::i32, ++/*253303*/ OPC_MoveParent, ++/*253304*/ OPC_MoveChild, 9, ++/*253306*/ OPC_CheckInteger, 1, ++/*253308*/ OPC_CheckType, MVT::i32, ++/*253310*/ OPC_MoveParent, ++/*253311*/ OPC_MoveChild, 10, ++/*253313*/ OPC_CheckInteger, 1, ++/*253315*/ OPC_CheckType, MVT::i32, ++/*253317*/ OPC_MoveParent, ++/*253318*/ OPC_MoveChild, 11, ++/*253320*/ OPC_CheckInteger, 1, ++/*253322*/ OPC_CheckType, MVT::i32, ++/*253324*/ OPC_MoveParent, ++/*253325*/ OPC_MoveChild, 12, ++/*253327*/ OPC_CheckInteger, 1, ++/*253329*/ OPC_CheckType, MVT::i32, ++/*253331*/ OPC_MoveParent, ++/*253332*/ OPC_MoveChild, 13, ++/*253334*/ OPC_CheckInteger, 1, ++/*253336*/ OPC_CheckType, MVT::i32, ++/*253338*/ OPC_MoveParent, ++/*253339*/ OPC_MoveChild, 14, ++/*253341*/ OPC_CheckInteger, 1, ++/*253343*/ OPC_CheckType, MVT::i32, ++/*253345*/ OPC_MoveParent, ++/*253346*/ OPC_MoveChild, 15, ++/*253348*/ OPC_CheckInteger, 1, ++/*253350*/ OPC_CheckType, MVT::i32, ++/*253352*/ OPC_MoveParent, ++/*253353*/ OPC_MoveParent, ++/*253354*/ OPC_MoveChild1, ++/*253355*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*253358*/ OPC_Scope, 94|128,1/*222*/, /*->253583*/ // 2 children in Scope ++/*253361*/ OPC_CheckChild0Same, 1, ++/*253363*/ OPC_CheckChild1Same, 0, ++/*253365*/ OPC_MoveParent, ++/*253366*/ OPC_MoveParent, ++/*253367*/ OPC_MoveChild1, ++/*253368*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*253371*/ OPC_CheckChild0Integer, 15, ++/*253373*/ OPC_CheckChild0Type, MVT::i32, ++/*253375*/ OPC_CheckChild1Integer, 15, ++/*253377*/ OPC_CheckChild1Type, MVT::i32, ++/*253379*/ OPC_CheckChild2Integer, 15, ++/*253381*/ OPC_CheckChild2Type, MVT::i32, ++/*253383*/ OPC_CheckChild3Integer, 15, ++/*253385*/ OPC_CheckChild3Type, MVT::i32, ++/*253387*/ OPC_CheckChild4Integer, 15, ++/*253389*/ OPC_CheckChild4Type, MVT::i32, ++/*253391*/ OPC_MoveChild5, ++/*253392*/ OPC_CheckInteger, 15, ++/*253394*/ OPC_CheckType, MVT::i32, ++/*253396*/ OPC_MoveParent, ++/*253397*/ OPC_MoveChild6, ++/*253398*/ OPC_CheckInteger, 15, ++/*253400*/ OPC_CheckType, MVT::i32, ++/*253402*/ OPC_MoveParent, ++/*253403*/ OPC_MoveChild7, ++/*253404*/ OPC_CheckInteger, 15, ++/*253406*/ OPC_CheckType, MVT::i32, ++/*253408*/ OPC_MoveParent, ++/*253409*/ OPC_MoveChild, 8, ++/*253411*/ OPC_CheckInteger, 15, ++/*253413*/ OPC_CheckType, MVT::i32, ++/*253415*/ OPC_MoveParent, ++/*253416*/ OPC_MoveChild, 9, ++/*253418*/ OPC_CheckInteger, 15, ++/*253420*/ OPC_CheckType, MVT::i32, ++/*253422*/ OPC_MoveParent, ++/*253423*/ OPC_MoveChild, 10, ++/*253425*/ OPC_CheckInteger, 15, ++/*253427*/ OPC_CheckType, MVT::i32, ++/*253429*/ OPC_MoveParent, ++/*253430*/ OPC_MoveChild, 11, ++/*253432*/ OPC_CheckInteger, 15, ++/*253434*/ OPC_CheckType, MVT::i32, ++/*253436*/ OPC_MoveParent, ++/*253437*/ OPC_MoveChild, 12, ++/*253439*/ OPC_CheckInteger, 15, ++/*253441*/ OPC_CheckType, MVT::i32, ++/*253443*/ OPC_MoveParent, ++/*253444*/ OPC_MoveChild, 13, ++/*253446*/ OPC_CheckInteger, 15, ++/*253448*/ OPC_CheckType, MVT::i32, ++/*253450*/ OPC_MoveParent, ++/*253451*/ OPC_MoveChild, 14, ++/*253453*/ OPC_CheckInteger, 15, ++/*253455*/ OPC_CheckType, MVT::i32, ++/*253457*/ OPC_MoveParent, ++/*253458*/ OPC_MoveChild, 15, ++/*253460*/ OPC_CheckInteger, 15, ++/*253462*/ OPC_CheckType, MVT::i32, ++/*253464*/ OPC_MoveParent, ++/*253465*/ OPC_CheckType, MVT::v16i16, ++/*253467*/ OPC_MoveParent, ++/*253468*/ OPC_MoveParent, ++/*253469*/ OPC_MoveParent, ++/*253470*/ OPC_MoveChild1, ++/*253471*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*253474*/ OPC_CheckChild0Integer, 1, ++/*253476*/ OPC_CheckChild0Type, MVT::i32, ++/*253478*/ OPC_CheckChild1Integer, 1, ++/*253480*/ OPC_CheckChild1Type, MVT::i32, ++/*253482*/ OPC_CheckChild2Integer, 1, ++/*253484*/ OPC_CheckChild2Type, MVT::i32, ++/*253486*/ OPC_CheckChild3Integer, 1, ++/*253488*/ OPC_CheckChild3Type, MVT::i32, ++/*253490*/ OPC_CheckChild4Integer, 1, ++/*253492*/ OPC_CheckChild4Type, MVT::i32, ++/*253494*/ OPC_MoveChild5, ++/*253495*/ OPC_CheckInteger, 1, ++/*253497*/ OPC_CheckType, MVT::i32, ++/*253499*/ OPC_MoveParent, ++/*253500*/ OPC_MoveChild6, ++/*253501*/ OPC_CheckInteger, 1, ++/*253503*/ OPC_CheckType, MVT::i32, ++/*253505*/ OPC_MoveParent, ++/*253506*/ OPC_MoveChild7, ++/*253507*/ OPC_CheckInteger, 1, ++/*253509*/ OPC_CheckType, MVT::i32, ++/*253511*/ OPC_MoveParent, ++/*253512*/ OPC_MoveChild, 8, ++/*253514*/ OPC_CheckInteger, 1, ++/*253516*/ OPC_CheckType, MVT::i32, ++/*253518*/ OPC_MoveParent, ++/*253519*/ OPC_MoveChild, 9, ++/*253521*/ OPC_CheckInteger, 1, ++/*253523*/ OPC_CheckType, MVT::i32, ++/*253525*/ OPC_MoveParent, ++/*253526*/ OPC_MoveChild, 10, ++/*253528*/ OPC_CheckInteger, 1, ++/*253530*/ OPC_CheckType, MVT::i32, ++/*253532*/ OPC_MoveParent, ++/*253533*/ OPC_MoveChild, 11, ++/*253535*/ OPC_CheckInteger, 1, ++/*253537*/ OPC_CheckType, MVT::i32, ++/*253539*/ OPC_MoveParent, ++/*253540*/ OPC_MoveChild, 12, ++/*253542*/ OPC_CheckInteger, 1, ++/*253544*/ OPC_CheckType, MVT::i32, ++/*253546*/ OPC_MoveParent, ++/*253547*/ OPC_MoveChild, 13, ++/*253549*/ OPC_CheckInteger, 1, ++/*253551*/ OPC_CheckType, MVT::i32, ++/*253553*/ OPC_MoveParent, ++/*253554*/ OPC_MoveChild, 14, ++/*253556*/ OPC_CheckInteger, 1, ++/*253558*/ OPC_CheckType, MVT::i32, ++/*253560*/ OPC_MoveParent, ++/*253561*/ OPC_MoveChild, 15, ++/*253563*/ OPC_CheckInteger, 1, ++/*253565*/ OPC_CheckType, MVT::i32, ++/*253567*/ OPC_MoveParent, ++/*253568*/ OPC_CheckType, MVT::v16i16, ++/*253570*/ OPC_MoveParent, ++/*253571*/ OPC_CheckType, MVT::v16i16, ++/*253573*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*253575*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*253583*/ /*Scope*/ 94|128,1/*222*/, /*->253807*/ ++/*253585*/ OPC_CheckChild0Same, 0, ++/*253587*/ OPC_CheckChild1Same, 1, ++/*253589*/ OPC_MoveParent, ++/*253590*/ OPC_MoveParent, ++/*253591*/ OPC_MoveChild1, ++/*253592*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*253595*/ OPC_CheckChild0Integer, 15, ++/*253597*/ OPC_CheckChild0Type, MVT::i32, ++/*253599*/ OPC_CheckChild1Integer, 15, ++/*253601*/ OPC_CheckChild1Type, MVT::i32, ++/*253603*/ OPC_CheckChild2Integer, 15, ++/*253605*/ OPC_CheckChild2Type, MVT::i32, ++/*253607*/ OPC_CheckChild3Integer, 15, ++/*253609*/ OPC_CheckChild3Type, MVT::i32, ++/*253611*/ OPC_CheckChild4Integer, 15, ++/*253613*/ OPC_CheckChild4Type, MVT::i32, ++/*253615*/ OPC_MoveChild5, ++/*253616*/ OPC_CheckInteger, 15, ++/*253618*/ OPC_CheckType, MVT::i32, ++/*253620*/ OPC_MoveParent, ++/*253621*/ OPC_MoveChild6, ++/*253622*/ OPC_CheckInteger, 15, ++/*253624*/ OPC_CheckType, MVT::i32, ++/*253626*/ OPC_MoveParent, ++/*253627*/ OPC_MoveChild7, ++/*253628*/ OPC_CheckInteger, 15, ++/*253630*/ OPC_CheckType, MVT::i32, ++/*253632*/ OPC_MoveParent, ++/*253633*/ OPC_MoveChild, 8, ++/*253635*/ OPC_CheckInteger, 15, ++/*253637*/ OPC_CheckType, MVT::i32, ++/*253639*/ OPC_MoveParent, ++/*253640*/ OPC_MoveChild, 9, ++/*253642*/ OPC_CheckInteger, 15, ++/*253644*/ OPC_CheckType, MVT::i32, ++/*253646*/ OPC_MoveParent, ++/*253647*/ OPC_MoveChild, 10, ++/*253649*/ OPC_CheckInteger, 15, ++/*253651*/ OPC_CheckType, MVT::i32, ++/*253653*/ OPC_MoveParent, ++/*253654*/ OPC_MoveChild, 11, ++/*253656*/ OPC_CheckInteger, 15, ++/*253658*/ OPC_CheckType, MVT::i32, ++/*253660*/ OPC_MoveParent, ++/*253661*/ OPC_MoveChild, 12, ++/*253663*/ OPC_CheckInteger, 15, ++/*253665*/ OPC_CheckType, MVT::i32, ++/*253667*/ OPC_MoveParent, ++/*253668*/ OPC_MoveChild, 13, ++/*253670*/ OPC_CheckInteger, 15, ++/*253672*/ OPC_CheckType, MVT::i32, ++/*253674*/ OPC_MoveParent, ++/*253675*/ OPC_MoveChild, 14, ++/*253677*/ OPC_CheckInteger, 15, ++/*253679*/ OPC_CheckType, MVT::i32, ++/*253681*/ OPC_MoveParent, ++/*253682*/ OPC_MoveChild, 15, ++/*253684*/ OPC_CheckInteger, 15, ++/*253686*/ OPC_CheckType, MVT::i32, ++/*253688*/ OPC_MoveParent, ++/*253689*/ OPC_CheckType, MVT::v16i16, ++/*253691*/ OPC_MoveParent, ++/*253692*/ OPC_MoveParent, ++/*253693*/ OPC_MoveParent, ++/*253694*/ OPC_MoveChild1, ++/*253695*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*253698*/ OPC_CheckChild0Integer, 1, ++/*253700*/ OPC_CheckChild0Type, MVT::i32, ++/*253702*/ OPC_CheckChild1Integer, 1, ++/*253704*/ OPC_CheckChild1Type, MVT::i32, ++/*253706*/ OPC_CheckChild2Integer, 1, ++/*253708*/ OPC_CheckChild2Type, MVT::i32, ++/*253710*/ OPC_CheckChild3Integer, 1, ++/*253712*/ OPC_CheckChild3Type, MVT::i32, ++/*253714*/ OPC_CheckChild4Integer, 1, ++/*253716*/ OPC_CheckChild4Type, MVT::i32, ++/*253718*/ OPC_MoveChild5, ++/*253719*/ OPC_CheckInteger, 1, ++/*253721*/ OPC_CheckType, MVT::i32, ++/*253723*/ OPC_MoveParent, ++/*253724*/ OPC_MoveChild6, ++/*253725*/ OPC_CheckInteger, 1, ++/*253727*/ OPC_CheckType, MVT::i32, ++/*253729*/ OPC_MoveParent, ++/*253730*/ OPC_MoveChild7, ++/*253731*/ OPC_CheckInteger, 1, ++/*253733*/ OPC_CheckType, MVT::i32, ++/*253735*/ OPC_MoveParent, ++/*253736*/ OPC_MoveChild, 8, ++/*253738*/ OPC_CheckInteger, 1, ++/*253740*/ OPC_CheckType, MVT::i32, ++/*253742*/ OPC_MoveParent, ++/*253743*/ OPC_MoveChild, 9, ++/*253745*/ OPC_CheckInteger, 1, ++/*253747*/ OPC_CheckType, MVT::i32, ++/*253749*/ OPC_MoveParent, ++/*253750*/ OPC_MoveChild, 10, ++/*253752*/ OPC_CheckInteger, 1, ++/*253754*/ OPC_CheckType, MVT::i32, ++/*253756*/ OPC_MoveParent, ++/*253757*/ OPC_MoveChild, 11, ++/*253759*/ OPC_CheckInteger, 1, ++/*253761*/ OPC_CheckType, MVT::i32, ++/*253763*/ OPC_MoveParent, ++/*253764*/ OPC_MoveChild, 12, ++/*253766*/ OPC_CheckInteger, 1, ++/*253768*/ OPC_CheckType, MVT::i32, ++/*253770*/ OPC_MoveParent, ++/*253771*/ OPC_MoveChild, 13, ++/*253773*/ OPC_CheckInteger, 1, ++/*253775*/ OPC_CheckType, MVT::i32, ++/*253777*/ OPC_MoveParent, ++/*253778*/ OPC_MoveChild, 14, ++/*253780*/ OPC_CheckInteger, 1, ++/*253782*/ OPC_CheckType, MVT::i32, ++/*253784*/ OPC_MoveParent, ++/*253785*/ OPC_MoveChild, 15, ++/*253787*/ OPC_CheckInteger, 1, ++/*253789*/ OPC_CheckType, MVT::i32, ++/*253791*/ OPC_MoveParent, ++/*253792*/ OPC_CheckType, MVT::v16i16, ++/*253794*/ OPC_MoveParent, ++/*253795*/ OPC_CheckType, MVT::v16i16, ++/*253797*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*253799*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*253807*/ 0, /*End of Scope*/ ++/*253808*/ 0, /*End of Scope*/ ++/*253809*/ /*Scope*/ 77|128,30/*3917*/, /*->257728*/ ++/*253811*/ OPC_MoveChild0, ++/*253812*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*253815*/ OPC_CheckChild0Integer, 1, ++/*253817*/ OPC_CheckChild0Type, MVT::i32, ++/*253819*/ OPC_CheckChild1Integer, 1, ++/*253821*/ OPC_CheckChild1Type, MVT::i32, ++/*253823*/ OPC_CheckChild2Integer, 1, ++/*253825*/ OPC_CheckChild2Type, MVT::i32, ++/*253827*/ OPC_CheckChild3Integer, 1, ++/*253829*/ OPC_CheckChild3Type, MVT::i32, ++/*253831*/ OPC_CheckChild4Integer, 1, ++/*253833*/ OPC_CheckChild4Type, MVT::i32, ++/*253835*/ OPC_MoveChild5, ++/*253836*/ OPC_CheckInteger, 1, ++/*253838*/ OPC_CheckType, MVT::i32, ++/*253840*/ OPC_MoveParent, ++/*253841*/ OPC_MoveChild6, ++/*253842*/ OPC_CheckInteger, 1, ++/*253844*/ OPC_CheckType, MVT::i32, ++/*253846*/ OPC_MoveParent, ++/*253847*/ OPC_MoveChild7, ++/*253848*/ OPC_CheckInteger, 1, ++/*253850*/ OPC_CheckType, MVT::i32, ++/*253852*/ OPC_MoveParent, ++/*253853*/ OPC_MoveChild, 8, ++/*253855*/ OPC_CheckInteger, 1, ++/*253857*/ OPC_CheckType, MVT::i32, ++/*253859*/ OPC_MoveParent, ++/*253860*/ OPC_MoveChild, 9, ++/*253862*/ OPC_CheckInteger, 1, ++/*253864*/ OPC_CheckType, MVT::i32, ++/*253866*/ OPC_MoveParent, ++/*253867*/ OPC_MoveChild, 10, ++/*253869*/ OPC_CheckInteger, 1, ++/*253871*/ OPC_CheckType, MVT::i32, ++/*253873*/ OPC_MoveParent, ++/*253874*/ OPC_MoveChild, 11, ++/*253876*/ OPC_CheckInteger, 1, ++/*253878*/ OPC_CheckType, MVT::i32, ++/*253880*/ OPC_MoveParent, ++/*253881*/ OPC_MoveChild, 12, ++/*253883*/ OPC_CheckInteger, 1, ++/*253885*/ OPC_CheckType, MVT::i32, ++/*253887*/ OPC_MoveParent, ++/*253888*/ OPC_MoveChild, 13, ++/*253890*/ OPC_CheckInteger, 1, ++/*253892*/ OPC_CheckType, MVT::i32, ++/*253894*/ OPC_MoveParent, ++/*253895*/ OPC_MoveChild, 14, ++/*253897*/ OPC_CheckInteger, 1, ++/*253899*/ OPC_CheckType, MVT::i32, ++/*253901*/ OPC_MoveParent, ++/*253902*/ OPC_MoveChild, 15, ++/*253904*/ OPC_CheckInteger, 1, ++/*253906*/ OPC_CheckType, MVT::i32, ++/*253908*/ OPC_MoveParent, ++/*253909*/ OPC_MoveParent, ++/*253910*/ OPC_RecordChild1, // #1 = $b ++/*253911*/ OPC_MoveParent, ++/*253912*/ OPC_MoveParent, ++/*253913*/ OPC_MoveChild1, ++/*253914*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*253917*/ OPC_MoveChild0, ++/*253918*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*253921*/ OPC_Scope, 24|128,15/*1944*/, /*->255868*/ // 4 children in Scope ++/*253924*/ OPC_MoveChild0, ++/*253925*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*253928*/ OPC_Scope, 65|128,2/*321*/, /*->254252*/ // 6 children in Scope ++/*253931*/ OPC_MoveChild0, ++/*253932*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*253935*/ OPC_CheckChild0Integer, 1, ++/*253937*/ OPC_CheckChild0Type, MVT::i32, ++/*253939*/ OPC_CheckChild1Integer, 1, ++/*253941*/ OPC_CheckChild1Type, MVT::i32, ++/*253943*/ OPC_CheckChild2Integer, 1, ++/*253945*/ OPC_CheckChild2Type, MVT::i32, ++/*253947*/ OPC_CheckChild3Integer, 1, ++/*253949*/ OPC_CheckChild3Type, MVT::i32, ++/*253951*/ OPC_CheckChild4Integer, 1, ++/*253953*/ OPC_CheckChild4Type, MVT::i32, ++/*253955*/ OPC_MoveChild5, ++/*253956*/ OPC_CheckInteger, 1, ++/*253958*/ OPC_CheckType, MVT::i32, ++/*253960*/ OPC_MoveParent, ++/*253961*/ OPC_MoveChild6, ++/*253962*/ OPC_CheckInteger, 1, ++/*253964*/ OPC_CheckType, MVT::i32, ++/*253966*/ OPC_MoveParent, ++/*253967*/ OPC_MoveChild7, ++/*253968*/ OPC_CheckInteger, 1, ++/*253970*/ OPC_CheckType, MVT::i32, ++/*253972*/ OPC_MoveParent, ++/*253973*/ OPC_MoveChild, 8, ++/*253975*/ OPC_CheckInteger, 1, ++/*253977*/ OPC_CheckType, MVT::i32, ++/*253979*/ OPC_MoveParent, ++/*253980*/ OPC_MoveChild, 9, ++/*253982*/ OPC_CheckInteger, 1, ++/*253984*/ OPC_CheckType, MVT::i32, ++/*253986*/ OPC_MoveParent, ++/*253987*/ OPC_MoveChild, 10, ++/*253989*/ OPC_CheckInteger, 1, ++/*253991*/ OPC_CheckType, MVT::i32, ++/*253993*/ OPC_MoveParent, ++/*253994*/ OPC_MoveChild, 11, ++/*253996*/ OPC_CheckInteger, 1, ++/*253998*/ OPC_CheckType, MVT::i32, ++/*254000*/ OPC_MoveParent, ++/*254001*/ OPC_MoveChild, 12, ++/*254003*/ OPC_CheckInteger, 1, ++/*254005*/ OPC_CheckType, MVT::i32, ++/*254007*/ OPC_MoveParent, ++/*254008*/ OPC_MoveChild, 13, ++/*254010*/ OPC_CheckInteger, 1, ++/*254012*/ OPC_CheckType, MVT::i32, ++/*254014*/ OPC_MoveParent, ++/*254015*/ OPC_MoveChild, 14, ++/*254017*/ OPC_CheckInteger, 1, ++/*254019*/ OPC_CheckType, MVT::i32, ++/*254021*/ OPC_MoveParent, ++/*254022*/ OPC_MoveChild, 15, ++/*254024*/ OPC_CheckInteger, 1, ++/*254026*/ OPC_CheckType, MVT::i32, ++/*254028*/ OPC_MoveParent, ++/*254029*/ OPC_MoveParent, ++/*254030*/ OPC_CheckChild1Same, 0, ++/*254032*/ OPC_MoveParent, ++/*254033*/ OPC_CheckChild1Same, 1, ++/*254035*/ OPC_MoveParent, ++/*254036*/ OPC_MoveChild1, ++/*254037*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*254040*/ OPC_CheckChild0Integer, 15, ++/*254042*/ OPC_CheckChild0Type, MVT::i32, ++/*254044*/ OPC_CheckChild1Integer, 15, ++/*254046*/ OPC_CheckChild1Type, MVT::i32, ++/*254048*/ OPC_CheckChild2Integer, 15, ++/*254050*/ OPC_CheckChild2Type, MVT::i32, ++/*254052*/ OPC_CheckChild3Integer, 15, ++/*254054*/ OPC_CheckChild3Type, MVT::i32, ++/*254056*/ OPC_CheckChild4Integer, 15, ++/*254058*/ OPC_CheckChild4Type, MVT::i32, ++/*254060*/ OPC_MoveChild5, ++/*254061*/ OPC_CheckInteger, 15, ++/*254063*/ OPC_CheckType, MVT::i32, ++/*254065*/ OPC_MoveParent, ++/*254066*/ OPC_MoveChild6, ++/*254067*/ OPC_CheckInteger, 15, ++/*254069*/ OPC_CheckType, MVT::i32, ++/*254071*/ OPC_MoveParent, ++/*254072*/ OPC_MoveChild7, ++/*254073*/ OPC_CheckInteger, 15, ++/*254075*/ OPC_CheckType, MVT::i32, ++/*254077*/ OPC_MoveParent, ++/*254078*/ OPC_MoveChild, 8, ++/*254080*/ OPC_CheckInteger, 15, ++/*254082*/ OPC_CheckType, MVT::i32, ++/*254084*/ OPC_MoveParent, ++/*254085*/ OPC_MoveChild, 9, ++/*254087*/ OPC_CheckInteger, 15, ++/*254089*/ OPC_CheckType, MVT::i32, ++/*254091*/ OPC_MoveParent, ++/*254092*/ OPC_MoveChild, 10, ++/*254094*/ OPC_CheckInteger, 15, ++/*254096*/ OPC_CheckType, MVT::i32, ++/*254098*/ OPC_MoveParent, ++/*254099*/ OPC_MoveChild, 11, ++/*254101*/ OPC_CheckInteger, 15, ++/*254103*/ OPC_CheckType, MVT::i32, ++/*254105*/ OPC_MoveParent, ++/*254106*/ OPC_MoveChild, 12, ++/*254108*/ OPC_CheckInteger, 15, ++/*254110*/ OPC_CheckType, MVT::i32, ++/*254112*/ OPC_MoveParent, ++/*254113*/ OPC_MoveChild, 13, ++/*254115*/ OPC_CheckInteger, 15, ++/*254117*/ OPC_CheckType, MVT::i32, ++/*254119*/ OPC_MoveParent, ++/*254120*/ OPC_MoveChild, 14, ++/*254122*/ OPC_CheckInteger, 15, ++/*254124*/ OPC_CheckType, MVT::i32, ++/*254126*/ OPC_MoveParent, ++/*254127*/ OPC_MoveChild, 15, ++/*254129*/ OPC_CheckInteger, 15, ++/*254131*/ OPC_CheckType, MVT::i32, ++/*254133*/ OPC_MoveParent, ++/*254134*/ OPC_CheckType, MVT::v16i16, ++/*254136*/ OPC_MoveParent, ++/*254137*/ OPC_MoveParent, ++/*254138*/ OPC_MoveParent, ++/*254139*/ OPC_MoveChild1, ++/*254140*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*254143*/ OPC_CheckChild0Integer, 1, ++/*254145*/ OPC_CheckChild0Type, MVT::i32, ++/*254147*/ OPC_CheckChild1Integer, 1, ++/*254149*/ OPC_CheckChild1Type, MVT::i32, ++/*254151*/ OPC_CheckChild2Integer, 1, ++/*254153*/ OPC_CheckChild2Type, MVT::i32, ++/*254155*/ OPC_CheckChild3Integer, 1, ++/*254157*/ OPC_CheckChild3Type, MVT::i32, ++/*254159*/ OPC_CheckChild4Integer, 1, ++/*254161*/ OPC_CheckChild4Type, MVT::i32, ++/*254163*/ OPC_MoveChild5, ++/*254164*/ OPC_CheckInteger, 1, ++/*254166*/ OPC_CheckType, MVT::i32, ++/*254168*/ OPC_MoveParent, ++/*254169*/ OPC_MoveChild6, ++/*254170*/ OPC_CheckInteger, 1, ++/*254172*/ OPC_CheckType, MVT::i32, ++/*254174*/ OPC_MoveParent, ++/*254175*/ OPC_MoveChild7, ++/*254176*/ OPC_CheckInteger, 1, ++/*254178*/ OPC_CheckType, MVT::i32, ++/*254180*/ OPC_MoveParent, ++/*254181*/ OPC_MoveChild, 8, ++/*254183*/ OPC_CheckInteger, 1, ++/*254185*/ OPC_CheckType, MVT::i32, ++/*254187*/ OPC_MoveParent, ++/*254188*/ OPC_MoveChild, 9, ++/*254190*/ OPC_CheckInteger, 1, ++/*254192*/ OPC_CheckType, MVT::i32, ++/*254194*/ OPC_MoveParent, ++/*254195*/ OPC_MoveChild, 10, ++/*254197*/ OPC_CheckInteger, 1, ++/*254199*/ OPC_CheckType, MVT::i32, ++/*254201*/ OPC_MoveParent, ++/*254202*/ OPC_MoveChild, 11, ++/*254204*/ OPC_CheckInteger, 1, ++/*254206*/ OPC_CheckType, MVT::i32, ++/*254208*/ OPC_MoveParent, ++/*254209*/ OPC_MoveChild, 12, ++/*254211*/ OPC_CheckInteger, 1, ++/*254213*/ OPC_CheckType, MVT::i32, ++/*254215*/ OPC_MoveParent, ++/*254216*/ OPC_MoveChild, 13, ++/*254218*/ OPC_CheckInteger, 1, ++/*254220*/ OPC_CheckType, MVT::i32, ++/*254222*/ OPC_MoveParent, ++/*254223*/ OPC_MoveChild, 14, ++/*254225*/ OPC_CheckInteger, 1, ++/*254227*/ OPC_CheckType, MVT::i32, ++/*254229*/ OPC_MoveParent, ++/*254230*/ OPC_MoveChild, 15, ++/*254232*/ OPC_CheckInteger, 1, ++/*254234*/ OPC_CheckType, MVT::i32, ++/*254236*/ OPC_MoveParent, ++/*254237*/ OPC_CheckType, MVT::v16i16, ++/*254239*/ OPC_MoveParent, ++/*254240*/ OPC_CheckType, MVT::v16i16, ++/*254242*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*254244*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b)), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a), LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*254252*/ /*Scope*/ 65|128,2/*321*/, /*->254575*/ ++/*254254*/ OPC_CheckChild0Same, 0, ++/*254256*/ OPC_MoveChild1, ++/*254257*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*254260*/ OPC_CheckChild0Integer, 1, ++/*254262*/ OPC_CheckChild0Type, MVT::i32, ++/*254264*/ OPC_CheckChild1Integer, 1, ++/*254266*/ OPC_CheckChild1Type, MVT::i32, ++/*254268*/ OPC_CheckChild2Integer, 1, ++/*254270*/ OPC_CheckChild2Type, MVT::i32, ++/*254272*/ OPC_CheckChild3Integer, 1, ++/*254274*/ OPC_CheckChild3Type, MVT::i32, ++/*254276*/ OPC_CheckChild4Integer, 1, ++/*254278*/ OPC_CheckChild4Type, MVT::i32, ++/*254280*/ OPC_MoveChild5, ++/*254281*/ OPC_CheckInteger, 1, ++/*254283*/ OPC_CheckType, MVT::i32, ++/*254285*/ OPC_MoveParent, ++/*254286*/ OPC_MoveChild6, ++/*254287*/ OPC_CheckInteger, 1, ++/*254289*/ OPC_CheckType, MVT::i32, ++/*254291*/ OPC_MoveParent, ++/*254292*/ OPC_MoveChild7, ++/*254293*/ OPC_CheckInteger, 1, ++/*254295*/ OPC_CheckType, MVT::i32, ++/*254297*/ OPC_MoveParent, ++/*254298*/ OPC_MoveChild, 8, ++/*254300*/ OPC_CheckInteger, 1, ++/*254302*/ OPC_CheckType, MVT::i32, ++/*254304*/ OPC_MoveParent, ++/*254305*/ OPC_MoveChild, 9, ++/*254307*/ OPC_CheckInteger, 1, ++/*254309*/ OPC_CheckType, MVT::i32, ++/*254311*/ OPC_MoveParent, ++/*254312*/ OPC_MoveChild, 10, ++/*254314*/ OPC_CheckInteger, 1, ++/*254316*/ OPC_CheckType, MVT::i32, ++/*254318*/ OPC_MoveParent, ++/*254319*/ OPC_MoveChild, 11, ++/*254321*/ OPC_CheckInteger, 1, ++/*254323*/ OPC_CheckType, MVT::i32, ++/*254325*/ OPC_MoveParent, ++/*254326*/ OPC_MoveChild, 12, ++/*254328*/ OPC_CheckInteger, 1, ++/*254330*/ OPC_CheckType, MVT::i32, ++/*254332*/ OPC_MoveParent, ++/*254333*/ OPC_MoveChild, 13, ++/*254335*/ OPC_CheckInteger, 1, ++/*254337*/ OPC_CheckType, MVT::i32, ++/*254339*/ OPC_MoveParent, ++/*254340*/ OPC_MoveChild, 14, ++/*254342*/ OPC_CheckInteger, 1, ++/*254344*/ OPC_CheckType, MVT::i32, ++/*254346*/ OPC_MoveParent, ++/*254347*/ OPC_MoveChild, 15, ++/*254349*/ OPC_CheckInteger, 1, ++/*254351*/ OPC_CheckType, MVT::i32, ++/*254353*/ OPC_MoveParent, ++/*254354*/ OPC_MoveParent, ++/*254355*/ OPC_MoveParent, ++/*254356*/ OPC_CheckChild1Same, 1, ++/*254358*/ OPC_MoveParent, ++/*254359*/ OPC_MoveChild1, ++/*254360*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*254363*/ OPC_CheckChild0Integer, 15, ++/*254365*/ OPC_CheckChild0Type, MVT::i32, ++/*254367*/ OPC_CheckChild1Integer, 15, ++/*254369*/ OPC_CheckChild1Type, MVT::i32, ++/*254371*/ OPC_CheckChild2Integer, 15, ++/*254373*/ OPC_CheckChild2Type, MVT::i32, ++/*254375*/ OPC_CheckChild3Integer, 15, ++/*254377*/ OPC_CheckChild3Type, MVT::i32, ++/*254379*/ OPC_CheckChild4Integer, 15, ++/*254381*/ OPC_CheckChild4Type, MVT::i32, ++/*254383*/ OPC_MoveChild5, ++/*254384*/ OPC_CheckInteger, 15, ++/*254386*/ OPC_CheckType, MVT::i32, ++/*254388*/ OPC_MoveParent, ++/*254389*/ OPC_MoveChild6, ++/*254390*/ OPC_CheckInteger, 15, ++/*254392*/ OPC_CheckType, MVT::i32, ++/*254394*/ OPC_MoveParent, ++/*254395*/ OPC_MoveChild7, ++/*254396*/ OPC_CheckInteger, 15, ++/*254398*/ OPC_CheckType, MVT::i32, ++/*254400*/ OPC_MoveParent, ++/*254401*/ OPC_MoveChild, 8, ++/*254403*/ OPC_CheckInteger, 15, ++/*254405*/ OPC_CheckType, MVT::i32, ++/*254407*/ OPC_MoveParent, ++/*254408*/ OPC_MoveChild, 9, ++/*254410*/ OPC_CheckInteger, 15, ++/*254412*/ OPC_CheckType, MVT::i32, ++/*254414*/ OPC_MoveParent, ++/*254415*/ OPC_MoveChild, 10, ++/*254417*/ OPC_CheckInteger, 15, ++/*254419*/ OPC_CheckType, MVT::i32, ++/*254421*/ OPC_MoveParent, ++/*254422*/ OPC_MoveChild, 11, ++/*254424*/ OPC_CheckInteger, 15, ++/*254426*/ OPC_CheckType, MVT::i32, ++/*254428*/ OPC_MoveParent, ++/*254429*/ OPC_MoveChild, 12, ++/*254431*/ OPC_CheckInteger, 15, ++/*254433*/ OPC_CheckType, MVT::i32, ++/*254435*/ OPC_MoveParent, ++/*254436*/ OPC_MoveChild, 13, ++/*254438*/ OPC_CheckInteger, 15, ++/*254440*/ OPC_CheckType, MVT::i32, ++/*254442*/ OPC_MoveParent, ++/*254443*/ OPC_MoveChild, 14, ++/*254445*/ OPC_CheckInteger, 15, ++/*254447*/ OPC_CheckType, MVT::i32, ++/*254449*/ OPC_MoveParent, ++/*254450*/ OPC_MoveChild, 15, ++/*254452*/ OPC_CheckInteger, 15, ++/*254454*/ OPC_CheckType, MVT::i32, ++/*254456*/ OPC_MoveParent, ++/*254457*/ OPC_CheckType, MVT::v16i16, ++/*254459*/ OPC_MoveParent, ++/*254460*/ OPC_MoveParent, ++/*254461*/ OPC_MoveParent, ++/*254462*/ OPC_MoveChild1, ++/*254463*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*254466*/ OPC_CheckChild0Integer, 1, ++/*254468*/ OPC_CheckChild0Type, MVT::i32, ++/*254470*/ OPC_CheckChild1Integer, 1, ++/*254472*/ OPC_CheckChild1Type, MVT::i32, ++/*254474*/ OPC_CheckChild2Integer, 1, ++/*254476*/ OPC_CheckChild2Type, MVT::i32, ++/*254478*/ OPC_CheckChild3Integer, 1, ++/*254480*/ OPC_CheckChild3Type, MVT::i32, ++/*254482*/ OPC_CheckChild4Integer, 1, ++/*254484*/ OPC_CheckChild4Type, MVT::i32, ++/*254486*/ OPC_MoveChild5, ++/*254487*/ OPC_CheckInteger, 1, ++/*254489*/ OPC_CheckType, MVT::i32, ++/*254491*/ OPC_MoveParent, ++/*254492*/ OPC_MoveChild6, ++/*254493*/ OPC_CheckInteger, 1, ++/*254495*/ OPC_CheckType, MVT::i32, ++/*254497*/ OPC_MoveParent, ++/*254498*/ OPC_MoveChild7, ++/*254499*/ OPC_CheckInteger, 1, ++/*254501*/ OPC_CheckType, MVT::i32, ++/*254503*/ OPC_MoveParent, ++/*254504*/ OPC_MoveChild, 8, ++/*254506*/ OPC_CheckInteger, 1, ++/*254508*/ OPC_CheckType, MVT::i32, ++/*254510*/ OPC_MoveParent, ++/*254511*/ OPC_MoveChild, 9, ++/*254513*/ OPC_CheckInteger, 1, ++/*254515*/ OPC_CheckType, MVT::i32, ++/*254517*/ OPC_MoveParent, ++/*254518*/ OPC_MoveChild, 10, ++/*254520*/ OPC_CheckInteger, 1, ++/*254522*/ OPC_CheckType, MVT::i32, ++/*254524*/ OPC_MoveParent, ++/*254525*/ OPC_MoveChild, 11, ++/*254527*/ OPC_CheckInteger, 1, ++/*254529*/ OPC_CheckType, MVT::i32, ++/*254531*/ OPC_MoveParent, ++/*254532*/ OPC_MoveChild, 12, ++/*254534*/ OPC_CheckInteger, 1, ++/*254536*/ OPC_CheckType, MVT::i32, ++/*254538*/ OPC_MoveParent, ++/*254539*/ OPC_MoveChild, 13, ++/*254541*/ OPC_CheckInteger, 1, ++/*254543*/ OPC_CheckType, MVT::i32, ++/*254545*/ OPC_MoveParent, ++/*254546*/ OPC_MoveChild, 14, ++/*254548*/ OPC_CheckInteger, 1, ++/*254550*/ OPC_CheckType, MVT::i32, ++/*254552*/ OPC_MoveParent, ++/*254553*/ OPC_MoveChild, 15, ++/*254555*/ OPC_CheckInteger, 1, ++/*254557*/ OPC_CheckType, MVT::i32, ++/*254559*/ OPC_MoveParent, ++/*254560*/ OPC_CheckType, MVT::v16i16, ++/*254562*/ OPC_MoveParent, ++/*254563*/ OPC_CheckType, MVT::v16i16, ++/*254565*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*254567*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b)), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*254575*/ /*Scope*/ 65|128,2/*321*/, /*->254898*/ ++/*254577*/ OPC_MoveChild0, ++/*254578*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*254581*/ OPC_CheckChild0Integer, 1, ++/*254583*/ OPC_CheckChild0Type, MVT::i32, ++/*254585*/ OPC_CheckChild1Integer, 1, ++/*254587*/ OPC_CheckChild1Type, MVT::i32, ++/*254589*/ OPC_CheckChild2Integer, 1, ++/*254591*/ OPC_CheckChild2Type, MVT::i32, ++/*254593*/ OPC_CheckChild3Integer, 1, ++/*254595*/ OPC_CheckChild3Type, MVT::i32, ++/*254597*/ OPC_CheckChild4Integer, 1, ++/*254599*/ OPC_CheckChild4Type, MVT::i32, ++/*254601*/ OPC_MoveChild5, ++/*254602*/ OPC_CheckInteger, 1, ++/*254604*/ OPC_CheckType, MVT::i32, ++/*254606*/ OPC_MoveParent, ++/*254607*/ OPC_MoveChild6, ++/*254608*/ OPC_CheckInteger, 1, ++/*254610*/ OPC_CheckType, MVT::i32, ++/*254612*/ OPC_MoveParent, ++/*254613*/ OPC_MoveChild7, ++/*254614*/ OPC_CheckInteger, 1, ++/*254616*/ OPC_CheckType, MVT::i32, ++/*254618*/ OPC_MoveParent, ++/*254619*/ OPC_MoveChild, 8, ++/*254621*/ OPC_CheckInteger, 1, ++/*254623*/ OPC_CheckType, MVT::i32, ++/*254625*/ OPC_MoveParent, ++/*254626*/ OPC_MoveChild, 9, ++/*254628*/ OPC_CheckInteger, 1, ++/*254630*/ OPC_CheckType, MVT::i32, ++/*254632*/ OPC_MoveParent, ++/*254633*/ OPC_MoveChild, 10, ++/*254635*/ OPC_CheckInteger, 1, ++/*254637*/ OPC_CheckType, MVT::i32, ++/*254639*/ OPC_MoveParent, ++/*254640*/ OPC_MoveChild, 11, ++/*254642*/ OPC_CheckInteger, 1, ++/*254644*/ OPC_CheckType, MVT::i32, ++/*254646*/ OPC_MoveParent, ++/*254647*/ OPC_MoveChild, 12, ++/*254649*/ OPC_CheckInteger, 1, ++/*254651*/ OPC_CheckType, MVT::i32, ++/*254653*/ OPC_MoveParent, ++/*254654*/ OPC_MoveChild, 13, ++/*254656*/ OPC_CheckInteger, 1, ++/*254658*/ OPC_CheckType, MVT::i32, ++/*254660*/ OPC_MoveParent, ++/*254661*/ OPC_MoveChild, 14, ++/*254663*/ OPC_CheckInteger, 1, ++/*254665*/ OPC_CheckType, MVT::i32, ++/*254667*/ OPC_MoveParent, ++/*254668*/ OPC_MoveChild, 15, ++/*254670*/ OPC_CheckInteger, 1, ++/*254672*/ OPC_CheckType, MVT::i32, ++/*254674*/ OPC_MoveParent, ++/*254675*/ OPC_MoveParent, ++/*254676*/ OPC_CheckChild1Same, 1, ++/*254678*/ OPC_MoveParent, ++/*254679*/ OPC_CheckChild1Same, 0, ++/*254681*/ OPC_MoveParent, ++/*254682*/ OPC_MoveChild1, ++/*254683*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*254686*/ OPC_CheckChild0Integer, 15, ++/*254688*/ OPC_CheckChild0Type, MVT::i32, ++/*254690*/ OPC_CheckChild1Integer, 15, ++/*254692*/ OPC_CheckChild1Type, MVT::i32, ++/*254694*/ OPC_CheckChild2Integer, 15, ++/*254696*/ OPC_CheckChild2Type, MVT::i32, ++/*254698*/ OPC_CheckChild3Integer, 15, ++/*254700*/ OPC_CheckChild3Type, MVT::i32, ++/*254702*/ OPC_CheckChild4Integer, 15, ++/*254704*/ OPC_CheckChild4Type, MVT::i32, ++/*254706*/ OPC_MoveChild5, ++/*254707*/ OPC_CheckInteger, 15, ++/*254709*/ OPC_CheckType, MVT::i32, ++/*254711*/ OPC_MoveParent, ++/*254712*/ OPC_MoveChild6, ++/*254713*/ OPC_CheckInteger, 15, ++/*254715*/ OPC_CheckType, MVT::i32, ++/*254717*/ OPC_MoveParent, ++/*254718*/ OPC_MoveChild7, ++/*254719*/ OPC_CheckInteger, 15, ++/*254721*/ OPC_CheckType, MVT::i32, ++/*254723*/ OPC_MoveParent, ++/*254724*/ OPC_MoveChild, 8, ++/*254726*/ OPC_CheckInteger, 15, ++/*254728*/ OPC_CheckType, MVT::i32, ++/*254730*/ OPC_MoveParent, ++/*254731*/ OPC_MoveChild, 9, ++/*254733*/ OPC_CheckInteger, 15, ++/*254735*/ OPC_CheckType, MVT::i32, ++/*254737*/ OPC_MoveParent, ++/*254738*/ OPC_MoveChild, 10, ++/*254740*/ OPC_CheckInteger, 15, ++/*254742*/ OPC_CheckType, MVT::i32, ++/*254744*/ OPC_MoveParent, ++/*254745*/ OPC_MoveChild, 11, ++/*254747*/ OPC_CheckInteger, 15, ++/*254749*/ OPC_CheckType, MVT::i32, ++/*254751*/ OPC_MoveParent, ++/*254752*/ OPC_MoveChild, 12, ++/*254754*/ OPC_CheckInteger, 15, ++/*254756*/ OPC_CheckType, MVT::i32, ++/*254758*/ OPC_MoveParent, ++/*254759*/ OPC_MoveChild, 13, ++/*254761*/ OPC_CheckInteger, 15, ++/*254763*/ OPC_CheckType, MVT::i32, ++/*254765*/ OPC_MoveParent, ++/*254766*/ OPC_MoveChild, 14, ++/*254768*/ OPC_CheckInteger, 15, ++/*254770*/ OPC_CheckType, MVT::i32, ++/*254772*/ OPC_MoveParent, ++/*254773*/ OPC_MoveChild, 15, ++/*254775*/ OPC_CheckInteger, 15, ++/*254777*/ OPC_CheckType, MVT::i32, ++/*254779*/ OPC_MoveParent, ++/*254780*/ OPC_CheckType, MVT::v16i16, ++/*254782*/ OPC_MoveParent, ++/*254783*/ OPC_MoveParent, ++/*254784*/ OPC_MoveParent, ++/*254785*/ OPC_MoveChild1, ++/*254786*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*254789*/ OPC_CheckChild0Integer, 1, ++/*254791*/ OPC_CheckChild0Type, MVT::i32, ++/*254793*/ OPC_CheckChild1Integer, 1, ++/*254795*/ OPC_CheckChild1Type, MVT::i32, ++/*254797*/ OPC_CheckChild2Integer, 1, ++/*254799*/ OPC_CheckChild2Type, MVT::i32, ++/*254801*/ OPC_CheckChild3Integer, 1, ++/*254803*/ OPC_CheckChild3Type, MVT::i32, ++/*254805*/ OPC_CheckChild4Integer, 1, ++/*254807*/ OPC_CheckChild4Type, MVT::i32, ++/*254809*/ OPC_MoveChild5, ++/*254810*/ OPC_CheckInteger, 1, ++/*254812*/ OPC_CheckType, MVT::i32, ++/*254814*/ OPC_MoveParent, ++/*254815*/ OPC_MoveChild6, ++/*254816*/ OPC_CheckInteger, 1, ++/*254818*/ OPC_CheckType, MVT::i32, ++/*254820*/ OPC_MoveParent, ++/*254821*/ OPC_MoveChild7, ++/*254822*/ OPC_CheckInteger, 1, ++/*254824*/ OPC_CheckType, MVT::i32, ++/*254826*/ OPC_MoveParent, ++/*254827*/ OPC_MoveChild, 8, ++/*254829*/ OPC_CheckInteger, 1, ++/*254831*/ OPC_CheckType, MVT::i32, ++/*254833*/ OPC_MoveParent, ++/*254834*/ OPC_MoveChild, 9, ++/*254836*/ OPC_CheckInteger, 1, ++/*254838*/ OPC_CheckType, MVT::i32, ++/*254840*/ OPC_MoveParent, ++/*254841*/ OPC_MoveChild, 10, ++/*254843*/ OPC_CheckInteger, 1, ++/*254845*/ OPC_CheckType, MVT::i32, ++/*254847*/ OPC_MoveParent, ++/*254848*/ OPC_MoveChild, 11, ++/*254850*/ OPC_CheckInteger, 1, ++/*254852*/ OPC_CheckType, MVT::i32, ++/*254854*/ OPC_MoveParent, ++/*254855*/ OPC_MoveChild, 12, ++/*254857*/ OPC_CheckInteger, 1, ++/*254859*/ OPC_CheckType, MVT::i32, ++/*254861*/ OPC_MoveParent, ++/*254862*/ OPC_MoveChild, 13, ++/*254864*/ OPC_CheckInteger, 1, ++/*254866*/ OPC_CheckType, MVT::i32, ++/*254868*/ OPC_MoveParent, ++/*254869*/ OPC_MoveChild, 14, ++/*254871*/ OPC_CheckInteger, 1, ++/*254873*/ OPC_CheckType, MVT::i32, ++/*254875*/ OPC_MoveParent, ++/*254876*/ OPC_MoveChild, 15, ++/*254878*/ OPC_CheckInteger, 1, ++/*254880*/ OPC_CheckType, MVT::i32, ++/*254882*/ OPC_MoveParent, ++/*254883*/ OPC_CheckType, MVT::v16i16, ++/*254885*/ OPC_MoveParent, ++/*254886*/ OPC_CheckType, MVT::v16i16, ++/*254888*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*254890*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b)), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b), LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*254898*/ /*Scope*/ 65|128,2/*321*/, /*->255221*/ ++/*254900*/ OPC_CheckChild0Same, 1, ++/*254902*/ OPC_MoveChild1, ++/*254903*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*254906*/ OPC_CheckChild0Integer, 1, ++/*254908*/ OPC_CheckChild0Type, MVT::i32, ++/*254910*/ OPC_CheckChild1Integer, 1, ++/*254912*/ OPC_CheckChild1Type, MVT::i32, ++/*254914*/ OPC_CheckChild2Integer, 1, ++/*254916*/ OPC_CheckChild2Type, MVT::i32, ++/*254918*/ OPC_CheckChild3Integer, 1, ++/*254920*/ OPC_CheckChild3Type, MVT::i32, ++/*254922*/ OPC_CheckChild4Integer, 1, ++/*254924*/ OPC_CheckChild4Type, MVT::i32, ++/*254926*/ OPC_MoveChild5, ++/*254927*/ OPC_CheckInteger, 1, ++/*254929*/ OPC_CheckType, MVT::i32, ++/*254931*/ OPC_MoveParent, ++/*254932*/ OPC_MoveChild6, ++/*254933*/ OPC_CheckInteger, 1, ++/*254935*/ OPC_CheckType, MVT::i32, ++/*254937*/ OPC_MoveParent, ++/*254938*/ OPC_MoveChild7, ++/*254939*/ OPC_CheckInteger, 1, ++/*254941*/ OPC_CheckType, MVT::i32, ++/*254943*/ OPC_MoveParent, ++/*254944*/ OPC_MoveChild, 8, ++/*254946*/ OPC_CheckInteger, 1, ++/*254948*/ OPC_CheckType, MVT::i32, ++/*254950*/ OPC_MoveParent, ++/*254951*/ OPC_MoveChild, 9, ++/*254953*/ OPC_CheckInteger, 1, ++/*254955*/ OPC_CheckType, MVT::i32, ++/*254957*/ OPC_MoveParent, ++/*254958*/ OPC_MoveChild, 10, ++/*254960*/ OPC_CheckInteger, 1, ++/*254962*/ OPC_CheckType, MVT::i32, ++/*254964*/ OPC_MoveParent, ++/*254965*/ OPC_MoveChild, 11, ++/*254967*/ OPC_CheckInteger, 1, ++/*254969*/ OPC_CheckType, MVT::i32, ++/*254971*/ OPC_MoveParent, ++/*254972*/ OPC_MoveChild, 12, ++/*254974*/ OPC_CheckInteger, 1, ++/*254976*/ OPC_CheckType, MVT::i32, ++/*254978*/ OPC_MoveParent, ++/*254979*/ OPC_MoveChild, 13, ++/*254981*/ OPC_CheckInteger, 1, ++/*254983*/ OPC_CheckType, MVT::i32, ++/*254985*/ OPC_MoveParent, ++/*254986*/ OPC_MoveChild, 14, ++/*254988*/ OPC_CheckInteger, 1, ++/*254990*/ OPC_CheckType, MVT::i32, ++/*254992*/ OPC_MoveParent, ++/*254993*/ OPC_MoveChild, 15, ++/*254995*/ OPC_CheckInteger, 1, ++/*254997*/ OPC_CheckType, MVT::i32, ++/*254999*/ OPC_MoveParent, ++/*255000*/ OPC_MoveParent, ++/*255001*/ OPC_MoveParent, ++/*255002*/ OPC_CheckChild1Same, 0, ++/*255004*/ OPC_MoveParent, ++/*255005*/ OPC_MoveChild1, ++/*255006*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*255009*/ OPC_CheckChild0Integer, 15, ++/*255011*/ OPC_CheckChild0Type, MVT::i32, ++/*255013*/ OPC_CheckChild1Integer, 15, ++/*255015*/ OPC_CheckChild1Type, MVT::i32, ++/*255017*/ OPC_CheckChild2Integer, 15, ++/*255019*/ OPC_CheckChild2Type, MVT::i32, ++/*255021*/ OPC_CheckChild3Integer, 15, ++/*255023*/ OPC_CheckChild3Type, MVT::i32, ++/*255025*/ OPC_CheckChild4Integer, 15, ++/*255027*/ OPC_CheckChild4Type, MVT::i32, ++/*255029*/ OPC_MoveChild5, ++/*255030*/ OPC_CheckInteger, 15, ++/*255032*/ OPC_CheckType, MVT::i32, ++/*255034*/ OPC_MoveParent, ++/*255035*/ OPC_MoveChild6, ++/*255036*/ OPC_CheckInteger, 15, ++/*255038*/ OPC_CheckType, MVT::i32, ++/*255040*/ OPC_MoveParent, ++/*255041*/ OPC_MoveChild7, ++/*255042*/ OPC_CheckInteger, 15, ++/*255044*/ OPC_CheckType, MVT::i32, ++/*255046*/ OPC_MoveParent, ++/*255047*/ OPC_MoveChild, 8, ++/*255049*/ OPC_CheckInteger, 15, ++/*255051*/ OPC_CheckType, MVT::i32, ++/*255053*/ OPC_MoveParent, ++/*255054*/ OPC_MoveChild, 9, ++/*255056*/ OPC_CheckInteger, 15, ++/*255058*/ OPC_CheckType, MVT::i32, ++/*255060*/ OPC_MoveParent, ++/*255061*/ OPC_MoveChild, 10, ++/*255063*/ OPC_CheckInteger, 15, ++/*255065*/ OPC_CheckType, MVT::i32, ++/*255067*/ OPC_MoveParent, ++/*255068*/ OPC_MoveChild, 11, ++/*255070*/ OPC_CheckInteger, 15, ++/*255072*/ OPC_CheckType, MVT::i32, ++/*255074*/ OPC_MoveParent, ++/*255075*/ OPC_MoveChild, 12, ++/*255077*/ OPC_CheckInteger, 15, ++/*255079*/ OPC_CheckType, MVT::i32, ++/*255081*/ OPC_MoveParent, ++/*255082*/ OPC_MoveChild, 13, ++/*255084*/ OPC_CheckInteger, 15, ++/*255086*/ OPC_CheckType, MVT::i32, ++/*255088*/ OPC_MoveParent, ++/*255089*/ OPC_MoveChild, 14, ++/*255091*/ OPC_CheckInteger, 15, ++/*255093*/ OPC_CheckType, MVT::i32, ++/*255095*/ OPC_MoveParent, ++/*255096*/ OPC_MoveChild, 15, ++/*255098*/ OPC_CheckInteger, 15, ++/*255100*/ OPC_CheckType, MVT::i32, ++/*255102*/ OPC_MoveParent, ++/*255103*/ OPC_CheckType, MVT::v16i16, ++/*255105*/ OPC_MoveParent, ++/*255106*/ OPC_MoveParent, ++/*255107*/ OPC_MoveParent, ++/*255108*/ OPC_MoveChild1, ++/*255109*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*255112*/ OPC_CheckChild0Integer, 1, ++/*255114*/ OPC_CheckChild0Type, MVT::i32, ++/*255116*/ OPC_CheckChild1Integer, 1, ++/*255118*/ OPC_CheckChild1Type, MVT::i32, ++/*255120*/ OPC_CheckChild2Integer, 1, ++/*255122*/ OPC_CheckChild2Type, MVT::i32, ++/*255124*/ OPC_CheckChild3Integer, 1, ++/*255126*/ OPC_CheckChild3Type, MVT::i32, ++/*255128*/ OPC_CheckChild4Integer, 1, ++/*255130*/ OPC_CheckChild4Type, MVT::i32, ++/*255132*/ OPC_MoveChild5, ++/*255133*/ OPC_CheckInteger, 1, ++/*255135*/ OPC_CheckType, MVT::i32, ++/*255137*/ OPC_MoveParent, ++/*255138*/ OPC_MoveChild6, ++/*255139*/ OPC_CheckInteger, 1, ++/*255141*/ OPC_CheckType, MVT::i32, ++/*255143*/ OPC_MoveParent, ++/*255144*/ OPC_MoveChild7, ++/*255145*/ OPC_CheckInteger, 1, ++/*255147*/ OPC_CheckType, MVT::i32, ++/*255149*/ OPC_MoveParent, ++/*255150*/ OPC_MoveChild, 8, ++/*255152*/ OPC_CheckInteger, 1, ++/*255154*/ OPC_CheckType, MVT::i32, ++/*255156*/ OPC_MoveParent, ++/*255157*/ OPC_MoveChild, 9, ++/*255159*/ OPC_CheckInteger, 1, ++/*255161*/ OPC_CheckType, MVT::i32, ++/*255163*/ OPC_MoveParent, ++/*255164*/ OPC_MoveChild, 10, ++/*255166*/ OPC_CheckInteger, 1, ++/*255168*/ OPC_CheckType, MVT::i32, ++/*255170*/ OPC_MoveParent, ++/*255171*/ OPC_MoveChild, 11, ++/*255173*/ OPC_CheckInteger, 1, ++/*255175*/ OPC_CheckType, MVT::i32, ++/*255177*/ OPC_MoveParent, ++/*255178*/ OPC_MoveChild, 12, ++/*255180*/ OPC_CheckInteger, 1, ++/*255182*/ OPC_CheckType, MVT::i32, ++/*255184*/ OPC_MoveParent, ++/*255185*/ OPC_MoveChild, 13, ++/*255187*/ OPC_CheckInteger, 1, ++/*255189*/ OPC_CheckType, MVT::i32, ++/*255191*/ OPC_MoveParent, ++/*255192*/ OPC_MoveChild, 14, ++/*255194*/ OPC_CheckInteger, 1, ++/*255196*/ OPC_CheckType, MVT::i32, ++/*255198*/ OPC_MoveParent, ++/*255199*/ OPC_MoveChild, 15, ++/*255201*/ OPC_CheckInteger, 1, ++/*255203*/ OPC_CheckType, MVT::i32, ++/*255205*/ OPC_MoveParent, ++/*255206*/ OPC_CheckType, MVT::v16i16, ++/*255208*/ OPC_MoveParent, ++/*255209*/ OPC_CheckType, MVT::v16i16, ++/*255211*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*255213*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b)), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*255221*/ /*Scope*/ 65|128,2/*321*/, /*->255544*/ ++/*255223*/ OPC_CheckChild0Same, 0, ++/*255225*/ OPC_CheckChild1Same, 1, ++/*255227*/ OPC_MoveParent, ++/*255228*/ OPC_MoveChild1, ++/*255229*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*255232*/ OPC_CheckChild0Integer, 1, ++/*255234*/ OPC_CheckChild0Type, MVT::i32, ++/*255236*/ OPC_CheckChild1Integer, 1, ++/*255238*/ OPC_CheckChild1Type, MVT::i32, ++/*255240*/ OPC_CheckChild2Integer, 1, ++/*255242*/ OPC_CheckChild2Type, MVT::i32, ++/*255244*/ OPC_CheckChild3Integer, 1, ++/*255246*/ OPC_CheckChild3Type, MVT::i32, ++/*255248*/ OPC_CheckChild4Integer, 1, ++/*255250*/ OPC_CheckChild4Type, MVT::i32, ++/*255252*/ OPC_MoveChild5, ++/*255253*/ OPC_CheckInteger, 1, ++/*255255*/ OPC_CheckType, MVT::i32, ++/*255257*/ OPC_MoveParent, ++/*255258*/ OPC_MoveChild6, ++/*255259*/ OPC_CheckInteger, 1, ++/*255261*/ OPC_CheckType, MVT::i32, ++/*255263*/ OPC_MoveParent, ++/*255264*/ OPC_MoveChild7, ++/*255265*/ OPC_CheckInteger, 1, ++/*255267*/ OPC_CheckType, MVT::i32, ++/*255269*/ OPC_MoveParent, ++/*255270*/ OPC_MoveChild, 8, ++/*255272*/ OPC_CheckInteger, 1, ++/*255274*/ OPC_CheckType, MVT::i32, ++/*255276*/ OPC_MoveParent, ++/*255277*/ OPC_MoveChild, 9, ++/*255279*/ OPC_CheckInteger, 1, ++/*255281*/ OPC_CheckType, MVT::i32, ++/*255283*/ OPC_MoveParent, ++/*255284*/ OPC_MoveChild, 10, ++/*255286*/ OPC_CheckInteger, 1, ++/*255288*/ OPC_CheckType, MVT::i32, ++/*255290*/ OPC_MoveParent, ++/*255291*/ OPC_MoveChild, 11, ++/*255293*/ OPC_CheckInteger, 1, ++/*255295*/ OPC_CheckType, MVT::i32, ++/*255297*/ OPC_MoveParent, ++/*255298*/ OPC_MoveChild, 12, ++/*255300*/ OPC_CheckInteger, 1, ++/*255302*/ OPC_CheckType, MVT::i32, ++/*255304*/ OPC_MoveParent, ++/*255305*/ OPC_MoveChild, 13, ++/*255307*/ OPC_CheckInteger, 1, ++/*255309*/ OPC_CheckType, MVT::i32, ++/*255311*/ OPC_MoveParent, ++/*255312*/ OPC_MoveChild, 14, ++/*255314*/ OPC_CheckInteger, 1, ++/*255316*/ OPC_CheckType, MVT::i32, ++/*255318*/ OPC_MoveParent, ++/*255319*/ OPC_MoveChild, 15, ++/*255321*/ OPC_CheckInteger, 1, ++/*255323*/ OPC_CheckType, MVT::i32, ++/*255325*/ OPC_MoveParent, ++/*255326*/ OPC_MoveParent, ++/*255327*/ OPC_MoveParent, ++/*255328*/ OPC_MoveChild1, ++/*255329*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*255332*/ OPC_CheckChild0Integer, 15, ++/*255334*/ OPC_CheckChild0Type, MVT::i32, ++/*255336*/ OPC_CheckChild1Integer, 15, ++/*255338*/ OPC_CheckChild1Type, MVT::i32, ++/*255340*/ OPC_CheckChild2Integer, 15, ++/*255342*/ OPC_CheckChild2Type, MVT::i32, ++/*255344*/ OPC_CheckChild3Integer, 15, ++/*255346*/ OPC_CheckChild3Type, MVT::i32, ++/*255348*/ OPC_CheckChild4Integer, 15, ++/*255350*/ OPC_CheckChild4Type, MVT::i32, ++/*255352*/ OPC_MoveChild5, ++/*255353*/ OPC_CheckInteger, 15, ++/*255355*/ OPC_CheckType, MVT::i32, ++/*255357*/ OPC_MoveParent, ++/*255358*/ OPC_MoveChild6, ++/*255359*/ OPC_CheckInteger, 15, ++/*255361*/ OPC_CheckType, MVT::i32, ++/*255363*/ OPC_MoveParent, ++/*255364*/ OPC_MoveChild7, ++/*255365*/ OPC_CheckInteger, 15, ++/*255367*/ OPC_CheckType, MVT::i32, ++/*255369*/ OPC_MoveParent, ++/*255370*/ OPC_MoveChild, 8, ++/*255372*/ OPC_CheckInteger, 15, ++/*255374*/ OPC_CheckType, MVT::i32, ++/*255376*/ OPC_MoveParent, ++/*255377*/ OPC_MoveChild, 9, ++/*255379*/ OPC_CheckInteger, 15, ++/*255381*/ OPC_CheckType, MVT::i32, ++/*255383*/ OPC_MoveParent, ++/*255384*/ OPC_MoveChild, 10, ++/*255386*/ OPC_CheckInteger, 15, ++/*255388*/ OPC_CheckType, MVT::i32, ++/*255390*/ OPC_MoveParent, ++/*255391*/ OPC_MoveChild, 11, ++/*255393*/ OPC_CheckInteger, 15, ++/*255395*/ OPC_CheckType, MVT::i32, ++/*255397*/ OPC_MoveParent, ++/*255398*/ OPC_MoveChild, 12, ++/*255400*/ OPC_CheckInteger, 15, ++/*255402*/ OPC_CheckType, MVT::i32, ++/*255404*/ OPC_MoveParent, ++/*255405*/ OPC_MoveChild, 13, ++/*255407*/ OPC_CheckInteger, 15, ++/*255409*/ OPC_CheckType, MVT::i32, ++/*255411*/ OPC_MoveParent, ++/*255412*/ OPC_MoveChild, 14, ++/*255414*/ OPC_CheckInteger, 15, ++/*255416*/ OPC_CheckType, MVT::i32, ++/*255418*/ OPC_MoveParent, ++/*255419*/ OPC_MoveChild, 15, ++/*255421*/ OPC_CheckInteger, 15, ++/*255423*/ OPC_CheckType, MVT::i32, ++/*255425*/ OPC_MoveParent, ++/*255426*/ OPC_CheckType, MVT::v16i16, ++/*255428*/ OPC_MoveParent, ++/*255429*/ OPC_MoveParent, ++/*255430*/ OPC_MoveParent, ++/*255431*/ OPC_MoveChild1, ++/*255432*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*255435*/ OPC_CheckChild0Integer, 1, ++/*255437*/ OPC_CheckChild0Type, MVT::i32, ++/*255439*/ OPC_CheckChild1Integer, 1, ++/*255441*/ OPC_CheckChild1Type, MVT::i32, ++/*255443*/ OPC_CheckChild2Integer, 1, ++/*255445*/ OPC_CheckChild2Type, MVT::i32, ++/*255447*/ OPC_CheckChild3Integer, 1, ++/*255449*/ OPC_CheckChild3Type, MVT::i32, ++/*255451*/ OPC_CheckChild4Integer, 1, ++/*255453*/ OPC_CheckChild4Type, MVT::i32, ++/*255455*/ OPC_MoveChild5, ++/*255456*/ OPC_CheckInteger, 1, ++/*255458*/ OPC_CheckType, MVT::i32, ++/*255460*/ OPC_MoveParent, ++/*255461*/ OPC_MoveChild6, ++/*255462*/ OPC_CheckInteger, 1, ++/*255464*/ OPC_CheckType, MVT::i32, ++/*255466*/ OPC_MoveParent, ++/*255467*/ OPC_MoveChild7, ++/*255468*/ OPC_CheckInteger, 1, ++/*255470*/ OPC_CheckType, MVT::i32, ++/*255472*/ OPC_MoveParent, ++/*255473*/ OPC_MoveChild, 8, ++/*255475*/ OPC_CheckInteger, 1, ++/*255477*/ OPC_CheckType, MVT::i32, ++/*255479*/ OPC_MoveParent, ++/*255480*/ OPC_MoveChild, 9, ++/*255482*/ OPC_CheckInteger, 1, ++/*255484*/ OPC_CheckType, MVT::i32, ++/*255486*/ OPC_MoveParent, ++/*255487*/ OPC_MoveChild, 10, ++/*255489*/ OPC_CheckInteger, 1, ++/*255491*/ OPC_CheckType, MVT::i32, ++/*255493*/ OPC_MoveParent, ++/*255494*/ OPC_MoveChild, 11, ++/*255496*/ OPC_CheckInteger, 1, ++/*255498*/ OPC_CheckType, MVT::i32, ++/*255500*/ OPC_MoveParent, ++/*255501*/ OPC_MoveChild, 12, ++/*255503*/ OPC_CheckInteger, 1, ++/*255505*/ OPC_CheckType, MVT::i32, ++/*255507*/ OPC_MoveParent, ++/*255508*/ OPC_MoveChild, 13, ++/*255510*/ OPC_CheckInteger, 1, ++/*255512*/ OPC_CheckType, MVT::i32, ++/*255514*/ OPC_MoveParent, ++/*255515*/ OPC_MoveChild, 14, ++/*255517*/ OPC_CheckInteger, 1, ++/*255519*/ OPC_CheckType, MVT::i32, ++/*255521*/ OPC_MoveParent, ++/*255522*/ OPC_MoveChild, 15, ++/*255524*/ OPC_CheckInteger, 1, ++/*255526*/ OPC_CheckType, MVT::i32, ++/*255528*/ OPC_MoveParent, ++/*255529*/ OPC_CheckType, MVT::v16i16, ++/*255531*/ OPC_MoveParent, ++/*255532*/ OPC_CheckType, MVT::v16i16, ++/*255534*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*255536*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b)), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*255544*/ /*Scope*/ 65|128,2/*321*/, /*->255867*/ ++/*255546*/ OPC_CheckChild0Same, 1, ++/*255548*/ OPC_CheckChild1Same, 0, ++/*255550*/ OPC_MoveParent, ++/*255551*/ OPC_MoveChild1, ++/*255552*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*255555*/ OPC_CheckChild0Integer, 1, ++/*255557*/ OPC_CheckChild0Type, MVT::i32, ++/*255559*/ OPC_CheckChild1Integer, 1, ++/*255561*/ OPC_CheckChild1Type, MVT::i32, ++/*255563*/ OPC_CheckChild2Integer, 1, ++/*255565*/ OPC_CheckChild2Type, MVT::i32, ++/*255567*/ OPC_CheckChild3Integer, 1, ++/*255569*/ OPC_CheckChild3Type, MVT::i32, ++/*255571*/ OPC_CheckChild4Integer, 1, ++/*255573*/ OPC_CheckChild4Type, MVT::i32, ++/*255575*/ OPC_MoveChild5, ++/*255576*/ OPC_CheckInteger, 1, ++/*255578*/ OPC_CheckType, MVT::i32, ++/*255580*/ OPC_MoveParent, ++/*255581*/ OPC_MoveChild6, ++/*255582*/ OPC_CheckInteger, 1, ++/*255584*/ OPC_CheckType, MVT::i32, ++/*255586*/ OPC_MoveParent, ++/*255587*/ OPC_MoveChild7, ++/*255588*/ OPC_CheckInteger, 1, ++/*255590*/ OPC_CheckType, MVT::i32, ++/*255592*/ OPC_MoveParent, ++/*255593*/ OPC_MoveChild, 8, ++/*255595*/ OPC_CheckInteger, 1, ++/*255597*/ OPC_CheckType, MVT::i32, ++/*255599*/ OPC_MoveParent, ++/*255600*/ OPC_MoveChild, 9, ++/*255602*/ OPC_CheckInteger, 1, ++/*255604*/ OPC_CheckType, MVT::i32, ++/*255606*/ OPC_MoveParent, ++/*255607*/ OPC_MoveChild, 10, ++/*255609*/ OPC_CheckInteger, 1, ++/*255611*/ OPC_CheckType, MVT::i32, ++/*255613*/ OPC_MoveParent, ++/*255614*/ OPC_MoveChild, 11, ++/*255616*/ OPC_CheckInteger, 1, ++/*255618*/ OPC_CheckType, MVT::i32, ++/*255620*/ OPC_MoveParent, ++/*255621*/ OPC_MoveChild, 12, ++/*255623*/ OPC_CheckInteger, 1, ++/*255625*/ OPC_CheckType, MVT::i32, ++/*255627*/ OPC_MoveParent, ++/*255628*/ OPC_MoveChild, 13, ++/*255630*/ OPC_CheckInteger, 1, ++/*255632*/ OPC_CheckType, MVT::i32, ++/*255634*/ OPC_MoveParent, ++/*255635*/ OPC_MoveChild, 14, ++/*255637*/ OPC_CheckInteger, 1, ++/*255639*/ OPC_CheckType, MVT::i32, ++/*255641*/ OPC_MoveParent, ++/*255642*/ OPC_MoveChild, 15, ++/*255644*/ OPC_CheckInteger, 1, ++/*255646*/ OPC_CheckType, MVT::i32, ++/*255648*/ OPC_MoveParent, ++/*255649*/ OPC_MoveParent, ++/*255650*/ OPC_MoveParent, ++/*255651*/ OPC_MoveChild1, ++/*255652*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*255655*/ OPC_CheckChild0Integer, 15, ++/*255657*/ OPC_CheckChild0Type, MVT::i32, ++/*255659*/ OPC_CheckChild1Integer, 15, ++/*255661*/ OPC_CheckChild1Type, MVT::i32, ++/*255663*/ OPC_CheckChild2Integer, 15, ++/*255665*/ OPC_CheckChild2Type, MVT::i32, ++/*255667*/ OPC_CheckChild3Integer, 15, ++/*255669*/ OPC_CheckChild3Type, MVT::i32, ++/*255671*/ OPC_CheckChild4Integer, 15, ++/*255673*/ OPC_CheckChild4Type, MVT::i32, ++/*255675*/ OPC_MoveChild5, ++/*255676*/ OPC_CheckInteger, 15, ++/*255678*/ OPC_CheckType, MVT::i32, ++/*255680*/ OPC_MoveParent, ++/*255681*/ OPC_MoveChild6, ++/*255682*/ OPC_CheckInteger, 15, ++/*255684*/ OPC_CheckType, MVT::i32, ++/*255686*/ OPC_MoveParent, ++/*255687*/ OPC_MoveChild7, ++/*255688*/ OPC_CheckInteger, 15, ++/*255690*/ OPC_CheckType, MVT::i32, ++/*255692*/ OPC_MoveParent, ++/*255693*/ OPC_MoveChild, 8, ++/*255695*/ OPC_CheckInteger, 15, ++/*255697*/ OPC_CheckType, MVT::i32, ++/*255699*/ OPC_MoveParent, ++/*255700*/ OPC_MoveChild, 9, ++/*255702*/ OPC_CheckInteger, 15, ++/*255704*/ OPC_CheckType, MVT::i32, ++/*255706*/ OPC_MoveParent, ++/*255707*/ OPC_MoveChild, 10, ++/*255709*/ OPC_CheckInteger, 15, ++/*255711*/ OPC_CheckType, MVT::i32, ++/*255713*/ OPC_MoveParent, ++/*255714*/ OPC_MoveChild, 11, ++/*255716*/ OPC_CheckInteger, 15, ++/*255718*/ OPC_CheckType, MVT::i32, ++/*255720*/ OPC_MoveParent, ++/*255721*/ OPC_MoveChild, 12, ++/*255723*/ OPC_CheckInteger, 15, ++/*255725*/ OPC_CheckType, MVT::i32, ++/*255727*/ OPC_MoveParent, ++/*255728*/ OPC_MoveChild, 13, ++/*255730*/ OPC_CheckInteger, 15, ++/*255732*/ OPC_CheckType, MVT::i32, ++/*255734*/ OPC_MoveParent, ++/*255735*/ OPC_MoveChild, 14, ++/*255737*/ OPC_CheckInteger, 15, ++/*255739*/ OPC_CheckType, MVT::i32, ++/*255741*/ OPC_MoveParent, ++/*255742*/ OPC_MoveChild, 15, ++/*255744*/ OPC_CheckInteger, 15, ++/*255746*/ OPC_CheckType, MVT::i32, ++/*255748*/ OPC_MoveParent, ++/*255749*/ OPC_CheckType, MVT::v16i16, ++/*255751*/ OPC_MoveParent, ++/*255752*/ OPC_MoveParent, ++/*255753*/ OPC_MoveParent, ++/*255754*/ OPC_MoveChild1, ++/*255755*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*255758*/ OPC_CheckChild0Integer, 1, ++/*255760*/ OPC_CheckChild0Type, MVT::i32, ++/*255762*/ OPC_CheckChild1Integer, 1, ++/*255764*/ OPC_CheckChild1Type, MVT::i32, ++/*255766*/ OPC_CheckChild2Integer, 1, ++/*255768*/ OPC_CheckChild2Type, MVT::i32, ++/*255770*/ OPC_CheckChild3Integer, 1, ++/*255772*/ OPC_CheckChild3Type, MVT::i32, ++/*255774*/ OPC_CheckChild4Integer, 1, ++/*255776*/ OPC_CheckChild4Type, MVT::i32, ++/*255778*/ OPC_MoveChild5, ++/*255779*/ OPC_CheckInteger, 1, ++/*255781*/ OPC_CheckType, MVT::i32, ++/*255783*/ OPC_MoveParent, ++/*255784*/ OPC_MoveChild6, ++/*255785*/ OPC_CheckInteger, 1, ++/*255787*/ OPC_CheckType, MVT::i32, ++/*255789*/ OPC_MoveParent, ++/*255790*/ OPC_MoveChild7, ++/*255791*/ OPC_CheckInteger, 1, ++/*255793*/ OPC_CheckType, MVT::i32, ++/*255795*/ OPC_MoveParent, ++/*255796*/ OPC_MoveChild, 8, ++/*255798*/ OPC_CheckInteger, 1, ++/*255800*/ OPC_CheckType, MVT::i32, ++/*255802*/ OPC_MoveParent, ++/*255803*/ OPC_MoveChild, 9, ++/*255805*/ OPC_CheckInteger, 1, ++/*255807*/ OPC_CheckType, MVT::i32, ++/*255809*/ OPC_MoveParent, ++/*255810*/ OPC_MoveChild, 10, ++/*255812*/ OPC_CheckInteger, 1, ++/*255814*/ OPC_CheckType, MVT::i32, ++/*255816*/ OPC_MoveParent, ++/*255817*/ OPC_MoveChild, 11, ++/*255819*/ OPC_CheckInteger, 1, ++/*255821*/ OPC_CheckType, MVT::i32, ++/*255823*/ OPC_MoveParent, ++/*255824*/ OPC_MoveChild, 12, ++/*255826*/ OPC_CheckInteger, 1, ++/*255828*/ OPC_CheckType, MVT::i32, ++/*255830*/ OPC_MoveParent, ++/*255831*/ OPC_MoveChild, 13, ++/*255833*/ OPC_CheckInteger, 1, ++/*255835*/ OPC_CheckType, MVT::i32, ++/*255837*/ OPC_MoveParent, ++/*255838*/ OPC_MoveChild, 14, ++/*255840*/ OPC_CheckInteger, 1, ++/*255842*/ OPC_CheckType, MVT::i32, ++/*255844*/ OPC_MoveParent, ++/*255845*/ OPC_MoveChild, 15, ++/*255847*/ OPC_CheckInteger, 1, ++/*255849*/ OPC_CheckType, MVT::i32, ++/*255851*/ OPC_MoveParent, ++/*255852*/ OPC_CheckType, MVT::v16i16, ++/*255854*/ OPC_MoveParent, ++/*255855*/ OPC_CheckType, MVT::v16i16, ++/*255857*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*255859*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b)), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*255867*/ 0, /*End of Scope*/ ++/*255868*/ /*Scope*/ 10|128,5/*650*/, /*->256520*/ ++/*255870*/ OPC_CheckChild0Same, 1, ++/*255872*/ OPC_MoveChild1, ++/*255873*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*255876*/ OPC_Scope, 63|128,2/*319*/, /*->256198*/ // 2 children in Scope ++/*255879*/ OPC_MoveChild0, ++/*255880*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*255883*/ OPC_CheckChild0Integer, 1, ++/*255885*/ OPC_CheckChild0Type, MVT::i32, ++/*255887*/ OPC_CheckChild1Integer, 1, ++/*255889*/ OPC_CheckChild1Type, MVT::i32, ++/*255891*/ OPC_CheckChild2Integer, 1, ++/*255893*/ OPC_CheckChild2Type, MVT::i32, ++/*255895*/ OPC_CheckChild3Integer, 1, ++/*255897*/ OPC_CheckChild3Type, MVT::i32, ++/*255899*/ OPC_CheckChild4Integer, 1, ++/*255901*/ OPC_CheckChild4Type, MVT::i32, ++/*255903*/ OPC_MoveChild5, ++/*255904*/ OPC_CheckInteger, 1, ++/*255906*/ OPC_CheckType, MVT::i32, ++/*255908*/ OPC_MoveParent, ++/*255909*/ OPC_MoveChild6, ++/*255910*/ OPC_CheckInteger, 1, ++/*255912*/ OPC_CheckType, MVT::i32, ++/*255914*/ OPC_MoveParent, ++/*255915*/ OPC_MoveChild7, ++/*255916*/ OPC_CheckInteger, 1, ++/*255918*/ OPC_CheckType, MVT::i32, ++/*255920*/ OPC_MoveParent, ++/*255921*/ OPC_MoveChild, 8, ++/*255923*/ OPC_CheckInteger, 1, ++/*255925*/ OPC_CheckType, MVT::i32, ++/*255927*/ OPC_MoveParent, ++/*255928*/ OPC_MoveChild, 9, ++/*255930*/ OPC_CheckInteger, 1, ++/*255932*/ OPC_CheckType, MVT::i32, ++/*255934*/ OPC_MoveParent, ++/*255935*/ OPC_MoveChild, 10, ++/*255937*/ OPC_CheckInteger, 1, ++/*255939*/ OPC_CheckType, MVT::i32, ++/*255941*/ OPC_MoveParent, ++/*255942*/ OPC_MoveChild, 11, ++/*255944*/ OPC_CheckInteger, 1, ++/*255946*/ OPC_CheckType, MVT::i32, ++/*255948*/ OPC_MoveParent, ++/*255949*/ OPC_MoveChild, 12, ++/*255951*/ OPC_CheckInteger, 1, ++/*255953*/ OPC_CheckType, MVT::i32, ++/*255955*/ OPC_MoveParent, ++/*255956*/ OPC_MoveChild, 13, ++/*255958*/ OPC_CheckInteger, 1, ++/*255960*/ OPC_CheckType, MVT::i32, ++/*255962*/ OPC_MoveParent, ++/*255963*/ OPC_MoveChild, 14, ++/*255965*/ OPC_CheckInteger, 1, ++/*255967*/ OPC_CheckType, MVT::i32, ++/*255969*/ OPC_MoveParent, ++/*255970*/ OPC_MoveChild, 15, ++/*255972*/ OPC_CheckInteger, 1, ++/*255974*/ OPC_CheckType, MVT::i32, ++/*255976*/ OPC_MoveParent, ++/*255977*/ OPC_MoveParent, ++/*255978*/ OPC_CheckChild1Same, 0, ++/*255980*/ OPC_MoveParent, ++/*255981*/ OPC_MoveParent, ++/*255982*/ OPC_MoveChild1, ++/*255983*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*255986*/ OPC_CheckChild0Integer, 15, ++/*255988*/ OPC_CheckChild0Type, MVT::i32, ++/*255990*/ OPC_CheckChild1Integer, 15, ++/*255992*/ OPC_CheckChild1Type, MVT::i32, ++/*255994*/ OPC_CheckChild2Integer, 15, ++/*255996*/ OPC_CheckChild2Type, MVT::i32, ++/*255998*/ OPC_CheckChild3Integer, 15, ++/*256000*/ OPC_CheckChild3Type, MVT::i32, ++/*256002*/ OPC_CheckChild4Integer, 15, ++/*256004*/ OPC_CheckChild4Type, MVT::i32, ++/*256006*/ OPC_MoveChild5, ++/*256007*/ OPC_CheckInteger, 15, ++/*256009*/ OPC_CheckType, MVT::i32, ++/*256011*/ OPC_MoveParent, ++/*256012*/ OPC_MoveChild6, ++/*256013*/ OPC_CheckInteger, 15, ++/*256015*/ OPC_CheckType, MVT::i32, ++/*256017*/ OPC_MoveParent, ++/*256018*/ OPC_MoveChild7, ++/*256019*/ OPC_CheckInteger, 15, ++/*256021*/ OPC_CheckType, MVT::i32, ++/*256023*/ OPC_MoveParent, ++/*256024*/ OPC_MoveChild, 8, ++/*256026*/ OPC_CheckInteger, 15, ++/*256028*/ OPC_CheckType, MVT::i32, ++/*256030*/ OPC_MoveParent, ++/*256031*/ OPC_MoveChild, 9, ++/*256033*/ OPC_CheckInteger, 15, ++/*256035*/ OPC_CheckType, MVT::i32, ++/*256037*/ OPC_MoveParent, ++/*256038*/ OPC_MoveChild, 10, ++/*256040*/ OPC_CheckInteger, 15, ++/*256042*/ OPC_CheckType, MVT::i32, ++/*256044*/ OPC_MoveParent, ++/*256045*/ OPC_MoveChild, 11, ++/*256047*/ OPC_CheckInteger, 15, ++/*256049*/ OPC_CheckType, MVT::i32, ++/*256051*/ OPC_MoveParent, ++/*256052*/ OPC_MoveChild, 12, ++/*256054*/ OPC_CheckInteger, 15, ++/*256056*/ OPC_CheckType, MVT::i32, ++/*256058*/ OPC_MoveParent, ++/*256059*/ OPC_MoveChild, 13, ++/*256061*/ OPC_CheckInteger, 15, ++/*256063*/ OPC_CheckType, MVT::i32, ++/*256065*/ OPC_MoveParent, ++/*256066*/ OPC_MoveChild, 14, ++/*256068*/ OPC_CheckInteger, 15, ++/*256070*/ OPC_CheckType, MVT::i32, ++/*256072*/ OPC_MoveParent, ++/*256073*/ OPC_MoveChild, 15, ++/*256075*/ OPC_CheckInteger, 15, ++/*256077*/ OPC_CheckType, MVT::i32, ++/*256079*/ OPC_MoveParent, ++/*256080*/ OPC_CheckType, MVT::v16i16, ++/*256082*/ OPC_MoveParent, ++/*256083*/ OPC_MoveParent, ++/*256084*/ OPC_MoveParent, ++/*256085*/ OPC_MoveChild1, ++/*256086*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*256089*/ OPC_CheckChild0Integer, 1, ++/*256091*/ OPC_CheckChild0Type, MVT::i32, ++/*256093*/ OPC_CheckChild1Integer, 1, ++/*256095*/ OPC_CheckChild1Type, MVT::i32, ++/*256097*/ OPC_CheckChild2Integer, 1, ++/*256099*/ OPC_CheckChild2Type, MVT::i32, ++/*256101*/ OPC_CheckChild3Integer, 1, ++/*256103*/ OPC_CheckChild3Type, MVT::i32, ++/*256105*/ OPC_CheckChild4Integer, 1, ++/*256107*/ OPC_CheckChild4Type, MVT::i32, ++/*256109*/ OPC_MoveChild5, ++/*256110*/ OPC_CheckInteger, 1, ++/*256112*/ OPC_CheckType, MVT::i32, ++/*256114*/ OPC_MoveParent, ++/*256115*/ OPC_MoveChild6, ++/*256116*/ OPC_CheckInteger, 1, ++/*256118*/ OPC_CheckType, MVT::i32, ++/*256120*/ OPC_MoveParent, ++/*256121*/ OPC_MoveChild7, ++/*256122*/ OPC_CheckInteger, 1, ++/*256124*/ OPC_CheckType, MVT::i32, ++/*256126*/ OPC_MoveParent, ++/*256127*/ OPC_MoveChild, 8, ++/*256129*/ OPC_CheckInteger, 1, ++/*256131*/ OPC_CheckType, MVT::i32, ++/*256133*/ OPC_MoveParent, ++/*256134*/ OPC_MoveChild, 9, ++/*256136*/ OPC_CheckInteger, 1, ++/*256138*/ OPC_CheckType, MVT::i32, ++/*256140*/ OPC_MoveParent, ++/*256141*/ OPC_MoveChild, 10, ++/*256143*/ OPC_CheckInteger, 1, ++/*256145*/ OPC_CheckType, MVT::i32, ++/*256147*/ OPC_MoveParent, ++/*256148*/ OPC_MoveChild, 11, ++/*256150*/ OPC_CheckInteger, 1, ++/*256152*/ OPC_CheckType, MVT::i32, ++/*256154*/ OPC_MoveParent, ++/*256155*/ OPC_MoveChild, 12, ++/*256157*/ OPC_CheckInteger, 1, ++/*256159*/ OPC_CheckType, MVT::i32, ++/*256161*/ OPC_MoveParent, ++/*256162*/ OPC_MoveChild, 13, ++/*256164*/ OPC_CheckInteger, 1, ++/*256166*/ OPC_CheckType, MVT::i32, ++/*256168*/ OPC_MoveParent, ++/*256169*/ OPC_MoveChild, 14, ++/*256171*/ OPC_CheckInteger, 1, ++/*256173*/ OPC_CheckType, MVT::i32, ++/*256175*/ OPC_MoveParent, ++/*256176*/ OPC_MoveChild, 15, ++/*256178*/ OPC_CheckInteger, 1, ++/*256180*/ OPC_CheckType, MVT::i32, ++/*256182*/ OPC_MoveParent, ++/*256183*/ OPC_CheckType, MVT::v16i16, ++/*256185*/ OPC_MoveParent, ++/*256186*/ OPC_CheckType, MVT::v16i16, ++/*256188*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*256190*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b)), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*256198*/ /*Scope*/ 63|128,2/*319*/, /*->256519*/ ++/*256200*/ OPC_CheckChild0Same, 0, ++/*256202*/ OPC_MoveChild1, ++/*256203*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*256206*/ OPC_CheckChild0Integer, 1, ++/*256208*/ OPC_CheckChild0Type, MVT::i32, ++/*256210*/ OPC_CheckChild1Integer, 1, ++/*256212*/ OPC_CheckChild1Type, MVT::i32, ++/*256214*/ OPC_CheckChild2Integer, 1, ++/*256216*/ OPC_CheckChild2Type, MVT::i32, ++/*256218*/ OPC_CheckChild3Integer, 1, ++/*256220*/ OPC_CheckChild3Type, MVT::i32, ++/*256222*/ OPC_CheckChild4Integer, 1, ++/*256224*/ OPC_CheckChild4Type, MVT::i32, ++/*256226*/ OPC_MoveChild5, ++/*256227*/ OPC_CheckInteger, 1, ++/*256229*/ OPC_CheckType, MVT::i32, ++/*256231*/ OPC_MoveParent, ++/*256232*/ OPC_MoveChild6, ++/*256233*/ OPC_CheckInteger, 1, ++/*256235*/ OPC_CheckType, MVT::i32, ++/*256237*/ OPC_MoveParent, ++/*256238*/ OPC_MoveChild7, ++/*256239*/ OPC_CheckInteger, 1, ++/*256241*/ OPC_CheckType, MVT::i32, ++/*256243*/ OPC_MoveParent, ++/*256244*/ OPC_MoveChild, 8, ++/*256246*/ OPC_CheckInteger, 1, ++/*256248*/ OPC_CheckType, MVT::i32, ++/*256250*/ OPC_MoveParent, ++/*256251*/ OPC_MoveChild, 9, ++/*256253*/ OPC_CheckInteger, 1, ++/*256255*/ OPC_CheckType, MVT::i32, ++/*256257*/ OPC_MoveParent, ++/*256258*/ OPC_MoveChild, 10, ++/*256260*/ OPC_CheckInteger, 1, ++/*256262*/ OPC_CheckType, MVT::i32, ++/*256264*/ OPC_MoveParent, ++/*256265*/ OPC_MoveChild, 11, ++/*256267*/ OPC_CheckInteger, 1, ++/*256269*/ OPC_CheckType, MVT::i32, ++/*256271*/ OPC_MoveParent, ++/*256272*/ OPC_MoveChild, 12, ++/*256274*/ OPC_CheckInteger, 1, ++/*256276*/ OPC_CheckType, MVT::i32, ++/*256278*/ OPC_MoveParent, ++/*256279*/ OPC_MoveChild, 13, ++/*256281*/ OPC_CheckInteger, 1, ++/*256283*/ OPC_CheckType, MVT::i32, ++/*256285*/ OPC_MoveParent, ++/*256286*/ OPC_MoveChild, 14, ++/*256288*/ OPC_CheckInteger, 1, ++/*256290*/ OPC_CheckType, MVT::i32, ++/*256292*/ OPC_MoveParent, ++/*256293*/ OPC_MoveChild, 15, ++/*256295*/ OPC_CheckInteger, 1, ++/*256297*/ OPC_CheckType, MVT::i32, ++/*256299*/ OPC_MoveParent, ++/*256300*/ OPC_MoveParent, ++/*256301*/ OPC_MoveParent, ++/*256302*/ OPC_MoveParent, ++/*256303*/ OPC_MoveChild1, ++/*256304*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*256307*/ OPC_CheckChild0Integer, 15, ++/*256309*/ OPC_CheckChild0Type, MVT::i32, ++/*256311*/ OPC_CheckChild1Integer, 15, ++/*256313*/ OPC_CheckChild1Type, MVT::i32, ++/*256315*/ OPC_CheckChild2Integer, 15, ++/*256317*/ OPC_CheckChild2Type, MVT::i32, ++/*256319*/ OPC_CheckChild3Integer, 15, ++/*256321*/ OPC_CheckChild3Type, MVT::i32, ++/*256323*/ OPC_CheckChild4Integer, 15, ++/*256325*/ OPC_CheckChild4Type, MVT::i32, ++/*256327*/ OPC_MoveChild5, ++/*256328*/ OPC_CheckInteger, 15, ++/*256330*/ OPC_CheckType, MVT::i32, ++/*256332*/ OPC_MoveParent, ++/*256333*/ OPC_MoveChild6, ++/*256334*/ OPC_CheckInteger, 15, ++/*256336*/ OPC_CheckType, MVT::i32, ++/*256338*/ OPC_MoveParent, ++/*256339*/ OPC_MoveChild7, ++/*256340*/ OPC_CheckInteger, 15, ++/*256342*/ OPC_CheckType, MVT::i32, ++/*256344*/ OPC_MoveParent, ++/*256345*/ OPC_MoveChild, 8, ++/*256347*/ OPC_CheckInteger, 15, ++/*256349*/ OPC_CheckType, MVT::i32, ++/*256351*/ OPC_MoveParent, ++/*256352*/ OPC_MoveChild, 9, ++/*256354*/ OPC_CheckInteger, 15, ++/*256356*/ OPC_CheckType, MVT::i32, ++/*256358*/ OPC_MoveParent, ++/*256359*/ OPC_MoveChild, 10, ++/*256361*/ OPC_CheckInteger, 15, ++/*256363*/ OPC_CheckType, MVT::i32, ++/*256365*/ OPC_MoveParent, ++/*256366*/ OPC_MoveChild, 11, ++/*256368*/ OPC_CheckInteger, 15, ++/*256370*/ OPC_CheckType, MVT::i32, ++/*256372*/ OPC_MoveParent, ++/*256373*/ OPC_MoveChild, 12, ++/*256375*/ OPC_CheckInteger, 15, ++/*256377*/ OPC_CheckType, MVT::i32, ++/*256379*/ OPC_MoveParent, ++/*256380*/ OPC_MoveChild, 13, ++/*256382*/ OPC_CheckInteger, 15, ++/*256384*/ OPC_CheckType, MVT::i32, ++/*256386*/ OPC_MoveParent, ++/*256387*/ OPC_MoveChild, 14, ++/*256389*/ OPC_CheckInteger, 15, ++/*256391*/ OPC_CheckType, MVT::i32, ++/*256393*/ OPC_MoveParent, ++/*256394*/ OPC_MoveChild, 15, ++/*256396*/ OPC_CheckInteger, 15, ++/*256398*/ OPC_CheckType, MVT::i32, ++/*256400*/ OPC_MoveParent, ++/*256401*/ OPC_CheckType, MVT::v16i16, ++/*256403*/ OPC_MoveParent, ++/*256404*/ OPC_MoveParent, ++/*256405*/ OPC_MoveParent, ++/*256406*/ OPC_MoveChild1, ++/*256407*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*256410*/ OPC_CheckChild0Integer, 1, ++/*256412*/ OPC_CheckChild0Type, MVT::i32, ++/*256414*/ OPC_CheckChild1Integer, 1, ++/*256416*/ OPC_CheckChild1Type, MVT::i32, ++/*256418*/ OPC_CheckChild2Integer, 1, ++/*256420*/ OPC_CheckChild2Type, MVT::i32, ++/*256422*/ OPC_CheckChild3Integer, 1, ++/*256424*/ OPC_CheckChild3Type, MVT::i32, ++/*256426*/ OPC_CheckChild4Integer, 1, ++/*256428*/ OPC_CheckChild4Type, MVT::i32, ++/*256430*/ OPC_MoveChild5, ++/*256431*/ OPC_CheckInteger, 1, ++/*256433*/ OPC_CheckType, MVT::i32, ++/*256435*/ OPC_MoveParent, ++/*256436*/ OPC_MoveChild6, ++/*256437*/ OPC_CheckInteger, 1, ++/*256439*/ OPC_CheckType, MVT::i32, ++/*256441*/ OPC_MoveParent, ++/*256442*/ OPC_MoveChild7, ++/*256443*/ OPC_CheckInteger, 1, ++/*256445*/ OPC_CheckType, MVT::i32, ++/*256447*/ OPC_MoveParent, ++/*256448*/ OPC_MoveChild, 8, ++/*256450*/ OPC_CheckInteger, 1, ++/*256452*/ OPC_CheckType, MVT::i32, ++/*256454*/ OPC_MoveParent, ++/*256455*/ OPC_MoveChild, 9, ++/*256457*/ OPC_CheckInteger, 1, ++/*256459*/ OPC_CheckType, MVT::i32, ++/*256461*/ OPC_MoveParent, ++/*256462*/ OPC_MoveChild, 10, ++/*256464*/ OPC_CheckInteger, 1, ++/*256466*/ OPC_CheckType, MVT::i32, ++/*256468*/ OPC_MoveParent, ++/*256469*/ OPC_MoveChild, 11, ++/*256471*/ OPC_CheckInteger, 1, ++/*256473*/ OPC_CheckType, MVT::i32, ++/*256475*/ OPC_MoveParent, ++/*256476*/ OPC_MoveChild, 12, ++/*256478*/ OPC_CheckInteger, 1, ++/*256480*/ OPC_CheckType, MVT::i32, ++/*256482*/ OPC_MoveParent, ++/*256483*/ OPC_MoveChild, 13, ++/*256485*/ OPC_CheckInteger, 1, ++/*256487*/ OPC_CheckType, MVT::i32, ++/*256489*/ OPC_MoveParent, ++/*256490*/ OPC_MoveChild, 14, ++/*256492*/ OPC_CheckInteger, 1, ++/*256494*/ OPC_CheckType, MVT::i32, ++/*256496*/ OPC_MoveParent, ++/*256497*/ OPC_MoveChild, 15, ++/*256499*/ OPC_CheckInteger, 1, ++/*256501*/ OPC_CheckType, MVT::i32, ++/*256503*/ OPC_MoveParent, ++/*256504*/ OPC_CheckType, MVT::v16i16, ++/*256506*/ OPC_MoveParent, ++/*256507*/ OPC_CheckType, MVT::v16i16, ++/*256509*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*256511*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b)), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*256519*/ 0, /*End of Scope*/ ++/*256520*/ /*Scope*/ 10|128,5/*650*/, /*->257172*/ ++/*256522*/ OPC_CheckChild0Same, 0, ++/*256524*/ OPC_MoveChild1, ++/*256525*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*256528*/ OPC_Scope, 63|128,2/*319*/, /*->256850*/ // 2 children in Scope ++/*256531*/ OPC_MoveChild0, ++/*256532*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*256535*/ OPC_CheckChild0Integer, 1, ++/*256537*/ OPC_CheckChild0Type, MVT::i32, ++/*256539*/ OPC_CheckChild1Integer, 1, ++/*256541*/ OPC_CheckChild1Type, MVT::i32, ++/*256543*/ OPC_CheckChild2Integer, 1, ++/*256545*/ OPC_CheckChild2Type, MVT::i32, ++/*256547*/ OPC_CheckChild3Integer, 1, ++/*256549*/ OPC_CheckChild3Type, MVT::i32, ++/*256551*/ OPC_CheckChild4Integer, 1, ++/*256553*/ OPC_CheckChild4Type, MVT::i32, ++/*256555*/ OPC_MoveChild5, ++/*256556*/ OPC_CheckInteger, 1, ++/*256558*/ OPC_CheckType, MVT::i32, ++/*256560*/ OPC_MoveParent, ++/*256561*/ OPC_MoveChild6, ++/*256562*/ OPC_CheckInteger, 1, ++/*256564*/ OPC_CheckType, MVT::i32, ++/*256566*/ OPC_MoveParent, ++/*256567*/ OPC_MoveChild7, ++/*256568*/ OPC_CheckInteger, 1, ++/*256570*/ OPC_CheckType, MVT::i32, ++/*256572*/ OPC_MoveParent, ++/*256573*/ OPC_MoveChild, 8, ++/*256575*/ OPC_CheckInteger, 1, ++/*256577*/ OPC_CheckType, MVT::i32, ++/*256579*/ OPC_MoveParent, ++/*256580*/ OPC_MoveChild, 9, ++/*256582*/ OPC_CheckInteger, 1, ++/*256584*/ OPC_CheckType, MVT::i32, ++/*256586*/ OPC_MoveParent, ++/*256587*/ OPC_MoveChild, 10, ++/*256589*/ OPC_CheckInteger, 1, ++/*256591*/ OPC_CheckType, MVT::i32, ++/*256593*/ OPC_MoveParent, ++/*256594*/ OPC_MoveChild, 11, ++/*256596*/ OPC_CheckInteger, 1, ++/*256598*/ OPC_CheckType, MVT::i32, ++/*256600*/ OPC_MoveParent, ++/*256601*/ OPC_MoveChild, 12, ++/*256603*/ OPC_CheckInteger, 1, ++/*256605*/ OPC_CheckType, MVT::i32, ++/*256607*/ OPC_MoveParent, ++/*256608*/ OPC_MoveChild, 13, ++/*256610*/ OPC_CheckInteger, 1, ++/*256612*/ OPC_CheckType, MVT::i32, ++/*256614*/ OPC_MoveParent, ++/*256615*/ OPC_MoveChild, 14, ++/*256617*/ OPC_CheckInteger, 1, ++/*256619*/ OPC_CheckType, MVT::i32, ++/*256621*/ OPC_MoveParent, ++/*256622*/ OPC_MoveChild, 15, ++/*256624*/ OPC_CheckInteger, 1, ++/*256626*/ OPC_CheckType, MVT::i32, ++/*256628*/ OPC_MoveParent, ++/*256629*/ OPC_MoveParent, ++/*256630*/ OPC_CheckChild1Same, 1, ++/*256632*/ OPC_MoveParent, ++/*256633*/ OPC_MoveParent, ++/*256634*/ OPC_MoveChild1, ++/*256635*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*256638*/ OPC_CheckChild0Integer, 15, ++/*256640*/ OPC_CheckChild0Type, MVT::i32, ++/*256642*/ OPC_CheckChild1Integer, 15, ++/*256644*/ OPC_CheckChild1Type, MVT::i32, ++/*256646*/ OPC_CheckChild2Integer, 15, ++/*256648*/ OPC_CheckChild2Type, MVT::i32, ++/*256650*/ OPC_CheckChild3Integer, 15, ++/*256652*/ OPC_CheckChild3Type, MVT::i32, ++/*256654*/ OPC_CheckChild4Integer, 15, ++/*256656*/ OPC_CheckChild4Type, MVT::i32, ++/*256658*/ OPC_MoveChild5, ++/*256659*/ OPC_CheckInteger, 15, ++/*256661*/ OPC_CheckType, MVT::i32, ++/*256663*/ OPC_MoveParent, ++/*256664*/ OPC_MoveChild6, ++/*256665*/ OPC_CheckInteger, 15, ++/*256667*/ OPC_CheckType, MVT::i32, ++/*256669*/ OPC_MoveParent, ++/*256670*/ OPC_MoveChild7, ++/*256671*/ OPC_CheckInteger, 15, ++/*256673*/ OPC_CheckType, MVT::i32, ++/*256675*/ OPC_MoveParent, ++/*256676*/ OPC_MoveChild, 8, ++/*256678*/ OPC_CheckInteger, 15, ++/*256680*/ OPC_CheckType, MVT::i32, ++/*256682*/ OPC_MoveParent, ++/*256683*/ OPC_MoveChild, 9, ++/*256685*/ OPC_CheckInteger, 15, ++/*256687*/ OPC_CheckType, MVT::i32, ++/*256689*/ OPC_MoveParent, ++/*256690*/ OPC_MoveChild, 10, ++/*256692*/ OPC_CheckInteger, 15, ++/*256694*/ OPC_CheckType, MVT::i32, ++/*256696*/ OPC_MoveParent, ++/*256697*/ OPC_MoveChild, 11, ++/*256699*/ OPC_CheckInteger, 15, ++/*256701*/ OPC_CheckType, MVT::i32, ++/*256703*/ OPC_MoveParent, ++/*256704*/ OPC_MoveChild, 12, ++/*256706*/ OPC_CheckInteger, 15, ++/*256708*/ OPC_CheckType, MVT::i32, ++/*256710*/ OPC_MoveParent, ++/*256711*/ OPC_MoveChild, 13, ++/*256713*/ OPC_CheckInteger, 15, ++/*256715*/ OPC_CheckType, MVT::i32, ++/*256717*/ OPC_MoveParent, ++/*256718*/ OPC_MoveChild, 14, ++/*256720*/ OPC_CheckInteger, 15, ++/*256722*/ OPC_CheckType, MVT::i32, ++/*256724*/ OPC_MoveParent, ++/*256725*/ OPC_MoveChild, 15, ++/*256727*/ OPC_CheckInteger, 15, ++/*256729*/ OPC_CheckType, MVT::i32, ++/*256731*/ OPC_MoveParent, ++/*256732*/ OPC_CheckType, MVT::v16i16, ++/*256734*/ OPC_MoveParent, ++/*256735*/ OPC_MoveParent, ++/*256736*/ OPC_MoveParent, ++/*256737*/ OPC_MoveChild1, ++/*256738*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*256741*/ OPC_CheckChild0Integer, 1, ++/*256743*/ OPC_CheckChild0Type, MVT::i32, ++/*256745*/ OPC_CheckChild1Integer, 1, ++/*256747*/ OPC_CheckChild1Type, MVT::i32, ++/*256749*/ OPC_CheckChild2Integer, 1, ++/*256751*/ OPC_CheckChild2Type, MVT::i32, ++/*256753*/ OPC_CheckChild3Integer, 1, ++/*256755*/ OPC_CheckChild3Type, MVT::i32, ++/*256757*/ OPC_CheckChild4Integer, 1, ++/*256759*/ OPC_CheckChild4Type, MVT::i32, ++/*256761*/ OPC_MoveChild5, ++/*256762*/ OPC_CheckInteger, 1, ++/*256764*/ OPC_CheckType, MVT::i32, ++/*256766*/ OPC_MoveParent, ++/*256767*/ OPC_MoveChild6, ++/*256768*/ OPC_CheckInteger, 1, ++/*256770*/ OPC_CheckType, MVT::i32, ++/*256772*/ OPC_MoveParent, ++/*256773*/ OPC_MoveChild7, ++/*256774*/ OPC_CheckInteger, 1, ++/*256776*/ OPC_CheckType, MVT::i32, ++/*256778*/ OPC_MoveParent, ++/*256779*/ OPC_MoveChild, 8, ++/*256781*/ OPC_CheckInteger, 1, ++/*256783*/ OPC_CheckType, MVT::i32, ++/*256785*/ OPC_MoveParent, ++/*256786*/ OPC_MoveChild, 9, ++/*256788*/ OPC_CheckInteger, 1, ++/*256790*/ OPC_CheckType, MVT::i32, ++/*256792*/ OPC_MoveParent, ++/*256793*/ OPC_MoveChild, 10, ++/*256795*/ OPC_CheckInteger, 1, ++/*256797*/ OPC_CheckType, MVT::i32, ++/*256799*/ OPC_MoveParent, ++/*256800*/ OPC_MoveChild, 11, ++/*256802*/ OPC_CheckInteger, 1, ++/*256804*/ OPC_CheckType, MVT::i32, ++/*256806*/ OPC_MoveParent, ++/*256807*/ OPC_MoveChild, 12, ++/*256809*/ OPC_CheckInteger, 1, ++/*256811*/ OPC_CheckType, MVT::i32, ++/*256813*/ OPC_MoveParent, ++/*256814*/ OPC_MoveChild, 13, ++/*256816*/ OPC_CheckInteger, 1, ++/*256818*/ OPC_CheckType, MVT::i32, ++/*256820*/ OPC_MoveParent, ++/*256821*/ OPC_MoveChild, 14, ++/*256823*/ OPC_CheckInteger, 1, ++/*256825*/ OPC_CheckType, MVT::i32, ++/*256827*/ OPC_MoveParent, ++/*256828*/ OPC_MoveChild, 15, ++/*256830*/ OPC_CheckInteger, 1, ++/*256832*/ OPC_CheckType, MVT::i32, ++/*256834*/ OPC_MoveParent, ++/*256835*/ OPC_CheckType, MVT::v16i16, ++/*256837*/ OPC_MoveParent, ++/*256838*/ OPC_CheckType, MVT::v16i16, ++/*256840*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*256842*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b)), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*256850*/ /*Scope*/ 63|128,2/*319*/, /*->257171*/ ++/*256852*/ OPC_CheckChild0Same, 1, ++/*256854*/ OPC_MoveChild1, ++/*256855*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*256858*/ OPC_CheckChild0Integer, 1, ++/*256860*/ OPC_CheckChild0Type, MVT::i32, ++/*256862*/ OPC_CheckChild1Integer, 1, ++/*256864*/ OPC_CheckChild1Type, MVT::i32, ++/*256866*/ OPC_CheckChild2Integer, 1, ++/*256868*/ OPC_CheckChild2Type, MVT::i32, ++/*256870*/ OPC_CheckChild3Integer, 1, ++/*256872*/ OPC_CheckChild3Type, MVT::i32, ++/*256874*/ OPC_CheckChild4Integer, 1, ++/*256876*/ OPC_CheckChild4Type, MVT::i32, ++/*256878*/ OPC_MoveChild5, ++/*256879*/ OPC_CheckInteger, 1, ++/*256881*/ OPC_CheckType, MVT::i32, ++/*256883*/ OPC_MoveParent, ++/*256884*/ OPC_MoveChild6, ++/*256885*/ OPC_CheckInteger, 1, ++/*256887*/ OPC_CheckType, MVT::i32, ++/*256889*/ OPC_MoveParent, ++/*256890*/ OPC_MoveChild7, ++/*256891*/ OPC_CheckInteger, 1, ++/*256893*/ OPC_CheckType, MVT::i32, ++/*256895*/ OPC_MoveParent, ++/*256896*/ OPC_MoveChild, 8, ++/*256898*/ OPC_CheckInteger, 1, ++/*256900*/ OPC_CheckType, MVT::i32, ++/*256902*/ OPC_MoveParent, ++/*256903*/ OPC_MoveChild, 9, ++/*256905*/ OPC_CheckInteger, 1, ++/*256907*/ OPC_CheckType, MVT::i32, ++/*256909*/ OPC_MoveParent, ++/*256910*/ OPC_MoveChild, 10, ++/*256912*/ OPC_CheckInteger, 1, ++/*256914*/ OPC_CheckType, MVT::i32, ++/*256916*/ OPC_MoveParent, ++/*256917*/ OPC_MoveChild, 11, ++/*256919*/ OPC_CheckInteger, 1, ++/*256921*/ OPC_CheckType, MVT::i32, ++/*256923*/ OPC_MoveParent, ++/*256924*/ OPC_MoveChild, 12, ++/*256926*/ OPC_CheckInteger, 1, ++/*256928*/ OPC_CheckType, MVT::i32, ++/*256930*/ OPC_MoveParent, ++/*256931*/ OPC_MoveChild, 13, ++/*256933*/ OPC_CheckInteger, 1, ++/*256935*/ OPC_CheckType, MVT::i32, ++/*256937*/ OPC_MoveParent, ++/*256938*/ OPC_MoveChild, 14, ++/*256940*/ OPC_CheckInteger, 1, ++/*256942*/ OPC_CheckType, MVT::i32, ++/*256944*/ OPC_MoveParent, ++/*256945*/ OPC_MoveChild, 15, ++/*256947*/ OPC_CheckInteger, 1, ++/*256949*/ OPC_CheckType, MVT::i32, ++/*256951*/ OPC_MoveParent, ++/*256952*/ OPC_MoveParent, ++/*256953*/ OPC_MoveParent, ++/*256954*/ OPC_MoveParent, ++/*256955*/ OPC_MoveChild1, ++/*256956*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*256959*/ OPC_CheckChild0Integer, 15, ++/*256961*/ OPC_CheckChild0Type, MVT::i32, ++/*256963*/ OPC_CheckChild1Integer, 15, ++/*256965*/ OPC_CheckChild1Type, MVT::i32, ++/*256967*/ OPC_CheckChild2Integer, 15, ++/*256969*/ OPC_CheckChild2Type, MVT::i32, ++/*256971*/ OPC_CheckChild3Integer, 15, ++/*256973*/ OPC_CheckChild3Type, MVT::i32, ++/*256975*/ OPC_CheckChild4Integer, 15, ++/*256977*/ OPC_CheckChild4Type, MVT::i32, ++/*256979*/ OPC_MoveChild5, ++/*256980*/ OPC_CheckInteger, 15, ++/*256982*/ OPC_CheckType, MVT::i32, ++/*256984*/ OPC_MoveParent, ++/*256985*/ OPC_MoveChild6, ++/*256986*/ OPC_CheckInteger, 15, ++/*256988*/ OPC_CheckType, MVT::i32, ++/*256990*/ OPC_MoveParent, ++/*256991*/ OPC_MoveChild7, ++/*256992*/ OPC_CheckInteger, 15, ++/*256994*/ OPC_CheckType, MVT::i32, ++/*256996*/ OPC_MoveParent, ++/*256997*/ OPC_MoveChild, 8, ++/*256999*/ OPC_CheckInteger, 15, ++/*257001*/ OPC_CheckType, MVT::i32, ++/*257003*/ OPC_MoveParent, ++/*257004*/ OPC_MoveChild, 9, ++/*257006*/ OPC_CheckInteger, 15, ++/*257008*/ OPC_CheckType, MVT::i32, ++/*257010*/ OPC_MoveParent, ++/*257011*/ OPC_MoveChild, 10, ++/*257013*/ OPC_CheckInteger, 15, ++/*257015*/ OPC_CheckType, MVT::i32, ++/*257017*/ OPC_MoveParent, ++/*257018*/ OPC_MoveChild, 11, ++/*257020*/ OPC_CheckInteger, 15, ++/*257022*/ OPC_CheckType, MVT::i32, ++/*257024*/ OPC_MoveParent, ++/*257025*/ OPC_MoveChild, 12, ++/*257027*/ OPC_CheckInteger, 15, ++/*257029*/ OPC_CheckType, MVT::i32, ++/*257031*/ OPC_MoveParent, ++/*257032*/ OPC_MoveChild, 13, ++/*257034*/ OPC_CheckInteger, 15, ++/*257036*/ OPC_CheckType, MVT::i32, ++/*257038*/ OPC_MoveParent, ++/*257039*/ OPC_MoveChild, 14, ++/*257041*/ OPC_CheckInteger, 15, ++/*257043*/ OPC_CheckType, MVT::i32, ++/*257045*/ OPC_MoveParent, ++/*257046*/ OPC_MoveChild, 15, ++/*257048*/ OPC_CheckInteger, 15, ++/*257050*/ OPC_CheckType, MVT::i32, ++/*257052*/ OPC_MoveParent, ++/*257053*/ OPC_CheckType, MVT::v16i16, ++/*257055*/ OPC_MoveParent, ++/*257056*/ OPC_MoveParent, ++/*257057*/ OPC_MoveParent, ++/*257058*/ OPC_MoveChild1, ++/*257059*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*257062*/ OPC_CheckChild0Integer, 1, ++/*257064*/ OPC_CheckChild0Type, MVT::i32, ++/*257066*/ OPC_CheckChild1Integer, 1, ++/*257068*/ OPC_CheckChild1Type, MVT::i32, ++/*257070*/ OPC_CheckChild2Integer, 1, ++/*257072*/ OPC_CheckChild2Type, MVT::i32, ++/*257074*/ OPC_CheckChild3Integer, 1, ++/*257076*/ OPC_CheckChild3Type, MVT::i32, ++/*257078*/ OPC_CheckChild4Integer, 1, ++/*257080*/ OPC_CheckChild4Type, MVT::i32, ++/*257082*/ OPC_MoveChild5, ++/*257083*/ OPC_CheckInteger, 1, ++/*257085*/ OPC_CheckType, MVT::i32, ++/*257087*/ OPC_MoveParent, ++/*257088*/ OPC_MoveChild6, ++/*257089*/ OPC_CheckInteger, 1, ++/*257091*/ OPC_CheckType, MVT::i32, ++/*257093*/ OPC_MoveParent, ++/*257094*/ OPC_MoveChild7, ++/*257095*/ OPC_CheckInteger, 1, ++/*257097*/ OPC_CheckType, MVT::i32, ++/*257099*/ OPC_MoveParent, ++/*257100*/ OPC_MoveChild, 8, ++/*257102*/ OPC_CheckInteger, 1, ++/*257104*/ OPC_CheckType, MVT::i32, ++/*257106*/ OPC_MoveParent, ++/*257107*/ OPC_MoveChild, 9, ++/*257109*/ OPC_CheckInteger, 1, ++/*257111*/ OPC_CheckType, MVT::i32, ++/*257113*/ OPC_MoveParent, ++/*257114*/ OPC_MoveChild, 10, ++/*257116*/ OPC_CheckInteger, 1, ++/*257118*/ OPC_CheckType, MVT::i32, ++/*257120*/ OPC_MoveParent, ++/*257121*/ OPC_MoveChild, 11, ++/*257123*/ OPC_CheckInteger, 1, ++/*257125*/ OPC_CheckType, MVT::i32, ++/*257127*/ OPC_MoveParent, ++/*257128*/ OPC_MoveChild, 12, ++/*257130*/ OPC_CheckInteger, 1, ++/*257132*/ OPC_CheckType, MVT::i32, ++/*257134*/ OPC_MoveParent, ++/*257135*/ OPC_MoveChild, 13, ++/*257137*/ OPC_CheckInteger, 1, ++/*257139*/ OPC_CheckType, MVT::i32, ++/*257141*/ OPC_MoveParent, ++/*257142*/ OPC_MoveChild, 14, ++/*257144*/ OPC_CheckInteger, 1, ++/*257146*/ OPC_CheckType, MVT::i32, ++/*257148*/ OPC_MoveParent, ++/*257149*/ OPC_MoveChild, 15, ++/*257151*/ OPC_CheckInteger, 1, ++/*257153*/ OPC_CheckType, MVT::i32, ++/*257155*/ OPC_MoveParent, ++/*257156*/ OPC_CheckType, MVT::v16i16, ++/*257158*/ OPC_MoveParent, ++/*257159*/ OPC_CheckType, MVT::v16i16, ++/*257161*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*257163*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b)), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*257171*/ 0, /*End of Scope*/ ++/*257172*/ /*Scope*/ 41|128,4/*553*/, /*->257727*/ ++/*257174*/ OPC_MoveChild0, ++/*257175*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*257178*/ OPC_CheckChild0Integer, 1, ++/*257180*/ OPC_CheckChild0Type, MVT::i32, ++/*257182*/ OPC_CheckChild1Integer, 1, ++/*257184*/ OPC_CheckChild1Type, MVT::i32, ++/*257186*/ OPC_CheckChild2Integer, 1, ++/*257188*/ OPC_CheckChild2Type, MVT::i32, ++/*257190*/ OPC_CheckChild3Integer, 1, ++/*257192*/ OPC_CheckChild3Type, MVT::i32, ++/*257194*/ OPC_CheckChild4Integer, 1, ++/*257196*/ OPC_CheckChild4Type, MVT::i32, ++/*257198*/ OPC_MoveChild5, ++/*257199*/ OPC_CheckInteger, 1, ++/*257201*/ OPC_CheckType, MVT::i32, ++/*257203*/ OPC_MoveParent, ++/*257204*/ OPC_MoveChild6, ++/*257205*/ OPC_CheckInteger, 1, ++/*257207*/ OPC_CheckType, MVT::i32, ++/*257209*/ OPC_MoveParent, ++/*257210*/ OPC_MoveChild7, ++/*257211*/ OPC_CheckInteger, 1, ++/*257213*/ OPC_CheckType, MVT::i32, ++/*257215*/ OPC_MoveParent, ++/*257216*/ OPC_MoveChild, 8, ++/*257218*/ OPC_CheckInteger, 1, ++/*257220*/ OPC_CheckType, MVT::i32, ++/*257222*/ OPC_MoveParent, ++/*257223*/ OPC_MoveChild, 9, ++/*257225*/ OPC_CheckInteger, 1, ++/*257227*/ OPC_CheckType, MVT::i32, ++/*257229*/ OPC_MoveParent, ++/*257230*/ OPC_MoveChild, 10, ++/*257232*/ OPC_CheckInteger, 1, ++/*257234*/ OPC_CheckType, MVT::i32, ++/*257236*/ OPC_MoveParent, ++/*257237*/ OPC_MoveChild, 11, ++/*257239*/ OPC_CheckInteger, 1, ++/*257241*/ OPC_CheckType, MVT::i32, ++/*257243*/ OPC_MoveParent, ++/*257244*/ OPC_MoveChild, 12, ++/*257246*/ OPC_CheckInteger, 1, ++/*257248*/ OPC_CheckType, MVT::i32, ++/*257250*/ OPC_MoveParent, ++/*257251*/ OPC_MoveChild, 13, ++/*257253*/ OPC_CheckInteger, 1, ++/*257255*/ OPC_CheckType, MVT::i32, ++/*257257*/ OPC_MoveParent, ++/*257258*/ OPC_MoveChild, 14, ++/*257260*/ OPC_CheckInteger, 1, ++/*257262*/ OPC_CheckType, MVT::i32, ++/*257264*/ OPC_MoveParent, ++/*257265*/ OPC_MoveChild, 15, ++/*257267*/ OPC_CheckInteger, 1, ++/*257269*/ OPC_CheckType, MVT::i32, ++/*257271*/ OPC_MoveParent, ++/*257272*/ OPC_MoveParent, ++/*257273*/ OPC_MoveChild1, ++/*257274*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*257277*/ OPC_Scope, 94|128,1/*222*/, /*->257502*/ // 2 children in Scope ++/*257280*/ OPC_CheckChild0Same, 0, ++/*257282*/ OPC_CheckChild1Same, 1, ++/*257284*/ OPC_MoveParent, ++/*257285*/ OPC_MoveParent, ++/*257286*/ OPC_MoveChild1, ++/*257287*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*257290*/ OPC_CheckChild0Integer, 15, ++/*257292*/ OPC_CheckChild0Type, MVT::i32, ++/*257294*/ OPC_CheckChild1Integer, 15, ++/*257296*/ OPC_CheckChild1Type, MVT::i32, ++/*257298*/ OPC_CheckChild2Integer, 15, ++/*257300*/ OPC_CheckChild2Type, MVT::i32, ++/*257302*/ OPC_CheckChild3Integer, 15, ++/*257304*/ OPC_CheckChild3Type, MVT::i32, ++/*257306*/ OPC_CheckChild4Integer, 15, ++/*257308*/ OPC_CheckChild4Type, MVT::i32, ++/*257310*/ OPC_MoveChild5, ++/*257311*/ OPC_CheckInteger, 15, ++/*257313*/ OPC_CheckType, MVT::i32, ++/*257315*/ OPC_MoveParent, ++/*257316*/ OPC_MoveChild6, ++/*257317*/ OPC_CheckInteger, 15, ++/*257319*/ OPC_CheckType, MVT::i32, ++/*257321*/ OPC_MoveParent, ++/*257322*/ OPC_MoveChild7, ++/*257323*/ OPC_CheckInteger, 15, ++/*257325*/ OPC_CheckType, MVT::i32, ++/*257327*/ OPC_MoveParent, ++/*257328*/ OPC_MoveChild, 8, ++/*257330*/ OPC_CheckInteger, 15, ++/*257332*/ OPC_CheckType, MVT::i32, ++/*257334*/ OPC_MoveParent, ++/*257335*/ OPC_MoveChild, 9, ++/*257337*/ OPC_CheckInteger, 15, ++/*257339*/ OPC_CheckType, MVT::i32, ++/*257341*/ OPC_MoveParent, ++/*257342*/ OPC_MoveChild, 10, ++/*257344*/ OPC_CheckInteger, 15, ++/*257346*/ OPC_CheckType, MVT::i32, ++/*257348*/ OPC_MoveParent, ++/*257349*/ OPC_MoveChild, 11, ++/*257351*/ OPC_CheckInteger, 15, ++/*257353*/ OPC_CheckType, MVT::i32, ++/*257355*/ OPC_MoveParent, ++/*257356*/ OPC_MoveChild, 12, ++/*257358*/ OPC_CheckInteger, 15, ++/*257360*/ OPC_CheckType, MVT::i32, ++/*257362*/ OPC_MoveParent, ++/*257363*/ OPC_MoveChild, 13, ++/*257365*/ OPC_CheckInteger, 15, ++/*257367*/ OPC_CheckType, MVT::i32, ++/*257369*/ OPC_MoveParent, ++/*257370*/ OPC_MoveChild, 14, ++/*257372*/ OPC_CheckInteger, 15, ++/*257374*/ OPC_CheckType, MVT::i32, ++/*257376*/ OPC_MoveParent, ++/*257377*/ OPC_MoveChild, 15, ++/*257379*/ OPC_CheckInteger, 15, ++/*257381*/ OPC_CheckType, MVT::i32, ++/*257383*/ OPC_MoveParent, ++/*257384*/ OPC_CheckType, MVT::v16i16, ++/*257386*/ OPC_MoveParent, ++/*257387*/ OPC_MoveParent, ++/*257388*/ OPC_MoveParent, ++/*257389*/ OPC_MoveChild1, ++/*257390*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*257393*/ OPC_CheckChild0Integer, 1, ++/*257395*/ OPC_CheckChild0Type, MVT::i32, ++/*257397*/ OPC_CheckChild1Integer, 1, ++/*257399*/ OPC_CheckChild1Type, MVT::i32, ++/*257401*/ OPC_CheckChild2Integer, 1, ++/*257403*/ OPC_CheckChild2Type, MVT::i32, ++/*257405*/ OPC_CheckChild3Integer, 1, ++/*257407*/ OPC_CheckChild3Type, MVT::i32, ++/*257409*/ OPC_CheckChild4Integer, 1, ++/*257411*/ OPC_CheckChild4Type, MVT::i32, ++/*257413*/ OPC_MoveChild5, ++/*257414*/ OPC_CheckInteger, 1, ++/*257416*/ OPC_CheckType, MVT::i32, ++/*257418*/ OPC_MoveParent, ++/*257419*/ OPC_MoveChild6, ++/*257420*/ OPC_CheckInteger, 1, ++/*257422*/ OPC_CheckType, MVT::i32, ++/*257424*/ OPC_MoveParent, ++/*257425*/ OPC_MoveChild7, ++/*257426*/ OPC_CheckInteger, 1, ++/*257428*/ OPC_CheckType, MVT::i32, ++/*257430*/ OPC_MoveParent, ++/*257431*/ OPC_MoveChild, 8, ++/*257433*/ OPC_CheckInteger, 1, ++/*257435*/ OPC_CheckType, MVT::i32, ++/*257437*/ OPC_MoveParent, ++/*257438*/ OPC_MoveChild, 9, ++/*257440*/ OPC_CheckInteger, 1, ++/*257442*/ OPC_CheckType, MVT::i32, ++/*257444*/ OPC_MoveParent, ++/*257445*/ OPC_MoveChild, 10, ++/*257447*/ OPC_CheckInteger, 1, ++/*257449*/ OPC_CheckType, MVT::i32, ++/*257451*/ OPC_MoveParent, ++/*257452*/ OPC_MoveChild, 11, ++/*257454*/ OPC_CheckInteger, 1, ++/*257456*/ OPC_CheckType, MVT::i32, ++/*257458*/ OPC_MoveParent, ++/*257459*/ OPC_MoveChild, 12, ++/*257461*/ OPC_CheckInteger, 1, ++/*257463*/ OPC_CheckType, MVT::i32, ++/*257465*/ OPC_MoveParent, ++/*257466*/ OPC_MoveChild, 13, ++/*257468*/ OPC_CheckInteger, 1, ++/*257470*/ OPC_CheckType, MVT::i32, ++/*257472*/ OPC_MoveParent, ++/*257473*/ OPC_MoveChild, 14, ++/*257475*/ OPC_CheckInteger, 1, ++/*257477*/ OPC_CheckType, MVT::i32, ++/*257479*/ OPC_MoveParent, ++/*257480*/ OPC_MoveChild, 15, ++/*257482*/ OPC_CheckInteger, 1, ++/*257484*/ OPC_CheckType, MVT::i32, ++/*257486*/ OPC_MoveParent, ++/*257487*/ OPC_CheckType, MVT::v16i16, ++/*257489*/ OPC_MoveParent, ++/*257490*/ OPC_CheckType, MVT::v16i16, ++/*257492*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*257494*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b)), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*257502*/ /*Scope*/ 94|128,1/*222*/, /*->257726*/ ++/*257504*/ OPC_CheckChild0Same, 1, ++/*257506*/ OPC_CheckChild1Same, 0, ++/*257508*/ OPC_MoveParent, ++/*257509*/ OPC_MoveParent, ++/*257510*/ OPC_MoveChild1, ++/*257511*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*257514*/ OPC_CheckChild0Integer, 15, ++/*257516*/ OPC_CheckChild0Type, MVT::i32, ++/*257518*/ OPC_CheckChild1Integer, 15, ++/*257520*/ OPC_CheckChild1Type, MVT::i32, ++/*257522*/ OPC_CheckChild2Integer, 15, ++/*257524*/ OPC_CheckChild2Type, MVT::i32, ++/*257526*/ OPC_CheckChild3Integer, 15, ++/*257528*/ OPC_CheckChild3Type, MVT::i32, ++/*257530*/ OPC_CheckChild4Integer, 15, ++/*257532*/ OPC_CheckChild4Type, MVT::i32, ++/*257534*/ OPC_MoveChild5, ++/*257535*/ OPC_CheckInteger, 15, ++/*257537*/ OPC_CheckType, MVT::i32, ++/*257539*/ OPC_MoveParent, ++/*257540*/ OPC_MoveChild6, ++/*257541*/ OPC_CheckInteger, 15, ++/*257543*/ OPC_CheckType, MVT::i32, ++/*257545*/ OPC_MoveParent, ++/*257546*/ OPC_MoveChild7, ++/*257547*/ OPC_CheckInteger, 15, ++/*257549*/ OPC_CheckType, MVT::i32, ++/*257551*/ OPC_MoveParent, ++/*257552*/ OPC_MoveChild, 8, ++/*257554*/ OPC_CheckInteger, 15, ++/*257556*/ OPC_CheckType, MVT::i32, ++/*257558*/ OPC_MoveParent, ++/*257559*/ OPC_MoveChild, 9, ++/*257561*/ OPC_CheckInteger, 15, ++/*257563*/ OPC_CheckType, MVT::i32, ++/*257565*/ OPC_MoveParent, ++/*257566*/ OPC_MoveChild, 10, ++/*257568*/ OPC_CheckInteger, 15, ++/*257570*/ OPC_CheckType, MVT::i32, ++/*257572*/ OPC_MoveParent, ++/*257573*/ OPC_MoveChild, 11, ++/*257575*/ OPC_CheckInteger, 15, ++/*257577*/ OPC_CheckType, MVT::i32, ++/*257579*/ OPC_MoveParent, ++/*257580*/ OPC_MoveChild, 12, ++/*257582*/ OPC_CheckInteger, 15, ++/*257584*/ OPC_CheckType, MVT::i32, ++/*257586*/ OPC_MoveParent, ++/*257587*/ OPC_MoveChild, 13, ++/*257589*/ OPC_CheckInteger, 15, ++/*257591*/ OPC_CheckType, MVT::i32, ++/*257593*/ OPC_MoveParent, ++/*257594*/ OPC_MoveChild, 14, ++/*257596*/ OPC_CheckInteger, 15, ++/*257598*/ OPC_CheckType, MVT::i32, ++/*257600*/ OPC_MoveParent, ++/*257601*/ OPC_MoveChild, 15, ++/*257603*/ OPC_CheckInteger, 15, ++/*257605*/ OPC_CheckType, MVT::i32, ++/*257607*/ OPC_MoveParent, ++/*257608*/ OPC_CheckType, MVT::v16i16, ++/*257610*/ OPC_MoveParent, ++/*257611*/ OPC_MoveParent, ++/*257612*/ OPC_MoveParent, ++/*257613*/ OPC_MoveChild1, ++/*257614*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*257617*/ OPC_CheckChild0Integer, 1, ++/*257619*/ OPC_CheckChild0Type, MVT::i32, ++/*257621*/ OPC_CheckChild1Integer, 1, ++/*257623*/ OPC_CheckChild1Type, MVT::i32, ++/*257625*/ OPC_CheckChild2Integer, 1, ++/*257627*/ OPC_CheckChild2Type, MVT::i32, ++/*257629*/ OPC_CheckChild3Integer, 1, ++/*257631*/ OPC_CheckChild3Type, MVT::i32, ++/*257633*/ OPC_CheckChild4Integer, 1, ++/*257635*/ OPC_CheckChild4Type, MVT::i32, ++/*257637*/ OPC_MoveChild5, ++/*257638*/ OPC_CheckInteger, 1, ++/*257640*/ OPC_CheckType, MVT::i32, ++/*257642*/ OPC_MoveParent, ++/*257643*/ OPC_MoveChild6, ++/*257644*/ OPC_CheckInteger, 1, ++/*257646*/ OPC_CheckType, MVT::i32, ++/*257648*/ OPC_MoveParent, ++/*257649*/ OPC_MoveChild7, ++/*257650*/ OPC_CheckInteger, 1, ++/*257652*/ OPC_CheckType, MVT::i32, ++/*257654*/ OPC_MoveParent, ++/*257655*/ OPC_MoveChild, 8, ++/*257657*/ OPC_CheckInteger, 1, ++/*257659*/ OPC_CheckType, MVT::i32, ++/*257661*/ OPC_MoveParent, ++/*257662*/ OPC_MoveChild, 9, ++/*257664*/ OPC_CheckInteger, 1, ++/*257666*/ OPC_CheckType, MVT::i32, ++/*257668*/ OPC_MoveParent, ++/*257669*/ OPC_MoveChild, 10, ++/*257671*/ OPC_CheckInteger, 1, ++/*257673*/ OPC_CheckType, MVT::i32, ++/*257675*/ OPC_MoveParent, ++/*257676*/ OPC_MoveChild, 11, ++/*257678*/ OPC_CheckInteger, 1, ++/*257680*/ OPC_CheckType, MVT::i32, ++/*257682*/ OPC_MoveParent, ++/*257683*/ OPC_MoveChild, 12, ++/*257685*/ OPC_CheckInteger, 1, ++/*257687*/ OPC_CheckType, MVT::i32, ++/*257689*/ OPC_MoveParent, ++/*257690*/ OPC_MoveChild, 13, ++/*257692*/ OPC_CheckInteger, 1, ++/*257694*/ OPC_CheckType, MVT::i32, ++/*257696*/ OPC_MoveParent, ++/*257697*/ OPC_MoveChild, 14, ++/*257699*/ OPC_CheckInteger, 1, ++/*257701*/ OPC_CheckType, MVT::i32, ++/*257703*/ OPC_MoveParent, ++/*257704*/ OPC_MoveChild, 15, ++/*257706*/ OPC_CheckInteger, 1, ++/*257708*/ OPC_CheckType, MVT::i32, ++/*257710*/ OPC_MoveParent, ++/*257711*/ OPC_CheckType, MVT::v16i16, ++/*257713*/ OPC_MoveParent, ++/*257714*/ OPC_CheckType, MVT::v16i16, ++/*257716*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*257718*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b)), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*257726*/ 0, /*End of Scope*/ ++/*257727*/ 0, /*End of Scope*/ ++/*257728*/ /*Scope*/ 77|128,30/*3917*/, /*->261647*/ ++/*257730*/ OPC_RecordChild0, // #1 = $b ++/*257731*/ OPC_MoveChild1, ++/*257732*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*257735*/ OPC_CheckChild0Integer, 1, ++/*257737*/ OPC_CheckChild0Type, MVT::i32, ++/*257739*/ OPC_CheckChild1Integer, 1, ++/*257741*/ OPC_CheckChild1Type, MVT::i32, ++/*257743*/ OPC_CheckChild2Integer, 1, ++/*257745*/ OPC_CheckChild2Type, MVT::i32, ++/*257747*/ OPC_CheckChild3Integer, 1, ++/*257749*/ OPC_CheckChild3Type, MVT::i32, ++/*257751*/ OPC_CheckChild4Integer, 1, ++/*257753*/ OPC_CheckChild4Type, MVT::i32, ++/*257755*/ OPC_MoveChild5, ++/*257756*/ OPC_CheckInteger, 1, ++/*257758*/ OPC_CheckType, MVT::i32, ++/*257760*/ OPC_MoveParent, ++/*257761*/ OPC_MoveChild6, ++/*257762*/ OPC_CheckInteger, 1, ++/*257764*/ OPC_CheckType, MVT::i32, ++/*257766*/ OPC_MoveParent, ++/*257767*/ OPC_MoveChild7, ++/*257768*/ OPC_CheckInteger, 1, ++/*257770*/ OPC_CheckType, MVT::i32, ++/*257772*/ OPC_MoveParent, ++/*257773*/ OPC_MoveChild, 8, ++/*257775*/ OPC_CheckInteger, 1, ++/*257777*/ OPC_CheckType, MVT::i32, ++/*257779*/ OPC_MoveParent, ++/*257780*/ OPC_MoveChild, 9, ++/*257782*/ OPC_CheckInteger, 1, ++/*257784*/ OPC_CheckType, MVT::i32, ++/*257786*/ OPC_MoveParent, ++/*257787*/ OPC_MoveChild, 10, ++/*257789*/ OPC_CheckInteger, 1, ++/*257791*/ OPC_CheckType, MVT::i32, ++/*257793*/ OPC_MoveParent, ++/*257794*/ OPC_MoveChild, 11, ++/*257796*/ OPC_CheckInteger, 1, ++/*257798*/ OPC_CheckType, MVT::i32, ++/*257800*/ OPC_MoveParent, ++/*257801*/ OPC_MoveChild, 12, ++/*257803*/ OPC_CheckInteger, 1, ++/*257805*/ OPC_CheckType, MVT::i32, ++/*257807*/ OPC_MoveParent, ++/*257808*/ OPC_MoveChild, 13, ++/*257810*/ OPC_CheckInteger, 1, ++/*257812*/ OPC_CheckType, MVT::i32, ++/*257814*/ OPC_MoveParent, ++/*257815*/ OPC_MoveChild, 14, ++/*257817*/ OPC_CheckInteger, 1, ++/*257819*/ OPC_CheckType, MVT::i32, ++/*257821*/ OPC_MoveParent, ++/*257822*/ OPC_MoveChild, 15, ++/*257824*/ OPC_CheckInteger, 1, ++/*257826*/ OPC_CheckType, MVT::i32, ++/*257828*/ OPC_MoveParent, ++/*257829*/ OPC_MoveParent, ++/*257830*/ OPC_MoveParent, ++/*257831*/ OPC_MoveParent, ++/*257832*/ OPC_MoveChild1, ++/*257833*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*257836*/ OPC_MoveChild0, ++/*257837*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*257840*/ OPC_Scope, 24|128,15/*1944*/, /*->259787*/ // 4 children in Scope ++/*257843*/ OPC_MoveChild0, ++/*257844*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*257847*/ OPC_Scope, 65|128,2/*321*/, /*->258171*/ // 6 children in Scope ++/*257850*/ OPC_MoveChild0, ++/*257851*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*257854*/ OPC_CheckChild0Integer, 1, ++/*257856*/ OPC_CheckChild0Type, MVT::i32, ++/*257858*/ OPC_CheckChild1Integer, 1, ++/*257860*/ OPC_CheckChild1Type, MVT::i32, ++/*257862*/ OPC_CheckChild2Integer, 1, ++/*257864*/ OPC_CheckChild2Type, MVT::i32, ++/*257866*/ OPC_CheckChild3Integer, 1, ++/*257868*/ OPC_CheckChild3Type, MVT::i32, ++/*257870*/ OPC_CheckChild4Integer, 1, ++/*257872*/ OPC_CheckChild4Type, MVT::i32, ++/*257874*/ OPC_MoveChild5, ++/*257875*/ OPC_CheckInteger, 1, ++/*257877*/ OPC_CheckType, MVT::i32, ++/*257879*/ OPC_MoveParent, ++/*257880*/ OPC_MoveChild6, ++/*257881*/ OPC_CheckInteger, 1, ++/*257883*/ OPC_CheckType, MVT::i32, ++/*257885*/ OPC_MoveParent, ++/*257886*/ OPC_MoveChild7, ++/*257887*/ OPC_CheckInteger, 1, ++/*257889*/ OPC_CheckType, MVT::i32, ++/*257891*/ OPC_MoveParent, ++/*257892*/ OPC_MoveChild, 8, ++/*257894*/ OPC_CheckInteger, 1, ++/*257896*/ OPC_CheckType, MVT::i32, ++/*257898*/ OPC_MoveParent, ++/*257899*/ OPC_MoveChild, 9, ++/*257901*/ OPC_CheckInteger, 1, ++/*257903*/ OPC_CheckType, MVT::i32, ++/*257905*/ OPC_MoveParent, ++/*257906*/ OPC_MoveChild, 10, ++/*257908*/ OPC_CheckInteger, 1, ++/*257910*/ OPC_CheckType, MVT::i32, ++/*257912*/ OPC_MoveParent, ++/*257913*/ OPC_MoveChild, 11, ++/*257915*/ OPC_CheckInteger, 1, ++/*257917*/ OPC_CheckType, MVT::i32, ++/*257919*/ OPC_MoveParent, ++/*257920*/ OPC_MoveChild, 12, ++/*257922*/ OPC_CheckInteger, 1, ++/*257924*/ OPC_CheckType, MVT::i32, ++/*257926*/ OPC_MoveParent, ++/*257927*/ OPC_MoveChild, 13, ++/*257929*/ OPC_CheckInteger, 1, ++/*257931*/ OPC_CheckType, MVT::i32, ++/*257933*/ OPC_MoveParent, ++/*257934*/ OPC_MoveChild, 14, ++/*257936*/ OPC_CheckInteger, 1, ++/*257938*/ OPC_CheckType, MVT::i32, ++/*257940*/ OPC_MoveParent, ++/*257941*/ OPC_MoveChild, 15, ++/*257943*/ OPC_CheckInteger, 1, ++/*257945*/ OPC_CheckType, MVT::i32, ++/*257947*/ OPC_MoveParent, ++/*257948*/ OPC_MoveParent, ++/*257949*/ OPC_CheckChild1Same, 0, ++/*257951*/ OPC_MoveParent, ++/*257952*/ OPC_CheckChild1Same, 1, ++/*257954*/ OPC_MoveParent, ++/*257955*/ OPC_MoveChild1, ++/*257956*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*257959*/ OPC_CheckChild0Integer, 15, ++/*257961*/ OPC_CheckChild0Type, MVT::i32, ++/*257963*/ OPC_CheckChild1Integer, 15, ++/*257965*/ OPC_CheckChild1Type, MVT::i32, ++/*257967*/ OPC_CheckChild2Integer, 15, ++/*257969*/ OPC_CheckChild2Type, MVT::i32, ++/*257971*/ OPC_CheckChild3Integer, 15, ++/*257973*/ OPC_CheckChild3Type, MVT::i32, ++/*257975*/ OPC_CheckChild4Integer, 15, ++/*257977*/ OPC_CheckChild4Type, MVT::i32, ++/*257979*/ OPC_MoveChild5, ++/*257980*/ OPC_CheckInteger, 15, ++/*257982*/ OPC_CheckType, MVT::i32, ++/*257984*/ OPC_MoveParent, ++/*257985*/ OPC_MoveChild6, ++/*257986*/ OPC_CheckInteger, 15, ++/*257988*/ OPC_CheckType, MVT::i32, ++/*257990*/ OPC_MoveParent, ++/*257991*/ OPC_MoveChild7, ++/*257992*/ OPC_CheckInteger, 15, ++/*257994*/ OPC_CheckType, MVT::i32, ++/*257996*/ OPC_MoveParent, ++/*257997*/ OPC_MoveChild, 8, ++/*257999*/ OPC_CheckInteger, 15, ++/*258001*/ OPC_CheckType, MVT::i32, ++/*258003*/ OPC_MoveParent, ++/*258004*/ OPC_MoveChild, 9, ++/*258006*/ OPC_CheckInteger, 15, ++/*258008*/ OPC_CheckType, MVT::i32, ++/*258010*/ OPC_MoveParent, ++/*258011*/ OPC_MoveChild, 10, ++/*258013*/ OPC_CheckInteger, 15, ++/*258015*/ OPC_CheckType, MVT::i32, ++/*258017*/ OPC_MoveParent, ++/*258018*/ OPC_MoveChild, 11, ++/*258020*/ OPC_CheckInteger, 15, ++/*258022*/ OPC_CheckType, MVT::i32, ++/*258024*/ OPC_MoveParent, ++/*258025*/ OPC_MoveChild, 12, ++/*258027*/ OPC_CheckInteger, 15, ++/*258029*/ OPC_CheckType, MVT::i32, ++/*258031*/ OPC_MoveParent, ++/*258032*/ OPC_MoveChild, 13, ++/*258034*/ OPC_CheckInteger, 15, ++/*258036*/ OPC_CheckType, MVT::i32, ++/*258038*/ OPC_MoveParent, ++/*258039*/ OPC_MoveChild, 14, ++/*258041*/ OPC_CheckInteger, 15, ++/*258043*/ OPC_CheckType, MVT::i32, ++/*258045*/ OPC_MoveParent, ++/*258046*/ OPC_MoveChild, 15, ++/*258048*/ OPC_CheckInteger, 15, ++/*258050*/ OPC_CheckType, MVT::i32, ++/*258052*/ OPC_MoveParent, ++/*258053*/ OPC_CheckType, MVT::v16i16, ++/*258055*/ OPC_MoveParent, ++/*258056*/ OPC_MoveParent, ++/*258057*/ OPC_MoveParent, ++/*258058*/ OPC_MoveChild1, ++/*258059*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*258062*/ OPC_CheckChild0Integer, 1, ++/*258064*/ OPC_CheckChild0Type, MVT::i32, ++/*258066*/ OPC_CheckChild1Integer, 1, ++/*258068*/ OPC_CheckChild1Type, MVT::i32, ++/*258070*/ OPC_CheckChild2Integer, 1, ++/*258072*/ OPC_CheckChild2Type, MVT::i32, ++/*258074*/ OPC_CheckChild3Integer, 1, ++/*258076*/ OPC_CheckChild3Type, MVT::i32, ++/*258078*/ OPC_CheckChild4Integer, 1, ++/*258080*/ OPC_CheckChild4Type, MVT::i32, ++/*258082*/ OPC_MoveChild5, ++/*258083*/ OPC_CheckInteger, 1, ++/*258085*/ OPC_CheckType, MVT::i32, ++/*258087*/ OPC_MoveParent, ++/*258088*/ OPC_MoveChild6, ++/*258089*/ OPC_CheckInteger, 1, ++/*258091*/ OPC_CheckType, MVT::i32, ++/*258093*/ OPC_MoveParent, ++/*258094*/ OPC_MoveChild7, ++/*258095*/ OPC_CheckInteger, 1, ++/*258097*/ OPC_CheckType, MVT::i32, ++/*258099*/ OPC_MoveParent, ++/*258100*/ OPC_MoveChild, 8, ++/*258102*/ OPC_CheckInteger, 1, ++/*258104*/ OPC_CheckType, MVT::i32, ++/*258106*/ OPC_MoveParent, ++/*258107*/ OPC_MoveChild, 9, ++/*258109*/ OPC_CheckInteger, 1, ++/*258111*/ OPC_CheckType, MVT::i32, ++/*258113*/ OPC_MoveParent, ++/*258114*/ OPC_MoveChild, 10, ++/*258116*/ OPC_CheckInteger, 1, ++/*258118*/ OPC_CheckType, MVT::i32, ++/*258120*/ OPC_MoveParent, ++/*258121*/ OPC_MoveChild, 11, ++/*258123*/ OPC_CheckInteger, 1, ++/*258125*/ OPC_CheckType, MVT::i32, ++/*258127*/ OPC_MoveParent, ++/*258128*/ OPC_MoveChild, 12, ++/*258130*/ OPC_CheckInteger, 1, ++/*258132*/ OPC_CheckType, MVT::i32, ++/*258134*/ OPC_MoveParent, ++/*258135*/ OPC_MoveChild, 13, ++/*258137*/ OPC_CheckInteger, 1, ++/*258139*/ OPC_CheckType, MVT::i32, ++/*258141*/ OPC_MoveParent, ++/*258142*/ OPC_MoveChild, 14, ++/*258144*/ OPC_CheckInteger, 1, ++/*258146*/ OPC_CheckType, MVT::i32, ++/*258148*/ OPC_MoveParent, ++/*258149*/ OPC_MoveChild, 15, ++/*258151*/ OPC_CheckInteger, 1, ++/*258153*/ OPC_CheckType, MVT::i32, ++/*258155*/ OPC_MoveParent, ++/*258156*/ OPC_CheckType, MVT::v16i16, ++/*258158*/ OPC_MoveParent, ++/*258159*/ OPC_CheckType, MVT::v16i16, ++/*258161*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*258163*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a), LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*258171*/ /*Scope*/ 65|128,2/*321*/, /*->258494*/ ++/*258173*/ OPC_CheckChild0Same, 0, ++/*258175*/ OPC_MoveChild1, ++/*258176*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*258179*/ OPC_CheckChild0Integer, 1, ++/*258181*/ OPC_CheckChild0Type, MVT::i32, ++/*258183*/ OPC_CheckChild1Integer, 1, ++/*258185*/ OPC_CheckChild1Type, MVT::i32, ++/*258187*/ OPC_CheckChild2Integer, 1, ++/*258189*/ OPC_CheckChild2Type, MVT::i32, ++/*258191*/ OPC_CheckChild3Integer, 1, ++/*258193*/ OPC_CheckChild3Type, MVT::i32, ++/*258195*/ OPC_CheckChild4Integer, 1, ++/*258197*/ OPC_CheckChild4Type, MVT::i32, ++/*258199*/ OPC_MoveChild5, ++/*258200*/ OPC_CheckInteger, 1, ++/*258202*/ OPC_CheckType, MVT::i32, ++/*258204*/ OPC_MoveParent, ++/*258205*/ OPC_MoveChild6, ++/*258206*/ OPC_CheckInteger, 1, ++/*258208*/ OPC_CheckType, MVT::i32, ++/*258210*/ OPC_MoveParent, ++/*258211*/ OPC_MoveChild7, ++/*258212*/ OPC_CheckInteger, 1, ++/*258214*/ OPC_CheckType, MVT::i32, ++/*258216*/ OPC_MoveParent, ++/*258217*/ OPC_MoveChild, 8, ++/*258219*/ OPC_CheckInteger, 1, ++/*258221*/ OPC_CheckType, MVT::i32, ++/*258223*/ OPC_MoveParent, ++/*258224*/ OPC_MoveChild, 9, ++/*258226*/ OPC_CheckInteger, 1, ++/*258228*/ OPC_CheckType, MVT::i32, ++/*258230*/ OPC_MoveParent, ++/*258231*/ OPC_MoveChild, 10, ++/*258233*/ OPC_CheckInteger, 1, ++/*258235*/ OPC_CheckType, MVT::i32, ++/*258237*/ OPC_MoveParent, ++/*258238*/ OPC_MoveChild, 11, ++/*258240*/ OPC_CheckInteger, 1, ++/*258242*/ OPC_CheckType, MVT::i32, ++/*258244*/ OPC_MoveParent, ++/*258245*/ OPC_MoveChild, 12, ++/*258247*/ OPC_CheckInteger, 1, ++/*258249*/ OPC_CheckType, MVT::i32, ++/*258251*/ OPC_MoveParent, ++/*258252*/ OPC_MoveChild, 13, ++/*258254*/ OPC_CheckInteger, 1, ++/*258256*/ OPC_CheckType, MVT::i32, ++/*258258*/ OPC_MoveParent, ++/*258259*/ OPC_MoveChild, 14, ++/*258261*/ OPC_CheckInteger, 1, ++/*258263*/ OPC_CheckType, MVT::i32, ++/*258265*/ OPC_MoveParent, ++/*258266*/ OPC_MoveChild, 15, ++/*258268*/ OPC_CheckInteger, 1, ++/*258270*/ OPC_CheckType, MVT::i32, ++/*258272*/ OPC_MoveParent, ++/*258273*/ OPC_MoveParent, ++/*258274*/ OPC_MoveParent, ++/*258275*/ OPC_CheckChild1Same, 1, ++/*258277*/ OPC_MoveParent, ++/*258278*/ OPC_MoveChild1, ++/*258279*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*258282*/ OPC_CheckChild0Integer, 15, ++/*258284*/ OPC_CheckChild0Type, MVT::i32, ++/*258286*/ OPC_CheckChild1Integer, 15, ++/*258288*/ OPC_CheckChild1Type, MVT::i32, ++/*258290*/ OPC_CheckChild2Integer, 15, ++/*258292*/ OPC_CheckChild2Type, MVT::i32, ++/*258294*/ OPC_CheckChild3Integer, 15, ++/*258296*/ OPC_CheckChild3Type, MVT::i32, ++/*258298*/ OPC_CheckChild4Integer, 15, ++/*258300*/ OPC_CheckChild4Type, MVT::i32, ++/*258302*/ OPC_MoveChild5, ++/*258303*/ OPC_CheckInteger, 15, ++/*258305*/ OPC_CheckType, MVT::i32, ++/*258307*/ OPC_MoveParent, ++/*258308*/ OPC_MoveChild6, ++/*258309*/ OPC_CheckInteger, 15, ++/*258311*/ OPC_CheckType, MVT::i32, ++/*258313*/ OPC_MoveParent, ++/*258314*/ OPC_MoveChild7, ++/*258315*/ OPC_CheckInteger, 15, ++/*258317*/ OPC_CheckType, MVT::i32, ++/*258319*/ OPC_MoveParent, ++/*258320*/ OPC_MoveChild, 8, ++/*258322*/ OPC_CheckInteger, 15, ++/*258324*/ OPC_CheckType, MVT::i32, ++/*258326*/ OPC_MoveParent, ++/*258327*/ OPC_MoveChild, 9, ++/*258329*/ OPC_CheckInteger, 15, ++/*258331*/ OPC_CheckType, MVT::i32, ++/*258333*/ OPC_MoveParent, ++/*258334*/ OPC_MoveChild, 10, ++/*258336*/ OPC_CheckInteger, 15, ++/*258338*/ OPC_CheckType, MVT::i32, ++/*258340*/ OPC_MoveParent, ++/*258341*/ OPC_MoveChild, 11, ++/*258343*/ OPC_CheckInteger, 15, ++/*258345*/ OPC_CheckType, MVT::i32, ++/*258347*/ OPC_MoveParent, ++/*258348*/ OPC_MoveChild, 12, ++/*258350*/ OPC_CheckInteger, 15, ++/*258352*/ OPC_CheckType, MVT::i32, ++/*258354*/ OPC_MoveParent, ++/*258355*/ OPC_MoveChild, 13, ++/*258357*/ OPC_CheckInteger, 15, ++/*258359*/ OPC_CheckType, MVT::i32, ++/*258361*/ OPC_MoveParent, ++/*258362*/ OPC_MoveChild, 14, ++/*258364*/ OPC_CheckInteger, 15, ++/*258366*/ OPC_CheckType, MVT::i32, ++/*258368*/ OPC_MoveParent, ++/*258369*/ OPC_MoveChild, 15, ++/*258371*/ OPC_CheckInteger, 15, ++/*258373*/ OPC_CheckType, MVT::i32, ++/*258375*/ OPC_MoveParent, ++/*258376*/ OPC_CheckType, MVT::v16i16, ++/*258378*/ OPC_MoveParent, ++/*258379*/ OPC_MoveParent, ++/*258380*/ OPC_MoveParent, ++/*258381*/ OPC_MoveChild1, ++/*258382*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*258385*/ OPC_CheckChild0Integer, 1, ++/*258387*/ OPC_CheckChild0Type, MVT::i32, ++/*258389*/ OPC_CheckChild1Integer, 1, ++/*258391*/ OPC_CheckChild1Type, MVT::i32, ++/*258393*/ OPC_CheckChild2Integer, 1, ++/*258395*/ OPC_CheckChild2Type, MVT::i32, ++/*258397*/ OPC_CheckChild3Integer, 1, ++/*258399*/ OPC_CheckChild3Type, MVT::i32, ++/*258401*/ OPC_CheckChild4Integer, 1, ++/*258403*/ OPC_CheckChild4Type, MVT::i32, ++/*258405*/ OPC_MoveChild5, ++/*258406*/ OPC_CheckInteger, 1, ++/*258408*/ OPC_CheckType, MVT::i32, ++/*258410*/ OPC_MoveParent, ++/*258411*/ OPC_MoveChild6, ++/*258412*/ OPC_CheckInteger, 1, ++/*258414*/ OPC_CheckType, MVT::i32, ++/*258416*/ OPC_MoveParent, ++/*258417*/ OPC_MoveChild7, ++/*258418*/ OPC_CheckInteger, 1, ++/*258420*/ OPC_CheckType, MVT::i32, ++/*258422*/ OPC_MoveParent, ++/*258423*/ OPC_MoveChild, 8, ++/*258425*/ OPC_CheckInteger, 1, ++/*258427*/ OPC_CheckType, MVT::i32, ++/*258429*/ OPC_MoveParent, ++/*258430*/ OPC_MoveChild, 9, ++/*258432*/ OPC_CheckInteger, 1, ++/*258434*/ OPC_CheckType, MVT::i32, ++/*258436*/ OPC_MoveParent, ++/*258437*/ OPC_MoveChild, 10, ++/*258439*/ OPC_CheckInteger, 1, ++/*258441*/ OPC_CheckType, MVT::i32, ++/*258443*/ OPC_MoveParent, ++/*258444*/ OPC_MoveChild, 11, ++/*258446*/ OPC_CheckInteger, 1, ++/*258448*/ OPC_CheckType, MVT::i32, ++/*258450*/ OPC_MoveParent, ++/*258451*/ OPC_MoveChild, 12, ++/*258453*/ OPC_CheckInteger, 1, ++/*258455*/ OPC_CheckType, MVT::i32, ++/*258457*/ OPC_MoveParent, ++/*258458*/ OPC_MoveChild, 13, ++/*258460*/ OPC_CheckInteger, 1, ++/*258462*/ OPC_CheckType, MVT::i32, ++/*258464*/ OPC_MoveParent, ++/*258465*/ OPC_MoveChild, 14, ++/*258467*/ OPC_CheckInteger, 1, ++/*258469*/ OPC_CheckType, MVT::i32, ++/*258471*/ OPC_MoveParent, ++/*258472*/ OPC_MoveChild, 15, ++/*258474*/ OPC_CheckInteger, 1, ++/*258476*/ OPC_CheckType, MVT::i32, ++/*258478*/ OPC_MoveParent, ++/*258479*/ OPC_CheckType, MVT::v16i16, ++/*258481*/ OPC_MoveParent, ++/*258482*/ OPC_CheckType, MVT::v16i16, ++/*258484*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*258486*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*258494*/ /*Scope*/ 65|128,2/*321*/, /*->258817*/ ++/*258496*/ OPC_MoveChild0, ++/*258497*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*258500*/ OPC_CheckChild0Integer, 1, ++/*258502*/ OPC_CheckChild0Type, MVT::i32, ++/*258504*/ OPC_CheckChild1Integer, 1, ++/*258506*/ OPC_CheckChild1Type, MVT::i32, ++/*258508*/ OPC_CheckChild2Integer, 1, ++/*258510*/ OPC_CheckChild2Type, MVT::i32, ++/*258512*/ OPC_CheckChild3Integer, 1, ++/*258514*/ OPC_CheckChild3Type, MVT::i32, ++/*258516*/ OPC_CheckChild4Integer, 1, ++/*258518*/ OPC_CheckChild4Type, MVT::i32, ++/*258520*/ OPC_MoveChild5, ++/*258521*/ OPC_CheckInteger, 1, ++/*258523*/ OPC_CheckType, MVT::i32, ++/*258525*/ OPC_MoveParent, ++/*258526*/ OPC_MoveChild6, ++/*258527*/ OPC_CheckInteger, 1, ++/*258529*/ OPC_CheckType, MVT::i32, ++/*258531*/ OPC_MoveParent, ++/*258532*/ OPC_MoveChild7, ++/*258533*/ OPC_CheckInteger, 1, ++/*258535*/ OPC_CheckType, MVT::i32, ++/*258537*/ OPC_MoveParent, ++/*258538*/ OPC_MoveChild, 8, ++/*258540*/ OPC_CheckInteger, 1, ++/*258542*/ OPC_CheckType, MVT::i32, ++/*258544*/ OPC_MoveParent, ++/*258545*/ OPC_MoveChild, 9, ++/*258547*/ OPC_CheckInteger, 1, ++/*258549*/ OPC_CheckType, MVT::i32, ++/*258551*/ OPC_MoveParent, ++/*258552*/ OPC_MoveChild, 10, ++/*258554*/ OPC_CheckInteger, 1, ++/*258556*/ OPC_CheckType, MVT::i32, ++/*258558*/ OPC_MoveParent, ++/*258559*/ OPC_MoveChild, 11, ++/*258561*/ OPC_CheckInteger, 1, ++/*258563*/ OPC_CheckType, MVT::i32, ++/*258565*/ OPC_MoveParent, ++/*258566*/ OPC_MoveChild, 12, ++/*258568*/ OPC_CheckInteger, 1, ++/*258570*/ OPC_CheckType, MVT::i32, ++/*258572*/ OPC_MoveParent, ++/*258573*/ OPC_MoveChild, 13, ++/*258575*/ OPC_CheckInteger, 1, ++/*258577*/ OPC_CheckType, MVT::i32, ++/*258579*/ OPC_MoveParent, ++/*258580*/ OPC_MoveChild, 14, ++/*258582*/ OPC_CheckInteger, 1, ++/*258584*/ OPC_CheckType, MVT::i32, ++/*258586*/ OPC_MoveParent, ++/*258587*/ OPC_MoveChild, 15, ++/*258589*/ OPC_CheckInteger, 1, ++/*258591*/ OPC_CheckType, MVT::i32, ++/*258593*/ OPC_MoveParent, ++/*258594*/ OPC_MoveParent, ++/*258595*/ OPC_CheckChild1Same, 1, ++/*258597*/ OPC_MoveParent, ++/*258598*/ OPC_CheckChild1Same, 0, ++/*258600*/ OPC_MoveParent, ++/*258601*/ OPC_MoveChild1, ++/*258602*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*258605*/ OPC_CheckChild0Integer, 15, ++/*258607*/ OPC_CheckChild0Type, MVT::i32, ++/*258609*/ OPC_CheckChild1Integer, 15, ++/*258611*/ OPC_CheckChild1Type, MVT::i32, ++/*258613*/ OPC_CheckChild2Integer, 15, ++/*258615*/ OPC_CheckChild2Type, MVT::i32, ++/*258617*/ OPC_CheckChild3Integer, 15, ++/*258619*/ OPC_CheckChild3Type, MVT::i32, ++/*258621*/ OPC_CheckChild4Integer, 15, ++/*258623*/ OPC_CheckChild4Type, MVT::i32, ++/*258625*/ OPC_MoveChild5, ++/*258626*/ OPC_CheckInteger, 15, ++/*258628*/ OPC_CheckType, MVT::i32, ++/*258630*/ OPC_MoveParent, ++/*258631*/ OPC_MoveChild6, ++/*258632*/ OPC_CheckInteger, 15, ++/*258634*/ OPC_CheckType, MVT::i32, ++/*258636*/ OPC_MoveParent, ++/*258637*/ OPC_MoveChild7, ++/*258638*/ OPC_CheckInteger, 15, ++/*258640*/ OPC_CheckType, MVT::i32, ++/*258642*/ OPC_MoveParent, ++/*258643*/ OPC_MoveChild, 8, ++/*258645*/ OPC_CheckInteger, 15, ++/*258647*/ OPC_CheckType, MVT::i32, ++/*258649*/ OPC_MoveParent, ++/*258650*/ OPC_MoveChild, 9, ++/*258652*/ OPC_CheckInteger, 15, ++/*258654*/ OPC_CheckType, MVT::i32, ++/*258656*/ OPC_MoveParent, ++/*258657*/ OPC_MoveChild, 10, ++/*258659*/ OPC_CheckInteger, 15, ++/*258661*/ OPC_CheckType, MVT::i32, ++/*258663*/ OPC_MoveParent, ++/*258664*/ OPC_MoveChild, 11, ++/*258666*/ OPC_CheckInteger, 15, ++/*258668*/ OPC_CheckType, MVT::i32, ++/*258670*/ OPC_MoveParent, ++/*258671*/ OPC_MoveChild, 12, ++/*258673*/ OPC_CheckInteger, 15, ++/*258675*/ OPC_CheckType, MVT::i32, ++/*258677*/ OPC_MoveParent, ++/*258678*/ OPC_MoveChild, 13, ++/*258680*/ OPC_CheckInteger, 15, ++/*258682*/ OPC_CheckType, MVT::i32, ++/*258684*/ OPC_MoveParent, ++/*258685*/ OPC_MoveChild, 14, ++/*258687*/ OPC_CheckInteger, 15, ++/*258689*/ OPC_CheckType, MVT::i32, ++/*258691*/ OPC_MoveParent, ++/*258692*/ OPC_MoveChild, 15, ++/*258694*/ OPC_CheckInteger, 15, ++/*258696*/ OPC_CheckType, MVT::i32, ++/*258698*/ OPC_MoveParent, ++/*258699*/ OPC_CheckType, MVT::v16i16, ++/*258701*/ OPC_MoveParent, ++/*258702*/ OPC_MoveParent, ++/*258703*/ OPC_MoveParent, ++/*258704*/ OPC_MoveChild1, ++/*258705*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*258708*/ OPC_CheckChild0Integer, 1, ++/*258710*/ OPC_CheckChild0Type, MVT::i32, ++/*258712*/ OPC_CheckChild1Integer, 1, ++/*258714*/ OPC_CheckChild1Type, MVT::i32, ++/*258716*/ OPC_CheckChild2Integer, 1, ++/*258718*/ OPC_CheckChild2Type, MVT::i32, ++/*258720*/ OPC_CheckChild3Integer, 1, ++/*258722*/ OPC_CheckChild3Type, MVT::i32, ++/*258724*/ OPC_CheckChild4Integer, 1, ++/*258726*/ OPC_CheckChild4Type, MVT::i32, ++/*258728*/ OPC_MoveChild5, ++/*258729*/ OPC_CheckInteger, 1, ++/*258731*/ OPC_CheckType, MVT::i32, ++/*258733*/ OPC_MoveParent, ++/*258734*/ OPC_MoveChild6, ++/*258735*/ OPC_CheckInteger, 1, ++/*258737*/ OPC_CheckType, MVT::i32, ++/*258739*/ OPC_MoveParent, ++/*258740*/ OPC_MoveChild7, ++/*258741*/ OPC_CheckInteger, 1, ++/*258743*/ OPC_CheckType, MVT::i32, ++/*258745*/ OPC_MoveParent, ++/*258746*/ OPC_MoveChild, 8, ++/*258748*/ OPC_CheckInteger, 1, ++/*258750*/ OPC_CheckType, MVT::i32, ++/*258752*/ OPC_MoveParent, ++/*258753*/ OPC_MoveChild, 9, ++/*258755*/ OPC_CheckInteger, 1, ++/*258757*/ OPC_CheckType, MVT::i32, ++/*258759*/ OPC_MoveParent, ++/*258760*/ OPC_MoveChild, 10, ++/*258762*/ OPC_CheckInteger, 1, ++/*258764*/ OPC_CheckType, MVT::i32, ++/*258766*/ OPC_MoveParent, ++/*258767*/ OPC_MoveChild, 11, ++/*258769*/ OPC_CheckInteger, 1, ++/*258771*/ OPC_CheckType, MVT::i32, ++/*258773*/ OPC_MoveParent, ++/*258774*/ OPC_MoveChild, 12, ++/*258776*/ OPC_CheckInteger, 1, ++/*258778*/ OPC_CheckType, MVT::i32, ++/*258780*/ OPC_MoveParent, ++/*258781*/ OPC_MoveChild, 13, ++/*258783*/ OPC_CheckInteger, 1, ++/*258785*/ OPC_CheckType, MVT::i32, ++/*258787*/ OPC_MoveParent, ++/*258788*/ OPC_MoveChild, 14, ++/*258790*/ OPC_CheckInteger, 1, ++/*258792*/ OPC_CheckType, MVT::i32, ++/*258794*/ OPC_MoveParent, ++/*258795*/ OPC_MoveChild, 15, ++/*258797*/ OPC_CheckInteger, 1, ++/*258799*/ OPC_CheckType, MVT::i32, ++/*258801*/ OPC_MoveParent, ++/*258802*/ OPC_CheckType, MVT::v16i16, ++/*258804*/ OPC_MoveParent, ++/*258805*/ OPC_CheckType, MVT::v16i16, ++/*258807*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*258809*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b), LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*258817*/ /*Scope*/ 65|128,2/*321*/, /*->259140*/ ++/*258819*/ OPC_CheckChild0Same, 1, ++/*258821*/ OPC_MoveChild1, ++/*258822*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*258825*/ OPC_CheckChild0Integer, 1, ++/*258827*/ OPC_CheckChild0Type, MVT::i32, ++/*258829*/ OPC_CheckChild1Integer, 1, ++/*258831*/ OPC_CheckChild1Type, MVT::i32, ++/*258833*/ OPC_CheckChild2Integer, 1, ++/*258835*/ OPC_CheckChild2Type, MVT::i32, ++/*258837*/ OPC_CheckChild3Integer, 1, ++/*258839*/ OPC_CheckChild3Type, MVT::i32, ++/*258841*/ OPC_CheckChild4Integer, 1, ++/*258843*/ OPC_CheckChild4Type, MVT::i32, ++/*258845*/ OPC_MoveChild5, ++/*258846*/ OPC_CheckInteger, 1, ++/*258848*/ OPC_CheckType, MVT::i32, ++/*258850*/ OPC_MoveParent, ++/*258851*/ OPC_MoveChild6, ++/*258852*/ OPC_CheckInteger, 1, ++/*258854*/ OPC_CheckType, MVT::i32, ++/*258856*/ OPC_MoveParent, ++/*258857*/ OPC_MoveChild7, ++/*258858*/ OPC_CheckInteger, 1, ++/*258860*/ OPC_CheckType, MVT::i32, ++/*258862*/ OPC_MoveParent, ++/*258863*/ OPC_MoveChild, 8, ++/*258865*/ OPC_CheckInteger, 1, ++/*258867*/ OPC_CheckType, MVT::i32, ++/*258869*/ OPC_MoveParent, ++/*258870*/ OPC_MoveChild, 9, ++/*258872*/ OPC_CheckInteger, 1, ++/*258874*/ OPC_CheckType, MVT::i32, ++/*258876*/ OPC_MoveParent, ++/*258877*/ OPC_MoveChild, 10, ++/*258879*/ OPC_CheckInteger, 1, ++/*258881*/ OPC_CheckType, MVT::i32, ++/*258883*/ OPC_MoveParent, ++/*258884*/ OPC_MoveChild, 11, ++/*258886*/ OPC_CheckInteger, 1, ++/*258888*/ OPC_CheckType, MVT::i32, ++/*258890*/ OPC_MoveParent, ++/*258891*/ OPC_MoveChild, 12, ++/*258893*/ OPC_CheckInteger, 1, ++/*258895*/ OPC_CheckType, MVT::i32, ++/*258897*/ OPC_MoveParent, ++/*258898*/ OPC_MoveChild, 13, ++/*258900*/ OPC_CheckInteger, 1, ++/*258902*/ OPC_CheckType, MVT::i32, ++/*258904*/ OPC_MoveParent, ++/*258905*/ OPC_MoveChild, 14, ++/*258907*/ OPC_CheckInteger, 1, ++/*258909*/ OPC_CheckType, MVT::i32, ++/*258911*/ OPC_MoveParent, ++/*258912*/ OPC_MoveChild, 15, ++/*258914*/ OPC_CheckInteger, 1, ++/*258916*/ OPC_CheckType, MVT::i32, ++/*258918*/ OPC_MoveParent, ++/*258919*/ OPC_MoveParent, ++/*258920*/ OPC_MoveParent, ++/*258921*/ OPC_CheckChild1Same, 0, ++/*258923*/ OPC_MoveParent, ++/*258924*/ OPC_MoveChild1, ++/*258925*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*258928*/ OPC_CheckChild0Integer, 15, ++/*258930*/ OPC_CheckChild0Type, MVT::i32, ++/*258932*/ OPC_CheckChild1Integer, 15, ++/*258934*/ OPC_CheckChild1Type, MVT::i32, ++/*258936*/ OPC_CheckChild2Integer, 15, ++/*258938*/ OPC_CheckChild2Type, MVT::i32, ++/*258940*/ OPC_CheckChild3Integer, 15, ++/*258942*/ OPC_CheckChild3Type, MVT::i32, ++/*258944*/ OPC_CheckChild4Integer, 15, ++/*258946*/ OPC_CheckChild4Type, MVT::i32, ++/*258948*/ OPC_MoveChild5, ++/*258949*/ OPC_CheckInteger, 15, ++/*258951*/ OPC_CheckType, MVT::i32, ++/*258953*/ OPC_MoveParent, ++/*258954*/ OPC_MoveChild6, ++/*258955*/ OPC_CheckInteger, 15, ++/*258957*/ OPC_CheckType, MVT::i32, ++/*258959*/ OPC_MoveParent, ++/*258960*/ OPC_MoveChild7, ++/*258961*/ OPC_CheckInteger, 15, ++/*258963*/ OPC_CheckType, MVT::i32, ++/*258965*/ OPC_MoveParent, ++/*258966*/ OPC_MoveChild, 8, ++/*258968*/ OPC_CheckInteger, 15, ++/*258970*/ OPC_CheckType, MVT::i32, ++/*258972*/ OPC_MoveParent, ++/*258973*/ OPC_MoveChild, 9, ++/*258975*/ OPC_CheckInteger, 15, ++/*258977*/ OPC_CheckType, MVT::i32, ++/*258979*/ OPC_MoveParent, ++/*258980*/ OPC_MoveChild, 10, ++/*258982*/ OPC_CheckInteger, 15, ++/*258984*/ OPC_CheckType, MVT::i32, ++/*258986*/ OPC_MoveParent, ++/*258987*/ OPC_MoveChild, 11, ++/*258989*/ OPC_CheckInteger, 15, ++/*258991*/ OPC_CheckType, MVT::i32, ++/*258993*/ OPC_MoveParent, ++/*258994*/ OPC_MoveChild, 12, ++/*258996*/ OPC_CheckInteger, 15, ++/*258998*/ OPC_CheckType, MVT::i32, ++/*259000*/ OPC_MoveParent, ++/*259001*/ OPC_MoveChild, 13, ++/*259003*/ OPC_CheckInteger, 15, ++/*259005*/ OPC_CheckType, MVT::i32, ++/*259007*/ OPC_MoveParent, ++/*259008*/ OPC_MoveChild, 14, ++/*259010*/ OPC_CheckInteger, 15, ++/*259012*/ OPC_CheckType, MVT::i32, ++/*259014*/ OPC_MoveParent, ++/*259015*/ OPC_MoveChild, 15, ++/*259017*/ OPC_CheckInteger, 15, ++/*259019*/ OPC_CheckType, MVT::i32, ++/*259021*/ OPC_MoveParent, ++/*259022*/ OPC_CheckType, MVT::v16i16, ++/*259024*/ OPC_MoveParent, ++/*259025*/ OPC_MoveParent, ++/*259026*/ OPC_MoveParent, ++/*259027*/ OPC_MoveChild1, ++/*259028*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*259031*/ OPC_CheckChild0Integer, 1, ++/*259033*/ OPC_CheckChild0Type, MVT::i32, ++/*259035*/ OPC_CheckChild1Integer, 1, ++/*259037*/ OPC_CheckChild1Type, MVT::i32, ++/*259039*/ OPC_CheckChild2Integer, 1, ++/*259041*/ OPC_CheckChild2Type, MVT::i32, ++/*259043*/ OPC_CheckChild3Integer, 1, ++/*259045*/ OPC_CheckChild3Type, MVT::i32, ++/*259047*/ OPC_CheckChild4Integer, 1, ++/*259049*/ OPC_CheckChild4Type, MVT::i32, ++/*259051*/ OPC_MoveChild5, ++/*259052*/ OPC_CheckInteger, 1, ++/*259054*/ OPC_CheckType, MVT::i32, ++/*259056*/ OPC_MoveParent, ++/*259057*/ OPC_MoveChild6, ++/*259058*/ OPC_CheckInteger, 1, ++/*259060*/ OPC_CheckType, MVT::i32, ++/*259062*/ OPC_MoveParent, ++/*259063*/ OPC_MoveChild7, ++/*259064*/ OPC_CheckInteger, 1, ++/*259066*/ OPC_CheckType, MVT::i32, ++/*259068*/ OPC_MoveParent, ++/*259069*/ OPC_MoveChild, 8, ++/*259071*/ OPC_CheckInteger, 1, ++/*259073*/ OPC_CheckType, MVT::i32, ++/*259075*/ OPC_MoveParent, ++/*259076*/ OPC_MoveChild, 9, ++/*259078*/ OPC_CheckInteger, 1, ++/*259080*/ OPC_CheckType, MVT::i32, ++/*259082*/ OPC_MoveParent, ++/*259083*/ OPC_MoveChild, 10, ++/*259085*/ OPC_CheckInteger, 1, ++/*259087*/ OPC_CheckType, MVT::i32, ++/*259089*/ OPC_MoveParent, ++/*259090*/ OPC_MoveChild, 11, ++/*259092*/ OPC_CheckInteger, 1, ++/*259094*/ OPC_CheckType, MVT::i32, ++/*259096*/ OPC_MoveParent, ++/*259097*/ OPC_MoveChild, 12, ++/*259099*/ OPC_CheckInteger, 1, ++/*259101*/ OPC_CheckType, MVT::i32, ++/*259103*/ OPC_MoveParent, ++/*259104*/ OPC_MoveChild, 13, ++/*259106*/ OPC_CheckInteger, 1, ++/*259108*/ OPC_CheckType, MVT::i32, ++/*259110*/ OPC_MoveParent, ++/*259111*/ OPC_MoveChild, 14, ++/*259113*/ OPC_CheckInteger, 1, ++/*259115*/ OPC_CheckType, MVT::i32, ++/*259117*/ OPC_MoveParent, ++/*259118*/ OPC_MoveChild, 15, ++/*259120*/ OPC_CheckInteger, 1, ++/*259122*/ OPC_CheckType, MVT::i32, ++/*259124*/ OPC_MoveParent, ++/*259125*/ OPC_CheckType, MVT::v16i16, ++/*259127*/ OPC_MoveParent, ++/*259128*/ OPC_CheckType, MVT::v16i16, ++/*259130*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*259132*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*259140*/ /*Scope*/ 65|128,2/*321*/, /*->259463*/ ++/*259142*/ OPC_CheckChild0Same, 0, ++/*259144*/ OPC_CheckChild1Same, 1, ++/*259146*/ OPC_MoveParent, ++/*259147*/ OPC_MoveChild1, ++/*259148*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*259151*/ OPC_CheckChild0Integer, 1, ++/*259153*/ OPC_CheckChild0Type, MVT::i32, ++/*259155*/ OPC_CheckChild1Integer, 1, ++/*259157*/ OPC_CheckChild1Type, MVT::i32, ++/*259159*/ OPC_CheckChild2Integer, 1, ++/*259161*/ OPC_CheckChild2Type, MVT::i32, ++/*259163*/ OPC_CheckChild3Integer, 1, ++/*259165*/ OPC_CheckChild3Type, MVT::i32, ++/*259167*/ OPC_CheckChild4Integer, 1, ++/*259169*/ OPC_CheckChild4Type, MVT::i32, ++/*259171*/ OPC_MoveChild5, ++/*259172*/ OPC_CheckInteger, 1, ++/*259174*/ OPC_CheckType, MVT::i32, ++/*259176*/ OPC_MoveParent, ++/*259177*/ OPC_MoveChild6, ++/*259178*/ OPC_CheckInteger, 1, ++/*259180*/ OPC_CheckType, MVT::i32, ++/*259182*/ OPC_MoveParent, ++/*259183*/ OPC_MoveChild7, ++/*259184*/ OPC_CheckInteger, 1, ++/*259186*/ OPC_CheckType, MVT::i32, ++/*259188*/ OPC_MoveParent, ++/*259189*/ OPC_MoveChild, 8, ++/*259191*/ OPC_CheckInteger, 1, ++/*259193*/ OPC_CheckType, MVT::i32, ++/*259195*/ OPC_MoveParent, ++/*259196*/ OPC_MoveChild, 9, ++/*259198*/ OPC_CheckInteger, 1, ++/*259200*/ OPC_CheckType, MVT::i32, ++/*259202*/ OPC_MoveParent, ++/*259203*/ OPC_MoveChild, 10, ++/*259205*/ OPC_CheckInteger, 1, ++/*259207*/ OPC_CheckType, MVT::i32, ++/*259209*/ OPC_MoveParent, ++/*259210*/ OPC_MoveChild, 11, ++/*259212*/ OPC_CheckInteger, 1, ++/*259214*/ OPC_CheckType, MVT::i32, ++/*259216*/ OPC_MoveParent, ++/*259217*/ OPC_MoveChild, 12, ++/*259219*/ OPC_CheckInteger, 1, ++/*259221*/ OPC_CheckType, MVT::i32, ++/*259223*/ OPC_MoveParent, ++/*259224*/ OPC_MoveChild, 13, ++/*259226*/ OPC_CheckInteger, 1, ++/*259228*/ OPC_CheckType, MVT::i32, ++/*259230*/ OPC_MoveParent, ++/*259231*/ OPC_MoveChild, 14, ++/*259233*/ OPC_CheckInteger, 1, ++/*259235*/ OPC_CheckType, MVT::i32, ++/*259237*/ OPC_MoveParent, ++/*259238*/ OPC_MoveChild, 15, ++/*259240*/ OPC_CheckInteger, 1, ++/*259242*/ OPC_CheckType, MVT::i32, ++/*259244*/ OPC_MoveParent, ++/*259245*/ OPC_MoveParent, ++/*259246*/ OPC_MoveParent, ++/*259247*/ OPC_MoveChild1, ++/*259248*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*259251*/ OPC_CheckChild0Integer, 15, ++/*259253*/ OPC_CheckChild0Type, MVT::i32, ++/*259255*/ OPC_CheckChild1Integer, 15, ++/*259257*/ OPC_CheckChild1Type, MVT::i32, ++/*259259*/ OPC_CheckChild2Integer, 15, ++/*259261*/ OPC_CheckChild2Type, MVT::i32, ++/*259263*/ OPC_CheckChild3Integer, 15, ++/*259265*/ OPC_CheckChild3Type, MVT::i32, ++/*259267*/ OPC_CheckChild4Integer, 15, ++/*259269*/ OPC_CheckChild4Type, MVT::i32, ++/*259271*/ OPC_MoveChild5, ++/*259272*/ OPC_CheckInteger, 15, ++/*259274*/ OPC_CheckType, MVT::i32, ++/*259276*/ OPC_MoveParent, ++/*259277*/ OPC_MoveChild6, ++/*259278*/ OPC_CheckInteger, 15, ++/*259280*/ OPC_CheckType, MVT::i32, ++/*259282*/ OPC_MoveParent, ++/*259283*/ OPC_MoveChild7, ++/*259284*/ OPC_CheckInteger, 15, ++/*259286*/ OPC_CheckType, MVT::i32, ++/*259288*/ OPC_MoveParent, ++/*259289*/ OPC_MoveChild, 8, ++/*259291*/ OPC_CheckInteger, 15, ++/*259293*/ OPC_CheckType, MVT::i32, ++/*259295*/ OPC_MoveParent, ++/*259296*/ OPC_MoveChild, 9, ++/*259298*/ OPC_CheckInteger, 15, ++/*259300*/ OPC_CheckType, MVT::i32, ++/*259302*/ OPC_MoveParent, ++/*259303*/ OPC_MoveChild, 10, ++/*259305*/ OPC_CheckInteger, 15, ++/*259307*/ OPC_CheckType, MVT::i32, ++/*259309*/ OPC_MoveParent, ++/*259310*/ OPC_MoveChild, 11, ++/*259312*/ OPC_CheckInteger, 15, ++/*259314*/ OPC_CheckType, MVT::i32, ++/*259316*/ OPC_MoveParent, ++/*259317*/ OPC_MoveChild, 12, ++/*259319*/ OPC_CheckInteger, 15, ++/*259321*/ OPC_CheckType, MVT::i32, ++/*259323*/ OPC_MoveParent, ++/*259324*/ OPC_MoveChild, 13, ++/*259326*/ OPC_CheckInteger, 15, ++/*259328*/ OPC_CheckType, MVT::i32, ++/*259330*/ OPC_MoveParent, ++/*259331*/ OPC_MoveChild, 14, ++/*259333*/ OPC_CheckInteger, 15, ++/*259335*/ OPC_CheckType, MVT::i32, ++/*259337*/ OPC_MoveParent, ++/*259338*/ OPC_MoveChild, 15, ++/*259340*/ OPC_CheckInteger, 15, ++/*259342*/ OPC_CheckType, MVT::i32, ++/*259344*/ OPC_MoveParent, ++/*259345*/ OPC_CheckType, MVT::v16i16, ++/*259347*/ OPC_MoveParent, ++/*259348*/ OPC_MoveParent, ++/*259349*/ OPC_MoveParent, ++/*259350*/ OPC_MoveChild1, ++/*259351*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*259354*/ OPC_CheckChild0Integer, 1, ++/*259356*/ OPC_CheckChild0Type, MVT::i32, ++/*259358*/ OPC_CheckChild1Integer, 1, ++/*259360*/ OPC_CheckChild1Type, MVT::i32, ++/*259362*/ OPC_CheckChild2Integer, 1, ++/*259364*/ OPC_CheckChild2Type, MVT::i32, ++/*259366*/ OPC_CheckChild3Integer, 1, ++/*259368*/ OPC_CheckChild3Type, MVT::i32, ++/*259370*/ OPC_CheckChild4Integer, 1, ++/*259372*/ OPC_CheckChild4Type, MVT::i32, ++/*259374*/ OPC_MoveChild5, ++/*259375*/ OPC_CheckInteger, 1, ++/*259377*/ OPC_CheckType, MVT::i32, ++/*259379*/ OPC_MoveParent, ++/*259380*/ OPC_MoveChild6, ++/*259381*/ OPC_CheckInteger, 1, ++/*259383*/ OPC_CheckType, MVT::i32, ++/*259385*/ OPC_MoveParent, ++/*259386*/ OPC_MoveChild7, ++/*259387*/ OPC_CheckInteger, 1, ++/*259389*/ OPC_CheckType, MVT::i32, ++/*259391*/ OPC_MoveParent, ++/*259392*/ OPC_MoveChild, 8, ++/*259394*/ OPC_CheckInteger, 1, ++/*259396*/ OPC_CheckType, MVT::i32, ++/*259398*/ OPC_MoveParent, ++/*259399*/ OPC_MoveChild, 9, ++/*259401*/ OPC_CheckInteger, 1, ++/*259403*/ OPC_CheckType, MVT::i32, ++/*259405*/ OPC_MoveParent, ++/*259406*/ OPC_MoveChild, 10, ++/*259408*/ OPC_CheckInteger, 1, ++/*259410*/ OPC_CheckType, MVT::i32, ++/*259412*/ OPC_MoveParent, ++/*259413*/ OPC_MoveChild, 11, ++/*259415*/ OPC_CheckInteger, 1, ++/*259417*/ OPC_CheckType, MVT::i32, ++/*259419*/ OPC_MoveParent, ++/*259420*/ OPC_MoveChild, 12, ++/*259422*/ OPC_CheckInteger, 1, ++/*259424*/ OPC_CheckType, MVT::i32, ++/*259426*/ OPC_MoveParent, ++/*259427*/ OPC_MoveChild, 13, ++/*259429*/ OPC_CheckInteger, 1, ++/*259431*/ OPC_CheckType, MVT::i32, ++/*259433*/ OPC_MoveParent, ++/*259434*/ OPC_MoveChild, 14, ++/*259436*/ OPC_CheckInteger, 1, ++/*259438*/ OPC_CheckType, MVT::i32, ++/*259440*/ OPC_MoveParent, ++/*259441*/ OPC_MoveChild, 15, ++/*259443*/ OPC_CheckInteger, 1, ++/*259445*/ OPC_CheckType, MVT::i32, ++/*259447*/ OPC_MoveParent, ++/*259448*/ OPC_CheckType, MVT::v16i16, ++/*259450*/ OPC_MoveParent, ++/*259451*/ OPC_CheckType, MVT::v16i16, ++/*259453*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*259455*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*259463*/ /*Scope*/ 65|128,2/*321*/, /*->259786*/ ++/*259465*/ OPC_CheckChild0Same, 1, ++/*259467*/ OPC_CheckChild1Same, 0, ++/*259469*/ OPC_MoveParent, ++/*259470*/ OPC_MoveChild1, ++/*259471*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*259474*/ OPC_CheckChild0Integer, 1, ++/*259476*/ OPC_CheckChild0Type, MVT::i32, ++/*259478*/ OPC_CheckChild1Integer, 1, ++/*259480*/ OPC_CheckChild1Type, MVT::i32, ++/*259482*/ OPC_CheckChild2Integer, 1, ++/*259484*/ OPC_CheckChild2Type, MVT::i32, ++/*259486*/ OPC_CheckChild3Integer, 1, ++/*259488*/ OPC_CheckChild3Type, MVT::i32, ++/*259490*/ OPC_CheckChild4Integer, 1, ++/*259492*/ OPC_CheckChild4Type, MVT::i32, ++/*259494*/ OPC_MoveChild5, ++/*259495*/ OPC_CheckInteger, 1, ++/*259497*/ OPC_CheckType, MVT::i32, ++/*259499*/ OPC_MoveParent, ++/*259500*/ OPC_MoveChild6, ++/*259501*/ OPC_CheckInteger, 1, ++/*259503*/ OPC_CheckType, MVT::i32, ++/*259505*/ OPC_MoveParent, ++/*259506*/ OPC_MoveChild7, ++/*259507*/ OPC_CheckInteger, 1, ++/*259509*/ OPC_CheckType, MVT::i32, ++/*259511*/ OPC_MoveParent, ++/*259512*/ OPC_MoveChild, 8, ++/*259514*/ OPC_CheckInteger, 1, ++/*259516*/ OPC_CheckType, MVT::i32, ++/*259518*/ OPC_MoveParent, ++/*259519*/ OPC_MoveChild, 9, ++/*259521*/ OPC_CheckInteger, 1, ++/*259523*/ OPC_CheckType, MVT::i32, ++/*259525*/ OPC_MoveParent, ++/*259526*/ OPC_MoveChild, 10, ++/*259528*/ OPC_CheckInteger, 1, ++/*259530*/ OPC_CheckType, MVT::i32, ++/*259532*/ OPC_MoveParent, ++/*259533*/ OPC_MoveChild, 11, ++/*259535*/ OPC_CheckInteger, 1, ++/*259537*/ OPC_CheckType, MVT::i32, ++/*259539*/ OPC_MoveParent, ++/*259540*/ OPC_MoveChild, 12, ++/*259542*/ OPC_CheckInteger, 1, ++/*259544*/ OPC_CheckType, MVT::i32, ++/*259546*/ OPC_MoveParent, ++/*259547*/ OPC_MoveChild, 13, ++/*259549*/ OPC_CheckInteger, 1, ++/*259551*/ OPC_CheckType, MVT::i32, ++/*259553*/ OPC_MoveParent, ++/*259554*/ OPC_MoveChild, 14, ++/*259556*/ OPC_CheckInteger, 1, ++/*259558*/ OPC_CheckType, MVT::i32, ++/*259560*/ OPC_MoveParent, ++/*259561*/ OPC_MoveChild, 15, ++/*259563*/ OPC_CheckInteger, 1, ++/*259565*/ OPC_CheckType, MVT::i32, ++/*259567*/ OPC_MoveParent, ++/*259568*/ OPC_MoveParent, ++/*259569*/ OPC_MoveParent, ++/*259570*/ OPC_MoveChild1, ++/*259571*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*259574*/ OPC_CheckChild0Integer, 15, ++/*259576*/ OPC_CheckChild0Type, MVT::i32, ++/*259578*/ OPC_CheckChild1Integer, 15, ++/*259580*/ OPC_CheckChild1Type, MVT::i32, ++/*259582*/ OPC_CheckChild2Integer, 15, ++/*259584*/ OPC_CheckChild2Type, MVT::i32, ++/*259586*/ OPC_CheckChild3Integer, 15, ++/*259588*/ OPC_CheckChild3Type, MVT::i32, ++/*259590*/ OPC_CheckChild4Integer, 15, ++/*259592*/ OPC_CheckChild4Type, MVT::i32, ++/*259594*/ OPC_MoveChild5, ++/*259595*/ OPC_CheckInteger, 15, ++/*259597*/ OPC_CheckType, MVT::i32, ++/*259599*/ OPC_MoveParent, ++/*259600*/ OPC_MoveChild6, ++/*259601*/ OPC_CheckInteger, 15, ++/*259603*/ OPC_CheckType, MVT::i32, ++/*259605*/ OPC_MoveParent, ++/*259606*/ OPC_MoveChild7, ++/*259607*/ OPC_CheckInteger, 15, ++/*259609*/ OPC_CheckType, MVT::i32, ++/*259611*/ OPC_MoveParent, ++/*259612*/ OPC_MoveChild, 8, ++/*259614*/ OPC_CheckInteger, 15, ++/*259616*/ OPC_CheckType, MVT::i32, ++/*259618*/ OPC_MoveParent, ++/*259619*/ OPC_MoveChild, 9, ++/*259621*/ OPC_CheckInteger, 15, ++/*259623*/ OPC_CheckType, MVT::i32, ++/*259625*/ OPC_MoveParent, ++/*259626*/ OPC_MoveChild, 10, ++/*259628*/ OPC_CheckInteger, 15, ++/*259630*/ OPC_CheckType, MVT::i32, ++/*259632*/ OPC_MoveParent, ++/*259633*/ OPC_MoveChild, 11, ++/*259635*/ OPC_CheckInteger, 15, ++/*259637*/ OPC_CheckType, MVT::i32, ++/*259639*/ OPC_MoveParent, ++/*259640*/ OPC_MoveChild, 12, ++/*259642*/ OPC_CheckInteger, 15, ++/*259644*/ OPC_CheckType, MVT::i32, ++/*259646*/ OPC_MoveParent, ++/*259647*/ OPC_MoveChild, 13, ++/*259649*/ OPC_CheckInteger, 15, ++/*259651*/ OPC_CheckType, MVT::i32, ++/*259653*/ OPC_MoveParent, ++/*259654*/ OPC_MoveChild, 14, ++/*259656*/ OPC_CheckInteger, 15, ++/*259658*/ OPC_CheckType, MVT::i32, ++/*259660*/ OPC_MoveParent, ++/*259661*/ OPC_MoveChild, 15, ++/*259663*/ OPC_CheckInteger, 15, ++/*259665*/ OPC_CheckType, MVT::i32, ++/*259667*/ OPC_MoveParent, ++/*259668*/ OPC_CheckType, MVT::v16i16, ++/*259670*/ OPC_MoveParent, ++/*259671*/ OPC_MoveParent, ++/*259672*/ OPC_MoveParent, ++/*259673*/ OPC_MoveChild1, ++/*259674*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*259677*/ OPC_CheckChild0Integer, 1, ++/*259679*/ OPC_CheckChild0Type, MVT::i32, ++/*259681*/ OPC_CheckChild1Integer, 1, ++/*259683*/ OPC_CheckChild1Type, MVT::i32, ++/*259685*/ OPC_CheckChild2Integer, 1, ++/*259687*/ OPC_CheckChild2Type, MVT::i32, ++/*259689*/ OPC_CheckChild3Integer, 1, ++/*259691*/ OPC_CheckChild3Type, MVT::i32, ++/*259693*/ OPC_CheckChild4Integer, 1, ++/*259695*/ OPC_CheckChild4Type, MVT::i32, ++/*259697*/ OPC_MoveChild5, ++/*259698*/ OPC_CheckInteger, 1, ++/*259700*/ OPC_CheckType, MVT::i32, ++/*259702*/ OPC_MoveParent, ++/*259703*/ OPC_MoveChild6, ++/*259704*/ OPC_CheckInteger, 1, ++/*259706*/ OPC_CheckType, MVT::i32, ++/*259708*/ OPC_MoveParent, ++/*259709*/ OPC_MoveChild7, ++/*259710*/ OPC_CheckInteger, 1, ++/*259712*/ OPC_CheckType, MVT::i32, ++/*259714*/ OPC_MoveParent, ++/*259715*/ OPC_MoveChild, 8, ++/*259717*/ OPC_CheckInteger, 1, ++/*259719*/ OPC_CheckType, MVT::i32, ++/*259721*/ OPC_MoveParent, ++/*259722*/ OPC_MoveChild, 9, ++/*259724*/ OPC_CheckInteger, 1, ++/*259726*/ OPC_CheckType, MVT::i32, ++/*259728*/ OPC_MoveParent, ++/*259729*/ OPC_MoveChild, 10, ++/*259731*/ OPC_CheckInteger, 1, ++/*259733*/ OPC_CheckType, MVT::i32, ++/*259735*/ OPC_MoveParent, ++/*259736*/ OPC_MoveChild, 11, ++/*259738*/ OPC_CheckInteger, 1, ++/*259740*/ OPC_CheckType, MVT::i32, ++/*259742*/ OPC_MoveParent, ++/*259743*/ OPC_MoveChild, 12, ++/*259745*/ OPC_CheckInteger, 1, ++/*259747*/ OPC_CheckType, MVT::i32, ++/*259749*/ OPC_MoveParent, ++/*259750*/ OPC_MoveChild, 13, ++/*259752*/ OPC_CheckInteger, 1, ++/*259754*/ OPC_CheckType, MVT::i32, ++/*259756*/ OPC_MoveParent, ++/*259757*/ OPC_MoveChild, 14, ++/*259759*/ OPC_CheckInteger, 1, ++/*259761*/ OPC_CheckType, MVT::i32, ++/*259763*/ OPC_MoveParent, ++/*259764*/ OPC_MoveChild, 15, ++/*259766*/ OPC_CheckInteger, 1, ++/*259768*/ OPC_CheckType, MVT::i32, ++/*259770*/ OPC_MoveParent, ++/*259771*/ OPC_CheckType, MVT::v16i16, ++/*259773*/ OPC_MoveParent, ++/*259774*/ OPC_CheckType, MVT::v16i16, ++/*259776*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*259778*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*259786*/ 0, /*End of Scope*/ ++/*259787*/ /*Scope*/ 10|128,5/*650*/, /*->260439*/ ++/*259789*/ OPC_CheckChild0Same, 1, ++/*259791*/ OPC_MoveChild1, ++/*259792*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*259795*/ OPC_Scope, 63|128,2/*319*/, /*->260117*/ // 2 children in Scope ++/*259798*/ OPC_MoveChild0, ++/*259799*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*259802*/ OPC_CheckChild0Integer, 1, ++/*259804*/ OPC_CheckChild0Type, MVT::i32, ++/*259806*/ OPC_CheckChild1Integer, 1, ++/*259808*/ OPC_CheckChild1Type, MVT::i32, ++/*259810*/ OPC_CheckChild2Integer, 1, ++/*259812*/ OPC_CheckChild2Type, MVT::i32, ++/*259814*/ OPC_CheckChild3Integer, 1, ++/*259816*/ OPC_CheckChild3Type, MVT::i32, ++/*259818*/ OPC_CheckChild4Integer, 1, ++/*259820*/ OPC_CheckChild4Type, MVT::i32, ++/*259822*/ OPC_MoveChild5, ++/*259823*/ OPC_CheckInteger, 1, ++/*259825*/ OPC_CheckType, MVT::i32, ++/*259827*/ OPC_MoveParent, ++/*259828*/ OPC_MoveChild6, ++/*259829*/ OPC_CheckInteger, 1, ++/*259831*/ OPC_CheckType, MVT::i32, ++/*259833*/ OPC_MoveParent, ++/*259834*/ OPC_MoveChild7, ++/*259835*/ OPC_CheckInteger, 1, ++/*259837*/ OPC_CheckType, MVT::i32, ++/*259839*/ OPC_MoveParent, ++/*259840*/ OPC_MoveChild, 8, ++/*259842*/ OPC_CheckInteger, 1, ++/*259844*/ OPC_CheckType, MVT::i32, ++/*259846*/ OPC_MoveParent, ++/*259847*/ OPC_MoveChild, 9, ++/*259849*/ OPC_CheckInteger, 1, ++/*259851*/ OPC_CheckType, MVT::i32, ++/*259853*/ OPC_MoveParent, ++/*259854*/ OPC_MoveChild, 10, ++/*259856*/ OPC_CheckInteger, 1, ++/*259858*/ OPC_CheckType, MVT::i32, ++/*259860*/ OPC_MoveParent, ++/*259861*/ OPC_MoveChild, 11, ++/*259863*/ OPC_CheckInteger, 1, ++/*259865*/ OPC_CheckType, MVT::i32, ++/*259867*/ OPC_MoveParent, ++/*259868*/ OPC_MoveChild, 12, ++/*259870*/ OPC_CheckInteger, 1, ++/*259872*/ OPC_CheckType, MVT::i32, ++/*259874*/ OPC_MoveParent, ++/*259875*/ OPC_MoveChild, 13, ++/*259877*/ OPC_CheckInteger, 1, ++/*259879*/ OPC_CheckType, MVT::i32, ++/*259881*/ OPC_MoveParent, ++/*259882*/ OPC_MoveChild, 14, ++/*259884*/ OPC_CheckInteger, 1, ++/*259886*/ OPC_CheckType, MVT::i32, ++/*259888*/ OPC_MoveParent, ++/*259889*/ OPC_MoveChild, 15, ++/*259891*/ OPC_CheckInteger, 1, ++/*259893*/ OPC_CheckType, MVT::i32, ++/*259895*/ OPC_MoveParent, ++/*259896*/ OPC_MoveParent, ++/*259897*/ OPC_CheckChild1Same, 0, ++/*259899*/ OPC_MoveParent, ++/*259900*/ OPC_MoveParent, ++/*259901*/ OPC_MoveChild1, ++/*259902*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*259905*/ OPC_CheckChild0Integer, 15, ++/*259907*/ OPC_CheckChild0Type, MVT::i32, ++/*259909*/ OPC_CheckChild1Integer, 15, ++/*259911*/ OPC_CheckChild1Type, MVT::i32, ++/*259913*/ OPC_CheckChild2Integer, 15, ++/*259915*/ OPC_CheckChild2Type, MVT::i32, ++/*259917*/ OPC_CheckChild3Integer, 15, ++/*259919*/ OPC_CheckChild3Type, MVT::i32, ++/*259921*/ OPC_CheckChild4Integer, 15, ++/*259923*/ OPC_CheckChild4Type, MVT::i32, ++/*259925*/ OPC_MoveChild5, ++/*259926*/ OPC_CheckInteger, 15, ++/*259928*/ OPC_CheckType, MVT::i32, ++/*259930*/ OPC_MoveParent, ++/*259931*/ OPC_MoveChild6, ++/*259932*/ OPC_CheckInteger, 15, ++/*259934*/ OPC_CheckType, MVT::i32, ++/*259936*/ OPC_MoveParent, ++/*259937*/ OPC_MoveChild7, ++/*259938*/ OPC_CheckInteger, 15, ++/*259940*/ OPC_CheckType, MVT::i32, ++/*259942*/ OPC_MoveParent, ++/*259943*/ OPC_MoveChild, 8, ++/*259945*/ OPC_CheckInteger, 15, ++/*259947*/ OPC_CheckType, MVT::i32, ++/*259949*/ OPC_MoveParent, ++/*259950*/ OPC_MoveChild, 9, ++/*259952*/ OPC_CheckInteger, 15, ++/*259954*/ OPC_CheckType, MVT::i32, ++/*259956*/ OPC_MoveParent, ++/*259957*/ OPC_MoveChild, 10, ++/*259959*/ OPC_CheckInteger, 15, ++/*259961*/ OPC_CheckType, MVT::i32, ++/*259963*/ OPC_MoveParent, ++/*259964*/ OPC_MoveChild, 11, ++/*259966*/ OPC_CheckInteger, 15, ++/*259968*/ OPC_CheckType, MVT::i32, ++/*259970*/ OPC_MoveParent, ++/*259971*/ OPC_MoveChild, 12, ++/*259973*/ OPC_CheckInteger, 15, ++/*259975*/ OPC_CheckType, MVT::i32, ++/*259977*/ OPC_MoveParent, ++/*259978*/ OPC_MoveChild, 13, ++/*259980*/ OPC_CheckInteger, 15, ++/*259982*/ OPC_CheckType, MVT::i32, ++/*259984*/ OPC_MoveParent, ++/*259985*/ OPC_MoveChild, 14, ++/*259987*/ OPC_CheckInteger, 15, ++/*259989*/ OPC_CheckType, MVT::i32, ++/*259991*/ OPC_MoveParent, ++/*259992*/ OPC_MoveChild, 15, ++/*259994*/ OPC_CheckInteger, 15, ++/*259996*/ OPC_CheckType, MVT::i32, ++/*259998*/ OPC_MoveParent, ++/*259999*/ OPC_CheckType, MVT::v16i16, ++/*260001*/ OPC_MoveParent, ++/*260002*/ OPC_MoveParent, ++/*260003*/ OPC_MoveParent, ++/*260004*/ OPC_MoveChild1, ++/*260005*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*260008*/ OPC_CheckChild0Integer, 1, ++/*260010*/ OPC_CheckChild0Type, MVT::i32, ++/*260012*/ OPC_CheckChild1Integer, 1, ++/*260014*/ OPC_CheckChild1Type, MVT::i32, ++/*260016*/ OPC_CheckChild2Integer, 1, ++/*260018*/ OPC_CheckChild2Type, MVT::i32, ++/*260020*/ OPC_CheckChild3Integer, 1, ++/*260022*/ OPC_CheckChild3Type, MVT::i32, ++/*260024*/ OPC_CheckChild4Integer, 1, ++/*260026*/ OPC_CheckChild4Type, MVT::i32, ++/*260028*/ OPC_MoveChild5, ++/*260029*/ OPC_CheckInteger, 1, ++/*260031*/ OPC_CheckType, MVT::i32, ++/*260033*/ OPC_MoveParent, ++/*260034*/ OPC_MoveChild6, ++/*260035*/ OPC_CheckInteger, 1, ++/*260037*/ OPC_CheckType, MVT::i32, ++/*260039*/ OPC_MoveParent, ++/*260040*/ OPC_MoveChild7, ++/*260041*/ OPC_CheckInteger, 1, ++/*260043*/ OPC_CheckType, MVT::i32, ++/*260045*/ OPC_MoveParent, ++/*260046*/ OPC_MoveChild, 8, ++/*260048*/ OPC_CheckInteger, 1, ++/*260050*/ OPC_CheckType, MVT::i32, ++/*260052*/ OPC_MoveParent, ++/*260053*/ OPC_MoveChild, 9, ++/*260055*/ OPC_CheckInteger, 1, ++/*260057*/ OPC_CheckType, MVT::i32, ++/*260059*/ OPC_MoveParent, ++/*260060*/ OPC_MoveChild, 10, ++/*260062*/ OPC_CheckInteger, 1, ++/*260064*/ OPC_CheckType, MVT::i32, ++/*260066*/ OPC_MoveParent, ++/*260067*/ OPC_MoveChild, 11, ++/*260069*/ OPC_CheckInteger, 1, ++/*260071*/ OPC_CheckType, MVT::i32, ++/*260073*/ OPC_MoveParent, ++/*260074*/ OPC_MoveChild, 12, ++/*260076*/ OPC_CheckInteger, 1, ++/*260078*/ OPC_CheckType, MVT::i32, ++/*260080*/ OPC_MoveParent, ++/*260081*/ OPC_MoveChild, 13, ++/*260083*/ OPC_CheckInteger, 1, ++/*260085*/ OPC_CheckType, MVT::i32, ++/*260087*/ OPC_MoveParent, ++/*260088*/ OPC_MoveChild, 14, ++/*260090*/ OPC_CheckInteger, 1, ++/*260092*/ OPC_CheckType, MVT::i32, ++/*260094*/ OPC_MoveParent, ++/*260095*/ OPC_MoveChild, 15, ++/*260097*/ OPC_CheckInteger, 1, ++/*260099*/ OPC_CheckType, MVT::i32, ++/*260101*/ OPC_MoveParent, ++/*260102*/ OPC_CheckType, MVT::v16i16, ++/*260104*/ OPC_MoveParent, ++/*260105*/ OPC_CheckType, MVT::v16i16, ++/*260107*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*260109*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*260117*/ /*Scope*/ 63|128,2/*319*/, /*->260438*/ ++/*260119*/ OPC_CheckChild0Same, 0, ++/*260121*/ OPC_MoveChild1, ++/*260122*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*260125*/ OPC_CheckChild0Integer, 1, ++/*260127*/ OPC_CheckChild0Type, MVT::i32, ++/*260129*/ OPC_CheckChild1Integer, 1, ++/*260131*/ OPC_CheckChild1Type, MVT::i32, ++/*260133*/ OPC_CheckChild2Integer, 1, ++/*260135*/ OPC_CheckChild2Type, MVT::i32, ++/*260137*/ OPC_CheckChild3Integer, 1, ++/*260139*/ OPC_CheckChild3Type, MVT::i32, ++/*260141*/ OPC_CheckChild4Integer, 1, ++/*260143*/ OPC_CheckChild4Type, MVT::i32, ++/*260145*/ OPC_MoveChild5, ++/*260146*/ OPC_CheckInteger, 1, ++/*260148*/ OPC_CheckType, MVT::i32, ++/*260150*/ OPC_MoveParent, ++/*260151*/ OPC_MoveChild6, ++/*260152*/ OPC_CheckInteger, 1, ++/*260154*/ OPC_CheckType, MVT::i32, ++/*260156*/ OPC_MoveParent, ++/*260157*/ OPC_MoveChild7, ++/*260158*/ OPC_CheckInteger, 1, ++/*260160*/ OPC_CheckType, MVT::i32, ++/*260162*/ OPC_MoveParent, ++/*260163*/ OPC_MoveChild, 8, ++/*260165*/ OPC_CheckInteger, 1, ++/*260167*/ OPC_CheckType, MVT::i32, ++/*260169*/ OPC_MoveParent, ++/*260170*/ OPC_MoveChild, 9, ++/*260172*/ OPC_CheckInteger, 1, ++/*260174*/ OPC_CheckType, MVT::i32, ++/*260176*/ OPC_MoveParent, ++/*260177*/ OPC_MoveChild, 10, ++/*260179*/ OPC_CheckInteger, 1, ++/*260181*/ OPC_CheckType, MVT::i32, ++/*260183*/ OPC_MoveParent, ++/*260184*/ OPC_MoveChild, 11, ++/*260186*/ OPC_CheckInteger, 1, ++/*260188*/ OPC_CheckType, MVT::i32, ++/*260190*/ OPC_MoveParent, ++/*260191*/ OPC_MoveChild, 12, ++/*260193*/ OPC_CheckInteger, 1, ++/*260195*/ OPC_CheckType, MVT::i32, ++/*260197*/ OPC_MoveParent, ++/*260198*/ OPC_MoveChild, 13, ++/*260200*/ OPC_CheckInteger, 1, ++/*260202*/ OPC_CheckType, MVT::i32, ++/*260204*/ OPC_MoveParent, ++/*260205*/ OPC_MoveChild, 14, ++/*260207*/ OPC_CheckInteger, 1, ++/*260209*/ OPC_CheckType, MVT::i32, ++/*260211*/ OPC_MoveParent, ++/*260212*/ OPC_MoveChild, 15, ++/*260214*/ OPC_CheckInteger, 1, ++/*260216*/ OPC_CheckType, MVT::i32, ++/*260218*/ OPC_MoveParent, ++/*260219*/ OPC_MoveParent, ++/*260220*/ OPC_MoveParent, ++/*260221*/ OPC_MoveParent, ++/*260222*/ OPC_MoveChild1, ++/*260223*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*260226*/ OPC_CheckChild0Integer, 15, ++/*260228*/ OPC_CheckChild0Type, MVT::i32, ++/*260230*/ OPC_CheckChild1Integer, 15, ++/*260232*/ OPC_CheckChild1Type, MVT::i32, ++/*260234*/ OPC_CheckChild2Integer, 15, ++/*260236*/ OPC_CheckChild2Type, MVT::i32, ++/*260238*/ OPC_CheckChild3Integer, 15, ++/*260240*/ OPC_CheckChild3Type, MVT::i32, ++/*260242*/ OPC_CheckChild4Integer, 15, ++/*260244*/ OPC_CheckChild4Type, MVT::i32, ++/*260246*/ OPC_MoveChild5, ++/*260247*/ OPC_CheckInteger, 15, ++/*260249*/ OPC_CheckType, MVT::i32, ++/*260251*/ OPC_MoveParent, ++/*260252*/ OPC_MoveChild6, ++/*260253*/ OPC_CheckInteger, 15, ++/*260255*/ OPC_CheckType, MVT::i32, ++/*260257*/ OPC_MoveParent, ++/*260258*/ OPC_MoveChild7, ++/*260259*/ OPC_CheckInteger, 15, ++/*260261*/ OPC_CheckType, MVT::i32, ++/*260263*/ OPC_MoveParent, ++/*260264*/ OPC_MoveChild, 8, ++/*260266*/ OPC_CheckInteger, 15, ++/*260268*/ OPC_CheckType, MVT::i32, ++/*260270*/ OPC_MoveParent, ++/*260271*/ OPC_MoveChild, 9, ++/*260273*/ OPC_CheckInteger, 15, ++/*260275*/ OPC_CheckType, MVT::i32, ++/*260277*/ OPC_MoveParent, ++/*260278*/ OPC_MoveChild, 10, ++/*260280*/ OPC_CheckInteger, 15, ++/*260282*/ OPC_CheckType, MVT::i32, ++/*260284*/ OPC_MoveParent, ++/*260285*/ OPC_MoveChild, 11, ++/*260287*/ OPC_CheckInteger, 15, ++/*260289*/ OPC_CheckType, MVT::i32, ++/*260291*/ OPC_MoveParent, ++/*260292*/ OPC_MoveChild, 12, ++/*260294*/ OPC_CheckInteger, 15, ++/*260296*/ OPC_CheckType, MVT::i32, ++/*260298*/ OPC_MoveParent, ++/*260299*/ OPC_MoveChild, 13, ++/*260301*/ OPC_CheckInteger, 15, ++/*260303*/ OPC_CheckType, MVT::i32, ++/*260305*/ OPC_MoveParent, ++/*260306*/ OPC_MoveChild, 14, ++/*260308*/ OPC_CheckInteger, 15, ++/*260310*/ OPC_CheckType, MVT::i32, ++/*260312*/ OPC_MoveParent, ++/*260313*/ OPC_MoveChild, 15, ++/*260315*/ OPC_CheckInteger, 15, ++/*260317*/ OPC_CheckType, MVT::i32, ++/*260319*/ OPC_MoveParent, ++/*260320*/ OPC_CheckType, MVT::v16i16, ++/*260322*/ OPC_MoveParent, ++/*260323*/ OPC_MoveParent, ++/*260324*/ OPC_MoveParent, ++/*260325*/ OPC_MoveChild1, ++/*260326*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*260329*/ OPC_CheckChild0Integer, 1, ++/*260331*/ OPC_CheckChild0Type, MVT::i32, ++/*260333*/ OPC_CheckChild1Integer, 1, ++/*260335*/ OPC_CheckChild1Type, MVT::i32, ++/*260337*/ OPC_CheckChild2Integer, 1, ++/*260339*/ OPC_CheckChild2Type, MVT::i32, ++/*260341*/ OPC_CheckChild3Integer, 1, ++/*260343*/ OPC_CheckChild3Type, MVT::i32, ++/*260345*/ OPC_CheckChild4Integer, 1, ++/*260347*/ OPC_CheckChild4Type, MVT::i32, ++/*260349*/ OPC_MoveChild5, ++/*260350*/ OPC_CheckInteger, 1, ++/*260352*/ OPC_CheckType, MVT::i32, ++/*260354*/ OPC_MoveParent, ++/*260355*/ OPC_MoveChild6, ++/*260356*/ OPC_CheckInteger, 1, ++/*260358*/ OPC_CheckType, MVT::i32, ++/*260360*/ OPC_MoveParent, ++/*260361*/ OPC_MoveChild7, ++/*260362*/ OPC_CheckInteger, 1, ++/*260364*/ OPC_CheckType, MVT::i32, ++/*260366*/ OPC_MoveParent, ++/*260367*/ OPC_MoveChild, 8, ++/*260369*/ OPC_CheckInteger, 1, ++/*260371*/ OPC_CheckType, MVT::i32, ++/*260373*/ OPC_MoveParent, ++/*260374*/ OPC_MoveChild, 9, ++/*260376*/ OPC_CheckInteger, 1, ++/*260378*/ OPC_CheckType, MVT::i32, ++/*260380*/ OPC_MoveParent, ++/*260381*/ OPC_MoveChild, 10, ++/*260383*/ OPC_CheckInteger, 1, ++/*260385*/ OPC_CheckType, MVT::i32, ++/*260387*/ OPC_MoveParent, ++/*260388*/ OPC_MoveChild, 11, ++/*260390*/ OPC_CheckInteger, 1, ++/*260392*/ OPC_CheckType, MVT::i32, ++/*260394*/ OPC_MoveParent, ++/*260395*/ OPC_MoveChild, 12, ++/*260397*/ OPC_CheckInteger, 1, ++/*260399*/ OPC_CheckType, MVT::i32, ++/*260401*/ OPC_MoveParent, ++/*260402*/ OPC_MoveChild, 13, ++/*260404*/ OPC_CheckInteger, 1, ++/*260406*/ OPC_CheckType, MVT::i32, ++/*260408*/ OPC_MoveParent, ++/*260409*/ OPC_MoveChild, 14, ++/*260411*/ OPC_CheckInteger, 1, ++/*260413*/ OPC_CheckType, MVT::i32, ++/*260415*/ OPC_MoveParent, ++/*260416*/ OPC_MoveChild, 15, ++/*260418*/ OPC_CheckInteger, 1, ++/*260420*/ OPC_CheckType, MVT::i32, ++/*260422*/ OPC_MoveParent, ++/*260423*/ OPC_CheckType, MVT::v16i16, ++/*260425*/ OPC_MoveParent, ++/*260426*/ OPC_CheckType, MVT::v16i16, ++/*260428*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*260430*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*260438*/ 0, /*End of Scope*/ ++/*260439*/ /*Scope*/ 10|128,5/*650*/, /*->261091*/ ++/*260441*/ OPC_CheckChild0Same, 0, ++/*260443*/ OPC_MoveChild1, ++/*260444*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*260447*/ OPC_Scope, 63|128,2/*319*/, /*->260769*/ // 2 children in Scope ++/*260450*/ OPC_MoveChild0, ++/*260451*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*260454*/ OPC_CheckChild0Integer, 1, ++/*260456*/ OPC_CheckChild0Type, MVT::i32, ++/*260458*/ OPC_CheckChild1Integer, 1, ++/*260460*/ OPC_CheckChild1Type, MVT::i32, ++/*260462*/ OPC_CheckChild2Integer, 1, ++/*260464*/ OPC_CheckChild2Type, MVT::i32, ++/*260466*/ OPC_CheckChild3Integer, 1, ++/*260468*/ OPC_CheckChild3Type, MVT::i32, ++/*260470*/ OPC_CheckChild4Integer, 1, ++/*260472*/ OPC_CheckChild4Type, MVT::i32, ++/*260474*/ OPC_MoveChild5, ++/*260475*/ OPC_CheckInteger, 1, ++/*260477*/ OPC_CheckType, MVT::i32, ++/*260479*/ OPC_MoveParent, ++/*260480*/ OPC_MoveChild6, ++/*260481*/ OPC_CheckInteger, 1, ++/*260483*/ OPC_CheckType, MVT::i32, ++/*260485*/ OPC_MoveParent, ++/*260486*/ OPC_MoveChild7, ++/*260487*/ OPC_CheckInteger, 1, ++/*260489*/ OPC_CheckType, MVT::i32, ++/*260491*/ OPC_MoveParent, ++/*260492*/ OPC_MoveChild, 8, ++/*260494*/ OPC_CheckInteger, 1, ++/*260496*/ OPC_CheckType, MVT::i32, ++/*260498*/ OPC_MoveParent, ++/*260499*/ OPC_MoveChild, 9, ++/*260501*/ OPC_CheckInteger, 1, ++/*260503*/ OPC_CheckType, MVT::i32, ++/*260505*/ OPC_MoveParent, ++/*260506*/ OPC_MoveChild, 10, ++/*260508*/ OPC_CheckInteger, 1, ++/*260510*/ OPC_CheckType, MVT::i32, ++/*260512*/ OPC_MoveParent, ++/*260513*/ OPC_MoveChild, 11, ++/*260515*/ OPC_CheckInteger, 1, ++/*260517*/ OPC_CheckType, MVT::i32, ++/*260519*/ OPC_MoveParent, ++/*260520*/ OPC_MoveChild, 12, ++/*260522*/ OPC_CheckInteger, 1, ++/*260524*/ OPC_CheckType, MVT::i32, ++/*260526*/ OPC_MoveParent, ++/*260527*/ OPC_MoveChild, 13, ++/*260529*/ OPC_CheckInteger, 1, ++/*260531*/ OPC_CheckType, MVT::i32, ++/*260533*/ OPC_MoveParent, ++/*260534*/ OPC_MoveChild, 14, ++/*260536*/ OPC_CheckInteger, 1, ++/*260538*/ OPC_CheckType, MVT::i32, ++/*260540*/ OPC_MoveParent, ++/*260541*/ OPC_MoveChild, 15, ++/*260543*/ OPC_CheckInteger, 1, ++/*260545*/ OPC_CheckType, MVT::i32, ++/*260547*/ OPC_MoveParent, ++/*260548*/ OPC_MoveParent, ++/*260549*/ OPC_CheckChild1Same, 1, ++/*260551*/ OPC_MoveParent, ++/*260552*/ OPC_MoveParent, ++/*260553*/ OPC_MoveChild1, ++/*260554*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*260557*/ OPC_CheckChild0Integer, 15, ++/*260559*/ OPC_CheckChild0Type, MVT::i32, ++/*260561*/ OPC_CheckChild1Integer, 15, ++/*260563*/ OPC_CheckChild1Type, MVT::i32, ++/*260565*/ OPC_CheckChild2Integer, 15, ++/*260567*/ OPC_CheckChild2Type, MVT::i32, ++/*260569*/ OPC_CheckChild3Integer, 15, ++/*260571*/ OPC_CheckChild3Type, MVT::i32, ++/*260573*/ OPC_CheckChild4Integer, 15, ++/*260575*/ OPC_CheckChild4Type, MVT::i32, ++/*260577*/ OPC_MoveChild5, ++/*260578*/ OPC_CheckInteger, 15, ++/*260580*/ OPC_CheckType, MVT::i32, ++/*260582*/ OPC_MoveParent, ++/*260583*/ OPC_MoveChild6, ++/*260584*/ OPC_CheckInteger, 15, ++/*260586*/ OPC_CheckType, MVT::i32, ++/*260588*/ OPC_MoveParent, ++/*260589*/ OPC_MoveChild7, ++/*260590*/ OPC_CheckInteger, 15, ++/*260592*/ OPC_CheckType, MVT::i32, ++/*260594*/ OPC_MoveParent, ++/*260595*/ OPC_MoveChild, 8, ++/*260597*/ OPC_CheckInteger, 15, ++/*260599*/ OPC_CheckType, MVT::i32, ++/*260601*/ OPC_MoveParent, ++/*260602*/ OPC_MoveChild, 9, ++/*260604*/ OPC_CheckInteger, 15, ++/*260606*/ OPC_CheckType, MVT::i32, ++/*260608*/ OPC_MoveParent, ++/*260609*/ OPC_MoveChild, 10, ++/*260611*/ OPC_CheckInteger, 15, ++/*260613*/ OPC_CheckType, MVT::i32, ++/*260615*/ OPC_MoveParent, ++/*260616*/ OPC_MoveChild, 11, ++/*260618*/ OPC_CheckInteger, 15, ++/*260620*/ OPC_CheckType, MVT::i32, ++/*260622*/ OPC_MoveParent, ++/*260623*/ OPC_MoveChild, 12, ++/*260625*/ OPC_CheckInteger, 15, ++/*260627*/ OPC_CheckType, MVT::i32, ++/*260629*/ OPC_MoveParent, ++/*260630*/ OPC_MoveChild, 13, ++/*260632*/ OPC_CheckInteger, 15, ++/*260634*/ OPC_CheckType, MVT::i32, ++/*260636*/ OPC_MoveParent, ++/*260637*/ OPC_MoveChild, 14, ++/*260639*/ OPC_CheckInteger, 15, ++/*260641*/ OPC_CheckType, MVT::i32, ++/*260643*/ OPC_MoveParent, ++/*260644*/ OPC_MoveChild, 15, ++/*260646*/ OPC_CheckInteger, 15, ++/*260648*/ OPC_CheckType, MVT::i32, ++/*260650*/ OPC_MoveParent, ++/*260651*/ OPC_CheckType, MVT::v16i16, ++/*260653*/ OPC_MoveParent, ++/*260654*/ OPC_MoveParent, ++/*260655*/ OPC_MoveParent, ++/*260656*/ OPC_MoveChild1, ++/*260657*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*260660*/ OPC_CheckChild0Integer, 1, ++/*260662*/ OPC_CheckChild0Type, MVT::i32, ++/*260664*/ OPC_CheckChild1Integer, 1, ++/*260666*/ OPC_CheckChild1Type, MVT::i32, ++/*260668*/ OPC_CheckChild2Integer, 1, ++/*260670*/ OPC_CheckChild2Type, MVT::i32, ++/*260672*/ OPC_CheckChild3Integer, 1, ++/*260674*/ OPC_CheckChild3Type, MVT::i32, ++/*260676*/ OPC_CheckChild4Integer, 1, ++/*260678*/ OPC_CheckChild4Type, MVT::i32, ++/*260680*/ OPC_MoveChild5, ++/*260681*/ OPC_CheckInteger, 1, ++/*260683*/ OPC_CheckType, MVT::i32, ++/*260685*/ OPC_MoveParent, ++/*260686*/ OPC_MoveChild6, ++/*260687*/ OPC_CheckInteger, 1, ++/*260689*/ OPC_CheckType, MVT::i32, ++/*260691*/ OPC_MoveParent, ++/*260692*/ OPC_MoveChild7, ++/*260693*/ OPC_CheckInteger, 1, ++/*260695*/ OPC_CheckType, MVT::i32, ++/*260697*/ OPC_MoveParent, ++/*260698*/ OPC_MoveChild, 8, ++/*260700*/ OPC_CheckInteger, 1, ++/*260702*/ OPC_CheckType, MVT::i32, ++/*260704*/ OPC_MoveParent, ++/*260705*/ OPC_MoveChild, 9, ++/*260707*/ OPC_CheckInteger, 1, ++/*260709*/ OPC_CheckType, MVT::i32, ++/*260711*/ OPC_MoveParent, ++/*260712*/ OPC_MoveChild, 10, ++/*260714*/ OPC_CheckInteger, 1, ++/*260716*/ OPC_CheckType, MVT::i32, ++/*260718*/ OPC_MoveParent, ++/*260719*/ OPC_MoveChild, 11, ++/*260721*/ OPC_CheckInteger, 1, ++/*260723*/ OPC_CheckType, MVT::i32, ++/*260725*/ OPC_MoveParent, ++/*260726*/ OPC_MoveChild, 12, ++/*260728*/ OPC_CheckInteger, 1, ++/*260730*/ OPC_CheckType, MVT::i32, ++/*260732*/ OPC_MoveParent, ++/*260733*/ OPC_MoveChild, 13, ++/*260735*/ OPC_CheckInteger, 1, ++/*260737*/ OPC_CheckType, MVT::i32, ++/*260739*/ OPC_MoveParent, ++/*260740*/ OPC_MoveChild, 14, ++/*260742*/ OPC_CheckInteger, 1, ++/*260744*/ OPC_CheckType, MVT::i32, ++/*260746*/ OPC_MoveParent, ++/*260747*/ OPC_MoveChild, 15, ++/*260749*/ OPC_CheckInteger, 1, ++/*260751*/ OPC_CheckType, MVT::i32, ++/*260753*/ OPC_MoveParent, ++/*260754*/ OPC_CheckType, MVT::v16i16, ++/*260756*/ OPC_MoveParent, ++/*260757*/ OPC_CheckType, MVT::v16i16, ++/*260759*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*260761*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*260769*/ /*Scope*/ 63|128,2/*319*/, /*->261090*/ ++/*260771*/ OPC_CheckChild0Same, 1, ++/*260773*/ OPC_MoveChild1, ++/*260774*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*260777*/ OPC_CheckChild0Integer, 1, ++/*260779*/ OPC_CheckChild0Type, MVT::i32, ++/*260781*/ OPC_CheckChild1Integer, 1, ++/*260783*/ OPC_CheckChild1Type, MVT::i32, ++/*260785*/ OPC_CheckChild2Integer, 1, ++/*260787*/ OPC_CheckChild2Type, MVT::i32, ++/*260789*/ OPC_CheckChild3Integer, 1, ++/*260791*/ OPC_CheckChild3Type, MVT::i32, ++/*260793*/ OPC_CheckChild4Integer, 1, ++/*260795*/ OPC_CheckChild4Type, MVT::i32, ++/*260797*/ OPC_MoveChild5, ++/*260798*/ OPC_CheckInteger, 1, ++/*260800*/ OPC_CheckType, MVT::i32, ++/*260802*/ OPC_MoveParent, ++/*260803*/ OPC_MoveChild6, ++/*260804*/ OPC_CheckInteger, 1, ++/*260806*/ OPC_CheckType, MVT::i32, ++/*260808*/ OPC_MoveParent, ++/*260809*/ OPC_MoveChild7, ++/*260810*/ OPC_CheckInteger, 1, ++/*260812*/ OPC_CheckType, MVT::i32, ++/*260814*/ OPC_MoveParent, ++/*260815*/ OPC_MoveChild, 8, ++/*260817*/ OPC_CheckInteger, 1, ++/*260819*/ OPC_CheckType, MVT::i32, ++/*260821*/ OPC_MoveParent, ++/*260822*/ OPC_MoveChild, 9, ++/*260824*/ OPC_CheckInteger, 1, ++/*260826*/ OPC_CheckType, MVT::i32, ++/*260828*/ OPC_MoveParent, ++/*260829*/ OPC_MoveChild, 10, ++/*260831*/ OPC_CheckInteger, 1, ++/*260833*/ OPC_CheckType, MVT::i32, ++/*260835*/ OPC_MoveParent, ++/*260836*/ OPC_MoveChild, 11, ++/*260838*/ OPC_CheckInteger, 1, ++/*260840*/ OPC_CheckType, MVT::i32, ++/*260842*/ OPC_MoveParent, ++/*260843*/ OPC_MoveChild, 12, ++/*260845*/ OPC_CheckInteger, 1, ++/*260847*/ OPC_CheckType, MVT::i32, ++/*260849*/ OPC_MoveParent, ++/*260850*/ OPC_MoveChild, 13, ++/*260852*/ OPC_CheckInteger, 1, ++/*260854*/ OPC_CheckType, MVT::i32, ++/*260856*/ OPC_MoveParent, ++/*260857*/ OPC_MoveChild, 14, ++/*260859*/ OPC_CheckInteger, 1, ++/*260861*/ OPC_CheckType, MVT::i32, ++/*260863*/ OPC_MoveParent, ++/*260864*/ OPC_MoveChild, 15, ++/*260866*/ OPC_CheckInteger, 1, ++/*260868*/ OPC_CheckType, MVT::i32, ++/*260870*/ OPC_MoveParent, ++/*260871*/ OPC_MoveParent, ++/*260872*/ OPC_MoveParent, ++/*260873*/ OPC_MoveParent, ++/*260874*/ OPC_MoveChild1, ++/*260875*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*260878*/ OPC_CheckChild0Integer, 15, ++/*260880*/ OPC_CheckChild0Type, MVT::i32, ++/*260882*/ OPC_CheckChild1Integer, 15, ++/*260884*/ OPC_CheckChild1Type, MVT::i32, ++/*260886*/ OPC_CheckChild2Integer, 15, ++/*260888*/ OPC_CheckChild2Type, MVT::i32, ++/*260890*/ OPC_CheckChild3Integer, 15, ++/*260892*/ OPC_CheckChild3Type, MVT::i32, ++/*260894*/ OPC_CheckChild4Integer, 15, ++/*260896*/ OPC_CheckChild4Type, MVT::i32, ++/*260898*/ OPC_MoveChild5, ++/*260899*/ OPC_CheckInteger, 15, ++/*260901*/ OPC_CheckType, MVT::i32, ++/*260903*/ OPC_MoveParent, ++/*260904*/ OPC_MoveChild6, ++/*260905*/ OPC_CheckInteger, 15, ++/*260907*/ OPC_CheckType, MVT::i32, ++/*260909*/ OPC_MoveParent, ++/*260910*/ OPC_MoveChild7, ++/*260911*/ OPC_CheckInteger, 15, ++/*260913*/ OPC_CheckType, MVT::i32, ++/*260915*/ OPC_MoveParent, ++/*260916*/ OPC_MoveChild, 8, ++/*260918*/ OPC_CheckInteger, 15, ++/*260920*/ OPC_CheckType, MVT::i32, ++/*260922*/ OPC_MoveParent, ++/*260923*/ OPC_MoveChild, 9, ++/*260925*/ OPC_CheckInteger, 15, ++/*260927*/ OPC_CheckType, MVT::i32, ++/*260929*/ OPC_MoveParent, ++/*260930*/ OPC_MoveChild, 10, ++/*260932*/ OPC_CheckInteger, 15, ++/*260934*/ OPC_CheckType, MVT::i32, ++/*260936*/ OPC_MoveParent, ++/*260937*/ OPC_MoveChild, 11, ++/*260939*/ OPC_CheckInteger, 15, ++/*260941*/ OPC_CheckType, MVT::i32, ++/*260943*/ OPC_MoveParent, ++/*260944*/ OPC_MoveChild, 12, ++/*260946*/ OPC_CheckInteger, 15, ++/*260948*/ OPC_CheckType, MVT::i32, ++/*260950*/ OPC_MoveParent, ++/*260951*/ OPC_MoveChild, 13, ++/*260953*/ OPC_CheckInteger, 15, ++/*260955*/ OPC_CheckType, MVT::i32, ++/*260957*/ OPC_MoveParent, ++/*260958*/ OPC_MoveChild, 14, ++/*260960*/ OPC_CheckInteger, 15, ++/*260962*/ OPC_CheckType, MVT::i32, ++/*260964*/ OPC_MoveParent, ++/*260965*/ OPC_MoveChild, 15, ++/*260967*/ OPC_CheckInteger, 15, ++/*260969*/ OPC_CheckType, MVT::i32, ++/*260971*/ OPC_MoveParent, ++/*260972*/ OPC_CheckType, MVT::v16i16, ++/*260974*/ OPC_MoveParent, ++/*260975*/ OPC_MoveParent, ++/*260976*/ OPC_MoveParent, ++/*260977*/ OPC_MoveChild1, ++/*260978*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*260981*/ OPC_CheckChild0Integer, 1, ++/*260983*/ OPC_CheckChild0Type, MVT::i32, ++/*260985*/ OPC_CheckChild1Integer, 1, ++/*260987*/ OPC_CheckChild1Type, MVT::i32, ++/*260989*/ OPC_CheckChild2Integer, 1, ++/*260991*/ OPC_CheckChild2Type, MVT::i32, ++/*260993*/ OPC_CheckChild3Integer, 1, ++/*260995*/ OPC_CheckChild3Type, MVT::i32, ++/*260997*/ OPC_CheckChild4Integer, 1, ++/*260999*/ OPC_CheckChild4Type, MVT::i32, ++/*261001*/ OPC_MoveChild5, ++/*261002*/ OPC_CheckInteger, 1, ++/*261004*/ OPC_CheckType, MVT::i32, ++/*261006*/ OPC_MoveParent, ++/*261007*/ OPC_MoveChild6, ++/*261008*/ OPC_CheckInteger, 1, ++/*261010*/ OPC_CheckType, MVT::i32, ++/*261012*/ OPC_MoveParent, ++/*261013*/ OPC_MoveChild7, ++/*261014*/ OPC_CheckInteger, 1, ++/*261016*/ OPC_CheckType, MVT::i32, ++/*261018*/ OPC_MoveParent, ++/*261019*/ OPC_MoveChild, 8, ++/*261021*/ OPC_CheckInteger, 1, ++/*261023*/ OPC_CheckType, MVT::i32, ++/*261025*/ OPC_MoveParent, ++/*261026*/ OPC_MoveChild, 9, ++/*261028*/ OPC_CheckInteger, 1, ++/*261030*/ OPC_CheckType, MVT::i32, ++/*261032*/ OPC_MoveParent, ++/*261033*/ OPC_MoveChild, 10, ++/*261035*/ OPC_CheckInteger, 1, ++/*261037*/ OPC_CheckType, MVT::i32, ++/*261039*/ OPC_MoveParent, ++/*261040*/ OPC_MoveChild, 11, ++/*261042*/ OPC_CheckInteger, 1, ++/*261044*/ OPC_CheckType, MVT::i32, ++/*261046*/ OPC_MoveParent, ++/*261047*/ OPC_MoveChild, 12, ++/*261049*/ OPC_CheckInteger, 1, ++/*261051*/ OPC_CheckType, MVT::i32, ++/*261053*/ OPC_MoveParent, ++/*261054*/ OPC_MoveChild, 13, ++/*261056*/ OPC_CheckInteger, 1, ++/*261058*/ OPC_CheckType, MVT::i32, ++/*261060*/ OPC_MoveParent, ++/*261061*/ OPC_MoveChild, 14, ++/*261063*/ OPC_CheckInteger, 1, ++/*261065*/ OPC_CheckType, MVT::i32, ++/*261067*/ OPC_MoveParent, ++/*261068*/ OPC_MoveChild, 15, ++/*261070*/ OPC_CheckInteger, 1, ++/*261072*/ OPC_CheckType, MVT::i32, ++/*261074*/ OPC_MoveParent, ++/*261075*/ OPC_CheckType, MVT::v16i16, ++/*261077*/ OPC_MoveParent, ++/*261078*/ OPC_CheckType, MVT::v16i16, ++/*261080*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*261082*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*261090*/ 0, /*End of Scope*/ ++/*261091*/ /*Scope*/ 41|128,4/*553*/, /*->261646*/ ++/*261093*/ OPC_MoveChild0, ++/*261094*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*261097*/ OPC_CheckChild0Integer, 1, ++/*261099*/ OPC_CheckChild0Type, MVT::i32, ++/*261101*/ OPC_CheckChild1Integer, 1, ++/*261103*/ OPC_CheckChild1Type, MVT::i32, ++/*261105*/ OPC_CheckChild2Integer, 1, ++/*261107*/ OPC_CheckChild2Type, MVT::i32, ++/*261109*/ OPC_CheckChild3Integer, 1, ++/*261111*/ OPC_CheckChild3Type, MVT::i32, ++/*261113*/ OPC_CheckChild4Integer, 1, ++/*261115*/ OPC_CheckChild4Type, MVT::i32, ++/*261117*/ OPC_MoveChild5, ++/*261118*/ OPC_CheckInteger, 1, ++/*261120*/ OPC_CheckType, MVT::i32, ++/*261122*/ OPC_MoveParent, ++/*261123*/ OPC_MoveChild6, ++/*261124*/ OPC_CheckInteger, 1, ++/*261126*/ OPC_CheckType, MVT::i32, ++/*261128*/ OPC_MoveParent, ++/*261129*/ OPC_MoveChild7, ++/*261130*/ OPC_CheckInteger, 1, ++/*261132*/ OPC_CheckType, MVT::i32, ++/*261134*/ OPC_MoveParent, ++/*261135*/ OPC_MoveChild, 8, ++/*261137*/ OPC_CheckInteger, 1, ++/*261139*/ OPC_CheckType, MVT::i32, ++/*261141*/ OPC_MoveParent, ++/*261142*/ OPC_MoveChild, 9, ++/*261144*/ OPC_CheckInteger, 1, ++/*261146*/ OPC_CheckType, MVT::i32, ++/*261148*/ OPC_MoveParent, ++/*261149*/ OPC_MoveChild, 10, ++/*261151*/ OPC_CheckInteger, 1, ++/*261153*/ OPC_CheckType, MVT::i32, ++/*261155*/ OPC_MoveParent, ++/*261156*/ OPC_MoveChild, 11, ++/*261158*/ OPC_CheckInteger, 1, ++/*261160*/ OPC_CheckType, MVT::i32, ++/*261162*/ OPC_MoveParent, ++/*261163*/ OPC_MoveChild, 12, ++/*261165*/ OPC_CheckInteger, 1, ++/*261167*/ OPC_CheckType, MVT::i32, ++/*261169*/ OPC_MoveParent, ++/*261170*/ OPC_MoveChild, 13, ++/*261172*/ OPC_CheckInteger, 1, ++/*261174*/ OPC_CheckType, MVT::i32, ++/*261176*/ OPC_MoveParent, ++/*261177*/ OPC_MoveChild, 14, ++/*261179*/ OPC_CheckInteger, 1, ++/*261181*/ OPC_CheckType, MVT::i32, ++/*261183*/ OPC_MoveParent, ++/*261184*/ OPC_MoveChild, 15, ++/*261186*/ OPC_CheckInteger, 1, ++/*261188*/ OPC_CheckType, MVT::i32, ++/*261190*/ OPC_MoveParent, ++/*261191*/ OPC_MoveParent, ++/*261192*/ OPC_MoveChild1, ++/*261193*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*261196*/ OPC_Scope, 94|128,1/*222*/, /*->261421*/ // 2 children in Scope ++/*261199*/ OPC_CheckChild0Same, 0, ++/*261201*/ OPC_CheckChild1Same, 1, ++/*261203*/ OPC_MoveParent, ++/*261204*/ OPC_MoveParent, ++/*261205*/ OPC_MoveChild1, ++/*261206*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*261209*/ OPC_CheckChild0Integer, 15, ++/*261211*/ OPC_CheckChild0Type, MVT::i32, ++/*261213*/ OPC_CheckChild1Integer, 15, ++/*261215*/ OPC_CheckChild1Type, MVT::i32, ++/*261217*/ OPC_CheckChild2Integer, 15, ++/*261219*/ OPC_CheckChild2Type, MVT::i32, ++/*261221*/ OPC_CheckChild3Integer, 15, ++/*261223*/ OPC_CheckChild3Type, MVT::i32, ++/*261225*/ OPC_CheckChild4Integer, 15, ++/*261227*/ OPC_CheckChild4Type, MVT::i32, ++/*261229*/ OPC_MoveChild5, ++/*261230*/ OPC_CheckInteger, 15, ++/*261232*/ OPC_CheckType, MVT::i32, ++/*261234*/ OPC_MoveParent, ++/*261235*/ OPC_MoveChild6, ++/*261236*/ OPC_CheckInteger, 15, ++/*261238*/ OPC_CheckType, MVT::i32, ++/*261240*/ OPC_MoveParent, ++/*261241*/ OPC_MoveChild7, ++/*261242*/ OPC_CheckInteger, 15, ++/*261244*/ OPC_CheckType, MVT::i32, ++/*261246*/ OPC_MoveParent, ++/*261247*/ OPC_MoveChild, 8, ++/*261249*/ OPC_CheckInteger, 15, ++/*261251*/ OPC_CheckType, MVT::i32, ++/*261253*/ OPC_MoveParent, ++/*261254*/ OPC_MoveChild, 9, ++/*261256*/ OPC_CheckInteger, 15, ++/*261258*/ OPC_CheckType, MVT::i32, ++/*261260*/ OPC_MoveParent, ++/*261261*/ OPC_MoveChild, 10, ++/*261263*/ OPC_CheckInteger, 15, ++/*261265*/ OPC_CheckType, MVT::i32, ++/*261267*/ OPC_MoveParent, ++/*261268*/ OPC_MoveChild, 11, ++/*261270*/ OPC_CheckInteger, 15, ++/*261272*/ OPC_CheckType, MVT::i32, ++/*261274*/ OPC_MoveParent, ++/*261275*/ OPC_MoveChild, 12, ++/*261277*/ OPC_CheckInteger, 15, ++/*261279*/ OPC_CheckType, MVT::i32, ++/*261281*/ OPC_MoveParent, ++/*261282*/ OPC_MoveChild, 13, ++/*261284*/ OPC_CheckInteger, 15, ++/*261286*/ OPC_CheckType, MVT::i32, ++/*261288*/ OPC_MoveParent, ++/*261289*/ OPC_MoveChild, 14, ++/*261291*/ OPC_CheckInteger, 15, ++/*261293*/ OPC_CheckType, MVT::i32, ++/*261295*/ OPC_MoveParent, ++/*261296*/ OPC_MoveChild, 15, ++/*261298*/ OPC_CheckInteger, 15, ++/*261300*/ OPC_CheckType, MVT::i32, ++/*261302*/ OPC_MoveParent, ++/*261303*/ OPC_CheckType, MVT::v16i16, ++/*261305*/ OPC_MoveParent, ++/*261306*/ OPC_MoveParent, ++/*261307*/ OPC_MoveParent, ++/*261308*/ OPC_MoveChild1, ++/*261309*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*261312*/ OPC_CheckChild0Integer, 1, ++/*261314*/ OPC_CheckChild0Type, MVT::i32, ++/*261316*/ OPC_CheckChild1Integer, 1, ++/*261318*/ OPC_CheckChild1Type, MVT::i32, ++/*261320*/ OPC_CheckChild2Integer, 1, ++/*261322*/ OPC_CheckChild2Type, MVT::i32, ++/*261324*/ OPC_CheckChild3Integer, 1, ++/*261326*/ OPC_CheckChild3Type, MVT::i32, ++/*261328*/ OPC_CheckChild4Integer, 1, ++/*261330*/ OPC_CheckChild4Type, MVT::i32, ++/*261332*/ OPC_MoveChild5, ++/*261333*/ OPC_CheckInteger, 1, ++/*261335*/ OPC_CheckType, MVT::i32, ++/*261337*/ OPC_MoveParent, ++/*261338*/ OPC_MoveChild6, ++/*261339*/ OPC_CheckInteger, 1, ++/*261341*/ OPC_CheckType, MVT::i32, ++/*261343*/ OPC_MoveParent, ++/*261344*/ OPC_MoveChild7, ++/*261345*/ OPC_CheckInteger, 1, ++/*261347*/ OPC_CheckType, MVT::i32, ++/*261349*/ OPC_MoveParent, ++/*261350*/ OPC_MoveChild, 8, ++/*261352*/ OPC_CheckInteger, 1, ++/*261354*/ OPC_CheckType, MVT::i32, ++/*261356*/ OPC_MoveParent, ++/*261357*/ OPC_MoveChild, 9, ++/*261359*/ OPC_CheckInteger, 1, ++/*261361*/ OPC_CheckType, MVT::i32, ++/*261363*/ OPC_MoveParent, ++/*261364*/ OPC_MoveChild, 10, ++/*261366*/ OPC_CheckInteger, 1, ++/*261368*/ OPC_CheckType, MVT::i32, ++/*261370*/ OPC_MoveParent, ++/*261371*/ OPC_MoveChild, 11, ++/*261373*/ OPC_CheckInteger, 1, ++/*261375*/ OPC_CheckType, MVT::i32, ++/*261377*/ OPC_MoveParent, ++/*261378*/ OPC_MoveChild, 12, ++/*261380*/ OPC_CheckInteger, 1, ++/*261382*/ OPC_CheckType, MVT::i32, ++/*261384*/ OPC_MoveParent, ++/*261385*/ OPC_MoveChild, 13, ++/*261387*/ OPC_CheckInteger, 1, ++/*261389*/ OPC_CheckType, MVT::i32, ++/*261391*/ OPC_MoveParent, ++/*261392*/ OPC_MoveChild, 14, ++/*261394*/ OPC_CheckInteger, 1, ++/*261396*/ OPC_CheckType, MVT::i32, ++/*261398*/ OPC_MoveParent, ++/*261399*/ OPC_MoveChild, 15, ++/*261401*/ OPC_CheckInteger, 1, ++/*261403*/ OPC_CheckType, MVT::i32, ++/*261405*/ OPC_MoveParent, ++/*261406*/ OPC_CheckType, MVT::v16i16, ++/*261408*/ OPC_MoveParent, ++/*261409*/ OPC_CheckType, MVT::v16i16, ++/*261411*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*261413*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*261421*/ /*Scope*/ 94|128,1/*222*/, /*->261645*/ ++/*261423*/ OPC_CheckChild0Same, 1, ++/*261425*/ OPC_CheckChild1Same, 0, ++/*261427*/ OPC_MoveParent, ++/*261428*/ OPC_MoveParent, ++/*261429*/ OPC_MoveChild1, ++/*261430*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*261433*/ OPC_CheckChild0Integer, 15, ++/*261435*/ OPC_CheckChild0Type, MVT::i32, ++/*261437*/ OPC_CheckChild1Integer, 15, ++/*261439*/ OPC_CheckChild1Type, MVT::i32, ++/*261441*/ OPC_CheckChild2Integer, 15, ++/*261443*/ OPC_CheckChild2Type, MVT::i32, ++/*261445*/ OPC_CheckChild3Integer, 15, ++/*261447*/ OPC_CheckChild3Type, MVT::i32, ++/*261449*/ OPC_CheckChild4Integer, 15, ++/*261451*/ OPC_CheckChild4Type, MVT::i32, ++/*261453*/ OPC_MoveChild5, ++/*261454*/ OPC_CheckInteger, 15, ++/*261456*/ OPC_CheckType, MVT::i32, ++/*261458*/ OPC_MoveParent, ++/*261459*/ OPC_MoveChild6, ++/*261460*/ OPC_CheckInteger, 15, ++/*261462*/ OPC_CheckType, MVT::i32, ++/*261464*/ OPC_MoveParent, ++/*261465*/ OPC_MoveChild7, ++/*261466*/ OPC_CheckInteger, 15, ++/*261468*/ OPC_CheckType, MVT::i32, ++/*261470*/ OPC_MoveParent, ++/*261471*/ OPC_MoveChild, 8, ++/*261473*/ OPC_CheckInteger, 15, ++/*261475*/ OPC_CheckType, MVT::i32, ++/*261477*/ OPC_MoveParent, ++/*261478*/ OPC_MoveChild, 9, ++/*261480*/ OPC_CheckInteger, 15, ++/*261482*/ OPC_CheckType, MVT::i32, ++/*261484*/ OPC_MoveParent, ++/*261485*/ OPC_MoveChild, 10, ++/*261487*/ OPC_CheckInteger, 15, ++/*261489*/ OPC_CheckType, MVT::i32, ++/*261491*/ OPC_MoveParent, ++/*261492*/ OPC_MoveChild, 11, ++/*261494*/ OPC_CheckInteger, 15, ++/*261496*/ OPC_CheckType, MVT::i32, ++/*261498*/ OPC_MoveParent, ++/*261499*/ OPC_MoveChild, 12, ++/*261501*/ OPC_CheckInteger, 15, ++/*261503*/ OPC_CheckType, MVT::i32, ++/*261505*/ OPC_MoveParent, ++/*261506*/ OPC_MoveChild, 13, ++/*261508*/ OPC_CheckInteger, 15, ++/*261510*/ OPC_CheckType, MVT::i32, ++/*261512*/ OPC_MoveParent, ++/*261513*/ OPC_MoveChild, 14, ++/*261515*/ OPC_CheckInteger, 15, ++/*261517*/ OPC_CheckType, MVT::i32, ++/*261519*/ OPC_MoveParent, ++/*261520*/ OPC_MoveChild, 15, ++/*261522*/ OPC_CheckInteger, 15, ++/*261524*/ OPC_CheckType, MVT::i32, ++/*261526*/ OPC_MoveParent, ++/*261527*/ OPC_CheckType, MVT::v16i16, ++/*261529*/ OPC_MoveParent, ++/*261530*/ OPC_MoveParent, ++/*261531*/ OPC_MoveParent, ++/*261532*/ OPC_MoveChild1, ++/*261533*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*261536*/ OPC_CheckChild0Integer, 1, ++/*261538*/ OPC_CheckChild0Type, MVT::i32, ++/*261540*/ OPC_CheckChild1Integer, 1, ++/*261542*/ OPC_CheckChild1Type, MVT::i32, ++/*261544*/ OPC_CheckChild2Integer, 1, ++/*261546*/ OPC_CheckChild2Type, MVT::i32, ++/*261548*/ OPC_CheckChild3Integer, 1, ++/*261550*/ OPC_CheckChild3Type, MVT::i32, ++/*261552*/ OPC_CheckChild4Integer, 1, ++/*261554*/ OPC_CheckChild4Type, MVT::i32, ++/*261556*/ OPC_MoveChild5, ++/*261557*/ OPC_CheckInteger, 1, ++/*261559*/ OPC_CheckType, MVT::i32, ++/*261561*/ OPC_MoveParent, ++/*261562*/ OPC_MoveChild6, ++/*261563*/ OPC_CheckInteger, 1, ++/*261565*/ OPC_CheckType, MVT::i32, ++/*261567*/ OPC_MoveParent, ++/*261568*/ OPC_MoveChild7, ++/*261569*/ OPC_CheckInteger, 1, ++/*261571*/ OPC_CheckType, MVT::i32, ++/*261573*/ OPC_MoveParent, ++/*261574*/ OPC_MoveChild, 8, ++/*261576*/ OPC_CheckInteger, 1, ++/*261578*/ OPC_CheckType, MVT::i32, ++/*261580*/ OPC_MoveParent, ++/*261581*/ OPC_MoveChild, 9, ++/*261583*/ OPC_CheckInteger, 1, ++/*261585*/ OPC_CheckType, MVT::i32, ++/*261587*/ OPC_MoveParent, ++/*261588*/ OPC_MoveChild, 10, ++/*261590*/ OPC_CheckInteger, 1, ++/*261592*/ OPC_CheckType, MVT::i32, ++/*261594*/ OPC_MoveParent, ++/*261595*/ OPC_MoveChild, 11, ++/*261597*/ OPC_CheckInteger, 1, ++/*261599*/ OPC_CheckType, MVT::i32, ++/*261601*/ OPC_MoveParent, ++/*261602*/ OPC_MoveChild, 12, ++/*261604*/ OPC_CheckInteger, 1, ++/*261606*/ OPC_CheckType, MVT::i32, ++/*261608*/ OPC_MoveParent, ++/*261609*/ OPC_MoveChild, 13, ++/*261611*/ OPC_CheckInteger, 1, ++/*261613*/ OPC_CheckType, MVT::i32, ++/*261615*/ OPC_MoveParent, ++/*261616*/ OPC_MoveChild, 14, ++/*261618*/ OPC_CheckInteger, 1, ++/*261620*/ OPC_CheckType, MVT::i32, ++/*261622*/ OPC_MoveParent, ++/*261623*/ OPC_MoveChild, 15, ++/*261625*/ OPC_CheckInteger, 1, ++/*261627*/ OPC_CheckType, MVT::i32, ++/*261629*/ OPC_MoveParent, ++/*261630*/ OPC_CheckType, MVT::v16i16, ++/*261632*/ OPC_MoveParent, ++/*261633*/ OPC_CheckType, MVT::v16i16, ++/*261635*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*261637*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*261645*/ 0, /*End of Scope*/ ++/*261646*/ 0, /*End of Scope*/ ++/*261647*/ 0, /*End of Scope*/ ++/*261648*/ /*Scope*/ 76|128,58/*7500*/, /*->269150*/ ++/*261650*/ OPC_MoveChild0, ++/*261651*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*261654*/ OPC_CheckChild0Integer, 1, ++/*261656*/ OPC_CheckChild0Type, MVT::i32, ++/*261658*/ OPC_CheckChild1Integer, 1, ++/*261660*/ OPC_CheckChild1Type, MVT::i32, ++/*261662*/ OPC_CheckChild2Integer, 1, ++/*261664*/ OPC_CheckChild2Type, MVT::i32, ++/*261666*/ OPC_CheckChild3Integer, 1, ++/*261668*/ OPC_CheckChild3Type, MVT::i32, ++/*261670*/ OPC_CheckChild4Integer, 1, ++/*261672*/ OPC_CheckChild4Type, MVT::i32, ++/*261674*/ OPC_MoveChild5, ++/*261675*/ OPC_CheckInteger, 1, ++/*261677*/ OPC_CheckType, MVT::i32, ++/*261679*/ OPC_MoveParent, ++/*261680*/ OPC_MoveChild6, ++/*261681*/ OPC_CheckInteger, 1, ++/*261683*/ OPC_CheckType, MVT::i32, ++/*261685*/ OPC_MoveParent, ++/*261686*/ OPC_MoveChild7, ++/*261687*/ OPC_CheckInteger, 1, ++/*261689*/ OPC_CheckType, MVT::i32, ++/*261691*/ OPC_MoveParent, ++/*261692*/ OPC_MoveChild, 8, ++/*261694*/ OPC_CheckInteger, 1, ++/*261696*/ OPC_CheckType, MVT::i32, ++/*261698*/ OPC_MoveParent, ++/*261699*/ OPC_MoveChild, 9, ++/*261701*/ OPC_CheckInteger, 1, ++/*261703*/ OPC_CheckType, MVT::i32, ++/*261705*/ OPC_MoveParent, ++/*261706*/ OPC_MoveChild, 10, ++/*261708*/ OPC_CheckInteger, 1, ++/*261710*/ OPC_CheckType, MVT::i32, ++/*261712*/ OPC_MoveParent, ++/*261713*/ OPC_MoveChild, 11, ++/*261715*/ OPC_CheckInteger, 1, ++/*261717*/ OPC_CheckType, MVT::i32, ++/*261719*/ OPC_MoveParent, ++/*261720*/ OPC_MoveChild, 12, ++/*261722*/ OPC_CheckInteger, 1, ++/*261724*/ OPC_CheckType, MVT::i32, ++/*261726*/ OPC_MoveParent, ++/*261727*/ OPC_MoveChild, 13, ++/*261729*/ OPC_CheckInteger, 1, ++/*261731*/ OPC_CheckType, MVT::i32, ++/*261733*/ OPC_MoveParent, ++/*261734*/ OPC_MoveChild, 14, ++/*261736*/ OPC_CheckInteger, 1, ++/*261738*/ OPC_CheckType, MVT::i32, ++/*261740*/ OPC_MoveParent, ++/*261741*/ OPC_MoveChild, 15, ++/*261743*/ OPC_CheckInteger, 1, ++/*261745*/ OPC_CheckType, MVT::i32, ++/*261747*/ OPC_MoveParent, ++/*261748*/ OPC_MoveParent, ++/*261749*/ OPC_MoveChild1, ++/*261750*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*261753*/ OPC_RecordChild0, // #0 = $a ++/*261754*/ OPC_RecordChild1, // #1 = $b ++/*261755*/ OPC_MoveParent, ++/*261756*/ OPC_MoveParent, ++/*261757*/ OPC_MoveChild1, ++/*261758*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*261761*/ OPC_MoveChild0, ++/*261762*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*261765*/ OPC_Scope, 24|128,15/*1944*/, /*->263712*/ // 7 children in Scope ++/*261768*/ OPC_MoveChild0, ++/*261769*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*261772*/ OPC_Scope, 65|128,2/*321*/, /*->262096*/ // 6 children in Scope ++/*261775*/ OPC_MoveChild0, ++/*261776*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*261779*/ OPC_CheckChild0Integer, 1, ++/*261781*/ OPC_CheckChild0Type, MVT::i32, ++/*261783*/ OPC_CheckChild1Integer, 1, ++/*261785*/ OPC_CheckChild1Type, MVT::i32, ++/*261787*/ OPC_CheckChild2Integer, 1, ++/*261789*/ OPC_CheckChild2Type, MVT::i32, ++/*261791*/ OPC_CheckChild3Integer, 1, ++/*261793*/ OPC_CheckChild3Type, MVT::i32, ++/*261795*/ OPC_CheckChild4Integer, 1, ++/*261797*/ OPC_CheckChild4Type, MVT::i32, ++/*261799*/ OPC_MoveChild5, ++/*261800*/ OPC_CheckInteger, 1, ++/*261802*/ OPC_CheckType, MVT::i32, ++/*261804*/ OPC_MoveParent, ++/*261805*/ OPC_MoveChild6, ++/*261806*/ OPC_CheckInteger, 1, ++/*261808*/ OPC_CheckType, MVT::i32, ++/*261810*/ OPC_MoveParent, ++/*261811*/ OPC_MoveChild7, ++/*261812*/ OPC_CheckInteger, 1, ++/*261814*/ OPC_CheckType, MVT::i32, ++/*261816*/ OPC_MoveParent, ++/*261817*/ OPC_MoveChild, 8, ++/*261819*/ OPC_CheckInteger, 1, ++/*261821*/ OPC_CheckType, MVT::i32, ++/*261823*/ OPC_MoveParent, ++/*261824*/ OPC_MoveChild, 9, ++/*261826*/ OPC_CheckInteger, 1, ++/*261828*/ OPC_CheckType, MVT::i32, ++/*261830*/ OPC_MoveParent, ++/*261831*/ OPC_MoveChild, 10, ++/*261833*/ OPC_CheckInteger, 1, ++/*261835*/ OPC_CheckType, MVT::i32, ++/*261837*/ OPC_MoveParent, ++/*261838*/ OPC_MoveChild, 11, ++/*261840*/ OPC_CheckInteger, 1, ++/*261842*/ OPC_CheckType, MVT::i32, ++/*261844*/ OPC_MoveParent, ++/*261845*/ OPC_MoveChild, 12, ++/*261847*/ OPC_CheckInteger, 1, ++/*261849*/ OPC_CheckType, MVT::i32, ++/*261851*/ OPC_MoveParent, ++/*261852*/ OPC_MoveChild, 13, ++/*261854*/ OPC_CheckInteger, 1, ++/*261856*/ OPC_CheckType, MVT::i32, ++/*261858*/ OPC_MoveParent, ++/*261859*/ OPC_MoveChild, 14, ++/*261861*/ OPC_CheckInteger, 1, ++/*261863*/ OPC_CheckType, MVT::i32, ++/*261865*/ OPC_MoveParent, ++/*261866*/ OPC_MoveChild, 15, ++/*261868*/ OPC_CheckInteger, 1, ++/*261870*/ OPC_CheckType, MVT::i32, ++/*261872*/ OPC_MoveParent, ++/*261873*/ OPC_MoveParent, ++/*261874*/ OPC_CheckChild1Same, 0, ++/*261876*/ OPC_MoveParent, ++/*261877*/ OPC_CheckChild1Same, 1, ++/*261879*/ OPC_MoveParent, ++/*261880*/ OPC_MoveChild1, ++/*261881*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*261884*/ OPC_CheckChild0Integer, 15, ++/*261886*/ OPC_CheckChild0Type, MVT::i32, ++/*261888*/ OPC_CheckChild1Integer, 15, ++/*261890*/ OPC_CheckChild1Type, MVT::i32, ++/*261892*/ OPC_CheckChild2Integer, 15, ++/*261894*/ OPC_CheckChild2Type, MVT::i32, ++/*261896*/ OPC_CheckChild3Integer, 15, ++/*261898*/ OPC_CheckChild3Type, MVT::i32, ++/*261900*/ OPC_CheckChild4Integer, 15, ++/*261902*/ OPC_CheckChild4Type, MVT::i32, ++/*261904*/ OPC_MoveChild5, ++/*261905*/ OPC_CheckInteger, 15, ++/*261907*/ OPC_CheckType, MVT::i32, ++/*261909*/ OPC_MoveParent, ++/*261910*/ OPC_MoveChild6, ++/*261911*/ OPC_CheckInteger, 15, ++/*261913*/ OPC_CheckType, MVT::i32, ++/*261915*/ OPC_MoveParent, ++/*261916*/ OPC_MoveChild7, ++/*261917*/ OPC_CheckInteger, 15, ++/*261919*/ OPC_CheckType, MVT::i32, ++/*261921*/ OPC_MoveParent, ++/*261922*/ OPC_MoveChild, 8, ++/*261924*/ OPC_CheckInteger, 15, ++/*261926*/ OPC_CheckType, MVT::i32, ++/*261928*/ OPC_MoveParent, ++/*261929*/ OPC_MoveChild, 9, ++/*261931*/ OPC_CheckInteger, 15, ++/*261933*/ OPC_CheckType, MVT::i32, ++/*261935*/ OPC_MoveParent, ++/*261936*/ OPC_MoveChild, 10, ++/*261938*/ OPC_CheckInteger, 15, ++/*261940*/ OPC_CheckType, MVT::i32, ++/*261942*/ OPC_MoveParent, ++/*261943*/ OPC_MoveChild, 11, ++/*261945*/ OPC_CheckInteger, 15, ++/*261947*/ OPC_CheckType, MVT::i32, ++/*261949*/ OPC_MoveParent, ++/*261950*/ OPC_MoveChild, 12, ++/*261952*/ OPC_CheckInteger, 15, ++/*261954*/ OPC_CheckType, MVT::i32, ++/*261956*/ OPC_MoveParent, ++/*261957*/ OPC_MoveChild, 13, ++/*261959*/ OPC_CheckInteger, 15, ++/*261961*/ OPC_CheckType, MVT::i32, ++/*261963*/ OPC_MoveParent, ++/*261964*/ OPC_MoveChild, 14, ++/*261966*/ OPC_CheckInteger, 15, ++/*261968*/ OPC_CheckType, MVT::i32, ++/*261970*/ OPC_MoveParent, ++/*261971*/ OPC_MoveChild, 15, ++/*261973*/ OPC_CheckInteger, 15, ++/*261975*/ OPC_CheckType, MVT::i32, ++/*261977*/ OPC_MoveParent, ++/*261978*/ OPC_CheckType, MVT::v16i16, ++/*261980*/ OPC_MoveParent, ++/*261981*/ OPC_MoveParent, ++/*261982*/ OPC_MoveParent, ++/*261983*/ OPC_MoveChild1, ++/*261984*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*261987*/ OPC_CheckChild0Integer, 1, ++/*261989*/ OPC_CheckChild0Type, MVT::i32, ++/*261991*/ OPC_CheckChild1Integer, 1, ++/*261993*/ OPC_CheckChild1Type, MVT::i32, ++/*261995*/ OPC_CheckChild2Integer, 1, ++/*261997*/ OPC_CheckChild2Type, MVT::i32, ++/*261999*/ OPC_CheckChild3Integer, 1, ++/*262001*/ OPC_CheckChild3Type, MVT::i32, ++/*262003*/ OPC_CheckChild4Integer, 1, ++/*262005*/ OPC_CheckChild4Type, MVT::i32, ++/*262007*/ OPC_MoveChild5, ++/*262008*/ OPC_CheckInteger, 1, ++/*262010*/ OPC_CheckType, MVT::i32, ++/*262012*/ OPC_MoveParent, ++/*262013*/ OPC_MoveChild6, ++/*262014*/ OPC_CheckInteger, 1, ++/*262016*/ OPC_CheckType, MVT::i32, ++/*262018*/ OPC_MoveParent, ++/*262019*/ OPC_MoveChild7, ++/*262020*/ OPC_CheckInteger, 1, ++/*262022*/ OPC_CheckType, MVT::i32, ++/*262024*/ OPC_MoveParent, ++/*262025*/ OPC_MoveChild, 8, ++/*262027*/ OPC_CheckInteger, 1, ++/*262029*/ OPC_CheckType, MVT::i32, ++/*262031*/ OPC_MoveParent, ++/*262032*/ OPC_MoveChild, 9, ++/*262034*/ OPC_CheckInteger, 1, ++/*262036*/ OPC_CheckType, MVT::i32, ++/*262038*/ OPC_MoveParent, ++/*262039*/ OPC_MoveChild, 10, ++/*262041*/ OPC_CheckInteger, 1, ++/*262043*/ OPC_CheckType, MVT::i32, ++/*262045*/ OPC_MoveParent, ++/*262046*/ OPC_MoveChild, 11, ++/*262048*/ OPC_CheckInteger, 1, ++/*262050*/ OPC_CheckType, MVT::i32, ++/*262052*/ OPC_MoveParent, ++/*262053*/ OPC_MoveChild, 12, ++/*262055*/ OPC_CheckInteger, 1, ++/*262057*/ OPC_CheckType, MVT::i32, ++/*262059*/ OPC_MoveParent, ++/*262060*/ OPC_MoveChild, 13, ++/*262062*/ OPC_CheckInteger, 1, ++/*262064*/ OPC_CheckType, MVT::i32, ++/*262066*/ OPC_MoveParent, ++/*262067*/ OPC_MoveChild, 14, ++/*262069*/ OPC_CheckInteger, 1, ++/*262071*/ OPC_CheckType, MVT::i32, ++/*262073*/ OPC_MoveParent, ++/*262074*/ OPC_MoveChild, 15, ++/*262076*/ OPC_CheckInteger, 1, ++/*262078*/ OPC_CheckType, MVT::i32, ++/*262080*/ OPC_MoveParent, ++/*262081*/ OPC_CheckType, MVT::v16i16, ++/*262083*/ OPC_MoveParent, ++/*262084*/ OPC_CheckType, MVT::v16i16, ++/*262086*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*262088*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b)), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a), LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*262096*/ /*Scope*/ 65|128,2/*321*/, /*->262419*/ ++/*262098*/ OPC_CheckChild0Same, 0, ++/*262100*/ OPC_MoveChild1, ++/*262101*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*262104*/ OPC_CheckChild0Integer, 1, ++/*262106*/ OPC_CheckChild0Type, MVT::i32, ++/*262108*/ OPC_CheckChild1Integer, 1, ++/*262110*/ OPC_CheckChild1Type, MVT::i32, ++/*262112*/ OPC_CheckChild2Integer, 1, ++/*262114*/ OPC_CheckChild2Type, MVT::i32, ++/*262116*/ OPC_CheckChild3Integer, 1, ++/*262118*/ OPC_CheckChild3Type, MVT::i32, ++/*262120*/ OPC_CheckChild4Integer, 1, ++/*262122*/ OPC_CheckChild4Type, MVT::i32, ++/*262124*/ OPC_MoveChild5, ++/*262125*/ OPC_CheckInteger, 1, ++/*262127*/ OPC_CheckType, MVT::i32, ++/*262129*/ OPC_MoveParent, ++/*262130*/ OPC_MoveChild6, ++/*262131*/ OPC_CheckInteger, 1, ++/*262133*/ OPC_CheckType, MVT::i32, ++/*262135*/ OPC_MoveParent, ++/*262136*/ OPC_MoveChild7, ++/*262137*/ OPC_CheckInteger, 1, ++/*262139*/ OPC_CheckType, MVT::i32, ++/*262141*/ OPC_MoveParent, ++/*262142*/ OPC_MoveChild, 8, ++/*262144*/ OPC_CheckInteger, 1, ++/*262146*/ OPC_CheckType, MVT::i32, ++/*262148*/ OPC_MoveParent, ++/*262149*/ OPC_MoveChild, 9, ++/*262151*/ OPC_CheckInteger, 1, ++/*262153*/ OPC_CheckType, MVT::i32, ++/*262155*/ OPC_MoveParent, ++/*262156*/ OPC_MoveChild, 10, ++/*262158*/ OPC_CheckInteger, 1, ++/*262160*/ OPC_CheckType, MVT::i32, ++/*262162*/ OPC_MoveParent, ++/*262163*/ OPC_MoveChild, 11, ++/*262165*/ OPC_CheckInteger, 1, ++/*262167*/ OPC_CheckType, MVT::i32, ++/*262169*/ OPC_MoveParent, ++/*262170*/ OPC_MoveChild, 12, ++/*262172*/ OPC_CheckInteger, 1, ++/*262174*/ OPC_CheckType, MVT::i32, ++/*262176*/ OPC_MoveParent, ++/*262177*/ OPC_MoveChild, 13, ++/*262179*/ OPC_CheckInteger, 1, ++/*262181*/ OPC_CheckType, MVT::i32, ++/*262183*/ OPC_MoveParent, ++/*262184*/ OPC_MoveChild, 14, ++/*262186*/ OPC_CheckInteger, 1, ++/*262188*/ OPC_CheckType, MVT::i32, ++/*262190*/ OPC_MoveParent, ++/*262191*/ OPC_MoveChild, 15, ++/*262193*/ OPC_CheckInteger, 1, ++/*262195*/ OPC_CheckType, MVT::i32, ++/*262197*/ OPC_MoveParent, ++/*262198*/ OPC_MoveParent, ++/*262199*/ OPC_MoveParent, ++/*262200*/ OPC_CheckChild1Same, 1, ++/*262202*/ OPC_MoveParent, ++/*262203*/ OPC_MoveChild1, ++/*262204*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*262207*/ OPC_CheckChild0Integer, 15, ++/*262209*/ OPC_CheckChild0Type, MVT::i32, ++/*262211*/ OPC_CheckChild1Integer, 15, ++/*262213*/ OPC_CheckChild1Type, MVT::i32, ++/*262215*/ OPC_CheckChild2Integer, 15, ++/*262217*/ OPC_CheckChild2Type, MVT::i32, ++/*262219*/ OPC_CheckChild3Integer, 15, ++/*262221*/ OPC_CheckChild3Type, MVT::i32, ++/*262223*/ OPC_CheckChild4Integer, 15, ++/*262225*/ OPC_CheckChild4Type, MVT::i32, ++/*262227*/ OPC_MoveChild5, ++/*262228*/ OPC_CheckInteger, 15, ++/*262230*/ OPC_CheckType, MVT::i32, ++/*262232*/ OPC_MoveParent, ++/*262233*/ OPC_MoveChild6, ++/*262234*/ OPC_CheckInteger, 15, ++/*262236*/ OPC_CheckType, MVT::i32, ++/*262238*/ OPC_MoveParent, ++/*262239*/ OPC_MoveChild7, ++/*262240*/ OPC_CheckInteger, 15, ++/*262242*/ OPC_CheckType, MVT::i32, ++/*262244*/ OPC_MoveParent, ++/*262245*/ OPC_MoveChild, 8, ++/*262247*/ OPC_CheckInteger, 15, ++/*262249*/ OPC_CheckType, MVT::i32, ++/*262251*/ OPC_MoveParent, ++/*262252*/ OPC_MoveChild, 9, ++/*262254*/ OPC_CheckInteger, 15, ++/*262256*/ OPC_CheckType, MVT::i32, ++/*262258*/ OPC_MoveParent, ++/*262259*/ OPC_MoveChild, 10, ++/*262261*/ OPC_CheckInteger, 15, ++/*262263*/ OPC_CheckType, MVT::i32, ++/*262265*/ OPC_MoveParent, ++/*262266*/ OPC_MoveChild, 11, ++/*262268*/ OPC_CheckInteger, 15, ++/*262270*/ OPC_CheckType, MVT::i32, ++/*262272*/ OPC_MoveParent, ++/*262273*/ OPC_MoveChild, 12, ++/*262275*/ OPC_CheckInteger, 15, ++/*262277*/ OPC_CheckType, MVT::i32, ++/*262279*/ OPC_MoveParent, ++/*262280*/ OPC_MoveChild, 13, ++/*262282*/ OPC_CheckInteger, 15, ++/*262284*/ OPC_CheckType, MVT::i32, ++/*262286*/ OPC_MoveParent, ++/*262287*/ OPC_MoveChild, 14, ++/*262289*/ OPC_CheckInteger, 15, ++/*262291*/ OPC_CheckType, MVT::i32, ++/*262293*/ OPC_MoveParent, ++/*262294*/ OPC_MoveChild, 15, ++/*262296*/ OPC_CheckInteger, 15, ++/*262298*/ OPC_CheckType, MVT::i32, ++/*262300*/ OPC_MoveParent, ++/*262301*/ OPC_CheckType, MVT::v16i16, ++/*262303*/ OPC_MoveParent, ++/*262304*/ OPC_MoveParent, ++/*262305*/ OPC_MoveParent, ++/*262306*/ OPC_MoveChild1, ++/*262307*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*262310*/ OPC_CheckChild0Integer, 1, ++/*262312*/ OPC_CheckChild0Type, MVT::i32, ++/*262314*/ OPC_CheckChild1Integer, 1, ++/*262316*/ OPC_CheckChild1Type, MVT::i32, ++/*262318*/ OPC_CheckChild2Integer, 1, ++/*262320*/ OPC_CheckChild2Type, MVT::i32, ++/*262322*/ OPC_CheckChild3Integer, 1, ++/*262324*/ OPC_CheckChild3Type, MVT::i32, ++/*262326*/ OPC_CheckChild4Integer, 1, ++/*262328*/ OPC_CheckChild4Type, MVT::i32, ++/*262330*/ OPC_MoveChild5, ++/*262331*/ OPC_CheckInteger, 1, ++/*262333*/ OPC_CheckType, MVT::i32, ++/*262335*/ OPC_MoveParent, ++/*262336*/ OPC_MoveChild6, ++/*262337*/ OPC_CheckInteger, 1, ++/*262339*/ OPC_CheckType, MVT::i32, ++/*262341*/ OPC_MoveParent, ++/*262342*/ OPC_MoveChild7, ++/*262343*/ OPC_CheckInteger, 1, ++/*262345*/ OPC_CheckType, MVT::i32, ++/*262347*/ OPC_MoveParent, ++/*262348*/ OPC_MoveChild, 8, ++/*262350*/ OPC_CheckInteger, 1, ++/*262352*/ OPC_CheckType, MVT::i32, ++/*262354*/ OPC_MoveParent, ++/*262355*/ OPC_MoveChild, 9, ++/*262357*/ OPC_CheckInteger, 1, ++/*262359*/ OPC_CheckType, MVT::i32, ++/*262361*/ OPC_MoveParent, ++/*262362*/ OPC_MoveChild, 10, ++/*262364*/ OPC_CheckInteger, 1, ++/*262366*/ OPC_CheckType, MVT::i32, ++/*262368*/ OPC_MoveParent, ++/*262369*/ OPC_MoveChild, 11, ++/*262371*/ OPC_CheckInteger, 1, ++/*262373*/ OPC_CheckType, MVT::i32, ++/*262375*/ OPC_MoveParent, ++/*262376*/ OPC_MoveChild, 12, ++/*262378*/ OPC_CheckInteger, 1, ++/*262380*/ OPC_CheckType, MVT::i32, ++/*262382*/ OPC_MoveParent, ++/*262383*/ OPC_MoveChild, 13, ++/*262385*/ OPC_CheckInteger, 1, ++/*262387*/ OPC_CheckType, MVT::i32, ++/*262389*/ OPC_MoveParent, ++/*262390*/ OPC_MoveChild, 14, ++/*262392*/ OPC_CheckInteger, 1, ++/*262394*/ OPC_CheckType, MVT::i32, ++/*262396*/ OPC_MoveParent, ++/*262397*/ OPC_MoveChild, 15, ++/*262399*/ OPC_CheckInteger, 1, ++/*262401*/ OPC_CheckType, MVT::i32, ++/*262403*/ OPC_MoveParent, ++/*262404*/ OPC_CheckType, MVT::v16i16, ++/*262406*/ OPC_MoveParent, ++/*262407*/ OPC_CheckType, MVT::v16i16, ++/*262409*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*262411*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b)), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*262419*/ /*Scope*/ 65|128,2/*321*/, /*->262742*/ ++/*262421*/ OPC_MoveChild0, ++/*262422*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*262425*/ OPC_CheckChild0Integer, 1, ++/*262427*/ OPC_CheckChild0Type, MVT::i32, ++/*262429*/ OPC_CheckChild1Integer, 1, ++/*262431*/ OPC_CheckChild1Type, MVT::i32, ++/*262433*/ OPC_CheckChild2Integer, 1, ++/*262435*/ OPC_CheckChild2Type, MVT::i32, ++/*262437*/ OPC_CheckChild3Integer, 1, ++/*262439*/ OPC_CheckChild3Type, MVT::i32, ++/*262441*/ OPC_CheckChild4Integer, 1, ++/*262443*/ OPC_CheckChild4Type, MVT::i32, ++/*262445*/ OPC_MoveChild5, ++/*262446*/ OPC_CheckInteger, 1, ++/*262448*/ OPC_CheckType, MVT::i32, ++/*262450*/ OPC_MoveParent, ++/*262451*/ OPC_MoveChild6, ++/*262452*/ OPC_CheckInteger, 1, ++/*262454*/ OPC_CheckType, MVT::i32, ++/*262456*/ OPC_MoveParent, ++/*262457*/ OPC_MoveChild7, ++/*262458*/ OPC_CheckInteger, 1, ++/*262460*/ OPC_CheckType, MVT::i32, ++/*262462*/ OPC_MoveParent, ++/*262463*/ OPC_MoveChild, 8, ++/*262465*/ OPC_CheckInteger, 1, ++/*262467*/ OPC_CheckType, MVT::i32, ++/*262469*/ OPC_MoveParent, ++/*262470*/ OPC_MoveChild, 9, ++/*262472*/ OPC_CheckInteger, 1, ++/*262474*/ OPC_CheckType, MVT::i32, ++/*262476*/ OPC_MoveParent, ++/*262477*/ OPC_MoveChild, 10, ++/*262479*/ OPC_CheckInteger, 1, ++/*262481*/ OPC_CheckType, MVT::i32, ++/*262483*/ OPC_MoveParent, ++/*262484*/ OPC_MoveChild, 11, ++/*262486*/ OPC_CheckInteger, 1, ++/*262488*/ OPC_CheckType, MVT::i32, ++/*262490*/ OPC_MoveParent, ++/*262491*/ OPC_MoveChild, 12, ++/*262493*/ OPC_CheckInteger, 1, ++/*262495*/ OPC_CheckType, MVT::i32, ++/*262497*/ OPC_MoveParent, ++/*262498*/ OPC_MoveChild, 13, ++/*262500*/ OPC_CheckInteger, 1, ++/*262502*/ OPC_CheckType, MVT::i32, ++/*262504*/ OPC_MoveParent, ++/*262505*/ OPC_MoveChild, 14, ++/*262507*/ OPC_CheckInteger, 1, ++/*262509*/ OPC_CheckType, MVT::i32, ++/*262511*/ OPC_MoveParent, ++/*262512*/ OPC_MoveChild, 15, ++/*262514*/ OPC_CheckInteger, 1, ++/*262516*/ OPC_CheckType, MVT::i32, ++/*262518*/ OPC_MoveParent, ++/*262519*/ OPC_MoveParent, ++/*262520*/ OPC_CheckChild1Same, 1, ++/*262522*/ OPC_MoveParent, ++/*262523*/ OPC_CheckChild1Same, 0, ++/*262525*/ OPC_MoveParent, ++/*262526*/ OPC_MoveChild1, ++/*262527*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*262530*/ OPC_CheckChild0Integer, 15, ++/*262532*/ OPC_CheckChild0Type, MVT::i32, ++/*262534*/ OPC_CheckChild1Integer, 15, ++/*262536*/ OPC_CheckChild1Type, MVT::i32, ++/*262538*/ OPC_CheckChild2Integer, 15, ++/*262540*/ OPC_CheckChild2Type, MVT::i32, ++/*262542*/ OPC_CheckChild3Integer, 15, ++/*262544*/ OPC_CheckChild3Type, MVT::i32, ++/*262546*/ OPC_CheckChild4Integer, 15, ++/*262548*/ OPC_CheckChild4Type, MVT::i32, ++/*262550*/ OPC_MoveChild5, ++/*262551*/ OPC_CheckInteger, 15, ++/*262553*/ OPC_CheckType, MVT::i32, ++/*262555*/ OPC_MoveParent, ++/*262556*/ OPC_MoveChild6, ++/*262557*/ OPC_CheckInteger, 15, ++/*262559*/ OPC_CheckType, MVT::i32, ++/*262561*/ OPC_MoveParent, ++/*262562*/ OPC_MoveChild7, ++/*262563*/ OPC_CheckInteger, 15, ++/*262565*/ OPC_CheckType, MVT::i32, ++/*262567*/ OPC_MoveParent, ++/*262568*/ OPC_MoveChild, 8, ++/*262570*/ OPC_CheckInteger, 15, ++/*262572*/ OPC_CheckType, MVT::i32, ++/*262574*/ OPC_MoveParent, ++/*262575*/ OPC_MoveChild, 9, ++/*262577*/ OPC_CheckInteger, 15, ++/*262579*/ OPC_CheckType, MVT::i32, ++/*262581*/ OPC_MoveParent, ++/*262582*/ OPC_MoveChild, 10, ++/*262584*/ OPC_CheckInteger, 15, ++/*262586*/ OPC_CheckType, MVT::i32, ++/*262588*/ OPC_MoveParent, ++/*262589*/ OPC_MoveChild, 11, ++/*262591*/ OPC_CheckInteger, 15, ++/*262593*/ OPC_CheckType, MVT::i32, ++/*262595*/ OPC_MoveParent, ++/*262596*/ OPC_MoveChild, 12, ++/*262598*/ OPC_CheckInteger, 15, ++/*262600*/ OPC_CheckType, MVT::i32, ++/*262602*/ OPC_MoveParent, ++/*262603*/ OPC_MoveChild, 13, ++/*262605*/ OPC_CheckInteger, 15, ++/*262607*/ OPC_CheckType, MVT::i32, ++/*262609*/ OPC_MoveParent, ++/*262610*/ OPC_MoveChild, 14, ++/*262612*/ OPC_CheckInteger, 15, ++/*262614*/ OPC_CheckType, MVT::i32, ++/*262616*/ OPC_MoveParent, ++/*262617*/ OPC_MoveChild, 15, ++/*262619*/ OPC_CheckInteger, 15, ++/*262621*/ OPC_CheckType, MVT::i32, ++/*262623*/ OPC_MoveParent, ++/*262624*/ OPC_CheckType, MVT::v16i16, ++/*262626*/ OPC_MoveParent, ++/*262627*/ OPC_MoveParent, ++/*262628*/ OPC_MoveParent, ++/*262629*/ OPC_MoveChild1, ++/*262630*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*262633*/ OPC_CheckChild0Integer, 1, ++/*262635*/ OPC_CheckChild0Type, MVT::i32, ++/*262637*/ OPC_CheckChild1Integer, 1, ++/*262639*/ OPC_CheckChild1Type, MVT::i32, ++/*262641*/ OPC_CheckChild2Integer, 1, ++/*262643*/ OPC_CheckChild2Type, MVT::i32, ++/*262645*/ OPC_CheckChild3Integer, 1, ++/*262647*/ OPC_CheckChild3Type, MVT::i32, ++/*262649*/ OPC_CheckChild4Integer, 1, ++/*262651*/ OPC_CheckChild4Type, MVT::i32, ++/*262653*/ OPC_MoveChild5, ++/*262654*/ OPC_CheckInteger, 1, ++/*262656*/ OPC_CheckType, MVT::i32, ++/*262658*/ OPC_MoveParent, ++/*262659*/ OPC_MoveChild6, ++/*262660*/ OPC_CheckInteger, 1, ++/*262662*/ OPC_CheckType, MVT::i32, ++/*262664*/ OPC_MoveParent, ++/*262665*/ OPC_MoveChild7, ++/*262666*/ OPC_CheckInteger, 1, ++/*262668*/ OPC_CheckType, MVT::i32, ++/*262670*/ OPC_MoveParent, ++/*262671*/ OPC_MoveChild, 8, ++/*262673*/ OPC_CheckInteger, 1, ++/*262675*/ OPC_CheckType, MVT::i32, ++/*262677*/ OPC_MoveParent, ++/*262678*/ OPC_MoveChild, 9, ++/*262680*/ OPC_CheckInteger, 1, ++/*262682*/ OPC_CheckType, MVT::i32, ++/*262684*/ OPC_MoveParent, ++/*262685*/ OPC_MoveChild, 10, ++/*262687*/ OPC_CheckInteger, 1, ++/*262689*/ OPC_CheckType, MVT::i32, ++/*262691*/ OPC_MoveParent, ++/*262692*/ OPC_MoveChild, 11, ++/*262694*/ OPC_CheckInteger, 1, ++/*262696*/ OPC_CheckType, MVT::i32, ++/*262698*/ OPC_MoveParent, ++/*262699*/ OPC_MoveChild, 12, ++/*262701*/ OPC_CheckInteger, 1, ++/*262703*/ OPC_CheckType, MVT::i32, ++/*262705*/ OPC_MoveParent, ++/*262706*/ OPC_MoveChild, 13, ++/*262708*/ OPC_CheckInteger, 1, ++/*262710*/ OPC_CheckType, MVT::i32, ++/*262712*/ OPC_MoveParent, ++/*262713*/ OPC_MoveChild, 14, ++/*262715*/ OPC_CheckInteger, 1, ++/*262717*/ OPC_CheckType, MVT::i32, ++/*262719*/ OPC_MoveParent, ++/*262720*/ OPC_MoveChild, 15, ++/*262722*/ OPC_CheckInteger, 1, ++/*262724*/ OPC_CheckType, MVT::i32, ++/*262726*/ OPC_MoveParent, ++/*262727*/ OPC_CheckType, MVT::v16i16, ++/*262729*/ OPC_MoveParent, ++/*262730*/ OPC_CheckType, MVT::v16i16, ++/*262732*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*262734*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b)), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b), LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*262742*/ /*Scope*/ 65|128,2/*321*/, /*->263065*/ ++/*262744*/ OPC_CheckChild0Same, 1, ++/*262746*/ OPC_MoveChild1, ++/*262747*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*262750*/ OPC_CheckChild0Integer, 1, ++/*262752*/ OPC_CheckChild0Type, MVT::i32, ++/*262754*/ OPC_CheckChild1Integer, 1, ++/*262756*/ OPC_CheckChild1Type, MVT::i32, ++/*262758*/ OPC_CheckChild2Integer, 1, ++/*262760*/ OPC_CheckChild2Type, MVT::i32, ++/*262762*/ OPC_CheckChild3Integer, 1, ++/*262764*/ OPC_CheckChild3Type, MVT::i32, ++/*262766*/ OPC_CheckChild4Integer, 1, ++/*262768*/ OPC_CheckChild4Type, MVT::i32, ++/*262770*/ OPC_MoveChild5, ++/*262771*/ OPC_CheckInteger, 1, ++/*262773*/ OPC_CheckType, MVT::i32, ++/*262775*/ OPC_MoveParent, ++/*262776*/ OPC_MoveChild6, ++/*262777*/ OPC_CheckInteger, 1, ++/*262779*/ OPC_CheckType, MVT::i32, ++/*262781*/ OPC_MoveParent, ++/*262782*/ OPC_MoveChild7, ++/*262783*/ OPC_CheckInteger, 1, ++/*262785*/ OPC_CheckType, MVT::i32, ++/*262787*/ OPC_MoveParent, ++/*262788*/ OPC_MoveChild, 8, ++/*262790*/ OPC_CheckInteger, 1, ++/*262792*/ OPC_CheckType, MVT::i32, ++/*262794*/ OPC_MoveParent, ++/*262795*/ OPC_MoveChild, 9, ++/*262797*/ OPC_CheckInteger, 1, ++/*262799*/ OPC_CheckType, MVT::i32, ++/*262801*/ OPC_MoveParent, ++/*262802*/ OPC_MoveChild, 10, ++/*262804*/ OPC_CheckInteger, 1, ++/*262806*/ OPC_CheckType, MVT::i32, ++/*262808*/ OPC_MoveParent, ++/*262809*/ OPC_MoveChild, 11, ++/*262811*/ OPC_CheckInteger, 1, ++/*262813*/ OPC_CheckType, MVT::i32, ++/*262815*/ OPC_MoveParent, ++/*262816*/ OPC_MoveChild, 12, ++/*262818*/ OPC_CheckInteger, 1, ++/*262820*/ OPC_CheckType, MVT::i32, ++/*262822*/ OPC_MoveParent, ++/*262823*/ OPC_MoveChild, 13, ++/*262825*/ OPC_CheckInteger, 1, ++/*262827*/ OPC_CheckType, MVT::i32, ++/*262829*/ OPC_MoveParent, ++/*262830*/ OPC_MoveChild, 14, ++/*262832*/ OPC_CheckInteger, 1, ++/*262834*/ OPC_CheckType, MVT::i32, ++/*262836*/ OPC_MoveParent, ++/*262837*/ OPC_MoveChild, 15, ++/*262839*/ OPC_CheckInteger, 1, ++/*262841*/ OPC_CheckType, MVT::i32, ++/*262843*/ OPC_MoveParent, ++/*262844*/ OPC_MoveParent, ++/*262845*/ OPC_MoveParent, ++/*262846*/ OPC_CheckChild1Same, 0, ++/*262848*/ OPC_MoveParent, ++/*262849*/ OPC_MoveChild1, ++/*262850*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*262853*/ OPC_CheckChild0Integer, 15, ++/*262855*/ OPC_CheckChild0Type, MVT::i32, ++/*262857*/ OPC_CheckChild1Integer, 15, ++/*262859*/ OPC_CheckChild1Type, MVT::i32, ++/*262861*/ OPC_CheckChild2Integer, 15, ++/*262863*/ OPC_CheckChild2Type, MVT::i32, ++/*262865*/ OPC_CheckChild3Integer, 15, ++/*262867*/ OPC_CheckChild3Type, MVT::i32, ++/*262869*/ OPC_CheckChild4Integer, 15, ++/*262871*/ OPC_CheckChild4Type, MVT::i32, ++/*262873*/ OPC_MoveChild5, ++/*262874*/ OPC_CheckInteger, 15, ++/*262876*/ OPC_CheckType, MVT::i32, ++/*262878*/ OPC_MoveParent, ++/*262879*/ OPC_MoveChild6, ++/*262880*/ OPC_CheckInteger, 15, ++/*262882*/ OPC_CheckType, MVT::i32, ++/*262884*/ OPC_MoveParent, ++/*262885*/ OPC_MoveChild7, ++/*262886*/ OPC_CheckInteger, 15, ++/*262888*/ OPC_CheckType, MVT::i32, ++/*262890*/ OPC_MoveParent, ++/*262891*/ OPC_MoveChild, 8, ++/*262893*/ OPC_CheckInteger, 15, ++/*262895*/ OPC_CheckType, MVT::i32, ++/*262897*/ OPC_MoveParent, ++/*262898*/ OPC_MoveChild, 9, ++/*262900*/ OPC_CheckInteger, 15, ++/*262902*/ OPC_CheckType, MVT::i32, ++/*262904*/ OPC_MoveParent, ++/*262905*/ OPC_MoveChild, 10, ++/*262907*/ OPC_CheckInteger, 15, ++/*262909*/ OPC_CheckType, MVT::i32, ++/*262911*/ OPC_MoveParent, ++/*262912*/ OPC_MoveChild, 11, ++/*262914*/ OPC_CheckInteger, 15, ++/*262916*/ OPC_CheckType, MVT::i32, ++/*262918*/ OPC_MoveParent, ++/*262919*/ OPC_MoveChild, 12, ++/*262921*/ OPC_CheckInteger, 15, ++/*262923*/ OPC_CheckType, MVT::i32, ++/*262925*/ OPC_MoveParent, ++/*262926*/ OPC_MoveChild, 13, ++/*262928*/ OPC_CheckInteger, 15, ++/*262930*/ OPC_CheckType, MVT::i32, ++/*262932*/ OPC_MoveParent, ++/*262933*/ OPC_MoveChild, 14, ++/*262935*/ OPC_CheckInteger, 15, ++/*262937*/ OPC_CheckType, MVT::i32, ++/*262939*/ OPC_MoveParent, ++/*262940*/ OPC_MoveChild, 15, ++/*262942*/ OPC_CheckInteger, 15, ++/*262944*/ OPC_CheckType, MVT::i32, ++/*262946*/ OPC_MoveParent, ++/*262947*/ OPC_CheckType, MVT::v16i16, ++/*262949*/ OPC_MoveParent, ++/*262950*/ OPC_MoveParent, ++/*262951*/ OPC_MoveParent, ++/*262952*/ OPC_MoveChild1, ++/*262953*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*262956*/ OPC_CheckChild0Integer, 1, ++/*262958*/ OPC_CheckChild0Type, MVT::i32, ++/*262960*/ OPC_CheckChild1Integer, 1, ++/*262962*/ OPC_CheckChild1Type, MVT::i32, ++/*262964*/ OPC_CheckChild2Integer, 1, ++/*262966*/ OPC_CheckChild2Type, MVT::i32, ++/*262968*/ OPC_CheckChild3Integer, 1, ++/*262970*/ OPC_CheckChild3Type, MVT::i32, ++/*262972*/ OPC_CheckChild4Integer, 1, ++/*262974*/ OPC_CheckChild4Type, MVT::i32, ++/*262976*/ OPC_MoveChild5, ++/*262977*/ OPC_CheckInteger, 1, ++/*262979*/ OPC_CheckType, MVT::i32, ++/*262981*/ OPC_MoveParent, ++/*262982*/ OPC_MoveChild6, ++/*262983*/ OPC_CheckInteger, 1, ++/*262985*/ OPC_CheckType, MVT::i32, ++/*262987*/ OPC_MoveParent, ++/*262988*/ OPC_MoveChild7, ++/*262989*/ OPC_CheckInteger, 1, ++/*262991*/ OPC_CheckType, MVT::i32, ++/*262993*/ OPC_MoveParent, ++/*262994*/ OPC_MoveChild, 8, ++/*262996*/ OPC_CheckInteger, 1, ++/*262998*/ OPC_CheckType, MVT::i32, ++/*263000*/ OPC_MoveParent, ++/*263001*/ OPC_MoveChild, 9, ++/*263003*/ OPC_CheckInteger, 1, ++/*263005*/ OPC_CheckType, MVT::i32, ++/*263007*/ OPC_MoveParent, ++/*263008*/ OPC_MoveChild, 10, ++/*263010*/ OPC_CheckInteger, 1, ++/*263012*/ OPC_CheckType, MVT::i32, ++/*263014*/ OPC_MoveParent, ++/*263015*/ OPC_MoveChild, 11, ++/*263017*/ OPC_CheckInteger, 1, ++/*263019*/ OPC_CheckType, MVT::i32, ++/*263021*/ OPC_MoveParent, ++/*263022*/ OPC_MoveChild, 12, ++/*263024*/ OPC_CheckInteger, 1, ++/*263026*/ OPC_CheckType, MVT::i32, ++/*263028*/ OPC_MoveParent, ++/*263029*/ OPC_MoveChild, 13, ++/*263031*/ OPC_CheckInteger, 1, ++/*263033*/ OPC_CheckType, MVT::i32, ++/*263035*/ OPC_MoveParent, ++/*263036*/ OPC_MoveChild, 14, ++/*263038*/ OPC_CheckInteger, 1, ++/*263040*/ OPC_CheckType, MVT::i32, ++/*263042*/ OPC_MoveParent, ++/*263043*/ OPC_MoveChild, 15, ++/*263045*/ OPC_CheckInteger, 1, ++/*263047*/ OPC_CheckType, MVT::i32, ++/*263049*/ OPC_MoveParent, ++/*263050*/ OPC_CheckType, MVT::v16i16, ++/*263052*/ OPC_MoveParent, ++/*263053*/ OPC_CheckType, MVT::v16i16, ++/*263055*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*263057*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b)), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*263065*/ /*Scope*/ 65|128,2/*321*/, /*->263388*/ ++/*263067*/ OPC_CheckChild0Same, 0, ++/*263069*/ OPC_CheckChild1Same, 1, ++/*263071*/ OPC_MoveParent, ++/*263072*/ OPC_MoveChild1, ++/*263073*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*263076*/ OPC_CheckChild0Integer, 1, ++/*263078*/ OPC_CheckChild0Type, MVT::i32, ++/*263080*/ OPC_CheckChild1Integer, 1, ++/*263082*/ OPC_CheckChild1Type, MVT::i32, ++/*263084*/ OPC_CheckChild2Integer, 1, ++/*263086*/ OPC_CheckChild2Type, MVT::i32, ++/*263088*/ OPC_CheckChild3Integer, 1, ++/*263090*/ OPC_CheckChild3Type, MVT::i32, ++/*263092*/ OPC_CheckChild4Integer, 1, ++/*263094*/ OPC_CheckChild4Type, MVT::i32, ++/*263096*/ OPC_MoveChild5, ++/*263097*/ OPC_CheckInteger, 1, ++/*263099*/ OPC_CheckType, MVT::i32, ++/*263101*/ OPC_MoveParent, ++/*263102*/ OPC_MoveChild6, ++/*263103*/ OPC_CheckInteger, 1, ++/*263105*/ OPC_CheckType, MVT::i32, ++/*263107*/ OPC_MoveParent, ++/*263108*/ OPC_MoveChild7, ++/*263109*/ OPC_CheckInteger, 1, ++/*263111*/ OPC_CheckType, MVT::i32, ++/*263113*/ OPC_MoveParent, ++/*263114*/ OPC_MoveChild, 8, ++/*263116*/ OPC_CheckInteger, 1, ++/*263118*/ OPC_CheckType, MVT::i32, ++/*263120*/ OPC_MoveParent, ++/*263121*/ OPC_MoveChild, 9, ++/*263123*/ OPC_CheckInteger, 1, ++/*263125*/ OPC_CheckType, MVT::i32, ++/*263127*/ OPC_MoveParent, ++/*263128*/ OPC_MoveChild, 10, ++/*263130*/ OPC_CheckInteger, 1, ++/*263132*/ OPC_CheckType, MVT::i32, ++/*263134*/ OPC_MoveParent, ++/*263135*/ OPC_MoveChild, 11, ++/*263137*/ OPC_CheckInteger, 1, ++/*263139*/ OPC_CheckType, MVT::i32, ++/*263141*/ OPC_MoveParent, ++/*263142*/ OPC_MoveChild, 12, ++/*263144*/ OPC_CheckInteger, 1, ++/*263146*/ OPC_CheckType, MVT::i32, ++/*263148*/ OPC_MoveParent, ++/*263149*/ OPC_MoveChild, 13, ++/*263151*/ OPC_CheckInteger, 1, ++/*263153*/ OPC_CheckType, MVT::i32, ++/*263155*/ OPC_MoveParent, ++/*263156*/ OPC_MoveChild, 14, ++/*263158*/ OPC_CheckInteger, 1, ++/*263160*/ OPC_CheckType, MVT::i32, ++/*263162*/ OPC_MoveParent, ++/*263163*/ OPC_MoveChild, 15, ++/*263165*/ OPC_CheckInteger, 1, ++/*263167*/ OPC_CheckType, MVT::i32, ++/*263169*/ OPC_MoveParent, ++/*263170*/ OPC_MoveParent, ++/*263171*/ OPC_MoveParent, ++/*263172*/ OPC_MoveChild1, ++/*263173*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*263176*/ OPC_CheckChild0Integer, 15, ++/*263178*/ OPC_CheckChild0Type, MVT::i32, ++/*263180*/ OPC_CheckChild1Integer, 15, ++/*263182*/ OPC_CheckChild1Type, MVT::i32, ++/*263184*/ OPC_CheckChild2Integer, 15, ++/*263186*/ OPC_CheckChild2Type, MVT::i32, ++/*263188*/ OPC_CheckChild3Integer, 15, ++/*263190*/ OPC_CheckChild3Type, MVT::i32, ++/*263192*/ OPC_CheckChild4Integer, 15, ++/*263194*/ OPC_CheckChild4Type, MVT::i32, ++/*263196*/ OPC_MoveChild5, ++/*263197*/ OPC_CheckInteger, 15, ++/*263199*/ OPC_CheckType, MVT::i32, ++/*263201*/ OPC_MoveParent, ++/*263202*/ OPC_MoveChild6, ++/*263203*/ OPC_CheckInteger, 15, ++/*263205*/ OPC_CheckType, MVT::i32, ++/*263207*/ OPC_MoveParent, ++/*263208*/ OPC_MoveChild7, ++/*263209*/ OPC_CheckInteger, 15, ++/*263211*/ OPC_CheckType, MVT::i32, ++/*263213*/ OPC_MoveParent, ++/*263214*/ OPC_MoveChild, 8, ++/*263216*/ OPC_CheckInteger, 15, ++/*263218*/ OPC_CheckType, MVT::i32, ++/*263220*/ OPC_MoveParent, ++/*263221*/ OPC_MoveChild, 9, ++/*263223*/ OPC_CheckInteger, 15, ++/*263225*/ OPC_CheckType, MVT::i32, ++/*263227*/ OPC_MoveParent, ++/*263228*/ OPC_MoveChild, 10, ++/*263230*/ OPC_CheckInteger, 15, ++/*263232*/ OPC_CheckType, MVT::i32, ++/*263234*/ OPC_MoveParent, ++/*263235*/ OPC_MoveChild, 11, ++/*263237*/ OPC_CheckInteger, 15, ++/*263239*/ OPC_CheckType, MVT::i32, ++/*263241*/ OPC_MoveParent, ++/*263242*/ OPC_MoveChild, 12, ++/*263244*/ OPC_CheckInteger, 15, ++/*263246*/ OPC_CheckType, MVT::i32, ++/*263248*/ OPC_MoveParent, ++/*263249*/ OPC_MoveChild, 13, ++/*263251*/ OPC_CheckInteger, 15, ++/*263253*/ OPC_CheckType, MVT::i32, ++/*263255*/ OPC_MoveParent, ++/*263256*/ OPC_MoveChild, 14, ++/*263258*/ OPC_CheckInteger, 15, ++/*263260*/ OPC_CheckType, MVT::i32, ++/*263262*/ OPC_MoveParent, ++/*263263*/ OPC_MoveChild, 15, ++/*263265*/ OPC_CheckInteger, 15, ++/*263267*/ OPC_CheckType, MVT::i32, ++/*263269*/ OPC_MoveParent, ++/*263270*/ OPC_CheckType, MVT::v16i16, ++/*263272*/ OPC_MoveParent, ++/*263273*/ OPC_MoveParent, ++/*263274*/ OPC_MoveParent, ++/*263275*/ OPC_MoveChild1, ++/*263276*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*263279*/ OPC_CheckChild0Integer, 1, ++/*263281*/ OPC_CheckChild0Type, MVT::i32, ++/*263283*/ OPC_CheckChild1Integer, 1, ++/*263285*/ OPC_CheckChild1Type, MVT::i32, ++/*263287*/ OPC_CheckChild2Integer, 1, ++/*263289*/ OPC_CheckChild2Type, MVT::i32, ++/*263291*/ OPC_CheckChild3Integer, 1, ++/*263293*/ OPC_CheckChild3Type, MVT::i32, ++/*263295*/ OPC_CheckChild4Integer, 1, ++/*263297*/ OPC_CheckChild4Type, MVT::i32, ++/*263299*/ OPC_MoveChild5, ++/*263300*/ OPC_CheckInteger, 1, ++/*263302*/ OPC_CheckType, MVT::i32, ++/*263304*/ OPC_MoveParent, ++/*263305*/ OPC_MoveChild6, ++/*263306*/ OPC_CheckInteger, 1, ++/*263308*/ OPC_CheckType, MVT::i32, ++/*263310*/ OPC_MoveParent, ++/*263311*/ OPC_MoveChild7, ++/*263312*/ OPC_CheckInteger, 1, ++/*263314*/ OPC_CheckType, MVT::i32, ++/*263316*/ OPC_MoveParent, ++/*263317*/ OPC_MoveChild, 8, ++/*263319*/ OPC_CheckInteger, 1, ++/*263321*/ OPC_CheckType, MVT::i32, ++/*263323*/ OPC_MoveParent, ++/*263324*/ OPC_MoveChild, 9, ++/*263326*/ OPC_CheckInteger, 1, ++/*263328*/ OPC_CheckType, MVT::i32, ++/*263330*/ OPC_MoveParent, ++/*263331*/ OPC_MoveChild, 10, ++/*263333*/ OPC_CheckInteger, 1, ++/*263335*/ OPC_CheckType, MVT::i32, ++/*263337*/ OPC_MoveParent, ++/*263338*/ OPC_MoveChild, 11, ++/*263340*/ OPC_CheckInteger, 1, ++/*263342*/ OPC_CheckType, MVT::i32, ++/*263344*/ OPC_MoveParent, ++/*263345*/ OPC_MoveChild, 12, ++/*263347*/ OPC_CheckInteger, 1, ++/*263349*/ OPC_CheckType, MVT::i32, ++/*263351*/ OPC_MoveParent, ++/*263352*/ OPC_MoveChild, 13, ++/*263354*/ OPC_CheckInteger, 1, ++/*263356*/ OPC_CheckType, MVT::i32, ++/*263358*/ OPC_MoveParent, ++/*263359*/ OPC_MoveChild, 14, ++/*263361*/ OPC_CheckInteger, 1, ++/*263363*/ OPC_CheckType, MVT::i32, ++/*263365*/ OPC_MoveParent, ++/*263366*/ OPC_MoveChild, 15, ++/*263368*/ OPC_CheckInteger, 1, ++/*263370*/ OPC_CheckType, MVT::i32, ++/*263372*/ OPC_MoveParent, ++/*263373*/ OPC_CheckType, MVT::v16i16, ++/*263375*/ OPC_MoveParent, ++/*263376*/ OPC_CheckType, MVT::v16i16, ++/*263378*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*263380*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b)), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*263388*/ /*Scope*/ 65|128,2/*321*/, /*->263711*/ ++/*263390*/ OPC_CheckChild0Same, 1, ++/*263392*/ OPC_CheckChild1Same, 0, ++/*263394*/ OPC_MoveParent, ++/*263395*/ OPC_MoveChild1, ++/*263396*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*263399*/ OPC_CheckChild0Integer, 1, ++/*263401*/ OPC_CheckChild0Type, MVT::i32, ++/*263403*/ OPC_CheckChild1Integer, 1, ++/*263405*/ OPC_CheckChild1Type, MVT::i32, ++/*263407*/ OPC_CheckChild2Integer, 1, ++/*263409*/ OPC_CheckChild2Type, MVT::i32, ++/*263411*/ OPC_CheckChild3Integer, 1, ++/*263413*/ OPC_CheckChild3Type, MVT::i32, ++/*263415*/ OPC_CheckChild4Integer, 1, ++/*263417*/ OPC_CheckChild4Type, MVT::i32, ++/*263419*/ OPC_MoveChild5, ++/*263420*/ OPC_CheckInteger, 1, ++/*263422*/ OPC_CheckType, MVT::i32, ++/*263424*/ OPC_MoveParent, ++/*263425*/ OPC_MoveChild6, ++/*263426*/ OPC_CheckInteger, 1, ++/*263428*/ OPC_CheckType, MVT::i32, ++/*263430*/ OPC_MoveParent, ++/*263431*/ OPC_MoveChild7, ++/*263432*/ OPC_CheckInteger, 1, ++/*263434*/ OPC_CheckType, MVT::i32, ++/*263436*/ OPC_MoveParent, ++/*263437*/ OPC_MoveChild, 8, ++/*263439*/ OPC_CheckInteger, 1, ++/*263441*/ OPC_CheckType, MVT::i32, ++/*263443*/ OPC_MoveParent, ++/*263444*/ OPC_MoveChild, 9, ++/*263446*/ OPC_CheckInteger, 1, ++/*263448*/ OPC_CheckType, MVT::i32, ++/*263450*/ OPC_MoveParent, ++/*263451*/ OPC_MoveChild, 10, ++/*263453*/ OPC_CheckInteger, 1, ++/*263455*/ OPC_CheckType, MVT::i32, ++/*263457*/ OPC_MoveParent, ++/*263458*/ OPC_MoveChild, 11, ++/*263460*/ OPC_CheckInteger, 1, ++/*263462*/ OPC_CheckType, MVT::i32, ++/*263464*/ OPC_MoveParent, ++/*263465*/ OPC_MoveChild, 12, ++/*263467*/ OPC_CheckInteger, 1, ++/*263469*/ OPC_CheckType, MVT::i32, ++/*263471*/ OPC_MoveParent, ++/*263472*/ OPC_MoveChild, 13, ++/*263474*/ OPC_CheckInteger, 1, ++/*263476*/ OPC_CheckType, MVT::i32, ++/*263478*/ OPC_MoveParent, ++/*263479*/ OPC_MoveChild, 14, ++/*263481*/ OPC_CheckInteger, 1, ++/*263483*/ OPC_CheckType, MVT::i32, ++/*263485*/ OPC_MoveParent, ++/*263486*/ OPC_MoveChild, 15, ++/*263488*/ OPC_CheckInteger, 1, ++/*263490*/ OPC_CheckType, MVT::i32, ++/*263492*/ OPC_MoveParent, ++/*263493*/ OPC_MoveParent, ++/*263494*/ OPC_MoveParent, ++/*263495*/ OPC_MoveChild1, ++/*263496*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*263499*/ OPC_CheckChild0Integer, 15, ++/*263501*/ OPC_CheckChild0Type, MVT::i32, ++/*263503*/ OPC_CheckChild1Integer, 15, ++/*263505*/ OPC_CheckChild1Type, MVT::i32, ++/*263507*/ OPC_CheckChild2Integer, 15, ++/*263509*/ OPC_CheckChild2Type, MVT::i32, ++/*263511*/ OPC_CheckChild3Integer, 15, ++/*263513*/ OPC_CheckChild3Type, MVT::i32, ++/*263515*/ OPC_CheckChild4Integer, 15, ++/*263517*/ OPC_CheckChild4Type, MVT::i32, ++/*263519*/ OPC_MoveChild5, ++/*263520*/ OPC_CheckInteger, 15, ++/*263522*/ OPC_CheckType, MVT::i32, ++/*263524*/ OPC_MoveParent, ++/*263525*/ OPC_MoveChild6, ++/*263526*/ OPC_CheckInteger, 15, ++/*263528*/ OPC_CheckType, MVT::i32, ++/*263530*/ OPC_MoveParent, ++/*263531*/ OPC_MoveChild7, ++/*263532*/ OPC_CheckInteger, 15, ++/*263534*/ OPC_CheckType, MVT::i32, ++/*263536*/ OPC_MoveParent, ++/*263537*/ OPC_MoveChild, 8, ++/*263539*/ OPC_CheckInteger, 15, ++/*263541*/ OPC_CheckType, MVT::i32, ++/*263543*/ OPC_MoveParent, ++/*263544*/ OPC_MoveChild, 9, ++/*263546*/ OPC_CheckInteger, 15, ++/*263548*/ OPC_CheckType, MVT::i32, ++/*263550*/ OPC_MoveParent, ++/*263551*/ OPC_MoveChild, 10, ++/*263553*/ OPC_CheckInteger, 15, ++/*263555*/ OPC_CheckType, MVT::i32, ++/*263557*/ OPC_MoveParent, ++/*263558*/ OPC_MoveChild, 11, ++/*263560*/ OPC_CheckInteger, 15, ++/*263562*/ OPC_CheckType, MVT::i32, ++/*263564*/ OPC_MoveParent, ++/*263565*/ OPC_MoveChild, 12, ++/*263567*/ OPC_CheckInteger, 15, ++/*263569*/ OPC_CheckType, MVT::i32, ++/*263571*/ OPC_MoveParent, ++/*263572*/ OPC_MoveChild, 13, ++/*263574*/ OPC_CheckInteger, 15, ++/*263576*/ OPC_CheckType, MVT::i32, ++/*263578*/ OPC_MoveParent, ++/*263579*/ OPC_MoveChild, 14, ++/*263581*/ OPC_CheckInteger, 15, ++/*263583*/ OPC_CheckType, MVT::i32, ++/*263585*/ OPC_MoveParent, ++/*263586*/ OPC_MoveChild, 15, ++/*263588*/ OPC_CheckInteger, 15, ++/*263590*/ OPC_CheckType, MVT::i32, ++/*263592*/ OPC_MoveParent, ++/*263593*/ OPC_CheckType, MVT::v16i16, ++/*263595*/ OPC_MoveParent, ++/*263596*/ OPC_MoveParent, ++/*263597*/ OPC_MoveParent, ++/*263598*/ OPC_MoveChild1, ++/*263599*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*263602*/ OPC_CheckChild0Integer, 1, ++/*263604*/ OPC_CheckChild0Type, MVT::i32, ++/*263606*/ OPC_CheckChild1Integer, 1, ++/*263608*/ OPC_CheckChild1Type, MVT::i32, ++/*263610*/ OPC_CheckChild2Integer, 1, ++/*263612*/ OPC_CheckChild2Type, MVT::i32, ++/*263614*/ OPC_CheckChild3Integer, 1, ++/*263616*/ OPC_CheckChild3Type, MVT::i32, ++/*263618*/ OPC_CheckChild4Integer, 1, ++/*263620*/ OPC_CheckChild4Type, MVT::i32, ++/*263622*/ OPC_MoveChild5, ++/*263623*/ OPC_CheckInteger, 1, ++/*263625*/ OPC_CheckType, MVT::i32, ++/*263627*/ OPC_MoveParent, ++/*263628*/ OPC_MoveChild6, ++/*263629*/ OPC_CheckInteger, 1, ++/*263631*/ OPC_CheckType, MVT::i32, ++/*263633*/ OPC_MoveParent, ++/*263634*/ OPC_MoveChild7, ++/*263635*/ OPC_CheckInteger, 1, ++/*263637*/ OPC_CheckType, MVT::i32, ++/*263639*/ OPC_MoveParent, ++/*263640*/ OPC_MoveChild, 8, ++/*263642*/ OPC_CheckInteger, 1, ++/*263644*/ OPC_CheckType, MVT::i32, ++/*263646*/ OPC_MoveParent, ++/*263647*/ OPC_MoveChild, 9, ++/*263649*/ OPC_CheckInteger, 1, ++/*263651*/ OPC_CheckType, MVT::i32, ++/*263653*/ OPC_MoveParent, ++/*263654*/ OPC_MoveChild, 10, ++/*263656*/ OPC_CheckInteger, 1, ++/*263658*/ OPC_CheckType, MVT::i32, ++/*263660*/ OPC_MoveParent, ++/*263661*/ OPC_MoveChild, 11, ++/*263663*/ OPC_CheckInteger, 1, ++/*263665*/ OPC_CheckType, MVT::i32, ++/*263667*/ OPC_MoveParent, ++/*263668*/ OPC_MoveChild, 12, ++/*263670*/ OPC_CheckInteger, 1, ++/*263672*/ OPC_CheckType, MVT::i32, ++/*263674*/ OPC_MoveParent, ++/*263675*/ OPC_MoveChild, 13, ++/*263677*/ OPC_CheckInteger, 1, ++/*263679*/ OPC_CheckType, MVT::i32, ++/*263681*/ OPC_MoveParent, ++/*263682*/ OPC_MoveChild, 14, ++/*263684*/ OPC_CheckInteger, 1, ++/*263686*/ OPC_CheckType, MVT::i32, ++/*263688*/ OPC_MoveParent, ++/*263689*/ OPC_MoveChild, 15, ++/*263691*/ OPC_CheckInteger, 1, ++/*263693*/ OPC_CheckType, MVT::i32, ++/*263695*/ OPC_MoveParent, ++/*263696*/ OPC_CheckType, MVT::v16i16, ++/*263698*/ OPC_MoveParent, ++/*263699*/ OPC_CheckType, MVT::v16i16, ++/*263701*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*263703*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b)), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*263711*/ 0, /*End of Scope*/ ++/*263712*/ /*Scope*/ 10|128,5/*650*/, /*->264364*/ ++/*263714*/ OPC_CheckChild0Same, 1, ++/*263716*/ OPC_MoveChild1, ++/*263717*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*263720*/ OPC_Scope, 63|128,2/*319*/, /*->264042*/ // 2 children in Scope ++/*263723*/ OPC_MoveChild0, ++/*263724*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*263727*/ OPC_CheckChild0Integer, 1, ++/*263729*/ OPC_CheckChild0Type, MVT::i32, ++/*263731*/ OPC_CheckChild1Integer, 1, ++/*263733*/ OPC_CheckChild1Type, MVT::i32, ++/*263735*/ OPC_CheckChild2Integer, 1, ++/*263737*/ OPC_CheckChild2Type, MVT::i32, ++/*263739*/ OPC_CheckChild3Integer, 1, ++/*263741*/ OPC_CheckChild3Type, MVT::i32, ++/*263743*/ OPC_CheckChild4Integer, 1, ++/*263745*/ OPC_CheckChild4Type, MVT::i32, ++/*263747*/ OPC_MoveChild5, ++/*263748*/ OPC_CheckInteger, 1, ++/*263750*/ OPC_CheckType, MVT::i32, ++/*263752*/ OPC_MoveParent, ++/*263753*/ OPC_MoveChild6, ++/*263754*/ OPC_CheckInteger, 1, ++/*263756*/ OPC_CheckType, MVT::i32, ++/*263758*/ OPC_MoveParent, ++/*263759*/ OPC_MoveChild7, ++/*263760*/ OPC_CheckInteger, 1, ++/*263762*/ OPC_CheckType, MVT::i32, ++/*263764*/ OPC_MoveParent, ++/*263765*/ OPC_MoveChild, 8, ++/*263767*/ OPC_CheckInteger, 1, ++/*263769*/ OPC_CheckType, MVT::i32, ++/*263771*/ OPC_MoveParent, ++/*263772*/ OPC_MoveChild, 9, ++/*263774*/ OPC_CheckInteger, 1, ++/*263776*/ OPC_CheckType, MVT::i32, ++/*263778*/ OPC_MoveParent, ++/*263779*/ OPC_MoveChild, 10, ++/*263781*/ OPC_CheckInteger, 1, ++/*263783*/ OPC_CheckType, MVT::i32, ++/*263785*/ OPC_MoveParent, ++/*263786*/ OPC_MoveChild, 11, ++/*263788*/ OPC_CheckInteger, 1, ++/*263790*/ OPC_CheckType, MVT::i32, ++/*263792*/ OPC_MoveParent, ++/*263793*/ OPC_MoveChild, 12, ++/*263795*/ OPC_CheckInteger, 1, ++/*263797*/ OPC_CheckType, MVT::i32, ++/*263799*/ OPC_MoveParent, ++/*263800*/ OPC_MoveChild, 13, ++/*263802*/ OPC_CheckInteger, 1, ++/*263804*/ OPC_CheckType, MVT::i32, ++/*263806*/ OPC_MoveParent, ++/*263807*/ OPC_MoveChild, 14, ++/*263809*/ OPC_CheckInteger, 1, ++/*263811*/ OPC_CheckType, MVT::i32, ++/*263813*/ OPC_MoveParent, ++/*263814*/ OPC_MoveChild, 15, ++/*263816*/ OPC_CheckInteger, 1, ++/*263818*/ OPC_CheckType, MVT::i32, ++/*263820*/ OPC_MoveParent, ++/*263821*/ OPC_MoveParent, ++/*263822*/ OPC_CheckChild1Same, 0, ++/*263824*/ OPC_MoveParent, ++/*263825*/ OPC_MoveParent, ++/*263826*/ OPC_MoveChild1, ++/*263827*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*263830*/ OPC_CheckChild0Integer, 15, ++/*263832*/ OPC_CheckChild0Type, MVT::i32, ++/*263834*/ OPC_CheckChild1Integer, 15, ++/*263836*/ OPC_CheckChild1Type, MVT::i32, ++/*263838*/ OPC_CheckChild2Integer, 15, ++/*263840*/ OPC_CheckChild2Type, MVT::i32, ++/*263842*/ OPC_CheckChild3Integer, 15, ++/*263844*/ OPC_CheckChild3Type, MVT::i32, ++/*263846*/ OPC_CheckChild4Integer, 15, ++/*263848*/ OPC_CheckChild4Type, MVT::i32, ++/*263850*/ OPC_MoveChild5, ++/*263851*/ OPC_CheckInteger, 15, ++/*263853*/ OPC_CheckType, MVT::i32, ++/*263855*/ OPC_MoveParent, ++/*263856*/ OPC_MoveChild6, ++/*263857*/ OPC_CheckInteger, 15, ++/*263859*/ OPC_CheckType, MVT::i32, ++/*263861*/ OPC_MoveParent, ++/*263862*/ OPC_MoveChild7, ++/*263863*/ OPC_CheckInteger, 15, ++/*263865*/ OPC_CheckType, MVT::i32, ++/*263867*/ OPC_MoveParent, ++/*263868*/ OPC_MoveChild, 8, ++/*263870*/ OPC_CheckInteger, 15, ++/*263872*/ OPC_CheckType, MVT::i32, ++/*263874*/ OPC_MoveParent, ++/*263875*/ OPC_MoveChild, 9, ++/*263877*/ OPC_CheckInteger, 15, ++/*263879*/ OPC_CheckType, MVT::i32, ++/*263881*/ OPC_MoveParent, ++/*263882*/ OPC_MoveChild, 10, ++/*263884*/ OPC_CheckInteger, 15, ++/*263886*/ OPC_CheckType, MVT::i32, ++/*263888*/ OPC_MoveParent, ++/*263889*/ OPC_MoveChild, 11, ++/*263891*/ OPC_CheckInteger, 15, ++/*263893*/ OPC_CheckType, MVT::i32, ++/*263895*/ OPC_MoveParent, ++/*263896*/ OPC_MoveChild, 12, ++/*263898*/ OPC_CheckInteger, 15, ++/*263900*/ OPC_CheckType, MVT::i32, ++/*263902*/ OPC_MoveParent, ++/*263903*/ OPC_MoveChild, 13, ++/*263905*/ OPC_CheckInteger, 15, ++/*263907*/ OPC_CheckType, MVT::i32, ++/*263909*/ OPC_MoveParent, ++/*263910*/ OPC_MoveChild, 14, ++/*263912*/ OPC_CheckInteger, 15, ++/*263914*/ OPC_CheckType, MVT::i32, ++/*263916*/ OPC_MoveParent, ++/*263917*/ OPC_MoveChild, 15, ++/*263919*/ OPC_CheckInteger, 15, ++/*263921*/ OPC_CheckType, MVT::i32, ++/*263923*/ OPC_MoveParent, ++/*263924*/ OPC_CheckType, MVT::v16i16, ++/*263926*/ OPC_MoveParent, ++/*263927*/ OPC_MoveParent, ++/*263928*/ OPC_MoveParent, ++/*263929*/ OPC_MoveChild1, ++/*263930*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*263933*/ OPC_CheckChild0Integer, 1, ++/*263935*/ OPC_CheckChild0Type, MVT::i32, ++/*263937*/ OPC_CheckChild1Integer, 1, ++/*263939*/ OPC_CheckChild1Type, MVT::i32, ++/*263941*/ OPC_CheckChild2Integer, 1, ++/*263943*/ OPC_CheckChild2Type, MVT::i32, ++/*263945*/ OPC_CheckChild3Integer, 1, ++/*263947*/ OPC_CheckChild3Type, MVT::i32, ++/*263949*/ OPC_CheckChild4Integer, 1, ++/*263951*/ OPC_CheckChild4Type, MVT::i32, ++/*263953*/ OPC_MoveChild5, ++/*263954*/ OPC_CheckInteger, 1, ++/*263956*/ OPC_CheckType, MVT::i32, ++/*263958*/ OPC_MoveParent, ++/*263959*/ OPC_MoveChild6, ++/*263960*/ OPC_CheckInteger, 1, ++/*263962*/ OPC_CheckType, MVT::i32, ++/*263964*/ OPC_MoveParent, ++/*263965*/ OPC_MoveChild7, ++/*263966*/ OPC_CheckInteger, 1, ++/*263968*/ OPC_CheckType, MVT::i32, ++/*263970*/ OPC_MoveParent, ++/*263971*/ OPC_MoveChild, 8, ++/*263973*/ OPC_CheckInteger, 1, ++/*263975*/ OPC_CheckType, MVT::i32, ++/*263977*/ OPC_MoveParent, ++/*263978*/ OPC_MoveChild, 9, ++/*263980*/ OPC_CheckInteger, 1, ++/*263982*/ OPC_CheckType, MVT::i32, ++/*263984*/ OPC_MoveParent, ++/*263985*/ OPC_MoveChild, 10, ++/*263987*/ OPC_CheckInteger, 1, ++/*263989*/ OPC_CheckType, MVT::i32, ++/*263991*/ OPC_MoveParent, ++/*263992*/ OPC_MoveChild, 11, ++/*263994*/ OPC_CheckInteger, 1, ++/*263996*/ OPC_CheckType, MVT::i32, ++/*263998*/ OPC_MoveParent, ++/*263999*/ OPC_MoveChild, 12, ++/*264001*/ OPC_CheckInteger, 1, ++/*264003*/ OPC_CheckType, MVT::i32, ++/*264005*/ OPC_MoveParent, ++/*264006*/ OPC_MoveChild, 13, ++/*264008*/ OPC_CheckInteger, 1, ++/*264010*/ OPC_CheckType, MVT::i32, ++/*264012*/ OPC_MoveParent, ++/*264013*/ OPC_MoveChild, 14, ++/*264015*/ OPC_CheckInteger, 1, ++/*264017*/ OPC_CheckType, MVT::i32, ++/*264019*/ OPC_MoveParent, ++/*264020*/ OPC_MoveChild, 15, ++/*264022*/ OPC_CheckInteger, 1, ++/*264024*/ OPC_CheckType, MVT::i32, ++/*264026*/ OPC_MoveParent, ++/*264027*/ OPC_CheckType, MVT::v16i16, ++/*264029*/ OPC_MoveParent, ++/*264030*/ OPC_CheckType, MVT::v16i16, ++/*264032*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*264034*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b)), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*264042*/ /*Scope*/ 63|128,2/*319*/, /*->264363*/ ++/*264044*/ OPC_CheckChild0Same, 0, ++/*264046*/ OPC_MoveChild1, ++/*264047*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*264050*/ OPC_CheckChild0Integer, 1, ++/*264052*/ OPC_CheckChild0Type, MVT::i32, ++/*264054*/ OPC_CheckChild1Integer, 1, ++/*264056*/ OPC_CheckChild1Type, MVT::i32, ++/*264058*/ OPC_CheckChild2Integer, 1, ++/*264060*/ OPC_CheckChild2Type, MVT::i32, ++/*264062*/ OPC_CheckChild3Integer, 1, ++/*264064*/ OPC_CheckChild3Type, MVT::i32, ++/*264066*/ OPC_CheckChild4Integer, 1, ++/*264068*/ OPC_CheckChild4Type, MVT::i32, ++/*264070*/ OPC_MoveChild5, ++/*264071*/ OPC_CheckInteger, 1, ++/*264073*/ OPC_CheckType, MVT::i32, ++/*264075*/ OPC_MoveParent, ++/*264076*/ OPC_MoveChild6, ++/*264077*/ OPC_CheckInteger, 1, ++/*264079*/ OPC_CheckType, MVT::i32, ++/*264081*/ OPC_MoveParent, ++/*264082*/ OPC_MoveChild7, ++/*264083*/ OPC_CheckInteger, 1, ++/*264085*/ OPC_CheckType, MVT::i32, ++/*264087*/ OPC_MoveParent, ++/*264088*/ OPC_MoveChild, 8, ++/*264090*/ OPC_CheckInteger, 1, ++/*264092*/ OPC_CheckType, MVT::i32, ++/*264094*/ OPC_MoveParent, ++/*264095*/ OPC_MoveChild, 9, ++/*264097*/ OPC_CheckInteger, 1, ++/*264099*/ OPC_CheckType, MVT::i32, ++/*264101*/ OPC_MoveParent, ++/*264102*/ OPC_MoveChild, 10, ++/*264104*/ OPC_CheckInteger, 1, ++/*264106*/ OPC_CheckType, MVT::i32, ++/*264108*/ OPC_MoveParent, ++/*264109*/ OPC_MoveChild, 11, ++/*264111*/ OPC_CheckInteger, 1, ++/*264113*/ OPC_CheckType, MVT::i32, ++/*264115*/ OPC_MoveParent, ++/*264116*/ OPC_MoveChild, 12, ++/*264118*/ OPC_CheckInteger, 1, ++/*264120*/ OPC_CheckType, MVT::i32, ++/*264122*/ OPC_MoveParent, ++/*264123*/ OPC_MoveChild, 13, ++/*264125*/ OPC_CheckInteger, 1, ++/*264127*/ OPC_CheckType, MVT::i32, ++/*264129*/ OPC_MoveParent, ++/*264130*/ OPC_MoveChild, 14, ++/*264132*/ OPC_CheckInteger, 1, ++/*264134*/ OPC_CheckType, MVT::i32, ++/*264136*/ OPC_MoveParent, ++/*264137*/ OPC_MoveChild, 15, ++/*264139*/ OPC_CheckInteger, 1, ++/*264141*/ OPC_CheckType, MVT::i32, ++/*264143*/ OPC_MoveParent, ++/*264144*/ OPC_MoveParent, ++/*264145*/ OPC_MoveParent, ++/*264146*/ OPC_MoveParent, ++/*264147*/ OPC_MoveChild1, ++/*264148*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*264151*/ OPC_CheckChild0Integer, 15, ++/*264153*/ OPC_CheckChild0Type, MVT::i32, ++/*264155*/ OPC_CheckChild1Integer, 15, ++/*264157*/ OPC_CheckChild1Type, MVT::i32, ++/*264159*/ OPC_CheckChild2Integer, 15, ++/*264161*/ OPC_CheckChild2Type, MVT::i32, ++/*264163*/ OPC_CheckChild3Integer, 15, ++/*264165*/ OPC_CheckChild3Type, MVT::i32, ++/*264167*/ OPC_CheckChild4Integer, 15, ++/*264169*/ OPC_CheckChild4Type, MVT::i32, ++/*264171*/ OPC_MoveChild5, ++/*264172*/ OPC_CheckInteger, 15, ++/*264174*/ OPC_CheckType, MVT::i32, ++/*264176*/ OPC_MoveParent, ++/*264177*/ OPC_MoveChild6, ++/*264178*/ OPC_CheckInteger, 15, ++/*264180*/ OPC_CheckType, MVT::i32, ++/*264182*/ OPC_MoveParent, ++/*264183*/ OPC_MoveChild7, ++/*264184*/ OPC_CheckInteger, 15, ++/*264186*/ OPC_CheckType, MVT::i32, ++/*264188*/ OPC_MoveParent, ++/*264189*/ OPC_MoveChild, 8, ++/*264191*/ OPC_CheckInteger, 15, ++/*264193*/ OPC_CheckType, MVT::i32, ++/*264195*/ OPC_MoveParent, ++/*264196*/ OPC_MoveChild, 9, ++/*264198*/ OPC_CheckInteger, 15, ++/*264200*/ OPC_CheckType, MVT::i32, ++/*264202*/ OPC_MoveParent, ++/*264203*/ OPC_MoveChild, 10, ++/*264205*/ OPC_CheckInteger, 15, ++/*264207*/ OPC_CheckType, MVT::i32, ++/*264209*/ OPC_MoveParent, ++/*264210*/ OPC_MoveChild, 11, ++/*264212*/ OPC_CheckInteger, 15, ++/*264214*/ OPC_CheckType, MVT::i32, ++/*264216*/ OPC_MoveParent, ++/*264217*/ OPC_MoveChild, 12, ++/*264219*/ OPC_CheckInteger, 15, ++/*264221*/ OPC_CheckType, MVT::i32, ++/*264223*/ OPC_MoveParent, ++/*264224*/ OPC_MoveChild, 13, ++/*264226*/ OPC_CheckInteger, 15, ++/*264228*/ OPC_CheckType, MVT::i32, ++/*264230*/ OPC_MoveParent, ++/*264231*/ OPC_MoveChild, 14, ++/*264233*/ OPC_CheckInteger, 15, ++/*264235*/ OPC_CheckType, MVT::i32, ++/*264237*/ OPC_MoveParent, ++/*264238*/ OPC_MoveChild, 15, ++/*264240*/ OPC_CheckInteger, 15, ++/*264242*/ OPC_CheckType, MVT::i32, ++/*264244*/ OPC_MoveParent, ++/*264245*/ OPC_CheckType, MVT::v16i16, ++/*264247*/ OPC_MoveParent, ++/*264248*/ OPC_MoveParent, ++/*264249*/ OPC_MoveParent, ++/*264250*/ OPC_MoveChild1, ++/*264251*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*264254*/ OPC_CheckChild0Integer, 1, ++/*264256*/ OPC_CheckChild0Type, MVT::i32, ++/*264258*/ OPC_CheckChild1Integer, 1, ++/*264260*/ OPC_CheckChild1Type, MVT::i32, ++/*264262*/ OPC_CheckChild2Integer, 1, ++/*264264*/ OPC_CheckChild2Type, MVT::i32, ++/*264266*/ OPC_CheckChild3Integer, 1, ++/*264268*/ OPC_CheckChild3Type, MVT::i32, ++/*264270*/ OPC_CheckChild4Integer, 1, ++/*264272*/ OPC_CheckChild4Type, MVT::i32, ++/*264274*/ OPC_MoveChild5, ++/*264275*/ OPC_CheckInteger, 1, ++/*264277*/ OPC_CheckType, MVT::i32, ++/*264279*/ OPC_MoveParent, ++/*264280*/ OPC_MoveChild6, ++/*264281*/ OPC_CheckInteger, 1, ++/*264283*/ OPC_CheckType, MVT::i32, ++/*264285*/ OPC_MoveParent, ++/*264286*/ OPC_MoveChild7, ++/*264287*/ OPC_CheckInteger, 1, ++/*264289*/ OPC_CheckType, MVT::i32, ++/*264291*/ OPC_MoveParent, ++/*264292*/ OPC_MoveChild, 8, ++/*264294*/ OPC_CheckInteger, 1, ++/*264296*/ OPC_CheckType, MVT::i32, ++/*264298*/ OPC_MoveParent, ++/*264299*/ OPC_MoveChild, 9, ++/*264301*/ OPC_CheckInteger, 1, ++/*264303*/ OPC_CheckType, MVT::i32, ++/*264305*/ OPC_MoveParent, ++/*264306*/ OPC_MoveChild, 10, ++/*264308*/ OPC_CheckInteger, 1, ++/*264310*/ OPC_CheckType, MVT::i32, ++/*264312*/ OPC_MoveParent, ++/*264313*/ OPC_MoveChild, 11, ++/*264315*/ OPC_CheckInteger, 1, ++/*264317*/ OPC_CheckType, MVT::i32, ++/*264319*/ OPC_MoveParent, ++/*264320*/ OPC_MoveChild, 12, ++/*264322*/ OPC_CheckInteger, 1, ++/*264324*/ OPC_CheckType, MVT::i32, ++/*264326*/ OPC_MoveParent, ++/*264327*/ OPC_MoveChild, 13, ++/*264329*/ OPC_CheckInteger, 1, ++/*264331*/ OPC_CheckType, MVT::i32, ++/*264333*/ OPC_MoveParent, ++/*264334*/ OPC_MoveChild, 14, ++/*264336*/ OPC_CheckInteger, 1, ++/*264338*/ OPC_CheckType, MVT::i32, ++/*264340*/ OPC_MoveParent, ++/*264341*/ OPC_MoveChild, 15, ++/*264343*/ OPC_CheckInteger, 1, ++/*264345*/ OPC_CheckType, MVT::i32, ++/*264347*/ OPC_MoveParent, ++/*264348*/ OPC_CheckType, MVT::v16i16, ++/*264350*/ OPC_MoveParent, ++/*264351*/ OPC_CheckType, MVT::v16i16, ++/*264353*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*264355*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b)), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*264363*/ 0, /*End of Scope*/ ++/*264364*/ /*Scope*/ 10|128,5/*650*/, /*->265016*/ ++/*264366*/ OPC_CheckChild0Same, 0, ++/*264368*/ OPC_MoveChild1, ++/*264369*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*264372*/ OPC_Scope, 63|128,2/*319*/, /*->264694*/ // 2 children in Scope ++/*264375*/ OPC_MoveChild0, ++/*264376*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*264379*/ OPC_CheckChild0Integer, 1, ++/*264381*/ OPC_CheckChild0Type, MVT::i32, ++/*264383*/ OPC_CheckChild1Integer, 1, ++/*264385*/ OPC_CheckChild1Type, MVT::i32, ++/*264387*/ OPC_CheckChild2Integer, 1, ++/*264389*/ OPC_CheckChild2Type, MVT::i32, ++/*264391*/ OPC_CheckChild3Integer, 1, ++/*264393*/ OPC_CheckChild3Type, MVT::i32, ++/*264395*/ OPC_CheckChild4Integer, 1, ++/*264397*/ OPC_CheckChild4Type, MVT::i32, ++/*264399*/ OPC_MoveChild5, ++/*264400*/ OPC_CheckInteger, 1, ++/*264402*/ OPC_CheckType, MVT::i32, ++/*264404*/ OPC_MoveParent, ++/*264405*/ OPC_MoveChild6, ++/*264406*/ OPC_CheckInteger, 1, ++/*264408*/ OPC_CheckType, MVT::i32, ++/*264410*/ OPC_MoveParent, ++/*264411*/ OPC_MoveChild7, ++/*264412*/ OPC_CheckInteger, 1, ++/*264414*/ OPC_CheckType, MVT::i32, ++/*264416*/ OPC_MoveParent, ++/*264417*/ OPC_MoveChild, 8, ++/*264419*/ OPC_CheckInteger, 1, ++/*264421*/ OPC_CheckType, MVT::i32, ++/*264423*/ OPC_MoveParent, ++/*264424*/ OPC_MoveChild, 9, ++/*264426*/ OPC_CheckInteger, 1, ++/*264428*/ OPC_CheckType, MVT::i32, ++/*264430*/ OPC_MoveParent, ++/*264431*/ OPC_MoveChild, 10, ++/*264433*/ OPC_CheckInteger, 1, ++/*264435*/ OPC_CheckType, MVT::i32, ++/*264437*/ OPC_MoveParent, ++/*264438*/ OPC_MoveChild, 11, ++/*264440*/ OPC_CheckInteger, 1, ++/*264442*/ OPC_CheckType, MVT::i32, ++/*264444*/ OPC_MoveParent, ++/*264445*/ OPC_MoveChild, 12, ++/*264447*/ OPC_CheckInteger, 1, ++/*264449*/ OPC_CheckType, MVT::i32, ++/*264451*/ OPC_MoveParent, ++/*264452*/ OPC_MoveChild, 13, ++/*264454*/ OPC_CheckInteger, 1, ++/*264456*/ OPC_CheckType, MVT::i32, ++/*264458*/ OPC_MoveParent, ++/*264459*/ OPC_MoveChild, 14, ++/*264461*/ OPC_CheckInteger, 1, ++/*264463*/ OPC_CheckType, MVT::i32, ++/*264465*/ OPC_MoveParent, ++/*264466*/ OPC_MoveChild, 15, ++/*264468*/ OPC_CheckInteger, 1, ++/*264470*/ OPC_CheckType, MVT::i32, ++/*264472*/ OPC_MoveParent, ++/*264473*/ OPC_MoveParent, ++/*264474*/ OPC_CheckChild1Same, 1, ++/*264476*/ OPC_MoveParent, ++/*264477*/ OPC_MoveParent, ++/*264478*/ OPC_MoveChild1, ++/*264479*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*264482*/ OPC_CheckChild0Integer, 15, ++/*264484*/ OPC_CheckChild0Type, MVT::i32, ++/*264486*/ OPC_CheckChild1Integer, 15, ++/*264488*/ OPC_CheckChild1Type, MVT::i32, ++/*264490*/ OPC_CheckChild2Integer, 15, ++/*264492*/ OPC_CheckChild2Type, MVT::i32, ++/*264494*/ OPC_CheckChild3Integer, 15, ++/*264496*/ OPC_CheckChild3Type, MVT::i32, ++/*264498*/ OPC_CheckChild4Integer, 15, ++/*264500*/ OPC_CheckChild4Type, MVT::i32, ++/*264502*/ OPC_MoveChild5, ++/*264503*/ OPC_CheckInteger, 15, ++/*264505*/ OPC_CheckType, MVT::i32, ++/*264507*/ OPC_MoveParent, ++/*264508*/ OPC_MoveChild6, ++/*264509*/ OPC_CheckInteger, 15, ++/*264511*/ OPC_CheckType, MVT::i32, ++/*264513*/ OPC_MoveParent, ++/*264514*/ OPC_MoveChild7, ++/*264515*/ OPC_CheckInteger, 15, ++/*264517*/ OPC_CheckType, MVT::i32, ++/*264519*/ OPC_MoveParent, ++/*264520*/ OPC_MoveChild, 8, ++/*264522*/ OPC_CheckInteger, 15, ++/*264524*/ OPC_CheckType, MVT::i32, ++/*264526*/ OPC_MoveParent, ++/*264527*/ OPC_MoveChild, 9, ++/*264529*/ OPC_CheckInteger, 15, ++/*264531*/ OPC_CheckType, MVT::i32, ++/*264533*/ OPC_MoveParent, ++/*264534*/ OPC_MoveChild, 10, ++/*264536*/ OPC_CheckInteger, 15, ++/*264538*/ OPC_CheckType, MVT::i32, ++/*264540*/ OPC_MoveParent, ++/*264541*/ OPC_MoveChild, 11, ++/*264543*/ OPC_CheckInteger, 15, ++/*264545*/ OPC_CheckType, MVT::i32, ++/*264547*/ OPC_MoveParent, ++/*264548*/ OPC_MoveChild, 12, ++/*264550*/ OPC_CheckInteger, 15, ++/*264552*/ OPC_CheckType, MVT::i32, ++/*264554*/ OPC_MoveParent, ++/*264555*/ OPC_MoveChild, 13, ++/*264557*/ OPC_CheckInteger, 15, ++/*264559*/ OPC_CheckType, MVT::i32, ++/*264561*/ OPC_MoveParent, ++/*264562*/ OPC_MoveChild, 14, ++/*264564*/ OPC_CheckInteger, 15, ++/*264566*/ OPC_CheckType, MVT::i32, ++/*264568*/ OPC_MoveParent, ++/*264569*/ OPC_MoveChild, 15, ++/*264571*/ OPC_CheckInteger, 15, ++/*264573*/ OPC_CheckType, MVT::i32, ++/*264575*/ OPC_MoveParent, ++/*264576*/ OPC_CheckType, MVT::v16i16, ++/*264578*/ OPC_MoveParent, ++/*264579*/ OPC_MoveParent, ++/*264580*/ OPC_MoveParent, ++/*264581*/ OPC_MoveChild1, ++/*264582*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*264585*/ OPC_CheckChild0Integer, 1, ++/*264587*/ OPC_CheckChild0Type, MVT::i32, ++/*264589*/ OPC_CheckChild1Integer, 1, ++/*264591*/ OPC_CheckChild1Type, MVT::i32, ++/*264593*/ OPC_CheckChild2Integer, 1, ++/*264595*/ OPC_CheckChild2Type, MVT::i32, ++/*264597*/ OPC_CheckChild3Integer, 1, ++/*264599*/ OPC_CheckChild3Type, MVT::i32, ++/*264601*/ OPC_CheckChild4Integer, 1, ++/*264603*/ OPC_CheckChild4Type, MVT::i32, ++/*264605*/ OPC_MoveChild5, ++/*264606*/ OPC_CheckInteger, 1, ++/*264608*/ OPC_CheckType, MVT::i32, ++/*264610*/ OPC_MoveParent, ++/*264611*/ OPC_MoveChild6, ++/*264612*/ OPC_CheckInteger, 1, ++/*264614*/ OPC_CheckType, MVT::i32, ++/*264616*/ OPC_MoveParent, ++/*264617*/ OPC_MoveChild7, ++/*264618*/ OPC_CheckInteger, 1, ++/*264620*/ OPC_CheckType, MVT::i32, ++/*264622*/ OPC_MoveParent, ++/*264623*/ OPC_MoveChild, 8, ++/*264625*/ OPC_CheckInteger, 1, ++/*264627*/ OPC_CheckType, MVT::i32, ++/*264629*/ OPC_MoveParent, ++/*264630*/ OPC_MoveChild, 9, ++/*264632*/ OPC_CheckInteger, 1, ++/*264634*/ OPC_CheckType, MVT::i32, ++/*264636*/ OPC_MoveParent, ++/*264637*/ OPC_MoveChild, 10, ++/*264639*/ OPC_CheckInteger, 1, ++/*264641*/ OPC_CheckType, MVT::i32, ++/*264643*/ OPC_MoveParent, ++/*264644*/ OPC_MoveChild, 11, ++/*264646*/ OPC_CheckInteger, 1, ++/*264648*/ OPC_CheckType, MVT::i32, ++/*264650*/ OPC_MoveParent, ++/*264651*/ OPC_MoveChild, 12, ++/*264653*/ OPC_CheckInteger, 1, ++/*264655*/ OPC_CheckType, MVT::i32, ++/*264657*/ OPC_MoveParent, ++/*264658*/ OPC_MoveChild, 13, ++/*264660*/ OPC_CheckInteger, 1, ++/*264662*/ OPC_CheckType, MVT::i32, ++/*264664*/ OPC_MoveParent, ++/*264665*/ OPC_MoveChild, 14, ++/*264667*/ OPC_CheckInteger, 1, ++/*264669*/ OPC_CheckType, MVT::i32, ++/*264671*/ OPC_MoveParent, ++/*264672*/ OPC_MoveChild, 15, ++/*264674*/ OPC_CheckInteger, 1, ++/*264676*/ OPC_CheckType, MVT::i32, ++/*264678*/ OPC_MoveParent, ++/*264679*/ OPC_CheckType, MVT::v16i16, ++/*264681*/ OPC_MoveParent, ++/*264682*/ OPC_CheckType, MVT::v16i16, ++/*264684*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*264686*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b)), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*264694*/ /*Scope*/ 63|128,2/*319*/, /*->265015*/ ++/*264696*/ OPC_CheckChild0Same, 1, ++/*264698*/ OPC_MoveChild1, ++/*264699*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*264702*/ OPC_CheckChild0Integer, 1, ++/*264704*/ OPC_CheckChild0Type, MVT::i32, ++/*264706*/ OPC_CheckChild1Integer, 1, ++/*264708*/ OPC_CheckChild1Type, MVT::i32, ++/*264710*/ OPC_CheckChild2Integer, 1, ++/*264712*/ OPC_CheckChild2Type, MVT::i32, ++/*264714*/ OPC_CheckChild3Integer, 1, ++/*264716*/ OPC_CheckChild3Type, MVT::i32, ++/*264718*/ OPC_CheckChild4Integer, 1, ++/*264720*/ OPC_CheckChild4Type, MVT::i32, ++/*264722*/ OPC_MoveChild5, ++/*264723*/ OPC_CheckInteger, 1, ++/*264725*/ OPC_CheckType, MVT::i32, ++/*264727*/ OPC_MoveParent, ++/*264728*/ OPC_MoveChild6, ++/*264729*/ OPC_CheckInteger, 1, ++/*264731*/ OPC_CheckType, MVT::i32, ++/*264733*/ OPC_MoveParent, ++/*264734*/ OPC_MoveChild7, ++/*264735*/ OPC_CheckInteger, 1, ++/*264737*/ OPC_CheckType, MVT::i32, ++/*264739*/ OPC_MoveParent, ++/*264740*/ OPC_MoveChild, 8, ++/*264742*/ OPC_CheckInteger, 1, ++/*264744*/ OPC_CheckType, MVT::i32, ++/*264746*/ OPC_MoveParent, ++/*264747*/ OPC_MoveChild, 9, ++/*264749*/ OPC_CheckInteger, 1, ++/*264751*/ OPC_CheckType, MVT::i32, ++/*264753*/ OPC_MoveParent, ++/*264754*/ OPC_MoveChild, 10, ++/*264756*/ OPC_CheckInteger, 1, ++/*264758*/ OPC_CheckType, MVT::i32, ++/*264760*/ OPC_MoveParent, ++/*264761*/ OPC_MoveChild, 11, ++/*264763*/ OPC_CheckInteger, 1, ++/*264765*/ OPC_CheckType, MVT::i32, ++/*264767*/ OPC_MoveParent, ++/*264768*/ OPC_MoveChild, 12, ++/*264770*/ OPC_CheckInteger, 1, ++/*264772*/ OPC_CheckType, MVT::i32, ++/*264774*/ OPC_MoveParent, ++/*264775*/ OPC_MoveChild, 13, ++/*264777*/ OPC_CheckInteger, 1, ++/*264779*/ OPC_CheckType, MVT::i32, ++/*264781*/ OPC_MoveParent, ++/*264782*/ OPC_MoveChild, 14, ++/*264784*/ OPC_CheckInteger, 1, ++/*264786*/ OPC_CheckType, MVT::i32, ++/*264788*/ OPC_MoveParent, ++/*264789*/ OPC_MoveChild, 15, ++/*264791*/ OPC_CheckInteger, 1, ++/*264793*/ OPC_CheckType, MVT::i32, ++/*264795*/ OPC_MoveParent, ++/*264796*/ OPC_MoveParent, ++/*264797*/ OPC_MoveParent, ++/*264798*/ OPC_MoveParent, ++/*264799*/ OPC_MoveChild1, ++/*264800*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*264803*/ OPC_CheckChild0Integer, 15, ++/*264805*/ OPC_CheckChild0Type, MVT::i32, ++/*264807*/ OPC_CheckChild1Integer, 15, ++/*264809*/ OPC_CheckChild1Type, MVT::i32, ++/*264811*/ OPC_CheckChild2Integer, 15, ++/*264813*/ OPC_CheckChild2Type, MVT::i32, ++/*264815*/ OPC_CheckChild3Integer, 15, ++/*264817*/ OPC_CheckChild3Type, MVT::i32, ++/*264819*/ OPC_CheckChild4Integer, 15, ++/*264821*/ OPC_CheckChild4Type, MVT::i32, ++/*264823*/ OPC_MoveChild5, ++/*264824*/ OPC_CheckInteger, 15, ++/*264826*/ OPC_CheckType, MVT::i32, ++/*264828*/ OPC_MoveParent, ++/*264829*/ OPC_MoveChild6, ++/*264830*/ OPC_CheckInteger, 15, ++/*264832*/ OPC_CheckType, MVT::i32, ++/*264834*/ OPC_MoveParent, ++/*264835*/ OPC_MoveChild7, ++/*264836*/ OPC_CheckInteger, 15, ++/*264838*/ OPC_CheckType, MVT::i32, ++/*264840*/ OPC_MoveParent, ++/*264841*/ OPC_MoveChild, 8, ++/*264843*/ OPC_CheckInteger, 15, ++/*264845*/ OPC_CheckType, MVT::i32, ++/*264847*/ OPC_MoveParent, ++/*264848*/ OPC_MoveChild, 9, ++/*264850*/ OPC_CheckInteger, 15, ++/*264852*/ OPC_CheckType, MVT::i32, ++/*264854*/ OPC_MoveParent, ++/*264855*/ OPC_MoveChild, 10, ++/*264857*/ OPC_CheckInteger, 15, ++/*264859*/ OPC_CheckType, MVT::i32, ++/*264861*/ OPC_MoveParent, ++/*264862*/ OPC_MoveChild, 11, ++/*264864*/ OPC_CheckInteger, 15, ++/*264866*/ OPC_CheckType, MVT::i32, ++/*264868*/ OPC_MoveParent, ++/*264869*/ OPC_MoveChild, 12, ++/*264871*/ OPC_CheckInteger, 15, ++/*264873*/ OPC_CheckType, MVT::i32, ++/*264875*/ OPC_MoveParent, ++/*264876*/ OPC_MoveChild, 13, ++/*264878*/ OPC_CheckInteger, 15, ++/*264880*/ OPC_CheckType, MVT::i32, ++/*264882*/ OPC_MoveParent, ++/*264883*/ OPC_MoveChild, 14, ++/*264885*/ OPC_CheckInteger, 15, ++/*264887*/ OPC_CheckType, MVT::i32, ++/*264889*/ OPC_MoveParent, ++/*264890*/ OPC_MoveChild, 15, ++/*264892*/ OPC_CheckInteger, 15, ++/*264894*/ OPC_CheckType, MVT::i32, ++/*264896*/ OPC_MoveParent, ++/*264897*/ OPC_CheckType, MVT::v16i16, ++/*264899*/ OPC_MoveParent, ++/*264900*/ OPC_MoveParent, ++/*264901*/ OPC_MoveParent, ++/*264902*/ OPC_MoveChild1, ++/*264903*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*264906*/ OPC_CheckChild0Integer, 1, ++/*264908*/ OPC_CheckChild0Type, MVT::i32, ++/*264910*/ OPC_CheckChild1Integer, 1, ++/*264912*/ OPC_CheckChild1Type, MVT::i32, ++/*264914*/ OPC_CheckChild2Integer, 1, ++/*264916*/ OPC_CheckChild2Type, MVT::i32, ++/*264918*/ OPC_CheckChild3Integer, 1, ++/*264920*/ OPC_CheckChild3Type, MVT::i32, ++/*264922*/ OPC_CheckChild4Integer, 1, ++/*264924*/ OPC_CheckChild4Type, MVT::i32, ++/*264926*/ OPC_MoveChild5, ++/*264927*/ OPC_CheckInteger, 1, ++/*264929*/ OPC_CheckType, MVT::i32, ++/*264931*/ OPC_MoveParent, ++/*264932*/ OPC_MoveChild6, ++/*264933*/ OPC_CheckInteger, 1, ++/*264935*/ OPC_CheckType, MVT::i32, ++/*264937*/ OPC_MoveParent, ++/*264938*/ OPC_MoveChild7, ++/*264939*/ OPC_CheckInteger, 1, ++/*264941*/ OPC_CheckType, MVT::i32, ++/*264943*/ OPC_MoveParent, ++/*264944*/ OPC_MoveChild, 8, ++/*264946*/ OPC_CheckInteger, 1, ++/*264948*/ OPC_CheckType, MVT::i32, ++/*264950*/ OPC_MoveParent, ++/*264951*/ OPC_MoveChild, 9, ++/*264953*/ OPC_CheckInteger, 1, ++/*264955*/ OPC_CheckType, MVT::i32, ++/*264957*/ OPC_MoveParent, ++/*264958*/ OPC_MoveChild, 10, ++/*264960*/ OPC_CheckInteger, 1, ++/*264962*/ OPC_CheckType, MVT::i32, ++/*264964*/ OPC_MoveParent, ++/*264965*/ OPC_MoveChild, 11, ++/*264967*/ OPC_CheckInteger, 1, ++/*264969*/ OPC_CheckType, MVT::i32, ++/*264971*/ OPC_MoveParent, ++/*264972*/ OPC_MoveChild, 12, ++/*264974*/ OPC_CheckInteger, 1, ++/*264976*/ OPC_CheckType, MVT::i32, ++/*264978*/ OPC_MoveParent, ++/*264979*/ OPC_MoveChild, 13, ++/*264981*/ OPC_CheckInteger, 1, ++/*264983*/ OPC_CheckType, MVT::i32, ++/*264985*/ OPC_MoveParent, ++/*264986*/ OPC_MoveChild, 14, ++/*264988*/ OPC_CheckInteger, 1, ++/*264990*/ OPC_CheckType, MVT::i32, ++/*264992*/ OPC_MoveParent, ++/*264993*/ OPC_MoveChild, 15, ++/*264995*/ OPC_CheckInteger, 1, ++/*264997*/ OPC_CheckType, MVT::i32, ++/*264999*/ OPC_MoveParent, ++/*265000*/ OPC_CheckType, MVT::v16i16, ++/*265002*/ OPC_MoveParent, ++/*265003*/ OPC_CheckType, MVT::v16i16, ++/*265005*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*265007*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b)), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*265015*/ 0, /*End of Scope*/ ++/*265016*/ /*Scope*/ 96|128,17/*2272*/, /*->267290*/ ++/*265018*/ OPC_MoveChild0, ++/*265019*/ OPC_SwitchOpcode /*2 cases */, 65|128,2/*321*/, TARGET_VAL(ISD::BUILD_VECTOR),// ->265345 ++/*265024*/ OPC_CheckChild0Integer, 1, ++/*265026*/ OPC_CheckChild0Type, MVT::i32, ++/*265028*/ OPC_CheckChild1Integer, 1, ++/*265030*/ OPC_CheckChild1Type, MVT::i32, ++/*265032*/ OPC_CheckChild2Integer, 1, ++/*265034*/ OPC_CheckChild2Type, MVT::i32, ++/*265036*/ OPC_CheckChild3Integer, 1, ++/*265038*/ OPC_CheckChild3Type, MVT::i32, ++/*265040*/ OPC_CheckChild4Integer, 1, ++/*265042*/ OPC_CheckChild4Type, MVT::i32, ++/*265044*/ OPC_MoveChild5, ++/*265045*/ OPC_CheckInteger, 1, ++/*265047*/ OPC_CheckType, MVT::i32, ++/*265049*/ OPC_MoveParent, ++/*265050*/ OPC_MoveChild6, ++/*265051*/ OPC_CheckInteger, 1, ++/*265053*/ OPC_CheckType, MVT::i32, ++/*265055*/ OPC_MoveParent, ++/*265056*/ OPC_MoveChild7, ++/*265057*/ OPC_CheckInteger, 1, ++/*265059*/ OPC_CheckType, MVT::i32, ++/*265061*/ OPC_MoveParent, ++/*265062*/ OPC_MoveChild, 8, ++/*265064*/ OPC_CheckInteger, 1, ++/*265066*/ OPC_CheckType, MVT::i32, ++/*265068*/ OPC_MoveParent, ++/*265069*/ OPC_MoveChild, 9, ++/*265071*/ OPC_CheckInteger, 1, ++/*265073*/ OPC_CheckType, MVT::i32, ++/*265075*/ OPC_MoveParent, ++/*265076*/ OPC_MoveChild, 10, ++/*265078*/ OPC_CheckInteger, 1, ++/*265080*/ OPC_CheckType, MVT::i32, ++/*265082*/ OPC_MoveParent, ++/*265083*/ OPC_MoveChild, 11, ++/*265085*/ OPC_CheckInteger, 1, ++/*265087*/ OPC_CheckType, MVT::i32, ++/*265089*/ OPC_MoveParent, ++/*265090*/ OPC_MoveChild, 12, ++/*265092*/ OPC_CheckInteger, 1, ++/*265094*/ OPC_CheckType, MVT::i32, ++/*265096*/ OPC_MoveParent, ++/*265097*/ OPC_MoveChild, 13, ++/*265099*/ OPC_CheckInteger, 1, ++/*265101*/ OPC_CheckType, MVT::i32, ++/*265103*/ OPC_MoveParent, ++/*265104*/ OPC_MoveChild, 14, ++/*265106*/ OPC_CheckInteger, 1, ++/*265108*/ OPC_CheckType, MVT::i32, ++/*265110*/ OPC_MoveParent, ++/*265111*/ OPC_MoveChild, 15, ++/*265113*/ OPC_CheckInteger, 1, ++/*265115*/ OPC_CheckType, MVT::i32, ++/*265117*/ OPC_MoveParent, ++/*265118*/ OPC_MoveParent, ++/*265119*/ OPC_MoveChild1, ++/*265120*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*265123*/ OPC_CheckChild0Same, 1, ++/*265125*/ OPC_CheckChild1Same, 0, ++/*265127*/ OPC_MoveParent, ++/*265128*/ OPC_MoveParent, ++/*265129*/ OPC_MoveChild1, ++/*265130*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*265133*/ OPC_CheckChild0Integer, 15, ++/*265135*/ OPC_CheckChild0Type, MVT::i32, ++/*265137*/ OPC_CheckChild1Integer, 15, ++/*265139*/ OPC_CheckChild1Type, MVT::i32, ++/*265141*/ OPC_CheckChild2Integer, 15, ++/*265143*/ OPC_CheckChild2Type, MVT::i32, ++/*265145*/ OPC_CheckChild3Integer, 15, ++/*265147*/ OPC_CheckChild3Type, MVT::i32, ++/*265149*/ OPC_CheckChild4Integer, 15, ++/*265151*/ OPC_CheckChild4Type, MVT::i32, ++/*265153*/ OPC_MoveChild5, ++/*265154*/ OPC_CheckInteger, 15, ++/*265156*/ OPC_CheckType, MVT::i32, ++/*265158*/ OPC_MoveParent, ++/*265159*/ OPC_MoveChild6, ++/*265160*/ OPC_CheckInteger, 15, ++/*265162*/ OPC_CheckType, MVT::i32, ++/*265164*/ OPC_MoveParent, ++/*265165*/ OPC_MoveChild7, ++/*265166*/ OPC_CheckInteger, 15, ++/*265168*/ OPC_CheckType, MVT::i32, ++/*265170*/ OPC_MoveParent, ++/*265171*/ OPC_MoveChild, 8, ++/*265173*/ OPC_CheckInteger, 15, ++/*265175*/ OPC_CheckType, MVT::i32, ++/*265177*/ OPC_MoveParent, ++/*265178*/ OPC_MoveChild, 9, ++/*265180*/ OPC_CheckInteger, 15, ++/*265182*/ OPC_CheckType, MVT::i32, ++/*265184*/ OPC_MoveParent, ++/*265185*/ OPC_MoveChild, 10, ++/*265187*/ OPC_CheckInteger, 15, ++/*265189*/ OPC_CheckType, MVT::i32, ++/*265191*/ OPC_MoveParent, ++/*265192*/ OPC_MoveChild, 11, ++/*265194*/ OPC_CheckInteger, 15, ++/*265196*/ OPC_CheckType, MVT::i32, ++/*265198*/ OPC_MoveParent, ++/*265199*/ OPC_MoveChild, 12, ++/*265201*/ OPC_CheckInteger, 15, ++/*265203*/ OPC_CheckType, MVT::i32, ++/*265205*/ OPC_MoveParent, ++/*265206*/ OPC_MoveChild, 13, ++/*265208*/ OPC_CheckInteger, 15, ++/*265210*/ OPC_CheckType, MVT::i32, ++/*265212*/ OPC_MoveParent, ++/*265213*/ OPC_MoveChild, 14, ++/*265215*/ OPC_CheckInteger, 15, ++/*265217*/ OPC_CheckType, MVT::i32, ++/*265219*/ OPC_MoveParent, ++/*265220*/ OPC_MoveChild, 15, ++/*265222*/ OPC_CheckInteger, 15, ++/*265224*/ OPC_CheckType, MVT::i32, ++/*265226*/ OPC_MoveParent, ++/*265227*/ OPC_CheckType, MVT::v16i16, ++/*265229*/ OPC_MoveParent, ++/*265230*/ OPC_MoveParent, ++/*265231*/ OPC_MoveParent, ++/*265232*/ OPC_MoveChild1, ++/*265233*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*265236*/ OPC_CheckChild0Integer, 1, ++/*265238*/ OPC_CheckChild0Type, MVT::i32, ++/*265240*/ OPC_CheckChild1Integer, 1, ++/*265242*/ OPC_CheckChild1Type, MVT::i32, ++/*265244*/ OPC_CheckChild2Integer, 1, ++/*265246*/ OPC_CheckChild2Type, MVT::i32, ++/*265248*/ OPC_CheckChild3Integer, 1, ++/*265250*/ OPC_CheckChild3Type, MVT::i32, ++/*265252*/ OPC_CheckChild4Integer, 1, ++/*265254*/ OPC_CheckChild4Type, MVT::i32, ++/*265256*/ OPC_MoveChild5, ++/*265257*/ OPC_CheckInteger, 1, ++/*265259*/ OPC_CheckType, MVT::i32, ++/*265261*/ OPC_MoveParent, ++/*265262*/ OPC_MoveChild6, ++/*265263*/ OPC_CheckInteger, 1, ++/*265265*/ OPC_CheckType, MVT::i32, ++/*265267*/ OPC_MoveParent, ++/*265268*/ OPC_MoveChild7, ++/*265269*/ OPC_CheckInteger, 1, ++/*265271*/ OPC_CheckType, MVT::i32, ++/*265273*/ OPC_MoveParent, ++/*265274*/ OPC_MoveChild, 8, ++/*265276*/ OPC_CheckInteger, 1, ++/*265278*/ OPC_CheckType, MVT::i32, ++/*265280*/ OPC_MoveParent, ++/*265281*/ OPC_MoveChild, 9, ++/*265283*/ OPC_CheckInteger, 1, ++/*265285*/ OPC_CheckType, MVT::i32, ++/*265287*/ OPC_MoveParent, ++/*265288*/ OPC_MoveChild, 10, ++/*265290*/ OPC_CheckInteger, 1, ++/*265292*/ OPC_CheckType, MVT::i32, ++/*265294*/ OPC_MoveParent, ++/*265295*/ OPC_MoveChild, 11, ++/*265297*/ OPC_CheckInteger, 1, ++/*265299*/ OPC_CheckType, MVT::i32, ++/*265301*/ OPC_MoveParent, ++/*265302*/ OPC_MoveChild, 12, ++/*265304*/ OPC_CheckInteger, 1, ++/*265306*/ OPC_CheckType, MVT::i32, ++/*265308*/ OPC_MoveParent, ++/*265309*/ OPC_MoveChild, 13, ++/*265311*/ OPC_CheckInteger, 1, ++/*265313*/ OPC_CheckType, MVT::i32, ++/*265315*/ OPC_MoveParent, ++/*265316*/ OPC_MoveChild, 14, ++/*265318*/ OPC_CheckInteger, 1, ++/*265320*/ OPC_CheckType, MVT::i32, ++/*265322*/ OPC_MoveParent, ++/*265323*/ OPC_MoveChild, 15, ++/*265325*/ OPC_CheckInteger, 1, ++/*265327*/ OPC_CheckType, MVT::i32, ++/*265329*/ OPC_MoveParent, ++/*265330*/ OPC_CheckType, MVT::v16i16, ++/*265332*/ OPC_MoveParent, ++/*265333*/ OPC_CheckType, MVT::v16i16, ++/*265335*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*265337*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b)), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*265345*/ /*SwitchOpcode*/ 20|128,15/*1940*/, TARGET_VAL(ISD::ADD),// ->267289 ++/*265349*/ OPC_Scope, 65|128,2/*321*/, /*->265673*/ // 6 children in Scope ++/*265352*/ OPC_MoveChild0, ++/*265353*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*265356*/ OPC_CheckChild0Integer, 1, ++/*265358*/ OPC_CheckChild0Type, MVT::i32, ++/*265360*/ OPC_CheckChild1Integer, 1, ++/*265362*/ OPC_CheckChild1Type, MVT::i32, ++/*265364*/ OPC_CheckChild2Integer, 1, ++/*265366*/ OPC_CheckChild2Type, MVT::i32, ++/*265368*/ OPC_CheckChild3Integer, 1, ++/*265370*/ OPC_CheckChild3Type, MVT::i32, ++/*265372*/ OPC_CheckChild4Integer, 1, ++/*265374*/ OPC_CheckChild4Type, MVT::i32, ++/*265376*/ OPC_MoveChild5, ++/*265377*/ OPC_CheckInteger, 1, ++/*265379*/ OPC_CheckType, MVT::i32, ++/*265381*/ OPC_MoveParent, ++/*265382*/ OPC_MoveChild6, ++/*265383*/ OPC_CheckInteger, 1, ++/*265385*/ OPC_CheckType, MVT::i32, ++/*265387*/ OPC_MoveParent, ++/*265388*/ OPC_MoveChild7, ++/*265389*/ OPC_CheckInteger, 1, ++/*265391*/ OPC_CheckType, MVT::i32, ++/*265393*/ OPC_MoveParent, ++/*265394*/ OPC_MoveChild, 8, ++/*265396*/ OPC_CheckInteger, 1, ++/*265398*/ OPC_CheckType, MVT::i32, ++/*265400*/ OPC_MoveParent, ++/*265401*/ OPC_MoveChild, 9, ++/*265403*/ OPC_CheckInteger, 1, ++/*265405*/ OPC_CheckType, MVT::i32, ++/*265407*/ OPC_MoveParent, ++/*265408*/ OPC_MoveChild, 10, ++/*265410*/ OPC_CheckInteger, 1, ++/*265412*/ OPC_CheckType, MVT::i32, ++/*265414*/ OPC_MoveParent, ++/*265415*/ OPC_MoveChild, 11, ++/*265417*/ OPC_CheckInteger, 1, ++/*265419*/ OPC_CheckType, MVT::i32, ++/*265421*/ OPC_MoveParent, ++/*265422*/ OPC_MoveChild, 12, ++/*265424*/ OPC_CheckInteger, 1, ++/*265426*/ OPC_CheckType, MVT::i32, ++/*265428*/ OPC_MoveParent, ++/*265429*/ OPC_MoveChild, 13, ++/*265431*/ OPC_CheckInteger, 1, ++/*265433*/ OPC_CheckType, MVT::i32, ++/*265435*/ OPC_MoveParent, ++/*265436*/ OPC_MoveChild, 14, ++/*265438*/ OPC_CheckInteger, 1, ++/*265440*/ OPC_CheckType, MVT::i32, ++/*265442*/ OPC_MoveParent, ++/*265443*/ OPC_MoveChild, 15, ++/*265445*/ OPC_CheckInteger, 1, ++/*265447*/ OPC_CheckType, MVT::i32, ++/*265449*/ OPC_MoveParent, ++/*265450*/ OPC_MoveParent, ++/*265451*/ OPC_CheckChild1Same, 1, ++/*265453*/ OPC_MoveParent, ++/*265454*/ OPC_CheckChild1Same, 0, ++/*265456*/ OPC_MoveParent, ++/*265457*/ OPC_MoveChild1, ++/*265458*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*265461*/ OPC_CheckChild0Integer, 15, ++/*265463*/ OPC_CheckChild0Type, MVT::i32, ++/*265465*/ OPC_CheckChild1Integer, 15, ++/*265467*/ OPC_CheckChild1Type, MVT::i32, ++/*265469*/ OPC_CheckChild2Integer, 15, ++/*265471*/ OPC_CheckChild2Type, MVT::i32, ++/*265473*/ OPC_CheckChild3Integer, 15, ++/*265475*/ OPC_CheckChild3Type, MVT::i32, ++/*265477*/ OPC_CheckChild4Integer, 15, ++/*265479*/ OPC_CheckChild4Type, MVT::i32, ++/*265481*/ OPC_MoveChild5, ++/*265482*/ OPC_CheckInteger, 15, ++/*265484*/ OPC_CheckType, MVT::i32, ++/*265486*/ OPC_MoveParent, ++/*265487*/ OPC_MoveChild6, ++/*265488*/ OPC_CheckInteger, 15, ++/*265490*/ OPC_CheckType, MVT::i32, ++/*265492*/ OPC_MoveParent, ++/*265493*/ OPC_MoveChild7, ++/*265494*/ OPC_CheckInteger, 15, ++/*265496*/ OPC_CheckType, MVT::i32, ++/*265498*/ OPC_MoveParent, ++/*265499*/ OPC_MoveChild, 8, ++/*265501*/ OPC_CheckInteger, 15, ++/*265503*/ OPC_CheckType, MVT::i32, ++/*265505*/ OPC_MoveParent, ++/*265506*/ OPC_MoveChild, 9, ++/*265508*/ OPC_CheckInteger, 15, ++/*265510*/ OPC_CheckType, MVT::i32, ++/*265512*/ OPC_MoveParent, ++/*265513*/ OPC_MoveChild, 10, ++/*265515*/ OPC_CheckInteger, 15, ++/*265517*/ OPC_CheckType, MVT::i32, ++/*265519*/ OPC_MoveParent, ++/*265520*/ OPC_MoveChild, 11, ++/*265522*/ OPC_CheckInteger, 15, ++/*265524*/ OPC_CheckType, MVT::i32, ++/*265526*/ OPC_MoveParent, ++/*265527*/ OPC_MoveChild, 12, ++/*265529*/ OPC_CheckInteger, 15, ++/*265531*/ OPC_CheckType, MVT::i32, ++/*265533*/ OPC_MoveParent, ++/*265534*/ OPC_MoveChild, 13, ++/*265536*/ OPC_CheckInteger, 15, ++/*265538*/ OPC_CheckType, MVT::i32, ++/*265540*/ OPC_MoveParent, ++/*265541*/ OPC_MoveChild, 14, ++/*265543*/ OPC_CheckInteger, 15, ++/*265545*/ OPC_CheckType, MVT::i32, ++/*265547*/ OPC_MoveParent, ++/*265548*/ OPC_MoveChild, 15, ++/*265550*/ OPC_CheckInteger, 15, ++/*265552*/ OPC_CheckType, MVT::i32, ++/*265554*/ OPC_MoveParent, ++/*265555*/ OPC_CheckType, MVT::v16i16, ++/*265557*/ OPC_MoveParent, ++/*265558*/ OPC_MoveParent, ++/*265559*/ OPC_MoveParent, ++/*265560*/ OPC_MoveChild1, ++/*265561*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*265564*/ OPC_CheckChild0Integer, 1, ++/*265566*/ OPC_CheckChild0Type, MVT::i32, ++/*265568*/ OPC_CheckChild1Integer, 1, ++/*265570*/ OPC_CheckChild1Type, MVT::i32, ++/*265572*/ OPC_CheckChild2Integer, 1, ++/*265574*/ OPC_CheckChild2Type, MVT::i32, ++/*265576*/ OPC_CheckChild3Integer, 1, ++/*265578*/ OPC_CheckChild3Type, MVT::i32, ++/*265580*/ OPC_CheckChild4Integer, 1, ++/*265582*/ OPC_CheckChild4Type, MVT::i32, ++/*265584*/ OPC_MoveChild5, ++/*265585*/ OPC_CheckInteger, 1, ++/*265587*/ OPC_CheckType, MVT::i32, ++/*265589*/ OPC_MoveParent, ++/*265590*/ OPC_MoveChild6, ++/*265591*/ OPC_CheckInteger, 1, ++/*265593*/ OPC_CheckType, MVT::i32, ++/*265595*/ OPC_MoveParent, ++/*265596*/ OPC_MoveChild7, ++/*265597*/ OPC_CheckInteger, 1, ++/*265599*/ OPC_CheckType, MVT::i32, ++/*265601*/ OPC_MoveParent, ++/*265602*/ OPC_MoveChild, 8, ++/*265604*/ OPC_CheckInteger, 1, ++/*265606*/ OPC_CheckType, MVT::i32, ++/*265608*/ OPC_MoveParent, ++/*265609*/ OPC_MoveChild, 9, ++/*265611*/ OPC_CheckInteger, 1, ++/*265613*/ OPC_CheckType, MVT::i32, ++/*265615*/ OPC_MoveParent, ++/*265616*/ OPC_MoveChild, 10, ++/*265618*/ OPC_CheckInteger, 1, ++/*265620*/ OPC_CheckType, MVT::i32, ++/*265622*/ OPC_MoveParent, ++/*265623*/ OPC_MoveChild, 11, ++/*265625*/ OPC_CheckInteger, 1, ++/*265627*/ OPC_CheckType, MVT::i32, ++/*265629*/ OPC_MoveParent, ++/*265630*/ OPC_MoveChild, 12, ++/*265632*/ OPC_CheckInteger, 1, ++/*265634*/ OPC_CheckType, MVT::i32, ++/*265636*/ OPC_MoveParent, ++/*265637*/ OPC_MoveChild, 13, ++/*265639*/ OPC_CheckInteger, 1, ++/*265641*/ OPC_CheckType, MVT::i32, ++/*265643*/ OPC_MoveParent, ++/*265644*/ OPC_MoveChild, 14, ++/*265646*/ OPC_CheckInteger, 1, ++/*265648*/ OPC_CheckType, MVT::i32, ++/*265650*/ OPC_MoveParent, ++/*265651*/ OPC_MoveChild, 15, ++/*265653*/ OPC_CheckInteger, 1, ++/*265655*/ OPC_CheckType, MVT::i32, ++/*265657*/ OPC_MoveParent, ++/*265658*/ OPC_CheckType, MVT::v16i16, ++/*265660*/ OPC_MoveParent, ++/*265661*/ OPC_CheckType, MVT::v16i16, ++/*265663*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*265665*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a)), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a), LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*265673*/ /*Scope*/ 65|128,2/*321*/, /*->265996*/ ++/*265675*/ OPC_CheckChild0Same, 1, ++/*265677*/ OPC_MoveChild1, ++/*265678*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*265681*/ OPC_CheckChild0Integer, 1, ++/*265683*/ OPC_CheckChild0Type, MVT::i32, ++/*265685*/ OPC_CheckChild1Integer, 1, ++/*265687*/ OPC_CheckChild1Type, MVT::i32, ++/*265689*/ OPC_CheckChild2Integer, 1, ++/*265691*/ OPC_CheckChild2Type, MVT::i32, ++/*265693*/ OPC_CheckChild3Integer, 1, ++/*265695*/ OPC_CheckChild3Type, MVT::i32, ++/*265697*/ OPC_CheckChild4Integer, 1, ++/*265699*/ OPC_CheckChild4Type, MVT::i32, ++/*265701*/ OPC_MoveChild5, ++/*265702*/ OPC_CheckInteger, 1, ++/*265704*/ OPC_CheckType, MVT::i32, ++/*265706*/ OPC_MoveParent, ++/*265707*/ OPC_MoveChild6, ++/*265708*/ OPC_CheckInteger, 1, ++/*265710*/ OPC_CheckType, MVT::i32, ++/*265712*/ OPC_MoveParent, ++/*265713*/ OPC_MoveChild7, ++/*265714*/ OPC_CheckInteger, 1, ++/*265716*/ OPC_CheckType, MVT::i32, ++/*265718*/ OPC_MoveParent, ++/*265719*/ OPC_MoveChild, 8, ++/*265721*/ OPC_CheckInteger, 1, ++/*265723*/ OPC_CheckType, MVT::i32, ++/*265725*/ OPC_MoveParent, ++/*265726*/ OPC_MoveChild, 9, ++/*265728*/ OPC_CheckInteger, 1, ++/*265730*/ OPC_CheckType, MVT::i32, ++/*265732*/ OPC_MoveParent, ++/*265733*/ OPC_MoveChild, 10, ++/*265735*/ OPC_CheckInteger, 1, ++/*265737*/ OPC_CheckType, MVT::i32, ++/*265739*/ OPC_MoveParent, ++/*265740*/ OPC_MoveChild, 11, ++/*265742*/ OPC_CheckInteger, 1, ++/*265744*/ OPC_CheckType, MVT::i32, ++/*265746*/ OPC_MoveParent, ++/*265747*/ OPC_MoveChild, 12, ++/*265749*/ OPC_CheckInteger, 1, ++/*265751*/ OPC_CheckType, MVT::i32, ++/*265753*/ OPC_MoveParent, ++/*265754*/ OPC_MoveChild, 13, ++/*265756*/ OPC_CheckInteger, 1, ++/*265758*/ OPC_CheckType, MVT::i32, ++/*265760*/ OPC_MoveParent, ++/*265761*/ OPC_MoveChild, 14, ++/*265763*/ OPC_CheckInteger, 1, ++/*265765*/ OPC_CheckType, MVT::i32, ++/*265767*/ OPC_MoveParent, ++/*265768*/ OPC_MoveChild, 15, ++/*265770*/ OPC_CheckInteger, 1, ++/*265772*/ OPC_CheckType, MVT::i32, ++/*265774*/ OPC_MoveParent, ++/*265775*/ OPC_MoveParent, ++/*265776*/ OPC_MoveParent, ++/*265777*/ OPC_CheckChild1Same, 0, ++/*265779*/ OPC_MoveParent, ++/*265780*/ OPC_MoveChild1, ++/*265781*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*265784*/ OPC_CheckChild0Integer, 15, ++/*265786*/ OPC_CheckChild0Type, MVT::i32, ++/*265788*/ OPC_CheckChild1Integer, 15, ++/*265790*/ OPC_CheckChild1Type, MVT::i32, ++/*265792*/ OPC_CheckChild2Integer, 15, ++/*265794*/ OPC_CheckChild2Type, MVT::i32, ++/*265796*/ OPC_CheckChild3Integer, 15, ++/*265798*/ OPC_CheckChild3Type, MVT::i32, ++/*265800*/ OPC_CheckChild4Integer, 15, ++/*265802*/ OPC_CheckChild4Type, MVT::i32, ++/*265804*/ OPC_MoveChild5, ++/*265805*/ OPC_CheckInteger, 15, ++/*265807*/ OPC_CheckType, MVT::i32, ++/*265809*/ OPC_MoveParent, ++/*265810*/ OPC_MoveChild6, ++/*265811*/ OPC_CheckInteger, 15, ++/*265813*/ OPC_CheckType, MVT::i32, ++/*265815*/ OPC_MoveParent, ++/*265816*/ OPC_MoveChild7, ++/*265817*/ OPC_CheckInteger, 15, ++/*265819*/ OPC_CheckType, MVT::i32, ++/*265821*/ OPC_MoveParent, ++/*265822*/ OPC_MoveChild, 8, ++/*265824*/ OPC_CheckInteger, 15, ++/*265826*/ OPC_CheckType, MVT::i32, ++/*265828*/ OPC_MoveParent, ++/*265829*/ OPC_MoveChild, 9, ++/*265831*/ OPC_CheckInteger, 15, ++/*265833*/ OPC_CheckType, MVT::i32, ++/*265835*/ OPC_MoveParent, ++/*265836*/ OPC_MoveChild, 10, ++/*265838*/ OPC_CheckInteger, 15, ++/*265840*/ OPC_CheckType, MVT::i32, ++/*265842*/ OPC_MoveParent, ++/*265843*/ OPC_MoveChild, 11, ++/*265845*/ OPC_CheckInteger, 15, ++/*265847*/ OPC_CheckType, MVT::i32, ++/*265849*/ OPC_MoveParent, ++/*265850*/ OPC_MoveChild, 12, ++/*265852*/ OPC_CheckInteger, 15, ++/*265854*/ OPC_CheckType, MVT::i32, ++/*265856*/ OPC_MoveParent, ++/*265857*/ OPC_MoveChild, 13, ++/*265859*/ OPC_CheckInteger, 15, ++/*265861*/ OPC_CheckType, MVT::i32, ++/*265863*/ OPC_MoveParent, ++/*265864*/ OPC_MoveChild, 14, ++/*265866*/ OPC_CheckInteger, 15, ++/*265868*/ OPC_CheckType, MVT::i32, ++/*265870*/ OPC_MoveParent, ++/*265871*/ OPC_MoveChild, 15, ++/*265873*/ OPC_CheckInteger, 15, ++/*265875*/ OPC_CheckType, MVT::i32, ++/*265877*/ OPC_MoveParent, ++/*265878*/ OPC_CheckType, MVT::v16i16, ++/*265880*/ OPC_MoveParent, ++/*265881*/ OPC_MoveParent, ++/*265882*/ OPC_MoveParent, ++/*265883*/ OPC_MoveChild1, ++/*265884*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*265887*/ OPC_CheckChild0Integer, 1, ++/*265889*/ OPC_CheckChild0Type, MVT::i32, ++/*265891*/ OPC_CheckChild1Integer, 1, ++/*265893*/ OPC_CheckChild1Type, MVT::i32, ++/*265895*/ OPC_CheckChild2Integer, 1, ++/*265897*/ OPC_CheckChild2Type, MVT::i32, ++/*265899*/ OPC_CheckChild3Integer, 1, ++/*265901*/ OPC_CheckChild3Type, MVT::i32, ++/*265903*/ OPC_CheckChild4Integer, 1, ++/*265905*/ OPC_CheckChild4Type, MVT::i32, ++/*265907*/ OPC_MoveChild5, ++/*265908*/ OPC_CheckInteger, 1, ++/*265910*/ OPC_CheckType, MVT::i32, ++/*265912*/ OPC_MoveParent, ++/*265913*/ OPC_MoveChild6, ++/*265914*/ OPC_CheckInteger, 1, ++/*265916*/ OPC_CheckType, MVT::i32, ++/*265918*/ OPC_MoveParent, ++/*265919*/ OPC_MoveChild7, ++/*265920*/ OPC_CheckInteger, 1, ++/*265922*/ OPC_CheckType, MVT::i32, ++/*265924*/ OPC_MoveParent, ++/*265925*/ OPC_MoveChild, 8, ++/*265927*/ OPC_CheckInteger, 1, ++/*265929*/ OPC_CheckType, MVT::i32, ++/*265931*/ OPC_MoveParent, ++/*265932*/ OPC_MoveChild, 9, ++/*265934*/ OPC_CheckInteger, 1, ++/*265936*/ OPC_CheckType, MVT::i32, ++/*265938*/ OPC_MoveParent, ++/*265939*/ OPC_MoveChild, 10, ++/*265941*/ OPC_CheckInteger, 1, ++/*265943*/ OPC_CheckType, MVT::i32, ++/*265945*/ OPC_MoveParent, ++/*265946*/ OPC_MoveChild, 11, ++/*265948*/ OPC_CheckInteger, 1, ++/*265950*/ OPC_CheckType, MVT::i32, ++/*265952*/ OPC_MoveParent, ++/*265953*/ OPC_MoveChild, 12, ++/*265955*/ OPC_CheckInteger, 1, ++/*265957*/ OPC_CheckType, MVT::i32, ++/*265959*/ OPC_MoveParent, ++/*265960*/ OPC_MoveChild, 13, ++/*265962*/ OPC_CheckInteger, 1, ++/*265964*/ OPC_CheckType, MVT::i32, ++/*265966*/ OPC_MoveParent, ++/*265967*/ OPC_MoveChild, 14, ++/*265969*/ OPC_CheckInteger, 1, ++/*265971*/ OPC_CheckType, MVT::i32, ++/*265973*/ OPC_MoveParent, ++/*265974*/ OPC_MoveChild, 15, ++/*265976*/ OPC_CheckInteger, 1, ++/*265978*/ OPC_CheckType, MVT::i32, ++/*265980*/ OPC_MoveParent, ++/*265981*/ OPC_CheckType, MVT::v16i16, ++/*265983*/ OPC_MoveParent, ++/*265984*/ OPC_CheckType, MVT::v16i16, ++/*265986*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*265988*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a)), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*265996*/ /*Scope*/ 65|128,2/*321*/, /*->266319*/ ++/*265998*/ OPC_MoveChild0, ++/*265999*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*266002*/ OPC_CheckChild0Integer, 1, ++/*266004*/ OPC_CheckChild0Type, MVT::i32, ++/*266006*/ OPC_CheckChild1Integer, 1, ++/*266008*/ OPC_CheckChild1Type, MVT::i32, ++/*266010*/ OPC_CheckChild2Integer, 1, ++/*266012*/ OPC_CheckChild2Type, MVT::i32, ++/*266014*/ OPC_CheckChild3Integer, 1, ++/*266016*/ OPC_CheckChild3Type, MVT::i32, ++/*266018*/ OPC_CheckChild4Integer, 1, ++/*266020*/ OPC_CheckChild4Type, MVT::i32, ++/*266022*/ OPC_MoveChild5, ++/*266023*/ OPC_CheckInteger, 1, ++/*266025*/ OPC_CheckType, MVT::i32, ++/*266027*/ OPC_MoveParent, ++/*266028*/ OPC_MoveChild6, ++/*266029*/ OPC_CheckInteger, 1, ++/*266031*/ OPC_CheckType, MVT::i32, ++/*266033*/ OPC_MoveParent, ++/*266034*/ OPC_MoveChild7, ++/*266035*/ OPC_CheckInteger, 1, ++/*266037*/ OPC_CheckType, MVT::i32, ++/*266039*/ OPC_MoveParent, ++/*266040*/ OPC_MoveChild, 8, ++/*266042*/ OPC_CheckInteger, 1, ++/*266044*/ OPC_CheckType, MVT::i32, ++/*266046*/ OPC_MoveParent, ++/*266047*/ OPC_MoveChild, 9, ++/*266049*/ OPC_CheckInteger, 1, ++/*266051*/ OPC_CheckType, MVT::i32, ++/*266053*/ OPC_MoveParent, ++/*266054*/ OPC_MoveChild, 10, ++/*266056*/ OPC_CheckInteger, 1, ++/*266058*/ OPC_CheckType, MVT::i32, ++/*266060*/ OPC_MoveParent, ++/*266061*/ OPC_MoveChild, 11, ++/*266063*/ OPC_CheckInteger, 1, ++/*266065*/ OPC_CheckType, MVT::i32, ++/*266067*/ OPC_MoveParent, ++/*266068*/ OPC_MoveChild, 12, ++/*266070*/ OPC_CheckInteger, 1, ++/*266072*/ OPC_CheckType, MVT::i32, ++/*266074*/ OPC_MoveParent, ++/*266075*/ OPC_MoveChild, 13, ++/*266077*/ OPC_CheckInteger, 1, ++/*266079*/ OPC_CheckType, MVT::i32, ++/*266081*/ OPC_MoveParent, ++/*266082*/ OPC_MoveChild, 14, ++/*266084*/ OPC_CheckInteger, 1, ++/*266086*/ OPC_CheckType, MVT::i32, ++/*266088*/ OPC_MoveParent, ++/*266089*/ OPC_MoveChild, 15, ++/*266091*/ OPC_CheckInteger, 1, ++/*266093*/ OPC_CheckType, MVT::i32, ++/*266095*/ OPC_MoveParent, ++/*266096*/ OPC_MoveParent, ++/*266097*/ OPC_CheckChild1Same, 0, ++/*266099*/ OPC_MoveParent, ++/*266100*/ OPC_CheckChild1Same, 1, ++/*266102*/ OPC_MoveParent, ++/*266103*/ OPC_MoveChild1, ++/*266104*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*266107*/ OPC_CheckChild0Integer, 15, ++/*266109*/ OPC_CheckChild0Type, MVT::i32, ++/*266111*/ OPC_CheckChild1Integer, 15, ++/*266113*/ OPC_CheckChild1Type, MVT::i32, ++/*266115*/ OPC_CheckChild2Integer, 15, ++/*266117*/ OPC_CheckChild2Type, MVT::i32, ++/*266119*/ OPC_CheckChild3Integer, 15, ++/*266121*/ OPC_CheckChild3Type, MVT::i32, ++/*266123*/ OPC_CheckChild4Integer, 15, ++/*266125*/ OPC_CheckChild4Type, MVT::i32, ++/*266127*/ OPC_MoveChild5, ++/*266128*/ OPC_CheckInteger, 15, ++/*266130*/ OPC_CheckType, MVT::i32, ++/*266132*/ OPC_MoveParent, ++/*266133*/ OPC_MoveChild6, ++/*266134*/ OPC_CheckInteger, 15, ++/*266136*/ OPC_CheckType, MVT::i32, ++/*266138*/ OPC_MoveParent, ++/*266139*/ OPC_MoveChild7, ++/*266140*/ OPC_CheckInteger, 15, ++/*266142*/ OPC_CheckType, MVT::i32, ++/*266144*/ OPC_MoveParent, ++/*266145*/ OPC_MoveChild, 8, ++/*266147*/ OPC_CheckInteger, 15, ++/*266149*/ OPC_CheckType, MVT::i32, ++/*266151*/ OPC_MoveParent, ++/*266152*/ OPC_MoveChild, 9, ++/*266154*/ OPC_CheckInteger, 15, ++/*266156*/ OPC_CheckType, MVT::i32, ++/*266158*/ OPC_MoveParent, ++/*266159*/ OPC_MoveChild, 10, ++/*266161*/ OPC_CheckInteger, 15, ++/*266163*/ OPC_CheckType, MVT::i32, ++/*266165*/ OPC_MoveParent, ++/*266166*/ OPC_MoveChild, 11, ++/*266168*/ OPC_CheckInteger, 15, ++/*266170*/ OPC_CheckType, MVT::i32, ++/*266172*/ OPC_MoveParent, ++/*266173*/ OPC_MoveChild, 12, ++/*266175*/ OPC_CheckInteger, 15, ++/*266177*/ OPC_CheckType, MVT::i32, ++/*266179*/ OPC_MoveParent, ++/*266180*/ OPC_MoveChild, 13, ++/*266182*/ OPC_CheckInteger, 15, ++/*266184*/ OPC_CheckType, MVT::i32, ++/*266186*/ OPC_MoveParent, ++/*266187*/ OPC_MoveChild, 14, ++/*266189*/ OPC_CheckInteger, 15, ++/*266191*/ OPC_CheckType, MVT::i32, ++/*266193*/ OPC_MoveParent, ++/*266194*/ OPC_MoveChild, 15, ++/*266196*/ OPC_CheckInteger, 15, ++/*266198*/ OPC_CheckType, MVT::i32, ++/*266200*/ OPC_MoveParent, ++/*266201*/ OPC_CheckType, MVT::v16i16, ++/*266203*/ OPC_MoveParent, ++/*266204*/ OPC_MoveParent, ++/*266205*/ OPC_MoveParent, ++/*266206*/ OPC_MoveChild1, ++/*266207*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*266210*/ OPC_CheckChild0Integer, 1, ++/*266212*/ OPC_CheckChild0Type, MVT::i32, ++/*266214*/ OPC_CheckChild1Integer, 1, ++/*266216*/ OPC_CheckChild1Type, MVT::i32, ++/*266218*/ OPC_CheckChild2Integer, 1, ++/*266220*/ OPC_CheckChild2Type, MVT::i32, ++/*266222*/ OPC_CheckChild3Integer, 1, ++/*266224*/ OPC_CheckChild3Type, MVT::i32, ++/*266226*/ OPC_CheckChild4Integer, 1, ++/*266228*/ OPC_CheckChild4Type, MVT::i32, ++/*266230*/ OPC_MoveChild5, ++/*266231*/ OPC_CheckInteger, 1, ++/*266233*/ OPC_CheckType, MVT::i32, ++/*266235*/ OPC_MoveParent, ++/*266236*/ OPC_MoveChild6, ++/*266237*/ OPC_CheckInteger, 1, ++/*266239*/ OPC_CheckType, MVT::i32, ++/*266241*/ OPC_MoveParent, ++/*266242*/ OPC_MoveChild7, ++/*266243*/ OPC_CheckInteger, 1, ++/*266245*/ OPC_CheckType, MVT::i32, ++/*266247*/ OPC_MoveParent, ++/*266248*/ OPC_MoveChild, 8, ++/*266250*/ OPC_CheckInteger, 1, ++/*266252*/ OPC_CheckType, MVT::i32, ++/*266254*/ OPC_MoveParent, ++/*266255*/ OPC_MoveChild, 9, ++/*266257*/ OPC_CheckInteger, 1, ++/*266259*/ OPC_CheckType, MVT::i32, ++/*266261*/ OPC_MoveParent, ++/*266262*/ OPC_MoveChild, 10, ++/*266264*/ OPC_CheckInteger, 1, ++/*266266*/ OPC_CheckType, MVT::i32, ++/*266268*/ OPC_MoveParent, ++/*266269*/ OPC_MoveChild, 11, ++/*266271*/ OPC_CheckInteger, 1, ++/*266273*/ OPC_CheckType, MVT::i32, ++/*266275*/ OPC_MoveParent, ++/*266276*/ OPC_MoveChild, 12, ++/*266278*/ OPC_CheckInteger, 1, ++/*266280*/ OPC_CheckType, MVT::i32, ++/*266282*/ OPC_MoveParent, ++/*266283*/ OPC_MoveChild, 13, ++/*266285*/ OPC_CheckInteger, 1, ++/*266287*/ OPC_CheckType, MVT::i32, ++/*266289*/ OPC_MoveParent, ++/*266290*/ OPC_MoveChild, 14, ++/*266292*/ OPC_CheckInteger, 1, ++/*266294*/ OPC_CheckType, MVT::i32, ++/*266296*/ OPC_MoveParent, ++/*266297*/ OPC_MoveChild, 15, ++/*266299*/ OPC_CheckInteger, 1, ++/*266301*/ OPC_CheckType, MVT::i32, ++/*266303*/ OPC_MoveParent, ++/*266304*/ OPC_CheckType, MVT::v16i16, ++/*266306*/ OPC_MoveParent, ++/*266307*/ OPC_CheckType, MVT::v16i16, ++/*266309*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*266311*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a)), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b), LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*266319*/ /*Scope*/ 65|128,2/*321*/, /*->266642*/ ++/*266321*/ OPC_CheckChild0Same, 0, ++/*266323*/ OPC_MoveChild1, ++/*266324*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*266327*/ OPC_CheckChild0Integer, 1, ++/*266329*/ OPC_CheckChild0Type, MVT::i32, ++/*266331*/ OPC_CheckChild1Integer, 1, ++/*266333*/ OPC_CheckChild1Type, MVT::i32, ++/*266335*/ OPC_CheckChild2Integer, 1, ++/*266337*/ OPC_CheckChild2Type, MVT::i32, ++/*266339*/ OPC_CheckChild3Integer, 1, ++/*266341*/ OPC_CheckChild3Type, MVT::i32, ++/*266343*/ OPC_CheckChild4Integer, 1, ++/*266345*/ OPC_CheckChild4Type, MVT::i32, ++/*266347*/ OPC_MoveChild5, ++/*266348*/ OPC_CheckInteger, 1, ++/*266350*/ OPC_CheckType, MVT::i32, ++/*266352*/ OPC_MoveParent, ++/*266353*/ OPC_MoveChild6, ++/*266354*/ OPC_CheckInteger, 1, ++/*266356*/ OPC_CheckType, MVT::i32, ++/*266358*/ OPC_MoveParent, ++/*266359*/ OPC_MoveChild7, ++/*266360*/ OPC_CheckInteger, 1, ++/*266362*/ OPC_CheckType, MVT::i32, ++/*266364*/ OPC_MoveParent, ++/*266365*/ OPC_MoveChild, 8, ++/*266367*/ OPC_CheckInteger, 1, ++/*266369*/ OPC_CheckType, MVT::i32, ++/*266371*/ OPC_MoveParent, ++/*266372*/ OPC_MoveChild, 9, ++/*266374*/ OPC_CheckInteger, 1, ++/*266376*/ OPC_CheckType, MVT::i32, ++/*266378*/ OPC_MoveParent, ++/*266379*/ OPC_MoveChild, 10, ++/*266381*/ OPC_CheckInteger, 1, ++/*266383*/ OPC_CheckType, MVT::i32, ++/*266385*/ OPC_MoveParent, ++/*266386*/ OPC_MoveChild, 11, ++/*266388*/ OPC_CheckInteger, 1, ++/*266390*/ OPC_CheckType, MVT::i32, ++/*266392*/ OPC_MoveParent, ++/*266393*/ OPC_MoveChild, 12, ++/*266395*/ OPC_CheckInteger, 1, ++/*266397*/ OPC_CheckType, MVT::i32, ++/*266399*/ OPC_MoveParent, ++/*266400*/ OPC_MoveChild, 13, ++/*266402*/ OPC_CheckInteger, 1, ++/*266404*/ OPC_CheckType, MVT::i32, ++/*266406*/ OPC_MoveParent, ++/*266407*/ OPC_MoveChild, 14, ++/*266409*/ OPC_CheckInteger, 1, ++/*266411*/ OPC_CheckType, MVT::i32, ++/*266413*/ OPC_MoveParent, ++/*266414*/ OPC_MoveChild, 15, ++/*266416*/ OPC_CheckInteger, 1, ++/*266418*/ OPC_CheckType, MVT::i32, ++/*266420*/ OPC_MoveParent, ++/*266421*/ OPC_MoveParent, ++/*266422*/ OPC_MoveParent, ++/*266423*/ OPC_CheckChild1Same, 1, ++/*266425*/ OPC_MoveParent, ++/*266426*/ OPC_MoveChild1, ++/*266427*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*266430*/ OPC_CheckChild0Integer, 15, ++/*266432*/ OPC_CheckChild0Type, MVT::i32, ++/*266434*/ OPC_CheckChild1Integer, 15, ++/*266436*/ OPC_CheckChild1Type, MVT::i32, ++/*266438*/ OPC_CheckChild2Integer, 15, ++/*266440*/ OPC_CheckChild2Type, MVT::i32, ++/*266442*/ OPC_CheckChild3Integer, 15, ++/*266444*/ OPC_CheckChild3Type, MVT::i32, ++/*266446*/ OPC_CheckChild4Integer, 15, ++/*266448*/ OPC_CheckChild4Type, MVT::i32, ++/*266450*/ OPC_MoveChild5, ++/*266451*/ OPC_CheckInteger, 15, ++/*266453*/ OPC_CheckType, MVT::i32, ++/*266455*/ OPC_MoveParent, ++/*266456*/ OPC_MoveChild6, ++/*266457*/ OPC_CheckInteger, 15, ++/*266459*/ OPC_CheckType, MVT::i32, ++/*266461*/ OPC_MoveParent, ++/*266462*/ OPC_MoveChild7, ++/*266463*/ OPC_CheckInteger, 15, ++/*266465*/ OPC_CheckType, MVT::i32, ++/*266467*/ OPC_MoveParent, ++/*266468*/ OPC_MoveChild, 8, ++/*266470*/ OPC_CheckInteger, 15, ++/*266472*/ OPC_CheckType, MVT::i32, ++/*266474*/ OPC_MoveParent, ++/*266475*/ OPC_MoveChild, 9, ++/*266477*/ OPC_CheckInteger, 15, ++/*266479*/ OPC_CheckType, MVT::i32, ++/*266481*/ OPC_MoveParent, ++/*266482*/ OPC_MoveChild, 10, ++/*266484*/ OPC_CheckInteger, 15, ++/*266486*/ OPC_CheckType, MVT::i32, ++/*266488*/ OPC_MoveParent, ++/*266489*/ OPC_MoveChild, 11, ++/*266491*/ OPC_CheckInteger, 15, ++/*266493*/ OPC_CheckType, MVT::i32, ++/*266495*/ OPC_MoveParent, ++/*266496*/ OPC_MoveChild, 12, ++/*266498*/ OPC_CheckInteger, 15, ++/*266500*/ OPC_CheckType, MVT::i32, ++/*266502*/ OPC_MoveParent, ++/*266503*/ OPC_MoveChild, 13, ++/*266505*/ OPC_CheckInteger, 15, ++/*266507*/ OPC_CheckType, MVT::i32, ++/*266509*/ OPC_MoveParent, ++/*266510*/ OPC_MoveChild, 14, ++/*266512*/ OPC_CheckInteger, 15, ++/*266514*/ OPC_CheckType, MVT::i32, ++/*266516*/ OPC_MoveParent, ++/*266517*/ OPC_MoveChild, 15, ++/*266519*/ OPC_CheckInteger, 15, ++/*266521*/ OPC_CheckType, MVT::i32, ++/*266523*/ OPC_MoveParent, ++/*266524*/ OPC_CheckType, MVT::v16i16, ++/*266526*/ OPC_MoveParent, ++/*266527*/ OPC_MoveParent, ++/*266528*/ OPC_MoveParent, ++/*266529*/ OPC_MoveChild1, ++/*266530*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*266533*/ OPC_CheckChild0Integer, 1, ++/*266535*/ OPC_CheckChild0Type, MVT::i32, ++/*266537*/ OPC_CheckChild1Integer, 1, ++/*266539*/ OPC_CheckChild1Type, MVT::i32, ++/*266541*/ OPC_CheckChild2Integer, 1, ++/*266543*/ OPC_CheckChild2Type, MVT::i32, ++/*266545*/ OPC_CheckChild3Integer, 1, ++/*266547*/ OPC_CheckChild3Type, MVT::i32, ++/*266549*/ OPC_CheckChild4Integer, 1, ++/*266551*/ OPC_CheckChild4Type, MVT::i32, ++/*266553*/ OPC_MoveChild5, ++/*266554*/ OPC_CheckInteger, 1, ++/*266556*/ OPC_CheckType, MVT::i32, ++/*266558*/ OPC_MoveParent, ++/*266559*/ OPC_MoveChild6, ++/*266560*/ OPC_CheckInteger, 1, ++/*266562*/ OPC_CheckType, MVT::i32, ++/*266564*/ OPC_MoveParent, ++/*266565*/ OPC_MoveChild7, ++/*266566*/ OPC_CheckInteger, 1, ++/*266568*/ OPC_CheckType, MVT::i32, ++/*266570*/ OPC_MoveParent, ++/*266571*/ OPC_MoveChild, 8, ++/*266573*/ OPC_CheckInteger, 1, ++/*266575*/ OPC_CheckType, MVT::i32, ++/*266577*/ OPC_MoveParent, ++/*266578*/ OPC_MoveChild, 9, ++/*266580*/ OPC_CheckInteger, 1, ++/*266582*/ OPC_CheckType, MVT::i32, ++/*266584*/ OPC_MoveParent, ++/*266585*/ OPC_MoveChild, 10, ++/*266587*/ OPC_CheckInteger, 1, ++/*266589*/ OPC_CheckType, MVT::i32, ++/*266591*/ OPC_MoveParent, ++/*266592*/ OPC_MoveChild, 11, ++/*266594*/ OPC_CheckInteger, 1, ++/*266596*/ OPC_CheckType, MVT::i32, ++/*266598*/ OPC_MoveParent, ++/*266599*/ OPC_MoveChild, 12, ++/*266601*/ OPC_CheckInteger, 1, ++/*266603*/ OPC_CheckType, MVT::i32, ++/*266605*/ OPC_MoveParent, ++/*266606*/ OPC_MoveChild, 13, ++/*266608*/ OPC_CheckInteger, 1, ++/*266610*/ OPC_CheckType, MVT::i32, ++/*266612*/ OPC_MoveParent, ++/*266613*/ OPC_MoveChild, 14, ++/*266615*/ OPC_CheckInteger, 1, ++/*266617*/ OPC_CheckType, MVT::i32, ++/*266619*/ OPC_MoveParent, ++/*266620*/ OPC_MoveChild, 15, ++/*266622*/ OPC_CheckInteger, 1, ++/*266624*/ OPC_CheckType, MVT::i32, ++/*266626*/ OPC_MoveParent, ++/*266627*/ OPC_CheckType, MVT::v16i16, ++/*266629*/ OPC_MoveParent, ++/*266630*/ OPC_CheckType, MVT::v16i16, ++/*266632*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*266634*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a)), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*266642*/ /*Scope*/ 65|128,2/*321*/, /*->266965*/ ++/*266644*/ OPC_CheckChild0Same, 1, ++/*266646*/ OPC_CheckChild1Same, 0, ++/*266648*/ OPC_MoveParent, ++/*266649*/ OPC_MoveChild1, ++/*266650*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*266653*/ OPC_CheckChild0Integer, 1, ++/*266655*/ OPC_CheckChild0Type, MVT::i32, ++/*266657*/ OPC_CheckChild1Integer, 1, ++/*266659*/ OPC_CheckChild1Type, MVT::i32, ++/*266661*/ OPC_CheckChild2Integer, 1, ++/*266663*/ OPC_CheckChild2Type, MVT::i32, ++/*266665*/ OPC_CheckChild3Integer, 1, ++/*266667*/ OPC_CheckChild3Type, MVT::i32, ++/*266669*/ OPC_CheckChild4Integer, 1, ++/*266671*/ OPC_CheckChild4Type, MVT::i32, ++/*266673*/ OPC_MoveChild5, ++/*266674*/ OPC_CheckInteger, 1, ++/*266676*/ OPC_CheckType, MVT::i32, ++/*266678*/ OPC_MoveParent, ++/*266679*/ OPC_MoveChild6, ++/*266680*/ OPC_CheckInteger, 1, ++/*266682*/ OPC_CheckType, MVT::i32, ++/*266684*/ OPC_MoveParent, ++/*266685*/ OPC_MoveChild7, ++/*266686*/ OPC_CheckInteger, 1, ++/*266688*/ OPC_CheckType, MVT::i32, ++/*266690*/ OPC_MoveParent, ++/*266691*/ OPC_MoveChild, 8, ++/*266693*/ OPC_CheckInteger, 1, ++/*266695*/ OPC_CheckType, MVT::i32, ++/*266697*/ OPC_MoveParent, ++/*266698*/ OPC_MoveChild, 9, ++/*266700*/ OPC_CheckInteger, 1, ++/*266702*/ OPC_CheckType, MVT::i32, ++/*266704*/ OPC_MoveParent, ++/*266705*/ OPC_MoveChild, 10, ++/*266707*/ OPC_CheckInteger, 1, ++/*266709*/ OPC_CheckType, MVT::i32, ++/*266711*/ OPC_MoveParent, ++/*266712*/ OPC_MoveChild, 11, ++/*266714*/ OPC_CheckInteger, 1, ++/*266716*/ OPC_CheckType, MVT::i32, ++/*266718*/ OPC_MoveParent, ++/*266719*/ OPC_MoveChild, 12, ++/*266721*/ OPC_CheckInteger, 1, ++/*266723*/ OPC_CheckType, MVT::i32, ++/*266725*/ OPC_MoveParent, ++/*266726*/ OPC_MoveChild, 13, ++/*266728*/ OPC_CheckInteger, 1, ++/*266730*/ OPC_CheckType, MVT::i32, ++/*266732*/ OPC_MoveParent, ++/*266733*/ OPC_MoveChild, 14, ++/*266735*/ OPC_CheckInteger, 1, ++/*266737*/ OPC_CheckType, MVT::i32, ++/*266739*/ OPC_MoveParent, ++/*266740*/ OPC_MoveChild, 15, ++/*266742*/ OPC_CheckInteger, 1, ++/*266744*/ OPC_CheckType, MVT::i32, ++/*266746*/ OPC_MoveParent, ++/*266747*/ OPC_MoveParent, ++/*266748*/ OPC_MoveParent, ++/*266749*/ OPC_MoveChild1, ++/*266750*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*266753*/ OPC_CheckChild0Integer, 15, ++/*266755*/ OPC_CheckChild0Type, MVT::i32, ++/*266757*/ OPC_CheckChild1Integer, 15, ++/*266759*/ OPC_CheckChild1Type, MVT::i32, ++/*266761*/ OPC_CheckChild2Integer, 15, ++/*266763*/ OPC_CheckChild2Type, MVT::i32, ++/*266765*/ OPC_CheckChild3Integer, 15, ++/*266767*/ OPC_CheckChild3Type, MVT::i32, ++/*266769*/ OPC_CheckChild4Integer, 15, ++/*266771*/ OPC_CheckChild4Type, MVT::i32, ++/*266773*/ OPC_MoveChild5, ++/*266774*/ OPC_CheckInteger, 15, ++/*266776*/ OPC_CheckType, MVT::i32, ++/*266778*/ OPC_MoveParent, ++/*266779*/ OPC_MoveChild6, ++/*266780*/ OPC_CheckInteger, 15, ++/*266782*/ OPC_CheckType, MVT::i32, ++/*266784*/ OPC_MoveParent, ++/*266785*/ OPC_MoveChild7, ++/*266786*/ OPC_CheckInteger, 15, ++/*266788*/ OPC_CheckType, MVT::i32, ++/*266790*/ OPC_MoveParent, ++/*266791*/ OPC_MoveChild, 8, ++/*266793*/ OPC_CheckInteger, 15, ++/*266795*/ OPC_CheckType, MVT::i32, ++/*266797*/ OPC_MoveParent, ++/*266798*/ OPC_MoveChild, 9, ++/*266800*/ OPC_CheckInteger, 15, ++/*266802*/ OPC_CheckType, MVT::i32, ++/*266804*/ OPC_MoveParent, ++/*266805*/ OPC_MoveChild, 10, ++/*266807*/ OPC_CheckInteger, 15, ++/*266809*/ OPC_CheckType, MVT::i32, ++/*266811*/ OPC_MoveParent, ++/*266812*/ OPC_MoveChild, 11, ++/*266814*/ OPC_CheckInteger, 15, ++/*266816*/ OPC_CheckType, MVT::i32, ++/*266818*/ OPC_MoveParent, ++/*266819*/ OPC_MoveChild, 12, ++/*266821*/ OPC_CheckInteger, 15, ++/*266823*/ OPC_CheckType, MVT::i32, ++/*266825*/ OPC_MoveParent, ++/*266826*/ OPC_MoveChild, 13, ++/*266828*/ OPC_CheckInteger, 15, ++/*266830*/ OPC_CheckType, MVT::i32, ++/*266832*/ OPC_MoveParent, ++/*266833*/ OPC_MoveChild, 14, ++/*266835*/ OPC_CheckInteger, 15, ++/*266837*/ OPC_CheckType, MVT::i32, ++/*266839*/ OPC_MoveParent, ++/*266840*/ OPC_MoveChild, 15, ++/*266842*/ OPC_CheckInteger, 15, ++/*266844*/ OPC_CheckType, MVT::i32, ++/*266846*/ OPC_MoveParent, ++/*266847*/ OPC_CheckType, MVT::v16i16, ++/*266849*/ OPC_MoveParent, ++/*266850*/ OPC_MoveParent, ++/*266851*/ OPC_MoveParent, ++/*266852*/ OPC_MoveChild1, ++/*266853*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*266856*/ OPC_CheckChild0Integer, 1, ++/*266858*/ OPC_CheckChild0Type, MVT::i32, ++/*266860*/ OPC_CheckChild1Integer, 1, ++/*266862*/ OPC_CheckChild1Type, MVT::i32, ++/*266864*/ OPC_CheckChild2Integer, 1, ++/*266866*/ OPC_CheckChild2Type, MVT::i32, ++/*266868*/ OPC_CheckChild3Integer, 1, ++/*266870*/ OPC_CheckChild3Type, MVT::i32, ++/*266872*/ OPC_CheckChild4Integer, 1, ++/*266874*/ OPC_CheckChild4Type, MVT::i32, ++/*266876*/ OPC_MoveChild5, ++/*266877*/ OPC_CheckInteger, 1, ++/*266879*/ OPC_CheckType, MVT::i32, ++/*266881*/ OPC_MoveParent, ++/*266882*/ OPC_MoveChild6, ++/*266883*/ OPC_CheckInteger, 1, ++/*266885*/ OPC_CheckType, MVT::i32, ++/*266887*/ OPC_MoveParent, ++/*266888*/ OPC_MoveChild7, ++/*266889*/ OPC_CheckInteger, 1, ++/*266891*/ OPC_CheckType, MVT::i32, ++/*266893*/ OPC_MoveParent, ++/*266894*/ OPC_MoveChild, 8, ++/*266896*/ OPC_CheckInteger, 1, ++/*266898*/ OPC_CheckType, MVT::i32, ++/*266900*/ OPC_MoveParent, ++/*266901*/ OPC_MoveChild, 9, ++/*266903*/ OPC_CheckInteger, 1, ++/*266905*/ OPC_CheckType, MVT::i32, ++/*266907*/ OPC_MoveParent, ++/*266908*/ OPC_MoveChild, 10, ++/*266910*/ OPC_CheckInteger, 1, ++/*266912*/ OPC_CheckType, MVT::i32, ++/*266914*/ OPC_MoveParent, ++/*266915*/ OPC_MoveChild, 11, ++/*266917*/ OPC_CheckInteger, 1, ++/*266919*/ OPC_CheckType, MVT::i32, ++/*266921*/ OPC_MoveParent, ++/*266922*/ OPC_MoveChild, 12, ++/*266924*/ OPC_CheckInteger, 1, ++/*266926*/ OPC_CheckType, MVT::i32, ++/*266928*/ OPC_MoveParent, ++/*266929*/ OPC_MoveChild, 13, ++/*266931*/ OPC_CheckInteger, 1, ++/*266933*/ OPC_CheckType, MVT::i32, ++/*266935*/ OPC_MoveParent, ++/*266936*/ OPC_MoveChild, 14, ++/*266938*/ OPC_CheckInteger, 1, ++/*266940*/ OPC_CheckType, MVT::i32, ++/*266942*/ OPC_MoveParent, ++/*266943*/ OPC_MoveChild, 15, ++/*266945*/ OPC_CheckInteger, 1, ++/*266947*/ OPC_CheckType, MVT::i32, ++/*266949*/ OPC_MoveParent, ++/*266950*/ OPC_CheckType, MVT::v16i16, ++/*266952*/ OPC_MoveParent, ++/*266953*/ OPC_CheckType, MVT::v16i16, ++/*266955*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*266957*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a)), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*266965*/ /*Scope*/ 65|128,2/*321*/, /*->267288*/ ++/*266967*/ OPC_CheckChild0Same, 0, ++/*266969*/ OPC_CheckChild1Same, 1, ++/*266971*/ OPC_MoveParent, ++/*266972*/ OPC_MoveChild1, ++/*266973*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*266976*/ OPC_CheckChild0Integer, 1, ++/*266978*/ OPC_CheckChild0Type, MVT::i32, ++/*266980*/ OPC_CheckChild1Integer, 1, ++/*266982*/ OPC_CheckChild1Type, MVT::i32, ++/*266984*/ OPC_CheckChild2Integer, 1, ++/*266986*/ OPC_CheckChild2Type, MVT::i32, ++/*266988*/ OPC_CheckChild3Integer, 1, ++/*266990*/ OPC_CheckChild3Type, MVT::i32, ++/*266992*/ OPC_CheckChild4Integer, 1, ++/*266994*/ OPC_CheckChild4Type, MVT::i32, ++/*266996*/ OPC_MoveChild5, ++/*266997*/ OPC_CheckInteger, 1, ++/*266999*/ OPC_CheckType, MVT::i32, ++/*267001*/ OPC_MoveParent, ++/*267002*/ OPC_MoveChild6, ++/*267003*/ OPC_CheckInteger, 1, ++/*267005*/ OPC_CheckType, MVT::i32, ++/*267007*/ OPC_MoveParent, ++/*267008*/ OPC_MoveChild7, ++/*267009*/ OPC_CheckInteger, 1, ++/*267011*/ OPC_CheckType, MVT::i32, ++/*267013*/ OPC_MoveParent, ++/*267014*/ OPC_MoveChild, 8, ++/*267016*/ OPC_CheckInteger, 1, ++/*267018*/ OPC_CheckType, MVT::i32, ++/*267020*/ OPC_MoveParent, ++/*267021*/ OPC_MoveChild, 9, ++/*267023*/ OPC_CheckInteger, 1, ++/*267025*/ OPC_CheckType, MVT::i32, ++/*267027*/ OPC_MoveParent, ++/*267028*/ OPC_MoveChild, 10, ++/*267030*/ OPC_CheckInteger, 1, ++/*267032*/ OPC_CheckType, MVT::i32, ++/*267034*/ OPC_MoveParent, ++/*267035*/ OPC_MoveChild, 11, ++/*267037*/ OPC_CheckInteger, 1, ++/*267039*/ OPC_CheckType, MVT::i32, ++/*267041*/ OPC_MoveParent, ++/*267042*/ OPC_MoveChild, 12, ++/*267044*/ OPC_CheckInteger, 1, ++/*267046*/ OPC_CheckType, MVT::i32, ++/*267048*/ OPC_MoveParent, ++/*267049*/ OPC_MoveChild, 13, ++/*267051*/ OPC_CheckInteger, 1, ++/*267053*/ OPC_CheckType, MVT::i32, ++/*267055*/ OPC_MoveParent, ++/*267056*/ OPC_MoveChild, 14, ++/*267058*/ OPC_CheckInteger, 1, ++/*267060*/ OPC_CheckType, MVT::i32, ++/*267062*/ OPC_MoveParent, ++/*267063*/ OPC_MoveChild, 15, ++/*267065*/ OPC_CheckInteger, 1, ++/*267067*/ OPC_CheckType, MVT::i32, ++/*267069*/ OPC_MoveParent, ++/*267070*/ OPC_MoveParent, ++/*267071*/ OPC_MoveParent, ++/*267072*/ OPC_MoveChild1, ++/*267073*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*267076*/ OPC_CheckChild0Integer, 15, ++/*267078*/ OPC_CheckChild0Type, MVT::i32, ++/*267080*/ OPC_CheckChild1Integer, 15, ++/*267082*/ OPC_CheckChild1Type, MVT::i32, ++/*267084*/ OPC_CheckChild2Integer, 15, ++/*267086*/ OPC_CheckChild2Type, MVT::i32, ++/*267088*/ OPC_CheckChild3Integer, 15, ++/*267090*/ OPC_CheckChild3Type, MVT::i32, ++/*267092*/ OPC_CheckChild4Integer, 15, ++/*267094*/ OPC_CheckChild4Type, MVT::i32, ++/*267096*/ OPC_MoveChild5, ++/*267097*/ OPC_CheckInteger, 15, ++/*267099*/ OPC_CheckType, MVT::i32, ++/*267101*/ OPC_MoveParent, ++/*267102*/ OPC_MoveChild6, ++/*267103*/ OPC_CheckInteger, 15, ++/*267105*/ OPC_CheckType, MVT::i32, ++/*267107*/ OPC_MoveParent, ++/*267108*/ OPC_MoveChild7, ++/*267109*/ OPC_CheckInteger, 15, ++/*267111*/ OPC_CheckType, MVT::i32, ++/*267113*/ OPC_MoveParent, ++/*267114*/ OPC_MoveChild, 8, ++/*267116*/ OPC_CheckInteger, 15, ++/*267118*/ OPC_CheckType, MVT::i32, ++/*267120*/ OPC_MoveParent, ++/*267121*/ OPC_MoveChild, 9, ++/*267123*/ OPC_CheckInteger, 15, ++/*267125*/ OPC_CheckType, MVT::i32, ++/*267127*/ OPC_MoveParent, ++/*267128*/ OPC_MoveChild, 10, ++/*267130*/ OPC_CheckInteger, 15, ++/*267132*/ OPC_CheckType, MVT::i32, ++/*267134*/ OPC_MoveParent, ++/*267135*/ OPC_MoveChild, 11, ++/*267137*/ OPC_CheckInteger, 15, ++/*267139*/ OPC_CheckType, MVT::i32, ++/*267141*/ OPC_MoveParent, ++/*267142*/ OPC_MoveChild, 12, ++/*267144*/ OPC_CheckInteger, 15, ++/*267146*/ OPC_CheckType, MVT::i32, ++/*267148*/ OPC_MoveParent, ++/*267149*/ OPC_MoveChild, 13, ++/*267151*/ OPC_CheckInteger, 15, ++/*267153*/ OPC_CheckType, MVT::i32, ++/*267155*/ OPC_MoveParent, ++/*267156*/ OPC_MoveChild, 14, ++/*267158*/ OPC_CheckInteger, 15, ++/*267160*/ OPC_CheckType, MVT::i32, ++/*267162*/ OPC_MoveParent, ++/*267163*/ OPC_MoveChild, 15, ++/*267165*/ OPC_CheckInteger, 15, ++/*267167*/ OPC_CheckType, MVT::i32, ++/*267169*/ OPC_MoveParent, ++/*267170*/ OPC_CheckType, MVT::v16i16, ++/*267172*/ OPC_MoveParent, ++/*267173*/ OPC_MoveParent, ++/*267174*/ OPC_MoveParent, ++/*267175*/ OPC_MoveChild1, ++/*267176*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*267179*/ OPC_CheckChild0Integer, 1, ++/*267181*/ OPC_CheckChild0Type, MVT::i32, ++/*267183*/ OPC_CheckChild1Integer, 1, ++/*267185*/ OPC_CheckChild1Type, MVT::i32, ++/*267187*/ OPC_CheckChild2Integer, 1, ++/*267189*/ OPC_CheckChild2Type, MVT::i32, ++/*267191*/ OPC_CheckChild3Integer, 1, ++/*267193*/ OPC_CheckChild3Type, MVT::i32, ++/*267195*/ OPC_CheckChild4Integer, 1, ++/*267197*/ OPC_CheckChild4Type, MVT::i32, ++/*267199*/ OPC_MoveChild5, ++/*267200*/ OPC_CheckInteger, 1, ++/*267202*/ OPC_CheckType, MVT::i32, ++/*267204*/ OPC_MoveParent, ++/*267205*/ OPC_MoveChild6, ++/*267206*/ OPC_CheckInteger, 1, ++/*267208*/ OPC_CheckType, MVT::i32, ++/*267210*/ OPC_MoveParent, ++/*267211*/ OPC_MoveChild7, ++/*267212*/ OPC_CheckInteger, 1, ++/*267214*/ OPC_CheckType, MVT::i32, ++/*267216*/ OPC_MoveParent, ++/*267217*/ OPC_MoveChild, 8, ++/*267219*/ OPC_CheckInteger, 1, ++/*267221*/ OPC_CheckType, MVT::i32, ++/*267223*/ OPC_MoveParent, ++/*267224*/ OPC_MoveChild, 9, ++/*267226*/ OPC_CheckInteger, 1, ++/*267228*/ OPC_CheckType, MVT::i32, ++/*267230*/ OPC_MoveParent, ++/*267231*/ OPC_MoveChild, 10, ++/*267233*/ OPC_CheckInteger, 1, ++/*267235*/ OPC_CheckType, MVT::i32, ++/*267237*/ OPC_MoveParent, ++/*267238*/ OPC_MoveChild, 11, ++/*267240*/ OPC_CheckInteger, 1, ++/*267242*/ OPC_CheckType, MVT::i32, ++/*267244*/ OPC_MoveParent, ++/*267245*/ OPC_MoveChild, 12, ++/*267247*/ OPC_CheckInteger, 1, ++/*267249*/ OPC_CheckType, MVT::i32, ++/*267251*/ OPC_MoveParent, ++/*267252*/ OPC_MoveChild, 13, ++/*267254*/ OPC_CheckInteger, 1, ++/*267256*/ OPC_CheckType, MVT::i32, ++/*267258*/ OPC_MoveParent, ++/*267259*/ OPC_MoveChild, 14, ++/*267261*/ OPC_CheckInteger, 1, ++/*267263*/ OPC_CheckType, MVT::i32, ++/*267265*/ OPC_MoveParent, ++/*267266*/ OPC_MoveChild, 15, ++/*267268*/ OPC_CheckInteger, 1, ++/*267270*/ OPC_CheckType, MVT::i32, ++/*267272*/ OPC_MoveParent, ++/*267273*/ OPC_CheckType, MVT::v16i16, ++/*267275*/ OPC_MoveParent, ++/*267276*/ OPC_CheckType, MVT::v16i16, ++/*267278*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*267280*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a)), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*267288*/ 0, /*End of Scope*/ ++/*267289*/ 0, // EndSwitchOpcode ++/*267290*/ /*Scope*/ 10|128,5/*650*/, /*->267942*/ ++/*267292*/ OPC_CheckChild0Same, 0, ++/*267294*/ OPC_MoveChild1, ++/*267295*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*267298*/ OPC_Scope, 63|128,2/*319*/, /*->267620*/ // 2 children in Scope ++/*267301*/ OPC_MoveChild0, ++/*267302*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*267305*/ OPC_CheckChild0Integer, 1, ++/*267307*/ OPC_CheckChild0Type, MVT::i32, ++/*267309*/ OPC_CheckChild1Integer, 1, ++/*267311*/ OPC_CheckChild1Type, MVT::i32, ++/*267313*/ OPC_CheckChild2Integer, 1, ++/*267315*/ OPC_CheckChild2Type, MVT::i32, ++/*267317*/ OPC_CheckChild3Integer, 1, ++/*267319*/ OPC_CheckChild3Type, MVT::i32, ++/*267321*/ OPC_CheckChild4Integer, 1, ++/*267323*/ OPC_CheckChild4Type, MVT::i32, ++/*267325*/ OPC_MoveChild5, ++/*267326*/ OPC_CheckInteger, 1, ++/*267328*/ OPC_CheckType, MVT::i32, ++/*267330*/ OPC_MoveParent, ++/*267331*/ OPC_MoveChild6, ++/*267332*/ OPC_CheckInteger, 1, ++/*267334*/ OPC_CheckType, MVT::i32, ++/*267336*/ OPC_MoveParent, ++/*267337*/ OPC_MoveChild7, ++/*267338*/ OPC_CheckInteger, 1, ++/*267340*/ OPC_CheckType, MVT::i32, ++/*267342*/ OPC_MoveParent, ++/*267343*/ OPC_MoveChild, 8, ++/*267345*/ OPC_CheckInteger, 1, ++/*267347*/ OPC_CheckType, MVT::i32, ++/*267349*/ OPC_MoveParent, ++/*267350*/ OPC_MoveChild, 9, ++/*267352*/ OPC_CheckInteger, 1, ++/*267354*/ OPC_CheckType, MVT::i32, ++/*267356*/ OPC_MoveParent, ++/*267357*/ OPC_MoveChild, 10, ++/*267359*/ OPC_CheckInteger, 1, ++/*267361*/ OPC_CheckType, MVT::i32, ++/*267363*/ OPC_MoveParent, ++/*267364*/ OPC_MoveChild, 11, ++/*267366*/ OPC_CheckInteger, 1, ++/*267368*/ OPC_CheckType, MVT::i32, ++/*267370*/ OPC_MoveParent, ++/*267371*/ OPC_MoveChild, 12, ++/*267373*/ OPC_CheckInteger, 1, ++/*267375*/ OPC_CheckType, MVT::i32, ++/*267377*/ OPC_MoveParent, ++/*267378*/ OPC_MoveChild, 13, ++/*267380*/ OPC_CheckInteger, 1, ++/*267382*/ OPC_CheckType, MVT::i32, ++/*267384*/ OPC_MoveParent, ++/*267385*/ OPC_MoveChild, 14, ++/*267387*/ OPC_CheckInteger, 1, ++/*267389*/ OPC_CheckType, MVT::i32, ++/*267391*/ OPC_MoveParent, ++/*267392*/ OPC_MoveChild, 15, ++/*267394*/ OPC_CheckInteger, 1, ++/*267396*/ OPC_CheckType, MVT::i32, ++/*267398*/ OPC_MoveParent, ++/*267399*/ OPC_MoveParent, ++/*267400*/ OPC_CheckChild1Same, 1, ++/*267402*/ OPC_MoveParent, ++/*267403*/ OPC_MoveParent, ++/*267404*/ OPC_MoveChild1, ++/*267405*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*267408*/ OPC_CheckChild0Integer, 15, ++/*267410*/ OPC_CheckChild0Type, MVT::i32, ++/*267412*/ OPC_CheckChild1Integer, 15, ++/*267414*/ OPC_CheckChild1Type, MVT::i32, ++/*267416*/ OPC_CheckChild2Integer, 15, ++/*267418*/ OPC_CheckChild2Type, MVT::i32, ++/*267420*/ OPC_CheckChild3Integer, 15, ++/*267422*/ OPC_CheckChild3Type, MVT::i32, ++/*267424*/ OPC_CheckChild4Integer, 15, ++/*267426*/ OPC_CheckChild4Type, MVT::i32, ++/*267428*/ OPC_MoveChild5, ++/*267429*/ OPC_CheckInteger, 15, ++/*267431*/ OPC_CheckType, MVT::i32, ++/*267433*/ OPC_MoveParent, ++/*267434*/ OPC_MoveChild6, ++/*267435*/ OPC_CheckInteger, 15, ++/*267437*/ OPC_CheckType, MVT::i32, ++/*267439*/ OPC_MoveParent, ++/*267440*/ OPC_MoveChild7, ++/*267441*/ OPC_CheckInteger, 15, ++/*267443*/ OPC_CheckType, MVT::i32, ++/*267445*/ OPC_MoveParent, ++/*267446*/ OPC_MoveChild, 8, ++/*267448*/ OPC_CheckInteger, 15, ++/*267450*/ OPC_CheckType, MVT::i32, ++/*267452*/ OPC_MoveParent, ++/*267453*/ OPC_MoveChild, 9, ++/*267455*/ OPC_CheckInteger, 15, ++/*267457*/ OPC_CheckType, MVT::i32, ++/*267459*/ OPC_MoveParent, ++/*267460*/ OPC_MoveChild, 10, ++/*267462*/ OPC_CheckInteger, 15, ++/*267464*/ OPC_CheckType, MVT::i32, ++/*267466*/ OPC_MoveParent, ++/*267467*/ OPC_MoveChild, 11, ++/*267469*/ OPC_CheckInteger, 15, ++/*267471*/ OPC_CheckType, MVT::i32, ++/*267473*/ OPC_MoveParent, ++/*267474*/ OPC_MoveChild, 12, ++/*267476*/ OPC_CheckInteger, 15, ++/*267478*/ OPC_CheckType, MVT::i32, ++/*267480*/ OPC_MoveParent, ++/*267481*/ OPC_MoveChild, 13, ++/*267483*/ OPC_CheckInteger, 15, ++/*267485*/ OPC_CheckType, MVT::i32, ++/*267487*/ OPC_MoveParent, ++/*267488*/ OPC_MoveChild, 14, ++/*267490*/ OPC_CheckInteger, 15, ++/*267492*/ OPC_CheckType, MVT::i32, ++/*267494*/ OPC_MoveParent, ++/*267495*/ OPC_MoveChild, 15, ++/*267497*/ OPC_CheckInteger, 15, ++/*267499*/ OPC_CheckType, MVT::i32, ++/*267501*/ OPC_MoveParent, ++/*267502*/ OPC_CheckType, MVT::v16i16, ++/*267504*/ OPC_MoveParent, ++/*267505*/ OPC_MoveParent, ++/*267506*/ OPC_MoveParent, ++/*267507*/ OPC_MoveChild1, ++/*267508*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*267511*/ OPC_CheckChild0Integer, 1, ++/*267513*/ OPC_CheckChild0Type, MVT::i32, ++/*267515*/ OPC_CheckChild1Integer, 1, ++/*267517*/ OPC_CheckChild1Type, MVT::i32, ++/*267519*/ OPC_CheckChild2Integer, 1, ++/*267521*/ OPC_CheckChild2Type, MVT::i32, ++/*267523*/ OPC_CheckChild3Integer, 1, ++/*267525*/ OPC_CheckChild3Type, MVT::i32, ++/*267527*/ OPC_CheckChild4Integer, 1, ++/*267529*/ OPC_CheckChild4Type, MVT::i32, ++/*267531*/ OPC_MoveChild5, ++/*267532*/ OPC_CheckInteger, 1, ++/*267534*/ OPC_CheckType, MVT::i32, ++/*267536*/ OPC_MoveParent, ++/*267537*/ OPC_MoveChild6, ++/*267538*/ OPC_CheckInteger, 1, ++/*267540*/ OPC_CheckType, MVT::i32, ++/*267542*/ OPC_MoveParent, ++/*267543*/ OPC_MoveChild7, ++/*267544*/ OPC_CheckInteger, 1, ++/*267546*/ OPC_CheckType, MVT::i32, ++/*267548*/ OPC_MoveParent, ++/*267549*/ OPC_MoveChild, 8, ++/*267551*/ OPC_CheckInteger, 1, ++/*267553*/ OPC_CheckType, MVT::i32, ++/*267555*/ OPC_MoveParent, ++/*267556*/ OPC_MoveChild, 9, ++/*267558*/ OPC_CheckInteger, 1, ++/*267560*/ OPC_CheckType, MVT::i32, ++/*267562*/ OPC_MoveParent, ++/*267563*/ OPC_MoveChild, 10, ++/*267565*/ OPC_CheckInteger, 1, ++/*267567*/ OPC_CheckType, MVT::i32, ++/*267569*/ OPC_MoveParent, ++/*267570*/ OPC_MoveChild, 11, ++/*267572*/ OPC_CheckInteger, 1, ++/*267574*/ OPC_CheckType, MVT::i32, ++/*267576*/ OPC_MoveParent, ++/*267577*/ OPC_MoveChild, 12, ++/*267579*/ OPC_CheckInteger, 1, ++/*267581*/ OPC_CheckType, MVT::i32, ++/*267583*/ OPC_MoveParent, ++/*267584*/ OPC_MoveChild, 13, ++/*267586*/ OPC_CheckInteger, 1, ++/*267588*/ OPC_CheckType, MVT::i32, ++/*267590*/ OPC_MoveParent, ++/*267591*/ OPC_MoveChild, 14, ++/*267593*/ OPC_CheckInteger, 1, ++/*267595*/ OPC_CheckType, MVT::i32, ++/*267597*/ OPC_MoveParent, ++/*267598*/ OPC_MoveChild, 15, ++/*267600*/ OPC_CheckInteger, 1, ++/*267602*/ OPC_CheckType, MVT::i32, ++/*267604*/ OPC_MoveParent, ++/*267605*/ OPC_CheckType, MVT::v16i16, ++/*267607*/ OPC_MoveParent, ++/*267608*/ OPC_CheckType, MVT::v16i16, ++/*267610*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*267612*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a)), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*267620*/ /*Scope*/ 63|128,2/*319*/, /*->267941*/ ++/*267622*/ OPC_CheckChild0Same, 1, ++/*267624*/ OPC_MoveChild1, ++/*267625*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*267628*/ OPC_CheckChild0Integer, 1, ++/*267630*/ OPC_CheckChild0Type, MVT::i32, ++/*267632*/ OPC_CheckChild1Integer, 1, ++/*267634*/ OPC_CheckChild1Type, MVT::i32, ++/*267636*/ OPC_CheckChild2Integer, 1, ++/*267638*/ OPC_CheckChild2Type, MVT::i32, ++/*267640*/ OPC_CheckChild3Integer, 1, ++/*267642*/ OPC_CheckChild3Type, MVT::i32, ++/*267644*/ OPC_CheckChild4Integer, 1, ++/*267646*/ OPC_CheckChild4Type, MVT::i32, ++/*267648*/ OPC_MoveChild5, ++/*267649*/ OPC_CheckInteger, 1, ++/*267651*/ OPC_CheckType, MVT::i32, ++/*267653*/ OPC_MoveParent, ++/*267654*/ OPC_MoveChild6, ++/*267655*/ OPC_CheckInteger, 1, ++/*267657*/ OPC_CheckType, MVT::i32, ++/*267659*/ OPC_MoveParent, ++/*267660*/ OPC_MoveChild7, ++/*267661*/ OPC_CheckInteger, 1, ++/*267663*/ OPC_CheckType, MVT::i32, ++/*267665*/ OPC_MoveParent, ++/*267666*/ OPC_MoveChild, 8, ++/*267668*/ OPC_CheckInteger, 1, ++/*267670*/ OPC_CheckType, MVT::i32, ++/*267672*/ OPC_MoveParent, ++/*267673*/ OPC_MoveChild, 9, ++/*267675*/ OPC_CheckInteger, 1, ++/*267677*/ OPC_CheckType, MVT::i32, ++/*267679*/ OPC_MoveParent, ++/*267680*/ OPC_MoveChild, 10, ++/*267682*/ OPC_CheckInteger, 1, ++/*267684*/ OPC_CheckType, MVT::i32, ++/*267686*/ OPC_MoveParent, ++/*267687*/ OPC_MoveChild, 11, ++/*267689*/ OPC_CheckInteger, 1, ++/*267691*/ OPC_CheckType, MVT::i32, ++/*267693*/ OPC_MoveParent, ++/*267694*/ OPC_MoveChild, 12, ++/*267696*/ OPC_CheckInteger, 1, ++/*267698*/ OPC_CheckType, MVT::i32, ++/*267700*/ OPC_MoveParent, ++/*267701*/ OPC_MoveChild, 13, ++/*267703*/ OPC_CheckInteger, 1, ++/*267705*/ OPC_CheckType, MVT::i32, ++/*267707*/ OPC_MoveParent, ++/*267708*/ OPC_MoveChild, 14, ++/*267710*/ OPC_CheckInteger, 1, ++/*267712*/ OPC_CheckType, MVT::i32, ++/*267714*/ OPC_MoveParent, ++/*267715*/ OPC_MoveChild, 15, ++/*267717*/ OPC_CheckInteger, 1, ++/*267719*/ OPC_CheckType, MVT::i32, ++/*267721*/ OPC_MoveParent, ++/*267722*/ OPC_MoveParent, ++/*267723*/ OPC_MoveParent, ++/*267724*/ OPC_MoveParent, ++/*267725*/ OPC_MoveChild1, ++/*267726*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*267729*/ OPC_CheckChild0Integer, 15, ++/*267731*/ OPC_CheckChild0Type, MVT::i32, ++/*267733*/ OPC_CheckChild1Integer, 15, ++/*267735*/ OPC_CheckChild1Type, MVT::i32, ++/*267737*/ OPC_CheckChild2Integer, 15, ++/*267739*/ OPC_CheckChild2Type, MVT::i32, ++/*267741*/ OPC_CheckChild3Integer, 15, ++/*267743*/ OPC_CheckChild3Type, MVT::i32, ++/*267745*/ OPC_CheckChild4Integer, 15, ++/*267747*/ OPC_CheckChild4Type, MVT::i32, ++/*267749*/ OPC_MoveChild5, ++/*267750*/ OPC_CheckInteger, 15, ++/*267752*/ OPC_CheckType, MVT::i32, ++/*267754*/ OPC_MoveParent, ++/*267755*/ OPC_MoveChild6, ++/*267756*/ OPC_CheckInteger, 15, ++/*267758*/ OPC_CheckType, MVT::i32, ++/*267760*/ OPC_MoveParent, ++/*267761*/ OPC_MoveChild7, ++/*267762*/ OPC_CheckInteger, 15, ++/*267764*/ OPC_CheckType, MVT::i32, ++/*267766*/ OPC_MoveParent, ++/*267767*/ OPC_MoveChild, 8, ++/*267769*/ OPC_CheckInteger, 15, ++/*267771*/ OPC_CheckType, MVT::i32, ++/*267773*/ OPC_MoveParent, ++/*267774*/ OPC_MoveChild, 9, ++/*267776*/ OPC_CheckInteger, 15, ++/*267778*/ OPC_CheckType, MVT::i32, ++/*267780*/ OPC_MoveParent, ++/*267781*/ OPC_MoveChild, 10, ++/*267783*/ OPC_CheckInteger, 15, ++/*267785*/ OPC_CheckType, MVT::i32, ++/*267787*/ OPC_MoveParent, ++/*267788*/ OPC_MoveChild, 11, ++/*267790*/ OPC_CheckInteger, 15, ++/*267792*/ OPC_CheckType, MVT::i32, ++/*267794*/ OPC_MoveParent, ++/*267795*/ OPC_MoveChild, 12, ++/*267797*/ OPC_CheckInteger, 15, ++/*267799*/ OPC_CheckType, MVT::i32, ++/*267801*/ OPC_MoveParent, ++/*267802*/ OPC_MoveChild, 13, ++/*267804*/ OPC_CheckInteger, 15, ++/*267806*/ OPC_CheckType, MVT::i32, ++/*267808*/ OPC_MoveParent, ++/*267809*/ OPC_MoveChild, 14, ++/*267811*/ OPC_CheckInteger, 15, ++/*267813*/ OPC_CheckType, MVT::i32, ++/*267815*/ OPC_MoveParent, ++/*267816*/ OPC_MoveChild, 15, ++/*267818*/ OPC_CheckInteger, 15, ++/*267820*/ OPC_CheckType, MVT::i32, ++/*267822*/ OPC_MoveParent, ++/*267823*/ OPC_CheckType, MVT::v16i16, ++/*267825*/ OPC_MoveParent, ++/*267826*/ OPC_MoveParent, ++/*267827*/ OPC_MoveParent, ++/*267828*/ OPC_MoveChild1, ++/*267829*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*267832*/ OPC_CheckChild0Integer, 1, ++/*267834*/ OPC_CheckChild0Type, MVT::i32, ++/*267836*/ OPC_CheckChild1Integer, 1, ++/*267838*/ OPC_CheckChild1Type, MVT::i32, ++/*267840*/ OPC_CheckChild2Integer, 1, ++/*267842*/ OPC_CheckChild2Type, MVT::i32, ++/*267844*/ OPC_CheckChild3Integer, 1, ++/*267846*/ OPC_CheckChild3Type, MVT::i32, ++/*267848*/ OPC_CheckChild4Integer, 1, ++/*267850*/ OPC_CheckChild4Type, MVT::i32, ++/*267852*/ OPC_MoveChild5, ++/*267853*/ OPC_CheckInteger, 1, ++/*267855*/ OPC_CheckType, MVT::i32, ++/*267857*/ OPC_MoveParent, ++/*267858*/ OPC_MoveChild6, ++/*267859*/ OPC_CheckInteger, 1, ++/*267861*/ OPC_CheckType, MVT::i32, ++/*267863*/ OPC_MoveParent, ++/*267864*/ OPC_MoveChild7, ++/*267865*/ OPC_CheckInteger, 1, ++/*267867*/ OPC_CheckType, MVT::i32, ++/*267869*/ OPC_MoveParent, ++/*267870*/ OPC_MoveChild, 8, ++/*267872*/ OPC_CheckInteger, 1, ++/*267874*/ OPC_CheckType, MVT::i32, ++/*267876*/ OPC_MoveParent, ++/*267877*/ OPC_MoveChild, 9, ++/*267879*/ OPC_CheckInteger, 1, ++/*267881*/ OPC_CheckType, MVT::i32, ++/*267883*/ OPC_MoveParent, ++/*267884*/ OPC_MoveChild, 10, ++/*267886*/ OPC_CheckInteger, 1, ++/*267888*/ OPC_CheckType, MVT::i32, ++/*267890*/ OPC_MoveParent, ++/*267891*/ OPC_MoveChild, 11, ++/*267893*/ OPC_CheckInteger, 1, ++/*267895*/ OPC_CheckType, MVT::i32, ++/*267897*/ OPC_MoveParent, ++/*267898*/ OPC_MoveChild, 12, ++/*267900*/ OPC_CheckInteger, 1, ++/*267902*/ OPC_CheckType, MVT::i32, ++/*267904*/ OPC_MoveParent, ++/*267905*/ OPC_MoveChild, 13, ++/*267907*/ OPC_CheckInteger, 1, ++/*267909*/ OPC_CheckType, MVT::i32, ++/*267911*/ OPC_MoveParent, ++/*267912*/ OPC_MoveChild, 14, ++/*267914*/ OPC_CheckInteger, 1, ++/*267916*/ OPC_CheckType, MVT::i32, ++/*267918*/ OPC_MoveParent, ++/*267919*/ OPC_MoveChild, 15, ++/*267921*/ OPC_CheckInteger, 1, ++/*267923*/ OPC_CheckType, MVT::i32, ++/*267925*/ OPC_MoveParent, ++/*267926*/ OPC_CheckType, MVT::v16i16, ++/*267928*/ OPC_MoveParent, ++/*267929*/ OPC_CheckType, MVT::v16i16, ++/*267931*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*267933*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a)), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*267941*/ 0, /*End of Scope*/ ++/*267942*/ /*Scope*/ 10|128,5/*650*/, /*->268594*/ ++/*267944*/ OPC_CheckChild0Same, 1, ++/*267946*/ OPC_MoveChild1, ++/*267947*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*267950*/ OPC_Scope, 63|128,2/*319*/, /*->268272*/ // 2 children in Scope ++/*267953*/ OPC_MoveChild0, ++/*267954*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*267957*/ OPC_CheckChild0Integer, 1, ++/*267959*/ OPC_CheckChild0Type, MVT::i32, ++/*267961*/ OPC_CheckChild1Integer, 1, ++/*267963*/ OPC_CheckChild1Type, MVT::i32, ++/*267965*/ OPC_CheckChild2Integer, 1, ++/*267967*/ OPC_CheckChild2Type, MVT::i32, ++/*267969*/ OPC_CheckChild3Integer, 1, ++/*267971*/ OPC_CheckChild3Type, MVT::i32, ++/*267973*/ OPC_CheckChild4Integer, 1, ++/*267975*/ OPC_CheckChild4Type, MVT::i32, ++/*267977*/ OPC_MoveChild5, ++/*267978*/ OPC_CheckInteger, 1, ++/*267980*/ OPC_CheckType, MVT::i32, ++/*267982*/ OPC_MoveParent, ++/*267983*/ OPC_MoveChild6, ++/*267984*/ OPC_CheckInteger, 1, ++/*267986*/ OPC_CheckType, MVT::i32, ++/*267988*/ OPC_MoveParent, ++/*267989*/ OPC_MoveChild7, ++/*267990*/ OPC_CheckInteger, 1, ++/*267992*/ OPC_CheckType, MVT::i32, ++/*267994*/ OPC_MoveParent, ++/*267995*/ OPC_MoveChild, 8, ++/*267997*/ OPC_CheckInteger, 1, ++/*267999*/ OPC_CheckType, MVT::i32, ++/*268001*/ OPC_MoveParent, ++/*268002*/ OPC_MoveChild, 9, ++/*268004*/ OPC_CheckInteger, 1, ++/*268006*/ OPC_CheckType, MVT::i32, ++/*268008*/ OPC_MoveParent, ++/*268009*/ OPC_MoveChild, 10, ++/*268011*/ OPC_CheckInteger, 1, ++/*268013*/ OPC_CheckType, MVT::i32, ++/*268015*/ OPC_MoveParent, ++/*268016*/ OPC_MoveChild, 11, ++/*268018*/ OPC_CheckInteger, 1, ++/*268020*/ OPC_CheckType, MVT::i32, ++/*268022*/ OPC_MoveParent, ++/*268023*/ OPC_MoveChild, 12, ++/*268025*/ OPC_CheckInteger, 1, ++/*268027*/ OPC_CheckType, MVT::i32, ++/*268029*/ OPC_MoveParent, ++/*268030*/ OPC_MoveChild, 13, ++/*268032*/ OPC_CheckInteger, 1, ++/*268034*/ OPC_CheckType, MVT::i32, ++/*268036*/ OPC_MoveParent, ++/*268037*/ OPC_MoveChild, 14, ++/*268039*/ OPC_CheckInteger, 1, ++/*268041*/ OPC_CheckType, MVT::i32, ++/*268043*/ OPC_MoveParent, ++/*268044*/ OPC_MoveChild, 15, ++/*268046*/ OPC_CheckInteger, 1, ++/*268048*/ OPC_CheckType, MVT::i32, ++/*268050*/ OPC_MoveParent, ++/*268051*/ OPC_MoveParent, ++/*268052*/ OPC_CheckChild1Same, 0, ++/*268054*/ OPC_MoveParent, ++/*268055*/ OPC_MoveParent, ++/*268056*/ OPC_MoveChild1, ++/*268057*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*268060*/ OPC_CheckChild0Integer, 15, ++/*268062*/ OPC_CheckChild0Type, MVT::i32, ++/*268064*/ OPC_CheckChild1Integer, 15, ++/*268066*/ OPC_CheckChild1Type, MVT::i32, ++/*268068*/ OPC_CheckChild2Integer, 15, ++/*268070*/ OPC_CheckChild2Type, MVT::i32, ++/*268072*/ OPC_CheckChild3Integer, 15, ++/*268074*/ OPC_CheckChild3Type, MVT::i32, ++/*268076*/ OPC_CheckChild4Integer, 15, ++/*268078*/ OPC_CheckChild4Type, MVT::i32, ++/*268080*/ OPC_MoveChild5, ++/*268081*/ OPC_CheckInteger, 15, ++/*268083*/ OPC_CheckType, MVT::i32, ++/*268085*/ OPC_MoveParent, ++/*268086*/ OPC_MoveChild6, ++/*268087*/ OPC_CheckInteger, 15, ++/*268089*/ OPC_CheckType, MVT::i32, ++/*268091*/ OPC_MoveParent, ++/*268092*/ OPC_MoveChild7, ++/*268093*/ OPC_CheckInteger, 15, ++/*268095*/ OPC_CheckType, MVT::i32, ++/*268097*/ OPC_MoveParent, ++/*268098*/ OPC_MoveChild, 8, ++/*268100*/ OPC_CheckInteger, 15, ++/*268102*/ OPC_CheckType, MVT::i32, ++/*268104*/ OPC_MoveParent, ++/*268105*/ OPC_MoveChild, 9, ++/*268107*/ OPC_CheckInteger, 15, ++/*268109*/ OPC_CheckType, MVT::i32, ++/*268111*/ OPC_MoveParent, ++/*268112*/ OPC_MoveChild, 10, ++/*268114*/ OPC_CheckInteger, 15, ++/*268116*/ OPC_CheckType, MVT::i32, ++/*268118*/ OPC_MoveParent, ++/*268119*/ OPC_MoveChild, 11, ++/*268121*/ OPC_CheckInteger, 15, ++/*268123*/ OPC_CheckType, MVT::i32, ++/*268125*/ OPC_MoveParent, ++/*268126*/ OPC_MoveChild, 12, ++/*268128*/ OPC_CheckInteger, 15, ++/*268130*/ OPC_CheckType, MVT::i32, ++/*268132*/ OPC_MoveParent, ++/*268133*/ OPC_MoveChild, 13, ++/*268135*/ OPC_CheckInteger, 15, ++/*268137*/ OPC_CheckType, MVT::i32, ++/*268139*/ OPC_MoveParent, ++/*268140*/ OPC_MoveChild, 14, ++/*268142*/ OPC_CheckInteger, 15, ++/*268144*/ OPC_CheckType, MVT::i32, ++/*268146*/ OPC_MoveParent, ++/*268147*/ OPC_MoveChild, 15, ++/*268149*/ OPC_CheckInteger, 15, ++/*268151*/ OPC_CheckType, MVT::i32, ++/*268153*/ OPC_MoveParent, ++/*268154*/ OPC_CheckType, MVT::v16i16, ++/*268156*/ OPC_MoveParent, ++/*268157*/ OPC_MoveParent, ++/*268158*/ OPC_MoveParent, ++/*268159*/ OPC_MoveChild1, ++/*268160*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*268163*/ OPC_CheckChild0Integer, 1, ++/*268165*/ OPC_CheckChild0Type, MVT::i32, ++/*268167*/ OPC_CheckChild1Integer, 1, ++/*268169*/ OPC_CheckChild1Type, MVT::i32, ++/*268171*/ OPC_CheckChild2Integer, 1, ++/*268173*/ OPC_CheckChild2Type, MVT::i32, ++/*268175*/ OPC_CheckChild3Integer, 1, ++/*268177*/ OPC_CheckChild3Type, MVT::i32, ++/*268179*/ OPC_CheckChild4Integer, 1, ++/*268181*/ OPC_CheckChild4Type, MVT::i32, ++/*268183*/ OPC_MoveChild5, ++/*268184*/ OPC_CheckInteger, 1, ++/*268186*/ OPC_CheckType, MVT::i32, ++/*268188*/ OPC_MoveParent, ++/*268189*/ OPC_MoveChild6, ++/*268190*/ OPC_CheckInteger, 1, ++/*268192*/ OPC_CheckType, MVT::i32, ++/*268194*/ OPC_MoveParent, ++/*268195*/ OPC_MoveChild7, ++/*268196*/ OPC_CheckInteger, 1, ++/*268198*/ OPC_CheckType, MVT::i32, ++/*268200*/ OPC_MoveParent, ++/*268201*/ OPC_MoveChild, 8, ++/*268203*/ OPC_CheckInteger, 1, ++/*268205*/ OPC_CheckType, MVT::i32, ++/*268207*/ OPC_MoveParent, ++/*268208*/ OPC_MoveChild, 9, ++/*268210*/ OPC_CheckInteger, 1, ++/*268212*/ OPC_CheckType, MVT::i32, ++/*268214*/ OPC_MoveParent, ++/*268215*/ OPC_MoveChild, 10, ++/*268217*/ OPC_CheckInteger, 1, ++/*268219*/ OPC_CheckType, MVT::i32, ++/*268221*/ OPC_MoveParent, ++/*268222*/ OPC_MoveChild, 11, ++/*268224*/ OPC_CheckInteger, 1, ++/*268226*/ OPC_CheckType, MVT::i32, ++/*268228*/ OPC_MoveParent, ++/*268229*/ OPC_MoveChild, 12, ++/*268231*/ OPC_CheckInteger, 1, ++/*268233*/ OPC_CheckType, MVT::i32, ++/*268235*/ OPC_MoveParent, ++/*268236*/ OPC_MoveChild, 13, ++/*268238*/ OPC_CheckInteger, 1, ++/*268240*/ OPC_CheckType, MVT::i32, ++/*268242*/ OPC_MoveParent, ++/*268243*/ OPC_MoveChild, 14, ++/*268245*/ OPC_CheckInteger, 1, ++/*268247*/ OPC_CheckType, MVT::i32, ++/*268249*/ OPC_MoveParent, ++/*268250*/ OPC_MoveChild, 15, ++/*268252*/ OPC_CheckInteger, 1, ++/*268254*/ OPC_CheckType, MVT::i32, ++/*268256*/ OPC_MoveParent, ++/*268257*/ OPC_CheckType, MVT::v16i16, ++/*268259*/ OPC_MoveParent, ++/*268260*/ OPC_CheckType, MVT::v16i16, ++/*268262*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*268264*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a)), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*268272*/ /*Scope*/ 63|128,2/*319*/, /*->268593*/ ++/*268274*/ OPC_CheckChild0Same, 0, ++/*268276*/ OPC_MoveChild1, ++/*268277*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*268280*/ OPC_CheckChild0Integer, 1, ++/*268282*/ OPC_CheckChild0Type, MVT::i32, ++/*268284*/ OPC_CheckChild1Integer, 1, ++/*268286*/ OPC_CheckChild1Type, MVT::i32, ++/*268288*/ OPC_CheckChild2Integer, 1, ++/*268290*/ OPC_CheckChild2Type, MVT::i32, ++/*268292*/ OPC_CheckChild3Integer, 1, ++/*268294*/ OPC_CheckChild3Type, MVT::i32, ++/*268296*/ OPC_CheckChild4Integer, 1, ++/*268298*/ OPC_CheckChild4Type, MVT::i32, ++/*268300*/ OPC_MoveChild5, ++/*268301*/ OPC_CheckInteger, 1, ++/*268303*/ OPC_CheckType, MVT::i32, ++/*268305*/ OPC_MoveParent, ++/*268306*/ OPC_MoveChild6, ++/*268307*/ OPC_CheckInteger, 1, ++/*268309*/ OPC_CheckType, MVT::i32, ++/*268311*/ OPC_MoveParent, ++/*268312*/ OPC_MoveChild7, ++/*268313*/ OPC_CheckInteger, 1, ++/*268315*/ OPC_CheckType, MVT::i32, ++/*268317*/ OPC_MoveParent, ++/*268318*/ OPC_MoveChild, 8, ++/*268320*/ OPC_CheckInteger, 1, ++/*268322*/ OPC_CheckType, MVT::i32, ++/*268324*/ OPC_MoveParent, ++/*268325*/ OPC_MoveChild, 9, ++/*268327*/ OPC_CheckInteger, 1, ++/*268329*/ OPC_CheckType, MVT::i32, ++/*268331*/ OPC_MoveParent, ++/*268332*/ OPC_MoveChild, 10, ++/*268334*/ OPC_CheckInteger, 1, ++/*268336*/ OPC_CheckType, MVT::i32, ++/*268338*/ OPC_MoveParent, ++/*268339*/ OPC_MoveChild, 11, ++/*268341*/ OPC_CheckInteger, 1, ++/*268343*/ OPC_CheckType, MVT::i32, ++/*268345*/ OPC_MoveParent, ++/*268346*/ OPC_MoveChild, 12, ++/*268348*/ OPC_CheckInteger, 1, ++/*268350*/ OPC_CheckType, MVT::i32, ++/*268352*/ OPC_MoveParent, ++/*268353*/ OPC_MoveChild, 13, ++/*268355*/ OPC_CheckInteger, 1, ++/*268357*/ OPC_CheckType, MVT::i32, ++/*268359*/ OPC_MoveParent, ++/*268360*/ OPC_MoveChild, 14, ++/*268362*/ OPC_CheckInteger, 1, ++/*268364*/ OPC_CheckType, MVT::i32, ++/*268366*/ OPC_MoveParent, ++/*268367*/ OPC_MoveChild, 15, ++/*268369*/ OPC_CheckInteger, 1, ++/*268371*/ OPC_CheckType, MVT::i32, ++/*268373*/ OPC_MoveParent, ++/*268374*/ OPC_MoveParent, ++/*268375*/ OPC_MoveParent, ++/*268376*/ OPC_MoveParent, ++/*268377*/ OPC_MoveChild1, ++/*268378*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*268381*/ OPC_CheckChild0Integer, 15, ++/*268383*/ OPC_CheckChild0Type, MVT::i32, ++/*268385*/ OPC_CheckChild1Integer, 15, ++/*268387*/ OPC_CheckChild1Type, MVT::i32, ++/*268389*/ OPC_CheckChild2Integer, 15, ++/*268391*/ OPC_CheckChild2Type, MVT::i32, ++/*268393*/ OPC_CheckChild3Integer, 15, ++/*268395*/ OPC_CheckChild3Type, MVT::i32, ++/*268397*/ OPC_CheckChild4Integer, 15, ++/*268399*/ OPC_CheckChild4Type, MVT::i32, ++/*268401*/ OPC_MoveChild5, ++/*268402*/ OPC_CheckInteger, 15, ++/*268404*/ OPC_CheckType, MVT::i32, ++/*268406*/ OPC_MoveParent, ++/*268407*/ OPC_MoveChild6, ++/*268408*/ OPC_CheckInteger, 15, ++/*268410*/ OPC_CheckType, MVT::i32, ++/*268412*/ OPC_MoveParent, ++/*268413*/ OPC_MoveChild7, ++/*268414*/ OPC_CheckInteger, 15, ++/*268416*/ OPC_CheckType, MVT::i32, ++/*268418*/ OPC_MoveParent, ++/*268419*/ OPC_MoveChild, 8, ++/*268421*/ OPC_CheckInteger, 15, ++/*268423*/ OPC_CheckType, MVT::i32, ++/*268425*/ OPC_MoveParent, ++/*268426*/ OPC_MoveChild, 9, ++/*268428*/ OPC_CheckInteger, 15, ++/*268430*/ OPC_CheckType, MVT::i32, ++/*268432*/ OPC_MoveParent, ++/*268433*/ OPC_MoveChild, 10, ++/*268435*/ OPC_CheckInteger, 15, ++/*268437*/ OPC_CheckType, MVT::i32, ++/*268439*/ OPC_MoveParent, ++/*268440*/ OPC_MoveChild, 11, ++/*268442*/ OPC_CheckInteger, 15, ++/*268444*/ OPC_CheckType, MVT::i32, ++/*268446*/ OPC_MoveParent, ++/*268447*/ OPC_MoveChild, 12, ++/*268449*/ OPC_CheckInteger, 15, ++/*268451*/ OPC_CheckType, MVT::i32, ++/*268453*/ OPC_MoveParent, ++/*268454*/ OPC_MoveChild, 13, ++/*268456*/ OPC_CheckInteger, 15, ++/*268458*/ OPC_CheckType, MVT::i32, ++/*268460*/ OPC_MoveParent, ++/*268461*/ OPC_MoveChild, 14, ++/*268463*/ OPC_CheckInteger, 15, ++/*268465*/ OPC_CheckType, MVT::i32, ++/*268467*/ OPC_MoveParent, ++/*268468*/ OPC_MoveChild, 15, ++/*268470*/ OPC_CheckInteger, 15, ++/*268472*/ OPC_CheckType, MVT::i32, ++/*268474*/ OPC_MoveParent, ++/*268475*/ OPC_CheckType, MVT::v16i16, ++/*268477*/ OPC_MoveParent, ++/*268478*/ OPC_MoveParent, ++/*268479*/ OPC_MoveParent, ++/*268480*/ OPC_MoveChild1, ++/*268481*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*268484*/ OPC_CheckChild0Integer, 1, ++/*268486*/ OPC_CheckChild0Type, MVT::i32, ++/*268488*/ OPC_CheckChild1Integer, 1, ++/*268490*/ OPC_CheckChild1Type, MVT::i32, ++/*268492*/ OPC_CheckChild2Integer, 1, ++/*268494*/ OPC_CheckChild2Type, MVT::i32, ++/*268496*/ OPC_CheckChild3Integer, 1, ++/*268498*/ OPC_CheckChild3Type, MVT::i32, ++/*268500*/ OPC_CheckChild4Integer, 1, ++/*268502*/ OPC_CheckChild4Type, MVT::i32, ++/*268504*/ OPC_MoveChild5, ++/*268505*/ OPC_CheckInteger, 1, ++/*268507*/ OPC_CheckType, MVT::i32, ++/*268509*/ OPC_MoveParent, ++/*268510*/ OPC_MoveChild6, ++/*268511*/ OPC_CheckInteger, 1, ++/*268513*/ OPC_CheckType, MVT::i32, ++/*268515*/ OPC_MoveParent, ++/*268516*/ OPC_MoveChild7, ++/*268517*/ OPC_CheckInteger, 1, ++/*268519*/ OPC_CheckType, MVT::i32, ++/*268521*/ OPC_MoveParent, ++/*268522*/ OPC_MoveChild, 8, ++/*268524*/ OPC_CheckInteger, 1, ++/*268526*/ OPC_CheckType, MVT::i32, ++/*268528*/ OPC_MoveParent, ++/*268529*/ OPC_MoveChild, 9, ++/*268531*/ OPC_CheckInteger, 1, ++/*268533*/ OPC_CheckType, MVT::i32, ++/*268535*/ OPC_MoveParent, ++/*268536*/ OPC_MoveChild, 10, ++/*268538*/ OPC_CheckInteger, 1, ++/*268540*/ OPC_CheckType, MVT::i32, ++/*268542*/ OPC_MoveParent, ++/*268543*/ OPC_MoveChild, 11, ++/*268545*/ OPC_CheckInteger, 1, ++/*268547*/ OPC_CheckType, MVT::i32, ++/*268549*/ OPC_MoveParent, ++/*268550*/ OPC_MoveChild, 12, ++/*268552*/ OPC_CheckInteger, 1, ++/*268554*/ OPC_CheckType, MVT::i32, ++/*268556*/ OPC_MoveParent, ++/*268557*/ OPC_MoveChild, 13, ++/*268559*/ OPC_CheckInteger, 1, ++/*268561*/ OPC_CheckType, MVT::i32, ++/*268563*/ OPC_MoveParent, ++/*268564*/ OPC_MoveChild, 14, ++/*268566*/ OPC_CheckInteger, 1, ++/*268568*/ OPC_CheckType, MVT::i32, ++/*268570*/ OPC_MoveParent, ++/*268571*/ OPC_MoveChild, 15, ++/*268573*/ OPC_CheckInteger, 1, ++/*268575*/ OPC_CheckType, MVT::i32, ++/*268577*/ OPC_MoveParent, ++/*268578*/ OPC_CheckType, MVT::v16i16, ++/*268580*/ OPC_MoveParent, ++/*268581*/ OPC_CheckType, MVT::v16i16, ++/*268583*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*268585*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a)), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*268593*/ 0, /*End of Scope*/ ++/*268594*/ /*Scope*/ 41|128,4/*553*/, /*->269149*/ ++/*268596*/ OPC_MoveChild0, ++/*268597*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*268600*/ OPC_CheckChild0Integer, 1, ++/*268602*/ OPC_CheckChild0Type, MVT::i32, ++/*268604*/ OPC_CheckChild1Integer, 1, ++/*268606*/ OPC_CheckChild1Type, MVT::i32, ++/*268608*/ OPC_CheckChild2Integer, 1, ++/*268610*/ OPC_CheckChild2Type, MVT::i32, ++/*268612*/ OPC_CheckChild3Integer, 1, ++/*268614*/ OPC_CheckChild3Type, MVT::i32, ++/*268616*/ OPC_CheckChild4Integer, 1, ++/*268618*/ OPC_CheckChild4Type, MVT::i32, ++/*268620*/ OPC_MoveChild5, ++/*268621*/ OPC_CheckInteger, 1, ++/*268623*/ OPC_CheckType, MVT::i32, ++/*268625*/ OPC_MoveParent, ++/*268626*/ OPC_MoveChild6, ++/*268627*/ OPC_CheckInteger, 1, ++/*268629*/ OPC_CheckType, MVT::i32, ++/*268631*/ OPC_MoveParent, ++/*268632*/ OPC_MoveChild7, ++/*268633*/ OPC_CheckInteger, 1, ++/*268635*/ OPC_CheckType, MVT::i32, ++/*268637*/ OPC_MoveParent, ++/*268638*/ OPC_MoveChild, 8, ++/*268640*/ OPC_CheckInteger, 1, ++/*268642*/ OPC_CheckType, MVT::i32, ++/*268644*/ OPC_MoveParent, ++/*268645*/ OPC_MoveChild, 9, ++/*268647*/ OPC_CheckInteger, 1, ++/*268649*/ OPC_CheckType, MVT::i32, ++/*268651*/ OPC_MoveParent, ++/*268652*/ OPC_MoveChild, 10, ++/*268654*/ OPC_CheckInteger, 1, ++/*268656*/ OPC_CheckType, MVT::i32, ++/*268658*/ OPC_MoveParent, ++/*268659*/ OPC_MoveChild, 11, ++/*268661*/ OPC_CheckInteger, 1, ++/*268663*/ OPC_CheckType, MVT::i32, ++/*268665*/ OPC_MoveParent, ++/*268666*/ OPC_MoveChild, 12, ++/*268668*/ OPC_CheckInteger, 1, ++/*268670*/ OPC_CheckType, MVT::i32, ++/*268672*/ OPC_MoveParent, ++/*268673*/ OPC_MoveChild, 13, ++/*268675*/ OPC_CheckInteger, 1, ++/*268677*/ OPC_CheckType, MVT::i32, ++/*268679*/ OPC_MoveParent, ++/*268680*/ OPC_MoveChild, 14, ++/*268682*/ OPC_CheckInteger, 1, ++/*268684*/ OPC_CheckType, MVT::i32, ++/*268686*/ OPC_MoveParent, ++/*268687*/ OPC_MoveChild, 15, ++/*268689*/ OPC_CheckInteger, 1, ++/*268691*/ OPC_CheckType, MVT::i32, ++/*268693*/ OPC_MoveParent, ++/*268694*/ OPC_MoveParent, ++/*268695*/ OPC_MoveChild1, ++/*268696*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*268699*/ OPC_Scope, 94|128,1/*222*/, /*->268924*/ // 2 children in Scope ++/*268702*/ OPC_CheckChild0Same, 1, ++/*268704*/ OPC_CheckChild1Same, 0, ++/*268706*/ OPC_MoveParent, ++/*268707*/ OPC_MoveParent, ++/*268708*/ OPC_MoveChild1, ++/*268709*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*268712*/ OPC_CheckChild0Integer, 15, ++/*268714*/ OPC_CheckChild0Type, MVT::i32, ++/*268716*/ OPC_CheckChild1Integer, 15, ++/*268718*/ OPC_CheckChild1Type, MVT::i32, ++/*268720*/ OPC_CheckChild2Integer, 15, ++/*268722*/ OPC_CheckChild2Type, MVT::i32, ++/*268724*/ OPC_CheckChild3Integer, 15, ++/*268726*/ OPC_CheckChild3Type, MVT::i32, ++/*268728*/ OPC_CheckChild4Integer, 15, ++/*268730*/ OPC_CheckChild4Type, MVT::i32, ++/*268732*/ OPC_MoveChild5, ++/*268733*/ OPC_CheckInteger, 15, ++/*268735*/ OPC_CheckType, MVT::i32, ++/*268737*/ OPC_MoveParent, ++/*268738*/ OPC_MoveChild6, ++/*268739*/ OPC_CheckInteger, 15, ++/*268741*/ OPC_CheckType, MVT::i32, ++/*268743*/ OPC_MoveParent, ++/*268744*/ OPC_MoveChild7, ++/*268745*/ OPC_CheckInteger, 15, ++/*268747*/ OPC_CheckType, MVT::i32, ++/*268749*/ OPC_MoveParent, ++/*268750*/ OPC_MoveChild, 8, ++/*268752*/ OPC_CheckInteger, 15, ++/*268754*/ OPC_CheckType, MVT::i32, ++/*268756*/ OPC_MoveParent, ++/*268757*/ OPC_MoveChild, 9, ++/*268759*/ OPC_CheckInteger, 15, ++/*268761*/ OPC_CheckType, MVT::i32, ++/*268763*/ OPC_MoveParent, ++/*268764*/ OPC_MoveChild, 10, ++/*268766*/ OPC_CheckInteger, 15, ++/*268768*/ OPC_CheckType, MVT::i32, ++/*268770*/ OPC_MoveParent, ++/*268771*/ OPC_MoveChild, 11, ++/*268773*/ OPC_CheckInteger, 15, ++/*268775*/ OPC_CheckType, MVT::i32, ++/*268777*/ OPC_MoveParent, ++/*268778*/ OPC_MoveChild, 12, ++/*268780*/ OPC_CheckInteger, 15, ++/*268782*/ OPC_CheckType, MVT::i32, ++/*268784*/ OPC_MoveParent, ++/*268785*/ OPC_MoveChild, 13, ++/*268787*/ OPC_CheckInteger, 15, ++/*268789*/ OPC_CheckType, MVT::i32, ++/*268791*/ OPC_MoveParent, ++/*268792*/ OPC_MoveChild, 14, ++/*268794*/ OPC_CheckInteger, 15, ++/*268796*/ OPC_CheckType, MVT::i32, ++/*268798*/ OPC_MoveParent, ++/*268799*/ OPC_MoveChild, 15, ++/*268801*/ OPC_CheckInteger, 15, ++/*268803*/ OPC_CheckType, MVT::i32, ++/*268805*/ OPC_MoveParent, ++/*268806*/ OPC_CheckType, MVT::v16i16, ++/*268808*/ OPC_MoveParent, ++/*268809*/ OPC_MoveParent, ++/*268810*/ OPC_MoveParent, ++/*268811*/ OPC_MoveChild1, ++/*268812*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*268815*/ OPC_CheckChild0Integer, 1, ++/*268817*/ OPC_CheckChild0Type, MVT::i32, ++/*268819*/ OPC_CheckChild1Integer, 1, ++/*268821*/ OPC_CheckChild1Type, MVT::i32, ++/*268823*/ OPC_CheckChild2Integer, 1, ++/*268825*/ OPC_CheckChild2Type, MVT::i32, ++/*268827*/ OPC_CheckChild3Integer, 1, ++/*268829*/ OPC_CheckChild3Type, MVT::i32, ++/*268831*/ OPC_CheckChild4Integer, 1, ++/*268833*/ OPC_CheckChild4Type, MVT::i32, ++/*268835*/ OPC_MoveChild5, ++/*268836*/ OPC_CheckInteger, 1, ++/*268838*/ OPC_CheckType, MVT::i32, ++/*268840*/ OPC_MoveParent, ++/*268841*/ OPC_MoveChild6, ++/*268842*/ OPC_CheckInteger, 1, ++/*268844*/ OPC_CheckType, MVT::i32, ++/*268846*/ OPC_MoveParent, ++/*268847*/ OPC_MoveChild7, ++/*268848*/ OPC_CheckInteger, 1, ++/*268850*/ OPC_CheckType, MVT::i32, ++/*268852*/ OPC_MoveParent, ++/*268853*/ OPC_MoveChild, 8, ++/*268855*/ OPC_CheckInteger, 1, ++/*268857*/ OPC_CheckType, MVT::i32, ++/*268859*/ OPC_MoveParent, ++/*268860*/ OPC_MoveChild, 9, ++/*268862*/ OPC_CheckInteger, 1, ++/*268864*/ OPC_CheckType, MVT::i32, ++/*268866*/ OPC_MoveParent, ++/*268867*/ OPC_MoveChild, 10, ++/*268869*/ OPC_CheckInteger, 1, ++/*268871*/ OPC_CheckType, MVT::i32, ++/*268873*/ OPC_MoveParent, ++/*268874*/ OPC_MoveChild, 11, ++/*268876*/ OPC_CheckInteger, 1, ++/*268878*/ OPC_CheckType, MVT::i32, ++/*268880*/ OPC_MoveParent, ++/*268881*/ OPC_MoveChild, 12, ++/*268883*/ OPC_CheckInteger, 1, ++/*268885*/ OPC_CheckType, MVT::i32, ++/*268887*/ OPC_MoveParent, ++/*268888*/ OPC_MoveChild, 13, ++/*268890*/ OPC_CheckInteger, 1, ++/*268892*/ OPC_CheckType, MVT::i32, ++/*268894*/ OPC_MoveParent, ++/*268895*/ OPC_MoveChild, 14, ++/*268897*/ OPC_CheckInteger, 1, ++/*268899*/ OPC_CheckType, MVT::i32, ++/*268901*/ OPC_MoveParent, ++/*268902*/ OPC_MoveChild, 15, ++/*268904*/ OPC_CheckInteger, 1, ++/*268906*/ OPC_CheckType, MVT::i32, ++/*268908*/ OPC_MoveParent, ++/*268909*/ OPC_CheckType, MVT::v16i16, ++/*268911*/ OPC_MoveParent, ++/*268912*/ OPC_CheckType, MVT::v16i16, ++/*268914*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*268916*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a)), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*268924*/ /*Scope*/ 94|128,1/*222*/, /*->269148*/ ++/*268926*/ OPC_CheckChild0Same, 0, ++/*268928*/ OPC_CheckChild1Same, 1, ++/*268930*/ OPC_MoveParent, ++/*268931*/ OPC_MoveParent, ++/*268932*/ OPC_MoveChild1, ++/*268933*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*268936*/ OPC_CheckChild0Integer, 15, ++/*268938*/ OPC_CheckChild0Type, MVT::i32, ++/*268940*/ OPC_CheckChild1Integer, 15, ++/*268942*/ OPC_CheckChild1Type, MVT::i32, ++/*268944*/ OPC_CheckChild2Integer, 15, ++/*268946*/ OPC_CheckChild2Type, MVT::i32, ++/*268948*/ OPC_CheckChild3Integer, 15, ++/*268950*/ OPC_CheckChild3Type, MVT::i32, ++/*268952*/ OPC_CheckChild4Integer, 15, ++/*268954*/ OPC_CheckChild4Type, MVT::i32, ++/*268956*/ OPC_MoveChild5, ++/*268957*/ OPC_CheckInteger, 15, ++/*268959*/ OPC_CheckType, MVT::i32, ++/*268961*/ OPC_MoveParent, ++/*268962*/ OPC_MoveChild6, ++/*268963*/ OPC_CheckInteger, 15, ++/*268965*/ OPC_CheckType, MVT::i32, ++/*268967*/ OPC_MoveParent, ++/*268968*/ OPC_MoveChild7, ++/*268969*/ OPC_CheckInteger, 15, ++/*268971*/ OPC_CheckType, MVT::i32, ++/*268973*/ OPC_MoveParent, ++/*268974*/ OPC_MoveChild, 8, ++/*268976*/ OPC_CheckInteger, 15, ++/*268978*/ OPC_CheckType, MVT::i32, ++/*268980*/ OPC_MoveParent, ++/*268981*/ OPC_MoveChild, 9, ++/*268983*/ OPC_CheckInteger, 15, ++/*268985*/ OPC_CheckType, MVT::i32, ++/*268987*/ OPC_MoveParent, ++/*268988*/ OPC_MoveChild, 10, ++/*268990*/ OPC_CheckInteger, 15, ++/*268992*/ OPC_CheckType, MVT::i32, ++/*268994*/ OPC_MoveParent, ++/*268995*/ OPC_MoveChild, 11, ++/*268997*/ OPC_CheckInteger, 15, ++/*268999*/ OPC_CheckType, MVT::i32, ++/*269001*/ OPC_MoveParent, ++/*269002*/ OPC_MoveChild, 12, ++/*269004*/ OPC_CheckInteger, 15, ++/*269006*/ OPC_CheckType, MVT::i32, ++/*269008*/ OPC_MoveParent, ++/*269009*/ OPC_MoveChild, 13, ++/*269011*/ OPC_CheckInteger, 15, ++/*269013*/ OPC_CheckType, MVT::i32, ++/*269015*/ OPC_MoveParent, ++/*269016*/ OPC_MoveChild, 14, ++/*269018*/ OPC_CheckInteger, 15, ++/*269020*/ OPC_CheckType, MVT::i32, ++/*269022*/ OPC_MoveParent, ++/*269023*/ OPC_MoveChild, 15, ++/*269025*/ OPC_CheckInteger, 15, ++/*269027*/ OPC_CheckType, MVT::i32, ++/*269029*/ OPC_MoveParent, ++/*269030*/ OPC_CheckType, MVT::v16i16, ++/*269032*/ OPC_MoveParent, ++/*269033*/ OPC_MoveParent, ++/*269034*/ OPC_MoveParent, ++/*269035*/ OPC_MoveChild1, ++/*269036*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*269039*/ OPC_CheckChild0Integer, 1, ++/*269041*/ OPC_CheckChild0Type, MVT::i32, ++/*269043*/ OPC_CheckChild1Integer, 1, ++/*269045*/ OPC_CheckChild1Type, MVT::i32, ++/*269047*/ OPC_CheckChild2Integer, 1, ++/*269049*/ OPC_CheckChild2Type, MVT::i32, ++/*269051*/ OPC_CheckChild3Integer, 1, ++/*269053*/ OPC_CheckChild3Type, MVT::i32, ++/*269055*/ OPC_CheckChild4Integer, 1, ++/*269057*/ OPC_CheckChild4Type, MVT::i32, ++/*269059*/ OPC_MoveChild5, ++/*269060*/ OPC_CheckInteger, 1, ++/*269062*/ OPC_CheckType, MVT::i32, ++/*269064*/ OPC_MoveParent, ++/*269065*/ OPC_MoveChild6, ++/*269066*/ OPC_CheckInteger, 1, ++/*269068*/ OPC_CheckType, MVT::i32, ++/*269070*/ OPC_MoveParent, ++/*269071*/ OPC_MoveChild7, ++/*269072*/ OPC_CheckInteger, 1, ++/*269074*/ OPC_CheckType, MVT::i32, ++/*269076*/ OPC_MoveParent, ++/*269077*/ OPC_MoveChild, 8, ++/*269079*/ OPC_CheckInteger, 1, ++/*269081*/ OPC_CheckType, MVT::i32, ++/*269083*/ OPC_MoveParent, ++/*269084*/ OPC_MoveChild, 9, ++/*269086*/ OPC_CheckInteger, 1, ++/*269088*/ OPC_CheckType, MVT::i32, ++/*269090*/ OPC_MoveParent, ++/*269091*/ OPC_MoveChild, 10, ++/*269093*/ OPC_CheckInteger, 1, ++/*269095*/ OPC_CheckType, MVT::i32, ++/*269097*/ OPC_MoveParent, ++/*269098*/ OPC_MoveChild, 11, ++/*269100*/ OPC_CheckInteger, 1, ++/*269102*/ OPC_CheckType, MVT::i32, ++/*269104*/ OPC_MoveParent, ++/*269105*/ OPC_MoveChild, 12, ++/*269107*/ OPC_CheckInteger, 1, ++/*269109*/ OPC_CheckType, MVT::i32, ++/*269111*/ OPC_MoveParent, ++/*269112*/ OPC_MoveChild, 13, ++/*269114*/ OPC_CheckInteger, 1, ++/*269116*/ OPC_CheckType, MVT::i32, ++/*269118*/ OPC_MoveParent, ++/*269119*/ OPC_MoveChild, 14, ++/*269121*/ OPC_CheckInteger, 1, ++/*269123*/ OPC_CheckType, MVT::i32, ++/*269125*/ OPC_MoveParent, ++/*269126*/ OPC_MoveChild, 15, ++/*269128*/ OPC_CheckInteger, 1, ++/*269130*/ OPC_CheckType, MVT::i32, ++/*269132*/ OPC_MoveParent, ++/*269133*/ OPC_CheckType, MVT::v16i16, ++/*269135*/ OPC_MoveParent, ++/*269136*/ OPC_CheckType, MVT::v16i16, ++/*269138*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*269140*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a)), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*269148*/ 0, /*End of Scope*/ ++/*269149*/ 0, /*End of Scope*/ ++/*269150*/ /*Scope*/ 104|128,17/*2280*/, /*->271432*/ ++/*269152*/ OPC_RecordChild0, // #0 = $a ++/*269153*/ OPC_Scope, 85|128,10/*1365*/, /*->270521*/ // 2 children in Scope ++/*269156*/ OPC_RecordChild1, // #1 = $b ++/*269157*/ OPC_MoveParent, ++/*269158*/ OPC_MoveChild1, ++/*269159*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*269162*/ OPC_MoveChild0, ++/*269163*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*269166*/ OPC_Scope, 61|128,3/*445*/, /*->269614*/ // 3 children in Scope ++/*269169*/ OPC_CheckChild0Same, 0, ++/*269171*/ OPC_CheckChild1Same, 1, ++/*269173*/ OPC_MoveParent, ++/*269174*/ OPC_MoveChild1, ++/*269175*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*269178*/ OPC_CheckChild0Integer, 7, ++/*269180*/ OPC_CheckChild0Type, MVT::i32, ++/*269182*/ OPC_CheckChild1Integer, 7, ++/*269184*/ OPC_CheckChild1Type, MVT::i32, ++/*269186*/ OPC_CheckChild2Integer, 7, ++/*269188*/ OPC_CheckChild2Type, MVT::i32, ++/*269190*/ OPC_CheckChild3Integer, 7, ++/*269192*/ OPC_CheckChild3Type, MVT::i32, ++/*269194*/ OPC_CheckChild4Integer, 7, ++/*269196*/ OPC_CheckChild4Type, MVT::i32, ++/*269198*/ OPC_MoveChild5, ++/*269199*/ OPC_CheckInteger, 7, ++/*269201*/ OPC_CheckType, MVT::i32, ++/*269203*/ OPC_MoveParent, ++/*269204*/ OPC_MoveChild6, ++/*269205*/ OPC_CheckInteger, 7, ++/*269207*/ OPC_CheckType, MVT::i32, ++/*269209*/ OPC_MoveParent, ++/*269210*/ OPC_MoveChild7, ++/*269211*/ OPC_CheckInteger, 7, ++/*269213*/ OPC_CheckType, MVT::i32, ++/*269215*/ OPC_MoveParent, ++/*269216*/ OPC_MoveChild, 8, ++/*269218*/ OPC_CheckInteger, 7, ++/*269220*/ OPC_CheckType, MVT::i32, ++/*269222*/ OPC_MoveParent, ++/*269223*/ OPC_MoveChild, 9, ++/*269225*/ OPC_CheckInteger, 7, ++/*269227*/ OPC_CheckType, MVT::i32, ++/*269229*/ OPC_MoveParent, ++/*269230*/ OPC_MoveChild, 10, ++/*269232*/ OPC_CheckInteger, 7, ++/*269234*/ OPC_CheckType, MVT::i32, ++/*269236*/ OPC_MoveParent, ++/*269237*/ OPC_MoveChild, 11, ++/*269239*/ OPC_CheckInteger, 7, ++/*269241*/ OPC_CheckType, MVT::i32, ++/*269243*/ OPC_MoveParent, ++/*269244*/ OPC_MoveChild, 12, ++/*269246*/ OPC_CheckInteger, 7, ++/*269248*/ OPC_CheckType, MVT::i32, ++/*269250*/ OPC_MoveParent, ++/*269251*/ OPC_MoveChild, 13, ++/*269253*/ OPC_CheckInteger, 7, ++/*269255*/ OPC_CheckType, MVT::i32, ++/*269257*/ OPC_MoveParent, ++/*269258*/ OPC_MoveChild, 14, ++/*269260*/ OPC_CheckInteger, 7, ++/*269262*/ OPC_CheckType, MVT::i32, ++/*269264*/ OPC_MoveParent, ++/*269265*/ OPC_MoveChild, 15, ++/*269267*/ OPC_CheckInteger, 7, ++/*269269*/ OPC_CheckType, MVT::i32, ++/*269271*/ OPC_MoveParent, ++/*269272*/ OPC_MoveChild, 16, ++/*269274*/ OPC_CheckInteger, 7, ++/*269276*/ OPC_CheckType, MVT::i32, ++/*269278*/ OPC_MoveParent, ++/*269279*/ OPC_MoveChild, 17, ++/*269281*/ OPC_CheckInteger, 7, ++/*269283*/ OPC_CheckType, MVT::i32, ++/*269285*/ OPC_MoveParent, ++/*269286*/ OPC_MoveChild, 18, ++/*269288*/ OPC_CheckInteger, 7, ++/*269290*/ OPC_CheckType, MVT::i32, ++/*269292*/ OPC_MoveParent, ++/*269293*/ OPC_MoveChild, 19, ++/*269295*/ OPC_CheckInteger, 7, ++/*269297*/ OPC_CheckType, MVT::i32, ++/*269299*/ OPC_MoveParent, ++/*269300*/ OPC_MoveChild, 20, ++/*269302*/ OPC_CheckInteger, 7, ++/*269304*/ OPC_CheckType, MVT::i32, ++/*269306*/ OPC_MoveParent, ++/*269307*/ OPC_MoveChild, 21, ++/*269309*/ OPC_CheckInteger, 7, ++/*269311*/ OPC_CheckType, MVT::i32, ++/*269313*/ OPC_MoveParent, ++/*269314*/ OPC_MoveChild, 22, ++/*269316*/ OPC_CheckInteger, 7, ++/*269318*/ OPC_CheckType, MVT::i32, ++/*269320*/ OPC_MoveParent, ++/*269321*/ OPC_MoveChild, 23, ++/*269323*/ OPC_CheckInteger, 7, ++/*269325*/ OPC_CheckType, MVT::i32, ++/*269327*/ OPC_MoveParent, ++/*269328*/ OPC_MoveChild, 24, ++/*269330*/ OPC_CheckInteger, 7, ++/*269332*/ OPC_CheckType, MVT::i32, ++/*269334*/ OPC_MoveParent, ++/*269335*/ OPC_MoveChild, 25, ++/*269337*/ OPC_CheckInteger, 7, ++/*269339*/ OPC_CheckType, MVT::i32, ++/*269341*/ OPC_MoveParent, ++/*269342*/ OPC_MoveChild, 26, ++/*269344*/ OPC_CheckInteger, 7, ++/*269346*/ OPC_CheckType, MVT::i32, ++/*269348*/ OPC_MoveParent, ++/*269349*/ OPC_MoveChild, 27, ++/*269351*/ OPC_CheckInteger, 7, ++/*269353*/ OPC_CheckType, MVT::i32, ++/*269355*/ OPC_MoveParent, ++/*269356*/ OPC_MoveChild, 28, ++/*269358*/ OPC_CheckInteger, 7, ++/*269360*/ OPC_CheckType, MVT::i32, ++/*269362*/ OPC_MoveParent, ++/*269363*/ OPC_MoveChild, 29, ++/*269365*/ OPC_CheckInteger, 7, ++/*269367*/ OPC_CheckType, MVT::i32, ++/*269369*/ OPC_MoveParent, ++/*269370*/ OPC_MoveChild, 30, ++/*269372*/ OPC_CheckInteger, 7, ++/*269374*/ OPC_CheckType, MVT::i32, ++/*269376*/ OPC_MoveParent, ++/*269377*/ OPC_MoveChild, 31, ++/*269379*/ OPC_CheckInteger, 7, ++/*269381*/ OPC_CheckType, MVT::i32, ++/*269383*/ OPC_MoveParent, ++/*269384*/ OPC_CheckType, MVT::v32i8, ++/*269386*/ OPC_MoveParent, ++/*269387*/ OPC_MoveParent, ++/*269388*/ OPC_MoveParent, ++/*269389*/ OPC_MoveChild1, ++/*269390*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*269393*/ OPC_CheckChild0Integer, 1, ++/*269395*/ OPC_CheckChild0Type, MVT::i32, ++/*269397*/ OPC_CheckChild1Integer, 1, ++/*269399*/ OPC_CheckChild1Type, MVT::i32, ++/*269401*/ OPC_CheckChild2Integer, 1, ++/*269403*/ OPC_CheckChild2Type, MVT::i32, ++/*269405*/ OPC_CheckChild3Integer, 1, ++/*269407*/ OPC_CheckChild3Type, MVT::i32, ++/*269409*/ OPC_CheckChild4Integer, 1, ++/*269411*/ OPC_CheckChild4Type, MVT::i32, ++/*269413*/ OPC_MoveChild5, ++/*269414*/ OPC_CheckInteger, 1, ++/*269416*/ OPC_CheckType, MVT::i32, ++/*269418*/ OPC_MoveParent, ++/*269419*/ OPC_MoveChild6, ++/*269420*/ OPC_CheckInteger, 1, ++/*269422*/ OPC_CheckType, MVT::i32, ++/*269424*/ OPC_MoveParent, ++/*269425*/ OPC_MoveChild7, ++/*269426*/ OPC_CheckInteger, 1, ++/*269428*/ OPC_CheckType, MVT::i32, ++/*269430*/ OPC_MoveParent, ++/*269431*/ OPC_MoveChild, 8, ++/*269433*/ OPC_CheckInteger, 1, ++/*269435*/ OPC_CheckType, MVT::i32, ++/*269437*/ OPC_MoveParent, ++/*269438*/ OPC_MoveChild, 9, ++/*269440*/ OPC_CheckInteger, 1, ++/*269442*/ OPC_CheckType, MVT::i32, ++/*269444*/ OPC_MoveParent, ++/*269445*/ OPC_MoveChild, 10, ++/*269447*/ OPC_CheckInteger, 1, ++/*269449*/ OPC_CheckType, MVT::i32, ++/*269451*/ OPC_MoveParent, ++/*269452*/ OPC_MoveChild, 11, ++/*269454*/ OPC_CheckInteger, 1, ++/*269456*/ OPC_CheckType, MVT::i32, ++/*269458*/ OPC_MoveParent, ++/*269459*/ OPC_MoveChild, 12, ++/*269461*/ OPC_CheckInteger, 1, ++/*269463*/ OPC_CheckType, MVT::i32, ++/*269465*/ OPC_MoveParent, ++/*269466*/ OPC_MoveChild, 13, ++/*269468*/ OPC_CheckInteger, 1, ++/*269470*/ OPC_CheckType, MVT::i32, ++/*269472*/ OPC_MoveParent, ++/*269473*/ OPC_MoveChild, 14, ++/*269475*/ OPC_CheckInteger, 1, ++/*269477*/ OPC_CheckType, MVT::i32, ++/*269479*/ OPC_MoveParent, ++/*269480*/ OPC_MoveChild, 15, ++/*269482*/ OPC_CheckInteger, 1, ++/*269484*/ OPC_CheckType, MVT::i32, ++/*269486*/ OPC_MoveParent, ++/*269487*/ OPC_MoveChild, 16, ++/*269489*/ OPC_CheckInteger, 1, ++/*269491*/ OPC_CheckType, MVT::i32, ++/*269493*/ OPC_MoveParent, ++/*269494*/ OPC_MoveChild, 17, ++/*269496*/ OPC_CheckInteger, 1, ++/*269498*/ OPC_CheckType, MVT::i32, ++/*269500*/ OPC_MoveParent, ++/*269501*/ OPC_MoveChild, 18, ++/*269503*/ OPC_CheckInteger, 1, ++/*269505*/ OPC_CheckType, MVT::i32, ++/*269507*/ OPC_MoveParent, ++/*269508*/ OPC_MoveChild, 19, ++/*269510*/ OPC_CheckInteger, 1, ++/*269512*/ OPC_CheckType, MVT::i32, ++/*269514*/ OPC_MoveParent, ++/*269515*/ OPC_MoveChild, 20, ++/*269517*/ OPC_CheckInteger, 1, ++/*269519*/ OPC_CheckType, MVT::i32, ++/*269521*/ OPC_MoveParent, ++/*269522*/ OPC_MoveChild, 21, ++/*269524*/ OPC_CheckInteger, 1, ++/*269526*/ OPC_CheckType, MVT::i32, ++/*269528*/ OPC_MoveParent, ++/*269529*/ OPC_MoveChild, 22, ++/*269531*/ OPC_CheckInteger, 1, ++/*269533*/ OPC_CheckType, MVT::i32, ++/*269535*/ OPC_MoveParent, ++/*269536*/ OPC_MoveChild, 23, ++/*269538*/ OPC_CheckInteger, 1, ++/*269540*/ OPC_CheckType, MVT::i32, ++/*269542*/ OPC_MoveParent, ++/*269543*/ OPC_MoveChild, 24, ++/*269545*/ OPC_CheckInteger, 1, ++/*269547*/ OPC_CheckType, MVT::i32, ++/*269549*/ OPC_MoveParent, ++/*269550*/ OPC_MoveChild, 25, ++/*269552*/ OPC_CheckInteger, 1, ++/*269554*/ OPC_CheckType, MVT::i32, ++/*269556*/ OPC_MoveParent, ++/*269557*/ OPC_MoveChild, 26, ++/*269559*/ OPC_CheckInteger, 1, ++/*269561*/ OPC_CheckType, MVT::i32, ++/*269563*/ OPC_MoveParent, ++/*269564*/ OPC_MoveChild, 27, ++/*269566*/ OPC_CheckInteger, 1, ++/*269568*/ OPC_CheckType, MVT::i32, ++/*269570*/ OPC_MoveParent, ++/*269571*/ OPC_MoveChild, 28, ++/*269573*/ OPC_CheckInteger, 1, ++/*269575*/ OPC_CheckType, MVT::i32, ++/*269577*/ OPC_MoveParent, ++/*269578*/ OPC_MoveChild, 29, ++/*269580*/ OPC_CheckInteger, 1, ++/*269582*/ OPC_CheckType, MVT::i32, ++/*269584*/ OPC_MoveParent, ++/*269585*/ OPC_MoveChild, 30, ++/*269587*/ OPC_CheckInteger, 1, ++/*269589*/ OPC_CheckType, MVT::i32, ++/*269591*/ OPC_MoveParent, ++/*269592*/ OPC_MoveChild, 31, ++/*269594*/ OPC_CheckInteger, 1, ++/*269596*/ OPC_CheckType, MVT::i32, ++/*269598*/ OPC_MoveParent, ++/*269599*/ OPC_CheckType, MVT::v32i8, ++/*269601*/ OPC_MoveParent, ++/*269602*/ OPC_CheckType, MVT::v32i8, ++/*269604*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*269606*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 341 ++ // Dst: (XVAVG_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*269614*/ /*Scope*/ 73|128,3/*457*/, /*->270073*/ ++/*269616*/ OPC_CheckChild0Same, 1, ++/*269618*/ OPC_CheckChild1Same, 0, ++/*269620*/ OPC_MoveParent, ++/*269621*/ OPC_MoveChild1, ++/*269622*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*269625*/ OPC_CheckChild0Integer, 7, ++/*269627*/ OPC_CheckChild0Type, MVT::i32, ++/*269629*/ OPC_CheckChild1Integer, 7, ++/*269631*/ OPC_CheckChild1Type, MVT::i32, ++/*269633*/ OPC_CheckChild2Integer, 7, ++/*269635*/ OPC_CheckChild2Type, MVT::i32, ++/*269637*/ OPC_CheckChild3Integer, 7, ++/*269639*/ OPC_CheckChild3Type, MVT::i32, ++/*269641*/ OPC_CheckChild4Integer, 7, ++/*269643*/ OPC_CheckChild4Type, MVT::i32, ++/*269645*/ OPC_MoveChild5, ++/*269646*/ OPC_CheckInteger, 7, ++/*269648*/ OPC_CheckType, MVT::i32, ++/*269650*/ OPC_MoveParent, ++/*269651*/ OPC_MoveChild6, ++/*269652*/ OPC_CheckInteger, 7, ++/*269654*/ OPC_CheckType, MVT::i32, ++/*269656*/ OPC_MoveParent, ++/*269657*/ OPC_MoveChild7, ++/*269658*/ OPC_CheckInteger, 7, ++/*269660*/ OPC_CheckType, MVT::i32, ++/*269662*/ OPC_MoveParent, ++/*269663*/ OPC_MoveChild, 8, ++/*269665*/ OPC_CheckInteger, 7, ++/*269667*/ OPC_CheckType, MVT::i32, ++/*269669*/ OPC_MoveParent, ++/*269670*/ OPC_MoveChild, 9, ++/*269672*/ OPC_CheckInteger, 7, ++/*269674*/ OPC_CheckType, MVT::i32, ++/*269676*/ OPC_MoveParent, ++/*269677*/ OPC_MoveChild, 10, ++/*269679*/ OPC_CheckInteger, 7, ++/*269681*/ OPC_CheckType, MVT::i32, ++/*269683*/ OPC_MoveParent, ++/*269684*/ OPC_MoveChild, 11, ++/*269686*/ OPC_CheckInteger, 7, ++/*269688*/ OPC_CheckType, MVT::i32, ++/*269690*/ OPC_MoveParent, ++/*269691*/ OPC_MoveChild, 12, ++/*269693*/ OPC_CheckInteger, 7, ++/*269695*/ OPC_CheckType, MVT::i32, ++/*269697*/ OPC_MoveParent, ++/*269698*/ OPC_MoveChild, 13, ++/*269700*/ OPC_CheckInteger, 7, ++/*269702*/ OPC_CheckType, MVT::i32, ++/*269704*/ OPC_MoveParent, ++/*269705*/ OPC_MoveChild, 14, ++/*269707*/ OPC_CheckInteger, 7, ++/*269709*/ OPC_CheckType, MVT::i32, ++/*269711*/ OPC_MoveParent, ++/*269712*/ OPC_MoveChild, 15, ++/*269714*/ OPC_CheckInteger, 7, ++/*269716*/ OPC_CheckType, MVT::i32, ++/*269718*/ OPC_MoveParent, ++/*269719*/ OPC_MoveChild, 16, ++/*269721*/ OPC_CheckInteger, 7, ++/*269723*/ OPC_CheckType, MVT::i32, ++/*269725*/ OPC_MoveParent, ++/*269726*/ OPC_MoveChild, 17, ++/*269728*/ OPC_CheckInteger, 7, ++/*269730*/ OPC_CheckType, MVT::i32, ++/*269732*/ OPC_MoveParent, ++/*269733*/ OPC_MoveChild, 18, ++/*269735*/ OPC_CheckInteger, 7, ++/*269737*/ OPC_CheckType, MVT::i32, ++/*269739*/ OPC_MoveParent, ++/*269740*/ OPC_MoveChild, 19, ++/*269742*/ OPC_CheckInteger, 7, ++/*269744*/ OPC_CheckType, MVT::i32, ++/*269746*/ OPC_MoveParent, ++/*269747*/ OPC_MoveChild, 20, ++/*269749*/ OPC_CheckInteger, 7, ++/*269751*/ OPC_CheckType, MVT::i32, ++/*269753*/ OPC_MoveParent, ++/*269754*/ OPC_MoveChild, 21, ++/*269756*/ OPC_CheckInteger, 7, ++/*269758*/ OPC_CheckType, MVT::i32, ++/*269760*/ OPC_MoveParent, ++/*269761*/ OPC_MoveChild, 22, ++/*269763*/ OPC_CheckInteger, 7, ++/*269765*/ OPC_CheckType, MVT::i32, ++/*269767*/ OPC_MoveParent, ++/*269768*/ OPC_MoveChild, 23, ++/*269770*/ OPC_CheckInteger, 7, ++/*269772*/ OPC_CheckType, MVT::i32, ++/*269774*/ OPC_MoveParent, ++/*269775*/ OPC_MoveChild, 24, ++/*269777*/ OPC_CheckInteger, 7, ++/*269779*/ OPC_CheckType, MVT::i32, ++/*269781*/ OPC_MoveParent, ++/*269782*/ OPC_MoveChild, 25, ++/*269784*/ OPC_CheckInteger, 7, ++/*269786*/ OPC_CheckType, MVT::i32, ++/*269788*/ OPC_MoveParent, ++/*269789*/ OPC_MoveChild, 26, ++/*269791*/ OPC_CheckInteger, 7, ++/*269793*/ OPC_CheckType, MVT::i32, ++/*269795*/ OPC_MoveParent, ++/*269796*/ OPC_MoveChild, 27, ++/*269798*/ OPC_CheckInteger, 7, ++/*269800*/ OPC_CheckType, MVT::i32, ++/*269802*/ OPC_MoveParent, ++/*269803*/ OPC_MoveChild, 28, ++/*269805*/ OPC_CheckInteger, 7, ++/*269807*/ OPC_CheckType, MVT::i32, ++/*269809*/ OPC_MoveParent, ++/*269810*/ OPC_MoveChild, 29, ++/*269812*/ OPC_CheckInteger, 7, ++/*269814*/ OPC_CheckType, MVT::i32, ++/*269816*/ OPC_MoveParent, ++/*269817*/ OPC_MoveChild, 30, ++/*269819*/ OPC_CheckInteger, 7, ++/*269821*/ OPC_CheckType, MVT::i32, ++/*269823*/ OPC_MoveParent, ++/*269824*/ OPC_MoveChild, 31, ++/*269826*/ OPC_CheckInteger, 7, ++/*269828*/ OPC_CheckType, MVT::i32, ++/*269830*/ OPC_MoveParent, ++/*269831*/ OPC_CheckType, MVT::v32i8, ++/*269833*/ OPC_MoveParent, ++/*269834*/ OPC_MoveParent, ++/*269835*/ OPC_MoveParent, ++/*269836*/ OPC_MoveChild1, ++/*269837*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*269840*/ OPC_CheckChild0Integer, 1, ++/*269842*/ OPC_CheckChild0Type, MVT::i32, ++/*269844*/ OPC_CheckChild1Integer, 1, ++/*269846*/ OPC_CheckChild1Type, MVT::i32, ++/*269848*/ OPC_CheckChild2Integer, 1, ++/*269850*/ OPC_CheckChild2Type, MVT::i32, ++/*269852*/ OPC_CheckChild3Integer, 1, ++/*269854*/ OPC_CheckChild3Type, MVT::i32, ++/*269856*/ OPC_CheckChild4Integer, 1, ++/*269858*/ OPC_CheckChild4Type, MVT::i32, ++/*269860*/ OPC_MoveChild5, ++/*269861*/ OPC_CheckInteger, 1, ++/*269863*/ OPC_CheckType, MVT::i32, ++/*269865*/ OPC_MoveParent, ++/*269866*/ OPC_MoveChild6, ++/*269867*/ OPC_CheckInteger, 1, ++/*269869*/ OPC_CheckType, MVT::i32, ++/*269871*/ OPC_MoveParent, ++/*269872*/ OPC_MoveChild7, ++/*269873*/ OPC_CheckInteger, 1, ++/*269875*/ OPC_CheckType, MVT::i32, ++/*269877*/ OPC_MoveParent, ++/*269878*/ OPC_MoveChild, 8, ++/*269880*/ OPC_CheckInteger, 1, ++/*269882*/ OPC_CheckType, MVT::i32, ++/*269884*/ OPC_MoveParent, ++/*269885*/ OPC_MoveChild, 9, ++/*269887*/ OPC_CheckInteger, 1, ++/*269889*/ OPC_CheckType, MVT::i32, ++/*269891*/ OPC_MoveParent, ++/*269892*/ OPC_MoveChild, 10, ++/*269894*/ OPC_CheckInteger, 1, ++/*269896*/ OPC_CheckType, MVT::i32, ++/*269898*/ OPC_MoveParent, ++/*269899*/ OPC_MoveChild, 11, ++/*269901*/ OPC_CheckInteger, 1, ++/*269903*/ OPC_CheckType, MVT::i32, ++/*269905*/ OPC_MoveParent, ++/*269906*/ OPC_MoveChild, 12, ++/*269908*/ OPC_CheckInteger, 1, ++/*269910*/ OPC_CheckType, MVT::i32, ++/*269912*/ OPC_MoveParent, ++/*269913*/ OPC_MoveChild, 13, ++/*269915*/ OPC_CheckInteger, 1, ++/*269917*/ OPC_CheckType, MVT::i32, ++/*269919*/ OPC_MoveParent, ++/*269920*/ OPC_MoveChild, 14, ++/*269922*/ OPC_CheckInteger, 1, ++/*269924*/ OPC_CheckType, MVT::i32, ++/*269926*/ OPC_MoveParent, ++/*269927*/ OPC_MoveChild, 15, ++/*269929*/ OPC_CheckInteger, 1, ++/*269931*/ OPC_CheckType, MVT::i32, ++/*269933*/ OPC_MoveParent, ++/*269934*/ OPC_MoveChild, 16, ++/*269936*/ OPC_CheckInteger, 1, ++/*269938*/ OPC_CheckType, MVT::i32, ++/*269940*/ OPC_MoveParent, ++/*269941*/ OPC_MoveChild, 17, ++/*269943*/ OPC_CheckInteger, 1, ++/*269945*/ OPC_CheckType, MVT::i32, ++/*269947*/ OPC_MoveParent, ++/*269948*/ OPC_MoveChild, 18, ++/*269950*/ OPC_CheckInteger, 1, ++/*269952*/ OPC_CheckType, MVT::i32, ++/*269954*/ OPC_MoveParent, ++/*269955*/ OPC_MoveChild, 19, ++/*269957*/ OPC_CheckInteger, 1, ++/*269959*/ OPC_CheckType, MVT::i32, ++/*269961*/ OPC_MoveParent, ++/*269962*/ OPC_MoveChild, 20, ++/*269964*/ OPC_CheckInteger, 1, ++/*269966*/ OPC_CheckType, MVT::i32, ++/*269968*/ OPC_MoveParent, ++/*269969*/ OPC_MoveChild, 21, ++/*269971*/ OPC_CheckInteger, 1, ++/*269973*/ OPC_CheckType, MVT::i32, ++/*269975*/ OPC_MoveParent, ++/*269976*/ OPC_MoveChild, 22, ++/*269978*/ OPC_CheckInteger, 1, ++/*269980*/ OPC_CheckType, MVT::i32, ++/*269982*/ OPC_MoveParent, ++/*269983*/ OPC_MoveChild, 23, ++/*269985*/ OPC_CheckInteger, 1, ++/*269987*/ OPC_CheckType, MVT::i32, ++/*269989*/ OPC_MoveParent, ++/*269990*/ OPC_MoveChild, 24, ++/*269992*/ OPC_CheckInteger, 1, ++/*269994*/ OPC_CheckType, MVT::i32, ++/*269996*/ OPC_MoveParent, ++/*269997*/ OPC_MoveChild, 25, ++/*269999*/ OPC_CheckInteger, 1, ++/*270001*/ OPC_CheckType, MVT::i32, ++/*270003*/ OPC_MoveParent, ++/*270004*/ OPC_MoveChild, 26, ++/*270006*/ OPC_CheckInteger, 1, ++/*270008*/ OPC_CheckType, MVT::i32, ++/*270010*/ OPC_MoveParent, ++/*270011*/ OPC_MoveChild, 27, ++/*270013*/ OPC_CheckInteger, 1, ++/*270015*/ OPC_CheckType, MVT::i32, ++/*270017*/ OPC_MoveParent, ++/*270018*/ OPC_MoveChild, 28, ++/*270020*/ OPC_CheckInteger, 1, ++/*270022*/ OPC_CheckType, MVT::i32, ++/*270024*/ OPC_MoveParent, ++/*270025*/ OPC_MoveChild, 29, ++/*270027*/ OPC_CheckInteger, 1, ++/*270029*/ OPC_CheckType, MVT::i32, ++/*270031*/ OPC_MoveParent, ++/*270032*/ OPC_MoveChild, 30, ++/*270034*/ OPC_CheckInteger, 1, ++/*270036*/ OPC_CheckType, MVT::i32, ++/*270038*/ OPC_MoveParent, ++/*270039*/ OPC_MoveChild, 31, ++/*270041*/ OPC_CheckInteger, 1, ++/*270043*/ OPC_CheckType, MVT::i32, ++/*270045*/ OPC_MoveParent, ++/*270046*/ OPC_CheckType, MVT::v32i8, ++/*270048*/ OPC_MoveParent, ++/*270049*/ OPC_CheckType, MVT::v32i8, ++/*270051*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*270053*/ OPC_Scope, 8, /*->270063*/ // 2 children in Scope ++/*270055*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 341 ++ // Dst: (XVAVG_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*270063*/ /*Scope*/ 8, /*->270072*/ ++/*270064*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 341 ++ // Dst: (XVAVG_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*270072*/ 0, /*End of Scope*/ ++/*270073*/ /*Scope*/ 61|128,3/*445*/, /*->270520*/ ++/*270075*/ OPC_CheckChild0Same, 0, ++/*270077*/ OPC_CheckChild1Same, 1, ++/*270079*/ OPC_MoveParent, ++/*270080*/ OPC_MoveChild1, ++/*270081*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*270084*/ OPC_CheckChild0Integer, 7, ++/*270086*/ OPC_CheckChild0Type, MVT::i32, ++/*270088*/ OPC_CheckChild1Integer, 7, ++/*270090*/ OPC_CheckChild1Type, MVT::i32, ++/*270092*/ OPC_CheckChild2Integer, 7, ++/*270094*/ OPC_CheckChild2Type, MVT::i32, ++/*270096*/ OPC_CheckChild3Integer, 7, ++/*270098*/ OPC_CheckChild3Type, MVT::i32, ++/*270100*/ OPC_CheckChild4Integer, 7, ++/*270102*/ OPC_CheckChild4Type, MVT::i32, ++/*270104*/ OPC_MoveChild5, ++/*270105*/ OPC_CheckInteger, 7, ++/*270107*/ OPC_CheckType, MVT::i32, ++/*270109*/ OPC_MoveParent, ++/*270110*/ OPC_MoveChild6, ++/*270111*/ OPC_CheckInteger, 7, ++/*270113*/ OPC_CheckType, MVT::i32, ++/*270115*/ OPC_MoveParent, ++/*270116*/ OPC_MoveChild7, ++/*270117*/ OPC_CheckInteger, 7, ++/*270119*/ OPC_CheckType, MVT::i32, ++/*270121*/ OPC_MoveParent, ++/*270122*/ OPC_MoveChild, 8, ++/*270124*/ OPC_CheckInteger, 7, ++/*270126*/ OPC_CheckType, MVT::i32, ++/*270128*/ OPC_MoveParent, ++/*270129*/ OPC_MoveChild, 9, ++/*270131*/ OPC_CheckInteger, 7, ++/*270133*/ OPC_CheckType, MVT::i32, ++/*270135*/ OPC_MoveParent, ++/*270136*/ OPC_MoveChild, 10, ++/*270138*/ OPC_CheckInteger, 7, ++/*270140*/ OPC_CheckType, MVT::i32, ++/*270142*/ OPC_MoveParent, ++/*270143*/ OPC_MoveChild, 11, ++/*270145*/ OPC_CheckInteger, 7, ++/*270147*/ OPC_CheckType, MVT::i32, ++/*270149*/ OPC_MoveParent, ++/*270150*/ OPC_MoveChild, 12, ++/*270152*/ OPC_CheckInteger, 7, ++/*270154*/ OPC_CheckType, MVT::i32, ++/*270156*/ OPC_MoveParent, ++/*270157*/ OPC_MoveChild, 13, ++/*270159*/ OPC_CheckInteger, 7, ++/*270161*/ OPC_CheckType, MVT::i32, ++/*270163*/ OPC_MoveParent, ++/*270164*/ OPC_MoveChild, 14, ++/*270166*/ OPC_CheckInteger, 7, ++/*270168*/ OPC_CheckType, MVT::i32, ++/*270170*/ OPC_MoveParent, ++/*270171*/ OPC_MoveChild, 15, ++/*270173*/ OPC_CheckInteger, 7, ++/*270175*/ OPC_CheckType, MVT::i32, ++/*270177*/ OPC_MoveParent, ++/*270178*/ OPC_MoveChild, 16, ++/*270180*/ OPC_CheckInteger, 7, ++/*270182*/ OPC_CheckType, MVT::i32, ++/*270184*/ OPC_MoveParent, ++/*270185*/ OPC_MoveChild, 17, ++/*270187*/ OPC_CheckInteger, 7, ++/*270189*/ OPC_CheckType, MVT::i32, ++/*270191*/ OPC_MoveParent, ++/*270192*/ OPC_MoveChild, 18, ++/*270194*/ OPC_CheckInteger, 7, ++/*270196*/ OPC_CheckType, MVT::i32, ++/*270198*/ OPC_MoveParent, ++/*270199*/ OPC_MoveChild, 19, ++/*270201*/ OPC_CheckInteger, 7, ++/*270203*/ OPC_CheckType, MVT::i32, ++/*270205*/ OPC_MoveParent, ++/*270206*/ OPC_MoveChild, 20, ++/*270208*/ OPC_CheckInteger, 7, ++/*270210*/ OPC_CheckType, MVT::i32, ++/*270212*/ OPC_MoveParent, ++/*270213*/ OPC_MoveChild, 21, ++/*270215*/ OPC_CheckInteger, 7, ++/*270217*/ OPC_CheckType, MVT::i32, ++/*270219*/ OPC_MoveParent, ++/*270220*/ OPC_MoveChild, 22, ++/*270222*/ OPC_CheckInteger, 7, ++/*270224*/ OPC_CheckType, MVT::i32, ++/*270226*/ OPC_MoveParent, ++/*270227*/ OPC_MoveChild, 23, ++/*270229*/ OPC_CheckInteger, 7, ++/*270231*/ OPC_CheckType, MVT::i32, ++/*270233*/ OPC_MoveParent, ++/*270234*/ OPC_MoveChild, 24, ++/*270236*/ OPC_CheckInteger, 7, ++/*270238*/ OPC_CheckType, MVT::i32, ++/*270240*/ OPC_MoveParent, ++/*270241*/ OPC_MoveChild, 25, ++/*270243*/ OPC_CheckInteger, 7, ++/*270245*/ OPC_CheckType, MVT::i32, ++/*270247*/ OPC_MoveParent, ++/*270248*/ OPC_MoveChild, 26, ++/*270250*/ OPC_CheckInteger, 7, ++/*270252*/ OPC_CheckType, MVT::i32, ++/*270254*/ OPC_MoveParent, ++/*270255*/ OPC_MoveChild, 27, ++/*270257*/ OPC_CheckInteger, 7, ++/*270259*/ OPC_CheckType, MVT::i32, ++/*270261*/ OPC_MoveParent, ++/*270262*/ OPC_MoveChild, 28, ++/*270264*/ OPC_CheckInteger, 7, ++/*270266*/ OPC_CheckType, MVT::i32, ++/*270268*/ OPC_MoveParent, ++/*270269*/ OPC_MoveChild, 29, ++/*270271*/ OPC_CheckInteger, 7, ++/*270273*/ OPC_CheckType, MVT::i32, ++/*270275*/ OPC_MoveParent, ++/*270276*/ OPC_MoveChild, 30, ++/*270278*/ OPC_CheckInteger, 7, ++/*270280*/ OPC_CheckType, MVT::i32, ++/*270282*/ OPC_MoveParent, ++/*270283*/ OPC_MoveChild, 31, ++/*270285*/ OPC_CheckInteger, 7, ++/*270287*/ OPC_CheckType, MVT::i32, ++/*270289*/ OPC_MoveParent, ++/*270290*/ OPC_CheckType, MVT::v32i8, ++/*270292*/ OPC_MoveParent, ++/*270293*/ OPC_MoveParent, ++/*270294*/ OPC_MoveParent, ++/*270295*/ OPC_MoveChild1, ++/*270296*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*270299*/ OPC_CheckChild0Integer, 1, ++/*270301*/ OPC_CheckChild0Type, MVT::i32, ++/*270303*/ OPC_CheckChild1Integer, 1, ++/*270305*/ OPC_CheckChild1Type, MVT::i32, ++/*270307*/ OPC_CheckChild2Integer, 1, ++/*270309*/ OPC_CheckChild2Type, MVT::i32, ++/*270311*/ OPC_CheckChild3Integer, 1, ++/*270313*/ OPC_CheckChild3Type, MVT::i32, ++/*270315*/ OPC_CheckChild4Integer, 1, ++/*270317*/ OPC_CheckChild4Type, MVT::i32, ++/*270319*/ OPC_MoveChild5, ++/*270320*/ OPC_CheckInteger, 1, ++/*270322*/ OPC_CheckType, MVT::i32, ++/*270324*/ OPC_MoveParent, ++/*270325*/ OPC_MoveChild6, ++/*270326*/ OPC_CheckInteger, 1, ++/*270328*/ OPC_CheckType, MVT::i32, ++/*270330*/ OPC_MoveParent, ++/*270331*/ OPC_MoveChild7, ++/*270332*/ OPC_CheckInteger, 1, ++/*270334*/ OPC_CheckType, MVT::i32, ++/*270336*/ OPC_MoveParent, ++/*270337*/ OPC_MoveChild, 8, ++/*270339*/ OPC_CheckInteger, 1, ++/*270341*/ OPC_CheckType, MVT::i32, ++/*270343*/ OPC_MoveParent, ++/*270344*/ OPC_MoveChild, 9, ++/*270346*/ OPC_CheckInteger, 1, ++/*270348*/ OPC_CheckType, MVT::i32, ++/*270350*/ OPC_MoveParent, ++/*270351*/ OPC_MoveChild, 10, ++/*270353*/ OPC_CheckInteger, 1, ++/*270355*/ OPC_CheckType, MVT::i32, ++/*270357*/ OPC_MoveParent, ++/*270358*/ OPC_MoveChild, 11, ++/*270360*/ OPC_CheckInteger, 1, ++/*270362*/ OPC_CheckType, MVT::i32, ++/*270364*/ OPC_MoveParent, ++/*270365*/ OPC_MoveChild, 12, ++/*270367*/ OPC_CheckInteger, 1, ++/*270369*/ OPC_CheckType, MVT::i32, ++/*270371*/ OPC_MoveParent, ++/*270372*/ OPC_MoveChild, 13, ++/*270374*/ OPC_CheckInteger, 1, ++/*270376*/ OPC_CheckType, MVT::i32, ++/*270378*/ OPC_MoveParent, ++/*270379*/ OPC_MoveChild, 14, ++/*270381*/ OPC_CheckInteger, 1, ++/*270383*/ OPC_CheckType, MVT::i32, ++/*270385*/ OPC_MoveParent, ++/*270386*/ OPC_MoveChild, 15, ++/*270388*/ OPC_CheckInteger, 1, ++/*270390*/ OPC_CheckType, MVT::i32, ++/*270392*/ OPC_MoveParent, ++/*270393*/ OPC_MoveChild, 16, ++/*270395*/ OPC_CheckInteger, 1, ++/*270397*/ OPC_CheckType, MVT::i32, ++/*270399*/ OPC_MoveParent, ++/*270400*/ OPC_MoveChild, 17, ++/*270402*/ OPC_CheckInteger, 1, ++/*270404*/ OPC_CheckType, MVT::i32, ++/*270406*/ OPC_MoveParent, ++/*270407*/ OPC_MoveChild, 18, ++/*270409*/ OPC_CheckInteger, 1, ++/*270411*/ OPC_CheckType, MVT::i32, ++/*270413*/ OPC_MoveParent, ++/*270414*/ OPC_MoveChild, 19, ++/*270416*/ OPC_CheckInteger, 1, ++/*270418*/ OPC_CheckType, MVT::i32, ++/*270420*/ OPC_MoveParent, ++/*270421*/ OPC_MoveChild, 20, ++/*270423*/ OPC_CheckInteger, 1, ++/*270425*/ OPC_CheckType, MVT::i32, ++/*270427*/ OPC_MoveParent, ++/*270428*/ OPC_MoveChild, 21, ++/*270430*/ OPC_CheckInteger, 1, ++/*270432*/ OPC_CheckType, MVT::i32, ++/*270434*/ OPC_MoveParent, ++/*270435*/ OPC_MoveChild, 22, ++/*270437*/ OPC_CheckInteger, 1, ++/*270439*/ OPC_CheckType, MVT::i32, ++/*270441*/ OPC_MoveParent, ++/*270442*/ OPC_MoveChild, 23, ++/*270444*/ OPC_CheckInteger, 1, ++/*270446*/ OPC_CheckType, MVT::i32, ++/*270448*/ OPC_MoveParent, ++/*270449*/ OPC_MoveChild, 24, ++/*270451*/ OPC_CheckInteger, 1, ++/*270453*/ OPC_CheckType, MVT::i32, ++/*270455*/ OPC_MoveParent, ++/*270456*/ OPC_MoveChild, 25, ++/*270458*/ OPC_CheckInteger, 1, ++/*270460*/ OPC_CheckType, MVT::i32, ++/*270462*/ OPC_MoveParent, ++/*270463*/ OPC_MoveChild, 26, ++/*270465*/ OPC_CheckInteger, 1, ++/*270467*/ OPC_CheckType, MVT::i32, ++/*270469*/ OPC_MoveParent, ++/*270470*/ OPC_MoveChild, 27, ++/*270472*/ OPC_CheckInteger, 1, ++/*270474*/ OPC_CheckType, MVT::i32, ++/*270476*/ OPC_MoveParent, ++/*270477*/ OPC_MoveChild, 28, ++/*270479*/ OPC_CheckInteger, 1, ++/*270481*/ OPC_CheckType, MVT::i32, ++/*270483*/ OPC_MoveParent, ++/*270484*/ OPC_MoveChild, 29, ++/*270486*/ OPC_CheckInteger, 1, ++/*270488*/ OPC_CheckType, MVT::i32, ++/*270490*/ OPC_MoveParent, ++/*270491*/ OPC_MoveChild, 30, ++/*270493*/ OPC_CheckInteger, 1, ++/*270495*/ OPC_CheckType, MVT::i32, ++/*270497*/ OPC_MoveParent, ++/*270498*/ OPC_MoveChild, 31, ++/*270500*/ OPC_CheckInteger, 1, ++/*270502*/ OPC_CheckType, MVT::i32, ++/*270504*/ OPC_MoveParent, ++/*270505*/ OPC_CheckType, MVT::v32i8, ++/*270507*/ OPC_MoveParent, ++/*270508*/ OPC_CheckType, MVT::v32i8, ++/*270510*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*270512*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 341 ++ // Dst: (XVAVG_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*270520*/ 0, /*End of Scope*/ ++/*270521*/ /*Scope*/ 12|128,7/*908*/, /*->271431*/ ++/*270523*/ OPC_MoveChild1, ++/*270524*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*270527*/ OPC_MoveChild0, ++/*270528*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*270531*/ OPC_Scope, 63|128,3/*447*/, /*->270981*/ // 2 children in Scope ++/*270534*/ OPC_CheckChild0Same, 0, ++/*270536*/ OPC_RecordChild1, // #1 = $b ++/*270537*/ OPC_MoveParent, ++/*270538*/ OPC_MoveChild1, ++/*270539*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*270542*/ OPC_CheckChild0Integer, 7, ++/*270544*/ OPC_CheckChild0Type, MVT::i32, ++/*270546*/ OPC_CheckChild1Integer, 7, ++/*270548*/ OPC_CheckChild1Type, MVT::i32, ++/*270550*/ OPC_CheckChild2Integer, 7, ++/*270552*/ OPC_CheckChild2Type, MVT::i32, ++/*270554*/ OPC_CheckChild3Integer, 7, ++/*270556*/ OPC_CheckChild3Type, MVT::i32, ++/*270558*/ OPC_CheckChild4Integer, 7, ++/*270560*/ OPC_CheckChild4Type, MVT::i32, ++/*270562*/ OPC_MoveChild5, ++/*270563*/ OPC_CheckInteger, 7, ++/*270565*/ OPC_CheckType, MVT::i32, ++/*270567*/ OPC_MoveParent, ++/*270568*/ OPC_MoveChild6, ++/*270569*/ OPC_CheckInteger, 7, ++/*270571*/ OPC_CheckType, MVT::i32, ++/*270573*/ OPC_MoveParent, ++/*270574*/ OPC_MoveChild7, ++/*270575*/ OPC_CheckInteger, 7, ++/*270577*/ OPC_CheckType, MVT::i32, ++/*270579*/ OPC_MoveParent, ++/*270580*/ OPC_MoveChild, 8, ++/*270582*/ OPC_CheckInteger, 7, ++/*270584*/ OPC_CheckType, MVT::i32, ++/*270586*/ OPC_MoveParent, ++/*270587*/ OPC_MoveChild, 9, ++/*270589*/ OPC_CheckInteger, 7, ++/*270591*/ OPC_CheckType, MVT::i32, ++/*270593*/ OPC_MoveParent, ++/*270594*/ OPC_MoveChild, 10, ++/*270596*/ OPC_CheckInteger, 7, ++/*270598*/ OPC_CheckType, MVT::i32, ++/*270600*/ OPC_MoveParent, ++/*270601*/ OPC_MoveChild, 11, ++/*270603*/ OPC_CheckInteger, 7, ++/*270605*/ OPC_CheckType, MVT::i32, ++/*270607*/ OPC_MoveParent, ++/*270608*/ OPC_MoveChild, 12, ++/*270610*/ OPC_CheckInteger, 7, ++/*270612*/ OPC_CheckType, MVT::i32, ++/*270614*/ OPC_MoveParent, ++/*270615*/ OPC_MoveChild, 13, ++/*270617*/ OPC_CheckInteger, 7, ++/*270619*/ OPC_CheckType, MVT::i32, ++/*270621*/ OPC_MoveParent, ++/*270622*/ OPC_MoveChild, 14, ++/*270624*/ OPC_CheckInteger, 7, ++/*270626*/ OPC_CheckType, MVT::i32, ++/*270628*/ OPC_MoveParent, ++/*270629*/ OPC_MoveChild, 15, ++/*270631*/ OPC_CheckInteger, 7, ++/*270633*/ OPC_CheckType, MVT::i32, ++/*270635*/ OPC_MoveParent, ++/*270636*/ OPC_MoveChild, 16, ++/*270638*/ OPC_CheckInteger, 7, ++/*270640*/ OPC_CheckType, MVT::i32, ++/*270642*/ OPC_MoveParent, ++/*270643*/ OPC_MoveChild, 17, ++/*270645*/ OPC_CheckInteger, 7, ++/*270647*/ OPC_CheckType, MVT::i32, ++/*270649*/ OPC_MoveParent, ++/*270650*/ OPC_MoveChild, 18, ++/*270652*/ OPC_CheckInteger, 7, ++/*270654*/ OPC_CheckType, MVT::i32, ++/*270656*/ OPC_MoveParent, ++/*270657*/ OPC_MoveChild, 19, ++/*270659*/ OPC_CheckInteger, 7, ++/*270661*/ OPC_CheckType, MVT::i32, ++/*270663*/ OPC_MoveParent, ++/*270664*/ OPC_MoveChild, 20, ++/*270666*/ OPC_CheckInteger, 7, ++/*270668*/ OPC_CheckType, MVT::i32, ++/*270670*/ OPC_MoveParent, ++/*270671*/ OPC_MoveChild, 21, ++/*270673*/ OPC_CheckInteger, 7, ++/*270675*/ OPC_CheckType, MVT::i32, ++/*270677*/ OPC_MoveParent, ++/*270678*/ OPC_MoveChild, 22, ++/*270680*/ OPC_CheckInteger, 7, ++/*270682*/ OPC_CheckType, MVT::i32, ++/*270684*/ OPC_MoveParent, ++/*270685*/ OPC_MoveChild, 23, ++/*270687*/ OPC_CheckInteger, 7, ++/*270689*/ OPC_CheckType, MVT::i32, ++/*270691*/ OPC_MoveParent, ++/*270692*/ OPC_MoveChild, 24, ++/*270694*/ OPC_CheckInteger, 7, ++/*270696*/ OPC_CheckType, MVT::i32, ++/*270698*/ OPC_MoveParent, ++/*270699*/ OPC_MoveChild, 25, ++/*270701*/ OPC_CheckInteger, 7, ++/*270703*/ OPC_CheckType, MVT::i32, ++/*270705*/ OPC_MoveParent, ++/*270706*/ OPC_MoveChild, 26, ++/*270708*/ OPC_CheckInteger, 7, ++/*270710*/ OPC_CheckType, MVT::i32, ++/*270712*/ OPC_MoveParent, ++/*270713*/ OPC_MoveChild, 27, ++/*270715*/ OPC_CheckInteger, 7, ++/*270717*/ OPC_CheckType, MVT::i32, ++/*270719*/ OPC_MoveParent, ++/*270720*/ OPC_MoveChild, 28, ++/*270722*/ OPC_CheckInteger, 7, ++/*270724*/ OPC_CheckType, MVT::i32, ++/*270726*/ OPC_MoveParent, ++/*270727*/ OPC_MoveChild, 29, ++/*270729*/ OPC_CheckInteger, 7, ++/*270731*/ OPC_CheckType, MVT::i32, ++/*270733*/ OPC_MoveParent, ++/*270734*/ OPC_MoveChild, 30, ++/*270736*/ OPC_CheckInteger, 7, ++/*270738*/ OPC_CheckType, MVT::i32, ++/*270740*/ OPC_MoveParent, ++/*270741*/ OPC_MoveChild, 31, ++/*270743*/ OPC_CheckInteger, 7, ++/*270745*/ OPC_CheckType, MVT::i32, ++/*270747*/ OPC_MoveParent, ++/*270748*/ OPC_CheckType, MVT::v32i8, ++/*270750*/ OPC_MoveParent, ++/*270751*/ OPC_MoveParent, ++/*270752*/ OPC_MoveParent, ++/*270753*/ OPC_CheckChild1Same, 1, ++/*270755*/ OPC_MoveParent, ++/*270756*/ OPC_MoveChild1, ++/*270757*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*270760*/ OPC_CheckChild0Integer, 1, ++/*270762*/ OPC_CheckChild0Type, MVT::i32, ++/*270764*/ OPC_CheckChild1Integer, 1, ++/*270766*/ OPC_CheckChild1Type, MVT::i32, ++/*270768*/ OPC_CheckChild2Integer, 1, ++/*270770*/ OPC_CheckChild2Type, MVT::i32, ++/*270772*/ OPC_CheckChild3Integer, 1, ++/*270774*/ OPC_CheckChild3Type, MVT::i32, ++/*270776*/ OPC_CheckChild4Integer, 1, ++/*270778*/ OPC_CheckChild4Type, MVT::i32, ++/*270780*/ OPC_MoveChild5, ++/*270781*/ OPC_CheckInteger, 1, ++/*270783*/ OPC_CheckType, MVT::i32, ++/*270785*/ OPC_MoveParent, ++/*270786*/ OPC_MoveChild6, ++/*270787*/ OPC_CheckInteger, 1, ++/*270789*/ OPC_CheckType, MVT::i32, ++/*270791*/ OPC_MoveParent, ++/*270792*/ OPC_MoveChild7, ++/*270793*/ OPC_CheckInteger, 1, ++/*270795*/ OPC_CheckType, MVT::i32, ++/*270797*/ OPC_MoveParent, ++/*270798*/ OPC_MoveChild, 8, ++/*270800*/ OPC_CheckInteger, 1, ++/*270802*/ OPC_CheckType, MVT::i32, ++/*270804*/ OPC_MoveParent, ++/*270805*/ OPC_MoveChild, 9, ++/*270807*/ OPC_CheckInteger, 1, ++/*270809*/ OPC_CheckType, MVT::i32, ++/*270811*/ OPC_MoveParent, ++/*270812*/ OPC_MoveChild, 10, ++/*270814*/ OPC_CheckInteger, 1, ++/*270816*/ OPC_CheckType, MVT::i32, ++/*270818*/ OPC_MoveParent, ++/*270819*/ OPC_MoveChild, 11, ++/*270821*/ OPC_CheckInteger, 1, ++/*270823*/ OPC_CheckType, MVT::i32, ++/*270825*/ OPC_MoveParent, ++/*270826*/ OPC_MoveChild, 12, ++/*270828*/ OPC_CheckInteger, 1, ++/*270830*/ OPC_CheckType, MVT::i32, ++/*270832*/ OPC_MoveParent, ++/*270833*/ OPC_MoveChild, 13, ++/*270835*/ OPC_CheckInteger, 1, ++/*270837*/ OPC_CheckType, MVT::i32, ++/*270839*/ OPC_MoveParent, ++/*270840*/ OPC_MoveChild, 14, ++/*270842*/ OPC_CheckInteger, 1, ++/*270844*/ OPC_CheckType, MVT::i32, ++/*270846*/ OPC_MoveParent, ++/*270847*/ OPC_MoveChild, 15, ++/*270849*/ OPC_CheckInteger, 1, ++/*270851*/ OPC_CheckType, MVT::i32, ++/*270853*/ OPC_MoveParent, ++/*270854*/ OPC_MoveChild, 16, ++/*270856*/ OPC_CheckInteger, 1, ++/*270858*/ OPC_CheckType, MVT::i32, ++/*270860*/ OPC_MoveParent, ++/*270861*/ OPC_MoveChild, 17, ++/*270863*/ OPC_CheckInteger, 1, ++/*270865*/ OPC_CheckType, MVT::i32, ++/*270867*/ OPC_MoveParent, ++/*270868*/ OPC_MoveChild, 18, ++/*270870*/ OPC_CheckInteger, 1, ++/*270872*/ OPC_CheckType, MVT::i32, ++/*270874*/ OPC_MoveParent, ++/*270875*/ OPC_MoveChild, 19, ++/*270877*/ OPC_CheckInteger, 1, ++/*270879*/ OPC_CheckType, MVT::i32, ++/*270881*/ OPC_MoveParent, ++/*270882*/ OPC_MoveChild, 20, ++/*270884*/ OPC_CheckInteger, 1, ++/*270886*/ OPC_CheckType, MVT::i32, ++/*270888*/ OPC_MoveParent, ++/*270889*/ OPC_MoveChild, 21, ++/*270891*/ OPC_CheckInteger, 1, ++/*270893*/ OPC_CheckType, MVT::i32, ++/*270895*/ OPC_MoveParent, ++/*270896*/ OPC_MoveChild, 22, ++/*270898*/ OPC_CheckInteger, 1, ++/*270900*/ OPC_CheckType, MVT::i32, ++/*270902*/ OPC_MoveParent, ++/*270903*/ OPC_MoveChild, 23, ++/*270905*/ OPC_CheckInteger, 1, ++/*270907*/ OPC_CheckType, MVT::i32, ++/*270909*/ OPC_MoveParent, ++/*270910*/ OPC_MoveChild, 24, ++/*270912*/ OPC_CheckInteger, 1, ++/*270914*/ OPC_CheckType, MVT::i32, ++/*270916*/ OPC_MoveParent, ++/*270917*/ OPC_MoveChild, 25, ++/*270919*/ OPC_CheckInteger, 1, ++/*270921*/ OPC_CheckType, MVT::i32, ++/*270923*/ OPC_MoveParent, ++/*270924*/ OPC_MoveChild, 26, ++/*270926*/ OPC_CheckInteger, 1, ++/*270928*/ OPC_CheckType, MVT::i32, ++/*270930*/ OPC_MoveParent, ++/*270931*/ OPC_MoveChild, 27, ++/*270933*/ OPC_CheckInteger, 1, ++/*270935*/ OPC_CheckType, MVT::i32, ++/*270937*/ OPC_MoveParent, ++/*270938*/ OPC_MoveChild, 28, ++/*270940*/ OPC_CheckInteger, 1, ++/*270942*/ OPC_CheckType, MVT::i32, ++/*270944*/ OPC_MoveParent, ++/*270945*/ OPC_MoveChild, 29, ++/*270947*/ OPC_CheckInteger, 1, ++/*270949*/ OPC_CheckType, MVT::i32, ++/*270951*/ OPC_MoveParent, ++/*270952*/ OPC_MoveChild, 30, ++/*270954*/ OPC_CheckInteger, 1, ++/*270956*/ OPC_CheckType, MVT::i32, ++/*270958*/ OPC_MoveParent, ++/*270959*/ OPC_MoveChild, 31, ++/*270961*/ OPC_CheckInteger, 1, ++/*270963*/ OPC_CheckType, MVT::i32, ++/*270965*/ OPC_MoveParent, ++/*270966*/ OPC_CheckType, MVT::v32i8, ++/*270968*/ OPC_MoveParent, ++/*270969*/ OPC_CheckType, MVT::v32i8, ++/*270971*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*270973*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 341 ++ // Dst: (XVAVG_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*270981*/ /*Scope*/ 63|128,3/*447*/, /*->271430*/ ++/*270983*/ OPC_RecordChild0, // #1 = $b ++/*270984*/ OPC_CheckChild1Same, 0, ++/*270986*/ OPC_MoveParent, ++/*270987*/ OPC_MoveChild1, ++/*270988*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*270991*/ OPC_CheckChild0Integer, 7, ++/*270993*/ OPC_CheckChild0Type, MVT::i32, ++/*270995*/ OPC_CheckChild1Integer, 7, ++/*270997*/ OPC_CheckChild1Type, MVT::i32, ++/*270999*/ OPC_CheckChild2Integer, 7, ++/*271001*/ OPC_CheckChild2Type, MVT::i32, ++/*271003*/ OPC_CheckChild3Integer, 7, ++/*271005*/ OPC_CheckChild3Type, MVT::i32, ++/*271007*/ OPC_CheckChild4Integer, 7, ++/*271009*/ OPC_CheckChild4Type, MVT::i32, ++/*271011*/ OPC_MoveChild5, ++/*271012*/ OPC_CheckInteger, 7, ++/*271014*/ OPC_CheckType, MVT::i32, ++/*271016*/ OPC_MoveParent, ++/*271017*/ OPC_MoveChild6, ++/*271018*/ OPC_CheckInteger, 7, ++/*271020*/ OPC_CheckType, MVT::i32, ++/*271022*/ OPC_MoveParent, ++/*271023*/ OPC_MoveChild7, ++/*271024*/ OPC_CheckInteger, 7, ++/*271026*/ OPC_CheckType, MVT::i32, ++/*271028*/ OPC_MoveParent, ++/*271029*/ OPC_MoveChild, 8, ++/*271031*/ OPC_CheckInteger, 7, ++/*271033*/ OPC_CheckType, MVT::i32, ++/*271035*/ OPC_MoveParent, ++/*271036*/ OPC_MoveChild, 9, ++/*271038*/ OPC_CheckInteger, 7, ++/*271040*/ OPC_CheckType, MVT::i32, ++/*271042*/ OPC_MoveParent, ++/*271043*/ OPC_MoveChild, 10, ++/*271045*/ OPC_CheckInteger, 7, ++/*271047*/ OPC_CheckType, MVT::i32, ++/*271049*/ OPC_MoveParent, ++/*271050*/ OPC_MoveChild, 11, ++/*271052*/ OPC_CheckInteger, 7, ++/*271054*/ OPC_CheckType, MVT::i32, ++/*271056*/ OPC_MoveParent, ++/*271057*/ OPC_MoveChild, 12, ++/*271059*/ OPC_CheckInteger, 7, ++/*271061*/ OPC_CheckType, MVT::i32, ++/*271063*/ OPC_MoveParent, ++/*271064*/ OPC_MoveChild, 13, ++/*271066*/ OPC_CheckInteger, 7, ++/*271068*/ OPC_CheckType, MVT::i32, ++/*271070*/ OPC_MoveParent, ++/*271071*/ OPC_MoveChild, 14, ++/*271073*/ OPC_CheckInteger, 7, ++/*271075*/ OPC_CheckType, MVT::i32, ++/*271077*/ OPC_MoveParent, ++/*271078*/ OPC_MoveChild, 15, ++/*271080*/ OPC_CheckInteger, 7, ++/*271082*/ OPC_CheckType, MVT::i32, ++/*271084*/ OPC_MoveParent, ++/*271085*/ OPC_MoveChild, 16, ++/*271087*/ OPC_CheckInteger, 7, ++/*271089*/ OPC_CheckType, MVT::i32, ++/*271091*/ OPC_MoveParent, ++/*271092*/ OPC_MoveChild, 17, ++/*271094*/ OPC_CheckInteger, 7, ++/*271096*/ OPC_CheckType, MVT::i32, ++/*271098*/ OPC_MoveParent, ++/*271099*/ OPC_MoveChild, 18, ++/*271101*/ OPC_CheckInteger, 7, ++/*271103*/ OPC_CheckType, MVT::i32, ++/*271105*/ OPC_MoveParent, ++/*271106*/ OPC_MoveChild, 19, ++/*271108*/ OPC_CheckInteger, 7, ++/*271110*/ OPC_CheckType, MVT::i32, ++/*271112*/ OPC_MoveParent, ++/*271113*/ OPC_MoveChild, 20, ++/*271115*/ OPC_CheckInteger, 7, ++/*271117*/ OPC_CheckType, MVT::i32, ++/*271119*/ OPC_MoveParent, ++/*271120*/ OPC_MoveChild, 21, ++/*271122*/ OPC_CheckInteger, 7, ++/*271124*/ OPC_CheckType, MVT::i32, ++/*271126*/ OPC_MoveParent, ++/*271127*/ OPC_MoveChild, 22, ++/*271129*/ OPC_CheckInteger, 7, ++/*271131*/ OPC_CheckType, MVT::i32, ++/*271133*/ OPC_MoveParent, ++/*271134*/ OPC_MoveChild, 23, ++/*271136*/ OPC_CheckInteger, 7, ++/*271138*/ OPC_CheckType, MVT::i32, ++/*271140*/ OPC_MoveParent, ++/*271141*/ OPC_MoveChild, 24, ++/*271143*/ OPC_CheckInteger, 7, ++/*271145*/ OPC_CheckType, MVT::i32, ++/*271147*/ OPC_MoveParent, ++/*271148*/ OPC_MoveChild, 25, ++/*271150*/ OPC_CheckInteger, 7, ++/*271152*/ OPC_CheckType, MVT::i32, ++/*271154*/ OPC_MoveParent, ++/*271155*/ OPC_MoveChild, 26, ++/*271157*/ OPC_CheckInteger, 7, ++/*271159*/ OPC_CheckType, MVT::i32, ++/*271161*/ OPC_MoveParent, ++/*271162*/ OPC_MoveChild, 27, ++/*271164*/ OPC_CheckInteger, 7, ++/*271166*/ OPC_CheckType, MVT::i32, ++/*271168*/ OPC_MoveParent, ++/*271169*/ OPC_MoveChild, 28, ++/*271171*/ OPC_CheckInteger, 7, ++/*271173*/ OPC_CheckType, MVT::i32, ++/*271175*/ OPC_MoveParent, ++/*271176*/ OPC_MoveChild, 29, ++/*271178*/ OPC_CheckInteger, 7, ++/*271180*/ OPC_CheckType, MVT::i32, ++/*271182*/ OPC_MoveParent, ++/*271183*/ OPC_MoveChild, 30, ++/*271185*/ OPC_CheckInteger, 7, ++/*271187*/ OPC_CheckType, MVT::i32, ++/*271189*/ OPC_MoveParent, ++/*271190*/ OPC_MoveChild, 31, ++/*271192*/ OPC_CheckInteger, 7, ++/*271194*/ OPC_CheckType, MVT::i32, ++/*271196*/ OPC_MoveParent, ++/*271197*/ OPC_CheckType, MVT::v32i8, ++/*271199*/ OPC_MoveParent, ++/*271200*/ OPC_MoveParent, ++/*271201*/ OPC_MoveParent, ++/*271202*/ OPC_CheckChild1Same, 1, ++/*271204*/ OPC_MoveParent, ++/*271205*/ OPC_MoveChild1, ++/*271206*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*271209*/ OPC_CheckChild0Integer, 1, ++/*271211*/ OPC_CheckChild0Type, MVT::i32, ++/*271213*/ OPC_CheckChild1Integer, 1, ++/*271215*/ OPC_CheckChild1Type, MVT::i32, ++/*271217*/ OPC_CheckChild2Integer, 1, ++/*271219*/ OPC_CheckChild2Type, MVT::i32, ++/*271221*/ OPC_CheckChild3Integer, 1, ++/*271223*/ OPC_CheckChild3Type, MVT::i32, ++/*271225*/ OPC_CheckChild4Integer, 1, ++/*271227*/ OPC_CheckChild4Type, MVT::i32, ++/*271229*/ OPC_MoveChild5, ++/*271230*/ OPC_CheckInteger, 1, ++/*271232*/ OPC_CheckType, MVT::i32, ++/*271234*/ OPC_MoveParent, ++/*271235*/ OPC_MoveChild6, ++/*271236*/ OPC_CheckInteger, 1, ++/*271238*/ OPC_CheckType, MVT::i32, ++/*271240*/ OPC_MoveParent, ++/*271241*/ OPC_MoveChild7, ++/*271242*/ OPC_CheckInteger, 1, ++/*271244*/ OPC_CheckType, MVT::i32, ++/*271246*/ OPC_MoveParent, ++/*271247*/ OPC_MoveChild, 8, ++/*271249*/ OPC_CheckInteger, 1, ++/*271251*/ OPC_CheckType, MVT::i32, ++/*271253*/ OPC_MoveParent, ++/*271254*/ OPC_MoveChild, 9, ++/*271256*/ OPC_CheckInteger, 1, ++/*271258*/ OPC_CheckType, MVT::i32, ++/*271260*/ OPC_MoveParent, ++/*271261*/ OPC_MoveChild, 10, ++/*271263*/ OPC_CheckInteger, 1, ++/*271265*/ OPC_CheckType, MVT::i32, ++/*271267*/ OPC_MoveParent, ++/*271268*/ OPC_MoveChild, 11, ++/*271270*/ OPC_CheckInteger, 1, ++/*271272*/ OPC_CheckType, MVT::i32, ++/*271274*/ OPC_MoveParent, ++/*271275*/ OPC_MoveChild, 12, ++/*271277*/ OPC_CheckInteger, 1, ++/*271279*/ OPC_CheckType, MVT::i32, ++/*271281*/ OPC_MoveParent, ++/*271282*/ OPC_MoveChild, 13, ++/*271284*/ OPC_CheckInteger, 1, ++/*271286*/ OPC_CheckType, MVT::i32, ++/*271288*/ OPC_MoveParent, ++/*271289*/ OPC_MoveChild, 14, ++/*271291*/ OPC_CheckInteger, 1, ++/*271293*/ OPC_CheckType, MVT::i32, ++/*271295*/ OPC_MoveParent, ++/*271296*/ OPC_MoveChild, 15, ++/*271298*/ OPC_CheckInteger, 1, ++/*271300*/ OPC_CheckType, MVT::i32, ++/*271302*/ OPC_MoveParent, ++/*271303*/ OPC_MoveChild, 16, ++/*271305*/ OPC_CheckInteger, 1, ++/*271307*/ OPC_CheckType, MVT::i32, ++/*271309*/ OPC_MoveParent, ++/*271310*/ OPC_MoveChild, 17, ++/*271312*/ OPC_CheckInteger, 1, ++/*271314*/ OPC_CheckType, MVT::i32, ++/*271316*/ OPC_MoveParent, ++/*271317*/ OPC_MoveChild, 18, ++/*271319*/ OPC_CheckInteger, 1, ++/*271321*/ OPC_CheckType, MVT::i32, ++/*271323*/ OPC_MoveParent, ++/*271324*/ OPC_MoveChild, 19, ++/*271326*/ OPC_CheckInteger, 1, ++/*271328*/ OPC_CheckType, MVT::i32, ++/*271330*/ OPC_MoveParent, ++/*271331*/ OPC_MoveChild, 20, ++/*271333*/ OPC_CheckInteger, 1, ++/*271335*/ OPC_CheckType, MVT::i32, ++/*271337*/ OPC_MoveParent, ++/*271338*/ OPC_MoveChild, 21, ++/*271340*/ OPC_CheckInteger, 1, ++/*271342*/ OPC_CheckType, MVT::i32, ++/*271344*/ OPC_MoveParent, ++/*271345*/ OPC_MoveChild, 22, ++/*271347*/ OPC_CheckInteger, 1, ++/*271349*/ OPC_CheckType, MVT::i32, ++/*271351*/ OPC_MoveParent, ++/*271352*/ OPC_MoveChild, 23, ++/*271354*/ OPC_CheckInteger, 1, ++/*271356*/ OPC_CheckType, MVT::i32, ++/*271358*/ OPC_MoveParent, ++/*271359*/ OPC_MoveChild, 24, ++/*271361*/ OPC_CheckInteger, 1, ++/*271363*/ OPC_CheckType, MVT::i32, ++/*271365*/ OPC_MoveParent, ++/*271366*/ OPC_MoveChild, 25, ++/*271368*/ OPC_CheckInteger, 1, ++/*271370*/ OPC_CheckType, MVT::i32, ++/*271372*/ OPC_MoveParent, ++/*271373*/ OPC_MoveChild, 26, ++/*271375*/ OPC_CheckInteger, 1, ++/*271377*/ OPC_CheckType, MVT::i32, ++/*271379*/ OPC_MoveParent, ++/*271380*/ OPC_MoveChild, 27, ++/*271382*/ OPC_CheckInteger, 1, ++/*271384*/ OPC_CheckType, MVT::i32, ++/*271386*/ OPC_MoveParent, ++/*271387*/ OPC_MoveChild, 28, ++/*271389*/ OPC_CheckInteger, 1, ++/*271391*/ OPC_CheckType, MVT::i32, ++/*271393*/ OPC_MoveParent, ++/*271394*/ OPC_MoveChild, 29, ++/*271396*/ OPC_CheckInteger, 1, ++/*271398*/ OPC_CheckType, MVT::i32, ++/*271400*/ OPC_MoveParent, ++/*271401*/ OPC_MoveChild, 30, ++/*271403*/ OPC_CheckInteger, 1, ++/*271405*/ OPC_CheckType, MVT::i32, ++/*271407*/ OPC_MoveParent, ++/*271408*/ OPC_MoveChild, 31, ++/*271410*/ OPC_CheckInteger, 1, ++/*271412*/ OPC_CheckType, MVT::i32, ++/*271414*/ OPC_MoveParent, ++/*271415*/ OPC_CheckType, MVT::v32i8, ++/*271417*/ OPC_MoveParent, ++/*271418*/ OPC_CheckType, MVT::v32i8, ++/*271420*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*271422*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 341 ++ // Dst: (XVAVG_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*271430*/ 0, /*End of Scope*/ ++/*271431*/ 0, /*End of Scope*/ ++/*271432*/ /*Scope*/ 53|128,5/*693*/, /*->272127*/ ++/*271434*/ OPC_MoveChild0, ++/*271435*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*271438*/ OPC_MoveChild0, ++/*271439*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*271442*/ OPC_RecordChild0, // #0 = $a ++/*271443*/ OPC_RecordChild1, // #1 = $b ++/*271444*/ OPC_MoveParent, ++/*271445*/ OPC_MoveChild1, ++/*271446*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*271449*/ OPC_CheckChild0Integer, 7, ++/*271451*/ OPC_CheckChild0Type, MVT::i32, ++/*271453*/ OPC_CheckChild1Integer, 7, ++/*271455*/ OPC_CheckChild1Type, MVT::i32, ++/*271457*/ OPC_CheckChild2Integer, 7, ++/*271459*/ OPC_CheckChild2Type, MVT::i32, ++/*271461*/ OPC_CheckChild3Integer, 7, ++/*271463*/ OPC_CheckChild3Type, MVT::i32, ++/*271465*/ OPC_CheckChild4Integer, 7, ++/*271467*/ OPC_CheckChild4Type, MVT::i32, ++/*271469*/ OPC_MoveChild5, ++/*271470*/ OPC_CheckInteger, 7, ++/*271472*/ OPC_CheckType, MVT::i32, ++/*271474*/ OPC_MoveParent, ++/*271475*/ OPC_MoveChild6, ++/*271476*/ OPC_CheckInteger, 7, ++/*271478*/ OPC_CheckType, MVT::i32, ++/*271480*/ OPC_MoveParent, ++/*271481*/ OPC_MoveChild7, ++/*271482*/ OPC_CheckInteger, 7, ++/*271484*/ OPC_CheckType, MVT::i32, ++/*271486*/ OPC_MoveParent, ++/*271487*/ OPC_MoveChild, 8, ++/*271489*/ OPC_CheckInteger, 7, ++/*271491*/ OPC_CheckType, MVT::i32, ++/*271493*/ OPC_MoveParent, ++/*271494*/ OPC_MoveChild, 9, ++/*271496*/ OPC_CheckInteger, 7, ++/*271498*/ OPC_CheckType, MVT::i32, ++/*271500*/ OPC_MoveParent, ++/*271501*/ OPC_MoveChild, 10, ++/*271503*/ OPC_CheckInteger, 7, ++/*271505*/ OPC_CheckType, MVT::i32, ++/*271507*/ OPC_MoveParent, ++/*271508*/ OPC_MoveChild, 11, ++/*271510*/ OPC_CheckInteger, 7, ++/*271512*/ OPC_CheckType, MVT::i32, ++/*271514*/ OPC_MoveParent, ++/*271515*/ OPC_MoveChild, 12, ++/*271517*/ OPC_CheckInteger, 7, ++/*271519*/ OPC_CheckType, MVT::i32, ++/*271521*/ OPC_MoveParent, ++/*271522*/ OPC_MoveChild, 13, ++/*271524*/ OPC_CheckInteger, 7, ++/*271526*/ OPC_CheckType, MVT::i32, ++/*271528*/ OPC_MoveParent, ++/*271529*/ OPC_MoveChild, 14, ++/*271531*/ OPC_CheckInteger, 7, ++/*271533*/ OPC_CheckType, MVT::i32, ++/*271535*/ OPC_MoveParent, ++/*271536*/ OPC_MoveChild, 15, ++/*271538*/ OPC_CheckInteger, 7, ++/*271540*/ OPC_CheckType, MVT::i32, ++/*271542*/ OPC_MoveParent, ++/*271543*/ OPC_MoveChild, 16, ++/*271545*/ OPC_CheckInteger, 7, ++/*271547*/ OPC_CheckType, MVT::i32, ++/*271549*/ OPC_MoveParent, ++/*271550*/ OPC_MoveChild, 17, ++/*271552*/ OPC_CheckInteger, 7, ++/*271554*/ OPC_CheckType, MVT::i32, ++/*271556*/ OPC_MoveParent, ++/*271557*/ OPC_MoveChild, 18, ++/*271559*/ OPC_CheckInteger, 7, ++/*271561*/ OPC_CheckType, MVT::i32, ++/*271563*/ OPC_MoveParent, ++/*271564*/ OPC_MoveChild, 19, ++/*271566*/ OPC_CheckInteger, 7, ++/*271568*/ OPC_CheckType, MVT::i32, ++/*271570*/ OPC_MoveParent, ++/*271571*/ OPC_MoveChild, 20, ++/*271573*/ OPC_CheckInteger, 7, ++/*271575*/ OPC_CheckType, MVT::i32, ++/*271577*/ OPC_MoveParent, ++/*271578*/ OPC_MoveChild, 21, ++/*271580*/ OPC_CheckInteger, 7, ++/*271582*/ OPC_CheckType, MVT::i32, ++/*271584*/ OPC_MoveParent, ++/*271585*/ OPC_MoveChild, 22, ++/*271587*/ OPC_CheckInteger, 7, ++/*271589*/ OPC_CheckType, MVT::i32, ++/*271591*/ OPC_MoveParent, ++/*271592*/ OPC_MoveChild, 23, ++/*271594*/ OPC_CheckInteger, 7, ++/*271596*/ OPC_CheckType, MVT::i32, ++/*271598*/ OPC_MoveParent, ++/*271599*/ OPC_MoveChild, 24, ++/*271601*/ OPC_CheckInteger, 7, ++/*271603*/ OPC_CheckType, MVT::i32, ++/*271605*/ OPC_MoveParent, ++/*271606*/ OPC_MoveChild, 25, ++/*271608*/ OPC_CheckInteger, 7, ++/*271610*/ OPC_CheckType, MVT::i32, ++/*271612*/ OPC_MoveParent, ++/*271613*/ OPC_MoveChild, 26, ++/*271615*/ OPC_CheckInteger, 7, ++/*271617*/ OPC_CheckType, MVT::i32, ++/*271619*/ OPC_MoveParent, ++/*271620*/ OPC_MoveChild, 27, ++/*271622*/ OPC_CheckInteger, 7, ++/*271624*/ OPC_CheckType, MVT::i32, ++/*271626*/ OPC_MoveParent, ++/*271627*/ OPC_MoveChild, 28, ++/*271629*/ OPC_CheckInteger, 7, ++/*271631*/ OPC_CheckType, MVT::i32, ++/*271633*/ OPC_MoveParent, ++/*271634*/ OPC_MoveChild, 29, ++/*271636*/ OPC_CheckInteger, 7, ++/*271638*/ OPC_CheckType, MVT::i32, ++/*271640*/ OPC_MoveParent, ++/*271641*/ OPC_MoveChild, 30, ++/*271643*/ OPC_CheckInteger, 7, ++/*271645*/ OPC_CheckType, MVT::i32, ++/*271647*/ OPC_MoveParent, ++/*271648*/ OPC_MoveChild, 31, ++/*271650*/ OPC_CheckInteger, 7, ++/*271652*/ OPC_CheckType, MVT::i32, ++/*271654*/ OPC_MoveParent, ++/*271655*/ OPC_CheckType, MVT::v32i8, ++/*271657*/ OPC_MoveParent, ++/*271658*/ OPC_MoveParent, ++/*271659*/ OPC_Scope, 103|128,1/*231*/, /*->271893*/ // 2 children in Scope ++/*271662*/ OPC_CheckChild1Same, 0, ++/*271664*/ OPC_MoveParent, ++/*271665*/ OPC_CheckChild1Same, 1, ++/*271667*/ OPC_MoveParent, ++/*271668*/ OPC_MoveChild1, ++/*271669*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*271672*/ OPC_CheckChild0Integer, 1, ++/*271674*/ OPC_CheckChild0Type, MVT::i32, ++/*271676*/ OPC_CheckChild1Integer, 1, ++/*271678*/ OPC_CheckChild1Type, MVT::i32, ++/*271680*/ OPC_CheckChild2Integer, 1, ++/*271682*/ OPC_CheckChild2Type, MVT::i32, ++/*271684*/ OPC_CheckChild3Integer, 1, ++/*271686*/ OPC_CheckChild3Type, MVT::i32, ++/*271688*/ OPC_CheckChild4Integer, 1, ++/*271690*/ OPC_CheckChild4Type, MVT::i32, ++/*271692*/ OPC_MoveChild5, ++/*271693*/ OPC_CheckInteger, 1, ++/*271695*/ OPC_CheckType, MVT::i32, ++/*271697*/ OPC_MoveParent, ++/*271698*/ OPC_MoveChild6, ++/*271699*/ OPC_CheckInteger, 1, ++/*271701*/ OPC_CheckType, MVT::i32, ++/*271703*/ OPC_MoveParent, ++/*271704*/ OPC_MoveChild7, ++/*271705*/ OPC_CheckInteger, 1, ++/*271707*/ OPC_CheckType, MVT::i32, ++/*271709*/ OPC_MoveParent, ++/*271710*/ OPC_MoveChild, 8, ++/*271712*/ OPC_CheckInteger, 1, ++/*271714*/ OPC_CheckType, MVT::i32, ++/*271716*/ OPC_MoveParent, ++/*271717*/ OPC_MoveChild, 9, ++/*271719*/ OPC_CheckInteger, 1, ++/*271721*/ OPC_CheckType, MVT::i32, ++/*271723*/ OPC_MoveParent, ++/*271724*/ OPC_MoveChild, 10, ++/*271726*/ OPC_CheckInteger, 1, ++/*271728*/ OPC_CheckType, MVT::i32, ++/*271730*/ OPC_MoveParent, ++/*271731*/ OPC_MoveChild, 11, ++/*271733*/ OPC_CheckInteger, 1, ++/*271735*/ OPC_CheckType, MVT::i32, ++/*271737*/ OPC_MoveParent, ++/*271738*/ OPC_MoveChild, 12, ++/*271740*/ OPC_CheckInteger, 1, ++/*271742*/ OPC_CheckType, MVT::i32, ++/*271744*/ OPC_MoveParent, ++/*271745*/ OPC_MoveChild, 13, ++/*271747*/ OPC_CheckInteger, 1, ++/*271749*/ OPC_CheckType, MVT::i32, ++/*271751*/ OPC_MoveParent, ++/*271752*/ OPC_MoveChild, 14, ++/*271754*/ OPC_CheckInteger, 1, ++/*271756*/ OPC_CheckType, MVT::i32, ++/*271758*/ OPC_MoveParent, ++/*271759*/ OPC_MoveChild, 15, ++/*271761*/ OPC_CheckInteger, 1, ++/*271763*/ OPC_CheckType, MVT::i32, ++/*271765*/ OPC_MoveParent, ++/*271766*/ OPC_MoveChild, 16, ++/*271768*/ OPC_CheckInteger, 1, ++/*271770*/ OPC_CheckType, MVT::i32, ++/*271772*/ OPC_MoveParent, ++/*271773*/ OPC_MoveChild, 17, ++/*271775*/ OPC_CheckInteger, 1, ++/*271777*/ OPC_CheckType, MVT::i32, ++/*271779*/ OPC_MoveParent, ++/*271780*/ OPC_MoveChild, 18, ++/*271782*/ OPC_CheckInteger, 1, ++/*271784*/ OPC_CheckType, MVT::i32, ++/*271786*/ OPC_MoveParent, ++/*271787*/ OPC_MoveChild, 19, ++/*271789*/ OPC_CheckInteger, 1, ++/*271791*/ OPC_CheckType, MVT::i32, ++/*271793*/ OPC_MoveParent, ++/*271794*/ OPC_MoveChild, 20, ++/*271796*/ OPC_CheckInteger, 1, ++/*271798*/ OPC_CheckType, MVT::i32, ++/*271800*/ OPC_MoveParent, ++/*271801*/ OPC_MoveChild, 21, ++/*271803*/ OPC_CheckInteger, 1, ++/*271805*/ OPC_CheckType, MVT::i32, ++/*271807*/ OPC_MoveParent, ++/*271808*/ OPC_MoveChild, 22, ++/*271810*/ OPC_CheckInteger, 1, ++/*271812*/ OPC_CheckType, MVT::i32, ++/*271814*/ OPC_MoveParent, ++/*271815*/ OPC_MoveChild, 23, ++/*271817*/ OPC_CheckInteger, 1, ++/*271819*/ OPC_CheckType, MVT::i32, ++/*271821*/ OPC_MoveParent, ++/*271822*/ OPC_MoveChild, 24, ++/*271824*/ OPC_CheckInteger, 1, ++/*271826*/ OPC_CheckType, MVT::i32, ++/*271828*/ OPC_MoveParent, ++/*271829*/ OPC_MoveChild, 25, ++/*271831*/ OPC_CheckInteger, 1, ++/*271833*/ OPC_CheckType, MVT::i32, ++/*271835*/ OPC_MoveParent, ++/*271836*/ OPC_MoveChild, 26, ++/*271838*/ OPC_CheckInteger, 1, ++/*271840*/ OPC_CheckType, MVT::i32, ++/*271842*/ OPC_MoveParent, ++/*271843*/ OPC_MoveChild, 27, ++/*271845*/ OPC_CheckInteger, 1, ++/*271847*/ OPC_CheckType, MVT::i32, ++/*271849*/ OPC_MoveParent, ++/*271850*/ OPC_MoveChild, 28, ++/*271852*/ OPC_CheckInteger, 1, ++/*271854*/ OPC_CheckType, MVT::i32, ++/*271856*/ OPC_MoveParent, ++/*271857*/ OPC_MoveChild, 29, ++/*271859*/ OPC_CheckInteger, 1, ++/*271861*/ OPC_CheckType, MVT::i32, ++/*271863*/ OPC_MoveParent, ++/*271864*/ OPC_MoveChild, 30, ++/*271866*/ OPC_CheckInteger, 1, ++/*271868*/ OPC_CheckType, MVT::i32, ++/*271870*/ OPC_MoveParent, ++/*271871*/ OPC_MoveChild, 31, ++/*271873*/ OPC_CheckInteger, 1, ++/*271875*/ OPC_CheckType, MVT::i32, ++/*271877*/ OPC_MoveParent, ++/*271878*/ OPC_CheckType, MVT::v32i8, ++/*271880*/ OPC_MoveParent, ++/*271881*/ OPC_CheckType, MVT::v32i8, ++/*271883*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*271885*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$a), LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 341 ++ // Dst: (XVAVG_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*271893*/ /*Scope*/ 103|128,1/*231*/, /*->272126*/ ++/*271895*/ OPC_CheckChild1Same, 1, ++/*271897*/ OPC_MoveParent, ++/*271898*/ OPC_CheckChild1Same, 0, ++/*271900*/ OPC_MoveParent, ++/*271901*/ OPC_MoveChild1, ++/*271902*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*271905*/ OPC_CheckChild0Integer, 1, ++/*271907*/ OPC_CheckChild0Type, MVT::i32, ++/*271909*/ OPC_CheckChild1Integer, 1, ++/*271911*/ OPC_CheckChild1Type, MVT::i32, ++/*271913*/ OPC_CheckChild2Integer, 1, ++/*271915*/ OPC_CheckChild2Type, MVT::i32, ++/*271917*/ OPC_CheckChild3Integer, 1, ++/*271919*/ OPC_CheckChild3Type, MVT::i32, ++/*271921*/ OPC_CheckChild4Integer, 1, ++/*271923*/ OPC_CheckChild4Type, MVT::i32, ++/*271925*/ OPC_MoveChild5, ++/*271926*/ OPC_CheckInteger, 1, ++/*271928*/ OPC_CheckType, MVT::i32, ++/*271930*/ OPC_MoveParent, ++/*271931*/ OPC_MoveChild6, ++/*271932*/ OPC_CheckInteger, 1, ++/*271934*/ OPC_CheckType, MVT::i32, ++/*271936*/ OPC_MoveParent, ++/*271937*/ OPC_MoveChild7, ++/*271938*/ OPC_CheckInteger, 1, ++/*271940*/ OPC_CheckType, MVT::i32, ++/*271942*/ OPC_MoveParent, ++/*271943*/ OPC_MoveChild, 8, ++/*271945*/ OPC_CheckInteger, 1, ++/*271947*/ OPC_CheckType, MVT::i32, ++/*271949*/ OPC_MoveParent, ++/*271950*/ OPC_MoveChild, 9, ++/*271952*/ OPC_CheckInteger, 1, ++/*271954*/ OPC_CheckType, MVT::i32, ++/*271956*/ OPC_MoveParent, ++/*271957*/ OPC_MoveChild, 10, ++/*271959*/ OPC_CheckInteger, 1, ++/*271961*/ OPC_CheckType, MVT::i32, ++/*271963*/ OPC_MoveParent, ++/*271964*/ OPC_MoveChild, 11, ++/*271966*/ OPC_CheckInteger, 1, ++/*271968*/ OPC_CheckType, MVT::i32, ++/*271970*/ OPC_MoveParent, ++/*271971*/ OPC_MoveChild, 12, ++/*271973*/ OPC_CheckInteger, 1, ++/*271975*/ OPC_CheckType, MVT::i32, ++/*271977*/ OPC_MoveParent, ++/*271978*/ OPC_MoveChild, 13, ++/*271980*/ OPC_CheckInteger, 1, ++/*271982*/ OPC_CheckType, MVT::i32, ++/*271984*/ OPC_MoveParent, ++/*271985*/ OPC_MoveChild, 14, ++/*271987*/ OPC_CheckInteger, 1, ++/*271989*/ OPC_CheckType, MVT::i32, ++/*271991*/ OPC_MoveParent, ++/*271992*/ OPC_MoveChild, 15, ++/*271994*/ OPC_CheckInteger, 1, ++/*271996*/ OPC_CheckType, MVT::i32, ++/*271998*/ OPC_MoveParent, ++/*271999*/ OPC_MoveChild, 16, ++/*272001*/ OPC_CheckInteger, 1, ++/*272003*/ OPC_CheckType, MVT::i32, ++/*272005*/ OPC_MoveParent, ++/*272006*/ OPC_MoveChild, 17, ++/*272008*/ OPC_CheckInteger, 1, ++/*272010*/ OPC_CheckType, MVT::i32, ++/*272012*/ OPC_MoveParent, ++/*272013*/ OPC_MoveChild, 18, ++/*272015*/ OPC_CheckInteger, 1, ++/*272017*/ OPC_CheckType, MVT::i32, ++/*272019*/ OPC_MoveParent, ++/*272020*/ OPC_MoveChild, 19, ++/*272022*/ OPC_CheckInteger, 1, ++/*272024*/ OPC_CheckType, MVT::i32, ++/*272026*/ OPC_MoveParent, ++/*272027*/ OPC_MoveChild, 20, ++/*272029*/ OPC_CheckInteger, 1, ++/*272031*/ OPC_CheckType, MVT::i32, ++/*272033*/ OPC_MoveParent, ++/*272034*/ OPC_MoveChild, 21, ++/*272036*/ OPC_CheckInteger, 1, ++/*272038*/ OPC_CheckType, MVT::i32, ++/*272040*/ OPC_MoveParent, ++/*272041*/ OPC_MoveChild, 22, ++/*272043*/ OPC_CheckInteger, 1, ++/*272045*/ OPC_CheckType, MVT::i32, ++/*272047*/ OPC_MoveParent, ++/*272048*/ OPC_MoveChild, 23, ++/*272050*/ OPC_CheckInteger, 1, ++/*272052*/ OPC_CheckType, MVT::i32, ++/*272054*/ OPC_MoveParent, ++/*272055*/ OPC_MoveChild, 24, ++/*272057*/ OPC_CheckInteger, 1, ++/*272059*/ OPC_CheckType, MVT::i32, ++/*272061*/ OPC_MoveParent, ++/*272062*/ OPC_MoveChild, 25, ++/*272064*/ OPC_CheckInteger, 1, ++/*272066*/ OPC_CheckType, MVT::i32, ++/*272068*/ OPC_MoveParent, ++/*272069*/ OPC_MoveChild, 26, ++/*272071*/ OPC_CheckInteger, 1, ++/*272073*/ OPC_CheckType, MVT::i32, ++/*272075*/ OPC_MoveParent, ++/*272076*/ OPC_MoveChild, 27, ++/*272078*/ OPC_CheckInteger, 1, ++/*272080*/ OPC_CheckType, MVT::i32, ++/*272082*/ OPC_MoveParent, ++/*272083*/ OPC_MoveChild, 28, ++/*272085*/ OPC_CheckInteger, 1, ++/*272087*/ OPC_CheckType, MVT::i32, ++/*272089*/ OPC_MoveParent, ++/*272090*/ OPC_MoveChild, 29, ++/*272092*/ OPC_CheckInteger, 1, ++/*272094*/ OPC_CheckType, MVT::i32, ++/*272096*/ OPC_MoveParent, ++/*272097*/ OPC_MoveChild, 30, ++/*272099*/ OPC_CheckInteger, 1, ++/*272101*/ OPC_CheckType, MVT::i32, ++/*272103*/ OPC_MoveParent, ++/*272104*/ OPC_MoveChild, 31, ++/*272106*/ OPC_CheckInteger, 1, ++/*272108*/ OPC_CheckType, MVT::i32, ++/*272110*/ OPC_MoveParent, ++/*272111*/ OPC_CheckType, MVT::v32i8, ++/*272113*/ OPC_MoveParent, ++/*272114*/ OPC_CheckType, MVT::v32i8, ++/*272116*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*272118*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$a), LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 341 ++ // Dst: (XVAVG_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*272126*/ 0, /*End of Scope*/ ++/*272127*/ /*Scope*/ 13|128,7/*909*/, /*->273038*/ ++/*272129*/ OPC_RecordChild0, // #0 = $b ++/*272130*/ OPC_MoveChild1, ++/*272131*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*272134*/ OPC_MoveChild0, ++/*272135*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*272138*/ OPC_Scope, 63|128,3/*447*/, /*->272588*/ // 2 children in Scope ++/*272141*/ OPC_RecordChild0, // #1 = $a ++/*272142*/ OPC_CheckChild1Same, 0, ++/*272144*/ OPC_MoveParent, ++/*272145*/ OPC_MoveChild1, ++/*272146*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*272149*/ OPC_CheckChild0Integer, 7, ++/*272151*/ OPC_CheckChild0Type, MVT::i32, ++/*272153*/ OPC_CheckChild1Integer, 7, ++/*272155*/ OPC_CheckChild1Type, MVT::i32, ++/*272157*/ OPC_CheckChild2Integer, 7, ++/*272159*/ OPC_CheckChild2Type, MVT::i32, ++/*272161*/ OPC_CheckChild3Integer, 7, ++/*272163*/ OPC_CheckChild3Type, MVT::i32, ++/*272165*/ OPC_CheckChild4Integer, 7, ++/*272167*/ OPC_CheckChild4Type, MVT::i32, ++/*272169*/ OPC_MoveChild5, ++/*272170*/ OPC_CheckInteger, 7, ++/*272172*/ OPC_CheckType, MVT::i32, ++/*272174*/ OPC_MoveParent, ++/*272175*/ OPC_MoveChild6, ++/*272176*/ OPC_CheckInteger, 7, ++/*272178*/ OPC_CheckType, MVT::i32, ++/*272180*/ OPC_MoveParent, ++/*272181*/ OPC_MoveChild7, ++/*272182*/ OPC_CheckInteger, 7, ++/*272184*/ OPC_CheckType, MVT::i32, ++/*272186*/ OPC_MoveParent, ++/*272187*/ OPC_MoveChild, 8, ++/*272189*/ OPC_CheckInteger, 7, ++/*272191*/ OPC_CheckType, MVT::i32, ++/*272193*/ OPC_MoveParent, ++/*272194*/ OPC_MoveChild, 9, ++/*272196*/ OPC_CheckInteger, 7, ++/*272198*/ OPC_CheckType, MVT::i32, ++/*272200*/ OPC_MoveParent, ++/*272201*/ OPC_MoveChild, 10, ++/*272203*/ OPC_CheckInteger, 7, ++/*272205*/ OPC_CheckType, MVT::i32, ++/*272207*/ OPC_MoveParent, ++/*272208*/ OPC_MoveChild, 11, ++/*272210*/ OPC_CheckInteger, 7, ++/*272212*/ OPC_CheckType, MVT::i32, ++/*272214*/ OPC_MoveParent, ++/*272215*/ OPC_MoveChild, 12, ++/*272217*/ OPC_CheckInteger, 7, ++/*272219*/ OPC_CheckType, MVT::i32, ++/*272221*/ OPC_MoveParent, ++/*272222*/ OPC_MoveChild, 13, ++/*272224*/ OPC_CheckInteger, 7, ++/*272226*/ OPC_CheckType, MVT::i32, ++/*272228*/ OPC_MoveParent, ++/*272229*/ OPC_MoveChild, 14, ++/*272231*/ OPC_CheckInteger, 7, ++/*272233*/ OPC_CheckType, MVT::i32, ++/*272235*/ OPC_MoveParent, ++/*272236*/ OPC_MoveChild, 15, ++/*272238*/ OPC_CheckInteger, 7, ++/*272240*/ OPC_CheckType, MVT::i32, ++/*272242*/ OPC_MoveParent, ++/*272243*/ OPC_MoveChild, 16, ++/*272245*/ OPC_CheckInteger, 7, ++/*272247*/ OPC_CheckType, MVT::i32, ++/*272249*/ OPC_MoveParent, ++/*272250*/ OPC_MoveChild, 17, ++/*272252*/ OPC_CheckInteger, 7, ++/*272254*/ OPC_CheckType, MVT::i32, ++/*272256*/ OPC_MoveParent, ++/*272257*/ OPC_MoveChild, 18, ++/*272259*/ OPC_CheckInteger, 7, ++/*272261*/ OPC_CheckType, MVT::i32, ++/*272263*/ OPC_MoveParent, ++/*272264*/ OPC_MoveChild, 19, ++/*272266*/ OPC_CheckInteger, 7, ++/*272268*/ OPC_CheckType, MVT::i32, ++/*272270*/ OPC_MoveParent, ++/*272271*/ OPC_MoveChild, 20, ++/*272273*/ OPC_CheckInteger, 7, ++/*272275*/ OPC_CheckType, MVT::i32, ++/*272277*/ OPC_MoveParent, ++/*272278*/ OPC_MoveChild, 21, ++/*272280*/ OPC_CheckInteger, 7, ++/*272282*/ OPC_CheckType, MVT::i32, ++/*272284*/ OPC_MoveParent, ++/*272285*/ OPC_MoveChild, 22, ++/*272287*/ OPC_CheckInteger, 7, ++/*272289*/ OPC_CheckType, MVT::i32, ++/*272291*/ OPC_MoveParent, ++/*272292*/ OPC_MoveChild, 23, ++/*272294*/ OPC_CheckInteger, 7, ++/*272296*/ OPC_CheckType, MVT::i32, ++/*272298*/ OPC_MoveParent, ++/*272299*/ OPC_MoveChild, 24, ++/*272301*/ OPC_CheckInteger, 7, ++/*272303*/ OPC_CheckType, MVT::i32, ++/*272305*/ OPC_MoveParent, ++/*272306*/ OPC_MoveChild, 25, ++/*272308*/ OPC_CheckInteger, 7, ++/*272310*/ OPC_CheckType, MVT::i32, ++/*272312*/ OPC_MoveParent, ++/*272313*/ OPC_MoveChild, 26, ++/*272315*/ OPC_CheckInteger, 7, ++/*272317*/ OPC_CheckType, MVT::i32, ++/*272319*/ OPC_MoveParent, ++/*272320*/ OPC_MoveChild, 27, ++/*272322*/ OPC_CheckInteger, 7, ++/*272324*/ OPC_CheckType, MVT::i32, ++/*272326*/ OPC_MoveParent, ++/*272327*/ OPC_MoveChild, 28, ++/*272329*/ OPC_CheckInteger, 7, ++/*272331*/ OPC_CheckType, MVT::i32, ++/*272333*/ OPC_MoveParent, ++/*272334*/ OPC_MoveChild, 29, ++/*272336*/ OPC_CheckInteger, 7, ++/*272338*/ OPC_CheckType, MVT::i32, ++/*272340*/ OPC_MoveParent, ++/*272341*/ OPC_MoveChild, 30, ++/*272343*/ OPC_CheckInteger, 7, ++/*272345*/ OPC_CheckType, MVT::i32, ++/*272347*/ OPC_MoveParent, ++/*272348*/ OPC_MoveChild, 31, ++/*272350*/ OPC_CheckInteger, 7, ++/*272352*/ OPC_CheckType, MVT::i32, ++/*272354*/ OPC_MoveParent, ++/*272355*/ OPC_CheckType, MVT::v32i8, ++/*272357*/ OPC_MoveParent, ++/*272358*/ OPC_MoveParent, ++/*272359*/ OPC_MoveParent, ++/*272360*/ OPC_CheckChild1Same, 1, ++/*272362*/ OPC_MoveParent, ++/*272363*/ OPC_MoveChild1, ++/*272364*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*272367*/ OPC_CheckChild0Integer, 1, ++/*272369*/ OPC_CheckChild0Type, MVT::i32, ++/*272371*/ OPC_CheckChild1Integer, 1, ++/*272373*/ OPC_CheckChild1Type, MVT::i32, ++/*272375*/ OPC_CheckChild2Integer, 1, ++/*272377*/ OPC_CheckChild2Type, MVT::i32, ++/*272379*/ OPC_CheckChild3Integer, 1, ++/*272381*/ OPC_CheckChild3Type, MVT::i32, ++/*272383*/ OPC_CheckChild4Integer, 1, ++/*272385*/ OPC_CheckChild4Type, MVT::i32, ++/*272387*/ OPC_MoveChild5, ++/*272388*/ OPC_CheckInteger, 1, ++/*272390*/ OPC_CheckType, MVT::i32, ++/*272392*/ OPC_MoveParent, ++/*272393*/ OPC_MoveChild6, ++/*272394*/ OPC_CheckInteger, 1, ++/*272396*/ OPC_CheckType, MVT::i32, ++/*272398*/ OPC_MoveParent, ++/*272399*/ OPC_MoveChild7, ++/*272400*/ OPC_CheckInteger, 1, ++/*272402*/ OPC_CheckType, MVT::i32, ++/*272404*/ OPC_MoveParent, ++/*272405*/ OPC_MoveChild, 8, ++/*272407*/ OPC_CheckInteger, 1, ++/*272409*/ OPC_CheckType, MVT::i32, ++/*272411*/ OPC_MoveParent, ++/*272412*/ OPC_MoveChild, 9, ++/*272414*/ OPC_CheckInteger, 1, ++/*272416*/ OPC_CheckType, MVT::i32, ++/*272418*/ OPC_MoveParent, ++/*272419*/ OPC_MoveChild, 10, ++/*272421*/ OPC_CheckInteger, 1, ++/*272423*/ OPC_CheckType, MVT::i32, ++/*272425*/ OPC_MoveParent, ++/*272426*/ OPC_MoveChild, 11, ++/*272428*/ OPC_CheckInteger, 1, ++/*272430*/ OPC_CheckType, MVT::i32, ++/*272432*/ OPC_MoveParent, ++/*272433*/ OPC_MoveChild, 12, ++/*272435*/ OPC_CheckInteger, 1, ++/*272437*/ OPC_CheckType, MVT::i32, ++/*272439*/ OPC_MoveParent, ++/*272440*/ OPC_MoveChild, 13, ++/*272442*/ OPC_CheckInteger, 1, ++/*272444*/ OPC_CheckType, MVT::i32, ++/*272446*/ OPC_MoveParent, ++/*272447*/ OPC_MoveChild, 14, ++/*272449*/ OPC_CheckInteger, 1, ++/*272451*/ OPC_CheckType, MVT::i32, ++/*272453*/ OPC_MoveParent, ++/*272454*/ OPC_MoveChild, 15, ++/*272456*/ OPC_CheckInteger, 1, ++/*272458*/ OPC_CheckType, MVT::i32, ++/*272460*/ OPC_MoveParent, ++/*272461*/ OPC_MoveChild, 16, ++/*272463*/ OPC_CheckInteger, 1, ++/*272465*/ OPC_CheckType, MVT::i32, ++/*272467*/ OPC_MoveParent, ++/*272468*/ OPC_MoveChild, 17, ++/*272470*/ OPC_CheckInteger, 1, ++/*272472*/ OPC_CheckType, MVT::i32, ++/*272474*/ OPC_MoveParent, ++/*272475*/ OPC_MoveChild, 18, ++/*272477*/ OPC_CheckInteger, 1, ++/*272479*/ OPC_CheckType, MVT::i32, ++/*272481*/ OPC_MoveParent, ++/*272482*/ OPC_MoveChild, 19, ++/*272484*/ OPC_CheckInteger, 1, ++/*272486*/ OPC_CheckType, MVT::i32, ++/*272488*/ OPC_MoveParent, ++/*272489*/ OPC_MoveChild, 20, ++/*272491*/ OPC_CheckInteger, 1, ++/*272493*/ OPC_CheckType, MVT::i32, ++/*272495*/ OPC_MoveParent, ++/*272496*/ OPC_MoveChild, 21, ++/*272498*/ OPC_CheckInteger, 1, ++/*272500*/ OPC_CheckType, MVT::i32, ++/*272502*/ OPC_MoveParent, ++/*272503*/ OPC_MoveChild, 22, ++/*272505*/ OPC_CheckInteger, 1, ++/*272507*/ OPC_CheckType, MVT::i32, ++/*272509*/ OPC_MoveParent, ++/*272510*/ OPC_MoveChild, 23, ++/*272512*/ OPC_CheckInteger, 1, ++/*272514*/ OPC_CheckType, MVT::i32, ++/*272516*/ OPC_MoveParent, ++/*272517*/ OPC_MoveChild, 24, ++/*272519*/ OPC_CheckInteger, 1, ++/*272521*/ OPC_CheckType, MVT::i32, ++/*272523*/ OPC_MoveParent, ++/*272524*/ OPC_MoveChild, 25, ++/*272526*/ OPC_CheckInteger, 1, ++/*272528*/ OPC_CheckType, MVT::i32, ++/*272530*/ OPC_MoveParent, ++/*272531*/ OPC_MoveChild, 26, ++/*272533*/ OPC_CheckInteger, 1, ++/*272535*/ OPC_CheckType, MVT::i32, ++/*272537*/ OPC_MoveParent, ++/*272538*/ OPC_MoveChild, 27, ++/*272540*/ OPC_CheckInteger, 1, ++/*272542*/ OPC_CheckType, MVT::i32, ++/*272544*/ OPC_MoveParent, ++/*272545*/ OPC_MoveChild, 28, ++/*272547*/ OPC_CheckInteger, 1, ++/*272549*/ OPC_CheckType, MVT::i32, ++/*272551*/ OPC_MoveParent, ++/*272552*/ OPC_MoveChild, 29, ++/*272554*/ OPC_CheckInteger, 1, ++/*272556*/ OPC_CheckType, MVT::i32, ++/*272558*/ OPC_MoveParent, ++/*272559*/ OPC_MoveChild, 30, ++/*272561*/ OPC_CheckInteger, 1, ++/*272563*/ OPC_CheckType, MVT::i32, ++/*272565*/ OPC_MoveParent, ++/*272566*/ OPC_MoveChild, 31, ++/*272568*/ OPC_CheckInteger, 1, ++/*272570*/ OPC_CheckType, MVT::i32, ++/*272572*/ OPC_MoveParent, ++/*272573*/ OPC_CheckType, MVT::v32i8, ++/*272575*/ OPC_MoveParent, ++/*272576*/ OPC_CheckType, MVT::v32i8, ++/*272578*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*272580*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 341 ++ // Dst: (XVAVG_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*272588*/ /*Scope*/ 63|128,3/*447*/, /*->273037*/ ++/*272590*/ OPC_CheckChild0Same, 0, ++/*272592*/ OPC_RecordChild1, // #1 = $a ++/*272593*/ OPC_MoveParent, ++/*272594*/ OPC_MoveChild1, ++/*272595*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*272598*/ OPC_CheckChild0Integer, 7, ++/*272600*/ OPC_CheckChild0Type, MVT::i32, ++/*272602*/ OPC_CheckChild1Integer, 7, ++/*272604*/ OPC_CheckChild1Type, MVT::i32, ++/*272606*/ OPC_CheckChild2Integer, 7, ++/*272608*/ OPC_CheckChild2Type, MVT::i32, ++/*272610*/ OPC_CheckChild3Integer, 7, ++/*272612*/ OPC_CheckChild3Type, MVT::i32, ++/*272614*/ OPC_CheckChild4Integer, 7, ++/*272616*/ OPC_CheckChild4Type, MVT::i32, ++/*272618*/ OPC_MoveChild5, ++/*272619*/ OPC_CheckInteger, 7, ++/*272621*/ OPC_CheckType, MVT::i32, ++/*272623*/ OPC_MoveParent, ++/*272624*/ OPC_MoveChild6, ++/*272625*/ OPC_CheckInteger, 7, ++/*272627*/ OPC_CheckType, MVT::i32, ++/*272629*/ OPC_MoveParent, ++/*272630*/ OPC_MoveChild7, ++/*272631*/ OPC_CheckInteger, 7, ++/*272633*/ OPC_CheckType, MVT::i32, ++/*272635*/ OPC_MoveParent, ++/*272636*/ OPC_MoveChild, 8, ++/*272638*/ OPC_CheckInteger, 7, ++/*272640*/ OPC_CheckType, MVT::i32, ++/*272642*/ OPC_MoveParent, ++/*272643*/ OPC_MoveChild, 9, ++/*272645*/ OPC_CheckInteger, 7, ++/*272647*/ OPC_CheckType, MVT::i32, ++/*272649*/ OPC_MoveParent, ++/*272650*/ OPC_MoveChild, 10, ++/*272652*/ OPC_CheckInteger, 7, ++/*272654*/ OPC_CheckType, MVT::i32, ++/*272656*/ OPC_MoveParent, ++/*272657*/ OPC_MoveChild, 11, ++/*272659*/ OPC_CheckInteger, 7, ++/*272661*/ OPC_CheckType, MVT::i32, ++/*272663*/ OPC_MoveParent, ++/*272664*/ OPC_MoveChild, 12, ++/*272666*/ OPC_CheckInteger, 7, ++/*272668*/ OPC_CheckType, MVT::i32, ++/*272670*/ OPC_MoveParent, ++/*272671*/ OPC_MoveChild, 13, ++/*272673*/ OPC_CheckInteger, 7, ++/*272675*/ OPC_CheckType, MVT::i32, ++/*272677*/ OPC_MoveParent, ++/*272678*/ OPC_MoveChild, 14, ++/*272680*/ OPC_CheckInteger, 7, ++/*272682*/ OPC_CheckType, MVT::i32, ++/*272684*/ OPC_MoveParent, ++/*272685*/ OPC_MoveChild, 15, ++/*272687*/ OPC_CheckInteger, 7, ++/*272689*/ OPC_CheckType, MVT::i32, ++/*272691*/ OPC_MoveParent, ++/*272692*/ OPC_MoveChild, 16, ++/*272694*/ OPC_CheckInteger, 7, ++/*272696*/ OPC_CheckType, MVT::i32, ++/*272698*/ OPC_MoveParent, ++/*272699*/ OPC_MoveChild, 17, ++/*272701*/ OPC_CheckInteger, 7, ++/*272703*/ OPC_CheckType, MVT::i32, ++/*272705*/ OPC_MoveParent, ++/*272706*/ OPC_MoveChild, 18, ++/*272708*/ OPC_CheckInteger, 7, ++/*272710*/ OPC_CheckType, MVT::i32, ++/*272712*/ OPC_MoveParent, ++/*272713*/ OPC_MoveChild, 19, ++/*272715*/ OPC_CheckInteger, 7, ++/*272717*/ OPC_CheckType, MVT::i32, ++/*272719*/ OPC_MoveParent, ++/*272720*/ OPC_MoveChild, 20, ++/*272722*/ OPC_CheckInteger, 7, ++/*272724*/ OPC_CheckType, MVT::i32, ++/*272726*/ OPC_MoveParent, ++/*272727*/ OPC_MoveChild, 21, ++/*272729*/ OPC_CheckInteger, 7, ++/*272731*/ OPC_CheckType, MVT::i32, ++/*272733*/ OPC_MoveParent, ++/*272734*/ OPC_MoveChild, 22, ++/*272736*/ OPC_CheckInteger, 7, ++/*272738*/ OPC_CheckType, MVT::i32, ++/*272740*/ OPC_MoveParent, ++/*272741*/ OPC_MoveChild, 23, ++/*272743*/ OPC_CheckInteger, 7, ++/*272745*/ OPC_CheckType, MVT::i32, ++/*272747*/ OPC_MoveParent, ++/*272748*/ OPC_MoveChild, 24, ++/*272750*/ OPC_CheckInteger, 7, ++/*272752*/ OPC_CheckType, MVT::i32, ++/*272754*/ OPC_MoveParent, ++/*272755*/ OPC_MoveChild, 25, ++/*272757*/ OPC_CheckInteger, 7, ++/*272759*/ OPC_CheckType, MVT::i32, ++/*272761*/ OPC_MoveParent, ++/*272762*/ OPC_MoveChild, 26, ++/*272764*/ OPC_CheckInteger, 7, ++/*272766*/ OPC_CheckType, MVT::i32, ++/*272768*/ OPC_MoveParent, ++/*272769*/ OPC_MoveChild, 27, ++/*272771*/ OPC_CheckInteger, 7, ++/*272773*/ OPC_CheckType, MVT::i32, ++/*272775*/ OPC_MoveParent, ++/*272776*/ OPC_MoveChild, 28, ++/*272778*/ OPC_CheckInteger, 7, ++/*272780*/ OPC_CheckType, MVT::i32, ++/*272782*/ OPC_MoveParent, ++/*272783*/ OPC_MoveChild, 29, ++/*272785*/ OPC_CheckInteger, 7, ++/*272787*/ OPC_CheckType, MVT::i32, ++/*272789*/ OPC_MoveParent, ++/*272790*/ OPC_MoveChild, 30, ++/*272792*/ OPC_CheckInteger, 7, ++/*272794*/ OPC_CheckType, MVT::i32, ++/*272796*/ OPC_MoveParent, ++/*272797*/ OPC_MoveChild, 31, ++/*272799*/ OPC_CheckInteger, 7, ++/*272801*/ OPC_CheckType, MVT::i32, ++/*272803*/ OPC_MoveParent, ++/*272804*/ OPC_CheckType, MVT::v32i8, ++/*272806*/ OPC_MoveParent, ++/*272807*/ OPC_MoveParent, ++/*272808*/ OPC_MoveParent, ++/*272809*/ OPC_CheckChild1Same, 1, ++/*272811*/ OPC_MoveParent, ++/*272812*/ OPC_MoveChild1, ++/*272813*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*272816*/ OPC_CheckChild0Integer, 1, ++/*272818*/ OPC_CheckChild0Type, MVT::i32, ++/*272820*/ OPC_CheckChild1Integer, 1, ++/*272822*/ OPC_CheckChild1Type, MVT::i32, ++/*272824*/ OPC_CheckChild2Integer, 1, ++/*272826*/ OPC_CheckChild2Type, MVT::i32, ++/*272828*/ OPC_CheckChild3Integer, 1, ++/*272830*/ OPC_CheckChild3Type, MVT::i32, ++/*272832*/ OPC_CheckChild4Integer, 1, ++/*272834*/ OPC_CheckChild4Type, MVT::i32, ++/*272836*/ OPC_MoveChild5, ++/*272837*/ OPC_CheckInteger, 1, ++/*272839*/ OPC_CheckType, MVT::i32, ++/*272841*/ OPC_MoveParent, ++/*272842*/ OPC_MoveChild6, ++/*272843*/ OPC_CheckInteger, 1, ++/*272845*/ OPC_CheckType, MVT::i32, ++/*272847*/ OPC_MoveParent, ++/*272848*/ OPC_MoveChild7, ++/*272849*/ OPC_CheckInteger, 1, ++/*272851*/ OPC_CheckType, MVT::i32, ++/*272853*/ OPC_MoveParent, ++/*272854*/ OPC_MoveChild, 8, ++/*272856*/ OPC_CheckInteger, 1, ++/*272858*/ OPC_CheckType, MVT::i32, ++/*272860*/ OPC_MoveParent, ++/*272861*/ OPC_MoveChild, 9, ++/*272863*/ OPC_CheckInteger, 1, ++/*272865*/ OPC_CheckType, MVT::i32, ++/*272867*/ OPC_MoveParent, ++/*272868*/ OPC_MoveChild, 10, ++/*272870*/ OPC_CheckInteger, 1, ++/*272872*/ OPC_CheckType, MVT::i32, ++/*272874*/ OPC_MoveParent, ++/*272875*/ OPC_MoveChild, 11, ++/*272877*/ OPC_CheckInteger, 1, ++/*272879*/ OPC_CheckType, MVT::i32, ++/*272881*/ OPC_MoveParent, ++/*272882*/ OPC_MoveChild, 12, ++/*272884*/ OPC_CheckInteger, 1, ++/*272886*/ OPC_CheckType, MVT::i32, ++/*272888*/ OPC_MoveParent, ++/*272889*/ OPC_MoveChild, 13, ++/*272891*/ OPC_CheckInteger, 1, ++/*272893*/ OPC_CheckType, MVT::i32, ++/*272895*/ OPC_MoveParent, ++/*272896*/ OPC_MoveChild, 14, ++/*272898*/ OPC_CheckInteger, 1, ++/*272900*/ OPC_CheckType, MVT::i32, ++/*272902*/ OPC_MoveParent, ++/*272903*/ OPC_MoveChild, 15, ++/*272905*/ OPC_CheckInteger, 1, ++/*272907*/ OPC_CheckType, MVT::i32, ++/*272909*/ OPC_MoveParent, ++/*272910*/ OPC_MoveChild, 16, ++/*272912*/ OPC_CheckInteger, 1, ++/*272914*/ OPC_CheckType, MVT::i32, ++/*272916*/ OPC_MoveParent, ++/*272917*/ OPC_MoveChild, 17, ++/*272919*/ OPC_CheckInteger, 1, ++/*272921*/ OPC_CheckType, MVT::i32, ++/*272923*/ OPC_MoveParent, ++/*272924*/ OPC_MoveChild, 18, ++/*272926*/ OPC_CheckInteger, 1, ++/*272928*/ OPC_CheckType, MVT::i32, ++/*272930*/ OPC_MoveParent, ++/*272931*/ OPC_MoveChild, 19, ++/*272933*/ OPC_CheckInteger, 1, ++/*272935*/ OPC_CheckType, MVT::i32, ++/*272937*/ OPC_MoveParent, ++/*272938*/ OPC_MoveChild, 20, ++/*272940*/ OPC_CheckInteger, 1, ++/*272942*/ OPC_CheckType, MVT::i32, ++/*272944*/ OPC_MoveParent, ++/*272945*/ OPC_MoveChild, 21, ++/*272947*/ OPC_CheckInteger, 1, ++/*272949*/ OPC_CheckType, MVT::i32, ++/*272951*/ OPC_MoveParent, ++/*272952*/ OPC_MoveChild, 22, ++/*272954*/ OPC_CheckInteger, 1, ++/*272956*/ OPC_CheckType, MVT::i32, ++/*272958*/ OPC_MoveParent, ++/*272959*/ OPC_MoveChild, 23, ++/*272961*/ OPC_CheckInteger, 1, ++/*272963*/ OPC_CheckType, MVT::i32, ++/*272965*/ OPC_MoveParent, ++/*272966*/ OPC_MoveChild, 24, ++/*272968*/ OPC_CheckInteger, 1, ++/*272970*/ OPC_CheckType, MVT::i32, ++/*272972*/ OPC_MoveParent, ++/*272973*/ OPC_MoveChild, 25, ++/*272975*/ OPC_CheckInteger, 1, ++/*272977*/ OPC_CheckType, MVT::i32, ++/*272979*/ OPC_MoveParent, ++/*272980*/ OPC_MoveChild, 26, ++/*272982*/ OPC_CheckInteger, 1, ++/*272984*/ OPC_CheckType, MVT::i32, ++/*272986*/ OPC_MoveParent, ++/*272987*/ OPC_MoveChild, 27, ++/*272989*/ OPC_CheckInteger, 1, ++/*272991*/ OPC_CheckType, MVT::i32, ++/*272993*/ OPC_MoveParent, ++/*272994*/ OPC_MoveChild, 28, ++/*272996*/ OPC_CheckInteger, 1, ++/*272998*/ OPC_CheckType, MVT::i32, ++/*273000*/ OPC_MoveParent, ++/*273001*/ OPC_MoveChild, 29, ++/*273003*/ OPC_CheckInteger, 1, ++/*273005*/ OPC_CheckType, MVT::i32, ++/*273007*/ OPC_MoveParent, ++/*273008*/ OPC_MoveChild, 30, ++/*273010*/ OPC_CheckInteger, 1, ++/*273012*/ OPC_CheckType, MVT::i32, ++/*273014*/ OPC_MoveParent, ++/*273015*/ OPC_MoveChild, 31, ++/*273017*/ OPC_CheckInteger, 1, ++/*273019*/ OPC_CheckType, MVT::i32, ++/*273021*/ OPC_MoveParent, ++/*273022*/ OPC_CheckType, MVT::v32i8, ++/*273024*/ OPC_MoveParent, ++/*273025*/ OPC_CheckType, MVT::v32i8, ++/*273027*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*273029*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 341 ++ // Dst: (XVAVG_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*273037*/ 0, /*End of Scope*/ ++/*273038*/ /*Scope*/ 53|128,5/*693*/, /*->273733*/ ++/*273040*/ OPC_MoveChild0, ++/*273041*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*273044*/ OPC_MoveChild0, ++/*273045*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*273048*/ OPC_RecordChild0, // #0 = $a ++/*273049*/ OPC_RecordChild1, // #1 = $b ++/*273050*/ OPC_MoveParent, ++/*273051*/ OPC_MoveChild1, ++/*273052*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*273055*/ OPC_CheckChild0Integer, 7, ++/*273057*/ OPC_CheckChild0Type, MVT::i32, ++/*273059*/ OPC_CheckChild1Integer, 7, ++/*273061*/ OPC_CheckChild1Type, MVT::i32, ++/*273063*/ OPC_CheckChild2Integer, 7, ++/*273065*/ OPC_CheckChild2Type, MVT::i32, ++/*273067*/ OPC_CheckChild3Integer, 7, ++/*273069*/ OPC_CheckChild3Type, MVT::i32, ++/*273071*/ OPC_CheckChild4Integer, 7, ++/*273073*/ OPC_CheckChild4Type, MVT::i32, ++/*273075*/ OPC_MoveChild5, ++/*273076*/ OPC_CheckInteger, 7, ++/*273078*/ OPC_CheckType, MVT::i32, ++/*273080*/ OPC_MoveParent, ++/*273081*/ OPC_MoveChild6, ++/*273082*/ OPC_CheckInteger, 7, ++/*273084*/ OPC_CheckType, MVT::i32, ++/*273086*/ OPC_MoveParent, ++/*273087*/ OPC_MoveChild7, ++/*273088*/ OPC_CheckInteger, 7, ++/*273090*/ OPC_CheckType, MVT::i32, ++/*273092*/ OPC_MoveParent, ++/*273093*/ OPC_MoveChild, 8, ++/*273095*/ OPC_CheckInteger, 7, ++/*273097*/ OPC_CheckType, MVT::i32, ++/*273099*/ OPC_MoveParent, ++/*273100*/ OPC_MoveChild, 9, ++/*273102*/ OPC_CheckInteger, 7, ++/*273104*/ OPC_CheckType, MVT::i32, ++/*273106*/ OPC_MoveParent, ++/*273107*/ OPC_MoveChild, 10, ++/*273109*/ OPC_CheckInteger, 7, ++/*273111*/ OPC_CheckType, MVT::i32, ++/*273113*/ OPC_MoveParent, ++/*273114*/ OPC_MoveChild, 11, ++/*273116*/ OPC_CheckInteger, 7, ++/*273118*/ OPC_CheckType, MVT::i32, ++/*273120*/ OPC_MoveParent, ++/*273121*/ OPC_MoveChild, 12, ++/*273123*/ OPC_CheckInteger, 7, ++/*273125*/ OPC_CheckType, MVT::i32, ++/*273127*/ OPC_MoveParent, ++/*273128*/ OPC_MoveChild, 13, ++/*273130*/ OPC_CheckInteger, 7, ++/*273132*/ OPC_CheckType, MVT::i32, ++/*273134*/ OPC_MoveParent, ++/*273135*/ OPC_MoveChild, 14, ++/*273137*/ OPC_CheckInteger, 7, ++/*273139*/ OPC_CheckType, MVT::i32, ++/*273141*/ OPC_MoveParent, ++/*273142*/ OPC_MoveChild, 15, ++/*273144*/ OPC_CheckInteger, 7, ++/*273146*/ OPC_CheckType, MVT::i32, ++/*273148*/ OPC_MoveParent, ++/*273149*/ OPC_MoveChild, 16, ++/*273151*/ OPC_CheckInteger, 7, ++/*273153*/ OPC_CheckType, MVT::i32, ++/*273155*/ OPC_MoveParent, ++/*273156*/ OPC_MoveChild, 17, ++/*273158*/ OPC_CheckInteger, 7, ++/*273160*/ OPC_CheckType, MVT::i32, ++/*273162*/ OPC_MoveParent, ++/*273163*/ OPC_MoveChild, 18, ++/*273165*/ OPC_CheckInteger, 7, ++/*273167*/ OPC_CheckType, MVT::i32, ++/*273169*/ OPC_MoveParent, ++/*273170*/ OPC_MoveChild, 19, ++/*273172*/ OPC_CheckInteger, 7, ++/*273174*/ OPC_CheckType, MVT::i32, ++/*273176*/ OPC_MoveParent, ++/*273177*/ OPC_MoveChild, 20, ++/*273179*/ OPC_CheckInteger, 7, ++/*273181*/ OPC_CheckType, MVT::i32, ++/*273183*/ OPC_MoveParent, ++/*273184*/ OPC_MoveChild, 21, ++/*273186*/ OPC_CheckInteger, 7, ++/*273188*/ OPC_CheckType, MVT::i32, ++/*273190*/ OPC_MoveParent, ++/*273191*/ OPC_MoveChild, 22, ++/*273193*/ OPC_CheckInteger, 7, ++/*273195*/ OPC_CheckType, MVT::i32, ++/*273197*/ OPC_MoveParent, ++/*273198*/ OPC_MoveChild, 23, ++/*273200*/ OPC_CheckInteger, 7, ++/*273202*/ OPC_CheckType, MVT::i32, ++/*273204*/ OPC_MoveParent, ++/*273205*/ OPC_MoveChild, 24, ++/*273207*/ OPC_CheckInteger, 7, ++/*273209*/ OPC_CheckType, MVT::i32, ++/*273211*/ OPC_MoveParent, ++/*273212*/ OPC_MoveChild, 25, ++/*273214*/ OPC_CheckInteger, 7, ++/*273216*/ OPC_CheckType, MVT::i32, ++/*273218*/ OPC_MoveParent, ++/*273219*/ OPC_MoveChild, 26, ++/*273221*/ OPC_CheckInteger, 7, ++/*273223*/ OPC_CheckType, MVT::i32, ++/*273225*/ OPC_MoveParent, ++/*273226*/ OPC_MoveChild, 27, ++/*273228*/ OPC_CheckInteger, 7, ++/*273230*/ OPC_CheckType, MVT::i32, ++/*273232*/ OPC_MoveParent, ++/*273233*/ OPC_MoveChild, 28, ++/*273235*/ OPC_CheckInteger, 7, ++/*273237*/ OPC_CheckType, MVT::i32, ++/*273239*/ OPC_MoveParent, ++/*273240*/ OPC_MoveChild, 29, ++/*273242*/ OPC_CheckInteger, 7, ++/*273244*/ OPC_CheckType, MVT::i32, ++/*273246*/ OPC_MoveParent, ++/*273247*/ OPC_MoveChild, 30, ++/*273249*/ OPC_CheckInteger, 7, ++/*273251*/ OPC_CheckType, MVT::i32, ++/*273253*/ OPC_MoveParent, ++/*273254*/ OPC_MoveChild, 31, ++/*273256*/ OPC_CheckInteger, 7, ++/*273258*/ OPC_CheckType, MVT::i32, ++/*273260*/ OPC_MoveParent, ++/*273261*/ OPC_CheckType, MVT::v32i8, ++/*273263*/ OPC_MoveParent, ++/*273264*/ OPC_MoveParent, ++/*273265*/ OPC_Scope, 103|128,1/*231*/, /*->273499*/ // 2 children in Scope ++/*273268*/ OPC_CheckChild1Same, 1, ++/*273270*/ OPC_MoveParent, ++/*273271*/ OPC_CheckChild1Same, 0, ++/*273273*/ OPC_MoveParent, ++/*273274*/ OPC_MoveChild1, ++/*273275*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*273278*/ OPC_CheckChild0Integer, 1, ++/*273280*/ OPC_CheckChild0Type, MVT::i32, ++/*273282*/ OPC_CheckChild1Integer, 1, ++/*273284*/ OPC_CheckChild1Type, MVT::i32, ++/*273286*/ OPC_CheckChild2Integer, 1, ++/*273288*/ OPC_CheckChild2Type, MVT::i32, ++/*273290*/ OPC_CheckChild3Integer, 1, ++/*273292*/ OPC_CheckChild3Type, MVT::i32, ++/*273294*/ OPC_CheckChild4Integer, 1, ++/*273296*/ OPC_CheckChild4Type, MVT::i32, ++/*273298*/ OPC_MoveChild5, ++/*273299*/ OPC_CheckInteger, 1, ++/*273301*/ OPC_CheckType, MVT::i32, ++/*273303*/ OPC_MoveParent, ++/*273304*/ OPC_MoveChild6, ++/*273305*/ OPC_CheckInteger, 1, ++/*273307*/ OPC_CheckType, MVT::i32, ++/*273309*/ OPC_MoveParent, ++/*273310*/ OPC_MoveChild7, ++/*273311*/ OPC_CheckInteger, 1, ++/*273313*/ OPC_CheckType, MVT::i32, ++/*273315*/ OPC_MoveParent, ++/*273316*/ OPC_MoveChild, 8, ++/*273318*/ OPC_CheckInteger, 1, ++/*273320*/ OPC_CheckType, MVT::i32, ++/*273322*/ OPC_MoveParent, ++/*273323*/ OPC_MoveChild, 9, ++/*273325*/ OPC_CheckInteger, 1, ++/*273327*/ OPC_CheckType, MVT::i32, ++/*273329*/ OPC_MoveParent, ++/*273330*/ OPC_MoveChild, 10, ++/*273332*/ OPC_CheckInteger, 1, ++/*273334*/ OPC_CheckType, MVT::i32, ++/*273336*/ OPC_MoveParent, ++/*273337*/ OPC_MoveChild, 11, ++/*273339*/ OPC_CheckInteger, 1, ++/*273341*/ OPC_CheckType, MVT::i32, ++/*273343*/ OPC_MoveParent, ++/*273344*/ OPC_MoveChild, 12, ++/*273346*/ OPC_CheckInteger, 1, ++/*273348*/ OPC_CheckType, MVT::i32, ++/*273350*/ OPC_MoveParent, ++/*273351*/ OPC_MoveChild, 13, ++/*273353*/ OPC_CheckInteger, 1, ++/*273355*/ OPC_CheckType, MVT::i32, ++/*273357*/ OPC_MoveParent, ++/*273358*/ OPC_MoveChild, 14, ++/*273360*/ OPC_CheckInteger, 1, ++/*273362*/ OPC_CheckType, MVT::i32, ++/*273364*/ OPC_MoveParent, ++/*273365*/ OPC_MoveChild, 15, ++/*273367*/ OPC_CheckInteger, 1, ++/*273369*/ OPC_CheckType, MVT::i32, ++/*273371*/ OPC_MoveParent, ++/*273372*/ OPC_MoveChild, 16, ++/*273374*/ OPC_CheckInteger, 1, ++/*273376*/ OPC_CheckType, MVT::i32, ++/*273378*/ OPC_MoveParent, ++/*273379*/ OPC_MoveChild, 17, ++/*273381*/ OPC_CheckInteger, 1, ++/*273383*/ OPC_CheckType, MVT::i32, ++/*273385*/ OPC_MoveParent, ++/*273386*/ OPC_MoveChild, 18, ++/*273388*/ OPC_CheckInteger, 1, ++/*273390*/ OPC_CheckType, MVT::i32, ++/*273392*/ OPC_MoveParent, ++/*273393*/ OPC_MoveChild, 19, ++/*273395*/ OPC_CheckInteger, 1, ++/*273397*/ OPC_CheckType, MVT::i32, ++/*273399*/ OPC_MoveParent, ++/*273400*/ OPC_MoveChild, 20, ++/*273402*/ OPC_CheckInteger, 1, ++/*273404*/ OPC_CheckType, MVT::i32, ++/*273406*/ OPC_MoveParent, ++/*273407*/ OPC_MoveChild, 21, ++/*273409*/ OPC_CheckInteger, 1, ++/*273411*/ OPC_CheckType, MVT::i32, ++/*273413*/ OPC_MoveParent, ++/*273414*/ OPC_MoveChild, 22, ++/*273416*/ OPC_CheckInteger, 1, ++/*273418*/ OPC_CheckType, MVT::i32, ++/*273420*/ OPC_MoveParent, ++/*273421*/ OPC_MoveChild, 23, ++/*273423*/ OPC_CheckInteger, 1, ++/*273425*/ OPC_CheckType, MVT::i32, ++/*273427*/ OPC_MoveParent, ++/*273428*/ OPC_MoveChild, 24, ++/*273430*/ OPC_CheckInteger, 1, ++/*273432*/ OPC_CheckType, MVT::i32, ++/*273434*/ OPC_MoveParent, ++/*273435*/ OPC_MoveChild, 25, ++/*273437*/ OPC_CheckInteger, 1, ++/*273439*/ OPC_CheckType, MVT::i32, ++/*273441*/ OPC_MoveParent, ++/*273442*/ OPC_MoveChild, 26, ++/*273444*/ OPC_CheckInteger, 1, ++/*273446*/ OPC_CheckType, MVT::i32, ++/*273448*/ OPC_MoveParent, ++/*273449*/ OPC_MoveChild, 27, ++/*273451*/ OPC_CheckInteger, 1, ++/*273453*/ OPC_CheckType, MVT::i32, ++/*273455*/ OPC_MoveParent, ++/*273456*/ OPC_MoveChild, 28, ++/*273458*/ OPC_CheckInteger, 1, ++/*273460*/ OPC_CheckType, MVT::i32, ++/*273462*/ OPC_MoveParent, ++/*273463*/ OPC_MoveChild, 29, ++/*273465*/ OPC_CheckInteger, 1, ++/*273467*/ OPC_CheckType, MVT::i32, ++/*273469*/ OPC_MoveParent, ++/*273470*/ OPC_MoveChild, 30, ++/*273472*/ OPC_CheckInteger, 1, ++/*273474*/ OPC_CheckType, MVT::i32, ++/*273476*/ OPC_MoveParent, ++/*273477*/ OPC_MoveChild, 31, ++/*273479*/ OPC_CheckInteger, 1, ++/*273481*/ OPC_CheckType, MVT::i32, ++/*273483*/ OPC_MoveParent, ++/*273484*/ OPC_CheckType, MVT::v32i8, ++/*273486*/ OPC_MoveParent, ++/*273487*/ OPC_CheckType, MVT::v32i8, ++/*273489*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*273491*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$b), LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 341 ++ // Dst: (XVAVG_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*273499*/ /*Scope*/ 103|128,1/*231*/, /*->273732*/ ++/*273501*/ OPC_CheckChild1Same, 0, ++/*273503*/ OPC_MoveParent, ++/*273504*/ OPC_CheckChild1Same, 1, ++/*273506*/ OPC_MoveParent, ++/*273507*/ OPC_MoveChild1, ++/*273508*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*273511*/ OPC_CheckChild0Integer, 1, ++/*273513*/ OPC_CheckChild0Type, MVT::i32, ++/*273515*/ OPC_CheckChild1Integer, 1, ++/*273517*/ OPC_CheckChild1Type, MVT::i32, ++/*273519*/ OPC_CheckChild2Integer, 1, ++/*273521*/ OPC_CheckChild2Type, MVT::i32, ++/*273523*/ OPC_CheckChild3Integer, 1, ++/*273525*/ OPC_CheckChild3Type, MVT::i32, ++/*273527*/ OPC_CheckChild4Integer, 1, ++/*273529*/ OPC_CheckChild4Type, MVT::i32, ++/*273531*/ OPC_MoveChild5, ++/*273532*/ OPC_CheckInteger, 1, ++/*273534*/ OPC_CheckType, MVT::i32, ++/*273536*/ OPC_MoveParent, ++/*273537*/ OPC_MoveChild6, ++/*273538*/ OPC_CheckInteger, 1, ++/*273540*/ OPC_CheckType, MVT::i32, ++/*273542*/ OPC_MoveParent, ++/*273543*/ OPC_MoveChild7, ++/*273544*/ OPC_CheckInteger, 1, ++/*273546*/ OPC_CheckType, MVT::i32, ++/*273548*/ OPC_MoveParent, ++/*273549*/ OPC_MoveChild, 8, ++/*273551*/ OPC_CheckInteger, 1, ++/*273553*/ OPC_CheckType, MVT::i32, ++/*273555*/ OPC_MoveParent, ++/*273556*/ OPC_MoveChild, 9, ++/*273558*/ OPC_CheckInteger, 1, ++/*273560*/ OPC_CheckType, MVT::i32, ++/*273562*/ OPC_MoveParent, ++/*273563*/ OPC_MoveChild, 10, ++/*273565*/ OPC_CheckInteger, 1, ++/*273567*/ OPC_CheckType, MVT::i32, ++/*273569*/ OPC_MoveParent, ++/*273570*/ OPC_MoveChild, 11, ++/*273572*/ OPC_CheckInteger, 1, ++/*273574*/ OPC_CheckType, MVT::i32, ++/*273576*/ OPC_MoveParent, ++/*273577*/ OPC_MoveChild, 12, ++/*273579*/ OPC_CheckInteger, 1, ++/*273581*/ OPC_CheckType, MVT::i32, ++/*273583*/ OPC_MoveParent, ++/*273584*/ OPC_MoveChild, 13, ++/*273586*/ OPC_CheckInteger, 1, ++/*273588*/ OPC_CheckType, MVT::i32, ++/*273590*/ OPC_MoveParent, ++/*273591*/ OPC_MoveChild, 14, ++/*273593*/ OPC_CheckInteger, 1, ++/*273595*/ OPC_CheckType, MVT::i32, ++/*273597*/ OPC_MoveParent, ++/*273598*/ OPC_MoveChild, 15, ++/*273600*/ OPC_CheckInteger, 1, ++/*273602*/ OPC_CheckType, MVT::i32, ++/*273604*/ OPC_MoveParent, ++/*273605*/ OPC_MoveChild, 16, ++/*273607*/ OPC_CheckInteger, 1, ++/*273609*/ OPC_CheckType, MVT::i32, ++/*273611*/ OPC_MoveParent, ++/*273612*/ OPC_MoveChild, 17, ++/*273614*/ OPC_CheckInteger, 1, ++/*273616*/ OPC_CheckType, MVT::i32, ++/*273618*/ OPC_MoveParent, ++/*273619*/ OPC_MoveChild, 18, ++/*273621*/ OPC_CheckInteger, 1, ++/*273623*/ OPC_CheckType, MVT::i32, ++/*273625*/ OPC_MoveParent, ++/*273626*/ OPC_MoveChild, 19, ++/*273628*/ OPC_CheckInteger, 1, ++/*273630*/ OPC_CheckType, MVT::i32, ++/*273632*/ OPC_MoveParent, ++/*273633*/ OPC_MoveChild, 20, ++/*273635*/ OPC_CheckInteger, 1, ++/*273637*/ OPC_CheckType, MVT::i32, ++/*273639*/ OPC_MoveParent, ++/*273640*/ OPC_MoveChild, 21, ++/*273642*/ OPC_CheckInteger, 1, ++/*273644*/ OPC_CheckType, MVT::i32, ++/*273646*/ OPC_MoveParent, ++/*273647*/ OPC_MoveChild, 22, ++/*273649*/ OPC_CheckInteger, 1, ++/*273651*/ OPC_CheckType, MVT::i32, ++/*273653*/ OPC_MoveParent, ++/*273654*/ OPC_MoveChild, 23, ++/*273656*/ OPC_CheckInteger, 1, ++/*273658*/ OPC_CheckType, MVT::i32, ++/*273660*/ OPC_MoveParent, ++/*273661*/ OPC_MoveChild, 24, ++/*273663*/ OPC_CheckInteger, 1, ++/*273665*/ OPC_CheckType, MVT::i32, ++/*273667*/ OPC_MoveParent, ++/*273668*/ OPC_MoveChild, 25, ++/*273670*/ OPC_CheckInteger, 1, ++/*273672*/ OPC_CheckType, MVT::i32, ++/*273674*/ OPC_MoveParent, ++/*273675*/ OPC_MoveChild, 26, ++/*273677*/ OPC_CheckInteger, 1, ++/*273679*/ OPC_CheckType, MVT::i32, ++/*273681*/ OPC_MoveParent, ++/*273682*/ OPC_MoveChild, 27, ++/*273684*/ OPC_CheckInteger, 1, ++/*273686*/ OPC_CheckType, MVT::i32, ++/*273688*/ OPC_MoveParent, ++/*273689*/ OPC_MoveChild, 28, ++/*273691*/ OPC_CheckInteger, 1, ++/*273693*/ OPC_CheckType, MVT::i32, ++/*273695*/ OPC_MoveParent, ++/*273696*/ OPC_MoveChild, 29, ++/*273698*/ OPC_CheckInteger, 1, ++/*273700*/ OPC_CheckType, MVT::i32, ++/*273702*/ OPC_MoveParent, ++/*273703*/ OPC_MoveChild, 30, ++/*273705*/ OPC_CheckInteger, 1, ++/*273707*/ OPC_CheckType, MVT::i32, ++/*273709*/ OPC_MoveParent, ++/*273710*/ OPC_MoveChild, 31, ++/*273712*/ OPC_CheckInteger, 1, ++/*273714*/ OPC_CheckType, MVT::i32, ++/*273716*/ OPC_MoveParent, ++/*273717*/ OPC_CheckType, MVT::v32i8, ++/*273719*/ OPC_MoveParent, ++/*273720*/ OPC_CheckType, MVT::v32i8, ++/*273722*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*273724*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$b), LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 341 ++ // Dst: (XVAVG_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*273732*/ 0, /*End of Scope*/ ++/*273733*/ 0, /*End of Scope*/ ++/*273734*/ /*SwitchOpcode*/ 50|128,18|128,8/*133426*/, TARGET_VAL(ISD::SRL),// ->407165 ++/*273739*/ OPC_MoveChild0, ++/*273740*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*273743*/ OPC_Scope, 113|128,2|128,2/*33137*/, /*->306884*/ // 8 children in Scope ++/*273747*/ OPC_MoveChild0, ++/*273748*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*273751*/ OPC_Scope, 88|128,43/*5592*/, /*->279346*/ // 4 children in Scope ++/*273754*/ OPC_MoveChild0, ++/*273755*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*273758*/ OPC_CheckChild0Integer, 1, ++/*273760*/ OPC_CheckChild0Type, MVT::i32, ++/*273762*/ OPC_CheckChild1Integer, 1, ++/*273764*/ OPC_CheckChild1Type, MVT::i32, ++/*273766*/ OPC_CheckChild2Integer, 1, ++/*273768*/ OPC_CheckChild2Type, MVT::i32, ++/*273770*/ OPC_CheckChild3Integer, 1, ++/*273772*/ OPC_CheckChild3Type, MVT::i32, ++/*273774*/ OPC_CheckChild4Integer, 1, ++/*273776*/ OPC_CheckChild4Type, MVT::i32, ++/*273778*/ OPC_MoveChild5, ++/*273779*/ OPC_CheckInteger, 1, ++/*273781*/ OPC_CheckType, MVT::i32, ++/*273783*/ OPC_MoveParent, ++/*273784*/ OPC_MoveChild6, ++/*273785*/ OPC_CheckInteger, 1, ++/*273787*/ OPC_CheckType, MVT::i32, ++/*273789*/ OPC_MoveParent, ++/*273790*/ OPC_MoveChild7, ++/*273791*/ OPC_CheckInteger, 1, ++/*273793*/ OPC_CheckType, MVT::i32, ++/*273795*/ OPC_MoveParent, ++/*273796*/ OPC_MoveChild, 8, ++/*273798*/ OPC_CheckInteger, 1, ++/*273800*/ OPC_CheckType, MVT::i32, ++/*273802*/ OPC_MoveParent, ++/*273803*/ OPC_MoveChild, 9, ++/*273805*/ OPC_CheckInteger, 1, ++/*273807*/ OPC_CheckType, MVT::i32, ++/*273809*/ OPC_MoveParent, ++/*273810*/ OPC_MoveChild, 10, ++/*273812*/ OPC_CheckInteger, 1, ++/*273814*/ OPC_CheckType, MVT::i32, ++/*273816*/ OPC_MoveParent, ++/*273817*/ OPC_MoveChild, 11, ++/*273819*/ OPC_CheckInteger, 1, ++/*273821*/ OPC_CheckType, MVT::i32, ++/*273823*/ OPC_MoveParent, ++/*273824*/ OPC_MoveChild, 12, ++/*273826*/ OPC_CheckInteger, 1, ++/*273828*/ OPC_CheckType, MVT::i32, ++/*273830*/ OPC_MoveParent, ++/*273831*/ OPC_MoveChild, 13, ++/*273833*/ OPC_CheckInteger, 1, ++/*273835*/ OPC_CheckType, MVT::i32, ++/*273837*/ OPC_MoveParent, ++/*273838*/ OPC_MoveChild, 14, ++/*273840*/ OPC_CheckInteger, 1, ++/*273842*/ OPC_CheckType, MVT::i32, ++/*273844*/ OPC_MoveParent, ++/*273845*/ OPC_MoveChild, 15, ++/*273847*/ OPC_CheckInteger, 1, ++/*273849*/ OPC_CheckType, MVT::i32, ++/*273851*/ OPC_MoveParent, ++/*273852*/ OPC_MoveChild, 16, ++/*273854*/ OPC_CheckInteger, 1, ++/*273856*/ OPC_CheckType, MVT::i32, ++/*273858*/ OPC_MoveParent, ++/*273859*/ OPC_MoveChild, 17, ++/*273861*/ OPC_CheckInteger, 1, ++/*273863*/ OPC_CheckType, MVT::i32, ++/*273865*/ OPC_MoveParent, ++/*273866*/ OPC_MoveChild, 18, ++/*273868*/ OPC_CheckInteger, 1, ++/*273870*/ OPC_CheckType, MVT::i32, ++/*273872*/ OPC_MoveParent, ++/*273873*/ OPC_MoveChild, 19, ++/*273875*/ OPC_CheckInteger, 1, ++/*273877*/ OPC_CheckType, MVT::i32, ++/*273879*/ OPC_MoveParent, ++/*273880*/ OPC_MoveChild, 20, ++/*273882*/ OPC_CheckInteger, 1, ++/*273884*/ OPC_CheckType, MVT::i32, ++/*273886*/ OPC_MoveParent, ++/*273887*/ OPC_MoveChild, 21, ++/*273889*/ OPC_CheckInteger, 1, ++/*273891*/ OPC_CheckType, MVT::i32, ++/*273893*/ OPC_MoveParent, ++/*273894*/ OPC_MoveChild, 22, ++/*273896*/ OPC_CheckInteger, 1, ++/*273898*/ OPC_CheckType, MVT::i32, ++/*273900*/ OPC_MoveParent, ++/*273901*/ OPC_MoveChild, 23, ++/*273903*/ OPC_CheckInteger, 1, ++/*273905*/ OPC_CheckType, MVT::i32, ++/*273907*/ OPC_MoveParent, ++/*273908*/ OPC_MoveChild, 24, ++/*273910*/ OPC_CheckInteger, 1, ++/*273912*/ OPC_CheckType, MVT::i32, ++/*273914*/ OPC_MoveParent, ++/*273915*/ OPC_MoveChild, 25, ++/*273917*/ OPC_CheckInteger, 1, ++/*273919*/ OPC_CheckType, MVT::i32, ++/*273921*/ OPC_MoveParent, ++/*273922*/ OPC_MoveChild, 26, ++/*273924*/ OPC_CheckInteger, 1, ++/*273926*/ OPC_CheckType, MVT::i32, ++/*273928*/ OPC_MoveParent, ++/*273929*/ OPC_MoveChild, 27, ++/*273931*/ OPC_CheckInteger, 1, ++/*273933*/ OPC_CheckType, MVT::i32, ++/*273935*/ OPC_MoveParent, ++/*273936*/ OPC_MoveChild, 28, ++/*273938*/ OPC_CheckInteger, 1, ++/*273940*/ OPC_CheckType, MVT::i32, ++/*273942*/ OPC_MoveParent, ++/*273943*/ OPC_MoveChild, 29, ++/*273945*/ OPC_CheckInteger, 1, ++/*273947*/ OPC_CheckType, MVT::i32, ++/*273949*/ OPC_MoveParent, ++/*273950*/ OPC_MoveChild, 30, ++/*273952*/ OPC_CheckInteger, 1, ++/*273954*/ OPC_CheckType, MVT::i32, ++/*273956*/ OPC_MoveParent, ++/*273957*/ OPC_MoveChild, 31, ++/*273959*/ OPC_CheckInteger, 1, ++/*273961*/ OPC_CheckType, MVT::i32, ++/*273963*/ OPC_MoveParent, ++/*273964*/ OPC_MoveParent, ++/*273965*/ OPC_RecordChild1, // #0 = $a ++/*273966*/ OPC_MoveParent, ++/*273967*/ OPC_RecordChild1, // #1 = $b ++/*273968*/ OPC_MoveParent, ++/*273969*/ OPC_MoveChild1, ++/*273970*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*273973*/ OPC_CheckChild0Integer, 7, ++/*273975*/ OPC_CheckChild0Type, MVT::i32, ++/*273977*/ OPC_CheckChild1Integer, 7, ++/*273979*/ OPC_CheckChild1Type, MVT::i32, ++/*273981*/ OPC_CheckChild2Integer, 7, ++/*273983*/ OPC_CheckChild2Type, MVT::i32, ++/*273985*/ OPC_CheckChild3Integer, 7, ++/*273987*/ OPC_CheckChild3Type, MVT::i32, ++/*273989*/ OPC_CheckChild4Integer, 7, ++/*273991*/ OPC_CheckChild4Type, MVT::i32, ++/*273993*/ OPC_MoveChild5, ++/*273994*/ OPC_CheckInteger, 7, ++/*273996*/ OPC_CheckType, MVT::i32, ++/*273998*/ OPC_MoveParent, ++/*273999*/ OPC_MoveChild6, ++/*274000*/ OPC_CheckInteger, 7, ++/*274002*/ OPC_CheckType, MVT::i32, ++/*274004*/ OPC_MoveParent, ++/*274005*/ OPC_MoveChild7, ++/*274006*/ OPC_CheckInteger, 7, ++/*274008*/ OPC_CheckType, MVT::i32, ++/*274010*/ OPC_MoveParent, ++/*274011*/ OPC_MoveChild, 8, ++/*274013*/ OPC_CheckInteger, 7, ++/*274015*/ OPC_CheckType, MVT::i32, ++/*274017*/ OPC_MoveParent, ++/*274018*/ OPC_MoveChild, 9, ++/*274020*/ OPC_CheckInteger, 7, ++/*274022*/ OPC_CheckType, MVT::i32, ++/*274024*/ OPC_MoveParent, ++/*274025*/ OPC_MoveChild, 10, ++/*274027*/ OPC_CheckInteger, 7, ++/*274029*/ OPC_CheckType, MVT::i32, ++/*274031*/ OPC_MoveParent, ++/*274032*/ OPC_MoveChild, 11, ++/*274034*/ OPC_CheckInteger, 7, ++/*274036*/ OPC_CheckType, MVT::i32, ++/*274038*/ OPC_MoveParent, ++/*274039*/ OPC_MoveChild, 12, ++/*274041*/ OPC_CheckInteger, 7, ++/*274043*/ OPC_CheckType, MVT::i32, ++/*274045*/ OPC_MoveParent, ++/*274046*/ OPC_MoveChild, 13, ++/*274048*/ OPC_CheckInteger, 7, ++/*274050*/ OPC_CheckType, MVT::i32, ++/*274052*/ OPC_MoveParent, ++/*274053*/ OPC_MoveChild, 14, ++/*274055*/ OPC_CheckInteger, 7, ++/*274057*/ OPC_CheckType, MVT::i32, ++/*274059*/ OPC_MoveParent, ++/*274060*/ OPC_MoveChild, 15, ++/*274062*/ OPC_CheckInteger, 7, ++/*274064*/ OPC_CheckType, MVT::i32, ++/*274066*/ OPC_MoveParent, ++/*274067*/ OPC_MoveChild, 16, ++/*274069*/ OPC_CheckInteger, 7, ++/*274071*/ OPC_CheckType, MVT::i32, ++/*274073*/ OPC_MoveParent, ++/*274074*/ OPC_MoveChild, 17, ++/*274076*/ OPC_CheckInteger, 7, ++/*274078*/ OPC_CheckType, MVT::i32, ++/*274080*/ OPC_MoveParent, ++/*274081*/ OPC_MoveChild, 18, ++/*274083*/ OPC_CheckInteger, 7, ++/*274085*/ OPC_CheckType, MVT::i32, ++/*274087*/ OPC_MoveParent, ++/*274088*/ OPC_MoveChild, 19, ++/*274090*/ OPC_CheckInteger, 7, ++/*274092*/ OPC_CheckType, MVT::i32, ++/*274094*/ OPC_MoveParent, ++/*274095*/ OPC_MoveChild, 20, ++/*274097*/ OPC_CheckInteger, 7, ++/*274099*/ OPC_CheckType, MVT::i32, ++/*274101*/ OPC_MoveParent, ++/*274102*/ OPC_MoveChild, 21, ++/*274104*/ OPC_CheckInteger, 7, ++/*274106*/ OPC_CheckType, MVT::i32, ++/*274108*/ OPC_MoveParent, ++/*274109*/ OPC_MoveChild, 22, ++/*274111*/ OPC_CheckInteger, 7, ++/*274113*/ OPC_CheckType, MVT::i32, ++/*274115*/ OPC_MoveParent, ++/*274116*/ OPC_MoveChild, 23, ++/*274118*/ OPC_CheckInteger, 7, ++/*274120*/ OPC_CheckType, MVT::i32, ++/*274122*/ OPC_MoveParent, ++/*274123*/ OPC_MoveChild, 24, ++/*274125*/ OPC_CheckInteger, 7, ++/*274127*/ OPC_CheckType, MVT::i32, ++/*274129*/ OPC_MoveParent, ++/*274130*/ OPC_MoveChild, 25, ++/*274132*/ OPC_CheckInteger, 7, ++/*274134*/ OPC_CheckType, MVT::i32, ++/*274136*/ OPC_MoveParent, ++/*274137*/ OPC_MoveChild, 26, ++/*274139*/ OPC_CheckInteger, 7, ++/*274141*/ OPC_CheckType, MVT::i32, ++/*274143*/ OPC_MoveParent, ++/*274144*/ OPC_MoveChild, 27, ++/*274146*/ OPC_CheckInteger, 7, ++/*274148*/ OPC_CheckType, MVT::i32, ++/*274150*/ OPC_MoveParent, ++/*274151*/ OPC_MoveChild, 28, ++/*274153*/ OPC_CheckInteger, 7, ++/*274155*/ OPC_CheckType, MVT::i32, ++/*274157*/ OPC_MoveParent, ++/*274158*/ OPC_MoveChild, 29, ++/*274160*/ OPC_CheckInteger, 7, ++/*274162*/ OPC_CheckType, MVT::i32, ++/*274164*/ OPC_MoveParent, ++/*274165*/ OPC_MoveChild, 30, ++/*274167*/ OPC_CheckInteger, 7, ++/*274169*/ OPC_CheckType, MVT::i32, ++/*274171*/ OPC_MoveParent, ++/*274172*/ OPC_MoveChild, 31, ++/*274174*/ OPC_CheckInteger, 7, ++/*274176*/ OPC_CheckType, MVT::i32, ++/*274178*/ OPC_MoveParent, ++/*274179*/ OPC_CheckType, MVT::v32i8, ++/*274181*/ OPC_MoveParent, ++/*274182*/ OPC_MoveParent, ++/*274183*/ OPC_MoveChild1, ++/*274184*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*274187*/ OPC_Scope, 116|128,20/*2676*/, /*->276866*/ // 4 children in Scope ++/*274190*/ OPC_MoveChild0, ++/*274191*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*274194*/ OPC_Scope, 59|128,3/*443*/, /*->274640*/ // 6 children in Scope ++/*274197*/ OPC_MoveChild0, ++/*274198*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*274201*/ OPC_CheckChild0Integer, 1, ++/*274203*/ OPC_CheckChild0Type, MVT::i32, ++/*274205*/ OPC_CheckChild1Integer, 1, ++/*274207*/ OPC_CheckChild1Type, MVT::i32, ++/*274209*/ OPC_CheckChild2Integer, 1, ++/*274211*/ OPC_CheckChild2Type, MVT::i32, ++/*274213*/ OPC_CheckChild3Integer, 1, ++/*274215*/ OPC_CheckChild3Type, MVT::i32, ++/*274217*/ OPC_CheckChild4Integer, 1, ++/*274219*/ OPC_CheckChild4Type, MVT::i32, ++/*274221*/ OPC_MoveChild5, ++/*274222*/ OPC_CheckInteger, 1, ++/*274224*/ OPC_CheckType, MVT::i32, ++/*274226*/ OPC_MoveParent, ++/*274227*/ OPC_MoveChild6, ++/*274228*/ OPC_CheckInteger, 1, ++/*274230*/ OPC_CheckType, MVT::i32, ++/*274232*/ OPC_MoveParent, ++/*274233*/ OPC_MoveChild7, ++/*274234*/ OPC_CheckInteger, 1, ++/*274236*/ OPC_CheckType, MVT::i32, ++/*274238*/ OPC_MoveParent, ++/*274239*/ OPC_MoveChild, 8, ++/*274241*/ OPC_CheckInteger, 1, ++/*274243*/ OPC_CheckType, MVT::i32, ++/*274245*/ OPC_MoveParent, ++/*274246*/ OPC_MoveChild, 9, ++/*274248*/ OPC_CheckInteger, 1, ++/*274250*/ OPC_CheckType, MVT::i32, ++/*274252*/ OPC_MoveParent, ++/*274253*/ OPC_MoveChild, 10, ++/*274255*/ OPC_CheckInteger, 1, ++/*274257*/ OPC_CheckType, MVT::i32, ++/*274259*/ OPC_MoveParent, ++/*274260*/ OPC_MoveChild, 11, ++/*274262*/ OPC_CheckInteger, 1, ++/*274264*/ OPC_CheckType, MVT::i32, ++/*274266*/ OPC_MoveParent, ++/*274267*/ OPC_MoveChild, 12, ++/*274269*/ OPC_CheckInteger, 1, ++/*274271*/ OPC_CheckType, MVT::i32, ++/*274273*/ OPC_MoveParent, ++/*274274*/ OPC_MoveChild, 13, ++/*274276*/ OPC_CheckInteger, 1, ++/*274278*/ OPC_CheckType, MVT::i32, ++/*274280*/ OPC_MoveParent, ++/*274281*/ OPC_MoveChild, 14, ++/*274283*/ OPC_CheckInteger, 1, ++/*274285*/ OPC_CheckType, MVT::i32, ++/*274287*/ OPC_MoveParent, ++/*274288*/ OPC_MoveChild, 15, ++/*274290*/ OPC_CheckInteger, 1, ++/*274292*/ OPC_CheckType, MVT::i32, ++/*274294*/ OPC_MoveParent, ++/*274295*/ OPC_MoveChild, 16, ++/*274297*/ OPC_CheckInteger, 1, ++/*274299*/ OPC_CheckType, MVT::i32, ++/*274301*/ OPC_MoveParent, ++/*274302*/ OPC_MoveChild, 17, ++/*274304*/ OPC_CheckInteger, 1, ++/*274306*/ OPC_CheckType, MVT::i32, ++/*274308*/ OPC_MoveParent, ++/*274309*/ OPC_MoveChild, 18, ++/*274311*/ OPC_CheckInteger, 1, ++/*274313*/ OPC_CheckType, MVT::i32, ++/*274315*/ OPC_MoveParent, ++/*274316*/ OPC_MoveChild, 19, ++/*274318*/ OPC_CheckInteger, 1, ++/*274320*/ OPC_CheckType, MVT::i32, ++/*274322*/ OPC_MoveParent, ++/*274323*/ OPC_MoveChild, 20, ++/*274325*/ OPC_CheckInteger, 1, ++/*274327*/ OPC_CheckType, MVT::i32, ++/*274329*/ OPC_MoveParent, ++/*274330*/ OPC_MoveChild, 21, ++/*274332*/ OPC_CheckInteger, 1, ++/*274334*/ OPC_CheckType, MVT::i32, ++/*274336*/ OPC_MoveParent, ++/*274337*/ OPC_MoveChild, 22, ++/*274339*/ OPC_CheckInteger, 1, ++/*274341*/ OPC_CheckType, MVT::i32, ++/*274343*/ OPC_MoveParent, ++/*274344*/ OPC_MoveChild, 23, ++/*274346*/ OPC_CheckInteger, 1, ++/*274348*/ OPC_CheckType, MVT::i32, ++/*274350*/ OPC_MoveParent, ++/*274351*/ OPC_MoveChild, 24, ++/*274353*/ OPC_CheckInteger, 1, ++/*274355*/ OPC_CheckType, MVT::i32, ++/*274357*/ OPC_MoveParent, ++/*274358*/ OPC_MoveChild, 25, ++/*274360*/ OPC_CheckInteger, 1, ++/*274362*/ OPC_CheckType, MVT::i32, ++/*274364*/ OPC_MoveParent, ++/*274365*/ OPC_MoveChild, 26, ++/*274367*/ OPC_CheckInteger, 1, ++/*274369*/ OPC_CheckType, MVT::i32, ++/*274371*/ OPC_MoveParent, ++/*274372*/ OPC_MoveChild, 27, ++/*274374*/ OPC_CheckInteger, 1, ++/*274376*/ OPC_CheckType, MVT::i32, ++/*274378*/ OPC_MoveParent, ++/*274379*/ OPC_MoveChild, 28, ++/*274381*/ OPC_CheckInteger, 1, ++/*274383*/ OPC_CheckType, MVT::i32, ++/*274385*/ OPC_MoveParent, ++/*274386*/ OPC_MoveChild, 29, ++/*274388*/ OPC_CheckInteger, 1, ++/*274390*/ OPC_CheckType, MVT::i32, ++/*274392*/ OPC_MoveParent, ++/*274393*/ OPC_MoveChild, 30, ++/*274395*/ OPC_CheckInteger, 1, ++/*274397*/ OPC_CheckType, MVT::i32, ++/*274399*/ OPC_MoveParent, ++/*274400*/ OPC_MoveChild, 31, ++/*274402*/ OPC_CheckInteger, 1, ++/*274404*/ OPC_CheckType, MVT::i32, ++/*274406*/ OPC_MoveParent, ++/*274407*/ OPC_MoveParent, ++/*274408*/ OPC_CheckChild1Same, 0, ++/*274410*/ OPC_MoveParent, ++/*274411*/ OPC_CheckChild1Same, 1, ++/*274413*/ OPC_MoveParent, ++/*274414*/ OPC_MoveParent, ++/*274415*/ OPC_MoveChild1, ++/*274416*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*274419*/ OPC_CheckChild0Integer, 1, ++/*274421*/ OPC_CheckChild0Type, MVT::i32, ++/*274423*/ OPC_CheckChild1Integer, 1, ++/*274425*/ OPC_CheckChild1Type, MVT::i32, ++/*274427*/ OPC_CheckChild2Integer, 1, ++/*274429*/ OPC_CheckChild2Type, MVT::i32, ++/*274431*/ OPC_CheckChild3Integer, 1, ++/*274433*/ OPC_CheckChild3Type, MVT::i32, ++/*274435*/ OPC_CheckChild4Integer, 1, ++/*274437*/ OPC_CheckChild4Type, MVT::i32, ++/*274439*/ OPC_MoveChild5, ++/*274440*/ OPC_CheckInteger, 1, ++/*274442*/ OPC_CheckType, MVT::i32, ++/*274444*/ OPC_MoveParent, ++/*274445*/ OPC_MoveChild6, ++/*274446*/ OPC_CheckInteger, 1, ++/*274448*/ OPC_CheckType, MVT::i32, ++/*274450*/ OPC_MoveParent, ++/*274451*/ OPC_MoveChild7, ++/*274452*/ OPC_CheckInteger, 1, ++/*274454*/ OPC_CheckType, MVT::i32, ++/*274456*/ OPC_MoveParent, ++/*274457*/ OPC_MoveChild, 8, ++/*274459*/ OPC_CheckInteger, 1, ++/*274461*/ OPC_CheckType, MVT::i32, ++/*274463*/ OPC_MoveParent, ++/*274464*/ OPC_MoveChild, 9, ++/*274466*/ OPC_CheckInteger, 1, ++/*274468*/ OPC_CheckType, MVT::i32, ++/*274470*/ OPC_MoveParent, ++/*274471*/ OPC_MoveChild, 10, ++/*274473*/ OPC_CheckInteger, 1, ++/*274475*/ OPC_CheckType, MVT::i32, ++/*274477*/ OPC_MoveParent, ++/*274478*/ OPC_MoveChild, 11, ++/*274480*/ OPC_CheckInteger, 1, ++/*274482*/ OPC_CheckType, MVT::i32, ++/*274484*/ OPC_MoveParent, ++/*274485*/ OPC_MoveChild, 12, ++/*274487*/ OPC_CheckInteger, 1, ++/*274489*/ OPC_CheckType, MVT::i32, ++/*274491*/ OPC_MoveParent, ++/*274492*/ OPC_MoveChild, 13, ++/*274494*/ OPC_CheckInteger, 1, ++/*274496*/ OPC_CheckType, MVT::i32, ++/*274498*/ OPC_MoveParent, ++/*274499*/ OPC_MoveChild, 14, ++/*274501*/ OPC_CheckInteger, 1, ++/*274503*/ OPC_CheckType, MVT::i32, ++/*274505*/ OPC_MoveParent, ++/*274506*/ OPC_MoveChild, 15, ++/*274508*/ OPC_CheckInteger, 1, ++/*274510*/ OPC_CheckType, MVT::i32, ++/*274512*/ OPC_MoveParent, ++/*274513*/ OPC_MoveChild, 16, ++/*274515*/ OPC_CheckInteger, 1, ++/*274517*/ OPC_CheckType, MVT::i32, ++/*274519*/ OPC_MoveParent, ++/*274520*/ OPC_MoveChild, 17, ++/*274522*/ OPC_CheckInteger, 1, ++/*274524*/ OPC_CheckType, MVT::i32, ++/*274526*/ OPC_MoveParent, ++/*274527*/ OPC_MoveChild, 18, ++/*274529*/ OPC_CheckInteger, 1, ++/*274531*/ OPC_CheckType, MVT::i32, ++/*274533*/ OPC_MoveParent, ++/*274534*/ OPC_MoveChild, 19, ++/*274536*/ OPC_CheckInteger, 1, ++/*274538*/ OPC_CheckType, MVT::i32, ++/*274540*/ OPC_MoveParent, ++/*274541*/ OPC_MoveChild, 20, ++/*274543*/ OPC_CheckInteger, 1, ++/*274545*/ OPC_CheckType, MVT::i32, ++/*274547*/ OPC_MoveParent, ++/*274548*/ OPC_MoveChild, 21, ++/*274550*/ OPC_CheckInteger, 1, ++/*274552*/ OPC_CheckType, MVT::i32, ++/*274554*/ OPC_MoveParent, ++/*274555*/ OPC_MoveChild, 22, ++/*274557*/ OPC_CheckInteger, 1, ++/*274559*/ OPC_CheckType, MVT::i32, ++/*274561*/ OPC_MoveParent, ++/*274562*/ OPC_MoveChild, 23, ++/*274564*/ OPC_CheckInteger, 1, ++/*274566*/ OPC_CheckType, MVT::i32, ++/*274568*/ OPC_MoveParent, ++/*274569*/ OPC_MoveChild, 24, ++/*274571*/ OPC_CheckInteger, 1, ++/*274573*/ OPC_CheckType, MVT::i32, ++/*274575*/ OPC_MoveParent, ++/*274576*/ OPC_MoveChild, 25, ++/*274578*/ OPC_CheckInteger, 1, ++/*274580*/ OPC_CheckType, MVT::i32, ++/*274582*/ OPC_MoveParent, ++/*274583*/ OPC_MoveChild, 26, ++/*274585*/ OPC_CheckInteger, 1, ++/*274587*/ OPC_CheckType, MVT::i32, ++/*274589*/ OPC_MoveParent, ++/*274590*/ OPC_MoveChild, 27, ++/*274592*/ OPC_CheckInteger, 1, ++/*274594*/ OPC_CheckType, MVT::i32, ++/*274596*/ OPC_MoveParent, ++/*274597*/ OPC_MoveChild, 28, ++/*274599*/ OPC_CheckInteger, 1, ++/*274601*/ OPC_CheckType, MVT::i32, ++/*274603*/ OPC_MoveParent, ++/*274604*/ OPC_MoveChild, 29, ++/*274606*/ OPC_CheckInteger, 1, ++/*274608*/ OPC_CheckType, MVT::i32, ++/*274610*/ OPC_MoveParent, ++/*274611*/ OPC_MoveChild, 30, ++/*274613*/ OPC_CheckInteger, 1, ++/*274615*/ OPC_CheckType, MVT::i32, ++/*274617*/ OPC_MoveParent, ++/*274618*/ OPC_MoveChild, 31, ++/*274620*/ OPC_CheckInteger, 1, ++/*274622*/ OPC_CheckType, MVT::i32, ++/*274624*/ OPC_MoveParent, ++/*274625*/ OPC_CheckType, MVT::v32i8, ++/*274627*/ OPC_MoveParent, ++/*274628*/ OPC_CheckType, MVT::v32i8, ++/*274630*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*274632*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a), LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a), LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*274640*/ /*Scope*/ 59|128,3/*443*/, /*->275085*/ ++/*274642*/ OPC_CheckChild0Same, 0, ++/*274644*/ OPC_MoveChild1, ++/*274645*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*274648*/ OPC_CheckChild0Integer, 1, ++/*274650*/ OPC_CheckChild0Type, MVT::i32, ++/*274652*/ OPC_CheckChild1Integer, 1, ++/*274654*/ OPC_CheckChild1Type, MVT::i32, ++/*274656*/ OPC_CheckChild2Integer, 1, ++/*274658*/ OPC_CheckChild2Type, MVT::i32, ++/*274660*/ OPC_CheckChild3Integer, 1, ++/*274662*/ OPC_CheckChild3Type, MVT::i32, ++/*274664*/ OPC_CheckChild4Integer, 1, ++/*274666*/ OPC_CheckChild4Type, MVT::i32, ++/*274668*/ OPC_MoveChild5, ++/*274669*/ OPC_CheckInteger, 1, ++/*274671*/ OPC_CheckType, MVT::i32, ++/*274673*/ OPC_MoveParent, ++/*274674*/ OPC_MoveChild6, ++/*274675*/ OPC_CheckInteger, 1, ++/*274677*/ OPC_CheckType, MVT::i32, ++/*274679*/ OPC_MoveParent, ++/*274680*/ OPC_MoveChild7, ++/*274681*/ OPC_CheckInteger, 1, ++/*274683*/ OPC_CheckType, MVT::i32, ++/*274685*/ OPC_MoveParent, ++/*274686*/ OPC_MoveChild, 8, ++/*274688*/ OPC_CheckInteger, 1, ++/*274690*/ OPC_CheckType, MVT::i32, ++/*274692*/ OPC_MoveParent, ++/*274693*/ OPC_MoveChild, 9, ++/*274695*/ OPC_CheckInteger, 1, ++/*274697*/ OPC_CheckType, MVT::i32, ++/*274699*/ OPC_MoveParent, ++/*274700*/ OPC_MoveChild, 10, ++/*274702*/ OPC_CheckInteger, 1, ++/*274704*/ OPC_CheckType, MVT::i32, ++/*274706*/ OPC_MoveParent, ++/*274707*/ OPC_MoveChild, 11, ++/*274709*/ OPC_CheckInteger, 1, ++/*274711*/ OPC_CheckType, MVT::i32, ++/*274713*/ OPC_MoveParent, ++/*274714*/ OPC_MoveChild, 12, ++/*274716*/ OPC_CheckInteger, 1, ++/*274718*/ OPC_CheckType, MVT::i32, ++/*274720*/ OPC_MoveParent, ++/*274721*/ OPC_MoveChild, 13, ++/*274723*/ OPC_CheckInteger, 1, ++/*274725*/ OPC_CheckType, MVT::i32, ++/*274727*/ OPC_MoveParent, ++/*274728*/ OPC_MoveChild, 14, ++/*274730*/ OPC_CheckInteger, 1, ++/*274732*/ OPC_CheckType, MVT::i32, ++/*274734*/ OPC_MoveParent, ++/*274735*/ OPC_MoveChild, 15, ++/*274737*/ OPC_CheckInteger, 1, ++/*274739*/ OPC_CheckType, MVT::i32, ++/*274741*/ OPC_MoveParent, ++/*274742*/ OPC_MoveChild, 16, ++/*274744*/ OPC_CheckInteger, 1, ++/*274746*/ OPC_CheckType, MVT::i32, ++/*274748*/ OPC_MoveParent, ++/*274749*/ OPC_MoveChild, 17, ++/*274751*/ OPC_CheckInteger, 1, ++/*274753*/ OPC_CheckType, MVT::i32, ++/*274755*/ OPC_MoveParent, ++/*274756*/ OPC_MoveChild, 18, ++/*274758*/ OPC_CheckInteger, 1, ++/*274760*/ OPC_CheckType, MVT::i32, ++/*274762*/ OPC_MoveParent, ++/*274763*/ OPC_MoveChild, 19, ++/*274765*/ OPC_CheckInteger, 1, ++/*274767*/ OPC_CheckType, MVT::i32, ++/*274769*/ OPC_MoveParent, ++/*274770*/ OPC_MoveChild, 20, ++/*274772*/ OPC_CheckInteger, 1, ++/*274774*/ OPC_CheckType, MVT::i32, ++/*274776*/ OPC_MoveParent, ++/*274777*/ OPC_MoveChild, 21, ++/*274779*/ OPC_CheckInteger, 1, ++/*274781*/ OPC_CheckType, MVT::i32, ++/*274783*/ OPC_MoveParent, ++/*274784*/ OPC_MoveChild, 22, ++/*274786*/ OPC_CheckInteger, 1, ++/*274788*/ OPC_CheckType, MVT::i32, ++/*274790*/ OPC_MoveParent, ++/*274791*/ OPC_MoveChild, 23, ++/*274793*/ OPC_CheckInteger, 1, ++/*274795*/ OPC_CheckType, MVT::i32, ++/*274797*/ OPC_MoveParent, ++/*274798*/ OPC_MoveChild, 24, ++/*274800*/ OPC_CheckInteger, 1, ++/*274802*/ OPC_CheckType, MVT::i32, ++/*274804*/ OPC_MoveParent, ++/*274805*/ OPC_MoveChild, 25, ++/*274807*/ OPC_CheckInteger, 1, ++/*274809*/ OPC_CheckType, MVT::i32, ++/*274811*/ OPC_MoveParent, ++/*274812*/ OPC_MoveChild, 26, ++/*274814*/ OPC_CheckInteger, 1, ++/*274816*/ OPC_CheckType, MVT::i32, ++/*274818*/ OPC_MoveParent, ++/*274819*/ OPC_MoveChild, 27, ++/*274821*/ OPC_CheckInteger, 1, ++/*274823*/ OPC_CheckType, MVT::i32, ++/*274825*/ OPC_MoveParent, ++/*274826*/ OPC_MoveChild, 28, ++/*274828*/ OPC_CheckInteger, 1, ++/*274830*/ OPC_CheckType, MVT::i32, ++/*274832*/ OPC_MoveParent, ++/*274833*/ OPC_MoveChild, 29, ++/*274835*/ OPC_CheckInteger, 1, ++/*274837*/ OPC_CheckType, MVT::i32, ++/*274839*/ OPC_MoveParent, ++/*274840*/ OPC_MoveChild, 30, ++/*274842*/ OPC_CheckInteger, 1, ++/*274844*/ OPC_CheckType, MVT::i32, ++/*274846*/ OPC_MoveParent, ++/*274847*/ OPC_MoveChild, 31, ++/*274849*/ OPC_CheckInteger, 1, ++/*274851*/ OPC_CheckType, MVT::i32, ++/*274853*/ OPC_MoveParent, ++/*274854*/ OPC_MoveParent, ++/*274855*/ OPC_MoveParent, ++/*274856*/ OPC_CheckChild1Same, 1, ++/*274858*/ OPC_MoveParent, ++/*274859*/ OPC_MoveParent, ++/*274860*/ OPC_MoveChild1, ++/*274861*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*274864*/ OPC_CheckChild0Integer, 1, ++/*274866*/ OPC_CheckChild0Type, MVT::i32, ++/*274868*/ OPC_CheckChild1Integer, 1, ++/*274870*/ OPC_CheckChild1Type, MVT::i32, ++/*274872*/ OPC_CheckChild2Integer, 1, ++/*274874*/ OPC_CheckChild2Type, MVT::i32, ++/*274876*/ OPC_CheckChild3Integer, 1, ++/*274878*/ OPC_CheckChild3Type, MVT::i32, ++/*274880*/ OPC_CheckChild4Integer, 1, ++/*274882*/ OPC_CheckChild4Type, MVT::i32, ++/*274884*/ OPC_MoveChild5, ++/*274885*/ OPC_CheckInteger, 1, ++/*274887*/ OPC_CheckType, MVT::i32, ++/*274889*/ OPC_MoveParent, ++/*274890*/ OPC_MoveChild6, ++/*274891*/ OPC_CheckInteger, 1, ++/*274893*/ OPC_CheckType, MVT::i32, ++/*274895*/ OPC_MoveParent, ++/*274896*/ OPC_MoveChild7, ++/*274897*/ OPC_CheckInteger, 1, ++/*274899*/ OPC_CheckType, MVT::i32, ++/*274901*/ OPC_MoveParent, ++/*274902*/ OPC_MoveChild, 8, ++/*274904*/ OPC_CheckInteger, 1, ++/*274906*/ OPC_CheckType, MVT::i32, ++/*274908*/ OPC_MoveParent, ++/*274909*/ OPC_MoveChild, 9, ++/*274911*/ OPC_CheckInteger, 1, ++/*274913*/ OPC_CheckType, MVT::i32, ++/*274915*/ OPC_MoveParent, ++/*274916*/ OPC_MoveChild, 10, ++/*274918*/ OPC_CheckInteger, 1, ++/*274920*/ OPC_CheckType, MVT::i32, ++/*274922*/ OPC_MoveParent, ++/*274923*/ OPC_MoveChild, 11, ++/*274925*/ OPC_CheckInteger, 1, ++/*274927*/ OPC_CheckType, MVT::i32, ++/*274929*/ OPC_MoveParent, ++/*274930*/ OPC_MoveChild, 12, ++/*274932*/ OPC_CheckInteger, 1, ++/*274934*/ OPC_CheckType, MVT::i32, ++/*274936*/ OPC_MoveParent, ++/*274937*/ OPC_MoveChild, 13, ++/*274939*/ OPC_CheckInteger, 1, ++/*274941*/ OPC_CheckType, MVT::i32, ++/*274943*/ OPC_MoveParent, ++/*274944*/ OPC_MoveChild, 14, ++/*274946*/ OPC_CheckInteger, 1, ++/*274948*/ OPC_CheckType, MVT::i32, ++/*274950*/ OPC_MoveParent, ++/*274951*/ OPC_MoveChild, 15, ++/*274953*/ OPC_CheckInteger, 1, ++/*274955*/ OPC_CheckType, MVT::i32, ++/*274957*/ OPC_MoveParent, ++/*274958*/ OPC_MoveChild, 16, ++/*274960*/ OPC_CheckInteger, 1, ++/*274962*/ OPC_CheckType, MVT::i32, ++/*274964*/ OPC_MoveParent, ++/*274965*/ OPC_MoveChild, 17, ++/*274967*/ OPC_CheckInteger, 1, ++/*274969*/ OPC_CheckType, MVT::i32, ++/*274971*/ OPC_MoveParent, ++/*274972*/ OPC_MoveChild, 18, ++/*274974*/ OPC_CheckInteger, 1, ++/*274976*/ OPC_CheckType, MVT::i32, ++/*274978*/ OPC_MoveParent, ++/*274979*/ OPC_MoveChild, 19, ++/*274981*/ OPC_CheckInteger, 1, ++/*274983*/ OPC_CheckType, MVT::i32, ++/*274985*/ OPC_MoveParent, ++/*274986*/ OPC_MoveChild, 20, ++/*274988*/ OPC_CheckInteger, 1, ++/*274990*/ OPC_CheckType, MVT::i32, ++/*274992*/ OPC_MoveParent, ++/*274993*/ OPC_MoveChild, 21, ++/*274995*/ OPC_CheckInteger, 1, ++/*274997*/ OPC_CheckType, MVT::i32, ++/*274999*/ OPC_MoveParent, ++/*275000*/ OPC_MoveChild, 22, ++/*275002*/ OPC_CheckInteger, 1, ++/*275004*/ OPC_CheckType, MVT::i32, ++/*275006*/ OPC_MoveParent, ++/*275007*/ OPC_MoveChild, 23, ++/*275009*/ OPC_CheckInteger, 1, ++/*275011*/ OPC_CheckType, MVT::i32, ++/*275013*/ OPC_MoveParent, ++/*275014*/ OPC_MoveChild, 24, ++/*275016*/ OPC_CheckInteger, 1, ++/*275018*/ OPC_CheckType, MVT::i32, ++/*275020*/ OPC_MoveParent, ++/*275021*/ OPC_MoveChild, 25, ++/*275023*/ OPC_CheckInteger, 1, ++/*275025*/ OPC_CheckType, MVT::i32, ++/*275027*/ OPC_MoveParent, ++/*275028*/ OPC_MoveChild, 26, ++/*275030*/ OPC_CheckInteger, 1, ++/*275032*/ OPC_CheckType, MVT::i32, ++/*275034*/ OPC_MoveParent, ++/*275035*/ OPC_MoveChild, 27, ++/*275037*/ OPC_CheckInteger, 1, ++/*275039*/ OPC_CheckType, MVT::i32, ++/*275041*/ OPC_MoveParent, ++/*275042*/ OPC_MoveChild, 28, ++/*275044*/ OPC_CheckInteger, 1, ++/*275046*/ OPC_CheckType, MVT::i32, ++/*275048*/ OPC_MoveParent, ++/*275049*/ OPC_MoveChild, 29, ++/*275051*/ OPC_CheckInteger, 1, ++/*275053*/ OPC_CheckType, MVT::i32, ++/*275055*/ OPC_MoveParent, ++/*275056*/ OPC_MoveChild, 30, ++/*275058*/ OPC_CheckInteger, 1, ++/*275060*/ OPC_CheckType, MVT::i32, ++/*275062*/ OPC_MoveParent, ++/*275063*/ OPC_MoveChild, 31, ++/*275065*/ OPC_CheckInteger, 1, ++/*275067*/ OPC_CheckType, MVT::i32, ++/*275069*/ OPC_MoveParent, ++/*275070*/ OPC_CheckType, MVT::v32i8, ++/*275072*/ OPC_MoveParent, ++/*275073*/ OPC_CheckType, MVT::v32i8, ++/*275075*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*275077*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a), LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*275085*/ /*Scope*/ 59|128,3/*443*/, /*->275530*/ ++/*275087*/ OPC_MoveChild0, ++/*275088*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*275091*/ OPC_CheckChild0Integer, 1, ++/*275093*/ OPC_CheckChild0Type, MVT::i32, ++/*275095*/ OPC_CheckChild1Integer, 1, ++/*275097*/ OPC_CheckChild1Type, MVT::i32, ++/*275099*/ OPC_CheckChild2Integer, 1, ++/*275101*/ OPC_CheckChild2Type, MVT::i32, ++/*275103*/ OPC_CheckChild3Integer, 1, ++/*275105*/ OPC_CheckChild3Type, MVT::i32, ++/*275107*/ OPC_CheckChild4Integer, 1, ++/*275109*/ OPC_CheckChild4Type, MVT::i32, ++/*275111*/ OPC_MoveChild5, ++/*275112*/ OPC_CheckInteger, 1, ++/*275114*/ OPC_CheckType, MVT::i32, ++/*275116*/ OPC_MoveParent, ++/*275117*/ OPC_MoveChild6, ++/*275118*/ OPC_CheckInteger, 1, ++/*275120*/ OPC_CheckType, MVT::i32, ++/*275122*/ OPC_MoveParent, ++/*275123*/ OPC_MoveChild7, ++/*275124*/ OPC_CheckInteger, 1, ++/*275126*/ OPC_CheckType, MVT::i32, ++/*275128*/ OPC_MoveParent, ++/*275129*/ OPC_MoveChild, 8, ++/*275131*/ OPC_CheckInteger, 1, ++/*275133*/ OPC_CheckType, MVT::i32, ++/*275135*/ OPC_MoveParent, ++/*275136*/ OPC_MoveChild, 9, ++/*275138*/ OPC_CheckInteger, 1, ++/*275140*/ OPC_CheckType, MVT::i32, ++/*275142*/ OPC_MoveParent, ++/*275143*/ OPC_MoveChild, 10, ++/*275145*/ OPC_CheckInteger, 1, ++/*275147*/ OPC_CheckType, MVT::i32, ++/*275149*/ OPC_MoveParent, ++/*275150*/ OPC_MoveChild, 11, ++/*275152*/ OPC_CheckInteger, 1, ++/*275154*/ OPC_CheckType, MVT::i32, ++/*275156*/ OPC_MoveParent, ++/*275157*/ OPC_MoveChild, 12, ++/*275159*/ OPC_CheckInteger, 1, ++/*275161*/ OPC_CheckType, MVT::i32, ++/*275163*/ OPC_MoveParent, ++/*275164*/ OPC_MoveChild, 13, ++/*275166*/ OPC_CheckInteger, 1, ++/*275168*/ OPC_CheckType, MVT::i32, ++/*275170*/ OPC_MoveParent, ++/*275171*/ OPC_MoveChild, 14, ++/*275173*/ OPC_CheckInteger, 1, ++/*275175*/ OPC_CheckType, MVT::i32, ++/*275177*/ OPC_MoveParent, ++/*275178*/ OPC_MoveChild, 15, ++/*275180*/ OPC_CheckInteger, 1, ++/*275182*/ OPC_CheckType, MVT::i32, ++/*275184*/ OPC_MoveParent, ++/*275185*/ OPC_MoveChild, 16, ++/*275187*/ OPC_CheckInteger, 1, ++/*275189*/ OPC_CheckType, MVT::i32, ++/*275191*/ OPC_MoveParent, ++/*275192*/ OPC_MoveChild, 17, ++/*275194*/ OPC_CheckInteger, 1, ++/*275196*/ OPC_CheckType, MVT::i32, ++/*275198*/ OPC_MoveParent, ++/*275199*/ OPC_MoveChild, 18, ++/*275201*/ OPC_CheckInteger, 1, ++/*275203*/ OPC_CheckType, MVT::i32, ++/*275205*/ OPC_MoveParent, ++/*275206*/ OPC_MoveChild, 19, ++/*275208*/ OPC_CheckInteger, 1, ++/*275210*/ OPC_CheckType, MVT::i32, ++/*275212*/ OPC_MoveParent, ++/*275213*/ OPC_MoveChild, 20, ++/*275215*/ OPC_CheckInteger, 1, ++/*275217*/ OPC_CheckType, MVT::i32, ++/*275219*/ OPC_MoveParent, ++/*275220*/ OPC_MoveChild, 21, ++/*275222*/ OPC_CheckInteger, 1, ++/*275224*/ OPC_CheckType, MVT::i32, ++/*275226*/ OPC_MoveParent, ++/*275227*/ OPC_MoveChild, 22, ++/*275229*/ OPC_CheckInteger, 1, ++/*275231*/ OPC_CheckType, MVT::i32, ++/*275233*/ OPC_MoveParent, ++/*275234*/ OPC_MoveChild, 23, ++/*275236*/ OPC_CheckInteger, 1, ++/*275238*/ OPC_CheckType, MVT::i32, ++/*275240*/ OPC_MoveParent, ++/*275241*/ OPC_MoveChild, 24, ++/*275243*/ OPC_CheckInteger, 1, ++/*275245*/ OPC_CheckType, MVT::i32, ++/*275247*/ OPC_MoveParent, ++/*275248*/ OPC_MoveChild, 25, ++/*275250*/ OPC_CheckInteger, 1, ++/*275252*/ OPC_CheckType, MVT::i32, ++/*275254*/ OPC_MoveParent, ++/*275255*/ OPC_MoveChild, 26, ++/*275257*/ OPC_CheckInteger, 1, ++/*275259*/ OPC_CheckType, MVT::i32, ++/*275261*/ OPC_MoveParent, ++/*275262*/ OPC_MoveChild, 27, ++/*275264*/ OPC_CheckInteger, 1, ++/*275266*/ OPC_CheckType, MVT::i32, ++/*275268*/ OPC_MoveParent, ++/*275269*/ OPC_MoveChild, 28, ++/*275271*/ OPC_CheckInteger, 1, ++/*275273*/ OPC_CheckType, MVT::i32, ++/*275275*/ OPC_MoveParent, ++/*275276*/ OPC_MoveChild, 29, ++/*275278*/ OPC_CheckInteger, 1, ++/*275280*/ OPC_CheckType, MVT::i32, ++/*275282*/ OPC_MoveParent, ++/*275283*/ OPC_MoveChild, 30, ++/*275285*/ OPC_CheckInteger, 1, ++/*275287*/ OPC_CheckType, MVT::i32, ++/*275289*/ OPC_MoveParent, ++/*275290*/ OPC_MoveChild, 31, ++/*275292*/ OPC_CheckInteger, 1, ++/*275294*/ OPC_CheckType, MVT::i32, ++/*275296*/ OPC_MoveParent, ++/*275297*/ OPC_MoveParent, ++/*275298*/ OPC_CheckChild1Same, 1, ++/*275300*/ OPC_MoveParent, ++/*275301*/ OPC_CheckChild1Same, 0, ++/*275303*/ OPC_MoveParent, ++/*275304*/ OPC_MoveParent, ++/*275305*/ OPC_MoveChild1, ++/*275306*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*275309*/ OPC_CheckChild0Integer, 1, ++/*275311*/ OPC_CheckChild0Type, MVT::i32, ++/*275313*/ OPC_CheckChild1Integer, 1, ++/*275315*/ OPC_CheckChild1Type, MVT::i32, ++/*275317*/ OPC_CheckChild2Integer, 1, ++/*275319*/ OPC_CheckChild2Type, MVT::i32, ++/*275321*/ OPC_CheckChild3Integer, 1, ++/*275323*/ OPC_CheckChild3Type, MVT::i32, ++/*275325*/ OPC_CheckChild4Integer, 1, ++/*275327*/ OPC_CheckChild4Type, MVT::i32, ++/*275329*/ OPC_MoveChild5, ++/*275330*/ OPC_CheckInteger, 1, ++/*275332*/ OPC_CheckType, MVT::i32, ++/*275334*/ OPC_MoveParent, ++/*275335*/ OPC_MoveChild6, ++/*275336*/ OPC_CheckInteger, 1, ++/*275338*/ OPC_CheckType, MVT::i32, ++/*275340*/ OPC_MoveParent, ++/*275341*/ OPC_MoveChild7, ++/*275342*/ OPC_CheckInteger, 1, ++/*275344*/ OPC_CheckType, MVT::i32, ++/*275346*/ OPC_MoveParent, ++/*275347*/ OPC_MoveChild, 8, ++/*275349*/ OPC_CheckInteger, 1, ++/*275351*/ OPC_CheckType, MVT::i32, ++/*275353*/ OPC_MoveParent, ++/*275354*/ OPC_MoveChild, 9, ++/*275356*/ OPC_CheckInteger, 1, ++/*275358*/ OPC_CheckType, MVT::i32, ++/*275360*/ OPC_MoveParent, ++/*275361*/ OPC_MoveChild, 10, ++/*275363*/ OPC_CheckInteger, 1, ++/*275365*/ OPC_CheckType, MVT::i32, ++/*275367*/ OPC_MoveParent, ++/*275368*/ OPC_MoveChild, 11, ++/*275370*/ OPC_CheckInteger, 1, ++/*275372*/ OPC_CheckType, MVT::i32, ++/*275374*/ OPC_MoveParent, ++/*275375*/ OPC_MoveChild, 12, ++/*275377*/ OPC_CheckInteger, 1, ++/*275379*/ OPC_CheckType, MVT::i32, ++/*275381*/ OPC_MoveParent, ++/*275382*/ OPC_MoveChild, 13, ++/*275384*/ OPC_CheckInteger, 1, ++/*275386*/ OPC_CheckType, MVT::i32, ++/*275388*/ OPC_MoveParent, ++/*275389*/ OPC_MoveChild, 14, ++/*275391*/ OPC_CheckInteger, 1, ++/*275393*/ OPC_CheckType, MVT::i32, ++/*275395*/ OPC_MoveParent, ++/*275396*/ OPC_MoveChild, 15, ++/*275398*/ OPC_CheckInteger, 1, ++/*275400*/ OPC_CheckType, MVT::i32, ++/*275402*/ OPC_MoveParent, ++/*275403*/ OPC_MoveChild, 16, ++/*275405*/ OPC_CheckInteger, 1, ++/*275407*/ OPC_CheckType, MVT::i32, ++/*275409*/ OPC_MoveParent, ++/*275410*/ OPC_MoveChild, 17, ++/*275412*/ OPC_CheckInteger, 1, ++/*275414*/ OPC_CheckType, MVT::i32, ++/*275416*/ OPC_MoveParent, ++/*275417*/ OPC_MoveChild, 18, ++/*275419*/ OPC_CheckInteger, 1, ++/*275421*/ OPC_CheckType, MVT::i32, ++/*275423*/ OPC_MoveParent, ++/*275424*/ OPC_MoveChild, 19, ++/*275426*/ OPC_CheckInteger, 1, ++/*275428*/ OPC_CheckType, MVT::i32, ++/*275430*/ OPC_MoveParent, ++/*275431*/ OPC_MoveChild, 20, ++/*275433*/ OPC_CheckInteger, 1, ++/*275435*/ OPC_CheckType, MVT::i32, ++/*275437*/ OPC_MoveParent, ++/*275438*/ OPC_MoveChild, 21, ++/*275440*/ OPC_CheckInteger, 1, ++/*275442*/ OPC_CheckType, MVT::i32, ++/*275444*/ OPC_MoveParent, ++/*275445*/ OPC_MoveChild, 22, ++/*275447*/ OPC_CheckInteger, 1, ++/*275449*/ OPC_CheckType, MVT::i32, ++/*275451*/ OPC_MoveParent, ++/*275452*/ OPC_MoveChild, 23, ++/*275454*/ OPC_CheckInteger, 1, ++/*275456*/ OPC_CheckType, MVT::i32, ++/*275458*/ OPC_MoveParent, ++/*275459*/ OPC_MoveChild, 24, ++/*275461*/ OPC_CheckInteger, 1, ++/*275463*/ OPC_CheckType, MVT::i32, ++/*275465*/ OPC_MoveParent, ++/*275466*/ OPC_MoveChild, 25, ++/*275468*/ OPC_CheckInteger, 1, ++/*275470*/ OPC_CheckType, MVT::i32, ++/*275472*/ OPC_MoveParent, ++/*275473*/ OPC_MoveChild, 26, ++/*275475*/ OPC_CheckInteger, 1, ++/*275477*/ OPC_CheckType, MVT::i32, ++/*275479*/ OPC_MoveParent, ++/*275480*/ OPC_MoveChild, 27, ++/*275482*/ OPC_CheckInteger, 1, ++/*275484*/ OPC_CheckType, MVT::i32, ++/*275486*/ OPC_MoveParent, ++/*275487*/ OPC_MoveChild, 28, ++/*275489*/ OPC_CheckInteger, 1, ++/*275491*/ OPC_CheckType, MVT::i32, ++/*275493*/ OPC_MoveParent, ++/*275494*/ OPC_MoveChild, 29, ++/*275496*/ OPC_CheckInteger, 1, ++/*275498*/ OPC_CheckType, MVT::i32, ++/*275500*/ OPC_MoveParent, ++/*275501*/ OPC_MoveChild, 30, ++/*275503*/ OPC_CheckInteger, 1, ++/*275505*/ OPC_CheckType, MVT::i32, ++/*275507*/ OPC_MoveParent, ++/*275508*/ OPC_MoveChild, 31, ++/*275510*/ OPC_CheckInteger, 1, ++/*275512*/ OPC_CheckType, MVT::i32, ++/*275514*/ OPC_MoveParent, ++/*275515*/ OPC_CheckType, MVT::v32i8, ++/*275517*/ OPC_MoveParent, ++/*275518*/ OPC_CheckType, MVT::v32i8, ++/*275520*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*275522*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a), LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b), LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*275530*/ /*Scope*/ 59|128,3/*443*/, /*->275975*/ ++/*275532*/ OPC_CheckChild0Same, 1, ++/*275534*/ OPC_MoveChild1, ++/*275535*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*275538*/ OPC_CheckChild0Integer, 1, ++/*275540*/ OPC_CheckChild0Type, MVT::i32, ++/*275542*/ OPC_CheckChild1Integer, 1, ++/*275544*/ OPC_CheckChild1Type, MVT::i32, ++/*275546*/ OPC_CheckChild2Integer, 1, ++/*275548*/ OPC_CheckChild2Type, MVT::i32, ++/*275550*/ OPC_CheckChild3Integer, 1, ++/*275552*/ OPC_CheckChild3Type, MVT::i32, ++/*275554*/ OPC_CheckChild4Integer, 1, ++/*275556*/ OPC_CheckChild4Type, MVT::i32, ++/*275558*/ OPC_MoveChild5, ++/*275559*/ OPC_CheckInteger, 1, ++/*275561*/ OPC_CheckType, MVT::i32, ++/*275563*/ OPC_MoveParent, ++/*275564*/ OPC_MoveChild6, ++/*275565*/ OPC_CheckInteger, 1, ++/*275567*/ OPC_CheckType, MVT::i32, ++/*275569*/ OPC_MoveParent, ++/*275570*/ OPC_MoveChild7, ++/*275571*/ OPC_CheckInteger, 1, ++/*275573*/ OPC_CheckType, MVT::i32, ++/*275575*/ OPC_MoveParent, ++/*275576*/ OPC_MoveChild, 8, ++/*275578*/ OPC_CheckInteger, 1, ++/*275580*/ OPC_CheckType, MVT::i32, ++/*275582*/ OPC_MoveParent, ++/*275583*/ OPC_MoveChild, 9, ++/*275585*/ OPC_CheckInteger, 1, ++/*275587*/ OPC_CheckType, MVT::i32, ++/*275589*/ OPC_MoveParent, ++/*275590*/ OPC_MoveChild, 10, ++/*275592*/ OPC_CheckInteger, 1, ++/*275594*/ OPC_CheckType, MVT::i32, ++/*275596*/ OPC_MoveParent, ++/*275597*/ OPC_MoveChild, 11, ++/*275599*/ OPC_CheckInteger, 1, ++/*275601*/ OPC_CheckType, MVT::i32, ++/*275603*/ OPC_MoveParent, ++/*275604*/ OPC_MoveChild, 12, ++/*275606*/ OPC_CheckInteger, 1, ++/*275608*/ OPC_CheckType, MVT::i32, ++/*275610*/ OPC_MoveParent, ++/*275611*/ OPC_MoveChild, 13, ++/*275613*/ OPC_CheckInteger, 1, ++/*275615*/ OPC_CheckType, MVT::i32, ++/*275617*/ OPC_MoveParent, ++/*275618*/ OPC_MoveChild, 14, ++/*275620*/ OPC_CheckInteger, 1, ++/*275622*/ OPC_CheckType, MVT::i32, ++/*275624*/ OPC_MoveParent, ++/*275625*/ OPC_MoveChild, 15, ++/*275627*/ OPC_CheckInteger, 1, ++/*275629*/ OPC_CheckType, MVT::i32, ++/*275631*/ OPC_MoveParent, ++/*275632*/ OPC_MoveChild, 16, ++/*275634*/ OPC_CheckInteger, 1, ++/*275636*/ OPC_CheckType, MVT::i32, ++/*275638*/ OPC_MoveParent, ++/*275639*/ OPC_MoveChild, 17, ++/*275641*/ OPC_CheckInteger, 1, ++/*275643*/ OPC_CheckType, MVT::i32, ++/*275645*/ OPC_MoveParent, ++/*275646*/ OPC_MoveChild, 18, ++/*275648*/ OPC_CheckInteger, 1, ++/*275650*/ OPC_CheckType, MVT::i32, ++/*275652*/ OPC_MoveParent, ++/*275653*/ OPC_MoveChild, 19, ++/*275655*/ OPC_CheckInteger, 1, ++/*275657*/ OPC_CheckType, MVT::i32, ++/*275659*/ OPC_MoveParent, ++/*275660*/ OPC_MoveChild, 20, ++/*275662*/ OPC_CheckInteger, 1, ++/*275664*/ OPC_CheckType, MVT::i32, ++/*275666*/ OPC_MoveParent, ++/*275667*/ OPC_MoveChild, 21, ++/*275669*/ OPC_CheckInteger, 1, ++/*275671*/ OPC_CheckType, MVT::i32, ++/*275673*/ OPC_MoveParent, ++/*275674*/ OPC_MoveChild, 22, ++/*275676*/ OPC_CheckInteger, 1, ++/*275678*/ OPC_CheckType, MVT::i32, ++/*275680*/ OPC_MoveParent, ++/*275681*/ OPC_MoveChild, 23, ++/*275683*/ OPC_CheckInteger, 1, ++/*275685*/ OPC_CheckType, MVT::i32, ++/*275687*/ OPC_MoveParent, ++/*275688*/ OPC_MoveChild, 24, ++/*275690*/ OPC_CheckInteger, 1, ++/*275692*/ OPC_CheckType, MVT::i32, ++/*275694*/ OPC_MoveParent, ++/*275695*/ OPC_MoveChild, 25, ++/*275697*/ OPC_CheckInteger, 1, ++/*275699*/ OPC_CheckType, MVT::i32, ++/*275701*/ OPC_MoveParent, ++/*275702*/ OPC_MoveChild, 26, ++/*275704*/ OPC_CheckInteger, 1, ++/*275706*/ OPC_CheckType, MVT::i32, ++/*275708*/ OPC_MoveParent, ++/*275709*/ OPC_MoveChild, 27, ++/*275711*/ OPC_CheckInteger, 1, ++/*275713*/ OPC_CheckType, MVT::i32, ++/*275715*/ OPC_MoveParent, ++/*275716*/ OPC_MoveChild, 28, ++/*275718*/ OPC_CheckInteger, 1, ++/*275720*/ OPC_CheckType, MVT::i32, ++/*275722*/ OPC_MoveParent, ++/*275723*/ OPC_MoveChild, 29, ++/*275725*/ OPC_CheckInteger, 1, ++/*275727*/ OPC_CheckType, MVT::i32, ++/*275729*/ OPC_MoveParent, ++/*275730*/ OPC_MoveChild, 30, ++/*275732*/ OPC_CheckInteger, 1, ++/*275734*/ OPC_CheckType, MVT::i32, ++/*275736*/ OPC_MoveParent, ++/*275737*/ OPC_MoveChild, 31, ++/*275739*/ OPC_CheckInteger, 1, ++/*275741*/ OPC_CheckType, MVT::i32, ++/*275743*/ OPC_MoveParent, ++/*275744*/ OPC_MoveParent, ++/*275745*/ OPC_MoveParent, ++/*275746*/ OPC_CheckChild1Same, 0, ++/*275748*/ OPC_MoveParent, ++/*275749*/ OPC_MoveParent, ++/*275750*/ OPC_MoveChild1, ++/*275751*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*275754*/ OPC_CheckChild0Integer, 1, ++/*275756*/ OPC_CheckChild0Type, MVT::i32, ++/*275758*/ OPC_CheckChild1Integer, 1, ++/*275760*/ OPC_CheckChild1Type, MVT::i32, ++/*275762*/ OPC_CheckChild2Integer, 1, ++/*275764*/ OPC_CheckChild2Type, MVT::i32, ++/*275766*/ OPC_CheckChild3Integer, 1, ++/*275768*/ OPC_CheckChild3Type, MVT::i32, ++/*275770*/ OPC_CheckChild4Integer, 1, ++/*275772*/ OPC_CheckChild4Type, MVT::i32, ++/*275774*/ OPC_MoveChild5, ++/*275775*/ OPC_CheckInteger, 1, ++/*275777*/ OPC_CheckType, MVT::i32, ++/*275779*/ OPC_MoveParent, ++/*275780*/ OPC_MoveChild6, ++/*275781*/ OPC_CheckInteger, 1, ++/*275783*/ OPC_CheckType, MVT::i32, ++/*275785*/ OPC_MoveParent, ++/*275786*/ OPC_MoveChild7, ++/*275787*/ OPC_CheckInteger, 1, ++/*275789*/ OPC_CheckType, MVT::i32, ++/*275791*/ OPC_MoveParent, ++/*275792*/ OPC_MoveChild, 8, ++/*275794*/ OPC_CheckInteger, 1, ++/*275796*/ OPC_CheckType, MVT::i32, ++/*275798*/ OPC_MoveParent, ++/*275799*/ OPC_MoveChild, 9, ++/*275801*/ OPC_CheckInteger, 1, ++/*275803*/ OPC_CheckType, MVT::i32, ++/*275805*/ OPC_MoveParent, ++/*275806*/ OPC_MoveChild, 10, ++/*275808*/ OPC_CheckInteger, 1, ++/*275810*/ OPC_CheckType, MVT::i32, ++/*275812*/ OPC_MoveParent, ++/*275813*/ OPC_MoveChild, 11, ++/*275815*/ OPC_CheckInteger, 1, ++/*275817*/ OPC_CheckType, MVT::i32, ++/*275819*/ OPC_MoveParent, ++/*275820*/ OPC_MoveChild, 12, ++/*275822*/ OPC_CheckInteger, 1, ++/*275824*/ OPC_CheckType, MVT::i32, ++/*275826*/ OPC_MoveParent, ++/*275827*/ OPC_MoveChild, 13, ++/*275829*/ OPC_CheckInteger, 1, ++/*275831*/ OPC_CheckType, MVT::i32, ++/*275833*/ OPC_MoveParent, ++/*275834*/ OPC_MoveChild, 14, ++/*275836*/ OPC_CheckInteger, 1, ++/*275838*/ OPC_CheckType, MVT::i32, ++/*275840*/ OPC_MoveParent, ++/*275841*/ OPC_MoveChild, 15, ++/*275843*/ OPC_CheckInteger, 1, ++/*275845*/ OPC_CheckType, MVT::i32, ++/*275847*/ OPC_MoveParent, ++/*275848*/ OPC_MoveChild, 16, ++/*275850*/ OPC_CheckInteger, 1, ++/*275852*/ OPC_CheckType, MVT::i32, ++/*275854*/ OPC_MoveParent, ++/*275855*/ OPC_MoveChild, 17, ++/*275857*/ OPC_CheckInteger, 1, ++/*275859*/ OPC_CheckType, MVT::i32, ++/*275861*/ OPC_MoveParent, ++/*275862*/ OPC_MoveChild, 18, ++/*275864*/ OPC_CheckInteger, 1, ++/*275866*/ OPC_CheckType, MVT::i32, ++/*275868*/ OPC_MoveParent, ++/*275869*/ OPC_MoveChild, 19, ++/*275871*/ OPC_CheckInteger, 1, ++/*275873*/ OPC_CheckType, MVT::i32, ++/*275875*/ OPC_MoveParent, ++/*275876*/ OPC_MoveChild, 20, ++/*275878*/ OPC_CheckInteger, 1, ++/*275880*/ OPC_CheckType, MVT::i32, ++/*275882*/ OPC_MoveParent, ++/*275883*/ OPC_MoveChild, 21, ++/*275885*/ OPC_CheckInteger, 1, ++/*275887*/ OPC_CheckType, MVT::i32, ++/*275889*/ OPC_MoveParent, ++/*275890*/ OPC_MoveChild, 22, ++/*275892*/ OPC_CheckInteger, 1, ++/*275894*/ OPC_CheckType, MVT::i32, ++/*275896*/ OPC_MoveParent, ++/*275897*/ OPC_MoveChild, 23, ++/*275899*/ OPC_CheckInteger, 1, ++/*275901*/ OPC_CheckType, MVT::i32, ++/*275903*/ OPC_MoveParent, ++/*275904*/ OPC_MoveChild, 24, ++/*275906*/ OPC_CheckInteger, 1, ++/*275908*/ OPC_CheckType, MVT::i32, ++/*275910*/ OPC_MoveParent, ++/*275911*/ OPC_MoveChild, 25, ++/*275913*/ OPC_CheckInteger, 1, ++/*275915*/ OPC_CheckType, MVT::i32, ++/*275917*/ OPC_MoveParent, ++/*275918*/ OPC_MoveChild, 26, ++/*275920*/ OPC_CheckInteger, 1, ++/*275922*/ OPC_CheckType, MVT::i32, ++/*275924*/ OPC_MoveParent, ++/*275925*/ OPC_MoveChild, 27, ++/*275927*/ OPC_CheckInteger, 1, ++/*275929*/ OPC_CheckType, MVT::i32, ++/*275931*/ OPC_MoveParent, ++/*275932*/ OPC_MoveChild, 28, ++/*275934*/ OPC_CheckInteger, 1, ++/*275936*/ OPC_CheckType, MVT::i32, ++/*275938*/ OPC_MoveParent, ++/*275939*/ OPC_MoveChild, 29, ++/*275941*/ OPC_CheckInteger, 1, ++/*275943*/ OPC_CheckType, MVT::i32, ++/*275945*/ OPC_MoveParent, ++/*275946*/ OPC_MoveChild, 30, ++/*275948*/ OPC_CheckInteger, 1, ++/*275950*/ OPC_CheckType, MVT::i32, ++/*275952*/ OPC_MoveParent, ++/*275953*/ OPC_MoveChild, 31, ++/*275955*/ OPC_CheckInteger, 1, ++/*275957*/ OPC_CheckType, MVT::i32, ++/*275959*/ OPC_MoveParent, ++/*275960*/ OPC_CheckType, MVT::v32i8, ++/*275962*/ OPC_MoveParent, ++/*275963*/ OPC_CheckType, MVT::v32i8, ++/*275965*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*275967*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a), LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*275975*/ /*Scope*/ 59|128,3/*443*/, /*->276420*/ ++/*275977*/ OPC_CheckChild0Same, 0, ++/*275979*/ OPC_CheckChild1Same, 1, ++/*275981*/ OPC_MoveParent, ++/*275982*/ OPC_MoveChild1, ++/*275983*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*275986*/ OPC_CheckChild0Integer, 1, ++/*275988*/ OPC_CheckChild0Type, MVT::i32, ++/*275990*/ OPC_CheckChild1Integer, 1, ++/*275992*/ OPC_CheckChild1Type, MVT::i32, ++/*275994*/ OPC_CheckChild2Integer, 1, ++/*275996*/ OPC_CheckChild2Type, MVT::i32, ++/*275998*/ OPC_CheckChild3Integer, 1, ++/*276000*/ OPC_CheckChild3Type, MVT::i32, ++/*276002*/ OPC_CheckChild4Integer, 1, ++/*276004*/ OPC_CheckChild4Type, MVT::i32, ++/*276006*/ OPC_MoveChild5, ++/*276007*/ OPC_CheckInteger, 1, ++/*276009*/ OPC_CheckType, MVT::i32, ++/*276011*/ OPC_MoveParent, ++/*276012*/ OPC_MoveChild6, ++/*276013*/ OPC_CheckInteger, 1, ++/*276015*/ OPC_CheckType, MVT::i32, ++/*276017*/ OPC_MoveParent, ++/*276018*/ OPC_MoveChild7, ++/*276019*/ OPC_CheckInteger, 1, ++/*276021*/ OPC_CheckType, MVT::i32, ++/*276023*/ OPC_MoveParent, ++/*276024*/ OPC_MoveChild, 8, ++/*276026*/ OPC_CheckInteger, 1, ++/*276028*/ OPC_CheckType, MVT::i32, ++/*276030*/ OPC_MoveParent, ++/*276031*/ OPC_MoveChild, 9, ++/*276033*/ OPC_CheckInteger, 1, ++/*276035*/ OPC_CheckType, MVT::i32, ++/*276037*/ OPC_MoveParent, ++/*276038*/ OPC_MoveChild, 10, ++/*276040*/ OPC_CheckInteger, 1, ++/*276042*/ OPC_CheckType, MVT::i32, ++/*276044*/ OPC_MoveParent, ++/*276045*/ OPC_MoveChild, 11, ++/*276047*/ OPC_CheckInteger, 1, ++/*276049*/ OPC_CheckType, MVT::i32, ++/*276051*/ OPC_MoveParent, ++/*276052*/ OPC_MoveChild, 12, ++/*276054*/ OPC_CheckInteger, 1, ++/*276056*/ OPC_CheckType, MVT::i32, ++/*276058*/ OPC_MoveParent, ++/*276059*/ OPC_MoveChild, 13, ++/*276061*/ OPC_CheckInteger, 1, ++/*276063*/ OPC_CheckType, MVT::i32, ++/*276065*/ OPC_MoveParent, ++/*276066*/ OPC_MoveChild, 14, ++/*276068*/ OPC_CheckInteger, 1, ++/*276070*/ OPC_CheckType, MVT::i32, ++/*276072*/ OPC_MoveParent, ++/*276073*/ OPC_MoveChild, 15, ++/*276075*/ OPC_CheckInteger, 1, ++/*276077*/ OPC_CheckType, MVT::i32, ++/*276079*/ OPC_MoveParent, ++/*276080*/ OPC_MoveChild, 16, ++/*276082*/ OPC_CheckInteger, 1, ++/*276084*/ OPC_CheckType, MVT::i32, ++/*276086*/ OPC_MoveParent, ++/*276087*/ OPC_MoveChild, 17, ++/*276089*/ OPC_CheckInteger, 1, ++/*276091*/ OPC_CheckType, MVT::i32, ++/*276093*/ OPC_MoveParent, ++/*276094*/ OPC_MoveChild, 18, ++/*276096*/ OPC_CheckInteger, 1, ++/*276098*/ OPC_CheckType, MVT::i32, ++/*276100*/ OPC_MoveParent, ++/*276101*/ OPC_MoveChild, 19, ++/*276103*/ OPC_CheckInteger, 1, ++/*276105*/ OPC_CheckType, MVT::i32, ++/*276107*/ OPC_MoveParent, ++/*276108*/ OPC_MoveChild, 20, ++/*276110*/ OPC_CheckInteger, 1, ++/*276112*/ OPC_CheckType, MVT::i32, ++/*276114*/ OPC_MoveParent, ++/*276115*/ OPC_MoveChild, 21, ++/*276117*/ OPC_CheckInteger, 1, ++/*276119*/ OPC_CheckType, MVT::i32, ++/*276121*/ OPC_MoveParent, ++/*276122*/ OPC_MoveChild, 22, ++/*276124*/ OPC_CheckInteger, 1, ++/*276126*/ OPC_CheckType, MVT::i32, ++/*276128*/ OPC_MoveParent, ++/*276129*/ OPC_MoveChild, 23, ++/*276131*/ OPC_CheckInteger, 1, ++/*276133*/ OPC_CheckType, MVT::i32, ++/*276135*/ OPC_MoveParent, ++/*276136*/ OPC_MoveChild, 24, ++/*276138*/ OPC_CheckInteger, 1, ++/*276140*/ OPC_CheckType, MVT::i32, ++/*276142*/ OPC_MoveParent, ++/*276143*/ OPC_MoveChild, 25, ++/*276145*/ OPC_CheckInteger, 1, ++/*276147*/ OPC_CheckType, MVT::i32, ++/*276149*/ OPC_MoveParent, ++/*276150*/ OPC_MoveChild, 26, ++/*276152*/ OPC_CheckInteger, 1, ++/*276154*/ OPC_CheckType, MVT::i32, ++/*276156*/ OPC_MoveParent, ++/*276157*/ OPC_MoveChild, 27, ++/*276159*/ OPC_CheckInteger, 1, ++/*276161*/ OPC_CheckType, MVT::i32, ++/*276163*/ OPC_MoveParent, ++/*276164*/ OPC_MoveChild, 28, ++/*276166*/ OPC_CheckInteger, 1, ++/*276168*/ OPC_CheckType, MVT::i32, ++/*276170*/ OPC_MoveParent, ++/*276171*/ OPC_MoveChild, 29, ++/*276173*/ OPC_CheckInteger, 1, ++/*276175*/ OPC_CheckType, MVT::i32, ++/*276177*/ OPC_MoveParent, ++/*276178*/ OPC_MoveChild, 30, ++/*276180*/ OPC_CheckInteger, 1, ++/*276182*/ OPC_CheckType, MVT::i32, ++/*276184*/ OPC_MoveParent, ++/*276185*/ OPC_MoveChild, 31, ++/*276187*/ OPC_CheckInteger, 1, ++/*276189*/ OPC_CheckType, MVT::i32, ++/*276191*/ OPC_MoveParent, ++/*276192*/ OPC_MoveParent, ++/*276193*/ OPC_MoveParent, ++/*276194*/ OPC_MoveParent, ++/*276195*/ OPC_MoveChild1, ++/*276196*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*276199*/ OPC_CheckChild0Integer, 1, ++/*276201*/ OPC_CheckChild0Type, MVT::i32, ++/*276203*/ OPC_CheckChild1Integer, 1, ++/*276205*/ OPC_CheckChild1Type, MVT::i32, ++/*276207*/ OPC_CheckChild2Integer, 1, ++/*276209*/ OPC_CheckChild2Type, MVT::i32, ++/*276211*/ OPC_CheckChild3Integer, 1, ++/*276213*/ OPC_CheckChild3Type, MVT::i32, ++/*276215*/ OPC_CheckChild4Integer, 1, ++/*276217*/ OPC_CheckChild4Type, MVT::i32, ++/*276219*/ OPC_MoveChild5, ++/*276220*/ OPC_CheckInteger, 1, ++/*276222*/ OPC_CheckType, MVT::i32, ++/*276224*/ OPC_MoveParent, ++/*276225*/ OPC_MoveChild6, ++/*276226*/ OPC_CheckInteger, 1, ++/*276228*/ OPC_CheckType, MVT::i32, ++/*276230*/ OPC_MoveParent, ++/*276231*/ OPC_MoveChild7, ++/*276232*/ OPC_CheckInteger, 1, ++/*276234*/ OPC_CheckType, MVT::i32, ++/*276236*/ OPC_MoveParent, ++/*276237*/ OPC_MoveChild, 8, ++/*276239*/ OPC_CheckInteger, 1, ++/*276241*/ OPC_CheckType, MVT::i32, ++/*276243*/ OPC_MoveParent, ++/*276244*/ OPC_MoveChild, 9, ++/*276246*/ OPC_CheckInteger, 1, ++/*276248*/ OPC_CheckType, MVT::i32, ++/*276250*/ OPC_MoveParent, ++/*276251*/ OPC_MoveChild, 10, ++/*276253*/ OPC_CheckInteger, 1, ++/*276255*/ OPC_CheckType, MVT::i32, ++/*276257*/ OPC_MoveParent, ++/*276258*/ OPC_MoveChild, 11, ++/*276260*/ OPC_CheckInteger, 1, ++/*276262*/ OPC_CheckType, MVT::i32, ++/*276264*/ OPC_MoveParent, ++/*276265*/ OPC_MoveChild, 12, ++/*276267*/ OPC_CheckInteger, 1, ++/*276269*/ OPC_CheckType, MVT::i32, ++/*276271*/ OPC_MoveParent, ++/*276272*/ OPC_MoveChild, 13, ++/*276274*/ OPC_CheckInteger, 1, ++/*276276*/ OPC_CheckType, MVT::i32, ++/*276278*/ OPC_MoveParent, ++/*276279*/ OPC_MoveChild, 14, ++/*276281*/ OPC_CheckInteger, 1, ++/*276283*/ OPC_CheckType, MVT::i32, ++/*276285*/ OPC_MoveParent, ++/*276286*/ OPC_MoveChild, 15, ++/*276288*/ OPC_CheckInteger, 1, ++/*276290*/ OPC_CheckType, MVT::i32, ++/*276292*/ OPC_MoveParent, ++/*276293*/ OPC_MoveChild, 16, ++/*276295*/ OPC_CheckInteger, 1, ++/*276297*/ OPC_CheckType, MVT::i32, ++/*276299*/ OPC_MoveParent, ++/*276300*/ OPC_MoveChild, 17, ++/*276302*/ OPC_CheckInteger, 1, ++/*276304*/ OPC_CheckType, MVT::i32, ++/*276306*/ OPC_MoveParent, ++/*276307*/ OPC_MoveChild, 18, ++/*276309*/ OPC_CheckInteger, 1, ++/*276311*/ OPC_CheckType, MVT::i32, ++/*276313*/ OPC_MoveParent, ++/*276314*/ OPC_MoveChild, 19, ++/*276316*/ OPC_CheckInteger, 1, ++/*276318*/ OPC_CheckType, MVT::i32, ++/*276320*/ OPC_MoveParent, ++/*276321*/ OPC_MoveChild, 20, ++/*276323*/ OPC_CheckInteger, 1, ++/*276325*/ OPC_CheckType, MVT::i32, ++/*276327*/ OPC_MoveParent, ++/*276328*/ OPC_MoveChild, 21, ++/*276330*/ OPC_CheckInteger, 1, ++/*276332*/ OPC_CheckType, MVT::i32, ++/*276334*/ OPC_MoveParent, ++/*276335*/ OPC_MoveChild, 22, ++/*276337*/ OPC_CheckInteger, 1, ++/*276339*/ OPC_CheckType, MVT::i32, ++/*276341*/ OPC_MoveParent, ++/*276342*/ OPC_MoveChild, 23, ++/*276344*/ OPC_CheckInteger, 1, ++/*276346*/ OPC_CheckType, MVT::i32, ++/*276348*/ OPC_MoveParent, ++/*276349*/ OPC_MoveChild, 24, ++/*276351*/ OPC_CheckInteger, 1, ++/*276353*/ OPC_CheckType, MVT::i32, ++/*276355*/ OPC_MoveParent, ++/*276356*/ OPC_MoveChild, 25, ++/*276358*/ OPC_CheckInteger, 1, ++/*276360*/ OPC_CheckType, MVT::i32, ++/*276362*/ OPC_MoveParent, ++/*276363*/ OPC_MoveChild, 26, ++/*276365*/ OPC_CheckInteger, 1, ++/*276367*/ OPC_CheckType, MVT::i32, ++/*276369*/ OPC_MoveParent, ++/*276370*/ OPC_MoveChild, 27, ++/*276372*/ OPC_CheckInteger, 1, ++/*276374*/ OPC_CheckType, MVT::i32, ++/*276376*/ OPC_MoveParent, ++/*276377*/ OPC_MoveChild, 28, ++/*276379*/ OPC_CheckInteger, 1, ++/*276381*/ OPC_CheckType, MVT::i32, ++/*276383*/ OPC_MoveParent, ++/*276384*/ OPC_MoveChild, 29, ++/*276386*/ OPC_CheckInteger, 1, ++/*276388*/ OPC_CheckType, MVT::i32, ++/*276390*/ OPC_MoveParent, ++/*276391*/ OPC_MoveChild, 30, ++/*276393*/ OPC_CheckInteger, 1, ++/*276395*/ OPC_CheckType, MVT::i32, ++/*276397*/ OPC_MoveParent, ++/*276398*/ OPC_MoveChild, 31, ++/*276400*/ OPC_CheckInteger, 1, ++/*276402*/ OPC_CheckType, MVT::i32, ++/*276404*/ OPC_MoveParent, ++/*276405*/ OPC_CheckType, MVT::v32i8, ++/*276407*/ OPC_MoveParent, ++/*276408*/ OPC_CheckType, MVT::v32i8, ++/*276410*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*276412*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a), LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*276420*/ /*Scope*/ 59|128,3/*443*/, /*->276865*/ ++/*276422*/ OPC_CheckChild0Same, 1, ++/*276424*/ OPC_CheckChild1Same, 0, ++/*276426*/ OPC_MoveParent, ++/*276427*/ OPC_MoveChild1, ++/*276428*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*276431*/ OPC_CheckChild0Integer, 1, ++/*276433*/ OPC_CheckChild0Type, MVT::i32, ++/*276435*/ OPC_CheckChild1Integer, 1, ++/*276437*/ OPC_CheckChild1Type, MVT::i32, ++/*276439*/ OPC_CheckChild2Integer, 1, ++/*276441*/ OPC_CheckChild2Type, MVT::i32, ++/*276443*/ OPC_CheckChild3Integer, 1, ++/*276445*/ OPC_CheckChild3Type, MVT::i32, ++/*276447*/ OPC_CheckChild4Integer, 1, ++/*276449*/ OPC_CheckChild4Type, MVT::i32, ++/*276451*/ OPC_MoveChild5, ++/*276452*/ OPC_CheckInteger, 1, ++/*276454*/ OPC_CheckType, MVT::i32, ++/*276456*/ OPC_MoveParent, ++/*276457*/ OPC_MoveChild6, ++/*276458*/ OPC_CheckInteger, 1, ++/*276460*/ OPC_CheckType, MVT::i32, ++/*276462*/ OPC_MoveParent, ++/*276463*/ OPC_MoveChild7, ++/*276464*/ OPC_CheckInteger, 1, ++/*276466*/ OPC_CheckType, MVT::i32, ++/*276468*/ OPC_MoveParent, ++/*276469*/ OPC_MoveChild, 8, ++/*276471*/ OPC_CheckInteger, 1, ++/*276473*/ OPC_CheckType, MVT::i32, ++/*276475*/ OPC_MoveParent, ++/*276476*/ OPC_MoveChild, 9, ++/*276478*/ OPC_CheckInteger, 1, ++/*276480*/ OPC_CheckType, MVT::i32, ++/*276482*/ OPC_MoveParent, ++/*276483*/ OPC_MoveChild, 10, ++/*276485*/ OPC_CheckInteger, 1, ++/*276487*/ OPC_CheckType, MVT::i32, ++/*276489*/ OPC_MoveParent, ++/*276490*/ OPC_MoveChild, 11, ++/*276492*/ OPC_CheckInteger, 1, ++/*276494*/ OPC_CheckType, MVT::i32, ++/*276496*/ OPC_MoveParent, ++/*276497*/ OPC_MoveChild, 12, ++/*276499*/ OPC_CheckInteger, 1, ++/*276501*/ OPC_CheckType, MVT::i32, ++/*276503*/ OPC_MoveParent, ++/*276504*/ OPC_MoveChild, 13, ++/*276506*/ OPC_CheckInteger, 1, ++/*276508*/ OPC_CheckType, MVT::i32, ++/*276510*/ OPC_MoveParent, ++/*276511*/ OPC_MoveChild, 14, ++/*276513*/ OPC_CheckInteger, 1, ++/*276515*/ OPC_CheckType, MVT::i32, ++/*276517*/ OPC_MoveParent, ++/*276518*/ OPC_MoveChild, 15, ++/*276520*/ OPC_CheckInteger, 1, ++/*276522*/ OPC_CheckType, MVT::i32, ++/*276524*/ OPC_MoveParent, ++/*276525*/ OPC_MoveChild, 16, ++/*276527*/ OPC_CheckInteger, 1, ++/*276529*/ OPC_CheckType, MVT::i32, ++/*276531*/ OPC_MoveParent, ++/*276532*/ OPC_MoveChild, 17, ++/*276534*/ OPC_CheckInteger, 1, ++/*276536*/ OPC_CheckType, MVT::i32, ++/*276538*/ OPC_MoveParent, ++/*276539*/ OPC_MoveChild, 18, ++/*276541*/ OPC_CheckInteger, 1, ++/*276543*/ OPC_CheckType, MVT::i32, ++/*276545*/ OPC_MoveParent, ++/*276546*/ OPC_MoveChild, 19, ++/*276548*/ OPC_CheckInteger, 1, ++/*276550*/ OPC_CheckType, MVT::i32, ++/*276552*/ OPC_MoveParent, ++/*276553*/ OPC_MoveChild, 20, ++/*276555*/ OPC_CheckInteger, 1, ++/*276557*/ OPC_CheckType, MVT::i32, ++/*276559*/ OPC_MoveParent, ++/*276560*/ OPC_MoveChild, 21, ++/*276562*/ OPC_CheckInteger, 1, ++/*276564*/ OPC_CheckType, MVT::i32, ++/*276566*/ OPC_MoveParent, ++/*276567*/ OPC_MoveChild, 22, ++/*276569*/ OPC_CheckInteger, 1, ++/*276571*/ OPC_CheckType, MVT::i32, ++/*276573*/ OPC_MoveParent, ++/*276574*/ OPC_MoveChild, 23, ++/*276576*/ OPC_CheckInteger, 1, ++/*276578*/ OPC_CheckType, MVT::i32, ++/*276580*/ OPC_MoveParent, ++/*276581*/ OPC_MoveChild, 24, ++/*276583*/ OPC_CheckInteger, 1, ++/*276585*/ OPC_CheckType, MVT::i32, ++/*276587*/ OPC_MoveParent, ++/*276588*/ OPC_MoveChild, 25, ++/*276590*/ OPC_CheckInteger, 1, ++/*276592*/ OPC_CheckType, MVT::i32, ++/*276594*/ OPC_MoveParent, ++/*276595*/ OPC_MoveChild, 26, ++/*276597*/ OPC_CheckInteger, 1, ++/*276599*/ OPC_CheckType, MVT::i32, ++/*276601*/ OPC_MoveParent, ++/*276602*/ OPC_MoveChild, 27, ++/*276604*/ OPC_CheckInteger, 1, ++/*276606*/ OPC_CheckType, MVT::i32, ++/*276608*/ OPC_MoveParent, ++/*276609*/ OPC_MoveChild, 28, ++/*276611*/ OPC_CheckInteger, 1, ++/*276613*/ OPC_CheckType, MVT::i32, ++/*276615*/ OPC_MoveParent, ++/*276616*/ OPC_MoveChild, 29, ++/*276618*/ OPC_CheckInteger, 1, ++/*276620*/ OPC_CheckType, MVT::i32, ++/*276622*/ OPC_MoveParent, ++/*276623*/ OPC_MoveChild, 30, ++/*276625*/ OPC_CheckInteger, 1, ++/*276627*/ OPC_CheckType, MVT::i32, ++/*276629*/ OPC_MoveParent, ++/*276630*/ OPC_MoveChild, 31, ++/*276632*/ OPC_CheckInteger, 1, ++/*276634*/ OPC_CheckType, MVT::i32, ++/*276636*/ OPC_MoveParent, ++/*276637*/ OPC_MoveParent, ++/*276638*/ OPC_MoveParent, ++/*276639*/ OPC_MoveParent, ++/*276640*/ OPC_MoveChild1, ++/*276641*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*276644*/ OPC_CheckChild0Integer, 1, ++/*276646*/ OPC_CheckChild0Type, MVT::i32, ++/*276648*/ OPC_CheckChild1Integer, 1, ++/*276650*/ OPC_CheckChild1Type, MVT::i32, ++/*276652*/ OPC_CheckChild2Integer, 1, ++/*276654*/ OPC_CheckChild2Type, MVT::i32, ++/*276656*/ OPC_CheckChild3Integer, 1, ++/*276658*/ OPC_CheckChild3Type, MVT::i32, ++/*276660*/ OPC_CheckChild4Integer, 1, ++/*276662*/ OPC_CheckChild4Type, MVT::i32, ++/*276664*/ OPC_MoveChild5, ++/*276665*/ OPC_CheckInteger, 1, ++/*276667*/ OPC_CheckType, MVT::i32, ++/*276669*/ OPC_MoveParent, ++/*276670*/ OPC_MoveChild6, ++/*276671*/ OPC_CheckInteger, 1, ++/*276673*/ OPC_CheckType, MVT::i32, ++/*276675*/ OPC_MoveParent, ++/*276676*/ OPC_MoveChild7, ++/*276677*/ OPC_CheckInteger, 1, ++/*276679*/ OPC_CheckType, MVT::i32, ++/*276681*/ OPC_MoveParent, ++/*276682*/ OPC_MoveChild, 8, ++/*276684*/ OPC_CheckInteger, 1, ++/*276686*/ OPC_CheckType, MVT::i32, ++/*276688*/ OPC_MoveParent, ++/*276689*/ OPC_MoveChild, 9, ++/*276691*/ OPC_CheckInteger, 1, ++/*276693*/ OPC_CheckType, MVT::i32, ++/*276695*/ OPC_MoveParent, ++/*276696*/ OPC_MoveChild, 10, ++/*276698*/ OPC_CheckInteger, 1, ++/*276700*/ OPC_CheckType, MVT::i32, ++/*276702*/ OPC_MoveParent, ++/*276703*/ OPC_MoveChild, 11, ++/*276705*/ OPC_CheckInteger, 1, ++/*276707*/ OPC_CheckType, MVT::i32, ++/*276709*/ OPC_MoveParent, ++/*276710*/ OPC_MoveChild, 12, ++/*276712*/ OPC_CheckInteger, 1, ++/*276714*/ OPC_CheckType, MVT::i32, ++/*276716*/ OPC_MoveParent, ++/*276717*/ OPC_MoveChild, 13, ++/*276719*/ OPC_CheckInteger, 1, ++/*276721*/ OPC_CheckType, MVT::i32, ++/*276723*/ OPC_MoveParent, ++/*276724*/ OPC_MoveChild, 14, ++/*276726*/ OPC_CheckInteger, 1, ++/*276728*/ OPC_CheckType, MVT::i32, ++/*276730*/ OPC_MoveParent, ++/*276731*/ OPC_MoveChild, 15, ++/*276733*/ OPC_CheckInteger, 1, ++/*276735*/ OPC_CheckType, MVT::i32, ++/*276737*/ OPC_MoveParent, ++/*276738*/ OPC_MoveChild, 16, ++/*276740*/ OPC_CheckInteger, 1, ++/*276742*/ OPC_CheckType, MVT::i32, ++/*276744*/ OPC_MoveParent, ++/*276745*/ OPC_MoveChild, 17, ++/*276747*/ OPC_CheckInteger, 1, ++/*276749*/ OPC_CheckType, MVT::i32, ++/*276751*/ OPC_MoveParent, ++/*276752*/ OPC_MoveChild, 18, ++/*276754*/ OPC_CheckInteger, 1, ++/*276756*/ OPC_CheckType, MVT::i32, ++/*276758*/ OPC_MoveParent, ++/*276759*/ OPC_MoveChild, 19, ++/*276761*/ OPC_CheckInteger, 1, ++/*276763*/ OPC_CheckType, MVT::i32, ++/*276765*/ OPC_MoveParent, ++/*276766*/ OPC_MoveChild, 20, ++/*276768*/ OPC_CheckInteger, 1, ++/*276770*/ OPC_CheckType, MVT::i32, ++/*276772*/ OPC_MoveParent, ++/*276773*/ OPC_MoveChild, 21, ++/*276775*/ OPC_CheckInteger, 1, ++/*276777*/ OPC_CheckType, MVT::i32, ++/*276779*/ OPC_MoveParent, ++/*276780*/ OPC_MoveChild, 22, ++/*276782*/ OPC_CheckInteger, 1, ++/*276784*/ OPC_CheckType, MVT::i32, ++/*276786*/ OPC_MoveParent, ++/*276787*/ OPC_MoveChild, 23, ++/*276789*/ OPC_CheckInteger, 1, ++/*276791*/ OPC_CheckType, MVT::i32, ++/*276793*/ OPC_MoveParent, ++/*276794*/ OPC_MoveChild, 24, ++/*276796*/ OPC_CheckInteger, 1, ++/*276798*/ OPC_CheckType, MVT::i32, ++/*276800*/ OPC_MoveParent, ++/*276801*/ OPC_MoveChild, 25, ++/*276803*/ OPC_CheckInteger, 1, ++/*276805*/ OPC_CheckType, MVT::i32, ++/*276807*/ OPC_MoveParent, ++/*276808*/ OPC_MoveChild, 26, ++/*276810*/ OPC_CheckInteger, 1, ++/*276812*/ OPC_CheckType, MVT::i32, ++/*276814*/ OPC_MoveParent, ++/*276815*/ OPC_MoveChild, 27, ++/*276817*/ OPC_CheckInteger, 1, ++/*276819*/ OPC_CheckType, MVT::i32, ++/*276821*/ OPC_MoveParent, ++/*276822*/ OPC_MoveChild, 28, ++/*276824*/ OPC_CheckInteger, 1, ++/*276826*/ OPC_CheckType, MVT::i32, ++/*276828*/ OPC_MoveParent, ++/*276829*/ OPC_MoveChild, 29, ++/*276831*/ OPC_CheckInteger, 1, ++/*276833*/ OPC_CheckType, MVT::i32, ++/*276835*/ OPC_MoveParent, ++/*276836*/ OPC_MoveChild, 30, ++/*276838*/ OPC_CheckInteger, 1, ++/*276840*/ OPC_CheckType, MVT::i32, ++/*276842*/ OPC_MoveParent, ++/*276843*/ OPC_MoveChild, 31, ++/*276845*/ OPC_CheckInteger, 1, ++/*276847*/ OPC_CheckType, MVT::i32, ++/*276849*/ OPC_MoveParent, ++/*276850*/ OPC_CheckType, MVT::v32i8, ++/*276852*/ OPC_MoveParent, ++/*276853*/ OPC_CheckType, MVT::v32i8, ++/*276855*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*276857*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a), LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*276865*/ 0, /*End of Scope*/ ++/*276866*/ /*Scope*/ 126|128,6/*894*/, /*->277762*/ ++/*276868*/ OPC_CheckChild0Same, 1, ++/*276870*/ OPC_MoveChild1, ++/*276871*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*276874*/ OPC_Scope, 57|128,3/*441*/, /*->277318*/ // 2 children in Scope ++/*276877*/ OPC_MoveChild0, ++/*276878*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*276881*/ OPC_CheckChild0Integer, 1, ++/*276883*/ OPC_CheckChild0Type, MVT::i32, ++/*276885*/ OPC_CheckChild1Integer, 1, ++/*276887*/ OPC_CheckChild1Type, MVT::i32, ++/*276889*/ OPC_CheckChild2Integer, 1, ++/*276891*/ OPC_CheckChild2Type, MVT::i32, ++/*276893*/ OPC_CheckChild3Integer, 1, ++/*276895*/ OPC_CheckChild3Type, MVT::i32, ++/*276897*/ OPC_CheckChild4Integer, 1, ++/*276899*/ OPC_CheckChild4Type, MVT::i32, ++/*276901*/ OPC_MoveChild5, ++/*276902*/ OPC_CheckInteger, 1, ++/*276904*/ OPC_CheckType, MVT::i32, ++/*276906*/ OPC_MoveParent, ++/*276907*/ OPC_MoveChild6, ++/*276908*/ OPC_CheckInteger, 1, ++/*276910*/ OPC_CheckType, MVT::i32, ++/*276912*/ OPC_MoveParent, ++/*276913*/ OPC_MoveChild7, ++/*276914*/ OPC_CheckInteger, 1, ++/*276916*/ OPC_CheckType, MVT::i32, ++/*276918*/ OPC_MoveParent, ++/*276919*/ OPC_MoveChild, 8, ++/*276921*/ OPC_CheckInteger, 1, ++/*276923*/ OPC_CheckType, MVT::i32, ++/*276925*/ OPC_MoveParent, ++/*276926*/ OPC_MoveChild, 9, ++/*276928*/ OPC_CheckInteger, 1, ++/*276930*/ OPC_CheckType, MVT::i32, ++/*276932*/ OPC_MoveParent, ++/*276933*/ OPC_MoveChild, 10, ++/*276935*/ OPC_CheckInteger, 1, ++/*276937*/ OPC_CheckType, MVT::i32, ++/*276939*/ OPC_MoveParent, ++/*276940*/ OPC_MoveChild, 11, ++/*276942*/ OPC_CheckInteger, 1, ++/*276944*/ OPC_CheckType, MVT::i32, ++/*276946*/ OPC_MoveParent, ++/*276947*/ OPC_MoveChild, 12, ++/*276949*/ OPC_CheckInteger, 1, ++/*276951*/ OPC_CheckType, MVT::i32, ++/*276953*/ OPC_MoveParent, ++/*276954*/ OPC_MoveChild, 13, ++/*276956*/ OPC_CheckInteger, 1, ++/*276958*/ OPC_CheckType, MVT::i32, ++/*276960*/ OPC_MoveParent, ++/*276961*/ OPC_MoveChild, 14, ++/*276963*/ OPC_CheckInteger, 1, ++/*276965*/ OPC_CheckType, MVT::i32, ++/*276967*/ OPC_MoveParent, ++/*276968*/ OPC_MoveChild, 15, ++/*276970*/ OPC_CheckInteger, 1, ++/*276972*/ OPC_CheckType, MVT::i32, ++/*276974*/ OPC_MoveParent, ++/*276975*/ OPC_MoveChild, 16, ++/*276977*/ OPC_CheckInteger, 1, ++/*276979*/ OPC_CheckType, MVT::i32, ++/*276981*/ OPC_MoveParent, ++/*276982*/ OPC_MoveChild, 17, ++/*276984*/ OPC_CheckInteger, 1, ++/*276986*/ OPC_CheckType, MVT::i32, ++/*276988*/ OPC_MoveParent, ++/*276989*/ OPC_MoveChild, 18, ++/*276991*/ OPC_CheckInteger, 1, ++/*276993*/ OPC_CheckType, MVT::i32, ++/*276995*/ OPC_MoveParent, ++/*276996*/ OPC_MoveChild, 19, ++/*276998*/ OPC_CheckInteger, 1, ++/*277000*/ OPC_CheckType, MVT::i32, ++/*277002*/ OPC_MoveParent, ++/*277003*/ OPC_MoveChild, 20, ++/*277005*/ OPC_CheckInteger, 1, ++/*277007*/ OPC_CheckType, MVT::i32, ++/*277009*/ OPC_MoveParent, ++/*277010*/ OPC_MoveChild, 21, ++/*277012*/ OPC_CheckInteger, 1, ++/*277014*/ OPC_CheckType, MVT::i32, ++/*277016*/ OPC_MoveParent, ++/*277017*/ OPC_MoveChild, 22, ++/*277019*/ OPC_CheckInteger, 1, ++/*277021*/ OPC_CheckType, MVT::i32, ++/*277023*/ OPC_MoveParent, ++/*277024*/ OPC_MoveChild, 23, ++/*277026*/ OPC_CheckInteger, 1, ++/*277028*/ OPC_CheckType, MVT::i32, ++/*277030*/ OPC_MoveParent, ++/*277031*/ OPC_MoveChild, 24, ++/*277033*/ OPC_CheckInteger, 1, ++/*277035*/ OPC_CheckType, MVT::i32, ++/*277037*/ OPC_MoveParent, ++/*277038*/ OPC_MoveChild, 25, ++/*277040*/ OPC_CheckInteger, 1, ++/*277042*/ OPC_CheckType, MVT::i32, ++/*277044*/ OPC_MoveParent, ++/*277045*/ OPC_MoveChild, 26, ++/*277047*/ OPC_CheckInteger, 1, ++/*277049*/ OPC_CheckType, MVT::i32, ++/*277051*/ OPC_MoveParent, ++/*277052*/ OPC_MoveChild, 27, ++/*277054*/ OPC_CheckInteger, 1, ++/*277056*/ OPC_CheckType, MVT::i32, ++/*277058*/ OPC_MoveParent, ++/*277059*/ OPC_MoveChild, 28, ++/*277061*/ OPC_CheckInteger, 1, ++/*277063*/ OPC_CheckType, MVT::i32, ++/*277065*/ OPC_MoveParent, ++/*277066*/ OPC_MoveChild, 29, ++/*277068*/ OPC_CheckInteger, 1, ++/*277070*/ OPC_CheckType, MVT::i32, ++/*277072*/ OPC_MoveParent, ++/*277073*/ OPC_MoveChild, 30, ++/*277075*/ OPC_CheckInteger, 1, ++/*277077*/ OPC_CheckType, MVT::i32, ++/*277079*/ OPC_MoveParent, ++/*277080*/ OPC_MoveChild, 31, ++/*277082*/ OPC_CheckInteger, 1, ++/*277084*/ OPC_CheckType, MVT::i32, ++/*277086*/ OPC_MoveParent, ++/*277087*/ OPC_MoveParent, ++/*277088*/ OPC_CheckChild1Same, 0, ++/*277090*/ OPC_MoveParent, ++/*277091*/ OPC_MoveParent, ++/*277092*/ OPC_MoveParent, ++/*277093*/ OPC_MoveChild1, ++/*277094*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*277097*/ OPC_CheckChild0Integer, 1, ++/*277099*/ OPC_CheckChild0Type, MVT::i32, ++/*277101*/ OPC_CheckChild1Integer, 1, ++/*277103*/ OPC_CheckChild1Type, MVT::i32, ++/*277105*/ OPC_CheckChild2Integer, 1, ++/*277107*/ OPC_CheckChild2Type, MVT::i32, ++/*277109*/ OPC_CheckChild3Integer, 1, ++/*277111*/ OPC_CheckChild3Type, MVT::i32, ++/*277113*/ OPC_CheckChild4Integer, 1, ++/*277115*/ OPC_CheckChild4Type, MVT::i32, ++/*277117*/ OPC_MoveChild5, ++/*277118*/ OPC_CheckInteger, 1, ++/*277120*/ OPC_CheckType, MVT::i32, ++/*277122*/ OPC_MoveParent, ++/*277123*/ OPC_MoveChild6, ++/*277124*/ OPC_CheckInteger, 1, ++/*277126*/ OPC_CheckType, MVT::i32, ++/*277128*/ OPC_MoveParent, ++/*277129*/ OPC_MoveChild7, ++/*277130*/ OPC_CheckInteger, 1, ++/*277132*/ OPC_CheckType, MVT::i32, ++/*277134*/ OPC_MoveParent, ++/*277135*/ OPC_MoveChild, 8, ++/*277137*/ OPC_CheckInteger, 1, ++/*277139*/ OPC_CheckType, MVT::i32, ++/*277141*/ OPC_MoveParent, ++/*277142*/ OPC_MoveChild, 9, ++/*277144*/ OPC_CheckInteger, 1, ++/*277146*/ OPC_CheckType, MVT::i32, ++/*277148*/ OPC_MoveParent, ++/*277149*/ OPC_MoveChild, 10, ++/*277151*/ OPC_CheckInteger, 1, ++/*277153*/ OPC_CheckType, MVT::i32, ++/*277155*/ OPC_MoveParent, ++/*277156*/ OPC_MoveChild, 11, ++/*277158*/ OPC_CheckInteger, 1, ++/*277160*/ OPC_CheckType, MVT::i32, ++/*277162*/ OPC_MoveParent, ++/*277163*/ OPC_MoveChild, 12, ++/*277165*/ OPC_CheckInteger, 1, ++/*277167*/ OPC_CheckType, MVT::i32, ++/*277169*/ OPC_MoveParent, ++/*277170*/ OPC_MoveChild, 13, ++/*277172*/ OPC_CheckInteger, 1, ++/*277174*/ OPC_CheckType, MVT::i32, ++/*277176*/ OPC_MoveParent, ++/*277177*/ OPC_MoveChild, 14, ++/*277179*/ OPC_CheckInteger, 1, ++/*277181*/ OPC_CheckType, MVT::i32, ++/*277183*/ OPC_MoveParent, ++/*277184*/ OPC_MoveChild, 15, ++/*277186*/ OPC_CheckInteger, 1, ++/*277188*/ OPC_CheckType, MVT::i32, ++/*277190*/ OPC_MoveParent, ++/*277191*/ OPC_MoveChild, 16, ++/*277193*/ OPC_CheckInteger, 1, ++/*277195*/ OPC_CheckType, MVT::i32, ++/*277197*/ OPC_MoveParent, ++/*277198*/ OPC_MoveChild, 17, ++/*277200*/ OPC_CheckInteger, 1, ++/*277202*/ OPC_CheckType, MVT::i32, ++/*277204*/ OPC_MoveParent, ++/*277205*/ OPC_MoveChild, 18, ++/*277207*/ OPC_CheckInteger, 1, ++/*277209*/ OPC_CheckType, MVT::i32, ++/*277211*/ OPC_MoveParent, ++/*277212*/ OPC_MoveChild, 19, ++/*277214*/ OPC_CheckInteger, 1, ++/*277216*/ OPC_CheckType, MVT::i32, ++/*277218*/ OPC_MoveParent, ++/*277219*/ OPC_MoveChild, 20, ++/*277221*/ OPC_CheckInteger, 1, ++/*277223*/ OPC_CheckType, MVT::i32, ++/*277225*/ OPC_MoveParent, ++/*277226*/ OPC_MoveChild, 21, ++/*277228*/ OPC_CheckInteger, 1, ++/*277230*/ OPC_CheckType, MVT::i32, ++/*277232*/ OPC_MoveParent, ++/*277233*/ OPC_MoveChild, 22, ++/*277235*/ OPC_CheckInteger, 1, ++/*277237*/ OPC_CheckType, MVT::i32, ++/*277239*/ OPC_MoveParent, ++/*277240*/ OPC_MoveChild, 23, ++/*277242*/ OPC_CheckInteger, 1, ++/*277244*/ OPC_CheckType, MVT::i32, ++/*277246*/ OPC_MoveParent, ++/*277247*/ OPC_MoveChild, 24, ++/*277249*/ OPC_CheckInteger, 1, ++/*277251*/ OPC_CheckType, MVT::i32, ++/*277253*/ OPC_MoveParent, ++/*277254*/ OPC_MoveChild, 25, ++/*277256*/ OPC_CheckInteger, 1, ++/*277258*/ OPC_CheckType, MVT::i32, ++/*277260*/ OPC_MoveParent, ++/*277261*/ OPC_MoveChild, 26, ++/*277263*/ OPC_CheckInteger, 1, ++/*277265*/ OPC_CheckType, MVT::i32, ++/*277267*/ OPC_MoveParent, ++/*277268*/ OPC_MoveChild, 27, ++/*277270*/ OPC_CheckInteger, 1, ++/*277272*/ OPC_CheckType, MVT::i32, ++/*277274*/ OPC_MoveParent, ++/*277275*/ OPC_MoveChild, 28, ++/*277277*/ OPC_CheckInteger, 1, ++/*277279*/ OPC_CheckType, MVT::i32, ++/*277281*/ OPC_MoveParent, ++/*277282*/ OPC_MoveChild, 29, ++/*277284*/ OPC_CheckInteger, 1, ++/*277286*/ OPC_CheckType, MVT::i32, ++/*277288*/ OPC_MoveParent, ++/*277289*/ OPC_MoveChild, 30, ++/*277291*/ OPC_CheckInteger, 1, ++/*277293*/ OPC_CheckType, MVT::i32, ++/*277295*/ OPC_MoveParent, ++/*277296*/ OPC_MoveChild, 31, ++/*277298*/ OPC_CheckInteger, 1, ++/*277300*/ OPC_CheckType, MVT::i32, ++/*277302*/ OPC_MoveParent, ++/*277303*/ OPC_CheckType, MVT::v32i8, ++/*277305*/ OPC_MoveParent, ++/*277306*/ OPC_CheckType, MVT::v32i8, ++/*277308*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*277310*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a), LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*277318*/ /*Scope*/ 57|128,3/*441*/, /*->277761*/ ++/*277320*/ OPC_CheckChild0Same, 0, ++/*277322*/ OPC_MoveChild1, ++/*277323*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*277326*/ OPC_CheckChild0Integer, 1, ++/*277328*/ OPC_CheckChild0Type, MVT::i32, ++/*277330*/ OPC_CheckChild1Integer, 1, ++/*277332*/ OPC_CheckChild1Type, MVT::i32, ++/*277334*/ OPC_CheckChild2Integer, 1, ++/*277336*/ OPC_CheckChild2Type, MVT::i32, ++/*277338*/ OPC_CheckChild3Integer, 1, ++/*277340*/ OPC_CheckChild3Type, MVT::i32, ++/*277342*/ OPC_CheckChild4Integer, 1, ++/*277344*/ OPC_CheckChild4Type, MVT::i32, ++/*277346*/ OPC_MoveChild5, ++/*277347*/ OPC_CheckInteger, 1, ++/*277349*/ OPC_CheckType, MVT::i32, ++/*277351*/ OPC_MoveParent, ++/*277352*/ OPC_MoveChild6, ++/*277353*/ OPC_CheckInteger, 1, ++/*277355*/ OPC_CheckType, MVT::i32, ++/*277357*/ OPC_MoveParent, ++/*277358*/ OPC_MoveChild7, ++/*277359*/ OPC_CheckInteger, 1, ++/*277361*/ OPC_CheckType, MVT::i32, ++/*277363*/ OPC_MoveParent, ++/*277364*/ OPC_MoveChild, 8, ++/*277366*/ OPC_CheckInteger, 1, ++/*277368*/ OPC_CheckType, MVT::i32, ++/*277370*/ OPC_MoveParent, ++/*277371*/ OPC_MoveChild, 9, ++/*277373*/ OPC_CheckInteger, 1, ++/*277375*/ OPC_CheckType, MVT::i32, ++/*277377*/ OPC_MoveParent, ++/*277378*/ OPC_MoveChild, 10, ++/*277380*/ OPC_CheckInteger, 1, ++/*277382*/ OPC_CheckType, MVT::i32, ++/*277384*/ OPC_MoveParent, ++/*277385*/ OPC_MoveChild, 11, ++/*277387*/ OPC_CheckInteger, 1, ++/*277389*/ OPC_CheckType, MVT::i32, ++/*277391*/ OPC_MoveParent, ++/*277392*/ OPC_MoveChild, 12, ++/*277394*/ OPC_CheckInteger, 1, ++/*277396*/ OPC_CheckType, MVT::i32, ++/*277398*/ OPC_MoveParent, ++/*277399*/ OPC_MoveChild, 13, ++/*277401*/ OPC_CheckInteger, 1, ++/*277403*/ OPC_CheckType, MVT::i32, ++/*277405*/ OPC_MoveParent, ++/*277406*/ OPC_MoveChild, 14, ++/*277408*/ OPC_CheckInteger, 1, ++/*277410*/ OPC_CheckType, MVT::i32, ++/*277412*/ OPC_MoveParent, ++/*277413*/ OPC_MoveChild, 15, ++/*277415*/ OPC_CheckInteger, 1, ++/*277417*/ OPC_CheckType, MVT::i32, ++/*277419*/ OPC_MoveParent, ++/*277420*/ OPC_MoveChild, 16, ++/*277422*/ OPC_CheckInteger, 1, ++/*277424*/ OPC_CheckType, MVT::i32, ++/*277426*/ OPC_MoveParent, ++/*277427*/ OPC_MoveChild, 17, ++/*277429*/ OPC_CheckInteger, 1, ++/*277431*/ OPC_CheckType, MVT::i32, ++/*277433*/ OPC_MoveParent, ++/*277434*/ OPC_MoveChild, 18, ++/*277436*/ OPC_CheckInteger, 1, ++/*277438*/ OPC_CheckType, MVT::i32, ++/*277440*/ OPC_MoveParent, ++/*277441*/ OPC_MoveChild, 19, ++/*277443*/ OPC_CheckInteger, 1, ++/*277445*/ OPC_CheckType, MVT::i32, ++/*277447*/ OPC_MoveParent, ++/*277448*/ OPC_MoveChild, 20, ++/*277450*/ OPC_CheckInteger, 1, ++/*277452*/ OPC_CheckType, MVT::i32, ++/*277454*/ OPC_MoveParent, ++/*277455*/ OPC_MoveChild, 21, ++/*277457*/ OPC_CheckInteger, 1, ++/*277459*/ OPC_CheckType, MVT::i32, ++/*277461*/ OPC_MoveParent, ++/*277462*/ OPC_MoveChild, 22, ++/*277464*/ OPC_CheckInteger, 1, ++/*277466*/ OPC_CheckType, MVT::i32, ++/*277468*/ OPC_MoveParent, ++/*277469*/ OPC_MoveChild, 23, ++/*277471*/ OPC_CheckInteger, 1, ++/*277473*/ OPC_CheckType, MVT::i32, ++/*277475*/ OPC_MoveParent, ++/*277476*/ OPC_MoveChild, 24, ++/*277478*/ OPC_CheckInteger, 1, ++/*277480*/ OPC_CheckType, MVT::i32, ++/*277482*/ OPC_MoveParent, ++/*277483*/ OPC_MoveChild, 25, ++/*277485*/ OPC_CheckInteger, 1, ++/*277487*/ OPC_CheckType, MVT::i32, ++/*277489*/ OPC_MoveParent, ++/*277490*/ OPC_MoveChild, 26, ++/*277492*/ OPC_CheckInteger, 1, ++/*277494*/ OPC_CheckType, MVT::i32, ++/*277496*/ OPC_MoveParent, ++/*277497*/ OPC_MoveChild, 27, ++/*277499*/ OPC_CheckInteger, 1, ++/*277501*/ OPC_CheckType, MVT::i32, ++/*277503*/ OPC_MoveParent, ++/*277504*/ OPC_MoveChild, 28, ++/*277506*/ OPC_CheckInteger, 1, ++/*277508*/ OPC_CheckType, MVT::i32, ++/*277510*/ OPC_MoveParent, ++/*277511*/ OPC_MoveChild, 29, ++/*277513*/ OPC_CheckInteger, 1, ++/*277515*/ OPC_CheckType, MVT::i32, ++/*277517*/ OPC_MoveParent, ++/*277518*/ OPC_MoveChild, 30, ++/*277520*/ OPC_CheckInteger, 1, ++/*277522*/ OPC_CheckType, MVT::i32, ++/*277524*/ OPC_MoveParent, ++/*277525*/ OPC_MoveChild, 31, ++/*277527*/ OPC_CheckInteger, 1, ++/*277529*/ OPC_CheckType, MVT::i32, ++/*277531*/ OPC_MoveParent, ++/*277532*/ OPC_MoveParent, ++/*277533*/ OPC_MoveParent, ++/*277534*/ OPC_MoveParent, ++/*277535*/ OPC_MoveParent, ++/*277536*/ OPC_MoveChild1, ++/*277537*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*277540*/ OPC_CheckChild0Integer, 1, ++/*277542*/ OPC_CheckChild0Type, MVT::i32, ++/*277544*/ OPC_CheckChild1Integer, 1, ++/*277546*/ OPC_CheckChild1Type, MVT::i32, ++/*277548*/ OPC_CheckChild2Integer, 1, ++/*277550*/ OPC_CheckChild2Type, MVT::i32, ++/*277552*/ OPC_CheckChild3Integer, 1, ++/*277554*/ OPC_CheckChild3Type, MVT::i32, ++/*277556*/ OPC_CheckChild4Integer, 1, ++/*277558*/ OPC_CheckChild4Type, MVT::i32, ++/*277560*/ OPC_MoveChild5, ++/*277561*/ OPC_CheckInteger, 1, ++/*277563*/ OPC_CheckType, MVT::i32, ++/*277565*/ OPC_MoveParent, ++/*277566*/ OPC_MoveChild6, ++/*277567*/ OPC_CheckInteger, 1, ++/*277569*/ OPC_CheckType, MVT::i32, ++/*277571*/ OPC_MoveParent, ++/*277572*/ OPC_MoveChild7, ++/*277573*/ OPC_CheckInteger, 1, ++/*277575*/ OPC_CheckType, MVT::i32, ++/*277577*/ OPC_MoveParent, ++/*277578*/ OPC_MoveChild, 8, ++/*277580*/ OPC_CheckInteger, 1, ++/*277582*/ OPC_CheckType, MVT::i32, ++/*277584*/ OPC_MoveParent, ++/*277585*/ OPC_MoveChild, 9, ++/*277587*/ OPC_CheckInteger, 1, ++/*277589*/ OPC_CheckType, MVT::i32, ++/*277591*/ OPC_MoveParent, ++/*277592*/ OPC_MoveChild, 10, ++/*277594*/ OPC_CheckInteger, 1, ++/*277596*/ OPC_CheckType, MVT::i32, ++/*277598*/ OPC_MoveParent, ++/*277599*/ OPC_MoveChild, 11, ++/*277601*/ OPC_CheckInteger, 1, ++/*277603*/ OPC_CheckType, MVT::i32, ++/*277605*/ OPC_MoveParent, ++/*277606*/ OPC_MoveChild, 12, ++/*277608*/ OPC_CheckInteger, 1, ++/*277610*/ OPC_CheckType, MVT::i32, ++/*277612*/ OPC_MoveParent, ++/*277613*/ OPC_MoveChild, 13, ++/*277615*/ OPC_CheckInteger, 1, ++/*277617*/ OPC_CheckType, MVT::i32, ++/*277619*/ OPC_MoveParent, ++/*277620*/ OPC_MoveChild, 14, ++/*277622*/ OPC_CheckInteger, 1, ++/*277624*/ OPC_CheckType, MVT::i32, ++/*277626*/ OPC_MoveParent, ++/*277627*/ OPC_MoveChild, 15, ++/*277629*/ OPC_CheckInteger, 1, ++/*277631*/ OPC_CheckType, MVT::i32, ++/*277633*/ OPC_MoveParent, ++/*277634*/ OPC_MoveChild, 16, ++/*277636*/ OPC_CheckInteger, 1, ++/*277638*/ OPC_CheckType, MVT::i32, ++/*277640*/ OPC_MoveParent, ++/*277641*/ OPC_MoveChild, 17, ++/*277643*/ OPC_CheckInteger, 1, ++/*277645*/ OPC_CheckType, MVT::i32, ++/*277647*/ OPC_MoveParent, ++/*277648*/ OPC_MoveChild, 18, ++/*277650*/ OPC_CheckInteger, 1, ++/*277652*/ OPC_CheckType, MVT::i32, ++/*277654*/ OPC_MoveParent, ++/*277655*/ OPC_MoveChild, 19, ++/*277657*/ OPC_CheckInteger, 1, ++/*277659*/ OPC_CheckType, MVT::i32, ++/*277661*/ OPC_MoveParent, ++/*277662*/ OPC_MoveChild, 20, ++/*277664*/ OPC_CheckInteger, 1, ++/*277666*/ OPC_CheckType, MVT::i32, ++/*277668*/ OPC_MoveParent, ++/*277669*/ OPC_MoveChild, 21, ++/*277671*/ OPC_CheckInteger, 1, ++/*277673*/ OPC_CheckType, MVT::i32, ++/*277675*/ OPC_MoveParent, ++/*277676*/ OPC_MoveChild, 22, ++/*277678*/ OPC_CheckInteger, 1, ++/*277680*/ OPC_CheckType, MVT::i32, ++/*277682*/ OPC_MoveParent, ++/*277683*/ OPC_MoveChild, 23, ++/*277685*/ OPC_CheckInteger, 1, ++/*277687*/ OPC_CheckType, MVT::i32, ++/*277689*/ OPC_MoveParent, ++/*277690*/ OPC_MoveChild, 24, ++/*277692*/ OPC_CheckInteger, 1, ++/*277694*/ OPC_CheckType, MVT::i32, ++/*277696*/ OPC_MoveParent, ++/*277697*/ OPC_MoveChild, 25, ++/*277699*/ OPC_CheckInteger, 1, ++/*277701*/ OPC_CheckType, MVT::i32, ++/*277703*/ OPC_MoveParent, ++/*277704*/ OPC_MoveChild, 26, ++/*277706*/ OPC_CheckInteger, 1, ++/*277708*/ OPC_CheckType, MVT::i32, ++/*277710*/ OPC_MoveParent, ++/*277711*/ OPC_MoveChild, 27, ++/*277713*/ OPC_CheckInteger, 1, ++/*277715*/ OPC_CheckType, MVT::i32, ++/*277717*/ OPC_MoveParent, ++/*277718*/ OPC_MoveChild, 28, ++/*277720*/ OPC_CheckInteger, 1, ++/*277722*/ OPC_CheckType, MVT::i32, ++/*277724*/ OPC_MoveParent, ++/*277725*/ OPC_MoveChild, 29, ++/*277727*/ OPC_CheckInteger, 1, ++/*277729*/ OPC_CheckType, MVT::i32, ++/*277731*/ OPC_MoveParent, ++/*277732*/ OPC_MoveChild, 30, ++/*277734*/ OPC_CheckInteger, 1, ++/*277736*/ OPC_CheckType, MVT::i32, ++/*277738*/ OPC_MoveParent, ++/*277739*/ OPC_MoveChild, 31, ++/*277741*/ OPC_CheckInteger, 1, ++/*277743*/ OPC_CheckType, MVT::i32, ++/*277745*/ OPC_MoveParent, ++/*277746*/ OPC_CheckType, MVT::v32i8, ++/*277748*/ OPC_MoveParent, ++/*277749*/ OPC_CheckType, MVT::v32i8, ++/*277751*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*277753*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a), LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*277761*/ 0, /*End of Scope*/ ++/*277762*/ /*Scope*/ 126|128,6/*894*/, /*->278658*/ ++/*277764*/ OPC_CheckChild0Same, 0, ++/*277766*/ OPC_MoveChild1, ++/*277767*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*277770*/ OPC_Scope, 57|128,3/*441*/, /*->278214*/ // 2 children in Scope ++/*277773*/ OPC_MoveChild0, ++/*277774*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*277777*/ OPC_CheckChild0Integer, 1, ++/*277779*/ OPC_CheckChild0Type, MVT::i32, ++/*277781*/ OPC_CheckChild1Integer, 1, ++/*277783*/ OPC_CheckChild1Type, MVT::i32, ++/*277785*/ OPC_CheckChild2Integer, 1, ++/*277787*/ OPC_CheckChild2Type, MVT::i32, ++/*277789*/ OPC_CheckChild3Integer, 1, ++/*277791*/ OPC_CheckChild3Type, MVT::i32, ++/*277793*/ OPC_CheckChild4Integer, 1, ++/*277795*/ OPC_CheckChild4Type, MVT::i32, ++/*277797*/ OPC_MoveChild5, ++/*277798*/ OPC_CheckInteger, 1, ++/*277800*/ OPC_CheckType, MVT::i32, ++/*277802*/ OPC_MoveParent, ++/*277803*/ OPC_MoveChild6, ++/*277804*/ OPC_CheckInteger, 1, ++/*277806*/ OPC_CheckType, MVT::i32, ++/*277808*/ OPC_MoveParent, ++/*277809*/ OPC_MoveChild7, ++/*277810*/ OPC_CheckInteger, 1, ++/*277812*/ OPC_CheckType, MVT::i32, ++/*277814*/ OPC_MoveParent, ++/*277815*/ OPC_MoveChild, 8, ++/*277817*/ OPC_CheckInteger, 1, ++/*277819*/ OPC_CheckType, MVT::i32, ++/*277821*/ OPC_MoveParent, ++/*277822*/ OPC_MoveChild, 9, ++/*277824*/ OPC_CheckInteger, 1, ++/*277826*/ OPC_CheckType, MVT::i32, ++/*277828*/ OPC_MoveParent, ++/*277829*/ OPC_MoveChild, 10, ++/*277831*/ OPC_CheckInteger, 1, ++/*277833*/ OPC_CheckType, MVT::i32, ++/*277835*/ OPC_MoveParent, ++/*277836*/ OPC_MoveChild, 11, ++/*277838*/ OPC_CheckInteger, 1, ++/*277840*/ OPC_CheckType, MVT::i32, ++/*277842*/ OPC_MoveParent, ++/*277843*/ OPC_MoveChild, 12, ++/*277845*/ OPC_CheckInteger, 1, ++/*277847*/ OPC_CheckType, MVT::i32, ++/*277849*/ OPC_MoveParent, ++/*277850*/ OPC_MoveChild, 13, ++/*277852*/ OPC_CheckInteger, 1, ++/*277854*/ OPC_CheckType, MVT::i32, ++/*277856*/ OPC_MoveParent, ++/*277857*/ OPC_MoveChild, 14, ++/*277859*/ OPC_CheckInteger, 1, ++/*277861*/ OPC_CheckType, MVT::i32, ++/*277863*/ OPC_MoveParent, ++/*277864*/ OPC_MoveChild, 15, ++/*277866*/ OPC_CheckInteger, 1, ++/*277868*/ OPC_CheckType, MVT::i32, ++/*277870*/ OPC_MoveParent, ++/*277871*/ OPC_MoveChild, 16, ++/*277873*/ OPC_CheckInteger, 1, ++/*277875*/ OPC_CheckType, MVT::i32, ++/*277877*/ OPC_MoveParent, ++/*277878*/ OPC_MoveChild, 17, ++/*277880*/ OPC_CheckInteger, 1, ++/*277882*/ OPC_CheckType, MVT::i32, ++/*277884*/ OPC_MoveParent, ++/*277885*/ OPC_MoveChild, 18, ++/*277887*/ OPC_CheckInteger, 1, ++/*277889*/ OPC_CheckType, MVT::i32, ++/*277891*/ OPC_MoveParent, ++/*277892*/ OPC_MoveChild, 19, ++/*277894*/ OPC_CheckInteger, 1, ++/*277896*/ OPC_CheckType, MVT::i32, ++/*277898*/ OPC_MoveParent, ++/*277899*/ OPC_MoveChild, 20, ++/*277901*/ OPC_CheckInteger, 1, ++/*277903*/ OPC_CheckType, MVT::i32, ++/*277905*/ OPC_MoveParent, ++/*277906*/ OPC_MoveChild, 21, ++/*277908*/ OPC_CheckInteger, 1, ++/*277910*/ OPC_CheckType, MVT::i32, ++/*277912*/ OPC_MoveParent, ++/*277913*/ OPC_MoveChild, 22, ++/*277915*/ OPC_CheckInteger, 1, ++/*277917*/ OPC_CheckType, MVT::i32, ++/*277919*/ OPC_MoveParent, ++/*277920*/ OPC_MoveChild, 23, ++/*277922*/ OPC_CheckInteger, 1, ++/*277924*/ OPC_CheckType, MVT::i32, ++/*277926*/ OPC_MoveParent, ++/*277927*/ OPC_MoveChild, 24, ++/*277929*/ OPC_CheckInteger, 1, ++/*277931*/ OPC_CheckType, MVT::i32, ++/*277933*/ OPC_MoveParent, ++/*277934*/ OPC_MoveChild, 25, ++/*277936*/ OPC_CheckInteger, 1, ++/*277938*/ OPC_CheckType, MVT::i32, ++/*277940*/ OPC_MoveParent, ++/*277941*/ OPC_MoveChild, 26, ++/*277943*/ OPC_CheckInteger, 1, ++/*277945*/ OPC_CheckType, MVT::i32, ++/*277947*/ OPC_MoveParent, ++/*277948*/ OPC_MoveChild, 27, ++/*277950*/ OPC_CheckInteger, 1, ++/*277952*/ OPC_CheckType, MVT::i32, ++/*277954*/ OPC_MoveParent, ++/*277955*/ OPC_MoveChild, 28, ++/*277957*/ OPC_CheckInteger, 1, ++/*277959*/ OPC_CheckType, MVT::i32, ++/*277961*/ OPC_MoveParent, ++/*277962*/ OPC_MoveChild, 29, ++/*277964*/ OPC_CheckInteger, 1, ++/*277966*/ OPC_CheckType, MVT::i32, ++/*277968*/ OPC_MoveParent, ++/*277969*/ OPC_MoveChild, 30, ++/*277971*/ OPC_CheckInteger, 1, ++/*277973*/ OPC_CheckType, MVT::i32, ++/*277975*/ OPC_MoveParent, ++/*277976*/ OPC_MoveChild, 31, ++/*277978*/ OPC_CheckInteger, 1, ++/*277980*/ OPC_CheckType, MVT::i32, ++/*277982*/ OPC_MoveParent, ++/*277983*/ OPC_MoveParent, ++/*277984*/ OPC_CheckChild1Same, 1, ++/*277986*/ OPC_MoveParent, ++/*277987*/ OPC_MoveParent, ++/*277988*/ OPC_MoveParent, ++/*277989*/ OPC_MoveChild1, ++/*277990*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*277993*/ OPC_CheckChild0Integer, 1, ++/*277995*/ OPC_CheckChild0Type, MVT::i32, ++/*277997*/ OPC_CheckChild1Integer, 1, ++/*277999*/ OPC_CheckChild1Type, MVT::i32, ++/*278001*/ OPC_CheckChild2Integer, 1, ++/*278003*/ OPC_CheckChild2Type, MVT::i32, ++/*278005*/ OPC_CheckChild3Integer, 1, ++/*278007*/ OPC_CheckChild3Type, MVT::i32, ++/*278009*/ OPC_CheckChild4Integer, 1, ++/*278011*/ OPC_CheckChild4Type, MVT::i32, ++/*278013*/ OPC_MoveChild5, ++/*278014*/ OPC_CheckInteger, 1, ++/*278016*/ OPC_CheckType, MVT::i32, ++/*278018*/ OPC_MoveParent, ++/*278019*/ OPC_MoveChild6, ++/*278020*/ OPC_CheckInteger, 1, ++/*278022*/ OPC_CheckType, MVT::i32, ++/*278024*/ OPC_MoveParent, ++/*278025*/ OPC_MoveChild7, ++/*278026*/ OPC_CheckInteger, 1, ++/*278028*/ OPC_CheckType, MVT::i32, ++/*278030*/ OPC_MoveParent, ++/*278031*/ OPC_MoveChild, 8, ++/*278033*/ OPC_CheckInteger, 1, ++/*278035*/ OPC_CheckType, MVT::i32, ++/*278037*/ OPC_MoveParent, ++/*278038*/ OPC_MoveChild, 9, ++/*278040*/ OPC_CheckInteger, 1, ++/*278042*/ OPC_CheckType, MVT::i32, ++/*278044*/ OPC_MoveParent, ++/*278045*/ OPC_MoveChild, 10, ++/*278047*/ OPC_CheckInteger, 1, ++/*278049*/ OPC_CheckType, MVT::i32, ++/*278051*/ OPC_MoveParent, ++/*278052*/ OPC_MoveChild, 11, ++/*278054*/ OPC_CheckInteger, 1, ++/*278056*/ OPC_CheckType, MVT::i32, ++/*278058*/ OPC_MoveParent, ++/*278059*/ OPC_MoveChild, 12, ++/*278061*/ OPC_CheckInteger, 1, ++/*278063*/ OPC_CheckType, MVT::i32, ++/*278065*/ OPC_MoveParent, ++/*278066*/ OPC_MoveChild, 13, ++/*278068*/ OPC_CheckInteger, 1, ++/*278070*/ OPC_CheckType, MVT::i32, ++/*278072*/ OPC_MoveParent, ++/*278073*/ OPC_MoveChild, 14, ++/*278075*/ OPC_CheckInteger, 1, ++/*278077*/ OPC_CheckType, MVT::i32, ++/*278079*/ OPC_MoveParent, ++/*278080*/ OPC_MoveChild, 15, ++/*278082*/ OPC_CheckInteger, 1, ++/*278084*/ OPC_CheckType, MVT::i32, ++/*278086*/ OPC_MoveParent, ++/*278087*/ OPC_MoveChild, 16, ++/*278089*/ OPC_CheckInteger, 1, ++/*278091*/ OPC_CheckType, MVT::i32, ++/*278093*/ OPC_MoveParent, ++/*278094*/ OPC_MoveChild, 17, ++/*278096*/ OPC_CheckInteger, 1, ++/*278098*/ OPC_CheckType, MVT::i32, ++/*278100*/ OPC_MoveParent, ++/*278101*/ OPC_MoveChild, 18, ++/*278103*/ OPC_CheckInteger, 1, ++/*278105*/ OPC_CheckType, MVT::i32, ++/*278107*/ OPC_MoveParent, ++/*278108*/ OPC_MoveChild, 19, ++/*278110*/ OPC_CheckInteger, 1, ++/*278112*/ OPC_CheckType, MVT::i32, ++/*278114*/ OPC_MoveParent, ++/*278115*/ OPC_MoveChild, 20, ++/*278117*/ OPC_CheckInteger, 1, ++/*278119*/ OPC_CheckType, MVT::i32, ++/*278121*/ OPC_MoveParent, ++/*278122*/ OPC_MoveChild, 21, ++/*278124*/ OPC_CheckInteger, 1, ++/*278126*/ OPC_CheckType, MVT::i32, ++/*278128*/ OPC_MoveParent, ++/*278129*/ OPC_MoveChild, 22, ++/*278131*/ OPC_CheckInteger, 1, ++/*278133*/ OPC_CheckType, MVT::i32, ++/*278135*/ OPC_MoveParent, ++/*278136*/ OPC_MoveChild, 23, ++/*278138*/ OPC_CheckInteger, 1, ++/*278140*/ OPC_CheckType, MVT::i32, ++/*278142*/ OPC_MoveParent, ++/*278143*/ OPC_MoveChild, 24, ++/*278145*/ OPC_CheckInteger, 1, ++/*278147*/ OPC_CheckType, MVT::i32, ++/*278149*/ OPC_MoveParent, ++/*278150*/ OPC_MoveChild, 25, ++/*278152*/ OPC_CheckInteger, 1, ++/*278154*/ OPC_CheckType, MVT::i32, ++/*278156*/ OPC_MoveParent, ++/*278157*/ OPC_MoveChild, 26, ++/*278159*/ OPC_CheckInteger, 1, ++/*278161*/ OPC_CheckType, MVT::i32, ++/*278163*/ OPC_MoveParent, ++/*278164*/ OPC_MoveChild, 27, ++/*278166*/ OPC_CheckInteger, 1, ++/*278168*/ OPC_CheckType, MVT::i32, ++/*278170*/ OPC_MoveParent, ++/*278171*/ OPC_MoveChild, 28, ++/*278173*/ OPC_CheckInteger, 1, ++/*278175*/ OPC_CheckType, MVT::i32, ++/*278177*/ OPC_MoveParent, ++/*278178*/ OPC_MoveChild, 29, ++/*278180*/ OPC_CheckInteger, 1, ++/*278182*/ OPC_CheckType, MVT::i32, ++/*278184*/ OPC_MoveParent, ++/*278185*/ OPC_MoveChild, 30, ++/*278187*/ OPC_CheckInteger, 1, ++/*278189*/ OPC_CheckType, MVT::i32, ++/*278191*/ OPC_MoveParent, ++/*278192*/ OPC_MoveChild, 31, ++/*278194*/ OPC_CheckInteger, 1, ++/*278196*/ OPC_CheckType, MVT::i32, ++/*278198*/ OPC_MoveParent, ++/*278199*/ OPC_CheckType, MVT::v32i8, ++/*278201*/ OPC_MoveParent, ++/*278202*/ OPC_CheckType, MVT::v32i8, ++/*278204*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*278206*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a), LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*278214*/ /*Scope*/ 57|128,3/*441*/, /*->278657*/ ++/*278216*/ OPC_CheckChild0Same, 1, ++/*278218*/ OPC_MoveChild1, ++/*278219*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*278222*/ OPC_CheckChild0Integer, 1, ++/*278224*/ OPC_CheckChild0Type, MVT::i32, ++/*278226*/ OPC_CheckChild1Integer, 1, ++/*278228*/ OPC_CheckChild1Type, MVT::i32, ++/*278230*/ OPC_CheckChild2Integer, 1, ++/*278232*/ OPC_CheckChild2Type, MVT::i32, ++/*278234*/ OPC_CheckChild3Integer, 1, ++/*278236*/ OPC_CheckChild3Type, MVT::i32, ++/*278238*/ OPC_CheckChild4Integer, 1, ++/*278240*/ OPC_CheckChild4Type, MVT::i32, ++/*278242*/ OPC_MoveChild5, ++/*278243*/ OPC_CheckInteger, 1, ++/*278245*/ OPC_CheckType, MVT::i32, ++/*278247*/ OPC_MoveParent, ++/*278248*/ OPC_MoveChild6, ++/*278249*/ OPC_CheckInteger, 1, ++/*278251*/ OPC_CheckType, MVT::i32, ++/*278253*/ OPC_MoveParent, ++/*278254*/ OPC_MoveChild7, ++/*278255*/ OPC_CheckInteger, 1, ++/*278257*/ OPC_CheckType, MVT::i32, ++/*278259*/ OPC_MoveParent, ++/*278260*/ OPC_MoveChild, 8, ++/*278262*/ OPC_CheckInteger, 1, ++/*278264*/ OPC_CheckType, MVT::i32, ++/*278266*/ OPC_MoveParent, ++/*278267*/ OPC_MoveChild, 9, ++/*278269*/ OPC_CheckInteger, 1, ++/*278271*/ OPC_CheckType, MVT::i32, ++/*278273*/ OPC_MoveParent, ++/*278274*/ OPC_MoveChild, 10, ++/*278276*/ OPC_CheckInteger, 1, ++/*278278*/ OPC_CheckType, MVT::i32, ++/*278280*/ OPC_MoveParent, ++/*278281*/ OPC_MoveChild, 11, ++/*278283*/ OPC_CheckInteger, 1, ++/*278285*/ OPC_CheckType, MVT::i32, ++/*278287*/ OPC_MoveParent, ++/*278288*/ OPC_MoveChild, 12, ++/*278290*/ OPC_CheckInteger, 1, ++/*278292*/ OPC_CheckType, MVT::i32, ++/*278294*/ OPC_MoveParent, ++/*278295*/ OPC_MoveChild, 13, ++/*278297*/ OPC_CheckInteger, 1, ++/*278299*/ OPC_CheckType, MVT::i32, ++/*278301*/ OPC_MoveParent, ++/*278302*/ OPC_MoveChild, 14, ++/*278304*/ OPC_CheckInteger, 1, ++/*278306*/ OPC_CheckType, MVT::i32, ++/*278308*/ OPC_MoveParent, ++/*278309*/ OPC_MoveChild, 15, ++/*278311*/ OPC_CheckInteger, 1, ++/*278313*/ OPC_CheckType, MVT::i32, ++/*278315*/ OPC_MoveParent, ++/*278316*/ OPC_MoveChild, 16, ++/*278318*/ OPC_CheckInteger, 1, ++/*278320*/ OPC_CheckType, MVT::i32, ++/*278322*/ OPC_MoveParent, ++/*278323*/ OPC_MoveChild, 17, ++/*278325*/ OPC_CheckInteger, 1, ++/*278327*/ OPC_CheckType, MVT::i32, ++/*278329*/ OPC_MoveParent, ++/*278330*/ OPC_MoveChild, 18, ++/*278332*/ OPC_CheckInteger, 1, ++/*278334*/ OPC_CheckType, MVT::i32, ++/*278336*/ OPC_MoveParent, ++/*278337*/ OPC_MoveChild, 19, ++/*278339*/ OPC_CheckInteger, 1, ++/*278341*/ OPC_CheckType, MVT::i32, ++/*278343*/ OPC_MoveParent, ++/*278344*/ OPC_MoveChild, 20, ++/*278346*/ OPC_CheckInteger, 1, ++/*278348*/ OPC_CheckType, MVT::i32, ++/*278350*/ OPC_MoveParent, ++/*278351*/ OPC_MoveChild, 21, ++/*278353*/ OPC_CheckInteger, 1, ++/*278355*/ OPC_CheckType, MVT::i32, ++/*278357*/ OPC_MoveParent, ++/*278358*/ OPC_MoveChild, 22, ++/*278360*/ OPC_CheckInteger, 1, ++/*278362*/ OPC_CheckType, MVT::i32, ++/*278364*/ OPC_MoveParent, ++/*278365*/ OPC_MoveChild, 23, ++/*278367*/ OPC_CheckInteger, 1, ++/*278369*/ OPC_CheckType, MVT::i32, ++/*278371*/ OPC_MoveParent, ++/*278372*/ OPC_MoveChild, 24, ++/*278374*/ OPC_CheckInteger, 1, ++/*278376*/ OPC_CheckType, MVT::i32, ++/*278378*/ OPC_MoveParent, ++/*278379*/ OPC_MoveChild, 25, ++/*278381*/ OPC_CheckInteger, 1, ++/*278383*/ OPC_CheckType, MVT::i32, ++/*278385*/ OPC_MoveParent, ++/*278386*/ OPC_MoveChild, 26, ++/*278388*/ OPC_CheckInteger, 1, ++/*278390*/ OPC_CheckType, MVT::i32, ++/*278392*/ OPC_MoveParent, ++/*278393*/ OPC_MoveChild, 27, ++/*278395*/ OPC_CheckInteger, 1, ++/*278397*/ OPC_CheckType, MVT::i32, ++/*278399*/ OPC_MoveParent, ++/*278400*/ OPC_MoveChild, 28, ++/*278402*/ OPC_CheckInteger, 1, ++/*278404*/ OPC_CheckType, MVT::i32, ++/*278406*/ OPC_MoveParent, ++/*278407*/ OPC_MoveChild, 29, ++/*278409*/ OPC_CheckInteger, 1, ++/*278411*/ OPC_CheckType, MVT::i32, ++/*278413*/ OPC_MoveParent, ++/*278414*/ OPC_MoveChild, 30, ++/*278416*/ OPC_CheckInteger, 1, ++/*278418*/ OPC_CheckType, MVT::i32, ++/*278420*/ OPC_MoveParent, ++/*278421*/ OPC_MoveChild, 31, ++/*278423*/ OPC_CheckInteger, 1, ++/*278425*/ OPC_CheckType, MVT::i32, ++/*278427*/ OPC_MoveParent, ++/*278428*/ OPC_MoveParent, ++/*278429*/ OPC_MoveParent, ++/*278430*/ OPC_MoveParent, ++/*278431*/ OPC_MoveParent, ++/*278432*/ OPC_MoveChild1, ++/*278433*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*278436*/ OPC_CheckChild0Integer, 1, ++/*278438*/ OPC_CheckChild0Type, MVT::i32, ++/*278440*/ OPC_CheckChild1Integer, 1, ++/*278442*/ OPC_CheckChild1Type, MVT::i32, ++/*278444*/ OPC_CheckChild2Integer, 1, ++/*278446*/ OPC_CheckChild2Type, MVT::i32, ++/*278448*/ OPC_CheckChild3Integer, 1, ++/*278450*/ OPC_CheckChild3Type, MVT::i32, ++/*278452*/ OPC_CheckChild4Integer, 1, ++/*278454*/ OPC_CheckChild4Type, MVT::i32, ++/*278456*/ OPC_MoveChild5, ++/*278457*/ OPC_CheckInteger, 1, ++/*278459*/ OPC_CheckType, MVT::i32, ++/*278461*/ OPC_MoveParent, ++/*278462*/ OPC_MoveChild6, ++/*278463*/ OPC_CheckInteger, 1, ++/*278465*/ OPC_CheckType, MVT::i32, ++/*278467*/ OPC_MoveParent, ++/*278468*/ OPC_MoveChild7, ++/*278469*/ OPC_CheckInteger, 1, ++/*278471*/ OPC_CheckType, MVT::i32, ++/*278473*/ OPC_MoveParent, ++/*278474*/ OPC_MoveChild, 8, ++/*278476*/ OPC_CheckInteger, 1, ++/*278478*/ OPC_CheckType, MVT::i32, ++/*278480*/ OPC_MoveParent, ++/*278481*/ OPC_MoveChild, 9, ++/*278483*/ OPC_CheckInteger, 1, ++/*278485*/ OPC_CheckType, MVT::i32, ++/*278487*/ OPC_MoveParent, ++/*278488*/ OPC_MoveChild, 10, ++/*278490*/ OPC_CheckInteger, 1, ++/*278492*/ OPC_CheckType, MVT::i32, ++/*278494*/ OPC_MoveParent, ++/*278495*/ OPC_MoveChild, 11, ++/*278497*/ OPC_CheckInteger, 1, ++/*278499*/ OPC_CheckType, MVT::i32, ++/*278501*/ OPC_MoveParent, ++/*278502*/ OPC_MoveChild, 12, ++/*278504*/ OPC_CheckInteger, 1, ++/*278506*/ OPC_CheckType, MVT::i32, ++/*278508*/ OPC_MoveParent, ++/*278509*/ OPC_MoveChild, 13, ++/*278511*/ OPC_CheckInteger, 1, ++/*278513*/ OPC_CheckType, MVT::i32, ++/*278515*/ OPC_MoveParent, ++/*278516*/ OPC_MoveChild, 14, ++/*278518*/ OPC_CheckInteger, 1, ++/*278520*/ OPC_CheckType, MVT::i32, ++/*278522*/ OPC_MoveParent, ++/*278523*/ OPC_MoveChild, 15, ++/*278525*/ OPC_CheckInteger, 1, ++/*278527*/ OPC_CheckType, MVT::i32, ++/*278529*/ OPC_MoveParent, ++/*278530*/ OPC_MoveChild, 16, ++/*278532*/ OPC_CheckInteger, 1, ++/*278534*/ OPC_CheckType, MVT::i32, ++/*278536*/ OPC_MoveParent, ++/*278537*/ OPC_MoveChild, 17, ++/*278539*/ OPC_CheckInteger, 1, ++/*278541*/ OPC_CheckType, MVT::i32, ++/*278543*/ OPC_MoveParent, ++/*278544*/ OPC_MoveChild, 18, ++/*278546*/ OPC_CheckInteger, 1, ++/*278548*/ OPC_CheckType, MVT::i32, ++/*278550*/ OPC_MoveParent, ++/*278551*/ OPC_MoveChild, 19, ++/*278553*/ OPC_CheckInteger, 1, ++/*278555*/ OPC_CheckType, MVT::i32, ++/*278557*/ OPC_MoveParent, ++/*278558*/ OPC_MoveChild, 20, ++/*278560*/ OPC_CheckInteger, 1, ++/*278562*/ OPC_CheckType, MVT::i32, ++/*278564*/ OPC_MoveParent, ++/*278565*/ OPC_MoveChild, 21, ++/*278567*/ OPC_CheckInteger, 1, ++/*278569*/ OPC_CheckType, MVT::i32, ++/*278571*/ OPC_MoveParent, ++/*278572*/ OPC_MoveChild, 22, ++/*278574*/ OPC_CheckInteger, 1, ++/*278576*/ OPC_CheckType, MVT::i32, ++/*278578*/ OPC_MoveParent, ++/*278579*/ OPC_MoveChild, 23, ++/*278581*/ OPC_CheckInteger, 1, ++/*278583*/ OPC_CheckType, MVT::i32, ++/*278585*/ OPC_MoveParent, ++/*278586*/ OPC_MoveChild, 24, ++/*278588*/ OPC_CheckInteger, 1, ++/*278590*/ OPC_CheckType, MVT::i32, ++/*278592*/ OPC_MoveParent, ++/*278593*/ OPC_MoveChild, 25, ++/*278595*/ OPC_CheckInteger, 1, ++/*278597*/ OPC_CheckType, MVT::i32, ++/*278599*/ OPC_MoveParent, ++/*278600*/ OPC_MoveChild, 26, ++/*278602*/ OPC_CheckInteger, 1, ++/*278604*/ OPC_CheckType, MVT::i32, ++/*278606*/ OPC_MoveParent, ++/*278607*/ OPC_MoveChild, 27, ++/*278609*/ OPC_CheckInteger, 1, ++/*278611*/ OPC_CheckType, MVT::i32, ++/*278613*/ OPC_MoveParent, ++/*278614*/ OPC_MoveChild, 28, ++/*278616*/ OPC_CheckInteger, 1, ++/*278618*/ OPC_CheckType, MVT::i32, ++/*278620*/ OPC_MoveParent, ++/*278621*/ OPC_MoveChild, 29, ++/*278623*/ OPC_CheckInteger, 1, ++/*278625*/ OPC_CheckType, MVT::i32, ++/*278627*/ OPC_MoveParent, ++/*278628*/ OPC_MoveChild, 30, ++/*278630*/ OPC_CheckInteger, 1, ++/*278632*/ OPC_CheckType, MVT::i32, ++/*278634*/ OPC_MoveParent, ++/*278635*/ OPC_MoveChild, 31, ++/*278637*/ OPC_CheckInteger, 1, ++/*278639*/ OPC_CheckType, MVT::i32, ++/*278641*/ OPC_MoveParent, ++/*278642*/ OPC_CheckType, MVT::v32i8, ++/*278644*/ OPC_MoveParent, ++/*278645*/ OPC_CheckType, MVT::v32i8, ++/*278647*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*278649*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a), LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*278657*/ 0, /*End of Scope*/ ++/*278658*/ /*Scope*/ 45|128,5/*685*/, /*->279345*/ ++/*278660*/ OPC_MoveChild0, ++/*278661*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*278664*/ OPC_CheckChild0Integer, 1, ++/*278666*/ OPC_CheckChild0Type, MVT::i32, ++/*278668*/ OPC_CheckChild1Integer, 1, ++/*278670*/ OPC_CheckChild1Type, MVT::i32, ++/*278672*/ OPC_CheckChild2Integer, 1, ++/*278674*/ OPC_CheckChild2Type, MVT::i32, ++/*278676*/ OPC_CheckChild3Integer, 1, ++/*278678*/ OPC_CheckChild3Type, MVT::i32, ++/*278680*/ OPC_CheckChild4Integer, 1, ++/*278682*/ OPC_CheckChild4Type, MVT::i32, ++/*278684*/ OPC_MoveChild5, ++/*278685*/ OPC_CheckInteger, 1, ++/*278687*/ OPC_CheckType, MVT::i32, ++/*278689*/ OPC_MoveParent, ++/*278690*/ OPC_MoveChild6, ++/*278691*/ OPC_CheckInteger, 1, ++/*278693*/ OPC_CheckType, MVT::i32, ++/*278695*/ OPC_MoveParent, ++/*278696*/ OPC_MoveChild7, ++/*278697*/ OPC_CheckInteger, 1, ++/*278699*/ OPC_CheckType, MVT::i32, ++/*278701*/ OPC_MoveParent, ++/*278702*/ OPC_MoveChild, 8, ++/*278704*/ OPC_CheckInteger, 1, ++/*278706*/ OPC_CheckType, MVT::i32, ++/*278708*/ OPC_MoveParent, ++/*278709*/ OPC_MoveChild, 9, ++/*278711*/ OPC_CheckInteger, 1, ++/*278713*/ OPC_CheckType, MVT::i32, ++/*278715*/ OPC_MoveParent, ++/*278716*/ OPC_MoveChild, 10, ++/*278718*/ OPC_CheckInteger, 1, ++/*278720*/ OPC_CheckType, MVT::i32, ++/*278722*/ OPC_MoveParent, ++/*278723*/ OPC_MoveChild, 11, ++/*278725*/ OPC_CheckInteger, 1, ++/*278727*/ OPC_CheckType, MVT::i32, ++/*278729*/ OPC_MoveParent, ++/*278730*/ OPC_MoveChild, 12, ++/*278732*/ OPC_CheckInteger, 1, ++/*278734*/ OPC_CheckType, MVT::i32, ++/*278736*/ OPC_MoveParent, ++/*278737*/ OPC_MoveChild, 13, ++/*278739*/ OPC_CheckInteger, 1, ++/*278741*/ OPC_CheckType, MVT::i32, ++/*278743*/ OPC_MoveParent, ++/*278744*/ OPC_MoveChild, 14, ++/*278746*/ OPC_CheckInteger, 1, ++/*278748*/ OPC_CheckType, MVT::i32, ++/*278750*/ OPC_MoveParent, ++/*278751*/ OPC_MoveChild, 15, ++/*278753*/ OPC_CheckInteger, 1, ++/*278755*/ OPC_CheckType, MVT::i32, ++/*278757*/ OPC_MoveParent, ++/*278758*/ OPC_MoveChild, 16, ++/*278760*/ OPC_CheckInteger, 1, ++/*278762*/ OPC_CheckType, MVT::i32, ++/*278764*/ OPC_MoveParent, ++/*278765*/ OPC_MoveChild, 17, ++/*278767*/ OPC_CheckInteger, 1, ++/*278769*/ OPC_CheckType, MVT::i32, ++/*278771*/ OPC_MoveParent, ++/*278772*/ OPC_MoveChild, 18, ++/*278774*/ OPC_CheckInteger, 1, ++/*278776*/ OPC_CheckType, MVT::i32, ++/*278778*/ OPC_MoveParent, ++/*278779*/ OPC_MoveChild, 19, ++/*278781*/ OPC_CheckInteger, 1, ++/*278783*/ OPC_CheckType, MVT::i32, ++/*278785*/ OPC_MoveParent, ++/*278786*/ OPC_MoveChild, 20, ++/*278788*/ OPC_CheckInteger, 1, ++/*278790*/ OPC_CheckType, MVT::i32, ++/*278792*/ OPC_MoveParent, ++/*278793*/ OPC_MoveChild, 21, ++/*278795*/ OPC_CheckInteger, 1, ++/*278797*/ OPC_CheckType, MVT::i32, ++/*278799*/ OPC_MoveParent, ++/*278800*/ OPC_MoveChild, 22, ++/*278802*/ OPC_CheckInteger, 1, ++/*278804*/ OPC_CheckType, MVT::i32, ++/*278806*/ OPC_MoveParent, ++/*278807*/ OPC_MoveChild, 23, ++/*278809*/ OPC_CheckInteger, 1, ++/*278811*/ OPC_CheckType, MVT::i32, ++/*278813*/ OPC_MoveParent, ++/*278814*/ OPC_MoveChild, 24, ++/*278816*/ OPC_CheckInteger, 1, ++/*278818*/ OPC_CheckType, MVT::i32, ++/*278820*/ OPC_MoveParent, ++/*278821*/ OPC_MoveChild, 25, ++/*278823*/ OPC_CheckInteger, 1, ++/*278825*/ OPC_CheckType, MVT::i32, ++/*278827*/ OPC_MoveParent, ++/*278828*/ OPC_MoveChild, 26, ++/*278830*/ OPC_CheckInteger, 1, ++/*278832*/ OPC_CheckType, MVT::i32, ++/*278834*/ OPC_MoveParent, ++/*278835*/ OPC_MoveChild, 27, ++/*278837*/ OPC_CheckInteger, 1, ++/*278839*/ OPC_CheckType, MVT::i32, ++/*278841*/ OPC_MoveParent, ++/*278842*/ OPC_MoveChild, 28, ++/*278844*/ OPC_CheckInteger, 1, ++/*278846*/ OPC_CheckType, MVT::i32, ++/*278848*/ OPC_MoveParent, ++/*278849*/ OPC_MoveChild, 29, ++/*278851*/ OPC_CheckInteger, 1, ++/*278853*/ OPC_CheckType, MVT::i32, ++/*278855*/ OPC_MoveParent, ++/*278856*/ OPC_MoveChild, 30, ++/*278858*/ OPC_CheckInteger, 1, ++/*278860*/ OPC_CheckType, MVT::i32, ++/*278862*/ OPC_MoveParent, ++/*278863*/ OPC_MoveChild, 31, ++/*278865*/ OPC_CheckInteger, 1, ++/*278867*/ OPC_CheckType, MVT::i32, ++/*278869*/ OPC_MoveParent, ++/*278870*/ OPC_MoveParent, ++/*278871*/ OPC_MoveChild1, ++/*278872*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*278875*/ OPC_Scope, 104|128,1/*232*/, /*->279110*/ // 2 children in Scope ++/*278878*/ OPC_CheckChild0Same, 0, ++/*278880*/ OPC_CheckChild1Same, 1, ++/*278882*/ OPC_MoveParent, ++/*278883*/ OPC_MoveParent, ++/*278884*/ OPC_MoveParent, ++/*278885*/ OPC_MoveChild1, ++/*278886*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*278889*/ OPC_CheckChild0Integer, 1, ++/*278891*/ OPC_CheckChild0Type, MVT::i32, ++/*278893*/ OPC_CheckChild1Integer, 1, ++/*278895*/ OPC_CheckChild1Type, MVT::i32, ++/*278897*/ OPC_CheckChild2Integer, 1, ++/*278899*/ OPC_CheckChild2Type, MVT::i32, ++/*278901*/ OPC_CheckChild3Integer, 1, ++/*278903*/ OPC_CheckChild3Type, MVT::i32, ++/*278905*/ OPC_CheckChild4Integer, 1, ++/*278907*/ OPC_CheckChild4Type, MVT::i32, ++/*278909*/ OPC_MoveChild5, ++/*278910*/ OPC_CheckInteger, 1, ++/*278912*/ OPC_CheckType, MVT::i32, ++/*278914*/ OPC_MoveParent, ++/*278915*/ OPC_MoveChild6, ++/*278916*/ OPC_CheckInteger, 1, ++/*278918*/ OPC_CheckType, MVT::i32, ++/*278920*/ OPC_MoveParent, ++/*278921*/ OPC_MoveChild7, ++/*278922*/ OPC_CheckInteger, 1, ++/*278924*/ OPC_CheckType, MVT::i32, ++/*278926*/ OPC_MoveParent, ++/*278927*/ OPC_MoveChild, 8, ++/*278929*/ OPC_CheckInteger, 1, ++/*278931*/ OPC_CheckType, MVT::i32, ++/*278933*/ OPC_MoveParent, ++/*278934*/ OPC_MoveChild, 9, ++/*278936*/ OPC_CheckInteger, 1, ++/*278938*/ OPC_CheckType, MVT::i32, ++/*278940*/ OPC_MoveParent, ++/*278941*/ OPC_MoveChild, 10, ++/*278943*/ OPC_CheckInteger, 1, ++/*278945*/ OPC_CheckType, MVT::i32, ++/*278947*/ OPC_MoveParent, ++/*278948*/ OPC_MoveChild, 11, ++/*278950*/ OPC_CheckInteger, 1, ++/*278952*/ OPC_CheckType, MVT::i32, ++/*278954*/ OPC_MoveParent, ++/*278955*/ OPC_MoveChild, 12, ++/*278957*/ OPC_CheckInteger, 1, ++/*278959*/ OPC_CheckType, MVT::i32, ++/*278961*/ OPC_MoveParent, ++/*278962*/ OPC_MoveChild, 13, ++/*278964*/ OPC_CheckInteger, 1, ++/*278966*/ OPC_CheckType, MVT::i32, ++/*278968*/ OPC_MoveParent, ++/*278969*/ OPC_MoveChild, 14, ++/*278971*/ OPC_CheckInteger, 1, ++/*278973*/ OPC_CheckType, MVT::i32, ++/*278975*/ OPC_MoveParent, ++/*278976*/ OPC_MoveChild, 15, ++/*278978*/ OPC_CheckInteger, 1, ++/*278980*/ OPC_CheckType, MVT::i32, ++/*278982*/ OPC_MoveParent, ++/*278983*/ OPC_MoveChild, 16, ++/*278985*/ OPC_CheckInteger, 1, ++/*278987*/ OPC_CheckType, MVT::i32, ++/*278989*/ OPC_MoveParent, ++/*278990*/ OPC_MoveChild, 17, ++/*278992*/ OPC_CheckInteger, 1, ++/*278994*/ OPC_CheckType, MVT::i32, ++/*278996*/ OPC_MoveParent, ++/*278997*/ OPC_MoveChild, 18, ++/*278999*/ OPC_CheckInteger, 1, ++/*279001*/ OPC_CheckType, MVT::i32, ++/*279003*/ OPC_MoveParent, ++/*279004*/ OPC_MoveChild, 19, ++/*279006*/ OPC_CheckInteger, 1, ++/*279008*/ OPC_CheckType, MVT::i32, ++/*279010*/ OPC_MoveParent, ++/*279011*/ OPC_MoveChild, 20, ++/*279013*/ OPC_CheckInteger, 1, ++/*279015*/ OPC_CheckType, MVT::i32, ++/*279017*/ OPC_MoveParent, ++/*279018*/ OPC_MoveChild, 21, ++/*279020*/ OPC_CheckInteger, 1, ++/*279022*/ OPC_CheckType, MVT::i32, ++/*279024*/ OPC_MoveParent, ++/*279025*/ OPC_MoveChild, 22, ++/*279027*/ OPC_CheckInteger, 1, ++/*279029*/ OPC_CheckType, MVT::i32, ++/*279031*/ OPC_MoveParent, ++/*279032*/ OPC_MoveChild, 23, ++/*279034*/ OPC_CheckInteger, 1, ++/*279036*/ OPC_CheckType, MVT::i32, ++/*279038*/ OPC_MoveParent, ++/*279039*/ OPC_MoveChild, 24, ++/*279041*/ OPC_CheckInteger, 1, ++/*279043*/ OPC_CheckType, MVT::i32, ++/*279045*/ OPC_MoveParent, ++/*279046*/ OPC_MoveChild, 25, ++/*279048*/ OPC_CheckInteger, 1, ++/*279050*/ OPC_CheckType, MVT::i32, ++/*279052*/ OPC_MoveParent, ++/*279053*/ OPC_MoveChild, 26, ++/*279055*/ OPC_CheckInteger, 1, ++/*279057*/ OPC_CheckType, MVT::i32, ++/*279059*/ OPC_MoveParent, ++/*279060*/ OPC_MoveChild, 27, ++/*279062*/ OPC_CheckInteger, 1, ++/*279064*/ OPC_CheckType, MVT::i32, ++/*279066*/ OPC_MoveParent, ++/*279067*/ OPC_MoveChild, 28, ++/*279069*/ OPC_CheckInteger, 1, ++/*279071*/ OPC_CheckType, MVT::i32, ++/*279073*/ OPC_MoveParent, ++/*279074*/ OPC_MoveChild, 29, ++/*279076*/ OPC_CheckInteger, 1, ++/*279078*/ OPC_CheckType, MVT::i32, ++/*279080*/ OPC_MoveParent, ++/*279081*/ OPC_MoveChild, 30, ++/*279083*/ OPC_CheckInteger, 1, ++/*279085*/ OPC_CheckType, MVT::i32, ++/*279087*/ OPC_MoveParent, ++/*279088*/ OPC_MoveChild, 31, ++/*279090*/ OPC_CheckInteger, 1, ++/*279092*/ OPC_CheckType, MVT::i32, ++/*279094*/ OPC_MoveParent, ++/*279095*/ OPC_CheckType, MVT::v32i8, ++/*279097*/ OPC_MoveParent, ++/*279098*/ OPC_CheckType, MVT::v32i8, ++/*279100*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*279102*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a), LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*279110*/ /*Scope*/ 104|128,1/*232*/, /*->279344*/ ++/*279112*/ OPC_CheckChild0Same, 1, ++/*279114*/ OPC_CheckChild1Same, 0, ++/*279116*/ OPC_MoveParent, ++/*279117*/ OPC_MoveParent, ++/*279118*/ OPC_MoveParent, ++/*279119*/ OPC_MoveChild1, ++/*279120*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*279123*/ OPC_CheckChild0Integer, 1, ++/*279125*/ OPC_CheckChild0Type, MVT::i32, ++/*279127*/ OPC_CheckChild1Integer, 1, ++/*279129*/ OPC_CheckChild1Type, MVT::i32, ++/*279131*/ OPC_CheckChild2Integer, 1, ++/*279133*/ OPC_CheckChild2Type, MVT::i32, ++/*279135*/ OPC_CheckChild3Integer, 1, ++/*279137*/ OPC_CheckChild3Type, MVT::i32, ++/*279139*/ OPC_CheckChild4Integer, 1, ++/*279141*/ OPC_CheckChild4Type, MVT::i32, ++/*279143*/ OPC_MoveChild5, ++/*279144*/ OPC_CheckInteger, 1, ++/*279146*/ OPC_CheckType, MVT::i32, ++/*279148*/ OPC_MoveParent, ++/*279149*/ OPC_MoveChild6, ++/*279150*/ OPC_CheckInteger, 1, ++/*279152*/ OPC_CheckType, MVT::i32, ++/*279154*/ OPC_MoveParent, ++/*279155*/ OPC_MoveChild7, ++/*279156*/ OPC_CheckInteger, 1, ++/*279158*/ OPC_CheckType, MVT::i32, ++/*279160*/ OPC_MoveParent, ++/*279161*/ OPC_MoveChild, 8, ++/*279163*/ OPC_CheckInteger, 1, ++/*279165*/ OPC_CheckType, MVT::i32, ++/*279167*/ OPC_MoveParent, ++/*279168*/ OPC_MoveChild, 9, ++/*279170*/ OPC_CheckInteger, 1, ++/*279172*/ OPC_CheckType, MVT::i32, ++/*279174*/ OPC_MoveParent, ++/*279175*/ OPC_MoveChild, 10, ++/*279177*/ OPC_CheckInteger, 1, ++/*279179*/ OPC_CheckType, MVT::i32, ++/*279181*/ OPC_MoveParent, ++/*279182*/ OPC_MoveChild, 11, ++/*279184*/ OPC_CheckInteger, 1, ++/*279186*/ OPC_CheckType, MVT::i32, ++/*279188*/ OPC_MoveParent, ++/*279189*/ OPC_MoveChild, 12, ++/*279191*/ OPC_CheckInteger, 1, ++/*279193*/ OPC_CheckType, MVT::i32, ++/*279195*/ OPC_MoveParent, ++/*279196*/ OPC_MoveChild, 13, ++/*279198*/ OPC_CheckInteger, 1, ++/*279200*/ OPC_CheckType, MVT::i32, ++/*279202*/ OPC_MoveParent, ++/*279203*/ OPC_MoveChild, 14, ++/*279205*/ OPC_CheckInteger, 1, ++/*279207*/ OPC_CheckType, MVT::i32, ++/*279209*/ OPC_MoveParent, ++/*279210*/ OPC_MoveChild, 15, ++/*279212*/ OPC_CheckInteger, 1, ++/*279214*/ OPC_CheckType, MVT::i32, ++/*279216*/ OPC_MoveParent, ++/*279217*/ OPC_MoveChild, 16, ++/*279219*/ OPC_CheckInteger, 1, ++/*279221*/ OPC_CheckType, MVT::i32, ++/*279223*/ OPC_MoveParent, ++/*279224*/ OPC_MoveChild, 17, ++/*279226*/ OPC_CheckInteger, 1, ++/*279228*/ OPC_CheckType, MVT::i32, ++/*279230*/ OPC_MoveParent, ++/*279231*/ OPC_MoveChild, 18, ++/*279233*/ OPC_CheckInteger, 1, ++/*279235*/ OPC_CheckType, MVT::i32, ++/*279237*/ OPC_MoveParent, ++/*279238*/ OPC_MoveChild, 19, ++/*279240*/ OPC_CheckInteger, 1, ++/*279242*/ OPC_CheckType, MVT::i32, ++/*279244*/ OPC_MoveParent, ++/*279245*/ OPC_MoveChild, 20, ++/*279247*/ OPC_CheckInteger, 1, ++/*279249*/ OPC_CheckType, MVT::i32, ++/*279251*/ OPC_MoveParent, ++/*279252*/ OPC_MoveChild, 21, ++/*279254*/ OPC_CheckInteger, 1, ++/*279256*/ OPC_CheckType, MVT::i32, ++/*279258*/ OPC_MoveParent, ++/*279259*/ OPC_MoveChild, 22, ++/*279261*/ OPC_CheckInteger, 1, ++/*279263*/ OPC_CheckType, MVT::i32, ++/*279265*/ OPC_MoveParent, ++/*279266*/ OPC_MoveChild, 23, ++/*279268*/ OPC_CheckInteger, 1, ++/*279270*/ OPC_CheckType, MVT::i32, ++/*279272*/ OPC_MoveParent, ++/*279273*/ OPC_MoveChild, 24, ++/*279275*/ OPC_CheckInteger, 1, ++/*279277*/ OPC_CheckType, MVT::i32, ++/*279279*/ OPC_MoveParent, ++/*279280*/ OPC_MoveChild, 25, ++/*279282*/ OPC_CheckInteger, 1, ++/*279284*/ OPC_CheckType, MVT::i32, ++/*279286*/ OPC_MoveParent, ++/*279287*/ OPC_MoveChild, 26, ++/*279289*/ OPC_CheckInteger, 1, ++/*279291*/ OPC_CheckType, MVT::i32, ++/*279293*/ OPC_MoveParent, ++/*279294*/ OPC_MoveChild, 27, ++/*279296*/ OPC_CheckInteger, 1, ++/*279298*/ OPC_CheckType, MVT::i32, ++/*279300*/ OPC_MoveParent, ++/*279301*/ OPC_MoveChild, 28, ++/*279303*/ OPC_CheckInteger, 1, ++/*279305*/ OPC_CheckType, MVT::i32, ++/*279307*/ OPC_MoveParent, ++/*279308*/ OPC_MoveChild, 29, ++/*279310*/ OPC_CheckInteger, 1, ++/*279312*/ OPC_CheckType, MVT::i32, ++/*279314*/ OPC_MoveParent, ++/*279315*/ OPC_MoveChild, 30, ++/*279317*/ OPC_CheckInteger, 1, ++/*279319*/ OPC_CheckType, MVT::i32, ++/*279321*/ OPC_MoveParent, ++/*279322*/ OPC_MoveChild, 31, ++/*279324*/ OPC_CheckInteger, 1, ++/*279326*/ OPC_CheckType, MVT::i32, ++/*279328*/ OPC_MoveParent, ++/*279329*/ OPC_CheckType, MVT::v32i8, ++/*279331*/ OPC_MoveParent, ++/*279332*/ OPC_CheckType, MVT::v32i8, ++/*279334*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*279336*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a), LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*279344*/ 0, /*End of Scope*/ ++/*279345*/ 0, /*End of Scope*/ ++/*279346*/ /*Scope*/ 88|128,43/*5592*/, /*->284940*/ ++/*279348*/ OPC_RecordChild0, // #0 = $a ++/*279349*/ OPC_MoveChild1, ++/*279350*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*279353*/ OPC_CheckChild0Integer, 1, ++/*279355*/ OPC_CheckChild0Type, MVT::i32, ++/*279357*/ OPC_CheckChild1Integer, 1, ++/*279359*/ OPC_CheckChild1Type, MVT::i32, ++/*279361*/ OPC_CheckChild2Integer, 1, ++/*279363*/ OPC_CheckChild2Type, MVT::i32, ++/*279365*/ OPC_CheckChild3Integer, 1, ++/*279367*/ OPC_CheckChild3Type, MVT::i32, ++/*279369*/ OPC_CheckChild4Integer, 1, ++/*279371*/ OPC_CheckChild4Type, MVT::i32, ++/*279373*/ OPC_MoveChild5, ++/*279374*/ OPC_CheckInteger, 1, ++/*279376*/ OPC_CheckType, MVT::i32, ++/*279378*/ OPC_MoveParent, ++/*279379*/ OPC_MoveChild6, ++/*279380*/ OPC_CheckInteger, 1, ++/*279382*/ OPC_CheckType, MVT::i32, ++/*279384*/ OPC_MoveParent, ++/*279385*/ OPC_MoveChild7, ++/*279386*/ OPC_CheckInteger, 1, ++/*279388*/ OPC_CheckType, MVT::i32, ++/*279390*/ OPC_MoveParent, ++/*279391*/ OPC_MoveChild, 8, ++/*279393*/ OPC_CheckInteger, 1, ++/*279395*/ OPC_CheckType, MVT::i32, ++/*279397*/ OPC_MoveParent, ++/*279398*/ OPC_MoveChild, 9, ++/*279400*/ OPC_CheckInteger, 1, ++/*279402*/ OPC_CheckType, MVT::i32, ++/*279404*/ OPC_MoveParent, ++/*279405*/ OPC_MoveChild, 10, ++/*279407*/ OPC_CheckInteger, 1, ++/*279409*/ OPC_CheckType, MVT::i32, ++/*279411*/ OPC_MoveParent, ++/*279412*/ OPC_MoveChild, 11, ++/*279414*/ OPC_CheckInteger, 1, ++/*279416*/ OPC_CheckType, MVT::i32, ++/*279418*/ OPC_MoveParent, ++/*279419*/ OPC_MoveChild, 12, ++/*279421*/ OPC_CheckInteger, 1, ++/*279423*/ OPC_CheckType, MVT::i32, ++/*279425*/ OPC_MoveParent, ++/*279426*/ OPC_MoveChild, 13, ++/*279428*/ OPC_CheckInteger, 1, ++/*279430*/ OPC_CheckType, MVT::i32, ++/*279432*/ OPC_MoveParent, ++/*279433*/ OPC_MoveChild, 14, ++/*279435*/ OPC_CheckInteger, 1, ++/*279437*/ OPC_CheckType, MVT::i32, ++/*279439*/ OPC_MoveParent, ++/*279440*/ OPC_MoveChild, 15, ++/*279442*/ OPC_CheckInteger, 1, ++/*279444*/ OPC_CheckType, MVT::i32, ++/*279446*/ OPC_MoveParent, ++/*279447*/ OPC_MoveChild, 16, ++/*279449*/ OPC_CheckInteger, 1, ++/*279451*/ OPC_CheckType, MVT::i32, ++/*279453*/ OPC_MoveParent, ++/*279454*/ OPC_MoveChild, 17, ++/*279456*/ OPC_CheckInteger, 1, ++/*279458*/ OPC_CheckType, MVT::i32, ++/*279460*/ OPC_MoveParent, ++/*279461*/ OPC_MoveChild, 18, ++/*279463*/ OPC_CheckInteger, 1, ++/*279465*/ OPC_CheckType, MVT::i32, ++/*279467*/ OPC_MoveParent, ++/*279468*/ OPC_MoveChild, 19, ++/*279470*/ OPC_CheckInteger, 1, ++/*279472*/ OPC_CheckType, MVT::i32, ++/*279474*/ OPC_MoveParent, ++/*279475*/ OPC_MoveChild, 20, ++/*279477*/ OPC_CheckInteger, 1, ++/*279479*/ OPC_CheckType, MVT::i32, ++/*279481*/ OPC_MoveParent, ++/*279482*/ OPC_MoveChild, 21, ++/*279484*/ OPC_CheckInteger, 1, ++/*279486*/ OPC_CheckType, MVT::i32, ++/*279488*/ OPC_MoveParent, ++/*279489*/ OPC_MoveChild, 22, ++/*279491*/ OPC_CheckInteger, 1, ++/*279493*/ OPC_CheckType, MVT::i32, ++/*279495*/ OPC_MoveParent, ++/*279496*/ OPC_MoveChild, 23, ++/*279498*/ OPC_CheckInteger, 1, ++/*279500*/ OPC_CheckType, MVT::i32, ++/*279502*/ OPC_MoveParent, ++/*279503*/ OPC_MoveChild, 24, ++/*279505*/ OPC_CheckInteger, 1, ++/*279507*/ OPC_CheckType, MVT::i32, ++/*279509*/ OPC_MoveParent, ++/*279510*/ OPC_MoveChild, 25, ++/*279512*/ OPC_CheckInteger, 1, ++/*279514*/ OPC_CheckType, MVT::i32, ++/*279516*/ OPC_MoveParent, ++/*279517*/ OPC_MoveChild, 26, ++/*279519*/ OPC_CheckInteger, 1, ++/*279521*/ OPC_CheckType, MVT::i32, ++/*279523*/ OPC_MoveParent, ++/*279524*/ OPC_MoveChild, 27, ++/*279526*/ OPC_CheckInteger, 1, ++/*279528*/ OPC_CheckType, MVT::i32, ++/*279530*/ OPC_MoveParent, ++/*279531*/ OPC_MoveChild, 28, ++/*279533*/ OPC_CheckInteger, 1, ++/*279535*/ OPC_CheckType, MVT::i32, ++/*279537*/ OPC_MoveParent, ++/*279538*/ OPC_MoveChild, 29, ++/*279540*/ OPC_CheckInteger, 1, ++/*279542*/ OPC_CheckType, MVT::i32, ++/*279544*/ OPC_MoveParent, ++/*279545*/ OPC_MoveChild, 30, ++/*279547*/ OPC_CheckInteger, 1, ++/*279549*/ OPC_CheckType, MVT::i32, ++/*279551*/ OPC_MoveParent, ++/*279552*/ OPC_MoveChild, 31, ++/*279554*/ OPC_CheckInteger, 1, ++/*279556*/ OPC_CheckType, MVT::i32, ++/*279558*/ OPC_MoveParent, ++/*279559*/ OPC_MoveParent, ++/*279560*/ OPC_MoveParent, ++/*279561*/ OPC_RecordChild1, // #1 = $b ++/*279562*/ OPC_MoveParent, ++/*279563*/ OPC_MoveChild1, ++/*279564*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*279567*/ OPC_CheckChild0Integer, 7, ++/*279569*/ OPC_CheckChild0Type, MVT::i32, ++/*279571*/ OPC_CheckChild1Integer, 7, ++/*279573*/ OPC_CheckChild1Type, MVT::i32, ++/*279575*/ OPC_CheckChild2Integer, 7, ++/*279577*/ OPC_CheckChild2Type, MVT::i32, ++/*279579*/ OPC_CheckChild3Integer, 7, ++/*279581*/ OPC_CheckChild3Type, MVT::i32, ++/*279583*/ OPC_CheckChild4Integer, 7, ++/*279585*/ OPC_CheckChild4Type, MVT::i32, ++/*279587*/ OPC_MoveChild5, ++/*279588*/ OPC_CheckInteger, 7, ++/*279590*/ OPC_CheckType, MVT::i32, ++/*279592*/ OPC_MoveParent, ++/*279593*/ OPC_MoveChild6, ++/*279594*/ OPC_CheckInteger, 7, ++/*279596*/ OPC_CheckType, MVT::i32, ++/*279598*/ OPC_MoveParent, ++/*279599*/ OPC_MoveChild7, ++/*279600*/ OPC_CheckInteger, 7, ++/*279602*/ OPC_CheckType, MVT::i32, ++/*279604*/ OPC_MoveParent, ++/*279605*/ OPC_MoveChild, 8, ++/*279607*/ OPC_CheckInteger, 7, ++/*279609*/ OPC_CheckType, MVT::i32, ++/*279611*/ OPC_MoveParent, ++/*279612*/ OPC_MoveChild, 9, ++/*279614*/ OPC_CheckInteger, 7, ++/*279616*/ OPC_CheckType, MVT::i32, ++/*279618*/ OPC_MoveParent, ++/*279619*/ OPC_MoveChild, 10, ++/*279621*/ OPC_CheckInteger, 7, ++/*279623*/ OPC_CheckType, MVT::i32, ++/*279625*/ OPC_MoveParent, ++/*279626*/ OPC_MoveChild, 11, ++/*279628*/ OPC_CheckInteger, 7, ++/*279630*/ OPC_CheckType, MVT::i32, ++/*279632*/ OPC_MoveParent, ++/*279633*/ OPC_MoveChild, 12, ++/*279635*/ OPC_CheckInteger, 7, ++/*279637*/ OPC_CheckType, MVT::i32, ++/*279639*/ OPC_MoveParent, ++/*279640*/ OPC_MoveChild, 13, ++/*279642*/ OPC_CheckInteger, 7, ++/*279644*/ OPC_CheckType, MVT::i32, ++/*279646*/ OPC_MoveParent, ++/*279647*/ OPC_MoveChild, 14, ++/*279649*/ OPC_CheckInteger, 7, ++/*279651*/ OPC_CheckType, MVT::i32, ++/*279653*/ OPC_MoveParent, ++/*279654*/ OPC_MoveChild, 15, ++/*279656*/ OPC_CheckInteger, 7, ++/*279658*/ OPC_CheckType, MVT::i32, ++/*279660*/ OPC_MoveParent, ++/*279661*/ OPC_MoveChild, 16, ++/*279663*/ OPC_CheckInteger, 7, ++/*279665*/ OPC_CheckType, MVT::i32, ++/*279667*/ OPC_MoveParent, ++/*279668*/ OPC_MoveChild, 17, ++/*279670*/ OPC_CheckInteger, 7, ++/*279672*/ OPC_CheckType, MVT::i32, ++/*279674*/ OPC_MoveParent, ++/*279675*/ OPC_MoveChild, 18, ++/*279677*/ OPC_CheckInteger, 7, ++/*279679*/ OPC_CheckType, MVT::i32, ++/*279681*/ OPC_MoveParent, ++/*279682*/ OPC_MoveChild, 19, ++/*279684*/ OPC_CheckInteger, 7, ++/*279686*/ OPC_CheckType, MVT::i32, ++/*279688*/ OPC_MoveParent, ++/*279689*/ OPC_MoveChild, 20, ++/*279691*/ OPC_CheckInteger, 7, ++/*279693*/ OPC_CheckType, MVT::i32, ++/*279695*/ OPC_MoveParent, ++/*279696*/ OPC_MoveChild, 21, ++/*279698*/ OPC_CheckInteger, 7, ++/*279700*/ OPC_CheckType, MVT::i32, ++/*279702*/ OPC_MoveParent, ++/*279703*/ OPC_MoveChild, 22, ++/*279705*/ OPC_CheckInteger, 7, ++/*279707*/ OPC_CheckType, MVT::i32, ++/*279709*/ OPC_MoveParent, ++/*279710*/ OPC_MoveChild, 23, ++/*279712*/ OPC_CheckInteger, 7, ++/*279714*/ OPC_CheckType, MVT::i32, ++/*279716*/ OPC_MoveParent, ++/*279717*/ OPC_MoveChild, 24, ++/*279719*/ OPC_CheckInteger, 7, ++/*279721*/ OPC_CheckType, MVT::i32, ++/*279723*/ OPC_MoveParent, ++/*279724*/ OPC_MoveChild, 25, ++/*279726*/ OPC_CheckInteger, 7, ++/*279728*/ OPC_CheckType, MVT::i32, ++/*279730*/ OPC_MoveParent, ++/*279731*/ OPC_MoveChild, 26, ++/*279733*/ OPC_CheckInteger, 7, ++/*279735*/ OPC_CheckType, MVT::i32, ++/*279737*/ OPC_MoveParent, ++/*279738*/ OPC_MoveChild, 27, ++/*279740*/ OPC_CheckInteger, 7, ++/*279742*/ OPC_CheckType, MVT::i32, ++/*279744*/ OPC_MoveParent, ++/*279745*/ OPC_MoveChild, 28, ++/*279747*/ OPC_CheckInteger, 7, ++/*279749*/ OPC_CheckType, MVT::i32, ++/*279751*/ OPC_MoveParent, ++/*279752*/ OPC_MoveChild, 29, ++/*279754*/ OPC_CheckInteger, 7, ++/*279756*/ OPC_CheckType, MVT::i32, ++/*279758*/ OPC_MoveParent, ++/*279759*/ OPC_MoveChild, 30, ++/*279761*/ OPC_CheckInteger, 7, ++/*279763*/ OPC_CheckType, MVT::i32, ++/*279765*/ OPC_MoveParent, ++/*279766*/ OPC_MoveChild, 31, ++/*279768*/ OPC_CheckInteger, 7, ++/*279770*/ OPC_CheckType, MVT::i32, ++/*279772*/ OPC_MoveParent, ++/*279773*/ OPC_CheckType, MVT::v32i8, ++/*279775*/ OPC_MoveParent, ++/*279776*/ OPC_MoveParent, ++/*279777*/ OPC_MoveChild1, ++/*279778*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*279781*/ OPC_Scope, 116|128,20/*2676*/, /*->282460*/ // 4 children in Scope ++/*279784*/ OPC_MoveChild0, ++/*279785*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*279788*/ OPC_Scope, 59|128,3/*443*/, /*->280234*/ // 6 children in Scope ++/*279791*/ OPC_MoveChild0, ++/*279792*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*279795*/ OPC_CheckChild0Integer, 1, ++/*279797*/ OPC_CheckChild0Type, MVT::i32, ++/*279799*/ OPC_CheckChild1Integer, 1, ++/*279801*/ OPC_CheckChild1Type, MVT::i32, ++/*279803*/ OPC_CheckChild2Integer, 1, ++/*279805*/ OPC_CheckChild2Type, MVT::i32, ++/*279807*/ OPC_CheckChild3Integer, 1, ++/*279809*/ OPC_CheckChild3Type, MVT::i32, ++/*279811*/ OPC_CheckChild4Integer, 1, ++/*279813*/ OPC_CheckChild4Type, MVT::i32, ++/*279815*/ OPC_MoveChild5, ++/*279816*/ OPC_CheckInteger, 1, ++/*279818*/ OPC_CheckType, MVT::i32, ++/*279820*/ OPC_MoveParent, ++/*279821*/ OPC_MoveChild6, ++/*279822*/ OPC_CheckInteger, 1, ++/*279824*/ OPC_CheckType, MVT::i32, ++/*279826*/ OPC_MoveParent, ++/*279827*/ OPC_MoveChild7, ++/*279828*/ OPC_CheckInteger, 1, ++/*279830*/ OPC_CheckType, MVT::i32, ++/*279832*/ OPC_MoveParent, ++/*279833*/ OPC_MoveChild, 8, ++/*279835*/ OPC_CheckInteger, 1, ++/*279837*/ OPC_CheckType, MVT::i32, ++/*279839*/ OPC_MoveParent, ++/*279840*/ OPC_MoveChild, 9, ++/*279842*/ OPC_CheckInteger, 1, ++/*279844*/ OPC_CheckType, MVT::i32, ++/*279846*/ OPC_MoveParent, ++/*279847*/ OPC_MoveChild, 10, ++/*279849*/ OPC_CheckInteger, 1, ++/*279851*/ OPC_CheckType, MVT::i32, ++/*279853*/ OPC_MoveParent, ++/*279854*/ OPC_MoveChild, 11, ++/*279856*/ OPC_CheckInteger, 1, ++/*279858*/ OPC_CheckType, MVT::i32, ++/*279860*/ OPC_MoveParent, ++/*279861*/ OPC_MoveChild, 12, ++/*279863*/ OPC_CheckInteger, 1, ++/*279865*/ OPC_CheckType, MVT::i32, ++/*279867*/ OPC_MoveParent, ++/*279868*/ OPC_MoveChild, 13, ++/*279870*/ OPC_CheckInteger, 1, ++/*279872*/ OPC_CheckType, MVT::i32, ++/*279874*/ OPC_MoveParent, ++/*279875*/ OPC_MoveChild, 14, ++/*279877*/ OPC_CheckInteger, 1, ++/*279879*/ OPC_CheckType, MVT::i32, ++/*279881*/ OPC_MoveParent, ++/*279882*/ OPC_MoveChild, 15, ++/*279884*/ OPC_CheckInteger, 1, ++/*279886*/ OPC_CheckType, MVT::i32, ++/*279888*/ OPC_MoveParent, ++/*279889*/ OPC_MoveChild, 16, ++/*279891*/ OPC_CheckInteger, 1, ++/*279893*/ OPC_CheckType, MVT::i32, ++/*279895*/ OPC_MoveParent, ++/*279896*/ OPC_MoveChild, 17, ++/*279898*/ OPC_CheckInteger, 1, ++/*279900*/ OPC_CheckType, MVT::i32, ++/*279902*/ OPC_MoveParent, ++/*279903*/ OPC_MoveChild, 18, ++/*279905*/ OPC_CheckInteger, 1, ++/*279907*/ OPC_CheckType, MVT::i32, ++/*279909*/ OPC_MoveParent, ++/*279910*/ OPC_MoveChild, 19, ++/*279912*/ OPC_CheckInteger, 1, ++/*279914*/ OPC_CheckType, MVT::i32, ++/*279916*/ OPC_MoveParent, ++/*279917*/ OPC_MoveChild, 20, ++/*279919*/ OPC_CheckInteger, 1, ++/*279921*/ OPC_CheckType, MVT::i32, ++/*279923*/ OPC_MoveParent, ++/*279924*/ OPC_MoveChild, 21, ++/*279926*/ OPC_CheckInteger, 1, ++/*279928*/ OPC_CheckType, MVT::i32, ++/*279930*/ OPC_MoveParent, ++/*279931*/ OPC_MoveChild, 22, ++/*279933*/ OPC_CheckInteger, 1, ++/*279935*/ OPC_CheckType, MVT::i32, ++/*279937*/ OPC_MoveParent, ++/*279938*/ OPC_MoveChild, 23, ++/*279940*/ OPC_CheckInteger, 1, ++/*279942*/ OPC_CheckType, MVT::i32, ++/*279944*/ OPC_MoveParent, ++/*279945*/ OPC_MoveChild, 24, ++/*279947*/ OPC_CheckInteger, 1, ++/*279949*/ OPC_CheckType, MVT::i32, ++/*279951*/ OPC_MoveParent, ++/*279952*/ OPC_MoveChild, 25, ++/*279954*/ OPC_CheckInteger, 1, ++/*279956*/ OPC_CheckType, MVT::i32, ++/*279958*/ OPC_MoveParent, ++/*279959*/ OPC_MoveChild, 26, ++/*279961*/ OPC_CheckInteger, 1, ++/*279963*/ OPC_CheckType, MVT::i32, ++/*279965*/ OPC_MoveParent, ++/*279966*/ OPC_MoveChild, 27, ++/*279968*/ OPC_CheckInteger, 1, ++/*279970*/ OPC_CheckType, MVT::i32, ++/*279972*/ OPC_MoveParent, ++/*279973*/ OPC_MoveChild, 28, ++/*279975*/ OPC_CheckInteger, 1, ++/*279977*/ OPC_CheckType, MVT::i32, ++/*279979*/ OPC_MoveParent, ++/*279980*/ OPC_MoveChild, 29, ++/*279982*/ OPC_CheckInteger, 1, ++/*279984*/ OPC_CheckType, MVT::i32, ++/*279986*/ OPC_MoveParent, ++/*279987*/ OPC_MoveChild, 30, ++/*279989*/ OPC_CheckInteger, 1, ++/*279991*/ OPC_CheckType, MVT::i32, ++/*279993*/ OPC_MoveParent, ++/*279994*/ OPC_MoveChild, 31, ++/*279996*/ OPC_CheckInteger, 1, ++/*279998*/ OPC_CheckType, MVT::i32, ++/*280000*/ OPC_MoveParent, ++/*280001*/ OPC_MoveParent, ++/*280002*/ OPC_CheckChild1Same, 0, ++/*280004*/ OPC_MoveParent, ++/*280005*/ OPC_CheckChild1Same, 1, ++/*280007*/ OPC_MoveParent, ++/*280008*/ OPC_MoveParent, ++/*280009*/ OPC_MoveChild1, ++/*280010*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*280013*/ OPC_CheckChild0Integer, 1, ++/*280015*/ OPC_CheckChild0Type, MVT::i32, ++/*280017*/ OPC_CheckChild1Integer, 1, ++/*280019*/ OPC_CheckChild1Type, MVT::i32, ++/*280021*/ OPC_CheckChild2Integer, 1, ++/*280023*/ OPC_CheckChild2Type, MVT::i32, ++/*280025*/ OPC_CheckChild3Integer, 1, ++/*280027*/ OPC_CheckChild3Type, MVT::i32, ++/*280029*/ OPC_CheckChild4Integer, 1, ++/*280031*/ OPC_CheckChild4Type, MVT::i32, ++/*280033*/ OPC_MoveChild5, ++/*280034*/ OPC_CheckInteger, 1, ++/*280036*/ OPC_CheckType, MVT::i32, ++/*280038*/ OPC_MoveParent, ++/*280039*/ OPC_MoveChild6, ++/*280040*/ OPC_CheckInteger, 1, ++/*280042*/ OPC_CheckType, MVT::i32, ++/*280044*/ OPC_MoveParent, ++/*280045*/ OPC_MoveChild7, ++/*280046*/ OPC_CheckInteger, 1, ++/*280048*/ OPC_CheckType, MVT::i32, ++/*280050*/ OPC_MoveParent, ++/*280051*/ OPC_MoveChild, 8, ++/*280053*/ OPC_CheckInteger, 1, ++/*280055*/ OPC_CheckType, MVT::i32, ++/*280057*/ OPC_MoveParent, ++/*280058*/ OPC_MoveChild, 9, ++/*280060*/ OPC_CheckInteger, 1, ++/*280062*/ OPC_CheckType, MVT::i32, ++/*280064*/ OPC_MoveParent, ++/*280065*/ OPC_MoveChild, 10, ++/*280067*/ OPC_CheckInteger, 1, ++/*280069*/ OPC_CheckType, MVT::i32, ++/*280071*/ OPC_MoveParent, ++/*280072*/ OPC_MoveChild, 11, ++/*280074*/ OPC_CheckInteger, 1, ++/*280076*/ OPC_CheckType, MVT::i32, ++/*280078*/ OPC_MoveParent, ++/*280079*/ OPC_MoveChild, 12, ++/*280081*/ OPC_CheckInteger, 1, ++/*280083*/ OPC_CheckType, MVT::i32, ++/*280085*/ OPC_MoveParent, ++/*280086*/ OPC_MoveChild, 13, ++/*280088*/ OPC_CheckInteger, 1, ++/*280090*/ OPC_CheckType, MVT::i32, ++/*280092*/ OPC_MoveParent, ++/*280093*/ OPC_MoveChild, 14, ++/*280095*/ OPC_CheckInteger, 1, ++/*280097*/ OPC_CheckType, MVT::i32, ++/*280099*/ OPC_MoveParent, ++/*280100*/ OPC_MoveChild, 15, ++/*280102*/ OPC_CheckInteger, 1, ++/*280104*/ OPC_CheckType, MVT::i32, ++/*280106*/ OPC_MoveParent, ++/*280107*/ OPC_MoveChild, 16, ++/*280109*/ OPC_CheckInteger, 1, ++/*280111*/ OPC_CheckType, MVT::i32, ++/*280113*/ OPC_MoveParent, ++/*280114*/ OPC_MoveChild, 17, ++/*280116*/ OPC_CheckInteger, 1, ++/*280118*/ OPC_CheckType, MVT::i32, ++/*280120*/ OPC_MoveParent, ++/*280121*/ OPC_MoveChild, 18, ++/*280123*/ OPC_CheckInteger, 1, ++/*280125*/ OPC_CheckType, MVT::i32, ++/*280127*/ OPC_MoveParent, ++/*280128*/ OPC_MoveChild, 19, ++/*280130*/ OPC_CheckInteger, 1, ++/*280132*/ OPC_CheckType, MVT::i32, ++/*280134*/ OPC_MoveParent, ++/*280135*/ OPC_MoveChild, 20, ++/*280137*/ OPC_CheckInteger, 1, ++/*280139*/ OPC_CheckType, MVT::i32, ++/*280141*/ OPC_MoveParent, ++/*280142*/ OPC_MoveChild, 21, ++/*280144*/ OPC_CheckInteger, 1, ++/*280146*/ OPC_CheckType, MVT::i32, ++/*280148*/ OPC_MoveParent, ++/*280149*/ OPC_MoveChild, 22, ++/*280151*/ OPC_CheckInteger, 1, ++/*280153*/ OPC_CheckType, MVT::i32, ++/*280155*/ OPC_MoveParent, ++/*280156*/ OPC_MoveChild, 23, ++/*280158*/ OPC_CheckInteger, 1, ++/*280160*/ OPC_CheckType, MVT::i32, ++/*280162*/ OPC_MoveParent, ++/*280163*/ OPC_MoveChild, 24, ++/*280165*/ OPC_CheckInteger, 1, ++/*280167*/ OPC_CheckType, MVT::i32, ++/*280169*/ OPC_MoveParent, ++/*280170*/ OPC_MoveChild, 25, ++/*280172*/ OPC_CheckInteger, 1, ++/*280174*/ OPC_CheckType, MVT::i32, ++/*280176*/ OPC_MoveParent, ++/*280177*/ OPC_MoveChild, 26, ++/*280179*/ OPC_CheckInteger, 1, ++/*280181*/ OPC_CheckType, MVT::i32, ++/*280183*/ OPC_MoveParent, ++/*280184*/ OPC_MoveChild, 27, ++/*280186*/ OPC_CheckInteger, 1, ++/*280188*/ OPC_CheckType, MVT::i32, ++/*280190*/ OPC_MoveParent, ++/*280191*/ OPC_MoveChild, 28, ++/*280193*/ OPC_CheckInteger, 1, ++/*280195*/ OPC_CheckType, MVT::i32, ++/*280197*/ OPC_MoveParent, ++/*280198*/ OPC_MoveChild, 29, ++/*280200*/ OPC_CheckInteger, 1, ++/*280202*/ OPC_CheckType, MVT::i32, ++/*280204*/ OPC_MoveParent, ++/*280205*/ OPC_MoveChild, 30, ++/*280207*/ OPC_CheckInteger, 1, ++/*280209*/ OPC_CheckType, MVT::i32, ++/*280211*/ OPC_MoveParent, ++/*280212*/ OPC_MoveChild, 31, ++/*280214*/ OPC_CheckInteger, 1, ++/*280216*/ OPC_CheckType, MVT::i32, ++/*280218*/ OPC_MoveParent, ++/*280219*/ OPC_CheckType, MVT::v32i8, ++/*280221*/ OPC_MoveParent, ++/*280222*/ OPC_CheckType, MVT::v32i8, ++/*280224*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*280226*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a), LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*280234*/ /*Scope*/ 59|128,3/*443*/, /*->280679*/ ++/*280236*/ OPC_CheckChild0Same, 0, ++/*280238*/ OPC_MoveChild1, ++/*280239*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*280242*/ OPC_CheckChild0Integer, 1, ++/*280244*/ OPC_CheckChild0Type, MVT::i32, ++/*280246*/ OPC_CheckChild1Integer, 1, ++/*280248*/ OPC_CheckChild1Type, MVT::i32, ++/*280250*/ OPC_CheckChild2Integer, 1, ++/*280252*/ OPC_CheckChild2Type, MVT::i32, ++/*280254*/ OPC_CheckChild3Integer, 1, ++/*280256*/ OPC_CheckChild3Type, MVT::i32, ++/*280258*/ OPC_CheckChild4Integer, 1, ++/*280260*/ OPC_CheckChild4Type, MVT::i32, ++/*280262*/ OPC_MoveChild5, ++/*280263*/ OPC_CheckInteger, 1, ++/*280265*/ OPC_CheckType, MVT::i32, ++/*280267*/ OPC_MoveParent, ++/*280268*/ OPC_MoveChild6, ++/*280269*/ OPC_CheckInteger, 1, ++/*280271*/ OPC_CheckType, MVT::i32, ++/*280273*/ OPC_MoveParent, ++/*280274*/ OPC_MoveChild7, ++/*280275*/ OPC_CheckInteger, 1, ++/*280277*/ OPC_CheckType, MVT::i32, ++/*280279*/ OPC_MoveParent, ++/*280280*/ OPC_MoveChild, 8, ++/*280282*/ OPC_CheckInteger, 1, ++/*280284*/ OPC_CheckType, MVT::i32, ++/*280286*/ OPC_MoveParent, ++/*280287*/ OPC_MoveChild, 9, ++/*280289*/ OPC_CheckInteger, 1, ++/*280291*/ OPC_CheckType, MVT::i32, ++/*280293*/ OPC_MoveParent, ++/*280294*/ OPC_MoveChild, 10, ++/*280296*/ OPC_CheckInteger, 1, ++/*280298*/ OPC_CheckType, MVT::i32, ++/*280300*/ OPC_MoveParent, ++/*280301*/ OPC_MoveChild, 11, ++/*280303*/ OPC_CheckInteger, 1, ++/*280305*/ OPC_CheckType, MVT::i32, ++/*280307*/ OPC_MoveParent, ++/*280308*/ OPC_MoveChild, 12, ++/*280310*/ OPC_CheckInteger, 1, ++/*280312*/ OPC_CheckType, MVT::i32, ++/*280314*/ OPC_MoveParent, ++/*280315*/ OPC_MoveChild, 13, ++/*280317*/ OPC_CheckInteger, 1, ++/*280319*/ OPC_CheckType, MVT::i32, ++/*280321*/ OPC_MoveParent, ++/*280322*/ OPC_MoveChild, 14, ++/*280324*/ OPC_CheckInteger, 1, ++/*280326*/ OPC_CheckType, MVT::i32, ++/*280328*/ OPC_MoveParent, ++/*280329*/ OPC_MoveChild, 15, ++/*280331*/ OPC_CheckInteger, 1, ++/*280333*/ OPC_CheckType, MVT::i32, ++/*280335*/ OPC_MoveParent, ++/*280336*/ OPC_MoveChild, 16, ++/*280338*/ OPC_CheckInteger, 1, ++/*280340*/ OPC_CheckType, MVT::i32, ++/*280342*/ OPC_MoveParent, ++/*280343*/ OPC_MoveChild, 17, ++/*280345*/ OPC_CheckInteger, 1, ++/*280347*/ OPC_CheckType, MVT::i32, ++/*280349*/ OPC_MoveParent, ++/*280350*/ OPC_MoveChild, 18, ++/*280352*/ OPC_CheckInteger, 1, ++/*280354*/ OPC_CheckType, MVT::i32, ++/*280356*/ OPC_MoveParent, ++/*280357*/ OPC_MoveChild, 19, ++/*280359*/ OPC_CheckInteger, 1, ++/*280361*/ OPC_CheckType, MVT::i32, ++/*280363*/ OPC_MoveParent, ++/*280364*/ OPC_MoveChild, 20, ++/*280366*/ OPC_CheckInteger, 1, ++/*280368*/ OPC_CheckType, MVT::i32, ++/*280370*/ OPC_MoveParent, ++/*280371*/ OPC_MoveChild, 21, ++/*280373*/ OPC_CheckInteger, 1, ++/*280375*/ OPC_CheckType, MVT::i32, ++/*280377*/ OPC_MoveParent, ++/*280378*/ OPC_MoveChild, 22, ++/*280380*/ OPC_CheckInteger, 1, ++/*280382*/ OPC_CheckType, MVT::i32, ++/*280384*/ OPC_MoveParent, ++/*280385*/ OPC_MoveChild, 23, ++/*280387*/ OPC_CheckInteger, 1, ++/*280389*/ OPC_CheckType, MVT::i32, ++/*280391*/ OPC_MoveParent, ++/*280392*/ OPC_MoveChild, 24, ++/*280394*/ OPC_CheckInteger, 1, ++/*280396*/ OPC_CheckType, MVT::i32, ++/*280398*/ OPC_MoveParent, ++/*280399*/ OPC_MoveChild, 25, ++/*280401*/ OPC_CheckInteger, 1, ++/*280403*/ OPC_CheckType, MVT::i32, ++/*280405*/ OPC_MoveParent, ++/*280406*/ OPC_MoveChild, 26, ++/*280408*/ OPC_CheckInteger, 1, ++/*280410*/ OPC_CheckType, MVT::i32, ++/*280412*/ OPC_MoveParent, ++/*280413*/ OPC_MoveChild, 27, ++/*280415*/ OPC_CheckInteger, 1, ++/*280417*/ OPC_CheckType, MVT::i32, ++/*280419*/ OPC_MoveParent, ++/*280420*/ OPC_MoveChild, 28, ++/*280422*/ OPC_CheckInteger, 1, ++/*280424*/ OPC_CheckType, MVT::i32, ++/*280426*/ OPC_MoveParent, ++/*280427*/ OPC_MoveChild, 29, ++/*280429*/ OPC_CheckInteger, 1, ++/*280431*/ OPC_CheckType, MVT::i32, ++/*280433*/ OPC_MoveParent, ++/*280434*/ OPC_MoveChild, 30, ++/*280436*/ OPC_CheckInteger, 1, ++/*280438*/ OPC_CheckType, MVT::i32, ++/*280440*/ OPC_MoveParent, ++/*280441*/ OPC_MoveChild, 31, ++/*280443*/ OPC_CheckInteger, 1, ++/*280445*/ OPC_CheckType, MVT::i32, ++/*280447*/ OPC_MoveParent, ++/*280448*/ OPC_MoveParent, ++/*280449*/ OPC_MoveParent, ++/*280450*/ OPC_CheckChild1Same, 1, ++/*280452*/ OPC_MoveParent, ++/*280453*/ OPC_MoveParent, ++/*280454*/ OPC_MoveChild1, ++/*280455*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*280458*/ OPC_CheckChild0Integer, 1, ++/*280460*/ OPC_CheckChild0Type, MVT::i32, ++/*280462*/ OPC_CheckChild1Integer, 1, ++/*280464*/ OPC_CheckChild1Type, MVT::i32, ++/*280466*/ OPC_CheckChild2Integer, 1, ++/*280468*/ OPC_CheckChild2Type, MVT::i32, ++/*280470*/ OPC_CheckChild3Integer, 1, ++/*280472*/ OPC_CheckChild3Type, MVT::i32, ++/*280474*/ OPC_CheckChild4Integer, 1, ++/*280476*/ OPC_CheckChild4Type, MVT::i32, ++/*280478*/ OPC_MoveChild5, ++/*280479*/ OPC_CheckInteger, 1, ++/*280481*/ OPC_CheckType, MVT::i32, ++/*280483*/ OPC_MoveParent, ++/*280484*/ OPC_MoveChild6, ++/*280485*/ OPC_CheckInteger, 1, ++/*280487*/ OPC_CheckType, MVT::i32, ++/*280489*/ OPC_MoveParent, ++/*280490*/ OPC_MoveChild7, ++/*280491*/ OPC_CheckInteger, 1, ++/*280493*/ OPC_CheckType, MVT::i32, ++/*280495*/ OPC_MoveParent, ++/*280496*/ OPC_MoveChild, 8, ++/*280498*/ OPC_CheckInteger, 1, ++/*280500*/ OPC_CheckType, MVT::i32, ++/*280502*/ OPC_MoveParent, ++/*280503*/ OPC_MoveChild, 9, ++/*280505*/ OPC_CheckInteger, 1, ++/*280507*/ OPC_CheckType, MVT::i32, ++/*280509*/ OPC_MoveParent, ++/*280510*/ OPC_MoveChild, 10, ++/*280512*/ OPC_CheckInteger, 1, ++/*280514*/ OPC_CheckType, MVT::i32, ++/*280516*/ OPC_MoveParent, ++/*280517*/ OPC_MoveChild, 11, ++/*280519*/ OPC_CheckInteger, 1, ++/*280521*/ OPC_CheckType, MVT::i32, ++/*280523*/ OPC_MoveParent, ++/*280524*/ OPC_MoveChild, 12, ++/*280526*/ OPC_CheckInteger, 1, ++/*280528*/ OPC_CheckType, MVT::i32, ++/*280530*/ OPC_MoveParent, ++/*280531*/ OPC_MoveChild, 13, ++/*280533*/ OPC_CheckInteger, 1, ++/*280535*/ OPC_CheckType, MVT::i32, ++/*280537*/ OPC_MoveParent, ++/*280538*/ OPC_MoveChild, 14, ++/*280540*/ OPC_CheckInteger, 1, ++/*280542*/ OPC_CheckType, MVT::i32, ++/*280544*/ OPC_MoveParent, ++/*280545*/ OPC_MoveChild, 15, ++/*280547*/ OPC_CheckInteger, 1, ++/*280549*/ OPC_CheckType, MVT::i32, ++/*280551*/ OPC_MoveParent, ++/*280552*/ OPC_MoveChild, 16, ++/*280554*/ OPC_CheckInteger, 1, ++/*280556*/ OPC_CheckType, MVT::i32, ++/*280558*/ OPC_MoveParent, ++/*280559*/ OPC_MoveChild, 17, ++/*280561*/ OPC_CheckInteger, 1, ++/*280563*/ OPC_CheckType, MVT::i32, ++/*280565*/ OPC_MoveParent, ++/*280566*/ OPC_MoveChild, 18, ++/*280568*/ OPC_CheckInteger, 1, ++/*280570*/ OPC_CheckType, MVT::i32, ++/*280572*/ OPC_MoveParent, ++/*280573*/ OPC_MoveChild, 19, ++/*280575*/ OPC_CheckInteger, 1, ++/*280577*/ OPC_CheckType, MVT::i32, ++/*280579*/ OPC_MoveParent, ++/*280580*/ OPC_MoveChild, 20, ++/*280582*/ OPC_CheckInteger, 1, ++/*280584*/ OPC_CheckType, MVT::i32, ++/*280586*/ OPC_MoveParent, ++/*280587*/ OPC_MoveChild, 21, ++/*280589*/ OPC_CheckInteger, 1, ++/*280591*/ OPC_CheckType, MVT::i32, ++/*280593*/ OPC_MoveParent, ++/*280594*/ OPC_MoveChild, 22, ++/*280596*/ OPC_CheckInteger, 1, ++/*280598*/ OPC_CheckType, MVT::i32, ++/*280600*/ OPC_MoveParent, ++/*280601*/ OPC_MoveChild, 23, ++/*280603*/ OPC_CheckInteger, 1, ++/*280605*/ OPC_CheckType, MVT::i32, ++/*280607*/ OPC_MoveParent, ++/*280608*/ OPC_MoveChild, 24, ++/*280610*/ OPC_CheckInteger, 1, ++/*280612*/ OPC_CheckType, MVT::i32, ++/*280614*/ OPC_MoveParent, ++/*280615*/ OPC_MoveChild, 25, ++/*280617*/ OPC_CheckInteger, 1, ++/*280619*/ OPC_CheckType, MVT::i32, ++/*280621*/ OPC_MoveParent, ++/*280622*/ OPC_MoveChild, 26, ++/*280624*/ OPC_CheckInteger, 1, ++/*280626*/ OPC_CheckType, MVT::i32, ++/*280628*/ OPC_MoveParent, ++/*280629*/ OPC_MoveChild, 27, ++/*280631*/ OPC_CheckInteger, 1, ++/*280633*/ OPC_CheckType, MVT::i32, ++/*280635*/ OPC_MoveParent, ++/*280636*/ OPC_MoveChild, 28, ++/*280638*/ OPC_CheckInteger, 1, ++/*280640*/ OPC_CheckType, MVT::i32, ++/*280642*/ OPC_MoveParent, ++/*280643*/ OPC_MoveChild, 29, ++/*280645*/ OPC_CheckInteger, 1, ++/*280647*/ OPC_CheckType, MVT::i32, ++/*280649*/ OPC_MoveParent, ++/*280650*/ OPC_MoveChild, 30, ++/*280652*/ OPC_CheckInteger, 1, ++/*280654*/ OPC_CheckType, MVT::i32, ++/*280656*/ OPC_MoveParent, ++/*280657*/ OPC_MoveChild, 31, ++/*280659*/ OPC_CheckInteger, 1, ++/*280661*/ OPC_CheckType, MVT::i32, ++/*280663*/ OPC_MoveParent, ++/*280664*/ OPC_CheckType, MVT::v32i8, ++/*280666*/ OPC_MoveParent, ++/*280667*/ OPC_CheckType, MVT::v32i8, ++/*280669*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*280671*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*280679*/ /*Scope*/ 59|128,3/*443*/, /*->281124*/ ++/*280681*/ OPC_MoveChild0, ++/*280682*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*280685*/ OPC_CheckChild0Integer, 1, ++/*280687*/ OPC_CheckChild0Type, MVT::i32, ++/*280689*/ OPC_CheckChild1Integer, 1, ++/*280691*/ OPC_CheckChild1Type, MVT::i32, ++/*280693*/ OPC_CheckChild2Integer, 1, ++/*280695*/ OPC_CheckChild2Type, MVT::i32, ++/*280697*/ OPC_CheckChild3Integer, 1, ++/*280699*/ OPC_CheckChild3Type, MVT::i32, ++/*280701*/ OPC_CheckChild4Integer, 1, ++/*280703*/ OPC_CheckChild4Type, MVT::i32, ++/*280705*/ OPC_MoveChild5, ++/*280706*/ OPC_CheckInteger, 1, ++/*280708*/ OPC_CheckType, MVT::i32, ++/*280710*/ OPC_MoveParent, ++/*280711*/ OPC_MoveChild6, ++/*280712*/ OPC_CheckInteger, 1, ++/*280714*/ OPC_CheckType, MVT::i32, ++/*280716*/ OPC_MoveParent, ++/*280717*/ OPC_MoveChild7, ++/*280718*/ OPC_CheckInteger, 1, ++/*280720*/ OPC_CheckType, MVT::i32, ++/*280722*/ OPC_MoveParent, ++/*280723*/ OPC_MoveChild, 8, ++/*280725*/ OPC_CheckInteger, 1, ++/*280727*/ OPC_CheckType, MVT::i32, ++/*280729*/ OPC_MoveParent, ++/*280730*/ OPC_MoveChild, 9, ++/*280732*/ OPC_CheckInteger, 1, ++/*280734*/ OPC_CheckType, MVT::i32, ++/*280736*/ OPC_MoveParent, ++/*280737*/ OPC_MoveChild, 10, ++/*280739*/ OPC_CheckInteger, 1, ++/*280741*/ OPC_CheckType, MVT::i32, ++/*280743*/ OPC_MoveParent, ++/*280744*/ OPC_MoveChild, 11, ++/*280746*/ OPC_CheckInteger, 1, ++/*280748*/ OPC_CheckType, MVT::i32, ++/*280750*/ OPC_MoveParent, ++/*280751*/ OPC_MoveChild, 12, ++/*280753*/ OPC_CheckInteger, 1, ++/*280755*/ OPC_CheckType, MVT::i32, ++/*280757*/ OPC_MoveParent, ++/*280758*/ OPC_MoveChild, 13, ++/*280760*/ OPC_CheckInteger, 1, ++/*280762*/ OPC_CheckType, MVT::i32, ++/*280764*/ OPC_MoveParent, ++/*280765*/ OPC_MoveChild, 14, ++/*280767*/ OPC_CheckInteger, 1, ++/*280769*/ OPC_CheckType, MVT::i32, ++/*280771*/ OPC_MoveParent, ++/*280772*/ OPC_MoveChild, 15, ++/*280774*/ OPC_CheckInteger, 1, ++/*280776*/ OPC_CheckType, MVT::i32, ++/*280778*/ OPC_MoveParent, ++/*280779*/ OPC_MoveChild, 16, ++/*280781*/ OPC_CheckInteger, 1, ++/*280783*/ OPC_CheckType, MVT::i32, ++/*280785*/ OPC_MoveParent, ++/*280786*/ OPC_MoveChild, 17, ++/*280788*/ OPC_CheckInteger, 1, ++/*280790*/ OPC_CheckType, MVT::i32, ++/*280792*/ OPC_MoveParent, ++/*280793*/ OPC_MoveChild, 18, ++/*280795*/ OPC_CheckInteger, 1, ++/*280797*/ OPC_CheckType, MVT::i32, ++/*280799*/ OPC_MoveParent, ++/*280800*/ OPC_MoveChild, 19, ++/*280802*/ OPC_CheckInteger, 1, ++/*280804*/ OPC_CheckType, MVT::i32, ++/*280806*/ OPC_MoveParent, ++/*280807*/ OPC_MoveChild, 20, ++/*280809*/ OPC_CheckInteger, 1, ++/*280811*/ OPC_CheckType, MVT::i32, ++/*280813*/ OPC_MoveParent, ++/*280814*/ OPC_MoveChild, 21, ++/*280816*/ OPC_CheckInteger, 1, ++/*280818*/ OPC_CheckType, MVT::i32, ++/*280820*/ OPC_MoveParent, ++/*280821*/ OPC_MoveChild, 22, ++/*280823*/ OPC_CheckInteger, 1, ++/*280825*/ OPC_CheckType, MVT::i32, ++/*280827*/ OPC_MoveParent, ++/*280828*/ OPC_MoveChild, 23, ++/*280830*/ OPC_CheckInteger, 1, ++/*280832*/ OPC_CheckType, MVT::i32, ++/*280834*/ OPC_MoveParent, ++/*280835*/ OPC_MoveChild, 24, ++/*280837*/ OPC_CheckInteger, 1, ++/*280839*/ OPC_CheckType, MVT::i32, ++/*280841*/ OPC_MoveParent, ++/*280842*/ OPC_MoveChild, 25, ++/*280844*/ OPC_CheckInteger, 1, ++/*280846*/ OPC_CheckType, MVT::i32, ++/*280848*/ OPC_MoveParent, ++/*280849*/ OPC_MoveChild, 26, ++/*280851*/ OPC_CheckInteger, 1, ++/*280853*/ OPC_CheckType, MVT::i32, ++/*280855*/ OPC_MoveParent, ++/*280856*/ OPC_MoveChild, 27, ++/*280858*/ OPC_CheckInteger, 1, ++/*280860*/ OPC_CheckType, MVT::i32, ++/*280862*/ OPC_MoveParent, ++/*280863*/ OPC_MoveChild, 28, ++/*280865*/ OPC_CheckInteger, 1, ++/*280867*/ OPC_CheckType, MVT::i32, ++/*280869*/ OPC_MoveParent, ++/*280870*/ OPC_MoveChild, 29, ++/*280872*/ OPC_CheckInteger, 1, ++/*280874*/ OPC_CheckType, MVT::i32, ++/*280876*/ OPC_MoveParent, ++/*280877*/ OPC_MoveChild, 30, ++/*280879*/ OPC_CheckInteger, 1, ++/*280881*/ OPC_CheckType, MVT::i32, ++/*280883*/ OPC_MoveParent, ++/*280884*/ OPC_MoveChild, 31, ++/*280886*/ OPC_CheckInteger, 1, ++/*280888*/ OPC_CheckType, MVT::i32, ++/*280890*/ OPC_MoveParent, ++/*280891*/ OPC_MoveParent, ++/*280892*/ OPC_CheckChild1Same, 1, ++/*280894*/ OPC_MoveParent, ++/*280895*/ OPC_CheckChild1Same, 0, ++/*280897*/ OPC_MoveParent, ++/*280898*/ OPC_MoveParent, ++/*280899*/ OPC_MoveChild1, ++/*280900*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*280903*/ OPC_CheckChild0Integer, 1, ++/*280905*/ OPC_CheckChild0Type, MVT::i32, ++/*280907*/ OPC_CheckChild1Integer, 1, ++/*280909*/ OPC_CheckChild1Type, MVT::i32, ++/*280911*/ OPC_CheckChild2Integer, 1, ++/*280913*/ OPC_CheckChild2Type, MVT::i32, ++/*280915*/ OPC_CheckChild3Integer, 1, ++/*280917*/ OPC_CheckChild3Type, MVT::i32, ++/*280919*/ OPC_CheckChild4Integer, 1, ++/*280921*/ OPC_CheckChild4Type, MVT::i32, ++/*280923*/ OPC_MoveChild5, ++/*280924*/ OPC_CheckInteger, 1, ++/*280926*/ OPC_CheckType, MVT::i32, ++/*280928*/ OPC_MoveParent, ++/*280929*/ OPC_MoveChild6, ++/*280930*/ OPC_CheckInteger, 1, ++/*280932*/ OPC_CheckType, MVT::i32, ++/*280934*/ OPC_MoveParent, ++/*280935*/ OPC_MoveChild7, ++/*280936*/ OPC_CheckInteger, 1, ++/*280938*/ OPC_CheckType, MVT::i32, ++/*280940*/ OPC_MoveParent, ++/*280941*/ OPC_MoveChild, 8, ++/*280943*/ OPC_CheckInteger, 1, ++/*280945*/ OPC_CheckType, MVT::i32, ++/*280947*/ OPC_MoveParent, ++/*280948*/ OPC_MoveChild, 9, ++/*280950*/ OPC_CheckInteger, 1, ++/*280952*/ OPC_CheckType, MVT::i32, ++/*280954*/ OPC_MoveParent, ++/*280955*/ OPC_MoveChild, 10, ++/*280957*/ OPC_CheckInteger, 1, ++/*280959*/ OPC_CheckType, MVT::i32, ++/*280961*/ OPC_MoveParent, ++/*280962*/ OPC_MoveChild, 11, ++/*280964*/ OPC_CheckInteger, 1, ++/*280966*/ OPC_CheckType, MVT::i32, ++/*280968*/ OPC_MoveParent, ++/*280969*/ OPC_MoveChild, 12, ++/*280971*/ OPC_CheckInteger, 1, ++/*280973*/ OPC_CheckType, MVT::i32, ++/*280975*/ OPC_MoveParent, ++/*280976*/ OPC_MoveChild, 13, ++/*280978*/ OPC_CheckInteger, 1, ++/*280980*/ OPC_CheckType, MVT::i32, ++/*280982*/ OPC_MoveParent, ++/*280983*/ OPC_MoveChild, 14, ++/*280985*/ OPC_CheckInteger, 1, ++/*280987*/ OPC_CheckType, MVT::i32, ++/*280989*/ OPC_MoveParent, ++/*280990*/ OPC_MoveChild, 15, ++/*280992*/ OPC_CheckInteger, 1, ++/*280994*/ OPC_CheckType, MVT::i32, ++/*280996*/ OPC_MoveParent, ++/*280997*/ OPC_MoveChild, 16, ++/*280999*/ OPC_CheckInteger, 1, ++/*281001*/ OPC_CheckType, MVT::i32, ++/*281003*/ OPC_MoveParent, ++/*281004*/ OPC_MoveChild, 17, ++/*281006*/ OPC_CheckInteger, 1, ++/*281008*/ OPC_CheckType, MVT::i32, ++/*281010*/ OPC_MoveParent, ++/*281011*/ OPC_MoveChild, 18, ++/*281013*/ OPC_CheckInteger, 1, ++/*281015*/ OPC_CheckType, MVT::i32, ++/*281017*/ OPC_MoveParent, ++/*281018*/ OPC_MoveChild, 19, ++/*281020*/ OPC_CheckInteger, 1, ++/*281022*/ OPC_CheckType, MVT::i32, ++/*281024*/ OPC_MoveParent, ++/*281025*/ OPC_MoveChild, 20, ++/*281027*/ OPC_CheckInteger, 1, ++/*281029*/ OPC_CheckType, MVT::i32, ++/*281031*/ OPC_MoveParent, ++/*281032*/ OPC_MoveChild, 21, ++/*281034*/ OPC_CheckInteger, 1, ++/*281036*/ OPC_CheckType, MVT::i32, ++/*281038*/ OPC_MoveParent, ++/*281039*/ OPC_MoveChild, 22, ++/*281041*/ OPC_CheckInteger, 1, ++/*281043*/ OPC_CheckType, MVT::i32, ++/*281045*/ OPC_MoveParent, ++/*281046*/ OPC_MoveChild, 23, ++/*281048*/ OPC_CheckInteger, 1, ++/*281050*/ OPC_CheckType, MVT::i32, ++/*281052*/ OPC_MoveParent, ++/*281053*/ OPC_MoveChild, 24, ++/*281055*/ OPC_CheckInteger, 1, ++/*281057*/ OPC_CheckType, MVT::i32, ++/*281059*/ OPC_MoveParent, ++/*281060*/ OPC_MoveChild, 25, ++/*281062*/ OPC_CheckInteger, 1, ++/*281064*/ OPC_CheckType, MVT::i32, ++/*281066*/ OPC_MoveParent, ++/*281067*/ OPC_MoveChild, 26, ++/*281069*/ OPC_CheckInteger, 1, ++/*281071*/ OPC_CheckType, MVT::i32, ++/*281073*/ OPC_MoveParent, ++/*281074*/ OPC_MoveChild, 27, ++/*281076*/ OPC_CheckInteger, 1, ++/*281078*/ OPC_CheckType, MVT::i32, ++/*281080*/ OPC_MoveParent, ++/*281081*/ OPC_MoveChild, 28, ++/*281083*/ OPC_CheckInteger, 1, ++/*281085*/ OPC_CheckType, MVT::i32, ++/*281087*/ OPC_MoveParent, ++/*281088*/ OPC_MoveChild, 29, ++/*281090*/ OPC_CheckInteger, 1, ++/*281092*/ OPC_CheckType, MVT::i32, ++/*281094*/ OPC_MoveParent, ++/*281095*/ OPC_MoveChild, 30, ++/*281097*/ OPC_CheckInteger, 1, ++/*281099*/ OPC_CheckType, MVT::i32, ++/*281101*/ OPC_MoveParent, ++/*281102*/ OPC_MoveChild, 31, ++/*281104*/ OPC_CheckInteger, 1, ++/*281106*/ OPC_CheckType, MVT::i32, ++/*281108*/ OPC_MoveParent, ++/*281109*/ OPC_CheckType, MVT::v32i8, ++/*281111*/ OPC_MoveParent, ++/*281112*/ OPC_CheckType, MVT::v32i8, ++/*281114*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*281116*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b), LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*281124*/ /*Scope*/ 59|128,3/*443*/, /*->281569*/ ++/*281126*/ OPC_CheckChild0Same, 1, ++/*281128*/ OPC_MoveChild1, ++/*281129*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*281132*/ OPC_CheckChild0Integer, 1, ++/*281134*/ OPC_CheckChild0Type, MVT::i32, ++/*281136*/ OPC_CheckChild1Integer, 1, ++/*281138*/ OPC_CheckChild1Type, MVT::i32, ++/*281140*/ OPC_CheckChild2Integer, 1, ++/*281142*/ OPC_CheckChild2Type, MVT::i32, ++/*281144*/ OPC_CheckChild3Integer, 1, ++/*281146*/ OPC_CheckChild3Type, MVT::i32, ++/*281148*/ OPC_CheckChild4Integer, 1, ++/*281150*/ OPC_CheckChild4Type, MVT::i32, ++/*281152*/ OPC_MoveChild5, ++/*281153*/ OPC_CheckInteger, 1, ++/*281155*/ OPC_CheckType, MVT::i32, ++/*281157*/ OPC_MoveParent, ++/*281158*/ OPC_MoveChild6, ++/*281159*/ OPC_CheckInteger, 1, ++/*281161*/ OPC_CheckType, MVT::i32, ++/*281163*/ OPC_MoveParent, ++/*281164*/ OPC_MoveChild7, ++/*281165*/ OPC_CheckInteger, 1, ++/*281167*/ OPC_CheckType, MVT::i32, ++/*281169*/ OPC_MoveParent, ++/*281170*/ OPC_MoveChild, 8, ++/*281172*/ OPC_CheckInteger, 1, ++/*281174*/ OPC_CheckType, MVT::i32, ++/*281176*/ OPC_MoveParent, ++/*281177*/ OPC_MoveChild, 9, ++/*281179*/ OPC_CheckInteger, 1, ++/*281181*/ OPC_CheckType, MVT::i32, ++/*281183*/ OPC_MoveParent, ++/*281184*/ OPC_MoveChild, 10, ++/*281186*/ OPC_CheckInteger, 1, ++/*281188*/ OPC_CheckType, MVT::i32, ++/*281190*/ OPC_MoveParent, ++/*281191*/ OPC_MoveChild, 11, ++/*281193*/ OPC_CheckInteger, 1, ++/*281195*/ OPC_CheckType, MVT::i32, ++/*281197*/ OPC_MoveParent, ++/*281198*/ OPC_MoveChild, 12, ++/*281200*/ OPC_CheckInteger, 1, ++/*281202*/ OPC_CheckType, MVT::i32, ++/*281204*/ OPC_MoveParent, ++/*281205*/ OPC_MoveChild, 13, ++/*281207*/ OPC_CheckInteger, 1, ++/*281209*/ OPC_CheckType, MVT::i32, ++/*281211*/ OPC_MoveParent, ++/*281212*/ OPC_MoveChild, 14, ++/*281214*/ OPC_CheckInteger, 1, ++/*281216*/ OPC_CheckType, MVT::i32, ++/*281218*/ OPC_MoveParent, ++/*281219*/ OPC_MoveChild, 15, ++/*281221*/ OPC_CheckInteger, 1, ++/*281223*/ OPC_CheckType, MVT::i32, ++/*281225*/ OPC_MoveParent, ++/*281226*/ OPC_MoveChild, 16, ++/*281228*/ OPC_CheckInteger, 1, ++/*281230*/ OPC_CheckType, MVT::i32, ++/*281232*/ OPC_MoveParent, ++/*281233*/ OPC_MoveChild, 17, ++/*281235*/ OPC_CheckInteger, 1, ++/*281237*/ OPC_CheckType, MVT::i32, ++/*281239*/ OPC_MoveParent, ++/*281240*/ OPC_MoveChild, 18, ++/*281242*/ OPC_CheckInteger, 1, ++/*281244*/ OPC_CheckType, MVT::i32, ++/*281246*/ OPC_MoveParent, ++/*281247*/ OPC_MoveChild, 19, ++/*281249*/ OPC_CheckInteger, 1, ++/*281251*/ OPC_CheckType, MVT::i32, ++/*281253*/ OPC_MoveParent, ++/*281254*/ OPC_MoveChild, 20, ++/*281256*/ OPC_CheckInteger, 1, ++/*281258*/ OPC_CheckType, MVT::i32, ++/*281260*/ OPC_MoveParent, ++/*281261*/ OPC_MoveChild, 21, ++/*281263*/ OPC_CheckInteger, 1, ++/*281265*/ OPC_CheckType, MVT::i32, ++/*281267*/ OPC_MoveParent, ++/*281268*/ OPC_MoveChild, 22, ++/*281270*/ OPC_CheckInteger, 1, ++/*281272*/ OPC_CheckType, MVT::i32, ++/*281274*/ OPC_MoveParent, ++/*281275*/ OPC_MoveChild, 23, ++/*281277*/ OPC_CheckInteger, 1, ++/*281279*/ OPC_CheckType, MVT::i32, ++/*281281*/ OPC_MoveParent, ++/*281282*/ OPC_MoveChild, 24, ++/*281284*/ OPC_CheckInteger, 1, ++/*281286*/ OPC_CheckType, MVT::i32, ++/*281288*/ OPC_MoveParent, ++/*281289*/ OPC_MoveChild, 25, ++/*281291*/ OPC_CheckInteger, 1, ++/*281293*/ OPC_CheckType, MVT::i32, ++/*281295*/ OPC_MoveParent, ++/*281296*/ OPC_MoveChild, 26, ++/*281298*/ OPC_CheckInteger, 1, ++/*281300*/ OPC_CheckType, MVT::i32, ++/*281302*/ OPC_MoveParent, ++/*281303*/ OPC_MoveChild, 27, ++/*281305*/ OPC_CheckInteger, 1, ++/*281307*/ OPC_CheckType, MVT::i32, ++/*281309*/ OPC_MoveParent, ++/*281310*/ OPC_MoveChild, 28, ++/*281312*/ OPC_CheckInteger, 1, ++/*281314*/ OPC_CheckType, MVT::i32, ++/*281316*/ OPC_MoveParent, ++/*281317*/ OPC_MoveChild, 29, ++/*281319*/ OPC_CheckInteger, 1, ++/*281321*/ OPC_CheckType, MVT::i32, ++/*281323*/ OPC_MoveParent, ++/*281324*/ OPC_MoveChild, 30, ++/*281326*/ OPC_CheckInteger, 1, ++/*281328*/ OPC_CheckType, MVT::i32, ++/*281330*/ OPC_MoveParent, ++/*281331*/ OPC_MoveChild, 31, ++/*281333*/ OPC_CheckInteger, 1, ++/*281335*/ OPC_CheckType, MVT::i32, ++/*281337*/ OPC_MoveParent, ++/*281338*/ OPC_MoveParent, ++/*281339*/ OPC_MoveParent, ++/*281340*/ OPC_CheckChild1Same, 0, ++/*281342*/ OPC_MoveParent, ++/*281343*/ OPC_MoveParent, ++/*281344*/ OPC_MoveChild1, ++/*281345*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*281348*/ OPC_CheckChild0Integer, 1, ++/*281350*/ OPC_CheckChild0Type, MVT::i32, ++/*281352*/ OPC_CheckChild1Integer, 1, ++/*281354*/ OPC_CheckChild1Type, MVT::i32, ++/*281356*/ OPC_CheckChild2Integer, 1, ++/*281358*/ OPC_CheckChild2Type, MVT::i32, ++/*281360*/ OPC_CheckChild3Integer, 1, ++/*281362*/ OPC_CheckChild3Type, MVT::i32, ++/*281364*/ OPC_CheckChild4Integer, 1, ++/*281366*/ OPC_CheckChild4Type, MVT::i32, ++/*281368*/ OPC_MoveChild5, ++/*281369*/ OPC_CheckInteger, 1, ++/*281371*/ OPC_CheckType, MVT::i32, ++/*281373*/ OPC_MoveParent, ++/*281374*/ OPC_MoveChild6, ++/*281375*/ OPC_CheckInteger, 1, ++/*281377*/ OPC_CheckType, MVT::i32, ++/*281379*/ OPC_MoveParent, ++/*281380*/ OPC_MoveChild7, ++/*281381*/ OPC_CheckInteger, 1, ++/*281383*/ OPC_CheckType, MVT::i32, ++/*281385*/ OPC_MoveParent, ++/*281386*/ OPC_MoveChild, 8, ++/*281388*/ OPC_CheckInteger, 1, ++/*281390*/ OPC_CheckType, MVT::i32, ++/*281392*/ OPC_MoveParent, ++/*281393*/ OPC_MoveChild, 9, ++/*281395*/ OPC_CheckInteger, 1, ++/*281397*/ OPC_CheckType, MVT::i32, ++/*281399*/ OPC_MoveParent, ++/*281400*/ OPC_MoveChild, 10, ++/*281402*/ OPC_CheckInteger, 1, ++/*281404*/ OPC_CheckType, MVT::i32, ++/*281406*/ OPC_MoveParent, ++/*281407*/ OPC_MoveChild, 11, ++/*281409*/ OPC_CheckInteger, 1, ++/*281411*/ OPC_CheckType, MVT::i32, ++/*281413*/ OPC_MoveParent, ++/*281414*/ OPC_MoveChild, 12, ++/*281416*/ OPC_CheckInteger, 1, ++/*281418*/ OPC_CheckType, MVT::i32, ++/*281420*/ OPC_MoveParent, ++/*281421*/ OPC_MoveChild, 13, ++/*281423*/ OPC_CheckInteger, 1, ++/*281425*/ OPC_CheckType, MVT::i32, ++/*281427*/ OPC_MoveParent, ++/*281428*/ OPC_MoveChild, 14, ++/*281430*/ OPC_CheckInteger, 1, ++/*281432*/ OPC_CheckType, MVT::i32, ++/*281434*/ OPC_MoveParent, ++/*281435*/ OPC_MoveChild, 15, ++/*281437*/ OPC_CheckInteger, 1, ++/*281439*/ OPC_CheckType, MVT::i32, ++/*281441*/ OPC_MoveParent, ++/*281442*/ OPC_MoveChild, 16, ++/*281444*/ OPC_CheckInteger, 1, ++/*281446*/ OPC_CheckType, MVT::i32, ++/*281448*/ OPC_MoveParent, ++/*281449*/ OPC_MoveChild, 17, ++/*281451*/ OPC_CheckInteger, 1, ++/*281453*/ OPC_CheckType, MVT::i32, ++/*281455*/ OPC_MoveParent, ++/*281456*/ OPC_MoveChild, 18, ++/*281458*/ OPC_CheckInteger, 1, ++/*281460*/ OPC_CheckType, MVT::i32, ++/*281462*/ OPC_MoveParent, ++/*281463*/ OPC_MoveChild, 19, ++/*281465*/ OPC_CheckInteger, 1, ++/*281467*/ OPC_CheckType, MVT::i32, ++/*281469*/ OPC_MoveParent, ++/*281470*/ OPC_MoveChild, 20, ++/*281472*/ OPC_CheckInteger, 1, ++/*281474*/ OPC_CheckType, MVT::i32, ++/*281476*/ OPC_MoveParent, ++/*281477*/ OPC_MoveChild, 21, ++/*281479*/ OPC_CheckInteger, 1, ++/*281481*/ OPC_CheckType, MVT::i32, ++/*281483*/ OPC_MoveParent, ++/*281484*/ OPC_MoveChild, 22, ++/*281486*/ OPC_CheckInteger, 1, ++/*281488*/ OPC_CheckType, MVT::i32, ++/*281490*/ OPC_MoveParent, ++/*281491*/ OPC_MoveChild, 23, ++/*281493*/ OPC_CheckInteger, 1, ++/*281495*/ OPC_CheckType, MVT::i32, ++/*281497*/ OPC_MoveParent, ++/*281498*/ OPC_MoveChild, 24, ++/*281500*/ OPC_CheckInteger, 1, ++/*281502*/ OPC_CheckType, MVT::i32, ++/*281504*/ OPC_MoveParent, ++/*281505*/ OPC_MoveChild, 25, ++/*281507*/ OPC_CheckInteger, 1, ++/*281509*/ OPC_CheckType, MVT::i32, ++/*281511*/ OPC_MoveParent, ++/*281512*/ OPC_MoveChild, 26, ++/*281514*/ OPC_CheckInteger, 1, ++/*281516*/ OPC_CheckType, MVT::i32, ++/*281518*/ OPC_MoveParent, ++/*281519*/ OPC_MoveChild, 27, ++/*281521*/ OPC_CheckInteger, 1, ++/*281523*/ OPC_CheckType, MVT::i32, ++/*281525*/ OPC_MoveParent, ++/*281526*/ OPC_MoveChild, 28, ++/*281528*/ OPC_CheckInteger, 1, ++/*281530*/ OPC_CheckType, MVT::i32, ++/*281532*/ OPC_MoveParent, ++/*281533*/ OPC_MoveChild, 29, ++/*281535*/ OPC_CheckInteger, 1, ++/*281537*/ OPC_CheckType, MVT::i32, ++/*281539*/ OPC_MoveParent, ++/*281540*/ OPC_MoveChild, 30, ++/*281542*/ OPC_CheckInteger, 1, ++/*281544*/ OPC_CheckType, MVT::i32, ++/*281546*/ OPC_MoveParent, ++/*281547*/ OPC_MoveChild, 31, ++/*281549*/ OPC_CheckInteger, 1, ++/*281551*/ OPC_CheckType, MVT::i32, ++/*281553*/ OPC_MoveParent, ++/*281554*/ OPC_CheckType, MVT::v32i8, ++/*281556*/ OPC_MoveParent, ++/*281557*/ OPC_CheckType, MVT::v32i8, ++/*281559*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*281561*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*281569*/ /*Scope*/ 59|128,3/*443*/, /*->282014*/ ++/*281571*/ OPC_CheckChild0Same, 0, ++/*281573*/ OPC_CheckChild1Same, 1, ++/*281575*/ OPC_MoveParent, ++/*281576*/ OPC_MoveChild1, ++/*281577*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*281580*/ OPC_CheckChild0Integer, 1, ++/*281582*/ OPC_CheckChild0Type, MVT::i32, ++/*281584*/ OPC_CheckChild1Integer, 1, ++/*281586*/ OPC_CheckChild1Type, MVT::i32, ++/*281588*/ OPC_CheckChild2Integer, 1, ++/*281590*/ OPC_CheckChild2Type, MVT::i32, ++/*281592*/ OPC_CheckChild3Integer, 1, ++/*281594*/ OPC_CheckChild3Type, MVT::i32, ++/*281596*/ OPC_CheckChild4Integer, 1, ++/*281598*/ OPC_CheckChild4Type, MVT::i32, ++/*281600*/ OPC_MoveChild5, ++/*281601*/ OPC_CheckInteger, 1, ++/*281603*/ OPC_CheckType, MVT::i32, ++/*281605*/ OPC_MoveParent, ++/*281606*/ OPC_MoveChild6, ++/*281607*/ OPC_CheckInteger, 1, ++/*281609*/ OPC_CheckType, MVT::i32, ++/*281611*/ OPC_MoveParent, ++/*281612*/ OPC_MoveChild7, ++/*281613*/ OPC_CheckInteger, 1, ++/*281615*/ OPC_CheckType, MVT::i32, ++/*281617*/ OPC_MoveParent, ++/*281618*/ OPC_MoveChild, 8, ++/*281620*/ OPC_CheckInteger, 1, ++/*281622*/ OPC_CheckType, MVT::i32, ++/*281624*/ OPC_MoveParent, ++/*281625*/ OPC_MoveChild, 9, ++/*281627*/ OPC_CheckInteger, 1, ++/*281629*/ OPC_CheckType, MVT::i32, ++/*281631*/ OPC_MoveParent, ++/*281632*/ OPC_MoveChild, 10, ++/*281634*/ OPC_CheckInteger, 1, ++/*281636*/ OPC_CheckType, MVT::i32, ++/*281638*/ OPC_MoveParent, ++/*281639*/ OPC_MoveChild, 11, ++/*281641*/ OPC_CheckInteger, 1, ++/*281643*/ OPC_CheckType, MVT::i32, ++/*281645*/ OPC_MoveParent, ++/*281646*/ OPC_MoveChild, 12, ++/*281648*/ OPC_CheckInteger, 1, ++/*281650*/ OPC_CheckType, MVT::i32, ++/*281652*/ OPC_MoveParent, ++/*281653*/ OPC_MoveChild, 13, ++/*281655*/ OPC_CheckInteger, 1, ++/*281657*/ OPC_CheckType, MVT::i32, ++/*281659*/ OPC_MoveParent, ++/*281660*/ OPC_MoveChild, 14, ++/*281662*/ OPC_CheckInteger, 1, ++/*281664*/ OPC_CheckType, MVT::i32, ++/*281666*/ OPC_MoveParent, ++/*281667*/ OPC_MoveChild, 15, ++/*281669*/ OPC_CheckInteger, 1, ++/*281671*/ OPC_CheckType, MVT::i32, ++/*281673*/ OPC_MoveParent, ++/*281674*/ OPC_MoveChild, 16, ++/*281676*/ OPC_CheckInteger, 1, ++/*281678*/ OPC_CheckType, MVT::i32, ++/*281680*/ OPC_MoveParent, ++/*281681*/ OPC_MoveChild, 17, ++/*281683*/ OPC_CheckInteger, 1, ++/*281685*/ OPC_CheckType, MVT::i32, ++/*281687*/ OPC_MoveParent, ++/*281688*/ OPC_MoveChild, 18, ++/*281690*/ OPC_CheckInteger, 1, ++/*281692*/ OPC_CheckType, MVT::i32, ++/*281694*/ OPC_MoveParent, ++/*281695*/ OPC_MoveChild, 19, ++/*281697*/ OPC_CheckInteger, 1, ++/*281699*/ OPC_CheckType, MVT::i32, ++/*281701*/ OPC_MoveParent, ++/*281702*/ OPC_MoveChild, 20, ++/*281704*/ OPC_CheckInteger, 1, ++/*281706*/ OPC_CheckType, MVT::i32, ++/*281708*/ OPC_MoveParent, ++/*281709*/ OPC_MoveChild, 21, ++/*281711*/ OPC_CheckInteger, 1, ++/*281713*/ OPC_CheckType, MVT::i32, ++/*281715*/ OPC_MoveParent, ++/*281716*/ OPC_MoveChild, 22, ++/*281718*/ OPC_CheckInteger, 1, ++/*281720*/ OPC_CheckType, MVT::i32, ++/*281722*/ OPC_MoveParent, ++/*281723*/ OPC_MoveChild, 23, ++/*281725*/ OPC_CheckInteger, 1, ++/*281727*/ OPC_CheckType, MVT::i32, ++/*281729*/ OPC_MoveParent, ++/*281730*/ OPC_MoveChild, 24, ++/*281732*/ OPC_CheckInteger, 1, ++/*281734*/ OPC_CheckType, MVT::i32, ++/*281736*/ OPC_MoveParent, ++/*281737*/ OPC_MoveChild, 25, ++/*281739*/ OPC_CheckInteger, 1, ++/*281741*/ OPC_CheckType, MVT::i32, ++/*281743*/ OPC_MoveParent, ++/*281744*/ OPC_MoveChild, 26, ++/*281746*/ OPC_CheckInteger, 1, ++/*281748*/ OPC_CheckType, MVT::i32, ++/*281750*/ OPC_MoveParent, ++/*281751*/ OPC_MoveChild, 27, ++/*281753*/ OPC_CheckInteger, 1, ++/*281755*/ OPC_CheckType, MVT::i32, ++/*281757*/ OPC_MoveParent, ++/*281758*/ OPC_MoveChild, 28, ++/*281760*/ OPC_CheckInteger, 1, ++/*281762*/ OPC_CheckType, MVT::i32, ++/*281764*/ OPC_MoveParent, ++/*281765*/ OPC_MoveChild, 29, ++/*281767*/ OPC_CheckInteger, 1, ++/*281769*/ OPC_CheckType, MVT::i32, ++/*281771*/ OPC_MoveParent, ++/*281772*/ OPC_MoveChild, 30, ++/*281774*/ OPC_CheckInteger, 1, ++/*281776*/ OPC_CheckType, MVT::i32, ++/*281778*/ OPC_MoveParent, ++/*281779*/ OPC_MoveChild, 31, ++/*281781*/ OPC_CheckInteger, 1, ++/*281783*/ OPC_CheckType, MVT::i32, ++/*281785*/ OPC_MoveParent, ++/*281786*/ OPC_MoveParent, ++/*281787*/ OPC_MoveParent, ++/*281788*/ OPC_MoveParent, ++/*281789*/ OPC_MoveChild1, ++/*281790*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*281793*/ OPC_CheckChild0Integer, 1, ++/*281795*/ OPC_CheckChild0Type, MVT::i32, ++/*281797*/ OPC_CheckChild1Integer, 1, ++/*281799*/ OPC_CheckChild1Type, MVT::i32, ++/*281801*/ OPC_CheckChild2Integer, 1, ++/*281803*/ OPC_CheckChild2Type, MVT::i32, ++/*281805*/ OPC_CheckChild3Integer, 1, ++/*281807*/ OPC_CheckChild3Type, MVT::i32, ++/*281809*/ OPC_CheckChild4Integer, 1, ++/*281811*/ OPC_CheckChild4Type, MVT::i32, ++/*281813*/ OPC_MoveChild5, ++/*281814*/ OPC_CheckInteger, 1, ++/*281816*/ OPC_CheckType, MVT::i32, ++/*281818*/ OPC_MoveParent, ++/*281819*/ OPC_MoveChild6, ++/*281820*/ OPC_CheckInteger, 1, ++/*281822*/ OPC_CheckType, MVT::i32, ++/*281824*/ OPC_MoveParent, ++/*281825*/ OPC_MoveChild7, ++/*281826*/ OPC_CheckInteger, 1, ++/*281828*/ OPC_CheckType, MVT::i32, ++/*281830*/ OPC_MoveParent, ++/*281831*/ OPC_MoveChild, 8, ++/*281833*/ OPC_CheckInteger, 1, ++/*281835*/ OPC_CheckType, MVT::i32, ++/*281837*/ OPC_MoveParent, ++/*281838*/ OPC_MoveChild, 9, ++/*281840*/ OPC_CheckInteger, 1, ++/*281842*/ OPC_CheckType, MVT::i32, ++/*281844*/ OPC_MoveParent, ++/*281845*/ OPC_MoveChild, 10, ++/*281847*/ OPC_CheckInteger, 1, ++/*281849*/ OPC_CheckType, MVT::i32, ++/*281851*/ OPC_MoveParent, ++/*281852*/ OPC_MoveChild, 11, ++/*281854*/ OPC_CheckInteger, 1, ++/*281856*/ OPC_CheckType, MVT::i32, ++/*281858*/ OPC_MoveParent, ++/*281859*/ OPC_MoveChild, 12, ++/*281861*/ OPC_CheckInteger, 1, ++/*281863*/ OPC_CheckType, MVT::i32, ++/*281865*/ OPC_MoveParent, ++/*281866*/ OPC_MoveChild, 13, ++/*281868*/ OPC_CheckInteger, 1, ++/*281870*/ OPC_CheckType, MVT::i32, ++/*281872*/ OPC_MoveParent, ++/*281873*/ OPC_MoveChild, 14, ++/*281875*/ OPC_CheckInteger, 1, ++/*281877*/ OPC_CheckType, MVT::i32, ++/*281879*/ OPC_MoveParent, ++/*281880*/ OPC_MoveChild, 15, ++/*281882*/ OPC_CheckInteger, 1, ++/*281884*/ OPC_CheckType, MVT::i32, ++/*281886*/ OPC_MoveParent, ++/*281887*/ OPC_MoveChild, 16, ++/*281889*/ OPC_CheckInteger, 1, ++/*281891*/ OPC_CheckType, MVT::i32, ++/*281893*/ OPC_MoveParent, ++/*281894*/ OPC_MoveChild, 17, ++/*281896*/ OPC_CheckInteger, 1, ++/*281898*/ OPC_CheckType, MVT::i32, ++/*281900*/ OPC_MoveParent, ++/*281901*/ OPC_MoveChild, 18, ++/*281903*/ OPC_CheckInteger, 1, ++/*281905*/ OPC_CheckType, MVT::i32, ++/*281907*/ OPC_MoveParent, ++/*281908*/ OPC_MoveChild, 19, ++/*281910*/ OPC_CheckInteger, 1, ++/*281912*/ OPC_CheckType, MVT::i32, ++/*281914*/ OPC_MoveParent, ++/*281915*/ OPC_MoveChild, 20, ++/*281917*/ OPC_CheckInteger, 1, ++/*281919*/ OPC_CheckType, MVT::i32, ++/*281921*/ OPC_MoveParent, ++/*281922*/ OPC_MoveChild, 21, ++/*281924*/ OPC_CheckInteger, 1, ++/*281926*/ OPC_CheckType, MVT::i32, ++/*281928*/ OPC_MoveParent, ++/*281929*/ OPC_MoveChild, 22, ++/*281931*/ OPC_CheckInteger, 1, ++/*281933*/ OPC_CheckType, MVT::i32, ++/*281935*/ OPC_MoveParent, ++/*281936*/ OPC_MoveChild, 23, ++/*281938*/ OPC_CheckInteger, 1, ++/*281940*/ OPC_CheckType, MVT::i32, ++/*281942*/ OPC_MoveParent, ++/*281943*/ OPC_MoveChild, 24, ++/*281945*/ OPC_CheckInteger, 1, ++/*281947*/ OPC_CheckType, MVT::i32, ++/*281949*/ OPC_MoveParent, ++/*281950*/ OPC_MoveChild, 25, ++/*281952*/ OPC_CheckInteger, 1, ++/*281954*/ OPC_CheckType, MVT::i32, ++/*281956*/ OPC_MoveParent, ++/*281957*/ OPC_MoveChild, 26, ++/*281959*/ OPC_CheckInteger, 1, ++/*281961*/ OPC_CheckType, MVT::i32, ++/*281963*/ OPC_MoveParent, ++/*281964*/ OPC_MoveChild, 27, ++/*281966*/ OPC_CheckInteger, 1, ++/*281968*/ OPC_CheckType, MVT::i32, ++/*281970*/ OPC_MoveParent, ++/*281971*/ OPC_MoveChild, 28, ++/*281973*/ OPC_CheckInteger, 1, ++/*281975*/ OPC_CheckType, MVT::i32, ++/*281977*/ OPC_MoveParent, ++/*281978*/ OPC_MoveChild, 29, ++/*281980*/ OPC_CheckInteger, 1, ++/*281982*/ OPC_CheckType, MVT::i32, ++/*281984*/ OPC_MoveParent, ++/*281985*/ OPC_MoveChild, 30, ++/*281987*/ OPC_CheckInteger, 1, ++/*281989*/ OPC_CheckType, MVT::i32, ++/*281991*/ OPC_MoveParent, ++/*281992*/ OPC_MoveChild, 31, ++/*281994*/ OPC_CheckInteger, 1, ++/*281996*/ OPC_CheckType, MVT::i32, ++/*281998*/ OPC_MoveParent, ++/*281999*/ OPC_CheckType, MVT::v32i8, ++/*282001*/ OPC_MoveParent, ++/*282002*/ OPC_CheckType, MVT::v32i8, ++/*282004*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*282006*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*282014*/ /*Scope*/ 59|128,3/*443*/, /*->282459*/ ++/*282016*/ OPC_CheckChild0Same, 1, ++/*282018*/ OPC_CheckChild1Same, 0, ++/*282020*/ OPC_MoveParent, ++/*282021*/ OPC_MoveChild1, ++/*282022*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*282025*/ OPC_CheckChild0Integer, 1, ++/*282027*/ OPC_CheckChild0Type, MVT::i32, ++/*282029*/ OPC_CheckChild1Integer, 1, ++/*282031*/ OPC_CheckChild1Type, MVT::i32, ++/*282033*/ OPC_CheckChild2Integer, 1, ++/*282035*/ OPC_CheckChild2Type, MVT::i32, ++/*282037*/ OPC_CheckChild3Integer, 1, ++/*282039*/ OPC_CheckChild3Type, MVT::i32, ++/*282041*/ OPC_CheckChild4Integer, 1, ++/*282043*/ OPC_CheckChild4Type, MVT::i32, ++/*282045*/ OPC_MoveChild5, ++/*282046*/ OPC_CheckInteger, 1, ++/*282048*/ OPC_CheckType, MVT::i32, ++/*282050*/ OPC_MoveParent, ++/*282051*/ OPC_MoveChild6, ++/*282052*/ OPC_CheckInteger, 1, ++/*282054*/ OPC_CheckType, MVT::i32, ++/*282056*/ OPC_MoveParent, ++/*282057*/ OPC_MoveChild7, ++/*282058*/ OPC_CheckInteger, 1, ++/*282060*/ OPC_CheckType, MVT::i32, ++/*282062*/ OPC_MoveParent, ++/*282063*/ OPC_MoveChild, 8, ++/*282065*/ OPC_CheckInteger, 1, ++/*282067*/ OPC_CheckType, MVT::i32, ++/*282069*/ OPC_MoveParent, ++/*282070*/ OPC_MoveChild, 9, ++/*282072*/ OPC_CheckInteger, 1, ++/*282074*/ OPC_CheckType, MVT::i32, ++/*282076*/ OPC_MoveParent, ++/*282077*/ OPC_MoveChild, 10, ++/*282079*/ OPC_CheckInteger, 1, ++/*282081*/ OPC_CheckType, MVT::i32, ++/*282083*/ OPC_MoveParent, ++/*282084*/ OPC_MoveChild, 11, ++/*282086*/ OPC_CheckInteger, 1, ++/*282088*/ OPC_CheckType, MVT::i32, ++/*282090*/ OPC_MoveParent, ++/*282091*/ OPC_MoveChild, 12, ++/*282093*/ OPC_CheckInteger, 1, ++/*282095*/ OPC_CheckType, MVT::i32, ++/*282097*/ OPC_MoveParent, ++/*282098*/ OPC_MoveChild, 13, ++/*282100*/ OPC_CheckInteger, 1, ++/*282102*/ OPC_CheckType, MVT::i32, ++/*282104*/ OPC_MoveParent, ++/*282105*/ OPC_MoveChild, 14, ++/*282107*/ OPC_CheckInteger, 1, ++/*282109*/ OPC_CheckType, MVT::i32, ++/*282111*/ OPC_MoveParent, ++/*282112*/ OPC_MoveChild, 15, ++/*282114*/ OPC_CheckInteger, 1, ++/*282116*/ OPC_CheckType, MVT::i32, ++/*282118*/ OPC_MoveParent, ++/*282119*/ OPC_MoveChild, 16, ++/*282121*/ OPC_CheckInteger, 1, ++/*282123*/ OPC_CheckType, MVT::i32, ++/*282125*/ OPC_MoveParent, ++/*282126*/ OPC_MoveChild, 17, ++/*282128*/ OPC_CheckInteger, 1, ++/*282130*/ OPC_CheckType, MVT::i32, ++/*282132*/ OPC_MoveParent, ++/*282133*/ OPC_MoveChild, 18, ++/*282135*/ OPC_CheckInteger, 1, ++/*282137*/ OPC_CheckType, MVT::i32, ++/*282139*/ OPC_MoveParent, ++/*282140*/ OPC_MoveChild, 19, ++/*282142*/ OPC_CheckInteger, 1, ++/*282144*/ OPC_CheckType, MVT::i32, ++/*282146*/ OPC_MoveParent, ++/*282147*/ OPC_MoveChild, 20, ++/*282149*/ OPC_CheckInteger, 1, ++/*282151*/ OPC_CheckType, MVT::i32, ++/*282153*/ OPC_MoveParent, ++/*282154*/ OPC_MoveChild, 21, ++/*282156*/ OPC_CheckInteger, 1, ++/*282158*/ OPC_CheckType, MVT::i32, ++/*282160*/ OPC_MoveParent, ++/*282161*/ OPC_MoveChild, 22, ++/*282163*/ OPC_CheckInteger, 1, ++/*282165*/ OPC_CheckType, MVT::i32, ++/*282167*/ OPC_MoveParent, ++/*282168*/ OPC_MoveChild, 23, ++/*282170*/ OPC_CheckInteger, 1, ++/*282172*/ OPC_CheckType, MVT::i32, ++/*282174*/ OPC_MoveParent, ++/*282175*/ OPC_MoveChild, 24, ++/*282177*/ OPC_CheckInteger, 1, ++/*282179*/ OPC_CheckType, MVT::i32, ++/*282181*/ OPC_MoveParent, ++/*282182*/ OPC_MoveChild, 25, ++/*282184*/ OPC_CheckInteger, 1, ++/*282186*/ OPC_CheckType, MVT::i32, ++/*282188*/ OPC_MoveParent, ++/*282189*/ OPC_MoveChild, 26, ++/*282191*/ OPC_CheckInteger, 1, ++/*282193*/ OPC_CheckType, MVT::i32, ++/*282195*/ OPC_MoveParent, ++/*282196*/ OPC_MoveChild, 27, ++/*282198*/ OPC_CheckInteger, 1, ++/*282200*/ OPC_CheckType, MVT::i32, ++/*282202*/ OPC_MoveParent, ++/*282203*/ OPC_MoveChild, 28, ++/*282205*/ OPC_CheckInteger, 1, ++/*282207*/ OPC_CheckType, MVT::i32, ++/*282209*/ OPC_MoveParent, ++/*282210*/ OPC_MoveChild, 29, ++/*282212*/ OPC_CheckInteger, 1, ++/*282214*/ OPC_CheckType, MVT::i32, ++/*282216*/ OPC_MoveParent, ++/*282217*/ OPC_MoveChild, 30, ++/*282219*/ OPC_CheckInteger, 1, ++/*282221*/ OPC_CheckType, MVT::i32, ++/*282223*/ OPC_MoveParent, ++/*282224*/ OPC_MoveChild, 31, ++/*282226*/ OPC_CheckInteger, 1, ++/*282228*/ OPC_CheckType, MVT::i32, ++/*282230*/ OPC_MoveParent, ++/*282231*/ OPC_MoveParent, ++/*282232*/ OPC_MoveParent, ++/*282233*/ OPC_MoveParent, ++/*282234*/ OPC_MoveChild1, ++/*282235*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*282238*/ OPC_CheckChild0Integer, 1, ++/*282240*/ OPC_CheckChild0Type, MVT::i32, ++/*282242*/ OPC_CheckChild1Integer, 1, ++/*282244*/ OPC_CheckChild1Type, MVT::i32, ++/*282246*/ OPC_CheckChild2Integer, 1, ++/*282248*/ OPC_CheckChild2Type, MVT::i32, ++/*282250*/ OPC_CheckChild3Integer, 1, ++/*282252*/ OPC_CheckChild3Type, MVT::i32, ++/*282254*/ OPC_CheckChild4Integer, 1, ++/*282256*/ OPC_CheckChild4Type, MVT::i32, ++/*282258*/ OPC_MoveChild5, ++/*282259*/ OPC_CheckInteger, 1, ++/*282261*/ OPC_CheckType, MVT::i32, ++/*282263*/ OPC_MoveParent, ++/*282264*/ OPC_MoveChild6, ++/*282265*/ OPC_CheckInteger, 1, ++/*282267*/ OPC_CheckType, MVT::i32, ++/*282269*/ OPC_MoveParent, ++/*282270*/ OPC_MoveChild7, ++/*282271*/ OPC_CheckInteger, 1, ++/*282273*/ OPC_CheckType, MVT::i32, ++/*282275*/ OPC_MoveParent, ++/*282276*/ OPC_MoveChild, 8, ++/*282278*/ OPC_CheckInteger, 1, ++/*282280*/ OPC_CheckType, MVT::i32, ++/*282282*/ OPC_MoveParent, ++/*282283*/ OPC_MoveChild, 9, ++/*282285*/ OPC_CheckInteger, 1, ++/*282287*/ OPC_CheckType, MVT::i32, ++/*282289*/ OPC_MoveParent, ++/*282290*/ OPC_MoveChild, 10, ++/*282292*/ OPC_CheckInteger, 1, ++/*282294*/ OPC_CheckType, MVT::i32, ++/*282296*/ OPC_MoveParent, ++/*282297*/ OPC_MoveChild, 11, ++/*282299*/ OPC_CheckInteger, 1, ++/*282301*/ OPC_CheckType, MVT::i32, ++/*282303*/ OPC_MoveParent, ++/*282304*/ OPC_MoveChild, 12, ++/*282306*/ OPC_CheckInteger, 1, ++/*282308*/ OPC_CheckType, MVT::i32, ++/*282310*/ OPC_MoveParent, ++/*282311*/ OPC_MoveChild, 13, ++/*282313*/ OPC_CheckInteger, 1, ++/*282315*/ OPC_CheckType, MVT::i32, ++/*282317*/ OPC_MoveParent, ++/*282318*/ OPC_MoveChild, 14, ++/*282320*/ OPC_CheckInteger, 1, ++/*282322*/ OPC_CheckType, MVT::i32, ++/*282324*/ OPC_MoveParent, ++/*282325*/ OPC_MoveChild, 15, ++/*282327*/ OPC_CheckInteger, 1, ++/*282329*/ OPC_CheckType, MVT::i32, ++/*282331*/ OPC_MoveParent, ++/*282332*/ OPC_MoveChild, 16, ++/*282334*/ OPC_CheckInteger, 1, ++/*282336*/ OPC_CheckType, MVT::i32, ++/*282338*/ OPC_MoveParent, ++/*282339*/ OPC_MoveChild, 17, ++/*282341*/ OPC_CheckInteger, 1, ++/*282343*/ OPC_CheckType, MVT::i32, ++/*282345*/ OPC_MoveParent, ++/*282346*/ OPC_MoveChild, 18, ++/*282348*/ OPC_CheckInteger, 1, ++/*282350*/ OPC_CheckType, MVT::i32, ++/*282352*/ OPC_MoveParent, ++/*282353*/ OPC_MoveChild, 19, ++/*282355*/ OPC_CheckInteger, 1, ++/*282357*/ OPC_CheckType, MVT::i32, ++/*282359*/ OPC_MoveParent, ++/*282360*/ OPC_MoveChild, 20, ++/*282362*/ OPC_CheckInteger, 1, ++/*282364*/ OPC_CheckType, MVT::i32, ++/*282366*/ OPC_MoveParent, ++/*282367*/ OPC_MoveChild, 21, ++/*282369*/ OPC_CheckInteger, 1, ++/*282371*/ OPC_CheckType, MVT::i32, ++/*282373*/ OPC_MoveParent, ++/*282374*/ OPC_MoveChild, 22, ++/*282376*/ OPC_CheckInteger, 1, ++/*282378*/ OPC_CheckType, MVT::i32, ++/*282380*/ OPC_MoveParent, ++/*282381*/ OPC_MoveChild, 23, ++/*282383*/ OPC_CheckInteger, 1, ++/*282385*/ OPC_CheckType, MVT::i32, ++/*282387*/ OPC_MoveParent, ++/*282388*/ OPC_MoveChild, 24, ++/*282390*/ OPC_CheckInteger, 1, ++/*282392*/ OPC_CheckType, MVT::i32, ++/*282394*/ OPC_MoveParent, ++/*282395*/ OPC_MoveChild, 25, ++/*282397*/ OPC_CheckInteger, 1, ++/*282399*/ OPC_CheckType, MVT::i32, ++/*282401*/ OPC_MoveParent, ++/*282402*/ OPC_MoveChild, 26, ++/*282404*/ OPC_CheckInteger, 1, ++/*282406*/ OPC_CheckType, MVT::i32, ++/*282408*/ OPC_MoveParent, ++/*282409*/ OPC_MoveChild, 27, ++/*282411*/ OPC_CheckInteger, 1, ++/*282413*/ OPC_CheckType, MVT::i32, ++/*282415*/ OPC_MoveParent, ++/*282416*/ OPC_MoveChild, 28, ++/*282418*/ OPC_CheckInteger, 1, ++/*282420*/ OPC_CheckType, MVT::i32, ++/*282422*/ OPC_MoveParent, ++/*282423*/ OPC_MoveChild, 29, ++/*282425*/ OPC_CheckInteger, 1, ++/*282427*/ OPC_CheckType, MVT::i32, ++/*282429*/ OPC_MoveParent, ++/*282430*/ OPC_MoveChild, 30, ++/*282432*/ OPC_CheckInteger, 1, ++/*282434*/ OPC_CheckType, MVT::i32, ++/*282436*/ OPC_MoveParent, ++/*282437*/ OPC_MoveChild, 31, ++/*282439*/ OPC_CheckInteger, 1, ++/*282441*/ OPC_CheckType, MVT::i32, ++/*282443*/ OPC_MoveParent, ++/*282444*/ OPC_CheckType, MVT::v32i8, ++/*282446*/ OPC_MoveParent, ++/*282447*/ OPC_CheckType, MVT::v32i8, ++/*282449*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*282451*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*282459*/ 0, /*End of Scope*/ ++/*282460*/ /*Scope*/ 126|128,6/*894*/, /*->283356*/ ++/*282462*/ OPC_CheckChild0Same, 1, ++/*282464*/ OPC_MoveChild1, ++/*282465*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*282468*/ OPC_Scope, 57|128,3/*441*/, /*->282912*/ // 2 children in Scope ++/*282471*/ OPC_MoveChild0, ++/*282472*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*282475*/ OPC_CheckChild0Integer, 1, ++/*282477*/ OPC_CheckChild0Type, MVT::i32, ++/*282479*/ OPC_CheckChild1Integer, 1, ++/*282481*/ OPC_CheckChild1Type, MVT::i32, ++/*282483*/ OPC_CheckChild2Integer, 1, ++/*282485*/ OPC_CheckChild2Type, MVT::i32, ++/*282487*/ OPC_CheckChild3Integer, 1, ++/*282489*/ OPC_CheckChild3Type, MVT::i32, ++/*282491*/ OPC_CheckChild4Integer, 1, ++/*282493*/ OPC_CheckChild4Type, MVT::i32, ++/*282495*/ OPC_MoveChild5, ++/*282496*/ OPC_CheckInteger, 1, ++/*282498*/ OPC_CheckType, MVT::i32, ++/*282500*/ OPC_MoveParent, ++/*282501*/ OPC_MoveChild6, ++/*282502*/ OPC_CheckInteger, 1, ++/*282504*/ OPC_CheckType, MVT::i32, ++/*282506*/ OPC_MoveParent, ++/*282507*/ OPC_MoveChild7, ++/*282508*/ OPC_CheckInteger, 1, ++/*282510*/ OPC_CheckType, MVT::i32, ++/*282512*/ OPC_MoveParent, ++/*282513*/ OPC_MoveChild, 8, ++/*282515*/ OPC_CheckInteger, 1, ++/*282517*/ OPC_CheckType, MVT::i32, ++/*282519*/ OPC_MoveParent, ++/*282520*/ OPC_MoveChild, 9, ++/*282522*/ OPC_CheckInteger, 1, ++/*282524*/ OPC_CheckType, MVT::i32, ++/*282526*/ OPC_MoveParent, ++/*282527*/ OPC_MoveChild, 10, ++/*282529*/ OPC_CheckInteger, 1, ++/*282531*/ OPC_CheckType, MVT::i32, ++/*282533*/ OPC_MoveParent, ++/*282534*/ OPC_MoveChild, 11, ++/*282536*/ OPC_CheckInteger, 1, ++/*282538*/ OPC_CheckType, MVT::i32, ++/*282540*/ OPC_MoveParent, ++/*282541*/ OPC_MoveChild, 12, ++/*282543*/ OPC_CheckInteger, 1, ++/*282545*/ OPC_CheckType, MVT::i32, ++/*282547*/ OPC_MoveParent, ++/*282548*/ OPC_MoveChild, 13, ++/*282550*/ OPC_CheckInteger, 1, ++/*282552*/ OPC_CheckType, MVT::i32, ++/*282554*/ OPC_MoveParent, ++/*282555*/ OPC_MoveChild, 14, ++/*282557*/ OPC_CheckInteger, 1, ++/*282559*/ OPC_CheckType, MVT::i32, ++/*282561*/ OPC_MoveParent, ++/*282562*/ OPC_MoveChild, 15, ++/*282564*/ OPC_CheckInteger, 1, ++/*282566*/ OPC_CheckType, MVT::i32, ++/*282568*/ OPC_MoveParent, ++/*282569*/ OPC_MoveChild, 16, ++/*282571*/ OPC_CheckInteger, 1, ++/*282573*/ OPC_CheckType, MVT::i32, ++/*282575*/ OPC_MoveParent, ++/*282576*/ OPC_MoveChild, 17, ++/*282578*/ OPC_CheckInteger, 1, ++/*282580*/ OPC_CheckType, MVT::i32, ++/*282582*/ OPC_MoveParent, ++/*282583*/ OPC_MoveChild, 18, ++/*282585*/ OPC_CheckInteger, 1, ++/*282587*/ OPC_CheckType, MVT::i32, ++/*282589*/ OPC_MoveParent, ++/*282590*/ OPC_MoveChild, 19, ++/*282592*/ OPC_CheckInteger, 1, ++/*282594*/ OPC_CheckType, MVT::i32, ++/*282596*/ OPC_MoveParent, ++/*282597*/ OPC_MoveChild, 20, ++/*282599*/ OPC_CheckInteger, 1, ++/*282601*/ OPC_CheckType, MVT::i32, ++/*282603*/ OPC_MoveParent, ++/*282604*/ OPC_MoveChild, 21, ++/*282606*/ OPC_CheckInteger, 1, ++/*282608*/ OPC_CheckType, MVT::i32, ++/*282610*/ OPC_MoveParent, ++/*282611*/ OPC_MoveChild, 22, ++/*282613*/ OPC_CheckInteger, 1, ++/*282615*/ OPC_CheckType, MVT::i32, ++/*282617*/ OPC_MoveParent, ++/*282618*/ OPC_MoveChild, 23, ++/*282620*/ OPC_CheckInteger, 1, ++/*282622*/ OPC_CheckType, MVT::i32, ++/*282624*/ OPC_MoveParent, ++/*282625*/ OPC_MoveChild, 24, ++/*282627*/ OPC_CheckInteger, 1, ++/*282629*/ OPC_CheckType, MVT::i32, ++/*282631*/ OPC_MoveParent, ++/*282632*/ OPC_MoveChild, 25, ++/*282634*/ OPC_CheckInteger, 1, ++/*282636*/ OPC_CheckType, MVT::i32, ++/*282638*/ OPC_MoveParent, ++/*282639*/ OPC_MoveChild, 26, ++/*282641*/ OPC_CheckInteger, 1, ++/*282643*/ OPC_CheckType, MVT::i32, ++/*282645*/ OPC_MoveParent, ++/*282646*/ OPC_MoveChild, 27, ++/*282648*/ OPC_CheckInteger, 1, ++/*282650*/ OPC_CheckType, MVT::i32, ++/*282652*/ OPC_MoveParent, ++/*282653*/ OPC_MoveChild, 28, ++/*282655*/ OPC_CheckInteger, 1, ++/*282657*/ OPC_CheckType, MVT::i32, ++/*282659*/ OPC_MoveParent, ++/*282660*/ OPC_MoveChild, 29, ++/*282662*/ OPC_CheckInteger, 1, ++/*282664*/ OPC_CheckType, MVT::i32, ++/*282666*/ OPC_MoveParent, ++/*282667*/ OPC_MoveChild, 30, ++/*282669*/ OPC_CheckInteger, 1, ++/*282671*/ OPC_CheckType, MVT::i32, ++/*282673*/ OPC_MoveParent, ++/*282674*/ OPC_MoveChild, 31, ++/*282676*/ OPC_CheckInteger, 1, ++/*282678*/ OPC_CheckType, MVT::i32, ++/*282680*/ OPC_MoveParent, ++/*282681*/ OPC_MoveParent, ++/*282682*/ OPC_CheckChild1Same, 0, ++/*282684*/ OPC_MoveParent, ++/*282685*/ OPC_MoveParent, ++/*282686*/ OPC_MoveParent, ++/*282687*/ OPC_MoveChild1, ++/*282688*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*282691*/ OPC_CheckChild0Integer, 1, ++/*282693*/ OPC_CheckChild0Type, MVT::i32, ++/*282695*/ OPC_CheckChild1Integer, 1, ++/*282697*/ OPC_CheckChild1Type, MVT::i32, ++/*282699*/ OPC_CheckChild2Integer, 1, ++/*282701*/ OPC_CheckChild2Type, MVT::i32, ++/*282703*/ OPC_CheckChild3Integer, 1, ++/*282705*/ OPC_CheckChild3Type, MVT::i32, ++/*282707*/ OPC_CheckChild4Integer, 1, ++/*282709*/ OPC_CheckChild4Type, MVT::i32, ++/*282711*/ OPC_MoveChild5, ++/*282712*/ OPC_CheckInteger, 1, ++/*282714*/ OPC_CheckType, MVT::i32, ++/*282716*/ OPC_MoveParent, ++/*282717*/ OPC_MoveChild6, ++/*282718*/ OPC_CheckInteger, 1, ++/*282720*/ OPC_CheckType, MVT::i32, ++/*282722*/ OPC_MoveParent, ++/*282723*/ OPC_MoveChild7, ++/*282724*/ OPC_CheckInteger, 1, ++/*282726*/ OPC_CheckType, MVT::i32, ++/*282728*/ OPC_MoveParent, ++/*282729*/ OPC_MoveChild, 8, ++/*282731*/ OPC_CheckInteger, 1, ++/*282733*/ OPC_CheckType, MVT::i32, ++/*282735*/ OPC_MoveParent, ++/*282736*/ OPC_MoveChild, 9, ++/*282738*/ OPC_CheckInteger, 1, ++/*282740*/ OPC_CheckType, MVT::i32, ++/*282742*/ OPC_MoveParent, ++/*282743*/ OPC_MoveChild, 10, ++/*282745*/ OPC_CheckInteger, 1, ++/*282747*/ OPC_CheckType, MVT::i32, ++/*282749*/ OPC_MoveParent, ++/*282750*/ OPC_MoveChild, 11, ++/*282752*/ OPC_CheckInteger, 1, ++/*282754*/ OPC_CheckType, MVT::i32, ++/*282756*/ OPC_MoveParent, ++/*282757*/ OPC_MoveChild, 12, ++/*282759*/ OPC_CheckInteger, 1, ++/*282761*/ OPC_CheckType, MVT::i32, ++/*282763*/ OPC_MoveParent, ++/*282764*/ OPC_MoveChild, 13, ++/*282766*/ OPC_CheckInteger, 1, ++/*282768*/ OPC_CheckType, MVT::i32, ++/*282770*/ OPC_MoveParent, ++/*282771*/ OPC_MoveChild, 14, ++/*282773*/ OPC_CheckInteger, 1, ++/*282775*/ OPC_CheckType, MVT::i32, ++/*282777*/ OPC_MoveParent, ++/*282778*/ OPC_MoveChild, 15, ++/*282780*/ OPC_CheckInteger, 1, ++/*282782*/ OPC_CheckType, MVT::i32, ++/*282784*/ OPC_MoveParent, ++/*282785*/ OPC_MoveChild, 16, ++/*282787*/ OPC_CheckInteger, 1, ++/*282789*/ OPC_CheckType, MVT::i32, ++/*282791*/ OPC_MoveParent, ++/*282792*/ OPC_MoveChild, 17, ++/*282794*/ OPC_CheckInteger, 1, ++/*282796*/ OPC_CheckType, MVT::i32, ++/*282798*/ OPC_MoveParent, ++/*282799*/ OPC_MoveChild, 18, ++/*282801*/ OPC_CheckInteger, 1, ++/*282803*/ OPC_CheckType, MVT::i32, ++/*282805*/ OPC_MoveParent, ++/*282806*/ OPC_MoveChild, 19, ++/*282808*/ OPC_CheckInteger, 1, ++/*282810*/ OPC_CheckType, MVT::i32, ++/*282812*/ OPC_MoveParent, ++/*282813*/ OPC_MoveChild, 20, ++/*282815*/ OPC_CheckInteger, 1, ++/*282817*/ OPC_CheckType, MVT::i32, ++/*282819*/ OPC_MoveParent, ++/*282820*/ OPC_MoveChild, 21, ++/*282822*/ OPC_CheckInteger, 1, ++/*282824*/ OPC_CheckType, MVT::i32, ++/*282826*/ OPC_MoveParent, ++/*282827*/ OPC_MoveChild, 22, ++/*282829*/ OPC_CheckInteger, 1, ++/*282831*/ OPC_CheckType, MVT::i32, ++/*282833*/ OPC_MoveParent, ++/*282834*/ OPC_MoveChild, 23, ++/*282836*/ OPC_CheckInteger, 1, ++/*282838*/ OPC_CheckType, MVT::i32, ++/*282840*/ OPC_MoveParent, ++/*282841*/ OPC_MoveChild, 24, ++/*282843*/ OPC_CheckInteger, 1, ++/*282845*/ OPC_CheckType, MVT::i32, ++/*282847*/ OPC_MoveParent, ++/*282848*/ OPC_MoveChild, 25, ++/*282850*/ OPC_CheckInteger, 1, ++/*282852*/ OPC_CheckType, MVT::i32, ++/*282854*/ OPC_MoveParent, ++/*282855*/ OPC_MoveChild, 26, ++/*282857*/ OPC_CheckInteger, 1, ++/*282859*/ OPC_CheckType, MVT::i32, ++/*282861*/ OPC_MoveParent, ++/*282862*/ OPC_MoveChild, 27, ++/*282864*/ OPC_CheckInteger, 1, ++/*282866*/ OPC_CheckType, MVT::i32, ++/*282868*/ OPC_MoveParent, ++/*282869*/ OPC_MoveChild, 28, ++/*282871*/ OPC_CheckInteger, 1, ++/*282873*/ OPC_CheckType, MVT::i32, ++/*282875*/ OPC_MoveParent, ++/*282876*/ OPC_MoveChild, 29, ++/*282878*/ OPC_CheckInteger, 1, ++/*282880*/ OPC_CheckType, MVT::i32, ++/*282882*/ OPC_MoveParent, ++/*282883*/ OPC_MoveChild, 30, ++/*282885*/ OPC_CheckInteger, 1, ++/*282887*/ OPC_CheckType, MVT::i32, ++/*282889*/ OPC_MoveParent, ++/*282890*/ OPC_MoveChild, 31, ++/*282892*/ OPC_CheckInteger, 1, ++/*282894*/ OPC_CheckType, MVT::i32, ++/*282896*/ OPC_MoveParent, ++/*282897*/ OPC_CheckType, MVT::v32i8, ++/*282899*/ OPC_MoveParent, ++/*282900*/ OPC_CheckType, MVT::v32i8, ++/*282902*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*282904*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*282912*/ /*Scope*/ 57|128,3/*441*/, /*->283355*/ ++/*282914*/ OPC_CheckChild0Same, 0, ++/*282916*/ OPC_MoveChild1, ++/*282917*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*282920*/ OPC_CheckChild0Integer, 1, ++/*282922*/ OPC_CheckChild0Type, MVT::i32, ++/*282924*/ OPC_CheckChild1Integer, 1, ++/*282926*/ OPC_CheckChild1Type, MVT::i32, ++/*282928*/ OPC_CheckChild2Integer, 1, ++/*282930*/ OPC_CheckChild2Type, MVT::i32, ++/*282932*/ OPC_CheckChild3Integer, 1, ++/*282934*/ OPC_CheckChild3Type, MVT::i32, ++/*282936*/ OPC_CheckChild4Integer, 1, ++/*282938*/ OPC_CheckChild4Type, MVT::i32, ++/*282940*/ OPC_MoveChild5, ++/*282941*/ OPC_CheckInteger, 1, ++/*282943*/ OPC_CheckType, MVT::i32, ++/*282945*/ OPC_MoveParent, ++/*282946*/ OPC_MoveChild6, ++/*282947*/ OPC_CheckInteger, 1, ++/*282949*/ OPC_CheckType, MVT::i32, ++/*282951*/ OPC_MoveParent, ++/*282952*/ OPC_MoveChild7, ++/*282953*/ OPC_CheckInteger, 1, ++/*282955*/ OPC_CheckType, MVT::i32, ++/*282957*/ OPC_MoveParent, ++/*282958*/ OPC_MoveChild, 8, ++/*282960*/ OPC_CheckInteger, 1, ++/*282962*/ OPC_CheckType, MVT::i32, ++/*282964*/ OPC_MoveParent, ++/*282965*/ OPC_MoveChild, 9, ++/*282967*/ OPC_CheckInteger, 1, ++/*282969*/ OPC_CheckType, MVT::i32, ++/*282971*/ OPC_MoveParent, ++/*282972*/ OPC_MoveChild, 10, ++/*282974*/ OPC_CheckInteger, 1, ++/*282976*/ OPC_CheckType, MVT::i32, ++/*282978*/ OPC_MoveParent, ++/*282979*/ OPC_MoveChild, 11, ++/*282981*/ OPC_CheckInteger, 1, ++/*282983*/ OPC_CheckType, MVT::i32, ++/*282985*/ OPC_MoveParent, ++/*282986*/ OPC_MoveChild, 12, ++/*282988*/ OPC_CheckInteger, 1, ++/*282990*/ OPC_CheckType, MVT::i32, ++/*282992*/ OPC_MoveParent, ++/*282993*/ OPC_MoveChild, 13, ++/*282995*/ OPC_CheckInteger, 1, ++/*282997*/ OPC_CheckType, MVT::i32, ++/*282999*/ OPC_MoveParent, ++/*283000*/ OPC_MoveChild, 14, ++/*283002*/ OPC_CheckInteger, 1, ++/*283004*/ OPC_CheckType, MVT::i32, ++/*283006*/ OPC_MoveParent, ++/*283007*/ OPC_MoveChild, 15, ++/*283009*/ OPC_CheckInteger, 1, ++/*283011*/ OPC_CheckType, MVT::i32, ++/*283013*/ OPC_MoveParent, ++/*283014*/ OPC_MoveChild, 16, ++/*283016*/ OPC_CheckInteger, 1, ++/*283018*/ OPC_CheckType, MVT::i32, ++/*283020*/ OPC_MoveParent, ++/*283021*/ OPC_MoveChild, 17, ++/*283023*/ OPC_CheckInteger, 1, ++/*283025*/ OPC_CheckType, MVT::i32, ++/*283027*/ OPC_MoveParent, ++/*283028*/ OPC_MoveChild, 18, ++/*283030*/ OPC_CheckInteger, 1, ++/*283032*/ OPC_CheckType, MVT::i32, ++/*283034*/ OPC_MoveParent, ++/*283035*/ OPC_MoveChild, 19, ++/*283037*/ OPC_CheckInteger, 1, ++/*283039*/ OPC_CheckType, MVT::i32, ++/*283041*/ OPC_MoveParent, ++/*283042*/ OPC_MoveChild, 20, ++/*283044*/ OPC_CheckInteger, 1, ++/*283046*/ OPC_CheckType, MVT::i32, ++/*283048*/ OPC_MoveParent, ++/*283049*/ OPC_MoveChild, 21, ++/*283051*/ OPC_CheckInteger, 1, ++/*283053*/ OPC_CheckType, MVT::i32, ++/*283055*/ OPC_MoveParent, ++/*283056*/ OPC_MoveChild, 22, ++/*283058*/ OPC_CheckInteger, 1, ++/*283060*/ OPC_CheckType, MVT::i32, ++/*283062*/ OPC_MoveParent, ++/*283063*/ OPC_MoveChild, 23, ++/*283065*/ OPC_CheckInteger, 1, ++/*283067*/ OPC_CheckType, MVT::i32, ++/*283069*/ OPC_MoveParent, ++/*283070*/ OPC_MoveChild, 24, ++/*283072*/ OPC_CheckInteger, 1, ++/*283074*/ OPC_CheckType, MVT::i32, ++/*283076*/ OPC_MoveParent, ++/*283077*/ OPC_MoveChild, 25, ++/*283079*/ OPC_CheckInteger, 1, ++/*283081*/ OPC_CheckType, MVT::i32, ++/*283083*/ OPC_MoveParent, ++/*283084*/ OPC_MoveChild, 26, ++/*283086*/ OPC_CheckInteger, 1, ++/*283088*/ OPC_CheckType, MVT::i32, ++/*283090*/ OPC_MoveParent, ++/*283091*/ OPC_MoveChild, 27, ++/*283093*/ OPC_CheckInteger, 1, ++/*283095*/ OPC_CheckType, MVT::i32, ++/*283097*/ OPC_MoveParent, ++/*283098*/ OPC_MoveChild, 28, ++/*283100*/ OPC_CheckInteger, 1, ++/*283102*/ OPC_CheckType, MVT::i32, ++/*283104*/ OPC_MoveParent, ++/*283105*/ OPC_MoveChild, 29, ++/*283107*/ OPC_CheckInteger, 1, ++/*283109*/ OPC_CheckType, MVT::i32, ++/*283111*/ OPC_MoveParent, ++/*283112*/ OPC_MoveChild, 30, ++/*283114*/ OPC_CheckInteger, 1, ++/*283116*/ OPC_CheckType, MVT::i32, ++/*283118*/ OPC_MoveParent, ++/*283119*/ OPC_MoveChild, 31, ++/*283121*/ OPC_CheckInteger, 1, ++/*283123*/ OPC_CheckType, MVT::i32, ++/*283125*/ OPC_MoveParent, ++/*283126*/ OPC_MoveParent, ++/*283127*/ OPC_MoveParent, ++/*283128*/ OPC_MoveParent, ++/*283129*/ OPC_MoveParent, ++/*283130*/ OPC_MoveChild1, ++/*283131*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*283134*/ OPC_CheckChild0Integer, 1, ++/*283136*/ OPC_CheckChild0Type, MVT::i32, ++/*283138*/ OPC_CheckChild1Integer, 1, ++/*283140*/ OPC_CheckChild1Type, MVT::i32, ++/*283142*/ OPC_CheckChild2Integer, 1, ++/*283144*/ OPC_CheckChild2Type, MVT::i32, ++/*283146*/ OPC_CheckChild3Integer, 1, ++/*283148*/ OPC_CheckChild3Type, MVT::i32, ++/*283150*/ OPC_CheckChild4Integer, 1, ++/*283152*/ OPC_CheckChild4Type, MVT::i32, ++/*283154*/ OPC_MoveChild5, ++/*283155*/ OPC_CheckInteger, 1, ++/*283157*/ OPC_CheckType, MVT::i32, ++/*283159*/ OPC_MoveParent, ++/*283160*/ OPC_MoveChild6, ++/*283161*/ OPC_CheckInteger, 1, ++/*283163*/ OPC_CheckType, MVT::i32, ++/*283165*/ OPC_MoveParent, ++/*283166*/ OPC_MoveChild7, ++/*283167*/ OPC_CheckInteger, 1, ++/*283169*/ OPC_CheckType, MVT::i32, ++/*283171*/ OPC_MoveParent, ++/*283172*/ OPC_MoveChild, 8, ++/*283174*/ OPC_CheckInteger, 1, ++/*283176*/ OPC_CheckType, MVT::i32, ++/*283178*/ OPC_MoveParent, ++/*283179*/ OPC_MoveChild, 9, ++/*283181*/ OPC_CheckInteger, 1, ++/*283183*/ OPC_CheckType, MVT::i32, ++/*283185*/ OPC_MoveParent, ++/*283186*/ OPC_MoveChild, 10, ++/*283188*/ OPC_CheckInteger, 1, ++/*283190*/ OPC_CheckType, MVT::i32, ++/*283192*/ OPC_MoveParent, ++/*283193*/ OPC_MoveChild, 11, ++/*283195*/ OPC_CheckInteger, 1, ++/*283197*/ OPC_CheckType, MVT::i32, ++/*283199*/ OPC_MoveParent, ++/*283200*/ OPC_MoveChild, 12, ++/*283202*/ OPC_CheckInteger, 1, ++/*283204*/ OPC_CheckType, MVT::i32, ++/*283206*/ OPC_MoveParent, ++/*283207*/ OPC_MoveChild, 13, ++/*283209*/ OPC_CheckInteger, 1, ++/*283211*/ OPC_CheckType, MVT::i32, ++/*283213*/ OPC_MoveParent, ++/*283214*/ OPC_MoveChild, 14, ++/*283216*/ OPC_CheckInteger, 1, ++/*283218*/ OPC_CheckType, MVT::i32, ++/*283220*/ OPC_MoveParent, ++/*283221*/ OPC_MoveChild, 15, ++/*283223*/ OPC_CheckInteger, 1, ++/*283225*/ OPC_CheckType, MVT::i32, ++/*283227*/ OPC_MoveParent, ++/*283228*/ OPC_MoveChild, 16, ++/*283230*/ OPC_CheckInteger, 1, ++/*283232*/ OPC_CheckType, MVT::i32, ++/*283234*/ OPC_MoveParent, ++/*283235*/ OPC_MoveChild, 17, ++/*283237*/ OPC_CheckInteger, 1, ++/*283239*/ OPC_CheckType, MVT::i32, ++/*283241*/ OPC_MoveParent, ++/*283242*/ OPC_MoveChild, 18, ++/*283244*/ OPC_CheckInteger, 1, ++/*283246*/ OPC_CheckType, MVT::i32, ++/*283248*/ OPC_MoveParent, ++/*283249*/ OPC_MoveChild, 19, ++/*283251*/ OPC_CheckInteger, 1, ++/*283253*/ OPC_CheckType, MVT::i32, ++/*283255*/ OPC_MoveParent, ++/*283256*/ OPC_MoveChild, 20, ++/*283258*/ OPC_CheckInteger, 1, ++/*283260*/ OPC_CheckType, MVT::i32, ++/*283262*/ OPC_MoveParent, ++/*283263*/ OPC_MoveChild, 21, ++/*283265*/ OPC_CheckInteger, 1, ++/*283267*/ OPC_CheckType, MVT::i32, ++/*283269*/ OPC_MoveParent, ++/*283270*/ OPC_MoveChild, 22, ++/*283272*/ OPC_CheckInteger, 1, ++/*283274*/ OPC_CheckType, MVT::i32, ++/*283276*/ OPC_MoveParent, ++/*283277*/ OPC_MoveChild, 23, ++/*283279*/ OPC_CheckInteger, 1, ++/*283281*/ OPC_CheckType, MVT::i32, ++/*283283*/ OPC_MoveParent, ++/*283284*/ OPC_MoveChild, 24, ++/*283286*/ OPC_CheckInteger, 1, ++/*283288*/ OPC_CheckType, MVT::i32, ++/*283290*/ OPC_MoveParent, ++/*283291*/ OPC_MoveChild, 25, ++/*283293*/ OPC_CheckInteger, 1, ++/*283295*/ OPC_CheckType, MVT::i32, ++/*283297*/ OPC_MoveParent, ++/*283298*/ OPC_MoveChild, 26, ++/*283300*/ OPC_CheckInteger, 1, ++/*283302*/ OPC_CheckType, MVT::i32, ++/*283304*/ OPC_MoveParent, ++/*283305*/ OPC_MoveChild, 27, ++/*283307*/ OPC_CheckInteger, 1, ++/*283309*/ OPC_CheckType, MVT::i32, ++/*283311*/ OPC_MoveParent, ++/*283312*/ OPC_MoveChild, 28, ++/*283314*/ OPC_CheckInteger, 1, ++/*283316*/ OPC_CheckType, MVT::i32, ++/*283318*/ OPC_MoveParent, ++/*283319*/ OPC_MoveChild, 29, ++/*283321*/ OPC_CheckInteger, 1, ++/*283323*/ OPC_CheckType, MVT::i32, ++/*283325*/ OPC_MoveParent, ++/*283326*/ OPC_MoveChild, 30, ++/*283328*/ OPC_CheckInteger, 1, ++/*283330*/ OPC_CheckType, MVT::i32, ++/*283332*/ OPC_MoveParent, ++/*283333*/ OPC_MoveChild, 31, ++/*283335*/ OPC_CheckInteger, 1, ++/*283337*/ OPC_CheckType, MVT::i32, ++/*283339*/ OPC_MoveParent, ++/*283340*/ OPC_CheckType, MVT::v32i8, ++/*283342*/ OPC_MoveParent, ++/*283343*/ OPC_CheckType, MVT::v32i8, ++/*283345*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*283347*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*283355*/ 0, /*End of Scope*/ ++/*283356*/ /*Scope*/ 126|128,6/*894*/, /*->284252*/ ++/*283358*/ OPC_CheckChild0Same, 0, ++/*283360*/ OPC_MoveChild1, ++/*283361*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*283364*/ OPC_Scope, 57|128,3/*441*/, /*->283808*/ // 2 children in Scope ++/*283367*/ OPC_MoveChild0, ++/*283368*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*283371*/ OPC_CheckChild0Integer, 1, ++/*283373*/ OPC_CheckChild0Type, MVT::i32, ++/*283375*/ OPC_CheckChild1Integer, 1, ++/*283377*/ OPC_CheckChild1Type, MVT::i32, ++/*283379*/ OPC_CheckChild2Integer, 1, ++/*283381*/ OPC_CheckChild2Type, MVT::i32, ++/*283383*/ OPC_CheckChild3Integer, 1, ++/*283385*/ OPC_CheckChild3Type, MVT::i32, ++/*283387*/ OPC_CheckChild4Integer, 1, ++/*283389*/ OPC_CheckChild4Type, MVT::i32, ++/*283391*/ OPC_MoveChild5, ++/*283392*/ OPC_CheckInteger, 1, ++/*283394*/ OPC_CheckType, MVT::i32, ++/*283396*/ OPC_MoveParent, ++/*283397*/ OPC_MoveChild6, ++/*283398*/ OPC_CheckInteger, 1, ++/*283400*/ OPC_CheckType, MVT::i32, ++/*283402*/ OPC_MoveParent, ++/*283403*/ OPC_MoveChild7, ++/*283404*/ OPC_CheckInteger, 1, ++/*283406*/ OPC_CheckType, MVT::i32, ++/*283408*/ OPC_MoveParent, ++/*283409*/ OPC_MoveChild, 8, ++/*283411*/ OPC_CheckInteger, 1, ++/*283413*/ OPC_CheckType, MVT::i32, ++/*283415*/ OPC_MoveParent, ++/*283416*/ OPC_MoveChild, 9, ++/*283418*/ OPC_CheckInteger, 1, ++/*283420*/ OPC_CheckType, MVT::i32, ++/*283422*/ OPC_MoveParent, ++/*283423*/ OPC_MoveChild, 10, ++/*283425*/ OPC_CheckInteger, 1, ++/*283427*/ OPC_CheckType, MVT::i32, ++/*283429*/ OPC_MoveParent, ++/*283430*/ OPC_MoveChild, 11, ++/*283432*/ OPC_CheckInteger, 1, ++/*283434*/ OPC_CheckType, MVT::i32, ++/*283436*/ OPC_MoveParent, ++/*283437*/ OPC_MoveChild, 12, ++/*283439*/ OPC_CheckInteger, 1, ++/*283441*/ OPC_CheckType, MVT::i32, ++/*283443*/ OPC_MoveParent, ++/*283444*/ OPC_MoveChild, 13, ++/*283446*/ OPC_CheckInteger, 1, ++/*283448*/ OPC_CheckType, MVT::i32, ++/*283450*/ OPC_MoveParent, ++/*283451*/ OPC_MoveChild, 14, ++/*283453*/ OPC_CheckInteger, 1, ++/*283455*/ OPC_CheckType, MVT::i32, ++/*283457*/ OPC_MoveParent, ++/*283458*/ OPC_MoveChild, 15, ++/*283460*/ OPC_CheckInteger, 1, ++/*283462*/ OPC_CheckType, MVT::i32, ++/*283464*/ OPC_MoveParent, ++/*283465*/ OPC_MoveChild, 16, ++/*283467*/ OPC_CheckInteger, 1, ++/*283469*/ OPC_CheckType, MVT::i32, ++/*283471*/ OPC_MoveParent, ++/*283472*/ OPC_MoveChild, 17, ++/*283474*/ OPC_CheckInteger, 1, ++/*283476*/ OPC_CheckType, MVT::i32, ++/*283478*/ OPC_MoveParent, ++/*283479*/ OPC_MoveChild, 18, ++/*283481*/ OPC_CheckInteger, 1, ++/*283483*/ OPC_CheckType, MVT::i32, ++/*283485*/ OPC_MoveParent, ++/*283486*/ OPC_MoveChild, 19, ++/*283488*/ OPC_CheckInteger, 1, ++/*283490*/ OPC_CheckType, MVT::i32, ++/*283492*/ OPC_MoveParent, ++/*283493*/ OPC_MoveChild, 20, ++/*283495*/ OPC_CheckInteger, 1, ++/*283497*/ OPC_CheckType, MVT::i32, ++/*283499*/ OPC_MoveParent, ++/*283500*/ OPC_MoveChild, 21, ++/*283502*/ OPC_CheckInteger, 1, ++/*283504*/ OPC_CheckType, MVT::i32, ++/*283506*/ OPC_MoveParent, ++/*283507*/ OPC_MoveChild, 22, ++/*283509*/ OPC_CheckInteger, 1, ++/*283511*/ OPC_CheckType, MVT::i32, ++/*283513*/ OPC_MoveParent, ++/*283514*/ OPC_MoveChild, 23, ++/*283516*/ OPC_CheckInteger, 1, ++/*283518*/ OPC_CheckType, MVT::i32, ++/*283520*/ OPC_MoveParent, ++/*283521*/ OPC_MoveChild, 24, ++/*283523*/ OPC_CheckInteger, 1, ++/*283525*/ OPC_CheckType, MVT::i32, ++/*283527*/ OPC_MoveParent, ++/*283528*/ OPC_MoveChild, 25, ++/*283530*/ OPC_CheckInteger, 1, ++/*283532*/ OPC_CheckType, MVT::i32, ++/*283534*/ OPC_MoveParent, ++/*283535*/ OPC_MoveChild, 26, ++/*283537*/ OPC_CheckInteger, 1, ++/*283539*/ OPC_CheckType, MVT::i32, ++/*283541*/ OPC_MoveParent, ++/*283542*/ OPC_MoveChild, 27, ++/*283544*/ OPC_CheckInteger, 1, ++/*283546*/ OPC_CheckType, MVT::i32, ++/*283548*/ OPC_MoveParent, ++/*283549*/ OPC_MoveChild, 28, ++/*283551*/ OPC_CheckInteger, 1, ++/*283553*/ OPC_CheckType, MVT::i32, ++/*283555*/ OPC_MoveParent, ++/*283556*/ OPC_MoveChild, 29, ++/*283558*/ OPC_CheckInteger, 1, ++/*283560*/ OPC_CheckType, MVT::i32, ++/*283562*/ OPC_MoveParent, ++/*283563*/ OPC_MoveChild, 30, ++/*283565*/ OPC_CheckInteger, 1, ++/*283567*/ OPC_CheckType, MVT::i32, ++/*283569*/ OPC_MoveParent, ++/*283570*/ OPC_MoveChild, 31, ++/*283572*/ OPC_CheckInteger, 1, ++/*283574*/ OPC_CheckType, MVT::i32, ++/*283576*/ OPC_MoveParent, ++/*283577*/ OPC_MoveParent, ++/*283578*/ OPC_CheckChild1Same, 1, ++/*283580*/ OPC_MoveParent, ++/*283581*/ OPC_MoveParent, ++/*283582*/ OPC_MoveParent, ++/*283583*/ OPC_MoveChild1, ++/*283584*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*283587*/ OPC_CheckChild0Integer, 1, ++/*283589*/ OPC_CheckChild0Type, MVT::i32, ++/*283591*/ OPC_CheckChild1Integer, 1, ++/*283593*/ OPC_CheckChild1Type, MVT::i32, ++/*283595*/ OPC_CheckChild2Integer, 1, ++/*283597*/ OPC_CheckChild2Type, MVT::i32, ++/*283599*/ OPC_CheckChild3Integer, 1, ++/*283601*/ OPC_CheckChild3Type, MVT::i32, ++/*283603*/ OPC_CheckChild4Integer, 1, ++/*283605*/ OPC_CheckChild4Type, MVT::i32, ++/*283607*/ OPC_MoveChild5, ++/*283608*/ OPC_CheckInteger, 1, ++/*283610*/ OPC_CheckType, MVT::i32, ++/*283612*/ OPC_MoveParent, ++/*283613*/ OPC_MoveChild6, ++/*283614*/ OPC_CheckInteger, 1, ++/*283616*/ OPC_CheckType, MVT::i32, ++/*283618*/ OPC_MoveParent, ++/*283619*/ OPC_MoveChild7, ++/*283620*/ OPC_CheckInteger, 1, ++/*283622*/ OPC_CheckType, MVT::i32, ++/*283624*/ OPC_MoveParent, ++/*283625*/ OPC_MoveChild, 8, ++/*283627*/ OPC_CheckInteger, 1, ++/*283629*/ OPC_CheckType, MVT::i32, ++/*283631*/ OPC_MoveParent, ++/*283632*/ OPC_MoveChild, 9, ++/*283634*/ OPC_CheckInteger, 1, ++/*283636*/ OPC_CheckType, MVT::i32, ++/*283638*/ OPC_MoveParent, ++/*283639*/ OPC_MoveChild, 10, ++/*283641*/ OPC_CheckInteger, 1, ++/*283643*/ OPC_CheckType, MVT::i32, ++/*283645*/ OPC_MoveParent, ++/*283646*/ OPC_MoveChild, 11, ++/*283648*/ OPC_CheckInteger, 1, ++/*283650*/ OPC_CheckType, MVT::i32, ++/*283652*/ OPC_MoveParent, ++/*283653*/ OPC_MoveChild, 12, ++/*283655*/ OPC_CheckInteger, 1, ++/*283657*/ OPC_CheckType, MVT::i32, ++/*283659*/ OPC_MoveParent, ++/*283660*/ OPC_MoveChild, 13, ++/*283662*/ OPC_CheckInteger, 1, ++/*283664*/ OPC_CheckType, MVT::i32, ++/*283666*/ OPC_MoveParent, ++/*283667*/ OPC_MoveChild, 14, ++/*283669*/ OPC_CheckInteger, 1, ++/*283671*/ OPC_CheckType, MVT::i32, ++/*283673*/ OPC_MoveParent, ++/*283674*/ OPC_MoveChild, 15, ++/*283676*/ OPC_CheckInteger, 1, ++/*283678*/ OPC_CheckType, MVT::i32, ++/*283680*/ OPC_MoveParent, ++/*283681*/ OPC_MoveChild, 16, ++/*283683*/ OPC_CheckInteger, 1, ++/*283685*/ OPC_CheckType, MVT::i32, ++/*283687*/ OPC_MoveParent, ++/*283688*/ OPC_MoveChild, 17, ++/*283690*/ OPC_CheckInteger, 1, ++/*283692*/ OPC_CheckType, MVT::i32, ++/*283694*/ OPC_MoveParent, ++/*283695*/ OPC_MoveChild, 18, ++/*283697*/ OPC_CheckInteger, 1, ++/*283699*/ OPC_CheckType, MVT::i32, ++/*283701*/ OPC_MoveParent, ++/*283702*/ OPC_MoveChild, 19, ++/*283704*/ OPC_CheckInteger, 1, ++/*283706*/ OPC_CheckType, MVT::i32, ++/*283708*/ OPC_MoveParent, ++/*283709*/ OPC_MoveChild, 20, ++/*283711*/ OPC_CheckInteger, 1, ++/*283713*/ OPC_CheckType, MVT::i32, ++/*283715*/ OPC_MoveParent, ++/*283716*/ OPC_MoveChild, 21, ++/*283718*/ OPC_CheckInteger, 1, ++/*283720*/ OPC_CheckType, MVT::i32, ++/*283722*/ OPC_MoveParent, ++/*283723*/ OPC_MoveChild, 22, ++/*283725*/ OPC_CheckInteger, 1, ++/*283727*/ OPC_CheckType, MVT::i32, ++/*283729*/ OPC_MoveParent, ++/*283730*/ OPC_MoveChild, 23, ++/*283732*/ OPC_CheckInteger, 1, ++/*283734*/ OPC_CheckType, MVT::i32, ++/*283736*/ OPC_MoveParent, ++/*283737*/ OPC_MoveChild, 24, ++/*283739*/ OPC_CheckInteger, 1, ++/*283741*/ OPC_CheckType, MVT::i32, ++/*283743*/ OPC_MoveParent, ++/*283744*/ OPC_MoveChild, 25, ++/*283746*/ OPC_CheckInteger, 1, ++/*283748*/ OPC_CheckType, MVT::i32, ++/*283750*/ OPC_MoveParent, ++/*283751*/ OPC_MoveChild, 26, ++/*283753*/ OPC_CheckInteger, 1, ++/*283755*/ OPC_CheckType, MVT::i32, ++/*283757*/ OPC_MoveParent, ++/*283758*/ OPC_MoveChild, 27, ++/*283760*/ OPC_CheckInteger, 1, ++/*283762*/ OPC_CheckType, MVT::i32, ++/*283764*/ OPC_MoveParent, ++/*283765*/ OPC_MoveChild, 28, ++/*283767*/ OPC_CheckInteger, 1, ++/*283769*/ OPC_CheckType, MVT::i32, ++/*283771*/ OPC_MoveParent, ++/*283772*/ OPC_MoveChild, 29, ++/*283774*/ OPC_CheckInteger, 1, ++/*283776*/ OPC_CheckType, MVT::i32, ++/*283778*/ OPC_MoveParent, ++/*283779*/ OPC_MoveChild, 30, ++/*283781*/ OPC_CheckInteger, 1, ++/*283783*/ OPC_CheckType, MVT::i32, ++/*283785*/ OPC_MoveParent, ++/*283786*/ OPC_MoveChild, 31, ++/*283788*/ OPC_CheckInteger, 1, ++/*283790*/ OPC_CheckType, MVT::i32, ++/*283792*/ OPC_MoveParent, ++/*283793*/ OPC_CheckType, MVT::v32i8, ++/*283795*/ OPC_MoveParent, ++/*283796*/ OPC_CheckType, MVT::v32i8, ++/*283798*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*283800*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*283808*/ /*Scope*/ 57|128,3/*441*/, /*->284251*/ ++/*283810*/ OPC_CheckChild0Same, 1, ++/*283812*/ OPC_MoveChild1, ++/*283813*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*283816*/ OPC_CheckChild0Integer, 1, ++/*283818*/ OPC_CheckChild0Type, MVT::i32, ++/*283820*/ OPC_CheckChild1Integer, 1, ++/*283822*/ OPC_CheckChild1Type, MVT::i32, ++/*283824*/ OPC_CheckChild2Integer, 1, ++/*283826*/ OPC_CheckChild2Type, MVT::i32, ++/*283828*/ OPC_CheckChild3Integer, 1, ++/*283830*/ OPC_CheckChild3Type, MVT::i32, ++/*283832*/ OPC_CheckChild4Integer, 1, ++/*283834*/ OPC_CheckChild4Type, MVT::i32, ++/*283836*/ OPC_MoveChild5, ++/*283837*/ OPC_CheckInteger, 1, ++/*283839*/ OPC_CheckType, MVT::i32, ++/*283841*/ OPC_MoveParent, ++/*283842*/ OPC_MoveChild6, ++/*283843*/ OPC_CheckInteger, 1, ++/*283845*/ OPC_CheckType, MVT::i32, ++/*283847*/ OPC_MoveParent, ++/*283848*/ OPC_MoveChild7, ++/*283849*/ OPC_CheckInteger, 1, ++/*283851*/ OPC_CheckType, MVT::i32, ++/*283853*/ OPC_MoveParent, ++/*283854*/ OPC_MoveChild, 8, ++/*283856*/ OPC_CheckInteger, 1, ++/*283858*/ OPC_CheckType, MVT::i32, ++/*283860*/ OPC_MoveParent, ++/*283861*/ OPC_MoveChild, 9, ++/*283863*/ OPC_CheckInteger, 1, ++/*283865*/ OPC_CheckType, MVT::i32, ++/*283867*/ OPC_MoveParent, ++/*283868*/ OPC_MoveChild, 10, ++/*283870*/ OPC_CheckInteger, 1, ++/*283872*/ OPC_CheckType, MVT::i32, ++/*283874*/ OPC_MoveParent, ++/*283875*/ OPC_MoveChild, 11, ++/*283877*/ OPC_CheckInteger, 1, ++/*283879*/ OPC_CheckType, MVT::i32, ++/*283881*/ OPC_MoveParent, ++/*283882*/ OPC_MoveChild, 12, ++/*283884*/ OPC_CheckInteger, 1, ++/*283886*/ OPC_CheckType, MVT::i32, ++/*283888*/ OPC_MoveParent, ++/*283889*/ OPC_MoveChild, 13, ++/*283891*/ OPC_CheckInteger, 1, ++/*283893*/ OPC_CheckType, MVT::i32, ++/*283895*/ OPC_MoveParent, ++/*283896*/ OPC_MoveChild, 14, ++/*283898*/ OPC_CheckInteger, 1, ++/*283900*/ OPC_CheckType, MVT::i32, ++/*283902*/ OPC_MoveParent, ++/*283903*/ OPC_MoveChild, 15, ++/*283905*/ OPC_CheckInteger, 1, ++/*283907*/ OPC_CheckType, MVT::i32, ++/*283909*/ OPC_MoveParent, ++/*283910*/ OPC_MoveChild, 16, ++/*283912*/ OPC_CheckInteger, 1, ++/*283914*/ OPC_CheckType, MVT::i32, ++/*283916*/ OPC_MoveParent, ++/*283917*/ OPC_MoveChild, 17, ++/*283919*/ OPC_CheckInteger, 1, ++/*283921*/ OPC_CheckType, MVT::i32, ++/*283923*/ OPC_MoveParent, ++/*283924*/ OPC_MoveChild, 18, ++/*283926*/ OPC_CheckInteger, 1, ++/*283928*/ OPC_CheckType, MVT::i32, ++/*283930*/ OPC_MoveParent, ++/*283931*/ OPC_MoveChild, 19, ++/*283933*/ OPC_CheckInteger, 1, ++/*283935*/ OPC_CheckType, MVT::i32, ++/*283937*/ OPC_MoveParent, ++/*283938*/ OPC_MoveChild, 20, ++/*283940*/ OPC_CheckInteger, 1, ++/*283942*/ OPC_CheckType, MVT::i32, ++/*283944*/ OPC_MoveParent, ++/*283945*/ OPC_MoveChild, 21, ++/*283947*/ OPC_CheckInteger, 1, ++/*283949*/ OPC_CheckType, MVT::i32, ++/*283951*/ OPC_MoveParent, ++/*283952*/ OPC_MoveChild, 22, ++/*283954*/ OPC_CheckInteger, 1, ++/*283956*/ OPC_CheckType, MVT::i32, ++/*283958*/ OPC_MoveParent, ++/*283959*/ OPC_MoveChild, 23, ++/*283961*/ OPC_CheckInteger, 1, ++/*283963*/ OPC_CheckType, MVT::i32, ++/*283965*/ OPC_MoveParent, ++/*283966*/ OPC_MoveChild, 24, ++/*283968*/ OPC_CheckInteger, 1, ++/*283970*/ OPC_CheckType, MVT::i32, ++/*283972*/ OPC_MoveParent, ++/*283973*/ OPC_MoveChild, 25, ++/*283975*/ OPC_CheckInteger, 1, ++/*283977*/ OPC_CheckType, MVT::i32, ++/*283979*/ OPC_MoveParent, ++/*283980*/ OPC_MoveChild, 26, ++/*283982*/ OPC_CheckInteger, 1, ++/*283984*/ OPC_CheckType, MVT::i32, ++/*283986*/ OPC_MoveParent, ++/*283987*/ OPC_MoveChild, 27, ++/*283989*/ OPC_CheckInteger, 1, ++/*283991*/ OPC_CheckType, MVT::i32, ++/*283993*/ OPC_MoveParent, ++/*283994*/ OPC_MoveChild, 28, ++/*283996*/ OPC_CheckInteger, 1, ++/*283998*/ OPC_CheckType, MVT::i32, ++/*284000*/ OPC_MoveParent, ++/*284001*/ OPC_MoveChild, 29, ++/*284003*/ OPC_CheckInteger, 1, ++/*284005*/ OPC_CheckType, MVT::i32, ++/*284007*/ OPC_MoveParent, ++/*284008*/ OPC_MoveChild, 30, ++/*284010*/ OPC_CheckInteger, 1, ++/*284012*/ OPC_CheckType, MVT::i32, ++/*284014*/ OPC_MoveParent, ++/*284015*/ OPC_MoveChild, 31, ++/*284017*/ OPC_CheckInteger, 1, ++/*284019*/ OPC_CheckType, MVT::i32, ++/*284021*/ OPC_MoveParent, ++/*284022*/ OPC_MoveParent, ++/*284023*/ OPC_MoveParent, ++/*284024*/ OPC_MoveParent, ++/*284025*/ OPC_MoveParent, ++/*284026*/ OPC_MoveChild1, ++/*284027*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*284030*/ OPC_CheckChild0Integer, 1, ++/*284032*/ OPC_CheckChild0Type, MVT::i32, ++/*284034*/ OPC_CheckChild1Integer, 1, ++/*284036*/ OPC_CheckChild1Type, MVT::i32, ++/*284038*/ OPC_CheckChild2Integer, 1, ++/*284040*/ OPC_CheckChild2Type, MVT::i32, ++/*284042*/ OPC_CheckChild3Integer, 1, ++/*284044*/ OPC_CheckChild3Type, MVT::i32, ++/*284046*/ OPC_CheckChild4Integer, 1, ++/*284048*/ OPC_CheckChild4Type, MVT::i32, ++/*284050*/ OPC_MoveChild5, ++/*284051*/ OPC_CheckInteger, 1, ++/*284053*/ OPC_CheckType, MVT::i32, ++/*284055*/ OPC_MoveParent, ++/*284056*/ OPC_MoveChild6, ++/*284057*/ OPC_CheckInteger, 1, ++/*284059*/ OPC_CheckType, MVT::i32, ++/*284061*/ OPC_MoveParent, ++/*284062*/ OPC_MoveChild7, ++/*284063*/ OPC_CheckInteger, 1, ++/*284065*/ OPC_CheckType, MVT::i32, ++/*284067*/ OPC_MoveParent, ++/*284068*/ OPC_MoveChild, 8, ++/*284070*/ OPC_CheckInteger, 1, ++/*284072*/ OPC_CheckType, MVT::i32, ++/*284074*/ OPC_MoveParent, ++/*284075*/ OPC_MoveChild, 9, ++/*284077*/ OPC_CheckInteger, 1, ++/*284079*/ OPC_CheckType, MVT::i32, ++/*284081*/ OPC_MoveParent, ++/*284082*/ OPC_MoveChild, 10, ++/*284084*/ OPC_CheckInteger, 1, ++/*284086*/ OPC_CheckType, MVT::i32, ++/*284088*/ OPC_MoveParent, ++/*284089*/ OPC_MoveChild, 11, ++/*284091*/ OPC_CheckInteger, 1, ++/*284093*/ OPC_CheckType, MVT::i32, ++/*284095*/ OPC_MoveParent, ++/*284096*/ OPC_MoveChild, 12, ++/*284098*/ OPC_CheckInteger, 1, ++/*284100*/ OPC_CheckType, MVT::i32, ++/*284102*/ OPC_MoveParent, ++/*284103*/ OPC_MoveChild, 13, ++/*284105*/ OPC_CheckInteger, 1, ++/*284107*/ OPC_CheckType, MVT::i32, ++/*284109*/ OPC_MoveParent, ++/*284110*/ OPC_MoveChild, 14, ++/*284112*/ OPC_CheckInteger, 1, ++/*284114*/ OPC_CheckType, MVT::i32, ++/*284116*/ OPC_MoveParent, ++/*284117*/ OPC_MoveChild, 15, ++/*284119*/ OPC_CheckInteger, 1, ++/*284121*/ OPC_CheckType, MVT::i32, ++/*284123*/ OPC_MoveParent, ++/*284124*/ OPC_MoveChild, 16, ++/*284126*/ OPC_CheckInteger, 1, ++/*284128*/ OPC_CheckType, MVT::i32, ++/*284130*/ OPC_MoveParent, ++/*284131*/ OPC_MoveChild, 17, ++/*284133*/ OPC_CheckInteger, 1, ++/*284135*/ OPC_CheckType, MVT::i32, ++/*284137*/ OPC_MoveParent, ++/*284138*/ OPC_MoveChild, 18, ++/*284140*/ OPC_CheckInteger, 1, ++/*284142*/ OPC_CheckType, MVT::i32, ++/*284144*/ OPC_MoveParent, ++/*284145*/ OPC_MoveChild, 19, ++/*284147*/ OPC_CheckInteger, 1, ++/*284149*/ OPC_CheckType, MVT::i32, ++/*284151*/ OPC_MoveParent, ++/*284152*/ OPC_MoveChild, 20, ++/*284154*/ OPC_CheckInteger, 1, ++/*284156*/ OPC_CheckType, MVT::i32, ++/*284158*/ OPC_MoveParent, ++/*284159*/ OPC_MoveChild, 21, ++/*284161*/ OPC_CheckInteger, 1, ++/*284163*/ OPC_CheckType, MVT::i32, ++/*284165*/ OPC_MoveParent, ++/*284166*/ OPC_MoveChild, 22, ++/*284168*/ OPC_CheckInteger, 1, ++/*284170*/ OPC_CheckType, MVT::i32, ++/*284172*/ OPC_MoveParent, ++/*284173*/ OPC_MoveChild, 23, ++/*284175*/ OPC_CheckInteger, 1, ++/*284177*/ OPC_CheckType, MVT::i32, ++/*284179*/ OPC_MoveParent, ++/*284180*/ OPC_MoveChild, 24, ++/*284182*/ OPC_CheckInteger, 1, ++/*284184*/ OPC_CheckType, MVT::i32, ++/*284186*/ OPC_MoveParent, ++/*284187*/ OPC_MoveChild, 25, ++/*284189*/ OPC_CheckInteger, 1, ++/*284191*/ OPC_CheckType, MVT::i32, ++/*284193*/ OPC_MoveParent, ++/*284194*/ OPC_MoveChild, 26, ++/*284196*/ OPC_CheckInteger, 1, ++/*284198*/ OPC_CheckType, MVT::i32, ++/*284200*/ OPC_MoveParent, ++/*284201*/ OPC_MoveChild, 27, ++/*284203*/ OPC_CheckInteger, 1, ++/*284205*/ OPC_CheckType, MVT::i32, ++/*284207*/ OPC_MoveParent, ++/*284208*/ OPC_MoveChild, 28, ++/*284210*/ OPC_CheckInteger, 1, ++/*284212*/ OPC_CheckType, MVT::i32, ++/*284214*/ OPC_MoveParent, ++/*284215*/ OPC_MoveChild, 29, ++/*284217*/ OPC_CheckInteger, 1, ++/*284219*/ OPC_CheckType, MVT::i32, ++/*284221*/ OPC_MoveParent, ++/*284222*/ OPC_MoveChild, 30, ++/*284224*/ OPC_CheckInteger, 1, ++/*284226*/ OPC_CheckType, MVT::i32, ++/*284228*/ OPC_MoveParent, ++/*284229*/ OPC_MoveChild, 31, ++/*284231*/ OPC_CheckInteger, 1, ++/*284233*/ OPC_CheckType, MVT::i32, ++/*284235*/ OPC_MoveParent, ++/*284236*/ OPC_CheckType, MVT::v32i8, ++/*284238*/ OPC_MoveParent, ++/*284239*/ OPC_CheckType, MVT::v32i8, ++/*284241*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*284243*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*284251*/ 0, /*End of Scope*/ ++/*284252*/ /*Scope*/ 45|128,5/*685*/, /*->284939*/ ++/*284254*/ OPC_MoveChild0, ++/*284255*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*284258*/ OPC_CheckChild0Integer, 1, ++/*284260*/ OPC_CheckChild0Type, MVT::i32, ++/*284262*/ OPC_CheckChild1Integer, 1, ++/*284264*/ OPC_CheckChild1Type, MVT::i32, ++/*284266*/ OPC_CheckChild2Integer, 1, ++/*284268*/ OPC_CheckChild2Type, MVT::i32, ++/*284270*/ OPC_CheckChild3Integer, 1, ++/*284272*/ OPC_CheckChild3Type, MVT::i32, ++/*284274*/ OPC_CheckChild4Integer, 1, ++/*284276*/ OPC_CheckChild4Type, MVT::i32, ++/*284278*/ OPC_MoveChild5, ++/*284279*/ OPC_CheckInteger, 1, ++/*284281*/ OPC_CheckType, MVT::i32, ++/*284283*/ OPC_MoveParent, ++/*284284*/ OPC_MoveChild6, ++/*284285*/ OPC_CheckInteger, 1, ++/*284287*/ OPC_CheckType, MVT::i32, ++/*284289*/ OPC_MoveParent, ++/*284290*/ OPC_MoveChild7, ++/*284291*/ OPC_CheckInteger, 1, ++/*284293*/ OPC_CheckType, MVT::i32, ++/*284295*/ OPC_MoveParent, ++/*284296*/ OPC_MoveChild, 8, ++/*284298*/ OPC_CheckInteger, 1, ++/*284300*/ OPC_CheckType, MVT::i32, ++/*284302*/ OPC_MoveParent, ++/*284303*/ OPC_MoveChild, 9, ++/*284305*/ OPC_CheckInteger, 1, ++/*284307*/ OPC_CheckType, MVT::i32, ++/*284309*/ OPC_MoveParent, ++/*284310*/ OPC_MoveChild, 10, ++/*284312*/ OPC_CheckInteger, 1, ++/*284314*/ OPC_CheckType, MVT::i32, ++/*284316*/ OPC_MoveParent, ++/*284317*/ OPC_MoveChild, 11, ++/*284319*/ OPC_CheckInteger, 1, ++/*284321*/ OPC_CheckType, MVT::i32, ++/*284323*/ OPC_MoveParent, ++/*284324*/ OPC_MoveChild, 12, ++/*284326*/ OPC_CheckInteger, 1, ++/*284328*/ OPC_CheckType, MVT::i32, ++/*284330*/ OPC_MoveParent, ++/*284331*/ OPC_MoveChild, 13, ++/*284333*/ OPC_CheckInteger, 1, ++/*284335*/ OPC_CheckType, MVT::i32, ++/*284337*/ OPC_MoveParent, ++/*284338*/ OPC_MoveChild, 14, ++/*284340*/ OPC_CheckInteger, 1, ++/*284342*/ OPC_CheckType, MVT::i32, ++/*284344*/ OPC_MoveParent, ++/*284345*/ OPC_MoveChild, 15, ++/*284347*/ OPC_CheckInteger, 1, ++/*284349*/ OPC_CheckType, MVT::i32, ++/*284351*/ OPC_MoveParent, ++/*284352*/ OPC_MoveChild, 16, ++/*284354*/ OPC_CheckInteger, 1, ++/*284356*/ OPC_CheckType, MVT::i32, ++/*284358*/ OPC_MoveParent, ++/*284359*/ OPC_MoveChild, 17, ++/*284361*/ OPC_CheckInteger, 1, ++/*284363*/ OPC_CheckType, MVT::i32, ++/*284365*/ OPC_MoveParent, ++/*284366*/ OPC_MoveChild, 18, ++/*284368*/ OPC_CheckInteger, 1, ++/*284370*/ OPC_CheckType, MVT::i32, ++/*284372*/ OPC_MoveParent, ++/*284373*/ OPC_MoveChild, 19, ++/*284375*/ OPC_CheckInteger, 1, ++/*284377*/ OPC_CheckType, MVT::i32, ++/*284379*/ OPC_MoveParent, ++/*284380*/ OPC_MoveChild, 20, ++/*284382*/ OPC_CheckInteger, 1, ++/*284384*/ OPC_CheckType, MVT::i32, ++/*284386*/ OPC_MoveParent, ++/*284387*/ OPC_MoveChild, 21, ++/*284389*/ OPC_CheckInteger, 1, ++/*284391*/ OPC_CheckType, MVT::i32, ++/*284393*/ OPC_MoveParent, ++/*284394*/ OPC_MoveChild, 22, ++/*284396*/ OPC_CheckInteger, 1, ++/*284398*/ OPC_CheckType, MVT::i32, ++/*284400*/ OPC_MoveParent, ++/*284401*/ OPC_MoveChild, 23, ++/*284403*/ OPC_CheckInteger, 1, ++/*284405*/ OPC_CheckType, MVT::i32, ++/*284407*/ OPC_MoveParent, ++/*284408*/ OPC_MoveChild, 24, ++/*284410*/ OPC_CheckInteger, 1, ++/*284412*/ OPC_CheckType, MVT::i32, ++/*284414*/ OPC_MoveParent, ++/*284415*/ OPC_MoveChild, 25, ++/*284417*/ OPC_CheckInteger, 1, ++/*284419*/ OPC_CheckType, MVT::i32, ++/*284421*/ OPC_MoveParent, ++/*284422*/ OPC_MoveChild, 26, ++/*284424*/ OPC_CheckInteger, 1, ++/*284426*/ OPC_CheckType, MVT::i32, ++/*284428*/ OPC_MoveParent, ++/*284429*/ OPC_MoveChild, 27, ++/*284431*/ OPC_CheckInteger, 1, ++/*284433*/ OPC_CheckType, MVT::i32, ++/*284435*/ OPC_MoveParent, ++/*284436*/ OPC_MoveChild, 28, ++/*284438*/ OPC_CheckInteger, 1, ++/*284440*/ OPC_CheckType, MVT::i32, ++/*284442*/ OPC_MoveParent, ++/*284443*/ OPC_MoveChild, 29, ++/*284445*/ OPC_CheckInteger, 1, ++/*284447*/ OPC_CheckType, MVT::i32, ++/*284449*/ OPC_MoveParent, ++/*284450*/ OPC_MoveChild, 30, ++/*284452*/ OPC_CheckInteger, 1, ++/*284454*/ OPC_CheckType, MVT::i32, ++/*284456*/ OPC_MoveParent, ++/*284457*/ OPC_MoveChild, 31, ++/*284459*/ OPC_CheckInteger, 1, ++/*284461*/ OPC_CheckType, MVT::i32, ++/*284463*/ OPC_MoveParent, ++/*284464*/ OPC_MoveParent, ++/*284465*/ OPC_MoveChild1, ++/*284466*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*284469*/ OPC_Scope, 104|128,1/*232*/, /*->284704*/ // 2 children in Scope ++/*284472*/ OPC_CheckChild0Same, 0, ++/*284474*/ OPC_CheckChild1Same, 1, ++/*284476*/ OPC_MoveParent, ++/*284477*/ OPC_MoveParent, ++/*284478*/ OPC_MoveParent, ++/*284479*/ OPC_MoveChild1, ++/*284480*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*284483*/ OPC_CheckChild0Integer, 1, ++/*284485*/ OPC_CheckChild0Type, MVT::i32, ++/*284487*/ OPC_CheckChild1Integer, 1, ++/*284489*/ OPC_CheckChild1Type, MVT::i32, ++/*284491*/ OPC_CheckChild2Integer, 1, ++/*284493*/ OPC_CheckChild2Type, MVT::i32, ++/*284495*/ OPC_CheckChild3Integer, 1, ++/*284497*/ OPC_CheckChild3Type, MVT::i32, ++/*284499*/ OPC_CheckChild4Integer, 1, ++/*284501*/ OPC_CheckChild4Type, MVT::i32, ++/*284503*/ OPC_MoveChild5, ++/*284504*/ OPC_CheckInteger, 1, ++/*284506*/ OPC_CheckType, MVT::i32, ++/*284508*/ OPC_MoveParent, ++/*284509*/ OPC_MoveChild6, ++/*284510*/ OPC_CheckInteger, 1, ++/*284512*/ OPC_CheckType, MVT::i32, ++/*284514*/ OPC_MoveParent, ++/*284515*/ OPC_MoveChild7, ++/*284516*/ OPC_CheckInteger, 1, ++/*284518*/ OPC_CheckType, MVT::i32, ++/*284520*/ OPC_MoveParent, ++/*284521*/ OPC_MoveChild, 8, ++/*284523*/ OPC_CheckInteger, 1, ++/*284525*/ OPC_CheckType, MVT::i32, ++/*284527*/ OPC_MoveParent, ++/*284528*/ OPC_MoveChild, 9, ++/*284530*/ OPC_CheckInteger, 1, ++/*284532*/ OPC_CheckType, MVT::i32, ++/*284534*/ OPC_MoveParent, ++/*284535*/ OPC_MoveChild, 10, ++/*284537*/ OPC_CheckInteger, 1, ++/*284539*/ OPC_CheckType, MVT::i32, ++/*284541*/ OPC_MoveParent, ++/*284542*/ OPC_MoveChild, 11, ++/*284544*/ OPC_CheckInteger, 1, ++/*284546*/ OPC_CheckType, MVT::i32, ++/*284548*/ OPC_MoveParent, ++/*284549*/ OPC_MoveChild, 12, ++/*284551*/ OPC_CheckInteger, 1, ++/*284553*/ OPC_CheckType, MVT::i32, ++/*284555*/ OPC_MoveParent, ++/*284556*/ OPC_MoveChild, 13, ++/*284558*/ OPC_CheckInteger, 1, ++/*284560*/ OPC_CheckType, MVT::i32, ++/*284562*/ OPC_MoveParent, ++/*284563*/ OPC_MoveChild, 14, ++/*284565*/ OPC_CheckInteger, 1, ++/*284567*/ OPC_CheckType, MVT::i32, ++/*284569*/ OPC_MoveParent, ++/*284570*/ OPC_MoveChild, 15, ++/*284572*/ OPC_CheckInteger, 1, ++/*284574*/ OPC_CheckType, MVT::i32, ++/*284576*/ OPC_MoveParent, ++/*284577*/ OPC_MoveChild, 16, ++/*284579*/ OPC_CheckInteger, 1, ++/*284581*/ OPC_CheckType, MVT::i32, ++/*284583*/ OPC_MoveParent, ++/*284584*/ OPC_MoveChild, 17, ++/*284586*/ OPC_CheckInteger, 1, ++/*284588*/ OPC_CheckType, MVT::i32, ++/*284590*/ OPC_MoveParent, ++/*284591*/ OPC_MoveChild, 18, ++/*284593*/ OPC_CheckInteger, 1, ++/*284595*/ OPC_CheckType, MVT::i32, ++/*284597*/ OPC_MoveParent, ++/*284598*/ OPC_MoveChild, 19, ++/*284600*/ OPC_CheckInteger, 1, ++/*284602*/ OPC_CheckType, MVT::i32, ++/*284604*/ OPC_MoveParent, ++/*284605*/ OPC_MoveChild, 20, ++/*284607*/ OPC_CheckInteger, 1, ++/*284609*/ OPC_CheckType, MVT::i32, ++/*284611*/ OPC_MoveParent, ++/*284612*/ OPC_MoveChild, 21, ++/*284614*/ OPC_CheckInteger, 1, ++/*284616*/ OPC_CheckType, MVT::i32, ++/*284618*/ OPC_MoveParent, ++/*284619*/ OPC_MoveChild, 22, ++/*284621*/ OPC_CheckInteger, 1, ++/*284623*/ OPC_CheckType, MVT::i32, ++/*284625*/ OPC_MoveParent, ++/*284626*/ OPC_MoveChild, 23, ++/*284628*/ OPC_CheckInteger, 1, ++/*284630*/ OPC_CheckType, MVT::i32, ++/*284632*/ OPC_MoveParent, ++/*284633*/ OPC_MoveChild, 24, ++/*284635*/ OPC_CheckInteger, 1, ++/*284637*/ OPC_CheckType, MVT::i32, ++/*284639*/ OPC_MoveParent, ++/*284640*/ OPC_MoveChild, 25, ++/*284642*/ OPC_CheckInteger, 1, ++/*284644*/ OPC_CheckType, MVT::i32, ++/*284646*/ OPC_MoveParent, ++/*284647*/ OPC_MoveChild, 26, ++/*284649*/ OPC_CheckInteger, 1, ++/*284651*/ OPC_CheckType, MVT::i32, ++/*284653*/ OPC_MoveParent, ++/*284654*/ OPC_MoveChild, 27, ++/*284656*/ OPC_CheckInteger, 1, ++/*284658*/ OPC_CheckType, MVT::i32, ++/*284660*/ OPC_MoveParent, ++/*284661*/ OPC_MoveChild, 28, ++/*284663*/ OPC_CheckInteger, 1, ++/*284665*/ OPC_CheckType, MVT::i32, ++/*284667*/ OPC_MoveParent, ++/*284668*/ OPC_MoveChild, 29, ++/*284670*/ OPC_CheckInteger, 1, ++/*284672*/ OPC_CheckType, MVT::i32, ++/*284674*/ OPC_MoveParent, ++/*284675*/ OPC_MoveChild, 30, ++/*284677*/ OPC_CheckInteger, 1, ++/*284679*/ OPC_CheckType, MVT::i32, ++/*284681*/ OPC_MoveParent, ++/*284682*/ OPC_MoveChild, 31, ++/*284684*/ OPC_CheckInteger, 1, ++/*284686*/ OPC_CheckType, MVT::i32, ++/*284688*/ OPC_MoveParent, ++/*284689*/ OPC_CheckType, MVT::v32i8, ++/*284691*/ OPC_MoveParent, ++/*284692*/ OPC_CheckType, MVT::v32i8, ++/*284694*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*284696*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*284704*/ /*Scope*/ 104|128,1/*232*/, /*->284938*/ ++/*284706*/ OPC_CheckChild0Same, 1, ++/*284708*/ OPC_CheckChild1Same, 0, ++/*284710*/ OPC_MoveParent, ++/*284711*/ OPC_MoveParent, ++/*284712*/ OPC_MoveParent, ++/*284713*/ OPC_MoveChild1, ++/*284714*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*284717*/ OPC_CheckChild0Integer, 1, ++/*284719*/ OPC_CheckChild0Type, MVT::i32, ++/*284721*/ OPC_CheckChild1Integer, 1, ++/*284723*/ OPC_CheckChild1Type, MVT::i32, ++/*284725*/ OPC_CheckChild2Integer, 1, ++/*284727*/ OPC_CheckChild2Type, MVT::i32, ++/*284729*/ OPC_CheckChild3Integer, 1, ++/*284731*/ OPC_CheckChild3Type, MVT::i32, ++/*284733*/ OPC_CheckChild4Integer, 1, ++/*284735*/ OPC_CheckChild4Type, MVT::i32, ++/*284737*/ OPC_MoveChild5, ++/*284738*/ OPC_CheckInteger, 1, ++/*284740*/ OPC_CheckType, MVT::i32, ++/*284742*/ OPC_MoveParent, ++/*284743*/ OPC_MoveChild6, ++/*284744*/ OPC_CheckInteger, 1, ++/*284746*/ OPC_CheckType, MVT::i32, ++/*284748*/ OPC_MoveParent, ++/*284749*/ OPC_MoveChild7, ++/*284750*/ OPC_CheckInteger, 1, ++/*284752*/ OPC_CheckType, MVT::i32, ++/*284754*/ OPC_MoveParent, ++/*284755*/ OPC_MoveChild, 8, ++/*284757*/ OPC_CheckInteger, 1, ++/*284759*/ OPC_CheckType, MVT::i32, ++/*284761*/ OPC_MoveParent, ++/*284762*/ OPC_MoveChild, 9, ++/*284764*/ OPC_CheckInteger, 1, ++/*284766*/ OPC_CheckType, MVT::i32, ++/*284768*/ OPC_MoveParent, ++/*284769*/ OPC_MoveChild, 10, ++/*284771*/ OPC_CheckInteger, 1, ++/*284773*/ OPC_CheckType, MVT::i32, ++/*284775*/ OPC_MoveParent, ++/*284776*/ OPC_MoveChild, 11, ++/*284778*/ OPC_CheckInteger, 1, ++/*284780*/ OPC_CheckType, MVT::i32, ++/*284782*/ OPC_MoveParent, ++/*284783*/ OPC_MoveChild, 12, ++/*284785*/ OPC_CheckInteger, 1, ++/*284787*/ OPC_CheckType, MVT::i32, ++/*284789*/ OPC_MoveParent, ++/*284790*/ OPC_MoveChild, 13, ++/*284792*/ OPC_CheckInteger, 1, ++/*284794*/ OPC_CheckType, MVT::i32, ++/*284796*/ OPC_MoveParent, ++/*284797*/ OPC_MoveChild, 14, ++/*284799*/ OPC_CheckInteger, 1, ++/*284801*/ OPC_CheckType, MVT::i32, ++/*284803*/ OPC_MoveParent, ++/*284804*/ OPC_MoveChild, 15, ++/*284806*/ OPC_CheckInteger, 1, ++/*284808*/ OPC_CheckType, MVT::i32, ++/*284810*/ OPC_MoveParent, ++/*284811*/ OPC_MoveChild, 16, ++/*284813*/ OPC_CheckInteger, 1, ++/*284815*/ OPC_CheckType, MVT::i32, ++/*284817*/ OPC_MoveParent, ++/*284818*/ OPC_MoveChild, 17, ++/*284820*/ OPC_CheckInteger, 1, ++/*284822*/ OPC_CheckType, MVT::i32, ++/*284824*/ OPC_MoveParent, ++/*284825*/ OPC_MoveChild, 18, ++/*284827*/ OPC_CheckInteger, 1, ++/*284829*/ OPC_CheckType, MVT::i32, ++/*284831*/ OPC_MoveParent, ++/*284832*/ OPC_MoveChild, 19, ++/*284834*/ OPC_CheckInteger, 1, ++/*284836*/ OPC_CheckType, MVT::i32, ++/*284838*/ OPC_MoveParent, ++/*284839*/ OPC_MoveChild, 20, ++/*284841*/ OPC_CheckInteger, 1, ++/*284843*/ OPC_CheckType, MVT::i32, ++/*284845*/ OPC_MoveParent, ++/*284846*/ OPC_MoveChild, 21, ++/*284848*/ OPC_CheckInteger, 1, ++/*284850*/ OPC_CheckType, MVT::i32, ++/*284852*/ OPC_MoveParent, ++/*284853*/ OPC_MoveChild, 22, ++/*284855*/ OPC_CheckInteger, 1, ++/*284857*/ OPC_CheckType, MVT::i32, ++/*284859*/ OPC_MoveParent, ++/*284860*/ OPC_MoveChild, 23, ++/*284862*/ OPC_CheckInteger, 1, ++/*284864*/ OPC_CheckType, MVT::i32, ++/*284866*/ OPC_MoveParent, ++/*284867*/ OPC_MoveChild, 24, ++/*284869*/ OPC_CheckInteger, 1, ++/*284871*/ OPC_CheckType, MVT::i32, ++/*284873*/ OPC_MoveParent, ++/*284874*/ OPC_MoveChild, 25, ++/*284876*/ OPC_CheckInteger, 1, ++/*284878*/ OPC_CheckType, MVT::i32, ++/*284880*/ OPC_MoveParent, ++/*284881*/ OPC_MoveChild, 26, ++/*284883*/ OPC_CheckInteger, 1, ++/*284885*/ OPC_CheckType, MVT::i32, ++/*284887*/ OPC_MoveParent, ++/*284888*/ OPC_MoveChild, 27, ++/*284890*/ OPC_CheckInteger, 1, ++/*284892*/ OPC_CheckType, MVT::i32, ++/*284894*/ OPC_MoveParent, ++/*284895*/ OPC_MoveChild, 28, ++/*284897*/ OPC_CheckInteger, 1, ++/*284899*/ OPC_CheckType, MVT::i32, ++/*284901*/ OPC_MoveParent, ++/*284902*/ OPC_MoveChild, 29, ++/*284904*/ OPC_CheckInteger, 1, ++/*284906*/ OPC_CheckType, MVT::i32, ++/*284908*/ OPC_MoveParent, ++/*284909*/ OPC_MoveChild, 30, ++/*284911*/ OPC_CheckInteger, 1, ++/*284913*/ OPC_CheckType, MVT::i32, ++/*284915*/ OPC_MoveParent, ++/*284916*/ OPC_MoveChild, 31, ++/*284918*/ OPC_CheckInteger, 1, ++/*284920*/ OPC_CheckType, MVT::i32, ++/*284922*/ OPC_MoveParent, ++/*284923*/ OPC_CheckType, MVT::v32i8, ++/*284925*/ OPC_MoveParent, ++/*284926*/ OPC_CheckType, MVT::v32i8, ++/*284928*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*284930*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*284938*/ 0, /*End of Scope*/ ++/*284939*/ 0, /*End of Scope*/ ++/*284940*/ /*Scope*/ 88|128,43/*5592*/, /*->290534*/ ++/*284942*/ OPC_MoveChild0, ++/*284943*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*284946*/ OPC_CheckChild0Integer, 1, ++/*284948*/ OPC_CheckChild0Type, MVT::i32, ++/*284950*/ OPC_CheckChild1Integer, 1, ++/*284952*/ OPC_CheckChild1Type, MVT::i32, ++/*284954*/ OPC_CheckChild2Integer, 1, ++/*284956*/ OPC_CheckChild2Type, MVT::i32, ++/*284958*/ OPC_CheckChild3Integer, 1, ++/*284960*/ OPC_CheckChild3Type, MVT::i32, ++/*284962*/ OPC_CheckChild4Integer, 1, ++/*284964*/ OPC_CheckChild4Type, MVT::i32, ++/*284966*/ OPC_MoveChild5, ++/*284967*/ OPC_CheckInteger, 1, ++/*284969*/ OPC_CheckType, MVT::i32, ++/*284971*/ OPC_MoveParent, ++/*284972*/ OPC_MoveChild6, ++/*284973*/ OPC_CheckInteger, 1, ++/*284975*/ OPC_CheckType, MVT::i32, ++/*284977*/ OPC_MoveParent, ++/*284978*/ OPC_MoveChild7, ++/*284979*/ OPC_CheckInteger, 1, ++/*284981*/ OPC_CheckType, MVT::i32, ++/*284983*/ OPC_MoveParent, ++/*284984*/ OPC_MoveChild, 8, ++/*284986*/ OPC_CheckInteger, 1, ++/*284988*/ OPC_CheckType, MVT::i32, ++/*284990*/ OPC_MoveParent, ++/*284991*/ OPC_MoveChild, 9, ++/*284993*/ OPC_CheckInteger, 1, ++/*284995*/ OPC_CheckType, MVT::i32, ++/*284997*/ OPC_MoveParent, ++/*284998*/ OPC_MoveChild, 10, ++/*285000*/ OPC_CheckInteger, 1, ++/*285002*/ OPC_CheckType, MVT::i32, ++/*285004*/ OPC_MoveParent, ++/*285005*/ OPC_MoveChild, 11, ++/*285007*/ OPC_CheckInteger, 1, ++/*285009*/ OPC_CheckType, MVT::i32, ++/*285011*/ OPC_MoveParent, ++/*285012*/ OPC_MoveChild, 12, ++/*285014*/ OPC_CheckInteger, 1, ++/*285016*/ OPC_CheckType, MVT::i32, ++/*285018*/ OPC_MoveParent, ++/*285019*/ OPC_MoveChild, 13, ++/*285021*/ OPC_CheckInteger, 1, ++/*285023*/ OPC_CheckType, MVT::i32, ++/*285025*/ OPC_MoveParent, ++/*285026*/ OPC_MoveChild, 14, ++/*285028*/ OPC_CheckInteger, 1, ++/*285030*/ OPC_CheckType, MVT::i32, ++/*285032*/ OPC_MoveParent, ++/*285033*/ OPC_MoveChild, 15, ++/*285035*/ OPC_CheckInteger, 1, ++/*285037*/ OPC_CheckType, MVT::i32, ++/*285039*/ OPC_MoveParent, ++/*285040*/ OPC_MoveChild, 16, ++/*285042*/ OPC_CheckInteger, 1, ++/*285044*/ OPC_CheckType, MVT::i32, ++/*285046*/ OPC_MoveParent, ++/*285047*/ OPC_MoveChild, 17, ++/*285049*/ OPC_CheckInteger, 1, ++/*285051*/ OPC_CheckType, MVT::i32, ++/*285053*/ OPC_MoveParent, ++/*285054*/ OPC_MoveChild, 18, ++/*285056*/ OPC_CheckInteger, 1, ++/*285058*/ OPC_CheckType, MVT::i32, ++/*285060*/ OPC_MoveParent, ++/*285061*/ OPC_MoveChild, 19, ++/*285063*/ OPC_CheckInteger, 1, ++/*285065*/ OPC_CheckType, MVT::i32, ++/*285067*/ OPC_MoveParent, ++/*285068*/ OPC_MoveChild, 20, ++/*285070*/ OPC_CheckInteger, 1, ++/*285072*/ OPC_CheckType, MVT::i32, ++/*285074*/ OPC_MoveParent, ++/*285075*/ OPC_MoveChild, 21, ++/*285077*/ OPC_CheckInteger, 1, ++/*285079*/ OPC_CheckType, MVT::i32, ++/*285081*/ OPC_MoveParent, ++/*285082*/ OPC_MoveChild, 22, ++/*285084*/ OPC_CheckInteger, 1, ++/*285086*/ OPC_CheckType, MVT::i32, ++/*285088*/ OPC_MoveParent, ++/*285089*/ OPC_MoveChild, 23, ++/*285091*/ OPC_CheckInteger, 1, ++/*285093*/ OPC_CheckType, MVT::i32, ++/*285095*/ OPC_MoveParent, ++/*285096*/ OPC_MoveChild, 24, ++/*285098*/ OPC_CheckInteger, 1, ++/*285100*/ OPC_CheckType, MVT::i32, ++/*285102*/ OPC_MoveParent, ++/*285103*/ OPC_MoveChild, 25, ++/*285105*/ OPC_CheckInteger, 1, ++/*285107*/ OPC_CheckType, MVT::i32, ++/*285109*/ OPC_MoveParent, ++/*285110*/ OPC_MoveChild, 26, ++/*285112*/ OPC_CheckInteger, 1, ++/*285114*/ OPC_CheckType, MVT::i32, ++/*285116*/ OPC_MoveParent, ++/*285117*/ OPC_MoveChild, 27, ++/*285119*/ OPC_CheckInteger, 1, ++/*285121*/ OPC_CheckType, MVT::i32, ++/*285123*/ OPC_MoveParent, ++/*285124*/ OPC_MoveChild, 28, ++/*285126*/ OPC_CheckInteger, 1, ++/*285128*/ OPC_CheckType, MVT::i32, ++/*285130*/ OPC_MoveParent, ++/*285131*/ OPC_MoveChild, 29, ++/*285133*/ OPC_CheckInteger, 1, ++/*285135*/ OPC_CheckType, MVT::i32, ++/*285137*/ OPC_MoveParent, ++/*285138*/ OPC_MoveChild, 30, ++/*285140*/ OPC_CheckInteger, 1, ++/*285142*/ OPC_CheckType, MVT::i32, ++/*285144*/ OPC_MoveParent, ++/*285145*/ OPC_MoveChild, 31, ++/*285147*/ OPC_CheckInteger, 1, ++/*285149*/ OPC_CheckType, MVT::i32, ++/*285151*/ OPC_MoveParent, ++/*285152*/ OPC_MoveParent, ++/*285153*/ OPC_RecordChild1, // #0 = $b ++/*285154*/ OPC_MoveParent, ++/*285155*/ OPC_RecordChild1, // #1 = $a ++/*285156*/ OPC_MoveParent, ++/*285157*/ OPC_MoveChild1, ++/*285158*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*285161*/ OPC_CheckChild0Integer, 7, ++/*285163*/ OPC_CheckChild0Type, MVT::i32, ++/*285165*/ OPC_CheckChild1Integer, 7, ++/*285167*/ OPC_CheckChild1Type, MVT::i32, ++/*285169*/ OPC_CheckChild2Integer, 7, ++/*285171*/ OPC_CheckChild2Type, MVT::i32, ++/*285173*/ OPC_CheckChild3Integer, 7, ++/*285175*/ OPC_CheckChild3Type, MVT::i32, ++/*285177*/ OPC_CheckChild4Integer, 7, ++/*285179*/ OPC_CheckChild4Type, MVT::i32, ++/*285181*/ OPC_MoveChild5, ++/*285182*/ OPC_CheckInteger, 7, ++/*285184*/ OPC_CheckType, MVT::i32, ++/*285186*/ OPC_MoveParent, ++/*285187*/ OPC_MoveChild6, ++/*285188*/ OPC_CheckInteger, 7, ++/*285190*/ OPC_CheckType, MVT::i32, ++/*285192*/ OPC_MoveParent, ++/*285193*/ OPC_MoveChild7, ++/*285194*/ OPC_CheckInteger, 7, ++/*285196*/ OPC_CheckType, MVT::i32, ++/*285198*/ OPC_MoveParent, ++/*285199*/ OPC_MoveChild, 8, ++/*285201*/ OPC_CheckInteger, 7, ++/*285203*/ OPC_CheckType, MVT::i32, ++/*285205*/ OPC_MoveParent, ++/*285206*/ OPC_MoveChild, 9, ++/*285208*/ OPC_CheckInteger, 7, ++/*285210*/ OPC_CheckType, MVT::i32, ++/*285212*/ OPC_MoveParent, ++/*285213*/ OPC_MoveChild, 10, ++/*285215*/ OPC_CheckInteger, 7, ++/*285217*/ OPC_CheckType, MVT::i32, ++/*285219*/ OPC_MoveParent, ++/*285220*/ OPC_MoveChild, 11, ++/*285222*/ OPC_CheckInteger, 7, ++/*285224*/ OPC_CheckType, MVT::i32, ++/*285226*/ OPC_MoveParent, ++/*285227*/ OPC_MoveChild, 12, ++/*285229*/ OPC_CheckInteger, 7, ++/*285231*/ OPC_CheckType, MVT::i32, ++/*285233*/ OPC_MoveParent, ++/*285234*/ OPC_MoveChild, 13, ++/*285236*/ OPC_CheckInteger, 7, ++/*285238*/ OPC_CheckType, MVT::i32, ++/*285240*/ OPC_MoveParent, ++/*285241*/ OPC_MoveChild, 14, ++/*285243*/ OPC_CheckInteger, 7, ++/*285245*/ OPC_CheckType, MVT::i32, ++/*285247*/ OPC_MoveParent, ++/*285248*/ OPC_MoveChild, 15, ++/*285250*/ OPC_CheckInteger, 7, ++/*285252*/ OPC_CheckType, MVT::i32, ++/*285254*/ OPC_MoveParent, ++/*285255*/ OPC_MoveChild, 16, ++/*285257*/ OPC_CheckInteger, 7, ++/*285259*/ OPC_CheckType, MVT::i32, ++/*285261*/ OPC_MoveParent, ++/*285262*/ OPC_MoveChild, 17, ++/*285264*/ OPC_CheckInteger, 7, ++/*285266*/ OPC_CheckType, MVT::i32, ++/*285268*/ OPC_MoveParent, ++/*285269*/ OPC_MoveChild, 18, ++/*285271*/ OPC_CheckInteger, 7, ++/*285273*/ OPC_CheckType, MVT::i32, ++/*285275*/ OPC_MoveParent, ++/*285276*/ OPC_MoveChild, 19, ++/*285278*/ OPC_CheckInteger, 7, ++/*285280*/ OPC_CheckType, MVT::i32, ++/*285282*/ OPC_MoveParent, ++/*285283*/ OPC_MoveChild, 20, ++/*285285*/ OPC_CheckInteger, 7, ++/*285287*/ OPC_CheckType, MVT::i32, ++/*285289*/ OPC_MoveParent, ++/*285290*/ OPC_MoveChild, 21, ++/*285292*/ OPC_CheckInteger, 7, ++/*285294*/ OPC_CheckType, MVT::i32, ++/*285296*/ OPC_MoveParent, ++/*285297*/ OPC_MoveChild, 22, ++/*285299*/ OPC_CheckInteger, 7, ++/*285301*/ OPC_CheckType, MVT::i32, ++/*285303*/ OPC_MoveParent, ++/*285304*/ OPC_MoveChild, 23, ++/*285306*/ OPC_CheckInteger, 7, ++/*285308*/ OPC_CheckType, MVT::i32, ++/*285310*/ OPC_MoveParent, ++/*285311*/ OPC_MoveChild, 24, ++/*285313*/ OPC_CheckInteger, 7, ++/*285315*/ OPC_CheckType, MVT::i32, ++/*285317*/ OPC_MoveParent, ++/*285318*/ OPC_MoveChild, 25, ++/*285320*/ OPC_CheckInteger, 7, ++/*285322*/ OPC_CheckType, MVT::i32, ++/*285324*/ OPC_MoveParent, ++/*285325*/ OPC_MoveChild, 26, ++/*285327*/ OPC_CheckInteger, 7, ++/*285329*/ OPC_CheckType, MVT::i32, ++/*285331*/ OPC_MoveParent, ++/*285332*/ OPC_MoveChild, 27, ++/*285334*/ OPC_CheckInteger, 7, ++/*285336*/ OPC_CheckType, MVT::i32, ++/*285338*/ OPC_MoveParent, ++/*285339*/ OPC_MoveChild, 28, ++/*285341*/ OPC_CheckInteger, 7, ++/*285343*/ OPC_CheckType, MVT::i32, ++/*285345*/ OPC_MoveParent, ++/*285346*/ OPC_MoveChild, 29, ++/*285348*/ OPC_CheckInteger, 7, ++/*285350*/ OPC_CheckType, MVT::i32, ++/*285352*/ OPC_MoveParent, ++/*285353*/ OPC_MoveChild, 30, ++/*285355*/ OPC_CheckInteger, 7, ++/*285357*/ OPC_CheckType, MVT::i32, ++/*285359*/ OPC_MoveParent, ++/*285360*/ OPC_MoveChild, 31, ++/*285362*/ OPC_CheckInteger, 7, ++/*285364*/ OPC_CheckType, MVT::i32, ++/*285366*/ OPC_MoveParent, ++/*285367*/ OPC_CheckType, MVT::v32i8, ++/*285369*/ OPC_MoveParent, ++/*285370*/ OPC_MoveParent, ++/*285371*/ OPC_MoveChild1, ++/*285372*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*285375*/ OPC_Scope, 116|128,20/*2676*/, /*->288054*/ // 4 children in Scope ++/*285378*/ OPC_MoveChild0, ++/*285379*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*285382*/ OPC_Scope, 59|128,3/*443*/, /*->285828*/ // 6 children in Scope ++/*285385*/ OPC_MoveChild0, ++/*285386*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*285389*/ OPC_CheckChild0Integer, 1, ++/*285391*/ OPC_CheckChild0Type, MVT::i32, ++/*285393*/ OPC_CheckChild1Integer, 1, ++/*285395*/ OPC_CheckChild1Type, MVT::i32, ++/*285397*/ OPC_CheckChild2Integer, 1, ++/*285399*/ OPC_CheckChild2Type, MVT::i32, ++/*285401*/ OPC_CheckChild3Integer, 1, ++/*285403*/ OPC_CheckChild3Type, MVT::i32, ++/*285405*/ OPC_CheckChild4Integer, 1, ++/*285407*/ OPC_CheckChild4Type, MVT::i32, ++/*285409*/ OPC_MoveChild5, ++/*285410*/ OPC_CheckInteger, 1, ++/*285412*/ OPC_CheckType, MVT::i32, ++/*285414*/ OPC_MoveParent, ++/*285415*/ OPC_MoveChild6, ++/*285416*/ OPC_CheckInteger, 1, ++/*285418*/ OPC_CheckType, MVT::i32, ++/*285420*/ OPC_MoveParent, ++/*285421*/ OPC_MoveChild7, ++/*285422*/ OPC_CheckInteger, 1, ++/*285424*/ OPC_CheckType, MVT::i32, ++/*285426*/ OPC_MoveParent, ++/*285427*/ OPC_MoveChild, 8, ++/*285429*/ OPC_CheckInteger, 1, ++/*285431*/ OPC_CheckType, MVT::i32, ++/*285433*/ OPC_MoveParent, ++/*285434*/ OPC_MoveChild, 9, ++/*285436*/ OPC_CheckInteger, 1, ++/*285438*/ OPC_CheckType, MVT::i32, ++/*285440*/ OPC_MoveParent, ++/*285441*/ OPC_MoveChild, 10, ++/*285443*/ OPC_CheckInteger, 1, ++/*285445*/ OPC_CheckType, MVT::i32, ++/*285447*/ OPC_MoveParent, ++/*285448*/ OPC_MoveChild, 11, ++/*285450*/ OPC_CheckInteger, 1, ++/*285452*/ OPC_CheckType, MVT::i32, ++/*285454*/ OPC_MoveParent, ++/*285455*/ OPC_MoveChild, 12, ++/*285457*/ OPC_CheckInteger, 1, ++/*285459*/ OPC_CheckType, MVT::i32, ++/*285461*/ OPC_MoveParent, ++/*285462*/ OPC_MoveChild, 13, ++/*285464*/ OPC_CheckInteger, 1, ++/*285466*/ OPC_CheckType, MVT::i32, ++/*285468*/ OPC_MoveParent, ++/*285469*/ OPC_MoveChild, 14, ++/*285471*/ OPC_CheckInteger, 1, ++/*285473*/ OPC_CheckType, MVT::i32, ++/*285475*/ OPC_MoveParent, ++/*285476*/ OPC_MoveChild, 15, ++/*285478*/ OPC_CheckInteger, 1, ++/*285480*/ OPC_CheckType, MVT::i32, ++/*285482*/ OPC_MoveParent, ++/*285483*/ OPC_MoveChild, 16, ++/*285485*/ OPC_CheckInteger, 1, ++/*285487*/ OPC_CheckType, MVT::i32, ++/*285489*/ OPC_MoveParent, ++/*285490*/ OPC_MoveChild, 17, ++/*285492*/ OPC_CheckInteger, 1, ++/*285494*/ OPC_CheckType, MVT::i32, ++/*285496*/ OPC_MoveParent, ++/*285497*/ OPC_MoveChild, 18, ++/*285499*/ OPC_CheckInteger, 1, ++/*285501*/ OPC_CheckType, MVT::i32, ++/*285503*/ OPC_MoveParent, ++/*285504*/ OPC_MoveChild, 19, ++/*285506*/ OPC_CheckInteger, 1, ++/*285508*/ OPC_CheckType, MVT::i32, ++/*285510*/ OPC_MoveParent, ++/*285511*/ OPC_MoveChild, 20, ++/*285513*/ OPC_CheckInteger, 1, ++/*285515*/ OPC_CheckType, MVT::i32, ++/*285517*/ OPC_MoveParent, ++/*285518*/ OPC_MoveChild, 21, ++/*285520*/ OPC_CheckInteger, 1, ++/*285522*/ OPC_CheckType, MVT::i32, ++/*285524*/ OPC_MoveParent, ++/*285525*/ OPC_MoveChild, 22, ++/*285527*/ OPC_CheckInteger, 1, ++/*285529*/ OPC_CheckType, MVT::i32, ++/*285531*/ OPC_MoveParent, ++/*285532*/ OPC_MoveChild, 23, ++/*285534*/ OPC_CheckInteger, 1, ++/*285536*/ OPC_CheckType, MVT::i32, ++/*285538*/ OPC_MoveParent, ++/*285539*/ OPC_MoveChild, 24, ++/*285541*/ OPC_CheckInteger, 1, ++/*285543*/ OPC_CheckType, MVT::i32, ++/*285545*/ OPC_MoveParent, ++/*285546*/ OPC_MoveChild, 25, ++/*285548*/ OPC_CheckInteger, 1, ++/*285550*/ OPC_CheckType, MVT::i32, ++/*285552*/ OPC_MoveParent, ++/*285553*/ OPC_MoveChild, 26, ++/*285555*/ OPC_CheckInteger, 1, ++/*285557*/ OPC_CheckType, MVT::i32, ++/*285559*/ OPC_MoveParent, ++/*285560*/ OPC_MoveChild, 27, ++/*285562*/ OPC_CheckInteger, 1, ++/*285564*/ OPC_CheckType, MVT::i32, ++/*285566*/ OPC_MoveParent, ++/*285567*/ OPC_MoveChild, 28, ++/*285569*/ OPC_CheckInteger, 1, ++/*285571*/ OPC_CheckType, MVT::i32, ++/*285573*/ OPC_MoveParent, ++/*285574*/ OPC_MoveChild, 29, ++/*285576*/ OPC_CheckInteger, 1, ++/*285578*/ OPC_CheckType, MVT::i32, ++/*285580*/ OPC_MoveParent, ++/*285581*/ OPC_MoveChild, 30, ++/*285583*/ OPC_CheckInteger, 1, ++/*285585*/ OPC_CheckType, MVT::i32, ++/*285587*/ OPC_MoveParent, ++/*285588*/ OPC_MoveChild, 31, ++/*285590*/ OPC_CheckInteger, 1, ++/*285592*/ OPC_CheckType, MVT::i32, ++/*285594*/ OPC_MoveParent, ++/*285595*/ OPC_MoveParent, ++/*285596*/ OPC_CheckChild1Same, 1, ++/*285598*/ OPC_MoveParent, ++/*285599*/ OPC_CheckChild1Same, 0, ++/*285601*/ OPC_MoveParent, ++/*285602*/ OPC_MoveParent, ++/*285603*/ OPC_MoveChild1, ++/*285604*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*285607*/ OPC_CheckChild0Integer, 1, ++/*285609*/ OPC_CheckChild0Type, MVT::i32, ++/*285611*/ OPC_CheckChild1Integer, 1, ++/*285613*/ OPC_CheckChild1Type, MVT::i32, ++/*285615*/ OPC_CheckChild2Integer, 1, ++/*285617*/ OPC_CheckChild2Type, MVT::i32, ++/*285619*/ OPC_CheckChild3Integer, 1, ++/*285621*/ OPC_CheckChild3Type, MVT::i32, ++/*285623*/ OPC_CheckChild4Integer, 1, ++/*285625*/ OPC_CheckChild4Type, MVT::i32, ++/*285627*/ OPC_MoveChild5, ++/*285628*/ OPC_CheckInteger, 1, ++/*285630*/ OPC_CheckType, MVT::i32, ++/*285632*/ OPC_MoveParent, ++/*285633*/ OPC_MoveChild6, ++/*285634*/ OPC_CheckInteger, 1, ++/*285636*/ OPC_CheckType, MVT::i32, ++/*285638*/ OPC_MoveParent, ++/*285639*/ OPC_MoveChild7, ++/*285640*/ OPC_CheckInteger, 1, ++/*285642*/ OPC_CheckType, MVT::i32, ++/*285644*/ OPC_MoveParent, ++/*285645*/ OPC_MoveChild, 8, ++/*285647*/ OPC_CheckInteger, 1, ++/*285649*/ OPC_CheckType, MVT::i32, ++/*285651*/ OPC_MoveParent, ++/*285652*/ OPC_MoveChild, 9, ++/*285654*/ OPC_CheckInteger, 1, ++/*285656*/ OPC_CheckType, MVT::i32, ++/*285658*/ OPC_MoveParent, ++/*285659*/ OPC_MoveChild, 10, ++/*285661*/ OPC_CheckInteger, 1, ++/*285663*/ OPC_CheckType, MVT::i32, ++/*285665*/ OPC_MoveParent, ++/*285666*/ OPC_MoveChild, 11, ++/*285668*/ OPC_CheckInteger, 1, ++/*285670*/ OPC_CheckType, MVT::i32, ++/*285672*/ OPC_MoveParent, ++/*285673*/ OPC_MoveChild, 12, ++/*285675*/ OPC_CheckInteger, 1, ++/*285677*/ OPC_CheckType, MVT::i32, ++/*285679*/ OPC_MoveParent, ++/*285680*/ OPC_MoveChild, 13, ++/*285682*/ OPC_CheckInteger, 1, ++/*285684*/ OPC_CheckType, MVT::i32, ++/*285686*/ OPC_MoveParent, ++/*285687*/ OPC_MoveChild, 14, ++/*285689*/ OPC_CheckInteger, 1, ++/*285691*/ OPC_CheckType, MVT::i32, ++/*285693*/ OPC_MoveParent, ++/*285694*/ OPC_MoveChild, 15, ++/*285696*/ OPC_CheckInteger, 1, ++/*285698*/ OPC_CheckType, MVT::i32, ++/*285700*/ OPC_MoveParent, ++/*285701*/ OPC_MoveChild, 16, ++/*285703*/ OPC_CheckInteger, 1, ++/*285705*/ OPC_CheckType, MVT::i32, ++/*285707*/ OPC_MoveParent, ++/*285708*/ OPC_MoveChild, 17, ++/*285710*/ OPC_CheckInteger, 1, ++/*285712*/ OPC_CheckType, MVT::i32, ++/*285714*/ OPC_MoveParent, ++/*285715*/ OPC_MoveChild, 18, ++/*285717*/ OPC_CheckInteger, 1, ++/*285719*/ OPC_CheckType, MVT::i32, ++/*285721*/ OPC_MoveParent, ++/*285722*/ OPC_MoveChild, 19, ++/*285724*/ OPC_CheckInteger, 1, ++/*285726*/ OPC_CheckType, MVT::i32, ++/*285728*/ OPC_MoveParent, ++/*285729*/ OPC_MoveChild, 20, ++/*285731*/ OPC_CheckInteger, 1, ++/*285733*/ OPC_CheckType, MVT::i32, ++/*285735*/ OPC_MoveParent, ++/*285736*/ OPC_MoveChild, 21, ++/*285738*/ OPC_CheckInteger, 1, ++/*285740*/ OPC_CheckType, MVT::i32, ++/*285742*/ OPC_MoveParent, ++/*285743*/ OPC_MoveChild, 22, ++/*285745*/ OPC_CheckInteger, 1, ++/*285747*/ OPC_CheckType, MVT::i32, ++/*285749*/ OPC_MoveParent, ++/*285750*/ OPC_MoveChild, 23, ++/*285752*/ OPC_CheckInteger, 1, ++/*285754*/ OPC_CheckType, MVT::i32, ++/*285756*/ OPC_MoveParent, ++/*285757*/ OPC_MoveChild, 24, ++/*285759*/ OPC_CheckInteger, 1, ++/*285761*/ OPC_CheckType, MVT::i32, ++/*285763*/ OPC_MoveParent, ++/*285764*/ OPC_MoveChild, 25, ++/*285766*/ OPC_CheckInteger, 1, ++/*285768*/ OPC_CheckType, MVT::i32, ++/*285770*/ OPC_MoveParent, ++/*285771*/ OPC_MoveChild, 26, ++/*285773*/ OPC_CheckInteger, 1, ++/*285775*/ OPC_CheckType, MVT::i32, ++/*285777*/ OPC_MoveParent, ++/*285778*/ OPC_MoveChild, 27, ++/*285780*/ OPC_CheckInteger, 1, ++/*285782*/ OPC_CheckType, MVT::i32, ++/*285784*/ OPC_MoveParent, ++/*285785*/ OPC_MoveChild, 28, ++/*285787*/ OPC_CheckInteger, 1, ++/*285789*/ OPC_CheckType, MVT::i32, ++/*285791*/ OPC_MoveParent, ++/*285792*/ OPC_MoveChild, 29, ++/*285794*/ OPC_CheckInteger, 1, ++/*285796*/ OPC_CheckType, MVT::i32, ++/*285798*/ OPC_MoveParent, ++/*285799*/ OPC_MoveChild, 30, ++/*285801*/ OPC_CheckInteger, 1, ++/*285803*/ OPC_CheckType, MVT::i32, ++/*285805*/ OPC_MoveParent, ++/*285806*/ OPC_MoveChild, 31, ++/*285808*/ OPC_CheckInteger, 1, ++/*285810*/ OPC_CheckType, MVT::i32, ++/*285812*/ OPC_MoveParent, ++/*285813*/ OPC_CheckType, MVT::v32i8, ++/*285815*/ OPC_MoveParent, ++/*285816*/ OPC_CheckType, MVT::v32i8, ++/*285818*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*285820*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b), LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a), LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*285828*/ /*Scope*/ 59|128,3/*443*/, /*->286273*/ ++/*285830*/ OPC_CheckChild0Same, 1, ++/*285832*/ OPC_MoveChild1, ++/*285833*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*285836*/ OPC_CheckChild0Integer, 1, ++/*285838*/ OPC_CheckChild0Type, MVT::i32, ++/*285840*/ OPC_CheckChild1Integer, 1, ++/*285842*/ OPC_CheckChild1Type, MVT::i32, ++/*285844*/ OPC_CheckChild2Integer, 1, ++/*285846*/ OPC_CheckChild2Type, MVT::i32, ++/*285848*/ OPC_CheckChild3Integer, 1, ++/*285850*/ OPC_CheckChild3Type, MVT::i32, ++/*285852*/ OPC_CheckChild4Integer, 1, ++/*285854*/ OPC_CheckChild4Type, MVT::i32, ++/*285856*/ OPC_MoveChild5, ++/*285857*/ OPC_CheckInteger, 1, ++/*285859*/ OPC_CheckType, MVT::i32, ++/*285861*/ OPC_MoveParent, ++/*285862*/ OPC_MoveChild6, ++/*285863*/ OPC_CheckInteger, 1, ++/*285865*/ OPC_CheckType, MVT::i32, ++/*285867*/ OPC_MoveParent, ++/*285868*/ OPC_MoveChild7, ++/*285869*/ OPC_CheckInteger, 1, ++/*285871*/ OPC_CheckType, MVT::i32, ++/*285873*/ OPC_MoveParent, ++/*285874*/ OPC_MoveChild, 8, ++/*285876*/ OPC_CheckInteger, 1, ++/*285878*/ OPC_CheckType, MVT::i32, ++/*285880*/ OPC_MoveParent, ++/*285881*/ OPC_MoveChild, 9, ++/*285883*/ OPC_CheckInteger, 1, ++/*285885*/ OPC_CheckType, MVT::i32, ++/*285887*/ OPC_MoveParent, ++/*285888*/ OPC_MoveChild, 10, ++/*285890*/ OPC_CheckInteger, 1, ++/*285892*/ OPC_CheckType, MVT::i32, ++/*285894*/ OPC_MoveParent, ++/*285895*/ OPC_MoveChild, 11, ++/*285897*/ OPC_CheckInteger, 1, ++/*285899*/ OPC_CheckType, MVT::i32, ++/*285901*/ OPC_MoveParent, ++/*285902*/ OPC_MoveChild, 12, ++/*285904*/ OPC_CheckInteger, 1, ++/*285906*/ OPC_CheckType, MVT::i32, ++/*285908*/ OPC_MoveParent, ++/*285909*/ OPC_MoveChild, 13, ++/*285911*/ OPC_CheckInteger, 1, ++/*285913*/ OPC_CheckType, MVT::i32, ++/*285915*/ OPC_MoveParent, ++/*285916*/ OPC_MoveChild, 14, ++/*285918*/ OPC_CheckInteger, 1, ++/*285920*/ OPC_CheckType, MVT::i32, ++/*285922*/ OPC_MoveParent, ++/*285923*/ OPC_MoveChild, 15, ++/*285925*/ OPC_CheckInteger, 1, ++/*285927*/ OPC_CheckType, MVT::i32, ++/*285929*/ OPC_MoveParent, ++/*285930*/ OPC_MoveChild, 16, ++/*285932*/ OPC_CheckInteger, 1, ++/*285934*/ OPC_CheckType, MVT::i32, ++/*285936*/ OPC_MoveParent, ++/*285937*/ OPC_MoveChild, 17, ++/*285939*/ OPC_CheckInteger, 1, ++/*285941*/ OPC_CheckType, MVT::i32, ++/*285943*/ OPC_MoveParent, ++/*285944*/ OPC_MoveChild, 18, ++/*285946*/ OPC_CheckInteger, 1, ++/*285948*/ OPC_CheckType, MVT::i32, ++/*285950*/ OPC_MoveParent, ++/*285951*/ OPC_MoveChild, 19, ++/*285953*/ OPC_CheckInteger, 1, ++/*285955*/ OPC_CheckType, MVT::i32, ++/*285957*/ OPC_MoveParent, ++/*285958*/ OPC_MoveChild, 20, ++/*285960*/ OPC_CheckInteger, 1, ++/*285962*/ OPC_CheckType, MVT::i32, ++/*285964*/ OPC_MoveParent, ++/*285965*/ OPC_MoveChild, 21, ++/*285967*/ OPC_CheckInteger, 1, ++/*285969*/ OPC_CheckType, MVT::i32, ++/*285971*/ OPC_MoveParent, ++/*285972*/ OPC_MoveChild, 22, ++/*285974*/ OPC_CheckInteger, 1, ++/*285976*/ OPC_CheckType, MVT::i32, ++/*285978*/ OPC_MoveParent, ++/*285979*/ OPC_MoveChild, 23, ++/*285981*/ OPC_CheckInteger, 1, ++/*285983*/ OPC_CheckType, MVT::i32, ++/*285985*/ OPC_MoveParent, ++/*285986*/ OPC_MoveChild, 24, ++/*285988*/ OPC_CheckInteger, 1, ++/*285990*/ OPC_CheckType, MVT::i32, ++/*285992*/ OPC_MoveParent, ++/*285993*/ OPC_MoveChild, 25, ++/*285995*/ OPC_CheckInteger, 1, ++/*285997*/ OPC_CheckType, MVT::i32, ++/*285999*/ OPC_MoveParent, ++/*286000*/ OPC_MoveChild, 26, ++/*286002*/ OPC_CheckInteger, 1, ++/*286004*/ OPC_CheckType, MVT::i32, ++/*286006*/ OPC_MoveParent, ++/*286007*/ OPC_MoveChild, 27, ++/*286009*/ OPC_CheckInteger, 1, ++/*286011*/ OPC_CheckType, MVT::i32, ++/*286013*/ OPC_MoveParent, ++/*286014*/ OPC_MoveChild, 28, ++/*286016*/ OPC_CheckInteger, 1, ++/*286018*/ OPC_CheckType, MVT::i32, ++/*286020*/ OPC_MoveParent, ++/*286021*/ OPC_MoveChild, 29, ++/*286023*/ OPC_CheckInteger, 1, ++/*286025*/ OPC_CheckType, MVT::i32, ++/*286027*/ OPC_MoveParent, ++/*286028*/ OPC_MoveChild, 30, ++/*286030*/ OPC_CheckInteger, 1, ++/*286032*/ OPC_CheckType, MVT::i32, ++/*286034*/ OPC_MoveParent, ++/*286035*/ OPC_MoveChild, 31, ++/*286037*/ OPC_CheckInteger, 1, ++/*286039*/ OPC_CheckType, MVT::i32, ++/*286041*/ OPC_MoveParent, ++/*286042*/ OPC_MoveParent, ++/*286043*/ OPC_MoveParent, ++/*286044*/ OPC_CheckChild1Same, 0, ++/*286046*/ OPC_MoveParent, ++/*286047*/ OPC_MoveParent, ++/*286048*/ OPC_MoveChild1, ++/*286049*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*286052*/ OPC_CheckChild0Integer, 1, ++/*286054*/ OPC_CheckChild0Type, MVT::i32, ++/*286056*/ OPC_CheckChild1Integer, 1, ++/*286058*/ OPC_CheckChild1Type, MVT::i32, ++/*286060*/ OPC_CheckChild2Integer, 1, ++/*286062*/ OPC_CheckChild2Type, MVT::i32, ++/*286064*/ OPC_CheckChild3Integer, 1, ++/*286066*/ OPC_CheckChild3Type, MVT::i32, ++/*286068*/ OPC_CheckChild4Integer, 1, ++/*286070*/ OPC_CheckChild4Type, MVT::i32, ++/*286072*/ OPC_MoveChild5, ++/*286073*/ OPC_CheckInteger, 1, ++/*286075*/ OPC_CheckType, MVT::i32, ++/*286077*/ OPC_MoveParent, ++/*286078*/ OPC_MoveChild6, ++/*286079*/ OPC_CheckInteger, 1, ++/*286081*/ OPC_CheckType, MVT::i32, ++/*286083*/ OPC_MoveParent, ++/*286084*/ OPC_MoveChild7, ++/*286085*/ OPC_CheckInteger, 1, ++/*286087*/ OPC_CheckType, MVT::i32, ++/*286089*/ OPC_MoveParent, ++/*286090*/ OPC_MoveChild, 8, ++/*286092*/ OPC_CheckInteger, 1, ++/*286094*/ OPC_CheckType, MVT::i32, ++/*286096*/ OPC_MoveParent, ++/*286097*/ OPC_MoveChild, 9, ++/*286099*/ OPC_CheckInteger, 1, ++/*286101*/ OPC_CheckType, MVT::i32, ++/*286103*/ OPC_MoveParent, ++/*286104*/ OPC_MoveChild, 10, ++/*286106*/ OPC_CheckInteger, 1, ++/*286108*/ OPC_CheckType, MVT::i32, ++/*286110*/ OPC_MoveParent, ++/*286111*/ OPC_MoveChild, 11, ++/*286113*/ OPC_CheckInteger, 1, ++/*286115*/ OPC_CheckType, MVT::i32, ++/*286117*/ OPC_MoveParent, ++/*286118*/ OPC_MoveChild, 12, ++/*286120*/ OPC_CheckInteger, 1, ++/*286122*/ OPC_CheckType, MVT::i32, ++/*286124*/ OPC_MoveParent, ++/*286125*/ OPC_MoveChild, 13, ++/*286127*/ OPC_CheckInteger, 1, ++/*286129*/ OPC_CheckType, MVT::i32, ++/*286131*/ OPC_MoveParent, ++/*286132*/ OPC_MoveChild, 14, ++/*286134*/ OPC_CheckInteger, 1, ++/*286136*/ OPC_CheckType, MVT::i32, ++/*286138*/ OPC_MoveParent, ++/*286139*/ OPC_MoveChild, 15, ++/*286141*/ OPC_CheckInteger, 1, ++/*286143*/ OPC_CheckType, MVT::i32, ++/*286145*/ OPC_MoveParent, ++/*286146*/ OPC_MoveChild, 16, ++/*286148*/ OPC_CheckInteger, 1, ++/*286150*/ OPC_CheckType, MVT::i32, ++/*286152*/ OPC_MoveParent, ++/*286153*/ OPC_MoveChild, 17, ++/*286155*/ OPC_CheckInteger, 1, ++/*286157*/ OPC_CheckType, MVT::i32, ++/*286159*/ OPC_MoveParent, ++/*286160*/ OPC_MoveChild, 18, ++/*286162*/ OPC_CheckInteger, 1, ++/*286164*/ OPC_CheckType, MVT::i32, ++/*286166*/ OPC_MoveParent, ++/*286167*/ OPC_MoveChild, 19, ++/*286169*/ OPC_CheckInteger, 1, ++/*286171*/ OPC_CheckType, MVT::i32, ++/*286173*/ OPC_MoveParent, ++/*286174*/ OPC_MoveChild, 20, ++/*286176*/ OPC_CheckInteger, 1, ++/*286178*/ OPC_CheckType, MVT::i32, ++/*286180*/ OPC_MoveParent, ++/*286181*/ OPC_MoveChild, 21, ++/*286183*/ OPC_CheckInteger, 1, ++/*286185*/ OPC_CheckType, MVT::i32, ++/*286187*/ OPC_MoveParent, ++/*286188*/ OPC_MoveChild, 22, ++/*286190*/ OPC_CheckInteger, 1, ++/*286192*/ OPC_CheckType, MVT::i32, ++/*286194*/ OPC_MoveParent, ++/*286195*/ OPC_MoveChild, 23, ++/*286197*/ OPC_CheckInteger, 1, ++/*286199*/ OPC_CheckType, MVT::i32, ++/*286201*/ OPC_MoveParent, ++/*286202*/ OPC_MoveChild, 24, ++/*286204*/ OPC_CheckInteger, 1, ++/*286206*/ OPC_CheckType, MVT::i32, ++/*286208*/ OPC_MoveParent, ++/*286209*/ OPC_MoveChild, 25, ++/*286211*/ OPC_CheckInteger, 1, ++/*286213*/ OPC_CheckType, MVT::i32, ++/*286215*/ OPC_MoveParent, ++/*286216*/ OPC_MoveChild, 26, ++/*286218*/ OPC_CheckInteger, 1, ++/*286220*/ OPC_CheckType, MVT::i32, ++/*286222*/ OPC_MoveParent, ++/*286223*/ OPC_MoveChild, 27, ++/*286225*/ OPC_CheckInteger, 1, ++/*286227*/ OPC_CheckType, MVT::i32, ++/*286229*/ OPC_MoveParent, ++/*286230*/ OPC_MoveChild, 28, ++/*286232*/ OPC_CheckInteger, 1, ++/*286234*/ OPC_CheckType, MVT::i32, ++/*286236*/ OPC_MoveParent, ++/*286237*/ OPC_MoveChild, 29, ++/*286239*/ OPC_CheckInteger, 1, ++/*286241*/ OPC_CheckType, MVT::i32, ++/*286243*/ OPC_MoveParent, ++/*286244*/ OPC_MoveChild, 30, ++/*286246*/ OPC_CheckInteger, 1, ++/*286248*/ OPC_CheckType, MVT::i32, ++/*286250*/ OPC_MoveParent, ++/*286251*/ OPC_MoveChild, 31, ++/*286253*/ OPC_CheckInteger, 1, ++/*286255*/ OPC_CheckType, MVT::i32, ++/*286257*/ OPC_MoveParent, ++/*286258*/ OPC_CheckType, MVT::v32i8, ++/*286260*/ OPC_MoveParent, ++/*286261*/ OPC_CheckType, MVT::v32i8, ++/*286263*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*286265*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b), LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*286273*/ /*Scope*/ 59|128,3/*443*/, /*->286718*/ ++/*286275*/ OPC_MoveChild0, ++/*286276*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*286279*/ OPC_CheckChild0Integer, 1, ++/*286281*/ OPC_CheckChild0Type, MVT::i32, ++/*286283*/ OPC_CheckChild1Integer, 1, ++/*286285*/ OPC_CheckChild1Type, MVT::i32, ++/*286287*/ OPC_CheckChild2Integer, 1, ++/*286289*/ OPC_CheckChild2Type, MVT::i32, ++/*286291*/ OPC_CheckChild3Integer, 1, ++/*286293*/ OPC_CheckChild3Type, MVT::i32, ++/*286295*/ OPC_CheckChild4Integer, 1, ++/*286297*/ OPC_CheckChild4Type, MVT::i32, ++/*286299*/ OPC_MoveChild5, ++/*286300*/ OPC_CheckInteger, 1, ++/*286302*/ OPC_CheckType, MVT::i32, ++/*286304*/ OPC_MoveParent, ++/*286305*/ OPC_MoveChild6, ++/*286306*/ OPC_CheckInteger, 1, ++/*286308*/ OPC_CheckType, MVT::i32, ++/*286310*/ OPC_MoveParent, ++/*286311*/ OPC_MoveChild7, ++/*286312*/ OPC_CheckInteger, 1, ++/*286314*/ OPC_CheckType, MVT::i32, ++/*286316*/ OPC_MoveParent, ++/*286317*/ OPC_MoveChild, 8, ++/*286319*/ OPC_CheckInteger, 1, ++/*286321*/ OPC_CheckType, MVT::i32, ++/*286323*/ OPC_MoveParent, ++/*286324*/ OPC_MoveChild, 9, ++/*286326*/ OPC_CheckInteger, 1, ++/*286328*/ OPC_CheckType, MVT::i32, ++/*286330*/ OPC_MoveParent, ++/*286331*/ OPC_MoveChild, 10, ++/*286333*/ OPC_CheckInteger, 1, ++/*286335*/ OPC_CheckType, MVT::i32, ++/*286337*/ OPC_MoveParent, ++/*286338*/ OPC_MoveChild, 11, ++/*286340*/ OPC_CheckInteger, 1, ++/*286342*/ OPC_CheckType, MVT::i32, ++/*286344*/ OPC_MoveParent, ++/*286345*/ OPC_MoveChild, 12, ++/*286347*/ OPC_CheckInteger, 1, ++/*286349*/ OPC_CheckType, MVT::i32, ++/*286351*/ OPC_MoveParent, ++/*286352*/ OPC_MoveChild, 13, ++/*286354*/ OPC_CheckInteger, 1, ++/*286356*/ OPC_CheckType, MVT::i32, ++/*286358*/ OPC_MoveParent, ++/*286359*/ OPC_MoveChild, 14, ++/*286361*/ OPC_CheckInteger, 1, ++/*286363*/ OPC_CheckType, MVT::i32, ++/*286365*/ OPC_MoveParent, ++/*286366*/ OPC_MoveChild, 15, ++/*286368*/ OPC_CheckInteger, 1, ++/*286370*/ OPC_CheckType, MVT::i32, ++/*286372*/ OPC_MoveParent, ++/*286373*/ OPC_MoveChild, 16, ++/*286375*/ OPC_CheckInteger, 1, ++/*286377*/ OPC_CheckType, MVT::i32, ++/*286379*/ OPC_MoveParent, ++/*286380*/ OPC_MoveChild, 17, ++/*286382*/ OPC_CheckInteger, 1, ++/*286384*/ OPC_CheckType, MVT::i32, ++/*286386*/ OPC_MoveParent, ++/*286387*/ OPC_MoveChild, 18, ++/*286389*/ OPC_CheckInteger, 1, ++/*286391*/ OPC_CheckType, MVT::i32, ++/*286393*/ OPC_MoveParent, ++/*286394*/ OPC_MoveChild, 19, ++/*286396*/ OPC_CheckInteger, 1, ++/*286398*/ OPC_CheckType, MVT::i32, ++/*286400*/ OPC_MoveParent, ++/*286401*/ OPC_MoveChild, 20, ++/*286403*/ OPC_CheckInteger, 1, ++/*286405*/ OPC_CheckType, MVT::i32, ++/*286407*/ OPC_MoveParent, ++/*286408*/ OPC_MoveChild, 21, ++/*286410*/ OPC_CheckInteger, 1, ++/*286412*/ OPC_CheckType, MVT::i32, ++/*286414*/ OPC_MoveParent, ++/*286415*/ OPC_MoveChild, 22, ++/*286417*/ OPC_CheckInteger, 1, ++/*286419*/ OPC_CheckType, MVT::i32, ++/*286421*/ OPC_MoveParent, ++/*286422*/ OPC_MoveChild, 23, ++/*286424*/ OPC_CheckInteger, 1, ++/*286426*/ OPC_CheckType, MVT::i32, ++/*286428*/ OPC_MoveParent, ++/*286429*/ OPC_MoveChild, 24, ++/*286431*/ OPC_CheckInteger, 1, ++/*286433*/ OPC_CheckType, MVT::i32, ++/*286435*/ OPC_MoveParent, ++/*286436*/ OPC_MoveChild, 25, ++/*286438*/ OPC_CheckInteger, 1, ++/*286440*/ OPC_CheckType, MVT::i32, ++/*286442*/ OPC_MoveParent, ++/*286443*/ OPC_MoveChild, 26, ++/*286445*/ OPC_CheckInteger, 1, ++/*286447*/ OPC_CheckType, MVT::i32, ++/*286449*/ OPC_MoveParent, ++/*286450*/ OPC_MoveChild, 27, ++/*286452*/ OPC_CheckInteger, 1, ++/*286454*/ OPC_CheckType, MVT::i32, ++/*286456*/ OPC_MoveParent, ++/*286457*/ OPC_MoveChild, 28, ++/*286459*/ OPC_CheckInteger, 1, ++/*286461*/ OPC_CheckType, MVT::i32, ++/*286463*/ OPC_MoveParent, ++/*286464*/ OPC_MoveChild, 29, ++/*286466*/ OPC_CheckInteger, 1, ++/*286468*/ OPC_CheckType, MVT::i32, ++/*286470*/ OPC_MoveParent, ++/*286471*/ OPC_MoveChild, 30, ++/*286473*/ OPC_CheckInteger, 1, ++/*286475*/ OPC_CheckType, MVT::i32, ++/*286477*/ OPC_MoveParent, ++/*286478*/ OPC_MoveChild, 31, ++/*286480*/ OPC_CheckInteger, 1, ++/*286482*/ OPC_CheckType, MVT::i32, ++/*286484*/ OPC_MoveParent, ++/*286485*/ OPC_MoveParent, ++/*286486*/ OPC_CheckChild1Same, 0, ++/*286488*/ OPC_MoveParent, ++/*286489*/ OPC_CheckChild1Same, 1, ++/*286491*/ OPC_MoveParent, ++/*286492*/ OPC_MoveParent, ++/*286493*/ OPC_MoveChild1, ++/*286494*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*286497*/ OPC_CheckChild0Integer, 1, ++/*286499*/ OPC_CheckChild0Type, MVT::i32, ++/*286501*/ OPC_CheckChild1Integer, 1, ++/*286503*/ OPC_CheckChild1Type, MVT::i32, ++/*286505*/ OPC_CheckChild2Integer, 1, ++/*286507*/ OPC_CheckChild2Type, MVT::i32, ++/*286509*/ OPC_CheckChild3Integer, 1, ++/*286511*/ OPC_CheckChild3Type, MVT::i32, ++/*286513*/ OPC_CheckChild4Integer, 1, ++/*286515*/ OPC_CheckChild4Type, MVT::i32, ++/*286517*/ OPC_MoveChild5, ++/*286518*/ OPC_CheckInteger, 1, ++/*286520*/ OPC_CheckType, MVT::i32, ++/*286522*/ OPC_MoveParent, ++/*286523*/ OPC_MoveChild6, ++/*286524*/ OPC_CheckInteger, 1, ++/*286526*/ OPC_CheckType, MVT::i32, ++/*286528*/ OPC_MoveParent, ++/*286529*/ OPC_MoveChild7, ++/*286530*/ OPC_CheckInteger, 1, ++/*286532*/ OPC_CheckType, MVT::i32, ++/*286534*/ OPC_MoveParent, ++/*286535*/ OPC_MoveChild, 8, ++/*286537*/ OPC_CheckInteger, 1, ++/*286539*/ OPC_CheckType, MVT::i32, ++/*286541*/ OPC_MoveParent, ++/*286542*/ OPC_MoveChild, 9, ++/*286544*/ OPC_CheckInteger, 1, ++/*286546*/ OPC_CheckType, MVT::i32, ++/*286548*/ OPC_MoveParent, ++/*286549*/ OPC_MoveChild, 10, ++/*286551*/ OPC_CheckInteger, 1, ++/*286553*/ OPC_CheckType, MVT::i32, ++/*286555*/ OPC_MoveParent, ++/*286556*/ OPC_MoveChild, 11, ++/*286558*/ OPC_CheckInteger, 1, ++/*286560*/ OPC_CheckType, MVT::i32, ++/*286562*/ OPC_MoveParent, ++/*286563*/ OPC_MoveChild, 12, ++/*286565*/ OPC_CheckInteger, 1, ++/*286567*/ OPC_CheckType, MVT::i32, ++/*286569*/ OPC_MoveParent, ++/*286570*/ OPC_MoveChild, 13, ++/*286572*/ OPC_CheckInteger, 1, ++/*286574*/ OPC_CheckType, MVT::i32, ++/*286576*/ OPC_MoveParent, ++/*286577*/ OPC_MoveChild, 14, ++/*286579*/ OPC_CheckInteger, 1, ++/*286581*/ OPC_CheckType, MVT::i32, ++/*286583*/ OPC_MoveParent, ++/*286584*/ OPC_MoveChild, 15, ++/*286586*/ OPC_CheckInteger, 1, ++/*286588*/ OPC_CheckType, MVT::i32, ++/*286590*/ OPC_MoveParent, ++/*286591*/ OPC_MoveChild, 16, ++/*286593*/ OPC_CheckInteger, 1, ++/*286595*/ OPC_CheckType, MVT::i32, ++/*286597*/ OPC_MoveParent, ++/*286598*/ OPC_MoveChild, 17, ++/*286600*/ OPC_CheckInteger, 1, ++/*286602*/ OPC_CheckType, MVT::i32, ++/*286604*/ OPC_MoveParent, ++/*286605*/ OPC_MoveChild, 18, ++/*286607*/ OPC_CheckInteger, 1, ++/*286609*/ OPC_CheckType, MVT::i32, ++/*286611*/ OPC_MoveParent, ++/*286612*/ OPC_MoveChild, 19, ++/*286614*/ OPC_CheckInteger, 1, ++/*286616*/ OPC_CheckType, MVT::i32, ++/*286618*/ OPC_MoveParent, ++/*286619*/ OPC_MoveChild, 20, ++/*286621*/ OPC_CheckInteger, 1, ++/*286623*/ OPC_CheckType, MVT::i32, ++/*286625*/ OPC_MoveParent, ++/*286626*/ OPC_MoveChild, 21, ++/*286628*/ OPC_CheckInteger, 1, ++/*286630*/ OPC_CheckType, MVT::i32, ++/*286632*/ OPC_MoveParent, ++/*286633*/ OPC_MoveChild, 22, ++/*286635*/ OPC_CheckInteger, 1, ++/*286637*/ OPC_CheckType, MVT::i32, ++/*286639*/ OPC_MoveParent, ++/*286640*/ OPC_MoveChild, 23, ++/*286642*/ OPC_CheckInteger, 1, ++/*286644*/ OPC_CheckType, MVT::i32, ++/*286646*/ OPC_MoveParent, ++/*286647*/ OPC_MoveChild, 24, ++/*286649*/ OPC_CheckInteger, 1, ++/*286651*/ OPC_CheckType, MVT::i32, ++/*286653*/ OPC_MoveParent, ++/*286654*/ OPC_MoveChild, 25, ++/*286656*/ OPC_CheckInteger, 1, ++/*286658*/ OPC_CheckType, MVT::i32, ++/*286660*/ OPC_MoveParent, ++/*286661*/ OPC_MoveChild, 26, ++/*286663*/ OPC_CheckInteger, 1, ++/*286665*/ OPC_CheckType, MVT::i32, ++/*286667*/ OPC_MoveParent, ++/*286668*/ OPC_MoveChild, 27, ++/*286670*/ OPC_CheckInteger, 1, ++/*286672*/ OPC_CheckType, MVT::i32, ++/*286674*/ OPC_MoveParent, ++/*286675*/ OPC_MoveChild, 28, ++/*286677*/ OPC_CheckInteger, 1, ++/*286679*/ OPC_CheckType, MVT::i32, ++/*286681*/ OPC_MoveParent, ++/*286682*/ OPC_MoveChild, 29, ++/*286684*/ OPC_CheckInteger, 1, ++/*286686*/ OPC_CheckType, MVT::i32, ++/*286688*/ OPC_MoveParent, ++/*286689*/ OPC_MoveChild, 30, ++/*286691*/ OPC_CheckInteger, 1, ++/*286693*/ OPC_CheckType, MVT::i32, ++/*286695*/ OPC_MoveParent, ++/*286696*/ OPC_MoveChild, 31, ++/*286698*/ OPC_CheckInteger, 1, ++/*286700*/ OPC_CheckType, MVT::i32, ++/*286702*/ OPC_MoveParent, ++/*286703*/ OPC_CheckType, MVT::v32i8, ++/*286705*/ OPC_MoveParent, ++/*286706*/ OPC_CheckType, MVT::v32i8, ++/*286708*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*286710*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b), LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b), LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*286718*/ /*Scope*/ 59|128,3/*443*/, /*->287163*/ ++/*286720*/ OPC_CheckChild0Same, 0, ++/*286722*/ OPC_MoveChild1, ++/*286723*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*286726*/ OPC_CheckChild0Integer, 1, ++/*286728*/ OPC_CheckChild0Type, MVT::i32, ++/*286730*/ OPC_CheckChild1Integer, 1, ++/*286732*/ OPC_CheckChild1Type, MVT::i32, ++/*286734*/ OPC_CheckChild2Integer, 1, ++/*286736*/ OPC_CheckChild2Type, MVT::i32, ++/*286738*/ OPC_CheckChild3Integer, 1, ++/*286740*/ OPC_CheckChild3Type, MVT::i32, ++/*286742*/ OPC_CheckChild4Integer, 1, ++/*286744*/ OPC_CheckChild4Type, MVT::i32, ++/*286746*/ OPC_MoveChild5, ++/*286747*/ OPC_CheckInteger, 1, ++/*286749*/ OPC_CheckType, MVT::i32, ++/*286751*/ OPC_MoveParent, ++/*286752*/ OPC_MoveChild6, ++/*286753*/ OPC_CheckInteger, 1, ++/*286755*/ OPC_CheckType, MVT::i32, ++/*286757*/ OPC_MoveParent, ++/*286758*/ OPC_MoveChild7, ++/*286759*/ OPC_CheckInteger, 1, ++/*286761*/ OPC_CheckType, MVT::i32, ++/*286763*/ OPC_MoveParent, ++/*286764*/ OPC_MoveChild, 8, ++/*286766*/ OPC_CheckInteger, 1, ++/*286768*/ OPC_CheckType, MVT::i32, ++/*286770*/ OPC_MoveParent, ++/*286771*/ OPC_MoveChild, 9, ++/*286773*/ OPC_CheckInteger, 1, ++/*286775*/ OPC_CheckType, MVT::i32, ++/*286777*/ OPC_MoveParent, ++/*286778*/ OPC_MoveChild, 10, ++/*286780*/ OPC_CheckInteger, 1, ++/*286782*/ OPC_CheckType, MVT::i32, ++/*286784*/ OPC_MoveParent, ++/*286785*/ OPC_MoveChild, 11, ++/*286787*/ OPC_CheckInteger, 1, ++/*286789*/ OPC_CheckType, MVT::i32, ++/*286791*/ OPC_MoveParent, ++/*286792*/ OPC_MoveChild, 12, ++/*286794*/ OPC_CheckInteger, 1, ++/*286796*/ OPC_CheckType, MVT::i32, ++/*286798*/ OPC_MoveParent, ++/*286799*/ OPC_MoveChild, 13, ++/*286801*/ OPC_CheckInteger, 1, ++/*286803*/ OPC_CheckType, MVT::i32, ++/*286805*/ OPC_MoveParent, ++/*286806*/ OPC_MoveChild, 14, ++/*286808*/ OPC_CheckInteger, 1, ++/*286810*/ OPC_CheckType, MVT::i32, ++/*286812*/ OPC_MoveParent, ++/*286813*/ OPC_MoveChild, 15, ++/*286815*/ OPC_CheckInteger, 1, ++/*286817*/ OPC_CheckType, MVT::i32, ++/*286819*/ OPC_MoveParent, ++/*286820*/ OPC_MoveChild, 16, ++/*286822*/ OPC_CheckInteger, 1, ++/*286824*/ OPC_CheckType, MVT::i32, ++/*286826*/ OPC_MoveParent, ++/*286827*/ OPC_MoveChild, 17, ++/*286829*/ OPC_CheckInteger, 1, ++/*286831*/ OPC_CheckType, MVT::i32, ++/*286833*/ OPC_MoveParent, ++/*286834*/ OPC_MoveChild, 18, ++/*286836*/ OPC_CheckInteger, 1, ++/*286838*/ OPC_CheckType, MVT::i32, ++/*286840*/ OPC_MoveParent, ++/*286841*/ OPC_MoveChild, 19, ++/*286843*/ OPC_CheckInteger, 1, ++/*286845*/ OPC_CheckType, MVT::i32, ++/*286847*/ OPC_MoveParent, ++/*286848*/ OPC_MoveChild, 20, ++/*286850*/ OPC_CheckInteger, 1, ++/*286852*/ OPC_CheckType, MVT::i32, ++/*286854*/ OPC_MoveParent, ++/*286855*/ OPC_MoveChild, 21, ++/*286857*/ OPC_CheckInteger, 1, ++/*286859*/ OPC_CheckType, MVT::i32, ++/*286861*/ OPC_MoveParent, ++/*286862*/ OPC_MoveChild, 22, ++/*286864*/ OPC_CheckInteger, 1, ++/*286866*/ OPC_CheckType, MVT::i32, ++/*286868*/ OPC_MoveParent, ++/*286869*/ OPC_MoveChild, 23, ++/*286871*/ OPC_CheckInteger, 1, ++/*286873*/ OPC_CheckType, MVT::i32, ++/*286875*/ OPC_MoveParent, ++/*286876*/ OPC_MoveChild, 24, ++/*286878*/ OPC_CheckInteger, 1, ++/*286880*/ OPC_CheckType, MVT::i32, ++/*286882*/ OPC_MoveParent, ++/*286883*/ OPC_MoveChild, 25, ++/*286885*/ OPC_CheckInteger, 1, ++/*286887*/ OPC_CheckType, MVT::i32, ++/*286889*/ OPC_MoveParent, ++/*286890*/ OPC_MoveChild, 26, ++/*286892*/ OPC_CheckInteger, 1, ++/*286894*/ OPC_CheckType, MVT::i32, ++/*286896*/ OPC_MoveParent, ++/*286897*/ OPC_MoveChild, 27, ++/*286899*/ OPC_CheckInteger, 1, ++/*286901*/ OPC_CheckType, MVT::i32, ++/*286903*/ OPC_MoveParent, ++/*286904*/ OPC_MoveChild, 28, ++/*286906*/ OPC_CheckInteger, 1, ++/*286908*/ OPC_CheckType, MVT::i32, ++/*286910*/ OPC_MoveParent, ++/*286911*/ OPC_MoveChild, 29, ++/*286913*/ OPC_CheckInteger, 1, ++/*286915*/ OPC_CheckType, MVT::i32, ++/*286917*/ OPC_MoveParent, ++/*286918*/ OPC_MoveChild, 30, ++/*286920*/ OPC_CheckInteger, 1, ++/*286922*/ OPC_CheckType, MVT::i32, ++/*286924*/ OPC_MoveParent, ++/*286925*/ OPC_MoveChild, 31, ++/*286927*/ OPC_CheckInteger, 1, ++/*286929*/ OPC_CheckType, MVT::i32, ++/*286931*/ OPC_MoveParent, ++/*286932*/ OPC_MoveParent, ++/*286933*/ OPC_MoveParent, ++/*286934*/ OPC_CheckChild1Same, 1, ++/*286936*/ OPC_MoveParent, ++/*286937*/ OPC_MoveParent, ++/*286938*/ OPC_MoveChild1, ++/*286939*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*286942*/ OPC_CheckChild0Integer, 1, ++/*286944*/ OPC_CheckChild0Type, MVT::i32, ++/*286946*/ OPC_CheckChild1Integer, 1, ++/*286948*/ OPC_CheckChild1Type, MVT::i32, ++/*286950*/ OPC_CheckChild2Integer, 1, ++/*286952*/ OPC_CheckChild2Type, MVT::i32, ++/*286954*/ OPC_CheckChild3Integer, 1, ++/*286956*/ OPC_CheckChild3Type, MVT::i32, ++/*286958*/ OPC_CheckChild4Integer, 1, ++/*286960*/ OPC_CheckChild4Type, MVT::i32, ++/*286962*/ OPC_MoveChild5, ++/*286963*/ OPC_CheckInteger, 1, ++/*286965*/ OPC_CheckType, MVT::i32, ++/*286967*/ OPC_MoveParent, ++/*286968*/ OPC_MoveChild6, ++/*286969*/ OPC_CheckInteger, 1, ++/*286971*/ OPC_CheckType, MVT::i32, ++/*286973*/ OPC_MoveParent, ++/*286974*/ OPC_MoveChild7, ++/*286975*/ OPC_CheckInteger, 1, ++/*286977*/ OPC_CheckType, MVT::i32, ++/*286979*/ OPC_MoveParent, ++/*286980*/ OPC_MoveChild, 8, ++/*286982*/ OPC_CheckInteger, 1, ++/*286984*/ OPC_CheckType, MVT::i32, ++/*286986*/ OPC_MoveParent, ++/*286987*/ OPC_MoveChild, 9, ++/*286989*/ OPC_CheckInteger, 1, ++/*286991*/ OPC_CheckType, MVT::i32, ++/*286993*/ OPC_MoveParent, ++/*286994*/ OPC_MoveChild, 10, ++/*286996*/ OPC_CheckInteger, 1, ++/*286998*/ OPC_CheckType, MVT::i32, ++/*287000*/ OPC_MoveParent, ++/*287001*/ OPC_MoveChild, 11, ++/*287003*/ OPC_CheckInteger, 1, ++/*287005*/ OPC_CheckType, MVT::i32, ++/*287007*/ OPC_MoveParent, ++/*287008*/ OPC_MoveChild, 12, ++/*287010*/ OPC_CheckInteger, 1, ++/*287012*/ OPC_CheckType, MVT::i32, ++/*287014*/ OPC_MoveParent, ++/*287015*/ OPC_MoveChild, 13, ++/*287017*/ OPC_CheckInteger, 1, ++/*287019*/ OPC_CheckType, MVT::i32, ++/*287021*/ OPC_MoveParent, ++/*287022*/ OPC_MoveChild, 14, ++/*287024*/ OPC_CheckInteger, 1, ++/*287026*/ OPC_CheckType, MVT::i32, ++/*287028*/ OPC_MoveParent, ++/*287029*/ OPC_MoveChild, 15, ++/*287031*/ OPC_CheckInteger, 1, ++/*287033*/ OPC_CheckType, MVT::i32, ++/*287035*/ OPC_MoveParent, ++/*287036*/ OPC_MoveChild, 16, ++/*287038*/ OPC_CheckInteger, 1, ++/*287040*/ OPC_CheckType, MVT::i32, ++/*287042*/ OPC_MoveParent, ++/*287043*/ OPC_MoveChild, 17, ++/*287045*/ OPC_CheckInteger, 1, ++/*287047*/ OPC_CheckType, MVT::i32, ++/*287049*/ OPC_MoveParent, ++/*287050*/ OPC_MoveChild, 18, ++/*287052*/ OPC_CheckInteger, 1, ++/*287054*/ OPC_CheckType, MVT::i32, ++/*287056*/ OPC_MoveParent, ++/*287057*/ OPC_MoveChild, 19, ++/*287059*/ OPC_CheckInteger, 1, ++/*287061*/ OPC_CheckType, MVT::i32, ++/*287063*/ OPC_MoveParent, ++/*287064*/ OPC_MoveChild, 20, ++/*287066*/ OPC_CheckInteger, 1, ++/*287068*/ OPC_CheckType, MVT::i32, ++/*287070*/ OPC_MoveParent, ++/*287071*/ OPC_MoveChild, 21, ++/*287073*/ OPC_CheckInteger, 1, ++/*287075*/ OPC_CheckType, MVT::i32, ++/*287077*/ OPC_MoveParent, ++/*287078*/ OPC_MoveChild, 22, ++/*287080*/ OPC_CheckInteger, 1, ++/*287082*/ OPC_CheckType, MVT::i32, ++/*287084*/ OPC_MoveParent, ++/*287085*/ OPC_MoveChild, 23, ++/*287087*/ OPC_CheckInteger, 1, ++/*287089*/ OPC_CheckType, MVT::i32, ++/*287091*/ OPC_MoveParent, ++/*287092*/ OPC_MoveChild, 24, ++/*287094*/ OPC_CheckInteger, 1, ++/*287096*/ OPC_CheckType, MVT::i32, ++/*287098*/ OPC_MoveParent, ++/*287099*/ OPC_MoveChild, 25, ++/*287101*/ OPC_CheckInteger, 1, ++/*287103*/ OPC_CheckType, MVT::i32, ++/*287105*/ OPC_MoveParent, ++/*287106*/ OPC_MoveChild, 26, ++/*287108*/ OPC_CheckInteger, 1, ++/*287110*/ OPC_CheckType, MVT::i32, ++/*287112*/ OPC_MoveParent, ++/*287113*/ OPC_MoveChild, 27, ++/*287115*/ OPC_CheckInteger, 1, ++/*287117*/ OPC_CheckType, MVT::i32, ++/*287119*/ OPC_MoveParent, ++/*287120*/ OPC_MoveChild, 28, ++/*287122*/ OPC_CheckInteger, 1, ++/*287124*/ OPC_CheckType, MVT::i32, ++/*287126*/ OPC_MoveParent, ++/*287127*/ OPC_MoveChild, 29, ++/*287129*/ OPC_CheckInteger, 1, ++/*287131*/ OPC_CheckType, MVT::i32, ++/*287133*/ OPC_MoveParent, ++/*287134*/ OPC_MoveChild, 30, ++/*287136*/ OPC_CheckInteger, 1, ++/*287138*/ OPC_CheckType, MVT::i32, ++/*287140*/ OPC_MoveParent, ++/*287141*/ OPC_MoveChild, 31, ++/*287143*/ OPC_CheckInteger, 1, ++/*287145*/ OPC_CheckType, MVT::i32, ++/*287147*/ OPC_MoveParent, ++/*287148*/ OPC_CheckType, MVT::v32i8, ++/*287150*/ OPC_MoveParent, ++/*287151*/ OPC_CheckType, MVT::v32i8, ++/*287153*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*287155*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b), LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*287163*/ /*Scope*/ 59|128,3/*443*/, /*->287608*/ ++/*287165*/ OPC_CheckChild0Same, 1, ++/*287167*/ OPC_CheckChild1Same, 0, ++/*287169*/ OPC_MoveParent, ++/*287170*/ OPC_MoveChild1, ++/*287171*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*287174*/ OPC_CheckChild0Integer, 1, ++/*287176*/ OPC_CheckChild0Type, MVT::i32, ++/*287178*/ OPC_CheckChild1Integer, 1, ++/*287180*/ OPC_CheckChild1Type, MVT::i32, ++/*287182*/ OPC_CheckChild2Integer, 1, ++/*287184*/ OPC_CheckChild2Type, MVT::i32, ++/*287186*/ OPC_CheckChild3Integer, 1, ++/*287188*/ OPC_CheckChild3Type, MVT::i32, ++/*287190*/ OPC_CheckChild4Integer, 1, ++/*287192*/ OPC_CheckChild4Type, MVT::i32, ++/*287194*/ OPC_MoveChild5, ++/*287195*/ OPC_CheckInteger, 1, ++/*287197*/ OPC_CheckType, MVT::i32, ++/*287199*/ OPC_MoveParent, ++/*287200*/ OPC_MoveChild6, ++/*287201*/ OPC_CheckInteger, 1, ++/*287203*/ OPC_CheckType, MVT::i32, ++/*287205*/ OPC_MoveParent, ++/*287206*/ OPC_MoveChild7, ++/*287207*/ OPC_CheckInteger, 1, ++/*287209*/ OPC_CheckType, MVT::i32, ++/*287211*/ OPC_MoveParent, ++/*287212*/ OPC_MoveChild, 8, ++/*287214*/ OPC_CheckInteger, 1, ++/*287216*/ OPC_CheckType, MVT::i32, ++/*287218*/ OPC_MoveParent, ++/*287219*/ OPC_MoveChild, 9, ++/*287221*/ OPC_CheckInteger, 1, ++/*287223*/ OPC_CheckType, MVT::i32, ++/*287225*/ OPC_MoveParent, ++/*287226*/ OPC_MoveChild, 10, ++/*287228*/ OPC_CheckInteger, 1, ++/*287230*/ OPC_CheckType, MVT::i32, ++/*287232*/ OPC_MoveParent, ++/*287233*/ OPC_MoveChild, 11, ++/*287235*/ OPC_CheckInteger, 1, ++/*287237*/ OPC_CheckType, MVT::i32, ++/*287239*/ OPC_MoveParent, ++/*287240*/ OPC_MoveChild, 12, ++/*287242*/ OPC_CheckInteger, 1, ++/*287244*/ OPC_CheckType, MVT::i32, ++/*287246*/ OPC_MoveParent, ++/*287247*/ OPC_MoveChild, 13, ++/*287249*/ OPC_CheckInteger, 1, ++/*287251*/ OPC_CheckType, MVT::i32, ++/*287253*/ OPC_MoveParent, ++/*287254*/ OPC_MoveChild, 14, ++/*287256*/ OPC_CheckInteger, 1, ++/*287258*/ OPC_CheckType, MVT::i32, ++/*287260*/ OPC_MoveParent, ++/*287261*/ OPC_MoveChild, 15, ++/*287263*/ OPC_CheckInteger, 1, ++/*287265*/ OPC_CheckType, MVT::i32, ++/*287267*/ OPC_MoveParent, ++/*287268*/ OPC_MoveChild, 16, ++/*287270*/ OPC_CheckInteger, 1, ++/*287272*/ OPC_CheckType, MVT::i32, ++/*287274*/ OPC_MoveParent, ++/*287275*/ OPC_MoveChild, 17, ++/*287277*/ OPC_CheckInteger, 1, ++/*287279*/ OPC_CheckType, MVT::i32, ++/*287281*/ OPC_MoveParent, ++/*287282*/ OPC_MoveChild, 18, ++/*287284*/ OPC_CheckInteger, 1, ++/*287286*/ OPC_CheckType, MVT::i32, ++/*287288*/ OPC_MoveParent, ++/*287289*/ OPC_MoveChild, 19, ++/*287291*/ OPC_CheckInteger, 1, ++/*287293*/ OPC_CheckType, MVT::i32, ++/*287295*/ OPC_MoveParent, ++/*287296*/ OPC_MoveChild, 20, ++/*287298*/ OPC_CheckInteger, 1, ++/*287300*/ OPC_CheckType, MVT::i32, ++/*287302*/ OPC_MoveParent, ++/*287303*/ OPC_MoveChild, 21, ++/*287305*/ OPC_CheckInteger, 1, ++/*287307*/ OPC_CheckType, MVT::i32, ++/*287309*/ OPC_MoveParent, ++/*287310*/ OPC_MoveChild, 22, ++/*287312*/ OPC_CheckInteger, 1, ++/*287314*/ OPC_CheckType, MVT::i32, ++/*287316*/ OPC_MoveParent, ++/*287317*/ OPC_MoveChild, 23, ++/*287319*/ OPC_CheckInteger, 1, ++/*287321*/ OPC_CheckType, MVT::i32, ++/*287323*/ OPC_MoveParent, ++/*287324*/ OPC_MoveChild, 24, ++/*287326*/ OPC_CheckInteger, 1, ++/*287328*/ OPC_CheckType, MVT::i32, ++/*287330*/ OPC_MoveParent, ++/*287331*/ OPC_MoveChild, 25, ++/*287333*/ OPC_CheckInteger, 1, ++/*287335*/ OPC_CheckType, MVT::i32, ++/*287337*/ OPC_MoveParent, ++/*287338*/ OPC_MoveChild, 26, ++/*287340*/ OPC_CheckInteger, 1, ++/*287342*/ OPC_CheckType, MVT::i32, ++/*287344*/ OPC_MoveParent, ++/*287345*/ OPC_MoveChild, 27, ++/*287347*/ OPC_CheckInteger, 1, ++/*287349*/ OPC_CheckType, MVT::i32, ++/*287351*/ OPC_MoveParent, ++/*287352*/ OPC_MoveChild, 28, ++/*287354*/ OPC_CheckInteger, 1, ++/*287356*/ OPC_CheckType, MVT::i32, ++/*287358*/ OPC_MoveParent, ++/*287359*/ OPC_MoveChild, 29, ++/*287361*/ OPC_CheckInteger, 1, ++/*287363*/ OPC_CheckType, MVT::i32, ++/*287365*/ OPC_MoveParent, ++/*287366*/ OPC_MoveChild, 30, ++/*287368*/ OPC_CheckInteger, 1, ++/*287370*/ OPC_CheckType, MVT::i32, ++/*287372*/ OPC_MoveParent, ++/*287373*/ OPC_MoveChild, 31, ++/*287375*/ OPC_CheckInteger, 1, ++/*287377*/ OPC_CheckType, MVT::i32, ++/*287379*/ OPC_MoveParent, ++/*287380*/ OPC_MoveParent, ++/*287381*/ OPC_MoveParent, ++/*287382*/ OPC_MoveParent, ++/*287383*/ OPC_MoveChild1, ++/*287384*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*287387*/ OPC_CheckChild0Integer, 1, ++/*287389*/ OPC_CheckChild0Type, MVT::i32, ++/*287391*/ OPC_CheckChild1Integer, 1, ++/*287393*/ OPC_CheckChild1Type, MVT::i32, ++/*287395*/ OPC_CheckChild2Integer, 1, ++/*287397*/ OPC_CheckChild2Type, MVT::i32, ++/*287399*/ OPC_CheckChild3Integer, 1, ++/*287401*/ OPC_CheckChild3Type, MVT::i32, ++/*287403*/ OPC_CheckChild4Integer, 1, ++/*287405*/ OPC_CheckChild4Type, MVT::i32, ++/*287407*/ OPC_MoveChild5, ++/*287408*/ OPC_CheckInteger, 1, ++/*287410*/ OPC_CheckType, MVT::i32, ++/*287412*/ OPC_MoveParent, ++/*287413*/ OPC_MoveChild6, ++/*287414*/ OPC_CheckInteger, 1, ++/*287416*/ OPC_CheckType, MVT::i32, ++/*287418*/ OPC_MoveParent, ++/*287419*/ OPC_MoveChild7, ++/*287420*/ OPC_CheckInteger, 1, ++/*287422*/ OPC_CheckType, MVT::i32, ++/*287424*/ OPC_MoveParent, ++/*287425*/ OPC_MoveChild, 8, ++/*287427*/ OPC_CheckInteger, 1, ++/*287429*/ OPC_CheckType, MVT::i32, ++/*287431*/ OPC_MoveParent, ++/*287432*/ OPC_MoveChild, 9, ++/*287434*/ OPC_CheckInteger, 1, ++/*287436*/ OPC_CheckType, MVT::i32, ++/*287438*/ OPC_MoveParent, ++/*287439*/ OPC_MoveChild, 10, ++/*287441*/ OPC_CheckInteger, 1, ++/*287443*/ OPC_CheckType, MVT::i32, ++/*287445*/ OPC_MoveParent, ++/*287446*/ OPC_MoveChild, 11, ++/*287448*/ OPC_CheckInteger, 1, ++/*287450*/ OPC_CheckType, MVT::i32, ++/*287452*/ OPC_MoveParent, ++/*287453*/ OPC_MoveChild, 12, ++/*287455*/ OPC_CheckInteger, 1, ++/*287457*/ OPC_CheckType, MVT::i32, ++/*287459*/ OPC_MoveParent, ++/*287460*/ OPC_MoveChild, 13, ++/*287462*/ OPC_CheckInteger, 1, ++/*287464*/ OPC_CheckType, MVT::i32, ++/*287466*/ OPC_MoveParent, ++/*287467*/ OPC_MoveChild, 14, ++/*287469*/ OPC_CheckInteger, 1, ++/*287471*/ OPC_CheckType, MVT::i32, ++/*287473*/ OPC_MoveParent, ++/*287474*/ OPC_MoveChild, 15, ++/*287476*/ OPC_CheckInteger, 1, ++/*287478*/ OPC_CheckType, MVT::i32, ++/*287480*/ OPC_MoveParent, ++/*287481*/ OPC_MoveChild, 16, ++/*287483*/ OPC_CheckInteger, 1, ++/*287485*/ OPC_CheckType, MVT::i32, ++/*287487*/ OPC_MoveParent, ++/*287488*/ OPC_MoveChild, 17, ++/*287490*/ OPC_CheckInteger, 1, ++/*287492*/ OPC_CheckType, MVT::i32, ++/*287494*/ OPC_MoveParent, ++/*287495*/ OPC_MoveChild, 18, ++/*287497*/ OPC_CheckInteger, 1, ++/*287499*/ OPC_CheckType, MVT::i32, ++/*287501*/ OPC_MoveParent, ++/*287502*/ OPC_MoveChild, 19, ++/*287504*/ OPC_CheckInteger, 1, ++/*287506*/ OPC_CheckType, MVT::i32, ++/*287508*/ OPC_MoveParent, ++/*287509*/ OPC_MoveChild, 20, ++/*287511*/ OPC_CheckInteger, 1, ++/*287513*/ OPC_CheckType, MVT::i32, ++/*287515*/ OPC_MoveParent, ++/*287516*/ OPC_MoveChild, 21, ++/*287518*/ OPC_CheckInteger, 1, ++/*287520*/ OPC_CheckType, MVT::i32, ++/*287522*/ OPC_MoveParent, ++/*287523*/ OPC_MoveChild, 22, ++/*287525*/ OPC_CheckInteger, 1, ++/*287527*/ OPC_CheckType, MVT::i32, ++/*287529*/ OPC_MoveParent, ++/*287530*/ OPC_MoveChild, 23, ++/*287532*/ OPC_CheckInteger, 1, ++/*287534*/ OPC_CheckType, MVT::i32, ++/*287536*/ OPC_MoveParent, ++/*287537*/ OPC_MoveChild, 24, ++/*287539*/ OPC_CheckInteger, 1, ++/*287541*/ OPC_CheckType, MVT::i32, ++/*287543*/ OPC_MoveParent, ++/*287544*/ OPC_MoveChild, 25, ++/*287546*/ OPC_CheckInteger, 1, ++/*287548*/ OPC_CheckType, MVT::i32, ++/*287550*/ OPC_MoveParent, ++/*287551*/ OPC_MoveChild, 26, ++/*287553*/ OPC_CheckInteger, 1, ++/*287555*/ OPC_CheckType, MVT::i32, ++/*287557*/ OPC_MoveParent, ++/*287558*/ OPC_MoveChild, 27, ++/*287560*/ OPC_CheckInteger, 1, ++/*287562*/ OPC_CheckType, MVT::i32, ++/*287564*/ OPC_MoveParent, ++/*287565*/ OPC_MoveChild, 28, ++/*287567*/ OPC_CheckInteger, 1, ++/*287569*/ OPC_CheckType, MVT::i32, ++/*287571*/ OPC_MoveParent, ++/*287572*/ OPC_MoveChild, 29, ++/*287574*/ OPC_CheckInteger, 1, ++/*287576*/ OPC_CheckType, MVT::i32, ++/*287578*/ OPC_MoveParent, ++/*287579*/ OPC_MoveChild, 30, ++/*287581*/ OPC_CheckInteger, 1, ++/*287583*/ OPC_CheckType, MVT::i32, ++/*287585*/ OPC_MoveParent, ++/*287586*/ OPC_MoveChild, 31, ++/*287588*/ OPC_CheckInteger, 1, ++/*287590*/ OPC_CheckType, MVT::i32, ++/*287592*/ OPC_MoveParent, ++/*287593*/ OPC_CheckType, MVT::v32i8, ++/*287595*/ OPC_MoveParent, ++/*287596*/ OPC_CheckType, MVT::v32i8, ++/*287598*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*287600*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b), LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*287608*/ /*Scope*/ 59|128,3/*443*/, /*->288053*/ ++/*287610*/ OPC_CheckChild0Same, 0, ++/*287612*/ OPC_CheckChild1Same, 1, ++/*287614*/ OPC_MoveParent, ++/*287615*/ OPC_MoveChild1, ++/*287616*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*287619*/ OPC_CheckChild0Integer, 1, ++/*287621*/ OPC_CheckChild0Type, MVT::i32, ++/*287623*/ OPC_CheckChild1Integer, 1, ++/*287625*/ OPC_CheckChild1Type, MVT::i32, ++/*287627*/ OPC_CheckChild2Integer, 1, ++/*287629*/ OPC_CheckChild2Type, MVT::i32, ++/*287631*/ OPC_CheckChild3Integer, 1, ++/*287633*/ OPC_CheckChild3Type, MVT::i32, ++/*287635*/ OPC_CheckChild4Integer, 1, ++/*287637*/ OPC_CheckChild4Type, MVT::i32, ++/*287639*/ OPC_MoveChild5, ++/*287640*/ OPC_CheckInteger, 1, ++/*287642*/ OPC_CheckType, MVT::i32, ++/*287644*/ OPC_MoveParent, ++/*287645*/ OPC_MoveChild6, ++/*287646*/ OPC_CheckInteger, 1, ++/*287648*/ OPC_CheckType, MVT::i32, ++/*287650*/ OPC_MoveParent, ++/*287651*/ OPC_MoveChild7, ++/*287652*/ OPC_CheckInteger, 1, ++/*287654*/ OPC_CheckType, MVT::i32, ++/*287656*/ OPC_MoveParent, ++/*287657*/ OPC_MoveChild, 8, ++/*287659*/ OPC_CheckInteger, 1, ++/*287661*/ OPC_CheckType, MVT::i32, ++/*287663*/ OPC_MoveParent, ++/*287664*/ OPC_MoveChild, 9, ++/*287666*/ OPC_CheckInteger, 1, ++/*287668*/ OPC_CheckType, MVT::i32, ++/*287670*/ OPC_MoveParent, ++/*287671*/ OPC_MoveChild, 10, ++/*287673*/ OPC_CheckInteger, 1, ++/*287675*/ OPC_CheckType, MVT::i32, ++/*287677*/ OPC_MoveParent, ++/*287678*/ OPC_MoveChild, 11, ++/*287680*/ OPC_CheckInteger, 1, ++/*287682*/ OPC_CheckType, MVT::i32, ++/*287684*/ OPC_MoveParent, ++/*287685*/ OPC_MoveChild, 12, ++/*287687*/ OPC_CheckInteger, 1, ++/*287689*/ OPC_CheckType, MVT::i32, ++/*287691*/ OPC_MoveParent, ++/*287692*/ OPC_MoveChild, 13, ++/*287694*/ OPC_CheckInteger, 1, ++/*287696*/ OPC_CheckType, MVT::i32, ++/*287698*/ OPC_MoveParent, ++/*287699*/ OPC_MoveChild, 14, ++/*287701*/ OPC_CheckInteger, 1, ++/*287703*/ OPC_CheckType, MVT::i32, ++/*287705*/ OPC_MoveParent, ++/*287706*/ OPC_MoveChild, 15, ++/*287708*/ OPC_CheckInteger, 1, ++/*287710*/ OPC_CheckType, MVT::i32, ++/*287712*/ OPC_MoveParent, ++/*287713*/ OPC_MoveChild, 16, ++/*287715*/ OPC_CheckInteger, 1, ++/*287717*/ OPC_CheckType, MVT::i32, ++/*287719*/ OPC_MoveParent, ++/*287720*/ OPC_MoveChild, 17, ++/*287722*/ OPC_CheckInteger, 1, ++/*287724*/ OPC_CheckType, MVT::i32, ++/*287726*/ OPC_MoveParent, ++/*287727*/ OPC_MoveChild, 18, ++/*287729*/ OPC_CheckInteger, 1, ++/*287731*/ OPC_CheckType, MVT::i32, ++/*287733*/ OPC_MoveParent, ++/*287734*/ OPC_MoveChild, 19, ++/*287736*/ OPC_CheckInteger, 1, ++/*287738*/ OPC_CheckType, MVT::i32, ++/*287740*/ OPC_MoveParent, ++/*287741*/ OPC_MoveChild, 20, ++/*287743*/ OPC_CheckInteger, 1, ++/*287745*/ OPC_CheckType, MVT::i32, ++/*287747*/ OPC_MoveParent, ++/*287748*/ OPC_MoveChild, 21, ++/*287750*/ OPC_CheckInteger, 1, ++/*287752*/ OPC_CheckType, MVT::i32, ++/*287754*/ OPC_MoveParent, ++/*287755*/ OPC_MoveChild, 22, ++/*287757*/ OPC_CheckInteger, 1, ++/*287759*/ OPC_CheckType, MVT::i32, ++/*287761*/ OPC_MoveParent, ++/*287762*/ OPC_MoveChild, 23, ++/*287764*/ OPC_CheckInteger, 1, ++/*287766*/ OPC_CheckType, MVT::i32, ++/*287768*/ OPC_MoveParent, ++/*287769*/ OPC_MoveChild, 24, ++/*287771*/ OPC_CheckInteger, 1, ++/*287773*/ OPC_CheckType, MVT::i32, ++/*287775*/ OPC_MoveParent, ++/*287776*/ OPC_MoveChild, 25, ++/*287778*/ OPC_CheckInteger, 1, ++/*287780*/ OPC_CheckType, MVT::i32, ++/*287782*/ OPC_MoveParent, ++/*287783*/ OPC_MoveChild, 26, ++/*287785*/ OPC_CheckInteger, 1, ++/*287787*/ OPC_CheckType, MVT::i32, ++/*287789*/ OPC_MoveParent, ++/*287790*/ OPC_MoveChild, 27, ++/*287792*/ OPC_CheckInteger, 1, ++/*287794*/ OPC_CheckType, MVT::i32, ++/*287796*/ OPC_MoveParent, ++/*287797*/ OPC_MoveChild, 28, ++/*287799*/ OPC_CheckInteger, 1, ++/*287801*/ OPC_CheckType, MVT::i32, ++/*287803*/ OPC_MoveParent, ++/*287804*/ OPC_MoveChild, 29, ++/*287806*/ OPC_CheckInteger, 1, ++/*287808*/ OPC_CheckType, MVT::i32, ++/*287810*/ OPC_MoveParent, ++/*287811*/ OPC_MoveChild, 30, ++/*287813*/ OPC_CheckInteger, 1, ++/*287815*/ OPC_CheckType, MVT::i32, ++/*287817*/ OPC_MoveParent, ++/*287818*/ OPC_MoveChild, 31, ++/*287820*/ OPC_CheckInteger, 1, ++/*287822*/ OPC_CheckType, MVT::i32, ++/*287824*/ OPC_MoveParent, ++/*287825*/ OPC_MoveParent, ++/*287826*/ OPC_MoveParent, ++/*287827*/ OPC_MoveParent, ++/*287828*/ OPC_MoveChild1, ++/*287829*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*287832*/ OPC_CheckChild0Integer, 1, ++/*287834*/ OPC_CheckChild0Type, MVT::i32, ++/*287836*/ OPC_CheckChild1Integer, 1, ++/*287838*/ OPC_CheckChild1Type, MVT::i32, ++/*287840*/ OPC_CheckChild2Integer, 1, ++/*287842*/ OPC_CheckChild2Type, MVT::i32, ++/*287844*/ OPC_CheckChild3Integer, 1, ++/*287846*/ OPC_CheckChild3Type, MVT::i32, ++/*287848*/ OPC_CheckChild4Integer, 1, ++/*287850*/ OPC_CheckChild4Type, MVT::i32, ++/*287852*/ OPC_MoveChild5, ++/*287853*/ OPC_CheckInteger, 1, ++/*287855*/ OPC_CheckType, MVT::i32, ++/*287857*/ OPC_MoveParent, ++/*287858*/ OPC_MoveChild6, ++/*287859*/ OPC_CheckInteger, 1, ++/*287861*/ OPC_CheckType, MVT::i32, ++/*287863*/ OPC_MoveParent, ++/*287864*/ OPC_MoveChild7, ++/*287865*/ OPC_CheckInteger, 1, ++/*287867*/ OPC_CheckType, MVT::i32, ++/*287869*/ OPC_MoveParent, ++/*287870*/ OPC_MoveChild, 8, ++/*287872*/ OPC_CheckInteger, 1, ++/*287874*/ OPC_CheckType, MVT::i32, ++/*287876*/ OPC_MoveParent, ++/*287877*/ OPC_MoveChild, 9, ++/*287879*/ OPC_CheckInteger, 1, ++/*287881*/ OPC_CheckType, MVT::i32, ++/*287883*/ OPC_MoveParent, ++/*287884*/ OPC_MoveChild, 10, ++/*287886*/ OPC_CheckInteger, 1, ++/*287888*/ OPC_CheckType, MVT::i32, ++/*287890*/ OPC_MoveParent, ++/*287891*/ OPC_MoveChild, 11, ++/*287893*/ OPC_CheckInteger, 1, ++/*287895*/ OPC_CheckType, MVT::i32, ++/*287897*/ OPC_MoveParent, ++/*287898*/ OPC_MoveChild, 12, ++/*287900*/ OPC_CheckInteger, 1, ++/*287902*/ OPC_CheckType, MVT::i32, ++/*287904*/ OPC_MoveParent, ++/*287905*/ OPC_MoveChild, 13, ++/*287907*/ OPC_CheckInteger, 1, ++/*287909*/ OPC_CheckType, MVT::i32, ++/*287911*/ OPC_MoveParent, ++/*287912*/ OPC_MoveChild, 14, ++/*287914*/ OPC_CheckInteger, 1, ++/*287916*/ OPC_CheckType, MVT::i32, ++/*287918*/ OPC_MoveParent, ++/*287919*/ OPC_MoveChild, 15, ++/*287921*/ OPC_CheckInteger, 1, ++/*287923*/ OPC_CheckType, MVT::i32, ++/*287925*/ OPC_MoveParent, ++/*287926*/ OPC_MoveChild, 16, ++/*287928*/ OPC_CheckInteger, 1, ++/*287930*/ OPC_CheckType, MVT::i32, ++/*287932*/ OPC_MoveParent, ++/*287933*/ OPC_MoveChild, 17, ++/*287935*/ OPC_CheckInteger, 1, ++/*287937*/ OPC_CheckType, MVT::i32, ++/*287939*/ OPC_MoveParent, ++/*287940*/ OPC_MoveChild, 18, ++/*287942*/ OPC_CheckInteger, 1, ++/*287944*/ OPC_CheckType, MVT::i32, ++/*287946*/ OPC_MoveParent, ++/*287947*/ OPC_MoveChild, 19, ++/*287949*/ OPC_CheckInteger, 1, ++/*287951*/ OPC_CheckType, MVT::i32, ++/*287953*/ OPC_MoveParent, ++/*287954*/ OPC_MoveChild, 20, ++/*287956*/ OPC_CheckInteger, 1, ++/*287958*/ OPC_CheckType, MVT::i32, ++/*287960*/ OPC_MoveParent, ++/*287961*/ OPC_MoveChild, 21, ++/*287963*/ OPC_CheckInteger, 1, ++/*287965*/ OPC_CheckType, MVT::i32, ++/*287967*/ OPC_MoveParent, ++/*287968*/ OPC_MoveChild, 22, ++/*287970*/ OPC_CheckInteger, 1, ++/*287972*/ OPC_CheckType, MVT::i32, ++/*287974*/ OPC_MoveParent, ++/*287975*/ OPC_MoveChild, 23, ++/*287977*/ OPC_CheckInteger, 1, ++/*287979*/ OPC_CheckType, MVT::i32, ++/*287981*/ OPC_MoveParent, ++/*287982*/ OPC_MoveChild, 24, ++/*287984*/ OPC_CheckInteger, 1, ++/*287986*/ OPC_CheckType, MVT::i32, ++/*287988*/ OPC_MoveParent, ++/*287989*/ OPC_MoveChild, 25, ++/*287991*/ OPC_CheckInteger, 1, ++/*287993*/ OPC_CheckType, MVT::i32, ++/*287995*/ OPC_MoveParent, ++/*287996*/ OPC_MoveChild, 26, ++/*287998*/ OPC_CheckInteger, 1, ++/*288000*/ OPC_CheckType, MVT::i32, ++/*288002*/ OPC_MoveParent, ++/*288003*/ OPC_MoveChild, 27, ++/*288005*/ OPC_CheckInteger, 1, ++/*288007*/ OPC_CheckType, MVT::i32, ++/*288009*/ OPC_MoveParent, ++/*288010*/ OPC_MoveChild, 28, ++/*288012*/ OPC_CheckInteger, 1, ++/*288014*/ OPC_CheckType, MVT::i32, ++/*288016*/ OPC_MoveParent, ++/*288017*/ OPC_MoveChild, 29, ++/*288019*/ OPC_CheckInteger, 1, ++/*288021*/ OPC_CheckType, MVT::i32, ++/*288023*/ OPC_MoveParent, ++/*288024*/ OPC_MoveChild, 30, ++/*288026*/ OPC_CheckInteger, 1, ++/*288028*/ OPC_CheckType, MVT::i32, ++/*288030*/ OPC_MoveParent, ++/*288031*/ OPC_MoveChild, 31, ++/*288033*/ OPC_CheckInteger, 1, ++/*288035*/ OPC_CheckType, MVT::i32, ++/*288037*/ OPC_MoveParent, ++/*288038*/ OPC_CheckType, MVT::v32i8, ++/*288040*/ OPC_MoveParent, ++/*288041*/ OPC_CheckType, MVT::v32i8, ++/*288043*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*288045*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b), LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*288053*/ 0, /*End of Scope*/ ++/*288054*/ /*Scope*/ 126|128,6/*894*/, /*->288950*/ ++/*288056*/ OPC_CheckChild0Same, 0, ++/*288058*/ OPC_MoveChild1, ++/*288059*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*288062*/ OPC_Scope, 57|128,3/*441*/, /*->288506*/ // 2 children in Scope ++/*288065*/ OPC_MoveChild0, ++/*288066*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*288069*/ OPC_CheckChild0Integer, 1, ++/*288071*/ OPC_CheckChild0Type, MVT::i32, ++/*288073*/ OPC_CheckChild1Integer, 1, ++/*288075*/ OPC_CheckChild1Type, MVT::i32, ++/*288077*/ OPC_CheckChild2Integer, 1, ++/*288079*/ OPC_CheckChild2Type, MVT::i32, ++/*288081*/ OPC_CheckChild3Integer, 1, ++/*288083*/ OPC_CheckChild3Type, MVT::i32, ++/*288085*/ OPC_CheckChild4Integer, 1, ++/*288087*/ OPC_CheckChild4Type, MVT::i32, ++/*288089*/ OPC_MoveChild5, ++/*288090*/ OPC_CheckInteger, 1, ++/*288092*/ OPC_CheckType, MVT::i32, ++/*288094*/ OPC_MoveParent, ++/*288095*/ OPC_MoveChild6, ++/*288096*/ OPC_CheckInteger, 1, ++/*288098*/ OPC_CheckType, MVT::i32, ++/*288100*/ OPC_MoveParent, ++/*288101*/ OPC_MoveChild7, ++/*288102*/ OPC_CheckInteger, 1, ++/*288104*/ OPC_CheckType, MVT::i32, ++/*288106*/ OPC_MoveParent, ++/*288107*/ OPC_MoveChild, 8, ++/*288109*/ OPC_CheckInteger, 1, ++/*288111*/ OPC_CheckType, MVT::i32, ++/*288113*/ OPC_MoveParent, ++/*288114*/ OPC_MoveChild, 9, ++/*288116*/ OPC_CheckInteger, 1, ++/*288118*/ OPC_CheckType, MVT::i32, ++/*288120*/ OPC_MoveParent, ++/*288121*/ OPC_MoveChild, 10, ++/*288123*/ OPC_CheckInteger, 1, ++/*288125*/ OPC_CheckType, MVT::i32, ++/*288127*/ OPC_MoveParent, ++/*288128*/ OPC_MoveChild, 11, ++/*288130*/ OPC_CheckInteger, 1, ++/*288132*/ OPC_CheckType, MVT::i32, ++/*288134*/ OPC_MoveParent, ++/*288135*/ OPC_MoveChild, 12, ++/*288137*/ OPC_CheckInteger, 1, ++/*288139*/ OPC_CheckType, MVT::i32, ++/*288141*/ OPC_MoveParent, ++/*288142*/ OPC_MoveChild, 13, ++/*288144*/ OPC_CheckInteger, 1, ++/*288146*/ OPC_CheckType, MVT::i32, ++/*288148*/ OPC_MoveParent, ++/*288149*/ OPC_MoveChild, 14, ++/*288151*/ OPC_CheckInteger, 1, ++/*288153*/ OPC_CheckType, MVT::i32, ++/*288155*/ OPC_MoveParent, ++/*288156*/ OPC_MoveChild, 15, ++/*288158*/ OPC_CheckInteger, 1, ++/*288160*/ OPC_CheckType, MVT::i32, ++/*288162*/ OPC_MoveParent, ++/*288163*/ OPC_MoveChild, 16, ++/*288165*/ OPC_CheckInteger, 1, ++/*288167*/ OPC_CheckType, MVT::i32, ++/*288169*/ OPC_MoveParent, ++/*288170*/ OPC_MoveChild, 17, ++/*288172*/ OPC_CheckInteger, 1, ++/*288174*/ OPC_CheckType, MVT::i32, ++/*288176*/ OPC_MoveParent, ++/*288177*/ OPC_MoveChild, 18, ++/*288179*/ OPC_CheckInteger, 1, ++/*288181*/ OPC_CheckType, MVT::i32, ++/*288183*/ OPC_MoveParent, ++/*288184*/ OPC_MoveChild, 19, ++/*288186*/ OPC_CheckInteger, 1, ++/*288188*/ OPC_CheckType, MVT::i32, ++/*288190*/ OPC_MoveParent, ++/*288191*/ OPC_MoveChild, 20, ++/*288193*/ OPC_CheckInteger, 1, ++/*288195*/ OPC_CheckType, MVT::i32, ++/*288197*/ OPC_MoveParent, ++/*288198*/ OPC_MoveChild, 21, ++/*288200*/ OPC_CheckInteger, 1, ++/*288202*/ OPC_CheckType, MVT::i32, ++/*288204*/ OPC_MoveParent, ++/*288205*/ OPC_MoveChild, 22, ++/*288207*/ OPC_CheckInteger, 1, ++/*288209*/ OPC_CheckType, MVT::i32, ++/*288211*/ OPC_MoveParent, ++/*288212*/ OPC_MoveChild, 23, ++/*288214*/ OPC_CheckInteger, 1, ++/*288216*/ OPC_CheckType, MVT::i32, ++/*288218*/ OPC_MoveParent, ++/*288219*/ OPC_MoveChild, 24, ++/*288221*/ OPC_CheckInteger, 1, ++/*288223*/ OPC_CheckType, MVT::i32, ++/*288225*/ OPC_MoveParent, ++/*288226*/ OPC_MoveChild, 25, ++/*288228*/ OPC_CheckInteger, 1, ++/*288230*/ OPC_CheckType, MVT::i32, ++/*288232*/ OPC_MoveParent, ++/*288233*/ OPC_MoveChild, 26, ++/*288235*/ OPC_CheckInteger, 1, ++/*288237*/ OPC_CheckType, MVT::i32, ++/*288239*/ OPC_MoveParent, ++/*288240*/ OPC_MoveChild, 27, ++/*288242*/ OPC_CheckInteger, 1, ++/*288244*/ OPC_CheckType, MVT::i32, ++/*288246*/ OPC_MoveParent, ++/*288247*/ OPC_MoveChild, 28, ++/*288249*/ OPC_CheckInteger, 1, ++/*288251*/ OPC_CheckType, MVT::i32, ++/*288253*/ OPC_MoveParent, ++/*288254*/ OPC_MoveChild, 29, ++/*288256*/ OPC_CheckInteger, 1, ++/*288258*/ OPC_CheckType, MVT::i32, ++/*288260*/ OPC_MoveParent, ++/*288261*/ OPC_MoveChild, 30, ++/*288263*/ OPC_CheckInteger, 1, ++/*288265*/ OPC_CheckType, MVT::i32, ++/*288267*/ OPC_MoveParent, ++/*288268*/ OPC_MoveChild, 31, ++/*288270*/ OPC_CheckInteger, 1, ++/*288272*/ OPC_CheckType, MVT::i32, ++/*288274*/ OPC_MoveParent, ++/*288275*/ OPC_MoveParent, ++/*288276*/ OPC_CheckChild1Same, 1, ++/*288278*/ OPC_MoveParent, ++/*288279*/ OPC_MoveParent, ++/*288280*/ OPC_MoveParent, ++/*288281*/ OPC_MoveChild1, ++/*288282*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*288285*/ OPC_CheckChild0Integer, 1, ++/*288287*/ OPC_CheckChild0Type, MVT::i32, ++/*288289*/ OPC_CheckChild1Integer, 1, ++/*288291*/ OPC_CheckChild1Type, MVT::i32, ++/*288293*/ OPC_CheckChild2Integer, 1, ++/*288295*/ OPC_CheckChild2Type, MVT::i32, ++/*288297*/ OPC_CheckChild3Integer, 1, ++/*288299*/ OPC_CheckChild3Type, MVT::i32, ++/*288301*/ OPC_CheckChild4Integer, 1, ++/*288303*/ OPC_CheckChild4Type, MVT::i32, ++/*288305*/ OPC_MoveChild5, ++/*288306*/ OPC_CheckInteger, 1, ++/*288308*/ OPC_CheckType, MVT::i32, ++/*288310*/ OPC_MoveParent, ++/*288311*/ OPC_MoveChild6, ++/*288312*/ OPC_CheckInteger, 1, ++/*288314*/ OPC_CheckType, MVT::i32, ++/*288316*/ OPC_MoveParent, ++/*288317*/ OPC_MoveChild7, ++/*288318*/ OPC_CheckInteger, 1, ++/*288320*/ OPC_CheckType, MVT::i32, ++/*288322*/ OPC_MoveParent, ++/*288323*/ OPC_MoveChild, 8, ++/*288325*/ OPC_CheckInteger, 1, ++/*288327*/ OPC_CheckType, MVT::i32, ++/*288329*/ OPC_MoveParent, ++/*288330*/ OPC_MoveChild, 9, ++/*288332*/ OPC_CheckInteger, 1, ++/*288334*/ OPC_CheckType, MVT::i32, ++/*288336*/ OPC_MoveParent, ++/*288337*/ OPC_MoveChild, 10, ++/*288339*/ OPC_CheckInteger, 1, ++/*288341*/ OPC_CheckType, MVT::i32, ++/*288343*/ OPC_MoveParent, ++/*288344*/ OPC_MoveChild, 11, ++/*288346*/ OPC_CheckInteger, 1, ++/*288348*/ OPC_CheckType, MVT::i32, ++/*288350*/ OPC_MoveParent, ++/*288351*/ OPC_MoveChild, 12, ++/*288353*/ OPC_CheckInteger, 1, ++/*288355*/ OPC_CheckType, MVT::i32, ++/*288357*/ OPC_MoveParent, ++/*288358*/ OPC_MoveChild, 13, ++/*288360*/ OPC_CheckInteger, 1, ++/*288362*/ OPC_CheckType, MVT::i32, ++/*288364*/ OPC_MoveParent, ++/*288365*/ OPC_MoveChild, 14, ++/*288367*/ OPC_CheckInteger, 1, ++/*288369*/ OPC_CheckType, MVT::i32, ++/*288371*/ OPC_MoveParent, ++/*288372*/ OPC_MoveChild, 15, ++/*288374*/ OPC_CheckInteger, 1, ++/*288376*/ OPC_CheckType, MVT::i32, ++/*288378*/ OPC_MoveParent, ++/*288379*/ OPC_MoveChild, 16, ++/*288381*/ OPC_CheckInteger, 1, ++/*288383*/ OPC_CheckType, MVT::i32, ++/*288385*/ OPC_MoveParent, ++/*288386*/ OPC_MoveChild, 17, ++/*288388*/ OPC_CheckInteger, 1, ++/*288390*/ OPC_CheckType, MVT::i32, ++/*288392*/ OPC_MoveParent, ++/*288393*/ OPC_MoveChild, 18, ++/*288395*/ OPC_CheckInteger, 1, ++/*288397*/ OPC_CheckType, MVT::i32, ++/*288399*/ OPC_MoveParent, ++/*288400*/ OPC_MoveChild, 19, ++/*288402*/ OPC_CheckInteger, 1, ++/*288404*/ OPC_CheckType, MVT::i32, ++/*288406*/ OPC_MoveParent, ++/*288407*/ OPC_MoveChild, 20, ++/*288409*/ OPC_CheckInteger, 1, ++/*288411*/ OPC_CheckType, MVT::i32, ++/*288413*/ OPC_MoveParent, ++/*288414*/ OPC_MoveChild, 21, ++/*288416*/ OPC_CheckInteger, 1, ++/*288418*/ OPC_CheckType, MVT::i32, ++/*288420*/ OPC_MoveParent, ++/*288421*/ OPC_MoveChild, 22, ++/*288423*/ OPC_CheckInteger, 1, ++/*288425*/ OPC_CheckType, MVT::i32, ++/*288427*/ OPC_MoveParent, ++/*288428*/ OPC_MoveChild, 23, ++/*288430*/ OPC_CheckInteger, 1, ++/*288432*/ OPC_CheckType, MVT::i32, ++/*288434*/ OPC_MoveParent, ++/*288435*/ OPC_MoveChild, 24, ++/*288437*/ OPC_CheckInteger, 1, ++/*288439*/ OPC_CheckType, MVT::i32, ++/*288441*/ OPC_MoveParent, ++/*288442*/ OPC_MoveChild, 25, ++/*288444*/ OPC_CheckInteger, 1, ++/*288446*/ OPC_CheckType, MVT::i32, ++/*288448*/ OPC_MoveParent, ++/*288449*/ OPC_MoveChild, 26, ++/*288451*/ OPC_CheckInteger, 1, ++/*288453*/ OPC_CheckType, MVT::i32, ++/*288455*/ OPC_MoveParent, ++/*288456*/ OPC_MoveChild, 27, ++/*288458*/ OPC_CheckInteger, 1, ++/*288460*/ OPC_CheckType, MVT::i32, ++/*288462*/ OPC_MoveParent, ++/*288463*/ OPC_MoveChild, 28, ++/*288465*/ OPC_CheckInteger, 1, ++/*288467*/ OPC_CheckType, MVT::i32, ++/*288469*/ OPC_MoveParent, ++/*288470*/ OPC_MoveChild, 29, ++/*288472*/ OPC_CheckInteger, 1, ++/*288474*/ OPC_CheckType, MVT::i32, ++/*288476*/ OPC_MoveParent, ++/*288477*/ OPC_MoveChild, 30, ++/*288479*/ OPC_CheckInteger, 1, ++/*288481*/ OPC_CheckType, MVT::i32, ++/*288483*/ OPC_MoveParent, ++/*288484*/ OPC_MoveChild, 31, ++/*288486*/ OPC_CheckInteger, 1, ++/*288488*/ OPC_CheckType, MVT::i32, ++/*288490*/ OPC_MoveParent, ++/*288491*/ OPC_CheckType, MVT::v32i8, ++/*288493*/ OPC_MoveParent, ++/*288494*/ OPC_CheckType, MVT::v32i8, ++/*288496*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*288498*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b), LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*288506*/ /*Scope*/ 57|128,3/*441*/, /*->288949*/ ++/*288508*/ OPC_CheckChild0Same, 1, ++/*288510*/ OPC_MoveChild1, ++/*288511*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*288514*/ OPC_CheckChild0Integer, 1, ++/*288516*/ OPC_CheckChild0Type, MVT::i32, ++/*288518*/ OPC_CheckChild1Integer, 1, ++/*288520*/ OPC_CheckChild1Type, MVT::i32, ++/*288522*/ OPC_CheckChild2Integer, 1, ++/*288524*/ OPC_CheckChild2Type, MVT::i32, ++/*288526*/ OPC_CheckChild3Integer, 1, ++/*288528*/ OPC_CheckChild3Type, MVT::i32, ++/*288530*/ OPC_CheckChild4Integer, 1, ++/*288532*/ OPC_CheckChild4Type, MVT::i32, ++/*288534*/ OPC_MoveChild5, ++/*288535*/ OPC_CheckInteger, 1, ++/*288537*/ OPC_CheckType, MVT::i32, ++/*288539*/ OPC_MoveParent, ++/*288540*/ OPC_MoveChild6, ++/*288541*/ OPC_CheckInteger, 1, ++/*288543*/ OPC_CheckType, MVT::i32, ++/*288545*/ OPC_MoveParent, ++/*288546*/ OPC_MoveChild7, ++/*288547*/ OPC_CheckInteger, 1, ++/*288549*/ OPC_CheckType, MVT::i32, ++/*288551*/ OPC_MoveParent, ++/*288552*/ OPC_MoveChild, 8, ++/*288554*/ OPC_CheckInteger, 1, ++/*288556*/ OPC_CheckType, MVT::i32, ++/*288558*/ OPC_MoveParent, ++/*288559*/ OPC_MoveChild, 9, ++/*288561*/ OPC_CheckInteger, 1, ++/*288563*/ OPC_CheckType, MVT::i32, ++/*288565*/ OPC_MoveParent, ++/*288566*/ OPC_MoveChild, 10, ++/*288568*/ OPC_CheckInteger, 1, ++/*288570*/ OPC_CheckType, MVT::i32, ++/*288572*/ OPC_MoveParent, ++/*288573*/ OPC_MoveChild, 11, ++/*288575*/ OPC_CheckInteger, 1, ++/*288577*/ OPC_CheckType, MVT::i32, ++/*288579*/ OPC_MoveParent, ++/*288580*/ OPC_MoveChild, 12, ++/*288582*/ OPC_CheckInteger, 1, ++/*288584*/ OPC_CheckType, MVT::i32, ++/*288586*/ OPC_MoveParent, ++/*288587*/ OPC_MoveChild, 13, ++/*288589*/ OPC_CheckInteger, 1, ++/*288591*/ OPC_CheckType, MVT::i32, ++/*288593*/ OPC_MoveParent, ++/*288594*/ OPC_MoveChild, 14, ++/*288596*/ OPC_CheckInteger, 1, ++/*288598*/ OPC_CheckType, MVT::i32, ++/*288600*/ OPC_MoveParent, ++/*288601*/ OPC_MoveChild, 15, ++/*288603*/ OPC_CheckInteger, 1, ++/*288605*/ OPC_CheckType, MVT::i32, ++/*288607*/ OPC_MoveParent, ++/*288608*/ OPC_MoveChild, 16, ++/*288610*/ OPC_CheckInteger, 1, ++/*288612*/ OPC_CheckType, MVT::i32, ++/*288614*/ OPC_MoveParent, ++/*288615*/ OPC_MoveChild, 17, ++/*288617*/ OPC_CheckInteger, 1, ++/*288619*/ OPC_CheckType, MVT::i32, ++/*288621*/ OPC_MoveParent, ++/*288622*/ OPC_MoveChild, 18, ++/*288624*/ OPC_CheckInteger, 1, ++/*288626*/ OPC_CheckType, MVT::i32, ++/*288628*/ OPC_MoveParent, ++/*288629*/ OPC_MoveChild, 19, ++/*288631*/ OPC_CheckInteger, 1, ++/*288633*/ OPC_CheckType, MVT::i32, ++/*288635*/ OPC_MoveParent, ++/*288636*/ OPC_MoveChild, 20, ++/*288638*/ OPC_CheckInteger, 1, ++/*288640*/ OPC_CheckType, MVT::i32, ++/*288642*/ OPC_MoveParent, ++/*288643*/ OPC_MoveChild, 21, ++/*288645*/ OPC_CheckInteger, 1, ++/*288647*/ OPC_CheckType, MVT::i32, ++/*288649*/ OPC_MoveParent, ++/*288650*/ OPC_MoveChild, 22, ++/*288652*/ OPC_CheckInteger, 1, ++/*288654*/ OPC_CheckType, MVT::i32, ++/*288656*/ OPC_MoveParent, ++/*288657*/ OPC_MoveChild, 23, ++/*288659*/ OPC_CheckInteger, 1, ++/*288661*/ OPC_CheckType, MVT::i32, ++/*288663*/ OPC_MoveParent, ++/*288664*/ OPC_MoveChild, 24, ++/*288666*/ OPC_CheckInteger, 1, ++/*288668*/ OPC_CheckType, MVT::i32, ++/*288670*/ OPC_MoveParent, ++/*288671*/ OPC_MoveChild, 25, ++/*288673*/ OPC_CheckInteger, 1, ++/*288675*/ OPC_CheckType, MVT::i32, ++/*288677*/ OPC_MoveParent, ++/*288678*/ OPC_MoveChild, 26, ++/*288680*/ OPC_CheckInteger, 1, ++/*288682*/ OPC_CheckType, MVT::i32, ++/*288684*/ OPC_MoveParent, ++/*288685*/ OPC_MoveChild, 27, ++/*288687*/ OPC_CheckInteger, 1, ++/*288689*/ OPC_CheckType, MVT::i32, ++/*288691*/ OPC_MoveParent, ++/*288692*/ OPC_MoveChild, 28, ++/*288694*/ OPC_CheckInteger, 1, ++/*288696*/ OPC_CheckType, MVT::i32, ++/*288698*/ OPC_MoveParent, ++/*288699*/ OPC_MoveChild, 29, ++/*288701*/ OPC_CheckInteger, 1, ++/*288703*/ OPC_CheckType, MVT::i32, ++/*288705*/ OPC_MoveParent, ++/*288706*/ OPC_MoveChild, 30, ++/*288708*/ OPC_CheckInteger, 1, ++/*288710*/ OPC_CheckType, MVT::i32, ++/*288712*/ OPC_MoveParent, ++/*288713*/ OPC_MoveChild, 31, ++/*288715*/ OPC_CheckInteger, 1, ++/*288717*/ OPC_CheckType, MVT::i32, ++/*288719*/ OPC_MoveParent, ++/*288720*/ OPC_MoveParent, ++/*288721*/ OPC_MoveParent, ++/*288722*/ OPC_MoveParent, ++/*288723*/ OPC_MoveParent, ++/*288724*/ OPC_MoveChild1, ++/*288725*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*288728*/ OPC_CheckChild0Integer, 1, ++/*288730*/ OPC_CheckChild0Type, MVT::i32, ++/*288732*/ OPC_CheckChild1Integer, 1, ++/*288734*/ OPC_CheckChild1Type, MVT::i32, ++/*288736*/ OPC_CheckChild2Integer, 1, ++/*288738*/ OPC_CheckChild2Type, MVT::i32, ++/*288740*/ OPC_CheckChild3Integer, 1, ++/*288742*/ OPC_CheckChild3Type, MVT::i32, ++/*288744*/ OPC_CheckChild4Integer, 1, ++/*288746*/ OPC_CheckChild4Type, MVT::i32, ++/*288748*/ OPC_MoveChild5, ++/*288749*/ OPC_CheckInteger, 1, ++/*288751*/ OPC_CheckType, MVT::i32, ++/*288753*/ OPC_MoveParent, ++/*288754*/ OPC_MoveChild6, ++/*288755*/ OPC_CheckInteger, 1, ++/*288757*/ OPC_CheckType, MVT::i32, ++/*288759*/ OPC_MoveParent, ++/*288760*/ OPC_MoveChild7, ++/*288761*/ OPC_CheckInteger, 1, ++/*288763*/ OPC_CheckType, MVT::i32, ++/*288765*/ OPC_MoveParent, ++/*288766*/ OPC_MoveChild, 8, ++/*288768*/ OPC_CheckInteger, 1, ++/*288770*/ OPC_CheckType, MVT::i32, ++/*288772*/ OPC_MoveParent, ++/*288773*/ OPC_MoveChild, 9, ++/*288775*/ OPC_CheckInteger, 1, ++/*288777*/ OPC_CheckType, MVT::i32, ++/*288779*/ OPC_MoveParent, ++/*288780*/ OPC_MoveChild, 10, ++/*288782*/ OPC_CheckInteger, 1, ++/*288784*/ OPC_CheckType, MVT::i32, ++/*288786*/ OPC_MoveParent, ++/*288787*/ OPC_MoveChild, 11, ++/*288789*/ OPC_CheckInteger, 1, ++/*288791*/ OPC_CheckType, MVT::i32, ++/*288793*/ OPC_MoveParent, ++/*288794*/ OPC_MoveChild, 12, ++/*288796*/ OPC_CheckInteger, 1, ++/*288798*/ OPC_CheckType, MVT::i32, ++/*288800*/ OPC_MoveParent, ++/*288801*/ OPC_MoveChild, 13, ++/*288803*/ OPC_CheckInteger, 1, ++/*288805*/ OPC_CheckType, MVT::i32, ++/*288807*/ OPC_MoveParent, ++/*288808*/ OPC_MoveChild, 14, ++/*288810*/ OPC_CheckInteger, 1, ++/*288812*/ OPC_CheckType, MVT::i32, ++/*288814*/ OPC_MoveParent, ++/*288815*/ OPC_MoveChild, 15, ++/*288817*/ OPC_CheckInteger, 1, ++/*288819*/ OPC_CheckType, MVT::i32, ++/*288821*/ OPC_MoveParent, ++/*288822*/ OPC_MoveChild, 16, ++/*288824*/ OPC_CheckInteger, 1, ++/*288826*/ OPC_CheckType, MVT::i32, ++/*288828*/ OPC_MoveParent, ++/*288829*/ OPC_MoveChild, 17, ++/*288831*/ OPC_CheckInteger, 1, ++/*288833*/ OPC_CheckType, MVT::i32, ++/*288835*/ OPC_MoveParent, ++/*288836*/ OPC_MoveChild, 18, ++/*288838*/ OPC_CheckInteger, 1, ++/*288840*/ OPC_CheckType, MVT::i32, ++/*288842*/ OPC_MoveParent, ++/*288843*/ OPC_MoveChild, 19, ++/*288845*/ OPC_CheckInteger, 1, ++/*288847*/ OPC_CheckType, MVT::i32, ++/*288849*/ OPC_MoveParent, ++/*288850*/ OPC_MoveChild, 20, ++/*288852*/ OPC_CheckInteger, 1, ++/*288854*/ OPC_CheckType, MVT::i32, ++/*288856*/ OPC_MoveParent, ++/*288857*/ OPC_MoveChild, 21, ++/*288859*/ OPC_CheckInteger, 1, ++/*288861*/ OPC_CheckType, MVT::i32, ++/*288863*/ OPC_MoveParent, ++/*288864*/ OPC_MoveChild, 22, ++/*288866*/ OPC_CheckInteger, 1, ++/*288868*/ OPC_CheckType, MVT::i32, ++/*288870*/ OPC_MoveParent, ++/*288871*/ OPC_MoveChild, 23, ++/*288873*/ OPC_CheckInteger, 1, ++/*288875*/ OPC_CheckType, MVT::i32, ++/*288877*/ OPC_MoveParent, ++/*288878*/ OPC_MoveChild, 24, ++/*288880*/ OPC_CheckInteger, 1, ++/*288882*/ OPC_CheckType, MVT::i32, ++/*288884*/ OPC_MoveParent, ++/*288885*/ OPC_MoveChild, 25, ++/*288887*/ OPC_CheckInteger, 1, ++/*288889*/ OPC_CheckType, MVT::i32, ++/*288891*/ OPC_MoveParent, ++/*288892*/ OPC_MoveChild, 26, ++/*288894*/ OPC_CheckInteger, 1, ++/*288896*/ OPC_CheckType, MVT::i32, ++/*288898*/ OPC_MoveParent, ++/*288899*/ OPC_MoveChild, 27, ++/*288901*/ OPC_CheckInteger, 1, ++/*288903*/ OPC_CheckType, MVT::i32, ++/*288905*/ OPC_MoveParent, ++/*288906*/ OPC_MoveChild, 28, ++/*288908*/ OPC_CheckInteger, 1, ++/*288910*/ OPC_CheckType, MVT::i32, ++/*288912*/ OPC_MoveParent, ++/*288913*/ OPC_MoveChild, 29, ++/*288915*/ OPC_CheckInteger, 1, ++/*288917*/ OPC_CheckType, MVT::i32, ++/*288919*/ OPC_MoveParent, ++/*288920*/ OPC_MoveChild, 30, ++/*288922*/ OPC_CheckInteger, 1, ++/*288924*/ OPC_CheckType, MVT::i32, ++/*288926*/ OPC_MoveParent, ++/*288927*/ OPC_MoveChild, 31, ++/*288929*/ OPC_CheckInteger, 1, ++/*288931*/ OPC_CheckType, MVT::i32, ++/*288933*/ OPC_MoveParent, ++/*288934*/ OPC_CheckType, MVT::v32i8, ++/*288936*/ OPC_MoveParent, ++/*288937*/ OPC_CheckType, MVT::v32i8, ++/*288939*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*288941*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b), LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*288949*/ 0, /*End of Scope*/ ++/*288950*/ /*Scope*/ 126|128,6/*894*/, /*->289846*/ ++/*288952*/ OPC_CheckChild0Same, 1, ++/*288954*/ OPC_MoveChild1, ++/*288955*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*288958*/ OPC_Scope, 57|128,3/*441*/, /*->289402*/ // 2 children in Scope ++/*288961*/ OPC_MoveChild0, ++/*288962*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*288965*/ OPC_CheckChild0Integer, 1, ++/*288967*/ OPC_CheckChild0Type, MVT::i32, ++/*288969*/ OPC_CheckChild1Integer, 1, ++/*288971*/ OPC_CheckChild1Type, MVT::i32, ++/*288973*/ OPC_CheckChild2Integer, 1, ++/*288975*/ OPC_CheckChild2Type, MVT::i32, ++/*288977*/ OPC_CheckChild3Integer, 1, ++/*288979*/ OPC_CheckChild3Type, MVT::i32, ++/*288981*/ OPC_CheckChild4Integer, 1, ++/*288983*/ OPC_CheckChild4Type, MVT::i32, ++/*288985*/ OPC_MoveChild5, ++/*288986*/ OPC_CheckInteger, 1, ++/*288988*/ OPC_CheckType, MVT::i32, ++/*288990*/ OPC_MoveParent, ++/*288991*/ OPC_MoveChild6, ++/*288992*/ OPC_CheckInteger, 1, ++/*288994*/ OPC_CheckType, MVT::i32, ++/*288996*/ OPC_MoveParent, ++/*288997*/ OPC_MoveChild7, ++/*288998*/ OPC_CheckInteger, 1, ++/*289000*/ OPC_CheckType, MVT::i32, ++/*289002*/ OPC_MoveParent, ++/*289003*/ OPC_MoveChild, 8, ++/*289005*/ OPC_CheckInteger, 1, ++/*289007*/ OPC_CheckType, MVT::i32, ++/*289009*/ OPC_MoveParent, ++/*289010*/ OPC_MoveChild, 9, ++/*289012*/ OPC_CheckInteger, 1, ++/*289014*/ OPC_CheckType, MVT::i32, ++/*289016*/ OPC_MoveParent, ++/*289017*/ OPC_MoveChild, 10, ++/*289019*/ OPC_CheckInteger, 1, ++/*289021*/ OPC_CheckType, MVT::i32, ++/*289023*/ OPC_MoveParent, ++/*289024*/ OPC_MoveChild, 11, ++/*289026*/ OPC_CheckInteger, 1, ++/*289028*/ OPC_CheckType, MVT::i32, ++/*289030*/ OPC_MoveParent, ++/*289031*/ OPC_MoveChild, 12, ++/*289033*/ OPC_CheckInteger, 1, ++/*289035*/ OPC_CheckType, MVT::i32, ++/*289037*/ OPC_MoveParent, ++/*289038*/ OPC_MoveChild, 13, ++/*289040*/ OPC_CheckInteger, 1, ++/*289042*/ OPC_CheckType, MVT::i32, ++/*289044*/ OPC_MoveParent, ++/*289045*/ OPC_MoveChild, 14, ++/*289047*/ OPC_CheckInteger, 1, ++/*289049*/ OPC_CheckType, MVT::i32, ++/*289051*/ OPC_MoveParent, ++/*289052*/ OPC_MoveChild, 15, ++/*289054*/ OPC_CheckInteger, 1, ++/*289056*/ OPC_CheckType, MVT::i32, ++/*289058*/ OPC_MoveParent, ++/*289059*/ OPC_MoveChild, 16, ++/*289061*/ OPC_CheckInteger, 1, ++/*289063*/ OPC_CheckType, MVT::i32, ++/*289065*/ OPC_MoveParent, ++/*289066*/ OPC_MoveChild, 17, ++/*289068*/ OPC_CheckInteger, 1, ++/*289070*/ OPC_CheckType, MVT::i32, ++/*289072*/ OPC_MoveParent, ++/*289073*/ OPC_MoveChild, 18, ++/*289075*/ OPC_CheckInteger, 1, ++/*289077*/ OPC_CheckType, MVT::i32, ++/*289079*/ OPC_MoveParent, ++/*289080*/ OPC_MoveChild, 19, ++/*289082*/ OPC_CheckInteger, 1, ++/*289084*/ OPC_CheckType, MVT::i32, ++/*289086*/ OPC_MoveParent, ++/*289087*/ OPC_MoveChild, 20, ++/*289089*/ OPC_CheckInteger, 1, ++/*289091*/ OPC_CheckType, MVT::i32, ++/*289093*/ OPC_MoveParent, ++/*289094*/ OPC_MoveChild, 21, ++/*289096*/ OPC_CheckInteger, 1, ++/*289098*/ OPC_CheckType, MVT::i32, ++/*289100*/ OPC_MoveParent, ++/*289101*/ OPC_MoveChild, 22, ++/*289103*/ OPC_CheckInteger, 1, ++/*289105*/ OPC_CheckType, MVT::i32, ++/*289107*/ OPC_MoveParent, ++/*289108*/ OPC_MoveChild, 23, ++/*289110*/ OPC_CheckInteger, 1, ++/*289112*/ OPC_CheckType, MVT::i32, ++/*289114*/ OPC_MoveParent, ++/*289115*/ OPC_MoveChild, 24, ++/*289117*/ OPC_CheckInteger, 1, ++/*289119*/ OPC_CheckType, MVT::i32, ++/*289121*/ OPC_MoveParent, ++/*289122*/ OPC_MoveChild, 25, ++/*289124*/ OPC_CheckInteger, 1, ++/*289126*/ OPC_CheckType, MVT::i32, ++/*289128*/ OPC_MoveParent, ++/*289129*/ OPC_MoveChild, 26, ++/*289131*/ OPC_CheckInteger, 1, ++/*289133*/ OPC_CheckType, MVT::i32, ++/*289135*/ OPC_MoveParent, ++/*289136*/ OPC_MoveChild, 27, ++/*289138*/ OPC_CheckInteger, 1, ++/*289140*/ OPC_CheckType, MVT::i32, ++/*289142*/ OPC_MoveParent, ++/*289143*/ OPC_MoveChild, 28, ++/*289145*/ OPC_CheckInteger, 1, ++/*289147*/ OPC_CheckType, MVT::i32, ++/*289149*/ OPC_MoveParent, ++/*289150*/ OPC_MoveChild, 29, ++/*289152*/ OPC_CheckInteger, 1, ++/*289154*/ OPC_CheckType, MVT::i32, ++/*289156*/ OPC_MoveParent, ++/*289157*/ OPC_MoveChild, 30, ++/*289159*/ OPC_CheckInteger, 1, ++/*289161*/ OPC_CheckType, MVT::i32, ++/*289163*/ OPC_MoveParent, ++/*289164*/ OPC_MoveChild, 31, ++/*289166*/ OPC_CheckInteger, 1, ++/*289168*/ OPC_CheckType, MVT::i32, ++/*289170*/ OPC_MoveParent, ++/*289171*/ OPC_MoveParent, ++/*289172*/ OPC_CheckChild1Same, 0, ++/*289174*/ OPC_MoveParent, ++/*289175*/ OPC_MoveParent, ++/*289176*/ OPC_MoveParent, ++/*289177*/ OPC_MoveChild1, ++/*289178*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*289181*/ OPC_CheckChild0Integer, 1, ++/*289183*/ OPC_CheckChild0Type, MVT::i32, ++/*289185*/ OPC_CheckChild1Integer, 1, ++/*289187*/ OPC_CheckChild1Type, MVT::i32, ++/*289189*/ OPC_CheckChild2Integer, 1, ++/*289191*/ OPC_CheckChild2Type, MVT::i32, ++/*289193*/ OPC_CheckChild3Integer, 1, ++/*289195*/ OPC_CheckChild3Type, MVT::i32, ++/*289197*/ OPC_CheckChild4Integer, 1, ++/*289199*/ OPC_CheckChild4Type, MVT::i32, ++/*289201*/ OPC_MoveChild5, ++/*289202*/ OPC_CheckInteger, 1, ++/*289204*/ OPC_CheckType, MVT::i32, ++/*289206*/ OPC_MoveParent, ++/*289207*/ OPC_MoveChild6, ++/*289208*/ OPC_CheckInteger, 1, ++/*289210*/ OPC_CheckType, MVT::i32, ++/*289212*/ OPC_MoveParent, ++/*289213*/ OPC_MoveChild7, ++/*289214*/ OPC_CheckInteger, 1, ++/*289216*/ OPC_CheckType, MVT::i32, ++/*289218*/ OPC_MoveParent, ++/*289219*/ OPC_MoveChild, 8, ++/*289221*/ OPC_CheckInteger, 1, ++/*289223*/ OPC_CheckType, MVT::i32, ++/*289225*/ OPC_MoveParent, ++/*289226*/ OPC_MoveChild, 9, ++/*289228*/ OPC_CheckInteger, 1, ++/*289230*/ OPC_CheckType, MVT::i32, ++/*289232*/ OPC_MoveParent, ++/*289233*/ OPC_MoveChild, 10, ++/*289235*/ OPC_CheckInteger, 1, ++/*289237*/ OPC_CheckType, MVT::i32, ++/*289239*/ OPC_MoveParent, ++/*289240*/ OPC_MoveChild, 11, ++/*289242*/ OPC_CheckInteger, 1, ++/*289244*/ OPC_CheckType, MVT::i32, ++/*289246*/ OPC_MoveParent, ++/*289247*/ OPC_MoveChild, 12, ++/*289249*/ OPC_CheckInteger, 1, ++/*289251*/ OPC_CheckType, MVT::i32, ++/*289253*/ OPC_MoveParent, ++/*289254*/ OPC_MoveChild, 13, ++/*289256*/ OPC_CheckInteger, 1, ++/*289258*/ OPC_CheckType, MVT::i32, ++/*289260*/ OPC_MoveParent, ++/*289261*/ OPC_MoveChild, 14, ++/*289263*/ OPC_CheckInteger, 1, ++/*289265*/ OPC_CheckType, MVT::i32, ++/*289267*/ OPC_MoveParent, ++/*289268*/ OPC_MoveChild, 15, ++/*289270*/ OPC_CheckInteger, 1, ++/*289272*/ OPC_CheckType, MVT::i32, ++/*289274*/ OPC_MoveParent, ++/*289275*/ OPC_MoveChild, 16, ++/*289277*/ OPC_CheckInteger, 1, ++/*289279*/ OPC_CheckType, MVT::i32, ++/*289281*/ OPC_MoveParent, ++/*289282*/ OPC_MoveChild, 17, ++/*289284*/ OPC_CheckInteger, 1, ++/*289286*/ OPC_CheckType, MVT::i32, ++/*289288*/ OPC_MoveParent, ++/*289289*/ OPC_MoveChild, 18, ++/*289291*/ OPC_CheckInteger, 1, ++/*289293*/ OPC_CheckType, MVT::i32, ++/*289295*/ OPC_MoveParent, ++/*289296*/ OPC_MoveChild, 19, ++/*289298*/ OPC_CheckInteger, 1, ++/*289300*/ OPC_CheckType, MVT::i32, ++/*289302*/ OPC_MoveParent, ++/*289303*/ OPC_MoveChild, 20, ++/*289305*/ OPC_CheckInteger, 1, ++/*289307*/ OPC_CheckType, MVT::i32, ++/*289309*/ OPC_MoveParent, ++/*289310*/ OPC_MoveChild, 21, ++/*289312*/ OPC_CheckInteger, 1, ++/*289314*/ OPC_CheckType, MVT::i32, ++/*289316*/ OPC_MoveParent, ++/*289317*/ OPC_MoveChild, 22, ++/*289319*/ OPC_CheckInteger, 1, ++/*289321*/ OPC_CheckType, MVT::i32, ++/*289323*/ OPC_MoveParent, ++/*289324*/ OPC_MoveChild, 23, ++/*289326*/ OPC_CheckInteger, 1, ++/*289328*/ OPC_CheckType, MVT::i32, ++/*289330*/ OPC_MoveParent, ++/*289331*/ OPC_MoveChild, 24, ++/*289333*/ OPC_CheckInteger, 1, ++/*289335*/ OPC_CheckType, MVT::i32, ++/*289337*/ OPC_MoveParent, ++/*289338*/ OPC_MoveChild, 25, ++/*289340*/ OPC_CheckInteger, 1, ++/*289342*/ OPC_CheckType, MVT::i32, ++/*289344*/ OPC_MoveParent, ++/*289345*/ OPC_MoveChild, 26, ++/*289347*/ OPC_CheckInteger, 1, ++/*289349*/ OPC_CheckType, MVT::i32, ++/*289351*/ OPC_MoveParent, ++/*289352*/ OPC_MoveChild, 27, ++/*289354*/ OPC_CheckInteger, 1, ++/*289356*/ OPC_CheckType, MVT::i32, ++/*289358*/ OPC_MoveParent, ++/*289359*/ OPC_MoveChild, 28, ++/*289361*/ OPC_CheckInteger, 1, ++/*289363*/ OPC_CheckType, MVT::i32, ++/*289365*/ OPC_MoveParent, ++/*289366*/ OPC_MoveChild, 29, ++/*289368*/ OPC_CheckInteger, 1, ++/*289370*/ OPC_CheckType, MVT::i32, ++/*289372*/ OPC_MoveParent, ++/*289373*/ OPC_MoveChild, 30, ++/*289375*/ OPC_CheckInteger, 1, ++/*289377*/ OPC_CheckType, MVT::i32, ++/*289379*/ OPC_MoveParent, ++/*289380*/ OPC_MoveChild, 31, ++/*289382*/ OPC_CheckInteger, 1, ++/*289384*/ OPC_CheckType, MVT::i32, ++/*289386*/ OPC_MoveParent, ++/*289387*/ OPC_CheckType, MVT::v32i8, ++/*289389*/ OPC_MoveParent, ++/*289390*/ OPC_CheckType, MVT::v32i8, ++/*289392*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*289394*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b), LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*289402*/ /*Scope*/ 57|128,3/*441*/, /*->289845*/ ++/*289404*/ OPC_CheckChild0Same, 0, ++/*289406*/ OPC_MoveChild1, ++/*289407*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*289410*/ OPC_CheckChild0Integer, 1, ++/*289412*/ OPC_CheckChild0Type, MVT::i32, ++/*289414*/ OPC_CheckChild1Integer, 1, ++/*289416*/ OPC_CheckChild1Type, MVT::i32, ++/*289418*/ OPC_CheckChild2Integer, 1, ++/*289420*/ OPC_CheckChild2Type, MVT::i32, ++/*289422*/ OPC_CheckChild3Integer, 1, ++/*289424*/ OPC_CheckChild3Type, MVT::i32, ++/*289426*/ OPC_CheckChild4Integer, 1, ++/*289428*/ OPC_CheckChild4Type, MVT::i32, ++/*289430*/ OPC_MoveChild5, ++/*289431*/ OPC_CheckInteger, 1, ++/*289433*/ OPC_CheckType, MVT::i32, ++/*289435*/ OPC_MoveParent, ++/*289436*/ OPC_MoveChild6, ++/*289437*/ OPC_CheckInteger, 1, ++/*289439*/ OPC_CheckType, MVT::i32, ++/*289441*/ OPC_MoveParent, ++/*289442*/ OPC_MoveChild7, ++/*289443*/ OPC_CheckInteger, 1, ++/*289445*/ OPC_CheckType, MVT::i32, ++/*289447*/ OPC_MoveParent, ++/*289448*/ OPC_MoveChild, 8, ++/*289450*/ OPC_CheckInteger, 1, ++/*289452*/ OPC_CheckType, MVT::i32, ++/*289454*/ OPC_MoveParent, ++/*289455*/ OPC_MoveChild, 9, ++/*289457*/ OPC_CheckInteger, 1, ++/*289459*/ OPC_CheckType, MVT::i32, ++/*289461*/ OPC_MoveParent, ++/*289462*/ OPC_MoveChild, 10, ++/*289464*/ OPC_CheckInteger, 1, ++/*289466*/ OPC_CheckType, MVT::i32, ++/*289468*/ OPC_MoveParent, ++/*289469*/ OPC_MoveChild, 11, ++/*289471*/ OPC_CheckInteger, 1, ++/*289473*/ OPC_CheckType, MVT::i32, ++/*289475*/ OPC_MoveParent, ++/*289476*/ OPC_MoveChild, 12, ++/*289478*/ OPC_CheckInteger, 1, ++/*289480*/ OPC_CheckType, MVT::i32, ++/*289482*/ OPC_MoveParent, ++/*289483*/ OPC_MoveChild, 13, ++/*289485*/ OPC_CheckInteger, 1, ++/*289487*/ OPC_CheckType, MVT::i32, ++/*289489*/ OPC_MoveParent, ++/*289490*/ OPC_MoveChild, 14, ++/*289492*/ OPC_CheckInteger, 1, ++/*289494*/ OPC_CheckType, MVT::i32, ++/*289496*/ OPC_MoveParent, ++/*289497*/ OPC_MoveChild, 15, ++/*289499*/ OPC_CheckInteger, 1, ++/*289501*/ OPC_CheckType, MVT::i32, ++/*289503*/ OPC_MoveParent, ++/*289504*/ OPC_MoveChild, 16, ++/*289506*/ OPC_CheckInteger, 1, ++/*289508*/ OPC_CheckType, MVT::i32, ++/*289510*/ OPC_MoveParent, ++/*289511*/ OPC_MoveChild, 17, ++/*289513*/ OPC_CheckInteger, 1, ++/*289515*/ OPC_CheckType, MVT::i32, ++/*289517*/ OPC_MoveParent, ++/*289518*/ OPC_MoveChild, 18, ++/*289520*/ OPC_CheckInteger, 1, ++/*289522*/ OPC_CheckType, MVT::i32, ++/*289524*/ OPC_MoveParent, ++/*289525*/ OPC_MoveChild, 19, ++/*289527*/ OPC_CheckInteger, 1, ++/*289529*/ OPC_CheckType, MVT::i32, ++/*289531*/ OPC_MoveParent, ++/*289532*/ OPC_MoveChild, 20, ++/*289534*/ OPC_CheckInteger, 1, ++/*289536*/ OPC_CheckType, MVT::i32, ++/*289538*/ OPC_MoveParent, ++/*289539*/ OPC_MoveChild, 21, ++/*289541*/ OPC_CheckInteger, 1, ++/*289543*/ OPC_CheckType, MVT::i32, ++/*289545*/ OPC_MoveParent, ++/*289546*/ OPC_MoveChild, 22, ++/*289548*/ OPC_CheckInteger, 1, ++/*289550*/ OPC_CheckType, MVT::i32, ++/*289552*/ OPC_MoveParent, ++/*289553*/ OPC_MoveChild, 23, ++/*289555*/ OPC_CheckInteger, 1, ++/*289557*/ OPC_CheckType, MVT::i32, ++/*289559*/ OPC_MoveParent, ++/*289560*/ OPC_MoveChild, 24, ++/*289562*/ OPC_CheckInteger, 1, ++/*289564*/ OPC_CheckType, MVT::i32, ++/*289566*/ OPC_MoveParent, ++/*289567*/ OPC_MoveChild, 25, ++/*289569*/ OPC_CheckInteger, 1, ++/*289571*/ OPC_CheckType, MVT::i32, ++/*289573*/ OPC_MoveParent, ++/*289574*/ OPC_MoveChild, 26, ++/*289576*/ OPC_CheckInteger, 1, ++/*289578*/ OPC_CheckType, MVT::i32, ++/*289580*/ OPC_MoveParent, ++/*289581*/ OPC_MoveChild, 27, ++/*289583*/ OPC_CheckInteger, 1, ++/*289585*/ OPC_CheckType, MVT::i32, ++/*289587*/ OPC_MoveParent, ++/*289588*/ OPC_MoveChild, 28, ++/*289590*/ OPC_CheckInteger, 1, ++/*289592*/ OPC_CheckType, MVT::i32, ++/*289594*/ OPC_MoveParent, ++/*289595*/ OPC_MoveChild, 29, ++/*289597*/ OPC_CheckInteger, 1, ++/*289599*/ OPC_CheckType, MVT::i32, ++/*289601*/ OPC_MoveParent, ++/*289602*/ OPC_MoveChild, 30, ++/*289604*/ OPC_CheckInteger, 1, ++/*289606*/ OPC_CheckType, MVT::i32, ++/*289608*/ OPC_MoveParent, ++/*289609*/ OPC_MoveChild, 31, ++/*289611*/ OPC_CheckInteger, 1, ++/*289613*/ OPC_CheckType, MVT::i32, ++/*289615*/ OPC_MoveParent, ++/*289616*/ OPC_MoveParent, ++/*289617*/ OPC_MoveParent, ++/*289618*/ OPC_MoveParent, ++/*289619*/ OPC_MoveParent, ++/*289620*/ OPC_MoveChild1, ++/*289621*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*289624*/ OPC_CheckChild0Integer, 1, ++/*289626*/ OPC_CheckChild0Type, MVT::i32, ++/*289628*/ OPC_CheckChild1Integer, 1, ++/*289630*/ OPC_CheckChild1Type, MVT::i32, ++/*289632*/ OPC_CheckChild2Integer, 1, ++/*289634*/ OPC_CheckChild2Type, MVT::i32, ++/*289636*/ OPC_CheckChild3Integer, 1, ++/*289638*/ OPC_CheckChild3Type, MVT::i32, ++/*289640*/ OPC_CheckChild4Integer, 1, ++/*289642*/ OPC_CheckChild4Type, MVT::i32, ++/*289644*/ OPC_MoveChild5, ++/*289645*/ OPC_CheckInteger, 1, ++/*289647*/ OPC_CheckType, MVT::i32, ++/*289649*/ OPC_MoveParent, ++/*289650*/ OPC_MoveChild6, ++/*289651*/ OPC_CheckInteger, 1, ++/*289653*/ OPC_CheckType, MVT::i32, ++/*289655*/ OPC_MoveParent, ++/*289656*/ OPC_MoveChild7, ++/*289657*/ OPC_CheckInteger, 1, ++/*289659*/ OPC_CheckType, MVT::i32, ++/*289661*/ OPC_MoveParent, ++/*289662*/ OPC_MoveChild, 8, ++/*289664*/ OPC_CheckInteger, 1, ++/*289666*/ OPC_CheckType, MVT::i32, ++/*289668*/ OPC_MoveParent, ++/*289669*/ OPC_MoveChild, 9, ++/*289671*/ OPC_CheckInteger, 1, ++/*289673*/ OPC_CheckType, MVT::i32, ++/*289675*/ OPC_MoveParent, ++/*289676*/ OPC_MoveChild, 10, ++/*289678*/ OPC_CheckInteger, 1, ++/*289680*/ OPC_CheckType, MVT::i32, ++/*289682*/ OPC_MoveParent, ++/*289683*/ OPC_MoveChild, 11, ++/*289685*/ OPC_CheckInteger, 1, ++/*289687*/ OPC_CheckType, MVT::i32, ++/*289689*/ OPC_MoveParent, ++/*289690*/ OPC_MoveChild, 12, ++/*289692*/ OPC_CheckInteger, 1, ++/*289694*/ OPC_CheckType, MVT::i32, ++/*289696*/ OPC_MoveParent, ++/*289697*/ OPC_MoveChild, 13, ++/*289699*/ OPC_CheckInteger, 1, ++/*289701*/ OPC_CheckType, MVT::i32, ++/*289703*/ OPC_MoveParent, ++/*289704*/ OPC_MoveChild, 14, ++/*289706*/ OPC_CheckInteger, 1, ++/*289708*/ OPC_CheckType, MVT::i32, ++/*289710*/ OPC_MoveParent, ++/*289711*/ OPC_MoveChild, 15, ++/*289713*/ OPC_CheckInteger, 1, ++/*289715*/ OPC_CheckType, MVT::i32, ++/*289717*/ OPC_MoveParent, ++/*289718*/ OPC_MoveChild, 16, ++/*289720*/ OPC_CheckInteger, 1, ++/*289722*/ OPC_CheckType, MVT::i32, ++/*289724*/ OPC_MoveParent, ++/*289725*/ OPC_MoveChild, 17, ++/*289727*/ OPC_CheckInteger, 1, ++/*289729*/ OPC_CheckType, MVT::i32, ++/*289731*/ OPC_MoveParent, ++/*289732*/ OPC_MoveChild, 18, ++/*289734*/ OPC_CheckInteger, 1, ++/*289736*/ OPC_CheckType, MVT::i32, ++/*289738*/ OPC_MoveParent, ++/*289739*/ OPC_MoveChild, 19, ++/*289741*/ OPC_CheckInteger, 1, ++/*289743*/ OPC_CheckType, MVT::i32, ++/*289745*/ OPC_MoveParent, ++/*289746*/ OPC_MoveChild, 20, ++/*289748*/ OPC_CheckInteger, 1, ++/*289750*/ OPC_CheckType, MVT::i32, ++/*289752*/ OPC_MoveParent, ++/*289753*/ OPC_MoveChild, 21, ++/*289755*/ OPC_CheckInteger, 1, ++/*289757*/ OPC_CheckType, MVT::i32, ++/*289759*/ OPC_MoveParent, ++/*289760*/ OPC_MoveChild, 22, ++/*289762*/ OPC_CheckInteger, 1, ++/*289764*/ OPC_CheckType, MVT::i32, ++/*289766*/ OPC_MoveParent, ++/*289767*/ OPC_MoveChild, 23, ++/*289769*/ OPC_CheckInteger, 1, ++/*289771*/ OPC_CheckType, MVT::i32, ++/*289773*/ OPC_MoveParent, ++/*289774*/ OPC_MoveChild, 24, ++/*289776*/ OPC_CheckInteger, 1, ++/*289778*/ OPC_CheckType, MVT::i32, ++/*289780*/ OPC_MoveParent, ++/*289781*/ OPC_MoveChild, 25, ++/*289783*/ OPC_CheckInteger, 1, ++/*289785*/ OPC_CheckType, MVT::i32, ++/*289787*/ OPC_MoveParent, ++/*289788*/ OPC_MoveChild, 26, ++/*289790*/ OPC_CheckInteger, 1, ++/*289792*/ OPC_CheckType, MVT::i32, ++/*289794*/ OPC_MoveParent, ++/*289795*/ OPC_MoveChild, 27, ++/*289797*/ OPC_CheckInteger, 1, ++/*289799*/ OPC_CheckType, MVT::i32, ++/*289801*/ OPC_MoveParent, ++/*289802*/ OPC_MoveChild, 28, ++/*289804*/ OPC_CheckInteger, 1, ++/*289806*/ OPC_CheckType, MVT::i32, ++/*289808*/ OPC_MoveParent, ++/*289809*/ OPC_MoveChild, 29, ++/*289811*/ OPC_CheckInteger, 1, ++/*289813*/ OPC_CheckType, MVT::i32, ++/*289815*/ OPC_MoveParent, ++/*289816*/ OPC_MoveChild, 30, ++/*289818*/ OPC_CheckInteger, 1, ++/*289820*/ OPC_CheckType, MVT::i32, ++/*289822*/ OPC_MoveParent, ++/*289823*/ OPC_MoveChild, 31, ++/*289825*/ OPC_CheckInteger, 1, ++/*289827*/ OPC_CheckType, MVT::i32, ++/*289829*/ OPC_MoveParent, ++/*289830*/ OPC_CheckType, MVT::v32i8, ++/*289832*/ OPC_MoveParent, ++/*289833*/ OPC_CheckType, MVT::v32i8, ++/*289835*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*289837*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b), LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*289845*/ 0, /*End of Scope*/ ++/*289846*/ /*Scope*/ 45|128,5/*685*/, /*->290533*/ ++/*289848*/ OPC_MoveChild0, ++/*289849*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*289852*/ OPC_CheckChild0Integer, 1, ++/*289854*/ OPC_CheckChild0Type, MVT::i32, ++/*289856*/ OPC_CheckChild1Integer, 1, ++/*289858*/ OPC_CheckChild1Type, MVT::i32, ++/*289860*/ OPC_CheckChild2Integer, 1, ++/*289862*/ OPC_CheckChild2Type, MVT::i32, ++/*289864*/ OPC_CheckChild3Integer, 1, ++/*289866*/ OPC_CheckChild3Type, MVT::i32, ++/*289868*/ OPC_CheckChild4Integer, 1, ++/*289870*/ OPC_CheckChild4Type, MVT::i32, ++/*289872*/ OPC_MoveChild5, ++/*289873*/ OPC_CheckInteger, 1, ++/*289875*/ OPC_CheckType, MVT::i32, ++/*289877*/ OPC_MoveParent, ++/*289878*/ OPC_MoveChild6, ++/*289879*/ OPC_CheckInteger, 1, ++/*289881*/ OPC_CheckType, MVT::i32, ++/*289883*/ OPC_MoveParent, ++/*289884*/ OPC_MoveChild7, ++/*289885*/ OPC_CheckInteger, 1, ++/*289887*/ OPC_CheckType, MVT::i32, ++/*289889*/ OPC_MoveParent, ++/*289890*/ OPC_MoveChild, 8, ++/*289892*/ OPC_CheckInteger, 1, ++/*289894*/ OPC_CheckType, MVT::i32, ++/*289896*/ OPC_MoveParent, ++/*289897*/ OPC_MoveChild, 9, ++/*289899*/ OPC_CheckInteger, 1, ++/*289901*/ OPC_CheckType, MVT::i32, ++/*289903*/ OPC_MoveParent, ++/*289904*/ OPC_MoveChild, 10, ++/*289906*/ OPC_CheckInteger, 1, ++/*289908*/ OPC_CheckType, MVT::i32, ++/*289910*/ OPC_MoveParent, ++/*289911*/ OPC_MoveChild, 11, ++/*289913*/ OPC_CheckInteger, 1, ++/*289915*/ OPC_CheckType, MVT::i32, ++/*289917*/ OPC_MoveParent, ++/*289918*/ OPC_MoveChild, 12, ++/*289920*/ OPC_CheckInteger, 1, ++/*289922*/ OPC_CheckType, MVT::i32, ++/*289924*/ OPC_MoveParent, ++/*289925*/ OPC_MoveChild, 13, ++/*289927*/ OPC_CheckInteger, 1, ++/*289929*/ OPC_CheckType, MVT::i32, ++/*289931*/ OPC_MoveParent, ++/*289932*/ OPC_MoveChild, 14, ++/*289934*/ OPC_CheckInteger, 1, ++/*289936*/ OPC_CheckType, MVT::i32, ++/*289938*/ OPC_MoveParent, ++/*289939*/ OPC_MoveChild, 15, ++/*289941*/ OPC_CheckInteger, 1, ++/*289943*/ OPC_CheckType, MVT::i32, ++/*289945*/ OPC_MoveParent, ++/*289946*/ OPC_MoveChild, 16, ++/*289948*/ OPC_CheckInteger, 1, ++/*289950*/ OPC_CheckType, MVT::i32, ++/*289952*/ OPC_MoveParent, ++/*289953*/ OPC_MoveChild, 17, ++/*289955*/ OPC_CheckInteger, 1, ++/*289957*/ OPC_CheckType, MVT::i32, ++/*289959*/ OPC_MoveParent, ++/*289960*/ OPC_MoveChild, 18, ++/*289962*/ OPC_CheckInteger, 1, ++/*289964*/ OPC_CheckType, MVT::i32, ++/*289966*/ OPC_MoveParent, ++/*289967*/ OPC_MoveChild, 19, ++/*289969*/ OPC_CheckInteger, 1, ++/*289971*/ OPC_CheckType, MVT::i32, ++/*289973*/ OPC_MoveParent, ++/*289974*/ OPC_MoveChild, 20, ++/*289976*/ OPC_CheckInteger, 1, ++/*289978*/ OPC_CheckType, MVT::i32, ++/*289980*/ OPC_MoveParent, ++/*289981*/ OPC_MoveChild, 21, ++/*289983*/ OPC_CheckInteger, 1, ++/*289985*/ OPC_CheckType, MVT::i32, ++/*289987*/ OPC_MoveParent, ++/*289988*/ OPC_MoveChild, 22, ++/*289990*/ OPC_CheckInteger, 1, ++/*289992*/ OPC_CheckType, MVT::i32, ++/*289994*/ OPC_MoveParent, ++/*289995*/ OPC_MoveChild, 23, ++/*289997*/ OPC_CheckInteger, 1, ++/*289999*/ OPC_CheckType, MVT::i32, ++/*290001*/ OPC_MoveParent, ++/*290002*/ OPC_MoveChild, 24, ++/*290004*/ OPC_CheckInteger, 1, ++/*290006*/ OPC_CheckType, MVT::i32, ++/*290008*/ OPC_MoveParent, ++/*290009*/ OPC_MoveChild, 25, ++/*290011*/ OPC_CheckInteger, 1, ++/*290013*/ OPC_CheckType, MVT::i32, ++/*290015*/ OPC_MoveParent, ++/*290016*/ OPC_MoveChild, 26, ++/*290018*/ OPC_CheckInteger, 1, ++/*290020*/ OPC_CheckType, MVT::i32, ++/*290022*/ OPC_MoveParent, ++/*290023*/ OPC_MoveChild, 27, ++/*290025*/ OPC_CheckInteger, 1, ++/*290027*/ OPC_CheckType, MVT::i32, ++/*290029*/ OPC_MoveParent, ++/*290030*/ OPC_MoveChild, 28, ++/*290032*/ OPC_CheckInteger, 1, ++/*290034*/ OPC_CheckType, MVT::i32, ++/*290036*/ OPC_MoveParent, ++/*290037*/ OPC_MoveChild, 29, ++/*290039*/ OPC_CheckInteger, 1, ++/*290041*/ OPC_CheckType, MVT::i32, ++/*290043*/ OPC_MoveParent, ++/*290044*/ OPC_MoveChild, 30, ++/*290046*/ OPC_CheckInteger, 1, ++/*290048*/ OPC_CheckType, MVT::i32, ++/*290050*/ OPC_MoveParent, ++/*290051*/ OPC_MoveChild, 31, ++/*290053*/ OPC_CheckInteger, 1, ++/*290055*/ OPC_CheckType, MVT::i32, ++/*290057*/ OPC_MoveParent, ++/*290058*/ OPC_MoveParent, ++/*290059*/ OPC_MoveChild1, ++/*290060*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*290063*/ OPC_Scope, 104|128,1/*232*/, /*->290298*/ // 2 children in Scope ++/*290066*/ OPC_CheckChild0Same, 1, ++/*290068*/ OPC_CheckChild1Same, 0, ++/*290070*/ OPC_MoveParent, ++/*290071*/ OPC_MoveParent, ++/*290072*/ OPC_MoveParent, ++/*290073*/ OPC_MoveChild1, ++/*290074*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*290077*/ OPC_CheckChild0Integer, 1, ++/*290079*/ OPC_CheckChild0Type, MVT::i32, ++/*290081*/ OPC_CheckChild1Integer, 1, ++/*290083*/ OPC_CheckChild1Type, MVT::i32, ++/*290085*/ OPC_CheckChild2Integer, 1, ++/*290087*/ OPC_CheckChild2Type, MVT::i32, ++/*290089*/ OPC_CheckChild3Integer, 1, ++/*290091*/ OPC_CheckChild3Type, MVT::i32, ++/*290093*/ OPC_CheckChild4Integer, 1, ++/*290095*/ OPC_CheckChild4Type, MVT::i32, ++/*290097*/ OPC_MoveChild5, ++/*290098*/ OPC_CheckInteger, 1, ++/*290100*/ OPC_CheckType, MVT::i32, ++/*290102*/ OPC_MoveParent, ++/*290103*/ OPC_MoveChild6, ++/*290104*/ OPC_CheckInteger, 1, ++/*290106*/ OPC_CheckType, MVT::i32, ++/*290108*/ OPC_MoveParent, ++/*290109*/ OPC_MoveChild7, ++/*290110*/ OPC_CheckInteger, 1, ++/*290112*/ OPC_CheckType, MVT::i32, ++/*290114*/ OPC_MoveParent, ++/*290115*/ OPC_MoveChild, 8, ++/*290117*/ OPC_CheckInteger, 1, ++/*290119*/ OPC_CheckType, MVT::i32, ++/*290121*/ OPC_MoveParent, ++/*290122*/ OPC_MoveChild, 9, ++/*290124*/ OPC_CheckInteger, 1, ++/*290126*/ OPC_CheckType, MVT::i32, ++/*290128*/ OPC_MoveParent, ++/*290129*/ OPC_MoveChild, 10, ++/*290131*/ OPC_CheckInteger, 1, ++/*290133*/ OPC_CheckType, MVT::i32, ++/*290135*/ OPC_MoveParent, ++/*290136*/ OPC_MoveChild, 11, ++/*290138*/ OPC_CheckInteger, 1, ++/*290140*/ OPC_CheckType, MVT::i32, ++/*290142*/ OPC_MoveParent, ++/*290143*/ OPC_MoveChild, 12, ++/*290145*/ OPC_CheckInteger, 1, ++/*290147*/ OPC_CheckType, MVT::i32, ++/*290149*/ OPC_MoveParent, ++/*290150*/ OPC_MoveChild, 13, ++/*290152*/ OPC_CheckInteger, 1, ++/*290154*/ OPC_CheckType, MVT::i32, ++/*290156*/ OPC_MoveParent, ++/*290157*/ OPC_MoveChild, 14, ++/*290159*/ OPC_CheckInteger, 1, ++/*290161*/ OPC_CheckType, MVT::i32, ++/*290163*/ OPC_MoveParent, ++/*290164*/ OPC_MoveChild, 15, ++/*290166*/ OPC_CheckInteger, 1, ++/*290168*/ OPC_CheckType, MVT::i32, ++/*290170*/ OPC_MoveParent, ++/*290171*/ OPC_MoveChild, 16, ++/*290173*/ OPC_CheckInteger, 1, ++/*290175*/ OPC_CheckType, MVT::i32, ++/*290177*/ OPC_MoveParent, ++/*290178*/ OPC_MoveChild, 17, ++/*290180*/ OPC_CheckInteger, 1, ++/*290182*/ OPC_CheckType, MVT::i32, ++/*290184*/ OPC_MoveParent, ++/*290185*/ OPC_MoveChild, 18, ++/*290187*/ OPC_CheckInteger, 1, ++/*290189*/ OPC_CheckType, MVT::i32, ++/*290191*/ OPC_MoveParent, ++/*290192*/ OPC_MoveChild, 19, ++/*290194*/ OPC_CheckInteger, 1, ++/*290196*/ OPC_CheckType, MVT::i32, ++/*290198*/ OPC_MoveParent, ++/*290199*/ OPC_MoveChild, 20, ++/*290201*/ OPC_CheckInteger, 1, ++/*290203*/ OPC_CheckType, MVT::i32, ++/*290205*/ OPC_MoveParent, ++/*290206*/ OPC_MoveChild, 21, ++/*290208*/ OPC_CheckInteger, 1, ++/*290210*/ OPC_CheckType, MVT::i32, ++/*290212*/ OPC_MoveParent, ++/*290213*/ OPC_MoveChild, 22, ++/*290215*/ OPC_CheckInteger, 1, ++/*290217*/ OPC_CheckType, MVT::i32, ++/*290219*/ OPC_MoveParent, ++/*290220*/ OPC_MoveChild, 23, ++/*290222*/ OPC_CheckInteger, 1, ++/*290224*/ OPC_CheckType, MVT::i32, ++/*290226*/ OPC_MoveParent, ++/*290227*/ OPC_MoveChild, 24, ++/*290229*/ OPC_CheckInteger, 1, ++/*290231*/ OPC_CheckType, MVT::i32, ++/*290233*/ OPC_MoveParent, ++/*290234*/ OPC_MoveChild, 25, ++/*290236*/ OPC_CheckInteger, 1, ++/*290238*/ OPC_CheckType, MVT::i32, ++/*290240*/ OPC_MoveParent, ++/*290241*/ OPC_MoveChild, 26, ++/*290243*/ OPC_CheckInteger, 1, ++/*290245*/ OPC_CheckType, MVT::i32, ++/*290247*/ OPC_MoveParent, ++/*290248*/ OPC_MoveChild, 27, ++/*290250*/ OPC_CheckInteger, 1, ++/*290252*/ OPC_CheckType, MVT::i32, ++/*290254*/ OPC_MoveParent, ++/*290255*/ OPC_MoveChild, 28, ++/*290257*/ OPC_CheckInteger, 1, ++/*290259*/ OPC_CheckType, MVT::i32, ++/*290261*/ OPC_MoveParent, ++/*290262*/ OPC_MoveChild, 29, ++/*290264*/ OPC_CheckInteger, 1, ++/*290266*/ OPC_CheckType, MVT::i32, ++/*290268*/ OPC_MoveParent, ++/*290269*/ OPC_MoveChild, 30, ++/*290271*/ OPC_CheckInteger, 1, ++/*290273*/ OPC_CheckType, MVT::i32, ++/*290275*/ OPC_MoveParent, ++/*290276*/ OPC_MoveChild, 31, ++/*290278*/ OPC_CheckInteger, 1, ++/*290280*/ OPC_CheckType, MVT::i32, ++/*290282*/ OPC_MoveParent, ++/*290283*/ OPC_CheckType, MVT::v32i8, ++/*290285*/ OPC_MoveParent, ++/*290286*/ OPC_CheckType, MVT::v32i8, ++/*290288*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*290290*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b), LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*290298*/ /*Scope*/ 104|128,1/*232*/, /*->290532*/ ++/*290300*/ OPC_CheckChild0Same, 0, ++/*290302*/ OPC_CheckChild1Same, 1, ++/*290304*/ OPC_MoveParent, ++/*290305*/ OPC_MoveParent, ++/*290306*/ OPC_MoveParent, ++/*290307*/ OPC_MoveChild1, ++/*290308*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*290311*/ OPC_CheckChild0Integer, 1, ++/*290313*/ OPC_CheckChild0Type, MVT::i32, ++/*290315*/ OPC_CheckChild1Integer, 1, ++/*290317*/ OPC_CheckChild1Type, MVT::i32, ++/*290319*/ OPC_CheckChild2Integer, 1, ++/*290321*/ OPC_CheckChild2Type, MVT::i32, ++/*290323*/ OPC_CheckChild3Integer, 1, ++/*290325*/ OPC_CheckChild3Type, MVT::i32, ++/*290327*/ OPC_CheckChild4Integer, 1, ++/*290329*/ OPC_CheckChild4Type, MVT::i32, ++/*290331*/ OPC_MoveChild5, ++/*290332*/ OPC_CheckInteger, 1, ++/*290334*/ OPC_CheckType, MVT::i32, ++/*290336*/ OPC_MoveParent, ++/*290337*/ OPC_MoveChild6, ++/*290338*/ OPC_CheckInteger, 1, ++/*290340*/ OPC_CheckType, MVT::i32, ++/*290342*/ OPC_MoveParent, ++/*290343*/ OPC_MoveChild7, ++/*290344*/ OPC_CheckInteger, 1, ++/*290346*/ OPC_CheckType, MVT::i32, ++/*290348*/ OPC_MoveParent, ++/*290349*/ OPC_MoveChild, 8, ++/*290351*/ OPC_CheckInteger, 1, ++/*290353*/ OPC_CheckType, MVT::i32, ++/*290355*/ OPC_MoveParent, ++/*290356*/ OPC_MoveChild, 9, ++/*290358*/ OPC_CheckInteger, 1, ++/*290360*/ OPC_CheckType, MVT::i32, ++/*290362*/ OPC_MoveParent, ++/*290363*/ OPC_MoveChild, 10, ++/*290365*/ OPC_CheckInteger, 1, ++/*290367*/ OPC_CheckType, MVT::i32, ++/*290369*/ OPC_MoveParent, ++/*290370*/ OPC_MoveChild, 11, ++/*290372*/ OPC_CheckInteger, 1, ++/*290374*/ OPC_CheckType, MVT::i32, ++/*290376*/ OPC_MoveParent, ++/*290377*/ OPC_MoveChild, 12, ++/*290379*/ OPC_CheckInteger, 1, ++/*290381*/ OPC_CheckType, MVT::i32, ++/*290383*/ OPC_MoveParent, ++/*290384*/ OPC_MoveChild, 13, ++/*290386*/ OPC_CheckInteger, 1, ++/*290388*/ OPC_CheckType, MVT::i32, ++/*290390*/ OPC_MoveParent, ++/*290391*/ OPC_MoveChild, 14, ++/*290393*/ OPC_CheckInteger, 1, ++/*290395*/ OPC_CheckType, MVT::i32, ++/*290397*/ OPC_MoveParent, ++/*290398*/ OPC_MoveChild, 15, ++/*290400*/ OPC_CheckInteger, 1, ++/*290402*/ OPC_CheckType, MVT::i32, ++/*290404*/ OPC_MoveParent, ++/*290405*/ OPC_MoveChild, 16, ++/*290407*/ OPC_CheckInteger, 1, ++/*290409*/ OPC_CheckType, MVT::i32, ++/*290411*/ OPC_MoveParent, ++/*290412*/ OPC_MoveChild, 17, ++/*290414*/ OPC_CheckInteger, 1, ++/*290416*/ OPC_CheckType, MVT::i32, ++/*290418*/ OPC_MoveParent, ++/*290419*/ OPC_MoveChild, 18, ++/*290421*/ OPC_CheckInteger, 1, ++/*290423*/ OPC_CheckType, MVT::i32, ++/*290425*/ OPC_MoveParent, ++/*290426*/ OPC_MoveChild, 19, ++/*290428*/ OPC_CheckInteger, 1, ++/*290430*/ OPC_CheckType, MVT::i32, ++/*290432*/ OPC_MoveParent, ++/*290433*/ OPC_MoveChild, 20, ++/*290435*/ OPC_CheckInteger, 1, ++/*290437*/ OPC_CheckType, MVT::i32, ++/*290439*/ OPC_MoveParent, ++/*290440*/ OPC_MoveChild, 21, ++/*290442*/ OPC_CheckInteger, 1, ++/*290444*/ OPC_CheckType, MVT::i32, ++/*290446*/ OPC_MoveParent, ++/*290447*/ OPC_MoveChild, 22, ++/*290449*/ OPC_CheckInteger, 1, ++/*290451*/ OPC_CheckType, MVT::i32, ++/*290453*/ OPC_MoveParent, ++/*290454*/ OPC_MoveChild, 23, ++/*290456*/ OPC_CheckInteger, 1, ++/*290458*/ OPC_CheckType, MVT::i32, ++/*290460*/ OPC_MoveParent, ++/*290461*/ OPC_MoveChild, 24, ++/*290463*/ OPC_CheckInteger, 1, ++/*290465*/ OPC_CheckType, MVT::i32, ++/*290467*/ OPC_MoveParent, ++/*290468*/ OPC_MoveChild, 25, ++/*290470*/ OPC_CheckInteger, 1, ++/*290472*/ OPC_CheckType, MVT::i32, ++/*290474*/ OPC_MoveParent, ++/*290475*/ OPC_MoveChild, 26, ++/*290477*/ OPC_CheckInteger, 1, ++/*290479*/ OPC_CheckType, MVT::i32, ++/*290481*/ OPC_MoveParent, ++/*290482*/ OPC_MoveChild, 27, ++/*290484*/ OPC_CheckInteger, 1, ++/*290486*/ OPC_CheckType, MVT::i32, ++/*290488*/ OPC_MoveParent, ++/*290489*/ OPC_MoveChild, 28, ++/*290491*/ OPC_CheckInteger, 1, ++/*290493*/ OPC_CheckType, MVT::i32, ++/*290495*/ OPC_MoveParent, ++/*290496*/ OPC_MoveChild, 29, ++/*290498*/ OPC_CheckInteger, 1, ++/*290500*/ OPC_CheckType, MVT::i32, ++/*290502*/ OPC_MoveParent, ++/*290503*/ OPC_MoveChild, 30, ++/*290505*/ OPC_CheckInteger, 1, ++/*290507*/ OPC_CheckType, MVT::i32, ++/*290509*/ OPC_MoveParent, ++/*290510*/ OPC_MoveChild, 31, ++/*290512*/ OPC_CheckInteger, 1, ++/*290514*/ OPC_CheckType, MVT::i32, ++/*290516*/ OPC_MoveParent, ++/*290517*/ OPC_CheckType, MVT::v32i8, ++/*290519*/ OPC_MoveParent, ++/*290520*/ OPC_CheckType, MVT::v32i8, ++/*290522*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*290524*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b), LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*290532*/ 0, /*End of Scope*/ ++/*290533*/ 0, /*End of Scope*/ ++/*290534*/ /*Scope*/ 91|128,127/*16347*/, /*->306883*/ ++/*290536*/ OPC_RecordChild0, // #0 = $b ++/*290537*/ OPC_Scope, 87|128,43/*5591*/, /*->296131*/ // 2 children in Scope ++/*290540*/ OPC_MoveChild1, ++/*290541*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*290544*/ OPC_CheckChild0Integer, 1, ++/*290546*/ OPC_CheckChild0Type, MVT::i32, ++/*290548*/ OPC_CheckChild1Integer, 1, ++/*290550*/ OPC_CheckChild1Type, MVT::i32, ++/*290552*/ OPC_CheckChild2Integer, 1, ++/*290554*/ OPC_CheckChild2Type, MVT::i32, ++/*290556*/ OPC_CheckChild3Integer, 1, ++/*290558*/ OPC_CheckChild3Type, MVT::i32, ++/*290560*/ OPC_CheckChild4Integer, 1, ++/*290562*/ OPC_CheckChild4Type, MVT::i32, ++/*290564*/ OPC_MoveChild5, ++/*290565*/ OPC_CheckInteger, 1, ++/*290567*/ OPC_CheckType, MVT::i32, ++/*290569*/ OPC_MoveParent, ++/*290570*/ OPC_MoveChild6, ++/*290571*/ OPC_CheckInteger, 1, ++/*290573*/ OPC_CheckType, MVT::i32, ++/*290575*/ OPC_MoveParent, ++/*290576*/ OPC_MoveChild7, ++/*290577*/ OPC_CheckInteger, 1, ++/*290579*/ OPC_CheckType, MVT::i32, ++/*290581*/ OPC_MoveParent, ++/*290582*/ OPC_MoveChild, 8, ++/*290584*/ OPC_CheckInteger, 1, ++/*290586*/ OPC_CheckType, MVT::i32, ++/*290588*/ OPC_MoveParent, ++/*290589*/ OPC_MoveChild, 9, ++/*290591*/ OPC_CheckInteger, 1, ++/*290593*/ OPC_CheckType, MVT::i32, ++/*290595*/ OPC_MoveParent, ++/*290596*/ OPC_MoveChild, 10, ++/*290598*/ OPC_CheckInteger, 1, ++/*290600*/ OPC_CheckType, MVT::i32, ++/*290602*/ OPC_MoveParent, ++/*290603*/ OPC_MoveChild, 11, ++/*290605*/ OPC_CheckInteger, 1, ++/*290607*/ OPC_CheckType, MVT::i32, ++/*290609*/ OPC_MoveParent, ++/*290610*/ OPC_MoveChild, 12, ++/*290612*/ OPC_CheckInteger, 1, ++/*290614*/ OPC_CheckType, MVT::i32, ++/*290616*/ OPC_MoveParent, ++/*290617*/ OPC_MoveChild, 13, ++/*290619*/ OPC_CheckInteger, 1, ++/*290621*/ OPC_CheckType, MVT::i32, ++/*290623*/ OPC_MoveParent, ++/*290624*/ OPC_MoveChild, 14, ++/*290626*/ OPC_CheckInteger, 1, ++/*290628*/ OPC_CheckType, MVT::i32, ++/*290630*/ OPC_MoveParent, ++/*290631*/ OPC_MoveChild, 15, ++/*290633*/ OPC_CheckInteger, 1, ++/*290635*/ OPC_CheckType, MVT::i32, ++/*290637*/ OPC_MoveParent, ++/*290638*/ OPC_MoveChild, 16, ++/*290640*/ OPC_CheckInteger, 1, ++/*290642*/ OPC_CheckType, MVT::i32, ++/*290644*/ OPC_MoveParent, ++/*290645*/ OPC_MoveChild, 17, ++/*290647*/ OPC_CheckInteger, 1, ++/*290649*/ OPC_CheckType, MVT::i32, ++/*290651*/ OPC_MoveParent, ++/*290652*/ OPC_MoveChild, 18, ++/*290654*/ OPC_CheckInteger, 1, ++/*290656*/ OPC_CheckType, MVT::i32, ++/*290658*/ OPC_MoveParent, ++/*290659*/ OPC_MoveChild, 19, ++/*290661*/ OPC_CheckInteger, 1, ++/*290663*/ OPC_CheckType, MVT::i32, ++/*290665*/ OPC_MoveParent, ++/*290666*/ OPC_MoveChild, 20, ++/*290668*/ OPC_CheckInteger, 1, ++/*290670*/ OPC_CheckType, MVT::i32, ++/*290672*/ OPC_MoveParent, ++/*290673*/ OPC_MoveChild, 21, ++/*290675*/ OPC_CheckInteger, 1, ++/*290677*/ OPC_CheckType, MVT::i32, ++/*290679*/ OPC_MoveParent, ++/*290680*/ OPC_MoveChild, 22, ++/*290682*/ OPC_CheckInteger, 1, ++/*290684*/ OPC_CheckType, MVT::i32, ++/*290686*/ OPC_MoveParent, ++/*290687*/ OPC_MoveChild, 23, ++/*290689*/ OPC_CheckInteger, 1, ++/*290691*/ OPC_CheckType, MVT::i32, ++/*290693*/ OPC_MoveParent, ++/*290694*/ OPC_MoveChild, 24, ++/*290696*/ OPC_CheckInteger, 1, ++/*290698*/ OPC_CheckType, MVT::i32, ++/*290700*/ OPC_MoveParent, ++/*290701*/ OPC_MoveChild, 25, ++/*290703*/ OPC_CheckInteger, 1, ++/*290705*/ OPC_CheckType, MVT::i32, ++/*290707*/ OPC_MoveParent, ++/*290708*/ OPC_MoveChild, 26, ++/*290710*/ OPC_CheckInteger, 1, ++/*290712*/ OPC_CheckType, MVT::i32, ++/*290714*/ OPC_MoveParent, ++/*290715*/ OPC_MoveChild, 27, ++/*290717*/ OPC_CheckInteger, 1, ++/*290719*/ OPC_CheckType, MVT::i32, ++/*290721*/ OPC_MoveParent, ++/*290722*/ OPC_MoveChild, 28, ++/*290724*/ OPC_CheckInteger, 1, ++/*290726*/ OPC_CheckType, MVT::i32, ++/*290728*/ OPC_MoveParent, ++/*290729*/ OPC_MoveChild, 29, ++/*290731*/ OPC_CheckInteger, 1, ++/*290733*/ OPC_CheckType, MVT::i32, ++/*290735*/ OPC_MoveParent, ++/*290736*/ OPC_MoveChild, 30, ++/*290738*/ OPC_CheckInteger, 1, ++/*290740*/ OPC_CheckType, MVT::i32, ++/*290742*/ OPC_MoveParent, ++/*290743*/ OPC_MoveChild, 31, ++/*290745*/ OPC_CheckInteger, 1, ++/*290747*/ OPC_CheckType, MVT::i32, ++/*290749*/ OPC_MoveParent, ++/*290750*/ OPC_MoveParent, ++/*290751*/ OPC_MoveParent, ++/*290752*/ OPC_RecordChild1, // #1 = $a ++/*290753*/ OPC_MoveParent, ++/*290754*/ OPC_MoveChild1, ++/*290755*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*290758*/ OPC_CheckChild0Integer, 7, ++/*290760*/ OPC_CheckChild0Type, MVT::i32, ++/*290762*/ OPC_CheckChild1Integer, 7, ++/*290764*/ OPC_CheckChild1Type, MVT::i32, ++/*290766*/ OPC_CheckChild2Integer, 7, ++/*290768*/ OPC_CheckChild2Type, MVT::i32, ++/*290770*/ OPC_CheckChild3Integer, 7, ++/*290772*/ OPC_CheckChild3Type, MVT::i32, ++/*290774*/ OPC_CheckChild4Integer, 7, ++/*290776*/ OPC_CheckChild4Type, MVT::i32, ++/*290778*/ OPC_MoveChild5, ++/*290779*/ OPC_CheckInteger, 7, ++/*290781*/ OPC_CheckType, MVT::i32, ++/*290783*/ OPC_MoveParent, ++/*290784*/ OPC_MoveChild6, ++/*290785*/ OPC_CheckInteger, 7, ++/*290787*/ OPC_CheckType, MVT::i32, ++/*290789*/ OPC_MoveParent, ++/*290790*/ OPC_MoveChild7, ++/*290791*/ OPC_CheckInteger, 7, ++/*290793*/ OPC_CheckType, MVT::i32, ++/*290795*/ OPC_MoveParent, ++/*290796*/ OPC_MoveChild, 8, ++/*290798*/ OPC_CheckInteger, 7, ++/*290800*/ OPC_CheckType, MVT::i32, ++/*290802*/ OPC_MoveParent, ++/*290803*/ OPC_MoveChild, 9, ++/*290805*/ OPC_CheckInteger, 7, ++/*290807*/ OPC_CheckType, MVT::i32, ++/*290809*/ OPC_MoveParent, ++/*290810*/ OPC_MoveChild, 10, ++/*290812*/ OPC_CheckInteger, 7, ++/*290814*/ OPC_CheckType, MVT::i32, ++/*290816*/ OPC_MoveParent, ++/*290817*/ OPC_MoveChild, 11, ++/*290819*/ OPC_CheckInteger, 7, ++/*290821*/ OPC_CheckType, MVT::i32, ++/*290823*/ OPC_MoveParent, ++/*290824*/ OPC_MoveChild, 12, ++/*290826*/ OPC_CheckInteger, 7, ++/*290828*/ OPC_CheckType, MVT::i32, ++/*290830*/ OPC_MoveParent, ++/*290831*/ OPC_MoveChild, 13, ++/*290833*/ OPC_CheckInteger, 7, ++/*290835*/ OPC_CheckType, MVT::i32, ++/*290837*/ OPC_MoveParent, ++/*290838*/ OPC_MoveChild, 14, ++/*290840*/ OPC_CheckInteger, 7, ++/*290842*/ OPC_CheckType, MVT::i32, ++/*290844*/ OPC_MoveParent, ++/*290845*/ OPC_MoveChild, 15, ++/*290847*/ OPC_CheckInteger, 7, ++/*290849*/ OPC_CheckType, MVT::i32, ++/*290851*/ OPC_MoveParent, ++/*290852*/ OPC_MoveChild, 16, ++/*290854*/ OPC_CheckInteger, 7, ++/*290856*/ OPC_CheckType, MVT::i32, ++/*290858*/ OPC_MoveParent, ++/*290859*/ OPC_MoveChild, 17, ++/*290861*/ OPC_CheckInteger, 7, ++/*290863*/ OPC_CheckType, MVT::i32, ++/*290865*/ OPC_MoveParent, ++/*290866*/ OPC_MoveChild, 18, ++/*290868*/ OPC_CheckInteger, 7, ++/*290870*/ OPC_CheckType, MVT::i32, ++/*290872*/ OPC_MoveParent, ++/*290873*/ OPC_MoveChild, 19, ++/*290875*/ OPC_CheckInteger, 7, ++/*290877*/ OPC_CheckType, MVT::i32, ++/*290879*/ OPC_MoveParent, ++/*290880*/ OPC_MoveChild, 20, ++/*290882*/ OPC_CheckInteger, 7, ++/*290884*/ OPC_CheckType, MVT::i32, ++/*290886*/ OPC_MoveParent, ++/*290887*/ OPC_MoveChild, 21, ++/*290889*/ OPC_CheckInteger, 7, ++/*290891*/ OPC_CheckType, MVT::i32, ++/*290893*/ OPC_MoveParent, ++/*290894*/ OPC_MoveChild, 22, ++/*290896*/ OPC_CheckInteger, 7, ++/*290898*/ OPC_CheckType, MVT::i32, ++/*290900*/ OPC_MoveParent, ++/*290901*/ OPC_MoveChild, 23, ++/*290903*/ OPC_CheckInteger, 7, ++/*290905*/ OPC_CheckType, MVT::i32, ++/*290907*/ OPC_MoveParent, ++/*290908*/ OPC_MoveChild, 24, ++/*290910*/ OPC_CheckInteger, 7, ++/*290912*/ OPC_CheckType, MVT::i32, ++/*290914*/ OPC_MoveParent, ++/*290915*/ OPC_MoveChild, 25, ++/*290917*/ OPC_CheckInteger, 7, ++/*290919*/ OPC_CheckType, MVT::i32, ++/*290921*/ OPC_MoveParent, ++/*290922*/ OPC_MoveChild, 26, ++/*290924*/ OPC_CheckInteger, 7, ++/*290926*/ OPC_CheckType, MVT::i32, ++/*290928*/ OPC_MoveParent, ++/*290929*/ OPC_MoveChild, 27, ++/*290931*/ OPC_CheckInteger, 7, ++/*290933*/ OPC_CheckType, MVT::i32, ++/*290935*/ OPC_MoveParent, ++/*290936*/ OPC_MoveChild, 28, ++/*290938*/ OPC_CheckInteger, 7, ++/*290940*/ OPC_CheckType, MVT::i32, ++/*290942*/ OPC_MoveParent, ++/*290943*/ OPC_MoveChild, 29, ++/*290945*/ OPC_CheckInteger, 7, ++/*290947*/ OPC_CheckType, MVT::i32, ++/*290949*/ OPC_MoveParent, ++/*290950*/ OPC_MoveChild, 30, ++/*290952*/ OPC_CheckInteger, 7, ++/*290954*/ OPC_CheckType, MVT::i32, ++/*290956*/ OPC_MoveParent, ++/*290957*/ OPC_MoveChild, 31, ++/*290959*/ OPC_CheckInteger, 7, ++/*290961*/ OPC_CheckType, MVT::i32, ++/*290963*/ OPC_MoveParent, ++/*290964*/ OPC_CheckType, MVT::v32i8, ++/*290966*/ OPC_MoveParent, ++/*290967*/ OPC_MoveParent, ++/*290968*/ OPC_MoveChild1, ++/*290969*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*290972*/ OPC_Scope, 116|128,20/*2676*/, /*->293651*/ // 4 children in Scope ++/*290975*/ OPC_MoveChild0, ++/*290976*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*290979*/ OPC_Scope, 59|128,3/*443*/, /*->291425*/ // 6 children in Scope ++/*290982*/ OPC_MoveChild0, ++/*290983*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*290986*/ OPC_CheckChild0Integer, 1, ++/*290988*/ OPC_CheckChild0Type, MVT::i32, ++/*290990*/ OPC_CheckChild1Integer, 1, ++/*290992*/ OPC_CheckChild1Type, MVT::i32, ++/*290994*/ OPC_CheckChild2Integer, 1, ++/*290996*/ OPC_CheckChild2Type, MVT::i32, ++/*290998*/ OPC_CheckChild3Integer, 1, ++/*291000*/ OPC_CheckChild3Type, MVT::i32, ++/*291002*/ OPC_CheckChild4Integer, 1, ++/*291004*/ OPC_CheckChild4Type, MVT::i32, ++/*291006*/ OPC_MoveChild5, ++/*291007*/ OPC_CheckInteger, 1, ++/*291009*/ OPC_CheckType, MVT::i32, ++/*291011*/ OPC_MoveParent, ++/*291012*/ OPC_MoveChild6, ++/*291013*/ OPC_CheckInteger, 1, ++/*291015*/ OPC_CheckType, MVT::i32, ++/*291017*/ OPC_MoveParent, ++/*291018*/ OPC_MoveChild7, ++/*291019*/ OPC_CheckInteger, 1, ++/*291021*/ OPC_CheckType, MVT::i32, ++/*291023*/ OPC_MoveParent, ++/*291024*/ OPC_MoveChild, 8, ++/*291026*/ OPC_CheckInteger, 1, ++/*291028*/ OPC_CheckType, MVT::i32, ++/*291030*/ OPC_MoveParent, ++/*291031*/ OPC_MoveChild, 9, ++/*291033*/ OPC_CheckInteger, 1, ++/*291035*/ OPC_CheckType, MVT::i32, ++/*291037*/ OPC_MoveParent, ++/*291038*/ OPC_MoveChild, 10, ++/*291040*/ OPC_CheckInteger, 1, ++/*291042*/ OPC_CheckType, MVT::i32, ++/*291044*/ OPC_MoveParent, ++/*291045*/ OPC_MoveChild, 11, ++/*291047*/ OPC_CheckInteger, 1, ++/*291049*/ OPC_CheckType, MVT::i32, ++/*291051*/ OPC_MoveParent, ++/*291052*/ OPC_MoveChild, 12, ++/*291054*/ OPC_CheckInteger, 1, ++/*291056*/ OPC_CheckType, MVT::i32, ++/*291058*/ OPC_MoveParent, ++/*291059*/ OPC_MoveChild, 13, ++/*291061*/ OPC_CheckInteger, 1, ++/*291063*/ OPC_CheckType, MVT::i32, ++/*291065*/ OPC_MoveParent, ++/*291066*/ OPC_MoveChild, 14, ++/*291068*/ OPC_CheckInteger, 1, ++/*291070*/ OPC_CheckType, MVT::i32, ++/*291072*/ OPC_MoveParent, ++/*291073*/ OPC_MoveChild, 15, ++/*291075*/ OPC_CheckInteger, 1, ++/*291077*/ OPC_CheckType, MVT::i32, ++/*291079*/ OPC_MoveParent, ++/*291080*/ OPC_MoveChild, 16, ++/*291082*/ OPC_CheckInteger, 1, ++/*291084*/ OPC_CheckType, MVT::i32, ++/*291086*/ OPC_MoveParent, ++/*291087*/ OPC_MoveChild, 17, ++/*291089*/ OPC_CheckInteger, 1, ++/*291091*/ OPC_CheckType, MVT::i32, ++/*291093*/ OPC_MoveParent, ++/*291094*/ OPC_MoveChild, 18, ++/*291096*/ OPC_CheckInteger, 1, ++/*291098*/ OPC_CheckType, MVT::i32, ++/*291100*/ OPC_MoveParent, ++/*291101*/ OPC_MoveChild, 19, ++/*291103*/ OPC_CheckInteger, 1, ++/*291105*/ OPC_CheckType, MVT::i32, ++/*291107*/ OPC_MoveParent, ++/*291108*/ OPC_MoveChild, 20, ++/*291110*/ OPC_CheckInteger, 1, ++/*291112*/ OPC_CheckType, MVT::i32, ++/*291114*/ OPC_MoveParent, ++/*291115*/ OPC_MoveChild, 21, ++/*291117*/ OPC_CheckInteger, 1, ++/*291119*/ OPC_CheckType, MVT::i32, ++/*291121*/ OPC_MoveParent, ++/*291122*/ OPC_MoveChild, 22, ++/*291124*/ OPC_CheckInteger, 1, ++/*291126*/ OPC_CheckType, MVT::i32, ++/*291128*/ OPC_MoveParent, ++/*291129*/ OPC_MoveChild, 23, ++/*291131*/ OPC_CheckInteger, 1, ++/*291133*/ OPC_CheckType, MVT::i32, ++/*291135*/ OPC_MoveParent, ++/*291136*/ OPC_MoveChild, 24, ++/*291138*/ OPC_CheckInteger, 1, ++/*291140*/ OPC_CheckType, MVT::i32, ++/*291142*/ OPC_MoveParent, ++/*291143*/ OPC_MoveChild, 25, ++/*291145*/ OPC_CheckInteger, 1, ++/*291147*/ OPC_CheckType, MVT::i32, ++/*291149*/ OPC_MoveParent, ++/*291150*/ OPC_MoveChild, 26, ++/*291152*/ OPC_CheckInteger, 1, ++/*291154*/ OPC_CheckType, MVT::i32, ++/*291156*/ OPC_MoveParent, ++/*291157*/ OPC_MoveChild, 27, ++/*291159*/ OPC_CheckInteger, 1, ++/*291161*/ OPC_CheckType, MVT::i32, ++/*291163*/ OPC_MoveParent, ++/*291164*/ OPC_MoveChild, 28, ++/*291166*/ OPC_CheckInteger, 1, ++/*291168*/ OPC_CheckType, MVT::i32, ++/*291170*/ OPC_MoveParent, ++/*291171*/ OPC_MoveChild, 29, ++/*291173*/ OPC_CheckInteger, 1, ++/*291175*/ OPC_CheckType, MVT::i32, ++/*291177*/ OPC_MoveParent, ++/*291178*/ OPC_MoveChild, 30, ++/*291180*/ OPC_CheckInteger, 1, ++/*291182*/ OPC_CheckType, MVT::i32, ++/*291184*/ OPC_MoveParent, ++/*291185*/ OPC_MoveChild, 31, ++/*291187*/ OPC_CheckInteger, 1, ++/*291189*/ OPC_CheckType, MVT::i32, ++/*291191*/ OPC_MoveParent, ++/*291192*/ OPC_MoveParent, ++/*291193*/ OPC_CheckChild1Same, 1, ++/*291195*/ OPC_MoveParent, ++/*291196*/ OPC_CheckChild1Same, 0, ++/*291198*/ OPC_MoveParent, ++/*291199*/ OPC_MoveParent, ++/*291200*/ OPC_MoveChild1, ++/*291201*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*291204*/ OPC_CheckChild0Integer, 1, ++/*291206*/ OPC_CheckChild0Type, MVT::i32, ++/*291208*/ OPC_CheckChild1Integer, 1, ++/*291210*/ OPC_CheckChild1Type, MVT::i32, ++/*291212*/ OPC_CheckChild2Integer, 1, ++/*291214*/ OPC_CheckChild2Type, MVT::i32, ++/*291216*/ OPC_CheckChild3Integer, 1, ++/*291218*/ OPC_CheckChild3Type, MVT::i32, ++/*291220*/ OPC_CheckChild4Integer, 1, ++/*291222*/ OPC_CheckChild4Type, MVT::i32, ++/*291224*/ OPC_MoveChild5, ++/*291225*/ OPC_CheckInteger, 1, ++/*291227*/ OPC_CheckType, MVT::i32, ++/*291229*/ OPC_MoveParent, ++/*291230*/ OPC_MoveChild6, ++/*291231*/ OPC_CheckInteger, 1, ++/*291233*/ OPC_CheckType, MVT::i32, ++/*291235*/ OPC_MoveParent, ++/*291236*/ OPC_MoveChild7, ++/*291237*/ OPC_CheckInteger, 1, ++/*291239*/ OPC_CheckType, MVT::i32, ++/*291241*/ OPC_MoveParent, ++/*291242*/ OPC_MoveChild, 8, ++/*291244*/ OPC_CheckInteger, 1, ++/*291246*/ OPC_CheckType, MVT::i32, ++/*291248*/ OPC_MoveParent, ++/*291249*/ OPC_MoveChild, 9, ++/*291251*/ OPC_CheckInteger, 1, ++/*291253*/ OPC_CheckType, MVT::i32, ++/*291255*/ OPC_MoveParent, ++/*291256*/ OPC_MoveChild, 10, ++/*291258*/ OPC_CheckInteger, 1, ++/*291260*/ OPC_CheckType, MVT::i32, ++/*291262*/ OPC_MoveParent, ++/*291263*/ OPC_MoveChild, 11, ++/*291265*/ OPC_CheckInteger, 1, ++/*291267*/ OPC_CheckType, MVT::i32, ++/*291269*/ OPC_MoveParent, ++/*291270*/ OPC_MoveChild, 12, ++/*291272*/ OPC_CheckInteger, 1, ++/*291274*/ OPC_CheckType, MVT::i32, ++/*291276*/ OPC_MoveParent, ++/*291277*/ OPC_MoveChild, 13, ++/*291279*/ OPC_CheckInteger, 1, ++/*291281*/ OPC_CheckType, MVT::i32, ++/*291283*/ OPC_MoveParent, ++/*291284*/ OPC_MoveChild, 14, ++/*291286*/ OPC_CheckInteger, 1, ++/*291288*/ OPC_CheckType, MVT::i32, ++/*291290*/ OPC_MoveParent, ++/*291291*/ OPC_MoveChild, 15, ++/*291293*/ OPC_CheckInteger, 1, ++/*291295*/ OPC_CheckType, MVT::i32, ++/*291297*/ OPC_MoveParent, ++/*291298*/ OPC_MoveChild, 16, ++/*291300*/ OPC_CheckInteger, 1, ++/*291302*/ OPC_CheckType, MVT::i32, ++/*291304*/ OPC_MoveParent, ++/*291305*/ OPC_MoveChild, 17, ++/*291307*/ OPC_CheckInteger, 1, ++/*291309*/ OPC_CheckType, MVT::i32, ++/*291311*/ OPC_MoveParent, ++/*291312*/ OPC_MoveChild, 18, ++/*291314*/ OPC_CheckInteger, 1, ++/*291316*/ OPC_CheckType, MVT::i32, ++/*291318*/ OPC_MoveParent, ++/*291319*/ OPC_MoveChild, 19, ++/*291321*/ OPC_CheckInteger, 1, ++/*291323*/ OPC_CheckType, MVT::i32, ++/*291325*/ OPC_MoveParent, ++/*291326*/ OPC_MoveChild, 20, ++/*291328*/ OPC_CheckInteger, 1, ++/*291330*/ OPC_CheckType, MVT::i32, ++/*291332*/ OPC_MoveParent, ++/*291333*/ OPC_MoveChild, 21, ++/*291335*/ OPC_CheckInteger, 1, ++/*291337*/ OPC_CheckType, MVT::i32, ++/*291339*/ OPC_MoveParent, ++/*291340*/ OPC_MoveChild, 22, ++/*291342*/ OPC_CheckInteger, 1, ++/*291344*/ OPC_CheckType, MVT::i32, ++/*291346*/ OPC_MoveParent, ++/*291347*/ OPC_MoveChild, 23, ++/*291349*/ OPC_CheckInteger, 1, ++/*291351*/ OPC_CheckType, MVT::i32, ++/*291353*/ OPC_MoveParent, ++/*291354*/ OPC_MoveChild, 24, ++/*291356*/ OPC_CheckInteger, 1, ++/*291358*/ OPC_CheckType, MVT::i32, ++/*291360*/ OPC_MoveParent, ++/*291361*/ OPC_MoveChild, 25, ++/*291363*/ OPC_CheckInteger, 1, ++/*291365*/ OPC_CheckType, MVT::i32, ++/*291367*/ OPC_MoveParent, ++/*291368*/ OPC_MoveChild, 26, ++/*291370*/ OPC_CheckInteger, 1, ++/*291372*/ OPC_CheckType, MVT::i32, ++/*291374*/ OPC_MoveParent, ++/*291375*/ OPC_MoveChild, 27, ++/*291377*/ OPC_CheckInteger, 1, ++/*291379*/ OPC_CheckType, MVT::i32, ++/*291381*/ OPC_MoveParent, ++/*291382*/ OPC_MoveChild, 28, ++/*291384*/ OPC_CheckInteger, 1, ++/*291386*/ OPC_CheckType, MVT::i32, ++/*291388*/ OPC_MoveParent, ++/*291389*/ OPC_MoveChild, 29, ++/*291391*/ OPC_CheckInteger, 1, ++/*291393*/ OPC_CheckType, MVT::i32, ++/*291395*/ OPC_MoveParent, ++/*291396*/ OPC_MoveChild, 30, ++/*291398*/ OPC_CheckInteger, 1, ++/*291400*/ OPC_CheckType, MVT::i32, ++/*291402*/ OPC_MoveParent, ++/*291403*/ OPC_MoveChild, 31, ++/*291405*/ OPC_CheckInteger, 1, ++/*291407*/ OPC_CheckType, MVT::i32, ++/*291409*/ OPC_MoveParent, ++/*291410*/ OPC_CheckType, MVT::v32i8, ++/*291412*/ OPC_MoveParent, ++/*291413*/ OPC_CheckType, MVT::v32i8, ++/*291415*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*291417*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a), LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*291425*/ /*Scope*/ 59|128,3/*443*/, /*->291870*/ ++/*291427*/ OPC_CheckChild0Same, 1, ++/*291429*/ OPC_MoveChild1, ++/*291430*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*291433*/ OPC_CheckChild0Integer, 1, ++/*291435*/ OPC_CheckChild0Type, MVT::i32, ++/*291437*/ OPC_CheckChild1Integer, 1, ++/*291439*/ OPC_CheckChild1Type, MVT::i32, ++/*291441*/ OPC_CheckChild2Integer, 1, ++/*291443*/ OPC_CheckChild2Type, MVT::i32, ++/*291445*/ OPC_CheckChild3Integer, 1, ++/*291447*/ OPC_CheckChild3Type, MVT::i32, ++/*291449*/ OPC_CheckChild4Integer, 1, ++/*291451*/ OPC_CheckChild4Type, MVT::i32, ++/*291453*/ OPC_MoveChild5, ++/*291454*/ OPC_CheckInteger, 1, ++/*291456*/ OPC_CheckType, MVT::i32, ++/*291458*/ OPC_MoveParent, ++/*291459*/ OPC_MoveChild6, ++/*291460*/ OPC_CheckInteger, 1, ++/*291462*/ OPC_CheckType, MVT::i32, ++/*291464*/ OPC_MoveParent, ++/*291465*/ OPC_MoveChild7, ++/*291466*/ OPC_CheckInteger, 1, ++/*291468*/ OPC_CheckType, MVT::i32, ++/*291470*/ OPC_MoveParent, ++/*291471*/ OPC_MoveChild, 8, ++/*291473*/ OPC_CheckInteger, 1, ++/*291475*/ OPC_CheckType, MVT::i32, ++/*291477*/ OPC_MoveParent, ++/*291478*/ OPC_MoveChild, 9, ++/*291480*/ OPC_CheckInteger, 1, ++/*291482*/ OPC_CheckType, MVT::i32, ++/*291484*/ OPC_MoveParent, ++/*291485*/ OPC_MoveChild, 10, ++/*291487*/ OPC_CheckInteger, 1, ++/*291489*/ OPC_CheckType, MVT::i32, ++/*291491*/ OPC_MoveParent, ++/*291492*/ OPC_MoveChild, 11, ++/*291494*/ OPC_CheckInteger, 1, ++/*291496*/ OPC_CheckType, MVT::i32, ++/*291498*/ OPC_MoveParent, ++/*291499*/ OPC_MoveChild, 12, ++/*291501*/ OPC_CheckInteger, 1, ++/*291503*/ OPC_CheckType, MVT::i32, ++/*291505*/ OPC_MoveParent, ++/*291506*/ OPC_MoveChild, 13, ++/*291508*/ OPC_CheckInteger, 1, ++/*291510*/ OPC_CheckType, MVT::i32, ++/*291512*/ OPC_MoveParent, ++/*291513*/ OPC_MoveChild, 14, ++/*291515*/ OPC_CheckInteger, 1, ++/*291517*/ OPC_CheckType, MVT::i32, ++/*291519*/ OPC_MoveParent, ++/*291520*/ OPC_MoveChild, 15, ++/*291522*/ OPC_CheckInteger, 1, ++/*291524*/ OPC_CheckType, MVT::i32, ++/*291526*/ OPC_MoveParent, ++/*291527*/ OPC_MoveChild, 16, ++/*291529*/ OPC_CheckInteger, 1, ++/*291531*/ OPC_CheckType, MVT::i32, ++/*291533*/ OPC_MoveParent, ++/*291534*/ OPC_MoveChild, 17, ++/*291536*/ OPC_CheckInteger, 1, ++/*291538*/ OPC_CheckType, MVT::i32, ++/*291540*/ OPC_MoveParent, ++/*291541*/ OPC_MoveChild, 18, ++/*291543*/ OPC_CheckInteger, 1, ++/*291545*/ OPC_CheckType, MVT::i32, ++/*291547*/ OPC_MoveParent, ++/*291548*/ OPC_MoveChild, 19, ++/*291550*/ OPC_CheckInteger, 1, ++/*291552*/ OPC_CheckType, MVT::i32, ++/*291554*/ OPC_MoveParent, ++/*291555*/ OPC_MoveChild, 20, ++/*291557*/ OPC_CheckInteger, 1, ++/*291559*/ OPC_CheckType, MVT::i32, ++/*291561*/ OPC_MoveParent, ++/*291562*/ OPC_MoveChild, 21, ++/*291564*/ OPC_CheckInteger, 1, ++/*291566*/ OPC_CheckType, MVT::i32, ++/*291568*/ OPC_MoveParent, ++/*291569*/ OPC_MoveChild, 22, ++/*291571*/ OPC_CheckInteger, 1, ++/*291573*/ OPC_CheckType, MVT::i32, ++/*291575*/ OPC_MoveParent, ++/*291576*/ OPC_MoveChild, 23, ++/*291578*/ OPC_CheckInteger, 1, ++/*291580*/ OPC_CheckType, MVT::i32, ++/*291582*/ OPC_MoveParent, ++/*291583*/ OPC_MoveChild, 24, ++/*291585*/ OPC_CheckInteger, 1, ++/*291587*/ OPC_CheckType, MVT::i32, ++/*291589*/ OPC_MoveParent, ++/*291590*/ OPC_MoveChild, 25, ++/*291592*/ OPC_CheckInteger, 1, ++/*291594*/ OPC_CheckType, MVT::i32, ++/*291596*/ OPC_MoveParent, ++/*291597*/ OPC_MoveChild, 26, ++/*291599*/ OPC_CheckInteger, 1, ++/*291601*/ OPC_CheckType, MVT::i32, ++/*291603*/ OPC_MoveParent, ++/*291604*/ OPC_MoveChild, 27, ++/*291606*/ OPC_CheckInteger, 1, ++/*291608*/ OPC_CheckType, MVT::i32, ++/*291610*/ OPC_MoveParent, ++/*291611*/ OPC_MoveChild, 28, ++/*291613*/ OPC_CheckInteger, 1, ++/*291615*/ OPC_CheckType, MVT::i32, ++/*291617*/ OPC_MoveParent, ++/*291618*/ OPC_MoveChild, 29, ++/*291620*/ OPC_CheckInteger, 1, ++/*291622*/ OPC_CheckType, MVT::i32, ++/*291624*/ OPC_MoveParent, ++/*291625*/ OPC_MoveChild, 30, ++/*291627*/ OPC_CheckInteger, 1, ++/*291629*/ OPC_CheckType, MVT::i32, ++/*291631*/ OPC_MoveParent, ++/*291632*/ OPC_MoveChild, 31, ++/*291634*/ OPC_CheckInteger, 1, ++/*291636*/ OPC_CheckType, MVT::i32, ++/*291638*/ OPC_MoveParent, ++/*291639*/ OPC_MoveParent, ++/*291640*/ OPC_MoveParent, ++/*291641*/ OPC_CheckChild1Same, 0, ++/*291643*/ OPC_MoveParent, ++/*291644*/ OPC_MoveParent, ++/*291645*/ OPC_MoveChild1, ++/*291646*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*291649*/ OPC_CheckChild0Integer, 1, ++/*291651*/ OPC_CheckChild0Type, MVT::i32, ++/*291653*/ OPC_CheckChild1Integer, 1, ++/*291655*/ OPC_CheckChild1Type, MVT::i32, ++/*291657*/ OPC_CheckChild2Integer, 1, ++/*291659*/ OPC_CheckChild2Type, MVT::i32, ++/*291661*/ OPC_CheckChild3Integer, 1, ++/*291663*/ OPC_CheckChild3Type, MVT::i32, ++/*291665*/ OPC_CheckChild4Integer, 1, ++/*291667*/ OPC_CheckChild4Type, MVT::i32, ++/*291669*/ OPC_MoveChild5, ++/*291670*/ OPC_CheckInteger, 1, ++/*291672*/ OPC_CheckType, MVT::i32, ++/*291674*/ OPC_MoveParent, ++/*291675*/ OPC_MoveChild6, ++/*291676*/ OPC_CheckInteger, 1, ++/*291678*/ OPC_CheckType, MVT::i32, ++/*291680*/ OPC_MoveParent, ++/*291681*/ OPC_MoveChild7, ++/*291682*/ OPC_CheckInteger, 1, ++/*291684*/ OPC_CheckType, MVT::i32, ++/*291686*/ OPC_MoveParent, ++/*291687*/ OPC_MoveChild, 8, ++/*291689*/ OPC_CheckInteger, 1, ++/*291691*/ OPC_CheckType, MVT::i32, ++/*291693*/ OPC_MoveParent, ++/*291694*/ OPC_MoveChild, 9, ++/*291696*/ OPC_CheckInteger, 1, ++/*291698*/ OPC_CheckType, MVT::i32, ++/*291700*/ OPC_MoveParent, ++/*291701*/ OPC_MoveChild, 10, ++/*291703*/ OPC_CheckInteger, 1, ++/*291705*/ OPC_CheckType, MVT::i32, ++/*291707*/ OPC_MoveParent, ++/*291708*/ OPC_MoveChild, 11, ++/*291710*/ OPC_CheckInteger, 1, ++/*291712*/ OPC_CheckType, MVT::i32, ++/*291714*/ OPC_MoveParent, ++/*291715*/ OPC_MoveChild, 12, ++/*291717*/ OPC_CheckInteger, 1, ++/*291719*/ OPC_CheckType, MVT::i32, ++/*291721*/ OPC_MoveParent, ++/*291722*/ OPC_MoveChild, 13, ++/*291724*/ OPC_CheckInteger, 1, ++/*291726*/ OPC_CheckType, MVT::i32, ++/*291728*/ OPC_MoveParent, ++/*291729*/ OPC_MoveChild, 14, ++/*291731*/ OPC_CheckInteger, 1, ++/*291733*/ OPC_CheckType, MVT::i32, ++/*291735*/ OPC_MoveParent, ++/*291736*/ OPC_MoveChild, 15, ++/*291738*/ OPC_CheckInteger, 1, ++/*291740*/ OPC_CheckType, MVT::i32, ++/*291742*/ OPC_MoveParent, ++/*291743*/ OPC_MoveChild, 16, ++/*291745*/ OPC_CheckInteger, 1, ++/*291747*/ OPC_CheckType, MVT::i32, ++/*291749*/ OPC_MoveParent, ++/*291750*/ OPC_MoveChild, 17, ++/*291752*/ OPC_CheckInteger, 1, ++/*291754*/ OPC_CheckType, MVT::i32, ++/*291756*/ OPC_MoveParent, ++/*291757*/ OPC_MoveChild, 18, ++/*291759*/ OPC_CheckInteger, 1, ++/*291761*/ OPC_CheckType, MVT::i32, ++/*291763*/ OPC_MoveParent, ++/*291764*/ OPC_MoveChild, 19, ++/*291766*/ OPC_CheckInteger, 1, ++/*291768*/ OPC_CheckType, MVT::i32, ++/*291770*/ OPC_MoveParent, ++/*291771*/ OPC_MoveChild, 20, ++/*291773*/ OPC_CheckInteger, 1, ++/*291775*/ OPC_CheckType, MVT::i32, ++/*291777*/ OPC_MoveParent, ++/*291778*/ OPC_MoveChild, 21, ++/*291780*/ OPC_CheckInteger, 1, ++/*291782*/ OPC_CheckType, MVT::i32, ++/*291784*/ OPC_MoveParent, ++/*291785*/ OPC_MoveChild, 22, ++/*291787*/ OPC_CheckInteger, 1, ++/*291789*/ OPC_CheckType, MVT::i32, ++/*291791*/ OPC_MoveParent, ++/*291792*/ OPC_MoveChild, 23, ++/*291794*/ OPC_CheckInteger, 1, ++/*291796*/ OPC_CheckType, MVT::i32, ++/*291798*/ OPC_MoveParent, ++/*291799*/ OPC_MoveChild, 24, ++/*291801*/ OPC_CheckInteger, 1, ++/*291803*/ OPC_CheckType, MVT::i32, ++/*291805*/ OPC_MoveParent, ++/*291806*/ OPC_MoveChild, 25, ++/*291808*/ OPC_CheckInteger, 1, ++/*291810*/ OPC_CheckType, MVT::i32, ++/*291812*/ OPC_MoveParent, ++/*291813*/ OPC_MoveChild, 26, ++/*291815*/ OPC_CheckInteger, 1, ++/*291817*/ OPC_CheckType, MVT::i32, ++/*291819*/ OPC_MoveParent, ++/*291820*/ OPC_MoveChild, 27, ++/*291822*/ OPC_CheckInteger, 1, ++/*291824*/ OPC_CheckType, MVT::i32, ++/*291826*/ OPC_MoveParent, ++/*291827*/ OPC_MoveChild, 28, ++/*291829*/ OPC_CheckInteger, 1, ++/*291831*/ OPC_CheckType, MVT::i32, ++/*291833*/ OPC_MoveParent, ++/*291834*/ OPC_MoveChild, 29, ++/*291836*/ OPC_CheckInteger, 1, ++/*291838*/ OPC_CheckType, MVT::i32, ++/*291840*/ OPC_MoveParent, ++/*291841*/ OPC_MoveChild, 30, ++/*291843*/ OPC_CheckInteger, 1, ++/*291845*/ OPC_CheckType, MVT::i32, ++/*291847*/ OPC_MoveParent, ++/*291848*/ OPC_MoveChild, 31, ++/*291850*/ OPC_CheckInteger, 1, ++/*291852*/ OPC_CheckType, MVT::i32, ++/*291854*/ OPC_MoveParent, ++/*291855*/ OPC_CheckType, MVT::v32i8, ++/*291857*/ OPC_MoveParent, ++/*291858*/ OPC_CheckType, MVT::v32i8, ++/*291860*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*291862*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*291870*/ /*Scope*/ 59|128,3/*443*/, /*->292315*/ ++/*291872*/ OPC_MoveChild0, ++/*291873*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*291876*/ OPC_CheckChild0Integer, 1, ++/*291878*/ OPC_CheckChild0Type, MVT::i32, ++/*291880*/ OPC_CheckChild1Integer, 1, ++/*291882*/ OPC_CheckChild1Type, MVT::i32, ++/*291884*/ OPC_CheckChild2Integer, 1, ++/*291886*/ OPC_CheckChild2Type, MVT::i32, ++/*291888*/ OPC_CheckChild3Integer, 1, ++/*291890*/ OPC_CheckChild3Type, MVT::i32, ++/*291892*/ OPC_CheckChild4Integer, 1, ++/*291894*/ OPC_CheckChild4Type, MVT::i32, ++/*291896*/ OPC_MoveChild5, ++/*291897*/ OPC_CheckInteger, 1, ++/*291899*/ OPC_CheckType, MVT::i32, ++/*291901*/ OPC_MoveParent, ++/*291902*/ OPC_MoveChild6, ++/*291903*/ OPC_CheckInteger, 1, ++/*291905*/ OPC_CheckType, MVT::i32, ++/*291907*/ OPC_MoveParent, ++/*291908*/ OPC_MoveChild7, ++/*291909*/ OPC_CheckInteger, 1, ++/*291911*/ OPC_CheckType, MVT::i32, ++/*291913*/ OPC_MoveParent, ++/*291914*/ OPC_MoveChild, 8, ++/*291916*/ OPC_CheckInteger, 1, ++/*291918*/ OPC_CheckType, MVT::i32, ++/*291920*/ OPC_MoveParent, ++/*291921*/ OPC_MoveChild, 9, ++/*291923*/ OPC_CheckInteger, 1, ++/*291925*/ OPC_CheckType, MVT::i32, ++/*291927*/ OPC_MoveParent, ++/*291928*/ OPC_MoveChild, 10, ++/*291930*/ OPC_CheckInteger, 1, ++/*291932*/ OPC_CheckType, MVT::i32, ++/*291934*/ OPC_MoveParent, ++/*291935*/ OPC_MoveChild, 11, ++/*291937*/ OPC_CheckInteger, 1, ++/*291939*/ OPC_CheckType, MVT::i32, ++/*291941*/ OPC_MoveParent, ++/*291942*/ OPC_MoveChild, 12, ++/*291944*/ OPC_CheckInteger, 1, ++/*291946*/ OPC_CheckType, MVT::i32, ++/*291948*/ OPC_MoveParent, ++/*291949*/ OPC_MoveChild, 13, ++/*291951*/ OPC_CheckInteger, 1, ++/*291953*/ OPC_CheckType, MVT::i32, ++/*291955*/ OPC_MoveParent, ++/*291956*/ OPC_MoveChild, 14, ++/*291958*/ OPC_CheckInteger, 1, ++/*291960*/ OPC_CheckType, MVT::i32, ++/*291962*/ OPC_MoveParent, ++/*291963*/ OPC_MoveChild, 15, ++/*291965*/ OPC_CheckInteger, 1, ++/*291967*/ OPC_CheckType, MVT::i32, ++/*291969*/ OPC_MoveParent, ++/*291970*/ OPC_MoveChild, 16, ++/*291972*/ OPC_CheckInteger, 1, ++/*291974*/ OPC_CheckType, MVT::i32, ++/*291976*/ OPC_MoveParent, ++/*291977*/ OPC_MoveChild, 17, ++/*291979*/ OPC_CheckInteger, 1, ++/*291981*/ OPC_CheckType, MVT::i32, ++/*291983*/ OPC_MoveParent, ++/*291984*/ OPC_MoveChild, 18, ++/*291986*/ OPC_CheckInteger, 1, ++/*291988*/ OPC_CheckType, MVT::i32, ++/*291990*/ OPC_MoveParent, ++/*291991*/ OPC_MoveChild, 19, ++/*291993*/ OPC_CheckInteger, 1, ++/*291995*/ OPC_CheckType, MVT::i32, ++/*291997*/ OPC_MoveParent, ++/*291998*/ OPC_MoveChild, 20, ++/*292000*/ OPC_CheckInteger, 1, ++/*292002*/ OPC_CheckType, MVT::i32, ++/*292004*/ OPC_MoveParent, ++/*292005*/ OPC_MoveChild, 21, ++/*292007*/ OPC_CheckInteger, 1, ++/*292009*/ OPC_CheckType, MVT::i32, ++/*292011*/ OPC_MoveParent, ++/*292012*/ OPC_MoveChild, 22, ++/*292014*/ OPC_CheckInteger, 1, ++/*292016*/ OPC_CheckType, MVT::i32, ++/*292018*/ OPC_MoveParent, ++/*292019*/ OPC_MoveChild, 23, ++/*292021*/ OPC_CheckInteger, 1, ++/*292023*/ OPC_CheckType, MVT::i32, ++/*292025*/ OPC_MoveParent, ++/*292026*/ OPC_MoveChild, 24, ++/*292028*/ OPC_CheckInteger, 1, ++/*292030*/ OPC_CheckType, MVT::i32, ++/*292032*/ OPC_MoveParent, ++/*292033*/ OPC_MoveChild, 25, ++/*292035*/ OPC_CheckInteger, 1, ++/*292037*/ OPC_CheckType, MVT::i32, ++/*292039*/ OPC_MoveParent, ++/*292040*/ OPC_MoveChild, 26, ++/*292042*/ OPC_CheckInteger, 1, ++/*292044*/ OPC_CheckType, MVT::i32, ++/*292046*/ OPC_MoveParent, ++/*292047*/ OPC_MoveChild, 27, ++/*292049*/ OPC_CheckInteger, 1, ++/*292051*/ OPC_CheckType, MVT::i32, ++/*292053*/ OPC_MoveParent, ++/*292054*/ OPC_MoveChild, 28, ++/*292056*/ OPC_CheckInteger, 1, ++/*292058*/ OPC_CheckType, MVT::i32, ++/*292060*/ OPC_MoveParent, ++/*292061*/ OPC_MoveChild, 29, ++/*292063*/ OPC_CheckInteger, 1, ++/*292065*/ OPC_CheckType, MVT::i32, ++/*292067*/ OPC_MoveParent, ++/*292068*/ OPC_MoveChild, 30, ++/*292070*/ OPC_CheckInteger, 1, ++/*292072*/ OPC_CheckType, MVT::i32, ++/*292074*/ OPC_MoveParent, ++/*292075*/ OPC_MoveChild, 31, ++/*292077*/ OPC_CheckInteger, 1, ++/*292079*/ OPC_CheckType, MVT::i32, ++/*292081*/ OPC_MoveParent, ++/*292082*/ OPC_MoveParent, ++/*292083*/ OPC_CheckChild1Same, 0, ++/*292085*/ OPC_MoveParent, ++/*292086*/ OPC_CheckChild1Same, 1, ++/*292088*/ OPC_MoveParent, ++/*292089*/ OPC_MoveParent, ++/*292090*/ OPC_MoveChild1, ++/*292091*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*292094*/ OPC_CheckChild0Integer, 1, ++/*292096*/ OPC_CheckChild0Type, MVT::i32, ++/*292098*/ OPC_CheckChild1Integer, 1, ++/*292100*/ OPC_CheckChild1Type, MVT::i32, ++/*292102*/ OPC_CheckChild2Integer, 1, ++/*292104*/ OPC_CheckChild2Type, MVT::i32, ++/*292106*/ OPC_CheckChild3Integer, 1, ++/*292108*/ OPC_CheckChild3Type, MVT::i32, ++/*292110*/ OPC_CheckChild4Integer, 1, ++/*292112*/ OPC_CheckChild4Type, MVT::i32, ++/*292114*/ OPC_MoveChild5, ++/*292115*/ OPC_CheckInteger, 1, ++/*292117*/ OPC_CheckType, MVT::i32, ++/*292119*/ OPC_MoveParent, ++/*292120*/ OPC_MoveChild6, ++/*292121*/ OPC_CheckInteger, 1, ++/*292123*/ OPC_CheckType, MVT::i32, ++/*292125*/ OPC_MoveParent, ++/*292126*/ OPC_MoveChild7, ++/*292127*/ OPC_CheckInteger, 1, ++/*292129*/ OPC_CheckType, MVT::i32, ++/*292131*/ OPC_MoveParent, ++/*292132*/ OPC_MoveChild, 8, ++/*292134*/ OPC_CheckInteger, 1, ++/*292136*/ OPC_CheckType, MVT::i32, ++/*292138*/ OPC_MoveParent, ++/*292139*/ OPC_MoveChild, 9, ++/*292141*/ OPC_CheckInteger, 1, ++/*292143*/ OPC_CheckType, MVT::i32, ++/*292145*/ OPC_MoveParent, ++/*292146*/ OPC_MoveChild, 10, ++/*292148*/ OPC_CheckInteger, 1, ++/*292150*/ OPC_CheckType, MVT::i32, ++/*292152*/ OPC_MoveParent, ++/*292153*/ OPC_MoveChild, 11, ++/*292155*/ OPC_CheckInteger, 1, ++/*292157*/ OPC_CheckType, MVT::i32, ++/*292159*/ OPC_MoveParent, ++/*292160*/ OPC_MoveChild, 12, ++/*292162*/ OPC_CheckInteger, 1, ++/*292164*/ OPC_CheckType, MVT::i32, ++/*292166*/ OPC_MoveParent, ++/*292167*/ OPC_MoveChild, 13, ++/*292169*/ OPC_CheckInteger, 1, ++/*292171*/ OPC_CheckType, MVT::i32, ++/*292173*/ OPC_MoveParent, ++/*292174*/ OPC_MoveChild, 14, ++/*292176*/ OPC_CheckInteger, 1, ++/*292178*/ OPC_CheckType, MVT::i32, ++/*292180*/ OPC_MoveParent, ++/*292181*/ OPC_MoveChild, 15, ++/*292183*/ OPC_CheckInteger, 1, ++/*292185*/ OPC_CheckType, MVT::i32, ++/*292187*/ OPC_MoveParent, ++/*292188*/ OPC_MoveChild, 16, ++/*292190*/ OPC_CheckInteger, 1, ++/*292192*/ OPC_CheckType, MVT::i32, ++/*292194*/ OPC_MoveParent, ++/*292195*/ OPC_MoveChild, 17, ++/*292197*/ OPC_CheckInteger, 1, ++/*292199*/ OPC_CheckType, MVT::i32, ++/*292201*/ OPC_MoveParent, ++/*292202*/ OPC_MoveChild, 18, ++/*292204*/ OPC_CheckInteger, 1, ++/*292206*/ OPC_CheckType, MVT::i32, ++/*292208*/ OPC_MoveParent, ++/*292209*/ OPC_MoveChild, 19, ++/*292211*/ OPC_CheckInteger, 1, ++/*292213*/ OPC_CheckType, MVT::i32, ++/*292215*/ OPC_MoveParent, ++/*292216*/ OPC_MoveChild, 20, ++/*292218*/ OPC_CheckInteger, 1, ++/*292220*/ OPC_CheckType, MVT::i32, ++/*292222*/ OPC_MoveParent, ++/*292223*/ OPC_MoveChild, 21, ++/*292225*/ OPC_CheckInteger, 1, ++/*292227*/ OPC_CheckType, MVT::i32, ++/*292229*/ OPC_MoveParent, ++/*292230*/ OPC_MoveChild, 22, ++/*292232*/ OPC_CheckInteger, 1, ++/*292234*/ OPC_CheckType, MVT::i32, ++/*292236*/ OPC_MoveParent, ++/*292237*/ OPC_MoveChild, 23, ++/*292239*/ OPC_CheckInteger, 1, ++/*292241*/ OPC_CheckType, MVT::i32, ++/*292243*/ OPC_MoveParent, ++/*292244*/ OPC_MoveChild, 24, ++/*292246*/ OPC_CheckInteger, 1, ++/*292248*/ OPC_CheckType, MVT::i32, ++/*292250*/ OPC_MoveParent, ++/*292251*/ OPC_MoveChild, 25, ++/*292253*/ OPC_CheckInteger, 1, ++/*292255*/ OPC_CheckType, MVT::i32, ++/*292257*/ OPC_MoveParent, ++/*292258*/ OPC_MoveChild, 26, ++/*292260*/ OPC_CheckInteger, 1, ++/*292262*/ OPC_CheckType, MVT::i32, ++/*292264*/ OPC_MoveParent, ++/*292265*/ OPC_MoveChild, 27, ++/*292267*/ OPC_CheckInteger, 1, ++/*292269*/ OPC_CheckType, MVT::i32, ++/*292271*/ OPC_MoveParent, ++/*292272*/ OPC_MoveChild, 28, ++/*292274*/ OPC_CheckInteger, 1, ++/*292276*/ OPC_CheckType, MVT::i32, ++/*292278*/ OPC_MoveParent, ++/*292279*/ OPC_MoveChild, 29, ++/*292281*/ OPC_CheckInteger, 1, ++/*292283*/ OPC_CheckType, MVT::i32, ++/*292285*/ OPC_MoveParent, ++/*292286*/ OPC_MoveChild, 30, ++/*292288*/ OPC_CheckInteger, 1, ++/*292290*/ OPC_CheckType, MVT::i32, ++/*292292*/ OPC_MoveParent, ++/*292293*/ OPC_MoveChild, 31, ++/*292295*/ OPC_CheckInteger, 1, ++/*292297*/ OPC_CheckType, MVT::i32, ++/*292299*/ OPC_MoveParent, ++/*292300*/ OPC_CheckType, MVT::v32i8, ++/*292302*/ OPC_MoveParent, ++/*292303*/ OPC_CheckType, MVT::v32i8, ++/*292305*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*292307*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b), LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*292315*/ /*Scope*/ 59|128,3/*443*/, /*->292760*/ ++/*292317*/ OPC_CheckChild0Same, 0, ++/*292319*/ OPC_MoveChild1, ++/*292320*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*292323*/ OPC_CheckChild0Integer, 1, ++/*292325*/ OPC_CheckChild0Type, MVT::i32, ++/*292327*/ OPC_CheckChild1Integer, 1, ++/*292329*/ OPC_CheckChild1Type, MVT::i32, ++/*292331*/ OPC_CheckChild2Integer, 1, ++/*292333*/ OPC_CheckChild2Type, MVT::i32, ++/*292335*/ OPC_CheckChild3Integer, 1, ++/*292337*/ OPC_CheckChild3Type, MVT::i32, ++/*292339*/ OPC_CheckChild4Integer, 1, ++/*292341*/ OPC_CheckChild4Type, MVT::i32, ++/*292343*/ OPC_MoveChild5, ++/*292344*/ OPC_CheckInteger, 1, ++/*292346*/ OPC_CheckType, MVT::i32, ++/*292348*/ OPC_MoveParent, ++/*292349*/ OPC_MoveChild6, ++/*292350*/ OPC_CheckInteger, 1, ++/*292352*/ OPC_CheckType, MVT::i32, ++/*292354*/ OPC_MoveParent, ++/*292355*/ OPC_MoveChild7, ++/*292356*/ OPC_CheckInteger, 1, ++/*292358*/ OPC_CheckType, MVT::i32, ++/*292360*/ OPC_MoveParent, ++/*292361*/ OPC_MoveChild, 8, ++/*292363*/ OPC_CheckInteger, 1, ++/*292365*/ OPC_CheckType, MVT::i32, ++/*292367*/ OPC_MoveParent, ++/*292368*/ OPC_MoveChild, 9, ++/*292370*/ OPC_CheckInteger, 1, ++/*292372*/ OPC_CheckType, MVT::i32, ++/*292374*/ OPC_MoveParent, ++/*292375*/ OPC_MoveChild, 10, ++/*292377*/ OPC_CheckInteger, 1, ++/*292379*/ OPC_CheckType, MVT::i32, ++/*292381*/ OPC_MoveParent, ++/*292382*/ OPC_MoveChild, 11, ++/*292384*/ OPC_CheckInteger, 1, ++/*292386*/ OPC_CheckType, MVT::i32, ++/*292388*/ OPC_MoveParent, ++/*292389*/ OPC_MoveChild, 12, ++/*292391*/ OPC_CheckInteger, 1, ++/*292393*/ OPC_CheckType, MVT::i32, ++/*292395*/ OPC_MoveParent, ++/*292396*/ OPC_MoveChild, 13, ++/*292398*/ OPC_CheckInteger, 1, ++/*292400*/ OPC_CheckType, MVT::i32, ++/*292402*/ OPC_MoveParent, ++/*292403*/ OPC_MoveChild, 14, ++/*292405*/ OPC_CheckInteger, 1, ++/*292407*/ OPC_CheckType, MVT::i32, ++/*292409*/ OPC_MoveParent, ++/*292410*/ OPC_MoveChild, 15, ++/*292412*/ OPC_CheckInteger, 1, ++/*292414*/ OPC_CheckType, MVT::i32, ++/*292416*/ OPC_MoveParent, ++/*292417*/ OPC_MoveChild, 16, ++/*292419*/ OPC_CheckInteger, 1, ++/*292421*/ OPC_CheckType, MVT::i32, ++/*292423*/ OPC_MoveParent, ++/*292424*/ OPC_MoveChild, 17, ++/*292426*/ OPC_CheckInteger, 1, ++/*292428*/ OPC_CheckType, MVT::i32, ++/*292430*/ OPC_MoveParent, ++/*292431*/ OPC_MoveChild, 18, ++/*292433*/ OPC_CheckInteger, 1, ++/*292435*/ OPC_CheckType, MVT::i32, ++/*292437*/ OPC_MoveParent, ++/*292438*/ OPC_MoveChild, 19, ++/*292440*/ OPC_CheckInteger, 1, ++/*292442*/ OPC_CheckType, MVT::i32, ++/*292444*/ OPC_MoveParent, ++/*292445*/ OPC_MoveChild, 20, ++/*292447*/ OPC_CheckInteger, 1, ++/*292449*/ OPC_CheckType, MVT::i32, ++/*292451*/ OPC_MoveParent, ++/*292452*/ OPC_MoveChild, 21, ++/*292454*/ OPC_CheckInteger, 1, ++/*292456*/ OPC_CheckType, MVT::i32, ++/*292458*/ OPC_MoveParent, ++/*292459*/ OPC_MoveChild, 22, ++/*292461*/ OPC_CheckInteger, 1, ++/*292463*/ OPC_CheckType, MVT::i32, ++/*292465*/ OPC_MoveParent, ++/*292466*/ OPC_MoveChild, 23, ++/*292468*/ OPC_CheckInteger, 1, ++/*292470*/ OPC_CheckType, MVT::i32, ++/*292472*/ OPC_MoveParent, ++/*292473*/ OPC_MoveChild, 24, ++/*292475*/ OPC_CheckInteger, 1, ++/*292477*/ OPC_CheckType, MVT::i32, ++/*292479*/ OPC_MoveParent, ++/*292480*/ OPC_MoveChild, 25, ++/*292482*/ OPC_CheckInteger, 1, ++/*292484*/ OPC_CheckType, MVT::i32, ++/*292486*/ OPC_MoveParent, ++/*292487*/ OPC_MoveChild, 26, ++/*292489*/ OPC_CheckInteger, 1, ++/*292491*/ OPC_CheckType, MVT::i32, ++/*292493*/ OPC_MoveParent, ++/*292494*/ OPC_MoveChild, 27, ++/*292496*/ OPC_CheckInteger, 1, ++/*292498*/ OPC_CheckType, MVT::i32, ++/*292500*/ OPC_MoveParent, ++/*292501*/ OPC_MoveChild, 28, ++/*292503*/ OPC_CheckInteger, 1, ++/*292505*/ OPC_CheckType, MVT::i32, ++/*292507*/ OPC_MoveParent, ++/*292508*/ OPC_MoveChild, 29, ++/*292510*/ OPC_CheckInteger, 1, ++/*292512*/ OPC_CheckType, MVT::i32, ++/*292514*/ OPC_MoveParent, ++/*292515*/ OPC_MoveChild, 30, ++/*292517*/ OPC_CheckInteger, 1, ++/*292519*/ OPC_CheckType, MVT::i32, ++/*292521*/ OPC_MoveParent, ++/*292522*/ OPC_MoveChild, 31, ++/*292524*/ OPC_CheckInteger, 1, ++/*292526*/ OPC_CheckType, MVT::i32, ++/*292528*/ OPC_MoveParent, ++/*292529*/ OPC_MoveParent, ++/*292530*/ OPC_MoveParent, ++/*292531*/ OPC_CheckChild1Same, 1, ++/*292533*/ OPC_MoveParent, ++/*292534*/ OPC_MoveParent, ++/*292535*/ OPC_MoveChild1, ++/*292536*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*292539*/ OPC_CheckChild0Integer, 1, ++/*292541*/ OPC_CheckChild0Type, MVT::i32, ++/*292543*/ OPC_CheckChild1Integer, 1, ++/*292545*/ OPC_CheckChild1Type, MVT::i32, ++/*292547*/ OPC_CheckChild2Integer, 1, ++/*292549*/ OPC_CheckChild2Type, MVT::i32, ++/*292551*/ OPC_CheckChild3Integer, 1, ++/*292553*/ OPC_CheckChild3Type, MVT::i32, ++/*292555*/ OPC_CheckChild4Integer, 1, ++/*292557*/ OPC_CheckChild4Type, MVT::i32, ++/*292559*/ OPC_MoveChild5, ++/*292560*/ OPC_CheckInteger, 1, ++/*292562*/ OPC_CheckType, MVT::i32, ++/*292564*/ OPC_MoveParent, ++/*292565*/ OPC_MoveChild6, ++/*292566*/ OPC_CheckInteger, 1, ++/*292568*/ OPC_CheckType, MVT::i32, ++/*292570*/ OPC_MoveParent, ++/*292571*/ OPC_MoveChild7, ++/*292572*/ OPC_CheckInteger, 1, ++/*292574*/ OPC_CheckType, MVT::i32, ++/*292576*/ OPC_MoveParent, ++/*292577*/ OPC_MoveChild, 8, ++/*292579*/ OPC_CheckInteger, 1, ++/*292581*/ OPC_CheckType, MVT::i32, ++/*292583*/ OPC_MoveParent, ++/*292584*/ OPC_MoveChild, 9, ++/*292586*/ OPC_CheckInteger, 1, ++/*292588*/ OPC_CheckType, MVT::i32, ++/*292590*/ OPC_MoveParent, ++/*292591*/ OPC_MoveChild, 10, ++/*292593*/ OPC_CheckInteger, 1, ++/*292595*/ OPC_CheckType, MVT::i32, ++/*292597*/ OPC_MoveParent, ++/*292598*/ OPC_MoveChild, 11, ++/*292600*/ OPC_CheckInteger, 1, ++/*292602*/ OPC_CheckType, MVT::i32, ++/*292604*/ OPC_MoveParent, ++/*292605*/ OPC_MoveChild, 12, ++/*292607*/ OPC_CheckInteger, 1, ++/*292609*/ OPC_CheckType, MVT::i32, ++/*292611*/ OPC_MoveParent, ++/*292612*/ OPC_MoveChild, 13, ++/*292614*/ OPC_CheckInteger, 1, ++/*292616*/ OPC_CheckType, MVT::i32, ++/*292618*/ OPC_MoveParent, ++/*292619*/ OPC_MoveChild, 14, ++/*292621*/ OPC_CheckInteger, 1, ++/*292623*/ OPC_CheckType, MVT::i32, ++/*292625*/ OPC_MoveParent, ++/*292626*/ OPC_MoveChild, 15, ++/*292628*/ OPC_CheckInteger, 1, ++/*292630*/ OPC_CheckType, MVT::i32, ++/*292632*/ OPC_MoveParent, ++/*292633*/ OPC_MoveChild, 16, ++/*292635*/ OPC_CheckInteger, 1, ++/*292637*/ OPC_CheckType, MVT::i32, ++/*292639*/ OPC_MoveParent, ++/*292640*/ OPC_MoveChild, 17, ++/*292642*/ OPC_CheckInteger, 1, ++/*292644*/ OPC_CheckType, MVT::i32, ++/*292646*/ OPC_MoveParent, ++/*292647*/ OPC_MoveChild, 18, ++/*292649*/ OPC_CheckInteger, 1, ++/*292651*/ OPC_CheckType, MVT::i32, ++/*292653*/ OPC_MoveParent, ++/*292654*/ OPC_MoveChild, 19, ++/*292656*/ OPC_CheckInteger, 1, ++/*292658*/ OPC_CheckType, MVT::i32, ++/*292660*/ OPC_MoveParent, ++/*292661*/ OPC_MoveChild, 20, ++/*292663*/ OPC_CheckInteger, 1, ++/*292665*/ OPC_CheckType, MVT::i32, ++/*292667*/ OPC_MoveParent, ++/*292668*/ OPC_MoveChild, 21, ++/*292670*/ OPC_CheckInteger, 1, ++/*292672*/ OPC_CheckType, MVT::i32, ++/*292674*/ OPC_MoveParent, ++/*292675*/ OPC_MoveChild, 22, ++/*292677*/ OPC_CheckInteger, 1, ++/*292679*/ OPC_CheckType, MVT::i32, ++/*292681*/ OPC_MoveParent, ++/*292682*/ OPC_MoveChild, 23, ++/*292684*/ OPC_CheckInteger, 1, ++/*292686*/ OPC_CheckType, MVT::i32, ++/*292688*/ OPC_MoveParent, ++/*292689*/ OPC_MoveChild, 24, ++/*292691*/ OPC_CheckInteger, 1, ++/*292693*/ OPC_CheckType, MVT::i32, ++/*292695*/ OPC_MoveParent, ++/*292696*/ OPC_MoveChild, 25, ++/*292698*/ OPC_CheckInteger, 1, ++/*292700*/ OPC_CheckType, MVT::i32, ++/*292702*/ OPC_MoveParent, ++/*292703*/ OPC_MoveChild, 26, ++/*292705*/ OPC_CheckInteger, 1, ++/*292707*/ OPC_CheckType, MVT::i32, ++/*292709*/ OPC_MoveParent, ++/*292710*/ OPC_MoveChild, 27, ++/*292712*/ OPC_CheckInteger, 1, ++/*292714*/ OPC_CheckType, MVT::i32, ++/*292716*/ OPC_MoveParent, ++/*292717*/ OPC_MoveChild, 28, ++/*292719*/ OPC_CheckInteger, 1, ++/*292721*/ OPC_CheckType, MVT::i32, ++/*292723*/ OPC_MoveParent, ++/*292724*/ OPC_MoveChild, 29, ++/*292726*/ OPC_CheckInteger, 1, ++/*292728*/ OPC_CheckType, MVT::i32, ++/*292730*/ OPC_MoveParent, ++/*292731*/ OPC_MoveChild, 30, ++/*292733*/ OPC_CheckInteger, 1, ++/*292735*/ OPC_CheckType, MVT::i32, ++/*292737*/ OPC_MoveParent, ++/*292738*/ OPC_MoveChild, 31, ++/*292740*/ OPC_CheckInteger, 1, ++/*292742*/ OPC_CheckType, MVT::i32, ++/*292744*/ OPC_MoveParent, ++/*292745*/ OPC_CheckType, MVT::v32i8, ++/*292747*/ OPC_MoveParent, ++/*292748*/ OPC_CheckType, MVT::v32i8, ++/*292750*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*292752*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*292760*/ /*Scope*/ 59|128,3/*443*/, /*->293205*/ ++/*292762*/ OPC_CheckChild0Same, 1, ++/*292764*/ OPC_CheckChild1Same, 0, ++/*292766*/ OPC_MoveParent, ++/*292767*/ OPC_MoveChild1, ++/*292768*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*292771*/ OPC_CheckChild0Integer, 1, ++/*292773*/ OPC_CheckChild0Type, MVT::i32, ++/*292775*/ OPC_CheckChild1Integer, 1, ++/*292777*/ OPC_CheckChild1Type, MVT::i32, ++/*292779*/ OPC_CheckChild2Integer, 1, ++/*292781*/ OPC_CheckChild2Type, MVT::i32, ++/*292783*/ OPC_CheckChild3Integer, 1, ++/*292785*/ OPC_CheckChild3Type, MVT::i32, ++/*292787*/ OPC_CheckChild4Integer, 1, ++/*292789*/ OPC_CheckChild4Type, MVT::i32, ++/*292791*/ OPC_MoveChild5, ++/*292792*/ OPC_CheckInteger, 1, ++/*292794*/ OPC_CheckType, MVT::i32, ++/*292796*/ OPC_MoveParent, ++/*292797*/ OPC_MoveChild6, ++/*292798*/ OPC_CheckInteger, 1, ++/*292800*/ OPC_CheckType, MVT::i32, ++/*292802*/ OPC_MoveParent, ++/*292803*/ OPC_MoveChild7, ++/*292804*/ OPC_CheckInteger, 1, ++/*292806*/ OPC_CheckType, MVT::i32, ++/*292808*/ OPC_MoveParent, ++/*292809*/ OPC_MoveChild, 8, ++/*292811*/ OPC_CheckInteger, 1, ++/*292813*/ OPC_CheckType, MVT::i32, ++/*292815*/ OPC_MoveParent, ++/*292816*/ OPC_MoveChild, 9, ++/*292818*/ OPC_CheckInteger, 1, ++/*292820*/ OPC_CheckType, MVT::i32, ++/*292822*/ OPC_MoveParent, ++/*292823*/ OPC_MoveChild, 10, ++/*292825*/ OPC_CheckInteger, 1, ++/*292827*/ OPC_CheckType, MVT::i32, ++/*292829*/ OPC_MoveParent, ++/*292830*/ OPC_MoveChild, 11, ++/*292832*/ OPC_CheckInteger, 1, ++/*292834*/ OPC_CheckType, MVT::i32, ++/*292836*/ OPC_MoveParent, ++/*292837*/ OPC_MoveChild, 12, ++/*292839*/ OPC_CheckInteger, 1, ++/*292841*/ OPC_CheckType, MVT::i32, ++/*292843*/ OPC_MoveParent, ++/*292844*/ OPC_MoveChild, 13, ++/*292846*/ OPC_CheckInteger, 1, ++/*292848*/ OPC_CheckType, MVT::i32, ++/*292850*/ OPC_MoveParent, ++/*292851*/ OPC_MoveChild, 14, ++/*292853*/ OPC_CheckInteger, 1, ++/*292855*/ OPC_CheckType, MVT::i32, ++/*292857*/ OPC_MoveParent, ++/*292858*/ OPC_MoveChild, 15, ++/*292860*/ OPC_CheckInteger, 1, ++/*292862*/ OPC_CheckType, MVT::i32, ++/*292864*/ OPC_MoveParent, ++/*292865*/ OPC_MoveChild, 16, ++/*292867*/ OPC_CheckInteger, 1, ++/*292869*/ OPC_CheckType, MVT::i32, ++/*292871*/ OPC_MoveParent, ++/*292872*/ OPC_MoveChild, 17, ++/*292874*/ OPC_CheckInteger, 1, ++/*292876*/ OPC_CheckType, MVT::i32, ++/*292878*/ OPC_MoveParent, ++/*292879*/ OPC_MoveChild, 18, ++/*292881*/ OPC_CheckInteger, 1, ++/*292883*/ OPC_CheckType, MVT::i32, ++/*292885*/ OPC_MoveParent, ++/*292886*/ OPC_MoveChild, 19, ++/*292888*/ OPC_CheckInteger, 1, ++/*292890*/ OPC_CheckType, MVT::i32, ++/*292892*/ OPC_MoveParent, ++/*292893*/ OPC_MoveChild, 20, ++/*292895*/ OPC_CheckInteger, 1, ++/*292897*/ OPC_CheckType, MVT::i32, ++/*292899*/ OPC_MoveParent, ++/*292900*/ OPC_MoveChild, 21, ++/*292902*/ OPC_CheckInteger, 1, ++/*292904*/ OPC_CheckType, MVT::i32, ++/*292906*/ OPC_MoveParent, ++/*292907*/ OPC_MoveChild, 22, ++/*292909*/ OPC_CheckInteger, 1, ++/*292911*/ OPC_CheckType, MVT::i32, ++/*292913*/ OPC_MoveParent, ++/*292914*/ OPC_MoveChild, 23, ++/*292916*/ OPC_CheckInteger, 1, ++/*292918*/ OPC_CheckType, MVT::i32, ++/*292920*/ OPC_MoveParent, ++/*292921*/ OPC_MoveChild, 24, ++/*292923*/ OPC_CheckInteger, 1, ++/*292925*/ OPC_CheckType, MVT::i32, ++/*292927*/ OPC_MoveParent, ++/*292928*/ OPC_MoveChild, 25, ++/*292930*/ OPC_CheckInteger, 1, ++/*292932*/ OPC_CheckType, MVT::i32, ++/*292934*/ OPC_MoveParent, ++/*292935*/ OPC_MoveChild, 26, ++/*292937*/ OPC_CheckInteger, 1, ++/*292939*/ OPC_CheckType, MVT::i32, ++/*292941*/ OPC_MoveParent, ++/*292942*/ OPC_MoveChild, 27, ++/*292944*/ OPC_CheckInteger, 1, ++/*292946*/ OPC_CheckType, MVT::i32, ++/*292948*/ OPC_MoveParent, ++/*292949*/ OPC_MoveChild, 28, ++/*292951*/ OPC_CheckInteger, 1, ++/*292953*/ OPC_CheckType, MVT::i32, ++/*292955*/ OPC_MoveParent, ++/*292956*/ OPC_MoveChild, 29, ++/*292958*/ OPC_CheckInteger, 1, ++/*292960*/ OPC_CheckType, MVT::i32, ++/*292962*/ OPC_MoveParent, ++/*292963*/ OPC_MoveChild, 30, ++/*292965*/ OPC_CheckInteger, 1, ++/*292967*/ OPC_CheckType, MVT::i32, ++/*292969*/ OPC_MoveParent, ++/*292970*/ OPC_MoveChild, 31, ++/*292972*/ OPC_CheckInteger, 1, ++/*292974*/ OPC_CheckType, MVT::i32, ++/*292976*/ OPC_MoveParent, ++/*292977*/ OPC_MoveParent, ++/*292978*/ OPC_MoveParent, ++/*292979*/ OPC_MoveParent, ++/*292980*/ OPC_MoveChild1, ++/*292981*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*292984*/ OPC_CheckChild0Integer, 1, ++/*292986*/ OPC_CheckChild0Type, MVT::i32, ++/*292988*/ OPC_CheckChild1Integer, 1, ++/*292990*/ OPC_CheckChild1Type, MVT::i32, ++/*292992*/ OPC_CheckChild2Integer, 1, ++/*292994*/ OPC_CheckChild2Type, MVT::i32, ++/*292996*/ OPC_CheckChild3Integer, 1, ++/*292998*/ OPC_CheckChild3Type, MVT::i32, ++/*293000*/ OPC_CheckChild4Integer, 1, ++/*293002*/ OPC_CheckChild4Type, MVT::i32, ++/*293004*/ OPC_MoveChild5, ++/*293005*/ OPC_CheckInteger, 1, ++/*293007*/ OPC_CheckType, MVT::i32, ++/*293009*/ OPC_MoveParent, ++/*293010*/ OPC_MoveChild6, ++/*293011*/ OPC_CheckInteger, 1, ++/*293013*/ OPC_CheckType, MVT::i32, ++/*293015*/ OPC_MoveParent, ++/*293016*/ OPC_MoveChild7, ++/*293017*/ OPC_CheckInteger, 1, ++/*293019*/ OPC_CheckType, MVT::i32, ++/*293021*/ OPC_MoveParent, ++/*293022*/ OPC_MoveChild, 8, ++/*293024*/ OPC_CheckInteger, 1, ++/*293026*/ OPC_CheckType, MVT::i32, ++/*293028*/ OPC_MoveParent, ++/*293029*/ OPC_MoveChild, 9, ++/*293031*/ OPC_CheckInteger, 1, ++/*293033*/ OPC_CheckType, MVT::i32, ++/*293035*/ OPC_MoveParent, ++/*293036*/ OPC_MoveChild, 10, ++/*293038*/ OPC_CheckInteger, 1, ++/*293040*/ OPC_CheckType, MVT::i32, ++/*293042*/ OPC_MoveParent, ++/*293043*/ OPC_MoveChild, 11, ++/*293045*/ OPC_CheckInteger, 1, ++/*293047*/ OPC_CheckType, MVT::i32, ++/*293049*/ OPC_MoveParent, ++/*293050*/ OPC_MoveChild, 12, ++/*293052*/ OPC_CheckInteger, 1, ++/*293054*/ OPC_CheckType, MVT::i32, ++/*293056*/ OPC_MoveParent, ++/*293057*/ OPC_MoveChild, 13, ++/*293059*/ OPC_CheckInteger, 1, ++/*293061*/ OPC_CheckType, MVT::i32, ++/*293063*/ OPC_MoveParent, ++/*293064*/ OPC_MoveChild, 14, ++/*293066*/ OPC_CheckInteger, 1, ++/*293068*/ OPC_CheckType, MVT::i32, ++/*293070*/ OPC_MoveParent, ++/*293071*/ OPC_MoveChild, 15, ++/*293073*/ OPC_CheckInteger, 1, ++/*293075*/ OPC_CheckType, MVT::i32, ++/*293077*/ OPC_MoveParent, ++/*293078*/ OPC_MoveChild, 16, ++/*293080*/ OPC_CheckInteger, 1, ++/*293082*/ OPC_CheckType, MVT::i32, ++/*293084*/ OPC_MoveParent, ++/*293085*/ OPC_MoveChild, 17, ++/*293087*/ OPC_CheckInteger, 1, ++/*293089*/ OPC_CheckType, MVT::i32, ++/*293091*/ OPC_MoveParent, ++/*293092*/ OPC_MoveChild, 18, ++/*293094*/ OPC_CheckInteger, 1, ++/*293096*/ OPC_CheckType, MVT::i32, ++/*293098*/ OPC_MoveParent, ++/*293099*/ OPC_MoveChild, 19, ++/*293101*/ OPC_CheckInteger, 1, ++/*293103*/ OPC_CheckType, MVT::i32, ++/*293105*/ OPC_MoveParent, ++/*293106*/ OPC_MoveChild, 20, ++/*293108*/ OPC_CheckInteger, 1, ++/*293110*/ OPC_CheckType, MVT::i32, ++/*293112*/ OPC_MoveParent, ++/*293113*/ OPC_MoveChild, 21, ++/*293115*/ OPC_CheckInteger, 1, ++/*293117*/ OPC_CheckType, MVT::i32, ++/*293119*/ OPC_MoveParent, ++/*293120*/ OPC_MoveChild, 22, ++/*293122*/ OPC_CheckInteger, 1, ++/*293124*/ OPC_CheckType, MVT::i32, ++/*293126*/ OPC_MoveParent, ++/*293127*/ OPC_MoveChild, 23, ++/*293129*/ OPC_CheckInteger, 1, ++/*293131*/ OPC_CheckType, MVT::i32, ++/*293133*/ OPC_MoveParent, ++/*293134*/ OPC_MoveChild, 24, ++/*293136*/ OPC_CheckInteger, 1, ++/*293138*/ OPC_CheckType, MVT::i32, ++/*293140*/ OPC_MoveParent, ++/*293141*/ OPC_MoveChild, 25, ++/*293143*/ OPC_CheckInteger, 1, ++/*293145*/ OPC_CheckType, MVT::i32, ++/*293147*/ OPC_MoveParent, ++/*293148*/ OPC_MoveChild, 26, ++/*293150*/ OPC_CheckInteger, 1, ++/*293152*/ OPC_CheckType, MVT::i32, ++/*293154*/ OPC_MoveParent, ++/*293155*/ OPC_MoveChild, 27, ++/*293157*/ OPC_CheckInteger, 1, ++/*293159*/ OPC_CheckType, MVT::i32, ++/*293161*/ OPC_MoveParent, ++/*293162*/ OPC_MoveChild, 28, ++/*293164*/ OPC_CheckInteger, 1, ++/*293166*/ OPC_CheckType, MVT::i32, ++/*293168*/ OPC_MoveParent, ++/*293169*/ OPC_MoveChild, 29, ++/*293171*/ OPC_CheckInteger, 1, ++/*293173*/ OPC_CheckType, MVT::i32, ++/*293175*/ OPC_MoveParent, ++/*293176*/ OPC_MoveChild, 30, ++/*293178*/ OPC_CheckInteger, 1, ++/*293180*/ OPC_CheckType, MVT::i32, ++/*293182*/ OPC_MoveParent, ++/*293183*/ OPC_MoveChild, 31, ++/*293185*/ OPC_CheckInteger, 1, ++/*293187*/ OPC_CheckType, MVT::i32, ++/*293189*/ OPC_MoveParent, ++/*293190*/ OPC_CheckType, MVT::v32i8, ++/*293192*/ OPC_MoveParent, ++/*293193*/ OPC_CheckType, MVT::v32i8, ++/*293195*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*293197*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*293205*/ /*Scope*/ 59|128,3/*443*/, /*->293650*/ ++/*293207*/ OPC_CheckChild0Same, 0, ++/*293209*/ OPC_CheckChild1Same, 1, ++/*293211*/ OPC_MoveParent, ++/*293212*/ OPC_MoveChild1, ++/*293213*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*293216*/ OPC_CheckChild0Integer, 1, ++/*293218*/ OPC_CheckChild0Type, MVT::i32, ++/*293220*/ OPC_CheckChild1Integer, 1, ++/*293222*/ OPC_CheckChild1Type, MVT::i32, ++/*293224*/ OPC_CheckChild2Integer, 1, ++/*293226*/ OPC_CheckChild2Type, MVT::i32, ++/*293228*/ OPC_CheckChild3Integer, 1, ++/*293230*/ OPC_CheckChild3Type, MVT::i32, ++/*293232*/ OPC_CheckChild4Integer, 1, ++/*293234*/ OPC_CheckChild4Type, MVT::i32, ++/*293236*/ OPC_MoveChild5, ++/*293237*/ OPC_CheckInteger, 1, ++/*293239*/ OPC_CheckType, MVT::i32, ++/*293241*/ OPC_MoveParent, ++/*293242*/ OPC_MoveChild6, ++/*293243*/ OPC_CheckInteger, 1, ++/*293245*/ OPC_CheckType, MVT::i32, ++/*293247*/ OPC_MoveParent, ++/*293248*/ OPC_MoveChild7, ++/*293249*/ OPC_CheckInteger, 1, ++/*293251*/ OPC_CheckType, MVT::i32, ++/*293253*/ OPC_MoveParent, ++/*293254*/ OPC_MoveChild, 8, ++/*293256*/ OPC_CheckInteger, 1, ++/*293258*/ OPC_CheckType, MVT::i32, ++/*293260*/ OPC_MoveParent, ++/*293261*/ OPC_MoveChild, 9, ++/*293263*/ OPC_CheckInteger, 1, ++/*293265*/ OPC_CheckType, MVT::i32, ++/*293267*/ OPC_MoveParent, ++/*293268*/ OPC_MoveChild, 10, ++/*293270*/ OPC_CheckInteger, 1, ++/*293272*/ OPC_CheckType, MVT::i32, ++/*293274*/ OPC_MoveParent, ++/*293275*/ OPC_MoveChild, 11, ++/*293277*/ OPC_CheckInteger, 1, ++/*293279*/ OPC_CheckType, MVT::i32, ++/*293281*/ OPC_MoveParent, ++/*293282*/ OPC_MoveChild, 12, ++/*293284*/ OPC_CheckInteger, 1, ++/*293286*/ OPC_CheckType, MVT::i32, ++/*293288*/ OPC_MoveParent, ++/*293289*/ OPC_MoveChild, 13, ++/*293291*/ OPC_CheckInteger, 1, ++/*293293*/ OPC_CheckType, MVT::i32, ++/*293295*/ OPC_MoveParent, ++/*293296*/ OPC_MoveChild, 14, ++/*293298*/ OPC_CheckInteger, 1, ++/*293300*/ OPC_CheckType, MVT::i32, ++/*293302*/ OPC_MoveParent, ++/*293303*/ OPC_MoveChild, 15, ++/*293305*/ OPC_CheckInteger, 1, ++/*293307*/ OPC_CheckType, MVT::i32, ++/*293309*/ OPC_MoveParent, ++/*293310*/ OPC_MoveChild, 16, ++/*293312*/ OPC_CheckInteger, 1, ++/*293314*/ OPC_CheckType, MVT::i32, ++/*293316*/ OPC_MoveParent, ++/*293317*/ OPC_MoveChild, 17, ++/*293319*/ OPC_CheckInteger, 1, ++/*293321*/ OPC_CheckType, MVT::i32, ++/*293323*/ OPC_MoveParent, ++/*293324*/ OPC_MoveChild, 18, ++/*293326*/ OPC_CheckInteger, 1, ++/*293328*/ OPC_CheckType, MVT::i32, ++/*293330*/ OPC_MoveParent, ++/*293331*/ OPC_MoveChild, 19, ++/*293333*/ OPC_CheckInteger, 1, ++/*293335*/ OPC_CheckType, MVT::i32, ++/*293337*/ OPC_MoveParent, ++/*293338*/ OPC_MoveChild, 20, ++/*293340*/ OPC_CheckInteger, 1, ++/*293342*/ OPC_CheckType, MVT::i32, ++/*293344*/ OPC_MoveParent, ++/*293345*/ OPC_MoveChild, 21, ++/*293347*/ OPC_CheckInteger, 1, ++/*293349*/ OPC_CheckType, MVT::i32, ++/*293351*/ OPC_MoveParent, ++/*293352*/ OPC_MoveChild, 22, ++/*293354*/ OPC_CheckInteger, 1, ++/*293356*/ OPC_CheckType, MVT::i32, ++/*293358*/ OPC_MoveParent, ++/*293359*/ OPC_MoveChild, 23, ++/*293361*/ OPC_CheckInteger, 1, ++/*293363*/ OPC_CheckType, MVT::i32, ++/*293365*/ OPC_MoveParent, ++/*293366*/ OPC_MoveChild, 24, ++/*293368*/ OPC_CheckInteger, 1, ++/*293370*/ OPC_CheckType, MVT::i32, ++/*293372*/ OPC_MoveParent, ++/*293373*/ OPC_MoveChild, 25, ++/*293375*/ OPC_CheckInteger, 1, ++/*293377*/ OPC_CheckType, MVT::i32, ++/*293379*/ OPC_MoveParent, ++/*293380*/ OPC_MoveChild, 26, ++/*293382*/ OPC_CheckInteger, 1, ++/*293384*/ OPC_CheckType, MVT::i32, ++/*293386*/ OPC_MoveParent, ++/*293387*/ OPC_MoveChild, 27, ++/*293389*/ OPC_CheckInteger, 1, ++/*293391*/ OPC_CheckType, MVT::i32, ++/*293393*/ OPC_MoveParent, ++/*293394*/ OPC_MoveChild, 28, ++/*293396*/ OPC_CheckInteger, 1, ++/*293398*/ OPC_CheckType, MVT::i32, ++/*293400*/ OPC_MoveParent, ++/*293401*/ OPC_MoveChild, 29, ++/*293403*/ OPC_CheckInteger, 1, ++/*293405*/ OPC_CheckType, MVT::i32, ++/*293407*/ OPC_MoveParent, ++/*293408*/ OPC_MoveChild, 30, ++/*293410*/ OPC_CheckInteger, 1, ++/*293412*/ OPC_CheckType, MVT::i32, ++/*293414*/ OPC_MoveParent, ++/*293415*/ OPC_MoveChild, 31, ++/*293417*/ OPC_CheckInteger, 1, ++/*293419*/ OPC_CheckType, MVT::i32, ++/*293421*/ OPC_MoveParent, ++/*293422*/ OPC_MoveParent, ++/*293423*/ OPC_MoveParent, ++/*293424*/ OPC_MoveParent, ++/*293425*/ OPC_MoveChild1, ++/*293426*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*293429*/ OPC_CheckChild0Integer, 1, ++/*293431*/ OPC_CheckChild0Type, MVT::i32, ++/*293433*/ OPC_CheckChild1Integer, 1, ++/*293435*/ OPC_CheckChild1Type, MVT::i32, ++/*293437*/ OPC_CheckChild2Integer, 1, ++/*293439*/ OPC_CheckChild2Type, MVT::i32, ++/*293441*/ OPC_CheckChild3Integer, 1, ++/*293443*/ OPC_CheckChild3Type, MVT::i32, ++/*293445*/ OPC_CheckChild4Integer, 1, ++/*293447*/ OPC_CheckChild4Type, MVT::i32, ++/*293449*/ OPC_MoveChild5, ++/*293450*/ OPC_CheckInteger, 1, ++/*293452*/ OPC_CheckType, MVT::i32, ++/*293454*/ OPC_MoveParent, ++/*293455*/ OPC_MoveChild6, ++/*293456*/ OPC_CheckInteger, 1, ++/*293458*/ OPC_CheckType, MVT::i32, ++/*293460*/ OPC_MoveParent, ++/*293461*/ OPC_MoveChild7, ++/*293462*/ OPC_CheckInteger, 1, ++/*293464*/ OPC_CheckType, MVT::i32, ++/*293466*/ OPC_MoveParent, ++/*293467*/ OPC_MoveChild, 8, ++/*293469*/ OPC_CheckInteger, 1, ++/*293471*/ OPC_CheckType, MVT::i32, ++/*293473*/ OPC_MoveParent, ++/*293474*/ OPC_MoveChild, 9, ++/*293476*/ OPC_CheckInteger, 1, ++/*293478*/ OPC_CheckType, MVT::i32, ++/*293480*/ OPC_MoveParent, ++/*293481*/ OPC_MoveChild, 10, ++/*293483*/ OPC_CheckInteger, 1, ++/*293485*/ OPC_CheckType, MVT::i32, ++/*293487*/ OPC_MoveParent, ++/*293488*/ OPC_MoveChild, 11, ++/*293490*/ OPC_CheckInteger, 1, ++/*293492*/ OPC_CheckType, MVT::i32, ++/*293494*/ OPC_MoveParent, ++/*293495*/ OPC_MoveChild, 12, ++/*293497*/ OPC_CheckInteger, 1, ++/*293499*/ OPC_CheckType, MVT::i32, ++/*293501*/ OPC_MoveParent, ++/*293502*/ OPC_MoveChild, 13, ++/*293504*/ OPC_CheckInteger, 1, ++/*293506*/ OPC_CheckType, MVT::i32, ++/*293508*/ OPC_MoveParent, ++/*293509*/ OPC_MoveChild, 14, ++/*293511*/ OPC_CheckInteger, 1, ++/*293513*/ OPC_CheckType, MVT::i32, ++/*293515*/ OPC_MoveParent, ++/*293516*/ OPC_MoveChild, 15, ++/*293518*/ OPC_CheckInteger, 1, ++/*293520*/ OPC_CheckType, MVT::i32, ++/*293522*/ OPC_MoveParent, ++/*293523*/ OPC_MoveChild, 16, ++/*293525*/ OPC_CheckInteger, 1, ++/*293527*/ OPC_CheckType, MVT::i32, ++/*293529*/ OPC_MoveParent, ++/*293530*/ OPC_MoveChild, 17, ++/*293532*/ OPC_CheckInteger, 1, ++/*293534*/ OPC_CheckType, MVT::i32, ++/*293536*/ OPC_MoveParent, ++/*293537*/ OPC_MoveChild, 18, ++/*293539*/ OPC_CheckInteger, 1, ++/*293541*/ OPC_CheckType, MVT::i32, ++/*293543*/ OPC_MoveParent, ++/*293544*/ OPC_MoveChild, 19, ++/*293546*/ OPC_CheckInteger, 1, ++/*293548*/ OPC_CheckType, MVT::i32, ++/*293550*/ OPC_MoveParent, ++/*293551*/ OPC_MoveChild, 20, ++/*293553*/ OPC_CheckInteger, 1, ++/*293555*/ OPC_CheckType, MVT::i32, ++/*293557*/ OPC_MoveParent, ++/*293558*/ OPC_MoveChild, 21, ++/*293560*/ OPC_CheckInteger, 1, ++/*293562*/ OPC_CheckType, MVT::i32, ++/*293564*/ OPC_MoveParent, ++/*293565*/ OPC_MoveChild, 22, ++/*293567*/ OPC_CheckInteger, 1, ++/*293569*/ OPC_CheckType, MVT::i32, ++/*293571*/ OPC_MoveParent, ++/*293572*/ OPC_MoveChild, 23, ++/*293574*/ OPC_CheckInteger, 1, ++/*293576*/ OPC_CheckType, MVT::i32, ++/*293578*/ OPC_MoveParent, ++/*293579*/ OPC_MoveChild, 24, ++/*293581*/ OPC_CheckInteger, 1, ++/*293583*/ OPC_CheckType, MVT::i32, ++/*293585*/ OPC_MoveParent, ++/*293586*/ OPC_MoveChild, 25, ++/*293588*/ OPC_CheckInteger, 1, ++/*293590*/ OPC_CheckType, MVT::i32, ++/*293592*/ OPC_MoveParent, ++/*293593*/ OPC_MoveChild, 26, ++/*293595*/ OPC_CheckInteger, 1, ++/*293597*/ OPC_CheckType, MVT::i32, ++/*293599*/ OPC_MoveParent, ++/*293600*/ OPC_MoveChild, 27, ++/*293602*/ OPC_CheckInteger, 1, ++/*293604*/ OPC_CheckType, MVT::i32, ++/*293606*/ OPC_MoveParent, ++/*293607*/ OPC_MoveChild, 28, ++/*293609*/ OPC_CheckInteger, 1, ++/*293611*/ OPC_CheckType, MVT::i32, ++/*293613*/ OPC_MoveParent, ++/*293614*/ OPC_MoveChild, 29, ++/*293616*/ OPC_CheckInteger, 1, ++/*293618*/ OPC_CheckType, MVT::i32, ++/*293620*/ OPC_MoveParent, ++/*293621*/ OPC_MoveChild, 30, ++/*293623*/ OPC_CheckInteger, 1, ++/*293625*/ OPC_CheckType, MVT::i32, ++/*293627*/ OPC_MoveParent, ++/*293628*/ OPC_MoveChild, 31, ++/*293630*/ OPC_CheckInteger, 1, ++/*293632*/ OPC_CheckType, MVT::i32, ++/*293634*/ OPC_MoveParent, ++/*293635*/ OPC_CheckType, MVT::v32i8, ++/*293637*/ OPC_MoveParent, ++/*293638*/ OPC_CheckType, MVT::v32i8, ++/*293640*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*293642*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*293650*/ 0, /*End of Scope*/ ++/*293651*/ /*Scope*/ 126|128,6/*894*/, /*->294547*/ ++/*293653*/ OPC_CheckChild0Same, 0, ++/*293655*/ OPC_MoveChild1, ++/*293656*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*293659*/ OPC_Scope, 57|128,3/*441*/, /*->294103*/ // 2 children in Scope ++/*293662*/ OPC_MoveChild0, ++/*293663*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*293666*/ OPC_CheckChild0Integer, 1, ++/*293668*/ OPC_CheckChild0Type, MVT::i32, ++/*293670*/ OPC_CheckChild1Integer, 1, ++/*293672*/ OPC_CheckChild1Type, MVT::i32, ++/*293674*/ OPC_CheckChild2Integer, 1, ++/*293676*/ OPC_CheckChild2Type, MVT::i32, ++/*293678*/ OPC_CheckChild3Integer, 1, ++/*293680*/ OPC_CheckChild3Type, MVT::i32, ++/*293682*/ OPC_CheckChild4Integer, 1, ++/*293684*/ OPC_CheckChild4Type, MVT::i32, ++/*293686*/ OPC_MoveChild5, ++/*293687*/ OPC_CheckInteger, 1, ++/*293689*/ OPC_CheckType, MVT::i32, ++/*293691*/ OPC_MoveParent, ++/*293692*/ OPC_MoveChild6, ++/*293693*/ OPC_CheckInteger, 1, ++/*293695*/ OPC_CheckType, MVT::i32, ++/*293697*/ OPC_MoveParent, ++/*293698*/ OPC_MoveChild7, ++/*293699*/ OPC_CheckInteger, 1, ++/*293701*/ OPC_CheckType, MVT::i32, ++/*293703*/ OPC_MoveParent, ++/*293704*/ OPC_MoveChild, 8, ++/*293706*/ OPC_CheckInteger, 1, ++/*293708*/ OPC_CheckType, MVT::i32, ++/*293710*/ OPC_MoveParent, ++/*293711*/ OPC_MoveChild, 9, ++/*293713*/ OPC_CheckInteger, 1, ++/*293715*/ OPC_CheckType, MVT::i32, ++/*293717*/ OPC_MoveParent, ++/*293718*/ OPC_MoveChild, 10, ++/*293720*/ OPC_CheckInteger, 1, ++/*293722*/ OPC_CheckType, MVT::i32, ++/*293724*/ OPC_MoveParent, ++/*293725*/ OPC_MoveChild, 11, ++/*293727*/ OPC_CheckInteger, 1, ++/*293729*/ OPC_CheckType, MVT::i32, ++/*293731*/ OPC_MoveParent, ++/*293732*/ OPC_MoveChild, 12, ++/*293734*/ OPC_CheckInteger, 1, ++/*293736*/ OPC_CheckType, MVT::i32, ++/*293738*/ OPC_MoveParent, ++/*293739*/ OPC_MoveChild, 13, ++/*293741*/ OPC_CheckInteger, 1, ++/*293743*/ OPC_CheckType, MVT::i32, ++/*293745*/ OPC_MoveParent, ++/*293746*/ OPC_MoveChild, 14, ++/*293748*/ OPC_CheckInteger, 1, ++/*293750*/ OPC_CheckType, MVT::i32, ++/*293752*/ OPC_MoveParent, ++/*293753*/ OPC_MoveChild, 15, ++/*293755*/ OPC_CheckInteger, 1, ++/*293757*/ OPC_CheckType, MVT::i32, ++/*293759*/ OPC_MoveParent, ++/*293760*/ OPC_MoveChild, 16, ++/*293762*/ OPC_CheckInteger, 1, ++/*293764*/ OPC_CheckType, MVT::i32, ++/*293766*/ OPC_MoveParent, ++/*293767*/ OPC_MoveChild, 17, ++/*293769*/ OPC_CheckInteger, 1, ++/*293771*/ OPC_CheckType, MVT::i32, ++/*293773*/ OPC_MoveParent, ++/*293774*/ OPC_MoveChild, 18, ++/*293776*/ OPC_CheckInteger, 1, ++/*293778*/ OPC_CheckType, MVT::i32, ++/*293780*/ OPC_MoveParent, ++/*293781*/ OPC_MoveChild, 19, ++/*293783*/ OPC_CheckInteger, 1, ++/*293785*/ OPC_CheckType, MVT::i32, ++/*293787*/ OPC_MoveParent, ++/*293788*/ OPC_MoveChild, 20, ++/*293790*/ OPC_CheckInteger, 1, ++/*293792*/ OPC_CheckType, MVT::i32, ++/*293794*/ OPC_MoveParent, ++/*293795*/ OPC_MoveChild, 21, ++/*293797*/ OPC_CheckInteger, 1, ++/*293799*/ OPC_CheckType, MVT::i32, ++/*293801*/ OPC_MoveParent, ++/*293802*/ OPC_MoveChild, 22, ++/*293804*/ OPC_CheckInteger, 1, ++/*293806*/ OPC_CheckType, MVT::i32, ++/*293808*/ OPC_MoveParent, ++/*293809*/ OPC_MoveChild, 23, ++/*293811*/ OPC_CheckInteger, 1, ++/*293813*/ OPC_CheckType, MVT::i32, ++/*293815*/ OPC_MoveParent, ++/*293816*/ OPC_MoveChild, 24, ++/*293818*/ OPC_CheckInteger, 1, ++/*293820*/ OPC_CheckType, MVT::i32, ++/*293822*/ OPC_MoveParent, ++/*293823*/ OPC_MoveChild, 25, ++/*293825*/ OPC_CheckInteger, 1, ++/*293827*/ OPC_CheckType, MVT::i32, ++/*293829*/ OPC_MoveParent, ++/*293830*/ OPC_MoveChild, 26, ++/*293832*/ OPC_CheckInteger, 1, ++/*293834*/ OPC_CheckType, MVT::i32, ++/*293836*/ OPC_MoveParent, ++/*293837*/ OPC_MoveChild, 27, ++/*293839*/ OPC_CheckInteger, 1, ++/*293841*/ OPC_CheckType, MVT::i32, ++/*293843*/ OPC_MoveParent, ++/*293844*/ OPC_MoveChild, 28, ++/*293846*/ OPC_CheckInteger, 1, ++/*293848*/ OPC_CheckType, MVT::i32, ++/*293850*/ OPC_MoveParent, ++/*293851*/ OPC_MoveChild, 29, ++/*293853*/ OPC_CheckInteger, 1, ++/*293855*/ OPC_CheckType, MVT::i32, ++/*293857*/ OPC_MoveParent, ++/*293858*/ OPC_MoveChild, 30, ++/*293860*/ OPC_CheckInteger, 1, ++/*293862*/ OPC_CheckType, MVT::i32, ++/*293864*/ OPC_MoveParent, ++/*293865*/ OPC_MoveChild, 31, ++/*293867*/ OPC_CheckInteger, 1, ++/*293869*/ OPC_CheckType, MVT::i32, ++/*293871*/ OPC_MoveParent, ++/*293872*/ OPC_MoveParent, ++/*293873*/ OPC_CheckChild1Same, 1, ++/*293875*/ OPC_MoveParent, ++/*293876*/ OPC_MoveParent, ++/*293877*/ OPC_MoveParent, ++/*293878*/ OPC_MoveChild1, ++/*293879*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*293882*/ OPC_CheckChild0Integer, 1, ++/*293884*/ OPC_CheckChild0Type, MVT::i32, ++/*293886*/ OPC_CheckChild1Integer, 1, ++/*293888*/ OPC_CheckChild1Type, MVT::i32, ++/*293890*/ OPC_CheckChild2Integer, 1, ++/*293892*/ OPC_CheckChild2Type, MVT::i32, ++/*293894*/ OPC_CheckChild3Integer, 1, ++/*293896*/ OPC_CheckChild3Type, MVT::i32, ++/*293898*/ OPC_CheckChild4Integer, 1, ++/*293900*/ OPC_CheckChild4Type, MVT::i32, ++/*293902*/ OPC_MoveChild5, ++/*293903*/ OPC_CheckInteger, 1, ++/*293905*/ OPC_CheckType, MVT::i32, ++/*293907*/ OPC_MoveParent, ++/*293908*/ OPC_MoveChild6, ++/*293909*/ OPC_CheckInteger, 1, ++/*293911*/ OPC_CheckType, MVT::i32, ++/*293913*/ OPC_MoveParent, ++/*293914*/ OPC_MoveChild7, ++/*293915*/ OPC_CheckInteger, 1, ++/*293917*/ OPC_CheckType, MVT::i32, ++/*293919*/ OPC_MoveParent, ++/*293920*/ OPC_MoveChild, 8, ++/*293922*/ OPC_CheckInteger, 1, ++/*293924*/ OPC_CheckType, MVT::i32, ++/*293926*/ OPC_MoveParent, ++/*293927*/ OPC_MoveChild, 9, ++/*293929*/ OPC_CheckInteger, 1, ++/*293931*/ OPC_CheckType, MVT::i32, ++/*293933*/ OPC_MoveParent, ++/*293934*/ OPC_MoveChild, 10, ++/*293936*/ OPC_CheckInteger, 1, ++/*293938*/ OPC_CheckType, MVT::i32, ++/*293940*/ OPC_MoveParent, ++/*293941*/ OPC_MoveChild, 11, ++/*293943*/ OPC_CheckInteger, 1, ++/*293945*/ OPC_CheckType, MVT::i32, ++/*293947*/ OPC_MoveParent, ++/*293948*/ OPC_MoveChild, 12, ++/*293950*/ OPC_CheckInteger, 1, ++/*293952*/ OPC_CheckType, MVT::i32, ++/*293954*/ OPC_MoveParent, ++/*293955*/ OPC_MoveChild, 13, ++/*293957*/ OPC_CheckInteger, 1, ++/*293959*/ OPC_CheckType, MVT::i32, ++/*293961*/ OPC_MoveParent, ++/*293962*/ OPC_MoveChild, 14, ++/*293964*/ OPC_CheckInteger, 1, ++/*293966*/ OPC_CheckType, MVT::i32, ++/*293968*/ OPC_MoveParent, ++/*293969*/ OPC_MoveChild, 15, ++/*293971*/ OPC_CheckInteger, 1, ++/*293973*/ OPC_CheckType, MVT::i32, ++/*293975*/ OPC_MoveParent, ++/*293976*/ OPC_MoveChild, 16, ++/*293978*/ OPC_CheckInteger, 1, ++/*293980*/ OPC_CheckType, MVT::i32, ++/*293982*/ OPC_MoveParent, ++/*293983*/ OPC_MoveChild, 17, ++/*293985*/ OPC_CheckInteger, 1, ++/*293987*/ OPC_CheckType, MVT::i32, ++/*293989*/ OPC_MoveParent, ++/*293990*/ OPC_MoveChild, 18, ++/*293992*/ OPC_CheckInteger, 1, ++/*293994*/ OPC_CheckType, MVT::i32, ++/*293996*/ OPC_MoveParent, ++/*293997*/ OPC_MoveChild, 19, ++/*293999*/ OPC_CheckInteger, 1, ++/*294001*/ OPC_CheckType, MVT::i32, ++/*294003*/ OPC_MoveParent, ++/*294004*/ OPC_MoveChild, 20, ++/*294006*/ OPC_CheckInteger, 1, ++/*294008*/ OPC_CheckType, MVT::i32, ++/*294010*/ OPC_MoveParent, ++/*294011*/ OPC_MoveChild, 21, ++/*294013*/ OPC_CheckInteger, 1, ++/*294015*/ OPC_CheckType, MVT::i32, ++/*294017*/ OPC_MoveParent, ++/*294018*/ OPC_MoveChild, 22, ++/*294020*/ OPC_CheckInteger, 1, ++/*294022*/ OPC_CheckType, MVT::i32, ++/*294024*/ OPC_MoveParent, ++/*294025*/ OPC_MoveChild, 23, ++/*294027*/ OPC_CheckInteger, 1, ++/*294029*/ OPC_CheckType, MVT::i32, ++/*294031*/ OPC_MoveParent, ++/*294032*/ OPC_MoveChild, 24, ++/*294034*/ OPC_CheckInteger, 1, ++/*294036*/ OPC_CheckType, MVT::i32, ++/*294038*/ OPC_MoveParent, ++/*294039*/ OPC_MoveChild, 25, ++/*294041*/ OPC_CheckInteger, 1, ++/*294043*/ OPC_CheckType, MVT::i32, ++/*294045*/ OPC_MoveParent, ++/*294046*/ OPC_MoveChild, 26, ++/*294048*/ OPC_CheckInteger, 1, ++/*294050*/ OPC_CheckType, MVT::i32, ++/*294052*/ OPC_MoveParent, ++/*294053*/ OPC_MoveChild, 27, ++/*294055*/ OPC_CheckInteger, 1, ++/*294057*/ OPC_CheckType, MVT::i32, ++/*294059*/ OPC_MoveParent, ++/*294060*/ OPC_MoveChild, 28, ++/*294062*/ OPC_CheckInteger, 1, ++/*294064*/ OPC_CheckType, MVT::i32, ++/*294066*/ OPC_MoveParent, ++/*294067*/ OPC_MoveChild, 29, ++/*294069*/ OPC_CheckInteger, 1, ++/*294071*/ OPC_CheckType, MVT::i32, ++/*294073*/ OPC_MoveParent, ++/*294074*/ OPC_MoveChild, 30, ++/*294076*/ OPC_CheckInteger, 1, ++/*294078*/ OPC_CheckType, MVT::i32, ++/*294080*/ OPC_MoveParent, ++/*294081*/ OPC_MoveChild, 31, ++/*294083*/ OPC_CheckInteger, 1, ++/*294085*/ OPC_CheckType, MVT::i32, ++/*294087*/ OPC_MoveParent, ++/*294088*/ OPC_CheckType, MVT::v32i8, ++/*294090*/ OPC_MoveParent, ++/*294091*/ OPC_CheckType, MVT::v32i8, ++/*294093*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*294095*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*294103*/ /*Scope*/ 57|128,3/*441*/, /*->294546*/ ++/*294105*/ OPC_CheckChild0Same, 1, ++/*294107*/ OPC_MoveChild1, ++/*294108*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*294111*/ OPC_CheckChild0Integer, 1, ++/*294113*/ OPC_CheckChild0Type, MVT::i32, ++/*294115*/ OPC_CheckChild1Integer, 1, ++/*294117*/ OPC_CheckChild1Type, MVT::i32, ++/*294119*/ OPC_CheckChild2Integer, 1, ++/*294121*/ OPC_CheckChild2Type, MVT::i32, ++/*294123*/ OPC_CheckChild3Integer, 1, ++/*294125*/ OPC_CheckChild3Type, MVT::i32, ++/*294127*/ OPC_CheckChild4Integer, 1, ++/*294129*/ OPC_CheckChild4Type, MVT::i32, ++/*294131*/ OPC_MoveChild5, ++/*294132*/ OPC_CheckInteger, 1, ++/*294134*/ OPC_CheckType, MVT::i32, ++/*294136*/ OPC_MoveParent, ++/*294137*/ OPC_MoveChild6, ++/*294138*/ OPC_CheckInteger, 1, ++/*294140*/ OPC_CheckType, MVT::i32, ++/*294142*/ OPC_MoveParent, ++/*294143*/ OPC_MoveChild7, ++/*294144*/ OPC_CheckInteger, 1, ++/*294146*/ OPC_CheckType, MVT::i32, ++/*294148*/ OPC_MoveParent, ++/*294149*/ OPC_MoveChild, 8, ++/*294151*/ OPC_CheckInteger, 1, ++/*294153*/ OPC_CheckType, MVT::i32, ++/*294155*/ OPC_MoveParent, ++/*294156*/ OPC_MoveChild, 9, ++/*294158*/ OPC_CheckInteger, 1, ++/*294160*/ OPC_CheckType, MVT::i32, ++/*294162*/ OPC_MoveParent, ++/*294163*/ OPC_MoveChild, 10, ++/*294165*/ OPC_CheckInteger, 1, ++/*294167*/ OPC_CheckType, MVT::i32, ++/*294169*/ OPC_MoveParent, ++/*294170*/ OPC_MoveChild, 11, ++/*294172*/ OPC_CheckInteger, 1, ++/*294174*/ OPC_CheckType, MVT::i32, ++/*294176*/ OPC_MoveParent, ++/*294177*/ OPC_MoveChild, 12, ++/*294179*/ OPC_CheckInteger, 1, ++/*294181*/ OPC_CheckType, MVT::i32, ++/*294183*/ OPC_MoveParent, ++/*294184*/ OPC_MoveChild, 13, ++/*294186*/ OPC_CheckInteger, 1, ++/*294188*/ OPC_CheckType, MVT::i32, ++/*294190*/ OPC_MoveParent, ++/*294191*/ OPC_MoveChild, 14, ++/*294193*/ OPC_CheckInteger, 1, ++/*294195*/ OPC_CheckType, MVT::i32, ++/*294197*/ OPC_MoveParent, ++/*294198*/ OPC_MoveChild, 15, ++/*294200*/ OPC_CheckInteger, 1, ++/*294202*/ OPC_CheckType, MVT::i32, ++/*294204*/ OPC_MoveParent, ++/*294205*/ OPC_MoveChild, 16, ++/*294207*/ OPC_CheckInteger, 1, ++/*294209*/ OPC_CheckType, MVT::i32, ++/*294211*/ OPC_MoveParent, ++/*294212*/ OPC_MoveChild, 17, ++/*294214*/ OPC_CheckInteger, 1, ++/*294216*/ OPC_CheckType, MVT::i32, ++/*294218*/ OPC_MoveParent, ++/*294219*/ OPC_MoveChild, 18, ++/*294221*/ OPC_CheckInteger, 1, ++/*294223*/ OPC_CheckType, MVT::i32, ++/*294225*/ OPC_MoveParent, ++/*294226*/ OPC_MoveChild, 19, ++/*294228*/ OPC_CheckInteger, 1, ++/*294230*/ OPC_CheckType, MVT::i32, ++/*294232*/ OPC_MoveParent, ++/*294233*/ OPC_MoveChild, 20, ++/*294235*/ OPC_CheckInteger, 1, ++/*294237*/ OPC_CheckType, MVT::i32, ++/*294239*/ OPC_MoveParent, ++/*294240*/ OPC_MoveChild, 21, ++/*294242*/ OPC_CheckInteger, 1, ++/*294244*/ OPC_CheckType, MVT::i32, ++/*294246*/ OPC_MoveParent, ++/*294247*/ OPC_MoveChild, 22, ++/*294249*/ OPC_CheckInteger, 1, ++/*294251*/ OPC_CheckType, MVT::i32, ++/*294253*/ OPC_MoveParent, ++/*294254*/ OPC_MoveChild, 23, ++/*294256*/ OPC_CheckInteger, 1, ++/*294258*/ OPC_CheckType, MVT::i32, ++/*294260*/ OPC_MoveParent, ++/*294261*/ OPC_MoveChild, 24, ++/*294263*/ OPC_CheckInteger, 1, ++/*294265*/ OPC_CheckType, MVT::i32, ++/*294267*/ OPC_MoveParent, ++/*294268*/ OPC_MoveChild, 25, ++/*294270*/ OPC_CheckInteger, 1, ++/*294272*/ OPC_CheckType, MVT::i32, ++/*294274*/ OPC_MoveParent, ++/*294275*/ OPC_MoveChild, 26, ++/*294277*/ OPC_CheckInteger, 1, ++/*294279*/ OPC_CheckType, MVT::i32, ++/*294281*/ OPC_MoveParent, ++/*294282*/ OPC_MoveChild, 27, ++/*294284*/ OPC_CheckInteger, 1, ++/*294286*/ OPC_CheckType, MVT::i32, ++/*294288*/ OPC_MoveParent, ++/*294289*/ OPC_MoveChild, 28, ++/*294291*/ OPC_CheckInteger, 1, ++/*294293*/ OPC_CheckType, MVT::i32, ++/*294295*/ OPC_MoveParent, ++/*294296*/ OPC_MoveChild, 29, ++/*294298*/ OPC_CheckInteger, 1, ++/*294300*/ OPC_CheckType, MVT::i32, ++/*294302*/ OPC_MoveParent, ++/*294303*/ OPC_MoveChild, 30, ++/*294305*/ OPC_CheckInteger, 1, ++/*294307*/ OPC_CheckType, MVT::i32, ++/*294309*/ OPC_MoveParent, ++/*294310*/ OPC_MoveChild, 31, ++/*294312*/ OPC_CheckInteger, 1, ++/*294314*/ OPC_CheckType, MVT::i32, ++/*294316*/ OPC_MoveParent, ++/*294317*/ OPC_MoveParent, ++/*294318*/ OPC_MoveParent, ++/*294319*/ OPC_MoveParent, ++/*294320*/ OPC_MoveParent, ++/*294321*/ OPC_MoveChild1, ++/*294322*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*294325*/ OPC_CheckChild0Integer, 1, ++/*294327*/ OPC_CheckChild0Type, MVT::i32, ++/*294329*/ OPC_CheckChild1Integer, 1, ++/*294331*/ OPC_CheckChild1Type, MVT::i32, ++/*294333*/ OPC_CheckChild2Integer, 1, ++/*294335*/ OPC_CheckChild2Type, MVT::i32, ++/*294337*/ OPC_CheckChild3Integer, 1, ++/*294339*/ OPC_CheckChild3Type, MVT::i32, ++/*294341*/ OPC_CheckChild4Integer, 1, ++/*294343*/ OPC_CheckChild4Type, MVT::i32, ++/*294345*/ OPC_MoveChild5, ++/*294346*/ OPC_CheckInteger, 1, ++/*294348*/ OPC_CheckType, MVT::i32, ++/*294350*/ OPC_MoveParent, ++/*294351*/ OPC_MoveChild6, ++/*294352*/ OPC_CheckInteger, 1, ++/*294354*/ OPC_CheckType, MVT::i32, ++/*294356*/ OPC_MoveParent, ++/*294357*/ OPC_MoveChild7, ++/*294358*/ OPC_CheckInteger, 1, ++/*294360*/ OPC_CheckType, MVT::i32, ++/*294362*/ OPC_MoveParent, ++/*294363*/ OPC_MoveChild, 8, ++/*294365*/ OPC_CheckInteger, 1, ++/*294367*/ OPC_CheckType, MVT::i32, ++/*294369*/ OPC_MoveParent, ++/*294370*/ OPC_MoveChild, 9, ++/*294372*/ OPC_CheckInteger, 1, ++/*294374*/ OPC_CheckType, MVT::i32, ++/*294376*/ OPC_MoveParent, ++/*294377*/ OPC_MoveChild, 10, ++/*294379*/ OPC_CheckInteger, 1, ++/*294381*/ OPC_CheckType, MVT::i32, ++/*294383*/ OPC_MoveParent, ++/*294384*/ OPC_MoveChild, 11, ++/*294386*/ OPC_CheckInteger, 1, ++/*294388*/ OPC_CheckType, MVT::i32, ++/*294390*/ OPC_MoveParent, ++/*294391*/ OPC_MoveChild, 12, ++/*294393*/ OPC_CheckInteger, 1, ++/*294395*/ OPC_CheckType, MVT::i32, ++/*294397*/ OPC_MoveParent, ++/*294398*/ OPC_MoveChild, 13, ++/*294400*/ OPC_CheckInteger, 1, ++/*294402*/ OPC_CheckType, MVT::i32, ++/*294404*/ OPC_MoveParent, ++/*294405*/ OPC_MoveChild, 14, ++/*294407*/ OPC_CheckInteger, 1, ++/*294409*/ OPC_CheckType, MVT::i32, ++/*294411*/ OPC_MoveParent, ++/*294412*/ OPC_MoveChild, 15, ++/*294414*/ OPC_CheckInteger, 1, ++/*294416*/ OPC_CheckType, MVT::i32, ++/*294418*/ OPC_MoveParent, ++/*294419*/ OPC_MoveChild, 16, ++/*294421*/ OPC_CheckInteger, 1, ++/*294423*/ OPC_CheckType, MVT::i32, ++/*294425*/ OPC_MoveParent, ++/*294426*/ OPC_MoveChild, 17, ++/*294428*/ OPC_CheckInteger, 1, ++/*294430*/ OPC_CheckType, MVT::i32, ++/*294432*/ OPC_MoveParent, ++/*294433*/ OPC_MoveChild, 18, ++/*294435*/ OPC_CheckInteger, 1, ++/*294437*/ OPC_CheckType, MVT::i32, ++/*294439*/ OPC_MoveParent, ++/*294440*/ OPC_MoveChild, 19, ++/*294442*/ OPC_CheckInteger, 1, ++/*294444*/ OPC_CheckType, MVT::i32, ++/*294446*/ OPC_MoveParent, ++/*294447*/ OPC_MoveChild, 20, ++/*294449*/ OPC_CheckInteger, 1, ++/*294451*/ OPC_CheckType, MVT::i32, ++/*294453*/ OPC_MoveParent, ++/*294454*/ OPC_MoveChild, 21, ++/*294456*/ OPC_CheckInteger, 1, ++/*294458*/ OPC_CheckType, MVT::i32, ++/*294460*/ OPC_MoveParent, ++/*294461*/ OPC_MoveChild, 22, ++/*294463*/ OPC_CheckInteger, 1, ++/*294465*/ OPC_CheckType, MVT::i32, ++/*294467*/ OPC_MoveParent, ++/*294468*/ OPC_MoveChild, 23, ++/*294470*/ OPC_CheckInteger, 1, ++/*294472*/ OPC_CheckType, MVT::i32, ++/*294474*/ OPC_MoveParent, ++/*294475*/ OPC_MoveChild, 24, ++/*294477*/ OPC_CheckInteger, 1, ++/*294479*/ OPC_CheckType, MVT::i32, ++/*294481*/ OPC_MoveParent, ++/*294482*/ OPC_MoveChild, 25, ++/*294484*/ OPC_CheckInteger, 1, ++/*294486*/ OPC_CheckType, MVT::i32, ++/*294488*/ OPC_MoveParent, ++/*294489*/ OPC_MoveChild, 26, ++/*294491*/ OPC_CheckInteger, 1, ++/*294493*/ OPC_CheckType, MVT::i32, ++/*294495*/ OPC_MoveParent, ++/*294496*/ OPC_MoveChild, 27, ++/*294498*/ OPC_CheckInteger, 1, ++/*294500*/ OPC_CheckType, MVT::i32, ++/*294502*/ OPC_MoveParent, ++/*294503*/ OPC_MoveChild, 28, ++/*294505*/ OPC_CheckInteger, 1, ++/*294507*/ OPC_CheckType, MVT::i32, ++/*294509*/ OPC_MoveParent, ++/*294510*/ OPC_MoveChild, 29, ++/*294512*/ OPC_CheckInteger, 1, ++/*294514*/ OPC_CheckType, MVT::i32, ++/*294516*/ OPC_MoveParent, ++/*294517*/ OPC_MoveChild, 30, ++/*294519*/ OPC_CheckInteger, 1, ++/*294521*/ OPC_CheckType, MVT::i32, ++/*294523*/ OPC_MoveParent, ++/*294524*/ OPC_MoveChild, 31, ++/*294526*/ OPC_CheckInteger, 1, ++/*294528*/ OPC_CheckType, MVT::i32, ++/*294530*/ OPC_MoveParent, ++/*294531*/ OPC_CheckType, MVT::v32i8, ++/*294533*/ OPC_MoveParent, ++/*294534*/ OPC_CheckType, MVT::v32i8, ++/*294536*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*294538*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*294546*/ 0, /*End of Scope*/ ++/*294547*/ /*Scope*/ 126|128,6/*894*/, /*->295443*/ ++/*294549*/ OPC_CheckChild0Same, 1, ++/*294551*/ OPC_MoveChild1, ++/*294552*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*294555*/ OPC_Scope, 57|128,3/*441*/, /*->294999*/ // 2 children in Scope ++/*294558*/ OPC_MoveChild0, ++/*294559*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*294562*/ OPC_CheckChild0Integer, 1, ++/*294564*/ OPC_CheckChild0Type, MVT::i32, ++/*294566*/ OPC_CheckChild1Integer, 1, ++/*294568*/ OPC_CheckChild1Type, MVT::i32, ++/*294570*/ OPC_CheckChild2Integer, 1, ++/*294572*/ OPC_CheckChild2Type, MVT::i32, ++/*294574*/ OPC_CheckChild3Integer, 1, ++/*294576*/ OPC_CheckChild3Type, MVT::i32, ++/*294578*/ OPC_CheckChild4Integer, 1, ++/*294580*/ OPC_CheckChild4Type, MVT::i32, ++/*294582*/ OPC_MoveChild5, ++/*294583*/ OPC_CheckInteger, 1, ++/*294585*/ OPC_CheckType, MVT::i32, ++/*294587*/ OPC_MoveParent, ++/*294588*/ OPC_MoveChild6, ++/*294589*/ OPC_CheckInteger, 1, ++/*294591*/ OPC_CheckType, MVT::i32, ++/*294593*/ OPC_MoveParent, ++/*294594*/ OPC_MoveChild7, ++/*294595*/ OPC_CheckInteger, 1, ++/*294597*/ OPC_CheckType, MVT::i32, ++/*294599*/ OPC_MoveParent, ++/*294600*/ OPC_MoveChild, 8, ++/*294602*/ OPC_CheckInteger, 1, ++/*294604*/ OPC_CheckType, MVT::i32, ++/*294606*/ OPC_MoveParent, ++/*294607*/ OPC_MoveChild, 9, ++/*294609*/ OPC_CheckInteger, 1, ++/*294611*/ OPC_CheckType, MVT::i32, ++/*294613*/ OPC_MoveParent, ++/*294614*/ OPC_MoveChild, 10, ++/*294616*/ OPC_CheckInteger, 1, ++/*294618*/ OPC_CheckType, MVT::i32, ++/*294620*/ OPC_MoveParent, ++/*294621*/ OPC_MoveChild, 11, ++/*294623*/ OPC_CheckInteger, 1, ++/*294625*/ OPC_CheckType, MVT::i32, ++/*294627*/ OPC_MoveParent, ++/*294628*/ OPC_MoveChild, 12, ++/*294630*/ OPC_CheckInteger, 1, ++/*294632*/ OPC_CheckType, MVT::i32, ++/*294634*/ OPC_MoveParent, ++/*294635*/ OPC_MoveChild, 13, ++/*294637*/ OPC_CheckInteger, 1, ++/*294639*/ OPC_CheckType, MVT::i32, ++/*294641*/ OPC_MoveParent, ++/*294642*/ OPC_MoveChild, 14, ++/*294644*/ OPC_CheckInteger, 1, ++/*294646*/ OPC_CheckType, MVT::i32, ++/*294648*/ OPC_MoveParent, ++/*294649*/ OPC_MoveChild, 15, ++/*294651*/ OPC_CheckInteger, 1, ++/*294653*/ OPC_CheckType, MVT::i32, ++/*294655*/ OPC_MoveParent, ++/*294656*/ OPC_MoveChild, 16, ++/*294658*/ OPC_CheckInteger, 1, ++/*294660*/ OPC_CheckType, MVT::i32, ++/*294662*/ OPC_MoveParent, ++/*294663*/ OPC_MoveChild, 17, ++/*294665*/ OPC_CheckInteger, 1, ++/*294667*/ OPC_CheckType, MVT::i32, ++/*294669*/ OPC_MoveParent, ++/*294670*/ OPC_MoveChild, 18, ++/*294672*/ OPC_CheckInteger, 1, ++/*294674*/ OPC_CheckType, MVT::i32, ++/*294676*/ OPC_MoveParent, ++/*294677*/ OPC_MoveChild, 19, ++/*294679*/ OPC_CheckInteger, 1, ++/*294681*/ OPC_CheckType, MVT::i32, ++/*294683*/ OPC_MoveParent, ++/*294684*/ OPC_MoveChild, 20, ++/*294686*/ OPC_CheckInteger, 1, ++/*294688*/ OPC_CheckType, MVT::i32, ++/*294690*/ OPC_MoveParent, ++/*294691*/ OPC_MoveChild, 21, ++/*294693*/ OPC_CheckInteger, 1, ++/*294695*/ OPC_CheckType, MVT::i32, ++/*294697*/ OPC_MoveParent, ++/*294698*/ OPC_MoveChild, 22, ++/*294700*/ OPC_CheckInteger, 1, ++/*294702*/ OPC_CheckType, MVT::i32, ++/*294704*/ OPC_MoveParent, ++/*294705*/ OPC_MoveChild, 23, ++/*294707*/ OPC_CheckInteger, 1, ++/*294709*/ OPC_CheckType, MVT::i32, ++/*294711*/ OPC_MoveParent, ++/*294712*/ OPC_MoveChild, 24, ++/*294714*/ OPC_CheckInteger, 1, ++/*294716*/ OPC_CheckType, MVT::i32, ++/*294718*/ OPC_MoveParent, ++/*294719*/ OPC_MoveChild, 25, ++/*294721*/ OPC_CheckInteger, 1, ++/*294723*/ OPC_CheckType, MVT::i32, ++/*294725*/ OPC_MoveParent, ++/*294726*/ OPC_MoveChild, 26, ++/*294728*/ OPC_CheckInteger, 1, ++/*294730*/ OPC_CheckType, MVT::i32, ++/*294732*/ OPC_MoveParent, ++/*294733*/ OPC_MoveChild, 27, ++/*294735*/ OPC_CheckInteger, 1, ++/*294737*/ OPC_CheckType, MVT::i32, ++/*294739*/ OPC_MoveParent, ++/*294740*/ OPC_MoveChild, 28, ++/*294742*/ OPC_CheckInteger, 1, ++/*294744*/ OPC_CheckType, MVT::i32, ++/*294746*/ OPC_MoveParent, ++/*294747*/ OPC_MoveChild, 29, ++/*294749*/ OPC_CheckInteger, 1, ++/*294751*/ OPC_CheckType, MVT::i32, ++/*294753*/ OPC_MoveParent, ++/*294754*/ OPC_MoveChild, 30, ++/*294756*/ OPC_CheckInteger, 1, ++/*294758*/ OPC_CheckType, MVT::i32, ++/*294760*/ OPC_MoveParent, ++/*294761*/ OPC_MoveChild, 31, ++/*294763*/ OPC_CheckInteger, 1, ++/*294765*/ OPC_CheckType, MVT::i32, ++/*294767*/ OPC_MoveParent, ++/*294768*/ OPC_MoveParent, ++/*294769*/ OPC_CheckChild1Same, 0, ++/*294771*/ OPC_MoveParent, ++/*294772*/ OPC_MoveParent, ++/*294773*/ OPC_MoveParent, ++/*294774*/ OPC_MoveChild1, ++/*294775*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*294778*/ OPC_CheckChild0Integer, 1, ++/*294780*/ OPC_CheckChild0Type, MVT::i32, ++/*294782*/ OPC_CheckChild1Integer, 1, ++/*294784*/ OPC_CheckChild1Type, MVT::i32, ++/*294786*/ OPC_CheckChild2Integer, 1, ++/*294788*/ OPC_CheckChild2Type, MVT::i32, ++/*294790*/ OPC_CheckChild3Integer, 1, ++/*294792*/ OPC_CheckChild3Type, MVT::i32, ++/*294794*/ OPC_CheckChild4Integer, 1, ++/*294796*/ OPC_CheckChild4Type, MVT::i32, ++/*294798*/ OPC_MoveChild5, ++/*294799*/ OPC_CheckInteger, 1, ++/*294801*/ OPC_CheckType, MVT::i32, ++/*294803*/ OPC_MoveParent, ++/*294804*/ OPC_MoveChild6, ++/*294805*/ OPC_CheckInteger, 1, ++/*294807*/ OPC_CheckType, MVT::i32, ++/*294809*/ OPC_MoveParent, ++/*294810*/ OPC_MoveChild7, ++/*294811*/ OPC_CheckInteger, 1, ++/*294813*/ OPC_CheckType, MVT::i32, ++/*294815*/ OPC_MoveParent, ++/*294816*/ OPC_MoveChild, 8, ++/*294818*/ OPC_CheckInteger, 1, ++/*294820*/ OPC_CheckType, MVT::i32, ++/*294822*/ OPC_MoveParent, ++/*294823*/ OPC_MoveChild, 9, ++/*294825*/ OPC_CheckInteger, 1, ++/*294827*/ OPC_CheckType, MVT::i32, ++/*294829*/ OPC_MoveParent, ++/*294830*/ OPC_MoveChild, 10, ++/*294832*/ OPC_CheckInteger, 1, ++/*294834*/ OPC_CheckType, MVT::i32, ++/*294836*/ OPC_MoveParent, ++/*294837*/ OPC_MoveChild, 11, ++/*294839*/ OPC_CheckInteger, 1, ++/*294841*/ OPC_CheckType, MVT::i32, ++/*294843*/ OPC_MoveParent, ++/*294844*/ OPC_MoveChild, 12, ++/*294846*/ OPC_CheckInteger, 1, ++/*294848*/ OPC_CheckType, MVT::i32, ++/*294850*/ OPC_MoveParent, ++/*294851*/ OPC_MoveChild, 13, ++/*294853*/ OPC_CheckInteger, 1, ++/*294855*/ OPC_CheckType, MVT::i32, ++/*294857*/ OPC_MoveParent, ++/*294858*/ OPC_MoveChild, 14, ++/*294860*/ OPC_CheckInteger, 1, ++/*294862*/ OPC_CheckType, MVT::i32, ++/*294864*/ OPC_MoveParent, ++/*294865*/ OPC_MoveChild, 15, ++/*294867*/ OPC_CheckInteger, 1, ++/*294869*/ OPC_CheckType, MVT::i32, ++/*294871*/ OPC_MoveParent, ++/*294872*/ OPC_MoveChild, 16, ++/*294874*/ OPC_CheckInteger, 1, ++/*294876*/ OPC_CheckType, MVT::i32, ++/*294878*/ OPC_MoveParent, ++/*294879*/ OPC_MoveChild, 17, ++/*294881*/ OPC_CheckInteger, 1, ++/*294883*/ OPC_CheckType, MVT::i32, ++/*294885*/ OPC_MoveParent, ++/*294886*/ OPC_MoveChild, 18, ++/*294888*/ OPC_CheckInteger, 1, ++/*294890*/ OPC_CheckType, MVT::i32, ++/*294892*/ OPC_MoveParent, ++/*294893*/ OPC_MoveChild, 19, ++/*294895*/ OPC_CheckInteger, 1, ++/*294897*/ OPC_CheckType, MVT::i32, ++/*294899*/ OPC_MoveParent, ++/*294900*/ OPC_MoveChild, 20, ++/*294902*/ OPC_CheckInteger, 1, ++/*294904*/ OPC_CheckType, MVT::i32, ++/*294906*/ OPC_MoveParent, ++/*294907*/ OPC_MoveChild, 21, ++/*294909*/ OPC_CheckInteger, 1, ++/*294911*/ OPC_CheckType, MVT::i32, ++/*294913*/ OPC_MoveParent, ++/*294914*/ OPC_MoveChild, 22, ++/*294916*/ OPC_CheckInteger, 1, ++/*294918*/ OPC_CheckType, MVT::i32, ++/*294920*/ OPC_MoveParent, ++/*294921*/ OPC_MoveChild, 23, ++/*294923*/ OPC_CheckInteger, 1, ++/*294925*/ OPC_CheckType, MVT::i32, ++/*294927*/ OPC_MoveParent, ++/*294928*/ OPC_MoveChild, 24, ++/*294930*/ OPC_CheckInteger, 1, ++/*294932*/ OPC_CheckType, MVT::i32, ++/*294934*/ OPC_MoveParent, ++/*294935*/ OPC_MoveChild, 25, ++/*294937*/ OPC_CheckInteger, 1, ++/*294939*/ OPC_CheckType, MVT::i32, ++/*294941*/ OPC_MoveParent, ++/*294942*/ OPC_MoveChild, 26, ++/*294944*/ OPC_CheckInteger, 1, ++/*294946*/ OPC_CheckType, MVT::i32, ++/*294948*/ OPC_MoveParent, ++/*294949*/ OPC_MoveChild, 27, ++/*294951*/ OPC_CheckInteger, 1, ++/*294953*/ OPC_CheckType, MVT::i32, ++/*294955*/ OPC_MoveParent, ++/*294956*/ OPC_MoveChild, 28, ++/*294958*/ OPC_CheckInteger, 1, ++/*294960*/ OPC_CheckType, MVT::i32, ++/*294962*/ OPC_MoveParent, ++/*294963*/ OPC_MoveChild, 29, ++/*294965*/ OPC_CheckInteger, 1, ++/*294967*/ OPC_CheckType, MVT::i32, ++/*294969*/ OPC_MoveParent, ++/*294970*/ OPC_MoveChild, 30, ++/*294972*/ OPC_CheckInteger, 1, ++/*294974*/ OPC_CheckType, MVT::i32, ++/*294976*/ OPC_MoveParent, ++/*294977*/ OPC_MoveChild, 31, ++/*294979*/ OPC_CheckInteger, 1, ++/*294981*/ OPC_CheckType, MVT::i32, ++/*294983*/ OPC_MoveParent, ++/*294984*/ OPC_CheckType, MVT::v32i8, ++/*294986*/ OPC_MoveParent, ++/*294987*/ OPC_CheckType, MVT::v32i8, ++/*294989*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*294991*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*294999*/ /*Scope*/ 57|128,3/*441*/, /*->295442*/ ++/*295001*/ OPC_CheckChild0Same, 0, ++/*295003*/ OPC_MoveChild1, ++/*295004*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*295007*/ OPC_CheckChild0Integer, 1, ++/*295009*/ OPC_CheckChild0Type, MVT::i32, ++/*295011*/ OPC_CheckChild1Integer, 1, ++/*295013*/ OPC_CheckChild1Type, MVT::i32, ++/*295015*/ OPC_CheckChild2Integer, 1, ++/*295017*/ OPC_CheckChild2Type, MVT::i32, ++/*295019*/ OPC_CheckChild3Integer, 1, ++/*295021*/ OPC_CheckChild3Type, MVT::i32, ++/*295023*/ OPC_CheckChild4Integer, 1, ++/*295025*/ OPC_CheckChild4Type, MVT::i32, ++/*295027*/ OPC_MoveChild5, ++/*295028*/ OPC_CheckInteger, 1, ++/*295030*/ OPC_CheckType, MVT::i32, ++/*295032*/ OPC_MoveParent, ++/*295033*/ OPC_MoveChild6, ++/*295034*/ OPC_CheckInteger, 1, ++/*295036*/ OPC_CheckType, MVT::i32, ++/*295038*/ OPC_MoveParent, ++/*295039*/ OPC_MoveChild7, ++/*295040*/ OPC_CheckInteger, 1, ++/*295042*/ OPC_CheckType, MVT::i32, ++/*295044*/ OPC_MoveParent, ++/*295045*/ OPC_MoveChild, 8, ++/*295047*/ OPC_CheckInteger, 1, ++/*295049*/ OPC_CheckType, MVT::i32, ++/*295051*/ OPC_MoveParent, ++/*295052*/ OPC_MoveChild, 9, ++/*295054*/ OPC_CheckInteger, 1, ++/*295056*/ OPC_CheckType, MVT::i32, ++/*295058*/ OPC_MoveParent, ++/*295059*/ OPC_MoveChild, 10, ++/*295061*/ OPC_CheckInteger, 1, ++/*295063*/ OPC_CheckType, MVT::i32, ++/*295065*/ OPC_MoveParent, ++/*295066*/ OPC_MoveChild, 11, ++/*295068*/ OPC_CheckInteger, 1, ++/*295070*/ OPC_CheckType, MVT::i32, ++/*295072*/ OPC_MoveParent, ++/*295073*/ OPC_MoveChild, 12, ++/*295075*/ OPC_CheckInteger, 1, ++/*295077*/ OPC_CheckType, MVT::i32, ++/*295079*/ OPC_MoveParent, ++/*295080*/ OPC_MoveChild, 13, ++/*295082*/ OPC_CheckInteger, 1, ++/*295084*/ OPC_CheckType, MVT::i32, ++/*295086*/ OPC_MoveParent, ++/*295087*/ OPC_MoveChild, 14, ++/*295089*/ OPC_CheckInteger, 1, ++/*295091*/ OPC_CheckType, MVT::i32, ++/*295093*/ OPC_MoveParent, ++/*295094*/ OPC_MoveChild, 15, ++/*295096*/ OPC_CheckInteger, 1, ++/*295098*/ OPC_CheckType, MVT::i32, ++/*295100*/ OPC_MoveParent, ++/*295101*/ OPC_MoveChild, 16, ++/*295103*/ OPC_CheckInteger, 1, ++/*295105*/ OPC_CheckType, MVT::i32, ++/*295107*/ OPC_MoveParent, ++/*295108*/ OPC_MoveChild, 17, ++/*295110*/ OPC_CheckInteger, 1, ++/*295112*/ OPC_CheckType, MVT::i32, ++/*295114*/ OPC_MoveParent, ++/*295115*/ OPC_MoveChild, 18, ++/*295117*/ OPC_CheckInteger, 1, ++/*295119*/ OPC_CheckType, MVT::i32, ++/*295121*/ OPC_MoveParent, ++/*295122*/ OPC_MoveChild, 19, ++/*295124*/ OPC_CheckInteger, 1, ++/*295126*/ OPC_CheckType, MVT::i32, ++/*295128*/ OPC_MoveParent, ++/*295129*/ OPC_MoveChild, 20, ++/*295131*/ OPC_CheckInteger, 1, ++/*295133*/ OPC_CheckType, MVT::i32, ++/*295135*/ OPC_MoveParent, ++/*295136*/ OPC_MoveChild, 21, ++/*295138*/ OPC_CheckInteger, 1, ++/*295140*/ OPC_CheckType, MVT::i32, ++/*295142*/ OPC_MoveParent, ++/*295143*/ OPC_MoveChild, 22, ++/*295145*/ OPC_CheckInteger, 1, ++/*295147*/ OPC_CheckType, MVT::i32, ++/*295149*/ OPC_MoveParent, ++/*295150*/ OPC_MoveChild, 23, ++/*295152*/ OPC_CheckInteger, 1, ++/*295154*/ OPC_CheckType, MVT::i32, ++/*295156*/ OPC_MoveParent, ++/*295157*/ OPC_MoveChild, 24, ++/*295159*/ OPC_CheckInteger, 1, ++/*295161*/ OPC_CheckType, MVT::i32, ++/*295163*/ OPC_MoveParent, ++/*295164*/ OPC_MoveChild, 25, ++/*295166*/ OPC_CheckInteger, 1, ++/*295168*/ OPC_CheckType, MVT::i32, ++/*295170*/ OPC_MoveParent, ++/*295171*/ OPC_MoveChild, 26, ++/*295173*/ OPC_CheckInteger, 1, ++/*295175*/ OPC_CheckType, MVT::i32, ++/*295177*/ OPC_MoveParent, ++/*295178*/ OPC_MoveChild, 27, ++/*295180*/ OPC_CheckInteger, 1, ++/*295182*/ OPC_CheckType, MVT::i32, ++/*295184*/ OPC_MoveParent, ++/*295185*/ OPC_MoveChild, 28, ++/*295187*/ OPC_CheckInteger, 1, ++/*295189*/ OPC_CheckType, MVT::i32, ++/*295191*/ OPC_MoveParent, ++/*295192*/ OPC_MoveChild, 29, ++/*295194*/ OPC_CheckInteger, 1, ++/*295196*/ OPC_CheckType, MVT::i32, ++/*295198*/ OPC_MoveParent, ++/*295199*/ OPC_MoveChild, 30, ++/*295201*/ OPC_CheckInteger, 1, ++/*295203*/ OPC_CheckType, MVT::i32, ++/*295205*/ OPC_MoveParent, ++/*295206*/ OPC_MoveChild, 31, ++/*295208*/ OPC_CheckInteger, 1, ++/*295210*/ OPC_CheckType, MVT::i32, ++/*295212*/ OPC_MoveParent, ++/*295213*/ OPC_MoveParent, ++/*295214*/ OPC_MoveParent, ++/*295215*/ OPC_MoveParent, ++/*295216*/ OPC_MoveParent, ++/*295217*/ OPC_MoveChild1, ++/*295218*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*295221*/ OPC_CheckChild0Integer, 1, ++/*295223*/ OPC_CheckChild0Type, MVT::i32, ++/*295225*/ OPC_CheckChild1Integer, 1, ++/*295227*/ OPC_CheckChild1Type, MVT::i32, ++/*295229*/ OPC_CheckChild2Integer, 1, ++/*295231*/ OPC_CheckChild2Type, MVT::i32, ++/*295233*/ OPC_CheckChild3Integer, 1, ++/*295235*/ OPC_CheckChild3Type, MVT::i32, ++/*295237*/ OPC_CheckChild4Integer, 1, ++/*295239*/ OPC_CheckChild4Type, MVT::i32, ++/*295241*/ OPC_MoveChild5, ++/*295242*/ OPC_CheckInteger, 1, ++/*295244*/ OPC_CheckType, MVT::i32, ++/*295246*/ OPC_MoveParent, ++/*295247*/ OPC_MoveChild6, ++/*295248*/ OPC_CheckInteger, 1, ++/*295250*/ OPC_CheckType, MVT::i32, ++/*295252*/ OPC_MoveParent, ++/*295253*/ OPC_MoveChild7, ++/*295254*/ OPC_CheckInteger, 1, ++/*295256*/ OPC_CheckType, MVT::i32, ++/*295258*/ OPC_MoveParent, ++/*295259*/ OPC_MoveChild, 8, ++/*295261*/ OPC_CheckInteger, 1, ++/*295263*/ OPC_CheckType, MVT::i32, ++/*295265*/ OPC_MoveParent, ++/*295266*/ OPC_MoveChild, 9, ++/*295268*/ OPC_CheckInteger, 1, ++/*295270*/ OPC_CheckType, MVT::i32, ++/*295272*/ OPC_MoveParent, ++/*295273*/ OPC_MoveChild, 10, ++/*295275*/ OPC_CheckInteger, 1, ++/*295277*/ OPC_CheckType, MVT::i32, ++/*295279*/ OPC_MoveParent, ++/*295280*/ OPC_MoveChild, 11, ++/*295282*/ OPC_CheckInteger, 1, ++/*295284*/ OPC_CheckType, MVT::i32, ++/*295286*/ OPC_MoveParent, ++/*295287*/ OPC_MoveChild, 12, ++/*295289*/ OPC_CheckInteger, 1, ++/*295291*/ OPC_CheckType, MVT::i32, ++/*295293*/ OPC_MoveParent, ++/*295294*/ OPC_MoveChild, 13, ++/*295296*/ OPC_CheckInteger, 1, ++/*295298*/ OPC_CheckType, MVT::i32, ++/*295300*/ OPC_MoveParent, ++/*295301*/ OPC_MoveChild, 14, ++/*295303*/ OPC_CheckInteger, 1, ++/*295305*/ OPC_CheckType, MVT::i32, ++/*295307*/ OPC_MoveParent, ++/*295308*/ OPC_MoveChild, 15, ++/*295310*/ OPC_CheckInteger, 1, ++/*295312*/ OPC_CheckType, MVT::i32, ++/*295314*/ OPC_MoveParent, ++/*295315*/ OPC_MoveChild, 16, ++/*295317*/ OPC_CheckInteger, 1, ++/*295319*/ OPC_CheckType, MVT::i32, ++/*295321*/ OPC_MoveParent, ++/*295322*/ OPC_MoveChild, 17, ++/*295324*/ OPC_CheckInteger, 1, ++/*295326*/ OPC_CheckType, MVT::i32, ++/*295328*/ OPC_MoveParent, ++/*295329*/ OPC_MoveChild, 18, ++/*295331*/ OPC_CheckInteger, 1, ++/*295333*/ OPC_CheckType, MVT::i32, ++/*295335*/ OPC_MoveParent, ++/*295336*/ OPC_MoveChild, 19, ++/*295338*/ OPC_CheckInteger, 1, ++/*295340*/ OPC_CheckType, MVT::i32, ++/*295342*/ OPC_MoveParent, ++/*295343*/ OPC_MoveChild, 20, ++/*295345*/ OPC_CheckInteger, 1, ++/*295347*/ OPC_CheckType, MVT::i32, ++/*295349*/ OPC_MoveParent, ++/*295350*/ OPC_MoveChild, 21, ++/*295352*/ OPC_CheckInteger, 1, ++/*295354*/ OPC_CheckType, MVT::i32, ++/*295356*/ OPC_MoveParent, ++/*295357*/ OPC_MoveChild, 22, ++/*295359*/ OPC_CheckInteger, 1, ++/*295361*/ OPC_CheckType, MVT::i32, ++/*295363*/ OPC_MoveParent, ++/*295364*/ OPC_MoveChild, 23, ++/*295366*/ OPC_CheckInteger, 1, ++/*295368*/ OPC_CheckType, MVT::i32, ++/*295370*/ OPC_MoveParent, ++/*295371*/ OPC_MoveChild, 24, ++/*295373*/ OPC_CheckInteger, 1, ++/*295375*/ OPC_CheckType, MVT::i32, ++/*295377*/ OPC_MoveParent, ++/*295378*/ OPC_MoveChild, 25, ++/*295380*/ OPC_CheckInteger, 1, ++/*295382*/ OPC_CheckType, MVT::i32, ++/*295384*/ OPC_MoveParent, ++/*295385*/ OPC_MoveChild, 26, ++/*295387*/ OPC_CheckInteger, 1, ++/*295389*/ OPC_CheckType, MVT::i32, ++/*295391*/ OPC_MoveParent, ++/*295392*/ OPC_MoveChild, 27, ++/*295394*/ OPC_CheckInteger, 1, ++/*295396*/ OPC_CheckType, MVT::i32, ++/*295398*/ OPC_MoveParent, ++/*295399*/ OPC_MoveChild, 28, ++/*295401*/ OPC_CheckInteger, 1, ++/*295403*/ OPC_CheckType, MVT::i32, ++/*295405*/ OPC_MoveParent, ++/*295406*/ OPC_MoveChild, 29, ++/*295408*/ OPC_CheckInteger, 1, ++/*295410*/ OPC_CheckType, MVT::i32, ++/*295412*/ OPC_MoveParent, ++/*295413*/ OPC_MoveChild, 30, ++/*295415*/ OPC_CheckInteger, 1, ++/*295417*/ OPC_CheckType, MVT::i32, ++/*295419*/ OPC_MoveParent, ++/*295420*/ OPC_MoveChild, 31, ++/*295422*/ OPC_CheckInteger, 1, ++/*295424*/ OPC_CheckType, MVT::i32, ++/*295426*/ OPC_MoveParent, ++/*295427*/ OPC_CheckType, MVT::v32i8, ++/*295429*/ OPC_MoveParent, ++/*295430*/ OPC_CheckType, MVT::v32i8, ++/*295432*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*295434*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*295442*/ 0, /*End of Scope*/ ++/*295443*/ /*Scope*/ 45|128,5/*685*/, /*->296130*/ ++/*295445*/ OPC_MoveChild0, ++/*295446*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*295449*/ OPC_CheckChild0Integer, 1, ++/*295451*/ OPC_CheckChild0Type, MVT::i32, ++/*295453*/ OPC_CheckChild1Integer, 1, ++/*295455*/ OPC_CheckChild1Type, MVT::i32, ++/*295457*/ OPC_CheckChild2Integer, 1, ++/*295459*/ OPC_CheckChild2Type, MVT::i32, ++/*295461*/ OPC_CheckChild3Integer, 1, ++/*295463*/ OPC_CheckChild3Type, MVT::i32, ++/*295465*/ OPC_CheckChild4Integer, 1, ++/*295467*/ OPC_CheckChild4Type, MVT::i32, ++/*295469*/ OPC_MoveChild5, ++/*295470*/ OPC_CheckInteger, 1, ++/*295472*/ OPC_CheckType, MVT::i32, ++/*295474*/ OPC_MoveParent, ++/*295475*/ OPC_MoveChild6, ++/*295476*/ OPC_CheckInteger, 1, ++/*295478*/ OPC_CheckType, MVT::i32, ++/*295480*/ OPC_MoveParent, ++/*295481*/ OPC_MoveChild7, ++/*295482*/ OPC_CheckInteger, 1, ++/*295484*/ OPC_CheckType, MVT::i32, ++/*295486*/ OPC_MoveParent, ++/*295487*/ OPC_MoveChild, 8, ++/*295489*/ OPC_CheckInteger, 1, ++/*295491*/ OPC_CheckType, MVT::i32, ++/*295493*/ OPC_MoveParent, ++/*295494*/ OPC_MoveChild, 9, ++/*295496*/ OPC_CheckInteger, 1, ++/*295498*/ OPC_CheckType, MVT::i32, ++/*295500*/ OPC_MoveParent, ++/*295501*/ OPC_MoveChild, 10, ++/*295503*/ OPC_CheckInteger, 1, ++/*295505*/ OPC_CheckType, MVT::i32, ++/*295507*/ OPC_MoveParent, ++/*295508*/ OPC_MoveChild, 11, ++/*295510*/ OPC_CheckInteger, 1, ++/*295512*/ OPC_CheckType, MVT::i32, ++/*295514*/ OPC_MoveParent, ++/*295515*/ OPC_MoveChild, 12, ++/*295517*/ OPC_CheckInteger, 1, ++/*295519*/ OPC_CheckType, MVT::i32, ++/*295521*/ OPC_MoveParent, ++/*295522*/ OPC_MoveChild, 13, ++/*295524*/ OPC_CheckInteger, 1, ++/*295526*/ OPC_CheckType, MVT::i32, ++/*295528*/ OPC_MoveParent, ++/*295529*/ OPC_MoveChild, 14, ++/*295531*/ OPC_CheckInteger, 1, ++/*295533*/ OPC_CheckType, MVT::i32, ++/*295535*/ OPC_MoveParent, ++/*295536*/ OPC_MoveChild, 15, ++/*295538*/ OPC_CheckInteger, 1, ++/*295540*/ OPC_CheckType, MVT::i32, ++/*295542*/ OPC_MoveParent, ++/*295543*/ OPC_MoveChild, 16, ++/*295545*/ OPC_CheckInteger, 1, ++/*295547*/ OPC_CheckType, MVT::i32, ++/*295549*/ OPC_MoveParent, ++/*295550*/ OPC_MoveChild, 17, ++/*295552*/ OPC_CheckInteger, 1, ++/*295554*/ OPC_CheckType, MVT::i32, ++/*295556*/ OPC_MoveParent, ++/*295557*/ OPC_MoveChild, 18, ++/*295559*/ OPC_CheckInteger, 1, ++/*295561*/ OPC_CheckType, MVT::i32, ++/*295563*/ OPC_MoveParent, ++/*295564*/ OPC_MoveChild, 19, ++/*295566*/ OPC_CheckInteger, 1, ++/*295568*/ OPC_CheckType, MVT::i32, ++/*295570*/ OPC_MoveParent, ++/*295571*/ OPC_MoveChild, 20, ++/*295573*/ OPC_CheckInteger, 1, ++/*295575*/ OPC_CheckType, MVT::i32, ++/*295577*/ OPC_MoveParent, ++/*295578*/ OPC_MoveChild, 21, ++/*295580*/ OPC_CheckInteger, 1, ++/*295582*/ OPC_CheckType, MVT::i32, ++/*295584*/ OPC_MoveParent, ++/*295585*/ OPC_MoveChild, 22, ++/*295587*/ OPC_CheckInteger, 1, ++/*295589*/ OPC_CheckType, MVT::i32, ++/*295591*/ OPC_MoveParent, ++/*295592*/ OPC_MoveChild, 23, ++/*295594*/ OPC_CheckInteger, 1, ++/*295596*/ OPC_CheckType, MVT::i32, ++/*295598*/ OPC_MoveParent, ++/*295599*/ OPC_MoveChild, 24, ++/*295601*/ OPC_CheckInteger, 1, ++/*295603*/ OPC_CheckType, MVT::i32, ++/*295605*/ OPC_MoveParent, ++/*295606*/ OPC_MoveChild, 25, ++/*295608*/ OPC_CheckInteger, 1, ++/*295610*/ OPC_CheckType, MVT::i32, ++/*295612*/ OPC_MoveParent, ++/*295613*/ OPC_MoveChild, 26, ++/*295615*/ OPC_CheckInteger, 1, ++/*295617*/ OPC_CheckType, MVT::i32, ++/*295619*/ OPC_MoveParent, ++/*295620*/ OPC_MoveChild, 27, ++/*295622*/ OPC_CheckInteger, 1, ++/*295624*/ OPC_CheckType, MVT::i32, ++/*295626*/ OPC_MoveParent, ++/*295627*/ OPC_MoveChild, 28, ++/*295629*/ OPC_CheckInteger, 1, ++/*295631*/ OPC_CheckType, MVT::i32, ++/*295633*/ OPC_MoveParent, ++/*295634*/ OPC_MoveChild, 29, ++/*295636*/ OPC_CheckInteger, 1, ++/*295638*/ OPC_CheckType, MVT::i32, ++/*295640*/ OPC_MoveParent, ++/*295641*/ OPC_MoveChild, 30, ++/*295643*/ OPC_CheckInteger, 1, ++/*295645*/ OPC_CheckType, MVT::i32, ++/*295647*/ OPC_MoveParent, ++/*295648*/ OPC_MoveChild, 31, ++/*295650*/ OPC_CheckInteger, 1, ++/*295652*/ OPC_CheckType, MVT::i32, ++/*295654*/ OPC_MoveParent, ++/*295655*/ OPC_MoveParent, ++/*295656*/ OPC_MoveChild1, ++/*295657*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*295660*/ OPC_Scope, 104|128,1/*232*/, /*->295895*/ // 2 children in Scope ++/*295663*/ OPC_CheckChild0Same, 1, ++/*295665*/ OPC_CheckChild1Same, 0, ++/*295667*/ OPC_MoveParent, ++/*295668*/ OPC_MoveParent, ++/*295669*/ OPC_MoveParent, ++/*295670*/ OPC_MoveChild1, ++/*295671*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*295674*/ OPC_CheckChild0Integer, 1, ++/*295676*/ OPC_CheckChild0Type, MVT::i32, ++/*295678*/ OPC_CheckChild1Integer, 1, ++/*295680*/ OPC_CheckChild1Type, MVT::i32, ++/*295682*/ OPC_CheckChild2Integer, 1, ++/*295684*/ OPC_CheckChild2Type, MVT::i32, ++/*295686*/ OPC_CheckChild3Integer, 1, ++/*295688*/ OPC_CheckChild3Type, MVT::i32, ++/*295690*/ OPC_CheckChild4Integer, 1, ++/*295692*/ OPC_CheckChild4Type, MVT::i32, ++/*295694*/ OPC_MoveChild5, ++/*295695*/ OPC_CheckInteger, 1, ++/*295697*/ OPC_CheckType, MVT::i32, ++/*295699*/ OPC_MoveParent, ++/*295700*/ OPC_MoveChild6, ++/*295701*/ OPC_CheckInteger, 1, ++/*295703*/ OPC_CheckType, MVT::i32, ++/*295705*/ OPC_MoveParent, ++/*295706*/ OPC_MoveChild7, ++/*295707*/ OPC_CheckInteger, 1, ++/*295709*/ OPC_CheckType, MVT::i32, ++/*295711*/ OPC_MoveParent, ++/*295712*/ OPC_MoveChild, 8, ++/*295714*/ OPC_CheckInteger, 1, ++/*295716*/ OPC_CheckType, MVT::i32, ++/*295718*/ OPC_MoveParent, ++/*295719*/ OPC_MoveChild, 9, ++/*295721*/ OPC_CheckInteger, 1, ++/*295723*/ OPC_CheckType, MVT::i32, ++/*295725*/ OPC_MoveParent, ++/*295726*/ OPC_MoveChild, 10, ++/*295728*/ OPC_CheckInteger, 1, ++/*295730*/ OPC_CheckType, MVT::i32, ++/*295732*/ OPC_MoveParent, ++/*295733*/ OPC_MoveChild, 11, ++/*295735*/ OPC_CheckInteger, 1, ++/*295737*/ OPC_CheckType, MVT::i32, ++/*295739*/ OPC_MoveParent, ++/*295740*/ OPC_MoveChild, 12, ++/*295742*/ OPC_CheckInteger, 1, ++/*295744*/ OPC_CheckType, MVT::i32, ++/*295746*/ OPC_MoveParent, ++/*295747*/ OPC_MoveChild, 13, ++/*295749*/ OPC_CheckInteger, 1, ++/*295751*/ OPC_CheckType, MVT::i32, ++/*295753*/ OPC_MoveParent, ++/*295754*/ OPC_MoveChild, 14, ++/*295756*/ OPC_CheckInteger, 1, ++/*295758*/ OPC_CheckType, MVT::i32, ++/*295760*/ OPC_MoveParent, ++/*295761*/ OPC_MoveChild, 15, ++/*295763*/ OPC_CheckInteger, 1, ++/*295765*/ OPC_CheckType, MVT::i32, ++/*295767*/ OPC_MoveParent, ++/*295768*/ OPC_MoveChild, 16, ++/*295770*/ OPC_CheckInteger, 1, ++/*295772*/ OPC_CheckType, MVT::i32, ++/*295774*/ OPC_MoveParent, ++/*295775*/ OPC_MoveChild, 17, ++/*295777*/ OPC_CheckInteger, 1, ++/*295779*/ OPC_CheckType, MVT::i32, ++/*295781*/ OPC_MoveParent, ++/*295782*/ OPC_MoveChild, 18, ++/*295784*/ OPC_CheckInteger, 1, ++/*295786*/ OPC_CheckType, MVT::i32, ++/*295788*/ OPC_MoveParent, ++/*295789*/ OPC_MoveChild, 19, ++/*295791*/ OPC_CheckInteger, 1, ++/*295793*/ OPC_CheckType, MVT::i32, ++/*295795*/ OPC_MoveParent, ++/*295796*/ OPC_MoveChild, 20, ++/*295798*/ OPC_CheckInteger, 1, ++/*295800*/ OPC_CheckType, MVT::i32, ++/*295802*/ OPC_MoveParent, ++/*295803*/ OPC_MoveChild, 21, ++/*295805*/ OPC_CheckInteger, 1, ++/*295807*/ OPC_CheckType, MVT::i32, ++/*295809*/ OPC_MoveParent, ++/*295810*/ OPC_MoveChild, 22, ++/*295812*/ OPC_CheckInteger, 1, ++/*295814*/ OPC_CheckType, MVT::i32, ++/*295816*/ OPC_MoveParent, ++/*295817*/ OPC_MoveChild, 23, ++/*295819*/ OPC_CheckInteger, 1, ++/*295821*/ OPC_CheckType, MVT::i32, ++/*295823*/ OPC_MoveParent, ++/*295824*/ OPC_MoveChild, 24, ++/*295826*/ OPC_CheckInteger, 1, ++/*295828*/ OPC_CheckType, MVT::i32, ++/*295830*/ OPC_MoveParent, ++/*295831*/ OPC_MoveChild, 25, ++/*295833*/ OPC_CheckInteger, 1, ++/*295835*/ OPC_CheckType, MVT::i32, ++/*295837*/ OPC_MoveParent, ++/*295838*/ OPC_MoveChild, 26, ++/*295840*/ OPC_CheckInteger, 1, ++/*295842*/ OPC_CheckType, MVT::i32, ++/*295844*/ OPC_MoveParent, ++/*295845*/ OPC_MoveChild, 27, ++/*295847*/ OPC_CheckInteger, 1, ++/*295849*/ OPC_CheckType, MVT::i32, ++/*295851*/ OPC_MoveParent, ++/*295852*/ OPC_MoveChild, 28, ++/*295854*/ OPC_CheckInteger, 1, ++/*295856*/ OPC_CheckType, MVT::i32, ++/*295858*/ OPC_MoveParent, ++/*295859*/ OPC_MoveChild, 29, ++/*295861*/ OPC_CheckInteger, 1, ++/*295863*/ OPC_CheckType, MVT::i32, ++/*295865*/ OPC_MoveParent, ++/*295866*/ OPC_MoveChild, 30, ++/*295868*/ OPC_CheckInteger, 1, ++/*295870*/ OPC_CheckType, MVT::i32, ++/*295872*/ OPC_MoveParent, ++/*295873*/ OPC_MoveChild, 31, ++/*295875*/ OPC_CheckInteger, 1, ++/*295877*/ OPC_CheckType, MVT::i32, ++/*295879*/ OPC_MoveParent, ++/*295880*/ OPC_CheckType, MVT::v32i8, ++/*295882*/ OPC_MoveParent, ++/*295883*/ OPC_CheckType, MVT::v32i8, ++/*295885*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*295887*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*295895*/ /*Scope*/ 104|128,1/*232*/, /*->296129*/ ++/*295897*/ OPC_CheckChild0Same, 0, ++/*295899*/ OPC_CheckChild1Same, 1, ++/*295901*/ OPC_MoveParent, ++/*295902*/ OPC_MoveParent, ++/*295903*/ OPC_MoveParent, ++/*295904*/ OPC_MoveChild1, ++/*295905*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*295908*/ OPC_CheckChild0Integer, 1, ++/*295910*/ OPC_CheckChild0Type, MVT::i32, ++/*295912*/ OPC_CheckChild1Integer, 1, ++/*295914*/ OPC_CheckChild1Type, MVT::i32, ++/*295916*/ OPC_CheckChild2Integer, 1, ++/*295918*/ OPC_CheckChild2Type, MVT::i32, ++/*295920*/ OPC_CheckChild3Integer, 1, ++/*295922*/ OPC_CheckChild3Type, MVT::i32, ++/*295924*/ OPC_CheckChild4Integer, 1, ++/*295926*/ OPC_CheckChild4Type, MVT::i32, ++/*295928*/ OPC_MoveChild5, ++/*295929*/ OPC_CheckInteger, 1, ++/*295931*/ OPC_CheckType, MVT::i32, ++/*295933*/ OPC_MoveParent, ++/*295934*/ OPC_MoveChild6, ++/*295935*/ OPC_CheckInteger, 1, ++/*295937*/ OPC_CheckType, MVT::i32, ++/*295939*/ OPC_MoveParent, ++/*295940*/ OPC_MoveChild7, ++/*295941*/ OPC_CheckInteger, 1, ++/*295943*/ OPC_CheckType, MVT::i32, ++/*295945*/ OPC_MoveParent, ++/*295946*/ OPC_MoveChild, 8, ++/*295948*/ OPC_CheckInteger, 1, ++/*295950*/ OPC_CheckType, MVT::i32, ++/*295952*/ OPC_MoveParent, ++/*295953*/ OPC_MoveChild, 9, ++/*295955*/ OPC_CheckInteger, 1, ++/*295957*/ OPC_CheckType, MVT::i32, ++/*295959*/ OPC_MoveParent, ++/*295960*/ OPC_MoveChild, 10, ++/*295962*/ OPC_CheckInteger, 1, ++/*295964*/ OPC_CheckType, MVT::i32, ++/*295966*/ OPC_MoveParent, ++/*295967*/ OPC_MoveChild, 11, ++/*295969*/ OPC_CheckInteger, 1, ++/*295971*/ OPC_CheckType, MVT::i32, ++/*295973*/ OPC_MoveParent, ++/*295974*/ OPC_MoveChild, 12, ++/*295976*/ OPC_CheckInteger, 1, ++/*295978*/ OPC_CheckType, MVT::i32, ++/*295980*/ OPC_MoveParent, ++/*295981*/ OPC_MoveChild, 13, ++/*295983*/ OPC_CheckInteger, 1, ++/*295985*/ OPC_CheckType, MVT::i32, ++/*295987*/ OPC_MoveParent, ++/*295988*/ OPC_MoveChild, 14, ++/*295990*/ OPC_CheckInteger, 1, ++/*295992*/ OPC_CheckType, MVT::i32, ++/*295994*/ OPC_MoveParent, ++/*295995*/ OPC_MoveChild, 15, ++/*295997*/ OPC_CheckInteger, 1, ++/*295999*/ OPC_CheckType, MVT::i32, ++/*296001*/ OPC_MoveParent, ++/*296002*/ OPC_MoveChild, 16, ++/*296004*/ OPC_CheckInteger, 1, ++/*296006*/ OPC_CheckType, MVT::i32, ++/*296008*/ OPC_MoveParent, ++/*296009*/ OPC_MoveChild, 17, ++/*296011*/ OPC_CheckInteger, 1, ++/*296013*/ OPC_CheckType, MVT::i32, ++/*296015*/ OPC_MoveParent, ++/*296016*/ OPC_MoveChild, 18, ++/*296018*/ OPC_CheckInteger, 1, ++/*296020*/ OPC_CheckType, MVT::i32, ++/*296022*/ OPC_MoveParent, ++/*296023*/ OPC_MoveChild, 19, ++/*296025*/ OPC_CheckInteger, 1, ++/*296027*/ OPC_CheckType, MVT::i32, ++/*296029*/ OPC_MoveParent, ++/*296030*/ OPC_MoveChild, 20, ++/*296032*/ OPC_CheckInteger, 1, ++/*296034*/ OPC_CheckType, MVT::i32, ++/*296036*/ OPC_MoveParent, ++/*296037*/ OPC_MoveChild, 21, ++/*296039*/ OPC_CheckInteger, 1, ++/*296041*/ OPC_CheckType, MVT::i32, ++/*296043*/ OPC_MoveParent, ++/*296044*/ OPC_MoveChild, 22, ++/*296046*/ OPC_CheckInteger, 1, ++/*296048*/ OPC_CheckType, MVT::i32, ++/*296050*/ OPC_MoveParent, ++/*296051*/ OPC_MoveChild, 23, ++/*296053*/ OPC_CheckInteger, 1, ++/*296055*/ OPC_CheckType, MVT::i32, ++/*296057*/ OPC_MoveParent, ++/*296058*/ OPC_MoveChild, 24, ++/*296060*/ OPC_CheckInteger, 1, ++/*296062*/ OPC_CheckType, MVT::i32, ++/*296064*/ OPC_MoveParent, ++/*296065*/ OPC_MoveChild, 25, ++/*296067*/ OPC_CheckInteger, 1, ++/*296069*/ OPC_CheckType, MVT::i32, ++/*296071*/ OPC_MoveParent, ++/*296072*/ OPC_MoveChild, 26, ++/*296074*/ OPC_CheckInteger, 1, ++/*296076*/ OPC_CheckType, MVT::i32, ++/*296078*/ OPC_MoveParent, ++/*296079*/ OPC_MoveChild, 27, ++/*296081*/ OPC_CheckInteger, 1, ++/*296083*/ OPC_CheckType, MVT::i32, ++/*296085*/ OPC_MoveParent, ++/*296086*/ OPC_MoveChild, 28, ++/*296088*/ OPC_CheckInteger, 1, ++/*296090*/ OPC_CheckType, MVT::i32, ++/*296092*/ OPC_MoveParent, ++/*296093*/ OPC_MoveChild, 29, ++/*296095*/ OPC_CheckInteger, 1, ++/*296097*/ OPC_CheckType, MVT::i32, ++/*296099*/ OPC_MoveParent, ++/*296100*/ OPC_MoveChild, 30, ++/*296102*/ OPC_CheckInteger, 1, ++/*296104*/ OPC_CheckType, MVT::i32, ++/*296106*/ OPC_MoveParent, ++/*296107*/ OPC_MoveChild, 31, ++/*296109*/ OPC_CheckInteger, 1, ++/*296111*/ OPC_CheckType, MVT::i32, ++/*296113*/ OPC_MoveParent, ++/*296114*/ OPC_CheckType, MVT::v32i8, ++/*296116*/ OPC_MoveParent, ++/*296117*/ OPC_CheckType, MVT::v32i8, ++/*296119*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*296121*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*296129*/ 0, /*End of Scope*/ ++/*296130*/ 0, /*End of Scope*/ ++/*296131*/ /*Scope*/ 125|128,83/*10749*/, /*->306882*/ ++/*296133*/ OPC_RecordChild1, // #1 = $b ++/*296134*/ OPC_MoveParent, ++/*296135*/ OPC_MoveChild1, ++/*296136*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*296139*/ OPC_CheckChild0Integer, 1, ++/*296141*/ OPC_CheckChild0Type, MVT::i32, ++/*296143*/ OPC_CheckChild1Integer, 1, ++/*296145*/ OPC_CheckChild1Type, MVT::i32, ++/*296147*/ OPC_CheckChild2Integer, 1, ++/*296149*/ OPC_CheckChild2Type, MVT::i32, ++/*296151*/ OPC_CheckChild3Integer, 1, ++/*296153*/ OPC_CheckChild3Type, MVT::i32, ++/*296155*/ OPC_CheckChild4Integer, 1, ++/*296157*/ OPC_CheckChild4Type, MVT::i32, ++/*296159*/ OPC_MoveChild5, ++/*296160*/ OPC_CheckInteger, 1, ++/*296162*/ OPC_CheckType, MVT::i32, ++/*296164*/ OPC_MoveParent, ++/*296165*/ OPC_MoveChild6, ++/*296166*/ OPC_CheckInteger, 1, ++/*296168*/ OPC_CheckType, MVT::i32, ++/*296170*/ OPC_MoveParent, ++/*296171*/ OPC_MoveChild7, ++/*296172*/ OPC_CheckInteger, 1, ++/*296174*/ OPC_CheckType, MVT::i32, ++/*296176*/ OPC_MoveParent, ++/*296177*/ OPC_MoveChild, 8, ++/*296179*/ OPC_CheckInteger, 1, ++/*296181*/ OPC_CheckType, MVT::i32, ++/*296183*/ OPC_MoveParent, ++/*296184*/ OPC_MoveChild, 9, ++/*296186*/ OPC_CheckInteger, 1, ++/*296188*/ OPC_CheckType, MVT::i32, ++/*296190*/ OPC_MoveParent, ++/*296191*/ OPC_MoveChild, 10, ++/*296193*/ OPC_CheckInteger, 1, ++/*296195*/ OPC_CheckType, MVT::i32, ++/*296197*/ OPC_MoveParent, ++/*296198*/ OPC_MoveChild, 11, ++/*296200*/ OPC_CheckInteger, 1, ++/*296202*/ OPC_CheckType, MVT::i32, ++/*296204*/ OPC_MoveParent, ++/*296205*/ OPC_MoveChild, 12, ++/*296207*/ OPC_CheckInteger, 1, ++/*296209*/ OPC_CheckType, MVT::i32, ++/*296211*/ OPC_MoveParent, ++/*296212*/ OPC_MoveChild, 13, ++/*296214*/ OPC_CheckInteger, 1, ++/*296216*/ OPC_CheckType, MVT::i32, ++/*296218*/ OPC_MoveParent, ++/*296219*/ OPC_MoveChild, 14, ++/*296221*/ OPC_CheckInteger, 1, ++/*296223*/ OPC_CheckType, MVT::i32, ++/*296225*/ OPC_MoveParent, ++/*296226*/ OPC_MoveChild, 15, ++/*296228*/ OPC_CheckInteger, 1, ++/*296230*/ OPC_CheckType, MVT::i32, ++/*296232*/ OPC_MoveParent, ++/*296233*/ OPC_MoveChild, 16, ++/*296235*/ OPC_CheckInteger, 1, ++/*296237*/ OPC_CheckType, MVT::i32, ++/*296239*/ OPC_MoveParent, ++/*296240*/ OPC_MoveChild, 17, ++/*296242*/ OPC_CheckInteger, 1, ++/*296244*/ OPC_CheckType, MVT::i32, ++/*296246*/ OPC_MoveParent, ++/*296247*/ OPC_MoveChild, 18, ++/*296249*/ OPC_CheckInteger, 1, ++/*296251*/ OPC_CheckType, MVT::i32, ++/*296253*/ OPC_MoveParent, ++/*296254*/ OPC_MoveChild, 19, ++/*296256*/ OPC_CheckInteger, 1, ++/*296258*/ OPC_CheckType, MVT::i32, ++/*296260*/ OPC_MoveParent, ++/*296261*/ OPC_MoveChild, 20, ++/*296263*/ OPC_CheckInteger, 1, ++/*296265*/ OPC_CheckType, MVT::i32, ++/*296267*/ OPC_MoveParent, ++/*296268*/ OPC_MoveChild, 21, ++/*296270*/ OPC_CheckInteger, 1, ++/*296272*/ OPC_CheckType, MVT::i32, ++/*296274*/ OPC_MoveParent, ++/*296275*/ OPC_MoveChild, 22, ++/*296277*/ OPC_CheckInteger, 1, ++/*296279*/ OPC_CheckType, MVT::i32, ++/*296281*/ OPC_MoveParent, ++/*296282*/ OPC_MoveChild, 23, ++/*296284*/ OPC_CheckInteger, 1, ++/*296286*/ OPC_CheckType, MVT::i32, ++/*296288*/ OPC_MoveParent, ++/*296289*/ OPC_MoveChild, 24, ++/*296291*/ OPC_CheckInteger, 1, ++/*296293*/ OPC_CheckType, MVT::i32, ++/*296295*/ OPC_MoveParent, ++/*296296*/ OPC_MoveChild, 25, ++/*296298*/ OPC_CheckInteger, 1, ++/*296300*/ OPC_CheckType, MVT::i32, ++/*296302*/ OPC_MoveParent, ++/*296303*/ OPC_MoveChild, 26, ++/*296305*/ OPC_CheckInteger, 1, ++/*296307*/ OPC_CheckType, MVT::i32, ++/*296309*/ OPC_MoveParent, ++/*296310*/ OPC_MoveChild, 27, ++/*296312*/ OPC_CheckInteger, 1, ++/*296314*/ OPC_CheckType, MVT::i32, ++/*296316*/ OPC_MoveParent, ++/*296317*/ OPC_MoveChild, 28, ++/*296319*/ OPC_CheckInteger, 1, ++/*296321*/ OPC_CheckType, MVT::i32, ++/*296323*/ OPC_MoveParent, ++/*296324*/ OPC_MoveChild, 29, ++/*296326*/ OPC_CheckInteger, 1, ++/*296328*/ OPC_CheckType, MVT::i32, ++/*296330*/ OPC_MoveParent, ++/*296331*/ OPC_MoveChild, 30, ++/*296333*/ OPC_CheckInteger, 1, ++/*296335*/ OPC_CheckType, MVT::i32, ++/*296337*/ OPC_MoveParent, ++/*296338*/ OPC_MoveChild, 31, ++/*296340*/ OPC_CheckInteger, 1, ++/*296342*/ OPC_CheckType, MVT::i32, ++/*296344*/ OPC_MoveParent, ++/*296345*/ OPC_MoveParent, ++/*296346*/ OPC_MoveParent, ++/*296347*/ OPC_MoveChild1, ++/*296348*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*296351*/ OPC_CheckChild0Integer, 7, ++/*296353*/ OPC_CheckChild0Type, MVT::i32, ++/*296355*/ OPC_CheckChild1Integer, 7, ++/*296357*/ OPC_CheckChild1Type, MVT::i32, ++/*296359*/ OPC_CheckChild2Integer, 7, ++/*296361*/ OPC_CheckChild2Type, MVT::i32, ++/*296363*/ OPC_CheckChild3Integer, 7, ++/*296365*/ OPC_CheckChild3Type, MVT::i32, ++/*296367*/ OPC_CheckChild4Integer, 7, ++/*296369*/ OPC_CheckChild4Type, MVT::i32, ++/*296371*/ OPC_MoveChild5, ++/*296372*/ OPC_CheckInteger, 7, ++/*296374*/ OPC_CheckType, MVT::i32, ++/*296376*/ OPC_MoveParent, ++/*296377*/ OPC_MoveChild6, ++/*296378*/ OPC_CheckInteger, 7, ++/*296380*/ OPC_CheckType, MVT::i32, ++/*296382*/ OPC_MoveParent, ++/*296383*/ OPC_MoveChild7, ++/*296384*/ OPC_CheckInteger, 7, ++/*296386*/ OPC_CheckType, MVT::i32, ++/*296388*/ OPC_MoveParent, ++/*296389*/ OPC_MoveChild, 8, ++/*296391*/ OPC_CheckInteger, 7, ++/*296393*/ OPC_CheckType, MVT::i32, ++/*296395*/ OPC_MoveParent, ++/*296396*/ OPC_MoveChild, 9, ++/*296398*/ OPC_CheckInteger, 7, ++/*296400*/ OPC_CheckType, MVT::i32, ++/*296402*/ OPC_MoveParent, ++/*296403*/ OPC_MoveChild, 10, ++/*296405*/ OPC_CheckInteger, 7, ++/*296407*/ OPC_CheckType, MVT::i32, ++/*296409*/ OPC_MoveParent, ++/*296410*/ OPC_MoveChild, 11, ++/*296412*/ OPC_CheckInteger, 7, ++/*296414*/ OPC_CheckType, MVT::i32, ++/*296416*/ OPC_MoveParent, ++/*296417*/ OPC_MoveChild, 12, ++/*296419*/ OPC_CheckInteger, 7, ++/*296421*/ OPC_CheckType, MVT::i32, ++/*296423*/ OPC_MoveParent, ++/*296424*/ OPC_MoveChild, 13, ++/*296426*/ OPC_CheckInteger, 7, ++/*296428*/ OPC_CheckType, MVT::i32, ++/*296430*/ OPC_MoveParent, ++/*296431*/ OPC_MoveChild, 14, ++/*296433*/ OPC_CheckInteger, 7, ++/*296435*/ OPC_CheckType, MVT::i32, ++/*296437*/ OPC_MoveParent, ++/*296438*/ OPC_MoveChild, 15, ++/*296440*/ OPC_CheckInteger, 7, ++/*296442*/ OPC_CheckType, MVT::i32, ++/*296444*/ OPC_MoveParent, ++/*296445*/ OPC_MoveChild, 16, ++/*296447*/ OPC_CheckInteger, 7, ++/*296449*/ OPC_CheckType, MVT::i32, ++/*296451*/ OPC_MoveParent, ++/*296452*/ OPC_MoveChild, 17, ++/*296454*/ OPC_CheckInteger, 7, ++/*296456*/ OPC_CheckType, MVT::i32, ++/*296458*/ OPC_MoveParent, ++/*296459*/ OPC_MoveChild, 18, ++/*296461*/ OPC_CheckInteger, 7, ++/*296463*/ OPC_CheckType, MVT::i32, ++/*296465*/ OPC_MoveParent, ++/*296466*/ OPC_MoveChild, 19, ++/*296468*/ OPC_CheckInteger, 7, ++/*296470*/ OPC_CheckType, MVT::i32, ++/*296472*/ OPC_MoveParent, ++/*296473*/ OPC_MoveChild, 20, ++/*296475*/ OPC_CheckInteger, 7, ++/*296477*/ OPC_CheckType, MVT::i32, ++/*296479*/ OPC_MoveParent, ++/*296480*/ OPC_MoveChild, 21, ++/*296482*/ OPC_CheckInteger, 7, ++/*296484*/ OPC_CheckType, MVT::i32, ++/*296486*/ OPC_MoveParent, ++/*296487*/ OPC_MoveChild, 22, ++/*296489*/ OPC_CheckInteger, 7, ++/*296491*/ OPC_CheckType, MVT::i32, ++/*296493*/ OPC_MoveParent, ++/*296494*/ OPC_MoveChild, 23, ++/*296496*/ OPC_CheckInteger, 7, ++/*296498*/ OPC_CheckType, MVT::i32, ++/*296500*/ OPC_MoveParent, ++/*296501*/ OPC_MoveChild, 24, ++/*296503*/ OPC_CheckInteger, 7, ++/*296505*/ OPC_CheckType, MVT::i32, ++/*296507*/ OPC_MoveParent, ++/*296508*/ OPC_MoveChild, 25, ++/*296510*/ OPC_CheckInteger, 7, ++/*296512*/ OPC_CheckType, MVT::i32, ++/*296514*/ OPC_MoveParent, ++/*296515*/ OPC_MoveChild, 26, ++/*296517*/ OPC_CheckInteger, 7, ++/*296519*/ OPC_CheckType, MVT::i32, ++/*296521*/ OPC_MoveParent, ++/*296522*/ OPC_MoveChild, 27, ++/*296524*/ OPC_CheckInteger, 7, ++/*296526*/ OPC_CheckType, MVT::i32, ++/*296528*/ OPC_MoveParent, ++/*296529*/ OPC_MoveChild, 28, ++/*296531*/ OPC_CheckInteger, 7, ++/*296533*/ OPC_CheckType, MVT::i32, ++/*296535*/ OPC_MoveParent, ++/*296536*/ OPC_MoveChild, 29, ++/*296538*/ OPC_CheckInteger, 7, ++/*296540*/ OPC_CheckType, MVT::i32, ++/*296542*/ OPC_MoveParent, ++/*296543*/ OPC_MoveChild, 30, ++/*296545*/ OPC_CheckInteger, 7, ++/*296547*/ OPC_CheckType, MVT::i32, ++/*296549*/ OPC_MoveParent, ++/*296550*/ OPC_MoveChild, 31, ++/*296552*/ OPC_CheckInteger, 7, ++/*296554*/ OPC_CheckType, MVT::i32, ++/*296556*/ OPC_MoveParent, ++/*296557*/ OPC_CheckType, MVT::v32i8, ++/*296559*/ OPC_MoveParent, ++/*296560*/ OPC_MoveParent, ++/*296561*/ OPC_MoveChild1, ++/*296562*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*296565*/ OPC_Scope, 116|128,20/*2676*/, /*->299244*/ // 7 children in Scope ++/*296568*/ OPC_MoveChild0, ++/*296569*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*296572*/ OPC_Scope, 59|128,3/*443*/, /*->297018*/ // 6 children in Scope ++/*296575*/ OPC_MoveChild0, ++/*296576*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*296579*/ OPC_CheckChild0Integer, 1, ++/*296581*/ OPC_CheckChild0Type, MVT::i32, ++/*296583*/ OPC_CheckChild1Integer, 1, ++/*296585*/ OPC_CheckChild1Type, MVT::i32, ++/*296587*/ OPC_CheckChild2Integer, 1, ++/*296589*/ OPC_CheckChild2Type, MVT::i32, ++/*296591*/ OPC_CheckChild3Integer, 1, ++/*296593*/ OPC_CheckChild3Type, MVT::i32, ++/*296595*/ OPC_CheckChild4Integer, 1, ++/*296597*/ OPC_CheckChild4Type, MVT::i32, ++/*296599*/ OPC_MoveChild5, ++/*296600*/ OPC_CheckInteger, 1, ++/*296602*/ OPC_CheckType, MVT::i32, ++/*296604*/ OPC_MoveParent, ++/*296605*/ OPC_MoveChild6, ++/*296606*/ OPC_CheckInteger, 1, ++/*296608*/ OPC_CheckType, MVT::i32, ++/*296610*/ OPC_MoveParent, ++/*296611*/ OPC_MoveChild7, ++/*296612*/ OPC_CheckInteger, 1, ++/*296614*/ OPC_CheckType, MVT::i32, ++/*296616*/ OPC_MoveParent, ++/*296617*/ OPC_MoveChild, 8, ++/*296619*/ OPC_CheckInteger, 1, ++/*296621*/ OPC_CheckType, MVT::i32, ++/*296623*/ OPC_MoveParent, ++/*296624*/ OPC_MoveChild, 9, ++/*296626*/ OPC_CheckInteger, 1, ++/*296628*/ OPC_CheckType, MVT::i32, ++/*296630*/ OPC_MoveParent, ++/*296631*/ OPC_MoveChild, 10, ++/*296633*/ OPC_CheckInteger, 1, ++/*296635*/ OPC_CheckType, MVT::i32, ++/*296637*/ OPC_MoveParent, ++/*296638*/ OPC_MoveChild, 11, ++/*296640*/ OPC_CheckInteger, 1, ++/*296642*/ OPC_CheckType, MVT::i32, ++/*296644*/ OPC_MoveParent, ++/*296645*/ OPC_MoveChild, 12, ++/*296647*/ OPC_CheckInteger, 1, ++/*296649*/ OPC_CheckType, MVT::i32, ++/*296651*/ OPC_MoveParent, ++/*296652*/ OPC_MoveChild, 13, ++/*296654*/ OPC_CheckInteger, 1, ++/*296656*/ OPC_CheckType, MVT::i32, ++/*296658*/ OPC_MoveParent, ++/*296659*/ OPC_MoveChild, 14, ++/*296661*/ OPC_CheckInteger, 1, ++/*296663*/ OPC_CheckType, MVT::i32, ++/*296665*/ OPC_MoveParent, ++/*296666*/ OPC_MoveChild, 15, ++/*296668*/ OPC_CheckInteger, 1, ++/*296670*/ OPC_CheckType, MVT::i32, ++/*296672*/ OPC_MoveParent, ++/*296673*/ OPC_MoveChild, 16, ++/*296675*/ OPC_CheckInteger, 1, ++/*296677*/ OPC_CheckType, MVT::i32, ++/*296679*/ OPC_MoveParent, ++/*296680*/ OPC_MoveChild, 17, ++/*296682*/ OPC_CheckInteger, 1, ++/*296684*/ OPC_CheckType, MVT::i32, ++/*296686*/ OPC_MoveParent, ++/*296687*/ OPC_MoveChild, 18, ++/*296689*/ OPC_CheckInteger, 1, ++/*296691*/ OPC_CheckType, MVT::i32, ++/*296693*/ OPC_MoveParent, ++/*296694*/ OPC_MoveChild, 19, ++/*296696*/ OPC_CheckInteger, 1, ++/*296698*/ OPC_CheckType, MVT::i32, ++/*296700*/ OPC_MoveParent, ++/*296701*/ OPC_MoveChild, 20, ++/*296703*/ OPC_CheckInteger, 1, ++/*296705*/ OPC_CheckType, MVT::i32, ++/*296707*/ OPC_MoveParent, ++/*296708*/ OPC_MoveChild, 21, ++/*296710*/ OPC_CheckInteger, 1, ++/*296712*/ OPC_CheckType, MVT::i32, ++/*296714*/ OPC_MoveParent, ++/*296715*/ OPC_MoveChild, 22, ++/*296717*/ OPC_CheckInteger, 1, ++/*296719*/ OPC_CheckType, MVT::i32, ++/*296721*/ OPC_MoveParent, ++/*296722*/ OPC_MoveChild, 23, ++/*296724*/ OPC_CheckInteger, 1, ++/*296726*/ OPC_CheckType, MVT::i32, ++/*296728*/ OPC_MoveParent, ++/*296729*/ OPC_MoveChild, 24, ++/*296731*/ OPC_CheckInteger, 1, ++/*296733*/ OPC_CheckType, MVT::i32, ++/*296735*/ OPC_MoveParent, ++/*296736*/ OPC_MoveChild, 25, ++/*296738*/ OPC_CheckInteger, 1, ++/*296740*/ OPC_CheckType, MVT::i32, ++/*296742*/ OPC_MoveParent, ++/*296743*/ OPC_MoveChild, 26, ++/*296745*/ OPC_CheckInteger, 1, ++/*296747*/ OPC_CheckType, MVT::i32, ++/*296749*/ OPC_MoveParent, ++/*296750*/ OPC_MoveChild, 27, ++/*296752*/ OPC_CheckInteger, 1, ++/*296754*/ OPC_CheckType, MVT::i32, ++/*296756*/ OPC_MoveParent, ++/*296757*/ OPC_MoveChild, 28, ++/*296759*/ OPC_CheckInteger, 1, ++/*296761*/ OPC_CheckType, MVT::i32, ++/*296763*/ OPC_MoveParent, ++/*296764*/ OPC_MoveChild, 29, ++/*296766*/ OPC_CheckInteger, 1, ++/*296768*/ OPC_CheckType, MVT::i32, ++/*296770*/ OPC_MoveParent, ++/*296771*/ OPC_MoveChild, 30, ++/*296773*/ OPC_CheckInteger, 1, ++/*296775*/ OPC_CheckType, MVT::i32, ++/*296777*/ OPC_MoveParent, ++/*296778*/ OPC_MoveChild, 31, ++/*296780*/ OPC_CheckInteger, 1, ++/*296782*/ OPC_CheckType, MVT::i32, ++/*296784*/ OPC_MoveParent, ++/*296785*/ OPC_MoveParent, ++/*296786*/ OPC_CheckChild1Same, 0, ++/*296788*/ OPC_MoveParent, ++/*296789*/ OPC_CheckChild1Same, 1, ++/*296791*/ OPC_MoveParent, ++/*296792*/ OPC_MoveParent, ++/*296793*/ OPC_MoveChild1, ++/*296794*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*296797*/ OPC_CheckChild0Integer, 1, ++/*296799*/ OPC_CheckChild0Type, MVT::i32, ++/*296801*/ OPC_CheckChild1Integer, 1, ++/*296803*/ OPC_CheckChild1Type, MVT::i32, ++/*296805*/ OPC_CheckChild2Integer, 1, ++/*296807*/ OPC_CheckChild2Type, MVT::i32, ++/*296809*/ OPC_CheckChild3Integer, 1, ++/*296811*/ OPC_CheckChild3Type, MVT::i32, ++/*296813*/ OPC_CheckChild4Integer, 1, ++/*296815*/ OPC_CheckChild4Type, MVT::i32, ++/*296817*/ OPC_MoveChild5, ++/*296818*/ OPC_CheckInteger, 1, ++/*296820*/ OPC_CheckType, MVT::i32, ++/*296822*/ OPC_MoveParent, ++/*296823*/ OPC_MoveChild6, ++/*296824*/ OPC_CheckInteger, 1, ++/*296826*/ OPC_CheckType, MVT::i32, ++/*296828*/ OPC_MoveParent, ++/*296829*/ OPC_MoveChild7, ++/*296830*/ OPC_CheckInteger, 1, ++/*296832*/ OPC_CheckType, MVT::i32, ++/*296834*/ OPC_MoveParent, ++/*296835*/ OPC_MoveChild, 8, ++/*296837*/ OPC_CheckInteger, 1, ++/*296839*/ OPC_CheckType, MVT::i32, ++/*296841*/ OPC_MoveParent, ++/*296842*/ OPC_MoveChild, 9, ++/*296844*/ OPC_CheckInteger, 1, ++/*296846*/ OPC_CheckType, MVT::i32, ++/*296848*/ OPC_MoveParent, ++/*296849*/ OPC_MoveChild, 10, ++/*296851*/ OPC_CheckInteger, 1, ++/*296853*/ OPC_CheckType, MVT::i32, ++/*296855*/ OPC_MoveParent, ++/*296856*/ OPC_MoveChild, 11, ++/*296858*/ OPC_CheckInteger, 1, ++/*296860*/ OPC_CheckType, MVT::i32, ++/*296862*/ OPC_MoveParent, ++/*296863*/ OPC_MoveChild, 12, ++/*296865*/ OPC_CheckInteger, 1, ++/*296867*/ OPC_CheckType, MVT::i32, ++/*296869*/ OPC_MoveParent, ++/*296870*/ OPC_MoveChild, 13, ++/*296872*/ OPC_CheckInteger, 1, ++/*296874*/ OPC_CheckType, MVT::i32, ++/*296876*/ OPC_MoveParent, ++/*296877*/ OPC_MoveChild, 14, ++/*296879*/ OPC_CheckInteger, 1, ++/*296881*/ OPC_CheckType, MVT::i32, ++/*296883*/ OPC_MoveParent, ++/*296884*/ OPC_MoveChild, 15, ++/*296886*/ OPC_CheckInteger, 1, ++/*296888*/ OPC_CheckType, MVT::i32, ++/*296890*/ OPC_MoveParent, ++/*296891*/ OPC_MoveChild, 16, ++/*296893*/ OPC_CheckInteger, 1, ++/*296895*/ OPC_CheckType, MVT::i32, ++/*296897*/ OPC_MoveParent, ++/*296898*/ OPC_MoveChild, 17, ++/*296900*/ OPC_CheckInteger, 1, ++/*296902*/ OPC_CheckType, MVT::i32, ++/*296904*/ OPC_MoveParent, ++/*296905*/ OPC_MoveChild, 18, ++/*296907*/ OPC_CheckInteger, 1, ++/*296909*/ OPC_CheckType, MVT::i32, ++/*296911*/ OPC_MoveParent, ++/*296912*/ OPC_MoveChild, 19, ++/*296914*/ OPC_CheckInteger, 1, ++/*296916*/ OPC_CheckType, MVT::i32, ++/*296918*/ OPC_MoveParent, ++/*296919*/ OPC_MoveChild, 20, ++/*296921*/ OPC_CheckInteger, 1, ++/*296923*/ OPC_CheckType, MVT::i32, ++/*296925*/ OPC_MoveParent, ++/*296926*/ OPC_MoveChild, 21, ++/*296928*/ OPC_CheckInteger, 1, ++/*296930*/ OPC_CheckType, MVT::i32, ++/*296932*/ OPC_MoveParent, ++/*296933*/ OPC_MoveChild, 22, ++/*296935*/ OPC_CheckInteger, 1, ++/*296937*/ OPC_CheckType, MVT::i32, ++/*296939*/ OPC_MoveParent, ++/*296940*/ OPC_MoveChild, 23, ++/*296942*/ OPC_CheckInteger, 1, ++/*296944*/ OPC_CheckType, MVT::i32, ++/*296946*/ OPC_MoveParent, ++/*296947*/ OPC_MoveChild, 24, ++/*296949*/ OPC_CheckInteger, 1, ++/*296951*/ OPC_CheckType, MVT::i32, ++/*296953*/ OPC_MoveParent, ++/*296954*/ OPC_MoveChild, 25, ++/*296956*/ OPC_CheckInteger, 1, ++/*296958*/ OPC_CheckType, MVT::i32, ++/*296960*/ OPC_MoveParent, ++/*296961*/ OPC_MoveChild, 26, ++/*296963*/ OPC_CheckInteger, 1, ++/*296965*/ OPC_CheckType, MVT::i32, ++/*296967*/ OPC_MoveParent, ++/*296968*/ OPC_MoveChild, 27, ++/*296970*/ OPC_CheckInteger, 1, ++/*296972*/ OPC_CheckType, MVT::i32, ++/*296974*/ OPC_MoveParent, ++/*296975*/ OPC_MoveChild, 28, ++/*296977*/ OPC_CheckInteger, 1, ++/*296979*/ OPC_CheckType, MVT::i32, ++/*296981*/ OPC_MoveParent, ++/*296982*/ OPC_MoveChild, 29, ++/*296984*/ OPC_CheckInteger, 1, ++/*296986*/ OPC_CheckType, MVT::i32, ++/*296988*/ OPC_MoveParent, ++/*296989*/ OPC_MoveChild, 30, ++/*296991*/ OPC_CheckInteger, 1, ++/*296993*/ OPC_CheckType, MVT::i32, ++/*296995*/ OPC_MoveParent, ++/*296996*/ OPC_MoveChild, 31, ++/*296998*/ OPC_CheckInteger, 1, ++/*297000*/ OPC_CheckType, MVT::i32, ++/*297002*/ OPC_MoveParent, ++/*297003*/ OPC_CheckType, MVT::v32i8, ++/*297005*/ OPC_MoveParent, ++/*297006*/ OPC_CheckType, MVT::v32i8, ++/*297008*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*297010*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a), LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*297018*/ /*Scope*/ 59|128,3/*443*/, /*->297463*/ ++/*297020*/ OPC_CheckChild0Same, 0, ++/*297022*/ OPC_MoveChild1, ++/*297023*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*297026*/ OPC_CheckChild0Integer, 1, ++/*297028*/ OPC_CheckChild0Type, MVT::i32, ++/*297030*/ OPC_CheckChild1Integer, 1, ++/*297032*/ OPC_CheckChild1Type, MVT::i32, ++/*297034*/ OPC_CheckChild2Integer, 1, ++/*297036*/ OPC_CheckChild2Type, MVT::i32, ++/*297038*/ OPC_CheckChild3Integer, 1, ++/*297040*/ OPC_CheckChild3Type, MVT::i32, ++/*297042*/ OPC_CheckChild4Integer, 1, ++/*297044*/ OPC_CheckChild4Type, MVT::i32, ++/*297046*/ OPC_MoveChild5, ++/*297047*/ OPC_CheckInteger, 1, ++/*297049*/ OPC_CheckType, MVT::i32, ++/*297051*/ OPC_MoveParent, ++/*297052*/ OPC_MoveChild6, ++/*297053*/ OPC_CheckInteger, 1, ++/*297055*/ OPC_CheckType, MVT::i32, ++/*297057*/ OPC_MoveParent, ++/*297058*/ OPC_MoveChild7, ++/*297059*/ OPC_CheckInteger, 1, ++/*297061*/ OPC_CheckType, MVT::i32, ++/*297063*/ OPC_MoveParent, ++/*297064*/ OPC_MoveChild, 8, ++/*297066*/ OPC_CheckInteger, 1, ++/*297068*/ OPC_CheckType, MVT::i32, ++/*297070*/ OPC_MoveParent, ++/*297071*/ OPC_MoveChild, 9, ++/*297073*/ OPC_CheckInteger, 1, ++/*297075*/ OPC_CheckType, MVT::i32, ++/*297077*/ OPC_MoveParent, ++/*297078*/ OPC_MoveChild, 10, ++/*297080*/ OPC_CheckInteger, 1, ++/*297082*/ OPC_CheckType, MVT::i32, ++/*297084*/ OPC_MoveParent, ++/*297085*/ OPC_MoveChild, 11, ++/*297087*/ OPC_CheckInteger, 1, ++/*297089*/ OPC_CheckType, MVT::i32, ++/*297091*/ OPC_MoveParent, ++/*297092*/ OPC_MoveChild, 12, ++/*297094*/ OPC_CheckInteger, 1, ++/*297096*/ OPC_CheckType, MVT::i32, ++/*297098*/ OPC_MoveParent, ++/*297099*/ OPC_MoveChild, 13, ++/*297101*/ OPC_CheckInteger, 1, ++/*297103*/ OPC_CheckType, MVT::i32, ++/*297105*/ OPC_MoveParent, ++/*297106*/ OPC_MoveChild, 14, ++/*297108*/ OPC_CheckInteger, 1, ++/*297110*/ OPC_CheckType, MVT::i32, ++/*297112*/ OPC_MoveParent, ++/*297113*/ OPC_MoveChild, 15, ++/*297115*/ OPC_CheckInteger, 1, ++/*297117*/ OPC_CheckType, MVT::i32, ++/*297119*/ OPC_MoveParent, ++/*297120*/ OPC_MoveChild, 16, ++/*297122*/ OPC_CheckInteger, 1, ++/*297124*/ OPC_CheckType, MVT::i32, ++/*297126*/ OPC_MoveParent, ++/*297127*/ OPC_MoveChild, 17, ++/*297129*/ OPC_CheckInteger, 1, ++/*297131*/ OPC_CheckType, MVT::i32, ++/*297133*/ OPC_MoveParent, ++/*297134*/ OPC_MoveChild, 18, ++/*297136*/ OPC_CheckInteger, 1, ++/*297138*/ OPC_CheckType, MVT::i32, ++/*297140*/ OPC_MoveParent, ++/*297141*/ OPC_MoveChild, 19, ++/*297143*/ OPC_CheckInteger, 1, ++/*297145*/ OPC_CheckType, MVT::i32, ++/*297147*/ OPC_MoveParent, ++/*297148*/ OPC_MoveChild, 20, ++/*297150*/ OPC_CheckInteger, 1, ++/*297152*/ OPC_CheckType, MVT::i32, ++/*297154*/ OPC_MoveParent, ++/*297155*/ OPC_MoveChild, 21, ++/*297157*/ OPC_CheckInteger, 1, ++/*297159*/ OPC_CheckType, MVT::i32, ++/*297161*/ OPC_MoveParent, ++/*297162*/ OPC_MoveChild, 22, ++/*297164*/ OPC_CheckInteger, 1, ++/*297166*/ OPC_CheckType, MVT::i32, ++/*297168*/ OPC_MoveParent, ++/*297169*/ OPC_MoveChild, 23, ++/*297171*/ OPC_CheckInteger, 1, ++/*297173*/ OPC_CheckType, MVT::i32, ++/*297175*/ OPC_MoveParent, ++/*297176*/ OPC_MoveChild, 24, ++/*297178*/ OPC_CheckInteger, 1, ++/*297180*/ OPC_CheckType, MVT::i32, ++/*297182*/ OPC_MoveParent, ++/*297183*/ OPC_MoveChild, 25, ++/*297185*/ OPC_CheckInteger, 1, ++/*297187*/ OPC_CheckType, MVT::i32, ++/*297189*/ OPC_MoveParent, ++/*297190*/ OPC_MoveChild, 26, ++/*297192*/ OPC_CheckInteger, 1, ++/*297194*/ OPC_CheckType, MVT::i32, ++/*297196*/ OPC_MoveParent, ++/*297197*/ OPC_MoveChild, 27, ++/*297199*/ OPC_CheckInteger, 1, ++/*297201*/ OPC_CheckType, MVT::i32, ++/*297203*/ OPC_MoveParent, ++/*297204*/ OPC_MoveChild, 28, ++/*297206*/ OPC_CheckInteger, 1, ++/*297208*/ OPC_CheckType, MVT::i32, ++/*297210*/ OPC_MoveParent, ++/*297211*/ OPC_MoveChild, 29, ++/*297213*/ OPC_CheckInteger, 1, ++/*297215*/ OPC_CheckType, MVT::i32, ++/*297217*/ OPC_MoveParent, ++/*297218*/ OPC_MoveChild, 30, ++/*297220*/ OPC_CheckInteger, 1, ++/*297222*/ OPC_CheckType, MVT::i32, ++/*297224*/ OPC_MoveParent, ++/*297225*/ OPC_MoveChild, 31, ++/*297227*/ OPC_CheckInteger, 1, ++/*297229*/ OPC_CheckType, MVT::i32, ++/*297231*/ OPC_MoveParent, ++/*297232*/ OPC_MoveParent, ++/*297233*/ OPC_MoveParent, ++/*297234*/ OPC_CheckChild1Same, 1, ++/*297236*/ OPC_MoveParent, ++/*297237*/ OPC_MoveParent, ++/*297238*/ OPC_MoveChild1, ++/*297239*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*297242*/ OPC_CheckChild0Integer, 1, ++/*297244*/ OPC_CheckChild0Type, MVT::i32, ++/*297246*/ OPC_CheckChild1Integer, 1, ++/*297248*/ OPC_CheckChild1Type, MVT::i32, ++/*297250*/ OPC_CheckChild2Integer, 1, ++/*297252*/ OPC_CheckChild2Type, MVT::i32, ++/*297254*/ OPC_CheckChild3Integer, 1, ++/*297256*/ OPC_CheckChild3Type, MVT::i32, ++/*297258*/ OPC_CheckChild4Integer, 1, ++/*297260*/ OPC_CheckChild4Type, MVT::i32, ++/*297262*/ OPC_MoveChild5, ++/*297263*/ OPC_CheckInteger, 1, ++/*297265*/ OPC_CheckType, MVT::i32, ++/*297267*/ OPC_MoveParent, ++/*297268*/ OPC_MoveChild6, ++/*297269*/ OPC_CheckInteger, 1, ++/*297271*/ OPC_CheckType, MVT::i32, ++/*297273*/ OPC_MoveParent, ++/*297274*/ OPC_MoveChild7, ++/*297275*/ OPC_CheckInteger, 1, ++/*297277*/ OPC_CheckType, MVT::i32, ++/*297279*/ OPC_MoveParent, ++/*297280*/ OPC_MoveChild, 8, ++/*297282*/ OPC_CheckInteger, 1, ++/*297284*/ OPC_CheckType, MVT::i32, ++/*297286*/ OPC_MoveParent, ++/*297287*/ OPC_MoveChild, 9, ++/*297289*/ OPC_CheckInteger, 1, ++/*297291*/ OPC_CheckType, MVT::i32, ++/*297293*/ OPC_MoveParent, ++/*297294*/ OPC_MoveChild, 10, ++/*297296*/ OPC_CheckInteger, 1, ++/*297298*/ OPC_CheckType, MVT::i32, ++/*297300*/ OPC_MoveParent, ++/*297301*/ OPC_MoveChild, 11, ++/*297303*/ OPC_CheckInteger, 1, ++/*297305*/ OPC_CheckType, MVT::i32, ++/*297307*/ OPC_MoveParent, ++/*297308*/ OPC_MoveChild, 12, ++/*297310*/ OPC_CheckInteger, 1, ++/*297312*/ OPC_CheckType, MVT::i32, ++/*297314*/ OPC_MoveParent, ++/*297315*/ OPC_MoveChild, 13, ++/*297317*/ OPC_CheckInteger, 1, ++/*297319*/ OPC_CheckType, MVT::i32, ++/*297321*/ OPC_MoveParent, ++/*297322*/ OPC_MoveChild, 14, ++/*297324*/ OPC_CheckInteger, 1, ++/*297326*/ OPC_CheckType, MVT::i32, ++/*297328*/ OPC_MoveParent, ++/*297329*/ OPC_MoveChild, 15, ++/*297331*/ OPC_CheckInteger, 1, ++/*297333*/ OPC_CheckType, MVT::i32, ++/*297335*/ OPC_MoveParent, ++/*297336*/ OPC_MoveChild, 16, ++/*297338*/ OPC_CheckInteger, 1, ++/*297340*/ OPC_CheckType, MVT::i32, ++/*297342*/ OPC_MoveParent, ++/*297343*/ OPC_MoveChild, 17, ++/*297345*/ OPC_CheckInteger, 1, ++/*297347*/ OPC_CheckType, MVT::i32, ++/*297349*/ OPC_MoveParent, ++/*297350*/ OPC_MoveChild, 18, ++/*297352*/ OPC_CheckInteger, 1, ++/*297354*/ OPC_CheckType, MVT::i32, ++/*297356*/ OPC_MoveParent, ++/*297357*/ OPC_MoveChild, 19, ++/*297359*/ OPC_CheckInteger, 1, ++/*297361*/ OPC_CheckType, MVT::i32, ++/*297363*/ OPC_MoveParent, ++/*297364*/ OPC_MoveChild, 20, ++/*297366*/ OPC_CheckInteger, 1, ++/*297368*/ OPC_CheckType, MVT::i32, ++/*297370*/ OPC_MoveParent, ++/*297371*/ OPC_MoveChild, 21, ++/*297373*/ OPC_CheckInteger, 1, ++/*297375*/ OPC_CheckType, MVT::i32, ++/*297377*/ OPC_MoveParent, ++/*297378*/ OPC_MoveChild, 22, ++/*297380*/ OPC_CheckInteger, 1, ++/*297382*/ OPC_CheckType, MVT::i32, ++/*297384*/ OPC_MoveParent, ++/*297385*/ OPC_MoveChild, 23, ++/*297387*/ OPC_CheckInteger, 1, ++/*297389*/ OPC_CheckType, MVT::i32, ++/*297391*/ OPC_MoveParent, ++/*297392*/ OPC_MoveChild, 24, ++/*297394*/ OPC_CheckInteger, 1, ++/*297396*/ OPC_CheckType, MVT::i32, ++/*297398*/ OPC_MoveParent, ++/*297399*/ OPC_MoveChild, 25, ++/*297401*/ OPC_CheckInteger, 1, ++/*297403*/ OPC_CheckType, MVT::i32, ++/*297405*/ OPC_MoveParent, ++/*297406*/ OPC_MoveChild, 26, ++/*297408*/ OPC_CheckInteger, 1, ++/*297410*/ OPC_CheckType, MVT::i32, ++/*297412*/ OPC_MoveParent, ++/*297413*/ OPC_MoveChild, 27, ++/*297415*/ OPC_CheckInteger, 1, ++/*297417*/ OPC_CheckType, MVT::i32, ++/*297419*/ OPC_MoveParent, ++/*297420*/ OPC_MoveChild, 28, ++/*297422*/ OPC_CheckInteger, 1, ++/*297424*/ OPC_CheckType, MVT::i32, ++/*297426*/ OPC_MoveParent, ++/*297427*/ OPC_MoveChild, 29, ++/*297429*/ OPC_CheckInteger, 1, ++/*297431*/ OPC_CheckType, MVT::i32, ++/*297433*/ OPC_MoveParent, ++/*297434*/ OPC_MoveChild, 30, ++/*297436*/ OPC_CheckInteger, 1, ++/*297438*/ OPC_CheckType, MVT::i32, ++/*297440*/ OPC_MoveParent, ++/*297441*/ OPC_MoveChild, 31, ++/*297443*/ OPC_CheckInteger, 1, ++/*297445*/ OPC_CheckType, MVT::i32, ++/*297447*/ OPC_MoveParent, ++/*297448*/ OPC_CheckType, MVT::v32i8, ++/*297450*/ OPC_MoveParent, ++/*297451*/ OPC_CheckType, MVT::v32i8, ++/*297453*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*297455*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*297463*/ /*Scope*/ 59|128,3/*443*/, /*->297908*/ ++/*297465*/ OPC_MoveChild0, ++/*297466*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*297469*/ OPC_CheckChild0Integer, 1, ++/*297471*/ OPC_CheckChild0Type, MVT::i32, ++/*297473*/ OPC_CheckChild1Integer, 1, ++/*297475*/ OPC_CheckChild1Type, MVT::i32, ++/*297477*/ OPC_CheckChild2Integer, 1, ++/*297479*/ OPC_CheckChild2Type, MVT::i32, ++/*297481*/ OPC_CheckChild3Integer, 1, ++/*297483*/ OPC_CheckChild3Type, MVT::i32, ++/*297485*/ OPC_CheckChild4Integer, 1, ++/*297487*/ OPC_CheckChild4Type, MVT::i32, ++/*297489*/ OPC_MoveChild5, ++/*297490*/ OPC_CheckInteger, 1, ++/*297492*/ OPC_CheckType, MVT::i32, ++/*297494*/ OPC_MoveParent, ++/*297495*/ OPC_MoveChild6, ++/*297496*/ OPC_CheckInteger, 1, ++/*297498*/ OPC_CheckType, MVT::i32, ++/*297500*/ OPC_MoveParent, ++/*297501*/ OPC_MoveChild7, ++/*297502*/ OPC_CheckInteger, 1, ++/*297504*/ OPC_CheckType, MVT::i32, ++/*297506*/ OPC_MoveParent, ++/*297507*/ OPC_MoveChild, 8, ++/*297509*/ OPC_CheckInteger, 1, ++/*297511*/ OPC_CheckType, MVT::i32, ++/*297513*/ OPC_MoveParent, ++/*297514*/ OPC_MoveChild, 9, ++/*297516*/ OPC_CheckInteger, 1, ++/*297518*/ OPC_CheckType, MVT::i32, ++/*297520*/ OPC_MoveParent, ++/*297521*/ OPC_MoveChild, 10, ++/*297523*/ OPC_CheckInteger, 1, ++/*297525*/ OPC_CheckType, MVT::i32, ++/*297527*/ OPC_MoveParent, ++/*297528*/ OPC_MoveChild, 11, ++/*297530*/ OPC_CheckInteger, 1, ++/*297532*/ OPC_CheckType, MVT::i32, ++/*297534*/ OPC_MoveParent, ++/*297535*/ OPC_MoveChild, 12, ++/*297537*/ OPC_CheckInteger, 1, ++/*297539*/ OPC_CheckType, MVT::i32, ++/*297541*/ OPC_MoveParent, ++/*297542*/ OPC_MoveChild, 13, ++/*297544*/ OPC_CheckInteger, 1, ++/*297546*/ OPC_CheckType, MVT::i32, ++/*297548*/ OPC_MoveParent, ++/*297549*/ OPC_MoveChild, 14, ++/*297551*/ OPC_CheckInteger, 1, ++/*297553*/ OPC_CheckType, MVT::i32, ++/*297555*/ OPC_MoveParent, ++/*297556*/ OPC_MoveChild, 15, ++/*297558*/ OPC_CheckInteger, 1, ++/*297560*/ OPC_CheckType, MVT::i32, ++/*297562*/ OPC_MoveParent, ++/*297563*/ OPC_MoveChild, 16, ++/*297565*/ OPC_CheckInteger, 1, ++/*297567*/ OPC_CheckType, MVT::i32, ++/*297569*/ OPC_MoveParent, ++/*297570*/ OPC_MoveChild, 17, ++/*297572*/ OPC_CheckInteger, 1, ++/*297574*/ OPC_CheckType, MVT::i32, ++/*297576*/ OPC_MoveParent, ++/*297577*/ OPC_MoveChild, 18, ++/*297579*/ OPC_CheckInteger, 1, ++/*297581*/ OPC_CheckType, MVT::i32, ++/*297583*/ OPC_MoveParent, ++/*297584*/ OPC_MoveChild, 19, ++/*297586*/ OPC_CheckInteger, 1, ++/*297588*/ OPC_CheckType, MVT::i32, ++/*297590*/ OPC_MoveParent, ++/*297591*/ OPC_MoveChild, 20, ++/*297593*/ OPC_CheckInteger, 1, ++/*297595*/ OPC_CheckType, MVT::i32, ++/*297597*/ OPC_MoveParent, ++/*297598*/ OPC_MoveChild, 21, ++/*297600*/ OPC_CheckInteger, 1, ++/*297602*/ OPC_CheckType, MVT::i32, ++/*297604*/ OPC_MoveParent, ++/*297605*/ OPC_MoveChild, 22, ++/*297607*/ OPC_CheckInteger, 1, ++/*297609*/ OPC_CheckType, MVT::i32, ++/*297611*/ OPC_MoveParent, ++/*297612*/ OPC_MoveChild, 23, ++/*297614*/ OPC_CheckInteger, 1, ++/*297616*/ OPC_CheckType, MVT::i32, ++/*297618*/ OPC_MoveParent, ++/*297619*/ OPC_MoveChild, 24, ++/*297621*/ OPC_CheckInteger, 1, ++/*297623*/ OPC_CheckType, MVT::i32, ++/*297625*/ OPC_MoveParent, ++/*297626*/ OPC_MoveChild, 25, ++/*297628*/ OPC_CheckInteger, 1, ++/*297630*/ OPC_CheckType, MVT::i32, ++/*297632*/ OPC_MoveParent, ++/*297633*/ OPC_MoveChild, 26, ++/*297635*/ OPC_CheckInteger, 1, ++/*297637*/ OPC_CheckType, MVT::i32, ++/*297639*/ OPC_MoveParent, ++/*297640*/ OPC_MoveChild, 27, ++/*297642*/ OPC_CheckInteger, 1, ++/*297644*/ OPC_CheckType, MVT::i32, ++/*297646*/ OPC_MoveParent, ++/*297647*/ OPC_MoveChild, 28, ++/*297649*/ OPC_CheckInteger, 1, ++/*297651*/ OPC_CheckType, MVT::i32, ++/*297653*/ OPC_MoveParent, ++/*297654*/ OPC_MoveChild, 29, ++/*297656*/ OPC_CheckInteger, 1, ++/*297658*/ OPC_CheckType, MVT::i32, ++/*297660*/ OPC_MoveParent, ++/*297661*/ OPC_MoveChild, 30, ++/*297663*/ OPC_CheckInteger, 1, ++/*297665*/ OPC_CheckType, MVT::i32, ++/*297667*/ OPC_MoveParent, ++/*297668*/ OPC_MoveChild, 31, ++/*297670*/ OPC_CheckInteger, 1, ++/*297672*/ OPC_CheckType, MVT::i32, ++/*297674*/ OPC_MoveParent, ++/*297675*/ OPC_MoveParent, ++/*297676*/ OPC_CheckChild1Same, 1, ++/*297678*/ OPC_MoveParent, ++/*297679*/ OPC_CheckChild1Same, 0, ++/*297681*/ OPC_MoveParent, ++/*297682*/ OPC_MoveParent, ++/*297683*/ OPC_MoveChild1, ++/*297684*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*297687*/ OPC_CheckChild0Integer, 1, ++/*297689*/ OPC_CheckChild0Type, MVT::i32, ++/*297691*/ OPC_CheckChild1Integer, 1, ++/*297693*/ OPC_CheckChild1Type, MVT::i32, ++/*297695*/ OPC_CheckChild2Integer, 1, ++/*297697*/ OPC_CheckChild2Type, MVT::i32, ++/*297699*/ OPC_CheckChild3Integer, 1, ++/*297701*/ OPC_CheckChild3Type, MVT::i32, ++/*297703*/ OPC_CheckChild4Integer, 1, ++/*297705*/ OPC_CheckChild4Type, MVT::i32, ++/*297707*/ OPC_MoveChild5, ++/*297708*/ OPC_CheckInteger, 1, ++/*297710*/ OPC_CheckType, MVT::i32, ++/*297712*/ OPC_MoveParent, ++/*297713*/ OPC_MoveChild6, ++/*297714*/ OPC_CheckInteger, 1, ++/*297716*/ OPC_CheckType, MVT::i32, ++/*297718*/ OPC_MoveParent, ++/*297719*/ OPC_MoveChild7, ++/*297720*/ OPC_CheckInteger, 1, ++/*297722*/ OPC_CheckType, MVT::i32, ++/*297724*/ OPC_MoveParent, ++/*297725*/ OPC_MoveChild, 8, ++/*297727*/ OPC_CheckInteger, 1, ++/*297729*/ OPC_CheckType, MVT::i32, ++/*297731*/ OPC_MoveParent, ++/*297732*/ OPC_MoveChild, 9, ++/*297734*/ OPC_CheckInteger, 1, ++/*297736*/ OPC_CheckType, MVT::i32, ++/*297738*/ OPC_MoveParent, ++/*297739*/ OPC_MoveChild, 10, ++/*297741*/ OPC_CheckInteger, 1, ++/*297743*/ OPC_CheckType, MVT::i32, ++/*297745*/ OPC_MoveParent, ++/*297746*/ OPC_MoveChild, 11, ++/*297748*/ OPC_CheckInteger, 1, ++/*297750*/ OPC_CheckType, MVT::i32, ++/*297752*/ OPC_MoveParent, ++/*297753*/ OPC_MoveChild, 12, ++/*297755*/ OPC_CheckInteger, 1, ++/*297757*/ OPC_CheckType, MVT::i32, ++/*297759*/ OPC_MoveParent, ++/*297760*/ OPC_MoveChild, 13, ++/*297762*/ OPC_CheckInteger, 1, ++/*297764*/ OPC_CheckType, MVT::i32, ++/*297766*/ OPC_MoveParent, ++/*297767*/ OPC_MoveChild, 14, ++/*297769*/ OPC_CheckInteger, 1, ++/*297771*/ OPC_CheckType, MVT::i32, ++/*297773*/ OPC_MoveParent, ++/*297774*/ OPC_MoveChild, 15, ++/*297776*/ OPC_CheckInteger, 1, ++/*297778*/ OPC_CheckType, MVT::i32, ++/*297780*/ OPC_MoveParent, ++/*297781*/ OPC_MoveChild, 16, ++/*297783*/ OPC_CheckInteger, 1, ++/*297785*/ OPC_CheckType, MVT::i32, ++/*297787*/ OPC_MoveParent, ++/*297788*/ OPC_MoveChild, 17, ++/*297790*/ OPC_CheckInteger, 1, ++/*297792*/ OPC_CheckType, MVT::i32, ++/*297794*/ OPC_MoveParent, ++/*297795*/ OPC_MoveChild, 18, ++/*297797*/ OPC_CheckInteger, 1, ++/*297799*/ OPC_CheckType, MVT::i32, ++/*297801*/ OPC_MoveParent, ++/*297802*/ OPC_MoveChild, 19, ++/*297804*/ OPC_CheckInteger, 1, ++/*297806*/ OPC_CheckType, MVT::i32, ++/*297808*/ OPC_MoveParent, ++/*297809*/ OPC_MoveChild, 20, ++/*297811*/ OPC_CheckInteger, 1, ++/*297813*/ OPC_CheckType, MVT::i32, ++/*297815*/ OPC_MoveParent, ++/*297816*/ OPC_MoveChild, 21, ++/*297818*/ OPC_CheckInteger, 1, ++/*297820*/ OPC_CheckType, MVT::i32, ++/*297822*/ OPC_MoveParent, ++/*297823*/ OPC_MoveChild, 22, ++/*297825*/ OPC_CheckInteger, 1, ++/*297827*/ OPC_CheckType, MVT::i32, ++/*297829*/ OPC_MoveParent, ++/*297830*/ OPC_MoveChild, 23, ++/*297832*/ OPC_CheckInteger, 1, ++/*297834*/ OPC_CheckType, MVT::i32, ++/*297836*/ OPC_MoveParent, ++/*297837*/ OPC_MoveChild, 24, ++/*297839*/ OPC_CheckInteger, 1, ++/*297841*/ OPC_CheckType, MVT::i32, ++/*297843*/ OPC_MoveParent, ++/*297844*/ OPC_MoveChild, 25, ++/*297846*/ OPC_CheckInteger, 1, ++/*297848*/ OPC_CheckType, MVT::i32, ++/*297850*/ OPC_MoveParent, ++/*297851*/ OPC_MoveChild, 26, ++/*297853*/ OPC_CheckInteger, 1, ++/*297855*/ OPC_CheckType, MVT::i32, ++/*297857*/ OPC_MoveParent, ++/*297858*/ OPC_MoveChild, 27, ++/*297860*/ OPC_CheckInteger, 1, ++/*297862*/ OPC_CheckType, MVT::i32, ++/*297864*/ OPC_MoveParent, ++/*297865*/ OPC_MoveChild, 28, ++/*297867*/ OPC_CheckInteger, 1, ++/*297869*/ OPC_CheckType, MVT::i32, ++/*297871*/ OPC_MoveParent, ++/*297872*/ OPC_MoveChild, 29, ++/*297874*/ OPC_CheckInteger, 1, ++/*297876*/ OPC_CheckType, MVT::i32, ++/*297878*/ OPC_MoveParent, ++/*297879*/ OPC_MoveChild, 30, ++/*297881*/ OPC_CheckInteger, 1, ++/*297883*/ OPC_CheckType, MVT::i32, ++/*297885*/ OPC_MoveParent, ++/*297886*/ OPC_MoveChild, 31, ++/*297888*/ OPC_CheckInteger, 1, ++/*297890*/ OPC_CheckType, MVT::i32, ++/*297892*/ OPC_MoveParent, ++/*297893*/ OPC_CheckType, MVT::v32i8, ++/*297895*/ OPC_MoveParent, ++/*297896*/ OPC_CheckType, MVT::v32i8, ++/*297898*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*297900*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b), LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*297908*/ /*Scope*/ 59|128,3/*443*/, /*->298353*/ ++/*297910*/ OPC_CheckChild0Same, 1, ++/*297912*/ OPC_MoveChild1, ++/*297913*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*297916*/ OPC_CheckChild0Integer, 1, ++/*297918*/ OPC_CheckChild0Type, MVT::i32, ++/*297920*/ OPC_CheckChild1Integer, 1, ++/*297922*/ OPC_CheckChild1Type, MVT::i32, ++/*297924*/ OPC_CheckChild2Integer, 1, ++/*297926*/ OPC_CheckChild2Type, MVT::i32, ++/*297928*/ OPC_CheckChild3Integer, 1, ++/*297930*/ OPC_CheckChild3Type, MVT::i32, ++/*297932*/ OPC_CheckChild4Integer, 1, ++/*297934*/ OPC_CheckChild4Type, MVT::i32, ++/*297936*/ OPC_MoveChild5, ++/*297937*/ OPC_CheckInteger, 1, ++/*297939*/ OPC_CheckType, MVT::i32, ++/*297941*/ OPC_MoveParent, ++/*297942*/ OPC_MoveChild6, ++/*297943*/ OPC_CheckInteger, 1, ++/*297945*/ OPC_CheckType, MVT::i32, ++/*297947*/ OPC_MoveParent, ++/*297948*/ OPC_MoveChild7, ++/*297949*/ OPC_CheckInteger, 1, ++/*297951*/ OPC_CheckType, MVT::i32, ++/*297953*/ OPC_MoveParent, ++/*297954*/ OPC_MoveChild, 8, ++/*297956*/ OPC_CheckInteger, 1, ++/*297958*/ OPC_CheckType, MVT::i32, ++/*297960*/ OPC_MoveParent, ++/*297961*/ OPC_MoveChild, 9, ++/*297963*/ OPC_CheckInteger, 1, ++/*297965*/ OPC_CheckType, MVT::i32, ++/*297967*/ OPC_MoveParent, ++/*297968*/ OPC_MoveChild, 10, ++/*297970*/ OPC_CheckInteger, 1, ++/*297972*/ OPC_CheckType, MVT::i32, ++/*297974*/ OPC_MoveParent, ++/*297975*/ OPC_MoveChild, 11, ++/*297977*/ OPC_CheckInteger, 1, ++/*297979*/ OPC_CheckType, MVT::i32, ++/*297981*/ OPC_MoveParent, ++/*297982*/ OPC_MoveChild, 12, ++/*297984*/ OPC_CheckInteger, 1, ++/*297986*/ OPC_CheckType, MVT::i32, ++/*297988*/ OPC_MoveParent, ++/*297989*/ OPC_MoveChild, 13, ++/*297991*/ OPC_CheckInteger, 1, ++/*297993*/ OPC_CheckType, MVT::i32, ++/*297995*/ OPC_MoveParent, ++/*297996*/ OPC_MoveChild, 14, ++/*297998*/ OPC_CheckInteger, 1, ++/*298000*/ OPC_CheckType, MVT::i32, ++/*298002*/ OPC_MoveParent, ++/*298003*/ OPC_MoveChild, 15, ++/*298005*/ OPC_CheckInteger, 1, ++/*298007*/ OPC_CheckType, MVT::i32, ++/*298009*/ OPC_MoveParent, ++/*298010*/ OPC_MoveChild, 16, ++/*298012*/ OPC_CheckInteger, 1, ++/*298014*/ OPC_CheckType, MVT::i32, ++/*298016*/ OPC_MoveParent, ++/*298017*/ OPC_MoveChild, 17, ++/*298019*/ OPC_CheckInteger, 1, ++/*298021*/ OPC_CheckType, MVT::i32, ++/*298023*/ OPC_MoveParent, ++/*298024*/ OPC_MoveChild, 18, ++/*298026*/ OPC_CheckInteger, 1, ++/*298028*/ OPC_CheckType, MVT::i32, ++/*298030*/ OPC_MoveParent, ++/*298031*/ OPC_MoveChild, 19, ++/*298033*/ OPC_CheckInteger, 1, ++/*298035*/ OPC_CheckType, MVT::i32, ++/*298037*/ OPC_MoveParent, ++/*298038*/ OPC_MoveChild, 20, ++/*298040*/ OPC_CheckInteger, 1, ++/*298042*/ OPC_CheckType, MVT::i32, ++/*298044*/ OPC_MoveParent, ++/*298045*/ OPC_MoveChild, 21, ++/*298047*/ OPC_CheckInteger, 1, ++/*298049*/ OPC_CheckType, MVT::i32, ++/*298051*/ OPC_MoveParent, ++/*298052*/ OPC_MoveChild, 22, ++/*298054*/ OPC_CheckInteger, 1, ++/*298056*/ OPC_CheckType, MVT::i32, ++/*298058*/ OPC_MoveParent, ++/*298059*/ OPC_MoveChild, 23, ++/*298061*/ OPC_CheckInteger, 1, ++/*298063*/ OPC_CheckType, MVT::i32, ++/*298065*/ OPC_MoveParent, ++/*298066*/ OPC_MoveChild, 24, ++/*298068*/ OPC_CheckInteger, 1, ++/*298070*/ OPC_CheckType, MVT::i32, ++/*298072*/ OPC_MoveParent, ++/*298073*/ OPC_MoveChild, 25, ++/*298075*/ OPC_CheckInteger, 1, ++/*298077*/ OPC_CheckType, MVT::i32, ++/*298079*/ OPC_MoveParent, ++/*298080*/ OPC_MoveChild, 26, ++/*298082*/ OPC_CheckInteger, 1, ++/*298084*/ OPC_CheckType, MVT::i32, ++/*298086*/ OPC_MoveParent, ++/*298087*/ OPC_MoveChild, 27, ++/*298089*/ OPC_CheckInteger, 1, ++/*298091*/ OPC_CheckType, MVT::i32, ++/*298093*/ OPC_MoveParent, ++/*298094*/ OPC_MoveChild, 28, ++/*298096*/ OPC_CheckInteger, 1, ++/*298098*/ OPC_CheckType, MVT::i32, ++/*298100*/ OPC_MoveParent, ++/*298101*/ OPC_MoveChild, 29, ++/*298103*/ OPC_CheckInteger, 1, ++/*298105*/ OPC_CheckType, MVT::i32, ++/*298107*/ OPC_MoveParent, ++/*298108*/ OPC_MoveChild, 30, ++/*298110*/ OPC_CheckInteger, 1, ++/*298112*/ OPC_CheckType, MVT::i32, ++/*298114*/ OPC_MoveParent, ++/*298115*/ OPC_MoveChild, 31, ++/*298117*/ OPC_CheckInteger, 1, ++/*298119*/ OPC_CheckType, MVT::i32, ++/*298121*/ OPC_MoveParent, ++/*298122*/ OPC_MoveParent, ++/*298123*/ OPC_MoveParent, ++/*298124*/ OPC_CheckChild1Same, 0, ++/*298126*/ OPC_MoveParent, ++/*298127*/ OPC_MoveParent, ++/*298128*/ OPC_MoveChild1, ++/*298129*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*298132*/ OPC_CheckChild0Integer, 1, ++/*298134*/ OPC_CheckChild0Type, MVT::i32, ++/*298136*/ OPC_CheckChild1Integer, 1, ++/*298138*/ OPC_CheckChild1Type, MVT::i32, ++/*298140*/ OPC_CheckChild2Integer, 1, ++/*298142*/ OPC_CheckChild2Type, MVT::i32, ++/*298144*/ OPC_CheckChild3Integer, 1, ++/*298146*/ OPC_CheckChild3Type, MVT::i32, ++/*298148*/ OPC_CheckChild4Integer, 1, ++/*298150*/ OPC_CheckChild4Type, MVT::i32, ++/*298152*/ OPC_MoveChild5, ++/*298153*/ OPC_CheckInteger, 1, ++/*298155*/ OPC_CheckType, MVT::i32, ++/*298157*/ OPC_MoveParent, ++/*298158*/ OPC_MoveChild6, ++/*298159*/ OPC_CheckInteger, 1, ++/*298161*/ OPC_CheckType, MVT::i32, ++/*298163*/ OPC_MoveParent, ++/*298164*/ OPC_MoveChild7, ++/*298165*/ OPC_CheckInteger, 1, ++/*298167*/ OPC_CheckType, MVT::i32, ++/*298169*/ OPC_MoveParent, ++/*298170*/ OPC_MoveChild, 8, ++/*298172*/ OPC_CheckInteger, 1, ++/*298174*/ OPC_CheckType, MVT::i32, ++/*298176*/ OPC_MoveParent, ++/*298177*/ OPC_MoveChild, 9, ++/*298179*/ OPC_CheckInteger, 1, ++/*298181*/ OPC_CheckType, MVT::i32, ++/*298183*/ OPC_MoveParent, ++/*298184*/ OPC_MoveChild, 10, ++/*298186*/ OPC_CheckInteger, 1, ++/*298188*/ OPC_CheckType, MVT::i32, ++/*298190*/ OPC_MoveParent, ++/*298191*/ OPC_MoveChild, 11, ++/*298193*/ OPC_CheckInteger, 1, ++/*298195*/ OPC_CheckType, MVT::i32, ++/*298197*/ OPC_MoveParent, ++/*298198*/ OPC_MoveChild, 12, ++/*298200*/ OPC_CheckInteger, 1, ++/*298202*/ OPC_CheckType, MVT::i32, ++/*298204*/ OPC_MoveParent, ++/*298205*/ OPC_MoveChild, 13, ++/*298207*/ OPC_CheckInteger, 1, ++/*298209*/ OPC_CheckType, MVT::i32, ++/*298211*/ OPC_MoveParent, ++/*298212*/ OPC_MoveChild, 14, ++/*298214*/ OPC_CheckInteger, 1, ++/*298216*/ OPC_CheckType, MVT::i32, ++/*298218*/ OPC_MoveParent, ++/*298219*/ OPC_MoveChild, 15, ++/*298221*/ OPC_CheckInteger, 1, ++/*298223*/ OPC_CheckType, MVT::i32, ++/*298225*/ OPC_MoveParent, ++/*298226*/ OPC_MoveChild, 16, ++/*298228*/ OPC_CheckInteger, 1, ++/*298230*/ OPC_CheckType, MVT::i32, ++/*298232*/ OPC_MoveParent, ++/*298233*/ OPC_MoveChild, 17, ++/*298235*/ OPC_CheckInteger, 1, ++/*298237*/ OPC_CheckType, MVT::i32, ++/*298239*/ OPC_MoveParent, ++/*298240*/ OPC_MoveChild, 18, ++/*298242*/ OPC_CheckInteger, 1, ++/*298244*/ OPC_CheckType, MVT::i32, ++/*298246*/ OPC_MoveParent, ++/*298247*/ OPC_MoveChild, 19, ++/*298249*/ OPC_CheckInteger, 1, ++/*298251*/ OPC_CheckType, MVT::i32, ++/*298253*/ OPC_MoveParent, ++/*298254*/ OPC_MoveChild, 20, ++/*298256*/ OPC_CheckInteger, 1, ++/*298258*/ OPC_CheckType, MVT::i32, ++/*298260*/ OPC_MoveParent, ++/*298261*/ OPC_MoveChild, 21, ++/*298263*/ OPC_CheckInteger, 1, ++/*298265*/ OPC_CheckType, MVT::i32, ++/*298267*/ OPC_MoveParent, ++/*298268*/ OPC_MoveChild, 22, ++/*298270*/ OPC_CheckInteger, 1, ++/*298272*/ OPC_CheckType, MVT::i32, ++/*298274*/ OPC_MoveParent, ++/*298275*/ OPC_MoveChild, 23, ++/*298277*/ OPC_CheckInteger, 1, ++/*298279*/ OPC_CheckType, MVT::i32, ++/*298281*/ OPC_MoveParent, ++/*298282*/ OPC_MoveChild, 24, ++/*298284*/ OPC_CheckInteger, 1, ++/*298286*/ OPC_CheckType, MVT::i32, ++/*298288*/ OPC_MoveParent, ++/*298289*/ OPC_MoveChild, 25, ++/*298291*/ OPC_CheckInteger, 1, ++/*298293*/ OPC_CheckType, MVT::i32, ++/*298295*/ OPC_MoveParent, ++/*298296*/ OPC_MoveChild, 26, ++/*298298*/ OPC_CheckInteger, 1, ++/*298300*/ OPC_CheckType, MVT::i32, ++/*298302*/ OPC_MoveParent, ++/*298303*/ OPC_MoveChild, 27, ++/*298305*/ OPC_CheckInteger, 1, ++/*298307*/ OPC_CheckType, MVT::i32, ++/*298309*/ OPC_MoveParent, ++/*298310*/ OPC_MoveChild, 28, ++/*298312*/ OPC_CheckInteger, 1, ++/*298314*/ OPC_CheckType, MVT::i32, ++/*298316*/ OPC_MoveParent, ++/*298317*/ OPC_MoveChild, 29, ++/*298319*/ OPC_CheckInteger, 1, ++/*298321*/ OPC_CheckType, MVT::i32, ++/*298323*/ OPC_MoveParent, ++/*298324*/ OPC_MoveChild, 30, ++/*298326*/ OPC_CheckInteger, 1, ++/*298328*/ OPC_CheckType, MVT::i32, ++/*298330*/ OPC_MoveParent, ++/*298331*/ OPC_MoveChild, 31, ++/*298333*/ OPC_CheckInteger, 1, ++/*298335*/ OPC_CheckType, MVT::i32, ++/*298337*/ OPC_MoveParent, ++/*298338*/ OPC_CheckType, MVT::v32i8, ++/*298340*/ OPC_MoveParent, ++/*298341*/ OPC_CheckType, MVT::v32i8, ++/*298343*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*298345*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*298353*/ /*Scope*/ 59|128,3/*443*/, /*->298798*/ ++/*298355*/ OPC_CheckChild0Same, 0, ++/*298357*/ OPC_CheckChild1Same, 1, ++/*298359*/ OPC_MoveParent, ++/*298360*/ OPC_MoveChild1, ++/*298361*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*298364*/ OPC_CheckChild0Integer, 1, ++/*298366*/ OPC_CheckChild0Type, MVT::i32, ++/*298368*/ OPC_CheckChild1Integer, 1, ++/*298370*/ OPC_CheckChild1Type, MVT::i32, ++/*298372*/ OPC_CheckChild2Integer, 1, ++/*298374*/ OPC_CheckChild2Type, MVT::i32, ++/*298376*/ OPC_CheckChild3Integer, 1, ++/*298378*/ OPC_CheckChild3Type, MVT::i32, ++/*298380*/ OPC_CheckChild4Integer, 1, ++/*298382*/ OPC_CheckChild4Type, MVT::i32, ++/*298384*/ OPC_MoveChild5, ++/*298385*/ OPC_CheckInteger, 1, ++/*298387*/ OPC_CheckType, MVT::i32, ++/*298389*/ OPC_MoveParent, ++/*298390*/ OPC_MoveChild6, ++/*298391*/ OPC_CheckInteger, 1, ++/*298393*/ OPC_CheckType, MVT::i32, ++/*298395*/ OPC_MoveParent, ++/*298396*/ OPC_MoveChild7, ++/*298397*/ OPC_CheckInteger, 1, ++/*298399*/ OPC_CheckType, MVT::i32, ++/*298401*/ OPC_MoveParent, ++/*298402*/ OPC_MoveChild, 8, ++/*298404*/ OPC_CheckInteger, 1, ++/*298406*/ OPC_CheckType, MVT::i32, ++/*298408*/ OPC_MoveParent, ++/*298409*/ OPC_MoveChild, 9, ++/*298411*/ OPC_CheckInteger, 1, ++/*298413*/ OPC_CheckType, MVT::i32, ++/*298415*/ OPC_MoveParent, ++/*298416*/ OPC_MoveChild, 10, ++/*298418*/ OPC_CheckInteger, 1, ++/*298420*/ OPC_CheckType, MVT::i32, ++/*298422*/ OPC_MoveParent, ++/*298423*/ OPC_MoveChild, 11, ++/*298425*/ OPC_CheckInteger, 1, ++/*298427*/ OPC_CheckType, MVT::i32, ++/*298429*/ OPC_MoveParent, ++/*298430*/ OPC_MoveChild, 12, ++/*298432*/ OPC_CheckInteger, 1, ++/*298434*/ OPC_CheckType, MVT::i32, ++/*298436*/ OPC_MoveParent, ++/*298437*/ OPC_MoveChild, 13, ++/*298439*/ OPC_CheckInteger, 1, ++/*298441*/ OPC_CheckType, MVT::i32, ++/*298443*/ OPC_MoveParent, ++/*298444*/ OPC_MoveChild, 14, ++/*298446*/ OPC_CheckInteger, 1, ++/*298448*/ OPC_CheckType, MVT::i32, ++/*298450*/ OPC_MoveParent, ++/*298451*/ OPC_MoveChild, 15, ++/*298453*/ OPC_CheckInteger, 1, ++/*298455*/ OPC_CheckType, MVT::i32, ++/*298457*/ OPC_MoveParent, ++/*298458*/ OPC_MoveChild, 16, ++/*298460*/ OPC_CheckInteger, 1, ++/*298462*/ OPC_CheckType, MVT::i32, ++/*298464*/ OPC_MoveParent, ++/*298465*/ OPC_MoveChild, 17, ++/*298467*/ OPC_CheckInteger, 1, ++/*298469*/ OPC_CheckType, MVT::i32, ++/*298471*/ OPC_MoveParent, ++/*298472*/ OPC_MoveChild, 18, ++/*298474*/ OPC_CheckInteger, 1, ++/*298476*/ OPC_CheckType, MVT::i32, ++/*298478*/ OPC_MoveParent, ++/*298479*/ OPC_MoveChild, 19, ++/*298481*/ OPC_CheckInteger, 1, ++/*298483*/ OPC_CheckType, MVT::i32, ++/*298485*/ OPC_MoveParent, ++/*298486*/ OPC_MoveChild, 20, ++/*298488*/ OPC_CheckInteger, 1, ++/*298490*/ OPC_CheckType, MVT::i32, ++/*298492*/ OPC_MoveParent, ++/*298493*/ OPC_MoveChild, 21, ++/*298495*/ OPC_CheckInteger, 1, ++/*298497*/ OPC_CheckType, MVT::i32, ++/*298499*/ OPC_MoveParent, ++/*298500*/ OPC_MoveChild, 22, ++/*298502*/ OPC_CheckInteger, 1, ++/*298504*/ OPC_CheckType, MVT::i32, ++/*298506*/ OPC_MoveParent, ++/*298507*/ OPC_MoveChild, 23, ++/*298509*/ OPC_CheckInteger, 1, ++/*298511*/ OPC_CheckType, MVT::i32, ++/*298513*/ OPC_MoveParent, ++/*298514*/ OPC_MoveChild, 24, ++/*298516*/ OPC_CheckInteger, 1, ++/*298518*/ OPC_CheckType, MVT::i32, ++/*298520*/ OPC_MoveParent, ++/*298521*/ OPC_MoveChild, 25, ++/*298523*/ OPC_CheckInteger, 1, ++/*298525*/ OPC_CheckType, MVT::i32, ++/*298527*/ OPC_MoveParent, ++/*298528*/ OPC_MoveChild, 26, ++/*298530*/ OPC_CheckInteger, 1, ++/*298532*/ OPC_CheckType, MVT::i32, ++/*298534*/ OPC_MoveParent, ++/*298535*/ OPC_MoveChild, 27, ++/*298537*/ OPC_CheckInteger, 1, ++/*298539*/ OPC_CheckType, MVT::i32, ++/*298541*/ OPC_MoveParent, ++/*298542*/ OPC_MoveChild, 28, ++/*298544*/ OPC_CheckInteger, 1, ++/*298546*/ OPC_CheckType, MVT::i32, ++/*298548*/ OPC_MoveParent, ++/*298549*/ OPC_MoveChild, 29, ++/*298551*/ OPC_CheckInteger, 1, ++/*298553*/ OPC_CheckType, MVT::i32, ++/*298555*/ OPC_MoveParent, ++/*298556*/ OPC_MoveChild, 30, ++/*298558*/ OPC_CheckInteger, 1, ++/*298560*/ OPC_CheckType, MVT::i32, ++/*298562*/ OPC_MoveParent, ++/*298563*/ OPC_MoveChild, 31, ++/*298565*/ OPC_CheckInteger, 1, ++/*298567*/ OPC_CheckType, MVT::i32, ++/*298569*/ OPC_MoveParent, ++/*298570*/ OPC_MoveParent, ++/*298571*/ OPC_MoveParent, ++/*298572*/ OPC_MoveParent, ++/*298573*/ OPC_MoveChild1, ++/*298574*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*298577*/ OPC_CheckChild0Integer, 1, ++/*298579*/ OPC_CheckChild0Type, MVT::i32, ++/*298581*/ OPC_CheckChild1Integer, 1, ++/*298583*/ OPC_CheckChild1Type, MVT::i32, ++/*298585*/ OPC_CheckChild2Integer, 1, ++/*298587*/ OPC_CheckChild2Type, MVT::i32, ++/*298589*/ OPC_CheckChild3Integer, 1, ++/*298591*/ OPC_CheckChild3Type, MVT::i32, ++/*298593*/ OPC_CheckChild4Integer, 1, ++/*298595*/ OPC_CheckChild4Type, MVT::i32, ++/*298597*/ OPC_MoveChild5, ++/*298598*/ OPC_CheckInteger, 1, ++/*298600*/ OPC_CheckType, MVT::i32, ++/*298602*/ OPC_MoveParent, ++/*298603*/ OPC_MoveChild6, ++/*298604*/ OPC_CheckInteger, 1, ++/*298606*/ OPC_CheckType, MVT::i32, ++/*298608*/ OPC_MoveParent, ++/*298609*/ OPC_MoveChild7, ++/*298610*/ OPC_CheckInteger, 1, ++/*298612*/ OPC_CheckType, MVT::i32, ++/*298614*/ OPC_MoveParent, ++/*298615*/ OPC_MoveChild, 8, ++/*298617*/ OPC_CheckInteger, 1, ++/*298619*/ OPC_CheckType, MVT::i32, ++/*298621*/ OPC_MoveParent, ++/*298622*/ OPC_MoveChild, 9, ++/*298624*/ OPC_CheckInteger, 1, ++/*298626*/ OPC_CheckType, MVT::i32, ++/*298628*/ OPC_MoveParent, ++/*298629*/ OPC_MoveChild, 10, ++/*298631*/ OPC_CheckInteger, 1, ++/*298633*/ OPC_CheckType, MVT::i32, ++/*298635*/ OPC_MoveParent, ++/*298636*/ OPC_MoveChild, 11, ++/*298638*/ OPC_CheckInteger, 1, ++/*298640*/ OPC_CheckType, MVT::i32, ++/*298642*/ OPC_MoveParent, ++/*298643*/ OPC_MoveChild, 12, ++/*298645*/ OPC_CheckInteger, 1, ++/*298647*/ OPC_CheckType, MVT::i32, ++/*298649*/ OPC_MoveParent, ++/*298650*/ OPC_MoveChild, 13, ++/*298652*/ OPC_CheckInteger, 1, ++/*298654*/ OPC_CheckType, MVT::i32, ++/*298656*/ OPC_MoveParent, ++/*298657*/ OPC_MoveChild, 14, ++/*298659*/ OPC_CheckInteger, 1, ++/*298661*/ OPC_CheckType, MVT::i32, ++/*298663*/ OPC_MoveParent, ++/*298664*/ OPC_MoveChild, 15, ++/*298666*/ OPC_CheckInteger, 1, ++/*298668*/ OPC_CheckType, MVT::i32, ++/*298670*/ OPC_MoveParent, ++/*298671*/ OPC_MoveChild, 16, ++/*298673*/ OPC_CheckInteger, 1, ++/*298675*/ OPC_CheckType, MVT::i32, ++/*298677*/ OPC_MoveParent, ++/*298678*/ OPC_MoveChild, 17, ++/*298680*/ OPC_CheckInteger, 1, ++/*298682*/ OPC_CheckType, MVT::i32, ++/*298684*/ OPC_MoveParent, ++/*298685*/ OPC_MoveChild, 18, ++/*298687*/ OPC_CheckInteger, 1, ++/*298689*/ OPC_CheckType, MVT::i32, ++/*298691*/ OPC_MoveParent, ++/*298692*/ OPC_MoveChild, 19, ++/*298694*/ OPC_CheckInteger, 1, ++/*298696*/ OPC_CheckType, MVT::i32, ++/*298698*/ OPC_MoveParent, ++/*298699*/ OPC_MoveChild, 20, ++/*298701*/ OPC_CheckInteger, 1, ++/*298703*/ OPC_CheckType, MVT::i32, ++/*298705*/ OPC_MoveParent, ++/*298706*/ OPC_MoveChild, 21, ++/*298708*/ OPC_CheckInteger, 1, ++/*298710*/ OPC_CheckType, MVT::i32, ++/*298712*/ OPC_MoveParent, ++/*298713*/ OPC_MoveChild, 22, ++/*298715*/ OPC_CheckInteger, 1, ++/*298717*/ OPC_CheckType, MVT::i32, ++/*298719*/ OPC_MoveParent, ++/*298720*/ OPC_MoveChild, 23, ++/*298722*/ OPC_CheckInteger, 1, ++/*298724*/ OPC_CheckType, MVT::i32, ++/*298726*/ OPC_MoveParent, ++/*298727*/ OPC_MoveChild, 24, ++/*298729*/ OPC_CheckInteger, 1, ++/*298731*/ OPC_CheckType, MVT::i32, ++/*298733*/ OPC_MoveParent, ++/*298734*/ OPC_MoveChild, 25, ++/*298736*/ OPC_CheckInteger, 1, ++/*298738*/ OPC_CheckType, MVT::i32, ++/*298740*/ OPC_MoveParent, ++/*298741*/ OPC_MoveChild, 26, ++/*298743*/ OPC_CheckInteger, 1, ++/*298745*/ OPC_CheckType, MVT::i32, ++/*298747*/ OPC_MoveParent, ++/*298748*/ OPC_MoveChild, 27, ++/*298750*/ OPC_CheckInteger, 1, ++/*298752*/ OPC_CheckType, MVT::i32, ++/*298754*/ OPC_MoveParent, ++/*298755*/ OPC_MoveChild, 28, ++/*298757*/ OPC_CheckInteger, 1, ++/*298759*/ OPC_CheckType, MVT::i32, ++/*298761*/ OPC_MoveParent, ++/*298762*/ OPC_MoveChild, 29, ++/*298764*/ OPC_CheckInteger, 1, ++/*298766*/ OPC_CheckType, MVT::i32, ++/*298768*/ OPC_MoveParent, ++/*298769*/ OPC_MoveChild, 30, ++/*298771*/ OPC_CheckInteger, 1, ++/*298773*/ OPC_CheckType, MVT::i32, ++/*298775*/ OPC_MoveParent, ++/*298776*/ OPC_MoveChild, 31, ++/*298778*/ OPC_CheckInteger, 1, ++/*298780*/ OPC_CheckType, MVT::i32, ++/*298782*/ OPC_MoveParent, ++/*298783*/ OPC_CheckType, MVT::v32i8, ++/*298785*/ OPC_MoveParent, ++/*298786*/ OPC_CheckType, MVT::v32i8, ++/*298788*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*298790*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*298798*/ /*Scope*/ 59|128,3/*443*/, /*->299243*/ ++/*298800*/ OPC_CheckChild0Same, 1, ++/*298802*/ OPC_CheckChild1Same, 0, ++/*298804*/ OPC_MoveParent, ++/*298805*/ OPC_MoveChild1, ++/*298806*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*298809*/ OPC_CheckChild0Integer, 1, ++/*298811*/ OPC_CheckChild0Type, MVT::i32, ++/*298813*/ OPC_CheckChild1Integer, 1, ++/*298815*/ OPC_CheckChild1Type, MVT::i32, ++/*298817*/ OPC_CheckChild2Integer, 1, ++/*298819*/ OPC_CheckChild2Type, MVT::i32, ++/*298821*/ OPC_CheckChild3Integer, 1, ++/*298823*/ OPC_CheckChild3Type, MVT::i32, ++/*298825*/ OPC_CheckChild4Integer, 1, ++/*298827*/ OPC_CheckChild4Type, MVT::i32, ++/*298829*/ OPC_MoveChild5, ++/*298830*/ OPC_CheckInteger, 1, ++/*298832*/ OPC_CheckType, MVT::i32, ++/*298834*/ OPC_MoveParent, ++/*298835*/ OPC_MoveChild6, ++/*298836*/ OPC_CheckInteger, 1, ++/*298838*/ OPC_CheckType, MVT::i32, ++/*298840*/ OPC_MoveParent, ++/*298841*/ OPC_MoveChild7, ++/*298842*/ OPC_CheckInteger, 1, ++/*298844*/ OPC_CheckType, MVT::i32, ++/*298846*/ OPC_MoveParent, ++/*298847*/ OPC_MoveChild, 8, ++/*298849*/ OPC_CheckInteger, 1, ++/*298851*/ OPC_CheckType, MVT::i32, ++/*298853*/ OPC_MoveParent, ++/*298854*/ OPC_MoveChild, 9, ++/*298856*/ OPC_CheckInteger, 1, ++/*298858*/ OPC_CheckType, MVT::i32, ++/*298860*/ OPC_MoveParent, ++/*298861*/ OPC_MoveChild, 10, ++/*298863*/ OPC_CheckInteger, 1, ++/*298865*/ OPC_CheckType, MVT::i32, ++/*298867*/ OPC_MoveParent, ++/*298868*/ OPC_MoveChild, 11, ++/*298870*/ OPC_CheckInteger, 1, ++/*298872*/ OPC_CheckType, MVT::i32, ++/*298874*/ OPC_MoveParent, ++/*298875*/ OPC_MoveChild, 12, ++/*298877*/ OPC_CheckInteger, 1, ++/*298879*/ OPC_CheckType, MVT::i32, ++/*298881*/ OPC_MoveParent, ++/*298882*/ OPC_MoveChild, 13, ++/*298884*/ OPC_CheckInteger, 1, ++/*298886*/ OPC_CheckType, MVT::i32, ++/*298888*/ OPC_MoveParent, ++/*298889*/ OPC_MoveChild, 14, ++/*298891*/ OPC_CheckInteger, 1, ++/*298893*/ OPC_CheckType, MVT::i32, ++/*298895*/ OPC_MoveParent, ++/*298896*/ OPC_MoveChild, 15, ++/*298898*/ OPC_CheckInteger, 1, ++/*298900*/ OPC_CheckType, MVT::i32, ++/*298902*/ OPC_MoveParent, ++/*298903*/ OPC_MoveChild, 16, ++/*298905*/ OPC_CheckInteger, 1, ++/*298907*/ OPC_CheckType, MVT::i32, ++/*298909*/ OPC_MoveParent, ++/*298910*/ OPC_MoveChild, 17, ++/*298912*/ OPC_CheckInteger, 1, ++/*298914*/ OPC_CheckType, MVT::i32, ++/*298916*/ OPC_MoveParent, ++/*298917*/ OPC_MoveChild, 18, ++/*298919*/ OPC_CheckInteger, 1, ++/*298921*/ OPC_CheckType, MVT::i32, ++/*298923*/ OPC_MoveParent, ++/*298924*/ OPC_MoveChild, 19, ++/*298926*/ OPC_CheckInteger, 1, ++/*298928*/ OPC_CheckType, MVT::i32, ++/*298930*/ OPC_MoveParent, ++/*298931*/ OPC_MoveChild, 20, ++/*298933*/ OPC_CheckInteger, 1, ++/*298935*/ OPC_CheckType, MVT::i32, ++/*298937*/ OPC_MoveParent, ++/*298938*/ OPC_MoveChild, 21, ++/*298940*/ OPC_CheckInteger, 1, ++/*298942*/ OPC_CheckType, MVT::i32, ++/*298944*/ OPC_MoveParent, ++/*298945*/ OPC_MoveChild, 22, ++/*298947*/ OPC_CheckInteger, 1, ++/*298949*/ OPC_CheckType, MVT::i32, ++/*298951*/ OPC_MoveParent, ++/*298952*/ OPC_MoveChild, 23, ++/*298954*/ OPC_CheckInteger, 1, ++/*298956*/ OPC_CheckType, MVT::i32, ++/*298958*/ OPC_MoveParent, ++/*298959*/ OPC_MoveChild, 24, ++/*298961*/ OPC_CheckInteger, 1, ++/*298963*/ OPC_CheckType, MVT::i32, ++/*298965*/ OPC_MoveParent, ++/*298966*/ OPC_MoveChild, 25, ++/*298968*/ OPC_CheckInteger, 1, ++/*298970*/ OPC_CheckType, MVT::i32, ++/*298972*/ OPC_MoveParent, ++/*298973*/ OPC_MoveChild, 26, ++/*298975*/ OPC_CheckInteger, 1, ++/*298977*/ OPC_CheckType, MVT::i32, ++/*298979*/ OPC_MoveParent, ++/*298980*/ OPC_MoveChild, 27, ++/*298982*/ OPC_CheckInteger, 1, ++/*298984*/ OPC_CheckType, MVT::i32, ++/*298986*/ OPC_MoveParent, ++/*298987*/ OPC_MoveChild, 28, ++/*298989*/ OPC_CheckInteger, 1, ++/*298991*/ OPC_CheckType, MVT::i32, ++/*298993*/ OPC_MoveParent, ++/*298994*/ OPC_MoveChild, 29, ++/*298996*/ OPC_CheckInteger, 1, ++/*298998*/ OPC_CheckType, MVT::i32, ++/*299000*/ OPC_MoveParent, ++/*299001*/ OPC_MoveChild, 30, ++/*299003*/ OPC_CheckInteger, 1, ++/*299005*/ OPC_CheckType, MVT::i32, ++/*299007*/ OPC_MoveParent, ++/*299008*/ OPC_MoveChild, 31, ++/*299010*/ OPC_CheckInteger, 1, ++/*299012*/ OPC_CheckType, MVT::i32, ++/*299014*/ OPC_MoveParent, ++/*299015*/ OPC_MoveParent, ++/*299016*/ OPC_MoveParent, ++/*299017*/ OPC_MoveParent, ++/*299018*/ OPC_MoveChild1, ++/*299019*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*299022*/ OPC_CheckChild0Integer, 1, ++/*299024*/ OPC_CheckChild0Type, MVT::i32, ++/*299026*/ OPC_CheckChild1Integer, 1, ++/*299028*/ OPC_CheckChild1Type, MVT::i32, ++/*299030*/ OPC_CheckChild2Integer, 1, ++/*299032*/ OPC_CheckChild2Type, MVT::i32, ++/*299034*/ OPC_CheckChild3Integer, 1, ++/*299036*/ OPC_CheckChild3Type, MVT::i32, ++/*299038*/ OPC_CheckChild4Integer, 1, ++/*299040*/ OPC_CheckChild4Type, MVT::i32, ++/*299042*/ OPC_MoveChild5, ++/*299043*/ OPC_CheckInteger, 1, ++/*299045*/ OPC_CheckType, MVT::i32, ++/*299047*/ OPC_MoveParent, ++/*299048*/ OPC_MoveChild6, ++/*299049*/ OPC_CheckInteger, 1, ++/*299051*/ OPC_CheckType, MVT::i32, ++/*299053*/ OPC_MoveParent, ++/*299054*/ OPC_MoveChild7, ++/*299055*/ OPC_CheckInteger, 1, ++/*299057*/ OPC_CheckType, MVT::i32, ++/*299059*/ OPC_MoveParent, ++/*299060*/ OPC_MoveChild, 8, ++/*299062*/ OPC_CheckInteger, 1, ++/*299064*/ OPC_CheckType, MVT::i32, ++/*299066*/ OPC_MoveParent, ++/*299067*/ OPC_MoveChild, 9, ++/*299069*/ OPC_CheckInteger, 1, ++/*299071*/ OPC_CheckType, MVT::i32, ++/*299073*/ OPC_MoveParent, ++/*299074*/ OPC_MoveChild, 10, ++/*299076*/ OPC_CheckInteger, 1, ++/*299078*/ OPC_CheckType, MVT::i32, ++/*299080*/ OPC_MoveParent, ++/*299081*/ OPC_MoveChild, 11, ++/*299083*/ OPC_CheckInteger, 1, ++/*299085*/ OPC_CheckType, MVT::i32, ++/*299087*/ OPC_MoveParent, ++/*299088*/ OPC_MoveChild, 12, ++/*299090*/ OPC_CheckInteger, 1, ++/*299092*/ OPC_CheckType, MVT::i32, ++/*299094*/ OPC_MoveParent, ++/*299095*/ OPC_MoveChild, 13, ++/*299097*/ OPC_CheckInteger, 1, ++/*299099*/ OPC_CheckType, MVT::i32, ++/*299101*/ OPC_MoveParent, ++/*299102*/ OPC_MoveChild, 14, ++/*299104*/ OPC_CheckInteger, 1, ++/*299106*/ OPC_CheckType, MVT::i32, ++/*299108*/ OPC_MoveParent, ++/*299109*/ OPC_MoveChild, 15, ++/*299111*/ OPC_CheckInteger, 1, ++/*299113*/ OPC_CheckType, MVT::i32, ++/*299115*/ OPC_MoveParent, ++/*299116*/ OPC_MoveChild, 16, ++/*299118*/ OPC_CheckInteger, 1, ++/*299120*/ OPC_CheckType, MVT::i32, ++/*299122*/ OPC_MoveParent, ++/*299123*/ OPC_MoveChild, 17, ++/*299125*/ OPC_CheckInteger, 1, ++/*299127*/ OPC_CheckType, MVT::i32, ++/*299129*/ OPC_MoveParent, ++/*299130*/ OPC_MoveChild, 18, ++/*299132*/ OPC_CheckInteger, 1, ++/*299134*/ OPC_CheckType, MVT::i32, ++/*299136*/ OPC_MoveParent, ++/*299137*/ OPC_MoveChild, 19, ++/*299139*/ OPC_CheckInteger, 1, ++/*299141*/ OPC_CheckType, MVT::i32, ++/*299143*/ OPC_MoveParent, ++/*299144*/ OPC_MoveChild, 20, ++/*299146*/ OPC_CheckInteger, 1, ++/*299148*/ OPC_CheckType, MVT::i32, ++/*299150*/ OPC_MoveParent, ++/*299151*/ OPC_MoveChild, 21, ++/*299153*/ OPC_CheckInteger, 1, ++/*299155*/ OPC_CheckType, MVT::i32, ++/*299157*/ OPC_MoveParent, ++/*299158*/ OPC_MoveChild, 22, ++/*299160*/ OPC_CheckInteger, 1, ++/*299162*/ OPC_CheckType, MVT::i32, ++/*299164*/ OPC_MoveParent, ++/*299165*/ OPC_MoveChild, 23, ++/*299167*/ OPC_CheckInteger, 1, ++/*299169*/ OPC_CheckType, MVT::i32, ++/*299171*/ OPC_MoveParent, ++/*299172*/ OPC_MoveChild, 24, ++/*299174*/ OPC_CheckInteger, 1, ++/*299176*/ OPC_CheckType, MVT::i32, ++/*299178*/ OPC_MoveParent, ++/*299179*/ OPC_MoveChild, 25, ++/*299181*/ OPC_CheckInteger, 1, ++/*299183*/ OPC_CheckType, MVT::i32, ++/*299185*/ OPC_MoveParent, ++/*299186*/ OPC_MoveChild, 26, ++/*299188*/ OPC_CheckInteger, 1, ++/*299190*/ OPC_CheckType, MVT::i32, ++/*299192*/ OPC_MoveParent, ++/*299193*/ OPC_MoveChild, 27, ++/*299195*/ OPC_CheckInteger, 1, ++/*299197*/ OPC_CheckType, MVT::i32, ++/*299199*/ OPC_MoveParent, ++/*299200*/ OPC_MoveChild, 28, ++/*299202*/ OPC_CheckInteger, 1, ++/*299204*/ OPC_CheckType, MVT::i32, ++/*299206*/ OPC_MoveParent, ++/*299207*/ OPC_MoveChild, 29, ++/*299209*/ OPC_CheckInteger, 1, ++/*299211*/ OPC_CheckType, MVT::i32, ++/*299213*/ OPC_MoveParent, ++/*299214*/ OPC_MoveChild, 30, ++/*299216*/ OPC_CheckInteger, 1, ++/*299218*/ OPC_CheckType, MVT::i32, ++/*299220*/ OPC_MoveParent, ++/*299221*/ OPC_MoveChild, 31, ++/*299223*/ OPC_CheckInteger, 1, ++/*299225*/ OPC_CheckType, MVT::i32, ++/*299227*/ OPC_MoveParent, ++/*299228*/ OPC_CheckType, MVT::v32i8, ++/*299230*/ OPC_MoveParent, ++/*299231*/ OPC_CheckType, MVT::v32i8, ++/*299233*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*299235*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*299243*/ 0, /*End of Scope*/ ++/*299244*/ /*Scope*/ 126|128,6/*894*/, /*->300140*/ ++/*299246*/ OPC_CheckChild0Same, 1, ++/*299248*/ OPC_MoveChild1, ++/*299249*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*299252*/ OPC_Scope, 57|128,3/*441*/, /*->299696*/ // 2 children in Scope ++/*299255*/ OPC_MoveChild0, ++/*299256*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*299259*/ OPC_CheckChild0Integer, 1, ++/*299261*/ OPC_CheckChild0Type, MVT::i32, ++/*299263*/ OPC_CheckChild1Integer, 1, ++/*299265*/ OPC_CheckChild1Type, MVT::i32, ++/*299267*/ OPC_CheckChild2Integer, 1, ++/*299269*/ OPC_CheckChild2Type, MVT::i32, ++/*299271*/ OPC_CheckChild3Integer, 1, ++/*299273*/ OPC_CheckChild3Type, MVT::i32, ++/*299275*/ OPC_CheckChild4Integer, 1, ++/*299277*/ OPC_CheckChild4Type, MVT::i32, ++/*299279*/ OPC_MoveChild5, ++/*299280*/ OPC_CheckInteger, 1, ++/*299282*/ OPC_CheckType, MVT::i32, ++/*299284*/ OPC_MoveParent, ++/*299285*/ OPC_MoveChild6, ++/*299286*/ OPC_CheckInteger, 1, ++/*299288*/ OPC_CheckType, MVT::i32, ++/*299290*/ OPC_MoveParent, ++/*299291*/ OPC_MoveChild7, ++/*299292*/ OPC_CheckInteger, 1, ++/*299294*/ OPC_CheckType, MVT::i32, ++/*299296*/ OPC_MoveParent, ++/*299297*/ OPC_MoveChild, 8, ++/*299299*/ OPC_CheckInteger, 1, ++/*299301*/ OPC_CheckType, MVT::i32, ++/*299303*/ OPC_MoveParent, ++/*299304*/ OPC_MoveChild, 9, ++/*299306*/ OPC_CheckInteger, 1, ++/*299308*/ OPC_CheckType, MVT::i32, ++/*299310*/ OPC_MoveParent, ++/*299311*/ OPC_MoveChild, 10, ++/*299313*/ OPC_CheckInteger, 1, ++/*299315*/ OPC_CheckType, MVT::i32, ++/*299317*/ OPC_MoveParent, ++/*299318*/ OPC_MoveChild, 11, ++/*299320*/ OPC_CheckInteger, 1, ++/*299322*/ OPC_CheckType, MVT::i32, ++/*299324*/ OPC_MoveParent, ++/*299325*/ OPC_MoveChild, 12, ++/*299327*/ OPC_CheckInteger, 1, ++/*299329*/ OPC_CheckType, MVT::i32, ++/*299331*/ OPC_MoveParent, ++/*299332*/ OPC_MoveChild, 13, ++/*299334*/ OPC_CheckInteger, 1, ++/*299336*/ OPC_CheckType, MVT::i32, ++/*299338*/ OPC_MoveParent, ++/*299339*/ OPC_MoveChild, 14, ++/*299341*/ OPC_CheckInteger, 1, ++/*299343*/ OPC_CheckType, MVT::i32, ++/*299345*/ OPC_MoveParent, ++/*299346*/ OPC_MoveChild, 15, ++/*299348*/ OPC_CheckInteger, 1, ++/*299350*/ OPC_CheckType, MVT::i32, ++/*299352*/ OPC_MoveParent, ++/*299353*/ OPC_MoveChild, 16, ++/*299355*/ OPC_CheckInteger, 1, ++/*299357*/ OPC_CheckType, MVT::i32, ++/*299359*/ OPC_MoveParent, ++/*299360*/ OPC_MoveChild, 17, ++/*299362*/ OPC_CheckInteger, 1, ++/*299364*/ OPC_CheckType, MVT::i32, ++/*299366*/ OPC_MoveParent, ++/*299367*/ OPC_MoveChild, 18, ++/*299369*/ OPC_CheckInteger, 1, ++/*299371*/ OPC_CheckType, MVT::i32, ++/*299373*/ OPC_MoveParent, ++/*299374*/ OPC_MoveChild, 19, ++/*299376*/ OPC_CheckInteger, 1, ++/*299378*/ OPC_CheckType, MVT::i32, ++/*299380*/ OPC_MoveParent, ++/*299381*/ OPC_MoveChild, 20, ++/*299383*/ OPC_CheckInteger, 1, ++/*299385*/ OPC_CheckType, MVT::i32, ++/*299387*/ OPC_MoveParent, ++/*299388*/ OPC_MoveChild, 21, ++/*299390*/ OPC_CheckInteger, 1, ++/*299392*/ OPC_CheckType, MVT::i32, ++/*299394*/ OPC_MoveParent, ++/*299395*/ OPC_MoveChild, 22, ++/*299397*/ OPC_CheckInteger, 1, ++/*299399*/ OPC_CheckType, MVT::i32, ++/*299401*/ OPC_MoveParent, ++/*299402*/ OPC_MoveChild, 23, ++/*299404*/ OPC_CheckInteger, 1, ++/*299406*/ OPC_CheckType, MVT::i32, ++/*299408*/ OPC_MoveParent, ++/*299409*/ OPC_MoveChild, 24, ++/*299411*/ OPC_CheckInteger, 1, ++/*299413*/ OPC_CheckType, MVT::i32, ++/*299415*/ OPC_MoveParent, ++/*299416*/ OPC_MoveChild, 25, ++/*299418*/ OPC_CheckInteger, 1, ++/*299420*/ OPC_CheckType, MVT::i32, ++/*299422*/ OPC_MoveParent, ++/*299423*/ OPC_MoveChild, 26, ++/*299425*/ OPC_CheckInteger, 1, ++/*299427*/ OPC_CheckType, MVT::i32, ++/*299429*/ OPC_MoveParent, ++/*299430*/ OPC_MoveChild, 27, ++/*299432*/ OPC_CheckInteger, 1, ++/*299434*/ OPC_CheckType, MVT::i32, ++/*299436*/ OPC_MoveParent, ++/*299437*/ OPC_MoveChild, 28, ++/*299439*/ OPC_CheckInteger, 1, ++/*299441*/ OPC_CheckType, MVT::i32, ++/*299443*/ OPC_MoveParent, ++/*299444*/ OPC_MoveChild, 29, ++/*299446*/ OPC_CheckInteger, 1, ++/*299448*/ OPC_CheckType, MVT::i32, ++/*299450*/ OPC_MoveParent, ++/*299451*/ OPC_MoveChild, 30, ++/*299453*/ OPC_CheckInteger, 1, ++/*299455*/ OPC_CheckType, MVT::i32, ++/*299457*/ OPC_MoveParent, ++/*299458*/ OPC_MoveChild, 31, ++/*299460*/ OPC_CheckInteger, 1, ++/*299462*/ OPC_CheckType, MVT::i32, ++/*299464*/ OPC_MoveParent, ++/*299465*/ OPC_MoveParent, ++/*299466*/ OPC_CheckChild1Same, 0, ++/*299468*/ OPC_MoveParent, ++/*299469*/ OPC_MoveParent, ++/*299470*/ OPC_MoveParent, ++/*299471*/ OPC_MoveChild1, ++/*299472*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*299475*/ OPC_CheckChild0Integer, 1, ++/*299477*/ OPC_CheckChild0Type, MVT::i32, ++/*299479*/ OPC_CheckChild1Integer, 1, ++/*299481*/ OPC_CheckChild1Type, MVT::i32, ++/*299483*/ OPC_CheckChild2Integer, 1, ++/*299485*/ OPC_CheckChild2Type, MVT::i32, ++/*299487*/ OPC_CheckChild3Integer, 1, ++/*299489*/ OPC_CheckChild3Type, MVT::i32, ++/*299491*/ OPC_CheckChild4Integer, 1, ++/*299493*/ OPC_CheckChild4Type, MVT::i32, ++/*299495*/ OPC_MoveChild5, ++/*299496*/ OPC_CheckInteger, 1, ++/*299498*/ OPC_CheckType, MVT::i32, ++/*299500*/ OPC_MoveParent, ++/*299501*/ OPC_MoveChild6, ++/*299502*/ OPC_CheckInteger, 1, ++/*299504*/ OPC_CheckType, MVT::i32, ++/*299506*/ OPC_MoveParent, ++/*299507*/ OPC_MoveChild7, ++/*299508*/ OPC_CheckInteger, 1, ++/*299510*/ OPC_CheckType, MVT::i32, ++/*299512*/ OPC_MoveParent, ++/*299513*/ OPC_MoveChild, 8, ++/*299515*/ OPC_CheckInteger, 1, ++/*299517*/ OPC_CheckType, MVT::i32, ++/*299519*/ OPC_MoveParent, ++/*299520*/ OPC_MoveChild, 9, ++/*299522*/ OPC_CheckInteger, 1, ++/*299524*/ OPC_CheckType, MVT::i32, ++/*299526*/ OPC_MoveParent, ++/*299527*/ OPC_MoveChild, 10, ++/*299529*/ OPC_CheckInteger, 1, ++/*299531*/ OPC_CheckType, MVT::i32, ++/*299533*/ OPC_MoveParent, ++/*299534*/ OPC_MoveChild, 11, ++/*299536*/ OPC_CheckInteger, 1, ++/*299538*/ OPC_CheckType, MVT::i32, ++/*299540*/ OPC_MoveParent, ++/*299541*/ OPC_MoveChild, 12, ++/*299543*/ OPC_CheckInteger, 1, ++/*299545*/ OPC_CheckType, MVT::i32, ++/*299547*/ OPC_MoveParent, ++/*299548*/ OPC_MoveChild, 13, ++/*299550*/ OPC_CheckInteger, 1, ++/*299552*/ OPC_CheckType, MVT::i32, ++/*299554*/ OPC_MoveParent, ++/*299555*/ OPC_MoveChild, 14, ++/*299557*/ OPC_CheckInteger, 1, ++/*299559*/ OPC_CheckType, MVT::i32, ++/*299561*/ OPC_MoveParent, ++/*299562*/ OPC_MoveChild, 15, ++/*299564*/ OPC_CheckInteger, 1, ++/*299566*/ OPC_CheckType, MVT::i32, ++/*299568*/ OPC_MoveParent, ++/*299569*/ OPC_MoveChild, 16, ++/*299571*/ OPC_CheckInteger, 1, ++/*299573*/ OPC_CheckType, MVT::i32, ++/*299575*/ OPC_MoveParent, ++/*299576*/ OPC_MoveChild, 17, ++/*299578*/ OPC_CheckInteger, 1, ++/*299580*/ OPC_CheckType, MVT::i32, ++/*299582*/ OPC_MoveParent, ++/*299583*/ OPC_MoveChild, 18, ++/*299585*/ OPC_CheckInteger, 1, ++/*299587*/ OPC_CheckType, MVT::i32, ++/*299589*/ OPC_MoveParent, ++/*299590*/ OPC_MoveChild, 19, ++/*299592*/ OPC_CheckInteger, 1, ++/*299594*/ OPC_CheckType, MVT::i32, ++/*299596*/ OPC_MoveParent, ++/*299597*/ OPC_MoveChild, 20, ++/*299599*/ OPC_CheckInteger, 1, ++/*299601*/ OPC_CheckType, MVT::i32, ++/*299603*/ OPC_MoveParent, ++/*299604*/ OPC_MoveChild, 21, ++/*299606*/ OPC_CheckInteger, 1, ++/*299608*/ OPC_CheckType, MVT::i32, ++/*299610*/ OPC_MoveParent, ++/*299611*/ OPC_MoveChild, 22, ++/*299613*/ OPC_CheckInteger, 1, ++/*299615*/ OPC_CheckType, MVT::i32, ++/*299617*/ OPC_MoveParent, ++/*299618*/ OPC_MoveChild, 23, ++/*299620*/ OPC_CheckInteger, 1, ++/*299622*/ OPC_CheckType, MVT::i32, ++/*299624*/ OPC_MoveParent, ++/*299625*/ OPC_MoveChild, 24, ++/*299627*/ OPC_CheckInteger, 1, ++/*299629*/ OPC_CheckType, MVT::i32, ++/*299631*/ OPC_MoveParent, ++/*299632*/ OPC_MoveChild, 25, ++/*299634*/ OPC_CheckInteger, 1, ++/*299636*/ OPC_CheckType, MVT::i32, ++/*299638*/ OPC_MoveParent, ++/*299639*/ OPC_MoveChild, 26, ++/*299641*/ OPC_CheckInteger, 1, ++/*299643*/ OPC_CheckType, MVT::i32, ++/*299645*/ OPC_MoveParent, ++/*299646*/ OPC_MoveChild, 27, ++/*299648*/ OPC_CheckInteger, 1, ++/*299650*/ OPC_CheckType, MVT::i32, ++/*299652*/ OPC_MoveParent, ++/*299653*/ OPC_MoveChild, 28, ++/*299655*/ OPC_CheckInteger, 1, ++/*299657*/ OPC_CheckType, MVT::i32, ++/*299659*/ OPC_MoveParent, ++/*299660*/ OPC_MoveChild, 29, ++/*299662*/ OPC_CheckInteger, 1, ++/*299664*/ OPC_CheckType, MVT::i32, ++/*299666*/ OPC_MoveParent, ++/*299667*/ OPC_MoveChild, 30, ++/*299669*/ OPC_CheckInteger, 1, ++/*299671*/ OPC_CheckType, MVT::i32, ++/*299673*/ OPC_MoveParent, ++/*299674*/ OPC_MoveChild, 31, ++/*299676*/ OPC_CheckInteger, 1, ++/*299678*/ OPC_CheckType, MVT::i32, ++/*299680*/ OPC_MoveParent, ++/*299681*/ OPC_CheckType, MVT::v32i8, ++/*299683*/ OPC_MoveParent, ++/*299684*/ OPC_CheckType, MVT::v32i8, ++/*299686*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*299688*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*299696*/ /*Scope*/ 57|128,3/*441*/, /*->300139*/ ++/*299698*/ OPC_CheckChild0Same, 0, ++/*299700*/ OPC_MoveChild1, ++/*299701*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*299704*/ OPC_CheckChild0Integer, 1, ++/*299706*/ OPC_CheckChild0Type, MVT::i32, ++/*299708*/ OPC_CheckChild1Integer, 1, ++/*299710*/ OPC_CheckChild1Type, MVT::i32, ++/*299712*/ OPC_CheckChild2Integer, 1, ++/*299714*/ OPC_CheckChild2Type, MVT::i32, ++/*299716*/ OPC_CheckChild3Integer, 1, ++/*299718*/ OPC_CheckChild3Type, MVT::i32, ++/*299720*/ OPC_CheckChild4Integer, 1, ++/*299722*/ OPC_CheckChild4Type, MVT::i32, ++/*299724*/ OPC_MoveChild5, ++/*299725*/ OPC_CheckInteger, 1, ++/*299727*/ OPC_CheckType, MVT::i32, ++/*299729*/ OPC_MoveParent, ++/*299730*/ OPC_MoveChild6, ++/*299731*/ OPC_CheckInteger, 1, ++/*299733*/ OPC_CheckType, MVT::i32, ++/*299735*/ OPC_MoveParent, ++/*299736*/ OPC_MoveChild7, ++/*299737*/ OPC_CheckInteger, 1, ++/*299739*/ OPC_CheckType, MVT::i32, ++/*299741*/ OPC_MoveParent, ++/*299742*/ OPC_MoveChild, 8, ++/*299744*/ OPC_CheckInteger, 1, ++/*299746*/ OPC_CheckType, MVT::i32, ++/*299748*/ OPC_MoveParent, ++/*299749*/ OPC_MoveChild, 9, ++/*299751*/ OPC_CheckInteger, 1, ++/*299753*/ OPC_CheckType, MVT::i32, ++/*299755*/ OPC_MoveParent, ++/*299756*/ OPC_MoveChild, 10, ++/*299758*/ OPC_CheckInteger, 1, ++/*299760*/ OPC_CheckType, MVT::i32, ++/*299762*/ OPC_MoveParent, ++/*299763*/ OPC_MoveChild, 11, ++/*299765*/ OPC_CheckInteger, 1, ++/*299767*/ OPC_CheckType, MVT::i32, ++/*299769*/ OPC_MoveParent, ++/*299770*/ OPC_MoveChild, 12, ++/*299772*/ OPC_CheckInteger, 1, ++/*299774*/ OPC_CheckType, MVT::i32, ++/*299776*/ OPC_MoveParent, ++/*299777*/ OPC_MoveChild, 13, ++/*299779*/ OPC_CheckInteger, 1, ++/*299781*/ OPC_CheckType, MVT::i32, ++/*299783*/ OPC_MoveParent, ++/*299784*/ OPC_MoveChild, 14, ++/*299786*/ OPC_CheckInteger, 1, ++/*299788*/ OPC_CheckType, MVT::i32, ++/*299790*/ OPC_MoveParent, ++/*299791*/ OPC_MoveChild, 15, ++/*299793*/ OPC_CheckInteger, 1, ++/*299795*/ OPC_CheckType, MVT::i32, ++/*299797*/ OPC_MoveParent, ++/*299798*/ OPC_MoveChild, 16, ++/*299800*/ OPC_CheckInteger, 1, ++/*299802*/ OPC_CheckType, MVT::i32, ++/*299804*/ OPC_MoveParent, ++/*299805*/ OPC_MoveChild, 17, ++/*299807*/ OPC_CheckInteger, 1, ++/*299809*/ OPC_CheckType, MVT::i32, ++/*299811*/ OPC_MoveParent, ++/*299812*/ OPC_MoveChild, 18, ++/*299814*/ OPC_CheckInteger, 1, ++/*299816*/ OPC_CheckType, MVT::i32, ++/*299818*/ OPC_MoveParent, ++/*299819*/ OPC_MoveChild, 19, ++/*299821*/ OPC_CheckInteger, 1, ++/*299823*/ OPC_CheckType, MVT::i32, ++/*299825*/ OPC_MoveParent, ++/*299826*/ OPC_MoveChild, 20, ++/*299828*/ OPC_CheckInteger, 1, ++/*299830*/ OPC_CheckType, MVT::i32, ++/*299832*/ OPC_MoveParent, ++/*299833*/ OPC_MoveChild, 21, ++/*299835*/ OPC_CheckInteger, 1, ++/*299837*/ OPC_CheckType, MVT::i32, ++/*299839*/ OPC_MoveParent, ++/*299840*/ OPC_MoveChild, 22, ++/*299842*/ OPC_CheckInteger, 1, ++/*299844*/ OPC_CheckType, MVT::i32, ++/*299846*/ OPC_MoveParent, ++/*299847*/ OPC_MoveChild, 23, ++/*299849*/ OPC_CheckInteger, 1, ++/*299851*/ OPC_CheckType, MVT::i32, ++/*299853*/ OPC_MoveParent, ++/*299854*/ OPC_MoveChild, 24, ++/*299856*/ OPC_CheckInteger, 1, ++/*299858*/ OPC_CheckType, MVT::i32, ++/*299860*/ OPC_MoveParent, ++/*299861*/ OPC_MoveChild, 25, ++/*299863*/ OPC_CheckInteger, 1, ++/*299865*/ OPC_CheckType, MVT::i32, ++/*299867*/ OPC_MoveParent, ++/*299868*/ OPC_MoveChild, 26, ++/*299870*/ OPC_CheckInteger, 1, ++/*299872*/ OPC_CheckType, MVT::i32, ++/*299874*/ OPC_MoveParent, ++/*299875*/ OPC_MoveChild, 27, ++/*299877*/ OPC_CheckInteger, 1, ++/*299879*/ OPC_CheckType, MVT::i32, ++/*299881*/ OPC_MoveParent, ++/*299882*/ OPC_MoveChild, 28, ++/*299884*/ OPC_CheckInteger, 1, ++/*299886*/ OPC_CheckType, MVT::i32, ++/*299888*/ OPC_MoveParent, ++/*299889*/ OPC_MoveChild, 29, ++/*299891*/ OPC_CheckInteger, 1, ++/*299893*/ OPC_CheckType, MVT::i32, ++/*299895*/ OPC_MoveParent, ++/*299896*/ OPC_MoveChild, 30, ++/*299898*/ OPC_CheckInteger, 1, ++/*299900*/ OPC_CheckType, MVT::i32, ++/*299902*/ OPC_MoveParent, ++/*299903*/ OPC_MoveChild, 31, ++/*299905*/ OPC_CheckInteger, 1, ++/*299907*/ OPC_CheckType, MVT::i32, ++/*299909*/ OPC_MoveParent, ++/*299910*/ OPC_MoveParent, ++/*299911*/ OPC_MoveParent, ++/*299912*/ OPC_MoveParent, ++/*299913*/ OPC_MoveParent, ++/*299914*/ OPC_MoveChild1, ++/*299915*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*299918*/ OPC_CheckChild0Integer, 1, ++/*299920*/ OPC_CheckChild0Type, MVT::i32, ++/*299922*/ OPC_CheckChild1Integer, 1, ++/*299924*/ OPC_CheckChild1Type, MVT::i32, ++/*299926*/ OPC_CheckChild2Integer, 1, ++/*299928*/ OPC_CheckChild2Type, MVT::i32, ++/*299930*/ OPC_CheckChild3Integer, 1, ++/*299932*/ OPC_CheckChild3Type, MVT::i32, ++/*299934*/ OPC_CheckChild4Integer, 1, ++/*299936*/ OPC_CheckChild4Type, MVT::i32, ++/*299938*/ OPC_MoveChild5, ++/*299939*/ OPC_CheckInteger, 1, ++/*299941*/ OPC_CheckType, MVT::i32, ++/*299943*/ OPC_MoveParent, ++/*299944*/ OPC_MoveChild6, ++/*299945*/ OPC_CheckInteger, 1, ++/*299947*/ OPC_CheckType, MVT::i32, ++/*299949*/ OPC_MoveParent, ++/*299950*/ OPC_MoveChild7, ++/*299951*/ OPC_CheckInteger, 1, ++/*299953*/ OPC_CheckType, MVT::i32, ++/*299955*/ OPC_MoveParent, ++/*299956*/ OPC_MoveChild, 8, ++/*299958*/ OPC_CheckInteger, 1, ++/*299960*/ OPC_CheckType, MVT::i32, ++/*299962*/ OPC_MoveParent, ++/*299963*/ OPC_MoveChild, 9, ++/*299965*/ OPC_CheckInteger, 1, ++/*299967*/ OPC_CheckType, MVT::i32, ++/*299969*/ OPC_MoveParent, ++/*299970*/ OPC_MoveChild, 10, ++/*299972*/ OPC_CheckInteger, 1, ++/*299974*/ OPC_CheckType, MVT::i32, ++/*299976*/ OPC_MoveParent, ++/*299977*/ OPC_MoveChild, 11, ++/*299979*/ OPC_CheckInteger, 1, ++/*299981*/ OPC_CheckType, MVT::i32, ++/*299983*/ OPC_MoveParent, ++/*299984*/ OPC_MoveChild, 12, ++/*299986*/ OPC_CheckInteger, 1, ++/*299988*/ OPC_CheckType, MVT::i32, ++/*299990*/ OPC_MoveParent, ++/*299991*/ OPC_MoveChild, 13, ++/*299993*/ OPC_CheckInteger, 1, ++/*299995*/ OPC_CheckType, MVT::i32, ++/*299997*/ OPC_MoveParent, ++/*299998*/ OPC_MoveChild, 14, ++/*300000*/ OPC_CheckInteger, 1, ++/*300002*/ OPC_CheckType, MVT::i32, ++/*300004*/ OPC_MoveParent, ++/*300005*/ OPC_MoveChild, 15, ++/*300007*/ OPC_CheckInteger, 1, ++/*300009*/ OPC_CheckType, MVT::i32, ++/*300011*/ OPC_MoveParent, ++/*300012*/ OPC_MoveChild, 16, ++/*300014*/ OPC_CheckInteger, 1, ++/*300016*/ OPC_CheckType, MVT::i32, ++/*300018*/ OPC_MoveParent, ++/*300019*/ OPC_MoveChild, 17, ++/*300021*/ OPC_CheckInteger, 1, ++/*300023*/ OPC_CheckType, MVT::i32, ++/*300025*/ OPC_MoveParent, ++/*300026*/ OPC_MoveChild, 18, ++/*300028*/ OPC_CheckInteger, 1, ++/*300030*/ OPC_CheckType, MVT::i32, ++/*300032*/ OPC_MoveParent, ++/*300033*/ OPC_MoveChild, 19, ++/*300035*/ OPC_CheckInteger, 1, ++/*300037*/ OPC_CheckType, MVT::i32, ++/*300039*/ OPC_MoveParent, ++/*300040*/ OPC_MoveChild, 20, ++/*300042*/ OPC_CheckInteger, 1, ++/*300044*/ OPC_CheckType, MVT::i32, ++/*300046*/ OPC_MoveParent, ++/*300047*/ OPC_MoveChild, 21, ++/*300049*/ OPC_CheckInteger, 1, ++/*300051*/ OPC_CheckType, MVT::i32, ++/*300053*/ OPC_MoveParent, ++/*300054*/ OPC_MoveChild, 22, ++/*300056*/ OPC_CheckInteger, 1, ++/*300058*/ OPC_CheckType, MVT::i32, ++/*300060*/ OPC_MoveParent, ++/*300061*/ OPC_MoveChild, 23, ++/*300063*/ OPC_CheckInteger, 1, ++/*300065*/ OPC_CheckType, MVT::i32, ++/*300067*/ OPC_MoveParent, ++/*300068*/ OPC_MoveChild, 24, ++/*300070*/ OPC_CheckInteger, 1, ++/*300072*/ OPC_CheckType, MVT::i32, ++/*300074*/ OPC_MoveParent, ++/*300075*/ OPC_MoveChild, 25, ++/*300077*/ OPC_CheckInteger, 1, ++/*300079*/ OPC_CheckType, MVT::i32, ++/*300081*/ OPC_MoveParent, ++/*300082*/ OPC_MoveChild, 26, ++/*300084*/ OPC_CheckInteger, 1, ++/*300086*/ OPC_CheckType, MVT::i32, ++/*300088*/ OPC_MoveParent, ++/*300089*/ OPC_MoveChild, 27, ++/*300091*/ OPC_CheckInteger, 1, ++/*300093*/ OPC_CheckType, MVT::i32, ++/*300095*/ OPC_MoveParent, ++/*300096*/ OPC_MoveChild, 28, ++/*300098*/ OPC_CheckInteger, 1, ++/*300100*/ OPC_CheckType, MVT::i32, ++/*300102*/ OPC_MoveParent, ++/*300103*/ OPC_MoveChild, 29, ++/*300105*/ OPC_CheckInteger, 1, ++/*300107*/ OPC_CheckType, MVT::i32, ++/*300109*/ OPC_MoveParent, ++/*300110*/ OPC_MoveChild, 30, ++/*300112*/ OPC_CheckInteger, 1, ++/*300114*/ OPC_CheckType, MVT::i32, ++/*300116*/ OPC_MoveParent, ++/*300117*/ OPC_MoveChild, 31, ++/*300119*/ OPC_CheckInteger, 1, ++/*300121*/ OPC_CheckType, MVT::i32, ++/*300123*/ OPC_MoveParent, ++/*300124*/ OPC_CheckType, MVT::v32i8, ++/*300126*/ OPC_MoveParent, ++/*300127*/ OPC_CheckType, MVT::v32i8, ++/*300129*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*300131*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*300139*/ 0, /*End of Scope*/ ++/*300140*/ /*Scope*/ 126|128,6/*894*/, /*->301036*/ ++/*300142*/ OPC_CheckChild0Same, 0, ++/*300144*/ OPC_MoveChild1, ++/*300145*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*300148*/ OPC_Scope, 57|128,3/*441*/, /*->300592*/ // 2 children in Scope ++/*300151*/ OPC_MoveChild0, ++/*300152*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*300155*/ OPC_CheckChild0Integer, 1, ++/*300157*/ OPC_CheckChild0Type, MVT::i32, ++/*300159*/ OPC_CheckChild1Integer, 1, ++/*300161*/ OPC_CheckChild1Type, MVT::i32, ++/*300163*/ OPC_CheckChild2Integer, 1, ++/*300165*/ OPC_CheckChild2Type, MVT::i32, ++/*300167*/ OPC_CheckChild3Integer, 1, ++/*300169*/ OPC_CheckChild3Type, MVT::i32, ++/*300171*/ OPC_CheckChild4Integer, 1, ++/*300173*/ OPC_CheckChild4Type, MVT::i32, ++/*300175*/ OPC_MoveChild5, ++/*300176*/ OPC_CheckInteger, 1, ++/*300178*/ OPC_CheckType, MVT::i32, ++/*300180*/ OPC_MoveParent, ++/*300181*/ OPC_MoveChild6, ++/*300182*/ OPC_CheckInteger, 1, ++/*300184*/ OPC_CheckType, MVT::i32, ++/*300186*/ OPC_MoveParent, ++/*300187*/ OPC_MoveChild7, ++/*300188*/ OPC_CheckInteger, 1, ++/*300190*/ OPC_CheckType, MVT::i32, ++/*300192*/ OPC_MoveParent, ++/*300193*/ OPC_MoveChild, 8, ++/*300195*/ OPC_CheckInteger, 1, ++/*300197*/ OPC_CheckType, MVT::i32, ++/*300199*/ OPC_MoveParent, ++/*300200*/ OPC_MoveChild, 9, ++/*300202*/ OPC_CheckInteger, 1, ++/*300204*/ OPC_CheckType, MVT::i32, ++/*300206*/ OPC_MoveParent, ++/*300207*/ OPC_MoveChild, 10, ++/*300209*/ OPC_CheckInteger, 1, ++/*300211*/ OPC_CheckType, MVT::i32, ++/*300213*/ OPC_MoveParent, ++/*300214*/ OPC_MoveChild, 11, ++/*300216*/ OPC_CheckInteger, 1, ++/*300218*/ OPC_CheckType, MVT::i32, ++/*300220*/ OPC_MoveParent, ++/*300221*/ OPC_MoveChild, 12, ++/*300223*/ OPC_CheckInteger, 1, ++/*300225*/ OPC_CheckType, MVT::i32, ++/*300227*/ OPC_MoveParent, ++/*300228*/ OPC_MoveChild, 13, ++/*300230*/ OPC_CheckInteger, 1, ++/*300232*/ OPC_CheckType, MVT::i32, ++/*300234*/ OPC_MoveParent, ++/*300235*/ OPC_MoveChild, 14, ++/*300237*/ OPC_CheckInteger, 1, ++/*300239*/ OPC_CheckType, MVT::i32, ++/*300241*/ OPC_MoveParent, ++/*300242*/ OPC_MoveChild, 15, ++/*300244*/ OPC_CheckInteger, 1, ++/*300246*/ OPC_CheckType, MVT::i32, ++/*300248*/ OPC_MoveParent, ++/*300249*/ OPC_MoveChild, 16, ++/*300251*/ OPC_CheckInteger, 1, ++/*300253*/ OPC_CheckType, MVT::i32, ++/*300255*/ OPC_MoveParent, ++/*300256*/ OPC_MoveChild, 17, ++/*300258*/ OPC_CheckInteger, 1, ++/*300260*/ OPC_CheckType, MVT::i32, ++/*300262*/ OPC_MoveParent, ++/*300263*/ OPC_MoveChild, 18, ++/*300265*/ OPC_CheckInteger, 1, ++/*300267*/ OPC_CheckType, MVT::i32, ++/*300269*/ OPC_MoveParent, ++/*300270*/ OPC_MoveChild, 19, ++/*300272*/ OPC_CheckInteger, 1, ++/*300274*/ OPC_CheckType, MVT::i32, ++/*300276*/ OPC_MoveParent, ++/*300277*/ OPC_MoveChild, 20, ++/*300279*/ OPC_CheckInteger, 1, ++/*300281*/ OPC_CheckType, MVT::i32, ++/*300283*/ OPC_MoveParent, ++/*300284*/ OPC_MoveChild, 21, ++/*300286*/ OPC_CheckInteger, 1, ++/*300288*/ OPC_CheckType, MVT::i32, ++/*300290*/ OPC_MoveParent, ++/*300291*/ OPC_MoveChild, 22, ++/*300293*/ OPC_CheckInteger, 1, ++/*300295*/ OPC_CheckType, MVT::i32, ++/*300297*/ OPC_MoveParent, ++/*300298*/ OPC_MoveChild, 23, ++/*300300*/ OPC_CheckInteger, 1, ++/*300302*/ OPC_CheckType, MVT::i32, ++/*300304*/ OPC_MoveParent, ++/*300305*/ OPC_MoveChild, 24, ++/*300307*/ OPC_CheckInteger, 1, ++/*300309*/ OPC_CheckType, MVT::i32, ++/*300311*/ OPC_MoveParent, ++/*300312*/ OPC_MoveChild, 25, ++/*300314*/ OPC_CheckInteger, 1, ++/*300316*/ OPC_CheckType, MVT::i32, ++/*300318*/ OPC_MoveParent, ++/*300319*/ OPC_MoveChild, 26, ++/*300321*/ OPC_CheckInteger, 1, ++/*300323*/ OPC_CheckType, MVT::i32, ++/*300325*/ OPC_MoveParent, ++/*300326*/ OPC_MoveChild, 27, ++/*300328*/ OPC_CheckInteger, 1, ++/*300330*/ OPC_CheckType, MVT::i32, ++/*300332*/ OPC_MoveParent, ++/*300333*/ OPC_MoveChild, 28, ++/*300335*/ OPC_CheckInteger, 1, ++/*300337*/ OPC_CheckType, MVT::i32, ++/*300339*/ OPC_MoveParent, ++/*300340*/ OPC_MoveChild, 29, ++/*300342*/ OPC_CheckInteger, 1, ++/*300344*/ OPC_CheckType, MVT::i32, ++/*300346*/ OPC_MoveParent, ++/*300347*/ OPC_MoveChild, 30, ++/*300349*/ OPC_CheckInteger, 1, ++/*300351*/ OPC_CheckType, MVT::i32, ++/*300353*/ OPC_MoveParent, ++/*300354*/ OPC_MoveChild, 31, ++/*300356*/ OPC_CheckInteger, 1, ++/*300358*/ OPC_CheckType, MVT::i32, ++/*300360*/ OPC_MoveParent, ++/*300361*/ OPC_MoveParent, ++/*300362*/ OPC_CheckChild1Same, 1, ++/*300364*/ OPC_MoveParent, ++/*300365*/ OPC_MoveParent, ++/*300366*/ OPC_MoveParent, ++/*300367*/ OPC_MoveChild1, ++/*300368*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*300371*/ OPC_CheckChild0Integer, 1, ++/*300373*/ OPC_CheckChild0Type, MVT::i32, ++/*300375*/ OPC_CheckChild1Integer, 1, ++/*300377*/ OPC_CheckChild1Type, MVT::i32, ++/*300379*/ OPC_CheckChild2Integer, 1, ++/*300381*/ OPC_CheckChild2Type, MVT::i32, ++/*300383*/ OPC_CheckChild3Integer, 1, ++/*300385*/ OPC_CheckChild3Type, MVT::i32, ++/*300387*/ OPC_CheckChild4Integer, 1, ++/*300389*/ OPC_CheckChild4Type, MVT::i32, ++/*300391*/ OPC_MoveChild5, ++/*300392*/ OPC_CheckInteger, 1, ++/*300394*/ OPC_CheckType, MVT::i32, ++/*300396*/ OPC_MoveParent, ++/*300397*/ OPC_MoveChild6, ++/*300398*/ OPC_CheckInteger, 1, ++/*300400*/ OPC_CheckType, MVT::i32, ++/*300402*/ OPC_MoveParent, ++/*300403*/ OPC_MoveChild7, ++/*300404*/ OPC_CheckInteger, 1, ++/*300406*/ OPC_CheckType, MVT::i32, ++/*300408*/ OPC_MoveParent, ++/*300409*/ OPC_MoveChild, 8, ++/*300411*/ OPC_CheckInteger, 1, ++/*300413*/ OPC_CheckType, MVT::i32, ++/*300415*/ OPC_MoveParent, ++/*300416*/ OPC_MoveChild, 9, ++/*300418*/ OPC_CheckInteger, 1, ++/*300420*/ OPC_CheckType, MVT::i32, ++/*300422*/ OPC_MoveParent, ++/*300423*/ OPC_MoveChild, 10, ++/*300425*/ OPC_CheckInteger, 1, ++/*300427*/ OPC_CheckType, MVT::i32, ++/*300429*/ OPC_MoveParent, ++/*300430*/ OPC_MoveChild, 11, ++/*300432*/ OPC_CheckInteger, 1, ++/*300434*/ OPC_CheckType, MVT::i32, ++/*300436*/ OPC_MoveParent, ++/*300437*/ OPC_MoveChild, 12, ++/*300439*/ OPC_CheckInteger, 1, ++/*300441*/ OPC_CheckType, MVT::i32, ++/*300443*/ OPC_MoveParent, ++/*300444*/ OPC_MoveChild, 13, ++/*300446*/ OPC_CheckInteger, 1, ++/*300448*/ OPC_CheckType, MVT::i32, ++/*300450*/ OPC_MoveParent, ++/*300451*/ OPC_MoveChild, 14, ++/*300453*/ OPC_CheckInteger, 1, ++/*300455*/ OPC_CheckType, MVT::i32, ++/*300457*/ OPC_MoveParent, ++/*300458*/ OPC_MoveChild, 15, ++/*300460*/ OPC_CheckInteger, 1, ++/*300462*/ OPC_CheckType, MVT::i32, ++/*300464*/ OPC_MoveParent, ++/*300465*/ OPC_MoveChild, 16, ++/*300467*/ OPC_CheckInteger, 1, ++/*300469*/ OPC_CheckType, MVT::i32, ++/*300471*/ OPC_MoveParent, ++/*300472*/ OPC_MoveChild, 17, ++/*300474*/ OPC_CheckInteger, 1, ++/*300476*/ OPC_CheckType, MVT::i32, ++/*300478*/ OPC_MoveParent, ++/*300479*/ OPC_MoveChild, 18, ++/*300481*/ OPC_CheckInteger, 1, ++/*300483*/ OPC_CheckType, MVT::i32, ++/*300485*/ OPC_MoveParent, ++/*300486*/ OPC_MoveChild, 19, ++/*300488*/ OPC_CheckInteger, 1, ++/*300490*/ OPC_CheckType, MVT::i32, ++/*300492*/ OPC_MoveParent, ++/*300493*/ OPC_MoveChild, 20, ++/*300495*/ OPC_CheckInteger, 1, ++/*300497*/ OPC_CheckType, MVT::i32, ++/*300499*/ OPC_MoveParent, ++/*300500*/ OPC_MoveChild, 21, ++/*300502*/ OPC_CheckInteger, 1, ++/*300504*/ OPC_CheckType, MVT::i32, ++/*300506*/ OPC_MoveParent, ++/*300507*/ OPC_MoveChild, 22, ++/*300509*/ OPC_CheckInteger, 1, ++/*300511*/ OPC_CheckType, MVT::i32, ++/*300513*/ OPC_MoveParent, ++/*300514*/ OPC_MoveChild, 23, ++/*300516*/ OPC_CheckInteger, 1, ++/*300518*/ OPC_CheckType, MVT::i32, ++/*300520*/ OPC_MoveParent, ++/*300521*/ OPC_MoveChild, 24, ++/*300523*/ OPC_CheckInteger, 1, ++/*300525*/ OPC_CheckType, MVT::i32, ++/*300527*/ OPC_MoveParent, ++/*300528*/ OPC_MoveChild, 25, ++/*300530*/ OPC_CheckInteger, 1, ++/*300532*/ OPC_CheckType, MVT::i32, ++/*300534*/ OPC_MoveParent, ++/*300535*/ OPC_MoveChild, 26, ++/*300537*/ OPC_CheckInteger, 1, ++/*300539*/ OPC_CheckType, MVT::i32, ++/*300541*/ OPC_MoveParent, ++/*300542*/ OPC_MoveChild, 27, ++/*300544*/ OPC_CheckInteger, 1, ++/*300546*/ OPC_CheckType, MVT::i32, ++/*300548*/ OPC_MoveParent, ++/*300549*/ OPC_MoveChild, 28, ++/*300551*/ OPC_CheckInteger, 1, ++/*300553*/ OPC_CheckType, MVT::i32, ++/*300555*/ OPC_MoveParent, ++/*300556*/ OPC_MoveChild, 29, ++/*300558*/ OPC_CheckInteger, 1, ++/*300560*/ OPC_CheckType, MVT::i32, ++/*300562*/ OPC_MoveParent, ++/*300563*/ OPC_MoveChild, 30, ++/*300565*/ OPC_CheckInteger, 1, ++/*300567*/ OPC_CheckType, MVT::i32, ++/*300569*/ OPC_MoveParent, ++/*300570*/ OPC_MoveChild, 31, ++/*300572*/ OPC_CheckInteger, 1, ++/*300574*/ OPC_CheckType, MVT::i32, ++/*300576*/ OPC_MoveParent, ++/*300577*/ OPC_CheckType, MVT::v32i8, ++/*300579*/ OPC_MoveParent, ++/*300580*/ OPC_CheckType, MVT::v32i8, ++/*300582*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*300584*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*300592*/ /*Scope*/ 57|128,3/*441*/, /*->301035*/ ++/*300594*/ OPC_CheckChild0Same, 1, ++/*300596*/ OPC_MoveChild1, ++/*300597*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*300600*/ OPC_CheckChild0Integer, 1, ++/*300602*/ OPC_CheckChild0Type, MVT::i32, ++/*300604*/ OPC_CheckChild1Integer, 1, ++/*300606*/ OPC_CheckChild1Type, MVT::i32, ++/*300608*/ OPC_CheckChild2Integer, 1, ++/*300610*/ OPC_CheckChild2Type, MVT::i32, ++/*300612*/ OPC_CheckChild3Integer, 1, ++/*300614*/ OPC_CheckChild3Type, MVT::i32, ++/*300616*/ OPC_CheckChild4Integer, 1, ++/*300618*/ OPC_CheckChild4Type, MVT::i32, ++/*300620*/ OPC_MoveChild5, ++/*300621*/ OPC_CheckInteger, 1, ++/*300623*/ OPC_CheckType, MVT::i32, ++/*300625*/ OPC_MoveParent, ++/*300626*/ OPC_MoveChild6, ++/*300627*/ OPC_CheckInteger, 1, ++/*300629*/ OPC_CheckType, MVT::i32, ++/*300631*/ OPC_MoveParent, ++/*300632*/ OPC_MoveChild7, ++/*300633*/ OPC_CheckInteger, 1, ++/*300635*/ OPC_CheckType, MVT::i32, ++/*300637*/ OPC_MoveParent, ++/*300638*/ OPC_MoveChild, 8, ++/*300640*/ OPC_CheckInteger, 1, ++/*300642*/ OPC_CheckType, MVT::i32, ++/*300644*/ OPC_MoveParent, ++/*300645*/ OPC_MoveChild, 9, ++/*300647*/ OPC_CheckInteger, 1, ++/*300649*/ OPC_CheckType, MVT::i32, ++/*300651*/ OPC_MoveParent, ++/*300652*/ OPC_MoveChild, 10, ++/*300654*/ OPC_CheckInteger, 1, ++/*300656*/ OPC_CheckType, MVT::i32, ++/*300658*/ OPC_MoveParent, ++/*300659*/ OPC_MoveChild, 11, ++/*300661*/ OPC_CheckInteger, 1, ++/*300663*/ OPC_CheckType, MVT::i32, ++/*300665*/ OPC_MoveParent, ++/*300666*/ OPC_MoveChild, 12, ++/*300668*/ OPC_CheckInteger, 1, ++/*300670*/ OPC_CheckType, MVT::i32, ++/*300672*/ OPC_MoveParent, ++/*300673*/ OPC_MoveChild, 13, ++/*300675*/ OPC_CheckInteger, 1, ++/*300677*/ OPC_CheckType, MVT::i32, ++/*300679*/ OPC_MoveParent, ++/*300680*/ OPC_MoveChild, 14, ++/*300682*/ OPC_CheckInteger, 1, ++/*300684*/ OPC_CheckType, MVT::i32, ++/*300686*/ OPC_MoveParent, ++/*300687*/ OPC_MoveChild, 15, ++/*300689*/ OPC_CheckInteger, 1, ++/*300691*/ OPC_CheckType, MVT::i32, ++/*300693*/ OPC_MoveParent, ++/*300694*/ OPC_MoveChild, 16, ++/*300696*/ OPC_CheckInteger, 1, ++/*300698*/ OPC_CheckType, MVT::i32, ++/*300700*/ OPC_MoveParent, ++/*300701*/ OPC_MoveChild, 17, ++/*300703*/ OPC_CheckInteger, 1, ++/*300705*/ OPC_CheckType, MVT::i32, ++/*300707*/ OPC_MoveParent, ++/*300708*/ OPC_MoveChild, 18, ++/*300710*/ OPC_CheckInteger, 1, ++/*300712*/ OPC_CheckType, MVT::i32, ++/*300714*/ OPC_MoveParent, ++/*300715*/ OPC_MoveChild, 19, ++/*300717*/ OPC_CheckInteger, 1, ++/*300719*/ OPC_CheckType, MVT::i32, ++/*300721*/ OPC_MoveParent, ++/*300722*/ OPC_MoveChild, 20, ++/*300724*/ OPC_CheckInteger, 1, ++/*300726*/ OPC_CheckType, MVT::i32, ++/*300728*/ OPC_MoveParent, ++/*300729*/ OPC_MoveChild, 21, ++/*300731*/ OPC_CheckInteger, 1, ++/*300733*/ OPC_CheckType, MVT::i32, ++/*300735*/ OPC_MoveParent, ++/*300736*/ OPC_MoveChild, 22, ++/*300738*/ OPC_CheckInteger, 1, ++/*300740*/ OPC_CheckType, MVT::i32, ++/*300742*/ OPC_MoveParent, ++/*300743*/ OPC_MoveChild, 23, ++/*300745*/ OPC_CheckInteger, 1, ++/*300747*/ OPC_CheckType, MVT::i32, ++/*300749*/ OPC_MoveParent, ++/*300750*/ OPC_MoveChild, 24, ++/*300752*/ OPC_CheckInteger, 1, ++/*300754*/ OPC_CheckType, MVT::i32, ++/*300756*/ OPC_MoveParent, ++/*300757*/ OPC_MoveChild, 25, ++/*300759*/ OPC_CheckInteger, 1, ++/*300761*/ OPC_CheckType, MVT::i32, ++/*300763*/ OPC_MoveParent, ++/*300764*/ OPC_MoveChild, 26, ++/*300766*/ OPC_CheckInteger, 1, ++/*300768*/ OPC_CheckType, MVT::i32, ++/*300770*/ OPC_MoveParent, ++/*300771*/ OPC_MoveChild, 27, ++/*300773*/ OPC_CheckInteger, 1, ++/*300775*/ OPC_CheckType, MVT::i32, ++/*300777*/ OPC_MoveParent, ++/*300778*/ OPC_MoveChild, 28, ++/*300780*/ OPC_CheckInteger, 1, ++/*300782*/ OPC_CheckType, MVT::i32, ++/*300784*/ OPC_MoveParent, ++/*300785*/ OPC_MoveChild, 29, ++/*300787*/ OPC_CheckInteger, 1, ++/*300789*/ OPC_CheckType, MVT::i32, ++/*300791*/ OPC_MoveParent, ++/*300792*/ OPC_MoveChild, 30, ++/*300794*/ OPC_CheckInteger, 1, ++/*300796*/ OPC_CheckType, MVT::i32, ++/*300798*/ OPC_MoveParent, ++/*300799*/ OPC_MoveChild, 31, ++/*300801*/ OPC_CheckInteger, 1, ++/*300803*/ OPC_CheckType, MVT::i32, ++/*300805*/ OPC_MoveParent, ++/*300806*/ OPC_MoveParent, ++/*300807*/ OPC_MoveParent, ++/*300808*/ OPC_MoveParent, ++/*300809*/ OPC_MoveParent, ++/*300810*/ OPC_MoveChild1, ++/*300811*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*300814*/ OPC_CheckChild0Integer, 1, ++/*300816*/ OPC_CheckChild0Type, MVT::i32, ++/*300818*/ OPC_CheckChild1Integer, 1, ++/*300820*/ OPC_CheckChild1Type, MVT::i32, ++/*300822*/ OPC_CheckChild2Integer, 1, ++/*300824*/ OPC_CheckChild2Type, MVT::i32, ++/*300826*/ OPC_CheckChild3Integer, 1, ++/*300828*/ OPC_CheckChild3Type, MVT::i32, ++/*300830*/ OPC_CheckChild4Integer, 1, ++/*300832*/ OPC_CheckChild4Type, MVT::i32, ++/*300834*/ OPC_MoveChild5, ++/*300835*/ OPC_CheckInteger, 1, ++/*300837*/ OPC_CheckType, MVT::i32, ++/*300839*/ OPC_MoveParent, ++/*300840*/ OPC_MoveChild6, ++/*300841*/ OPC_CheckInteger, 1, ++/*300843*/ OPC_CheckType, MVT::i32, ++/*300845*/ OPC_MoveParent, ++/*300846*/ OPC_MoveChild7, ++/*300847*/ OPC_CheckInteger, 1, ++/*300849*/ OPC_CheckType, MVT::i32, ++/*300851*/ OPC_MoveParent, ++/*300852*/ OPC_MoveChild, 8, ++/*300854*/ OPC_CheckInteger, 1, ++/*300856*/ OPC_CheckType, MVT::i32, ++/*300858*/ OPC_MoveParent, ++/*300859*/ OPC_MoveChild, 9, ++/*300861*/ OPC_CheckInteger, 1, ++/*300863*/ OPC_CheckType, MVT::i32, ++/*300865*/ OPC_MoveParent, ++/*300866*/ OPC_MoveChild, 10, ++/*300868*/ OPC_CheckInteger, 1, ++/*300870*/ OPC_CheckType, MVT::i32, ++/*300872*/ OPC_MoveParent, ++/*300873*/ OPC_MoveChild, 11, ++/*300875*/ OPC_CheckInteger, 1, ++/*300877*/ OPC_CheckType, MVT::i32, ++/*300879*/ OPC_MoveParent, ++/*300880*/ OPC_MoveChild, 12, ++/*300882*/ OPC_CheckInteger, 1, ++/*300884*/ OPC_CheckType, MVT::i32, ++/*300886*/ OPC_MoveParent, ++/*300887*/ OPC_MoveChild, 13, ++/*300889*/ OPC_CheckInteger, 1, ++/*300891*/ OPC_CheckType, MVT::i32, ++/*300893*/ OPC_MoveParent, ++/*300894*/ OPC_MoveChild, 14, ++/*300896*/ OPC_CheckInteger, 1, ++/*300898*/ OPC_CheckType, MVT::i32, ++/*300900*/ OPC_MoveParent, ++/*300901*/ OPC_MoveChild, 15, ++/*300903*/ OPC_CheckInteger, 1, ++/*300905*/ OPC_CheckType, MVT::i32, ++/*300907*/ OPC_MoveParent, ++/*300908*/ OPC_MoveChild, 16, ++/*300910*/ OPC_CheckInteger, 1, ++/*300912*/ OPC_CheckType, MVT::i32, ++/*300914*/ OPC_MoveParent, ++/*300915*/ OPC_MoveChild, 17, ++/*300917*/ OPC_CheckInteger, 1, ++/*300919*/ OPC_CheckType, MVT::i32, ++/*300921*/ OPC_MoveParent, ++/*300922*/ OPC_MoveChild, 18, ++/*300924*/ OPC_CheckInteger, 1, ++/*300926*/ OPC_CheckType, MVT::i32, ++/*300928*/ OPC_MoveParent, ++/*300929*/ OPC_MoveChild, 19, ++/*300931*/ OPC_CheckInteger, 1, ++/*300933*/ OPC_CheckType, MVT::i32, ++/*300935*/ OPC_MoveParent, ++/*300936*/ OPC_MoveChild, 20, ++/*300938*/ OPC_CheckInteger, 1, ++/*300940*/ OPC_CheckType, MVT::i32, ++/*300942*/ OPC_MoveParent, ++/*300943*/ OPC_MoveChild, 21, ++/*300945*/ OPC_CheckInteger, 1, ++/*300947*/ OPC_CheckType, MVT::i32, ++/*300949*/ OPC_MoveParent, ++/*300950*/ OPC_MoveChild, 22, ++/*300952*/ OPC_CheckInteger, 1, ++/*300954*/ OPC_CheckType, MVT::i32, ++/*300956*/ OPC_MoveParent, ++/*300957*/ OPC_MoveChild, 23, ++/*300959*/ OPC_CheckInteger, 1, ++/*300961*/ OPC_CheckType, MVT::i32, ++/*300963*/ OPC_MoveParent, ++/*300964*/ OPC_MoveChild, 24, ++/*300966*/ OPC_CheckInteger, 1, ++/*300968*/ OPC_CheckType, MVT::i32, ++/*300970*/ OPC_MoveParent, ++/*300971*/ OPC_MoveChild, 25, ++/*300973*/ OPC_CheckInteger, 1, ++/*300975*/ OPC_CheckType, MVT::i32, ++/*300977*/ OPC_MoveParent, ++/*300978*/ OPC_MoveChild, 26, ++/*300980*/ OPC_CheckInteger, 1, ++/*300982*/ OPC_CheckType, MVT::i32, ++/*300984*/ OPC_MoveParent, ++/*300985*/ OPC_MoveChild, 27, ++/*300987*/ OPC_CheckInteger, 1, ++/*300989*/ OPC_CheckType, MVT::i32, ++/*300991*/ OPC_MoveParent, ++/*300992*/ OPC_MoveChild, 28, ++/*300994*/ OPC_CheckInteger, 1, ++/*300996*/ OPC_CheckType, MVT::i32, ++/*300998*/ OPC_MoveParent, ++/*300999*/ OPC_MoveChild, 29, ++/*301001*/ OPC_CheckInteger, 1, ++/*301003*/ OPC_CheckType, MVT::i32, ++/*301005*/ OPC_MoveParent, ++/*301006*/ OPC_MoveChild, 30, ++/*301008*/ OPC_CheckInteger, 1, ++/*301010*/ OPC_CheckType, MVT::i32, ++/*301012*/ OPC_MoveParent, ++/*301013*/ OPC_MoveChild, 31, ++/*301015*/ OPC_CheckInteger, 1, ++/*301017*/ OPC_CheckType, MVT::i32, ++/*301019*/ OPC_MoveParent, ++/*301020*/ OPC_CheckType, MVT::v32i8, ++/*301022*/ OPC_MoveParent, ++/*301023*/ OPC_CheckType, MVT::v32i8, ++/*301025*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*301027*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*301035*/ 0, /*End of Scope*/ ++/*301036*/ /*Scope*/ 36|128,26/*3364*/, /*->304402*/ ++/*301038*/ OPC_MoveChild0, ++/*301039*/ OPC_SwitchOpcode /*2 cases */, 41|128,5/*681*/, TARGET_VAL(ISD::BUILD_VECTOR),// ->301725 ++/*301044*/ OPC_CheckChild0Integer, 1, ++/*301046*/ OPC_CheckChild0Type, MVT::i32, ++/*301048*/ OPC_CheckChild1Integer, 1, ++/*301050*/ OPC_CheckChild1Type, MVT::i32, ++/*301052*/ OPC_CheckChild2Integer, 1, ++/*301054*/ OPC_CheckChild2Type, MVT::i32, ++/*301056*/ OPC_CheckChild3Integer, 1, ++/*301058*/ OPC_CheckChild3Type, MVT::i32, ++/*301060*/ OPC_CheckChild4Integer, 1, ++/*301062*/ OPC_CheckChild4Type, MVT::i32, ++/*301064*/ OPC_MoveChild5, ++/*301065*/ OPC_CheckInteger, 1, ++/*301067*/ OPC_CheckType, MVT::i32, ++/*301069*/ OPC_MoveParent, ++/*301070*/ OPC_MoveChild6, ++/*301071*/ OPC_CheckInteger, 1, ++/*301073*/ OPC_CheckType, MVT::i32, ++/*301075*/ OPC_MoveParent, ++/*301076*/ OPC_MoveChild7, ++/*301077*/ OPC_CheckInteger, 1, ++/*301079*/ OPC_CheckType, MVT::i32, ++/*301081*/ OPC_MoveParent, ++/*301082*/ OPC_MoveChild, 8, ++/*301084*/ OPC_CheckInteger, 1, ++/*301086*/ OPC_CheckType, MVT::i32, ++/*301088*/ OPC_MoveParent, ++/*301089*/ OPC_MoveChild, 9, ++/*301091*/ OPC_CheckInteger, 1, ++/*301093*/ OPC_CheckType, MVT::i32, ++/*301095*/ OPC_MoveParent, ++/*301096*/ OPC_MoveChild, 10, ++/*301098*/ OPC_CheckInteger, 1, ++/*301100*/ OPC_CheckType, MVT::i32, ++/*301102*/ OPC_MoveParent, ++/*301103*/ OPC_MoveChild, 11, ++/*301105*/ OPC_CheckInteger, 1, ++/*301107*/ OPC_CheckType, MVT::i32, ++/*301109*/ OPC_MoveParent, ++/*301110*/ OPC_MoveChild, 12, ++/*301112*/ OPC_CheckInteger, 1, ++/*301114*/ OPC_CheckType, MVT::i32, ++/*301116*/ OPC_MoveParent, ++/*301117*/ OPC_MoveChild, 13, ++/*301119*/ OPC_CheckInteger, 1, ++/*301121*/ OPC_CheckType, MVT::i32, ++/*301123*/ OPC_MoveParent, ++/*301124*/ OPC_MoveChild, 14, ++/*301126*/ OPC_CheckInteger, 1, ++/*301128*/ OPC_CheckType, MVT::i32, ++/*301130*/ OPC_MoveParent, ++/*301131*/ OPC_MoveChild, 15, ++/*301133*/ OPC_CheckInteger, 1, ++/*301135*/ OPC_CheckType, MVT::i32, ++/*301137*/ OPC_MoveParent, ++/*301138*/ OPC_MoveChild, 16, ++/*301140*/ OPC_CheckInteger, 1, ++/*301142*/ OPC_CheckType, MVT::i32, ++/*301144*/ OPC_MoveParent, ++/*301145*/ OPC_MoveChild, 17, ++/*301147*/ OPC_CheckInteger, 1, ++/*301149*/ OPC_CheckType, MVT::i32, ++/*301151*/ OPC_MoveParent, ++/*301152*/ OPC_MoveChild, 18, ++/*301154*/ OPC_CheckInteger, 1, ++/*301156*/ OPC_CheckType, MVT::i32, ++/*301158*/ OPC_MoveParent, ++/*301159*/ OPC_MoveChild, 19, ++/*301161*/ OPC_CheckInteger, 1, ++/*301163*/ OPC_CheckType, MVT::i32, ++/*301165*/ OPC_MoveParent, ++/*301166*/ OPC_MoveChild, 20, ++/*301168*/ OPC_CheckInteger, 1, ++/*301170*/ OPC_CheckType, MVT::i32, ++/*301172*/ OPC_MoveParent, ++/*301173*/ OPC_MoveChild, 21, ++/*301175*/ OPC_CheckInteger, 1, ++/*301177*/ OPC_CheckType, MVT::i32, ++/*301179*/ OPC_MoveParent, ++/*301180*/ OPC_MoveChild, 22, ++/*301182*/ OPC_CheckInteger, 1, ++/*301184*/ OPC_CheckType, MVT::i32, ++/*301186*/ OPC_MoveParent, ++/*301187*/ OPC_MoveChild, 23, ++/*301189*/ OPC_CheckInteger, 1, ++/*301191*/ OPC_CheckType, MVT::i32, ++/*301193*/ OPC_MoveParent, ++/*301194*/ OPC_MoveChild, 24, ++/*301196*/ OPC_CheckInteger, 1, ++/*301198*/ OPC_CheckType, MVT::i32, ++/*301200*/ OPC_MoveParent, ++/*301201*/ OPC_MoveChild, 25, ++/*301203*/ OPC_CheckInteger, 1, ++/*301205*/ OPC_CheckType, MVT::i32, ++/*301207*/ OPC_MoveParent, ++/*301208*/ OPC_MoveChild, 26, ++/*301210*/ OPC_CheckInteger, 1, ++/*301212*/ OPC_CheckType, MVT::i32, ++/*301214*/ OPC_MoveParent, ++/*301215*/ OPC_MoveChild, 27, ++/*301217*/ OPC_CheckInteger, 1, ++/*301219*/ OPC_CheckType, MVT::i32, ++/*301221*/ OPC_MoveParent, ++/*301222*/ OPC_MoveChild, 28, ++/*301224*/ OPC_CheckInteger, 1, ++/*301226*/ OPC_CheckType, MVT::i32, ++/*301228*/ OPC_MoveParent, ++/*301229*/ OPC_MoveChild, 29, ++/*301231*/ OPC_CheckInteger, 1, ++/*301233*/ OPC_CheckType, MVT::i32, ++/*301235*/ OPC_MoveParent, ++/*301236*/ OPC_MoveChild, 30, ++/*301238*/ OPC_CheckInteger, 1, ++/*301240*/ OPC_CheckType, MVT::i32, ++/*301242*/ OPC_MoveParent, ++/*301243*/ OPC_MoveChild, 31, ++/*301245*/ OPC_CheckInteger, 1, ++/*301247*/ OPC_CheckType, MVT::i32, ++/*301249*/ OPC_MoveParent, ++/*301250*/ OPC_MoveParent, ++/*301251*/ OPC_MoveChild1, ++/*301252*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*301255*/ OPC_Scope, 104|128,1/*232*/, /*->301490*/ // 2 children in Scope ++/*301258*/ OPC_CheckChild0Same, 0, ++/*301260*/ OPC_CheckChild1Same, 1, ++/*301262*/ OPC_MoveParent, ++/*301263*/ OPC_MoveParent, ++/*301264*/ OPC_MoveParent, ++/*301265*/ OPC_MoveChild1, ++/*301266*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*301269*/ OPC_CheckChild0Integer, 1, ++/*301271*/ OPC_CheckChild0Type, MVT::i32, ++/*301273*/ OPC_CheckChild1Integer, 1, ++/*301275*/ OPC_CheckChild1Type, MVT::i32, ++/*301277*/ OPC_CheckChild2Integer, 1, ++/*301279*/ OPC_CheckChild2Type, MVT::i32, ++/*301281*/ OPC_CheckChild3Integer, 1, ++/*301283*/ OPC_CheckChild3Type, MVT::i32, ++/*301285*/ OPC_CheckChild4Integer, 1, ++/*301287*/ OPC_CheckChild4Type, MVT::i32, ++/*301289*/ OPC_MoveChild5, ++/*301290*/ OPC_CheckInteger, 1, ++/*301292*/ OPC_CheckType, MVT::i32, ++/*301294*/ OPC_MoveParent, ++/*301295*/ OPC_MoveChild6, ++/*301296*/ OPC_CheckInteger, 1, ++/*301298*/ OPC_CheckType, MVT::i32, ++/*301300*/ OPC_MoveParent, ++/*301301*/ OPC_MoveChild7, ++/*301302*/ OPC_CheckInteger, 1, ++/*301304*/ OPC_CheckType, MVT::i32, ++/*301306*/ OPC_MoveParent, ++/*301307*/ OPC_MoveChild, 8, ++/*301309*/ OPC_CheckInteger, 1, ++/*301311*/ OPC_CheckType, MVT::i32, ++/*301313*/ OPC_MoveParent, ++/*301314*/ OPC_MoveChild, 9, ++/*301316*/ OPC_CheckInteger, 1, ++/*301318*/ OPC_CheckType, MVT::i32, ++/*301320*/ OPC_MoveParent, ++/*301321*/ OPC_MoveChild, 10, ++/*301323*/ OPC_CheckInteger, 1, ++/*301325*/ OPC_CheckType, MVT::i32, ++/*301327*/ OPC_MoveParent, ++/*301328*/ OPC_MoveChild, 11, ++/*301330*/ OPC_CheckInteger, 1, ++/*301332*/ OPC_CheckType, MVT::i32, ++/*301334*/ OPC_MoveParent, ++/*301335*/ OPC_MoveChild, 12, ++/*301337*/ OPC_CheckInteger, 1, ++/*301339*/ OPC_CheckType, MVT::i32, ++/*301341*/ OPC_MoveParent, ++/*301342*/ OPC_MoveChild, 13, ++/*301344*/ OPC_CheckInteger, 1, ++/*301346*/ OPC_CheckType, MVT::i32, ++/*301348*/ OPC_MoveParent, ++/*301349*/ OPC_MoveChild, 14, ++/*301351*/ OPC_CheckInteger, 1, ++/*301353*/ OPC_CheckType, MVT::i32, ++/*301355*/ OPC_MoveParent, ++/*301356*/ OPC_MoveChild, 15, ++/*301358*/ OPC_CheckInteger, 1, ++/*301360*/ OPC_CheckType, MVT::i32, ++/*301362*/ OPC_MoveParent, ++/*301363*/ OPC_MoveChild, 16, ++/*301365*/ OPC_CheckInteger, 1, ++/*301367*/ OPC_CheckType, MVT::i32, ++/*301369*/ OPC_MoveParent, ++/*301370*/ OPC_MoveChild, 17, ++/*301372*/ OPC_CheckInteger, 1, ++/*301374*/ OPC_CheckType, MVT::i32, ++/*301376*/ OPC_MoveParent, ++/*301377*/ OPC_MoveChild, 18, ++/*301379*/ OPC_CheckInteger, 1, ++/*301381*/ OPC_CheckType, MVT::i32, ++/*301383*/ OPC_MoveParent, ++/*301384*/ OPC_MoveChild, 19, ++/*301386*/ OPC_CheckInteger, 1, ++/*301388*/ OPC_CheckType, MVT::i32, ++/*301390*/ OPC_MoveParent, ++/*301391*/ OPC_MoveChild, 20, ++/*301393*/ OPC_CheckInteger, 1, ++/*301395*/ OPC_CheckType, MVT::i32, ++/*301397*/ OPC_MoveParent, ++/*301398*/ OPC_MoveChild, 21, ++/*301400*/ OPC_CheckInteger, 1, ++/*301402*/ OPC_CheckType, MVT::i32, ++/*301404*/ OPC_MoveParent, ++/*301405*/ OPC_MoveChild, 22, ++/*301407*/ OPC_CheckInteger, 1, ++/*301409*/ OPC_CheckType, MVT::i32, ++/*301411*/ OPC_MoveParent, ++/*301412*/ OPC_MoveChild, 23, ++/*301414*/ OPC_CheckInteger, 1, ++/*301416*/ OPC_CheckType, MVT::i32, ++/*301418*/ OPC_MoveParent, ++/*301419*/ OPC_MoveChild, 24, ++/*301421*/ OPC_CheckInteger, 1, ++/*301423*/ OPC_CheckType, MVT::i32, ++/*301425*/ OPC_MoveParent, ++/*301426*/ OPC_MoveChild, 25, ++/*301428*/ OPC_CheckInteger, 1, ++/*301430*/ OPC_CheckType, MVT::i32, ++/*301432*/ OPC_MoveParent, ++/*301433*/ OPC_MoveChild, 26, ++/*301435*/ OPC_CheckInteger, 1, ++/*301437*/ OPC_CheckType, MVT::i32, ++/*301439*/ OPC_MoveParent, ++/*301440*/ OPC_MoveChild, 27, ++/*301442*/ OPC_CheckInteger, 1, ++/*301444*/ OPC_CheckType, MVT::i32, ++/*301446*/ OPC_MoveParent, ++/*301447*/ OPC_MoveChild, 28, ++/*301449*/ OPC_CheckInteger, 1, ++/*301451*/ OPC_CheckType, MVT::i32, ++/*301453*/ OPC_MoveParent, ++/*301454*/ OPC_MoveChild, 29, ++/*301456*/ OPC_CheckInteger, 1, ++/*301458*/ OPC_CheckType, MVT::i32, ++/*301460*/ OPC_MoveParent, ++/*301461*/ OPC_MoveChild, 30, ++/*301463*/ OPC_CheckInteger, 1, ++/*301465*/ OPC_CheckType, MVT::i32, ++/*301467*/ OPC_MoveParent, ++/*301468*/ OPC_MoveChild, 31, ++/*301470*/ OPC_CheckInteger, 1, ++/*301472*/ OPC_CheckType, MVT::i32, ++/*301474*/ OPC_MoveParent, ++/*301475*/ OPC_CheckType, MVT::v32i8, ++/*301477*/ OPC_MoveParent, ++/*301478*/ OPC_CheckType, MVT::v32i8, ++/*301480*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*301482*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*301490*/ /*Scope*/ 104|128,1/*232*/, /*->301724*/ ++/*301492*/ OPC_CheckChild0Same, 1, ++/*301494*/ OPC_CheckChild1Same, 0, ++/*301496*/ OPC_MoveParent, ++/*301497*/ OPC_MoveParent, ++/*301498*/ OPC_MoveParent, ++/*301499*/ OPC_MoveChild1, ++/*301500*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*301503*/ OPC_CheckChild0Integer, 1, ++/*301505*/ OPC_CheckChild0Type, MVT::i32, ++/*301507*/ OPC_CheckChild1Integer, 1, ++/*301509*/ OPC_CheckChild1Type, MVT::i32, ++/*301511*/ OPC_CheckChild2Integer, 1, ++/*301513*/ OPC_CheckChild2Type, MVT::i32, ++/*301515*/ OPC_CheckChild3Integer, 1, ++/*301517*/ OPC_CheckChild3Type, MVT::i32, ++/*301519*/ OPC_CheckChild4Integer, 1, ++/*301521*/ OPC_CheckChild4Type, MVT::i32, ++/*301523*/ OPC_MoveChild5, ++/*301524*/ OPC_CheckInteger, 1, ++/*301526*/ OPC_CheckType, MVT::i32, ++/*301528*/ OPC_MoveParent, ++/*301529*/ OPC_MoveChild6, ++/*301530*/ OPC_CheckInteger, 1, ++/*301532*/ OPC_CheckType, MVT::i32, ++/*301534*/ OPC_MoveParent, ++/*301535*/ OPC_MoveChild7, ++/*301536*/ OPC_CheckInteger, 1, ++/*301538*/ OPC_CheckType, MVT::i32, ++/*301540*/ OPC_MoveParent, ++/*301541*/ OPC_MoveChild, 8, ++/*301543*/ OPC_CheckInteger, 1, ++/*301545*/ OPC_CheckType, MVT::i32, ++/*301547*/ OPC_MoveParent, ++/*301548*/ OPC_MoveChild, 9, ++/*301550*/ OPC_CheckInteger, 1, ++/*301552*/ OPC_CheckType, MVT::i32, ++/*301554*/ OPC_MoveParent, ++/*301555*/ OPC_MoveChild, 10, ++/*301557*/ OPC_CheckInteger, 1, ++/*301559*/ OPC_CheckType, MVT::i32, ++/*301561*/ OPC_MoveParent, ++/*301562*/ OPC_MoveChild, 11, ++/*301564*/ OPC_CheckInteger, 1, ++/*301566*/ OPC_CheckType, MVT::i32, ++/*301568*/ OPC_MoveParent, ++/*301569*/ OPC_MoveChild, 12, ++/*301571*/ OPC_CheckInteger, 1, ++/*301573*/ OPC_CheckType, MVT::i32, ++/*301575*/ OPC_MoveParent, ++/*301576*/ OPC_MoveChild, 13, ++/*301578*/ OPC_CheckInteger, 1, ++/*301580*/ OPC_CheckType, MVT::i32, ++/*301582*/ OPC_MoveParent, ++/*301583*/ OPC_MoveChild, 14, ++/*301585*/ OPC_CheckInteger, 1, ++/*301587*/ OPC_CheckType, MVT::i32, ++/*301589*/ OPC_MoveParent, ++/*301590*/ OPC_MoveChild, 15, ++/*301592*/ OPC_CheckInteger, 1, ++/*301594*/ OPC_CheckType, MVT::i32, ++/*301596*/ OPC_MoveParent, ++/*301597*/ OPC_MoveChild, 16, ++/*301599*/ OPC_CheckInteger, 1, ++/*301601*/ OPC_CheckType, MVT::i32, ++/*301603*/ OPC_MoveParent, ++/*301604*/ OPC_MoveChild, 17, ++/*301606*/ OPC_CheckInteger, 1, ++/*301608*/ OPC_CheckType, MVT::i32, ++/*301610*/ OPC_MoveParent, ++/*301611*/ OPC_MoveChild, 18, ++/*301613*/ OPC_CheckInteger, 1, ++/*301615*/ OPC_CheckType, MVT::i32, ++/*301617*/ OPC_MoveParent, ++/*301618*/ OPC_MoveChild, 19, ++/*301620*/ OPC_CheckInteger, 1, ++/*301622*/ OPC_CheckType, MVT::i32, ++/*301624*/ OPC_MoveParent, ++/*301625*/ OPC_MoveChild, 20, ++/*301627*/ OPC_CheckInteger, 1, ++/*301629*/ OPC_CheckType, MVT::i32, ++/*301631*/ OPC_MoveParent, ++/*301632*/ OPC_MoveChild, 21, ++/*301634*/ OPC_CheckInteger, 1, ++/*301636*/ OPC_CheckType, MVT::i32, ++/*301638*/ OPC_MoveParent, ++/*301639*/ OPC_MoveChild, 22, ++/*301641*/ OPC_CheckInteger, 1, ++/*301643*/ OPC_CheckType, MVT::i32, ++/*301645*/ OPC_MoveParent, ++/*301646*/ OPC_MoveChild, 23, ++/*301648*/ OPC_CheckInteger, 1, ++/*301650*/ OPC_CheckType, MVT::i32, ++/*301652*/ OPC_MoveParent, ++/*301653*/ OPC_MoveChild, 24, ++/*301655*/ OPC_CheckInteger, 1, ++/*301657*/ OPC_CheckType, MVT::i32, ++/*301659*/ OPC_MoveParent, ++/*301660*/ OPC_MoveChild, 25, ++/*301662*/ OPC_CheckInteger, 1, ++/*301664*/ OPC_CheckType, MVT::i32, ++/*301666*/ OPC_MoveParent, ++/*301667*/ OPC_MoveChild, 26, ++/*301669*/ OPC_CheckInteger, 1, ++/*301671*/ OPC_CheckType, MVT::i32, ++/*301673*/ OPC_MoveParent, ++/*301674*/ OPC_MoveChild, 27, ++/*301676*/ OPC_CheckInteger, 1, ++/*301678*/ OPC_CheckType, MVT::i32, ++/*301680*/ OPC_MoveParent, ++/*301681*/ OPC_MoveChild, 28, ++/*301683*/ OPC_CheckInteger, 1, ++/*301685*/ OPC_CheckType, MVT::i32, ++/*301687*/ OPC_MoveParent, ++/*301688*/ OPC_MoveChild, 29, ++/*301690*/ OPC_CheckInteger, 1, ++/*301692*/ OPC_CheckType, MVT::i32, ++/*301694*/ OPC_MoveParent, ++/*301695*/ OPC_MoveChild, 30, ++/*301697*/ OPC_CheckInteger, 1, ++/*301699*/ OPC_CheckType, MVT::i32, ++/*301701*/ OPC_MoveParent, ++/*301702*/ OPC_MoveChild, 31, ++/*301704*/ OPC_CheckInteger, 1, ++/*301706*/ OPC_CheckType, MVT::i32, ++/*301708*/ OPC_MoveParent, ++/*301709*/ OPC_CheckType, MVT::v32i8, ++/*301711*/ OPC_MoveParent, ++/*301712*/ OPC_CheckType, MVT::v32i8, ++/*301714*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*301716*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*301724*/ 0, /*End of Scope*/ ++/*301725*/ /*SwitchOpcode*/ 112|128,20/*2672*/, TARGET_VAL(ISD::ADD),// ->304401 ++/*301729*/ OPC_Scope, 59|128,3/*443*/, /*->302175*/ // 6 children in Scope ++/*301732*/ OPC_MoveChild0, ++/*301733*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*301736*/ OPC_CheckChild0Integer, 1, ++/*301738*/ OPC_CheckChild0Type, MVT::i32, ++/*301740*/ OPC_CheckChild1Integer, 1, ++/*301742*/ OPC_CheckChild1Type, MVT::i32, ++/*301744*/ OPC_CheckChild2Integer, 1, ++/*301746*/ OPC_CheckChild2Type, MVT::i32, ++/*301748*/ OPC_CheckChild3Integer, 1, ++/*301750*/ OPC_CheckChild3Type, MVT::i32, ++/*301752*/ OPC_CheckChild4Integer, 1, ++/*301754*/ OPC_CheckChild4Type, MVT::i32, ++/*301756*/ OPC_MoveChild5, ++/*301757*/ OPC_CheckInteger, 1, ++/*301759*/ OPC_CheckType, MVT::i32, ++/*301761*/ OPC_MoveParent, ++/*301762*/ OPC_MoveChild6, ++/*301763*/ OPC_CheckInteger, 1, ++/*301765*/ OPC_CheckType, MVT::i32, ++/*301767*/ OPC_MoveParent, ++/*301768*/ OPC_MoveChild7, ++/*301769*/ OPC_CheckInteger, 1, ++/*301771*/ OPC_CheckType, MVT::i32, ++/*301773*/ OPC_MoveParent, ++/*301774*/ OPC_MoveChild, 8, ++/*301776*/ OPC_CheckInteger, 1, ++/*301778*/ OPC_CheckType, MVT::i32, ++/*301780*/ OPC_MoveParent, ++/*301781*/ OPC_MoveChild, 9, ++/*301783*/ OPC_CheckInteger, 1, ++/*301785*/ OPC_CheckType, MVT::i32, ++/*301787*/ OPC_MoveParent, ++/*301788*/ OPC_MoveChild, 10, ++/*301790*/ OPC_CheckInteger, 1, ++/*301792*/ OPC_CheckType, MVT::i32, ++/*301794*/ OPC_MoveParent, ++/*301795*/ OPC_MoveChild, 11, ++/*301797*/ OPC_CheckInteger, 1, ++/*301799*/ OPC_CheckType, MVT::i32, ++/*301801*/ OPC_MoveParent, ++/*301802*/ OPC_MoveChild, 12, ++/*301804*/ OPC_CheckInteger, 1, ++/*301806*/ OPC_CheckType, MVT::i32, ++/*301808*/ OPC_MoveParent, ++/*301809*/ OPC_MoveChild, 13, ++/*301811*/ OPC_CheckInteger, 1, ++/*301813*/ OPC_CheckType, MVT::i32, ++/*301815*/ OPC_MoveParent, ++/*301816*/ OPC_MoveChild, 14, ++/*301818*/ OPC_CheckInteger, 1, ++/*301820*/ OPC_CheckType, MVT::i32, ++/*301822*/ OPC_MoveParent, ++/*301823*/ OPC_MoveChild, 15, ++/*301825*/ OPC_CheckInteger, 1, ++/*301827*/ OPC_CheckType, MVT::i32, ++/*301829*/ OPC_MoveParent, ++/*301830*/ OPC_MoveChild, 16, ++/*301832*/ OPC_CheckInteger, 1, ++/*301834*/ OPC_CheckType, MVT::i32, ++/*301836*/ OPC_MoveParent, ++/*301837*/ OPC_MoveChild, 17, ++/*301839*/ OPC_CheckInteger, 1, ++/*301841*/ OPC_CheckType, MVT::i32, ++/*301843*/ OPC_MoveParent, ++/*301844*/ OPC_MoveChild, 18, ++/*301846*/ OPC_CheckInteger, 1, ++/*301848*/ OPC_CheckType, MVT::i32, ++/*301850*/ OPC_MoveParent, ++/*301851*/ OPC_MoveChild, 19, ++/*301853*/ OPC_CheckInteger, 1, ++/*301855*/ OPC_CheckType, MVT::i32, ++/*301857*/ OPC_MoveParent, ++/*301858*/ OPC_MoveChild, 20, ++/*301860*/ OPC_CheckInteger, 1, ++/*301862*/ OPC_CheckType, MVT::i32, ++/*301864*/ OPC_MoveParent, ++/*301865*/ OPC_MoveChild, 21, ++/*301867*/ OPC_CheckInteger, 1, ++/*301869*/ OPC_CheckType, MVT::i32, ++/*301871*/ OPC_MoveParent, ++/*301872*/ OPC_MoveChild, 22, ++/*301874*/ OPC_CheckInteger, 1, ++/*301876*/ OPC_CheckType, MVT::i32, ++/*301878*/ OPC_MoveParent, ++/*301879*/ OPC_MoveChild, 23, ++/*301881*/ OPC_CheckInteger, 1, ++/*301883*/ OPC_CheckType, MVT::i32, ++/*301885*/ OPC_MoveParent, ++/*301886*/ OPC_MoveChild, 24, ++/*301888*/ OPC_CheckInteger, 1, ++/*301890*/ OPC_CheckType, MVT::i32, ++/*301892*/ OPC_MoveParent, ++/*301893*/ OPC_MoveChild, 25, ++/*301895*/ OPC_CheckInteger, 1, ++/*301897*/ OPC_CheckType, MVT::i32, ++/*301899*/ OPC_MoveParent, ++/*301900*/ OPC_MoveChild, 26, ++/*301902*/ OPC_CheckInteger, 1, ++/*301904*/ OPC_CheckType, MVT::i32, ++/*301906*/ OPC_MoveParent, ++/*301907*/ OPC_MoveChild, 27, ++/*301909*/ OPC_CheckInteger, 1, ++/*301911*/ OPC_CheckType, MVT::i32, ++/*301913*/ OPC_MoveParent, ++/*301914*/ OPC_MoveChild, 28, ++/*301916*/ OPC_CheckInteger, 1, ++/*301918*/ OPC_CheckType, MVT::i32, ++/*301920*/ OPC_MoveParent, ++/*301921*/ OPC_MoveChild, 29, ++/*301923*/ OPC_CheckInteger, 1, ++/*301925*/ OPC_CheckType, MVT::i32, ++/*301927*/ OPC_MoveParent, ++/*301928*/ OPC_MoveChild, 30, ++/*301930*/ OPC_CheckInteger, 1, ++/*301932*/ OPC_CheckType, MVT::i32, ++/*301934*/ OPC_MoveParent, ++/*301935*/ OPC_MoveChild, 31, ++/*301937*/ OPC_CheckInteger, 1, ++/*301939*/ OPC_CheckType, MVT::i32, ++/*301941*/ OPC_MoveParent, ++/*301942*/ OPC_MoveParent, ++/*301943*/ OPC_CheckChild1Same, 1, ++/*301945*/ OPC_MoveParent, ++/*301946*/ OPC_CheckChild1Same, 0, ++/*301948*/ OPC_MoveParent, ++/*301949*/ OPC_MoveParent, ++/*301950*/ OPC_MoveChild1, ++/*301951*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*301954*/ OPC_CheckChild0Integer, 1, ++/*301956*/ OPC_CheckChild0Type, MVT::i32, ++/*301958*/ OPC_CheckChild1Integer, 1, ++/*301960*/ OPC_CheckChild1Type, MVT::i32, ++/*301962*/ OPC_CheckChild2Integer, 1, ++/*301964*/ OPC_CheckChild2Type, MVT::i32, ++/*301966*/ OPC_CheckChild3Integer, 1, ++/*301968*/ OPC_CheckChild3Type, MVT::i32, ++/*301970*/ OPC_CheckChild4Integer, 1, ++/*301972*/ OPC_CheckChild4Type, MVT::i32, ++/*301974*/ OPC_MoveChild5, ++/*301975*/ OPC_CheckInteger, 1, ++/*301977*/ OPC_CheckType, MVT::i32, ++/*301979*/ OPC_MoveParent, ++/*301980*/ OPC_MoveChild6, ++/*301981*/ OPC_CheckInteger, 1, ++/*301983*/ OPC_CheckType, MVT::i32, ++/*301985*/ OPC_MoveParent, ++/*301986*/ OPC_MoveChild7, ++/*301987*/ OPC_CheckInteger, 1, ++/*301989*/ OPC_CheckType, MVT::i32, ++/*301991*/ OPC_MoveParent, ++/*301992*/ OPC_MoveChild, 8, ++/*301994*/ OPC_CheckInteger, 1, ++/*301996*/ OPC_CheckType, MVT::i32, ++/*301998*/ OPC_MoveParent, ++/*301999*/ OPC_MoveChild, 9, ++/*302001*/ OPC_CheckInteger, 1, ++/*302003*/ OPC_CheckType, MVT::i32, ++/*302005*/ OPC_MoveParent, ++/*302006*/ OPC_MoveChild, 10, ++/*302008*/ OPC_CheckInteger, 1, ++/*302010*/ OPC_CheckType, MVT::i32, ++/*302012*/ OPC_MoveParent, ++/*302013*/ OPC_MoveChild, 11, ++/*302015*/ OPC_CheckInteger, 1, ++/*302017*/ OPC_CheckType, MVT::i32, ++/*302019*/ OPC_MoveParent, ++/*302020*/ OPC_MoveChild, 12, ++/*302022*/ OPC_CheckInteger, 1, ++/*302024*/ OPC_CheckType, MVT::i32, ++/*302026*/ OPC_MoveParent, ++/*302027*/ OPC_MoveChild, 13, ++/*302029*/ OPC_CheckInteger, 1, ++/*302031*/ OPC_CheckType, MVT::i32, ++/*302033*/ OPC_MoveParent, ++/*302034*/ OPC_MoveChild, 14, ++/*302036*/ OPC_CheckInteger, 1, ++/*302038*/ OPC_CheckType, MVT::i32, ++/*302040*/ OPC_MoveParent, ++/*302041*/ OPC_MoveChild, 15, ++/*302043*/ OPC_CheckInteger, 1, ++/*302045*/ OPC_CheckType, MVT::i32, ++/*302047*/ OPC_MoveParent, ++/*302048*/ OPC_MoveChild, 16, ++/*302050*/ OPC_CheckInteger, 1, ++/*302052*/ OPC_CheckType, MVT::i32, ++/*302054*/ OPC_MoveParent, ++/*302055*/ OPC_MoveChild, 17, ++/*302057*/ OPC_CheckInteger, 1, ++/*302059*/ OPC_CheckType, MVT::i32, ++/*302061*/ OPC_MoveParent, ++/*302062*/ OPC_MoveChild, 18, ++/*302064*/ OPC_CheckInteger, 1, ++/*302066*/ OPC_CheckType, MVT::i32, ++/*302068*/ OPC_MoveParent, ++/*302069*/ OPC_MoveChild, 19, ++/*302071*/ OPC_CheckInteger, 1, ++/*302073*/ OPC_CheckType, MVT::i32, ++/*302075*/ OPC_MoveParent, ++/*302076*/ OPC_MoveChild, 20, ++/*302078*/ OPC_CheckInteger, 1, ++/*302080*/ OPC_CheckType, MVT::i32, ++/*302082*/ OPC_MoveParent, ++/*302083*/ OPC_MoveChild, 21, ++/*302085*/ OPC_CheckInteger, 1, ++/*302087*/ OPC_CheckType, MVT::i32, ++/*302089*/ OPC_MoveParent, ++/*302090*/ OPC_MoveChild, 22, ++/*302092*/ OPC_CheckInteger, 1, ++/*302094*/ OPC_CheckType, MVT::i32, ++/*302096*/ OPC_MoveParent, ++/*302097*/ OPC_MoveChild, 23, ++/*302099*/ OPC_CheckInteger, 1, ++/*302101*/ OPC_CheckType, MVT::i32, ++/*302103*/ OPC_MoveParent, ++/*302104*/ OPC_MoveChild, 24, ++/*302106*/ OPC_CheckInteger, 1, ++/*302108*/ OPC_CheckType, MVT::i32, ++/*302110*/ OPC_MoveParent, ++/*302111*/ OPC_MoveChild, 25, ++/*302113*/ OPC_CheckInteger, 1, ++/*302115*/ OPC_CheckType, MVT::i32, ++/*302117*/ OPC_MoveParent, ++/*302118*/ OPC_MoveChild, 26, ++/*302120*/ OPC_CheckInteger, 1, ++/*302122*/ OPC_CheckType, MVT::i32, ++/*302124*/ OPC_MoveParent, ++/*302125*/ OPC_MoveChild, 27, ++/*302127*/ OPC_CheckInteger, 1, ++/*302129*/ OPC_CheckType, MVT::i32, ++/*302131*/ OPC_MoveParent, ++/*302132*/ OPC_MoveChild, 28, ++/*302134*/ OPC_CheckInteger, 1, ++/*302136*/ OPC_CheckType, MVT::i32, ++/*302138*/ OPC_MoveParent, ++/*302139*/ OPC_MoveChild, 29, ++/*302141*/ OPC_CheckInteger, 1, ++/*302143*/ OPC_CheckType, MVT::i32, ++/*302145*/ OPC_MoveParent, ++/*302146*/ OPC_MoveChild, 30, ++/*302148*/ OPC_CheckInteger, 1, ++/*302150*/ OPC_CheckType, MVT::i32, ++/*302152*/ OPC_MoveParent, ++/*302153*/ OPC_MoveChild, 31, ++/*302155*/ OPC_CheckInteger, 1, ++/*302157*/ OPC_CheckType, MVT::i32, ++/*302159*/ OPC_MoveParent, ++/*302160*/ OPC_CheckType, MVT::v32i8, ++/*302162*/ OPC_MoveParent, ++/*302163*/ OPC_CheckType, MVT::v32i8, ++/*302165*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*302167*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a), LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*302175*/ /*Scope*/ 59|128,3/*443*/, /*->302620*/ ++/*302177*/ OPC_CheckChild0Same, 1, ++/*302179*/ OPC_MoveChild1, ++/*302180*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*302183*/ OPC_CheckChild0Integer, 1, ++/*302185*/ OPC_CheckChild0Type, MVT::i32, ++/*302187*/ OPC_CheckChild1Integer, 1, ++/*302189*/ OPC_CheckChild1Type, MVT::i32, ++/*302191*/ OPC_CheckChild2Integer, 1, ++/*302193*/ OPC_CheckChild2Type, MVT::i32, ++/*302195*/ OPC_CheckChild3Integer, 1, ++/*302197*/ OPC_CheckChild3Type, MVT::i32, ++/*302199*/ OPC_CheckChild4Integer, 1, ++/*302201*/ OPC_CheckChild4Type, MVT::i32, ++/*302203*/ OPC_MoveChild5, ++/*302204*/ OPC_CheckInteger, 1, ++/*302206*/ OPC_CheckType, MVT::i32, ++/*302208*/ OPC_MoveParent, ++/*302209*/ OPC_MoveChild6, ++/*302210*/ OPC_CheckInteger, 1, ++/*302212*/ OPC_CheckType, MVT::i32, ++/*302214*/ OPC_MoveParent, ++/*302215*/ OPC_MoveChild7, ++/*302216*/ OPC_CheckInteger, 1, ++/*302218*/ OPC_CheckType, MVT::i32, ++/*302220*/ OPC_MoveParent, ++/*302221*/ OPC_MoveChild, 8, ++/*302223*/ OPC_CheckInteger, 1, ++/*302225*/ OPC_CheckType, MVT::i32, ++/*302227*/ OPC_MoveParent, ++/*302228*/ OPC_MoveChild, 9, ++/*302230*/ OPC_CheckInteger, 1, ++/*302232*/ OPC_CheckType, MVT::i32, ++/*302234*/ OPC_MoveParent, ++/*302235*/ OPC_MoveChild, 10, ++/*302237*/ OPC_CheckInteger, 1, ++/*302239*/ OPC_CheckType, MVT::i32, ++/*302241*/ OPC_MoveParent, ++/*302242*/ OPC_MoveChild, 11, ++/*302244*/ OPC_CheckInteger, 1, ++/*302246*/ OPC_CheckType, MVT::i32, ++/*302248*/ OPC_MoveParent, ++/*302249*/ OPC_MoveChild, 12, ++/*302251*/ OPC_CheckInteger, 1, ++/*302253*/ OPC_CheckType, MVT::i32, ++/*302255*/ OPC_MoveParent, ++/*302256*/ OPC_MoveChild, 13, ++/*302258*/ OPC_CheckInteger, 1, ++/*302260*/ OPC_CheckType, MVT::i32, ++/*302262*/ OPC_MoveParent, ++/*302263*/ OPC_MoveChild, 14, ++/*302265*/ OPC_CheckInteger, 1, ++/*302267*/ OPC_CheckType, MVT::i32, ++/*302269*/ OPC_MoveParent, ++/*302270*/ OPC_MoveChild, 15, ++/*302272*/ OPC_CheckInteger, 1, ++/*302274*/ OPC_CheckType, MVT::i32, ++/*302276*/ OPC_MoveParent, ++/*302277*/ OPC_MoveChild, 16, ++/*302279*/ OPC_CheckInteger, 1, ++/*302281*/ OPC_CheckType, MVT::i32, ++/*302283*/ OPC_MoveParent, ++/*302284*/ OPC_MoveChild, 17, ++/*302286*/ OPC_CheckInteger, 1, ++/*302288*/ OPC_CheckType, MVT::i32, ++/*302290*/ OPC_MoveParent, ++/*302291*/ OPC_MoveChild, 18, ++/*302293*/ OPC_CheckInteger, 1, ++/*302295*/ OPC_CheckType, MVT::i32, ++/*302297*/ OPC_MoveParent, ++/*302298*/ OPC_MoveChild, 19, ++/*302300*/ OPC_CheckInteger, 1, ++/*302302*/ OPC_CheckType, MVT::i32, ++/*302304*/ OPC_MoveParent, ++/*302305*/ OPC_MoveChild, 20, ++/*302307*/ OPC_CheckInteger, 1, ++/*302309*/ OPC_CheckType, MVT::i32, ++/*302311*/ OPC_MoveParent, ++/*302312*/ OPC_MoveChild, 21, ++/*302314*/ OPC_CheckInteger, 1, ++/*302316*/ OPC_CheckType, MVT::i32, ++/*302318*/ OPC_MoveParent, ++/*302319*/ OPC_MoveChild, 22, ++/*302321*/ OPC_CheckInteger, 1, ++/*302323*/ OPC_CheckType, MVT::i32, ++/*302325*/ OPC_MoveParent, ++/*302326*/ OPC_MoveChild, 23, ++/*302328*/ OPC_CheckInteger, 1, ++/*302330*/ OPC_CheckType, MVT::i32, ++/*302332*/ OPC_MoveParent, ++/*302333*/ OPC_MoveChild, 24, ++/*302335*/ OPC_CheckInteger, 1, ++/*302337*/ OPC_CheckType, MVT::i32, ++/*302339*/ OPC_MoveParent, ++/*302340*/ OPC_MoveChild, 25, ++/*302342*/ OPC_CheckInteger, 1, ++/*302344*/ OPC_CheckType, MVT::i32, ++/*302346*/ OPC_MoveParent, ++/*302347*/ OPC_MoveChild, 26, ++/*302349*/ OPC_CheckInteger, 1, ++/*302351*/ OPC_CheckType, MVT::i32, ++/*302353*/ OPC_MoveParent, ++/*302354*/ OPC_MoveChild, 27, ++/*302356*/ OPC_CheckInteger, 1, ++/*302358*/ OPC_CheckType, MVT::i32, ++/*302360*/ OPC_MoveParent, ++/*302361*/ OPC_MoveChild, 28, ++/*302363*/ OPC_CheckInteger, 1, ++/*302365*/ OPC_CheckType, MVT::i32, ++/*302367*/ OPC_MoveParent, ++/*302368*/ OPC_MoveChild, 29, ++/*302370*/ OPC_CheckInteger, 1, ++/*302372*/ OPC_CheckType, MVT::i32, ++/*302374*/ OPC_MoveParent, ++/*302375*/ OPC_MoveChild, 30, ++/*302377*/ OPC_CheckInteger, 1, ++/*302379*/ OPC_CheckType, MVT::i32, ++/*302381*/ OPC_MoveParent, ++/*302382*/ OPC_MoveChild, 31, ++/*302384*/ OPC_CheckInteger, 1, ++/*302386*/ OPC_CheckType, MVT::i32, ++/*302388*/ OPC_MoveParent, ++/*302389*/ OPC_MoveParent, ++/*302390*/ OPC_MoveParent, ++/*302391*/ OPC_CheckChild1Same, 0, ++/*302393*/ OPC_MoveParent, ++/*302394*/ OPC_MoveParent, ++/*302395*/ OPC_MoveChild1, ++/*302396*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*302399*/ OPC_CheckChild0Integer, 1, ++/*302401*/ OPC_CheckChild0Type, MVT::i32, ++/*302403*/ OPC_CheckChild1Integer, 1, ++/*302405*/ OPC_CheckChild1Type, MVT::i32, ++/*302407*/ OPC_CheckChild2Integer, 1, ++/*302409*/ OPC_CheckChild2Type, MVT::i32, ++/*302411*/ OPC_CheckChild3Integer, 1, ++/*302413*/ OPC_CheckChild3Type, MVT::i32, ++/*302415*/ OPC_CheckChild4Integer, 1, ++/*302417*/ OPC_CheckChild4Type, MVT::i32, ++/*302419*/ OPC_MoveChild5, ++/*302420*/ OPC_CheckInteger, 1, ++/*302422*/ OPC_CheckType, MVT::i32, ++/*302424*/ OPC_MoveParent, ++/*302425*/ OPC_MoveChild6, ++/*302426*/ OPC_CheckInteger, 1, ++/*302428*/ OPC_CheckType, MVT::i32, ++/*302430*/ OPC_MoveParent, ++/*302431*/ OPC_MoveChild7, ++/*302432*/ OPC_CheckInteger, 1, ++/*302434*/ OPC_CheckType, MVT::i32, ++/*302436*/ OPC_MoveParent, ++/*302437*/ OPC_MoveChild, 8, ++/*302439*/ OPC_CheckInteger, 1, ++/*302441*/ OPC_CheckType, MVT::i32, ++/*302443*/ OPC_MoveParent, ++/*302444*/ OPC_MoveChild, 9, ++/*302446*/ OPC_CheckInteger, 1, ++/*302448*/ OPC_CheckType, MVT::i32, ++/*302450*/ OPC_MoveParent, ++/*302451*/ OPC_MoveChild, 10, ++/*302453*/ OPC_CheckInteger, 1, ++/*302455*/ OPC_CheckType, MVT::i32, ++/*302457*/ OPC_MoveParent, ++/*302458*/ OPC_MoveChild, 11, ++/*302460*/ OPC_CheckInteger, 1, ++/*302462*/ OPC_CheckType, MVT::i32, ++/*302464*/ OPC_MoveParent, ++/*302465*/ OPC_MoveChild, 12, ++/*302467*/ OPC_CheckInteger, 1, ++/*302469*/ OPC_CheckType, MVT::i32, ++/*302471*/ OPC_MoveParent, ++/*302472*/ OPC_MoveChild, 13, ++/*302474*/ OPC_CheckInteger, 1, ++/*302476*/ OPC_CheckType, MVT::i32, ++/*302478*/ OPC_MoveParent, ++/*302479*/ OPC_MoveChild, 14, ++/*302481*/ OPC_CheckInteger, 1, ++/*302483*/ OPC_CheckType, MVT::i32, ++/*302485*/ OPC_MoveParent, ++/*302486*/ OPC_MoveChild, 15, ++/*302488*/ OPC_CheckInteger, 1, ++/*302490*/ OPC_CheckType, MVT::i32, ++/*302492*/ OPC_MoveParent, ++/*302493*/ OPC_MoveChild, 16, ++/*302495*/ OPC_CheckInteger, 1, ++/*302497*/ OPC_CheckType, MVT::i32, ++/*302499*/ OPC_MoveParent, ++/*302500*/ OPC_MoveChild, 17, ++/*302502*/ OPC_CheckInteger, 1, ++/*302504*/ OPC_CheckType, MVT::i32, ++/*302506*/ OPC_MoveParent, ++/*302507*/ OPC_MoveChild, 18, ++/*302509*/ OPC_CheckInteger, 1, ++/*302511*/ OPC_CheckType, MVT::i32, ++/*302513*/ OPC_MoveParent, ++/*302514*/ OPC_MoveChild, 19, ++/*302516*/ OPC_CheckInteger, 1, ++/*302518*/ OPC_CheckType, MVT::i32, ++/*302520*/ OPC_MoveParent, ++/*302521*/ OPC_MoveChild, 20, ++/*302523*/ OPC_CheckInteger, 1, ++/*302525*/ OPC_CheckType, MVT::i32, ++/*302527*/ OPC_MoveParent, ++/*302528*/ OPC_MoveChild, 21, ++/*302530*/ OPC_CheckInteger, 1, ++/*302532*/ OPC_CheckType, MVT::i32, ++/*302534*/ OPC_MoveParent, ++/*302535*/ OPC_MoveChild, 22, ++/*302537*/ OPC_CheckInteger, 1, ++/*302539*/ OPC_CheckType, MVT::i32, ++/*302541*/ OPC_MoveParent, ++/*302542*/ OPC_MoveChild, 23, ++/*302544*/ OPC_CheckInteger, 1, ++/*302546*/ OPC_CheckType, MVT::i32, ++/*302548*/ OPC_MoveParent, ++/*302549*/ OPC_MoveChild, 24, ++/*302551*/ OPC_CheckInteger, 1, ++/*302553*/ OPC_CheckType, MVT::i32, ++/*302555*/ OPC_MoveParent, ++/*302556*/ OPC_MoveChild, 25, ++/*302558*/ OPC_CheckInteger, 1, ++/*302560*/ OPC_CheckType, MVT::i32, ++/*302562*/ OPC_MoveParent, ++/*302563*/ OPC_MoveChild, 26, ++/*302565*/ OPC_CheckInteger, 1, ++/*302567*/ OPC_CheckType, MVT::i32, ++/*302569*/ OPC_MoveParent, ++/*302570*/ OPC_MoveChild, 27, ++/*302572*/ OPC_CheckInteger, 1, ++/*302574*/ OPC_CheckType, MVT::i32, ++/*302576*/ OPC_MoveParent, ++/*302577*/ OPC_MoveChild, 28, ++/*302579*/ OPC_CheckInteger, 1, ++/*302581*/ OPC_CheckType, MVT::i32, ++/*302583*/ OPC_MoveParent, ++/*302584*/ OPC_MoveChild, 29, ++/*302586*/ OPC_CheckInteger, 1, ++/*302588*/ OPC_CheckType, MVT::i32, ++/*302590*/ OPC_MoveParent, ++/*302591*/ OPC_MoveChild, 30, ++/*302593*/ OPC_CheckInteger, 1, ++/*302595*/ OPC_CheckType, MVT::i32, ++/*302597*/ OPC_MoveParent, ++/*302598*/ OPC_MoveChild, 31, ++/*302600*/ OPC_CheckInteger, 1, ++/*302602*/ OPC_CheckType, MVT::i32, ++/*302604*/ OPC_MoveParent, ++/*302605*/ OPC_CheckType, MVT::v32i8, ++/*302607*/ OPC_MoveParent, ++/*302608*/ OPC_CheckType, MVT::v32i8, ++/*302610*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*302612*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*302620*/ /*Scope*/ 59|128,3/*443*/, /*->303065*/ ++/*302622*/ OPC_MoveChild0, ++/*302623*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*302626*/ OPC_CheckChild0Integer, 1, ++/*302628*/ OPC_CheckChild0Type, MVT::i32, ++/*302630*/ OPC_CheckChild1Integer, 1, ++/*302632*/ OPC_CheckChild1Type, MVT::i32, ++/*302634*/ OPC_CheckChild2Integer, 1, ++/*302636*/ OPC_CheckChild2Type, MVT::i32, ++/*302638*/ OPC_CheckChild3Integer, 1, ++/*302640*/ OPC_CheckChild3Type, MVT::i32, ++/*302642*/ OPC_CheckChild4Integer, 1, ++/*302644*/ OPC_CheckChild4Type, MVT::i32, ++/*302646*/ OPC_MoveChild5, ++/*302647*/ OPC_CheckInteger, 1, ++/*302649*/ OPC_CheckType, MVT::i32, ++/*302651*/ OPC_MoveParent, ++/*302652*/ OPC_MoveChild6, ++/*302653*/ OPC_CheckInteger, 1, ++/*302655*/ OPC_CheckType, MVT::i32, ++/*302657*/ OPC_MoveParent, ++/*302658*/ OPC_MoveChild7, ++/*302659*/ OPC_CheckInteger, 1, ++/*302661*/ OPC_CheckType, MVT::i32, ++/*302663*/ OPC_MoveParent, ++/*302664*/ OPC_MoveChild, 8, ++/*302666*/ OPC_CheckInteger, 1, ++/*302668*/ OPC_CheckType, MVT::i32, ++/*302670*/ OPC_MoveParent, ++/*302671*/ OPC_MoveChild, 9, ++/*302673*/ OPC_CheckInteger, 1, ++/*302675*/ OPC_CheckType, MVT::i32, ++/*302677*/ OPC_MoveParent, ++/*302678*/ OPC_MoveChild, 10, ++/*302680*/ OPC_CheckInteger, 1, ++/*302682*/ OPC_CheckType, MVT::i32, ++/*302684*/ OPC_MoveParent, ++/*302685*/ OPC_MoveChild, 11, ++/*302687*/ OPC_CheckInteger, 1, ++/*302689*/ OPC_CheckType, MVT::i32, ++/*302691*/ OPC_MoveParent, ++/*302692*/ OPC_MoveChild, 12, ++/*302694*/ OPC_CheckInteger, 1, ++/*302696*/ OPC_CheckType, MVT::i32, ++/*302698*/ OPC_MoveParent, ++/*302699*/ OPC_MoveChild, 13, ++/*302701*/ OPC_CheckInteger, 1, ++/*302703*/ OPC_CheckType, MVT::i32, ++/*302705*/ OPC_MoveParent, ++/*302706*/ OPC_MoveChild, 14, ++/*302708*/ OPC_CheckInteger, 1, ++/*302710*/ OPC_CheckType, MVT::i32, ++/*302712*/ OPC_MoveParent, ++/*302713*/ OPC_MoveChild, 15, ++/*302715*/ OPC_CheckInteger, 1, ++/*302717*/ OPC_CheckType, MVT::i32, ++/*302719*/ OPC_MoveParent, ++/*302720*/ OPC_MoveChild, 16, ++/*302722*/ OPC_CheckInteger, 1, ++/*302724*/ OPC_CheckType, MVT::i32, ++/*302726*/ OPC_MoveParent, ++/*302727*/ OPC_MoveChild, 17, ++/*302729*/ OPC_CheckInteger, 1, ++/*302731*/ OPC_CheckType, MVT::i32, ++/*302733*/ OPC_MoveParent, ++/*302734*/ OPC_MoveChild, 18, ++/*302736*/ OPC_CheckInteger, 1, ++/*302738*/ OPC_CheckType, MVT::i32, ++/*302740*/ OPC_MoveParent, ++/*302741*/ OPC_MoveChild, 19, ++/*302743*/ OPC_CheckInteger, 1, ++/*302745*/ OPC_CheckType, MVT::i32, ++/*302747*/ OPC_MoveParent, ++/*302748*/ OPC_MoveChild, 20, ++/*302750*/ OPC_CheckInteger, 1, ++/*302752*/ OPC_CheckType, MVT::i32, ++/*302754*/ OPC_MoveParent, ++/*302755*/ OPC_MoveChild, 21, ++/*302757*/ OPC_CheckInteger, 1, ++/*302759*/ OPC_CheckType, MVT::i32, ++/*302761*/ OPC_MoveParent, ++/*302762*/ OPC_MoveChild, 22, ++/*302764*/ OPC_CheckInteger, 1, ++/*302766*/ OPC_CheckType, MVT::i32, ++/*302768*/ OPC_MoveParent, ++/*302769*/ OPC_MoveChild, 23, ++/*302771*/ OPC_CheckInteger, 1, ++/*302773*/ OPC_CheckType, MVT::i32, ++/*302775*/ OPC_MoveParent, ++/*302776*/ OPC_MoveChild, 24, ++/*302778*/ OPC_CheckInteger, 1, ++/*302780*/ OPC_CheckType, MVT::i32, ++/*302782*/ OPC_MoveParent, ++/*302783*/ OPC_MoveChild, 25, ++/*302785*/ OPC_CheckInteger, 1, ++/*302787*/ OPC_CheckType, MVT::i32, ++/*302789*/ OPC_MoveParent, ++/*302790*/ OPC_MoveChild, 26, ++/*302792*/ OPC_CheckInteger, 1, ++/*302794*/ OPC_CheckType, MVT::i32, ++/*302796*/ OPC_MoveParent, ++/*302797*/ OPC_MoveChild, 27, ++/*302799*/ OPC_CheckInteger, 1, ++/*302801*/ OPC_CheckType, MVT::i32, ++/*302803*/ OPC_MoveParent, ++/*302804*/ OPC_MoveChild, 28, ++/*302806*/ OPC_CheckInteger, 1, ++/*302808*/ OPC_CheckType, MVT::i32, ++/*302810*/ OPC_MoveParent, ++/*302811*/ OPC_MoveChild, 29, ++/*302813*/ OPC_CheckInteger, 1, ++/*302815*/ OPC_CheckType, MVT::i32, ++/*302817*/ OPC_MoveParent, ++/*302818*/ OPC_MoveChild, 30, ++/*302820*/ OPC_CheckInteger, 1, ++/*302822*/ OPC_CheckType, MVT::i32, ++/*302824*/ OPC_MoveParent, ++/*302825*/ OPC_MoveChild, 31, ++/*302827*/ OPC_CheckInteger, 1, ++/*302829*/ OPC_CheckType, MVT::i32, ++/*302831*/ OPC_MoveParent, ++/*302832*/ OPC_MoveParent, ++/*302833*/ OPC_CheckChild1Same, 0, ++/*302835*/ OPC_MoveParent, ++/*302836*/ OPC_CheckChild1Same, 1, ++/*302838*/ OPC_MoveParent, ++/*302839*/ OPC_MoveParent, ++/*302840*/ OPC_MoveChild1, ++/*302841*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*302844*/ OPC_CheckChild0Integer, 1, ++/*302846*/ OPC_CheckChild0Type, MVT::i32, ++/*302848*/ OPC_CheckChild1Integer, 1, ++/*302850*/ OPC_CheckChild1Type, MVT::i32, ++/*302852*/ OPC_CheckChild2Integer, 1, ++/*302854*/ OPC_CheckChild2Type, MVT::i32, ++/*302856*/ OPC_CheckChild3Integer, 1, ++/*302858*/ OPC_CheckChild3Type, MVT::i32, ++/*302860*/ OPC_CheckChild4Integer, 1, ++/*302862*/ OPC_CheckChild4Type, MVT::i32, ++/*302864*/ OPC_MoveChild5, ++/*302865*/ OPC_CheckInteger, 1, ++/*302867*/ OPC_CheckType, MVT::i32, ++/*302869*/ OPC_MoveParent, ++/*302870*/ OPC_MoveChild6, ++/*302871*/ OPC_CheckInteger, 1, ++/*302873*/ OPC_CheckType, MVT::i32, ++/*302875*/ OPC_MoveParent, ++/*302876*/ OPC_MoveChild7, ++/*302877*/ OPC_CheckInteger, 1, ++/*302879*/ OPC_CheckType, MVT::i32, ++/*302881*/ OPC_MoveParent, ++/*302882*/ OPC_MoveChild, 8, ++/*302884*/ OPC_CheckInteger, 1, ++/*302886*/ OPC_CheckType, MVT::i32, ++/*302888*/ OPC_MoveParent, ++/*302889*/ OPC_MoveChild, 9, ++/*302891*/ OPC_CheckInteger, 1, ++/*302893*/ OPC_CheckType, MVT::i32, ++/*302895*/ OPC_MoveParent, ++/*302896*/ OPC_MoveChild, 10, ++/*302898*/ OPC_CheckInteger, 1, ++/*302900*/ OPC_CheckType, MVT::i32, ++/*302902*/ OPC_MoveParent, ++/*302903*/ OPC_MoveChild, 11, ++/*302905*/ OPC_CheckInteger, 1, ++/*302907*/ OPC_CheckType, MVT::i32, ++/*302909*/ OPC_MoveParent, ++/*302910*/ OPC_MoveChild, 12, ++/*302912*/ OPC_CheckInteger, 1, ++/*302914*/ OPC_CheckType, MVT::i32, ++/*302916*/ OPC_MoveParent, ++/*302917*/ OPC_MoveChild, 13, ++/*302919*/ OPC_CheckInteger, 1, ++/*302921*/ OPC_CheckType, MVT::i32, ++/*302923*/ OPC_MoveParent, ++/*302924*/ OPC_MoveChild, 14, ++/*302926*/ OPC_CheckInteger, 1, ++/*302928*/ OPC_CheckType, MVT::i32, ++/*302930*/ OPC_MoveParent, ++/*302931*/ OPC_MoveChild, 15, ++/*302933*/ OPC_CheckInteger, 1, ++/*302935*/ OPC_CheckType, MVT::i32, ++/*302937*/ OPC_MoveParent, ++/*302938*/ OPC_MoveChild, 16, ++/*302940*/ OPC_CheckInteger, 1, ++/*302942*/ OPC_CheckType, MVT::i32, ++/*302944*/ OPC_MoveParent, ++/*302945*/ OPC_MoveChild, 17, ++/*302947*/ OPC_CheckInteger, 1, ++/*302949*/ OPC_CheckType, MVT::i32, ++/*302951*/ OPC_MoveParent, ++/*302952*/ OPC_MoveChild, 18, ++/*302954*/ OPC_CheckInteger, 1, ++/*302956*/ OPC_CheckType, MVT::i32, ++/*302958*/ OPC_MoveParent, ++/*302959*/ OPC_MoveChild, 19, ++/*302961*/ OPC_CheckInteger, 1, ++/*302963*/ OPC_CheckType, MVT::i32, ++/*302965*/ OPC_MoveParent, ++/*302966*/ OPC_MoveChild, 20, ++/*302968*/ OPC_CheckInteger, 1, ++/*302970*/ OPC_CheckType, MVT::i32, ++/*302972*/ OPC_MoveParent, ++/*302973*/ OPC_MoveChild, 21, ++/*302975*/ OPC_CheckInteger, 1, ++/*302977*/ OPC_CheckType, MVT::i32, ++/*302979*/ OPC_MoveParent, ++/*302980*/ OPC_MoveChild, 22, ++/*302982*/ OPC_CheckInteger, 1, ++/*302984*/ OPC_CheckType, MVT::i32, ++/*302986*/ OPC_MoveParent, ++/*302987*/ OPC_MoveChild, 23, ++/*302989*/ OPC_CheckInteger, 1, ++/*302991*/ OPC_CheckType, MVT::i32, ++/*302993*/ OPC_MoveParent, ++/*302994*/ OPC_MoveChild, 24, ++/*302996*/ OPC_CheckInteger, 1, ++/*302998*/ OPC_CheckType, MVT::i32, ++/*303000*/ OPC_MoveParent, ++/*303001*/ OPC_MoveChild, 25, ++/*303003*/ OPC_CheckInteger, 1, ++/*303005*/ OPC_CheckType, MVT::i32, ++/*303007*/ OPC_MoveParent, ++/*303008*/ OPC_MoveChild, 26, ++/*303010*/ OPC_CheckInteger, 1, ++/*303012*/ OPC_CheckType, MVT::i32, ++/*303014*/ OPC_MoveParent, ++/*303015*/ OPC_MoveChild, 27, ++/*303017*/ OPC_CheckInteger, 1, ++/*303019*/ OPC_CheckType, MVT::i32, ++/*303021*/ OPC_MoveParent, ++/*303022*/ OPC_MoveChild, 28, ++/*303024*/ OPC_CheckInteger, 1, ++/*303026*/ OPC_CheckType, MVT::i32, ++/*303028*/ OPC_MoveParent, ++/*303029*/ OPC_MoveChild, 29, ++/*303031*/ OPC_CheckInteger, 1, ++/*303033*/ OPC_CheckType, MVT::i32, ++/*303035*/ OPC_MoveParent, ++/*303036*/ OPC_MoveChild, 30, ++/*303038*/ OPC_CheckInteger, 1, ++/*303040*/ OPC_CheckType, MVT::i32, ++/*303042*/ OPC_MoveParent, ++/*303043*/ OPC_MoveChild, 31, ++/*303045*/ OPC_CheckInteger, 1, ++/*303047*/ OPC_CheckType, MVT::i32, ++/*303049*/ OPC_MoveParent, ++/*303050*/ OPC_CheckType, MVT::v32i8, ++/*303052*/ OPC_MoveParent, ++/*303053*/ OPC_CheckType, MVT::v32i8, ++/*303055*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*303057*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b), LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*303065*/ /*Scope*/ 59|128,3/*443*/, /*->303510*/ ++/*303067*/ OPC_CheckChild0Same, 0, ++/*303069*/ OPC_MoveChild1, ++/*303070*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*303073*/ OPC_CheckChild0Integer, 1, ++/*303075*/ OPC_CheckChild0Type, MVT::i32, ++/*303077*/ OPC_CheckChild1Integer, 1, ++/*303079*/ OPC_CheckChild1Type, MVT::i32, ++/*303081*/ OPC_CheckChild2Integer, 1, ++/*303083*/ OPC_CheckChild2Type, MVT::i32, ++/*303085*/ OPC_CheckChild3Integer, 1, ++/*303087*/ OPC_CheckChild3Type, MVT::i32, ++/*303089*/ OPC_CheckChild4Integer, 1, ++/*303091*/ OPC_CheckChild4Type, MVT::i32, ++/*303093*/ OPC_MoveChild5, ++/*303094*/ OPC_CheckInteger, 1, ++/*303096*/ OPC_CheckType, MVT::i32, ++/*303098*/ OPC_MoveParent, ++/*303099*/ OPC_MoveChild6, ++/*303100*/ OPC_CheckInteger, 1, ++/*303102*/ OPC_CheckType, MVT::i32, ++/*303104*/ OPC_MoveParent, ++/*303105*/ OPC_MoveChild7, ++/*303106*/ OPC_CheckInteger, 1, ++/*303108*/ OPC_CheckType, MVT::i32, ++/*303110*/ OPC_MoveParent, ++/*303111*/ OPC_MoveChild, 8, ++/*303113*/ OPC_CheckInteger, 1, ++/*303115*/ OPC_CheckType, MVT::i32, ++/*303117*/ OPC_MoveParent, ++/*303118*/ OPC_MoveChild, 9, ++/*303120*/ OPC_CheckInteger, 1, ++/*303122*/ OPC_CheckType, MVT::i32, ++/*303124*/ OPC_MoveParent, ++/*303125*/ OPC_MoveChild, 10, ++/*303127*/ OPC_CheckInteger, 1, ++/*303129*/ OPC_CheckType, MVT::i32, ++/*303131*/ OPC_MoveParent, ++/*303132*/ OPC_MoveChild, 11, ++/*303134*/ OPC_CheckInteger, 1, ++/*303136*/ OPC_CheckType, MVT::i32, ++/*303138*/ OPC_MoveParent, ++/*303139*/ OPC_MoveChild, 12, ++/*303141*/ OPC_CheckInteger, 1, ++/*303143*/ OPC_CheckType, MVT::i32, ++/*303145*/ OPC_MoveParent, ++/*303146*/ OPC_MoveChild, 13, ++/*303148*/ OPC_CheckInteger, 1, ++/*303150*/ OPC_CheckType, MVT::i32, ++/*303152*/ OPC_MoveParent, ++/*303153*/ OPC_MoveChild, 14, ++/*303155*/ OPC_CheckInteger, 1, ++/*303157*/ OPC_CheckType, MVT::i32, ++/*303159*/ OPC_MoveParent, ++/*303160*/ OPC_MoveChild, 15, ++/*303162*/ OPC_CheckInteger, 1, ++/*303164*/ OPC_CheckType, MVT::i32, ++/*303166*/ OPC_MoveParent, ++/*303167*/ OPC_MoveChild, 16, ++/*303169*/ OPC_CheckInteger, 1, ++/*303171*/ OPC_CheckType, MVT::i32, ++/*303173*/ OPC_MoveParent, ++/*303174*/ OPC_MoveChild, 17, ++/*303176*/ OPC_CheckInteger, 1, ++/*303178*/ OPC_CheckType, MVT::i32, ++/*303180*/ OPC_MoveParent, ++/*303181*/ OPC_MoveChild, 18, ++/*303183*/ OPC_CheckInteger, 1, ++/*303185*/ OPC_CheckType, MVT::i32, ++/*303187*/ OPC_MoveParent, ++/*303188*/ OPC_MoveChild, 19, ++/*303190*/ OPC_CheckInteger, 1, ++/*303192*/ OPC_CheckType, MVT::i32, ++/*303194*/ OPC_MoveParent, ++/*303195*/ OPC_MoveChild, 20, ++/*303197*/ OPC_CheckInteger, 1, ++/*303199*/ OPC_CheckType, MVT::i32, ++/*303201*/ OPC_MoveParent, ++/*303202*/ OPC_MoveChild, 21, ++/*303204*/ OPC_CheckInteger, 1, ++/*303206*/ OPC_CheckType, MVT::i32, ++/*303208*/ OPC_MoveParent, ++/*303209*/ OPC_MoveChild, 22, ++/*303211*/ OPC_CheckInteger, 1, ++/*303213*/ OPC_CheckType, MVT::i32, ++/*303215*/ OPC_MoveParent, ++/*303216*/ OPC_MoveChild, 23, ++/*303218*/ OPC_CheckInteger, 1, ++/*303220*/ OPC_CheckType, MVT::i32, ++/*303222*/ OPC_MoveParent, ++/*303223*/ OPC_MoveChild, 24, ++/*303225*/ OPC_CheckInteger, 1, ++/*303227*/ OPC_CheckType, MVT::i32, ++/*303229*/ OPC_MoveParent, ++/*303230*/ OPC_MoveChild, 25, ++/*303232*/ OPC_CheckInteger, 1, ++/*303234*/ OPC_CheckType, MVT::i32, ++/*303236*/ OPC_MoveParent, ++/*303237*/ OPC_MoveChild, 26, ++/*303239*/ OPC_CheckInteger, 1, ++/*303241*/ OPC_CheckType, MVT::i32, ++/*303243*/ OPC_MoveParent, ++/*303244*/ OPC_MoveChild, 27, ++/*303246*/ OPC_CheckInteger, 1, ++/*303248*/ OPC_CheckType, MVT::i32, ++/*303250*/ OPC_MoveParent, ++/*303251*/ OPC_MoveChild, 28, ++/*303253*/ OPC_CheckInteger, 1, ++/*303255*/ OPC_CheckType, MVT::i32, ++/*303257*/ OPC_MoveParent, ++/*303258*/ OPC_MoveChild, 29, ++/*303260*/ OPC_CheckInteger, 1, ++/*303262*/ OPC_CheckType, MVT::i32, ++/*303264*/ OPC_MoveParent, ++/*303265*/ OPC_MoveChild, 30, ++/*303267*/ OPC_CheckInteger, 1, ++/*303269*/ OPC_CheckType, MVT::i32, ++/*303271*/ OPC_MoveParent, ++/*303272*/ OPC_MoveChild, 31, ++/*303274*/ OPC_CheckInteger, 1, ++/*303276*/ OPC_CheckType, MVT::i32, ++/*303278*/ OPC_MoveParent, ++/*303279*/ OPC_MoveParent, ++/*303280*/ OPC_MoveParent, ++/*303281*/ OPC_CheckChild1Same, 1, ++/*303283*/ OPC_MoveParent, ++/*303284*/ OPC_MoveParent, ++/*303285*/ OPC_MoveChild1, ++/*303286*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*303289*/ OPC_CheckChild0Integer, 1, ++/*303291*/ OPC_CheckChild0Type, MVT::i32, ++/*303293*/ OPC_CheckChild1Integer, 1, ++/*303295*/ OPC_CheckChild1Type, MVT::i32, ++/*303297*/ OPC_CheckChild2Integer, 1, ++/*303299*/ OPC_CheckChild2Type, MVT::i32, ++/*303301*/ OPC_CheckChild3Integer, 1, ++/*303303*/ OPC_CheckChild3Type, MVT::i32, ++/*303305*/ OPC_CheckChild4Integer, 1, ++/*303307*/ OPC_CheckChild4Type, MVT::i32, ++/*303309*/ OPC_MoveChild5, ++/*303310*/ OPC_CheckInteger, 1, ++/*303312*/ OPC_CheckType, MVT::i32, ++/*303314*/ OPC_MoveParent, ++/*303315*/ OPC_MoveChild6, ++/*303316*/ OPC_CheckInteger, 1, ++/*303318*/ OPC_CheckType, MVT::i32, ++/*303320*/ OPC_MoveParent, ++/*303321*/ OPC_MoveChild7, ++/*303322*/ OPC_CheckInteger, 1, ++/*303324*/ OPC_CheckType, MVT::i32, ++/*303326*/ OPC_MoveParent, ++/*303327*/ OPC_MoveChild, 8, ++/*303329*/ OPC_CheckInteger, 1, ++/*303331*/ OPC_CheckType, MVT::i32, ++/*303333*/ OPC_MoveParent, ++/*303334*/ OPC_MoveChild, 9, ++/*303336*/ OPC_CheckInteger, 1, ++/*303338*/ OPC_CheckType, MVT::i32, ++/*303340*/ OPC_MoveParent, ++/*303341*/ OPC_MoveChild, 10, ++/*303343*/ OPC_CheckInteger, 1, ++/*303345*/ OPC_CheckType, MVT::i32, ++/*303347*/ OPC_MoveParent, ++/*303348*/ OPC_MoveChild, 11, ++/*303350*/ OPC_CheckInteger, 1, ++/*303352*/ OPC_CheckType, MVT::i32, ++/*303354*/ OPC_MoveParent, ++/*303355*/ OPC_MoveChild, 12, ++/*303357*/ OPC_CheckInteger, 1, ++/*303359*/ OPC_CheckType, MVT::i32, ++/*303361*/ OPC_MoveParent, ++/*303362*/ OPC_MoveChild, 13, ++/*303364*/ OPC_CheckInteger, 1, ++/*303366*/ OPC_CheckType, MVT::i32, ++/*303368*/ OPC_MoveParent, ++/*303369*/ OPC_MoveChild, 14, ++/*303371*/ OPC_CheckInteger, 1, ++/*303373*/ OPC_CheckType, MVT::i32, ++/*303375*/ OPC_MoveParent, ++/*303376*/ OPC_MoveChild, 15, ++/*303378*/ OPC_CheckInteger, 1, ++/*303380*/ OPC_CheckType, MVT::i32, ++/*303382*/ OPC_MoveParent, ++/*303383*/ OPC_MoveChild, 16, ++/*303385*/ OPC_CheckInteger, 1, ++/*303387*/ OPC_CheckType, MVT::i32, ++/*303389*/ OPC_MoveParent, ++/*303390*/ OPC_MoveChild, 17, ++/*303392*/ OPC_CheckInteger, 1, ++/*303394*/ OPC_CheckType, MVT::i32, ++/*303396*/ OPC_MoveParent, ++/*303397*/ OPC_MoveChild, 18, ++/*303399*/ OPC_CheckInteger, 1, ++/*303401*/ OPC_CheckType, MVT::i32, ++/*303403*/ OPC_MoveParent, ++/*303404*/ OPC_MoveChild, 19, ++/*303406*/ OPC_CheckInteger, 1, ++/*303408*/ OPC_CheckType, MVT::i32, ++/*303410*/ OPC_MoveParent, ++/*303411*/ OPC_MoveChild, 20, ++/*303413*/ OPC_CheckInteger, 1, ++/*303415*/ OPC_CheckType, MVT::i32, ++/*303417*/ OPC_MoveParent, ++/*303418*/ OPC_MoveChild, 21, ++/*303420*/ OPC_CheckInteger, 1, ++/*303422*/ OPC_CheckType, MVT::i32, ++/*303424*/ OPC_MoveParent, ++/*303425*/ OPC_MoveChild, 22, ++/*303427*/ OPC_CheckInteger, 1, ++/*303429*/ OPC_CheckType, MVT::i32, ++/*303431*/ OPC_MoveParent, ++/*303432*/ OPC_MoveChild, 23, ++/*303434*/ OPC_CheckInteger, 1, ++/*303436*/ OPC_CheckType, MVT::i32, ++/*303438*/ OPC_MoveParent, ++/*303439*/ OPC_MoveChild, 24, ++/*303441*/ OPC_CheckInteger, 1, ++/*303443*/ OPC_CheckType, MVT::i32, ++/*303445*/ OPC_MoveParent, ++/*303446*/ OPC_MoveChild, 25, ++/*303448*/ OPC_CheckInteger, 1, ++/*303450*/ OPC_CheckType, MVT::i32, ++/*303452*/ OPC_MoveParent, ++/*303453*/ OPC_MoveChild, 26, ++/*303455*/ OPC_CheckInteger, 1, ++/*303457*/ OPC_CheckType, MVT::i32, ++/*303459*/ OPC_MoveParent, ++/*303460*/ OPC_MoveChild, 27, ++/*303462*/ OPC_CheckInteger, 1, ++/*303464*/ OPC_CheckType, MVT::i32, ++/*303466*/ OPC_MoveParent, ++/*303467*/ OPC_MoveChild, 28, ++/*303469*/ OPC_CheckInteger, 1, ++/*303471*/ OPC_CheckType, MVT::i32, ++/*303473*/ OPC_MoveParent, ++/*303474*/ OPC_MoveChild, 29, ++/*303476*/ OPC_CheckInteger, 1, ++/*303478*/ OPC_CheckType, MVT::i32, ++/*303480*/ OPC_MoveParent, ++/*303481*/ OPC_MoveChild, 30, ++/*303483*/ OPC_CheckInteger, 1, ++/*303485*/ OPC_CheckType, MVT::i32, ++/*303487*/ OPC_MoveParent, ++/*303488*/ OPC_MoveChild, 31, ++/*303490*/ OPC_CheckInteger, 1, ++/*303492*/ OPC_CheckType, MVT::i32, ++/*303494*/ OPC_MoveParent, ++/*303495*/ OPC_CheckType, MVT::v32i8, ++/*303497*/ OPC_MoveParent, ++/*303498*/ OPC_CheckType, MVT::v32i8, ++/*303500*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*303502*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*303510*/ /*Scope*/ 59|128,3/*443*/, /*->303955*/ ++/*303512*/ OPC_CheckChild0Same, 1, ++/*303514*/ OPC_CheckChild1Same, 0, ++/*303516*/ OPC_MoveParent, ++/*303517*/ OPC_MoveChild1, ++/*303518*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*303521*/ OPC_CheckChild0Integer, 1, ++/*303523*/ OPC_CheckChild0Type, MVT::i32, ++/*303525*/ OPC_CheckChild1Integer, 1, ++/*303527*/ OPC_CheckChild1Type, MVT::i32, ++/*303529*/ OPC_CheckChild2Integer, 1, ++/*303531*/ OPC_CheckChild2Type, MVT::i32, ++/*303533*/ OPC_CheckChild3Integer, 1, ++/*303535*/ OPC_CheckChild3Type, MVT::i32, ++/*303537*/ OPC_CheckChild4Integer, 1, ++/*303539*/ OPC_CheckChild4Type, MVT::i32, ++/*303541*/ OPC_MoveChild5, ++/*303542*/ OPC_CheckInteger, 1, ++/*303544*/ OPC_CheckType, MVT::i32, ++/*303546*/ OPC_MoveParent, ++/*303547*/ OPC_MoveChild6, ++/*303548*/ OPC_CheckInteger, 1, ++/*303550*/ OPC_CheckType, MVT::i32, ++/*303552*/ OPC_MoveParent, ++/*303553*/ OPC_MoveChild7, ++/*303554*/ OPC_CheckInteger, 1, ++/*303556*/ OPC_CheckType, MVT::i32, ++/*303558*/ OPC_MoveParent, ++/*303559*/ OPC_MoveChild, 8, ++/*303561*/ OPC_CheckInteger, 1, ++/*303563*/ OPC_CheckType, MVT::i32, ++/*303565*/ OPC_MoveParent, ++/*303566*/ OPC_MoveChild, 9, ++/*303568*/ OPC_CheckInteger, 1, ++/*303570*/ OPC_CheckType, MVT::i32, ++/*303572*/ OPC_MoveParent, ++/*303573*/ OPC_MoveChild, 10, ++/*303575*/ OPC_CheckInteger, 1, ++/*303577*/ OPC_CheckType, MVT::i32, ++/*303579*/ OPC_MoveParent, ++/*303580*/ OPC_MoveChild, 11, ++/*303582*/ OPC_CheckInteger, 1, ++/*303584*/ OPC_CheckType, MVT::i32, ++/*303586*/ OPC_MoveParent, ++/*303587*/ OPC_MoveChild, 12, ++/*303589*/ OPC_CheckInteger, 1, ++/*303591*/ OPC_CheckType, MVT::i32, ++/*303593*/ OPC_MoveParent, ++/*303594*/ OPC_MoveChild, 13, ++/*303596*/ OPC_CheckInteger, 1, ++/*303598*/ OPC_CheckType, MVT::i32, ++/*303600*/ OPC_MoveParent, ++/*303601*/ OPC_MoveChild, 14, ++/*303603*/ OPC_CheckInteger, 1, ++/*303605*/ OPC_CheckType, MVT::i32, ++/*303607*/ OPC_MoveParent, ++/*303608*/ OPC_MoveChild, 15, ++/*303610*/ OPC_CheckInteger, 1, ++/*303612*/ OPC_CheckType, MVT::i32, ++/*303614*/ OPC_MoveParent, ++/*303615*/ OPC_MoveChild, 16, ++/*303617*/ OPC_CheckInteger, 1, ++/*303619*/ OPC_CheckType, MVT::i32, ++/*303621*/ OPC_MoveParent, ++/*303622*/ OPC_MoveChild, 17, ++/*303624*/ OPC_CheckInteger, 1, ++/*303626*/ OPC_CheckType, MVT::i32, ++/*303628*/ OPC_MoveParent, ++/*303629*/ OPC_MoveChild, 18, ++/*303631*/ OPC_CheckInteger, 1, ++/*303633*/ OPC_CheckType, MVT::i32, ++/*303635*/ OPC_MoveParent, ++/*303636*/ OPC_MoveChild, 19, ++/*303638*/ OPC_CheckInteger, 1, ++/*303640*/ OPC_CheckType, MVT::i32, ++/*303642*/ OPC_MoveParent, ++/*303643*/ OPC_MoveChild, 20, ++/*303645*/ OPC_CheckInteger, 1, ++/*303647*/ OPC_CheckType, MVT::i32, ++/*303649*/ OPC_MoveParent, ++/*303650*/ OPC_MoveChild, 21, ++/*303652*/ OPC_CheckInteger, 1, ++/*303654*/ OPC_CheckType, MVT::i32, ++/*303656*/ OPC_MoveParent, ++/*303657*/ OPC_MoveChild, 22, ++/*303659*/ OPC_CheckInteger, 1, ++/*303661*/ OPC_CheckType, MVT::i32, ++/*303663*/ OPC_MoveParent, ++/*303664*/ OPC_MoveChild, 23, ++/*303666*/ OPC_CheckInteger, 1, ++/*303668*/ OPC_CheckType, MVT::i32, ++/*303670*/ OPC_MoveParent, ++/*303671*/ OPC_MoveChild, 24, ++/*303673*/ OPC_CheckInteger, 1, ++/*303675*/ OPC_CheckType, MVT::i32, ++/*303677*/ OPC_MoveParent, ++/*303678*/ OPC_MoveChild, 25, ++/*303680*/ OPC_CheckInteger, 1, ++/*303682*/ OPC_CheckType, MVT::i32, ++/*303684*/ OPC_MoveParent, ++/*303685*/ OPC_MoveChild, 26, ++/*303687*/ OPC_CheckInteger, 1, ++/*303689*/ OPC_CheckType, MVT::i32, ++/*303691*/ OPC_MoveParent, ++/*303692*/ OPC_MoveChild, 27, ++/*303694*/ OPC_CheckInteger, 1, ++/*303696*/ OPC_CheckType, MVT::i32, ++/*303698*/ OPC_MoveParent, ++/*303699*/ OPC_MoveChild, 28, ++/*303701*/ OPC_CheckInteger, 1, ++/*303703*/ OPC_CheckType, MVT::i32, ++/*303705*/ OPC_MoveParent, ++/*303706*/ OPC_MoveChild, 29, ++/*303708*/ OPC_CheckInteger, 1, ++/*303710*/ OPC_CheckType, MVT::i32, ++/*303712*/ OPC_MoveParent, ++/*303713*/ OPC_MoveChild, 30, ++/*303715*/ OPC_CheckInteger, 1, ++/*303717*/ OPC_CheckType, MVT::i32, ++/*303719*/ OPC_MoveParent, ++/*303720*/ OPC_MoveChild, 31, ++/*303722*/ OPC_CheckInteger, 1, ++/*303724*/ OPC_CheckType, MVT::i32, ++/*303726*/ OPC_MoveParent, ++/*303727*/ OPC_MoveParent, ++/*303728*/ OPC_MoveParent, ++/*303729*/ OPC_MoveParent, ++/*303730*/ OPC_MoveChild1, ++/*303731*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*303734*/ OPC_CheckChild0Integer, 1, ++/*303736*/ OPC_CheckChild0Type, MVT::i32, ++/*303738*/ OPC_CheckChild1Integer, 1, ++/*303740*/ OPC_CheckChild1Type, MVT::i32, ++/*303742*/ OPC_CheckChild2Integer, 1, ++/*303744*/ OPC_CheckChild2Type, MVT::i32, ++/*303746*/ OPC_CheckChild3Integer, 1, ++/*303748*/ OPC_CheckChild3Type, MVT::i32, ++/*303750*/ OPC_CheckChild4Integer, 1, ++/*303752*/ OPC_CheckChild4Type, MVT::i32, ++/*303754*/ OPC_MoveChild5, ++/*303755*/ OPC_CheckInteger, 1, ++/*303757*/ OPC_CheckType, MVT::i32, ++/*303759*/ OPC_MoveParent, ++/*303760*/ OPC_MoveChild6, ++/*303761*/ OPC_CheckInteger, 1, ++/*303763*/ OPC_CheckType, MVT::i32, ++/*303765*/ OPC_MoveParent, ++/*303766*/ OPC_MoveChild7, ++/*303767*/ OPC_CheckInteger, 1, ++/*303769*/ OPC_CheckType, MVT::i32, ++/*303771*/ OPC_MoveParent, ++/*303772*/ OPC_MoveChild, 8, ++/*303774*/ OPC_CheckInteger, 1, ++/*303776*/ OPC_CheckType, MVT::i32, ++/*303778*/ OPC_MoveParent, ++/*303779*/ OPC_MoveChild, 9, ++/*303781*/ OPC_CheckInteger, 1, ++/*303783*/ OPC_CheckType, MVT::i32, ++/*303785*/ OPC_MoveParent, ++/*303786*/ OPC_MoveChild, 10, ++/*303788*/ OPC_CheckInteger, 1, ++/*303790*/ OPC_CheckType, MVT::i32, ++/*303792*/ OPC_MoveParent, ++/*303793*/ OPC_MoveChild, 11, ++/*303795*/ OPC_CheckInteger, 1, ++/*303797*/ OPC_CheckType, MVT::i32, ++/*303799*/ OPC_MoveParent, ++/*303800*/ OPC_MoveChild, 12, ++/*303802*/ OPC_CheckInteger, 1, ++/*303804*/ OPC_CheckType, MVT::i32, ++/*303806*/ OPC_MoveParent, ++/*303807*/ OPC_MoveChild, 13, ++/*303809*/ OPC_CheckInteger, 1, ++/*303811*/ OPC_CheckType, MVT::i32, ++/*303813*/ OPC_MoveParent, ++/*303814*/ OPC_MoveChild, 14, ++/*303816*/ OPC_CheckInteger, 1, ++/*303818*/ OPC_CheckType, MVT::i32, ++/*303820*/ OPC_MoveParent, ++/*303821*/ OPC_MoveChild, 15, ++/*303823*/ OPC_CheckInteger, 1, ++/*303825*/ OPC_CheckType, MVT::i32, ++/*303827*/ OPC_MoveParent, ++/*303828*/ OPC_MoveChild, 16, ++/*303830*/ OPC_CheckInteger, 1, ++/*303832*/ OPC_CheckType, MVT::i32, ++/*303834*/ OPC_MoveParent, ++/*303835*/ OPC_MoveChild, 17, ++/*303837*/ OPC_CheckInteger, 1, ++/*303839*/ OPC_CheckType, MVT::i32, ++/*303841*/ OPC_MoveParent, ++/*303842*/ OPC_MoveChild, 18, ++/*303844*/ OPC_CheckInteger, 1, ++/*303846*/ OPC_CheckType, MVT::i32, ++/*303848*/ OPC_MoveParent, ++/*303849*/ OPC_MoveChild, 19, ++/*303851*/ OPC_CheckInteger, 1, ++/*303853*/ OPC_CheckType, MVT::i32, ++/*303855*/ OPC_MoveParent, ++/*303856*/ OPC_MoveChild, 20, ++/*303858*/ OPC_CheckInteger, 1, ++/*303860*/ OPC_CheckType, MVT::i32, ++/*303862*/ OPC_MoveParent, ++/*303863*/ OPC_MoveChild, 21, ++/*303865*/ OPC_CheckInteger, 1, ++/*303867*/ OPC_CheckType, MVT::i32, ++/*303869*/ OPC_MoveParent, ++/*303870*/ OPC_MoveChild, 22, ++/*303872*/ OPC_CheckInteger, 1, ++/*303874*/ OPC_CheckType, MVT::i32, ++/*303876*/ OPC_MoveParent, ++/*303877*/ OPC_MoveChild, 23, ++/*303879*/ OPC_CheckInteger, 1, ++/*303881*/ OPC_CheckType, MVT::i32, ++/*303883*/ OPC_MoveParent, ++/*303884*/ OPC_MoveChild, 24, ++/*303886*/ OPC_CheckInteger, 1, ++/*303888*/ OPC_CheckType, MVT::i32, ++/*303890*/ OPC_MoveParent, ++/*303891*/ OPC_MoveChild, 25, ++/*303893*/ OPC_CheckInteger, 1, ++/*303895*/ OPC_CheckType, MVT::i32, ++/*303897*/ OPC_MoveParent, ++/*303898*/ OPC_MoveChild, 26, ++/*303900*/ OPC_CheckInteger, 1, ++/*303902*/ OPC_CheckType, MVT::i32, ++/*303904*/ OPC_MoveParent, ++/*303905*/ OPC_MoveChild, 27, ++/*303907*/ OPC_CheckInteger, 1, ++/*303909*/ OPC_CheckType, MVT::i32, ++/*303911*/ OPC_MoveParent, ++/*303912*/ OPC_MoveChild, 28, ++/*303914*/ OPC_CheckInteger, 1, ++/*303916*/ OPC_CheckType, MVT::i32, ++/*303918*/ OPC_MoveParent, ++/*303919*/ OPC_MoveChild, 29, ++/*303921*/ OPC_CheckInteger, 1, ++/*303923*/ OPC_CheckType, MVT::i32, ++/*303925*/ OPC_MoveParent, ++/*303926*/ OPC_MoveChild, 30, ++/*303928*/ OPC_CheckInteger, 1, ++/*303930*/ OPC_CheckType, MVT::i32, ++/*303932*/ OPC_MoveParent, ++/*303933*/ OPC_MoveChild, 31, ++/*303935*/ OPC_CheckInteger, 1, ++/*303937*/ OPC_CheckType, MVT::i32, ++/*303939*/ OPC_MoveParent, ++/*303940*/ OPC_CheckType, MVT::v32i8, ++/*303942*/ OPC_MoveParent, ++/*303943*/ OPC_CheckType, MVT::v32i8, ++/*303945*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*303947*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*303955*/ /*Scope*/ 59|128,3/*443*/, /*->304400*/ ++/*303957*/ OPC_CheckChild0Same, 0, ++/*303959*/ OPC_CheckChild1Same, 1, ++/*303961*/ OPC_MoveParent, ++/*303962*/ OPC_MoveChild1, ++/*303963*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*303966*/ OPC_CheckChild0Integer, 1, ++/*303968*/ OPC_CheckChild0Type, MVT::i32, ++/*303970*/ OPC_CheckChild1Integer, 1, ++/*303972*/ OPC_CheckChild1Type, MVT::i32, ++/*303974*/ OPC_CheckChild2Integer, 1, ++/*303976*/ OPC_CheckChild2Type, MVT::i32, ++/*303978*/ OPC_CheckChild3Integer, 1, ++/*303980*/ OPC_CheckChild3Type, MVT::i32, ++/*303982*/ OPC_CheckChild4Integer, 1, ++/*303984*/ OPC_CheckChild4Type, MVT::i32, ++/*303986*/ OPC_MoveChild5, ++/*303987*/ OPC_CheckInteger, 1, ++/*303989*/ OPC_CheckType, MVT::i32, ++/*303991*/ OPC_MoveParent, ++/*303992*/ OPC_MoveChild6, ++/*303993*/ OPC_CheckInteger, 1, ++/*303995*/ OPC_CheckType, MVT::i32, ++/*303997*/ OPC_MoveParent, ++/*303998*/ OPC_MoveChild7, ++/*303999*/ OPC_CheckInteger, 1, ++/*304001*/ OPC_CheckType, MVT::i32, ++/*304003*/ OPC_MoveParent, ++/*304004*/ OPC_MoveChild, 8, ++/*304006*/ OPC_CheckInteger, 1, ++/*304008*/ OPC_CheckType, MVT::i32, ++/*304010*/ OPC_MoveParent, ++/*304011*/ OPC_MoveChild, 9, ++/*304013*/ OPC_CheckInteger, 1, ++/*304015*/ OPC_CheckType, MVT::i32, ++/*304017*/ OPC_MoveParent, ++/*304018*/ OPC_MoveChild, 10, ++/*304020*/ OPC_CheckInteger, 1, ++/*304022*/ OPC_CheckType, MVT::i32, ++/*304024*/ OPC_MoveParent, ++/*304025*/ OPC_MoveChild, 11, ++/*304027*/ OPC_CheckInteger, 1, ++/*304029*/ OPC_CheckType, MVT::i32, ++/*304031*/ OPC_MoveParent, ++/*304032*/ OPC_MoveChild, 12, ++/*304034*/ OPC_CheckInteger, 1, ++/*304036*/ OPC_CheckType, MVT::i32, ++/*304038*/ OPC_MoveParent, ++/*304039*/ OPC_MoveChild, 13, ++/*304041*/ OPC_CheckInteger, 1, ++/*304043*/ OPC_CheckType, MVT::i32, ++/*304045*/ OPC_MoveParent, ++/*304046*/ OPC_MoveChild, 14, ++/*304048*/ OPC_CheckInteger, 1, ++/*304050*/ OPC_CheckType, MVT::i32, ++/*304052*/ OPC_MoveParent, ++/*304053*/ OPC_MoveChild, 15, ++/*304055*/ OPC_CheckInteger, 1, ++/*304057*/ OPC_CheckType, MVT::i32, ++/*304059*/ OPC_MoveParent, ++/*304060*/ OPC_MoveChild, 16, ++/*304062*/ OPC_CheckInteger, 1, ++/*304064*/ OPC_CheckType, MVT::i32, ++/*304066*/ OPC_MoveParent, ++/*304067*/ OPC_MoveChild, 17, ++/*304069*/ OPC_CheckInteger, 1, ++/*304071*/ OPC_CheckType, MVT::i32, ++/*304073*/ OPC_MoveParent, ++/*304074*/ OPC_MoveChild, 18, ++/*304076*/ OPC_CheckInteger, 1, ++/*304078*/ OPC_CheckType, MVT::i32, ++/*304080*/ OPC_MoveParent, ++/*304081*/ OPC_MoveChild, 19, ++/*304083*/ OPC_CheckInteger, 1, ++/*304085*/ OPC_CheckType, MVT::i32, ++/*304087*/ OPC_MoveParent, ++/*304088*/ OPC_MoveChild, 20, ++/*304090*/ OPC_CheckInteger, 1, ++/*304092*/ OPC_CheckType, MVT::i32, ++/*304094*/ OPC_MoveParent, ++/*304095*/ OPC_MoveChild, 21, ++/*304097*/ OPC_CheckInteger, 1, ++/*304099*/ OPC_CheckType, MVT::i32, ++/*304101*/ OPC_MoveParent, ++/*304102*/ OPC_MoveChild, 22, ++/*304104*/ OPC_CheckInteger, 1, ++/*304106*/ OPC_CheckType, MVT::i32, ++/*304108*/ OPC_MoveParent, ++/*304109*/ OPC_MoveChild, 23, ++/*304111*/ OPC_CheckInteger, 1, ++/*304113*/ OPC_CheckType, MVT::i32, ++/*304115*/ OPC_MoveParent, ++/*304116*/ OPC_MoveChild, 24, ++/*304118*/ OPC_CheckInteger, 1, ++/*304120*/ OPC_CheckType, MVT::i32, ++/*304122*/ OPC_MoveParent, ++/*304123*/ OPC_MoveChild, 25, ++/*304125*/ OPC_CheckInteger, 1, ++/*304127*/ OPC_CheckType, MVT::i32, ++/*304129*/ OPC_MoveParent, ++/*304130*/ OPC_MoveChild, 26, ++/*304132*/ OPC_CheckInteger, 1, ++/*304134*/ OPC_CheckType, MVT::i32, ++/*304136*/ OPC_MoveParent, ++/*304137*/ OPC_MoveChild, 27, ++/*304139*/ OPC_CheckInteger, 1, ++/*304141*/ OPC_CheckType, MVT::i32, ++/*304143*/ OPC_MoveParent, ++/*304144*/ OPC_MoveChild, 28, ++/*304146*/ OPC_CheckInteger, 1, ++/*304148*/ OPC_CheckType, MVT::i32, ++/*304150*/ OPC_MoveParent, ++/*304151*/ OPC_MoveChild, 29, ++/*304153*/ OPC_CheckInteger, 1, ++/*304155*/ OPC_CheckType, MVT::i32, ++/*304157*/ OPC_MoveParent, ++/*304158*/ OPC_MoveChild, 30, ++/*304160*/ OPC_CheckInteger, 1, ++/*304162*/ OPC_CheckType, MVT::i32, ++/*304164*/ OPC_MoveParent, ++/*304165*/ OPC_MoveChild, 31, ++/*304167*/ OPC_CheckInteger, 1, ++/*304169*/ OPC_CheckType, MVT::i32, ++/*304171*/ OPC_MoveParent, ++/*304172*/ OPC_MoveParent, ++/*304173*/ OPC_MoveParent, ++/*304174*/ OPC_MoveParent, ++/*304175*/ OPC_MoveChild1, ++/*304176*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*304179*/ OPC_CheckChild0Integer, 1, ++/*304181*/ OPC_CheckChild0Type, MVT::i32, ++/*304183*/ OPC_CheckChild1Integer, 1, ++/*304185*/ OPC_CheckChild1Type, MVT::i32, ++/*304187*/ OPC_CheckChild2Integer, 1, ++/*304189*/ OPC_CheckChild2Type, MVT::i32, ++/*304191*/ OPC_CheckChild3Integer, 1, ++/*304193*/ OPC_CheckChild3Type, MVT::i32, ++/*304195*/ OPC_CheckChild4Integer, 1, ++/*304197*/ OPC_CheckChild4Type, MVT::i32, ++/*304199*/ OPC_MoveChild5, ++/*304200*/ OPC_CheckInteger, 1, ++/*304202*/ OPC_CheckType, MVT::i32, ++/*304204*/ OPC_MoveParent, ++/*304205*/ OPC_MoveChild6, ++/*304206*/ OPC_CheckInteger, 1, ++/*304208*/ OPC_CheckType, MVT::i32, ++/*304210*/ OPC_MoveParent, ++/*304211*/ OPC_MoveChild7, ++/*304212*/ OPC_CheckInteger, 1, ++/*304214*/ OPC_CheckType, MVT::i32, ++/*304216*/ OPC_MoveParent, ++/*304217*/ OPC_MoveChild, 8, ++/*304219*/ OPC_CheckInteger, 1, ++/*304221*/ OPC_CheckType, MVT::i32, ++/*304223*/ OPC_MoveParent, ++/*304224*/ OPC_MoveChild, 9, ++/*304226*/ OPC_CheckInteger, 1, ++/*304228*/ OPC_CheckType, MVT::i32, ++/*304230*/ OPC_MoveParent, ++/*304231*/ OPC_MoveChild, 10, ++/*304233*/ OPC_CheckInteger, 1, ++/*304235*/ OPC_CheckType, MVT::i32, ++/*304237*/ OPC_MoveParent, ++/*304238*/ OPC_MoveChild, 11, ++/*304240*/ OPC_CheckInteger, 1, ++/*304242*/ OPC_CheckType, MVT::i32, ++/*304244*/ OPC_MoveParent, ++/*304245*/ OPC_MoveChild, 12, ++/*304247*/ OPC_CheckInteger, 1, ++/*304249*/ OPC_CheckType, MVT::i32, ++/*304251*/ OPC_MoveParent, ++/*304252*/ OPC_MoveChild, 13, ++/*304254*/ OPC_CheckInteger, 1, ++/*304256*/ OPC_CheckType, MVT::i32, ++/*304258*/ OPC_MoveParent, ++/*304259*/ OPC_MoveChild, 14, ++/*304261*/ OPC_CheckInteger, 1, ++/*304263*/ OPC_CheckType, MVT::i32, ++/*304265*/ OPC_MoveParent, ++/*304266*/ OPC_MoveChild, 15, ++/*304268*/ OPC_CheckInteger, 1, ++/*304270*/ OPC_CheckType, MVT::i32, ++/*304272*/ OPC_MoveParent, ++/*304273*/ OPC_MoveChild, 16, ++/*304275*/ OPC_CheckInteger, 1, ++/*304277*/ OPC_CheckType, MVT::i32, ++/*304279*/ OPC_MoveParent, ++/*304280*/ OPC_MoveChild, 17, ++/*304282*/ OPC_CheckInteger, 1, ++/*304284*/ OPC_CheckType, MVT::i32, ++/*304286*/ OPC_MoveParent, ++/*304287*/ OPC_MoveChild, 18, ++/*304289*/ OPC_CheckInteger, 1, ++/*304291*/ OPC_CheckType, MVT::i32, ++/*304293*/ OPC_MoveParent, ++/*304294*/ OPC_MoveChild, 19, ++/*304296*/ OPC_CheckInteger, 1, ++/*304298*/ OPC_CheckType, MVT::i32, ++/*304300*/ OPC_MoveParent, ++/*304301*/ OPC_MoveChild, 20, ++/*304303*/ OPC_CheckInteger, 1, ++/*304305*/ OPC_CheckType, MVT::i32, ++/*304307*/ OPC_MoveParent, ++/*304308*/ OPC_MoveChild, 21, ++/*304310*/ OPC_CheckInteger, 1, ++/*304312*/ OPC_CheckType, MVT::i32, ++/*304314*/ OPC_MoveParent, ++/*304315*/ OPC_MoveChild, 22, ++/*304317*/ OPC_CheckInteger, 1, ++/*304319*/ OPC_CheckType, MVT::i32, ++/*304321*/ OPC_MoveParent, ++/*304322*/ OPC_MoveChild, 23, ++/*304324*/ OPC_CheckInteger, 1, ++/*304326*/ OPC_CheckType, MVT::i32, ++/*304328*/ OPC_MoveParent, ++/*304329*/ OPC_MoveChild, 24, ++/*304331*/ OPC_CheckInteger, 1, ++/*304333*/ OPC_CheckType, MVT::i32, ++/*304335*/ OPC_MoveParent, ++/*304336*/ OPC_MoveChild, 25, ++/*304338*/ OPC_CheckInteger, 1, ++/*304340*/ OPC_CheckType, MVT::i32, ++/*304342*/ OPC_MoveParent, ++/*304343*/ OPC_MoveChild, 26, ++/*304345*/ OPC_CheckInteger, 1, ++/*304347*/ OPC_CheckType, MVT::i32, ++/*304349*/ OPC_MoveParent, ++/*304350*/ OPC_MoveChild, 27, ++/*304352*/ OPC_CheckInteger, 1, ++/*304354*/ OPC_CheckType, MVT::i32, ++/*304356*/ OPC_MoveParent, ++/*304357*/ OPC_MoveChild, 28, ++/*304359*/ OPC_CheckInteger, 1, ++/*304361*/ OPC_CheckType, MVT::i32, ++/*304363*/ OPC_MoveParent, ++/*304364*/ OPC_MoveChild, 29, ++/*304366*/ OPC_CheckInteger, 1, ++/*304368*/ OPC_CheckType, MVT::i32, ++/*304370*/ OPC_MoveParent, ++/*304371*/ OPC_MoveChild, 30, ++/*304373*/ OPC_CheckInteger, 1, ++/*304375*/ OPC_CheckType, MVT::i32, ++/*304377*/ OPC_MoveParent, ++/*304378*/ OPC_MoveChild, 31, ++/*304380*/ OPC_CheckInteger, 1, ++/*304382*/ OPC_CheckType, MVT::i32, ++/*304384*/ OPC_MoveParent, ++/*304385*/ OPC_CheckType, MVT::v32i8, ++/*304387*/ OPC_MoveParent, ++/*304388*/ OPC_CheckType, MVT::v32i8, ++/*304390*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*304392*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*304400*/ 0, /*End of Scope*/ ++/*304401*/ 0, // EndSwitchOpcode ++/*304402*/ /*Scope*/ 126|128,6/*894*/, /*->305298*/ ++/*304404*/ OPC_CheckChild0Same, 0, ++/*304406*/ OPC_MoveChild1, ++/*304407*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*304410*/ OPC_Scope, 57|128,3/*441*/, /*->304854*/ // 2 children in Scope ++/*304413*/ OPC_MoveChild0, ++/*304414*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*304417*/ OPC_CheckChild0Integer, 1, ++/*304419*/ OPC_CheckChild0Type, MVT::i32, ++/*304421*/ OPC_CheckChild1Integer, 1, ++/*304423*/ OPC_CheckChild1Type, MVT::i32, ++/*304425*/ OPC_CheckChild2Integer, 1, ++/*304427*/ OPC_CheckChild2Type, MVT::i32, ++/*304429*/ OPC_CheckChild3Integer, 1, ++/*304431*/ OPC_CheckChild3Type, MVT::i32, ++/*304433*/ OPC_CheckChild4Integer, 1, ++/*304435*/ OPC_CheckChild4Type, MVT::i32, ++/*304437*/ OPC_MoveChild5, ++/*304438*/ OPC_CheckInteger, 1, ++/*304440*/ OPC_CheckType, MVT::i32, ++/*304442*/ OPC_MoveParent, ++/*304443*/ OPC_MoveChild6, ++/*304444*/ OPC_CheckInteger, 1, ++/*304446*/ OPC_CheckType, MVT::i32, ++/*304448*/ OPC_MoveParent, ++/*304449*/ OPC_MoveChild7, ++/*304450*/ OPC_CheckInteger, 1, ++/*304452*/ OPC_CheckType, MVT::i32, ++/*304454*/ OPC_MoveParent, ++/*304455*/ OPC_MoveChild, 8, ++/*304457*/ OPC_CheckInteger, 1, ++/*304459*/ OPC_CheckType, MVT::i32, ++/*304461*/ OPC_MoveParent, ++/*304462*/ OPC_MoveChild, 9, ++/*304464*/ OPC_CheckInteger, 1, ++/*304466*/ OPC_CheckType, MVT::i32, ++/*304468*/ OPC_MoveParent, ++/*304469*/ OPC_MoveChild, 10, ++/*304471*/ OPC_CheckInteger, 1, ++/*304473*/ OPC_CheckType, MVT::i32, ++/*304475*/ OPC_MoveParent, ++/*304476*/ OPC_MoveChild, 11, ++/*304478*/ OPC_CheckInteger, 1, ++/*304480*/ OPC_CheckType, MVT::i32, ++/*304482*/ OPC_MoveParent, ++/*304483*/ OPC_MoveChild, 12, ++/*304485*/ OPC_CheckInteger, 1, ++/*304487*/ OPC_CheckType, MVT::i32, ++/*304489*/ OPC_MoveParent, ++/*304490*/ OPC_MoveChild, 13, ++/*304492*/ OPC_CheckInteger, 1, ++/*304494*/ OPC_CheckType, MVT::i32, ++/*304496*/ OPC_MoveParent, ++/*304497*/ OPC_MoveChild, 14, ++/*304499*/ OPC_CheckInteger, 1, ++/*304501*/ OPC_CheckType, MVT::i32, ++/*304503*/ OPC_MoveParent, ++/*304504*/ OPC_MoveChild, 15, ++/*304506*/ OPC_CheckInteger, 1, ++/*304508*/ OPC_CheckType, MVT::i32, ++/*304510*/ OPC_MoveParent, ++/*304511*/ OPC_MoveChild, 16, ++/*304513*/ OPC_CheckInteger, 1, ++/*304515*/ OPC_CheckType, MVT::i32, ++/*304517*/ OPC_MoveParent, ++/*304518*/ OPC_MoveChild, 17, ++/*304520*/ OPC_CheckInteger, 1, ++/*304522*/ OPC_CheckType, MVT::i32, ++/*304524*/ OPC_MoveParent, ++/*304525*/ OPC_MoveChild, 18, ++/*304527*/ OPC_CheckInteger, 1, ++/*304529*/ OPC_CheckType, MVT::i32, ++/*304531*/ OPC_MoveParent, ++/*304532*/ OPC_MoveChild, 19, ++/*304534*/ OPC_CheckInteger, 1, ++/*304536*/ OPC_CheckType, MVT::i32, ++/*304538*/ OPC_MoveParent, ++/*304539*/ OPC_MoveChild, 20, ++/*304541*/ OPC_CheckInteger, 1, ++/*304543*/ OPC_CheckType, MVT::i32, ++/*304545*/ OPC_MoveParent, ++/*304546*/ OPC_MoveChild, 21, ++/*304548*/ OPC_CheckInteger, 1, ++/*304550*/ OPC_CheckType, MVT::i32, ++/*304552*/ OPC_MoveParent, ++/*304553*/ OPC_MoveChild, 22, ++/*304555*/ OPC_CheckInteger, 1, ++/*304557*/ OPC_CheckType, MVT::i32, ++/*304559*/ OPC_MoveParent, ++/*304560*/ OPC_MoveChild, 23, ++/*304562*/ OPC_CheckInteger, 1, ++/*304564*/ OPC_CheckType, MVT::i32, ++/*304566*/ OPC_MoveParent, ++/*304567*/ OPC_MoveChild, 24, ++/*304569*/ OPC_CheckInteger, 1, ++/*304571*/ OPC_CheckType, MVT::i32, ++/*304573*/ OPC_MoveParent, ++/*304574*/ OPC_MoveChild, 25, ++/*304576*/ OPC_CheckInteger, 1, ++/*304578*/ OPC_CheckType, MVT::i32, ++/*304580*/ OPC_MoveParent, ++/*304581*/ OPC_MoveChild, 26, ++/*304583*/ OPC_CheckInteger, 1, ++/*304585*/ OPC_CheckType, MVT::i32, ++/*304587*/ OPC_MoveParent, ++/*304588*/ OPC_MoveChild, 27, ++/*304590*/ OPC_CheckInteger, 1, ++/*304592*/ OPC_CheckType, MVT::i32, ++/*304594*/ OPC_MoveParent, ++/*304595*/ OPC_MoveChild, 28, ++/*304597*/ OPC_CheckInteger, 1, ++/*304599*/ OPC_CheckType, MVT::i32, ++/*304601*/ OPC_MoveParent, ++/*304602*/ OPC_MoveChild, 29, ++/*304604*/ OPC_CheckInteger, 1, ++/*304606*/ OPC_CheckType, MVT::i32, ++/*304608*/ OPC_MoveParent, ++/*304609*/ OPC_MoveChild, 30, ++/*304611*/ OPC_CheckInteger, 1, ++/*304613*/ OPC_CheckType, MVT::i32, ++/*304615*/ OPC_MoveParent, ++/*304616*/ OPC_MoveChild, 31, ++/*304618*/ OPC_CheckInteger, 1, ++/*304620*/ OPC_CheckType, MVT::i32, ++/*304622*/ OPC_MoveParent, ++/*304623*/ OPC_MoveParent, ++/*304624*/ OPC_CheckChild1Same, 1, ++/*304626*/ OPC_MoveParent, ++/*304627*/ OPC_MoveParent, ++/*304628*/ OPC_MoveParent, ++/*304629*/ OPC_MoveChild1, ++/*304630*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*304633*/ OPC_CheckChild0Integer, 1, ++/*304635*/ OPC_CheckChild0Type, MVT::i32, ++/*304637*/ OPC_CheckChild1Integer, 1, ++/*304639*/ OPC_CheckChild1Type, MVT::i32, ++/*304641*/ OPC_CheckChild2Integer, 1, ++/*304643*/ OPC_CheckChild2Type, MVT::i32, ++/*304645*/ OPC_CheckChild3Integer, 1, ++/*304647*/ OPC_CheckChild3Type, MVT::i32, ++/*304649*/ OPC_CheckChild4Integer, 1, ++/*304651*/ OPC_CheckChild4Type, MVT::i32, ++/*304653*/ OPC_MoveChild5, ++/*304654*/ OPC_CheckInteger, 1, ++/*304656*/ OPC_CheckType, MVT::i32, ++/*304658*/ OPC_MoveParent, ++/*304659*/ OPC_MoveChild6, ++/*304660*/ OPC_CheckInteger, 1, ++/*304662*/ OPC_CheckType, MVT::i32, ++/*304664*/ OPC_MoveParent, ++/*304665*/ OPC_MoveChild7, ++/*304666*/ OPC_CheckInteger, 1, ++/*304668*/ OPC_CheckType, MVT::i32, ++/*304670*/ OPC_MoveParent, ++/*304671*/ OPC_MoveChild, 8, ++/*304673*/ OPC_CheckInteger, 1, ++/*304675*/ OPC_CheckType, MVT::i32, ++/*304677*/ OPC_MoveParent, ++/*304678*/ OPC_MoveChild, 9, ++/*304680*/ OPC_CheckInteger, 1, ++/*304682*/ OPC_CheckType, MVT::i32, ++/*304684*/ OPC_MoveParent, ++/*304685*/ OPC_MoveChild, 10, ++/*304687*/ OPC_CheckInteger, 1, ++/*304689*/ OPC_CheckType, MVT::i32, ++/*304691*/ OPC_MoveParent, ++/*304692*/ OPC_MoveChild, 11, ++/*304694*/ OPC_CheckInteger, 1, ++/*304696*/ OPC_CheckType, MVT::i32, ++/*304698*/ OPC_MoveParent, ++/*304699*/ OPC_MoveChild, 12, ++/*304701*/ OPC_CheckInteger, 1, ++/*304703*/ OPC_CheckType, MVT::i32, ++/*304705*/ OPC_MoveParent, ++/*304706*/ OPC_MoveChild, 13, ++/*304708*/ OPC_CheckInteger, 1, ++/*304710*/ OPC_CheckType, MVT::i32, ++/*304712*/ OPC_MoveParent, ++/*304713*/ OPC_MoveChild, 14, ++/*304715*/ OPC_CheckInteger, 1, ++/*304717*/ OPC_CheckType, MVT::i32, ++/*304719*/ OPC_MoveParent, ++/*304720*/ OPC_MoveChild, 15, ++/*304722*/ OPC_CheckInteger, 1, ++/*304724*/ OPC_CheckType, MVT::i32, ++/*304726*/ OPC_MoveParent, ++/*304727*/ OPC_MoveChild, 16, ++/*304729*/ OPC_CheckInteger, 1, ++/*304731*/ OPC_CheckType, MVT::i32, ++/*304733*/ OPC_MoveParent, ++/*304734*/ OPC_MoveChild, 17, ++/*304736*/ OPC_CheckInteger, 1, ++/*304738*/ OPC_CheckType, MVT::i32, ++/*304740*/ OPC_MoveParent, ++/*304741*/ OPC_MoveChild, 18, ++/*304743*/ OPC_CheckInteger, 1, ++/*304745*/ OPC_CheckType, MVT::i32, ++/*304747*/ OPC_MoveParent, ++/*304748*/ OPC_MoveChild, 19, ++/*304750*/ OPC_CheckInteger, 1, ++/*304752*/ OPC_CheckType, MVT::i32, ++/*304754*/ OPC_MoveParent, ++/*304755*/ OPC_MoveChild, 20, ++/*304757*/ OPC_CheckInteger, 1, ++/*304759*/ OPC_CheckType, MVT::i32, ++/*304761*/ OPC_MoveParent, ++/*304762*/ OPC_MoveChild, 21, ++/*304764*/ OPC_CheckInteger, 1, ++/*304766*/ OPC_CheckType, MVT::i32, ++/*304768*/ OPC_MoveParent, ++/*304769*/ OPC_MoveChild, 22, ++/*304771*/ OPC_CheckInteger, 1, ++/*304773*/ OPC_CheckType, MVT::i32, ++/*304775*/ OPC_MoveParent, ++/*304776*/ OPC_MoveChild, 23, ++/*304778*/ OPC_CheckInteger, 1, ++/*304780*/ OPC_CheckType, MVT::i32, ++/*304782*/ OPC_MoveParent, ++/*304783*/ OPC_MoveChild, 24, ++/*304785*/ OPC_CheckInteger, 1, ++/*304787*/ OPC_CheckType, MVT::i32, ++/*304789*/ OPC_MoveParent, ++/*304790*/ OPC_MoveChild, 25, ++/*304792*/ OPC_CheckInteger, 1, ++/*304794*/ OPC_CheckType, MVT::i32, ++/*304796*/ OPC_MoveParent, ++/*304797*/ OPC_MoveChild, 26, ++/*304799*/ OPC_CheckInteger, 1, ++/*304801*/ OPC_CheckType, MVT::i32, ++/*304803*/ OPC_MoveParent, ++/*304804*/ OPC_MoveChild, 27, ++/*304806*/ OPC_CheckInteger, 1, ++/*304808*/ OPC_CheckType, MVT::i32, ++/*304810*/ OPC_MoveParent, ++/*304811*/ OPC_MoveChild, 28, ++/*304813*/ OPC_CheckInteger, 1, ++/*304815*/ OPC_CheckType, MVT::i32, ++/*304817*/ OPC_MoveParent, ++/*304818*/ OPC_MoveChild, 29, ++/*304820*/ OPC_CheckInteger, 1, ++/*304822*/ OPC_CheckType, MVT::i32, ++/*304824*/ OPC_MoveParent, ++/*304825*/ OPC_MoveChild, 30, ++/*304827*/ OPC_CheckInteger, 1, ++/*304829*/ OPC_CheckType, MVT::i32, ++/*304831*/ OPC_MoveParent, ++/*304832*/ OPC_MoveChild, 31, ++/*304834*/ OPC_CheckInteger, 1, ++/*304836*/ OPC_CheckType, MVT::i32, ++/*304838*/ OPC_MoveParent, ++/*304839*/ OPC_CheckType, MVT::v32i8, ++/*304841*/ OPC_MoveParent, ++/*304842*/ OPC_CheckType, MVT::v32i8, ++/*304844*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*304846*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*304854*/ /*Scope*/ 57|128,3/*441*/, /*->305297*/ ++/*304856*/ OPC_CheckChild0Same, 1, ++/*304858*/ OPC_MoveChild1, ++/*304859*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*304862*/ OPC_CheckChild0Integer, 1, ++/*304864*/ OPC_CheckChild0Type, MVT::i32, ++/*304866*/ OPC_CheckChild1Integer, 1, ++/*304868*/ OPC_CheckChild1Type, MVT::i32, ++/*304870*/ OPC_CheckChild2Integer, 1, ++/*304872*/ OPC_CheckChild2Type, MVT::i32, ++/*304874*/ OPC_CheckChild3Integer, 1, ++/*304876*/ OPC_CheckChild3Type, MVT::i32, ++/*304878*/ OPC_CheckChild4Integer, 1, ++/*304880*/ OPC_CheckChild4Type, MVT::i32, ++/*304882*/ OPC_MoveChild5, ++/*304883*/ OPC_CheckInteger, 1, ++/*304885*/ OPC_CheckType, MVT::i32, ++/*304887*/ OPC_MoveParent, ++/*304888*/ OPC_MoveChild6, ++/*304889*/ OPC_CheckInteger, 1, ++/*304891*/ OPC_CheckType, MVT::i32, ++/*304893*/ OPC_MoveParent, ++/*304894*/ OPC_MoveChild7, ++/*304895*/ OPC_CheckInteger, 1, ++/*304897*/ OPC_CheckType, MVT::i32, ++/*304899*/ OPC_MoveParent, ++/*304900*/ OPC_MoveChild, 8, ++/*304902*/ OPC_CheckInteger, 1, ++/*304904*/ OPC_CheckType, MVT::i32, ++/*304906*/ OPC_MoveParent, ++/*304907*/ OPC_MoveChild, 9, ++/*304909*/ OPC_CheckInteger, 1, ++/*304911*/ OPC_CheckType, MVT::i32, ++/*304913*/ OPC_MoveParent, ++/*304914*/ OPC_MoveChild, 10, ++/*304916*/ OPC_CheckInteger, 1, ++/*304918*/ OPC_CheckType, MVT::i32, ++/*304920*/ OPC_MoveParent, ++/*304921*/ OPC_MoveChild, 11, ++/*304923*/ OPC_CheckInteger, 1, ++/*304925*/ OPC_CheckType, MVT::i32, ++/*304927*/ OPC_MoveParent, ++/*304928*/ OPC_MoveChild, 12, ++/*304930*/ OPC_CheckInteger, 1, ++/*304932*/ OPC_CheckType, MVT::i32, ++/*304934*/ OPC_MoveParent, ++/*304935*/ OPC_MoveChild, 13, ++/*304937*/ OPC_CheckInteger, 1, ++/*304939*/ OPC_CheckType, MVT::i32, ++/*304941*/ OPC_MoveParent, ++/*304942*/ OPC_MoveChild, 14, ++/*304944*/ OPC_CheckInteger, 1, ++/*304946*/ OPC_CheckType, MVT::i32, ++/*304948*/ OPC_MoveParent, ++/*304949*/ OPC_MoveChild, 15, ++/*304951*/ OPC_CheckInteger, 1, ++/*304953*/ OPC_CheckType, MVT::i32, ++/*304955*/ OPC_MoveParent, ++/*304956*/ OPC_MoveChild, 16, ++/*304958*/ OPC_CheckInteger, 1, ++/*304960*/ OPC_CheckType, MVT::i32, ++/*304962*/ OPC_MoveParent, ++/*304963*/ OPC_MoveChild, 17, ++/*304965*/ OPC_CheckInteger, 1, ++/*304967*/ OPC_CheckType, MVT::i32, ++/*304969*/ OPC_MoveParent, ++/*304970*/ OPC_MoveChild, 18, ++/*304972*/ OPC_CheckInteger, 1, ++/*304974*/ OPC_CheckType, MVT::i32, ++/*304976*/ OPC_MoveParent, ++/*304977*/ OPC_MoveChild, 19, ++/*304979*/ OPC_CheckInteger, 1, ++/*304981*/ OPC_CheckType, MVT::i32, ++/*304983*/ OPC_MoveParent, ++/*304984*/ OPC_MoveChild, 20, ++/*304986*/ OPC_CheckInteger, 1, ++/*304988*/ OPC_CheckType, MVT::i32, ++/*304990*/ OPC_MoveParent, ++/*304991*/ OPC_MoveChild, 21, ++/*304993*/ OPC_CheckInteger, 1, ++/*304995*/ OPC_CheckType, MVT::i32, ++/*304997*/ OPC_MoveParent, ++/*304998*/ OPC_MoveChild, 22, ++/*305000*/ OPC_CheckInteger, 1, ++/*305002*/ OPC_CheckType, MVT::i32, ++/*305004*/ OPC_MoveParent, ++/*305005*/ OPC_MoveChild, 23, ++/*305007*/ OPC_CheckInteger, 1, ++/*305009*/ OPC_CheckType, MVT::i32, ++/*305011*/ OPC_MoveParent, ++/*305012*/ OPC_MoveChild, 24, ++/*305014*/ OPC_CheckInteger, 1, ++/*305016*/ OPC_CheckType, MVT::i32, ++/*305018*/ OPC_MoveParent, ++/*305019*/ OPC_MoveChild, 25, ++/*305021*/ OPC_CheckInteger, 1, ++/*305023*/ OPC_CheckType, MVT::i32, ++/*305025*/ OPC_MoveParent, ++/*305026*/ OPC_MoveChild, 26, ++/*305028*/ OPC_CheckInteger, 1, ++/*305030*/ OPC_CheckType, MVT::i32, ++/*305032*/ OPC_MoveParent, ++/*305033*/ OPC_MoveChild, 27, ++/*305035*/ OPC_CheckInteger, 1, ++/*305037*/ OPC_CheckType, MVT::i32, ++/*305039*/ OPC_MoveParent, ++/*305040*/ OPC_MoveChild, 28, ++/*305042*/ OPC_CheckInteger, 1, ++/*305044*/ OPC_CheckType, MVT::i32, ++/*305046*/ OPC_MoveParent, ++/*305047*/ OPC_MoveChild, 29, ++/*305049*/ OPC_CheckInteger, 1, ++/*305051*/ OPC_CheckType, MVT::i32, ++/*305053*/ OPC_MoveParent, ++/*305054*/ OPC_MoveChild, 30, ++/*305056*/ OPC_CheckInteger, 1, ++/*305058*/ OPC_CheckType, MVT::i32, ++/*305060*/ OPC_MoveParent, ++/*305061*/ OPC_MoveChild, 31, ++/*305063*/ OPC_CheckInteger, 1, ++/*305065*/ OPC_CheckType, MVT::i32, ++/*305067*/ OPC_MoveParent, ++/*305068*/ OPC_MoveParent, ++/*305069*/ OPC_MoveParent, ++/*305070*/ OPC_MoveParent, ++/*305071*/ OPC_MoveParent, ++/*305072*/ OPC_MoveChild1, ++/*305073*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*305076*/ OPC_CheckChild0Integer, 1, ++/*305078*/ OPC_CheckChild0Type, MVT::i32, ++/*305080*/ OPC_CheckChild1Integer, 1, ++/*305082*/ OPC_CheckChild1Type, MVT::i32, ++/*305084*/ OPC_CheckChild2Integer, 1, ++/*305086*/ OPC_CheckChild2Type, MVT::i32, ++/*305088*/ OPC_CheckChild3Integer, 1, ++/*305090*/ OPC_CheckChild3Type, MVT::i32, ++/*305092*/ OPC_CheckChild4Integer, 1, ++/*305094*/ OPC_CheckChild4Type, MVT::i32, ++/*305096*/ OPC_MoveChild5, ++/*305097*/ OPC_CheckInteger, 1, ++/*305099*/ OPC_CheckType, MVT::i32, ++/*305101*/ OPC_MoveParent, ++/*305102*/ OPC_MoveChild6, ++/*305103*/ OPC_CheckInteger, 1, ++/*305105*/ OPC_CheckType, MVT::i32, ++/*305107*/ OPC_MoveParent, ++/*305108*/ OPC_MoveChild7, ++/*305109*/ OPC_CheckInteger, 1, ++/*305111*/ OPC_CheckType, MVT::i32, ++/*305113*/ OPC_MoveParent, ++/*305114*/ OPC_MoveChild, 8, ++/*305116*/ OPC_CheckInteger, 1, ++/*305118*/ OPC_CheckType, MVT::i32, ++/*305120*/ OPC_MoveParent, ++/*305121*/ OPC_MoveChild, 9, ++/*305123*/ OPC_CheckInteger, 1, ++/*305125*/ OPC_CheckType, MVT::i32, ++/*305127*/ OPC_MoveParent, ++/*305128*/ OPC_MoveChild, 10, ++/*305130*/ OPC_CheckInteger, 1, ++/*305132*/ OPC_CheckType, MVT::i32, ++/*305134*/ OPC_MoveParent, ++/*305135*/ OPC_MoveChild, 11, ++/*305137*/ OPC_CheckInteger, 1, ++/*305139*/ OPC_CheckType, MVT::i32, ++/*305141*/ OPC_MoveParent, ++/*305142*/ OPC_MoveChild, 12, ++/*305144*/ OPC_CheckInteger, 1, ++/*305146*/ OPC_CheckType, MVT::i32, ++/*305148*/ OPC_MoveParent, ++/*305149*/ OPC_MoveChild, 13, ++/*305151*/ OPC_CheckInteger, 1, ++/*305153*/ OPC_CheckType, MVT::i32, ++/*305155*/ OPC_MoveParent, ++/*305156*/ OPC_MoveChild, 14, ++/*305158*/ OPC_CheckInteger, 1, ++/*305160*/ OPC_CheckType, MVT::i32, ++/*305162*/ OPC_MoveParent, ++/*305163*/ OPC_MoveChild, 15, ++/*305165*/ OPC_CheckInteger, 1, ++/*305167*/ OPC_CheckType, MVT::i32, ++/*305169*/ OPC_MoveParent, ++/*305170*/ OPC_MoveChild, 16, ++/*305172*/ OPC_CheckInteger, 1, ++/*305174*/ OPC_CheckType, MVT::i32, ++/*305176*/ OPC_MoveParent, ++/*305177*/ OPC_MoveChild, 17, ++/*305179*/ OPC_CheckInteger, 1, ++/*305181*/ OPC_CheckType, MVT::i32, ++/*305183*/ OPC_MoveParent, ++/*305184*/ OPC_MoveChild, 18, ++/*305186*/ OPC_CheckInteger, 1, ++/*305188*/ OPC_CheckType, MVT::i32, ++/*305190*/ OPC_MoveParent, ++/*305191*/ OPC_MoveChild, 19, ++/*305193*/ OPC_CheckInteger, 1, ++/*305195*/ OPC_CheckType, MVT::i32, ++/*305197*/ OPC_MoveParent, ++/*305198*/ OPC_MoveChild, 20, ++/*305200*/ OPC_CheckInteger, 1, ++/*305202*/ OPC_CheckType, MVT::i32, ++/*305204*/ OPC_MoveParent, ++/*305205*/ OPC_MoveChild, 21, ++/*305207*/ OPC_CheckInteger, 1, ++/*305209*/ OPC_CheckType, MVT::i32, ++/*305211*/ OPC_MoveParent, ++/*305212*/ OPC_MoveChild, 22, ++/*305214*/ OPC_CheckInteger, 1, ++/*305216*/ OPC_CheckType, MVT::i32, ++/*305218*/ OPC_MoveParent, ++/*305219*/ OPC_MoveChild, 23, ++/*305221*/ OPC_CheckInteger, 1, ++/*305223*/ OPC_CheckType, MVT::i32, ++/*305225*/ OPC_MoveParent, ++/*305226*/ OPC_MoveChild, 24, ++/*305228*/ OPC_CheckInteger, 1, ++/*305230*/ OPC_CheckType, MVT::i32, ++/*305232*/ OPC_MoveParent, ++/*305233*/ OPC_MoveChild, 25, ++/*305235*/ OPC_CheckInteger, 1, ++/*305237*/ OPC_CheckType, MVT::i32, ++/*305239*/ OPC_MoveParent, ++/*305240*/ OPC_MoveChild, 26, ++/*305242*/ OPC_CheckInteger, 1, ++/*305244*/ OPC_CheckType, MVT::i32, ++/*305246*/ OPC_MoveParent, ++/*305247*/ OPC_MoveChild, 27, ++/*305249*/ OPC_CheckInteger, 1, ++/*305251*/ OPC_CheckType, MVT::i32, ++/*305253*/ OPC_MoveParent, ++/*305254*/ OPC_MoveChild, 28, ++/*305256*/ OPC_CheckInteger, 1, ++/*305258*/ OPC_CheckType, MVT::i32, ++/*305260*/ OPC_MoveParent, ++/*305261*/ OPC_MoveChild, 29, ++/*305263*/ OPC_CheckInteger, 1, ++/*305265*/ OPC_CheckType, MVT::i32, ++/*305267*/ OPC_MoveParent, ++/*305268*/ OPC_MoveChild, 30, ++/*305270*/ OPC_CheckInteger, 1, ++/*305272*/ OPC_CheckType, MVT::i32, ++/*305274*/ OPC_MoveParent, ++/*305275*/ OPC_MoveChild, 31, ++/*305277*/ OPC_CheckInteger, 1, ++/*305279*/ OPC_CheckType, MVT::i32, ++/*305281*/ OPC_MoveParent, ++/*305282*/ OPC_CheckType, MVT::v32i8, ++/*305284*/ OPC_MoveParent, ++/*305285*/ OPC_CheckType, MVT::v32i8, ++/*305287*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*305289*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*305297*/ 0, /*End of Scope*/ ++/*305298*/ /*Scope*/ 126|128,6/*894*/, /*->306194*/ ++/*305300*/ OPC_CheckChild0Same, 1, ++/*305302*/ OPC_MoveChild1, ++/*305303*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*305306*/ OPC_Scope, 57|128,3/*441*/, /*->305750*/ // 2 children in Scope ++/*305309*/ OPC_MoveChild0, ++/*305310*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*305313*/ OPC_CheckChild0Integer, 1, ++/*305315*/ OPC_CheckChild0Type, MVT::i32, ++/*305317*/ OPC_CheckChild1Integer, 1, ++/*305319*/ OPC_CheckChild1Type, MVT::i32, ++/*305321*/ OPC_CheckChild2Integer, 1, ++/*305323*/ OPC_CheckChild2Type, MVT::i32, ++/*305325*/ OPC_CheckChild3Integer, 1, ++/*305327*/ OPC_CheckChild3Type, MVT::i32, ++/*305329*/ OPC_CheckChild4Integer, 1, ++/*305331*/ OPC_CheckChild4Type, MVT::i32, ++/*305333*/ OPC_MoveChild5, ++/*305334*/ OPC_CheckInteger, 1, ++/*305336*/ OPC_CheckType, MVT::i32, ++/*305338*/ OPC_MoveParent, ++/*305339*/ OPC_MoveChild6, ++/*305340*/ OPC_CheckInteger, 1, ++/*305342*/ OPC_CheckType, MVT::i32, ++/*305344*/ OPC_MoveParent, ++/*305345*/ OPC_MoveChild7, ++/*305346*/ OPC_CheckInteger, 1, ++/*305348*/ OPC_CheckType, MVT::i32, ++/*305350*/ OPC_MoveParent, ++/*305351*/ OPC_MoveChild, 8, ++/*305353*/ OPC_CheckInteger, 1, ++/*305355*/ OPC_CheckType, MVT::i32, ++/*305357*/ OPC_MoveParent, ++/*305358*/ OPC_MoveChild, 9, ++/*305360*/ OPC_CheckInteger, 1, ++/*305362*/ OPC_CheckType, MVT::i32, ++/*305364*/ OPC_MoveParent, ++/*305365*/ OPC_MoveChild, 10, ++/*305367*/ OPC_CheckInteger, 1, ++/*305369*/ OPC_CheckType, MVT::i32, ++/*305371*/ OPC_MoveParent, ++/*305372*/ OPC_MoveChild, 11, ++/*305374*/ OPC_CheckInteger, 1, ++/*305376*/ OPC_CheckType, MVT::i32, ++/*305378*/ OPC_MoveParent, ++/*305379*/ OPC_MoveChild, 12, ++/*305381*/ OPC_CheckInteger, 1, ++/*305383*/ OPC_CheckType, MVT::i32, ++/*305385*/ OPC_MoveParent, ++/*305386*/ OPC_MoveChild, 13, ++/*305388*/ OPC_CheckInteger, 1, ++/*305390*/ OPC_CheckType, MVT::i32, ++/*305392*/ OPC_MoveParent, ++/*305393*/ OPC_MoveChild, 14, ++/*305395*/ OPC_CheckInteger, 1, ++/*305397*/ OPC_CheckType, MVT::i32, ++/*305399*/ OPC_MoveParent, ++/*305400*/ OPC_MoveChild, 15, ++/*305402*/ OPC_CheckInteger, 1, ++/*305404*/ OPC_CheckType, MVT::i32, ++/*305406*/ OPC_MoveParent, ++/*305407*/ OPC_MoveChild, 16, ++/*305409*/ OPC_CheckInteger, 1, ++/*305411*/ OPC_CheckType, MVT::i32, ++/*305413*/ OPC_MoveParent, ++/*305414*/ OPC_MoveChild, 17, ++/*305416*/ OPC_CheckInteger, 1, ++/*305418*/ OPC_CheckType, MVT::i32, ++/*305420*/ OPC_MoveParent, ++/*305421*/ OPC_MoveChild, 18, ++/*305423*/ OPC_CheckInteger, 1, ++/*305425*/ OPC_CheckType, MVT::i32, ++/*305427*/ OPC_MoveParent, ++/*305428*/ OPC_MoveChild, 19, ++/*305430*/ OPC_CheckInteger, 1, ++/*305432*/ OPC_CheckType, MVT::i32, ++/*305434*/ OPC_MoveParent, ++/*305435*/ OPC_MoveChild, 20, ++/*305437*/ OPC_CheckInteger, 1, ++/*305439*/ OPC_CheckType, MVT::i32, ++/*305441*/ OPC_MoveParent, ++/*305442*/ OPC_MoveChild, 21, ++/*305444*/ OPC_CheckInteger, 1, ++/*305446*/ OPC_CheckType, MVT::i32, ++/*305448*/ OPC_MoveParent, ++/*305449*/ OPC_MoveChild, 22, ++/*305451*/ OPC_CheckInteger, 1, ++/*305453*/ OPC_CheckType, MVT::i32, ++/*305455*/ OPC_MoveParent, ++/*305456*/ OPC_MoveChild, 23, ++/*305458*/ OPC_CheckInteger, 1, ++/*305460*/ OPC_CheckType, MVT::i32, ++/*305462*/ OPC_MoveParent, ++/*305463*/ OPC_MoveChild, 24, ++/*305465*/ OPC_CheckInteger, 1, ++/*305467*/ OPC_CheckType, MVT::i32, ++/*305469*/ OPC_MoveParent, ++/*305470*/ OPC_MoveChild, 25, ++/*305472*/ OPC_CheckInteger, 1, ++/*305474*/ OPC_CheckType, MVT::i32, ++/*305476*/ OPC_MoveParent, ++/*305477*/ OPC_MoveChild, 26, ++/*305479*/ OPC_CheckInteger, 1, ++/*305481*/ OPC_CheckType, MVT::i32, ++/*305483*/ OPC_MoveParent, ++/*305484*/ OPC_MoveChild, 27, ++/*305486*/ OPC_CheckInteger, 1, ++/*305488*/ OPC_CheckType, MVT::i32, ++/*305490*/ OPC_MoveParent, ++/*305491*/ OPC_MoveChild, 28, ++/*305493*/ OPC_CheckInteger, 1, ++/*305495*/ OPC_CheckType, MVT::i32, ++/*305497*/ OPC_MoveParent, ++/*305498*/ OPC_MoveChild, 29, ++/*305500*/ OPC_CheckInteger, 1, ++/*305502*/ OPC_CheckType, MVT::i32, ++/*305504*/ OPC_MoveParent, ++/*305505*/ OPC_MoveChild, 30, ++/*305507*/ OPC_CheckInteger, 1, ++/*305509*/ OPC_CheckType, MVT::i32, ++/*305511*/ OPC_MoveParent, ++/*305512*/ OPC_MoveChild, 31, ++/*305514*/ OPC_CheckInteger, 1, ++/*305516*/ OPC_CheckType, MVT::i32, ++/*305518*/ OPC_MoveParent, ++/*305519*/ OPC_MoveParent, ++/*305520*/ OPC_CheckChild1Same, 0, ++/*305522*/ OPC_MoveParent, ++/*305523*/ OPC_MoveParent, ++/*305524*/ OPC_MoveParent, ++/*305525*/ OPC_MoveChild1, ++/*305526*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*305529*/ OPC_CheckChild0Integer, 1, ++/*305531*/ OPC_CheckChild0Type, MVT::i32, ++/*305533*/ OPC_CheckChild1Integer, 1, ++/*305535*/ OPC_CheckChild1Type, MVT::i32, ++/*305537*/ OPC_CheckChild2Integer, 1, ++/*305539*/ OPC_CheckChild2Type, MVT::i32, ++/*305541*/ OPC_CheckChild3Integer, 1, ++/*305543*/ OPC_CheckChild3Type, MVT::i32, ++/*305545*/ OPC_CheckChild4Integer, 1, ++/*305547*/ OPC_CheckChild4Type, MVT::i32, ++/*305549*/ OPC_MoveChild5, ++/*305550*/ OPC_CheckInteger, 1, ++/*305552*/ OPC_CheckType, MVT::i32, ++/*305554*/ OPC_MoveParent, ++/*305555*/ OPC_MoveChild6, ++/*305556*/ OPC_CheckInteger, 1, ++/*305558*/ OPC_CheckType, MVT::i32, ++/*305560*/ OPC_MoveParent, ++/*305561*/ OPC_MoveChild7, ++/*305562*/ OPC_CheckInteger, 1, ++/*305564*/ OPC_CheckType, MVT::i32, ++/*305566*/ OPC_MoveParent, ++/*305567*/ OPC_MoveChild, 8, ++/*305569*/ OPC_CheckInteger, 1, ++/*305571*/ OPC_CheckType, MVT::i32, ++/*305573*/ OPC_MoveParent, ++/*305574*/ OPC_MoveChild, 9, ++/*305576*/ OPC_CheckInteger, 1, ++/*305578*/ OPC_CheckType, MVT::i32, ++/*305580*/ OPC_MoveParent, ++/*305581*/ OPC_MoveChild, 10, ++/*305583*/ OPC_CheckInteger, 1, ++/*305585*/ OPC_CheckType, MVT::i32, ++/*305587*/ OPC_MoveParent, ++/*305588*/ OPC_MoveChild, 11, ++/*305590*/ OPC_CheckInteger, 1, ++/*305592*/ OPC_CheckType, MVT::i32, ++/*305594*/ OPC_MoveParent, ++/*305595*/ OPC_MoveChild, 12, ++/*305597*/ OPC_CheckInteger, 1, ++/*305599*/ OPC_CheckType, MVT::i32, ++/*305601*/ OPC_MoveParent, ++/*305602*/ OPC_MoveChild, 13, ++/*305604*/ OPC_CheckInteger, 1, ++/*305606*/ OPC_CheckType, MVT::i32, ++/*305608*/ OPC_MoveParent, ++/*305609*/ OPC_MoveChild, 14, ++/*305611*/ OPC_CheckInteger, 1, ++/*305613*/ OPC_CheckType, MVT::i32, ++/*305615*/ OPC_MoveParent, ++/*305616*/ OPC_MoveChild, 15, ++/*305618*/ OPC_CheckInteger, 1, ++/*305620*/ OPC_CheckType, MVT::i32, ++/*305622*/ OPC_MoveParent, ++/*305623*/ OPC_MoveChild, 16, ++/*305625*/ OPC_CheckInteger, 1, ++/*305627*/ OPC_CheckType, MVT::i32, ++/*305629*/ OPC_MoveParent, ++/*305630*/ OPC_MoveChild, 17, ++/*305632*/ OPC_CheckInteger, 1, ++/*305634*/ OPC_CheckType, MVT::i32, ++/*305636*/ OPC_MoveParent, ++/*305637*/ OPC_MoveChild, 18, ++/*305639*/ OPC_CheckInteger, 1, ++/*305641*/ OPC_CheckType, MVT::i32, ++/*305643*/ OPC_MoveParent, ++/*305644*/ OPC_MoveChild, 19, ++/*305646*/ OPC_CheckInteger, 1, ++/*305648*/ OPC_CheckType, MVT::i32, ++/*305650*/ OPC_MoveParent, ++/*305651*/ OPC_MoveChild, 20, ++/*305653*/ OPC_CheckInteger, 1, ++/*305655*/ OPC_CheckType, MVT::i32, ++/*305657*/ OPC_MoveParent, ++/*305658*/ OPC_MoveChild, 21, ++/*305660*/ OPC_CheckInteger, 1, ++/*305662*/ OPC_CheckType, MVT::i32, ++/*305664*/ OPC_MoveParent, ++/*305665*/ OPC_MoveChild, 22, ++/*305667*/ OPC_CheckInteger, 1, ++/*305669*/ OPC_CheckType, MVT::i32, ++/*305671*/ OPC_MoveParent, ++/*305672*/ OPC_MoveChild, 23, ++/*305674*/ OPC_CheckInteger, 1, ++/*305676*/ OPC_CheckType, MVT::i32, ++/*305678*/ OPC_MoveParent, ++/*305679*/ OPC_MoveChild, 24, ++/*305681*/ OPC_CheckInteger, 1, ++/*305683*/ OPC_CheckType, MVT::i32, ++/*305685*/ OPC_MoveParent, ++/*305686*/ OPC_MoveChild, 25, ++/*305688*/ OPC_CheckInteger, 1, ++/*305690*/ OPC_CheckType, MVT::i32, ++/*305692*/ OPC_MoveParent, ++/*305693*/ OPC_MoveChild, 26, ++/*305695*/ OPC_CheckInteger, 1, ++/*305697*/ OPC_CheckType, MVT::i32, ++/*305699*/ OPC_MoveParent, ++/*305700*/ OPC_MoveChild, 27, ++/*305702*/ OPC_CheckInteger, 1, ++/*305704*/ OPC_CheckType, MVT::i32, ++/*305706*/ OPC_MoveParent, ++/*305707*/ OPC_MoveChild, 28, ++/*305709*/ OPC_CheckInteger, 1, ++/*305711*/ OPC_CheckType, MVT::i32, ++/*305713*/ OPC_MoveParent, ++/*305714*/ OPC_MoveChild, 29, ++/*305716*/ OPC_CheckInteger, 1, ++/*305718*/ OPC_CheckType, MVT::i32, ++/*305720*/ OPC_MoveParent, ++/*305721*/ OPC_MoveChild, 30, ++/*305723*/ OPC_CheckInteger, 1, ++/*305725*/ OPC_CheckType, MVT::i32, ++/*305727*/ OPC_MoveParent, ++/*305728*/ OPC_MoveChild, 31, ++/*305730*/ OPC_CheckInteger, 1, ++/*305732*/ OPC_CheckType, MVT::i32, ++/*305734*/ OPC_MoveParent, ++/*305735*/ OPC_CheckType, MVT::v32i8, ++/*305737*/ OPC_MoveParent, ++/*305738*/ OPC_CheckType, MVT::v32i8, ++/*305740*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*305742*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*305750*/ /*Scope*/ 57|128,3/*441*/, /*->306193*/ ++/*305752*/ OPC_CheckChild0Same, 0, ++/*305754*/ OPC_MoveChild1, ++/*305755*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*305758*/ OPC_CheckChild0Integer, 1, ++/*305760*/ OPC_CheckChild0Type, MVT::i32, ++/*305762*/ OPC_CheckChild1Integer, 1, ++/*305764*/ OPC_CheckChild1Type, MVT::i32, ++/*305766*/ OPC_CheckChild2Integer, 1, ++/*305768*/ OPC_CheckChild2Type, MVT::i32, ++/*305770*/ OPC_CheckChild3Integer, 1, ++/*305772*/ OPC_CheckChild3Type, MVT::i32, ++/*305774*/ OPC_CheckChild4Integer, 1, ++/*305776*/ OPC_CheckChild4Type, MVT::i32, ++/*305778*/ OPC_MoveChild5, ++/*305779*/ OPC_CheckInteger, 1, ++/*305781*/ OPC_CheckType, MVT::i32, ++/*305783*/ OPC_MoveParent, ++/*305784*/ OPC_MoveChild6, ++/*305785*/ OPC_CheckInteger, 1, ++/*305787*/ OPC_CheckType, MVT::i32, ++/*305789*/ OPC_MoveParent, ++/*305790*/ OPC_MoveChild7, ++/*305791*/ OPC_CheckInteger, 1, ++/*305793*/ OPC_CheckType, MVT::i32, ++/*305795*/ OPC_MoveParent, ++/*305796*/ OPC_MoveChild, 8, ++/*305798*/ OPC_CheckInteger, 1, ++/*305800*/ OPC_CheckType, MVT::i32, ++/*305802*/ OPC_MoveParent, ++/*305803*/ OPC_MoveChild, 9, ++/*305805*/ OPC_CheckInteger, 1, ++/*305807*/ OPC_CheckType, MVT::i32, ++/*305809*/ OPC_MoveParent, ++/*305810*/ OPC_MoveChild, 10, ++/*305812*/ OPC_CheckInteger, 1, ++/*305814*/ OPC_CheckType, MVT::i32, ++/*305816*/ OPC_MoveParent, ++/*305817*/ OPC_MoveChild, 11, ++/*305819*/ OPC_CheckInteger, 1, ++/*305821*/ OPC_CheckType, MVT::i32, ++/*305823*/ OPC_MoveParent, ++/*305824*/ OPC_MoveChild, 12, ++/*305826*/ OPC_CheckInteger, 1, ++/*305828*/ OPC_CheckType, MVT::i32, ++/*305830*/ OPC_MoveParent, ++/*305831*/ OPC_MoveChild, 13, ++/*305833*/ OPC_CheckInteger, 1, ++/*305835*/ OPC_CheckType, MVT::i32, ++/*305837*/ OPC_MoveParent, ++/*305838*/ OPC_MoveChild, 14, ++/*305840*/ OPC_CheckInteger, 1, ++/*305842*/ OPC_CheckType, MVT::i32, ++/*305844*/ OPC_MoveParent, ++/*305845*/ OPC_MoveChild, 15, ++/*305847*/ OPC_CheckInteger, 1, ++/*305849*/ OPC_CheckType, MVT::i32, ++/*305851*/ OPC_MoveParent, ++/*305852*/ OPC_MoveChild, 16, ++/*305854*/ OPC_CheckInteger, 1, ++/*305856*/ OPC_CheckType, MVT::i32, ++/*305858*/ OPC_MoveParent, ++/*305859*/ OPC_MoveChild, 17, ++/*305861*/ OPC_CheckInteger, 1, ++/*305863*/ OPC_CheckType, MVT::i32, ++/*305865*/ OPC_MoveParent, ++/*305866*/ OPC_MoveChild, 18, ++/*305868*/ OPC_CheckInteger, 1, ++/*305870*/ OPC_CheckType, MVT::i32, ++/*305872*/ OPC_MoveParent, ++/*305873*/ OPC_MoveChild, 19, ++/*305875*/ OPC_CheckInteger, 1, ++/*305877*/ OPC_CheckType, MVT::i32, ++/*305879*/ OPC_MoveParent, ++/*305880*/ OPC_MoveChild, 20, ++/*305882*/ OPC_CheckInteger, 1, ++/*305884*/ OPC_CheckType, MVT::i32, ++/*305886*/ OPC_MoveParent, ++/*305887*/ OPC_MoveChild, 21, ++/*305889*/ OPC_CheckInteger, 1, ++/*305891*/ OPC_CheckType, MVT::i32, ++/*305893*/ OPC_MoveParent, ++/*305894*/ OPC_MoveChild, 22, ++/*305896*/ OPC_CheckInteger, 1, ++/*305898*/ OPC_CheckType, MVT::i32, ++/*305900*/ OPC_MoveParent, ++/*305901*/ OPC_MoveChild, 23, ++/*305903*/ OPC_CheckInteger, 1, ++/*305905*/ OPC_CheckType, MVT::i32, ++/*305907*/ OPC_MoveParent, ++/*305908*/ OPC_MoveChild, 24, ++/*305910*/ OPC_CheckInteger, 1, ++/*305912*/ OPC_CheckType, MVT::i32, ++/*305914*/ OPC_MoveParent, ++/*305915*/ OPC_MoveChild, 25, ++/*305917*/ OPC_CheckInteger, 1, ++/*305919*/ OPC_CheckType, MVT::i32, ++/*305921*/ OPC_MoveParent, ++/*305922*/ OPC_MoveChild, 26, ++/*305924*/ OPC_CheckInteger, 1, ++/*305926*/ OPC_CheckType, MVT::i32, ++/*305928*/ OPC_MoveParent, ++/*305929*/ OPC_MoveChild, 27, ++/*305931*/ OPC_CheckInteger, 1, ++/*305933*/ OPC_CheckType, MVT::i32, ++/*305935*/ OPC_MoveParent, ++/*305936*/ OPC_MoveChild, 28, ++/*305938*/ OPC_CheckInteger, 1, ++/*305940*/ OPC_CheckType, MVT::i32, ++/*305942*/ OPC_MoveParent, ++/*305943*/ OPC_MoveChild, 29, ++/*305945*/ OPC_CheckInteger, 1, ++/*305947*/ OPC_CheckType, MVT::i32, ++/*305949*/ OPC_MoveParent, ++/*305950*/ OPC_MoveChild, 30, ++/*305952*/ OPC_CheckInteger, 1, ++/*305954*/ OPC_CheckType, MVT::i32, ++/*305956*/ OPC_MoveParent, ++/*305957*/ OPC_MoveChild, 31, ++/*305959*/ OPC_CheckInteger, 1, ++/*305961*/ OPC_CheckType, MVT::i32, ++/*305963*/ OPC_MoveParent, ++/*305964*/ OPC_MoveParent, ++/*305965*/ OPC_MoveParent, ++/*305966*/ OPC_MoveParent, ++/*305967*/ OPC_MoveParent, ++/*305968*/ OPC_MoveChild1, ++/*305969*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*305972*/ OPC_CheckChild0Integer, 1, ++/*305974*/ OPC_CheckChild0Type, MVT::i32, ++/*305976*/ OPC_CheckChild1Integer, 1, ++/*305978*/ OPC_CheckChild1Type, MVT::i32, ++/*305980*/ OPC_CheckChild2Integer, 1, ++/*305982*/ OPC_CheckChild2Type, MVT::i32, ++/*305984*/ OPC_CheckChild3Integer, 1, ++/*305986*/ OPC_CheckChild3Type, MVT::i32, ++/*305988*/ OPC_CheckChild4Integer, 1, ++/*305990*/ OPC_CheckChild4Type, MVT::i32, ++/*305992*/ OPC_MoveChild5, ++/*305993*/ OPC_CheckInteger, 1, ++/*305995*/ OPC_CheckType, MVT::i32, ++/*305997*/ OPC_MoveParent, ++/*305998*/ OPC_MoveChild6, ++/*305999*/ OPC_CheckInteger, 1, ++/*306001*/ OPC_CheckType, MVT::i32, ++/*306003*/ OPC_MoveParent, ++/*306004*/ OPC_MoveChild7, ++/*306005*/ OPC_CheckInteger, 1, ++/*306007*/ OPC_CheckType, MVT::i32, ++/*306009*/ OPC_MoveParent, ++/*306010*/ OPC_MoveChild, 8, ++/*306012*/ OPC_CheckInteger, 1, ++/*306014*/ OPC_CheckType, MVT::i32, ++/*306016*/ OPC_MoveParent, ++/*306017*/ OPC_MoveChild, 9, ++/*306019*/ OPC_CheckInteger, 1, ++/*306021*/ OPC_CheckType, MVT::i32, ++/*306023*/ OPC_MoveParent, ++/*306024*/ OPC_MoveChild, 10, ++/*306026*/ OPC_CheckInteger, 1, ++/*306028*/ OPC_CheckType, MVT::i32, ++/*306030*/ OPC_MoveParent, ++/*306031*/ OPC_MoveChild, 11, ++/*306033*/ OPC_CheckInteger, 1, ++/*306035*/ OPC_CheckType, MVT::i32, ++/*306037*/ OPC_MoveParent, ++/*306038*/ OPC_MoveChild, 12, ++/*306040*/ OPC_CheckInteger, 1, ++/*306042*/ OPC_CheckType, MVT::i32, ++/*306044*/ OPC_MoveParent, ++/*306045*/ OPC_MoveChild, 13, ++/*306047*/ OPC_CheckInteger, 1, ++/*306049*/ OPC_CheckType, MVT::i32, ++/*306051*/ OPC_MoveParent, ++/*306052*/ OPC_MoveChild, 14, ++/*306054*/ OPC_CheckInteger, 1, ++/*306056*/ OPC_CheckType, MVT::i32, ++/*306058*/ OPC_MoveParent, ++/*306059*/ OPC_MoveChild, 15, ++/*306061*/ OPC_CheckInteger, 1, ++/*306063*/ OPC_CheckType, MVT::i32, ++/*306065*/ OPC_MoveParent, ++/*306066*/ OPC_MoveChild, 16, ++/*306068*/ OPC_CheckInteger, 1, ++/*306070*/ OPC_CheckType, MVT::i32, ++/*306072*/ OPC_MoveParent, ++/*306073*/ OPC_MoveChild, 17, ++/*306075*/ OPC_CheckInteger, 1, ++/*306077*/ OPC_CheckType, MVT::i32, ++/*306079*/ OPC_MoveParent, ++/*306080*/ OPC_MoveChild, 18, ++/*306082*/ OPC_CheckInteger, 1, ++/*306084*/ OPC_CheckType, MVT::i32, ++/*306086*/ OPC_MoveParent, ++/*306087*/ OPC_MoveChild, 19, ++/*306089*/ OPC_CheckInteger, 1, ++/*306091*/ OPC_CheckType, MVT::i32, ++/*306093*/ OPC_MoveParent, ++/*306094*/ OPC_MoveChild, 20, ++/*306096*/ OPC_CheckInteger, 1, ++/*306098*/ OPC_CheckType, MVT::i32, ++/*306100*/ OPC_MoveParent, ++/*306101*/ OPC_MoveChild, 21, ++/*306103*/ OPC_CheckInteger, 1, ++/*306105*/ OPC_CheckType, MVT::i32, ++/*306107*/ OPC_MoveParent, ++/*306108*/ OPC_MoveChild, 22, ++/*306110*/ OPC_CheckInteger, 1, ++/*306112*/ OPC_CheckType, MVT::i32, ++/*306114*/ OPC_MoveParent, ++/*306115*/ OPC_MoveChild, 23, ++/*306117*/ OPC_CheckInteger, 1, ++/*306119*/ OPC_CheckType, MVT::i32, ++/*306121*/ OPC_MoveParent, ++/*306122*/ OPC_MoveChild, 24, ++/*306124*/ OPC_CheckInteger, 1, ++/*306126*/ OPC_CheckType, MVT::i32, ++/*306128*/ OPC_MoveParent, ++/*306129*/ OPC_MoveChild, 25, ++/*306131*/ OPC_CheckInteger, 1, ++/*306133*/ OPC_CheckType, MVT::i32, ++/*306135*/ OPC_MoveParent, ++/*306136*/ OPC_MoveChild, 26, ++/*306138*/ OPC_CheckInteger, 1, ++/*306140*/ OPC_CheckType, MVT::i32, ++/*306142*/ OPC_MoveParent, ++/*306143*/ OPC_MoveChild, 27, ++/*306145*/ OPC_CheckInteger, 1, ++/*306147*/ OPC_CheckType, MVT::i32, ++/*306149*/ OPC_MoveParent, ++/*306150*/ OPC_MoveChild, 28, ++/*306152*/ OPC_CheckInteger, 1, ++/*306154*/ OPC_CheckType, MVT::i32, ++/*306156*/ OPC_MoveParent, ++/*306157*/ OPC_MoveChild, 29, ++/*306159*/ OPC_CheckInteger, 1, ++/*306161*/ OPC_CheckType, MVT::i32, ++/*306163*/ OPC_MoveParent, ++/*306164*/ OPC_MoveChild, 30, ++/*306166*/ OPC_CheckInteger, 1, ++/*306168*/ OPC_CheckType, MVT::i32, ++/*306170*/ OPC_MoveParent, ++/*306171*/ OPC_MoveChild, 31, ++/*306173*/ OPC_CheckInteger, 1, ++/*306175*/ OPC_CheckType, MVT::i32, ++/*306177*/ OPC_MoveParent, ++/*306178*/ OPC_CheckType, MVT::v32i8, ++/*306180*/ OPC_MoveParent, ++/*306181*/ OPC_CheckType, MVT::v32i8, ++/*306183*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*306185*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*306193*/ 0, /*End of Scope*/ ++/*306194*/ /*Scope*/ 45|128,5/*685*/, /*->306881*/ ++/*306196*/ OPC_MoveChild0, ++/*306197*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*306200*/ OPC_CheckChild0Integer, 1, ++/*306202*/ OPC_CheckChild0Type, MVT::i32, ++/*306204*/ OPC_CheckChild1Integer, 1, ++/*306206*/ OPC_CheckChild1Type, MVT::i32, ++/*306208*/ OPC_CheckChild2Integer, 1, ++/*306210*/ OPC_CheckChild2Type, MVT::i32, ++/*306212*/ OPC_CheckChild3Integer, 1, ++/*306214*/ OPC_CheckChild3Type, MVT::i32, ++/*306216*/ OPC_CheckChild4Integer, 1, ++/*306218*/ OPC_CheckChild4Type, MVT::i32, ++/*306220*/ OPC_MoveChild5, ++/*306221*/ OPC_CheckInteger, 1, ++/*306223*/ OPC_CheckType, MVT::i32, ++/*306225*/ OPC_MoveParent, ++/*306226*/ OPC_MoveChild6, ++/*306227*/ OPC_CheckInteger, 1, ++/*306229*/ OPC_CheckType, MVT::i32, ++/*306231*/ OPC_MoveParent, ++/*306232*/ OPC_MoveChild7, ++/*306233*/ OPC_CheckInteger, 1, ++/*306235*/ OPC_CheckType, MVT::i32, ++/*306237*/ OPC_MoveParent, ++/*306238*/ OPC_MoveChild, 8, ++/*306240*/ OPC_CheckInteger, 1, ++/*306242*/ OPC_CheckType, MVT::i32, ++/*306244*/ OPC_MoveParent, ++/*306245*/ OPC_MoveChild, 9, ++/*306247*/ OPC_CheckInteger, 1, ++/*306249*/ OPC_CheckType, MVT::i32, ++/*306251*/ OPC_MoveParent, ++/*306252*/ OPC_MoveChild, 10, ++/*306254*/ OPC_CheckInteger, 1, ++/*306256*/ OPC_CheckType, MVT::i32, ++/*306258*/ OPC_MoveParent, ++/*306259*/ OPC_MoveChild, 11, ++/*306261*/ OPC_CheckInteger, 1, ++/*306263*/ OPC_CheckType, MVT::i32, ++/*306265*/ OPC_MoveParent, ++/*306266*/ OPC_MoveChild, 12, ++/*306268*/ OPC_CheckInteger, 1, ++/*306270*/ OPC_CheckType, MVT::i32, ++/*306272*/ OPC_MoveParent, ++/*306273*/ OPC_MoveChild, 13, ++/*306275*/ OPC_CheckInteger, 1, ++/*306277*/ OPC_CheckType, MVT::i32, ++/*306279*/ OPC_MoveParent, ++/*306280*/ OPC_MoveChild, 14, ++/*306282*/ OPC_CheckInteger, 1, ++/*306284*/ OPC_CheckType, MVT::i32, ++/*306286*/ OPC_MoveParent, ++/*306287*/ OPC_MoveChild, 15, ++/*306289*/ OPC_CheckInteger, 1, ++/*306291*/ OPC_CheckType, MVT::i32, ++/*306293*/ OPC_MoveParent, ++/*306294*/ OPC_MoveChild, 16, ++/*306296*/ OPC_CheckInteger, 1, ++/*306298*/ OPC_CheckType, MVT::i32, ++/*306300*/ OPC_MoveParent, ++/*306301*/ OPC_MoveChild, 17, ++/*306303*/ OPC_CheckInteger, 1, ++/*306305*/ OPC_CheckType, MVT::i32, ++/*306307*/ OPC_MoveParent, ++/*306308*/ OPC_MoveChild, 18, ++/*306310*/ OPC_CheckInteger, 1, ++/*306312*/ OPC_CheckType, MVT::i32, ++/*306314*/ OPC_MoveParent, ++/*306315*/ OPC_MoveChild, 19, ++/*306317*/ OPC_CheckInteger, 1, ++/*306319*/ OPC_CheckType, MVT::i32, ++/*306321*/ OPC_MoveParent, ++/*306322*/ OPC_MoveChild, 20, ++/*306324*/ OPC_CheckInteger, 1, ++/*306326*/ OPC_CheckType, MVT::i32, ++/*306328*/ OPC_MoveParent, ++/*306329*/ OPC_MoveChild, 21, ++/*306331*/ OPC_CheckInteger, 1, ++/*306333*/ OPC_CheckType, MVT::i32, ++/*306335*/ OPC_MoveParent, ++/*306336*/ OPC_MoveChild, 22, ++/*306338*/ OPC_CheckInteger, 1, ++/*306340*/ OPC_CheckType, MVT::i32, ++/*306342*/ OPC_MoveParent, ++/*306343*/ OPC_MoveChild, 23, ++/*306345*/ OPC_CheckInteger, 1, ++/*306347*/ OPC_CheckType, MVT::i32, ++/*306349*/ OPC_MoveParent, ++/*306350*/ OPC_MoveChild, 24, ++/*306352*/ OPC_CheckInteger, 1, ++/*306354*/ OPC_CheckType, MVT::i32, ++/*306356*/ OPC_MoveParent, ++/*306357*/ OPC_MoveChild, 25, ++/*306359*/ OPC_CheckInteger, 1, ++/*306361*/ OPC_CheckType, MVT::i32, ++/*306363*/ OPC_MoveParent, ++/*306364*/ OPC_MoveChild, 26, ++/*306366*/ OPC_CheckInteger, 1, ++/*306368*/ OPC_CheckType, MVT::i32, ++/*306370*/ OPC_MoveParent, ++/*306371*/ OPC_MoveChild, 27, ++/*306373*/ OPC_CheckInteger, 1, ++/*306375*/ OPC_CheckType, MVT::i32, ++/*306377*/ OPC_MoveParent, ++/*306378*/ OPC_MoveChild, 28, ++/*306380*/ OPC_CheckInteger, 1, ++/*306382*/ OPC_CheckType, MVT::i32, ++/*306384*/ OPC_MoveParent, ++/*306385*/ OPC_MoveChild, 29, ++/*306387*/ OPC_CheckInteger, 1, ++/*306389*/ OPC_CheckType, MVT::i32, ++/*306391*/ OPC_MoveParent, ++/*306392*/ OPC_MoveChild, 30, ++/*306394*/ OPC_CheckInteger, 1, ++/*306396*/ OPC_CheckType, MVT::i32, ++/*306398*/ OPC_MoveParent, ++/*306399*/ OPC_MoveChild, 31, ++/*306401*/ OPC_CheckInteger, 1, ++/*306403*/ OPC_CheckType, MVT::i32, ++/*306405*/ OPC_MoveParent, ++/*306406*/ OPC_MoveParent, ++/*306407*/ OPC_MoveChild1, ++/*306408*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*306411*/ OPC_Scope, 104|128,1/*232*/, /*->306646*/ // 2 children in Scope ++/*306414*/ OPC_CheckChild0Same, 1, ++/*306416*/ OPC_CheckChild1Same, 0, ++/*306418*/ OPC_MoveParent, ++/*306419*/ OPC_MoveParent, ++/*306420*/ OPC_MoveParent, ++/*306421*/ OPC_MoveChild1, ++/*306422*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*306425*/ OPC_CheckChild0Integer, 1, ++/*306427*/ OPC_CheckChild0Type, MVT::i32, ++/*306429*/ OPC_CheckChild1Integer, 1, ++/*306431*/ OPC_CheckChild1Type, MVT::i32, ++/*306433*/ OPC_CheckChild2Integer, 1, ++/*306435*/ OPC_CheckChild2Type, MVT::i32, ++/*306437*/ OPC_CheckChild3Integer, 1, ++/*306439*/ OPC_CheckChild3Type, MVT::i32, ++/*306441*/ OPC_CheckChild4Integer, 1, ++/*306443*/ OPC_CheckChild4Type, MVT::i32, ++/*306445*/ OPC_MoveChild5, ++/*306446*/ OPC_CheckInteger, 1, ++/*306448*/ OPC_CheckType, MVT::i32, ++/*306450*/ OPC_MoveParent, ++/*306451*/ OPC_MoveChild6, ++/*306452*/ OPC_CheckInteger, 1, ++/*306454*/ OPC_CheckType, MVT::i32, ++/*306456*/ OPC_MoveParent, ++/*306457*/ OPC_MoveChild7, ++/*306458*/ OPC_CheckInteger, 1, ++/*306460*/ OPC_CheckType, MVT::i32, ++/*306462*/ OPC_MoveParent, ++/*306463*/ OPC_MoveChild, 8, ++/*306465*/ OPC_CheckInteger, 1, ++/*306467*/ OPC_CheckType, MVT::i32, ++/*306469*/ OPC_MoveParent, ++/*306470*/ OPC_MoveChild, 9, ++/*306472*/ OPC_CheckInteger, 1, ++/*306474*/ OPC_CheckType, MVT::i32, ++/*306476*/ OPC_MoveParent, ++/*306477*/ OPC_MoveChild, 10, ++/*306479*/ OPC_CheckInteger, 1, ++/*306481*/ OPC_CheckType, MVT::i32, ++/*306483*/ OPC_MoveParent, ++/*306484*/ OPC_MoveChild, 11, ++/*306486*/ OPC_CheckInteger, 1, ++/*306488*/ OPC_CheckType, MVT::i32, ++/*306490*/ OPC_MoveParent, ++/*306491*/ OPC_MoveChild, 12, ++/*306493*/ OPC_CheckInteger, 1, ++/*306495*/ OPC_CheckType, MVT::i32, ++/*306497*/ OPC_MoveParent, ++/*306498*/ OPC_MoveChild, 13, ++/*306500*/ OPC_CheckInteger, 1, ++/*306502*/ OPC_CheckType, MVT::i32, ++/*306504*/ OPC_MoveParent, ++/*306505*/ OPC_MoveChild, 14, ++/*306507*/ OPC_CheckInteger, 1, ++/*306509*/ OPC_CheckType, MVT::i32, ++/*306511*/ OPC_MoveParent, ++/*306512*/ OPC_MoveChild, 15, ++/*306514*/ OPC_CheckInteger, 1, ++/*306516*/ OPC_CheckType, MVT::i32, ++/*306518*/ OPC_MoveParent, ++/*306519*/ OPC_MoveChild, 16, ++/*306521*/ OPC_CheckInteger, 1, ++/*306523*/ OPC_CheckType, MVT::i32, ++/*306525*/ OPC_MoveParent, ++/*306526*/ OPC_MoveChild, 17, ++/*306528*/ OPC_CheckInteger, 1, ++/*306530*/ OPC_CheckType, MVT::i32, ++/*306532*/ OPC_MoveParent, ++/*306533*/ OPC_MoveChild, 18, ++/*306535*/ OPC_CheckInteger, 1, ++/*306537*/ OPC_CheckType, MVT::i32, ++/*306539*/ OPC_MoveParent, ++/*306540*/ OPC_MoveChild, 19, ++/*306542*/ OPC_CheckInteger, 1, ++/*306544*/ OPC_CheckType, MVT::i32, ++/*306546*/ OPC_MoveParent, ++/*306547*/ OPC_MoveChild, 20, ++/*306549*/ OPC_CheckInteger, 1, ++/*306551*/ OPC_CheckType, MVT::i32, ++/*306553*/ OPC_MoveParent, ++/*306554*/ OPC_MoveChild, 21, ++/*306556*/ OPC_CheckInteger, 1, ++/*306558*/ OPC_CheckType, MVT::i32, ++/*306560*/ OPC_MoveParent, ++/*306561*/ OPC_MoveChild, 22, ++/*306563*/ OPC_CheckInteger, 1, ++/*306565*/ OPC_CheckType, MVT::i32, ++/*306567*/ OPC_MoveParent, ++/*306568*/ OPC_MoveChild, 23, ++/*306570*/ OPC_CheckInteger, 1, ++/*306572*/ OPC_CheckType, MVT::i32, ++/*306574*/ OPC_MoveParent, ++/*306575*/ OPC_MoveChild, 24, ++/*306577*/ OPC_CheckInteger, 1, ++/*306579*/ OPC_CheckType, MVT::i32, ++/*306581*/ OPC_MoveParent, ++/*306582*/ OPC_MoveChild, 25, ++/*306584*/ OPC_CheckInteger, 1, ++/*306586*/ OPC_CheckType, MVT::i32, ++/*306588*/ OPC_MoveParent, ++/*306589*/ OPC_MoveChild, 26, ++/*306591*/ OPC_CheckInteger, 1, ++/*306593*/ OPC_CheckType, MVT::i32, ++/*306595*/ OPC_MoveParent, ++/*306596*/ OPC_MoveChild, 27, ++/*306598*/ OPC_CheckInteger, 1, ++/*306600*/ OPC_CheckType, MVT::i32, ++/*306602*/ OPC_MoveParent, ++/*306603*/ OPC_MoveChild, 28, ++/*306605*/ OPC_CheckInteger, 1, ++/*306607*/ OPC_CheckType, MVT::i32, ++/*306609*/ OPC_MoveParent, ++/*306610*/ OPC_MoveChild, 29, ++/*306612*/ OPC_CheckInteger, 1, ++/*306614*/ OPC_CheckType, MVT::i32, ++/*306616*/ OPC_MoveParent, ++/*306617*/ OPC_MoveChild, 30, ++/*306619*/ OPC_CheckInteger, 1, ++/*306621*/ OPC_CheckType, MVT::i32, ++/*306623*/ OPC_MoveParent, ++/*306624*/ OPC_MoveChild, 31, ++/*306626*/ OPC_CheckInteger, 1, ++/*306628*/ OPC_CheckType, MVT::i32, ++/*306630*/ OPC_MoveParent, ++/*306631*/ OPC_CheckType, MVT::v32i8, ++/*306633*/ OPC_MoveParent, ++/*306634*/ OPC_CheckType, MVT::v32i8, ++/*306636*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*306638*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*306646*/ /*Scope*/ 104|128,1/*232*/, /*->306880*/ ++/*306648*/ OPC_CheckChild0Same, 0, ++/*306650*/ OPC_CheckChild1Same, 1, ++/*306652*/ OPC_MoveParent, ++/*306653*/ OPC_MoveParent, ++/*306654*/ OPC_MoveParent, ++/*306655*/ OPC_MoveChild1, ++/*306656*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*306659*/ OPC_CheckChild0Integer, 1, ++/*306661*/ OPC_CheckChild0Type, MVT::i32, ++/*306663*/ OPC_CheckChild1Integer, 1, ++/*306665*/ OPC_CheckChild1Type, MVT::i32, ++/*306667*/ OPC_CheckChild2Integer, 1, ++/*306669*/ OPC_CheckChild2Type, MVT::i32, ++/*306671*/ OPC_CheckChild3Integer, 1, ++/*306673*/ OPC_CheckChild3Type, MVT::i32, ++/*306675*/ OPC_CheckChild4Integer, 1, ++/*306677*/ OPC_CheckChild4Type, MVT::i32, ++/*306679*/ OPC_MoveChild5, ++/*306680*/ OPC_CheckInteger, 1, ++/*306682*/ OPC_CheckType, MVT::i32, ++/*306684*/ OPC_MoveParent, ++/*306685*/ OPC_MoveChild6, ++/*306686*/ OPC_CheckInteger, 1, ++/*306688*/ OPC_CheckType, MVT::i32, ++/*306690*/ OPC_MoveParent, ++/*306691*/ OPC_MoveChild7, ++/*306692*/ OPC_CheckInteger, 1, ++/*306694*/ OPC_CheckType, MVT::i32, ++/*306696*/ OPC_MoveParent, ++/*306697*/ OPC_MoveChild, 8, ++/*306699*/ OPC_CheckInteger, 1, ++/*306701*/ OPC_CheckType, MVT::i32, ++/*306703*/ OPC_MoveParent, ++/*306704*/ OPC_MoveChild, 9, ++/*306706*/ OPC_CheckInteger, 1, ++/*306708*/ OPC_CheckType, MVT::i32, ++/*306710*/ OPC_MoveParent, ++/*306711*/ OPC_MoveChild, 10, ++/*306713*/ OPC_CheckInteger, 1, ++/*306715*/ OPC_CheckType, MVT::i32, ++/*306717*/ OPC_MoveParent, ++/*306718*/ OPC_MoveChild, 11, ++/*306720*/ OPC_CheckInteger, 1, ++/*306722*/ OPC_CheckType, MVT::i32, ++/*306724*/ OPC_MoveParent, ++/*306725*/ OPC_MoveChild, 12, ++/*306727*/ OPC_CheckInteger, 1, ++/*306729*/ OPC_CheckType, MVT::i32, ++/*306731*/ OPC_MoveParent, ++/*306732*/ OPC_MoveChild, 13, ++/*306734*/ OPC_CheckInteger, 1, ++/*306736*/ OPC_CheckType, MVT::i32, ++/*306738*/ OPC_MoveParent, ++/*306739*/ OPC_MoveChild, 14, ++/*306741*/ OPC_CheckInteger, 1, ++/*306743*/ OPC_CheckType, MVT::i32, ++/*306745*/ OPC_MoveParent, ++/*306746*/ OPC_MoveChild, 15, ++/*306748*/ OPC_CheckInteger, 1, ++/*306750*/ OPC_CheckType, MVT::i32, ++/*306752*/ OPC_MoveParent, ++/*306753*/ OPC_MoveChild, 16, ++/*306755*/ OPC_CheckInteger, 1, ++/*306757*/ OPC_CheckType, MVT::i32, ++/*306759*/ OPC_MoveParent, ++/*306760*/ OPC_MoveChild, 17, ++/*306762*/ OPC_CheckInteger, 1, ++/*306764*/ OPC_CheckType, MVT::i32, ++/*306766*/ OPC_MoveParent, ++/*306767*/ OPC_MoveChild, 18, ++/*306769*/ OPC_CheckInteger, 1, ++/*306771*/ OPC_CheckType, MVT::i32, ++/*306773*/ OPC_MoveParent, ++/*306774*/ OPC_MoveChild, 19, ++/*306776*/ OPC_CheckInteger, 1, ++/*306778*/ OPC_CheckType, MVT::i32, ++/*306780*/ OPC_MoveParent, ++/*306781*/ OPC_MoveChild, 20, ++/*306783*/ OPC_CheckInteger, 1, ++/*306785*/ OPC_CheckType, MVT::i32, ++/*306787*/ OPC_MoveParent, ++/*306788*/ OPC_MoveChild, 21, ++/*306790*/ OPC_CheckInteger, 1, ++/*306792*/ OPC_CheckType, MVT::i32, ++/*306794*/ OPC_MoveParent, ++/*306795*/ OPC_MoveChild, 22, ++/*306797*/ OPC_CheckInteger, 1, ++/*306799*/ OPC_CheckType, MVT::i32, ++/*306801*/ OPC_MoveParent, ++/*306802*/ OPC_MoveChild, 23, ++/*306804*/ OPC_CheckInteger, 1, ++/*306806*/ OPC_CheckType, MVT::i32, ++/*306808*/ OPC_MoveParent, ++/*306809*/ OPC_MoveChild, 24, ++/*306811*/ OPC_CheckInteger, 1, ++/*306813*/ OPC_CheckType, MVT::i32, ++/*306815*/ OPC_MoveParent, ++/*306816*/ OPC_MoveChild, 25, ++/*306818*/ OPC_CheckInteger, 1, ++/*306820*/ OPC_CheckType, MVT::i32, ++/*306822*/ OPC_MoveParent, ++/*306823*/ OPC_MoveChild, 26, ++/*306825*/ OPC_CheckInteger, 1, ++/*306827*/ OPC_CheckType, MVT::i32, ++/*306829*/ OPC_MoveParent, ++/*306830*/ OPC_MoveChild, 27, ++/*306832*/ OPC_CheckInteger, 1, ++/*306834*/ OPC_CheckType, MVT::i32, ++/*306836*/ OPC_MoveParent, ++/*306837*/ OPC_MoveChild, 28, ++/*306839*/ OPC_CheckInteger, 1, ++/*306841*/ OPC_CheckType, MVT::i32, ++/*306843*/ OPC_MoveParent, ++/*306844*/ OPC_MoveChild, 29, ++/*306846*/ OPC_CheckInteger, 1, ++/*306848*/ OPC_CheckType, MVT::i32, ++/*306850*/ OPC_MoveParent, ++/*306851*/ OPC_MoveChild, 30, ++/*306853*/ OPC_CheckInteger, 1, ++/*306855*/ OPC_CheckType, MVT::i32, ++/*306857*/ OPC_MoveParent, ++/*306858*/ OPC_MoveChild, 31, ++/*306860*/ OPC_CheckInteger, 1, ++/*306862*/ OPC_CheckType, MVT::i32, ++/*306864*/ OPC_MoveParent, ++/*306865*/ OPC_CheckType, MVT::v32i8, ++/*306867*/ OPC_MoveParent, ++/*306868*/ OPC_CheckType, MVT::v32i8, ++/*306870*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*306872*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*306880*/ 0, /*End of Scope*/ ++/*306881*/ 0, /*End of Scope*/ ++/*306882*/ 0, /*End of Scope*/ ++/*306883*/ 0, /*End of Scope*/ ++/*306884*/ /*Scope*/ 107|128,46|128,1/*22379*/, /*->329266*/ ++/*306887*/ OPC_RecordChild0, // #0 = $b ++/*306888*/ OPC_MoveChild1, ++/*306889*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*306892*/ OPC_Scope, 87|128,43/*5591*/, /*->312486*/ // 4 children in Scope ++/*306895*/ OPC_MoveChild0, ++/*306896*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*306899*/ OPC_CheckChild0Integer, 1, ++/*306901*/ OPC_CheckChild0Type, MVT::i32, ++/*306903*/ OPC_CheckChild1Integer, 1, ++/*306905*/ OPC_CheckChild1Type, MVT::i32, ++/*306907*/ OPC_CheckChild2Integer, 1, ++/*306909*/ OPC_CheckChild2Type, MVT::i32, ++/*306911*/ OPC_CheckChild3Integer, 1, ++/*306913*/ OPC_CheckChild3Type, MVT::i32, ++/*306915*/ OPC_CheckChild4Integer, 1, ++/*306917*/ OPC_CheckChild4Type, MVT::i32, ++/*306919*/ OPC_MoveChild5, ++/*306920*/ OPC_CheckInteger, 1, ++/*306922*/ OPC_CheckType, MVT::i32, ++/*306924*/ OPC_MoveParent, ++/*306925*/ OPC_MoveChild6, ++/*306926*/ OPC_CheckInteger, 1, ++/*306928*/ OPC_CheckType, MVT::i32, ++/*306930*/ OPC_MoveParent, ++/*306931*/ OPC_MoveChild7, ++/*306932*/ OPC_CheckInteger, 1, ++/*306934*/ OPC_CheckType, MVT::i32, ++/*306936*/ OPC_MoveParent, ++/*306937*/ OPC_MoveChild, 8, ++/*306939*/ OPC_CheckInteger, 1, ++/*306941*/ OPC_CheckType, MVT::i32, ++/*306943*/ OPC_MoveParent, ++/*306944*/ OPC_MoveChild, 9, ++/*306946*/ OPC_CheckInteger, 1, ++/*306948*/ OPC_CheckType, MVT::i32, ++/*306950*/ OPC_MoveParent, ++/*306951*/ OPC_MoveChild, 10, ++/*306953*/ OPC_CheckInteger, 1, ++/*306955*/ OPC_CheckType, MVT::i32, ++/*306957*/ OPC_MoveParent, ++/*306958*/ OPC_MoveChild, 11, ++/*306960*/ OPC_CheckInteger, 1, ++/*306962*/ OPC_CheckType, MVT::i32, ++/*306964*/ OPC_MoveParent, ++/*306965*/ OPC_MoveChild, 12, ++/*306967*/ OPC_CheckInteger, 1, ++/*306969*/ OPC_CheckType, MVT::i32, ++/*306971*/ OPC_MoveParent, ++/*306972*/ OPC_MoveChild, 13, ++/*306974*/ OPC_CheckInteger, 1, ++/*306976*/ OPC_CheckType, MVT::i32, ++/*306978*/ OPC_MoveParent, ++/*306979*/ OPC_MoveChild, 14, ++/*306981*/ OPC_CheckInteger, 1, ++/*306983*/ OPC_CheckType, MVT::i32, ++/*306985*/ OPC_MoveParent, ++/*306986*/ OPC_MoveChild, 15, ++/*306988*/ OPC_CheckInteger, 1, ++/*306990*/ OPC_CheckType, MVT::i32, ++/*306992*/ OPC_MoveParent, ++/*306993*/ OPC_MoveChild, 16, ++/*306995*/ OPC_CheckInteger, 1, ++/*306997*/ OPC_CheckType, MVT::i32, ++/*306999*/ OPC_MoveParent, ++/*307000*/ OPC_MoveChild, 17, ++/*307002*/ OPC_CheckInteger, 1, ++/*307004*/ OPC_CheckType, MVT::i32, ++/*307006*/ OPC_MoveParent, ++/*307007*/ OPC_MoveChild, 18, ++/*307009*/ OPC_CheckInteger, 1, ++/*307011*/ OPC_CheckType, MVT::i32, ++/*307013*/ OPC_MoveParent, ++/*307014*/ OPC_MoveChild, 19, ++/*307016*/ OPC_CheckInteger, 1, ++/*307018*/ OPC_CheckType, MVT::i32, ++/*307020*/ OPC_MoveParent, ++/*307021*/ OPC_MoveChild, 20, ++/*307023*/ OPC_CheckInteger, 1, ++/*307025*/ OPC_CheckType, MVT::i32, ++/*307027*/ OPC_MoveParent, ++/*307028*/ OPC_MoveChild, 21, ++/*307030*/ OPC_CheckInteger, 1, ++/*307032*/ OPC_CheckType, MVT::i32, ++/*307034*/ OPC_MoveParent, ++/*307035*/ OPC_MoveChild, 22, ++/*307037*/ OPC_CheckInteger, 1, ++/*307039*/ OPC_CheckType, MVT::i32, ++/*307041*/ OPC_MoveParent, ++/*307042*/ OPC_MoveChild, 23, ++/*307044*/ OPC_CheckInteger, 1, ++/*307046*/ OPC_CheckType, MVT::i32, ++/*307048*/ OPC_MoveParent, ++/*307049*/ OPC_MoveChild, 24, ++/*307051*/ OPC_CheckInteger, 1, ++/*307053*/ OPC_CheckType, MVT::i32, ++/*307055*/ OPC_MoveParent, ++/*307056*/ OPC_MoveChild, 25, ++/*307058*/ OPC_CheckInteger, 1, ++/*307060*/ OPC_CheckType, MVT::i32, ++/*307062*/ OPC_MoveParent, ++/*307063*/ OPC_MoveChild, 26, ++/*307065*/ OPC_CheckInteger, 1, ++/*307067*/ OPC_CheckType, MVT::i32, ++/*307069*/ OPC_MoveParent, ++/*307070*/ OPC_MoveChild, 27, ++/*307072*/ OPC_CheckInteger, 1, ++/*307074*/ OPC_CheckType, MVT::i32, ++/*307076*/ OPC_MoveParent, ++/*307077*/ OPC_MoveChild, 28, ++/*307079*/ OPC_CheckInteger, 1, ++/*307081*/ OPC_CheckType, MVT::i32, ++/*307083*/ OPC_MoveParent, ++/*307084*/ OPC_MoveChild, 29, ++/*307086*/ OPC_CheckInteger, 1, ++/*307088*/ OPC_CheckType, MVT::i32, ++/*307090*/ OPC_MoveParent, ++/*307091*/ OPC_MoveChild, 30, ++/*307093*/ OPC_CheckInteger, 1, ++/*307095*/ OPC_CheckType, MVT::i32, ++/*307097*/ OPC_MoveParent, ++/*307098*/ OPC_MoveChild, 31, ++/*307100*/ OPC_CheckInteger, 1, ++/*307102*/ OPC_CheckType, MVT::i32, ++/*307104*/ OPC_MoveParent, ++/*307105*/ OPC_MoveParent, ++/*307106*/ OPC_RecordChild1, // #1 = $a ++/*307107*/ OPC_MoveParent, ++/*307108*/ OPC_MoveParent, ++/*307109*/ OPC_MoveChild1, ++/*307110*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*307113*/ OPC_CheckChild0Integer, 7, ++/*307115*/ OPC_CheckChild0Type, MVT::i32, ++/*307117*/ OPC_CheckChild1Integer, 7, ++/*307119*/ OPC_CheckChild1Type, MVT::i32, ++/*307121*/ OPC_CheckChild2Integer, 7, ++/*307123*/ OPC_CheckChild2Type, MVT::i32, ++/*307125*/ OPC_CheckChild3Integer, 7, ++/*307127*/ OPC_CheckChild3Type, MVT::i32, ++/*307129*/ OPC_CheckChild4Integer, 7, ++/*307131*/ OPC_CheckChild4Type, MVT::i32, ++/*307133*/ OPC_MoveChild5, ++/*307134*/ OPC_CheckInteger, 7, ++/*307136*/ OPC_CheckType, MVT::i32, ++/*307138*/ OPC_MoveParent, ++/*307139*/ OPC_MoveChild6, ++/*307140*/ OPC_CheckInteger, 7, ++/*307142*/ OPC_CheckType, MVT::i32, ++/*307144*/ OPC_MoveParent, ++/*307145*/ OPC_MoveChild7, ++/*307146*/ OPC_CheckInteger, 7, ++/*307148*/ OPC_CheckType, MVT::i32, ++/*307150*/ OPC_MoveParent, ++/*307151*/ OPC_MoveChild, 8, ++/*307153*/ OPC_CheckInteger, 7, ++/*307155*/ OPC_CheckType, MVT::i32, ++/*307157*/ OPC_MoveParent, ++/*307158*/ OPC_MoveChild, 9, ++/*307160*/ OPC_CheckInteger, 7, ++/*307162*/ OPC_CheckType, MVT::i32, ++/*307164*/ OPC_MoveParent, ++/*307165*/ OPC_MoveChild, 10, ++/*307167*/ OPC_CheckInteger, 7, ++/*307169*/ OPC_CheckType, MVT::i32, ++/*307171*/ OPC_MoveParent, ++/*307172*/ OPC_MoveChild, 11, ++/*307174*/ OPC_CheckInteger, 7, ++/*307176*/ OPC_CheckType, MVT::i32, ++/*307178*/ OPC_MoveParent, ++/*307179*/ OPC_MoveChild, 12, ++/*307181*/ OPC_CheckInteger, 7, ++/*307183*/ OPC_CheckType, MVT::i32, ++/*307185*/ OPC_MoveParent, ++/*307186*/ OPC_MoveChild, 13, ++/*307188*/ OPC_CheckInteger, 7, ++/*307190*/ OPC_CheckType, MVT::i32, ++/*307192*/ OPC_MoveParent, ++/*307193*/ OPC_MoveChild, 14, ++/*307195*/ OPC_CheckInteger, 7, ++/*307197*/ OPC_CheckType, MVT::i32, ++/*307199*/ OPC_MoveParent, ++/*307200*/ OPC_MoveChild, 15, ++/*307202*/ OPC_CheckInteger, 7, ++/*307204*/ OPC_CheckType, MVT::i32, ++/*307206*/ OPC_MoveParent, ++/*307207*/ OPC_MoveChild, 16, ++/*307209*/ OPC_CheckInteger, 7, ++/*307211*/ OPC_CheckType, MVT::i32, ++/*307213*/ OPC_MoveParent, ++/*307214*/ OPC_MoveChild, 17, ++/*307216*/ OPC_CheckInteger, 7, ++/*307218*/ OPC_CheckType, MVT::i32, ++/*307220*/ OPC_MoveParent, ++/*307221*/ OPC_MoveChild, 18, ++/*307223*/ OPC_CheckInteger, 7, ++/*307225*/ OPC_CheckType, MVT::i32, ++/*307227*/ OPC_MoveParent, ++/*307228*/ OPC_MoveChild, 19, ++/*307230*/ OPC_CheckInteger, 7, ++/*307232*/ OPC_CheckType, MVT::i32, ++/*307234*/ OPC_MoveParent, ++/*307235*/ OPC_MoveChild, 20, ++/*307237*/ OPC_CheckInteger, 7, ++/*307239*/ OPC_CheckType, MVT::i32, ++/*307241*/ OPC_MoveParent, ++/*307242*/ OPC_MoveChild, 21, ++/*307244*/ OPC_CheckInteger, 7, ++/*307246*/ OPC_CheckType, MVT::i32, ++/*307248*/ OPC_MoveParent, ++/*307249*/ OPC_MoveChild, 22, ++/*307251*/ OPC_CheckInteger, 7, ++/*307253*/ OPC_CheckType, MVT::i32, ++/*307255*/ OPC_MoveParent, ++/*307256*/ OPC_MoveChild, 23, ++/*307258*/ OPC_CheckInteger, 7, ++/*307260*/ OPC_CheckType, MVT::i32, ++/*307262*/ OPC_MoveParent, ++/*307263*/ OPC_MoveChild, 24, ++/*307265*/ OPC_CheckInteger, 7, ++/*307267*/ OPC_CheckType, MVT::i32, ++/*307269*/ OPC_MoveParent, ++/*307270*/ OPC_MoveChild, 25, ++/*307272*/ OPC_CheckInteger, 7, ++/*307274*/ OPC_CheckType, MVT::i32, ++/*307276*/ OPC_MoveParent, ++/*307277*/ OPC_MoveChild, 26, ++/*307279*/ OPC_CheckInteger, 7, ++/*307281*/ OPC_CheckType, MVT::i32, ++/*307283*/ OPC_MoveParent, ++/*307284*/ OPC_MoveChild, 27, ++/*307286*/ OPC_CheckInteger, 7, ++/*307288*/ OPC_CheckType, MVT::i32, ++/*307290*/ OPC_MoveParent, ++/*307291*/ OPC_MoveChild, 28, ++/*307293*/ OPC_CheckInteger, 7, ++/*307295*/ OPC_CheckType, MVT::i32, ++/*307297*/ OPC_MoveParent, ++/*307298*/ OPC_MoveChild, 29, ++/*307300*/ OPC_CheckInteger, 7, ++/*307302*/ OPC_CheckType, MVT::i32, ++/*307304*/ OPC_MoveParent, ++/*307305*/ OPC_MoveChild, 30, ++/*307307*/ OPC_CheckInteger, 7, ++/*307309*/ OPC_CheckType, MVT::i32, ++/*307311*/ OPC_MoveParent, ++/*307312*/ OPC_MoveChild, 31, ++/*307314*/ OPC_CheckInteger, 7, ++/*307316*/ OPC_CheckType, MVT::i32, ++/*307318*/ OPC_MoveParent, ++/*307319*/ OPC_CheckType, MVT::v32i8, ++/*307321*/ OPC_MoveParent, ++/*307322*/ OPC_MoveParent, ++/*307323*/ OPC_MoveChild1, ++/*307324*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*307327*/ OPC_Scope, 116|128,20/*2676*/, /*->310006*/ // 4 children in Scope ++/*307330*/ OPC_MoveChild0, ++/*307331*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*307334*/ OPC_Scope, 59|128,3/*443*/, /*->307780*/ // 6 children in Scope ++/*307337*/ OPC_MoveChild0, ++/*307338*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*307341*/ OPC_CheckChild0Integer, 1, ++/*307343*/ OPC_CheckChild0Type, MVT::i32, ++/*307345*/ OPC_CheckChild1Integer, 1, ++/*307347*/ OPC_CheckChild1Type, MVT::i32, ++/*307349*/ OPC_CheckChild2Integer, 1, ++/*307351*/ OPC_CheckChild2Type, MVT::i32, ++/*307353*/ OPC_CheckChild3Integer, 1, ++/*307355*/ OPC_CheckChild3Type, MVT::i32, ++/*307357*/ OPC_CheckChild4Integer, 1, ++/*307359*/ OPC_CheckChild4Type, MVT::i32, ++/*307361*/ OPC_MoveChild5, ++/*307362*/ OPC_CheckInteger, 1, ++/*307364*/ OPC_CheckType, MVT::i32, ++/*307366*/ OPC_MoveParent, ++/*307367*/ OPC_MoveChild6, ++/*307368*/ OPC_CheckInteger, 1, ++/*307370*/ OPC_CheckType, MVT::i32, ++/*307372*/ OPC_MoveParent, ++/*307373*/ OPC_MoveChild7, ++/*307374*/ OPC_CheckInteger, 1, ++/*307376*/ OPC_CheckType, MVT::i32, ++/*307378*/ OPC_MoveParent, ++/*307379*/ OPC_MoveChild, 8, ++/*307381*/ OPC_CheckInteger, 1, ++/*307383*/ OPC_CheckType, MVT::i32, ++/*307385*/ OPC_MoveParent, ++/*307386*/ OPC_MoveChild, 9, ++/*307388*/ OPC_CheckInteger, 1, ++/*307390*/ OPC_CheckType, MVT::i32, ++/*307392*/ OPC_MoveParent, ++/*307393*/ OPC_MoveChild, 10, ++/*307395*/ OPC_CheckInteger, 1, ++/*307397*/ OPC_CheckType, MVT::i32, ++/*307399*/ OPC_MoveParent, ++/*307400*/ OPC_MoveChild, 11, ++/*307402*/ OPC_CheckInteger, 1, ++/*307404*/ OPC_CheckType, MVT::i32, ++/*307406*/ OPC_MoveParent, ++/*307407*/ OPC_MoveChild, 12, ++/*307409*/ OPC_CheckInteger, 1, ++/*307411*/ OPC_CheckType, MVT::i32, ++/*307413*/ OPC_MoveParent, ++/*307414*/ OPC_MoveChild, 13, ++/*307416*/ OPC_CheckInteger, 1, ++/*307418*/ OPC_CheckType, MVT::i32, ++/*307420*/ OPC_MoveParent, ++/*307421*/ OPC_MoveChild, 14, ++/*307423*/ OPC_CheckInteger, 1, ++/*307425*/ OPC_CheckType, MVT::i32, ++/*307427*/ OPC_MoveParent, ++/*307428*/ OPC_MoveChild, 15, ++/*307430*/ OPC_CheckInteger, 1, ++/*307432*/ OPC_CheckType, MVT::i32, ++/*307434*/ OPC_MoveParent, ++/*307435*/ OPC_MoveChild, 16, ++/*307437*/ OPC_CheckInteger, 1, ++/*307439*/ OPC_CheckType, MVT::i32, ++/*307441*/ OPC_MoveParent, ++/*307442*/ OPC_MoveChild, 17, ++/*307444*/ OPC_CheckInteger, 1, ++/*307446*/ OPC_CheckType, MVT::i32, ++/*307448*/ OPC_MoveParent, ++/*307449*/ OPC_MoveChild, 18, ++/*307451*/ OPC_CheckInteger, 1, ++/*307453*/ OPC_CheckType, MVT::i32, ++/*307455*/ OPC_MoveParent, ++/*307456*/ OPC_MoveChild, 19, ++/*307458*/ OPC_CheckInteger, 1, ++/*307460*/ OPC_CheckType, MVT::i32, ++/*307462*/ OPC_MoveParent, ++/*307463*/ OPC_MoveChild, 20, ++/*307465*/ OPC_CheckInteger, 1, ++/*307467*/ OPC_CheckType, MVT::i32, ++/*307469*/ OPC_MoveParent, ++/*307470*/ OPC_MoveChild, 21, ++/*307472*/ OPC_CheckInteger, 1, ++/*307474*/ OPC_CheckType, MVT::i32, ++/*307476*/ OPC_MoveParent, ++/*307477*/ OPC_MoveChild, 22, ++/*307479*/ OPC_CheckInteger, 1, ++/*307481*/ OPC_CheckType, MVT::i32, ++/*307483*/ OPC_MoveParent, ++/*307484*/ OPC_MoveChild, 23, ++/*307486*/ OPC_CheckInteger, 1, ++/*307488*/ OPC_CheckType, MVT::i32, ++/*307490*/ OPC_MoveParent, ++/*307491*/ OPC_MoveChild, 24, ++/*307493*/ OPC_CheckInteger, 1, ++/*307495*/ OPC_CheckType, MVT::i32, ++/*307497*/ OPC_MoveParent, ++/*307498*/ OPC_MoveChild, 25, ++/*307500*/ OPC_CheckInteger, 1, ++/*307502*/ OPC_CheckType, MVT::i32, ++/*307504*/ OPC_MoveParent, ++/*307505*/ OPC_MoveChild, 26, ++/*307507*/ OPC_CheckInteger, 1, ++/*307509*/ OPC_CheckType, MVT::i32, ++/*307511*/ OPC_MoveParent, ++/*307512*/ OPC_MoveChild, 27, ++/*307514*/ OPC_CheckInteger, 1, ++/*307516*/ OPC_CheckType, MVT::i32, ++/*307518*/ OPC_MoveParent, ++/*307519*/ OPC_MoveChild, 28, ++/*307521*/ OPC_CheckInteger, 1, ++/*307523*/ OPC_CheckType, MVT::i32, ++/*307525*/ OPC_MoveParent, ++/*307526*/ OPC_MoveChild, 29, ++/*307528*/ OPC_CheckInteger, 1, ++/*307530*/ OPC_CheckType, MVT::i32, ++/*307532*/ OPC_MoveParent, ++/*307533*/ OPC_MoveChild, 30, ++/*307535*/ OPC_CheckInteger, 1, ++/*307537*/ OPC_CheckType, MVT::i32, ++/*307539*/ OPC_MoveParent, ++/*307540*/ OPC_MoveChild, 31, ++/*307542*/ OPC_CheckInteger, 1, ++/*307544*/ OPC_CheckType, MVT::i32, ++/*307546*/ OPC_MoveParent, ++/*307547*/ OPC_MoveParent, ++/*307548*/ OPC_CheckChild1Same, 1, ++/*307550*/ OPC_MoveParent, ++/*307551*/ OPC_CheckChild1Same, 0, ++/*307553*/ OPC_MoveParent, ++/*307554*/ OPC_MoveParent, ++/*307555*/ OPC_MoveChild1, ++/*307556*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*307559*/ OPC_CheckChild0Integer, 1, ++/*307561*/ OPC_CheckChild0Type, MVT::i32, ++/*307563*/ OPC_CheckChild1Integer, 1, ++/*307565*/ OPC_CheckChild1Type, MVT::i32, ++/*307567*/ OPC_CheckChild2Integer, 1, ++/*307569*/ OPC_CheckChild2Type, MVT::i32, ++/*307571*/ OPC_CheckChild3Integer, 1, ++/*307573*/ OPC_CheckChild3Type, MVT::i32, ++/*307575*/ OPC_CheckChild4Integer, 1, ++/*307577*/ OPC_CheckChild4Type, MVT::i32, ++/*307579*/ OPC_MoveChild5, ++/*307580*/ OPC_CheckInteger, 1, ++/*307582*/ OPC_CheckType, MVT::i32, ++/*307584*/ OPC_MoveParent, ++/*307585*/ OPC_MoveChild6, ++/*307586*/ OPC_CheckInteger, 1, ++/*307588*/ OPC_CheckType, MVT::i32, ++/*307590*/ OPC_MoveParent, ++/*307591*/ OPC_MoveChild7, ++/*307592*/ OPC_CheckInteger, 1, ++/*307594*/ OPC_CheckType, MVT::i32, ++/*307596*/ OPC_MoveParent, ++/*307597*/ OPC_MoveChild, 8, ++/*307599*/ OPC_CheckInteger, 1, ++/*307601*/ OPC_CheckType, MVT::i32, ++/*307603*/ OPC_MoveParent, ++/*307604*/ OPC_MoveChild, 9, ++/*307606*/ OPC_CheckInteger, 1, ++/*307608*/ OPC_CheckType, MVT::i32, ++/*307610*/ OPC_MoveParent, ++/*307611*/ OPC_MoveChild, 10, ++/*307613*/ OPC_CheckInteger, 1, ++/*307615*/ OPC_CheckType, MVT::i32, ++/*307617*/ OPC_MoveParent, ++/*307618*/ OPC_MoveChild, 11, ++/*307620*/ OPC_CheckInteger, 1, ++/*307622*/ OPC_CheckType, MVT::i32, ++/*307624*/ OPC_MoveParent, ++/*307625*/ OPC_MoveChild, 12, ++/*307627*/ OPC_CheckInteger, 1, ++/*307629*/ OPC_CheckType, MVT::i32, ++/*307631*/ OPC_MoveParent, ++/*307632*/ OPC_MoveChild, 13, ++/*307634*/ OPC_CheckInteger, 1, ++/*307636*/ OPC_CheckType, MVT::i32, ++/*307638*/ OPC_MoveParent, ++/*307639*/ OPC_MoveChild, 14, ++/*307641*/ OPC_CheckInteger, 1, ++/*307643*/ OPC_CheckType, MVT::i32, ++/*307645*/ OPC_MoveParent, ++/*307646*/ OPC_MoveChild, 15, ++/*307648*/ OPC_CheckInteger, 1, ++/*307650*/ OPC_CheckType, MVT::i32, ++/*307652*/ OPC_MoveParent, ++/*307653*/ OPC_MoveChild, 16, ++/*307655*/ OPC_CheckInteger, 1, ++/*307657*/ OPC_CheckType, MVT::i32, ++/*307659*/ OPC_MoveParent, ++/*307660*/ OPC_MoveChild, 17, ++/*307662*/ OPC_CheckInteger, 1, ++/*307664*/ OPC_CheckType, MVT::i32, ++/*307666*/ OPC_MoveParent, ++/*307667*/ OPC_MoveChild, 18, ++/*307669*/ OPC_CheckInteger, 1, ++/*307671*/ OPC_CheckType, MVT::i32, ++/*307673*/ OPC_MoveParent, ++/*307674*/ OPC_MoveChild, 19, ++/*307676*/ OPC_CheckInteger, 1, ++/*307678*/ OPC_CheckType, MVT::i32, ++/*307680*/ OPC_MoveParent, ++/*307681*/ OPC_MoveChild, 20, ++/*307683*/ OPC_CheckInteger, 1, ++/*307685*/ OPC_CheckType, MVT::i32, ++/*307687*/ OPC_MoveParent, ++/*307688*/ OPC_MoveChild, 21, ++/*307690*/ OPC_CheckInteger, 1, ++/*307692*/ OPC_CheckType, MVT::i32, ++/*307694*/ OPC_MoveParent, ++/*307695*/ OPC_MoveChild, 22, ++/*307697*/ OPC_CheckInteger, 1, ++/*307699*/ OPC_CheckType, MVT::i32, ++/*307701*/ OPC_MoveParent, ++/*307702*/ OPC_MoveChild, 23, ++/*307704*/ OPC_CheckInteger, 1, ++/*307706*/ OPC_CheckType, MVT::i32, ++/*307708*/ OPC_MoveParent, ++/*307709*/ OPC_MoveChild, 24, ++/*307711*/ OPC_CheckInteger, 1, ++/*307713*/ OPC_CheckType, MVT::i32, ++/*307715*/ OPC_MoveParent, ++/*307716*/ OPC_MoveChild, 25, ++/*307718*/ OPC_CheckInteger, 1, ++/*307720*/ OPC_CheckType, MVT::i32, ++/*307722*/ OPC_MoveParent, ++/*307723*/ OPC_MoveChild, 26, ++/*307725*/ OPC_CheckInteger, 1, ++/*307727*/ OPC_CheckType, MVT::i32, ++/*307729*/ OPC_MoveParent, ++/*307730*/ OPC_MoveChild, 27, ++/*307732*/ OPC_CheckInteger, 1, ++/*307734*/ OPC_CheckType, MVT::i32, ++/*307736*/ OPC_MoveParent, ++/*307737*/ OPC_MoveChild, 28, ++/*307739*/ OPC_CheckInteger, 1, ++/*307741*/ OPC_CheckType, MVT::i32, ++/*307743*/ OPC_MoveParent, ++/*307744*/ OPC_MoveChild, 29, ++/*307746*/ OPC_CheckInteger, 1, ++/*307748*/ OPC_CheckType, MVT::i32, ++/*307750*/ OPC_MoveParent, ++/*307751*/ OPC_MoveChild, 30, ++/*307753*/ OPC_CheckInteger, 1, ++/*307755*/ OPC_CheckType, MVT::i32, ++/*307757*/ OPC_MoveParent, ++/*307758*/ OPC_MoveChild, 31, ++/*307760*/ OPC_CheckInteger, 1, ++/*307762*/ OPC_CheckType, MVT::i32, ++/*307764*/ OPC_MoveParent, ++/*307765*/ OPC_CheckType, MVT::v32i8, ++/*307767*/ OPC_MoveParent, ++/*307768*/ OPC_CheckType, MVT::v32i8, ++/*307770*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*307772*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a), LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*307780*/ /*Scope*/ 59|128,3/*443*/, /*->308225*/ ++/*307782*/ OPC_CheckChild0Same, 1, ++/*307784*/ OPC_MoveChild1, ++/*307785*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*307788*/ OPC_CheckChild0Integer, 1, ++/*307790*/ OPC_CheckChild0Type, MVT::i32, ++/*307792*/ OPC_CheckChild1Integer, 1, ++/*307794*/ OPC_CheckChild1Type, MVT::i32, ++/*307796*/ OPC_CheckChild2Integer, 1, ++/*307798*/ OPC_CheckChild2Type, MVT::i32, ++/*307800*/ OPC_CheckChild3Integer, 1, ++/*307802*/ OPC_CheckChild3Type, MVT::i32, ++/*307804*/ OPC_CheckChild4Integer, 1, ++/*307806*/ OPC_CheckChild4Type, MVT::i32, ++/*307808*/ OPC_MoveChild5, ++/*307809*/ OPC_CheckInteger, 1, ++/*307811*/ OPC_CheckType, MVT::i32, ++/*307813*/ OPC_MoveParent, ++/*307814*/ OPC_MoveChild6, ++/*307815*/ OPC_CheckInteger, 1, ++/*307817*/ OPC_CheckType, MVT::i32, ++/*307819*/ OPC_MoveParent, ++/*307820*/ OPC_MoveChild7, ++/*307821*/ OPC_CheckInteger, 1, ++/*307823*/ OPC_CheckType, MVT::i32, ++/*307825*/ OPC_MoveParent, ++/*307826*/ OPC_MoveChild, 8, ++/*307828*/ OPC_CheckInteger, 1, ++/*307830*/ OPC_CheckType, MVT::i32, ++/*307832*/ OPC_MoveParent, ++/*307833*/ OPC_MoveChild, 9, ++/*307835*/ OPC_CheckInteger, 1, ++/*307837*/ OPC_CheckType, MVT::i32, ++/*307839*/ OPC_MoveParent, ++/*307840*/ OPC_MoveChild, 10, ++/*307842*/ OPC_CheckInteger, 1, ++/*307844*/ OPC_CheckType, MVT::i32, ++/*307846*/ OPC_MoveParent, ++/*307847*/ OPC_MoveChild, 11, ++/*307849*/ OPC_CheckInteger, 1, ++/*307851*/ OPC_CheckType, MVT::i32, ++/*307853*/ OPC_MoveParent, ++/*307854*/ OPC_MoveChild, 12, ++/*307856*/ OPC_CheckInteger, 1, ++/*307858*/ OPC_CheckType, MVT::i32, ++/*307860*/ OPC_MoveParent, ++/*307861*/ OPC_MoveChild, 13, ++/*307863*/ OPC_CheckInteger, 1, ++/*307865*/ OPC_CheckType, MVT::i32, ++/*307867*/ OPC_MoveParent, ++/*307868*/ OPC_MoveChild, 14, ++/*307870*/ OPC_CheckInteger, 1, ++/*307872*/ OPC_CheckType, MVT::i32, ++/*307874*/ OPC_MoveParent, ++/*307875*/ OPC_MoveChild, 15, ++/*307877*/ OPC_CheckInteger, 1, ++/*307879*/ OPC_CheckType, MVT::i32, ++/*307881*/ OPC_MoveParent, ++/*307882*/ OPC_MoveChild, 16, ++/*307884*/ OPC_CheckInteger, 1, ++/*307886*/ OPC_CheckType, MVT::i32, ++/*307888*/ OPC_MoveParent, ++/*307889*/ OPC_MoveChild, 17, ++/*307891*/ OPC_CheckInteger, 1, ++/*307893*/ OPC_CheckType, MVT::i32, ++/*307895*/ OPC_MoveParent, ++/*307896*/ OPC_MoveChild, 18, ++/*307898*/ OPC_CheckInteger, 1, ++/*307900*/ OPC_CheckType, MVT::i32, ++/*307902*/ OPC_MoveParent, ++/*307903*/ OPC_MoveChild, 19, ++/*307905*/ OPC_CheckInteger, 1, ++/*307907*/ OPC_CheckType, MVT::i32, ++/*307909*/ OPC_MoveParent, ++/*307910*/ OPC_MoveChild, 20, ++/*307912*/ OPC_CheckInteger, 1, ++/*307914*/ OPC_CheckType, MVT::i32, ++/*307916*/ OPC_MoveParent, ++/*307917*/ OPC_MoveChild, 21, ++/*307919*/ OPC_CheckInteger, 1, ++/*307921*/ OPC_CheckType, MVT::i32, ++/*307923*/ OPC_MoveParent, ++/*307924*/ OPC_MoveChild, 22, ++/*307926*/ OPC_CheckInteger, 1, ++/*307928*/ OPC_CheckType, MVT::i32, ++/*307930*/ OPC_MoveParent, ++/*307931*/ OPC_MoveChild, 23, ++/*307933*/ OPC_CheckInteger, 1, ++/*307935*/ OPC_CheckType, MVT::i32, ++/*307937*/ OPC_MoveParent, ++/*307938*/ OPC_MoveChild, 24, ++/*307940*/ OPC_CheckInteger, 1, ++/*307942*/ OPC_CheckType, MVT::i32, ++/*307944*/ OPC_MoveParent, ++/*307945*/ OPC_MoveChild, 25, ++/*307947*/ OPC_CheckInteger, 1, ++/*307949*/ OPC_CheckType, MVT::i32, ++/*307951*/ OPC_MoveParent, ++/*307952*/ OPC_MoveChild, 26, ++/*307954*/ OPC_CheckInteger, 1, ++/*307956*/ OPC_CheckType, MVT::i32, ++/*307958*/ OPC_MoveParent, ++/*307959*/ OPC_MoveChild, 27, ++/*307961*/ OPC_CheckInteger, 1, ++/*307963*/ OPC_CheckType, MVT::i32, ++/*307965*/ OPC_MoveParent, ++/*307966*/ OPC_MoveChild, 28, ++/*307968*/ OPC_CheckInteger, 1, ++/*307970*/ OPC_CheckType, MVT::i32, ++/*307972*/ OPC_MoveParent, ++/*307973*/ OPC_MoveChild, 29, ++/*307975*/ OPC_CheckInteger, 1, ++/*307977*/ OPC_CheckType, MVT::i32, ++/*307979*/ OPC_MoveParent, ++/*307980*/ OPC_MoveChild, 30, ++/*307982*/ OPC_CheckInteger, 1, ++/*307984*/ OPC_CheckType, MVT::i32, ++/*307986*/ OPC_MoveParent, ++/*307987*/ OPC_MoveChild, 31, ++/*307989*/ OPC_CheckInteger, 1, ++/*307991*/ OPC_CheckType, MVT::i32, ++/*307993*/ OPC_MoveParent, ++/*307994*/ OPC_MoveParent, ++/*307995*/ OPC_MoveParent, ++/*307996*/ OPC_CheckChild1Same, 0, ++/*307998*/ OPC_MoveParent, ++/*307999*/ OPC_MoveParent, ++/*308000*/ OPC_MoveChild1, ++/*308001*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*308004*/ OPC_CheckChild0Integer, 1, ++/*308006*/ OPC_CheckChild0Type, MVT::i32, ++/*308008*/ OPC_CheckChild1Integer, 1, ++/*308010*/ OPC_CheckChild1Type, MVT::i32, ++/*308012*/ OPC_CheckChild2Integer, 1, ++/*308014*/ OPC_CheckChild2Type, MVT::i32, ++/*308016*/ OPC_CheckChild3Integer, 1, ++/*308018*/ OPC_CheckChild3Type, MVT::i32, ++/*308020*/ OPC_CheckChild4Integer, 1, ++/*308022*/ OPC_CheckChild4Type, MVT::i32, ++/*308024*/ OPC_MoveChild5, ++/*308025*/ OPC_CheckInteger, 1, ++/*308027*/ OPC_CheckType, MVT::i32, ++/*308029*/ OPC_MoveParent, ++/*308030*/ OPC_MoveChild6, ++/*308031*/ OPC_CheckInteger, 1, ++/*308033*/ OPC_CheckType, MVT::i32, ++/*308035*/ OPC_MoveParent, ++/*308036*/ OPC_MoveChild7, ++/*308037*/ OPC_CheckInteger, 1, ++/*308039*/ OPC_CheckType, MVT::i32, ++/*308041*/ OPC_MoveParent, ++/*308042*/ OPC_MoveChild, 8, ++/*308044*/ OPC_CheckInteger, 1, ++/*308046*/ OPC_CheckType, MVT::i32, ++/*308048*/ OPC_MoveParent, ++/*308049*/ OPC_MoveChild, 9, ++/*308051*/ OPC_CheckInteger, 1, ++/*308053*/ OPC_CheckType, MVT::i32, ++/*308055*/ OPC_MoveParent, ++/*308056*/ OPC_MoveChild, 10, ++/*308058*/ OPC_CheckInteger, 1, ++/*308060*/ OPC_CheckType, MVT::i32, ++/*308062*/ OPC_MoveParent, ++/*308063*/ OPC_MoveChild, 11, ++/*308065*/ OPC_CheckInteger, 1, ++/*308067*/ OPC_CheckType, MVT::i32, ++/*308069*/ OPC_MoveParent, ++/*308070*/ OPC_MoveChild, 12, ++/*308072*/ OPC_CheckInteger, 1, ++/*308074*/ OPC_CheckType, MVT::i32, ++/*308076*/ OPC_MoveParent, ++/*308077*/ OPC_MoveChild, 13, ++/*308079*/ OPC_CheckInteger, 1, ++/*308081*/ OPC_CheckType, MVT::i32, ++/*308083*/ OPC_MoveParent, ++/*308084*/ OPC_MoveChild, 14, ++/*308086*/ OPC_CheckInteger, 1, ++/*308088*/ OPC_CheckType, MVT::i32, ++/*308090*/ OPC_MoveParent, ++/*308091*/ OPC_MoveChild, 15, ++/*308093*/ OPC_CheckInteger, 1, ++/*308095*/ OPC_CheckType, MVT::i32, ++/*308097*/ OPC_MoveParent, ++/*308098*/ OPC_MoveChild, 16, ++/*308100*/ OPC_CheckInteger, 1, ++/*308102*/ OPC_CheckType, MVT::i32, ++/*308104*/ OPC_MoveParent, ++/*308105*/ OPC_MoveChild, 17, ++/*308107*/ OPC_CheckInteger, 1, ++/*308109*/ OPC_CheckType, MVT::i32, ++/*308111*/ OPC_MoveParent, ++/*308112*/ OPC_MoveChild, 18, ++/*308114*/ OPC_CheckInteger, 1, ++/*308116*/ OPC_CheckType, MVT::i32, ++/*308118*/ OPC_MoveParent, ++/*308119*/ OPC_MoveChild, 19, ++/*308121*/ OPC_CheckInteger, 1, ++/*308123*/ OPC_CheckType, MVT::i32, ++/*308125*/ OPC_MoveParent, ++/*308126*/ OPC_MoveChild, 20, ++/*308128*/ OPC_CheckInteger, 1, ++/*308130*/ OPC_CheckType, MVT::i32, ++/*308132*/ OPC_MoveParent, ++/*308133*/ OPC_MoveChild, 21, ++/*308135*/ OPC_CheckInteger, 1, ++/*308137*/ OPC_CheckType, MVT::i32, ++/*308139*/ OPC_MoveParent, ++/*308140*/ OPC_MoveChild, 22, ++/*308142*/ OPC_CheckInteger, 1, ++/*308144*/ OPC_CheckType, MVT::i32, ++/*308146*/ OPC_MoveParent, ++/*308147*/ OPC_MoveChild, 23, ++/*308149*/ OPC_CheckInteger, 1, ++/*308151*/ OPC_CheckType, MVT::i32, ++/*308153*/ OPC_MoveParent, ++/*308154*/ OPC_MoveChild, 24, ++/*308156*/ OPC_CheckInteger, 1, ++/*308158*/ OPC_CheckType, MVT::i32, ++/*308160*/ OPC_MoveParent, ++/*308161*/ OPC_MoveChild, 25, ++/*308163*/ OPC_CheckInteger, 1, ++/*308165*/ OPC_CheckType, MVT::i32, ++/*308167*/ OPC_MoveParent, ++/*308168*/ OPC_MoveChild, 26, ++/*308170*/ OPC_CheckInteger, 1, ++/*308172*/ OPC_CheckType, MVT::i32, ++/*308174*/ OPC_MoveParent, ++/*308175*/ OPC_MoveChild, 27, ++/*308177*/ OPC_CheckInteger, 1, ++/*308179*/ OPC_CheckType, MVT::i32, ++/*308181*/ OPC_MoveParent, ++/*308182*/ OPC_MoveChild, 28, ++/*308184*/ OPC_CheckInteger, 1, ++/*308186*/ OPC_CheckType, MVT::i32, ++/*308188*/ OPC_MoveParent, ++/*308189*/ OPC_MoveChild, 29, ++/*308191*/ OPC_CheckInteger, 1, ++/*308193*/ OPC_CheckType, MVT::i32, ++/*308195*/ OPC_MoveParent, ++/*308196*/ OPC_MoveChild, 30, ++/*308198*/ OPC_CheckInteger, 1, ++/*308200*/ OPC_CheckType, MVT::i32, ++/*308202*/ OPC_MoveParent, ++/*308203*/ OPC_MoveChild, 31, ++/*308205*/ OPC_CheckInteger, 1, ++/*308207*/ OPC_CheckType, MVT::i32, ++/*308209*/ OPC_MoveParent, ++/*308210*/ OPC_CheckType, MVT::v32i8, ++/*308212*/ OPC_MoveParent, ++/*308213*/ OPC_CheckType, MVT::v32i8, ++/*308215*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*308217*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*308225*/ /*Scope*/ 59|128,3/*443*/, /*->308670*/ ++/*308227*/ OPC_MoveChild0, ++/*308228*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*308231*/ OPC_CheckChild0Integer, 1, ++/*308233*/ OPC_CheckChild0Type, MVT::i32, ++/*308235*/ OPC_CheckChild1Integer, 1, ++/*308237*/ OPC_CheckChild1Type, MVT::i32, ++/*308239*/ OPC_CheckChild2Integer, 1, ++/*308241*/ OPC_CheckChild2Type, MVT::i32, ++/*308243*/ OPC_CheckChild3Integer, 1, ++/*308245*/ OPC_CheckChild3Type, MVT::i32, ++/*308247*/ OPC_CheckChild4Integer, 1, ++/*308249*/ OPC_CheckChild4Type, MVT::i32, ++/*308251*/ OPC_MoveChild5, ++/*308252*/ OPC_CheckInteger, 1, ++/*308254*/ OPC_CheckType, MVT::i32, ++/*308256*/ OPC_MoveParent, ++/*308257*/ OPC_MoveChild6, ++/*308258*/ OPC_CheckInteger, 1, ++/*308260*/ OPC_CheckType, MVT::i32, ++/*308262*/ OPC_MoveParent, ++/*308263*/ OPC_MoveChild7, ++/*308264*/ OPC_CheckInteger, 1, ++/*308266*/ OPC_CheckType, MVT::i32, ++/*308268*/ OPC_MoveParent, ++/*308269*/ OPC_MoveChild, 8, ++/*308271*/ OPC_CheckInteger, 1, ++/*308273*/ OPC_CheckType, MVT::i32, ++/*308275*/ OPC_MoveParent, ++/*308276*/ OPC_MoveChild, 9, ++/*308278*/ OPC_CheckInteger, 1, ++/*308280*/ OPC_CheckType, MVT::i32, ++/*308282*/ OPC_MoveParent, ++/*308283*/ OPC_MoveChild, 10, ++/*308285*/ OPC_CheckInteger, 1, ++/*308287*/ OPC_CheckType, MVT::i32, ++/*308289*/ OPC_MoveParent, ++/*308290*/ OPC_MoveChild, 11, ++/*308292*/ OPC_CheckInteger, 1, ++/*308294*/ OPC_CheckType, MVT::i32, ++/*308296*/ OPC_MoveParent, ++/*308297*/ OPC_MoveChild, 12, ++/*308299*/ OPC_CheckInteger, 1, ++/*308301*/ OPC_CheckType, MVT::i32, ++/*308303*/ OPC_MoveParent, ++/*308304*/ OPC_MoveChild, 13, ++/*308306*/ OPC_CheckInteger, 1, ++/*308308*/ OPC_CheckType, MVT::i32, ++/*308310*/ OPC_MoveParent, ++/*308311*/ OPC_MoveChild, 14, ++/*308313*/ OPC_CheckInteger, 1, ++/*308315*/ OPC_CheckType, MVT::i32, ++/*308317*/ OPC_MoveParent, ++/*308318*/ OPC_MoveChild, 15, ++/*308320*/ OPC_CheckInteger, 1, ++/*308322*/ OPC_CheckType, MVT::i32, ++/*308324*/ OPC_MoveParent, ++/*308325*/ OPC_MoveChild, 16, ++/*308327*/ OPC_CheckInteger, 1, ++/*308329*/ OPC_CheckType, MVT::i32, ++/*308331*/ OPC_MoveParent, ++/*308332*/ OPC_MoveChild, 17, ++/*308334*/ OPC_CheckInteger, 1, ++/*308336*/ OPC_CheckType, MVT::i32, ++/*308338*/ OPC_MoveParent, ++/*308339*/ OPC_MoveChild, 18, ++/*308341*/ OPC_CheckInteger, 1, ++/*308343*/ OPC_CheckType, MVT::i32, ++/*308345*/ OPC_MoveParent, ++/*308346*/ OPC_MoveChild, 19, ++/*308348*/ OPC_CheckInteger, 1, ++/*308350*/ OPC_CheckType, MVT::i32, ++/*308352*/ OPC_MoveParent, ++/*308353*/ OPC_MoveChild, 20, ++/*308355*/ OPC_CheckInteger, 1, ++/*308357*/ OPC_CheckType, MVT::i32, ++/*308359*/ OPC_MoveParent, ++/*308360*/ OPC_MoveChild, 21, ++/*308362*/ OPC_CheckInteger, 1, ++/*308364*/ OPC_CheckType, MVT::i32, ++/*308366*/ OPC_MoveParent, ++/*308367*/ OPC_MoveChild, 22, ++/*308369*/ OPC_CheckInteger, 1, ++/*308371*/ OPC_CheckType, MVT::i32, ++/*308373*/ OPC_MoveParent, ++/*308374*/ OPC_MoveChild, 23, ++/*308376*/ OPC_CheckInteger, 1, ++/*308378*/ OPC_CheckType, MVT::i32, ++/*308380*/ OPC_MoveParent, ++/*308381*/ OPC_MoveChild, 24, ++/*308383*/ OPC_CheckInteger, 1, ++/*308385*/ OPC_CheckType, MVT::i32, ++/*308387*/ OPC_MoveParent, ++/*308388*/ OPC_MoveChild, 25, ++/*308390*/ OPC_CheckInteger, 1, ++/*308392*/ OPC_CheckType, MVT::i32, ++/*308394*/ OPC_MoveParent, ++/*308395*/ OPC_MoveChild, 26, ++/*308397*/ OPC_CheckInteger, 1, ++/*308399*/ OPC_CheckType, MVT::i32, ++/*308401*/ OPC_MoveParent, ++/*308402*/ OPC_MoveChild, 27, ++/*308404*/ OPC_CheckInteger, 1, ++/*308406*/ OPC_CheckType, MVT::i32, ++/*308408*/ OPC_MoveParent, ++/*308409*/ OPC_MoveChild, 28, ++/*308411*/ OPC_CheckInteger, 1, ++/*308413*/ OPC_CheckType, MVT::i32, ++/*308415*/ OPC_MoveParent, ++/*308416*/ OPC_MoveChild, 29, ++/*308418*/ OPC_CheckInteger, 1, ++/*308420*/ OPC_CheckType, MVT::i32, ++/*308422*/ OPC_MoveParent, ++/*308423*/ OPC_MoveChild, 30, ++/*308425*/ OPC_CheckInteger, 1, ++/*308427*/ OPC_CheckType, MVT::i32, ++/*308429*/ OPC_MoveParent, ++/*308430*/ OPC_MoveChild, 31, ++/*308432*/ OPC_CheckInteger, 1, ++/*308434*/ OPC_CheckType, MVT::i32, ++/*308436*/ OPC_MoveParent, ++/*308437*/ OPC_MoveParent, ++/*308438*/ OPC_CheckChild1Same, 0, ++/*308440*/ OPC_MoveParent, ++/*308441*/ OPC_CheckChild1Same, 1, ++/*308443*/ OPC_MoveParent, ++/*308444*/ OPC_MoveParent, ++/*308445*/ OPC_MoveChild1, ++/*308446*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*308449*/ OPC_CheckChild0Integer, 1, ++/*308451*/ OPC_CheckChild0Type, MVT::i32, ++/*308453*/ OPC_CheckChild1Integer, 1, ++/*308455*/ OPC_CheckChild1Type, MVT::i32, ++/*308457*/ OPC_CheckChild2Integer, 1, ++/*308459*/ OPC_CheckChild2Type, MVT::i32, ++/*308461*/ OPC_CheckChild3Integer, 1, ++/*308463*/ OPC_CheckChild3Type, MVT::i32, ++/*308465*/ OPC_CheckChild4Integer, 1, ++/*308467*/ OPC_CheckChild4Type, MVT::i32, ++/*308469*/ OPC_MoveChild5, ++/*308470*/ OPC_CheckInteger, 1, ++/*308472*/ OPC_CheckType, MVT::i32, ++/*308474*/ OPC_MoveParent, ++/*308475*/ OPC_MoveChild6, ++/*308476*/ OPC_CheckInteger, 1, ++/*308478*/ OPC_CheckType, MVT::i32, ++/*308480*/ OPC_MoveParent, ++/*308481*/ OPC_MoveChild7, ++/*308482*/ OPC_CheckInteger, 1, ++/*308484*/ OPC_CheckType, MVT::i32, ++/*308486*/ OPC_MoveParent, ++/*308487*/ OPC_MoveChild, 8, ++/*308489*/ OPC_CheckInteger, 1, ++/*308491*/ OPC_CheckType, MVT::i32, ++/*308493*/ OPC_MoveParent, ++/*308494*/ OPC_MoveChild, 9, ++/*308496*/ OPC_CheckInteger, 1, ++/*308498*/ OPC_CheckType, MVT::i32, ++/*308500*/ OPC_MoveParent, ++/*308501*/ OPC_MoveChild, 10, ++/*308503*/ OPC_CheckInteger, 1, ++/*308505*/ OPC_CheckType, MVT::i32, ++/*308507*/ OPC_MoveParent, ++/*308508*/ OPC_MoveChild, 11, ++/*308510*/ OPC_CheckInteger, 1, ++/*308512*/ OPC_CheckType, MVT::i32, ++/*308514*/ OPC_MoveParent, ++/*308515*/ OPC_MoveChild, 12, ++/*308517*/ OPC_CheckInteger, 1, ++/*308519*/ OPC_CheckType, MVT::i32, ++/*308521*/ OPC_MoveParent, ++/*308522*/ OPC_MoveChild, 13, ++/*308524*/ OPC_CheckInteger, 1, ++/*308526*/ OPC_CheckType, MVT::i32, ++/*308528*/ OPC_MoveParent, ++/*308529*/ OPC_MoveChild, 14, ++/*308531*/ OPC_CheckInteger, 1, ++/*308533*/ OPC_CheckType, MVT::i32, ++/*308535*/ OPC_MoveParent, ++/*308536*/ OPC_MoveChild, 15, ++/*308538*/ OPC_CheckInteger, 1, ++/*308540*/ OPC_CheckType, MVT::i32, ++/*308542*/ OPC_MoveParent, ++/*308543*/ OPC_MoveChild, 16, ++/*308545*/ OPC_CheckInteger, 1, ++/*308547*/ OPC_CheckType, MVT::i32, ++/*308549*/ OPC_MoveParent, ++/*308550*/ OPC_MoveChild, 17, ++/*308552*/ OPC_CheckInteger, 1, ++/*308554*/ OPC_CheckType, MVT::i32, ++/*308556*/ OPC_MoveParent, ++/*308557*/ OPC_MoveChild, 18, ++/*308559*/ OPC_CheckInteger, 1, ++/*308561*/ OPC_CheckType, MVT::i32, ++/*308563*/ OPC_MoveParent, ++/*308564*/ OPC_MoveChild, 19, ++/*308566*/ OPC_CheckInteger, 1, ++/*308568*/ OPC_CheckType, MVT::i32, ++/*308570*/ OPC_MoveParent, ++/*308571*/ OPC_MoveChild, 20, ++/*308573*/ OPC_CheckInteger, 1, ++/*308575*/ OPC_CheckType, MVT::i32, ++/*308577*/ OPC_MoveParent, ++/*308578*/ OPC_MoveChild, 21, ++/*308580*/ OPC_CheckInteger, 1, ++/*308582*/ OPC_CheckType, MVT::i32, ++/*308584*/ OPC_MoveParent, ++/*308585*/ OPC_MoveChild, 22, ++/*308587*/ OPC_CheckInteger, 1, ++/*308589*/ OPC_CheckType, MVT::i32, ++/*308591*/ OPC_MoveParent, ++/*308592*/ OPC_MoveChild, 23, ++/*308594*/ OPC_CheckInteger, 1, ++/*308596*/ OPC_CheckType, MVT::i32, ++/*308598*/ OPC_MoveParent, ++/*308599*/ OPC_MoveChild, 24, ++/*308601*/ OPC_CheckInteger, 1, ++/*308603*/ OPC_CheckType, MVT::i32, ++/*308605*/ OPC_MoveParent, ++/*308606*/ OPC_MoveChild, 25, ++/*308608*/ OPC_CheckInteger, 1, ++/*308610*/ OPC_CheckType, MVT::i32, ++/*308612*/ OPC_MoveParent, ++/*308613*/ OPC_MoveChild, 26, ++/*308615*/ OPC_CheckInteger, 1, ++/*308617*/ OPC_CheckType, MVT::i32, ++/*308619*/ OPC_MoveParent, ++/*308620*/ OPC_MoveChild, 27, ++/*308622*/ OPC_CheckInteger, 1, ++/*308624*/ OPC_CheckType, MVT::i32, ++/*308626*/ OPC_MoveParent, ++/*308627*/ OPC_MoveChild, 28, ++/*308629*/ OPC_CheckInteger, 1, ++/*308631*/ OPC_CheckType, MVT::i32, ++/*308633*/ OPC_MoveParent, ++/*308634*/ OPC_MoveChild, 29, ++/*308636*/ OPC_CheckInteger, 1, ++/*308638*/ OPC_CheckType, MVT::i32, ++/*308640*/ OPC_MoveParent, ++/*308641*/ OPC_MoveChild, 30, ++/*308643*/ OPC_CheckInteger, 1, ++/*308645*/ OPC_CheckType, MVT::i32, ++/*308647*/ OPC_MoveParent, ++/*308648*/ OPC_MoveChild, 31, ++/*308650*/ OPC_CheckInteger, 1, ++/*308652*/ OPC_CheckType, MVT::i32, ++/*308654*/ OPC_MoveParent, ++/*308655*/ OPC_CheckType, MVT::v32i8, ++/*308657*/ OPC_MoveParent, ++/*308658*/ OPC_CheckType, MVT::v32i8, ++/*308660*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*308662*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b), LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*308670*/ /*Scope*/ 59|128,3/*443*/, /*->309115*/ ++/*308672*/ OPC_CheckChild0Same, 0, ++/*308674*/ OPC_MoveChild1, ++/*308675*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*308678*/ OPC_CheckChild0Integer, 1, ++/*308680*/ OPC_CheckChild0Type, MVT::i32, ++/*308682*/ OPC_CheckChild1Integer, 1, ++/*308684*/ OPC_CheckChild1Type, MVT::i32, ++/*308686*/ OPC_CheckChild2Integer, 1, ++/*308688*/ OPC_CheckChild2Type, MVT::i32, ++/*308690*/ OPC_CheckChild3Integer, 1, ++/*308692*/ OPC_CheckChild3Type, MVT::i32, ++/*308694*/ OPC_CheckChild4Integer, 1, ++/*308696*/ OPC_CheckChild4Type, MVT::i32, ++/*308698*/ OPC_MoveChild5, ++/*308699*/ OPC_CheckInteger, 1, ++/*308701*/ OPC_CheckType, MVT::i32, ++/*308703*/ OPC_MoveParent, ++/*308704*/ OPC_MoveChild6, ++/*308705*/ OPC_CheckInteger, 1, ++/*308707*/ OPC_CheckType, MVT::i32, ++/*308709*/ OPC_MoveParent, ++/*308710*/ OPC_MoveChild7, ++/*308711*/ OPC_CheckInteger, 1, ++/*308713*/ OPC_CheckType, MVT::i32, ++/*308715*/ OPC_MoveParent, ++/*308716*/ OPC_MoveChild, 8, ++/*308718*/ OPC_CheckInteger, 1, ++/*308720*/ OPC_CheckType, MVT::i32, ++/*308722*/ OPC_MoveParent, ++/*308723*/ OPC_MoveChild, 9, ++/*308725*/ OPC_CheckInteger, 1, ++/*308727*/ OPC_CheckType, MVT::i32, ++/*308729*/ OPC_MoveParent, ++/*308730*/ OPC_MoveChild, 10, ++/*308732*/ OPC_CheckInteger, 1, ++/*308734*/ OPC_CheckType, MVT::i32, ++/*308736*/ OPC_MoveParent, ++/*308737*/ OPC_MoveChild, 11, ++/*308739*/ OPC_CheckInteger, 1, ++/*308741*/ OPC_CheckType, MVT::i32, ++/*308743*/ OPC_MoveParent, ++/*308744*/ OPC_MoveChild, 12, ++/*308746*/ OPC_CheckInteger, 1, ++/*308748*/ OPC_CheckType, MVT::i32, ++/*308750*/ OPC_MoveParent, ++/*308751*/ OPC_MoveChild, 13, ++/*308753*/ OPC_CheckInteger, 1, ++/*308755*/ OPC_CheckType, MVT::i32, ++/*308757*/ OPC_MoveParent, ++/*308758*/ OPC_MoveChild, 14, ++/*308760*/ OPC_CheckInteger, 1, ++/*308762*/ OPC_CheckType, MVT::i32, ++/*308764*/ OPC_MoveParent, ++/*308765*/ OPC_MoveChild, 15, ++/*308767*/ OPC_CheckInteger, 1, ++/*308769*/ OPC_CheckType, MVT::i32, ++/*308771*/ OPC_MoveParent, ++/*308772*/ OPC_MoveChild, 16, ++/*308774*/ OPC_CheckInteger, 1, ++/*308776*/ OPC_CheckType, MVT::i32, ++/*308778*/ OPC_MoveParent, ++/*308779*/ OPC_MoveChild, 17, ++/*308781*/ OPC_CheckInteger, 1, ++/*308783*/ OPC_CheckType, MVT::i32, ++/*308785*/ OPC_MoveParent, ++/*308786*/ OPC_MoveChild, 18, ++/*308788*/ OPC_CheckInteger, 1, ++/*308790*/ OPC_CheckType, MVT::i32, ++/*308792*/ OPC_MoveParent, ++/*308793*/ OPC_MoveChild, 19, ++/*308795*/ OPC_CheckInteger, 1, ++/*308797*/ OPC_CheckType, MVT::i32, ++/*308799*/ OPC_MoveParent, ++/*308800*/ OPC_MoveChild, 20, ++/*308802*/ OPC_CheckInteger, 1, ++/*308804*/ OPC_CheckType, MVT::i32, ++/*308806*/ OPC_MoveParent, ++/*308807*/ OPC_MoveChild, 21, ++/*308809*/ OPC_CheckInteger, 1, ++/*308811*/ OPC_CheckType, MVT::i32, ++/*308813*/ OPC_MoveParent, ++/*308814*/ OPC_MoveChild, 22, ++/*308816*/ OPC_CheckInteger, 1, ++/*308818*/ OPC_CheckType, MVT::i32, ++/*308820*/ OPC_MoveParent, ++/*308821*/ OPC_MoveChild, 23, ++/*308823*/ OPC_CheckInteger, 1, ++/*308825*/ OPC_CheckType, MVT::i32, ++/*308827*/ OPC_MoveParent, ++/*308828*/ OPC_MoveChild, 24, ++/*308830*/ OPC_CheckInteger, 1, ++/*308832*/ OPC_CheckType, MVT::i32, ++/*308834*/ OPC_MoveParent, ++/*308835*/ OPC_MoveChild, 25, ++/*308837*/ OPC_CheckInteger, 1, ++/*308839*/ OPC_CheckType, MVT::i32, ++/*308841*/ OPC_MoveParent, ++/*308842*/ OPC_MoveChild, 26, ++/*308844*/ OPC_CheckInteger, 1, ++/*308846*/ OPC_CheckType, MVT::i32, ++/*308848*/ OPC_MoveParent, ++/*308849*/ OPC_MoveChild, 27, ++/*308851*/ OPC_CheckInteger, 1, ++/*308853*/ OPC_CheckType, MVT::i32, ++/*308855*/ OPC_MoveParent, ++/*308856*/ OPC_MoveChild, 28, ++/*308858*/ OPC_CheckInteger, 1, ++/*308860*/ OPC_CheckType, MVT::i32, ++/*308862*/ OPC_MoveParent, ++/*308863*/ OPC_MoveChild, 29, ++/*308865*/ OPC_CheckInteger, 1, ++/*308867*/ OPC_CheckType, MVT::i32, ++/*308869*/ OPC_MoveParent, ++/*308870*/ OPC_MoveChild, 30, ++/*308872*/ OPC_CheckInteger, 1, ++/*308874*/ OPC_CheckType, MVT::i32, ++/*308876*/ OPC_MoveParent, ++/*308877*/ OPC_MoveChild, 31, ++/*308879*/ OPC_CheckInteger, 1, ++/*308881*/ OPC_CheckType, MVT::i32, ++/*308883*/ OPC_MoveParent, ++/*308884*/ OPC_MoveParent, ++/*308885*/ OPC_MoveParent, ++/*308886*/ OPC_CheckChild1Same, 1, ++/*308888*/ OPC_MoveParent, ++/*308889*/ OPC_MoveParent, ++/*308890*/ OPC_MoveChild1, ++/*308891*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*308894*/ OPC_CheckChild0Integer, 1, ++/*308896*/ OPC_CheckChild0Type, MVT::i32, ++/*308898*/ OPC_CheckChild1Integer, 1, ++/*308900*/ OPC_CheckChild1Type, MVT::i32, ++/*308902*/ OPC_CheckChild2Integer, 1, ++/*308904*/ OPC_CheckChild2Type, MVT::i32, ++/*308906*/ OPC_CheckChild3Integer, 1, ++/*308908*/ OPC_CheckChild3Type, MVT::i32, ++/*308910*/ OPC_CheckChild4Integer, 1, ++/*308912*/ OPC_CheckChild4Type, MVT::i32, ++/*308914*/ OPC_MoveChild5, ++/*308915*/ OPC_CheckInteger, 1, ++/*308917*/ OPC_CheckType, MVT::i32, ++/*308919*/ OPC_MoveParent, ++/*308920*/ OPC_MoveChild6, ++/*308921*/ OPC_CheckInteger, 1, ++/*308923*/ OPC_CheckType, MVT::i32, ++/*308925*/ OPC_MoveParent, ++/*308926*/ OPC_MoveChild7, ++/*308927*/ OPC_CheckInteger, 1, ++/*308929*/ OPC_CheckType, MVT::i32, ++/*308931*/ OPC_MoveParent, ++/*308932*/ OPC_MoveChild, 8, ++/*308934*/ OPC_CheckInteger, 1, ++/*308936*/ OPC_CheckType, MVT::i32, ++/*308938*/ OPC_MoveParent, ++/*308939*/ OPC_MoveChild, 9, ++/*308941*/ OPC_CheckInteger, 1, ++/*308943*/ OPC_CheckType, MVT::i32, ++/*308945*/ OPC_MoveParent, ++/*308946*/ OPC_MoveChild, 10, ++/*308948*/ OPC_CheckInteger, 1, ++/*308950*/ OPC_CheckType, MVT::i32, ++/*308952*/ OPC_MoveParent, ++/*308953*/ OPC_MoveChild, 11, ++/*308955*/ OPC_CheckInteger, 1, ++/*308957*/ OPC_CheckType, MVT::i32, ++/*308959*/ OPC_MoveParent, ++/*308960*/ OPC_MoveChild, 12, ++/*308962*/ OPC_CheckInteger, 1, ++/*308964*/ OPC_CheckType, MVT::i32, ++/*308966*/ OPC_MoveParent, ++/*308967*/ OPC_MoveChild, 13, ++/*308969*/ OPC_CheckInteger, 1, ++/*308971*/ OPC_CheckType, MVT::i32, ++/*308973*/ OPC_MoveParent, ++/*308974*/ OPC_MoveChild, 14, ++/*308976*/ OPC_CheckInteger, 1, ++/*308978*/ OPC_CheckType, MVT::i32, ++/*308980*/ OPC_MoveParent, ++/*308981*/ OPC_MoveChild, 15, ++/*308983*/ OPC_CheckInteger, 1, ++/*308985*/ OPC_CheckType, MVT::i32, ++/*308987*/ OPC_MoveParent, ++/*308988*/ OPC_MoveChild, 16, ++/*308990*/ OPC_CheckInteger, 1, ++/*308992*/ OPC_CheckType, MVT::i32, ++/*308994*/ OPC_MoveParent, ++/*308995*/ OPC_MoveChild, 17, ++/*308997*/ OPC_CheckInteger, 1, ++/*308999*/ OPC_CheckType, MVT::i32, ++/*309001*/ OPC_MoveParent, ++/*309002*/ OPC_MoveChild, 18, ++/*309004*/ OPC_CheckInteger, 1, ++/*309006*/ OPC_CheckType, MVT::i32, ++/*309008*/ OPC_MoveParent, ++/*309009*/ OPC_MoveChild, 19, ++/*309011*/ OPC_CheckInteger, 1, ++/*309013*/ OPC_CheckType, MVT::i32, ++/*309015*/ OPC_MoveParent, ++/*309016*/ OPC_MoveChild, 20, ++/*309018*/ OPC_CheckInteger, 1, ++/*309020*/ OPC_CheckType, MVT::i32, ++/*309022*/ OPC_MoveParent, ++/*309023*/ OPC_MoveChild, 21, ++/*309025*/ OPC_CheckInteger, 1, ++/*309027*/ OPC_CheckType, MVT::i32, ++/*309029*/ OPC_MoveParent, ++/*309030*/ OPC_MoveChild, 22, ++/*309032*/ OPC_CheckInteger, 1, ++/*309034*/ OPC_CheckType, MVT::i32, ++/*309036*/ OPC_MoveParent, ++/*309037*/ OPC_MoveChild, 23, ++/*309039*/ OPC_CheckInteger, 1, ++/*309041*/ OPC_CheckType, MVT::i32, ++/*309043*/ OPC_MoveParent, ++/*309044*/ OPC_MoveChild, 24, ++/*309046*/ OPC_CheckInteger, 1, ++/*309048*/ OPC_CheckType, MVT::i32, ++/*309050*/ OPC_MoveParent, ++/*309051*/ OPC_MoveChild, 25, ++/*309053*/ OPC_CheckInteger, 1, ++/*309055*/ OPC_CheckType, MVT::i32, ++/*309057*/ OPC_MoveParent, ++/*309058*/ OPC_MoveChild, 26, ++/*309060*/ OPC_CheckInteger, 1, ++/*309062*/ OPC_CheckType, MVT::i32, ++/*309064*/ OPC_MoveParent, ++/*309065*/ OPC_MoveChild, 27, ++/*309067*/ OPC_CheckInteger, 1, ++/*309069*/ OPC_CheckType, MVT::i32, ++/*309071*/ OPC_MoveParent, ++/*309072*/ OPC_MoveChild, 28, ++/*309074*/ OPC_CheckInteger, 1, ++/*309076*/ OPC_CheckType, MVT::i32, ++/*309078*/ OPC_MoveParent, ++/*309079*/ OPC_MoveChild, 29, ++/*309081*/ OPC_CheckInteger, 1, ++/*309083*/ OPC_CheckType, MVT::i32, ++/*309085*/ OPC_MoveParent, ++/*309086*/ OPC_MoveChild, 30, ++/*309088*/ OPC_CheckInteger, 1, ++/*309090*/ OPC_CheckType, MVT::i32, ++/*309092*/ OPC_MoveParent, ++/*309093*/ OPC_MoveChild, 31, ++/*309095*/ OPC_CheckInteger, 1, ++/*309097*/ OPC_CheckType, MVT::i32, ++/*309099*/ OPC_MoveParent, ++/*309100*/ OPC_CheckType, MVT::v32i8, ++/*309102*/ OPC_MoveParent, ++/*309103*/ OPC_CheckType, MVT::v32i8, ++/*309105*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*309107*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*309115*/ /*Scope*/ 59|128,3/*443*/, /*->309560*/ ++/*309117*/ OPC_CheckChild0Same, 1, ++/*309119*/ OPC_CheckChild1Same, 0, ++/*309121*/ OPC_MoveParent, ++/*309122*/ OPC_MoveChild1, ++/*309123*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*309126*/ OPC_CheckChild0Integer, 1, ++/*309128*/ OPC_CheckChild0Type, MVT::i32, ++/*309130*/ OPC_CheckChild1Integer, 1, ++/*309132*/ OPC_CheckChild1Type, MVT::i32, ++/*309134*/ OPC_CheckChild2Integer, 1, ++/*309136*/ OPC_CheckChild2Type, MVT::i32, ++/*309138*/ OPC_CheckChild3Integer, 1, ++/*309140*/ OPC_CheckChild3Type, MVT::i32, ++/*309142*/ OPC_CheckChild4Integer, 1, ++/*309144*/ OPC_CheckChild4Type, MVT::i32, ++/*309146*/ OPC_MoveChild5, ++/*309147*/ OPC_CheckInteger, 1, ++/*309149*/ OPC_CheckType, MVT::i32, ++/*309151*/ OPC_MoveParent, ++/*309152*/ OPC_MoveChild6, ++/*309153*/ OPC_CheckInteger, 1, ++/*309155*/ OPC_CheckType, MVT::i32, ++/*309157*/ OPC_MoveParent, ++/*309158*/ OPC_MoveChild7, ++/*309159*/ OPC_CheckInteger, 1, ++/*309161*/ OPC_CheckType, MVT::i32, ++/*309163*/ OPC_MoveParent, ++/*309164*/ OPC_MoveChild, 8, ++/*309166*/ OPC_CheckInteger, 1, ++/*309168*/ OPC_CheckType, MVT::i32, ++/*309170*/ OPC_MoveParent, ++/*309171*/ OPC_MoveChild, 9, ++/*309173*/ OPC_CheckInteger, 1, ++/*309175*/ OPC_CheckType, MVT::i32, ++/*309177*/ OPC_MoveParent, ++/*309178*/ OPC_MoveChild, 10, ++/*309180*/ OPC_CheckInteger, 1, ++/*309182*/ OPC_CheckType, MVT::i32, ++/*309184*/ OPC_MoveParent, ++/*309185*/ OPC_MoveChild, 11, ++/*309187*/ OPC_CheckInteger, 1, ++/*309189*/ OPC_CheckType, MVT::i32, ++/*309191*/ OPC_MoveParent, ++/*309192*/ OPC_MoveChild, 12, ++/*309194*/ OPC_CheckInteger, 1, ++/*309196*/ OPC_CheckType, MVT::i32, ++/*309198*/ OPC_MoveParent, ++/*309199*/ OPC_MoveChild, 13, ++/*309201*/ OPC_CheckInteger, 1, ++/*309203*/ OPC_CheckType, MVT::i32, ++/*309205*/ OPC_MoveParent, ++/*309206*/ OPC_MoveChild, 14, ++/*309208*/ OPC_CheckInteger, 1, ++/*309210*/ OPC_CheckType, MVT::i32, ++/*309212*/ OPC_MoveParent, ++/*309213*/ OPC_MoveChild, 15, ++/*309215*/ OPC_CheckInteger, 1, ++/*309217*/ OPC_CheckType, MVT::i32, ++/*309219*/ OPC_MoveParent, ++/*309220*/ OPC_MoveChild, 16, ++/*309222*/ OPC_CheckInteger, 1, ++/*309224*/ OPC_CheckType, MVT::i32, ++/*309226*/ OPC_MoveParent, ++/*309227*/ OPC_MoveChild, 17, ++/*309229*/ OPC_CheckInteger, 1, ++/*309231*/ OPC_CheckType, MVT::i32, ++/*309233*/ OPC_MoveParent, ++/*309234*/ OPC_MoveChild, 18, ++/*309236*/ OPC_CheckInteger, 1, ++/*309238*/ OPC_CheckType, MVT::i32, ++/*309240*/ OPC_MoveParent, ++/*309241*/ OPC_MoveChild, 19, ++/*309243*/ OPC_CheckInteger, 1, ++/*309245*/ OPC_CheckType, MVT::i32, ++/*309247*/ OPC_MoveParent, ++/*309248*/ OPC_MoveChild, 20, ++/*309250*/ OPC_CheckInteger, 1, ++/*309252*/ OPC_CheckType, MVT::i32, ++/*309254*/ OPC_MoveParent, ++/*309255*/ OPC_MoveChild, 21, ++/*309257*/ OPC_CheckInteger, 1, ++/*309259*/ OPC_CheckType, MVT::i32, ++/*309261*/ OPC_MoveParent, ++/*309262*/ OPC_MoveChild, 22, ++/*309264*/ OPC_CheckInteger, 1, ++/*309266*/ OPC_CheckType, MVT::i32, ++/*309268*/ OPC_MoveParent, ++/*309269*/ OPC_MoveChild, 23, ++/*309271*/ OPC_CheckInteger, 1, ++/*309273*/ OPC_CheckType, MVT::i32, ++/*309275*/ OPC_MoveParent, ++/*309276*/ OPC_MoveChild, 24, ++/*309278*/ OPC_CheckInteger, 1, ++/*309280*/ OPC_CheckType, MVT::i32, ++/*309282*/ OPC_MoveParent, ++/*309283*/ OPC_MoveChild, 25, ++/*309285*/ OPC_CheckInteger, 1, ++/*309287*/ OPC_CheckType, MVT::i32, ++/*309289*/ OPC_MoveParent, ++/*309290*/ OPC_MoveChild, 26, ++/*309292*/ OPC_CheckInteger, 1, ++/*309294*/ OPC_CheckType, MVT::i32, ++/*309296*/ OPC_MoveParent, ++/*309297*/ OPC_MoveChild, 27, ++/*309299*/ OPC_CheckInteger, 1, ++/*309301*/ OPC_CheckType, MVT::i32, ++/*309303*/ OPC_MoveParent, ++/*309304*/ OPC_MoveChild, 28, ++/*309306*/ OPC_CheckInteger, 1, ++/*309308*/ OPC_CheckType, MVT::i32, ++/*309310*/ OPC_MoveParent, ++/*309311*/ OPC_MoveChild, 29, ++/*309313*/ OPC_CheckInteger, 1, ++/*309315*/ OPC_CheckType, MVT::i32, ++/*309317*/ OPC_MoveParent, ++/*309318*/ OPC_MoveChild, 30, ++/*309320*/ OPC_CheckInteger, 1, ++/*309322*/ OPC_CheckType, MVT::i32, ++/*309324*/ OPC_MoveParent, ++/*309325*/ OPC_MoveChild, 31, ++/*309327*/ OPC_CheckInteger, 1, ++/*309329*/ OPC_CheckType, MVT::i32, ++/*309331*/ OPC_MoveParent, ++/*309332*/ OPC_MoveParent, ++/*309333*/ OPC_MoveParent, ++/*309334*/ OPC_MoveParent, ++/*309335*/ OPC_MoveChild1, ++/*309336*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*309339*/ OPC_CheckChild0Integer, 1, ++/*309341*/ OPC_CheckChild0Type, MVT::i32, ++/*309343*/ OPC_CheckChild1Integer, 1, ++/*309345*/ OPC_CheckChild1Type, MVT::i32, ++/*309347*/ OPC_CheckChild2Integer, 1, ++/*309349*/ OPC_CheckChild2Type, MVT::i32, ++/*309351*/ OPC_CheckChild3Integer, 1, ++/*309353*/ OPC_CheckChild3Type, MVT::i32, ++/*309355*/ OPC_CheckChild4Integer, 1, ++/*309357*/ OPC_CheckChild4Type, MVT::i32, ++/*309359*/ OPC_MoveChild5, ++/*309360*/ OPC_CheckInteger, 1, ++/*309362*/ OPC_CheckType, MVT::i32, ++/*309364*/ OPC_MoveParent, ++/*309365*/ OPC_MoveChild6, ++/*309366*/ OPC_CheckInteger, 1, ++/*309368*/ OPC_CheckType, MVT::i32, ++/*309370*/ OPC_MoveParent, ++/*309371*/ OPC_MoveChild7, ++/*309372*/ OPC_CheckInteger, 1, ++/*309374*/ OPC_CheckType, MVT::i32, ++/*309376*/ OPC_MoveParent, ++/*309377*/ OPC_MoveChild, 8, ++/*309379*/ OPC_CheckInteger, 1, ++/*309381*/ OPC_CheckType, MVT::i32, ++/*309383*/ OPC_MoveParent, ++/*309384*/ OPC_MoveChild, 9, ++/*309386*/ OPC_CheckInteger, 1, ++/*309388*/ OPC_CheckType, MVT::i32, ++/*309390*/ OPC_MoveParent, ++/*309391*/ OPC_MoveChild, 10, ++/*309393*/ OPC_CheckInteger, 1, ++/*309395*/ OPC_CheckType, MVT::i32, ++/*309397*/ OPC_MoveParent, ++/*309398*/ OPC_MoveChild, 11, ++/*309400*/ OPC_CheckInteger, 1, ++/*309402*/ OPC_CheckType, MVT::i32, ++/*309404*/ OPC_MoveParent, ++/*309405*/ OPC_MoveChild, 12, ++/*309407*/ OPC_CheckInteger, 1, ++/*309409*/ OPC_CheckType, MVT::i32, ++/*309411*/ OPC_MoveParent, ++/*309412*/ OPC_MoveChild, 13, ++/*309414*/ OPC_CheckInteger, 1, ++/*309416*/ OPC_CheckType, MVT::i32, ++/*309418*/ OPC_MoveParent, ++/*309419*/ OPC_MoveChild, 14, ++/*309421*/ OPC_CheckInteger, 1, ++/*309423*/ OPC_CheckType, MVT::i32, ++/*309425*/ OPC_MoveParent, ++/*309426*/ OPC_MoveChild, 15, ++/*309428*/ OPC_CheckInteger, 1, ++/*309430*/ OPC_CheckType, MVT::i32, ++/*309432*/ OPC_MoveParent, ++/*309433*/ OPC_MoveChild, 16, ++/*309435*/ OPC_CheckInteger, 1, ++/*309437*/ OPC_CheckType, MVT::i32, ++/*309439*/ OPC_MoveParent, ++/*309440*/ OPC_MoveChild, 17, ++/*309442*/ OPC_CheckInteger, 1, ++/*309444*/ OPC_CheckType, MVT::i32, ++/*309446*/ OPC_MoveParent, ++/*309447*/ OPC_MoveChild, 18, ++/*309449*/ OPC_CheckInteger, 1, ++/*309451*/ OPC_CheckType, MVT::i32, ++/*309453*/ OPC_MoveParent, ++/*309454*/ OPC_MoveChild, 19, ++/*309456*/ OPC_CheckInteger, 1, ++/*309458*/ OPC_CheckType, MVT::i32, ++/*309460*/ OPC_MoveParent, ++/*309461*/ OPC_MoveChild, 20, ++/*309463*/ OPC_CheckInteger, 1, ++/*309465*/ OPC_CheckType, MVT::i32, ++/*309467*/ OPC_MoveParent, ++/*309468*/ OPC_MoveChild, 21, ++/*309470*/ OPC_CheckInteger, 1, ++/*309472*/ OPC_CheckType, MVT::i32, ++/*309474*/ OPC_MoveParent, ++/*309475*/ OPC_MoveChild, 22, ++/*309477*/ OPC_CheckInteger, 1, ++/*309479*/ OPC_CheckType, MVT::i32, ++/*309481*/ OPC_MoveParent, ++/*309482*/ OPC_MoveChild, 23, ++/*309484*/ OPC_CheckInteger, 1, ++/*309486*/ OPC_CheckType, MVT::i32, ++/*309488*/ OPC_MoveParent, ++/*309489*/ OPC_MoveChild, 24, ++/*309491*/ OPC_CheckInteger, 1, ++/*309493*/ OPC_CheckType, MVT::i32, ++/*309495*/ OPC_MoveParent, ++/*309496*/ OPC_MoveChild, 25, ++/*309498*/ OPC_CheckInteger, 1, ++/*309500*/ OPC_CheckType, MVT::i32, ++/*309502*/ OPC_MoveParent, ++/*309503*/ OPC_MoveChild, 26, ++/*309505*/ OPC_CheckInteger, 1, ++/*309507*/ OPC_CheckType, MVT::i32, ++/*309509*/ OPC_MoveParent, ++/*309510*/ OPC_MoveChild, 27, ++/*309512*/ OPC_CheckInteger, 1, ++/*309514*/ OPC_CheckType, MVT::i32, ++/*309516*/ OPC_MoveParent, ++/*309517*/ OPC_MoveChild, 28, ++/*309519*/ OPC_CheckInteger, 1, ++/*309521*/ OPC_CheckType, MVT::i32, ++/*309523*/ OPC_MoveParent, ++/*309524*/ OPC_MoveChild, 29, ++/*309526*/ OPC_CheckInteger, 1, ++/*309528*/ OPC_CheckType, MVT::i32, ++/*309530*/ OPC_MoveParent, ++/*309531*/ OPC_MoveChild, 30, ++/*309533*/ OPC_CheckInteger, 1, ++/*309535*/ OPC_CheckType, MVT::i32, ++/*309537*/ OPC_MoveParent, ++/*309538*/ OPC_MoveChild, 31, ++/*309540*/ OPC_CheckInteger, 1, ++/*309542*/ OPC_CheckType, MVT::i32, ++/*309544*/ OPC_MoveParent, ++/*309545*/ OPC_CheckType, MVT::v32i8, ++/*309547*/ OPC_MoveParent, ++/*309548*/ OPC_CheckType, MVT::v32i8, ++/*309550*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*309552*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*309560*/ /*Scope*/ 59|128,3/*443*/, /*->310005*/ ++/*309562*/ OPC_CheckChild0Same, 0, ++/*309564*/ OPC_CheckChild1Same, 1, ++/*309566*/ OPC_MoveParent, ++/*309567*/ OPC_MoveChild1, ++/*309568*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*309571*/ OPC_CheckChild0Integer, 1, ++/*309573*/ OPC_CheckChild0Type, MVT::i32, ++/*309575*/ OPC_CheckChild1Integer, 1, ++/*309577*/ OPC_CheckChild1Type, MVT::i32, ++/*309579*/ OPC_CheckChild2Integer, 1, ++/*309581*/ OPC_CheckChild2Type, MVT::i32, ++/*309583*/ OPC_CheckChild3Integer, 1, ++/*309585*/ OPC_CheckChild3Type, MVT::i32, ++/*309587*/ OPC_CheckChild4Integer, 1, ++/*309589*/ OPC_CheckChild4Type, MVT::i32, ++/*309591*/ OPC_MoveChild5, ++/*309592*/ OPC_CheckInteger, 1, ++/*309594*/ OPC_CheckType, MVT::i32, ++/*309596*/ OPC_MoveParent, ++/*309597*/ OPC_MoveChild6, ++/*309598*/ OPC_CheckInteger, 1, ++/*309600*/ OPC_CheckType, MVT::i32, ++/*309602*/ OPC_MoveParent, ++/*309603*/ OPC_MoveChild7, ++/*309604*/ OPC_CheckInteger, 1, ++/*309606*/ OPC_CheckType, MVT::i32, ++/*309608*/ OPC_MoveParent, ++/*309609*/ OPC_MoveChild, 8, ++/*309611*/ OPC_CheckInteger, 1, ++/*309613*/ OPC_CheckType, MVT::i32, ++/*309615*/ OPC_MoveParent, ++/*309616*/ OPC_MoveChild, 9, ++/*309618*/ OPC_CheckInteger, 1, ++/*309620*/ OPC_CheckType, MVT::i32, ++/*309622*/ OPC_MoveParent, ++/*309623*/ OPC_MoveChild, 10, ++/*309625*/ OPC_CheckInteger, 1, ++/*309627*/ OPC_CheckType, MVT::i32, ++/*309629*/ OPC_MoveParent, ++/*309630*/ OPC_MoveChild, 11, ++/*309632*/ OPC_CheckInteger, 1, ++/*309634*/ OPC_CheckType, MVT::i32, ++/*309636*/ OPC_MoveParent, ++/*309637*/ OPC_MoveChild, 12, ++/*309639*/ OPC_CheckInteger, 1, ++/*309641*/ OPC_CheckType, MVT::i32, ++/*309643*/ OPC_MoveParent, ++/*309644*/ OPC_MoveChild, 13, ++/*309646*/ OPC_CheckInteger, 1, ++/*309648*/ OPC_CheckType, MVT::i32, ++/*309650*/ OPC_MoveParent, ++/*309651*/ OPC_MoveChild, 14, ++/*309653*/ OPC_CheckInteger, 1, ++/*309655*/ OPC_CheckType, MVT::i32, ++/*309657*/ OPC_MoveParent, ++/*309658*/ OPC_MoveChild, 15, ++/*309660*/ OPC_CheckInteger, 1, ++/*309662*/ OPC_CheckType, MVT::i32, ++/*309664*/ OPC_MoveParent, ++/*309665*/ OPC_MoveChild, 16, ++/*309667*/ OPC_CheckInteger, 1, ++/*309669*/ OPC_CheckType, MVT::i32, ++/*309671*/ OPC_MoveParent, ++/*309672*/ OPC_MoveChild, 17, ++/*309674*/ OPC_CheckInteger, 1, ++/*309676*/ OPC_CheckType, MVT::i32, ++/*309678*/ OPC_MoveParent, ++/*309679*/ OPC_MoveChild, 18, ++/*309681*/ OPC_CheckInteger, 1, ++/*309683*/ OPC_CheckType, MVT::i32, ++/*309685*/ OPC_MoveParent, ++/*309686*/ OPC_MoveChild, 19, ++/*309688*/ OPC_CheckInteger, 1, ++/*309690*/ OPC_CheckType, MVT::i32, ++/*309692*/ OPC_MoveParent, ++/*309693*/ OPC_MoveChild, 20, ++/*309695*/ OPC_CheckInteger, 1, ++/*309697*/ OPC_CheckType, MVT::i32, ++/*309699*/ OPC_MoveParent, ++/*309700*/ OPC_MoveChild, 21, ++/*309702*/ OPC_CheckInteger, 1, ++/*309704*/ OPC_CheckType, MVT::i32, ++/*309706*/ OPC_MoveParent, ++/*309707*/ OPC_MoveChild, 22, ++/*309709*/ OPC_CheckInteger, 1, ++/*309711*/ OPC_CheckType, MVT::i32, ++/*309713*/ OPC_MoveParent, ++/*309714*/ OPC_MoveChild, 23, ++/*309716*/ OPC_CheckInteger, 1, ++/*309718*/ OPC_CheckType, MVT::i32, ++/*309720*/ OPC_MoveParent, ++/*309721*/ OPC_MoveChild, 24, ++/*309723*/ OPC_CheckInteger, 1, ++/*309725*/ OPC_CheckType, MVT::i32, ++/*309727*/ OPC_MoveParent, ++/*309728*/ OPC_MoveChild, 25, ++/*309730*/ OPC_CheckInteger, 1, ++/*309732*/ OPC_CheckType, MVT::i32, ++/*309734*/ OPC_MoveParent, ++/*309735*/ OPC_MoveChild, 26, ++/*309737*/ OPC_CheckInteger, 1, ++/*309739*/ OPC_CheckType, MVT::i32, ++/*309741*/ OPC_MoveParent, ++/*309742*/ OPC_MoveChild, 27, ++/*309744*/ OPC_CheckInteger, 1, ++/*309746*/ OPC_CheckType, MVT::i32, ++/*309748*/ OPC_MoveParent, ++/*309749*/ OPC_MoveChild, 28, ++/*309751*/ OPC_CheckInteger, 1, ++/*309753*/ OPC_CheckType, MVT::i32, ++/*309755*/ OPC_MoveParent, ++/*309756*/ OPC_MoveChild, 29, ++/*309758*/ OPC_CheckInteger, 1, ++/*309760*/ OPC_CheckType, MVT::i32, ++/*309762*/ OPC_MoveParent, ++/*309763*/ OPC_MoveChild, 30, ++/*309765*/ OPC_CheckInteger, 1, ++/*309767*/ OPC_CheckType, MVT::i32, ++/*309769*/ OPC_MoveParent, ++/*309770*/ OPC_MoveChild, 31, ++/*309772*/ OPC_CheckInteger, 1, ++/*309774*/ OPC_CheckType, MVT::i32, ++/*309776*/ OPC_MoveParent, ++/*309777*/ OPC_MoveParent, ++/*309778*/ OPC_MoveParent, ++/*309779*/ OPC_MoveParent, ++/*309780*/ OPC_MoveChild1, ++/*309781*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*309784*/ OPC_CheckChild0Integer, 1, ++/*309786*/ OPC_CheckChild0Type, MVT::i32, ++/*309788*/ OPC_CheckChild1Integer, 1, ++/*309790*/ OPC_CheckChild1Type, MVT::i32, ++/*309792*/ OPC_CheckChild2Integer, 1, ++/*309794*/ OPC_CheckChild2Type, MVT::i32, ++/*309796*/ OPC_CheckChild3Integer, 1, ++/*309798*/ OPC_CheckChild3Type, MVT::i32, ++/*309800*/ OPC_CheckChild4Integer, 1, ++/*309802*/ OPC_CheckChild4Type, MVT::i32, ++/*309804*/ OPC_MoveChild5, ++/*309805*/ OPC_CheckInteger, 1, ++/*309807*/ OPC_CheckType, MVT::i32, ++/*309809*/ OPC_MoveParent, ++/*309810*/ OPC_MoveChild6, ++/*309811*/ OPC_CheckInteger, 1, ++/*309813*/ OPC_CheckType, MVT::i32, ++/*309815*/ OPC_MoveParent, ++/*309816*/ OPC_MoveChild7, ++/*309817*/ OPC_CheckInteger, 1, ++/*309819*/ OPC_CheckType, MVT::i32, ++/*309821*/ OPC_MoveParent, ++/*309822*/ OPC_MoveChild, 8, ++/*309824*/ OPC_CheckInteger, 1, ++/*309826*/ OPC_CheckType, MVT::i32, ++/*309828*/ OPC_MoveParent, ++/*309829*/ OPC_MoveChild, 9, ++/*309831*/ OPC_CheckInteger, 1, ++/*309833*/ OPC_CheckType, MVT::i32, ++/*309835*/ OPC_MoveParent, ++/*309836*/ OPC_MoveChild, 10, ++/*309838*/ OPC_CheckInteger, 1, ++/*309840*/ OPC_CheckType, MVT::i32, ++/*309842*/ OPC_MoveParent, ++/*309843*/ OPC_MoveChild, 11, ++/*309845*/ OPC_CheckInteger, 1, ++/*309847*/ OPC_CheckType, MVT::i32, ++/*309849*/ OPC_MoveParent, ++/*309850*/ OPC_MoveChild, 12, ++/*309852*/ OPC_CheckInteger, 1, ++/*309854*/ OPC_CheckType, MVT::i32, ++/*309856*/ OPC_MoveParent, ++/*309857*/ OPC_MoveChild, 13, ++/*309859*/ OPC_CheckInteger, 1, ++/*309861*/ OPC_CheckType, MVT::i32, ++/*309863*/ OPC_MoveParent, ++/*309864*/ OPC_MoveChild, 14, ++/*309866*/ OPC_CheckInteger, 1, ++/*309868*/ OPC_CheckType, MVT::i32, ++/*309870*/ OPC_MoveParent, ++/*309871*/ OPC_MoveChild, 15, ++/*309873*/ OPC_CheckInteger, 1, ++/*309875*/ OPC_CheckType, MVT::i32, ++/*309877*/ OPC_MoveParent, ++/*309878*/ OPC_MoveChild, 16, ++/*309880*/ OPC_CheckInteger, 1, ++/*309882*/ OPC_CheckType, MVT::i32, ++/*309884*/ OPC_MoveParent, ++/*309885*/ OPC_MoveChild, 17, ++/*309887*/ OPC_CheckInteger, 1, ++/*309889*/ OPC_CheckType, MVT::i32, ++/*309891*/ OPC_MoveParent, ++/*309892*/ OPC_MoveChild, 18, ++/*309894*/ OPC_CheckInteger, 1, ++/*309896*/ OPC_CheckType, MVT::i32, ++/*309898*/ OPC_MoveParent, ++/*309899*/ OPC_MoveChild, 19, ++/*309901*/ OPC_CheckInteger, 1, ++/*309903*/ OPC_CheckType, MVT::i32, ++/*309905*/ OPC_MoveParent, ++/*309906*/ OPC_MoveChild, 20, ++/*309908*/ OPC_CheckInteger, 1, ++/*309910*/ OPC_CheckType, MVT::i32, ++/*309912*/ OPC_MoveParent, ++/*309913*/ OPC_MoveChild, 21, ++/*309915*/ OPC_CheckInteger, 1, ++/*309917*/ OPC_CheckType, MVT::i32, ++/*309919*/ OPC_MoveParent, ++/*309920*/ OPC_MoveChild, 22, ++/*309922*/ OPC_CheckInteger, 1, ++/*309924*/ OPC_CheckType, MVT::i32, ++/*309926*/ OPC_MoveParent, ++/*309927*/ OPC_MoveChild, 23, ++/*309929*/ OPC_CheckInteger, 1, ++/*309931*/ OPC_CheckType, MVT::i32, ++/*309933*/ OPC_MoveParent, ++/*309934*/ OPC_MoveChild, 24, ++/*309936*/ OPC_CheckInteger, 1, ++/*309938*/ OPC_CheckType, MVT::i32, ++/*309940*/ OPC_MoveParent, ++/*309941*/ OPC_MoveChild, 25, ++/*309943*/ OPC_CheckInteger, 1, ++/*309945*/ OPC_CheckType, MVT::i32, ++/*309947*/ OPC_MoveParent, ++/*309948*/ OPC_MoveChild, 26, ++/*309950*/ OPC_CheckInteger, 1, ++/*309952*/ OPC_CheckType, MVT::i32, ++/*309954*/ OPC_MoveParent, ++/*309955*/ OPC_MoveChild, 27, ++/*309957*/ OPC_CheckInteger, 1, ++/*309959*/ OPC_CheckType, MVT::i32, ++/*309961*/ OPC_MoveParent, ++/*309962*/ OPC_MoveChild, 28, ++/*309964*/ OPC_CheckInteger, 1, ++/*309966*/ OPC_CheckType, MVT::i32, ++/*309968*/ OPC_MoveParent, ++/*309969*/ OPC_MoveChild, 29, ++/*309971*/ OPC_CheckInteger, 1, ++/*309973*/ OPC_CheckType, MVT::i32, ++/*309975*/ OPC_MoveParent, ++/*309976*/ OPC_MoveChild, 30, ++/*309978*/ OPC_CheckInteger, 1, ++/*309980*/ OPC_CheckType, MVT::i32, ++/*309982*/ OPC_MoveParent, ++/*309983*/ OPC_MoveChild, 31, ++/*309985*/ OPC_CheckInteger, 1, ++/*309987*/ OPC_CheckType, MVT::i32, ++/*309989*/ OPC_MoveParent, ++/*309990*/ OPC_CheckType, MVT::v32i8, ++/*309992*/ OPC_MoveParent, ++/*309993*/ OPC_CheckType, MVT::v32i8, ++/*309995*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*309997*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*310005*/ 0, /*End of Scope*/ ++/*310006*/ /*Scope*/ 126|128,6/*894*/, /*->310902*/ ++/*310008*/ OPC_CheckChild0Same, 0, ++/*310010*/ OPC_MoveChild1, ++/*310011*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*310014*/ OPC_Scope, 57|128,3/*441*/, /*->310458*/ // 2 children in Scope ++/*310017*/ OPC_MoveChild0, ++/*310018*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*310021*/ OPC_CheckChild0Integer, 1, ++/*310023*/ OPC_CheckChild0Type, MVT::i32, ++/*310025*/ OPC_CheckChild1Integer, 1, ++/*310027*/ OPC_CheckChild1Type, MVT::i32, ++/*310029*/ OPC_CheckChild2Integer, 1, ++/*310031*/ OPC_CheckChild2Type, MVT::i32, ++/*310033*/ OPC_CheckChild3Integer, 1, ++/*310035*/ OPC_CheckChild3Type, MVT::i32, ++/*310037*/ OPC_CheckChild4Integer, 1, ++/*310039*/ OPC_CheckChild4Type, MVT::i32, ++/*310041*/ OPC_MoveChild5, ++/*310042*/ OPC_CheckInteger, 1, ++/*310044*/ OPC_CheckType, MVT::i32, ++/*310046*/ OPC_MoveParent, ++/*310047*/ OPC_MoveChild6, ++/*310048*/ OPC_CheckInteger, 1, ++/*310050*/ OPC_CheckType, MVT::i32, ++/*310052*/ OPC_MoveParent, ++/*310053*/ OPC_MoveChild7, ++/*310054*/ OPC_CheckInteger, 1, ++/*310056*/ OPC_CheckType, MVT::i32, ++/*310058*/ OPC_MoveParent, ++/*310059*/ OPC_MoveChild, 8, ++/*310061*/ OPC_CheckInteger, 1, ++/*310063*/ OPC_CheckType, MVT::i32, ++/*310065*/ OPC_MoveParent, ++/*310066*/ OPC_MoveChild, 9, ++/*310068*/ OPC_CheckInteger, 1, ++/*310070*/ OPC_CheckType, MVT::i32, ++/*310072*/ OPC_MoveParent, ++/*310073*/ OPC_MoveChild, 10, ++/*310075*/ OPC_CheckInteger, 1, ++/*310077*/ OPC_CheckType, MVT::i32, ++/*310079*/ OPC_MoveParent, ++/*310080*/ OPC_MoveChild, 11, ++/*310082*/ OPC_CheckInteger, 1, ++/*310084*/ OPC_CheckType, MVT::i32, ++/*310086*/ OPC_MoveParent, ++/*310087*/ OPC_MoveChild, 12, ++/*310089*/ OPC_CheckInteger, 1, ++/*310091*/ OPC_CheckType, MVT::i32, ++/*310093*/ OPC_MoveParent, ++/*310094*/ OPC_MoveChild, 13, ++/*310096*/ OPC_CheckInteger, 1, ++/*310098*/ OPC_CheckType, MVT::i32, ++/*310100*/ OPC_MoveParent, ++/*310101*/ OPC_MoveChild, 14, ++/*310103*/ OPC_CheckInteger, 1, ++/*310105*/ OPC_CheckType, MVT::i32, ++/*310107*/ OPC_MoveParent, ++/*310108*/ OPC_MoveChild, 15, ++/*310110*/ OPC_CheckInteger, 1, ++/*310112*/ OPC_CheckType, MVT::i32, ++/*310114*/ OPC_MoveParent, ++/*310115*/ OPC_MoveChild, 16, ++/*310117*/ OPC_CheckInteger, 1, ++/*310119*/ OPC_CheckType, MVT::i32, ++/*310121*/ OPC_MoveParent, ++/*310122*/ OPC_MoveChild, 17, ++/*310124*/ OPC_CheckInteger, 1, ++/*310126*/ OPC_CheckType, MVT::i32, ++/*310128*/ OPC_MoveParent, ++/*310129*/ OPC_MoveChild, 18, ++/*310131*/ OPC_CheckInteger, 1, ++/*310133*/ OPC_CheckType, MVT::i32, ++/*310135*/ OPC_MoveParent, ++/*310136*/ OPC_MoveChild, 19, ++/*310138*/ OPC_CheckInteger, 1, ++/*310140*/ OPC_CheckType, MVT::i32, ++/*310142*/ OPC_MoveParent, ++/*310143*/ OPC_MoveChild, 20, ++/*310145*/ OPC_CheckInteger, 1, ++/*310147*/ OPC_CheckType, MVT::i32, ++/*310149*/ OPC_MoveParent, ++/*310150*/ OPC_MoveChild, 21, ++/*310152*/ OPC_CheckInteger, 1, ++/*310154*/ OPC_CheckType, MVT::i32, ++/*310156*/ OPC_MoveParent, ++/*310157*/ OPC_MoveChild, 22, ++/*310159*/ OPC_CheckInteger, 1, ++/*310161*/ OPC_CheckType, MVT::i32, ++/*310163*/ OPC_MoveParent, ++/*310164*/ OPC_MoveChild, 23, ++/*310166*/ OPC_CheckInteger, 1, ++/*310168*/ OPC_CheckType, MVT::i32, ++/*310170*/ OPC_MoveParent, ++/*310171*/ OPC_MoveChild, 24, ++/*310173*/ OPC_CheckInteger, 1, ++/*310175*/ OPC_CheckType, MVT::i32, ++/*310177*/ OPC_MoveParent, ++/*310178*/ OPC_MoveChild, 25, ++/*310180*/ OPC_CheckInteger, 1, ++/*310182*/ OPC_CheckType, MVT::i32, ++/*310184*/ OPC_MoveParent, ++/*310185*/ OPC_MoveChild, 26, ++/*310187*/ OPC_CheckInteger, 1, ++/*310189*/ OPC_CheckType, MVT::i32, ++/*310191*/ OPC_MoveParent, ++/*310192*/ OPC_MoveChild, 27, ++/*310194*/ OPC_CheckInteger, 1, ++/*310196*/ OPC_CheckType, MVT::i32, ++/*310198*/ OPC_MoveParent, ++/*310199*/ OPC_MoveChild, 28, ++/*310201*/ OPC_CheckInteger, 1, ++/*310203*/ OPC_CheckType, MVT::i32, ++/*310205*/ OPC_MoveParent, ++/*310206*/ OPC_MoveChild, 29, ++/*310208*/ OPC_CheckInteger, 1, ++/*310210*/ OPC_CheckType, MVT::i32, ++/*310212*/ OPC_MoveParent, ++/*310213*/ OPC_MoveChild, 30, ++/*310215*/ OPC_CheckInteger, 1, ++/*310217*/ OPC_CheckType, MVT::i32, ++/*310219*/ OPC_MoveParent, ++/*310220*/ OPC_MoveChild, 31, ++/*310222*/ OPC_CheckInteger, 1, ++/*310224*/ OPC_CheckType, MVT::i32, ++/*310226*/ OPC_MoveParent, ++/*310227*/ OPC_MoveParent, ++/*310228*/ OPC_CheckChild1Same, 1, ++/*310230*/ OPC_MoveParent, ++/*310231*/ OPC_MoveParent, ++/*310232*/ OPC_MoveParent, ++/*310233*/ OPC_MoveChild1, ++/*310234*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*310237*/ OPC_CheckChild0Integer, 1, ++/*310239*/ OPC_CheckChild0Type, MVT::i32, ++/*310241*/ OPC_CheckChild1Integer, 1, ++/*310243*/ OPC_CheckChild1Type, MVT::i32, ++/*310245*/ OPC_CheckChild2Integer, 1, ++/*310247*/ OPC_CheckChild2Type, MVT::i32, ++/*310249*/ OPC_CheckChild3Integer, 1, ++/*310251*/ OPC_CheckChild3Type, MVT::i32, ++/*310253*/ OPC_CheckChild4Integer, 1, ++/*310255*/ OPC_CheckChild4Type, MVT::i32, ++/*310257*/ OPC_MoveChild5, ++/*310258*/ OPC_CheckInteger, 1, ++/*310260*/ OPC_CheckType, MVT::i32, ++/*310262*/ OPC_MoveParent, ++/*310263*/ OPC_MoveChild6, ++/*310264*/ OPC_CheckInteger, 1, ++/*310266*/ OPC_CheckType, MVT::i32, ++/*310268*/ OPC_MoveParent, ++/*310269*/ OPC_MoveChild7, ++/*310270*/ OPC_CheckInteger, 1, ++/*310272*/ OPC_CheckType, MVT::i32, ++/*310274*/ OPC_MoveParent, ++/*310275*/ OPC_MoveChild, 8, ++/*310277*/ OPC_CheckInteger, 1, ++/*310279*/ OPC_CheckType, MVT::i32, ++/*310281*/ OPC_MoveParent, ++/*310282*/ OPC_MoveChild, 9, ++/*310284*/ OPC_CheckInteger, 1, ++/*310286*/ OPC_CheckType, MVT::i32, ++/*310288*/ OPC_MoveParent, ++/*310289*/ OPC_MoveChild, 10, ++/*310291*/ OPC_CheckInteger, 1, ++/*310293*/ OPC_CheckType, MVT::i32, ++/*310295*/ OPC_MoveParent, ++/*310296*/ OPC_MoveChild, 11, ++/*310298*/ OPC_CheckInteger, 1, ++/*310300*/ OPC_CheckType, MVT::i32, ++/*310302*/ OPC_MoveParent, ++/*310303*/ OPC_MoveChild, 12, ++/*310305*/ OPC_CheckInteger, 1, ++/*310307*/ OPC_CheckType, MVT::i32, ++/*310309*/ OPC_MoveParent, ++/*310310*/ OPC_MoveChild, 13, ++/*310312*/ OPC_CheckInteger, 1, ++/*310314*/ OPC_CheckType, MVT::i32, ++/*310316*/ OPC_MoveParent, ++/*310317*/ OPC_MoveChild, 14, ++/*310319*/ OPC_CheckInteger, 1, ++/*310321*/ OPC_CheckType, MVT::i32, ++/*310323*/ OPC_MoveParent, ++/*310324*/ OPC_MoveChild, 15, ++/*310326*/ OPC_CheckInteger, 1, ++/*310328*/ OPC_CheckType, MVT::i32, ++/*310330*/ OPC_MoveParent, ++/*310331*/ OPC_MoveChild, 16, ++/*310333*/ OPC_CheckInteger, 1, ++/*310335*/ OPC_CheckType, MVT::i32, ++/*310337*/ OPC_MoveParent, ++/*310338*/ OPC_MoveChild, 17, ++/*310340*/ OPC_CheckInteger, 1, ++/*310342*/ OPC_CheckType, MVT::i32, ++/*310344*/ OPC_MoveParent, ++/*310345*/ OPC_MoveChild, 18, ++/*310347*/ OPC_CheckInteger, 1, ++/*310349*/ OPC_CheckType, MVT::i32, ++/*310351*/ OPC_MoveParent, ++/*310352*/ OPC_MoveChild, 19, ++/*310354*/ OPC_CheckInteger, 1, ++/*310356*/ OPC_CheckType, MVT::i32, ++/*310358*/ OPC_MoveParent, ++/*310359*/ OPC_MoveChild, 20, ++/*310361*/ OPC_CheckInteger, 1, ++/*310363*/ OPC_CheckType, MVT::i32, ++/*310365*/ OPC_MoveParent, ++/*310366*/ OPC_MoveChild, 21, ++/*310368*/ OPC_CheckInteger, 1, ++/*310370*/ OPC_CheckType, MVT::i32, ++/*310372*/ OPC_MoveParent, ++/*310373*/ OPC_MoveChild, 22, ++/*310375*/ OPC_CheckInteger, 1, ++/*310377*/ OPC_CheckType, MVT::i32, ++/*310379*/ OPC_MoveParent, ++/*310380*/ OPC_MoveChild, 23, ++/*310382*/ OPC_CheckInteger, 1, ++/*310384*/ OPC_CheckType, MVT::i32, ++/*310386*/ OPC_MoveParent, ++/*310387*/ OPC_MoveChild, 24, ++/*310389*/ OPC_CheckInteger, 1, ++/*310391*/ OPC_CheckType, MVT::i32, ++/*310393*/ OPC_MoveParent, ++/*310394*/ OPC_MoveChild, 25, ++/*310396*/ OPC_CheckInteger, 1, ++/*310398*/ OPC_CheckType, MVT::i32, ++/*310400*/ OPC_MoveParent, ++/*310401*/ OPC_MoveChild, 26, ++/*310403*/ OPC_CheckInteger, 1, ++/*310405*/ OPC_CheckType, MVT::i32, ++/*310407*/ OPC_MoveParent, ++/*310408*/ OPC_MoveChild, 27, ++/*310410*/ OPC_CheckInteger, 1, ++/*310412*/ OPC_CheckType, MVT::i32, ++/*310414*/ OPC_MoveParent, ++/*310415*/ OPC_MoveChild, 28, ++/*310417*/ OPC_CheckInteger, 1, ++/*310419*/ OPC_CheckType, MVT::i32, ++/*310421*/ OPC_MoveParent, ++/*310422*/ OPC_MoveChild, 29, ++/*310424*/ OPC_CheckInteger, 1, ++/*310426*/ OPC_CheckType, MVT::i32, ++/*310428*/ OPC_MoveParent, ++/*310429*/ OPC_MoveChild, 30, ++/*310431*/ OPC_CheckInteger, 1, ++/*310433*/ OPC_CheckType, MVT::i32, ++/*310435*/ OPC_MoveParent, ++/*310436*/ OPC_MoveChild, 31, ++/*310438*/ OPC_CheckInteger, 1, ++/*310440*/ OPC_CheckType, MVT::i32, ++/*310442*/ OPC_MoveParent, ++/*310443*/ OPC_CheckType, MVT::v32i8, ++/*310445*/ OPC_MoveParent, ++/*310446*/ OPC_CheckType, MVT::v32i8, ++/*310448*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*310450*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*310458*/ /*Scope*/ 57|128,3/*441*/, /*->310901*/ ++/*310460*/ OPC_CheckChild0Same, 1, ++/*310462*/ OPC_MoveChild1, ++/*310463*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*310466*/ OPC_CheckChild0Integer, 1, ++/*310468*/ OPC_CheckChild0Type, MVT::i32, ++/*310470*/ OPC_CheckChild1Integer, 1, ++/*310472*/ OPC_CheckChild1Type, MVT::i32, ++/*310474*/ OPC_CheckChild2Integer, 1, ++/*310476*/ OPC_CheckChild2Type, MVT::i32, ++/*310478*/ OPC_CheckChild3Integer, 1, ++/*310480*/ OPC_CheckChild3Type, MVT::i32, ++/*310482*/ OPC_CheckChild4Integer, 1, ++/*310484*/ OPC_CheckChild4Type, MVT::i32, ++/*310486*/ OPC_MoveChild5, ++/*310487*/ OPC_CheckInteger, 1, ++/*310489*/ OPC_CheckType, MVT::i32, ++/*310491*/ OPC_MoveParent, ++/*310492*/ OPC_MoveChild6, ++/*310493*/ OPC_CheckInteger, 1, ++/*310495*/ OPC_CheckType, MVT::i32, ++/*310497*/ OPC_MoveParent, ++/*310498*/ OPC_MoveChild7, ++/*310499*/ OPC_CheckInteger, 1, ++/*310501*/ OPC_CheckType, MVT::i32, ++/*310503*/ OPC_MoveParent, ++/*310504*/ OPC_MoveChild, 8, ++/*310506*/ OPC_CheckInteger, 1, ++/*310508*/ OPC_CheckType, MVT::i32, ++/*310510*/ OPC_MoveParent, ++/*310511*/ OPC_MoveChild, 9, ++/*310513*/ OPC_CheckInteger, 1, ++/*310515*/ OPC_CheckType, MVT::i32, ++/*310517*/ OPC_MoveParent, ++/*310518*/ OPC_MoveChild, 10, ++/*310520*/ OPC_CheckInteger, 1, ++/*310522*/ OPC_CheckType, MVT::i32, ++/*310524*/ OPC_MoveParent, ++/*310525*/ OPC_MoveChild, 11, ++/*310527*/ OPC_CheckInteger, 1, ++/*310529*/ OPC_CheckType, MVT::i32, ++/*310531*/ OPC_MoveParent, ++/*310532*/ OPC_MoveChild, 12, ++/*310534*/ OPC_CheckInteger, 1, ++/*310536*/ OPC_CheckType, MVT::i32, ++/*310538*/ OPC_MoveParent, ++/*310539*/ OPC_MoveChild, 13, ++/*310541*/ OPC_CheckInteger, 1, ++/*310543*/ OPC_CheckType, MVT::i32, ++/*310545*/ OPC_MoveParent, ++/*310546*/ OPC_MoveChild, 14, ++/*310548*/ OPC_CheckInteger, 1, ++/*310550*/ OPC_CheckType, MVT::i32, ++/*310552*/ OPC_MoveParent, ++/*310553*/ OPC_MoveChild, 15, ++/*310555*/ OPC_CheckInteger, 1, ++/*310557*/ OPC_CheckType, MVT::i32, ++/*310559*/ OPC_MoveParent, ++/*310560*/ OPC_MoveChild, 16, ++/*310562*/ OPC_CheckInteger, 1, ++/*310564*/ OPC_CheckType, MVT::i32, ++/*310566*/ OPC_MoveParent, ++/*310567*/ OPC_MoveChild, 17, ++/*310569*/ OPC_CheckInteger, 1, ++/*310571*/ OPC_CheckType, MVT::i32, ++/*310573*/ OPC_MoveParent, ++/*310574*/ OPC_MoveChild, 18, ++/*310576*/ OPC_CheckInteger, 1, ++/*310578*/ OPC_CheckType, MVT::i32, ++/*310580*/ OPC_MoveParent, ++/*310581*/ OPC_MoveChild, 19, ++/*310583*/ OPC_CheckInteger, 1, ++/*310585*/ OPC_CheckType, MVT::i32, ++/*310587*/ OPC_MoveParent, ++/*310588*/ OPC_MoveChild, 20, ++/*310590*/ OPC_CheckInteger, 1, ++/*310592*/ OPC_CheckType, MVT::i32, ++/*310594*/ OPC_MoveParent, ++/*310595*/ OPC_MoveChild, 21, ++/*310597*/ OPC_CheckInteger, 1, ++/*310599*/ OPC_CheckType, MVT::i32, ++/*310601*/ OPC_MoveParent, ++/*310602*/ OPC_MoveChild, 22, ++/*310604*/ OPC_CheckInteger, 1, ++/*310606*/ OPC_CheckType, MVT::i32, ++/*310608*/ OPC_MoveParent, ++/*310609*/ OPC_MoveChild, 23, ++/*310611*/ OPC_CheckInteger, 1, ++/*310613*/ OPC_CheckType, MVT::i32, ++/*310615*/ OPC_MoveParent, ++/*310616*/ OPC_MoveChild, 24, ++/*310618*/ OPC_CheckInteger, 1, ++/*310620*/ OPC_CheckType, MVT::i32, ++/*310622*/ OPC_MoveParent, ++/*310623*/ OPC_MoveChild, 25, ++/*310625*/ OPC_CheckInteger, 1, ++/*310627*/ OPC_CheckType, MVT::i32, ++/*310629*/ OPC_MoveParent, ++/*310630*/ OPC_MoveChild, 26, ++/*310632*/ OPC_CheckInteger, 1, ++/*310634*/ OPC_CheckType, MVT::i32, ++/*310636*/ OPC_MoveParent, ++/*310637*/ OPC_MoveChild, 27, ++/*310639*/ OPC_CheckInteger, 1, ++/*310641*/ OPC_CheckType, MVT::i32, ++/*310643*/ OPC_MoveParent, ++/*310644*/ OPC_MoveChild, 28, ++/*310646*/ OPC_CheckInteger, 1, ++/*310648*/ OPC_CheckType, MVT::i32, ++/*310650*/ OPC_MoveParent, ++/*310651*/ OPC_MoveChild, 29, ++/*310653*/ OPC_CheckInteger, 1, ++/*310655*/ OPC_CheckType, MVT::i32, ++/*310657*/ OPC_MoveParent, ++/*310658*/ OPC_MoveChild, 30, ++/*310660*/ OPC_CheckInteger, 1, ++/*310662*/ OPC_CheckType, MVT::i32, ++/*310664*/ OPC_MoveParent, ++/*310665*/ OPC_MoveChild, 31, ++/*310667*/ OPC_CheckInteger, 1, ++/*310669*/ OPC_CheckType, MVT::i32, ++/*310671*/ OPC_MoveParent, ++/*310672*/ OPC_MoveParent, ++/*310673*/ OPC_MoveParent, ++/*310674*/ OPC_MoveParent, ++/*310675*/ OPC_MoveParent, ++/*310676*/ OPC_MoveChild1, ++/*310677*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*310680*/ OPC_CheckChild0Integer, 1, ++/*310682*/ OPC_CheckChild0Type, MVT::i32, ++/*310684*/ OPC_CheckChild1Integer, 1, ++/*310686*/ OPC_CheckChild1Type, MVT::i32, ++/*310688*/ OPC_CheckChild2Integer, 1, ++/*310690*/ OPC_CheckChild2Type, MVT::i32, ++/*310692*/ OPC_CheckChild3Integer, 1, ++/*310694*/ OPC_CheckChild3Type, MVT::i32, ++/*310696*/ OPC_CheckChild4Integer, 1, ++/*310698*/ OPC_CheckChild4Type, MVT::i32, ++/*310700*/ OPC_MoveChild5, ++/*310701*/ OPC_CheckInteger, 1, ++/*310703*/ OPC_CheckType, MVT::i32, ++/*310705*/ OPC_MoveParent, ++/*310706*/ OPC_MoveChild6, ++/*310707*/ OPC_CheckInteger, 1, ++/*310709*/ OPC_CheckType, MVT::i32, ++/*310711*/ OPC_MoveParent, ++/*310712*/ OPC_MoveChild7, ++/*310713*/ OPC_CheckInteger, 1, ++/*310715*/ OPC_CheckType, MVT::i32, ++/*310717*/ OPC_MoveParent, ++/*310718*/ OPC_MoveChild, 8, ++/*310720*/ OPC_CheckInteger, 1, ++/*310722*/ OPC_CheckType, MVT::i32, ++/*310724*/ OPC_MoveParent, ++/*310725*/ OPC_MoveChild, 9, ++/*310727*/ OPC_CheckInteger, 1, ++/*310729*/ OPC_CheckType, MVT::i32, ++/*310731*/ OPC_MoveParent, ++/*310732*/ OPC_MoveChild, 10, ++/*310734*/ OPC_CheckInteger, 1, ++/*310736*/ OPC_CheckType, MVT::i32, ++/*310738*/ OPC_MoveParent, ++/*310739*/ OPC_MoveChild, 11, ++/*310741*/ OPC_CheckInteger, 1, ++/*310743*/ OPC_CheckType, MVT::i32, ++/*310745*/ OPC_MoveParent, ++/*310746*/ OPC_MoveChild, 12, ++/*310748*/ OPC_CheckInteger, 1, ++/*310750*/ OPC_CheckType, MVT::i32, ++/*310752*/ OPC_MoveParent, ++/*310753*/ OPC_MoveChild, 13, ++/*310755*/ OPC_CheckInteger, 1, ++/*310757*/ OPC_CheckType, MVT::i32, ++/*310759*/ OPC_MoveParent, ++/*310760*/ OPC_MoveChild, 14, ++/*310762*/ OPC_CheckInteger, 1, ++/*310764*/ OPC_CheckType, MVT::i32, ++/*310766*/ OPC_MoveParent, ++/*310767*/ OPC_MoveChild, 15, ++/*310769*/ OPC_CheckInteger, 1, ++/*310771*/ OPC_CheckType, MVT::i32, ++/*310773*/ OPC_MoveParent, ++/*310774*/ OPC_MoveChild, 16, ++/*310776*/ OPC_CheckInteger, 1, ++/*310778*/ OPC_CheckType, MVT::i32, ++/*310780*/ OPC_MoveParent, ++/*310781*/ OPC_MoveChild, 17, ++/*310783*/ OPC_CheckInteger, 1, ++/*310785*/ OPC_CheckType, MVT::i32, ++/*310787*/ OPC_MoveParent, ++/*310788*/ OPC_MoveChild, 18, ++/*310790*/ OPC_CheckInteger, 1, ++/*310792*/ OPC_CheckType, MVT::i32, ++/*310794*/ OPC_MoveParent, ++/*310795*/ OPC_MoveChild, 19, ++/*310797*/ OPC_CheckInteger, 1, ++/*310799*/ OPC_CheckType, MVT::i32, ++/*310801*/ OPC_MoveParent, ++/*310802*/ OPC_MoveChild, 20, ++/*310804*/ OPC_CheckInteger, 1, ++/*310806*/ OPC_CheckType, MVT::i32, ++/*310808*/ OPC_MoveParent, ++/*310809*/ OPC_MoveChild, 21, ++/*310811*/ OPC_CheckInteger, 1, ++/*310813*/ OPC_CheckType, MVT::i32, ++/*310815*/ OPC_MoveParent, ++/*310816*/ OPC_MoveChild, 22, ++/*310818*/ OPC_CheckInteger, 1, ++/*310820*/ OPC_CheckType, MVT::i32, ++/*310822*/ OPC_MoveParent, ++/*310823*/ OPC_MoveChild, 23, ++/*310825*/ OPC_CheckInteger, 1, ++/*310827*/ OPC_CheckType, MVT::i32, ++/*310829*/ OPC_MoveParent, ++/*310830*/ OPC_MoveChild, 24, ++/*310832*/ OPC_CheckInteger, 1, ++/*310834*/ OPC_CheckType, MVT::i32, ++/*310836*/ OPC_MoveParent, ++/*310837*/ OPC_MoveChild, 25, ++/*310839*/ OPC_CheckInteger, 1, ++/*310841*/ OPC_CheckType, MVT::i32, ++/*310843*/ OPC_MoveParent, ++/*310844*/ OPC_MoveChild, 26, ++/*310846*/ OPC_CheckInteger, 1, ++/*310848*/ OPC_CheckType, MVT::i32, ++/*310850*/ OPC_MoveParent, ++/*310851*/ OPC_MoveChild, 27, ++/*310853*/ OPC_CheckInteger, 1, ++/*310855*/ OPC_CheckType, MVT::i32, ++/*310857*/ OPC_MoveParent, ++/*310858*/ OPC_MoveChild, 28, ++/*310860*/ OPC_CheckInteger, 1, ++/*310862*/ OPC_CheckType, MVT::i32, ++/*310864*/ OPC_MoveParent, ++/*310865*/ OPC_MoveChild, 29, ++/*310867*/ OPC_CheckInteger, 1, ++/*310869*/ OPC_CheckType, MVT::i32, ++/*310871*/ OPC_MoveParent, ++/*310872*/ OPC_MoveChild, 30, ++/*310874*/ OPC_CheckInteger, 1, ++/*310876*/ OPC_CheckType, MVT::i32, ++/*310878*/ OPC_MoveParent, ++/*310879*/ OPC_MoveChild, 31, ++/*310881*/ OPC_CheckInteger, 1, ++/*310883*/ OPC_CheckType, MVT::i32, ++/*310885*/ OPC_MoveParent, ++/*310886*/ OPC_CheckType, MVT::v32i8, ++/*310888*/ OPC_MoveParent, ++/*310889*/ OPC_CheckType, MVT::v32i8, ++/*310891*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*310893*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*310901*/ 0, /*End of Scope*/ ++/*310902*/ /*Scope*/ 126|128,6/*894*/, /*->311798*/ ++/*310904*/ OPC_CheckChild0Same, 1, ++/*310906*/ OPC_MoveChild1, ++/*310907*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*310910*/ OPC_Scope, 57|128,3/*441*/, /*->311354*/ // 2 children in Scope ++/*310913*/ OPC_MoveChild0, ++/*310914*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*310917*/ OPC_CheckChild0Integer, 1, ++/*310919*/ OPC_CheckChild0Type, MVT::i32, ++/*310921*/ OPC_CheckChild1Integer, 1, ++/*310923*/ OPC_CheckChild1Type, MVT::i32, ++/*310925*/ OPC_CheckChild2Integer, 1, ++/*310927*/ OPC_CheckChild2Type, MVT::i32, ++/*310929*/ OPC_CheckChild3Integer, 1, ++/*310931*/ OPC_CheckChild3Type, MVT::i32, ++/*310933*/ OPC_CheckChild4Integer, 1, ++/*310935*/ OPC_CheckChild4Type, MVT::i32, ++/*310937*/ OPC_MoveChild5, ++/*310938*/ OPC_CheckInteger, 1, ++/*310940*/ OPC_CheckType, MVT::i32, ++/*310942*/ OPC_MoveParent, ++/*310943*/ OPC_MoveChild6, ++/*310944*/ OPC_CheckInteger, 1, ++/*310946*/ OPC_CheckType, MVT::i32, ++/*310948*/ OPC_MoveParent, ++/*310949*/ OPC_MoveChild7, ++/*310950*/ OPC_CheckInteger, 1, ++/*310952*/ OPC_CheckType, MVT::i32, ++/*310954*/ OPC_MoveParent, ++/*310955*/ OPC_MoveChild, 8, ++/*310957*/ OPC_CheckInteger, 1, ++/*310959*/ OPC_CheckType, MVT::i32, ++/*310961*/ OPC_MoveParent, ++/*310962*/ OPC_MoveChild, 9, ++/*310964*/ OPC_CheckInteger, 1, ++/*310966*/ OPC_CheckType, MVT::i32, ++/*310968*/ OPC_MoveParent, ++/*310969*/ OPC_MoveChild, 10, ++/*310971*/ OPC_CheckInteger, 1, ++/*310973*/ OPC_CheckType, MVT::i32, ++/*310975*/ OPC_MoveParent, ++/*310976*/ OPC_MoveChild, 11, ++/*310978*/ OPC_CheckInteger, 1, ++/*310980*/ OPC_CheckType, MVT::i32, ++/*310982*/ OPC_MoveParent, ++/*310983*/ OPC_MoveChild, 12, ++/*310985*/ OPC_CheckInteger, 1, ++/*310987*/ OPC_CheckType, MVT::i32, ++/*310989*/ OPC_MoveParent, ++/*310990*/ OPC_MoveChild, 13, ++/*310992*/ OPC_CheckInteger, 1, ++/*310994*/ OPC_CheckType, MVT::i32, ++/*310996*/ OPC_MoveParent, ++/*310997*/ OPC_MoveChild, 14, ++/*310999*/ OPC_CheckInteger, 1, ++/*311001*/ OPC_CheckType, MVT::i32, ++/*311003*/ OPC_MoveParent, ++/*311004*/ OPC_MoveChild, 15, ++/*311006*/ OPC_CheckInteger, 1, ++/*311008*/ OPC_CheckType, MVT::i32, ++/*311010*/ OPC_MoveParent, ++/*311011*/ OPC_MoveChild, 16, ++/*311013*/ OPC_CheckInteger, 1, ++/*311015*/ OPC_CheckType, MVT::i32, ++/*311017*/ OPC_MoveParent, ++/*311018*/ OPC_MoveChild, 17, ++/*311020*/ OPC_CheckInteger, 1, ++/*311022*/ OPC_CheckType, MVT::i32, ++/*311024*/ OPC_MoveParent, ++/*311025*/ OPC_MoveChild, 18, ++/*311027*/ OPC_CheckInteger, 1, ++/*311029*/ OPC_CheckType, MVT::i32, ++/*311031*/ OPC_MoveParent, ++/*311032*/ OPC_MoveChild, 19, ++/*311034*/ OPC_CheckInteger, 1, ++/*311036*/ OPC_CheckType, MVT::i32, ++/*311038*/ OPC_MoveParent, ++/*311039*/ OPC_MoveChild, 20, ++/*311041*/ OPC_CheckInteger, 1, ++/*311043*/ OPC_CheckType, MVT::i32, ++/*311045*/ OPC_MoveParent, ++/*311046*/ OPC_MoveChild, 21, ++/*311048*/ OPC_CheckInteger, 1, ++/*311050*/ OPC_CheckType, MVT::i32, ++/*311052*/ OPC_MoveParent, ++/*311053*/ OPC_MoveChild, 22, ++/*311055*/ OPC_CheckInteger, 1, ++/*311057*/ OPC_CheckType, MVT::i32, ++/*311059*/ OPC_MoveParent, ++/*311060*/ OPC_MoveChild, 23, ++/*311062*/ OPC_CheckInteger, 1, ++/*311064*/ OPC_CheckType, MVT::i32, ++/*311066*/ OPC_MoveParent, ++/*311067*/ OPC_MoveChild, 24, ++/*311069*/ OPC_CheckInteger, 1, ++/*311071*/ OPC_CheckType, MVT::i32, ++/*311073*/ OPC_MoveParent, ++/*311074*/ OPC_MoveChild, 25, ++/*311076*/ OPC_CheckInteger, 1, ++/*311078*/ OPC_CheckType, MVT::i32, ++/*311080*/ OPC_MoveParent, ++/*311081*/ OPC_MoveChild, 26, ++/*311083*/ OPC_CheckInteger, 1, ++/*311085*/ OPC_CheckType, MVT::i32, ++/*311087*/ OPC_MoveParent, ++/*311088*/ OPC_MoveChild, 27, ++/*311090*/ OPC_CheckInteger, 1, ++/*311092*/ OPC_CheckType, MVT::i32, ++/*311094*/ OPC_MoveParent, ++/*311095*/ OPC_MoveChild, 28, ++/*311097*/ OPC_CheckInteger, 1, ++/*311099*/ OPC_CheckType, MVT::i32, ++/*311101*/ OPC_MoveParent, ++/*311102*/ OPC_MoveChild, 29, ++/*311104*/ OPC_CheckInteger, 1, ++/*311106*/ OPC_CheckType, MVT::i32, ++/*311108*/ OPC_MoveParent, ++/*311109*/ OPC_MoveChild, 30, ++/*311111*/ OPC_CheckInteger, 1, ++/*311113*/ OPC_CheckType, MVT::i32, ++/*311115*/ OPC_MoveParent, ++/*311116*/ OPC_MoveChild, 31, ++/*311118*/ OPC_CheckInteger, 1, ++/*311120*/ OPC_CheckType, MVT::i32, ++/*311122*/ OPC_MoveParent, ++/*311123*/ OPC_MoveParent, ++/*311124*/ OPC_CheckChild1Same, 0, ++/*311126*/ OPC_MoveParent, ++/*311127*/ OPC_MoveParent, ++/*311128*/ OPC_MoveParent, ++/*311129*/ OPC_MoveChild1, ++/*311130*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*311133*/ OPC_CheckChild0Integer, 1, ++/*311135*/ OPC_CheckChild0Type, MVT::i32, ++/*311137*/ OPC_CheckChild1Integer, 1, ++/*311139*/ OPC_CheckChild1Type, MVT::i32, ++/*311141*/ OPC_CheckChild2Integer, 1, ++/*311143*/ OPC_CheckChild2Type, MVT::i32, ++/*311145*/ OPC_CheckChild3Integer, 1, ++/*311147*/ OPC_CheckChild3Type, MVT::i32, ++/*311149*/ OPC_CheckChild4Integer, 1, ++/*311151*/ OPC_CheckChild4Type, MVT::i32, ++/*311153*/ OPC_MoveChild5, ++/*311154*/ OPC_CheckInteger, 1, ++/*311156*/ OPC_CheckType, MVT::i32, ++/*311158*/ OPC_MoveParent, ++/*311159*/ OPC_MoveChild6, ++/*311160*/ OPC_CheckInteger, 1, ++/*311162*/ OPC_CheckType, MVT::i32, ++/*311164*/ OPC_MoveParent, ++/*311165*/ OPC_MoveChild7, ++/*311166*/ OPC_CheckInteger, 1, ++/*311168*/ OPC_CheckType, MVT::i32, ++/*311170*/ OPC_MoveParent, ++/*311171*/ OPC_MoveChild, 8, ++/*311173*/ OPC_CheckInteger, 1, ++/*311175*/ OPC_CheckType, MVT::i32, ++/*311177*/ OPC_MoveParent, ++/*311178*/ OPC_MoveChild, 9, ++/*311180*/ OPC_CheckInteger, 1, ++/*311182*/ OPC_CheckType, MVT::i32, ++/*311184*/ OPC_MoveParent, ++/*311185*/ OPC_MoveChild, 10, ++/*311187*/ OPC_CheckInteger, 1, ++/*311189*/ OPC_CheckType, MVT::i32, ++/*311191*/ OPC_MoveParent, ++/*311192*/ OPC_MoveChild, 11, ++/*311194*/ OPC_CheckInteger, 1, ++/*311196*/ OPC_CheckType, MVT::i32, ++/*311198*/ OPC_MoveParent, ++/*311199*/ OPC_MoveChild, 12, ++/*311201*/ OPC_CheckInteger, 1, ++/*311203*/ OPC_CheckType, MVT::i32, ++/*311205*/ OPC_MoveParent, ++/*311206*/ OPC_MoveChild, 13, ++/*311208*/ OPC_CheckInteger, 1, ++/*311210*/ OPC_CheckType, MVT::i32, ++/*311212*/ OPC_MoveParent, ++/*311213*/ OPC_MoveChild, 14, ++/*311215*/ OPC_CheckInteger, 1, ++/*311217*/ OPC_CheckType, MVT::i32, ++/*311219*/ OPC_MoveParent, ++/*311220*/ OPC_MoveChild, 15, ++/*311222*/ OPC_CheckInteger, 1, ++/*311224*/ OPC_CheckType, MVT::i32, ++/*311226*/ OPC_MoveParent, ++/*311227*/ OPC_MoveChild, 16, ++/*311229*/ OPC_CheckInteger, 1, ++/*311231*/ OPC_CheckType, MVT::i32, ++/*311233*/ OPC_MoveParent, ++/*311234*/ OPC_MoveChild, 17, ++/*311236*/ OPC_CheckInteger, 1, ++/*311238*/ OPC_CheckType, MVT::i32, ++/*311240*/ OPC_MoveParent, ++/*311241*/ OPC_MoveChild, 18, ++/*311243*/ OPC_CheckInteger, 1, ++/*311245*/ OPC_CheckType, MVT::i32, ++/*311247*/ OPC_MoveParent, ++/*311248*/ OPC_MoveChild, 19, ++/*311250*/ OPC_CheckInteger, 1, ++/*311252*/ OPC_CheckType, MVT::i32, ++/*311254*/ OPC_MoveParent, ++/*311255*/ OPC_MoveChild, 20, ++/*311257*/ OPC_CheckInteger, 1, ++/*311259*/ OPC_CheckType, MVT::i32, ++/*311261*/ OPC_MoveParent, ++/*311262*/ OPC_MoveChild, 21, ++/*311264*/ OPC_CheckInteger, 1, ++/*311266*/ OPC_CheckType, MVT::i32, ++/*311268*/ OPC_MoveParent, ++/*311269*/ OPC_MoveChild, 22, ++/*311271*/ OPC_CheckInteger, 1, ++/*311273*/ OPC_CheckType, MVT::i32, ++/*311275*/ OPC_MoveParent, ++/*311276*/ OPC_MoveChild, 23, ++/*311278*/ OPC_CheckInteger, 1, ++/*311280*/ OPC_CheckType, MVT::i32, ++/*311282*/ OPC_MoveParent, ++/*311283*/ OPC_MoveChild, 24, ++/*311285*/ OPC_CheckInteger, 1, ++/*311287*/ OPC_CheckType, MVT::i32, ++/*311289*/ OPC_MoveParent, ++/*311290*/ OPC_MoveChild, 25, ++/*311292*/ OPC_CheckInteger, 1, ++/*311294*/ OPC_CheckType, MVT::i32, ++/*311296*/ OPC_MoveParent, ++/*311297*/ OPC_MoveChild, 26, ++/*311299*/ OPC_CheckInteger, 1, ++/*311301*/ OPC_CheckType, MVT::i32, ++/*311303*/ OPC_MoveParent, ++/*311304*/ OPC_MoveChild, 27, ++/*311306*/ OPC_CheckInteger, 1, ++/*311308*/ OPC_CheckType, MVT::i32, ++/*311310*/ OPC_MoveParent, ++/*311311*/ OPC_MoveChild, 28, ++/*311313*/ OPC_CheckInteger, 1, ++/*311315*/ OPC_CheckType, MVT::i32, ++/*311317*/ OPC_MoveParent, ++/*311318*/ OPC_MoveChild, 29, ++/*311320*/ OPC_CheckInteger, 1, ++/*311322*/ OPC_CheckType, MVT::i32, ++/*311324*/ OPC_MoveParent, ++/*311325*/ OPC_MoveChild, 30, ++/*311327*/ OPC_CheckInteger, 1, ++/*311329*/ OPC_CheckType, MVT::i32, ++/*311331*/ OPC_MoveParent, ++/*311332*/ OPC_MoveChild, 31, ++/*311334*/ OPC_CheckInteger, 1, ++/*311336*/ OPC_CheckType, MVT::i32, ++/*311338*/ OPC_MoveParent, ++/*311339*/ OPC_CheckType, MVT::v32i8, ++/*311341*/ OPC_MoveParent, ++/*311342*/ OPC_CheckType, MVT::v32i8, ++/*311344*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*311346*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*311354*/ /*Scope*/ 57|128,3/*441*/, /*->311797*/ ++/*311356*/ OPC_CheckChild0Same, 0, ++/*311358*/ OPC_MoveChild1, ++/*311359*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*311362*/ OPC_CheckChild0Integer, 1, ++/*311364*/ OPC_CheckChild0Type, MVT::i32, ++/*311366*/ OPC_CheckChild1Integer, 1, ++/*311368*/ OPC_CheckChild1Type, MVT::i32, ++/*311370*/ OPC_CheckChild2Integer, 1, ++/*311372*/ OPC_CheckChild2Type, MVT::i32, ++/*311374*/ OPC_CheckChild3Integer, 1, ++/*311376*/ OPC_CheckChild3Type, MVT::i32, ++/*311378*/ OPC_CheckChild4Integer, 1, ++/*311380*/ OPC_CheckChild4Type, MVT::i32, ++/*311382*/ OPC_MoveChild5, ++/*311383*/ OPC_CheckInteger, 1, ++/*311385*/ OPC_CheckType, MVT::i32, ++/*311387*/ OPC_MoveParent, ++/*311388*/ OPC_MoveChild6, ++/*311389*/ OPC_CheckInteger, 1, ++/*311391*/ OPC_CheckType, MVT::i32, ++/*311393*/ OPC_MoveParent, ++/*311394*/ OPC_MoveChild7, ++/*311395*/ OPC_CheckInteger, 1, ++/*311397*/ OPC_CheckType, MVT::i32, ++/*311399*/ OPC_MoveParent, ++/*311400*/ OPC_MoveChild, 8, ++/*311402*/ OPC_CheckInteger, 1, ++/*311404*/ OPC_CheckType, MVT::i32, ++/*311406*/ OPC_MoveParent, ++/*311407*/ OPC_MoveChild, 9, ++/*311409*/ OPC_CheckInteger, 1, ++/*311411*/ OPC_CheckType, MVT::i32, ++/*311413*/ OPC_MoveParent, ++/*311414*/ OPC_MoveChild, 10, ++/*311416*/ OPC_CheckInteger, 1, ++/*311418*/ OPC_CheckType, MVT::i32, ++/*311420*/ OPC_MoveParent, ++/*311421*/ OPC_MoveChild, 11, ++/*311423*/ OPC_CheckInteger, 1, ++/*311425*/ OPC_CheckType, MVT::i32, ++/*311427*/ OPC_MoveParent, ++/*311428*/ OPC_MoveChild, 12, ++/*311430*/ OPC_CheckInteger, 1, ++/*311432*/ OPC_CheckType, MVT::i32, ++/*311434*/ OPC_MoveParent, ++/*311435*/ OPC_MoveChild, 13, ++/*311437*/ OPC_CheckInteger, 1, ++/*311439*/ OPC_CheckType, MVT::i32, ++/*311441*/ OPC_MoveParent, ++/*311442*/ OPC_MoveChild, 14, ++/*311444*/ OPC_CheckInteger, 1, ++/*311446*/ OPC_CheckType, MVT::i32, ++/*311448*/ OPC_MoveParent, ++/*311449*/ OPC_MoveChild, 15, ++/*311451*/ OPC_CheckInteger, 1, ++/*311453*/ OPC_CheckType, MVT::i32, ++/*311455*/ OPC_MoveParent, ++/*311456*/ OPC_MoveChild, 16, ++/*311458*/ OPC_CheckInteger, 1, ++/*311460*/ OPC_CheckType, MVT::i32, ++/*311462*/ OPC_MoveParent, ++/*311463*/ OPC_MoveChild, 17, ++/*311465*/ OPC_CheckInteger, 1, ++/*311467*/ OPC_CheckType, MVT::i32, ++/*311469*/ OPC_MoveParent, ++/*311470*/ OPC_MoveChild, 18, ++/*311472*/ OPC_CheckInteger, 1, ++/*311474*/ OPC_CheckType, MVT::i32, ++/*311476*/ OPC_MoveParent, ++/*311477*/ OPC_MoveChild, 19, ++/*311479*/ OPC_CheckInteger, 1, ++/*311481*/ OPC_CheckType, MVT::i32, ++/*311483*/ OPC_MoveParent, ++/*311484*/ OPC_MoveChild, 20, ++/*311486*/ OPC_CheckInteger, 1, ++/*311488*/ OPC_CheckType, MVT::i32, ++/*311490*/ OPC_MoveParent, ++/*311491*/ OPC_MoveChild, 21, ++/*311493*/ OPC_CheckInteger, 1, ++/*311495*/ OPC_CheckType, MVT::i32, ++/*311497*/ OPC_MoveParent, ++/*311498*/ OPC_MoveChild, 22, ++/*311500*/ OPC_CheckInteger, 1, ++/*311502*/ OPC_CheckType, MVT::i32, ++/*311504*/ OPC_MoveParent, ++/*311505*/ OPC_MoveChild, 23, ++/*311507*/ OPC_CheckInteger, 1, ++/*311509*/ OPC_CheckType, MVT::i32, ++/*311511*/ OPC_MoveParent, ++/*311512*/ OPC_MoveChild, 24, ++/*311514*/ OPC_CheckInteger, 1, ++/*311516*/ OPC_CheckType, MVT::i32, ++/*311518*/ OPC_MoveParent, ++/*311519*/ OPC_MoveChild, 25, ++/*311521*/ OPC_CheckInteger, 1, ++/*311523*/ OPC_CheckType, MVT::i32, ++/*311525*/ OPC_MoveParent, ++/*311526*/ OPC_MoveChild, 26, ++/*311528*/ OPC_CheckInteger, 1, ++/*311530*/ OPC_CheckType, MVT::i32, ++/*311532*/ OPC_MoveParent, ++/*311533*/ OPC_MoveChild, 27, ++/*311535*/ OPC_CheckInteger, 1, ++/*311537*/ OPC_CheckType, MVT::i32, ++/*311539*/ OPC_MoveParent, ++/*311540*/ OPC_MoveChild, 28, ++/*311542*/ OPC_CheckInteger, 1, ++/*311544*/ OPC_CheckType, MVT::i32, ++/*311546*/ OPC_MoveParent, ++/*311547*/ OPC_MoveChild, 29, ++/*311549*/ OPC_CheckInteger, 1, ++/*311551*/ OPC_CheckType, MVT::i32, ++/*311553*/ OPC_MoveParent, ++/*311554*/ OPC_MoveChild, 30, ++/*311556*/ OPC_CheckInteger, 1, ++/*311558*/ OPC_CheckType, MVT::i32, ++/*311560*/ OPC_MoveParent, ++/*311561*/ OPC_MoveChild, 31, ++/*311563*/ OPC_CheckInteger, 1, ++/*311565*/ OPC_CheckType, MVT::i32, ++/*311567*/ OPC_MoveParent, ++/*311568*/ OPC_MoveParent, ++/*311569*/ OPC_MoveParent, ++/*311570*/ OPC_MoveParent, ++/*311571*/ OPC_MoveParent, ++/*311572*/ OPC_MoveChild1, ++/*311573*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*311576*/ OPC_CheckChild0Integer, 1, ++/*311578*/ OPC_CheckChild0Type, MVT::i32, ++/*311580*/ OPC_CheckChild1Integer, 1, ++/*311582*/ OPC_CheckChild1Type, MVT::i32, ++/*311584*/ OPC_CheckChild2Integer, 1, ++/*311586*/ OPC_CheckChild2Type, MVT::i32, ++/*311588*/ OPC_CheckChild3Integer, 1, ++/*311590*/ OPC_CheckChild3Type, MVT::i32, ++/*311592*/ OPC_CheckChild4Integer, 1, ++/*311594*/ OPC_CheckChild4Type, MVT::i32, ++/*311596*/ OPC_MoveChild5, ++/*311597*/ OPC_CheckInteger, 1, ++/*311599*/ OPC_CheckType, MVT::i32, ++/*311601*/ OPC_MoveParent, ++/*311602*/ OPC_MoveChild6, ++/*311603*/ OPC_CheckInteger, 1, ++/*311605*/ OPC_CheckType, MVT::i32, ++/*311607*/ OPC_MoveParent, ++/*311608*/ OPC_MoveChild7, ++/*311609*/ OPC_CheckInteger, 1, ++/*311611*/ OPC_CheckType, MVT::i32, ++/*311613*/ OPC_MoveParent, ++/*311614*/ OPC_MoveChild, 8, ++/*311616*/ OPC_CheckInteger, 1, ++/*311618*/ OPC_CheckType, MVT::i32, ++/*311620*/ OPC_MoveParent, ++/*311621*/ OPC_MoveChild, 9, ++/*311623*/ OPC_CheckInteger, 1, ++/*311625*/ OPC_CheckType, MVT::i32, ++/*311627*/ OPC_MoveParent, ++/*311628*/ OPC_MoveChild, 10, ++/*311630*/ OPC_CheckInteger, 1, ++/*311632*/ OPC_CheckType, MVT::i32, ++/*311634*/ OPC_MoveParent, ++/*311635*/ OPC_MoveChild, 11, ++/*311637*/ OPC_CheckInteger, 1, ++/*311639*/ OPC_CheckType, MVT::i32, ++/*311641*/ OPC_MoveParent, ++/*311642*/ OPC_MoveChild, 12, ++/*311644*/ OPC_CheckInteger, 1, ++/*311646*/ OPC_CheckType, MVT::i32, ++/*311648*/ OPC_MoveParent, ++/*311649*/ OPC_MoveChild, 13, ++/*311651*/ OPC_CheckInteger, 1, ++/*311653*/ OPC_CheckType, MVT::i32, ++/*311655*/ OPC_MoveParent, ++/*311656*/ OPC_MoveChild, 14, ++/*311658*/ OPC_CheckInteger, 1, ++/*311660*/ OPC_CheckType, MVT::i32, ++/*311662*/ OPC_MoveParent, ++/*311663*/ OPC_MoveChild, 15, ++/*311665*/ OPC_CheckInteger, 1, ++/*311667*/ OPC_CheckType, MVT::i32, ++/*311669*/ OPC_MoveParent, ++/*311670*/ OPC_MoveChild, 16, ++/*311672*/ OPC_CheckInteger, 1, ++/*311674*/ OPC_CheckType, MVT::i32, ++/*311676*/ OPC_MoveParent, ++/*311677*/ OPC_MoveChild, 17, ++/*311679*/ OPC_CheckInteger, 1, ++/*311681*/ OPC_CheckType, MVT::i32, ++/*311683*/ OPC_MoveParent, ++/*311684*/ OPC_MoveChild, 18, ++/*311686*/ OPC_CheckInteger, 1, ++/*311688*/ OPC_CheckType, MVT::i32, ++/*311690*/ OPC_MoveParent, ++/*311691*/ OPC_MoveChild, 19, ++/*311693*/ OPC_CheckInteger, 1, ++/*311695*/ OPC_CheckType, MVT::i32, ++/*311697*/ OPC_MoveParent, ++/*311698*/ OPC_MoveChild, 20, ++/*311700*/ OPC_CheckInteger, 1, ++/*311702*/ OPC_CheckType, MVT::i32, ++/*311704*/ OPC_MoveParent, ++/*311705*/ OPC_MoveChild, 21, ++/*311707*/ OPC_CheckInteger, 1, ++/*311709*/ OPC_CheckType, MVT::i32, ++/*311711*/ OPC_MoveParent, ++/*311712*/ OPC_MoveChild, 22, ++/*311714*/ OPC_CheckInteger, 1, ++/*311716*/ OPC_CheckType, MVT::i32, ++/*311718*/ OPC_MoveParent, ++/*311719*/ OPC_MoveChild, 23, ++/*311721*/ OPC_CheckInteger, 1, ++/*311723*/ OPC_CheckType, MVT::i32, ++/*311725*/ OPC_MoveParent, ++/*311726*/ OPC_MoveChild, 24, ++/*311728*/ OPC_CheckInteger, 1, ++/*311730*/ OPC_CheckType, MVT::i32, ++/*311732*/ OPC_MoveParent, ++/*311733*/ OPC_MoveChild, 25, ++/*311735*/ OPC_CheckInteger, 1, ++/*311737*/ OPC_CheckType, MVT::i32, ++/*311739*/ OPC_MoveParent, ++/*311740*/ OPC_MoveChild, 26, ++/*311742*/ OPC_CheckInteger, 1, ++/*311744*/ OPC_CheckType, MVT::i32, ++/*311746*/ OPC_MoveParent, ++/*311747*/ OPC_MoveChild, 27, ++/*311749*/ OPC_CheckInteger, 1, ++/*311751*/ OPC_CheckType, MVT::i32, ++/*311753*/ OPC_MoveParent, ++/*311754*/ OPC_MoveChild, 28, ++/*311756*/ OPC_CheckInteger, 1, ++/*311758*/ OPC_CheckType, MVT::i32, ++/*311760*/ OPC_MoveParent, ++/*311761*/ OPC_MoveChild, 29, ++/*311763*/ OPC_CheckInteger, 1, ++/*311765*/ OPC_CheckType, MVT::i32, ++/*311767*/ OPC_MoveParent, ++/*311768*/ OPC_MoveChild, 30, ++/*311770*/ OPC_CheckInteger, 1, ++/*311772*/ OPC_CheckType, MVT::i32, ++/*311774*/ OPC_MoveParent, ++/*311775*/ OPC_MoveChild, 31, ++/*311777*/ OPC_CheckInteger, 1, ++/*311779*/ OPC_CheckType, MVT::i32, ++/*311781*/ OPC_MoveParent, ++/*311782*/ OPC_CheckType, MVT::v32i8, ++/*311784*/ OPC_MoveParent, ++/*311785*/ OPC_CheckType, MVT::v32i8, ++/*311787*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*311789*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*311797*/ 0, /*End of Scope*/ ++/*311798*/ /*Scope*/ 45|128,5/*685*/, /*->312485*/ ++/*311800*/ OPC_MoveChild0, ++/*311801*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*311804*/ OPC_CheckChild0Integer, 1, ++/*311806*/ OPC_CheckChild0Type, MVT::i32, ++/*311808*/ OPC_CheckChild1Integer, 1, ++/*311810*/ OPC_CheckChild1Type, MVT::i32, ++/*311812*/ OPC_CheckChild2Integer, 1, ++/*311814*/ OPC_CheckChild2Type, MVT::i32, ++/*311816*/ OPC_CheckChild3Integer, 1, ++/*311818*/ OPC_CheckChild3Type, MVT::i32, ++/*311820*/ OPC_CheckChild4Integer, 1, ++/*311822*/ OPC_CheckChild4Type, MVT::i32, ++/*311824*/ OPC_MoveChild5, ++/*311825*/ OPC_CheckInteger, 1, ++/*311827*/ OPC_CheckType, MVT::i32, ++/*311829*/ OPC_MoveParent, ++/*311830*/ OPC_MoveChild6, ++/*311831*/ OPC_CheckInteger, 1, ++/*311833*/ OPC_CheckType, MVT::i32, ++/*311835*/ OPC_MoveParent, ++/*311836*/ OPC_MoveChild7, ++/*311837*/ OPC_CheckInteger, 1, ++/*311839*/ OPC_CheckType, MVT::i32, ++/*311841*/ OPC_MoveParent, ++/*311842*/ OPC_MoveChild, 8, ++/*311844*/ OPC_CheckInteger, 1, ++/*311846*/ OPC_CheckType, MVT::i32, ++/*311848*/ OPC_MoveParent, ++/*311849*/ OPC_MoveChild, 9, ++/*311851*/ OPC_CheckInteger, 1, ++/*311853*/ OPC_CheckType, MVT::i32, ++/*311855*/ OPC_MoveParent, ++/*311856*/ OPC_MoveChild, 10, ++/*311858*/ OPC_CheckInteger, 1, ++/*311860*/ OPC_CheckType, MVT::i32, ++/*311862*/ OPC_MoveParent, ++/*311863*/ OPC_MoveChild, 11, ++/*311865*/ OPC_CheckInteger, 1, ++/*311867*/ OPC_CheckType, MVT::i32, ++/*311869*/ OPC_MoveParent, ++/*311870*/ OPC_MoveChild, 12, ++/*311872*/ OPC_CheckInteger, 1, ++/*311874*/ OPC_CheckType, MVT::i32, ++/*311876*/ OPC_MoveParent, ++/*311877*/ OPC_MoveChild, 13, ++/*311879*/ OPC_CheckInteger, 1, ++/*311881*/ OPC_CheckType, MVT::i32, ++/*311883*/ OPC_MoveParent, ++/*311884*/ OPC_MoveChild, 14, ++/*311886*/ OPC_CheckInteger, 1, ++/*311888*/ OPC_CheckType, MVT::i32, ++/*311890*/ OPC_MoveParent, ++/*311891*/ OPC_MoveChild, 15, ++/*311893*/ OPC_CheckInteger, 1, ++/*311895*/ OPC_CheckType, MVT::i32, ++/*311897*/ OPC_MoveParent, ++/*311898*/ OPC_MoveChild, 16, ++/*311900*/ OPC_CheckInteger, 1, ++/*311902*/ OPC_CheckType, MVT::i32, ++/*311904*/ OPC_MoveParent, ++/*311905*/ OPC_MoveChild, 17, ++/*311907*/ OPC_CheckInteger, 1, ++/*311909*/ OPC_CheckType, MVT::i32, ++/*311911*/ OPC_MoveParent, ++/*311912*/ OPC_MoveChild, 18, ++/*311914*/ OPC_CheckInteger, 1, ++/*311916*/ OPC_CheckType, MVT::i32, ++/*311918*/ OPC_MoveParent, ++/*311919*/ OPC_MoveChild, 19, ++/*311921*/ OPC_CheckInteger, 1, ++/*311923*/ OPC_CheckType, MVT::i32, ++/*311925*/ OPC_MoveParent, ++/*311926*/ OPC_MoveChild, 20, ++/*311928*/ OPC_CheckInteger, 1, ++/*311930*/ OPC_CheckType, MVT::i32, ++/*311932*/ OPC_MoveParent, ++/*311933*/ OPC_MoveChild, 21, ++/*311935*/ OPC_CheckInteger, 1, ++/*311937*/ OPC_CheckType, MVT::i32, ++/*311939*/ OPC_MoveParent, ++/*311940*/ OPC_MoveChild, 22, ++/*311942*/ OPC_CheckInteger, 1, ++/*311944*/ OPC_CheckType, MVT::i32, ++/*311946*/ OPC_MoveParent, ++/*311947*/ OPC_MoveChild, 23, ++/*311949*/ OPC_CheckInteger, 1, ++/*311951*/ OPC_CheckType, MVT::i32, ++/*311953*/ OPC_MoveParent, ++/*311954*/ OPC_MoveChild, 24, ++/*311956*/ OPC_CheckInteger, 1, ++/*311958*/ OPC_CheckType, MVT::i32, ++/*311960*/ OPC_MoveParent, ++/*311961*/ OPC_MoveChild, 25, ++/*311963*/ OPC_CheckInteger, 1, ++/*311965*/ OPC_CheckType, MVT::i32, ++/*311967*/ OPC_MoveParent, ++/*311968*/ OPC_MoveChild, 26, ++/*311970*/ OPC_CheckInteger, 1, ++/*311972*/ OPC_CheckType, MVT::i32, ++/*311974*/ OPC_MoveParent, ++/*311975*/ OPC_MoveChild, 27, ++/*311977*/ OPC_CheckInteger, 1, ++/*311979*/ OPC_CheckType, MVT::i32, ++/*311981*/ OPC_MoveParent, ++/*311982*/ OPC_MoveChild, 28, ++/*311984*/ OPC_CheckInteger, 1, ++/*311986*/ OPC_CheckType, MVT::i32, ++/*311988*/ OPC_MoveParent, ++/*311989*/ OPC_MoveChild, 29, ++/*311991*/ OPC_CheckInteger, 1, ++/*311993*/ OPC_CheckType, MVT::i32, ++/*311995*/ OPC_MoveParent, ++/*311996*/ OPC_MoveChild, 30, ++/*311998*/ OPC_CheckInteger, 1, ++/*312000*/ OPC_CheckType, MVT::i32, ++/*312002*/ OPC_MoveParent, ++/*312003*/ OPC_MoveChild, 31, ++/*312005*/ OPC_CheckInteger, 1, ++/*312007*/ OPC_CheckType, MVT::i32, ++/*312009*/ OPC_MoveParent, ++/*312010*/ OPC_MoveParent, ++/*312011*/ OPC_MoveChild1, ++/*312012*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*312015*/ OPC_Scope, 104|128,1/*232*/, /*->312250*/ // 2 children in Scope ++/*312018*/ OPC_CheckChild0Same, 1, ++/*312020*/ OPC_CheckChild1Same, 0, ++/*312022*/ OPC_MoveParent, ++/*312023*/ OPC_MoveParent, ++/*312024*/ OPC_MoveParent, ++/*312025*/ OPC_MoveChild1, ++/*312026*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*312029*/ OPC_CheckChild0Integer, 1, ++/*312031*/ OPC_CheckChild0Type, MVT::i32, ++/*312033*/ OPC_CheckChild1Integer, 1, ++/*312035*/ OPC_CheckChild1Type, MVT::i32, ++/*312037*/ OPC_CheckChild2Integer, 1, ++/*312039*/ OPC_CheckChild2Type, MVT::i32, ++/*312041*/ OPC_CheckChild3Integer, 1, ++/*312043*/ OPC_CheckChild3Type, MVT::i32, ++/*312045*/ OPC_CheckChild4Integer, 1, ++/*312047*/ OPC_CheckChild4Type, MVT::i32, ++/*312049*/ OPC_MoveChild5, ++/*312050*/ OPC_CheckInteger, 1, ++/*312052*/ OPC_CheckType, MVT::i32, ++/*312054*/ OPC_MoveParent, ++/*312055*/ OPC_MoveChild6, ++/*312056*/ OPC_CheckInteger, 1, ++/*312058*/ OPC_CheckType, MVT::i32, ++/*312060*/ OPC_MoveParent, ++/*312061*/ OPC_MoveChild7, ++/*312062*/ OPC_CheckInteger, 1, ++/*312064*/ OPC_CheckType, MVT::i32, ++/*312066*/ OPC_MoveParent, ++/*312067*/ OPC_MoveChild, 8, ++/*312069*/ OPC_CheckInteger, 1, ++/*312071*/ OPC_CheckType, MVT::i32, ++/*312073*/ OPC_MoveParent, ++/*312074*/ OPC_MoveChild, 9, ++/*312076*/ OPC_CheckInteger, 1, ++/*312078*/ OPC_CheckType, MVT::i32, ++/*312080*/ OPC_MoveParent, ++/*312081*/ OPC_MoveChild, 10, ++/*312083*/ OPC_CheckInteger, 1, ++/*312085*/ OPC_CheckType, MVT::i32, ++/*312087*/ OPC_MoveParent, ++/*312088*/ OPC_MoveChild, 11, ++/*312090*/ OPC_CheckInteger, 1, ++/*312092*/ OPC_CheckType, MVT::i32, ++/*312094*/ OPC_MoveParent, ++/*312095*/ OPC_MoveChild, 12, ++/*312097*/ OPC_CheckInteger, 1, ++/*312099*/ OPC_CheckType, MVT::i32, ++/*312101*/ OPC_MoveParent, ++/*312102*/ OPC_MoveChild, 13, ++/*312104*/ OPC_CheckInteger, 1, ++/*312106*/ OPC_CheckType, MVT::i32, ++/*312108*/ OPC_MoveParent, ++/*312109*/ OPC_MoveChild, 14, ++/*312111*/ OPC_CheckInteger, 1, ++/*312113*/ OPC_CheckType, MVT::i32, ++/*312115*/ OPC_MoveParent, ++/*312116*/ OPC_MoveChild, 15, ++/*312118*/ OPC_CheckInteger, 1, ++/*312120*/ OPC_CheckType, MVT::i32, ++/*312122*/ OPC_MoveParent, ++/*312123*/ OPC_MoveChild, 16, ++/*312125*/ OPC_CheckInteger, 1, ++/*312127*/ OPC_CheckType, MVT::i32, ++/*312129*/ OPC_MoveParent, ++/*312130*/ OPC_MoveChild, 17, ++/*312132*/ OPC_CheckInteger, 1, ++/*312134*/ OPC_CheckType, MVT::i32, ++/*312136*/ OPC_MoveParent, ++/*312137*/ OPC_MoveChild, 18, ++/*312139*/ OPC_CheckInteger, 1, ++/*312141*/ OPC_CheckType, MVT::i32, ++/*312143*/ OPC_MoveParent, ++/*312144*/ OPC_MoveChild, 19, ++/*312146*/ OPC_CheckInteger, 1, ++/*312148*/ OPC_CheckType, MVT::i32, ++/*312150*/ OPC_MoveParent, ++/*312151*/ OPC_MoveChild, 20, ++/*312153*/ OPC_CheckInteger, 1, ++/*312155*/ OPC_CheckType, MVT::i32, ++/*312157*/ OPC_MoveParent, ++/*312158*/ OPC_MoveChild, 21, ++/*312160*/ OPC_CheckInteger, 1, ++/*312162*/ OPC_CheckType, MVT::i32, ++/*312164*/ OPC_MoveParent, ++/*312165*/ OPC_MoveChild, 22, ++/*312167*/ OPC_CheckInteger, 1, ++/*312169*/ OPC_CheckType, MVT::i32, ++/*312171*/ OPC_MoveParent, ++/*312172*/ OPC_MoveChild, 23, ++/*312174*/ OPC_CheckInteger, 1, ++/*312176*/ OPC_CheckType, MVT::i32, ++/*312178*/ OPC_MoveParent, ++/*312179*/ OPC_MoveChild, 24, ++/*312181*/ OPC_CheckInteger, 1, ++/*312183*/ OPC_CheckType, MVT::i32, ++/*312185*/ OPC_MoveParent, ++/*312186*/ OPC_MoveChild, 25, ++/*312188*/ OPC_CheckInteger, 1, ++/*312190*/ OPC_CheckType, MVT::i32, ++/*312192*/ OPC_MoveParent, ++/*312193*/ OPC_MoveChild, 26, ++/*312195*/ OPC_CheckInteger, 1, ++/*312197*/ OPC_CheckType, MVT::i32, ++/*312199*/ OPC_MoveParent, ++/*312200*/ OPC_MoveChild, 27, ++/*312202*/ OPC_CheckInteger, 1, ++/*312204*/ OPC_CheckType, MVT::i32, ++/*312206*/ OPC_MoveParent, ++/*312207*/ OPC_MoveChild, 28, ++/*312209*/ OPC_CheckInteger, 1, ++/*312211*/ OPC_CheckType, MVT::i32, ++/*312213*/ OPC_MoveParent, ++/*312214*/ OPC_MoveChild, 29, ++/*312216*/ OPC_CheckInteger, 1, ++/*312218*/ OPC_CheckType, MVT::i32, ++/*312220*/ OPC_MoveParent, ++/*312221*/ OPC_MoveChild, 30, ++/*312223*/ OPC_CheckInteger, 1, ++/*312225*/ OPC_CheckType, MVT::i32, ++/*312227*/ OPC_MoveParent, ++/*312228*/ OPC_MoveChild, 31, ++/*312230*/ OPC_CheckInteger, 1, ++/*312232*/ OPC_CheckType, MVT::i32, ++/*312234*/ OPC_MoveParent, ++/*312235*/ OPC_CheckType, MVT::v32i8, ++/*312237*/ OPC_MoveParent, ++/*312238*/ OPC_CheckType, MVT::v32i8, ++/*312240*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*312242*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*312250*/ /*Scope*/ 104|128,1/*232*/, /*->312484*/ ++/*312252*/ OPC_CheckChild0Same, 0, ++/*312254*/ OPC_CheckChild1Same, 1, ++/*312256*/ OPC_MoveParent, ++/*312257*/ OPC_MoveParent, ++/*312258*/ OPC_MoveParent, ++/*312259*/ OPC_MoveChild1, ++/*312260*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*312263*/ OPC_CheckChild0Integer, 1, ++/*312265*/ OPC_CheckChild0Type, MVT::i32, ++/*312267*/ OPC_CheckChild1Integer, 1, ++/*312269*/ OPC_CheckChild1Type, MVT::i32, ++/*312271*/ OPC_CheckChild2Integer, 1, ++/*312273*/ OPC_CheckChild2Type, MVT::i32, ++/*312275*/ OPC_CheckChild3Integer, 1, ++/*312277*/ OPC_CheckChild3Type, MVT::i32, ++/*312279*/ OPC_CheckChild4Integer, 1, ++/*312281*/ OPC_CheckChild4Type, MVT::i32, ++/*312283*/ OPC_MoveChild5, ++/*312284*/ OPC_CheckInteger, 1, ++/*312286*/ OPC_CheckType, MVT::i32, ++/*312288*/ OPC_MoveParent, ++/*312289*/ OPC_MoveChild6, ++/*312290*/ OPC_CheckInteger, 1, ++/*312292*/ OPC_CheckType, MVT::i32, ++/*312294*/ OPC_MoveParent, ++/*312295*/ OPC_MoveChild7, ++/*312296*/ OPC_CheckInteger, 1, ++/*312298*/ OPC_CheckType, MVT::i32, ++/*312300*/ OPC_MoveParent, ++/*312301*/ OPC_MoveChild, 8, ++/*312303*/ OPC_CheckInteger, 1, ++/*312305*/ OPC_CheckType, MVT::i32, ++/*312307*/ OPC_MoveParent, ++/*312308*/ OPC_MoveChild, 9, ++/*312310*/ OPC_CheckInteger, 1, ++/*312312*/ OPC_CheckType, MVT::i32, ++/*312314*/ OPC_MoveParent, ++/*312315*/ OPC_MoveChild, 10, ++/*312317*/ OPC_CheckInteger, 1, ++/*312319*/ OPC_CheckType, MVT::i32, ++/*312321*/ OPC_MoveParent, ++/*312322*/ OPC_MoveChild, 11, ++/*312324*/ OPC_CheckInteger, 1, ++/*312326*/ OPC_CheckType, MVT::i32, ++/*312328*/ OPC_MoveParent, ++/*312329*/ OPC_MoveChild, 12, ++/*312331*/ OPC_CheckInteger, 1, ++/*312333*/ OPC_CheckType, MVT::i32, ++/*312335*/ OPC_MoveParent, ++/*312336*/ OPC_MoveChild, 13, ++/*312338*/ OPC_CheckInteger, 1, ++/*312340*/ OPC_CheckType, MVT::i32, ++/*312342*/ OPC_MoveParent, ++/*312343*/ OPC_MoveChild, 14, ++/*312345*/ OPC_CheckInteger, 1, ++/*312347*/ OPC_CheckType, MVT::i32, ++/*312349*/ OPC_MoveParent, ++/*312350*/ OPC_MoveChild, 15, ++/*312352*/ OPC_CheckInteger, 1, ++/*312354*/ OPC_CheckType, MVT::i32, ++/*312356*/ OPC_MoveParent, ++/*312357*/ OPC_MoveChild, 16, ++/*312359*/ OPC_CheckInteger, 1, ++/*312361*/ OPC_CheckType, MVT::i32, ++/*312363*/ OPC_MoveParent, ++/*312364*/ OPC_MoveChild, 17, ++/*312366*/ OPC_CheckInteger, 1, ++/*312368*/ OPC_CheckType, MVT::i32, ++/*312370*/ OPC_MoveParent, ++/*312371*/ OPC_MoveChild, 18, ++/*312373*/ OPC_CheckInteger, 1, ++/*312375*/ OPC_CheckType, MVT::i32, ++/*312377*/ OPC_MoveParent, ++/*312378*/ OPC_MoveChild, 19, ++/*312380*/ OPC_CheckInteger, 1, ++/*312382*/ OPC_CheckType, MVT::i32, ++/*312384*/ OPC_MoveParent, ++/*312385*/ OPC_MoveChild, 20, ++/*312387*/ OPC_CheckInteger, 1, ++/*312389*/ OPC_CheckType, MVT::i32, ++/*312391*/ OPC_MoveParent, ++/*312392*/ OPC_MoveChild, 21, ++/*312394*/ OPC_CheckInteger, 1, ++/*312396*/ OPC_CheckType, MVT::i32, ++/*312398*/ OPC_MoveParent, ++/*312399*/ OPC_MoveChild, 22, ++/*312401*/ OPC_CheckInteger, 1, ++/*312403*/ OPC_CheckType, MVT::i32, ++/*312405*/ OPC_MoveParent, ++/*312406*/ OPC_MoveChild, 23, ++/*312408*/ OPC_CheckInteger, 1, ++/*312410*/ OPC_CheckType, MVT::i32, ++/*312412*/ OPC_MoveParent, ++/*312413*/ OPC_MoveChild, 24, ++/*312415*/ OPC_CheckInteger, 1, ++/*312417*/ OPC_CheckType, MVT::i32, ++/*312419*/ OPC_MoveParent, ++/*312420*/ OPC_MoveChild, 25, ++/*312422*/ OPC_CheckInteger, 1, ++/*312424*/ OPC_CheckType, MVT::i32, ++/*312426*/ OPC_MoveParent, ++/*312427*/ OPC_MoveChild, 26, ++/*312429*/ OPC_CheckInteger, 1, ++/*312431*/ OPC_CheckType, MVT::i32, ++/*312433*/ OPC_MoveParent, ++/*312434*/ OPC_MoveChild, 27, ++/*312436*/ OPC_CheckInteger, 1, ++/*312438*/ OPC_CheckType, MVT::i32, ++/*312440*/ OPC_MoveParent, ++/*312441*/ OPC_MoveChild, 28, ++/*312443*/ OPC_CheckInteger, 1, ++/*312445*/ OPC_CheckType, MVT::i32, ++/*312447*/ OPC_MoveParent, ++/*312448*/ OPC_MoveChild, 29, ++/*312450*/ OPC_CheckInteger, 1, ++/*312452*/ OPC_CheckType, MVT::i32, ++/*312454*/ OPC_MoveParent, ++/*312455*/ OPC_MoveChild, 30, ++/*312457*/ OPC_CheckInteger, 1, ++/*312459*/ OPC_CheckType, MVT::i32, ++/*312461*/ OPC_MoveParent, ++/*312462*/ OPC_MoveChild, 31, ++/*312464*/ OPC_CheckInteger, 1, ++/*312466*/ OPC_CheckType, MVT::i32, ++/*312468*/ OPC_MoveParent, ++/*312469*/ OPC_CheckType, MVT::v32i8, ++/*312471*/ OPC_MoveParent, ++/*312472*/ OPC_CheckType, MVT::v32i8, ++/*312474*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*312476*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*312484*/ 0, /*End of Scope*/ ++/*312485*/ 0, /*End of Scope*/ ++/*312486*/ /*Scope*/ 87|128,43/*5591*/, /*->318079*/ ++/*312488*/ OPC_RecordChild0, // #1 = $a ++/*312489*/ OPC_MoveChild1, ++/*312490*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*312493*/ OPC_CheckChild0Integer, 1, ++/*312495*/ OPC_CheckChild0Type, MVT::i32, ++/*312497*/ OPC_CheckChild1Integer, 1, ++/*312499*/ OPC_CheckChild1Type, MVT::i32, ++/*312501*/ OPC_CheckChild2Integer, 1, ++/*312503*/ OPC_CheckChild2Type, MVT::i32, ++/*312505*/ OPC_CheckChild3Integer, 1, ++/*312507*/ OPC_CheckChild3Type, MVT::i32, ++/*312509*/ OPC_CheckChild4Integer, 1, ++/*312511*/ OPC_CheckChild4Type, MVT::i32, ++/*312513*/ OPC_MoveChild5, ++/*312514*/ OPC_CheckInteger, 1, ++/*312516*/ OPC_CheckType, MVT::i32, ++/*312518*/ OPC_MoveParent, ++/*312519*/ OPC_MoveChild6, ++/*312520*/ OPC_CheckInteger, 1, ++/*312522*/ OPC_CheckType, MVT::i32, ++/*312524*/ OPC_MoveParent, ++/*312525*/ OPC_MoveChild7, ++/*312526*/ OPC_CheckInteger, 1, ++/*312528*/ OPC_CheckType, MVT::i32, ++/*312530*/ OPC_MoveParent, ++/*312531*/ OPC_MoveChild, 8, ++/*312533*/ OPC_CheckInteger, 1, ++/*312535*/ OPC_CheckType, MVT::i32, ++/*312537*/ OPC_MoveParent, ++/*312538*/ OPC_MoveChild, 9, ++/*312540*/ OPC_CheckInteger, 1, ++/*312542*/ OPC_CheckType, MVT::i32, ++/*312544*/ OPC_MoveParent, ++/*312545*/ OPC_MoveChild, 10, ++/*312547*/ OPC_CheckInteger, 1, ++/*312549*/ OPC_CheckType, MVT::i32, ++/*312551*/ OPC_MoveParent, ++/*312552*/ OPC_MoveChild, 11, ++/*312554*/ OPC_CheckInteger, 1, ++/*312556*/ OPC_CheckType, MVT::i32, ++/*312558*/ OPC_MoveParent, ++/*312559*/ OPC_MoveChild, 12, ++/*312561*/ OPC_CheckInteger, 1, ++/*312563*/ OPC_CheckType, MVT::i32, ++/*312565*/ OPC_MoveParent, ++/*312566*/ OPC_MoveChild, 13, ++/*312568*/ OPC_CheckInteger, 1, ++/*312570*/ OPC_CheckType, MVT::i32, ++/*312572*/ OPC_MoveParent, ++/*312573*/ OPC_MoveChild, 14, ++/*312575*/ OPC_CheckInteger, 1, ++/*312577*/ OPC_CheckType, MVT::i32, ++/*312579*/ OPC_MoveParent, ++/*312580*/ OPC_MoveChild, 15, ++/*312582*/ OPC_CheckInteger, 1, ++/*312584*/ OPC_CheckType, MVT::i32, ++/*312586*/ OPC_MoveParent, ++/*312587*/ OPC_MoveChild, 16, ++/*312589*/ OPC_CheckInteger, 1, ++/*312591*/ OPC_CheckType, MVT::i32, ++/*312593*/ OPC_MoveParent, ++/*312594*/ OPC_MoveChild, 17, ++/*312596*/ OPC_CheckInteger, 1, ++/*312598*/ OPC_CheckType, MVT::i32, ++/*312600*/ OPC_MoveParent, ++/*312601*/ OPC_MoveChild, 18, ++/*312603*/ OPC_CheckInteger, 1, ++/*312605*/ OPC_CheckType, MVT::i32, ++/*312607*/ OPC_MoveParent, ++/*312608*/ OPC_MoveChild, 19, ++/*312610*/ OPC_CheckInteger, 1, ++/*312612*/ OPC_CheckType, MVT::i32, ++/*312614*/ OPC_MoveParent, ++/*312615*/ OPC_MoveChild, 20, ++/*312617*/ OPC_CheckInteger, 1, ++/*312619*/ OPC_CheckType, MVT::i32, ++/*312621*/ OPC_MoveParent, ++/*312622*/ OPC_MoveChild, 21, ++/*312624*/ OPC_CheckInteger, 1, ++/*312626*/ OPC_CheckType, MVT::i32, ++/*312628*/ OPC_MoveParent, ++/*312629*/ OPC_MoveChild, 22, ++/*312631*/ OPC_CheckInteger, 1, ++/*312633*/ OPC_CheckType, MVT::i32, ++/*312635*/ OPC_MoveParent, ++/*312636*/ OPC_MoveChild, 23, ++/*312638*/ OPC_CheckInteger, 1, ++/*312640*/ OPC_CheckType, MVT::i32, ++/*312642*/ OPC_MoveParent, ++/*312643*/ OPC_MoveChild, 24, ++/*312645*/ OPC_CheckInteger, 1, ++/*312647*/ OPC_CheckType, MVT::i32, ++/*312649*/ OPC_MoveParent, ++/*312650*/ OPC_MoveChild, 25, ++/*312652*/ OPC_CheckInteger, 1, ++/*312654*/ OPC_CheckType, MVT::i32, ++/*312656*/ OPC_MoveParent, ++/*312657*/ OPC_MoveChild, 26, ++/*312659*/ OPC_CheckInteger, 1, ++/*312661*/ OPC_CheckType, MVT::i32, ++/*312663*/ OPC_MoveParent, ++/*312664*/ OPC_MoveChild, 27, ++/*312666*/ OPC_CheckInteger, 1, ++/*312668*/ OPC_CheckType, MVT::i32, ++/*312670*/ OPC_MoveParent, ++/*312671*/ OPC_MoveChild, 28, ++/*312673*/ OPC_CheckInteger, 1, ++/*312675*/ OPC_CheckType, MVT::i32, ++/*312677*/ OPC_MoveParent, ++/*312678*/ OPC_MoveChild, 29, ++/*312680*/ OPC_CheckInteger, 1, ++/*312682*/ OPC_CheckType, MVT::i32, ++/*312684*/ OPC_MoveParent, ++/*312685*/ OPC_MoveChild, 30, ++/*312687*/ OPC_CheckInteger, 1, ++/*312689*/ OPC_CheckType, MVT::i32, ++/*312691*/ OPC_MoveParent, ++/*312692*/ OPC_MoveChild, 31, ++/*312694*/ OPC_CheckInteger, 1, ++/*312696*/ OPC_CheckType, MVT::i32, ++/*312698*/ OPC_MoveParent, ++/*312699*/ OPC_MoveParent, ++/*312700*/ OPC_MoveParent, ++/*312701*/ OPC_MoveParent, ++/*312702*/ OPC_MoveChild1, ++/*312703*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*312706*/ OPC_CheckChild0Integer, 7, ++/*312708*/ OPC_CheckChild0Type, MVT::i32, ++/*312710*/ OPC_CheckChild1Integer, 7, ++/*312712*/ OPC_CheckChild1Type, MVT::i32, ++/*312714*/ OPC_CheckChild2Integer, 7, ++/*312716*/ OPC_CheckChild2Type, MVT::i32, ++/*312718*/ OPC_CheckChild3Integer, 7, ++/*312720*/ OPC_CheckChild3Type, MVT::i32, ++/*312722*/ OPC_CheckChild4Integer, 7, ++/*312724*/ OPC_CheckChild4Type, MVT::i32, ++/*312726*/ OPC_MoveChild5, ++/*312727*/ OPC_CheckInteger, 7, ++/*312729*/ OPC_CheckType, MVT::i32, ++/*312731*/ OPC_MoveParent, ++/*312732*/ OPC_MoveChild6, ++/*312733*/ OPC_CheckInteger, 7, ++/*312735*/ OPC_CheckType, MVT::i32, ++/*312737*/ OPC_MoveParent, ++/*312738*/ OPC_MoveChild7, ++/*312739*/ OPC_CheckInteger, 7, ++/*312741*/ OPC_CheckType, MVT::i32, ++/*312743*/ OPC_MoveParent, ++/*312744*/ OPC_MoveChild, 8, ++/*312746*/ OPC_CheckInteger, 7, ++/*312748*/ OPC_CheckType, MVT::i32, ++/*312750*/ OPC_MoveParent, ++/*312751*/ OPC_MoveChild, 9, ++/*312753*/ OPC_CheckInteger, 7, ++/*312755*/ OPC_CheckType, MVT::i32, ++/*312757*/ OPC_MoveParent, ++/*312758*/ OPC_MoveChild, 10, ++/*312760*/ OPC_CheckInteger, 7, ++/*312762*/ OPC_CheckType, MVT::i32, ++/*312764*/ OPC_MoveParent, ++/*312765*/ OPC_MoveChild, 11, ++/*312767*/ OPC_CheckInteger, 7, ++/*312769*/ OPC_CheckType, MVT::i32, ++/*312771*/ OPC_MoveParent, ++/*312772*/ OPC_MoveChild, 12, ++/*312774*/ OPC_CheckInteger, 7, ++/*312776*/ OPC_CheckType, MVT::i32, ++/*312778*/ OPC_MoveParent, ++/*312779*/ OPC_MoveChild, 13, ++/*312781*/ OPC_CheckInteger, 7, ++/*312783*/ OPC_CheckType, MVT::i32, ++/*312785*/ OPC_MoveParent, ++/*312786*/ OPC_MoveChild, 14, ++/*312788*/ OPC_CheckInteger, 7, ++/*312790*/ OPC_CheckType, MVT::i32, ++/*312792*/ OPC_MoveParent, ++/*312793*/ OPC_MoveChild, 15, ++/*312795*/ OPC_CheckInteger, 7, ++/*312797*/ OPC_CheckType, MVT::i32, ++/*312799*/ OPC_MoveParent, ++/*312800*/ OPC_MoveChild, 16, ++/*312802*/ OPC_CheckInteger, 7, ++/*312804*/ OPC_CheckType, MVT::i32, ++/*312806*/ OPC_MoveParent, ++/*312807*/ OPC_MoveChild, 17, ++/*312809*/ OPC_CheckInteger, 7, ++/*312811*/ OPC_CheckType, MVT::i32, ++/*312813*/ OPC_MoveParent, ++/*312814*/ OPC_MoveChild, 18, ++/*312816*/ OPC_CheckInteger, 7, ++/*312818*/ OPC_CheckType, MVT::i32, ++/*312820*/ OPC_MoveParent, ++/*312821*/ OPC_MoveChild, 19, ++/*312823*/ OPC_CheckInteger, 7, ++/*312825*/ OPC_CheckType, MVT::i32, ++/*312827*/ OPC_MoveParent, ++/*312828*/ OPC_MoveChild, 20, ++/*312830*/ OPC_CheckInteger, 7, ++/*312832*/ OPC_CheckType, MVT::i32, ++/*312834*/ OPC_MoveParent, ++/*312835*/ OPC_MoveChild, 21, ++/*312837*/ OPC_CheckInteger, 7, ++/*312839*/ OPC_CheckType, MVT::i32, ++/*312841*/ OPC_MoveParent, ++/*312842*/ OPC_MoveChild, 22, ++/*312844*/ OPC_CheckInteger, 7, ++/*312846*/ OPC_CheckType, MVT::i32, ++/*312848*/ OPC_MoveParent, ++/*312849*/ OPC_MoveChild, 23, ++/*312851*/ OPC_CheckInteger, 7, ++/*312853*/ OPC_CheckType, MVT::i32, ++/*312855*/ OPC_MoveParent, ++/*312856*/ OPC_MoveChild, 24, ++/*312858*/ OPC_CheckInteger, 7, ++/*312860*/ OPC_CheckType, MVT::i32, ++/*312862*/ OPC_MoveParent, ++/*312863*/ OPC_MoveChild, 25, ++/*312865*/ OPC_CheckInteger, 7, ++/*312867*/ OPC_CheckType, MVT::i32, ++/*312869*/ OPC_MoveParent, ++/*312870*/ OPC_MoveChild, 26, ++/*312872*/ OPC_CheckInteger, 7, ++/*312874*/ OPC_CheckType, MVT::i32, ++/*312876*/ OPC_MoveParent, ++/*312877*/ OPC_MoveChild, 27, ++/*312879*/ OPC_CheckInteger, 7, ++/*312881*/ OPC_CheckType, MVT::i32, ++/*312883*/ OPC_MoveParent, ++/*312884*/ OPC_MoveChild, 28, ++/*312886*/ OPC_CheckInteger, 7, ++/*312888*/ OPC_CheckType, MVT::i32, ++/*312890*/ OPC_MoveParent, ++/*312891*/ OPC_MoveChild, 29, ++/*312893*/ OPC_CheckInteger, 7, ++/*312895*/ OPC_CheckType, MVT::i32, ++/*312897*/ OPC_MoveParent, ++/*312898*/ OPC_MoveChild, 30, ++/*312900*/ OPC_CheckInteger, 7, ++/*312902*/ OPC_CheckType, MVT::i32, ++/*312904*/ OPC_MoveParent, ++/*312905*/ OPC_MoveChild, 31, ++/*312907*/ OPC_CheckInteger, 7, ++/*312909*/ OPC_CheckType, MVT::i32, ++/*312911*/ OPC_MoveParent, ++/*312912*/ OPC_CheckType, MVT::v32i8, ++/*312914*/ OPC_MoveParent, ++/*312915*/ OPC_MoveParent, ++/*312916*/ OPC_MoveChild1, ++/*312917*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*312920*/ OPC_Scope, 116|128,20/*2676*/, /*->315599*/ // 4 children in Scope ++/*312923*/ OPC_MoveChild0, ++/*312924*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*312927*/ OPC_Scope, 59|128,3/*443*/, /*->313373*/ // 6 children in Scope ++/*312930*/ OPC_MoveChild0, ++/*312931*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*312934*/ OPC_CheckChild0Integer, 1, ++/*312936*/ OPC_CheckChild0Type, MVT::i32, ++/*312938*/ OPC_CheckChild1Integer, 1, ++/*312940*/ OPC_CheckChild1Type, MVT::i32, ++/*312942*/ OPC_CheckChild2Integer, 1, ++/*312944*/ OPC_CheckChild2Type, MVT::i32, ++/*312946*/ OPC_CheckChild3Integer, 1, ++/*312948*/ OPC_CheckChild3Type, MVT::i32, ++/*312950*/ OPC_CheckChild4Integer, 1, ++/*312952*/ OPC_CheckChild4Type, MVT::i32, ++/*312954*/ OPC_MoveChild5, ++/*312955*/ OPC_CheckInteger, 1, ++/*312957*/ OPC_CheckType, MVT::i32, ++/*312959*/ OPC_MoveParent, ++/*312960*/ OPC_MoveChild6, ++/*312961*/ OPC_CheckInteger, 1, ++/*312963*/ OPC_CheckType, MVT::i32, ++/*312965*/ OPC_MoveParent, ++/*312966*/ OPC_MoveChild7, ++/*312967*/ OPC_CheckInteger, 1, ++/*312969*/ OPC_CheckType, MVT::i32, ++/*312971*/ OPC_MoveParent, ++/*312972*/ OPC_MoveChild, 8, ++/*312974*/ OPC_CheckInteger, 1, ++/*312976*/ OPC_CheckType, MVT::i32, ++/*312978*/ OPC_MoveParent, ++/*312979*/ OPC_MoveChild, 9, ++/*312981*/ OPC_CheckInteger, 1, ++/*312983*/ OPC_CheckType, MVT::i32, ++/*312985*/ OPC_MoveParent, ++/*312986*/ OPC_MoveChild, 10, ++/*312988*/ OPC_CheckInteger, 1, ++/*312990*/ OPC_CheckType, MVT::i32, ++/*312992*/ OPC_MoveParent, ++/*312993*/ OPC_MoveChild, 11, ++/*312995*/ OPC_CheckInteger, 1, ++/*312997*/ OPC_CheckType, MVT::i32, ++/*312999*/ OPC_MoveParent, ++/*313000*/ OPC_MoveChild, 12, ++/*313002*/ OPC_CheckInteger, 1, ++/*313004*/ OPC_CheckType, MVT::i32, ++/*313006*/ OPC_MoveParent, ++/*313007*/ OPC_MoveChild, 13, ++/*313009*/ OPC_CheckInteger, 1, ++/*313011*/ OPC_CheckType, MVT::i32, ++/*313013*/ OPC_MoveParent, ++/*313014*/ OPC_MoveChild, 14, ++/*313016*/ OPC_CheckInteger, 1, ++/*313018*/ OPC_CheckType, MVT::i32, ++/*313020*/ OPC_MoveParent, ++/*313021*/ OPC_MoveChild, 15, ++/*313023*/ OPC_CheckInteger, 1, ++/*313025*/ OPC_CheckType, MVT::i32, ++/*313027*/ OPC_MoveParent, ++/*313028*/ OPC_MoveChild, 16, ++/*313030*/ OPC_CheckInteger, 1, ++/*313032*/ OPC_CheckType, MVT::i32, ++/*313034*/ OPC_MoveParent, ++/*313035*/ OPC_MoveChild, 17, ++/*313037*/ OPC_CheckInteger, 1, ++/*313039*/ OPC_CheckType, MVT::i32, ++/*313041*/ OPC_MoveParent, ++/*313042*/ OPC_MoveChild, 18, ++/*313044*/ OPC_CheckInteger, 1, ++/*313046*/ OPC_CheckType, MVT::i32, ++/*313048*/ OPC_MoveParent, ++/*313049*/ OPC_MoveChild, 19, ++/*313051*/ OPC_CheckInteger, 1, ++/*313053*/ OPC_CheckType, MVT::i32, ++/*313055*/ OPC_MoveParent, ++/*313056*/ OPC_MoveChild, 20, ++/*313058*/ OPC_CheckInteger, 1, ++/*313060*/ OPC_CheckType, MVT::i32, ++/*313062*/ OPC_MoveParent, ++/*313063*/ OPC_MoveChild, 21, ++/*313065*/ OPC_CheckInteger, 1, ++/*313067*/ OPC_CheckType, MVT::i32, ++/*313069*/ OPC_MoveParent, ++/*313070*/ OPC_MoveChild, 22, ++/*313072*/ OPC_CheckInteger, 1, ++/*313074*/ OPC_CheckType, MVT::i32, ++/*313076*/ OPC_MoveParent, ++/*313077*/ OPC_MoveChild, 23, ++/*313079*/ OPC_CheckInteger, 1, ++/*313081*/ OPC_CheckType, MVT::i32, ++/*313083*/ OPC_MoveParent, ++/*313084*/ OPC_MoveChild, 24, ++/*313086*/ OPC_CheckInteger, 1, ++/*313088*/ OPC_CheckType, MVT::i32, ++/*313090*/ OPC_MoveParent, ++/*313091*/ OPC_MoveChild, 25, ++/*313093*/ OPC_CheckInteger, 1, ++/*313095*/ OPC_CheckType, MVT::i32, ++/*313097*/ OPC_MoveParent, ++/*313098*/ OPC_MoveChild, 26, ++/*313100*/ OPC_CheckInteger, 1, ++/*313102*/ OPC_CheckType, MVT::i32, ++/*313104*/ OPC_MoveParent, ++/*313105*/ OPC_MoveChild, 27, ++/*313107*/ OPC_CheckInteger, 1, ++/*313109*/ OPC_CheckType, MVT::i32, ++/*313111*/ OPC_MoveParent, ++/*313112*/ OPC_MoveChild, 28, ++/*313114*/ OPC_CheckInteger, 1, ++/*313116*/ OPC_CheckType, MVT::i32, ++/*313118*/ OPC_MoveParent, ++/*313119*/ OPC_MoveChild, 29, ++/*313121*/ OPC_CheckInteger, 1, ++/*313123*/ OPC_CheckType, MVT::i32, ++/*313125*/ OPC_MoveParent, ++/*313126*/ OPC_MoveChild, 30, ++/*313128*/ OPC_CheckInteger, 1, ++/*313130*/ OPC_CheckType, MVT::i32, ++/*313132*/ OPC_MoveParent, ++/*313133*/ OPC_MoveChild, 31, ++/*313135*/ OPC_CheckInteger, 1, ++/*313137*/ OPC_CheckType, MVT::i32, ++/*313139*/ OPC_MoveParent, ++/*313140*/ OPC_MoveParent, ++/*313141*/ OPC_CheckChild1Same, 1, ++/*313143*/ OPC_MoveParent, ++/*313144*/ OPC_CheckChild1Same, 0, ++/*313146*/ OPC_MoveParent, ++/*313147*/ OPC_MoveParent, ++/*313148*/ OPC_MoveChild1, ++/*313149*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*313152*/ OPC_CheckChild0Integer, 1, ++/*313154*/ OPC_CheckChild0Type, MVT::i32, ++/*313156*/ OPC_CheckChild1Integer, 1, ++/*313158*/ OPC_CheckChild1Type, MVT::i32, ++/*313160*/ OPC_CheckChild2Integer, 1, ++/*313162*/ OPC_CheckChild2Type, MVT::i32, ++/*313164*/ OPC_CheckChild3Integer, 1, ++/*313166*/ OPC_CheckChild3Type, MVT::i32, ++/*313168*/ OPC_CheckChild4Integer, 1, ++/*313170*/ OPC_CheckChild4Type, MVT::i32, ++/*313172*/ OPC_MoveChild5, ++/*313173*/ OPC_CheckInteger, 1, ++/*313175*/ OPC_CheckType, MVT::i32, ++/*313177*/ OPC_MoveParent, ++/*313178*/ OPC_MoveChild6, ++/*313179*/ OPC_CheckInteger, 1, ++/*313181*/ OPC_CheckType, MVT::i32, ++/*313183*/ OPC_MoveParent, ++/*313184*/ OPC_MoveChild7, ++/*313185*/ OPC_CheckInteger, 1, ++/*313187*/ OPC_CheckType, MVT::i32, ++/*313189*/ OPC_MoveParent, ++/*313190*/ OPC_MoveChild, 8, ++/*313192*/ OPC_CheckInteger, 1, ++/*313194*/ OPC_CheckType, MVT::i32, ++/*313196*/ OPC_MoveParent, ++/*313197*/ OPC_MoveChild, 9, ++/*313199*/ OPC_CheckInteger, 1, ++/*313201*/ OPC_CheckType, MVT::i32, ++/*313203*/ OPC_MoveParent, ++/*313204*/ OPC_MoveChild, 10, ++/*313206*/ OPC_CheckInteger, 1, ++/*313208*/ OPC_CheckType, MVT::i32, ++/*313210*/ OPC_MoveParent, ++/*313211*/ OPC_MoveChild, 11, ++/*313213*/ OPC_CheckInteger, 1, ++/*313215*/ OPC_CheckType, MVT::i32, ++/*313217*/ OPC_MoveParent, ++/*313218*/ OPC_MoveChild, 12, ++/*313220*/ OPC_CheckInteger, 1, ++/*313222*/ OPC_CheckType, MVT::i32, ++/*313224*/ OPC_MoveParent, ++/*313225*/ OPC_MoveChild, 13, ++/*313227*/ OPC_CheckInteger, 1, ++/*313229*/ OPC_CheckType, MVT::i32, ++/*313231*/ OPC_MoveParent, ++/*313232*/ OPC_MoveChild, 14, ++/*313234*/ OPC_CheckInteger, 1, ++/*313236*/ OPC_CheckType, MVT::i32, ++/*313238*/ OPC_MoveParent, ++/*313239*/ OPC_MoveChild, 15, ++/*313241*/ OPC_CheckInteger, 1, ++/*313243*/ OPC_CheckType, MVT::i32, ++/*313245*/ OPC_MoveParent, ++/*313246*/ OPC_MoveChild, 16, ++/*313248*/ OPC_CheckInteger, 1, ++/*313250*/ OPC_CheckType, MVT::i32, ++/*313252*/ OPC_MoveParent, ++/*313253*/ OPC_MoveChild, 17, ++/*313255*/ OPC_CheckInteger, 1, ++/*313257*/ OPC_CheckType, MVT::i32, ++/*313259*/ OPC_MoveParent, ++/*313260*/ OPC_MoveChild, 18, ++/*313262*/ OPC_CheckInteger, 1, ++/*313264*/ OPC_CheckType, MVT::i32, ++/*313266*/ OPC_MoveParent, ++/*313267*/ OPC_MoveChild, 19, ++/*313269*/ OPC_CheckInteger, 1, ++/*313271*/ OPC_CheckType, MVT::i32, ++/*313273*/ OPC_MoveParent, ++/*313274*/ OPC_MoveChild, 20, ++/*313276*/ OPC_CheckInteger, 1, ++/*313278*/ OPC_CheckType, MVT::i32, ++/*313280*/ OPC_MoveParent, ++/*313281*/ OPC_MoveChild, 21, ++/*313283*/ OPC_CheckInteger, 1, ++/*313285*/ OPC_CheckType, MVT::i32, ++/*313287*/ OPC_MoveParent, ++/*313288*/ OPC_MoveChild, 22, ++/*313290*/ OPC_CheckInteger, 1, ++/*313292*/ OPC_CheckType, MVT::i32, ++/*313294*/ OPC_MoveParent, ++/*313295*/ OPC_MoveChild, 23, ++/*313297*/ OPC_CheckInteger, 1, ++/*313299*/ OPC_CheckType, MVT::i32, ++/*313301*/ OPC_MoveParent, ++/*313302*/ OPC_MoveChild, 24, ++/*313304*/ OPC_CheckInteger, 1, ++/*313306*/ OPC_CheckType, MVT::i32, ++/*313308*/ OPC_MoveParent, ++/*313309*/ OPC_MoveChild, 25, ++/*313311*/ OPC_CheckInteger, 1, ++/*313313*/ OPC_CheckType, MVT::i32, ++/*313315*/ OPC_MoveParent, ++/*313316*/ OPC_MoveChild, 26, ++/*313318*/ OPC_CheckInteger, 1, ++/*313320*/ OPC_CheckType, MVT::i32, ++/*313322*/ OPC_MoveParent, ++/*313323*/ OPC_MoveChild, 27, ++/*313325*/ OPC_CheckInteger, 1, ++/*313327*/ OPC_CheckType, MVT::i32, ++/*313329*/ OPC_MoveParent, ++/*313330*/ OPC_MoveChild, 28, ++/*313332*/ OPC_CheckInteger, 1, ++/*313334*/ OPC_CheckType, MVT::i32, ++/*313336*/ OPC_MoveParent, ++/*313337*/ OPC_MoveChild, 29, ++/*313339*/ OPC_CheckInteger, 1, ++/*313341*/ OPC_CheckType, MVT::i32, ++/*313343*/ OPC_MoveParent, ++/*313344*/ OPC_MoveChild, 30, ++/*313346*/ OPC_CheckInteger, 1, ++/*313348*/ OPC_CheckType, MVT::i32, ++/*313350*/ OPC_MoveParent, ++/*313351*/ OPC_MoveChild, 31, ++/*313353*/ OPC_CheckInteger, 1, ++/*313355*/ OPC_CheckType, MVT::i32, ++/*313357*/ OPC_MoveParent, ++/*313358*/ OPC_CheckType, MVT::v32i8, ++/*313360*/ OPC_MoveParent, ++/*313361*/ OPC_CheckType, MVT::v32i8, ++/*313363*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*313365*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a), LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*313373*/ /*Scope*/ 59|128,3/*443*/, /*->313818*/ ++/*313375*/ OPC_CheckChild0Same, 1, ++/*313377*/ OPC_MoveChild1, ++/*313378*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*313381*/ OPC_CheckChild0Integer, 1, ++/*313383*/ OPC_CheckChild0Type, MVT::i32, ++/*313385*/ OPC_CheckChild1Integer, 1, ++/*313387*/ OPC_CheckChild1Type, MVT::i32, ++/*313389*/ OPC_CheckChild2Integer, 1, ++/*313391*/ OPC_CheckChild2Type, MVT::i32, ++/*313393*/ OPC_CheckChild3Integer, 1, ++/*313395*/ OPC_CheckChild3Type, MVT::i32, ++/*313397*/ OPC_CheckChild4Integer, 1, ++/*313399*/ OPC_CheckChild4Type, MVT::i32, ++/*313401*/ OPC_MoveChild5, ++/*313402*/ OPC_CheckInteger, 1, ++/*313404*/ OPC_CheckType, MVT::i32, ++/*313406*/ OPC_MoveParent, ++/*313407*/ OPC_MoveChild6, ++/*313408*/ OPC_CheckInteger, 1, ++/*313410*/ OPC_CheckType, MVT::i32, ++/*313412*/ OPC_MoveParent, ++/*313413*/ OPC_MoveChild7, ++/*313414*/ OPC_CheckInteger, 1, ++/*313416*/ OPC_CheckType, MVT::i32, ++/*313418*/ OPC_MoveParent, ++/*313419*/ OPC_MoveChild, 8, ++/*313421*/ OPC_CheckInteger, 1, ++/*313423*/ OPC_CheckType, MVT::i32, ++/*313425*/ OPC_MoveParent, ++/*313426*/ OPC_MoveChild, 9, ++/*313428*/ OPC_CheckInteger, 1, ++/*313430*/ OPC_CheckType, MVT::i32, ++/*313432*/ OPC_MoveParent, ++/*313433*/ OPC_MoveChild, 10, ++/*313435*/ OPC_CheckInteger, 1, ++/*313437*/ OPC_CheckType, MVT::i32, ++/*313439*/ OPC_MoveParent, ++/*313440*/ OPC_MoveChild, 11, ++/*313442*/ OPC_CheckInteger, 1, ++/*313444*/ OPC_CheckType, MVT::i32, ++/*313446*/ OPC_MoveParent, ++/*313447*/ OPC_MoveChild, 12, ++/*313449*/ OPC_CheckInteger, 1, ++/*313451*/ OPC_CheckType, MVT::i32, ++/*313453*/ OPC_MoveParent, ++/*313454*/ OPC_MoveChild, 13, ++/*313456*/ OPC_CheckInteger, 1, ++/*313458*/ OPC_CheckType, MVT::i32, ++/*313460*/ OPC_MoveParent, ++/*313461*/ OPC_MoveChild, 14, ++/*313463*/ OPC_CheckInteger, 1, ++/*313465*/ OPC_CheckType, MVT::i32, ++/*313467*/ OPC_MoveParent, ++/*313468*/ OPC_MoveChild, 15, ++/*313470*/ OPC_CheckInteger, 1, ++/*313472*/ OPC_CheckType, MVT::i32, ++/*313474*/ OPC_MoveParent, ++/*313475*/ OPC_MoveChild, 16, ++/*313477*/ OPC_CheckInteger, 1, ++/*313479*/ OPC_CheckType, MVT::i32, ++/*313481*/ OPC_MoveParent, ++/*313482*/ OPC_MoveChild, 17, ++/*313484*/ OPC_CheckInteger, 1, ++/*313486*/ OPC_CheckType, MVT::i32, ++/*313488*/ OPC_MoveParent, ++/*313489*/ OPC_MoveChild, 18, ++/*313491*/ OPC_CheckInteger, 1, ++/*313493*/ OPC_CheckType, MVT::i32, ++/*313495*/ OPC_MoveParent, ++/*313496*/ OPC_MoveChild, 19, ++/*313498*/ OPC_CheckInteger, 1, ++/*313500*/ OPC_CheckType, MVT::i32, ++/*313502*/ OPC_MoveParent, ++/*313503*/ OPC_MoveChild, 20, ++/*313505*/ OPC_CheckInteger, 1, ++/*313507*/ OPC_CheckType, MVT::i32, ++/*313509*/ OPC_MoveParent, ++/*313510*/ OPC_MoveChild, 21, ++/*313512*/ OPC_CheckInteger, 1, ++/*313514*/ OPC_CheckType, MVT::i32, ++/*313516*/ OPC_MoveParent, ++/*313517*/ OPC_MoveChild, 22, ++/*313519*/ OPC_CheckInteger, 1, ++/*313521*/ OPC_CheckType, MVT::i32, ++/*313523*/ OPC_MoveParent, ++/*313524*/ OPC_MoveChild, 23, ++/*313526*/ OPC_CheckInteger, 1, ++/*313528*/ OPC_CheckType, MVT::i32, ++/*313530*/ OPC_MoveParent, ++/*313531*/ OPC_MoveChild, 24, ++/*313533*/ OPC_CheckInteger, 1, ++/*313535*/ OPC_CheckType, MVT::i32, ++/*313537*/ OPC_MoveParent, ++/*313538*/ OPC_MoveChild, 25, ++/*313540*/ OPC_CheckInteger, 1, ++/*313542*/ OPC_CheckType, MVT::i32, ++/*313544*/ OPC_MoveParent, ++/*313545*/ OPC_MoveChild, 26, ++/*313547*/ OPC_CheckInteger, 1, ++/*313549*/ OPC_CheckType, MVT::i32, ++/*313551*/ OPC_MoveParent, ++/*313552*/ OPC_MoveChild, 27, ++/*313554*/ OPC_CheckInteger, 1, ++/*313556*/ OPC_CheckType, MVT::i32, ++/*313558*/ OPC_MoveParent, ++/*313559*/ OPC_MoveChild, 28, ++/*313561*/ OPC_CheckInteger, 1, ++/*313563*/ OPC_CheckType, MVT::i32, ++/*313565*/ OPC_MoveParent, ++/*313566*/ OPC_MoveChild, 29, ++/*313568*/ OPC_CheckInteger, 1, ++/*313570*/ OPC_CheckType, MVT::i32, ++/*313572*/ OPC_MoveParent, ++/*313573*/ OPC_MoveChild, 30, ++/*313575*/ OPC_CheckInteger, 1, ++/*313577*/ OPC_CheckType, MVT::i32, ++/*313579*/ OPC_MoveParent, ++/*313580*/ OPC_MoveChild, 31, ++/*313582*/ OPC_CheckInteger, 1, ++/*313584*/ OPC_CheckType, MVT::i32, ++/*313586*/ OPC_MoveParent, ++/*313587*/ OPC_MoveParent, ++/*313588*/ OPC_MoveParent, ++/*313589*/ OPC_CheckChild1Same, 0, ++/*313591*/ OPC_MoveParent, ++/*313592*/ OPC_MoveParent, ++/*313593*/ OPC_MoveChild1, ++/*313594*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*313597*/ OPC_CheckChild0Integer, 1, ++/*313599*/ OPC_CheckChild0Type, MVT::i32, ++/*313601*/ OPC_CheckChild1Integer, 1, ++/*313603*/ OPC_CheckChild1Type, MVT::i32, ++/*313605*/ OPC_CheckChild2Integer, 1, ++/*313607*/ OPC_CheckChild2Type, MVT::i32, ++/*313609*/ OPC_CheckChild3Integer, 1, ++/*313611*/ OPC_CheckChild3Type, MVT::i32, ++/*313613*/ OPC_CheckChild4Integer, 1, ++/*313615*/ OPC_CheckChild4Type, MVT::i32, ++/*313617*/ OPC_MoveChild5, ++/*313618*/ OPC_CheckInteger, 1, ++/*313620*/ OPC_CheckType, MVT::i32, ++/*313622*/ OPC_MoveParent, ++/*313623*/ OPC_MoveChild6, ++/*313624*/ OPC_CheckInteger, 1, ++/*313626*/ OPC_CheckType, MVT::i32, ++/*313628*/ OPC_MoveParent, ++/*313629*/ OPC_MoveChild7, ++/*313630*/ OPC_CheckInteger, 1, ++/*313632*/ OPC_CheckType, MVT::i32, ++/*313634*/ OPC_MoveParent, ++/*313635*/ OPC_MoveChild, 8, ++/*313637*/ OPC_CheckInteger, 1, ++/*313639*/ OPC_CheckType, MVT::i32, ++/*313641*/ OPC_MoveParent, ++/*313642*/ OPC_MoveChild, 9, ++/*313644*/ OPC_CheckInteger, 1, ++/*313646*/ OPC_CheckType, MVT::i32, ++/*313648*/ OPC_MoveParent, ++/*313649*/ OPC_MoveChild, 10, ++/*313651*/ OPC_CheckInteger, 1, ++/*313653*/ OPC_CheckType, MVT::i32, ++/*313655*/ OPC_MoveParent, ++/*313656*/ OPC_MoveChild, 11, ++/*313658*/ OPC_CheckInteger, 1, ++/*313660*/ OPC_CheckType, MVT::i32, ++/*313662*/ OPC_MoveParent, ++/*313663*/ OPC_MoveChild, 12, ++/*313665*/ OPC_CheckInteger, 1, ++/*313667*/ OPC_CheckType, MVT::i32, ++/*313669*/ OPC_MoveParent, ++/*313670*/ OPC_MoveChild, 13, ++/*313672*/ OPC_CheckInteger, 1, ++/*313674*/ OPC_CheckType, MVT::i32, ++/*313676*/ OPC_MoveParent, ++/*313677*/ OPC_MoveChild, 14, ++/*313679*/ OPC_CheckInteger, 1, ++/*313681*/ OPC_CheckType, MVT::i32, ++/*313683*/ OPC_MoveParent, ++/*313684*/ OPC_MoveChild, 15, ++/*313686*/ OPC_CheckInteger, 1, ++/*313688*/ OPC_CheckType, MVT::i32, ++/*313690*/ OPC_MoveParent, ++/*313691*/ OPC_MoveChild, 16, ++/*313693*/ OPC_CheckInteger, 1, ++/*313695*/ OPC_CheckType, MVT::i32, ++/*313697*/ OPC_MoveParent, ++/*313698*/ OPC_MoveChild, 17, ++/*313700*/ OPC_CheckInteger, 1, ++/*313702*/ OPC_CheckType, MVT::i32, ++/*313704*/ OPC_MoveParent, ++/*313705*/ OPC_MoveChild, 18, ++/*313707*/ OPC_CheckInteger, 1, ++/*313709*/ OPC_CheckType, MVT::i32, ++/*313711*/ OPC_MoveParent, ++/*313712*/ OPC_MoveChild, 19, ++/*313714*/ OPC_CheckInteger, 1, ++/*313716*/ OPC_CheckType, MVT::i32, ++/*313718*/ OPC_MoveParent, ++/*313719*/ OPC_MoveChild, 20, ++/*313721*/ OPC_CheckInteger, 1, ++/*313723*/ OPC_CheckType, MVT::i32, ++/*313725*/ OPC_MoveParent, ++/*313726*/ OPC_MoveChild, 21, ++/*313728*/ OPC_CheckInteger, 1, ++/*313730*/ OPC_CheckType, MVT::i32, ++/*313732*/ OPC_MoveParent, ++/*313733*/ OPC_MoveChild, 22, ++/*313735*/ OPC_CheckInteger, 1, ++/*313737*/ OPC_CheckType, MVT::i32, ++/*313739*/ OPC_MoveParent, ++/*313740*/ OPC_MoveChild, 23, ++/*313742*/ OPC_CheckInteger, 1, ++/*313744*/ OPC_CheckType, MVT::i32, ++/*313746*/ OPC_MoveParent, ++/*313747*/ OPC_MoveChild, 24, ++/*313749*/ OPC_CheckInteger, 1, ++/*313751*/ OPC_CheckType, MVT::i32, ++/*313753*/ OPC_MoveParent, ++/*313754*/ OPC_MoveChild, 25, ++/*313756*/ OPC_CheckInteger, 1, ++/*313758*/ OPC_CheckType, MVT::i32, ++/*313760*/ OPC_MoveParent, ++/*313761*/ OPC_MoveChild, 26, ++/*313763*/ OPC_CheckInteger, 1, ++/*313765*/ OPC_CheckType, MVT::i32, ++/*313767*/ OPC_MoveParent, ++/*313768*/ OPC_MoveChild, 27, ++/*313770*/ OPC_CheckInteger, 1, ++/*313772*/ OPC_CheckType, MVT::i32, ++/*313774*/ OPC_MoveParent, ++/*313775*/ OPC_MoveChild, 28, ++/*313777*/ OPC_CheckInteger, 1, ++/*313779*/ OPC_CheckType, MVT::i32, ++/*313781*/ OPC_MoveParent, ++/*313782*/ OPC_MoveChild, 29, ++/*313784*/ OPC_CheckInteger, 1, ++/*313786*/ OPC_CheckType, MVT::i32, ++/*313788*/ OPC_MoveParent, ++/*313789*/ OPC_MoveChild, 30, ++/*313791*/ OPC_CheckInteger, 1, ++/*313793*/ OPC_CheckType, MVT::i32, ++/*313795*/ OPC_MoveParent, ++/*313796*/ OPC_MoveChild, 31, ++/*313798*/ OPC_CheckInteger, 1, ++/*313800*/ OPC_CheckType, MVT::i32, ++/*313802*/ OPC_MoveParent, ++/*313803*/ OPC_CheckType, MVT::v32i8, ++/*313805*/ OPC_MoveParent, ++/*313806*/ OPC_CheckType, MVT::v32i8, ++/*313808*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*313810*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*313818*/ /*Scope*/ 59|128,3/*443*/, /*->314263*/ ++/*313820*/ OPC_MoveChild0, ++/*313821*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*313824*/ OPC_CheckChild0Integer, 1, ++/*313826*/ OPC_CheckChild0Type, MVT::i32, ++/*313828*/ OPC_CheckChild1Integer, 1, ++/*313830*/ OPC_CheckChild1Type, MVT::i32, ++/*313832*/ OPC_CheckChild2Integer, 1, ++/*313834*/ OPC_CheckChild2Type, MVT::i32, ++/*313836*/ OPC_CheckChild3Integer, 1, ++/*313838*/ OPC_CheckChild3Type, MVT::i32, ++/*313840*/ OPC_CheckChild4Integer, 1, ++/*313842*/ OPC_CheckChild4Type, MVT::i32, ++/*313844*/ OPC_MoveChild5, ++/*313845*/ OPC_CheckInteger, 1, ++/*313847*/ OPC_CheckType, MVT::i32, ++/*313849*/ OPC_MoveParent, ++/*313850*/ OPC_MoveChild6, ++/*313851*/ OPC_CheckInteger, 1, ++/*313853*/ OPC_CheckType, MVT::i32, ++/*313855*/ OPC_MoveParent, ++/*313856*/ OPC_MoveChild7, ++/*313857*/ OPC_CheckInteger, 1, ++/*313859*/ OPC_CheckType, MVT::i32, ++/*313861*/ OPC_MoveParent, ++/*313862*/ OPC_MoveChild, 8, ++/*313864*/ OPC_CheckInteger, 1, ++/*313866*/ OPC_CheckType, MVT::i32, ++/*313868*/ OPC_MoveParent, ++/*313869*/ OPC_MoveChild, 9, ++/*313871*/ OPC_CheckInteger, 1, ++/*313873*/ OPC_CheckType, MVT::i32, ++/*313875*/ OPC_MoveParent, ++/*313876*/ OPC_MoveChild, 10, ++/*313878*/ OPC_CheckInteger, 1, ++/*313880*/ OPC_CheckType, MVT::i32, ++/*313882*/ OPC_MoveParent, ++/*313883*/ OPC_MoveChild, 11, ++/*313885*/ OPC_CheckInteger, 1, ++/*313887*/ OPC_CheckType, MVT::i32, ++/*313889*/ OPC_MoveParent, ++/*313890*/ OPC_MoveChild, 12, ++/*313892*/ OPC_CheckInteger, 1, ++/*313894*/ OPC_CheckType, MVT::i32, ++/*313896*/ OPC_MoveParent, ++/*313897*/ OPC_MoveChild, 13, ++/*313899*/ OPC_CheckInteger, 1, ++/*313901*/ OPC_CheckType, MVT::i32, ++/*313903*/ OPC_MoveParent, ++/*313904*/ OPC_MoveChild, 14, ++/*313906*/ OPC_CheckInteger, 1, ++/*313908*/ OPC_CheckType, MVT::i32, ++/*313910*/ OPC_MoveParent, ++/*313911*/ OPC_MoveChild, 15, ++/*313913*/ OPC_CheckInteger, 1, ++/*313915*/ OPC_CheckType, MVT::i32, ++/*313917*/ OPC_MoveParent, ++/*313918*/ OPC_MoveChild, 16, ++/*313920*/ OPC_CheckInteger, 1, ++/*313922*/ OPC_CheckType, MVT::i32, ++/*313924*/ OPC_MoveParent, ++/*313925*/ OPC_MoveChild, 17, ++/*313927*/ OPC_CheckInteger, 1, ++/*313929*/ OPC_CheckType, MVT::i32, ++/*313931*/ OPC_MoveParent, ++/*313932*/ OPC_MoveChild, 18, ++/*313934*/ OPC_CheckInteger, 1, ++/*313936*/ OPC_CheckType, MVT::i32, ++/*313938*/ OPC_MoveParent, ++/*313939*/ OPC_MoveChild, 19, ++/*313941*/ OPC_CheckInteger, 1, ++/*313943*/ OPC_CheckType, MVT::i32, ++/*313945*/ OPC_MoveParent, ++/*313946*/ OPC_MoveChild, 20, ++/*313948*/ OPC_CheckInteger, 1, ++/*313950*/ OPC_CheckType, MVT::i32, ++/*313952*/ OPC_MoveParent, ++/*313953*/ OPC_MoveChild, 21, ++/*313955*/ OPC_CheckInteger, 1, ++/*313957*/ OPC_CheckType, MVT::i32, ++/*313959*/ OPC_MoveParent, ++/*313960*/ OPC_MoveChild, 22, ++/*313962*/ OPC_CheckInteger, 1, ++/*313964*/ OPC_CheckType, MVT::i32, ++/*313966*/ OPC_MoveParent, ++/*313967*/ OPC_MoveChild, 23, ++/*313969*/ OPC_CheckInteger, 1, ++/*313971*/ OPC_CheckType, MVT::i32, ++/*313973*/ OPC_MoveParent, ++/*313974*/ OPC_MoveChild, 24, ++/*313976*/ OPC_CheckInteger, 1, ++/*313978*/ OPC_CheckType, MVT::i32, ++/*313980*/ OPC_MoveParent, ++/*313981*/ OPC_MoveChild, 25, ++/*313983*/ OPC_CheckInteger, 1, ++/*313985*/ OPC_CheckType, MVT::i32, ++/*313987*/ OPC_MoveParent, ++/*313988*/ OPC_MoveChild, 26, ++/*313990*/ OPC_CheckInteger, 1, ++/*313992*/ OPC_CheckType, MVT::i32, ++/*313994*/ OPC_MoveParent, ++/*313995*/ OPC_MoveChild, 27, ++/*313997*/ OPC_CheckInteger, 1, ++/*313999*/ OPC_CheckType, MVT::i32, ++/*314001*/ OPC_MoveParent, ++/*314002*/ OPC_MoveChild, 28, ++/*314004*/ OPC_CheckInteger, 1, ++/*314006*/ OPC_CheckType, MVT::i32, ++/*314008*/ OPC_MoveParent, ++/*314009*/ OPC_MoveChild, 29, ++/*314011*/ OPC_CheckInteger, 1, ++/*314013*/ OPC_CheckType, MVT::i32, ++/*314015*/ OPC_MoveParent, ++/*314016*/ OPC_MoveChild, 30, ++/*314018*/ OPC_CheckInteger, 1, ++/*314020*/ OPC_CheckType, MVT::i32, ++/*314022*/ OPC_MoveParent, ++/*314023*/ OPC_MoveChild, 31, ++/*314025*/ OPC_CheckInteger, 1, ++/*314027*/ OPC_CheckType, MVT::i32, ++/*314029*/ OPC_MoveParent, ++/*314030*/ OPC_MoveParent, ++/*314031*/ OPC_CheckChild1Same, 0, ++/*314033*/ OPC_MoveParent, ++/*314034*/ OPC_CheckChild1Same, 1, ++/*314036*/ OPC_MoveParent, ++/*314037*/ OPC_MoveParent, ++/*314038*/ OPC_MoveChild1, ++/*314039*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*314042*/ OPC_CheckChild0Integer, 1, ++/*314044*/ OPC_CheckChild0Type, MVT::i32, ++/*314046*/ OPC_CheckChild1Integer, 1, ++/*314048*/ OPC_CheckChild1Type, MVT::i32, ++/*314050*/ OPC_CheckChild2Integer, 1, ++/*314052*/ OPC_CheckChild2Type, MVT::i32, ++/*314054*/ OPC_CheckChild3Integer, 1, ++/*314056*/ OPC_CheckChild3Type, MVT::i32, ++/*314058*/ OPC_CheckChild4Integer, 1, ++/*314060*/ OPC_CheckChild4Type, MVT::i32, ++/*314062*/ OPC_MoveChild5, ++/*314063*/ OPC_CheckInteger, 1, ++/*314065*/ OPC_CheckType, MVT::i32, ++/*314067*/ OPC_MoveParent, ++/*314068*/ OPC_MoveChild6, ++/*314069*/ OPC_CheckInteger, 1, ++/*314071*/ OPC_CheckType, MVT::i32, ++/*314073*/ OPC_MoveParent, ++/*314074*/ OPC_MoveChild7, ++/*314075*/ OPC_CheckInteger, 1, ++/*314077*/ OPC_CheckType, MVT::i32, ++/*314079*/ OPC_MoveParent, ++/*314080*/ OPC_MoveChild, 8, ++/*314082*/ OPC_CheckInteger, 1, ++/*314084*/ OPC_CheckType, MVT::i32, ++/*314086*/ OPC_MoveParent, ++/*314087*/ OPC_MoveChild, 9, ++/*314089*/ OPC_CheckInteger, 1, ++/*314091*/ OPC_CheckType, MVT::i32, ++/*314093*/ OPC_MoveParent, ++/*314094*/ OPC_MoveChild, 10, ++/*314096*/ OPC_CheckInteger, 1, ++/*314098*/ OPC_CheckType, MVT::i32, ++/*314100*/ OPC_MoveParent, ++/*314101*/ OPC_MoveChild, 11, ++/*314103*/ OPC_CheckInteger, 1, ++/*314105*/ OPC_CheckType, MVT::i32, ++/*314107*/ OPC_MoveParent, ++/*314108*/ OPC_MoveChild, 12, ++/*314110*/ OPC_CheckInteger, 1, ++/*314112*/ OPC_CheckType, MVT::i32, ++/*314114*/ OPC_MoveParent, ++/*314115*/ OPC_MoveChild, 13, ++/*314117*/ OPC_CheckInteger, 1, ++/*314119*/ OPC_CheckType, MVT::i32, ++/*314121*/ OPC_MoveParent, ++/*314122*/ OPC_MoveChild, 14, ++/*314124*/ OPC_CheckInteger, 1, ++/*314126*/ OPC_CheckType, MVT::i32, ++/*314128*/ OPC_MoveParent, ++/*314129*/ OPC_MoveChild, 15, ++/*314131*/ OPC_CheckInteger, 1, ++/*314133*/ OPC_CheckType, MVT::i32, ++/*314135*/ OPC_MoveParent, ++/*314136*/ OPC_MoveChild, 16, ++/*314138*/ OPC_CheckInteger, 1, ++/*314140*/ OPC_CheckType, MVT::i32, ++/*314142*/ OPC_MoveParent, ++/*314143*/ OPC_MoveChild, 17, ++/*314145*/ OPC_CheckInteger, 1, ++/*314147*/ OPC_CheckType, MVT::i32, ++/*314149*/ OPC_MoveParent, ++/*314150*/ OPC_MoveChild, 18, ++/*314152*/ OPC_CheckInteger, 1, ++/*314154*/ OPC_CheckType, MVT::i32, ++/*314156*/ OPC_MoveParent, ++/*314157*/ OPC_MoveChild, 19, ++/*314159*/ OPC_CheckInteger, 1, ++/*314161*/ OPC_CheckType, MVT::i32, ++/*314163*/ OPC_MoveParent, ++/*314164*/ OPC_MoveChild, 20, ++/*314166*/ OPC_CheckInteger, 1, ++/*314168*/ OPC_CheckType, MVT::i32, ++/*314170*/ OPC_MoveParent, ++/*314171*/ OPC_MoveChild, 21, ++/*314173*/ OPC_CheckInteger, 1, ++/*314175*/ OPC_CheckType, MVT::i32, ++/*314177*/ OPC_MoveParent, ++/*314178*/ OPC_MoveChild, 22, ++/*314180*/ OPC_CheckInteger, 1, ++/*314182*/ OPC_CheckType, MVT::i32, ++/*314184*/ OPC_MoveParent, ++/*314185*/ OPC_MoveChild, 23, ++/*314187*/ OPC_CheckInteger, 1, ++/*314189*/ OPC_CheckType, MVT::i32, ++/*314191*/ OPC_MoveParent, ++/*314192*/ OPC_MoveChild, 24, ++/*314194*/ OPC_CheckInteger, 1, ++/*314196*/ OPC_CheckType, MVT::i32, ++/*314198*/ OPC_MoveParent, ++/*314199*/ OPC_MoveChild, 25, ++/*314201*/ OPC_CheckInteger, 1, ++/*314203*/ OPC_CheckType, MVT::i32, ++/*314205*/ OPC_MoveParent, ++/*314206*/ OPC_MoveChild, 26, ++/*314208*/ OPC_CheckInteger, 1, ++/*314210*/ OPC_CheckType, MVT::i32, ++/*314212*/ OPC_MoveParent, ++/*314213*/ OPC_MoveChild, 27, ++/*314215*/ OPC_CheckInteger, 1, ++/*314217*/ OPC_CheckType, MVT::i32, ++/*314219*/ OPC_MoveParent, ++/*314220*/ OPC_MoveChild, 28, ++/*314222*/ OPC_CheckInteger, 1, ++/*314224*/ OPC_CheckType, MVT::i32, ++/*314226*/ OPC_MoveParent, ++/*314227*/ OPC_MoveChild, 29, ++/*314229*/ OPC_CheckInteger, 1, ++/*314231*/ OPC_CheckType, MVT::i32, ++/*314233*/ OPC_MoveParent, ++/*314234*/ OPC_MoveChild, 30, ++/*314236*/ OPC_CheckInteger, 1, ++/*314238*/ OPC_CheckType, MVT::i32, ++/*314240*/ OPC_MoveParent, ++/*314241*/ OPC_MoveChild, 31, ++/*314243*/ OPC_CheckInteger, 1, ++/*314245*/ OPC_CheckType, MVT::i32, ++/*314247*/ OPC_MoveParent, ++/*314248*/ OPC_CheckType, MVT::v32i8, ++/*314250*/ OPC_MoveParent, ++/*314251*/ OPC_CheckType, MVT::v32i8, ++/*314253*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*314255*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b), LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*314263*/ /*Scope*/ 59|128,3/*443*/, /*->314708*/ ++/*314265*/ OPC_CheckChild0Same, 0, ++/*314267*/ OPC_MoveChild1, ++/*314268*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*314271*/ OPC_CheckChild0Integer, 1, ++/*314273*/ OPC_CheckChild0Type, MVT::i32, ++/*314275*/ OPC_CheckChild1Integer, 1, ++/*314277*/ OPC_CheckChild1Type, MVT::i32, ++/*314279*/ OPC_CheckChild2Integer, 1, ++/*314281*/ OPC_CheckChild2Type, MVT::i32, ++/*314283*/ OPC_CheckChild3Integer, 1, ++/*314285*/ OPC_CheckChild3Type, MVT::i32, ++/*314287*/ OPC_CheckChild4Integer, 1, ++/*314289*/ OPC_CheckChild4Type, MVT::i32, ++/*314291*/ OPC_MoveChild5, ++/*314292*/ OPC_CheckInteger, 1, ++/*314294*/ OPC_CheckType, MVT::i32, ++/*314296*/ OPC_MoveParent, ++/*314297*/ OPC_MoveChild6, ++/*314298*/ OPC_CheckInteger, 1, ++/*314300*/ OPC_CheckType, MVT::i32, ++/*314302*/ OPC_MoveParent, ++/*314303*/ OPC_MoveChild7, ++/*314304*/ OPC_CheckInteger, 1, ++/*314306*/ OPC_CheckType, MVT::i32, ++/*314308*/ OPC_MoveParent, ++/*314309*/ OPC_MoveChild, 8, ++/*314311*/ OPC_CheckInteger, 1, ++/*314313*/ OPC_CheckType, MVT::i32, ++/*314315*/ OPC_MoveParent, ++/*314316*/ OPC_MoveChild, 9, ++/*314318*/ OPC_CheckInteger, 1, ++/*314320*/ OPC_CheckType, MVT::i32, ++/*314322*/ OPC_MoveParent, ++/*314323*/ OPC_MoveChild, 10, ++/*314325*/ OPC_CheckInteger, 1, ++/*314327*/ OPC_CheckType, MVT::i32, ++/*314329*/ OPC_MoveParent, ++/*314330*/ OPC_MoveChild, 11, ++/*314332*/ OPC_CheckInteger, 1, ++/*314334*/ OPC_CheckType, MVT::i32, ++/*314336*/ OPC_MoveParent, ++/*314337*/ OPC_MoveChild, 12, ++/*314339*/ OPC_CheckInteger, 1, ++/*314341*/ OPC_CheckType, MVT::i32, ++/*314343*/ OPC_MoveParent, ++/*314344*/ OPC_MoveChild, 13, ++/*314346*/ OPC_CheckInteger, 1, ++/*314348*/ OPC_CheckType, MVT::i32, ++/*314350*/ OPC_MoveParent, ++/*314351*/ OPC_MoveChild, 14, ++/*314353*/ OPC_CheckInteger, 1, ++/*314355*/ OPC_CheckType, MVT::i32, ++/*314357*/ OPC_MoveParent, ++/*314358*/ OPC_MoveChild, 15, ++/*314360*/ OPC_CheckInteger, 1, ++/*314362*/ OPC_CheckType, MVT::i32, ++/*314364*/ OPC_MoveParent, ++/*314365*/ OPC_MoveChild, 16, ++/*314367*/ OPC_CheckInteger, 1, ++/*314369*/ OPC_CheckType, MVT::i32, ++/*314371*/ OPC_MoveParent, ++/*314372*/ OPC_MoveChild, 17, ++/*314374*/ OPC_CheckInteger, 1, ++/*314376*/ OPC_CheckType, MVT::i32, ++/*314378*/ OPC_MoveParent, ++/*314379*/ OPC_MoveChild, 18, ++/*314381*/ OPC_CheckInteger, 1, ++/*314383*/ OPC_CheckType, MVT::i32, ++/*314385*/ OPC_MoveParent, ++/*314386*/ OPC_MoveChild, 19, ++/*314388*/ OPC_CheckInteger, 1, ++/*314390*/ OPC_CheckType, MVT::i32, ++/*314392*/ OPC_MoveParent, ++/*314393*/ OPC_MoveChild, 20, ++/*314395*/ OPC_CheckInteger, 1, ++/*314397*/ OPC_CheckType, MVT::i32, ++/*314399*/ OPC_MoveParent, ++/*314400*/ OPC_MoveChild, 21, ++/*314402*/ OPC_CheckInteger, 1, ++/*314404*/ OPC_CheckType, MVT::i32, ++/*314406*/ OPC_MoveParent, ++/*314407*/ OPC_MoveChild, 22, ++/*314409*/ OPC_CheckInteger, 1, ++/*314411*/ OPC_CheckType, MVT::i32, ++/*314413*/ OPC_MoveParent, ++/*314414*/ OPC_MoveChild, 23, ++/*314416*/ OPC_CheckInteger, 1, ++/*314418*/ OPC_CheckType, MVT::i32, ++/*314420*/ OPC_MoveParent, ++/*314421*/ OPC_MoveChild, 24, ++/*314423*/ OPC_CheckInteger, 1, ++/*314425*/ OPC_CheckType, MVT::i32, ++/*314427*/ OPC_MoveParent, ++/*314428*/ OPC_MoveChild, 25, ++/*314430*/ OPC_CheckInteger, 1, ++/*314432*/ OPC_CheckType, MVT::i32, ++/*314434*/ OPC_MoveParent, ++/*314435*/ OPC_MoveChild, 26, ++/*314437*/ OPC_CheckInteger, 1, ++/*314439*/ OPC_CheckType, MVT::i32, ++/*314441*/ OPC_MoveParent, ++/*314442*/ OPC_MoveChild, 27, ++/*314444*/ OPC_CheckInteger, 1, ++/*314446*/ OPC_CheckType, MVT::i32, ++/*314448*/ OPC_MoveParent, ++/*314449*/ OPC_MoveChild, 28, ++/*314451*/ OPC_CheckInteger, 1, ++/*314453*/ OPC_CheckType, MVT::i32, ++/*314455*/ OPC_MoveParent, ++/*314456*/ OPC_MoveChild, 29, ++/*314458*/ OPC_CheckInteger, 1, ++/*314460*/ OPC_CheckType, MVT::i32, ++/*314462*/ OPC_MoveParent, ++/*314463*/ OPC_MoveChild, 30, ++/*314465*/ OPC_CheckInteger, 1, ++/*314467*/ OPC_CheckType, MVT::i32, ++/*314469*/ OPC_MoveParent, ++/*314470*/ OPC_MoveChild, 31, ++/*314472*/ OPC_CheckInteger, 1, ++/*314474*/ OPC_CheckType, MVT::i32, ++/*314476*/ OPC_MoveParent, ++/*314477*/ OPC_MoveParent, ++/*314478*/ OPC_MoveParent, ++/*314479*/ OPC_CheckChild1Same, 1, ++/*314481*/ OPC_MoveParent, ++/*314482*/ OPC_MoveParent, ++/*314483*/ OPC_MoveChild1, ++/*314484*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*314487*/ OPC_CheckChild0Integer, 1, ++/*314489*/ OPC_CheckChild0Type, MVT::i32, ++/*314491*/ OPC_CheckChild1Integer, 1, ++/*314493*/ OPC_CheckChild1Type, MVT::i32, ++/*314495*/ OPC_CheckChild2Integer, 1, ++/*314497*/ OPC_CheckChild2Type, MVT::i32, ++/*314499*/ OPC_CheckChild3Integer, 1, ++/*314501*/ OPC_CheckChild3Type, MVT::i32, ++/*314503*/ OPC_CheckChild4Integer, 1, ++/*314505*/ OPC_CheckChild4Type, MVT::i32, ++/*314507*/ OPC_MoveChild5, ++/*314508*/ OPC_CheckInteger, 1, ++/*314510*/ OPC_CheckType, MVT::i32, ++/*314512*/ OPC_MoveParent, ++/*314513*/ OPC_MoveChild6, ++/*314514*/ OPC_CheckInteger, 1, ++/*314516*/ OPC_CheckType, MVT::i32, ++/*314518*/ OPC_MoveParent, ++/*314519*/ OPC_MoveChild7, ++/*314520*/ OPC_CheckInteger, 1, ++/*314522*/ OPC_CheckType, MVT::i32, ++/*314524*/ OPC_MoveParent, ++/*314525*/ OPC_MoveChild, 8, ++/*314527*/ OPC_CheckInteger, 1, ++/*314529*/ OPC_CheckType, MVT::i32, ++/*314531*/ OPC_MoveParent, ++/*314532*/ OPC_MoveChild, 9, ++/*314534*/ OPC_CheckInteger, 1, ++/*314536*/ OPC_CheckType, MVT::i32, ++/*314538*/ OPC_MoveParent, ++/*314539*/ OPC_MoveChild, 10, ++/*314541*/ OPC_CheckInteger, 1, ++/*314543*/ OPC_CheckType, MVT::i32, ++/*314545*/ OPC_MoveParent, ++/*314546*/ OPC_MoveChild, 11, ++/*314548*/ OPC_CheckInteger, 1, ++/*314550*/ OPC_CheckType, MVT::i32, ++/*314552*/ OPC_MoveParent, ++/*314553*/ OPC_MoveChild, 12, ++/*314555*/ OPC_CheckInteger, 1, ++/*314557*/ OPC_CheckType, MVT::i32, ++/*314559*/ OPC_MoveParent, ++/*314560*/ OPC_MoveChild, 13, ++/*314562*/ OPC_CheckInteger, 1, ++/*314564*/ OPC_CheckType, MVT::i32, ++/*314566*/ OPC_MoveParent, ++/*314567*/ OPC_MoveChild, 14, ++/*314569*/ OPC_CheckInteger, 1, ++/*314571*/ OPC_CheckType, MVT::i32, ++/*314573*/ OPC_MoveParent, ++/*314574*/ OPC_MoveChild, 15, ++/*314576*/ OPC_CheckInteger, 1, ++/*314578*/ OPC_CheckType, MVT::i32, ++/*314580*/ OPC_MoveParent, ++/*314581*/ OPC_MoveChild, 16, ++/*314583*/ OPC_CheckInteger, 1, ++/*314585*/ OPC_CheckType, MVT::i32, ++/*314587*/ OPC_MoveParent, ++/*314588*/ OPC_MoveChild, 17, ++/*314590*/ OPC_CheckInteger, 1, ++/*314592*/ OPC_CheckType, MVT::i32, ++/*314594*/ OPC_MoveParent, ++/*314595*/ OPC_MoveChild, 18, ++/*314597*/ OPC_CheckInteger, 1, ++/*314599*/ OPC_CheckType, MVT::i32, ++/*314601*/ OPC_MoveParent, ++/*314602*/ OPC_MoveChild, 19, ++/*314604*/ OPC_CheckInteger, 1, ++/*314606*/ OPC_CheckType, MVT::i32, ++/*314608*/ OPC_MoveParent, ++/*314609*/ OPC_MoveChild, 20, ++/*314611*/ OPC_CheckInteger, 1, ++/*314613*/ OPC_CheckType, MVT::i32, ++/*314615*/ OPC_MoveParent, ++/*314616*/ OPC_MoveChild, 21, ++/*314618*/ OPC_CheckInteger, 1, ++/*314620*/ OPC_CheckType, MVT::i32, ++/*314622*/ OPC_MoveParent, ++/*314623*/ OPC_MoveChild, 22, ++/*314625*/ OPC_CheckInteger, 1, ++/*314627*/ OPC_CheckType, MVT::i32, ++/*314629*/ OPC_MoveParent, ++/*314630*/ OPC_MoveChild, 23, ++/*314632*/ OPC_CheckInteger, 1, ++/*314634*/ OPC_CheckType, MVT::i32, ++/*314636*/ OPC_MoveParent, ++/*314637*/ OPC_MoveChild, 24, ++/*314639*/ OPC_CheckInteger, 1, ++/*314641*/ OPC_CheckType, MVT::i32, ++/*314643*/ OPC_MoveParent, ++/*314644*/ OPC_MoveChild, 25, ++/*314646*/ OPC_CheckInteger, 1, ++/*314648*/ OPC_CheckType, MVT::i32, ++/*314650*/ OPC_MoveParent, ++/*314651*/ OPC_MoveChild, 26, ++/*314653*/ OPC_CheckInteger, 1, ++/*314655*/ OPC_CheckType, MVT::i32, ++/*314657*/ OPC_MoveParent, ++/*314658*/ OPC_MoveChild, 27, ++/*314660*/ OPC_CheckInteger, 1, ++/*314662*/ OPC_CheckType, MVT::i32, ++/*314664*/ OPC_MoveParent, ++/*314665*/ OPC_MoveChild, 28, ++/*314667*/ OPC_CheckInteger, 1, ++/*314669*/ OPC_CheckType, MVT::i32, ++/*314671*/ OPC_MoveParent, ++/*314672*/ OPC_MoveChild, 29, ++/*314674*/ OPC_CheckInteger, 1, ++/*314676*/ OPC_CheckType, MVT::i32, ++/*314678*/ OPC_MoveParent, ++/*314679*/ OPC_MoveChild, 30, ++/*314681*/ OPC_CheckInteger, 1, ++/*314683*/ OPC_CheckType, MVT::i32, ++/*314685*/ OPC_MoveParent, ++/*314686*/ OPC_MoveChild, 31, ++/*314688*/ OPC_CheckInteger, 1, ++/*314690*/ OPC_CheckType, MVT::i32, ++/*314692*/ OPC_MoveParent, ++/*314693*/ OPC_CheckType, MVT::v32i8, ++/*314695*/ OPC_MoveParent, ++/*314696*/ OPC_CheckType, MVT::v32i8, ++/*314698*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*314700*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*314708*/ /*Scope*/ 59|128,3/*443*/, /*->315153*/ ++/*314710*/ OPC_CheckChild0Same, 1, ++/*314712*/ OPC_CheckChild1Same, 0, ++/*314714*/ OPC_MoveParent, ++/*314715*/ OPC_MoveChild1, ++/*314716*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*314719*/ OPC_CheckChild0Integer, 1, ++/*314721*/ OPC_CheckChild0Type, MVT::i32, ++/*314723*/ OPC_CheckChild1Integer, 1, ++/*314725*/ OPC_CheckChild1Type, MVT::i32, ++/*314727*/ OPC_CheckChild2Integer, 1, ++/*314729*/ OPC_CheckChild2Type, MVT::i32, ++/*314731*/ OPC_CheckChild3Integer, 1, ++/*314733*/ OPC_CheckChild3Type, MVT::i32, ++/*314735*/ OPC_CheckChild4Integer, 1, ++/*314737*/ OPC_CheckChild4Type, MVT::i32, ++/*314739*/ OPC_MoveChild5, ++/*314740*/ OPC_CheckInteger, 1, ++/*314742*/ OPC_CheckType, MVT::i32, ++/*314744*/ OPC_MoveParent, ++/*314745*/ OPC_MoveChild6, ++/*314746*/ OPC_CheckInteger, 1, ++/*314748*/ OPC_CheckType, MVT::i32, ++/*314750*/ OPC_MoveParent, ++/*314751*/ OPC_MoveChild7, ++/*314752*/ OPC_CheckInteger, 1, ++/*314754*/ OPC_CheckType, MVT::i32, ++/*314756*/ OPC_MoveParent, ++/*314757*/ OPC_MoveChild, 8, ++/*314759*/ OPC_CheckInteger, 1, ++/*314761*/ OPC_CheckType, MVT::i32, ++/*314763*/ OPC_MoveParent, ++/*314764*/ OPC_MoveChild, 9, ++/*314766*/ OPC_CheckInteger, 1, ++/*314768*/ OPC_CheckType, MVT::i32, ++/*314770*/ OPC_MoveParent, ++/*314771*/ OPC_MoveChild, 10, ++/*314773*/ OPC_CheckInteger, 1, ++/*314775*/ OPC_CheckType, MVT::i32, ++/*314777*/ OPC_MoveParent, ++/*314778*/ OPC_MoveChild, 11, ++/*314780*/ OPC_CheckInteger, 1, ++/*314782*/ OPC_CheckType, MVT::i32, ++/*314784*/ OPC_MoveParent, ++/*314785*/ OPC_MoveChild, 12, ++/*314787*/ OPC_CheckInteger, 1, ++/*314789*/ OPC_CheckType, MVT::i32, ++/*314791*/ OPC_MoveParent, ++/*314792*/ OPC_MoveChild, 13, ++/*314794*/ OPC_CheckInteger, 1, ++/*314796*/ OPC_CheckType, MVT::i32, ++/*314798*/ OPC_MoveParent, ++/*314799*/ OPC_MoveChild, 14, ++/*314801*/ OPC_CheckInteger, 1, ++/*314803*/ OPC_CheckType, MVT::i32, ++/*314805*/ OPC_MoveParent, ++/*314806*/ OPC_MoveChild, 15, ++/*314808*/ OPC_CheckInteger, 1, ++/*314810*/ OPC_CheckType, MVT::i32, ++/*314812*/ OPC_MoveParent, ++/*314813*/ OPC_MoveChild, 16, ++/*314815*/ OPC_CheckInteger, 1, ++/*314817*/ OPC_CheckType, MVT::i32, ++/*314819*/ OPC_MoveParent, ++/*314820*/ OPC_MoveChild, 17, ++/*314822*/ OPC_CheckInteger, 1, ++/*314824*/ OPC_CheckType, MVT::i32, ++/*314826*/ OPC_MoveParent, ++/*314827*/ OPC_MoveChild, 18, ++/*314829*/ OPC_CheckInteger, 1, ++/*314831*/ OPC_CheckType, MVT::i32, ++/*314833*/ OPC_MoveParent, ++/*314834*/ OPC_MoveChild, 19, ++/*314836*/ OPC_CheckInteger, 1, ++/*314838*/ OPC_CheckType, MVT::i32, ++/*314840*/ OPC_MoveParent, ++/*314841*/ OPC_MoveChild, 20, ++/*314843*/ OPC_CheckInteger, 1, ++/*314845*/ OPC_CheckType, MVT::i32, ++/*314847*/ OPC_MoveParent, ++/*314848*/ OPC_MoveChild, 21, ++/*314850*/ OPC_CheckInteger, 1, ++/*314852*/ OPC_CheckType, MVT::i32, ++/*314854*/ OPC_MoveParent, ++/*314855*/ OPC_MoveChild, 22, ++/*314857*/ OPC_CheckInteger, 1, ++/*314859*/ OPC_CheckType, MVT::i32, ++/*314861*/ OPC_MoveParent, ++/*314862*/ OPC_MoveChild, 23, ++/*314864*/ OPC_CheckInteger, 1, ++/*314866*/ OPC_CheckType, MVT::i32, ++/*314868*/ OPC_MoveParent, ++/*314869*/ OPC_MoveChild, 24, ++/*314871*/ OPC_CheckInteger, 1, ++/*314873*/ OPC_CheckType, MVT::i32, ++/*314875*/ OPC_MoveParent, ++/*314876*/ OPC_MoveChild, 25, ++/*314878*/ OPC_CheckInteger, 1, ++/*314880*/ OPC_CheckType, MVT::i32, ++/*314882*/ OPC_MoveParent, ++/*314883*/ OPC_MoveChild, 26, ++/*314885*/ OPC_CheckInteger, 1, ++/*314887*/ OPC_CheckType, MVT::i32, ++/*314889*/ OPC_MoveParent, ++/*314890*/ OPC_MoveChild, 27, ++/*314892*/ OPC_CheckInteger, 1, ++/*314894*/ OPC_CheckType, MVT::i32, ++/*314896*/ OPC_MoveParent, ++/*314897*/ OPC_MoveChild, 28, ++/*314899*/ OPC_CheckInteger, 1, ++/*314901*/ OPC_CheckType, MVT::i32, ++/*314903*/ OPC_MoveParent, ++/*314904*/ OPC_MoveChild, 29, ++/*314906*/ OPC_CheckInteger, 1, ++/*314908*/ OPC_CheckType, MVT::i32, ++/*314910*/ OPC_MoveParent, ++/*314911*/ OPC_MoveChild, 30, ++/*314913*/ OPC_CheckInteger, 1, ++/*314915*/ OPC_CheckType, MVT::i32, ++/*314917*/ OPC_MoveParent, ++/*314918*/ OPC_MoveChild, 31, ++/*314920*/ OPC_CheckInteger, 1, ++/*314922*/ OPC_CheckType, MVT::i32, ++/*314924*/ OPC_MoveParent, ++/*314925*/ OPC_MoveParent, ++/*314926*/ OPC_MoveParent, ++/*314927*/ OPC_MoveParent, ++/*314928*/ OPC_MoveChild1, ++/*314929*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*314932*/ OPC_CheckChild0Integer, 1, ++/*314934*/ OPC_CheckChild0Type, MVT::i32, ++/*314936*/ OPC_CheckChild1Integer, 1, ++/*314938*/ OPC_CheckChild1Type, MVT::i32, ++/*314940*/ OPC_CheckChild2Integer, 1, ++/*314942*/ OPC_CheckChild2Type, MVT::i32, ++/*314944*/ OPC_CheckChild3Integer, 1, ++/*314946*/ OPC_CheckChild3Type, MVT::i32, ++/*314948*/ OPC_CheckChild4Integer, 1, ++/*314950*/ OPC_CheckChild4Type, MVT::i32, ++/*314952*/ OPC_MoveChild5, ++/*314953*/ OPC_CheckInteger, 1, ++/*314955*/ OPC_CheckType, MVT::i32, ++/*314957*/ OPC_MoveParent, ++/*314958*/ OPC_MoveChild6, ++/*314959*/ OPC_CheckInteger, 1, ++/*314961*/ OPC_CheckType, MVT::i32, ++/*314963*/ OPC_MoveParent, ++/*314964*/ OPC_MoveChild7, ++/*314965*/ OPC_CheckInteger, 1, ++/*314967*/ OPC_CheckType, MVT::i32, ++/*314969*/ OPC_MoveParent, ++/*314970*/ OPC_MoveChild, 8, ++/*314972*/ OPC_CheckInteger, 1, ++/*314974*/ OPC_CheckType, MVT::i32, ++/*314976*/ OPC_MoveParent, ++/*314977*/ OPC_MoveChild, 9, ++/*314979*/ OPC_CheckInteger, 1, ++/*314981*/ OPC_CheckType, MVT::i32, ++/*314983*/ OPC_MoveParent, ++/*314984*/ OPC_MoveChild, 10, ++/*314986*/ OPC_CheckInteger, 1, ++/*314988*/ OPC_CheckType, MVT::i32, ++/*314990*/ OPC_MoveParent, ++/*314991*/ OPC_MoveChild, 11, ++/*314993*/ OPC_CheckInteger, 1, ++/*314995*/ OPC_CheckType, MVT::i32, ++/*314997*/ OPC_MoveParent, ++/*314998*/ OPC_MoveChild, 12, ++/*315000*/ OPC_CheckInteger, 1, ++/*315002*/ OPC_CheckType, MVT::i32, ++/*315004*/ OPC_MoveParent, ++/*315005*/ OPC_MoveChild, 13, ++/*315007*/ OPC_CheckInteger, 1, ++/*315009*/ OPC_CheckType, MVT::i32, ++/*315011*/ OPC_MoveParent, ++/*315012*/ OPC_MoveChild, 14, ++/*315014*/ OPC_CheckInteger, 1, ++/*315016*/ OPC_CheckType, MVT::i32, ++/*315018*/ OPC_MoveParent, ++/*315019*/ OPC_MoveChild, 15, ++/*315021*/ OPC_CheckInteger, 1, ++/*315023*/ OPC_CheckType, MVT::i32, ++/*315025*/ OPC_MoveParent, ++/*315026*/ OPC_MoveChild, 16, ++/*315028*/ OPC_CheckInteger, 1, ++/*315030*/ OPC_CheckType, MVT::i32, ++/*315032*/ OPC_MoveParent, ++/*315033*/ OPC_MoveChild, 17, ++/*315035*/ OPC_CheckInteger, 1, ++/*315037*/ OPC_CheckType, MVT::i32, ++/*315039*/ OPC_MoveParent, ++/*315040*/ OPC_MoveChild, 18, ++/*315042*/ OPC_CheckInteger, 1, ++/*315044*/ OPC_CheckType, MVT::i32, ++/*315046*/ OPC_MoveParent, ++/*315047*/ OPC_MoveChild, 19, ++/*315049*/ OPC_CheckInteger, 1, ++/*315051*/ OPC_CheckType, MVT::i32, ++/*315053*/ OPC_MoveParent, ++/*315054*/ OPC_MoveChild, 20, ++/*315056*/ OPC_CheckInteger, 1, ++/*315058*/ OPC_CheckType, MVT::i32, ++/*315060*/ OPC_MoveParent, ++/*315061*/ OPC_MoveChild, 21, ++/*315063*/ OPC_CheckInteger, 1, ++/*315065*/ OPC_CheckType, MVT::i32, ++/*315067*/ OPC_MoveParent, ++/*315068*/ OPC_MoveChild, 22, ++/*315070*/ OPC_CheckInteger, 1, ++/*315072*/ OPC_CheckType, MVT::i32, ++/*315074*/ OPC_MoveParent, ++/*315075*/ OPC_MoveChild, 23, ++/*315077*/ OPC_CheckInteger, 1, ++/*315079*/ OPC_CheckType, MVT::i32, ++/*315081*/ OPC_MoveParent, ++/*315082*/ OPC_MoveChild, 24, ++/*315084*/ OPC_CheckInteger, 1, ++/*315086*/ OPC_CheckType, MVT::i32, ++/*315088*/ OPC_MoveParent, ++/*315089*/ OPC_MoveChild, 25, ++/*315091*/ OPC_CheckInteger, 1, ++/*315093*/ OPC_CheckType, MVT::i32, ++/*315095*/ OPC_MoveParent, ++/*315096*/ OPC_MoveChild, 26, ++/*315098*/ OPC_CheckInteger, 1, ++/*315100*/ OPC_CheckType, MVT::i32, ++/*315102*/ OPC_MoveParent, ++/*315103*/ OPC_MoveChild, 27, ++/*315105*/ OPC_CheckInteger, 1, ++/*315107*/ OPC_CheckType, MVT::i32, ++/*315109*/ OPC_MoveParent, ++/*315110*/ OPC_MoveChild, 28, ++/*315112*/ OPC_CheckInteger, 1, ++/*315114*/ OPC_CheckType, MVT::i32, ++/*315116*/ OPC_MoveParent, ++/*315117*/ OPC_MoveChild, 29, ++/*315119*/ OPC_CheckInteger, 1, ++/*315121*/ OPC_CheckType, MVT::i32, ++/*315123*/ OPC_MoveParent, ++/*315124*/ OPC_MoveChild, 30, ++/*315126*/ OPC_CheckInteger, 1, ++/*315128*/ OPC_CheckType, MVT::i32, ++/*315130*/ OPC_MoveParent, ++/*315131*/ OPC_MoveChild, 31, ++/*315133*/ OPC_CheckInteger, 1, ++/*315135*/ OPC_CheckType, MVT::i32, ++/*315137*/ OPC_MoveParent, ++/*315138*/ OPC_CheckType, MVT::v32i8, ++/*315140*/ OPC_MoveParent, ++/*315141*/ OPC_CheckType, MVT::v32i8, ++/*315143*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*315145*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*315153*/ /*Scope*/ 59|128,3/*443*/, /*->315598*/ ++/*315155*/ OPC_CheckChild0Same, 0, ++/*315157*/ OPC_CheckChild1Same, 1, ++/*315159*/ OPC_MoveParent, ++/*315160*/ OPC_MoveChild1, ++/*315161*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*315164*/ OPC_CheckChild0Integer, 1, ++/*315166*/ OPC_CheckChild0Type, MVT::i32, ++/*315168*/ OPC_CheckChild1Integer, 1, ++/*315170*/ OPC_CheckChild1Type, MVT::i32, ++/*315172*/ OPC_CheckChild2Integer, 1, ++/*315174*/ OPC_CheckChild2Type, MVT::i32, ++/*315176*/ OPC_CheckChild3Integer, 1, ++/*315178*/ OPC_CheckChild3Type, MVT::i32, ++/*315180*/ OPC_CheckChild4Integer, 1, ++/*315182*/ OPC_CheckChild4Type, MVT::i32, ++/*315184*/ OPC_MoveChild5, ++/*315185*/ OPC_CheckInteger, 1, ++/*315187*/ OPC_CheckType, MVT::i32, ++/*315189*/ OPC_MoveParent, ++/*315190*/ OPC_MoveChild6, ++/*315191*/ OPC_CheckInteger, 1, ++/*315193*/ OPC_CheckType, MVT::i32, ++/*315195*/ OPC_MoveParent, ++/*315196*/ OPC_MoveChild7, ++/*315197*/ OPC_CheckInteger, 1, ++/*315199*/ OPC_CheckType, MVT::i32, ++/*315201*/ OPC_MoveParent, ++/*315202*/ OPC_MoveChild, 8, ++/*315204*/ OPC_CheckInteger, 1, ++/*315206*/ OPC_CheckType, MVT::i32, ++/*315208*/ OPC_MoveParent, ++/*315209*/ OPC_MoveChild, 9, ++/*315211*/ OPC_CheckInteger, 1, ++/*315213*/ OPC_CheckType, MVT::i32, ++/*315215*/ OPC_MoveParent, ++/*315216*/ OPC_MoveChild, 10, ++/*315218*/ OPC_CheckInteger, 1, ++/*315220*/ OPC_CheckType, MVT::i32, ++/*315222*/ OPC_MoveParent, ++/*315223*/ OPC_MoveChild, 11, ++/*315225*/ OPC_CheckInteger, 1, ++/*315227*/ OPC_CheckType, MVT::i32, ++/*315229*/ OPC_MoveParent, ++/*315230*/ OPC_MoveChild, 12, ++/*315232*/ OPC_CheckInteger, 1, ++/*315234*/ OPC_CheckType, MVT::i32, ++/*315236*/ OPC_MoveParent, ++/*315237*/ OPC_MoveChild, 13, ++/*315239*/ OPC_CheckInteger, 1, ++/*315241*/ OPC_CheckType, MVT::i32, ++/*315243*/ OPC_MoveParent, ++/*315244*/ OPC_MoveChild, 14, ++/*315246*/ OPC_CheckInteger, 1, ++/*315248*/ OPC_CheckType, MVT::i32, ++/*315250*/ OPC_MoveParent, ++/*315251*/ OPC_MoveChild, 15, ++/*315253*/ OPC_CheckInteger, 1, ++/*315255*/ OPC_CheckType, MVT::i32, ++/*315257*/ OPC_MoveParent, ++/*315258*/ OPC_MoveChild, 16, ++/*315260*/ OPC_CheckInteger, 1, ++/*315262*/ OPC_CheckType, MVT::i32, ++/*315264*/ OPC_MoveParent, ++/*315265*/ OPC_MoveChild, 17, ++/*315267*/ OPC_CheckInteger, 1, ++/*315269*/ OPC_CheckType, MVT::i32, ++/*315271*/ OPC_MoveParent, ++/*315272*/ OPC_MoveChild, 18, ++/*315274*/ OPC_CheckInteger, 1, ++/*315276*/ OPC_CheckType, MVT::i32, ++/*315278*/ OPC_MoveParent, ++/*315279*/ OPC_MoveChild, 19, ++/*315281*/ OPC_CheckInteger, 1, ++/*315283*/ OPC_CheckType, MVT::i32, ++/*315285*/ OPC_MoveParent, ++/*315286*/ OPC_MoveChild, 20, ++/*315288*/ OPC_CheckInteger, 1, ++/*315290*/ OPC_CheckType, MVT::i32, ++/*315292*/ OPC_MoveParent, ++/*315293*/ OPC_MoveChild, 21, ++/*315295*/ OPC_CheckInteger, 1, ++/*315297*/ OPC_CheckType, MVT::i32, ++/*315299*/ OPC_MoveParent, ++/*315300*/ OPC_MoveChild, 22, ++/*315302*/ OPC_CheckInteger, 1, ++/*315304*/ OPC_CheckType, MVT::i32, ++/*315306*/ OPC_MoveParent, ++/*315307*/ OPC_MoveChild, 23, ++/*315309*/ OPC_CheckInteger, 1, ++/*315311*/ OPC_CheckType, MVT::i32, ++/*315313*/ OPC_MoveParent, ++/*315314*/ OPC_MoveChild, 24, ++/*315316*/ OPC_CheckInteger, 1, ++/*315318*/ OPC_CheckType, MVT::i32, ++/*315320*/ OPC_MoveParent, ++/*315321*/ OPC_MoveChild, 25, ++/*315323*/ OPC_CheckInteger, 1, ++/*315325*/ OPC_CheckType, MVT::i32, ++/*315327*/ OPC_MoveParent, ++/*315328*/ OPC_MoveChild, 26, ++/*315330*/ OPC_CheckInteger, 1, ++/*315332*/ OPC_CheckType, MVT::i32, ++/*315334*/ OPC_MoveParent, ++/*315335*/ OPC_MoveChild, 27, ++/*315337*/ OPC_CheckInteger, 1, ++/*315339*/ OPC_CheckType, MVT::i32, ++/*315341*/ OPC_MoveParent, ++/*315342*/ OPC_MoveChild, 28, ++/*315344*/ OPC_CheckInteger, 1, ++/*315346*/ OPC_CheckType, MVT::i32, ++/*315348*/ OPC_MoveParent, ++/*315349*/ OPC_MoveChild, 29, ++/*315351*/ OPC_CheckInteger, 1, ++/*315353*/ OPC_CheckType, MVT::i32, ++/*315355*/ OPC_MoveParent, ++/*315356*/ OPC_MoveChild, 30, ++/*315358*/ OPC_CheckInteger, 1, ++/*315360*/ OPC_CheckType, MVT::i32, ++/*315362*/ OPC_MoveParent, ++/*315363*/ OPC_MoveChild, 31, ++/*315365*/ OPC_CheckInteger, 1, ++/*315367*/ OPC_CheckType, MVT::i32, ++/*315369*/ OPC_MoveParent, ++/*315370*/ OPC_MoveParent, ++/*315371*/ OPC_MoveParent, ++/*315372*/ OPC_MoveParent, ++/*315373*/ OPC_MoveChild1, ++/*315374*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*315377*/ OPC_CheckChild0Integer, 1, ++/*315379*/ OPC_CheckChild0Type, MVT::i32, ++/*315381*/ OPC_CheckChild1Integer, 1, ++/*315383*/ OPC_CheckChild1Type, MVT::i32, ++/*315385*/ OPC_CheckChild2Integer, 1, ++/*315387*/ OPC_CheckChild2Type, MVT::i32, ++/*315389*/ OPC_CheckChild3Integer, 1, ++/*315391*/ OPC_CheckChild3Type, MVT::i32, ++/*315393*/ OPC_CheckChild4Integer, 1, ++/*315395*/ OPC_CheckChild4Type, MVT::i32, ++/*315397*/ OPC_MoveChild5, ++/*315398*/ OPC_CheckInteger, 1, ++/*315400*/ OPC_CheckType, MVT::i32, ++/*315402*/ OPC_MoveParent, ++/*315403*/ OPC_MoveChild6, ++/*315404*/ OPC_CheckInteger, 1, ++/*315406*/ OPC_CheckType, MVT::i32, ++/*315408*/ OPC_MoveParent, ++/*315409*/ OPC_MoveChild7, ++/*315410*/ OPC_CheckInteger, 1, ++/*315412*/ OPC_CheckType, MVT::i32, ++/*315414*/ OPC_MoveParent, ++/*315415*/ OPC_MoveChild, 8, ++/*315417*/ OPC_CheckInteger, 1, ++/*315419*/ OPC_CheckType, MVT::i32, ++/*315421*/ OPC_MoveParent, ++/*315422*/ OPC_MoveChild, 9, ++/*315424*/ OPC_CheckInteger, 1, ++/*315426*/ OPC_CheckType, MVT::i32, ++/*315428*/ OPC_MoveParent, ++/*315429*/ OPC_MoveChild, 10, ++/*315431*/ OPC_CheckInteger, 1, ++/*315433*/ OPC_CheckType, MVT::i32, ++/*315435*/ OPC_MoveParent, ++/*315436*/ OPC_MoveChild, 11, ++/*315438*/ OPC_CheckInteger, 1, ++/*315440*/ OPC_CheckType, MVT::i32, ++/*315442*/ OPC_MoveParent, ++/*315443*/ OPC_MoveChild, 12, ++/*315445*/ OPC_CheckInteger, 1, ++/*315447*/ OPC_CheckType, MVT::i32, ++/*315449*/ OPC_MoveParent, ++/*315450*/ OPC_MoveChild, 13, ++/*315452*/ OPC_CheckInteger, 1, ++/*315454*/ OPC_CheckType, MVT::i32, ++/*315456*/ OPC_MoveParent, ++/*315457*/ OPC_MoveChild, 14, ++/*315459*/ OPC_CheckInteger, 1, ++/*315461*/ OPC_CheckType, MVT::i32, ++/*315463*/ OPC_MoveParent, ++/*315464*/ OPC_MoveChild, 15, ++/*315466*/ OPC_CheckInteger, 1, ++/*315468*/ OPC_CheckType, MVT::i32, ++/*315470*/ OPC_MoveParent, ++/*315471*/ OPC_MoveChild, 16, ++/*315473*/ OPC_CheckInteger, 1, ++/*315475*/ OPC_CheckType, MVT::i32, ++/*315477*/ OPC_MoveParent, ++/*315478*/ OPC_MoveChild, 17, ++/*315480*/ OPC_CheckInteger, 1, ++/*315482*/ OPC_CheckType, MVT::i32, ++/*315484*/ OPC_MoveParent, ++/*315485*/ OPC_MoveChild, 18, ++/*315487*/ OPC_CheckInteger, 1, ++/*315489*/ OPC_CheckType, MVT::i32, ++/*315491*/ OPC_MoveParent, ++/*315492*/ OPC_MoveChild, 19, ++/*315494*/ OPC_CheckInteger, 1, ++/*315496*/ OPC_CheckType, MVT::i32, ++/*315498*/ OPC_MoveParent, ++/*315499*/ OPC_MoveChild, 20, ++/*315501*/ OPC_CheckInteger, 1, ++/*315503*/ OPC_CheckType, MVT::i32, ++/*315505*/ OPC_MoveParent, ++/*315506*/ OPC_MoveChild, 21, ++/*315508*/ OPC_CheckInteger, 1, ++/*315510*/ OPC_CheckType, MVT::i32, ++/*315512*/ OPC_MoveParent, ++/*315513*/ OPC_MoveChild, 22, ++/*315515*/ OPC_CheckInteger, 1, ++/*315517*/ OPC_CheckType, MVT::i32, ++/*315519*/ OPC_MoveParent, ++/*315520*/ OPC_MoveChild, 23, ++/*315522*/ OPC_CheckInteger, 1, ++/*315524*/ OPC_CheckType, MVT::i32, ++/*315526*/ OPC_MoveParent, ++/*315527*/ OPC_MoveChild, 24, ++/*315529*/ OPC_CheckInteger, 1, ++/*315531*/ OPC_CheckType, MVT::i32, ++/*315533*/ OPC_MoveParent, ++/*315534*/ OPC_MoveChild, 25, ++/*315536*/ OPC_CheckInteger, 1, ++/*315538*/ OPC_CheckType, MVT::i32, ++/*315540*/ OPC_MoveParent, ++/*315541*/ OPC_MoveChild, 26, ++/*315543*/ OPC_CheckInteger, 1, ++/*315545*/ OPC_CheckType, MVT::i32, ++/*315547*/ OPC_MoveParent, ++/*315548*/ OPC_MoveChild, 27, ++/*315550*/ OPC_CheckInteger, 1, ++/*315552*/ OPC_CheckType, MVT::i32, ++/*315554*/ OPC_MoveParent, ++/*315555*/ OPC_MoveChild, 28, ++/*315557*/ OPC_CheckInteger, 1, ++/*315559*/ OPC_CheckType, MVT::i32, ++/*315561*/ OPC_MoveParent, ++/*315562*/ OPC_MoveChild, 29, ++/*315564*/ OPC_CheckInteger, 1, ++/*315566*/ OPC_CheckType, MVT::i32, ++/*315568*/ OPC_MoveParent, ++/*315569*/ OPC_MoveChild, 30, ++/*315571*/ OPC_CheckInteger, 1, ++/*315573*/ OPC_CheckType, MVT::i32, ++/*315575*/ OPC_MoveParent, ++/*315576*/ OPC_MoveChild, 31, ++/*315578*/ OPC_CheckInteger, 1, ++/*315580*/ OPC_CheckType, MVT::i32, ++/*315582*/ OPC_MoveParent, ++/*315583*/ OPC_CheckType, MVT::v32i8, ++/*315585*/ OPC_MoveParent, ++/*315586*/ OPC_CheckType, MVT::v32i8, ++/*315588*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*315590*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*315598*/ 0, /*End of Scope*/ ++/*315599*/ /*Scope*/ 126|128,6/*894*/, /*->316495*/ ++/*315601*/ OPC_CheckChild0Same, 0, ++/*315603*/ OPC_MoveChild1, ++/*315604*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*315607*/ OPC_Scope, 57|128,3/*441*/, /*->316051*/ // 2 children in Scope ++/*315610*/ OPC_MoveChild0, ++/*315611*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*315614*/ OPC_CheckChild0Integer, 1, ++/*315616*/ OPC_CheckChild0Type, MVT::i32, ++/*315618*/ OPC_CheckChild1Integer, 1, ++/*315620*/ OPC_CheckChild1Type, MVT::i32, ++/*315622*/ OPC_CheckChild2Integer, 1, ++/*315624*/ OPC_CheckChild2Type, MVT::i32, ++/*315626*/ OPC_CheckChild3Integer, 1, ++/*315628*/ OPC_CheckChild3Type, MVT::i32, ++/*315630*/ OPC_CheckChild4Integer, 1, ++/*315632*/ OPC_CheckChild4Type, MVT::i32, ++/*315634*/ OPC_MoveChild5, ++/*315635*/ OPC_CheckInteger, 1, ++/*315637*/ OPC_CheckType, MVT::i32, ++/*315639*/ OPC_MoveParent, ++/*315640*/ OPC_MoveChild6, ++/*315641*/ OPC_CheckInteger, 1, ++/*315643*/ OPC_CheckType, MVT::i32, ++/*315645*/ OPC_MoveParent, ++/*315646*/ OPC_MoveChild7, ++/*315647*/ OPC_CheckInteger, 1, ++/*315649*/ OPC_CheckType, MVT::i32, ++/*315651*/ OPC_MoveParent, ++/*315652*/ OPC_MoveChild, 8, ++/*315654*/ OPC_CheckInteger, 1, ++/*315656*/ OPC_CheckType, MVT::i32, ++/*315658*/ OPC_MoveParent, ++/*315659*/ OPC_MoveChild, 9, ++/*315661*/ OPC_CheckInteger, 1, ++/*315663*/ OPC_CheckType, MVT::i32, ++/*315665*/ OPC_MoveParent, ++/*315666*/ OPC_MoveChild, 10, ++/*315668*/ OPC_CheckInteger, 1, ++/*315670*/ OPC_CheckType, MVT::i32, ++/*315672*/ OPC_MoveParent, ++/*315673*/ OPC_MoveChild, 11, ++/*315675*/ OPC_CheckInteger, 1, ++/*315677*/ OPC_CheckType, MVT::i32, ++/*315679*/ OPC_MoveParent, ++/*315680*/ OPC_MoveChild, 12, ++/*315682*/ OPC_CheckInteger, 1, ++/*315684*/ OPC_CheckType, MVT::i32, ++/*315686*/ OPC_MoveParent, ++/*315687*/ OPC_MoveChild, 13, ++/*315689*/ OPC_CheckInteger, 1, ++/*315691*/ OPC_CheckType, MVT::i32, ++/*315693*/ OPC_MoveParent, ++/*315694*/ OPC_MoveChild, 14, ++/*315696*/ OPC_CheckInteger, 1, ++/*315698*/ OPC_CheckType, MVT::i32, ++/*315700*/ OPC_MoveParent, ++/*315701*/ OPC_MoveChild, 15, ++/*315703*/ OPC_CheckInteger, 1, ++/*315705*/ OPC_CheckType, MVT::i32, ++/*315707*/ OPC_MoveParent, ++/*315708*/ OPC_MoveChild, 16, ++/*315710*/ OPC_CheckInteger, 1, ++/*315712*/ OPC_CheckType, MVT::i32, ++/*315714*/ OPC_MoveParent, ++/*315715*/ OPC_MoveChild, 17, ++/*315717*/ OPC_CheckInteger, 1, ++/*315719*/ OPC_CheckType, MVT::i32, ++/*315721*/ OPC_MoveParent, ++/*315722*/ OPC_MoveChild, 18, ++/*315724*/ OPC_CheckInteger, 1, ++/*315726*/ OPC_CheckType, MVT::i32, ++/*315728*/ OPC_MoveParent, ++/*315729*/ OPC_MoveChild, 19, ++/*315731*/ OPC_CheckInteger, 1, ++/*315733*/ OPC_CheckType, MVT::i32, ++/*315735*/ OPC_MoveParent, ++/*315736*/ OPC_MoveChild, 20, ++/*315738*/ OPC_CheckInteger, 1, ++/*315740*/ OPC_CheckType, MVT::i32, ++/*315742*/ OPC_MoveParent, ++/*315743*/ OPC_MoveChild, 21, ++/*315745*/ OPC_CheckInteger, 1, ++/*315747*/ OPC_CheckType, MVT::i32, ++/*315749*/ OPC_MoveParent, ++/*315750*/ OPC_MoveChild, 22, ++/*315752*/ OPC_CheckInteger, 1, ++/*315754*/ OPC_CheckType, MVT::i32, ++/*315756*/ OPC_MoveParent, ++/*315757*/ OPC_MoveChild, 23, ++/*315759*/ OPC_CheckInteger, 1, ++/*315761*/ OPC_CheckType, MVT::i32, ++/*315763*/ OPC_MoveParent, ++/*315764*/ OPC_MoveChild, 24, ++/*315766*/ OPC_CheckInteger, 1, ++/*315768*/ OPC_CheckType, MVT::i32, ++/*315770*/ OPC_MoveParent, ++/*315771*/ OPC_MoveChild, 25, ++/*315773*/ OPC_CheckInteger, 1, ++/*315775*/ OPC_CheckType, MVT::i32, ++/*315777*/ OPC_MoveParent, ++/*315778*/ OPC_MoveChild, 26, ++/*315780*/ OPC_CheckInteger, 1, ++/*315782*/ OPC_CheckType, MVT::i32, ++/*315784*/ OPC_MoveParent, ++/*315785*/ OPC_MoveChild, 27, ++/*315787*/ OPC_CheckInteger, 1, ++/*315789*/ OPC_CheckType, MVT::i32, ++/*315791*/ OPC_MoveParent, ++/*315792*/ OPC_MoveChild, 28, ++/*315794*/ OPC_CheckInteger, 1, ++/*315796*/ OPC_CheckType, MVT::i32, ++/*315798*/ OPC_MoveParent, ++/*315799*/ OPC_MoveChild, 29, ++/*315801*/ OPC_CheckInteger, 1, ++/*315803*/ OPC_CheckType, MVT::i32, ++/*315805*/ OPC_MoveParent, ++/*315806*/ OPC_MoveChild, 30, ++/*315808*/ OPC_CheckInteger, 1, ++/*315810*/ OPC_CheckType, MVT::i32, ++/*315812*/ OPC_MoveParent, ++/*315813*/ OPC_MoveChild, 31, ++/*315815*/ OPC_CheckInteger, 1, ++/*315817*/ OPC_CheckType, MVT::i32, ++/*315819*/ OPC_MoveParent, ++/*315820*/ OPC_MoveParent, ++/*315821*/ OPC_CheckChild1Same, 1, ++/*315823*/ OPC_MoveParent, ++/*315824*/ OPC_MoveParent, ++/*315825*/ OPC_MoveParent, ++/*315826*/ OPC_MoveChild1, ++/*315827*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*315830*/ OPC_CheckChild0Integer, 1, ++/*315832*/ OPC_CheckChild0Type, MVT::i32, ++/*315834*/ OPC_CheckChild1Integer, 1, ++/*315836*/ OPC_CheckChild1Type, MVT::i32, ++/*315838*/ OPC_CheckChild2Integer, 1, ++/*315840*/ OPC_CheckChild2Type, MVT::i32, ++/*315842*/ OPC_CheckChild3Integer, 1, ++/*315844*/ OPC_CheckChild3Type, MVT::i32, ++/*315846*/ OPC_CheckChild4Integer, 1, ++/*315848*/ OPC_CheckChild4Type, MVT::i32, ++/*315850*/ OPC_MoveChild5, ++/*315851*/ OPC_CheckInteger, 1, ++/*315853*/ OPC_CheckType, MVT::i32, ++/*315855*/ OPC_MoveParent, ++/*315856*/ OPC_MoveChild6, ++/*315857*/ OPC_CheckInteger, 1, ++/*315859*/ OPC_CheckType, MVT::i32, ++/*315861*/ OPC_MoveParent, ++/*315862*/ OPC_MoveChild7, ++/*315863*/ OPC_CheckInteger, 1, ++/*315865*/ OPC_CheckType, MVT::i32, ++/*315867*/ OPC_MoveParent, ++/*315868*/ OPC_MoveChild, 8, ++/*315870*/ OPC_CheckInteger, 1, ++/*315872*/ OPC_CheckType, MVT::i32, ++/*315874*/ OPC_MoveParent, ++/*315875*/ OPC_MoveChild, 9, ++/*315877*/ OPC_CheckInteger, 1, ++/*315879*/ OPC_CheckType, MVT::i32, ++/*315881*/ OPC_MoveParent, ++/*315882*/ OPC_MoveChild, 10, ++/*315884*/ OPC_CheckInteger, 1, ++/*315886*/ OPC_CheckType, MVT::i32, ++/*315888*/ OPC_MoveParent, ++/*315889*/ OPC_MoveChild, 11, ++/*315891*/ OPC_CheckInteger, 1, ++/*315893*/ OPC_CheckType, MVT::i32, ++/*315895*/ OPC_MoveParent, ++/*315896*/ OPC_MoveChild, 12, ++/*315898*/ OPC_CheckInteger, 1, ++/*315900*/ OPC_CheckType, MVT::i32, ++/*315902*/ OPC_MoveParent, ++/*315903*/ OPC_MoveChild, 13, ++/*315905*/ OPC_CheckInteger, 1, ++/*315907*/ OPC_CheckType, MVT::i32, ++/*315909*/ OPC_MoveParent, ++/*315910*/ OPC_MoveChild, 14, ++/*315912*/ OPC_CheckInteger, 1, ++/*315914*/ OPC_CheckType, MVT::i32, ++/*315916*/ OPC_MoveParent, ++/*315917*/ OPC_MoveChild, 15, ++/*315919*/ OPC_CheckInteger, 1, ++/*315921*/ OPC_CheckType, MVT::i32, ++/*315923*/ OPC_MoveParent, ++/*315924*/ OPC_MoveChild, 16, ++/*315926*/ OPC_CheckInteger, 1, ++/*315928*/ OPC_CheckType, MVT::i32, ++/*315930*/ OPC_MoveParent, ++/*315931*/ OPC_MoveChild, 17, ++/*315933*/ OPC_CheckInteger, 1, ++/*315935*/ OPC_CheckType, MVT::i32, ++/*315937*/ OPC_MoveParent, ++/*315938*/ OPC_MoveChild, 18, ++/*315940*/ OPC_CheckInteger, 1, ++/*315942*/ OPC_CheckType, MVT::i32, ++/*315944*/ OPC_MoveParent, ++/*315945*/ OPC_MoveChild, 19, ++/*315947*/ OPC_CheckInteger, 1, ++/*315949*/ OPC_CheckType, MVT::i32, ++/*315951*/ OPC_MoveParent, ++/*315952*/ OPC_MoveChild, 20, ++/*315954*/ OPC_CheckInteger, 1, ++/*315956*/ OPC_CheckType, MVT::i32, ++/*315958*/ OPC_MoveParent, ++/*315959*/ OPC_MoveChild, 21, ++/*315961*/ OPC_CheckInteger, 1, ++/*315963*/ OPC_CheckType, MVT::i32, ++/*315965*/ OPC_MoveParent, ++/*315966*/ OPC_MoveChild, 22, ++/*315968*/ OPC_CheckInteger, 1, ++/*315970*/ OPC_CheckType, MVT::i32, ++/*315972*/ OPC_MoveParent, ++/*315973*/ OPC_MoveChild, 23, ++/*315975*/ OPC_CheckInteger, 1, ++/*315977*/ OPC_CheckType, MVT::i32, ++/*315979*/ OPC_MoveParent, ++/*315980*/ OPC_MoveChild, 24, ++/*315982*/ OPC_CheckInteger, 1, ++/*315984*/ OPC_CheckType, MVT::i32, ++/*315986*/ OPC_MoveParent, ++/*315987*/ OPC_MoveChild, 25, ++/*315989*/ OPC_CheckInteger, 1, ++/*315991*/ OPC_CheckType, MVT::i32, ++/*315993*/ OPC_MoveParent, ++/*315994*/ OPC_MoveChild, 26, ++/*315996*/ OPC_CheckInteger, 1, ++/*315998*/ OPC_CheckType, MVT::i32, ++/*316000*/ OPC_MoveParent, ++/*316001*/ OPC_MoveChild, 27, ++/*316003*/ OPC_CheckInteger, 1, ++/*316005*/ OPC_CheckType, MVT::i32, ++/*316007*/ OPC_MoveParent, ++/*316008*/ OPC_MoveChild, 28, ++/*316010*/ OPC_CheckInteger, 1, ++/*316012*/ OPC_CheckType, MVT::i32, ++/*316014*/ OPC_MoveParent, ++/*316015*/ OPC_MoveChild, 29, ++/*316017*/ OPC_CheckInteger, 1, ++/*316019*/ OPC_CheckType, MVT::i32, ++/*316021*/ OPC_MoveParent, ++/*316022*/ OPC_MoveChild, 30, ++/*316024*/ OPC_CheckInteger, 1, ++/*316026*/ OPC_CheckType, MVT::i32, ++/*316028*/ OPC_MoveParent, ++/*316029*/ OPC_MoveChild, 31, ++/*316031*/ OPC_CheckInteger, 1, ++/*316033*/ OPC_CheckType, MVT::i32, ++/*316035*/ OPC_MoveParent, ++/*316036*/ OPC_CheckType, MVT::v32i8, ++/*316038*/ OPC_MoveParent, ++/*316039*/ OPC_CheckType, MVT::v32i8, ++/*316041*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*316043*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*316051*/ /*Scope*/ 57|128,3/*441*/, /*->316494*/ ++/*316053*/ OPC_CheckChild0Same, 1, ++/*316055*/ OPC_MoveChild1, ++/*316056*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*316059*/ OPC_CheckChild0Integer, 1, ++/*316061*/ OPC_CheckChild0Type, MVT::i32, ++/*316063*/ OPC_CheckChild1Integer, 1, ++/*316065*/ OPC_CheckChild1Type, MVT::i32, ++/*316067*/ OPC_CheckChild2Integer, 1, ++/*316069*/ OPC_CheckChild2Type, MVT::i32, ++/*316071*/ OPC_CheckChild3Integer, 1, ++/*316073*/ OPC_CheckChild3Type, MVT::i32, ++/*316075*/ OPC_CheckChild4Integer, 1, ++/*316077*/ OPC_CheckChild4Type, MVT::i32, ++/*316079*/ OPC_MoveChild5, ++/*316080*/ OPC_CheckInteger, 1, ++/*316082*/ OPC_CheckType, MVT::i32, ++/*316084*/ OPC_MoveParent, ++/*316085*/ OPC_MoveChild6, ++/*316086*/ OPC_CheckInteger, 1, ++/*316088*/ OPC_CheckType, MVT::i32, ++/*316090*/ OPC_MoveParent, ++/*316091*/ OPC_MoveChild7, ++/*316092*/ OPC_CheckInteger, 1, ++/*316094*/ OPC_CheckType, MVT::i32, ++/*316096*/ OPC_MoveParent, ++/*316097*/ OPC_MoveChild, 8, ++/*316099*/ OPC_CheckInteger, 1, ++/*316101*/ OPC_CheckType, MVT::i32, ++/*316103*/ OPC_MoveParent, ++/*316104*/ OPC_MoveChild, 9, ++/*316106*/ OPC_CheckInteger, 1, ++/*316108*/ OPC_CheckType, MVT::i32, ++/*316110*/ OPC_MoveParent, ++/*316111*/ OPC_MoveChild, 10, ++/*316113*/ OPC_CheckInteger, 1, ++/*316115*/ OPC_CheckType, MVT::i32, ++/*316117*/ OPC_MoveParent, ++/*316118*/ OPC_MoveChild, 11, ++/*316120*/ OPC_CheckInteger, 1, ++/*316122*/ OPC_CheckType, MVT::i32, ++/*316124*/ OPC_MoveParent, ++/*316125*/ OPC_MoveChild, 12, ++/*316127*/ OPC_CheckInteger, 1, ++/*316129*/ OPC_CheckType, MVT::i32, ++/*316131*/ OPC_MoveParent, ++/*316132*/ OPC_MoveChild, 13, ++/*316134*/ OPC_CheckInteger, 1, ++/*316136*/ OPC_CheckType, MVT::i32, ++/*316138*/ OPC_MoveParent, ++/*316139*/ OPC_MoveChild, 14, ++/*316141*/ OPC_CheckInteger, 1, ++/*316143*/ OPC_CheckType, MVT::i32, ++/*316145*/ OPC_MoveParent, ++/*316146*/ OPC_MoveChild, 15, ++/*316148*/ OPC_CheckInteger, 1, ++/*316150*/ OPC_CheckType, MVT::i32, ++/*316152*/ OPC_MoveParent, ++/*316153*/ OPC_MoveChild, 16, ++/*316155*/ OPC_CheckInteger, 1, ++/*316157*/ OPC_CheckType, MVT::i32, ++/*316159*/ OPC_MoveParent, ++/*316160*/ OPC_MoveChild, 17, ++/*316162*/ OPC_CheckInteger, 1, ++/*316164*/ OPC_CheckType, MVT::i32, ++/*316166*/ OPC_MoveParent, ++/*316167*/ OPC_MoveChild, 18, ++/*316169*/ OPC_CheckInteger, 1, ++/*316171*/ OPC_CheckType, MVT::i32, ++/*316173*/ OPC_MoveParent, ++/*316174*/ OPC_MoveChild, 19, ++/*316176*/ OPC_CheckInteger, 1, ++/*316178*/ OPC_CheckType, MVT::i32, ++/*316180*/ OPC_MoveParent, ++/*316181*/ OPC_MoveChild, 20, ++/*316183*/ OPC_CheckInteger, 1, ++/*316185*/ OPC_CheckType, MVT::i32, ++/*316187*/ OPC_MoveParent, ++/*316188*/ OPC_MoveChild, 21, ++/*316190*/ OPC_CheckInteger, 1, ++/*316192*/ OPC_CheckType, MVT::i32, ++/*316194*/ OPC_MoveParent, ++/*316195*/ OPC_MoveChild, 22, ++/*316197*/ OPC_CheckInteger, 1, ++/*316199*/ OPC_CheckType, MVT::i32, ++/*316201*/ OPC_MoveParent, ++/*316202*/ OPC_MoveChild, 23, ++/*316204*/ OPC_CheckInteger, 1, ++/*316206*/ OPC_CheckType, MVT::i32, ++/*316208*/ OPC_MoveParent, ++/*316209*/ OPC_MoveChild, 24, ++/*316211*/ OPC_CheckInteger, 1, ++/*316213*/ OPC_CheckType, MVT::i32, ++/*316215*/ OPC_MoveParent, ++/*316216*/ OPC_MoveChild, 25, ++/*316218*/ OPC_CheckInteger, 1, ++/*316220*/ OPC_CheckType, MVT::i32, ++/*316222*/ OPC_MoveParent, ++/*316223*/ OPC_MoveChild, 26, ++/*316225*/ OPC_CheckInteger, 1, ++/*316227*/ OPC_CheckType, MVT::i32, ++/*316229*/ OPC_MoveParent, ++/*316230*/ OPC_MoveChild, 27, ++/*316232*/ OPC_CheckInteger, 1, ++/*316234*/ OPC_CheckType, MVT::i32, ++/*316236*/ OPC_MoveParent, ++/*316237*/ OPC_MoveChild, 28, ++/*316239*/ OPC_CheckInteger, 1, ++/*316241*/ OPC_CheckType, MVT::i32, ++/*316243*/ OPC_MoveParent, ++/*316244*/ OPC_MoveChild, 29, ++/*316246*/ OPC_CheckInteger, 1, ++/*316248*/ OPC_CheckType, MVT::i32, ++/*316250*/ OPC_MoveParent, ++/*316251*/ OPC_MoveChild, 30, ++/*316253*/ OPC_CheckInteger, 1, ++/*316255*/ OPC_CheckType, MVT::i32, ++/*316257*/ OPC_MoveParent, ++/*316258*/ OPC_MoveChild, 31, ++/*316260*/ OPC_CheckInteger, 1, ++/*316262*/ OPC_CheckType, MVT::i32, ++/*316264*/ OPC_MoveParent, ++/*316265*/ OPC_MoveParent, ++/*316266*/ OPC_MoveParent, ++/*316267*/ OPC_MoveParent, ++/*316268*/ OPC_MoveParent, ++/*316269*/ OPC_MoveChild1, ++/*316270*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*316273*/ OPC_CheckChild0Integer, 1, ++/*316275*/ OPC_CheckChild0Type, MVT::i32, ++/*316277*/ OPC_CheckChild1Integer, 1, ++/*316279*/ OPC_CheckChild1Type, MVT::i32, ++/*316281*/ OPC_CheckChild2Integer, 1, ++/*316283*/ OPC_CheckChild2Type, MVT::i32, ++/*316285*/ OPC_CheckChild3Integer, 1, ++/*316287*/ OPC_CheckChild3Type, MVT::i32, ++/*316289*/ OPC_CheckChild4Integer, 1, ++/*316291*/ OPC_CheckChild4Type, MVT::i32, ++/*316293*/ OPC_MoveChild5, ++/*316294*/ OPC_CheckInteger, 1, ++/*316296*/ OPC_CheckType, MVT::i32, ++/*316298*/ OPC_MoveParent, ++/*316299*/ OPC_MoveChild6, ++/*316300*/ OPC_CheckInteger, 1, ++/*316302*/ OPC_CheckType, MVT::i32, ++/*316304*/ OPC_MoveParent, ++/*316305*/ OPC_MoveChild7, ++/*316306*/ OPC_CheckInteger, 1, ++/*316308*/ OPC_CheckType, MVT::i32, ++/*316310*/ OPC_MoveParent, ++/*316311*/ OPC_MoveChild, 8, ++/*316313*/ OPC_CheckInteger, 1, ++/*316315*/ OPC_CheckType, MVT::i32, ++/*316317*/ OPC_MoveParent, ++/*316318*/ OPC_MoveChild, 9, ++/*316320*/ OPC_CheckInteger, 1, ++/*316322*/ OPC_CheckType, MVT::i32, ++/*316324*/ OPC_MoveParent, ++/*316325*/ OPC_MoveChild, 10, ++/*316327*/ OPC_CheckInteger, 1, ++/*316329*/ OPC_CheckType, MVT::i32, ++/*316331*/ OPC_MoveParent, ++/*316332*/ OPC_MoveChild, 11, ++/*316334*/ OPC_CheckInteger, 1, ++/*316336*/ OPC_CheckType, MVT::i32, ++/*316338*/ OPC_MoveParent, ++/*316339*/ OPC_MoveChild, 12, ++/*316341*/ OPC_CheckInteger, 1, ++/*316343*/ OPC_CheckType, MVT::i32, ++/*316345*/ OPC_MoveParent, ++/*316346*/ OPC_MoveChild, 13, ++/*316348*/ OPC_CheckInteger, 1, ++/*316350*/ OPC_CheckType, MVT::i32, ++/*316352*/ OPC_MoveParent, ++/*316353*/ OPC_MoveChild, 14, ++/*316355*/ OPC_CheckInteger, 1, ++/*316357*/ OPC_CheckType, MVT::i32, ++/*316359*/ OPC_MoveParent, ++/*316360*/ OPC_MoveChild, 15, ++/*316362*/ OPC_CheckInteger, 1, ++/*316364*/ OPC_CheckType, MVT::i32, ++/*316366*/ OPC_MoveParent, ++/*316367*/ OPC_MoveChild, 16, ++/*316369*/ OPC_CheckInteger, 1, ++/*316371*/ OPC_CheckType, MVT::i32, ++/*316373*/ OPC_MoveParent, ++/*316374*/ OPC_MoveChild, 17, ++/*316376*/ OPC_CheckInteger, 1, ++/*316378*/ OPC_CheckType, MVT::i32, ++/*316380*/ OPC_MoveParent, ++/*316381*/ OPC_MoveChild, 18, ++/*316383*/ OPC_CheckInteger, 1, ++/*316385*/ OPC_CheckType, MVT::i32, ++/*316387*/ OPC_MoveParent, ++/*316388*/ OPC_MoveChild, 19, ++/*316390*/ OPC_CheckInteger, 1, ++/*316392*/ OPC_CheckType, MVT::i32, ++/*316394*/ OPC_MoveParent, ++/*316395*/ OPC_MoveChild, 20, ++/*316397*/ OPC_CheckInteger, 1, ++/*316399*/ OPC_CheckType, MVT::i32, ++/*316401*/ OPC_MoveParent, ++/*316402*/ OPC_MoveChild, 21, ++/*316404*/ OPC_CheckInteger, 1, ++/*316406*/ OPC_CheckType, MVT::i32, ++/*316408*/ OPC_MoveParent, ++/*316409*/ OPC_MoveChild, 22, ++/*316411*/ OPC_CheckInteger, 1, ++/*316413*/ OPC_CheckType, MVT::i32, ++/*316415*/ OPC_MoveParent, ++/*316416*/ OPC_MoveChild, 23, ++/*316418*/ OPC_CheckInteger, 1, ++/*316420*/ OPC_CheckType, MVT::i32, ++/*316422*/ OPC_MoveParent, ++/*316423*/ OPC_MoveChild, 24, ++/*316425*/ OPC_CheckInteger, 1, ++/*316427*/ OPC_CheckType, MVT::i32, ++/*316429*/ OPC_MoveParent, ++/*316430*/ OPC_MoveChild, 25, ++/*316432*/ OPC_CheckInteger, 1, ++/*316434*/ OPC_CheckType, MVT::i32, ++/*316436*/ OPC_MoveParent, ++/*316437*/ OPC_MoveChild, 26, ++/*316439*/ OPC_CheckInteger, 1, ++/*316441*/ OPC_CheckType, MVT::i32, ++/*316443*/ OPC_MoveParent, ++/*316444*/ OPC_MoveChild, 27, ++/*316446*/ OPC_CheckInteger, 1, ++/*316448*/ OPC_CheckType, MVT::i32, ++/*316450*/ OPC_MoveParent, ++/*316451*/ OPC_MoveChild, 28, ++/*316453*/ OPC_CheckInteger, 1, ++/*316455*/ OPC_CheckType, MVT::i32, ++/*316457*/ OPC_MoveParent, ++/*316458*/ OPC_MoveChild, 29, ++/*316460*/ OPC_CheckInteger, 1, ++/*316462*/ OPC_CheckType, MVT::i32, ++/*316464*/ OPC_MoveParent, ++/*316465*/ OPC_MoveChild, 30, ++/*316467*/ OPC_CheckInteger, 1, ++/*316469*/ OPC_CheckType, MVT::i32, ++/*316471*/ OPC_MoveParent, ++/*316472*/ OPC_MoveChild, 31, ++/*316474*/ OPC_CheckInteger, 1, ++/*316476*/ OPC_CheckType, MVT::i32, ++/*316478*/ OPC_MoveParent, ++/*316479*/ OPC_CheckType, MVT::v32i8, ++/*316481*/ OPC_MoveParent, ++/*316482*/ OPC_CheckType, MVT::v32i8, ++/*316484*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*316486*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*316494*/ 0, /*End of Scope*/ ++/*316495*/ /*Scope*/ 126|128,6/*894*/, /*->317391*/ ++/*316497*/ OPC_CheckChild0Same, 1, ++/*316499*/ OPC_MoveChild1, ++/*316500*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*316503*/ OPC_Scope, 57|128,3/*441*/, /*->316947*/ // 2 children in Scope ++/*316506*/ OPC_MoveChild0, ++/*316507*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*316510*/ OPC_CheckChild0Integer, 1, ++/*316512*/ OPC_CheckChild0Type, MVT::i32, ++/*316514*/ OPC_CheckChild1Integer, 1, ++/*316516*/ OPC_CheckChild1Type, MVT::i32, ++/*316518*/ OPC_CheckChild2Integer, 1, ++/*316520*/ OPC_CheckChild2Type, MVT::i32, ++/*316522*/ OPC_CheckChild3Integer, 1, ++/*316524*/ OPC_CheckChild3Type, MVT::i32, ++/*316526*/ OPC_CheckChild4Integer, 1, ++/*316528*/ OPC_CheckChild4Type, MVT::i32, ++/*316530*/ OPC_MoveChild5, ++/*316531*/ OPC_CheckInteger, 1, ++/*316533*/ OPC_CheckType, MVT::i32, ++/*316535*/ OPC_MoveParent, ++/*316536*/ OPC_MoveChild6, ++/*316537*/ OPC_CheckInteger, 1, ++/*316539*/ OPC_CheckType, MVT::i32, ++/*316541*/ OPC_MoveParent, ++/*316542*/ OPC_MoveChild7, ++/*316543*/ OPC_CheckInteger, 1, ++/*316545*/ OPC_CheckType, MVT::i32, ++/*316547*/ OPC_MoveParent, ++/*316548*/ OPC_MoveChild, 8, ++/*316550*/ OPC_CheckInteger, 1, ++/*316552*/ OPC_CheckType, MVT::i32, ++/*316554*/ OPC_MoveParent, ++/*316555*/ OPC_MoveChild, 9, ++/*316557*/ OPC_CheckInteger, 1, ++/*316559*/ OPC_CheckType, MVT::i32, ++/*316561*/ OPC_MoveParent, ++/*316562*/ OPC_MoveChild, 10, ++/*316564*/ OPC_CheckInteger, 1, ++/*316566*/ OPC_CheckType, MVT::i32, ++/*316568*/ OPC_MoveParent, ++/*316569*/ OPC_MoveChild, 11, ++/*316571*/ OPC_CheckInteger, 1, ++/*316573*/ OPC_CheckType, MVT::i32, ++/*316575*/ OPC_MoveParent, ++/*316576*/ OPC_MoveChild, 12, ++/*316578*/ OPC_CheckInteger, 1, ++/*316580*/ OPC_CheckType, MVT::i32, ++/*316582*/ OPC_MoveParent, ++/*316583*/ OPC_MoveChild, 13, ++/*316585*/ OPC_CheckInteger, 1, ++/*316587*/ OPC_CheckType, MVT::i32, ++/*316589*/ OPC_MoveParent, ++/*316590*/ OPC_MoveChild, 14, ++/*316592*/ OPC_CheckInteger, 1, ++/*316594*/ OPC_CheckType, MVT::i32, ++/*316596*/ OPC_MoveParent, ++/*316597*/ OPC_MoveChild, 15, ++/*316599*/ OPC_CheckInteger, 1, ++/*316601*/ OPC_CheckType, MVT::i32, ++/*316603*/ OPC_MoveParent, ++/*316604*/ OPC_MoveChild, 16, ++/*316606*/ OPC_CheckInteger, 1, ++/*316608*/ OPC_CheckType, MVT::i32, ++/*316610*/ OPC_MoveParent, ++/*316611*/ OPC_MoveChild, 17, ++/*316613*/ OPC_CheckInteger, 1, ++/*316615*/ OPC_CheckType, MVT::i32, ++/*316617*/ OPC_MoveParent, ++/*316618*/ OPC_MoveChild, 18, ++/*316620*/ OPC_CheckInteger, 1, ++/*316622*/ OPC_CheckType, MVT::i32, ++/*316624*/ OPC_MoveParent, ++/*316625*/ OPC_MoveChild, 19, ++/*316627*/ OPC_CheckInteger, 1, ++/*316629*/ OPC_CheckType, MVT::i32, ++/*316631*/ OPC_MoveParent, ++/*316632*/ OPC_MoveChild, 20, ++/*316634*/ OPC_CheckInteger, 1, ++/*316636*/ OPC_CheckType, MVT::i32, ++/*316638*/ OPC_MoveParent, ++/*316639*/ OPC_MoveChild, 21, ++/*316641*/ OPC_CheckInteger, 1, ++/*316643*/ OPC_CheckType, MVT::i32, ++/*316645*/ OPC_MoveParent, ++/*316646*/ OPC_MoveChild, 22, ++/*316648*/ OPC_CheckInteger, 1, ++/*316650*/ OPC_CheckType, MVT::i32, ++/*316652*/ OPC_MoveParent, ++/*316653*/ OPC_MoveChild, 23, ++/*316655*/ OPC_CheckInteger, 1, ++/*316657*/ OPC_CheckType, MVT::i32, ++/*316659*/ OPC_MoveParent, ++/*316660*/ OPC_MoveChild, 24, ++/*316662*/ OPC_CheckInteger, 1, ++/*316664*/ OPC_CheckType, MVT::i32, ++/*316666*/ OPC_MoveParent, ++/*316667*/ OPC_MoveChild, 25, ++/*316669*/ OPC_CheckInteger, 1, ++/*316671*/ OPC_CheckType, MVT::i32, ++/*316673*/ OPC_MoveParent, ++/*316674*/ OPC_MoveChild, 26, ++/*316676*/ OPC_CheckInteger, 1, ++/*316678*/ OPC_CheckType, MVT::i32, ++/*316680*/ OPC_MoveParent, ++/*316681*/ OPC_MoveChild, 27, ++/*316683*/ OPC_CheckInteger, 1, ++/*316685*/ OPC_CheckType, MVT::i32, ++/*316687*/ OPC_MoveParent, ++/*316688*/ OPC_MoveChild, 28, ++/*316690*/ OPC_CheckInteger, 1, ++/*316692*/ OPC_CheckType, MVT::i32, ++/*316694*/ OPC_MoveParent, ++/*316695*/ OPC_MoveChild, 29, ++/*316697*/ OPC_CheckInteger, 1, ++/*316699*/ OPC_CheckType, MVT::i32, ++/*316701*/ OPC_MoveParent, ++/*316702*/ OPC_MoveChild, 30, ++/*316704*/ OPC_CheckInteger, 1, ++/*316706*/ OPC_CheckType, MVT::i32, ++/*316708*/ OPC_MoveParent, ++/*316709*/ OPC_MoveChild, 31, ++/*316711*/ OPC_CheckInteger, 1, ++/*316713*/ OPC_CheckType, MVT::i32, ++/*316715*/ OPC_MoveParent, ++/*316716*/ OPC_MoveParent, ++/*316717*/ OPC_CheckChild1Same, 0, ++/*316719*/ OPC_MoveParent, ++/*316720*/ OPC_MoveParent, ++/*316721*/ OPC_MoveParent, ++/*316722*/ OPC_MoveChild1, ++/*316723*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*316726*/ OPC_CheckChild0Integer, 1, ++/*316728*/ OPC_CheckChild0Type, MVT::i32, ++/*316730*/ OPC_CheckChild1Integer, 1, ++/*316732*/ OPC_CheckChild1Type, MVT::i32, ++/*316734*/ OPC_CheckChild2Integer, 1, ++/*316736*/ OPC_CheckChild2Type, MVT::i32, ++/*316738*/ OPC_CheckChild3Integer, 1, ++/*316740*/ OPC_CheckChild3Type, MVT::i32, ++/*316742*/ OPC_CheckChild4Integer, 1, ++/*316744*/ OPC_CheckChild4Type, MVT::i32, ++/*316746*/ OPC_MoveChild5, ++/*316747*/ OPC_CheckInteger, 1, ++/*316749*/ OPC_CheckType, MVT::i32, ++/*316751*/ OPC_MoveParent, ++/*316752*/ OPC_MoveChild6, ++/*316753*/ OPC_CheckInteger, 1, ++/*316755*/ OPC_CheckType, MVT::i32, ++/*316757*/ OPC_MoveParent, ++/*316758*/ OPC_MoveChild7, ++/*316759*/ OPC_CheckInteger, 1, ++/*316761*/ OPC_CheckType, MVT::i32, ++/*316763*/ OPC_MoveParent, ++/*316764*/ OPC_MoveChild, 8, ++/*316766*/ OPC_CheckInteger, 1, ++/*316768*/ OPC_CheckType, MVT::i32, ++/*316770*/ OPC_MoveParent, ++/*316771*/ OPC_MoveChild, 9, ++/*316773*/ OPC_CheckInteger, 1, ++/*316775*/ OPC_CheckType, MVT::i32, ++/*316777*/ OPC_MoveParent, ++/*316778*/ OPC_MoveChild, 10, ++/*316780*/ OPC_CheckInteger, 1, ++/*316782*/ OPC_CheckType, MVT::i32, ++/*316784*/ OPC_MoveParent, ++/*316785*/ OPC_MoveChild, 11, ++/*316787*/ OPC_CheckInteger, 1, ++/*316789*/ OPC_CheckType, MVT::i32, ++/*316791*/ OPC_MoveParent, ++/*316792*/ OPC_MoveChild, 12, ++/*316794*/ OPC_CheckInteger, 1, ++/*316796*/ OPC_CheckType, MVT::i32, ++/*316798*/ OPC_MoveParent, ++/*316799*/ OPC_MoveChild, 13, ++/*316801*/ OPC_CheckInteger, 1, ++/*316803*/ OPC_CheckType, MVT::i32, ++/*316805*/ OPC_MoveParent, ++/*316806*/ OPC_MoveChild, 14, ++/*316808*/ OPC_CheckInteger, 1, ++/*316810*/ OPC_CheckType, MVT::i32, ++/*316812*/ OPC_MoveParent, ++/*316813*/ OPC_MoveChild, 15, ++/*316815*/ OPC_CheckInteger, 1, ++/*316817*/ OPC_CheckType, MVT::i32, ++/*316819*/ OPC_MoveParent, ++/*316820*/ OPC_MoveChild, 16, ++/*316822*/ OPC_CheckInteger, 1, ++/*316824*/ OPC_CheckType, MVT::i32, ++/*316826*/ OPC_MoveParent, ++/*316827*/ OPC_MoveChild, 17, ++/*316829*/ OPC_CheckInteger, 1, ++/*316831*/ OPC_CheckType, MVT::i32, ++/*316833*/ OPC_MoveParent, ++/*316834*/ OPC_MoveChild, 18, ++/*316836*/ OPC_CheckInteger, 1, ++/*316838*/ OPC_CheckType, MVT::i32, ++/*316840*/ OPC_MoveParent, ++/*316841*/ OPC_MoveChild, 19, ++/*316843*/ OPC_CheckInteger, 1, ++/*316845*/ OPC_CheckType, MVT::i32, ++/*316847*/ OPC_MoveParent, ++/*316848*/ OPC_MoveChild, 20, ++/*316850*/ OPC_CheckInteger, 1, ++/*316852*/ OPC_CheckType, MVT::i32, ++/*316854*/ OPC_MoveParent, ++/*316855*/ OPC_MoveChild, 21, ++/*316857*/ OPC_CheckInteger, 1, ++/*316859*/ OPC_CheckType, MVT::i32, ++/*316861*/ OPC_MoveParent, ++/*316862*/ OPC_MoveChild, 22, ++/*316864*/ OPC_CheckInteger, 1, ++/*316866*/ OPC_CheckType, MVT::i32, ++/*316868*/ OPC_MoveParent, ++/*316869*/ OPC_MoveChild, 23, ++/*316871*/ OPC_CheckInteger, 1, ++/*316873*/ OPC_CheckType, MVT::i32, ++/*316875*/ OPC_MoveParent, ++/*316876*/ OPC_MoveChild, 24, ++/*316878*/ OPC_CheckInteger, 1, ++/*316880*/ OPC_CheckType, MVT::i32, ++/*316882*/ OPC_MoveParent, ++/*316883*/ OPC_MoveChild, 25, ++/*316885*/ OPC_CheckInteger, 1, ++/*316887*/ OPC_CheckType, MVT::i32, ++/*316889*/ OPC_MoveParent, ++/*316890*/ OPC_MoveChild, 26, ++/*316892*/ OPC_CheckInteger, 1, ++/*316894*/ OPC_CheckType, MVT::i32, ++/*316896*/ OPC_MoveParent, ++/*316897*/ OPC_MoveChild, 27, ++/*316899*/ OPC_CheckInteger, 1, ++/*316901*/ OPC_CheckType, MVT::i32, ++/*316903*/ OPC_MoveParent, ++/*316904*/ OPC_MoveChild, 28, ++/*316906*/ OPC_CheckInteger, 1, ++/*316908*/ OPC_CheckType, MVT::i32, ++/*316910*/ OPC_MoveParent, ++/*316911*/ OPC_MoveChild, 29, ++/*316913*/ OPC_CheckInteger, 1, ++/*316915*/ OPC_CheckType, MVT::i32, ++/*316917*/ OPC_MoveParent, ++/*316918*/ OPC_MoveChild, 30, ++/*316920*/ OPC_CheckInteger, 1, ++/*316922*/ OPC_CheckType, MVT::i32, ++/*316924*/ OPC_MoveParent, ++/*316925*/ OPC_MoveChild, 31, ++/*316927*/ OPC_CheckInteger, 1, ++/*316929*/ OPC_CheckType, MVT::i32, ++/*316931*/ OPC_MoveParent, ++/*316932*/ OPC_CheckType, MVT::v32i8, ++/*316934*/ OPC_MoveParent, ++/*316935*/ OPC_CheckType, MVT::v32i8, ++/*316937*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*316939*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*316947*/ /*Scope*/ 57|128,3/*441*/, /*->317390*/ ++/*316949*/ OPC_CheckChild0Same, 0, ++/*316951*/ OPC_MoveChild1, ++/*316952*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*316955*/ OPC_CheckChild0Integer, 1, ++/*316957*/ OPC_CheckChild0Type, MVT::i32, ++/*316959*/ OPC_CheckChild1Integer, 1, ++/*316961*/ OPC_CheckChild1Type, MVT::i32, ++/*316963*/ OPC_CheckChild2Integer, 1, ++/*316965*/ OPC_CheckChild2Type, MVT::i32, ++/*316967*/ OPC_CheckChild3Integer, 1, ++/*316969*/ OPC_CheckChild3Type, MVT::i32, ++/*316971*/ OPC_CheckChild4Integer, 1, ++/*316973*/ OPC_CheckChild4Type, MVT::i32, ++/*316975*/ OPC_MoveChild5, ++/*316976*/ OPC_CheckInteger, 1, ++/*316978*/ OPC_CheckType, MVT::i32, ++/*316980*/ OPC_MoveParent, ++/*316981*/ OPC_MoveChild6, ++/*316982*/ OPC_CheckInteger, 1, ++/*316984*/ OPC_CheckType, MVT::i32, ++/*316986*/ OPC_MoveParent, ++/*316987*/ OPC_MoveChild7, ++/*316988*/ OPC_CheckInteger, 1, ++/*316990*/ OPC_CheckType, MVT::i32, ++/*316992*/ OPC_MoveParent, ++/*316993*/ OPC_MoveChild, 8, ++/*316995*/ OPC_CheckInteger, 1, ++/*316997*/ OPC_CheckType, MVT::i32, ++/*316999*/ OPC_MoveParent, ++/*317000*/ OPC_MoveChild, 9, ++/*317002*/ OPC_CheckInteger, 1, ++/*317004*/ OPC_CheckType, MVT::i32, ++/*317006*/ OPC_MoveParent, ++/*317007*/ OPC_MoveChild, 10, ++/*317009*/ OPC_CheckInteger, 1, ++/*317011*/ OPC_CheckType, MVT::i32, ++/*317013*/ OPC_MoveParent, ++/*317014*/ OPC_MoveChild, 11, ++/*317016*/ OPC_CheckInteger, 1, ++/*317018*/ OPC_CheckType, MVT::i32, ++/*317020*/ OPC_MoveParent, ++/*317021*/ OPC_MoveChild, 12, ++/*317023*/ OPC_CheckInteger, 1, ++/*317025*/ OPC_CheckType, MVT::i32, ++/*317027*/ OPC_MoveParent, ++/*317028*/ OPC_MoveChild, 13, ++/*317030*/ OPC_CheckInteger, 1, ++/*317032*/ OPC_CheckType, MVT::i32, ++/*317034*/ OPC_MoveParent, ++/*317035*/ OPC_MoveChild, 14, ++/*317037*/ OPC_CheckInteger, 1, ++/*317039*/ OPC_CheckType, MVT::i32, ++/*317041*/ OPC_MoveParent, ++/*317042*/ OPC_MoveChild, 15, ++/*317044*/ OPC_CheckInteger, 1, ++/*317046*/ OPC_CheckType, MVT::i32, ++/*317048*/ OPC_MoveParent, ++/*317049*/ OPC_MoveChild, 16, ++/*317051*/ OPC_CheckInteger, 1, ++/*317053*/ OPC_CheckType, MVT::i32, ++/*317055*/ OPC_MoveParent, ++/*317056*/ OPC_MoveChild, 17, ++/*317058*/ OPC_CheckInteger, 1, ++/*317060*/ OPC_CheckType, MVT::i32, ++/*317062*/ OPC_MoveParent, ++/*317063*/ OPC_MoveChild, 18, ++/*317065*/ OPC_CheckInteger, 1, ++/*317067*/ OPC_CheckType, MVT::i32, ++/*317069*/ OPC_MoveParent, ++/*317070*/ OPC_MoveChild, 19, ++/*317072*/ OPC_CheckInteger, 1, ++/*317074*/ OPC_CheckType, MVT::i32, ++/*317076*/ OPC_MoveParent, ++/*317077*/ OPC_MoveChild, 20, ++/*317079*/ OPC_CheckInteger, 1, ++/*317081*/ OPC_CheckType, MVT::i32, ++/*317083*/ OPC_MoveParent, ++/*317084*/ OPC_MoveChild, 21, ++/*317086*/ OPC_CheckInteger, 1, ++/*317088*/ OPC_CheckType, MVT::i32, ++/*317090*/ OPC_MoveParent, ++/*317091*/ OPC_MoveChild, 22, ++/*317093*/ OPC_CheckInteger, 1, ++/*317095*/ OPC_CheckType, MVT::i32, ++/*317097*/ OPC_MoveParent, ++/*317098*/ OPC_MoveChild, 23, ++/*317100*/ OPC_CheckInteger, 1, ++/*317102*/ OPC_CheckType, MVT::i32, ++/*317104*/ OPC_MoveParent, ++/*317105*/ OPC_MoveChild, 24, ++/*317107*/ OPC_CheckInteger, 1, ++/*317109*/ OPC_CheckType, MVT::i32, ++/*317111*/ OPC_MoveParent, ++/*317112*/ OPC_MoveChild, 25, ++/*317114*/ OPC_CheckInteger, 1, ++/*317116*/ OPC_CheckType, MVT::i32, ++/*317118*/ OPC_MoveParent, ++/*317119*/ OPC_MoveChild, 26, ++/*317121*/ OPC_CheckInteger, 1, ++/*317123*/ OPC_CheckType, MVT::i32, ++/*317125*/ OPC_MoveParent, ++/*317126*/ OPC_MoveChild, 27, ++/*317128*/ OPC_CheckInteger, 1, ++/*317130*/ OPC_CheckType, MVT::i32, ++/*317132*/ OPC_MoveParent, ++/*317133*/ OPC_MoveChild, 28, ++/*317135*/ OPC_CheckInteger, 1, ++/*317137*/ OPC_CheckType, MVT::i32, ++/*317139*/ OPC_MoveParent, ++/*317140*/ OPC_MoveChild, 29, ++/*317142*/ OPC_CheckInteger, 1, ++/*317144*/ OPC_CheckType, MVT::i32, ++/*317146*/ OPC_MoveParent, ++/*317147*/ OPC_MoveChild, 30, ++/*317149*/ OPC_CheckInteger, 1, ++/*317151*/ OPC_CheckType, MVT::i32, ++/*317153*/ OPC_MoveParent, ++/*317154*/ OPC_MoveChild, 31, ++/*317156*/ OPC_CheckInteger, 1, ++/*317158*/ OPC_CheckType, MVT::i32, ++/*317160*/ OPC_MoveParent, ++/*317161*/ OPC_MoveParent, ++/*317162*/ OPC_MoveParent, ++/*317163*/ OPC_MoveParent, ++/*317164*/ OPC_MoveParent, ++/*317165*/ OPC_MoveChild1, ++/*317166*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*317169*/ OPC_CheckChild0Integer, 1, ++/*317171*/ OPC_CheckChild0Type, MVT::i32, ++/*317173*/ OPC_CheckChild1Integer, 1, ++/*317175*/ OPC_CheckChild1Type, MVT::i32, ++/*317177*/ OPC_CheckChild2Integer, 1, ++/*317179*/ OPC_CheckChild2Type, MVT::i32, ++/*317181*/ OPC_CheckChild3Integer, 1, ++/*317183*/ OPC_CheckChild3Type, MVT::i32, ++/*317185*/ OPC_CheckChild4Integer, 1, ++/*317187*/ OPC_CheckChild4Type, MVT::i32, ++/*317189*/ OPC_MoveChild5, ++/*317190*/ OPC_CheckInteger, 1, ++/*317192*/ OPC_CheckType, MVT::i32, ++/*317194*/ OPC_MoveParent, ++/*317195*/ OPC_MoveChild6, ++/*317196*/ OPC_CheckInteger, 1, ++/*317198*/ OPC_CheckType, MVT::i32, ++/*317200*/ OPC_MoveParent, ++/*317201*/ OPC_MoveChild7, ++/*317202*/ OPC_CheckInteger, 1, ++/*317204*/ OPC_CheckType, MVT::i32, ++/*317206*/ OPC_MoveParent, ++/*317207*/ OPC_MoveChild, 8, ++/*317209*/ OPC_CheckInteger, 1, ++/*317211*/ OPC_CheckType, MVT::i32, ++/*317213*/ OPC_MoveParent, ++/*317214*/ OPC_MoveChild, 9, ++/*317216*/ OPC_CheckInteger, 1, ++/*317218*/ OPC_CheckType, MVT::i32, ++/*317220*/ OPC_MoveParent, ++/*317221*/ OPC_MoveChild, 10, ++/*317223*/ OPC_CheckInteger, 1, ++/*317225*/ OPC_CheckType, MVT::i32, ++/*317227*/ OPC_MoveParent, ++/*317228*/ OPC_MoveChild, 11, ++/*317230*/ OPC_CheckInteger, 1, ++/*317232*/ OPC_CheckType, MVT::i32, ++/*317234*/ OPC_MoveParent, ++/*317235*/ OPC_MoveChild, 12, ++/*317237*/ OPC_CheckInteger, 1, ++/*317239*/ OPC_CheckType, MVT::i32, ++/*317241*/ OPC_MoveParent, ++/*317242*/ OPC_MoveChild, 13, ++/*317244*/ OPC_CheckInteger, 1, ++/*317246*/ OPC_CheckType, MVT::i32, ++/*317248*/ OPC_MoveParent, ++/*317249*/ OPC_MoveChild, 14, ++/*317251*/ OPC_CheckInteger, 1, ++/*317253*/ OPC_CheckType, MVT::i32, ++/*317255*/ OPC_MoveParent, ++/*317256*/ OPC_MoveChild, 15, ++/*317258*/ OPC_CheckInteger, 1, ++/*317260*/ OPC_CheckType, MVT::i32, ++/*317262*/ OPC_MoveParent, ++/*317263*/ OPC_MoveChild, 16, ++/*317265*/ OPC_CheckInteger, 1, ++/*317267*/ OPC_CheckType, MVT::i32, ++/*317269*/ OPC_MoveParent, ++/*317270*/ OPC_MoveChild, 17, ++/*317272*/ OPC_CheckInteger, 1, ++/*317274*/ OPC_CheckType, MVT::i32, ++/*317276*/ OPC_MoveParent, ++/*317277*/ OPC_MoveChild, 18, ++/*317279*/ OPC_CheckInteger, 1, ++/*317281*/ OPC_CheckType, MVT::i32, ++/*317283*/ OPC_MoveParent, ++/*317284*/ OPC_MoveChild, 19, ++/*317286*/ OPC_CheckInteger, 1, ++/*317288*/ OPC_CheckType, MVT::i32, ++/*317290*/ OPC_MoveParent, ++/*317291*/ OPC_MoveChild, 20, ++/*317293*/ OPC_CheckInteger, 1, ++/*317295*/ OPC_CheckType, MVT::i32, ++/*317297*/ OPC_MoveParent, ++/*317298*/ OPC_MoveChild, 21, ++/*317300*/ OPC_CheckInteger, 1, ++/*317302*/ OPC_CheckType, MVT::i32, ++/*317304*/ OPC_MoveParent, ++/*317305*/ OPC_MoveChild, 22, ++/*317307*/ OPC_CheckInteger, 1, ++/*317309*/ OPC_CheckType, MVT::i32, ++/*317311*/ OPC_MoveParent, ++/*317312*/ OPC_MoveChild, 23, ++/*317314*/ OPC_CheckInteger, 1, ++/*317316*/ OPC_CheckType, MVT::i32, ++/*317318*/ OPC_MoveParent, ++/*317319*/ OPC_MoveChild, 24, ++/*317321*/ OPC_CheckInteger, 1, ++/*317323*/ OPC_CheckType, MVT::i32, ++/*317325*/ OPC_MoveParent, ++/*317326*/ OPC_MoveChild, 25, ++/*317328*/ OPC_CheckInteger, 1, ++/*317330*/ OPC_CheckType, MVT::i32, ++/*317332*/ OPC_MoveParent, ++/*317333*/ OPC_MoveChild, 26, ++/*317335*/ OPC_CheckInteger, 1, ++/*317337*/ OPC_CheckType, MVT::i32, ++/*317339*/ OPC_MoveParent, ++/*317340*/ OPC_MoveChild, 27, ++/*317342*/ OPC_CheckInteger, 1, ++/*317344*/ OPC_CheckType, MVT::i32, ++/*317346*/ OPC_MoveParent, ++/*317347*/ OPC_MoveChild, 28, ++/*317349*/ OPC_CheckInteger, 1, ++/*317351*/ OPC_CheckType, MVT::i32, ++/*317353*/ OPC_MoveParent, ++/*317354*/ OPC_MoveChild, 29, ++/*317356*/ OPC_CheckInteger, 1, ++/*317358*/ OPC_CheckType, MVT::i32, ++/*317360*/ OPC_MoveParent, ++/*317361*/ OPC_MoveChild, 30, ++/*317363*/ OPC_CheckInteger, 1, ++/*317365*/ OPC_CheckType, MVT::i32, ++/*317367*/ OPC_MoveParent, ++/*317368*/ OPC_MoveChild, 31, ++/*317370*/ OPC_CheckInteger, 1, ++/*317372*/ OPC_CheckType, MVT::i32, ++/*317374*/ OPC_MoveParent, ++/*317375*/ OPC_CheckType, MVT::v32i8, ++/*317377*/ OPC_MoveParent, ++/*317378*/ OPC_CheckType, MVT::v32i8, ++/*317380*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*317382*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*317390*/ 0, /*End of Scope*/ ++/*317391*/ /*Scope*/ 45|128,5/*685*/, /*->318078*/ ++/*317393*/ OPC_MoveChild0, ++/*317394*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*317397*/ OPC_CheckChild0Integer, 1, ++/*317399*/ OPC_CheckChild0Type, MVT::i32, ++/*317401*/ OPC_CheckChild1Integer, 1, ++/*317403*/ OPC_CheckChild1Type, MVT::i32, ++/*317405*/ OPC_CheckChild2Integer, 1, ++/*317407*/ OPC_CheckChild2Type, MVT::i32, ++/*317409*/ OPC_CheckChild3Integer, 1, ++/*317411*/ OPC_CheckChild3Type, MVT::i32, ++/*317413*/ OPC_CheckChild4Integer, 1, ++/*317415*/ OPC_CheckChild4Type, MVT::i32, ++/*317417*/ OPC_MoveChild5, ++/*317418*/ OPC_CheckInteger, 1, ++/*317420*/ OPC_CheckType, MVT::i32, ++/*317422*/ OPC_MoveParent, ++/*317423*/ OPC_MoveChild6, ++/*317424*/ OPC_CheckInteger, 1, ++/*317426*/ OPC_CheckType, MVT::i32, ++/*317428*/ OPC_MoveParent, ++/*317429*/ OPC_MoveChild7, ++/*317430*/ OPC_CheckInteger, 1, ++/*317432*/ OPC_CheckType, MVT::i32, ++/*317434*/ OPC_MoveParent, ++/*317435*/ OPC_MoveChild, 8, ++/*317437*/ OPC_CheckInteger, 1, ++/*317439*/ OPC_CheckType, MVT::i32, ++/*317441*/ OPC_MoveParent, ++/*317442*/ OPC_MoveChild, 9, ++/*317444*/ OPC_CheckInteger, 1, ++/*317446*/ OPC_CheckType, MVT::i32, ++/*317448*/ OPC_MoveParent, ++/*317449*/ OPC_MoveChild, 10, ++/*317451*/ OPC_CheckInteger, 1, ++/*317453*/ OPC_CheckType, MVT::i32, ++/*317455*/ OPC_MoveParent, ++/*317456*/ OPC_MoveChild, 11, ++/*317458*/ OPC_CheckInteger, 1, ++/*317460*/ OPC_CheckType, MVT::i32, ++/*317462*/ OPC_MoveParent, ++/*317463*/ OPC_MoveChild, 12, ++/*317465*/ OPC_CheckInteger, 1, ++/*317467*/ OPC_CheckType, MVT::i32, ++/*317469*/ OPC_MoveParent, ++/*317470*/ OPC_MoveChild, 13, ++/*317472*/ OPC_CheckInteger, 1, ++/*317474*/ OPC_CheckType, MVT::i32, ++/*317476*/ OPC_MoveParent, ++/*317477*/ OPC_MoveChild, 14, ++/*317479*/ OPC_CheckInteger, 1, ++/*317481*/ OPC_CheckType, MVT::i32, ++/*317483*/ OPC_MoveParent, ++/*317484*/ OPC_MoveChild, 15, ++/*317486*/ OPC_CheckInteger, 1, ++/*317488*/ OPC_CheckType, MVT::i32, ++/*317490*/ OPC_MoveParent, ++/*317491*/ OPC_MoveChild, 16, ++/*317493*/ OPC_CheckInteger, 1, ++/*317495*/ OPC_CheckType, MVT::i32, ++/*317497*/ OPC_MoveParent, ++/*317498*/ OPC_MoveChild, 17, ++/*317500*/ OPC_CheckInteger, 1, ++/*317502*/ OPC_CheckType, MVT::i32, ++/*317504*/ OPC_MoveParent, ++/*317505*/ OPC_MoveChild, 18, ++/*317507*/ OPC_CheckInteger, 1, ++/*317509*/ OPC_CheckType, MVT::i32, ++/*317511*/ OPC_MoveParent, ++/*317512*/ OPC_MoveChild, 19, ++/*317514*/ OPC_CheckInteger, 1, ++/*317516*/ OPC_CheckType, MVT::i32, ++/*317518*/ OPC_MoveParent, ++/*317519*/ OPC_MoveChild, 20, ++/*317521*/ OPC_CheckInteger, 1, ++/*317523*/ OPC_CheckType, MVT::i32, ++/*317525*/ OPC_MoveParent, ++/*317526*/ OPC_MoveChild, 21, ++/*317528*/ OPC_CheckInteger, 1, ++/*317530*/ OPC_CheckType, MVT::i32, ++/*317532*/ OPC_MoveParent, ++/*317533*/ OPC_MoveChild, 22, ++/*317535*/ OPC_CheckInteger, 1, ++/*317537*/ OPC_CheckType, MVT::i32, ++/*317539*/ OPC_MoveParent, ++/*317540*/ OPC_MoveChild, 23, ++/*317542*/ OPC_CheckInteger, 1, ++/*317544*/ OPC_CheckType, MVT::i32, ++/*317546*/ OPC_MoveParent, ++/*317547*/ OPC_MoveChild, 24, ++/*317549*/ OPC_CheckInteger, 1, ++/*317551*/ OPC_CheckType, MVT::i32, ++/*317553*/ OPC_MoveParent, ++/*317554*/ OPC_MoveChild, 25, ++/*317556*/ OPC_CheckInteger, 1, ++/*317558*/ OPC_CheckType, MVT::i32, ++/*317560*/ OPC_MoveParent, ++/*317561*/ OPC_MoveChild, 26, ++/*317563*/ OPC_CheckInteger, 1, ++/*317565*/ OPC_CheckType, MVT::i32, ++/*317567*/ OPC_MoveParent, ++/*317568*/ OPC_MoveChild, 27, ++/*317570*/ OPC_CheckInteger, 1, ++/*317572*/ OPC_CheckType, MVT::i32, ++/*317574*/ OPC_MoveParent, ++/*317575*/ OPC_MoveChild, 28, ++/*317577*/ OPC_CheckInteger, 1, ++/*317579*/ OPC_CheckType, MVT::i32, ++/*317581*/ OPC_MoveParent, ++/*317582*/ OPC_MoveChild, 29, ++/*317584*/ OPC_CheckInteger, 1, ++/*317586*/ OPC_CheckType, MVT::i32, ++/*317588*/ OPC_MoveParent, ++/*317589*/ OPC_MoveChild, 30, ++/*317591*/ OPC_CheckInteger, 1, ++/*317593*/ OPC_CheckType, MVT::i32, ++/*317595*/ OPC_MoveParent, ++/*317596*/ OPC_MoveChild, 31, ++/*317598*/ OPC_CheckInteger, 1, ++/*317600*/ OPC_CheckType, MVT::i32, ++/*317602*/ OPC_MoveParent, ++/*317603*/ OPC_MoveParent, ++/*317604*/ OPC_MoveChild1, ++/*317605*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*317608*/ OPC_Scope, 104|128,1/*232*/, /*->317843*/ // 2 children in Scope ++/*317611*/ OPC_CheckChild0Same, 1, ++/*317613*/ OPC_CheckChild1Same, 0, ++/*317615*/ OPC_MoveParent, ++/*317616*/ OPC_MoveParent, ++/*317617*/ OPC_MoveParent, ++/*317618*/ OPC_MoveChild1, ++/*317619*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*317622*/ OPC_CheckChild0Integer, 1, ++/*317624*/ OPC_CheckChild0Type, MVT::i32, ++/*317626*/ OPC_CheckChild1Integer, 1, ++/*317628*/ OPC_CheckChild1Type, MVT::i32, ++/*317630*/ OPC_CheckChild2Integer, 1, ++/*317632*/ OPC_CheckChild2Type, MVT::i32, ++/*317634*/ OPC_CheckChild3Integer, 1, ++/*317636*/ OPC_CheckChild3Type, MVT::i32, ++/*317638*/ OPC_CheckChild4Integer, 1, ++/*317640*/ OPC_CheckChild4Type, MVT::i32, ++/*317642*/ OPC_MoveChild5, ++/*317643*/ OPC_CheckInteger, 1, ++/*317645*/ OPC_CheckType, MVT::i32, ++/*317647*/ OPC_MoveParent, ++/*317648*/ OPC_MoveChild6, ++/*317649*/ OPC_CheckInteger, 1, ++/*317651*/ OPC_CheckType, MVT::i32, ++/*317653*/ OPC_MoveParent, ++/*317654*/ OPC_MoveChild7, ++/*317655*/ OPC_CheckInteger, 1, ++/*317657*/ OPC_CheckType, MVT::i32, ++/*317659*/ OPC_MoveParent, ++/*317660*/ OPC_MoveChild, 8, ++/*317662*/ OPC_CheckInteger, 1, ++/*317664*/ OPC_CheckType, MVT::i32, ++/*317666*/ OPC_MoveParent, ++/*317667*/ OPC_MoveChild, 9, ++/*317669*/ OPC_CheckInteger, 1, ++/*317671*/ OPC_CheckType, MVT::i32, ++/*317673*/ OPC_MoveParent, ++/*317674*/ OPC_MoveChild, 10, ++/*317676*/ OPC_CheckInteger, 1, ++/*317678*/ OPC_CheckType, MVT::i32, ++/*317680*/ OPC_MoveParent, ++/*317681*/ OPC_MoveChild, 11, ++/*317683*/ OPC_CheckInteger, 1, ++/*317685*/ OPC_CheckType, MVT::i32, ++/*317687*/ OPC_MoveParent, ++/*317688*/ OPC_MoveChild, 12, ++/*317690*/ OPC_CheckInteger, 1, ++/*317692*/ OPC_CheckType, MVT::i32, ++/*317694*/ OPC_MoveParent, ++/*317695*/ OPC_MoveChild, 13, ++/*317697*/ OPC_CheckInteger, 1, ++/*317699*/ OPC_CheckType, MVT::i32, ++/*317701*/ OPC_MoveParent, ++/*317702*/ OPC_MoveChild, 14, ++/*317704*/ OPC_CheckInteger, 1, ++/*317706*/ OPC_CheckType, MVT::i32, ++/*317708*/ OPC_MoveParent, ++/*317709*/ OPC_MoveChild, 15, ++/*317711*/ OPC_CheckInteger, 1, ++/*317713*/ OPC_CheckType, MVT::i32, ++/*317715*/ OPC_MoveParent, ++/*317716*/ OPC_MoveChild, 16, ++/*317718*/ OPC_CheckInteger, 1, ++/*317720*/ OPC_CheckType, MVT::i32, ++/*317722*/ OPC_MoveParent, ++/*317723*/ OPC_MoveChild, 17, ++/*317725*/ OPC_CheckInteger, 1, ++/*317727*/ OPC_CheckType, MVT::i32, ++/*317729*/ OPC_MoveParent, ++/*317730*/ OPC_MoveChild, 18, ++/*317732*/ OPC_CheckInteger, 1, ++/*317734*/ OPC_CheckType, MVT::i32, ++/*317736*/ OPC_MoveParent, ++/*317737*/ OPC_MoveChild, 19, ++/*317739*/ OPC_CheckInteger, 1, ++/*317741*/ OPC_CheckType, MVT::i32, ++/*317743*/ OPC_MoveParent, ++/*317744*/ OPC_MoveChild, 20, ++/*317746*/ OPC_CheckInteger, 1, ++/*317748*/ OPC_CheckType, MVT::i32, ++/*317750*/ OPC_MoveParent, ++/*317751*/ OPC_MoveChild, 21, ++/*317753*/ OPC_CheckInteger, 1, ++/*317755*/ OPC_CheckType, MVT::i32, ++/*317757*/ OPC_MoveParent, ++/*317758*/ OPC_MoveChild, 22, ++/*317760*/ OPC_CheckInteger, 1, ++/*317762*/ OPC_CheckType, MVT::i32, ++/*317764*/ OPC_MoveParent, ++/*317765*/ OPC_MoveChild, 23, ++/*317767*/ OPC_CheckInteger, 1, ++/*317769*/ OPC_CheckType, MVT::i32, ++/*317771*/ OPC_MoveParent, ++/*317772*/ OPC_MoveChild, 24, ++/*317774*/ OPC_CheckInteger, 1, ++/*317776*/ OPC_CheckType, MVT::i32, ++/*317778*/ OPC_MoveParent, ++/*317779*/ OPC_MoveChild, 25, ++/*317781*/ OPC_CheckInteger, 1, ++/*317783*/ OPC_CheckType, MVT::i32, ++/*317785*/ OPC_MoveParent, ++/*317786*/ OPC_MoveChild, 26, ++/*317788*/ OPC_CheckInteger, 1, ++/*317790*/ OPC_CheckType, MVT::i32, ++/*317792*/ OPC_MoveParent, ++/*317793*/ OPC_MoveChild, 27, ++/*317795*/ OPC_CheckInteger, 1, ++/*317797*/ OPC_CheckType, MVT::i32, ++/*317799*/ OPC_MoveParent, ++/*317800*/ OPC_MoveChild, 28, ++/*317802*/ OPC_CheckInteger, 1, ++/*317804*/ OPC_CheckType, MVT::i32, ++/*317806*/ OPC_MoveParent, ++/*317807*/ OPC_MoveChild, 29, ++/*317809*/ OPC_CheckInteger, 1, ++/*317811*/ OPC_CheckType, MVT::i32, ++/*317813*/ OPC_MoveParent, ++/*317814*/ OPC_MoveChild, 30, ++/*317816*/ OPC_CheckInteger, 1, ++/*317818*/ OPC_CheckType, MVT::i32, ++/*317820*/ OPC_MoveParent, ++/*317821*/ OPC_MoveChild, 31, ++/*317823*/ OPC_CheckInteger, 1, ++/*317825*/ OPC_CheckType, MVT::i32, ++/*317827*/ OPC_MoveParent, ++/*317828*/ OPC_CheckType, MVT::v32i8, ++/*317830*/ OPC_MoveParent, ++/*317831*/ OPC_CheckType, MVT::v32i8, ++/*317833*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*317835*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*317843*/ /*Scope*/ 104|128,1/*232*/, /*->318077*/ ++/*317845*/ OPC_CheckChild0Same, 0, ++/*317847*/ OPC_CheckChild1Same, 1, ++/*317849*/ OPC_MoveParent, ++/*317850*/ OPC_MoveParent, ++/*317851*/ OPC_MoveParent, ++/*317852*/ OPC_MoveChild1, ++/*317853*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*317856*/ OPC_CheckChild0Integer, 1, ++/*317858*/ OPC_CheckChild0Type, MVT::i32, ++/*317860*/ OPC_CheckChild1Integer, 1, ++/*317862*/ OPC_CheckChild1Type, MVT::i32, ++/*317864*/ OPC_CheckChild2Integer, 1, ++/*317866*/ OPC_CheckChild2Type, MVT::i32, ++/*317868*/ OPC_CheckChild3Integer, 1, ++/*317870*/ OPC_CheckChild3Type, MVT::i32, ++/*317872*/ OPC_CheckChild4Integer, 1, ++/*317874*/ OPC_CheckChild4Type, MVT::i32, ++/*317876*/ OPC_MoveChild5, ++/*317877*/ OPC_CheckInteger, 1, ++/*317879*/ OPC_CheckType, MVT::i32, ++/*317881*/ OPC_MoveParent, ++/*317882*/ OPC_MoveChild6, ++/*317883*/ OPC_CheckInteger, 1, ++/*317885*/ OPC_CheckType, MVT::i32, ++/*317887*/ OPC_MoveParent, ++/*317888*/ OPC_MoveChild7, ++/*317889*/ OPC_CheckInteger, 1, ++/*317891*/ OPC_CheckType, MVT::i32, ++/*317893*/ OPC_MoveParent, ++/*317894*/ OPC_MoveChild, 8, ++/*317896*/ OPC_CheckInteger, 1, ++/*317898*/ OPC_CheckType, MVT::i32, ++/*317900*/ OPC_MoveParent, ++/*317901*/ OPC_MoveChild, 9, ++/*317903*/ OPC_CheckInteger, 1, ++/*317905*/ OPC_CheckType, MVT::i32, ++/*317907*/ OPC_MoveParent, ++/*317908*/ OPC_MoveChild, 10, ++/*317910*/ OPC_CheckInteger, 1, ++/*317912*/ OPC_CheckType, MVT::i32, ++/*317914*/ OPC_MoveParent, ++/*317915*/ OPC_MoveChild, 11, ++/*317917*/ OPC_CheckInteger, 1, ++/*317919*/ OPC_CheckType, MVT::i32, ++/*317921*/ OPC_MoveParent, ++/*317922*/ OPC_MoveChild, 12, ++/*317924*/ OPC_CheckInteger, 1, ++/*317926*/ OPC_CheckType, MVT::i32, ++/*317928*/ OPC_MoveParent, ++/*317929*/ OPC_MoveChild, 13, ++/*317931*/ OPC_CheckInteger, 1, ++/*317933*/ OPC_CheckType, MVT::i32, ++/*317935*/ OPC_MoveParent, ++/*317936*/ OPC_MoveChild, 14, ++/*317938*/ OPC_CheckInteger, 1, ++/*317940*/ OPC_CheckType, MVT::i32, ++/*317942*/ OPC_MoveParent, ++/*317943*/ OPC_MoveChild, 15, ++/*317945*/ OPC_CheckInteger, 1, ++/*317947*/ OPC_CheckType, MVT::i32, ++/*317949*/ OPC_MoveParent, ++/*317950*/ OPC_MoveChild, 16, ++/*317952*/ OPC_CheckInteger, 1, ++/*317954*/ OPC_CheckType, MVT::i32, ++/*317956*/ OPC_MoveParent, ++/*317957*/ OPC_MoveChild, 17, ++/*317959*/ OPC_CheckInteger, 1, ++/*317961*/ OPC_CheckType, MVT::i32, ++/*317963*/ OPC_MoveParent, ++/*317964*/ OPC_MoveChild, 18, ++/*317966*/ OPC_CheckInteger, 1, ++/*317968*/ OPC_CheckType, MVT::i32, ++/*317970*/ OPC_MoveParent, ++/*317971*/ OPC_MoveChild, 19, ++/*317973*/ OPC_CheckInteger, 1, ++/*317975*/ OPC_CheckType, MVT::i32, ++/*317977*/ OPC_MoveParent, ++/*317978*/ OPC_MoveChild, 20, ++/*317980*/ OPC_CheckInteger, 1, ++/*317982*/ OPC_CheckType, MVT::i32, ++/*317984*/ OPC_MoveParent, ++/*317985*/ OPC_MoveChild, 21, ++/*317987*/ OPC_CheckInteger, 1, ++/*317989*/ OPC_CheckType, MVT::i32, ++/*317991*/ OPC_MoveParent, ++/*317992*/ OPC_MoveChild, 22, ++/*317994*/ OPC_CheckInteger, 1, ++/*317996*/ OPC_CheckType, MVT::i32, ++/*317998*/ OPC_MoveParent, ++/*317999*/ OPC_MoveChild, 23, ++/*318001*/ OPC_CheckInteger, 1, ++/*318003*/ OPC_CheckType, MVT::i32, ++/*318005*/ OPC_MoveParent, ++/*318006*/ OPC_MoveChild, 24, ++/*318008*/ OPC_CheckInteger, 1, ++/*318010*/ OPC_CheckType, MVT::i32, ++/*318012*/ OPC_MoveParent, ++/*318013*/ OPC_MoveChild, 25, ++/*318015*/ OPC_CheckInteger, 1, ++/*318017*/ OPC_CheckType, MVT::i32, ++/*318019*/ OPC_MoveParent, ++/*318020*/ OPC_MoveChild, 26, ++/*318022*/ OPC_CheckInteger, 1, ++/*318024*/ OPC_CheckType, MVT::i32, ++/*318026*/ OPC_MoveParent, ++/*318027*/ OPC_MoveChild, 27, ++/*318029*/ OPC_CheckInteger, 1, ++/*318031*/ OPC_CheckType, MVT::i32, ++/*318033*/ OPC_MoveParent, ++/*318034*/ OPC_MoveChild, 28, ++/*318036*/ OPC_CheckInteger, 1, ++/*318038*/ OPC_CheckType, MVT::i32, ++/*318040*/ OPC_MoveParent, ++/*318041*/ OPC_MoveChild, 29, ++/*318043*/ OPC_CheckInteger, 1, ++/*318045*/ OPC_CheckType, MVT::i32, ++/*318047*/ OPC_MoveParent, ++/*318048*/ OPC_MoveChild, 30, ++/*318050*/ OPC_CheckInteger, 1, ++/*318052*/ OPC_CheckType, MVT::i32, ++/*318054*/ OPC_MoveParent, ++/*318055*/ OPC_MoveChild, 31, ++/*318057*/ OPC_CheckInteger, 1, ++/*318059*/ OPC_CheckType, MVT::i32, ++/*318061*/ OPC_MoveParent, ++/*318062*/ OPC_CheckType, MVT::v32i8, ++/*318064*/ OPC_MoveParent, ++/*318065*/ OPC_CheckType, MVT::v32i8, ++/*318067*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*318069*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*318077*/ 0, /*End of Scope*/ ++/*318078*/ 0, /*End of Scope*/ ++/*318079*/ /*Scope*/ 87|128,43/*5591*/, /*->323672*/ ++/*318081*/ OPC_MoveChild0, ++/*318082*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*318085*/ OPC_CheckChild0Integer, 1, ++/*318087*/ OPC_CheckChild0Type, MVT::i32, ++/*318089*/ OPC_CheckChild1Integer, 1, ++/*318091*/ OPC_CheckChild1Type, MVT::i32, ++/*318093*/ OPC_CheckChild2Integer, 1, ++/*318095*/ OPC_CheckChild2Type, MVT::i32, ++/*318097*/ OPC_CheckChild3Integer, 1, ++/*318099*/ OPC_CheckChild3Type, MVT::i32, ++/*318101*/ OPC_CheckChild4Integer, 1, ++/*318103*/ OPC_CheckChild4Type, MVT::i32, ++/*318105*/ OPC_MoveChild5, ++/*318106*/ OPC_CheckInteger, 1, ++/*318108*/ OPC_CheckType, MVT::i32, ++/*318110*/ OPC_MoveParent, ++/*318111*/ OPC_MoveChild6, ++/*318112*/ OPC_CheckInteger, 1, ++/*318114*/ OPC_CheckType, MVT::i32, ++/*318116*/ OPC_MoveParent, ++/*318117*/ OPC_MoveChild7, ++/*318118*/ OPC_CheckInteger, 1, ++/*318120*/ OPC_CheckType, MVT::i32, ++/*318122*/ OPC_MoveParent, ++/*318123*/ OPC_MoveChild, 8, ++/*318125*/ OPC_CheckInteger, 1, ++/*318127*/ OPC_CheckType, MVT::i32, ++/*318129*/ OPC_MoveParent, ++/*318130*/ OPC_MoveChild, 9, ++/*318132*/ OPC_CheckInteger, 1, ++/*318134*/ OPC_CheckType, MVT::i32, ++/*318136*/ OPC_MoveParent, ++/*318137*/ OPC_MoveChild, 10, ++/*318139*/ OPC_CheckInteger, 1, ++/*318141*/ OPC_CheckType, MVT::i32, ++/*318143*/ OPC_MoveParent, ++/*318144*/ OPC_MoveChild, 11, ++/*318146*/ OPC_CheckInteger, 1, ++/*318148*/ OPC_CheckType, MVT::i32, ++/*318150*/ OPC_MoveParent, ++/*318151*/ OPC_MoveChild, 12, ++/*318153*/ OPC_CheckInteger, 1, ++/*318155*/ OPC_CheckType, MVT::i32, ++/*318157*/ OPC_MoveParent, ++/*318158*/ OPC_MoveChild, 13, ++/*318160*/ OPC_CheckInteger, 1, ++/*318162*/ OPC_CheckType, MVT::i32, ++/*318164*/ OPC_MoveParent, ++/*318165*/ OPC_MoveChild, 14, ++/*318167*/ OPC_CheckInteger, 1, ++/*318169*/ OPC_CheckType, MVT::i32, ++/*318171*/ OPC_MoveParent, ++/*318172*/ OPC_MoveChild, 15, ++/*318174*/ OPC_CheckInteger, 1, ++/*318176*/ OPC_CheckType, MVT::i32, ++/*318178*/ OPC_MoveParent, ++/*318179*/ OPC_MoveChild, 16, ++/*318181*/ OPC_CheckInteger, 1, ++/*318183*/ OPC_CheckType, MVT::i32, ++/*318185*/ OPC_MoveParent, ++/*318186*/ OPC_MoveChild, 17, ++/*318188*/ OPC_CheckInteger, 1, ++/*318190*/ OPC_CheckType, MVT::i32, ++/*318192*/ OPC_MoveParent, ++/*318193*/ OPC_MoveChild, 18, ++/*318195*/ OPC_CheckInteger, 1, ++/*318197*/ OPC_CheckType, MVT::i32, ++/*318199*/ OPC_MoveParent, ++/*318200*/ OPC_MoveChild, 19, ++/*318202*/ OPC_CheckInteger, 1, ++/*318204*/ OPC_CheckType, MVT::i32, ++/*318206*/ OPC_MoveParent, ++/*318207*/ OPC_MoveChild, 20, ++/*318209*/ OPC_CheckInteger, 1, ++/*318211*/ OPC_CheckType, MVT::i32, ++/*318213*/ OPC_MoveParent, ++/*318214*/ OPC_MoveChild, 21, ++/*318216*/ OPC_CheckInteger, 1, ++/*318218*/ OPC_CheckType, MVT::i32, ++/*318220*/ OPC_MoveParent, ++/*318221*/ OPC_MoveChild, 22, ++/*318223*/ OPC_CheckInteger, 1, ++/*318225*/ OPC_CheckType, MVT::i32, ++/*318227*/ OPC_MoveParent, ++/*318228*/ OPC_MoveChild, 23, ++/*318230*/ OPC_CheckInteger, 1, ++/*318232*/ OPC_CheckType, MVT::i32, ++/*318234*/ OPC_MoveParent, ++/*318235*/ OPC_MoveChild, 24, ++/*318237*/ OPC_CheckInteger, 1, ++/*318239*/ OPC_CheckType, MVT::i32, ++/*318241*/ OPC_MoveParent, ++/*318242*/ OPC_MoveChild, 25, ++/*318244*/ OPC_CheckInteger, 1, ++/*318246*/ OPC_CheckType, MVT::i32, ++/*318248*/ OPC_MoveParent, ++/*318249*/ OPC_MoveChild, 26, ++/*318251*/ OPC_CheckInteger, 1, ++/*318253*/ OPC_CheckType, MVT::i32, ++/*318255*/ OPC_MoveParent, ++/*318256*/ OPC_MoveChild, 27, ++/*318258*/ OPC_CheckInteger, 1, ++/*318260*/ OPC_CheckType, MVT::i32, ++/*318262*/ OPC_MoveParent, ++/*318263*/ OPC_MoveChild, 28, ++/*318265*/ OPC_CheckInteger, 1, ++/*318267*/ OPC_CheckType, MVT::i32, ++/*318269*/ OPC_MoveParent, ++/*318270*/ OPC_MoveChild, 29, ++/*318272*/ OPC_CheckInteger, 1, ++/*318274*/ OPC_CheckType, MVT::i32, ++/*318276*/ OPC_MoveParent, ++/*318277*/ OPC_MoveChild, 30, ++/*318279*/ OPC_CheckInteger, 1, ++/*318281*/ OPC_CheckType, MVT::i32, ++/*318283*/ OPC_MoveParent, ++/*318284*/ OPC_MoveChild, 31, ++/*318286*/ OPC_CheckInteger, 1, ++/*318288*/ OPC_CheckType, MVT::i32, ++/*318290*/ OPC_MoveParent, ++/*318291*/ OPC_MoveParent, ++/*318292*/ OPC_RecordChild1, // #1 = $b ++/*318293*/ OPC_MoveParent, ++/*318294*/ OPC_MoveParent, ++/*318295*/ OPC_MoveChild1, ++/*318296*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*318299*/ OPC_CheckChild0Integer, 7, ++/*318301*/ OPC_CheckChild0Type, MVT::i32, ++/*318303*/ OPC_CheckChild1Integer, 7, ++/*318305*/ OPC_CheckChild1Type, MVT::i32, ++/*318307*/ OPC_CheckChild2Integer, 7, ++/*318309*/ OPC_CheckChild2Type, MVT::i32, ++/*318311*/ OPC_CheckChild3Integer, 7, ++/*318313*/ OPC_CheckChild3Type, MVT::i32, ++/*318315*/ OPC_CheckChild4Integer, 7, ++/*318317*/ OPC_CheckChild4Type, MVT::i32, ++/*318319*/ OPC_MoveChild5, ++/*318320*/ OPC_CheckInteger, 7, ++/*318322*/ OPC_CheckType, MVT::i32, ++/*318324*/ OPC_MoveParent, ++/*318325*/ OPC_MoveChild6, ++/*318326*/ OPC_CheckInteger, 7, ++/*318328*/ OPC_CheckType, MVT::i32, ++/*318330*/ OPC_MoveParent, ++/*318331*/ OPC_MoveChild7, ++/*318332*/ OPC_CheckInteger, 7, ++/*318334*/ OPC_CheckType, MVT::i32, ++/*318336*/ OPC_MoveParent, ++/*318337*/ OPC_MoveChild, 8, ++/*318339*/ OPC_CheckInteger, 7, ++/*318341*/ OPC_CheckType, MVT::i32, ++/*318343*/ OPC_MoveParent, ++/*318344*/ OPC_MoveChild, 9, ++/*318346*/ OPC_CheckInteger, 7, ++/*318348*/ OPC_CheckType, MVT::i32, ++/*318350*/ OPC_MoveParent, ++/*318351*/ OPC_MoveChild, 10, ++/*318353*/ OPC_CheckInteger, 7, ++/*318355*/ OPC_CheckType, MVT::i32, ++/*318357*/ OPC_MoveParent, ++/*318358*/ OPC_MoveChild, 11, ++/*318360*/ OPC_CheckInteger, 7, ++/*318362*/ OPC_CheckType, MVT::i32, ++/*318364*/ OPC_MoveParent, ++/*318365*/ OPC_MoveChild, 12, ++/*318367*/ OPC_CheckInteger, 7, ++/*318369*/ OPC_CheckType, MVT::i32, ++/*318371*/ OPC_MoveParent, ++/*318372*/ OPC_MoveChild, 13, ++/*318374*/ OPC_CheckInteger, 7, ++/*318376*/ OPC_CheckType, MVT::i32, ++/*318378*/ OPC_MoveParent, ++/*318379*/ OPC_MoveChild, 14, ++/*318381*/ OPC_CheckInteger, 7, ++/*318383*/ OPC_CheckType, MVT::i32, ++/*318385*/ OPC_MoveParent, ++/*318386*/ OPC_MoveChild, 15, ++/*318388*/ OPC_CheckInteger, 7, ++/*318390*/ OPC_CheckType, MVT::i32, ++/*318392*/ OPC_MoveParent, ++/*318393*/ OPC_MoveChild, 16, ++/*318395*/ OPC_CheckInteger, 7, ++/*318397*/ OPC_CheckType, MVT::i32, ++/*318399*/ OPC_MoveParent, ++/*318400*/ OPC_MoveChild, 17, ++/*318402*/ OPC_CheckInteger, 7, ++/*318404*/ OPC_CheckType, MVT::i32, ++/*318406*/ OPC_MoveParent, ++/*318407*/ OPC_MoveChild, 18, ++/*318409*/ OPC_CheckInteger, 7, ++/*318411*/ OPC_CheckType, MVT::i32, ++/*318413*/ OPC_MoveParent, ++/*318414*/ OPC_MoveChild, 19, ++/*318416*/ OPC_CheckInteger, 7, ++/*318418*/ OPC_CheckType, MVT::i32, ++/*318420*/ OPC_MoveParent, ++/*318421*/ OPC_MoveChild, 20, ++/*318423*/ OPC_CheckInteger, 7, ++/*318425*/ OPC_CheckType, MVT::i32, ++/*318427*/ OPC_MoveParent, ++/*318428*/ OPC_MoveChild, 21, ++/*318430*/ OPC_CheckInteger, 7, ++/*318432*/ OPC_CheckType, MVT::i32, ++/*318434*/ OPC_MoveParent, ++/*318435*/ OPC_MoveChild, 22, ++/*318437*/ OPC_CheckInteger, 7, ++/*318439*/ OPC_CheckType, MVT::i32, ++/*318441*/ OPC_MoveParent, ++/*318442*/ OPC_MoveChild, 23, ++/*318444*/ OPC_CheckInteger, 7, ++/*318446*/ OPC_CheckType, MVT::i32, ++/*318448*/ OPC_MoveParent, ++/*318449*/ OPC_MoveChild, 24, ++/*318451*/ OPC_CheckInteger, 7, ++/*318453*/ OPC_CheckType, MVT::i32, ++/*318455*/ OPC_MoveParent, ++/*318456*/ OPC_MoveChild, 25, ++/*318458*/ OPC_CheckInteger, 7, ++/*318460*/ OPC_CheckType, MVT::i32, ++/*318462*/ OPC_MoveParent, ++/*318463*/ OPC_MoveChild, 26, ++/*318465*/ OPC_CheckInteger, 7, ++/*318467*/ OPC_CheckType, MVT::i32, ++/*318469*/ OPC_MoveParent, ++/*318470*/ OPC_MoveChild, 27, ++/*318472*/ OPC_CheckInteger, 7, ++/*318474*/ OPC_CheckType, MVT::i32, ++/*318476*/ OPC_MoveParent, ++/*318477*/ OPC_MoveChild, 28, ++/*318479*/ OPC_CheckInteger, 7, ++/*318481*/ OPC_CheckType, MVT::i32, ++/*318483*/ OPC_MoveParent, ++/*318484*/ OPC_MoveChild, 29, ++/*318486*/ OPC_CheckInteger, 7, ++/*318488*/ OPC_CheckType, MVT::i32, ++/*318490*/ OPC_MoveParent, ++/*318491*/ OPC_MoveChild, 30, ++/*318493*/ OPC_CheckInteger, 7, ++/*318495*/ OPC_CheckType, MVT::i32, ++/*318497*/ OPC_MoveParent, ++/*318498*/ OPC_MoveChild, 31, ++/*318500*/ OPC_CheckInteger, 7, ++/*318502*/ OPC_CheckType, MVT::i32, ++/*318504*/ OPC_MoveParent, ++/*318505*/ OPC_CheckType, MVT::v32i8, ++/*318507*/ OPC_MoveParent, ++/*318508*/ OPC_MoveParent, ++/*318509*/ OPC_MoveChild1, ++/*318510*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*318513*/ OPC_Scope, 116|128,20/*2676*/, /*->321192*/ // 4 children in Scope ++/*318516*/ OPC_MoveChild0, ++/*318517*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*318520*/ OPC_Scope, 59|128,3/*443*/, /*->318966*/ // 6 children in Scope ++/*318523*/ OPC_MoveChild0, ++/*318524*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*318527*/ OPC_CheckChild0Integer, 1, ++/*318529*/ OPC_CheckChild0Type, MVT::i32, ++/*318531*/ OPC_CheckChild1Integer, 1, ++/*318533*/ OPC_CheckChild1Type, MVT::i32, ++/*318535*/ OPC_CheckChild2Integer, 1, ++/*318537*/ OPC_CheckChild2Type, MVT::i32, ++/*318539*/ OPC_CheckChild3Integer, 1, ++/*318541*/ OPC_CheckChild3Type, MVT::i32, ++/*318543*/ OPC_CheckChild4Integer, 1, ++/*318545*/ OPC_CheckChild4Type, MVT::i32, ++/*318547*/ OPC_MoveChild5, ++/*318548*/ OPC_CheckInteger, 1, ++/*318550*/ OPC_CheckType, MVT::i32, ++/*318552*/ OPC_MoveParent, ++/*318553*/ OPC_MoveChild6, ++/*318554*/ OPC_CheckInteger, 1, ++/*318556*/ OPC_CheckType, MVT::i32, ++/*318558*/ OPC_MoveParent, ++/*318559*/ OPC_MoveChild7, ++/*318560*/ OPC_CheckInteger, 1, ++/*318562*/ OPC_CheckType, MVT::i32, ++/*318564*/ OPC_MoveParent, ++/*318565*/ OPC_MoveChild, 8, ++/*318567*/ OPC_CheckInteger, 1, ++/*318569*/ OPC_CheckType, MVT::i32, ++/*318571*/ OPC_MoveParent, ++/*318572*/ OPC_MoveChild, 9, ++/*318574*/ OPC_CheckInteger, 1, ++/*318576*/ OPC_CheckType, MVT::i32, ++/*318578*/ OPC_MoveParent, ++/*318579*/ OPC_MoveChild, 10, ++/*318581*/ OPC_CheckInteger, 1, ++/*318583*/ OPC_CheckType, MVT::i32, ++/*318585*/ OPC_MoveParent, ++/*318586*/ OPC_MoveChild, 11, ++/*318588*/ OPC_CheckInteger, 1, ++/*318590*/ OPC_CheckType, MVT::i32, ++/*318592*/ OPC_MoveParent, ++/*318593*/ OPC_MoveChild, 12, ++/*318595*/ OPC_CheckInteger, 1, ++/*318597*/ OPC_CheckType, MVT::i32, ++/*318599*/ OPC_MoveParent, ++/*318600*/ OPC_MoveChild, 13, ++/*318602*/ OPC_CheckInteger, 1, ++/*318604*/ OPC_CheckType, MVT::i32, ++/*318606*/ OPC_MoveParent, ++/*318607*/ OPC_MoveChild, 14, ++/*318609*/ OPC_CheckInteger, 1, ++/*318611*/ OPC_CheckType, MVT::i32, ++/*318613*/ OPC_MoveParent, ++/*318614*/ OPC_MoveChild, 15, ++/*318616*/ OPC_CheckInteger, 1, ++/*318618*/ OPC_CheckType, MVT::i32, ++/*318620*/ OPC_MoveParent, ++/*318621*/ OPC_MoveChild, 16, ++/*318623*/ OPC_CheckInteger, 1, ++/*318625*/ OPC_CheckType, MVT::i32, ++/*318627*/ OPC_MoveParent, ++/*318628*/ OPC_MoveChild, 17, ++/*318630*/ OPC_CheckInteger, 1, ++/*318632*/ OPC_CheckType, MVT::i32, ++/*318634*/ OPC_MoveParent, ++/*318635*/ OPC_MoveChild, 18, ++/*318637*/ OPC_CheckInteger, 1, ++/*318639*/ OPC_CheckType, MVT::i32, ++/*318641*/ OPC_MoveParent, ++/*318642*/ OPC_MoveChild, 19, ++/*318644*/ OPC_CheckInteger, 1, ++/*318646*/ OPC_CheckType, MVT::i32, ++/*318648*/ OPC_MoveParent, ++/*318649*/ OPC_MoveChild, 20, ++/*318651*/ OPC_CheckInteger, 1, ++/*318653*/ OPC_CheckType, MVT::i32, ++/*318655*/ OPC_MoveParent, ++/*318656*/ OPC_MoveChild, 21, ++/*318658*/ OPC_CheckInteger, 1, ++/*318660*/ OPC_CheckType, MVT::i32, ++/*318662*/ OPC_MoveParent, ++/*318663*/ OPC_MoveChild, 22, ++/*318665*/ OPC_CheckInteger, 1, ++/*318667*/ OPC_CheckType, MVT::i32, ++/*318669*/ OPC_MoveParent, ++/*318670*/ OPC_MoveChild, 23, ++/*318672*/ OPC_CheckInteger, 1, ++/*318674*/ OPC_CheckType, MVT::i32, ++/*318676*/ OPC_MoveParent, ++/*318677*/ OPC_MoveChild, 24, ++/*318679*/ OPC_CheckInteger, 1, ++/*318681*/ OPC_CheckType, MVT::i32, ++/*318683*/ OPC_MoveParent, ++/*318684*/ OPC_MoveChild, 25, ++/*318686*/ OPC_CheckInteger, 1, ++/*318688*/ OPC_CheckType, MVT::i32, ++/*318690*/ OPC_MoveParent, ++/*318691*/ OPC_MoveChild, 26, ++/*318693*/ OPC_CheckInteger, 1, ++/*318695*/ OPC_CheckType, MVT::i32, ++/*318697*/ OPC_MoveParent, ++/*318698*/ OPC_MoveChild, 27, ++/*318700*/ OPC_CheckInteger, 1, ++/*318702*/ OPC_CheckType, MVT::i32, ++/*318704*/ OPC_MoveParent, ++/*318705*/ OPC_MoveChild, 28, ++/*318707*/ OPC_CheckInteger, 1, ++/*318709*/ OPC_CheckType, MVT::i32, ++/*318711*/ OPC_MoveParent, ++/*318712*/ OPC_MoveChild, 29, ++/*318714*/ OPC_CheckInteger, 1, ++/*318716*/ OPC_CheckType, MVT::i32, ++/*318718*/ OPC_MoveParent, ++/*318719*/ OPC_MoveChild, 30, ++/*318721*/ OPC_CheckInteger, 1, ++/*318723*/ OPC_CheckType, MVT::i32, ++/*318725*/ OPC_MoveParent, ++/*318726*/ OPC_MoveChild, 31, ++/*318728*/ OPC_CheckInteger, 1, ++/*318730*/ OPC_CheckType, MVT::i32, ++/*318732*/ OPC_MoveParent, ++/*318733*/ OPC_MoveParent, ++/*318734*/ OPC_CheckChild1Same, 0, ++/*318736*/ OPC_MoveParent, ++/*318737*/ OPC_CheckChild1Same, 1, ++/*318739*/ OPC_MoveParent, ++/*318740*/ OPC_MoveParent, ++/*318741*/ OPC_MoveChild1, ++/*318742*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*318745*/ OPC_CheckChild0Integer, 1, ++/*318747*/ OPC_CheckChild0Type, MVT::i32, ++/*318749*/ OPC_CheckChild1Integer, 1, ++/*318751*/ OPC_CheckChild1Type, MVT::i32, ++/*318753*/ OPC_CheckChild2Integer, 1, ++/*318755*/ OPC_CheckChild2Type, MVT::i32, ++/*318757*/ OPC_CheckChild3Integer, 1, ++/*318759*/ OPC_CheckChild3Type, MVT::i32, ++/*318761*/ OPC_CheckChild4Integer, 1, ++/*318763*/ OPC_CheckChild4Type, MVT::i32, ++/*318765*/ OPC_MoveChild5, ++/*318766*/ OPC_CheckInteger, 1, ++/*318768*/ OPC_CheckType, MVT::i32, ++/*318770*/ OPC_MoveParent, ++/*318771*/ OPC_MoveChild6, ++/*318772*/ OPC_CheckInteger, 1, ++/*318774*/ OPC_CheckType, MVT::i32, ++/*318776*/ OPC_MoveParent, ++/*318777*/ OPC_MoveChild7, ++/*318778*/ OPC_CheckInteger, 1, ++/*318780*/ OPC_CheckType, MVT::i32, ++/*318782*/ OPC_MoveParent, ++/*318783*/ OPC_MoveChild, 8, ++/*318785*/ OPC_CheckInteger, 1, ++/*318787*/ OPC_CheckType, MVT::i32, ++/*318789*/ OPC_MoveParent, ++/*318790*/ OPC_MoveChild, 9, ++/*318792*/ OPC_CheckInteger, 1, ++/*318794*/ OPC_CheckType, MVT::i32, ++/*318796*/ OPC_MoveParent, ++/*318797*/ OPC_MoveChild, 10, ++/*318799*/ OPC_CheckInteger, 1, ++/*318801*/ OPC_CheckType, MVT::i32, ++/*318803*/ OPC_MoveParent, ++/*318804*/ OPC_MoveChild, 11, ++/*318806*/ OPC_CheckInteger, 1, ++/*318808*/ OPC_CheckType, MVT::i32, ++/*318810*/ OPC_MoveParent, ++/*318811*/ OPC_MoveChild, 12, ++/*318813*/ OPC_CheckInteger, 1, ++/*318815*/ OPC_CheckType, MVT::i32, ++/*318817*/ OPC_MoveParent, ++/*318818*/ OPC_MoveChild, 13, ++/*318820*/ OPC_CheckInteger, 1, ++/*318822*/ OPC_CheckType, MVT::i32, ++/*318824*/ OPC_MoveParent, ++/*318825*/ OPC_MoveChild, 14, ++/*318827*/ OPC_CheckInteger, 1, ++/*318829*/ OPC_CheckType, MVT::i32, ++/*318831*/ OPC_MoveParent, ++/*318832*/ OPC_MoveChild, 15, ++/*318834*/ OPC_CheckInteger, 1, ++/*318836*/ OPC_CheckType, MVT::i32, ++/*318838*/ OPC_MoveParent, ++/*318839*/ OPC_MoveChild, 16, ++/*318841*/ OPC_CheckInteger, 1, ++/*318843*/ OPC_CheckType, MVT::i32, ++/*318845*/ OPC_MoveParent, ++/*318846*/ OPC_MoveChild, 17, ++/*318848*/ OPC_CheckInteger, 1, ++/*318850*/ OPC_CheckType, MVT::i32, ++/*318852*/ OPC_MoveParent, ++/*318853*/ OPC_MoveChild, 18, ++/*318855*/ OPC_CheckInteger, 1, ++/*318857*/ OPC_CheckType, MVT::i32, ++/*318859*/ OPC_MoveParent, ++/*318860*/ OPC_MoveChild, 19, ++/*318862*/ OPC_CheckInteger, 1, ++/*318864*/ OPC_CheckType, MVT::i32, ++/*318866*/ OPC_MoveParent, ++/*318867*/ OPC_MoveChild, 20, ++/*318869*/ OPC_CheckInteger, 1, ++/*318871*/ OPC_CheckType, MVT::i32, ++/*318873*/ OPC_MoveParent, ++/*318874*/ OPC_MoveChild, 21, ++/*318876*/ OPC_CheckInteger, 1, ++/*318878*/ OPC_CheckType, MVT::i32, ++/*318880*/ OPC_MoveParent, ++/*318881*/ OPC_MoveChild, 22, ++/*318883*/ OPC_CheckInteger, 1, ++/*318885*/ OPC_CheckType, MVT::i32, ++/*318887*/ OPC_MoveParent, ++/*318888*/ OPC_MoveChild, 23, ++/*318890*/ OPC_CheckInteger, 1, ++/*318892*/ OPC_CheckType, MVT::i32, ++/*318894*/ OPC_MoveParent, ++/*318895*/ OPC_MoveChild, 24, ++/*318897*/ OPC_CheckInteger, 1, ++/*318899*/ OPC_CheckType, MVT::i32, ++/*318901*/ OPC_MoveParent, ++/*318902*/ OPC_MoveChild, 25, ++/*318904*/ OPC_CheckInteger, 1, ++/*318906*/ OPC_CheckType, MVT::i32, ++/*318908*/ OPC_MoveParent, ++/*318909*/ OPC_MoveChild, 26, ++/*318911*/ OPC_CheckInteger, 1, ++/*318913*/ OPC_CheckType, MVT::i32, ++/*318915*/ OPC_MoveParent, ++/*318916*/ OPC_MoveChild, 27, ++/*318918*/ OPC_CheckInteger, 1, ++/*318920*/ OPC_CheckType, MVT::i32, ++/*318922*/ OPC_MoveParent, ++/*318923*/ OPC_MoveChild, 28, ++/*318925*/ OPC_CheckInteger, 1, ++/*318927*/ OPC_CheckType, MVT::i32, ++/*318929*/ OPC_MoveParent, ++/*318930*/ OPC_MoveChild, 29, ++/*318932*/ OPC_CheckInteger, 1, ++/*318934*/ OPC_CheckType, MVT::i32, ++/*318936*/ OPC_MoveParent, ++/*318937*/ OPC_MoveChild, 30, ++/*318939*/ OPC_CheckInteger, 1, ++/*318941*/ OPC_CheckType, MVT::i32, ++/*318943*/ OPC_MoveParent, ++/*318944*/ OPC_MoveChild, 31, ++/*318946*/ OPC_CheckInteger, 1, ++/*318948*/ OPC_CheckType, MVT::i32, ++/*318950*/ OPC_MoveParent, ++/*318951*/ OPC_CheckType, MVT::v32i8, ++/*318953*/ OPC_MoveParent, ++/*318954*/ OPC_CheckType, MVT::v32i8, ++/*318956*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*318958*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a), LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*318966*/ /*Scope*/ 59|128,3/*443*/, /*->319411*/ ++/*318968*/ OPC_CheckChild0Same, 0, ++/*318970*/ OPC_MoveChild1, ++/*318971*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*318974*/ OPC_CheckChild0Integer, 1, ++/*318976*/ OPC_CheckChild0Type, MVT::i32, ++/*318978*/ OPC_CheckChild1Integer, 1, ++/*318980*/ OPC_CheckChild1Type, MVT::i32, ++/*318982*/ OPC_CheckChild2Integer, 1, ++/*318984*/ OPC_CheckChild2Type, MVT::i32, ++/*318986*/ OPC_CheckChild3Integer, 1, ++/*318988*/ OPC_CheckChild3Type, MVT::i32, ++/*318990*/ OPC_CheckChild4Integer, 1, ++/*318992*/ OPC_CheckChild4Type, MVT::i32, ++/*318994*/ OPC_MoveChild5, ++/*318995*/ OPC_CheckInteger, 1, ++/*318997*/ OPC_CheckType, MVT::i32, ++/*318999*/ OPC_MoveParent, ++/*319000*/ OPC_MoveChild6, ++/*319001*/ OPC_CheckInteger, 1, ++/*319003*/ OPC_CheckType, MVT::i32, ++/*319005*/ OPC_MoveParent, ++/*319006*/ OPC_MoveChild7, ++/*319007*/ OPC_CheckInteger, 1, ++/*319009*/ OPC_CheckType, MVT::i32, ++/*319011*/ OPC_MoveParent, ++/*319012*/ OPC_MoveChild, 8, ++/*319014*/ OPC_CheckInteger, 1, ++/*319016*/ OPC_CheckType, MVT::i32, ++/*319018*/ OPC_MoveParent, ++/*319019*/ OPC_MoveChild, 9, ++/*319021*/ OPC_CheckInteger, 1, ++/*319023*/ OPC_CheckType, MVT::i32, ++/*319025*/ OPC_MoveParent, ++/*319026*/ OPC_MoveChild, 10, ++/*319028*/ OPC_CheckInteger, 1, ++/*319030*/ OPC_CheckType, MVT::i32, ++/*319032*/ OPC_MoveParent, ++/*319033*/ OPC_MoveChild, 11, ++/*319035*/ OPC_CheckInteger, 1, ++/*319037*/ OPC_CheckType, MVT::i32, ++/*319039*/ OPC_MoveParent, ++/*319040*/ OPC_MoveChild, 12, ++/*319042*/ OPC_CheckInteger, 1, ++/*319044*/ OPC_CheckType, MVT::i32, ++/*319046*/ OPC_MoveParent, ++/*319047*/ OPC_MoveChild, 13, ++/*319049*/ OPC_CheckInteger, 1, ++/*319051*/ OPC_CheckType, MVT::i32, ++/*319053*/ OPC_MoveParent, ++/*319054*/ OPC_MoveChild, 14, ++/*319056*/ OPC_CheckInteger, 1, ++/*319058*/ OPC_CheckType, MVT::i32, ++/*319060*/ OPC_MoveParent, ++/*319061*/ OPC_MoveChild, 15, ++/*319063*/ OPC_CheckInteger, 1, ++/*319065*/ OPC_CheckType, MVT::i32, ++/*319067*/ OPC_MoveParent, ++/*319068*/ OPC_MoveChild, 16, ++/*319070*/ OPC_CheckInteger, 1, ++/*319072*/ OPC_CheckType, MVT::i32, ++/*319074*/ OPC_MoveParent, ++/*319075*/ OPC_MoveChild, 17, ++/*319077*/ OPC_CheckInteger, 1, ++/*319079*/ OPC_CheckType, MVT::i32, ++/*319081*/ OPC_MoveParent, ++/*319082*/ OPC_MoveChild, 18, ++/*319084*/ OPC_CheckInteger, 1, ++/*319086*/ OPC_CheckType, MVT::i32, ++/*319088*/ OPC_MoveParent, ++/*319089*/ OPC_MoveChild, 19, ++/*319091*/ OPC_CheckInteger, 1, ++/*319093*/ OPC_CheckType, MVT::i32, ++/*319095*/ OPC_MoveParent, ++/*319096*/ OPC_MoveChild, 20, ++/*319098*/ OPC_CheckInteger, 1, ++/*319100*/ OPC_CheckType, MVT::i32, ++/*319102*/ OPC_MoveParent, ++/*319103*/ OPC_MoveChild, 21, ++/*319105*/ OPC_CheckInteger, 1, ++/*319107*/ OPC_CheckType, MVT::i32, ++/*319109*/ OPC_MoveParent, ++/*319110*/ OPC_MoveChild, 22, ++/*319112*/ OPC_CheckInteger, 1, ++/*319114*/ OPC_CheckType, MVT::i32, ++/*319116*/ OPC_MoveParent, ++/*319117*/ OPC_MoveChild, 23, ++/*319119*/ OPC_CheckInteger, 1, ++/*319121*/ OPC_CheckType, MVT::i32, ++/*319123*/ OPC_MoveParent, ++/*319124*/ OPC_MoveChild, 24, ++/*319126*/ OPC_CheckInteger, 1, ++/*319128*/ OPC_CheckType, MVT::i32, ++/*319130*/ OPC_MoveParent, ++/*319131*/ OPC_MoveChild, 25, ++/*319133*/ OPC_CheckInteger, 1, ++/*319135*/ OPC_CheckType, MVT::i32, ++/*319137*/ OPC_MoveParent, ++/*319138*/ OPC_MoveChild, 26, ++/*319140*/ OPC_CheckInteger, 1, ++/*319142*/ OPC_CheckType, MVT::i32, ++/*319144*/ OPC_MoveParent, ++/*319145*/ OPC_MoveChild, 27, ++/*319147*/ OPC_CheckInteger, 1, ++/*319149*/ OPC_CheckType, MVT::i32, ++/*319151*/ OPC_MoveParent, ++/*319152*/ OPC_MoveChild, 28, ++/*319154*/ OPC_CheckInteger, 1, ++/*319156*/ OPC_CheckType, MVT::i32, ++/*319158*/ OPC_MoveParent, ++/*319159*/ OPC_MoveChild, 29, ++/*319161*/ OPC_CheckInteger, 1, ++/*319163*/ OPC_CheckType, MVT::i32, ++/*319165*/ OPC_MoveParent, ++/*319166*/ OPC_MoveChild, 30, ++/*319168*/ OPC_CheckInteger, 1, ++/*319170*/ OPC_CheckType, MVT::i32, ++/*319172*/ OPC_MoveParent, ++/*319173*/ OPC_MoveChild, 31, ++/*319175*/ OPC_CheckInteger, 1, ++/*319177*/ OPC_CheckType, MVT::i32, ++/*319179*/ OPC_MoveParent, ++/*319180*/ OPC_MoveParent, ++/*319181*/ OPC_MoveParent, ++/*319182*/ OPC_CheckChild1Same, 1, ++/*319184*/ OPC_MoveParent, ++/*319185*/ OPC_MoveParent, ++/*319186*/ OPC_MoveChild1, ++/*319187*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*319190*/ OPC_CheckChild0Integer, 1, ++/*319192*/ OPC_CheckChild0Type, MVT::i32, ++/*319194*/ OPC_CheckChild1Integer, 1, ++/*319196*/ OPC_CheckChild1Type, MVT::i32, ++/*319198*/ OPC_CheckChild2Integer, 1, ++/*319200*/ OPC_CheckChild2Type, MVT::i32, ++/*319202*/ OPC_CheckChild3Integer, 1, ++/*319204*/ OPC_CheckChild3Type, MVT::i32, ++/*319206*/ OPC_CheckChild4Integer, 1, ++/*319208*/ OPC_CheckChild4Type, MVT::i32, ++/*319210*/ OPC_MoveChild5, ++/*319211*/ OPC_CheckInteger, 1, ++/*319213*/ OPC_CheckType, MVT::i32, ++/*319215*/ OPC_MoveParent, ++/*319216*/ OPC_MoveChild6, ++/*319217*/ OPC_CheckInteger, 1, ++/*319219*/ OPC_CheckType, MVT::i32, ++/*319221*/ OPC_MoveParent, ++/*319222*/ OPC_MoveChild7, ++/*319223*/ OPC_CheckInteger, 1, ++/*319225*/ OPC_CheckType, MVT::i32, ++/*319227*/ OPC_MoveParent, ++/*319228*/ OPC_MoveChild, 8, ++/*319230*/ OPC_CheckInteger, 1, ++/*319232*/ OPC_CheckType, MVT::i32, ++/*319234*/ OPC_MoveParent, ++/*319235*/ OPC_MoveChild, 9, ++/*319237*/ OPC_CheckInteger, 1, ++/*319239*/ OPC_CheckType, MVT::i32, ++/*319241*/ OPC_MoveParent, ++/*319242*/ OPC_MoveChild, 10, ++/*319244*/ OPC_CheckInteger, 1, ++/*319246*/ OPC_CheckType, MVT::i32, ++/*319248*/ OPC_MoveParent, ++/*319249*/ OPC_MoveChild, 11, ++/*319251*/ OPC_CheckInteger, 1, ++/*319253*/ OPC_CheckType, MVT::i32, ++/*319255*/ OPC_MoveParent, ++/*319256*/ OPC_MoveChild, 12, ++/*319258*/ OPC_CheckInteger, 1, ++/*319260*/ OPC_CheckType, MVT::i32, ++/*319262*/ OPC_MoveParent, ++/*319263*/ OPC_MoveChild, 13, ++/*319265*/ OPC_CheckInteger, 1, ++/*319267*/ OPC_CheckType, MVT::i32, ++/*319269*/ OPC_MoveParent, ++/*319270*/ OPC_MoveChild, 14, ++/*319272*/ OPC_CheckInteger, 1, ++/*319274*/ OPC_CheckType, MVT::i32, ++/*319276*/ OPC_MoveParent, ++/*319277*/ OPC_MoveChild, 15, ++/*319279*/ OPC_CheckInteger, 1, ++/*319281*/ OPC_CheckType, MVT::i32, ++/*319283*/ OPC_MoveParent, ++/*319284*/ OPC_MoveChild, 16, ++/*319286*/ OPC_CheckInteger, 1, ++/*319288*/ OPC_CheckType, MVT::i32, ++/*319290*/ OPC_MoveParent, ++/*319291*/ OPC_MoveChild, 17, ++/*319293*/ OPC_CheckInteger, 1, ++/*319295*/ OPC_CheckType, MVT::i32, ++/*319297*/ OPC_MoveParent, ++/*319298*/ OPC_MoveChild, 18, ++/*319300*/ OPC_CheckInteger, 1, ++/*319302*/ OPC_CheckType, MVT::i32, ++/*319304*/ OPC_MoveParent, ++/*319305*/ OPC_MoveChild, 19, ++/*319307*/ OPC_CheckInteger, 1, ++/*319309*/ OPC_CheckType, MVT::i32, ++/*319311*/ OPC_MoveParent, ++/*319312*/ OPC_MoveChild, 20, ++/*319314*/ OPC_CheckInteger, 1, ++/*319316*/ OPC_CheckType, MVT::i32, ++/*319318*/ OPC_MoveParent, ++/*319319*/ OPC_MoveChild, 21, ++/*319321*/ OPC_CheckInteger, 1, ++/*319323*/ OPC_CheckType, MVT::i32, ++/*319325*/ OPC_MoveParent, ++/*319326*/ OPC_MoveChild, 22, ++/*319328*/ OPC_CheckInteger, 1, ++/*319330*/ OPC_CheckType, MVT::i32, ++/*319332*/ OPC_MoveParent, ++/*319333*/ OPC_MoveChild, 23, ++/*319335*/ OPC_CheckInteger, 1, ++/*319337*/ OPC_CheckType, MVT::i32, ++/*319339*/ OPC_MoveParent, ++/*319340*/ OPC_MoveChild, 24, ++/*319342*/ OPC_CheckInteger, 1, ++/*319344*/ OPC_CheckType, MVT::i32, ++/*319346*/ OPC_MoveParent, ++/*319347*/ OPC_MoveChild, 25, ++/*319349*/ OPC_CheckInteger, 1, ++/*319351*/ OPC_CheckType, MVT::i32, ++/*319353*/ OPC_MoveParent, ++/*319354*/ OPC_MoveChild, 26, ++/*319356*/ OPC_CheckInteger, 1, ++/*319358*/ OPC_CheckType, MVT::i32, ++/*319360*/ OPC_MoveParent, ++/*319361*/ OPC_MoveChild, 27, ++/*319363*/ OPC_CheckInteger, 1, ++/*319365*/ OPC_CheckType, MVT::i32, ++/*319367*/ OPC_MoveParent, ++/*319368*/ OPC_MoveChild, 28, ++/*319370*/ OPC_CheckInteger, 1, ++/*319372*/ OPC_CheckType, MVT::i32, ++/*319374*/ OPC_MoveParent, ++/*319375*/ OPC_MoveChild, 29, ++/*319377*/ OPC_CheckInteger, 1, ++/*319379*/ OPC_CheckType, MVT::i32, ++/*319381*/ OPC_MoveParent, ++/*319382*/ OPC_MoveChild, 30, ++/*319384*/ OPC_CheckInteger, 1, ++/*319386*/ OPC_CheckType, MVT::i32, ++/*319388*/ OPC_MoveParent, ++/*319389*/ OPC_MoveChild, 31, ++/*319391*/ OPC_CheckInteger, 1, ++/*319393*/ OPC_CheckType, MVT::i32, ++/*319395*/ OPC_MoveParent, ++/*319396*/ OPC_CheckType, MVT::v32i8, ++/*319398*/ OPC_MoveParent, ++/*319399*/ OPC_CheckType, MVT::v32i8, ++/*319401*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*319403*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*319411*/ /*Scope*/ 59|128,3/*443*/, /*->319856*/ ++/*319413*/ OPC_MoveChild0, ++/*319414*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*319417*/ OPC_CheckChild0Integer, 1, ++/*319419*/ OPC_CheckChild0Type, MVT::i32, ++/*319421*/ OPC_CheckChild1Integer, 1, ++/*319423*/ OPC_CheckChild1Type, MVT::i32, ++/*319425*/ OPC_CheckChild2Integer, 1, ++/*319427*/ OPC_CheckChild2Type, MVT::i32, ++/*319429*/ OPC_CheckChild3Integer, 1, ++/*319431*/ OPC_CheckChild3Type, MVT::i32, ++/*319433*/ OPC_CheckChild4Integer, 1, ++/*319435*/ OPC_CheckChild4Type, MVT::i32, ++/*319437*/ OPC_MoveChild5, ++/*319438*/ OPC_CheckInteger, 1, ++/*319440*/ OPC_CheckType, MVT::i32, ++/*319442*/ OPC_MoveParent, ++/*319443*/ OPC_MoveChild6, ++/*319444*/ OPC_CheckInteger, 1, ++/*319446*/ OPC_CheckType, MVT::i32, ++/*319448*/ OPC_MoveParent, ++/*319449*/ OPC_MoveChild7, ++/*319450*/ OPC_CheckInteger, 1, ++/*319452*/ OPC_CheckType, MVT::i32, ++/*319454*/ OPC_MoveParent, ++/*319455*/ OPC_MoveChild, 8, ++/*319457*/ OPC_CheckInteger, 1, ++/*319459*/ OPC_CheckType, MVT::i32, ++/*319461*/ OPC_MoveParent, ++/*319462*/ OPC_MoveChild, 9, ++/*319464*/ OPC_CheckInteger, 1, ++/*319466*/ OPC_CheckType, MVT::i32, ++/*319468*/ OPC_MoveParent, ++/*319469*/ OPC_MoveChild, 10, ++/*319471*/ OPC_CheckInteger, 1, ++/*319473*/ OPC_CheckType, MVT::i32, ++/*319475*/ OPC_MoveParent, ++/*319476*/ OPC_MoveChild, 11, ++/*319478*/ OPC_CheckInteger, 1, ++/*319480*/ OPC_CheckType, MVT::i32, ++/*319482*/ OPC_MoveParent, ++/*319483*/ OPC_MoveChild, 12, ++/*319485*/ OPC_CheckInteger, 1, ++/*319487*/ OPC_CheckType, MVT::i32, ++/*319489*/ OPC_MoveParent, ++/*319490*/ OPC_MoveChild, 13, ++/*319492*/ OPC_CheckInteger, 1, ++/*319494*/ OPC_CheckType, MVT::i32, ++/*319496*/ OPC_MoveParent, ++/*319497*/ OPC_MoveChild, 14, ++/*319499*/ OPC_CheckInteger, 1, ++/*319501*/ OPC_CheckType, MVT::i32, ++/*319503*/ OPC_MoveParent, ++/*319504*/ OPC_MoveChild, 15, ++/*319506*/ OPC_CheckInteger, 1, ++/*319508*/ OPC_CheckType, MVT::i32, ++/*319510*/ OPC_MoveParent, ++/*319511*/ OPC_MoveChild, 16, ++/*319513*/ OPC_CheckInteger, 1, ++/*319515*/ OPC_CheckType, MVT::i32, ++/*319517*/ OPC_MoveParent, ++/*319518*/ OPC_MoveChild, 17, ++/*319520*/ OPC_CheckInteger, 1, ++/*319522*/ OPC_CheckType, MVT::i32, ++/*319524*/ OPC_MoveParent, ++/*319525*/ OPC_MoveChild, 18, ++/*319527*/ OPC_CheckInteger, 1, ++/*319529*/ OPC_CheckType, MVT::i32, ++/*319531*/ OPC_MoveParent, ++/*319532*/ OPC_MoveChild, 19, ++/*319534*/ OPC_CheckInteger, 1, ++/*319536*/ OPC_CheckType, MVT::i32, ++/*319538*/ OPC_MoveParent, ++/*319539*/ OPC_MoveChild, 20, ++/*319541*/ OPC_CheckInteger, 1, ++/*319543*/ OPC_CheckType, MVT::i32, ++/*319545*/ OPC_MoveParent, ++/*319546*/ OPC_MoveChild, 21, ++/*319548*/ OPC_CheckInteger, 1, ++/*319550*/ OPC_CheckType, MVT::i32, ++/*319552*/ OPC_MoveParent, ++/*319553*/ OPC_MoveChild, 22, ++/*319555*/ OPC_CheckInteger, 1, ++/*319557*/ OPC_CheckType, MVT::i32, ++/*319559*/ OPC_MoveParent, ++/*319560*/ OPC_MoveChild, 23, ++/*319562*/ OPC_CheckInteger, 1, ++/*319564*/ OPC_CheckType, MVT::i32, ++/*319566*/ OPC_MoveParent, ++/*319567*/ OPC_MoveChild, 24, ++/*319569*/ OPC_CheckInteger, 1, ++/*319571*/ OPC_CheckType, MVT::i32, ++/*319573*/ OPC_MoveParent, ++/*319574*/ OPC_MoveChild, 25, ++/*319576*/ OPC_CheckInteger, 1, ++/*319578*/ OPC_CheckType, MVT::i32, ++/*319580*/ OPC_MoveParent, ++/*319581*/ OPC_MoveChild, 26, ++/*319583*/ OPC_CheckInteger, 1, ++/*319585*/ OPC_CheckType, MVT::i32, ++/*319587*/ OPC_MoveParent, ++/*319588*/ OPC_MoveChild, 27, ++/*319590*/ OPC_CheckInteger, 1, ++/*319592*/ OPC_CheckType, MVT::i32, ++/*319594*/ OPC_MoveParent, ++/*319595*/ OPC_MoveChild, 28, ++/*319597*/ OPC_CheckInteger, 1, ++/*319599*/ OPC_CheckType, MVT::i32, ++/*319601*/ OPC_MoveParent, ++/*319602*/ OPC_MoveChild, 29, ++/*319604*/ OPC_CheckInteger, 1, ++/*319606*/ OPC_CheckType, MVT::i32, ++/*319608*/ OPC_MoveParent, ++/*319609*/ OPC_MoveChild, 30, ++/*319611*/ OPC_CheckInteger, 1, ++/*319613*/ OPC_CheckType, MVT::i32, ++/*319615*/ OPC_MoveParent, ++/*319616*/ OPC_MoveChild, 31, ++/*319618*/ OPC_CheckInteger, 1, ++/*319620*/ OPC_CheckType, MVT::i32, ++/*319622*/ OPC_MoveParent, ++/*319623*/ OPC_MoveParent, ++/*319624*/ OPC_CheckChild1Same, 1, ++/*319626*/ OPC_MoveParent, ++/*319627*/ OPC_CheckChild1Same, 0, ++/*319629*/ OPC_MoveParent, ++/*319630*/ OPC_MoveParent, ++/*319631*/ OPC_MoveChild1, ++/*319632*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*319635*/ OPC_CheckChild0Integer, 1, ++/*319637*/ OPC_CheckChild0Type, MVT::i32, ++/*319639*/ OPC_CheckChild1Integer, 1, ++/*319641*/ OPC_CheckChild1Type, MVT::i32, ++/*319643*/ OPC_CheckChild2Integer, 1, ++/*319645*/ OPC_CheckChild2Type, MVT::i32, ++/*319647*/ OPC_CheckChild3Integer, 1, ++/*319649*/ OPC_CheckChild3Type, MVT::i32, ++/*319651*/ OPC_CheckChild4Integer, 1, ++/*319653*/ OPC_CheckChild4Type, MVT::i32, ++/*319655*/ OPC_MoveChild5, ++/*319656*/ OPC_CheckInteger, 1, ++/*319658*/ OPC_CheckType, MVT::i32, ++/*319660*/ OPC_MoveParent, ++/*319661*/ OPC_MoveChild6, ++/*319662*/ OPC_CheckInteger, 1, ++/*319664*/ OPC_CheckType, MVT::i32, ++/*319666*/ OPC_MoveParent, ++/*319667*/ OPC_MoveChild7, ++/*319668*/ OPC_CheckInteger, 1, ++/*319670*/ OPC_CheckType, MVT::i32, ++/*319672*/ OPC_MoveParent, ++/*319673*/ OPC_MoveChild, 8, ++/*319675*/ OPC_CheckInteger, 1, ++/*319677*/ OPC_CheckType, MVT::i32, ++/*319679*/ OPC_MoveParent, ++/*319680*/ OPC_MoveChild, 9, ++/*319682*/ OPC_CheckInteger, 1, ++/*319684*/ OPC_CheckType, MVT::i32, ++/*319686*/ OPC_MoveParent, ++/*319687*/ OPC_MoveChild, 10, ++/*319689*/ OPC_CheckInteger, 1, ++/*319691*/ OPC_CheckType, MVT::i32, ++/*319693*/ OPC_MoveParent, ++/*319694*/ OPC_MoveChild, 11, ++/*319696*/ OPC_CheckInteger, 1, ++/*319698*/ OPC_CheckType, MVT::i32, ++/*319700*/ OPC_MoveParent, ++/*319701*/ OPC_MoveChild, 12, ++/*319703*/ OPC_CheckInteger, 1, ++/*319705*/ OPC_CheckType, MVT::i32, ++/*319707*/ OPC_MoveParent, ++/*319708*/ OPC_MoveChild, 13, ++/*319710*/ OPC_CheckInteger, 1, ++/*319712*/ OPC_CheckType, MVT::i32, ++/*319714*/ OPC_MoveParent, ++/*319715*/ OPC_MoveChild, 14, ++/*319717*/ OPC_CheckInteger, 1, ++/*319719*/ OPC_CheckType, MVT::i32, ++/*319721*/ OPC_MoveParent, ++/*319722*/ OPC_MoveChild, 15, ++/*319724*/ OPC_CheckInteger, 1, ++/*319726*/ OPC_CheckType, MVT::i32, ++/*319728*/ OPC_MoveParent, ++/*319729*/ OPC_MoveChild, 16, ++/*319731*/ OPC_CheckInteger, 1, ++/*319733*/ OPC_CheckType, MVT::i32, ++/*319735*/ OPC_MoveParent, ++/*319736*/ OPC_MoveChild, 17, ++/*319738*/ OPC_CheckInteger, 1, ++/*319740*/ OPC_CheckType, MVT::i32, ++/*319742*/ OPC_MoveParent, ++/*319743*/ OPC_MoveChild, 18, ++/*319745*/ OPC_CheckInteger, 1, ++/*319747*/ OPC_CheckType, MVT::i32, ++/*319749*/ OPC_MoveParent, ++/*319750*/ OPC_MoveChild, 19, ++/*319752*/ OPC_CheckInteger, 1, ++/*319754*/ OPC_CheckType, MVT::i32, ++/*319756*/ OPC_MoveParent, ++/*319757*/ OPC_MoveChild, 20, ++/*319759*/ OPC_CheckInteger, 1, ++/*319761*/ OPC_CheckType, MVT::i32, ++/*319763*/ OPC_MoveParent, ++/*319764*/ OPC_MoveChild, 21, ++/*319766*/ OPC_CheckInteger, 1, ++/*319768*/ OPC_CheckType, MVT::i32, ++/*319770*/ OPC_MoveParent, ++/*319771*/ OPC_MoveChild, 22, ++/*319773*/ OPC_CheckInteger, 1, ++/*319775*/ OPC_CheckType, MVT::i32, ++/*319777*/ OPC_MoveParent, ++/*319778*/ OPC_MoveChild, 23, ++/*319780*/ OPC_CheckInteger, 1, ++/*319782*/ OPC_CheckType, MVT::i32, ++/*319784*/ OPC_MoveParent, ++/*319785*/ OPC_MoveChild, 24, ++/*319787*/ OPC_CheckInteger, 1, ++/*319789*/ OPC_CheckType, MVT::i32, ++/*319791*/ OPC_MoveParent, ++/*319792*/ OPC_MoveChild, 25, ++/*319794*/ OPC_CheckInteger, 1, ++/*319796*/ OPC_CheckType, MVT::i32, ++/*319798*/ OPC_MoveParent, ++/*319799*/ OPC_MoveChild, 26, ++/*319801*/ OPC_CheckInteger, 1, ++/*319803*/ OPC_CheckType, MVT::i32, ++/*319805*/ OPC_MoveParent, ++/*319806*/ OPC_MoveChild, 27, ++/*319808*/ OPC_CheckInteger, 1, ++/*319810*/ OPC_CheckType, MVT::i32, ++/*319812*/ OPC_MoveParent, ++/*319813*/ OPC_MoveChild, 28, ++/*319815*/ OPC_CheckInteger, 1, ++/*319817*/ OPC_CheckType, MVT::i32, ++/*319819*/ OPC_MoveParent, ++/*319820*/ OPC_MoveChild, 29, ++/*319822*/ OPC_CheckInteger, 1, ++/*319824*/ OPC_CheckType, MVT::i32, ++/*319826*/ OPC_MoveParent, ++/*319827*/ OPC_MoveChild, 30, ++/*319829*/ OPC_CheckInteger, 1, ++/*319831*/ OPC_CheckType, MVT::i32, ++/*319833*/ OPC_MoveParent, ++/*319834*/ OPC_MoveChild, 31, ++/*319836*/ OPC_CheckInteger, 1, ++/*319838*/ OPC_CheckType, MVT::i32, ++/*319840*/ OPC_MoveParent, ++/*319841*/ OPC_CheckType, MVT::v32i8, ++/*319843*/ OPC_MoveParent, ++/*319844*/ OPC_CheckType, MVT::v32i8, ++/*319846*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*319848*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b), LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*319856*/ /*Scope*/ 59|128,3/*443*/, /*->320301*/ ++/*319858*/ OPC_CheckChild0Same, 1, ++/*319860*/ OPC_MoveChild1, ++/*319861*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*319864*/ OPC_CheckChild0Integer, 1, ++/*319866*/ OPC_CheckChild0Type, MVT::i32, ++/*319868*/ OPC_CheckChild1Integer, 1, ++/*319870*/ OPC_CheckChild1Type, MVT::i32, ++/*319872*/ OPC_CheckChild2Integer, 1, ++/*319874*/ OPC_CheckChild2Type, MVT::i32, ++/*319876*/ OPC_CheckChild3Integer, 1, ++/*319878*/ OPC_CheckChild3Type, MVT::i32, ++/*319880*/ OPC_CheckChild4Integer, 1, ++/*319882*/ OPC_CheckChild4Type, MVT::i32, ++/*319884*/ OPC_MoveChild5, ++/*319885*/ OPC_CheckInteger, 1, ++/*319887*/ OPC_CheckType, MVT::i32, ++/*319889*/ OPC_MoveParent, ++/*319890*/ OPC_MoveChild6, ++/*319891*/ OPC_CheckInteger, 1, ++/*319893*/ OPC_CheckType, MVT::i32, ++/*319895*/ OPC_MoveParent, ++/*319896*/ OPC_MoveChild7, ++/*319897*/ OPC_CheckInteger, 1, ++/*319899*/ OPC_CheckType, MVT::i32, ++/*319901*/ OPC_MoveParent, ++/*319902*/ OPC_MoveChild, 8, ++/*319904*/ OPC_CheckInteger, 1, ++/*319906*/ OPC_CheckType, MVT::i32, ++/*319908*/ OPC_MoveParent, ++/*319909*/ OPC_MoveChild, 9, ++/*319911*/ OPC_CheckInteger, 1, ++/*319913*/ OPC_CheckType, MVT::i32, ++/*319915*/ OPC_MoveParent, ++/*319916*/ OPC_MoveChild, 10, ++/*319918*/ OPC_CheckInteger, 1, ++/*319920*/ OPC_CheckType, MVT::i32, ++/*319922*/ OPC_MoveParent, ++/*319923*/ OPC_MoveChild, 11, ++/*319925*/ OPC_CheckInteger, 1, ++/*319927*/ OPC_CheckType, MVT::i32, ++/*319929*/ OPC_MoveParent, ++/*319930*/ OPC_MoveChild, 12, ++/*319932*/ OPC_CheckInteger, 1, ++/*319934*/ OPC_CheckType, MVT::i32, ++/*319936*/ OPC_MoveParent, ++/*319937*/ OPC_MoveChild, 13, ++/*319939*/ OPC_CheckInteger, 1, ++/*319941*/ OPC_CheckType, MVT::i32, ++/*319943*/ OPC_MoveParent, ++/*319944*/ OPC_MoveChild, 14, ++/*319946*/ OPC_CheckInteger, 1, ++/*319948*/ OPC_CheckType, MVT::i32, ++/*319950*/ OPC_MoveParent, ++/*319951*/ OPC_MoveChild, 15, ++/*319953*/ OPC_CheckInteger, 1, ++/*319955*/ OPC_CheckType, MVT::i32, ++/*319957*/ OPC_MoveParent, ++/*319958*/ OPC_MoveChild, 16, ++/*319960*/ OPC_CheckInteger, 1, ++/*319962*/ OPC_CheckType, MVT::i32, ++/*319964*/ OPC_MoveParent, ++/*319965*/ OPC_MoveChild, 17, ++/*319967*/ OPC_CheckInteger, 1, ++/*319969*/ OPC_CheckType, MVT::i32, ++/*319971*/ OPC_MoveParent, ++/*319972*/ OPC_MoveChild, 18, ++/*319974*/ OPC_CheckInteger, 1, ++/*319976*/ OPC_CheckType, MVT::i32, ++/*319978*/ OPC_MoveParent, ++/*319979*/ OPC_MoveChild, 19, ++/*319981*/ OPC_CheckInteger, 1, ++/*319983*/ OPC_CheckType, MVT::i32, ++/*319985*/ OPC_MoveParent, ++/*319986*/ OPC_MoveChild, 20, ++/*319988*/ OPC_CheckInteger, 1, ++/*319990*/ OPC_CheckType, MVT::i32, ++/*319992*/ OPC_MoveParent, ++/*319993*/ OPC_MoveChild, 21, ++/*319995*/ OPC_CheckInteger, 1, ++/*319997*/ OPC_CheckType, MVT::i32, ++/*319999*/ OPC_MoveParent, ++/*320000*/ OPC_MoveChild, 22, ++/*320002*/ OPC_CheckInteger, 1, ++/*320004*/ OPC_CheckType, MVT::i32, ++/*320006*/ OPC_MoveParent, ++/*320007*/ OPC_MoveChild, 23, ++/*320009*/ OPC_CheckInteger, 1, ++/*320011*/ OPC_CheckType, MVT::i32, ++/*320013*/ OPC_MoveParent, ++/*320014*/ OPC_MoveChild, 24, ++/*320016*/ OPC_CheckInteger, 1, ++/*320018*/ OPC_CheckType, MVT::i32, ++/*320020*/ OPC_MoveParent, ++/*320021*/ OPC_MoveChild, 25, ++/*320023*/ OPC_CheckInteger, 1, ++/*320025*/ OPC_CheckType, MVT::i32, ++/*320027*/ OPC_MoveParent, ++/*320028*/ OPC_MoveChild, 26, ++/*320030*/ OPC_CheckInteger, 1, ++/*320032*/ OPC_CheckType, MVT::i32, ++/*320034*/ OPC_MoveParent, ++/*320035*/ OPC_MoveChild, 27, ++/*320037*/ OPC_CheckInteger, 1, ++/*320039*/ OPC_CheckType, MVT::i32, ++/*320041*/ OPC_MoveParent, ++/*320042*/ OPC_MoveChild, 28, ++/*320044*/ OPC_CheckInteger, 1, ++/*320046*/ OPC_CheckType, MVT::i32, ++/*320048*/ OPC_MoveParent, ++/*320049*/ OPC_MoveChild, 29, ++/*320051*/ OPC_CheckInteger, 1, ++/*320053*/ OPC_CheckType, MVT::i32, ++/*320055*/ OPC_MoveParent, ++/*320056*/ OPC_MoveChild, 30, ++/*320058*/ OPC_CheckInteger, 1, ++/*320060*/ OPC_CheckType, MVT::i32, ++/*320062*/ OPC_MoveParent, ++/*320063*/ OPC_MoveChild, 31, ++/*320065*/ OPC_CheckInteger, 1, ++/*320067*/ OPC_CheckType, MVT::i32, ++/*320069*/ OPC_MoveParent, ++/*320070*/ OPC_MoveParent, ++/*320071*/ OPC_MoveParent, ++/*320072*/ OPC_CheckChild1Same, 0, ++/*320074*/ OPC_MoveParent, ++/*320075*/ OPC_MoveParent, ++/*320076*/ OPC_MoveChild1, ++/*320077*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*320080*/ OPC_CheckChild0Integer, 1, ++/*320082*/ OPC_CheckChild0Type, MVT::i32, ++/*320084*/ OPC_CheckChild1Integer, 1, ++/*320086*/ OPC_CheckChild1Type, MVT::i32, ++/*320088*/ OPC_CheckChild2Integer, 1, ++/*320090*/ OPC_CheckChild2Type, MVT::i32, ++/*320092*/ OPC_CheckChild3Integer, 1, ++/*320094*/ OPC_CheckChild3Type, MVT::i32, ++/*320096*/ OPC_CheckChild4Integer, 1, ++/*320098*/ OPC_CheckChild4Type, MVT::i32, ++/*320100*/ OPC_MoveChild5, ++/*320101*/ OPC_CheckInteger, 1, ++/*320103*/ OPC_CheckType, MVT::i32, ++/*320105*/ OPC_MoveParent, ++/*320106*/ OPC_MoveChild6, ++/*320107*/ OPC_CheckInteger, 1, ++/*320109*/ OPC_CheckType, MVT::i32, ++/*320111*/ OPC_MoveParent, ++/*320112*/ OPC_MoveChild7, ++/*320113*/ OPC_CheckInteger, 1, ++/*320115*/ OPC_CheckType, MVT::i32, ++/*320117*/ OPC_MoveParent, ++/*320118*/ OPC_MoveChild, 8, ++/*320120*/ OPC_CheckInteger, 1, ++/*320122*/ OPC_CheckType, MVT::i32, ++/*320124*/ OPC_MoveParent, ++/*320125*/ OPC_MoveChild, 9, ++/*320127*/ OPC_CheckInteger, 1, ++/*320129*/ OPC_CheckType, MVT::i32, ++/*320131*/ OPC_MoveParent, ++/*320132*/ OPC_MoveChild, 10, ++/*320134*/ OPC_CheckInteger, 1, ++/*320136*/ OPC_CheckType, MVT::i32, ++/*320138*/ OPC_MoveParent, ++/*320139*/ OPC_MoveChild, 11, ++/*320141*/ OPC_CheckInteger, 1, ++/*320143*/ OPC_CheckType, MVT::i32, ++/*320145*/ OPC_MoveParent, ++/*320146*/ OPC_MoveChild, 12, ++/*320148*/ OPC_CheckInteger, 1, ++/*320150*/ OPC_CheckType, MVT::i32, ++/*320152*/ OPC_MoveParent, ++/*320153*/ OPC_MoveChild, 13, ++/*320155*/ OPC_CheckInteger, 1, ++/*320157*/ OPC_CheckType, MVT::i32, ++/*320159*/ OPC_MoveParent, ++/*320160*/ OPC_MoveChild, 14, ++/*320162*/ OPC_CheckInteger, 1, ++/*320164*/ OPC_CheckType, MVT::i32, ++/*320166*/ OPC_MoveParent, ++/*320167*/ OPC_MoveChild, 15, ++/*320169*/ OPC_CheckInteger, 1, ++/*320171*/ OPC_CheckType, MVT::i32, ++/*320173*/ OPC_MoveParent, ++/*320174*/ OPC_MoveChild, 16, ++/*320176*/ OPC_CheckInteger, 1, ++/*320178*/ OPC_CheckType, MVT::i32, ++/*320180*/ OPC_MoveParent, ++/*320181*/ OPC_MoveChild, 17, ++/*320183*/ OPC_CheckInteger, 1, ++/*320185*/ OPC_CheckType, MVT::i32, ++/*320187*/ OPC_MoveParent, ++/*320188*/ OPC_MoveChild, 18, ++/*320190*/ OPC_CheckInteger, 1, ++/*320192*/ OPC_CheckType, MVT::i32, ++/*320194*/ OPC_MoveParent, ++/*320195*/ OPC_MoveChild, 19, ++/*320197*/ OPC_CheckInteger, 1, ++/*320199*/ OPC_CheckType, MVT::i32, ++/*320201*/ OPC_MoveParent, ++/*320202*/ OPC_MoveChild, 20, ++/*320204*/ OPC_CheckInteger, 1, ++/*320206*/ OPC_CheckType, MVT::i32, ++/*320208*/ OPC_MoveParent, ++/*320209*/ OPC_MoveChild, 21, ++/*320211*/ OPC_CheckInteger, 1, ++/*320213*/ OPC_CheckType, MVT::i32, ++/*320215*/ OPC_MoveParent, ++/*320216*/ OPC_MoveChild, 22, ++/*320218*/ OPC_CheckInteger, 1, ++/*320220*/ OPC_CheckType, MVT::i32, ++/*320222*/ OPC_MoveParent, ++/*320223*/ OPC_MoveChild, 23, ++/*320225*/ OPC_CheckInteger, 1, ++/*320227*/ OPC_CheckType, MVT::i32, ++/*320229*/ OPC_MoveParent, ++/*320230*/ OPC_MoveChild, 24, ++/*320232*/ OPC_CheckInteger, 1, ++/*320234*/ OPC_CheckType, MVT::i32, ++/*320236*/ OPC_MoveParent, ++/*320237*/ OPC_MoveChild, 25, ++/*320239*/ OPC_CheckInteger, 1, ++/*320241*/ OPC_CheckType, MVT::i32, ++/*320243*/ OPC_MoveParent, ++/*320244*/ OPC_MoveChild, 26, ++/*320246*/ OPC_CheckInteger, 1, ++/*320248*/ OPC_CheckType, MVT::i32, ++/*320250*/ OPC_MoveParent, ++/*320251*/ OPC_MoveChild, 27, ++/*320253*/ OPC_CheckInteger, 1, ++/*320255*/ OPC_CheckType, MVT::i32, ++/*320257*/ OPC_MoveParent, ++/*320258*/ OPC_MoveChild, 28, ++/*320260*/ OPC_CheckInteger, 1, ++/*320262*/ OPC_CheckType, MVT::i32, ++/*320264*/ OPC_MoveParent, ++/*320265*/ OPC_MoveChild, 29, ++/*320267*/ OPC_CheckInteger, 1, ++/*320269*/ OPC_CheckType, MVT::i32, ++/*320271*/ OPC_MoveParent, ++/*320272*/ OPC_MoveChild, 30, ++/*320274*/ OPC_CheckInteger, 1, ++/*320276*/ OPC_CheckType, MVT::i32, ++/*320278*/ OPC_MoveParent, ++/*320279*/ OPC_MoveChild, 31, ++/*320281*/ OPC_CheckInteger, 1, ++/*320283*/ OPC_CheckType, MVT::i32, ++/*320285*/ OPC_MoveParent, ++/*320286*/ OPC_CheckType, MVT::v32i8, ++/*320288*/ OPC_MoveParent, ++/*320289*/ OPC_CheckType, MVT::v32i8, ++/*320291*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*320293*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*320301*/ /*Scope*/ 59|128,3/*443*/, /*->320746*/ ++/*320303*/ OPC_CheckChild0Same, 0, ++/*320305*/ OPC_CheckChild1Same, 1, ++/*320307*/ OPC_MoveParent, ++/*320308*/ OPC_MoveChild1, ++/*320309*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*320312*/ OPC_CheckChild0Integer, 1, ++/*320314*/ OPC_CheckChild0Type, MVT::i32, ++/*320316*/ OPC_CheckChild1Integer, 1, ++/*320318*/ OPC_CheckChild1Type, MVT::i32, ++/*320320*/ OPC_CheckChild2Integer, 1, ++/*320322*/ OPC_CheckChild2Type, MVT::i32, ++/*320324*/ OPC_CheckChild3Integer, 1, ++/*320326*/ OPC_CheckChild3Type, MVT::i32, ++/*320328*/ OPC_CheckChild4Integer, 1, ++/*320330*/ OPC_CheckChild4Type, MVT::i32, ++/*320332*/ OPC_MoveChild5, ++/*320333*/ OPC_CheckInteger, 1, ++/*320335*/ OPC_CheckType, MVT::i32, ++/*320337*/ OPC_MoveParent, ++/*320338*/ OPC_MoveChild6, ++/*320339*/ OPC_CheckInteger, 1, ++/*320341*/ OPC_CheckType, MVT::i32, ++/*320343*/ OPC_MoveParent, ++/*320344*/ OPC_MoveChild7, ++/*320345*/ OPC_CheckInteger, 1, ++/*320347*/ OPC_CheckType, MVT::i32, ++/*320349*/ OPC_MoveParent, ++/*320350*/ OPC_MoveChild, 8, ++/*320352*/ OPC_CheckInteger, 1, ++/*320354*/ OPC_CheckType, MVT::i32, ++/*320356*/ OPC_MoveParent, ++/*320357*/ OPC_MoveChild, 9, ++/*320359*/ OPC_CheckInteger, 1, ++/*320361*/ OPC_CheckType, MVT::i32, ++/*320363*/ OPC_MoveParent, ++/*320364*/ OPC_MoveChild, 10, ++/*320366*/ OPC_CheckInteger, 1, ++/*320368*/ OPC_CheckType, MVT::i32, ++/*320370*/ OPC_MoveParent, ++/*320371*/ OPC_MoveChild, 11, ++/*320373*/ OPC_CheckInteger, 1, ++/*320375*/ OPC_CheckType, MVT::i32, ++/*320377*/ OPC_MoveParent, ++/*320378*/ OPC_MoveChild, 12, ++/*320380*/ OPC_CheckInteger, 1, ++/*320382*/ OPC_CheckType, MVT::i32, ++/*320384*/ OPC_MoveParent, ++/*320385*/ OPC_MoveChild, 13, ++/*320387*/ OPC_CheckInteger, 1, ++/*320389*/ OPC_CheckType, MVT::i32, ++/*320391*/ OPC_MoveParent, ++/*320392*/ OPC_MoveChild, 14, ++/*320394*/ OPC_CheckInteger, 1, ++/*320396*/ OPC_CheckType, MVT::i32, ++/*320398*/ OPC_MoveParent, ++/*320399*/ OPC_MoveChild, 15, ++/*320401*/ OPC_CheckInteger, 1, ++/*320403*/ OPC_CheckType, MVT::i32, ++/*320405*/ OPC_MoveParent, ++/*320406*/ OPC_MoveChild, 16, ++/*320408*/ OPC_CheckInteger, 1, ++/*320410*/ OPC_CheckType, MVT::i32, ++/*320412*/ OPC_MoveParent, ++/*320413*/ OPC_MoveChild, 17, ++/*320415*/ OPC_CheckInteger, 1, ++/*320417*/ OPC_CheckType, MVT::i32, ++/*320419*/ OPC_MoveParent, ++/*320420*/ OPC_MoveChild, 18, ++/*320422*/ OPC_CheckInteger, 1, ++/*320424*/ OPC_CheckType, MVT::i32, ++/*320426*/ OPC_MoveParent, ++/*320427*/ OPC_MoveChild, 19, ++/*320429*/ OPC_CheckInteger, 1, ++/*320431*/ OPC_CheckType, MVT::i32, ++/*320433*/ OPC_MoveParent, ++/*320434*/ OPC_MoveChild, 20, ++/*320436*/ OPC_CheckInteger, 1, ++/*320438*/ OPC_CheckType, MVT::i32, ++/*320440*/ OPC_MoveParent, ++/*320441*/ OPC_MoveChild, 21, ++/*320443*/ OPC_CheckInteger, 1, ++/*320445*/ OPC_CheckType, MVT::i32, ++/*320447*/ OPC_MoveParent, ++/*320448*/ OPC_MoveChild, 22, ++/*320450*/ OPC_CheckInteger, 1, ++/*320452*/ OPC_CheckType, MVT::i32, ++/*320454*/ OPC_MoveParent, ++/*320455*/ OPC_MoveChild, 23, ++/*320457*/ OPC_CheckInteger, 1, ++/*320459*/ OPC_CheckType, MVT::i32, ++/*320461*/ OPC_MoveParent, ++/*320462*/ OPC_MoveChild, 24, ++/*320464*/ OPC_CheckInteger, 1, ++/*320466*/ OPC_CheckType, MVT::i32, ++/*320468*/ OPC_MoveParent, ++/*320469*/ OPC_MoveChild, 25, ++/*320471*/ OPC_CheckInteger, 1, ++/*320473*/ OPC_CheckType, MVT::i32, ++/*320475*/ OPC_MoveParent, ++/*320476*/ OPC_MoveChild, 26, ++/*320478*/ OPC_CheckInteger, 1, ++/*320480*/ OPC_CheckType, MVT::i32, ++/*320482*/ OPC_MoveParent, ++/*320483*/ OPC_MoveChild, 27, ++/*320485*/ OPC_CheckInteger, 1, ++/*320487*/ OPC_CheckType, MVT::i32, ++/*320489*/ OPC_MoveParent, ++/*320490*/ OPC_MoveChild, 28, ++/*320492*/ OPC_CheckInteger, 1, ++/*320494*/ OPC_CheckType, MVT::i32, ++/*320496*/ OPC_MoveParent, ++/*320497*/ OPC_MoveChild, 29, ++/*320499*/ OPC_CheckInteger, 1, ++/*320501*/ OPC_CheckType, MVT::i32, ++/*320503*/ OPC_MoveParent, ++/*320504*/ OPC_MoveChild, 30, ++/*320506*/ OPC_CheckInteger, 1, ++/*320508*/ OPC_CheckType, MVT::i32, ++/*320510*/ OPC_MoveParent, ++/*320511*/ OPC_MoveChild, 31, ++/*320513*/ OPC_CheckInteger, 1, ++/*320515*/ OPC_CheckType, MVT::i32, ++/*320517*/ OPC_MoveParent, ++/*320518*/ OPC_MoveParent, ++/*320519*/ OPC_MoveParent, ++/*320520*/ OPC_MoveParent, ++/*320521*/ OPC_MoveChild1, ++/*320522*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*320525*/ OPC_CheckChild0Integer, 1, ++/*320527*/ OPC_CheckChild0Type, MVT::i32, ++/*320529*/ OPC_CheckChild1Integer, 1, ++/*320531*/ OPC_CheckChild1Type, MVT::i32, ++/*320533*/ OPC_CheckChild2Integer, 1, ++/*320535*/ OPC_CheckChild2Type, MVT::i32, ++/*320537*/ OPC_CheckChild3Integer, 1, ++/*320539*/ OPC_CheckChild3Type, MVT::i32, ++/*320541*/ OPC_CheckChild4Integer, 1, ++/*320543*/ OPC_CheckChild4Type, MVT::i32, ++/*320545*/ OPC_MoveChild5, ++/*320546*/ OPC_CheckInteger, 1, ++/*320548*/ OPC_CheckType, MVT::i32, ++/*320550*/ OPC_MoveParent, ++/*320551*/ OPC_MoveChild6, ++/*320552*/ OPC_CheckInteger, 1, ++/*320554*/ OPC_CheckType, MVT::i32, ++/*320556*/ OPC_MoveParent, ++/*320557*/ OPC_MoveChild7, ++/*320558*/ OPC_CheckInteger, 1, ++/*320560*/ OPC_CheckType, MVT::i32, ++/*320562*/ OPC_MoveParent, ++/*320563*/ OPC_MoveChild, 8, ++/*320565*/ OPC_CheckInteger, 1, ++/*320567*/ OPC_CheckType, MVT::i32, ++/*320569*/ OPC_MoveParent, ++/*320570*/ OPC_MoveChild, 9, ++/*320572*/ OPC_CheckInteger, 1, ++/*320574*/ OPC_CheckType, MVT::i32, ++/*320576*/ OPC_MoveParent, ++/*320577*/ OPC_MoveChild, 10, ++/*320579*/ OPC_CheckInteger, 1, ++/*320581*/ OPC_CheckType, MVT::i32, ++/*320583*/ OPC_MoveParent, ++/*320584*/ OPC_MoveChild, 11, ++/*320586*/ OPC_CheckInteger, 1, ++/*320588*/ OPC_CheckType, MVT::i32, ++/*320590*/ OPC_MoveParent, ++/*320591*/ OPC_MoveChild, 12, ++/*320593*/ OPC_CheckInteger, 1, ++/*320595*/ OPC_CheckType, MVT::i32, ++/*320597*/ OPC_MoveParent, ++/*320598*/ OPC_MoveChild, 13, ++/*320600*/ OPC_CheckInteger, 1, ++/*320602*/ OPC_CheckType, MVT::i32, ++/*320604*/ OPC_MoveParent, ++/*320605*/ OPC_MoveChild, 14, ++/*320607*/ OPC_CheckInteger, 1, ++/*320609*/ OPC_CheckType, MVT::i32, ++/*320611*/ OPC_MoveParent, ++/*320612*/ OPC_MoveChild, 15, ++/*320614*/ OPC_CheckInteger, 1, ++/*320616*/ OPC_CheckType, MVT::i32, ++/*320618*/ OPC_MoveParent, ++/*320619*/ OPC_MoveChild, 16, ++/*320621*/ OPC_CheckInteger, 1, ++/*320623*/ OPC_CheckType, MVT::i32, ++/*320625*/ OPC_MoveParent, ++/*320626*/ OPC_MoveChild, 17, ++/*320628*/ OPC_CheckInteger, 1, ++/*320630*/ OPC_CheckType, MVT::i32, ++/*320632*/ OPC_MoveParent, ++/*320633*/ OPC_MoveChild, 18, ++/*320635*/ OPC_CheckInteger, 1, ++/*320637*/ OPC_CheckType, MVT::i32, ++/*320639*/ OPC_MoveParent, ++/*320640*/ OPC_MoveChild, 19, ++/*320642*/ OPC_CheckInteger, 1, ++/*320644*/ OPC_CheckType, MVT::i32, ++/*320646*/ OPC_MoveParent, ++/*320647*/ OPC_MoveChild, 20, ++/*320649*/ OPC_CheckInteger, 1, ++/*320651*/ OPC_CheckType, MVT::i32, ++/*320653*/ OPC_MoveParent, ++/*320654*/ OPC_MoveChild, 21, ++/*320656*/ OPC_CheckInteger, 1, ++/*320658*/ OPC_CheckType, MVT::i32, ++/*320660*/ OPC_MoveParent, ++/*320661*/ OPC_MoveChild, 22, ++/*320663*/ OPC_CheckInteger, 1, ++/*320665*/ OPC_CheckType, MVT::i32, ++/*320667*/ OPC_MoveParent, ++/*320668*/ OPC_MoveChild, 23, ++/*320670*/ OPC_CheckInteger, 1, ++/*320672*/ OPC_CheckType, MVT::i32, ++/*320674*/ OPC_MoveParent, ++/*320675*/ OPC_MoveChild, 24, ++/*320677*/ OPC_CheckInteger, 1, ++/*320679*/ OPC_CheckType, MVT::i32, ++/*320681*/ OPC_MoveParent, ++/*320682*/ OPC_MoveChild, 25, ++/*320684*/ OPC_CheckInteger, 1, ++/*320686*/ OPC_CheckType, MVT::i32, ++/*320688*/ OPC_MoveParent, ++/*320689*/ OPC_MoveChild, 26, ++/*320691*/ OPC_CheckInteger, 1, ++/*320693*/ OPC_CheckType, MVT::i32, ++/*320695*/ OPC_MoveParent, ++/*320696*/ OPC_MoveChild, 27, ++/*320698*/ OPC_CheckInteger, 1, ++/*320700*/ OPC_CheckType, MVT::i32, ++/*320702*/ OPC_MoveParent, ++/*320703*/ OPC_MoveChild, 28, ++/*320705*/ OPC_CheckInteger, 1, ++/*320707*/ OPC_CheckType, MVT::i32, ++/*320709*/ OPC_MoveParent, ++/*320710*/ OPC_MoveChild, 29, ++/*320712*/ OPC_CheckInteger, 1, ++/*320714*/ OPC_CheckType, MVT::i32, ++/*320716*/ OPC_MoveParent, ++/*320717*/ OPC_MoveChild, 30, ++/*320719*/ OPC_CheckInteger, 1, ++/*320721*/ OPC_CheckType, MVT::i32, ++/*320723*/ OPC_MoveParent, ++/*320724*/ OPC_MoveChild, 31, ++/*320726*/ OPC_CheckInteger, 1, ++/*320728*/ OPC_CheckType, MVT::i32, ++/*320730*/ OPC_MoveParent, ++/*320731*/ OPC_CheckType, MVT::v32i8, ++/*320733*/ OPC_MoveParent, ++/*320734*/ OPC_CheckType, MVT::v32i8, ++/*320736*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*320738*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*320746*/ /*Scope*/ 59|128,3/*443*/, /*->321191*/ ++/*320748*/ OPC_CheckChild0Same, 1, ++/*320750*/ OPC_CheckChild1Same, 0, ++/*320752*/ OPC_MoveParent, ++/*320753*/ OPC_MoveChild1, ++/*320754*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*320757*/ OPC_CheckChild0Integer, 1, ++/*320759*/ OPC_CheckChild0Type, MVT::i32, ++/*320761*/ OPC_CheckChild1Integer, 1, ++/*320763*/ OPC_CheckChild1Type, MVT::i32, ++/*320765*/ OPC_CheckChild2Integer, 1, ++/*320767*/ OPC_CheckChild2Type, MVT::i32, ++/*320769*/ OPC_CheckChild3Integer, 1, ++/*320771*/ OPC_CheckChild3Type, MVT::i32, ++/*320773*/ OPC_CheckChild4Integer, 1, ++/*320775*/ OPC_CheckChild4Type, MVT::i32, ++/*320777*/ OPC_MoveChild5, ++/*320778*/ OPC_CheckInteger, 1, ++/*320780*/ OPC_CheckType, MVT::i32, ++/*320782*/ OPC_MoveParent, ++/*320783*/ OPC_MoveChild6, ++/*320784*/ OPC_CheckInteger, 1, ++/*320786*/ OPC_CheckType, MVT::i32, ++/*320788*/ OPC_MoveParent, ++/*320789*/ OPC_MoveChild7, ++/*320790*/ OPC_CheckInteger, 1, ++/*320792*/ OPC_CheckType, MVT::i32, ++/*320794*/ OPC_MoveParent, ++/*320795*/ OPC_MoveChild, 8, ++/*320797*/ OPC_CheckInteger, 1, ++/*320799*/ OPC_CheckType, MVT::i32, ++/*320801*/ OPC_MoveParent, ++/*320802*/ OPC_MoveChild, 9, ++/*320804*/ OPC_CheckInteger, 1, ++/*320806*/ OPC_CheckType, MVT::i32, ++/*320808*/ OPC_MoveParent, ++/*320809*/ OPC_MoveChild, 10, ++/*320811*/ OPC_CheckInteger, 1, ++/*320813*/ OPC_CheckType, MVT::i32, ++/*320815*/ OPC_MoveParent, ++/*320816*/ OPC_MoveChild, 11, ++/*320818*/ OPC_CheckInteger, 1, ++/*320820*/ OPC_CheckType, MVT::i32, ++/*320822*/ OPC_MoveParent, ++/*320823*/ OPC_MoveChild, 12, ++/*320825*/ OPC_CheckInteger, 1, ++/*320827*/ OPC_CheckType, MVT::i32, ++/*320829*/ OPC_MoveParent, ++/*320830*/ OPC_MoveChild, 13, ++/*320832*/ OPC_CheckInteger, 1, ++/*320834*/ OPC_CheckType, MVT::i32, ++/*320836*/ OPC_MoveParent, ++/*320837*/ OPC_MoveChild, 14, ++/*320839*/ OPC_CheckInteger, 1, ++/*320841*/ OPC_CheckType, MVT::i32, ++/*320843*/ OPC_MoveParent, ++/*320844*/ OPC_MoveChild, 15, ++/*320846*/ OPC_CheckInteger, 1, ++/*320848*/ OPC_CheckType, MVT::i32, ++/*320850*/ OPC_MoveParent, ++/*320851*/ OPC_MoveChild, 16, ++/*320853*/ OPC_CheckInteger, 1, ++/*320855*/ OPC_CheckType, MVT::i32, ++/*320857*/ OPC_MoveParent, ++/*320858*/ OPC_MoveChild, 17, ++/*320860*/ OPC_CheckInteger, 1, ++/*320862*/ OPC_CheckType, MVT::i32, ++/*320864*/ OPC_MoveParent, ++/*320865*/ OPC_MoveChild, 18, ++/*320867*/ OPC_CheckInteger, 1, ++/*320869*/ OPC_CheckType, MVT::i32, ++/*320871*/ OPC_MoveParent, ++/*320872*/ OPC_MoveChild, 19, ++/*320874*/ OPC_CheckInteger, 1, ++/*320876*/ OPC_CheckType, MVT::i32, ++/*320878*/ OPC_MoveParent, ++/*320879*/ OPC_MoveChild, 20, ++/*320881*/ OPC_CheckInteger, 1, ++/*320883*/ OPC_CheckType, MVT::i32, ++/*320885*/ OPC_MoveParent, ++/*320886*/ OPC_MoveChild, 21, ++/*320888*/ OPC_CheckInteger, 1, ++/*320890*/ OPC_CheckType, MVT::i32, ++/*320892*/ OPC_MoveParent, ++/*320893*/ OPC_MoveChild, 22, ++/*320895*/ OPC_CheckInteger, 1, ++/*320897*/ OPC_CheckType, MVT::i32, ++/*320899*/ OPC_MoveParent, ++/*320900*/ OPC_MoveChild, 23, ++/*320902*/ OPC_CheckInteger, 1, ++/*320904*/ OPC_CheckType, MVT::i32, ++/*320906*/ OPC_MoveParent, ++/*320907*/ OPC_MoveChild, 24, ++/*320909*/ OPC_CheckInteger, 1, ++/*320911*/ OPC_CheckType, MVT::i32, ++/*320913*/ OPC_MoveParent, ++/*320914*/ OPC_MoveChild, 25, ++/*320916*/ OPC_CheckInteger, 1, ++/*320918*/ OPC_CheckType, MVT::i32, ++/*320920*/ OPC_MoveParent, ++/*320921*/ OPC_MoveChild, 26, ++/*320923*/ OPC_CheckInteger, 1, ++/*320925*/ OPC_CheckType, MVT::i32, ++/*320927*/ OPC_MoveParent, ++/*320928*/ OPC_MoveChild, 27, ++/*320930*/ OPC_CheckInteger, 1, ++/*320932*/ OPC_CheckType, MVT::i32, ++/*320934*/ OPC_MoveParent, ++/*320935*/ OPC_MoveChild, 28, ++/*320937*/ OPC_CheckInteger, 1, ++/*320939*/ OPC_CheckType, MVT::i32, ++/*320941*/ OPC_MoveParent, ++/*320942*/ OPC_MoveChild, 29, ++/*320944*/ OPC_CheckInteger, 1, ++/*320946*/ OPC_CheckType, MVT::i32, ++/*320948*/ OPC_MoveParent, ++/*320949*/ OPC_MoveChild, 30, ++/*320951*/ OPC_CheckInteger, 1, ++/*320953*/ OPC_CheckType, MVT::i32, ++/*320955*/ OPC_MoveParent, ++/*320956*/ OPC_MoveChild, 31, ++/*320958*/ OPC_CheckInteger, 1, ++/*320960*/ OPC_CheckType, MVT::i32, ++/*320962*/ OPC_MoveParent, ++/*320963*/ OPC_MoveParent, ++/*320964*/ OPC_MoveParent, ++/*320965*/ OPC_MoveParent, ++/*320966*/ OPC_MoveChild1, ++/*320967*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*320970*/ OPC_CheckChild0Integer, 1, ++/*320972*/ OPC_CheckChild0Type, MVT::i32, ++/*320974*/ OPC_CheckChild1Integer, 1, ++/*320976*/ OPC_CheckChild1Type, MVT::i32, ++/*320978*/ OPC_CheckChild2Integer, 1, ++/*320980*/ OPC_CheckChild2Type, MVT::i32, ++/*320982*/ OPC_CheckChild3Integer, 1, ++/*320984*/ OPC_CheckChild3Type, MVT::i32, ++/*320986*/ OPC_CheckChild4Integer, 1, ++/*320988*/ OPC_CheckChild4Type, MVT::i32, ++/*320990*/ OPC_MoveChild5, ++/*320991*/ OPC_CheckInteger, 1, ++/*320993*/ OPC_CheckType, MVT::i32, ++/*320995*/ OPC_MoveParent, ++/*320996*/ OPC_MoveChild6, ++/*320997*/ OPC_CheckInteger, 1, ++/*320999*/ OPC_CheckType, MVT::i32, ++/*321001*/ OPC_MoveParent, ++/*321002*/ OPC_MoveChild7, ++/*321003*/ OPC_CheckInteger, 1, ++/*321005*/ OPC_CheckType, MVT::i32, ++/*321007*/ OPC_MoveParent, ++/*321008*/ OPC_MoveChild, 8, ++/*321010*/ OPC_CheckInteger, 1, ++/*321012*/ OPC_CheckType, MVT::i32, ++/*321014*/ OPC_MoveParent, ++/*321015*/ OPC_MoveChild, 9, ++/*321017*/ OPC_CheckInteger, 1, ++/*321019*/ OPC_CheckType, MVT::i32, ++/*321021*/ OPC_MoveParent, ++/*321022*/ OPC_MoveChild, 10, ++/*321024*/ OPC_CheckInteger, 1, ++/*321026*/ OPC_CheckType, MVT::i32, ++/*321028*/ OPC_MoveParent, ++/*321029*/ OPC_MoveChild, 11, ++/*321031*/ OPC_CheckInteger, 1, ++/*321033*/ OPC_CheckType, MVT::i32, ++/*321035*/ OPC_MoveParent, ++/*321036*/ OPC_MoveChild, 12, ++/*321038*/ OPC_CheckInteger, 1, ++/*321040*/ OPC_CheckType, MVT::i32, ++/*321042*/ OPC_MoveParent, ++/*321043*/ OPC_MoveChild, 13, ++/*321045*/ OPC_CheckInteger, 1, ++/*321047*/ OPC_CheckType, MVT::i32, ++/*321049*/ OPC_MoveParent, ++/*321050*/ OPC_MoveChild, 14, ++/*321052*/ OPC_CheckInteger, 1, ++/*321054*/ OPC_CheckType, MVT::i32, ++/*321056*/ OPC_MoveParent, ++/*321057*/ OPC_MoveChild, 15, ++/*321059*/ OPC_CheckInteger, 1, ++/*321061*/ OPC_CheckType, MVT::i32, ++/*321063*/ OPC_MoveParent, ++/*321064*/ OPC_MoveChild, 16, ++/*321066*/ OPC_CheckInteger, 1, ++/*321068*/ OPC_CheckType, MVT::i32, ++/*321070*/ OPC_MoveParent, ++/*321071*/ OPC_MoveChild, 17, ++/*321073*/ OPC_CheckInteger, 1, ++/*321075*/ OPC_CheckType, MVT::i32, ++/*321077*/ OPC_MoveParent, ++/*321078*/ OPC_MoveChild, 18, ++/*321080*/ OPC_CheckInteger, 1, ++/*321082*/ OPC_CheckType, MVT::i32, ++/*321084*/ OPC_MoveParent, ++/*321085*/ OPC_MoveChild, 19, ++/*321087*/ OPC_CheckInteger, 1, ++/*321089*/ OPC_CheckType, MVT::i32, ++/*321091*/ OPC_MoveParent, ++/*321092*/ OPC_MoveChild, 20, ++/*321094*/ OPC_CheckInteger, 1, ++/*321096*/ OPC_CheckType, MVT::i32, ++/*321098*/ OPC_MoveParent, ++/*321099*/ OPC_MoveChild, 21, ++/*321101*/ OPC_CheckInteger, 1, ++/*321103*/ OPC_CheckType, MVT::i32, ++/*321105*/ OPC_MoveParent, ++/*321106*/ OPC_MoveChild, 22, ++/*321108*/ OPC_CheckInteger, 1, ++/*321110*/ OPC_CheckType, MVT::i32, ++/*321112*/ OPC_MoveParent, ++/*321113*/ OPC_MoveChild, 23, ++/*321115*/ OPC_CheckInteger, 1, ++/*321117*/ OPC_CheckType, MVT::i32, ++/*321119*/ OPC_MoveParent, ++/*321120*/ OPC_MoveChild, 24, ++/*321122*/ OPC_CheckInteger, 1, ++/*321124*/ OPC_CheckType, MVT::i32, ++/*321126*/ OPC_MoveParent, ++/*321127*/ OPC_MoveChild, 25, ++/*321129*/ OPC_CheckInteger, 1, ++/*321131*/ OPC_CheckType, MVT::i32, ++/*321133*/ OPC_MoveParent, ++/*321134*/ OPC_MoveChild, 26, ++/*321136*/ OPC_CheckInteger, 1, ++/*321138*/ OPC_CheckType, MVT::i32, ++/*321140*/ OPC_MoveParent, ++/*321141*/ OPC_MoveChild, 27, ++/*321143*/ OPC_CheckInteger, 1, ++/*321145*/ OPC_CheckType, MVT::i32, ++/*321147*/ OPC_MoveParent, ++/*321148*/ OPC_MoveChild, 28, ++/*321150*/ OPC_CheckInteger, 1, ++/*321152*/ OPC_CheckType, MVT::i32, ++/*321154*/ OPC_MoveParent, ++/*321155*/ OPC_MoveChild, 29, ++/*321157*/ OPC_CheckInteger, 1, ++/*321159*/ OPC_CheckType, MVT::i32, ++/*321161*/ OPC_MoveParent, ++/*321162*/ OPC_MoveChild, 30, ++/*321164*/ OPC_CheckInteger, 1, ++/*321166*/ OPC_CheckType, MVT::i32, ++/*321168*/ OPC_MoveParent, ++/*321169*/ OPC_MoveChild, 31, ++/*321171*/ OPC_CheckInteger, 1, ++/*321173*/ OPC_CheckType, MVT::i32, ++/*321175*/ OPC_MoveParent, ++/*321176*/ OPC_CheckType, MVT::v32i8, ++/*321178*/ OPC_MoveParent, ++/*321179*/ OPC_CheckType, MVT::v32i8, ++/*321181*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*321183*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*321191*/ 0, /*End of Scope*/ ++/*321192*/ /*Scope*/ 126|128,6/*894*/, /*->322088*/ ++/*321194*/ OPC_CheckChild0Same, 1, ++/*321196*/ OPC_MoveChild1, ++/*321197*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*321200*/ OPC_Scope, 57|128,3/*441*/, /*->321644*/ // 2 children in Scope ++/*321203*/ OPC_MoveChild0, ++/*321204*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*321207*/ OPC_CheckChild0Integer, 1, ++/*321209*/ OPC_CheckChild0Type, MVT::i32, ++/*321211*/ OPC_CheckChild1Integer, 1, ++/*321213*/ OPC_CheckChild1Type, MVT::i32, ++/*321215*/ OPC_CheckChild2Integer, 1, ++/*321217*/ OPC_CheckChild2Type, MVT::i32, ++/*321219*/ OPC_CheckChild3Integer, 1, ++/*321221*/ OPC_CheckChild3Type, MVT::i32, ++/*321223*/ OPC_CheckChild4Integer, 1, ++/*321225*/ OPC_CheckChild4Type, MVT::i32, ++/*321227*/ OPC_MoveChild5, ++/*321228*/ OPC_CheckInteger, 1, ++/*321230*/ OPC_CheckType, MVT::i32, ++/*321232*/ OPC_MoveParent, ++/*321233*/ OPC_MoveChild6, ++/*321234*/ OPC_CheckInteger, 1, ++/*321236*/ OPC_CheckType, MVT::i32, ++/*321238*/ OPC_MoveParent, ++/*321239*/ OPC_MoveChild7, ++/*321240*/ OPC_CheckInteger, 1, ++/*321242*/ OPC_CheckType, MVT::i32, ++/*321244*/ OPC_MoveParent, ++/*321245*/ OPC_MoveChild, 8, ++/*321247*/ OPC_CheckInteger, 1, ++/*321249*/ OPC_CheckType, MVT::i32, ++/*321251*/ OPC_MoveParent, ++/*321252*/ OPC_MoveChild, 9, ++/*321254*/ OPC_CheckInteger, 1, ++/*321256*/ OPC_CheckType, MVT::i32, ++/*321258*/ OPC_MoveParent, ++/*321259*/ OPC_MoveChild, 10, ++/*321261*/ OPC_CheckInteger, 1, ++/*321263*/ OPC_CheckType, MVT::i32, ++/*321265*/ OPC_MoveParent, ++/*321266*/ OPC_MoveChild, 11, ++/*321268*/ OPC_CheckInteger, 1, ++/*321270*/ OPC_CheckType, MVT::i32, ++/*321272*/ OPC_MoveParent, ++/*321273*/ OPC_MoveChild, 12, ++/*321275*/ OPC_CheckInteger, 1, ++/*321277*/ OPC_CheckType, MVT::i32, ++/*321279*/ OPC_MoveParent, ++/*321280*/ OPC_MoveChild, 13, ++/*321282*/ OPC_CheckInteger, 1, ++/*321284*/ OPC_CheckType, MVT::i32, ++/*321286*/ OPC_MoveParent, ++/*321287*/ OPC_MoveChild, 14, ++/*321289*/ OPC_CheckInteger, 1, ++/*321291*/ OPC_CheckType, MVT::i32, ++/*321293*/ OPC_MoveParent, ++/*321294*/ OPC_MoveChild, 15, ++/*321296*/ OPC_CheckInteger, 1, ++/*321298*/ OPC_CheckType, MVT::i32, ++/*321300*/ OPC_MoveParent, ++/*321301*/ OPC_MoveChild, 16, ++/*321303*/ OPC_CheckInteger, 1, ++/*321305*/ OPC_CheckType, MVT::i32, ++/*321307*/ OPC_MoveParent, ++/*321308*/ OPC_MoveChild, 17, ++/*321310*/ OPC_CheckInteger, 1, ++/*321312*/ OPC_CheckType, MVT::i32, ++/*321314*/ OPC_MoveParent, ++/*321315*/ OPC_MoveChild, 18, ++/*321317*/ OPC_CheckInteger, 1, ++/*321319*/ OPC_CheckType, MVT::i32, ++/*321321*/ OPC_MoveParent, ++/*321322*/ OPC_MoveChild, 19, ++/*321324*/ OPC_CheckInteger, 1, ++/*321326*/ OPC_CheckType, MVT::i32, ++/*321328*/ OPC_MoveParent, ++/*321329*/ OPC_MoveChild, 20, ++/*321331*/ OPC_CheckInteger, 1, ++/*321333*/ OPC_CheckType, MVT::i32, ++/*321335*/ OPC_MoveParent, ++/*321336*/ OPC_MoveChild, 21, ++/*321338*/ OPC_CheckInteger, 1, ++/*321340*/ OPC_CheckType, MVT::i32, ++/*321342*/ OPC_MoveParent, ++/*321343*/ OPC_MoveChild, 22, ++/*321345*/ OPC_CheckInteger, 1, ++/*321347*/ OPC_CheckType, MVT::i32, ++/*321349*/ OPC_MoveParent, ++/*321350*/ OPC_MoveChild, 23, ++/*321352*/ OPC_CheckInteger, 1, ++/*321354*/ OPC_CheckType, MVT::i32, ++/*321356*/ OPC_MoveParent, ++/*321357*/ OPC_MoveChild, 24, ++/*321359*/ OPC_CheckInteger, 1, ++/*321361*/ OPC_CheckType, MVT::i32, ++/*321363*/ OPC_MoveParent, ++/*321364*/ OPC_MoveChild, 25, ++/*321366*/ OPC_CheckInteger, 1, ++/*321368*/ OPC_CheckType, MVT::i32, ++/*321370*/ OPC_MoveParent, ++/*321371*/ OPC_MoveChild, 26, ++/*321373*/ OPC_CheckInteger, 1, ++/*321375*/ OPC_CheckType, MVT::i32, ++/*321377*/ OPC_MoveParent, ++/*321378*/ OPC_MoveChild, 27, ++/*321380*/ OPC_CheckInteger, 1, ++/*321382*/ OPC_CheckType, MVT::i32, ++/*321384*/ OPC_MoveParent, ++/*321385*/ OPC_MoveChild, 28, ++/*321387*/ OPC_CheckInteger, 1, ++/*321389*/ OPC_CheckType, MVT::i32, ++/*321391*/ OPC_MoveParent, ++/*321392*/ OPC_MoveChild, 29, ++/*321394*/ OPC_CheckInteger, 1, ++/*321396*/ OPC_CheckType, MVT::i32, ++/*321398*/ OPC_MoveParent, ++/*321399*/ OPC_MoveChild, 30, ++/*321401*/ OPC_CheckInteger, 1, ++/*321403*/ OPC_CheckType, MVT::i32, ++/*321405*/ OPC_MoveParent, ++/*321406*/ OPC_MoveChild, 31, ++/*321408*/ OPC_CheckInteger, 1, ++/*321410*/ OPC_CheckType, MVT::i32, ++/*321412*/ OPC_MoveParent, ++/*321413*/ OPC_MoveParent, ++/*321414*/ OPC_CheckChild1Same, 0, ++/*321416*/ OPC_MoveParent, ++/*321417*/ OPC_MoveParent, ++/*321418*/ OPC_MoveParent, ++/*321419*/ OPC_MoveChild1, ++/*321420*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*321423*/ OPC_CheckChild0Integer, 1, ++/*321425*/ OPC_CheckChild0Type, MVT::i32, ++/*321427*/ OPC_CheckChild1Integer, 1, ++/*321429*/ OPC_CheckChild1Type, MVT::i32, ++/*321431*/ OPC_CheckChild2Integer, 1, ++/*321433*/ OPC_CheckChild2Type, MVT::i32, ++/*321435*/ OPC_CheckChild3Integer, 1, ++/*321437*/ OPC_CheckChild3Type, MVT::i32, ++/*321439*/ OPC_CheckChild4Integer, 1, ++/*321441*/ OPC_CheckChild4Type, MVT::i32, ++/*321443*/ OPC_MoveChild5, ++/*321444*/ OPC_CheckInteger, 1, ++/*321446*/ OPC_CheckType, MVT::i32, ++/*321448*/ OPC_MoveParent, ++/*321449*/ OPC_MoveChild6, ++/*321450*/ OPC_CheckInteger, 1, ++/*321452*/ OPC_CheckType, MVT::i32, ++/*321454*/ OPC_MoveParent, ++/*321455*/ OPC_MoveChild7, ++/*321456*/ OPC_CheckInteger, 1, ++/*321458*/ OPC_CheckType, MVT::i32, ++/*321460*/ OPC_MoveParent, ++/*321461*/ OPC_MoveChild, 8, ++/*321463*/ OPC_CheckInteger, 1, ++/*321465*/ OPC_CheckType, MVT::i32, ++/*321467*/ OPC_MoveParent, ++/*321468*/ OPC_MoveChild, 9, ++/*321470*/ OPC_CheckInteger, 1, ++/*321472*/ OPC_CheckType, MVT::i32, ++/*321474*/ OPC_MoveParent, ++/*321475*/ OPC_MoveChild, 10, ++/*321477*/ OPC_CheckInteger, 1, ++/*321479*/ OPC_CheckType, MVT::i32, ++/*321481*/ OPC_MoveParent, ++/*321482*/ OPC_MoveChild, 11, ++/*321484*/ OPC_CheckInteger, 1, ++/*321486*/ OPC_CheckType, MVT::i32, ++/*321488*/ OPC_MoveParent, ++/*321489*/ OPC_MoveChild, 12, ++/*321491*/ OPC_CheckInteger, 1, ++/*321493*/ OPC_CheckType, MVT::i32, ++/*321495*/ OPC_MoveParent, ++/*321496*/ OPC_MoveChild, 13, ++/*321498*/ OPC_CheckInteger, 1, ++/*321500*/ OPC_CheckType, MVT::i32, ++/*321502*/ OPC_MoveParent, ++/*321503*/ OPC_MoveChild, 14, ++/*321505*/ OPC_CheckInteger, 1, ++/*321507*/ OPC_CheckType, MVT::i32, ++/*321509*/ OPC_MoveParent, ++/*321510*/ OPC_MoveChild, 15, ++/*321512*/ OPC_CheckInteger, 1, ++/*321514*/ OPC_CheckType, MVT::i32, ++/*321516*/ OPC_MoveParent, ++/*321517*/ OPC_MoveChild, 16, ++/*321519*/ OPC_CheckInteger, 1, ++/*321521*/ OPC_CheckType, MVT::i32, ++/*321523*/ OPC_MoveParent, ++/*321524*/ OPC_MoveChild, 17, ++/*321526*/ OPC_CheckInteger, 1, ++/*321528*/ OPC_CheckType, MVT::i32, ++/*321530*/ OPC_MoveParent, ++/*321531*/ OPC_MoveChild, 18, ++/*321533*/ OPC_CheckInteger, 1, ++/*321535*/ OPC_CheckType, MVT::i32, ++/*321537*/ OPC_MoveParent, ++/*321538*/ OPC_MoveChild, 19, ++/*321540*/ OPC_CheckInteger, 1, ++/*321542*/ OPC_CheckType, MVT::i32, ++/*321544*/ OPC_MoveParent, ++/*321545*/ OPC_MoveChild, 20, ++/*321547*/ OPC_CheckInteger, 1, ++/*321549*/ OPC_CheckType, MVT::i32, ++/*321551*/ OPC_MoveParent, ++/*321552*/ OPC_MoveChild, 21, ++/*321554*/ OPC_CheckInteger, 1, ++/*321556*/ OPC_CheckType, MVT::i32, ++/*321558*/ OPC_MoveParent, ++/*321559*/ OPC_MoveChild, 22, ++/*321561*/ OPC_CheckInteger, 1, ++/*321563*/ OPC_CheckType, MVT::i32, ++/*321565*/ OPC_MoveParent, ++/*321566*/ OPC_MoveChild, 23, ++/*321568*/ OPC_CheckInteger, 1, ++/*321570*/ OPC_CheckType, MVT::i32, ++/*321572*/ OPC_MoveParent, ++/*321573*/ OPC_MoveChild, 24, ++/*321575*/ OPC_CheckInteger, 1, ++/*321577*/ OPC_CheckType, MVT::i32, ++/*321579*/ OPC_MoveParent, ++/*321580*/ OPC_MoveChild, 25, ++/*321582*/ OPC_CheckInteger, 1, ++/*321584*/ OPC_CheckType, MVT::i32, ++/*321586*/ OPC_MoveParent, ++/*321587*/ OPC_MoveChild, 26, ++/*321589*/ OPC_CheckInteger, 1, ++/*321591*/ OPC_CheckType, MVT::i32, ++/*321593*/ OPC_MoveParent, ++/*321594*/ OPC_MoveChild, 27, ++/*321596*/ OPC_CheckInteger, 1, ++/*321598*/ OPC_CheckType, MVT::i32, ++/*321600*/ OPC_MoveParent, ++/*321601*/ OPC_MoveChild, 28, ++/*321603*/ OPC_CheckInteger, 1, ++/*321605*/ OPC_CheckType, MVT::i32, ++/*321607*/ OPC_MoveParent, ++/*321608*/ OPC_MoveChild, 29, ++/*321610*/ OPC_CheckInteger, 1, ++/*321612*/ OPC_CheckType, MVT::i32, ++/*321614*/ OPC_MoveParent, ++/*321615*/ OPC_MoveChild, 30, ++/*321617*/ OPC_CheckInteger, 1, ++/*321619*/ OPC_CheckType, MVT::i32, ++/*321621*/ OPC_MoveParent, ++/*321622*/ OPC_MoveChild, 31, ++/*321624*/ OPC_CheckInteger, 1, ++/*321626*/ OPC_CheckType, MVT::i32, ++/*321628*/ OPC_MoveParent, ++/*321629*/ OPC_CheckType, MVT::v32i8, ++/*321631*/ OPC_MoveParent, ++/*321632*/ OPC_CheckType, MVT::v32i8, ++/*321634*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*321636*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*321644*/ /*Scope*/ 57|128,3/*441*/, /*->322087*/ ++/*321646*/ OPC_CheckChild0Same, 0, ++/*321648*/ OPC_MoveChild1, ++/*321649*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*321652*/ OPC_CheckChild0Integer, 1, ++/*321654*/ OPC_CheckChild0Type, MVT::i32, ++/*321656*/ OPC_CheckChild1Integer, 1, ++/*321658*/ OPC_CheckChild1Type, MVT::i32, ++/*321660*/ OPC_CheckChild2Integer, 1, ++/*321662*/ OPC_CheckChild2Type, MVT::i32, ++/*321664*/ OPC_CheckChild3Integer, 1, ++/*321666*/ OPC_CheckChild3Type, MVT::i32, ++/*321668*/ OPC_CheckChild4Integer, 1, ++/*321670*/ OPC_CheckChild4Type, MVT::i32, ++/*321672*/ OPC_MoveChild5, ++/*321673*/ OPC_CheckInteger, 1, ++/*321675*/ OPC_CheckType, MVT::i32, ++/*321677*/ OPC_MoveParent, ++/*321678*/ OPC_MoveChild6, ++/*321679*/ OPC_CheckInteger, 1, ++/*321681*/ OPC_CheckType, MVT::i32, ++/*321683*/ OPC_MoveParent, ++/*321684*/ OPC_MoveChild7, ++/*321685*/ OPC_CheckInteger, 1, ++/*321687*/ OPC_CheckType, MVT::i32, ++/*321689*/ OPC_MoveParent, ++/*321690*/ OPC_MoveChild, 8, ++/*321692*/ OPC_CheckInteger, 1, ++/*321694*/ OPC_CheckType, MVT::i32, ++/*321696*/ OPC_MoveParent, ++/*321697*/ OPC_MoveChild, 9, ++/*321699*/ OPC_CheckInteger, 1, ++/*321701*/ OPC_CheckType, MVT::i32, ++/*321703*/ OPC_MoveParent, ++/*321704*/ OPC_MoveChild, 10, ++/*321706*/ OPC_CheckInteger, 1, ++/*321708*/ OPC_CheckType, MVT::i32, ++/*321710*/ OPC_MoveParent, ++/*321711*/ OPC_MoveChild, 11, ++/*321713*/ OPC_CheckInteger, 1, ++/*321715*/ OPC_CheckType, MVT::i32, ++/*321717*/ OPC_MoveParent, ++/*321718*/ OPC_MoveChild, 12, ++/*321720*/ OPC_CheckInteger, 1, ++/*321722*/ OPC_CheckType, MVT::i32, ++/*321724*/ OPC_MoveParent, ++/*321725*/ OPC_MoveChild, 13, ++/*321727*/ OPC_CheckInteger, 1, ++/*321729*/ OPC_CheckType, MVT::i32, ++/*321731*/ OPC_MoveParent, ++/*321732*/ OPC_MoveChild, 14, ++/*321734*/ OPC_CheckInteger, 1, ++/*321736*/ OPC_CheckType, MVT::i32, ++/*321738*/ OPC_MoveParent, ++/*321739*/ OPC_MoveChild, 15, ++/*321741*/ OPC_CheckInteger, 1, ++/*321743*/ OPC_CheckType, MVT::i32, ++/*321745*/ OPC_MoveParent, ++/*321746*/ OPC_MoveChild, 16, ++/*321748*/ OPC_CheckInteger, 1, ++/*321750*/ OPC_CheckType, MVT::i32, ++/*321752*/ OPC_MoveParent, ++/*321753*/ OPC_MoveChild, 17, ++/*321755*/ OPC_CheckInteger, 1, ++/*321757*/ OPC_CheckType, MVT::i32, ++/*321759*/ OPC_MoveParent, ++/*321760*/ OPC_MoveChild, 18, ++/*321762*/ OPC_CheckInteger, 1, ++/*321764*/ OPC_CheckType, MVT::i32, ++/*321766*/ OPC_MoveParent, ++/*321767*/ OPC_MoveChild, 19, ++/*321769*/ OPC_CheckInteger, 1, ++/*321771*/ OPC_CheckType, MVT::i32, ++/*321773*/ OPC_MoveParent, ++/*321774*/ OPC_MoveChild, 20, ++/*321776*/ OPC_CheckInteger, 1, ++/*321778*/ OPC_CheckType, MVT::i32, ++/*321780*/ OPC_MoveParent, ++/*321781*/ OPC_MoveChild, 21, ++/*321783*/ OPC_CheckInteger, 1, ++/*321785*/ OPC_CheckType, MVT::i32, ++/*321787*/ OPC_MoveParent, ++/*321788*/ OPC_MoveChild, 22, ++/*321790*/ OPC_CheckInteger, 1, ++/*321792*/ OPC_CheckType, MVT::i32, ++/*321794*/ OPC_MoveParent, ++/*321795*/ OPC_MoveChild, 23, ++/*321797*/ OPC_CheckInteger, 1, ++/*321799*/ OPC_CheckType, MVT::i32, ++/*321801*/ OPC_MoveParent, ++/*321802*/ OPC_MoveChild, 24, ++/*321804*/ OPC_CheckInteger, 1, ++/*321806*/ OPC_CheckType, MVT::i32, ++/*321808*/ OPC_MoveParent, ++/*321809*/ OPC_MoveChild, 25, ++/*321811*/ OPC_CheckInteger, 1, ++/*321813*/ OPC_CheckType, MVT::i32, ++/*321815*/ OPC_MoveParent, ++/*321816*/ OPC_MoveChild, 26, ++/*321818*/ OPC_CheckInteger, 1, ++/*321820*/ OPC_CheckType, MVT::i32, ++/*321822*/ OPC_MoveParent, ++/*321823*/ OPC_MoveChild, 27, ++/*321825*/ OPC_CheckInteger, 1, ++/*321827*/ OPC_CheckType, MVT::i32, ++/*321829*/ OPC_MoveParent, ++/*321830*/ OPC_MoveChild, 28, ++/*321832*/ OPC_CheckInteger, 1, ++/*321834*/ OPC_CheckType, MVT::i32, ++/*321836*/ OPC_MoveParent, ++/*321837*/ OPC_MoveChild, 29, ++/*321839*/ OPC_CheckInteger, 1, ++/*321841*/ OPC_CheckType, MVT::i32, ++/*321843*/ OPC_MoveParent, ++/*321844*/ OPC_MoveChild, 30, ++/*321846*/ OPC_CheckInteger, 1, ++/*321848*/ OPC_CheckType, MVT::i32, ++/*321850*/ OPC_MoveParent, ++/*321851*/ OPC_MoveChild, 31, ++/*321853*/ OPC_CheckInteger, 1, ++/*321855*/ OPC_CheckType, MVT::i32, ++/*321857*/ OPC_MoveParent, ++/*321858*/ OPC_MoveParent, ++/*321859*/ OPC_MoveParent, ++/*321860*/ OPC_MoveParent, ++/*321861*/ OPC_MoveParent, ++/*321862*/ OPC_MoveChild1, ++/*321863*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*321866*/ OPC_CheckChild0Integer, 1, ++/*321868*/ OPC_CheckChild0Type, MVT::i32, ++/*321870*/ OPC_CheckChild1Integer, 1, ++/*321872*/ OPC_CheckChild1Type, MVT::i32, ++/*321874*/ OPC_CheckChild2Integer, 1, ++/*321876*/ OPC_CheckChild2Type, MVT::i32, ++/*321878*/ OPC_CheckChild3Integer, 1, ++/*321880*/ OPC_CheckChild3Type, MVT::i32, ++/*321882*/ OPC_CheckChild4Integer, 1, ++/*321884*/ OPC_CheckChild4Type, MVT::i32, ++/*321886*/ OPC_MoveChild5, ++/*321887*/ OPC_CheckInteger, 1, ++/*321889*/ OPC_CheckType, MVT::i32, ++/*321891*/ OPC_MoveParent, ++/*321892*/ OPC_MoveChild6, ++/*321893*/ OPC_CheckInteger, 1, ++/*321895*/ OPC_CheckType, MVT::i32, ++/*321897*/ OPC_MoveParent, ++/*321898*/ OPC_MoveChild7, ++/*321899*/ OPC_CheckInteger, 1, ++/*321901*/ OPC_CheckType, MVT::i32, ++/*321903*/ OPC_MoveParent, ++/*321904*/ OPC_MoveChild, 8, ++/*321906*/ OPC_CheckInteger, 1, ++/*321908*/ OPC_CheckType, MVT::i32, ++/*321910*/ OPC_MoveParent, ++/*321911*/ OPC_MoveChild, 9, ++/*321913*/ OPC_CheckInteger, 1, ++/*321915*/ OPC_CheckType, MVT::i32, ++/*321917*/ OPC_MoveParent, ++/*321918*/ OPC_MoveChild, 10, ++/*321920*/ OPC_CheckInteger, 1, ++/*321922*/ OPC_CheckType, MVT::i32, ++/*321924*/ OPC_MoveParent, ++/*321925*/ OPC_MoveChild, 11, ++/*321927*/ OPC_CheckInteger, 1, ++/*321929*/ OPC_CheckType, MVT::i32, ++/*321931*/ OPC_MoveParent, ++/*321932*/ OPC_MoveChild, 12, ++/*321934*/ OPC_CheckInteger, 1, ++/*321936*/ OPC_CheckType, MVT::i32, ++/*321938*/ OPC_MoveParent, ++/*321939*/ OPC_MoveChild, 13, ++/*321941*/ OPC_CheckInteger, 1, ++/*321943*/ OPC_CheckType, MVT::i32, ++/*321945*/ OPC_MoveParent, ++/*321946*/ OPC_MoveChild, 14, ++/*321948*/ OPC_CheckInteger, 1, ++/*321950*/ OPC_CheckType, MVT::i32, ++/*321952*/ OPC_MoveParent, ++/*321953*/ OPC_MoveChild, 15, ++/*321955*/ OPC_CheckInteger, 1, ++/*321957*/ OPC_CheckType, MVT::i32, ++/*321959*/ OPC_MoveParent, ++/*321960*/ OPC_MoveChild, 16, ++/*321962*/ OPC_CheckInteger, 1, ++/*321964*/ OPC_CheckType, MVT::i32, ++/*321966*/ OPC_MoveParent, ++/*321967*/ OPC_MoveChild, 17, ++/*321969*/ OPC_CheckInteger, 1, ++/*321971*/ OPC_CheckType, MVT::i32, ++/*321973*/ OPC_MoveParent, ++/*321974*/ OPC_MoveChild, 18, ++/*321976*/ OPC_CheckInteger, 1, ++/*321978*/ OPC_CheckType, MVT::i32, ++/*321980*/ OPC_MoveParent, ++/*321981*/ OPC_MoveChild, 19, ++/*321983*/ OPC_CheckInteger, 1, ++/*321985*/ OPC_CheckType, MVT::i32, ++/*321987*/ OPC_MoveParent, ++/*321988*/ OPC_MoveChild, 20, ++/*321990*/ OPC_CheckInteger, 1, ++/*321992*/ OPC_CheckType, MVT::i32, ++/*321994*/ OPC_MoveParent, ++/*321995*/ OPC_MoveChild, 21, ++/*321997*/ OPC_CheckInteger, 1, ++/*321999*/ OPC_CheckType, MVT::i32, ++/*322001*/ OPC_MoveParent, ++/*322002*/ OPC_MoveChild, 22, ++/*322004*/ OPC_CheckInteger, 1, ++/*322006*/ OPC_CheckType, MVT::i32, ++/*322008*/ OPC_MoveParent, ++/*322009*/ OPC_MoveChild, 23, ++/*322011*/ OPC_CheckInteger, 1, ++/*322013*/ OPC_CheckType, MVT::i32, ++/*322015*/ OPC_MoveParent, ++/*322016*/ OPC_MoveChild, 24, ++/*322018*/ OPC_CheckInteger, 1, ++/*322020*/ OPC_CheckType, MVT::i32, ++/*322022*/ OPC_MoveParent, ++/*322023*/ OPC_MoveChild, 25, ++/*322025*/ OPC_CheckInteger, 1, ++/*322027*/ OPC_CheckType, MVT::i32, ++/*322029*/ OPC_MoveParent, ++/*322030*/ OPC_MoveChild, 26, ++/*322032*/ OPC_CheckInteger, 1, ++/*322034*/ OPC_CheckType, MVT::i32, ++/*322036*/ OPC_MoveParent, ++/*322037*/ OPC_MoveChild, 27, ++/*322039*/ OPC_CheckInteger, 1, ++/*322041*/ OPC_CheckType, MVT::i32, ++/*322043*/ OPC_MoveParent, ++/*322044*/ OPC_MoveChild, 28, ++/*322046*/ OPC_CheckInteger, 1, ++/*322048*/ OPC_CheckType, MVT::i32, ++/*322050*/ OPC_MoveParent, ++/*322051*/ OPC_MoveChild, 29, ++/*322053*/ OPC_CheckInteger, 1, ++/*322055*/ OPC_CheckType, MVT::i32, ++/*322057*/ OPC_MoveParent, ++/*322058*/ OPC_MoveChild, 30, ++/*322060*/ OPC_CheckInteger, 1, ++/*322062*/ OPC_CheckType, MVT::i32, ++/*322064*/ OPC_MoveParent, ++/*322065*/ OPC_MoveChild, 31, ++/*322067*/ OPC_CheckInteger, 1, ++/*322069*/ OPC_CheckType, MVT::i32, ++/*322071*/ OPC_MoveParent, ++/*322072*/ OPC_CheckType, MVT::v32i8, ++/*322074*/ OPC_MoveParent, ++/*322075*/ OPC_CheckType, MVT::v32i8, ++/*322077*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*322079*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*322087*/ 0, /*End of Scope*/ ++/*322088*/ /*Scope*/ 126|128,6/*894*/, /*->322984*/ ++/*322090*/ OPC_CheckChild0Same, 0, ++/*322092*/ OPC_MoveChild1, ++/*322093*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*322096*/ OPC_Scope, 57|128,3/*441*/, /*->322540*/ // 2 children in Scope ++/*322099*/ OPC_MoveChild0, ++/*322100*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*322103*/ OPC_CheckChild0Integer, 1, ++/*322105*/ OPC_CheckChild0Type, MVT::i32, ++/*322107*/ OPC_CheckChild1Integer, 1, ++/*322109*/ OPC_CheckChild1Type, MVT::i32, ++/*322111*/ OPC_CheckChild2Integer, 1, ++/*322113*/ OPC_CheckChild2Type, MVT::i32, ++/*322115*/ OPC_CheckChild3Integer, 1, ++/*322117*/ OPC_CheckChild3Type, MVT::i32, ++/*322119*/ OPC_CheckChild4Integer, 1, ++/*322121*/ OPC_CheckChild4Type, MVT::i32, ++/*322123*/ OPC_MoveChild5, ++/*322124*/ OPC_CheckInteger, 1, ++/*322126*/ OPC_CheckType, MVT::i32, ++/*322128*/ OPC_MoveParent, ++/*322129*/ OPC_MoveChild6, ++/*322130*/ OPC_CheckInteger, 1, ++/*322132*/ OPC_CheckType, MVT::i32, ++/*322134*/ OPC_MoveParent, ++/*322135*/ OPC_MoveChild7, ++/*322136*/ OPC_CheckInteger, 1, ++/*322138*/ OPC_CheckType, MVT::i32, ++/*322140*/ OPC_MoveParent, ++/*322141*/ OPC_MoveChild, 8, ++/*322143*/ OPC_CheckInteger, 1, ++/*322145*/ OPC_CheckType, MVT::i32, ++/*322147*/ OPC_MoveParent, ++/*322148*/ OPC_MoveChild, 9, ++/*322150*/ OPC_CheckInteger, 1, ++/*322152*/ OPC_CheckType, MVT::i32, ++/*322154*/ OPC_MoveParent, ++/*322155*/ OPC_MoveChild, 10, ++/*322157*/ OPC_CheckInteger, 1, ++/*322159*/ OPC_CheckType, MVT::i32, ++/*322161*/ OPC_MoveParent, ++/*322162*/ OPC_MoveChild, 11, ++/*322164*/ OPC_CheckInteger, 1, ++/*322166*/ OPC_CheckType, MVT::i32, ++/*322168*/ OPC_MoveParent, ++/*322169*/ OPC_MoveChild, 12, ++/*322171*/ OPC_CheckInteger, 1, ++/*322173*/ OPC_CheckType, MVT::i32, ++/*322175*/ OPC_MoveParent, ++/*322176*/ OPC_MoveChild, 13, ++/*322178*/ OPC_CheckInteger, 1, ++/*322180*/ OPC_CheckType, MVT::i32, ++/*322182*/ OPC_MoveParent, ++/*322183*/ OPC_MoveChild, 14, ++/*322185*/ OPC_CheckInteger, 1, ++/*322187*/ OPC_CheckType, MVT::i32, ++/*322189*/ OPC_MoveParent, ++/*322190*/ OPC_MoveChild, 15, ++/*322192*/ OPC_CheckInteger, 1, ++/*322194*/ OPC_CheckType, MVT::i32, ++/*322196*/ OPC_MoveParent, ++/*322197*/ OPC_MoveChild, 16, ++/*322199*/ OPC_CheckInteger, 1, ++/*322201*/ OPC_CheckType, MVT::i32, ++/*322203*/ OPC_MoveParent, ++/*322204*/ OPC_MoveChild, 17, ++/*322206*/ OPC_CheckInteger, 1, ++/*322208*/ OPC_CheckType, MVT::i32, ++/*322210*/ OPC_MoveParent, ++/*322211*/ OPC_MoveChild, 18, ++/*322213*/ OPC_CheckInteger, 1, ++/*322215*/ OPC_CheckType, MVT::i32, ++/*322217*/ OPC_MoveParent, ++/*322218*/ OPC_MoveChild, 19, ++/*322220*/ OPC_CheckInteger, 1, ++/*322222*/ OPC_CheckType, MVT::i32, ++/*322224*/ OPC_MoveParent, ++/*322225*/ OPC_MoveChild, 20, ++/*322227*/ OPC_CheckInteger, 1, ++/*322229*/ OPC_CheckType, MVT::i32, ++/*322231*/ OPC_MoveParent, ++/*322232*/ OPC_MoveChild, 21, ++/*322234*/ OPC_CheckInteger, 1, ++/*322236*/ OPC_CheckType, MVT::i32, ++/*322238*/ OPC_MoveParent, ++/*322239*/ OPC_MoveChild, 22, ++/*322241*/ OPC_CheckInteger, 1, ++/*322243*/ OPC_CheckType, MVT::i32, ++/*322245*/ OPC_MoveParent, ++/*322246*/ OPC_MoveChild, 23, ++/*322248*/ OPC_CheckInteger, 1, ++/*322250*/ OPC_CheckType, MVT::i32, ++/*322252*/ OPC_MoveParent, ++/*322253*/ OPC_MoveChild, 24, ++/*322255*/ OPC_CheckInteger, 1, ++/*322257*/ OPC_CheckType, MVT::i32, ++/*322259*/ OPC_MoveParent, ++/*322260*/ OPC_MoveChild, 25, ++/*322262*/ OPC_CheckInteger, 1, ++/*322264*/ OPC_CheckType, MVT::i32, ++/*322266*/ OPC_MoveParent, ++/*322267*/ OPC_MoveChild, 26, ++/*322269*/ OPC_CheckInteger, 1, ++/*322271*/ OPC_CheckType, MVT::i32, ++/*322273*/ OPC_MoveParent, ++/*322274*/ OPC_MoveChild, 27, ++/*322276*/ OPC_CheckInteger, 1, ++/*322278*/ OPC_CheckType, MVT::i32, ++/*322280*/ OPC_MoveParent, ++/*322281*/ OPC_MoveChild, 28, ++/*322283*/ OPC_CheckInteger, 1, ++/*322285*/ OPC_CheckType, MVT::i32, ++/*322287*/ OPC_MoveParent, ++/*322288*/ OPC_MoveChild, 29, ++/*322290*/ OPC_CheckInteger, 1, ++/*322292*/ OPC_CheckType, MVT::i32, ++/*322294*/ OPC_MoveParent, ++/*322295*/ OPC_MoveChild, 30, ++/*322297*/ OPC_CheckInteger, 1, ++/*322299*/ OPC_CheckType, MVT::i32, ++/*322301*/ OPC_MoveParent, ++/*322302*/ OPC_MoveChild, 31, ++/*322304*/ OPC_CheckInteger, 1, ++/*322306*/ OPC_CheckType, MVT::i32, ++/*322308*/ OPC_MoveParent, ++/*322309*/ OPC_MoveParent, ++/*322310*/ OPC_CheckChild1Same, 1, ++/*322312*/ OPC_MoveParent, ++/*322313*/ OPC_MoveParent, ++/*322314*/ OPC_MoveParent, ++/*322315*/ OPC_MoveChild1, ++/*322316*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*322319*/ OPC_CheckChild0Integer, 1, ++/*322321*/ OPC_CheckChild0Type, MVT::i32, ++/*322323*/ OPC_CheckChild1Integer, 1, ++/*322325*/ OPC_CheckChild1Type, MVT::i32, ++/*322327*/ OPC_CheckChild2Integer, 1, ++/*322329*/ OPC_CheckChild2Type, MVT::i32, ++/*322331*/ OPC_CheckChild3Integer, 1, ++/*322333*/ OPC_CheckChild3Type, MVT::i32, ++/*322335*/ OPC_CheckChild4Integer, 1, ++/*322337*/ OPC_CheckChild4Type, MVT::i32, ++/*322339*/ OPC_MoveChild5, ++/*322340*/ OPC_CheckInteger, 1, ++/*322342*/ OPC_CheckType, MVT::i32, ++/*322344*/ OPC_MoveParent, ++/*322345*/ OPC_MoveChild6, ++/*322346*/ OPC_CheckInteger, 1, ++/*322348*/ OPC_CheckType, MVT::i32, ++/*322350*/ OPC_MoveParent, ++/*322351*/ OPC_MoveChild7, ++/*322352*/ OPC_CheckInteger, 1, ++/*322354*/ OPC_CheckType, MVT::i32, ++/*322356*/ OPC_MoveParent, ++/*322357*/ OPC_MoveChild, 8, ++/*322359*/ OPC_CheckInteger, 1, ++/*322361*/ OPC_CheckType, MVT::i32, ++/*322363*/ OPC_MoveParent, ++/*322364*/ OPC_MoveChild, 9, ++/*322366*/ OPC_CheckInteger, 1, ++/*322368*/ OPC_CheckType, MVT::i32, ++/*322370*/ OPC_MoveParent, ++/*322371*/ OPC_MoveChild, 10, ++/*322373*/ OPC_CheckInteger, 1, ++/*322375*/ OPC_CheckType, MVT::i32, ++/*322377*/ OPC_MoveParent, ++/*322378*/ OPC_MoveChild, 11, ++/*322380*/ OPC_CheckInteger, 1, ++/*322382*/ OPC_CheckType, MVT::i32, ++/*322384*/ OPC_MoveParent, ++/*322385*/ OPC_MoveChild, 12, ++/*322387*/ OPC_CheckInteger, 1, ++/*322389*/ OPC_CheckType, MVT::i32, ++/*322391*/ OPC_MoveParent, ++/*322392*/ OPC_MoveChild, 13, ++/*322394*/ OPC_CheckInteger, 1, ++/*322396*/ OPC_CheckType, MVT::i32, ++/*322398*/ OPC_MoveParent, ++/*322399*/ OPC_MoveChild, 14, ++/*322401*/ OPC_CheckInteger, 1, ++/*322403*/ OPC_CheckType, MVT::i32, ++/*322405*/ OPC_MoveParent, ++/*322406*/ OPC_MoveChild, 15, ++/*322408*/ OPC_CheckInteger, 1, ++/*322410*/ OPC_CheckType, MVT::i32, ++/*322412*/ OPC_MoveParent, ++/*322413*/ OPC_MoveChild, 16, ++/*322415*/ OPC_CheckInteger, 1, ++/*322417*/ OPC_CheckType, MVT::i32, ++/*322419*/ OPC_MoveParent, ++/*322420*/ OPC_MoveChild, 17, ++/*322422*/ OPC_CheckInteger, 1, ++/*322424*/ OPC_CheckType, MVT::i32, ++/*322426*/ OPC_MoveParent, ++/*322427*/ OPC_MoveChild, 18, ++/*322429*/ OPC_CheckInteger, 1, ++/*322431*/ OPC_CheckType, MVT::i32, ++/*322433*/ OPC_MoveParent, ++/*322434*/ OPC_MoveChild, 19, ++/*322436*/ OPC_CheckInteger, 1, ++/*322438*/ OPC_CheckType, MVT::i32, ++/*322440*/ OPC_MoveParent, ++/*322441*/ OPC_MoveChild, 20, ++/*322443*/ OPC_CheckInteger, 1, ++/*322445*/ OPC_CheckType, MVT::i32, ++/*322447*/ OPC_MoveParent, ++/*322448*/ OPC_MoveChild, 21, ++/*322450*/ OPC_CheckInteger, 1, ++/*322452*/ OPC_CheckType, MVT::i32, ++/*322454*/ OPC_MoveParent, ++/*322455*/ OPC_MoveChild, 22, ++/*322457*/ OPC_CheckInteger, 1, ++/*322459*/ OPC_CheckType, MVT::i32, ++/*322461*/ OPC_MoveParent, ++/*322462*/ OPC_MoveChild, 23, ++/*322464*/ OPC_CheckInteger, 1, ++/*322466*/ OPC_CheckType, MVT::i32, ++/*322468*/ OPC_MoveParent, ++/*322469*/ OPC_MoveChild, 24, ++/*322471*/ OPC_CheckInteger, 1, ++/*322473*/ OPC_CheckType, MVT::i32, ++/*322475*/ OPC_MoveParent, ++/*322476*/ OPC_MoveChild, 25, ++/*322478*/ OPC_CheckInteger, 1, ++/*322480*/ OPC_CheckType, MVT::i32, ++/*322482*/ OPC_MoveParent, ++/*322483*/ OPC_MoveChild, 26, ++/*322485*/ OPC_CheckInteger, 1, ++/*322487*/ OPC_CheckType, MVT::i32, ++/*322489*/ OPC_MoveParent, ++/*322490*/ OPC_MoveChild, 27, ++/*322492*/ OPC_CheckInteger, 1, ++/*322494*/ OPC_CheckType, MVT::i32, ++/*322496*/ OPC_MoveParent, ++/*322497*/ OPC_MoveChild, 28, ++/*322499*/ OPC_CheckInteger, 1, ++/*322501*/ OPC_CheckType, MVT::i32, ++/*322503*/ OPC_MoveParent, ++/*322504*/ OPC_MoveChild, 29, ++/*322506*/ OPC_CheckInteger, 1, ++/*322508*/ OPC_CheckType, MVT::i32, ++/*322510*/ OPC_MoveParent, ++/*322511*/ OPC_MoveChild, 30, ++/*322513*/ OPC_CheckInteger, 1, ++/*322515*/ OPC_CheckType, MVT::i32, ++/*322517*/ OPC_MoveParent, ++/*322518*/ OPC_MoveChild, 31, ++/*322520*/ OPC_CheckInteger, 1, ++/*322522*/ OPC_CheckType, MVT::i32, ++/*322524*/ OPC_MoveParent, ++/*322525*/ OPC_CheckType, MVT::v32i8, ++/*322527*/ OPC_MoveParent, ++/*322528*/ OPC_CheckType, MVT::v32i8, ++/*322530*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*322532*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*322540*/ /*Scope*/ 57|128,3/*441*/, /*->322983*/ ++/*322542*/ OPC_CheckChild0Same, 1, ++/*322544*/ OPC_MoveChild1, ++/*322545*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*322548*/ OPC_CheckChild0Integer, 1, ++/*322550*/ OPC_CheckChild0Type, MVT::i32, ++/*322552*/ OPC_CheckChild1Integer, 1, ++/*322554*/ OPC_CheckChild1Type, MVT::i32, ++/*322556*/ OPC_CheckChild2Integer, 1, ++/*322558*/ OPC_CheckChild2Type, MVT::i32, ++/*322560*/ OPC_CheckChild3Integer, 1, ++/*322562*/ OPC_CheckChild3Type, MVT::i32, ++/*322564*/ OPC_CheckChild4Integer, 1, ++/*322566*/ OPC_CheckChild4Type, MVT::i32, ++/*322568*/ OPC_MoveChild5, ++/*322569*/ OPC_CheckInteger, 1, ++/*322571*/ OPC_CheckType, MVT::i32, ++/*322573*/ OPC_MoveParent, ++/*322574*/ OPC_MoveChild6, ++/*322575*/ OPC_CheckInteger, 1, ++/*322577*/ OPC_CheckType, MVT::i32, ++/*322579*/ OPC_MoveParent, ++/*322580*/ OPC_MoveChild7, ++/*322581*/ OPC_CheckInteger, 1, ++/*322583*/ OPC_CheckType, MVT::i32, ++/*322585*/ OPC_MoveParent, ++/*322586*/ OPC_MoveChild, 8, ++/*322588*/ OPC_CheckInteger, 1, ++/*322590*/ OPC_CheckType, MVT::i32, ++/*322592*/ OPC_MoveParent, ++/*322593*/ OPC_MoveChild, 9, ++/*322595*/ OPC_CheckInteger, 1, ++/*322597*/ OPC_CheckType, MVT::i32, ++/*322599*/ OPC_MoveParent, ++/*322600*/ OPC_MoveChild, 10, ++/*322602*/ OPC_CheckInteger, 1, ++/*322604*/ OPC_CheckType, MVT::i32, ++/*322606*/ OPC_MoveParent, ++/*322607*/ OPC_MoveChild, 11, ++/*322609*/ OPC_CheckInteger, 1, ++/*322611*/ OPC_CheckType, MVT::i32, ++/*322613*/ OPC_MoveParent, ++/*322614*/ OPC_MoveChild, 12, ++/*322616*/ OPC_CheckInteger, 1, ++/*322618*/ OPC_CheckType, MVT::i32, ++/*322620*/ OPC_MoveParent, ++/*322621*/ OPC_MoveChild, 13, ++/*322623*/ OPC_CheckInteger, 1, ++/*322625*/ OPC_CheckType, MVT::i32, ++/*322627*/ OPC_MoveParent, ++/*322628*/ OPC_MoveChild, 14, ++/*322630*/ OPC_CheckInteger, 1, ++/*322632*/ OPC_CheckType, MVT::i32, ++/*322634*/ OPC_MoveParent, ++/*322635*/ OPC_MoveChild, 15, ++/*322637*/ OPC_CheckInteger, 1, ++/*322639*/ OPC_CheckType, MVT::i32, ++/*322641*/ OPC_MoveParent, ++/*322642*/ OPC_MoveChild, 16, ++/*322644*/ OPC_CheckInteger, 1, ++/*322646*/ OPC_CheckType, MVT::i32, ++/*322648*/ OPC_MoveParent, ++/*322649*/ OPC_MoveChild, 17, ++/*322651*/ OPC_CheckInteger, 1, ++/*322653*/ OPC_CheckType, MVT::i32, ++/*322655*/ OPC_MoveParent, ++/*322656*/ OPC_MoveChild, 18, ++/*322658*/ OPC_CheckInteger, 1, ++/*322660*/ OPC_CheckType, MVT::i32, ++/*322662*/ OPC_MoveParent, ++/*322663*/ OPC_MoveChild, 19, ++/*322665*/ OPC_CheckInteger, 1, ++/*322667*/ OPC_CheckType, MVT::i32, ++/*322669*/ OPC_MoveParent, ++/*322670*/ OPC_MoveChild, 20, ++/*322672*/ OPC_CheckInteger, 1, ++/*322674*/ OPC_CheckType, MVT::i32, ++/*322676*/ OPC_MoveParent, ++/*322677*/ OPC_MoveChild, 21, ++/*322679*/ OPC_CheckInteger, 1, ++/*322681*/ OPC_CheckType, MVT::i32, ++/*322683*/ OPC_MoveParent, ++/*322684*/ OPC_MoveChild, 22, ++/*322686*/ OPC_CheckInteger, 1, ++/*322688*/ OPC_CheckType, MVT::i32, ++/*322690*/ OPC_MoveParent, ++/*322691*/ OPC_MoveChild, 23, ++/*322693*/ OPC_CheckInteger, 1, ++/*322695*/ OPC_CheckType, MVT::i32, ++/*322697*/ OPC_MoveParent, ++/*322698*/ OPC_MoveChild, 24, ++/*322700*/ OPC_CheckInteger, 1, ++/*322702*/ OPC_CheckType, MVT::i32, ++/*322704*/ OPC_MoveParent, ++/*322705*/ OPC_MoveChild, 25, ++/*322707*/ OPC_CheckInteger, 1, ++/*322709*/ OPC_CheckType, MVT::i32, ++/*322711*/ OPC_MoveParent, ++/*322712*/ OPC_MoveChild, 26, ++/*322714*/ OPC_CheckInteger, 1, ++/*322716*/ OPC_CheckType, MVT::i32, ++/*322718*/ OPC_MoveParent, ++/*322719*/ OPC_MoveChild, 27, ++/*322721*/ OPC_CheckInteger, 1, ++/*322723*/ OPC_CheckType, MVT::i32, ++/*322725*/ OPC_MoveParent, ++/*322726*/ OPC_MoveChild, 28, ++/*322728*/ OPC_CheckInteger, 1, ++/*322730*/ OPC_CheckType, MVT::i32, ++/*322732*/ OPC_MoveParent, ++/*322733*/ OPC_MoveChild, 29, ++/*322735*/ OPC_CheckInteger, 1, ++/*322737*/ OPC_CheckType, MVT::i32, ++/*322739*/ OPC_MoveParent, ++/*322740*/ OPC_MoveChild, 30, ++/*322742*/ OPC_CheckInteger, 1, ++/*322744*/ OPC_CheckType, MVT::i32, ++/*322746*/ OPC_MoveParent, ++/*322747*/ OPC_MoveChild, 31, ++/*322749*/ OPC_CheckInteger, 1, ++/*322751*/ OPC_CheckType, MVT::i32, ++/*322753*/ OPC_MoveParent, ++/*322754*/ OPC_MoveParent, ++/*322755*/ OPC_MoveParent, ++/*322756*/ OPC_MoveParent, ++/*322757*/ OPC_MoveParent, ++/*322758*/ OPC_MoveChild1, ++/*322759*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*322762*/ OPC_CheckChild0Integer, 1, ++/*322764*/ OPC_CheckChild0Type, MVT::i32, ++/*322766*/ OPC_CheckChild1Integer, 1, ++/*322768*/ OPC_CheckChild1Type, MVT::i32, ++/*322770*/ OPC_CheckChild2Integer, 1, ++/*322772*/ OPC_CheckChild2Type, MVT::i32, ++/*322774*/ OPC_CheckChild3Integer, 1, ++/*322776*/ OPC_CheckChild3Type, MVT::i32, ++/*322778*/ OPC_CheckChild4Integer, 1, ++/*322780*/ OPC_CheckChild4Type, MVT::i32, ++/*322782*/ OPC_MoveChild5, ++/*322783*/ OPC_CheckInteger, 1, ++/*322785*/ OPC_CheckType, MVT::i32, ++/*322787*/ OPC_MoveParent, ++/*322788*/ OPC_MoveChild6, ++/*322789*/ OPC_CheckInteger, 1, ++/*322791*/ OPC_CheckType, MVT::i32, ++/*322793*/ OPC_MoveParent, ++/*322794*/ OPC_MoveChild7, ++/*322795*/ OPC_CheckInteger, 1, ++/*322797*/ OPC_CheckType, MVT::i32, ++/*322799*/ OPC_MoveParent, ++/*322800*/ OPC_MoveChild, 8, ++/*322802*/ OPC_CheckInteger, 1, ++/*322804*/ OPC_CheckType, MVT::i32, ++/*322806*/ OPC_MoveParent, ++/*322807*/ OPC_MoveChild, 9, ++/*322809*/ OPC_CheckInteger, 1, ++/*322811*/ OPC_CheckType, MVT::i32, ++/*322813*/ OPC_MoveParent, ++/*322814*/ OPC_MoveChild, 10, ++/*322816*/ OPC_CheckInteger, 1, ++/*322818*/ OPC_CheckType, MVT::i32, ++/*322820*/ OPC_MoveParent, ++/*322821*/ OPC_MoveChild, 11, ++/*322823*/ OPC_CheckInteger, 1, ++/*322825*/ OPC_CheckType, MVT::i32, ++/*322827*/ OPC_MoveParent, ++/*322828*/ OPC_MoveChild, 12, ++/*322830*/ OPC_CheckInteger, 1, ++/*322832*/ OPC_CheckType, MVT::i32, ++/*322834*/ OPC_MoveParent, ++/*322835*/ OPC_MoveChild, 13, ++/*322837*/ OPC_CheckInteger, 1, ++/*322839*/ OPC_CheckType, MVT::i32, ++/*322841*/ OPC_MoveParent, ++/*322842*/ OPC_MoveChild, 14, ++/*322844*/ OPC_CheckInteger, 1, ++/*322846*/ OPC_CheckType, MVT::i32, ++/*322848*/ OPC_MoveParent, ++/*322849*/ OPC_MoveChild, 15, ++/*322851*/ OPC_CheckInteger, 1, ++/*322853*/ OPC_CheckType, MVT::i32, ++/*322855*/ OPC_MoveParent, ++/*322856*/ OPC_MoveChild, 16, ++/*322858*/ OPC_CheckInteger, 1, ++/*322860*/ OPC_CheckType, MVT::i32, ++/*322862*/ OPC_MoveParent, ++/*322863*/ OPC_MoveChild, 17, ++/*322865*/ OPC_CheckInteger, 1, ++/*322867*/ OPC_CheckType, MVT::i32, ++/*322869*/ OPC_MoveParent, ++/*322870*/ OPC_MoveChild, 18, ++/*322872*/ OPC_CheckInteger, 1, ++/*322874*/ OPC_CheckType, MVT::i32, ++/*322876*/ OPC_MoveParent, ++/*322877*/ OPC_MoveChild, 19, ++/*322879*/ OPC_CheckInteger, 1, ++/*322881*/ OPC_CheckType, MVT::i32, ++/*322883*/ OPC_MoveParent, ++/*322884*/ OPC_MoveChild, 20, ++/*322886*/ OPC_CheckInteger, 1, ++/*322888*/ OPC_CheckType, MVT::i32, ++/*322890*/ OPC_MoveParent, ++/*322891*/ OPC_MoveChild, 21, ++/*322893*/ OPC_CheckInteger, 1, ++/*322895*/ OPC_CheckType, MVT::i32, ++/*322897*/ OPC_MoveParent, ++/*322898*/ OPC_MoveChild, 22, ++/*322900*/ OPC_CheckInteger, 1, ++/*322902*/ OPC_CheckType, MVT::i32, ++/*322904*/ OPC_MoveParent, ++/*322905*/ OPC_MoveChild, 23, ++/*322907*/ OPC_CheckInteger, 1, ++/*322909*/ OPC_CheckType, MVT::i32, ++/*322911*/ OPC_MoveParent, ++/*322912*/ OPC_MoveChild, 24, ++/*322914*/ OPC_CheckInteger, 1, ++/*322916*/ OPC_CheckType, MVT::i32, ++/*322918*/ OPC_MoveParent, ++/*322919*/ OPC_MoveChild, 25, ++/*322921*/ OPC_CheckInteger, 1, ++/*322923*/ OPC_CheckType, MVT::i32, ++/*322925*/ OPC_MoveParent, ++/*322926*/ OPC_MoveChild, 26, ++/*322928*/ OPC_CheckInteger, 1, ++/*322930*/ OPC_CheckType, MVT::i32, ++/*322932*/ OPC_MoveParent, ++/*322933*/ OPC_MoveChild, 27, ++/*322935*/ OPC_CheckInteger, 1, ++/*322937*/ OPC_CheckType, MVT::i32, ++/*322939*/ OPC_MoveParent, ++/*322940*/ OPC_MoveChild, 28, ++/*322942*/ OPC_CheckInteger, 1, ++/*322944*/ OPC_CheckType, MVT::i32, ++/*322946*/ OPC_MoveParent, ++/*322947*/ OPC_MoveChild, 29, ++/*322949*/ OPC_CheckInteger, 1, ++/*322951*/ OPC_CheckType, MVT::i32, ++/*322953*/ OPC_MoveParent, ++/*322954*/ OPC_MoveChild, 30, ++/*322956*/ OPC_CheckInteger, 1, ++/*322958*/ OPC_CheckType, MVT::i32, ++/*322960*/ OPC_MoveParent, ++/*322961*/ OPC_MoveChild, 31, ++/*322963*/ OPC_CheckInteger, 1, ++/*322965*/ OPC_CheckType, MVT::i32, ++/*322967*/ OPC_MoveParent, ++/*322968*/ OPC_CheckType, MVT::v32i8, ++/*322970*/ OPC_MoveParent, ++/*322971*/ OPC_CheckType, MVT::v32i8, ++/*322973*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*322975*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*322983*/ 0, /*End of Scope*/ ++/*322984*/ /*Scope*/ 45|128,5/*685*/, /*->323671*/ ++/*322986*/ OPC_MoveChild0, ++/*322987*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*322990*/ OPC_CheckChild0Integer, 1, ++/*322992*/ OPC_CheckChild0Type, MVT::i32, ++/*322994*/ OPC_CheckChild1Integer, 1, ++/*322996*/ OPC_CheckChild1Type, MVT::i32, ++/*322998*/ OPC_CheckChild2Integer, 1, ++/*323000*/ OPC_CheckChild2Type, MVT::i32, ++/*323002*/ OPC_CheckChild3Integer, 1, ++/*323004*/ OPC_CheckChild3Type, MVT::i32, ++/*323006*/ OPC_CheckChild4Integer, 1, ++/*323008*/ OPC_CheckChild4Type, MVT::i32, ++/*323010*/ OPC_MoveChild5, ++/*323011*/ OPC_CheckInteger, 1, ++/*323013*/ OPC_CheckType, MVT::i32, ++/*323015*/ OPC_MoveParent, ++/*323016*/ OPC_MoveChild6, ++/*323017*/ OPC_CheckInteger, 1, ++/*323019*/ OPC_CheckType, MVT::i32, ++/*323021*/ OPC_MoveParent, ++/*323022*/ OPC_MoveChild7, ++/*323023*/ OPC_CheckInteger, 1, ++/*323025*/ OPC_CheckType, MVT::i32, ++/*323027*/ OPC_MoveParent, ++/*323028*/ OPC_MoveChild, 8, ++/*323030*/ OPC_CheckInteger, 1, ++/*323032*/ OPC_CheckType, MVT::i32, ++/*323034*/ OPC_MoveParent, ++/*323035*/ OPC_MoveChild, 9, ++/*323037*/ OPC_CheckInteger, 1, ++/*323039*/ OPC_CheckType, MVT::i32, ++/*323041*/ OPC_MoveParent, ++/*323042*/ OPC_MoveChild, 10, ++/*323044*/ OPC_CheckInteger, 1, ++/*323046*/ OPC_CheckType, MVT::i32, ++/*323048*/ OPC_MoveParent, ++/*323049*/ OPC_MoveChild, 11, ++/*323051*/ OPC_CheckInteger, 1, ++/*323053*/ OPC_CheckType, MVT::i32, ++/*323055*/ OPC_MoveParent, ++/*323056*/ OPC_MoveChild, 12, ++/*323058*/ OPC_CheckInteger, 1, ++/*323060*/ OPC_CheckType, MVT::i32, ++/*323062*/ OPC_MoveParent, ++/*323063*/ OPC_MoveChild, 13, ++/*323065*/ OPC_CheckInteger, 1, ++/*323067*/ OPC_CheckType, MVT::i32, ++/*323069*/ OPC_MoveParent, ++/*323070*/ OPC_MoveChild, 14, ++/*323072*/ OPC_CheckInteger, 1, ++/*323074*/ OPC_CheckType, MVT::i32, ++/*323076*/ OPC_MoveParent, ++/*323077*/ OPC_MoveChild, 15, ++/*323079*/ OPC_CheckInteger, 1, ++/*323081*/ OPC_CheckType, MVT::i32, ++/*323083*/ OPC_MoveParent, ++/*323084*/ OPC_MoveChild, 16, ++/*323086*/ OPC_CheckInteger, 1, ++/*323088*/ OPC_CheckType, MVT::i32, ++/*323090*/ OPC_MoveParent, ++/*323091*/ OPC_MoveChild, 17, ++/*323093*/ OPC_CheckInteger, 1, ++/*323095*/ OPC_CheckType, MVT::i32, ++/*323097*/ OPC_MoveParent, ++/*323098*/ OPC_MoveChild, 18, ++/*323100*/ OPC_CheckInteger, 1, ++/*323102*/ OPC_CheckType, MVT::i32, ++/*323104*/ OPC_MoveParent, ++/*323105*/ OPC_MoveChild, 19, ++/*323107*/ OPC_CheckInteger, 1, ++/*323109*/ OPC_CheckType, MVT::i32, ++/*323111*/ OPC_MoveParent, ++/*323112*/ OPC_MoveChild, 20, ++/*323114*/ OPC_CheckInteger, 1, ++/*323116*/ OPC_CheckType, MVT::i32, ++/*323118*/ OPC_MoveParent, ++/*323119*/ OPC_MoveChild, 21, ++/*323121*/ OPC_CheckInteger, 1, ++/*323123*/ OPC_CheckType, MVT::i32, ++/*323125*/ OPC_MoveParent, ++/*323126*/ OPC_MoveChild, 22, ++/*323128*/ OPC_CheckInteger, 1, ++/*323130*/ OPC_CheckType, MVT::i32, ++/*323132*/ OPC_MoveParent, ++/*323133*/ OPC_MoveChild, 23, ++/*323135*/ OPC_CheckInteger, 1, ++/*323137*/ OPC_CheckType, MVT::i32, ++/*323139*/ OPC_MoveParent, ++/*323140*/ OPC_MoveChild, 24, ++/*323142*/ OPC_CheckInteger, 1, ++/*323144*/ OPC_CheckType, MVT::i32, ++/*323146*/ OPC_MoveParent, ++/*323147*/ OPC_MoveChild, 25, ++/*323149*/ OPC_CheckInteger, 1, ++/*323151*/ OPC_CheckType, MVT::i32, ++/*323153*/ OPC_MoveParent, ++/*323154*/ OPC_MoveChild, 26, ++/*323156*/ OPC_CheckInteger, 1, ++/*323158*/ OPC_CheckType, MVT::i32, ++/*323160*/ OPC_MoveParent, ++/*323161*/ OPC_MoveChild, 27, ++/*323163*/ OPC_CheckInteger, 1, ++/*323165*/ OPC_CheckType, MVT::i32, ++/*323167*/ OPC_MoveParent, ++/*323168*/ OPC_MoveChild, 28, ++/*323170*/ OPC_CheckInteger, 1, ++/*323172*/ OPC_CheckType, MVT::i32, ++/*323174*/ OPC_MoveParent, ++/*323175*/ OPC_MoveChild, 29, ++/*323177*/ OPC_CheckInteger, 1, ++/*323179*/ OPC_CheckType, MVT::i32, ++/*323181*/ OPC_MoveParent, ++/*323182*/ OPC_MoveChild, 30, ++/*323184*/ OPC_CheckInteger, 1, ++/*323186*/ OPC_CheckType, MVT::i32, ++/*323188*/ OPC_MoveParent, ++/*323189*/ OPC_MoveChild, 31, ++/*323191*/ OPC_CheckInteger, 1, ++/*323193*/ OPC_CheckType, MVT::i32, ++/*323195*/ OPC_MoveParent, ++/*323196*/ OPC_MoveParent, ++/*323197*/ OPC_MoveChild1, ++/*323198*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*323201*/ OPC_Scope, 104|128,1/*232*/, /*->323436*/ // 2 children in Scope ++/*323204*/ OPC_CheckChild0Same, 0, ++/*323206*/ OPC_CheckChild1Same, 1, ++/*323208*/ OPC_MoveParent, ++/*323209*/ OPC_MoveParent, ++/*323210*/ OPC_MoveParent, ++/*323211*/ OPC_MoveChild1, ++/*323212*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*323215*/ OPC_CheckChild0Integer, 1, ++/*323217*/ OPC_CheckChild0Type, MVT::i32, ++/*323219*/ OPC_CheckChild1Integer, 1, ++/*323221*/ OPC_CheckChild1Type, MVT::i32, ++/*323223*/ OPC_CheckChild2Integer, 1, ++/*323225*/ OPC_CheckChild2Type, MVT::i32, ++/*323227*/ OPC_CheckChild3Integer, 1, ++/*323229*/ OPC_CheckChild3Type, MVT::i32, ++/*323231*/ OPC_CheckChild4Integer, 1, ++/*323233*/ OPC_CheckChild4Type, MVT::i32, ++/*323235*/ OPC_MoveChild5, ++/*323236*/ OPC_CheckInteger, 1, ++/*323238*/ OPC_CheckType, MVT::i32, ++/*323240*/ OPC_MoveParent, ++/*323241*/ OPC_MoveChild6, ++/*323242*/ OPC_CheckInteger, 1, ++/*323244*/ OPC_CheckType, MVT::i32, ++/*323246*/ OPC_MoveParent, ++/*323247*/ OPC_MoveChild7, ++/*323248*/ OPC_CheckInteger, 1, ++/*323250*/ OPC_CheckType, MVT::i32, ++/*323252*/ OPC_MoveParent, ++/*323253*/ OPC_MoveChild, 8, ++/*323255*/ OPC_CheckInteger, 1, ++/*323257*/ OPC_CheckType, MVT::i32, ++/*323259*/ OPC_MoveParent, ++/*323260*/ OPC_MoveChild, 9, ++/*323262*/ OPC_CheckInteger, 1, ++/*323264*/ OPC_CheckType, MVT::i32, ++/*323266*/ OPC_MoveParent, ++/*323267*/ OPC_MoveChild, 10, ++/*323269*/ OPC_CheckInteger, 1, ++/*323271*/ OPC_CheckType, MVT::i32, ++/*323273*/ OPC_MoveParent, ++/*323274*/ OPC_MoveChild, 11, ++/*323276*/ OPC_CheckInteger, 1, ++/*323278*/ OPC_CheckType, MVT::i32, ++/*323280*/ OPC_MoveParent, ++/*323281*/ OPC_MoveChild, 12, ++/*323283*/ OPC_CheckInteger, 1, ++/*323285*/ OPC_CheckType, MVT::i32, ++/*323287*/ OPC_MoveParent, ++/*323288*/ OPC_MoveChild, 13, ++/*323290*/ OPC_CheckInteger, 1, ++/*323292*/ OPC_CheckType, MVT::i32, ++/*323294*/ OPC_MoveParent, ++/*323295*/ OPC_MoveChild, 14, ++/*323297*/ OPC_CheckInteger, 1, ++/*323299*/ OPC_CheckType, MVT::i32, ++/*323301*/ OPC_MoveParent, ++/*323302*/ OPC_MoveChild, 15, ++/*323304*/ OPC_CheckInteger, 1, ++/*323306*/ OPC_CheckType, MVT::i32, ++/*323308*/ OPC_MoveParent, ++/*323309*/ OPC_MoveChild, 16, ++/*323311*/ OPC_CheckInteger, 1, ++/*323313*/ OPC_CheckType, MVT::i32, ++/*323315*/ OPC_MoveParent, ++/*323316*/ OPC_MoveChild, 17, ++/*323318*/ OPC_CheckInteger, 1, ++/*323320*/ OPC_CheckType, MVT::i32, ++/*323322*/ OPC_MoveParent, ++/*323323*/ OPC_MoveChild, 18, ++/*323325*/ OPC_CheckInteger, 1, ++/*323327*/ OPC_CheckType, MVT::i32, ++/*323329*/ OPC_MoveParent, ++/*323330*/ OPC_MoveChild, 19, ++/*323332*/ OPC_CheckInteger, 1, ++/*323334*/ OPC_CheckType, MVT::i32, ++/*323336*/ OPC_MoveParent, ++/*323337*/ OPC_MoveChild, 20, ++/*323339*/ OPC_CheckInteger, 1, ++/*323341*/ OPC_CheckType, MVT::i32, ++/*323343*/ OPC_MoveParent, ++/*323344*/ OPC_MoveChild, 21, ++/*323346*/ OPC_CheckInteger, 1, ++/*323348*/ OPC_CheckType, MVT::i32, ++/*323350*/ OPC_MoveParent, ++/*323351*/ OPC_MoveChild, 22, ++/*323353*/ OPC_CheckInteger, 1, ++/*323355*/ OPC_CheckType, MVT::i32, ++/*323357*/ OPC_MoveParent, ++/*323358*/ OPC_MoveChild, 23, ++/*323360*/ OPC_CheckInteger, 1, ++/*323362*/ OPC_CheckType, MVT::i32, ++/*323364*/ OPC_MoveParent, ++/*323365*/ OPC_MoveChild, 24, ++/*323367*/ OPC_CheckInteger, 1, ++/*323369*/ OPC_CheckType, MVT::i32, ++/*323371*/ OPC_MoveParent, ++/*323372*/ OPC_MoveChild, 25, ++/*323374*/ OPC_CheckInteger, 1, ++/*323376*/ OPC_CheckType, MVT::i32, ++/*323378*/ OPC_MoveParent, ++/*323379*/ OPC_MoveChild, 26, ++/*323381*/ OPC_CheckInteger, 1, ++/*323383*/ OPC_CheckType, MVT::i32, ++/*323385*/ OPC_MoveParent, ++/*323386*/ OPC_MoveChild, 27, ++/*323388*/ OPC_CheckInteger, 1, ++/*323390*/ OPC_CheckType, MVT::i32, ++/*323392*/ OPC_MoveParent, ++/*323393*/ OPC_MoveChild, 28, ++/*323395*/ OPC_CheckInteger, 1, ++/*323397*/ OPC_CheckType, MVT::i32, ++/*323399*/ OPC_MoveParent, ++/*323400*/ OPC_MoveChild, 29, ++/*323402*/ OPC_CheckInteger, 1, ++/*323404*/ OPC_CheckType, MVT::i32, ++/*323406*/ OPC_MoveParent, ++/*323407*/ OPC_MoveChild, 30, ++/*323409*/ OPC_CheckInteger, 1, ++/*323411*/ OPC_CheckType, MVT::i32, ++/*323413*/ OPC_MoveParent, ++/*323414*/ OPC_MoveChild, 31, ++/*323416*/ OPC_CheckInteger, 1, ++/*323418*/ OPC_CheckType, MVT::i32, ++/*323420*/ OPC_MoveParent, ++/*323421*/ OPC_CheckType, MVT::v32i8, ++/*323423*/ OPC_MoveParent, ++/*323424*/ OPC_CheckType, MVT::v32i8, ++/*323426*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*323428*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*323436*/ /*Scope*/ 104|128,1/*232*/, /*->323670*/ ++/*323438*/ OPC_CheckChild0Same, 1, ++/*323440*/ OPC_CheckChild1Same, 0, ++/*323442*/ OPC_MoveParent, ++/*323443*/ OPC_MoveParent, ++/*323444*/ OPC_MoveParent, ++/*323445*/ OPC_MoveChild1, ++/*323446*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*323449*/ OPC_CheckChild0Integer, 1, ++/*323451*/ OPC_CheckChild0Type, MVT::i32, ++/*323453*/ OPC_CheckChild1Integer, 1, ++/*323455*/ OPC_CheckChild1Type, MVT::i32, ++/*323457*/ OPC_CheckChild2Integer, 1, ++/*323459*/ OPC_CheckChild2Type, MVT::i32, ++/*323461*/ OPC_CheckChild3Integer, 1, ++/*323463*/ OPC_CheckChild3Type, MVT::i32, ++/*323465*/ OPC_CheckChild4Integer, 1, ++/*323467*/ OPC_CheckChild4Type, MVT::i32, ++/*323469*/ OPC_MoveChild5, ++/*323470*/ OPC_CheckInteger, 1, ++/*323472*/ OPC_CheckType, MVT::i32, ++/*323474*/ OPC_MoveParent, ++/*323475*/ OPC_MoveChild6, ++/*323476*/ OPC_CheckInteger, 1, ++/*323478*/ OPC_CheckType, MVT::i32, ++/*323480*/ OPC_MoveParent, ++/*323481*/ OPC_MoveChild7, ++/*323482*/ OPC_CheckInteger, 1, ++/*323484*/ OPC_CheckType, MVT::i32, ++/*323486*/ OPC_MoveParent, ++/*323487*/ OPC_MoveChild, 8, ++/*323489*/ OPC_CheckInteger, 1, ++/*323491*/ OPC_CheckType, MVT::i32, ++/*323493*/ OPC_MoveParent, ++/*323494*/ OPC_MoveChild, 9, ++/*323496*/ OPC_CheckInteger, 1, ++/*323498*/ OPC_CheckType, MVT::i32, ++/*323500*/ OPC_MoveParent, ++/*323501*/ OPC_MoveChild, 10, ++/*323503*/ OPC_CheckInteger, 1, ++/*323505*/ OPC_CheckType, MVT::i32, ++/*323507*/ OPC_MoveParent, ++/*323508*/ OPC_MoveChild, 11, ++/*323510*/ OPC_CheckInteger, 1, ++/*323512*/ OPC_CheckType, MVT::i32, ++/*323514*/ OPC_MoveParent, ++/*323515*/ OPC_MoveChild, 12, ++/*323517*/ OPC_CheckInteger, 1, ++/*323519*/ OPC_CheckType, MVT::i32, ++/*323521*/ OPC_MoveParent, ++/*323522*/ OPC_MoveChild, 13, ++/*323524*/ OPC_CheckInteger, 1, ++/*323526*/ OPC_CheckType, MVT::i32, ++/*323528*/ OPC_MoveParent, ++/*323529*/ OPC_MoveChild, 14, ++/*323531*/ OPC_CheckInteger, 1, ++/*323533*/ OPC_CheckType, MVT::i32, ++/*323535*/ OPC_MoveParent, ++/*323536*/ OPC_MoveChild, 15, ++/*323538*/ OPC_CheckInteger, 1, ++/*323540*/ OPC_CheckType, MVT::i32, ++/*323542*/ OPC_MoveParent, ++/*323543*/ OPC_MoveChild, 16, ++/*323545*/ OPC_CheckInteger, 1, ++/*323547*/ OPC_CheckType, MVT::i32, ++/*323549*/ OPC_MoveParent, ++/*323550*/ OPC_MoveChild, 17, ++/*323552*/ OPC_CheckInteger, 1, ++/*323554*/ OPC_CheckType, MVT::i32, ++/*323556*/ OPC_MoveParent, ++/*323557*/ OPC_MoveChild, 18, ++/*323559*/ OPC_CheckInteger, 1, ++/*323561*/ OPC_CheckType, MVT::i32, ++/*323563*/ OPC_MoveParent, ++/*323564*/ OPC_MoveChild, 19, ++/*323566*/ OPC_CheckInteger, 1, ++/*323568*/ OPC_CheckType, MVT::i32, ++/*323570*/ OPC_MoveParent, ++/*323571*/ OPC_MoveChild, 20, ++/*323573*/ OPC_CheckInteger, 1, ++/*323575*/ OPC_CheckType, MVT::i32, ++/*323577*/ OPC_MoveParent, ++/*323578*/ OPC_MoveChild, 21, ++/*323580*/ OPC_CheckInteger, 1, ++/*323582*/ OPC_CheckType, MVT::i32, ++/*323584*/ OPC_MoveParent, ++/*323585*/ OPC_MoveChild, 22, ++/*323587*/ OPC_CheckInteger, 1, ++/*323589*/ OPC_CheckType, MVT::i32, ++/*323591*/ OPC_MoveParent, ++/*323592*/ OPC_MoveChild, 23, ++/*323594*/ OPC_CheckInteger, 1, ++/*323596*/ OPC_CheckType, MVT::i32, ++/*323598*/ OPC_MoveParent, ++/*323599*/ OPC_MoveChild, 24, ++/*323601*/ OPC_CheckInteger, 1, ++/*323603*/ OPC_CheckType, MVT::i32, ++/*323605*/ OPC_MoveParent, ++/*323606*/ OPC_MoveChild, 25, ++/*323608*/ OPC_CheckInteger, 1, ++/*323610*/ OPC_CheckType, MVT::i32, ++/*323612*/ OPC_MoveParent, ++/*323613*/ OPC_MoveChild, 26, ++/*323615*/ OPC_CheckInteger, 1, ++/*323617*/ OPC_CheckType, MVT::i32, ++/*323619*/ OPC_MoveParent, ++/*323620*/ OPC_MoveChild, 27, ++/*323622*/ OPC_CheckInteger, 1, ++/*323624*/ OPC_CheckType, MVT::i32, ++/*323626*/ OPC_MoveParent, ++/*323627*/ OPC_MoveChild, 28, ++/*323629*/ OPC_CheckInteger, 1, ++/*323631*/ OPC_CheckType, MVT::i32, ++/*323633*/ OPC_MoveParent, ++/*323634*/ OPC_MoveChild, 29, ++/*323636*/ OPC_CheckInteger, 1, ++/*323638*/ OPC_CheckType, MVT::i32, ++/*323640*/ OPC_MoveParent, ++/*323641*/ OPC_MoveChild, 30, ++/*323643*/ OPC_CheckInteger, 1, ++/*323645*/ OPC_CheckType, MVT::i32, ++/*323647*/ OPC_MoveParent, ++/*323648*/ OPC_MoveChild, 31, ++/*323650*/ OPC_CheckInteger, 1, ++/*323652*/ OPC_CheckType, MVT::i32, ++/*323654*/ OPC_MoveParent, ++/*323655*/ OPC_CheckType, MVT::v32i8, ++/*323657*/ OPC_MoveParent, ++/*323658*/ OPC_CheckType, MVT::v32i8, ++/*323660*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*323662*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*323670*/ 0, /*End of Scope*/ ++/*323671*/ 0, /*End of Scope*/ ++/*323672*/ /*Scope*/ 87|128,43/*5591*/, /*->329265*/ ++/*323674*/ OPC_RecordChild0, // #1 = $b ++/*323675*/ OPC_MoveChild1, ++/*323676*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*323679*/ OPC_CheckChild0Integer, 1, ++/*323681*/ OPC_CheckChild0Type, MVT::i32, ++/*323683*/ OPC_CheckChild1Integer, 1, ++/*323685*/ OPC_CheckChild1Type, MVT::i32, ++/*323687*/ OPC_CheckChild2Integer, 1, ++/*323689*/ OPC_CheckChild2Type, MVT::i32, ++/*323691*/ OPC_CheckChild3Integer, 1, ++/*323693*/ OPC_CheckChild3Type, MVT::i32, ++/*323695*/ OPC_CheckChild4Integer, 1, ++/*323697*/ OPC_CheckChild4Type, MVT::i32, ++/*323699*/ OPC_MoveChild5, ++/*323700*/ OPC_CheckInteger, 1, ++/*323702*/ OPC_CheckType, MVT::i32, ++/*323704*/ OPC_MoveParent, ++/*323705*/ OPC_MoveChild6, ++/*323706*/ OPC_CheckInteger, 1, ++/*323708*/ OPC_CheckType, MVT::i32, ++/*323710*/ OPC_MoveParent, ++/*323711*/ OPC_MoveChild7, ++/*323712*/ OPC_CheckInteger, 1, ++/*323714*/ OPC_CheckType, MVT::i32, ++/*323716*/ OPC_MoveParent, ++/*323717*/ OPC_MoveChild, 8, ++/*323719*/ OPC_CheckInteger, 1, ++/*323721*/ OPC_CheckType, MVT::i32, ++/*323723*/ OPC_MoveParent, ++/*323724*/ OPC_MoveChild, 9, ++/*323726*/ OPC_CheckInteger, 1, ++/*323728*/ OPC_CheckType, MVT::i32, ++/*323730*/ OPC_MoveParent, ++/*323731*/ OPC_MoveChild, 10, ++/*323733*/ OPC_CheckInteger, 1, ++/*323735*/ OPC_CheckType, MVT::i32, ++/*323737*/ OPC_MoveParent, ++/*323738*/ OPC_MoveChild, 11, ++/*323740*/ OPC_CheckInteger, 1, ++/*323742*/ OPC_CheckType, MVT::i32, ++/*323744*/ OPC_MoveParent, ++/*323745*/ OPC_MoveChild, 12, ++/*323747*/ OPC_CheckInteger, 1, ++/*323749*/ OPC_CheckType, MVT::i32, ++/*323751*/ OPC_MoveParent, ++/*323752*/ OPC_MoveChild, 13, ++/*323754*/ OPC_CheckInteger, 1, ++/*323756*/ OPC_CheckType, MVT::i32, ++/*323758*/ OPC_MoveParent, ++/*323759*/ OPC_MoveChild, 14, ++/*323761*/ OPC_CheckInteger, 1, ++/*323763*/ OPC_CheckType, MVT::i32, ++/*323765*/ OPC_MoveParent, ++/*323766*/ OPC_MoveChild, 15, ++/*323768*/ OPC_CheckInteger, 1, ++/*323770*/ OPC_CheckType, MVT::i32, ++/*323772*/ OPC_MoveParent, ++/*323773*/ OPC_MoveChild, 16, ++/*323775*/ OPC_CheckInteger, 1, ++/*323777*/ OPC_CheckType, MVT::i32, ++/*323779*/ OPC_MoveParent, ++/*323780*/ OPC_MoveChild, 17, ++/*323782*/ OPC_CheckInteger, 1, ++/*323784*/ OPC_CheckType, MVT::i32, ++/*323786*/ OPC_MoveParent, ++/*323787*/ OPC_MoveChild, 18, ++/*323789*/ OPC_CheckInteger, 1, ++/*323791*/ OPC_CheckType, MVT::i32, ++/*323793*/ OPC_MoveParent, ++/*323794*/ OPC_MoveChild, 19, ++/*323796*/ OPC_CheckInteger, 1, ++/*323798*/ OPC_CheckType, MVT::i32, ++/*323800*/ OPC_MoveParent, ++/*323801*/ OPC_MoveChild, 20, ++/*323803*/ OPC_CheckInteger, 1, ++/*323805*/ OPC_CheckType, MVT::i32, ++/*323807*/ OPC_MoveParent, ++/*323808*/ OPC_MoveChild, 21, ++/*323810*/ OPC_CheckInteger, 1, ++/*323812*/ OPC_CheckType, MVT::i32, ++/*323814*/ OPC_MoveParent, ++/*323815*/ OPC_MoveChild, 22, ++/*323817*/ OPC_CheckInteger, 1, ++/*323819*/ OPC_CheckType, MVT::i32, ++/*323821*/ OPC_MoveParent, ++/*323822*/ OPC_MoveChild, 23, ++/*323824*/ OPC_CheckInteger, 1, ++/*323826*/ OPC_CheckType, MVT::i32, ++/*323828*/ OPC_MoveParent, ++/*323829*/ OPC_MoveChild, 24, ++/*323831*/ OPC_CheckInteger, 1, ++/*323833*/ OPC_CheckType, MVT::i32, ++/*323835*/ OPC_MoveParent, ++/*323836*/ OPC_MoveChild, 25, ++/*323838*/ OPC_CheckInteger, 1, ++/*323840*/ OPC_CheckType, MVT::i32, ++/*323842*/ OPC_MoveParent, ++/*323843*/ OPC_MoveChild, 26, ++/*323845*/ OPC_CheckInteger, 1, ++/*323847*/ OPC_CheckType, MVT::i32, ++/*323849*/ OPC_MoveParent, ++/*323850*/ OPC_MoveChild, 27, ++/*323852*/ OPC_CheckInteger, 1, ++/*323854*/ OPC_CheckType, MVT::i32, ++/*323856*/ OPC_MoveParent, ++/*323857*/ OPC_MoveChild, 28, ++/*323859*/ OPC_CheckInteger, 1, ++/*323861*/ OPC_CheckType, MVT::i32, ++/*323863*/ OPC_MoveParent, ++/*323864*/ OPC_MoveChild, 29, ++/*323866*/ OPC_CheckInteger, 1, ++/*323868*/ OPC_CheckType, MVT::i32, ++/*323870*/ OPC_MoveParent, ++/*323871*/ OPC_MoveChild, 30, ++/*323873*/ OPC_CheckInteger, 1, ++/*323875*/ OPC_CheckType, MVT::i32, ++/*323877*/ OPC_MoveParent, ++/*323878*/ OPC_MoveChild, 31, ++/*323880*/ OPC_CheckInteger, 1, ++/*323882*/ OPC_CheckType, MVT::i32, ++/*323884*/ OPC_MoveParent, ++/*323885*/ OPC_MoveParent, ++/*323886*/ OPC_MoveParent, ++/*323887*/ OPC_MoveParent, ++/*323888*/ OPC_MoveChild1, ++/*323889*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*323892*/ OPC_CheckChild0Integer, 7, ++/*323894*/ OPC_CheckChild0Type, MVT::i32, ++/*323896*/ OPC_CheckChild1Integer, 7, ++/*323898*/ OPC_CheckChild1Type, MVT::i32, ++/*323900*/ OPC_CheckChild2Integer, 7, ++/*323902*/ OPC_CheckChild2Type, MVT::i32, ++/*323904*/ OPC_CheckChild3Integer, 7, ++/*323906*/ OPC_CheckChild3Type, MVT::i32, ++/*323908*/ OPC_CheckChild4Integer, 7, ++/*323910*/ OPC_CheckChild4Type, MVT::i32, ++/*323912*/ OPC_MoveChild5, ++/*323913*/ OPC_CheckInteger, 7, ++/*323915*/ OPC_CheckType, MVT::i32, ++/*323917*/ OPC_MoveParent, ++/*323918*/ OPC_MoveChild6, ++/*323919*/ OPC_CheckInteger, 7, ++/*323921*/ OPC_CheckType, MVT::i32, ++/*323923*/ OPC_MoveParent, ++/*323924*/ OPC_MoveChild7, ++/*323925*/ OPC_CheckInteger, 7, ++/*323927*/ OPC_CheckType, MVT::i32, ++/*323929*/ OPC_MoveParent, ++/*323930*/ OPC_MoveChild, 8, ++/*323932*/ OPC_CheckInteger, 7, ++/*323934*/ OPC_CheckType, MVT::i32, ++/*323936*/ OPC_MoveParent, ++/*323937*/ OPC_MoveChild, 9, ++/*323939*/ OPC_CheckInteger, 7, ++/*323941*/ OPC_CheckType, MVT::i32, ++/*323943*/ OPC_MoveParent, ++/*323944*/ OPC_MoveChild, 10, ++/*323946*/ OPC_CheckInteger, 7, ++/*323948*/ OPC_CheckType, MVT::i32, ++/*323950*/ OPC_MoveParent, ++/*323951*/ OPC_MoveChild, 11, ++/*323953*/ OPC_CheckInteger, 7, ++/*323955*/ OPC_CheckType, MVT::i32, ++/*323957*/ OPC_MoveParent, ++/*323958*/ OPC_MoveChild, 12, ++/*323960*/ OPC_CheckInteger, 7, ++/*323962*/ OPC_CheckType, MVT::i32, ++/*323964*/ OPC_MoveParent, ++/*323965*/ OPC_MoveChild, 13, ++/*323967*/ OPC_CheckInteger, 7, ++/*323969*/ OPC_CheckType, MVT::i32, ++/*323971*/ OPC_MoveParent, ++/*323972*/ OPC_MoveChild, 14, ++/*323974*/ OPC_CheckInteger, 7, ++/*323976*/ OPC_CheckType, MVT::i32, ++/*323978*/ OPC_MoveParent, ++/*323979*/ OPC_MoveChild, 15, ++/*323981*/ OPC_CheckInteger, 7, ++/*323983*/ OPC_CheckType, MVT::i32, ++/*323985*/ OPC_MoveParent, ++/*323986*/ OPC_MoveChild, 16, ++/*323988*/ OPC_CheckInteger, 7, ++/*323990*/ OPC_CheckType, MVT::i32, ++/*323992*/ OPC_MoveParent, ++/*323993*/ OPC_MoveChild, 17, ++/*323995*/ OPC_CheckInteger, 7, ++/*323997*/ OPC_CheckType, MVT::i32, ++/*323999*/ OPC_MoveParent, ++/*324000*/ OPC_MoveChild, 18, ++/*324002*/ OPC_CheckInteger, 7, ++/*324004*/ OPC_CheckType, MVT::i32, ++/*324006*/ OPC_MoveParent, ++/*324007*/ OPC_MoveChild, 19, ++/*324009*/ OPC_CheckInteger, 7, ++/*324011*/ OPC_CheckType, MVT::i32, ++/*324013*/ OPC_MoveParent, ++/*324014*/ OPC_MoveChild, 20, ++/*324016*/ OPC_CheckInteger, 7, ++/*324018*/ OPC_CheckType, MVT::i32, ++/*324020*/ OPC_MoveParent, ++/*324021*/ OPC_MoveChild, 21, ++/*324023*/ OPC_CheckInteger, 7, ++/*324025*/ OPC_CheckType, MVT::i32, ++/*324027*/ OPC_MoveParent, ++/*324028*/ OPC_MoveChild, 22, ++/*324030*/ OPC_CheckInteger, 7, ++/*324032*/ OPC_CheckType, MVT::i32, ++/*324034*/ OPC_MoveParent, ++/*324035*/ OPC_MoveChild, 23, ++/*324037*/ OPC_CheckInteger, 7, ++/*324039*/ OPC_CheckType, MVT::i32, ++/*324041*/ OPC_MoveParent, ++/*324042*/ OPC_MoveChild, 24, ++/*324044*/ OPC_CheckInteger, 7, ++/*324046*/ OPC_CheckType, MVT::i32, ++/*324048*/ OPC_MoveParent, ++/*324049*/ OPC_MoveChild, 25, ++/*324051*/ OPC_CheckInteger, 7, ++/*324053*/ OPC_CheckType, MVT::i32, ++/*324055*/ OPC_MoveParent, ++/*324056*/ OPC_MoveChild, 26, ++/*324058*/ OPC_CheckInteger, 7, ++/*324060*/ OPC_CheckType, MVT::i32, ++/*324062*/ OPC_MoveParent, ++/*324063*/ OPC_MoveChild, 27, ++/*324065*/ OPC_CheckInteger, 7, ++/*324067*/ OPC_CheckType, MVT::i32, ++/*324069*/ OPC_MoveParent, ++/*324070*/ OPC_MoveChild, 28, ++/*324072*/ OPC_CheckInteger, 7, ++/*324074*/ OPC_CheckType, MVT::i32, ++/*324076*/ OPC_MoveParent, ++/*324077*/ OPC_MoveChild, 29, ++/*324079*/ OPC_CheckInteger, 7, ++/*324081*/ OPC_CheckType, MVT::i32, ++/*324083*/ OPC_MoveParent, ++/*324084*/ OPC_MoveChild, 30, ++/*324086*/ OPC_CheckInteger, 7, ++/*324088*/ OPC_CheckType, MVT::i32, ++/*324090*/ OPC_MoveParent, ++/*324091*/ OPC_MoveChild, 31, ++/*324093*/ OPC_CheckInteger, 7, ++/*324095*/ OPC_CheckType, MVT::i32, ++/*324097*/ OPC_MoveParent, ++/*324098*/ OPC_CheckType, MVT::v32i8, ++/*324100*/ OPC_MoveParent, ++/*324101*/ OPC_MoveParent, ++/*324102*/ OPC_MoveChild1, ++/*324103*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*324106*/ OPC_Scope, 116|128,20/*2676*/, /*->326785*/ // 4 children in Scope ++/*324109*/ OPC_MoveChild0, ++/*324110*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*324113*/ OPC_Scope, 59|128,3/*443*/, /*->324559*/ // 6 children in Scope ++/*324116*/ OPC_MoveChild0, ++/*324117*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*324120*/ OPC_CheckChild0Integer, 1, ++/*324122*/ OPC_CheckChild0Type, MVT::i32, ++/*324124*/ OPC_CheckChild1Integer, 1, ++/*324126*/ OPC_CheckChild1Type, MVT::i32, ++/*324128*/ OPC_CheckChild2Integer, 1, ++/*324130*/ OPC_CheckChild2Type, MVT::i32, ++/*324132*/ OPC_CheckChild3Integer, 1, ++/*324134*/ OPC_CheckChild3Type, MVT::i32, ++/*324136*/ OPC_CheckChild4Integer, 1, ++/*324138*/ OPC_CheckChild4Type, MVT::i32, ++/*324140*/ OPC_MoveChild5, ++/*324141*/ OPC_CheckInteger, 1, ++/*324143*/ OPC_CheckType, MVT::i32, ++/*324145*/ OPC_MoveParent, ++/*324146*/ OPC_MoveChild6, ++/*324147*/ OPC_CheckInteger, 1, ++/*324149*/ OPC_CheckType, MVT::i32, ++/*324151*/ OPC_MoveParent, ++/*324152*/ OPC_MoveChild7, ++/*324153*/ OPC_CheckInteger, 1, ++/*324155*/ OPC_CheckType, MVT::i32, ++/*324157*/ OPC_MoveParent, ++/*324158*/ OPC_MoveChild, 8, ++/*324160*/ OPC_CheckInteger, 1, ++/*324162*/ OPC_CheckType, MVT::i32, ++/*324164*/ OPC_MoveParent, ++/*324165*/ OPC_MoveChild, 9, ++/*324167*/ OPC_CheckInteger, 1, ++/*324169*/ OPC_CheckType, MVT::i32, ++/*324171*/ OPC_MoveParent, ++/*324172*/ OPC_MoveChild, 10, ++/*324174*/ OPC_CheckInteger, 1, ++/*324176*/ OPC_CheckType, MVT::i32, ++/*324178*/ OPC_MoveParent, ++/*324179*/ OPC_MoveChild, 11, ++/*324181*/ OPC_CheckInteger, 1, ++/*324183*/ OPC_CheckType, MVT::i32, ++/*324185*/ OPC_MoveParent, ++/*324186*/ OPC_MoveChild, 12, ++/*324188*/ OPC_CheckInteger, 1, ++/*324190*/ OPC_CheckType, MVT::i32, ++/*324192*/ OPC_MoveParent, ++/*324193*/ OPC_MoveChild, 13, ++/*324195*/ OPC_CheckInteger, 1, ++/*324197*/ OPC_CheckType, MVT::i32, ++/*324199*/ OPC_MoveParent, ++/*324200*/ OPC_MoveChild, 14, ++/*324202*/ OPC_CheckInteger, 1, ++/*324204*/ OPC_CheckType, MVT::i32, ++/*324206*/ OPC_MoveParent, ++/*324207*/ OPC_MoveChild, 15, ++/*324209*/ OPC_CheckInteger, 1, ++/*324211*/ OPC_CheckType, MVT::i32, ++/*324213*/ OPC_MoveParent, ++/*324214*/ OPC_MoveChild, 16, ++/*324216*/ OPC_CheckInteger, 1, ++/*324218*/ OPC_CheckType, MVT::i32, ++/*324220*/ OPC_MoveParent, ++/*324221*/ OPC_MoveChild, 17, ++/*324223*/ OPC_CheckInteger, 1, ++/*324225*/ OPC_CheckType, MVT::i32, ++/*324227*/ OPC_MoveParent, ++/*324228*/ OPC_MoveChild, 18, ++/*324230*/ OPC_CheckInteger, 1, ++/*324232*/ OPC_CheckType, MVT::i32, ++/*324234*/ OPC_MoveParent, ++/*324235*/ OPC_MoveChild, 19, ++/*324237*/ OPC_CheckInteger, 1, ++/*324239*/ OPC_CheckType, MVT::i32, ++/*324241*/ OPC_MoveParent, ++/*324242*/ OPC_MoveChild, 20, ++/*324244*/ OPC_CheckInteger, 1, ++/*324246*/ OPC_CheckType, MVT::i32, ++/*324248*/ OPC_MoveParent, ++/*324249*/ OPC_MoveChild, 21, ++/*324251*/ OPC_CheckInteger, 1, ++/*324253*/ OPC_CheckType, MVT::i32, ++/*324255*/ OPC_MoveParent, ++/*324256*/ OPC_MoveChild, 22, ++/*324258*/ OPC_CheckInteger, 1, ++/*324260*/ OPC_CheckType, MVT::i32, ++/*324262*/ OPC_MoveParent, ++/*324263*/ OPC_MoveChild, 23, ++/*324265*/ OPC_CheckInteger, 1, ++/*324267*/ OPC_CheckType, MVT::i32, ++/*324269*/ OPC_MoveParent, ++/*324270*/ OPC_MoveChild, 24, ++/*324272*/ OPC_CheckInteger, 1, ++/*324274*/ OPC_CheckType, MVT::i32, ++/*324276*/ OPC_MoveParent, ++/*324277*/ OPC_MoveChild, 25, ++/*324279*/ OPC_CheckInteger, 1, ++/*324281*/ OPC_CheckType, MVT::i32, ++/*324283*/ OPC_MoveParent, ++/*324284*/ OPC_MoveChild, 26, ++/*324286*/ OPC_CheckInteger, 1, ++/*324288*/ OPC_CheckType, MVT::i32, ++/*324290*/ OPC_MoveParent, ++/*324291*/ OPC_MoveChild, 27, ++/*324293*/ OPC_CheckInteger, 1, ++/*324295*/ OPC_CheckType, MVT::i32, ++/*324297*/ OPC_MoveParent, ++/*324298*/ OPC_MoveChild, 28, ++/*324300*/ OPC_CheckInteger, 1, ++/*324302*/ OPC_CheckType, MVT::i32, ++/*324304*/ OPC_MoveParent, ++/*324305*/ OPC_MoveChild, 29, ++/*324307*/ OPC_CheckInteger, 1, ++/*324309*/ OPC_CheckType, MVT::i32, ++/*324311*/ OPC_MoveParent, ++/*324312*/ OPC_MoveChild, 30, ++/*324314*/ OPC_CheckInteger, 1, ++/*324316*/ OPC_CheckType, MVT::i32, ++/*324318*/ OPC_MoveParent, ++/*324319*/ OPC_MoveChild, 31, ++/*324321*/ OPC_CheckInteger, 1, ++/*324323*/ OPC_CheckType, MVT::i32, ++/*324325*/ OPC_MoveParent, ++/*324326*/ OPC_MoveParent, ++/*324327*/ OPC_CheckChild1Same, 0, ++/*324329*/ OPC_MoveParent, ++/*324330*/ OPC_CheckChild1Same, 1, ++/*324332*/ OPC_MoveParent, ++/*324333*/ OPC_MoveParent, ++/*324334*/ OPC_MoveChild1, ++/*324335*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*324338*/ OPC_CheckChild0Integer, 1, ++/*324340*/ OPC_CheckChild0Type, MVT::i32, ++/*324342*/ OPC_CheckChild1Integer, 1, ++/*324344*/ OPC_CheckChild1Type, MVT::i32, ++/*324346*/ OPC_CheckChild2Integer, 1, ++/*324348*/ OPC_CheckChild2Type, MVT::i32, ++/*324350*/ OPC_CheckChild3Integer, 1, ++/*324352*/ OPC_CheckChild3Type, MVT::i32, ++/*324354*/ OPC_CheckChild4Integer, 1, ++/*324356*/ OPC_CheckChild4Type, MVT::i32, ++/*324358*/ OPC_MoveChild5, ++/*324359*/ OPC_CheckInteger, 1, ++/*324361*/ OPC_CheckType, MVT::i32, ++/*324363*/ OPC_MoveParent, ++/*324364*/ OPC_MoveChild6, ++/*324365*/ OPC_CheckInteger, 1, ++/*324367*/ OPC_CheckType, MVT::i32, ++/*324369*/ OPC_MoveParent, ++/*324370*/ OPC_MoveChild7, ++/*324371*/ OPC_CheckInteger, 1, ++/*324373*/ OPC_CheckType, MVT::i32, ++/*324375*/ OPC_MoveParent, ++/*324376*/ OPC_MoveChild, 8, ++/*324378*/ OPC_CheckInteger, 1, ++/*324380*/ OPC_CheckType, MVT::i32, ++/*324382*/ OPC_MoveParent, ++/*324383*/ OPC_MoveChild, 9, ++/*324385*/ OPC_CheckInteger, 1, ++/*324387*/ OPC_CheckType, MVT::i32, ++/*324389*/ OPC_MoveParent, ++/*324390*/ OPC_MoveChild, 10, ++/*324392*/ OPC_CheckInteger, 1, ++/*324394*/ OPC_CheckType, MVT::i32, ++/*324396*/ OPC_MoveParent, ++/*324397*/ OPC_MoveChild, 11, ++/*324399*/ OPC_CheckInteger, 1, ++/*324401*/ OPC_CheckType, MVT::i32, ++/*324403*/ OPC_MoveParent, ++/*324404*/ OPC_MoveChild, 12, ++/*324406*/ OPC_CheckInteger, 1, ++/*324408*/ OPC_CheckType, MVT::i32, ++/*324410*/ OPC_MoveParent, ++/*324411*/ OPC_MoveChild, 13, ++/*324413*/ OPC_CheckInteger, 1, ++/*324415*/ OPC_CheckType, MVT::i32, ++/*324417*/ OPC_MoveParent, ++/*324418*/ OPC_MoveChild, 14, ++/*324420*/ OPC_CheckInteger, 1, ++/*324422*/ OPC_CheckType, MVT::i32, ++/*324424*/ OPC_MoveParent, ++/*324425*/ OPC_MoveChild, 15, ++/*324427*/ OPC_CheckInteger, 1, ++/*324429*/ OPC_CheckType, MVT::i32, ++/*324431*/ OPC_MoveParent, ++/*324432*/ OPC_MoveChild, 16, ++/*324434*/ OPC_CheckInteger, 1, ++/*324436*/ OPC_CheckType, MVT::i32, ++/*324438*/ OPC_MoveParent, ++/*324439*/ OPC_MoveChild, 17, ++/*324441*/ OPC_CheckInteger, 1, ++/*324443*/ OPC_CheckType, MVT::i32, ++/*324445*/ OPC_MoveParent, ++/*324446*/ OPC_MoveChild, 18, ++/*324448*/ OPC_CheckInteger, 1, ++/*324450*/ OPC_CheckType, MVT::i32, ++/*324452*/ OPC_MoveParent, ++/*324453*/ OPC_MoveChild, 19, ++/*324455*/ OPC_CheckInteger, 1, ++/*324457*/ OPC_CheckType, MVT::i32, ++/*324459*/ OPC_MoveParent, ++/*324460*/ OPC_MoveChild, 20, ++/*324462*/ OPC_CheckInteger, 1, ++/*324464*/ OPC_CheckType, MVT::i32, ++/*324466*/ OPC_MoveParent, ++/*324467*/ OPC_MoveChild, 21, ++/*324469*/ OPC_CheckInteger, 1, ++/*324471*/ OPC_CheckType, MVT::i32, ++/*324473*/ OPC_MoveParent, ++/*324474*/ OPC_MoveChild, 22, ++/*324476*/ OPC_CheckInteger, 1, ++/*324478*/ OPC_CheckType, MVT::i32, ++/*324480*/ OPC_MoveParent, ++/*324481*/ OPC_MoveChild, 23, ++/*324483*/ OPC_CheckInteger, 1, ++/*324485*/ OPC_CheckType, MVT::i32, ++/*324487*/ OPC_MoveParent, ++/*324488*/ OPC_MoveChild, 24, ++/*324490*/ OPC_CheckInteger, 1, ++/*324492*/ OPC_CheckType, MVT::i32, ++/*324494*/ OPC_MoveParent, ++/*324495*/ OPC_MoveChild, 25, ++/*324497*/ OPC_CheckInteger, 1, ++/*324499*/ OPC_CheckType, MVT::i32, ++/*324501*/ OPC_MoveParent, ++/*324502*/ OPC_MoveChild, 26, ++/*324504*/ OPC_CheckInteger, 1, ++/*324506*/ OPC_CheckType, MVT::i32, ++/*324508*/ OPC_MoveParent, ++/*324509*/ OPC_MoveChild, 27, ++/*324511*/ OPC_CheckInteger, 1, ++/*324513*/ OPC_CheckType, MVT::i32, ++/*324515*/ OPC_MoveParent, ++/*324516*/ OPC_MoveChild, 28, ++/*324518*/ OPC_CheckInteger, 1, ++/*324520*/ OPC_CheckType, MVT::i32, ++/*324522*/ OPC_MoveParent, ++/*324523*/ OPC_MoveChild, 29, ++/*324525*/ OPC_CheckInteger, 1, ++/*324527*/ OPC_CheckType, MVT::i32, ++/*324529*/ OPC_MoveParent, ++/*324530*/ OPC_MoveChild, 30, ++/*324532*/ OPC_CheckInteger, 1, ++/*324534*/ OPC_CheckType, MVT::i32, ++/*324536*/ OPC_MoveParent, ++/*324537*/ OPC_MoveChild, 31, ++/*324539*/ OPC_CheckInteger, 1, ++/*324541*/ OPC_CheckType, MVT::i32, ++/*324543*/ OPC_MoveParent, ++/*324544*/ OPC_CheckType, MVT::v32i8, ++/*324546*/ OPC_MoveParent, ++/*324547*/ OPC_CheckType, MVT::v32i8, ++/*324549*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*324551*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a), LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*324559*/ /*Scope*/ 59|128,3/*443*/, /*->325004*/ ++/*324561*/ OPC_CheckChild0Same, 0, ++/*324563*/ OPC_MoveChild1, ++/*324564*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*324567*/ OPC_CheckChild0Integer, 1, ++/*324569*/ OPC_CheckChild0Type, MVT::i32, ++/*324571*/ OPC_CheckChild1Integer, 1, ++/*324573*/ OPC_CheckChild1Type, MVT::i32, ++/*324575*/ OPC_CheckChild2Integer, 1, ++/*324577*/ OPC_CheckChild2Type, MVT::i32, ++/*324579*/ OPC_CheckChild3Integer, 1, ++/*324581*/ OPC_CheckChild3Type, MVT::i32, ++/*324583*/ OPC_CheckChild4Integer, 1, ++/*324585*/ OPC_CheckChild4Type, MVT::i32, ++/*324587*/ OPC_MoveChild5, ++/*324588*/ OPC_CheckInteger, 1, ++/*324590*/ OPC_CheckType, MVT::i32, ++/*324592*/ OPC_MoveParent, ++/*324593*/ OPC_MoveChild6, ++/*324594*/ OPC_CheckInteger, 1, ++/*324596*/ OPC_CheckType, MVT::i32, ++/*324598*/ OPC_MoveParent, ++/*324599*/ OPC_MoveChild7, ++/*324600*/ OPC_CheckInteger, 1, ++/*324602*/ OPC_CheckType, MVT::i32, ++/*324604*/ OPC_MoveParent, ++/*324605*/ OPC_MoveChild, 8, ++/*324607*/ OPC_CheckInteger, 1, ++/*324609*/ OPC_CheckType, MVT::i32, ++/*324611*/ OPC_MoveParent, ++/*324612*/ OPC_MoveChild, 9, ++/*324614*/ OPC_CheckInteger, 1, ++/*324616*/ OPC_CheckType, MVT::i32, ++/*324618*/ OPC_MoveParent, ++/*324619*/ OPC_MoveChild, 10, ++/*324621*/ OPC_CheckInteger, 1, ++/*324623*/ OPC_CheckType, MVT::i32, ++/*324625*/ OPC_MoveParent, ++/*324626*/ OPC_MoveChild, 11, ++/*324628*/ OPC_CheckInteger, 1, ++/*324630*/ OPC_CheckType, MVT::i32, ++/*324632*/ OPC_MoveParent, ++/*324633*/ OPC_MoveChild, 12, ++/*324635*/ OPC_CheckInteger, 1, ++/*324637*/ OPC_CheckType, MVT::i32, ++/*324639*/ OPC_MoveParent, ++/*324640*/ OPC_MoveChild, 13, ++/*324642*/ OPC_CheckInteger, 1, ++/*324644*/ OPC_CheckType, MVT::i32, ++/*324646*/ OPC_MoveParent, ++/*324647*/ OPC_MoveChild, 14, ++/*324649*/ OPC_CheckInteger, 1, ++/*324651*/ OPC_CheckType, MVT::i32, ++/*324653*/ OPC_MoveParent, ++/*324654*/ OPC_MoveChild, 15, ++/*324656*/ OPC_CheckInteger, 1, ++/*324658*/ OPC_CheckType, MVT::i32, ++/*324660*/ OPC_MoveParent, ++/*324661*/ OPC_MoveChild, 16, ++/*324663*/ OPC_CheckInteger, 1, ++/*324665*/ OPC_CheckType, MVT::i32, ++/*324667*/ OPC_MoveParent, ++/*324668*/ OPC_MoveChild, 17, ++/*324670*/ OPC_CheckInteger, 1, ++/*324672*/ OPC_CheckType, MVT::i32, ++/*324674*/ OPC_MoveParent, ++/*324675*/ OPC_MoveChild, 18, ++/*324677*/ OPC_CheckInteger, 1, ++/*324679*/ OPC_CheckType, MVT::i32, ++/*324681*/ OPC_MoveParent, ++/*324682*/ OPC_MoveChild, 19, ++/*324684*/ OPC_CheckInteger, 1, ++/*324686*/ OPC_CheckType, MVT::i32, ++/*324688*/ OPC_MoveParent, ++/*324689*/ OPC_MoveChild, 20, ++/*324691*/ OPC_CheckInteger, 1, ++/*324693*/ OPC_CheckType, MVT::i32, ++/*324695*/ OPC_MoveParent, ++/*324696*/ OPC_MoveChild, 21, ++/*324698*/ OPC_CheckInteger, 1, ++/*324700*/ OPC_CheckType, MVT::i32, ++/*324702*/ OPC_MoveParent, ++/*324703*/ OPC_MoveChild, 22, ++/*324705*/ OPC_CheckInteger, 1, ++/*324707*/ OPC_CheckType, MVT::i32, ++/*324709*/ OPC_MoveParent, ++/*324710*/ OPC_MoveChild, 23, ++/*324712*/ OPC_CheckInteger, 1, ++/*324714*/ OPC_CheckType, MVT::i32, ++/*324716*/ OPC_MoveParent, ++/*324717*/ OPC_MoveChild, 24, ++/*324719*/ OPC_CheckInteger, 1, ++/*324721*/ OPC_CheckType, MVT::i32, ++/*324723*/ OPC_MoveParent, ++/*324724*/ OPC_MoveChild, 25, ++/*324726*/ OPC_CheckInteger, 1, ++/*324728*/ OPC_CheckType, MVT::i32, ++/*324730*/ OPC_MoveParent, ++/*324731*/ OPC_MoveChild, 26, ++/*324733*/ OPC_CheckInteger, 1, ++/*324735*/ OPC_CheckType, MVT::i32, ++/*324737*/ OPC_MoveParent, ++/*324738*/ OPC_MoveChild, 27, ++/*324740*/ OPC_CheckInteger, 1, ++/*324742*/ OPC_CheckType, MVT::i32, ++/*324744*/ OPC_MoveParent, ++/*324745*/ OPC_MoveChild, 28, ++/*324747*/ OPC_CheckInteger, 1, ++/*324749*/ OPC_CheckType, MVT::i32, ++/*324751*/ OPC_MoveParent, ++/*324752*/ OPC_MoveChild, 29, ++/*324754*/ OPC_CheckInteger, 1, ++/*324756*/ OPC_CheckType, MVT::i32, ++/*324758*/ OPC_MoveParent, ++/*324759*/ OPC_MoveChild, 30, ++/*324761*/ OPC_CheckInteger, 1, ++/*324763*/ OPC_CheckType, MVT::i32, ++/*324765*/ OPC_MoveParent, ++/*324766*/ OPC_MoveChild, 31, ++/*324768*/ OPC_CheckInteger, 1, ++/*324770*/ OPC_CheckType, MVT::i32, ++/*324772*/ OPC_MoveParent, ++/*324773*/ OPC_MoveParent, ++/*324774*/ OPC_MoveParent, ++/*324775*/ OPC_CheckChild1Same, 1, ++/*324777*/ OPC_MoveParent, ++/*324778*/ OPC_MoveParent, ++/*324779*/ OPC_MoveChild1, ++/*324780*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*324783*/ OPC_CheckChild0Integer, 1, ++/*324785*/ OPC_CheckChild0Type, MVT::i32, ++/*324787*/ OPC_CheckChild1Integer, 1, ++/*324789*/ OPC_CheckChild1Type, MVT::i32, ++/*324791*/ OPC_CheckChild2Integer, 1, ++/*324793*/ OPC_CheckChild2Type, MVT::i32, ++/*324795*/ OPC_CheckChild3Integer, 1, ++/*324797*/ OPC_CheckChild3Type, MVT::i32, ++/*324799*/ OPC_CheckChild4Integer, 1, ++/*324801*/ OPC_CheckChild4Type, MVT::i32, ++/*324803*/ OPC_MoveChild5, ++/*324804*/ OPC_CheckInteger, 1, ++/*324806*/ OPC_CheckType, MVT::i32, ++/*324808*/ OPC_MoveParent, ++/*324809*/ OPC_MoveChild6, ++/*324810*/ OPC_CheckInteger, 1, ++/*324812*/ OPC_CheckType, MVT::i32, ++/*324814*/ OPC_MoveParent, ++/*324815*/ OPC_MoveChild7, ++/*324816*/ OPC_CheckInteger, 1, ++/*324818*/ OPC_CheckType, MVT::i32, ++/*324820*/ OPC_MoveParent, ++/*324821*/ OPC_MoveChild, 8, ++/*324823*/ OPC_CheckInteger, 1, ++/*324825*/ OPC_CheckType, MVT::i32, ++/*324827*/ OPC_MoveParent, ++/*324828*/ OPC_MoveChild, 9, ++/*324830*/ OPC_CheckInteger, 1, ++/*324832*/ OPC_CheckType, MVT::i32, ++/*324834*/ OPC_MoveParent, ++/*324835*/ OPC_MoveChild, 10, ++/*324837*/ OPC_CheckInteger, 1, ++/*324839*/ OPC_CheckType, MVT::i32, ++/*324841*/ OPC_MoveParent, ++/*324842*/ OPC_MoveChild, 11, ++/*324844*/ OPC_CheckInteger, 1, ++/*324846*/ OPC_CheckType, MVT::i32, ++/*324848*/ OPC_MoveParent, ++/*324849*/ OPC_MoveChild, 12, ++/*324851*/ OPC_CheckInteger, 1, ++/*324853*/ OPC_CheckType, MVT::i32, ++/*324855*/ OPC_MoveParent, ++/*324856*/ OPC_MoveChild, 13, ++/*324858*/ OPC_CheckInteger, 1, ++/*324860*/ OPC_CheckType, MVT::i32, ++/*324862*/ OPC_MoveParent, ++/*324863*/ OPC_MoveChild, 14, ++/*324865*/ OPC_CheckInteger, 1, ++/*324867*/ OPC_CheckType, MVT::i32, ++/*324869*/ OPC_MoveParent, ++/*324870*/ OPC_MoveChild, 15, ++/*324872*/ OPC_CheckInteger, 1, ++/*324874*/ OPC_CheckType, MVT::i32, ++/*324876*/ OPC_MoveParent, ++/*324877*/ OPC_MoveChild, 16, ++/*324879*/ OPC_CheckInteger, 1, ++/*324881*/ OPC_CheckType, MVT::i32, ++/*324883*/ OPC_MoveParent, ++/*324884*/ OPC_MoveChild, 17, ++/*324886*/ OPC_CheckInteger, 1, ++/*324888*/ OPC_CheckType, MVT::i32, ++/*324890*/ OPC_MoveParent, ++/*324891*/ OPC_MoveChild, 18, ++/*324893*/ OPC_CheckInteger, 1, ++/*324895*/ OPC_CheckType, MVT::i32, ++/*324897*/ OPC_MoveParent, ++/*324898*/ OPC_MoveChild, 19, ++/*324900*/ OPC_CheckInteger, 1, ++/*324902*/ OPC_CheckType, MVT::i32, ++/*324904*/ OPC_MoveParent, ++/*324905*/ OPC_MoveChild, 20, ++/*324907*/ OPC_CheckInteger, 1, ++/*324909*/ OPC_CheckType, MVT::i32, ++/*324911*/ OPC_MoveParent, ++/*324912*/ OPC_MoveChild, 21, ++/*324914*/ OPC_CheckInteger, 1, ++/*324916*/ OPC_CheckType, MVT::i32, ++/*324918*/ OPC_MoveParent, ++/*324919*/ OPC_MoveChild, 22, ++/*324921*/ OPC_CheckInteger, 1, ++/*324923*/ OPC_CheckType, MVT::i32, ++/*324925*/ OPC_MoveParent, ++/*324926*/ OPC_MoveChild, 23, ++/*324928*/ OPC_CheckInteger, 1, ++/*324930*/ OPC_CheckType, MVT::i32, ++/*324932*/ OPC_MoveParent, ++/*324933*/ OPC_MoveChild, 24, ++/*324935*/ OPC_CheckInteger, 1, ++/*324937*/ OPC_CheckType, MVT::i32, ++/*324939*/ OPC_MoveParent, ++/*324940*/ OPC_MoveChild, 25, ++/*324942*/ OPC_CheckInteger, 1, ++/*324944*/ OPC_CheckType, MVT::i32, ++/*324946*/ OPC_MoveParent, ++/*324947*/ OPC_MoveChild, 26, ++/*324949*/ OPC_CheckInteger, 1, ++/*324951*/ OPC_CheckType, MVT::i32, ++/*324953*/ OPC_MoveParent, ++/*324954*/ OPC_MoveChild, 27, ++/*324956*/ OPC_CheckInteger, 1, ++/*324958*/ OPC_CheckType, MVT::i32, ++/*324960*/ OPC_MoveParent, ++/*324961*/ OPC_MoveChild, 28, ++/*324963*/ OPC_CheckInteger, 1, ++/*324965*/ OPC_CheckType, MVT::i32, ++/*324967*/ OPC_MoveParent, ++/*324968*/ OPC_MoveChild, 29, ++/*324970*/ OPC_CheckInteger, 1, ++/*324972*/ OPC_CheckType, MVT::i32, ++/*324974*/ OPC_MoveParent, ++/*324975*/ OPC_MoveChild, 30, ++/*324977*/ OPC_CheckInteger, 1, ++/*324979*/ OPC_CheckType, MVT::i32, ++/*324981*/ OPC_MoveParent, ++/*324982*/ OPC_MoveChild, 31, ++/*324984*/ OPC_CheckInteger, 1, ++/*324986*/ OPC_CheckType, MVT::i32, ++/*324988*/ OPC_MoveParent, ++/*324989*/ OPC_CheckType, MVT::v32i8, ++/*324991*/ OPC_MoveParent, ++/*324992*/ OPC_CheckType, MVT::v32i8, ++/*324994*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*324996*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*325004*/ /*Scope*/ 59|128,3/*443*/, /*->325449*/ ++/*325006*/ OPC_MoveChild0, ++/*325007*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*325010*/ OPC_CheckChild0Integer, 1, ++/*325012*/ OPC_CheckChild0Type, MVT::i32, ++/*325014*/ OPC_CheckChild1Integer, 1, ++/*325016*/ OPC_CheckChild1Type, MVT::i32, ++/*325018*/ OPC_CheckChild2Integer, 1, ++/*325020*/ OPC_CheckChild2Type, MVT::i32, ++/*325022*/ OPC_CheckChild3Integer, 1, ++/*325024*/ OPC_CheckChild3Type, MVT::i32, ++/*325026*/ OPC_CheckChild4Integer, 1, ++/*325028*/ OPC_CheckChild4Type, MVT::i32, ++/*325030*/ OPC_MoveChild5, ++/*325031*/ OPC_CheckInteger, 1, ++/*325033*/ OPC_CheckType, MVT::i32, ++/*325035*/ OPC_MoveParent, ++/*325036*/ OPC_MoveChild6, ++/*325037*/ OPC_CheckInteger, 1, ++/*325039*/ OPC_CheckType, MVT::i32, ++/*325041*/ OPC_MoveParent, ++/*325042*/ OPC_MoveChild7, ++/*325043*/ OPC_CheckInteger, 1, ++/*325045*/ OPC_CheckType, MVT::i32, ++/*325047*/ OPC_MoveParent, ++/*325048*/ OPC_MoveChild, 8, ++/*325050*/ OPC_CheckInteger, 1, ++/*325052*/ OPC_CheckType, MVT::i32, ++/*325054*/ OPC_MoveParent, ++/*325055*/ OPC_MoveChild, 9, ++/*325057*/ OPC_CheckInteger, 1, ++/*325059*/ OPC_CheckType, MVT::i32, ++/*325061*/ OPC_MoveParent, ++/*325062*/ OPC_MoveChild, 10, ++/*325064*/ OPC_CheckInteger, 1, ++/*325066*/ OPC_CheckType, MVT::i32, ++/*325068*/ OPC_MoveParent, ++/*325069*/ OPC_MoveChild, 11, ++/*325071*/ OPC_CheckInteger, 1, ++/*325073*/ OPC_CheckType, MVT::i32, ++/*325075*/ OPC_MoveParent, ++/*325076*/ OPC_MoveChild, 12, ++/*325078*/ OPC_CheckInteger, 1, ++/*325080*/ OPC_CheckType, MVT::i32, ++/*325082*/ OPC_MoveParent, ++/*325083*/ OPC_MoveChild, 13, ++/*325085*/ OPC_CheckInteger, 1, ++/*325087*/ OPC_CheckType, MVT::i32, ++/*325089*/ OPC_MoveParent, ++/*325090*/ OPC_MoveChild, 14, ++/*325092*/ OPC_CheckInteger, 1, ++/*325094*/ OPC_CheckType, MVT::i32, ++/*325096*/ OPC_MoveParent, ++/*325097*/ OPC_MoveChild, 15, ++/*325099*/ OPC_CheckInteger, 1, ++/*325101*/ OPC_CheckType, MVT::i32, ++/*325103*/ OPC_MoveParent, ++/*325104*/ OPC_MoveChild, 16, ++/*325106*/ OPC_CheckInteger, 1, ++/*325108*/ OPC_CheckType, MVT::i32, ++/*325110*/ OPC_MoveParent, ++/*325111*/ OPC_MoveChild, 17, ++/*325113*/ OPC_CheckInteger, 1, ++/*325115*/ OPC_CheckType, MVT::i32, ++/*325117*/ OPC_MoveParent, ++/*325118*/ OPC_MoveChild, 18, ++/*325120*/ OPC_CheckInteger, 1, ++/*325122*/ OPC_CheckType, MVT::i32, ++/*325124*/ OPC_MoveParent, ++/*325125*/ OPC_MoveChild, 19, ++/*325127*/ OPC_CheckInteger, 1, ++/*325129*/ OPC_CheckType, MVT::i32, ++/*325131*/ OPC_MoveParent, ++/*325132*/ OPC_MoveChild, 20, ++/*325134*/ OPC_CheckInteger, 1, ++/*325136*/ OPC_CheckType, MVT::i32, ++/*325138*/ OPC_MoveParent, ++/*325139*/ OPC_MoveChild, 21, ++/*325141*/ OPC_CheckInteger, 1, ++/*325143*/ OPC_CheckType, MVT::i32, ++/*325145*/ OPC_MoveParent, ++/*325146*/ OPC_MoveChild, 22, ++/*325148*/ OPC_CheckInteger, 1, ++/*325150*/ OPC_CheckType, MVT::i32, ++/*325152*/ OPC_MoveParent, ++/*325153*/ OPC_MoveChild, 23, ++/*325155*/ OPC_CheckInteger, 1, ++/*325157*/ OPC_CheckType, MVT::i32, ++/*325159*/ OPC_MoveParent, ++/*325160*/ OPC_MoveChild, 24, ++/*325162*/ OPC_CheckInteger, 1, ++/*325164*/ OPC_CheckType, MVT::i32, ++/*325166*/ OPC_MoveParent, ++/*325167*/ OPC_MoveChild, 25, ++/*325169*/ OPC_CheckInteger, 1, ++/*325171*/ OPC_CheckType, MVT::i32, ++/*325173*/ OPC_MoveParent, ++/*325174*/ OPC_MoveChild, 26, ++/*325176*/ OPC_CheckInteger, 1, ++/*325178*/ OPC_CheckType, MVT::i32, ++/*325180*/ OPC_MoveParent, ++/*325181*/ OPC_MoveChild, 27, ++/*325183*/ OPC_CheckInteger, 1, ++/*325185*/ OPC_CheckType, MVT::i32, ++/*325187*/ OPC_MoveParent, ++/*325188*/ OPC_MoveChild, 28, ++/*325190*/ OPC_CheckInteger, 1, ++/*325192*/ OPC_CheckType, MVT::i32, ++/*325194*/ OPC_MoveParent, ++/*325195*/ OPC_MoveChild, 29, ++/*325197*/ OPC_CheckInteger, 1, ++/*325199*/ OPC_CheckType, MVT::i32, ++/*325201*/ OPC_MoveParent, ++/*325202*/ OPC_MoveChild, 30, ++/*325204*/ OPC_CheckInteger, 1, ++/*325206*/ OPC_CheckType, MVT::i32, ++/*325208*/ OPC_MoveParent, ++/*325209*/ OPC_MoveChild, 31, ++/*325211*/ OPC_CheckInteger, 1, ++/*325213*/ OPC_CheckType, MVT::i32, ++/*325215*/ OPC_MoveParent, ++/*325216*/ OPC_MoveParent, ++/*325217*/ OPC_CheckChild1Same, 1, ++/*325219*/ OPC_MoveParent, ++/*325220*/ OPC_CheckChild1Same, 0, ++/*325222*/ OPC_MoveParent, ++/*325223*/ OPC_MoveParent, ++/*325224*/ OPC_MoveChild1, ++/*325225*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*325228*/ OPC_CheckChild0Integer, 1, ++/*325230*/ OPC_CheckChild0Type, MVT::i32, ++/*325232*/ OPC_CheckChild1Integer, 1, ++/*325234*/ OPC_CheckChild1Type, MVT::i32, ++/*325236*/ OPC_CheckChild2Integer, 1, ++/*325238*/ OPC_CheckChild2Type, MVT::i32, ++/*325240*/ OPC_CheckChild3Integer, 1, ++/*325242*/ OPC_CheckChild3Type, MVT::i32, ++/*325244*/ OPC_CheckChild4Integer, 1, ++/*325246*/ OPC_CheckChild4Type, MVT::i32, ++/*325248*/ OPC_MoveChild5, ++/*325249*/ OPC_CheckInteger, 1, ++/*325251*/ OPC_CheckType, MVT::i32, ++/*325253*/ OPC_MoveParent, ++/*325254*/ OPC_MoveChild6, ++/*325255*/ OPC_CheckInteger, 1, ++/*325257*/ OPC_CheckType, MVT::i32, ++/*325259*/ OPC_MoveParent, ++/*325260*/ OPC_MoveChild7, ++/*325261*/ OPC_CheckInteger, 1, ++/*325263*/ OPC_CheckType, MVT::i32, ++/*325265*/ OPC_MoveParent, ++/*325266*/ OPC_MoveChild, 8, ++/*325268*/ OPC_CheckInteger, 1, ++/*325270*/ OPC_CheckType, MVT::i32, ++/*325272*/ OPC_MoveParent, ++/*325273*/ OPC_MoveChild, 9, ++/*325275*/ OPC_CheckInteger, 1, ++/*325277*/ OPC_CheckType, MVT::i32, ++/*325279*/ OPC_MoveParent, ++/*325280*/ OPC_MoveChild, 10, ++/*325282*/ OPC_CheckInteger, 1, ++/*325284*/ OPC_CheckType, MVT::i32, ++/*325286*/ OPC_MoveParent, ++/*325287*/ OPC_MoveChild, 11, ++/*325289*/ OPC_CheckInteger, 1, ++/*325291*/ OPC_CheckType, MVT::i32, ++/*325293*/ OPC_MoveParent, ++/*325294*/ OPC_MoveChild, 12, ++/*325296*/ OPC_CheckInteger, 1, ++/*325298*/ OPC_CheckType, MVT::i32, ++/*325300*/ OPC_MoveParent, ++/*325301*/ OPC_MoveChild, 13, ++/*325303*/ OPC_CheckInteger, 1, ++/*325305*/ OPC_CheckType, MVT::i32, ++/*325307*/ OPC_MoveParent, ++/*325308*/ OPC_MoveChild, 14, ++/*325310*/ OPC_CheckInteger, 1, ++/*325312*/ OPC_CheckType, MVT::i32, ++/*325314*/ OPC_MoveParent, ++/*325315*/ OPC_MoveChild, 15, ++/*325317*/ OPC_CheckInteger, 1, ++/*325319*/ OPC_CheckType, MVT::i32, ++/*325321*/ OPC_MoveParent, ++/*325322*/ OPC_MoveChild, 16, ++/*325324*/ OPC_CheckInteger, 1, ++/*325326*/ OPC_CheckType, MVT::i32, ++/*325328*/ OPC_MoveParent, ++/*325329*/ OPC_MoveChild, 17, ++/*325331*/ OPC_CheckInteger, 1, ++/*325333*/ OPC_CheckType, MVT::i32, ++/*325335*/ OPC_MoveParent, ++/*325336*/ OPC_MoveChild, 18, ++/*325338*/ OPC_CheckInteger, 1, ++/*325340*/ OPC_CheckType, MVT::i32, ++/*325342*/ OPC_MoveParent, ++/*325343*/ OPC_MoveChild, 19, ++/*325345*/ OPC_CheckInteger, 1, ++/*325347*/ OPC_CheckType, MVT::i32, ++/*325349*/ OPC_MoveParent, ++/*325350*/ OPC_MoveChild, 20, ++/*325352*/ OPC_CheckInteger, 1, ++/*325354*/ OPC_CheckType, MVT::i32, ++/*325356*/ OPC_MoveParent, ++/*325357*/ OPC_MoveChild, 21, ++/*325359*/ OPC_CheckInteger, 1, ++/*325361*/ OPC_CheckType, MVT::i32, ++/*325363*/ OPC_MoveParent, ++/*325364*/ OPC_MoveChild, 22, ++/*325366*/ OPC_CheckInteger, 1, ++/*325368*/ OPC_CheckType, MVT::i32, ++/*325370*/ OPC_MoveParent, ++/*325371*/ OPC_MoveChild, 23, ++/*325373*/ OPC_CheckInteger, 1, ++/*325375*/ OPC_CheckType, MVT::i32, ++/*325377*/ OPC_MoveParent, ++/*325378*/ OPC_MoveChild, 24, ++/*325380*/ OPC_CheckInteger, 1, ++/*325382*/ OPC_CheckType, MVT::i32, ++/*325384*/ OPC_MoveParent, ++/*325385*/ OPC_MoveChild, 25, ++/*325387*/ OPC_CheckInteger, 1, ++/*325389*/ OPC_CheckType, MVT::i32, ++/*325391*/ OPC_MoveParent, ++/*325392*/ OPC_MoveChild, 26, ++/*325394*/ OPC_CheckInteger, 1, ++/*325396*/ OPC_CheckType, MVT::i32, ++/*325398*/ OPC_MoveParent, ++/*325399*/ OPC_MoveChild, 27, ++/*325401*/ OPC_CheckInteger, 1, ++/*325403*/ OPC_CheckType, MVT::i32, ++/*325405*/ OPC_MoveParent, ++/*325406*/ OPC_MoveChild, 28, ++/*325408*/ OPC_CheckInteger, 1, ++/*325410*/ OPC_CheckType, MVT::i32, ++/*325412*/ OPC_MoveParent, ++/*325413*/ OPC_MoveChild, 29, ++/*325415*/ OPC_CheckInteger, 1, ++/*325417*/ OPC_CheckType, MVT::i32, ++/*325419*/ OPC_MoveParent, ++/*325420*/ OPC_MoveChild, 30, ++/*325422*/ OPC_CheckInteger, 1, ++/*325424*/ OPC_CheckType, MVT::i32, ++/*325426*/ OPC_MoveParent, ++/*325427*/ OPC_MoveChild, 31, ++/*325429*/ OPC_CheckInteger, 1, ++/*325431*/ OPC_CheckType, MVT::i32, ++/*325433*/ OPC_MoveParent, ++/*325434*/ OPC_CheckType, MVT::v32i8, ++/*325436*/ OPC_MoveParent, ++/*325437*/ OPC_CheckType, MVT::v32i8, ++/*325439*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*325441*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b), LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*325449*/ /*Scope*/ 59|128,3/*443*/, /*->325894*/ ++/*325451*/ OPC_CheckChild0Same, 1, ++/*325453*/ OPC_MoveChild1, ++/*325454*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*325457*/ OPC_CheckChild0Integer, 1, ++/*325459*/ OPC_CheckChild0Type, MVT::i32, ++/*325461*/ OPC_CheckChild1Integer, 1, ++/*325463*/ OPC_CheckChild1Type, MVT::i32, ++/*325465*/ OPC_CheckChild2Integer, 1, ++/*325467*/ OPC_CheckChild2Type, MVT::i32, ++/*325469*/ OPC_CheckChild3Integer, 1, ++/*325471*/ OPC_CheckChild3Type, MVT::i32, ++/*325473*/ OPC_CheckChild4Integer, 1, ++/*325475*/ OPC_CheckChild4Type, MVT::i32, ++/*325477*/ OPC_MoveChild5, ++/*325478*/ OPC_CheckInteger, 1, ++/*325480*/ OPC_CheckType, MVT::i32, ++/*325482*/ OPC_MoveParent, ++/*325483*/ OPC_MoveChild6, ++/*325484*/ OPC_CheckInteger, 1, ++/*325486*/ OPC_CheckType, MVT::i32, ++/*325488*/ OPC_MoveParent, ++/*325489*/ OPC_MoveChild7, ++/*325490*/ OPC_CheckInteger, 1, ++/*325492*/ OPC_CheckType, MVT::i32, ++/*325494*/ OPC_MoveParent, ++/*325495*/ OPC_MoveChild, 8, ++/*325497*/ OPC_CheckInteger, 1, ++/*325499*/ OPC_CheckType, MVT::i32, ++/*325501*/ OPC_MoveParent, ++/*325502*/ OPC_MoveChild, 9, ++/*325504*/ OPC_CheckInteger, 1, ++/*325506*/ OPC_CheckType, MVT::i32, ++/*325508*/ OPC_MoveParent, ++/*325509*/ OPC_MoveChild, 10, ++/*325511*/ OPC_CheckInteger, 1, ++/*325513*/ OPC_CheckType, MVT::i32, ++/*325515*/ OPC_MoveParent, ++/*325516*/ OPC_MoveChild, 11, ++/*325518*/ OPC_CheckInteger, 1, ++/*325520*/ OPC_CheckType, MVT::i32, ++/*325522*/ OPC_MoveParent, ++/*325523*/ OPC_MoveChild, 12, ++/*325525*/ OPC_CheckInteger, 1, ++/*325527*/ OPC_CheckType, MVT::i32, ++/*325529*/ OPC_MoveParent, ++/*325530*/ OPC_MoveChild, 13, ++/*325532*/ OPC_CheckInteger, 1, ++/*325534*/ OPC_CheckType, MVT::i32, ++/*325536*/ OPC_MoveParent, ++/*325537*/ OPC_MoveChild, 14, ++/*325539*/ OPC_CheckInteger, 1, ++/*325541*/ OPC_CheckType, MVT::i32, ++/*325543*/ OPC_MoveParent, ++/*325544*/ OPC_MoveChild, 15, ++/*325546*/ OPC_CheckInteger, 1, ++/*325548*/ OPC_CheckType, MVT::i32, ++/*325550*/ OPC_MoveParent, ++/*325551*/ OPC_MoveChild, 16, ++/*325553*/ OPC_CheckInteger, 1, ++/*325555*/ OPC_CheckType, MVT::i32, ++/*325557*/ OPC_MoveParent, ++/*325558*/ OPC_MoveChild, 17, ++/*325560*/ OPC_CheckInteger, 1, ++/*325562*/ OPC_CheckType, MVT::i32, ++/*325564*/ OPC_MoveParent, ++/*325565*/ OPC_MoveChild, 18, ++/*325567*/ OPC_CheckInteger, 1, ++/*325569*/ OPC_CheckType, MVT::i32, ++/*325571*/ OPC_MoveParent, ++/*325572*/ OPC_MoveChild, 19, ++/*325574*/ OPC_CheckInteger, 1, ++/*325576*/ OPC_CheckType, MVT::i32, ++/*325578*/ OPC_MoveParent, ++/*325579*/ OPC_MoveChild, 20, ++/*325581*/ OPC_CheckInteger, 1, ++/*325583*/ OPC_CheckType, MVT::i32, ++/*325585*/ OPC_MoveParent, ++/*325586*/ OPC_MoveChild, 21, ++/*325588*/ OPC_CheckInteger, 1, ++/*325590*/ OPC_CheckType, MVT::i32, ++/*325592*/ OPC_MoveParent, ++/*325593*/ OPC_MoveChild, 22, ++/*325595*/ OPC_CheckInteger, 1, ++/*325597*/ OPC_CheckType, MVT::i32, ++/*325599*/ OPC_MoveParent, ++/*325600*/ OPC_MoveChild, 23, ++/*325602*/ OPC_CheckInteger, 1, ++/*325604*/ OPC_CheckType, MVT::i32, ++/*325606*/ OPC_MoveParent, ++/*325607*/ OPC_MoveChild, 24, ++/*325609*/ OPC_CheckInteger, 1, ++/*325611*/ OPC_CheckType, MVT::i32, ++/*325613*/ OPC_MoveParent, ++/*325614*/ OPC_MoveChild, 25, ++/*325616*/ OPC_CheckInteger, 1, ++/*325618*/ OPC_CheckType, MVT::i32, ++/*325620*/ OPC_MoveParent, ++/*325621*/ OPC_MoveChild, 26, ++/*325623*/ OPC_CheckInteger, 1, ++/*325625*/ OPC_CheckType, MVT::i32, ++/*325627*/ OPC_MoveParent, ++/*325628*/ OPC_MoveChild, 27, ++/*325630*/ OPC_CheckInteger, 1, ++/*325632*/ OPC_CheckType, MVT::i32, ++/*325634*/ OPC_MoveParent, ++/*325635*/ OPC_MoveChild, 28, ++/*325637*/ OPC_CheckInteger, 1, ++/*325639*/ OPC_CheckType, MVT::i32, ++/*325641*/ OPC_MoveParent, ++/*325642*/ OPC_MoveChild, 29, ++/*325644*/ OPC_CheckInteger, 1, ++/*325646*/ OPC_CheckType, MVT::i32, ++/*325648*/ OPC_MoveParent, ++/*325649*/ OPC_MoveChild, 30, ++/*325651*/ OPC_CheckInteger, 1, ++/*325653*/ OPC_CheckType, MVT::i32, ++/*325655*/ OPC_MoveParent, ++/*325656*/ OPC_MoveChild, 31, ++/*325658*/ OPC_CheckInteger, 1, ++/*325660*/ OPC_CheckType, MVT::i32, ++/*325662*/ OPC_MoveParent, ++/*325663*/ OPC_MoveParent, ++/*325664*/ OPC_MoveParent, ++/*325665*/ OPC_CheckChild1Same, 0, ++/*325667*/ OPC_MoveParent, ++/*325668*/ OPC_MoveParent, ++/*325669*/ OPC_MoveChild1, ++/*325670*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*325673*/ OPC_CheckChild0Integer, 1, ++/*325675*/ OPC_CheckChild0Type, MVT::i32, ++/*325677*/ OPC_CheckChild1Integer, 1, ++/*325679*/ OPC_CheckChild1Type, MVT::i32, ++/*325681*/ OPC_CheckChild2Integer, 1, ++/*325683*/ OPC_CheckChild2Type, MVT::i32, ++/*325685*/ OPC_CheckChild3Integer, 1, ++/*325687*/ OPC_CheckChild3Type, MVT::i32, ++/*325689*/ OPC_CheckChild4Integer, 1, ++/*325691*/ OPC_CheckChild4Type, MVT::i32, ++/*325693*/ OPC_MoveChild5, ++/*325694*/ OPC_CheckInteger, 1, ++/*325696*/ OPC_CheckType, MVT::i32, ++/*325698*/ OPC_MoveParent, ++/*325699*/ OPC_MoveChild6, ++/*325700*/ OPC_CheckInteger, 1, ++/*325702*/ OPC_CheckType, MVT::i32, ++/*325704*/ OPC_MoveParent, ++/*325705*/ OPC_MoveChild7, ++/*325706*/ OPC_CheckInteger, 1, ++/*325708*/ OPC_CheckType, MVT::i32, ++/*325710*/ OPC_MoveParent, ++/*325711*/ OPC_MoveChild, 8, ++/*325713*/ OPC_CheckInteger, 1, ++/*325715*/ OPC_CheckType, MVT::i32, ++/*325717*/ OPC_MoveParent, ++/*325718*/ OPC_MoveChild, 9, ++/*325720*/ OPC_CheckInteger, 1, ++/*325722*/ OPC_CheckType, MVT::i32, ++/*325724*/ OPC_MoveParent, ++/*325725*/ OPC_MoveChild, 10, ++/*325727*/ OPC_CheckInteger, 1, ++/*325729*/ OPC_CheckType, MVT::i32, ++/*325731*/ OPC_MoveParent, ++/*325732*/ OPC_MoveChild, 11, ++/*325734*/ OPC_CheckInteger, 1, ++/*325736*/ OPC_CheckType, MVT::i32, ++/*325738*/ OPC_MoveParent, ++/*325739*/ OPC_MoveChild, 12, ++/*325741*/ OPC_CheckInteger, 1, ++/*325743*/ OPC_CheckType, MVT::i32, ++/*325745*/ OPC_MoveParent, ++/*325746*/ OPC_MoveChild, 13, ++/*325748*/ OPC_CheckInteger, 1, ++/*325750*/ OPC_CheckType, MVT::i32, ++/*325752*/ OPC_MoveParent, ++/*325753*/ OPC_MoveChild, 14, ++/*325755*/ OPC_CheckInteger, 1, ++/*325757*/ OPC_CheckType, MVT::i32, ++/*325759*/ OPC_MoveParent, ++/*325760*/ OPC_MoveChild, 15, ++/*325762*/ OPC_CheckInteger, 1, ++/*325764*/ OPC_CheckType, MVT::i32, ++/*325766*/ OPC_MoveParent, ++/*325767*/ OPC_MoveChild, 16, ++/*325769*/ OPC_CheckInteger, 1, ++/*325771*/ OPC_CheckType, MVT::i32, ++/*325773*/ OPC_MoveParent, ++/*325774*/ OPC_MoveChild, 17, ++/*325776*/ OPC_CheckInteger, 1, ++/*325778*/ OPC_CheckType, MVT::i32, ++/*325780*/ OPC_MoveParent, ++/*325781*/ OPC_MoveChild, 18, ++/*325783*/ OPC_CheckInteger, 1, ++/*325785*/ OPC_CheckType, MVT::i32, ++/*325787*/ OPC_MoveParent, ++/*325788*/ OPC_MoveChild, 19, ++/*325790*/ OPC_CheckInteger, 1, ++/*325792*/ OPC_CheckType, MVT::i32, ++/*325794*/ OPC_MoveParent, ++/*325795*/ OPC_MoveChild, 20, ++/*325797*/ OPC_CheckInteger, 1, ++/*325799*/ OPC_CheckType, MVT::i32, ++/*325801*/ OPC_MoveParent, ++/*325802*/ OPC_MoveChild, 21, ++/*325804*/ OPC_CheckInteger, 1, ++/*325806*/ OPC_CheckType, MVT::i32, ++/*325808*/ OPC_MoveParent, ++/*325809*/ OPC_MoveChild, 22, ++/*325811*/ OPC_CheckInteger, 1, ++/*325813*/ OPC_CheckType, MVT::i32, ++/*325815*/ OPC_MoveParent, ++/*325816*/ OPC_MoveChild, 23, ++/*325818*/ OPC_CheckInteger, 1, ++/*325820*/ OPC_CheckType, MVT::i32, ++/*325822*/ OPC_MoveParent, ++/*325823*/ OPC_MoveChild, 24, ++/*325825*/ OPC_CheckInteger, 1, ++/*325827*/ OPC_CheckType, MVT::i32, ++/*325829*/ OPC_MoveParent, ++/*325830*/ OPC_MoveChild, 25, ++/*325832*/ OPC_CheckInteger, 1, ++/*325834*/ OPC_CheckType, MVT::i32, ++/*325836*/ OPC_MoveParent, ++/*325837*/ OPC_MoveChild, 26, ++/*325839*/ OPC_CheckInteger, 1, ++/*325841*/ OPC_CheckType, MVT::i32, ++/*325843*/ OPC_MoveParent, ++/*325844*/ OPC_MoveChild, 27, ++/*325846*/ OPC_CheckInteger, 1, ++/*325848*/ OPC_CheckType, MVT::i32, ++/*325850*/ OPC_MoveParent, ++/*325851*/ OPC_MoveChild, 28, ++/*325853*/ OPC_CheckInteger, 1, ++/*325855*/ OPC_CheckType, MVT::i32, ++/*325857*/ OPC_MoveParent, ++/*325858*/ OPC_MoveChild, 29, ++/*325860*/ OPC_CheckInteger, 1, ++/*325862*/ OPC_CheckType, MVT::i32, ++/*325864*/ OPC_MoveParent, ++/*325865*/ OPC_MoveChild, 30, ++/*325867*/ OPC_CheckInteger, 1, ++/*325869*/ OPC_CheckType, MVT::i32, ++/*325871*/ OPC_MoveParent, ++/*325872*/ OPC_MoveChild, 31, ++/*325874*/ OPC_CheckInteger, 1, ++/*325876*/ OPC_CheckType, MVT::i32, ++/*325878*/ OPC_MoveParent, ++/*325879*/ OPC_CheckType, MVT::v32i8, ++/*325881*/ OPC_MoveParent, ++/*325882*/ OPC_CheckType, MVT::v32i8, ++/*325884*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*325886*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*325894*/ /*Scope*/ 59|128,3/*443*/, /*->326339*/ ++/*325896*/ OPC_CheckChild0Same, 0, ++/*325898*/ OPC_CheckChild1Same, 1, ++/*325900*/ OPC_MoveParent, ++/*325901*/ OPC_MoveChild1, ++/*325902*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*325905*/ OPC_CheckChild0Integer, 1, ++/*325907*/ OPC_CheckChild0Type, MVT::i32, ++/*325909*/ OPC_CheckChild1Integer, 1, ++/*325911*/ OPC_CheckChild1Type, MVT::i32, ++/*325913*/ OPC_CheckChild2Integer, 1, ++/*325915*/ OPC_CheckChild2Type, MVT::i32, ++/*325917*/ OPC_CheckChild3Integer, 1, ++/*325919*/ OPC_CheckChild3Type, MVT::i32, ++/*325921*/ OPC_CheckChild4Integer, 1, ++/*325923*/ OPC_CheckChild4Type, MVT::i32, ++/*325925*/ OPC_MoveChild5, ++/*325926*/ OPC_CheckInteger, 1, ++/*325928*/ OPC_CheckType, MVT::i32, ++/*325930*/ OPC_MoveParent, ++/*325931*/ OPC_MoveChild6, ++/*325932*/ OPC_CheckInteger, 1, ++/*325934*/ OPC_CheckType, MVT::i32, ++/*325936*/ OPC_MoveParent, ++/*325937*/ OPC_MoveChild7, ++/*325938*/ OPC_CheckInteger, 1, ++/*325940*/ OPC_CheckType, MVT::i32, ++/*325942*/ OPC_MoveParent, ++/*325943*/ OPC_MoveChild, 8, ++/*325945*/ OPC_CheckInteger, 1, ++/*325947*/ OPC_CheckType, MVT::i32, ++/*325949*/ OPC_MoveParent, ++/*325950*/ OPC_MoveChild, 9, ++/*325952*/ OPC_CheckInteger, 1, ++/*325954*/ OPC_CheckType, MVT::i32, ++/*325956*/ OPC_MoveParent, ++/*325957*/ OPC_MoveChild, 10, ++/*325959*/ OPC_CheckInteger, 1, ++/*325961*/ OPC_CheckType, MVT::i32, ++/*325963*/ OPC_MoveParent, ++/*325964*/ OPC_MoveChild, 11, ++/*325966*/ OPC_CheckInteger, 1, ++/*325968*/ OPC_CheckType, MVT::i32, ++/*325970*/ OPC_MoveParent, ++/*325971*/ OPC_MoveChild, 12, ++/*325973*/ OPC_CheckInteger, 1, ++/*325975*/ OPC_CheckType, MVT::i32, ++/*325977*/ OPC_MoveParent, ++/*325978*/ OPC_MoveChild, 13, ++/*325980*/ OPC_CheckInteger, 1, ++/*325982*/ OPC_CheckType, MVT::i32, ++/*325984*/ OPC_MoveParent, ++/*325985*/ OPC_MoveChild, 14, ++/*325987*/ OPC_CheckInteger, 1, ++/*325989*/ OPC_CheckType, MVT::i32, ++/*325991*/ OPC_MoveParent, ++/*325992*/ OPC_MoveChild, 15, ++/*325994*/ OPC_CheckInteger, 1, ++/*325996*/ OPC_CheckType, MVT::i32, ++/*325998*/ OPC_MoveParent, ++/*325999*/ OPC_MoveChild, 16, ++/*326001*/ OPC_CheckInteger, 1, ++/*326003*/ OPC_CheckType, MVT::i32, ++/*326005*/ OPC_MoveParent, ++/*326006*/ OPC_MoveChild, 17, ++/*326008*/ OPC_CheckInteger, 1, ++/*326010*/ OPC_CheckType, MVT::i32, ++/*326012*/ OPC_MoveParent, ++/*326013*/ OPC_MoveChild, 18, ++/*326015*/ OPC_CheckInteger, 1, ++/*326017*/ OPC_CheckType, MVT::i32, ++/*326019*/ OPC_MoveParent, ++/*326020*/ OPC_MoveChild, 19, ++/*326022*/ OPC_CheckInteger, 1, ++/*326024*/ OPC_CheckType, MVT::i32, ++/*326026*/ OPC_MoveParent, ++/*326027*/ OPC_MoveChild, 20, ++/*326029*/ OPC_CheckInteger, 1, ++/*326031*/ OPC_CheckType, MVT::i32, ++/*326033*/ OPC_MoveParent, ++/*326034*/ OPC_MoveChild, 21, ++/*326036*/ OPC_CheckInteger, 1, ++/*326038*/ OPC_CheckType, MVT::i32, ++/*326040*/ OPC_MoveParent, ++/*326041*/ OPC_MoveChild, 22, ++/*326043*/ OPC_CheckInteger, 1, ++/*326045*/ OPC_CheckType, MVT::i32, ++/*326047*/ OPC_MoveParent, ++/*326048*/ OPC_MoveChild, 23, ++/*326050*/ OPC_CheckInteger, 1, ++/*326052*/ OPC_CheckType, MVT::i32, ++/*326054*/ OPC_MoveParent, ++/*326055*/ OPC_MoveChild, 24, ++/*326057*/ OPC_CheckInteger, 1, ++/*326059*/ OPC_CheckType, MVT::i32, ++/*326061*/ OPC_MoveParent, ++/*326062*/ OPC_MoveChild, 25, ++/*326064*/ OPC_CheckInteger, 1, ++/*326066*/ OPC_CheckType, MVT::i32, ++/*326068*/ OPC_MoveParent, ++/*326069*/ OPC_MoveChild, 26, ++/*326071*/ OPC_CheckInteger, 1, ++/*326073*/ OPC_CheckType, MVT::i32, ++/*326075*/ OPC_MoveParent, ++/*326076*/ OPC_MoveChild, 27, ++/*326078*/ OPC_CheckInteger, 1, ++/*326080*/ OPC_CheckType, MVT::i32, ++/*326082*/ OPC_MoveParent, ++/*326083*/ OPC_MoveChild, 28, ++/*326085*/ OPC_CheckInteger, 1, ++/*326087*/ OPC_CheckType, MVT::i32, ++/*326089*/ OPC_MoveParent, ++/*326090*/ OPC_MoveChild, 29, ++/*326092*/ OPC_CheckInteger, 1, ++/*326094*/ OPC_CheckType, MVT::i32, ++/*326096*/ OPC_MoveParent, ++/*326097*/ OPC_MoveChild, 30, ++/*326099*/ OPC_CheckInteger, 1, ++/*326101*/ OPC_CheckType, MVT::i32, ++/*326103*/ OPC_MoveParent, ++/*326104*/ OPC_MoveChild, 31, ++/*326106*/ OPC_CheckInteger, 1, ++/*326108*/ OPC_CheckType, MVT::i32, ++/*326110*/ OPC_MoveParent, ++/*326111*/ OPC_MoveParent, ++/*326112*/ OPC_MoveParent, ++/*326113*/ OPC_MoveParent, ++/*326114*/ OPC_MoveChild1, ++/*326115*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*326118*/ OPC_CheckChild0Integer, 1, ++/*326120*/ OPC_CheckChild0Type, MVT::i32, ++/*326122*/ OPC_CheckChild1Integer, 1, ++/*326124*/ OPC_CheckChild1Type, MVT::i32, ++/*326126*/ OPC_CheckChild2Integer, 1, ++/*326128*/ OPC_CheckChild2Type, MVT::i32, ++/*326130*/ OPC_CheckChild3Integer, 1, ++/*326132*/ OPC_CheckChild3Type, MVT::i32, ++/*326134*/ OPC_CheckChild4Integer, 1, ++/*326136*/ OPC_CheckChild4Type, MVT::i32, ++/*326138*/ OPC_MoveChild5, ++/*326139*/ OPC_CheckInteger, 1, ++/*326141*/ OPC_CheckType, MVT::i32, ++/*326143*/ OPC_MoveParent, ++/*326144*/ OPC_MoveChild6, ++/*326145*/ OPC_CheckInteger, 1, ++/*326147*/ OPC_CheckType, MVT::i32, ++/*326149*/ OPC_MoveParent, ++/*326150*/ OPC_MoveChild7, ++/*326151*/ OPC_CheckInteger, 1, ++/*326153*/ OPC_CheckType, MVT::i32, ++/*326155*/ OPC_MoveParent, ++/*326156*/ OPC_MoveChild, 8, ++/*326158*/ OPC_CheckInteger, 1, ++/*326160*/ OPC_CheckType, MVT::i32, ++/*326162*/ OPC_MoveParent, ++/*326163*/ OPC_MoveChild, 9, ++/*326165*/ OPC_CheckInteger, 1, ++/*326167*/ OPC_CheckType, MVT::i32, ++/*326169*/ OPC_MoveParent, ++/*326170*/ OPC_MoveChild, 10, ++/*326172*/ OPC_CheckInteger, 1, ++/*326174*/ OPC_CheckType, MVT::i32, ++/*326176*/ OPC_MoveParent, ++/*326177*/ OPC_MoveChild, 11, ++/*326179*/ OPC_CheckInteger, 1, ++/*326181*/ OPC_CheckType, MVT::i32, ++/*326183*/ OPC_MoveParent, ++/*326184*/ OPC_MoveChild, 12, ++/*326186*/ OPC_CheckInteger, 1, ++/*326188*/ OPC_CheckType, MVT::i32, ++/*326190*/ OPC_MoveParent, ++/*326191*/ OPC_MoveChild, 13, ++/*326193*/ OPC_CheckInteger, 1, ++/*326195*/ OPC_CheckType, MVT::i32, ++/*326197*/ OPC_MoveParent, ++/*326198*/ OPC_MoveChild, 14, ++/*326200*/ OPC_CheckInteger, 1, ++/*326202*/ OPC_CheckType, MVT::i32, ++/*326204*/ OPC_MoveParent, ++/*326205*/ OPC_MoveChild, 15, ++/*326207*/ OPC_CheckInteger, 1, ++/*326209*/ OPC_CheckType, MVT::i32, ++/*326211*/ OPC_MoveParent, ++/*326212*/ OPC_MoveChild, 16, ++/*326214*/ OPC_CheckInteger, 1, ++/*326216*/ OPC_CheckType, MVT::i32, ++/*326218*/ OPC_MoveParent, ++/*326219*/ OPC_MoveChild, 17, ++/*326221*/ OPC_CheckInteger, 1, ++/*326223*/ OPC_CheckType, MVT::i32, ++/*326225*/ OPC_MoveParent, ++/*326226*/ OPC_MoveChild, 18, ++/*326228*/ OPC_CheckInteger, 1, ++/*326230*/ OPC_CheckType, MVT::i32, ++/*326232*/ OPC_MoveParent, ++/*326233*/ OPC_MoveChild, 19, ++/*326235*/ OPC_CheckInteger, 1, ++/*326237*/ OPC_CheckType, MVT::i32, ++/*326239*/ OPC_MoveParent, ++/*326240*/ OPC_MoveChild, 20, ++/*326242*/ OPC_CheckInteger, 1, ++/*326244*/ OPC_CheckType, MVT::i32, ++/*326246*/ OPC_MoveParent, ++/*326247*/ OPC_MoveChild, 21, ++/*326249*/ OPC_CheckInteger, 1, ++/*326251*/ OPC_CheckType, MVT::i32, ++/*326253*/ OPC_MoveParent, ++/*326254*/ OPC_MoveChild, 22, ++/*326256*/ OPC_CheckInteger, 1, ++/*326258*/ OPC_CheckType, MVT::i32, ++/*326260*/ OPC_MoveParent, ++/*326261*/ OPC_MoveChild, 23, ++/*326263*/ OPC_CheckInteger, 1, ++/*326265*/ OPC_CheckType, MVT::i32, ++/*326267*/ OPC_MoveParent, ++/*326268*/ OPC_MoveChild, 24, ++/*326270*/ OPC_CheckInteger, 1, ++/*326272*/ OPC_CheckType, MVT::i32, ++/*326274*/ OPC_MoveParent, ++/*326275*/ OPC_MoveChild, 25, ++/*326277*/ OPC_CheckInteger, 1, ++/*326279*/ OPC_CheckType, MVT::i32, ++/*326281*/ OPC_MoveParent, ++/*326282*/ OPC_MoveChild, 26, ++/*326284*/ OPC_CheckInteger, 1, ++/*326286*/ OPC_CheckType, MVT::i32, ++/*326288*/ OPC_MoveParent, ++/*326289*/ OPC_MoveChild, 27, ++/*326291*/ OPC_CheckInteger, 1, ++/*326293*/ OPC_CheckType, MVT::i32, ++/*326295*/ OPC_MoveParent, ++/*326296*/ OPC_MoveChild, 28, ++/*326298*/ OPC_CheckInteger, 1, ++/*326300*/ OPC_CheckType, MVT::i32, ++/*326302*/ OPC_MoveParent, ++/*326303*/ OPC_MoveChild, 29, ++/*326305*/ OPC_CheckInteger, 1, ++/*326307*/ OPC_CheckType, MVT::i32, ++/*326309*/ OPC_MoveParent, ++/*326310*/ OPC_MoveChild, 30, ++/*326312*/ OPC_CheckInteger, 1, ++/*326314*/ OPC_CheckType, MVT::i32, ++/*326316*/ OPC_MoveParent, ++/*326317*/ OPC_MoveChild, 31, ++/*326319*/ OPC_CheckInteger, 1, ++/*326321*/ OPC_CheckType, MVT::i32, ++/*326323*/ OPC_MoveParent, ++/*326324*/ OPC_CheckType, MVT::v32i8, ++/*326326*/ OPC_MoveParent, ++/*326327*/ OPC_CheckType, MVT::v32i8, ++/*326329*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*326331*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*326339*/ /*Scope*/ 59|128,3/*443*/, /*->326784*/ ++/*326341*/ OPC_CheckChild0Same, 1, ++/*326343*/ OPC_CheckChild1Same, 0, ++/*326345*/ OPC_MoveParent, ++/*326346*/ OPC_MoveChild1, ++/*326347*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*326350*/ OPC_CheckChild0Integer, 1, ++/*326352*/ OPC_CheckChild0Type, MVT::i32, ++/*326354*/ OPC_CheckChild1Integer, 1, ++/*326356*/ OPC_CheckChild1Type, MVT::i32, ++/*326358*/ OPC_CheckChild2Integer, 1, ++/*326360*/ OPC_CheckChild2Type, MVT::i32, ++/*326362*/ OPC_CheckChild3Integer, 1, ++/*326364*/ OPC_CheckChild3Type, MVT::i32, ++/*326366*/ OPC_CheckChild4Integer, 1, ++/*326368*/ OPC_CheckChild4Type, MVT::i32, ++/*326370*/ OPC_MoveChild5, ++/*326371*/ OPC_CheckInteger, 1, ++/*326373*/ OPC_CheckType, MVT::i32, ++/*326375*/ OPC_MoveParent, ++/*326376*/ OPC_MoveChild6, ++/*326377*/ OPC_CheckInteger, 1, ++/*326379*/ OPC_CheckType, MVT::i32, ++/*326381*/ OPC_MoveParent, ++/*326382*/ OPC_MoveChild7, ++/*326383*/ OPC_CheckInteger, 1, ++/*326385*/ OPC_CheckType, MVT::i32, ++/*326387*/ OPC_MoveParent, ++/*326388*/ OPC_MoveChild, 8, ++/*326390*/ OPC_CheckInteger, 1, ++/*326392*/ OPC_CheckType, MVT::i32, ++/*326394*/ OPC_MoveParent, ++/*326395*/ OPC_MoveChild, 9, ++/*326397*/ OPC_CheckInteger, 1, ++/*326399*/ OPC_CheckType, MVT::i32, ++/*326401*/ OPC_MoveParent, ++/*326402*/ OPC_MoveChild, 10, ++/*326404*/ OPC_CheckInteger, 1, ++/*326406*/ OPC_CheckType, MVT::i32, ++/*326408*/ OPC_MoveParent, ++/*326409*/ OPC_MoveChild, 11, ++/*326411*/ OPC_CheckInteger, 1, ++/*326413*/ OPC_CheckType, MVT::i32, ++/*326415*/ OPC_MoveParent, ++/*326416*/ OPC_MoveChild, 12, ++/*326418*/ OPC_CheckInteger, 1, ++/*326420*/ OPC_CheckType, MVT::i32, ++/*326422*/ OPC_MoveParent, ++/*326423*/ OPC_MoveChild, 13, ++/*326425*/ OPC_CheckInteger, 1, ++/*326427*/ OPC_CheckType, MVT::i32, ++/*326429*/ OPC_MoveParent, ++/*326430*/ OPC_MoveChild, 14, ++/*326432*/ OPC_CheckInteger, 1, ++/*326434*/ OPC_CheckType, MVT::i32, ++/*326436*/ OPC_MoveParent, ++/*326437*/ OPC_MoveChild, 15, ++/*326439*/ OPC_CheckInteger, 1, ++/*326441*/ OPC_CheckType, MVT::i32, ++/*326443*/ OPC_MoveParent, ++/*326444*/ OPC_MoveChild, 16, ++/*326446*/ OPC_CheckInteger, 1, ++/*326448*/ OPC_CheckType, MVT::i32, ++/*326450*/ OPC_MoveParent, ++/*326451*/ OPC_MoveChild, 17, ++/*326453*/ OPC_CheckInteger, 1, ++/*326455*/ OPC_CheckType, MVT::i32, ++/*326457*/ OPC_MoveParent, ++/*326458*/ OPC_MoveChild, 18, ++/*326460*/ OPC_CheckInteger, 1, ++/*326462*/ OPC_CheckType, MVT::i32, ++/*326464*/ OPC_MoveParent, ++/*326465*/ OPC_MoveChild, 19, ++/*326467*/ OPC_CheckInteger, 1, ++/*326469*/ OPC_CheckType, MVT::i32, ++/*326471*/ OPC_MoveParent, ++/*326472*/ OPC_MoveChild, 20, ++/*326474*/ OPC_CheckInteger, 1, ++/*326476*/ OPC_CheckType, MVT::i32, ++/*326478*/ OPC_MoveParent, ++/*326479*/ OPC_MoveChild, 21, ++/*326481*/ OPC_CheckInteger, 1, ++/*326483*/ OPC_CheckType, MVT::i32, ++/*326485*/ OPC_MoveParent, ++/*326486*/ OPC_MoveChild, 22, ++/*326488*/ OPC_CheckInteger, 1, ++/*326490*/ OPC_CheckType, MVT::i32, ++/*326492*/ OPC_MoveParent, ++/*326493*/ OPC_MoveChild, 23, ++/*326495*/ OPC_CheckInteger, 1, ++/*326497*/ OPC_CheckType, MVT::i32, ++/*326499*/ OPC_MoveParent, ++/*326500*/ OPC_MoveChild, 24, ++/*326502*/ OPC_CheckInteger, 1, ++/*326504*/ OPC_CheckType, MVT::i32, ++/*326506*/ OPC_MoveParent, ++/*326507*/ OPC_MoveChild, 25, ++/*326509*/ OPC_CheckInteger, 1, ++/*326511*/ OPC_CheckType, MVT::i32, ++/*326513*/ OPC_MoveParent, ++/*326514*/ OPC_MoveChild, 26, ++/*326516*/ OPC_CheckInteger, 1, ++/*326518*/ OPC_CheckType, MVT::i32, ++/*326520*/ OPC_MoveParent, ++/*326521*/ OPC_MoveChild, 27, ++/*326523*/ OPC_CheckInteger, 1, ++/*326525*/ OPC_CheckType, MVT::i32, ++/*326527*/ OPC_MoveParent, ++/*326528*/ OPC_MoveChild, 28, ++/*326530*/ OPC_CheckInteger, 1, ++/*326532*/ OPC_CheckType, MVT::i32, ++/*326534*/ OPC_MoveParent, ++/*326535*/ OPC_MoveChild, 29, ++/*326537*/ OPC_CheckInteger, 1, ++/*326539*/ OPC_CheckType, MVT::i32, ++/*326541*/ OPC_MoveParent, ++/*326542*/ OPC_MoveChild, 30, ++/*326544*/ OPC_CheckInteger, 1, ++/*326546*/ OPC_CheckType, MVT::i32, ++/*326548*/ OPC_MoveParent, ++/*326549*/ OPC_MoveChild, 31, ++/*326551*/ OPC_CheckInteger, 1, ++/*326553*/ OPC_CheckType, MVT::i32, ++/*326555*/ OPC_MoveParent, ++/*326556*/ OPC_MoveParent, ++/*326557*/ OPC_MoveParent, ++/*326558*/ OPC_MoveParent, ++/*326559*/ OPC_MoveChild1, ++/*326560*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*326563*/ OPC_CheckChild0Integer, 1, ++/*326565*/ OPC_CheckChild0Type, MVT::i32, ++/*326567*/ OPC_CheckChild1Integer, 1, ++/*326569*/ OPC_CheckChild1Type, MVT::i32, ++/*326571*/ OPC_CheckChild2Integer, 1, ++/*326573*/ OPC_CheckChild2Type, MVT::i32, ++/*326575*/ OPC_CheckChild3Integer, 1, ++/*326577*/ OPC_CheckChild3Type, MVT::i32, ++/*326579*/ OPC_CheckChild4Integer, 1, ++/*326581*/ OPC_CheckChild4Type, MVT::i32, ++/*326583*/ OPC_MoveChild5, ++/*326584*/ OPC_CheckInteger, 1, ++/*326586*/ OPC_CheckType, MVT::i32, ++/*326588*/ OPC_MoveParent, ++/*326589*/ OPC_MoveChild6, ++/*326590*/ OPC_CheckInteger, 1, ++/*326592*/ OPC_CheckType, MVT::i32, ++/*326594*/ OPC_MoveParent, ++/*326595*/ OPC_MoveChild7, ++/*326596*/ OPC_CheckInteger, 1, ++/*326598*/ OPC_CheckType, MVT::i32, ++/*326600*/ OPC_MoveParent, ++/*326601*/ OPC_MoveChild, 8, ++/*326603*/ OPC_CheckInteger, 1, ++/*326605*/ OPC_CheckType, MVT::i32, ++/*326607*/ OPC_MoveParent, ++/*326608*/ OPC_MoveChild, 9, ++/*326610*/ OPC_CheckInteger, 1, ++/*326612*/ OPC_CheckType, MVT::i32, ++/*326614*/ OPC_MoveParent, ++/*326615*/ OPC_MoveChild, 10, ++/*326617*/ OPC_CheckInteger, 1, ++/*326619*/ OPC_CheckType, MVT::i32, ++/*326621*/ OPC_MoveParent, ++/*326622*/ OPC_MoveChild, 11, ++/*326624*/ OPC_CheckInteger, 1, ++/*326626*/ OPC_CheckType, MVT::i32, ++/*326628*/ OPC_MoveParent, ++/*326629*/ OPC_MoveChild, 12, ++/*326631*/ OPC_CheckInteger, 1, ++/*326633*/ OPC_CheckType, MVT::i32, ++/*326635*/ OPC_MoveParent, ++/*326636*/ OPC_MoveChild, 13, ++/*326638*/ OPC_CheckInteger, 1, ++/*326640*/ OPC_CheckType, MVT::i32, ++/*326642*/ OPC_MoveParent, ++/*326643*/ OPC_MoveChild, 14, ++/*326645*/ OPC_CheckInteger, 1, ++/*326647*/ OPC_CheckType, MVT::i32, ++/*326649*/ OPC_MoveParent, ++/*326650*/ OPC_MoveChild, 15, ++/*326652*/ OPC_CheckInteger, 1, ++/*326654*/ OPC_CheckType, MVT::i32, ++/*326656*/ OPC_MoveParent, ++/*326657*/ OPC_MoveChild, 16, ++/*326659*/ OPC_CheckInteger, 1, ++/*326661*/ OPC_CheckType, MVT::i32, ++/*326663*/ OPC_MoveParent, ++/*326664*/ OPC_MoveChild, 17, ++/*326666*/ OPC_CheckInteger, 1, ++/*326668*/ OPC_CheckType, MVT::i32, ++/*326670*/ OPC_MoveParent, ++/*326671*/ OPC_MoveChild, 18, ++/*326673*/ OPC_CheckInteger, 1, ++/*326675*/ OPC_CheckType, MVT::i32, ++/*326677*/ OPC_MoveParent, ++/*326678*/ OPC_MoveChild, 19, ++/*326680*/ OPC_CheckInteger, 1, ++/*326682*/ OPC_CheckType, MVT::i32, ++/*326684*/ OPC_MoveParent, ++/*326685*/ OPC_MoveChild, 20, ++/*326687*/ OPC_CheckInteger, 1, ++/*326689*/ OPC_CheckType, MVT::i32, ++/*326691*/ OPC_MoveParent, ++/*326692*/ OPC_MoveChild, 21, ++/*326694*/ OPC_CheckInteger, 1, ++/*326696*/ OPC_CheckType, MVT::i32, ++/*326698*/ OPC_MoveParent, ++/*326699*/ OPC_MoveChild, 22, ++/*326701*/ OPC_CheckInteger, 1, ++/*326703*/ OPC_CheckType, MVT::i32, ++/*326705*/ OPC_MoveParent, ++/*326706*/ OPC_MoveChild, 23, ++/*326708*/ OPC_CheckInteger, 1, ++/*326710*/ OPC_CheckType, MVT::i32, ++/*326712*/ OPC_MoveParent, ++/*326713*/ OPC_MoveChild, 24, ++/*326715*/ OPC_CheckInteger, 1, ++/*326717*/ OPC_CheckType, MVT::i32, ++/*326719*/ OPC_MoveParent, ++/*326720*/ OPC_MoveChild, 25, ++/*326722*/ OPC_CheckInteger, 1, ++/*326724*/ OPC_CheckType, MVT::i32, ++/*326726*/ OPC_MoveParent, ++/*326727*/ OPC_MoveChild, 26, ++/*326729*/ OPC_CheckInteger, 1, ++/*326731*/ OPC_CheckType, MVT::i32, ++/*326733*/ OPC_MoveParent, ++/*326734*/ OPC_MoveChild, 27, ++/*326736*/ OPC_CheckInteger, 1, ++/*326738*/ OPC_CheckType, MVT::i32, ++/*326740*/ OPC_MoveParent, ++/*326741*/ OPC_MoveChild, 28, ++/*326743*/ OPC_CheckInteger, 1, ++/*326745*/ OPC_CheckType, MVT::i32, ++/*326747*/ OPC_MoveParent, ++/*326748*/ OPC_MoveChild, 29, ++/*326750*/ OPC_CheckInteger, 1, ++/*326752*/ OPC_CheckType, MVT::i32, ++/*326754*/ OPC_MoveParent, ++/*326755*/ OPC_MoveChild, 30, ++/*326757*/ OPC_CheckInteger, 1, ++/*326759*/ OPC_CheckType, MVT::i32, ++/*326761*/ OPC_MoveParent, ++/*326762*/ OPC_MoveChild, 31, ++/*326764*/ OPC_CheckInteger, 1, ++/*326766*/ OPC_CheckType, MVT::i32, ++/*326768*/ OPC_MoveParent, ++/*326769*/ OPC_CheckType, MVT::v32i8, ++/*326771*/ OPC_MoveParent, ++/*326772*/ OPC_CheckType, MVT::v32i8, ++/*326774*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*326776*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*326784*/ 0, /*End of Scope*/ ++/*326785*/ /*Scope*/ 126|128,6/*894*/, /*->327681*/ ++/*326787*/ OPC_CheckChild0Same, 1, ++/*326789*/ OPC_MoveChild1, ++/*326790*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*326793*/ OPC_Scope, 57|128,3/*441*/, /*->327237*/ // 2 children in Scope ++/*326796*/ OPC_MoveChild0, ++/*326797*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*326800*/ OPC_CheckChild0Integer, 1, ++/*326802*/ OPC_CheckChild0Type, MVT::i32, ++/*326804*/ OPC_CheckChild1Integer, 1, ++/*326806*/ OPC_CheckChild1Type, MVT::i32, ++/*326808*/ OPC_CheckChild2Integer, 1, ++/*326810*/ OPC_CheckChild2Type, MVT::i32, ++/*326812*/ OPC_CheckChild3Integer, 1, ++/*326814*/ OPC_CheckChild3Type, MVT::i32, ++/*326816*/ OPC_CheckChild4Integer, 1, ++/*326818*/ OPC_CheckChild4Type, MVT::i32, ++/*326820*/ OPC_MoveChild5, ++/*326821*/ OPC_CheckInteger, 1, ++/*326823*/ OPC_CheckType, MVT::i32, ++/*326825*/ OPC_MoveParent, ++/*326826*/ OPC_MoveChild6, ++/*326827*/ OPC_CheckInteger, 1, ++/*326829*/ OPC_CheckType, MVT::i32, ++/*326831*/ OPC_MoveParent, ++/*326832*/ OPC_MoveChild7, ++/*326833*/ OPC_CheckInteger, 1, ++/*326835*/ OPC_CheckType, MVT::i32, ++/*326837*/ OPC_MoveParent, ++/*326838*/ OPC_MoveChild, 8, ++/*326840*/ OPC_CheckInteger, 1, ++/*326842*/ OPC_CheckType, MVT::i32, ++/*326844*/ OPC_MoveParent, ++/*326845*/ OPC_MoveChild, 9, ++/*326847*/ OPC_CheckInteger, 1, ++/*326849*/ OPC_CheckType, MVT::i32, ++/*326851*/ OPC_MoveParent, ++/*326852*/ OPC_MoveChild, 10, ++/*326854*/ OPC_CheckInteger, 1, ++/*326856*/ OPC_CheckType, MVT::i32, ++/*326858*/ OPC_MoveParent, ++/*326859*/ OPC_MoveChild, 11, ++/*326861*/ OPC_CheckInteger, 1, ++/*326863*/ OPC_CheckType, MVT::i32, ++/*326865*/ OPC_MoveParent, ++/*326866*/ OPC_MoveChild, 12, ++/*326868*/ OPC_CheckInteger, 1, ++/*326870*/ OPC_CheckType, MVT::i32, ++/*326872*/ OPC_MoveParent, ++/*326873*/ OPC_MoveChild, 13, ++/*326875*/ OPC_CheckInteger, 1, ++/*326877*/ OPC_CheckType, MVT::i32, ++/*326879*/ OPC_MoveParent, ++/*326880*/ OPC_MoveChild, 14, ++/*326882*/ OPC_CheckInteger, 1, ++/*326884*/ OPC_CheckType, MVT::i32, ++/*326886*/ OPC_MoveParent, ++/*326887*/ OPC_MoveChild, 15, ++/*326889*/ OPC_CheckInteger, 1, ++/*326891*/ OPC_CheckType, MVT::i32, ++/*326893*/ OPC_MoveParent, ++/*326894*/ OPC_MoveChild, 16, ++/*326896*/ OPC_CheckInteger, 1, ++/*326898*/ OPC_CheckType, MVT::i32, ++/*326900*/ OPC_MoveParent, ++/*326901*/ OPC_MoveChild, 17, ++/*326903*/ OPC_CheckInteger, 1, ++/*326905*/ OPC_CheckType, MVT::i32, ++/*326907*/ OPC_MoveParent, ++/*326908*/ OPC_MoveChild, 18, ++/*326910*/ OPC_CheckInteger, 1, ++/*326912*/ OPC_CheckType, MVT::i32, ++/*326914*/ OPC_MoveParent, ++/*326915*/ OPC_MoveChild, 19, ++/*326917*/ OPC_CheckInteger, 1, ++/*326919*/ OPC_CheckType, MVT::i32, ++/*326921*/ OPC_MoveParent, ++/*326922*/ OPC_MoveChild, 20, ++/*326924*/ OPC_CheckInteger, 1, ++/*326926*/ OPC_CheckType, MVT::i32, ++/*326928*/ OPC_MoveParent, ++/*326929*/ OPC_MoveChild, 21, ++/*326931*/ OPC_CheckInteger, 1, ++/*326933*/ OPC_CheckType, MVT::i32, ++/*326935*/ OPC_MoveParent, ++/*326936*/ OPC_MoveChild, 22, ++/*326938*/ OPC_CheckInteger, 1, ++/*326940*/ OPC_CheckType, MVT::i32, ++/*326942*/ OPC_MoveParent, ++/*326943*/ OPC_MoveChild, 23, ++/*326945*/ OPC_CheckInteger, 1, ++/*326947*/ OPC_CheckType, MVT::i32, ++/*326949*/ OPC_MoveParent, ++/*326950*/ OPC_MoveChild, 24, ++/*326952*/ OPC_CheckInteger, 1, ++/*326954*/ OPC_CheckType, MVT::i32, ++/*326956*/ OPC_MoveParent, ++/*326957*/ OPC_MoveChild, 25, ++/*326959*/ OPC_CheckInteger, 1, ++/*326961*/ OPC_CheckType, MVT::i32, ++/*326963*/ OPC_MoveParent, ++/*326964*/ OPC_MoveChild, 26, ++/*326966*/ OPC_CheckInteger, 1, ++/*326968*/ OPC_CheckType, MVT::i32, ++/*326970*/ OPC_MoveParent, ++/*326971*/ OPC_MoveChild, 27, ++/*326973*/ OPC_CheckInteger, 1, ++/*326975*/ OPC_CheckType, MVT::i32, ++/*326977*/ OPC_MoveParent, ++/*326978*/ OPC_MoveChild, 28, ++/*326980*/ OPC_CheckInteger, 1, ++/*326982*/ OPC_CheckType, MVT::i32, ++/*326984*/ OPC_MoveParent, ++/*326985*/ OPC_MoveChild, 29, ++/*326987*/ OPC_CheckInteger, 1, ++/*326989*/ OPC_CheckType, MVT::i32, ++/*326991*/ OPC_MoveParent, ++/*326992*/ OPC_MoveChild, 30, ++/*326994*/ OPC_CheckInteger, 1, ++/*326996*/ OPC_CheckType, MVT::i32, ++/*326998*/ OPC_MoveParent, ++/*326999*/ OPC_MoveChild, 31, ++/*327001*/ OPC_CheckInteger, 1, ++/*327003*/ OPC_CheckType, MVT::i32, ++/*327005*/ OPC_MoveParent, ++/*327006*/ OPC_MoveParent, ++/*327007*/ OPC_CheckChild1Same, 0, ++/*327009*/ OPC_MoveParent, ++/*327010*/ OPC_MoveParent, ++/*327011*/ OPC_MoveParent, ++/*327012*/ OPC_MoveChild1, ++/*327013*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*327016*/ OPC_CheckChild0Integer, 1, ++/*327018*/ OPC_CheckChild0Type, MVT::i32, ++/*327020*/ OPC_CheckChild1Integer, 1, ++/*327022*/ OPC_CheckChild1Type, MVT::i32, ++/*327024*/ OPC_CheckChild2Integer, 1, ++/*327026*/ OPC_CheckChild2Type, MVT::i32, ++/*327028*/ OPC_CheckChild3Integer, 1, ++/*327030*/ OPC_CheckChild3Type, MVT::i32, ++/*327032*/ OPC_CheckChild4Integer, 1, ++/*327034*/ OPC_CheckChild4Type, MVT::i32, ++/*327036*/ OPC_MoveChild5, ++/*327037*/ OPC_CheckInteger, 1, ++/*327039*/ OPC_CheckType, MVT::i32, ++/*327041*/ OPC_MoveParent, ++/*327042*/ OPC_MoveChild6, ++/*327043*/ OPC_CheckInteger, 1, ++/*327045*/ OPC_CheckType, MVT::i32, ++/*327047*/ OPC_MoveParent, ++/*327048*/ OPC_MoveChild7, ++/*327049*/ OPC_CheckInteger, 1, ++/*327051*/ OPC_CheckType, MVT::i32, ++/*327053*/ OPC_MoveParent, ++/*327054*/ OPC_MoveChild, 8, ++/*327056*/ OPC_CheckInteger, 1, ++/*327058*/ OPC_CheckType, MVT::i32, ++/*327060*/ OPC_MoveParent, ++/*327061*/ OPC_MoveChild, 9, ++/*327063*/ OPC_CheckInteger, 1, ++/*327065*/ OPC_CheckType, MVT::i32, ++/*327067*/ OPC_MoveParent, ++/*327068*/ OPC_MoveChild, 10, ++/*327070*/ OPC_CheckInteger, 1, ++/*327072*/ OPC_CheckType, MVT::i32, ++/*327074*/ OPC_MoveParent, ++/*327075*/ OPC_MoveChild, 11, ++/*327077*/ OPC_CheckInteger, 1, ++/*327079*/ OPC_CheckType, MVT::i32, ++/*327081*/ OPC_MoveParent, ++/*327082*/ OPC_MoveChild, 12, ++/*327084*/ OPC_CheckInteger, 1, ++/*327086*/ OPC_CheckType, MVT::i32, ++/*327088*/ OPC_MoveParent, ++/*327089*/ OPC_MoveChild, 13, ++/*327091*/ OPC_CheckInteger, 1, ++/*327093*/ OPC_CheckType, MVT::i32, ++/*327095*/ OPC_MoveParent, ++/*327096*/ OPC_MoveChild, 14, ++/*327098*/ OPC_CheckInteger, 1, ++/*327100*/ OPC_CheckType, MVT::i32, ++/*327102*/ OPC_MoveParent, ++/*327103*/ OPC_MoveChild, 15, ++/*327105*/ OPC_CheckInteger, 1, ++/*327107*/ OPC_CheckType, MVT::i32, ++/*327109*/ OPC_MoveParent, ++/*327110*/ OPC_MoveChild, 16, ++/*327112*/ OPC_CheckInteger, 1, ++/*327114*/ OPC_CheckType, MVT::i32, ++/*327116*/ OPC_MoveParent, ++/*327117*/ OPC_MoveChild, 17, ++/*327119*/ OPC_CheckInteger, 1, ++/*327121*/ OPC_CheckType, MVT::i32, ++/*327123*/ OPC_MoveParent, ++/*327124*/ OPC_MoveChild, 18, ++/*327126*/ OPC_CheckInteger, 1, ++/*327128*/ OPC_CheckType, MVT::i32, ++/*327130*/ OPC_MoveParent, ++/*327131*/ OPC_MoveChild, 19, ++/*327133*/ OPC_CheckInteger, 1, ++/*327135*/ OPC_CheckType, MVT::i32, ++/*327137*/ OPC_MoveParent, ++/*327138*/ OPC_MoveChild, 20, ++/*327140*/ OPC_CheckInteger, 1, ++/*327142*/ OPC_CheckType, MVT::i32, ++/*327144*/ OPC_MoveParent, ++/*327145*/ OPC_MoveChild, 21, ++/*327147*/ OPC_CheckInteger, 1, ++/*327149*/ OPC_CheckType, MVT::i32, ++/*327151*/ OPC_MoveParent, ++/*327152*/ OPC_MoveChild, 22, ++/*327154*/ OPC_CheckInteger, 1, ++/*327156*/ OPC_CheckType, MVT::i32, ++/*327158*/ OPC_MoveParent, ++/*327159*/ OPC_MoveChild, 23, ++/*327161*/ OPC_CheckInteger, 1, ++/*327163*/ OPC_CheckType, MVT::i32, ++/*327165*/ OPC_MoveParent, ++/*327166*/ OPC_MoveChild, 24, ++/*327168*/ OPC_CheckInteger, 1, ++/*327170*/ OPC_CheckType, MVT::i32, ++/*327172*/ OPC_MoveParent, ++/*327173*/ OPC_MoveChild, 25, ++/*327175*/ OPC_CheckInteger, 1, ++/*327177*/ OPC_CheckType, MVT::i32, ++/*327179*/ OPC_MoveParent, ++/*327180*/ OPC_MoveChild, 26, ++/*327182*/ OPC_CheckInteger, 1, ++/*327184*/ OPC_CheckType, MVT::i32, ++/*327186*/ OPC_MoveParent, ++/*327187*/ OPC_MoveChild, 27, ++/*327189*/ OPC_CheckInteger, 1, ++/*327191*/ OPC_CheckType, MVT::i32, ++/*327193*/ OPC_MoveParent, ++/*327194*/ OPC_MoveChild, 28, ++/*327196*/ OPC_CheckInteger, 1, ++/*327198*/ OPC_CheckType, MVT::i32, ++/*327200*/ OPC_MoveParent, ++/*327201*/ OPC_MoveChild, 29, ++/*327203*/ OPC_CheckInteger, 1, ++/*327205*/ OPC_CheckType, MVT::i32, ++/*327207*/ OPC_MoveParent, ++/*327208*/ OPC_MoveChild, 30, ++/*327210*/ OPC_CheckInteger, 1, ++/*327212*/ OPC_CheckType, MVT::i32, ++/*327214*/ OPC_MoveParent, ++/*327215*/ OPC_MoveChild, 31, ++/*327217*/ OPC_CheckInteger, 1, ++/*327219*/ OPC_CheckType, MVT::i32, ++/*327221*/ OPC_MoveParent, ++/*327222*/ OPC_CheckType, MVT::v32i8, ++/*327224*/ OPC_MoveParent, ++/*327225*/ OPC_CheckType, MVT::v32i8, ++/*327227*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*327229*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*327237*/ /*Scope*/ 57|128,3/*441*/, /*->327680*/ ++/*327239*/ OPC_CheckChild0Same, 0, ++/*327241*/ OPC_MoveChild1, ++/*327242*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*327245*/ OPC_CheckChild0Integer, 1, ++/*327247*/ OPC_CheckChild0Type, MVT::i32, ++/*327249*/ OPC_CheckChild1Integer, 1, ++/*327251*/ OPC_CheckChild1Type, MVT::i32, ++/*327253*/ OPC_CheckChild2Integer, 1, ++/*327255*/ OPC_CheckChild2Type, MVT::i32, ++/*327257*/ OPC_CheckChild3Integer, 1, ++/*327259*/ OPC_CheckChild3Type, MVT::i32, ++/*327261*/ OPC_CheckChild4Integer, 1, ++/*327263*/ OPC_CheckChild4Type, MVT::i32, ++/*327265*/ OPC_MoveChild5, ++/*327266*/ OPC_CheckInteger, 1, ++/*327268*/ OPC_CheckType, MVT::i32, ++/*327270*/ OPC_MoveParent, ++/*327271*/ OPC_MoveChild6, ++/*327272*/ OPC_CheckInteger, 1, ++/*327274*/ OPC_CheckType, MVT::i32, ++/*327276*/ OPC_MoveParent, ++/*327277*/ OPC_MoveChild7, ++/*327278*/ OPC_CheckInteger, 1, ++/*327280*/ OPC_CheckType, MVT::i32, ++/*327282*/ OPC_MoveParent, ++/*327283*/ OPC_MoveChild, 8, ++/*327285*/ OPC_CheckInteger, 1, ++/*327287*/ OPC_CheckType, MVT::i32, ++/*327289*/ OPC_MoveParent, ++/*327290*/ OPC_MoveChild, 9, ++/*327292*/ OPC_CheckInteger, 1, ++/*327294*/ OPC_CheckType, MVT::i32, ++/*327296*/ OPC_MoveParent, ++/*327297*/ OPC_MoveChild, 10, ++/*327299*/ OPC_CheckInteger, 1, ++/*327301*/ OPC_CheckType, MVT::i32, ++/*327303*/ OPC_MoveParent, ++/*327304*/ OPC_MoveChild, 11, ++/*327306*/ OPC_CheckInteger, 1, ++/*327308*/ OPC_CheckType, MVT::i32, ++/*327310*/ OPC_MoveParent, ++/*327311*/ OPC_MoveChild, 12, ++/*327313*/ OPC_CheckInteger, 1, ++/*327315*/ OPC_CheckType, MVT::i32, ++/*327317*/ OPC_MoveParent, ++/*327318*/ OPC_MoveChild, 13, ++/*327320*/ OPC_CheckInteger, 1, ++/*327322*/ OPC_CheckType, MVT::i32, ++/*327324*/ OPC_MoveParent, ++/*327325*/ OPC_MoveChild, 14, ++/*327327*/ OPC_CheckInteger, 1, ++/*327329*/ OPC_CheckType, MVT::i32, ++/*327331*/ OPC_MoveParent, ++/*327332*/ OPC_MoveChild, 15, ++/*327334*/ OPC_CheckInteger, 1, ++/*327336*/ OPC_CheckType, MVT::i32, ++/*327338*/ OPC_MoveParent, ++/*327339*/ OPC_MoveChild, 16, ++/*327341*/ OPC_CheckInteger, 1, ++/*327343*/ OPC_CheckType, MVT::i32, ++/*327345*/ OPC_MoveParent, ++/*327346*/ OPC_MoveChild, 17, ++/*327348*/ OPC_CheckInteger, 1, ++/*327350*/ OPC_CheckType, MVT::i32, ++/*327352*/ OPC_MoveParent, ++/*327353*/ OPC_MoveChild, 18, ++/*327355*/ OPC_CheckInteger, 1, ++/*327357*/ OPC_CheckType, MVT::i32, ++/*327359*/ OPC_MoveParent, ++/*327360*/ OPC_MoveChild, 19, ++/*327362*/ OPC_CheckInteger, 1, ++/*327364*/ OPC_CheckType, MVT::i32, ++/*327366*/ OPC_MoveParent, ++/*327367*/ OPC_MoveChild, 20, ++/*327369*/ OPC_CheckInteger, 1, ++/*327371*/ OPC_CheckType, MVT::i32, ++/*327373*/ OPC_MoveParent, ++/*327374*/ OPC_MoveChild, 21, ++/*327376*/ OPC_CheckInteger, 1, ++/*327378*/ OPC_CheckType, MVT::i32, ++/*327380*/ OPC_MoveParent, ++/*327381*/ OPC_MoveChild, 22, ++/*327383*/ OPC_CheckInteger, 1, ++/*327385*/ OPC_CheckType, MVT::i32, ++/*327387*/ OPC_MoveParent, ++/*327388*/ OPC_MoveChild, 23, ++/*327390*/ OPC_CheckInteger, 1, ++/*327392*/ OPC_CheckType, MVT::i32, ++/*327394*/ OPC_MoveParent, ++/*327395*/ OPC_MoveChild, 24, ++/*327397*/ OPC_CheckInteger, 1, ++/*327399*/ OPC_CheckType, MVT::i32, ++/*327401*/ OPC_MoveParent, ++/*327402*/ OPC_MoveChild, 25, ++/*327404*/ OPC_CheckInteger, 1, ++/*327406*/ OPC_CheckType, MVT::i32, ++/*327408*/ OPC_MoveParent, ++/*327409*/ OPC_MoveChild, 26, ++/*327411*/ OPC_CheckInteger, 1, ++/*327413*/ OPC_CheckType, MVT::i32, ++/*327415*/ OPC_MoveParent, ++/*327416*/ OPC_MoveChild, 27, ++/*327418*/ OPC_CheckInteger, 1, ++/*327420*/ OPC_CheckType, MVT::i32, ++/*327422*/ OPC_MoveParent, ++/*327423*/ OPC_MoveChild, 28, ++/*327425*/ OPC_CheckInteger, 1, ++/*327427*/ OPC_CheckType, MVT::i32, ++/*327429*/ OPC_MoveParent, ++/*327430*/ OPC_MoveChild, 29, ++/*327432*/ OPC_CheckInteger, 1, ++/*327434*/ OPC_CheckType, MVT::i32, ++/*327436*/ OPC_MoveParent, ++/*327437*/ OPC_MoveChild, 30, ++/*327439*/ OPC_CheckInteger, 1, ++/*327441*/ OPC_CheckType, MVT::i32, ++/*327443*/ OPC_MoveParent, ++/*327444*/ OPC_MoveChild, 31, ++/*327446*/ OPC_CheckInteger, 1, ++/*327448*/ OPC_CheckType, MVT::i32, ++/*327450*/ OPC_MoveParent, ++/*327451*/ OPC_MoveParent, ++/*327452*/ OPC_MoveParent, ++/*327453*/ OPC_MoveParent, ++/*327454*/ OPC_MoveParent, ++/*327455*/ OPC_MoveChild1, ++/*327456*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*327459*/ OPC_CheckChild0Integer, 1, ++/*327461*/ OPC_CheckChild0Type, MVT::i32, ++/*327463*/ OPC_CheckChild1Integer, 1, ++/*327465*/ OPC_CheckChild1Type, MVT::i32, ++/*327467*/ OPC_CheckChild2Integer, 1, ++/*327469*/ OPC_CheckChild2Type, MVT::i32, ++/*327471*/ OPC_CheckChild3Integer, 1, ++/*327473*/ OPC_CheckChild3Type, MVT::i32, ++/*327475*/ OPC_CheckChild4Integer, 1, ++/*327477*/ OPC_CheckChild4Type, MVT::i32, ++/*327479*/ OPC_MoveChild5, ++/*327480*/ OPC_CheckInteger, 1, ++/*327482*/ OPC_CheckType, MVT::i32, ++/*327484*/ OPC_MoveParent, ++/*327485*/ OPC_MoveChild6, ++/*327486*/ OPC_CheckInteger, 1, ++/*327488*/ OPC_CheckType, MVT::i32, ++/*327490*/ OPC_MoveParent, ++/*327491*/ OPC_MoveChild7, ++/*327492*/ OPC_CheckInteger, 1, ++/*327494*/ OPC_CheckType, MVT::i32, ++/*327496*/ OPC_MoveParent, ++/*327497*/ OPC_MoveChild, 8, ++/*327499*/ OPC_CheckInteger, 1, ++/*327501*/ OPC_CheckType, MVT::i32, ++/*327503*/ OPC_MoveParent, ++/*327504*/ OPC_MoveChild, 9, ++/*327506*/ OPC_CheckInteger, 1, ++/*327508*/ OPC_CheckType, MVT::i32, ++/*327510*/ OPC_MoveParent, ++/*327511*/ OPC_MoveChild, 10, ++/*327513*/ OPC_CheckInteger, 1, ++/*327515*/ OPC_CheckType, MVT::i32, ++/*327517*/ OPC_MoveParent, ++/*327518*/ OPC_MoveChild, 11, ++/*327520*/ OPC_CheckInteger, 1, ++/*327522*/ OPC_CheckType, MVT::i32, ++/*327524*/ OPC_MoveParent, ++/*327525*/ OPC_MoveChild, 12, ++/*327527*/ OPC_CheckInteger, 1, ++/*327529*/ OPC_CheckType, MVT::i32, ++/*327531*/ OPC_MoveParent, ++/*327532*/ OPC_MoveChild, 13, ++/*327534*/ OPC_CheckInteger, 1, ++/*327536*/ OPC_CheckType, MVT::i32, ++/*327538*/ OPC_MoveParent, ++/*327539*/ OPC_MoveChild, 14, ++/*327541*/ OPC_CheckInteger, 1, ++/*327543*/ OPC_CheckType, MVT::i32, ++/*327545*/ OPC_MoveParent, ++/*327546*/ OPC_MoveChild, 15, ++/*327548*/ OPC_CheckInteger, 1, ++/*327550*/ OPC_CheckType, MVT::i32, ++/*327552*/ OPC_MoveParent, ++/*327553*/ OPC_MoveChild, 16, ++/*327555*/ OPC_CheckInteger, 1, ++/*327557*/ OPC_CheckType, MVT::i32, ++/*327559*/ OPC_MoveParent, ++/*327560*/ OPC_MoveChild, 17, ++/*327562*/ OPC_CheckInteger, 1, ++/*327564*/ OPC_CheckType, MVT::i32, ++/*327566*/ OPC_MoveParent, ++/*327567*/ OPC_MoveChild, 18, ++/*327569*/ OPC_CheckInteger, 1, ++/*327571*/ OPC_CheckType, MVT::i32, ++/*327573*/ OPC_MoveParent, ++/*327574*/ OPC_MoveChild, 19, ++/*327576*/ OPC_CheckInteger, 1, ++/*327578*/ OPC_CheckType, MVT::i32, ++/*327580*/ OPC_MoveParent, ++/*327581*/ OPC_MoveChild, 20, ++/*327583*/ OPC_CheckInteger, 1, ++/*327585*/ OPC_CheckType, MVT::i32, ++/*327587*/ OPC_MoveParent, ++/*327588*/ OPC_MoveChild, 21, ++/*327590*/ OPC_CheckInteger, 1, ++/*327592*/ OPC_CheckType, MVT::i32, ++/*327594*/ OPC_MoveParent, ++/*327595*/ OPC_MoveChild, 22, ++/*327597*/ OPC_CheckInteger, 1, ++/*327599*/ OPC_CheckType, MVT::i32, ++/*327601*/ OPC_MoveParent, ++/*327602*/ OPC_MoveChild, 23, ++/*327604*/ OPC_CheckInteger, 1, ++/*327606*/ OPC_CheckType, MVT::i32, ++/*327608*/ OPC_MoveParent, ++/*327609*/ OPC_MoveChild, 24, ++/*327611*/ OPC_CheckInteger, 1, ++/*327613*/ OPC_CheckType, MVT::i32, ++/*327615*/ OPC_MoveParent, ++/*327616*/ OPC_MoveChild, 25, ++/*327618*/ OPC_CheckInteger, 1, ++/*327620*/ OPC_CheckType, MVT::i32, ++/*327622*/ OPC_MoveParent, ++/*327623*/ OPC_MoveChild, 26, ++/*327625*/ OPC_CheckInteger, 1, ++/*327627*/ OPC_CheckType, MVT::i32, ++/*327629*/ OPC_MoveParent, ++/*327630*/ OPC_MoveChild, 27, ++/*327632*/ OPC_CheckInteger, 1, ++/*327634*/ OPC_CheckType, MVT::i32, ++/*327636*/ OPC_MoveParent, ++/*327637*/ OPC_MoveChild, 28, ++/*327639*/ OPC_CheckInteger, 1, ++/*327641*/ OPC_CheckType, MVT::i32, ++/*327643*/ OPC_MoveParent, ++/*327644*/ OPC_MoveChild, 29, ++/*327646*/ OPC_CheckInteger, 1, ++/*327648*/ OPC_CheckType, MVT::i32, ++/*327650*/ OPC_MoveParent, ++/*327651*/ OPC_MoveChild, 30, ++/*327653*/ OPC_CheckInteger, 1, ++/*327655*/ OPC_CheckType, MVT::i32, ++/*327657*/ OPC_MoveParent, ++/*327658*/ OPC_MoveChild, 31, ++/*327660*/ OPC_CheckInteger, 1, ++/*327662*/ OPC_CheckType, MVT::i32, ++/*327664*/ OPC_MoveParent, ++/*327665*/ OPC_CheckType, MVT::v32i8, ++/*327667*/ OPC_MoveParent, ++/*327668*/ OPC_CheckType, MVT::v32i8, ++/*327670*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*327672*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*327680*/ 0, /*End of Scope*/ ++/*327681*/ /*Scope*/ 126|128,6/*894*/, /*->328577*/ ++/*327683*/ OPC_CheckChild0Same, 0, ++/*327685*/ OPC_MoveChild1, ++/*327686*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*327689*/ OPC_Scope, 57|128,3/*441*/, /*->328133*/ // 2 children in Scope ++/*327692*/ OPC_MoveChild0, ++/*327693*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*327696*/ OPC_CheckChild0Integer, 1, ++/*327698*/ OPC_CheckChild0Type, MVT::i32, ++/*327700*/ OPC_CheckChild1Integer, 1, ++/*327702*/ OPC_CheckChild1Type, MVT::i32, ++/*327704*/ OPC_CheckChild2Integer, 1, ++/*327706*/ OPC_CheckChild2Type, MVT::i32, ++/*327708*/ OPC_CheckChild3Integer, 1, ++/*327710*/ OPC_CheckChild3Type, MVT::i32, ++/*327712*/ OPC_CheckChild4Integer, 1, ++/*327714*/ OPC_CheckChild4Type, MVT::i32, ++/*327716*/ OPC_MoveChild5, ++/*327717*/ OPC_CheckInteger, 1, ++/*327719*/ OPC_CheckType, MVT::i32, ++/*327721*/ OPC_MoveParent, ++/*327722*/ OPC_MoveChild6, ++/*327723*/ OPC_CheckInteger, 1, ++/*327725*/ OPC_CheckType, MVT::i32, ++/*327727*/ OPC_MoveParent, ++/*327728*/ OPC_MoveChild7, ++/*327729*/ OPC_CheckInteger, 1, ++/*327731*/ OPC_CheckType, MVT::i32, ++/*327733*/ OPC_MoveParent, ++/*327734*/ OPC_MoveChild, 8, ++/*327736*/ OPC_CheckInteger, 1, ++/*327738*/ OPC_CheckType, MVT::i32, ++/*327740*/ OPC_MoveParent, ++/*327741*/ OPC_MoveChild, 9, ++/*327743*/ OPC_CheckInteger, 1, ++/*327745*/ OPC_CheckType, MVT::i32, ++/*327747*/ OPC_MoveParent, ++/*327748*/ OPC_MoveChild, 10, ++/*327750*/ OPC_CheckInteger, 1, ++/*327752*/ OPC_CheckType, MVT::i32, ++/*327754*/ OPC_MoveParent, ++/*327755*/ OPC_MoveChild, 11, ++/*327757*/ OPC_CheckInteger, 1, ++/*327759*/ OPC_CheckType, MVT::i32, ++/*327761*/ OPC_MoveParent, ++/*327762*/ OPC_MoveChild, 12, ++/*327764*/ OPC_CheckInteger, 1, ++/*327766*/ OPC_CheckType, MVT::i32, ++/*327768*/ OPC_MoveParent, ++/*327769*/ OPC_MoveChild, 13, ++/*327771*/ OPC_CheckInteger, 1, ++/*327773*/ OPC_CheckType, MVT::i32, ++/*327775*/ OPC_MoveParent, ++/*327776*/ OPC_MoveChild, 14, ++/*327778*/ OPC_CheckInteger, 1, ++/*327780*/ OPC_CheckType, MVT::i32, ++/*327782*/ OPC_MoveParent, ++/*327783*/ OPC_MoveChild, 15, ++/*327785*/ OPC_CheckInteger, 1, ++/*327787*/ OPC_CheckType, MVT::i32, ++/*327789*/ OPC_MoveParent, ++/*327790*/ OPC_MoveChild, 16, ++/*327792*/ OPC_CheckInteger, 1, ++/*327794*/ OPC_CheckType, MVT::i32, ++/*327796*/ OPC_MoveParent, ++/*327797*/ OPC_MoveChild, 17, ++/*327799*/ OPC_CheckInteger, 1, ++/*327801*/ OPC_CheckType, MVT::i32, ++/*327803*/ OPC_MoveParent, ++/*327804*/ OPC_MoveChild, 18, ++/*327806*/ OPC_CheckInteger, 1, ++/*327808*/ OPC_CheckType, MVT::i32, ++/*327810*/ OPC_MoveParent, ++/*327811*/ OPC_MoveChild, 19, ++/*327813*/ OPC_CheckInteger, 1, ++/*327815*/ OPC_CheckType, MVT::i32, ++/*327817*/ OPC_MoveParent, ++/*327818*/ OPC_MoveChild, 20, ++/*327820*/ OPC_CheckInteger, 1, ++/*327822*/ OPC_CheckType, MVT::i32, ++/*327824*/ OPC_MoveParent, ++/*327825*/ OPC_MoveChild, 21, ++/*327827*/ OPC_CheckInteger, 1, ++/*327829*/ OPC_CheckType, MVT::i32, ++/*327831*/ OPC_MoveParent, ++/*327832*/ OPC_MoveChild, 22, ++/*327834*/ OPC_CheckInteger, 1, ++/*327836*/ OPC_CheckType, MVT::i32, ++/*327838*/ OPC_MoveParent, ++/*327839*/ OPC_MoveChild, 23, ++/*327841*/ OPC_CheckInteger, 1, ++/*327843*/ OPC_CheckType, MVT::i32, ++/*327845*/ OPC_MoveParent, ++/*327846*/ OPC_MoveChild, 24, ++/*327848*/ OPC_CheckInteger, 1, ++/*327850*/ OPC_CheckType, MVT::i32, ++/*327852*/ OPC_MoveParent, ++/*327853*/ OPC_MoveChild, 25, ++/*327855*/ OPC_CheckInteger, 1, ++/*327857*/ OPC_CheckType, MVT::i32, ++/*327859*/ OPC_MoveParent, ++/*327860*/ OPC_MoveChild, 26, ++/*327862*/ OPC_CheckInteger, 1, ++/*327864*/ OPC_CheckType, MVT::i32, ++/*327866*/ OPC_MoveParent, ++/*327867*/ OPC_MoveChild, 27, ++/*327869*/ OPC_CheckInteger, 1, ++/*327871*/ OPC_CheckType, MVT::i32, ++/*327873*/ OPC_MoveParent, ++/*327874*/ OPC_MoveChild, 28, ++/*327876*/ OPC_CheckInteger, 1, ++/*327878*/ OPC_CheckType, MVT::i32, ++/*327880*/ OPC_MoveParent, ++/*327881*/ OPC_MoveChild, 29, ++/*327883*/ OPC_CheckInteger, 1, ++/*327885*/ OPC_CheckType, MVT::i32, ++/*327887*/ OPC_MoveParent, ++/*327888*/ OPC_MoveChild, 30, ++/*327890*/ OPC_CheckInteger, 1, ++/*327892*/ OPC_CheckType, MVT::i32, ++/*327894*/ OPC_MoveParent, ++/*327895*/ OPC_MoveChild, 31, ++/*327897*/ OPC_CheckInteger, 1, ++/*327899*/ OPC_CheckType, MVT::i32, ++/*327901*/ OPC_MoveParent, ++/*327902*/ OPC_MoveParent, ++/*327903*/ OPC_CheckChild1Same, 1, ++/*327905*/ OPC_MoveParent, ++/*327906*/ OPC_MoveParent, ++/*327907*/ OPC_MoveParent, ++/*327908*/ OPC_MoveChild1, ++/*327909*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*327912*/ OPC_CheckChild0Integer, 1, ++/*327914*/ OPC_CheckChild0Type, MVT::i32, ++/*327916*/ OPC_CheckChild1Integer, 1, ++/*327918*/ OPC_CheckChild1Type, MVT::i32, ++/*327920*/ OPC_CheckChild2Integer, 1, ++/*327922*/ OPC_CheckChild2Type, MVT::i32, ++/*327924*/ OPC_CheckChild3Integer, 1, ++/*327926*/ OPC_CheckChild3Type, MVT::i32, ++/*327928*/ OPC_CheckChild4Integer, 1, ++/*327930*/ OPC_CheckChild4Type, MVT::i32, ++/*327932*/ OPC_MoveChild5, ++/*327933*/ OPC_CheckInteger, 1, ++/*327935*/ OPC_CheckType, MVT::i32, ++/*327937*/ OPC_MoveParent, ++/*327938*/ OPC_MoveChild6, ++/*327939*/ OPC_CheckInteger, 1, ++/*327941*/ OPC_CheckType, MVT::i32, ++/*327943*/ OPC_MoveParent, ++/*327944*/ OPC_MoveChild7, ++/*327945*/ OPC_CheckInteger, 1, ++/*327947*/ OPC_CheckType, MVT::i32, ++/*327949*/ OPC_MoveParent, ++/*327950*/ OPC_MoveChild, 8, ++/*327952*/ OPC_CheckInteger, 1, ++/*327954*/ OPC_CheckType, MVT::i32, ++/*327956*/ OPC_MoveParent, ++/*327957*/ OPC_MoveChild, 9, ++/*327959*/ OPC_CheckInteger, 1, ++/*327961*/ OPC_CheckType, MVT::i32, ++/*327963*/ OPC_MoveParent, ++/*327964*/ OPC_MoveChild, 10, ++/*327966*/ OPC_CheckInteger, 1, ++/*327968*/ OPC_CheckType, MVT::i32, ++/*327970*/ OPC_MoveParent, ++/*327971*/ OPC_MoveChild, 11, ++/*327973*/ OPC_CheckInteger, 1, ++/*327975*/ OPC_CheckType, MVT::i32, ++/*327977*/ OPC_MoveParent, ++/*327978*/ OPC_MoveChild, 12, ++/*327980*/ OPC_CheckInteger, 1, ++/*327982*/ OPC_CheckType, MVT::i32, ++/*327984*/ OPC_MoveParent, ++/*327985*/ OPC_MoveChild, 13, ++/*327987*/ OPC_CheckInteger, 1, ++/*327989*/ OPC_CheckType, MVT::i32, ++/*327991*/ OPC_MoveParent, ++/*327992*/ OPC_MoveChild, 14, ++/*327994*/ OPC_CheckInteger, 1, ++/*327996*/ OPC_CheckType, MVT::i32, ++/*327998*/ OPC_MoveParent, ++/*327999*/ OPC_MoveChild, 15, ++/*328001*/ OPC_CheckInteger, 1, ++/*328003*/ OPC_CheckType, MVT::i32, ++/*328005*/ OPC_MoveParent, ++/*328006*/ OPC_MoveChild, 16, ++/*328008*/ OPC_CheckInteger, 1, ++/*328010*/ OPC_CheckType, MVT::i32, ++/*328012*/ OPC_MoveParent, ++/*328013*/ OPC_MoveChild, 17, ++/*328015*/ OPC_CheckInteger, 1, ++/*328017*/ OPC_CheckType, MVT::i32, ++/*328019*/ OPC_MoveParent, ++/*328020*/ OPC_MoveChild, 18, ++/*328022*/ OPC_CheckInteger, 1, ++/*328024*/ OPC_CheckType, MVT::i32, ++/*328026*/ OPC_MoveParent, ++/*328027*/ OPC_MoveChild, 19, ++/*328029*/ OPC_CheckInteger, 1, ++/*328031*/ OPC_CheckType, MVT::i32, ++/*328033*/ OPC_MoveParent, ++/*328034*/ OPC_MoveChild, 20, ++/*328036*/ OPC_CheckInteger, 1, ++/*328038*/ OPC_CheckType, MVT::i32, ++/*328040*/ OPC_MoveParent, ++/*328041*/ OPC_MoveChild, 21, ++/*328043*/ OPC_CheckInteger, 1, ++/*328045*/ OPC_CheckType, MVT::i32, ++/*328047*/ OPC_MoveParent, ++/*328048*/ OPC_MoveChild, 22, ++/*328050*/ OPC_CheckInteger, 1, ++/*328052*/ OPC_CheckType, MVT::i32, ++/*328054*/ OPC_MoveParent, ++/*328055*/ OPC_MoveChild, 23, ++/*328057*/ OPC_CheckInteger, 1, ++/*328059*/ OPC_CheckType, MVT::i32, ++/*328061*/ OPC_MoveParent, ++/*328062*/ OPC_MoveChild, 24, ++/*328064*/ OPC_CheckInteger, 1, ++/*328066*/ OPC_CheckType, MVT::i32, ++/*328068*/ OPC_MoveParent, ++/*328069*/ OPC_MoveChild, 25, ++/*328071*/ OPC_CheckInteger, 1, ++/*328073*/ OPC_CheckType, MVT::i32, ++/*328075*/ OPC_MoveParent, ++/*328076*/ OPC_MoveChild, 26, ++/*328078*/ OPC_CheckInteger, 1, ++/*328080*/ OPC_CheckType, MVT::i32, ++/*328082*/ OPC_MoveParent, ++/*328083*/ OPC_MoveChild, 27, ++/*328085*/ OPC_CheckInteger, 1, ++/*328087*/ OPC_CheckType, MVT::i32, ++/*328089*/ OPC_MoveParent, ++/*328090*/ OPC_MoveChild, 28, ++/*328092*/ OPC_CheckInteger, 1, ++/*328094*/ OPC_CheckType, MVT::i32, ++/*328096*/ OPC_MoveParent, ++/*328097*/ OPC_MoveChild, 29, ++/*328099*/ OPC_CheckInteger, 1, ++/*328101*/ OPC_CheckType, MVT::i32, ++/*328103*/ OPC_MoveParent, ++/*328104*/ OPC_MoveChild, 30, ++/*328106*/ OPC_CheckInteger, 1, ++/*328108*/ OPC_CheckType, MVT::i32, ++/*328110*/ OPC_MoveParent, ++/*328111*/ OPC_MoveChild, 31, ++/*328113*/ OPC_CheckInteger, 1, ++/*328115*/ OPC_CheckType, MVT::i32, ++/*328117*/ OPC_MoveParent, ++/*328118*/ OPC_CheckType, MVT::v32i8, ++/*328120*/ OPC_MoveParent, ++/*328121*/ OPC_CheckType, MVT::v32i8, ++/*328123*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*328125*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*328133*/ /*Scope*/ 57|128,3/*441*/, /*->328576*/ ++/*328135*/ OPC_CheckChild0Same, 1, ++/*328137*/ OPC_MoveChild1, ++/*328138*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*328141*/ OPC_CheckChild0Integer, 1, ++/*328143*/ OPC_CheckChild0Type, MVT::i32, ++/*328145*/ OPC_CheckChild1Integer, 1, ++/*328147*/ OPC_CheckChild1Type, MVT::i32, ++/*328149*/ OPC_CheckChild2Integer, 1, ++/*328151*/ OPC_CheckChild2Type, MVT::i32, ++/*328153*/ OPC_CheckChild3Integer, 1, ++/*328155*/ OPC_CheckChild3Type, MVT::i32, ++/*328157*/ OPC_CheckChild4Integer, 1, ++/*328159*/ OPC_CheckChild4Type, MVT::i32, ++/*328161*/ OPC_MoveChild5, ++/*328162*/ OPC_CheckInteger, 1, ++/*328164*/ OPC_CheckType, MVT::i32, ++/*328166*/ OPC_MoveParent, ++/*328167*/ OPC_MoveChild6, ++/*328168*/ OPC_CheckInteger, 1, ++/*328170*/ OPC_CheckType, MVT::i32, ++/*328172*/ OPC_MoveParent, ++/*328173*/ OPC_MoveChild7, ++/*328174*/ OPC_CheckInteger, 1, ++/*328176*/ OPC_CheckType, MVT::i32, ++/*328178*/ OPC_MoveParent, ++/*328179*/ OPC_MoveChild, 8, ++/*328181*/ OPC_CheckInteger, 1, ++/*328183*/ OPC_CheckType, MVT::i32, ++/*328185*/ OPC_MoveParent, ++/*328186*/ OPC_MoveChild, 9, ++/*328188*/ OPC_CheckInteger, 1, ++/*328190*/ OPC_CheckType, MVT::i32, ++/*328192*/ OPC_MoveParent, ++/*328193*/ OPC_MoveChild, 10, ++/*328195*/ OPC_CheckInteger, 1, ++/*328197*/ OPC_CheckType, MVT::i32, ++/*328199*/ OPC_MoveParent, ++/*328200*/ OPC_MoveChild, 11, ++/*328202*/ OPC_CheckInteger, 1, ++/*328204*/ OPC_CheckType, MVT::i32, ++/*328206*/ OPC_MoveParent, ++/*328207*/ OPC_MoveChild, 12, ++/*328209*/ OPC_CheckInteger, 1, ++/*328211*/ OPC_CheckType, MVT::i32, ++/*328213*/ OPC_MoveParent, ++/*328214*/ OPC_MoveChild, 13, ++/*328216*/ OPC_CheckInteger, 1, ++/*328218*/ OPC_CheckType, MVT::i32, ++/*328220*/ OPC_MoveParent, ++/*328221*/ OPC_MoveChild, 14, ++/*328223*/ OPC_CheckInteger, 1, ++/*328225*/ OPC_CheckType, MVT::i32, ++/*328227*/ OPC_MoveParent, ++/*328228*/ OPC_MoveChild, 15, ++/*328230*/ OPC_CheckInteger, 1, ++/*328232*/ OPC_CheckType, MVT::i32, ++/*328234*/ OPC_MoveParent, ++/*328235*/ OPC_MoveChild, 16, ++/*328237*/ OPC_CheckInteger, 1, ++/*328239*/ OPC_CheckType, MVT::i32, ++/*328241*/ OPC_MoveParent, ++/*328242*/ OPC_MoveChild, 17, ++/*328244*/ OPC_CheckInteger, 1, ++/*328246*/ OPC_CheckType, MVT::i32, ++/*328248*/ OPC_MoveParent, ++/*328249*/ OPC_MoveChild, 18, ++/*328251*/ OPC_CheckInteger, 1, ++/*328253*/ OPC_CheckType, MVT::i32, ++/*328255*/ OPC_MoveParent, ++/*328256*/ OPC_MoveChild, 19, ++/*328258*/ OPC_CheckInteger, 1, ++/*328260*/ OPC_CheckType, MVT::i32, ++/*328262*/ OPC_MoveParent, ++/*328263*/ OPC_MoveChild, 20, ++/*328265*/ OPC_CheckInteger, 1, ++/*328267*/ OPC_CheckType, MVT::i32, ++/*328269*/ OPC_MoveParent, ++/*328270*/ OPC_MoveChild, 21, ++/*328272*/ OPC_CheckInteger, 1, ++/*328274*/ OPC_CheckType, MVT::i32, ++/*328276*/ OPC_MoveParent, ++/*328277*/ OPC_MoveChild, 22, ++/*328279*/ OPC_CheckInteger, 1, ++/*328281*/ OPC_CheckType, MVT::i32, ++/*328283*/ OPC_MoveParent, ++/*328284*/ OPC_MoveChild, 23, ++/*328286*/ OPC_CheckInteger, 1, ++/*328288*/ OPC_CheckType, MVT::i32, ++/*328290*/ OPC_MoveParent, ++/*328291*/ OPC_MoveChild, 24, ++/*328293*/ OPC_CheckInteger, 1, ++/*328295*/ OPC_CheckType, MVT::i32, ++/*328297*/ OPC_MoveParent, ++/*328298*/ OPC_MoveChild, 25, ++/*328300*/ OPC_CheckInteger, 1, ++/*328302*/ OPC_CheckType, MVT::i32, ++/*328304*/ OPC_MoveParent, ++/*328305*/ OPC_MoveChild, 26, ++/*328307*/ OPC_CheckInteger, 1, ++/*328309*/ OPC_CheckType, MVT::i32, ++/*328311*/ OPC_MoveParent, ++/*328312*/ OPC_MoveChild, 27, ++/*328314*/ OPC_CheckInteger, 1, ++/*328316*/ OPC_CheckType, MVT::i32, ++/*328318*/ OPC_MoveParent, ++/*328319*/ OPC_MoveChild, 28, ++/*328321*/ OPC_CheckInteger, 1, ++/*328323*/ OPC_CheckType, MVT::i32, ++/*328325*/ OPC_MoveParent, ++/*328326*/ OPC_MoveChild, 29, ++/*328328*/ OPC_CheckInteger, 1, ++/*328330*/ OPC_CheckType, MVT::i32, ++/*328332*/ OPC_MoveParent, ++/*328333*/ OPC_MoveChild, 30, ++/*328335*/ OPC_CheckInteger, 1, ++/*328337*/ OPC_CheckType, MVT::i32, ++/*328339*/ OPC_MoveParent, ++/*328340*/ OPC_MoveChild, 31, ++/*328342*/ OPC_CheckInteger, 1, ++/*328344*/ OPC_CheckType, MVT::i32, ++/*328346*/ OPC_MoveParent, ++/*328347*/ OPC_MoveParent, ++/*328348*/ OPC_MoveParent, ++/*328349*/ OPC_MoveParent, ++/*328350*/ OPC_MoveParent, ++/*328351*/ OPC_MoveChild1, ++/*328352*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*328355*/ OPC_CheckChild0Integer, 1, ++/*328357*/ OPC_CheckChild0Type, MVT::i32, ++/*328359*/ OPC_CheckChild1Integer, 1, ++/*328361*/ OPC_CheckChild1Type, MVT::i32, ++/*328363*/ OPC_CheckChild2Integer, 1, ++/*328365*/ OPC_CheckChild2Type, MVT::i32, ++/*328367*/ OPC_CheckChild3Integer, 1, ++/*328369*/ OPC_CheckChild3Type, MVT::i32, ++/*328371*/ OPC_CheckChild4Integer, 1, ++/*328373*/ OPC_CheckChild4Type, MVT::i32, ++/*328375*/ OPC_MoveChild5, ++/*328376*/ OPC_CheckInteger, 1, ++/*328378*/ OPC_CheckType, MVT::i32, ++/*328380*/ OPC_MoveParent, ++/*328381*/ OPC_MoveChild6, ++/*328382*/ OPC_CheckInteger, 1, ++/*328384*/ OPC_CheckType, MVT::i32, ++/*328386*/ OPC_MoveParent, ++/*328387*/ OPC_MoveChild7, ++/*328388*/ OPC_CheckInteger, 1, ++/*328390*/ OPC_CheckType, MVT::i32, ++/*328392*/ OPC_MoveParent, ++/*328393*/ OPC_MoveChild, 8, ++/*328395*/ OPC_CheckInteger, 1, ++/*328397*/ OPC_CheckType, MVT::i32, ++/*328399*/ OPC_MoveParent, ++/*328400*/ OPC_MoveChild, 9, ++/*328402*/ OPC_CheckInteger, 1, ++/*328404*/ OPC_CheckType, MVT::i32, ++/*328406*/ OPC_MoveParent, ++/*328407*/ OPC_MoveChild, 10, ++/*328409*/ OPC_CheckInteger, 1, ++/*328411*/ OPC_CheckType, MVT::i32, ++/*328413*/ OPC_MoveParent, ++/*328414*/ OPC_MoveChild, 11, ++/*328416*/ OPC_CheckInteger, 1, ++/*328418*/ OPC_CheckType, MVT::i32, ++/*328420*/ OPC_MoveParent, ++/*328421*/ OPC_MoveChild, 12, ++/*328423*/ OPC_CheckInteger, 1, ++/*328425*/ OPC_CheckType, MVT::i32, ++/*328427*/ OPC_MoveParent, ++/*328428*/ OPC_MoveChild, 13, ++/*328430*/ OPC_CheckInteger, 1, ++/*328432*/ OPC_CheckType, MVT::i32, ++/*328434*/ OPC_MoveParent, ++/*328435*/ OPC_MoveChild, 14, ++/*328437*/ OPC_CheckInteger, 1, ++/*328439*/ OPC_CheckType, MVT::i32, ++/*328441*/ OPC_MoveParent, ++/*328442*/ OPC_MoveChild, 15, ++/*328444*/ OPC_CheckInteger, 1, ++/*328446*/ OPC_CheckType, MVT::i32, ++/*328448*/ OPC_MoveParent, ++/*328449*/ OPC_MoveChild, 16, ++/*328451*/ OPC_CheckInteger, 1, ++/*328453*/ OPC_CheckType, MVT::i32, ++/*328455*/ OPC_MoveParent, ++/*328456*/ OPC_MoveChild, 17, ++/*328458*/ OPC_CheckInteger, 1, ++/*328460*/ OPC_CheckType, MVT::i32, ++/*328462*/ OPC_MoveParent, ++/*328463*/ OPC_MoveChild, 18, ++/*328465*/ OPC_CheckInteger, 1, ++/*328467*/ OPC_CheckType, MVT::i32, ++/*328469*/ OPC_MoveParent, ++/*328470*/ OPC_MoveChild, 19, ++/*328472*/ OPC_CheckInteger, 1, ++/*328474*/ OPC_CheckType, MVT::i32, ++/*328476*/ OPC_MoveParent, ++/*328477*/ OPC_MoveChild, 20, ++/*328479*/ OPC_CheckInteger, 1, ++/*328481*/ OPC_CheckType, MVT::i32, ++/*328483*/ OPC_MoveParent, ++/*328484*/ OPC_MoveChild, 21, ++/*328486*/ OPC_CheckInteger, 1, ++/*328488*/ OPC_CheckType, MVT::i32, ++/*328490*/ OPC_MoveParent, ++/*328491*/ OPC_MoveChild, 22, ++/*328493*/ OPC_CheckInteger, 1, ++/*328495*/ OPC_CheckType, MVT::i32, ++/*328497*/ OPC_MoveParent, ++/*328498*/ OPC_MoveChild, 23, ++/*328500*/ OPC_CheckInteger, 1, ++/*328502*/ OPC_CheckType, MVT::i32, ++/*328504*/ OPC_MoveParent, ++/*328505*/ OPC_MoveChild, 24, ++/*328507*/ OPC_CheckInteger, 1, ++/*328509*/ OPC_CheckType, MVT::i32, ++/*328511*/ OPC_MoveParent, ++/*328512*/ OPC_MoveChild, 25, ++/*328514*/ OPC_CheckInteger, 1, ++/*328516*/ OPC_CheckType, MVT::i32, ++/*328518*/ OPC_MoveParent, ++/*328519*/ OPC_MoveChild, 26, ++/*328521*/ OPC_CheckInteger, 1, ++/*328523*/ OPC_CheckType, MVT::i32, ++/*328525*/ OPC_MoveParent, ++/*328526*/ OPC_MoveChild, 27, ++/*328528*/ OPC_CheckInteger, 1, ++/*328530*/ OPC_CheckType, MVT::i32, ++/*328532*/ OPC_MoveParent, ++/*328533*/ OPC_MoveChild, 28, ++/*328535*/ OPC_CheckInteger, 1, ++/*328537*/ OPC_CheckType, MVT::i32, ++/*328539*/ OPC_MoveParent, ++/*328540*/ OPC_MoveChild, 29, ++/*328542*/ OPC_CheckInteger, 1, ++/*328544*/ OPC_CheckType, MVT::i32, ++/*328546*/ OPC_MoveParent, ++/*328547*/ OPC_MoveChild, 30, ++/*328549*/ OPC_CheckInteger, 1, ++/*328551*/ OPC_CheckType, MVT::i32, ++/*328553*/ OPC_MoveParent, ++/*328554*/ OPC_MoveChild, 31, ++/*328556*/ OPC_CheckInteger, 1, ++/*328558*/ OPC_CheckType, MVT::i32, ++/*328560*/ OPC_MoveParent, ++/*328561*/ OPC_CheckType, MVT::v32i8, ++/*328563*/ OPC_MoveParent, ++/*328564*/ OPC_CheckType, MVT::v32i8, ++/*328566*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*328568*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*328576*/ 0, /*End of Scope*/ ++/*328577*/ /*Scope*/ 45|128,5/*685*/, /*->329264*/ ++/*328579*/ OPC_MoveChild0, ++/*328580*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*328583*/ OPC_CheckChild0Integer, 1, ++/*328585*/ OPC_CheckChild0Type, MVT::i32, ++/*328587*/ OPC_CheckChild1Integer, 1, ++/*328589*/ OPC_CheckChild1Type, MVT::i32, ++/*328591*/ OPC_CheckChild2Integer, 1, ++/*328593*/ OPC_CheckChild2Type, MVT::i32, ++/*328595*/ OPC_CheckChild3Integer, 1, ++/*328597*/ OPC_CheckChild3Type, MVT::i32, ++/*328599*/ OPC_CheckChild4Integer, 1, ++/*328601*/ OPC_CheckChild4Type, MVT::i32, ++/*328603*/ OPC_MoveChild5, ++/*328604*/ OPC_CheckInteger, 1, ++/*328606*/ OPC_CheckType, MVT::i32, ++/*328608*/ OPC_MoveParent, ++/*328609*/ OPC_MoveChild6, ++/*328610*/ OPC_CheckInteger, 1, ++/*328612*/ OPC_CheckType, MVT::i32, ++/*328614*/ OPC_MoveParent, ++/*328615*/ OPC_MoveChild7, ++/*328616*/ OPC_CheckInteger, 1, ++/*328618*/ OPC_CheckType, MVT::i32, ++/*328620*/ OPC_MoveParent, ++/*328621*/ OPC_MoveChild, 8, ++/*328623*/ OPC_CheckInteger, 1, ++/*328625*/ OPC_CheckType, MVT::i32, ++/*328627*/ OPC_MoveParent, ++/*328628*/ OPC_MoveChild, 9, ++/*328630*/ OPC_CheckInteger, 1, ++/*328632*/ OPC_CheckType, MVT::i32, ++/*328634*/ OPC_MoveParent, ++/*328635*/ OPC_MoveChild, 10, ++/*328637*/ OPC_CheckInteger, 1, ++/*328639*/ OPC_CheckType, MVT::i32, ++/*328641*/ OPC_MoveParent, ++/*328642*/ OPC_MoveChild, 11, ++/*328644*/ OPC_CheckInteger, 1, ++/*328646*/ OPC_CheckType, MVT::i32, ++/*328648*/ OPC_MoveParent, ++/*328649*/ OPC_MoveChild, 12, ++/*328651*/ OPC_CheckInteger, 1, ++/*328653*/ OPC_CheckType, MVT::i32, ++/*328655*/ OPC_MoveParent, ++/*328656*/ OPC_MoveChild, 13, ++/*328658*/ OPC_CheckInteger, 1, ++/*328660*/ OPC_CheckType, MVT::i32, ++/*328662*/ OPC_MoveParent, ++/*328663*/ OPC_MoveChild, 14, ++/*328665*/ OPC_CheckInteger, 1, ++/*328667*/ OPC_CheckType, MVT::i32, ++/*328669*/ OPC_MoveParent, ++/*328670*/ OPC_MoveChild, 15, ++/*328672*/ OPC_CheckInteger, 1, ++/*328674*/ OPC_CheckType, MVT::i32, ++/*328676*/ OPC_MoveParent, ++/*328677*/ OPC_MoveChild, 16, ++/*328679*/ OPC_CheckInteger, 1, ++/*328681*/ OPC_CheckType, MVT::i32, ++/*328683*/ OPC_MoveParent, ++/*328684*/ OPC_MoveChild, 17, ++/*328686*/ OPC_CheckInteger, 1, ++/*328688*/ OPC_CheckType, MVT::i32, ++/*328690*/ OPC_MoveParent, ++/*328691*/ OPC_MoveChild, 18, ++/*328693*/ OPC_CheckInteger, 1, ++/*328695*/ OPC_CheckType, MVT::i32, ++/*328697*/ OPC_MoveParent, ++/*328698*/ OPC_MoveChild, 19, ++/*328700*/ OPC_CheckInteger, 1, ++/*328702*/ OPC_CheckType, MVT::i32, ++/*328704*/ OPC_MoveParent, ++/*328705*/ OPC_MoveChild, 20, ++/*328707*/ OPC_CheckInteger, 1, ++/*328709*/ OPC_CheckType, MVT::i32, ++/*328711*/ OPC_MoveParent, ++/*328712*/ OPC_MoveChild, 21, ++/*328714*/ OPC_CheckInteger, 1, ++/*328716*/ OPC_CheckType, MVT::i32, ++/*328718*/ OPC_MoveParent, ++/*328719*/ OPC_MoveChild, 22, ++/*328721*/ OPC_CheckInteger, 1, ++/*328723*/ OPC_CheckType, MVT::i32, ++/*328725*/ OPC_MoveParent, ++/*328726*/ OPC_MoveChild, 23, ++/*328728*/ OPC_CheckInteger, 1, ++/*328730*/ OPC_CheckType, MVT::i32, ++/*328732*/ OPC_MoveParent, ++/*328733*/ OPC_MoveChild, 24, ++/*328735*/ OPC_CheckInteger, 1, ++/*328737*/ OPC_CheckType, MVT::i32, ++/*328739*/ OPC_MoveParent, ++/*328740*/ OPC_MoveChild, 25, ++/*328742*/ OPC_CheckInteger, 1, ++/*328744*/ OPC_CheckType, MVT::i32, ++/*328746*/ OPC_MoveParent, ++/*328747*/ OPC_MoveChild, 26, ++/*328749*/ OPC_CheckInteger, 1, ++/*328751*/ OPC_CheckType, MVT::i32, ++/*328753*/ OPC_MoveParent, ++/*328754*/ OPC_MoveChild, 27, ++/*328756*/ OPC_CheckInteger, 1, ++/*328758*/ OPC_CheckType, MVT::i32, ++/*328760*/ OPC_MoveParent, ++/*328761*/ OPC_MoveChild, 28, ++/*328763*/ OPC_CheckInteger, 1, ++/*328765*/ OPC_CheckType, MVT::i32, ++/*328767*/ OPC_MoveParent, ++/*328768*/ OPC_MoveChild, 29, ++/*328770*/ OPC_CheckInteger, 1, ++/*328772*/ OPC_CheckType, MVT::i32, ++/*328774*/ OPC_MoveParent, ++/*328775*/ OPC_MoveChild, 30, ++/*328777*/ OPC_CheckInteger, 1, ++/*328779*/ OPC_CheckType, MVT::i32, ++/*328781*/ OPC_MoveParent, ++/*328782*/ OPC_MoveChild, 31, ++/*328784*/ OPC_CheckInteger, 1, ++/*328786*/ OPC_CheckType, MVT::i32, ++/*328788*/ OPC_MoveParent, ++/*328789*/ OPC_MoveParent, ++/*328790*/ OPC_MoveChild1, ++/*328791*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*328794*/ OPC_Scope, 104|128,1/*232*/, /*->329029*/ // 2 children in Scope ++/*328797*/ OPC_CheckChild0Same, 0, ++/*328799*/ OPC_CheckChild1Same, 1, ++/*328801*/ OPC_MoveParent, ++/*328802*/ OPC_MoveParent, ++/*328803*/ OPC_MoveParent, ++/*328804*/ OPC_MoveChild1, ++/*328805*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*328808*/ OPC_CheckChild0Integer, 1, ++/*328810*/ OPC_CheckChild0Type, MVT::i32, ++/*328812*/ OPC_CheckChild1Integer, 1, ++/*328814*/ OPC_CheckChild1Type, MVT::i32, ++/*328816*/ OPC_CheckChild2Integer, 1, ++/*328818*/ OPC_CheckChild2Type, MVT::i32, ++/*328820*/ OPC_CheckChild3Integer, 1, ++/*328822*/ OPC_CheckChild3Type, MVT::i32, ++/*328824*/ OPC_CheckChild4Integer, 1, ++/*328826*/ OPC_CheckChild4Type, MVT::i32, ++/*328828*/ OPC_MoveChild5, ++/*328829*/ OPC_CheckInteger, 1, ++/*328831*/ OPC_CheckType, MVT::i32, ++/*328833*/ OPC_MoveParent, ++/*328834*/ OPC_MoveChild6, ++/*328835*/ OPC_CheckInteger, 1, ++/*328837*/ OPC_CheckType, MVT::i32, ++/*328839*/ OPC_MoveParent, ++/*328840*/ OPC_MoveChild7, ++/*328841*/ OPC_CheckInteger, 1, ++/*328843*/ OPC_CheckType, MVT::i32, ++/*328845*/ OPC_MoveParent, ++/*328846*/ OPC_MoveChild, 8, ++/*328848*/ OPC_CheckInteger, 1, ++/*328850*/ OPC_CheckType, MVT::i32, ++/*328852*/ OPC_MoveParent, ++/*328853*/ OPC_MoveChild, 9, ++/*328855*/ OPC_CheckInteger, 1, ++/*328857*/ OPC_CheckType, MVT::i32, ++/*328859*/ OPC_MoveParent, ++/*328860*/ OPC_MoveChild, 10, ++/*328862*/ OPC_CheckInteger, 1, ++/*328864*/ OPC_CheckType, MVT::i32, ++/*328866*/ OPC_MoveParent, ++/*328867*/ OPC_MoveChild, 11, ++/*328869*/ OPC_CheckInteger, 1, ++/*328871*/ OPC_CheckType, MVT::i32, ++/*328873*/ OPC_MoveParent, ++/*328874*/ OPC_MoveChild, 12, ++/*328876*/ OPC_CheckInteger, 1, ++/*328878*/ OPC_CheckType, MVT::i32, ++/*328880*/ OPC_MoveParent, ++/*328881*/ OPC_MoveChild, 13, ++/*328883*/ OPC_CheckInteger, 1, ++/*328885*/ OPC_CheckType, MVT::i32, ++/*328887*/ OPC_MoveParent, ++/*328888*/ OPC_MoveChild, 14, ++/*328890*/ OPC_CheckInteger, 1, ++/*328892*/ OPC_CheckType, MVT::i32, ++/*328894*/ OPC_MoveParent, ++/*328895*/ OPC_MoveChild, 15, ++/*328897*/ OPC_CheckInteger, 1, ++/*328899*/ OPC_CheckType, MVT::i32, ++/*328901*/ OPC_MoveParent, ++/*328902*/ OPC_MoveChild, 16, ++/*328904*/ OPC_CheckInteger, 1, ++/*328906*/ OPC_CheckType, MVT::i32, ++/*328908*/ OPC_MoveParent, ++/*328909*/ OPC_MoveChild, 17, ++/*328911*/ OPC_CheckInteger, 1, ++/*328913*/ OPC_CheckType, MVT::i32, ++/*328915*/ OPC_MoveParent, ++/*328916*/ OPC_MoveChild, 18, ++/*328918*/ OPC_CheckInteger, 1, ++/*328920*/ OPC_CheckType, MVT::i32, ++/*328922*/ OPC_MoveParent, ++/*328923*/ OPC_MoveChild, 19, ++/*328925*/ OPC_CheckInteger, 1, ++/*328927*/ OPC_CheckType, MVT::i32, ++/*328929*/ OPC_MoveParent, ++/*328930*/ OPC_MoveChild, 20, ++/*328932*/ OPC_CheckInteger, 1, ++/*328934*/ OPC_CheckType, MVT::i32, ++/*328936*/ OPC_MoveParent, ++/*328937*/ OPC_MoveChild, 21, ++/*328939*/ OPC_CheckInteger, 1, ++/*328941*/ OPC_CheckType, MVT::i32, ++/*328943*/ OPC_MoveParent, ++/*328944*/ OPC_MoveChild, 22, ++/*328946*/ OPC_CheckInteger, 1, ++/*328948*/ OPC_CheckType, MVT::i32, ++/*328950*/ OPC_MoveParent, ++/*328951*/ OPC_MoveChild, 23, ++/*328953*/ OPC_CheckInteger, 1, ++/*328955*/ OPC_CheckType, MVT::i32, ++/*328957*/ OPC_MoveParent, ++/*328958*/ OPC_MoveChild, 24, ++/*328960*/ OPC_CheckInteger, 1, ++/*328962*/ OPC_CheckType, MVT::i32, ++/*328964*/ OPC_MoveParent, ++/*328965*/ OPC_MoveChild, 25, ++/*328967*/ OPC_CheckInteger, 1, ++/*328969*/ OPC_CheckType, MVT::i32, ++/*328971*/ OPC_MoveParent, ++/*328972*/ OPC_MoveChild, 26, ++/*328974*/ OPC_CheckInteger, 1, ++/*328976*/ OPC_CheckType, MVT::i32, ++/*328978*/ OPC_MoveParent, ++/*328979*/ OPC_MoveChild, 27, ++/*328981*/ OPC_CheckInteger, 1, ++/*328983*/ OPC_CheckType, MVT::i32, ++/*328985*/ OPC_MoveParent, ++/*328986*/ OPC_MoveChild, 28, ++/*328988*/ OPC_CheckInteger, 1, ++/*328990*/ OPC_CheckType, MVT::i32, ++/*328992*/ OPC_MoveParent, ++/*328993*/ OPC_MoveChild, 29, ++/*328995*/ OPC_CheckInteger, 1, ++/*328997*/ OPC_CheckType, MVT::i32, ++/*328999*/ OPC_MoveParent, ++/*329000*/ OPC_MoveChild, 30, ++/*329002*/ OPC_CheckInteger, 1, ++/*329004*/ OPC_CheckType, MVT::i32, ++/*329006*/ OPC_MoveParent, ++/*329007*/ OPC_MoveChild, 31, ++/*329009*/ OPC_CheckInteger, 1, ++/*329011*/ OPC_CheckType, MVT::i32, ++/*329013*/ OPC_MoveParent, ++/*329014*/ OPC_CheckType, MVT::v32i8, ++/*329016*/ OPC_MoveParent, ++/*329017*/ OPC_CheckType, MVT::v32i8, ++/*329019*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*329021*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*329029*/ /*Scope*/ 104|128,1/*232*/, /*->329263*/ ++/*329031*/ OPC_CheckChild0Same, 1, ++/*329033*/ OPC_CheckChild1Same, 0, ++/*329035*/ OPC_MoveParent, ++/*329036*/ OPC_MoveParent, ++/*329037*/ OPC_MoveParent, ++/*329038*/ OPC_MoveChild1, ++/*329039*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*329042*/ OPC_CheckChild0Integer, 1, ++/*329044*/ OPC_CheckChild0Type, MVT::i32, ++/*329046*/ OPC_CheckChild1Integer, 1, ++/*329048*/ OPC_CheckChild1Type, MVT::i32, ++/*329050*/ OPC_CheckChild2Integer, 1, ++/*329052*/ OPC_CheckChild2Type, MVT::i32, ++/*329054*/ OPC_CheckChild3Integer, 1, ++/*329056*/ OPC_CheckChild3Type, MVT::i32, ++/*329058*/ OPC_CheckChild4Integer, 1, ++/*329060*/ OPC_CheckChild4Type, MVT::i32, ++/*329062*/ OPC_MoveChild5, ++/*329063*/ OPC_CheckInteger, 1, ++/*329065*/ OPC_CheckType, MVT::i32, ++/*329067*/ OPC_MoveParent, ++/*329068*/ OPC_MoveChild6, ++/*329069*/ OPC_CheckInteger, 1, ++/*329071*/ OPC_CheckType, MVT::i32, ++/*329073*/ OPC_MoveParent, ++/*329074*/ OPC_MoveChild7, ++/*329075*/ OPC_CheckInteger, 1, ++/*329077*/ OPC_CheckType, MVT::i32, ++/*329079*/ OPC_MoveParent, ++/*329080*/ OPC_MoveChild, 8, ++/*329082*/ OPC_CheckInteger, 1, ++/*329084*/ OPC_CheckType, MVT::i32, ++/*329086*/ OPC_MoveParent, ++/*329087*/ OPC_MoveChild, 9, ++/*329089*/ OPC_CheckInteger, 1, ++/*329091*/ OPC_CheckType, MVT::i32, ++/*329093*/ OPC_MoveParent, ++/*329094*/ OPC_MoveChild, 10, ++/*329096*/ OPC_CheckInteger, 1, ++/*329098*/ OPC_CheckType, MVT::i32, ++/*329100*/ OPC_MoveParent, ++/*329101*/ OPC_MoveChild, 11, ++/*329103*/ OPC_CheckInteger, 1, ++/*329105*/ OPC_CheckType, MVT::i32, ++/*329107*/ OPC_MoveParent, ++/*329108*/ OPC_MoveChild, 12, ++/*329110*/ OPC_CheckInteger, 1, ++/*329112*/ OPC_CheckType, MVT::i32, ++/*329114*/ OPC_MoveParent, ++/*329115*/ OPC_MoveChild, 13, ++/*329117*/ OPC_CheckInteger, 1, ++/*329119*/ OPC_CheckType, MVT::i32, ++/*329121*/ OPC_MoveParent, ++/*329122*/ OPC_MoveChild, 14, ++/*329124*/ OPC_CheckInteger, 1, ++/*329126*/ OPC_CheckType, MVT::i32, ++/*329128*/ OPC_MoveParent, ++/*329129*/ OPC_MoveChild, 15, ++/*329131*/ OPC_CheckInteger, 1, ++/*329133*/ OPC_CheckType, MVT::i32, ++/*329135*/ OPC_MoveParent, ++/*329136*/ OPC_MoveChild, 16, ++/*329138*/ OPC_CheckInteger, 1, ++/*329140*/ OPC_CheckType, MVT::i32, ++/*329142*/ OPC_MoveParent, ++/*329143*/ OPC_MoveChild, 17, ++/*329145*/ OPC_CheckInteger, 1, ++/*329147*/ OPC_CheckType, MVT::i32, ++/*329149*/ OPC_MoveParent, ++/*329150*/ OPC_MoveChild, 18, ++/*329152*/ OPC_CheckInteger, 1, ++/*329154*/ OPC_CheckType, MVT::i32, ++/*329156*/ OPC_MoveParent, ++/*329157*/ OPC_MoveChild, 19, ++/*329159*/ OPC_CheckInteger, 1, ++/*329161*/ OPC_CheckType, MVT::i32, ++/*329163*/ OPC_MoveParent, ++/*329164*/ OPC_MoveChild, 20, ++/*329166*/ OPC_CheckInteger, 1, ++/*329168*/ OPC_CheckType, MVT::i32, ++/*329170*/ OPC_MoveParent, ++/*329171*/ OPC_MoveChild, 21, ++/*329173*/ OPC_CheckInteger, 1, ++/*329175*/ OPC_CheckType, MVT::i32, ++/*329177*/ OPC_MoveParent, ++/*329178*/ OPC_MoveChild, 22, ++/*329180*/ OPC_CheckInteger, 1, ++/*329182*/ OPC_CheckType, MVT::i32, ++/*329184*/ OPC_MoveParent, ++/*329185*/ OPC_MoveChild, 23, ++/*329187*/ OPC_CheckInteger, 1, ++/*329189*/ OPC_CheckType, MVT::i32, ++/*329191*/ OPC_MoveParent, ++/*329192*/ OPC_MoveChild, 24, ++/*329194*/ OPC_CheckInteger, 1, ++/*329196*/ OPC_CheckType, MVT::i32, ++/*329198*/ OPC_MoveParent, ++/*329199*/ OPC_MoveChild, 25, ++/*329201*/ OPC_CheckInteger, 1, ++/*329203*/ OPC_CheckType, MVT::i32, ++/*329205*/ OPC_MoveParent, ++/*329206*/ OPC_MoveChild, 26, ++/*329208*/ OPC_CheckInteger, 1, ++/*329210*/ OPC_CheckType, MVT::i32, ++/*329212*/ OPC_MoveParent, ++/*329213*/ OPC_MoveChild, 27, ++/*329215*/ OPC_CheckInteger, 1, ++/*329217*/ OPC_CheckType, MVT::i32, ++/*329219*/ OPC_MoveParent, ++/*329220*/ OPC_MoveChild, 28, ++/*329222*/ OPC_CheckInteger, 1, ++/*329224*/ OPC_CheckType, MVT::i32, ++/*329226*/ OPC_MoveParent, ++/*329227*/ OPC_MoveChild, 29, ++/*329229*/ OPC_CheckInteger, 1, ++/*329231*/ OPC_CheckType, MVT::i32, ++/*329233*/ OPC_MoveParent, ++/*329234*/ OPC_MoveChild, 30, ++/*329236*/ OPC_CheckInteger, 1, ++/*329238*/ OPC_CheckType, MVT::i32, ++/*329240*/ OPC_MoveParent, ++/*329241*/ OPC_MoveChild, 31, ++/*329243*/ OPC_CheckInteger, 1, ++/*329245*/ OPC_CheckType, MVT::i32, ++/*329247*/ OPC_MoveParent, ++/*329248*/ OPC_CheckType, MVT::v32i8, ++/*329250*/ OPC_MoveParent, ++/*329251*/ OPC_CheckType, MVT::v32i8, ++/*329253*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*329255*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*329263*/ 0, /*End of Scope*/ ++/*329264*/ 0, /*End of Scope*/ ++/*329265*/ 0, /*End of Scope*/ ++/*329266*/ /*Scope*/ 43|128,85|128,1/*27307*/, /*->356576*/ ++/*329269*/ OPC_MoveChild0, ++/*329270*/ OPC_SwitchOpcode /*2 cases */, 126|128,83/*10750*/, TARGET_VAL(ISD::BUILD_VECTOR),// ->340025 ++/*329275*/ OPC_CheckChild0Integer, 1, ++/*329277*/ OPC_CheckChild0Type, MVT::i32, ++/*329279*/ OPC_CheckChild1Integer, 1, ++/*329281*/ OPC_CheckChild1Type, MVT::i32, ++/*329283*/ OPC_CheckChild2Integer, 1, ++/*329285*/ OPC_CheckChild2Type, MVT::i32, ++/*329287*/ OPC_CheckChild3Integer, 1, ++/*329289*/ OPC_CheckChild3Type, MVT::i32, ++/*329291*/ OPC_CheckChild4Integer, 1, ++/*329293*/ OPC_CheckChild4Type, MVT::i32, ++/*329295*/ OPC_MoveChild5, ++/*329296*/ OPC_CheckInteger, 1, ++/*329298*/ OPC_CheckType, MVT::i32, ++/*329300*/ OPC_MoveParent, ++/*329301*/ OPC_MoveChild6, ++/*329302*/ OPC_CheckInteger, 1, ++/*329304*/ OPC_CheckType, MVT::i32, ++/*329306*/ OPC_MoveParent, ++/*329307*/ OPC_MoveChild7, ++/*329308*/ OPC_CheckInteger, 1, ++/*329310*/ OPC_CheckType, MVT::i32, ++/*329312*/ OPC_MoveParent, ++/*329313*/ OPC_MoveChild, 8, ++/*329315*/ OPC_CheckInteger, 1, ++/*329317*/ OPC_CheckType, MVT::i32, ++/*329319*/ OPC_MoveParent, ++/*329320*/ OPC_MoveChild, 9, ++/*329322*/ OPC_CheckInteger, 1, ++/*329324*/ OPC_CheckType, MVT::i32, ++/*329326*/ OPC_MoveParent, ++/*329327*/ OPC_MoveChild, 10, ++/*329329*/ OPC_CheckInteger, 1, ++/*329331*/ OPC_CheckType, MVT::i32, ++/*329333*/ OPC_MoveParent, ++/*329334*/ OPC_MoveChild, 11, ++/*329336*/ OPC_CheckInteger, 1, ++/*329338*/ OPC_CheckType, MVT::i32, ++/*329340*/ OPC_MoveParent, ++/*329341*/ OPC_MoveChild, 12, ++/*329343*/ OPC_CheckInteger, 1, ++/*329345*/ OPC_CheckType, MVT::i32, ++/*329347*/ OPC_MoveParent, ++/*329348*/ OPC_MoveChild, 13, ++/*329350*/ OPC_CheckInteger, 1, ++/*329352*/ OPC_CheckType, MVT::i32, ++/*329354*/ OPC_MoveParent, ++/*329355*/ OPC_MoveChild, 14, ++/*329357*/ OPC_CheckInteger, 1, ++/*329359*/ OPC_CheckType, MVT::i32, ++/*329361*/ OPC_MoveParent, ++/*329362*/ OPC_MoveChild, 15, ++/*329364*/ OPC_CheckInteger, 1, ++/*329366*/ OPC_CheckType, MVT::i32, ++/*329368*/ OPC_MoveParent, ++/*329369*/ OPC_MoveChild, 16, ++/*329371*/ OPC_CheckInteger, 1, ++/*329373*/ OPC_CheckType, MVT::i32, ++/*329375*/ OPC_MoveParent, ++/*329376*/ OPC_MoveChild, 17, ++/*329378*/ OPC_CheckInteger, 1, ++/*329380*/ OPC_CheckType, MVT::i32, ++/*329382*/ OPC_MoveParent, ++/*329383*/ OPC_MoveChild, 18, ++/*329385*/ OPC_CheckInteger, 1, ++/*329387*/ OPC_CheckType, MVT::i32, ++/*329389*/ OPC_MoveParent, ++/*329390*/ OPC_MoveChild, 19, ++/*329392*/ OPC_CheckInteger, 1, ++/*329394*/ OPC_CheckType, MVT::i32, ++/*329396*/ OPC_MoveParent, ++/*329397*/ OPC_MoveChild, 20, ++/*329399*/ OPC_CheckInteger, 1, ++/*329401*/ OPC_CheckType, MVT::i32, ++/*329403*/ OPC_MoveParent, ++/*329404*/ OPC_MoveChild, 21, ++/*329406*/ OPC_CheckInteger, 1, ++/*329408*/ OPC_CheckType, MVT::i32, ++/*329410*/ OPC_MoveParent, ++/*329411*/ OPC_MoveChild, 22, ++/*329413*/ OPC_CheckInteger, 1, ++/*329415*/ OPC_CheckType, MVT::i32, ++/*329417*/ OPC_MoveParent, ++/*329418*/ OPC_MoveChild, 23, ++/*329420*/ OPC_CheckInteger, 1, ++/*329422*/ OPC_CheckType, MVT::i32, ++/*329424*/ OPC_MoveParent, ++/*329425*/ OPC_MoveChild, 24, ++/*329427*/ OPC_CheckInteger, 1, ++/*329429*/ OPC_CheckType, MVT::i32, ++/*329431*/ OPC_MoveParent, ++/*329432*/ OPC_MoveChild, 25, ++/*329434*/ OPC_CheckInteger, 1, ++/*329436*/ OPC_CheckType, MVT::i32, ++/*329438*/ OPC_MoveParent, ++/*329439*/ OPC_MoveChild, 26, ++/*329441*/ OPC_CheckInteger, 1, ++/*329443*/ OPC_CheckType, MVT::i32, ++/*329445*/ OPC_MoveParent, ++/*329446*/ OPC_MoveChild, 27, ++/*329448*/ OPC_CheckInteger, 1, ++/*329450*/ OPC_CheckType, MVT::i32, ++/*329452*/ OPC_MoveParent, ++/*329453*/ OPC_MoveChild, 28, ++/*329455*/ OPC_CheckInteger, 1, ++/*329457*/ OPC_CheckType, MVT::i32, ++/*329459*/ OPC_MoveParent, ++/*329460*/ OPC_MoveChild, 29, ++/*329462*/ OPC_CheckInteger, 1, ++/*329464*/ OPC_CheckType, MVT::i32, ++/*329466*/ OPC_MoveParent, ++/*329467*/ OPC_MoveChild, 30, ++/*329469*/ OPC_CheckInteger, 1, ++/*329471*/ OPC_CheckType, MVT::i32, ++/*329473*/ OPC_MoveParent, ++/*329474*/ OPC_MoveChild, 31, ++/*329476*/ OPC_CheckInteger, 1, ++/*329478*/ OPC_CheckType, MVT::i32, ++/*329480*/ OPC_MoveParent, ++/*329481*/ OPC_MoveParent, ++/*329482*/ OPC_MoveChild1, ++/*329483*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*329486*/ OPC_RecordChild0, // #0 = $a ++/*329487*/ OPC_RecordChild1, // #1 = $b ++/*329488*/ OPC_MoveParent, ++/*329489*/ OPC_MoveParent, ++/*329490*/ OPC_MoveChild1, ++/*329491*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*329494*/ OPC_CheckChild0Integer, 7, ++/*329496*/ OPC_CheckChild0Type, MVT::i32, ++/*329498*/ OPC_CheckChild1Integer, 7, ++/*329500*/ OPC_CheckChild1Type, MVT::i32, ++/*329502*/ OPC_CheckChild2Integer, 7, ++/*329504*/ OPC_CheckChild2Type, MVT::i32, ++/*329506*/ OPC_CheckChild3Integer, 7, ++/*329508*/ OPC_CheckChild3Type, MVT::i32, ++/*329510*/ OPC_CheckChild4Integer, 7, ++/*329512*/ OPC_CheckChild4Type, MVT::i32, ++/*329514*/ OPC_MoveChild5, ++/*329515*/ OPC_CheckInteger, 7, ++/*329517*/ OPC_CheckType, MVT::i32, ++/*329519*/ OPC_MoveParent, ++/*329520*/ OPC_MoveChild6, ++/*329521*/ OPC_CheckInteger, 7, ++/*329523*/ OPC_CheckType, MVT::i32, ++/*329525*/ OPC_MoveParent, ++/*329526*/ OPC_MoveChild7, ++/*329527*/ OPC_CheckInteger, 7, ++/*329529*/ OPC_CheckType, MVT::i32, ++/*329531*/ OPC_MoveParent, ++/*329532*/ OPC_MoveChild, 8, ++/*329534*/ OPC_CheckInteger, 7, ++/*329536*/ OPC_CheckType, MVT::i32, ++/*329538*/ OPC_MoveParent, ++/*329539*/ OPC_MoveChild, 9, ++/*329541*/ OPC_CheckInteger, 7, ++/*329543*/ OPC_CheckType, MVT::i32, ++/*329545*/ OPC_MoveParent, ++/*329546*/ OPC_MoveChild, 10, ++/*329548*/ OPC_CheckInteger, 7, ++/*329550*/ OPC_CheckType, MVT::i32, ++/*329552*/ OPC_MoveParent, ++/*329553*/ OPC_MoveChild, 11, ++/*329555*/ OPC_CheckInteger, 7, ++/*329557*/ OPC_CheckType, MVT::i32, ++/*329559*/ OPC_MoveParent, ++/*329560*/ OPC_MoveChild, 12, ++/*329562*/ OPC_CheckInteger, 7, ++/*329564*/ OPC_CheckType, MVT::i32, ++/*329566*/ OPC_MoveParent, ++/*329567*/ OPC_MoveChild, 13, ++/*329569*/ OPC_CheckInteger, 7, ++/*329571*/ OPC_CheckType, MVT::i32, ++/*329573*/ OPC_MoveParent, ++/*329574*/ OPC_MoveChild, 14, ++/*329576*/ OPC_CheckInteger, 7, ++/*329578*/ OPC_CheckType, MVT::i32, ++/*329580*/ OPC_MoveParent, ++/*329581*/ OPC_MoveChild, 15, ++/*329583*/ OPC_CheckInteger, 7, ++/*329585*/ OPC_CheckType, MVT::i32, ++/*329587*/ OPC_MoveParent, ++/*329588*/ OPC_MoveChild, 16, ++/*329590*/ OPC_CheckInteger, 7, ++/*329592*/ OPC_CheckType, MVT::i32, ++/*329594*/ OPC_MoveParent, ++/*329595*/ OPC_MoveChild, 17, ++/*329597*/ OPC_CheckInteger, 7, ++/*329599*/ OPC_CheckType, MVT::i32, ++/*329601*/ OPC_MoveParent, ++/*329602*/ OPC_MoveChild, 18, ++/*329604*/ OPC_CheckInteger, 7, ++/*329606*/ OPC_CheckType, MVT::i32, ++/*329608*/ OPC_MoveParent, ++/*329609*/ OPC_MoveChild, 19, ++/*329611*/ OPC_CheckInteger, 7, ++/*329613*/ OPC_CheckType, MVT::i32, ++/*329615*/ OPC_MoveParent, ++/*329616*/ OPC_MoveChild, 20, ++/*329618*/ OPC_CheckInteger, 7, ++/*329620*/ OPC_CheckType, MVT::i32, ++/*329622*/ OPC_MoveParent, ++/*329623*/ OPC_MoveChild, 21, ++/*329625*/ OPC_CheckInteger, 7, ++/*329627*/ OPC_CheckType, MVT::i32, ++/*329629*/ OPC_MoveParent, ++/*329630*/ OPC_MoveChild, 22, ++/*329632*/ OPC_CheckInteger, 7, ++/*329634*/ OPC_CheckType, MVT::i32, ++/*329636*/ OPC_MoveParent, ++/*329637*/ OPC_MoveChild, 23, ++/*329639*/ OPC_CheckInteger, 7, ++/*329641*/ OPC_CheckType, MVT::i32, ++/*329643*/ OPC_MoveParent, ++/*329644*/ OPC_MoveChild, 24, ++/*329646*/ OPC_CheckInteger, 7, ++/*329648*/ OPC_CheckType, MVT::i32, ++/*329650*/ OPC_MoveParent, ++/*329651*/ OPC_MoveChild, 25, ++/*329653*/ OPC_CheckInteger, 7, ++/*329655*/ OPC_CheckType, MVT::i32, ++/*329657*/ OPC_MoveParent, ++/*329658*/ OPC_MoveChild, 26, ++/*329660*/ OPC_CheckInteger, 7, ++/*329662*/ OPC_CheckType, MVT::i32, ++/*329664*/ OPC_MoveParent, ++/*329665*/ OPC_MoveChild, 27, ++/*329667*/ OPC_CheckInteger, 7, ++/*329669*/ OPC_CheckType, MVT::i32, ++/*329671*/ OPC_MoveParent, ++/*329672*/ OPC_MoveChild, 28, ++/*329674*/ OPC_CheckInteger, 7, ++/*329676*/ OPC_CheckType, MVT::i32, ++/*329678*/ OPC_MoveParent, ++/*329679*/ OPC_MoveChild, 29, ++/*329681*/ OPC_CheckInteger, 7, ++/*329683*/ OPC_CheckType, MVT::i32, ++/*329685*/ OPC_MoveParent, ++/*329686*/ OPC_MoveChild, 30, ++/*329688*/ OPC_CheckInteger, 7, ++/*329690*/ OPC_CheckType, MVT::i32, ++/*329692*/ OPC_MoveParent, ++/*329693*/ OPC_MoveChild, 31, ++/*329695*/ OPC_CheckInteger, 7, ++/*329697*/ OPC_CheckType, MVT::i32, ++/*329699*/ OPC_MoveParent, ++/*329700*/ OPC_CheckType, MVT::v32i8, ++/*329702*/ OPC_MoveParent, ++/*329703*/ OPC_MoveParent, ++/*329704*/ OPC_MoveChild1, ++/*329705*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*329708*/ OPC_Scope, 116|128,20/*2676*/, /*->332387*/ // 7 children in Scope ++/*329711*/ OPC_MoveChild0, ++/*329712*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*329715*/ OPC_Scope, 59|128,3/*443*/, /*->330161*/ // 6 children in Scope ++/*329718*/ OPC_MoveChild0, ++/*329719*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*329722*/ OPC_CheckChild0Integer, 1, ++/*329724*/ OPC_CheckChild0Type, MVT::i32, ++/*329726*/ OPC_CheckChild1Integer, 1, ++/*329728*/ OPC_CheckChild1Type, MVT::i32, ++/*329730*/ OPC_CheckChild2Integer, 1, ++/*329732*/ OPC_CheckChild2Type, MVT::i32, ++/*329734*/ OPC_CheckChild3Integer, 1, ++/*329736*/ OPC_CheckChild3Type, MVT::i32, ++/*329738*/ OPC_CheckChild4Integer, 1, ++/*329740*/ OPC_CheckChild4Type, MVT::i32, ++/*329742*/ OPC_MoveChild5, ++/*329743*/ OPC_CheckInteger, 1, ++/*329745*/ OPC_CheckType, MVT::i32, ++/*329747*/ OPC_MoveParent, ++/*329748*/ OPC_MoveChild6, ++/*329749*/ OPC_CheckInteger, 1, ++/*329751*/ OPC_CheckType, MVT::i32, ++/*329753*/ OPC_MoveParent, ++/*329754*/ OPC_MoveChild7, ++/*329755*/ OPC_CheckInteger, 1, ++/*329757*/ OPC_CheckType, MVT::i32, ++/*329759*/ OPC_MoveParent, ++/*329760*/ OPC_MoveChild, 8, ++/*329762*/ OPC_CheckInteger, 1, ++/*329764*/ OPC_CheckType, MVT::i32, ++/*329766*/ OPC_MoveParent, ++/*329767*/ OPC_MoveChild, 9, ++/*329769*/ OPC_CheckInteger, 1, ++/*329771*/ OPC_CheckType, MVT::i32, ++/*329773*/ OPC_MoveParent, ++/*329774*/ OPC_MoveChild, 10, ++/*329776*/ OPC_CheckInteger, 1, ++/*329778*/ OPC_CheckType, MVT::i32, ++/*329780*/ OPC_MoveParent, ++/*329781*/ OPC_MoveChild, 11, ++/*329783*/ OPC_CheckInteger, 1, ++/*329785*/ OPC_CheckType, MVT::i32, ++/*329787*/ OPC_MoveParent, ++/*329788*/ OPC_MoveChild, 12, ++/*329790*/ OPC_CheckInteger, 1, ++/*329792*/ OPC_CheckType, MVT::i32, ++/*329794*/ OPC_MoveParent, ++/*329795*/ OPC_MoveChild, 13, ++/*329797*/ OPC_CheckInteger, 1, ++/*329799*/ OPC_CheckType, MVT::i32, ++/*329801*/ OPC_MoveParent, ++/*329802*/ OPC_MoveChild, 14, ++/*329804*/ OPC_CheckInteger, 1, ++/*329806*/ OPC_CheckType, MVT::i32, ++/*329808*/ OPC_MoveParent, ++/*329809*/ OPC_MoveChild, 15, ++/*329811*/ OPC_CheckInteger, 1, ++/*329813*/ OPC_CheckType, MVT::i32, ++/*329815*/ OPC_MoveParent, ++/*329816*/ OPC_MoveChild, 16, ++/*329818*/ OPC_CheckInteger, 1, ++/*329820*/ OPC_CheckType, MVT::i32, ++/*329822*/ OPC_MoveParent, ++/*329823*/ OPC_MoveChild, 17, ++/*329825*/ OPC_CheckInteger, 1, ++/*329827*/ OPC_CheckType, MVT::i32, ++/*329829*/ OPC_MoveParent, ++/*329830*/ OPC_MoveChild, 18, ++/*329832*/ OPC_CheckInteger, 1, ++/*329834*/ OPC_CheckType, MVT::i32, ++/*329836*/ OPC_MoveParent, ++/*329837*/ OPC_MoveChild, 19, ++/*329839*/ OPC_CheckInteger, 1, ++/*329841*/ OPC_CheckType, MVT::i32, ++/*329843*/ OPC_MoveParent, ++/*329844*/ OPC_MoveChild, 20, ++/*329846*/ OPC_CheckInteger, 1, ++/*329848*/ OPC_CheckType, MVT::i32, ++/*329850*/ OPC_MoveParent, ++/*329851*/ OPC_MoveChild, 21, ++/*329853*/ OPC_CheckInteger, 1, ++/*329855*/ OPC_CheckType, MVT::i32, ++/*329857*/ OPC_MoveParent, ++/*329858*/ OPC_MoveChild, 22, ++/*329860*/ OPC_CheckInteger, 1, ++/*329862*/ OPC_CheckType, MVT::i32, ++/*329864*/ OPC_MoveParent, ++/*329865*/ OPC_MoveChild, 23, ++/*329867*/ OPC_CheckInteger, 1, ++/*329869*/ OPC_CheckType, MVT::i32, ++/*329871*/ OPC_MoveParent, ++/*329872*/ OPC_MoveChild, 24, ++/*329874*/ OPC_CheckInteger, 1, ++/*329876*/ OPC_CheckType, MVT::i32, ++/*329878*/ OPC_MoveParent, ++/*329879*/ OPC_MoveChild, 25, ++/*329881*/ OPC_CheckInteger, 1, ++/*329883*/ OPC_CheckType, MVT::i32, ++/*329885*/ OPC_MoveParent, ++/*329886*/ OPC_MoveChild, 26, ++/*329888*/ OPC_CheckInteger, 1, ++/*329890*/ OPC_CheckType, MVT::i32, ++/*329892*/ OPC_MoveParent, ++/*329893*/ OPC_MoveChild, 27, ++/*329895*/ OPC_CheckInteger, 1, ++/*329897*/ OPC_CheckType, MVT::i32, ++/*329899*/ OPC_MoveParent, ++/*329900*/ OPC_MoveChild, 28, ++/*329902*/ OPC_CheckInteger, 1, ++/*329904*/ OPC_CheckType, MVT::i32, ++/*329906*/ OPC_MoveParent, ++/*329907*/ OPC_MoveChild, 29, ++/*329909*/ OPC_CheckInteger, 1, ++/*329911*/ OPC_CheckType, MVT::i32, ++/*329913*/ OPC_MoveParent, ++/*329914*/ OPC_MoveChild, 30, ++/*329916*/ OPC_CheckInteger, 1, ++/*329918*/ OPC_CheckType, MVT::i32, ++/*329920*/ OPC_MoveParent, ++/*329921*/ OPC_MoveChild, 31, ++/*329923*/ OPC_CheckInteger, 1, ++/*329925*/ OPC_CheckType, MVT::i32, ++/*329927*/ OPC_MoveParent, ++/*329928*/ OPC_MoveParent, ++/*329929*/ OPC_CheckChild1Same, 0, ++/*329931*/ OPC_MoveParent, ++/*329932*/ OPC_CheckChild1Same, 1, ++/*329934*/ OPC_MoveParent, ++/*329935*/ OPC_MoveParent, ++/*329936*/ OPC_MoveChild1, ++/*329937*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*329940*/ OPC_CheckChild0Integer, 1, ++/*329942*/ OPC_CheckChild0Type, MVT::i32, ++/*329944*/ OPC_CheckChild1Integer, 1, ++/*329946*/ OPC_CheckChild1Type, MVT::i32, ++/*329948*/ OPC_CheckChild2Integer, 1, ++/*329950*/ OPC_CheckChild2Type, MVT::i32, ++/*329952*/ OPC_CheckChild3Integer, 1, ++/*329954*/ OPC_CheckChild3Type, MVT::i32, ++/*329956*/ OPC_CheckChild4Integer, 1, ++/*329958*/ OPC_CheckChild4Type, MVT::i32, ++/*329960*/ OPC_MoveChild5, ++/*329961*/ OPC_CheckInteger, 1, ++/*329963*/ OPC_CheckType, MVT::i32, ++/*329965*/ OPC_MoveParent, ++/*329966*/ OPC_MoveChild6, ++/*329967*/ OPC_CheckInteger, 1, ++/*329969*/ OPC_CheckType, MVT::i32, ++/*329971*/ OPC_MoveParent, ++/*329972*/ OPC_MoveChild7, ++/*329973*/ OPC_CheckInteger, 1, ++/*329975*/ OPC_CheckType, MVT::i32, ++/*329977*/ OPC_MoveParent, ++/*329978*/ OPC_MoveChild, 8, ++/*329980*/ OPC_CheckInteger, 1, ++/*329982*/ OPC_CheckType, MVT::i32, ++/*329984*/ OPC_MoveParent, ++/*329985*/ OPC_MoveChild, 9, ++/*329987*/ OPC_CheckInteger, 1, ++/*329989*/ OPC_CheckType, MVT::i32, ++/*329991*/ OPC_MoveParent, ++/*329992*/ OPC_MoveChild, 10, ++/*329994*/ OPC_CheckInteger, 1, ++/*329996*/ OPC_CheckType, MVT::i32, ++/*329998*/ OPC_MoveParent, ++/*329999*/ OPC_MoveChild, 11, ++/*330001*/ OPC_CheckInteger, 1, ++/*330003*/ OPC_CheckType, MVT::i32, ++/*330005*/ OPC_MoveParent, ++/*330006*/ OPC_MoveChild, 12, ++/*330008*/ OPC_CheckInteger, 1, ++/*330010*/ OPC_CheckType, MVT::i32, ++/*330012*/ OPC_MoveParent, ++/*330013*/ OPC_MoveChild, 13, ++/*330015*/ OPC_CheckInteger, 1, ++/*330017*/ OPC_CheckType, MVT::i32, ++/*330019*/ OPC_MoveParent, ++/*330020*/ OPC_MoveChild, 14, ++/*330022*/ OPC_CheckInteger, 1, ++/*330024*/ OPC_CheckType, MVT::i32, ++/*330026*/ OPC_MoveParent, ++/*330027*/ OPC_MoveChild, 15, ++/*330029*/ OPC_CheckInteger, 1, ++/*330031*/ OPC_CheckType, MVT::i32, ++/*330033*/ OPC_MoveParent, ++/*330034*/ OPC_MoveChild, 16, ++/*330036*/ OPC_CheckInteger, 1, ++/*330038*/ OPC_CheckType, MVT::i32, ++/*330040*/ OPC_MoveParent, ++/*330041*/ OPC_MoveChild, 17, ++/*330043*/ OPC_CheckInteger, 1, ++/*330045*/ OPC_CheckType, MVT::i32, ++/*330047*/ OPC_MoveParent, ++/*330048*/ OPC_MoveChild, 18, ++/*330050*/ OPC_CheckInteger, 1, ++/*330052*/ OPC_CheckType, MVT::i32, ++/*330054*/ OPC_MoveParent, ++/*330055*/ OPC_MoveChild, 19, ++/*330057*/ OPC_CheckInteger, 1, ++/*330059*/ OPC_CheckType, MVT::i32, ++/*330061*/ OPC_MoveParent, ++/*330062*/ OPC_MoveChild, 20, ++/*330064*/ OPC_CheckInteger, 1, ++/*330066*/ OPC_CheckType, MVT::i32, ++/*330068*/ OPC_MoveParent, ++/*330069*/ OPC_MoveChild, 21, ++/*330071*/ OPC_CheckInteger, 1, ++/*330073*/ OPC_CheckType, MVT::i32, ++/*330075*/ OPC_MoveParent, ++/*330076*/ OPC_MoveChild, 22, ++/*330078*/ OPC_CheckInteger, 1, ++/*330080*/ OPC_CheckType, MVT::i32, ++/*330082*/ OPC_MoveParent, ++/*330083*/ OPC_MoveChild, 23, ++/*330085*/ OPC_CheckInteger, 1, ++/*330087*/ OPC_CheckType, MVT::i32, ++/*330089*/ OPC_MoveParent, ++/*330090*/ OPC_MoveChild, 24, ++/*330092*/ OPC_CheckInteger, 1, ++/*330094*/ OPC_CheckType, MVT::i32, ++/*330096*/ OPC_MoveParent, ++/*330097*/ OPC_MoveChild, 25, ++/*330099*/ OPC_CheckInteger, 1, ++/*330101*/ OPC_CheckType, MVT::i32, ++/*330103*/ OPC_MoveParent, ++/*330104*/ OPC_MoveChild, 26, ++/*330106*/ OPC_CheckInteger, 1, ++/*330108*/ OPC_CheckType, MVT::i32, ++/*330110*/ OPC_MoveParent, ++/*330111*/ OPC_MoveChild, 27, ++/*330113*/ OPC_CheckInteger, 1, ++/*330115*/ OPC_CheckType, MVT::i32, ++/*330117*/ OPC_MoveParent, ++/*330118*/ OPC_MoveChild, 28, ++/*330120*/ OPC_CheckInteger, 1, ++/*330122*/ OPC_CheckType, MVT::i32, ++/*330124*/ OPC_MoveParent, ++/*330125*/ OPC_MoveChild, 29, ++/*330127*/ OPC_CheckInteger, 1, ++/*330129*/ OPC_CheckType, MVT::i32, ++/*330131*/ OPC_MoveParent, ++/*330132*/ OPC_MoveChild, 30, ++/*330134*/ OPC_CheckInteger, 1, ++/*330136*/ OPC_CheckType, MVT::i32, ++/*330138*/ OPC_MoveParent, ++/*330139*/ OPC_MoveChild, 31, ++/*330141*/ OPC_CheckInteger, 1, ++/*330143*/ OPC_CheckType, MVT::i32, ++/*330145*/ OPC_MoveParent, ++/*330146*/ OPC_CheckType, MVT::v32i8, ++/*330148*/ OPC_MoveParent, ++/*330149*/ OPC_CheckType, MVT::v32i8, ++/*330151*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*330153*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a), LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*330161*/ /*Scope*/ 59|128,3/*443*/, /*->330606*/ ++/*330163*/ OPC_CheckChild0Same, 0, ++/*330165*/ OPC_MoveChild1, ++/*330166*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*330169*/ OPC_CheckChild0Integer, 1, ++/*330171*/ OPC_CheckChild0Type, MVT::i32, ++/*330173*/ OPC_CheckChild1Integer, 1, ++/*330175*/ OPC_CheckChild1Type, MVT::i32, ++/*330177*/ OPC_CheckChild2Integer, 1, ++/*330179*/ OPC_CheckChild2Type, MVT::i32, ++/*330181*/ OPC_CheckChild3Integer, 1, ++/*330183*/ OPC_CheckChild3Type, MVT::i32, ++/*330185*/ OPC_CheckChild4Integer, 1, ++/*330187*/ OPC_CheckChild4Type, MVT::i32, ++/*330189*/ OPC_MoveChild5, ++/*330190*/ OPC_CheckInteger, 1, ++/*330192*/ OPC_CheckType, MVT::i32, ++/*330194*/ OPC_MoveParent, ++/*330195*/ OPC_MoveChild6, ++/*330196*/ OPC_CheckInteger, 1, ++/*330198*/ OPC_CheckType, MVT::i32, ++/*330200*/ OPC_MoveParent, ++/*330201*/ OPC_MoveChild7, ++/*330202*/ OPC_CheckInteger, 1, ++/*330204*/ OPC_CheckType, MVT::i32, ++/*330206*/ OPC_MoveParent, ++/*330207*/ OPC_MoveChild, 8, ++/*330209*/ OPC_CheckInteger, 1, ++/*330211*/ OPC_CheckType, MVT::i32, ++/*330213*/ OPC_MoveParent, ++/*330214*/ OPC_MoveChild, 9, ++/*330216*/ OPC_CheckInteger, 1, ++/*330218*/ OPC_CheckType, MVT::i32, ++/*330220*/ OPC_MoveParent, ++/*330221*/ OPC_MoveChild, 10, ++/*330223*/ OPC_CheckInteger, 1, ++/*330225*/ OPC_CheckType, MVT::i32, ++/*330227*/ OPC_MoveParent, ++/*330228*/ OPC_MoveChild, 11, ++/*330230*/ OPC_CheckInteger, 1, ++/*330232*/ OPC_CheckType, MVT::i32, ++/*330234*/ OPC_MoveParent, ++/*330235*/ OPC_MoveChild, 12, ++/*330237*/ OPC_CheckInteger, 1, ++/*330239*/ OPC_CheckType, MVT::i32, ++/*330241*/ OPC_MoveParent, ++/*330242*/ OPC_MoveChild, 13, ++/*330244*/ OPC_CheckInteger, 1, ++/*330246*/ OPC_CheckType, MVT::i32, ++/*330248*/ OPC_MoveParent, ++/*330249*/ OPC_MoveChild, 14, ++/*330251*/ OPC_CheckInteger, 1, ++/*330253*/ OPC_CheckType, MVT::i32, ++/*330255*/ OPC_MoveParent, ++/*330256*/ OPC_MoveChild, 15, ++/*330258*/ OPC_CheckInteger, 1, ++/*330260*/ OPC_CheckType, MVT::i32, ++/*330262*/ OPC_MoveParent, ++/*330263*/ OPC_MoveChild, 16, ++/*330265*/ OPC_CheckInteger, 1, ++/*330267*/ OPC_CheckType, MVT::i32, ++/*330269*/ OPC_MoveParent, ++/*330270*/ OPC_MoveChild, 17, ++/*330272*/ OPC_CheckInteger, 1, ++/*330274*/ OPC_CheckType, MVT::i32, ++/*330276*/ OPC_MoveParent, ++/*330277*/ OPC_MoveChild, 18, ++/*330279*/ OPC_CheckInteger, 1, ++/*330281*/ OPC_CheckType, MVT::i32, ++/*330283*/ OPC_MoveParent, ++/*330284*/ OPC_MoveChild, 19, ++/*330286*/ OPC_CheckInteger, 1, ++/*330288*/ OPC_CheckType, MVT::i32, ++/*330290*/ OPC_MoveParent, ++/*330291*/ OPC_MoveChild, 20, ++/*330293*/ OPC_CheckInteger, 1, ++/*330295*/ OPC_CheckType, MVT::i32, ++/*330297*/ OPC_MoveParent, ++/*330298*/ OPC_MoveChild, 21, ++/*330300*/ OPC_CheckInteger, 1, ++/*330302*/ OPC_CheckType, MVT::i32, ++/*330304*/ OPC_MoveParent, ++/*330305*/ OPC_MoveChild, 22, ++/*330307*/ OPC_CheckInteger, 1, ++/*330309*/ OPC_CheckType, MVT::i32, ++/*330311*/ OPC_MoveParent, ++/*330312*/ OPC_MoveChild, 23, ++/*330314*/ OPC_CheckInteger, 1, ++/*330316*/ OPC_CheckType, MVT::i32, ++/*330318*/ OPC_MoveParent, ++/*330319*/ OPC_MoveChild, 24, ++/*330321*/ OPC_CheckInteger, 1, ++/*330323*/ OPC_CheckType, MVT::i32, ++/*330325*/ OPC_MoveParent, ++/*330326*/ OPC_MoveChild, 25, ++/*330328*/ OPC_CheckInteger, 1, ++/*330330*/ OPC_CheckType, MVT::i32, ++/*330332*/ OPC_MoveParent, ++/*330333*/ OPC_MoveChild, 26, ++/*330335*/ OPC_CheckInteger, 1, ++/*330337*/ OPC_CheckType, MVT::i32, ++/*330339*/ OPC_MoveParent, ++/*330340*/ OPC_MoveChild, 27, ++/*330342*/ OPC_CheckInteger, 1, ++/*330344*/ OPC_CheckType, MVT::i32, ++/*330346*/ OPC_MoveParent, ++/*330347*/ OPC_MoveChild, 28, ++/*330349*/ OPC_CheckInteger, 1, ++/*330351*/ OPC_CheckType, MVT::i32, ++/*330353*/ OPC_MoveParent, ++/*330354*/ OPC_MoveChild, 29, ++/*330356*/ OPC_CheckInteger, 1, ++/*330358*/ OPC_CheckType, MVT::i32, ++/*330360*/ OPC_MoveParent, ++/*330361*/ OPC_MoveChild, 30, ++/*330363*/ OPC_CheckInteger, 1, ++/*330365*/ OPC_CheckType, MVT::i32, ++/*330367*/ OPC_MoveParent, ++/*330368*/ OPC_MoveChild, 31, ++/*330370*/ OPC_CheckInteger, 1, ++/*330372*/ OPC_CheckType, MVT::i32, ++/*330374*/ OPC_MoveParent, ++/*330375*/ OPC_MoveParent, ++/*330376*/ OPC_MoveParent, ++/*330377*/ OPC_CheckChild1Same, 1, ++/*330379*/ OPC_MoveParent, ++/*330380*/ OPC_MoveParent, ++/*330381*/ OPC_MoveChild1, ++/*330382*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*330385*/ OPC_CheckChild0Integer, 1, ++/*330387*/ OPC_CheckChild0Type, MVT::i32, ++/*330389*/ OPC_CheckChild1Integer, 1, ++/*330391*/ OPC_CheckChild1Type, MVT::i32, ++/*330393*/ OPC_CheckChild2Integer, 1, ++/*330395*/ OPC_CheckChild2Type, MVT::i32, ++/*330397*/ OPC_CheckChild3Integer, 1, ++/*330399*/ OPC_CheckChild3Type, MVT::i32, ++/*330401*/ OPC_CheckChild4Integer, 1, ++/*330403*/ OPC_CheckChild4Type, MVT::i32, ++/*330405*/ OPC_MoveChild5, ++/*330406*/ OPC_CheckInteger, 1, ++/*330408*/ OPC_CheckType, MVT::i32, ++/*330410*/ OPC_MoveParent, ++/*330411*/ OPC_MoveChild6, ++/*330412*/ OPC_CheckInteger, 1, ++/*330414*/ OPC_CheckType, MVT::i32, ++/*330416*/ OPC_MoveParent, ++/*330417*/ OPC_MoveChild7, ++/*330418*/ OPC_CheckInteger, 1, ++/*330420*/ OPC_CheckType, MVT::i32, ++/*330422*/ OPC_MoveParent, ++/*330423*/ OPC_MoveChild, 8, ++/*330425*/ OPC_CheckInteger, 1, ++/*330427*/ OPC_CheckType, MVT::i32, ++/*330429*/ OPC_MoveParent, ++/*330430*/ OPC_MoveChild, 9, ++/*330432*/ OPC_CheckInteger, 1, ++/*330434*/ OPC_CheckType, MVT::i32, ++/*330436*/ OPC_MoveParent, ++/*330437*/ OPC_MoveChild, 10, ++/*330439*/ OPC_CheckInteger, 1, ++/*330441*/ OPC_CheckType, MVT::i32, ++/*330443*/ OPC_MoveParent, ++/*330444*/ OPC_MoveChild, 11, ++/*330446*/ OPC_CheckInteger, 1, ++/*330448*/ OPC_CheckType, MVT::i32, ++/*330450*/ OPC_MoveParent, ++/*330451*/ OPC_MoveChild, 12, ++/*330453*/ OPC_CheckInteger, 1, ++/*330455*/ OPC_CheckType, MVT::i32, ++/*330457*/ OPC_MoveParent, ++/*330458*/ OPC_MoveChild, 13, ++/*330460*/ OPC_CheckInteger, 1, ++/*330462*/ OPC_CheckType, MVT::i32, ++/*330464*/ OPC_MoveParent, ++/*330465*/ OPC_MoveChild, 14, ++/*330467*/ OPC_CheckInteger, 1, ++/*330469*/ OPC_CheckType, MVT::i32, ++/*330471*/ OPC_MoveParent, ++/*330472*/ OPC_MoveChild, 15, ++/*330474*/ OPC_CheckInteger, 1, ++/*330476*/ OPC_CheckType, MVT::i32, ++/*330478*/ OPC_MoveParent, ++/*330479*/ OPC_MoveChild, 16, ++/*330481*/ OPC_CheckInteger, 1, ++/*330483*/ OPC_CheckType, MVT::i32, ++/*330485*/ OPC_MoveParent, ++/*330486*/ OPC_MoveChild, 17, ++/*330488*/ OPC_CheckInteger, 1, ++/*330490*/ OPC_CheckType, MVT::i32, ++/*330492*/ OPC_MoveParent, ++/*330493*/ OPC_MoveChild, 18, ++/*330495*/ OPC_CheckInteger, 1, ++/*330497*/ OPC_CheckType, MVT::i32, ++/*330499*/ OPC_MoveParent, ++/*330500*/ OPC_MoveChild, 19, ++/*330502*/ OPC_CheckInteger, 1, ++/*330504*/ OPC_CheckType, MVT::i32, ++/*330506*/ OPC_MoveParent, ++/*330507*/ OPC_MoveChild, 20, ++/*330509*/ OPC_CheckInteger, 1, ++/*330511*/ OPC_CheckType, MVT::i32, ++/*330513*/ OPC_MoveParent, ++/*330514*/ OPC_MoveChild, 21, ++/*330516*/ OPC_CheckInteger, 1, ++/*330518*/ OPC_CheckType, MVT::i32, ++/*330520*/ OPC_MoveParent, ++/*330521*/ OPC_MoveChild, 22, ++/*330523*/ OPC_CheckInteger, 1, ++/*330525*/ OPC_CheckType, MVT::i32, ++/*330527*/ OPC_MoveParent, ++/*330528*/ OPC_MoveChild, 23, ++/*330530*/ OPC_CheckInteger, 1, ++/*330532*/ OPC_CheckType, MVT::i32, ++/*330534*/ OPC_MoveParent, ++/*330535*/ OPC_MoveChild, 24, ++/*330537*/ OPC_CheckInteger, 1, ++/*330539*/ OPC_CheckType, MVT::i32, ++/*330541*/ OPC_MoveParent, ++/*330542*/ OPC_MoveChild, 25, ++/*330544*/ OPC_CheckInteger, 1, ++/*330546*/ OPC_CheckType, MVT::i32, ++/*330548*/ OPC_MoveParent, ++/*330549*/ OPC_MoveChild, 26, ++/*330551*/ OPC_CheckInteger, 1, ++/*330553*/ OPC_CheckType, MVT::i32, ++/*330555*/ OPC_MoveParent, ++/*330556*/ OPC_MoveChild, 27, ++/*330558*/ OPC_CheckInteger, 1, ++/*330560*/ OPC_CheckType, MVT::i32, ++/*330562*/ OPC_MoveParent, ++/*330563*/ OPC_MoveChild, 28, ++/*330565*/ OPC_CheckInteger, 1, ++/*330567*/ OPC_CheckType, MVT::i32, ++/*330569*/ OPC_MoveParent, ++/*330570*/ OPC_MoveChild, 29, ++/*330572*/ OPC_CheckInteger, 1, ++/*330574*/ OPC_CheckType, MVT::i32, ++/*330576*/ OPC_MoveParent, ++/*330577*/ OPC_MoveChild, 30, ++/*330579*/ OPC_CheckInteger, 1, ++/*330581*/ OPC_CheckType, MVT::i32, ++/*330583*/ OPC_MoveParent, ++/*330584*/ OPC_MoveChild, 31, ++/*330586*/ OPC_CheckInteger, 1, ++/*330588*/ OPC_CheckType, MVT::i32, ++/*330590*/ OPC_MoveParent, ++/*330591*/ OPC_CheckType, MVT::v32i8, ++/*330593*/ OPC_MoveParent, ++/*330594*/ OPC_CheckType, MVT::v32i8, ++/*330596*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*330598*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*330606*/ /*Scope*/ 59|128,3/*443*/, /*->331051*/ ++/*330608*/ OPC_MoveChild0, ++/*330609*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*330612*/ OPC_CheckChild0Integer, 1, ++/*330614*/ OPC_CheckChild0Type, MVT::i32, ++/*330616*/ OPC_CheckChild1Integer, 1, ++/*330618*/ OPC_CheckChild1Type, MVT::i32, ++/*330620*/ OPC_CheckChild2Integer, 1, ++/*330622*/ OPC_CheckChild2Type, MVT::i32, ++/*330624*/ OPC_CheckChild3Integer, 1, ++/*330626*/ OPC_CheckChild3Type, MVT::i32, ++/*330628*/ OPC_CheckChild4Integer, 1, ++/*330630*/ OPC_CheckChild4Type, MVT::i32, ++/*330632*/ OPC_MoveChild5, ++/*330633*/ OPC_CheckInteger, 1, ++/*330635*/ OPC_CheckType, MVT::i32, ++/*330637*/ OPC_MoveParent, ++/*330638*/ OPC_MoveChild6, ++/*330639*/ OPC_CheckInteger, 1, ++/*330641*/ OPC_CheckType, MVT::i32, ++/*330643*/ OPC_MoveParent, ++/*330644*/ OPC_MoveChild7, ++/*330645*/ OPC_CheckInteger, 1, ++/*330647*/ OPC_CheckType, MVT::i32, ++/*330649*/ OPC_MoveParent, ++/*330650*/ OPC_MoveChild, 8, ++/*330652*/ OPC_CheckInteger, 1, ++/*330654*/ OPC_CheckType, MVT::i32, ++/*330656*/ OPC_MoveParent, ++/*330657*/ OPC_MoveChild, 9, ++/*330659*/ OPC_CheckInteger, 1, ++/*330661*/ OPC_CheckType, MVT::i32, ++/*330663*/ OPC_MoveParent, ++/*330664*/ OPC_MoveChild, 10, ++/*330666*/ OPC_CheckInteger, 1, ++/*330668*/ OPC_CheckType, MVT::i32, ++/*330670*/ OPC_MoveParent, ++/*330671*/ OPC_MoveChild, 11, ++/*330673*/ OPC_CheckInteger, 1, ++/*330675*/ OPC_CheckType, MVT::i32, ++/*330677*/ OPC_MoveParent, ++/*330678*/ OPC_MoveChild, 12, ++/*330680*/ OPC_CheckInteger, 1, ++/*330682*/ OPC_CheckType, MVT::i32, ++/*330684*/ OPC_MoveParent, ++/*330685*/ OPC_MoveChild, 13, ++/*330687*/ OPC_CheckInteger, 1, ++/*330689*/ OPC_CheckType, MVT::i32, ++/*330691*/ OPC_MoveParent, ++/*330692*/ OPC_MoveChild, 14, ++/*330694*/ OPC_CheckInteger, 1, ++/*330696*/ OPC_CheckType, MVT::i32, ++/*330698*/ OPC_MoveParent, ++/*330699*/ OPC_MoveChild, 15, ++/*330701*/ OPC_CheckInteger, 1, ++/*330703*/ OPC_CheckType, MVT::i32, ++/*330705*/ OPC_MoveParent, ++/*330706*/ OPC_MoveChild, 16, ++/*330708*/ OPC_CheckInteger, 1, ++/*330710*/ OPC_CheckType, MVT::i32, ++/*330712*/ OPC_MoveParent, ++/*330713*/ OPC_MoveChild, 17, ++/*330715*/ OPC_CheckInteger, 1, ++/*330717*/ OPC_CheckType, MVT::i32, ++/*330719*/ OPC_MoveParent, ++/*330720*/ OPC_MoveChild, 18, ++/*330722*/ OPC_CheckInteger, 1, ++/*330724*/ OPC_CheckType, MVT::i32, ++/*330726*/ OPC_MoveParent, ++/*330727*/ OPC_MoveChild, 19, ++/*330729*/ OPC_CheckInteger, 1, ++/*330731*/ OPC_CheckType, MVT::i32, ++/*330733*/ OPC_MoveParent, ++/*330734*/ OPC_MoveChild, 20, ++/*330736*/ OPC_CheckInteger, 1, ++/*330738*/ OPC_CheckType, MVT::i32, ++/*330740*/ OPC_MoveParent, ++/*330741*/ OPC_MoveChild, 21, ++/*330743*/ OPC_CheckInteger, 1, ++/*330745*/ OPC_CheckType, MVT::i32, ++/*330747*/ OPC_MoveParent, ++/*330748*/ OPC_MoveChild, 22, ++/*330750*/ OPC_CheckInteger, 1, ++/*330752*/ OPC_CheckType, MVT::i32, ++/*330754*/ OPC_MoveParent, ++/*330755*/ OPC_MoveChild, 23, ++/*330757*/ OPC_CheckInteger, 1, ++/*330759*/ OPC_CheckType, MVT::i32, ++/*330761*/ OPC_MoveParent, ++/*330762*/ OPC_MoveChild, 24, ++/*330764*/ OPC_CheckInteger, 1, ++/*330766*/ OPC_CheckType, MVT::i32, ++/*330768*/ OPC_MoveParent, ++/*330769*/ OPC_MoveChild, 25, ++/*330771*/ OPC_CheckInteger, 1, ++/*330773*/ OPC_CheckType, MVT::i32, ++/*330775*/ OPC_MoveParent, ++/*330776*/ OPC_MoveChild, 26, ++/*330778*/ OPC_CheckInteger, 1, ++/*330780*/ OPC_CheckType, MVT::i32, ++/*330782*/ OPC_MoveParent, ++/*330783*/ OPC_MoveChild, 27, ++/*330785*/ OPC_CheckInteger, 1, ++/*330787*/ OPC_CheckType, MVT::i32, ++/*330789*/ OPC_MoveParent, ++/*330790*/ OPC_MoveChild, 28, ++/*330792*/ OPC_CheckInteger, 1, ++/*330794*/ OPC_CheckType, MVT::i32, ++/*330796*/ OPC_MoveParent, ++/*330797*/ OPC_MoveChild, 29, ++/*330799*/ OPC_CheckInteger, 1, ++/*330801*/ OPC_CheckType, MVT::i32, ++/*330803*/ OPC_MoveParent, ++/*330804*/ OPC_MoveChild, 30, ++/*330806*/ OPC_CheckInteger, 1, ++/*330808*/ OPC_CheckType, MVT::i32, ++/*330810*/ OPC_MoveParent, ++/*330811*/ OPC_MoveChild, 31, ++/*330813*/ OPC_CheckInteger, 1, ++/*330815*/ OPC_CheckType, MVT::i32, ++/*330817*/ OPC_MoveParent, ++/*330818*/ OPC_MoveParent, ++/*330819*/ OPC_CheckChild1Same, 1, ++/*330821*/ OPC_MoveParent, ++/*330822*/ OPC_CheckChild1Same, 0, ++/*330824*/ OPC_MoveParent, ++/*330825*/ OPC_MoveParent, ++/*330826*/ OPC_MoveChild1, ++/*330827*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*330830*/ OPC_CheckChild0Integer, 1, ++/*330832*/ OPC_CheckChild0Type, MVT::i32, ++/*330834*/ OPC_CheckChild1Integer, 1, ++/*330836*/ OPC_CheckChild1Type, MVT::i32, ++/*330838*/ OPC_CheckChild2Integer, 1, ++/*330840*/ OPC_CheckChild2Type, MVT::i32, ++/*330842*/ OPC_CheckChild3Integer, 1, ++/*330844*/ OPC_CheckChild3Type, MVT::i32, ++/*330846*/ OPC_CheckChild4Integer, 1, ++/*330848*/ OPC_CheckChild4Type, MVT::i32, ++/*330850*/ OPC_MoveChild5, ++/*330851*/ OPC_CheckInteger, 1, ++/*330853*/ OPC_CheckType, MVT::i32, ++/*330855*/ OPC_MoveParent, ++/*330856*/ OPC_MoveChild6, ++/*330857*/ OPC_CheckInteger, 1, ++/*330859*/ OPC_CheckType, MVT::i32, ++/*330861*/ OPC_MoveParent, ++/*330862*/ OPC_MoveChild7, ++/*330863*/ OPC_CheckInteger, 1, ++/*330865*/ OPC_CheckType, MVT::i32, ++/*330867*/ OPC_MoveParent, ++/*330868*/ OPC_MoveChild, 8, ++/*330870*/ OPC_CheckInteger, 1, ++/*330872*/ OPC_CheckType, MVT::i32, ++/*330874*/ OPC_MoveParent, ++/*330875*/ OPC_MoveChild, 9, ++/*330877*/ OPC_CheckInteger, 1, ++/*330879*/ OPC_CheckType, MVT::i32, ++/*330881*/ OPC_MoveParent, ++/*330882*/ OPC_MoveChild, 10, ++/*330884*/ OPC_CheckInteger, 1, ++/*330886*/ OPC_CheckType, MVT::i32, ++/*330888*/ OPC_MoveParent, ++/*330889*/ OPC_MoveChild, 11, ++/*330891*/ OPC_CheckInteger, 1, ++/*330893*/ OPC_CheckType, MVT::i32, ++/*330895*/ OPC_MoveParent, ++/*330896*/ OPC_MoveChild, 12, ++/*330898*/ OPC_CheckInteger, 1, ++/*330900*/ OPC_CheckType, MVT::i32, ++/*330902*/ OPC_MoveParent, ++/*330903*/ OPC_MoveChild, 13, ++/*330905*/ OPC_CheckInteger, 1, ++/*330907*/ OPC_CheckType, MVT::i32, ++/*330909*/ OPC_MoveParent, ++/*330910*/ OPC_MoveChild, 14, ++/*330912*/ OPC_CheckInteger, 1, ++/*330914*/ OPC_CheckType, MVT::i32, ++/*330916*/ OPC_MoveParent, ++/*330917*/ OPC_MoveChild, 15, ++/*330919*/ OPC_CheckInteger, 1, ++/*330921*/ OPC_CheckType, MVT::i32, ++/*330923*/ OPC_MoveParent, ++/*330924*/ OPC_MoveChild, 16, ++/*330926*/ OPC_CheckInteger, 1, ++/*330928*/ OPC_CheckType, MVT::i32, ++/*330930*/ OPC_MoveParent, ++/*330931*/ OPC_MoveChild, 17, ++/*330933*/ OPC_CheckInteger, 1, ++/*330935*/ OPC_CheckType, MVT::i32, ++/*330937*/ OPC_MoveParent, ++/*330938*/ OPC_MoveChild, 18, ++/*330940*/ OPC_CheckInteger, 1, ++/*330942*/ OPC_CheckType, MVT::i32, ++/*330944*/ OPC_MoveParent, ++/*330945*/ OPC_MoveChild, 19, ++/*330947*/ OPC_CheckInteger, 1, ++/*330949*/ OPC_CheckType, MVT::i32, ++/*330951*/ OPC_MoveParent, ++/*330952*/ OPC_MoveChild, 20, ++/*330954*/ OPC_CheckInteger, 1, ++/*330956*/ OPC_CheckType, MVT::i32, ++/*330958*/ OPC_MoveParent, ++/*330959*/ OPC_MoveChild, 21, ++/*330961*/ OPC_CheckInteger, 1, ++/*330963*/ OPC_CheckType, MVT::i32, ++/*330965*/ OPC_MoveParent, ++/*330966*/ OPC_MoveChild, 22, ++/*330968*/ OPC_CheckInteger, 1, ++/*330970*/ OPC_CheckType, MVT::i32, ++/*330972*/ OPC_MoveParent, ++/*330973*/ OPC_MoveChild, 23, ++/*330975*/ OPC_CheckInteger, 1, ++/*330977*/ OPC_CheckType, MVT::i32, ++/*330979*/ OPC_MoveParent, ++/*330980*/ OPC_MoveChild, 24, ++/*330982*/ OPC_CheckInteger, 1, ++/*330984*/ OPC_CheckType, MVT::i32, ++/*330986*/ OPC_MoveParent, ++/*330987*/ OPC_MoveChild, 25, ++/*330989*/ OPC_CheckInteger, 1, ++/*330991*/ OPC_CheckType, MVT::i32, ++/*330993*/ OPC_MoveParent, ++/*330994*/ OPC_MoveChild, 26, ++/*330996*/ OPC_CheckInteger, 1, ++/*330998*/ OPC_CheckType, MVT::i32, ++/*331000*/ OPC_MoveParent, ++/*331001*/ OPC_MoveChild, 27, ++/*331003*/ OPC_CheckInteger, 1, ++/*331005*/ OPC_CheckType, MVT::i32, ++/*331007*/ OPC_MoveParent, ++/*331008*/ OPC_MoveChild, 28, ++/*331010*/ OPC_CheckInteger, 1, ++/*331012*/ OPC_CheckType, MVT::i32, ++/*331014*/ OPC_MoveParent, ++/*331015*/ OPC_MoveChild, 29, ++/*331017*/ OPC_CheckInteger, 1, ++/*331019*/ OPC_CheckType, MVT::i32, ++/*331021*/ OPC_MoveParent, ++/*331022*/ OPC_MoveChild, 30, ++/*331024*/ OPC_CheckInteger, 1, ++/*331026*/ OPC_CheckType, MVT::i32, ++/*331028*/ OPC_MoveParent, ++/*331029*/ OPC_MoveChild, 31, ++/*331031*/ OPC_CheckInteger, 1, ++/*331033*/ OPC_CheckType, MVT::i32, ++/*331035*/ OPC_MoveParent, ++/*331036*/ OPC_CheckType, MVT::v32i8, ++/*331038*/ OPC_MoveParent, ++/*331039*/ OPC_CheckType, MVT::v32i8, ++/*331041*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*331043*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b), LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*331051*/ /*Scope*/ 59|128,3/*443*/, /*->331496*/ ++/*331053*/ OPC_CheckChild0Same, 1, ++/*331055*/ OPC_MoveChild1, ++/*331056*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*331059*/ OPC_CheckChild0Integer, 1, ++/*331061*/ OPC_CheckChild0Type, MVT::i32, ++/*331063*/ OPC_CheckChild1Integer, 1, ++/*331065*/ OPC_CheckChild1Type, MVT::i32, ++/*331067*/ OPC_CheckChild2Integer, 1, ++/*331069*/ OPC_CheckChild2Type, MVT::i32, ++/*331071*/ OPC_CheckChild3Integer, 1, ++/*331073*/ OPC_CheckChild3Type, MVT::i32, ++/*331075*/ OPC_CheckChild4Integer, 1, ++/*331077*/ OPC_CheckChild4Type, MVT::i32, ++/*331079*/ OPC_MoveChild5, ++/*331080*/ OPC_CheckInteger, 1, ++/*331082*/ OPC_CheckType, MVT::i32, ++/*331084*/ OPC_MoveParent, ++/*331085*/ OPC_MoveChild6, ++/*331086*/ OPC_CheckInteger, 1, ++/*331088*/ OPC_CheckType, MVT::i32, ++/*331090*/ OPC_MoveParent, ++/*331091*/ OPC_MoveChild7, ++/*331092*/ OPC_CheckInteger, 1, ++/*331094*/ OPC_CheckType, MVT::i32, ++/*331096*/ OPC_MoveParent, ++/*331097*/ OPC_MoveChild, 8, ++/*331099*/ OPC_CheckInteger, 1, ++/*331101*/ OPC_CheckType, MVT::i32, ++/*331103*/ OPC_MoveParent, ++/*331104*/ OPC_MoveChild, 9, ++/*331106*/ OPC_CheckInteger, 1, ++/*331108*/ OPC_CheckType, MVT::i32, ++/*331110*/ OPC_MoveParent, ++/*331111*/ OPC_MoveChild, 10, ++/*331113*/ OPC_CheckInteger, 1, ++/*331115*/ OPC_CheckType, MVT::i32, ++/*331117*/ OPC_MoveParent, ++/*331118*/ OPC_MoveChild, 11, ++/*331120*/ OPC_CheckInteger, 1, ++/*331122*/ OPC_CheckType, MVT::i32, ++/*331124*/ OPC_MoveParent, ++/*331125*/ OPC_MoveChild, 12, ++/*331127*/ OPC_CheckInteger, 1, ++/*331129*/ OPC_CheckType, MVT::i32, ++/*331131*/ OPC_MoveParent, ++/*331132*/ OPC_MoveChild, 13, ++/*331134*/ OPC_CheckInteger, 1, ++/*331136*/ OPC_CheckType, MVT::i32, ++/*331138*/ OPC_MoveParent, ++/*331139*/ OPC_MoveChild, 14, ++/*331141*/ OPC_CheckInteger, 1, ++/*331143*/ OPC_CheckType, MVT::i32, ++/*331145*/ OPC_MoveParent, ++/*331146*/ OPC_MoveChild, 15, ++/*331148*/ OPC_CheckInteger, 1, ++/*331150*/ OPC_CheckType, MVT::i32, ++/*331152*/ OPC_MoveParent, ++/*331153*/ OPC_MoveChild, 16, ++/*331155*/ OPC_CheckInteger, 1, ++/*331157*/ OPC_CheckType, MVT::i32, ++/*331159*/ OPC_MoveParent, ++/*331160*/ OPC_MoveChild, 17, ++/*331162*/ OPC_CheckInteger, 1, ++/*331164*/ OPC_CheckType, MVT::i32, ++/*331166*/ OPC_MoveParent, ++/*331167*/ OPC_MoveChild, 18, ++/*331169*/ OPC_CheckInteger, 1, ++/*331171*/ OPC_CheckType, MVT::i32, ++/*331173*/ OPC_MoveParent, ++/*331174*/ OPC_MoveChild, 19, ++/*331176*/ OPC_CheckInteger, 1, ++/*331178*/ OPC_CheckType, MVT::i32, ++/*331180*/ OPC_MoveParent, ++/*331181*/ OPC_MoveChild, 20, ++/*331183*/ OPC_CheckInteger, 1, ++/*331185*/ OPC_CheckType, MVT::i32, ++/*331187*/ OPC_MoveParent, ++/*331188*/ OPC_MoveChild, 21, ++/*331190*/ OPC_CheckInteger, 1, ++/*331192*/ OPC_CheckType, MVT::i32, ++/*331194*/ OPC_MoveParent, ++/*331195*/ OPC_MoveChild, 22, ++/*331197*/ OPC_CheckInteger, 1, ++/*331199*/ OPC_CheckType, MVT::i32, ++/*331201*/ OPC_MoveParent, ++/*331202*/ OPC_MoveChild, 23, ++/*331204*/ OPC_CheckInteger, 1, ++/*331206*/ OPC_CheckType, MVT::i32, ++/*331208*/ OPC_MoveParent, ++/*331209*/ OPC_MoveChild, 24, ++/*331211*/ OPC_CheckInteger, 1, ++/*331213*/ OPC_CheckType, MVT::i32, ++/*331215*/ OPC_MoveParent, ++/*331216*/ OPC_MoveChild, 25, ++/*331218*/ OPC_CheckInteger, 1, ++/*331220*/ OPC_CheckType, MVT::i32, ++/*331222*/ OPC_MoveParent, ++/*331223*/ OPC_MoveChild, 26, ++/*331225*/ OPC_CheckInteger, 1, ++/*331227*/ OPC_CheckType, MVT::i32, ++/*331229*/ OPC_MoveParent, ++/*331230*/ OPC_MoveChild, 27, ++/*331232*/ OPC_CheckInteger, 1, ++/*331234*/ OPC_CheckType, MVT::i32, ++/*331236*/ OPC_MoveParent, ++/*331237*/ OPC_MoveChild, 28, ++/*331239*/ OPC_CheckInteger, 1, ++/*331241*/ OPC_CheckType, MVT::i32, ++/*331243*/ OPC_MoveParent, ++/*331244*/ OPC_MoveChild, 29, ++/*331246*/ OPC_CheckInteger, 1, ++/*331248*/ OPC_CheckType, MVT::i32, ++/*331250*/ OPC_MoveParent, ++/*331251*/ OPC_MoveChild, 30, ++/*331253*/ OPC_CheckInteger, 1, ++/*331255*/ OPC_CheckType, MVT::i32, ++/*331257*/ OPC_MoveParent, ++/*331258*/ OPC_MoveChild, 31, ++/*331260*/ OPC_CheckInteger, 1, ++/*331262*/ OPC_CheckType, MVT::i32, ++/*331264*/ OPC_MoveParent, ++/*331265*/ OPC_MoveParent, ++/*331266*/ OPC_MoveParent, ++/*331267*/ OPC_CheckChild1Same, 0, ++/*331269*/ OPC_MoveParent, ++/*331270*/ OPC_MoveParent, ++/*331271*/ OPC_MoveChild1, ++/*331272*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*331275*/ OPC_CheckChild0Integer, 1, ++/*331277*/ OPC_CheckChild0Type, MVT::i32, ++/*331279*/ OPC_CheckChild1Integer, 1, ++/*331281*/ OPC_CheckChild1Type, MVT::i32, ++/*331283*/ OPC_CheckChild2Integer, 1, ++/*331285*/ OPC_CheckChild2Type, MVT::i32, ++/*331287*/ OPC_CheckChild3Integer, 1, ++/*331289*/ OPC_CheckChild3Type, MVT::i32, ++/*331291*/ OPC_CheckChild4Integer, 1, ++/*331293*/ OPC_CheckChild4Type, MVT::i32, ++/*331295*/ OPC_MoveChild5, ++/*331296*/ OPC_CheckInteger, 1, ++/*331298*/ OPC_CheckType, MVT::i32, ++/*331300*/ OPC_MoveParent, ++/*331301*/ OPC_MoveChild6, ++/*331302*/ OPC_CheckInteger, 1, ++/*331304*/ OPC_CheckType, MVT::i32, ++/*331306*/ OPC_MoveParent, ++/*331307*/ OPC_MoveChild7, ++/*331308*/ OPC_CheckInteger, 1, ++/*331310*/ OPC_CheckType, MVT::i32, ++/*331312*/ OPC_MoveParent, ++/*331313*/ OPC_MoveChild, 8, ++/*331315*/ OPC_CheckInteger, 1, ++/*331317*/ OPC_CheckType, MVT::i32, ++/*331319*/ OPC_MoveParent, ++/*331320*/ OPC_MoveChild, 9, ++/*331322*/ OPC_CheckInteger, 1, ++/*331324*/ OPC_CheckType, MVT::i32, ++/*331326*/ OPC_MoveParent, ++/*331327*/ OPC_MoveChild, 10, ++/*331329*/ OPC_CheckInteger, 1, ++/*331331*/ OPC_CheckType, MVT::i32, ++/*331333*/ OPC_MoveParent, ++/*331334*/ OPC_MoveChild, 11, ++/*331336*/ OPC_CheckInteger, 1, ++/*331338*/ OPC_CheckType, MVT::i32, ++/*331340*/ OPC_MoveParent, ++/*331341*/ OPC_MoveChild, 12, ++/*331343*/ OPC_CheckInteger, 1, ++/*331345*/ OPC_CheckType, MVT::i32, ++/*331347*/ OPC_MoveParent, ++/*331348*/ OPC_MoveChild, 13, ++/*331350*/ OPC_CheckInteger, 1, ++/*331352*/ OPC_CheckType, MVT::i32, ++/*331354*/ OPC_MoveParent, ++/*331355*/ OPC_MoveChild, 14, ++/*331357*/ OPC_CheckInteger, 1, ++/*331359*/ OPC_CheckType, MVT::i32, ++/*331361*/ OPC_MoveParent, ++/*331362*/ OPC_MoveChild, 15, ++/*331364*/ OPC_CheckInteger, 1, ++/*331366*/ OPC_CheckType, MVT::i32, ++/*331368*/ OPC_MoveParent, ++/*331369*/ OPC_MoveChild, 16, ++/*331371*/ OPC_CheckInteger, 1, ++/*331373*/ OPC_CheckType, MVT::i32, ++/*331375*/ OPC_MoveParent, ++/*331376*/ OPC_MoveChild, 17, ++/*331378*/ OPC_CheckInteger, 1, ++/*331380*/ OPC_CheckType, MVT::i32, ++/*331382*/ OPC_MoveParent, ++/*331383*/ OPC_MoveChild, 18, ++/*331385*/ OPC_CheckInteger, 1, ++/*331387*/ OPC_CheckType, MVT::i32, ++/*331389*/ OPC_MoveParent, ++/*331390*/ OPC_MoveChild, 19, ++/*331392*/ OPC_CheckInteger, 1, ++/*331394*/ OPC_CheckType, MVT::i32, ++/*331396*/ OPC_MoveParent, ++/*331397*/ OPC_MoveChild, 20, ++/*331399*/ OPC_CheckInteger, 1, ++/*331401*/ OPC_CheckType, MVT::i32, ++/*331403*/ OPC_MoveParent, ++/*331404*/ OPC_MoveChild, 21, ++/*331406*/ OPC_CheckInteger, 1, ++/*331408*/ OPC_CheckType, MVT::i32, ++/*331410*/ OPC_MoveParent, ++/*331411*/ OPC_MoveChild, 22, ++/*331413*/ OPC_CheckInteger, 1, ++/*331415*/ OPC_CheckType, MVT::i32, ++/*331417*/ OPC_MoveParent, ++/*331418*/ OPC_MoveChild, 23, ++/*331420*/ OPC_CheckInteger, 1, ++/*331422*/ OPC_CheckType, MVT::i32, ++/*331424*/ OPC_MoveParent, ++/*331425*/ OPC_MoveChild, 24, ++/*331427*/ OPC_CheckInteger, 1, ++/*331429*/ OPC_CheckType, MVT::i32, ++/*331431*/ OPC_MoveParent, ++/*331432*/ OPC_MoveChild, 25, ++/*331434*/ OPC_CheckInteger, 1, ++/*331436*/ OPC_CheckType, MVT::i32, ++/*331438*/ OPC_MoveParent, ++/*331439*/ OPC_MoveChild, 26, ++/*331441*/ OPC_CheckInteger, 1, ++/*331443*/ OPC_CheckType, MVT::i32, ++/*331445*/ OPC_MoveParent, ++/*331446*/ OPC_MoveChild, 27, ++/*331448*/ OPC_CheckInteger, 1, ++/*331450*/ OPC_CheckType, MVT::i32, ++/*331452*/ OPC_MoveParent, ++/*331453*/ OPC_MoveChild, 28, ++/*331455*/ OPC_CheckInteger, 1, ++/*331457*/ OPC_CheckType, MVT::i32, ++/*331459*/ OPC_MoveParent, ++/*331460*/ OPC_MoveChild, 29, ++/*331462*/ OPC_CheckInteger, 1, ++/*331464*/ OPC_CheckType, MVT::i32, ++/*331466*/ OPC_MoveParent, ++/*331467*/ OPC_MoveChild, 30, ++/*331469*/ OPC_CheckInteger, 1, ++/*331471*/ OPC_CheckType, MVT::i32, ++/*331473*/ OPC_MoveParent, ++/*331474*/ OPC_MoveChild, 31, ++/*331476*/ OPC_CheckInteger, 1, ++/*331478*/ OPC_CheckType, MVT::i32, ++/*331480*/ OPC_MoveParent, ++/*331481*/ OPC_CheckType, MVT::v32i8, ++/*331483*/ OPC_MoveParent, ++/*331484*/ OPC_CheckType, MVT::v32i8, ++/*331486*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*331488*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*331496*/ /*Scope*/ 59|128,3/*443*/, /*->331941*/ ++/*331498*/ OPC_CheckChild0Same, 0, ++/*331500*/ OPC_CheckChild1Same, 1, ++/*331502*/ OPC_MoveParent, ++/*331503*/ OPC_MoveChild1, ++/*331504*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*331507*/ OPC_CheckChild0Integer, 1, ++/*331509*/ OPC_CheckChild0Type, MVT::i32, ++/*331511*/ OPC_CheckChild1Integer, 1, ++/*331513*/ OPC_CheckChild1Type, MVT::i32, ++/*331515*/ OPC_CheckChild2Integer, 1, ++/*331517*/ OPC_CheckChild2Type, MVT::i32, ++/*331519*/ OPC_CheckChild3Integer, 1, ++/*331521*/ OPC_CheckChild3Type, MVT::i32, ++/*331523*/ OPC_CheckChild4Integer, 1, ++/*331525*/ OPC_CheckChild4Type, MVT::i32, ++/*331527*/ OPC_MoveChild5, ++/*331528*/ OPC_CheckInteger, 1, ++/*331530*/ OPC_CheckType, MVT::i32, ++/*331532*/ OPC_MoveParent, ++/*331533*/ OPC_MoveChild6, ++/*331534*/ OPC_CheckInteger, 1, ++/*331536*/ OPC_CheckType, MVT::i32, ++/*331538*/ OPC_MoveParent, ++/*331539*/ OPC_MoveChild7, ++/*331540*/ OPC_CheckInteger, 1, ++/*331542*/ OPC_CheckType, MVT::i32, ++/*331544*/ OPC_MoveParent, ++/*331545*/ OPC_MoveChild, 8, ++/*331547*/ OPC_CheckInteger, 1, ++/*331549*/ OPC_CheckType, MVT::i32, ++/*331551*/ OPC_MoveParent, ++/*331552*/ OPC_MoveChild, 9, ++/*331554*/ OPC_CheckInteger, 1, ++/*331556*/ OPC_CheckType, MVT::i32, ++/*331558*/ OPC_MoveParent, ++/*331559*/ OPC_MoveChild, 10, ++/*331561*/ OPC_CheckInteger, 1, ++/*331563*/ OPC_CheckType, MVT::i32, ++/*331565*/ OPC_MoveParent, ++/*331566*/ OPC_MoveChild, 11, ++/*331568*/ OPC_CheckInteger, 1, ++/*331570*/ OPC_CheckType, MVT::i32, ++/*331572*/ OPC_MoveParent, ++/*331573*/ OPC_MoveChild, 12, ++/*331575*/ OPC_CheckInteger, 1, ++/*331577*/ OPC_CheckType, MVT::i32, ++/*331579*/ OPC_MoveParent, ++/*331580*/ OPC_MoveChild, 13, ++/*331582*/ OPC_CheckInteger, 1, ++/*331584*/ OPC_CheckType, MVT::i32, ++/*331586*/ OPC_MoveParent, ++/*331587*/ OPC_MoveChild, 14, ++/*331589*/ OPC_CheckInteger, 1, ++/*331591*/ OPC_CheckType, MVT::i32, ++/*331593*/ OPC_MoveParent, ++/*331594*/ OPC_MoveChild, 15, ++/*331596*/ OPC_CheckInteger, 1, ++/*331598*/ OPC_CheckType, MVT::i32, ++/*331600*/ OPC_MoveParent, ++/*331601*/ OPC_MoveChild, 16, ++/*331603*/ OPC_CheckInteger, 1, ++/*331605*/ OPC_CheckType, MVT::i32, ++/*331607*/ OPC_MoveParent, ++/*331608*/ OPC_MoveChild, 17, ++/*331610*/ OPC_CheckInteger, 1, ++/*331612*/ OPC_CheckType, MVT::i32, ++/*331614*/ OPC_MoveParent, ++/*331615*/ OPC_MoveChild, 18, ++/*331617*/ OPC_CheckInteger, 1, ++/*331619*/ OPC_CheckType, MVT::i32, ++/*331621*/ OPC_MoveParent, ++/*331622*/ OPC_MoveChild, 19, ++/*331624*/ OPC_CheckInteger, 1, ++/*331626*/ OPC_CheckType, MVT::i32, ++/*331628*/ OPC_MoveParent, ++/*331629*/ OPC_MoveChild, 20, ++/*331631*/ OPC_CheckInteger, 1, ++/*331633*/ OPC_CheckType, MVT::i32, ++/*331635*/ OPC_MoveParent, ++/*331636*/ OPC_MoveChild, 21, ++/*331638*/ OPC_CheckInteger, 1, ++/*331640*/ OPC_CheckType, MVT::i32, ++/*331642*/ OPC_MoveParent, ++/*331643*/ OPC_MoveChild, 22, ++/*331645*/ OPC_CheckInteger, 1, ++/*331647*/ OPC_CheckType, MVT::i32, ++/*331649*/ OPC_MoveParent, ++/*331650*/ OPC_MoveChild, 23, ++/*331652*/ OPC_CheckInteger, 1, ++/*331654*/ OPC_CheckType, MVT::i32, ++/*331656*/ OPC_MoveParent, ++/*331657*/ OPC_MoveChild, 24, ++/*331659*/ OPC_CheckInteger, 1, ++/*331661*/ OPC_CheckType, MVT::i32, ++/*331663*/ OPC_MoveParent, ++/*331664*/ OPC_MoveChild, 25, ++/*331666*/ OPC_CheckInteger, 1, ++/*331668*/ OPC_CheckType, MVT::i32, ++/*331670*/ OPC_MoveParent, ++/*331671*/ OPC_MoveChild, 26, ++/*331673*/ OPC_CheckInteger, 1, ++/*331675*/ OPC_CheckType, MVT::i32, ++/*331677*/ OPC_MoveParent, ++/*331678*/ OPC_MoveChild, 27, ++/*331680*/ OPC_CheckInteger, 1, ++/*331682*/ OPC_CheckType, MVT::i32, ++/*331684*/ OPC_MoveParent, ++/*331685*/ OPC_MoveChild, 28, ++/*331687*/ OPC_CheckInteger, 1, ++/*331689*/ OPC_CheckType, MVT::i32, ++/*331691*/ OPC_MoveParent, ++/*331692*/ OPC_MoveChild, 29, ++/*331694*/ OPC_CheckInteger, 1, ++/*331696*/ OPC_CheckType, MVT::i32, ++/*331698*/ OPC_MoveParent, ++/*331699*/ OPC_MoveChild, 30, ++/*331701*/ OPC_CheckInteger, 1, ++/*331703*/ OPC_CheckType, MVT::i32, ++/*331705*/ OPC_MoveParent, ++/*331706*/ OPC_MoveChild, 31, ++/*331708*/ OPC_CheckInteger, 1, ++/*331710*/ OPC_CheckType, MVT::i32, ++/*331712*/ OPC_MoveParent, ++/*331713*/ OPC_MoveParent, ++/*331714*/ OPC_MoveParent, ++/*331715*/ OPC_MoveParent, ++/*331716*/ OPC_MoveChild1, ++/*331717*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*331720*/ OPC_CheckChild0Integer, 1, ++/*331722*/ OPC_CheckChild0Type, MVT::i32, ++/*331724*/ OPC_CheckChild1Integer, 1, ++/*331726*/ OPC_CheckChild1Type, MVT::i32, ++/*331728*/ OPC_CheckChild2Integer, 1, ++/*331730*/ OPC_CheckChild2Type, MVT::i32, ++/*331732*/ OPC_CheckChild3Integer, 1, ++/*331734*/ OPC_CheckChild3Type, MVT::i32, ++/*331736*/ OPC_CheckChild4Integer, 1, ++/*331738*/ OPC_CheckChild4Type, MVT::i32, ++/*331740*/ OPC_MoveChild5, ++/*331741*/ OPC_CheckInteger, 1, ++/*331743*/ OPC_CheckType, MVT::i32, ++/*331745*/ OPC_MoveParent, ++/*331746*/ OPC_MoveChild6, ++/*331747*/ OPC_CheckInteger, 1, ++/*331749*/ OPC_CheckType, MVT::i32, ++/*331751*/ OPC_MoveParent, ++/*331752*/ OPC_MoveChild7, ++/*331753*/ OPC_CheckInteger, 1, ++/*331755*/ OPC_CheckType, MVT::i32, ++/*331757*/ OPC_MoveParent, ++/*331758*/ OPC_MoveChild, 8, ++/*331760*/ OPC_CheckInteger, 1, ++/*331762*/ OPC_CheckType, MVT::i32, ++/*331764*/ OPC_MoveParent, ++/*331765*/ OPC_MoveChild, 9, ++/*331767*/ OPC_CheckInteger, 1, ++/*331769*/ OPC_CheckType, MVT::i32, ++/*331771*/ OPC_MoveParent, ++/*331772*/ OPC_MoveChild, 10, ++/*331774*/ OPC_CheckInteger, 1, ++/*331776*/ OPC_CheckType, MVT::i32, ++/*331778*/ OPC_MoveParent, ++/*331779*/ OPC_MoveChild, 11, ++/*331781*/ OPC_CheckInteger, 1, ++/*331783*/ OPC_CheckType, MVT::i32, ++/*331785*/ OPC_MoveParent, ++/*331786*/ OPC_MoveChild, 12, ++/*331788*/ OPC_CheckInteger, 1, ++/*331790*/ OPC_CheckType, MVT::i32, ++/*331792*/ OPC_MoveParent, ++/*331793*/ OPC_MoveChild, 13, ++/*331795*/ OPC_CheckInteger, 1, ++/*331797*/ OPC_CheckType, MVT::i32, ++/*331799*/ OPC_MoveParent, ++/*331800*/ OPC_MoveChild, 14, ++/*331802*/ OPC_CheckInteger, 1, ++/*331804*/ OPC_CheckType, MVT::i32, ++/*331806*/ OPC_MoveParent, ++/*331807*/ OPC_MoveChild, 15, ++/*331809*/ OPC_CheckInteger, 1, ++/*331811*/ OPC_CheckType, MVT::i32, ++/*331813*/ OPC_MoveParent, ++/*331814*/ OPC_MoveChild, 16, ++/*331816*/ OPC_CheckInteger, 1, ++/*331818*/ OPC_CheckType, MVT::i32, ++/*331820*/ OPC_MoveParent, ++/*331821*/ OPC_MoveChild, 17, ++/*331823*/ OPC_CheckInteger, 1, ++/*331825*/ OPC_CheckType, MVT::i32, ++/*331827*/ OPC_MoveParent, ++/*331828*/ OPC_MoveChild, 18, ++/*331830*/ OPC_CheckInteger, 1, ++/*331832*/ OPC_CheckType, MVT::i32, ++/*331834*/ OPC_MoveParent, ++/*331835*/ OPC_MoveChild, 19, ++/*331837*/ OPC_CheckInteger, 1, ++/*331839*/ OPC_CheckType, MVT::i32, ++/*331841*/ OPC_MoveParent, ++/*331842*/ OPC_MoveChild, 20, ++/*331844*/ OPC_CheckInteger, 1, ++/*331846*/ OPC_CheckType, MVT::i32, ++/*331848*/ OPC_MoveParent, ++/*331849*/ OPC_MoveChild, 21, ++/*331851*/ OPC_CheckInteger, 1, ++/*331853*/ OPC_CheckType, MVT::i32, ++/*331855*/ OPC_MoveParent, ++/*331856*/ OPC_MoveChild, 22, ++/*331858*/ OPC_CheckInteger, 1, ++/*331860*/ OPC_CheckType, MVT::i32, ++/*331862*/ OPC_MoveParent, ++/*331863*/ OPC_MoveChild, 23, ++/*331865*/ OPC_CheckInteger, 1, ++/*331867*/ OPC_CheckType, MVT::i32, ++/*331869*/ OPC_MoveParent, ++/*331870*/ OPC_MoveChild, 24, ++/*331872*/ OPC_CheckInteger, 1, ++/*331874*/ OPC_CheckType, MVT::i32, ++/*331876*/ OPC_MoveParent, ++/*331877*/ OPC_MoveChild, 25, ++/*331879*/ OPC_CheckInteger, 1, ++/*331881*/ OPC_CheckType, MVT::i32, ++/*331883*/ OPC_MoveParent, ++/*331884*/ OPC_MoveChild, 26, ++/*331886*/ OPC_CheckInteger, 1, ++/*331888*/ OPC_CheckType, MVT::i32, ++/*331890*/ OPC_MoveParent, ++/*331891*/ OPC_MoveChild, 27, ++/*331893*/ OPC_CheckInteger, 1, ++/*331895*/ OPC_CheckType, MVT::i32, ++/*331897*/ OPC_MoveParent, ++/*331898*/ OPC_MoveChild, 28, ++/*331900*/ OPC_CheckInteger, 1, ++/*331902*/ OPC_CheckType, MVT::i32, ++/*331904*/ OPC_MoveParent, ++/*331905*/ OPC_MoveChild, 29, ++/*331907*/ OPC_CheckInteger, 1, ++/*331909*/ OPC_CheckType, MVT::i32, ++/*331911*/ OPC_MoveParent, ++/*331912*/ OPC_MoveChild, 30, ++/*331914*/ OPC_CheckInteger, 1, ++/*331916*/ OPC_CheckType, MVT::i32, ++/*331918*/ OPC_MoveParent, ++/*331919*/ OPC_MoveChild, 31, ++/*331921*/ OPC_CheckInteger, 1, ++/*331923*/ OPC_CheckType, MVT::i32, ++/*331925*/ OPC_MoveParent, ++/*331926*/ OPC_CheckType, MVT::v32i8, ++/*331928*/ OPC_MoveParent, ++/*331929*/ OPC_CheckType, MVT::v32i8, ++/*331931*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*331933*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*331941*/ /*Scope*/ 59|128,3/*443*/, /*->332386*/ ++/*331943*/ OPC_CheckChild0Same, 1, ++/*331945*/ OPC_CheckChild1Same, 0, ++/*331947*/ OPC_MoveParent, ++/*331948*/ OPC_MoveChild1, ++/*331949*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*331952*/ OPC_CheckChild0Integer, 1, ++/*331954*/ OPC_CheckChild0Type, MVT::i32, ++/*331956*/ OPC_CheckChild1Integer, 1, ++/*331958*/ OPC_CheckChild1Type, MVT::i32, ++/*331960*/ OPC_CheckChild2Integer, 1, ++/*331962*/ OPC_CheckChild2Type, MVT::i32, ++/*331964*/ OPC_CheckChild3Integer, 1, ++/*331966*/ OPC_CheckChild3Type, MVT::i32, ++/*331968*/ OPC_CheckChild4Integer, 1, ++/*331970*/ OPC_CheckChild4Type, MVT::i32, ++/*331972*/ OPC_MoveChild5, ++/*331973*/ OPC_CheckInteger, 1, ++/*331975*/ OPC_CheckType, MVT::i32, ++/*331977*/ OPC_MoveParent, ++/*331978*/ OPC_MoveChild6, ++/*331979*/ OPC_CheckInteger, 1, ++/*331981*/ OPC_CheckType, MVT::i32, ++/*331983*/ OPC_MoveParent, ++/*331984*/ OPC_MoveChild7, ++/*331985*/ OPC_CheckInteger, 1, ++/*331987*/ OPC_CheckType, MVT::i32, ++/*331989*/ OPC_MoveParent, ++/*331990*/ OPC_MoveChild, 8, ++/*331992*/ OPC_CheckInteger, 1, ++/*331994*/ OPC_CheckType, MVT::i32, ++/*331996*/ OPC_MoveParent, ++/*331997*/ OPC_MoveChild, 9, ++/*331999*/ OPC_CheckInteger, 1, ++/*332001*/ OPC_CheckType, MVT::i32, ++/*332003*/ OPC_MoveParent, ++/*332004*/ OPC_MoveChild, 10, ++/*332006*/ OPC_CheckInteger, 1, ++/*332008*/ OPC_CheckType, MVT::i32, ++/*332010*/ OPC_MoveParent, ++/*332011*/ OPC_MoveChild, 11, ++/*332013*/ OPC_CheckInteger, 1, ++/*332015*/ OPC_CheckType, MVT::i32, ++/*332017*/ OPC_MoveParent, ++/*332018*/ OPC_MoveChild, 12, ++/*332020*/ OPC_CheckInteger, 1, ++/*332022*/ OPC_CheckType, MVT::i32, ++/*332024*/ OPC_MoveParent, ++/*332025*/ OPC_MoveChild, 13, ++/*332027*/ OPC_CheckInteger, 1, ++/*332029*/ OPC_CheckType, MVT::i32, ++/*332031*/ OPC_MoveParent, ++/*332032*/ OPC_MoveChild, 14, ++/*332034*/ OPC_CheckInteger, 1, ++/*332036*/ OPC_CheckType, MVT::i32, ++/*332038*/ OPC_MoveParent, ++/*332039*/ OPC_MoveChild, 15, ++/*332041*/ OPC_CheckInteger, 1, ++/*332043*/ OPC_CheckType, MVT::i32, ++/*332045*/ OPC_MoveParent, ++/*332046*/ OPC_MoveChild, 16, ++/*332048*/ OPC_CheckInteger, 1, ++/*332050*/ OPC_CheckType, MVT::i32, ++/*332052*/ OPC_MoveParent, ++/*332053*/ OPC_MoveChild, 17, ++/*332055*/ OPC_CheckInteger, 1, ++/*332057*/ OPC_CheckType, MVT::i32, ++/*332059*/ OPC_MoveParent, ++/*332060*/ OPC_MoveChild, 18, ++/*332062*/ OPC_CheckInteger, 1, ++/*332064*/ OPC_CheckType, MVT::i32, ++/*332066*/ OPC_MoveParent, ++/*332067*/ OPC_MoveChild, 19, ++/*332069*/ OPC_CheckInteger, 1, ++/*332071*/ OPC_CheckType, MVT::i32, ++/*332073*/ OPC_MoveParent, ++/*332074*/ OPC_MoveChild, 20, ++/*332076*/ OPC_CheckInteger, 1, ++/*332078*/ OPC_CheckType, MVT::i32, ++/*332080*/ OPC_MoveParent, ++/*332081*/ OPC_MoveChild, 21, ++/*332083*/ OPC_CheckInteger, 1, ++/*332085*/ OPC_CheckType, MVT::i32, ++/*332087*/ OPC_MoveParent, ++/*332088*/ OPC_MoveChild, 22, ++/*332090*/ OPC_CheckInteger, 1, ++/*332092*/ OPC_CheckType, MVT::i32, ++/*332094*/ OPC_MoveParent, ++/*332095*/ OPC_MoveChild, 23, ++/*332097*/ OPC_CheckInteger, 1, ++/*332099*/ OPC_CheckType, MVT::i32, ++/*332101*/ OPC_MoveParent, ++/*332102*/ OPC_MoveChild, 24, ++/*332104*/ OPC_CheckInteger, 1, ++/*332106*/ OPC_CheckType, MVT::i32, ++/*332108*/ OPC_MoveParent, ++/*332109*/ OPC_MoveChild, 25, ++/*332111*/ OPC_CheckInteger, 1, ++/*332113*/ OPC_CheckType, MVT::i32, ++/*332115*/ OPC_MoveParent, ++/*332116*/ OPC_MoveChild, 26, ++/*332118*/ OPC_CheckInteger, 1, ++/*332120*/ OPC_CheckType, MVT::i32, ++/*332122*/ OPC_MoveParent, ++/*332123*/ OPC_MoveChild, 27, ++/*332125*/ OPC_CheckInteger, 1, ++/*332127*/ OPC_CheckType, MVT::i32, ++/*332129*/ OPC_MoveParent, ++/*332130*/ OPC_MoveChild, 28, ++/*332132*/ OPC_CheckInteger, 1, ++/*332134*/ OPC_CheckType, MVT::i32, ++/*332136*/ OPC_MoveParent, ++/*332137*/ OPC_MoveChild, 29, ++/*332139*/ OPC_CheckInteger, 1, ++/*332141*/ OPC_CheckType, MVT::i32, ++/*332143*/ OPC_MoveParent, ++/*332144*/ OPC_MoveChild, 30, ++/*332146*/ OPC_CheckInteger, 1, ++/*332148*/ OPC_CheckType, MVT::i32, ++/*332150*/ OPC_MoveParent, ++/*332151*/ OPC_MoveChild, 31, ++/*332153*/ OPC_CheckInteger, 1, ++/*332155*/ OPC_CheckType, MVT::i32, ++/*332157*/ OPC_MoveParent, ++/*332158*/ OPC_MoveParent, ++/*332159*/ OPC_MoveParent, ++/*332160*/ OPC_MoveParent, ++/*332161*/ OPC_MoveChild1, ++/*332162*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*332165*/ OPC_CheckChild0Integer, 1, ++/*332167*/ OPC_CheckChild0Type, MVT::i32, ++/*332169*/ OPC_CheckChild1Integer, 1, ++/*332171*/ OPC_CheckChild1Type, MVT::i32, ++/*332173*/ OPC_CheckChild2Integer, 1, ++/*332175*/ OPC_CheckChild2Type, MVT::i32, ++/*332177*/ OPC_CheckChild3Integer, 1, ++/*332179*/ OPC_CheckChild3Type, MVT::i32, ++/*332181*/ OPC_CheckChild4Integer, 1, ++/*332183*/ OPC_CheckChild4Type, MVT::i32, ++/*332185*/ OPC_MoveChild5, ++/*332186*/ OPC_CheckInteger, 1, ++/*332188*/ OPC_CheckType, MVT::i32, ++/*332190*/ OPC_MoveParent, ++/*332191*/ OPC_MoveChild6, ++/*332192*/ OPC_CheckInteger, 1, ++/*332194*/ OPC_CheckType, MVT::i32, ++/*332196*/ OPC_MoveParent, ++/*332197*/ OPC_MoveChild7, ++/*332198*/ OPC_CheckInteger, 1, ++/*332200*/ OPC_CheckType, MVT::i32, ++/*332202*/ OPC_MoveParent, ++/*332203*/ OPC_MoveChild, 8, ++/*332205*/ OPC_CheckInteger, 1, ++/*332207*/ OPC_CheckType, MVT::i32, ++/*332209*/ OPC_MoveParent, ++/*332210*/ OPC_MoveChild, 9, ++/*332212*/ OPC_CheckInteger, 1, ++/*332214*/ OPC_CheckType, MVT::i32, ++/*332216*/ OPC_MoveParent, ++/*332217*/ OPC_MoveChild, 10, ++/*332219*/ OPC_CheckInteger, 1, ++/*332221*/ OPC_CheckType, MVT::i32, ++/*332223*/ OPC_MoveParent, ++/*332224*/ OPC_MoveChild, 11, ++/*332226*/ OPC_CheckInteger, 1, ++/*332228*/ OPC_CheckType, MVT::i32, ++/*332230*/ OPC_MoveParent, ++/*332231*/ OPC_MoveChild, 12, ++/*332233*/ OPC_CheckInteger, 1, ++/*332235*/ OPC_CheckType, MVT::i32, ++/*332237*/ OPC_MoveParent, ++/*332238*/ OPC_MoveChild, 13, ++/*332240*/ OPC_CheckInteger, 1, ++/*332242*/ OPC_CheckType, MVT::i32, ++/*332244*/ OPC_MoveParent, ++/*332245*/ OPC_MoveChild, 14, ++/*332247*/ OPC_CheckInteger, 1, ++/*332249*/ OPC_CheckType, MVT::i32, ++/*332251*/ OPC_MoveParent, ++/*332252*/ OPC_MoveChild, 15, ++/*332254*/ OPC_CheckInteger, 1, ++/*332256*/ OPC_CheckType, MVT::i32, ++/*332258*/ OPC_MoveParent, ++/*332259*/ OPC_MoveChild, 16, ++/*332261*/ OPC_CheckInteger, 1, ++/*332263*/ OPC_CheckType, MVT::i32, ++/*332265*/ OPC_MoveParent, ++/*332266*/ OPC_MoveChild, 17, ++/*332268*/ OPC_CheckInteger, 1, ++/*332270*/ OPC_CheckType, MVT::i32, ++/*332272*/ OPC_MoveParent, ++/*332273*/ OPC_MoveChild, 18, ++/*332275*/ OPC_CheckInteger, 1, ++/*332277*/ OPC_CheckType, MVT::i32, ++/*332279*/ OPC_MoveParent, ++/*332280*/ OPC_MoveChild, 19, ++/*332282*/ OPC_CheckInteger, 1, ++/*332284*/ OPC_CheckType, MVT::i32, ++/*332286*/ OPC_MoveParent, ++/*332287*/ OPC_MoveChild, 20, ++/*332289*/ OPC_CheckInteger, 1, ++/*332291*/ OPC_CheckType, MVT::i32, ++/*332293*/ OPC_MoveParent, ++/*332294*/ OPC_MoveChild, 21, ++/*332296*/ OPC_CheckInteger, 1, ++/*332298*/ OPC_CheckType, MVT::i32, ++/*332300*/ OPC_MoveParent, ++/*332301*/ OPC_MoveChild, 22, ++/*332303*/ OPC_CheckInteger, 1, ++/*332305*/ OPC_CheckType, MVT::i32, ++/*332307*/ OPC_MoveParent, ++/*332308*/ OPC_MoveChild, 23, ++/*332310*/ OPC_CheckInteger, 1, ++/*332312*/ OPC_CheckType, MVT::i32, ++/*332314*/ OPC_MoveParent, ++/*332315*/ OPC_MoveChild, 24, ++/*332317*/ OPC_CheckInteger, 1, ++/*332319*/ OPC_CheckType, MVT::i32, ++/*332321*/ OPC_MoveParent, ++/*332322*/ OPC_MoveChild, 25, ++/*332324*/ OPC_CheckInteger, 1, ++/*332326*/ OPC_CheckType, MVT::i32, ++/*332328*/ OPC_MoveParent, ++/*332329*/ OPC_MoveChild, 26, ++/*332331*/ OPC_CheckInteger, 1, ++/*332333*/ OPC_CheckType, MVT::i32, ++/*332335*/ OPC_MoveParent, ++/*332336*/ OPC_MoveChild, 27, ++/*332338*/ OPC_CheckInteger, 1, ++/*332340*/ OPC_CheckType, MVT::i32, ++/*332342*/ OPC_MoveParent, ++/*332343*/ OPC_MoveChild, 28, ++/*332345*/ OPC_CheckInteger, 1, ++/*332347*/ OPC_CheckType, MVT::i32, ++/*332349*/ OPC_MoveParent, ++/*332350*/ OPC_MoveChild, 29, ++/*332352*/ OPC_CheckInteger, 1, ++/*332354*/ OPC_CheckType, MVT::i32, ++/*332356*/ OPC_MoveParent, ++/*332357*/ OPC_MoveChild, 30, ++/*332359*/ OPC_CheckInteger, 1, ++/*332361*/ OPC_CheckType, MVT::i32, ++/*332363*/ OPC_MoveParent, ++/*332364*/ OPC_MoveChild, 31, ++/*332366*/ OPC_CheckInteger, 1, ++/*332368*/ OPC_CheckType, MVT::i32, ++/*332370*/ OPC_MoveParent, ++/*332371*/ OPC_CheckType, MVT::v32i8, ++/*332373*/ OPC_MoveParent, ++/*332374*/ OPC_CheckType, MVT::v32i8, ++/*332376*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*332378*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*332386*/ 0, /*End of Scope*/ ++/*332387*/ /*Scope*/ 126|128,6/*894*/, /*->333283*/ ++/*332389*/ OPC_CheckChild0Same, 1, ++/*332391*/ OPC_MoveChild1, ++/*332392*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*332395*/ OPC_Scope, 57|128,3/*441*/, /*->332839*/ // 2 children in Scope ++/*332398*/ OPC_MoveChild0, ++/*332399*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*332402*/ OPC_CheckChild0Integer, 1, ++/*332404*/ OPC_CheckChild0Type, MVT::i32, ++/*332406*/ OPC_CheckChild1Integer, 1, ++/*332408*/ OPC_CheckChild1Type, MVT::i32, ++/*332410*/ OPC_CheckChild2Integer, 1, ++/*332412*/ OPC_CheckChild2Type, MVT::i32, ++/*332414*/ OPC_CheckChild3Integer, 1, ++/*332416*/ OPC_CheckChild3Type, MVT::i32, ++/*332418*/ OPC_CheckChild4Integer, 1, ++/*332420*/ OPC_CheckChild4Type, MVT::i32, ++/*332422*/ OPC_MoveChild5, ++/*332423*/ OPC_CheckInteger, 1, ++/*332425*/ OPC_CheckType, MVT::i32, ++/*332427*/ OPC_MoveParent, ++/*332428*/ OPC_MoveChild6, ++/*332429*/ OPC_CheckInteger, 1, ++/*332431*/ OPC_CheckType, MVT::i32, ++/*332433*/ OPC_MoveParent, ++/*332434*/ OPC_MoveChild7, ++/*332435*/ OPC_CheckInteger, 1, ++/*332437*/ OPC_CheckType, MVT::i32, ++/*332439*/ OPC_MoveParent, ++/*332440*/ OPC_MoveChild, 8, ++/*332442*/ OPC_CheckInteger, 1, ++/*332444*/ OPC_CheckType, MVT::i32, ++/*332446*/ OPC_MoveParent, ++/*332447*/ OPC_MoveChild, 9, ++/*332449*/ OPC_CheckInteger, 1, ++/*332451*/ OPC_CheckType, MVT::i32, ++/*332453*/ OPC_MoveParent, ++/*332454*/ OPC_MoveChild, 10, ++/*332456*/ OPC_CheckInteger, 1, ++/*332458*/ OPC_CheckType, MVT::i32, ++/*332460*/ OPC_MoveParent, ++/*332461*/ OPC_MoveChild, 11, ++/*332463*/ OPC_CheckInteger, 1, ++/*332465*/ OPC_CheckType, MVT::i32, ++/*332467*/ OPC_MoveParent, ++/*332468*/ OPC_MoveChild, 12, ++/*332470*/ OPC_CheckInteger, 1, ++/*332472*/ OPC_CheckType, MVT::i32, ++/*332474*/ OPC_MoveParent, ++/*332475*/ OPC_MoveChild, 13, ++/*332477*/ OPC_CheckInteger, 1, ++/*332479*/ OPC_CheckType, MVT::i32, ++/*332481*/ OPC_MoveParent, ++/*332482*/ OPC_MoveChild, 14, ++/*332484*/ OPC_CheckInteger, 1, ++/*332486*/ OPC_CheckType, MVT::i32, ++/*332488*/ OPC_MoveParent, ++/*332489*/ OPC_MoveChild, 15, ++/*332491*/ OPC_CheckInteger, 1, ++/*332493*/ OPC_CheckType, MVT::i32, ++/*332495*/ OPC_MoveParent, ++/*332496*/ OPC_MoveChild, 16, ++/*332498*/ OPC_CheckInteger, 1, ++/*332500*/ OPC_CheckType, MVT::i32, ++/*332502*/ OPC_MoveParent, ++/*332503*/ OPC_MoveChild, 17, ++/*332505*/ OPC_CheckInteger, 1, ++/*332507*/ OPC_CheckType, MVT::i32, ++/*332509*/ OPC_MoveParent, ++/*332510*/ OPC_MoveChild, 18, ++/*332512*/ OPC_CheckInteger, 1, ++/*332514*/ OPC_CheckType, MVT::i32, ++/*332516*/ OPC_MoveParent, ++/*332517*/ OPC_MoveChild, 19, ++/*332519*/ OPC_CheckInteger, 1, ++/*332521*/ OPC_CheckType, MVT::i32, ++/*332523*/ OPC_MoveParent, ++/*332524*/ OPC_MoveChild, 20, ++/*332526*/ OPC_CheckInteger, 1, ++/*332528*/ OPC_CheckType, MVT::i32, ++/*332530*/ OPC_MoveParent, ++/*332531*/ OPC_MoveChild, 21, ++/*332533*/ OPC_CheckInteger, 1, ++/*332535*/ OPC_CheckType, MVT::i32, ++/*332537*/ OPC_MoveParent, ++/*332538*/ OPC_MoveChild, 22, ++/*332540*/ OPC_CheckInteger, 1, ++/*332542*/ OPC_CheckType, MVT::i32, ++/*332544*/ OPC_MoveParent, ++/*332545*/ OPC_MoveChild, 23, ++/*332547*/ OPC_CheckInteger, 1, ++/*332549*/ OPC_CheckType, MVT::i32, ++/*332551*/ OPC_MoveParent, ++/*332552*/ OPC_MoveChild, 24, ++/*332554*/ OPC_CheckInteger, 1, ++/*332556*/ OPC_CheckType, MVT::i32, ++/*332558*/ OPC_MoveParent, ++/*332559*/ OPC_MoveChild, 25, ++/*332561*/ OPC_CheckInteger, 1, ++/*332563*/ OPC_CheckType, MVT::i32, ++/*332565*/ OPC_MoveParent, ++/*332566*/ OPC_MoveChild, 26, ++/*332568*/ OPC_CheckInteger, 1, ++/*332570*/ OPC_CheckType, MVT::i32, ++/*332572*/ OPC_MoveParent, ++/*332573*/ OPC_MoveChild, 27, ++/*332575*/ OPC_CheckInteger, 1, ++/*332577*/ OPC_CheckType, MVT::i32, ++/*332579*/ OPC_MoveParent, ++/*332580*/ OPC_MoveChild, 28, ++/*332582*/ OPC_CheckInteger, 1, ++/*332584*/ OPC_CheckType, MVT::i32, ++/*332586*/ OPC_MoveParent, ++/*332587*/ OPC_MoveChild, 29, ++/*332589*/ OPC_CheckInteger, 1, ++/*332591*/ OPC_CheckType, MVT::i32, ++/*332593*/ OPC_MoveParent, ++/*332594*/ OPC_MoveChild, 30, ++/*332596*/ OPC_CheckInteger, 1, ++/*332598*/ OPC_CheckType, MVT::i32, ++/*332600*/ OPC_MoveParent, ++/*332601*/ OPC_MoveChild, 31, ++/*332603*/ OPC_CheckInteger, 1, ++/*332605*/ OPC_CheckType, MVT::i32, ++/*332607*/ OPC_MoveParent, ++/*332608*/ OPC_MoveParent, ++/*332609*/ OPC_CheckChild1Same, 0, ++/*332611*/ OPC_MoveParent, ++/*332612*/ OPC_MoveParent, ++/*332613*/ OPC_MoveParent, ++/*332614*/ OPC_MoveChild1, ++/*332615*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*332618*/ OPC_CheckChild0Integer, 1, ++/*332620*/ OPC_CheckChild0Type, MVT::i32, ++/*332622*/ OPC_CheckChild1Integer, 1, ++/*332624*/ OPC_CheckChild1Type, MVT::i32, ++/*332626*/ OPC_CheckChild2Integer, 1, ++/*332628*/ OPC_CheckChild2Type, MVT::i32, ++/*332630*/ OPC_CheckChild3Integer, 1, ++/*332632*/ OPC_CheckChild3Type, MVT::i32, ++/*332634*/ OPC_CheckChild4Integer, 1, ++/*332636*/ OPC_CheckChild4Type, MVT::i32, ++/*332638*/ OPC_MoveChild5, ++/*332639*/ OPC_CheckInteger, 1, ++/*332641*/ OPC_CheckType, MVT::i32, ++/*332643*/ OPC_MoveParent, ++/*332644*/ OPC_MoveChild6, ++/*332645*/ OPC_CheckInteger, 1, ++/*332647*/ OPC_CheckType, MVT::i32, ++/*332649*/ OPC_MoveParent, ++/*332650*/ OPC_MoveChild7, ++/*332651*/ OPC_CheckInteger, 1, ++/*332653*/ OPC_CheckType, MVT::i32, ++/*332655*/ OPC_MoveParent, ++/*332656*/ OPC_MoveChild, 8, ++/*332658*/ OPC_CheckInteger, 1, ++/*332660*/ OPC_CheckType, MVT::i32, ++/*332662*/ OPC_MoveParent, ++/*332663*/ OPC_MoveChild, 9, ++/*332665*/ OPC_CheckInteger, 1, ++/*332667*/ OPC_CheckType, MVT::i32, ++/*332669*/ OPC_MoveParent, ++/*332670*/ OPC_MoveChild, 10, ++/*332672*/ OPC_CheckInteger, 1, ++/*332674*/ OPC_CheckType, MVT::i32, ++/*332676*/ OPC_MoveParent, ++/*332677*/ OPC_MoveChild, 11, ++/*332679*/ OPC_CheckInteger, 1, ++/*332681*/ OPC_CheckType, MVT::i32, ++/*332683*/ OPC_MoveParent, ++/*332684*/ OPC_MoveChild, 12, ++/*332686*/ OPC_CheckInteger, 1, ++/*332688*/ OPC_CheckType, MVT::i32, ++/*332690*/ OPC_MoveParent, ++/*332691*/ OPC_MoveChild, 13, ++/*332693*/ OPC_CheckInteger, 1, ++/*332695*/ OPC_CheckType, MVT::i32, ++/*332697*/ OPC_MoveParent, ++/*332698*/ OPC_MoveChild, 14, ++/*332700*/ OPC_CheckInteger, 1, ++/*332702*/ OPC_CheckType, MVT::i32, ++/*332704*/ OPC_MoveParent, ++/*332705*/ OPC_MoveChild, 15, ++/*332707*/ OPC_CheckInteger, 1, ++/*332709*/ OPC_CheckType, MVT::i32, ++/*332711*/ OPC_MoveParent, ++/*332712*/ OPC_MoveChild, 16, ++/*332714*/ OPC_CheckInteger, 1, ++/*332716*/ OPC_CheckType, MVT::i32, ++/*332718*/ OPC_MoveParent, ++/*332719*/ OPC_MoveChild, 17, ++/*332721*/ OPC_CheckInteger, 1, ++/*332723*/ OPC_CheckType, MVT::i32, ++/*332725*/ OPC_MoveParent, ++/*332726*/ OPC_MoveChild, 18, ++/*332728*/ OPC_CheckInteger, 1, ++/*332730*/ OPC_CheckType, MVT::i32, ++/*332732*/ OPC_MoveParent, ++/*332733*/ OPC_MoveChild, 19, ++/*332735*/ OPC_CheckInteger, 1, ++/*332737*/ OPC_CheckType, MVT::i32, ++/*332739*/ OPC_MoveParent, ++/*332740*/ OPC_MoveChild, 20, ++/*332742*/ OPC_CheckInteger, 1, ++/*332744*/ OPC_CheckType, MVT::i32, ++/*332746*/ OPC_MoveParent, ++/*332747*/ OPC_MoveChild, 21, ++/*332749*/ OPC_CheckInteger, 1, ++/*332751*/ OPC_CheckType, MVT::i32, ++/*332753*/ OPC_MoveParent, ++/*332754*/ OPC_MoveChild, 22, ++/*332756*/ OPC_CheckInteger, 1, ++/*332758*/ OPC_CheckType, MVT::i32, ++/*332760*/ OPC_MoveParent, ++/*332761*/ OPC_MoveChild, 23, ++/*332763*/ OPC_CheckInteger, 1, ++/*332765*/ OPC_CheckType, MVT::i32, ++/*332767*/ OPC_MoveParent, ++/*332768*/ OPC_MoveChild, 24, ++/*332770*/ OPC_CheckInteger, 1, ++/*332772*/ OPC_CheckType, MVT::i32, ++/*332774*/ OPC_MoveParent, ++/*332775*/ OPC_MoveChild, 25, ++/*332777*/ OPC_CheckInteger, 1, ++/*332779*/ OPC_CheckType, MVT::i32, ++/*332781*/ OPC_MoveParent, ++/*332782*/ OPC_MoveChild, 26, ++/*332784*/ OPC_CheckInteger, 1, ++/*332786*/ OPC_CheckType, MVT::i32, ++/*332788*/ OPC_MoveParent, ++/*332789*/ OPC_MoveChild, 27, ++/*332791*/ OPC_CheckInteger, 1, ++/*332793*/ OPC_CheckType, MVT::i32, ++/*332795*/ OPC_MoveParent, ++/*332796*/ OPC_MoveChild, 28, ++/*332798*/ OPC_CheckInteger, 1, ++/*332800*/ OPC_CheckType, MVT::i32, ++/*332802*/ OPC_MoveParent, ++/*332803*/ OPC_MoveChild, 29, ++/*332805*/ OPC_CheckInteger, 1, ++/*332807*/ OPC_CheckType, MVT::i32, ++/*332809*/ OPC_MoveParent, ++/*332810*/ OPC_MoveChild, 30, ++/*332812*/ OPC_CheckInteger, 1, ++/*332814*/ OPC_CheckType, MVT::i32, ++/*332816*/ OPC_MoveParent, ++/*332817*/ OPC_MoveChild, 31, ++/*332819*/ OPC_CheckInteger, 1, ++/*332821*/ OPC_CheckType, MVT::i32, ++/*332823*/ OPC_MoveParent, ++/*332824*/ OPC_CheckType, MVT::v32i8, ++/*332826*/ OPC_MoveParent, ++/*332827*/ OPC_CheckType, MVT::v32i8, ++/*332829*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*332831*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*332839*/ /*Scope*/ 57|128,3/*441*/, /*->333282*/ ++/*332841*/ OPC_CheckChild0Same, 0, ++/*332843*/ OPC_MoveChild1, ++/*332844*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*332847*/ OPC_CheckChild0Integer, 1, ++/*332849*/ OPC_CheckChild0Type, MVT::i32, ++/*332851*/ OPC_CheckChild1Integer, 1, ++/*332853*/ OPC_CheckChild1Type, MVT::i32, ++/*332855*/ OPC_CheckChild2Integer, 1, ++/*332857*/ OPC_CheckChild2Type, MVT::i32, ++/*332859*/ OPC_CheckChild3Integer, 1, ++/*332861*/ OPC_CheckChild3Type, MVT::i32, ++/*332863*/ OPC_CheckChild4Integer, 1, ++/*332865*/ OPC_CheckChild4Type, MVT::i32, ++/*332867*/ OPC_MoveChild5, ++/*332868*/ OPC_CheckInteger, 1, ++/*332870*/ OPC_CheckType, MVT::i32, ++/*332872*/ OPC_MoveParent, ++/*332873*/ OPC_MoveChild6, ++/*332874*/ OPC_CheckInteger, 1, ++/*332876*/ OPC_CheckType, MVT::i32, ++/*332878*/ OPC_MoveParent, ++/*332879*/ OPC_MoveChild7, ++/*332880*/ OPC_CheckInteger, 1, ++/*332882*/ OPC_CheckType, MVT::i32, ++/*332884*/ OPC_MoveParent, ++/*332885*/ OPC_MoveChild, 8, ++/*332887*/ OPC_CheckInteger, 1, ++/*332889*/ OPC_CheckType, MVT::i32, ++/*332891*/ OPC_MoveParent, ++/*332892*/ OPC_MoveChild, 9, ++/*332894*/ OPC_CheckInteger, 1, ++/*332896*/ OPC_CheckType, MVT::i32, ++/*332898*/ OPC_MoveParent, ++/*332899*/ OPC_MoveChild, 10, ++/*332901*/ OPC_CheckInteger, 1, ++/*332903*/ OPC_CheckType, MVT::i32, ++/*332905*/ OPC_MoveParent, ++/*332906*/ OPC_MoveChild, 11, ++/*332908*/ OPC_CheckInteger, 1, ++/*332910*/ OPC_CheckType, MVT::i32, ++/*332912*/ OPC_MoveParent, ++/*332913*/ OPC_MoveChild, 12, ++/*332915*/ OPC_CheckInteger, 1, ++/*332917*/ OPC_CheckType, MVT::i32, ++/*332919*/ OPC_MoveParent, ++/*332920*/ OPC_MoveChild, 13, ++/*332922*/ OPC_CheckInteger, 1, ++/*332924*/ OPC_CheckType, MVT::i32, ++/*332926*/ OPC_MoveParent, ++/*332927*/ OPC_MoveChild, 14, ++/*332929*/ OPC_CheckInteger, 1, ++/*332931*/ OPC_CheckType, MVT::i32, ++/*332933*/ OPC_MoveParent, ++/*332934*/ OPC_MoveChild, 15, ++/*332936*/ OPC_CheckInteger, 1, ++/*332938*/ OPC_CheckType, MVT::i32, ++/*332940*/ OPC_MoveParent, ++/*332941*/ OPC_MoveChild, 16, ++/*332943*/ OPC_CheckInteger, 1, ++/*332945*/ OPC_CheckType, MVT::i32, ++/*332947*/ OPC_MoveParent, ++/*332948*/ OPC_MoveChild, 17, ++/*332950*/ OPC_CheckInteger, 1, ++/*332952*/ OPC_CheckType, MVT::i32, ++/*332954*/ OPC_MoveParent, ++/*332955*/ OPC_MoveChild, 18, ++/*332957*/ OPC_CheckInteger, 1, ++/*332959*/ OPC_CheckType, MVT::i32, ++/*332961*/ OPC_MoveParent, ++/*332962*/ OPC_MoveChild, 19, ++/*332964*/ OPC_CheckInteger, 1, ++/*332966*/ OPC_CheckType, MVT::i32, ++/*332968*/ OPC_MoveParent, ++/*332969*/ OPC_MoveChild, 20, ++/*332971*/ OPC_CheckInteger, 1, ++/*332973*/ OPC_CheckType, MVT::i32, ++/*332975*/ OPC_MoveParent, ++/*332976*/ OPC_MoveChild, 21, ++/*332978*/ OPC_CheckInteger, 1, ++/*332980*/ OPC_CheckType, MVT::i32, ++/*332982*/ OPC_MoveParent, ++/*332983*/ OPC_MoveChild, 22, ++/*332985*/ OPC_CheckInteger, 1, ++/*332987*/ OPC_CheckType, MVT::i32, ++/*332989*/ OPC_MoveParent, ++/*332990*/ OPC_MoveChild, 23, ++/*332992*/ OPC_CheckInteger, 1, ++/*332994*/ OPC_CheckType, MVT::i32, ++/*332996*/ OPC_MoveParent, ++/*332997*/ OPC_MoveChild, 24, ++/*332999*/ OPC_CheckInteger, 1, ++/*333001*/ OPC_CheckType, MVT::i32, ++/*333003*/ OPC_MoveParent, ++/*333004*/ OPC_MoveChild, 25, ++/*333006*/ OPC_CheckInteger, 1, ++/*333008*/ OPC_CheckType, MVT::i32, ++/*333010*/ OPC_MoveParent, ++/*333011*/ OPC_MoveChild, 26, ++/*333013*/ OPC_CheckInteger, 1, ++/*333015*/ OPC_CheckType, MVT::i32, ++/*333017*/ OPC_MoveParent, ++/*333018*/ OPC_MoveChild, 27, ++/*333020*/ OPC_CheckInteger, 1, ++/*333022*/ OPC_CheckType, MVT::i32, ++/*333024*/ OPC_MoveParent, ++/*333025*/ OPC_MoveChild, 28, ++/*333027*/ OPC_CheckInteger, 1, ++/*333029*/ OPC_CheckType, MVT::i32, ++/*333031*/ OPC_MoveParent, ++/*333032*/ OPC_MoveChild, 29, ++/*333034*/ OPC_CheckInteger, 1, ++/*333036*/ OPC_CheckType, MVT::i32, ++/*333038*/ OPC_MoveParent, ++/*333039*/ OPC_MoveChild, 30, ++/*333041*/ OPC_CheckInteger, 1, ++/*333043*/ OPC_CheckType, MVT::i32, ++/*333045*/ OPC_MoveParent, ++/*333046*/ OPC_MoveChild, 31, ++/*333048*/ OPC_CheckInteger, 1, ++/*333050*/ OPC_CheckType, MVT::i32, ++/*333052*/ OPC_MoveParent, ++/*333053*/ OPC_MoveParent, ++/*333054*/ OPC_MoveParent, ++/*333055*/ OPC_MoveParent, ++/*333056*/ OPC_MoveParent, ++/*333057*/ OPC_MoveChild1, ++/*333058*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*333061*/ OPC_CheckChild0Integer, 1, ++/*333063*/ OPC_CheckChild0Type, MVT::i32, ++/*333065*/ OPC_CheckChild1Integer, 1, ++/*333067*/ OPC_CheckChild1Type, MVT::i32, ++/*333069*/ OPC_CheckChild2Integer, 1, ++/*333071*/ OPC_CheckChild2Type, MVT::i32, ++/*333073*/ OPC_CheckChild3Integer, 1, ++/*333075*/ OPC_CheckChild3Type, MVT::i32, ++/*333077*/ OPC_CheckChild4Integer, 1, ++/*333079*/ OPC_CheckChild4Type, MVT::i32, ++/*333081*/ OPC_MoveChild5, ++/*333082*/ OPC_CheckInteger, 1, ++/*333084*/ OPC_CheckType, MVT::i32, ++/*333086*/ OPC_MoveParent, ++/*333087*/ OPC_MoveChild6, ++/*333088*/ OPC_CheckInteger, 1, ++/*333090*/ OPC_CheckType, MVT::i32, ++/*333092*/ OPC_MoveParent, ++/*333093*/ OPC_MoveChild7, ++/*333094*/ OPC_CheckInteger, 1, ++/*333096*/ OPC_CheckType, MVT::i32, ++/*333098*/ OPC_MoveParent, ++/*333099*/ OPC_MoveChild, 8, ++/*333101*/ OPC_CheckInteger, 1, ++/*333103*/ OPC_CheckType, MVT::i32, ++/*333105*/ OPC_MoveParent, ++/*333106*/ OPC_MoveChild, 9, ++/*333108*/ OPC_CheckInteger, 1, ++/*333110*/ OPC_CheckType, MVT::i32, ++/*333112*/ OPC_MoveParent, ++/*333113*/ OPC_MoveChild, 10, ++/*333115*/ OPC_CheckInteger, 1, ++/*333117*/ OPC_CheckType, MVT::i32, ++/*333119*/ OPC_MoveParent, ++/*333120*/ OPC_MoveChild, 11, ++/*333122*/ OPC_CheckInteger, 1, ++/*333124*/ OPC_CheckType, MVT::i32, ++/*333126*/ OPC_MoveParent, ++/*333127*/ OPC_MoveChild, 12, ++/*333129*/ OPC_CheckInteger, 1, ++/*333131*/ OPC_CheckType, MVT::i32, ++/*333133*/ OPC_MoveParent, ++/*333134*/ OPC_MoveChild, 13, ++/*333136*/ OPC_CheckInteger, 1, ++/*333138*/ OPC_CheckType, MVT::i32, ++/*333140*/ OPC_MoveParent, ++/*333141*/ OPC_MoveChild, 14, ++/*333143*/ OPC_CheckInteger, 1, ++/*333145*/ OPC_CheckType, MVT::i32, ++/*333147*/ OPC_MoveParent, ++/*333148*/ OPC_MoveChild, 15, ++/*333150*/ OPC_CheckInteger, 1, ++/*333152*/ OPC_CheckType, MVT::i32, ++/*333154*/ OPC_MoveParent, ++/*333155*/ OPC_MoveChild, 16, ++/*333157*/ OPC_CheckInteger, 1, ++/*333159*/ OPC_CheckType, MVT::i32, ++/*333161*/ OPC_MoveParent, ++/*333162*/ OPC_MoveChild, 17, ++/*333164*/ OPC_CheckInteger, 1, ++/*333166*/ OPC_CheckType, MVT::i32, ++/*333168*/ OPC_MoveParent, ++/*333169*/ OPC_MoveChild, 18, ++/*333171*/ OPC_CheckInteger, 1, ++/*333173*/ OPC_CheckType, MVT::i32, ++/*333175*/ OPC_MoveParent, ++/*333176*/ OPC_MoveChild, 19, ++/*333178*/ OPC_CheckInteger, 1, ++/*333180*/ OPC_CheckType, MVT::i32, ++/*333182*/ OPC_MoveParent, ++/*333183*/ OPC_MoveChild, 20, ++/*333185*/ OPC_CheckInteger, 1, ++/*333187*/ OPC_CheckType, MVT::i32, ++/*333189*/ OPC_MoveParent, ++/*333190*/ OPC_MoveChild, 21, ++/*333192*/ OPC_CheckInteger, 1, ++/*333194*/ OPC_CheckType, MVT::i32, ++/*333196*/ OPC_MoveParent, ++/*333197*/ OPC_MoveChild, 22, ++/*333199*/ OPC_CheckInteger, 1, ++/*333201*/ OPC_CheckType, MVT::i32, ++/*333203*/ OPC_MoveParent, ++/*333204*/ OPC_MoveChild, 23, ++/*333206*/ OPC_CheckInteger, 1, ++/*333208*/ OPC_CheckType, MVT::i32, ++/*333210*/ OPC_MoveParent, ++/*333211*/ OPC_MoveChild, 24, ++/*333213*/ OPC_CheckInteger, 1, ++/*333215*/ OPC_CheckType, MVT::i32, ++/*333217*/ OPC_MoveParent, ++/*333218*/ OPC_MoveChild, 25, ++/*333220*/ OPC_CheckInteger, 1, ++/*333222*/ OPC_CheckType, MVT::i32, ++/*333224*/ OPC_MoveParent, ++/*333225*/ OPC_MoveChild, 26, ++/*333227*/ OPC_CheckInteger, 1, ++/*333229*/ OPC_CheckType, MVT::i32, ++/*333231*/ OPC_MoveParent, ++/*333232*/ OPC_MoveChild, 27, ++/*333234*/ OPC_CheckInteger, 1, ++/*333236*/ OPC_CheckType, MVT::i32, ++/*333238*/ OPC_MoveParent, ++/*333239*/ OPC_MoveChild, 28, ++/*333241*/ OPC_CheckInteger, 1, ++/*333243*/ OPC_CheckType, MVT::i32, ++/*333245*/ OPC_MoveParent, ++/*333246*/ OPC_MoveChild, 29, ++/*333248*/ OPC_CheckInteger, 1, ++/*333250*/ OPC_CheckType, MVT::i32, ++/*333252*/ OPC_MoveParent, ++/*333253*/ OPC_MoveChild, 30, ++/*333255*/ OPC_CheckInteger, 1, ++/*333257*/ OPC_CheckType, MVT::i32, ++/*333259*/ OPC_MoveParent, ++/*333260*/ OPC_MoveChild, 31, ++/*333262*/ OPC_CheckInteger, 1, ++/*333264*/ OPC_CheckType, MVT::i32, ++/*333266*/ OPC_MoveParent, ++/*333267*/ OPC_CheckType, MVT::v32i8, ++/*333269*/ OPC_MoveParent, ++/*333270*/ OPC_CheckType, MVT::v32i8, ++/*333272*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*333274*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*333282*/ 0, /*End of Scope*/ ++/*333283*/ /*Scope*/ 126|128,6/*894*/, /*->334179*/ ++/*333285*/ OPC_CheckChild0Same, 0, ++/*333287*/ OPC_MoveChild1, ++/*333288*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*333291*/ OPC_Scope, 57|128,3/*441*/, /*->333735*/ // 2 children in Scope ++/*333294*/ OPC_MoveChild0, ++/*333295*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*333298*/ OPC_CheckChild0Integer, 1, ++/*333300*/ OPC_CheckChild0Type, MVT::i32, ++/*333302*/ OPC_CheckChild1Integer, 1, ++/*333304*/ OPC_CheckChild1Type, MVT::i32, ++/*333306*/ OPC_CheckChild2Integer, 1, ++/*333308*/ OPC_CheckChild2Type, MVT::i32, ++/*333310*/ OPC_CheckChild3Integer, 1, ++/*333312*/ OPC_CheckChild3Type, MVT::i32, ++/*333314*/ OPC_CheckChild4Integer, 1, ++/*333316*/ OPC_CheckChild4Type, MVT::i32, ++/*333318*/ OPC_MoveChild5, ++/*333319*/ OPC_CheckInteger, 1, ++/*333321*/ OPC_CheckType, MVT::i32, ++/*333323*/ OPC_MoveParent, ++/*333324*/ OPC_MoveChild6, ++/*333325*/ OPC_CheckInteger, 1, ++/*333327*/ OPC_CheckType, MVT::i32, ++/*333329*/ OPC_MoveParent, ++/*333330*/ OPC_MoveChild7, ++/*333331*/ OPC_CheckInteger, 1, ++/*333333*/ OPC_CheckType, MVT::i32, ++/*333335*/ OPC_MoveParent, ++/*333336*/ OPC_MoveChild, 8, ++/*333338*/ OPC_CheckInteger, 1, ++/*333340*/ OPC_CheckType, MVT::i32, ++/*333342*/ OPC_MoveParent, ++/*333343*/ OPC_MoveChild, 9, ++/*333345*/ OPC_CheckInteger, 1, ++/*333347*/ OPC_CheckType, MVT::i32, ++/*333349*/ OPC_MoveParent, ++/*333350*/ OPC_MoveChild, 10, ++/*333352*/ OPC_CheckInteger, 1, ++/*333354*/ OPC_CheckType, MVT::i32, ++/*333356*/ OPC_MoveParent, ++/*333357*/ OPC_MoveChild, 11, ++/*333359*/ OPC_CheckInteger, 1, ++/*333361*/ OPC_CheckType, MVT::i32, ++/*333363*/ OPC_MoveParent, ++/*333364*/ OPC_MoveChild, 12, ++/*333366*/ OPC_CheckInteger, 1, ++/*333368*/ OPC_CheckType, MVT::i32, ++/*333370*/ OPC_MoveParent, ++/*333371*/ OPC_MoveChild, 13, ++/*333373*/ OPC_CheckInteger, 1, ++/*333375*/ OPC_CheckType, MVT::i32, ++/*333377*/ OPC_MoveParent, ++/*333378*/ OPC_MoveChild, 14, ++/*333380*/ OPC_CheckInteger, 1, ++/*333382*/ OPC_CheckType, MVT::i32, ++/*333384*/ OPC_MoveParent, ++/*333385*/ OPC_MoveChild, 15, ++/*333387*/ OPC_CheckInteger, 1, ++/*333389*/ OPC_CheckType, MVT::i32, ++/*333391*/ OPC_MoveParent, ++/*333392*/ OPC_MoveChild, 16, ++/*333394*/ OPC_CheckInteger, 1, ++/*333396*/ OPC_CheckType, MVT::i32, ++/*333398*/ OPC_MoveParent, ++/*333399*/ OPC_MoveChild, 17, ++/*333401*/ OPC_CheckInteger, 1, ++/*333403*/ OPC_CheckType, MVT::i32, ++/*333405*/ OPC_MoveParent, ++/*333406*/ OPC_MoveChild, 18, ++/*333408*/ OPC_CheckInteger, 1, ++/*333410*/ OPC_CheckType, MVT::i32, ++/*333412*/ OPC_MoveParent, ++/*333413*/ OPC_MoveChild, 19, ++/*333415*/ OPC_CheckInteger, 1, ++/*333417*/ OPC_CheckType, MVT::i32, ++/*333419*/ OPC_MoveParent, ++/*333420*/ OPC_MoveChild, 20, ++/*333422*/ OPC_CheckInteger, 1, ++/*333424*/ OPC_CheckType, MVT::i32, ++/*333426*/ OPC_MoveParent, ++/*333427*/ OPC_MoveChild, 21, ++/*333429*/ OPC_CheckInteger, 1, ++/*333431*/ OPC_CheckType, MVT::i32, ++/*333433*/ OPC_MoveParent, ++/*333434*/ OPC_MoveChild, 22, ++/*333436*/ OPC_CheckInteger, 1, ++/*333438*/ OPC_CheckType, MVT::i32, ++/*333440*/ OPC_MoveParent, ++/*333441*/ OPC_MoveChild, 23, ++/*333443*/ OPC_CheckInteger, 1, ++/*333445*/ OPC_CheckType, MVT::i32, ++/*333447*/ OPC_MoveParent, ++/*333448*/ OPC_MoveChild, 24, ++/*333450*/ OPC_CheckInteger, 1, ++/*333452*/ OPC_CheckType, MVT::i32, ++/*333454*/ OPC_MoveParent, ++/*333455*/ OPC_MoveChild, 25, ++/*333457*/ OPC_CheckInteger, 1, ++/*333459*/ OPC_CheckType, MVT::i32, ++/*333461*/ OPC_MoveParent, ++/*333462*/ OPC_MoveChild, 26, ++/*333464*/ OPC_CheckInteger, 1, ++/*333466*/ OPC_CheckType, MVT::i32, ++/*333468*/ OPC_MoveParent, ++/*333469*/ OPC_MoveChild, 27, ++/*333471*/ OPC_CheckInteger, 1, ++/*333473*/ OPC_CheckType, MVT::i32, ++/*333475*/ OPC_MoveParent, ++/*333476*/ OPC_MoveChild, 28, ++/*333478*/ OPC_CheckInteger, 1, ++/*333480*/ OPC_CheckType, MVT::i32, ++/*333482*/ OPC_MoveParent, ++/*333483*/ OPC_MoveChild, 29, ++/*333485*/ OPC_CheckInteger, 1, ++/*333487*/ OPC_CheckType, MVT::i32, ++/*333489*/ OPC_MoveParent, ++/*333490*/ OPC_MoveChild, 30, ++/*333492*/ OPC_CheckInteger, 1, ++/*333494*/ OPC_CheckType, MVT::i32, ++/*333496*/ OPC_MoveParent, ++/*333497*/ OPC_MoveChild, 31, ++/*333499*/ OPC_CheckInteger, 1, ++/*333501*/ OPC_CheckType, MVT::i32, ++/*333503*/ OPC_MoveParent, ++/*333504*/ OPC_MoveParent, ++/*333505*/ OPC_CheckChild1Same, 1, ++/*333507*/ OPC_MoveParent, ++/*333508*/ OPC_MoveParent, ++/*333509*/ OPC_MoveParent, ++/*333510*/ OPC_MoveChild1, ++/*333511*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*333514*/ OPC_CheckChild0Integer, 1, ++/*333516*/ OPC_CheckChild0Type, MVT::i32, ++/*333518*/ OPC_CheckChild1Integer, 1, ++/*333520*/ OPC_CheckChild1Type, MVT::i32, ++/*333522*/ OPC_CheckChild2Integer, 1, ++/*333524*/ OPC_CheckChild2Type, MVT::i32, ++/*333526*/ OPC_CheckChild3Integer, 1, ++/*333528*/ OPC_CheckChild3Type, MVT::i32, ++/*333530*/ OPC_CheckChild4Integer, 1, ++/*333532*/ OPC_CheckChild4Type, MVT::i32, ++/*333534*/ OPC_MoveChild5, ++/*333535*/ OPC_CheckInteger, 1, ++/*333537*/ OPC_CheckType, MVT::i32, ++/*333539*/ OPC_MoveParent, ++/*333540*/ OPC_MoveChild6, ++/*333541*/ OPC_CheckInteger, 1, ++/*333543*/ OPC_CheckType, MVT::i32, ++/*333545*/ OPC_MoveParent, ++/*333546*/ OPC_MoveChild7, ++/*333547*/ OPC_CheckInteger, 1, ++/*333549*/ OPC_CheckType, MVT::i32, ++/*333551*/ OPC_MoveParent, ++/*333552*/ OPC_MoveChild, 8, ++/*333554*/ OPC_CheckInteger, 1, ++/*333556*/ OPC_CheckType, MVT::i32, ++/*333558*/ OPC_MoveParent, ++/*333559*/ OPC_MoveChild, 9, ++/*333561*/ OPC_CheckInteger, 1, ++/*333563*/ OPC_CheckType, MVT::i32, ++/*333565*/ OPC_MoveParent, ++/*333566*/ OPC_MoveChild, 10, ++/*333568*/ OPC_CheckInteger, 1, ++/*333570*/ OPC_CheckType, MVT::i32, ++/*333572*/ OPC_MoveParent, ++/*333573*/ OPC_MoveChild, 11, ++/*333575*/ OPC_CheckInteger, 1, ++/*333577*/ OPC_CheckType, MVT::i32, ++/*333579*/ OPC_MoveParent, ++/*333580*/ OPC_MoveChild, 12, ++/*333582*/ OPC_CheckInteger, 1, ++/*333584*/ OPC_CheckType, MVT::i32, ++/*333586*/ OPC_MoveParent, ++/*333587*/ OPC_MoveChild, 13, ++/*333589*/ OPC_CheckInteger, 1, ++/*333591*/ OPC_CheckType, MVT::i32, ++/*333593*/ OPC_MoveParent, ++/*333594*/ OPC_MoveChild, 14, ++/*333596*/ OPC_CheckInteger, 1, ++/*333598*/ OPC_CheckType, MVT::i32, ++/*333600*/ OPC_MoveParent, ++/*333601*/ OPC_MoveChild, 15, ++/*333603*/ OPC_CheckInteger, 1, ++/*333605*/ OPC_CheckType, MVT::i32, ++/*333607*/ OPC_MoveParent, ++/*333608*/ OPC_MoveChild, 16, ++/*333610*/ OPC_CheckInteger, 1, ++/*333612*/ OPC_CheckType, MVT::i32, ++/*333614*/ OPC_MoveParent, ++/*333615*/ OPC_MoveChild, 17, ++/*333617*/ OPC_CheckInteger, 1, ++/*333619*/ OPC_CheckType, MVT::i32, ++/*333621*/ OPC_MoveParent, ++/*333622*/ OPC_MoveChild, 18, ++/*333624*/ OPC_CheckInteger, 1, ++/*333626*/ OPC_CheckType, MVT::i32, ++/*333628*/ OPC_MoveParent, ++/*333629*/ OPC_MoveChild, 19, ++/*333631*/ OPC_CheckInteger, 1, ++/*333633*/ OPC_CheckType, MVT::i32, ++/*333635*/ OPC_MoveParent, ++/*333636*/ OPC_MoveChild, 20, ++/*333638*/ OPC_CheckInteger, 1, ++/*333640*/ OPC_CheckType, MVT::i32, ++/*333642*/ OPC_MoveParent, ++/*333643*/ OPC_MoveChild, 21, ++/*333645*/ OPC_CheckInteger, 1, ++/*333647*/ OPC_CheckType, MVT::i32, ++/*333649*/ OPC_MoveParent, ++/*333650*/ OPC_MoveChild, 22, ++/*333652*/ OPC_CheckInteger, 1, ++/*333654*/ OPC_CheckType, MVT::i32, ++/*333656*/ OPC_MoveParent, ++/*333657*/ OPC_MoveChild, 23, ++/*333659*/ OPC_CheckInteger, 1, ++/*333661*/ OPC_CheckType, MVT::i32, ++/*333663*/ OPC_MoveParent, ++/*333664*/ OPC_MoveChild, 24, ++/*333666*/ OPC_CheckInteger, 1, ++/*333668*/ OPC_CheckType, MVT::i32, ++/*333670*/ OPC_MoveParent, ++/*333671*/ OPC_MoveChild, 25, ++/*333673*/ OPC_CheckInteger, 1, ++/*333675*/ OPC_CheckType, MVT::i32, ++/*333677*/ OPC_MoveParent, ++/*333678*/ OPC_MoveChild, 26, ++/*333680*/ OPC_CheckInteger, 1, ++/*333682*/ OPC_CheckType, MVT::i32, ++/*333684*/ OPC_MoveParent, ++/*333685*/ OPC_MoveChild, 27, ++/*333687*/ OPC_CheckInteger, 1, ++/*333689*/ OPC_CheckType, MVT::i32, ++/*333691*/ OPC_MoveParent, ++/*333692*/ OPC_MoveChild, 28, ++/*333694*/ OPC_CheckInteger, 1, ++/*333696*/ OPC_CheckType, MVT::i32, ++/*333698*/ OPC_MoveParent, ++/*333699*/ OPC_MoveChild, 29, ++/*333701*/ OPC_CheckInteger, 1, ++/*333703*/ OPC_CheckType, MVT::i32, ++/*333705*/ OPC_MoveParent, ++/*333706*/ OPC_MoveChild, 30, ++/*333708*/ OPC_CheckInteger, 1, ++/*333710*/ OPC_CheckType, MVT::i32, ++/*333712*/ OPC_MoveParent, ++/*333713*/ OPC_MoveChild, 31, ++/*333715*/ OPC_CheckInteger, 1, ++/*333717*/ OPC_CheckType, MVT::i32, ++/*333719*/ OPC_MoveParent, ++/*333720*/ OPC_CheckType, MVT::v32i8, ++/*333722*/ OPC_MoveParent, ++/*333723*/ OPC_CheckType, MVT::v32i8, ++/*333725*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*333727*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*333735*/ /*Scope*/ 57|128,3/*441*/, /*->334178*/ ++/*333737*/ OPC_CheckChild0Same, 1, ++/*333739*/ OPC_MoveChild1, ++/*333740*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*333743*/ OPC_CheckChild0Integer, 1, ++/*333745*/ OPC_CheckChild0Type, MVT::i32, ++/*333747*/ OPC_CheckChild1Integer, 1, ++/*333749*/ OPC_CheckChild1Type, MVT::i32, ++/*333751*/ OPC_CheckChild2Integer, 1, ++/*333753*/ OPC_CheckChild2Type, MVT::i32, ++/*333755*/ OPC_CheckChild3Integer, 1, ++/*333757*/ OPC_CheckChild3Type, MVT::i32, ++/*333759*/ OPC_CheckChild4Integer, 1, ++/*333761*/ OPC_CheckChild4Type, MVT::i32, ++/*333763*/ OPC_MoveChild5, ++/*333764*/ OPC_CheckInteger, 1, ++/*333766*/ OPC_CheckType, MVT::i32, ++/*333768*/ OPC_MoveParent, ++/*333769*/ OPC_MoveChild6, ++/*333770*/ OPC_CheckInteger, 1, ++/*333772*/ OPC_CheckType, MVT::i32, ++/*333774*/ OPC_MoveParent, ++/*333775*/ OPC_MoveChild7, ++/*333776*/ OPC_CheckInteger, 1, ++/*333778*/ OPC_CheckType, MVT::i32, ++/*333780*/ OPC_MoveParent, ++/*333781*/ OPC_MoveChild, 8, ++/*333783*/ OPC_CheckInteger, 1, ++/*333785*/ OPC_CheckType, MVT::i32, ++/*333787*/ OPC_MoveParent, ++/*333788*/ OPC_MoveChild, 9, ++/*333790*/ OPC_CheckInteger, 1, ++/*333792*/ OPC_CheckType, MVT::i32, ++/*333794*/ OPC_MoveParent, ++/*333795*/ OPC_MoveChild, 10, ++/*333797*/ OPC_CheckInteger, 1, ++/*333799*/ OPC_CheckType, MVT::i32, ++/*333801*/ OPC_MoveParent, ++/*333802*/ OPC_MoveChild, 11, ++/*333804*/ OPC_CheckInteger, 1, ++/*333806*/ OPC_CheckType, MVT::i32, ++/*333808*/ OPC_MoveParent, ++/*333809*/ OPC_MoveChild, 12, ++/*333811*/ OPC_CheckInteger, 1, ++/*333813*/ OPC_CheckType, MVT::i32, ++/*333815*/ OPC_MoveParent, ++/*333816*/ OPC_MoveChild, 13, ++/*333818*/ OPC_CheckInteger, 1, ++/*333820*/ OPC_CheckType, MVT::i32, ++/*333822*/ OPC_MoveParent, ++/*333823*/ OPC_MoveChild, 14, ++/*333825*/ OPC_CheckInteger, 1, ++/*333827*/ OPC_CheckType, MVT::i32, ++/*333829*/ OPC_MoveParent, ++/*333830*/ OPC_MoveChild, 15, ++/*333832*/ OPC_CheckInteger, 1, ++/*333834*/ OPC_CheckType, MVT::i32, ++/*333836*/ OPC_MoveParent, ++/*333837*/ OPC_MoveChild, 16, ++/*333839*/ OPC_CheckInteger, 1, ++/*333841*/ OPC_CheckType, MVT::i32, ++/*333843*/ OPC_MoveParent, ++/*333844*/ OPC_MoveChild, 17, ++/*333846*/ OPC_CheckInteger, 1, ++/*333848*/ OPC_CheckType, MVT::i32, ++/*333850*/ OPC_MoveParent, ++/*333851*/ OPC_MoveChild, 18, ++/*333853*/ OPC_CheckInteger, 1, ++/*333855*/ OPC_CheckType, MVT::i32, ++/*333857*/ OPC_MoveParent, ++/*333858*/ OPC_MoveChild, 19, ++/*333860*/ OPC_CheckInteger, 1, ++/*333862*/ OPC_CheckType, MVT::i32, ++/*333864*/ OPC_MoveParent, ++/*333865*/ OPC_MoveChild, 20, ++/*333867*/ OPC_CheckInteger, 1, ++/*333869*/ OPC_CheckType, MVT::i32, ++/*333871*/ OPC_MoveParent, ++/*333872*/ OPC_MoveChild, 21, ++/*333874*/ OPC_CheckInteger, 1, ++/*333876*/ OPC_CheckType, MVT::i32, ++/*333878*/ OPC_MoveParent, ++/*333879*/ OPC_MoveChild, 22, ++/*333881*/ OPC_CheckInteger, 1, ++/*333883*/ OPC_CheckType, MVT::i32, ++/*333885*/ OPC_MoveParent, ++/*333886*/ OPC_MoveChild, 23, ++/*333888*/ OPC_CheckInteger, 1, ++/*333890*/ OPC_CheckType, MVT::i32, ++/*333892*/ OPC_MoveParent, ++/*333893*/ OPC_MoveChild, 24, ++/*333895*/ OPC_CheckInteger, 1, ++/*333897*/ OPC_CheckType, MVT::i32, ++/*333899*/ OPC_MoveParent, ++/*333900*/ OPC_MoveChild, 25, ++/*333902*/ OPC_CheckInteger, 1, ++/*333904*/ OPC_CheckType, MVT::i32, ++/*333906*/ OPC_MoveParent, ++/*333907*/ OPC_MoveChild, 26, ++/*333909*/ OPC_CheckInteger, 1, ++/*333911*/ OPC_CheckType, MVT::i32, ++/*333913*/ OPC_MoveParent, ++/*333914*/ OPC_MoveChild, 27, ++/*333916*/ OPC_CheckInteger, 1, ++/*333918*/ OPC_CheckType, MVT::i32, ++/*333920*/ OPC_MoveParent, ++/*333921*/ OPC_MoveChild, 28, ++/*333923*/ OPC_CheckInteger, 1, ++/*333925*/ OPC_CheckType, MVT::i32, ++/*333927*/ OPC_MoveParent, ++/*333928*/ OPC_MoveChild, 29, ++/*333930*/ OPC_CheckInteger, 1, ++/*333932*/ OPC_CheckType, MVT::i32, ++/*333934*/ OPC_MoveParent, ++/*333935*/ OPC_MoveChild, 30, ++/*333937*/ OPC_CheckInteger, 1, ++/*333939*/ OPC_CheckType, MVT::i32, ++/*333941*/ OPC_MoveParent, ++/*333942*/ OPC_MoveChild, 31, ++/*333944*/ OPC_CheckInteger, 1, ++/*333946*/ OPC_CheckType, MVT::i32, ++/*333948*/ OPC_MoveParent, ++/*333949*/ OPC_MoveParent, ++/*333950*/ OPC_MoveParent, ++/*333951*/ OPC_MoveParent, ++/*333952*/ OPC_MoveParent, ++/*333953*/ OPC_MoveChild1, ++/*333954*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*333957*/ OPC_CheckChild0Integer, 1, ++/*333959*/ OPC_CheckChild0Type, MVT::i32, ++/*333961*/ OPC_CheckChild1Integer, 1, ++/*333963*/ OPC_CheckChild1Type, MVT::i32, ++/*333965*/ OPC_CheckChild2Integer, 1, ++/*333967*/ OPC_CheckChild2Type, MVT::i32, ++/*333969*/ OPC_CheckChild3Integer, 1, ++/*333971*/ OPC_CheckChild3Type, MVT::i32, ++/*333973*/ OPC_CheckChild4Integer, 1, ++/*333975*/ OPC_CheckChild4Type, MVT::i32, ++/*333977*/ OPC_MoveChild5, ++/*333978*/ OPC_CheckInteger, 1, ++/*333980*/ OPC_CheckType, MVT::i32, ++/*333982*/ OPC_MoveParent, ++/*333983*/ OPC_MoveChild6, ++/*333984*/ OPC_CheckInteger, 1, ++/*333986*/ OPC_CheckType, MVT::i32, ++/*333988*/ OPC_MoveParent, ++/*333989*/ OPC_MoveChild7, ++/*333990*/ OPC_CheckInteger, 1, ++/*333992*/ OPC_CheckType, MVT::i32, ++/*333994*/ OPC_MoveParent, ++/*333995*/ OPC_MoveChild, 8, ++/*333997*/ OPC_CheckInteger, 1, ++/*333999*/ OPC_CheckType, MVT::i32, ++/*334001*/ OPC_MoveParent, ++/*334002*/ OPC_MoveChild, 9, ++/*334004*/ OPC_CheckInteger, 1, ++/*334006*/ OPC_CheckType, MVT::i32, ++/*334008*/ OPC_MoveParent, ++/*334009*/ OPC_MoveChild, 10, ++/*334011*/ OPC_CheckInteger, 1, ++/*334013*/ OPC_CheckType, MVT::i32, ++/*334015*/ OPC_MoveParent, ++/*334016*/ OPC_MoveChild, 11, ++/*334018*/ OPC_CheckInteger, 1, ++/*334020*/ OPC_CheckType, MVT::i32, ++/*334022*/ OPC_MoveParent, ++/*334023*/ OPC_MoveChild, 12, ++/*334025*/ OPC_CheckInteger, 1, ++/*334027*/ OPC_CheckType, MVT::i32, ++/*334029*/ OPC_MoveParent, ++/*334030*/ OPC_MoveChild, 13, ++/*334032*/ OPC_CheckInteger, 1, ++/*334034*/ OPC_CheckType, MVT::i32, ++/*334036*/ OPC_MoveParent, ++/*334037*/ OPC_MoveChild, 14, ++/*334039*/ OPC_CheckInteger, 1, ++/*334041*/ OPC_CheckType, MVT::i32, ++/*334043*/ OPC_MoveParent, ++/*334044*/ OPC_MoveChild, 15, ++/*334046*/ OPC_CheckInteger, 1, ++/*334048*/ OPC_CheckType, MVT::i32, ++/*334050*/ OPC_MoveParent, ++/*334051*/ OPC_MoveChild, 16, ++/*334053*/ OPC_CheckInteger, 1, ++/*334055*/ OPC_CheckType, MVT::i32, ++/*334057*/ OPC_MoveParent, ++/*334058*/ OPC_MoveChild, 17, ++/*334060*/ OPC_CheckInteger, 1, ++/*334062*/ OPC_CheckType, MVT::i32, ++/*334064*/ OPC_MoveParent, ++/*334065*/ OPC_MoveChild, 18, ++/*334067*/ OPC_CheckInteger, 1, ++/*334069*/ OPC_CheckType, MVT::i32, ++/*334071*/ OPC_MoveParent, ++/*334072*/ OPC_MoveChild, 19, ++/*334074*/ OPC_CheckInteger, 1, ++/*334076*/ OPC_CheckType, MVT::i32, ++/*334078*/ OPC_MoveParent, ++/*334079*/ OPC_MoveChild, 20, ++/*334081*/ OPC_CheckInteger, 1, ++/*334083*/ OPC_CheckType, MVT::i32, ++/*334085*/ OPC_MoveParent, ++/*334086*/ OPC_MoveChild, 21, ++/*334088*/ OPC_CheckInteger, 1, ++/*334090*/ OPC_CheckType, MVT::i32, ++/*334092*/ OPC_MoveParent, ++/*334093*/ OPC_MoveChild, 22, ++/*334095*/ OPC_CheckInteger, 1, ++/*334097*/ OPC_CheckType, MVT::i32, ++/*334099*/ OPC_MoveParent, ++/*334100*/ OPC_MoveChild, 23, ++/*334102*/ OPC_CheckInteger, 1, ++/*334104*/ OPC_CheckType, MVT::i32, ++/*334106*/ OPC_MoveParent, ++/*334107*/ OPC_MoveChild, 24, ++/*334109*/ OPC_CheckInteger, 1, ++/*334111*/ OPC_CheckType, MVT::i32, ++/*334113*/ OPC_MoveParent, ++/*334114*/ OPC_MoveChild, 25, ++/*334116*/ OPC_CheckInteger, 1, ++/*334118*/ OPC_CheckType, MVT::i32, ++/*334120*/ OPC_MoveParent, ++/*334121*/ OPC_MoveChild, 26, ++/*334123*/ OPC_CheckInteger, 1, ++/*334125*/ OPC_CheckType, MVT::i32, ++/*334127*/ OPC_MoveParent, ++/*334128*/ OPC_MoveChild, 27, ++/*334130*/ OPC_CheckInteger, 1, ++/*334132*/ OPC_CheckType, MVT::i32, ++/*334134*/ OPC_MoveParent, ++/*334135*/ OPC_MoveChild, 28, ++/*334137*/ OPC_CheckInteger, 1, ++/*334139*/ OPC_CheckType, MVT::i32, ++/*334141*/ OPC_MoveParent, ++/*334142*/ OPC_MoveChild, 29, ++/*334144*/ OPC_CheckInteger, 1, ++/*334146*/ OPC_CheckType, MVT::i32, ++/*334148*/ OPC_MoveParent, ++/*334149*/ OPC_MoveChild, 30, ++/*334151*/ OPC_CheckInteger, 1, ++/*334153*/ OPC_CheckType, MVT::i32, ++/*334155*/ OPC_MoveParent, ++/*334156*/ OPC_MoveChild, 31, ++/*334158*/ OPC_CheckInteger, 1, ++/*334160*/ OPC_CheckType, MVT::i32, ++/*334162*/ OPC_MoveParent, ++/*334163*/ OPC_CheckType, MVT::v32i8, ++/*334165*/ OPC_MoveParent, ++/*334166*/ OPC_CheckType, MVT::v32i8, ++/*334168*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*334170*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*334178*/ 0, /*End of Scope*/ ++/*334179*/ /*Scope*/ 36|128,26/*3364*/, /*->337545*/ ++/*334181*/ OPC_MoveChild0, ++/*334182*/ OPC_SwitchOpcode /*2 cases */, 41|128,5/*681*/, TARGET_VAL(ISD::BUILD_VECTOR),// ->334868 ++/*334187*/ OPC_CheckChild0Integer, 1, ++/*334189*/ OPC_CheckChild0Type, MVT::i32, ++/*334191*/ OPC_CheckChild1Integer, 1, ++/*334193*/ OPC_CheckChild1Type, MVT::i32, ++/*334195*/ OPC_CheckChild2Integer, 1, ++/*334197*/ OPC_CheckChild2Type, MVT::i32, ++/*334199*/ OPC_CheckChild3Integer, 1, ++/*334201*/ OPC_CheckChild3Type, MVT::i32, ++/*334203*/ OPC_CheckChild4Integer, 1, ++/*334205*/ OPC_CheckChild4Type, MVT::i32, ++/*334207*/ OPC_MoveChild5, ++/*334208*/ OPC_CheckInteger, 1, ++/*334210*/ OPC_CheckType, MVT::i32, ++/*334212*/ OPC_MoveParent, ++/*334213*/ OPC_MoveChild6, ++/*334214*/ OPC_CheckInteger, 1, ++/*334216*/ OPC_CheckType, MVT::i32, ++/*334218*/ OPC_MoveParent, ++/*334219*/ OPC_MoveChild7, ++/*334220*/ OPC_CheckInteger, 1, ++/*334222*/ OPC_CheckType, MVT::i32, ++/*334224*/ OPC_MoveParent, ++/*334225*/ OPC_MoveChild, 8, ++/*334227*/ OPC_CheckInteger, 1, ++/*334229*/ OPC_CheckType, MVT::i32, ++/*334231*/ OPC_MoveParent, ++/*334232*/ OPC_MoveChild, 9, ++/*334234*/ OPC_CheckInteger, 1, ++/*334236*/ OPC_CheckType, MVT::i32, ++/*334238*/ OPC_MoveParent, ++/*334239*/ OPC_MoveChild, 10, ++/*334241*/ OPC_CheckInteger, 1, ++/*334243*/ OPC_CheckType, MVT::i32, ++/*334245*/ OPC_MoveParent, ++/*334246*/ OPC_MoveChild, 11, ++/*334248*/ OPC_CheckInteger, 1, ++/*334250*/ OPC_CheckType, MVT::i32, ++/*334252*/ OPC_MoveParent, ++/*334253*/ OPC_MoveChild, 12, ++/*334255*/ OPC_CheckInteger, 1, ++/*334257*/ OPC_CheckType, MVT::i32, ++/*334259*/ OPC_MoveParent, ++/*334260*/ OPC_MoveChild, 13, ++/*334262*/ OPC_CheckInteger, 1, ++/*334264*/ OPC_CheckType, MVT::i32, ++/*334266*/ OPC_MoveParent, ++/*334267*/ OPC_MoveChild, 14, ++/*334269*/ OPC_CheckInteger, 1, ++/*334271*/ OPC_CheckType, MVT::i32, ++/*334273*/ OPC_MoveParent, ++/*334274*/ OPC_MoveChild, 15, ++/*334276*/ OPC_CheckInteger, 1, ++/*334278*/ OPC_CheckType, MVT::i32, ++/*334280*/ OPC_MoveParent, ++/*334281*/ OPC_MoveChild, 16, ++/*334283*/ OPC_CheckInteger, 1, ++/*334285*/ OPC_CheckType, MVT::i32, ++/*334287*/ OPC_MoveParent, ++/*334288*/ OPC_MoveChild, 17, ++/*334290*/ OPC_CheckInteger, 1, ++/*334292*/ OPC_CheckType, MVT::i32, ++/*334294*/ OPC_MoveParent, ++/*334295*/ OPC_MoveChild, 18, ++/*334297*/ OPC_CheckInteger, 1, ++/*334299*/ OPC_CheckType, MVT::i32, ++/*334301*/ OPC_MoveParent, ++/*334302*/ OPC_MoveChild, 19, ++/*334304*/ OPC_CheckInteger, 1, ++/*334306*/ OPC_CheckType, MVT::i32, ++/*334308*/ OPC_MoveParent, ++/*334309*/ OPC_MoveChild, 20, ++/*334311*/ OPC_CheckInteger, 1, ++/*334313*/ OPC_CheckType, MVT::i32, ++/*334315*/ OPC_MoveParent, ++/*334316*/ OPC_MoveChild, 21, ++/*334318*/ OPC_CheckInteger, 1, ++/*334320*/ OPC_CheckType, MVT::i32, ++/*334322*/ OPC_MoveParent, ++/*334323*/ OPC_MoveChild, 22, ++/*334325*/ OPC_CheckInteger, 1, ++/*334327*/ OPC_CheckType, MVT::i32, ++/*334329*/ OPC_MoveParent, ++/*334330*/ OPC_MoveChild, 23, ++/*334332*/ OPC_CheckInteger, 1, ++/*334334*/ OPC_CheckType, MVT::i32, ++/*334336*/ OPC_MoveParent, ++/*334337*/ OPC_MoveChild, 24, ++/*334339*/ OPC_CheckInteger, 1, ++/*334341*/ OPC_CheckType, MVT::i32, ++/*334343*/ OPC_MoveParent, ++/*334344*/ OPC_MoveChild, 25, ++/*334346*/ OPC_CheckInteger, 1, ++/*334348*/ OPC_CheckType, MVT::i32, ++/*334350*/ OPC_MoveParent, ++/*334351*/ OPC_MoveChild, 26, ++/*334353*/ OPC_CheckInteger, 1, ++/*334355*/ OPC_CheckType, MVT::i32, ++/*334357*/ OPC_MoveParent, ++/*334358*/ OPC_MoveChild, 27, ++/*334360*/ OPC_CheckInteger, 1, ++/*334362*/ OPC_CheckType, MVT::i32, ++/*334364*/ OPC_MoveParent, ++/*334365*/ OPC_MoveChild, 28, ++/*334367*/ OPC_CheckInteger, 1, ++/*334369*/ OPC_CheckType, MVT::i32, ++/*334371*/ OPC_MoveParent, ++/*334372*/ OPC_MoveChild, 29, ++/*334374*/ OPC_CheckInteger, 1, ++/*334376*/ OPC_CheckType, MVT::i32, ++/*334378*/ OPC_MoveParent, ++/*334379*/ OPC_MoveChild, 30, ++/*334381*/ OPC_CheckInteger, 1, ++/*334383*/ OPC_CheckType, MVT::i32, ++/*334385*/ OPC_MoveParent, ++/*334386*/ OPC_MoveChild, 31, ++/*334388*/ OPC_CheckInteger, 1, ++/*334390*/ OPC_CheckType, MVT::i32, ++/*334392*/ OPC_MoveParent, ++/*334393*/ OPC_MoveParent, ++/*334394*/ OPC_MoveChild1, ++/*334395*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*334398*/ OPC_Scope, 104|128,1/*232*/, /*->334633*/ // 2 children in Scope ++/*334401*/ OPC_CheckChild0Same, 0, ++/*334403*/ OPC_CheckChild1Same, 1, ++/*334405*/ OPC_MoveParent, ++/*334406*/ OPC_MoveParent, ++/*334407*/ OPC_MoveParent, ++/*334408*/ OPC_MoveChild1, ++/*334409*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*334412*/ OPC_CheckChild0Integer, 1, ++/*334414*/ OPC_CheckChild0Type, MVT::i32, ++/*334416*/ OPC_CheckChild1Integer, 1, ++/*334418*/ OPC_CheckChild1Type, MVT::i32, ++/*334420*/ OPC_CheckChild2Integer, 1, ++/*334422*/ OPC_CheckChild2Type, MVT::i32, ++/*334424*/ OPC_CheckChild3Integer, 1, ++/*334426*/ OPC_CheckChild3Type, MVT::i32, ++/*334428*/ OPC_CheckChild4Integer, 1, ++/*334430*/ OPC_CheckChild4Type, MVT::i32, ++/*334432*/ OPC_MoveChild5, ++/*334433*/ OPC_CheckInteger, 1, ++/*334435*/ OPC_CheckType, MVT::i32, ++/*334437*/ OPC_MoveParent, ++/*334438*/ OPC_MoveChild6, ++/*334439*/ OPC_CheckInteger, 1, ++/*334441*/ OPC_CheckType, MVT::i32, ++/*334443*/ OPC_MoveParent, ++/*334444*/ OPC_MoveChild7, ++/*334445*/ OPC_CheckInteger, 1, ++/*334447*/ OPC_CheckType, MVT::i32, ++/*334449*/ OPC_MoveParent, ++/*334450*/ OPC_MoveChild, 8, ++/*334452*/ OPC_CheckInteger, 1, ++/*334454*/ OPC_CheckType, MVT::i32, ++/*334456*/ OPC_MoveParent, ++/*334457*/ OPC_MoveChild, 9, ++/*334459*/ OPC_CheckInteger, 1, ++/*334461*/ OPC_CheckType, MVT::i32, ++/*334463*/ OPC_MoveParent, ++/*334464*/ OPC_MoveChild, 10, ++/*334466*/ OPC_CheckInteger, 1, ++/*334468*/ OPC_CheckType, MVT::i32, ++/*334470*/ OPC_MoveParent, ++/*334471*/ OPC_MoveChild, 11, ++/*334473*/ OPC_CheckInteger, 1, ++/*334475*/ OPC_CheckType, MVT::i32, ++/*334477*/ OPC_MoveParent, ++/*334478*/ OPC_MoveChild, 12, ++/*334480*/ OPC_CheckInteger, 1, ++/*334482*/ OPC_CheckType, MVT::i32, ++/*334484*/ OPC_MoveParent, ++/*334485*/ OPC_MoveChild, 13, ++/*334487*/ OPC_CheckInteger, 1, ++/*334489*/ OPC_CheckType, MVT::i32, ++/*334491*/ OPC_MoveParent, ++/*334492*/ OPC_MoveChild, 14, ++/*334494*/ OPC_CheckInteger, 1, ++/*334496*/ OPC_CheckType, MVT::i32, ++/*334498*/ OPC_MoveParent, ++/*334499*/ OPC_MoveChild, 15, ++/*334501*/ OPC_CheckInteger, 1, ++/*334503*/ OPC_CheckType, MVT::i32, ++/*334505*/ OPC_MoveParent, ++/*334506*/ OPC_MoveChild, 16, ++/*334508*/ OPC_CheckInteger, 1, ++/*334510*/ OPC_CheckType, MVT::i32, ++/*334512*/ OPC_MoveParent, ++/*334513*/ OPC_MoveChild, 17, ++/*334515*/ OPC_CheckInteger, 1, ++/*334517*/ OPC_CheckType, MVT::i32, ++/*334519*/ OPC_MoveParent, ++/*334520*/ OPC_MoveChild, 18, ++/*334522*/ OPC_CheckInteger, 1, ++/*334524*/ OPC_CheckType, MVT::i32, ++/*334526*/ OPC_MoveParent, ++/*334527*/ OPC_MoveChild, 19, ++/*334529*/ OPC_CheckInteger, 1, ++/*334531*/ OPC_CheckType, MVT::i32, ++/*334533*/ OPC_MoveParent, ++/*334534*/ OPC_MoveChild, 20, ++/*334536*/ OPC_CheckInteger, 1, ++/*334538*/ OPC_CheckType, MVT::i32, ++/*334540*/ OPC_MoveParent, ++/*334541*/ OPC_MoveChild, 21, ++/*334543*/ OPC_CheckInteger, 1, ++/*334545*/ OPC_CheckType, MVT::i32, ++/*334547*/ OPC_MoveParent, ++/*334548*/ OPC_MoveChild, 22, ++/*334550*/ OPC_CheckInteger, 1, ++/*334552*/ OPC_CheckType, MVT::i32, ++/*334554*/ OPC_MoveParent, ++/*334555*/ OPC_MoveChild, 23, ++/*334557*/ OPC_CheckInteger, 1, ++/*334559*/ OPC_CheckType, MVT::i32, ++/*334561*/ OPC_MoveParent, ++/*334562*/ OPC_MoveChild, 24, ++/*334564*/ OPC_CheckInteger, 1, ++/*334566*/ OPC_CheckType, MVT::i32, ++/*334568*/ OPC_MoveParent, ++/*334569*/ OPC_MoveChild, 25, ++/*334571*/ OPC_CheckInteger, 1, ++/*334573*/ OPC_CheckType, MVT::i32, ++/*334575*/ OPC_MoveParent, ++/*334576*/ OPC_MoveChild, 26, ++/*334578*/ OPC_CheckInteger, 1, ++/*334580*/ OPC_CheckType, MVT::i32, ++/*334582*/ OPC_MoveParent, ++/*334583*/ OPC_MoveChild, 27, ++/*334585*/ OPC_CheckInteger, 1, ++/*334587*/ OPC_CheckType, MVT::i32, ++/*334589*/ OPC_MoveParent, ++/*334590*/ OPC_MoveChild, 28, ++/*334592*/ OPC_CheckInteger, 1, ++/*334594*/ OPC_CheckType, MVT::i32, ++/*334596*/ OPC_MoveParent, ++/*334597*/ OPC_MoveChild, 29, ++/*334599*/ OPC_CheckInteger, 1, ++/*334601*/ OPC_CheckType, MVT::i32, ++/*334603*/ OPC_MoveParent, ++/*334604*/ OPC_MoveChild, 30, ++/*334606*/ OPC_CheckInteger, 1, ++/*334608*/ OPC_CheckType, MVT::i32, ++/*334610*/ OPC_MoveParent, ++/*334611*/ OPC_MoveChild, 31, ++/*334613*/ OPC_CheckInteger, 1, ++/*334615*/ OPC_CheckType, MVT::i32, ++/*334617*/ OPC_MoveParent, ++/*334618*/ OPC_CheckType, MVT::v32i8, ++/*334620*/ OPC_MoveParent, ++/*334621*/ OPC_CheckType, MVT::v32i8, ++/*334623*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*334625*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*334633*/ /*Scope*/ 104|128,1/*232*/, /*->334867*/ ++/*334635*/ OPC_CheckChild0Same, 1, ++/*334637*/ OPC_CheckChild1Same, 0, ++/*334639*/ OPC_MoveParent, ++/*334640*/ OPC_MoveParent, ++/*334641*/ OPC_MoveParent, ++/*334642*/ OPC_MoveChild1, ++/*334643*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*334646*/ OPC_CheckChild0Integer, 1, ++/*334648*/ OPC_CheckChild0Type, MVT::i32, ++/*334650*/ OPC_CheckChild1Integer, 1, ++/*334652*/ OPC_CheckChild1Type, MVT::i32, ++/*334654*/ OPC_CheckChild2Integer, 1, ++/*334656*/ OPC_CheckChild2Type, MVT::i32, ++/*334658*/ OPC_CheckChild3Integer, 1, ++/*334660*/ OPC_CheckChild3Type, MVT::i32, ++/*334662*/ OPC_CheckChild4Integer, 1, ++/*334664*/ OPC_CheckChild4Type, MVT::i32, ++/*334666*/ OPC_MoveChild5, ++/*334667*/ OPC_CheckInteger, 1, ++/*334669*/ OPC_CheckType, MVT::i32, ++/*334671*/ OPC_MoveParent, ++/*334672*/ OPC_MoveChild6, ++/*334673*/ OPC_CheckInteger, 1, ++/*334675*/ OPC_CheckType, MVT::i32, ++/*334677*/ OPC_MoveParent, ++/*334678*/ OPC_MoveChild7, ++/*334679*/ OPC_CheckInteger, 1, ++/*334681*/ OPC_CheckType, MVT::i32, ++/*334683*/ OPC_MoveParent, ++/*334684*/ OPC_MoveChild, 8, ++/*334686*/ OPC_CheckInteger, 1, ++/*334688*/ OPC_CheckType, MVT::i32, ++/*334690*/ OPC_MoveParent, ++/*334691*/ OPC_MoveChild, 9, ++/*334693*/ OPC_CheckInteger, 1, ++/*334695*/ OPC_CheckType, MVT::i32, ++/*334697*/ OPC_MoveParent, ++/*334698*/ OPC_MoveChild, 10, ++/*334700*/ OPC_CheckInteger, 1, ++/*334702*/ OPC_CheckType, MVT::i32, ++/*334704*/ OPC_MoveParent, ++/*334705*/ OPC_MoveChild, 11, ++/*334707*/ OPC_CheckInteger, 1, ++/*334709*/ OPC_CheckType, MVT::i32, ++/*334711*/ OPC_MoveParent, ++/*334712*/ OPC_MoveChild, 12, ++/*334714*/ OPC_CheckInteger, 1, ++/*334716*/ OPC_CheckType, MVT::i32, ++/*334718*/ OPC_MoveParent, ++/*334719*/ OPC_MoveChild, 13, ++/*334721*/ OPC_CheckInteger, 1, ++/*334723*/ OPC_CheckType, MVT::i32, ++/*334725*/ OPC_MoveParent, ++/*334726*/ OPC_MoveChild, 14, ++/*334728*/ OPC_CheckInteger, 1, ++/*334730*/ OPC_CheckType, MVT::i32, ++/*334732*/ OPC_MoveParent, ++/*334733*/ OPC_MoveChild, 15, ++/*334735*/ OPC_CheckInteger, 1, ++/*334737*/ OPC_CheckType, MVT::i32, ++/*334739*/ OPC_MoveParent, ++/*334740*/ OPC_MoveChild, 16, ++/*334742*/ OPC_CheckInteger, 1, ++/*334744*/ OPC_CheckType, MVT::i32, ++/*334746*/ OPC_MoveParent, ++/*334747*/ OPC_MoveChild, 17, ++/*334749*/ OPC_CheckInteger, 1, ++/*334751*/ OPC_CheckType, MVT::i32, ++/*334753*/ OPC_MoveParent, ++/*334754*/ OPC_MoveChild, 18, ++/*334756*/ OPC_CheckInteger, 1, ++/*334758*/ OPC_CheckType, MVT::i32, ++/*334760*/ OPC_MoveParent, ++/*334761*/ OPC_MoveChild, 19, ++/*334763*/ OPC_CheckInteger, 1, ++/*334765*/ OPC_CheckType, MVT::i32, ++/*334767*/ OPC_MoveParent, ++/*334768*/ OPC_MoveChild, 20, ++/*334770*/ OPC_CheckInteger, 1, ++/*334772*/ OPC_CheckType, MVT::i32, ++/*334774*/ OPC_MoveParent, ++/*334775*/ OPC_MoveChild, 21, ++/*334777*/ OPC_CheckInteger, 1, ++/*334779*/ OPC_CheckType, MVT::i32, ++/*334781*/ OPC_MoveParent, ++/*334782*/ OPC_MoveChild, 22, ++/*334784*/ OPC_CheckInteger, 1, ++/*334786*/ OPC_CheckType, MVT::i32, ++/*334788*/ OPC_MoveParent, ++/*334789*/ OPC_MoveChild, 23, ++/*334791*/ OPC_CheckInteger, 1, ++/*334793*/ OPC_CheckType, MVT::i32, ++/*334795*/ OPC_MoveParent, ++/*334796*/ OPC_MoveChild, 24, ++/*334798*/ OPC_CheckInteger, 1, ++/*334800*/ OPC_CheckType, MVT::i32, ++/*334802*/ OPC_MoveParent, ++/*334803*/ OPC_MoveChild, 25, ++/*334805*/ OPC_CheckInteger, 1, ++/*334807*/ OPC_CheckType, MVT::i32, ++/*334809*/ OPC_MoveParent, ++/*334810*/ OPC_MoveChild, 26, ++/*334812*/ OPC_CheckInteger, 1, ++/*334814*/ OPC_CheckType, MVT::i32, ++/*334816*/ OPC_MoveParent, ++/*334817*/ OPC_MoveChild, 27, ++/*334819*/ OPC_CheckInteger, 1, ++/*334821*/ OPC_CheckType, MVT::i32, ++/*334823*/ OPC_MoveParent, ++/*334824*/ OPC_MoveChild, 28, ++/*334826*/ OPC_CheckInteger, 1, ++/*334828*/ OPC_CheckType, MVT::i32, ++/*334830*/ OPC_MoveParent, ++/*334831*/ OPC_MoveChild, 29, ++/*334833*/ OPC_CheckInteger, 1, ++/*334835*/ OPC_CheckType, MVT::i32, ++/*334837*/ OPC_MoveParent, ++/*334838*/ OPC_MoveChild, 30, ++/*334840*/ OPC_CheckInteger, 1, ++/*334842*/ OPC_CheckType, MVT::i32, ++/*334844*/ OPC_MoveParent, ++/*334845*/ OPC_MoveChild, 31, ++/*334847*/ OPC_CheckInteger, 1, ++/*334849*/ OPC_CheckType, MVT::i32, ++/*334851*/ OPC_MoveParent, ++/*334852*/ OPC_CheckType, MVT::v32i8, ++/*334854*/ OPC_MoveParent, ++/*334855*/ OPC_CheckType, MVT::v32i8, ++/*334857*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*334859*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*334867*/ 0, /*End of Scope*/ ++/*334868*/ /*SwitchOpcode*/ 112|128,20/*2672*/, TARGET_VAL(ISD::ADD),// ->337544 ++/*334872*/ OPC_Scope, 59|128,3/*443*/, /*->335318*/ // 6 children in Scope ++/*334875*/ OPC_MoveChild0, ++/*334876*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*334879*/ OPC_CheckChild0Integer, 1, ++/*334881*/ OPC_CheckChild0Type, MVT::i32, ++/*334883*/ OPC_CheckChild1Integer, 1, ++/*334885*/ OPC_CheckChild1Type, MVT::i32, ++/*334887*/ OPC_CheckChild2Integer, 1, ++/*334889*/ OPC_CheckChild2Type, MVT::i32, ++/*334891*/ OPC_CheckChild3Integer, 1, ++/*334893*/ OPC_CheckChild3Type, MVT::i32, ++/*334895*/ OPC_CheckChild4Integer, 1, ++/*334897*/ OPC_CheckChild4Type, MVT::i32, ++/*334899*/ OPC_MoveChild5, ++/*334900*/ OPC_CheckInteger, 1, ++/*334902*/ OPC_CheckType, MVT::i32, ++/*334904*/ OPC_MoveParent, ++/*334905*/ OPC_MoveChild6, ++/*334906*/ OPC_CheckInteger, 1, ++/*334908*/ OPC_CheckType, MVT::i32, ++/*334910*/ OPC_MoveParent, ++/*334911*/ OPC_MoveChild7, ++/*334912*/ OPC_CheckInteger, 1, ++/*334914*/ OPC_CheckType, MVT::i32, ++/*334916*/ OPC_MoveParent, ++/*334917*/ OPC_MoveChild, 8, ++/*334919*/ OPC_CheckInteger, 1, ++/*334921*/ OPC_CheckType, MVT::i32, ++/*334923*/ OPC_MoveParent, ++/*334924*/ OPC_MoveChild, 9, ++/*334926*/ OPC_CheckInteger, 1, ++/*334928*/ OPC_CheckType, MVT::i32, ++/*334930*/ OPC_MoveParent, ++/*334931*/ OPC_MoveChild, 10, ++/*334933*/ OPC_CheckInteger, 1, ++/*334935*/ OPC_CheckType, MVT::i32, ++/*334937*/ OPC_MoveParent, ++/*334938*/ OPC_MoveChild, 11, ++/*334940*/ OPC_CheckInteger, 1, ++/*334942*/ OPC_CheckType, MVT::i32, ++/*334944*/ OPC_MoveParent, ++/*334945*/ OPC_MoveChild, 12, ++/*334947*/ OPC_CheckInteger, 1, ++/*334949*/ OPC_CheckType, MVT::i32, ++/*334951*/ OPC_MoveParent, ++/*334952*/ OPC_MoveChild, 13, ++/*334954*/ OPC_CheckInteger, 1, ++/*334956*/ OPC_CheckType, MVT::i32, ++/*334958*/ OPC_MoveParent, ++/*334959*/ OPC_MoveChild, 14, ++/*334961*/ OPC_CheckInteger, 1, ++/*334963*/ OPC_CheckType, MVT::i32, ++/*334965*/ OPC_MoveParent, ++/*334966*/ OPC_MoveChild, 15, ++/*334968*/ OPC_CheckInteger, 1, ++/*334970*/ OPC_CheckType, MVT::i32, ++/*334972*/ OPC_MoveParent, ++/*334973*/ OPC_MoveChild, 16, ++/*334975*/ OPC_CheckInteger, 1, ++/*334977*/ OPC_CheckType, MVT::i32, ++/*334979*/ OPC_MoveParent, ++/*334980*/ OPC_MoveChild, 17, ++/*334982*/ OPC_CheckInteger, 1, ++/*334984*/ OPC_CheckType, MVT::i32, ++/*334986*/ OPC_MoveParent, ++/*334987*/ OPC_MoveChild, 18, ++/*334989*/ OPC_CheckInteger, 1, ++/*334991*/ OPC_CheckType, MVT::i32, ++/*334993*/ OPC_MoveParent, ++/*334994*/ OPC_MoveChild, 19, ++/*334996*/ OPC_CheckInteger, 1, ++/*334998*/ OPC_CheckType, MVT::i32, ++/*335000*/ OPC_MoveParent, ++/*335001*/ OPC_MoveChild, 20, ++/*335003*/ OPC_CheckInteger, 1, ++/*335005*/ OPC_CheckType, MVT::i32, ++/*335007*/ OPC_MoveParent, ++/*335008*/ OPC_MoveChild, 21, ++/*335010*/ OPC_CheckInteger, 1, ++/*335012*/ OPC_CheckType, MVT::i32, ++/*335014*/ OPC_MoveParent, ++/*335015*/ OPC_MoveChild, 22, ++/*335017*/ OPC_CheckInteger, 1, ++/*335019*/ OPC_CheckType, MVT::i32, ++/*335021*/ OPC_MoveParent, ++/*335022*/ OPC_MoveChild, 23, ++/*335024*/ OPC_CheckInteger, 1, ++/*335026*/ OPC_CheckType, MVT::i32, ++/*335028*/ OPC_MoveParent, ++/*335029*/ OPC_MoveChild, 24, ++/*335031*/ OPC_CheckInteger, 1, ++/*335033*/ OPC_CheckType, MVT::i32, ++/*335035*/ OPC_MoveParent, ++/*335036*/ OPC_MoveChild, 25, ++/*335038*/ OPC_CheckInteger, 1, ++/*335040*/ OPC_CheckType, MVT::i32, ++/*335042*/ OPC_MoveParent, ++/*335043*/ OPC_MoveChild, 26, ++/*335045*/ OPC_CheckInteger, 1, ++/*335047*/ OPC_CheckType, MVT::i32, ++/*335049*/ OPC_MoveParent, ++/*335050*/ OPC_MoveChild, 27, ++/*335052*/ OPC_CheckInteger, 1, ++/*335054*/ OPC_CheckType, MVT::i32, ++/*335056*/ OPC_MoveParent, ++/*335057*/ OPC_MoveChild, 28, ++/*335059*/ OPC_CheckInteger, 1, ++/*335061*/ OPC_CheckType, MVT::i32, ++/*335063*/ OPC_MoveParent, ++/*335064*/ OPC_MoveChild, 29, ++/*335066*/ OPC_CheckInteger, 1, ++/*335068*/ OPC_CheckType, MVT::i32, ++/*335070*/ OPC_MoveParent, ++/*335071*/ OPC_MoveChild, 30, ++/*335073*/ OPC_CheckInteger, 1, ++/*335075*/ OPC_CheckType, MVT::i32, ++/*335077*/ OPC_MoveParent, ++/*335078*/ OPC_MoveChild, 31, ++/*335080*/ OPC_CheckInteger, 1, ++/*335082*/ OPC_CheckType, MVT::i32, ++/*335084*/ OPC_MoveParent, ++/*335085*/ OPC_MoveParent, ++/*335086*/ OPC_CheckChild1Same, 1, ++/*335088*/ OPC_MoveParent, ++/*335089*/ OPC_CheckChild1Same, 0, ++/*335091*/ OPC_MoveParent, ++/*335092*/ OPC_MoveParent, ++/*335093*/ OPC_MoveChild1, ++/*335094*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*335097*/ OPC_CheckChild0Integer, 1, ++/*335099*/ OPC_CheckChild0Type, MVT::i32, ++/*335101*/ OPC_CheckChild1Integer, 1, ++/*335103*/ OPC_CheckChild1Type, MVT::i32, ++/*335105*/ OPC_CheckChild2Integer, 1, ++/*335107*/ OPC_CheckChild2Type, MVT::i32, ++/*335109*/ OPC_CheckChild3Integer, 1, ++/*335111*/ OPC_CheckChild3Type, MVT::i32, ++/*335113*/ OPC_CheckChild4Integer, 1, ++/*335115*/ OPC_CheckChild4Type, MVT::i32, ++/*335117*/ OPC_MoveChild5, ++/*335118*/ OPC_CheckInteger, 1, ++/*335120*/ OPC_CheckType, MVT::i32, ++/*335122*/ OPC_MoveParent, ++/*335123*/ OPC_MoveChild6, ++/*335124*/ OPC_CheckInteger, 1, ++/*335126*/ OPC_CheckType, MVT::i32, ++/*335128*/ OPC_MoveParent, ++/*335129*/ OPC_MoveChild7, ++/*335130*/ OPC_CheckInteger, 1, ++/*335132*/ OPC_CheckType, MVT::i32, ++/*335134*/ OPC_MoveParent, ++/*335135*/ OPC_MoveChild, 8, ++/*335137*/ OPC_CheckInteger, 1, ++/*335139*/ OPC_CheckType, MVT::i32, ++/*335141*/ OPC_MoveParent, ++/*335142*/ OPC_MoveChild, 9, ++/*335144*/ OPC_CheckInteger, 1, ++/*335146*/ OPC_CheckType, MVT::i32, ++/*335148*/ OPC_MoveParent, ++/*335149*/ OPC_MoveChild, 10, ++/*335151*/ OPC_CheckInteger, 1, ++/*335153*/ OPC_CheckType, MVT::i32, ++/*335155*/ OPC_MoveParent, ++/*335156*/ OPC_MoveChild, 11, ++/*335158*/ OPC_CheckInteger, 1, ++/*335160*/ OPC_CheckType, MVT::i32, ++/*335162*/ OPC_MoveParent, ++/*335163*/ OPC_MoveChild, 12, ++/*335165*/ OPC_CheckInteger, 1, ++/*335167*/ OPC_CheckType, MVT::i32, ++/*335169*/ OPC_MoveParent, ++/*335170*/ OPC_MoveChild, 13, ++/*335172*/ OPC_CheckInteger, 1, ++/*335174*/ OPC_CheckType, MVT::i32, ++/*335176*/ OPC_MoveParent, ++/*335177*/ OPC_MoveChild, 14, ++/*335179*/ OPC_CheckInteger, 1, ++/*335181*/ OPC_CheckType, MVT::i32, ++/*335183*/ OPC_MoveParent, ++/*335184*/ OPC_MoveChild, 15, ++/*335186*/ OPC_CheckInteger, 1, ++/*335188*/ OPC_CheckType, MVT::i32, ++/*335190*/ OPC_MoveParent, ++/*335191*/ OPC_MoveChild, 16, ++/*335193*/ OPC_CheckInteger, 1, ++/*335195*/ OPC_CheckType, MVT::i32, ++/*335197*/ OPC_MoveParent, ++/*335198*/ OPC_MoveChild, 17, ++/*335200*/ OPC_CheckInteger, 1, ++/*335202*/ OPC_CheckType, MVT::i32, ++/*335204*/ OPC_MoveParent, ++/*335205*/ OPC_MoveChild, 18, ++/*335207*/ OPC_CheckInteger, 1, ++/*335209*/ OPC_CheckType, MVT::i32, ++/*335211*/ OPC_MoveParent, ++/*335212*/ OPC_MoveChild, 19, ++/*335214*/ OPC_CheckInteger, 1, ++/*335216*/ OPC_CheckType, MVT::i32, ++/*335218*/ OPC_MoveParent, ++/*335219*/ OPC_MoveChild, 20, ++/*335221*/ OPC_CheckInteger, 1, ++/*335223*/ OPC_CheckType, MVT::i32, ++/*335225*/ OPC_MoveParent, ++/*335226*/ OPC_MoveChild, 21, ++/*335228*/ OPC_CheckInteger, 1, ++/*335230*/ OPC_CheckType, MVT::i32, ++/*335232*/ OPC_MoveParent, ++/*335233*/ OPC_MoveChild, 22, ++/*335235*/ OPC_CheckInteger, 1, ++/*335237*/ OPC_CheckType, MVT::i32, ++/*335239*/ OPC_MoveParent, ++/*335240*/ OPC_MoveChild, 23, ++/*335242*/ OPC_CheckInteger, 1, ++/*335244*/ OPC_CheckType, MVT::i32, ++/*335246*/ OPC_MoveParent, ++/*335247*/ OPC_MoveChild, 24, ++/*335249*/ OPC_CheckInteger, 1, ++/*335251*/ OPC_CheckType, MVT::i32, ++/*335253*/ OPC_MoveParent, ++/*335254*/ OPC_MoveChild, 25, ++/*335256*/ OPC_CheckInteger, 1, ++/*335258*/ OPC_CheckType, MVT::i32, ++/*335260*/ OPC_MoveParent, ++/*335261*/ OPC_MoveChild, 26, ++/*335263*/ OPC_CheckInteger, 1, ++/*335265*/ OPC_CheckType, MVT::i32, ++/*335267*/ OPC_MoveParent, ++/*335268*/ OPC_MoveChild, 27, ++/*335270*/ OPC_CheckInteger, 1, ++/*335272*/ OPC_CheckType, MVT::i32, ++/*335274*/ OPC_MoveParent, ++/*335275*/ OPC_MoveChild, 28, ++/*335277*/ OPC_CheckInteger, 1, ++/*335279*/ OPC_CheckType, MVT::i32, ++/*335281*/ OPC_MoveParent, ++/*335282*/ OPC_MoveChild, 29, ++/*335284*/ OPC_CheckInteger, 1, ++/*335286*/ OPC_CheckType, MVT::i32, ++/*335288*/ OPC_MoveParent, ++/*335289*/ OPC_MoveChild, 30, ++/*335291*/ OPC_CheckInteger, 1, ++/*335293*/ OPC_CheckType, MVT::i32, ++/*335295*/ OPC_MoveParent, ++/*335296*/ OPC_MoveChild, 31, ++/*335298*/ OPC_CheckInteger, 1, ++/*335300*/ OPC_CheckType, MVT::i32, ++/*335302*/ OPC_MoveParent, ++/*335303*/ OPC_CheckType, MVT::v32i8, ++/*335305*/ OPC_MoveParent, ++/*335306*/ OPC_CheckType, MVT::v32i8, ++/*335308*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*335310*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a), LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*335318*/ /*Scope*/ 59|128,3/*443*/, /*->335763*/ ++/*335320*/ OPC_CheckChild0Same, 1, ++/*335322*/ OPC_MoveChild1, ++/*335323*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*335326*/ OPC_CheckChild0Integer, 1, ++/*335328*/ OPC_CheckChild0Type, MVT::i32, ++/*335330*/ OPC_CheckChild1Integer, 1, ++/*335332*/ OPC_CheckChild1Type, MVT::i32, ++/*335334*/ OPC_CheckChild2Integer, 1, ++/*335336*/ OPC_CheckChild2Type, MVT::i32, ++/*335338*/ OPC_CheckChild3Integer, 1, ++/*335340*/ OPC_CheckChild3Type, MVT::i32, ++/*335342*/ OPC_CheckChild4Integer, 1, ++/*335344*/ OPC_CheckChild4Type, MVT::i32, ++/*335346*/ OPC_MoveChild5, ++/*335347*/ OPC_CheckInteger, 1, ++/*335349*/ OPC_CheckType, MVT::i32, ++/*335351*/ OPC_MoveParent, ++/*335352*/ OPC_MoveChild6, ++/*335353*/ OPC_CheckInteger, 1, ++/*335355*/ OPC_CheckType, MVT::i32, ++/*335357*/ OPC_MoveParent, ++/*335358*/ OPC_MoveChild7, ++/*335359*/ OPC_CheckInteger, 1, ++/*335361*/ OPC_CheckType, MVT::i32, ++/*335363*/ OPC_MoveParent, ++/*335364*/ OPC_MoveChild, 8, ++/*335366*/ OPC_CheckInteger, 1, ++/*335368*/ OPC_CheckType, MVT::i32, ++/*335370*/ OPC_MoveParent, ++/*335371*/ OPC_MoveChild, 9, ++/*335373*/ OPC_CheckInteger, 1, ++/*335375*/ OPC_CheckType, MVT::i32, ++/*335377*/ OPC_MoveParent, ++/*335378*/ OPC_MoveChild, 10, ++/*335380*/ OPC_CheckInteger, 1, ++/*335382*/ OPC_CheckType, MVT::i32, ++/*335384*/ OPC_MoveParent, ++/*335385*/ OPC_MoveChild, 11, ++/*335387*/ OPC_CheckInteger, 1, ++/*335389*/ OPC_CheckType, MVT::i32, ++/*335391*/ OPC_MoveParent, ++/*335392*/ OPC_MoveChild, 12, ++/*335394*/ OPC_CheckInteger, 1, ++/*335396*/ OPC_CheckType, MVT::i32, ++/*335398*/ OPC_MoveParent, ++/*335399*/ OPC_MoveChild, 13, ++/*335401*/ OPC_CheckInteger, 1, ++/*335403*/ OPC_CheckType, MVT::i32, ++/*335405*/ OPC_MoveParent, ++/*335406*/ OPC_MoveChild, 14, ++/*335408*/ OPC_CheckInteger, 1, ++/*335410*/ OPC_CheckType, MVT::i32, ++/*335412*/ OPC_MoveParent, ++/*335413*/ OPC_MoveChild, 15, ++/*335415*/ OPC_CheckInteger, 1, ++/*335417*/ OPC_CheckType, MVT::i32, ++/*335419*/ OPC_MoveParent, ++/*335420*/ OPC_MoveChild, 16, ++/*335422*/ OPC_CheckInteger, 1, ++/*335424*/ OPC_CheckType, MVT::i32, ++/*335426*/ OPC_MoveParent, ++/*335427*/ OPC_MoveChild, 17, ++/*335429*/ OPC_CheckInteger, 1, ++/*335431*/ OPC_CheckType, MVT::i32, ++/*335433*/ OPC_MoveParent, ++/*335434*/ OPC_MoveChild, 18, ++/*335436*/ OPC_CheckInteger, 1, ++/*335438*/ OPC_CheckType, MVT::i32, ++/*335440*/ OPC_MoveParent, ++/*335441*/ OPC_MoveChild, 19, ++/*335443*/ OPC_CheckInteger, 1, ++/*335445*/ OPC_CheckType, MVT::i32, ++/*335447*/ OPC_MoveParent, ++/*335448*/ OPC_MoveChild, 20, ++/*335450*/ OPC_CheckInteger, 1, ++/*335452*/ OPC_CheckType, MVT::i32, ++/*335454*/ OPC_MoveParent, ++/*335455*/ OPC_MoveChild, 21, ++/*335457*/ OPC_CheckInteger, 1, ++/*335459*/ OPC_CheckType, MVT::i32, ++/*335461*/ OPC_MoveParent, ++/*335462*/ OPC_MoveChild, 22, ++/*335464*/ OPC_CheckInteger, 1, ++/*335466*/ OPC_CheckType, MVT::i32, ++/*335468*/ OPC_MoveParent, ++/*335469*/ OPC_MoveChild, 23, ++/*335471*/ OPC_CheckInteger, 1, ++/*335473*/ OPC_CheckType, MVT::i32, ++/*335475*/ OPC_MoveParent, ++/*335476*/ OPC_MoveChild, 24, ++/*335478*/ OPC_CheckInteger, 1, ++/*335480*/ OPC_CheckType, MVT::i32, ++/*335482*/ OPC_MoveParent, ++/*335483*/ OPC_MoveChild, 25, ++/*335485*/ OPC_CheckInteger, 1, ++/*335487*/ OPC_CheckType, MVT::i32, ++/*335489*/ OPC_MoveParent, ++/*335490*/ OPC_MoveChild, 26, ++/*335492*/ OPC_CheckInteger, 1, ++/*335494*/ OPC_CheckType, MVT::i32, ++/*335496*/ OPC_MoveParent, ++/*335497*/ OPC_MoveChild, 27, ++/*335499*/ OPC_CheckInteger, 1, ++/*335501*/ OPC_CheckType, MVT::i32, ++/*335503*/ OPC_MoveParent, ++/*335504*/ OPC_MoveChild, 28, ++/*335506*/ OPC_CheckInteger, 1, ++/*335508*/ OPC_CheckType, MVT::i32, ++/*335510*/ OPC_MoveParent, ++/*335511*/ OPC_MoveChild, 29, ++/*335513*/ OPC_CheckInteger, 1, ++/*335515*/ OPC_CheckType, MVT::i32, ++/*335517*/ OPC_MoveParent, ++/*335518*/ OPC_MoveChild, 30, ++/*335520*/ OPC_CheckInteger, 1, ++/*335522*/ OPC_CheckType, MVT::i32, ++/*335524*/ OPC_MoveParent, ++/*335525*/ OPC_MoveChild, 31, ++/*335527*/ OPC_CheckInteger, 1, ++/*335529*/ OPC_CheckType, MVT::i32, ++/*335531*/ OPC_MoveParent, ++/*335532*/ OPC_MoveParent, ++/*335533*/ OPC_MoveParent, ++/*335534*/ OPC_CheckChild1Same, 0, ++/*335536*/ OPC_MoveParent, ++/*335537*/ OPC_MoveParent, ++/*335538*/ OPC_MoveChild1, ++/*335539*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*335542*/ OPC_CheckChild0Integer, 1, ++/*335544*/ OPC_CheckChild0Type, MVT::i32, ++/*335546*/ OPC_CheckChild1Integer, 1, ++/*335548*/ OPC_CheckChild1Type, MVT::i32, ++/*335550*/ OPC_CheckChild2Integer, 1, ++/*335552*/ OPC_CheckChild2Type, MVT::i32, ++/*335554*/ OPC_CheckChild3Integer, 1, ++/*335556*/ OPC_CheckChild3Type, MVT::i32, ++/*335558*/ OPC_CheckChild4Integer, 1, ++/*335560*/ OPC_CheckChild4Type, MVT::i32, ++/*335562*/ OPC_MoveChild5, ++/*335563*/ OPC_CheckInteger, 1, ++/*335565*/ OPC_CheckType, MVT::i32, ++/*335567*/ OPC_MoveParent, ++/*335568*/ OPC_MoveChild6, ++/*335569*/ OPC_CheckInteger, 1, ++/*335571*/ OPC_CheckType, MVT::i32, ++/*335573*/ OPC_MoveParent, ++/*335574*/ OPC_MoveChild7, ++/*335575*/ OPC_CheckInteger, 1, ++/*335577*/ OPC_CheckType, MVT::i32, ++/*335579*/ OPC_MoveParent, ++/*335580*/ OPC_MoveChild, 8, ++/*335582*/ OPC_CheckInteger, 1, ++/*335584*/ OPC_CheckType, MVT::i32, ++/*335586*/ OPC_MoveParent, ++/*335587*/ OPC_MoveChild, 9, ++/*335589*/ OPC_CheckInteger, 1, ++/*335591*/ OPC_CheckType, MVT::i32, ++/*335593*/ OPC_MoveParent, ++/*335594*/ OPC_MoveChild, 10, ++/*335596*/ OPC_CheckInteger, 1, ++/*335598*/ OPC_CheckType, MVT::i32, ++/*335600*/ OPC_MoveParent, ++/*335601*/ OPC_MoveChild, 11, ++/*335603*/ OPC_CheckInteger, 1, ++/*335605*/ OPC_CheckType, MVT::i32, ++/*335607*/ OPC_MoveParent, ++/*335608*/ OPC_MoveChild, 12, ++/*335610*/ OPC_CheckInteger, 1, ++/*335612*/ OPC_CheckType, MVT::i32, ++/*335614*/ OPC_MoveParent, ++/*335615*/ OPC_MoveChild, 13, ++/*335617*/ OPC_CheckInteger, 1, ++/*335619*/ OPC_CheckType, MVT::i32, ++/*335621*/ OPC_MoveParent, ++/*335622*/ OPC_MoveChild, 14, ++/*335624*/ OPC_CheckInteger, 1, ++/*335626*/ OPC_CheckType, MVT::i32, ++/*335628*/ OPC_MoveParent, ++/*335629*/ OPC_MoveChild, 15, ++/*335631*/ OPC_CheckInteger, 1, ++/*335633*/ OPC_CheckType, MVT::i32, ++/*335635*/ OPC_MoveParent, ++/*335636*/ OPC_MoveChild, 16, ++/*335638*/ OPC_CheckInteger, 1, ++/*335640*/ OPC_CheckType, MVT::i32, ++/*335642*/ OPC_MoveParent, ++/*335643*/ OPC_MoveChild, 17, ++/*335645*/ OPC_CheckInteger, 1, ++/*335647*/ OPC_CheckType, MVT::i32, ++/*335649*/ OPC_MoveParent, ++/*335650*/ OPC_MoveChild, 18, ++/*335652*/ OPC_CheckInteger, 1, ++/*335654*/ OPC_CheckType, MVT::i32, ++/*335656*/ OPC_MoveParent, ++/*335657*/ OPC_MoveChild, 19, ++/*335659*/ OPC_CheckInteger, 1, ++/*335661*/ OPC_CheckType, MVT::i32, ++/*335663*/ OPC_MoveParent, ++/*335664*/ OPC_MoveChild, 20, ++/*335666*/ OPC_CheckInteger, 1, ++/*335668*/ OPC_CheckType, MVT::i32, ++/*335670*/ OPC_MoveParent, ++/*335671*/ OPC_MoveChild, 21, ++/*335673*/ OPC_CheckInteger, 1, ++/*335675*/ OPC_CheckType, MVT::i32, ++/*335677*/ OPC_MoveParent, ++/*335678*/ OPC_MoveChild, 22, ++/*335680*/ OPC_CheckInteger, 1, ++/*335682*/ OPC_CheckType, MVT::i32, ++/*335684*/ OPC_MoveParent, ++/*335685*/ OPC_MoveChild, 23, ++/*335687*/ OPC_CheckInteger, 1, ++/*335689*/ OPC_CheckType, MVT::i32, ++/*335691*/ OPC_MoveParent, ++/*335692*/ OPC_MoveChild, 24, ++/*335694*/ OPC_CheckInteger, 1, ++/*335696*/ OPC_CheckType, MVT::i32, ++/*335698*/ OPC_MoveParent, ++/*335699*/ OPC_MoveChild, 25, ++/*335701*/ OPC_CheckInteger, 1, ++/*335703*/ OPC_CheckType, MVT::i32, ++/*335705*/ OPC_MoveParent, ++/*335706*/ OPC_MoveChild, 26, ++/*335708*/ OPC_CheckInteger, 1, ++/*335710*/ OPC_CheckType, MVT::i32, ++/*335712*/ OPC_MoveParent, ++/*335713*/ OPC_MoveChild, 27, ++/*335715*/ OPC_CheckInteger, 1, ++/*335717*/ OPC_CheckType, MVT::i32, ++/*335719*/ OPC_MoveParent, ++/*335720*/ OPC_MoveChild, 28, ++/*335722*/ OPC_CheckInteger, 1, ++/*335724*/ OPC_CheckType, MVT::i32, ++/*335726*/ OPC_MoveParent, ++/*335727*/ OPC_MoveChild, 29, ++/*335729*/ OPC_CheckInteger, 1, ++/*335731*/ OPC_CheckType, MVT::i32, ++/*335733*/ OPC_MoveParent, ++/*335734*/ OPC_MoveChild, 30, ++/*335736*/ OPC_CheckInteger, 1, ++/*335738*/ OPC_CheckType, MVT::i32, ++/*335740*/ OPC_MoveParent, ++/*335741*/ OPC_MoveChild, 31, ++/*335743*/ OPC_CheckInteger, 1, ++/*335745*/ OPC_CheckType, MVT::i32, ++/*335747*/ OPC_MoveParent, ++/*335748*/ OPC_CheckType, MVT::v32i8, ++/*335750*/ OPC_MoveParent, ++/*335751*/ OPC_CheckType, MVT::v32i8, ++/*335753*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*335755*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*335763*/ /*Scope*/ 59|128,3/*443*/, /*->336208*/ ++/*335765*/ OPC_MoveChild0, ++/*335766*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*335769*/ OPC_CheckChild0Integer, 1, ++/*335771*/ OPC_CheckChild0Type, MVT::i32, ++/*335773*/ OPC_CheckChild1Integer, 1, ++/*335775*/ OPC_CheckChild1Type, MVT::i32, ++/*335777*/ OPC_CheckChild2Integer, 1, ++/*335779*/ OPC_CheckChild2Type, MVT::i32, ++/*335781*/ OPC_CheckChild3Integer, 1, ++/*335783*/ OPC_CheckChild3Type, MVT::i32, ++/*335785*/ OPC_CheckChild4Integer, 1, ++/*335787*/ OPC_CheckChild4Type, MVT::i32, ++/*335789*/ OPC_MoveChild5, ++/*335790*/ OPC_CheckInteger, 1, ++/*335792*/ OPC_CheckType, MVT::i32, ++/*335794*/ OPC_MoveParent, ++/*335795*/ OPC_MoveChild6, ++/*335796*/ OPC_CheckInteger, 1, ++/*335798*/ OPC_CheckType, MVT::i32, ++/*335800*/ OPC_MoveParent, ++/*335801*/ OPC_MoveChild7, ++/*335802*/ OPC_CheckInteger, 1, ++/*335804*/ OPC_CheckType, MVT::i32, ++/*335806*/ OPC_MoveParent, ++/*335807*/ OPC_MoveChild, 8, ++/*335809*/ OPC_CheckInteger, 1, ++/*335811*/ OPC_CheckType, MVT::i32, ++/*335813*/ OPC_MoveParent, ++/*335814*/ OPC_MoveChild, 9, ++/*335816*/ OPC_CheckInteger, 1, ++/*335818*/ OPC_CheckType, MVT::i32, ++/*335820*/ OPC_MoveParent, ++/*335821*/ OPC_MoveChild, 10, ++/*335823*/ OPC_CheckInteger, 1, ++/*335825*/ OPC_CheckType, MVT::i32, ++/*335827*/ OPC_MoveParent, ++/*335828*/ OPC_MoveChild, 11, ++/*335830*/ OPC_CheckInteger, 1, ++/*335832*/ OPC_CheckType, MVT::i32, ++/*335834*/ OPC_MoveParent, ++/*335835*/ OPC_MoveChild, 12, ++/*335837*/ OPC_CheckInteger, 1, ++/*335839*/ OPC_CheckType, MVT::i32, ++/*335841*/ OPC_MoveParent, ++/*335842*/ OPC_MoveChild, 13, ++/*335844*/ OPC_CheckInteger, 1, ++/*335846*/ OPC_CheckType, MVT::i32, ++/*335848*/ OPC_MoveParent, ++/*335849*/ OPC_MoveChild, 14, ++/*335851*/ OPC_CheckInteger, 1, ++/*335853*/ OPC_CheckType, MVT::i32, ++/*335855*/ OPC_MoveParent, ++/*335856*/ OPC_MoveChild, 15, ++/*335858*/ OPC_CheckInteger, 1, ++/*335860*/ OPC_CheckType, MVT::i32, ++/*335862*/ OPC_MoveParent, ++/*335863*/ OPC_MoveChild, 16, ++/*335865*/ OPC_CheckInteger, 1, ++/*335867*/ OPC_CheckType, MVT::i32, ++/*335869*/ OPC_MoveParent, ++/*335870*/ OPC_MoveChild, 17, ++/*335872*/ OPC_CheckInteger, 1, ++/*335874*/ OPC_CheckType, MVT::i32, ++/*335876*/ OPC_MoveParent, ++/*335877*/ OPC_MoveChild, 18, ++/*335879*/ OPC_CheckInteger, 1, ++/*335881*/ OPC_CheckType, MVT::i32, ++/*335883*/ OPC_MoveParent, ++/*335884*/ OPC_MoveChild, 19, ++/*335886*/ OPC_CheckInteger, 1, ++/*335888*/ OPC_CheckType, MVT::i32, ++/*335890*/ OPC_MoveParent, ++/*335891*/ OPC_MoveChild, 20, ++/*335893*/ OPC_CheckInteger, 1, ++/*335895*/ OPC_CheckType, MVT::i32, ++/*335897*/ OPC_MoveParent, ++/*335898*/ OPC_MoveChild, 21, ++/*335900*/ OPC_CheckInteger, 1, ++/*335902*/ OPC_CheckType, MVT::i32, ++/*335904*/ OPC_MoveParent, ++/*335905*/ OPC_MoveChild, 22, ++/*335907*/ OPC_CheckInteger, 1, ++/*335909*/ OPC_CheckType, MVT::i32, ++/*335911*/ OPC_MoveParent, ++/*335912*/ OPC_MoveChild, 23, ++/*335914*/ OPC_CheckInteger, 1, ++/*335916*/ OPC_CheckType, MVT::i32, ++/*335918*/ OPC_MoveParent, ++/*335919*/ OPC_MoveChild, 24, ++/*335921*/ OPC_CheckInteger, 1, ++/*335923*/ OPC_CheckType, MVT::i32, ++/*335925*/ OPC_MoveParent, ++/*335926*/ OPC_MoveChild, 25, ++/*335928*/ OPC_CheckInteger, 1, ++/*335930*/ OPC_CheckType, MVT::i32, ++/*335932*/ OPC_MoveParent, ++/*335933*/ OPC_MoveChild, 26, ++/*335935*/ OPC_CheckInteger, 1, ++/*335937*/ OPC_CheckType, MVT::i32, ++/*335939*/ OPC_MoveParent, ++/*335940*/ OPC_MoveChild, 27, ++/*335942*/ OPC_CheckInteger, 1, ++/*335944*/ OPC_CheckType, MVT::i32, ++/*335946*/ OPC_MoveParent, ++/*335947*/ OPC_MoveChild, 28, ++/*335949*/ OPC_CheckInteger, 1, ++/*335951*/ OPC_CheckType, MVT::i32, ++/*335953*/ OPC_MoveParent, ++/*335954*/ OPC_MoveChild, 29, ++/*335956*/ OPC_CheckInteger, 1, ++/*335958*/ OPC_CheckType, MVT::i32, ++/*335960*/ OPC_MoveParent, ++/*335961*/ OPC_MoveChild, 30, ++/*335963*/ OPC_CheckInteger, 1, ++/*335965*/ OPC_CheckType, MVT::i32, ++/*335967*/ OPC_MoveParent, ++/*335968*/ OPC_MoveChild, 31, ++/*335970*/ OPC_CheckInteger, 1, ++/*335972*/ OPC_CheckType, MVT::i32, ++/*335974*/ OPC_MoveParent, ++/*335975*/ OPC_MoveParent, ++/*335976*/ OPC_CheckChild1Same, 0, ++/*335978*/ OPC_MoveParent, ++/*335979*/ OPC_CheckChild1Same, 1, ++/*335981*/ OPC_MoveParent, ++/*335982*/ OPC_MoveParent, ++/*335983*/ OPC_MoveChild1, ++/*335984*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*335987*/ OPC_CheckChild0Integer, 1, ++/*335989*/ OPC_CheckChild0Type, MVT::i32, ++/*335991*/ OPC_CheckChild1Integer, 1, ++/*335993*/ OPC_CheckChild1Type, MVT::i32, ++/*335995*/ OPC_CheckChild2Integer, 1, ++/*335997*/ OPC_CheckChild2Type, MVT::i32, ++/*335999*/ OPC_CheckChild3Integer, 1, ++/*336001*/ OPC_CheckChild3Type, MVT::i32, ++/*336003*/ OPC_CheckChild4Integer, 1, ++/*336005*/ OPC_CheckChild4Type, MVT::i32, ++/*336007*/ OPC_MoveChild5, ++/*336008*/ OPC_CheckInteger, 1, ++/*336010*/ OPC_CheckType, MVT::i32, ++/*336012*/ OPC_MoveParent, ++/*336013*/ OPC_MoveChild6, ++/*336014*/ OPC_CheckInteger, 1, ++/*336016*/ OPC_CheckType, MVT::i32, ++/*336018*/ OPC_MoveParent, ++/*336019*/ OPC_MoveChild7, ++/*336020*/ OPC_CheckInteger, 1, ++/*336022*/ OPC_CheckType, MVT::i32, ++/*336024*/ OPC_MoveParent, ++/*336025*/ OPC_MoveChild, 8, ++/*336027*/ OPC_CheckInteger, 1, ++/*336029*/ OPC_CheckType, MVT::i32, ++/*336031*/ OPC_MoveParent, ++/*336032*/ OPC_MoveChild, 9, ++/*336034*/ OPC_CheckInteger, 1, ++/*336036*/ OPC_CheckType, MVT::i32, ++/*336038*/ OPC_MoveParent, ++/*336039*/ OPC_MoveChild, 10, ++/*336041*/ OPC_CheckInteger, 1, ++/*336043*/ OPC_CheckType, MVT::i32, ++/*336045*/ OPC_MoveParent, ++/*336046*/ OPC_MoveChild, 11, ++/*336048*/ OPC_CheckInteger, 1, ++/*336050*/ OPC_CheckType, MVT::i32, ++/*336052*/ OPC_MoveParent, ++/*336053*/ OPC_MoveChild, 12, ++/*336055*/ OPC_CheckInteger, 1, ++/*336057*/ OPC_CheckType, MVT::i32, ++/*336059*/ OPC_MoveParent, ++/*336060*/ OPC_MoveChild, 13, ++/*336062*/ OPC_CheckInteger, 1, ++/*336064*/ OPC_CheckType, MVT::i32, ++/*336066*/ OPC_MoveParent, ++/*336067*/ OPC_MoveChild, 14, ++/*336069*/ OPC_CheckInteger, 1, ++/*336071*/ OPC_CheckType, MVT::i32, ++/*336073*/ OPC_MoveParent, ++/*336074*/ OPC_MoveChild, 15, ++/*336076*/ OPC_CheckInteger, 1, ++/*336078*/ OPC_CheckType, MVT::i32, ++/*336080*/ OPC_MoveParent, ++/*336081*/ OPC_MoveChild, 16, ++/*336083*/ OPC_CheckInteger, 1, ++/*336085*/ OPC_CheckType, MVT::i32, ++/*336087*/ OPC_MoveParent, ++/*336088*/ OPC_MoveChild, 17, ++/*336090*/ OPC_CheckInteger, 1, ++/*336092*/ OPC_CheckType, MVT::i32, ++/*336094*/ OPC_MoveParent, ++/*336095*/ OPC_MoveChild, 18, ++/*336097*/ OPC_CheckInteger, 1, ++/*336099*/ OPC_CheckType, MVT::i32, ++/*336101*/ OPC_MoveParent, ++/*336102*/ OPC_MoveChild, 19, ++/*336104*/ OPC_CheckInteger, 1, ++/*336106*/ OPC_CheckType, MVT::i32, ++/*336108*/ OPC_MoveParent, ++/*336109*/ OPC_MoveChild, 20, ++/*336111*/ OPC_CheckInteger, 1, ++/*336113*/ OPC_CheckType, MVT::i32, ++/*336115*/ OPC_MoveParent, ++/*336116*/ OPC_MoveChild, 21, ++/*336118*/ OPC_CheckInteger, 1, ++/*336120*/ OPC_CheckType, MVT::i32, ++/*336122*/ OPC_MoveParent, ++/*336123*/ OPC_MoveChild, 22, ++/*336125*/ OPC_CheckInteger, 1, ++/*336127*/ OPC_CheckType, MVT::i32, ++/*336129*/ OPC_MoveParent, ++/*336130*/ OPC_MoveChild, 23, ++/*336132*/ OPC_CheckInteger, 1, ++/*336134*/ OPC_CheckType, MVT::i32, ++/*336136*/ OPC_MoveParent, ++/*336137*/ OPC_MoveChild, 24, ++/*336139*/ OPC_CheckInteger, 1, ++/*336141*/ OPC_CheckType, MVT::i32, ++/*336143*/ OPC_MoveParent, ++/*336144*/ OPC_MoveChild, 25, ++/*336146*/ OPC_CheckInteger, 1, ++/*336148*/ OPC_CheckType, MVT::i32, ++/*336150*/ OPC_MoveParent, ++/*336151*/ OPC_MoveChild, 26, ++/*336153*/ OPC_CheckInteger, 1, ++/*336155*/ OPC_CheckType, MVT::i32, ++/*336157*/ OPC_MoveParent, ++/*336158*/ OPC_MoveChild, 27, ++/*336160*/ OPC_CheckInteger, 1, ++/*336162*/ OPC_CheckType, MVT::i32, ++/*336164*/ OPC_MoveParent, ++/*336165*/ OPC_MoveChild, 28, ++/*336167*/ OPC_CheckInteger, 1, ++/*336169*/ OPC_CheckType, MVT::i32, ++/*336171*/ OPC_MoveParent, ++/*336172*/ OPC_MoveChild, 29, ++/*336174*/ OPC_CheckInteger, 1, ++/*336176*/ OPC_CheckType, MVT::i32, ++/*336178*/ OPC_MoveParent, ++/*336179*/ OPC_MoveChild, 30, ++/*336181*/ OPC_CheckInteger, 1, ++/*336183*/ OPC_CheckType, MVT::i32, ++/*336185*/ OPC_MoveParent, ++/*336186*/ OPC_MoveChild, 31, ++/*336188*/ OPC_CheckInteger, 1, ++/*336190*/ OPC_CheckType, MVT::i32, ++/*336192*/ OPC_MoveParent, ++/*336193*/ OPC_CheckType, MVT::v32i8, ++/*336195*/ OPC_MoveParent, ++/*336196*/ OPC_CheckType, MVT::v32i8, ++/*336198*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*336200*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b), LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*336208*/ /*Scope*/ 59|128,3/*443*/, /*->336653*/ ++/*336210*/ OPC_CheckChild0Same, 0, ++/*336212*/ OPC_MoveChild1, ++/*336213*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*336216*/ OPC_CheckChild0Integer, 1, ++/*336218*/ OPC_CheckChild0Type, MVT::i32, ++/*336220*/ OPC_CheckChild1Integer, 1, ++/*336222*/ OPC_CheckChild1Type, MVT::i32, ++/*336224*/ OPC_CheckChild2Integer, 1, ++/*336226*/ OPC_CheckChild2Type, MVT::i32, ++/*336228*/ OPC_CheckChild3Integer, 1, ++/*336230*/ OPC_CheckChild3Type, MVT::i32, ++/*336232*/ OPC_CheckChild4Integer, 1, ++/*336234*/ OPC_CheckChild4Type, MVT::i32, ++/*336236*/ OPC_MoveChild5, ++/*336237*/ OPC_CheckInteger, 1, ++/*336239*/ OPC_CheckType, MVT::i32, ++/*336241*/ OPC_MoveParent, ++/*336242*/ OPC_MoveChild6, ++/*336243*/ OPC_CheckInteger, 1, ++/*336245*/ OPC_CheckType, MVT::i32, ++/*336247*/ OPC_MoveParent, ++/*336248*/ OPC_MoveChild7, ++/*336249*/ OPC_CheckInteger, 1, ++/*336251*/ OPC_CheckType, MVT::i32, ++/*336253*/ OPC_MoveParent, ++/*336254*/ OPC_MoveChild, 8, ++/*336256*/ OPC_CheckInteger, 1, ++/*336258*/ OPC_CheckType, MVT::i32, ++/*336260*/ OPC_MoveParent, ++/*336261*/ OPC_MoveChild, 9, ++/*336263*/ OPC_CheckInteger, 1, ++/*336265*/ OPC_CheckType, MVT::i32, ++/*336267*/ OPC_MoveParent, ++/*336268*/ OPC_MoveChild, 10, ++/*336270*/ OPC_CheckInteger, 1, ++/*336272*/ OPC_CheckType, MVT::i32, ++/*336274*/ OPC_MoveParent, ++/*336275*/ OPC_MoveChild, 11, ++/*336277*/ OPC_CheckInteger, 1, ++/*336279*/ OPC_CheckType, MVT::i32, ++/*336281*/ OPC_MoveParent, ++/*336282*/ OPC_MoveChild, 12, ++/*336284*/ OPC_CheckInteger, 1, ++/*336286*/ OPC_CheckType, MVT::i32, ++/*336288*/ OPC_MoveParent, ++/*336289*/ OPC_MoveChild, 13, ++/*336291*/ OPC_CheckInteger, 1, ++/*336293*/ OPC_CheckType, MVT::i32, ++/*336295*/ OPC_MoveParent, ++/*336296*/ OPC_MoveChild, 14, ++/*336298*/ OPC_CheckInteger, 1, ++/*336300*/ OPC_CheckType, MVT::i32, ++/*336302*/ OPC_MoveParent, ++/*336303*/ OPC_MoveChild, 15, ++/*336305*/ OPC_CheckInteger, 1, ++/*336307*/ OPC_CheckType, MVT::i32, ++/*336309*/ OPC_MoveParent, ++/*336310*/ OPC_MoveChild, 16, ++/*336312*/ OPC_CheckInteger, 1, ++/*336314*/ OPC_CheckType, MVT::i32, ++/*336316*/ OPC_MoveParent, ++/*336317*/ OPC_MoveChild, 17, ++/*336319*/ OPC_CheckInteger, 1, ++/*336321*/ OPC_CheckType, MVT::i32, ++/*336323*/ OPC_MoveParent, ++/*336324*/ OPC_MoveChild, 18, ++/*336326*/ OPC_CheckInteger, 1, ++/*336328*/ OPC_CheckType, MVT::i32, ++/*336330*/ OPC_MoveParent, ++/*336331*/ OPC_MoveChild, 19, ++/*336333*/ OPC_CheckInteger, 1, ++/*336335*/ OPC_CheckType, MVT::i32, ++/*336337*/ OPC_MoveParent, ++/*336338*/ OPC_MoveChild, 20, ++/*336340*/ OPC_CheckInteger, 1, ++/*336342*/ OPC_CheckType, MVT::i32, ++/*336344*/ OPC_MoveParent, ++/*336345*/ OPC_MoveChild, 21, ++/*336347*/ OPC_CheckInteger, 1, ++/*336349*/ OPC_CheckType, MVT::i32, ++/*336351*/ OPC_MoveParent, ++/*336352*/ OPC_MoveChild, 22, ++/*336354*/ OPC_CheckInteger, 1, ++/*336356*/ OPC_CheckType, MVT::i32, ++/*336358*/ OPC_MoveParent, ++/*336359*/ OPC_MoveChild, 23, ++/*336361*/ OPC_CheckInteger, 1, ++/*336363*/ OPC_CheckType, MVT::i32, ++/*336365*/ OPC_MoveParent, ++/*336366*/ OPC_MoveChild, 24, ++/*336368*/ OPC_CheckInteger, 1, ++/*336370*/ OPC_CheckType, MVT::i32, ++/*336372*/ OPC_MoveParent, ++/*336373*/ OPC_MoveChild, 25, ++/*336375*/ OPC_CheckInteger, 1, ++/*336377*/ OPC_CheckType, MVT::i32, ++/*336379*/ OPC_MoveParent, ++/*336380*/ OPC_MoveChild, 26, ++/*336382*/ OPC_CheckInteger, 1, ++/*336384*/ OPC_CheckType, MVT::i32, ++/*336386*/ OPC_MoveParent, ++/*336387*/ OPC_MoveChild, 27, ++/*336389*/ OPC_CheckInteger, 1, ++/*336391*/ OPC_CheckType, MVT::i32, ++/*336393*/ OPC_MoveParent, ++/*336394*/ OPC_MoveChild, 28, ++/*336396*/ OPC_CheckInteger, 1, ++/*336398*/ OPC_CheckType, MVT::i32, ++/*336400*/ OPC_MoveParent, ++/*336401*/ OPC_MoveChild, 29, ++/*336403*/ OPC_CheckInteger, 1, ++/*336405*/ OPC_CheckType, MVT::i32, ++/*336407*/ OPC_MoveParent, ++/*336408*/ OPC_MoveChild, 30, ++/*336410*/ OPC_CheckInteger, 1, ++/*336412*/ OPC_CheckType, MVT::i32, ++/*336414*/ OPC_MoveParent, ++/*336415*/ OPC_MoveChild, 31, ++/*336417*/ OPC_CheckInteger, 1, ++/*336419*/ OPC_CheckType, MVT::i32, ++/*336421*/ OPC_MoveParent, ++/*336422*/ OPC_MoveParent, ++/*336423*/ OPC_MoveParent, ++/*336424*/ OPC_CheckChild1Same, 1, ++/*336426*/ OPC_MoveParent, ++/*336427*/ OPC_MoveParent, ++/*336428*/ OPC_MoveChild1, ++/*336429*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*336432*/ OPC_CheckChild0Integer, 1, ++/*336434*/ OPC_CheckChild0Type, MVT::i32, ++/*336436*/ OPC_CheckChild1Integer, 1, ++/*336438*/ OPC_CheckChild1Type, MVT::i32, ++/*336440*/ OPC_CheckChild2Integer, 1, ++/*336442*/ OPC_CheckChild2Type, MVT::i32, ++/*336444*/ OPC_CheckChild3Integer, 1, ++/*336446*/ OPC_CheckChild3Type, MVT::i32, ++/*336448*/ OPC_CheckChild4Integer, 1, ++/*336450*/ OPC_CheckChild4Type, MVT::i32, ++/*336452*/ OPC_MoveChild5, ++/*336453*/ OPC_CheckInteger, 1, ++/*336455*/ OPC_CheckType, MVT::i32, ++/*336457*/ OPC_MoveParent, ++/*336458*/ OPC_MoveChild6, ++/*336459*/ OPC_CheckInteger, 1, ++/*336461*/ OPC_CheckType, MVT::i32, ++/*336463*/ OPC_MoveParent, ++/*336464*/ OPC_MoveChild7, ++/*336465*/ OPC_CheckInteger, 1, ++/*336467*/ OPC_CheckType, MVT::i32, ++/*336469*/ OPC_MoveParent, ++/*336470*/ OPC_MoveChild, 8, ++/*336472*/ OPC_CheckInteger, 1, ++/*336474*/ OPC_CheckType, MVT::i32, ++/*336476*/ OPC_MoveParent, ++/*336477*/ OPC_MoveChild, 9, ++/*336479*/ OPC_CheckInteger, 1, ++/*336481*/ OPC_CheckType, MVT::i32, ++/*336483*/ OPC_MoveParent, ++/*336484*/ OPC_MoveChild, 10, ++/*336486*/ OPC_CheckInteger, 1, ++/*336488*/ OPC_CheckType, MVT::i32, ++/*336490*/ OPC_MoveParent, ++/*336491*/ OPC_MoveChild, 11, ++/*336493*/ OPC_CheckInteger, 1, ++/*336495*/ OPC_CheckType, MVT::i32, ++/*336497*/ OPC_MoveParent, ++/*336498*/ OPC_MoveChild, 12, ++/*336500*/ OPC_CheckInteger, 1, ++/*336502*/ OPC_CheckType, MVT::i32, ++/*336504*/ OPC_MoveParent, ++/*336505*/ OPC_MoveChild, 13, ++/*336507*/ OPC_CheckInteger, 1, ++/*336509*/ OPC_CheckType, MVT::i32, ++/*336511*/ OPC_MoveParent, ++/*336512*/ OPC_MoveChild, 14, ++/*336514*/ OPC_CheckInteger, 1, ++/*336516*/ OPC_CheckType, MVT::i32, ++/*336518*/ OPC_MoveParent, ++/*336519*/ OPC_MoveChild, 15, ++/*336521*/ OPC_CheckInteger, 1, ++/*336523*/ OPC_CheckType, MVT::i32, ++/*336525*/ OPC_MoveParent, ++/*336526*/ OPC_MoveChild, 16, ++/*336528*/ OPC_CheckInteger, 1, ++/*336530*/ OPC_CheckType, MVT::i32, ++/*336532*/ OPC_MoveParent, ++/*336533*/ OPC_MoveChild, 17, ++/*336535*/ OPC_CheckInteger, 1, ++/*336537*/ OPC_CheckType, MVT::i32, ++/*336539*/ OPC_MoveParent, ++/*336540*/ OPC_MoveChild, 18, ++/*336542*/ OPC_CheckInteger, 1, ++/*336544*/ OPC_CheckType, MVT::i32, ++/*336546*/ OPC_MoveParent, ++/*336547*/ OPC_MoveChild, 19, ++/*336549*/ OPC_CheckInteger, 1, ++/*336551*/ OPC_CheckType, MVT::i32, ++/*336553*/ OPC_MoveParent, ++/*336554*/ OPC_MoveChild, 20, ++/*336556*/ OPC_CheckInteger, 1, ++/*336558*/ OPC_CheckType, MVT::i32, ++/*336560*/ OPC_MoveParent, ++/*336561*/ OPC_MoveChild, 21, ++/*336563*/ OPC_CheckInteger, 1, ++/*336565*/ OPC_CheckType, MVT::i32, ++/*336567*/ OPC_MoveParent, ++/*336568*/ OPC_MoveChild, 22, ++/*336570*/ OPC_CheckInteger, 1, ++/*336572*/ OPC_CheckType, MVT::i32, ++/*336574*/ OPC_MoveParent, ++/*336575*/ OPC_MoveChild, 23, ++/*336577*/ OPC_CheckInteger, 1, ++/*336579*/ OPC_CheckType, MVT::i32, ++/*336581*/ OPC_MoveParent, ++/*336582*/ OPC_MoveChild, 24, ++/*336584*/ OPC_CheckInteger, 1, ++/*336586*/ OPC_CheckType, MVT::i32, ++/*336588*/ OPC_MoveParent, ++/*336589*/ OPC_MoveChild, 25, ++/*336591*/ OPC_CheckInteger, 1, ++/*336593*/ OPC_CheckType, MVT::i32, ++/*336595*/ OPC_MoveParent, ++/*336596*/ OPC_MoveChild, 26, ++/*336598*/ OPC_CheckInteger, 1, ++/*336600*/ OPC_CheckType, MVT::i32, ++/*336602*/ OPC_MoveParent, ++/*336603*/ OPC_MoveChild, 27, ++/*336605*/ OPC_CheckInteger, 1, ++/*336607*/ OPC_CheckType, MVT::i32, ++/*336609*/ OPC_MoveParent, ++/*336610*/ OPC_MoveChild, 28, ++/*336612*/ OPC_CheckInteger, 1, ++/*336614*/ OPC_CheckType, MVT::i32, ++/*336616*/ OPC_MoveParent, ++/*336617*/ OPC_MoveChild, 29, ++/*336619*/ OPC_CheckInteger, 1, ++/*336621*/ OPC_CheckType, MVT::i32, ++/*336623*/ OPC_MoveParent, ++/*336624*/ OPC_MoveChild, 30, ++/*336626*/ OPC_CheckInteger, 1, ++/*336628*/ OPC_CheckType, MVT::i32, ++/*336630*/ OPC_MoveParent, ++/*336631*/ OPC_MoveChild, 31, ++/*336633*/ OPC_CheckInteger, 1, ++/*336635*/ OPC_CheckType, MVT::i32, ++/*336637*/ OPC_MoveParent, ++/*336638*/ OPC_CheckType, MVT::v32i8, ++/*336640*/ OPC_MoveParent, ++/*336641*/ OPC_CheckType, MVT::v32i8, ++/*336643*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*336645*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*336653*/ /*Scope*/ 59|128,3/*443*/, /*->337098*/ ++/*336655*/ OPC_CheckChild0Same, 1, ++/*336657*/ OPC_CheckChild1Same, 0, ++/*336659*/ OPC_MoveParent, ++/*336660*/ OPC_MoveChild1, ++/*336661*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*336664*/ OPC_CheckChild0Integer, 1, ++/*336666*/ OPC_CheckChild0Type, MVT::i32, ++/*336668*/ OPC_CheckChild1Integer, 1, ++/*336670*/ OPC_CheckChild1Type, MVT::i32, ++/*336672*/ OPC_CheckChild2Integer, 1, ++/*336674*/ OPC_CheckChild2Type, MVT::i32, ++/*336676*/ OPC_CheckChild3Integer, 1, ++/*336678*/ OPC_CheckChild3Type, MVT::i32, ++/*336680*/ OPC_CheckChild4Integer, 1, ++/*336682*/ OPC_CheckChild4Type, MVT::i32, ++/*336684*/ OPC_MoveChild5, ++/*336685*/ OPC_CheckInteger, 1, ++/*336687*/ OPC_CheckType, MVT::i32, ++/*336689*/ OPC_MoveParent, ++/*336690*/ OPC_MoveChild6, ++/*336691*/ OPC_CheckInteger, 1, ++/*336693*/ OPC_CheckType, MVT::i32, ++/*336695*/ OPC_MoveParent, ++/*336696*/ OPC_MoveChild7, ++/*336697*/ OPC_CheckInteger, 1, ++/*336699*/ OPC_CheckType, MVT::i32, ++/*336701*/ OPC_MoveParent, ++/*336702*/ OPC_MoveChild, 8, ++/*336704*/ OPC_CheckInteger, 1, ++/*336706*/ OPC_CheckType, MVT::i32, ++/*336708*/ OPC_MoveParent, ++/*336709*/ OPC_MoveChild, 9, ++/*336711*/ OPC_CheckInteger, 1, ++/*336713*/ OPC_CheckType, MVT::i32, ++/*336715*/ OPC_MoveParent, ++/*336716*/ OPC_MoveChild, 10, ++/*336718*/ OPC_CheckInteger, 1, ++/*336720*/ OPC_CheckType, MVT::i32, ++/*336722*/ OPC_MoveParent, ++/*336723*/ OPC_MoveChild, 11, ++/*336725*/ OPC_CheckInteger, 1, ++/*336727*/ OPC_CheckType, MVT::i32, ++/*336729*/ OPC_MoveParent, ++/*336730*/ OPC_MoveChild, 12, ++/*336732*/ OPC_CheckInteger, 1, ++/*336734*/ OPC_CheckType, MVT::i32, ++/*336736*/ OPC_MoveParent, ++/*336737*/ OPC_MoveChild, 13, ++/*336739*/ OPC_CheckInteger, 1, ++/*336741*/ OPC_CheckType, MVT::i32, ++/*336743*/ OPC_MoveParent, ++/*336744*/ OPC_MoveChild, 14, ++/*336746*/ OPC_CheckInteger, 1, ++/*336748*/ OPC_CheckType, MVT::i32, ++/*336750*/ OPC_MoveParent, ++/*336751*/ OPC_MoveChild, 15, ++/*336753*/ OPC_CheckInteger, 1, ++/*336755*/ OPC_CheckType, MVT::i32, ++/*336757*/ OPC_MoveParent, ++/*336758*/ OPC_MoveChild, 16, ++/*336760*/ OPC_CheckInteger, 1, ++/*336762*/ OPC_CheckType, MVT::i32, ++/*336764*/ OPC_MoveParent, ++/*336765*/ OPC_MoveChild, 17, ++/*336767*/ OPC_CheckInteger, 1, ++/*336769*/ OPC_CheckType, MVT::i32, ++/*336771*/ OPC_MoveParent, ++/*336772*/ OPC_MoveChild, 18, ++/*336774*/ OPC_CheckInteger, 1, ++/*336776*/ OPC_CheckType, MVT::i32, ++/*336778*/ OPC_MoveParent, ++/*336779*/ OPC_MoveChild, 19, ++/*336781*/ OPC_CheckInteger, 1, ++/*336783*/ OPC_CheckType, MVT::i32, ++/*336785*/ OPC_MoveParent, ++/*336786*/ OPC_MoveChild, 20, ++/*336788*/ OPC_CheckInteger, 1, ++/*336790*/ OPC_CheckType, MVT::i32, ++/*336792*/ OPC_MoveParent, ++/*336793*/ OPC_MoveChild, 21, ++/*336795*/ OPC_CheckInteger, 1, ++/*336797*/ OPC_CheckType, MVT::i32, ++/*336799*/ OPC_MoveParent, ++/*336800*/ OPC_MoveChild, 22, ++/*336802*/ OPC_CheckInteger, 1, ++/*336804*/ OPC_CheckType, MVT::i32, ++/*336806*/ OPC_MoveParent, ++/*336807*/ OPC_MoveChild, 23, ++/*336809*/ OPC_CheckInteger, 1, ++/*336811*/ OPC_CheckType, MVT::i32, ++/*336813*/ OPC_MoveParent, ++/*336814*/ OPC_MoveChild, 24, ++/*336816*/ OPC_CheckInteger, 1, ++/*336818*/ OPC_CheckType, MVT::i32, ++/*336820*/ OPC_MoveParent, ++/*336821*/ OPC_MoveChild, 25, ++/*336823*/ OPC_CheckInteger, 1, ++/*336825*/ OPC_CheckType, MVT::i32, ++/*336827*/ OPC_MoveParent, ++/*336828*/ OPC_MoveChild, 26, ++/*336830*/ OPC_CheckInteger, 1, ++/*336832*/ OPC_CheckType, MVT::i32, ++/*336834*/ OPC_MoveParent, ++/*336835*/ OPC_MoveChild, 27, ++/*336837*/ OPC_CheckInteger, 1, ++/*336839*/ OPC_CheckType, MVT::i32, ++/*336841*/ OPC_MoveParent, ++/*336842*/ OPC_MoveChild, 28, ++/*336844*/ OPC_CheckInteger, 1, ++/*336846*/ OPC_CheckType, MVT::i32, ++/*336848*/ OPC_MoveParent, ++/*336849*/ OPC_MoveChild, 29, ++/*336851*/ OPC_CheckInteger, 1, ++/*336853*/ OPC_CheckType, MVT::i32, ++/*336855*/ OPC_MoveParent, ++/*336856*/ OPC_MoveChild, 30, ++/*336858*/ OPC_CheckInteger, 1, ++/*336860*/ OPC_CheckType, MVT::i32, ++/*336862*/ OPC_MoveParent, ++/*336863*/ OPC_MoveChild, 31, ++/*336865*/ OPC_CheckInteger, 1, ++/*336867*/ OPC_CheckType, MVT::i32, ++/*336869*/ OPC_MoveParent, ++/*336870*/ OPC_MoveParent, ++/*336871*/ OPC_MoveParent, ++/*336872*/ OPC_MoveParent, ++/*336873*/ OPC_MoveChild1, ++/*336874*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*336877*/ OPC_CheckChild0Integer, 1, ++/*336879*/ OPC_CheckChild0Type, MVT::i32, ++/*336881*/ OPC_CheckChild1Integer, 1, ++/*336883*/ OPC_CheckChild1Type, MVT::i32, ++/*336885*/ OPC_CheckChild2Integer, 1, ++/*336887*/ OPC_CheckChild2Type, MVT::i32, ++/*336889*/ OPC_CheckChild3Integer, 1, ++/*336891*/ OPC_CheckChild3Type, MVT::i32, ++/*336893*/ OPC_CheckChild4Integer, 1, ++/*336895*/ OPC_CheckChild4Type, MVT::i32, ++/*336897*/ OPC_MoveChild5, ++/*336898*/ OPC_CheckInteger, 1, ++/*336900*/ OPC_CheckType, MVT::i32, ++/*336902*/ OPC_MoveParent, ++/*336903*/ OPC_MoveChild6, ++/*336904*/ OPC_CheckInteger, 1, ++/*336906*/ OPC_CheckType, MVT::i32, ++/*336908*/ OPC_MoveParent, ++/*336909*/ OPC_MoveChild7, ++/*336910*/ OPC_CheckInteger, 1, ++/*336912*/ OPC_CheckType, MVT::i32, ++/*336914*/ OPC_MoveParent, ++/*336915*/ OPC_MoveChild, 8, ++/*336917*/ OPC_CheckInteger, 1, ++/*336919*/ OPC_CheckType, MVT::i32, ++/*336921*/ OPC_MoveParent, ++/*336922*/ OPC_MoveChild, 9, ++/*336924*/ OPC_CheckInteger, 1, ++/*336926*/ OPC_CheckType, MVT::i32, ++/*336928*/ OPC_MoveParent, ++/*336929*/ OPC_MoveChild, 10, ++/*336931*/ OPC_CheckInteger, 1, ++/*336933*/ OPC_CheckType, MVT::i32, ++/*336935*/ OPC_MoveParent, ++/*336936*/ OPC_MoveChild, 11, ++/*336938*/ OPC_CheckInteger, 1, ++/*336940*/ OPC_CheckType, MVT::i32, ++/*336942*/ OPC_MoveParent, ++/*336943*/ OPC_MoveChild, 12, ++/*336945*/ OPC_CheckInteger, 1, ++/*336947*/ OPC_CheckType, MVT::i32, ++/*336949*/ OPC_MoveParent, ++/*336950*/ OPC_MoveChild, 13, ++/*336952*/ OPC_CheckInteger, 1, ++/*336954*/ OPC_CheckType, MVT::i32, ++/*336956*/ OPC_MoveParent, ++/*336957*/ OPC_MoveChild, 14, ++/*336959*/ OPC_CheckInteger, 1, ++/*336961*/ OPC_CheckType, MVT::i32, ++/*336963*/ OPC_MoveParent, ++/*336964*/ OPC_MoveChild, 15, ++/*336966*/ OPC_CheckInteger, 1, ++/*336968*/ OPC_CheckType, MVT::i32, ++/*336970*/ OPC_MoveParent, ++/*336971*/ OPC_MoveChild, 16, ++/*336973*/ OPC_CheckInteger, 1, ++/*336975*/ OPC_CheckType, MVT::i32, ++/*336977*/ OPC_MoveParent, ++/*336978*/ OPC_MoveChild, 17, ++/*336980*/ OPC_CheckInteger, 1, ++/*336982*/ OPC_CheckType, MVT::i32, ++/*336984*/ OPC_MoveParent, ++/*336985*/ OPC_MoveChild, 18, ++/*336987*/ OPC_CheckInteger, 1, ++/*336989*/ OPC_CheckType, MVT::i32, ++/*336991*/ OPC_MoveParent, ++/*336992*/ OPC_MoveChild, 19, ++/*336994*/ OPC_CheckInteger, 1, ++/*336996*/ OPC_CheckType, MVT::i32, ++/*336998*/ OPC_MoveParent, ++/*336999*/ OPC_MoveChild, 20, ++/*337001*/ OPC_CheckInteger, 1, ++/*337003*/ OPC_CheckType, MVT::i32, ++/*337005*/ OPC_MoveParent, ++/*337006*/ OPC_MoveChild, 21, ++/*337008*/ OPC_CheckInteger, 1, ++/*337010*/ OPC_CheckType, MVT::i32, ++/*337012*/ OPC_MoveParent, ++/*337013*/ OPC_MoveChild, 22, ++/*337015*/ OPC_CheckInteger, 1, ++/*337017*/ OPC_CheckType, MVT::i32, ++/*337019*/ OPC_MoveParent, ++/*337020*/ OPC_MoveChild, 23, ++/*337022*/ OPC_CheckInteger, 1, ++/*337024*/ OPC_CheckType, MVT::i32, ++/*337026*/ OPC_MoveParent, ++/*337027*/ OPC_MoveChild, 24, ++/*337029*/ OPC_CheckInteger, 1, ++/*337031*/ OPC_CheckType, MVT::i32, ++/*337033*/ OPC_MoveParent, ++/*337034*/ OPC_MoveChild, 25, ++/*337036*/ OPC_CheckInteger, 1, ++/*337038*/ OPC_CheckType, MVT::i32, ++/*337040*/ OPC_MoveParent, ++/*337041*/ OPC_MoveChild, 26, ++/*337043*/ OPC_CheckInteger, 1, ++/*337045*/ OPC_CheckType, MVT::i32, ++/*337047*/ OPC_MoveParent, ++/*337048*/ OPC_MoveChild, 27, ++/*337050*/ OPC_CheckInteger, 1, ++/*337052*/ OPC_CheckType, MVT::i32, ++/*337054*/ OPC_MoveParent, ++/*337055*/ OPC_MoveChild, 28, ++/*337057*/ OPC_CheckInteger, 1, ++/*337059*/ OPC_CheckType, MVT::i32, ++/*337061*/ OPC_MoveParent, ++/*337062*/ OPC_MoveChild, 29, ++/*337064*/ OPC_CheckInteger, 1, ++/*337066*/ OPC_CheckType, MVT::i32, ++/*337068*/ OPC_MoveParent, ++/*337069*/ OPC_MoveChild, 30, ++/*337071*/ OPC_CheckInteger, 1, ++/*337073*/ OPC_CheckType, MVT::i32, ++/*337075*/ OPC_MoveParent, ++/*337076*/ OPC_MoveChild, 31, ++/*337078*/ OPC_CheckInteger, 1, ++/*337080*/ OPC_CheckType, MVT::i32, ++/*337082*/ OPC_MoveParent, ++/*337083*/ OPC_CheckType, MVT::v32i8, ++/*337085*/ OPC_MoveParent, ++/*337086*/ OPC_CheckType, MVT::v32i8, ++/*337088*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*337090*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*337098*/ /*Scope*/ 59|128,3/*443*/, /*->337543*/ ++/*337100*/ OPC_CheckChild0Same, 0, ++/*337102*/ OPC_CheckChild1Same, 1, ++/*337104*/ OPC_MoveParent, ++/*337105*/ OPC_MoveChild1, ++/*337106*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*337109*/ OPC_CheckChild0Integer, 1, ++/*337111*/ OPC_CheckChild0Type, MVT::i32, ++/*337113*/ OPC_CheckChild1Integer, 1, ++/*337115*/ OPC_CheckChild1Type, MVT::i32, ++/*337117*/ OPC_CheckChild2Integer, 1, ++/*337119*/ OPC_CheckChild2Type, MVT::i32, ++/*337121*/ OPC_CheckChild3Integer, 1, ++/*337123*/ OPC_CheckChild3Type, MVT::i32, ++/*337125*/ OPC_CheckChild4Integer, 1, ++/*337127*/ OPC_CheckChild4Type, MVT::i32, ++/*337129*/ OPC_MoveChild5, ++/*337130*/ OPC_CheckInteger, 1, ++/*337132*/ OPC_CheckType, MVT::i32, ++/*337134*/ OPC_MoveParent, ++/*337135*/ OPC_MoveChild6, ++/*337136*/ OPC_CheckInteger, 1, ++/*337138*/ OPC_CheckType, MVT::i32, ++/*337140*/ OPC_MoveParent, ++/*337141*/ OPC_MoveChild7, ++/*337142*/ OPC_CheckInteger, 1, ++/*337144*/ OPC_CheckType, MVT::i32, ++/*337146*/ OPC_MoveParent, ++/*337147*/ OPC_MoveChild, 8, ++/*337149*/ OPC_CheckInteger, 1, ++/*337151*/ OPC_CheckType, MVT::i32, ++/*337153*/ OPC_MoveParent, ++/*337154*/ OPC_MoveChild, 9, ++/*337156*/ OPC_CheckInteger, 1, ++/*337158*/ OPC_CheckType, MVT::i32, ++/*337160*/ OPC_MoveParent, ++/*337161*/ OPC_MoveChild, 10, ++/*337163*/ OPC_CheckInteger, 1, ++/*337165*/ OPC_CheckType, MVT::i32, ++/*337167*/ OPC_MoveParent, ++/*337168*/ OPC_MoveChild, 11, ++/*337170*/ OPC_CheckInteger, 1, ++/*337172*/ OPC_CheckType, MVT::i32, ++/*337174*/ OPC_MoveParent, ++/*337175*/ OPC_MoveChild, 12, ++/*337177*/ OPC_CheckInteger, 1, ++/*337179*/ OPC_CheckType, MVT::i32, ++/*337181*/ OPC_MoveParent, ++/*337182*/ OPC_MoveChild, 13, ++/*337184*/ OPC_CheckInteger, 1, ++/*337186*/ OPC_CheckType, MVT::i32, ++/*337188*/ OPC_MoveParent, ++/*337189*/ OPC_MoveChild, 14, ++/*337191*/ OPC_CheckInteger, 1, ++/*337193*/ OPC_CheckType, MVT::i32, ++/*337195*/ OPC_MoveParent, ++/*337196*/ OPC_MoveChild, 15, ++/*337198*/ OPC_CheckInteger, 1, ++/*337200*/ OPC_CheckType, MVT::i32, ++/*337202*/ OPC_MoveParent, ++/*337203*/ OPC_MoveChild, 16, ++/*337205*/ OPC_CheckInteger, 1, ++/*337207*/ OPC_CheckType, MVT::i32, ++/*337209*/ OPC_MoveParent, ++/*337210*/ OPC_MoveChild, 17, ++/*337212*/ OPC_CheckInteger, 1, ++/*337214*/ OPC_CheckType, MVT::i32, ++/*337216*/ OPC_MoveParent, ++/*337217*/ OPC_MoveChild, 18, ++/*337219*/ OPC_CheckInteger, 1, ++/*337221*/ OPC_CheckType, MVT::i32, ++/*337223*/ OPC_MoveParent, ++/*337224*/ OPC_MoveChild, 19, ++/*337226*/ OPC_CheckInteger, 1, ++/*337228*/ OPC_CheckType, MVT::i32, ++/*337230*/ OPC_MoveParent, ++/*337231*/ OPC_MoveChild, 20, ++/*337233*/ OPC_CheckInteger, 1, ++/*337235*/ OPC_CheckType, MVT::i32, ++/*337237*/ OPC_MoveParent, ++/*337238*/ OPC_MoveChild, 21, ++/*337240*/ OPC_CheckInteger, 1, ++/*337242*/ OPC_CheckType, MVT::i32, ++/*337244*/ OPC_MoveParent, ++/*337245*/ OPC_MoveChild, 22, ++/*337247*/ OPC_CheckInteger, 1, ++/*337249*/ OPC_CheckType, MVT::i32, ++/*337251*/ OPC_MoveParent, ++/*337252*/ OPC_MoveChild, 23, ++/*337254*/ OPC_CheckInteger, 1, ++/*337256*/ OPC_CheckType, MVT::i32, ++/*337258*/ OPC_MoveParent, ++/*337259*/ OPC_MoveChild, 24, ++/*337261*/ OPC_CheckInteger, 1, ++/*337263*/ OPC_CheckType, MVT::i32, ++/*337265*/ OPC_MoveParent, ++/*337266*/ OPC_MoveChild, 25, ++/*337268*/ OPC_CheckInteger, 1, ++/*337270*/ OPC_CheckType, MVT::i32, ++/*337272*/ OPC_MoveParent, ++/*337273*/ OPC_MoveChild, 26, ++/*337275*/ OPC_CheckInteger, 1, ++/*337277*/ OPC_CheckType, MVT::i32, ++/*337279*/ OPC_MoveParent, ++/*337280*/ OPC_MoveChild, 27, ++/*337282*/ OPC_CheckInteger, 1, ++/*337284*/ OPC_CheckType, MVT::i32, ++/*337286*/ OPC_MoveParent, ++/*337287*/ OPC_MoveChild, 28, ++/*337289*/ OPC_CheckInteger, 1, ++/*337291*/ OPC_CheckType, MVT::i32, ++/*337293*/ OPC_MoveParent, ++/*337294*/ OPC_MoveChild, 29, ++/*337296*/ OPC_CheckInteger, 1, ++/*337298*/ OPC_CheckType, MVT::i32, ++/*337300*/ OPC_MoveParent, ++/*337301*/ OPC_MoveChild, 30, ++/*337303*/ OPC_CheckInteger, 1, ++/*337305*/ OPC_CheckType, MVT::i32, ++/*337307*/ OPC_MoveParent, ++/*337308*/ OPC_MoveChild, 31, ++/*337310*/ OPC_CheckInteger, 1, ++/*337312*/ OPC_CheckType, MVT::i32, ++/*337314*/ OPC_MoveParent, ++/*337315*/ OPC_MoveParent, ++/*337316*/ OPC_MoveParent, ++/*337317*/ OPC_MoveParent, ++/*337318*/ OPC_MoveChild1, ++/*337319*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*337322*/ OPC_CheckChild0Integer, 1, ++/*337324*/ OPC_CheckChild0Type, MVT::i32, ++/*337326*/ OPC_CheckChild1Integer, 1, ++/*337328*/ OPC_CheckChild1Type, MVT::i32, ++/*337330*/ OPC_CheckChild2Integer, 1, ++/*337332*/ OPC_CheckChild2Type, MVT::i32, ++/*337334*/ OPC_CheckChild3Integer, 1, ++/*337336*/ OPC_CheckChild3Type, MVT::i32, ++/*337338*/ OPC_CheckChild4Integer, 1, ++/*337340*/ OPC_CheckChild4Type, MVT::i32, ++/*337342*/ OPC_MoveChild5, ++/*337343*/ OPC_CheckInteger, 1, ++/*337345*/ OPC_CheckType, MVT::i32, ++/*337347*/ OPC_MoveParent, ++/*337348*/ OPC_MoveChild6, ++/*337349*/ OPC_CheckInteger, 1, ++/*337351*/ OPC_CheckType, MVT::i32, ++/*337353*/ OPC_MoveParent, ++/*337354*/ OPC_MoveChild7, ++/*337355*/ OPC_CheckInteger, 1, ++/*337357*/ OPC_CheckType, MVT::i32, ++/*337359*/ OPC_MoveParent, ++/*337360*/ OPC_MoveChild, 8, ++/*337362*/ OPC_CheckInteger, 1, ++/*337364*/ OPC_CheckType, MVT::i32, ++/*337366*/ OPC_MoveParent, ++/*337367*/ OPC_MoveChild, 9, ++/*337369*/ OPC_CheckInteger, 1, ++/*337371*/ OPC_CheckType, MVT::i32, ++/*337373*/ OPC_MoveParent, ++/*337374*/ OPC_MoveChild, 10, ++/*337376*/ OPC_CheckInteger, 1, ++/*337378*/ OPC_CheckType, MVT::i32, ++/*337380*/ OPC_MoveParent, ++/*337381*/ OPC_MoveChild, 11, ++/*337383*/ OPC_CheckInteger, 1, ++/*337385*/ OPC_CheckType, MVT::i32, ++/*337387*/ OPC_MoveParent, ++/*337388*/ OPC_MoveChild, 12, ++/*337390*/ OPC_CheckInteger, 1, ++/*337392*/ OPC_CheckType, MVT::i32, ++/*337394*/ OPC_MoveParent, ++/*337395*/ OPC_MoveChild, 13, ++/*337397*/ OPC_CheckInteger, 1, ++/*337399*/ OPC_CheckType, MVT::i32, ++/*337401*/ OPC_MoveParent, ++/*337402*/ OPC_MoveChild, 14, ++/*337404*/ OPC_CheckInteger, 1, ++/*337406*/ OPC_CheckType, MVT::i32, ++/*337408*/ OPC_MoveParent, ++/*337409*/ OPC_MoveChild, 15, ++/*337411*/ OPC_CheckInteger, 1, ++/*337413*/ OPC_CheckType, MVT::i32, ++/*337415*/ OPC_MoveParent, ++/*337416*/ OPC_MoveChild, 16, ++/*337418*/ OPC_CheckInteger, 1, ++/*337420*/ OPC_CheckType, MVT::i32, ++/*337422*/ OPC_MoveParent, ++/*337423*/ OPC_MoveChild, 17, ++/*337425*/ OPC_CheckInteger, 1, ++/*337427*/ OPC_CheckType, MVT::i32, ++/*337429*/ OPC_MoveParent, ++/*337430*/ OPC_MoveChild, 18, ++/*337432*/ OPC_CheckInteger, 1, ++/*337434*/ OPC_CheckType, MVT::i32, ++/*337436*/ OPC_MoveParent, ++/*337437*/ OPC_MoveChild, 19, ++/*337439*/ OPC_CheckInteger, 1, ++/*337441*/ OPC_CheckType, MVT::i32, ++/*337443*/ OPC_MoveParent, ++/*337444*/ OPC_MoveChild, 20, ++/*337446*/ OPC_CheckInteger, 1, ++/*337448*/ OPC_CheckType, MVT::i32, ++/*337450*/ OPC_MoveParent, ++/*337451*/ OPC_MoveChild, 21, ++/*337453*/ OPC_CheckInteger, 1, ++/*337455*/ OPC_CheckType, MVT::i32, ++/*337457*/ OPC_MoveParent, ++/*337458*/ OPC_MoveChild, 22, ++/*337460*/ OPC_CheckInteger, 1, ++/*337462*/ OPC_CheckType, MVT::i32, ++/*337464*/ OPC_MoveParent, ++/*337465*/ OPC_MoveChild, 23, ++/*337467*/ OPC_CheckInteger, 1, ++/*337469*/ OPC_CheckType, MVT::i32, ++/*337471*/ OPC_MoveParent, ++/*337472*/ OPC_MoveChild, 24, ++/*337474*/ OPC_CheckInteger, 1, ++/*337476*/ OPC_CheckType, MVT::i32, ++/*337478*/ OPC_MoveParent, ++/*337479*/ OPC_MoveChild, 25, ++/*337481*/ OPC_CheckInteger, 1, ++/*337483*/ OPC_CheckType, MVT::i32, ++/*337485*/ OPC_MoveParent, ++/*337486*/ OPC_MoveChild, 26, ++/*337488*/ OPC_CheckInteger, 1, ++/*337490*/ OPC_CheckType, MVT::i32, ++/*337492*/ OPC_MoveParent, ++/*337493*/ OPC_MoveChild, 27, ++/*337495*/ OPC_CheckInteger, 1, ++/*337497*/ OPC_CheckType, MVT::i32, ++/*337499*/ OPC_MoveParent, ++/*337500*/ OPC_MoveChild, 28, ++/*337502*/ OPC_CheckInteger, 1, ++/*337504*/ OPC_CheckType, MVT::i32, ++/*337506*/ OPC_MoveParent, ++/*337507*/ OPC_MoveChild, 29, ++/*337509*/ OPC_CheckInteger, 1, ++/*337511*/ OPC_CheckType, MVT::i32, ++/*337513*/ OPC_MoveParent, ++/*337514*/ OPC_MoveChild, 30, ++/*337516*/ OPC_CheckInteger, 1, ++/*337518*/ OPC_CheckType, MVT::i32, ++/*337520*/ OPC_MoveParent, ++/*337521*/ OPC_MoveChild, 31, ++/*337523*/ OPC_CheckInteger, 1, ++/*337525*/ OPC_CheckType, MVT::i32, ++/*337527*/ OPC_MoveParent, ++/*337528*/ OPC_CheckType, MVT::v32i8, ++/*337530*/ OPC_MoveParent, ++/*337531*/ OPC_CheckType, MVT::v32i8, ++/*337533*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*337535*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*337543*/ 0, /*End of Scope*/ ++/*337544*/ 0, // EndSwitchOpcode ++/*337545*/ /*Scope*/ 126|128,6/*894*/, /*->338441*/ ++/*337547*/ OPC_CheckChild0Same, 0, ++/*337549*/ OPC_MoveChild1, ++/*337550*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*337553*/ OPC_Scope, 57|128,3/*441*/, /*->337997*/ // 2 children in Scope ++/*337556*/ OPC_MoveChild0, ++/*337557*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*337560*/ OPC_CheckChild0Integer, 1, ++/*337562*/ OPC_CheckChild0Type, MVT::i32, ++/*337564*/ OPC_CheckChild1Integer, 1, ++/*337566*/ OPC_CheckChild1Type, MVT::i32, ++/*337568*/ OPC_CheckChild2Integer, 1, ++/*337570*/ OPC_CheckChild2Type, MVT::i32, ++/*337572*/ OPC_CheckChild3Integer, 1, ++/*337574*/ OPC_CheckChild3Type, MVT::i32, ++/*337576*/ OPC_CheckChild4Integer, 1, ++/*337578*/ OPC_CheckChild4Type, MVT::i32, ++/*337580*/ OPC_MoveChild5, ++/*337581*/ OPC_CheckInteger, 1, ++/*337583*/ OPC_CheckType, MVT::i32, ++/*337585*/ OPC_MoveParent, ++/*337586*/ OPC_MoveChild6, ++/*337587*/ OPC_CheckInteger, 1, ++/*337589*/ OPC_CheckType, MVT::i32, ++/*337591*/ OPC_MoveParent, ++/*337592*/ OPC_MoveChild7, ++/*337593*/ OPC_CheckInteger, 1, ++/*337595*/ OPC_CheckType, MVT::i32, ++/*337597*/ OPC_MoveParent, ++/*337598*/ OPC_MoveChild, 8, ++/*337600*/ OPC_CheckInteger, 1, ++/*337602*/ OPC_CheckType, MVT::i32, ++/*337604*/ OPC_MoveParent, ++/*337605*/ OPC_MoveChild, 9, ++/*337607*/ OPC_CheckInteger, 1, ++/*337609*/ OPC_CheckType, MVT::i32, ++/*337611*/ OPC_MoveParent, ++/*337612*/ OPC_MoveChild, 10, ++/*337614*/ OPC_CheckInteger, 1, ++/*337616*/ OPC_CheckType, MVT::i32, ++/*337618*/ OPC_MoveParent, ++/*337619*/ OPC_MoveChild, 11, ++/*337621*/ OPC_CheckInteger, 1, ++/*337623*/ OPC_CheckType, MVT::i32, ++/*337625*/ OPC_MoveParent, ++/*337626*/ OPC_MoveChild, 12, ++/*337628*/ OPC_CheckInteger, 1, ++/*337630*/ OPC_CheckType, MVT::i32, ++/*337632*/ OPC_MoveParent, ++/*337633*/ OPC_MoveChild, 13, ++/*337635*/ OPC_CheckInteger, 1, ++/*337637*/ OPC_CheckType, MVT::i32, ++/*337639*/ OPC_MoveParent, ++/*337640*/ OPC_MoveChild, 14, ++/*337642*/ OPC_CheckInteger, 1, ++/*337644*/ OPC_CheckType, MVT::i32, ++/*337646*/ OPC_MoveParent, ++/*337647*/ OPC_MoveChild, 15, ++/*337649*/ OPC_CheckInteger, 1, ++/*337651*/ OPC_CheckType, MVT::i32, ++/*337653*/ OPC_MoveParent, ++/*337654*/ OPC_MoveChild, 16, ++/*337656*/ OPC_CheckInteger, 1, ++/*337658*/ OPC_CheckType, MVT::i32, ++/*337660*/ OPC_MoveParent, ++/*337661*/ OPC_MoveChild, 17, ++/*337663*/ OPC_CheckInteger, 1, ++/*337665*/ OPC_CheckType, MVT::i32, ++/*337667*/ OPC_MoveParent, ++/*337668*/ OPC_MoveChild, 18, ++/*337670*/ OPC_CheckInteger, 1, ++/*337672*/ OPC_CheckType, MVT::i32, ++/*337674*/ OPC_MoveParent, ++/*337675*/ OPC_MoveChild, 19, ++/*337677*/ OPC_CheckInteger, 1, ++/*337679*/ OPC_CheckType, MVT::i32, ++/*337681*/ OPC_MoveParent, ++/*337682*/ OPC_MoveChild, 20, ++/*337684*/ OPC_CheckInteger, 1, ++/*337686*/ OPC_CheckType, MVT::i32, ++/*337688*/ OPC_MoveParent, ++/*337689*/ OPC_MoveChild, 21, ++/*337691*/ OPC_CheckInteger, 1, ++/*337693*/ OPC_CheckType, MVT::i32, ++/*337695*/ OPC_MoveParent, ++/*337696*/ OPC_MoveChild, 22, ++/*337698*/ OPC_CheckInteger, 1, ++/*337700*/ OPC_CheckType, MVT::i32, ++/*337702*/ OPC_MoveParent, ++/*337703*/ OPC_MoveChild, 23, ++/*337705*/ OPC_CheckInteger, 1, ++/*337707*/ OPC_CheckType, MVT::i32, ++/*337709*/ OPC_MoveParent, ++/*337710*/ OPC_MoveChild, 24, ++/*337712*/ OPC_CheckInteger, 1, ++/*337714*/ OPC_CheckType, MVT::i32, ++/*337716*/ OPC_MoveParent, ++/*337717*/ OPC_MoveChild, 25, ++/*337719*/ OPC_CheckInteger, 1, ++/*337721*/ OPC_CheckType, MVT::i32, ++/*337723*/ OPC_MoveParent, ++/*337724*/ OPC_MoveChild, 26, ++/*337726*/ OPC_CheckInteger, 1, ++/*337728*/ OPC_CheckType, MVT::i32, ++/*337730*/ OPC_MoveParent, ++/*337731*/ OPC_MoveChild, 27, ++/*337733*/ OPC_CheckInteger, 1, ++/*337735*/ OPC_CheckType, MVT::i32, ++/*337737*/ OPC_MoveParent, ++/*337738*/ OPC_MoveChild, 28, ++/*337740*/ OPC_CheckInteger, 1, ++/*337742*/ OPC_CheckType, MVT::i32, ++/*337744*/ OPC_MoveParent, ++/*337745*/ OPC_MoveChild, 29, ++/*337747*/ OPC_CheckInteger, 1, ++/*337749*/ OPC_CheckType, MVT::i32, ++/*337751*/ OPC_MoveParent, ++/*337752*/ OPC_MoveChild, 30, ++/*337754*/ OPC_CheckInteger, 1, ++/*337756*/ OPC_CheckType, MVT::i32, ++/*337758*/ OPC_MoveParent, ++/*337759*/ OPC_MoveChild, 31, ++/*337761*/ OPC_CheckInteger, 1, ++/*337763*/ OPC_CheckType, MVT::i32, ++/*337765*/ OPC_MoveParent, ++/*337766*/ OPC_MoveParent, ++/*337767*/ OPC_CheckChild1Same, 1, ++/*337769*/ OPC_MoveParent, ++/*337770*/ OPC_MoveParent, ++/*337771*/ OPC_MoveParent, ++/*337772*/ OPC_MoveChild1, ++/*337773*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*337776*/ OPC_CheckChild0Integer, 1, ++/*337778*/ OPC_CheckChild0Type, MVT::i32, ++/*337780*/ OPC_CheckChild1Integer, 1, ++/*337782*/ OPC_CheckChild1Type, MVT::i32, ++/*337784*/ OPC_CheckChild2Integer, 1, ++/*337786*/ OPC_CheckChild2Type, MVT::i32, ++/*337788*/ OPC_CheckChild3Integer, 1, ++/*337790*/ OPC_CheckChild3Type, MVT::i32, ++/*337792*/ OPC_CheckChild4Integer, 1, ++/*337794*/ OPC_CheckChild4Type, MVT::i32, ++/*337796*/ OPC_MoveChild5, ++/*337797*/ OPC_CheckInteger, 1, ++/*337799*/ OPC_CheckType, MVT::i32, ++/*337801*/ OPC_MoveParent, ++/*337802*/ OPC_MoveChild6, ++/*337803*/ OPC_CheckInteger, 1, ++/*337805*/ OPC_CheckType, MVT::i32, ++/*337807*/ OPC_MoveParent, ++/*337808*/ OPC_MoveChild7, ++/*337809*/ OPC_CheckInteger, 1, ++/*337811*/ OPC_CheckType, MVT::i32, ++/*337813*/ OPC_MoveParent, ++/*337814*/ OPC_MoveChild, 8, ++/*337816*/ OPC_CheckInteger, 1, ++/*337818*/ OPC_CheckType, MVT::i32, ++/*337820*/ OPC_MoveParent, ++/*337821*/ OPC_MoveChild, 9, ++/*337823*/ OPC_CheckInteger, 1, ++/*337825*/ OPC_CheckType, MVT::i32, ++/*337827*/ OPC_MoveParent, ++/*337828*/ OPC_MoveChild, 10, ++/*337830*/ OPC_CheckInteger, 1, ++/*337832*/ OPC_CheckType, MVT::i32, ++/*337834*/ OPC_MoveParent, ++/*337835*/ OPC_MoveChild, 11, ++/*337837*/ OPC_CheckInteger, 1, ++/*337839*/ OPC_CheckType, MVT::i32, ++/*337841*/ OPC_MoveParent, ++/*337842*/ OPC_MoveChild, 12, ++/*337844*/ OPC_CheckInteger, 1, ++/*337846*/ OPC_CheckType, MVT::i32, ++/*337848*/ OPC_MoveParent, ++/*337849*/ OPC_MoveChild, 13, ++/*337851*/ OPC_CheckInteger, 1, ++/*337853*/ OPC_CheckType, MVT::i32, ++/*337855*/ OPC_MoveParent, ++/*337856*/ OPC_MoveChild, 14, ++/*337858*/ OPC_CheckInteger, 1, ++/*337860*/ OPC_CheckType, MVT::i32, ++/*337862*/ OPC_MoveParent, ++/*337863*/ OPC_MoveChild, 15, ++/*337865*/ OPC_CheckInteger, 1, ++/*337867*/ OPC_CheckType, MVT::i32, ++/*337869*/ OPC_MoveParent, ++/*337870*/ OPC_MoveChild, 16, ++/*337872*/ OPC_CheckInteger, 1, ++/*337874*/ OPC_CheckType, MVT::i32, ++/*337876*/ OPC_MoveParent, ++/*337877*/ OPC_MoveChild, 17, ++/*337879*/ OPC_CheckInteger, 1, ++/*337881*/ OPC_CheckType, MVT::i32, ++/*337883*/ OPC_MoveParent, ++/*337884*/ OPC_MoveChild, 18, ++/*337886*/ OPC_CheckInteger, 1, ++/*337888*/ OPC_CheckType, MVT::i32, ++/*337890*/ OPC_MoveParent, ++/*337891*/ OPC_MoveChild, 19, ++/*337893*/ OPC_CheckInteger, 1, ++/*337895*/ OPC_CheckType, MVT::i32, ++/*337897*/ OPC_MoveParent, ++/*337898*/ OPC_MoveChild, 20, ++/*337900*/ OPC_CheckInteger, 1, ++/*337902*/ OPC_CheckType, MVT::i32, ++/*337904*/ OPC_MoveParent, ++/*337905*/ OPC_MoveChild, 21, ++/*337907*/ OPC_CheckInteger, 1, ++/*337909*/ OPC_CheckType, MVT::i32, ++/*337911*/ OPC_MoveParent, ++/*337912*/ OPC_MoveChild, 22, ++/*337914*/ OPC_CheckInteger, 1, ++/*337916*/ OPC_CheckType, MVT::i32, ++/*337918*/ OPC_MoveParent, ++/*337919*/ OPC_MoveChild, 23, ++/*337921*/ OPC_CheckInteger, 1, ++/*337923*/ OPC_CheckType, MVT::i32, ++/*337925*/ OPC_MoveParent, ++/*337926*/ OPC_MoveChild, 24, ++/*337928*/ OPC_CheckInteger, 1, ++/*337930*/ OPC_CheckType, MVT::i32, ++/*337932*/ OPC_MoveParent, ++/*337933*/ OPC_MoveChild, 25, ++/*337935*/ OPC_CheckInteger, 1, ++/*337937*/ OPC_CheckType, MVT::i32, ++/*337939*/ OPC_MoveParent, ++/*337940*/ OPC_MoveChild, 26, ++/*337942*/ OPC_CheckInteger, 1, ++/*337944*/ OPC_CheckType, MVT::i32, ++/*337946*/ OPC_MoveParent, ++/*337947*/ OPC_MoveChild, 27, ++/*337949*/ OPC_CheckInteger, 1, ++/*337951*/ OPC_CheckType, MVT::i32, ++/*337953*/ OPC_MoveParent, ++/*337954*/ OPC_MoveChild, 28, ++/*337956*/ OPC_CheckInteger, 1, ++/*337958*/ OPC_CheckType, MVT::i32, ++/*337960*/ OPC_MoveParent, ++/*337961*/ OPC_MoveChild, 29, ++/*337963*/ OPC_CheckInteger, 1, ++/*337965*/ OPC_CheckType, MVT::i32, ++/*337967*/ OPC_MoveParent, ++/*337968*/ OPC_MoveChild, 30, ++/*337970*/ OPC_CheckInteger, 1, ++/*337972*/ OPC_CheckType, MVT::i32, ++/*337974*/ OPC_MoveParent, ++/*337975*/ OPC_MoveChild, 31, ++/*337977*/ OPC_CheckInteger, 1, ++/*337979*/ OPC_CheckType, MVT::i32, ++/*337981*/ OPC_MoveParent, ++/*337982*/ OPC_CheckType, MVT::v32i8, ++/*337984*/ OPC_MoveParent, ++/*337985*/ OPC_CheckType, MVT::v32i8, ++/*337987*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*337989*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$a))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*337997*/ /*Scope*/ 57|128,3/*441*/, /*->338440*/ ++/*337999*/ OPC_CheckChild0Same, 1, ++/*338001*/ OPC_MoveChild1, ++/*338002*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*338005*/ OPC_CheckChild0Integer, 1, ++/*338007*/ OPC_CheckChild0Type, MVT::i32, ++/*338009*/ OPC_CheckChild1Integer, 1, ++/*338011*/ OPC_CheckChild1Type, MVT::i32, ++/*338013*/ OPC_CheckChild2Integer, 1, ++/*338015*/ OPC_CheckChild2Type, MVT::i32, ++/*338017*/ OPC_CheckChild3Integer, 1, ++/*338019*/ OPC_CheckChild3Type, MVT::i32, ++/*338021*/ OPC_CheckChild4Integer, 1, ++/*338023*/ OPC_CheckChild4Type, MVT::i32, ++/*338025*/ OPC_MoveChild5, ++/*338026*/ OPC_CheckInteger, 1, ++/*338028*/ OPC_CheckType, MVT::i32, ++/*338030*/ OPC_MoveParent, ++/*338031*/ OPC_MoveChild6, ++/*338032*/ OPC_CheckInteger, 1, ++/*338034*/ OPC_CheckType, MVT::i32, ++/*338036*/ OPC_MoveParent, ++/*338037*/ OPC_MoveChild7, ++/*338038*/ OPC_CheckInteger, 1, ++/*338040*/ OPC_CheckType, MVT::i32, ++/*338042*/ OPC_MoveParent, ++/*338043*/ OPC_MoveChild, 8, ++/*338045*/ OPC_CheckInteger, 1, ++/*338047*/ OPC_CheckType, MVT::i32, ++/*338049*/ OPC_MoveParent, ++/*338050*/ OPC_MoveChild, 9, ++/*338052*/ OPC_CheckInteger, 1, ++/*338054*/ OPC_CheckType, MVT::i32, ++/*338056*/ OPC_MoveParent, ++/*338057*/ OPC_MoveChild, 10, ++/*338059*/ OPC_CheckInteger, 1, ++/*338061*/ OPC_CheckType, MVT::i32, ++/*338063*/ OPC_MoveParent, ++/*338064*/ OPC_MoveChild, 11, ++/*338066*/ OPC_CheckInteger, 1, ++/*338068*/ OPC_CheckType, MVT::i32, ++/*338070*/ OPC_MoveParent, ++/*338071*/ OPC_MoveChild, 12, ++/*338073*/ OPC_CheckInteger, 1, ++/*338075*/ OPC_CheckType, MVT::i32, ++/*338077*/ OPC_MoveParent, ++/*338078*/ OPC_MoveChild, 13, ++/*338080*/ OPC_CheckInteger, 1, ++/*338082*/ OPC_CheckType, MVT::i32, ++/*338084*/ OPC_MoveParent, ++/*338085*/ OPC_MoveChild, 14, ++/*338087*/ OPC_CheckInteger, 1, ++/*338089*/ OPC_CheckType, MVT::i32, ++/*338091*/ OPC_MoveParent, ++/*338092*/ OPC_MoveChild, 15, ++/*338094*/ OPC_CheckInteger, 1, ++/*338096*/ OPC_CheckType, MVT::i32, ++/*338098*/ OPC_MoveParent, ++/*338099*/ OPC_MoveChild, 16, ++/*338101*/ OPC_CheckInteger, 1, ++/*338103*/ OPC_CheckType, MVT::i32, ++/*338105*/ OPC_MoveParent, ++/*338106*/ OPC_MoveChild, 17, ++/*338108*/ OPC_CheckInteger, 1, ++/*338110*/ OPC_CheckType, MVT::i32, ++/*338112*/ OPC_MoveParent, ++/*338113*/ OPC_MoveChild, 18, ++/*338115*/ OPC_CheckInteger, 1, ++/*338117*/ OPC_CheckType, MVT::i32, ++/*338119*/ OPC_MoveParent, ++/*338120*/ OPC_MoveChild, 19, ++/*338122*/ OPC_CheckInteger, 1, ++/*338124*/ OPC_CheckType, MVT::i32, ++/*338126*/ OPC_MoveParent, ++/*338127*/ OPC_MoveChild, 20, ++/*338129*/ OPC_CheckInteger, 1, ++/*338131*/ OPC_CheckType, MVT::i32, ++/*338133*/ OPC_MoveParent, ++/*338134*/ OPC_MoveChild, 21, ++/*338136*/ OPC_CheckInteger, 1, ++/*338138*/ OPC_CheckType, MVT::i32, ++/*338140*/ OPC_MoveParent, ++/*338141*/ OPC_MoveChild, 22, ++/*338143*/ OPC_CheckInteger, 1, ++/*338145*/ OPC_CheckType, MVT::i32, ++/*338147*/ OPC_MoveParent, ++/*338148*/ OPC_MoveChild, 23, ++/*338150*/ OPC_CheckInteger, 1, ++/*338152*/ OPC_CheckType, MVT::i32, ++/*338154*/ OPC_MoveParent, ++/*338155*/ OPC_MoveChild, 24, ++/*338157*/ OPC_CheckInteger, 1, ++/*338159*/ OPC_CheckType, MVT::i32, ++/*338161*/ OPC_MoveParent, ++/*338162*/ OPC_MoveChild, 25, ++/*338164*/ OPC_CheckInteger, 1, ++/*338166*/ OPC_CheckType, MVT::i32, ++/*338168*/ OPC_MoveParent, ++/*338169*/ OPC_MoveChild, 26, ++/*338171*/ OPC_CheckInteger, 1, ++/*338173*/ OPC_CheckType, MVT::i32, ++/*338175*/ OPC_MoveParent, ++/*338176*/ OPC_MoveChild, 27, ++/*338178*/ OPC_CheckInteger, 1, ++/*338180*/ OPC_CheckType, MVT::i32, ++/*338182*/ OPC_MoveParent, ++/*338183*/ OPC_MoveChild, 28, ++/*338185*/ OPC_CheckInteger, 1, ++/*338187*/ OPC_CheckType, MVT::i32, ++/*338189*/ OPC_MoveParent, ++/*338190*/ OPC_MoveChild, 29, ++/*338192*/ OPC_CheckInteger, 1, ++/*338194*/ OPC_CheckType, MVT::i32, ++/*338196*/ OPC_MoveParent, ++/*338197*/ OPC_MoveChild, 30, ++/*338199*/ OPC_CheckInteger, 1, ++/*338201*/ OPC_CheckType, MVT::i32, ++/*338203*/ OPC_MoveParent, ++/*338204*/ OPC_MoveChild, 31, ++/*338206*/ OPC_CheckInteger, 1, ++/*338208*/ OPC_CheckType, MVT::i32, ++/*338210*/ OPC_MoveParent, ++/*338211*/ OPC_MoveParent, ++/*338212*/ OPC_MoveParent, ++/*338213*/ OPC_MoveParent, ++/*338214*/ OPC_MoveParent, ++/*338215*/ OPC_MoveChild1, ++/*338216*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*338219*/ OPC_CheckChild0Integer, 1, ++/*338221*/ OPC_CheckChild0Type, MVT::i32, ++/*338223*/ OPC_CheckChild1Integer, 1, ++/*338225*/ OPC_CheckChild1Type, MVT::i32, ++/*338227*/ OPC_CheckChild2Integer, 1, ++/*338229*/ OPC_CheckChild2Type, MVT::i32, ++/*338231*/ OPC_CheckChild3Integer, 1, ++/*338233*/ OPC_CheckChild3Type, MVT::i32, ++/*338235*/ OPC_CheckChild4Integer, 1, ++/*338237*/ OPC_CheckChild4Type, MVT::i32, ++/*338239*/ OPC_MoveChild5, ++/*338240*/ OPC_CheckInteger, 1, ++/*338242*/ OPC_CheckType, MVT::i32, ++/*338244*/ OPC_MoveParent, ++/*338245*/ OPC_MoveChild6, ++/*338246*/ OPC_CheckInteger, 1, ++/*338248*/ OPC_CheckType, MVT::i32, ++/*338250*/ OPC_MoveParent, ++/*338251*/ OPC_MoveChild7, ++/*338252*/ OPC_CheckInteger, 1, ++/*338254*/ OPC_CheckType, MVT::i32, ++/*338256*/ OPC_MoveParent, ++/*338257*/ OPC_MoveChild, 8, ++/*338259*/ OPC_CheckInteger, 1, ++/*338261*/ OPC_CheckType, MVT::i32, ++/*338263*/ OPC_MoveParent, ++/*338264*/ OPC_MoveChild, 9, ++/*338266*/ OPC_CheckInteger, 1, ++/*338268*/ OPC_CheckType, MVT::i32, ++/*338270*/ OPC_MoveParent, ++/*338271*/ OPC_MoveChild, 10, ++/*338273*/ OPC_CheckInteger, 1, ++/*338275*/ OPC_CheckType, MVT::i32, ++/*338277*/ OPC_MoveParent, ++/*338278*/ OPC_MoveChild, 11, ++/*338280*/ OPC_CheckInteger, 1, ++/*338282*/ OPC_CheckType, MVT::i32, ++/*338284*/ OPC_MoveParent, ++/*338285*/ OPC_MoveChild, 12, ++/*338287*/ OPC_CheckInteger, 1, ++/*338289*/ OPC_CheckType, MVT::i32, ++/*338291*/ OPC_MoveParent, ++/*338292*/ OPC_MoveChild, 13, ++/*338294*/ OPC_CheckInteger, 1, ++/*338296*/ OPC_CheckType, MVT::i32, ++/*338298*/ OPC_MoveParent, ++/*338299*/ OPC_MoveChild, 14, ++/*338301*/ OPC_CheckInteger, 1, ++/*338303*/ OPC_CheckType, MVT::i32, ++/*338305*/ OPC_MoveParent, ++/*338306*/ OPC_MoveChild, 15, ++/*338308*/ OPC_CheckInteger, 1, ++/*338310*/ OPC_CheckType, MVT::i32, ++/*338312*/ OPC_MoveParent, ++/*338313*/ OPC_MoveChild, 16, ++/*338315*/ OPC_CheckInteger, 1, ++/*338317*/ OPC_CheckType, MVT::i32, ++/*338319*/ OPC_MoveParent, ++/*338320*/ OPC_MoveChild, 17, ++/*338322*/ OPC_CheckInteger, 1, ++/*338324*/ OPC_CheckType, MVT::i32, ++/*338326*/ OPC_MoveParent, ++/*338327*/ OPC_MoveChild, 18, ++/*338329*/ OPC_CheckInteger, 1, ++/*338331*/ OPC_CheckType, MVT::i32, ++/*338333*/ OPC_MoveParent, ++/*338334*/ OPC_MoveChild, 19, ++/*338336*/ OPC_CheckInteger, 1, ++/*338338*/ OPC_CheckType, MVT::i32, ++/*338340*/ OPC_MoveParent, ++/*338341*/ OPC_MoveChild, 20, ++/*338343*/ OPC_CheckInteger, 1, ++/*338345*/ OPC_CheckType, MVT::i32, ++/*338347*/ OPC_MoveParent, ++/*338348*/ OPC_MoveChild, 21, ++/*338350*/ OPC_CheckInteger, 1, ++/*338352*/ OPC_CheckType, MVT::i32, ++/*338354*/ OPC_MoveParent, ++/*338355*/ OPC_MoveChild, 22, ++/*338357*/ OPC_CheckInteger, 1, ++/*338359*/ OPC_CheckType, MVT::i32, ++/*338361*/ OPC_MoveParent, ++/*338362*/ OPC_MoveChild, 23, ++/*338364*/ OPC_CheckInteger, 1, ++/*338366*/ OPC_CheckType, MVT::i32, ++/*338368*/ OPC_MoveParent, ++/*338369*/ OPC_MoveChild, 24, ++/*338371*/ OPC_CheckInteger, 1, ++/*338373*/ OPC_CheckType, MVT::i32, ++/*338375*/ OPC_MoveParent, ++/*338376*/ OPC_MoveChild, 25, ++/*338378*/ OPC_CheckInteger, 1, ++/*338380*/ OPC_CheckType, MVT::i32, ++/*338382*/ OPC_MoveParent, ++/*338383*/ OPC_MoveChild, 26, ++/*338385*/ OPC_CheckInteger, 1, ++/*338387*/ OPC_CheckType, MVT::i32, ++/*338389*/ OPC_MoveParent, ++/*338390*/ OPC_MoveChild, 27, ++/*338392*/ OPC_CheckInteger, 1, ++/*338394*/ OPC_CheckType, MVT::i32, ++/*338396*/ OPC_MoveParent, ++/*338397*/ OPC_MoveChild, 28, ++/*338399*/ OPC_CheckInteger, 1, ++/*338401*/ OPC_CheckType, MVT::i32, ++/*338403*/ OPC_MoveParent, ++/*338404*/ OPC_MoveChild, 29, ++/*338406*/ OPC_CheckInteger, 1, ++/*338408*/ OPC_CheckType, MVT::i32, ++/*338410*/ OPC_MoveParent, ++/*338411*/ OPC_MoveChild, 30, ++/*338413*/ OPC_CheckInteger, 1, ++/*338415*/ OPC_CheckType, MVT::i32, ++/*338417*/ OPC_MoveParent, ++/*338418*/ OPC_MoveChild, 31, ++/*338420*/ OPC_CheckInteger, 1, ++/*338422*/ OPC_CheckType, MVT::i32, ++/*338424*/ OPC_MoveParent, ++/*338425*/ OPC_CheckType, MVT::v32i8, ++/*338427*/ OPC_MoveParent, ++/*338428*/ OPC_CheckType, MVT::v32i8, ++/*338430*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*338432*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*338440*/ 0, /*End of Scope*/ ++/*338441*/ /*Scope*/ 126|128,6/*894*/, /*->339337*/ ++/*338443*/ OPC_CheckChild0Same, 1, ++/*338445*/ OPC_MoveChild1, ++/*338446*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*338449*/ OPC_Scope, 57|128,3/*441*/, /*->338893*/ // 2 children in Scope ++/*338452*/ OPC_MoveChild0, ++/*338453*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*338456*/ OPC_CheckChild0Integer, 1, ++/*338458*/ OPC_CheckChild0Type, MVT::i32, ++/*338460*/ OPC_CheckChild1Integer, 1, ++/*338462*/ OPC_CheckChild1Type, MVT::i32, ++/*338464*/ OPC_CheckChild2Integer, 1, ++/*338466*/ OPC_CheckChild2Type, MVT::i32, ++/*338468*/ OPC_CheckChild3Integer, 1, ++/*338470*/ OPC_CheckChild3Type, MVT::i32, ++/*338472*/ OPC_CheckChild4Integer, 1, ++/*338474*/ OPC_CheckChild4Type, MVT::i32, ++/*338476*/ OPC_MoveChild5, ++/*338477*/ OPC_CheckInteger, 1, ++/*338479*/ OPC_CheckType, MVT::i32, ++/*338481*/ OPC_MoveParent, ++/*338482*/ OPC_MoveChild6, ++/*338483*/ OPC_CheckInteger, 1, ++/*338485*/ OPC_CheckType, MVT::i32, ++/*338487*/ OPC_MoveParent, ++/*338488*/ OPC_MoveChild7, ++/*338489*/ OPC_CheckInteger, 1, ++/*338491*/ OPC_CheckType, MVT::i32, ++/*338493*/ OPC_MoveParent, ++/*338494*/ OPC_MoveChild, 8, ++/*338496*/ OPC_CheckInteger, 1, ++/*338498*/ OPC_CheckType, MVT::i32, ++/*338500*/ OPC_MoveParent, ++/*338501*/ OPC_MoveChild, 9, ++/*338503*/ OPC_CheckInteger, 1, ++/*338505*/ OPC_CheckType, MVT::i32, ++/*338507*/ OPC_MoveParent, ++/*338508*/ OPC_MoveChild, 10, ++/*338510*/ OPC_CheckInteger, 1, ++/*338512*/ OPC_CheckType, MVT::i32, ++/*338514*/ OPC_MoveParent, ++/*338515*/ OPC_MoveChild, 11, ++/*338517*/ OPC_CheckInteger, 1, ++/*338519*/ OPC_CheckType, MVT::i32, ++/*338521*/ OPC_MoveParent, ++/*338522*/ OPC_MoveChild, 12, ++/*338524*/ OPC_CheckInteger, 1, ++/*338526*/ OPC_CheckType, MVT::i32, ++/*338528*/ OPC_MoveParent, ++/*338529*/ OPC_MoveChild, 13, ++/*338531*/ OPC_CheckInteger, 1, ++/*338533*/ OPC_CheckType, MVT::i32, ++/*338535*/ OPC_MoveParent, ++/*338536*/ OPC_MoveChild, 14, ++/*338538*/ OPC_CheckInteger, 1, ++/*338540*/ OPC_CheckType, MVT::i32, ++/*338542*/ OPC_MoveParent, ++/*338543*/ OPC_MoveChild, 15, ++/*338545*/ OPC_CheckInteger, 1, ++/*338547*/ OPC_CheckType, MVT::i32, ++/*338549*/ OPC_MoveParent, ++/*338550*/ OPC_MoveChild, 16, ++/*338552*/ OPC_CheckInteger, 1, ++/*338554*/ OPC_CheckType, MVT::i32, ++/*338556*/ OPC_MoveParent, ++/*338557*/ OPC_MoveChild, 17, ++/*338559*/ OPC_CheckInteger, 1, ++/*338561*/ OPC_CheckType, MVT::i32, ++/*338563*/ OPC_MoveParent, ++/*338564*/ OPC_MoveChild, 18, ++/*338566*/ OPC_CheckInteger, 1, ++/*338568*/ OPC_CheckType, MVT::i32, ++/*338570*/ OPC_MoveParent, ++/*338571*/ OPC_MoveChild, 19, ++/*338573*/ OPC_CheckInteger, 1, ++/*338575*/ OPC_CheckType, MVT::i32, ++/*338577*/ OPC_MoveParent, ++/*338578*/ OPC_MoveChild, 20, ++/*338580*/ OPC_CheckInteger, 1, ++/*338582*/ OPC_CheckType, MVT::i32, ++/*338584*/ OPC_MoveParent, ++/*338585*/ OPC_MoveChild, 21, ++/*338587*/ OPC_CheckInteger, 1, ++/*338589*/ OPC_CheckType, MVT::i32, ++/*338591*/ OPC_MoveParent, ++/*338592*/ OPC_MoveChild, 22, ++/*338594*/ OPC_CheckInteger, 1, ++/*338596*/ OPC_CheckType, MVT::i32, ++/*338598*/ OPC_MoveParent, ++/*338599*/ OPC_MoveChild, 23, ++/*338601*/ OPC_CheckInteger, 1, ++/*338603*/ OPC_CheckType, MVT::i32, ++/*338605*/ OPC_MoveParent, ++/*338606*/ OPC_MoveChild, 24, ++/*338608*/ OPC_CheckInteger, 1, ++/*338610*/ OPC_CheckType, MVT::i32, ++/*338612*/ OPC_MoveParent, ++/*338613*/ OPC_MoveChild, 25, ++/*338615*/ OPC_CheckInteger, 1, ++/*338617*/ OPC_CheckType, MVT::i32, ++/*338619*/ OPC_MoveParent, ++/*338620*/ OPC_MoveChild, 26, ++/*338622*/ OPC_CheckInteger, 1, ++/*338624*/ OPC_CheckType, MVT::i32, ++/*338626*/ OPC_MoveParent, ++/*338627*/ OPC_MoveChild, 27, ++/*338629*/ OPC_CheckInteger, 1, ++/*338631*/ OPC_CheckType, MVT::i32, ++/*338633*/ OPC_MoveParent, ++/*338634*/ OPC_MoveChild, 28, ++/*338636*/ OPC_CheckInteger, 1, ++/*338638*/ OPC_CheckType, MVT::i32, ++/*338640*/ OPC_MoveParent, ++/*338641*/ OPC_MoveChild, 29, ++/*338643*/ OPC_CheckInteger, 1, ++/*338645*/ OPC_CheckType, MVT::i32, ++/*338647*/ OPC_MoveParent, ++/*338648*/ OPC_MoveChild, 30, ++/*338650*/ OPC_CheckInteger, 1, ++/*338652*/ OPC_CheckType, MVT::i32, ++/*338654*/ OPC_MoveParent, ++/*338655*/ OPC_MoveChild, 31, ++/*338657*/ OPC_CheckInteger, 1, ++/*338659*/ OPC_CheckType, MVT::i32, ++/*338661*/ OPC_MoveParent, ++/*338662*/ OPC_MoveParent, ++/*338663*/ OPC_CheckChild1Same, 0, ++/*338665*/ OPC_MoveParent, ++/*338666*/ OPC_MoveParent, ++/*338667*/ OPC_MoveParent, ++/*338668*/ OPC_MoveChild1, ++/*338669*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*338672*/ OPC_CheckChild0Integer, 1, ++/*338674*/ OPC_CheckChild0Type, MVT::i32, ++/*338676*/ OPC_CheckChild1Integer, 1, ++/*338678*/ OPC_CheckChild1Type, MVT::i32, ++/*338680*/ OPC_CheckChild2Integer, 1, ++/*338682*/ OPC_CheckChild2Type, MVT::i32, ++/*338684*/ OPC_CheckChild3Integer, 1, ++/*338686*/ OPC_CheckChild3Type, MVT::i32, ++/*338688*/ OPC_CheckChild4Integer, 1, ++/*338690*/ OPC_CheckChild4Type, MVT::i32, ++/*338692*/ OPC_MoveChild5, ++/*338693*/ OPC_CheckInteger, 1, ++/*338695*/ OPC_CheckType, MVT::i32, ++/*338697*/ OPC_MoveParent, ++/*338698*/ OPC_MoveChild6, ++/*338699*/ OPC_CheckInteger, 1, ++/*338701*/ OPC_CheckType, MVT::i32, ++/*338703*/ OPC_MoveParent, ++/*338704*/ OPC_MoveChild7, ++/*338705*/ OPC_CheckInteger, 1, ++/*338707*/ OPC_CheckType, MVT::i32, ++/*338709*/ OPC_MoveParent, ++/*338710*/ OPC_MoveChild, 8, ++/*338712*/ OPC_CheckInteger, 1, ++/*338714*/ OPC_CheckType, MVT::i32, ++/*338716*/ OPC_MoveParent, ++/*338717*/ OPC_MoveChild, 9, ++/*338719*/ OPC_CheckInteger, 1, ++/*338721*/ OPC_CheckType, MVT::i32, ++/*338723*/ OPC_MoveParent, ++/*338724*/ OPC_MoveChild, 10, ++/*338726*/ OPC_CheckInteger, 1, ++/*338728*/ OPC_CheckType, MVT::i32, ++/*338730*/ OPC_MoveParent, ++/*338731*/ OPC_MoveChild, 11, ++/*338733*/ OPC_CheckInteger, 1, ++/*338735*/ OPC_CheckType, MVT::i32, ++/*338737*/ OPC_MoveParent, ++/*338738*/ OPC_MoveChild, 12, ++/*338740*/ OPC_CheckInteger, 1, ++/*338742*/ OPC_CheckType, MVT::i32, ++/*338744*/ OPC_MoveParent, ++/*338745*/ OPC_MoveChild, 13, ++/*338747*/ OPC_CheckInteger, 1, ++/*338749*/ OPC_CheckType, MVT::i32, ++/*338751*/ OPC_MoveParent, ++/*338752*/ OPC_MoveChild, 14, ++/*338754*/ OPC_CheckInteger, 1, ++/*338756*/ OPC_CheckType, MVT::i32, ++/*338758*/ OPC_MoveParent, ++/*338759*/ OPC_MoveChild, 15, ++/*338761*/ OPC_CheckInteger, 1, ++/*338763*/ OPC_CheckType, MVT::i32, ++/*338765*/ OPC_MoveParent, ++/*338766*/ OPC_MoveChild, 16, ++/*338768*/ OPC_CheckInteger, 1, ++/*338770*/ OPC_CheckType, MVT::i32, ++/*338772*/ OPC_MoveParent, ++/*338773*/ OPC_MoveChild, 17, ++/*338775*/ OPC_CheckInteger, 1, ++/*338777*/ OPC_CheckType, MVT::i32, ++/*338779*/ OPC_MoveParent, ++/*338780*/ OPC_MoveChild, 18, ++/*338782*/ OPC_CheckInteger, 1, ++/*338784*/ OPC_CheckType, MVT::i32, ++/*338786*/ OPC_MoveParent, ++/*338787*/ OPC_MoveChild, 19, ++/*338789*/ OPC_CheckInteger, 1, ++/*338791*/ OPC_CheckType, MVT::i32, ++/*338793*/ OPC_MoveParent, ++/*338794*/ OPC_MoveChild, 20, ++/*338796*/ OPC_CheckInteger, 1, ++/*338798*/ OPC_CheckType, MVT::i32, ++/*338800*/ OPC_MoveParent, ++/*338801*/ OPC_MoveChild, 21, ++/*338803*/ OPC_CheckInteger, 1, ++/*338805*/ OPC_CheckType, MVT::i32, ++/*338807*/ OPC_MoveParent, ++/*338808*/ OPC_MoveChild, 22, ++/*338810*/ OPC_CheckInteger, 1, ++/*338812*/ OPC_CheckType, MVT::i32, ++/*338814*/ OPC_MoveParent, ++/*338815*/ OPC_MoveChild, 23, ++/*338817*/ OPC_CheckInteger, 1, ++/*338819*/ OPC_CheckType, MVT::i32, ++/*338821*/ OPC_MoveParent, ++/*338822*/ OPC_MoveChild, 24, ++/*338824*/ OPC_CheckInteger, 1, ++/*338826*/ OPC_CheckType, MVT::i32, ++/*338828*/ OPC_MoveParent, ++/*338829*/ OPC_MoveChild, 25, ++/*338831*/ OPC_CheckInteger, 1, ++/*338833*/ OPC_CheckType, MVT::i32, ++/*338835*/ OPC_MoveParent, ++/*338836*/ OPC_MoveChild, 26, ++/*338838*/ OPC_CheckInteger, 1, ++/*338840*/ OPC_CheckType, MVT::i32, ++/*338842*/ OPC_MoveParent, ++/*338843*/ OPC_MoveChild, 27, ++/*338845*/ OPC_CheckInteger, 1, ++/*338847*/ OPC_CheckType, MVT::i32, ++/*338849*/ OPC_MoveParent, ++/*338850*/ OPC_MoveChild, 28, ++/*338852*/ OPC_CheckInteger, 1, ++/*338854*/ OPC_CheckType, MVT::i32, ++/*338856*/ OPC_MoveParent, ++/*338857*/ OPC_MoveChild, 29, ++/*338859*/ OPC_CheckInteger, 1, ++/*338861*/ OPC_CheckType, MVT::i32, ++/*338863*/ OPC_MoveParent, ++/*338864*/ OPC_MoveChild, 30, ++/*338866*/ OPC_CheckInteger, 1, ++/*338868*/ OPC_CheckType, MVT::i32, ++/*338870*/ OPC_MoveParent, ++/*338871*/ OPC_MoveChild, 31, ++/*338873*/ OPC_CheckInteger, 1, ++/*338875*/ OPC_CheckType, MVT::i32, ++/*338877*/ OPC_MoveParent, ++/*338878*/ OPC_CheckType, MVT::v32i8, ++/*338880*/ OPC_MoveParent, ++/*338881*/ OPC_CheckType, MVT::v32i8, ++/*338883*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*338885*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256B:{ *:[v32i8] }:$b))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*338893*/ /*Scope*/ 57|128,3/*441*/, /*->339336*/ ++/*338895*/ OPC_CheckChild0Same, 0, ++/*338897*/ OPC_MoveChild1, ++/*338898*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*338901*/ OPC_CheckChild0Integer, 1, ++/*338903*/ OPC_CheckChild0Type, MVT::i32, ++/*338905*/ OPC_CheckChild1Integer, 1, ++/*338907*/ OPC_CheckChild1Type, MVT::i32, ++/*338909*/ OPC_CheckChild2Integer, 1, ++/*338911*/ OPC_CheckChild2Type, MVT::i32, ++/*338913*/ OPC_CheckChild3Integer, 1, ++/*338915*/ OPC_CheckChild3Type, MVT::i32, ++/*338917*/ OPC_CheckChild4Integer, 1, ++/*338919*/ OPC_CheckChild4Type, MVT::i32, ++/*338921*/ OPC_MoveChild5, ++/*338922*/ OPC_CheckInteger, 1, ++/*338924*/ OPC_CheckType, MVT::i32, ++/*338926*/ OPC_MoveParent, ++/*338927*/ OPC_MoveChild6, ++/*338928*/ OPC_CheckInteger, 1, ++/*338930*/ OPC_CheckType, MVT::i32, ++/*338932*/ OPC_MoveParent, ++/*338933*/ OPC_MoveChild7, ++/*338934*/ OPC_CheckInteger, 1, ++/*338936*/ OPC_CheckType, MVT::i32, ++/*338938*/ OPC_MoveParent, ++/*338939*/ OPC_MoveChild, 8, ++/*338941*/ OPC_CheckInteger, 1, ++/*338943*/ OPC_CheckType, MVT::i32, ++/*338945*/ OPC_MoveParent, ++/*338946*/ OPC_MoveChild, 9, ++/*338948*/ OPC_CheckInteger, 1, ++/*338950*/ OPC_CheckType, MVT::i32, ++/*338952*/ OPC_MoveParent, ++/*338953*/ OPC_MoveChild, 10, ++/*338955*/ OPC_CheckInteger, 1, ++/*338957*/ OPC_CheckType, MVT::i32, ++/*338959*/ OPC_MoveParent, ++/*338960*/ OPC_MoveChild, 11, ++/*338962*/ OPC_CheckInteger, 1, ++/*338964*/ OPC_CheckType, MVT::i32, ++/*338966*/ OPC_MoveParent, ++/*338967*/ OPC_MoveChild, 12, ++/*338969*/ OPC_CheckInteger, 1, ++/*338971*/ OPC_CheckType, MVT::i32, ++/*338973*/ OPC_MoveParent, ++/*338974*/ OPC_MoveChild, 13, ++/*338976*/ OPC_CheckInteger, 1, ++/*338978*/ OPC_CheckType, MVT::i32, ++/*338980*/ OPC_MoveParent, ++/*338981*/ OPC_MoveChild, 14, ++/*338983*/ OPC_CheckInteger, 1, ++/*338985*/ OPC_CheckType, MVT::i32, ++/*338987*/ OPC_MoveParent, ++/*338988*/ OPC_MoveChild, 15, ++/*338990*/ OPC_CheckInteger, 1, ++/*338992*/ OPC_CheckType, MVT::i32, ++/*338994*/ OPC_MoveParent, ++/*338995*/ OPC_MoveChild, 16, ++/*338997*/ OPC_CheckInteger, 1, ++/*338999*/ OPC_CheckType, MVT::i32, ++/*339001*/ OPC_MoveParent, ++/*339002*/ OPC_MoveChild, 17, ++/*339004*/ OPC_CheckInteger, 1, ++/*339006*/ OPC_CheckType, MVT::i32, ++/*339008*/ OPC_MoveParent, ++/*339009*/ OPC_MoveChild, 18, ++/*339011*/ OPC_CheckInteger, 1, ++/*339013*/ OPC_CheckType, MVT::i32, ++/*339015*/ OPC_MoveParent, ++/*339016*/ OPC_MoveChild, 19, ++/*339018*/ OPC_CheckInteger, 1, ++/*339020*/ OPC_CheckType, MVT::i32, ++/*339022*/ OPC_MoveParent, ++/*339023*/ OPC_MoveChild, 20, ++/*339025*/ OPC_CheckInteger, 1, ++/*339027*/ OPC_CheckType, MVT::i32, ++/*339029*/ OPC_MoveParent, ++/*339030*/ OPC_MoveChild, 21, ++/*339032*/ OPC_CheckInteger, 1, ++/*339034*/ OPC_CheckType, MVT::i32, ++/*339036*/ OPC_MoveParent, ++/*339037*/ OPC_MoveChild, 22, ++/*339039*/ OPC_CheckInteger, 1, ++/*339041*/ OPC_CheckType, MVT::i32, ++/*339043*/ OPC_MoveParent, ++/*339044*/ OPC_MoveChild, 23, ++/*339046*/ OPC_CheckInteger, 1, ++/*339048*/ OPC_CheckType, MVT::i32, ++/*339050*/ OPC_MoveParent, ++/*339051*/ OPC_MoveChild, 24, ++/*339053*/ OPC_CheckInteger, 1, ++/*339055*/ OPC_CheckType, MVT::i32, ++/*339057*/ OPC_MoveParent, ++/*339058*/ OPC_MoveChild, 25, ++/*339060*/ OPC_CheckInteger, 1, ++/*339062*/ OPC_CheckType, MVT::i32, ++/*339064*/ OPC_MoveParent, ++/*339065*/ OPC_MoveChild, 26, ++/*339067*/ OPC_CheckInteger, 1, ++/*339069*/ OPC_CheckType, MVT::i32, ++/*339071*/ OPC_MoveParent, ++/*339072*/ OPC_MoveChild, 27, ++/*339074*/ OPC_CheckInteger, 1, ++/*339076*/ OPC_CheckType, MVT::i32, ++/*339078*/ OPC_MoveParent, ++/*339079*/ OPC_MoveChild, 28, ++/*339081*/ OPC_CheckInteger, 1, ++/*339083*/ OPC_CheckType, MVT::i32, ++/*339085*/ OPC_MoveParent, ++/*339086*/ OPC_MoveChild, 29, ++/*339088*/ OPC_CheckInteger, 1, ++/*339090*/ OPC_CheckType, MVT::i32, ++/*339092*/ OPC_MoveParent, ++/*339093*/ OPC_MoveChild, 30, ++/*339095*/ OPC_CheckInteger, 1, ++/*339097*/ OPC_CheckType, MVT::i32, ++/*339099*/ OPC_MoveParent, ++/*339100*/ OPC_MoveChild, 31, ++/*339102*/ OPC_CheckInteger, 1, ++/*339104*/ OPC_CheckType, MVT::i32, ++/*339106*/ OPC_MoveParent, ++/*339107*/ OPC_MoveParent, ++/*339108*/ OPC_MoveParent, ++/*339109*/ OPC_MoveParent, ++/*339110*/ OPC_MoveParent, ++/*339111*/ OPC_MoveChild1, ++/*339112*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*339115*/ OPC_CheckChild0Integer, 1, ++/*339117*/ OPC_CheckChild0Type, MVT::i32, ++/*339119*/ OPC_CheckChild1Integer, 1, ++/*339121*/ OPC_CheckChild1Type, MVT::i32, ++/*339123*/ OPC_CheckChild2Integer, 1, ++/*339125*/ OPC_CheckChild2Type, MVT::i32, ++/*339127*/ OPC_CheckChild3Integer, 1, ++/*339129*/ OPC_CheckChild3Type, MVT::i32, ++/*339131*/ OPC_CheckChild4Integer, 1, ++/*339133*/ OPC_CheckChild4Type, MVT::i32, ++/*339135*/ OPC_MoveChild5, ++/*339136*/ OPC_CheckInteger, 1, ++/*339138*/ OPC_CheckType, MVT::i32, ++/*339140*/ OPC_MoveParent, ++/*339141*/ OPC_MoveChild6, ++/*339142*/ OPC_CheckInteger, 1, ++/*339144*/ OPC_CheckType, MVT::i32, ++/*339146*/ OPC_MoveParent, ++/*339147*/ OPC_MoveChild7, ++/*339148*/ OPC_CheckInteger, 1, ++/*339150*/ OPC_CheckType, MVT::i32, ++/*339152*/ OPC_MoveParent, ++/*339153*/ OPC_MoveChild, 8, ++/*339155*/ OPC_CheckInteger, 1, ++/*339157*/ OPC_CheckType, MVT::i32, ++/*339159*/ OPC_MoveParent, ++/*339160*/ OPC_MoveChild, 9, ++/*339162*/ OPC_CheckInteger, 1, ++/*339164*/ OPC_CheckType, MVT::i32, ++/*339166*/ OPC_MoveParent, ++/*339167*/ OPC_MoveChild, 10, ++/*339169*/ OPC_CheckInteger, 1, ++/*339171*/ OPC_CheckType, MVT::i32, ++/*339173*/ OPC_MoveParent, ++/*339174*/ OPC_MoveChild, 11, ++/*339176*/ OPC_CheckInteger, 1, ++/*339178*/ OPC_CheckType, MVT::i32, ++/*339180*/ OPC_MoveParent, ++/*339181*/ OPC_MoveChild, 12, ++/*339183*/ OPC_CheckInteger, 1, ++/*339185*/ OPC_CheckType, MVT::i32, ++/*339187*/ OPC_MoveParent, ++/*339188*/ OPC_MoveChild, 13, ++/*339190*/ OPC_CheckInteger, 1, ++/*339192*/ OPC_CheckType, MVT::i32, ++/*339194*/ OPC_MoveParent, ++/*339195*/ OPC_MoveChild, 14, ++/*339197*/ OPC_CheckInteger, 1, ++/*339199*/ OPC_CheckType, MVT::i32, ++/*339201*/ OPC_MoveParent, ++/*339202*/ OPC_MoveChild, 15, ++/*339204*/ OPC_CheckInteger, 1, ++/*339206*/ OPC_CheckType, MVT::i32, ++/*339208*/ OPC_MoveParent, ++/*339209*/ OPC_MoveChild, 16, ++/*339211*/ OPC_CheckInteger, 1, ++/*339213*/ OPC_CheckType, MVT::i32, ++/*339215*/ OPC_MoveParent, ++/*339216*/ OPC_MoveChild, 17, ++/*339218*/ OPC_CheckInteger, 1, ++/*339220*/ OPC_CheckType, MVT::i32, ++/*339222*/ OPC_MoveParent, ++/*339223*/ OPC_MoveChild, 18, ++/*339225*/ OPC_CheckInteger, 1, ++/*339227*/ OPC_CheckType, MVT::i32, ++/*339229*/ OPC_MoveParent, ++/*339230*/ OPC_MoveChild, 19, ++/*339232*/ OPC_CheckInteger, 1, ++/*339234*/ OPC_CheckType, MVT::i32, ++/*339236*/ OPC_MoveParent, ++/*339237*/ OPC_MoveChild, 20, ++/*339239*/ OPC_CheckInteger, 1, ++/*339241*/ OPC_CheckType, MVT::i32, ++/*339243*/ OPC_MoveParent, ++/*339244*/ OPC_MoveChild, 21, ++/*339246*/ OPC_CheckInteger, 1, ++/*339248*/ OPC_CheckType, MVT::i32, ++/*339250*/ OPC_MoveParent, ++/*339251*/ OPC_MoveChild, 22, ++/*339253*/ OPC_CheckInteger, 1, ++/*339255*/ OPC_CheckType, MVT::i32, ++/*339257*/ OPC_MoveParent, ++/*339258*/ OPC_MoveChild, 23, ++/*339260*/ OPC_CheckInteger, 1, ++/*339262*/ OPC_CheckType, MVT::i32, ++/*339264*/ OPC_MoveParent, ++/*339265*/ OPC_MoveChild, 24, ++/*339267*/ OPC_CheckInteger, 1, ++/*339269*/ OPC_CheckType, MVT::i32, ++/*339271*/ OPC_MoveParent, ++/*339272*/ OPC_MoveChild, 25, ++/*339274*/ OPC_CheckInteger, 1, ++/*339276*/ OPC_CheckType, MVT::i32, ++/*339278*/ OPC_MoveParent, ++/*339279*/ OPC_MoveChild, 26, ++/*339281*/ OPC_CheckInteger, 1, ++/*339283*/ OPC_CheckType, MVT::i32, ++/*339285*/ OPC_MoveParent, ++/*339286*/ OPC_MoveChild, 27, ++/*339288*/ OPC_CheckInteger, 1, ++/*339290*/ OPC_CheckType, MVT::i32, ++/*339292*/ OPC_MoveParent, ++/*339293*/ OPC_MoveChild, 28, ++/*339295*/ OPC_CheckInteger, 1, ++/*339297*/ OPC_CheckType, MVT::i32, ++/*339299*/ OPC_MoveParent, ++/*339300*/ OPC_MoveChild, 29, ++/*339302*/ OPC_CheckInteger, 1, ++/*339304*/ OPC_CheckType, MVT::i32, ++/*339306*/ OPC_MoveParent, ++/*339307*/ OPC_MoveChild, 30, ++/*339309*/ OPC_CheckInteger, 1, ++/*339311*/ OPC_CheckType, MVT::i32, ++/*339313*/ OPC_MoveParent, ++/*339314*/ OPC_MoveChild, 31, ++/*339316*/ OPC_CheckInteger, 1, ++/*339318*/ OPC_CheckType, MVT::i32, ++/*339320*/ OPC_MoveParent, ++/*339321*/ OPC_CheckType, MVT::v32i8, ++/*339323*/ OPC_MoveParent, ++/*339324*/ OPC_CheckType, MVT::v32i8, ++/*339326*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*339328*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*339336*/ 0, /*End of Scope*/ ++/*339337*/ /*Scope*/ 45|128,5/*685*/, /*->340024*/ ++/*339339*/ OPC_MoveChild0, ++/*339340*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*339343*/ OPC_CheckChild0Integer, 1, ++/*339345*/ OPC_CheckChild0Type, MVT::i32, ++/*339347*/ OPC_CheckChild1Integer, 1, ++/*339349*/ OPC_CheckChild1Type, MVT::i32, ++/*339351*/ OPC_CheckChild2Integer, 1, ++/*339353*/ OPC_CheckChild2Type, MVT::i32, ++/*339355*/ OPC_CheckChild3Integer, 1, ++/*339357*/ OPC_CheckChild3Type, MVT::i32, ++/*339359*/ OPC_CheckChild4Integer, 1, ++/*339361*/ OPC_CheckChild4Type, MVT::i32, ++/*339363*/ OPC_MoveChild5, ++/*339364*/ OPC_CheckInteger, 1, ++/*339366*/ OPC_CheckType, MVT::i32, ++/*339368*/ OPC_MoveParent, ++/*339369*/ OPC_MoveChild6, ++/*339370*/ OPC_CheckInteger, 1, ++/*339372*/ OPC_CheckType, MVT::i32, ++/*339374*/ OPC_MoveParent, ++/*339375*/ OPC_MoveChild7, ++/*339376*/ OPC_CheckInteger, 1, ++/*339378*/ OPC_CheckType, MVT::i32, ++/*339380*/ OPC_MoveParent, ++/*339381*/ OPC_MoveChild, 8, ++/*339383*/ OPC_CheckInteger, 1, ++/*339385*/ OPC_CheckType, MVT::i32, ++/*339387*/ OPC_MoveParent, ++/*339388*/ OPC_MoveChild, 9, ++/*339390*/ OPC_CheckInteger, 1, ++/*339392*/ OPC_CheckType, MVT::i32, ++/*339394*/ OPC_MoveParent, ++/*339395*/ OPC_MoveChild, 10, ++/*339397*/ OPC_CheckInteger, 1, ++/*339399*/ OPC_CheckType, MVT::i32, ++/*339401*/ OPC_MoveParent, ++/*339402*/ OPC_MoveChild, 11, ++/*339404*/ OPC_CheckInteger, 1, ++/*339406*/ OPC_CheckType, MVT::i32, ++/*339408*/ OPC_MoveParent, ++/*339409*/ OPC_MoveChild, 12, ++/*339411*/ OPC_CheckInteger, 1, ++/*339413*/ OPC_CheckType, MVT::i32, ++/*339415*/ OPC_MoveParent, ++/*339416*/ OPC_MoveChild, 13, ++/*339418*/ OPC_CheckInteger, 1, ++/*339420*/ OPC_CheckType, MVT::i32, ++/*339422*/ OPC_MoveParent, ++/*339423*/ OPC_MoveChild, 14, ++/*339425*/ OPC_CheckInteger, 1, ++/*339427*/ OPC_CheckType, MVT::i32, ++/*339429*/ OPC_MoveParent, ++/*339430*/ OPC_MoveChild, 15, ++/*339432*/ OPC_CheckInteger, 1, ++/*339434*/ OPC_CheckType, MVT::i32, ++/*339436*/ OPC_MoveParent, ++/*339437*/ OPC_MoveChild, 16, ++/*339439*/ OPC_CheckInteger, 1, ++/*339441*/ OPC_CheckType, MVT::i32, ++/*339443*/ OPC_MoveParent, ++/*339444*/ OPC_MoveChild, 17, ++/*339446*/ OPC_CheckInteger, 1, ++/*339448*/ OPC_CheckType, MVT::i32, ++/*339450*/ OPC_MoveParent, ++/*339451*/ OPC_MoveChild, 18, ++/*339453*/ OPC_CheckInteger, 1, ++/*339455*/ OPC_CheckType, MVT::i32, ++/*339457*/ OPC_MoveParent, ++/*339458*/ OPC_MoveChild, 19, ++/*339460*/ OPC_CheckInteger, 1, ++/*339462*/ OPC_CheckType, MVT::i32, ++/*339464*/ OPC_MoveParent, ++/*339465*/ OPC_MoveChild, 20, ++/*339467*/ OPC_CheckInteger, 1, ++/*339469*/ OPC_CheckType, MVT::i32, ++/*339471*/ OPC_MoveParent, ++/*339472*/ OPC_MoveChild, 21, ++/*339474*/ OPC_CheckInteger, 1, ++/*339476*/ OPC_CheckType, MVT::i32, ++/*339478*/ OPC_MoveParent, ++/*339479*/ OPC_MoveChild, 22, ++/*339481*/ OPC_CheckInteger, 1, ++/*339483*/ OPC_CheckType, MVT::i32, ++/*339485*/ OPC_MoveParent, ++/*339486*/ OPC_MoveChild, 23, ++/*339488*/ OPC_CheckInteger, 1, ++/*339490*/ OPC_CheckType, MVT::i32, ++/*339492*/ OPC_MoveParent, ++/*339493*/ OPC_MoveChild, 24, ++/*339495*/ OPC_CheckInteger, 1, ++/*339497*/ OPC_CheckType, MVT::i32, ++/*339499*/ OPC_MoveParent, ++/*339500*/ OPC_MoveChild, 25, ++/*339502*/ OPC_CheckInteger, 1, ++/*339504*/ OPC_CheckType, MVT::i32, ++/*339506*/ OPC_MoveParent, ++/*339507*/ OPC_MoveChild, 26, ++/*339509*/ OPC_CheckInteger, 1, ++/*339511*/ OPC_CheckType, MVT::i32, ++/*339513*/ OPC_MoveParent, ++/*339514*/ OPC_MoveChild, 27, ++/*339516*/ OPC_CheckInteger, 1, ++/*339518*/ OPC_CheckType, MVT::i32, ++/*339520*/ OPC_MoveParent, ++/*339521*/ OPC_MoveChild, 28, ++/*339523*/ OPC_CheckInteger, 1, ++/*339525*/ OPC_CheckType, MVT::i32, ++/*339527*/ OPC_MoveParent, ++/*339528*/ OPC_MoveChild, 29, ++/*339530*/ OPC_CheckInteger, 1, ++/*339532*/ OPC_CheckType, MVT::i32, ++/*339534*/ OPC_MoveParent, ++/*339535*/ OPC_MoveChild, 30, ++/*339537*/ OPC_CheckInteger, 1, ++/*339539*/ OPC_CheckType, MVT::i32, ++/*339541*/ OPC_MoveParent, ++/*339542*/ OPC_MoveChild, 31, ++/*339544*/ OPC_CheckInteger, 1, ++/*339546*/ OPC_CheckType, MVT::i32, ++/*339548*/ OPC_MoveParent, ++/*339549*/ OPC_MoveParent, ++/*339550*/ OPC_MoveChild1, ++/*339551*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*339554*/ OPC_Scope, 104|128,1/*232*/, /*->339789*/ // 2 children in Scope ++/*339557*/ OPC_CheckChild0Same, 1, ++/*339559*/ OPC_CheckChild1Same, 0, ++/*339561*/ OPC_MoveParent, ++/*339562*/ OPC_MoveParent, ++/*339563*/ OPC_MoveParent, ++/*339564*/ OPC_MoveChild1, ++/*339565*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*339568*/ OPC_CheckChild0Integer, 1, ++/*339570*/ OPC_CheckChild0Type, MVT::i32, ++/*339572*/ OPC_CheckChild1Integer, 1, ++/*339574*/ OPC_CheckChild1Type, MVT::i32, ++/*339576*/ OPC_CheckChild2Integer, 1, ++/*339578*/ OPC_CheckChild2Type, MVT::i32, ++/*339580*/ OPC_CheckChild3Integer, 1, ++/*339582*/ OPC_CheckChild3Type, MVT::i32, ++/*339584*/ OPC_CheckChild4Integer, 1, ++/*339586*/ OPC_CheckChild4Type, MVT::i32, ++/*339588*/ OPC_MoveChild5, ++/*339589*/ OPC_CheckInteger, 1, ++/*339591*/ OPC_CheckType, MVT::i32, ++/*339593*/ OPC_MoveParent, ++/*339594*/ OPC_MoveChild6, ++/*339595*/ OPC_CheckInteger, 1, ++/*339597*/ OPC_CheckType, MVT::i32, ++/*339599*/ OPC_MoveParent, ++/*339600*/ OPC_MoveChild7, ++/*339601*/ OPC_CheckInteger, 1, ++/*339603*/ OPC_CheckType, MVT::i32, ++/*339605*/ OPC_MoveParent, ++/*339606*/ OPC_MoveChild, 8, ++/*339608*/ OPC_CheckInteger, 1, ++/*339610*/ OPC_CheckType, MVT::i32, ++/*339612*/ OPC_MoveParent, ++/*339613*/ OPC_MoveChild, 9, ++/*339615*/ OPC_CheckInteger, 1, ++/*339617*/ OPC_CheckType, MVT::i32, ++/*339619*/ OPC_MoveParent, ++/*339620*/ OPC_MoveChild, 10, ++/*339622*/ OPC_CheckInteger, 1, ++/*339624*/ OPC_CheckType, MVT::i32, ++/*339626*/ OPC_MoveParent, ++/*339627*/ OPC_MoveChild, 11, ++/*339629*/ OPC_CheckInteger, 1, ++/*339631*/ OPC_CheckType, MVT::i32, ++/*339633*/ OPC_MoveParent, ++/*339634*/ OPC_MoveChild, 12, ++/*339636*/ OPC_CheckInteger, 1, ++/*339638*/ OPC_CheckType, MVT::i32, ++/*339640*/ OPC_MoveParent, ++/*339641*/ OPC_MoveChild, 13, ++/*339643*/ OPC_CheckInteger, 1, ++/*339645*/ OPC_CheckType, MVT::i32, ++/*339647*/ OPC_MoveParent, ++/*339648*/ OPC_MoveChild, 14, ++/*339650*/ OPC_CheckInteger, 1, ++/*339652*/ OPC_CheckType, MVT::i32, ++/*339654*/ OPC_MoveParent, ++/*339655*/ OPC_MoveChild, 15, ++/*339657*/ OPC_CheckInteger, 1, ++/*339659*/ OPC_CheckType, MVT::i32, ++/*339661*/ OPC_MoveParent, ++/*339662*/ OPC_MoveChild, 16, ++/*339664*/ OPC_CheckInteger, 1, ++/*339666*/ OPC_CheckType, MVT::i32, ++/*339668*/ OPC_MoveParent, ++/*339669*/ OPC_MoveChild, 17, ++/*339671*/ OPC_CheckInteger, 1, ++/*339673*/ OPC_CheckType, MVT::i32, ++/*339675*/ OPC_MoveParent, ++/*339676*/ OPC_MoveChild, 18, ++/*339678*/ OPC_CheckInteger, 1, ++/*339680*/ OPC_CheckType, MVT::i32, ++/*339682*/ OPC_MoveParent, ++/*339683*/ OPC_MoveChild, 19, ++/*339685*/ OPC_CheckInteger, 1, ++/*339687*/ OPC_CheckType, MVT::i32, ++/*339689*/ OPC_MoveParent, ++/*339690*/ OPC_MoveChild, 20, ++/*339692*/ OPC_CheckInteger, 1, ++/*339694*/ OPC_CheckType, MVT::i32, ++/*339696*/ OPC_MoveParent, ++/*339697*/ OPC_MoveChild, 21, ++/*339699*/ OPC_CheckInteger, 1, ++/*339701*/ OPC_CheckType, MVT::i32, ++/*339703*/ OPC_MoveParent, ++/*339704*/ OPC_MoveChild, 22, ++/*339706*/ OPC_CheckInteger, 1, ++/*339708*/ OPC_CheckType, MVT::i32, ++/*339710*/ OPC_MoveParent, ++/*339711*/ OPC_MoveChild, 23, ++/*339713*/ OPC_CheckInteger, 1, ++/*339715*/ OPC_CheckType, MVT::i32, ++/*339717*/ OPC_MoveParent, ++/*339718*/ OPC_MoveChild, 24, ++/*339720*/ OPC_CheckInteger, 1, ++/*339722*/ OPC_CheckType, MVT::i32, ++/*339724*/ OPC_MoveParent, ++/*339725*/ OPC_MoveChild, 25, ++/*339727*/ OPC_CheckInteger, 1, ++/*339729*/ OPC_CheckType, MVT::i32, ++/*339731*/ OPC_MoveParent, ++/*339732*/ OPC_MoveChild, 26, ++/*339734*/ OPC_CheckInteger, 1, ++/*339736*/ OPC_CheckType, MVT::i32, ++/*339738*/ OPC_MoveParent, ++/*339739*/ OPC_MoveChild, 27, ++/*339741*/ OPC_CheckInteger, 1, ++/*339743*/ OPC_CheckType, MVT::i32, ++/*339745*/ OPC_MoveParent, ++/*339746*/ OPC_MoveChild, 28, ++/*339748*/ OPC_CheckInteger, 1, ++/*339750*/ OPC_CheckType, MVT::i32, ++/*339752*/ OPC_MoveParent, ++/*339753*/ OPC_MoveChild, 29, ++/*339755*/ OPC_CheckInteger, 1, ++/*339757*/ OPC_CheckType, MVT::i32, ++/*339759*/ OPC_MoveParent, ++/*339760*/ OPC_MoveChild, 30, ++/*339762*/ OPC_CheckInteger, 1, ++/*339764*/ OPC_CheckType, MVT::i32, ++/*339766*/ OPC_MoveParent, ++/*339767*/ OPC_MoveChild, 31, ++/*339769*/ OPC_CheckInteger, 1, ++/*339771*/ OPC_CheckType, MVT::i32, ++/*339773*/ OPC_MoveParent, ++/*339774*/ OPC_CheckType, MVT::v32i8, ++/*339776*/ OPC_MoveParent, ++/*339777*/ OPC_CheckType, MVT::v32i8, ++/*339779*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*339781*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*339789*/ /*Scope*/ 104|128,1/*232*/, /*->340023*/ ++/*339791*/ OPC_CheckChild0Same, 0, ++/*339793*/ OPC_CheckChild1Same, 1, ++/*339795*/ OPC_MoveParent, ++/*339796*/ OPC_MoveParent, ++/*339797*/ OPC_MoveParent, ++/*339798*/ OPC_MoveChild1, ++/*339799*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*339802*/ OPC_CheckChild0Integer, 1, ++/*339804*/ OPC_CheckChild0Type, MVT::i32, ++/*339806*/ OPC_CheckChild1Integer, 1, ++/*339808*/ OPC_CheckChild1Type, MVT::i32, ++/*339810*/ OPC_CheckChild2Integer, 1, ++/*339812*/ OPC_CheckChild2Type, MVT::i32, ++/*339814*/ OPC_CheckChild3Integer, 1, ++/*339816*/ OPC_CheckChild3Type, MVT::i32, ++/*339818*/ OPC_CheckChild4Integer, 1, ++/*339820*/ OPC_CheckChild4Type, MVT::i32, ++/*339822*/ OPC_MoveChild5, ++/*339823*/ OPC_CheckInteger, 1, ++/*339825*/ OPC_CheckType, MVT::i32, ++/*339827*/ OPC_MoveParent, ++/*339828*/ OPC_MoveChild6, ++/*339829*/ OPC_CheckInteger, 1, ++/*339831*/ OPC_CheckType, MVT::i32, ++/*339833*/ OPC_MoveParent, ++/*339834*/ OPC_MoveChild7, ++/*339835*/ OPC_CheckInteger, 1, ++/*339837*/ OPC_CheckType, MVT::i32, ++/*339839*/ OPC_MoveParent, ++/*339840*/ OPC_MoveChild, 8, ++/*339842*/ OPC_CheckInteger, 1, ++/*339844*/ OPC_CheckType, MVT::i32, ++/*339846*/ OPC_MoveParent, ++/*339847*/ OPC_MoveChild, 9, ++/*339849*/ OPC_CheckInteger, 1, ++/*339851*/ OPC_CheckType, MVT::i32, ++/*339853*/ OPC_MoveParent, ++/*339854*/ OPC_MoveChild, 10, ++/*339856*/ OPC_CheckInteger, 1, ++/*339858*/ OPC_CheckType, MVT::i32, ++/*339860*/ OPC_MoveParent, ++/*339861*/ OPC_MoveChild, 11, ++/*339863*/ OPC_CheckInteger, 1, ++/*339865*/ OPC_CheckType, MVT::i32, ++/*339867*/ OPC_MoveParent, ++/*339868*/ OPC_MoveChild, 12, ++/*339870*/ OPC_CheckInteger, 1, ++/*339872*/ OPC_CheckType, MVT::i32, ++/*339874*/ OPC_MoveParent, ++/*339875*/ OPC_MoveChild, 13, ++/*339877*/ OPC_CheckInteger, 1, ++/*339879*/ OPC_CheckType, MVT::i32, ++/*339881*/ OPC_MoveParent, ++/*339882*/ OPC_MoveChild, 14, ++/*339884*/ OPC_CheckInteger, 1, ++/*339886*/ OPC_CheckType, MVT::i32, ++/*339888*/ OPC_MoveParent, ++/*339889*/ OPC_MoveChild, 15, ++/*339891*/ OPC_CheckInteger, 1, ++/*339893*/ OPC_CheckType, MVT::i32, ++/*339895*/ OPC_MoveParent, ++/*339896*/ OPC_MoveChild, 16, ++/*339898*/ OPC_CheckInteger, 1, ++/*339900*/ OPC_CheckType, MVT::i32, ++/*339902*/ OPC_MoveParent, ++/*339903*/ OPC_MoveChild, 17, ++/*339905*/ OPC_CheckInteger, 1, ++/*339907*/ OPC_CheckType, MVT::i32, ++/*339909*/ OPC_MoveParent, ++/*339910*/ OPC_MoveChild, 18, ++/*339912*/ OPC_CheckInteger, 1, ++/*339914*/ OPC_CheckType, MVT::i32, ++/*339916*/ OPC_MoveParent, ++/*339917*/ OPC_MoveChild, 19, ++/*339919*/ OPC_CheckInteger, 1, ++/*339921*/ OPC_CheckType, MVT::i32, ++/*339923*/ OPC_MoveParent, ++/*339924*/ OPC_MoveChild, 20, ++/*339926*/ OPC_CheckInteger, 1, ++/*339928*/ OPC_CheckType, MVT::i32, ++/*339930*/ OPC_MoveParent, ++/*339931*/ OPC_MoveChild, 21, ++/*339933*/ OPC_CheckInteger, 1, ++/*339935*/ OPC_CheckType, MVT::i32, ++/*339937*/ OPC_MoveParent, ++/*339938*/ OPC_MoveChild, 22, ++/*339940*/ OPC_CheckInteger, 1, ++/*339942*/ OPC_CheckType, MVT::i32, ++/*339944*/ OPC_MoveParent, ++/*339945*/ OPC_MoveChild, 23, ++/*339947*/ OPC_CheckInteger, 1, ++/*339949*/ OPC_CheckType, MVT::i32, ++/*339951*/ OPC_MoveParent, ++/*339952*/ OPC_MoveChild, 24, ++/*339954*/ OPC_CheckInteger, 1, ++/*339956*/ OPC_CheckType, MVT::i32, ++/*339958*/ OPC_MoveParent, ++/*339959*/ OPC_MoveChild, 25, ++/*339961*/ OPC_CheckInteger, 1, ++/*339963*/ OPC_CheckType, MVT::i32, ++/*339965*/ OPC_MoveParent, ++/*339966*/ OPC_MoveChild, 26, ++/*339968*/ OPC_CheckInteger, 1, ++/*339970*/ OPC_CheckType, MVT::i32, ++/*339972*/ OPC_MoveParent, ++/*339973*/ OPC_MoveChild, 27, ++/*339975*/ OPC_CheckInteger, 1, ++/*339977*/ OPC_CheckType, MVT::i32, ++/*339979*/ OPC_MoveParent, ++/*339980*/ OPC_MoveChild, 28, ++/*339982*/ OPC_CheckInteger, 1, ++/*339984*/ OPC_CheckType, MVT::i32, ++/*339986*/ OPC_MoveParent, ++/*339987*/ OPC_MoveChild, 29, ++/*339989*/ OPC_CheckInteger, 1, ++/*339991*/ OPC_CheckType, MVT::i32, ++/*339993*/ OPC_MoveParent, ++/*339994*/ OPC_MoveChild, 30, ++/*339996*/ OPC_CheckInteger, 1, ++/*339998*/ OPC_CheckType, MVT::i32, ++/*340000*/ OPC_MoveParent, ++/*340001*/ OPC_MoveChild, 31, ++/*340003*/ OPC_CheckInteger, 1, ++/*340005*/ OPC_CheckType, MVT::i32, ++/*340007*/ OPC_MoveParent, ++/*340008*/ OPC_CheckType, MVT::v32i8, ++/*340010*/ OPC_MoveParent, ++/*340011*/ OPC_CheckType, MVT::v32i8, ++/*340013*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*340015*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 673 ++ // Dst: (XVAVGR_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*340023*/ 0, /*End of Scope*/ ++/*340024*/ 0, /*End of Scope*/ ++/*340025*/ /*SwitchOpcode*/ 33|128,1|128,1/*16545*/, TARGET_VAL(ISD::ADD),// ->356575 ++/*340030*/ OPC_Scope, 102|128,21/*2790*/, /*->342823*/ // 4 children in Scope ++/*340033*/ OPC_MoveChild0, ++/*340034*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*340037*/ OPC_CheckChild0Integer, 1, ++/*340039*/ OPC_CheckChild0Type, MVT::i32, ++/*340041*/ OPC_CheckChild1Integer, 1, ++/*340043*/ OPC_CheckChild1Type, MVT::i32, ++/*340045*/ OPC_CheckChild2Integer, 1, ++/*340047*/ OPC_CheckChild2Type, MVT::i32, ++/*340049*/ OPC_CheckChild3Integer, 1, ++/*340051*/ OPC_CheckChild3Type, MVT::i32, ++/*340053*/ OPC_CheckChild4Integer, 1, ++/*340055*/ OPC_CheckChild4Type, MVT::i32, ++/*340057*/ OPC_MoveChild5, ++/*340058*/ OPC_CheckInteger, 1, ++/*340060*/ OPC_CheckType, MVT::i32, ++/*340062*/ OPC_MoveParent, ++/*340063*/ OPC_MoveChild6, ++/*340064*/ OPC_CheckInteger, 1, ++/*340066*/ OPC_CheckType, MVT::i32, ++/*340068*/ OPC_MoveParent, ++/*340069*/ OPC_MoveChild7, ++/*340070*/ OPC_CheckInteger, 1, ++/*340072*/ OPC_CheckType, MVT::i32, ++/*340074*/ OPC_MoveParent, ++/*340075*/ OPC_MoveChild, 8, ++/*340077*/ OPC_CheckInteger, 1, ++/*340079*/ OPC_CheckType, MVT::i32, ++/*340081*/ OPC_MoveParent, ++/*340082*/ OPC_MoveChild, 9, ++/*340084*/ OPC_CheckInteger, 1, ++/*340086*/ OPC_CheckType, MVT::i32, ++/*340088*/ OPC_MoveParent, ++/*340089*/ OPC_MoveChild, 10, ++/*340091*/ OPC_CheckInteger, 1, ++/*340093*/ OPC_CheckType, MVT::i32, ++/*340095*/ OPC_MoveParent, ++/*340096*/ OPC_MoveChild, 11, ++/*340098*/ OPC_CheckInteger, 1, ++/*340100*/ OPC_CheckType, MVT::i32, ++/*340102*/ OPC_MoveParent, ++/*340103*/ OPC_MoveChild, 12, ++/*340105*/ OPC_CheckInteger, 1, ++/*340107*/ OPC_CheckType, MVT::i32, ++/*340109*/ OPC_MoveParent, ++/*340110*/ OPC_MoveChild, 13, ++/*340112*/ OPC_CheckInteger, 1, ++/*340114*/ OPC_CheckType, MVT::i32, ++/*340116*/ OPC_MoveParent, ++/*340117*/ OPC_MoveChild, 14, ++/*340119*/ OPC_CheckInteger, 1, ++/*340121*/ OPC_CheckType, MVT::i32, ++/*340123*/ OPC_MoveParent, ++/*340124*/ OPC_MoveChild, 15, ++/*340126*/ OPC_CheckInteger, 1, ++/*340128*/ OPC_CheckType, MVT::i32, ++/*340130*/ OPC_MoveParent, ++/*340131*/ OPC_MoveParent, ++/*340132*/ OPC_RecordChild1, // #0 = $a ++/*340133*/ OPC_MoveParent, ++/*340134*/ OPC_RecordChild1, // #1 = $b ++/*340135*/ OPC_MoveParent, ++/*340136*/ OPC_MoveChild1, ++/*340137*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*340140*/ OPC_CheckChild0Integer, 7, ++/*340142*/ OPC_CheckChild0Type, MVT::i32, ++/*340144*/ OPC_CheckChild1Integer, 7, ++/*340146*/ OPC_CheckChild1Type, MVT::i32, ++/*340148*/ OPC_CheckChild2Integer, 7, ++/*340150*/ OPC_CheckChild2Type, MVT::i32, ++/*340152*/ OPC_CheckChild3Integer, 7, ++/*340154*/ OPC_CheckChild3Type, MVT::i32, ++/*340156*/ OPC_CheckChild4Integer, 7, ++/*340158*/ OPC_CheckChild4Type, MVT::i32, ++/*340160*/ OPC_MoveChild5, ++/*340161*/ OPC_CheckInteger, 7, ++/*340163*/ OPC_CheckType, MVT::i32, ++/*340165*/ OPC_MoveParent, ++/*340166*/ OPC_MoveChild6, ++/*340167*/ OPC_CheckInteger, 7, ++/*340169*/ OPC_CheckType, MVT::i32, ++/*340171*/ OPC_MoveParent, ++/*340172*/ OPC_MoveChild7, ++/*340173*/ OPC_CheckInteger, 7, ++/*340175*/ OPC_CheckType, MVT::i32, ++/*340177*/ OPC_MoveParent, ++/*340178*/ OPC_MoveChild, 8, ++/*340180*/ OPC_CheckInteger, 7, ++/*340182*/ OPC_CheckType, MVT::i32, ++/*340184*/ OPC_MoveParent, ++/*340185*/ OPC_MoveChild, 9, ++/*340187*/ OPC_CheckInteger, 7, ++/*340189*/ OPC_CheckType, MVT::i32, ++/*340191*/ OPC_MoveParent, ++/*340192*/ OPC_MoveChild, 10, ++/*340194*/ OPC_CheckInteger, 7, ++/*340196*/ OPC_CheckType, MVT::i32, ++/*340198*/ OPC_MoveParent, ++/*340199*/ OPC_MoveChild, 11, ++/*340201*/ OPC_CheckInteger, 7, ++/*340203*/ OPC_CheckType, MVT::i32, ++/*340205*/ OPC_MoveParent, ++/*340206*/ OPC_MoveChild, 12, ++/*340208*/ OPC_CheckInteger, 7, ++/*340210*/ OPC_CheckType, MVT::i32, ++/*340212*/ OPC_MoveParent, ++/*340213*/ OPC_MoveChild, 13, ++/*340215*/ OPC_CheckInteger, 7, ++/*340217*/ OPC_CheckType, MVT::i32, ++/*340219*/ OPC_MoveParent, ++/*340220*/ OPC_MoveChild, 14, ++/*340222*/ OPC_CheckInteger, 7, ++/*340224*/ OPC_CheckType, MVT::i32, ++/*340226*/ OPC_MoveParent, ++/*340227*/ OPC_MoveChild, 15, ++/*340229*/ OPC_CheckInteger, 7, ++/*340231*/ OPC_CheckType, MVT::i32, ++/*340233*/ OPC_MoveParent, ++/*340234*/ OPC_CheckType, MVT::v16i8, ++/*340236*/ OPC_MoveParent, ++/*340237*/ OPC_MoveParent, ++/*340238*/ OPC_MoveChild1, ++/*340239*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*340242*/ OPC_Scope, 52|128,10/*1332*/, /*->341577*/ // 4 children in Scope ++/*340245*/ OPC_MoveChild0, ++/*340246*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*340249*/ OPC_Scope, 91|128,1/*219*/, /*->340471*/ // 6 children in Scope ++/*340252*/ OPC_MoveChild0, ++/*340253*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*340256*/ OPC_CheckChild0Integer, 1, ++/*340258*/ OPC_CheckChild0Type, MVT::i32, ++/*340260*/ OPC_CheckChild1Integer, 1, ++/*340262*/ OPC_CheckChild1Type, MVT::i32, ++/*340264*/ OPC_CheckChild2Integer, 1, ++/*340266*/ OPC_CheckChild2Type, MVT::i32, ++/*340268*/ OPC_CheckChild3Integer, 1, ++/*340270*/ OPC_CheckChild3Type, MVT::i32, ++/*340272*/ OPC_CheckChild4Integer, 1, ++/*340274*/ OPC_CheckChild4Type, MVT::i32, ++/*340276*/ OPC_MoveChild5, ++/*340277*/ OPC_CheckInteger, 1, ++/*340279*/ OPC_CheckType, MVT::i32, ++/*340281*/ OPC_MoveParent, ++/*340282*/ OPC_MoveChild6, ++/*340283*/ OPC_CheckInteger, 1, ++/*340285*/ OPC_CheckType, MVT::i32, ++/*340287*/ OPC_MoveParent, ++/*340288*/ OPC_MoveChild7, ++/*340289*/ OPC_CheckInteger, 1, ++/*340291*/ OPC_CheckType, MVT::i32, ++/*340293*/ OPC_MoveParent, ++/*340294*/ OPC_MoveChild, 8, ++/*340296*/ OPC_CheckInteger, 1, ++/*340298*/ OPC_CheckType, MVT::i32, ++/*340300*/ OPC_MoveParent, ++/*340301*/ OPC_MoveChild, 9, ++/*340303*/ OPC_CheckInteger, 1, ++/*340305*/ OPC_CheckType, MVT::i32, ++/*340307*/ OPC_MoveParent, ++/*340308*/ OPC_MoveChild, 10, ++/*340310*/ OPC_CheckInteger, 1, ++/*340312*/ OPC_CheckType, MVT::i32, ++/*340314*/ OPC_MoveParent, ++/*340315*/ OPC_MoveChild, 11, ++/*340317*/ OPC_CheckInteger, 1, ++/*340319*/ OPC_CheckType, MVT::i32, ++/*340321*/ OPC_MoveParent, ++/*340322*/ OPC_MoveChild, 12, ++/*340324*/ OPC_CheckInteger, 1, ++/*340326*/ OPC_CheckType, MVT::i32, ++/*340328*/ OPC_MoveParent, ++/*340329*/ OPC_MoveChild, 13, ++/*340331*/ OPC_CheckInteger, 1, ++/*340333*/ OPC_CheckType, MVT::i32, ++/*340335*/ OPC_MoveParent, ++/*340336*/ OPC_MoveChild, 14, ++/*340338*/ OPC_CheckInteger, 1, ++/*340340*/ OPC_CheckType, MVT::i32, ++/*340342*/ OPC_MoveParent, ++/*340343*/ OPC_MoveChild, 15, ++/*340345*/ OPC_CheckInteger, 1, ++/*340347*/ OPC_CheckType, MVT::i32, ++/*340349*/ OPC_MoveParent, ++/*340350*/ OPC_MoveParent, ++/*340351*/ OPC_CheckChild1Same, 0, ++/*340353*/ OPC_MoveParent, ++/*340354*/ OPC_CheckChild1Same, 1, ++/*340356*/ OPC_MoveParent, ++/*340357*/ OPC_MoveParent, ++/*340358*/ OPC_MoveChild1, ++/*340359*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*340362*/ OPC_CheckChild0Integer, 1, ++/*340364*/ OPC_CheckChild0Type, MVT::i32, ++/*340366*/ OPC_CheckChild1Integer, 1, ++/*340368*/ OPC_CheckChild1Type, MVT::i32, ++/*340370*/ OPC_CheckChild2Integer, 1, ++/*340372*/ OPC_CheckChild2Type, MVT::i32, ++/*340374*/ OPC_CheckChild3Integer, 1, ++/*340376*/ OPC_CheckChild3Type, MVT::i32, ++/*340378*/ OPC_CheckChild4Integer, 1, ++/*340380*/ OPC_CheckChild4Type, MVT::i32, ++/*340382*/ OPC_MoveChild5, ++/*340383*/ OPC_CheckInteger, 1, ++/*340385*/ OPC_CheckType, MVT::i32, ++/*340387*/ OPC_MoveParent, ++/*340388*/ OPC_MoveChild6, ++/*340389*/ OPC_CheckInteger, 1, ++/*340391*/ OPC_CheckType, MVT::i32, ++/*340393*/ OPC_MoveParent, ++/*340394*/ OPC_MoveChild7, ++/*340395*/ OPC_CheckInteger, 1, ++/*340397*/ OPC_CheckType, MVT::i32, ++/*340399*/ OPC_MoveParent, ++/*340400*/ OPC_MoveChild, 8, ++/*340402*/ OPC_CheckInteger, 1, ++/*340404*/ OPC_CheckType, MVT::i32, ++/*340406*/ OPC_MoveParent, ++/*340407*/ OPC_MoveChild, 9, ++/*340409*/ OPC_CheckInteger, 1, ++/*340411*/ OPC_CheckType, MVT::i32, ++/*340413*/ OPC_MoveParent, ++/*340414*/ OPC_MoveChild, 10, ++/*340416*/ OPC_CheckInteger, 1, ++/*340418*/ OPC_CheckType, MVT::i32, ++/*340420*/ OPC_MoveParent, ++/*340421*/ OPC_MoveChild, 11, ++/*340423*/ OPC_CheckInteger, 1, ++/*340425*/ OPC_CheckType, MVT::i32, ++/*340427*/ OPC_MoveParent, ++/*340428*/ OPC_MoveChild, 12, ++/*340430*/ OPC_CheckInteger, 1, ++/*340432*/ OPC_CheckType, MVT::i32, ++/*340434*/ OPC_MoveParent, ++/*340435*/ OPC_MoveChild, 13, ++/*340437*/ OPC_CheckInteger, 1, ++/*340439*/ OPC_CheckType, MVT::i32, ++/*340441*/ OPC_MoveParent, ++/*340442*/ OPC_MoveChild, 14, ++/*340444*/ OPC_CheckInteger, 1, ++/*340446*/ OPC_CheckType, MVT::i32, ++/*340448*/ OPC_MoveParent, ++/*340449*/ OPC_MoveChild, 15, ++/*340451*/ OPC_CheckInteger, 1, ++/*340453*/ OPC_CheckType, MVT::i32, ++/*340455*/ OPC_MoveParent, ++/*340456*/ OPC_CheckType, MVT::v16i8, ++/*340458*/ OPC_MoveParent, ++/*340459*/ OPC_CheckType, MVT::v16i8, ++/*340461*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*340463*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a), LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a), LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*340471*/ /*Scope*/ 91|128,1/*219*/, /*->340692*/ ++/*340473*/ OPC_CheckChild0Same, 0, ++/*340475*/ OPC_MoveChild1, ++/*340476*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*340479*/ OPC_CheckChild0Integer, 1, ++/*340481*/ OPC_CheckChild0Type, MVT::i32, ++/*340483*/ OPC_CheckChild1Integer, 1, ++/*340485*/ OPC_CheckChild1Type, MVT::i32, ++/*340487*/ OPC_CheckChild2Integer, 1, ++/*340489*/ OPC_CheckChild2Type, MVT::i32, ++/*340491*/ OPC_CheckChild3Integer, 1, ++/*340493*/ OPC_CheckChild3Type, MVT::i32, ++/*340495*/ OPC_CheckChild4Integer, 1, ++/*340497*/ OPC_CheckChild4Type, MVT::i32, ++/*340499*/ OPC_MoveChild5, ++/*340500*/ OPC_CheckInteger, 1, ++/*340502*/ OPC_CheckType, MVT::i32, ++/*340504*/ OPC_MoveParent, ++/*340505*/ OPC_MoveChild6, ++/*340506*/ OPC_CheckInteger, 1, ++/*340508*/ OPC_CheckType, MVT::i32, ++/*340510*/ OPC_MoveParent, ++/*340511*/ OPC_MoveChild7, ++/*340512*/ OPC_CheckInteger, 1, ++/*340514*/ OPC_CheckType, MVT::i32, ++/*340516*/ OPC_MoveParent, ++/*340517*/ OPC_MoveChild, 8, ++/*340519*/ OPC_CheckInteger, 1, ++/*340521*/ OPC_CheckType, MVT::i32, ++/*340523*/ OPC_MoveParent, ++/*340524*/ OPC_MoveChild, 9, ++/*340526*/ OPC_CheckInteger, 1, ++/*340528*/ OPC_CheckType, MVT::i32, ++/*340530*/ OPC_MoveParent, ++/*340531*/ OPC_MoveChild, 10, ++/*340533*/ OPC_CheckInteger, 1, ++/*340535*/ OPC_CheckType, MVT::i32, ++/*340537*/ OPC_MoveParent, ++/*340538*/ OPC_MoveChild, 11, ++/*340540*/ OPC_CheckInteger, 1, ++/*340542*/ OPC_CheckType, MVT::i32, ++/*340544*/ OPC_MoveParent, ++/*340545*/ OPC_MoveChild, 12, ++/*340547*/ OPC_CheckInteger, 1, ++/*340549*/ OPC_CheckType, MVT::i32, ++/*340551*/ OPC_MoveParent, ++/*340552*/ OPC_MoveChild, 13, ++/*340554*/ OPC_CheckInteger, 1, ++/*340556*/ OPC_CheckType, MVT::i32, ++/*340558*/ OPC_MoveParent, ++/*340559*/ OPC_MoveChild, 14, ++/*340561*/ OPC_CheckInteger, 1, ++/*340563*/ OPC_CheckType, MVT::i32, ++/*340565*/ OPC_MoveParent, ++/*340566*/ OPC_MoveChild, 15, ++/*340568*/ OPC_CheckInteger, 1, ++/*340570*/ OPC_CheckType, MVT::i32, ++/*340572*/ OPC_MoveParent, ++/*340573*/ OPC_MoveParent, ++/*340574*/ OPC_MoveParent, ++/*340575*/ OPC_CheckChild1Same, 1, ++/*340577*/ OPC_MoveParent, ++/*340578*/ OPC_MoveParent, ++/*340579*/ OPC_MoveChild1, ++/*340580*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*340583*/ OPC_CheckChild0Integer, 1, ++/*340585*/ OPC_CheckChild0Type, MVT::i32, ++/*340587*/ OPC_CheckChild1Integer, 1, ++/*340589*/ OPC_CheckChild1Type, MVT::i32, ++/*340591*/ OPC_CheckChild2Integer, 1, ++/*340593*/ OPC_CheckChild2Type, MVT::i32, ++/*340595*/ OPC_CheckChild3Integer, 1, ++/*340597*/ OPC_CheckChild3Type, MVT::i32, ++/*340599*/ OPC_CheckChild4Integer, 1, ++/*340601*/ OPC_CheckChild4Type, MVT::i32, ++/*340603*/ OPC_MoveChild5, ++/*340604*/ OPC_CheckInteger, 1, ++/*340606*/ OPC_CheckType, MVT::i32, ++/*340608*/ OPC_MoveParent, ++/*340609*/ OPC_MoveChild6, ++/*340610*/ OPC_CheckInteger, 1, ++/*340612*/ OPC_CheckType, MVT::i32, ++/*340614*/ OPC_MoveParent, ++/*340615*/ OPC_MoveChild7, ++/*340616*/ OPC_CheckInteger, 1, ++/*340618*/ OPC_CheckType, MVT::i32, ++/*340620*/ OPC_MoveParent, ++/*340621*/ OPC_MoveChild, 8, ++/*340623*/ OPC_CheckInteger, 1, ++/*340625*/ OPC_CheckType, MVT::i32, ++/*340627*/ OPC_MoveParent, ++/*340628*/ OPC_MoveChild, 9, ++/*340630*/ OPC_CheckInteger, 1, ++/*340632*/ OPC_CheckType, MVT::i32, ++/*340634*/ OPC_MoveParent, ++/*340635*/ OPC_MoveChild, 10, ++/*340637*/ OPC_CheckInteger, 1, ++/*340639*/ OPC_CheckType, MVT::i32, ++/*340641*/ OPC_MoveParent, ++/*340642*/ OPC_MoveChild, 11, ++/*340644*/ OPC_CheckInteger, 1, ++/*340646*/ OPC_CheckType, MVT::i32, ++/*340648*/ OPC_MoveParent, ++/*340649*/ OPC_MoveChild, 12, ++/*340651*/ OPC_CheckInteger, 1, ++/*340653*/ OPC_CheckType, MVT::i32, ++/*340655*/ OPC_MoveParent, ++/*340656*/ OPC_MoveChild, 13, ++/*340658*/ OPC_CheckInteger, 1, ++/*340660*/ OPC_CheckType, MVT::i32, ++/*340662*/ OPC_MoveParent, ++/*340663*/ OPC_MoveChild, 14, ++/*340665*/ OPC_CheckInteger, 1, ++/*340667*/ OPC_CheckType, MVT::i32, ++/*340669*/ OPC_MoveParent, ++/*340670*/ OPC_MoveChild, 15, ++/*340672*/ OPC_CheckInteger, 1, ++/*340674*/ OPC_CheckType, MVT::i32, ++/*340676*/ OPC_MoveParent, ++/*340677*/ OPC_CheckType, MVT::v16i8, ++/*340679*/ OPC_MoveParent, ++/*340680*/ OPC_CheckType, MVT::v16i8, ++/*340682*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*340684*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a), LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*340692*/ /*Scope*/ 91|128,1/*219*/, /*->340913*/ ++/*340694*/ OPC_MoveChild0, ++/*340695*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*340698*/ OPC_CheckChild0Integer, 1, ++/*340700*/ OPC_CheckChild0Type, MVT::i32, ++/*340702*/ OPC_CheckChild1Integer, 1, ++/*340704*/ OPC_CheckChild1Type, MVT::i32, ++/*340706*/ OPC_CheckChild2Integer, 1, ++/*340708*/ OPC_CheckChild2Type, MVT::i32, ++/*340710*/ OPC_CheckChild3Integer, 1, ++/*340712*/ OPC_CheckChild3Type, MVT::i32, ++/*340714*/ OPC_CheckChild4Integer, 1, ++/*340716*/ OPC_CheckChild4Type, MVT::i32, ++/*340718*/ OPC_MoveChild5, ++/*340719*/ OPC_CheckInteger, 1, ++/*340721*/ OPC_CheckType, MVT::i32, ++/*340723*/ OPC_MoveParent, ++/*340724*/ OPC_MoveChild6, ++/*340725*/ OPC_CheckInteger, 1, ++/*340727*/ OPC_CheckType, MVT::i32, ++/*340729*/ OPC_MoveParent, ++/*340730*/ OPC_MoveChild7, ++/*340731*/ OPC_CheckInteger, 1, ++/*340733*/ OPC_CheckType, MVT::i32, ++/*340735*/ OPC_MoveParent, ++/*340736*/ OPC_MoveChild, 8, ++/*340738*/ OPC_CheckInteger, 1, ++/*340740*/ OPC_CheckType, MVT::i32, ++/*340742*/ OPC_MoveParent, ++/*340743*/ OPC_MoveChild, 9, ++/*340745*/ OPC_CheckInteger, 1, ++/*340747*/ OPC_CheckType, MVT::i32, ++/*340749*/ OPC_MoveParent, ++/*340750*/ OPC_MoveChild, 10, ++/*340752*/ OPC_CheckInteger, 1, ++/*340754*/ OPC_CheckType, MVT::i32, ++/*340756*/ OPC_MoveParent, ++/*340757*/ OPC_MoveChild, 11, ++/*340759*/ OPC_CheckInteger, 1, ++/*340761*/ OPC_CheckType, MVT::i32, ++/*340763*/ OPC_MoveParent, ++/*340764*/ OPC_MoveChild, 12, ++/*340766*/ OPC_CheckInteger, 1, ++/*340768*/ OPC_CheckType, MVT::i32, ++/*340770*/ OPC_MoveParent, ++/*340771*/ OPC_MoveChild, 13, ++/*340773*/ OPC_CheckInteger, 1, ++/*340775*/ OPC_CheckType, MVT::i32, ++/*340777*/ OPC_MoveParent, ++/*340778*/ OPC_MoveChild, 14, ++/*340780*/ OPC_CheckInteger, 1, ++/*340782*/ OPC_CheckType, MVT::i32, ++/*340784*/ OPC_MoveParent, ++/*340785*/ OPC_MoveChild, 15, ++/*340787*/ OPC_CheckInteger, 1, ++/*340789*/ OPC_CheckType, MVT::i32, ++/*340791*/ OPC_MoveParent, ++/*340792*/ OPC_MoveParent, ++/*340793*/ OPC_CheckChild1Same, 1, ++/*340795*/ OPC_MoveParent, ++/*340796*/ OPC_CheckChild1Same, 0, ++/*340798*/ OPC_MoveParent, ++/*340799*/ OPC_MoveParent, ++/*340800*/ OPC_MoveChild1, ++/*340801*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*340804*/ OPC_CheckChild0Integer, 1, ++/*340806*/ OPC_CheckChild0Type, MVT::i32, ++/*340808*/ OPC_CheckChild1Integer, 1, ++/*340810*/ OPC_CheckChild1Type, MVT::i32, ++/*340812*/ OPC_CheckChild2Integer, 1, ++/*340814*/ OPC_CheckChild2Type, MVT::i32, ++/*340816*/ OPC_CheckChild3Integer, 1, ++/*340818*/ OPC_CheckChild3Type, MVT::i32, ++/*340820*/ OPC_CheckChild4Integer, 1, ++/*340822*/ OPC_CheckChild4Type, MVT::i32, ++/*340824*/ OPC_MoveChild5, ++/*340825*/ OPC_CheckInteger, 1, ++/*340827*/ OPC_CheckType, MVT::i32, ++/*340829*/ OPC_MoveParent, ++/*340830*/ OPC_MoveChild6, ++/*340831*/ OPC_CheckInteger, 1, ++/*340833*/ OPC_CheckType, MVT::i32, ++/*340835*/ OPC_MoveParent, ++/*340836*/ OPC_MoveChild7, ++/*340837*/ OPC_CheckInteger, 1, ++/*340839*/ OPC_CheckType, MVT::i32, ++/*340841*/ OPC_MoveParent, ++/*340842*/ OPC_MoveChild, 8, ++/*340844*/ OPC_CheckInteger, 1, ++/*340846*/ OPC_CheckType, MVT::i32, ++/*340848*/ OPC_MoveParent, ++/*340849*/ OPC_MoveChild, 9, ++/*340851*/ OPC_CheckInteger, 1, ++/*340853*/ OPC_CheckType, MVT::i32, ++/*340855*/ OPC_MoveParent, ++/*340856*/ OPC_MoveChild, 10, ++/*340858*/ OPC_CheckInteger, 1, ++/*340860*/ OPC_CheckType, MVT::i32, ++/*340862*/ OPC_MoveParent, ++/*340863*/ OPC_MoveChild, 11, ++/*340865*/ OPC_CheckInteger, 1, ++/*340867*/ OPC_CheckType, MVT::i32, ++/*340869*/ OPC_MoveParent, ++/*340870*/ OPC_MoveChild, 12, ++/*340872*/ OPC_CheckInteger, 1, ++/*340874*/ OPC_CheckType, MVT::i32, ++/*340876*/ OPC_MoveParent, ++/*340877*/ OPC_MoveChild, 13, ++/*340879*/ OPC_CheckInteger, 1, ++/*340881*/ OPC_CheckType, MVT::i32, ++/*340883*/ OPC_MoveParent, ++/*340884*/ OPC_MoveChild, 14, ++/*340886*/ OPC_CheckInteger, 1, ++/*340888*/ OPC_CheckType, MVT::i32, ++/*340890*/ OPC_MoveParent, ++/*340891*/ OPC_MoveChild, 15, ++/*340893*/ OPC_CheckInteger, 1, ++/*340895*/ OPC_CheckType, MVT::i32, ++/*340897*/ OPC_MoveParent, ++/*340898*/ OPC_CheckType, MVT::v16i8, ++/*340900*/ OPC_MoveParent, ++/*340901*/ OPC_CheckType, MVT::v16i8, ++/*340903*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*340905*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a), LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b), LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*340913*/ /*Scope*/ 91|128,1/*219*/, /*->341134*/ ++/*340915*/ OPC_CheckChild0Same, 1, ++/*340917*/ OPC_MoveChild1, ++/*340918*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*340921*/ OPC_CheckChild0Integer, 1, ++/*340923*/ OPC_CheckChild0Type, MVT::i32, ++/*340925*/ OPC_CheckChild1Integer, 1, ++/*340927*/ OPC_CheckChild1Type, MVT::i32, ++/*340929*/ OPC_CheckChild2Integer, 1, ++/*340931*/ OPC_CheckChild2Type, MVT::i32, ++/*340933*/ OPC_CheckChild3Integer, 1, ++/*340935*/ OPC_CheckChild3Type, MVT::i32, ++/*340937*/ OPC_CheckChild4Integer, 1, ++/*340939*/ OPC_CheckChild4Type, MVT::i32, ++/*340941*/ OPC_MoveChild5, ++/*340942*/ OPC_CheckInteger, 1, ++/*340944*/ OPC_CheckType, MVT::i32, ++/*340946*/ OPC_MoveParent, ++/*340947*/ OPC_MoveChild6, ++/*340948*/ OPC_CheckInteger, 1, ++/*340950*/ OPC_CheckType, MVT::i32, ++/*340952*/ OPC_MoveParent, ++/*340953*/ OPC_MoveChild7, ++/*340954*/ OPC_CheckInteger, 1, ++/*340956*/ OPC_CheckType, MVT::i32, ++/*340958*/ OPC_MoveParent, ++/*340959*/ OPC_MoveChild, 8, ++/*340961*/ OPC_CheckInteger, 1, ++/*340963*/ OPC_CheckType, MVT::i32, ++/*340965*/ OPC_MoveParent, ++/*340966*/ OPC_MoveChild, 9, ++/*340968*/ OPC_CheckInteger, 1, ++/*340970*/ OPC_CheckType, MVT::i32, ++/*340972*/ OPC_MoveParent, ++/*340973*/ OPC_MoveChild, 10, ++/*340975*/ OPC_CheckInteger, 1, ++/*340977*/ OPC_CheckType, MVT::i32, ++/*340979*/ OPC_MoveParent, ++/*340980*/ OPC_MoveChild, 11, ++/*340982*/ OPC_CheckInteger, 1, ++/*340984*/ OPC_CheckType, MVT::i32, ++/*340986*/ OPC_MoveParent, ++/*340987*/ OPC_MoveChild, 12, ++/*340989*/ OPC_CheckInteger, 1, ++/*340991*/ OPC_CheckType, MVT::i32, ++/*340993*/ OPC_MoveParent, ++/*340994*/ OPC_MoveChild, 13, ++/*340996*/ OPC_CheckInteger, 1, ++/*340998*/ OPC_CheckType, MVT::i32, ++/*341000*/ OPC_MoveParent, ++/*341001*/ OPC_MoveChild, 14, ++/*341003*/ OPC_CheckInteger, 1, ++/*341005*/ OPC_CheckType, MVT::i32, ++/*341007*/ OPC_MoveParent, ++/*341008*/ OPC_MoveChild, 15, ++/*341010*/ OPC_CheckInteger, 1, ++/*341012*/ OPC_CheckType, MVT::i32, ++/*341014*/ OPC_MoveParent, ++/*341015*/ OPC_MoveParent, ++/*341016*/ OPC_MoveParent, ++/*341017*/ OPC_CheckChild1Same, 0, ++/*341019*/ OPC_MoveParent, ++/*341020*/ OPC_MoveParent, ++/*341021*/ OPC_MoveChild1, ++/*341022*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*341025*/ OPC_CheckChild0Integer, 1, ++/*341027*/ OPC_CheckChild0Type, MVT::i32, ++/*341029*/ OPC_CheckChild1Integer, 1, ++/*341031*/ OPC_CheckChild1Type, MVT::i32, ++/*341033*/ OPC_CheckChild2Integer, 1, ++/*341035*/ OPC_CheckChild2Type, MVT::i32, ++/*341037*/ OPC_CheckChild3Integer, 1, ++/*341039*/ OPC_CheckChild3Type, MVT::i32, ++/*341041*/ OPC_CheckChild4Integer, 1, ++/*341043*/ OPC_CheckChild4Type, MVT::i32, ++/*341045*/ OPC_MoveChild5, ++/*341046*/ OPC_CheckInteger, 1, ++/*341048*/ OPC_CheckType, MVT::i32, ++/*341050*/ OPC_MoveParent, ++/*341051*/ OPC_MoveChild6, ++/*341052*/ OPC_CheckInteger, 1, ++/*341054*/ OPC_CheckType, MVT::i32, ++/*341056*/ OPC_MoveParent, ++/*341057*/ OPC_MoveChild7, ++/*341058*/ OPC_CheckInteger, 1, ++/*341060*/ OPC_CheckType, MVT::i32, ++/*341062*/ OPC_MoveParent, ++/*341063*/ OPC_MoveChild, 8, ++/*341065*/ OPC_CheckInteger, 1, ++/*341067*/ OPC_CheckType, MVT::i32, ++/*341069*/ OPC_MoveParent, ++/*341070*/ OPC_MoveChild, 9, ++/*341072*/ OPC_CheckInteger, 1, ++/*341074*/ OPC_CheckType, MVT::i32, ++/*341076*/ OPC_MoveParent, ++/*341077*/ OPC_MoveChild, 10, ++/*341079*/ OPC_CheckInteger, 1, ++/*341081*/ OPC_CheckType, MVT::i32, ++/*341083*/ OPC_MoveParent, ++/*341084*/ OPC_MoveChild, 11, ++/*341086*/ OPC_CheckInteger, 1, ++/*341088*/ OPC_CheckType, MVT::i32, ++/*341090*/ OPC_MoveParent, ++/*341091*/ OPC_MoveChild, 12, ++/*341093*/ OPC_CheckInteger, 1, ++/*341095*/ OPC_CheckType, MVT::i32, ++/*341097*/ OPC_MoveParent, ++/*341098*/ OPC_MoveChild, 13, ++/*341100*/ OPC_CheckInteger, 1, ++/*341102*/ OPC_CheckType, MVT::i32, ++/*341104*/ OPC_MoveParent, ++/*341105*/ OPC_MoveChild, 14, ++/*341107*/ OPC_CheckInteger, 1, ++/*341109*/ OPC_CheckType, MVT::i32, ++/*341111*/ OPC_MoveParent, ++/*341112*/ OPC_MoveChild, 15, ++/*341114*/ OPC_CheckInteger, 1, ++/*341116*/ OPC_CheckType, MVT::i32, ++/*341118*/ OPC_MoveParent, ++/*341119*/ OPC_CheckType, MVT::v16i8, ++/*341121*/ OPC_MoveParent, ++/*341122*/ OPC_CheckType, MVT::v16i8, ++/*341124*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*341126*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a), LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*341134*/ /*Scope*/ 91|128,1/*219*/, /*->341355*/ ++/*341136*/ OPC_CheckChild0Same, 0, ++/*341138*/ OPC_CheckChild1Same, 1, ++/*341140*/ OPC_MoveParent, ++/*341141*/ OPC_MoveChild1, ++/*341142*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*341145*/ OPC_CheckChild0Integer, 1, ++/*341147*/ OPC_CheckChild0Type, MVT::i32, ++/*341149*/ OPC_CheckChild1Integer, 1, ++/*341151*/ OPC_CheckChild1Type, MVT::i32, ++/*341153*/ OPC_CheckChild2Integer, 1, ++/*341155*/ OPC_CheckChild2Type, MVT::i32, ++/*341157*/ OPC_CheckChild3Integer, 1, ++/*341159*/ OPC_CheckChild3Type, MVT::i32, ++/*341161*/ OPC_CheckChild4Integer, 1, ++/*341163*/ OPC_CheckChild4Type, MVT::i32, ++/*341165*/ OPC_MoveChild5, ++/*341166*/ OPC_CheckInteger, 1, ++/*341168*/ OPC_CheckType, MVT::i32, ++/*341170*/ OPC_MoveParent, ++/*341171*/ OPC_MoveChild6, ++/*341172*/ OPC_CheckInteger, 1, ++/*341174*/ OPC_CheckType, MVT::i32, ++/*341176*/ OPC_MoveParent, ++/*341177*/ OPC_MoveChild7, ++/*341178*/ OPC_CheckInteger, 1, ++/*341180*/ OPC_CheckType, MVT::i32, ++/*341182*/ OPC_MoveParent, ++/*341183*/ OPC_MoveChild, 8, ++/*341185*/ OPC_CheckInteger, 1, ++/*341187*/ OPC_CheckType, MVT::i32, ++/*341189*/ OPC_MoveParent, ++/*341190*/ OPC_MoveChild, 9, ++/*341192*/ OPC_CheckInteger, 1, ++/*341194*/ OPC_CheckType, MVT::i32, ++/*341196*/ OPC_MoveParent, ++/*341197*/ OPC_MoveChild, 10, ++/*341199*/ OPC_CheckInteger, 1, ++/*341201*/ OPC_CheckType, MVT::i32, ++/*341203*/ OPC_MoveParent, ++/*341204*/ OPC_MoveChild, 11, ++/*341206*/ OPC_CheckInteger, 1, ++/*341208*/ OPC_CheckType, MVT::i32, ++/*341210*/ OPC_MoveParent, ++/*341211*/ OPC_MoveChild, 12, ++/*341213*/ OPC_CheckInteger, 1, ++/*341215*/ OPC_CheckType, MVT::i32, ++/*341217*/ OPC_MoveParent, ++/*341218*/ OPC_MoveChild, 13, ++/*341220*/ OPC_CheckInteger, 1, ++/*341222*/ OPC_CheckType, MVT::i32, ++/*341224*/ OPC_MoveParent, ++/*341225*/ OPC_MoveChild, 14, ++/*341227*/ OPC_CheckInteger, 1, ++/*341229*/ OPC_CheckType, MVT::i32, ++/*341231*/ OPC_MoveParent, ++/*341232*/ OPC_MoveChild, 15, ++/*341234*/ OPC_CheckInteger, 1, ++/*341236*/ OPC_CheckType, MVT::i32, ++/*341238*/ OPC_MoveParent, ++/*341239*/ OPC_MoveParent, ++/*341240*/ OPC_MoveParent, ++/*341241*/ OPC_MoveParent, ++/*341242*/ OPC_MoveChild1, ++/*341243*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*341246*/ OPC_CheckChild0Integer, 1, ++/*341248*/ OPC_CheckChild0Type, MVT::i32, ++/*341250*/ OPC_CheckChild1Integer, 1, ++/*341252*/ OPC_CheckChild1Type, MVT::i32, ++/*341254*/ OPC_CheckChild2Integer, 1, ++/*341256*/ OPC_CheckChild2Type, MVT::i32, ++/*341258*/ OPC_CheckChild3Integer, 1, ++/*341260*/ OPC_CheckChild3Type, MVT::i32, ++/*341262*/ OPC_CheckChild4Integer, 1, ++/*341264*/ OPC_CheckChild4Type, MVT::i32, ++/*341266*/ OPC_MoveChild5, ++/*341267*/ OPC_CheckInteger, 1, ++/*341269*/ OPC_CheckType, MVT::i32, ++/*341271*/ OPC_MoveParent, ++/*341272*/ OPC_MoveChild6, ++/*341273*/ OPC_CheckInteger, 1, ++/*341275*/ OPC_CheckType, MVT::i32, ++/*341277*/ OPC_MoveParent, ++/*341278*/ OPC_MoveChild7, ++/*341279*/ OPC_CheckInteger, 1, ++/*341281*/ OPC_CheckType, MVT::i32, ++/*341283*/ OPC_MoveParent, ++/*341284*/ OPC_MoveChild, 8, ++/*341286*/ OPC_CheckInteger, 1, ++/*341288*/ OPC_CheckType, MVT::i32, ++/*341290*/ OPC_MoveParent, ++/*341291*/ OPC_MoveChild, 9, ++/*341293*/ OPC_CheckInteger, 1, ++/*341295*/ OPC_CheckType, MVT::i32, ++/*341297*/ OPC_MoveParent, ++/*341298*/ OPC_MoveChild, 10, ++/*341300*/ OPC_CheckInteger, 1, ++/*341302*/ OPC_CheckType, MVT::i32, ++/*341304*/ OPC_MoveParent, ++/*341305*/ OPC_MoveChild, 11, ++/*341307*/ OPC_CheckInteger, 1, ++/*341309*/ OPC_CheckType, MVT::i32, ++/*341311*/ OPC_MoveParent, ++/*341312*/ OPC_MoveChild, 12, ++/*341314*/ OPC_CheckInteger, 1, ++/*341316*/ OPC_CheckType, MVT::i32, ++/*341318*/ OPC_MoveParent, ++/*341319*/ OPC_MoveChild, 13, ++/*341321*/ OPC_CheckInteger, 1, ++/*341323*/ OPC_CheckType, MVT::i32, ++/*341325*/ OPC_MoveParent, ++/*341326*/ OPC_MoveChild, 14, ++/*341328*/ OPC_CheckInteger, 1, ++/*341330*/ OPC_CheckType, MVT::i32, ++/*341332*/ OPC_MoveParent, ++/*341333*/ OPC_MoveChild, 15, ++/*341335*/ OPC_CheckInteger, 1, ++/*341337*/ OPC_CheckType, MVT::i32, ++/*341339*/ OPC_MoveParent, ++/*341340*/ OPC_CheckType, MVT::v16i8, ++/*341342*/ OPC_MoveParent, ++/*341343*/ OPC_CheckType, MVT::v16i8, ++/*341345*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*341347*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a), LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*341355*/ /*Scope*/ 91|128,1/*219*/, /*->341576*/ ++/*341357*/ OPC_CheckChild0Same, 1, ++/*341359*/ OPC_CheckChild1Same, 0, ++/*341361*/ OPC_MoveParent, ++/*341362*/ OPC_MoveChild1, ++/*341363*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*341366*/ OPC_CheckChild0Integer, 1, ++/*341368*/ OPC_CheckChild0Type, MVT::i32, ++/*341370*/ OPC_CheckChild1Integer, 1, ++/*341372*/ OPC_CheckChild1Type, MVT::i32, ++/*341374*/ OPC_CheckChild2Integer, 1, ++/*341376*/ OPC_CheckChild2Type, MVT::i32, ++/*341378*/ OPC_CheckChild3Integer, 1, ++/*341380*/ OPC_CheckChild3Type, MVT::i32, ++/*341382*/ OPC_CheckChild4Integer, 1, ++/*341384*/ OPC_CheckChild4Type, MVT::i32, ++/*341386*/ OPC_MoveChild5, ++/*341387*/ OPC_CheckInteger, 1, ++/*341389*/ OPC_CheckType, MVT::i32, ++/*341391*/ OPC_MoveParent, ++/*341392*/ OPC_MoveChild6, ++/*341393*/ OPC_CheckInteger, 1, ++/*341395*/ OPC_CheckType, MVT::i32, ++/*341397*/ OPC_MoveParent, ++/*341398*/ OPC_MoveChild7, ++/*341399*/ OPC_CheckInteger, 1, ++/*341401*/ OPC_CheckType, MVT::i32, ++/*341403*/ OPC_MoveParent, ++/*341404*/ OPC_MoveChild, 8, ++/*341406*/ OPC_CheckInteger, 1, ++/*341408*/ OPC_CheckType, MVT::i32, ++/*341410*/ OPC_MoveParent, ++/*341411*/ OPC_MoveChild, 9, ++/*341413*/ OPC_CheckInteger, 1, ++/*341415*/ OPC_CheckType, MVT::i32, ++/*341417*/ OPC_MoveParent, ++/*341418*/ OPC_MoveChild, 10, ++/*341420*/ OPC_CheckInteger, 1, ++/*341422*/ OPC_CheckType, MVT::i32, ++/*341424*/ OPC_MoveParent, ++/*341425*/ OPC_MoveChild, 11, ++/*341427*/ OPC_CheckInteger, 1, ++/*341429*/ OPC_CheckType, MVT::i32, ++/*341431*/ OPC_MoveParent, ++/*341432*/ OPC_MoveChild, 12, ++/*341434*/ OPC_CheckInteger, 1, ++/*341436*/ OPC_CheckType, MVT::i32, ++/*341438*/ OPC_MoveParent, ++/*341439*/ OPC_MoveChild, 13, ++/*341441*/ OPC_CheckInteger, 1, ++/*341443*/ OPC_CheckType, MVT::i32, ++/*341445*/ OPC_MoveParent, ++/*341446*/ OPC_MoveChild, 14, ++/*341448*/ OPC_CheckInteger, 1, ++/*341450*/ OPC_CheckType, MVT::i32, ++/*341452*/ OPC_MoveParent, ++/*341453*/ OPC_MoveChild, 15, ++/*341455*/ OPC_CheckInteger, 1, ++/*341457*/ OPC_CheckType, MVT::i32, ++/*341459*/ OPC_MoveParent, ++/*341460*/ OPC_MoveParent, ++/*341461*/ OPC_MoveParent, ++/*341462*/ OPC_MoveParent, ++/*341463*/ OPC_MoveChild1, ++/*341464*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*341467*/ OPC_CheckChild0Integer, 1, ++/*341469*/ OPC_CheckChild0Type, MVT::i32, ++/*341471*/ OPC_CheckChild1Integer, 1, ++/*341473*/ OPC_CheckChild1Type, MVT::i32, ++/*341475*/ OPC_CheckChild2Integer, 1, ++/*341477*/ OPC_CheckChild2Type, MVT::i32, ++/*341479*/ OPC_CheckChild3Integer, 1, ++/*341481*/ OPC_CheckChild3Type, MVT::i32, ++/*341483*/ OPC_CheckChild4Integer, 1, ++/*341485*/ OPC_CheckChild4Type, MVT::i32, ++/*341487*/ OPC_MoveChild5, ++/*341488*/ OPC_CheckInteger, 1, ++/*341490*/ OPC_CheckType, MVT::i32, ++/*341492*/ OPC_MoveParent, ++/*341493*/ OPC_MoveChild6, ++/*341494*/ OPC_CheckInteger, 1, ++/*341496*/ OPC_CheckType, MVT::i32, ++/*341498*/ OPC_MoveParent, ++/*341499*/ OPC_MoveChild7, ++/*341500*/ OPC_CheckInteger, 1, ++/*341502*/ OPC_CheckType, MVT::i32, ++/*341504*/ OPC_MoveParent, ++/*341505*/ OPC_MoveChild, 8, ++/*341507*/ OPC_CheckInteger, 1, ++/*341509*/ OPC_CheckType, MVT::i32, ++/*341511*/ OPC_MoveParent, ++/*341512*/ OPC_MoveChild, 9, ++/*341514*/ OPC_CheckInteger, 1, ++/*341516*/ OPC_CheckType, MVT::i32, ++/*341518*/ OPC_MoveParent, ++/*341519*/ OPC_MoveChild, 10, ++/*341521*/ OPC_CheckInteger, 1, ++/*341523*/ OPC_CheckType, MVT::i32, ++/*341525*/ OPC_MoveParent, ++/*341526*/ OPC_MoveChild, 11, ++/*341528*/ OPC_CheckInteger, 1, ++/*341530*/ OPC_CheckType, MVT::i32, ++/*341532*/ OPC_MoveParent, ++/*341533*/ OPC_MoveChild, 12, ++/*341535*/ OPC_CheckInteger, 1, ++/*341537*/ OPC_CheckType, MVT::i32, ++/*341539*/ OPC_MoveParent, ++/*341540*/ OPC_MoveChild, 13, ++/*341542*/ OPC_CheckInteger, 1, ++/*341544*/ OPC_CheckType, MVT::i32, ++/*341546*/ OPC_MoveParent, ++/*341547*/ OPC_MoveChild, 14, ++/*341549*/ OPC_CheckInteger, 1, ++/*341551*/ OPC_CheckType, MVT::i32, ++/*341553*/ OPC_MoveParent, ++/*341554*/ OPC_MoveChild, 15, ++/*341556*/ OPC_CheckInteger, 1, ++/*341558*/ OPC_CheckType, MVT::i32, ++/*341560*/ OPC_MoveParent, ++/*341561*/ OPC_CheckType, MVT::v16i8, ++/*341563*/ OPC_MoveParent, ++/*341564*/ OPC_CheckType, MVT::v16i8, ++/*341566*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*341568*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a), LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*341576*/ 0, /*End of Scope*/ ++/*341577*/ /*Scope*/ 62|128,3/*446*/, /*->342025*/ ++/*341579*/ OPC_CheckChild0Same, 1, ++/*341581*/ OPC_MoveChild1, ++/*341582*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*341585*/ OPC_Scope, 89|128,1/*217*/, /*->341805*/ // 2 children in Scope ++/*341588*/ OPC_MoveChild0, ++/*341589*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*341592*/ OPC_CheckChild0Integer, 1, ++/*341594*/ OPC_CheckChild0Type, MVT::i32, ++/*341596*/ OPC_CheckChild1Integer, 1, ++/*341598*/ OPC_CheckChild1Type, MVT::i32, ++/*341600*/ OPC_CheckChild2Integer, 1, ++/*341602*/ OPC_CheckChild2Type, MVT::i32, ++/*341604*/ OPC_CheckChild3Integer, 1, ++/*341606*/ OPC_CheckChild3Type, MVT::i32, ++/*341608*/ OPC_CheckChild4Integer, 1, ++/*341610*/ OPC_CheckChild4Type, MVT::i32, ++/*341612*/ OPC_MoveChild5, ++/*341613*/ OPC_CheckInteger, 1, ++/*341615*/ OPC_CheckType, MVT::i32, ++/*341617*/ OPC_MoveParent, ++/*341618*/ OPC_MoveChild6, ++/*341619*/ OPC_CheckInteger, 1, ++/*341621*/ OPC_CheckType, MVT::i32, ++/*341623*/ OPC_MoveParent, ++/*341624*/ OPC_MoveChild7, ++/*341625*/ OPC_CheckInteger, 1, ++/*341627*/ OPC_CheckType, MVT::i32, ++/*341629*/ OPC_MoveParent, ++/*341630*/ OPC_MoveChild, 8, ++/*341632*/ OPC_CheckInteger, 1, ++/*341634*/ OPC_CheckType, MVT::i32, ++/*341636*/ OPC_MoveParent, ++/*341637*/ OPC_MoveChild, 9, ++/*341639*/ OPC_CheckInteger, 1, ++/*341641*/ OPC_CheckType, MVT::i32, ++/*341643*/ OPC_MoveParent, ++/*341644*/ OPC_MoveChild, 10, ++/*341646*/ OPC_CheckInteger, 1, ++/*341648*/ OPC_CheckType, MVT::i32, ++/*341650*/ OPC_MoveParent, ++/*341651*/ OPC_MoveChild, 11, ++/*341653*/ OPC_CheckInteger, 1, ++/*341655*/ OPC_CheckType, MVT::i32, ++/*341657*/ OPC_MoveParent, ++/*341658*/ OPC_MoveChild, 12, ++/*341660*/ OPC_CheckInteger, 1, ++/*341662*/ OPC_CheckType, MVT::i32, ++/*341664*/ OPC_MoveParent, ++/*341665*/ OPC_MoveChild, 13, ++/*341667*/ OPC_CheckInteger, 1, ++/*341669*/ OPC_CheckType, MVT::i32, ++/*341671*/ OPC_MoveParent, ++/*341672*/ OPC_MoveChild, 14, ++/*341674*/ OPC_CheckInteger, 1, ++/*341676*/ OPC_CheckType, MVT::i32, ++/*341678*/ OPC_MoveParent, ++/*341679*/ OPC_MoveChild, 15, ++/*341681*/ OPC_CheckInteger, 1, ++/*341683*/ OPC_CheckType, MVT::i32, ++/*341685*/ OPC_MoveParent, ++/*341686*/ OPC_MoveParent, ++/*341687*/ OPC_CheckChild1Same, 0, ++/*341689*/ OPC_MoveParent, ++/*341690*/ OPC_MoveParent, ++/*341691*/ OPC_MoveParent, ++/*341692*/ OPC_MoveChild1, ++/*341693*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*341696*/ OPC_CheckChild0Integer, 1, ++/*341698*/ OPC_CheckChild0Type, MVT::i32, ++/*341700*/ OPC_CheckChild1Integer, 1, ++/*341702*/ OPC_CheckChild1Type, MVT::i32, ++/*341704*/ OPC_CheckChild2Integer, 1, ++/*341706*/ OPC_CheckChild2Type, MVT::i32, ++/*341708*/ OPC_CheckChild3Integer, 1, ++/*341710*/ OPC_CheckChild3Type, MVT::i32, ++/*341712*/ OPC_CheckChild4Integer, 1, ++/*341714*/ OPC_CheckChild4Type, MVT::i32, ++/*341716*/ OPC_MoveChild5, ++/*341717*/ OPC_CheckInteger, 1, ++/*341719*/ OPC_CheckType, MVT::i32, ++/*341721*/ OPC_MoveParent, ++/*341722*/ OPC_MoveChild6, ++/*341723*/ OPC_CheckInteger, 1, ++/*341725*/ OPC_CheckType, MVT::i32, ++/*341727*/ OPC_MoveParent, ++/*341728*/ OPC_MoveChild7, ++/*341729*/ OPC_CheckInteger, 1, ++/*341731*/ OPC_CheckType, MVT::i32, ++/*341733*/ OPC_MoveParent, ++/*341734*/ OPC_MoveChild, 8, ++/*341736*/ OPC_CheckInteger, 1, ++/*341738*/ OPC_CheckType, MVT::i32, ++/*341740*/ OPC_MoveParent, ++/*341741*/ OPC_MoveChild, 9, ++/*341743*/ OPC_CheckInteger, 1, ++/*341745*/ OPC_CheckType, MVT::i32, ++/*341747*/ OPC_MoveParent, ++/*341748*/ OPC_MoveChild, 10, ++/*341750*/ OPC_CheckInteger, 1, ++/*341752*/ OPC_CheckType, MVT::i32, ++/*341754*/ OPC_MoveParent, ++/*341755*/ OPC_MoveChild, 11, ++/*341757*/ OPC_CheckInteger, 1, ++/*341759*/ OPC_CheckType, MVT::i32, ++/*341761*/ OPC_MoveParent, ++/*341762*/ OPC_MoveChild, 12, ++/*341764*/ OPC_CheckInteger, 1, ++/*341766*/ OPC_CheckType, MVT::i32, ++/*341768*/ OPC_MoveParent, ++/*341769*/ OPC_MoveChild, 13, ++/*341771*/ OPC_CheckInteger, 1, ++/*341773*/ OPC_CheckType, MVT::i32, ++/*341775*/ OPC_MoveParent, ++/*341776*/ OPC_MoveChild, 14, ++/*341778*/ OPC_CheckInteger, 1, ++/*341780*/ OPC_CheckType, MVT::i32, ++/*341782*/ OPC_MoveParent, ++/*341783*/ OPC_MoveChild, 15, ++/*341785*/ OPC_CheckInteger, 1, ++/*341787*/ OPC_CheckType, MVT::i32, ++/*341789*/ OPC_MoveParent, ++/*341790*/ OPC_CheckType, MVT::v16i8, ++/*341792*/ OPC_MoveParent, ++/*341793*/ OPC_CheckType, MVT::v16i8, ++/*341795*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*341797*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a), LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*341805*/ /*Scope*/ 89|128,1/*217*/, /*->342024*/ ++/*341807*/ OPC_CheckChild0Same, 0, ++/*341809*/ OPC_MoveChild1, ++/*341810*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*341813*/ OPC_CheckChild0Integer, 1, ++/*341815*/ OPC_CheckChild0Type, MVT::i32, ++/*341817*/ OPC_CheckChild1Integer, 1, ++/*341819*/ OPC_CheckChild1Type, MVT::i32, ++/*341821*/ OPC_CheckChild2Integer, 1, ++/*341823*/ OPC_CheckChild2Type, MVT::i32, ++/*341825*/ OPC_CheckChild3Integer, 1, ++/*341827*/ OPC_CheckChild3Type, MVT::i32, ++/*341829*/ OPC_CheckChild4Integer, 1, ++/*341831*/ OPC_CheckChild4Type, MVT::i32, ++/*341833*/ OPC_MoveChild5, ++/*341834*/ OPC_CheckInteger, 1, ++/*341836*/ OPC_CheckType, MVT::i32, ++/*341838*/ OPC_MoveParent, ++/*341839*/ OPC_MoveChild6, ++/*341840*/ OPC_CheckInteger, 1, ++/*341842*/ OPC_CheckType, MVT::i32, ++/*341844*/ OPC_MoveParent, ++/*341845*/ OPC_MoveChild7, ++/*341846*/ OPC_CheckInteger, 1, ++/*341848*/ OPC_CheckType, MVT::i32, ++/*341850*/ OPC_MoveParent, ++/*341851*/ OPC_MoveChild, 8, ++/*341853*/ OPC_CheckInteger, 1, ++/*341855*/ OPC_CheckType, MVT::i32, ++/*341857*/ OPC_MoveParent, ++/*341858*/ OPC_MoveChild, 9, ++/*341860*/ OPC_CheckInteger, 1, ++/*341862*/ OPC_CheckType, MVT::i32, ++/*341864*/ OPC_MoveParent, ++/*341865*/ OPC_MoveChild, 10, ++/*341867*/ OPC_CheckInteger, 1, ++/*341869*/ OPC_CheckType, MVT::i32, ++/*341871*/ OPC_MoveParent, ++/*341872*/ OPC_MoveChild, 11, ++/*341874*/ OPC_CheckInteger, 1, ++/*341876*/ OPC_CheckType, MVT::i32, ++/*341878*/ OPC_MoveParent, ++/*341879*/ OPC_MoveChild, 12, ++/*341881*/ OPC_CheckInteger, 1, ++/*341883*/ OPC_CheckType, MVT::i32, ++/*341885*/ OPC_MoveParent, ++/*341886*/ OPC_MoveChild, 13, ++/*341888*/ OPC_CheckInteger, 1, ++/*341890*/ OPC_CheckType, MVT::i32, ++/*341892*/ OPC_MoveParent, ++/*341893*/ OPC_MoveChild, 14, ++/*341895*/ OPC_CheckInteger, 1, ++/*341897*/ OPC_CheckType, MVT::i32, ++/*341899*/ OPC_MoveParent, ++/*341900*/ OPC_MoveChild, 15, ++/*341902*/ OPC_CheckInteger, 1, ++/*341904*/ OPC_CheckType, MVT::i32, ++/*341906*/ OPC_MoveParent, ++/*341907*/ OPC_MoveParent, ++/*341908*/ OPC_MoveParent, ++/*341909*/ OPC_MoveParent, ++/*341910*/ OPC_MoveParent, ++/*341911*/ OPC_MoveChild1, ++/*341912*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*341915*/ OPC_CheckChild0Integer, 1, ++/*341917*/ OPC_CheckChild0Type, MVT::i32, ++/*341919*/ OPC_CheckChild1Integer, 1, ++/*341921*/ OPC_CheckChild1Type, MVT::i32, ++/*341923*/ OPC_CheckChild2Integer, 1, ++/*341925*/ OPC_CheckChild2Type, MVT::i32, ++/*341927*/ OPC_CheckChild3Integer, 1, ++/*341929*/ OPC_CheckChild3Type, MVT::i32, ++/*341931*/ OPC_CheckChild4Integer, 1, ++/*341933*/ OPC_CheckChild4Type, MVT::i32, ++/*341935*/ OPC_MoveChild5, ++/*341936*/ OPC_CheckInteger, 1, ++/*341938*/ OPC_CheckType, MVT::i32, ++/*341940*/ OPC_MoveParent, ++/*341941*/ OPC_MoveChild6, ++/*341942*/ OPC_CheckInteger, 1, ++/*341944*/ OPC_CheckType, MVT::i32, ++/*341946*/ OPC_MoveParent, ++/*341947*/ OPC_MoveChild7, ++/*341948*/ OPC_CheckInteger, 1, ++/*341950*/ OPC_CheckType, MVT::i32, ++/*341952*/ OPC_MoveParent, ++/*341953*/ OPC_MoveChild, 8, ++/*341955*/ OPC_CheckInteger, 1, ++/*341957*/ OPC_CheckType, MVT::i32, ++/*341959*/ OPC_MoveParent, ++/*341960*/ OPC_MoveChild, 9, ++/*341962*/ OPC_CheckInteger, 1, ++/*341964*/ OPC_CheckType, MVT::i32, ++/*341966*/ OPC_MoveParent, ++/*341967*/ OPC_MoveChild, 10, ++/*341969*/ OPC_CheckInteger, 1, ++/*341971*/ OPC_CheckType, MVT::i32, ++/*341973*/ OPC_MoveParent, ++/*341974*/ OPC_MoveChild, 11, ++/*341976*/ OPC_CheckInteger, 1, ++/*341978*/ OPC_CheckType, MVT::i32, ++/*341980*/ OPC_MoveParent, ++/*341981*/ OPC_MoveChild, 12, ++/*341983*/ OPC_CheckInteger, 1, ++/*341985*/ OPC_CheckType, MVT::i32, ++/*341987*/ OPC_MoveParent, ++/*341988*/ OPC_MoveChild, 13, ++/*341990*/ OPC_CheckInteger, 1, ++/*341992*/ OPC_CheckType, MVT::i32, ++/*341994*/ OPC_MoveParent, ++/*341995*/ OPC_MoveChild, 14, ++/*341997*/ OPC_CheckInteger, 1, ++/*341999*/ OPC_CheckType, MVT::i32, ++/*342001*/ OPC_MoveParent, ++/*342002*/ OPC_MoveChild, 15, ++/*342004*/ OPC_CheckInteger, 1, ++/*342006*/ OPC_CheckType, MVT::i32, ++/*342008*/ OPC_MoveParent, ++/*342009*/ OPC_CheckType, MVT::v16i8, ++/*342011*/ OPC_MoveParent, ++/*342012*/ OPC_CheckType, MVT::v16i8, ++/*342014*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*342016*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a), LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*342024*/ 0, /*End of Scope*/ ++/*342025*/ /*Scope*/ 62|128,3/*446*/, /*->342473*/ ++/*342027*/ OPC_CheckChild0Same, 0, ++/*342029*/ OPC_MoveChild1, ++/*342030*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*342033*/ OPC_Scope, 89|128,1/*217*/, /*->342253*/ // 2 children in Scope ++/*342036*/ OPC_MoveChild0, ++/*342037*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*342040*/ OPC_CheckChild0Integer, 1, ++/*342042*/ OPC_CheckChild0Type, MVT::i32, ++/*342044*/ OPC_CheckChild1Integer, 1, ++/*342046*/ OPC_CheckChild1Type, MVT::i32, ++/*342048*/ OPC_CheckChild2Integer, 1, ++/*342050*/ OPC_CheckChild2Type, MVT::i32, ++/*342052*/ OPC_CheckChild3Integer, 1, ++/*342054*/ OPC_CheckChild3Type, MVT::i32, ++/*342056*/ OPC_CheckChild4Integer, 1, ++/*342058*/ OPC_CheckChild4Type, MVT::i32, ++/*342060*/ OPC_MoveChild5, ++/*342061*/ OPC_CheckInteger, 1, ++/*342063*/ OPC_CheckType, MVT::i32, ++/*342065*/ OPC_MoveParent, ++/*342066*/ OPC_MoveChild6, ++/*342067*/ OPC_CheckInteger, 1, ++/*342069*/ OPC_CheckType, MVT::i32, ++/*342071*/ OPC_MoveParent, ++/*342072*/ OPC_MoveChild7, ++/*342073*/ OPC_CheckInteger, 1, ++/*342075*/ OPC_CheckType, MVT::i32, ++/*342077*/ OPC_MoveParent, ++/*342078*/ OPC_MoveChild, 8, ++/*342080*/ OPC_CheckInteger, 1, ++/*342082*/ OPC_CheckType, MVT::i32, ++/*342084*/ OPC_MoveParent, ++/*342085*/ OPC_MoveChild, 9, ++/*342087*/ OPC_CheckInteger, 1, ++/*342089*/ OPC_CheckType, MVT::i32, ++/*342091*/ OPC_MoveParent, ++/*342092*/ OPC_MoveChild, 10, ++/*342094*/ OPC_CheckInteger, 1, ++/*342096*/ OPC_CheckType, MVT::i32, ++/*342098*/ OPC_MoveParent, ++/*342099*/ OPC_MoveChild, 11, ++/*342101*/ OPC_CheckInteger, 1, ++/*342103*/ OPC_CheckType, MVT::i32, ++/*342105*/ OPC_MoveParent, ++/*342106*/ OPC_MoveChild, 12, ++/*342108*/ OPC_CheckInteger, 1, ++/*342110*/ OPC_CheckType, MVT::i32, ++/*342112*/ OPC_MoveParent, ++/*342113*/ OPC_MoveChild, 13, ++/*342115*/ OPC_CheckInteger, 1, ++/*342117*/ OPC_CheckType, MVT::i32, ++/*342119*/ OPC_MoveParent, ++/*342120*/ OPC_MoveChild, 14, ++/*342122*/ OPC_CheckInteger, 1, ++/*342124*/ OPC_CheckType, MVT::i32, ++/*342126*/ OPC_MoveParent, ++/*342127*/ OPC_MoveChild, 15, ++/*342129*/ OPC_CheckInteger, 1, ++/*342131*/ OPC_CheckType, MVT::i32, ++/*342133*/ OPC_MoveParent, ++/*342134*/ OPC_MoveParent, ++/*342135*/ OPC_CheckChild1Same, 1, ++/*342137*/ OPC_MoveParent, ++/*342138*/ OPC_MoveParent, ++/*342139*/ OPC_MoveParent, ++/*342140*/ OPC_MoveChild1, ++/*342141*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*342144*/ OPC_CheckChild0Integer, 1, ++/*342146*/ OPC_CheckChild0Type, MVT::i32, ++/*342148*/ OPC_CheckChild1Integer, 1, ++/*342150*/ OPC_CheckChild1Type, MVT::i32, ++/*342152*/ OPC_CheckChild2Integer, 1, ++/*342154*/ OPC_CheckChild2Type, MVT::i32, ++/*342156*/ OPC_CheckChild3Integer, 1, ++/*342158*/ OPC_CheckChild3Type, MVT::i32, ++/*342160*/ OPC_CheckChild4Integer, 1, ++/*342162*/ OPC_CheckChild4Type, MVT::i32, ++/*342164*/ OPC_MoveChild5, ++/*342165*/ OPC_CheckInteger, 1, ++/*342167*/ OPC_CheckType, MVT::i32, ++/*342169*/ OPC_MoveParent, ++/*342170*/ OPC_MoveChild6, ++/*342171*/ OPC_CheckInteger, 1, ++/*342173*/ OPC_CheckType, MVT::i32, ++/*342175*/ OPC_MoveParent, ++/*342176*/ OPC_MoveChild7, ++/*342177*/ OPC_CheckInteger, 1, ++/*342179*/ OPC_CheckType, MVT::i32, ++/*342181*/ OPC_MoveParent, ++/*342182*/ OPC_MoveChild, 8, ++/*342184*/ OPC_CheckInteger, 1, ++/*342186*/ OPC_CheckType, MVT::i32, ++/*342188*/ OPC_MoveParent, ++/*342189*/ OPC_MoveChild, 9, ++/*342191*/ OPC_CheckInteger, 1, ++/*342193*/ OPC_CheckType, MVT::i32, ++/*342195*/ OPC_MoveParent, ++/*342196*/ OPC_MoveChild, 10, ++/*342198*/ OPC_CheckInteger, 1, ++/*342200*/ OPC_CheckType, MVT::i32, ++/*342202*/ OPC_MoveParent, ++/*342203*/ OPC_MoveChild, 11, ++/*342205*/ OPC_CheckInteger, 1, ++/*342207*/ OPC_CheckType, MVT::i32, ++/*342209*/ OPC_MoveParent, ++/*342210*/ OPC_MoveChild, 12, ++/*342212*/ OPC_CheckInteger, 1, ++/*342214*/ OPC_CheckType, MVT::i32, ++/*342216*/ OPC_MoveParent, ++/*342217*/ OPC_MoveChild, 13, ++/*342219*/ OPC_CheckInteger, 1, ++/*342221*/ OPC_CheckType, MVT::i32, ++/*342223*/ OPC_MoveParent, ++/*342224*/ OPC_MoveChild, 14, ++/*342226*/ OPC_CheckInteger, 1, ++/*342228*/ OPC_CheckType, MVT::i32, ++/*342230*/ OPC_MoveParent, ++/*342231*/ OPC_MoveChild, 15, ++/*342233*/ OPC_CheckInteger, 1, ++/*342235*/ OPC_CheckType, MVT::i32, ++/*342237*/ OPC_MoveParent, ++/*342238*/ OPC_CheckType, MVT::v16i8, ++/*342240*/ OPC_MoveParent, ++/*342241*/ OPC_CheckType, MVT::v16i8, ++/*342243*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*342245*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a), LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*342253*/ /*Scope*/ 89|128,1/*217*/, /*->342472*/ ++/*342255*/ OPC_CheckChild0Same, 1, ++/*342257*/ OPC_MoveChild1, ++/*342258*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*342261*/ OPC_CheckChild0Integer, 1, ++/*342263*/ OPC_CheckChild0Type, MVT::i32, ++/*342265*/ OPC_CheckChild1Integer, 1, ++/*342267*/ OPC_CheckChild1Type, MVT::i32, ++/*342269*/ OPC_CheckChild2Integer, 1, ++/*342271*/ OPC_CheckChild2Type, MVT::i32, ++/*342273*/ OPC_CheckChild3Integer, 1, ++/*342275*/ OPC_CheckChild3Type, MVT::i32, ++/*342277*/ OPC_CheckChild4Integer, 1, ++/*342279*/ OPC_CheckChild4Type, MVT::i32, ++/*342281*/ OPC_MoveChild5, ++/*342282*/ OPC_CheckInteger, 1, ++/*342284*/ OPC_CheckType, MVT::i32, ++/*342286*/ OPC_MoveParent, ++/*342287*/ OPC_MoveChild6, ++/*342288*/ OPC_CheckInteger, 1, ++/*342290*/ OPC_CheckType, MVT::i32, ++/*342292*/ OPC_MoveParent, ++/*342293*/ OPC_MoveChild7, ++/*342294*/ OPC_CheckInteger, 1, ++/*342296*/ OPC_CheckType, MVT::i32, ++/*342298*/ OPC_MoveParent, ++/*342299*/ OPC_MoveChild, 8, ++/*342301*/ OPC_CheckInteger, 1, ++/*342303*/ OPC_CheckType, MVT::i32, ++/*342305*/ OPC_MoveParent, ++/*342306*/ OPC_MoveChild, 9, ++/*342308*/ OPC_CheckInteger, 1, ++/*342310*/ OPC_CheckType, MVT::i32, ++/*342312*/ OPC_MoveParent, ++/*342313*/ OPC_MoveChild, 10, ++/*342315*/ OPC_CheckInteger, 1, ++/*342317*/ OPC_CheckType, MVT::i32, ++/*342319*/ OPC_MoveParent, ++/*342320*/ OPC_MoveChild, 11, ++/*342322*/ OPC_CheckInteger, 1, ++/*342324*/ OPC_CheckType, MVT::i32, ++/*342326*/ OPC_MoveParent, ++/*342327*/ OPC_MoveChild, 12, ++/*342329*/ OPC_CheckInteger, 1, ++/*342331*/ OPC_CheckType, MVT::i32, ++/*342333*/ OPC_MoveParent, ++/*342334*/ OPC_MoveChild, 13, ++/*342336*/ OPC_CheckInteger, 1, ++/*342338*/ OPC_CheckType, MVT::i32, ++/*342340*/ OPC_MoveParent, ++/*342341*/ OPC_MoveChild, 14, ++/*342343*/ OPC_CheckInteger, 1, ++/*342345*/ OPC_CheckType, MVT::i32, ++/*342347*/ OPC_MoveParent, ++/*342348*/ OPC_MoveChild, 15, ++/*342350*/ OPC_CheckInteger, 1, ++/*342352*/ OPC_CheckType, MVT::i32, ++/*342354*/ OPC_MoveParent, ++/*342355*/ OPC_MoveParent, ++/*342356*/ OPC_MoveParent, ++/*342357*/ OPC_MoveParent, ++/*342358*/ OPC_MoveParent, ++/*342359*/ OPC_MoveChild1, ++/*342360*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*342363*/ OPC_CheckChild0Integer, 1, ++/*342365*/ OPC_CheckChild0Type, MVT::i32, ++/*342367*/ OPC_CheckChild1Integer, 1, ++/*342369*/ OPC_CheckChild1Type, MVT::i32, ++/*342371*/ OPC_CheckChild2Integer, 1, ++/*342373*/ OPC_CheckChild2Type, MVT::i32, ++/*342375*/ OPC_CheckChild3Integer, 1, ++/*342377*/ OPC_CheckChild3Type, MVT::i32, ++/*342379*/ OPC_CheckChild4Integer, 1, ++/*342381*/ OPC_CheckChild4Type, MVT::i32, ++/*342383*/ OPC_MoveChild5, ++/*342384*/ OPC_CheckInteger, 1, ++/*342386*/ OPC_CheckType, MVT::i32, ++/*342388*/ OPC_MoveParent, ++/*342389*/ OPC_MoveChild6, ++/*342390*/ OPC_CheckInteger, 1, ++/*342392*/ OPC_CheckType, MVT::i32, ++/*342394*/ OPC_MoveParent, ++/*342395*/ OPC_MoveChild7, ++/*342396*/ OPC_CheckInteger, 1, ++/*342398*/ OPC_CheckType, MVT::i32, ++/*342400*/ OPC_MoveParent, ++/*342401*/ OPC_MoveChild, 8, ++/*342403*/ OPC_CheckInteger, 1, ++/*342405*/ OPC_CheckType, MVT::i32, ++/*342407*/ OPC_MoveParent, ++/*342408*/ OPC_MoveChild, 9, ++/*342410*/ OPC_CheckInteger, 1, ++/*342412*/ OPC_CheckType, MVT::i32, ++/*342414*/ OPC_MoveParent, ++/*342415*/ OPC_MoveChild, 10, ++/*342417*/ OPC_CheckInteger, 1, ++/*342419*/ OPC_CheckType, MVT::i32, ++/*342421*/ OPC_MoveParent, ++/*342422*/ OPC_MoveChild, 11, ++/*342424*/ OPC_CheckInteger, 1, ++/*342426*/ OPC_CheckType, MVT::i32, ++/*342428*/ OPC_MoveParent, ++/*342429*/ OPC_MoveChild, 12, ++/*342431*/ OPC_CheckInteger, 1, ++/*342433*/ OPC_CheckType, MVT::i32, ++/*342435*/ OPC_MoveParent, ++/*342436*/ OPC_MoveChild, 13, ++/*342438*/ OPC_CheckInteger, 1, ++/*342440*/ OPC_CheckType, MVT::i32, ++/*342442*/ OPC_MoveParent, ++/*342443*/ OPC_MoveChild, 14, ++/*342445*/ OPC_CheckInteger, 1, ++/*342447*/ OPC_CheckType, MVT::i32, ++/*342449*/ OPC_MoveParent, ++/*342450*/ OPC_MoveChild, 15, ++/*342452*/ OPC_CheckInteger, 1, ++/*342454*/ OPC_CheckType, MVT::i32, ++/*342456*/ OPC_MoveParent, ++/*342457*/ OPC_CheckType, MVT::v16i8, ++/*342459*/ OPC_MoveParent, ++/*342460*/ OPC_CheckType, MVT::v16i8, ++/*342462*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*342464*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a), LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*342472*/ 0, /*End of Scope*/ ++/*342473*/ /*Scope*/ 91|128,2/*347*/, /*->342822*/ ++/*342475*/ OPC_MoveChild0, ++/*342476*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*342479*/ OPC_CheckChild0Integer, 1, ++/*342481*/ OPC_CheckChild0Type, MVT::i32, ++/*342483*/ OPC_CheckChild1Integer, 1, ++/*342485*/ OPC_CheckChild1Type, MVT::i32, ++/*342487*/ OPC_CheckChild2Integer, 1, ++/*342489*/ OPC_CheckChild2Type, MVT::i32, ++/*342491*/ OPC_CheckChild3Integer, 1, ++/*342493*/ OPC_CheckChild3Type, MVT::i32, ++/*342495*/ OPC_CheckChild4Integer, 1, ++/*342497*/ OPC_CheckChild4Type, MVT::i32, ++/*342499*/ OPC_MoveChild5, ++/*342500*/ OPC_CheckInteger, 1, ++/*342502*/ OPC_CheckType, MVT::i32, ++/*342504*/ OPC_MoveParent, ++/*342505*/ OPC_MoveChild6, ++/*342506*/ OPC_CheckInteger, 1, ++/*342508*/ OPC_CheckType, MVT::i32, ++/*342510*/ OPC_MoveParent, ++/*342511*/ OPC_MoveChild7, ++/*342512*/ OPC_CheckInteger, 1, ++/*342514*/ OPC_CheckType, MVT::i32, ++/*342516*/ OPC_MoveParent, ++/*342517*/ OPC_MoveChild, 8, ++/*342519*/ OPC_CheckInteger, 1, ++/*342521*/ OPC_CheckType, MVT::i32, ++/*342523*/ OPC_MoveParent, ++/*342524*/ OPC_MoveChild, 9, ++/*342526*/ OPC_CheckInteger, 1, ++/*342528*/ OPC_CheckType, MVT::i32, ++/*342530*/ OPC_MoveParent, ++/*342531*/ OPC_MoveChild, 10, ++/*342533*/ OPC_CheckInteger, 1, ++/*342535*/ OPC_CheckType, MVT::i32, ++/*342537*/ OPC_MoveParent, ++/*342538*/ OPC_MoveChild, 11, ++/*342540*/ OPC_CheckInteger, 1, ++/*342542*/ OPC_CheckType, MVT::i32, ++/*342544*/ OPC_MoveParent, ++/*342545*/ OPC_MoveChild, 12, ++/*342547*/ OPC_CheckInteger, 1, ++/*342549*/ OPC_CheckType, MVT::i32, ++/*342551*/ OPC_MoveParent, ++/*342552*/ OPC_MoveChild, 13, ++/*342554*/ OPC_CheckInteger, 1, ++/*342556*/ OPC_CheckType, MVT::i32, ++/*342558*/ OPC_MoveParent, ++/*342559*/ OPC_MoveChild, 14, ++/*342561*/ OPC_CheckInteger, 1, ++/*342563*/ OPC_CheckType, MVT::i32, ++/*342565*/ OPC_MoveParent, ++/*342566*/ OPC_MoveChild, 15, ++/*342568*/ OPC_CheckInteger, 1, ++/*342570*/ OPC_CheckType, MVT::i32, ++/*342572*/ OPC_MoveParent, ++/*342573*/ OPC_MoveParent, ++/*342574*/ OPC_MoveChild1, ++/*342575*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*342578*/ OPC_Scope, 120, /*->342700*/ // 2 children in Scope ++/*342580*/ OPC_CheckChild0Same, 0, ++/*342582*/ OPC_CheckChild1Same, 1, ++/*342584*/ OPC_MoveParent, ++/*342585*/ OPC_MoveParent, ++/*342586*/ OPC_MoveParent, ++/*342587*/ OPC_MoveChild1, ++/*342588*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*342591*/ OPC_CheckChild0Integer, 1, ++/*342593*/ OPC_CheckChild0Type, MVT::i32, ++/*342595*/ OPC_CheckChild1Integer, 1, ++/*342597*/ OPC_CheckChild1Type, MVT::i32, ++/*342599*/ OPC_CheckChild2Integer, 1, ++/*342601*/ OPC_CheckChild2Type, MVT::i32, ++/*342603*/ OPC_CheckChild3Integer, 1, ++/*342605*/ OPC_CheckChild3Type, MVT::i32, ++/*342607*/ OPC_CheckChild4Integer, 1, ++/*342609*/ OPC_CheckChild4Type, MVT::i32, ++/*342611*/ OPC_MoveChild5, ++/*342612*/ OPC_CheckInteger, 1, ++/*342614*/ OPC_CheckType, MVT::i32, ++/*342616*/ OPC_MoveParent, ++/*342617*/ OPC_MoveChild6, ++/*342618*/ OPC_CheckInteger, 1, ++/*342620*/ OPC_CheckType, MVT::i32, ++/*342622*/ OPC_MoveParent, ++/*342623*/ OPC_MoveChild7, ++/*342624*/ OPC_CheckInteger, 1, ++/*342626*/ OPC_CheckType, MVT::i32, ++/*342628*/ OPC_MoveParent, ++/*342629*/ OPC_MoveChild, 8, ++/*342631*/ OPC_CheckInteger, 1, ++/*342633*/ OPC_CheckType, MVT::i32, ++/*342635*/ OPC_MoveParent, ++/*342636*/ OPC_MoveChild, 9, ++/*342638*/ OPC_CheckInteger, 1, ++/*342640*/ OPC_CheckType, MVT::i32, ++/*342642*/ OPC_MoveParent, ++/*342643*/ OPC_MoveChild, 10, ++/*342645*/ OPC_CheckInteger, 1, ++/*342647*/ OPC_CheckType, MVT::i32, ++/*342649*/ OPC_MoveParent, ++/*342650*/ OPC_MoveChild, 11, ++/*342652*/ OPC_CheckInteger, 1, ++/*342654*/ OPC_CheckType, MVT::i32, ++/*342656*/ OPC_MoveParent, ++/*342657*/ OPC_MoveChild, 12, ++/*342659*/ OPC_CheckInteger, 1, ++/*342661*/ OPC_CheckType, MVT::i32, ++/*342663*/ OPC_MoveParent, ++/*342664*/ OPC_MoveChild, 13, ++/*342666*/ OPC_CheckInteger, 1, ++/*342668*/ OPC_CheckType, MVT::i32, ++/*342670*/ OPC_MoveParent, ++/*342671*/ OPC_MoveChild, 14, ++/*342673*/ OPC_CheckInteger, 1, ++/*342675*/ OPC_CheckType, MVT::i32, ++/*342677*/ OPC_MoveParent, ++/*342678*/ OPC_MoveChild, 15, ++/*342680*/ OPC_CheckInteger, 1, ++/*342682*/ OPC_CheckType, MVT::i32, ++/*342684*/ OPC_MoveParent, ++/*342685*/ OPC_CheckType, MVT::v16i8, ++/*342687*/ OPC_MoveParent, ++/*342688*/ OPC_CheckType, MVT::v16i8, ++/*342690*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*342692*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a), LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*342700*/ /*Scope*/ 120, /*->342821*/ ++/*342701*/ OPC_CheckChild0Same, 1, ++/*342703*/ OPC_CheckChild1Same, 0, ++/*342705*/ OPC_MoveParent, ++/*342706*/ OPC_MoveParent, ++/*342707*/ OPC_MoveParent, ++/*342708*/ OPC_MoveChild1, ++/*342709*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*342712*/ OPC_CheckChild0Integer, 1, ++/*342714*/ OPC_CheckChild0Type, MVT::i32, ++/*342716*/ OPC_CheckChild1Integer, 1, ++/*342718*/ OPC_CheckChild1Type, MVT::i32, ++/*342720*/ OPC_CheckChild2Integer, 1, ++/*342722*/ OPC_CheckChild2Type, MVT::i32, ++/*342724*/ OPC_CheckChild3Integer, 1, ++/*342726*/ OPC_CheckChild3Type, MVT::i32, ++/*342728*/ OPC_CheckChild4Integer, 1, ++/*342730*/ OPC_CheckChild4Type, MVT::i32, ++/*342732*/ OPC_MoveChild5, ++/*342733*/ OPC_CheckInteger, 1, ++/*342735*/ OPC_CheckType, MVT::i32, ++/*342737*/ OPC_MoveParent, ++/*342738*/ OPC_MoveChild6, ++/*342739*/ OPC_CheckInteger, 1, ++/*342741*/ OPC_CheckType, MVT::i32, ++/*342743*/ OPC_MoveParent, ++/*342744*/ OPC_MoveChild7, ++/*342745*/ OPC_CheckInteger, 1, ++/*342747*/ OPC_CheckType, MVT::i32, ++/*342749*/ OPC_MoveParent, ++/*342750*/ OPC_MoveChild, 8, ++/*342752*/ OPC_CheckInteger, 1, ++/*342754*/ OPC_CheckType, MVT::i32, ++/*342756*/ OPC_MoveParent, ++/*342757*/ OPC_MoveChild, 9, ++/*342759*/ OPC_CheckInteger, 1, ++/*342761*/ OPC_CheckType, MVT::i32, ++/*342763*/ OPC_MoveParent, ++/*342764*/ OPC_MoveChild, 10, ++/*342766*/ OPC_CheckInteger, 1, ++/*342768*/ OPC_CheckType, MVT::i32, ++/*342770*/ OPC_MoveParent, ++/*342771*/ OPC_MoveChild, 11, ++/*342773*/ OPC_CheckInteger, 1, ++/*342775*/ OPC_CheckType, MVT::i32, ++/*342777*/ OPC_MoveParent, ++/*342778*/ OPC_MoveChild, 12, ++/*342780*/ OPC_CheckInteger, 1, ++/*342782*/ OPC_CheckType, MVT::i32, ++/*342784*/ OPC_MoveParent, ++/*342785*/ OPC_MoveChild, 13, ++/*342787*/ OPC_CheckInteger, 1, ++/*342789*/ OPC_CheckType, MVT::i32, ++/*342791*/ OPC_MoveParent, ++/*342792*/ OPC_MoveChild, 14, ++/*342794*/ OPC_CheckInteger, 1, ++/*342796*/ OPC_CheckType, MVT::i32, ++/*342798*/ OPC_MoveParent, ++/*342799*/ OPC_MoveChild, 15, ++/*342801*/ OPC_CheckInteger, 1, ++/*342803*/ OPC_CheckType, MVT::i32, ++/*342805*/ OPC_MoveParent, ++/*342806*/ OPC_CheckType, MVT::v16i8, ++/*342808*/ OPC_MoveParent, ++/*342809*/ OPC_CheckType, MVT::v16i8, ++/*342811*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*342813*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a), LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*342821*/ 0, /*End of Scope*/ ++/*342822*/ 0, /*End of Scope*/ ++/*342823*/ /*Scope*/ 102|128,21/*2790*/, /*->345615*/ ++/*342825*/ OPC_RecordChild0, // #0 = $a ++/*342826*/ OPC_MoveChild1, ++/*342827*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*342830*/ OPC_CheckChild0Integer, 1, ++/*342832*/ OPC_CheckChild0Type, MVT::i32, ++/*342834*/ OPC_CheckChild1Integer, 1, ++/*342836*/ OPC_CheckChild1Type, MVT::i32, ++/*342838*/ OPC_CheckChild2Integer, 1, ++/*342840*/ OPC_CheckChild2Type, MVT::i32, ++/*342842*/ OPC_CheckChild3Integer, 1, ++/*342844*/ OPC_CheckChild3Type, MVT::i32, ++/*342846*/ OPC_CheckChild4Integer, 1, ++/*342848*/ OPC_CheckChild4Type, MVT::i32, ++/*342850*/ OPC_MoveChild5, ++/*342851*/ OPC_CheckInteger, 1, ++/*342853*/ OPC_CheckType, MVT::i32, ++/*342855*/ OPC_MoveParent, ++/*342856*/ OPC_MoveChild6, ++/*342857*/ OPC_CheckInteger, 1, ++/*342859*/ OPC_CheckType, MVT::i32, ++/*342861*/ OPC_MoveParent, ++/*342862*/ OPC_MoveChild7, ++/*342863*/ OPC_CheckInteger, 1, ++/*342865*/ OPC_CheckType, MVT::i32, ++/*342867*/ OPC_MoveParent, ++/*342868*/ OPC_MoveChild, 8, ++/*342870*/ OPC_CheckInteger, 1, ++/*342872*/ OPC_CheckType, MVT::i32, ++/*342874*/ OPC_MoveParent, ++/*342875*/ OPC_MoveChild, 9, ++/*342877*/ OPC_CheckInteger, 1, ++/*342879*/ OPC_CheckType, MVT::i32, ++/*342881*/ OPC_MoveParent, ++/*342882*/ OPC_MoveChild, 10, ++/*342884*/ OPC_CheckInteger, 1, ++/*342886*/ OPC_CheckType, MVT::i32, ++/*342888*/ OPC_MoveParent, ++/*342889*/ OPC_MoveChild, 11, ++/*342891*/ OPC_CheckInteger, 1, ++/*342893*/ OPC_CheckType, MVT::i32, ++/*342895*/ OPC_MoveParent, ++/*342896*/ OPC_MoveChild, 12, ++/*342898*/ OPC_CheckInteger, 1, ++/*342900*/ OPC_CheckType, MVT::i32, ++/*342902*/ OPC_MoveParent, ++/*342903*/ OPC_MoveChild, 13, ++/*342905*/ OPC_CheckInteger, 1, ++/*342907*/ OPC_CheckType, MVT::i32, ++/*342909*/ OPC_MoveParent, ++/*342910*/ OPC_MoveChild, 14, ++/*342912*/ OPC_CheckInteger, 1, ++/*342914*/ OPC_CheckType, MVT::i32, ++/*342916*/ OPC_MoveParent, ++/*342917*/ OPC_MoveChild, 15, ++/*342919*/ OPC_CheckInteger, 1, ++/*342921*/ OPC_CheckType, MVT::i32, ++/*342923*/ OPC_MoveParent, ++/*342924*/ OPC_MoveParent, ++/*342925*/ OPC_MoveParent, ++/*342926*/ OPC_RecordChild1, // #1 = $b ++/*342927*/ OPC_MoveParent, ++/*342928*/ OPC_MoveChild1, ++/*342929*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*342932*/ OPC_CheckChild0Integer, 7, ++/*342934*/ OPC_CheckChild0Type, MVT::i32, ++/*342936*/ OPC_CheckChild1Integer, 7, ++/*342938*/ OPC_CheckChild1Type, MVT::i32, ++/*342940*/ OPC_CheckChild2Integer, 7, ++/*342942*/ OPC_CheckChild2Type, MVT::i32, ++/*342944*/ OPC_CheckChild3Integer, 7, ++/*342946*/ OPC_CheckChild3Type, MVT::i32, ++/*342948*/ OPC_CheckChild4Integer, 7, ++/*342950*/ OPC_CheckChild4Type, MVT::i32, ++/*342952*/ OPC_MoveChild5, ++/*342953*/ OPC_CheckInteger, 7, ++/*342955*/ OPC_CheckType, MVT::i32, ++/*342957*/ OPC_MoveParent, ++/*342958*/ OPC_MoveChild6, ++/*342959*/ OPC_CheckInteger, 7, ++/*342961*/ OPC_CheckType, MVT::i32, ++/*342963*/ OPC_MoveParent, ++/*342964*/ OPC_MoveChild7, ++/*342965*/ OPC_CheckInteger, 7, ++/*342967*/ OPC_CheckType, MVT::i32, ++/*342969*/ OPC_MoveParent, ++/*342970*/ OPC_MoveChild, 8, ++/*342972*/ OPC_CheckInteger, 7, ++/*342974*/ OPC_CheckType, MVT::i32, ++/*342976*/ OPC_MoveParent, ++/*342977*/ OPC_MoveChild, 9, ++/*342979*/ OPC_CheckInteger, 7, ++/*342981*/ OPC_CheckType, MVT::i32, ++/*342983*/ OPC_MoveParent, ++/*342984*/ OPC_MoveChild, 10, ++/*342986*/ OPC_CheckInteger, 7, ++/*342988*/ OPC_CheckType, MVT::i32, ++/*342990*/ OPC_MoveParent, ++/*342991*/ OPC_MoveChild, 11, ++/*342993*/ OPC_CheckInteger, 7, ++/*342995*/ OPC_CheckType, MVT::i32, ++/*342997*/ OPC_MoveParent, ++/*342998*/ OPC_MoveChild, 12, ++/*343000*/ OPC_CheckInteger, 7, ++/*343002*/ OPC_CheckType, MVT::i32, ++/*343004*/ OPC_MoveParent, ++/*343005*/ OPC_MoveChild, 13, ++/*343007*/ OPC_CheckInteger, 7, ++/*343009*/ OPC_CheckType, MVT::i32, ++/*343011*/ OPC_MoveParent, ++/*343012*/ OPC_MoveChild, 14, ++/*343014*/ OPC_CheckInteger, 7, ++/*343016*/ OPC_CheckType, MVT::i32, ++/*343018*/ OPC_MoveParent, ++/*343019*/ OPC_MoveChild, 15, ++/*343021*/ OPC_CheckInteger, 7, ++/*343023*/ OPC_CheckType, MVT::i32, ++/*343025*/ OPC_MoveParent, ++/*343026*/ OPC_CheckType, MVT::v16i8, ++/*343028*/ OPC_MoveParent, ++/*343029*/ OPC_MoveParent, ++/*343030*/ OPC_MoveChild1, ++/*343031*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*343034*/ OPC_Scope, 52|128,10/*1332*/, /*->344369*/ // 4 children in Scope ++/*343037*/ OPC_MoveChild0, ++/*343038*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*343041*/ OPC_Scope, 91|128,1/*219*/, /*->343263*/ // 6 children in Scope ++/*343044*/ OPC_MoveChild0, ++/*343045*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*343048*/ OPC_CheckChild0Integer, 1, ++/*343050*/ OPC_CheckChild0Type, MVT::i32, ++/*343052*/ OPC_CheckChild1Integer, 1, ++/*343054*/ OPC_CheckChild1Type, MVT::i32, ++/*343056*/ OPC_CheckChild2Integer, 1, ++/*343058*/ OPC_CheckChild2Type, MVT::i32, ++/*343060*/ OPC_CheckChild3Integer, 1, ++/*343062*/ OPC_CheckChild3Type, MVT::i32, ++/*343064*/ OPC_CheckChild4Integer, 1, ++/*343066*/ OPC_CheckChild4Type, MVT::i32, ++/*343068*/ OPC_MoveChild5, ++/*343069*/ OPC_CheckInteger, 1, ++/*343071*/ OPC_CheckType, MVT::i32, ++/*343073*/ OPC_MoveParent, ++/*343074*/ OPC_MoveChild6, ++/*343075*/ OPC_CheckInteger, 1, ++/*343077*/ OPC_CheckType, MVT::i32, ++/*343079*/ OPC_MoveParent, ++/*343080*/ OPC_MoveChild7, ++/*343081*/ OPC_CheckInteger, 1, ++/*343083*/ OPC_CheckType, MVT::i32, ++/*343085*/ OPC_MoveParent, ++/*343086*/ OPC_MoveChild, 8, ++/*343088*/ OPC_CheckInteger, 1, ++/*343090*/ OPC_CheckType, MVT::i32, ++/*343092*/ OPC_MoveParent, ++/*343093*/ OPC_MoveChild, 9, ++/*343095*/ OPC_CheckInteger, 1, ++/*343097*/ OPC_CheckType, MVT::i32, ++/*343099*/ OPC_MoveParent, ++/*343100*/ OPC_MoveChild, 10, ++/*343102*/ OPC_CheckInteger, 1, ++/*343104*/ OPC_CheckType, MVT::i32, ++/*343106*/ OPC_MoveParent, ++/*343107*/ OPC_MoveChild, 11, ++/*343109*/ OPC_CheckInteger, 1, ++/*343111*/ OPC_CheckType, MVT::i32, ++/*343113*/ OPC_MoveParent, ++/*343114*/ OPC_MoveChild, 12, ++/*343116*/ OPC_CheckInteger, 1, ++/*343118*/ OPC_CheckType, MVT::i32, ++/*343120*/ OPC_MoveParent, ++/*343121*/ OPC_MoveChild, 13, ++/*343123*/ OPC_CheckInteger, 1, ++/*343125*/ OPC_CheckType, MVT::i32, ++/*343127*/ OPC_MoveParent, ++/*343128*/ OPC_MoveChild, 14, ++/*343130*/ OPC_CheckInteger, 1, ++/*343132*/ OPC_CheckType, MVT::i32, ++/*343134*/ OPC_MoveParent, ++/*343135*/ OPC_MoveChild, 15, ++/*343137*/ OPC_CheckInteger, 1, ++/*343139*/ OPC_CheckType, MVT::i32, ++/*343141*/ OPC_MoveParent, ++/*343142*/ OPC_MoveParent, ++/*343143*/ OPC_CheckChild1Same, 0, ++/*343145*/ OPC_MoveParent, ++/*343146*/ OPC_CheckChild1Same, 1, ++/*343148*/ OPC_MoveParent, ++/*343149*/ OPC_MoveParent, ++/*343150*/ OPC_MoveChild1, ++/*343151*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*343154*/ OPC_CheckChild0Integer, 1, ++/*343156*/ OPC_CheckChild0Type, MVT::i32, ++/*343158*/ OPC_CheckChild1Integer, 1, ++/*343160*/ OPC_CheckChild1Type, MVT::i32, ++/*343162*/ OPC_CheckChild2Integer, 1, ++/*343164*/ OPC_CheckChild2Type, MVT::i32, ++/*343166*/ OPC_CheckChild3Integer, 1, ++/*343168*/ OPC_CheckChild3Type, MVT::i32, ++/*343170*/ OPC_CheckChild4Integer, 1, ++/*343172*/ OPC_CheckChild4Type, MVT::i32, ++/*343174*/ OPC_MoveChild5, ++/*343175*/ OPC_CheckInteger, 1, ++/*343177*/ OPC_CheckType, MVT::i32, ++/*343179*/ OPC_MoveParent, ++/*343180*/ OPC_MoveChild6, ++/*343181*/ OPC_CheckInteger, 1, ++/*343183*/ OPC_CheckType, MVT::i32, ++/*343185*/ OPC_MoveParent, ++/*343186*/ OPC_MoveChild7, ++/*343187*/ OPC_CheckInteger, 1, ++/*343189*/ OPC_CheckType, MVT::i32, ++/*343191*/ OPC_MoveParent, ++/*343192*/ OPC_MoveChild, 8, ++/*343194*/ OPC_CheckInteger, 1, ++/*343196*/ OPC_CheckType, MVT::i32, ++/*343198*/ OPC_MoveParent, ++/*343199*/ OPC_MoveChild, 9, ++/*343201*/ OPC_CheckInteger, 1, ++/*343203*/ OPC_CheckType, MVT::i32, ++/*343205*/ OPC_MoveParent, ++/*343206*/ OPC_MoveChild, 10, ++/*343208*/ OPC_CheckInteger, 1, ++/*343210*/ OPC_CheckType, MVT::i32, ++/*343212*/ OPC_MoveParent, ++/*343213*/ OPC_MoveChild, 11, ++/*343215*/ OPC_CheckInteger, 1, ++/*343217*/ OPC_CheckType, MVT::i32, ++/*343219*/ OPC_MoveParent, ++/*343220*/ OPC_MoveChild, 12, ++/*343222*/ OPC_CheckInteger, 1, ++/*343224*/ OPC_CheckType, MVT::i32, ++/*343226*/ OPC_MoveParent, ++/*343227*/ OPC_MoveChild, 13, ++/*343229*/ OPC_CheckInteger, 1, ++/*343231*/ OPC_CheckType, MVT::i32, ++/*343233*/ OPC_MoveParent, ++/*343234*/ OPC_MoveChild, 14, ++/*343236*/ OPC_CheckInteger, 1, ++/*343238*/ OPC_CheckType, MVT::i32, ++/*343240*/ OPC_MoveParent, ++/*343241*/ OPC_MoveChild, 15, ++/*343243*/ OPC_CheckInteger, 1, ++/*343245*/ OPC_CheckType, MVT::i32, ++/*343247*/ OPC_MoveParent, ++/*343248*/ OPC_CheckType, MVT::v16i8, ++/*343250*/ OPC_MoveParent, ++/*343251*/ OPC_CheckType, MVT::v16i8, ++/*343253*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*343255*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a), LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*343263*/ /*Scope*/ 91|128,1/*219*/, /*->343484*/ ++/*343265*/ OPC_CheckChild0Same, 0, ++/*343267*/ OPC_MoveChild1, ++/*343268*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*343271*/ OPC_CheckChild0Integer, 1, ++/*343273*/ OPC_CheckChild0Type, MVT::i32, ++/*343275*/ OPC_CheckChild1Integer, 1, ++/*343277*/ OPC_CheckChild1Type, MVT::i32, ++/*343279*/ OPC_CheckChild2Integer, 1, ++/*343281*/ OPC_CheckChild2Type, MVT::i32, ++/*343283*/ OPC_CheckChild3Integer, 1, ++/*343285*/ OPC_CheckChild3Type, MVT::i32, ++/*343287*/ OPC_CheckChild4Integer, 1, ++/*343289*/ OPC_CheckChild4Type, MVT::i32, ++/*343291*/ OPC_MoveChild5, ++/*343292*/ OPC_CheckInteger, 1, ++/*343294*/ OPC_CheckType, MVT::i32, ++/*343296*/ OPC_MoveParent, ++/*343297*/ OPC_MoveChild6, ++/*343298*/ OPC_CheckInteger, 1, ++/*343300*/ OPC_CheckType, MVT::i32, ++/*343302*/ OPC_MoveParent, ++/*343303*/ OPC_MoveChild7, ++/*343304*/ OPC_CheckInteger, 1, ++/*343306*/ OPC_CheckType, MVT::i32, ++/*343308*/ OPC_MoveParent, ++/*343309*/ OPC_MoveChild, 8, ++/*343311*/ OPC_CheckInteger, 1, ++/*343313*/ OPC_CheckType, MVT::i32, ++/*343315*/ OPC_MoveParent, ++/*343316*/ OPC_MoveChild, 9, ++/*343318*/ OPC_CheckInteger, 1, ++/*343320*/ OPC_CheckType, MVT::i32, ++/*343322*/ OPC_MoveParent, ++/*343323*/ OPC_MoveChild, 10, ++/*343325*/ OPC_CheckInteger, 1, ++/*343327*/ OPC_CheckType, MVT::i32, ++/*343329*/ OPC_MoveParent, ++/*343330*/ OPC_MoveChild, 11, ++/*343332*/ OPC_CheckInteger, 1, ++/*343334*/ OPC_CheckType, MVT::i32, ++/*343336*/ OPC_MoveParent, ++/*343337*/ OPC_MoveChild, 12, ++/*343339*/ OPC_CheckInteger, 1, ++/*343341*/ OPC_CheckType, MVT::i32, ++/*343343*/ OPC_MoveParent, ++/*343344*/ OPC_MoveChild, 13, ++/*343346*/ OPC_CheckInteger, 1, ++/*343348*/ OPC_CheckType, MVT::i32, ++/*343350*/ OPC_MoveParent, ++/*343351*/ OPC_MoveChild, 14, ++/*343353*/ OPC_CheckInteger, 1, ++/*343355*/ OPC_CheckType, MVT::i32, ++/*343357*/ OPC_MoveParent, ++/*343358*/ OPC_MoveChild, 15, ++/*343360*/ OPC_CheckInteger, 1, ++/*343362*/ OPC_CheckType, MVT::i32, ++/*343364*/ OPC_MoveParent, ++/*343365*/ OPC_MoveParent, ++/*343366*/ OPC_MoveParent, ++/*343367*/ OPC_CheckChild1Same, 1, ++/*343369*/ OPC_MoveParent, ++/*343370*/ OPC_MoveParent, ++/*343371*/ OPC_MoveChild1, ++/*343372*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*343375*/ OPC_CheckChild0Integer, 1, ++/*343377*/ OPC_CheckChild0Type, MVT::i32, ++/*343379*/ OPC_CheckChild1Integer, 1, ++/*343381*/ OPC_CheckChild1Type, MVT::i32, ++/*343383*/ OPC_CheckChild2Integer, 1, ++/*343385*/ OPC_CheckChild2Type, MVT::i32, ++/*343387*/ OPC_CheckChild3Integer, 1, ++/*343389*/ OPC_CheckChild3Type, MVT::i32, ++/*343391*/ OPC_CheckChild4Integer, 1, ++/*343393*/ OPC_CheckChild4Type, MVT::i32, ++/*343395*/ OPC_MoveChild5, ++/*343396*/ OPC_CheckInteger, 1, ++/*343398*/ OPC_CheckType, MVT::i32, ++/*343400*/ OPC_MoveParent, ++/*343401*/ OPC_MoveChild6, ++/*343402*/ OPC_CheckInteger, 1, ++/*343404*/ OPC_CheckType, MVT::i32, ++/*343406*/ OPC_MoveParent, ++/*343407*/ OPC_MoveChild7, ++/*343408*/ OPC_CheckInteger, 1, ++/*343410*/ OPC_CheckType, MVT::i32, ++/*343412*/ OPC_MoveParent, ++/*343413*/ OPC_MoveChild, 8, ++/*343415*/ OPC_CheckInteger, 1, ++/*343417*/ OPC_CheckType, MVT::i32, ++/*343419*/ OPC_MoveParent, ++/*343420*/ OPC_MoveChild, 9, ++/*343422*/ OPC_CheckInteger, 1, ++/*343424*/ OPC_CheckType, MVT::i32, ++/*343426*/ OPC_MoveParent, ++/*343427*/ OPC_MoveChild, 10, ++/*343429*/ OPC_CheckInteger, 1, ++/*343431*/ OPC_CheckType, MVT::i32, ++/*343433*/ OPC_MoveParent, ++/*343434*/ OPC_MoveChild, 11, ++/*343436*/ OPC_CheckInteger, 1, ++/*343438*/ OPC_CheckType, MVT::i32, ++/*343440*/ OPC_MoveParent, ++/*343441*/ OPC_MoveChild, 12, ++/*343443*/ OPC_CheckInteger, 1, ++/*343445*/ OPC_CheckType, MVT::i32, ++/*343447*/ OPC_MoveParent, ++/*343448*/ OPC_MoveChild, 13, ++/*343450*/ OPC_CheckInteger, 1, ++/*343452*/ OPC_CheckType, MVT::i32, ++/*343454*/ OPC_MoveParent, ++/*343455*/ OPC_MoveChild, 14, ++/*343457*/ OPC_CheckInteger, 1, ++/*343459*/ OPC_CheckType, MVT::i32, ++/*343461*/ OPC_MoveParent, ++/*343462*/ OPC_MoveChild, 15, ++/*343464*/ OPC_CheckInteger, 1, ++/*343466*/ OPC_CheckType, MVT::i32, ++/*343468*/ OPC_MoveParent, ++/*343469*/ OPC_CheckType, MVT::v16i8, ++/*343471*/ OPC_MoveParent, ++/*343472*/ OPC_CheckType, MVT::v16i8, ++/*343474*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*343476*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*343484*/ /*Scope*/ 91|128,1/*219*/, /*->343705*/ ++/*343486*/ OPC_MoveChild0, ++/*343487*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*343490*/ OPC_CheckChild0Integer, 1, ++/*343492*/ OPC_CheckChild0Type, MVT::i32, ++/*343494*/ OPC_CheckChild1Integer, 1, ++/*343496*/ OPC_CheckChild1Type, MVT::i32, ++/*343498*/ OPC_CheckChild2Integer, 1, ++/*343500*/ OPC_CheckChild2Type, MVT::i32, ++/*343502*/ OPC_CheckChild3Integer, 1, ++/*343504*/ OPC_CheckChild3Type, MVT::i32, ++/*343506*/ OPC_CheckChild4Integer, 1, ++/*343508*/ OPC_CheckChild4Type, MVT::i32, ++/*343510*/ OPC_MoveChild5, ++/*343511*/ OPC_CheckInteger, 1, ++/*343513*/ OPC_CheckType, MVT::i32, ++/*343515*/ OPC_MoveParent, ++/*343516*/ OPC_MoveChild6, ++/*343517*/ OPC_CheckInteger, 1, ++/*343519*/ OPC_CheckType, MVT::i32, ++/*343521*/ OPC_MoveParent, ++/*343522*/ OPC_MoveChild7, ++/*343523*/ OPC_CheckInteger, 1, ++/*343525*/ OPC_CheckType, MVT::i32, ++/*343527*/ OPC_MoveParent, ++/*343528*/ OPC_MoveChild, 8, ++/*343530*/ OPC_CheckInteger, 1, ++/*343532*/ OPC_CheckType, MVT::i32, ++/*343534*/ OPC_MoveParent, ++/*343535*/ OPC_MoveChild, 9, ++/*343537*/ OPC_CheckInteger, 1, ++/*343539*/ OPC_CheckType, MVT::i32, ++/*343541*/ OPC_MoveParent, ++/*343542*/ OPC_MoveChild, 10, ++/*343544*/ OPC_CheckInteger, 1, ++/*343546*/ OPC_CheckType, MVT::i32, ++/*343548*/ OPC_MoveParent, ++/*343549*/ OPC_MoveChild, 11, ++/*343551*/ OPC_CheckInteger, 1, ++/*343553*/ OPC_CheckType, MVT::i32, ++/*343555*/ OPC_MoveParent, ++/*343556*/ OPC_MoveChild, 12, ++/*343558*/ OPC_CheckInteger, 1, ++/*343560*/ OPC_CheckType, MVT::i32, ++/*343562*/ OPC_MoveParent, ++/*343563*/ OPC_MoveChild, 13, ++/*343565*/ OPC_CheckInteger, 1, ++/*343567*/ OPC_CheckType, MVT::i32, ++/*343569*/ OPC_MoveParent, ++/*343570*/ OPC_MoveChild, 14, ++/*343572*/ OPC_CheckInteger, 1, ++/*343574*/ OPC_CheckType, MVT::i32, ++/*343576*/ OPC_MoveParent, ++/*343577*/ OPC_MoveChild, 15, ++/*343579*/ OPC_CheckInteger, 1, ++/*343581*/ OPC_CheckType, MVT::i32, ++/*343583*/ OPC_MoveParent, ++/*343584*/ OPC_MoveParent, ++/*343585*/ OPC_CheckChild1Same, 1, ++/*343587*/ OPC_MoveParent, ++/*343588*/ OPC_CheckChild1Same, 0, ++/*343590*/ OPC_MoveParent, ++/*343591*/ OPC_MoveParent, ++/*343592*/ OPC_MoveChild1, ++/*343593*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*343596*/ OPC_CheckChild0Integer, 1, ++/*343598*/ OPC_CheckChild0Type, MVT::i32, ++/*343600*/ OPC_CheckChild1Integer, 1, ++/*343602*/ OPC_CheckChild1Type, MVT::i32, ++/*343604*/ OPC_CheckChild2Integer, 1, ++/*343606*/ OPC_CheckChild2Type, MVT::i32, ++/*343608*/ OPC_CheckChild3Integer, 1, ++/*343610*/ OPC_CheckChild3Type, MVT::i32, ++/*343612*/ OPC_CheckChild4Integer, 1, ++/*343614*/ OPC_CheckChild4Type, MVT::i32, ++/*343616*/ OPC_MoveChild5, ++/*343617*/ OPC_CheckInteger, 1, ++/*343619*/ OPC_CheckType, MVT::i32, ++/*343621*/ OPC_MoveParent, ++/*343622*/ OPC_MoveChild6, ++/*343623*/ OPC_CheckInteger, 1, ++/*343625*/ OPC_CheckType, MVT::i32, ++/*343627*/ OPC_MoveParent, ++/*343628*/ OPC_MoveChild7, ++/*343629*/ OPC_CheckInteger, 1, ++/*343631*/ OPC_CheckType, MVT::i32, ++/*343633*/ OPC_MoveParent, ++/*343634*/ OPC_MoveChild, 8, ++/*343636*/ OPC_CheckInteger, 1, ++/*343638*/ OPC_CheckType, MVT::i32, ++/*343640*/ OPC_MoveParent, ++/*343641*/ OPC_MoveChild, 9, ++/*343643*/ OPC_CheckInteger, 1, ++/*343645*/ OPC_CheckType, MVT::i32, ++/*343647*/ OPC_MoveParent, ++/*343648*/ OPC_MoveChild, 10, ++/*343650*/ OPC_CheckInteger, 1, ++/*343652*/ OPC_CheckType, MVT::i32, ++/*343654*/ OPC_MoveParent, ++/*343655*/ OPC_MoveChild, 11, ++/*343657*/ OPC_CheckInteger, 1, ++/*343659*/ OPC_CheckType, MVT::i32, ++/*343661*/ OPC_MoveParent, ++/*343662*/ OPC_MoveChild, 12, ++/*343664*/ OPC_CheckInteger, 1, ++/*343666*/ OPC_CheckType, MVT::i32, ++/*343668*/ OPC_MoveParent, ++/*343669*/ OPC_MoveChild, 13, ++/*343671*/ OPC_CheckInteger, 1, ++/*343673*/ OPC_CheckType, MVT::i32, ++/*343675*/ OPC_MoveParent, ++/*343676*/ OPC_MoveChild, 14, ++/*343678*/ OPC_CheckInteger, 1, ++/*343680*/ OPC_CheckType, MVT::i32, ++/*343682*/ OPC_MoveParent, ++/*343683*/ OPC_MoveChild, 15, ++/*343685*/ OPC_CheckInteger, 1, ++/*343687*/ OPC_CheckType, MVT::i32, ++/*343689*/ OPC_MoveParent, ++/*343690*/ OPC_CheckType, MVT::v16i8, ++/*343692*/ OPC_MoveParent, ++/*343693*/ OPC_CheckType, MVT::v16i8, ++/*343695*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*343697*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b), LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*343705*/ /*Scope*/ 91|128,1/*219*/, /*->343926*/ ++/*343707*/ OPC_CheckChild0Same, 1, ++/*343709*/ OPC_MoveChild1, ++/*343710*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*343713*/ OPC_CheckChild0Integer, 1, ++/*343715*/ OPC_CheckChild0Type, MVT::i32, ++/*343717*/ OPC_CheckChild1Integer, 1, ++/*343719*/ OPC_CheckChild1Type, MVT::i32, ++/*343721*/ OPC_CheckChild2Integer, 1, ++/*343723*/ OPC_CheckChild2Type, MVT::i32, ++/*343725*/ OPC_CheckChild3Integer, 1, ++/*343727*/ OPC_CheckChild3Type, MVT::i32, ++/*343729*/ OPC_CheckChild4Integer, 1, ++/*343731*/ OPC_CheckChild4Type, MVT::i32, ++/*343733*/ OPC_MoveChild5, ++/*343734*/ OPC_CheckInteger, 1, ++/*343736*/ OPC_CheckType, MVT::i32, ++/*343738*/ OPC_MoveParent, ++/*343739*/ OPC_MoveChild6, ++/*343740*/ OPC_CheckInteger, 1, ++/*343742*/ OPC_CheckType, MVT::i32, ++/*343744*/ OPC_MoveParent, ++/*343745*/ OPC_MoveChild7, ++/*343746*/ OPC_CheckInteger, 1, ++/*343748*/ OPC_CheckType, MVT::i32, ++/*343750*/ OPC_MoveParent, ++/*343751*/ OPC_MoveChild, 8, ++/*343753*/ OPC_CheckInteger, 1, ++/*343755*/ OPC_CheckType, MVT::i32, ++/*343757*/ OPC_MoveParent, ++/*343758*/ OPC_MoveChild, 9, ++/*343760*/ OPC_CheckInteger, 1, ++/*343762*/ OPC_CheckType, MVT::i32, ++/*343764*/ OPC_MoveParent, ++/*343765*/ OPC_MoveChild, 10, ++/*343767*/ OPC_CheckInteger, 1, ++/*343769*/ OPC_CheckType, MVT::i32, ++/*343771*/ OPC_MoveParent, ++/*343772*/ OPC_MoveChild, 11, ++/*343774*/ OPC_CheckInteger, 1, ++/*343776*/ OPC_CheckType, MVT::i32, ++/*343778*/ OPC_MoveParent, ++/*343779*/ OPC_MoveChild, 12, ++/*343781*/ OPC_CheckInteger, 1, ++/*343783*/ OPC_CheckType, MVT::i32, ++/*343785*/ OPC_MoveParent, ++/*343786*/ OPC_MoveChild, 13, ++/*343788*/ OPC_CheckInteger, 1, ++/*343790*/ OPC_CheckType, MVT::i32, ++/*343792*/ OPC_MoveParent, ++/*343793*/ OPC_MoveChild, 14, ++/*343795*/ OPC_CheckInteger, 1, ++/*343797*/ OPC_CheckType, MVT::i32, ++/*343799*/ OPC_MoveParent, ++/*343800*/ OPC_MoveChild, 15, ++/*343802*/ OPC_CheckInteger, 1, ++/*343804*/ OPC_CheckType, MVT::i32, ++/*343806*/ OPC_MoveParent, ++/*343807*/ OPC_MoveParent, ++/*343808*/ OPC_MoveParent, ++/*343809*/ OPC_CheckChild1Same, 0, ++/*343811*/ OPC_MoveParent, ++/*343812*/ OPC_MoveParent, ++/*343813*/ OPC_MoveChild1, ++/*343814*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*343817*/ OPC_CheckChild0Integer, 1, ++/*343819*/ OPC_CheckChild0Type, MVT::i32, ++/*343821*/ OPC_CheckChild1Integer, 1, ++/*343823*/ OPC_CheckChild1Type, MVT::i32, ++/*343825*/ OPC_CheckChild2Integer, 1, ++/*343827*/ OPC_CheckChild2Type, MVT::i32, ++/*343829*/ OPC_CheckChild3Integer, 1, ++/*343831*/ OPC_CheckChild3Type, MVT::i32, ++/*343833*/ OPC_CheckChild4Integer, 1, ++/*343835*/ OPC_CheckChild4Type, MVT::i32, ++/*343837*/ OPC_MoveChild5, ++/*343838*/ OPC_CheckInteger, 1, ++/*343840*/ OPC_CheckType, MVT::i32, ++/*343842*/ OPC_MoveParent, ++/*343843*/ OPC_MoveChild6, ++/*343844*/ OPC_CheckInteger, 1, ++/*343846*/ OPC_CheckType, MVT::i32, ++/*343848*/ OPC_MoveParent, ++/*343849*/ OPC_MoveChild7, ++/*343850*/ OPC_CheckInteger, 1, ++/*343852*/ OPC_CheckType, MVT::i32, ++/*343854*/ OPC_MoveParent, ++/*343855*/ OPC_MoveChild, 8, ++/*343857*/ OPC_CheckInteger, 1, ++/*343859*/ OPC_CheckType, MVT::i32, ++/*343861*/ OPC_MoveParent, ++/*343862*/ OPC_MoveChild, 9, ++/*343864*/ OPC_CheckInteger, 1, ++/*343866*/ OPC_CheckType, MVT::i32, ++/*343868*/ OPC_MoveParent, ++/*343869*/ OPC_MoveChild, 10, ++/*343871*/ OPC_CheckInteger, 1, ++/*343873*/ OPC_CheckType, MVT::i32, ++/*343875*/ OPC_MoveParent, ++/*343876*/ OPC_MoveChild, 11, ++/*343878*/ OPC_CheckInteger, 1, ++/*343880*/ OPC_CheckType, MVT::i32, ++/*343882*/ OPC_MoveParent, ++/*343883*/ OPC_MoveChild, 12, ++/*343885*/ OPC_CheckInteger, 1, ++/*343887*/ OPC_CheckType, MVT::i32, ++/*343889*/ OPC_MoveParent, ++/*343890*/ OPC_MoveChild, 13, ++/*343892*/ OPC_CheckInteger, 1, ++/*343894*/ OPC_CheckType, MVT::i32, ++/*343896*/ OPC_MoveParent, ++/*343897*/ OPC_MoveChild, 14, ++/*343899*/ OPC_CheckInteger, 1, ++/*343901*/ OPC_CheckType, MVT::i32, ++/*343903*/ OPC_MoveParent, ++/*343904*/ OPC_MoveChild, 15, ++/*343906*/ OPC_CheckInteger, 1, ++/*343908*/ OPC_CheckType, MVT::i32, ++/*343910*/ OPC_MoveParent, ++/*343911*/ OPC_CheckType, MVT::v16i8, ++/*343913*/ OPC_MoveParent, ++/*343914*/ OPC_CheckType, MVT::v16i8, ++/*343916*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*343918*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*343926*/ /*Scope*/ 91|128,1/*219*/, /*->344147*/ ++/*343928*/ OPC_CheckChild0Same, 0, ++/*343930*/ OPC_CheckChild1Same, 1, ++/*343932*/ OPC_MoveParent, ++/*343933*/ OPC_MoveChild1, ++/*343934*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*343937*/ OPC_CheckChild0Integer, 1, ++/*343939*/ OPC_CheckChild0Type, MVT::i32, ++/*343941*/ OPC_CheckChild1Integer, 1, ++/*343943*/ OPC_CheckChild1Type, MVT::i32, ++/*343945*/ OPC_CheckChild2Integer, 1, ++/*343947*/ OPC_CheckChild2Type, MVT::i32, ++/*343949*/ OPC_CheckChild3Integer, 1, ++/*343951*/ OPC_CheckChild3Type, MVT::i32, ++/*343953*/ OPC_CheckChild4Integer, 1, ++/*343955*/ OPC_CheckChild4Type, MVT::i32, ++/*343957*/ OPC_MoveChild5, ++/*343958*/ OPC_CheckInteger, 1, ++/*343960*/ OPC_CheckType, MVT::i32, ++/*343962*/ OPC_MoveParent, ++/*343963*/ OPC_MoveChild6, ++/*343964*/ OPC_CheckInteger, 1, ++/*343966*/ OPC_CheckType, MVT::i32, ++/*343968*/ OPC_MoveParent, ++/*343969*/ OPC_MoveChild7, ++/*343970*/ OPC_CheckInteger, 1, ++/*343972*/ OPC_CheckType, MVT::i32, ++/*343974*/ OPC_MoveParent, ++/*343975*/ OPC_MoveChild, 8, ++/*343977*/ OPC_CheckInteger, 1, ++/*343979*/ OPC_CheckType, MVT::i32, ++/*343981*/ OPC_MoveParent, ++/*343982*/ OPC_MoveChild, 9, ++/*343984*/ OPC_CheckInteger, 1, ++/*343986*/ OPC_CheckType, MVT::i32, ++/*343988*/ OPC_MoveParent, ++/*343989*/ OPC_MoveChild, 10, ++/*343991*/ OPC_CheckInteger, 1, ++/*343993*/ OPC_CheckType, MVT::i32, ++/*343995*/ OPC_MoveParent, ++/*343996*/ OPC_MoveChild, 11, ++/*343998*/ OPC_CheckInteger, 1, ++/*344000*/ OPC_CheckType, MVT::i32, ++/*344002*/ OPC_MoveParent, ++/*344003*/ OPC_MoveChild, 12, ++/*344005*/ OPC_CheckInteger, 1, ++/*344007*/ OPC_CheckType, MVT::i32, ++/*344009*/ OPC_MoveParent, ++/*344010*/ OPC_MoveChild, 13, ++/*344012*/ OPC_CheckInteger, 1, ++/*344014*/ OPC_CheckType, MVT::i32, ++/*344016*/ OPC_MoveParent, ++/*344017*/ OPC_MoveChild, 14, ++/*344019*/ OPC_CheckInteger, 1, ++/*344021*/ OPC_CheckType, MVT::i32, ++/*344023*/ OPC_MoveParent, ++/*344024*/ OPC_MoveChild, 15, ++/*344026*/ OPC_CheckInteger, 1, ++/*344028*/ OPC_CheckType, MVT::i32, ++/*344030*/ OPC_MoveParent, ++/*344031*/ OPC_MoveParent, ++/*344032*/ OPC_MoveParent, ++/*344033*/ OPC_MoveParent, ++/*344034*/ OPC_MoveChild1, ++/*344035*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*344038*/ OPC_CheckChild0Integer, 1, ++/*344040*/ OPC_CheckChild0Type, MVT::i32, ++/*344042*/ OPC_CheckChild1Integer, 1, ++/*344044*/ OPC_CheckChild1Type, MVT::i32, ++/*344046*/ OPC_CheckChild2Integer, 1, ++/*344048*/ OPC_CheckChild2Type, MVT::i32, ++/*344050*/ OPC_CheckChild3Integer, 1, ++/*344052*/ OPC_CheckChild3Type, MVT::i32, ++/*344054*/ OPC_CheckChild4Integer, 1, ++/*344056*/ OPC_CheckChild4Type, MVT::i32, ++/*344058*/ OPC_MoveChild5, ++/*344059*/ OPC_CheckInteger, 1, ++/*344061*/ OPC_CheckType, MVT::i32, ++/*344063*/ OPC_MoveParent, ++/*344064*/ OPC_MoveChild6, ++/*344065*/ OPC_CheckInteger, 1, ++/*344067*/ OPC_CheckType, MVT::i32, ++/*344069*/ OPC_MoveParent, ++/*344070*/ OPC_MoveChild7, ++/*344071*/ OPC_CheckInteger, 1, ++/*344073*/ OPC_CheckType, MVT::i32, ++/*344075*/ OPC_MoveParent, ++/*344076*/ OPC_MoveChild, 8, ++/*344078*/ OPC_CheckInteger, 1, ++/*344080*/ OPC_CheckType, MVT::i32, ++/*344082*/ OPC_MoveParent, ++/*344083*/ OPC_MoveChild, 9, ++/*344085*/ OPC_CheckInteger, 1, ++/*344087*/ OPC_CheckType, MVT::i32, ++/*344089*/ OPC_MoveParent, ++/*344090*/ OPC_MoveChild, 10, ++/*344092*/ OPC_CheckInteger, 1, ++/*344094*/ OPC_CheckType, MVT::i32, ++/*344096*/ OPC_MoveParent, ++/*344097*/ OPC_MoveChild, 11, ++/*344099*/ OPC_CheckInteger, 1, ++/*344101*/ OPC_CheckType, MVT::i32, ++/*344103*/ OPC_MoveParent, ++/*344104*/ OPC_MoveChild, 12, ++/*344106*/ OPC_CheckInteger, 1, ++/*344108*/ OPC_CheckType, MVT::i32, ++/*344110*/ OPC_MoveParent, ++/*344111*/ OPC_MoveChild, 13, ++/*344113*/ OPC_CheckInteger, 1, ++/*344115*/ OPC_CheckType, MVT::i32, ++/*344117*/ OPC_MoveParent, ++/*344118*/ OPC_MoveChild, 14, ++/*344120*/ OPC_CheckInteger, 1, ++/*344122*/ OPC_CheckType, MVT::i32, ++/*344124*/ OPC_MoveParent, ++/*344125*/ OPC_MoveChild, 15, ++/*344127*/ OPC_CheckInteger, 1, ++/*344129*/ OPC_CheckType, MVT::i32, ++/*344131*/ OPC_MoveParent, ++/*344132*/ OPC_CheckType, MVT::v16i8, ++/*344134*/ OPC_MoveParent, ++/*344135*/ OPC_CheckType, MVT::v16i8, ++/*344137*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*344139*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*344147*/ /*Scope*/ 91|128,1/*219*/, /*->344368*/ ++/*344149*/ OPC_CheckChild0Same, 1, ++/*344151*/ OPC_CheckChild1Same, 0, ++/*344153*/ OPC_MoveParent, ++/*344154*/ OPC_MoveChild1, ++/*344155*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*344158*/ OPC_CheckChild0Integer, 1, ++/*344160*/ OPC_CheckChild0Type, MVT::i32, ++/*344162*/ OPC_CheckChild1Integer, 1, ++/*344164*/ OPC_CheckChild1Type, MVT::i32, ++/*344166*/ OPC_CheckChild2Integer, 1, ++/*344168*/ OPC_CheckChild2Type, MVT::i32, ++/*344170*/ OPC_CheckChild3Integer, 1, ++/*344172*/ OPC_CheckChild3Type, MVT::i32, ++/*344174*/ OPC_CheckChild4Integer, 1, ++/*344176*/ OPC_CheckChild4Type, MVT::i32, ++/*344178*/ OPC_MoveChild5, ++/*344179*/ OPC_CheckInteger, 1, ++/*344181*/ OPC_CheckType, MVT::i32, ++/*344183*/ OPC_MoveParent, ++/*344184*/ OPC_MoveChild6, ++/*344185*/ OPC_CheckInteger, 1, ++/*344187*/ OPC_CheckType, MVT::i32, ++/*344189*/ OPC_MoveParent, ++/*344190*/ OPC_MoveChild7, ++/*344191*/ OPC_CheckInteger, 1, ++/*344193*/ OPC_CheckType, MVT::i32, ++/*344195*/ OPC_MoveParent, ++/*344196*/ OPC_MoveChild, 8, ++/*344198*/ OPC_CheckInteger, 1, ++/*344200*/ OPC_CheckType, MVT::i32, ++/*344202*/ OPC_MoveParent, ++/*344203*/ OPC_MoveChild, 9, ++/*344205*/ OPC_CheckInteger, 1, ++/*344207*/ OPC_CheckType, MVT::i32, ++/*344209*/ OPC_MoveParent, ++/*344210*/ OPC_MoveChild, 10, ++/*344212*/ OPC_CheckInteger, 1, ++/*344214*/ OPC_CheckType, MVT::i32, ++/*344216*/ OPC_MoveParent, ++/*344217*/ OPC_MoveChild, 11, ++/*344219*/ OPC_CheckInteger, 1, ++/*344221*/ OPC_CheckType, MVT::i32, ++/*344223*/ OPC_MoveParent, ++/*344224*/ OPC_MoveChild, 12, ++/*344226*/ OPC_CheckInteger, 1, ++/*344228*/ OPC_CheckType, MVT::i32, ++/*344230*/ OPC_MoveParent, ++/*344231*/ OPC_MoveChild, 13, ++/*344233*/ OPC_CheckInteger, 1, ++/*344235*/ OPC_CheckType, MVT::i32, ++/*344237*/ OPC_MoveParent, ++/*344238*/ OPC_MoveChild, 14, ++/*344240*/ OPC_CheckInteger, 1, ++/*344242*/ OPC_CheckType, MVT::i32, ++/*344244*/ OPC_MoveParent, ++/*344245*/ OPC_MoveChild, 15, ++/*344247*/ OPC_CheckInteger, 1, ++/*344249*/ OPC_CheckType, MVT::i32, ++/*344251*/ OPC_MoveParent, ++/*344252*/ OPC_MoveParent, ++/*344253*/ OPC_MoveParent, ++/*344254*/ OPC_MoveParent, ++/*344255*/ OPC_MoveChild1, ++/*344256*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*344259*/ OPC_CheckChild0Integer, 1, ++/*344261*/ OPC_CheckChild0Type, MVT::i32, ++/*344263*/ OPC_CheckChild1Integer, 1, ++/*344265*/ OPC_CheckChild1Type, MVT::i32, ++/*344267*/ OPC_CheckChild2Integer, 1, ++/*344269*/ OPC_CheckChild2Type, MVT::i32, ++/*344271*/ OPC_CheckChild3Integer, 1, ++/*344273*/ OPC_CheckChild3Type, MVT::i32, ++/*344275*/ OPC_CheckChild4Integer, 1, ++/*344277*/ OPC_CheckChild4Type, MVT::i32, ++/*344279*/ OPC_MoveChild5, ++/*344280*/ OPC_CheckInteger, 1, ++/*344282*/ OPC_CheckType, MVT::i32, ++/*344284*/ OPC_MoveParent, ++/*344285*/ OPC_MoveChild6, ++/*344286*/ OPC_CheckInteger, 1, ++/*344288*/ OPC_CheckType, MVT::i32, ++/*344290*/ OPC_MoveParent, ++/*344291*/ OPC_MoveChild7, ++/*344292*/ OPC_CheckInteger, 1, ++/*344294*/ OPC_CheckType, MVT::i32, ++/*344296*/ OPC_MoveParent, ++/*344297*/ OPC_MoveChild, 8, ++/*344299*/ OPC_CheckInteger, 1, ++/*344301*/ OPC_CheckType, MVT::i32, ++/*344303*/ OPC_MoveParent, ++/*344304*/ OPC_MoveChild, 9, ++/*344306*/ OPC_CheckInteger, 1, ++/*344308*/ OPC_CheckType, MVT::i32, ++/*344310*/ OPC_MoveParent, ++/*344311*/ OPC_MoveChild, 10, ++/*344313*/ OPC_CheckInteger, 1, ++/*344315*/ OPC_CheckType, MVT::i32, ++/*344317*/ OPC_MoveParent, ++/*344318*/ OPC_MoveChild, 11, ++/*344320*/ OPC_CheckInteger, 1, ++/*344322*/ OPC_CheckType, MVT::i32, ++/*344324*/ OPC_MoveParent, ++/*344325*/ OPC_MoveChild, 12, ++/*344327*/ OPC_CheckInteger, 1, ++/*344329*/ OPC_CheckType, MVT::i32, ++/*344331*/ OPC_MoveParent, ++/*344332*/ OPC_MoveChild, 13, ++/*344334*/ OPC_CheckInteger, 1, ++/*344336*/ OPC_CheckType, MVT::i32, ++/*344338*/ OPC_MoveParent, ++/*344339*/ OPC_MoveChild, 14, ++/*344341*/ OPC_CheckInteger, 1, ++/*344343*/ OPC_CheckType, MVT::i32, ++/*344345*/ OPC_MoveParent, ++/*344346*/ OPC_MoveChild, 15, ++/*344348*/ OPC_CheckInteger, 1, ++/*344350*/ OPC_CheckType, MVT::i32, ++/*344352*/ OPC_MoveParent, ++/*344353*/ OPC_CheckType, MVT::v16i8, ++/*344355*/ OPC_MoveParent, ++/*344356*/ OPC_CheckType, MVT::v16i8, ++/*344358*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*344360*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*344368*/ 0, /*End of Scope*/ ++/*344369*/ /*Scope*/ 62|128,3/*446*/, /*->344817*/ ++/*344371*/ OPC_CheckChild0Same, 1, ++/*344373*/ OPC_MoveChild1, ++/*344374*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*344377*/ OPC_Scope, 89|128,1/*217*/, /*->344597*/ // 2 children in Scope ++/*344380*/ OPC_MoveChild0, ++/*344381*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*344384*/ OPC_CheckChild0Integer, 1, ++/*344386*/ OPC_CheckChild0Type, MVT::i32, ++/*344388*/ OPC_CheckChild1Integer, 1, ++/*344390*/ OPC_CheckChild1Type, MVT::i32, ++/*344392*/ OPC_CheckChild2Integer, 1, ++/*344394*/ OPC_CheckChild2Type, MVT::i32, ++/*344396*/ OPC_CheckChild3Integer, 1, ++/*344398*/ OPC_CheckChild3Type, MVT::i32, ++/*344400*/ OPC_CheckChild4Integer, 1, ++/*344402*/ OPC_CheckChild4Type, MVT::i32, ++/*344404*/ OPC_MoveChild5, ++/*344405*/ OPC_CheckInteger, 1, ++/*344407*/ OPC_CheckType, MVT::i32, ++/*344409*/ OPC_MoveParent, ++/*344410*/ OPC_MoveChild6, ++/*344411*/ OPC_CheckInteger, 1, ++/*344413*/ OPC_CheckType, MVT::i32, ++/*344415*/ OPC_MoveParent, ++/*344416*/ OPC_MoveChild7, ++/*344417*/ OPC_CheckInteger, 1, ++/*344419*/ OPC_CheckType, MVT::i32, ++/*344421*/ OPC_MoveParent, ++/*344422*/ OPC_MoveChild, 8, ++/*344424*/ OPC_CheckInteger, 1, ++/*344426*/ OPC_CheckType, MVT::i32, ++/*344428*/ OPC_MoveParent, ++/*344429*/ OPC_MoveChild, 9, ++/*344431*/ OPC_CheckInteger, 1, ++/*344433*/ OPC_CheckType, MVT::i32, ++/*344435*/ OPC_MoveParent, ++/*344436*/ OPC_MoveChild, 10, ++/*344438*/ OPC_CheckInteger, 1, ++/*344440*/ OPC_CheckType, MVT::i32, ++/*344442*/ OPC_MoveParent, ++/*344443*/ OPC_MoveChild, 11, ++/*344445*/ OPC_CheckInteger, 1, ++/*344447*/ OPC_CheckType, MVT::i32, ++/*344449*/ OPC_MoveParent, ++/*344450*/ OPC_MoveChild, 12, ++/*344452*/ OPC_CheckInteger, 1, ++/*344454*/ OPC_CheckType, MVT::i32, ++/*344456*/ OPC_MoveParent, ++/*344457*/ OPC_MoveChild, 13, ++/*344459*/ OPC_CheckInteger, 1, ++/*344461*/ OPC_CheckType, MVT::i32, ++/*344463*/ OPC_MoveParent, ++/*344464*/ OPC_MoveChild, 14, ++/*344466*/ OPC_CheckInteger, 1, ++/*344468*/ OPC_CheckType, MVT::i32, ++/*344470*/ OPC_MoveParent, ++/*344471*/ OPC_MoveChild, 15, ++/*344473*/ OPC_CheckInteger, 1, ++/*344475*/ OPC_CheckType, MVT::i32, ++/*344477*/ OPC_MoveParent, ++/*344478*/ OPC_MoveParent, ++/*344479*/ OPC_CheckChild1Same, 0, ++/*344481*/ OPC_MoveParent, ++/*344482*/ OPC_MoveParent, ++/*344483*/ OPC_MoveParent, ++/*344484*/ OPC_MoveChild1, ++/*344485*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*344488*/ OPC_CheckChild0Integer, 1, ++/*344490*/ OPC_CheckChild0Type, MVT::i32, ++/*344492*/ OPC_CheckChild1Integer, 1, ++/*344494*/ OPC_CheckChild1Type, MVT::i32, ++/*344496*/ OPC_CheckChild2Integer, 1, ++/*344498*/ OPC_CheckChild2Type, MVT::i32, ++/*344500*/ OPC_CheckChild3Integer, 1, ++/*344502*/ OPC_CheckChild3Type, MVT::i32, ++/*344504*/ OPC_CheckChild4Integer, 1, ++/*344506*/ OPC_CheckChild4Type, MVT::i32, ++/*344508*/ OPC_MoveChild5, ++/*344509*/ OPC_CheckInteger, 1, ++/*344511*/ OPC_CheckType, MVT::i32, ++/*344513*/ OPC_MoveParent, ++/*344514*/ OPC_MoveChild6, ++/*344515*/ OPC_CheckInteger, 1, ++/*344517*/ OPC_CheckType, MVT::i32, ++/*344519*/ OPC_MoveParent, ++/*344520*/ OPC_MoveChild7, ++/*344521*/ OPC_CheckInteger, 1, ++/*344523*/ OPC_CheckType, MVT::i32, ++/*344525*/ OPC_MoveParent, ++/*344526*/ OPC_MoveChild, 8, ++/*344528*/ OPC_CheckInteger, 1, ++/*344530*/ OPC_CheckType, MVT::i32, ++/*344532*/ OPC_MoveParent, ++/*344533*/ OPC_MoveChild, 9, ++/*344535*/ OPC_CheckInteger, 1, ++/*344537*/ OPC_CheckType, MVT::i32, ++/*344539*/ OPC_MoveParent, ++/*344540*/ OPC_MoveChild, 10, ++/*344542*/ OPC_CheckInteger, 1, ++/*344544*/ OPC_CheckType, MVT::i32, ++/*344546*/ OPC_MoveParent, ++/*344547*/ OPC_MoveChild, 11, ++/*344549*/ OPC_CheckInteger, 1, ++/*344551*/ OPC_CheckType, MVT::i32, ++/*344553*/ OPC_MoveParent, ++/*344554*/ OPC_MoveChild, 12, ++/*344556*/ OPC_CheckInteger, 1, ++/*344558*/ OPC_CheckType, MVT::i32, ++/*344560*/ OPC_MoveParent, ++/*344561*/ OPC_MoveChild, 13, ++/*344563*/ OPC_CheckInteger, 1, ++/*344565*/ OPC_CheckType, MVT::i32, ++/*344567*/ OPC_MoveParent, ++/*344568*/ OPC_MoveChild, 14, ++/*344570*/ OPC_CheckInteger, 1, ++/*344572*/ OPC_CheckType, MVT::i32, ++/*344574*/ OPC_MoveParent, ++/*344575*/ OPC_MoveChild, 15, ++/*344577*/ OPC_CheckInteger, 1, ++/*344579*/ OPC_CheckType, MVT::i32, ++/*344581*/ OPC_MoveParent, ++/*344582*/ OPC_CheckType, MVT::v16i8, ++/*344584*/ OPC_MoveParent, ++/*344585*/ OPC_CheckType, MVT::v16i8, ++/*344587*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*344589*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*344597*/ /*Scope*/ 89|128,1/*217*/, /*->344816*/ ++/*344599*/ OPC_CheckChild0Same, 0, ++/*344601*/ OPC_MoveChild1, ++/*344602*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*344605*/ OPC_CheckChild0Integer, 1, ++/*344607*/ OPC_CheckChild0Type, MVT::i32, ++/*344609*/ OPC_CheckChild1Integer, 1, ++/*344611*/ OPC_CheckChild1Type, MVT::i32, ++/*344613*/ OPC_CheckChild2Integer, 1, ++/*344615*/ OPC_CheckChild2Type, MVT::i32, ++/*344617*/ OPC_CheckChild3Integer, 1, ++/*344619*/ OPC_CheckChild3Type, MVT::i32, ++/*344621*/ OPC_CheckChild4Integer, 1, ++/*344623*/ OPC_CheckChild4Type, MVT::i32, ++/*344625*/ OPC_MoveChild5, ++/*344626*/ OPC_CheckInteger, 1, ++/*344628*/ OPC_CheckType, MVT::i32, ++/*344630*/ OPC_MoveParent, ++/*344631*/ OPC_MoveChild6, ++/*344632*/ OPC_CheckInteger, 1, ++/*344634*/ OPC_CheckType, MVT::i32, ++/*344636*/ OPC_MoveParent, ++/*344637*/ OPC_MoveChild7, ++/*344638*/ OPC_CheckInteger, 1, ++/*344640*/ OPC_CheckType, MVT::i32, ++/*344642*/ OPC_MoveParent, ++/*344643*/ OPC_MoveChild, 8, ++/*344645*/ OPC_CheckInteger, 1, ++/*344647*/ OPC_CheckType, MVT::i32, ++/*344649*/ OPC_MoveParent, ++/*344650*/ OPC_MoveChild, 9, ++/*344652*/ OPC_CheckInteger, 1, ++/*344654*/ OPC_CheckType, MVT::i32, ++/*344656*/ OPC_MoveParent, ++/*344657*/ OPC_MoveChild, 10, ++/*344659*/ OPC_CheckInteger, 1, ++/*344661*/ OPC_CheckType, MVT::i32, ++/*344663*/ OPC_MoveParent, ++/*344664*/ OPC_MoveChild, 11, ++/*344666*/ OPC_CheckInteger, 1, ++/*344668*/ OPC_CheckType, MVT::i32, ++/*344670*/ OPC_MoveParent, ++/*344671*/ OPC_MoveChild, 12, ++/*344673*/ OPC_CheckInteger, 1, ++/*344675*/ OPC_CheckType, MVT::i32, ++/*344677*/ OPC_MoveParent, ++/*344678*/ OPC_MoveChild, 13, ++/*344680*/ OPC_CheckInteger, 1, ++/*344682*/ OPC_CheckType, MVT::i32, ++/*344684*/ OPC_MoveParent, ++/*344685*/ OPC_MoveChild, 14, ++/*344687*/ OPC_CheckInteger, 1, ++/*344689*/ OPC_CheckType, MVT::i32, ++/*344691*/ OPC_MoveParent, ++/*344692*/ OPC_MoveChild, 15, ++/*344694*/ OPC_CheckInteger, 1, ++/*344696*/ OPC_CheckType, MVT::i32, ++/*344698*/ OPC_MoveParent, ++/*344699*/ OPC_MoveParent, ++/*344700*/ OPC_MoveParent, ++/*344701*/ OPC_MoveParent, ++/*344702*/ OPC_MoveParent, ++/*344703*/ OPC_MoveChild1, ++/*344704*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*344707*/ OPC_CheckChild0Integer, 1, ++/*344709*/ OPC_CheckChild0Type, MVT::i32, ++/*344711*/ OPC_CheckChild1Integer, 1, ++/*344713*/ OPC_CheckChild1Type, MVT::i32, ++/*344715*/ OPC_CheckChild2Integer, 1, ++/*344717*/ OPC_CheckChild2Type, MVT::i32, ++/*344719*/ OPC_CheckChild3Integer, 1, ++/*344721*/ OPC_CheckChild3Type, MVT::i32, ++/*344723*/ OPC_CheckChild4Integer, 1, ++/*344725*/ OPC_CheckChild4Type, MVT::i32, ++/*344727*/ OPC_MoveChild5, ++/*344728*/ OPC_CheckInteger, 1, ++/*344730*/ OPC_CheckType, MVT::i32, ++/*344732*/ OPC_MoveParent, ++/*344733*/ OPC_MoveChild6, ++/*344734*/ OPC_CheckInteger, 1, ++/*344736*/ OPC_CheckType, MVT::i32, ++/*344738*/ OPC_MoveParent, ++/*344739*/ OPC_MoveChild7, ++/*344740*/ OPC_CheckInteger, 1, ++/*344742*/ OPC_CheckType, MVT::i32, ++/*344744*/ OPC_MoveParent, ++/*344745*/ OPC_MoveChild, 8, ++/*344747*/ OPC_CheckInteger, 1, ++/*344749*/ OPC_CheckType, MVT::i32, ++/*344751*/ OPC_MoveParent, ++/*344752*/ OPC_MoveChild, 9, ++/*344754*/ OPC_CheckInteger, 1, ++/*344756*/ OPC_CheckType, MVT::i32, ++/*344758*/ OPC_MoveParent, ++/*344759*/ OPC_MoveChild, 10, ++/*344761*/ OPC_CheckInteger, 1, ++/*344763*/ OPC_CheckType, MVT::i32, ++/*344765*/ OPC_MoveParent, ++/*344766*/ OPC_MoveChild, 11, ++/*344768*/ OPC_CheckInteger, 1, ++/*344770*/ OPC_CheckType, MVT::i32, ++/*344772*/ OPC_MoveParent, ++/*344773*/ OPC_MoveChild, 12, ++/*344775*/ OPC_CheckInteger, 1, ++/*344777*/ OPC_CheckType, MVT::i32, ++/*344779*/ OPC_MoveParent, ++/*344780*/ OPC_MoveChild, 13, ++/*344782*/ OPC_CheckInteger, 1, ++/*344784*/ OPC_CheckType, MVT::i32, ++/*344786*/ OPC_MoveParent, ++/*344787*/ OPC_MoveChild, 14, ++/*344789*/ OPC_CheckInteger, 1, ++/*344791*/ OPC_CheckType, MVT::i32, ++/*344793*/ OPC_MoveParent, ++/*344794*/ OPC_MoveChild, 15, ++/*344796*/ OPC_CheckInteger, 1, ++/*344798*/ OPC_CheckType, MVT::i32, ++/*344800*/ OPC_MoveParent, ++/*344801*/ OPC_CheckType, MVT::v16i8, ++/*344803*/ OPC_MoveParent, ++/*344804*/ OPC_CheckType, MVT::v16i8, ++/*344806*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*344808*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*344816*/ 0, /*End of Scope*/ ++/*344817*/ /*Scope*/ 62|128,3/*446*/, /*->345265*/ ++/*344819*/ OPC_CheckChild0Same, 0, ++/*344821*/ OPC_MoveChild1, ++/*344822*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*344825*/ OPC_Scope, 89|128,1/*217*/, /*->345045*/ // 2 children in Scope ++/*344828*/ OPC_MoveChild0, ++/*344829*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*344832*/ OPC_CheckChild0Integer, 1, ++/*344834*/ OPC_CheckChild0Type, MVT::i32, ++/*344836*/ OPC_CheckChild1Integer, 1, ++/*344838*/ OPC_CheckChild1Type, MVT::i32, ++/*344840*/ OPC_CheckChild2Integer, 1, ++/*344842*/ OPC_CheckChild2Type, MVT::i32, ++/*344844*/ OPC_CheckChild3Integer, 1, ++/*344846*/ OPC_CheckChild3Type, MVT::i32, ++/*344848*/ OPC_CheckChild4Integer, 1, ++/*344850*/ OPC_CheckChild4Type, MVT::i32, ++/*344852*/ OPC_MoveChild5, ++/*344853*/ OPC_CheckInteger, 1, ++/*344855*/ OPC_CheckType, MVT::i32, ++/*344857*/ OPC_MoveParent, ++/*344858*/ OPC_MoveChild6, ++/*344859*/ OPC_CheckInteger, 1, ++/*344861*/ OPC_CheckType, MVT::i32, ++/*344863*/ OPC_MoveParent, ++/*344864*/ OPC_MoveChild7, ++/*344865*/ OPC_CheckInteger, 1, ++/*344867*/ OPC_CheckType, MVT::i32, ++/*344869*/ OPC_MoveParent, ++/*344870*/ OPC_MoveChild, 8, ++/*344872*/ OPC_CheckInteger, 1, ++/*344874*/ OPC_CheckType, MVT::i32, ++/*344876*/ OPC_MoveParent, ++/*344877*/ OPC_MoveChild, 9, ++/*344879*/ OPC_CheckInteger, 1, ++/*344881*/ OPC_CheckType, MVT::i32, ++/*344883*/ OPC_MoveParent, ++/*344884*/ OPC_MoveChild, 10, ++/*344886*/ OPC_CheckInteger, 1, ++/*344888*/ OPC_CheckType, MVT::i32, ++/*344890*/ OPC_MoveParent, ++/*344891*/ OPC_MoveChild, 11, ++/*344893*/ OPC_CheckInteger, 1, ++/*344895*/ OPC_CheckType, MVT::i32, ++/*344897*/ OPC_MoveParent, ++/*344898*/ OPC_MoveChild, 12, ++/*344900*/ OPC_CheckInteger, 1, ++/*344902*/ OPC_CheckType, MVT::i32, ++/*344904*/ OPC_MoveParent, ++/*344905*/ OPC_MoveChild, 13, ++/*344907*/ OPC_CheckInteger, 1, ++/*344909*/ OPC_CheckType, MVT::i32, ++/*344911*/ OPC_MoveParent, ++/*344912*/ OPC_MoveChild, 14, ++/*344914*/ OPC_CheckInteger, 1, ++/*344916*/ OPC_CheckType, MVT::i32, ++/*344918*/ OPC_MoveParent, ++/*344919*/ OPC_MoveChild, 15, ++/*344921*/ OPC_CheckInteger, 1, ++/*344923*/ OPC_CheckType, MVT::i32, ++/*344925*/ OPC_MoveParent, ++/*344926*/ OPC_MoveParent, ++/*344927*/ OPC_CheckChild1Same, 1, ++/*344929*/ OPC_MoveParent, ++/*344930*/ OPC_MoveParent, ++/*344931*/ OPC_MoveParent, ++/*344932*/ OPC_MoveChild1, ++/*344933*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*344936*/ OPC_CheckChild0Integer, 1, ++/*344938*/ OPC_CheckChild0Type, MVT::i32, ++/*344940*/ OPC_CheckChild1Integer, 1, ++/*344942*/ OPC_CheckChild1Type, MVT::i32, ++/*344944*/ OPC_CheckChild2Integer, 1, ++/*344946*/ OPC_CheckChild2Type, MVT::i32, ++/*344948*/ OPC_CheckChild3Integer, 1, ++/*344950*/ OPC_CheckChild3Type, MVT::i32, ++/*344952*/ OPC_CheckChild4Integer, 1, ++/*344954*/ OPC_CheckChild4Type, MVT::i32, ++/*344956*/ OPC_MoveChild5, ++/*344957*/ OPC_CheckInteger, 1, ++/*344959*/ OPC_CheckType, MVT::i32, ++/*344961*/ OPC_MoveParent, ++/*344962*/ OPC_MoveChild6, ++/*344963*/ OPC_CheckInteger, 1, ++/*344965*/ OPC_CheckType, MVT::i32, ++/*344967*/ OPC_MoveParent, ++/*344968*/ OPC_MoveChild7, ++/*344969*/ OPC_CheckInteger, 1, ++/*344971*/ OPC_CheckType, MVT::i32, ++/*344973*/ OPC_MoveParent, ++/*344974*/ OPC_MoveChild, 8, ++/*344976*/ OPC_CheckInteger, 1, ++/*344978*/ OPC_CheckType, MVT::i32, ++/*344980*/ OPC_MoveParent, ++/*344981*/ OPC_MoveChild, 9, ++/*344983*/ OPC_CheckInteger, 1, ++/*344985*/ OPC_CheckType, MVT::i32, ++/*344987*/ OPC_MoveParent, ++/*344988*/ OPC_MoveChild, 10, ++/*344990*/ OPC_CheckInteger, 1, ++/*344992*/ OPC_CheckType, MVT::i32, ++/*344994*/ OPC_MoveParent, ++/*344995*/ OPC_MoveChild, 11, ++/*344997*/ OPC_CheckInteger, 1, ++/*344999*/ OPC_CheckType, MVT::i32, ++/*345001*/ OPC_MoveParent, ++/*345002*/ OPC_MoveChild, 12, ++/*345004*/ OPC_CheckInteger, 1, ++/*345006*/ OPC_CheckType, MVT::i32, ++/*345008*/ OPC_MoveParent, ++/*345009*/ OPC_MoveChild, 13, ++/*345011*/ OPC_CheckInteger, 1, ++/*345013*/ OPC_CheckType, MVT::i32, ++/*345015*/ OPC_MoveParent, ++/*345016*/ OPC_MoveChild, 14, ++/*345018*/ OPC_CheckInteger, 1, ++/*345020*/ OPC_CheckType, MVT::i32, ++/*345022*/ OPC_MoveParent, ++/*345023*/ OPC_MoveChild, 15, ++/*345025*/ OPC_CheckInteger, 1, ++/*345027*/ OPC_CheckType, MVT::i32, ++/*345029*/ OPC_MoveParent, ++/*345030*/ OPC_CheckType, MVT::v16i8, ++/*345032*/ OPC_MoveParent, ++/*345033*/ OPC_CheckType, MVT::v16i8, ++/*345035*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*345037*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*345045*/ /*Scope*/ 89|128,1/*217*/, /*->345264*/ ++/*345047*/ OPC_CheckChild0Same, 1, ++/*345049*/ OPC_MoveChild1, ++/*345050*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*345053*/ OPC_CheckChild0Integer, 1, ++/*345055*/ OPC_CheckChild0Type, MVT::i32, ++/*345057*/ OPC_CheckChild1Integer, 1, ++/*345059*/ OPC_CheckChild1Type, MVT::i32, ++/*345061*/ OPC_CheckChild2Integer, 1, ++/*345063*/ OPC_CheckChild2Type, MVT::i32, ++/*345065*/ OPC_CheckChild3Integer, 1, ++/*345067*/ OPC_CheckChild3Type, MVT::i32, ++/*345069*/ OPC_CheckChild4Integer, 1, ++/*345071*/ OPC_CheckChild4Type, MVT::i32, ++/*345073*/ OPC_MoveChild5, ++/*345074*/ OPC_CheckInteger, 1, ++/*345076*/ OPC_CheckType, MVT::i32, ++/*345078*/ OPC_MoveParent, ++/*345079*/ OPC_MoveChild6, ++/*345080*/ OPC_CheckInteger, 1, ++/*345082*/ OPC_CheckType, MVT::i32, ++/*345084*/ OPC_MoveParent, ++/*345085*/ OPC_MoveChild7, ++/*345086*/ OPC_CheckInteger, 1, ++/*345088*/ OPC_CheckType, MVT::i32, ++/*345090*/ OPC_MoveParent, ++/*345091*/ OPC_MoveChild, 8, ++/*345093*/ OPC_CheckInteger, 1, ++/*345095*/ OPC_CheckType, MVT::i32, ++/*345097*/ OPC_MoveParent, ++/*345098*/ OPC_MoveChild, 9, ++/*345100*/ OPC_CheckInteger, 1, ++/*345102*/ OPC_CheckType, MVT::i32, ++/*345104*/ OPC_MoveParent, ++/*345105*/ OPC_MoveChild, 10, ++/*345107*/ OPC_CheckInteger, 1, ++/*345109*/ OPC_CheckType, MVT::i32, ++/*345111*/ OPC_MoveParent, ++/*345112*/ OPC_MoveChild, 11, ++/*345114*/ OPC_CheckInteger, 1, ++/*345116*/ OPC_CheckType, MVT::i32, ++/*345118*/ OPC_MoveParent, ++/*345119*/ OPC_MoveChild, 12, ++/*345121*/ OPC_CheckInteger, 1, ++/*345123*/ OPC_CheckType, MVT::i32, ++/*345125*/ OPC_MoveParent, ++/*345126*/ OPC_MoveChild, 13, ++/*345128*/ OPC_CheckInteger, 1, ++/*345130*/ OPC_CheckType, MVT::i32, ++/*345132*/ OPC_MoveParent, ++/*345133*/ OPC_MoveChild, 14, ++/*345135*/ OPC_CheckInteger, 1, ++/*345137*/ OPC_CheckType, MVT::i32, ++/*345139*/ OPC_MoveParent, ++/*345140*/ OPC_MoveChild, 15, ++/*345142*/ OPC_CheckInteger, 1, ++/*345144*/ OPC_CheckType, MVT::i32, ++/*345146*/ OPC_MoveParent, ++/*345147*/ OPC_MoveParent, ++/*345148*/ OPC_MoveParent, ++/*345149*/ OPC_MoveParent, ++/*345150*/ OPC_MoveParent, ++/*345151*/ OPC_MoveChild1, ++/*345152*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*345155*/ OPC_CheckChild0Integer, 1, ++/*345157*/ OPC_CheckChild0Type, MVT::i32, ++/*345159*/ OPC_CheckChild1Integer, 1, ++/*345161*/ OPC_CheckChild1Type, MVT::i32, ++/*345163*/ OPC_CheckChild2Integer, 1, ++/*345165*/ OPC_CheckChild2Type, MVT::i32, ++/*345167*/ OPC_CheckChild3Integer, 1, ++/*345169*/ OPC_CheckChild3Type, MVT::i32, ++/*345171*/ OPC_CheckChild4Integer, 1, ++/*345173*/ OPC_CheckChild4Type, MVT::i32, ++/*345175*/ OPC_MoveChild5, ++/*345176*/ OPC_CheckInteger, 1, ++/*345178*/ OPC_CheckType, MVT::i32, ++/*345180*/ OPC_MoveParent, ++/*345181*/ OPC_MoveChild6, ++/*345182*/ OPC_CheckInteger, 1, ++/*345184*/ OPC_CheckType, MVT::i32, ++/*345186*/ OPC_MoveParent, ++/*345187*/ OPC_MoveChild7, ++/*345188*/ OPC_CheckInteger, 1, ++/*345190*/ OPC_CheckType, MVT::i32, ++/*345192*/ OPC_MoveParent, ++/*345193*/ OPC_MoveChild, 8, ++/*345195*/ OPC_CheckInteger, 1, ++/*345197*/ OPC_CheckType, MVT::i32, ++/*345199*/ OPC_MoveParent, ++/*345200*/ OPC_MoveChild, 9, ++/*345202*/ OPC_CheckInteger, 1, ++/*345204*/ OPC_CheckType, MVT::i32, ++/*345206*/ OPC_MoveParent, ++/*345207*/ OPC_MoveChild, 10, ++/*345209*/ OPC_CheckInteger, 1, ++/*345211*/ OPC_CheckType, MVT::i32, ++/*345213*/ OPC_MoveParent, ++/*345214*/ OPC_MoveChild, 11, ++/*345216*/ OPC_CheckInteger, 1, ++/*345218*/ OPC_CheckType, MVT::i32, ++/*345220*/ OPC_MoveParent, ++/*345221*/ OPC_MoveChild, 12, ++/*345223*/ OPC_CheckInteger, 1, ++/*345225*/ OPC_CheckType, MVT::i32, ++/*345227*/ OPC_MoveParent, ++/*345228*/ OPC_MoveChild, 13, ++/*345230*/ OPC_CheckInteger, 1, ++/*345232*/ OPC_CheckType, MVT::i32, ++/*345234*/ OPC_MoveParent, ++/*345235*/ OPC_MoveChild, 14, ++/*345237*/ OPC_CheckInteger, 1, ++/*345239*/ OPC_CheckType, MVT::i32, ++/*345241*/ OPC_MoveParent, ++/*345242*/ OPC_MoveChild, 15, ++/*345244*/ OPC_CheckInteger, 1, ++/*345246*/ OPC_CheckType, MVT::i32, ++/*345248*/ OPC_MoveParent, ++/*345249*/ OPC_CheckType, MVT::v16i8, ++/*345251*/ OPC_MoveParent, ++/*345252*/ OPC_CheckType, MVT::v16i8, ++/*345254*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*345256*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*345264*/ 0, /*End of Scope*/ ++/*345265*/ /*Scope*/ 91|128,2/*347*/, /*->345614*/ ++/*345267*/ OPC_MoveChild0, ++/*345268*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*345271*/ OPC_CheckChild0Integer, 1, ++/*345273*/ OPC_CheckChild0Type, MVT::i32, ++/*345275*/ OPC_CheckChild1Integer, 1, ++/*345277*/ OPC_CheckChild1Type, MVT::i32, ++/*345279*/ OPC_CheckChild2Integer, 1, ++/*345281*/ OPC_CheckChild2Type, MVT::i32, ++/*345283*/ OPC_CheckChild3Integer, 1, ++/*345285*/ OPC_CheckChild3Type, MVT::i32, ++/*345287*/ OPC_CheckChild4Integer, 1, ++/*345289*/ OPC_CheckChild4Type, MVT::i32, ++/*345291*/ OPC_MoveChild5, ++/*345292*/ OPC_CheckInteger, 1, ++/*345294*/ OPC_CheckType, MVT::i32, ++/*345296*/ OPC_MoveParent, ++/*345297*/ OPC_MoveChild6, ++/*345298*/ OPC_CheckInteger, 1, ++/*345300*/ OPC_CheckType, MVT::i32, ++/*345302*/ OPC_MoveParent, ++/*345303*/ OPC_MoveChild7, ++/*345304*/ OPC_CheckInteger, 1, ++/*345306*/ OPC_CheckType, MVT::i32, ++/*345308*/ OPC_MoveParent, ++/*345309*/ OPC_MoveChild, 8, ++/*345311*/ OPC_CheckInteger, 1, ++/*345313*/ OPC_CheckType, MVT::i32, ++/*345315*/ OPC_MoveParent, ++/*345316*/ OPC_MoveChild, 9, ++/*345318*/ OPC_CheckInteger, 1, ++/*345320*/ OPC_CheckType, MVT::i32, ++/*345322*/ OPC_MoveParent, ++/*345323*/ OPC_MoveChild, 10, ++/*345325*/ OPC_CheckInteger, 1, ++/*345327*/ OPC_CheckType, MVT::i32, ++/*345329*/ OPC_MoveParent, ++/*345330*/ OPC_MoveChild, 11, ++/*345332*/ OPC_CheckInteger, 1, ++/*345334*/ OPC_CheckType, MVT::i32, ++/*345336*/ OPC_MoveParent, ++/*345337*/ OPC_MoveChild, 12, ++/*345339*/ OPC_CheckInteger, 1, ++/*345341*/ OPC_CheckType, MVT::i32, ++/*345343*/ OPC_MoveParent, ++/*345344*/ OPC_MoveChild, 13, ++/*345346*/ OPC_CheckInteger, 1, ++/*345348*/ OPC_CheckType, MVT::i32, ++/*345350*/ OPC_MoveParent, ++/*345351*/ OPC_MoveChild, 14, ++/*345353*/ OPC_CheckInteger, 1, ++/*345355*/ OPC_CheckType, MVT::i32, ++/*345357*/ OPC_MoveParent, ++/*345358*/ OPC_MoveChild, 15, ++/*345360*/ OPC_CheckInteger, 1, ++/*345362*/ OPC_CheckType, MVT::i32, ++/*345364*/ OPC_MoveParent, ++/*345365*/ OPC_MoveParent, ++/*345366*/ OPC_MoveChild1, ++/*345367*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*345370*/ OPC_Scope, 120, /*->345492*/ // 2 children in Scope ++/*345372*/ OPC_CheckChild0Same, 0, ++/*345374*/ OPC_CheckChild1Same, 1, ++/*345376*/ OPC_MoveParent, ++/*345377*/ OPC_MoveParent, ++/*345378*/ OPC_MoveParent, ++/*345379*/ OPC_MoveChild1, ++/*345380*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*345383*/ OPC_CheckChild0Integer, 1, ++/*345385*/ OPC_CheckChild0Type, MVT::i32, ++/*345387*/ OPC_CheckChild1Integer, 1, ++/*345389*/ OPC_CheckChild1Type, MVT::i32, ++/*345391*/ OPC_CheckChild2Integer, 1, ++/*345393*/ OPC_CheckChild2Type, MVT::i32, ++/*345395*/ OPC_CheckChild3Integer, 1, ++/*345397*/ OPC_CheckChild3Type, MVT::i32, ++/*345399*/ OPC_CheckChild4Integer, 1, ++/*345401*/ OPC_CheckChild4Type, MVT::i32, ++/*345403*/ OPC_MoveChild5, ++/*345404*/ OPC_CheckInteger, 1, ++/*345406*/ OPC_CheckType, MVT::i32, ++/*345408*/ OPC_MoveParent, ++/*345409*/ OPC_MoveChild6, ++/*345410*/ OPC_CheckInteger, 1, ++/*345412*/ OPC_CheckType, MVT::i32, ++/*345414*/ OPC_MoveParent, ++/*345415*/ OPC_MoveChild7, ++/*345416*/ OPC_CheckInteger, 1, ++/*345418*/ OPC_CheckType, MVT::i32, ++/*345420*/ OPC_MoveParent, ++/*345421*/ OPC_MoveChild, 8, ++/*345423*/ OPC_CheckInteger, 1, ++/*345425*/ OPC_CheckType, MVT::i32, ++/*345427*/ OPC_MoveParent, ++/*345428*/ OPC_MoveChild, 9, ++/*345430*/ OPC_CheckInteger, 1, ++/*345432*/ OPC_CheckType, MVT::i32, ++/*345434*/ OPC_MoveParent, ++/*345435*/ OPC_MoveChild, 10, ++/*345437*/ OPC_CheckInteger, 1, ++/*345439*/ OPC_CheckType, MVT::i32, ++/*345441*/ OPC_MoveParent, ++/*345442*/ OPC_MoveChild, 11, ++/*345444*/ OPC_CheckInteger, 1, ++/*345446*/ OPC_CheckType, MVT::i32, ++/*345448*/ OPC_MoveParent, ++/*345449*/ OPC_MoveChild, 12, ++/*345451*/ OPC_CheckInteger, 1, ++/*345453*/ OPC_CheckType, MVT::i32, ++/*345455*/ OPC_MoveParent, ++/*345456*/ OPC_MoveChild, 13, ++/*345458*/ OPC_CheckInteger, 1, ++/*345460*/ OPC_CheckType, MVT::i32, ++/*345462*/ OPC_MoveParent, ++/*345463*/ OPC_MoveChild, 14, ++/*345465*/ OPC_CheckInteger, 1, ++/*345467*/ OPC_CheckType, MVT::i32, ++/*345469*/ OPC_MoveParent, ++/*345470*/ OPC_MoveChild, 15, ++/*345472*/ OPC_CheckInteger, 1, ++/*345474*/ OPC_CheckType, MVT::i32, ++/*345476*/ OPC_MoveParent, ++/*345477*/ OPC_CheckType, MVT::v16i8, ++/*345479*/ OPC_MoveParent, ++/*345480*/ OPC_CheckType, MVT::v16i8, ++/*345482*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*345484*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*345492*/ /*Scope*/ 120, /*->345613*/ ++/*345493*/ OPC_CheckChild0Same, 1, ++/*345495*/ OPC_CheckChild1Same, 0, ++/*345497*/ OPC_MoveParent, ++/*345498*/ OPC_MoveParent, ++/*345499*/ OPC_MoveParent, ++/*345500*/ OPC_MoveChild1, ++/*345501*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*345504*/ OPC_CheckChild0Integer, 1, ++/*345506*/ OPC_CheckChild0Type, MVT::i32, ++/*345508*/ OPC_CheckChild1Integer, 1, ++/*345510*/ OPC_CheckChild1Type, MVT::i32, ++/*345512*/ OPC_CheckChild2Integer, 1, ++/*345514*/ OPC_CheckChild2Type, MVT::i32, ++/*345516*/ OPC_CheckChild3Integer, 1, ++/*345518*/ OPC_CheckChild3Type, MVT::i32, ++/*345520*/ OPC_CheckChild4Integer, 1, ++/*345522*/ OPC_CheckChild4Type, MVT::i32, ++/*345524*/ OPC_MoveChild5, ++/*345525*/ OPC_CheckInteger, 1, ++/*345527*/ OPC_CheckType, MVT::i32, ++/*345529*/ OPC_MoveParent, ++/*345530*/ OPC_MoveChild6, ++/*345531*/ OPC_CheckInteger, 1, ++/*345533*/ OPC_CheckType, MVT::i32, ++/*345535*/ OPC_MoveParent, ++/*345536*/ OPC_MoveChild7, ++/*345537*/ OPC_CheckInteger, 1, ++/*345539*/ OPC_CheckType, MVT::i32, ++/*345541*/ OPC_MoveParent, ++/*345542*/ OPC_MoveChild, 8, ++/*345544*/ OPC_CheckInteger, 1, ++/*345546*/ OPC_CheckType, MVT::i32, ++/*345548*/ OPC_MoveParent, ++/*345549*/ OPC_MoveChild, 9, ++/*345551*/ OPC_CheckInteger, 1, ++/*345553*/ OPC_CheckType, MVT::i32, ++/*345555*/ OPC_MoveParent, ++/*345556*/ OPC_MoveChild, 10, ++/*345558*/ OPC_CheckInteger, 1, ++/*345560*/ OPC_CheckType, MVT::i32, ++/*345562*/ OPC_MoveParent, ++/*345563*/ OPC_MoveChild, 11, ++/*345565*/ OPC_CheckInteger, 1, ++/*345567*/ OPC_CheckType, MVT::i32, ++/*345569*/ OPC_MoveParent, ++/*345570*/ OPC_MoveChild, 12, ++/*345572*/ OPC_CheckInteger, 1, ++/*345574*/ OPC_CheckType, MVT::i32, ++/*345576*/ OPC_MoveParent, ++/*345577*/ OPC_MoveChild, 13, ++/*345579*/ OPC_CheckInteger, 1, ++/*345581*/ OPC_CheckType, MVT::i32, ++/*345583*/ OPC_MoveParent, ++/*345584*/ OPC_MoveChild, 14, ++/*345586*/ OPC_CheckInteger, 1, ++/*345588*/ OPC_CheckType, MVT::i32, ++/*345590*/ OPC_MoveParent, ++/*345591*/ OPC_MoveChild, 15, ++/*345593*/ OPC_CheckInteger, 1, ++/*345595*/ OPC_CheckType, MVT::i32, ++/*345597*/ OPC_MoveParent, ++/*345598*/ OPC_CheckType, MVT::v16i8, ++/*345600*/ OPC_MoveParent, ++/*345601*/ OPC_CheckType, MVT::v16i8, ++/*345603*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*345605*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*345613*/ 0, /*End of Scope*/ ++/*345614*/ 0, /*End of Scope*/ ++/*345615*/ /*Scope*/ 102|128,21/*2790*/, /*->348407*/ ++/*345617*/ OPC_MoveChild0, ++/*345618*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*345621*/ OPC_CheckChild0Integer, 1, ++/*345623*/ OPC_CheckChild0Type, MVT::i32, ++/*345625*/ OPC_CheckChild1Integer, 1, ++/*345627*/ OPC_CheckChild1Type, MVT::i32, ++/*345629*/ OPC_CheckChild2Integer, 1, ++/*345631*/ OPC_CheckChild2Type, MVT::i32, ++/*345633*/ OPC_CheckChild3Integer, 1, ++/*345635*/ OPC_CheckChild3Type, MVT::i32, ++/*345637*/ OPC_CheckChild4Integer, 1, ++/*345639*/ OPC_CheckChild4Type, MVT::i32, ++/*345641*/ OPC_MoveChild5, ++/*345642*/ OPC_CheckInteger, 1, ++/*345644*/ OPC_CheckType, MVT::i32, ++/*345646*/ OPC_MoveParent, ++/*345647*/ OPC_MoveChild6, ++/*345648*/ OPC_CheckInteger, 1, ++/*345650*/ OPC_CheckType, MVT::i32, ++/*345652*/ OPC_MoveParent, ++/*345653*/ OPC_MoveChild7, ++/*345654*/ OPC_CheckInteger, 1, ++/*345656*/ OPC_CheckType, MVT::i32, ++/*345658*/ OPC_MoveParent, ++/*345659*/ OPC_MoveChild, 8, ++/*345661*/ OPC_CheckInteger, 1, ++/*345663*/ OPC_CheckType, MVT::i32, ++/*345665*/ OPC_MoveParent, ++/*345666*/ OPC_MoveChild, 9, ++/*345668*/ OPC_CheckInteger, 1, ++/*345670*/ OPC_CheckType, MVT::i32, ++/*345672*/ OPC_MoveParent, ++/*345673*/ OPC_MoveChild, 10, ++/*345675*/ OPC_CheckInteger, 1, ++/*345677*/ OPC_CheckType, MVT::i32, ++/*345679*/ OPC_MoveParent, ++/*345680*/ OPC_MoveChild, 11, ++/*345682*/ OPC_CheckInteger, 1, ++/*345684*/ OPC_CheckType, MVT::i32, ++/*345686*/ OPC_MoveParent, ++/*345687*/ OPC_MoveChild, 12, ++/*345689*/ OPC_CheckInteger, 1, ++/*345691*/ OPC_CheckType, MVT::i32, ++/*345693*/ OPC_MoveParent, ++/*345694*/ OPC_MoveChild, 13, ++/*345696*/ OPC_CheckInteger, 1, ++/*345698*/ OPC_CheckType, MVT::i32, ++/*345700*/ OPC_MoveParent, ++/*345701*/ OPC_MoveChild, 14, ++/*345703*/ OPC_CheckInteger, 1, ++/*345705*/ OPC_CheckType, MVT::i32, ++/*345707*/ OPC_MoveParent, ++/*345708*/ OPC_MoveChild, 15, ++/*345710*/ OPC_CheckInteger, 1, ++/*345712*/ OPC_CheckType, MVT::i32, ++/*345714*/ OPC_MoveParent, ++/*345715*/ OPC_MoveParent, ++/*345716*/ OPC_RecordChild1, // #0 = $b ++/*345717*/ OPC_MoveParent, ++/*345718*/ OPC_RecordChild1, // #1 = $a ++/*345719*/ OPC_MoveParent, ++/*345720*/ OPC_MoveChild1, ++/*345721*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*345724*/ OPC_CheckChild0Integer, 7, ++/*345726*/ OPC_CheckChild0Type, MVT::i32, ++/*345728*/ OPC_CheckChild1Integer, 7, ++/*345730*/ OPC_CheckChild1Type, MVT::i32, ++/*345732*/ OPC_CheckChild2Integer, 7, ++/*345734*/ OPC_CheckChild2Type, MVT::i32, ++/*345736*/ OPC_CheckChild3Integer, 7, ++/*345738*/ OPC_CheckChild3Type, MVT::i32, ++/*345740*/ OPC_CheckChild4Integer, 7, ++/*345742*/ OPC_CheckChild4Type, MVT::i32, ++/*345744*/ OPC_MoveChild5, ++/*345745*/ OPC_CheckInteger, 7, ++/*345747*/ OPC_CheckType, MVT::i32, ++/*345749*/ OPC_MoveParent, ++/*345750*/ OPC_MoveChild6, ++/*345751*/ OPC_CheckInteger, 7, ++/*345753*/ OPC_CheckType, MVT::i32, ++/*345755*/ OPC_MoveParent, ++/*345756*/ OPC_MoveChild7, ++/*345757*/ OPC_CheckInteger, 7, ++/*345759*/ OPC_CheckType, MVT::i32, ++/*345761*/ OPC_MoveParent, ++/*345762*/ OPC_MoveChild, 8, ++/*345764*/ OPC_CheckInteger, 7, ++/*345766*/ OPC_CheckType, MVT::i32, ++/*345768*/ OPC_MoveParent, ++/*345769*/ OPC_MoveChild, 9, ++/*345771*/ OPC_CheckInteger, 7, ++/*345773*/ OPC_CheckType, MVT::i32, ++/*345775*/ OPC_MoveParent, ++/*345776*/ OPC_MoveChild, 10, ++/*345778*/ OPC_CheckInteger, 7, ++/*345780*/ OPC_CheckType, MVT::i32, ++/*345782*/ OPC_MoveParent, ++/*345783*/ OPC_MoveChild, 11, ++/*345785*/ OPC_CheckInteger, 7, ++/*345787*/ OPC_CheckType, MVT::i32, ++/*345789*/ OPC_MoveParent, ++/*345790*/ OPC_MoveChild, 12, ++/*345792*/ OPC_CheckInteger, 7, ++/*345794*/ OPC_CheckType, MVT::i32, ++/*345796*/ OPC_MoveParent, ++/*345797*/ OPC_MoveChild, 13, ++/*345799*/ OPC_CheckInteger, 7, ++/*345801*/ OPC_CheckType, MVT::i32, ++/*345803*/ OPC_MoveParent, ++/*345804*/ OPC_MoveChild, 14, ++/*345806*/ OPC_CheckInteger, 7, ++/*345808*/ OPC_CheckType, MVT::i32, ++/*345810*/ OPC_MoveParent, ++/*345811*/ OPC_MoveChild, 15, ++/*345813*/ OPC_CheckInteger, 7, ++/*345815*/ OPC_CheckType, MVT::i32, ++/*345817*/ OPC_MoveParent, ++/*345818*/ OPC_CheckType, MVT::v16i8, ++/*345820*/ OPC_MoveParent, ++/*345821*/ OPC_MoveParent, ++/*345822*/ OPC_MoveChild1, ++/*345823*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*345826*/ OPC_Scope, 52|128,10/*1332*/, /*->347161*/ // 4 children in Scope ++/*345829*/ OPC_MoveChild0, ++/*345830*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*345833*/ OPC_Scope, 91|128,1/*219*/, /*->346055*/ // 6 children in Scope ++/*345836*/ OPC_MoveChild0, ++/*345837*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*345840*/ OPC_CheckChild0Integer, 1, ++/*345842*/ OPC_CheckChild0Type, MVT::i32, ++/*345844*/ OPC_CheckChild1Integer, 1, ++/*345846*/ OPC_CheckChild1Type, MVT::i32, ++/*345848*/ OPC_CheckChild2Integer, 1, ++/*345850*/ OPC_CheckChild2Type, MVT::i32, ++/*345852*/ OPC_CheckChild3Integer, 1, ++/*345854*/ OPC_CheckChild3Type, MVT::i32, ++/*345856*/ OPC_CheckChild4Integer, 1, ++/*345858*/ OPC_CheckChild4Type, MVT::i32, ++/*345860*/ OPC_MoveChild5, ++/*345861*/ OPC_CheckInteger, 1, ++/*345863*/ OPC_CheckType, MVT::i32, ++/*345865*/ OPC_MoveParent, ++/*345866*/ OPC_MoveChild6, ++/*345867*/ OPC_CheckInteger, 1, ++/*345869*/ OPC_CheckType, MVT::i32, ++/*345871*/ OPC_MoveParent, ++/*345872*/ OPC_MoveChild7, ++/*345873*/ OPC_CheckInteger, 1, ++/*345875*/ OPC_CheckType, MVT::i32, ++/*345877*/ OPC_MoveParent, ++/*345878*/ OPC_MoveChild, 8, ++/*345880*/ OPC_CheckInteger, 1, ++/*345882*/ OPC_CheckType, MVT::i32, ++/*345884*/ OPC_MoveParent, ++/*345885*/ OPC_MoveChild, 9, ++/*345887*/ OPC_CheckInteger, 1, ++/*345889*/ OPC_CheckType, MVT::i32, ++/*345891*/ OPC_MoveParent, ++/*345892*/ OPC_MoveChild, 10, ++/*345894*/ OPC_CheckInteger, 1, ++/*345896*/ OPC_CheckType, MVT::i32, ++/*345898*/ OPC_MoveParent, ++/*345899*/ OPC_MoveChild, 11, ++/*345901*/ OPC_CheckInteger, 1, ++/*345903*/ OPC_CheckType, MVT::i32, ++/*345905*/ OPC_MoveParent, ++/*345906*/ OPC_MoveChild, 12, ++/*345908*/ OPC_CheckInteger, 1, ++/*345910*/ OPC_CheckType, MVT::i32, ++/*345912*/ OPC_MoveParent, ++/*345913*/ OPC_MoveChild, 13, ++/*345915*/ OPC_CheckInteger, 1, ++/*345917*/ OPC_CheckType, MVT::i32, ++/*345919*/ OPC_MoveParent, ++/*345920*/ OPC_MoveChild, 14, ++/*345922*/ OPC_CheckInteger, 1, ++/*345924*/ OPC_CheckType, MVT::i32, ++/*345926*/ OPC_MoveParent, ++/*345927*/ OPC_MoveChild, 15, ++/*345929*/ OPC_CheckInteger, 1, ++/*345931*/ OPC_CheckType, MVT::i32, ++/*345933*/ OPC_MoveParent, ++/*345934*/ OPC_MoveParent, ++/*345935*/ OPC_CheckChild1Same, 1, ++/*345937*/ OPC_MoveParent, ++/*345938*/ OPC_CheckChild1Same, 0, ++/*345940*/ OPC_MoveParent, ++/*345941*/ OPC_MoveParent, ++/*345942*/ OPC_MoveChild1, ++/*345943*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*345946*/ OPC_CheckChild0Integer, 1, ++/*345948*/ OPC_CheckChild0Type, MVT::i32, ++/*345950*/ OPC_CheckChild1Integer, 1, ++/*345952*/ OPC_CheckChild1Type, MVT::i32, ++/*345954*/ OPC_CheckChild2Integer, 1, ++/*345956*/ OPC_CheckChild2Type, MVT::i32, ++/*345958*/ OPC_CheckChild3Integer, 1, ++/*345960*/ OPC_CheckChild3Type, MVT::i32, ++/*345962*/ OPC_CheckChild4Integer, 1, ++/*345964*/ OPC_CheckChild4Type, MVT::i32, ++/*345966*/ OPC_MoveChild5, ++/*345967*/ OPC_CheckInteger, 1, ++/*345969*/ OPC_CheckType, MVT::i32, ++/*345971*/ OPC_MoveParent, ++/*345972*/ OPC_MoveChild6, ++/*345973*/ OPC_CheckInteger, 1, ++/*345975*/ OPC_CheckType, MVT::i32, ++/*345977*/ OPC_MoveParent, ++/*345978*/ OPC_MoveChild7, ++/*345979*/ OPC_CheckInteger, 1, ++/*345981*/ OPC_CheckType, MVT::i32, ++/*345983*/ OPC_MoveParent, ++/*345984*/ OPC_MoveChild, 8, ++/*345986*/ OPC_CheckInteger, 1, ++/*345988*/ OPC_CheckType, MVT::i32, ++/*345990*/ OPC_MoveParent, ++/*345991*/ OPC_MoveChild, 9, ++/*345993*/ OPC_CheckInteger, 1, ++/*345995*/ OPC_CheckType, MVT::i32, ++/*345997*/ OPC_MoveParent, ++/*345998*/ OPC_MoveChild, 10, ++/*346000*/ OPC_CheckInteger, 1, ++/*346002*/ OPC_CheckType, MVT::i32, ++/*346004*/ OPC_MoveParent, ++/*346005*/ OPC_MoveChild, 11, ++/*346007*/ OPC_CheckInteger, 1, ++/*346009*/ OPC_CheckType, MVT::i32, ++/*346011*/ OPC_MoveParent, ++/*346012*/ OPC_MoveChild, 12, ++/*346014*/ OPC_CheckInteger, 1, ++/*346016*/ OPC_CheckType, MVT::i32, ++/*346018*/ OPC_MoveParent, ++/*346019*/ OPC_MoveChild, 13, ++/*346021*/ OPC_CheckInteger, 1, ++/*346023*/ OPC_CheckType, MVT::i32, ++/*346025*/ OPC_MoveParent, ++/*346026*/ OPC_MoveChild, 14, ++/*346028*/ OPC_CheckInteger, 1, ++/*346030*/ OPC_CheckType, MVT::i32, ++/*346032*/ OPC_MoveParent, ++/*346033*/ OPC_MoveChild, 15, ++/*346035*/ OPC_CheckInteger, 1, ++/*346037*/ OPC_CheckType, MVT::i32, ++/*346039*/ OPC_MoveParent, ++/*346040*/ OPC_CheckType, MVT::v16i8, ++/*346042*/ OPC_MoveParent, ++/*346043*/ OPC_CheckType, MVT::v16i8, ++/*346045*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*346047*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b), LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a), LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*346055*/ /*Scope*/ 91|128,1/*219*/, /*->346276*/ ++/*346057*/ OPC_CheckChild0Same, 1, ++/*346059*/ OPC_MoveChild1, ++/*346060*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*346063*/ OPC_CheckChild0Integer, 1, ++/*346065*/ OPC_CheckChild0Type, MVT::i32, ++/*346067*/ OPC_CheckChild1Integer, 1, ++/*346069*/ OPC_CheckChild1Type, MVT::i32, ++/*346071*/ OPC_CheckChild2Integer, 1, ++/*346073*/ OPC_CheckChild2Type, MVT::i32, ++/*346075*/ OPC_CheckChild3Integer, 1, ++/*346077*/ OPC_CheckChild3Type, MVT::i32, ++/*346079*/ OPC_CheckChild4Integer, 1, ++/*346081*/ OPC_CheckChild4Type, MVT::i32, ++/*346083*/ OPC_MoveChild5, ++/*346084*/ OPC_CheckInteger, 1, ++/*346086*/ OPC_CheckType, MVT::i32, ++/*346088*/ OPC_MoveParent, ++/*346089*/ OPC_MoveChild6, ++/*346090*/ OPC_CheckInteger, 1, ++/*346092*/ OPC_CheckType, MVT::i32, ++/*346094*/ OPC_MoveParent, ++/*346095*/ OPC_MoveChild7, ++/*346096*/ OPC_CheckInteger, 1, ++/*346098*/ OPC_CheckType, MVT::i32, ++/*346100*/ OPC_MoveParent, ++/*346101*/ OPC_MoveChild, 8, ++/*346103*/ OPC_CheckInteger, 1, ++/*346105*/ OPC_CheckType, MVT::i32, ++/*346107*/ OPC_MoveParent, ++/*346108*/ OPC_MoveChild, 9, ++/*346110*/ OPC_CheckInteger, 1, ++/*346112*/ OPC_CheckType, MVT::i32, ++/*346114*/ OPC_MoveParent, ++/*346115*/ OPC_MoveChild, 10, ++/*346117*/ OPC_CheckInteger, 1, ++/*346119*/ OPC_CheckType, MVT::i32, ++/*346121*/ OPC_MoveParent, ++/*346122*/ OPC_MoveChild, 11, ++/*346124*/ OPC_CheckInteger, 1, ++/*346126*/ OPC_CheckType, MVT::i32, ++/*346128*/ OPC_MoveParent, ++/*346129*/ OPC_MoveChild, 12, ++/*346131*/ OPC_CheckInteger, 1, ++/*346133*/ OPC_CheckType, MVT::i32, ++/*346135*/ OPC_MoveParent, ++/*346136*/ OPC_MoveChild, 13, ++/*346138*/ OPC_CheckInteger, 1, ++/*346140*/ OPC_CheckType, MVT::i32, ++/*346142*/ OPC_MoveParent, ++/*346143*/ OPC_MoveChild, 14, ++/*346145*/ OPC_CheckInteger, 1, ++/*346147*/ OPC_CheckType, MVT::i32, ++/*346149*/ OPC_MoveParent, ++/*346150*/ OPC_MoveChild, 15, ++/*346152*/ OPC_CheckInteger, 1, ++/*346154*/ OPC_CheckType, MVT::i32, ++/*346156*/ OPC_MoveParent, ++/*346157*/ OPC_MoveParent, ++/*346158*/ OPC_MoveParent, ++/*346159*/ OPC_CheckChild1Same, 0, ++/*346161*/ OPC_MoveParent, ++/*346162*/ OPC_MoveParent, ++/*346163*/ OPC_MoveChild1, ++/*346164*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*346167*/ OPC_CheckChild0Integer, 1, ++/*346169*/ OPC_CheckChild0Type, MVT::i32, ++/*346171*/ OPC_CheckChild1Integer, 1, ++/*346173*/ OPC_CheckChild1Type, MVT::i32, ++/*346175*/ OPC_CheckChild2Integer, 1, ++/*346177*/ OPC_CheckChild2Type, MVT::i32, ++/*346179*/ OPC_CheckChild3Integer, 1, ++/*346181*/ OPC_CheckChild3Type, MVT::i32, ++/*346183*/ OPC_CheckChild4Integer, 1, ++/*346185*/ OPC_CheckChild4Type, MVT::i32, ++/*346187*/ OPC_MoveChild5, ++/*346188*/ OPC_CheckInteger, 1, ++/*346190*/ OPC_CheckType, MVT::i32, ++/*346192*/ OPC_MoveParent, ++/*346193*/ OPC_MoveChild6, ++/*346194*/ OPC_CheckInteger, 1, ++/*346196*/ OPC_CheckType, MVT::i32, ++/*346198*/ OPC_MoveParent, ++/*346199*/ OPC_MoveChild7, ++/*346200*/ OPC_CheckInteger, 1, ++/*346202*/ OPC_CheckType, MVT::i32, ++/*346204*/ OPC_MoveParent, ++/*346205*/ OPC_MoveChild, 8, ++/*346207*/ OPC_CheckInteger, 1, ++/*346209*/ OPC_CheckType, MVT::i32, ++/*346211*/ OPC_MoveParent, ++/*346212*/ OPC_MoveChild, 9, ++/*346214*/ OPC_CheckInteger, 1, ++/*346216*/ OPC_CheckType, MVT::i32, ++/*346218*/ OPC_MoveParent, ++/*346219*/ OPC_MoveChild, 10, ++/*346221*/ OPC_CheckInteger, 1, ++/*346223*/ OPC_CheckType, MVT::i32, ++/*346225*/ OPC_MoveParent, ++/*346226*/ OPC_MoveChild, 11, ++/*346228*/ OPC_CheckInteger, 1, ++/*346230*/ OPC_CheckType, MVT::i32, ++/*346232*/ OPC_MoveParent, ++/*346233*/ OPC_MoveChild, 12, ++/*346235*/ OPC_CheckInteger, 1, ++/*346237*/ OPC_CheckType, MVT::i32, ++/*346239*/ OPC_MoveParent, ++/*346240*/ OPC_MoveChild, 13, ++/*346242*/ OPC_CheckInteger, 1, ++/*346244*/ OPC_CheckType, MVT::i32, ++/*346246*/ OPC_MoveParent, ++/*346247*/ OPC_MoveChild, 14, ++/*346249*/ OPC_CheckInteger, 1, ++/*346251*/ OPC_CheckType, MVT::i32, ++/*346253*/ OPC_MoveParent, ++/*346254*/ OPC_MoveChild, 15, ++/*346256*/ OPC_CheckInteger, 1, ++/*346258*/ OPC_CheckType, MVT::i32, ++/*346260*/ OPC_MoveParent, ++/*346261*/ OPC_CheckType, MVT::v16i8, ++/*346263*/ OPC_MoveParent, ++/*346264*/ OPC_CheckType, MVT::v16i8, ++/*346266*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*346268*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b), LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*346276*/ /*Scope*/ 91|128,1/*219*/, /*->346497*/ ++/*346278*/ OPC_MoveChild0, ++/*346279*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*346282*/ OPC_CheckChild0Integer, 1, ++/*346284*/ OPC_CheckChild0Type, MVT::i32, ++/*346286*/ OPC_CheckChild1Integer, 1, ++/*346288*/ OPC_CheckChild1Type, MVT::i32, ++/*346290*/ OPC_CheckChild2Integer, 1, ++/*346292*/ OPC_CheckChild2Type, MVT::i32, ++/*346294*/ OPC_CheckChild3Integer, 1, ++/*346296*/ OPC_CheckChild3Type, MVT::i32, ++/*346298*/ OPC_CheckChild4Integer, 1, ++/*346300*/ OPC_CheckChild4Type, MVT::i32, ++/*346302*/ OPC_MoveChild5, ++/*346303*/ OPC_CheckInteger, 1, ++/*346305*/ OPC_CheckType, MVT::i32, ++/*346307*/ OPC_MoveParent, ++/*346308*/ OPC_MoveChild6, ++/*346309*/ OPC_CheckInteger, 1, ++/*346311*/ OPC_CheckType, MVT::i32, ++/*346313*/ OPC_MoveParent, ++/*346314*/ OPC_MoveChild7, ++/*346315*/ OPC_CheckInteger, 1, ++/*346317*/ OPC_CheckType, MVT::i32, ++/*346319*/ OPC_MoveParent, ++/*346320*/ OPC_MoveChild, 8, ++/*346322*/ OPC_CheckInteger, 1, ++/*346324*/ OPC_CheckType, MVT::i32, ++/*346326*/ OPC_MoveParent, ++/*346327*/ OPC_MoveChild, 9, ++/*346329*/ OPC_CheckInteger, 1, ++/*346331*/ OPC_CheckType, MVT::i32, ++/*346333*/ OPC_MoveParent, ++/*346334*/ OPC_MoveChild, 10, ++/*346336*/ OPC_CheckInteger, 1, ++/*346338*/ OPC_CheckType, MVT::i32, ++/*346340*/ OPC_MoveParent, ++/*346341*/ OPC_MoveChild, 11, ++/*346343*/ OPC_CheckInteger, 1, ++/*346345*/ OPC_CheckType, MVT::i32, ++/*346347*/ OPC_MoveParent, ++/*346348*/ OPC_MoveChild, 12, ++/*346350*/ OPC_CheckInteger, 1, ++/*346352*/ OPC_CheckType, MVT::i32, ++/*346354*/ OPC_MoveParent, ++/*346355*/ OPC_MoveChild, 13, ++/*346357*/ OPC_CheckInteger, 1, ++/*346359*/ OPC_CheckType, MVT::i32, ++/*346361*/ OPC_MoveParent, ++/*346362*/ OPC_MoveChild, 14, ++/*346364*/ OPC_CheckInteger, 1, ++/*346366*/ OPC_CheckType, MVT::i32, ++/*346368*/ OPC_MoveParent, ++/*346369*/ OPC_MoveChild, 15, ++/*346371*/ OPC_CheckInteger, 1, ++/*346373*/ OPC_CheckType, MVT::i32, ++/*346375*/ OPC_MoveParent, ++/*346376*/ OPC_MoveParent, ++/*346377*/ OPC_CheckChild1Same, 0, ++/*346379*/ OPC_MoveParent, ++/*346380*/ OPC_CheckChild1Same, 1, ++/*346382*/ OPC_MoveParent, ++/*346383*/ OPC_MoveParent, ++/*346384*/ OPC_MoveChild1, ++/*346385*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*346388*/ OPC_CheckChild0Integer, 1, ++/*346390*/ OPC_CheckChild0Type, MVT::i32, ++/*346392*/ OPC_CheckChild1Integer, 1, ++/*346394*/ OPC_CheckChild1Type, MVT::i32, ++/*346396*/ OPC_CheckChild2Integer, 1, ++/*346398*/ OPC_CheckChild2Type, MVT::i32, ++/*346400*/ OPC_CheckChild3Integer, 1, ++/*346402*/ OPC_CheckChild3Type, MVT::i32, ++/*346404*/ OPC_CheckChild4Integer, 1, ++/*346406*/ OPC_CheckChild4Type, MVT::i32, ++/*346408*/ OPC_MoveChild5, ++/*346409*/ OPC_CheckInteger, 1, ++/*346411*/ OPC_CheckType, MVT::i32, ++/*346413*/ OPC_MoveParent, ++/*346414*/ OPC_MoveChild6, ++/*346415*/ OPC_CheckInteger, 1, ++/*346417*/ OPC_CheckType, MVT::i32, ++/*346419*/ OPC_MoveParent, ++/*346420*/ OPC_MoveChild7, ++/*346421*/ OPC_CheckInteger, 1, ++/*346423*/ OPC_CheckType, MVT::i32, ++/*346425*/ OPC_MoveParent, ++/*346426*/ OPC_MoveChild, 8, ++/*346428*/ OPC_CheckInteger, 1, ++/*346430*/ OPC_CheckType, MVT::i32, ++/*346432*/ OPC_MoveParent, ++/*346433*/ OPC_MoveChild, 9, ++/*346435*/ OPC_CheckInteger, 1, ++/*346437*/ OPC_CheckType, MVT::i32, ++/*346439*/ OPC_MoveParent, ++/*346440*/ OPC_MoveChild, 10, ++/*346442*/ OPC_CheckInteger, 1, ++/*346444*/ OPC_CheckType, MVT::i32, ++/*346446*/ OPC_MoveParent, ++/*346447*/ OPC_MoveChild, 11, ++/*346449*/ OPC_CheckInteger, 1, ++/*346451*/ OPC_CheckType, MVT::i32, ++/*346453*/ OPC_MoveParent, ++/*346454*/ OPC_MoveChild, 12, ++/*346456*/ OPC_CheckInteger, 1, ++/*346458*/ OPC_CheckType, MVT::i32, ++/*346460*/ OPC_MoveParent, ++/*346461*/ OPC_MoveChild, 13, ++/*346463*/ OPC_CheckInteger, 1, ++/*346465*/ OPC_CheckType, MVT::i32, ++/*346467*/ OPC_MoveParent, ++/*346468*/ OPC_MoveChild, 14, ++/*346470*/ OPC_CheckInteger, 1, ++/*346472*/ OPC_CheckType, MVT::i32, ++/*346474*/ OPC_MoveParent, ++/*346475*/ OPC_MoveChild, 15, ++/*346477*/ OPC_CheckInteger, 1, ++/*346479*/ OPC_CheckType, MVT::i32, ++/*346481*/ OPC_MoveParent, ++/*346482*/ OPC_CheckType, MVT::v16i8, ++/*346484*/ OPC_MoveParent, ++/*346485*/ OPC_CheckType, MVT::v16i8, ++/*346487*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*346489*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b), LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b), LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*346497*/ /*Scope*/ 91|128,1/*219*/, /*->346718*/ ++/*346499*/ OPC_CheckChild0Same, 0, ++/*346501*/ OPC_MoveChild1, ++/*346502*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*346505*/ OPC_CheckChild0Integer, 1, ++/*346507*/ OPC_CheckChild0Type, MVT::i32, ++/*346509*/ OPC_CheckChild1Integer, 1, ++/*346511*/ OPC_CheckChild1Type, MVT::i32, ++/*346513*/ OPC_CheckChild2Integer, 1, ++/*346515*/ OPC_CheckChild2Type, MVT::i32, ++/*346517*/ OPC_CheckChild3Integer, 1, ++/*346519*/ OPC_CheckChild3Type, MVT::i32, ++/*346521*/ OPC_CheckChild4Integer, 1, ++/*346523*/ OPC_CheckChild4Type, MVT::i32, ++/*346525*/ OPC_MoveChild5, ++/*346526*/ OPC_CheckInteger, 1, ++/*346528*/ OPC_CheckType, MVT::i32, ++/*346530*/ OPC_MoveParent, ++/*346531*/ OPC_MoveChild6, ++/*346532*/ OPC_CheckInteger, 1, ++/*346534*/ OPC_CheckType, MVT::i32, ++/*346536*/ OPC_MoveParent, ++/*346537*/ OPC_MoveChild7, ++/*346538*/ OPC_CheckInteger, 1, ++/*346540*/ OPC_CheckType, MVT::i32, ++/*346542*/ OPC_MoveParent, ++/*346543*/ OPC_MoveChild, 8, ++/*346545*/ OPC_CheckInteger, 1, ++/*346547*/ OPC_CheckType, MVT::i32, ++/*346549*/ OPC_MoveParent, ++/*346550*/ OPC_MoveChild, 9, ++/*346552*/ OPC_CheckInteger, 1, ++/*346554*/ OPC_CheckType, MVT::i32, ++/*346556*/ OPC_MoveParent, ++/*346557*/ OPC_MoveChild, 10, ++/*346559*/ OPC_CheckInteger, 1, ++/*346561*/ OPC_CheckType, MVT::i32, ++/*346563*/ OPC_MoveParent, ++/*346564*/ OPC_MoveChild, 11, ++/*346566*/ OPC_CheckInteger, 1, ++/*346568*/ OPC_CheckType, MVT::i32, ++/*346570*/ OPC_MoveParent, ++/*346571*/ OPC_MoveChild, 12, ++/*346573*/ OPC_CheckInteger, 1, ++/*346575*/ OPC_CheckType, MVT::i32, ++/*346577*/ OPC_MoveParent, ++/*346578*/ OPC_MoveChild, 13, ++/*346580*/ OPC_CheckInteger, 1, ++/*346582*/ OPC_CheckType, MVT::i32, ++/*346584*/ OPC_MoveParent, ++/*346585*/ OPC_MoveChild, 14, ++/*346587*/ OPC_CheckInteger, 1, ++/*346589*/ OPC_CheckType, MVT::i32, ++/*346591*/ OPC_MoveParent, ++/*346592*/ OPC_MoveChild, 15, ++/*346594*/ OPC_CheckInteger, 1, ++/*346596*/ OPC_CheckType, MVT::i32, ++/*346598*/ OPC_MoveParent, ++/*346599*/ OPC_MoveParent, ++/*346600*/ OPC_MoveParent, ++/*346601*/ OPC_CheckChild1Same, 1, ++/*346603*/ OPC_MoveParent, ++/*346604*/ OPC_MoveParent, ++/*346605*/ OPC_MoveChild1, ++/*346606*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*346609*/ OPC_CheckChild0Integer, 1, ++/*346611*/ OPC_CheckChild0Type, MVT::i32, ++/*346613*/ OPC_CheckChild1Integer, 1, ++/*346615*/ OPC_CheckChild1Type, MVT::i32, ++/*346617*/ OPC_CheckChild2Integer, 1, ++/*346619*/ OPC_CheckChild2Type, MVT::i32, ++/*346621*/ OPC_CheckChild3Integer, 1, ++/*346623*/ OPC_CheckChild3Type, MVT::i32, ++/*346625*/ OPC_CheckChild4Integer, 1, ++/*346627*/ OPC_CheckChild4Type, MVT::i32, ++/*346629*/ OPC_MoveChild5, ++/*346630*/ OPC_CheckInteger, 1, ++/*346632*/ OPC_CheckType, MVT::i32, ++/*346634*/ OPC_MoveParent, ++/*346635*/ OPC_MoveChild6, ++/*346636*/ OPC_CheckInteger, 1, ++/*346638*/ OPC_CheckType, MVT::i32, ++/*346640*/ OPC_MoveParent, ++/*346641*/ OPC_MoveChild7, ++/*346642*/ OPC_CheckInteger, 1, ++/*346644*/ OPC_CheckType, MVT::i32, ++/*346646*/ OPC_MoveParent, ++/*346647*/ OPC_MoveChild, 8, ++/*346649*/ OPC_CheckInteger, 1, ++/*346651*/ OPC_CheckType, MVT::i32, ++/*346653*/ OPC_MoveParent, ++/*346654*/ OPC_MoveChild, 9, ++/*346656*/ OPC_CheckInteger, 1, ++/*346658*/ OPC_CheckType, MVT::i32, ++/*346660*/ OPC_MoveParent, ++/*346661*/ OPC_MoveChild, 10, ++/*346663*/ OPC_CheckInteger, 1, ++/*346665*/ OPC_CheckType, MVT::i32, ++/*346667*/ OPC_MoveParent, ++/*346668*/ OPC_MoveChild, 11, ++/*346670*/ OPC_CheckInteger, 1, ++/*346672*/ OPC_CheckType, MVT::i32, ++/*346674*/ OPC_MoveParent, ++/*346675*/ OPC_MoveChild, 12, ++/*346677*/ OPC_CheckInteger, 1, ++/*346679*/ OPC_CheckType, MVT::i32, ++/*346681*/ OPC_MoveParent, ++/*346682*/ OPC_MoveChild, 13, ++/*346684*/ OPC_CheckInteger, 1, ++/*346686*/ OPC_CheckType, MVT::i32, ++/*346688*/ OPC_MoveParent, ++/*346689*/ OPC_MoveChild, 14, ++/*346691*/ OPC_CheckInteger, 1, ++/*346693*/ OPC_CheckType, MVT::i32, ++/*346695*/ OPC_MoveParent, ++/*346696*/ OPC_MoveChild, 15, ++/*346698*/ OPC_CheckInteger, 1, ++/*346700*/ OPC_CheckType, MVT::i32, ++/*346702*/ OPC_MoveParent, ++/*346703*/ OPC_CheckType, MVT::v16i8, ++/*346705*/ OPC_MoveParent, ++/*346706*/ OPC_CheckType, MVT::v16i8, ++/*346708*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*346710*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b), LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*346718*/ /*Scope*/ 91|128,1/*219*/, /*->346939*/ ++/*346720*/ OPC_CheckChild0Same, 1, ++/*346722*/ OPC_CheckChild1Same, 0, ++/*346724*/ OPC_MoveParent, ++/*346725*/ OPC_MoveChild1, ++/*346726*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*346729*/ OPC_CheckChild0Integer, 1, ++/*346731*/ OPC_CheckChild0Type, MVT::i32, ++/*346733*/ OPC_CheckChild1Integer, 1, ++/*346735*/ OPC_CheckChild1Type, MVT::i32, ++/*346737*/ OPC_CheckChild2Integer, 1, ++/*346739*/ OPC_CheckChild2Type, MVT::i32, ++/*346741*/ OPC_CheckChild3Integer, 1, ++/*346743*/ OPC_CheckChild3Type, MVT::i32, ++/*346745*/ OPC_CheckChild4Integer, 1, ++/*346747*/ OPC_CheckChild4Type, MVT::i32, ++/*346749*/ OPC_MoveChild5, ++/*346750*/ OPC_CheckInteger, 1, ++/*346752*/ OPC_CheckType, MVT::i32, ++/*346754*/ OPC_MoveParent, ++/*346755*/ OPC_MoveChild6, ++/*346756*/ OPC_CheckInteger, 1, ++/*346758*/ OPC_CheckType, MVT::i32, ++/*346760*/ OPC_MoveParent, ++/*346761*/ OPC_MoveChild7, ++/*346762*/ OPC_CheckInteger, 1, ++/*346764*/ OPC_CheckType, MVT::i32, ++/*346766*/ OPC_MoveParent, ++/*346767*/ OPC_MoveChild, 8, ++/*346769*/ OPC_CheckInteger, 1, ++/*346771*/ OPC_CheckType, MVT::i32, ++/*346773*/ OPC_MoveParent, ++/*346774*/ OPC_MoveChild, 9, ++/*346776*/ OPC_CheckInteger, 1, ++/*346778*/ OPC_CheckType, MVT::i32, ++/*346780*/ OPC_MoveParent, ++/*346781*/ OPC_MoveChild, 10, ++/*346783*/ OPC_CheckInteger, 1, ++/*346785*/ OPC_CheckType, MVT::i32, ++/*346787*/ OPC_MoveParent, ++/*346788*/ OPC_MoveChild, 11, ++/*346790*/ OPC_CheckInteger, 1, ++/*346792*/ OPC_CheckType, MVT::i32, ++/*346794*/ OPC_MoveParent, ++/*346795*/ OPC_MoveChild, 12, ++/*346797*/ OPC_CheckInteger, 1, ++/*346799*/ OPC_CheckType, MVT::i32, ++/*346801*/ OPC_MoveParent, ++/*346802*/ OPC_MoveChild, 13, ++/*346804*/ OPC_CheckInteger, 1, ++/*346806*/ OPC_CheckType, MVT::i32, ++/*346808*/ OPC_MoveParent, ++/*346809*/ OPC_MoveChild, 14, ++/*346811*/ OPC_CheckInteger, 1, ++/*346813*/ OPC_CheckType, MVT::i32, ++/*346815*/ OPC_MoveParent, ++/*346816*/ OPC_MoveChild, 15, ++/*346818*/ OPC_CheckInteger, 1, ++/*346820*/ OPC_CheckType, MVT::i32, ++/*346822*/ OPC_MoveParent, ++/*346823*/ OPC_MoveParent, ++/*346824*/ OPC_MoveParent, ++/*346825*/ OPC_MoveParent, ++/*346826*/ OPC_MoveChild1, ++/*346827*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*346830*/ OPC_CheckChild0Integer, 1, ++/*346832*/ OPC_CheckChild0Type, MVT::i32, ++/*346834*/ OPC_CheckChild1Integer, 1, ++/*346836*/ OPC_CheckChild1Type, MVT::i32, ++/*346838*/ OPC_CheckChild2Integer, 1, ++/*346840*/ OPC_CheckChild2Type, MVT::i32, ++/*346842*/ OPC_CheckChild3Integer, 1, ++/*346844*/ OPC_CheckChild3Type, MVT::i32, ++/*346846*/ OPC_CheckChild4Integer, 1, ++/*346848*/ OPC_CheckChild4Type, MVT::i32, ++/*346850*/ OPC_MoveChild5, ++/*346851*/ OPC_CheckInteger, 1, ++/*346853*/ OPC_CheckType, MVT::i32, ++/*346855*/ OPC_MoveParent, ++/*346856*/ OPC_MoveChild6, ++/*346857*/ OPC_CheckInteger, 1, ++/*346859*/ OPC_CheckType, MVT::i32, ++/*346861*/ OPC_MoveParent, ++/*346862*/ OPC_MoveChild7, ++/*346863*/ OPC_CheckInteger, 1, ++/*346865*/ OPC_CheckType, MVT::i32, ++/*346867*/ OPC_MoveParent, ++/*346868*/ OPC_MoveChild, 8, ++/*346870*/ OPC_CheckInteger, 1, ++/*346872*/ OPC_CheckType, MVT::i32, ++/*346874*/ OPC_MoveParent, ++/*346875*/ OPC_MoveChild, 9, ++/*346877*/ OPC_CheckInteger, 1, ++/*346879*/ OPC_CheckType, MVT::i32, ++/*346881*/ OPC_MoveParent, ++/*346882*/ OPC_MoveChild, 10, ++/*346884*/ OPC_CheckInteger, 1, ++/*346886*/ OPC_CheckType, MVT::i32, ++/*346888*/ OPC_MoveParent, ++/*346889*/ OPC_MoveChild, 11, ++/*346891*/ OPC_CheckInteger, 1, ++/*346893*/ OPC_CheckType, MVT::i32, ++/*346895*/ OPC_MoveParent, ++/*346896*/ OPC_MoveChild, 12, ++/*346898*/ OPC_CheckInteger, 1, ++/*346900*/ OPC_CheckType, MVT::i32, ++/*346902*/ OPC_MoveParent, ++/*346903*/ OPC_MoveChild, 13, ++/*346905*/ OPC_CheckInteger, 1, ++/*346907*/ OPC_CheckType, MVT::i32, ++/*346909*/ OPC_MoveParent, ++/*346910*/ OPC_MoveChild, 14, ++/*346912*/ OPC_CheckInteger, 1, ++/*346914*/ OPC_CheckType, MVT::i32, ++/*346916*/ OPC_MoveParent, ++/*346917*/ OPC_MoveChild, 15, ++/*346919*/ OPC_CheckInteger, 1, ++/*346921*/ OPC_CheckType, MVT::i32, ++/*346923*/ OPC_MoveParent, ++/*346924*/ OPC_CheckType, MVT::v16i8, ++/*346926*/ OPC_MoveParent, ++/*346927*/ OPC_CheckType, MVT::v16i8, ++/*346929*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*346931*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b), LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*346939*/ /*Scope*/ 91|128,1/*219*/, /*->347160*/ ++/*346941*/ OPC_CheckChild0Same, 0, ++/*346943*/ OPC_CheckChild1Same, 1, ++/*346945*/ OPC_MoveParent, ++/*346946*/ OPC_MoveChild1, ++/*346947*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*346950*/ OPC_CheckChild0Integer, 1, ++/*346952*/ OPC_CheckChild0Type, MVT::i32, ++/*346954*/ OPC_CheckChild1Integer, 1, ++/*346956*/ OPC_CheckChild1Type, MVT::i32, ++/*346958*/ OPC_CheckChild2Integer, 1, ++/*346960*/ OPC_CheckChild2Type, MVT::i32, ++/*346962*/ OPC_CheckChild3Integer, 1, ++/*346964*/ OPC_CheckChild3Type, MVT::i32, ++/*346966*/ OPC_CheckChild4Integer, 1, ++/*346968*/ OPC_CheckChild4Type, MVT::i32, ++/*346970*/ OPC_MoveChild5, ++/*346971*/ OPC_CheckInteger, 1, ++/*346973*/ OPC_CheckType, MVT::i32, ++/*346975*/ OPC_MoveParent, ++/*346976*/ OPC_MoveChild6, ++/*346977*/ OPC_CheckInteger, 1, ++/*346979*/ OPC_CheckType, MVT::i32, ++/*346981*/ OPC_MoveParent, ++/*346982*/ OPC_MoveChild7, ++/*346983*/ OPC_CheckInteger, 1, ++/*346985*/ OPC_CheckType, MVT::i32, ++/*346987*/ OPC_MoveParent, ++/*346988*/ OPC_MoveChild, 8, ++/*346990*/ OPC_CheckInteger, 1, ++/*346992*/ OPC_CheckType, MVT::i32, ++/*346994*/ OPC_MoveParent, ++/*346995*/ OPC_MoveChild, 9, ++/*346997*/ OPC_CheckInteger, 1, ++/*346999*/ OPC_CheckType, MVT::i32, ++/*347001*/ OPC_MoveParent, ++/*347002*/ OPC_MoveChild, 10, ++/*347004*/ OPC_CheckInteger, 1, ++/*347006*/ OPC_CheckType, MVT::i32, ++/*347008*/ OPC_MoveParent, ++/*347009*/ OPC_MoveChild, 11, ++/*347011*/ OPC_CheckInteger, 1, ++/*347013*/ OPC_CheckType, MVT::i32, ++/*347015*/ OPC_MoveParent, ++/*347016*/ OPC_MoveChild, 12, ++/*347018*/ OPC_CheckInteger, 1, ++/*347020*/ OPC_CheckType, MVT::i32, ++/*347022*/ OPC_MoveParent, ++/*347023*/ OPC_MoveChild, 13, ++/*347025*/ OPC_CheckInteger, 1, ++/*347027*/ OPC_CheckType, MVT::i32, ++/*347029*/ OPC_MoveParent, ++/*347030*/ OPC_MoveChild, 14, ++/*347032*/ OPC_CheckInteger, 1, ++/*347034*/ OPC_CheckType, MVT::i32, ++/*347036*/ OPC_MoveParent, ++/*347037*/ OPC_MoveChild, 15, ++/*347039*/ OPC_CheckInteger, 1, ++/*347041*/ OPC_CheckType, MVT::i32, ++/*347043*/ OPC_MoveParent, ++/*347044*/ OPC_MoveParent, ++/*347045*/ OPC_MoveParent, ++/*347046*/ OPC_MoveParent, ++/*347047*/ OPC_MoveChild1, ++/*347048*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*347051*/ OPC_CheckChild0Integer, 1, ++/*347053*/ OPC_CheckChild0Type, MVT::i32, ++/*347055*/ OPC_CheckChild1Integer, 1, ++/*347057*/ OPC_CheckChild1Type, MVT::i32, ++/*347059*/ OPC_CheckChild2Integer, 1, ++/*347061*/ OPC_CheckChild2Type, MVT::i32, ++/*347063*/ OPC_CheckChild3Integer, 1, ++/*347065*/ OPC_CheckChild3Type, MVT::i32, ++/*347067*/ OPC_CheckChild4Integer, 1, ++/*347069*/ OPC_CheckChild4Type, MVT::i32, ++/*347071*/ OPC_MoveChild5, ++/*347072*/ OPC_CheckInteger, 1, ++/*347074*/ OPC_CheckType, MVT::i32, ++/*347076*/ OPC_MoveParent, ++/*347077*/ OPC_MoveChild6, ++/*347078*/ OPC_CheckInteger, 1, ++/*347080*/ OPC_CheckType, MVT::i32, ++/*347082*/ OPC_MoveParent, ++/*347083*/ OPC_MoveChild7, ++/*347084*/ OPC_CheckInteger, 1, ++/*347086*/ OPC_CheckType, MVT::i32, ++/*347088*/ OPC_MoveParent, ++/*347089*/ OPC_MoveChild, 8, ++/*347091*/ OPC_CheckInteger, 1, ++/*347093*/ OPC_CheckType, MVT::i32, ++/*347095*/ OPC_MoveParent, ++/*347096*/ OPC_MoveChild, 9, ++/*347098*/ OPC_CheckInteger, 1, ++/*347100*/ OPC_CheckType, MVT::i32, ++/*347102*/ OPC_MoveParent, ++/*347103*/ OPC_MoveChild, 10, ++/*347105*/ OPC_CheckInteger, 1, ++/*347107*/ OPC_CheckType, MVT::i32, ++/*347109*/ OPC_MoveParent, ++/*347110*/ OPC_MoveChild, 11, ++/*347112*/ OPC_CheckInteger, 1, ++/*347114*/ OPC_CheckType, MVT::i32, ++/*347116*/ OPC_MoveParent, ++/*347117*/ OPC_MoveChild, 12, ++/*347119*/ OPC_CheckInteger, 1, ++/*347121*/ OPC_CheckType, MVT::i32, ++/*347123*/ OPC_MoveParent, ++/*347124*/ OPC_MoveChild, 13, ++/*347126*/ OPC_CheckInteger, 1, ++/*347128*/ OPC_CheckType, MVT::i32, ++/*347130*/ OPC_MoveParent, ++/*347131*/ OPC_MoveChild, 14, ++/*347133*/ OPC_CheckInteger, 1, ++/*347135*/ OPC_CheckType, MVT::i32, ++/*347137*/ OPC_MoveParent, ++/*347138*/ OPC_MoveChild, 15, ++/*347140*/ OPC_CheckInteger, 1, ++/*347142*/ OPC_CheckType, MVT::i32, ++/*347144*/ OPC_MoveParent, ++/*347145*/ OPC_CheckType, MVT::v16i8, ++/*347147*/ OPC_MoveParent, ++/*347148*/ OPC_CheckType, MVT::v16i8, ++/*347150*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*347152*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b), LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*347160*/ 0, /*End of Scope*/ ++/*347161*/ /*Scope*/ 62|128,3/*446*/, /*->347609*/ ++/*347163*/ OPC_CheckChild0Same, 0, ++/*347165*/ OPC_MoveChild1, ++/*347166*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*347169*/ OPC_Scope, 89|128,1/*217*/, /*->347389*/ // 2 children in Scope ++/*347172*/ OPC_MoveChild0, ++/*347173*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*347176*/ OPC_CheckChild0Integer, 1, ++/*347178*/ OPC_CheckChild0Type, MVT::i32, ++/*347180*/ OPC_CheckChild1Integer, 1, ++/*347182*/ OPC_CheckChild1Type, MVT::i32, ++/*347184*/ OPC_CheckChild2Integer, 1, ++/*347186*/ OPC_CheckChild2Type, MVT::i32, ++/*347188*/ OPC_CheckChild3Integer, 1, ++/*347190*/ OPC_CheckChild3Type, MVT::i32, ++/*347192*/ OPC_CheckChild4Integer, 1, ++/*347194*/ OPC_CheckChild4Type, MVT::i32, ++/*347196*/ OPC_MoveChild5, ++/*347197*/ OPC_CheckInteger, 1, ++/*347199*/ OPC_CheckType, MVT::i32, ++/*347201*/ OPC_MoveParent, ++/*347202*/ OPC_MoveChild6, ++/*347203*/ OPC_CheckInteger, 1, ++/*347205*/ OPC_CheckType, MVT::i32, ++/*347207*/ OPC_MoveParent, ++/*347208*/ OPC_MoveChild7, ++/*347209*/ OPC_CheckInteger, 1, ++/*347211*/ OPC_CheckType, MVT::i32, ++/*347213*/ OPC_MoveParent, ++/*347214*/ OPC_MoveChild, 8, ++/*347216*/ OPC_CheckInteger, 1, ++/*347218*/ OPC_CheckType, MVT::i32, ++/*347220*/ OPC_MoveParent, ++/*347221*/ OPC_MoveChild, 9, ++/*347223*/ OPC_CheckInteger, 1, ++/*347225*/ OPC_CheckType, MVT::i32, ++/*347227*/ OPC_MoveParent, ++/*347228*/ OPC_MoveChild, 10, ++/*347230*/ OPC_CheckInteger, 1, ++/*347232*/ OPC_CheckType, MVT::i32, ++/*347234*/ OPC_MoveParent, ++/*347235*/ OPC_MoveChild, 11, ++/*347237*/ OPC_CheckInteger, 1, ++/*347239*/ OPC_CheckType, MVT::i32, ++/*347241*/ OPC_MoveParent, ++/*347242*/ OPC_MoveChild, 12, ++/*347244*/ OPC_CheckInteger, 1, ++/*347246*/ OPC_CheckType, MVT::i32, ++/*347248*/ OPC_MoveParent, ++/*347249*/ OPC_MoveChild, 13, ++/*347251*/ OPC_CheckInteger, 1, ++/*347253*/ OPC_CheckType, MVT::i32, ++/*347255*/ OPC_MoveParent, ++/*347256*/ OPC_MoveChild, 14, ++/*347258*/ OPC_CheckInteger, 1, ++/*347260*/ OPC_CheckType, MVT::i32, ++/*347262*/ OPC_MoveParent, ++/*347263*/ OPC_MoveChild, 15, ++/*347265*/ OPC_CheckInteger, 1, ++/*347267*/ OPC_CheckType, MVT::i32, ++/*347269*/ OPC_MoveParent, ++/*347270*/ OPC_MoveParent, ++/*347271*/ OPC_CheckChild1Same, 1, ++/*347273*/ OPC_MoveParent, ++/*347274*/ OPC_MoveParent, ++/*347275*/ OPC_MoveParent, ++/*347276*/ OPC_MoveChild1, ++/*347277*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*347280*/ OPC_CheckChild0Integer, 1, ++/*347282*/ OPC_CheckChild0Type, MVT::i32, ++/*347284*/ OPC_CheckChild1Integer, 1, ++/*347286*/ OPC_CheckChild1Type, MVT::i32, ++/*347288*/ OPC_CheckChild2Integer, 1, ++/*347290*/ OPC_CheckChild2Type, MVT::i32, ++/*347292*/ OPC_CheckChild3Integer, 1, ++/*347294*/ OPC_CheckChild3Type, MVT::i32, ++/*347296*/ OPC_CheckChild4Integer, 1, ++/*347298*/ OPC_CheckChild4Type, MVT::i32, ++/*347300*/ OPC_MoveChild5, ++/*347301*/ OPC_CheckInteger, 1, ++/*347303*/ OPC_CheckType, MVT::i32, ++/*347305*/ OPC_MoveParent, ++/*347306*/ OPC_MoveChild6, ++/*347307*/ OPC_CheckInteger, 1, ++/*347309*/ OPC_CheckType, MVT::i32, ++/*347311*/ OPC_MoveParent, ++/*347312*/ OPC_MoveChild7, ++/*347313*/ OPC_CheckInteger, 1, ++/*347315*/ OPC_CheckType, MVT::i32, ++/*347317*/ OPC_MoveParent, ++/*347318*/ OPC_MoveChild, 8, ++/*347320*/ OPC_CheckInteger, 1, ++/*347322*/ OPC_CheckType, MVT::i32, ++/*347324*/ OPC_MoveParent, ++/*347325*/ OPC_MoveChild, 9, ++/*347327*/ OPC_CheckInteger, 1, ++/*347329*/ OPC_CheckType, MVT::i32, ++/*347331*/ OPC_MoveParent, ++/*347332*/ OPC_MoveChild, 10, ++/*347334*/ OPC_CheckInteger, 1, ++/*347336*/ OPC_CheckType, MVT::i32, ++/*347338*/ OPC_MoveParent, ++/*347339*/ OPC_MoveChild, 11, ++/*347341*/ OPC_CheckInteger, 1, ++/*347343*/ OPC_CheckType, MVT::i32, ++/*347345*/ OPC_MoveParent, ++/*347346*/ OPC_MoveChild, 12, ++/*347348*/ OPC_CheckInteger, 1, ++/*347350*/ OPC_CheckType, MVT::i32, ++/*347352*/ OPC_MoveParent, ++/*347353*/ OPC_MoveChild, 13, ++/*347355*/ OPC_CheckInteger, 1, ++/*347357*/ OPC_CheckType, MVT::i32, ++/*347359*/ OPC_MoveParent, ++/*347360*/ OPC_MoveChild, 14, ++/*347362*/ OPC_CheckInteger, 1, ++/*347364*/ OPC_CheckType, MVT::i32, ++/*347366*/ OPC_MoveParent, ++/*347367*/ OPC_MoveChild, 15, ++/*347369*/ OPC_CheckInteger, 1, ++/*347371*/ OPC_CheckType, MVT::i32, ++/*347373*/ OPC_MoveParent, ++/*347374*/ OPC_CheckType, MVT::v16i8, ++/*347376*/ OPC_MoveParent, ++/*347377*/ OPC_CheckType, MVT::v16i8, ++/*347379*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*347381*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b), LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*347389*/ /*Scope*/ 89|128,1/*217*/, /*->347608*/ ++/*347391*/ OPC_CheckChild0Same, 1, ++/*347393*/ OPC_MoveChild1, ++/*347394*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*347397*/ OPC_CheckChild0Integer, 1, ++/*347399*/ OPC_CheckChild0Type, MVT::i32, ++/*347401*/ OPC_CheckChild1Integer, 1, ++/*347403*/ OPC_CheckChild1Type, MVT::i32, ++/*347405*/ OPC_CheckChild2Integer, 1, ++/*347407*/ OPC_CheckChild2Type, MVT::i32, ++/*347409*/ OPC_CheckChild3Integer, 1, ++/*347411*/ OPC_CheckChild3Type, MVT::i32, ++/*347413*/ OPC_CheckChild4Integer, 1, ++/*347415*/ OPC_CheckChild4Type, MVT::i32, ++/*347417*/ OPC_MoveChild5, ++/*347418*/ OPC_CheckInteger, 1, ++/*347420*/ OPC_CheckType, MVT::i32, ++/*347422*/ OPC_MoveParent, ++/*347423*/ OPC_MoveChild6, ++/*347424*/ OPC_CheckInteger, 1, ++/*347426*/ OPC_CheckType, MVT::i32, ++/*347428*/ OPC_MoveParent, ++/*347429*/ OPC_MoveChild7, ++/*347430*/ OPC_CheckInteger, 1, ++/*347432*/ OPC_CheckType, MVT::i32, ++/*347434*/ OPC_MoveParent, ++/*347435*/ OPC_MoveChild, 8, ++/*347437*/ OPC_CheckInteger, 1, ++/*347439*/ OPC_CheckType, MVT::i32, ++/*347441*/ OPC_MoveParent, ++/*347442*/ OPC_MoveChild, 9, ++/*347444*/ OPC_CheckInteger, 1, ++/*347446*/ OPC_CheckType, MVT::i32, ++/*347448*/ OPC_MoveParent, ++/*347449*/ OPC_MoveChild, 10, ++/*347451*/ OPC_CheckInteger, 1, ++/*347453*/ OPC_CheckType, MVT::i32, ++/*347455*/ OPC_MoveParent, ++/*347456*/ OPC_MoveChild, 11, ++/*347458*/ OPC_CheckInteger, 1, ++/*347460*/ OPC_CheckType, MVT::i32, ++/*347462*/ OPC_MoveParent, ++/*347463*/ OPC_MoveChild, 12, ++/*347465*/ OPC_CheckInteger, 1, ++/*347467*/ OPC_CheckType, MVT::i32, ++/*347469*/ OPC_MoveParent, ++/*347470*/ OPC_MoveChild, 13, ++/*347472*/ OPC_CheckInteger, 1, ++/*347474*/ OPC_CheckType, MVT::i32, ++/*347476*/ OPC_MoveParent, ++/*347477*/ OPC_MoveChild, 14, ++/*347479*/ OPC_CheckInteger, 1, ++/*347481*/ OPC_CheckType, MVT::i32, ++/*347483*/ OPC_MoveParent, ++/*347484*/ OPC_MoveChild, 15, ++/*347486*/ OPC_CheckInteger, 1, ++/*347488*/ OPC_CheckType, MVT::i32, ++/*347490*/ OPC_MoveParent, ++/*347491*/ OPC_MoveParent, ++/*347492*/ OPC_MoveParent, ++/*347493*/ OPC_MoveParent, ++/*347494*/ OPC_MoveParent, ++/*347495*/ OPC_MoveChild1, ++/*347496*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*347499*/ OPC_CheckChild0Integer, 1, ++/*347501*/ OPC_CheckChild0Type, MVT::i32, ++/*347503*/ OPC_CheckChild1Integer, 1, ++/*347505*/ OPC_CheckChild1Type, MVT::i32, ++/*347507*/ OPC_CheckChild2Integer, 1, ++/*347509*/ OPC_CheckChild2Type, MVT::i32, ++/*347511*/ OPC_CheckChild3Integer, 1, ++/*347513*/ OPC_CheckChild3Type, MVT::i32, ++/*347515*/ OPC_CheckChild4Integer, 1, ++/*347517*/ OPC_CheckChild4Type, MVT::i32, ++/*347519*/ OPC_MoveChild5, ++/*347520*/ OPC_CheckInteger, 1, ++/*347522*/ OPC_CheckType, MVT::i32, ++/*347524*/ OPC_MoveParent, ++/*347525*/ OPC_MoveChild6, ++/*347526*/ OPC_CheckInteger, 1, ++/*347528*/ OPC_CheckType, MVT::i32, ++/*347530*/ OPC_MoveParent, ++/*347531*/ OPC_MoveChild7, ++/*347532*/ OPC_CheckInteger, 1, ++/*347534*/ OPC_CheckType, MVT::i32, ++/*347536*/ OPC_MoveParent, ++/*347537*/ OPC_MoveChild, 8, ++/*347539*/ OPC_CheckInteger, 1, ++/*347541*/ OPC_CheckType, MVT::i32, ++/*347543*/ OPC_MoveParent, ++/*347544*/ OPC_MoveChild, 9, ++/*347546*/ OPC_CheckInteger, 1, ++/*347548*/ OPC_CheckType, MVT::i32, ++/*347550*/ OPC_MoveParent, ++/*347551*/ OPC_MoveChild, 10, ++/*347553*/ OPC_CheckInteger, 1, ++/*347555*/ OPC_CheckType, MVT::i32, ++/*347557*/ OPC_MoveParent, ++/*347558*/ OPC_MoveChild, 11, ++/*347560*/ OPC_CheckInteger, 1, ++/*347562*/ OPC_CheckType, MVT::i32, ++/*347564*/ OPC_MoveParent, ++/*347565*/ OPC_MoveChild, 12, ++/*347567*/ OPC_CheckInteger, 1, ++/*347569*/ OPC_CheckType, MVT::i32, ++/*347571*/ OPC_MoveParent, ++/*347572*/ OPC_MoveChild, 13, ++/*347574*/ OPC_CheckInteger, 1, ++/*347576*/ OPC_CheckType, MVT::i32, ++/*347578*/ OPC_MoveParent, ++/*347579*/ OPC_MoveChild, 14, ++/*347581*/ OPC_CheckInteger, 1, ++/*347583*/ OPC_CheckType, MVT::i32, ++/*347585*/ OPC_MoveParent, ++/*347586*/ OPC_MoveChild, 15, ++/*347588*/ OPC_CheckInteger, 1, ++/*347590*/ OPC_CheckType, MVT::i32, ++/*347592*/ OPC_MoveParent, ++/*347593*/ OPC_CheckType, MVT::v16i8, ++/*347595*/ OPC_MoveParent, ++/*347596*/ OPC_CheckType, MVT::v16i8, ++/*347598*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*347600*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b), LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*347608*/ 0, /*End of Scope*/ ++/*347609*/ /*Scope*/ 62|128,3/*446*/, /*->348057*/ ++/*347611*/ OPC_CheckChild0Same, 1, ++/*347613*/ OPC_MoveChild1, ++/*347614*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*347617*/ OPC_Scope, 89|128,1/*217*/, /*->347837*/ // 2 children in Scope ++/*347620*/ OPC_MoveChild0, ++/*347621*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*347624*/ OPC_CheckChild0Integer, 1, ++/*347626*/ OPC_CheckChild0Type, MVT::i32, ++/*347628*/ OPC_CheckChild1Integer, 1, ++/*347630*/ OPC_CheckChild1Type, MVT::i32, ++/*347632*/ OPC_CheckChild2Integer, 1, ++/*347634*/ OPC_CheckChild2Type, MVT::i32, ++/*347636*/ OPC_CheckChild3Integer, 1, ++/*347638*/ OPC_CheckChild3Type, MVT::i32, ++/*347640*/ OPC_CheckChild4Integer, 1, ++/*347642*/ OPC_CheckChild4Type, MVT::i32, ++/*347644*/ OPC_MoveChild5, ++/*347645*/ OPC_CheckInteger, 1, ++/*347647*/ OPC_CheckType, MVT::i32, ++/*347649*/ OPC_MoveParent, ++/*347650*/ OPC_MoveChild6, ++/*347651*/ OPC_CheckInteger, 1, ++/*347653*/ OPC_CheckType, MVT::i32, ++/*347655*/ OPC_MoveParent, ++/*347656*/ OPC_MoveChild7, ++/*347657*/ OPC_CheckInteger, 1, ++/*347659*/ OPC_CheckType, MVT::i32, ++/*347661*/ OPC_MoveParent, ++/*347662*/ OPC_MoveChild, 8, ++/*347664*/ OPC_CheckInteger, 1, ++/*347666*/ OPC_CheckType, MVT::i32, ++/*347668*/ OPC_MoveParent, ++/*347669*/ OPC_MoveChild, 9, ++/*347671*/ OPC_CheckInteger, 1, ++/*347673*/ OPC_CheckType, MVT::i32, ++/*347675*/ OPC_MoveParent, ++/*347676*/ OPC_MoveChild, 10, ++/*347678*/ OPC_CheckInteger, 1, ++/*347680*/ OPC_CheckType, MVT::i32, ++/*347682*/ OPC_MoveParent, ++/*347683*/ OPC_MoveChild, 11, ++/*347685*/ OPC_CheckInteger, 1, ++/*347687*/ OPC_CheckType, MVT::i32, ++/*347689*/ OPC_MoveParent, ++/*347690*/ OPC_MoveChild, 12, ++/*347692*/ OPC_CheckInteger, 1, ++/*347694*/ OPC_CheckType, MVT::i32, ++/*347696*/ OPC_MoveParent, ++/*347697*/ OPC_MoveChild, 13, ++/*347699*/ OPC_CheckInteger, 1, ++/*347701*/ OPC_CheckType, MVT::i32, ++/*347703*/ OPC_MoveParent, ++/*347704*/ OPC_MoveChild, 14, ++/*347706*/ OPC_CheckInteger, 1, ++/*347708*/ OPC_CheckType, MVT::i32, ++/*347710*/ OPC_MoveParent, ++/*347711*/ OPC_MoveChild, 15, ++/*347713*/ OPC_CheckInteger, 1, ++/*347715*/ OPC_CheckType, MVT::i32, ++/*347717*/ OPC_MoveParent, ++/*347718*/ OPC_MoveParent, ++/*347719*/ OPC_CheckChild1Same, 0, ++/*347721*/ OPC_MoveParent, ++/*347722*/ OPC_MoveParent, ++/*347723*/ OPC_MoveParent, ++/*347724*/ OPC_MoveChild1, ++/*347725*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*347728*/ OPC_CheckChild0Integer, 1, ++/*347730*/ OPC_CheckChild0Type, MVT::i32, ++/*347732*/ OPC_CheckChild1Integer, 1, ++/*347734*/ OPC_CheckChild1Type, MVT::i32, ++/*347736*/ OPC_CheckChild2Integer, 1, ++/*347738*/ OPC_CheckChild2Type, MVT::i32, ++/*347740*/ OPC_CheckChild3Integer, 1, ++/*347742*/ OPC_CheckChild3Type, MVT::i32, ++/*347744*/ OPC_CheckChild4Integer, 1, ++/*347746*/ OPC_CheckChild4Type, MVT::i32, ++/*347748*/ OPC_MoveChild5, ++/*347749*/ OPC_CheckInteger, 1, ++/*347751*/ OPC_CheckType, MVT::i32, ++/*347753*/ OPC_MoveParent, ++/*347754*/ OPC_MoveChild6, ++/*347755*/ OPC_CheckInteger, 1, ++/*347757*/ OPC_CheckType, MVT::i32, ++/*347759*/ OPC_MoveParent, ++/*347760*/ OPC_MoveChild7, ++/*347761*/ OPC_CheckInteger, 1, ++/*347763*/ OPC_CheckType, MVT::i32, ++/*347765*/ OPC_MoveParent, ++/*347766*/ OPC_MoveChild, 8, ++/*347768*/ OPC_CheckInteger, 1, ++/*347770*/ OPC_CheckType, MVT::i32, ++/*347772*/ OPC_MoveParent, ++/*347773*/ OPC_MoveChild, 9, ++/*347775*/ OPC_CheckInteger, 1, ++/*347777*/ OPC_CheckType, MVT::i32, ++/*347779*/ OPC_MoveParent, ++/*347780*/ OPC_MoveChild, 10, ++/*347782*/ OPC_CheckInteger, 1, ++/*347784*/ OPC_CheckType, MVT::i32, ++/*347786*/ OPC_MoveParent, ++/*347787*/ OPC_MoveChild, 11, ++/*347789*/ OPC_CheckInteger, 1, ++/*347791*/ OPC_CheckType, MVT::i32, ++/*347793*/ OPC_MoveParent, ++/*347794*/ OPC_MoveChild, 12, ++/*347796*/ OPC_CheckInteger, 1, ++/*347798*/ OPC_CheckType, MVT::i32, ++/*347800*/ OPC_MoveParent, ++/*347801*/ OPC_MoveChild, 13, ++/*347803*/ OPC_CheckInteger, 1, ++/*347805*/ OPC_CheckType, MVT::i32, ++/*347807*/ OPC_MoveParent, ++/*347808*/ OPC_MoveChild, 14, ++/*347810*/ OPC_CheckInteger, 1, ++/*347812*/ OPC_CheckType, MVT::i32, ++/*347814*/ OPC_MoveParent, ++/*347815*/ OPC_MoveChild, 15, ++/*347817*/ OPC_CheckInteger, 1, ++/*347819*/ OPC_CheckType, MVT::i32, ++/*347821*/ OPC_MoveParent, ++/*347822*/ OPC_CheckType, MVT::v16i8, ++/*347824*/ OPC_MoveParent, ++/*347825*/ OPC_CheckType, MVT::v16i8, ++/*347827*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*347829*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b), LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*347837*/ /*Scope*/ 89|128,1/*217*/, /*->348056*/ ++/*347839*/ OPC_CheckChild0Same, 0, ++/*347841*/ OPC_MoveChild1, ++/*347842*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*347845*/ OPC_CheckChild0Integer, 1, ++/*347847*/ OPC_CheckChild0Type, MVT::i32, ++/*347849*/ OPC_CheckChild1Integer, 1, ++/*347851*/ OPC_CheckChild1Type, MVT::i32, ++/*347853*/ OPC_CheckChild2Integer, 1, ++/*347855*/ OPC_CheckChild2Type, MVT::i32, ++/*347857*/ OPC_CheckChild3Integer, 1, ++/*347859*/ OPC_CheckChild3Type, MVT::i32, ++/*347861*/ OPC_CheckChild4Integer, 1, ++/*347863*/ OPC_CheckChild4Type, MVT::i32, ++/*347865*/ OPC_MoveChild5, ++/*347866*/ OPC_CheckInteger, 1, ++/*347868*/ OPC_CheckType, MVT::i32, ++/*347870*/ OPC_MoveParent, ++/*347871*/ OPC_MoveChild6, ++/*347872*/ OPC_CheckInteger, 1, ++/*347874*/ OPC_CheckType, MVT::i32, ++/*347876*/ OPC_MoveParent, ++/*347877*/ OPC_MoveChild7, ++/*347878*/ OPC_CheckInteger, 1, ++/*347880*/ OPC_CheckType, MVT::i32, ++/*347882*/ OPC_MoveParent, ++/*347883*/ OPC_MoveChild, 8, ++/*347885*/ OPC_CheckInteger, 1, ++/*347887*/ OPC_CheckType, MVT::i32, ++/*347889*/ OPC_MoveParent, ++/*347890*/ OPC_MoveChild, 9, ++/*347892*/ OPC_CheckInteger, 1, ++/*347894*/ OPC_CheckType, MVT::i32, ++/*347896*/ OPC_MoveParent, ++/*347897*/ OPC_MoveChild, 10, ++/*347899*/ OPC_CheckInteger, 1, ++/*347901*/ OPC_CheckType, MVT::i32, ++/*347903*/ OPC_MoveParent, ++/*347904*/ OPC_MoveChild, 11, ++/*347906*/ OPC_CheckInteger, 1, ++/*347908*/ OPC_CheckType, MVT::i32, ++/*347910*/ OPC_MoveParent, ++/*347911*/ OPC_MoveChild, 12, ++/*347913*/ OPC_CheckInteger, 1, ++/*347915*/ OPC_CheckType, MVT::i32, ++/*347917*/ OPC_MoveParent, ++/*347918*/ OPC_MoveChild, 13, ++/*347920*/ OPC_CheckInteger, 1, ++/*347922*/ OPC_CheckType, MVT::i32, ++/*347924*/ OPC_MoveParent, ++/*347925*/ OPC_MoveChild, 14, ++/*347927*/ OPC_CheckInteger, 1, ++/*347929*/ OPC_CheckType, MVT::i32, ++/*347931*/ OPC_MoveParent, ++/*347932*/ OPC_MoveChild, 15, ++/*347934*/ OPC_CheckInteger, 1, ++/*347936*/ OPC_CheckType, MVT::i32, ++/*347938*/ OPC_MoveParent, ++/*347939*/ OPC_MoveParent, ++/*347940*/ OPC_MoveParent, ++/*347941*/ OPC_MoveParent, ++/*347942*/ OPC_MoveParent, ++/*347943*/ OPC_MoveChild1, ++/*347944*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*347947*/ OPC_CheckChild0Integer, 1, ++/*347949*/ OPC_CheckChild0Type, MVT::i32, ++/*347951*/ OPC_CheckChild1Integer, 1, ++/*347953*/ OPC_CheckChild1Type, MVT::i32, ++/*347955*/ OPC_CheckChild2Integer, 1, ++/*347957*/ OPC_CheckChild2Type, MVT::i32, ++/*347959*/ OPC_CheckChild3Integer, 1, ++/*347961*/ OPC_CheckChild3Type, MVT::i32, ++/*347963*/ OPC_CheckChild4Integer, 1, ++/*347965*/ OPC_CheckChild4Type, MVT::i32, ++/*347967*/ OPC_MoveChild5, ++/*347968*/ OPC_CheckInteger, 1, ++/*347970*/ OPC_CheckType, MVT::i32, ++/*347972*/ OPC_MoveParent, ++/*347973*/ OPC_MoveChild6, ++/*347974*/ OPC_CheckInteger, 1, ++/*347976*/ OPC_CheckType, MVT::i32, ++/*347978*/ OPC_MoveParent, ++/*347979*/ OPC_MoveChild7, ++/*347980*/ OPC_CheckInteger, 1, ++/*347982*/ OPC_CheckType, MVT::i32, ++/*347984*/ OPC_MoveParent, ++/*347985*/ OPC_MoveChild, 8, ++/*347987*/ OPC_CheckInteger, 1, ++/*347989*/ OPC_CheckType, MVT::i32, ++/*347991*/ OPC_MoveParent, ++/*347992*/ OPC_MoveChild, 9, ++/*347994*/ OPC_CheckInteger, 1, ++/*347996*/ OPC_CheckType, MVT::i32, ++/*347998*/ OPC_MoveParent, ++/*347999*/ OPC_MoveChild, 10, ++/*348001*/ OPC_CheckInteger, 1, ++/*348003*/ OPC_CheckType, MVT::i32, ++/*348005*/ OPC_MoveParent, ++/*348006*/ OPC_MoveChild, 11, ++/*348008*/ OPC_CheckInteger, 1, ++/*348010*/ OPC_CheckType, MVT::i32, ++/*348012*/ OPC_MoveParent, ++/*348013*/ OPC_MoveChild, 12, ++/*348015*/ OPC_CheckInteger, 1, ++/*348017*/ OPC_CheckType, MVT::i32, ++/*348019*/ OPC_MoveParent, ++/*348020*/ OPC_MoveChild, 13, ++/*348022*/ OPC_CheckInteger, 1, ++/*348024*/ OPC_CheckType, MVT::i32, ++/*348026*/ OPC_MoveParent, ++/*348027*/ OPC_MoveChild, 14, ++/*348029*/ OPC_CheckInteger, 1, ++/*348031*/ OPC_CheckType, MVT::i32, ++/*348033*/ OPC_MoveParent, ++/*348034*/ OPC_MoveChild, 15, ++/*348036*/ OPC_CheckInteger, 1, ++/*348038*/ OPC_CheckType, MVT::i32, ++/*348040*/ OPC_MoveParent, ++/*348041*/ OPC_CheckType, MVT::v16i8, ++/*348043*/ OPC_MoveParent, ++/*348044*/ OPC_CheckType, MVT::v16i8, ++/*348046*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*348048*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b), LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*348056*/ 0, /*End of Scope*/ ++/*348057*/ /*Scope*/ 91|128,2/*347*/, /*->348406*/ ++/*348059*/ OPC_MoveChild0, ++/*348060*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*348063*/ OPC_CheckChild0Integer, 1, ++/*348065*/ OPC_CheckChild0Type, MVT::i32, ++/*348067*/ OPC_CheckChild1Integer, 1, ++/*348069*/ OPC_CheckChild1Type, MVT::i32, ++/*348071*/ OPC_CheckChild2Integer, 1, ++/*348073*/ OPC_CheckChild2Type, MVT::i32, ++/*348075*/ OPC_CheckChild3Integer, 1, ++/*348077*/ OPC_CheckChild3Type, MVT::i32, ++/*348079*/ OPC_CheckChild4Integer, 1, ++/*348081*/ OPC_CheckChild4Type, MVT::i32, ++/*348083*/ OPC_MoveChild5, ++/*348084*/ OPC_CheckInteger, 1, ++/*348086*/ OPC_CheckType, MVT::i32, ++/*348088*/ OPC_MoveParent, ++/*348089*/ OPC_MoveChild6, ++/*348090*/ OPC_CheckInteger, 1, ++/*348092*/ OPC_CheckType, MVT::i32, ++/*348094*/ OPC_MoveParent, ++/*348095*/ OPC_MoveChild7, ++/*348096*/ OPC_CheckInteger, 1, ++/*348098*/ OPC_CheckType, MVT::i32, ++/*348100*/ OPC_MoveParent, ++/*348101*/ OPC_MoveChild, 8, ++/*348103*/ OPC_CheckInteger, 1, ++/*348105*/ OPC_CheckType, MVT::i32, ++/*348107*/ OPC_MoveParent, ++/*348108*/ OPC_MoveChild, 9, ++/*348110*/ OPC_CheckInteger, 1, ++/*348112*/ OPC_CheckType, MVT::i32, ++/*348114*/ OPC_MoveParent, ++/*348115*/ OPC_MoveChild, 10, ++/*348117*/ OPC_CheckInteger, 1, ++/*348119*/ OPC_CheckType, MVT::i32, ++/*348121*/ OPC_MoveParent, ++/*348122*/ OPC_MoveChild, 11, ++/*348124*/ OPC_CheckInteger, 1, ++/*348126*/ OPC_CheckType, MVT::i32, ++/*348128*/ OPC_MoveParent, ++/*348129*/ OPC_MoveChild, 12, ++/*348131*/ OPC_CheckInteger, 1, ++/*348133*/ OPC_CheckType, MVT::i32, ++/*348135*/ OPC_MoveParent, ++/*348136*/ OPC_MoveChild, 13, ++/*348138*/ OPC_CheckInteger, 1, ++/*348140*/ OPC_CheckType, MVT::i32, ++/*348142*/ OPC_MoveParent, ++/*348143*/ OPC_MoveChild, 14, ++/*348145*/ OPC_CheckInteger, 1, ++/*348147*/ OPC_CheckType, MVT::i32, ++/*348149*/ OPC_MoveParent, ++/*348150*/ OPC_MoveChild, 15, ++/*348152*/ OPC_CheckInteger, 1, ++/*348154*/ OPC_CheckType, MVT::i32, ++/*348156*/ OPC_MoveParent, ++/*348157*/ OPC_MoveParent, ++/*348158*/ OPC_MoveChild1, ++/*348159*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*348162*/ OPC_Scope, 120, /*->348284*/ // 2 children in Scope ++/*348164*/ OPC_CheckChild0Same, 1, ++/*348166*/ OPC_CheckChild1Same, 0, ++/*348168*/ OPC_MoveParent, ++/*348169*/ OPC_MoveParent, ++/*348170*/ OPC_MoveParent, ++/*348171*/ OPC_MoveChild1, ++/*348172*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*348175*/ OPC_CheckChild0Integer, 1, ++/*348177*/ OPC_CheckChild0Type, MVT::i32, ++/*348179*/ OPC_CheckChild1Integer, 1, ++/*348181*/ OPC_CheckChild1Type, MVT::i32, ++/*348183*/ OPC_CheckChild2Integer, 1, ++/*348185*/ OPC_CheckChild2Type, MVT::i32, ++/*348187*/ OPC_CheckChild3Integer, 1, ++/*348189*/ OPC_CheckChild3Type, MVT::i32, ++/*348191*/ OPC_CheckChild4Integer, 1, ++/*348193*/ OPC_CheckChild4Type, MVT::i32, ++/*348195*/ OPC_MoveChild5, ++/*348196*/ OPC_CheckInteger, 1, ++/*348198*/ OPC_CheckType, MVT::i32, ++/*348200*/ OPC_MoveParent, ++/*348201*/ OPC_MoveChild6, ++/*348202*/ OPC_CheckInteger, 1, ++/*348204*/ OPC_CheckType, MVT::i32, ++/*348206*/ OPC_MoveParent, ++/*348207*/ OPC_MoveChild7, ++/*348208*/ OPC_CheckInteger, 1, ++/*348210*/ OPC_CheckType, MVT::i32, ++/*348212*/ OPC_MoveParent, ++/*348213*/ OPC_MoveChild, 8, ++/*348215*/ OPC_CheckInteger, 1, ++/*348217*/ OPC_CheckType, MVT::i32, ++/*348219*/ OPC_MoveParent, ++/*348220*/ OPC_MoveChild, 9, ++/*348222*/ OPC_CheckInteger, 1, ++/*348224*/ OPC_CheckType, MVT::i32, ++/*348226*/ OPC_MoveParent, ++/*348227*/ OPC_MoveChild, 10, ++/*348229*/ OPC_CheckInteger, 1, ++/*348231*/ OPC_CheckType, MVT::i32, ++/*348233*/ OPC_MoveParent, ++/*348234*/ OPC_MoveChild, 11, ++/*348236*/ OPC_CheckInteger, 1, ++/*348238*/ OPC_CheckType, MVT::i32, ++/*348240*/ OPC_MoveParent, ++/*348241*/ OPC_MoveChild, 12, ++/*348243*/ OPC_CheckInteger, 1, ++/*348245*/ OPC_CheckType, MVT::i32, ++/*348247*/ OPC_MoveParent, ++/*348248*/ OPC_MoveChild, 13, ++/*348250*/ OPC_CheckInteger, 1, ++/*348252*/ OPC_CheckType, MVT::i32, ++/*348254*/ OPC_MoveParent, ++/*348255*/ OPC_MoveChild, 14, ++/*348257*/ OPC_CheckInteger, 1, ++/*348259*/ OPC_CheckType, MVT::i32, ++/*348261*/ OPC_MoveParent, ++/*348262*/ OPC_MoveChild, 15, ++/*348264*/ OPC_CheckInteger, 1, ++/*348266*/ OPC_CheckType, MVT::i32, ++/*348268*/ OPC_MoveParent, ++/*348269*/ OPC_CheckType, MVT::v16i8, ++/*348271*/ OPC_MoveParent, ++/*348272*/ OPC_CheckType, MVT::v16i8, ++/*348274*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*348276*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b), LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*348284*/ /*Scope*/ 120, /*->348405*/ ++/*348285*/ OPC_CheckChild0Same, 0, ++/*348287*/ OPC_CheckChild1Same, 1, ++/*348289*/ OPC_MoveParent, ++/*348290*/ OPC_MoveParent, ++/*348291*/ OPC_MoveParent, ++/*348292*/ OPC_MoveChild1, ++/*348293*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*348296*/ OPC_CheckChild0Integer, 1, ++/*348298*/ OPC_CheckChild0Type, MVT::i32, ++/*348300*/ OPC_CheckChild1Integer, 1, ++/*348302*/ OPC_CheckChild1Type, MVT::i32, ++/*348304*/ OPC_CheckChild2Integer, 1, ++/*348306*/ OPC_CheckChild2Type, MVT::i32, ++/*348308*/ OPC_CheckChild3Integer, 1, ++/*348310*/ OPC_CheckChild3Type, MVT::i32, ++/*348312*/ OPC_CheckChild4Integer, 1, ++/*348314*/ OPC_CheckChild4Type, MVT::i32, ++/*348316*/ OPC_MoveChild5, ++/*348317*/ OPC_CheckInteger, 1, ++/*348319*/ OPC_CheckType, MVT::i32, ++/*348321*/ OPC_MoveParent, ++/*348322*/ OPC_MoveChild6, ++/*348323*/ OPC_CheckInteger, 1, ++/*348325*/ OPC_CheckType, MVT::i32, ++/*348327*/ OPC_MoveParent, ++/*348328*/ OPC_MoveChild7, ++/*348329*/ OPC_CheckInteger, 1, ++/*348331*/ OPC_CheckType, MVT::i32, ++/*348333*/ OPC_MoveParent, ++/*348334*/ OPC_MoveChild, 8, ++/*348336*/ OPC_CheckInteger, 1, ++/*348338*/ OPC_CheckType, MVT::i32, ++/*348340*/ OPC_MoveParent, ++/*348341*/ OPC_MoveChild, 9, ++/*348343*/ OPC_CheckInteger, 1, ++/*348345*/ OPC_CheckType, MVT::i32, ++/*348347*/ OPC_MoveParent, ++/*348348*/ OPC_MoveChild, 10, ++/*348350*/ OPC_CheckInteger, 1, ++/*348352*/ OPC_CheckType, MVT::i32, ++/*348354*/ OPC_MoveParent, ++/*348355*/ OPC_MoveChild, 11, ++/*348357*/ OPC_CheckInteger, 1, ++/*348359*/ OPC_CheckType, MVT::i32, ++/*348361*/ OPC_MoveParent, ++/*348362*/ OPC_MoveChild, 12, ++/*348364*/ OPC_CheckInteger, 1, ++/*348366*/ OPC_CheckType, MVT::i32, ++/*348368*/ OPC_MoveParent, ++/*348369*/ OPC_MoveChild, 13, ++/*348371*/ OPC_CheckInteger, 1, ++/*348373*/ OPC_CheckType, MVT::i32, ++/*348375*/ OPC_MoveParent, ++/*348376*/ OPC_MoveChild, 14, ++/*348378*/ OPC_CheckInteger, 1, ++/*348380*/ OPC_CheckType, MVT::i32, ++/*348382*/ OPC_MoveParent, ++/*348383*/ OPC_MoveChild, 15, ++/*348385*/ OPC_CheckInteger, 1, ++/*348387*/ OPC_CheckType, MVT::i32, ++/*348389*/ OPC_MoveParent, ++/*348390*/ OPC_CheckType, MVT::v16i8, ++/*348392*/ OPC_MoveParent, ++/*348393*/ OPC_CheckType, MVT::v16i8, ++/*348395*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*348397*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b), LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*348405*/ 0, /*End of Scope*/ ++/*348406*/ 0, /*End of Scope*/ ++/*348407*/ /*Scope*/ 101|128,63/*8165*/, /*->356574*/ ++/*348409*/ OPC_RecordChild0, // #0 = $b ++/*348410*/ OPC_Scope, 101|128,21/*2789*/, /*->351202*/ // 2 children in Scope ++/*348413*/ OPC_MoveChild1, ++/*348414*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*348417*/ OPC_CheckChild0Integer, 1, ++/*348419*/ OPC_CheckChild0Type, MVT::i32, ++/*348421*/ OPC_CheckChild1Integer, 1, ++/*348423*/ OPC_CheckChild1Type, MVT::i32, ++/*348425*/ OPC_CheckChild2Integer, 1, ++/*348427*/ OPC_CheckChild2Type, MVT::i32, ++/*348429*/ OPC_CheckChild3Integer, 1, ++/*348431*/ OPC_CheckChild3Type, MVT::i32, ++/*348433*/ OPC_CheckChild4Integer, 1, ++/*348435*/ OPC_CheckChild4Type, MVT::i32, ++/*348437*/ OPC_MoveChild5, ++/*348438*/ OPC_CheckInteger, 1, ++/*348440*/ OPC_CheckType, MVT::i32, ++/*348442*/ OPC_MoveParent, ++/*348443*/ OPC_MoveChild6, ++/*348444*/ OPC_CheckInteger, 1, ++/*348446*/ OPC_CheckType, MVT::i32, ++/*348448*/ OPC_MoveParent, ++/*348449*/ OPC_MoveChild7, ++/*348450*/ OPC_CheckInteger, 1, ++/*348452*/ OPC_CheckType, MVT::i32, ++/*348454*/ OPC_MoveParent, ++/*348455*/ OPC_MoveChild, 8, ++/*348457*/ OPC_CheckInteger, 1, ++/*348459*/ OPC_CheckType, MVT::i32, ++/*348461*/ OPC_MoveParent, ++/*348462*/ OPC_MoveChild, 9, ++/*348464*/ OPC_CheckInteger, 1, ++/*348466*/ OPC_CheckType, MVT::i32, ++/*348468*/ OPC_MoveParent, ++/*348469*/ OPC_MoveChild, 10, ++/*348471*/ OPC_CheckInteger, 1, ++/*348473*/ OPC_CheckType, MVT::i32, ++/*348475*/ OPC_MoveParent, ++/*348476*/ OPC_MoveChild, 11, ++/*348478*/ OPC_CheckInteger, 1, ++/*348480*/ OPC_CheckType, MVT::i32, ++/*348482*/ OPC_MoveParent, ++/*348483*/ OPC_MoveChild, 12, ++/*348485*/ OPC_CheckInteger, 1, ++/*348487*/ OPC_CheckType, MVT::i32, ++/*348489*/ OPC_MoveParent, ++/*348490*/ OPC_MoveChild, 13, ++/*348492*/ OPC_CheckInteger, 1, ++/*348494*/ OPC_CheckType, MVT::i32, ++/*348496*/ OPC_MoveParent, ++/*348497*/ OPC_MoveChild, 14, ++/*348499*/ OPC_CheckInteger, 1, ++/*348501*/ OPC_CheckType, MVT::i32, ++/*348503*/ OPC_MoveParent, ++/*348504*/ OPC_MoveChild, 15, ++/*348506*/ OPC_CheckInteger, 1, ++/*348508*/ OPC_CheckType, MVT::i32, ++/*348510*/ OPC_MoveParent, ++/*348511*/ OPC_MoveParent, ++/*348512*/ OPC_MoveParent, ++/*348513*/ OPC_RecordChild1, // #1 = $a ++/*348514*/ OPC_MoveParent, ++/*348515*/ OPC_MoveChild1, ++/*348516*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*348519*/ OPC_CheckChild0Integer, 7, ++/*348521*/ OPC_CheckChild0Type, MVT::i32, ++/*348523*/ OPC_CheckChild1Integer, 7, ++/*348525*/ OPC_CheckChild1Type, MVT::i32, ++/*348527*/ OPC_CheckChild2Integer, 7, ++/*348529*/ OPC_CheckChild2Type, MVT::i32, ++/*348531*/ OPC_CheckChild3Integer, 7, ++/*348533*/ OPC_CheckChild3Type, MVT::i32, ++/*348535*/ OPC_CheckChild4Integer, 7, ++/*348537*/ OPC_CheckChild4Type, MVT::i32, ++/*348539*/ OPC_MoveChild5, ++/*348540*/ OPC_CheckInteger, 7, ++/*348542*/ OPC_CheckType, MVT::i32, ++/*348544*/ OPC_MoveParent, ++/*348545*/ OPC_MoveChild6, ++/*348546*/ OPC_CheckInteger, 7, ++/*348548*/ OPC_CheckType, MVT::i32, ++/*348550*/ OPC_MoveParent, ++/*348551*/ OPC_MoveChild7, ++/*348552*/ OPC_CheckInteger, 7, ++/*348554*/ OPC_CheckType, MVT::i32, ++/*348556*/ OPC_MoveParent, ++/*348557*/ OPC_MoveChild, 8, ++/*348559*/ OPC_CheckInteger, 7, ++/*348561*/ OPC_CheckType, MVT::i32, ++/*348563*/ OPC_MoveParent, ++/*348564*/ OPC_MoveChild, 9, ++/*348566*/ OPC_CheckInteger, 7, ++/*348568*/ OPC_CheckType, MVT::i32, ++/*348570*/ OPC_MoveParent, ++/*348571*/ OPC_MoveChild, 10, ++/*348573*/ OPC_CheckInteger, 7, ++/*348575*/ OPC_CheckType, MVT::i32, ++/*348577*/ OPC_MoveParent, ++/*348578*/ OPC_MoveChild, 11, ++/*348580*/ OPC_CheckInteger, 7, ++/*348582*/ OPC_CheckType, MVT::i32, ++/*348584*/ OPC_MoveParent, ++/*348585*/ OPC_MoveChild, 12, ++/*348587*/ OPC_CheckInteger, 7, ++/*348589*/ OPC_CheckType, MVT::i32, ++/*348591*/ OPC_MoveParent, ++/*348592*/ OPC_MoveChild, 13, ++/*348594*/ OPC_CheckInteger, 7, ++/*348596*/ OPC_CheckType, MVT::i32, ++/*348598*/ OPC_MoveParent, ++/*348599*/ OPC_MoveChild, 14, ++/*348601*/ OPC_CheckInteger, 7, ++/*348603*/ OPC_CheckType, MVT::i32, ++/*348605*/ OPC_MoveParent, ++/*348606*/ OPC_MoveChild, 15, ++/*348608*/ OPC_CheckInteger, 7, ++/*348610*/ OPC_CheckType, MVT::i32, ++/*348612*/ OPC_MoveParent, ++/*348613*/ OPC_CheckType, MVT::v16i8, ++/*348615*/ OPC_MoveParent, ++/*348616*/ OPC_MoveParent, ++/*348617*/ OPC_MoveChild1, ++/*348618*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*348621*/ OPC_Scope, 52|128,10/*1332*/, /*->349956*/ // 4 children in Scope ++/*348624*/ OPC_MoveChild0, ++/*348625*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*348628*/ OPC_Scope, 91|128,1/*219*/, /*->348850*/ // 6 children in Scope ++/*348631*/ OPC_MoveChild0, ++/*348632*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*348635*/ OPC_CheckChild0Integer, 1, ++/*348637*/ OPC_CheckChild0Type, MVT::i32, ++/*348639*/ OPC_CheckChild1Integer, 1, ++/*348641*/ OPC_CheckChild1Type, MVT::i32, ++/*348643*/ OPC_CheckChild2Integer, 1, ++/*348645*/ OPC_CheckChild2Type, MVT::i32, ++/*348647*/ OPC_CheckChild3Integer, 1, ++/*348649*/ OPC_CheckChild3Type, MVT::i32, ++/*348651*/ OPC_CheckChild4Integer, 1, ++/*348653*/ OPC_CheckChild4Type, MVT::i32, ++/*348655*/ OPC_MoveChild5, ++/*348656*/ OPC_CheckInteger, 1, ++/*348658*/ OPC_CheckType, MVT::i32, ++/*348660*/ OPC_MoveParent, ++/*348661*/ OPC_MoveChild6, ++/*348662*/ OPC_CheckInteger, 1, ++/*348664*/ OPC_CheckType, MVT::i32, ++/*348666*/ OPC_MoveParent, ++/*348667*/ OPC_MoveChild7, ++/*348668*/ OPC_CheckInteger, 1, ++/*348670*/ OPC_CheckType, MVT::i32, ++/*348672*/ OPC_MoveParent, ++/*348673*/ OPC_MoveChild, 8, ++/*348675*/ OPC_CheckInteger, 1, ++/*348677*/ OPC_CheckType, MVT::i32, ++/*348679*/ OPC_MoveParent, ++/*348680*/ OPC_MoveChild, 9, ++/*348682*/ OPC_CheckInteger, 1, ++/*348684*/ OPC_CheckType, MVT::i32, ++/*348686*/ OPC_MoveParent, ++/*348687*/ OPC_MoveChild, 10, ++/*348689*/ OPC_CheckInteger, 1, ++/*348691*/ OPC_CheckType, MVT::i32, ++/*348693*/ OPC_MoveParent, ++/*348694*/ OPC_MoveChild, 11, ++/*348696*/ OPC_CheckInteger, 1, ++/*348698*/ OPC_CheckType, MVT::i32, ++/*348700*/ OPC_MoveParent, ++/*348701*/ OPC_MoveChild, 12, ++/*348703*/ OPC_CheckInteger, 1, ++/*348705*/ OPC_CheckType, MVT::i32, ++/*348707*/ OPC_MoveParent, ++/*348708*/ OPC_MoveChild, 13, ++/*348710*/ OPC_CheckInteger, 1, ++/*348712*/ OPC_CheckType, MVT::i32, ++/*348714*/ OPC_MoveParent, ++/*348715*/ OPC_MoveChild, 14, ++/*348717*/ OPC_CheckInteger, 1, ++/*348719*/ OPC_CheckType, MVT::i32, ++/*348721*/ OPC_MoveParent, ++/*348722*/ OPC_MoveChild, 15, ++/*348724*/ OPC_CheckInteger, 1, ++/*348726*/ OPC_CheckType, MVT::i32, ++/*348728*/ OPC_MoveParent, ++/*348729*/ OPC_MoveParent, ++/*348730*/ OPC_CheckChild1Same, 1, ++/*348732*/ OPC_MoveParent, ++/*348733*/ OPC_CheckChild1Same, 0, ++/*348735*/ OPC_MoveParent, ++/*348736*/ OPC_MoveParent, ++/*348737*/ OPC_MoveChild1, ++/*348738*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*348741*/ OPC_CheckChild0Integer, 1, ++/*348743*/ OPC_CheckChild0Type, MVT::i32, ++/*348745*/ OPC_CheckChild1Integer, 1, ++/*348747*/ OPC_CheckChild1Type, MVT::i32, ++/*348749*/ OPC_CheckChild2Integer, 1, ++/*348751*/ OPC_CheckChild2Type, MVT::i32, ++/*348753*/ OPC_CheckChild3Integer, 1, ++/*348755*/ OPC_CheckChild3Type, MVT::i32, ++/*348757*/ OPC_CheckChild4Integer, 1, ++/*348759*/ OPC_CheckChild4Type, MVT::i32, ++/*348761*/ OPC_MoveChild5, ++/*348762*/ OPC_CheckInteger, 1, ++/*348764*/ OPC_CheckType, MVT::i32, ++/*348766*/ OPC_MoveParent, ++/*348767*/ OPC_MoveChild6, ++/*348768*/ OPC_CheckInteger, 1, ++/*348770*/ OPC_CheckType, MVT::i32, ++/*348772*/ OPC_MoveParent, ++/*348773*/ OPC_MoveChild7, ++/*348774*/ OPC_CheckInteger, 1, ++/*348776*/ OPC_CheckType, MVT::i32, ++/*348778*/ OPC_MoveParent, ++/*348779*/ OPC_MoveChild, 8, ++/*348781*/ OPC_CheckInteger, 1, ++/*348783*/ OPC_CheckType, MVT::i32, ++/*348785*/ OPC_MoveParent, ++/*348786*/ OPC_MoveChild, 9, ++/*348788*/ OPC_CheckInteger, 1, ++/*348790*/ OPC_CheckType, MVT::i32, ++/*348792*/ OPC_MoveParent, ++/*348793*/ OPC_MoveChild, 10, ++/*348795*/ OPC_CheckInteger, 1, ++/*348797*/ OPC_CheckType, MVT::i32, ++/*348799*/ OPC_MoveParent, ++/*348800*/ OPC_MoveChild, 11, ++/*348802*/ OPC_CheckInteger, 1, ++/*348804*/ OPC_CheckType, MVT::i32, ++/*348806*/ OPC_MoveParent, ++/*348807*/ OPC_MoveChild, 12, ++/*348809*/ OPC_CheckInteger, 1, ++/*348811*/ OPC_CheckType, MVT::i32, ++/*348813*/ OPC_MoveParent, ++/*348814*/ OPC_MoveChild, 13, ++/*348816*/ OPC_CheckInteger, 1, ++/*348818*/ OPC_CheckType, MVT::i32, ++/*348820*/ OPC_MoveParent, ++/*348821*/ OPC_MoveChild, 14, ++/*348823*/ OPC_CheckInteger, 1, ++/*348825*/ OPC_CheckType, MVT::i32, ++/*348827*/ OPC_MoveParent, ++/*348828*/ OPC_MoveChild, 15, ++/*348830*/ OPC_CheckInteger, 1, ++/*348832*/ OPC_CheckType, MVT::i32, ++/*348834*/ OPC_MoveParent, ++/*348835*/ OPC_CheckType, MVT::v16i8, ++/*348837*/ OPC_MoveParent, ++/*348838*/ OPC_CheckType, MVT::v16i8, ++/*348840*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*348842*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a), LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*348850*/ /*Scope*/ 91|128,1/*219*/, /*->349071*/ ++/*348852*/ OPC_CheckChild0Same, 1, ++/*348854*/ OPC_MoveChild1, ++/*348855*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*348858*/ OPC_CheckChild0Integer, 1, ++/*348860*/ OPC_CheckChild0Type, MVT::i32, ++/*348862*/ OPC_CheckChild1Integer, 1, ++/*348864*/ OPC_CheckChild1Type, MVT::i32, ++/*348866*/ OPC_CheckChild2Integer, 1, ++/*348868*/ OPC_CheckChild2Type, MVT::i32, ++/*348870*/ OPC_CheckChild3Integer, 1, ++/*348872*/ OPC_CheckChild3Type, MVT::i32, ++/*348874*/ OPC_CheckChild4Integer, 1, ++/*348876*/ OPC_CheckChild4Type, MVT::i32, ++/*348878*/ OPC_MoveChild5, ++/*348879*/ OPC_CheckInteger, 1, ++/*348881*/ OPC_CheckType, MVT::i32, ++/*348883*/ OPC_MoveParent, ++/*348884*/ OPC_MoveChild6, ++/*348885*/ OPC_CheckInteger, 1, ++/*348887*/ OPC_CheckType, MVT::i32, ++/*348889*/ OPC_MoveParent, ++/*348890*/ OPC_MoveChild7, ++/*348891*/ OPC_CheckInteger, 1, ++/*348893*/ OPC_CheckType, MVT::i32, ++/*348895*/ OPC_MoveParent, ++/*348896*/ OPC_MoveChild, 8, ++/*348898*/ OPC_CheckInteger, 1, ++/*348900*/ OPC_CheckType, MVT::i32, ++/*348902*/ OPC_MoveParent, ++/*348903*/ OPC_MoveChild, 9, ++/*348905*/ OPC_CheckInteger, 1, ++/*348907*/ OPC_CheckType, MVT::i32, ++/*348909*/ OPC_MoveParent, ++/*348910*/ OPC_MoveChild, 10, ++/*348912*/ OPC_CheckInteger, 1, ++/*348914*/ OPC_CheckType, MVT::i32, ++/*348916*/ OPC_MoveParent, ++/*348917*/ OPC_MoveChild, 11, ++/*348919*/ OPC_CheckInteger, 1, ++/*348921*/ OPC_CheckType, MVT::i32, ++/*348923*/ OPC_MoveParent, ++/*348924*/ OPC_MoveChild, 12, ++/*348926*/ OPC_CheckInteger, 1, ++/*348928*/ OPC_CheckType, MVT::i32, ++/*348930*/ OPC_MoveParent, ++/*348931*/ OPC_MoveChild, 13, ++/*348933*/ OPC_CheckInteger, 1, ++/*348935*/ OPC_CheckType, MVT::i32, ++/*348937*/ OPC_MoveParent, ++/*348938*/ OPC_MoveChild, 14, ++/*348940*/ OPC_CheckInteger, 1, ++/*348942*/ OPC_CheckType, MVT::i32, ++/*348944*/ OPC_MoveParent, ++/*348945*/ OPC_MoveChild, 15, ++/*348947*/ OPC_CheckInteger, 1, ++/*348949*/ OPC_CheckType, MVT::i32, ++/*348951*/ OPC_MoveParent, ++/*348952*/ OPC_MoveParent, ++/*348953*/ OPC_MoveParent, ++/*348954*/ OPC_CheckChild1Same, 0, ++/*348956*/ OPC_MoveParent, ++/*348957*/ OPC_MoveParent, ++/*348958*/ OPC_MoveChild1, ++/*348959*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*348962*/ OPC_CheckChild0Integer, 1, ++/*348964*/ OPC_CheckChild0Type, MVT::i32, ++/*348966*/ OPC_CheckChild1Integer, 1, ++/*348968*/ OPC_CheckChild1Type, MVT::i32, ++/*348970*/ OPC_CheckChild2Integer, 1, ++/*348972*/ OPC_CheckChild2Type, MVT::i32, ++/*348974*/ OPC_CheckChild3Integer, 1, ++/*348976*/ OPC_CheckChild3Type, MVT::i32, ++/*348978*/ OPC_CheckChild4Integer, 1, ++/*348980*/ OPC_CheckChild4Type, MVT::i32, ++/*348982*/ OPC_MoveChild5, ++/*348983*/ OPC_CheckInteger, 1, ++/*348985*/ OPC_CheckType, MVT::i32, ++/*348987*/ OPC_MoveParent, ++/*348988*/ OPC_MoveChild6, ++/*348989*/ OPC_CheckInteger, 1, ++/*348991*/ OPC_CheckType, MVT::i32, ++/*348993*/ OPC_MoveParent, ++/*348994*/ OPC_MoveChild7, ++/*348995*/ OPC_CheckInteger, 1, ++/*348997*/ OPC_CheckType, MVT::i32, ++/*348999*/ OPC_MoveParent, ++/*349000*/ OPC_MoveChild, 8, ++/*349002*/ OPC_CheckInteger, 1, ++/*349004*/ OPC_CheckType, MVT::i32, ++/*349006*/ OPC_MoveParent, ++/*349007*/ OPC_MoveChild, 9, ++/*349009*/ OPC_CheckInteger, 1, ++/*349011*/ OPC_CheckType, MVT::i32, ++/*349013*/ OPC_MoveParent, ++/*349014*/ OPC_MoveChild, 10, ++/*349016*/ OPC_CheckInteger, 1, ++/*349018*/ OPC_CheckType, MVT::i32, ++/*349020*/ OPC_MoveParent, ++/*349021*/ OPC_MoveChild, 11, ++/*349023*/ OPC_CheckInteger, 1, ++/*349025*/ OPC_CheckType, MVT::i32, ++/*349027*/ OPC_MoveParent, ++/*349028*/ OPC_MoveChild, 12, ++/*349030*/ OPC_CheckInteger, 1, ++/*349032*/ OPC_CheckType, MVT::i32, ++/*349034*/ OPC_MoveParent, ++/*349035*/ OPC_MoveChild, 13, ++/*349037*/ OPC_CheckInteger, 1, ++/*349039*/ OPC_CheckType, MVT::i32, ++/*349041*/ OPC_MoveParent, ++/*349042*/ OPC_MoveChild, 14, ++/*349044*/ OPC_CheckInteger, 1, ++/*349046*/ OPC_CheckType, MVT::i32, ++/*349048*/ OPC_MoveParent, ++/*349049*/ OPC_MoveChild, 15, ++/*349051*/ OPC_CheckInteger, 1, ++/*349053*/ OPC_CheckType, MVT::i32, ++/*349055*/ OPC_MoveParent, ++/*349056*/ OPC_CheckType, MVT::v16i8, ++/*349058*/ OPC_MoveParent, ++/*349059*/ OPC_CheckType, MVT::v16i8, ++/*349061*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*349063*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*349071*/ /*Scope*/ 91|128,1/*219*/, /*->349292*/ ++/*349073*/ OPC_MoveChild0, ++/*349074*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*349077*/ OPC_CheckChild0Integer, 1, ++/*349079*/ OPC_CheckChild0Type, MVT::i32, ++/*349081*/ OPC_CheckChild1Integer, 1, ++/*349083*/ OPC_CheckChild1Type, MVT::i32, ++/*349085*/ OPC_CheckChild2Integer, 1, ++/*349087*/ OPC_CheckChild2Type, MVT::i32, ++/*349089*/ OPC_CheckChild3Integer, 1, ++/*349091*/ OPC_CheckChild3Type, MVT::i32, ++/*349093*/ OPC_CheckChild4Integer, 1, ++/*349095*/ OPC_CheckChild4Type, MVT::i32, ++/*349097*/ OPC_MoveChild5, ++/*349098*/ OPC_CheckInteger, 1, ++/*349100*/ OPC_CheckType, MVT::i32, ++/*349102*/ OPC_MoveParent, ++/*349103*/ OPC_MoveChild6, ++/*349104*/ OPC_CheckInteger, 1, ++/*349106*/ OPC_CheckType, MVT::i32, ++/*349108*/ OPC_MoveParent, ++/*349109*/ OPC_MoveChild7, ++/*349110*/ OPC_CheckInteger, 1, ++/*349112*/ OPC_CheckType, MVT::i32, ++/*349114*/ OPC_MoveParent, ++/*349115*/ OPC_MoveChild, 8, ++/*349117*/ OPC_CheckInteger, 1, ++/*349119*/ OPC_CheckType, MVT::i32, ++/*349121*/ OPC_MoveParent, ++/*349122*/ OPC_MoveChild, 9, ++/*349124*/ OPC_CheckInteger, 1, ++/*349126*/ OPC_CheckType, MVT::i32, ++/*349128*/ OPC_MoveParent, ++/*349129*/ OPC_MoveChild, 10, ++/*349131*/ OPC_CheckInteger, 1, ++/*349133*/ OPC_CheckType, MVT::i32, ++/*349135*/ OPC_MoveParent, ++/*349136*/ OPC_MoveChild, 11, ++/*349138*/ OPC_CheckInteger, 1, ++/*349140*/ OPC_CheckType, MVT::i32, ++/*349142*/ OPC_MoveParent, ++/*349143*/ OPC_MoveChild, 12, ++/*349145*/ OPC_CheckInteger, 1, ++/*349147*/ OPC_CheckType, MVT::i32, ++/*349149*/ OPC_MoveParent, ++/*349150*/ OPC_MoveChild, 13, ++/*349152*/ OPC_CheckInteger, 1, ++/*349154*/ OPC_CheckType, MVT::i32, ++/*349156*/ OPC_MoveParent, ++/*349157*/ OPC_MoveChild, 14, ++/*349159*/ OPC_CheckInteger, 1, ++/*349161*/ OPC_CheckType, MVT::i32, ++/*349163*/ OPC_MoveParent, ++/*349164*/ OPC_MoveChild, 15, ++/*349166*/ OPC_CheckInteger, 1, ++/*349168*/ OPC_CheckType, MVT::i32, ++/*349170*/ OPC_MoveParent, ++/*349171*/ OPC_MoveParent, ++/*349172*/ OPC_CheckChild1Same, 0, ++/*349174*/ OPC_MoveParent, ++/*349175*/ OPC_CheckChild1Same, 1, ++/*349177*/ OPC_MoveParent, ++/*349178*/ OPC_MoveParent, ++/*349179*/ OPC_MoveChild1, ++/*349180*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*349183*/ OPC_CheckChild0Integer, 1, ++/*349185*/ OPC_CheckChild0Type, MVT::i32, ++/*349187*/ OPC_CheckChild1Integer, 1, ++/*349189*/ OPC_CheckChild1Type, MVT::i32, ++/*349191*/ OPC_CheckChild2Integer, 1, ++/*349193*/ OPC_CheckChild2Type, MVT::i32, ++/*349195*/ OPC_CheckChild3Integer, 1, ++/*349197*/ OPC_CheckChild3Type, MVT::i32, ++/*349199*/ OPC_CheckChild4Integer, 1, ++/*349201*/ OPC_CheckChild4Type, MVT::i32, ++/*349203*/ OPC_MoveChild5, ++/*349204*/ OPC_CheckInteger, 1, ++/*349206*/ OPC_CheckType, MVT::i32, ++/*349208*/ OPC_MoveParent, ++/*349209*/ OPC_MoveChild6, ++/*349210*/ OPC_CheckInteger, 1, ++/*349212*/ OPC_CheckType, MVT::i32, ++/*349214*/ OPC_MoveParent, ++/*349215*/ OPC_MoveChild7, ++/*349216*/ OPC_CheckInteger, 1, ++/*349218*/ OPC_CheckType, MVT::i32, ++/*349220*/ OPC_MoveParent, ++/*349221*/ OPC_MoveChild, 8, ++/*349223*/ OPC_CheckInteger, 1, ++/*349225*/ OPC_CheckType, MVT::i32, ++/*349227*/ OPC_MoveParent, ++/*349228*/ OPC_MoveChild, 9, ++/*349230*/ OPC_CheckInteger, 1, ++/*349232*/ OPC_CheckType, MVT::i32, ++/*349234*/ OPC_MoveParent, ++/*349235*/ OPC_MoveChild, 10, ++/*349237*/ OPC_CheckInteger, 1, ++/*349239*/ OPC_CheckType, MVT::i32, ++/*349241*/ OPC_MoveParent, ++/*349242*/ OPC_MoveChild, 11, ++/*349244*/ OPC_CheckInteger, 1, ++/*349246*/ OPC_CheckType, MVT::i32, ++/*349248*/ OPC_MoveParent, ++/*349249*/ OPC_MoveChild, 12, ++/*349251*/ OPC_CheckInteger, 1, ++/*349253*/ OPC_CheckType, MVT::i32, ++/*349255*/ OPC_MoveParent, ++/*349256*/ OPC_MoveChild, 13, ++/*349258*/ OPC_CheckInteger, 1, ++/*349260*/ OPC_CheckType, MVT::i32, ++/*349262*/ OPC_MoveParent, ++/*349263*/ OPC_MoveChild, 14, ++/*349265*/ OPC_CheckInteger, 1, ++/*349267*/ OPC_CheckType, MVT::i32, ++/*349269*/ OPC_MoveParent, ++/*349270*/ OPC_MoveChild, 15, ++/*349272*/ OPC_CheckInteger, 1, ++/*349274*/ OPC_CheckType, MVT::i32, ++/*349276*/ OPC_MoveParent, ++/*349277*/ OPC_CheckType, MVT::v16i8, ++/*349279*/ OPC_MoveParent, ++/*349280*/ OPC_CheckType, MVT::v16i8, ++/*349282*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*349284*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b), LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*349292*/ /*Scope*/ 91|128,1/*219*/, /*->349513*/ ++/*349294*/ OPC_CheckChild0Same, 0, ++/*349296*/ OPC_MoveChild1, ++/*349297*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*349300*/ OPC_CheckChild0Integer, 1, ++/*349302*/ OPC_CheckChild0Type, MVT::i32, ++/*349304*/ OPC_CheckChild1Integer, 1, ++/*349306*/ OPC_CheckChild1Type, MVT::i32, ++/*349308*/ OPC_CheckChild2Integer, 1, ++/*349310*/ OPC_CheckChild2Type, MVT::i32, ++/*349312*/ OPC_CheckChild3Integer, 1, ++/*349314*/ OPC_CheckChild3Type, MVT::i32, ++/*349316*/ OPC_CheckChild4Integer, 1, ++/*349318*/ OPC_CheckChild4Type, MVT::i32, ++/*349320*/ OPC_MoveChild5, ++/*349321*/ OPC_CheckInteger, 1, ++/*349323*/ OPC_CheckType, MVT::i32, ++/*349325*/ OPC_MoveParent, ++/*349326*/ OPC_MoveChild6, ++/*349327*/ OPC_CheckInteger, 1, ++/*349329*/ OPC_CheckType, MVT::i32, ++/*349331*/ OPC_MoveParent, ++/*349332*/ OPC_MoveChild7, ++/*349333*/ OPC_CheckInteger, 1, ++/*349335*/ OPC_CheckType, MVT::i32, ++/*349337*/ OPC_MoveParent, ++/*349338*/ OPC_MoveChild, 8, ++/*349340*/ OPC_CheckInteger, 1, ++/*349342*/ OPC_CheckType, MVT::i32, ++/*349344*/ OPC_MoveParent, ++/*349345*/ OPC_MoveChild, 9, ++/*349347*/ OPC_CheckInteger, 1, ++/*349349*/ OPC_CheckType, MVT::i32, ++/*349351*/ OPC_MoveParent, ++/*349352*/ OPC_MoveChild, 10, ++/*349354*/ OPC_CheckInteger, 1, ++/*349356*/ OPC_CheckType, MVT::i32, ++/*349358*/ OPC_MoveParent, ++/*349359*/ OPC_MoveChild, 11, ++/*349361*/ OPC_CheckInteger, 1, ++/*349363*/ OPC_CheckType, MVT::i32, ++/*349365*/ OPC_MoveParent, ++/*349366*/ OPC_MoveChild, 12, ++/*349368*/ OPC_CheckInteger, 1, ++/*349370*/ OPC_CheckType, MVT::i32, ++/*349372*/ OPC_MoveParent, ++/*349373*/ OPC_MoveChild, 13, ++/*349375*/ OPC_CheckInteger, 1, ++/*349377*/ OPC_CheckType, MVT::i32, ++/*349379*/ OPC_MoveParent, ++/*349380*/ OPC_MoveChild, 14, ++/*349382*/ OPC_CheckInteger, 1, ++/*349384*/ OPC_CheckType, MVT::i32, ++/*349386*/ OPC_MoveParent, ++/*349387*/ OPC_MoveChild, 15, ++/*349389*/ OPC_CheckInteger, 1, ++/*349391*/ OPC_CheckType, MVT::i32, ++/*349393*/ OPC_MoveParent, ++/*349394*/ OPC_MoveParent, ++/*349395*/ OPC_MoveParent, ++/*349396*/ OPC_CheckChild1Same, 1, ++/*349398*/ OPC_MoveParent, ++/*349399*/ OPC_MoveParent, ++/*349400*/ OPC_MoveChild1, ++/*349401*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*349404*/ OPC_CheckChild0Integer, 1, ++/*349406*/ OPC_CheckChild0Type, MVT::i32, ++/*349408*/ OPC_CheckChild1Integer, 1, ++/*349410*/ OPC_CheckChild1Type, MVT::i32, ++/*349412*/ OPC_CheckChild2Integer, 1, ++/*349414*/ OPC_CheckChild2Type, MVT::i32, ++/*349416*/ OPC_CheckChild3Integer, 1, ++/*349418*/ OPC_CheckChild3Type, MVT::i32, ++/*349420*/ OPC_CheckChild4Integer, 1, ++/*349422*/ OPC_CheckChild4Type, MVT::i32, ++/*349424*/ OPC_MoveChild5, ++/*349425*/ OPC_CheckInteger, 1, ++/*349427*/ OPC_CheckType, MVT::i32, ++/*349429*/ OPC_MoveParent, ++/*349430*/ OPC_MoveChild6, ++/*349431*/ OPC_CheckInteger, 1, ++/*349433*/ OPC_CheckType, MVT::i32, ++/*349435*/ OPC_MoveParent, ++/*349436*/ OPC_MoveChild7, ++/*349437*/ OPC_CheckInteger, 1, ++/*349439*/ OPC_CheckType, MVT::i32, ++/*349441*/ OPC_MoveParent, ++/*349442*/ OPC_MoveChild, 8, ++/*349444*/ OPC_CheckInteger, 1, ++/*349446*/ OPC_CheckType, MVT::i32, ++/*349448*/ OPC_MoveParent, ++/*349449*/ OPC_MoveChild, 9, ++/*349451*/ OPC_CheckInteger, 1, ++/*349453*/ OPC_CheckType, MVT::i32, ++/*349455*/ OPC_MoveParent, ++/*349456*/ OPC_MoveChild, 10, ++/*349458*/ OPC_CheckInteger, 1, ++/*349460*/ OPC_CheckType, MVT::i32, ++/*349462*/ OPC_MoveParent, ++/*349463*/ OPC_MoveChild, 11, ++/*349465*/ OPC_CheckInteger, 1, ++/*349467*/ OPC_CheckType, MVT::i32, ++/*349469*/ OPC_MoveParent, ++/*349470*/ OPC_MoveChild, 12, ++/*349472*/ OPC_CheckInteger, 1, ++/*349474*/ OPC_CheckType, MVT::i32, ++/*349476*/ OPC_MoveParent, ++/*349477*/ OPC_MoveChild, 13, ++/*349479*/ OPC_CheckInteger, 1, ++/*349481*/ OPC_CheckType, MVT::i32, ++/*349483*/ OPC_MoveParent, ++/*349484*/ OPC_MoveChild, 14, ++/*349486*/ OPC_CheckInteger, 1, ++/*349488*/ OPC_CheckType, MVT::i32, ++/*349490*/ OPC_MoveParent, ++/*349491*/ OPC_MoveChild, 15, ++/*349493*/ OPC_CheckInteger, 1, ++/*349495*/ OPC_CheckType, MVT::i32, ++/*349497*/ OPC_MoveParent, ++/*349498*/ OPC_CheckType, MVT::v16i8, ++/*349500*/ OPC_MoveParent, ++/*349501*/ OPC_CheckType, MVT::v16i8, ++/*349503*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*349505*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*349513*/ /*Scope*/ 91|128,1/*219*/, /*->349734*/ ++/*349515*/ OPC_CheckChild0Same, 1, ++/*349517*/ OPC_CheckChild1Same, 0, ++/*349519*/ OPC_MoveParent, ++/*349520*/ OPC_MoveChild1, ++/*349521*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*349524*/ OPC_CheckChild0Integer, 1, ++/*349526*/ OPC_CheckChild0Type, MVT::i32, ++/*349528*/ OPC_CheckChild1Integer, 1, ++/*349530*/ OPC_CheckChild1Type, MVT::i32, ++/*349532*/ OPC_CheckChild2Integer, 1, ++/*349534*/ OPC_CheckChild2Type, MVT::i32, ++/*349536*/ OPC_CheckChild3Integer, 1, ++/*349538*/ OPC_CheckChild3Type, MVT::i32, ++/*349540*/ OPC_CheckChild4Integer, 1, ++/*349542*/ OPC_CheckChild4Type, MVT::i32, ++/*349544*/ OPC_MoveChild5, ++/*349545*/ OPC_CheckInteger, 1, ++/*349547*/ OPC_CheckType, MVT::i32, ++/*349549*/ OPC_MoveParent, ++/*349550*/ OPC_MoveChild6, ++/*349551*/ OPC_CheckInteger, 1, ++/*349553*/ OPC_CheckType, MVT::i32, ++/*349555*/ OPC_MoveParent, ++/*349556*/ OPC_MoveChild7, ++/*349557*/ OPC_CheckInteger, 1, ++/*349559*/ OPC_CheckType, MVT::i32, ++/*349561*/ OPC_MoveParent, ++/*349562*/ OPC_MoveChild, 8, ++/*349564*/ OPC_CheckInteger, 1, ++/*349566*/ OPC_CheckType, MVT::i32, ++/*349568*/ OPC_MoveParent, ++/*349569*/ OPC_MoveChild, 9, ++/*349571*/ OPC_CheckInteger, 1, ++/*349573*/ OPC_CheckType, MVT::i32, ++/*349575*/ OPC_MoveParent, ++/*349576*/ OPC_MoveChild, 10, ++/*349578*/ OPC_CheckInteger, 1, ++/*349580*/ OPC_CheckType, MVT::i32, ++/*349582*/ OPC_MoveParent, ++/*349583*/ OPC_MoveChild, 11, ++/*349585*/ OPC_CheckInteger, 1, ++/*349587*/ OPC_CheckType, MVT::i32, ++/*349589*/ OPC_MoveParent, ++/*349590*/ OPC_MoveChild, 12, ++/*349592*/ OPC_CheckInteger, 1, ++/*349594*/ OPC_CheckType, MVT::i32, ++/*349596*/ OPC_MoveParent, ++/*349597*/ OPC_MoveChild, 13, ++/*349599*/ OPC_CheckInteger, 1, ++/*349601*/ OPC_CheckType, MVT::i32, ++/*349603*/ OPC_MoveParent, ++/*349604*/ OPC_MoveChild, 14, ++/*349606*/ OPC_CheckInteger, 1, ++/*349608*/ OPC_CheckType, MVT::i32, ++/*349610*/ OPC_MoveParent, ++/*349611*/ OPC_MoveChild, 15, ++/*349613*/ OPC_CheckInteger, 1, ++/*349615*/ OPC_CheckType, MVT::i32, ++/*349617*/ OPC_MoveParent, ++/*349618*/ OPC_MoveParent, ++/*349619*/ OPC_MoveParent, ++/*349620*/ OPC_MoveParent, ++/*349621*/ OPC_MoveChild1, ++/*349622*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*349625*/ OPC_CheckChild0Integer, 1, ++/*349627*/ OPC_CheckChild0Type, MVT::i32, ++/*349629*/ OPC_CheckChild1Integer, 1, ++/*349631*/ OPC_CheckChild1Type, MVT::i32, ++/*349633*/ OPC_CheckChild2Integer, 1, ++/*349635*/ OPC_CheckChild2Type, MVT::i32, ++/*349637*/ OPC_CheckChild3Integer, 1, ++/*349639*/ OPC_CheckChild3Type, MVT::i32, ++/*349641*/ OPC_CheckChild4Integer, 1, ++/*349643*/ OPC_CheckChild4Type, MVT::i32, ++/*349645*/ OPC_MoveChild5, ++/*349646*/ OPC_CheckInteger, 1, ++/*349648*/ OPC_CheckType, MVT::i32, ++/*349650*/ OPC_MoveParent, ++/*349651*/ OPC_MoveChild6, ++/*349652*/ OPC_CheckInteger, 1, ++/*349654*/ OPC_CheckType, MVT::i32, ++/*349656*/ OPC_MoveParent, ++/*349657*/ OPC_MoveChild7, ++/*349658*/ OPC_CheckInteger, 1, ++/*349660*/ OPC_CheckType, MVT::i32, ++/*349662*/ OPC_MoveParent, ++/*349663*/ OPC_MoveChild, 8, ++/*349665*/ OPC_CheckInteger, 1, ++/*349667*/ OPC_CheckType, MVT::i32, ++/*349669*/ OPC_MoveParent, ++/*349670*/ OPC_MoveChild, 9, ++/*349672*/ OPC_CheckInteger, 1, ++/*349674*/ OPC_CheckType, MVT::i32, ++/*349676*/ OPC_MoveParent, ++/*349677*/ OPC_MoveChild, 10, ++/*349679*/ OPC_CheckInteger, 1, ++/*349681*/ OPC_CheckType, MVT::i32, ++/*349683*/ OPC_MoveParent, ++/*349684*/ OPC_MoveChild, 11, ++/*349686*/ OPC_CheckInteger, 1, ++/*349688*/ OPC_CheckType, MVT::i32, ++/*349690*/ OPC_MoveParent, ++/*349691*/ OPC_MoveChild, 12, ++/*349693*/ OPC_CheckInteger, 1, ++/*349695*/ OPC_CheckType, MVT::i32, ++/*349697*/ OPC_MoveParent, ++/*349698*/ OPC_MoveChild, 13, ++/*349700*/ OPC_CheckInteger, 1, ++/*349702*/ OPC_CheckType, MVT::i32, ++/*349704*/ OPC_MoveParent, ++/*349705*/ OPC_MoveChild, 14, ++/*349707*/ OPC_CheckInteger, 1, ++/*349709*/ OPC_CheckType, MVT::i32, ++/*349711*/ OPC_MoveParent, ++/*349712*/ OPC_MoveChild, 15, ++/*349714*/ OPC_CheckInteger, 1, ++/*349716*/ OPC_CheckType, MVT::i32, ++/*349718*/ OPC_MoveParent, ++/*349719*/ OPC_CheckType, MVT::v16i8, ++/*349721*/ OPC_MoveParent, ++/*349722*/ OPC_CheckType, MVT::v16i8, ++/*349724*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*349726*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*349734*/ /*Scope*/ 91|128,1/*219*/, /*->349955*/ ++/*349736*/ OPC_CheckChild0Same, 0, ++/*349738*/ OPC_CheckChild1Same, 1, ++/*349740*/ OPC_MoveParent, ++/*349741*/ OPC_MoveChild1, ++/*349742*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*349745*/ OPC_CheckChild0Integer, 1, ++/*349747*/ OPC_CheckChild0Type, MVT::i32, ++/*349749*/ OPC_CheckChild1Integer, 1, ++/*349751*/ OPC_CheckChild1Type, MVT::i32, ++/*349753*/ OPC_CheckChild2Integer, 1, ++/*349755*/ OPC_CheckChild2Type, MVT::i32, ++/*349757*/ OPC_CheckChild3Integer, 1, ++/*349759*/ OPC_CheckChild3Type, MVT::i32, ++/*349761*/ OPC_CheckChild4Integer, 1, ++/*349763*/ OPC_CheckChild4Type, MVT::i32, ++/*349765*/ OPC_MoveChild5, ++/*349766*/ OPC_CheckInteger, 1, ++/*349768*/ OPC_CheckType, MVT::i32, ++/*349770*/ OPC_MoveParent, ++/*349771*/ OPC_MoveChild6, ++/*349772*/ OPC_CheckInteger, 1, ++/*349774*/ OPC_CheckType, MVT::i32, ++/*349776*/ OPC_MoveParent, ++/*349777*/ OPC_MoveChild7, ++/*349778*/ OPC_CheckInteger, 1, ++/*349780*/ OPC_CheckType, MVT::i32, ++/*349782*/ OPC_MoveParent, ++/*349783*/ OPC_MoveChild, 8, ++/*349785*/ OPC_CheckInteger, 1, ++/*349787*/ OPC_CheckType, MVT::i32, ++/*349789*/ OPC_MoveParent, ++/*349790*/ OPC_MoveChild, 9, ++/*349792*/ OPC_CheckInteger, 1, ++/*349794*/ OPC_CheckType, MVT::i32, ++/*349796*/ OPC_MoveParent, ++/*349797*/ OPC_MoveChild, 10, ++/*349799*/ OPC_CheckInteger, 1, ++/*349801*/ OPC_CheckType, MVT::i32, ++/*349803*/ OPC_MoveParent, ++/*349804*/ OPC_MoveChild, 11, ++/*349806*/ OPC_CheckInteger, 1, ++/*349808*/ OPC_CheckType, MVT::i32, ++/*349810*/ OPC_MoveParent, ++/*349811*/ OPC_MoveChild, 12, ++/*349813*/ OPC_CheckInteger, 1, ++/*349815*/ OPC_CheckType, MVT::i32, ++/*349817*/ OPC_MoveParent, ++/*349818*/ OPC_MoveChild, 13, ++/*349820*/ OPC_CheckInteger, 1, ++/*349822*/ OPC_CheckType, MVT::i32, ++/*349824*/ OPC_MoveParent, ++/*349825*/ OPC_MoveChild, 14, ++/*349827*/ OPC_CheckInteger, 1, ++/*349829*/ OPC_CheckType, MVT::i32, ++/*349831*/ OPC_MoveParent, ++/*349832*/ OPC_MoveChild, 15, ++/*349834*/ OPC_CheckInteger, 1, ++/*349836*/ OPC_CheckType, MVT::i32, ++/*349838*/ OPC_MoveParent, ++/*349839*/ OPC_MoveParent, ++/*349840*/ OPC_MoveParent, ++/*349841*/ OPC_MoveParent, ++/*349842*/ OPC_MoveChild1, ++/*349843*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*349846*/ OPC_CheckChild0Integer, 1, ++/*349848*/ OPC_CheckChild0Type, MVT::i32, ++/*349850*/ OPC_CheckChild1Integer, 1, ++/*349852*/ OPC_CheckChild1Type, MVT::i32, ++/*349854*/ OPC_CheckChild2Integer, 1, ++/*349856*/ OPC_CheckChild2Type, MVT::i32, ++/*349858*/ OPC_CheckChild3Integer, 1, ++/*349860*/ OPC_CheckChild3Type, MVT::i32, ++/*349862*/ OPC_CheckChild4Integer, 1, ++/*349864*/ OPC_CheckChild4Type, MVT::i32, ++/*349866*/ OPC_MoveChild5, ++/*349867*/ OPC_CheckInteger, 1, ++/*349869*/ OPC_CheckType, MVT::i32, ++/*349871*/ OPC_MoveParent, ++/*349872*/ OPC_MoveChild6, ++/*349873*/ OPC_CheckInteger, 1, ++/*349875*/ OPC_CheckType, MVT::i32, ++/*349877*/ OPC_MoveParent, ++/*349878*/ OPC_MoveChild7, ++/*349879*/ OPC_CheckInteger, 1, ++/*349881*/ OPC_CheckType, MVT::i32, ++/*349883*/ OPC_MoveParent, ++/*349884*/ OPC_MoveChild, 8, ++/*349886*/ OPC_CheckInteger, 1, ++/*349888*/ OPC_CheckType, MVT::i32, ++/*349890*/ OPC_MoveParent, ++/*349891*/ OPC_MoveChild, 9, ++/*349893*/ OPC_CheckInteger, 1, ++/*349895*/ OPC_CheckType, MVT::i32, ++/*349897*/ OPC_MoveParent, ++/*349898*/ OPC_MoveChild, 10, ++/*349900*/ OPC_CheckInteger, 1, ++/*349902*/ OPC_CheckType, MVT::i32, ++/*349904*/ OPC_MoveParent, ++/*349905*/ OPC_MoveChild, 11, ++/*349907*/ OPC_CheckInteger, 1, ++/*349909*/ OPC_CheckType, MVT::i32, ++/*349911*/ OPC_MoveParent, ++/*349912*/ OPC_MoveChild, 12, ++/*349914*/ OPC_CheckInteger, 1, ++/*349916*/ OPC_CheckType, MVT::i32, ++/*349918*/ OPC_MoveParent, ++/*349919*/ OPC_MoveChild, 13, ++/*349921*/ OPC_CheckInteger, 1, ++/*349923*/ OPC_CheckType, MVT::i32, ++/*349925*/ OPC_MoveParent, ++/*349926*/ OPC_MoveChild, 14, ++/*349928*/ OPC_CheckInteger, 1, ++/*349930*/ OPC_CheckType, MVT::i32, ++/*349932*/ OPC_MoveParent, ++/*349933*/ OPC_MoveChild, 15, ++/*349935*/ OPC_CheckInteger, 1, ++/*349937*/ OPC_CheckType, MVT::i32, ++/*349939*/ OPC_MoveParent, ++/*349940*/ OPC_CheckType, MVT::v16i8, ++/*349942*/ OPC_MoveParent, ++/*349943*/ OPC_CheckType, MVT::v16i8, ++/*349945*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*349947*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*349955*/ 0, /*End of Scope*/ ++/*349956*/ /*Scope*/ 62|128,3/*446*/, /*->350404*/ ++/*349958*/ OPC_CheckChild0Same, 0, ++/*349960*/ OPC_MoveChild1, ++/*349961*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*349964*/ OPC_Scope, 89|128,1/*217*/, /*->350184*/ // 2 children in Scope ++/*349967*/ OPC_MoveChild0, ++/*349968*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*349971*/ OPC_CheckChild0Integer, 1, ++/*349973*/ OPC_CheckChild0Type, MVT::i32, ++/*349975*/ OPC_CheckChild1Integer, 1, ++/*349977*/ OPC_CheckChild1Type, MVT::i32, ++/*349979*/ OPC_CheckChild2Integer, 1, ++/*349981*/ OPC_CheckChild2Type, MVT::i32, ++/*349983*/ OPC_CheckChild3Integer, 1, ++/*349985*/ OPC_CheckChild3Type, MVT::i32, ++/*349987*/ OPC_CheckChild4Integer, 1, ++/*349989*/ OPC_CheckChild4Type, MVT::i32, ++/*349991*/ OPC_MoveChild5, ++/*349992*/ OPC_CheckInteger, 1, ++/*349994*/ OPC_CheckType, MVT::i32, ++/*349996*/ OPC_MoveParent, ++/*349997*/ OPC_MoveChild6, ++/*349998*/ OPC_CheckInteger, 1, ++/*350000*/ OPC_CheckType, MVT::i32, ++/*350002*/ OPC_MoveParent, ++/*350003*/ OPC_MoveChild7, ++/*350004*/ OPC_CheckInteger, 1, ++/*350006*/ OPC_CheckType, MVT::i32, ++/*350008*/ OPC_MoveParent, ++/*350009*/ OPC_MoveChild, 8, ++/*350011*/ OPC_CheckInteger, 1, ++/*350013*/ OPC_CheckType, MVT::i32, ++/*350015*/ OPC_MoveParent, ++/*350016*/ OPC_MoveChild, 9, ++/*350018*/ OPC_CheckInteger, 1, ++/*350020*/ OPC_CheckType, MVT::i32, ++/*350022*/ OPC_MoveParent, ++/*350023*/ OPC_MoveChild, 10, ++/*350025*/ OPC_CheckInteger, 1, ++/*350027*/ OPC_CheckType, MVT::i32, ++/*350029*/ OPC_MoveParent, ++/*350030*/ OPC_MoveChild, 11, ++/*350032*/ OPC_CheckInteger, 1, ++/*350034*/ OPC_CheckType, MVT::i32, ++/*350036*/ OPC_MoveParent, ++/*350037*/ OPC_MoveChild, 12, ++/*350039*/ OPC_CheckInteger, 1, ++/*350041*/ OPC_CheckType, MVT::i32, ++/*350043*/ OPC_MoveParent, ++/*350044*/ OPC_MoveChild, 13, ++/*350046*/ OPC_CheckInteger, 1, ++/*350048*/ OPC_CheckType, MVT::i32, ++/*350050*/ OPC_MoveParent, ++/*350051*/ OPC_MoveChild, 14, ++/*350053*/ OPC_CheckInteger, 1, ++/*350055*/ OPC_CheckType, MVT::i32, ++/*350057*/ OPC_MoveParent, ++/*350058*/ OPC_MoveChild, 15, ++/*350060*/ OPC_CheckInteger, 1, ++/*350062*/ OPC_CheckType, MVT::i32, ++/*350064*/ OPC_MoveParent, ++/*350065*/ OPC_MoveParent, ++/*350066*/ OPC_CheckChild1Same, 1, ++/*350068*/ OPC_MoveParent, ++/*350069*/ OPC_MoveParent, ++/*350070*/ OPC_MoveParent, ++/*350071*/ OPC_MoveChild1, ++/*350072*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*350075*/ OPC_CheckChild0Integer, 1, ++/*350077*/ OPC_CheckChild0Type, MVT::i32, ++/*350079*/ OPC_CheckChild1Integer, 1, ++/*350081*/ OPC_CheckChild1Type, MVT::i32, ++/*350083*/ OPC_CheckChild2Integer, 1, ++/*350085*/ OPC_CheckChild2Type, MVT::i32, ++/*350087*/ OPC_CheckChild3Integer, 1, ++/*350089*/ OPC_CheckChild3Type, MVT::i32, ++/*350091*/ OPC_CheckChild4Integer, 1, ++/*350093*/ OPC_CheckChild4Type, MVT::i32, ++/*350095*/ OPC_MoveChild5, ++/*350096*/ OPC_CheckInteger, 1, ++/*350098*/ OPC_CheckType, MVT::i32, ++/*350100*/ OPC_MoveParent, ++/*350101*/ OPC_MoveChild6, ++/*350102*/ OPC_CheckInteger, 1, ++/*350104*/ OPC_CheckType, MVT::i32, ++/*350106*/ OPC_MoveParent, ++/*350107*/ OPC_MoveChild7, ++/*350108*/ OPC_CheckInteger, 1, ++/*350110*/ OPC_CheckType, MVT::i32, ++/*350112*/ OPC_MoveParent, ++/*350113*/ OPC_MoveChild, 8, ++/*350115*/ OPC_CheckInteger, 1, ++/*350117*/ OPC_CheckType, MVT::i32, ++/*350119*/ OPC_MoveParent, ++/*350120*/ OPC_MoveChild, 9, ++/*350122*/ OPC_CheckInteger, 1, ++/*350124*/ OPC_CheckType, MVT::i32, ++/*350126*/ OPC_MoveParent, ++/*350127*/ OPC_MoveChild, 10, ++/*350129*/ OPC_CheckInteger, 1, ++/*350131*/ OPC_CheckType, MVT::i32, ++/*350133*/ OPC_MoveParent, ++/*350134*/ OPC_MoveChild, 11, ++/*350136*/ OPC_CheckInteger, 1, ++/*350138*/ OPC_CheckType, MVT::i32, ++/*350140*/ OPC_MoveParent, ++/*350141*/ OPC_MoveChild, 12, ++/*350143*/ OPC_CheckInteger, 1, ++/*350145*/ OPC_CheckType, MVT::i32, ++/*350147*/ OPC_MoveParent, ++/*350148*/ OPC_MoveChild, 13, ++/*350150*/ OPC_CheckInteger, 1, ++/*350152*/ OPC_CheckType, MVT::i32, ++/*350154*/ OPC_MoveParent, ++/*350155*/ OPC_MoveChild, 14, ++/*350157*/ OPC_CheckInteger, 1, ++/*350159*/ OPC_CheckType, MVT::i32, ++/*350161*/ OPC_MoveParent, ++/*350162*/ OPC_MoveChild, 15, ++/*350164*/ OPC_CheckInteger, 1, ++/*350166*/ OPC_CheckType, MVT::i32, ++/*350168*/ OPC_MoveParent, ++/*350169*/ OPC_CheckType, MVT::v16i8, ++/*350171*/ OPC_MoveParent, ++/*350172*/ OPC_CheckType, MVT::v16i8, ++/*350174*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*350176*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*350184*/ /*Scope*/ 89|128,1/*217*/, /*->350403*/ ++/*350186*/ OPC_CheckChild0Same, 1, ++/*350188*/ OPC_MoveChild1, ++/*350189*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*350192*/ OPC_CheckChild0Integer, 1, ++/*350194*/ OPC_CheckChild0Type, MVT::i32, ++/*350196*/ OPC_CheckChild1Integer, 1, ++/*350198*/ OPC_CheckChild1Type, MVT::i32, ++/*350200*/ OPC_CheckChild2Integer, 1, ++/*350202*/ OPC_CheckChild2Type, MVT::i32, ++/*350204*/ OPC_CheckChild3Integer, 1, ++/*350206*/ OPC_CheckChild3Type, MVT::i32, ++/*350208*/ OPC_CheckChild4Integer, 1, ++/*350210*/ OPC_CheckChild4Type, MVT::i32, ++/*350212*/ OPC_MoveChild5, ++/*350213*/ OPC_CheckInteger, 1, ++/*350215*/ OPC_CheckType, MVT::i32, ++/*350217*/ OPC_MoveParent, ++/*350218*/ OPC_MoveChild6, ++/*350219*/ OPC_CheckInteger, 1, ++/*350221*/ OPC_CheckType, MVT::i32, ++/*350223*/ OPC_MoveParent, ++/*350224*/ OPC_MoveChild7, ++/*350225*/ OPC_CheckInteger, 1, ++/*350227*/ OPC_CheckType, MVT::i32, ++/*350229*/ OPC_MoveParent, ++/*350230*/ OPC_MoveChild, 8, ++/*350232*/ OPC_CheckInteger, 1, ++/*350234*/ OPC_CheckType, MVT::i32, ++/*350236*/ OPC_MoveParent, ++/*350237*/ OPC_MoveChild, 9, ++/*350239*/ OPC_CheckInteger, 1, ++/*350241*/ OPC_CheckType, MVT::i32, ++/*350243*/ OPC_MoveParent, ++/*350244*/ OPC_MoveChild, 10, ++/*350246*/ OPC_CheckInteger, 1, ++/*350248*/ OPC_CheckType, MVT::i32, ++/*350250*/ OPC_MoveParent, ++/*350251*/ OPC_MoveChild, 11, ++/*350253*/ OPC_CheckInteger, 1, ++/*350255*/ OPC_CheckType, MVT::i32, ++/*350257*/ OPC_MoveParent, ++/*350258*/ OPC_MoveChild, 12, ++/*350260*/ OPC_CheckInteger, 1, ++/*350262*/ OPC_CheckType, MVT::i32, ++/*350264*/ OPC_MoveParent, ++/*350265*/ OPC_MoveChild, 13, ++/*350267*/ OPC_CheckInteger, 1, ++/*350269*/ OPC_CheckType, MVT::i32, ++/*350271*/ OPC_MoveParent, ++/*350272*/ OPC_MoveChild, 14, ++/*350274*/ OPC_CheckInteger, 1, ++/*350276*/ OPC_CheckType, MVT::i32, ++/*350278*/ OPC_MoveParent, ++/*350279*/ OPC_MoveChild, 15, ++/*350281*/ OPC_CheckInteger, 1, ++/*350283*/ OPC_CheckType, MVT::i32, ++/*350285*/ OPC_MoveParent, ++/*350286*/ OPC_MoveParent, ++/*350287*/ OPC_MoveParent, ++/*350288*/ OPC_MoveParent, ++/*350289*/ OPC_MoveParent, ++/*350290*/ OPC_MoveChild1, ++/*350291*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*350294*/ OPC_CheckChild0Integer, 1, ++/*350296*/ OPC_CheckChild0Type, MVT::i32, ++/*350298*/ OPC_CheckChild1Integer, 1, ++/*350300*/ OPC_CheckChild1Type, MVT::i32, ++/*350302*/ OPC_CheckChild2Integer, 1, ++/*350304*/ OPC_CheckChild2Type, MVT::i32, ++/*350306*/ OPC_CheckChild3Integer, 1, ++/*350308*/ OPC_CheckChild3Type, MVT::i32, ++/*350310*/ OPC_CheckChild4Integer, 1, ++/*350312*/ OPC_CheckChild4Type, MVT::i32, ++/*350314*/ OPC_MoveChild5, ++/*350315*/ OPC_CheckInteger, 1, ++/*350317*/ OPC_CheckType, MVT::i32, ++/*350319*/ OPC_MoveParent, ++/*350320*/ OPC_MoveChild6, ++/*350321*/ OPC_CheckInteger, 1, ++/*350323*/ OPC_CheckType, MVT::i32, ++/*350325*/ OPC_MoveParent, ++/*350326*/ OPC_MoveChild7, ++/*350327*/ OPC_CheckInteger, 1, ++/*350329*/ OPC_CheckType, MVT::i32, ++/*350331*/ OPC_MoveParent, ++/*350332*/ OPC_MoveChild, 8, ++/*350334*/ OPC_CheckInteger, 1, ++/*350336*/ OPC_CheckType, MVT::i32, ++/*350338*/ OPC_MoveParent, ++/*350339*/ OPC_MoveChild, 9, ++/*350341*/ OPC_CheckInteger, 1, ++/*350343*/ OPC_CheckType, MVT::i32, ++/*350345*/ OPC_MoveParent, ++/*350346*/ OPC_MoveChild, 10, ++/*350348*/ OPC_CheckInteger, 1, ++/*350350*/ OPC_CheckType, MVT::i32, ++/*350352*/ OPC_MoveParent, ++/*350353*/ OPC_MoveChild, 11, ++/*350355*/ OPC_CheckInteger, 1, ++/*350357*/ OPC_CheckType, MVT::i32, ++/*350359*/ OPC_MoveParent, ++/*350360*/ OPC_MoveChild, 12, ++/*350362*/ OPC_CheckInteger, 1, ++/*350364*/ OPC_CheckType, MVT::i32, ++/*350366*/ OPC_MoveParent, ++/*350367*/ OPC_MoveChild, 13, ++/*350369*/ OPC_CheckInteger, 1, ++/*350371*/ OPC_CheckType, MVT::i32, ++/*350373*/ OPC_MoveParent, ++/*350374*/ OPC_MoveChild, 14, ++/*350376*/ OPC_CheckInteger, 1, ++/*350378*/ OPC_CheckType, MVT::i32, ++/*350380*/ OPC_MoveParent, ++/*350381*/ OPC_MoveChild, 15, ++/*350383*/ OPC_CheckInteger, 1, ++/*350385*/ OPC_CheckType, MVT::i32, ++/*350387*/ OPC_MoveParent, ++/*350388*/ OPC_CheckType, MVT::v16i8, ++/*350390*/ OPC_MoveParent, ++/*350391*/ OPC_CheckType, MVT::v16i8, ++/*350393*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*350395*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*350403*/ 0, /*End of Scope*/ ++/*350404*/ /*Scope*/ 62|128,3/*446*/, /*->350852*/ ++/*350406*/ OPC_CheckChild0Same, 1, ++/*350408*/ OPC_MoveChild1, ++/*350409*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*350412*/ OPC_Scope, 89|128,1/*217*/, /*->350632*/ // 2 children in Scope ++/*350415*/ OPC_MoveChild0, ++/*350416*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*350419*/ OPC_CheckChild0Integer, 1, ++/*350421*/ OPC_CheckChild0Type, MVT::i32, ++/*350423*/ OPC_CheckChild1Integer, 1, ++/*350425*/ OPC_CheckChild1Type, MVT::i32, ++/*350427*/ OPC_CheckChild2Integer, 1, ++/*350429*/ OPC_CheckChild2Type, MVT::i32, ++/*350431*/ OPC_CheckChild3Integer, 1, ++/*350433*/ OPC_CheckChild3Type, MVT::i32, ++/*350435*/ OPC_CheckChild4Integer, 1, ++/*350437*/ OPC_CheckChild4Type, MVT::i32, ++/*350439*/ OPC_MoveChild5, ++/*350440*/ OPC_CheckInteger, 1, ++/*350442*/ OPC_CheckType, MVT::i32, ++/*350444*/ OPC_MoveParent, ++/*350445*/ OPC_MoveChild6, ++/*350446*/ OPC_CheckInteger, 1, ++/*350448*/ OPC_CheckType, MVT::i32, ++/*350450*/ OPC_MoveParent, ++/*350451*/ OPC_MoveChild7, ++/*350452*/ OPC_CheckInteger, 1, ++/*350454*/ OPC_CheckType, MVT::i32, ++/*350456*/ OPC_MoveParent, ++/*350457*/ OPC_MoveChild, 8, ++/*350459*/ OPC_CheckInteger, 1, ++/*350461*/ OPC_CheckType, MVT::i32, ++/*350463*/ OPC_MoveParent, ++/*350464*/ OPC_MoveChild, 9, ++/*350466*/ OPC_CheckInteger, 1, ++/*350468*/ OPC_CheckType, MVT::i32, ++/*350470*/ OPC_MoveParent, ++/*350471*/ OPC_MoveChild, 10, ++/*350473*/ OPC_CheckInteger, 1, ++/*350475*/ OPC_CheckType, MVT::i32, ++/*350477*/ OPC_MoveParent, ++/*350478*/ OPC_MoveChild, 11, ++/*350480*/ OPC_CheckInteger, 1, ++/*350482*/ OPC_CheckType, MVT::i32, ++/*350484*/ OPC_MoveParent, ++/*350485*/ OPC_MoveChild, 12, ++/*350487*/ OPC_CheckInteger, 1, ++/*350489*/ OPC_CheckType, MVT::i32, ++/*350491*/ OPC_MoveParent, ++/*350492*/ OPC_MoveChild, 13, ++/*350494*/ OPC_CheckInteger, 1, ++/*350496*/ OPC_CheckType, MVT::i32, ++/*350498*/ OPC_MoveParent, ++/*350499*/ OPC_MoveChild, 14, ++/*350501*/ OPC_CheckInteger, 1, ++/*350503*/ OPC_CheckType, MVT::i32, ++/*350505*/ OPC_MoveParent, ++/*350506*/ OPC_MoveChild, 15, ++/*350508*/ OPC_CheckInteger, 1, ++/*350510*/ OPC_CheckType, MVT::i32, ++/*350512*/ OPC_MoveParent, ++/*350513*/ OPC_MoveParent, ++/*350514*/ OPC_CheckChild1Same, 0, ++/*350516*/ OPC_MoveParent, ++/*350517*/ OPC_MoveParent, ++/*350518*/ OPC_MoveParent, ++/*350519*/ OPC_MoveChild1, ++/*350520*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*350523*/ OPC_CheckChild0Integer, 1, ++/*350525*/ OPC_CheckChild0Type, MVT::i32, ++/*350527*/ OPC_CheckChild1Integer, 1, ++/*350529*/ OPC_CheckChild1Type, MVT::i32, ++/*350531*/ OPC_CheckChild2Integer, 1, ++/*350533*/ OPC_CheckChild2Type, MVT::i32, ++/*350535*/ OPC_CheckChild3Integer, 1, ++/*350537*/ OPC_CheckChild3Type, MVT::i32, ++/*350539*/ OPC_CheckChild4Integer, 1, ++/*350541*/ OPC_CheckChild4Type, MVT::i32, ++/*350543*/ OPC_MoveChild5, ++/*350544*/ OPC_CheckInteger, 1, ++/*350546*/ OPC_CheckType, MVT::i32, ++/*350548*/ OPC_MoveParent, ++/*350549*/ OPC_MoveChild6, ++/*350550*/ OPC_CheckInteger, 1, ++/*350552*/ OPC_CheckType, MVT::i32, ++/*350554*/ OPC_MoveParent, ++/*350555*/ OPC_MoveChild7, ++/*350556*/ OPC_CheckInteger, 1, ++/*350558*/ OPC_CheckType, MVT::i32, ++/*350560*/ OPC_MoveParent, ++/*350561*/ OPC_MoveChild, 8, ++/*350563*/ OPC_CheckInteger, 1, ++/*350565*/ OPC_CheckType, MVT::i32, ++/*350567*/ OPC_MoveParent, ++/*350568*/ OPC_MoveChild, 9, ++/*350570*/ OPC_CheckInteger, 1, ++/*350572*/ OPC_CheckType, MVT::i32, ++/*350574*/ OPC_MoveParent, ++/*350575*/ OPC_MoveChild, 10, ++/*350577*/ OPC_CheckInteger, 1, ++/*350579*/ OPC_CheckType, MVT::i32, ++/*350581*/ OPC_MoveParent, ++/*350582*/ OPC_MoveChild, 11, ++/*350584*/ OPC_CheckInteger, 1, ++/*350586*/ OPC_CheckType, MVT::i32, ++/*350588*/ OPC_MoveParent, ++/*350589*/ OPC_MoveChild, 12, ++/*350591*/ OPC_CheckInteger, 1, ++/*350593*/ OPC_CheckType, MVT::i32, ++/*350595*/ OPC_MoveParent, ++/*350596*/ OPC_MoveChild, 13, ++/*350598*/ OPC_CheckInteger, 1, ++/*350600*/ OPC_CheckType, MVT::i32, ++/*350602*/ OPC_MoveParent, ++/*350603*/ OPC_MoveChild, 14, ++/*350605*/ OPC_CheckInteger, 1, ++/*350607*/ OPC_CheckType, MVT::i32, ++/*350609*/ OPC_MoveParent, ++/*350610*/ OPC_MoveChild, 15, ++/*350612*/ OPC_CheckInteger, 1, ++/*350614*/ OPC_CheckType, MVT::i32, ++/*350616*/ OPC_MoveParent, ++/*350617*/ OPC_CheckType, MVT::v16i8, ++/*350619*/ OPC_MoveParent, ++/*350620*/ OPC_CheckType, MVT::v16i8, ++/*350622*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*350624*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*350632*/ /*Scope*/ 89|128,1/*217*/, /*->350851*/ ++/*350634*/ OPC_CheckChild0Same, 0, ++/*350636*/ OPC_MoveChild1, ++/*350637*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*350640*/ OPC_CheckChild0Integer, 1, ++/*350642*/ OPC_CheckChild0Type, MVT::i32, ++/*350644*/ OPC_CheckChild1Integer, 1, ++/*350646*/ OPC_CheckChild1Type, MVT::i32, ++/*350648*/ OPC_CheckChild2Integer, 1, ++/*350650*/ OPC_CheckChild2Type, MVT::i32, ++/*350652*/ OPC_CheckChild3Integer, 1, ++/*350654*/ OPC_CheckChild3Type, MVT::i32, ++/*350656*/ OPC_CheckChild4Integer, 1, ++/*350658*/ OPC_CheckChild4Type, MVT::i32, ++/*350660*/ OPC_MoveChild5, ++/*350661*/ OPC_CheckInteger, 1, ++/*350663*/ OPC_CheckType, MVT::i32, ++/*350665*/ OPC_MoveParent, ++/*350666*/ OPC_MoveChild6, ++/*350667*/ OPC_CheckInteger, 1, ++/*350669*/ OPC_CheckType, MVT::i32, ++/*350671*/ OPC_MoveParent, ++/*350672*/ OPC_MoveChild7, ++/*350673*/ OPC_CheckInteger, 1, ++/*350675*/ OPC_CheckType, MVT::i32, ++/*350677*/ OPC_MoveParent, ++/*350678*/ OPC_MoveChild, 8, ++/*350680*/ OPC_CheckInteger, 1, ++/*350682*/ OPC_CheckType, MVT::i32, ++/*350684*/ OPC_MoveParent, ++/*350685*/ OPC_MoveChild, 9, ++/*350687*/ OPC_CheckInteger, 1, ++/*350689*/ OPC_CheckType, MVT::i32, ++/*350691*/ OPC_MoveParent, ++/*350692*/ OPC_MoveChild, 10, ++/*350694*/ OPC_CheckInteger, 1, ++/*350696*/ OPC_CheckType, MVT::i32, ++/*350698*/ OPC_MoveParent, ++/*350699*/ OPC_MoveChild, 11, ++/*350701*/ OPC_CheckInteger, 1, ++/*350703*/ OPC_CheckType, MVT::i32, ++/*350705*/ OPC_MoveParent, ++/*350706*/ OPC_MoveChild, 12, ++/*350708*/ OPC_CheckInteger, 1, ++/*350710*/ OPC_CheckType, MVT::i32, ++/*350712*/ OPC_MoveParent, ++/*350713*/ OPC_MoveChild, 13, ++/*350715*/ OPC_CheckInteger, 1, ++/*350717*/ OPC_CheckType, MVT::i32, ++/*350719*/ OPC_MoveParent, ++/*350720*/ OPC_MoveChild, 14, ++/*350722*/ OPC_CheckInteger, 1, ++/*350724*/ OPC_CheckType, MVT::i32, ++/*350726*/ OPC_MoveParent, ++/*350727*/ OPC_MoveChild, 15, ++/*350729*/ OPC_CheckInteger, 1, ++/*350731*/ OPC_CheckType, MVT::i32, ++/*350733*/ OPC_MoveParent, ++/*350734*/ OPC_MoveParent, ++/*350735*/ OPC_MoveParent, ++/*350736*/ OPC_MoveParent, ++/*350737*/ OPC_MoveParent, ++/*350738*/ OPC_MoveChild1, ++/*350739*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*350742*/ OPC_CheckChild0Integer, 1, ++/*350744*/ OPC_CheckChild0Type, MVT::i32, ++/*350746*/ OPC_CheckChild1Integer, 1, ++/*350748*/ OPC_CheckChild1Type, MVT::i32, ++/*350750*/ OPC_CheckChild2Integer, 1, ++/*350752*/ OPC_CheckChild2Type, MVT::i32, ++/*350754*/ OPC_CheckChild3Integer, 1, ++/*350756*/ OPC_CheckChild3Type, MVT::i32, ++/*350758*/ OPC_CheckChild4Integer, 1, ++/*350760*/ OPC_CheckChild4Type, MVT::i32, ++/*350762*/ OPC_MoveChild5, ++/*350763*/ OPC_CheckInteger, 1, ++/*350765*/ OPC_CheckType, MVT::i32, ++/*350767*/ OPC_MoveParent, ++/*350768*/ OPC_MoveChild6, ++/*350769*/ OPC_CheckInteger, 1, ++/*350771*/ OPC_CheckType, MVT::i32, ++/*350773*/ OPC_MoveParent, ++/*350774*/ OPC_MoveChild7, ++/*350775*/ OPC_CheckInteger, 1, ++/*350777*/ OPC_CheckType, MVT::i32, ++/*350779*/ OPC_MoveParent, ++/*350780*/ OPC_MoveChild, 8, ++/*350782*/ OPC_CheckInteger, 1, ++/*350784*/ OPC_CheckType, MVT::i32, ++/*350786*/ OPC_MoveParent, ++/*350787*/ OPC_MoveChild, 9, ++/*350789*/ OPC_CheckInteger, 1, ++/*350791*/ OPC_CheckType, MVT::i32, ++/*350793*/ OPC_MoveParent, ++/*350794*/ OPC_MoveChild, 10, ++/*350796*/ OPC_CheckInteger, 1, ++/*350798*/ OPC_CheckType, MVT::i32, ++/*350800*/ OPC_MoveParent, ++/*350801*/ OPC_MoveChild, 11, ++/*350803*/ OPC_CheckInteger, 1, ++/*350805*/ OPC_CheckType, MVT::i32, ++/*350807*/ OPC_MoveParent, ++/*350808*/ OPC_MoveChild, 12, ++/*350810*/ OPC_CheckInteger, 1, ++/*350812*/ OPC_CheckType, MVT::i32, ++/*350814*/ OPC_MoveParent, ++/*350815*/ OPC_MoveChild, 13, ++/*350817*/ OPC_CheckInteger, 1, ++/*350819*/ OPC_CheckType, MVT::i32, ++/*350821*/ OPC_MoveParent, ++/*350822*/ OPC_MoveChild, 14, ++/*350824*/ OPC_CheckInteger, 1, ++/*350826*/ OPC_CheckType, MVT::i32, ++/*350828*/ OPC_MoveParent, ++/*350829*/ OPC_MoveChild, 15, ++/*350831*/ OPC_CheckInteger, 1, ++/*350833*/ OPC_CheckType, MVT::i32, ++/*350835*/ OPC_MoveParent, ++/*350836*/ OPC_CheckType, MVT::v16i8, ++/*350838*/ OPC_MoveParent, ++/*350839*/ OPC_CheckType, MVT::v16i8, ++/*350841*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*350843*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*350851*/ 0, /*End of Scope*/ ++/*350852*/ /*Scope*/ 91|128,2/*347*/, /*->351201*/ ++/*350854*/ OPC_MoveChild0, ++/*350855*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*350858*/ OPC_CheckChild0Integer, 1, ++/*350860*/ OPC_CheckChild0Type, MVT::i32, ++/*350862*/ OPC_CheckChild1Integer, 1, ++/*350864*/ OPC_CheckChild1Type, MVT::i32, ++/*350866*/ OPC_CheckChild2Integer, 1, ++/*350868*/ OPC_CheckChild2Type, MVT::i32, ++/*350870*/ OPC_CheckChild3Integer, 1, ++/*350872*/ OPC_CheckChild3Type, MVT::i32, ++/*350874*/ OPC_CheckChild4Integer, 1, ++/*350876*/ OPC_CheckChild4Type, MVT::i32, ++/*350878*/ OPC_MoveChild5, ++/*350879*/ OPC_CheckInteger, 1, ++/*350881*/ OPC_CheckType, MVT::i32, ++/*350883*/ OPC_MoveParent, ++/*350884*/ OPC_MoveChild6, ++/*350885*/ OPC_CheckInteger, 1, ++/*350887*/ OPC_CheckType, MVT::i32, ++/*350889*/ OPC_MoveParent, ++/*350890*/ OPC_MoveChild7, ++/*350891*/ OPC_CheckInteger, 1, ++/*350893*/ OPC_CheckType, MVT::i32, ++/*350895*/ OPC_MoveParent, ++/*350896*/ OPC_MoveChild, 8, ++/*350898*/ OPC_CheckInteger, 1, ++/*350900*/ OPC_CheckType, MVT::i32, ++/*350902*/ OPC_MoveParent, ++/*350903*/ OPC_MoveChild, 9, ++/*350905*/ OPC_CheckInteger, 1, ++/*350907*/ OPC_CheckType, MVT::i32, ++/*350909*/ OPC_MoveParent, ++/*350910*/ OPC_MoveChild, 10, ++/*350912*/ OPC_CheckInteger, 1, ++/*350914*/ OPC_CheckType, MVT::i32, ++/*350916*/ OPC_MoveParent, ++/*350917*/ OPC_MoveChild, 11, ++/*350919*/ OPC_CheckInteger, 1, ++/*350921*/ OPC_CheckType, MVT::i32, ++/*350923*/ OPC_MoveParent, ++/*350924*/ OPC_MoveChild, 12, ++/*350926*/ OPC_CheckInteger, 1, ++/*350928*/ OPC_CheckType, MVT::i32, ++/*350930*/ OPC_MoveParent, ++/*350931*/ OPC_MoveChild, 13, ++/*350933*/ OPC_CheckInteger, 1, ++/*350935*/ OPC_CheckType, MVT::i32, ++/*350937*/ OPC_MoveParent, ++/*350938*/ OPC_MoveChild, 14, ++/*350940*/ OPC_CheckInteger, 1, ++/*350942*/ OPC_CheckType, MVT::i32, ++/*350944*/ OPC_MoveParent, ++/*350945*/ OPC_MoveChild, 15, ++/*350947*/ OPC_CheckInteger, 1, ++/*350949*/ OPC_CheckType, MVT::i32, ++/*350951*/ OPC_MoveParent, ++/*350952*/ OPC_MoveParent, ++/*350953*/ OPC_MoveChild1, ++/*350954*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*350957*/ OPC_Scope, 120, /*->351079*/ // 2 children in Scope ++/*350959*/ OPC_CheckChild0Same, 1, ++/*350961*/ OPC_CheckChild1Same, 0, ++/*350963*/ OPC_MoveParent, ++/*350964*/ OPC_MoveParent, ++/*350965*/ OPC_MoveParent, ++/*350966*/ OPC_MoveChild1, ++/*350967*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*350970*/ OPC_CheckChild0Integer, 1, ++/*350972*/ OPC_CheckChild0Type, MVT::i32, ++/*350974*/ OPC_CheckChild1Integer, 1, ++/*350976*/ OPC_CheckChild1Type, MVT::i32, ++/*350978*/ OPC_CheckChild2Integer, 1, ++/*350980*/ OPC_CheckChild2Type, MVT::i32, ++/*350982*/ OPC_CheckChild3Integer, 1, ++/*350984*/ OPC_CheckChild3Type, MVT::i32, ++/*350986*/ OPC_CheckChild4Integer, 1, ++/*350988*/ OPC_CheckChild4Type, MVT::i32, ++/*350990*/ OPC_MoveChild5, ++/*350991*/ OPC_CheckInteger, 1, ++/*350993*/ OPC_CheckType, MVT::i32, ++/*350995*/ OPC_MoveParent, ++/*350996*/ OPC_MoveChild6, ++/*350997*/ OPC_CheckInteger, 1, ++/*350999*/ OPC_CheckType, MVT::i32, ++/*351001*/ OPC_MoveParent, ++/*351002*/ OPC_MoveChild7, ++/*351003*/ OPC_CheckInteger, 1, ++/*351005*/ OPC_CheckType, MVT::i32, ++/*351007*/ OPC_MoveParent, ++/*351008*/ OPC_MoveChild, 8, ++/*351010*/ OPC_CheckInteger, 1, ++/*351012*/ OPC_CheckType, MVT::i32, ++/*351014*/ OPC_MoveParent, ++/*351015*/ OPC_MoveChild, 9, ++/*351017*/ OPC_CheckInteger, 1, ++/*351019*/ OPC_CheckType, MVT::i32, ++/*351021*/ OPC_MoveParent, ++/*351022*/ OPC_MoveChild, 10, ++/*351024*/ OPC_CheckInteger, 1, ++/*351026*/ OPC_CheckType, MVT::i32, ++/*351028*/ OPC_MoveParent, ++/*351029*/ OPC_MoveChild, 11, ++/*351031*/ OPC_CheckInteger, 1, ++/*351033*/ OPC_CheckType, MVT::i32, ++/*351035*/ OPC_MoveParent, ++/*351036*/ OPC_MoveChild, 12, ++/*351038*/ OPC_CheckInteger, 1, ++/*351040*/ OPC_CheckType, MVT::i32, ++/*351042*/ OPC_MoveParent, ++/*351043*/ OPC_MoveChild, 13, ++/*351045*/ OPC_CheckInteger, 1, ++/*351047*/ OPC_CheckType, MVT::i32, ++/*351049*/ OPC_MoveParent, ++/*351050*/ OPC_MoveChild, 14, ++/*351052*/ OPC_CheckInteger, 1, ++/*351054*/ OPC_CheckType, MVT::i32, ++/*351056*/ OPC_MoveParent, ++/*351057*/ OPC_MoveChild, 15, ++/*351059*/ OPC_CheckInteger, 1, ++/*351061*/ OPC_CheckType, MVT::i32, ++/*351063*/ OPC_MoveParent, ++/*351064*/ OPC_CheckType, MVT::v16i8, ++/*351066*/ OPC_MoveParent, ++/*351067*/ OPC_CheckType, MVT::v16i8, ++/*351069*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*351071*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*351079*/ /*Scope*/ 120, /*->351200*/ ++/*351080*/ OPC_CheckChild0Same, 0, ++/*351082*/ OPC_CheckChild1Same, 1, ++/*351084*/ OPC_MoveParent, ++/*351085*/ OPC_MoveParent, ++/*351086*/ OPC_MoveParent, ++/*351087*/ OPC_MoveChild1, ++/*351088*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*351091*/ OPC_CheckChild0Integer, 1, ++/*351093*/ OPC_CheckChild0Type, MVT::i32, ++/*351095*/ OPC_CheckChild1Integer, 1, ++/*351097*/ OPC_CheckChild1Type, MVT::i32, ++/*351099*/ OPC_CheckChild2Integer, 1, ++/*351101*/ OPC_CheckChild2Type, MVT::i32, ++/*351103*/ OPC_CheckChild3Integer, 1, ++/*351105*/ OPC_CheckChild3Type, MVT::i32, ++/*351107*/ OPC_CheckChild4Integer, 1, ++/*351109*/ OPC_CheckChild4Type, MVT::i32, ++/*351111*/ OPC_MoveChild5, ++/*351112*/ OPC_CheckInteger, 1, ++/*351114*/ OPC_CheckType, MVT::i32, ++/*351116*/ OPC_MoveParent, ++/*351117*/ OPC_MoveChild6, ++/*351118*/ OPC_CheckInteger, 1, ++/*351120*/ OPC_CheckType, MVT::i32, ++/*351122*/ OPC_MoveParent, ++/*351123*/ OPC_MoveChild7, ++/*351124*/ OPC_CheckInteger, 1, ++/*351126*/ OPC_CheckType, MVT::i32, ++/*351128*/ OPC_MoveParent, ++/*351129*/ OPC_MoveChild, 8, ++/*351131*/ OPC_CheckInteger, 1, ++/*351133*/ OPC_CheckType, MVT::i32, ++/*351135*/ OPC_MoveParent, ++/*351136*/ OPC_MoveChild, 9, ++/*351138*/ OPC_CheckInteger, 1, ++/*351140*/ OPC_CheckType, MVT::i32, ++/*351142*/ OPC_MoveParent, ++/*351143*/ OPC_MoveChild, 10, ++/*351145*/ OPC_CheckInteger, 1, ++/*351147*/ OPC_CheckType, MVT::i32, ++/*351149*/ OPC_MoveParent, ++/*351150*/ OPC_MoveChild, 11, ++/*351152*/ OPC_CheckInteger, 1, ++/*351154*/ OPC_CheckType, MVT::i32, ++/*351156*/ OPC_MoveParent, ++/*351157*/ OPC_MoveChild, 12, ++/*351159*/ OPC_CheckInteger, 1, ++/*351161*/ OPC_CheckType, MVT::i32, ++/*351163*/ OPC_MoveParent, ++/*351164*/ OPC_MoveChild, 13, ++/*351166*/ OPC_CheckInteger, 1, ++/*351168*/ OPC_CheckType, MVT::i32, ++/*351170*/ OPC_MoveParent, ++/*351171*/ OPC_MoveChild, 14, ++/*351173*/ OPC_CheckInteger, 1, ++/*351175*/ OPC_CheckType, MVT::i32, ++/*351177*/ OPC_MoveParent, ++/*351178*/ OPC_MoveChild, 15, ++/*351180*/ OPC_CheckInteger, 1, ++/*351182*/ OPC_CheckType, MVT::i32, ++/*351184*/ OPC_MoveParent, ++/*351185*/ OPC_CheckType, MVT::v16i8, ++/*351187*/ OPC_MoveParent, ++/*351188*/ OPC_CheckType, MVT::v16i8, ++/*351190*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*351192*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*351200*/ 0, /*End of Scope*/ ++/*351201*/ 0, /*End of Scope*/ ++/*351202*/ /*Scope*/ 121|128,41/*5369*/, /*->356573*/ ++/*351204*/ OPC_RecordChild1, // #1 = $b ++/*351205*/ OPC_MoveParent, ++/*351206*/ OPC_MoveChild1, ++/*351207*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*351210*/ OPC_CheckChild0Integer, 1, ++/*351212*/ OPC_CheckChild0Type, MVT::i32, ++/*351214*/ OPC_CheckChild1Integer, 1, ++/*351216*/ OPC_CheckChild1Type, MVT::i32, ++/*351218*/ OPC_CheckChild2Integer, 1, ++/*351220*/ OPC_CheckChild2Type, MVT::i32, ++/*351222*/ OPC_CheckChild3Integer, 1, ++/*351224*/ OPC_CheckChild3Type, MVT::i32, ++/*351226*/ OPC_CheckChild4Integer, 1, ++/*351228*/ OPC_CheckChild4Type, MVT::i32, ++/*351230*/ OPC_MoveChild5, ++/*351231*/ OPC_CheckInteger, 1, ++/*351233*/ OPC_CheckType, MVT::i32, ++/*351235*/ OPC_MoveParent, ++/*351236*/ OPC_MoveChild6, ++/*351237*/ OPC_CheckInteger, 1, ++/*351239*/ OPC_CheckType, MVT::i32, ++/*351241*/ OPC_MoveParent, ++/*351242*/ OPC_MoveChild7, ++/*351243*/ OPC_CheckInteger, 1, ++/*351245*/ OPC_CheckType, MVT::i32, ++/*351247*/ OPC_MoveParent, ++/*351248*/ OPC_MoveChild, 8, ++/*351250*/ OPC_CheckInteger, 1, ++/*351252*/ OPC_CheckType, MVT::i32, ++/*351254*/ OPC_MoveParent, ++/*351255*/ OPC_MoveChild, 9, ++/*351257*/ OPC_CheckInteger, 1, ++/*351259*/ OPC_CheckType, MVT::i32, ++/*351261*/ OPC_MoveParent, ++/*351262*/ OPC_MoveChild, 10, ++/*351264*/ OPC_CheckInteger, 1, ++/*351266*/ OPC_CheckType, MVT::i32, ++/*351268*/ OPC_MoveParent, ++/*351269*/ OPC_MoveChild, 11, ++/*351271*/ OPC_CheckInteger, 1, ++/*351273*/ OPC_CheckType, MVT::i32, ++/*351275*/ OPC_MoveParent, ++/*351276*/ OPC_MoveChild, 12, ++/*351278*/ OPC_CheckInteger, 1, ++/*351280*/ OPC_CheckType, MVT::i32, ++/*351282*/ OPC_MoveParent, ++/*351283*/ OPC_MoveChild, 13, ++/*351285*/ OPC_CheckInteger, 1, ++/*351287*/ OPC_CheckType, MVT::i32, ++/*351289*/ OPC_MoveParent, ++/*351290*/ OPC_MoveChild, 14, ++/*351292*/ OPC_CheckInteger, 1, ++/*351294*/ OPC_CheckType, MVT::i32, ++/*351296*/ OPC_MoveParent, ++/*351297*/ OPC_MoveChild, 15, ++/*351299*/ OPC_CheckInteger, 1, ++/*351301*/ OPC_CheckType, MVT::i32, ++/*351303*/ OPC_MoveParent, ++/*351304*/ OPC_MoveParent, ++/*351305*/ OPC_MoveParent, ++/*351306*/ OPC_MoveChild1, ++/*351307*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*351310*/ OPC_CheckChild0Integer, 7, ++/*351312*/ OPC_CheckChild0Type, MVT::i32, ++/*351314*/ OPC_CheckChild1Integer, 7, ++/*351316*/ OPC_CheckChild1Type, MVT::i32, ++/*351318*/ OPC_CheckChild2Integer, 7, ++/*351320*/ OPC_CheckChild2Type, MVT::i32, ++/*351322*/ OPC_CheckChild3Integer, 7, ++/*351324*/ OPC_CheckChild3Type, MVT::i32, ++/*351326*/ OPC_CheckChild4Integer, 7, ++/*351328*/ OPC_CheckChild4Type, MVT::i32, ++/*351330*/ OPC_MoveChild5, ++/*351331*/ OPC_CheckInteger, 7, ++/*351333*/ OPC_CheckType, MVT::i32, ++/*351335*/ OPC_MoveParent, ++/*351336*/ OPC_MoveChild6, ++/*351337*/ OPC_CheckInteger, 7, ++/*351339*/ OPC_CheckType, MVT::i32, ++/*351341*/ OPC_MoveParent, ++/*351342*/ OPC_MoveChild7, ++/*351343*/ OPC_CheckInteger, 7, ++/*351345*/ OPC_CheckType, MVT::i32, ++/*351347*/ OPC_MoveParent, ++/*351348*/ OPC_MoveChild, 8, ++/*351350*/ OPC_CheckInteger, 7, ++/*351352*/ OPC_CheckType, MVT::i32, ++/*351354*/ OPC_MoveParent, ++/*351355*/ OPC_MoveChild, 9, ++/*351357*/ OPC_CheckInteger, 7, ++/*351359*/ OPC_CheckType, MVT::i32, ++/*351361*/ OPC_MoveParent, ++/*351362*/ OPC_MoveChild, 10, ++/*351364*/ OPC_CheckInteger, 7, ++/*351366*/ OPC_CheckType, MVT::i32, ++/*351368*/ OPC_MoveParent, ++/*351369*/ OPC_MoveChild, 11, ++/*351371*/ OPC_CheckInteger, 7, ++/*351373*/ OPC_CheckType, MVT::i32, ++/*351375*/ OPC_MoveParent, ++/*351376*/ OPC_MoveChild, 12, ++/*351378*/ OPC_CheckInteger, 7, ++/*351380*/ OPC_CheckType, MVT::i32, ++/*351382*/ OPC_MoveParent, ++/*351383*/ OPC_MoveChild, 13, ++/*351385*/ OPC_CheckInteger, 7, ++/*351387*/ OPC_CheckType, MVT::i32, ++/*351389*/ OPC_MoveParent, ++/*351390*/ OPC_MoveChild, 14, ++/*351392*/ OPC_CheckInteger, 7, ++/*351394*/ OPC_CheckType, MVT::i32, ++/*351396*/ OPC_MoveParent, ++/*351397*/ OPC_MoveChild, 15, ++/*351399*/ OPC_CheckInteger, 7, ++/*351401*/ OPC_CheckType, MVT::i32, ++/*351403*/ OPC_MoveParent, ++/*351404*/ OPC_CheckType, MVT::v16i8, ++/*351406*/ OPC_MoveParent, ++/*351407*/ OPC_MoveParent, ++/*351408*/ OPC_MoveChild1, ++/*351409*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*351412*/ OPC_Scope, 52|128,10/*1332*/, /*->352747*/ // 7 children in Scope ++/*351415*/ OPC_MoveChild0, ++/*351416*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*351419*/ OPC_Scope, 91|128,1/*219*/, /*->351641*/ // 6 children in Scope ++/*351422*/ OPC_MoveChild0, ++/*351423*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*351426*/ OPC_CheckChild0Integer, 1, ++/*351428*/ OPC_CheckChild0Type, MVT::i32, ++/*351430*/ OPC_CheckChild1Integer, 1, ++/*351432*/ OPC_CheckChild1Type, MVT::i32, ++/*351434*/ OPC_CheckChild2Integer, 1, ++/*351436*/ OPC_CheckChild2Type, MVT::i32, ++/*351438*/ OPC_CheckChild3Integer, 1, ++/*351440*/ OPC_CheckChild3Type, MVT::i32, ++/*351442*/ OPC_CheckChild4Integer, 1, ++/*351444*/ OPC_CheckChild4Type, MVT::i32, ++/*351446*/ OPC_MoveChild5, ++/*351447*/ OPC_CheckInteger, 1, ++/*351449*/ OPC_CheckType, MVT::i32, ++/*351451*/ OPC_MoveParent, ++/*351452*/ OPC_MoveChild6, ++/*351453*/ OPC_CheckInteger, 1, ++/*351455*/ OPC_CheckType, MVT::i32, ++/*351457*/ OPC_MoveParent, ++/*351458*/ OPC_MoveChild7, ++/*351459*/ OPC_CheckInteger, 1, ++/*351461*/ OPC_CheckType, MVT::i32, ++/*351463*/ OPC_MoveParent, ++/*351464*/ OPC_MoveChild, 8, ++/*351466*/ OPC_CheckInteger, 1, ++/*351468*/ OPC_CheckType, MVT::i32, ++/*351470*/ OPC_MoveParent, ++/*351471*/ OPC_MoveChild, 9, ++/*351473*/ OPC_CheckInteger, 1, ++/*351475*/ OPC_CheckType, MVT::i32, ++/*351477*/ OPC_MoveParent, ++/*351478*/ OPC_MoveChild, 10, ++/*351480*/ OPC_CheckInteger, 1, ++/*351482*/ OPC_CheckType, MVT::i32, ++/*351484*/ OPC_MoveParent, ++/*351485*/ OPC_MoveChild, 11, ++/*351487*/ OPC_CheckInteger, 1, ++/*351489*/ OPC_CheckType, MVT::i32, ++/*351491*/ OPC_MoveParent, ++/*351492*/ OPC_MoveChild, 12, ++/*351494*/ OPC_CheckInteger, 1, ++/*351496*/ OPC_CheckType, MVT::i32, ++/*351498*/ OPC_MoveParent, ++/*351499*/ OPC_MoveChild, 13, ++/*351501*/ OPC_CheckInteger, 1, ++/*351503*/ OPC_CheckType, MVT::i32, ++/*351505*/ OPC_MoveParent, ++/*351506*/ OPC_MoveChild, 14, ++/*351508*/ OPC_CheckInteger, 1, ++/*351510*/ OPC_CheckType, MVT::i32, ++/*351512*/ OPC_MoveParent, ++/*351513*/ OPC_MoveChild, 15, ++/*351515*/ OPC_CheckInteger, 1, ++/*351517*/ OPC_CheckType, MVT::i32, ++/*351519*/ OPC_MoveParent, ++/*351520*/ OPC_MoveParent, ++/*351521*/ OPC_CheckChild1Same, 0, ++/*351523*/ OPC_MoveParent, ++/*351524*/ OPC_CheckChild1Same, 1, ++/*351526*/ OPC_MoveParent, ++/*351527*/ OPC_MoveParent, ++/*351528*/ OPC_MoveChild1, ++/*351529*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*351532*/ OPC_CheckChild0Integer, 1, ++/*351534*/ OPC_CheckChild0Type, MVT::i32, ++/*351536*/ OPC_CheckChild1Integer, 1, ++/*351538*/ OPC_CheckChild1Type, MVT::i32, ++/*351540*/ OPC_CheckChild2Integer, 1, ++/*351542*/ OPC_CheckChild2Type, MVT::i32, ++/*351544*/ OPC_CheckChild3Integer, 1, ++/*351546*/ OPC_CheckChild3Type, MVT::i32, ++/*351548*/ OPC_CheckChild4Integer, 1, ++/*351550*/ OPC_CheckChild4Type, MVT::i32, ++/*351552*/ OPC_MoveChild5, ++/*351553*/ OPC_CheckInteger, 1, ++/*351555*/ OPC_CheckType, MVT::i32, ++/*351557*/ OPC_MoveParent, ++/*351558*/ OPC_MoveChild6, ++/*351559*/ OPC_CheckInteger, 1, ++/*351561*/ OPC_CheckType, MVT::i32, ++/*351563*/ OPC_MoveParent, ++/*351564*/ OPC_MoveChild7, ++/*351565*/ OPC_CheckInteger, 1, ++/*351567*/ OPC_CheckType, MVT::i32, ++/*351569*/ OPC_MoveParent, ++/*351570*/ OPC_MoveChild, 8, ++/*351572*/ OPC_CheckInteger, 1, ++/*351574*/ OPC_CheckType, MVT::i32, ++/*351576*/ OPC_MoveParent, ++/*351577*/ OPC_MoveChild, 9, ++/*351579*/ OPC_CheckInteger, 1, ++/*351581*/ OPC_CheckType, MVT::i32, ++/*351583*/ OPC_MoveParent, ++/*351584*/ OPC_MoveChild, 10, ++/*351586*/ OPC_CheckInteger, 1, ++/*351588*/ OPC_CheckType, MVT::i32, ++/*351590*/ OPC_MoveParent, ++/*351591*/ OPC_MoveChild, 11, ++/*351593*/ OPC_CheckInteger, 1, ++/*351595*/ OPC_CheckType, MVT::i32, ++/*351597*/ OPC_MoveParent, ++/*351598*/ OPC_MoveChild, 12, ++/*351600*/ OPC_CheckInteger, 1, ++/*351602*/ OPC_CheckType, MVT::i32, ++/*351604*/ OPC_MoveParent, ++/*351605*/ OPC_MoveChild, 13, ++/*351607*/ OPC_CheckInteger, 1, ++/*351609*/ OPC_CheckType, MVT::i32, ++/*351611*/ OPC_MoveParent, ++/*351612*/ OPC_MoveChild, 14, ++/*351614*/ OPC_CheckInteger, 1, ++/*351616*/ OPC_CheckType, MVT::i32, ++/*351618*/ OPC_MoveParent, ++/*351619*/ OPC_MoveChild, 15, ++/*351621*/ OPC_CheckInteger, 1, ++/*351623*/ OPC_CheckType, MVT::i32, ++/*351625*/ OPC_MoveParent, ++/*351626*/ OPC_CheckType, MVT::v16i8, ++/*351628*/ OPC_MoveParent, ++/*351629*/ OPC_CheckType, MVT::v16i8, ++/*351631*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*351633*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a), LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*351641*/ /*Scope*/ 91|128,1/*219*/, /*->351862*/ ++/*351643*/ OPC_CheckChild0Same, 0, ++/*351645*/ OPC_MoveChild1, ++/*351646*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*351649*/ OPC_CheckChild0Integer, 1, ++/*351651*/ OPC_CheckChild0Type, MVT::i32, ++/*351653*/ OPC_CheckChild1Integer, 1, ++/*351655*/ OPC_CheckChild1Type, MVT::i32, ++/*351657*/ OPC_CheckChild2Integer, 1, ++/*351659*/ OPC_CheckChild2Type, MVT::i32, ++/*351661*/ OPC_CheckChild3Integer, 1, ++/*351663*/ OPC_CheckChild3Type, MVT::i32, ++/*351665*/ OPC_CheckChild4Integer, 1, ++/*351667*/ OPC_CheckChild4Type, MVT::i32, ++/*351669*/ OPC_MoveChild5, ++/*351670*/ OPC_CheckInteger, 1, ++/*351672*/ OPC_CheckType, MVT::i32, ++/*351674*/ OPC_MoveParent, ++/*351675*/ OPC_MoveChild6, ++/*351676*/ OPC_CheckInteger, 1, ++/*351678*/ OPC_CheckType, MVT::i32, ++/*351680*/ OPC_MoveParent, ++/*351681*/ OPC_MoveChild7, ++/*351682*/ OPC_CheckInteger, 1, ++/*351684*/ OPC_CheckType, MVT::i32, ++/*351686*/ OPC_MoveParent, ++/*351687*/ OPC_MoveChild, 8, ++/*351689*/ OPC_CheckInteger, 1, ++/*351691*/ OPC_CheckType, MVT::i32, ++/*351693*/ OPC_MoveParent, ++/*351694*/ OPC_MoveChild, 9, ++/*351696*/ OPC_CheckInteger, 1, ++/*351698*/ OPC_CheckType, MVT::i32, ++/*351700*/ OPC_MoveParent, ++/*351701*/ OPC_MoveChild, 10, ++/*351703*/ OPC_CheckInteger, 1, ++/*351705*/ OPC_CheckType, MVT::i32, ++/*351707*/ OPC_MoveParent, ++/*351708*/ OPC_MoveChild, 11, ++/*351710*/ OPC_CheckInteger, 1, ++/*351712*/ OPC_CheckType, MVT::i32, ++/*351714*/ OPC_MoveParent, ++/*351715*/ OPC_MoveChild, 12, ++/*351717*/ OPC_CheckInteger, 1, ++/*351719*/ OPC_CheckType, MVT::i32, ++/*351721*/ OPC_MoveParent, ++/*351722*/ OPC_MoveChild, 13, ++/*351724*/ OPC_CheckInteger, 1, ++/*351726*/ OPC_CheckType, MVT::i32, ++/*351728*/ OPC_MoveParent, ++/*351729*/ OPC_MoveChild, 14, ++/*351731*/ OPC_CheckInteger, 1, ++/*351733*/ OPC_CheckType, MVT::i32, ++/*351735*/ OPC_MoveParent, ++/*351736*/ OPC_MoveChild, 15, ++/*351738*/ OPC_CheckInteger, 1, ++/*351740*/ OPC_CheckType, MVT::i32, ++/*351742*/ OPC_MoveParent, ++/*351743*/ OPC_MoveParent, ++/*351744*/ OPC_MoveParent, ++/*351745*/ OPC_CheckChild1Same, 1, ++/*351747*/ OPC_MoveParent, ++/*351748*/ OPC_MoveParent, ++/*351749*/ OPC_MoveChild1, ++/*351750*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*351753*/ OPC_CheckChild0Integer, 1, ++/*351755*/ OPC_CheckChild0Type, MVT::i32, ++/*351757*/ OPC_CheckChild1Integer, 1, ++/*351759*/ OPC_CheckChild1Type, MVT::i32, ++/*351761*/ OPC_CheckChild2Integer, 1, ++/*351763*/ OPC_CheckChild2Type, MVT::i32, ++/*351765*/ OPC_CheckChild3Integer, 1, ++/*351767*/ OPC_CheckChild3Type, MVT::i32, ++/*351769*/ OPC_CheckChild4Integer, 1, ++/*351771*/ OPC_CheckChild4Type, MVT::i32, ++/*351773*/ OPC_MoveChild5, ++/*351774*/ OPC_CheckInteger, 1, ++/*351776*/ OPC_CheckType, MVT::i32, ++/*351778*/ OPC_MoveParent, ++/*351779*/ OPC_MoveChild6, ++/*351780*/ OPC_CheckInteger, 1, ++/*351782*/ OPC_CheckType, MVT::i32, ++/*351784*/ OPC_MoveParent, ++/*351785*/ OPC_MoveChild7, ++/*351786*/ OPC_CheckInteger, 1, ++/*351788*/ OPC_CheckType, MVT::i32, ++/*351790*/ OPC_MoveParent, ++/*351791*/ OPC_MoveChild, 8, ++/*351793*/ OPC_CheckInteger, 1, ++/*351795*/ OPC_CheckType, MVT::i32, ++/*351797*/ OPC_MoveParent, ++/*351798*/ OPC_MoveChild, 9, ++/*351800*/ OPC_CheckInteger, 1, ++/*351802*/ OPC_CheckType, MVT::i32, ++/*351804*/ OPC_MoveParent, ++/*351805*/ OPC_MoveChild, 10, ++/*351807*/ OPC_CheckInteger, 1, ++/*351809*/ OPC_CheckType, MVT::i32, ++/*351811*/ OPC_MoveParent, ++/*351812*/ OPC_MoveChild, 11, ++/*351814*/ OPC_CheckInteger, 1, ++/*351816*/ OPC_CheckType, MVT::i32, ++/*351818*/ OPC_MoveParent, ++/*351819*/ OPC_MoveChild, 12, ++/*351821*/ OPC_CheckInteger, 1, ++/*351823*/ OPC_CheckType, MVT::i32, ++/*351825*/ OPC_MoveParent, ++/*351826*/ OPC_MoveChild, 13, ++/*351828*/ OPC_CheckInteger, 1, ++/*351830*/ OPC_CheckType, MVT::i32, ++/*351832*/ OPC_MoveParent, ++/*351833*/ OPC_MoveChild, 14, ++/*351835*/ OPC_CheckInteger, 1, ++/*351837*/ OPC_CheckType, MVT::i32, ++/*351839*/ OPC_MoveParent, ++/*351840*/ OPC_MoveChild, 15, ++/*351842*/ OPC_CheckInteger, 1, ++/*351844*/ OPC_CheckType, MVT::i32, ++/*351846*/ OPC_MoveParent, ++/*351847*/ OPC_CheckType, MVT::v16i8, ++/*351849*/ OPC_MoveParent, ++/*351850*/ OPC_CheckType, MVT::v16i8, ++/*351852*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*351854*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*351862*/ /*Scope*/ 91|128,1/*219*/, /*->352083*/ ++/*351864*/ OPC_MoveChild0, ++/*351865*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*351868*/ OPC_CheckChild0Integer, 1, ++/*351870*/ OPC_CheckChild0Type, MVT::i32, ++/*351872*/ OPC_CheckChild1Integer, 1, ++/*351874*/ OPC_CheckChild1Type, MVT::i32, ++/*351876*/ OPC_CheckChild2Integer, 1, ++/*351878*/ OPC_CheckChild2Type, MVT::i32, ++/*351880*/ OPC_CheckChild3Integer, 1, ++/*351882*/ OPC_CheckChild3Type, MVT::i32, ++/*351884*/ OPC_CheckChild4Integer, 1, ++/*351886*/ OPC_CheckChild4Type, MVT::i32, ++/*351888*/ OPC_MoveChild5, ++/*351889*/ OPC_CheckInteger, 1, ++/*351891*/ OPC_CheckType, MVT::i32, ++/*351893*/ OPC_MoveParent, ++/*351894*/ OPC_MoveChild6, ++/*351895*/ OPC_CheckInteger, 1, ++/*351897*/ OPC_CheckType, MVT::i32, ++/*351899*/ OPC_MoveParent, ++/*351900*/ OPC_MoveChild7, ++/*351901*/ OPC_CheckInteger, 1, ++/*351903*/ OPC_CheckType, MVT::i32, ++/*351905*/ OPC_MoveParent, ++/*351906*/ OPC_MoveChild, 8, ++/*351908*/ OPC_CheckInteger, 1, ++/*351910*/ OPC_CheckType, MVT::i32, ++/*351912*/ OPC_MoveParent, ++/*351913*/ OPC_MoveChild, 9, ++/*351915*/ OPC_CheckInteger, 1, ++/*351917*/ OPC_CheckType, MVT::i32, ++/*351919*/ OPC_MoveParent, ++/*351920*/ OPC_MoveChild, 10, ++/*351922*/ OPC_CheckInteger, 1, ++/*351924*/ OPC_CheckType, MVT::i32, ++/*351926*/ OPC_MoveParent, ++/*351927*/ OPC_MoveChild, 11, ++/*351929*/ OPC_CheckInteger, 1, ++/*351931*/ OPC_CheckType, MVT::i32, ++/*351933*/ OPC_MoveParent, ++/*351934*/ OPC_MoveChild, 12, ++/*351936*/ OPC_CheckInteger, 1, ++/*351938*/ OPC_CheckType, MVT::i32, ++/*351940*/ OPC_MoveParent, ++/*351941*/ OPC_MoveChild, 13, ++/*351943*/ OPC_CheckInteger, 1, ++/*351945*/ OPC_CheckType, MVT::i32, ++/*351947*/ OPC_MoveParent, ++/*351948*/ OPC_MoveChild, 14, ++/*351950*/ OPC_CheckInteger, 1, ++/*351952*/ OPC_CheckType, MVT::i32, ++/*351954*/ OPC_MoveParent, ++/*351955*/ OPC_MoveChild, 15, ++/*351957*/ OPC_CheckInteger, 1, ++/*351959*/ OPC_CheckType, MVT::i32, ++/*351961*/ OPC_MoveParent, ++/*351962*/ OPC_MoveParent, ++/*351963*/ OPC_CheckChild1Same, 1, ++/*351965*/ OPC_MoveParent, ++/*351966*/ OPC_CheckChild1Same, 0, ++/*351968*/ OPC_MoveParent, ++/*351969*/ OPC_MoveParent, ++/*351970*/ OPC_MoveChild1, ++/*351971*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*351974*/ OPC_CheckChild0Integer, 1, ++/*351976*/ OPC_CheckChild0Type, MVT::i32, ++/*351978*/ OPC_CheckChild1Integer, 1, ++/*351980*/ OPC_CheckChild1Type, MVT::i32, ++/*351982*/ OPC_CheckChild2Integer, 1, ++/*351984*/ OPC_CheckChild2Type, MVT::i32, ++/*351986*/ OPC_CheckChild3Integer, 1, ++/*351988*/ OPC_CheckChild3Type, MVT::i32, ++/*351990*/ OPC_CheckChild4Integer, 1, ++/*351992*/ OPC_CheckChild4Type, MVT::i32, ++/*351994*/ OPC_MoveChild5, ++/*351995*/ OPC_CheckInteger, 1, ++/*351997*/ OPC_CheckType, MVT::i32, ++/*351999*/ OPC_MoveParent, ++/*352000*/ OPC_MoveChild6, ++/*352001*/ OPC_CheckInteger, 1, ++/*352003*/ OPC_CheckType, MVT::i32, ++/*352005*/ OPC_MoveParent, ++/*352006*/ OPC_MoveChild7, ++/*352007*/ OPC_CheckInteger, 1, ++/*352009*/ OPC_CheckType, MVT::i32, ++/*352011*/ OPC_MoveParent, ++/*352012*/ OPC_MoveChild, 8, ++/*352014*/ OPC_CheckInteger, 1, ++/*352016*/ OPC_CheckType, MVT::i32, ++/*352018*/ OPC_MoveParent, ++/*352019*/ OPC_MoveChild, 9, ++/*352021*/ OPC_CheckInteger, 1, ++/*352023*/ OPC_CheckType, MVT::i32, ++/*352025*/ OPC_MoveParent, ++/*352026*/ OPC_MoveChild, 10, ++/*352028*/ OPC_CheckInteger, 1, ++/*352030*/ OPC_CheckType, MVT::i32, ++/*352032*/ OPC_MoveParent, ++/*352033*/ OPC_MoveChild, 11, ++/*352035*/ OPC_CheckInteger, 1, ++/*352037*/ OPC_CheckType, MVT::i32, ++/*352039*/ OPC_MoveParent, ++/*352040*/ OPC_MoveChild, 12, ++/*352042*/ OPC_CheckInteger, 1, ++/*352044*/ OPC_CheckType, MVT::i32, ++/*352046*/ OPC_MoveParent, ++/*352047*/ OPC_MoveChild, 13, ++/*352049*/ OPC_CheckInteger, 1, ++/*352051*/ OPC_CheckType, MVT::i32, ++/*352053*/ OPC_MoveParent, ++/*352054*/ OPC_MoveChild, 14, ++/*352056*/ OPC_CheckInteger, 1, ++/*352058*/ OPC_CheckType, MVT::i32, ++/*352060*/ OPC_MoveParent, ++/*352061*/ OPC_MoveChild, 15, ++/*352063*/ OPC_CheckInteger, 1, ++/*352065*/ OPC_CheckType, MVT::i32, ++/*352067*/ OPC_MoveParent, ++/*352068*/ OPC_CheckType, MVT::v16i8, ++/*352070*/ OPC_MoveParent, ++/*352071*/ OPC_CheckType, MVT::v16i8, ++/*352073*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*352075*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b), LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*352083*/ /*Scope*/ 91|128,1/*219*/, /*->352304*/ ++/*352085*/ OPC_CheckChild0Same, 1, ++/*352087*/ OPC_MoveChild1, ++/*352088*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*352091*/ OPC_CheckChild0Integer, 1, ++/*352093*/ OPC_CheckChild0Type, MVT::i32, ++/*352095*/ OPC_CheckChild1Integer, 1, ++/*352097*/ OPC_CheckChild1Type, MVT::i32, ++/*352099*/ OPC_CheckChild2Integer, 1, ++/*352101*/ OPC_CheckChild2Type, MVT::i32, ++/*352103*/ OPC_CheckChild3Integer, 1, ++/*352105*/ OPC_CheckChild3Type, MVT::i32, ++/*352107*/ OPC_CheckChild4Integer, 1, ++/*352109*/ OPC_CheckChild4Type, MVT::i32, ++/*352111*/ OPC_MoveChild5, ++/*352112*/ OPC_CheckInteger, 1, ++/*352114*/ OPC_CheckType, MVT::i32, ++/*352116*/ OPC_MoveParent, ++/*352117*/ OPC_MoveChild6, ++/*352118*/ OPC_CheckInteger, 1, ++/*352120*/ OPC_CheckType, MVT::i32, ++/*352122*/ OPC_MoveParent, ++/*352123*/ OPC_MoveChild7, ++/*352124*/ OPC_CheckInteger, 1, ++/*352126*/ OPC_CheckType, MVT::i32, ++/*352128*/ OPC_MoveParent, ++/*352129*/ OPC_MoveChild, 8, ++/*352131*/ OPC_CheckInteger, 1, ++/*352133*/ OPC_CheckType, MVT::i32, ++/*352135*/ OPC_MoveParent, ++/*352136*/ OPC_MoveChild, 9, ++/*352138*/ OPC_CheckInteger, 1, ++/*352140*/ OPC_CheckType, MVT::i32, ++/*352142*/ OPC_MoveParent, ++/*352143*/ OPC_MoveChild, 10, ++/*352145*/ OPC_CheckInteger, 1, ++/*352147*/ OPC_CheckType, MVT::i32, ++/*352149*/ OPC_MoveParent, ++/*352150*/ OPC_MoveChild, 11, ++/*352152*/ OPC_CheckInteger, 1, ++/*352154*/ OPC_CheckType, MVT::i32, ++/*352156*/ OPC_MoveParent, ++/*352157*/ OPC_MoveChild, 12, ++/*352159*/ OPC_CheckInteger, 1, ++/*352161*/ OPC_CheckType, MVT::i32, ++/*352163*/ OPC_MoveParent, ++/*352164*/ OPC_MoveChild, 13, ++/*352166*/ OPC_CheckInteger, 1, ++/*352168*/ OPC_CheckType, MVT::i32, ++/*352170*/ OPC_MoveParent, ++/*352171*/ OPC_MoveChild, 14, ++/*352173*/ OPC_CheckInteger, 1, ++/*352175*/ OPC_CheckType, MVT::i32, ++/*352177*/ OPC_MoveParent, ++/*352178*/ OPC_MoveChild, 15, ++/*352180*/ OPC_CheckInteger, 1, ++/*352182*/ OPC_CheckType, MVT::i32, ++/*352184*/ OPC_MoveParent, ++/*352185*/ OPC_MoveParent, ++/*352186*/ OPC_MoveParent, ++/*352187*/ OPC_CheckChild1Same, 0, ++/*352189*/ OPC_MoveParent, ++/*352190*/ OPC_MoveParent, ++/*352191*/ OPC_MoveChild1, ++/*352192*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*352195*/ OPC_CheckChild0Integer, 1, ++/*352197*/ OPC_CheckChild0Type, MVT::i32, ++/*352199*/ OPC_CheckChild1Integer, 1, ++/*352201*/ OPC_CheckChild1Type, MVT::i32, ++/*352203*/ OPC_CheckChild2Integer, 1, ++/*352205*/ OPC_CheckChild2Type, MVT::i32, ++/*352207*/ OPC_CheckChild3Integer, 1, ++/*352209*/ OPC_CheckChild3Type, MVT::i32, ++/*352211*/ OPC_CheckChild4Integer, 1, ++/*352213*/ OPC_CheckChild4Type, MVT::i32, ++/*352215*/ OPC_MoveChild5, ++/*352216*/ OPC_CheckInteger, 1, ++/*352218*/ OPC_CheckType, MVT::i32, ++/*352220*/ OPC_MoveParent, ++/*352221*/ OPC_MoveChild6, ++/*352222*/ OPC_CheckInteger, 1, ++/*352224*/ OPC_CheckType, MVT::i32, ++/*352226*/ OPC_MoveParent, ++/*352227*/ OPC_MoveChild7, ++/*352228*/ OPC_CheckInteger, 1, ++/*352230*/ OPC_CheckType, MVT::i32, ++/*352232*/ OPC_MoveParent, ++/*352233*/ OPC_MoveChild, 8, ++/*352235*/ OPC_CheckInteger, 1, ++/*352237*/ OPC_CheckType, MVT::i32, ++/*352239*/ OPC_MoveParent, ++/*352240*/ OPC_MoveChild, 9, ++/*352242*/ OPC_CheckInteger, 1, ++/*352244*/ OPC_CheckType, MVT::i32, ++/*352246*/ OPC_MoveParent, ++/*352247*/ OPC_MoveChild, 10, ++/*352249*/ OPC_CheckInteger, 1, ++/*352251*/ OPC_CheckType, MVT::i32, ++/*352253*/ OPC_MoveParent, ++/*352254*/ OPC_MoveChild, 11, ++/*352256*/ OPC_CheckInteger, 1, ++/*352258*/ OPC_CheckType, MVT::i32, ++/*352260*/ OPC_MoveParent, ++/*352261*/ OPC_MoveChild, 12, ++/*352263*/ OPC_CheckInteger, 1, ++/*352265*/ OPC_CheckType, MVT::i32, ++/*352267*/ OPC_MoveParent, ++/*352268*/ OPC_MoveChild, 13, ++/*352270*/ OPC_CheckInteger, 1, ++/*352272*/ OPC_CheckType, MVT::i32, ++/*352274*/ OPC_MoveParent, ++/*352275*/ OPC_MoveChild, 14, ++/*352277*/ OPC_CheckInteger, 1, ++/*352279*/ OPC_CheckType, MVT::i32, ++/*352281*/ OPC_MoveParent, ++/*352282*/ OPC_MoveChild, 15, ++/*352284*/ OPC_CheckInteger, 1, ++/*352286*/ OPC_CheckType, MVT::i32, ++/*352288*/ OPC_MoveParent, ++/*352289*/ OPC_CheckType, MVT::v16i8, ++/*352291*/ OPC_MoveParent, ++/*352292*/ OPC_CheckType, MVT::v16i8, ++/*352294*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*352296*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*352304*/ /*Scope*/ 91|128,1/*219*/, /*->352525*/ ++/*352306*/ OPC_CheckChild0Same, 0, ++/*352308*/ OPC_CheckChild1Same, 1, ++/*352310*/ OPC_MoveParent, ++/*352311*/ OPC_MoveChild1, ++/*352312*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*352315*/ OPC_CheckChild0Integer, 1, ++/*352317*/ OPC_CheckChild0Type, MVT::i32, ++/*352319*/ OPC_CheckChild1Integer, 1, ++/*352321*/ OPC_CheckChild1Type, MVT::i32, ++/*352323*/ OPC_CheckChild2Integer, 1, ++/*352325*/ OPC_CheckChild2Type, MVT::i32, ++/*352327*/ OPC_CheckChild3Integer, 1, ++/*352329*/ OPC_CheckChild3Type, MVT::i32, ++/*352331*/ OPC_CheckChild4Integer, 1, ++/*352333*/ OPC_CheckChild4Type, MVT::i32, ++/*352335*/ OPC_MoveChild5, ++/*352336*/ OPC_CheckInteger, 1, ++/*352338*/ OPC_CheckType, MVT::i32, ++/*352340*/ OPC_MoveParent, ++/*352341*/ OPC_MoveChild6, ++/*352342*/ OPC_CheckInteger, 1, ++/*352344*/ OPC_CheckType, MVT::i32, ++/*352346*/ OPC_MoveParent, ++/*352347*/ OPC_MoveChild7, ++/*352348*/ OPC_CheckInteger, 1, ++/*352350*/ OPC_CheckType, MVT::i32, ++/*352352*/ OPC_MoveParent, ++/*352353*/ OPC_MoveChild, 8, ++/*352355*/ OPC_CheckInteger, 1, ++/*352357*/ OPC_CheckType, MVT::i32, ++/*352359*/ OPC_MoveParent, ++/*352360*/ OPC_MoveChild, 9, ++/*352362*/ OPC_CheckInteger, 1, ++/*352364*/ OPC_CheckType, MVT::i32, ++/*352366*/ OPC_MoveParent, ++/*352367*/ OPC_MoveChild, 10, ++/*352369*/ OPC_CheckInteger, 1, ++/*352371*/ OPC_CheckType, MVT::i32, ++/*352373*/ OPC_MoveParent, ++/*352374*/ OPC_MoveChild, 11, ++/*352376*/ OPC_CheckInteger, 1, ++/*352378*/ OPC_CheckType, MVT::i32, ++/*352380*/ OPC_MoveParent, ++/*352381*/ OPC_MoveChild, 12, ++/*352383*/ OPC_CheckInteger, 1, ++/*352385*/ OPC_CheckType, MVT::i32, ++/*352387*/ OPC_MoveParent, ++/*352388*/ OPC_MoveChild, 13, ++/*352390*/ OPC_CheckInteger, 1, ++/*352392*/ OPC_CheckType, MVT::i32, ++/*352394*/ OPC_MoveParent, ++/*352395*/ OPC_MoveChild, 14, ++/*352397*/ OPC_CheckInteger, 1, ++/*352399*/ OPC_CheckType, MVT::i32, ++/*352401*/ OPC_MoveParent, ++/*352402*/ OPC_MoveChild, 15, ++/*352404*/ OPC_CheckInteger, 1, ++/*352406*/ OPC_CheckType, MVT::i32, ++/*352408*/ OPC_MoveParent, ++/*352409*/ OPC_MoveParent, ++/*352410*/ OPC_MoveParent, ++/*352411*/ OPC_MoveParent, ++/*352412*/ OPC_MoveChild1, ++/*352413*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*352416*/ OPC_CheckChild0Integer, 1, ++/*352418*/ OPC_CheckChild0Type, MVT::i32, ++/*352420*/ OPC_CheckChild1Integer, 1, ++/*352422*/ OPC_CheckChild1Type, MVT::i32, ++/*352424*/ OPC_CheckChild2Integer, 1, ++/*352426*/ OPC_CheckChild2Type, MVT::i32, ++/*352428*/ OPC_CheckChild3Integer, 1, ++/*352430*/ OPC_CheckChild3Type, MVT::i32, ++/*352432*/ OPC_CheckChild4Integer, 1, ++/*352434*/ OPC_CheckChild4Type, MVT::i32, ++/*352436*/ OPC_MoveChild5, ++/*352437*/ OPC_CheckInteger, 1, ++/*352439*/ OPC_CheckType, MVT::i32, ++/*352441*/ OPC_MoveParent, ++/*352442*/ OPC_MoveChild6, ++/*352443*/ OPC_CheckInteger, 1, ++/*352445*/ OPC_CheckType, MVT::i32, ++/*352447*/ OPC_MoveParent, ++/*352448*/ OPC_MoveChild7, ++/*352449*/ OPC_CheckInteger, 1, ++/*352451*/ OPC_CheckType, MVT::i32, ++/*352453*/ OPC_MoveParent, ++/*352454*/ OPC_MoveChild, 8, ++/*352456*/ OPC_CheckInteger, 1, ++/*352458*/ OPC_CheckType, MVT::i32, ++/*352460*/ OPC_MoveParent, ++/*352461*/ OPC_MoveChild, 9, ++/*352463*/ OPC_CheckInteger, 1, ++/*352465*/ OPC_CheckType, MVT::i32, ++/*352467*/ OPC_MoveParent, ++/*352468*/ OPC_MoveChild, 10, ++/*352470*/ OPC_CheckInteger, 1, ++/*352472*/ OPC_CheckType, MVT::i32, ++/*352474*/ OPC_MoveParent, ++/*352475*/ OPC_MoveChild, 11, ++/*352477*/ OPC_CheckInteger, 1, ++/*352479*/ OPC_CheckType, MVT::i32, ++/*352481*/ OPC_MoveParent, ++/*352482*/ OPC_MoveChild, 12, ++/*352484*/ OPC_CheckInteger, 1, ++/*352486*/ OPC_CheckType, MVT::i32, ++/*352488*/ OPC_MoveParent, ++/*352489*/ OPC_MoveChild, 13, ++/*352491*/ OPC_CheckInteger, 1, ++/*352493*/ OPC_CheckType, MVT::i32, ++/*352495*/ OPC_MoveParent, ++/*352496*/ OPC_MoveChild, 14, ++/*352498*/ OPC_CheckInteger, 1, ++/*352500*/ OPC_CheckType, MVT::i32, ++/*352502*/ OPC_MoveParent, ++/*352503*/ OPC_MoveChild, 15, ++/*352505*/ OPC_CheckInteger, 1, ++/*352507*/ OPC_CheckType, MVT::i32, ++/*352509*/ OPC_MoveParent, ++/*352510*/ OPC_CheckType, MVT::v16i8, ++/*352512*/ OPC_MoveParent, ++/*352513*/ OPC_CheckType, MVT::v16i8, ++/*352515*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*352517*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*352525*/ /*Scope*/ 91|128,1/*219*/, /*->352746*/ ++/*352527*/ OPC_CheckChild0Same, 1, ++/*352529*/ OPC_CheckChild1Same, 0, ++/*352531*/ OPC_MoveParent, ++/*352532*/ OPC_MoveChild1, ++/*352533*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*352536*/ OPC_CheckChild0Integer, 1, ++/*352538*/ OPC_CheckChild0Type, MVT::i32, ++/*352540*/ OPC_CheckChild1Integer, 1, ++/*352542*/ OPC_CheckChild1Type, MVT::i32, ++/*352544*/ OPC_CheckChild2Integer, 1, ++/*352546*/ OPC_CheckChild2Type, MVT::i32, ++/*352548*/ OPC_CheckChild3Integer, 1, ++/*352550*/ OPC_CheckChild3Type, MVT::i32, ++/*352552*/ OPC_CheckChild4Integer, 1, ++/*352554*/ OPC_CheckChild4Type, MVT::i32, ++/*352556*/ OPC_MoveChild5, ++/*352557*/ OPC_CheckInteger, 1, ++/*352559*/ OPC_CheckType, MVT::i32, ++/*352561*/ OPC_MoveParent, ++/*352562*/ OPC_MoveChild6, ++/*352563*/ OPC_CheckInteger, 1, ++/*352565*/ OPC_CheckType, MVT::i32, ++/*352567*/ OPC_MoveParent, ++/*352568*/ OPC_MoveChild7, ++/*352569*/ OPC_CheckInteger, 1, ++/*352571*/ OPC_CheckType, MVT::i32, ++/*352573*/ OPC_MoveParent, ++/*352574*/ OPC_MoveChild, 8, ++/*352576*/ OPC_CheckInteger, 1, ++/*352578*/ OPC_CheckType, MVT::i32, ++/*352580*/ OPC_MoveParent, ++/*352581*/ OPC_MoveChild, 9, ++/*352583*/ OPC_CheckInteger, 1, ++/*352585*/ OPC_CheckType, MVT::i32, ++/*352587*/ OPC_MoveParent, ++/*352588*/ OPC_MoveChild, 10, ++/*352590*/ OPC_CheckInteger, 1, ++/*352592*/ OPC_CheckType, MVT::i32, ++/*352594*/ OPC_MoveParent, ++/*352595*/ OPC_MoveChild, 11, ++/*352597*/ OPC_CheckInteger, 1, ++/*352599*/ OPC_CheckType, MVT::i32, ++/*352601*/ OPC_MoveParent, ++/*352602*/ OPC_MoveChild, 12, ++/*352604*/ OPC_CheckInteger, 1, ++/*352606*/ OPC_CheckType, MVT::i32, ++/*352608*/ OPC_MoveParent, ++/*352609*/ OPC_MoveChild, 13, ++/*352611*/ OPC_CheckInteger, 1, ++/*352613*/ OPC_CheckType, MVT::i32, ++/*352615*/ OPC_MoveParent, ++/*352616*/ OPC_MoveChild, 14, ++/*352618*/ OPC_CheckInteger, 1, ++/*352620*/ OPC_CheckType, MVT::i32, ++/*352622*/ OPC_MoveParent, ++/*352623*/ OPC_MoveChild, 15, ++/*352625*/ OPC_CheckInteger, 1, ++/*352627*/ OPC_CheckType, MVT::i32, ++/*352629*/ OPC_MoveParent, ++/*352630*/ OPC_MoveParent, ++/*352631*/ OPC_MoveParent, ++/*352632*/ OPC_MoveParent, ++/*352633*/ OPC_MoveChild1, ++/*352634*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*352637*/ OPC_CheckChild0Integer, 1, ++/*352639*/ OPC_CheckChild0Type, MVT::i32, ++/*352641*/ OPC_CheckChild1Integer, 1, ++/*352643*/ OPC_CheckChild1Type, MVT::i32, ++/*352645*/ OPC_CheckChild2Integer, 1, ++/*352647*/ OPC_CheckChild2Type, MVT::i32, ++/*352649*/ OPC_CheckChild3Integer, 1, ++/*352651*/ OPC_CheckChild3Type, MVT::i32, ++/*352653*/ OPC_CheckChild4Integer, 1, ++/*352655*/ OPC_CheckChild4Type, MVT::i32, ++/*352657*/ OPC_MoveChild5, ++/*352658*/ OPC_CheckInteger, 1, ++/*352660*/ OPC_CheckType, MVT::i32, ++/*352662*/ OPC_MoveParent, ++/*352663*/ OPC_MoveChild6, ++/*352664*/ OPC_CheckInteger, 1, ++/*352666*/ OPC_CheckType, MVT::i32, ++/*352668*/ OPC_MoveParent, ++/*352669*/ OPC_MoveChild7, ++/*352670*/ OPC_CheckInteger, 1, ++/*352672*/ OPC_CheckType, MVT::i32, ++/*352674*/ OPC_MoveParent, ++/*352675*/ OPC_MoveChild, 8, ++/*352677*/ OPC_CheckInteger, 1, ++/*352679*/ OPC_CheckType, MVT::i32, ++/*352681*/ OPC_MoveParent, ++/*352682*/ OPC_MoveChild, 9, ++/*352684*/ OPC_CheckInteger, 1, ++/*352686*/ OPC_CheckType, MVT::i32, ++/*352688*/ OPC_MoveParent, ++/*352689*/ OPC_MoveChild, 10, ++/*352691*/ OPC_CheckInteger, 1, ++/*352693*/ OPC_CheckType, MVT::i32, ++/*352695*/ OPC_MoveParent, ++/*352696*/ OPC_MoveChild, 11, ++/*352698*/ OPC_CheckInteger, 1, ++/*352700*/ OPC_CheckType, MVT::i32, ++/*352702*/ OPC_MoveParent, ++/*352703*/ OPC_MoveChild, 12, ++/*352705*/ OPC_CheckInteger, 1, ++/*352707*/ OPC_CheckType, MVT::i32, ++/*352709*/ OPC_MoveParent, ++/*352710*/ OPC_MoveChild, 13, ++/*352712*/ OPC_CheckInteger, 1, ++/*352714*/ OPC_CheckType, MVT::i32, ++/*352716*/ OPC_MoveParent, ++/*352717*/ OPC_MoveChild, 14, ++/*352719*/ OPC_CheckInteger, 1, ++/*352721*/ OPC_CheckType, MVT::i32, ++/*352723*/ OPC_MoveParent, ++/*352724*/ OPC_MoveChild, 15, ++/*352726*/ OPC_CheckInteger, 1, ++/*352728*/ OPC_CheckType, MVT::i32, ++/*352730*/ OPC_MoveParent, ++/*352731*/ OPC_CheckType, MVT::v16i8, ++/*352733*/ OPC_MoveParent, ++/*352734*/ OPC_CheckType, MVT::v16i8, ++/*352736*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*352738*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*352746*/ 0, /*End of Scope*/ ++/*352747*/ /*Scope*/ 62|128,3/*446*/, /*->353195*/ ++/*352749*/ OPC_CheckChild0Same, 1, ++/*352751*/ OPC_MoveChild1, ++/*352752*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*352755*/ OPC_Scope, 89|128,1/*217*/, /*->352975*/ // 2 children in Scope ++/*352758*/ OPC_MoveChild0, ++/*352759*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*352762*/ OPC_CheckChild0Integer, 1, ++/*352764*/ OPC_CheckChild0Type, MVT::i32, ++/*352766*/ OPC_CheckChild1Integer, 1, ++/*352768*/ OPC_CheckChild1Type, MVT::i32, ++/*352770*/ OPC_CheckChild2Integer, 1, ++/*352772*/ OPC_CheckChild2Type, MVT::i32, ++/*352774*/ OPC_CheckChild3Integer, 1, ++/*352776*/ OPC_CheckChild3Type, MVT::i32, ++/*352778*/ OPC_CheckChild4Integer, 1, ++/*352780*/ OPC_CheckChild4Type, MVT::i32, ++/*352782*/ OPC_MoveChild5, ++/*352783*/ OPC_CheckInteger, 1, ++/*352785*/ OPC_CheckType, MVT::i32, ++/*352787*/ OPC_MoveParent, ++/*352788*/ OPC_MoveChild6, ++/*352789*/ OPC_CheckInteger, 1, ++/*352791*/ OPC_CheckType, MVT::i32, ++/*352793*/ OPC_MoveParent, ++/*352794*/ OPC_MoveChild7, ++/*352795*/ OPC_CheckInteger, 1, ++/*352797*/ OPC_CheckType, MVT::i32, ++/*352799*/ OPC_MoveParent, ++/*352800*/ OPC_MoveChild, 8, ++/*352802*/ OPC_CheckInteger, 1, ++/*352804*/ OPC_CheckType, MVT::i32, ++/*352806*/ OPC_MoveParent, ++/*352807*/ OPC_MoveChild, 9, ++/*352809*/ OPC_CheckInteger, 1, ++/*352811*/ OPC_CheckType, MVT::i32, ++/*352813*/ OPC_MoveParent, ++/*352814*/ OPC_MoveChild, 10, ++/*352816*/ OPC_CheckInteger, 1, ++/*352818*/ OPC_CheckType, MVT::i32, ++/*352820*/ OPC_MoveParent, ++/*352821*/ OPC_MoveChild, 11, ++/*352823*/ OPC_CheckInteger, 1, ++/*352825*/ OPC_CheckType, MVT::i32, ++/*352827*/ OPC_MoveParent, ++/*352828*/ OPC_MoveChild, 12, ++/*352830*/ OPC_CheckInteger, 1, ++/*352832*/ OPC_CheckType, MVT::i32, ++/*352834*/ OPC_MoveParent, ++/*352835*/ OPC_MoveChild, 13, ++/*352837*/ OPC_CheckInteger, 1, ++/*352839*/ OPC_CheckType, MVT::i32, ++/*352841*/ OPC_MoveParent, ++/*352842*/ OPC_MoveChild, 14, ++/*352844*/ OPC_CheckInteger, 1, ++/*352846*/ OPC_CheckType, MVT::i32, ++/*352848*/ OPC_MoveParent, ++/*352849*/ OPC_MoveChild, 15, ++/*352851*/ OPC_CheckInteger, 1, ++/*352853*/ OPC_CheckType, MVT::i32, ++/*352855*/ OPC_MoveParent, ++/*352856*/ OPC_MoveParent, ++/*352857*/ OPC_CheckChild1Same, 0, ++/*352859*/ OPC_MoveParent, ++/*352860*/ OPC_MoveParent, ++/*352861*/ OPC_MoveParent, ++/*352862*/ OPC_MoveChild1, ++/*352863*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*352866*/ OPC_CheckChild0Integer, 1, ++/*352868*/ OPC_CheckChild0Type, MVT::i32, ++/*352870*/ OPC_CheckChild1Integer, 1, ++/*352872*/ OPC_CheckChild1Type, MVT::i32, ++/*352874*/ OPC_CheckChild2Integer, 1, ++/*352876*/ OPC_CheckChild2Type, MVT::i32, ++/*352878*/ OPC_CheckChild3Integer, 1, ++/*352880*/ OPC_CheckChild3Type, MVT::i32, ++/*352882*/ OPC_CheckChild4Integer, 1, ++/*352884*/ OPC_CheckChild4Type, MVT::i32, ++/*352886*/ OPC_MoveChild5, ++/*352887*/ OPC_CheckInteger, 1, ++/*352889*/ OPC_CheckType, MVT::i32, ++/*352891*/ OPC_MoveParent, ++/*352892*/ OPC_MoveChild6, ++/*352893*/ OPC_CheckInteger, 1, ++/*352895*/ OPC_CheckType, MVT::i32, ++/*352897*/ OPC_MoveParent, ++/*352898*/ OPC_MoveChild7, ++/*352899*/ OPC_CheckInteger, 1, ++/*352901*/ OPC_CheckType, MVT::i32, ++/*352903*/ OPC_MoveParent, ++/*352904*/ OPC_MoveChild, 8, ++/*352906*/ OPC_CheckInteger, 1, ++/*352908*/ OPC_CheckType, MVT::i32, ++/*352910*/ OPC_MoveParent, ++/*352911*/ OPC_MoveChild, 9, ++/*352913*/ OPC_CheckInteger, 1, ++/*352915*/ OPC_CheckType, MVT::i32, ++/*352917*/ OPC_MoveParent, ++/*352918*/ OPC_MoveChild, 10, ++/*352920*/ OPC_CheckInteger, 1, ++/*352922*/ OPC_CheckType, MVT::i32, ++/*352924*/ OPC_MoveParent, ++/*352925*/ OPC_MoveChild, 11, ++/*352927*/ OPC_CheckInteger, 1, ++/*352929*/ OPC_CheckType, MVT::i32, ++/*352931*/ OPC_MoveParent, ++/*352932*/ OPC_MoveChild, 12, ++/*352934*/ OPC_CheckInteger, 1, ++/*352936*/ OPC_CheckType, MVT::i32, ++/*352938*/ OPC_MoveParent, ++/*352939*/ OPC_MoveChild, 13, ++/*352941*/ OPC_CheckInteger, 1, ++/*352943*/ OPC_CheckType, MVT::i32, ++/*352945*/ OPC_MoveParent, ++/*352946*/ OPC_MoveChild, 14, ++/*352948*/ OPC_CheckInteger, 1, ++/*352950*/ OPC_CheckType, MVT::i32, ++/*352952*/ OPC_MoveParent, ++/*352953*/ OPC_MoveChild, 15, ++/*352955*/ OPC_CheckInteger, 1, ++/*352957*/ OPC_CheckType, MVT::i32, ++/*352959*/ OPC_MoveParent, ++/*352960*/ OPC_CheckType, MVT::v16i8, ++/*352962*/ OPC_MoveParent, ++/*352963*/ OPC_CheckType, MVT::v16i8, ++/*352965*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*352967*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*352975*/ /*Scope*/ 89|128,1/*217*/, /*->353194*/ ++/*352977*/ OPC_CheckChild0Same, 0, ++/*352979*/ OPC_MoveChild1, ++/*352980*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*352983*/ OPC_CheckChild0Integer, 1, ++/*352985*/ OPC_CheckChild0Type, MVT::i32, ++/*352987*/ OPC_CheckChild1Integer, 1, ++/*352989*/ OPC_CheckChild1Type, MVT::i32, ++/*352991*/ OPC_CheckChild2Integer, 1, ++/*352993*/ OPC_CheckChild2Type, MVT::i32, ++/*352995*/ OPC_CheckChild3Integer, 1, ++/*352997*/ OPC_CheckChild3Type, MVT::i32, ++/*352999*/ OPC_CheckChild4Integer, 1, ++/*353001*/ OPC_CheckChild4Type, MVT::i32, ++/*353003*/ OPC_MoveChild5, ++/*353004*/ OPC_CheckInteger, 1, ++/*353006*/ OPC_CheckType, MVT::i32, ++/*353008*/ OPC_MoveParent, ++/*353009*/ OPC_MoveChild6, ++/*353010*/ OPC_CheckInteger, 1, ++/*353012*/ OPC_CheckType, MVT::i32, ++/*353014*/ OPC_MoveParent, ++/*353015*/ OPC_MoveChild7, ++/*353016*/ OPC_CheckInteger, 1, ++/*353018*/ OPC_CheckType, MVT::i32, ++/*353020*/ OPC_MoveParent, ++/*353021*/ OPC_MoveChild, 8, ++/*353023*/ OPC_CheckInteger, 1, ++/*353025*/ OPC_CheckType, MVT::i32, ++/*353027*/ OPC_MoveParent, ++/*353028*/ OPC_MoveChild, 9, ++/*353030*/ OPC_CheckInteger, 1, ++/*353032*/ OPC_CheckType, MVT::i32, ++/*353034*/ OPC_MoveParent, ++/*353035*/ OPC_MoveChild, 10, ++/*353037*/ OPC_CheckInteger, 1, ++/*353039*/ OPC_CheckType, MVT::i32, ++/*353041*/ OPC_MoveParent, ++/*353042*/ OPC_MoveChild, 11, ++/*353044*/ OPC_CheckInteger, 1, ++/*353046*/ OPC_CheckType, MVT::i32, ++/*353048*/ OPC_MoveParent, ++/*353049*/ OPC_MoveChild, 12, ++/*353051*/ OPC_CheckInteger, 1, ++/*353053*/ OPC_CheckType, MVT::i32, ++/*353055*/ OPC_MoveParent, ++/*353056*/ OPC_MoveChild, 13, ++/*353058*/ OPC_CheckInteger, 1, ++/*353060*/ OPC_CheckType, MVT::i32, ++/*353062*/ OPC_MoveParent, ++/*353063*/ OPC_MoveChild, 14, ++/*353065*/ OPC_CheckInteger, 1, ++/*353067*/ OPC_CheckType, MVT::i32, ++/*353069*/ OPC_MoveParent, ++/*353070*/ OPC_MoveChild, 15, ++/*353072*/ OPC_CheckInteger, 1, ++/*353074*/ OPC_CheckType, MVT::i32, ++/*353076*/ OPC_MoveParent, ++/*353077*/ OPC_MoveParent, ++/*353078*/ OPC_MoveParent, ++/*353079*/ OPC_MoveParent, ++/*353080*/ OPC_MoveParent, ++/*353081*/ OPC_MoveChild1, ++/*353082*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*353085*/ OPC_CheckChild0Integer, 1, ++/*353087*/ OPC_CheckChild0Type, MVT::i32, ++/*353089*/ OPC_CheckChild1Integer, 1, ++/*353091*/ OPC_CheckChild1Type, MVT::i32, ++/*353093*/ OPC_CheckChild2Integer, 1, ++/*353095*/ OPC_CheckChild2Type, MVT::i32, ++/*353097*/ OPC_CheckChild3Integer, 1, ++/*353099*/ OPC_CheckChild3Type, MVT::i32, ++/*353101*/ OPC_CheckChild4Integer, 1, ++/*353103*/ OPC_CheckChild4Type, MVT::i32, ++/*353105*/ OPC_MoveChild5, ++/*353106*/ OPC_CheckInteger, 1, ++/*353108*/ OPC_CheckType, MVT::i32, ++/*353110*/ OPC_MoveParent, ++/*353111*/ OPC_MoveChild6, ++/*353112*/ OPC_CheckInteger, 1, ++/*353114*/ OPC_CheckType, MVT::i32, ++/*353116*/ OPC_MoveParent, ++/*353117*/ OPC_MoveChild7, ++/*353118*/ OPC_CheckInteger, 1, ++/*353120*/ OPC_CheckType, MVT::i32, ++/*353122*/ OPC_MoveParent, ++/*353123*/ OPC_MoveChild, 8, ++/*353125*/ OPC_CheckInteger, 1, ++/*353127*/ OPC_CheckType, MVT::i32, ++/*353129*/ OPC_MoveParent, ++/*353130*/ OPC_MoveChild, 9, ++/*353132*/ OPC_CheckInteger, 1, ++/*353134*/ OPC_CheckType, MVT::i32, ++/*353136*/ OPC_MoveParent, ++/*353137*/ OPC_MoveChild, 10, ++/*353139*/ OPC_CheckInteger, 1, ++/*353141*/ OPC_CheckType, MVT::i32, ++/*353143*/ OPC_MoveParent, ++/*353144*/ OPC_MoveChild, 11, ++/*353146*/ OPC_CheckInteger, 1, ++/*353148*/ OPC_CheckType, MVT::i32, ++/*353150*/ OPC_MoveParent, ++/*353151*/ OPC_MoveChild, 12, ++/*353153*/ OPC_CheckInteger, 1, ++/*353155*/ OPC_CheckType, MVT::i32, ++/*353157*/ OPC_MoveParent, ++/*353158*/ OPC_MoveChild, 13, ++/*353160*/ OPC_CheckInteger, 1, ++/*353162*/ OPC_CheckType, MVT::i32, ++/*353164*/ OPC_MoveParent, ++/*353165*/ OPC_MoveChild, 14, ++/*353167*/ OPC_CheckInteger, 1, ++/*353169*/ OPC_CheckType, MVT::i32, ++/*353171*/ OPC_MoveParent, ++/*353172*/ OPC_MoveChild, 15, ++/*353174*/ OPC_CheckInteger, 1, ++/*353176*/ OPC_CheckType, MVT::i32, ++/*353178*/ OPC_MoveParent, ++/*353179*/ OPC_CheckType, MVT::v16i8, ++/*353181*/ OPC_MoveParent, ++/*353182*/ OPC_CheckType, MVT::v16i8, ++/*353184*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*353186*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*353194*/ 0, /*End of Scope*/ ++/*353195*/ /*Scope*/ 62|128,3/*446*/, /*->353643*/ ++/*353197*/ OPC_CheckChild0Same, 0, ++/*353199*/ OPC_MoveChild1, ++/*353200*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*353203*/ OPC_Scope, 89|128,1/*217*/, /*->353423*/ // 2 children in Scope ++/*353206*/ OPC_MoveChild0, ++/*353207*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*353210*/ OPC_CheckChild0Integer, 1, ++/*353212*/ OPC_CheckChild0Type, MVT::i32, ++/*353214*/ OPC_CheckChild1Integer, 1, ++/*353216*/ OPC_CheckChild1Type, MVT::i32, ++/*353218*/ OPC_CheckChild2Integer, 1, ++/*353220*/ OPC_CheckChild2Type, MVT::i32, ++/*353222*/ OPC_CheckChild3Integer, 1, ++/*353224*/ OPC_CheckChild3Type, MVT::i32, ++/*353226*/ OPC_CheckChild4Integer, 1, ++/*353228*/ OPC_CheckChild4Type, MVT::i32, ++/*353230*/ OPC_MoveChild5, ++/*353231*/ OPC_CheckInteger, 1, ++/*353233*/ OPC_CheckType, MVT::i32, ++/*353235*/ OPC_MoveParent, ++/*353236*/ OPC_MoveChild6, ++/*353237*/ OPC_CheckInteger, 1, ++/*353239*/ OPC_CheckType, MVT::i32, ++/*353241*/ OPC_MoveParent, ++/*353242*/ OPC_MoveChild7, ++/*353243*/ OPC_CheckInteger, 1, ++/*353245*/ OPC_CheckType, MVT::i32, ++/*353247*/ OPC_MoveParent, ++/*353248*/ OPC_MoveChild, 8, ++/*353250*/ OPC_CheckInteger, 1, ++/*353252*/ OPC_CheckType, MVT::i32, ++/*353254*/ OPC_MoveParent, ++/*353255*/ OPC_MoveChild, 9, ++/*353257*/ OPC_CheckInteger, 1, ++/*353259*/ OPC_CheckType, MVT::i32, ++/*353261*/ OPC_MoveParent, ++/*353262*/ OPC_MoveChild, 10, ++/*353264*/ OPC_CheckInteger, 1, ++/*353266*/ OPC_CheckType, MVT::i32, ++/*353268*/ OPC_MoveParent, ++/*353269*/ OPC_MoveChild, 11, ++/*353271*/ OPC_CheckInteger, 1, ++/*353273*/ OPC_CheckType, MVT::i32, ++/*353275*/ OPC_MoveParent, ++/*353276*/ OPC_MoveChild, 12, ++/*353278*/ OPC_CheckInteger, 1, ++/*353280*/ OPC_CheckType, MVT::i32, ++/*353282*/ OPC_MoveParent, ++/*353283*/ OPC_MoveChild, 13, ++/*353285*/ OPC_CheckInteger, 1, ++/*353287*/ OPC_CheckType, MVT::i32, ++/*353289*/ OPC_MoveParent, ++/*353290*/ OPC_MoveChild, 14, ++/*353292*/ OPC_CheckInteger, 1, ++/*353294*/ OPC_CheckType, MVT::i32, ++/*353296*/ OPC_MoveParent, ++/*353297*/ OPC_MoveChild, 15, ++/*353299*/ OPC_CheckInteger, 1, ++/*353301*/ OPC_CheckType, MVT::i32, ++/*353303*/ OPC_MoveParent, ++/*353304*/ OPC_MoveParent, ++/*353305*/ OPC_CheckChild1Same, 1, ++/*353307*/ OPC_MoveParent, ++/*353308*/ OPC_MoveParent, ++/*353309*/ OPC_MoveParent, ++/*353310*/ OPC_MoveChild1, ++/*353311*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*353314*/ OPC_CheckChild0Integer, 1, ++/*353316*/ OPC_CheckChild0Type, MVT::i32, ++/*353318*/ OPC_CheckChild1Integer, 1, ++/*353320*/ OPC_CheckChild1Type, MVT::i32, ++/*353322*/ OPC_CheckChild2Integer, 1, ++/*353324*/ OPC_CheckChild2Type, MVT::i32, ++/*353326*/ OPC_CheckChild3Integer, 1, ++/*353328*/ OPC_CheckChild3Type, MVT::i32, ++/*353330*/ OPC_CheckChild4Integer, 1, ++/*353332*/ OPC_CheckChild4Type, MVT::i32, ++/*353334*/ OPC_MoveChild5, ++/*353335*/ OPC_CheckInteger, 1, ++/*353337*/ OPC_CheckType, MVT::i32, ++/*353339*/ OPC_MoveParent, ++/*353340*/ OPC_MoveChild6, ++/*353341*/ OPC_CheckInteger, 1, ++/*353343*/ OPC_CheckType, MVT::i32, ++/*353345*/ OPC_MoveParent, ++/*353346*/ OPC_MoveChild7, ++/*353347*/ OPC_CheckInteger, 1, ++/*353349*/ OPC_CheckType, MVT::i32, ++/*353351*/ OPC_MoveParent, ++/*353352*/ OPC_MoveChild, 8, ++/*353354*/ OPC_CheckInteger, 1, ++/*353356*/ OPC_CheckType, MVT::i32, ++/*353358*/ OPC_MoveParent, ++/*353359*/ OPC_MoveChild, 9, ++/*353361*/ OPC_CheckInteger, 1, ++/*353363*/ OPC_CheckType, MVT::i32, ++/*353365*/ OPC_MoveParent, ++/*353366*/ OPC_MoveChild, 10, ++/*353368*/ OPC_CheckInteger, 1, ++/*353370*/ OPC_CheckType, MVT::i32, ++/*353372*/ OPC_MoveParent, ++/*353373*/ OPC_MoveChild, 11, ++/*353375*/ OPC_CheckInteger, 1, ++/*353377*/ OPC_CheckType, MVT::i32, ++/*353379*/ OPC_MoveParent, ++/*353380*/ OPC_MoveChild, 12, ++/*353382*/ OPC_CheckInteger, 1, ++/*353384*/ OPC_CheckType, MVT::i32, ++/*353386*/ OPC_MoveParent, ++/*353387*/ OPC_MoveChild, 13, ++/*353389*/ OPC_CheckInteger, 1, ++/*353391*/ OPC_CheckType, MVT::i32, ++/*353393*/ OPC_MoveParent, ++/*353394*/ OPC_MoveChild, 14, ++/*353396*/ OPC_CheckInteger, 1, ++/*353398*/ OPC_CheckType, MVT::i32, ++/*353400*/ OPC_MoveParent, ++/*353401*/ OPC_MoveChild, 15, ++/*353403*/ OPC_CheckInteger, 1, ++/*353405*/ OPC_CheckType, MVT::i32, ++/*353407*/ OPC_MoveParent, ++/*353408*/ OPC_CheckType, MVT::v16i8, ++/*353410*/ OPC_MoveParent, ++/*353411*/ OPC_CheckType, MVT::v16i8, ++/*353413*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*353415*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*353423*/ /*Scope*/ 89|128,1/*217*/, /*->353642*/ ++/*353425*/ OPC_CheckChild0Same, 1, ++/*353427*/ OPC_MoveChild1, ++/*353428*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*353431*/ OPC_CheckChild0Integer, 1, ++/*353433*/ OPC_CheckChild0Type, MVT::i32, ++/*353435*/ OPC_CheckChild1Integer, 1, ++/*353437*/ OPC_CheckChild1Type, MVT::i32, ++/*353439*/ OPC_CheckChild2Integer, 1, ++/*353441*/ OPC_CheckChild2Type, MVT::i32, ++/*353443*/ OPC_CheckChild3Integer, 1, ++/*353445*/ OPC_CheckChild3Type, MVT::i32, ++/*353447*/ OPC_CheckChild4Integer, 1, ++/*353449*/ OPC_CheckChild4Type, MVT::i32, ++/*353451*/ OPC_MoveChild5, ++/*353452*/ OPC_CheckInteger, 1, ++/*353454*/ OPC_CheckType, MVT::i32, ++/*353456*/ OPC_MoveParent, ++/*353457*/ OPC_MoveChild6, ++/*353458*/ OPC_CheckInteger, 1, ++/*353460*/ OPC_CheckType, MVT::i32, ++/*353462*/ OPC_MoveParent, ++/*353463*/ OPC_MoveChild7, ++/*353464*/ OPC_CheckInteger, 1, ++/*353466*/ OPC_CheckType, MVT::i32, ++/*353468*/ OPC_MoveParent, ++/*353469*/ OPC_MoveChild, 8, ++/*353471*/ OPC_CheckInteger, 1, ++/*353473*/ OPC_CheckType, MVT::i32, ++/*353475*/ OPC_MoveParent, ++/*353476*/ OPC_MoveChild, 9, ++/*353478*/ OPC_CheckInteger, 1, ++/*353480*/ OPC_CheckType, MVT::i32, ++/*353482*/ OPC_MoveParent, ++/*353483*/ OPC_MoveChild, 10, ++/*353485*/ OPC_CheckInteger, 1, ++/*353487*/ OPC_CheckType, MVT::i32, ++/*353489*/ OPC_MoveParent, ++/*353490*/ OPC_MoveChild, 11, ++/*353492*/ OPC_CheckInteger, 1, ++/*353494*/ OPC_CheckType, MVT::i32, ++/*353496*/ OPC_MoveParent, ++/*353497*/ OPC_MoveChild, 12, ++/*353499*/ OPC_CheckInteger, 1, ++/*353501*/ OPC_CheckType, MVT::i32, ++/*353503*/ OPC_MoveParent, ++/*353504*/ OPC_MoveChild, 13, ++/*353506*/ OPC_CheckInteger, 1, ++/*353508*/ OPC_CheckType, MVT::i32, ++/*353510*/ OPC_MoveParent, ++/*353511*/ OPC_MoveChild, 14, ++/*353513*/ OPC_CheckInteger, 1, ++/*353515*/ OPC_CheckType, MVT::i32, ++/*353517*/ OPC_MoveParent, ++/*353518*/ OPC_MoveChild, 15, ++/*353520*/ OPC_CheckInteger, 1, ++/*353522*/ OPC_CheckType, MVT::i32, ++/*353524*/ OPC_MoveParent, ++/*353525*/ OPC_MoveParent, ++/*353526*/ OPC_MoveParent, ++/*353527*/ OPC_MoveParent, ++/*353528*/ OPC_MoveParent, ++/*353529*/ OPC_MoveChild1, ++/*353530*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*353533*/ OPC_CheckChild0Integer, 1, ++/*353535*/ OPC_CheckChild0Type, MVT::i32, ++/*353537*/ OPC_CheckChild1Integer, 1, ++/*353539*/ OPC_CheckChild1Type, MVT::i32, ++/*353541*/ OPC_CheckChild2Integer, 1, ++/*353543*/ OPC_CheckChild2Type, MVT::i32, ++/*353545*/ OPC_CheckChild3Integer, 1, ++/*353547*/ OPC_CheckChild3Type, MVT::i32, ++/*353549*/ OPC_CheckChild4Integer, 1, ++/*353551*/ OPC_CheckChild4Type, MVT::i32, ++/*353553*/ OPC_MoveChild5, ++/*353554*/ OPC_CheckInteger, 1, ++/*353556*/ OPC_CheckType, MVT::i32, ++/*353558*/ OPC_MoveParent, ++/*353559*/ OPC_MoveChild6, ++/*353560*/ OPC_CheckInteger, 1, ++/*353562*/ OPC_CheckType, MVT::i32, ++/*353564*/ OPC_MoveParent, ++/*353565*/ OPC_MoveChild7, ++/*353566*/ OPC_CheckInteger, 1, ++/*353568*/ OPC_CheckType, MVT::i32, ++/*353570*/ OPC_MoveParent, ++/*353571*/ OPC_MoveChild, 8, ++/*353573*/ OPC_CheckInteger, 1, ++/*353575*/ OPC_CheckType, MVT::i32, ++/*353577*/ OPC_MoveParent, ++/*353578*/ OPC_MoveChild, 9, ++/*353580*/ OPC_CheckInteger, 1, ++/*353582*/ OPC_CheckType, MVT::i32, ++/*353584*/ OPC_MoveParent, ++/*353585*/ OPC_MoveChild, 10, ++/*353587*/ OPC_CheckInteger, 1, ++/*353589*/ OPC_CheckType, MVT::i32, ++/*353591*/ OPC_MoveParent, ++/*353592*/ OPC_MoveChild, 11, ++/*353594*/ OPC_CheckInteger, 1, ++/*353596*/ OPC_CheckType, MVT::i32, ++/*353598*/ OPC_MoveParent, ++/*353599*/ OPC_MoveChild, 12, ++/*353601*/ OPC_CheckInteger, 1, ++/*353603*/ OPC_CheckType, MVT::i32, ++/*353605*/ OPC_MoveParent, ++/*353606*/ OPC_MoveChild, 13, ++/*353608*/ OPC_CheckInteger, 1, ++/*353610*/ OPC_CheckType, MVT::i32, ++/*353612*/ OPC_MoveParent, ++/*353613*/ OPC_MoveChild, 14, ++/*353615*/ OPC_CheckInteger, 1, ++/*353617*/ OPC_CheckType, MVT::i32, ++/*353619*/ OPC_MoveParent, ++/*353620*/ OPC_MoveChild, 15, ++/*353622*/ OPC_CheckInteger, 1, ++/*353624*/ OPC_CheckType, MVT::i32, ++/*353626*/ OPC_MoveParent, ++/*353627*/ OPC_CheckType, MVT::v16i8, ++/*353629*/ OPC_MoveParent, ++/*353630*/ OPC_CheckType, MVT::v16i8, ++/*353632*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*353634*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*353642*/ 0, /*End of Scope*/ ++/*353643*/ /*Scope*/ 18|128,13/*1682*/, /*->355327*/ ++/*353645*/ OPC_MoveChild0, ++/*353646*/ OPC_SwitchOpcode /*2 cases */, 87|128,2/*343*/, TARGET_VAL(ISD::BUILD_VECTOR),// ->353994 ++/*353651*/ OPC_CheckChild0Integer, 1, ++/*353653*/ OPC_CheckChild0Type, MVT::i32, ++/*353655*/ OPC_CheckChild1Integer, 1, ++/*353657*/ OPC_CheckChild1Type, MVT::i32, ++/*353659*/ OPC_CheckChild2Integer, 1, ++/*353661*/ OPC_CheckChild2Type, MVT::i32, ++/*353663*/ OPC_CheckChild3Integer, 1, ++/*353665*/ OPC_CheckChild3Type, MVT::i32, ++/*353667*/ OPC_CheckChild4Integer, 1, ++/*353669*/ OPC_CheckChild4Type, MVT::i32, ++/*353671*/ OPC_MoveChild5, ++/*353672*/ OPC_CheckInteger, 1, ++/*353674*/ OPC_CheckType, MVT::i32, ++/*353676*/ OPC_MoveParent, ++/*353677*/ OPC_MoveChild6, ++/*353678*/ OPC_CheckInteger, 1, ++/*353680*/ OPC_CheckType, MVT::i32, ++/*353682*/ OPC_MoveParent, ++/*353683*/ OPC_MoveChild7, ++/*353684*/ OPC_CheckInteger, 1, ++/*353686*/ OPC_CheckType, MVT::i32, ++/*353688*/ OPC_MoveParent, ++/*353689*/ OPC_MoveChild, 8, ++/*353691*/ OPC_CheckInteger, 1, ++/*353693*/ OPC_CheckType, MVT::i32, ++/*353695*/ OPC_MoveParent, ++/*353696*/ OPC_MoveChild, 9, ++/*353698*/ OPC_CheckInteger, 1, ++/*353700*/ OPC_CheckType, MVT::i32, ++/*353702*/ OPC_MoveParent, ++/*353703*/ OPC_MoveChild, 10, ++/*353705*/ OPC_CheckInteger, 1, ++/*353707*/ OPC_CheckType, MVT::i32, ++/*353709*/ OPC_MoveParent, ++/*353710*/ OPC_MoveChild, 11, ++/*353712*/ OPC_CheckInteger, 1, ++/*353714*/ OPC_CheckType, MVT::i32, ++/*353716*/ OPC_MoveParent, ++/*353717*/ OPC_MoveChild, 12, ++/*353719*/ OPC_CheckInteger, 1, ++/*353721*/ OPC_CheckType, MVT::i32, ++/*353723*/ OPC_MoveParent, ++/*353724*/ OPC_MoveChild, 13, ++/*353726*/ OPC_CheckInteger, 1, ++/*353728*/ OPC_CheckType, MVT::i32, ++/*353730*/ OPC_MoveParent, ++/*353731*/ OPC_MoveChild, 14, ++/*353733*/ OPC_CheckInteger, 1, ++/*353735*/ OPC_CheckType, MVT::i32, ++/*353737*/ OPC_MoveParent, ++/*353738*/ OPC_MoveChild, 15, ++/*353740*/ OPC_CheckInteger, 1, ++/*353742*/ OPC_CheckType, MVT::i32, ++/*353744*/ OPC_MoveParent, ++/*353745*/ OPC_MoveParent, ++/*353746*/ OPC_MoveChild1, ++/*353747*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*353750*/ OPC_Scope, 120, /*->353872*/ // 2 children in Scope ++/*353752*/ OPC_CheckChild0Same, 0, ++/*353754*/ OPC_CheckChild1Same, 1, ++/*353756*/ OPC_MoveParent, ++/*353757*/ OPC_MoveParent, ++/*353758*/ OPC_MoveParent, ++/*353759*/ OPC_MoveChild1, ++/*353760*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*353763*/ OPC_CheckChild0Integer, 1, ++/*353765*/ OPC_CheckChild0Type, MVT::i32, ++/*353767*/ OPC_CheckChild1Integer, 1, ++/*353769*/ OPC_CheckChild1Type, MVT::i32, ++/*353771*/ OPC_CheckChild2Integer, 1, ++/*353773*/ OPC_CheckChild2Type, MVT::i32, ++/*353775*/ OPC_CheckChild3Integer, 1, ++/*353777*/ OPC_CheckChild3Type, MVT::i32, ++/*353779*/ OPC_CheckChild4Integer, 1, ++/*353781*/ OPC_CheckChild4Type, MVT::i32, ++/*353783*/ OPC_MoveChild5, ++/*353784*/ OPC_CheckInteger, 1, ++/*353786*/ OPC_CheckType, MVT::i32, ++/*353788*/ OPC_MoveParent, ++/*353789*/ OPC_MoveChild6, ++/*353790*/ OPC_CheckInteger, 1, ++/*353792*/ OPC_CheckType, MVT::i32, ++/*353794*/ OPC_MoveParent, ++/*353795*/ OPC_MoveChild7, ++/*353796*/ OPC_CheckInteger, 1, ++/*353798*/ OPC_CheckType, MVT::i32, ++/*353800*/ OPC_MoveParent, ++/*353801*/ OPC_MoveChild, 8, ++/*353803*/ OPC_CheckInteger, 1, ++/*353805*/ OPC_CheckType, MVT::i32, ++/*353807*/ OPC_MoveParent, ++/*353808*/ OPC_MoveChild, 9, ++/*353810*/ OPC_CheckInteger, 1, ++/*353812*/ OPC_CheckType, MVT::i32, ++/*353814*/ OPC_MoveParent, ++/*353815*/ OPC_MoveChild, 10, ++/*353817*/ OPC_CheckInteger, 1, ++/*353819*/ OPC_CheckType, MVT::i32, ++/*353821*/ OPC_MoveParent, ++/*353822*/ OPC_MoveChild, 11, ++/*353824*/ OPC_CheckInteger, 1, ++/*353826*/ OPC_CheckType, MVT::i32, ++/*353828*/ OPC_MoveParent, ++/*353829*/ OPC_MoveChild, 12, ++/*353831*/ OPC_CheckInteger, 1, ++/*353833*/ OPC_CheckType, MVT::i32, ++/*353835*/ OPC_MoveParent, ++/*353836*/ OPC_MoveChild, 13, ++/*353838*/ OPC_CheckInteger, 1, ++/*353840*/ OPC_CheckType, MVT::i32, ++/*353842*/ OPC_MoveParent, ++/*353843*/ OPC_MoveChild, 14, ++/*353845*/ OPC_CheckInteger, 1, ++/*353847*/ OPC_CheckType, MVT::i32, ++/*353849*/ OPC_MoveParent, ++/*353850*/ OPC_MoveChild, 15, ++/*353852*/ OPC_CheckInteger, 1, ++/*353854*/ OPC_CheckType, MVT::i32, ++/*353856*/ OPC_MoveParent, ++/*353857*/ OPC_CheckType, MVT::v16i8, ++/*353859*/ OPC_MoveParent, ++/*353860*/ OPC_CheckType, MVT::v16i8, ++/*353862*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*353864*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*353872*/ /*Scope*/ 120, /*->353993*/ ++/*353873*/ OPC_CheckChild0Same, 1, ++/*353875*/ OPC_CheckChild1Same, 0, ++/*353877*/ OPC_MoveParent, ++/*353878*/ OPC_MoveParent, ++/*353879*/ OPC_MoveParent, ++/*353880*/ OPC_MoveChild1, ++/*353881*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*353884*/ OPC_CheckChild0Integer, 1, ++/*353886*/ OPC_CheckChild0Type, MVT::i32, ++/*353888*/ OPC_CheckChild1Integer, 1, ++/*353890*/ OPC_CheckChild1Type, MVT::i32, ++/*353892*/ OPC_CheckChild2Integer, 1, ++/*353894*/ OPC_CheckChild2Type, MVT::i32, ++/*353896*/ OPC_CheckChild3Integer, 1, ++/*353898*/ OPC_CheckChild3Type, MVT::i32, ++/*353900*/ OPC_CheckChild4Integer, 1, ++/*353902*/ OPC_CheckChild4Type, MVT::i32, ++/*353904*/ OPC_MoveChild5, ++/*353905*/ OPC_CheckInteger, 1, ++/*353907*/ OPC_CheckType, MVT::i32, ++/*353909*/ OPC_MoveParent, ++/*353910*/ OPC_MoveChild6, ++/*353911*/ OPC_CheckInteger, 1, ++/*353913*/ OPC_CheckType, MVT::i32, ++/*353915*/ OPC_MoveParent, ++/*353916*/ OPC_MoveChild7, ++/*353917*/ OPC_CheckInteger, 1, ++/*353919*/ OPC_CheckType, MVT::i32, ++/*353921*/ OPC_MoveParent, ++/*353922*/ OPC_MoveChild, 8, ++/*353924*/ OPC_CheckInteger, 1, ++/*353926*/ OPC_CheckType, MVT::i32, ++/*353928*/ OPC_MoveParent, ++/*353929*/ OPC_MoveChild, 9, ++/*353931*/ OPC_CheckInteger, 1, ++/*353933*/ OPC_CheckType, MVT::i32, ++/*353935*/ OPC_MoveParent, ++/*353936*/ OPC_MoveChild, 10, ++/*353938*/ OPC_CheckInteger, 1, ++/*353940*/ OPC_CheckType, MVT::i32, ++/*353942*/ OPC_MoveParent, ++/*353943*/ OPC_MoveChild, 11, ++/*353945*/ OPC_CheckInteger, 1, ++/*353947*/ OPC_CheckType, MVT::i32, ++/*353949*/ OPC_MoveParent, ++/*353950*/ OPC_MoveChild, 12, ++/*353952*/ OPC_CheckInteger, 1, ++/*353954*/ OPC_CheckType, MVT::i32, ++/*353956*/ OPC_MoveParent, ++/*353957*/ OPC_MoveChild, 13, ++/*353959*/ OPC_CheckInteger, 1, ++/*353961*/ OPC_CheckType, MVT::i32, ++/*353963*/ OPC_MoveParent, ++/*353964*/ OPC_MoveChild, 14, ++/*353966*/ OPC_CheckInteger, 1, ++/*353968*/ OPC_CheckType, MVT::i32, ++/*353970*/ OPC_MoveParent, ++/*353971*/ OPC_MoveChild, 15, ++/*353973*/ OPC_CheckInteger, 1, ++/*353975*/ OPC_CheckType, MVT::i32, ++/*353977*/ OPC_MoveParent, ++/*353978*/ OPC_CheckType, MVT::v16i8, ++/*353980*/ OPC_MoveParent, ++/*353981*/ OPC_CheckType, MVT::v16i8, ++/*353983*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*353985*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*353993*/ 0, /*End of Scope*/ ++/*353994*/ /*SwitchOpcode*/ 48|128,10/*1328*/, TARGET_VAL(ISD::ADD),// ->355326 ++/*353998*/ OPC_Scope, 91|128,1/*219*/, /*->354220*/ // 6 children in Scope ++/*354001*/ OPC_MoveChild0, ++/*354002*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*354005*/ OPC_CheckChild0Integer, 1, ++/*354007*/ OPC_CheckChild0Type, MVT::i32, ++/*354009*/ OPC_CheckChild1Integer, 1, ++/*354011*/ OPC_CheckChild1Type, MVT::i32, ++/*354013*/ OPC_CheckChild2Integer, 1, ++/*354015*/ OPC_CheckChild2Type, MVT::i32, ++/*354017*/ OPC_CheckChild3Integer, 1, ++/*354019*/ OPC_CheckChild3Type, MVT::i32, ++/*354021*/ OPC_CheckChild4Integer, 1, ++/*354023*/ OPC_CheckChild4Type, MVT::i32, ++/*354025*/ OPC_MoveChild5, ++/*354026*/ OPC_CheckInteger, 1, ++/*354028*/ OPC_CheckType, MVT::i32, ++/*354030*/ OPC_MoveParent, ++/*354031*/ OPC_MoveChild6, ++/*354032*/ OPC_CheckInteger, 1, ++/*354034*/ OPC_CheckType, MVT::i32, ++/*354036*/ OPC_MoveParent, ++/*354037*/ OPC_MoveChild7, ++/*354038*/ OPC_CheckInteger, 1, ++/*354040*/ OPC_CheckType, MVT::i32, ++/*354042*/ OPC_MoveParent, ++/*354043*/ OPC_MoveChild, 8, ++/*354045*/ OPC_CheckInteger, 1, ++/*354047*/ OPC_CheckType, MVT::i32, ++/*354049*/ OPC_MoveParent, ++/*354050*/ OPC_MoveChild, 9, ++/*354052*/ OPC_CheckInteger, 1, ++/*354054*/ OPC_CheckType, MVT::i32, ++/*354056*/ OPC_MoveParent, ++/*354057*/ OPC_MoveChild, 10, ++/*354059*/ OPC_CheckInteger, 1, ++/*354061*/ OPC_CheckType, MVT::i32, ++/*354063*/ OPC_MoveParent, ++/*354064*/ OPC_MoveChild, 11, ++/*354066*/ OPC_CheckInteger, 1, ++/*354068*/ OPC_CheckType, MVT::i32, ++/*354070*/ OPC_MoveParent, ++/*354071*/ OPC_MoveChild, 12, ++/*354073*/ OPC_CheckInteger, 1, ++/*354075*/ OPC_CheckType, MVT::i32, ++/*354077*/ OPC_MoveParent, ++/*354078*/ OPC_MoveChild, 13, ++/*354080*/ OPC_CheckInteger, 1, ++/*354082*/ OPC_CheckType, MVT::i32, ++/*354084*/ OPC_MoveParent, ++/*354085*/ OPC_MoveChild, 14, ++/*354087*/ OPC_CheckInteger, 1, ++/*354089*/ OPC_CheckType, MVT::i32, ++/*354091*/ OPC_MoveParent, ++/*354092*/ OPC_MoveChild, 15, ++/*354094*/ OPC_CheckInteger, 1, ++/*354096*/ OPC_CheckType, MVT::i32, ++/*354098*/ OPC_MoveParent, ++/*354099*/ OPC_MoveParent, ++/*354100*/ OPC_CheckChild1Same, 1, ++/*354102*/ OPC_MoveParent, ++/*354103*/ OPC_CheckChild1Same, 0, ++/*354105*/ OPC_MoveParent, ++/*354106*/ OPC_MoveParent, ++/*354107*/ OPC_MoveChild1, ++/*354108*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*354111*/ OPC_CheckChild0Integer, 1, ++/*354113*/ OPC_CheckChild0Type, MVT::i32, ++/*354115*/ OPC_CheckChild1Integer, 1, ++/*354117*/ OPC_CheckChild1Type, MVT::i32, ++/*354119*/ OPC_CheckChild2Integer, 1, ++/*354121*/ OPC_CheckChild2Type, MVT::i32, ++/*354123*/ OPC_CheckChild3Integer, 1, ++/*354125*/ OPC_CheckChild3Type, MVT::i32, ++/*354127*/ OPC_CheckChild4Integer, 1, ++/*354129*/ OPC_CheckChild4Type, MVT::i32, ++/*354131*/ OPC_MoveChild5, ++/*354132*/ OPC_CheckInteger, 1, ++/*354134*/ OPC_CheckType, MVT::i32, ++/*354136*/ OPC_MoveParent, ++/*354137*/ OPC_MoveChild6, ++/*354138*/ OPC_CheckInteger, 1, ++/*354140*/ OPC_CheckType, MVT::i32, ++/*354142*/ OPC_MoveParent, ++/*354143*/ OPC_MoveChild7, ++/*354144*/ OPC_CheckInteger, 1, ++/*354146*/ OPC_CheckType, MVT::i32, ++/*354148*/ OPC_MoveParent, ++/*354149*/ OPC_MoveChild, 8, ++/*354151*/ OPC_CheckInteger, 1, ++/*354153*/ OPC_CheckType, MVT::i32, ++/*354155*/ OPC_MoveParent, ++/*354156*/ OPC_MoveChild, 9, ++/*354158*/ OPC_CheckInteger, 1, ++/*354160*/ OPC_CheckType, MVT::i32, ++/*354162*/ OPC_MoveParent, ++/*354163*/ OPC_MoveChild, 10, ++/*354165*/ OPC_CheckInteger, 1, ++/*354167*/ OPC_CheckType, MVT::i32, ++/*354169*/ OPC_MoveParent, ++/*354170*/ OPC_MoveChild, 11, ++/*354172*/ OPC_CheckInteger, 1, ++/*354174*/ OPC_CheckType, MVT::i32, ++/*354176*/ OPC_MoveParent, ++/*354177*/ OPC_MoveChild, 12, ++/*354179*/ OPC_CheckInteger, 1, ++/*354181*/ OPC_CheckType, MVT::i32, ++/*354183*/ OPC_MoveParent, ++/*354184*/ OPC_MoveChild, 13, ++/*354186*/ OPC_CheckInteger, 1, ++/*354188*/ OPC_CheckType, MVT::i32, ++/*354190*/ OPC_MoveParent, ++/*354191*/ OPC_MoveChild, 14, ++/*354193*/ OPC_CheckInteger, 1, ++/*354195*/ OPC_CheckType, MVT::i32, ++/*354197*/ OPC_MoveParent, ++/*354198*/ OPC_MoveChild, 15, ++/*354200*/ OPC_CheckInteger, 1, ++/*354202*/ OPC_CheckType, MVT::i32, ++/*354204*/ OPC_MoveParent, ++/*354205*/ OPC_CheckType, MVT::v16i8, ++/*354207*/ OPC_MoveParent, ++/*354208*/ OPC_CheckType, MVT::v16i8, ++/*354210*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*354212*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a), LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*354220*/ /*Scope*/ 91|128,1/*219*/, /*->354441*/ ++/*354222*/ OPC_CheckChild0Same, 1, ++/*354224*/ OPC_MoveChild1, ++/*354225*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*354228*/ OPC_CheckChild0Integer, 1, ++/*354230*/ OPC_CheckChild0Type, MVT::i32, ++/*354232*/ OPC_CheckChild1Integer, 1, ++/*354234*/ OPC_CheckChild1Type, MVT::i32, ++/*354236*/ OPC_CheckChild2Integer, 1, ++/*354238*/ OPC_CheckChild2Type, MVT::i32, ++/*354240*/ OPC_CheckChild3Integer, 1, ++/*354242*/ OPC_CheckChild3Type, MVT::i32, ++/*354244*/ OPC_CheckChild4Integer, 1, ++/*354246*/ OPC_CheckChild4Type, MVT::i32, ++/*354248*/ OPC_MoveChild5, ++/*354249*/ OPC_CheckInteger, 1, ++/*354251*/ OPC_CheckType, MVT::i32, ++/*354253*/ OPC_MoveParent, ++/*354254*/ OPC_MoveChild6, ++/*354255*/ OPC_CheckInteger, 1, ++/*354257*/ OPC_CheckType, MVT::i32, ++/*354259*/ OPC_MoveParent, ++/*354260*/ OPC_MoveChild7, ++/*354261*/ OPC_CheckInteger, 1, ++/*354263*/ OPC_CheckType, MVT::i32, ++/*354265*/ OPC_MoveParent, ++/*354266*/ OPC_MoveChild, 8, ++/*354268*/ OPC_CheckInteger, 1, ++/*354270*/ OPC_CheckType, MVT::i32, ++/*354272*/ OPC_MoveParent, ++/*354273*/ OPC_MoveChild, 9, ++/*354275*/ OPC_CheckInteger, 1, ++/*354277*/ OPC_CheckType, MVT::i32, ++/*354279*/ OPC_MoveParent, ++/*354280*/ OPC_MoveChild, 10, ++/*354282*/ OPC_CheckInteger, 1, ++/*354284*/ OPC_CheckType, MVT::i32, ++/*354286*/ OPC_MoveParent, ++/*354287*/ OPC_MoveChild, 11, ++/*354289*/ OPC_CheckInteger, 1, ++/*354291*/ OPC_CheckType, MVT::i32, ++/*354293*/ OPC_MoveParent, ++/*354294*/ OPC_MoveChild, 12, ++/*354296*/ OPC_CheckInteger, 1, ++/*354298*/ OPC_CheckType, MVT::i32, ++/*354300*/ OPC_MoveParent, ++/*354301*/ OPC_MoveChild, 13, ++/*354303*/ OPC_CheckInteger, 1, ++/*354305*/ OPC_CheckType, MVT::i32, ++/*354307*/ OPC_MoveParent, ++/*354308*/ OPC_MoveChild, 14, ++/*354310*/ OPC_CheckInteger, 1, ++/*354312*/ OPC_CheckType, MVT::i32, ++/*354314*/ OPC_MoveParent, ++/*354315*/ OPC_MoveChild, 15, ++/*354317*/ OPC_CheckInteger, 1, ++/*354319*/ OPC_CheckType, MVT::i32, ++/*354321*/ OPC_MoveParent, ++/*354322*/ OPC_MoveParent, ++/*354323*/ OPC_MoveParent, ++/*354324*/ OPC_CheckChild1Same, 0, ++/*354326*/ OPC_MoveParent, ++/*354327*/ OPC_MoveParent, ++/*354328*/ OPC_MoveChild1, ++/*354329*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*354332*/ OPC_CheckChild0Integer, 1, ++/*354334*/ OPC_CheckChild0Type, MVT::i32, ++/*354336*/ OPC_CheckChild1Integer, 1, ++/*354338*/ OPC_CheckChild1Type, MVT::i32, ++/*354340*/ OPC_CheckChild2Integer, 1, ++/*354342*/ OPC_CheckChild2Type, MVT::i32, ++/*354344*/ OPC_CheckChild3Integer, 1, ++/*354346*/ OPC_CheckChild3Type, MVT::i32, ++/*354348*/ OPC_CheckChild4Integer, 1, ++/*354350*/ OPC_CheckChild4Type, MVT::i32, ++/*354352*/ OPC_MoveChild5, ++/*354353*/ OPC_CheckInteger, 1, ++/*354355*/ OPC_CheckType, MVT::i32, ++/*354357*/ OPC_MoveParent, ++/*354358*/ OPC_MoveChild6, ++/*354359*/ OPC_CheckInteger, 1, ++/*354361*/ OPC_CheckType, MVT::i32, ++/*354363*/ OPC_MoveParent, ++/*354364*/ OPC_MoveChild7, ++/*354365*/ OPC_CheckInteger, 1, ++/*354367*/ OPC_CheckType, MVT::i32, ++/*354369*/ OPC_MoveParent, ++/*354370*/ OPC_MoveChild, 8, ++/*354372*/ OPC_CheckInteger, 1, ++/*354374*/ OPC_CheckType, MVT::i32, ++/*354376*/ OPC_MoveParent, ++/*354377*/ OPC_MoveChild, 9, ++/*354379*/ OPC_CheckInteger, 1, ++/*354381*/ OPC_CheckType, MVT::i32, ++/*354383*/ OPC_MoveParent, ++/*354384*/ OPC_MoveChild, 10, ++/*354386*/ OPC_CheckInteger, 1, ++/*354388*/ OPC_CheckType, MVT::i32, ++/*354390*/ OPC_MoveParent, ++/*354391*/ OPC_MoveChild, 11, ++/*354393*/ OPC_CheckInteger, 1, ++/*354395*/ OPC_CheckType, MVT::i32, ++/*354397*/ OPC_MoveParent, ++/*354398*/ OPC_MoveChild, 12, ++/*354400*/ OPC_CheckInteger, 1, ++/*354402*/ OPC_CheckType, MVT::i32, ++/*354404*/ OPC_MoveParent, ++/*354405*/ OPC_MoveChild, 13, ++/*354407*/ OPC_CheckInteger, 1, ++/*354409*/ OPC_CheckType, MVT::i32, ++/*354411*/ OPC_MoveParent, ++/*354412*/ OPC_MoveChild, 14, ++/*354414*/ OPC_CheckInteger, 1, ++/*354416*/ OPC_CheckType, MVT::i32, ++/*354418*/ OPC_MoveParent, ++/*354419*/ OPC_MoveChild, 15, ++/*354421*/ OPC_CheckInteger, 1, ++/*354423*/ OPC_CheckType, MVT::i32, ++/*354425*/ OPC_MoveParent, ++/*354426*/ OPC_CheckType, MVT::v16i8, ++/*354428*/ OPC_MoveParent, ++/*354429*/ OPC_CheckType, MVT::v16i8, ++/*354431*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*354433*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*354441*/ /*Scope*/ 91|128,1/*219*/, /*->354662*/ ++/*354443*/ OPC_MoveChild0, ++/*354444*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*354447*/ OPC_CheckChild0Integer, 1, ++/*354449*/ OPC_CheckChild0Type, MVT::i32, ++/*354451*/ OPC_CheckChild1Integer, 1, ++/*354453*/ OPC_CheckChild1Type, MVT::i32, ++/*354455*/ OPC_CheckChild2Integer, 1, ++/*354457*/ OPC_CheckChild2Type, MVT::i32, ++/*354459*/ OPC_CheckChild3Integer, 1, ++/*354461*/ OPC_CheckChild3Type, MVT::i32, ++/*354463*/ OPC_CheckChild4Integer, 1, ++/*354465*/ OPC_CheckChild4Type, MVT::i32, ++/*354467*/ OPC_MoveChild5, ++/*354468*/ OPC_CheckInteger, 1, ++/*354470*/ OPC_CheckType, MVT::i32, ++/*354472*/ OPC_MoveParent, ++/*354473*/ OPC_MoveChild6, ++/*354474*/ OPC_CheckInteger, 1, ++/*354476*/ OPC_CheckType, MVT::i32, ++/*354478*/ OPC_MoveParent, ++/*354479*/ OPC_MoveChild7, ++/*354480*/ OPC_CheckInteger, 1, ++/*354482*/ OPC_CheckType, MVT::i32, ++/*354484*/ OPC_MoveParent, ++/*354485*/ OPC_MoveChild, 8, ++/*354487*/ OPC_CheckInteger, 1, ++/*354489*/ OPC_CheckType, MVT::i32, ++/*354491*/ OPC_MoveParent, ++/*354492*/ OPC_MoveChild, 9, ++/*354494*/ OPC_CheckInteger, 1, ++/*354496*/ OPC_CheckType, MVT::i32, ++/*354498*/ OPC_MoveParent, ++/*354499*/ OPC_MoveChild, 10, ++/*354501*/ OPC_CheckInteger, 1, ++/*354503*/ OPC_CheckType, MVT::i32, ++/*354505*/ OPC_MoveParent, ++/*354506*/ OPC_MoveChild, 11, ++/*354508*/ OPC_CheckInteger, 1, ++/*354510*/ OPC_CheckType, MVT::i32, ++/*354512*/ OPC_MoveParent, ++/*354513*/ OPC_MoveChild, 12, ++/*354515*/ OPC_CheckInteger, 1, ++/*354517*/ OPC_CheckType, MVT::i32, ++/*354519*/ OPC_MoveParent, ++/*354520*/ OPC_MoveChild, 13, ++/*354522*/ OPC_CheckInteger, 1, ++/*354524*/ OPC_CheckType, MVT::i32, ++/*354526*/ OPC_MoveParent, ++/*354527*/ OPC_MoveChild, 14, ++/*354529*/ OPC_CheckInteger, 1, ++/*354531*/ OPC_CheckType, MVT::i32, ++/*354533*/ OPC_MoveParent, ++/*354534*/ OPC_MoveChild, 15, ++/*354536*/ OPC_CheckInteger, 1, ++/*354538*/ OPC_CheckType, MVT::i32, ++/*354540*/ OPC_MoveParent, ++/*354541*/ OPC_MoveParent, ++/*354542*/ OPC_CheckChild1Same, 0, ++/*354544*/ OPC_MoveParent, ++/*354545*/ OPC_CheckChild1Same, 1, ++/*354547*/ OPC_MoveParent, ++/*354548*/ OPC_MoveParent, ++/*354549*/ OPC_MoveChild1, ++/*354550*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*354553*/ OPC_CheckChild0Integer, 1, ++/*354555*/ OPC_CheckChild0Type, MVT::i32, ++/*354557*/ OPC_CheckChild1Integer, 1, ++/*354559*/ OPC_CheckChild1Type, MVT::i32, ++/*354561*/ OPC_CheckChild2Integer, 1, ++/*354563*/ OPC_CheckChild2Type, MVT::i32, ++/*354565*/ OPC_CheckChild3Integer, 1, ++/*354567*/ OPC_CheckChild3Type, MVT::i32, ++/*354569*/ OPC_CheckChild4Integer, 1, ++/*354571*/ OPC_CheckChild4Type, MVT::i32, ++/*354573*/ OPC_MoveChild5, ++/*354574*/ OPC_CheckInteger, 1, ++/*354576*/ OPC_CheckType, MVT::i32, ++/*354578*/ OPC_MoveParent, ++/*354579*/ OPC_MoveChild6, ++/*354580*/ OPC_CheckInteger, 1, ++/*354582*/ OPC_CheckType, MVT::i32, ++/*354584*/ OPC_MoveParent, ++/*354585*/ OPC_MoveChild7, ++/*354586*/ OPC_CheckInteger, 1, ++/*354588*/ OPC_CheckType, MVT::i32, ++/*354590*/ OPC_MoveParent, ++/*354591*/ OPC_MoveChild, 8, ++/*354593*/ OPC_CheckInteger, 1, ++/*354595*/ OPC_CheckType, MVT::i32, ++/*354597*/ OPC_MoveParent, ++/*354598*/ OPC_MoveChild, 9, ++/*354600*/ OPC_CheckInteger, 1, ++/*354602*/ OPC_CheckType, MVT::i32, ++/*354604*/ OPC_MoveParent, ++/*354605*/ OPC_MoveChild, 10, ++/*354607*/ OPC_CheckInteger, 1, ++/*354609*/ OPC_CheckType, MVT::i32, ++/*354611*/ OPC_MoveParent, ++/*354612*/ OPC_MoveChild, 11, ++/*354614*/ OPC_CheckInteger, 1, ++/*354616*/ OPC_CheckType, MVT::i32, ++/*354618*/ OPC_MoveParent, ++/*354619*/ OPC_MoveChild, 12, ++/*354621*/ OPC_CheckInteger, 1, ++/*354623*/ OPC_CheckType, MVT::i32, ++/*354625*/ OPC_MoveParent, ++/*354626*/ OPC_MoveChild, 13, ++/*354628*/ OPC_CheckInteger, 1, ++/*354630*/ OPC_CheckType, MVT::i32, ++/*354632*/ OPC_MoveParent, ++/*354633*/ OPC_MoveChild, 14, ++/*354635*/ OPC_CheckInteger, 1, ++/*354637*/ OPC_CheckType, MVT::i32, ++/*354639*/ OPC_MoveParent, ++/*354640*/ OPC_MoveChild, 15, ++/*354642*/ OPC_CheckInteger, 1, ++/*354644*/ OPC_CheckType, MVT::i32, ++/*354646*/ OPC_MoveParent, ++/*354647*/ OPC_CheckType, MVT::v16i8, ++/*354649*/ OPC_MoveParent, ++/*354650*/ OPC_CheckType, MVT::v16i8, ++/*354652*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*354654*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b), LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*354662*/ /*Scope*/ 91|128,1/*219*/, /*->354883*/ ++/*354664*/ OPC_CheckChild0Same, 0, ++/*354666*/ OPC_MoveChild1, ++/*354667*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*354670*/ OPC_CheckChild0Integer, 1, ++/*354672*/ OPC_CheckChild0Type, MVT::i32, ++/*354674*/ OPC_CheckChild1Integer, 1, ++/*354676*/ OPC_CheckChild1Type, MVT::i32, ++/*354678*/ OPC_CheckChild2Integer, 1, ++/*354680*/ OPC_CheckChild2Type, MVT::i32, ++/*354682*/ OPC_CheckChild3Integer, 1, ++/*354684*/ OPC_CheckChild3Type, MVT::i32, ++/*354686*/ OPC_CheckChild4Integer, 1, ++/*354688*/ OPC_CheckChild4Type, MVT::i32, ++/*354690*/ OPC_MoveChild5, ++/*354691*/ OPC_CheckInteger, 1, ++/*354693*/ OPC_CheckType, MVT::i32, ++/*354695*/ OPC_MoveParent, ++/*354696*/ OPC_MoveChild6, ++/*354697*/ OPC_CheckInteger, 1, ++/*354699*/ OPC_CheckType, MVT::i32, ++/*354701*/ OPC_MoveParent, ++/*354702*/ OPC_MoveChild7, ++/*354703*/ OPC_CheckInteger, 1, ++/*354705*/ OPC_CheckType, MVT::i32, ++/*354707*/ OPC_MoveParent, ++/*354708*/ OPC_MoveChild, 8, ++/*354710*/ OPC_CheckInteger, 1, ++/*354712*/ OPC_CheckType, MVT::i32, ++/*354714*/ OPC_MoveParent, ++/*354715*/ OPC_MoveChild, 9, ++/*354717*/ OPC_CheckInteger, 1, ++/*354719*/ OPC_CheckType, MVT::i32, ++/*354721*/ OPC_MoveParent, ++/*354722*/ OPC_MoveChild, 10, ++/*354724*/ OPC_CheckInteger, 1, ++/*354726*/ OPC_CheckType, MVT::i32, ++/*354728*/ OPC_MoveParent, ++/*354729*/ OPC_MoveChild, 11, ++/*354731*/ OPC_CheckInteger, 1, ++/*354733*/ OPC_CheckType, MVT::i32, ++/*354735*/ OPC_MoveParent, ++/*354736*/ OPC_MoveChild, 12, ++/*354738*/ OPC_CheckInteger, 1, ++/*354740*/ OPC_CheckType, MVT::i32, ++/*354742*/ OPC_MoveParent, ++/*354743*/ OPC_MoveChild, 13, ++/*354745*/ OPC_CheckInteger, 1, ++/*354747*/ OPC_CheckType, MVT::i32, ++/*354749*/ OPC_MoveParent, ++/*354750*/ OPC_MoveChild, 14, ++/*354752*/ OPC_CheckInteger, 1, ++/*354754*/ OPC_CheckType, MVT::i32, ++/*354756*/ OPC_MoveParent, ++/*354757*/ OPC_MoveChild, 15, ++/*354759*/ OPC_CheckInteger, 1, ++/*354761*/ OPC_CheckType, MVT::i32, ++/*354763*/ OPC_MoveParent, ++/*354764*/ OPC_MoveParent, ++/*354765*/ OPC_MoveParent, ++/*354766*/ OPC_CheckChild1Same, 1, ++/*354768*/ OPC_MoveParent, ++/*354769*/ OPC_MoveParent, ++/*354770*/ OPC_MoveChild1, ++/*354771*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*354774*/ OPC_CheckChild0Integer, 1, ++/*354776*/ OPC_CheckChild0Type, MVT::i32, ++/*354778*/ OPC_CheckChild1Integer, 1, ++/*354780*/ OPC_CheckChild1Type, MVT::i32, ++/*354782*/ OPC_CheckChild2Integer, 1, ++/*354784*/ OPC_CheckChild2Type, MVT::i32, ++/*354786*/ OPC_CheckChild3Integer, 1, ++/*354788*/ OPC_CheckChild3Type, MVT::i32, ++/*354790*/ OPC_CheckChild4Integer, 1, ++/*354792*/ OPC_CheckChild4Type, MVT::i32, ++/*354794*/ OPC_MoveChild5, ++/*354795*/ OPC_CheckInteger, 1, ++/*354797*/ OPC_CheckType, MVT::i32, ++/*354799*/ OPC_MoveParent, ++/*354800*/ OPC_MoveChild6, ++/*354801*/ OPC_CheckInteger, 1, ++/*354803*/ OPC_CheckType, MVT::i32, ++/*354805*/ OPC_MoveParent, ++/*354806*/ OPC_MoveChild7, ++/*354807*/ OPC_CheckInteger, 1, ++/*354809*/ OPC_CheckType, MVT::i32, ++/*354811*/ OPC_MoveParent, ++/*354812*/ OPC_MoveChild, 8, ++/*354814*/ OPC_CheckInteger, 1, ++/*354816*/ OPC_CheckType, MVT::i32, ++/*354818*/ OPC_MoveParent, ++/*354819*/ OPC_MoveChild, 9, ++/*354821*/ OPC_CheckInteger, 1, ++/*354823*/ OPC_CheckType, MVT::i32, ++/*354825*/ OPC_MoveParent, ++/*354826*/ OPC_MoveChild, 10, ++/*354828*/ OPC_CheckInteger, 1, ++/*354830*/ OPC_CheckType, MVT::i32, ++/*354832*/ OPC_MoveParent, ++/*354833*/ OPC_MoveChild, 11, ++/*354835*/ OPC_CheckInteger, 1, ++/*354837*/ OPC_CheckType, MVT::i32, ++/*354839*/ OPC_MoveParent, ++/*354840*/ OPC_MoveChild, 12, ++/*354842*/ OPC_CheckInteger, 1, ++/*354844*/ OPC_CheckType, MVT::i32, ++/*354846*/ OPC_MoveParent, ++/*354847*/ OPC_MoveChild, 13, ++/*354849*/ OPC_CheckInteger, 1, ++/*354851*/ OPC_CheckType, MVT::i32, ++/*354853*/ OPC_MoveParent, ++/*354854*/ OPC_MoveChild, 14, ++/*354856*/ OPC_CheckInteger, 1, ++/*354858*/ OPC_CheckType, MVT::i32, ++/*354860*/ OPC_MoveParent, ++/*354861*/ OPC_MoveChild, 15, ++/*354863*/ OPC_CheckInteger, 1, ++/*354865*/ OPC_CheckType, MVT::i32, ++/*354867*/ OPC_MoveParent, ++/*354868*/ OPC_CheckType, MVT::v16i8, ++/*354870*/ OPC_MoveParent, ++/*354871*/ OPC_CheckType, MVT::v16i8, ++/*354873*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*354875*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*354883*/ /*Scope*/ 91|128,1/*219*/, /*->355104*/ ++/*354885*/ OPC_CheckChild0Same, 1, ++/*354887*/ OPC_CheckChild1Same, 0, ++/*354889*/ OPC_MoveParent, ++/*354890*/ OPC_MoveChild1, ++/*354891*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*354894*/ OPC_CheckChild0Integer, 1, ++/*354896*/ OPC_CheckChild0Type, MVT::i32, ++/*354898*/ OPC_CheckChild1Integer, 1, ++/*354900*/ OPC_CheckChild1Type, MVT::i32, ++/*354902*/ OPC_CheckChild2Integer, 1, ++/*354904*/ OPC_CheckChild2Type, MVT::i32, ++/*354906*/ OPC_CheckChild3Integer, 1, ++/*354908*/ OPC_CheckChild3Type, MVT::i32, ++/*354910*/ OPC_CheckChild4Integer, 1, ++/*354912*/ OPC_CheckChild4Type, MVT::i32, ++/*354914*/ OPC_MoveChild5, ++/*354915*/ OPC_CheckInteger, 1, ++/*354917*/ OPC_CheckType, MVT::i32, ++/*354919*/ OPC_MoveParent, ++/*354920*/ OPC_MoveChild6, ++/*354921*/ OPC_CheckInteger, 1, ++/*354923*/ OPC_CheckType, MVT::i32, ++/*354925*/ OPC_MoveParent, ++/*354926*/ OPC_MoveChild7, ++/*354927*/ OPC_CheckInteger, 1, ++/*354929*/ OPC_CheckType, MVT::i32, ++/*354931*/ OPC_MoveParent, ++/*354932*/ OPC_MoveChild, 8, ++/*354934*/ OPC_CheckInteger, 1, ++/*354936*/ OPC_CheckType, MVT::i32, ++/*354938*/ OPC_MoveParent, ++/*354939*/ OPC_MoveChild, 9, ++/*354941*/ OPC_CheckInteger, 1, ++/*354943*/ OPC_CheckType, MVT::i32, ++/*354945*/ OPC_MoveParent, ++/*354946*/ OPC_MoveChild, 10, ++/*354948*/ OPC_CheckInteger, 1, ++/*354950*/ OPC_CheckType, MVT::i32, ++/*354952*/ OPC_MoveParent, ++/*354953*/ OPC_MoveChild, 11, ++/*354955*/ OPC_CheckInteger, 1, ++/*354957*/ OPC_CheckType, MVT::i32, ++/*354959*/ OPC_MoveParent, ++/*354960*/ OPC_MoveChild, 12, ++/*354962*/ OPC_CheckInteger, 1, ++/*354964*/ OPC_CheckType, MVT::i32, ++/*354966*/ OPC_MoveParent, ++/*354967*/ OPC_MoveChild, 13, ++/*354969*/ OPC_CheckInteger, 1, ++/*354971*/ OPC_CheckType, MVT::i32, ++/*354973*/ OPC_MoveParent, ++/*354974*/ OPC_MoveChild, 14, ++/*354976*/ OPC_CheckInteger, 1, ++/*354978*/ OPC_CheckType, MVT::i32, ++/*354980*/ OPC_MoveParent, ++/*354981*/ OPC_MoveChild, 15, ++/*354983*/ OPC_CheckInteger, 1, ++/*354985*/ OPC_CheckType, MVT::i32, ++/*354987*/ OPC_MoveParent, ++/*354988*/ OPC_MoveParent, ++/*354989*/ OPC_MoveParent, ++/*354990*/ OPC_MoveParent, ++/*354991*/ OPC_MoveChild1, ++/*354992*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*354995*/ OPC_CheckChild0Integer, 1, ++/*354997*/ OPC_CheckChild0Type, MVT::i32, ++/*354999*/ OPC_CheckChild1Integer, 1, ++/*355001*/ OPC_CheckChild1Type, MVT::i32, ++/*355003*/ OPC_CheckChild2Integer, 1, ++/*355005*/ OPC_CheckChild2Type, MVT::i32, ++/*355007*/ OPC_CheckChild3Integer, 1, ++/*355009*/ OPC_CheckChild3Type, MVT::i32, ++/*355011*/ OPC_CheckChild4Integer, 1, ++/*355013*/ OPC_CheckChild4Type, MVT::i32, ++/*355015*/ OPC_MoveChild5, ++/*355016*/ OPC_CheckInteger, 1, ++/*355018*/ OPC_CheckType, MVT::i32, ++/*355020*/ OPC_MoveParent, ++/*355021*/ OPC_MoveChild6, ++/*355022*/ OPC_CheckInteger, 1, ++/*355024*/ OPC_CheckType, MVT::i32, ++/*355026*/ OPC_MoveParent, ++/*355027*/ OPC_MoveChild7, ++/*355028*/ OPC_CheckInteger, 1, ++/*355030*/ OPC_CheckType, MVT::i32, ++/*355032*/ OPC_MoveParent, ++/*355033*/ OPC_MoveChild, 8, ++/*355035*/ OPC_CheckInteger, 1, ++/*355037*/ OPC_CheckType, MVT::i32, ++/*355039*/ OPC_MoveParent, ++/*355040*/ OPC_MoveChild, 9, ++/*355042*/ OPC_CheckInteger, 1, ++/*355044*/ OPC_CheckType, MVT::i32, ++/*355046*/ OPC_MoveParent, ++/*355047*/ OPC_MoveChild, 10, ++/*355049*/ OPC_CheckInteger, 1, ++/*355051*/ OPC_CheckType, MVT::i32, ++/*355053*/ OPC_MoveParent, ++/*355054*/ OPC_MoveChild, 11, ++/*355056*/ OPC_CheckInteger, 1, ++/*355058*/ OPC_CheckType, MVT::i32, ++/*355060*/ OPC_MoveParent, ++/*355061*/ OPC_MoveChild, 12, ++/*355063*/ OPC_CheckInteger, 1, ++/*355065*/ OPC_CheckType, MVT::i32, ++/*355067*/ OPC_MoveParent, ++/*355068*/ OPC_MoveChild, 13, ++/*355070*/ OPC_CheckInteger, 1, ++/*355072*/ OPC_CheckType, MVT::i32, ++/*355074*/ OPC_MoveParent, ++/*355075*/ OPC_MoveChild, 14, ++/*355077*/ OPC_CheckInteger, 1, ++/*355079*/ OPC_CheckType, MVT::i32, ++/*355081*/ OPC_MoveParent, ++/*355082*/ OPC_MoveChild, 15, ++/*355084*/ OPC_CheckInteger, 1, ++/*355086*/ OPC_CheckType, MVT::i32, ++/*355088*/ OPC_MoveParent, ++/*355089*/ OPC_CheckType, MVT::v16i8, ++/*355091*/ OPC_MoveParent, ++/*355092*/ OPC_CheckType, MVT::v16i8, ++/*355094*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*355096*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*355104*/ /*Scope*/ 91|128,1/*219*/, /*->355325*/ ++/*355106*/ OPC_CheckChild0Same, 0, ++/*355108*/ OPC_CheckChild1Same, 1, ++/*355110*/ OPC_MoveParent, ++/*355111*/ OPC_MoveChild1, ++/*355112*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*355115*/ OPC_CheckChild0Integer, 1, ++/*355117*/ OPC_CheckChild0Type, MVT::i32, ++/*355119*/ OPC_CheckChild1Integer, 1, ++/*355121*/ OPC_CheckChild1Type, MVT::i32, ++/*355123*/ OPC_CheckChild2Integer, 1, ++/*355125*/ OPC_CheckChild2Type, MVT::i32, ++/*355127*/ OPC_CheckChild3Integer, 1, ++/*355129*/ OPC_CheckChild3Type, MVT::i32, ++/*355131*/ OPC_CheckChild4Integer, 1, ++/*355133*/ OPC_CheckChild4Type, MVT::i32, ++/*355135*/ OPC_MoveChild5, ++/*355136*/ OPC_CheckInteger, 1, ++/*355138*/ OPC_CheckType, MVT::i32, ++/*355140*/ OPC_MoveParent, ++/*355141*/ OPC_MoveChild6, ++/*355142*/ OPC_CheckInteger, 1, ++/*355144*/ OPC_CheckType, MVT::i32, ++/*355146*/ OPC_MoveParent, ++/*355147*/ OPC_MoveChild7, ++/*355148*/ OPC_CheckInteger, 1, ++/*355150*/ OPC_CheckType, MVT::i32, ++/*355152*/ OPC_MoveParent, ++/*355153*/ OPC_MoveChild, 8, ++/*355155*/ OPC_CheckInteger, 1, ++/*355157*/ OPC_CheckType, MVT::i32, ++/*355159*/ OPC_MoveParent, ++/*355160*/ OPC_MoveChild, 9, ++/*355162*/ OPC_CheckInteger, 1, ++/*355164*/ OPC_CheckType, MVT::i32, ++/*355166*/ OPC_MoveParent, ++/*355167*/ OPC_MoveChild, 10, ++/*355169*/ OPC_CheckInteger, 1, ++/*355171*/ OPC_CheckType, MVT::i32, ++/*355173*/ OPC_MoveParent, ++/*355174*/ OPC_MoveChild, 11, ++/*355176*/ OPC_CheckInteger, 1, ++/*355178*/ OPC_CheckType, MVT::i32, ++/*355180*/ OPC_MoveParent, ++/*355181*/ OPC_MoveChild, 12, ++/*355183*/ OPC_CheckInteger, 1, ++/*355185*/ OPC_CheckType, MVT::i32, ++/*355187*/ OPC_MoveParent, ++/*355188*/ OPC_MoveChild, 13, ++/*355190*/ OPC_CheckInteger, 1, ++/*355192*/ OPC_CheckType, MVT::i32, ++/*355194*/ OPC_MoveParent, ++/*355195*/ OPC_MoveChild, 14, ++/*355197*/ OPC_CheckInteger, 1, ++/*355199*/ OPC_CheckType, MVT::i32, ++/*355201*/ OPC_MoveParent, ++/*355202*/ OPC_MoveChild, 15, ++/*355204*/ OPC_CheckInteger, 1, ++/*355206*/ OPC_CheckType, MVT::i32, ++/*355208*/ OPC_MoveParent, ++/*355209*/ OPC_MoveParent, ++/*355210*/ OPC_MoveParent, ++/*355211*/ OPC_MoveParent, ++/*355212*/ OPC_MoveChild1, ++/*355213*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*355216*/ OPC_CheckChild0Integer, 1, ++/*355218*/ OPC_CheckChild0Type, MVT::i32, ++/*355220*/ OPC_CheckChild1Integer, 1, ++/*355222*/ OPC_CheckChild1Type, MVT::i32, ++/*355224*/ OPC_CheckChild2Integer, 1, ++/*355226*/ OPC_CheckChild2Type, MVT::i32, ++/*355228*/ OPC_CheckChild3Integer, 1, ++/*355230*/ OPC_CheckChild3Type, MVT::i32, ++/*355232*/ OPC_CheckChild4Integer, 1, ++/*355234*/ OPC_CheckChild4Type, MVT::i32, ++/*355236*/ OPC_MoveChild5, ++/*355237*/ OPC_CheckInteger, 1, ++/*355239*/ OPC_CheckType, MVT::i32, ++/*355241*/ OPC_MoveParent, ++/*355242*/ OPC_MoveChild6, ++/*355243*/ OPC_CheckInteger, 1, ++/*355245*/ OPC_CheckType, MVT::i32, ++/*355247*/ OPC_MoveParent, ++/*355248*/ OPC_MoveChild7, ++/*355249*/ OPC_CheckInteger, 1, ++/*355251*/ OPC_CheckType, MVT::i32, ++/*355253*/ OPC_MoveParent, ++/*355254*/ OPC_MoveChild, 8, ++/*355256*/ OPC_CheckInteger, 1, ++/*355258*/ OPC_CheckType, MVT::i32, ++/*355260*/ OPC_MoveParent, ++/*355261*/ OPC_MoveChild, 9, ++/*355263*/ OPC_CheckInteger, 1, ++/*355265*/ OPC_CheckType, MVT::i32, ++/*355267*/ OPC_MoveParent, ++/*355268*/ OPC_MoveChild, 10, ++/*355270*/ OPC_CheckInteger, 1, ++/*355272*/ OPC_CheckType, MVT::i32, ++/*355274*/ OPC_MoveParent, ++/*355275*/ OPC_MoveChild, 11, ++/*355277*/ OPC_CheckInteger, 1, ++/*355279*/ OPC_CheckType, MVT::i32, ++/*355281*/ OPC_MoveParent, ++/*355282*/ OPC_MoveChild, 12, ++/*355284*/ OPC_CheckInteger, 1, ++/*355286*/ OPC_CheckType, MVT::i32, ++/*355288*/ OPC_MoveParent, ++/*355289*/ OPC_MoveChild, 13, ++/*355291*/ OPC_CheckInteger, 1, ++/*355293*/ OPC_CheckType, MVT::i32, ++/*355295*/ OPC_MoveParent, ++/*355296*/ OPC_MoveChild, 14, ++/*355298*/ OPC_CheckInteger, 1, ++/*355300*/ OPC_CheckType, MVT::i32, ++/*355302*/ OPC_MoveParent, ++/*355303*/ OPC_MoveChild, 15, ++/*355305*/ OPC_CheckInteger, 1, ++/*355307*/ OPC_CheckType, MVT::i32, ++/*355309*/ OPC_MoveParent, ++/*355310*/ OPC_CheckType, MVT::v16i8, ++/*355312*/ OPC_MoveParent, ++/*355313*/ OPC_CheckType, MVT::v16i8, ++/*355315*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*355317*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*355325*/ 0, /*End of Scope*/ ++/*355326*/ 0, // EndSwitchOpcode ++/*355327*/ /*Scope*/ 62|128,3/*446*/, /*->355775*/ ++/*355329*/ OPC_CheckChild0Same, 0, ++/*355331*/ OPC_MoveChild1, ++/*355332*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*355335*/ OPC_Scope, 89|128,1/*217*/, /*->355555*/ // 2 children in Scope ++/*355338*/ OPC_MoveChild0, ++/*355339*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*355342*/ OPC_CheckChild0Integer, 1, ++/*355344*/ OPC_CheckChild0Type, MVT::i32, ++/*355346*/ OPC_CheckChild1Integer, 1, ++/*355348*/ OPC_CheckChild1Type, MVT::i32, ++/*355350*/ OPC_CheckChild2Integer, 1, ++/*355352*/ OPC_CheckChild2Type, MVT::i32, ++/*355354*/ OPC_CheckChild3Integer, 1, ++/*355356*/ OPC_CheckChild3Type, MVT::i32, ++/*355358*/ OPC_CheckChild4Integer, 1, ++/*355360*/ OPC_CheckChild4Type, MVT::i32, ++/*355362*/ OPC_MoveChild5, ++/*355363*/ OPC_CheckInteger, 1, ++/*355365*/ OPC_CheckType, MVT::i32, ++/*355367*/ OPC_MoveParent, ++/*355368*/ OPC_MoveChild6, ++/*355369*/ OPC_CheckInteger, 1, ++/*355371*/ OPC_CheckType, MVT::i32, ++/*355373*/ OPC_MoveParent, ++/*355374*/ OPC_MoveChild7, ++/*355375*/ OPC_CheckInteger, 1, ++/*355377*/ OPC_CheckType, MVT::i32, ++/*355379*/ OPC_MoveParent, ++/*355380*/ OPC_MoveChild, 8, ++/*355382*/ OPC_CheckInteger, 1, ++/*355384*/ OPC_CheckType, MVT::i32, ++/*355386*/ OPC_MoveParent, ++/*355387*/ OPC_MoveChild, 9, ++/*355389*/ OPC_CheckInteger, 1, ++/*355391*/ OPC_CheckType, MVT::i32, ++/*355393*/ OPC_MoveParent, ++/*355394*/ OPC_MoveChild, 10, ++/*355396*/ OPC_CheckInteger, 1, ++/*355398*/ OPC_CheckType, MVT::i32, ++/*355400*/ OPC_MoveParent, ++/*355401*/ OPC_MoveChild, 11, ++/*355403*/ OPC_CheckInteger, 1, ++/*355405*/ OPC_CheckType, MVT::i32, ++/*355407*/ OPC_MoveParent, ++/*355408*/ OPC_MoveChild, 12, ++/*355410*/ OPC_CheckInteger, 1, ++/*355412*/ OPC_CheckType, MVT::i32, ++/*355414*/ OPC_MoveParent, ++/*355415*/ OPC_MoveChild, 13, ++/*355417*/ OPC_CheckInteger, 1, ++/*355419*/ OPC_CheckType, MVT::i32, ++/*355421*/ OPC_MoveParent, ++/*355422*/ OPC_MoveChild, 14, ++/*355424*/ OPC_CheckInteger, 1, ++/*355426*/ OPC_CheckType, MVT::i32, ++/*355428*/ OPC_MoveParent, ++/*355429*/ OPC_MoveChild, 15, ++/*355431*/ OPC_CheckInteger, 1, ++/*355433*/ OPC_CheckType, MVT::i32, ++/*355435*/ OPC_MoveParent, ++/*355436*/ OPC_MoveParent, ++/*355437*/ OPC_CheckChild1Same, 1, ++/*355439*/ OPC_MoveParent, ++/*355440*/ OPC_MoveParent, ++/*355441*/ OPC_MoveParent, ++/*355442*/ OPC_MoveChild1, ++/*355443*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*355446*/ OPC_CheckChild0Integer, 1, ++/*355448*/ OPC_CheckChild0Type, MVT::i32, ++/*355450*/ OPC_CheckChild1Integer, 1, ++/*355452*/ OPC_CheckChild1Type, MVT::i32, ++/*355454*/ OPC_CheckChild2Integer, 1, ++/*355456*/ OPC_CheckChild2Type, MVT::i32, ++/*355458*/ OPC_CheckChild3Integer, 1, ++/*355460*/ OPC_CheckChild3Type, MVT::i32, ++/*355462*/ OPC_CheckChild4Integer, 1, ++/*355464*/ OPC_CheckChild4Type, MVT::i32, ++/*355466*/ OPC_MoveChild5, ++/*355467*/ OPC_CheckInteger, 1, ++/*355469*/ OPC_CheckType, MVT::i32, ++/*355471*/ OPC_MoveParent, ++/*355472*/ OPC_MoveChild6, ++/*355473*/ OPC_CheckInteger, 1, ++/*355475*/ OPC_CheckType, MVT::i32, ++/*355477*/ OPC_MoveParent, ++/*355478*/ OPC_MoveChild7, ++/*355479*/ OPC_CheckInteger, 1, ++/*355481*/ OPC_CheckType, MVT::i32, ++/*355483*/ OPC_MoveParent, ++/*355484*/ OPC_MoveChild, 8, ++/*355486*/ OPC_CheckInteger, 1, ++/*355488*/ OPC_CheckType, MVT::i32, ++/*355490*/ OPC_MoveParent, ++/*355491*/ OPC_MoveChild, 9, ++/*355493*/ OPC_CheckInteger, 1, ++/*355495*/ OPC_CheckType, MVT::i32, ++/*355497*/ OPC_MoveParent, ++/*355498*/ OPC_MoveChild, 10, ++/*355500*/ OPC_CheckInteger, 1, ++/*355502*/ OPC_CheckType, MVT::i32, ++/*355504*/ OPC_MoveParent, ++/*355505*/ OPC_MoveChild, 11, ++/*355507*/ OPC_CheckInteger, 1, ++/*355509*/ OPC_CheckType, MVT::i32, ++/*355511*/ OPC_MoveParent, ++/*355512*/ OPC_MoveChild, 12, ++/*355514*/ OPC_CheckInteger, 1, ++/*355516*/ OPC_CheckType, MVT::i32, ++/*355518*/ OPC_MoveParent, ++/*355519*/ OPC_MoveChild, 13, ++/*355521*/ OPC_CheckInteger, 1, ++/*355523*/ OPC_CheckType, MVT::i32, ++/*355525*/ OPC_MoveParent, ++/*355526*/ OPC_MoveChild, 14, ++/*355528*/ OPC_CheckInteger, 1, ++/*355530*/ OPC_CheckType, MVT::i32, ++/*355532*/ OPC_MoveParent, ++/*355533*/ OPC_MoveChild, 15, ++/*355535*/ OPC_CheckInteger, 1, ++/*355537*/ OPC_CheckType, MVT::i32, ++/*355539*/ OPC_MoveParent, ++/*355540*/ OPC_CheckType, MVT::v16i8, ++/*355542*/ OPC_MoveParent, ++/*355543*/ OPC_CheckType, MVT::v16i8, ++/*355545*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*355547*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*355555*/ /*Scope*/ 89|128,1/*217*/, /*->355774*/ ++/*355557*/ OPC_CheckChild0Same, 1, ++/*355559*/ OPC_MoveChild1, ++/*355560*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*355563*/ OPC_CheckChild0Integer, 1, ++/*355565*/ OPC_CheckChild0Type, MVT::i32, ++/*355567*/ OPC_CheckChild1Integer, 1, ++/*355569*/ OPC_CheckChild1Type, MVT::i32, ++/*355571*/ OPC_CheckChild2Integer, 1, ++/*355573*/ OPC_CheckChild2Type, MVT::i32, ++/*355575*/ OPC_CheckChild3Integer, 1, ++/*355577*/ OPC_CheckChild3Type, MVT::i32, ++/*355579*/ OPC_CheckChild4Integer, 1, ++/*355581*/ OPC_CheckChild4Type, MVT::i32, ++/*355583*/ OPC_MoveChild5, ++/*355584*/ OPC_CheckInteger, 1, ++/*355586*/ OPC_CheckType, MVT::i32, ++/*355588*/ OPC_MoveParent, ++/*355589*/ OPC_MoveChild6, ++/*355590*/ OPC_CheckInteger, 1, ++/*355592*/ OPC_CheckType, MVT::i32, ++/*355594*/ OPC_MoveParent, ++/*355595*/ OPC_MoveChild7, ++/*355596*/ OPC_CheckInteger, 1, ++/*355598*/ OPC_CheckType, MVT::i32, ++/*355600*/ OPC_MoveParent, ++/*355601*/ OPC_MoveChild, 8, ++/*355603*/ OPC_CheckInteger, 1, ++/*355605*/ OPC_CheckType, MVT::i32, ++/*355607*/ OPC_MoveParent, ++/*355608*/ OPC_MoveChild, 9, ++/*355610*/ OPC_CheckInteger, 1, ++/*355612*/ OPC_CheckType, MVT::i32, ++/*355614*/ OPC_MoveParent, ++/*355615*/ OPC_MoveChild, 10, ++/*355617*/ OPC_CheckInteger, 1, ++/*355619*/ OPC_CheckType, MVT::i32, ++/*355621*/ OPC_MoveParent, ++/*355622*/ OPC_MoveChild, 11, ++/*355624*/ OPC_CheckInteger, 1, ++/*355626*/ OPC_CheckType, MVT::i32, ++/*355628*/ OPC_MoveParent, ++/*355629*/ OPC_MoveChild, 12, ++/*355631*/ OPC_CheckInteger, 1, ++/*355633*/ OPC_CheckType, MVT::i32, ++/*355635*/ OPC_MoveParent, ++/*355636*/ OPC_MoveChild, 13, ++/*355638*/ OPC_CheckInteger, 1, ++/*355640*/ OPC_CheckType, MVT::i32, ++/*355642*/ OPC_MoveParent, ++/*355643*/ OPC_MoveChild, 14, ++/*355645*/ OPC_CheckInteger, 1, ++/*355647*/ OPC_CheckType, MVT::i32, ++/*355649*/ OPC_MoveParent, ++/*355650*/ OPC_MoveChild, 15, ++/*355652*/ OPC_CheckInteger, 1, ++/*355654*/ OPC_CheckType, MVT::i32, ++/*355656*/ OPC_MoveParent, ++/*355657*/ OPC_MoveParent, ++/*355658*/ OPC_MoveParent, ++/*355659*/ OPC_MoveParent, ++/*355660*/ OPC_MoveParent, ++/*355661*/ OPC_MoveChild1, ++/*355662*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*355665*/ OPC_CheckChild0Integer, 1, ++/*355667*/ OPC_CheckChild0Type, MVT::i32, ++/*355669*/ OPC_CheckChild1Integer, 1, ++/*355671*/ OPC_CheckChild1Type, MVT::i32, ++/*355673*/ OPC_CheckChild2Integer, 1, ++/*355675*/ OPC_CheckChild2Type, MVT::i32, ++/*355677*/ OPC_CheckChild3Integer, 1, ++/*355679*/ OPC_CheckChild3Type, MVT::i32, ++/*355681*/ OPC_CheckChild4Integer, 1, ++/*355683*/ OPC_CheckChild4Type, MVT::i32, ++/*355685*/ OPC_MoveChild5, ++/*355686*/ OPC_CheckInteger, 1, ++/*355688*/ OPC_CheckType, MVT::i32, ++/*355690*/ OPC_MoveParent, ++/*355691*/ OPC_MoveChild6, ++/*355692*/ OPC_CheckInteger, 1, ++/*355694*/ OPC_CheckType, MVT::i32, ++/*355696*/ OPC_MoveParent, ++/*355697*/ OPC_MoveChild7, ++/*355698*/ OPC_CheckInteger, 1, ++/*355700*/ OPC_CheckType, MVT::i32, ++/*355702*/ OPC_MoveParent, ++/*355703*/ OPC_MoveChild, 8, ++/*355705*/ OPC_CheckInteger, 1, ++/*355707*/ OPC_CheckType, MVT::i32, ++/*355709*/ OPC_MoveParent, ++/*355710*/ OPC_MoveChild, 9, ++/*355712*/ OPC_CheckInteger, 1, ++/*355714*/ OPC_CheckType, MVT::i32, ++/*355716*/ OPC_MoveParent, ++/*355717*/ OPC_MoveChild, 10, ++/*355719*/ OPC_CheckInteger, 1, ++/*355721*/ OPC_CheckType, MVT::i32, ++/*355723*/ OPC_MoveParent, ++/*355724*/ OPC_MoveChild, 11, ++/*355726*/ OPC_CheckInteger, 1, ++/*355728*/ OPC_CheckType, MVT::i32, ++/*355730*/ OPC_MoveParent, ++/*355731*/ OPC_MoveChild, 12, ++/*355733*/ OPC_CheckInteger, 1, ++/*355735*/ OPC_CheckType, MVT::i32, ++/*355737*/ OPC_MoveParent, ++/*355738*/ OPC_MoveChild, 13, ++/*355740*/ OPC_CheckInteger, 1, ++/*355742*/ OPC_CheckType, MVT::i32, ++/*355744*/ OPC_MoveParent, ++/*355745*/ OPC_MoveChild, 14, ++/*355747*/ OPC_CheckInteger, 1, ++/*355749*/ OPC_CheckType, MVT::i32, ++/*355751*/ OPC_MoveParent, ++/*355752*/ OPC_MoveChild, 15, ++/*355754*/ OPC_CheckInteger, 1, ++/*355756*/ OPC_CheckType, MVT::i32, ++/*355758*/ OPC_MoveParent, ++/*355759*/ OPC_CheckType, MVT::v16i8, ++/*355761*/ OPC_MoveParent, ++/*355762*/ OPC_CheckType, MVT::v16i8, ++/*355764*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*355766*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*355774*/ 0, /*End of Scope*/ ++/*355775*/ /*Scope*/ 62|128,3/*446*/, /*->356223*/ ++/*355777*/ OPC_CheckChild0Same, 1, ++/*355779*/ OPC_MoveChild1, ++/*355780*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*355783*/ OPC_Scope, 89|128,1/*217*/, /*->356003*/ // 2 children in Scope ++/*355786*/ OPC_MoveChild0, ++/*355787*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*355790*/ OPC_CheckChild0Integer, 1, ++/*355792*/ OPC_CheckChild0Type, MVT::i32, ++/*355794*/ OPC_CheckChild1Integer, 1, ++/*355796*/ OPC_CheckChild1Type, MVT::i32, ++/*355798*/ OPC_CheckChild2Integer, 1, ++/*355800*/ OPC_CheckChild2Type, MVT::i32, ++/*355802*/ OPC_CheckChild3Integer, 1, ++/*355804*/ OPC_CheckChild3Type, MVT::i32, ++/*355806*/ OPC_CheckChild4Integer, 1, ++/*355808*/ OPC_CheckChild4Type, MVT::i32, ++/*355810*/ OPC_MoveChild5, ++/*355811*/ OPC_CheckInteger, 1, ++/*355813*/ OPC_CheckType, MVT::i32, ++/*355815*/ OPC_MoveParent, ++/*355816*/ OPC_MoveChild6, ++/*355817*/ OPC_CheckInteger, 1, ++/*355819*/ OPC_CheckType, MVT::i32, ++/*355821*/ OPC_MoveParent, ++/*355822*/ OPC_MoveChild7, ++/*355823*/ OPC_CheckInteger, 1, ++/*355825*/ OPC_CheckType, MVT::i32, ++/*355827*/ OPC_MoveParent, ++/*355828*/ OPC_MoveChild, 8, ++/*355830*/ OPC_CheckInteger, 1, ++/*355832*/ OPC_CheckType, MVT::i32, ++/*355834*/ OPC_MoveParent, ++/*355835*/ OPC_MoveChild, 9, ++/*355837*/ OPC_CheckInteger, 1, ++/*355839*/ OPC_CheckType, MVT::i32, ++/*355841*/ OPC_MoveParent, ++/*355842*/ OPC_MoveChild, 10, ++/*355844*/ OPC_CheckInteger, 1, ++/*355846*/ OPC_CheckType, MVT::i32, ++/*355848*/ OPC_MoveParent, ++/*355849*/ OPC_MoveChild, 11, ++/*355851*/ OPC_CheckInteger, 1, ++/*355853*/ OPC_CheckType, MVT::i32, ++/*355855*/ OPC_MoveParent, ++/*355856*/ OPC_MoveChild, 12, ++/*355858*/ OPC_CheckInteger, 1, ++/*355860*/ OPC_CheckType, MVT::i32, ++/*355862*/ OPC_MoveParent, ++/*355863*/ OPC_MoveChild, 13, ++/*355865*/ OPC_CheckInteger, 1, ++/*355867*/ OPC_CheckType, MVT::i32, ++/*355869*/ OPC_MoveParent, ++/*355870*/ OPC_MoveChild, 14, ++/*355872*/ OPC_CheckInteger, 1, ++/*355874*/ OPC_CheckType, MVT::i32, ++/*355876*/ OPC_MoveParent, ++/*355877*/ OPC_MoveChild, 15, ++/*355879*/ OPC_CheckInteger, 1, ++/*355881*/ OPC_CheckType, MVT::i32, ++/*355883*/ OPC_MoveParent, ++/*355884*/ OPC_MoveParent, ++/*355885*/ OPC_CheckChild1Same, 0, ++/*355887*/ OPC_MoveParent, ++/*355888*/ OPC_MoveParent, ++/*355889*/ OPC_MoveParent, ++/*355890*/ OPC_MoveChild1, ++/*355891*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*355894*/ OPC_CheckChild0Integer, 1, ++/*355896*/ OPC_CheckChild0Type, MVT::i32, ++/*355898*/ OPC_CheckChild1Integer, 1, ++/*355900*/ OPC_CheckChild1Type, MVT::i32, ++/*355902*/ OPC_CheckChild2Integer, 1, ++/*355904*/ OPC_CheckChild2Type, MVT::i32, ++/*355906*/ OPC_CheckChild3Integer, 1, ++/*355908*/ OPC_CheckChild3Type, MVT::i32, ++/*355910*/ OPC_CheckChild4Integer, 1, ++/*355912*/ OPC_CheckChild4Type, MVT::i32, ++/*355914*/ OPC_MoveChild5, ++/*355915*/ OPC_CheckInteger, 1, ++/*355917*/ OPC_CheckType, MVT::i32, ++/*355919*/ OPC_MoveParent, ++/*355920*/ OPC_MoveChild6, ++/*355921*/ OPC_CheckInteger, 1, ++/*355923*/ OPC_CheckType, MVT::i32, ++/*355925*/ OPC_MoveParent, ++/*355926*/ OPC_MoveChild7, ++/*355927*/ OPC_CheckInteger, 1, ++/*355929*/ OPC_CheckType, MVT::i32, ++/*355931*/ OPC_MoveParent, ++/*355932*/ OPC_MoveChild, 8, ++/*355934*/ OPC_CheckInteger, 1, ++/*355936*/ OPC_CheckType, MVT::i32, ++/*355938*/ OPC_MoveParent, ++/*355939*/ OPC_MoveChild, 9, ++/*355941*/ OPC_CheckInteger, 1, ++/*355943*/ OPC_CheckType, MVT::i32, ++/*355945*/ OPC_MoveParent, ++/*355946*/ OPC_MoveChild, 10, ++/*355948*/ OPC_CheckInteger, 1, ++/*355950*/ OPC_CheckType, MVT::i32, ++/*355952*/ OPC_MoveParent, ++/*355953*/ OPC_MoveChild, 11, ++/*355955*/ OPC_CheckInteger, 1, ++/*355957*/ OPC_CheckType, MVT::i32, ++/*355959*/ OPC_MoveParent, ++/*355960*/ OPC_MoveChild, 12, ++/*355962*/ OPC_CheckInteger, 1, ++/*355964*/ OPC_CheckType, MVT::i32, ++/*355966*/ OPC_MoveParent, ++/*355967*/ OPC_MoveChild, 13, ++/*355969*/ OPC_CheckInteger, 1, ++/*355971*/ OPC_CheckType, MVT::i32, ++/*355973*/ OPC_MoveParent, ++/*355974*/ OPC_MoveChild, 14, ++/*355976*/ OPC_CheckInteger, 1, ++/*355978*/ OPC_CheckType, MVT::i32, ++/*355980*/ OPC_MoveParent, ++/*355981*/ OPC_MoveChild, 15, ++/*355983*/ OPC_CheckInteger, 1, ++/*355985*/ OPC_CheckType, MVT::i32, ++/*355987*/ OPC_MoveParent, ++/*355988*/ OPC_CheckType, MVT::v16i8, ++/*355990*/ OPC_MoveParent, ++/*355991*/ OPC_CheckType, MVT::v16i8, ++/*355993*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*355995*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*356003*/ /*Scope*/ 89|128,1/*217*/, /*->356222*/ ++/*356005*/ OPC_CheckChild0Same, 0, ++/*356007*/ OPC_MoveChild1, ++/*356008*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*356011*/ OPC_CheckChild0Integer, 1, ++/*356013*/ OPC_CheckChild0Type, MVT::i32, ++/*356015*/ OPC_CheckChild1Integer, 1, ++/*356017*/ OPC_CheckChild1Type, MVT::i32, ++/*356019*/ OPC_CheckChild2Integer, 1, ++/*356021*/ OPC_CheckChild2Type, MVT::i32, ++/*356023*/ OPC_CheckChild3Integer, 1, ++/*356025*/ OPC_CheckChild3Type, MVT::i32, ++/*356027*/ OPC_CheckChild4Integer, 1, ++/*356029*/ OPC_CheckChild4Type, MVT::i32, ++/*356031*/ OPC_MoveChild5, ++/*356032*/ OPC_CheckInteger, 1, ++/*356034*/ OPC_CheckType, MVT::i32, ++/*356036*/ OPC_MoveParent, ++/*356037*/ OPC_MoveChild6, ++/*356038*/ OPC_CheckInteger, 1, ++/*356040*/ OPC_CheckType, MVT::i32, ++/*356042*/ OPC_MoveParent, ++/*356043*/ OPC_MoveChild7, ++/*356044*/ OPC_CheckInteger, 1, ++/*356046*/ OPC_CheckType, MVT::i32, ++/*356048*/ OPC_MoveParent, ++/*356049*/ OPC_MoveChild, 8, ++/*356051*/ OPC_CheckInteger, 1, ++/*356053*/ OPC_CheckType, MVT::i32, ++/*356055*/ OPC_MoveParent, ++/*356056*/ OPC_MoveChild, 9, ++/*356058*/ OPC_CheckInteger, 1, ++/*356060*/ OPC_CheckType, MVT::i32, ++/*356062*/ OPC_MoveParent, ++/*356063*/ OPC_MoveChild, 10, ++/*356065*/ OPC_CheckInteger, 1, ++/*356067*/ OPC_CheckType, MVT::i32, ++/*356069*/ OPC_MoveParent, ++/*356070*/ OPC_MoveChild, 11, ++/*356072*/ OPC_CheckInteger, 1, ++/*356074*/ OPC_CheckType, MVT::i32, ++/*356076*/ OPC_MoveParent, ++/*356077*/ OPC_MoveChild, 12, ++/*356079*/ OPC_CheckInteger, 1, ++/*356081*/ OPC_CheckType, MVT::i32, ++/*356083*/ OPC_MoveParent, ++/*356084*/ OPC_MoveChild, 13, ++/*356086*/ OPC_CheckInteger, 1, ++/*356088*/ OPC_CheckType, MVT::i32, ++/*356090*/ OPC_MoveParent, ++/*356091*/ OPC_MoveChild, 14, ++/*356093*/ OPC_CheckInteger, 1, ++/*356095*/ OPC_CheckType, MVT::i32, ++/*356097*/ OPC_MoveParent, ++/*356098*/ OPC_MoveChild, 15, ++/*356100*/ OPC_CheckInteger, 1, ++/*356102*/ OPC_CheckType, MVT::i32, ++/*356104*/ OPC_MoveParent, ++/*356105*/ OPC_MoveParent, ++/*356106*/ OPC_MoveParent, ++/*356107*/ OPC_MoveParent, ++/*356108*/ OPC_MoveParent, ++/*356109*/ OPC_MoveChild1, ++/*356110*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*356113*/ OPC_CheckChild0Integer, 1, ++/*356115*/ OPC_CheckChild0Type, MVT::i32, ++/*356117*/ OPC_CheckChild1Integer, 1, ++/*356119*/ OPC_CheckChild1Type, MVT::i32, ++/*356121*/ OPC_CheckChild2Integer, 1, ++/*356123*/ OPC_CheckChild2Type, MVT::i32, ++/*356125*/ OPC_CheckChild3Integer, 1, ++/*356127*/ OPC_CheckChild3Type, MVT::i32, ++/*356129*/ OPC_CheckChild4Integer, 1, ++/*356131*/ OPC_CheckChild4Type, MVT::i32, ++/*356133*/ OPC_MoveChild5, ++/*356134*/ OPC_CheckInteger, 1, ++/*356136*/ OPC_CheckType, MVT::i32, ++/*356138*/ OPC_MoveParent, ++/*356139*/ OPC_MoveChild6, ++/*356140*/ OPC_CheckInteger, 1, ++/*356142*/ OPC_CheckType, MVT::i32, ++/*356144*/ OPC_MoveParent, ++/*356145*/ OPC_MoveChild7, ++/*356146*/ OPC_CheckInteger, 1, ++/*356148*/ OPC_CheckType, MVT::i32, ++/*356150*/ OPC_MoveParent, ++/*356151*/ OPC_MoveChild, 8, ++/*356153*/ OPC_CheckInteger, 1, ++/*356155*/ OPC_CheckType, MVT::i32, ++/*356157*/ OPC_MoveParent, ++/*356158*/ OPC_MoveChild, 9, ++/*356160*/ OPC_CheckInteger, 1, ++/*356162*/ OPC_CheckType, MVT::i32, ++/*356164*/ OPC_MoveParent, ++/*356165*/ OPC_MoveChild, 10, ++/*356167*/ OPC_CheckInteger, 1, ++/*356169*/ OPC_CheckType, MVT::i32, ++/*356171*/ OPC_MoveParent, ++/*356172*/ OPC_MoveChild, 11, ++/*356174*/ OPC_CheckInteger, 1, ++/*356176*/ OPC_CheckType, MVT::i32, ++/*356178*/ OPC_MoveParent, ++/*356179*/ OPC_MoveChild, 12, ++/*356181*/ OPC_CheckInteger, 1, ++/*356183*/ OPC_CheckType, MVT::i32, ++/*356185*/ OPC_MoveParent, ++/*356186*/ OPC_MoveChild, 13, ++/*356188*/ OPC_CheckInteger, 1, ++/*356190*/ OPC_CheckType, MVT::i32, ++/*356192*/ OPC_MoveParent, ++/*356193*/ OPC_MoveChild, 14, ++/*356195*/ OPC_CheckInteger, 1, ++/*356197*/ OPC_CheckType, MVT::i32, ++/*356199*/ OPC_MoveParent, ++/*356200*/ OPC_MoveChild, 15, ++/*356202*/ OPC_CheckInteger, 1, ++/*356204*/ OPC_CheckType, MVT::i32, ++/*356206*/ OPC_MoveParent, ++/*356207*/ OPC_CheckType, MVT::v16i8, ++/*356209*/ OPC_MoveParent, ++/*356210*/ OPC_CheckType, MVT::v16i8, ++/*356212*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*356214*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*356222*/ 0, /*End of Scope*/ ++/*356223*/ /*Scope*/ 91|128,2/*347*/, /*->356572*/ ++/*356225*/ OPC_MoveChild0, ++/*356226*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*356229*/ OPC_CheckChild0Integer, 1, ++/*356231*/ OPC_CheckChild0Type, MVT::i32, ++/*356233*/ OPC_CheckChild1Integer, 1, ++/*356235*/ OPC_CheckChild1Type, MVT::i32, ++/*356237*/ OPC_CheckChild2Integer, 1, ++/*356239*/ OPC_CheckChild2Type, MVT::i32, ++/*356241*/ OPC_CheckChild3Integer, 1, ++/*356243*/ OPC_CheckChild3Type, MVT::i32, ++/*356245*/ OPC_CheckChild4Integer, 1, ++/*356247*/ OPC_CheckChild4Type, MVT::i32, ++/*356249*/ OPC_MoveChild5, ++/*356250*/ OPC_CheckInteger, 1, ++/*356252*/ OPC_CheckType, MVT::i32, ++/*356254*/ OPC_MoveParent, ++/*356255*/ OPC_MoveChild6, ++/*356256*/ OPC_CheckInteger, 1, ++/*356258*/ OPC_CheckType, MVT::i32, ++/*356260*/ OPC_MoveParent, ++/*356261*/ OPC_MoveChild7, ++/*356262*/ OPC_CheckInteger, 1, ++/*356264*/ OPC_CheckType, MVT::i32, ++/*356266*/ OPC_MoveParent, ++/*356267*/ OPC_MoveChild, 8, ++/*356269*/ OPC_CheckInteger, 1, ++/*356271*/ OPC_CheckType, MVT::i32, ++/*356273*/ OPC_MoveParent, ++/*356274*/ OPC_MoveChild, 9, ++/*356276*/ OPC_CheckInteger, 1, ++/*356278*/ OPC_CheckType, MVT::i32, ++/*356280*/ OPC_MoveParent, ++/*356281*/ OPC_MoveChild, 10, ++/*356283*/ OPC_CheckInteger, 1, ++/*356285*/ OPC_CheckType, MVT::i32, ++/*356287*/ OPC_MoveParent, ++/*356288*/ OPC_MoveChild, 11, ++/*356290*/ OPC_CheckInteger, 1, ++/*356292*/ OPC_CheckType, MVT::i32, ++/*356294*/ OPC_MoveParent, ++/*356295*/ OPC_MoveChild, 12, ++/*356297*/ OPC_CheckInteger, 1, ++/*356299*/ OPC_CheckType, MVT::i32, ++/*356301*/ OPC_MoveParent, ++/*356302*/ OPC_MoveChild, 13, ++/*356304*/ OPC_CheckInteger, 1, ++/*356306*/ OPC_CheckType, MVT::i32, ++/*356308*/ OPC_MoveParent, ++/*356309*/ OPC_MoveChild, 14, ++/*356311*/ OPC_CheckInteger, 1, ++/*356313*/ OPC_CheckType, MVT::i32, ++/*356315*/ OPC_MoveParent, ++/*356316*/ OPC_MoveChild, 15, ++/*356318*/ OPC_CheckInteger, 1, ++/*356320*/ OPC_CheckType, MVT::i32, ++/*356322*/ OPC_MoveParent, ++/*356323*/ OPC_MoveParent, ++/*356324*/ OPC_MoveChild1, ++/*356325*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*356328*/ OPC_Scope, 120, /*->356450*/ // 2 children in Scope ++/*356330*/ OPC_CheckChild0Same, 1, ++/*356332*/ OPC_CheckChild1Same, 0, ++/*356334*/ OPC_MoveParent, ++/*356335*/ OPC_MoveParent, ++/*356336*/ OPC_MoveParent, ++/*356337*/ OPC_MoveChild1, ++/*356338*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*356341*/ OPC_CheckChild0Integer, 1, ++/*356343*/ OPC_CheckChild0Type, MVT::i32, ++/*356345*/ OPC_CheckChild1Integer, 1, ++/*356347*/ OPC_CheckChild1Type, MVT::i32, ++/*356349*/ OPC_CheckChild2Integer, 1, ++/*356351*/ OPC_CheckChild2Type, MVT::i32, ++/*356353*/ OPC_CheckChild3Integer, 1, ++/*356355*/ OPC_CheckChild3Type, MVT::i32, ++/*356357*/ OPC_CheckChild4Integer, 1, ++/*356359*/ OPC_CheckChild4Type, MVT::i32, ++/*356361*/ OPC_MoveChild5, ++/*356362*/ OPC_CheckInteger, 1, ++/*356364*/ OPC_CheckType, MVT::i32, ++/*356366*/ OPC_MoveParent, ++/*356367*/ OPC_MoveChild6, ++/*356368*/ OPC_CheckInteger, 1, ++/*356370*/ OPC_CheckType, MVT::i32, ++/*356372*/ OPC_MoveParent, ++/*356373*/ OPC_MoveChild7, ++/*356374*/ OPC_CheckInteger, 1, ++/*356376*/ OPC_CheckType, MVT::i32, ++/*356378*/ OPC_MoveParent, ++/*356379*/ OPC_MoveChild, 8, ++/*356381*/ OPC_CheckInteger, 1, ++/*356383*/ OPC_CheckType, MVT::i32, ++/*356385*/ OPC_MoveParent, ++/*356386*/ OPC_MoveChild, 9, ++/*356388*/ OPC_CheckInteger, 1, ++/*356390*/ OPC_CheckType, MVT::i32, ++/*356392*/ OPC_MoveParent, ++/*356393*/ OPC_MoveChild, 10, ++/*356395*/ OPC_CheckInteger, 1, ++/*356397*/ OPC_CheckType, MVT::i32, ++/*356399*/ OPC_MoveParent, ++/*356400*/ OPC_MoveChild, 11, ++/*356402*/ OPC_CheckInteger, 1, ++/*356404*/ OPC_CheckType, MVT::i32, ++/*356406*/ OPC_MoveParent, ++/*356407*/ OPC_MoveChild, 12, ++/*356409*/ OPC_CheckInteger, 1, ++/*356411*/ OPC_CheckType, MVT::i32, ++/*356413*/ OPC_MoveParent, ++/*356414*/ OPC_MoveChild, 13, ++/*356416*/ OPC_CheckInteger, 1, ++/*356418*/ OPC_CheckType, MVT::i32, ++/*356420*/ OPC_MoveParent, ++/*356421*/ OPC_MoveChild, 14, ++/*356423*/ OPC_CheckInteger, 1, ++/*356425*/ OPC_CheckType, MVT::i32, ++/*356427*/ OPC_MoveParent, ++/*356428*/ OPC_MoveChild, 15, ++/*356430*/ OPC_CheckInteger, 1, ++/*356432*/ OPC_CheckType, MVT::i32, ++/*356434*/ OPC_MoveParent, ++/*356435*/ OPC_CheckType, MVT::v16i8, ++/*356437*/ OPC_MoveParent, ++/*356438*/ OPC_CheckType, MVT::v16i8, ++/*356440*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*356442*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*356450*/ /*Scope*/ 120, /*->356571*/ ++/*356451*/ OPC_CheckChild0Same, 0, ++/*356453*/ OPC_CheckChild1Same, 1, ++/*356455*/ OPC_MoveParent, ++/*356456*/ OPC_MoveParent, ++/*356457*/ OPC_MoveParent, ++/*356458*/ OPC_MoveChild1, ++/*356459*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*356462*/ OPC_CheckChild0Integer, 1, ++/*356464*/ OPC_CheckChild0Type, MVT::i32, ++/*356466*/ OPC_CheckChild1Integer, 1, ++/*356468*/ OPC_CheckChild1Type, MVT::i32, ++/*356470*/ OPC_CheckChild2Integer, 1, ++/*356472*/ OPC_CheckChild2Type, MVT::i32, ++/*356474*/ OPC_CheckChild3Integer, 1, ++/*356476*/ OPC_CheckChild3Type, MVT::i32, ++/*356478*/ OPC_CheckChild4Integer, 1, ++/*356480*/ OPC_CheckChild4Type, MVT::i32, ++/*356482*/ OPC_MoveChild5, ++/*356483*/ OPC_CheckInteger, 1, ++/*356485*/ OPC_CheckType, MVT::i32, ++/*356487*/ OPC_MoveParent, ++/*356488*/ OPC_MoveChild6, ++/*356489*/ OPC_CheckInteger, 1, ++/*356491*/ OPC_CheckType, MVT::i32, ++/*356493*/ OPC_MoveParent, ++/*356494*/ OPC_MoveChild7, ++/*356495*/ OPC_CheckInteger, 1, ++/*356497*/ OPC_CheckType, MVT::i32, ++/*356499*/ OPC_MoveParent, ++/*356500*/ OPC_MoveChild, 8, ++/*356502*/ OPC_CheckInteger, 1, ++/*356504*/ OPC_CheckType, MVT::i32, ++/*356506*/ OPC_MoveParent, ++/*356507*/ OPC_MoveChild, 9, ++/*356509*/ OPC_CheckInteger, 1, ++/*356511*/ OPC_CheckType, MVT::i32, ++/*356513*/ OPC_MoveParent, ++/*356514*/ OPC_MoveChild, 10, ++/*356516*/ OPC_CheckInteger, 1, ++/*356518*/ OPC_CheckType, MVT::i32, ++/*356520*/ OPC_MoveParent, ++/*356521*/ OPC_MoveChild, 11, ++/*356523*/ OPC_CheckInteger, 1, ++/*356525*/ OPC_CheckType, MVT::i32, ++/*356527*/ OPC_MoveParent, ++/*356528*/ OPC_MoveChild, 12, ++/*356530*/ OPC_CheckInteger, 1, ++/*356532*/ OPC_CheckType, MVT::i32, ++/*356534*/ OPC_MoveParent, ++/*356535*/ OPC_MoveChild, 13, ++/*356537*/ OPC_CheckInteger, 1, ++/*356539*/ OPC_CheckType, MVT::i32, ++/*356541*/ OPC_MoveParent, ++/*356542*/ OPC_MoveChild, 14, ++/*356544*/ OPC_CheckInteger, 1, ++/*356546*/ OPC_CheckType, MVT::i32, ++/*356548*/ OPC_MoveParent, ++/*356549*/ OPC_MoveChild, 15, ++/*356551*/ OPC_CheckInteger, 1, ++/*356553*/ OPC_CheckType, MVT::i32, ++/*356555*/ OPC_MoveParent, ++/*356556*/ OPC_CheckType, MVT::v16i8, ++/*356558*/ OPC_MoveParent, ++/*356559*/ OPC_CheckType, MVT::v16i8, ++/*356561*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*356563*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*356571*/ 0, /*End of Scope*/ ++/*356572*/ 0, /*End of Scope*/ ++/*356573*/ 0, /*End of Scope*/ ++/*356574*/ 0, /*End of Scope*/ ++/*356575*/ 0, // EndSwitchOpcode ++/*356576*/ /*Scope*/ 35|128,87/*11171*/, /*->367749*/ ++/*356578*/ OPC_RecordChild0, // #0 = $b ++/*356579*/ OPC_MoveChild1, ++/*356580*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*356583*/ OPC_Scope, 101|128,21/*2789*/, /*->359375*/ // 4 children in Scope ++/*356586*/ OPC_MoveChild0, ++/*356587*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*356590*/ OPC_CheckChild0Integer, 1, ++/*356592*/ OPC_CheckChild0Type, MVT::i32, ++/*356594*/ OPC_CheckChild1Integer, 1, ++/*356596*/ OPC_CheckChild1Type, MVT::i32, ++/*356598*/ OPC_CheckChild2Integer, 1, ++/*356600*/ OPC_CheckChild2Type, MVT::i32, ++/*356602*/ OPC_CheckChild3Integer, 1, ++/*356604*/ OPC_CheckChild3Type, MVT::i32, ++/*356606*/ OPC_CheckChild4Integer, 1, ++/*356608*/ OPC_CheckChild4Type, MVT::i32, ++/*356610*/ OPC_MoveChild5, ++/*356611*/ OPC_CheckInteger, 1, ++/*356613*/ OPC_CheckType, MVT::i32, ++/*356615*/ OPC_MoveParent, ++/*356616*/ OPC_MoveChild6, ++/*356617*/ OPC_CheckInteger, 1, ++/*356619*/ OPC_CheckType, MVT::i32, ++/*356621*/ OPC_MoveParent, ++/*356622*/ OPC_MoveChild7, ++/*356623*/ OPC_CheckInteger, 1, ++/*356625*/ OPC_CheckType, MVT::i32, ++/*356627*/ OPC_MoveParent, ++/*356628*/ OPC_MoveChild, 8, ++/*356630*/ OPC_CheckInteger, 1, ++/*356632*/ OPC_CheckType, MVT::i32, ++/*356634*/ OPC_MoveParent, ++/*356635*/ OPC_MoveChild, 9, ++/*356637*/ OPC_CheckInteger, 1, ++/*356639*/ OPC_CheckType, MVT::i32, ++/*356641*/ OPC_MoveParent, ++/*356642*/ OPC_MoveChild, 10, ++/*356644*/ OPC_CheckInteger, 1, ++/*356646*/ OPC_CheckType, MVT::i32, ++/*356648*/ OPC_MoveParent, ++/*356649*/ OPC_MoveChild, 11, ++/*356651*/ OPC_CheckInteger, 1, ++/*356653*/ OPC_CheckType, MVT::i32, ++/*356655*/ OPC_MoveParent, ++/*356656*/ OPC_MoveChild, 12, ++/*356658*/ OPC_CheckInteger, 1, ++/*356660*/ OPC_CheckType, MVT::i32, ++/*356662*/ OPC_MoveParent, ++/*356663*/ OPC_MoveChild, 13, ++/*356665*/ OPC_CheckInteger, 1, ++/*356667*/ OPC_CheckType, MVT::i32, ++/*356669*/ OPC_MoveParent, ++/*356670*/ OPC_MoveChild, 14, ++/*356672*/ OPC_CheckInteger, 1, ++/*356674*/ OPC_CheckType, MVT::i32, ++/*356676*/ OPC_MoveParent, ++/*356677*/ OPC_MoveChild, 15, ++/*356679*/ OPC_CheckInteger, 1, ++/*356681*/ OPC_CheckType, MVT::i32, ++/*356683*/ OPC_MoveParent, ++/*356684*/ OPC_MoveParent, ++/*356685*/ OPC_RecordChild1, // #1 = $a ++/*356686*/ OPC_MoveParent, ++/*356687*/ OPC_MoveParent, ++/*356688*/ OPC_MoveChild1, ++/*356689*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*356692*/ OPC_CheckChild0Integer, 7, ++/*356694*/ OPC_CheckChild0Type, MVT::i32, ++/*356696*/ OPC_CheckChild1Integer, 7, ++/*356698*/ OPC_CheckChild1Type, MVT::i32, ++/*356700*/ OPC_CheckChild2Integer, 7, ++/*356702*/ OPC_CheckChild2Type, MVT::i32, ++/*356704*/ OPC_CheckChild3Integer, 7, ++/*356706*/ OPC_CheckChild3Type, MVT::i32, ++/*356708*/ OPC_CheckChild4Integer, 7, ++/*356710*/ OPC_CheckChild4Type, MVT::i32, ++/*356712*/ OPC_MoveChild5, ++/*356713*/ OPC_CheckInteger, 7, ++/*356715*/ OPC_CheckType, MVT::i32, ++/*356717*/ OPC_MoveParent, ++/*356718*/ OPC_MoveChild6, ++/*356719*/ OPC_CheckInteger, 7, ++/*356721*/ OPC_CheckType, MVT::i32, ++/*356723*/ OPC_MoveParent, ++/*356724*/ OPC_MoveChild7, ++/*356725*/ OPC_CheckInteger, 7, ++/*356727*/ OPC_CheckType, MVT::i32, ++/*356729*/ OPC_MoveParent, ++/*356730*/ OPC_MoveChild, 8, ++/*356732*/ OPC_CheckInteger, 7, ++/*356734*/ OPC_CheckType, MVT::i32, ++/*356736*/ OPC_MoveParent, ++/*356737*/ OPC_MoveChild, 9, ++/*356739*/ OPC_CheckInteger, 7, ++/*356741*/ OPC_CheckType, MVT::i32, ++/*356743*/ OPC_MoveParent, ++/*356744*/ OPC_MoveChild, 10, ++/*356746*/ OPC_CheckInteger, 7, ++/*356748*/ OPC_CheckType, MVT::i32, ++/*356750*/ OPC_MoveParent, ++/*356751*/ OPC_MoveChild, 11, ++/*356753*/ OPC_CheckInteger, 7, ++/*356755*/ OPC_CheckType, MVT::i32, ++/*356757*/ OPC_MoveParent, ++/*356758*/ OPC_MoveChild, 12, ++/*356760*/ OPC_CheckInteger, 7, ++/*356762*/ OPC_CheckType, MVT::i32, ++/*356764*/ OPC_MoveParent, ++/*356765*/ OPC_MoveChild, 13, ++/*356767*/ OPC_CheckInteger, 7, ++/*356769*/ OPC_CheckType, MVT::i32, ++/*356771*/ OPC_MoveParent, ++/*356772*/ OPC_MoveChild, 14, ++/*356774*/ OPC_CheckInteger, 7, ++/*356776*/ OPC_CheckType, MVT::i32, ++/*356778*/ OPC_MoveParent, ++/*356779*/ OPC_MoveChild, 15, ++/*356781*/ OPC_CheckInteger, 7, ++/*356783*/ OPC_CheckType, MVT::i32, ++/*356785*/ OPC_MoveParent, ++/*356786*/ OPC_CheckType, MVT::v16i8, ++/*356788*/ OPC_MoveParent, ++/*356789*/ OPC_MoveParent, ++/*356790*/ OPC_MoveChild1, ++/*356791*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*356794*/ OPC_Scope, 52|128,10/*1332*/, /*->358129*/ // 4 children in Scope ++/*356797*/ OPC_MoveChild0, ++/*356798*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*356801*/ OPC_Scope, 91|128,1/*219*/, /*->357023*/ // 6 children in Scope ++/*356804*/ OPC_MoveChild0, ++/*356805*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*356808*/ OPC_CheckChild0Integer, 1, ++/*356810*/ OPC_CheckChild0Type, MVT::i32, ++/*356812*/ OPC_CheckChild1Integer, 1, ++/*356814*/ OPC_CheckChild1Type, MVT::i32, ++/*356816*/ OPC_CheckChild2Integer, 1, ++/*356818*/ OPC_CheckChild2Type, MVT::i32, ++/*356820*/ OPC_CheckChild3Integer, 1, ++/*356822*/ OPC_CheckChild3Type, MVT::i32, ++/*356824*/ OPC_CheckChild4Integer, 1, ++/*356826*/ OPC_CheckChild4Type, MVT::i32, ++/*356828*/ OPC_MoveChild5, ++/*356829*/ OPC_CheckInteger, 1, ++/*356831*/ OPC_CheckType, MVT::i32, ++/*356833*/ OPC_MoveParent, ++/*356834*/ OPC_MoveChild6, ++/*356835*/ OPC_CheckInteger, 1, ++/*356837*/ OPC_CheckType, MVT::i32, ++/*356839*/ OPC_MoveParent, ++/*356840*/ OPC_MoveChild7, ++/*356841*/ OPC_CheckInteger, 1, ++/*356843*/ OPC_CheckType, MVT::i32, ++/*356845*/ OPC_MoveParent, ++/*356846*/ OPC_MoveChild, 8, ++/*356848*/ OPC_CheckInteger, 1, ++/*356850*/ OPC_CheckType, MVT::i32, ++/*356852*/ OPC_MoveParent, ++/*356853*/ OPC_MoveChild, 9, ++/*356855*/ OPC_CheckInteger, 1, ++/*356857*/ OPC_CheckType, MVT::i32, ++/*356859*/ OPC_MoveParent, ++/*356860*/ OPC_MoveChild, 10, ++/*356862*/ OPC_CheckInteger, 1, ++/*356864*/ OPC_CheckType, MVT::i32, ++/*356866*/ OPC_MoveParent, ++/*356867*/ OPC_MoveChild, 11, ++/*356869*/ OPC_CheckInteger, 1, ++/*356871*/ OPC_CheckType, MVT::i32, ++/*356873*/ OPC_MoveParent, ++/*356874*/ OPC_MoveChild, 12, ++/*356876*/ OPC_CheckInteger, 1, ++/*356878*/ OPC_CheckType, MVT::i32, ++/*356880*/ OPC_MoveParent, ++/*356881*/ OPC_MoveChild, 13, ++/*356883*/ OPC_CheckInteger, 1, ++/*356885*/ OPC_CheckType, MVT::i32, ++/*356887*/ OPC_MoveParent, ++/*356888*/ OPC_MoveChild, 14, ++/*356890*/ OPC_CheckInteger, 1, ++/*356892*/ OPC_CheckType, MVT::i32, ++/*356894*/ OPC_MoveParent, ++/*356895*/ OPC_MoveChild, 15, ++/*356897*/ OPC_CheckInteger, 1, ++/*356899*/ OPC_CheckType, MVT::i32, ++/*356901*/ OPC_MoveParent, ++/*356902*/ OPC_MoveParent, ++/*356903*/ OPC_CheckChild1Same, 1, ++/*356905*/ OPC_MoveParent, ++/*356906*/ OPC_CheckChild1Same, 0, ++/*356908*/ OPC_MoveParent, ++/*356909*/ OPC_MoveParent, ++/*356910*/ OPC_MoveChild1, ++/*356911*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*356914*/ OPC_CheckChild0Integer, 1, ++/*356916*/ OPC_CheckChild0Type, MVT::i32, ++/*356918*/ OPC_CheckChild1Integer, 1, ++/*356920*/ OPC_CheckChild1Type, MVT::i32, ++/*356922*/ OPC_CheckChild2Integer, 1, ++/*356924*/ OPC_CheckChild2Type, MVT::i32, ++/*356926*/ OPC_CheckChild3Integer, 1, ++/*356928*/ OPC_CheckChild3Type, MVT::i32, ++/*356930*/ OPC_CheckChild4Integer, 1, ++/*356932*/ OPC_CheckChild4Type, MVT::i32, ++/*356934*/ OPC_MoveChild5, ++/*356935*/ OPC_CheckInteger, 1, ++/*356937*/ OPC_CheckType, MVT::i32, ++/*356939*/ OPC_MoveParent, ++/*356940*/ OPC_MoveChild6, ++/*356941*/ OPC_CheckInteger, 1, ++/*356943*/ OPC_CheckType, MVT::i32, ++/*356945*/ OPC_MoveParent, ++/*356946*/ OPC_MoveChild7, ++/*356947*/ OPC_CheckInteger, 1, ++/*356949*/ OPC_CheckType, MVT::i32, ++/*356951*/ OPC_MoveParent, ++/*356952*/ OPC_MoveChild, 8, ++/*356954*/ OPC_CheckInteger, 1, ++/*356956*/ OPC_CheckType, MVT::i32, ++/*356958*/ OPC_MoveParent, ++/*356959*/ OPC_MoveChild, 9, ++/*356961*/ OPC_CheckInteger, 1, ++/*356963*/ OPC_CheckType, MVT::i32, ++/*356965*/ OPC_MoveParent, ++/*356966*/ OPC_MoveChild, 10, ++/*356968*/ OPC_CheckInteger, 1, ++/*356970*/ OPC_CheckType, MVT::i32, ++/*356972*/ OPC_MoveParent, ++/*356973*/ OPC_MoveChild, 11, ++/*356975*/ OPC_CheckInteger, 1, ++/*356977*/ OPC_CheckType, MVT::i32, ++/*356979*/ OPC_MoveParent, ++/*356980*/ OPC_MoveChild, 12, ++/*356982*/ OPC_CheckInteger, 1, ++/*356984*/ OPC_CheckType, MVT::i32, ++/*356986*/ OPC_MoveParent, ++/*356987*/ OPC_MoveChild, 13, ++/*356989*/ OPC_CheckInteger, 1, ++/*356991*/ OPC_CheckType, MVT::i32, ++/*356993*/ OPC_MoveParent, ++/*356994*/ OPC_MoveChild, 14, ++/*356996*/ OPC_CheckInteger, 1, ++/*356998*/ OPC_CheckType, MVT::i32, ++/*357000*/ OPC_MoveParent, ++/*357001*/ OPC_MoveChild, 15, ++/*357003*/ OPC_CheckInteger, 1, ++/*357005*/ OPC_CheckType, MVT::i32, ++/*357007*/ OPC_MoveParent, ++/*357008*/ OPC_CheckType, MVT::v16i8, ++/*357010*/ OPC_MoveParent, ++/*357011*/ OPC_CheckType, MVT::v16i8, ++/*357013*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*357015*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a), LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*357023*/ /*Scope*/ 91|128,1/*219*/, /*->357244*/ ++/*357025*/ OPC_CheckChild0Same, 1, ++/*357027*/ OPC_MoveChild1, ++/*357028*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*357031*/ OPC_CheckChild0Integer, 1, ++/*357033*/ OPC_CheckChild0Type, MVT::i32, ++/*357035*/ OPC_CheckChild1Integer, 1, ++/*357037*/ OPC_CheckChild1Type, MVT::i32, ++/*357039*/ OPC_CheckChild2Integer, 1, ++/*357041*/ OPC_CheckChild2Type, MVT::i32, ++/*357043*/ OPC_CheckChild3Integer, 1, ++/*357045*/ OPC_CheckChild3Type, MVT::i32, ++/*357047*/ OPC_CheckChild4Integer, 1, ++/*357049*/ OPC_CheckChild4Type, MVT::i32, ++/*357051*/ OPC_MoveChild5, ++/*357052*/ OPC_CheckInteger, 1, ++/*357054*/ OPC_CheckType, MVT::i32, ++/*357056*/ OPC_MoveParent, ++/*357057*/ OPC_MoveChild6, ++/*357058*/ OPC_CheckInteger, 1, ++/*357060*/ OPC_CheckType, MVT::i32, ++/*357062*/ OPC_MoveParent, ++/*357063*/ OPC_MoveChild7, ++/*357064*/ OPC_CheckInteger, 1, ++/*357066*/ OPC_CheckType, MVT::i32, ++/*357068*/ OPC_MoveParent, ++/*357069*/ OPC_MoveChild, 8, ++/*357071*/ OPC_CheckInteger, 1, ++/*357073*/ OPC_CheckType, MVT::i32, ++/*357075*/ OPC_MoveParent, ++/*357076*/ OPC_MoveChild, 9, ++/*357078*/ OPC_CheckInteger, 1, ++/*357080*/ OPC_CheckType, MVT::i32, ++/*357082*/ OPC_MoveParent, ++/*357083*/ OPC_MoveChild, 10, ++/*357085*/ OPC_CheckInteger, 1, ++/*357087*/ OPC_CheckType, MVT::i32, ++/*357089*/ OPC_MoveParent, ++/*357090*/ OPC_MoveChild, 11, ++/*357092*/ OPC_CheckInteger, 1, ++/*357094*/ OPC_CheckType, MVT::i32, ++/*357096*/ OPC_MoveParent, ++/*357097*/ OPC_MoveChild, 12, ++/*357099*/ OPC_CheckInteger, 1, ++/*357101*/ OPC_CheckType, MVT::i32, ++/*357103*/ OPC_MoveParent, ++/*357104*/ OPC_MoveChild, 13, ++/*357106*/ OPC_CheckInteger, 1, ++/*357108*/ OPC_CheckType, MVT::i32, ++/*357110*/ OPC_MoveParent, ++/*357111*/ OPC_MoveChild, 14, ++/*357113*/ OPC_CheckInteger, 1, ++/*357115*/ OPC_CheckType, MVT::i32, ++/*357117*/ OPC_MoveParent, ++/*357118*/ OPC_MoveChild, 15, ++/*357120*/ OPC_CheckInteger, 1, ++/*357122*/ OPC_CheckType, MVT::i32, ++/*357124*/ OPC_MoveParent, ++/*357125*/ OPC_MoveParent, ++/*357126*/ OPC_MoveParent, ++/*357127*/ OPC_CheckChild1Same, 0, ++/*357129*/ OPC_MoveParent, ++/*357130*/ OPC_MoveParent, ++/*357131*/ OPC_MoveChild1, ++/*357132*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*357135*/ OPC_CheckChild0Integer, 1, ++/*357137*/ OPC_CheckChild0Type, MVT::i32, ++/*357139*/ OPC_CheckChild1Integer, 1, ++/*357141*/ OPC_CheckChild1Type, MVT::i32, ++/*357143*/ OPC_CheckChild2Integer, 1, ++/*357145*/ OPC_CheckChild2Type, MVT::i32, ++/*357147*/ OPC_CheckChild3Integer, 1, ++/*357149*/ OPC_CheckChild3Type, MVT::i32, ++/*357151*/ OPC_CheckChild4Integer, 1, ++/*357153*/ OPC_CheckChild4Type, MVT::i32, ++/*357155*/ OPC_MoveChild5, ++/*357156*/ OPC_CheckInteger, 1, ++/*357158*/ OPC_CheckType, MVT::i32, ++/*357160*/ OPC_MoveParent, ++/*357161*/ OPC_MoveChild6, ++/*357162*/ OPC_CheckInteger, 1, ++/*357164*/ OPC_CheckType, MVT::i32, ++/*357166*/ OPC_MoveParent, ++/*357167*/ OPC_MoveChild7, ++/*357168*/ OPC_CheckInteger, 1, ++/*357170*/ OPC_CheckType, MVT::i32, ++/*357172*/ OPC_MoveParent, ++/*357173*/ OPC_MoveChild, 8, ++/*357175*/ OPC_CheckInteger, 1, ++/*357177*/ OPC_CheckType, MVT::i32, ++/*357179*/ OPC_MoveParent, ++/*357180*/ OPC_MoveChild, 9, ++/*357182*/ OPC_CheckInteger, 1, ++/*357184*/ OPC_CheckType, MVT::i32, ++/*357186*/ OPC_MoveParent, ++/*357187*/ OPC_MoveChild, 10, ++/*357189*/ OPC_CheckInteger, 1, ++/*357191*/ OPC_CheckType, MVT::i32, ++/*357193*/ OPC_MoveParent, ++/*357194*/ OPC_MoveChild, 11, ++/*357196*/ OPC_CheckInteger, 1, ++/*357198*/ OPC_CheckType, MVT::i32, ++/*357200*/ OPC_MoveParent, ++/*357201*/ OPC_MoveChild, 12, ++/*357203*/ OPC_CheckInteger, 1, ++/*357205*/ OPC_CheckType, MVT::i32, ++/*357207*/ OPC_MoveParent, ++/*357208*/ OPC_MoveChild, 13, ++/*357210*/ OPC_CheckInteger, 1, ++/*357212*/ OPC_CheckType, MVT::i32, ++/*357214*/ OPC_MoveParent, ++/*357215*/ OPC_MoveChild, 14, ++/*357217*/ OPC_CheckInteger, 1, ++/*357219*/ OPC_CheckType, MVT::i32, ++/*357221*/ OPC_MoveParent, ++/*357222*/ OPC_MoveChild, 15, ++/*357224*/ OPC_CheckInteger, 1, ++/*357226*/ OPC_CheckType, MVT::i32, ++/*357228*/ OPC_MoveParent, ++/*357229*/ OPC_CheckType, MVT::v16i8, ++/*357231*/ OPC_MoveParent, ++/*357232*/ OPC_CheckType, MVT::v16i8, ++/*357234*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*357236*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*357244*/ /*Scope*/ 91|128,1/*219*/, /*->357465*/ ++/*357246*/ OPC_MoveChild0, ++/*357247*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*357250*/ OPC_CheckChild0Integer, 1, ++/*357252*/ OPC_CheckChild0Type, MVT::i32, ++/*357254*/ OPC_CheckChild1Integer, 1, ++/*357256*/ OPC_CheckChild1Type, MVT::i32, ++/*357258*/ OPC_CheckChild2Integer, 1, ++/*357260*/ OPC_CheckChild2Type, MVT::i32, ++/*357262*/ OPC_CheckChild3Integer, 1, ++/*357264*/ OPC_CheckChild3Type, MVT::i32, ++/*357266*/ OPC_CheckChild4Integer, 1, ++/*357268*/ OPC_CheckChild4Type, MVT::i32, ++/*357270*/ OPC_MoveChild5, ++/*357271*/ OPC_CheckInteger, 1, ++/*357273*/ OPC_CheckType, MVT::i32, ++/*357275*/ OPC_MoveParent, ++/*357276*/ OPC_MoveChild6, ++/*357277*/ OPC_CheckInteger, 1, ++/*357279*/ OPC_CheckType, MVT::i32, ++/*357281*/ OPC_MoveParent, ++/*357282*/ OPC_MoveChild7, ++/*357283*/ OPC_CheckInteger, 1, ++/*357285*/ OPC_CheckType, MVT::i32, ++/*357287*/ OPC_MoveParent, ++/*357288*/ OPC_MoveChild, 8, ++/*357290*/ OPC_CheckInteger, 1, ++/*357292*/ OPC_CheckType, MVT::i32, ++/*357294*/ OPC_MoveParent, ++/*357295*/ OPC_MoveChild, 9, ++/*357297*/ OPC_CheckInteger, 1, ++/*357299*/ OPC_CheckType, MVT::i32, ++/*357301*/ OPC_MoveParent, ++/*357302*/ OPC_MoveChild, 10, ++/*357304*/ OPC_CheckInteger, 1, ++/*357306*/ OPC_CheckType, MVT::i32, ++/*357308*/ OPC_MoveParent, ++/*357309*/ OPC_MoveChild, 11, ++/*357311*/ OPC_CheckInteger, 1, ++/*357313*/ OPC_CheckType, MVT::i32, ++/*357315*/ OPC_MoveParent, ++/*357316*/ OPC_MoveChild, 12, ++/*357318*/ OPC_CheckInteger, 1, ++/*357320*/ OPC_CheckType, MVT::i32, ++/*357322*/ OPC_MoveParent, ++/*357323*/ OPC_MoveChild, 13, ++/*357325*/ OPC_CheckInteger, 1, ++/*357327*/ OPC_CheckType, MVT::i32, ++/*357329*/ OPC_MoveParent, ++/*357330*/ OPC_MoveChild, 14, ++/*357332*/ OPC_CheckInteger, 1, ++/*357334*/ OPC_CheckType, MVT::i32, ++/*357336*/ OPC_MoveParent, ++/*357337*/ OPC_MoveChild, 15, ++/*357339*/ OPC_CheckInteger, 1, ++/*357341*/ OPC_CheckType, MVT::i32, ++/*357343*/ OPC_MoveParent, ++/*357344*/ OPC_MoveParent, ++/*357345*/ OPC_CheckChild1Same, 0, ++/*357347*/ OPC_MoveParent, ++/*357348*/ OPC_CheckChild1Same, 1, ++/*357350*/ OPC_MoveParent, ++/*357351*/ OPC_MoveParent, ++/*357352*/ OPC_MoveChild1, ++/*357353*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*357356*/ OPC_CheckChild0Integer, 1, ++/*357358*/ OPC_CheckChild0Type, MVT::i32, ++/*357360*/ OPC_CheckChild1Integer, 1, ++/*357362*/ OPC_CheckChild1Type, MVT::i32, ++/*357364*/ OPC_CheckChild2Integer, 1, ++/*357366*/ OPC_CheckChild2Type, MVT::i32, ++/*357368*/ OPC_CheckChild3Integer, 1, ++/*357370*/ OPC_CheckChild3Type, MVT::i32, ++/*357372*/ OPC_CheckChild4Integer, 1, ++/*357374*/ OPC_CheckChild4Type, MVT::i32, ++/*357376*/ OPC_MoveChild5, ++/*357377*/ OPC_CheckInteger, 1, ++/*357379*/ OPC_CheckType, MVT::i32, ++/*357381*/ OPC_MoveParent, ++/*357382*/ OPC_MoveChild6, ++/*357383*/ OPC_CheckInteger, 1, ++/*357385*/ OPC_CheckType, MVT::i32, ++/*357387*/ OPC_MoveParent, ++/*357388*/ OPC_MoveChild7, ++/*357389*/ OPC_CheckInteger, 1, ++/*357391*/ OPC_CheckType, MVT::i32, ++/*357393*/ OPC_MoveParent, ++/*357394*/ OPC_MoveChild, 8, ++/*357396*/ OPC_CheckInteger, 1, ++/*357398*/ OPC_CheckType, MVT::i32, ++/*357400*/ OPC_MoveParent, ++/*357401*/ OPC_MoveChild, 9, ++/*357403*/ OPC_CheckInteger, 1, ++/*357405*/ OPC_CheckType, MVT::i32, ++/*357407*/ OPC_MoveParent, ++/*357408*/ OPC_MoveChild, 10, ++/*357410*/ OPC_CheckInteger, 1, ++/*357412*/ OPC_CheckType, MVT::i32, ++/*357414*/ OPC_MoveParent, ++/*357415*/ OPC_MoveChild, 11, ++/*357417*/ OPC_CheckInteger, 1, ++/*357419*/ OPC_CheckType, MVT::i32, ++/*357421*/ OPC_MoveParent, ++/*357422*/ OPC_MoveChild, 12, ++/*357424*/ OPC_CheckInteger, 1, ++/*357426*/ OPC_CheckType, MVT::i32, ++/*357428*/ OPC_MoveParent, ++/*357429*/ OPC_MoveChild, 13, ++/*357431*/ OPC_CheckInteger, 1, ++/*357433*/ OPC_CheckType, MVT::i32, ++/*357435*/ OPC_MoveParent, ++/*357436*/ OPC_MoveChild, 14, ++/*357438*/ OPC_CheckInteger, 1, ++/*357440*/ OPC_CheckType, MVT::i32, ++/*357442*/ OPC_MoveParent, ++/*357443*/ OPC_MoveChild, 15, ++/*357445*/ OPC_CheckInteger, 1, ++/*357447*/ OPC_CheckType, MVT::i32, ++/*357449*/ OPC_MoveParent, ++/*357450*/ OPC_CheckType, MVT::v16i8, ++/*357452*/ OPC_MoveParent, ++/*357453*/ OPC_CheckType, MVT::v16i8, ++/*357455*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*357457*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b), LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*357465*/ /*Scope*/ 91|128,1/*219*/, /*->357686*/ ++/*357467*/ OPC_CheckChild0Same, 0, ++/*357469*/ OPC_MoveChild1, ++/*357470*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*357473*/ OPC_CheckChild0Integer, 1, ++/*357475*/ OPC_CheckChild0Type, MVT::i32, ++/*357477*/ OPC_CheckChild1Integer, 1, ++/*357479*/ OPC_CheckChild1Type, MVT::i32, ++/*357481*/ OPC_CheckChild2Integer, 1, ++/*357483*/ OPC_CheckChild2Type, MVT::i32, ++/*357485*/ OPC_CheckChild3Integer, 1, ++/*357487*/ OPC_CheckChild3Type, MVT::i32, ++/*357489*/ OPC_CheckChild4Integer, 1, ++/*357491*/ OPC_CheckChild4Type, MVT::i32, ++/*357493*/ OPC_MoveChild5, ++/*357494*/ OPC_CheckInteger, 1, ++/*357496*/ OPC_CheckType, MVT::i32, ++/*357498*/ OPC_MoveParent, ++/*357499*/ OPC_MoveChild6, ++/*357500*/ OPC_CheckInteger, 1, ++/*357502*/ OPC_CheckType, MVT::i32, ++/*357504*/ OPC_MoveParent, ++/*357505*/ OPC_MoveChild7, ++/*357506*/ OPC_CheckInteger, 1, ++/*357508*/ OPC_CheckType, MVT::i32, ++/*357510*/ OPC_MoveParent, ++/*357511*/ OPC_MoveChild, 8, ++/*357513*/ OPC_CheckInteger, 1, ++/*357515*/ OPC_CheckType, MVT::i32, ++/*357517*/ OPC_MoveParent, ++/*357518*/ OPC_MoveChild, 9, ++/*357520*/ OPC_CheckInteger, 1, ++/*357522*/ OPC_CheckType, MVT::i32, ++/*357524*/ OPC_MoveParent, ++/*357525*/ OPC_MoveChild, 10, ++/*357527*/ OPC_CheckInteger, 1, ++/*357529*/ OPC_CheckType, MVT::i32, ++/*357531*/ OPC_MoveParent, ++/*357532*/ OPC_MoveChild, 11, ++/*357534*/ OPC_CheckInteger, 1, ++/*357536*/ OPC_CheckType, MVT::i32, ++/*357538*/ OPC_MoveParent, ++/*357539*/ OPC_MoveChild, 12, ++/*357541*/ OPC_CheckInteger, 1, ++/*357543*/ OPC_CheckType, MVT::i32, ++/*357545*/ OPC_MoveParent, ++/*357546*/ OPC_MoveChild, 13, ++/*357548*/ OPC_CheckInteger, 1, ++/*357550*/ OPC_CheckType, MVT::i32, ++/*357552*/ OPC_MoveParent, ++/*357553*/ OPC_MoveChild, 14, ++/*357555*/ OPC_CheckInteger, 1, ++/*357557*/ OPC_CheckType, MVT::i32, ++/*357559*/ OPC_MoveParent, ++/*357560*/ OPC_MoveChild, 15, ++/*357562*/ OPC_CheckInteger, 1, ++/*357564*/ OPC_CheckType, MVT::i32, ++/*357566*/ OPC_MoveParent, ++/*357567*/ OPC_MoveParent, ++/*357568*/ OPC_MoveParent, ++/*357569*/ OPC_CheckChild1Same, 1, ++/*357571*/ OPC_MoveParent, ++/*357572*/ OPC_MoveParent, ++/*357573*/ OPC_MoveChild1, ++/*357574*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*357577*/ OPC_CheckChild0Integer, 1, ++/*357579*/ OPC_CheckChild0Type, MVT::i32, ++/*357581*/ OPC_CheckChild1Integer, 1, ++/*357583*/ OPC_CheckChild1Type, MVT::i32, ++/*357585*/ OPC_CheckChild2Integer, 1, ++/*357587*/ OPC_CheckChild2Type, MVT::i32, ++/*357589*/ OPC_CheckChild3Integer, 1, ++/*357591*/ OPC_CheckChild3Type, MVT::i32, ++/*357593*/ OPC_CheckChild4Integer, 1, ++/*357595*/ OPC_CheckChild4Type, MVT::i32, ++/*357597*/ OPC_MoveChild5, ++/*357598*/ OPC_CheckInteger, 1, ++/*357600*/ OPC_CheckType, MVT::i32, ++/*357602*/ OPC_MoveParent, ++/*357603*/ OPC_MoveChild6, ++/*357604*/ OPC_CheckInteger, 1, ++/*357606*/ OPC_CheckType, MVT::i32, ++/*357608*/ OPC_MoveParent, ++/*357609*/ OPC_MoveChild7, ++/*357610*/ OPC_CheckInteger, 1, ++/*357612*/ OPC_CheckType, MVT::i32, ++/*357614*/ OPC_MoveParent, ++/*357615*/ OPC_MoveChild, 8, ++/*357617*/ OPC_CheckInteger, 1, ++/*357619*/ OPC_CheckType, MVT::i32, ++/*357621*/ OPC_MoveParent, ++/*357622*/ OPC_MoveChild, 9, ++/*357624*/ OPC_CheckInteger, 1, ++/*357626*/ OPC_CheckType, MVT::i32, ++/*357628*/ OPC_MoveParent, ++/*357629*/ OPC_MoveChild, 10, ++/*357631*/ OPC_CheckInteger, 1, ++/*357633*/ OPC_CheckType, MVT::i32, ++/*357635*/ OPC_MoveParent, ++/*357636*/ OPC_MoveChild, 11, ++/*357638*/ OPC_CheckInteger, 1, ++/*357640*/ OPC_CheckType, MVT::i32, ++/*357642*/ OPC_MoveParent, ++/*357643*/ OPC_MoveChild, 12, ++/*357645*/ OPC_CheckInteger, 1, ++/*357647*/ OPC_CheckType, MVT::i32, ++/*357649*/ OPC_MoveParent, ++/*357650*/ OPC_MoveChild, 13, ++/*357652*/ OPC_CheckInteger, 1, ++/*357654*/ OPC_CheckType, MVT::i32, ++/*357656*/ OPC_MoveParent, ++/*357657*/ OPC_MoveChild, 14, ++/*357659*/ OPC_CheckInteger, 1, ++/*357661*/ OPC_CheckType, MVT::i32, ++/*357663*/ OPC_MoveParent, ++/*357664*/ OPC_MoveChild, 15, ++/*357666*/ OPC_CheckInteger, 1, ++/*357668*/ OPC_CheckType, MVT::i32, ++/*357670*/ OPC_MoveParent, ++/*357671*/ OPC_CheckType, MVT::v16i8, ++/*357673*/ OPC_MoveParent, ++/*357674*/ OPC_CheckType, MVT::v16i8, ++/*357676*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*357678*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*357686*/ /*Scope*/ 91|128,1/*219*/, /*->357907*/ ++/*357688*/ OPC_CheckChild0Same, 1, ++/*357690*/ OPC_CheckChild1Same, 0, ++/*357692*/ OPC_MoveParent, ++/*357693*/ OPC_MoveChild1, ++/*357694*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*357697*/ OPC_CheckChild0Integer, 1, ++/*357699*/ OPC_CheckChild0Type, MVT::i32, ++/*357701*/ OPC_CheckChild1Integer, 1, ++/*357703*/ OPC_CheckChild1Type, MVT::i32, ++/*357705*/ OPC_CheckChild2Integer, 1, ++/*357707*/ OPC_CheckChild2Type, MVT::i32, ++/*357709*/ OPC_CheckChild3Integer, 1, ++/*357711*/ OPC_CheckChild3Type, MVT::i32, ++/*357713*/ OPC_CheckChild4Integer, 1, ++/*357715*/ OPC_CheckChild4Type, MVT::i32, ++/*357717*/ OPC_MoveChild5, ++/*357718*/ OPC_CheckInteger, 1, ++/*357720*/ OPC_CheckType, MVT::i32, ++/*357722*/ OPC_MoveParent, ++/*357723*/ OPC_MoveChild6, ++/*357724*/ OPC_CheckInteger, 1, ++/*357726*/ OPC_CheckType, MVT::i32, ++/*357728*/ OPC_MoveParent, ++/*357729*/ OPC_MoveChild7, ++/*357730*/ OPC_CheckInteger, 1, ++/*357732*/ OPC_CheckType, MVT::i32, ++/*357734*/ OPC_MoveParent, ++/*357735*/ OPC_MoveChild, 8, ++/*357737*/ OPC_CheckInteger, 1, ++/*357739*/ OPC_CheckType, MVT::i32, ++/*357741*/ OPC_MoveParent, ++/*357742*/ OPC_MoveChild, 9, ++/*357744*/ OPC_CheckInteger, 1, ++/*357746*/ OPC_CheckType, MVT::i32, ++/*357748*/ OPC_MoveParent, ++/*357749*/ OPC_MoveChild, 10, ++/*357751*/ OPC_CheckInteger, 1, ++/*357753*/ OPC_CheckType, MVT::i32, ++/*357755*/ OPC_MoveParent, ++/*357756*/ OPC_MoveChild, 11, ++/*357758*/ OPC_CheckInteger, 1, ++/*357760*/ OPC_CheckType, MVT::i32, ++/*357762*/ OPC_MoveParent, ++/*357763*/ OPC_MoveChild, 12, ++/*357765*/ OPC_CheckInteger, 1, ++/*357767*/ OPC_CheckType, MVT::i32, ++/*357769*/ OPC_MoveParent, ++/*357770*/ OPC_MoveChild, 13, ++/*357772*/ OPC_CheckInteger, 1, ++/*357774*/ OPC_CheckType, MVT::i32, ++/*357776*/ OPC_MoveParent, ++/*357777*/ OPC_MoveChild, 14, ++/*357779*/ OPC_CheckInteger, 1, ++/*357781*/ OPC_CheckType, MVT::i32, ++/*357783*/ OPC_MoveParent, ++/*357784*/ OPC_MoveChild, 15, ++/*357786*/ OPC_CheckInteger, 1, ++/*357788*/ OPC_CheckType, MVT::i32, ++/*357790*/ OPC_MoveParent, ++/*357791*/ OPC_MoveParent, ++/*357792*/ OPC_MoveParent, ++/*357793*/ OPC_MoveParent, ++/*357794*/ OPC_MoveChild1, ++/*357795*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*357798*/ OPC_CheckChild0Integer, 1, ++/*357800*/ OPC_CheckChild0Type, MVT::i32, ++/*357802*/ OPC_CheckChild1Integer, 1, ++/*357804*/ OPC_CheckChild1Type, MVT::i32, ++/*357806*/ OPC_CheckChild2Integer, 1, ++/*357808*/ OPC_CheckChild2Type, MVT::i32, ++/*357810*/ OPC_CheckChild3Integer, 1, ++/*357812*/ OPC_CheckChild3Type, MVT::i32, ++/*357814*/ OPC_CheckChild4Integer, 1, ++/*357816*/ OPC_CheckChild4Type, MVT::i32, ++/*357818*/ OPC_MoveChild5, ++/*357819*/ OPC_CheckInteger, 1, ++/*357821*/ OPC_CheckType, MVT::i32, ++/*357823*/ OPC_MoveParent, ++/*357824*/ OPC_MoveChild6, ++/*357825*/ OPC_CheckInteger, 1, ++/*357827*/ OPC_CheckType, MVT::i32, ++/*357829*/ OPC_MoveParent, ++/*357830*/ OPC_MoveChild7, ++/*357831*/ OPC_CheckInteger, 1, ++/*357833*/ OPC_CheckType, MVT::i32, ++/*357835*/ OPC_MoveParent, ++/*357836*/ OPC_MoveChild, 8, ++/*357838*/ OPC_CheckInteger, 1, ++/*357840*/ OPC_CheckType, MVT::i32, ++/*357842*/ OPC_MoveParent, ++/*357843*/ OPC_MoveChild, 9, ++/*357845*/ OPC_CheckInteger, 1, ++/*357847*/ OPC_CheckType, MVT::i32, ++/*357849*/ OPC_MoveParent, ++/*357850*/ OPC_MoveChild, 10, ++/*357852*/ OPC_CheckInteger, 1, ++/*357854*/ OPC_CheckType, MVT::i32, ++/*357856*/ OPC_MoveParent, ++/*357857*/ OPC_MoveChild, 11, ++/*357859*/ OPC_CheckInteger, 1, ++/*357861*/ OPC_CheckType, MVT::i32, ++/*357863*/ OPC_MoveParent, ++/*357864*/ OPC_MoveChild, 12, ++/*357866*/ OPC_CheckInteger, 1, ++/*357868*/ OPC_CheckType, MVT::i32, ++/*357870*/ OPC_MoveParent, ++/*357871*/ OPC_MoveChild, 13, ++/*357873*/ OPC_CheckInteger, 1, ++/*357875*/ OPC_CheckType, MVT::i32, ++/*357877*/ OPC_MoveParent, ++/*357878*/ OPC_MoveChild, 14, ++/*357880*/ OPC_CheckInteger, 1, ++/*357882*/ OPC_CheckType, MVT::i32, ++/*357884*/ OPC_MoveParent, ++/*357885*/ OPC_MoveChild, 15, ++/*357887*/ OPC_CheckInteger, 1, ++/*357889*/ OPC_CheckType, MVT::i32, ++/*357891*/ OPC_MoveParent, ++/*357892*/ OPC_CheckType, MVT::v16i8, ++/*357894*/ OPC_MoveParent, ++/*357895*/ OPC_CheckType, MVT::v16i8, ++/*357897*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*357899*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*357907*/ /*Scope*/ 91|128,1/*219*/, /*->358128*/ ++/*357909*/ OPC_CheckChild0Same, 0, ++/*357911*/ OPC_CheckChild1Same, 1, ++/*357913*/ OPC_MoveParent, ++/*357914*/ OPC_MoveChild1, ++/*357915*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*357918*/ OPC_CheckChild0Integer, 1, ++/*357920*/ OPC_CheckChild0Type, MVT::i32, ++/*357922*/ OPC_CheckChild1Integer, 1, ++/*357924*/ OPC_CheckChild1Type, MVT::i32, ++/*357926*/ OPC_CheckChild2Integer, 1, ++/*357928*/ OPC_CheckChild2Type, MVT::i32, ++/*357930*/ OPC_CheckChild3Integer, 1, ++/*357932*/ OPC_CheckChild3Type, MVT::i32, ++/*357934*/ OPC_CheckChild4Integer, 1, ++/*357936*/ OPC_CheckChild4Type, MVT::i32, ++/*357938*/ OPC_MoveChild5, ++/*357939*/ OPC_CheckInteger, 1, ++/*357941*/ OPC_CheckType, MVT::i32, ++/*357943*/ OPC_MoveParent, ++/*357944*/ OPC_MoveChild6, ++/*357945*/ OPC_CheckInteger, 1, ++/*357947*/ OPC_CheckType, MVT::i32, ++/*357949*/ OPC_MoveParent, ++/*357950*/ OPC_MoveChild7, ++/*357951*/ OPC_CheckInteger, 1, ++/*357953*/ OPC_CheckType, MVT::i32, ++/*357955*/ OPC_MoveParent, ++/*357956*/ OPC_MoveChild, 8, ++/*357958*/ OPC_CheckInteger, 1, ++/*357960*/ OPC_CheckType, MVT::i32, ++/*357962*/ OPC_MoveParent, ++/*357963*/ OPC_MoveChild, 9, ++/*357965*/ OPC_CheckInteger, 1, ++/*357967*/ OPC_CheckType, MVT::i32, ++/*357969*/ OPC_MoveParent, ++/*357970*/ OPC_MoveChild, 10, ++/*357972*/ OPC_CheckInteger, 1, ++/*357974*/ OPC_CheckType, MVT::i32, ++/*357976*/ OPC_MoveParent, ++/*357977*/ OPC_MoveChild, 11, ++/*357979*/ OPC_CheckInteger, 1, ++/*357981*/ OPC_CheckType, MVT::i32, ++/*357983*/ OPC_MoveParent, ++/*357984*/ OPC_MoveChild, 12, ++/*357986*/ OPC_CheckInteger, 1, ++/*357988*/ OPC_CheckType, MVT::i32, ++/*357990*/ OPC_MoveParent, ++/*357991*/ OPC_MoveChild, 13, ++/*357993*/ OPC_CheckInteger, 1, ++/*357995*/ OPC_CheckType, MVT::i32, ++/*357997*/ OPC_MoveParent, ++/*357998*/ OPC_MoveChild, 14, ++/*358000*/ OPC_CheckInteger, 1, ++/*358002*/ OPC_CheckType, MVT::i32, ++/*358004*/ OPC_MoveParent, ++/*358005*/ OPC_MoveChild, 15, ++/*358007*/ OPC_CheckInteger, 1, ++/*358009*/ OPC_CheckType, MVT::i32, ++/*358011*/ OPC_MoveParent, ++/*358012*/ OPC_MoveParent, ++/*358013*/ OPC_MoveParent, ++/*358014*/ OPC_MoveParent, ++/*358015*/ OPC_MoveChild1, ++/*358016*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*358019*/ OPC_CheckChild0Integer, 1, ++/*358021*/ OPC_CheckChild0Type, MVT::i32, ++/*358023*/ OPC_CheckChild1Integer, 1, ++/*358025*/ OPC_CheckChild1Type, MVT::i32, ++/*358027*/ OPC_CheckChild2Integer, 1, ++/*358029*/ OPC_CheckChild2Type, MVT::i32, ++/*358031*/ OPC_CheckChild3Integer, 1, ++/*358033*/ OPC_CheckChild3Type, MVT::i32, ++/*358035*/ OPC_CheckChild4Integer, 1, ++/*358037*/ OPC_CheckChild4Type, MVT::i32, ++/*358039*/ OPC_MoveChild5, ++/*358040*/ OPC_CheckInteger, 1, ++/*358042*/ OPC_CheckType, MVT::i32, ++/*358044*/ OPC_MoveParent, ++/*358045*/ OPC_MoveChild6, ++/*358046*/ OPC_CheckInteger, 1, ++/*358048*/ OPC_CheckType, MVT::i32, ++/*358050*/ OPC_MoveParent, ++/*358051*/ OPC_MoveChild7, ++/*358052*/ OPC_CheckInteger, 1, ++/*358054*/ OPC_CheckType, MVT::i32, ++/*358056*/ OPC_MoveParent, ++/*358057*/ OPC_MoveChild, 8, ++/*358059*/ OPC_CheckInteger, 1, ++/*358061*/ OPC_CheckType, MVT::i32, ++/*358063*/ OPC_MoveParent, ++/*358064*/ OPC_MoveChild, 9, ++/*358066*/ OPC_CheckInteger, 1, ++/*358068*/ OPC_CheckType, MVT::i32, ++/*358070*/ OPC_MoveParent, ++/*358071*/ OPC_MoveChild, 10, ++/*358073*/ OPC_CheckInteger, 1, ++/*358075*/ OPC_CheckType, MVT::i32, ++/*358077*/ OPC_MoveParent, ++/*358078*/ OPC_MoveChild, 11, ++/*358080*/ OPC_CheckInteger, 1, ++/*358082*/ OPC_CheckType, MVT::i32, ++/*358084*/ OPC_MoveParent, ++/*358085*/ OPC_MoveChild, 12, ++/*358087*/ OPC_CheckInteger, 1, ++/*358089*/ OPC_CheckType, MVT::i32, ++/*358091*/ OPC_MoveParent, ++/*358092*/ OPC_MoveChild, 13, ++/*358094*/ OPC_CheckInteger, 1, ++/*358096*/ OPC_CheckType, MVT::i32, ++/*358098*/ OPC_MoveParent, ++/*358099*/ OPC_MoveChild, 14, ++/*358101*/ OPC_CheckInteger, 1, ++/*358103*/ OPC_CheckType, MVT::i32, ++/*358105*/ OPC_MoveParent, ++/*358106*/ OPC_MoveChild, 15, ++/*358108*/ OPC_CheckInteger, 1, ++/*358110*/ OPC_CheckType, MVT::i32, ++/*358112*/ OPC_MoveParent, ++/*358113*/ OPC_CheckType, MVT::v16i8, ++/*358115*/ OPC_MoveParent, ++/*358116*/ OPC_CheckType, MVT::v16i8, ++/*358118*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*358120*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*358128*/ 0, /*End of Scope*/ ++/*358129*/ /*Scope*/ 62|128,3/*446*/, /*->358577*/ ++/*358131*/ OPC_CheckChild0Same, 0, ++/*358133*/ OPC_MoveChild1, ++/*358134*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*358137*/ OPC_Scope, 89|128,1/*217*/, /*->358357*/ // 2 children in Scope ++/*358140*/ OPC_MoveChild0, ++/*358141*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*358144*/ OPC_CheckChild0Integer, 1, ++/*358146*/ OPC_CheckChild0Type, MVT::i32, ++/*358148*/ OPC_CheckChild1Integer, 1, ++/*358150*/ OPC_CheckChild1Type, MVT::i32, ++/*358152*/ OPC_CheckChild2Integer, 1, ++/*358154*/ OPC_CheckChild2Type, MVT::i32, ++/*358156*/ OPC_CheckChild3Integer, 1, ++/*358158*/ OPC_CheckChild3Type, MVT::i32, ++/*358160*/ OPC_CheckChild4Integer, 1, ++/*358162*/ OPC_CheckChild4Type, MVT::i32, ++/*358164*/ OPC_MoveChild5, ++/*358165*/ OPC_CheckInteger, 1, ++/*358167*/ OPC_CheckType, MVT::i32, ++/*358169*/ OPC_MoveParent, ++/*358170*/ OPC_MoveChild6, ++/*358171*/ OPC_CheckInteger, 1, ++/*358173*/ OPC_CheckType, MVT::i32, ++/*358175*/ OPC_MoveParent, ++/*358176*/ OPC_MoveChild7, ++/*358177*/ OPC_CheckInteger, 1, ++/*358179*/ OPC_CheckType, MVT::i32, ++/*358181*/ OPC_MoveParent, ++/*358182*/ OPC_MoveChild, 8, ++/*358184*/ OPC_CheckInteger, 1, ++/*358186*/ OPC_CheckType, MVT::i32, ++/*358188*/ OPC_MoveParent, ++/*358189*/ OPC_MoveChild, 9, ++/*358191*/ OPC_CheckInteger, 1, ++/*358193*/ OPC_CheckType, MVT::i32, ++/*358195*/ OPC_MoveParent, ++/*358196*/ OPC_MoveChild, 10, ++/*358198*/ OPC_CheckInteger, 1, ++/*358200*/ OPC_CheckType, MVT::i32, ++/*358202*/ OPC_MoveParent, ++/*358203*/ OPC_MoveChild, 11, ++/*358205*/ OPC_CheckInteger, 1, ++/*358207*/ OPC_CheckType, MVT::i32, ++/*358209*/ OPC_MoveParent, ++/*358210*/ OPC_MoveChild, 12, ++/*358212*/ OPC_CheckInteger, 1, ++/*358214*/ OPC_CheckType, MVT::i32, ++/*358216*/ OPC_MoveParent, ++/*358217*/ OPC_MoveChild, 13, ++/*358219*/ OPC_CheckInteger, 1, ++/*358221*/ OPC_CheckType, MVT::i32, ++/*358223*/ OPC_MoveParent, ++/*358224*/ OPC_MoveChild, 14, ++/*358226*/ OPC_CheckInteger, 1, ++/*358228*/ OPC_CheckType, MVT::i32, ++/*358230*/ OPC_MoveParent, ++/*358231*/ OPC_MoveChild, 15, ++/*358233*/ OPC_CheckInteger, 1, ++/*358235*/ OPC_CheckType, MVT::i32, ++/*358237*/ OPC_MoveParent, ++/*358238*/ OPC_MoveParent, ++/*358239*/ OPC_CheckChild1Same, 1, ++/*358241*/ OPC_MoveParent, ++/*358242*/ OPC_MoveParent, ++/*358243*/ OPC_MoveParent, ++/*358244*/ OPC_MoveChild1, ++/*358245*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*358248*/ OPC_CheckChild0Integer, 1, ++/*358250*/ OPC_CheckChild0Type, MVT::i32, ++/*358252*/ OPC_CheckChild1Integer, 1, ++/*358254*/ OPC_CheckChild1Type, MVT::i32, ++/*358256*/ OPC_CheckChild2Integer, 1, ++/*358258*/ OPC_CheckChild2Type, MVT::i32, ++/*358260*/ OPC_CheckChild3Integer, 1, ++/*358262*/ OPC_CheckChild3Type, MVT::i32, ++/*358264*/ OPC_CheckChild4Integer, 1, ++/*358266*/ OPC_CheckChild4Type, MVT::i32, ++/*358268*/ OPC_MoveChild5, ++/*358269*/ OPC_CheckInteger, 1, ++/*358271*/ OPC_CheckType, MVT::i32, ++/*358273*/ OPC_MoveParent, ++/*358274*/ OPC_MoveChild6, ++/*358275*/ OPC_CheckInteger, 1, ++/*358277*/ OPC_CheckType, MVT::i32, ++/*358279*/ OPC_MoveParent, ++/*358280*/ OPC_MoveChild7, ++/*358281*/ OPC_CheckInteger, 1, ++/*358283*/ OPC_CheckType, MVT::i32, ++/*358285*/ OPC_MoveParent, ++/*358286*/ OPC_MoveChild, 8, ++/*358288*/ OPC_CheckInteger, 1, ++/*358290*/ OPC_CheckType, MVT::i32, ++/*358292*/ OPC_MoveParent, ++/*358293*/ OPC_MoveChild, 9, ++/*358295*/ OPC_CheckInteger, 1, ++/*358297*/ OPC_CheckType, MVT::i32, ++/*358299*/ OPC_MoveParent, ++/*358300*/ OPC_MoveChild, 10, ++/*358302*/ OPC_CheckInteger, 1, ++/*358304*/ OPC_CheckType, MVT::i32, ++/*358306*/ OPC_MoveParent, ++/*358307*/ OPC_MoveChild, 11, ++/*358309*/ OPC_CheckInteger, 1, ++/*358311*/ OPC_CheckType, MVT::i32, ++/*358313*/ OPC_MoveParent, ++/*358314*/ OPC_MoveChild, 12, ++/*358316*/ OPC_CheckInteger, 1, ++/*358318*/ OPC_CheckType, MVT::i32, ++/*358320*/ OPC_MoveParent, ++/*358321*/ OPC_MoveChild, 13, ++/*358323*/ OPC_CheckInteger, 1, ++/*358325*/ OPC_CheckType, MVT::i32, ++/*358327*/ OPC_MoveParent, ++/*358328*/ OPC_MoveChild, 14, ++/*358330*/ OPC_CheckInteger, 1, ++/*358332*/ OPC_CheckType, MVT::i32, ++/*358334*/ OPC_MoveParent, ++/*358335*/ OPC_MoveChild, 15, ++/*358337*/ OPC_CheckInteger, 1, ++/*358339*/ OPC_CheckType, MVT::i32, ++/*358341*/ OPC_MoveParent, ++/*358342*/ OPC_CheckType, MVT::v16i8, ++/*358344*/ OPC_MoveParent, ++/*358345*/ OPC_CheckType, MVT::v16i8, ++/*358347*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*358349*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*358357*/ /*Scope*/ 89|128,1/*217*/, /*->358576*/ ++/*358359*/ OPC_CheckChild0Same, 1, ++/*358361*/ OPC_MoveChild1, ++/*358362*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*358365*/ OPC_CheckChild0Integer, 1, ++/*358367*/ OPC_CheckChild0Type, MVT::i32, ++/*358369*/ OPC_CheckChild1Integer, 1, ++/*358371*/ OPC_CheckChild1Type, MVT::i32, ++/*358373*/ OPC_CheckChild2Integer, 1, ++/*358375*/ OPC_CheckChild2Type, MVT::i32, ++/*358377*/ OPC_CheckChild3Integer, 1, ++/*358379*/ OPC_CheckChild3Type, MVT::i32, ++/*358381*/ OPC_CheckChild4Integer, 1, ++/*358383*/ OPC_CheckChild4Type, MVT::i32, ++/*358385*/ OPC_MoveChild5, ++/*358386*/ OPC_CheckInteger, 1, ++/*358388*/ OPC_CheckType, MVT::i32, ++/*358390*/ OPC_MoveParent, ++/*358391*/ OPC_MoveChild6, ++/*358392*/ OPC_CheckInteger, 1, ++/*358394*/ OPC_CheckType, MVT::i32, ++/*358396*/ OPC_MoveParent, ++/*358397*/ OPC_MoveChild7, ++/*358398*/ OPC_CheckInteger, 1, ++/*358400*/ OPC_CheckType, MVT::i32, ++/*358402*/ OPC_MoveParent, ++/*358403*/ OPC_MoveChild, 8, ++/*358405*/ OPC_CheckInteger, 1, ++/*358407*/ OPC_CheckType, MVT::i32, ++/*358409*/ OPC_MoveParent, ++/*358410*/ OPC_MoveChild, 9, ++/*358412*/ OPC_CheckInteger, 1, ++/*358414*/ OPC_CheckType, MVT::i32, ++/*358416*/ OPC_MoveParent, ++/*358417*/ OPC_MoveChild, 10, ++/*358419*/ OPC_CheckInteger, 1, ++/*358421*/ OPC_CheckType, MVT::i32, ++/*358423*/ OPC_MoveParent, ++/*358424*/ OPC_MoveChild, 11, ++/*358426*/ OPC_CheckInteger, 1, ++/*358428*/ OPC_CheckType, MVT::i32, ++/*358430*/ OPC_MoveParent, ++/*358431*/ OPC_MoveChild, 12, ++/*358433*/ OPC_CheckInteger, 1, ++/*358435*/ OPC_CheckType, MVT::i32, ++/*358437*/ OPC_MoveParent, ++/*358438*/ OPC_MoveChild, 13, ++/*358440*/ OPC_CheckInteger, 1, ++/*358442*/ OPC_CheckType, MVT::i32, ++/*358444*/ OPC_MoveParent, ++/*358445*/ OPC_MoveChild, 14, ++/*358447*/ OPC_CheckInteger, 1, ++/*358449*/ OPC_CheckType, MVT::i32, ++/*358451*/ OPC_MoveParent, ++/*358452*/ OPC_MoveChild, 15, ++/*358454*/ OPC_CheckInteger, 1, ++/*358456*/ OPC_CheckType, MVT::i32, ++/*358458*/ OPC_MoveParent, ++/*358459*/ OPC_MoveParent, ++/*358460*/ OPC_MoveParent, ++/*358461*/ OPC_MoveParent, ++/*358462*/ OPC_MoveParent, ++/*358463*/ OPC_MoveChild1, ++/*358464*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*358467*/ OPC_CheckChild0Integer, 1, ++/*358469*/ OPC_CheckChild0Type, MVT::i32, ++/*358471*/ OPC_CheckChild1Integer, 1, ++/*358473*/ OPC_CheckChild1Type, MVT::i32, ++/*358475*/ OPC_CheckChild2Integer, 1, ++/*358477*/ OPC_CheckChild2Type, MVT::i32, ++/*358479*/ OPC_CheckChild3Integer, 1, ++/*358481*/ OPC_CheckChild3Type, MVT::i32, ++/*358483*/ OPC_CheckChild4Integer, 1, ++/*358485*/ OPC_CheckChild4Type, MVT::i32, ++/*358487*/ OPC_MoveChild5, ++/*358488*/ OPC_CheckInteger, 1, ++/*358490*/ OPC_CheckType, MVT::i32, ++/*358492*/ OPC_MoveParent, ++/*358493*/ OPC_MoveChild6, ++/*358494*/ OPC_CheckInteger, 1, ++/*358496*/ OPC_CheckType, MVT::i32, ++/*358498*/ OPC_MoveParent, ++/*358499*/ OPC_MoveChild7, ++/*358500*/ OPC_CheckInteger, 1, ++/*358502*/ OPC_CheckType, MVT::i32, ++/*358504*/ OPC_MoveParent, ++/*358505*/ OPC_MoveChild, 8, ++/*358507*/ OPC_CheckInteger, 1, ++/*358509*/ OPC_CheckType, MVT::i32, ++/*358511*/ OPC_MoveParent, ++/*358512*/ OPC_MoveChild, 9, ++/*358514*/ OPC_CheckInteger, 1, ++/*358516*/ OPC_CheckType, MVT::i32, ++/*358518*/ OPC_MoveParent, ++/*358519*/ OPC_MoveChild, 10, ++/*358521*/ OPC_CheckInteger, 1, ++/*358523*/ OPC_CheckType, MVT::i32, ++/*358525*/ OPC_MoveParent, ++/*358526*/ OPC_MoveChild, 11, ++/*358528*/ OPC_CheckInteger, 1, ++/*358530*/ OPC_CheckType, MVT::i32, ++/*358532*/ OPC_MoveParent, ++/*358533*/ OPC_MoveChild, 12, ++/*358535*/ OPC_CheckInteger, 1, ++/*358537*/ OPC_CheckType, MVT::i32, ++/*358539*/ OPC_MoveParent, ++/*358540*/ OPC_MoveChild, 13, ++/*358542*/ OPC_CheckInteger, 1, ++/*358544*/ OPC_CheckType, MVT::i32, ++/*358546*/ OPC_MoveParent, ++/*358547*/ OPC_MoveChild, 14, ++/*358549*/ OPC_CheckInteger, 1, ++/*358551*/ OPC_CheckType, MVT::i32, ++/*358553*/ OPC_MoveParent, ++/*358554*/ OPC_MoveChild, 15, ++/*358556*/ OPC_CheckInteger, 1, ++/*358558*/ OPC_CheckType, MVT::i32, ++/*358560*/ OPC_MoveParent, ++/*358561*/ OPC_CheckType, MVT::v16i8, ++/*358563*/ OPC_MoveParent, ++/*358564*/ OPC_CheckType, MVT::v16i8, ++/*358566*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*358568*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*358576*/ 0, /*End of Scope*/ ++/*358577*/ /*Scope*/ 62|128,3/*446*/, /*->359025*/ ++/*358579*/ OPC_CheckChild0Same, 1, ++/*358581*/ OPC_MoveChild1, ++/*358582*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*358585*/ OPC_Scope, 89|128,1/*217*/, /*->358805*/ // 2 children in Scope ++/*358588*/ OPC_MoveChild0, ++/*358589*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*358592*/ OPC_CheckChild0Integer, 1, ++/*358594*/ OPC_CheckChild0Type, MVT::i32, ++/*358596*/ OPC_CheckChild1Integer, 1, ++/*358598*/ OPC_CheckChild1Type, MVT::i32, ++/*358600*/ OPC_CheckChild2Integer, 1, ++/*358602*/ OPC_CheckChild2Type, MVT::i32, ++/*358604*/ OPC_CheckChild3Integer, 1, ++/*358606*/ OPC_CheckChild3Type, MVT::i32, ++/*358608*/ OPC_CheckChild4Integer, 1, ++/*358610*/ OPC_CheckChild4Type, MVT::i32, ++/*358612*/ OPC_MoveChild5, ++/*358613*/ OPC_CheckInteger, 1, ++/*358615*/ OPC_CheckType, MVT::i32, ++/*358617*/ OPC_MoveParent, ++/*358618*/ OPC_MoveChild6, ++/*358619*/ OPC_CheckInteger, 1, ++/*358621*/ OPC_CheckType, MVT::i32, ++/*358623*/ OPC_MoveParent, ++/*358624*/ OPC_MoveChild7, ++/*358625*/ OPC_CheckInteger, 1, ++/*358627*/ OPC_CheckType, MVT::i32, ++/*358629*/ OPC_MoveParent, ++/*358630*/ OPC_MoveChild, 8, ++/*358632*/ OPC_CheckInteger, 1, ++/*358634*/ OPC_CheckType, MVT::i32, ++/*358636*/ OPC_MoveParent, ++/*358637*/ OPC_MoveChild, 9, ++/*358639*/ OPC_CheckInteger, 1, ++/*358641*/ OPC_CheckType, MVT::i32, ++/*358643*/ OPC_MoveParent, ++/*358644*/ OPC_MoveChild, 10, ++/*358646*/ OPC_CheckInteger, 1, ++/*358648*/ OPC_CheckType, MVT::i32, ++/*358650*/ OPC_MoveParent, ++/*358651*/ OPC_MoveChild, 11, ++/*358653*/ OPC_CheckInteger, 1, ++/*358655*/ OPC_CheckType, MVT::i32, ++/*358657*/ OPC_MoveParent, ++/*358658*/ OPC_MoveChild, 12, ++/*358660*/ OPC_CheckInteger, 1, ++/*358662*/ OPC_CheckType, MVT::i32, ++/*358664*/ OPC_MoveParent, ++/*358665*/ OPC_MoveChild, 13, ++/*358667*/ OPC_CheckInteger, 1, ++/*358669*/ OPC_CheckType, MVT::i32, ++/*358671*/ OPC_MoveParent, ++/*358672*/ OPC_MoveChild, 14, ++/*358674*/ OPC_CheckInteger, 1, ++/*358676*/ OPC_CheckType, MVT::i32, ++/*358678*/ OPC_MoveParent, ++/*358679*/ OPC_MoveChild, 15, ++/*358681*/ OPC_CheckInteger, 1, ++/*358683*/ OPC_CheckType, MVT::i32, ++/*358685*/ OPC_MoveParent, ++/*358686*/ OPC_MoveParent, ++/*358687*/ OPC_CheckChild1Same, 0, ++/*358689*/ OPC_MoveParent, ++/*358690*/ OPC_MoveParent, ++/*358691*/ OPC_MoveParent, ++/*358692*/ OPC_MoveChild1, ++/*358693*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*358696*/ OPC_CheckChild0Integer, 1, ++/*358698*/ OPC_CheckChild0Type, MVT::i32, ++/*358700*/ OPC_CheckChild1Integer, 1, ++/*358702*/ OPC_CheckChild1Type, MVT::i32, ++/*358704*/ OPC_CheckChild2Integer, 1, ++/*358706*/ OPC_CheckChild2Type, MVT::i32, ++/*358708*/ OPC_CheckChild3Integer, 1, ++/*358710*/ OPC_CheckChild3Type, MVT::i32, ++/*358712*/ OPC_CheckChild4Integer, 1, ++/*358714*/ OPC_CheckChild4Type, MVT::i32, ++/*358716*/ OPC_MoveChild5, ++/*358717*/ OPC_CheckInteger, 1, ++/*358719*/ OPC_CheckType, MVT::i32, ++/*358721*/ OPC_MoveParent, ++/*358722*/ OPC_MoveChild6, ++/*358723*/ OPC_CheckInteger, 1, ++/*358725*/ OPC_CheckType, MVT::i32, ++/*358727*/ OPC_MoveParent, ++/*358728*/ OPC_MoveChild7, ++/*358729*/ OPC_CheckInteger, 1, ++/*358731*/ OPC_CheckType, MVT::i32, ++/*358733*/ OPC_MoveParent, ++/*358734*/ OPC_MoveChild, 8, ++/*358736*/ OPC_CheckInteger, 1, ++/*358738*/ OPC_CheckType, MVT::i32, ++/*358740*/ OPC_MoveParent, ++/*358741*/ OPC_MoveChild, 9, ++/*358743*/ OPC_CheckInteger, 1, ++/*358745*/ OPC_CheckType, MVT::i32, ++/*358747*/ OPC_MoveParent, ++/*358748*/ OPC_MoveChild, 10, ++/*358750*/ OPC_CheckInteger, 1, ++/*358752*/ OPC_CheckType, MVT::i32, ++/*358754*/ OPC_MoveParent, ++/*358755*/ OPC_MoveChild, 11, ++/*358757*/ OPC_CheckInteger, 1, ++/*358759*/ OPC_CheckType, MVT::i32, ++/*358761*/ OPC_MoveParent, ++/*358762*/ OPC_MoveChild, 12, ++/*358764*/ OPC_CheckInteger, 1, ++/*358766*/ OPC_CheckType, MVT::i32, ++/*358768*/ OPC_MoveParent, ++/*358769*/ OPC_MoveChild, 13, ++/*358771*/ OPC_CheckInteger, 1, ++/*358773*/ OPC_CheckType, MVT::i32, ++/*358775*/ OPC_MoveParent, ++/*358776*/ OPC_MoveChild, 14, ++/*358778*/ OPC_CheckInteger, 1, ++/*358780*/ OPC_CheckType, MVT::i32, ++/*358782*/ OPC_MoveParent, ++/*358783*/ OPC_MoveChild, 15, ++/*358785*/ OPC_CheckInteger, 1, ++/*358787*/ OPC_CheckType, MVT::i32, ++/*358789*/ OPC_MoveParent, ++/*358790*/ OPC_CheckType, MVT::v16i8, ++/*358792*/ OPC_MoveParent, ++/*358793*/ OPC_CheckType, MVT::v16i8, ++/*358795*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*358797*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*358805*/ /*Scope*/ 89|128,1/*217*/, /*->359024*/ ++/*358807*/ OPC_CheckChild0Same, 0, ++/*358809*/ OPC_MoveChild1, ++/*358810*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*358813*/ OPC_CheckChild0Integer, 1, ++/*358815*/ OPC_CheckChild0Type, MVT::i32, ++/*358817*/ OPC_CheckChild1Integer, 1, ++/*358819*/ OPC_CheckChild1Type, MVT::i32, ++/*358821*/ OPC_CheckChild2Integer, 1, ++/*358823*/ OPC_CheckChild2Type, MVT::i32, ++/*358825*/ OPC_CheckChild3Integer, 1, ++/*358827*/ OPC_CheckChild3Type, MVT::i32, ++/*358829*/ OPC_CheckChild4Integer, 1, ++/*358831*/ OPC_CheckChild4Type, MVT::i32, ++/*358833*/ OPC_MoveChild5, ++/*358834*/ OPC_CheckInteger, 1, ++/*358836*/ OPC_CheckType, MVT::i32, ++/*358838*/ OPC_MoveParent, ++/*358839*/ OPC_MoveChild6, ++/*358840*/ OPC_CheckInteger, 1, ++/*358842*/ OPC_CheckType, MVT::i32, ++/*358844*/ OPC_MoveParent, ++/*358845*/ OPC_MoveChild7, ++/*358846*/ OPC_CheckInteger, 1, ++/*358848*/ OPC_CheckType, MVT::i32, ++/*358850*/ OPC_MoveParent, ++/*358851*/ OPC_MoveChild, 8, ++/*358853*/ OPC_CheckInteger, 1, ++/*358855*/ OPC_CheckType, MVT::i32, ++/*358857*/ OPC_MoveParent, ++/*358858*/ OPC_MoveChild, 9, ++/*358860*/ OPC_CheckInteger, 1, ++/*358862*/ OPC_CheckType, MVT::i32, ++/*358864*/ OPC_MoveParent, ++/*358865*/ OPC_MoveChild, 10, ++/*358867*/ OPC_CheckInteger, 1, ++/*358869*/ OPC_CheckType, MVT::i32, ++/*358871*/ OPC_MoveParent, ++/*358872*/ OPC_MoveChild, 11, ++/*358874*/ OPC_CheckInteger, 1, ++/*358876*/ OPC_CheckType, MVT::i32, ++/*358878*/ OPC_MoveParent, ++/*358879*/ OPC_MoveChild, 12, ++/*358881*/ OPC_CheckInteger, 1, ++/*358883*/ OPC_CheckType, MVT::i32, ++/*358885*/ OPC_MoveParent, ++/*358886*/ OPC_MoveChild, 13, ++/*358888*/ OPC_CheckInteger, 1, ++/*358890*/ OPC_CheckType, MVT::i32, ++/*358892*/ OPC_MoveParent, ++/*358893*/ OPC_MoveChild, 14, ++/*358895*/ OPC_CheckInteger, 1, ++/*358897*/ OPC_CheckType, MVT::i32, ++/*358899*/ OPC_MoveParent, ++/*358900*/ OPC_MoveChild, 15, ++/*358902*/ OPC_CheckInteger, 1, ++/*358904*/ OPC_CheckType, MVT::i32, ++/*358906*/ OPC_MoveParent, ++/*358907*/ OPC_MoveParent, ++/*358908*/ OPC_MoveParent, ++/*358909*/ OPC_MoveParent, ++/*358910*/ OPC_MoveParent, ++/*358911*/ OPC_MoveChild1, ++/*358912*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*358915*/ OPC_CheckChild0Integer, 1, ++/*358917*/ OPC_CheckChild0Type, MVT::i32, ++/*358919*/ OPC_CheckChild1Integer, 1, ++/*358921*/ OPC_CheckChild1Type, MVT::i32, ++/*358923*/ OPC_CheckChild2Integer, 1, ++/*358925*/ OPC_CheckChild2Type, MVT::i32, ++/*358927*/ OPC_CheckChild3Integer, 1, ++/*358929*/ OPC_CheckChild3Type, MVT::i32, ++/*358931*/ OPC_CheckChild4Integer, 1, ++/*358933*/ OPC_CheckChild4Type, MVT::i32, ++/*358935*/ OPC_MoveChild5, ++/*358936*/ OPC_CheckInteger, 1, ++/*358938*/ OPC_CheckType, MVT::i32, ++/*358940*/ OPC_MoveParent, ++/*358941*/ OPC_MoveChild6, ++/*358942*/ OPC_CheckInteger, 1, ++/*358944*/ OPC_CheckType, MVT::i32, ++/*358946*/ OPC_MoveParent, ++/*358947*/ OPC_MoveChild7, ++/*358948*/ OPC_CheckInteger, 1, ++/*358950*/ OPC_CheckType, MVT::i32, ++/*358952*/ OPC_MoveParent, ++/*358953*/ OPC_MoveChild, 8, ++/*358955*/ OPC_CheckInteger, 1, ++/*358957*/ OPC_CheckType, MVT::i32, ++/*358959*/ OPC_MoveParent, ++/*358960*/ OPC_MoveChild, 9, ++/*358962*/ OPC_CheckInteger, 1, ++/*358964*/ OPC_CheckType, MVT::i32, ++/*358966*/ OPC_MoveParent, ++/*358967*/ OPC_MoveChild, 10, ++/*358969*/ OPC_CheckInteger, 1, ++/*358971*/ OPC_CheckType, MVT::i32, ++/*358973*/ OPC_MoveParent, ++/*358974*/ OPC_MoveChild, 11, ++/*358976*/ OPC_CheckInteger, 1, ++/*358978*/ OPC_CheckType, MVT::i32, ++/*358980*/ OPC_MoveParent, ++/*358981*/ OPC_MoveChild, 12, ++/*358983*/ OPC_CheckInteger, 1, ++/*358985*/ OPC_CheckType, MVT::i32, ++/*358987*/ OPC_MoveParent, ++/*358988*/ OPC_MoveChild, 13, ++/*358990*/ OPC_CheckInteger, 1, ++/*358992*/ OPC_CheckType, MVT::i32, ++/*358994*/ OPC_MoveParent, ++/*358995*/ OPC_MoveChild, 14, ++/*358997*/ OPC_CheckInteger, 1, ++/*358999*/ OPC_CheckType, MVT::i32, ++/*359001*/ OPC_MoveParent, ++/*359002*/ OPC_MoveChild, 15, ++/*359004*/ OPC_CheckInteger, 1, ++/*359006*/ OPC_CheckType, MVT::i32, ++/*359008*/ OPC_MoveParent, ++/*359009*/ OPC_CheckType, MVT::v16i8, ++/*359011*/ OPC_MoveParent, ++/*359012*/ OPC_CheckType, MVT::v16i8, ++/*359014*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*359016*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*359024*/ 0, /*End of Scope*/ ++/*359025*/ /*Scope*/ 91|128,2/*347*/, /*->359374*/ ++/*359027*/ OPC_MoveChild0, ++/*359028*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*359031*/ OPC_CheckChild0Integer, 1, ++/*359033*/ OPC_CheckChild0Type, MVT::i32, ++/*359035*/ OPC_CheckChild1Integer, 1, ++/*359037*/ OPC_CheckChild1Type, MVT::i32, ++/*359039*/ OPC_CheckChild2Integer, 1, ++/*359041*/ OPC_CheckChild2Type, MVT::i32, ++/*359043*/ OPC_CheckChild3Integer, 1, ++/*359045*/ OPC_CheckChild3Type, MVT::i32, ++/*359047*/ OPC_CheckChild4Integer, 1, ++/*359049*/ OPC_CheckChild4Type, MVT::i32, ++/*359051*/ OPC_MoveChild5, ++/*359052*/ OPC_CheckInteger, 1, ++/*359054*/ OPC_CheckType, MVT::i32, ++/*359056*/ OPC_MoveParent, ++/*359057*/ OPC_MoveChild6, ++/*359058*/ OPC_CheckInteger, 1, ++/*359060*/ OPC_CheckType, MVT::i32, ++/*359062*/ OPC_MoveParent, ++/*359063*/ OPC_MoveChild7, ++/*359064*/ OPC_CheckInteger, 1, ++/*359066*/ OPC_CheckType, MVT::i32, ++/*359068*/ OPC_MoveParent, ++/*359069*/ OPC_MoveChild, 8, ++/*359071*/ OPC_CheckInteger, 1, ++/*359073*/ OPC_CheckType, MVT::i32, ++/*359075*/ OPC_MoveParent, ++/*359076*/ OPC_MoveChild, 9, ++/*359078*/ OPC_CheckInteger, 1, ++/*359080*/ OPC_CheckType, MVT::i32, ++/*359082*/ OPC_MoveParent, ++/*359083*/ OPC_MoveChild, 10, ++/*359085*/ OPC_CheckInteger, 1, ++/*359087*/ OPC_CheckType, MVT::i32, ++/*359089*/ OPC_MoveParent, ++/*359090*/ OPC_MoveChild, 11, ++/*359092*/ OPC_CheckInteger, 1, ++/*359094*/ OPC_CheckType, MVT::i32, ++/*359096*/ OPC_MoveParent, ++/*359097*/ OPC_MoveChild, 12, ++/*359099*/ OPC_CheckInteger, 1, ++/*359101*/ OPC_CheckType, MVT::i32, ++/*359103*/ OPC_MoveParent, ++/*359104*/ OPC_MoveChild, 13, ++/*359106*/ OPC_CheckInteger, 1, ++/*359108*/ OPC_CheckType, MVT::i32, ++/*359110*/ OPC_MoveParent, ++/*359111*/ OPC_MoveChild, 14, ++/*359113*/ OPC_CheckInteger, 1, ++/*359115*/ OPC_CheckType, MVT::i32, ++/*359117*/ OPC_MoveParent, ++/*359118*/ OPC_MoveChild, 15, ++/*359120*/ OPC_CheckInteger, 1, ++/*359122*/ OPC_CheckType, MVT::i32, ++/*359124*/ OPC_MoveParent, ++/*359125*/ OPC_MoveParent, ++/*359126*/ OPC_MoveChild1, ++/*359127*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*359130*/ OPC_Scope, 120, /*->359252*/ // 2 children in Scope ++/*359132*/ OPC_CheckChild0Same, 1, ++/*359134*/ OPC_CheckChild1Same, 0, ++/*359136*/ OPC_MoveParent, ++/*359137*/ OPC_MoveParent, ++/*359138*/ OPC_MoveParent, ++/*359139*/ OPC_MoveChild1, ++/*359140*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*359143*/ OPC_CheckChild0Integer, 1, ++/*359145*/ OPC_CheckChild0Type, MVT::i32, ++/*359147*/ OPC_CheckChild1Integer, 1, ++/*359149*/ OPC_CheckChild1Type, MVT::i32, ++/*359151*/ OPC_CheckChild2Integer, 1, ++/*359153*/ OPC_CheckChild2Type, MVT::i32, ++/*359155*/ OPC_CheckChild3Integer, 1, ++/*359157*/ OPC_CheckChild3Type, MVT::i32, ++/*359159*/ OPC_CheckChild4Integer, 1, ++/*359161*/ OPC_CheckChild4Type, MVT::i32, ++/*359163*/ OPC_MoveChild5, ++/*359164*/ OPC_CheckInteger, 1, ++/*359166*/ OPC_CheckType, MVT::i32, ++/*359168*/ OPC_MoveParent, ++/*359169*/ OPC_MoveChild6, ++/*359170*/ OPC_CheckInteger, 1, ++/*359172*/ OPC_CheckType, MVT::i32, ++/*359174*/ OPC_MoveParent, ++/*359175*/ OPC_MoveChild7, ++/*359176*/ OPC_CheckInteger, 1, ++/*359178*/ OPC_CheckType, MVT::i32, ++/*359180*/ OPC_MoveParent, ++/*359181*/ OPC_MoveChild, 8, ++/*359183*/ OPC_CheckInteger, 1, ++/*359185*/ OPC_CheckType, MVT::i32, ++/*359187*/ OPC_MoveParent, ++/*359188*/ OPC_MoveChild, 9, ++/*359190*/ OPC_CheckInteger, 1, ++/*359192*/ OPC_CheckType, MVT::i32, ++/*359194*/ OPC_MoveParent, ++/*359195*/ OPC_MoveChild, 10, ++/*359197*/ OPC_CheckInteger, 1, ++/*359199*/ OPC_CheckType, MVT::i32, ++/*359201*/ OPC_MoveParent, ++/*359202*/ OPC_MoveChild, 11, ++/*359204*/ OPC_CheckInteger, 1, ++/*359206*/ OPC_CheckType, MVT::i32, ++/*359208*/ OPC_MoveParent, ++/*359209*/ OPC_MoveChild, 12, ++/*359211*/ OPC_CheckInteger, 1, ++/*359213*/ OPC_CheckType, MVT::i32, ++/*359215*/ OPC_MoveParent, ++/*359216*/ OPC_MoveChild, 13, ++/*359218*/ OPC_CheckInteger, 1, ++/*359220*/ OPC_CheckType, MVT::i32, ++/*359222*/ OPC_MoveParent, ++/*359223*/ OPC_MoveChild, 14, ++/*359225*/ OPC_CheckInteger, 1, ++/*359227*/ OPC_CheckType, MVT::i32, ++/*359229*/ OPC_MoveParent, ++/*359230*/ OPC_MoveChild, 15, ++/*359232*/ OPC_CheckInteger, 1, ++/*359234*/ OPC_CheckType, MVT::i32, ++/*359236*/ OPC_MoveParent, ++/*359237*/ OPC_CheckType, MVT::v16i8, ++/*359239*/ OPC_MoveParent, ++/*359240*/ OPC_CheckType, MVT::v16i8, ++/*359242*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*359244*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*359252*/ /*Scope*/ 120, /*->359373*/ ++/*359253*/ OPC_CheckChild0Same, 0, ++/*359255*/ OPC_CheckChild1Same, 1, ++/*359257*/ OPC_MoveParent, ++/*359258*/ OPC_MoveParent, ++/*359259*/ OPC_MoveParent, ++/*359260*/ OPC_MoveChild1, ++/*359261*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*359264*/ OPC_CheckChild0Integer, 1, ++/*359266*/ OPC_CheckChild0Type, MVT::i32, ++/*359268*/ OPC_CheckChild1Integer, 1, ++/*359270*/ OPC_CheckChild1Type, MVT::i32, ++/*359272*/ OPC_CheckChild2Integer, 1, ++/*359274*/ OPC_CheckChild2Type, MVT::i32, ++/*359276*/ OPC_CheckChild3Integer, 1, ++/*359278*/ OPC_CheckChild3Type, MVT::i32, ++/*359280*/ OPC_CheckChild4Integer, 1, ++/*359282*/ OPC_CheckChild4Type, MVT::i32, ++/*359284*/ OPC_MoveChild5, ++/*359285*/ OPC_CheckInteger, 1, ++/*359287*/ OPC_CheckType, MVT::i32, ++/*359289*/ OPC_MoveParent, ++/*359290*/ OPC_MoveChild6, ++/*359291*/ OPC_CheckInteger, 1, ++/*359293*/ OPC_CheckType, MVT::i32, ++/*359295*/ OPC_MoveParent, ++/*359296*/ OPC_MoveChild7, ++/*359297*/ OPC_CheckInteger, 1, ++/*359299*/ OPC_CheckType, MVT::i32, ++/*359301*/ OPC_MoveParent, ++/*359302*/ OPC_MoveChild, 8, ++/*359304*/ OPC_CheckInteger, 1, ++/*359306*/ OPC_CheckType, MVT::i32, ++/*359308*/ OPC_MoveParent, ++/*359309*/ OPC_MoveChild, 9, ++/*359311*/ OPC_CheckInteger, 1, ++/*359313*/ OPC_CheckType, MVT::i32, ++/*359315*/ OPC_MoveParent, ++/*359316*/ OPC_MoveChild, 10, ++/*359318*/ OPC_CheckInteger, 1, ++/*359320*/ OPC_CheckType, MVT::i32, ++/*359322*/ OPC_MoveParent, ++/*359323*/ OPC_MoveChild, 11, ++/*359325*/ OPC_CheckInteger, 1, ++/*359327*/ OPC_CheckType, MVT::i32, ++/*359329*/ OPC_MoveParent, ++/*359330*/ OPC_MoveChild, 12, ++/*359332*/ OPC_CheckInteger, 1, ++/*359334*/ OPC_CheckType, MVT::i32, ++/*359336*/ OPC_MoveParent, ++/*359337*/ OPC_MoveChild, 13, ++/*359339*/ OPC_CheckInteger, 1, ++/*359341*/ OPC_CheckType, MVT::i32, ++/*359343*/ OPC_MoveParent, ++/*359344*/ OPC_MoveChild, 14, ++/*359346*/ OPC_CheckInteger, 1, ++/*359348*/ OPC_CheckType, MVT::i32, ++/*359350*/ OPC_MoveParent, ++/*359351*/ OPC_MoveChild, 15, ++/*359353*/ OPC_CheckInteger, 1, ++/*359355*/ OPC_CheckType, MVT::i32, ++/*359357*/ OPC_MoveParent, ++/*359358*/ OPC_CheckType, MVT::v16i8, ++/*359360*/ OPC_MoveParent, ++/*359361*/ OPC_CheckType, MVT::v16i8, ++/*359363*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*359365*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*359373*/ 0, /*End of Scope*/ ++/*359374*/ 0, /*End of Scope*/ ++/*359375*/ /*Scope*/ 101|128,21/*2789*/, /*->362166*/ ++/*359377*/ OPC_RecordChild0, // #1 = $a ++/*359378*/ OPC_MoveChild1, ++/*359379*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*359382*/ OPC_CheckChild0Integer, 1, ++/*359384*/ OPC_CheckChild0Type, MVT::i32, ++/*359386*/ OPC_CheckChild1Integer, 1, ++/*359388*/ OPC_CheckChild1Type, MVT::i32, ++/*359390*/ OPC_CheckChild2Integer, 1, ++/*359392*/ OPC_CheckChild2Type, MVT::i32, ++/*359394*/ OPC_CheckChild3Integer, 1, ++/*359396*/ OPC_CheckChild3Type, MVT::i32, ++/*359398*/ OPC_CheckChild4Integer, 1, ++/*359400*/ OPC_CheckChild4Type, MVT::i32, ++/*359402*/ OPC_MoveChild5, ++/*359403*/ OPC_CheckInteger, 1, ++/*359405*/ OPC_CheckType, MVT::i32, ++/*359407*/ OPC_MoveParent, ++/*359408*/ OPC_MoveChild6, ++/*359409*/ OPC_CheckInteger, 1, ++/*359411*/ OPC_CheckType, MVT::i32, ++/*359413*/ OPC_MoveParent, ++/*359414*/ OPC_MoveChild7, ++/*359415*/ OPC_CheckInteger, 1, ++/*359417*/ OPC_CheckType, MVT::i32, ++/*359419*/ OPC_MoveParent, ++/*359420*/ OPC_MoveChild, 8, ++/*359422*/ OPC_CheckInteger, 1, ++/*359424*/ OPC_CheckType, MVT::i32, ++/*359426*/ OPC_MoveParent, ++/*359427*/ OPC_MoveChild, 9, ++/*359429*/ OPC_CheckInteger, 1, ++/*359431*/ OPC_CheckType, MVT::i32, ++/*359433*/ OPC_MoveParent, ++/*359434*/ OPC_MoveChild, 10, ++/*359436*/ OPC_CheckInteger, 1, ++/*359438*/ OPC_CheckType, MVT::i32, ++/*359440*/ OPC_MoveParent, ++/*359441*/ OPC_MoveChild, 11, ++/*359443*/ OPC_CheckInteger, 1, ++/*359445*/ OPC_CheckType, MVT::i32, ++/*359447*/ OPC_MoveParent, ++/*359448*/ OPC_MoveChild, 12, ++/*359450*/ OPC_CheckInteger, 1, ++/*359452*/ OPC_CheckType, MVT::i32, ++/*359454*/ OPC_MoveParent, ++/*359455*/ OPC_MoveChild, 13, ++/*359457*/ OPC_CheckInteger, 1, ++/*359459*/ OPC_CheckType, MVT::i32, ++/*359461*/ OPC_MoveParent, ++/*359462*/ OPC_MoveChild, 14, ++/*359464*/ OPC_CheckInteger, 1, ++/*359466*/ OPC_CheckType, MVT::i32, ++/*359468*/ OPC_MoveParent, ++/*359469*/ OPC_MoveChild, 15, ++/*359471*/ OPC_CheckInteger, 1, ++/*359473*/ OPC_CheckType, MVT::i32, ++/*359475*/ OPC_MoveParent, ++/*359476*/ OPC_MoveParent, ++/*359477*/ OPC_MoveParent, ++/*359478*/ OPC_MoveParent, ++/*359479*/ OPC_MoveChild1, ++/*359480*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*359483*/ OPC_CheckChild0Integer, 7, ++/*359485*/ OPC_CheckChild0Type, MVT::i32, ++/*359487*/ OPC_CheckChild1Integer, 7, ++/*359489*/ OPC_CheckChild1Type, MVT::i32, ++/*359491*/ OPC_CheckChild2Integer, 7, ++/*359493*/ OPC_CheckChild2Type, MVT::i32, ++/*359495*/ OPC_CheckChild3Integer, 7, ++/*359497*/ OPC_CheckChild3Type, MVT::i32, ++/*359499*/ OPC_CheckChild4Integer, 7, ++/*359501*/ OPC_CheckChild4Type, MVT::i32, ++/*359503*/ OPC_MoveChild5, ++/*359504*/ OPC_CheckInteger, 7, ++/*359506*/ OPC_CheckType, MVT::i32, ++/*359508*/ OPC_MoveParent, ++/*359509*/ OPC_MoveChild6, ++/*359510*/ OPC_CheckInteger, 7, ++/*359512*/ OPC_CheckType, MVT::i32, ++/*359514*/ OPC_MoveParent, ++/*359515*/ OPC_MoveChild7, ++/*359516*/ OPC_CheckInteger, 7, ++/*359518*/ OPC_CheckType, MVT::i32, ++/*359520*/ OPC_MoveParent, ++/*359521*/ OPC_MoveChild, 8, ++/*359523*/ OPC_CheckInteger, 7, ++/*359525*/ OPC_CheckType, MVT::i32, ++/*359527*/ OPC_MoveParent, ++/*359528*/ OPC_MoveChild, 9, ++/*359530*/ OPC_CheckInteger, 7, ++/*359532*/ OPC_CheckType, MVT::i32, ++/*359534*/ OPC_MoveParent, ++/*359535*/ OPC_MoveChild, 10, ++/*359537*/ OPC_CheckInteger, 7, ++/*359539*/ OPC_CheckType, MVT::i32, ++/*359541*/ OPC_MoveParent, ++/*359542*/ OPC_MoveChild, 11, ++/*359544*/ OPC_CheckInteger, 7, ++/*359546*/ OPC_CheckType, MVT::i32, ++/*359548*/ OPC_MoveParent, ++/*359549*/ OPC_MoveChild, 12, ++/*359551*/ OPC_CheckInteger, 7, ++/*359553*/ OPC_CheckType, MVT::i32, ++/*359555*/ OPC_MoveParent, ++/*359556*/ OPC_MoveChild, 13, ++/*359558*/ OPC_CheckInteger, 7, ++/*359560*/ OPC_CheckType, MVT::i32, ++/*359562*/ OPC_MoveParent, ++/*359563*/ OPC_MoveChild, 14, ++/*359565*/ OPC_CheckInteger, 7, ++/*359567*/ OPC_CheckType, MVT::i32, ++/*359569*/ OPC_MoveParent, ++/*359570*/ OPC_MoveChild, 15, ++/*359572*/ OPC_CheckInteger, 7, ++/*359574*/ OPC_CheckType, MVT::i32, ++/*359576*/ OPC_MoveParent, ++/*359577*/ OPC_CheckType, MVT::v16i8, ++/*359579*/ OPC_MoveParent, ++/*359580*/ OPC_MoveParent, ++/*359581*/ OPC_MoveChild1, ++/*359582*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*359585*/ OPC_Scope, 52|128,10/*1332*/, /*->360920*/ // 4 children in Scope ++/*359588*/ OPC_MoveChild0, ++/*359589*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*359592*/ OPC_Scope, 91|128,1/*219*/, /*->359814*/ // 6 children in Scope ++/*359595*/ OPC_MoveChild0, ++/*359596*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*359599*/ OPC_CheckChild0Integer, 1, ++/*359601*/ OPC_CheckChild0Type, MVT::i32, ++/*359603*/ OPC_CheckChild1Integer, 1, ++/*359605*/ OPC_CheckChild1Type, MVT::i32, ++/*359607*/ OPC_CheckChild2Integer, 1, ++/*359609*/ OPC_CheckChild2Type, MVT::i32, ++/*359611*/ OPC_CheckChild3Integer, 1, ++/*359613*/ OPC_CheckChild3Type, MVT::i32, ++/*359615*/ OPC_CheckChild4Integer, 1, ++/*359617*/ OPC_CheckChild4Type, MVT::i32, ++/*359619*/ OPC_MoveChild5, ++/*359620*/ OPC_CheckInteger, 1, ++/*359622*/ OPC_CheckType, MVT::i32, ++/*359624*/ OPC_MoveParent, ++/*359625*/ OPC_MoveChild6, ++/*359626*/ OPC_CheckInteger, 1, ++/*359628*/ OPC_CheckType, MVT::i32, ++/*359630*/ OPC_MoveParent, ++/*359631*/ OPC_MoveChild7, ++/*359632*/ OPC_CheckInteger, 1, ++/*359634*/ OPC_CheckType, MVT::i32, ++/*359636*/ OPC_MoveParent, ++/*359637*/ OPC_MoveChild, 8, ++/*359639*/ OPC_CheckInteger, 1, ++/*359641*/ OPC_CheckType, MVT::i32, ++/*359643*/ OPC_MoveParent, ++/*359644*/ OPC_MoveChild, 9, ++/*359646*/ OPC_CheckInteger, 1, ++/*359648*/ OPC_CheckType, MVT::i32, ++/*359650*/ OPC_MoveParent, ++/*359651*/ OPC_MoveChild, 10, ++/*359653*/ OPC_CheckInteger, 1, ++/*359655*/ OPC_CheckType, MVT::i32, ++/*359657*/ OPC_MoveParent, ++/*359658*/ OPC_MoveChild, 11, ++/*359660*/ OPC_CheckInteger, 1, ++/*359662*/ OPC_CheckType, MVT::i32, ++/*359664*/ OPC_MoveParent, ++/*359665*/ OPC_MoveChild, 12, ++/*359667*/ OPC_CheckInteger, 1, ++/*359669*/ OPC_CheckType, MVT::i32, ++/*359671*/ OPC_MoveParent, ++/*359672*/ OPC_MoveChild, 13, ++/*359674*/ OPC_CheckInteger, 1, ++/*359676*/ OPC_CheckType, MVT::i32, ++/*359678*/ OPC_MoveParent, ++/*359679*/ OPC_MoveChild, 14, ++/*359681*/ OPC_CheckInteger, 1, ++/*359683*/ OPC_CheckType, MVT::i32, ++/*359685*/ OPC_MoveParent, ++/*359686*/ OPC_MoveChild, 15, ++/*359688*/ OPC_CheckInteger, 1, ++/*359690*/ OPC_CheckType, MVT::i32, ++/*359692*/ OPC_MoveParent, ++/*359693*/ OPC_MoveParent, ++/*359694*/ OPC_CheckChild1Same, 1, ++/*359696*/ OPC_MoveParent, ++/*359697*/ OPC_CheckChild1Same, 0, ++/*359699*/ OPC_MoveParent, ++/*359700*/ OPC_MoveParent, ++/*359701*/ OPC_MoveChild1, ++/*359702*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*359705*/ OPC_CheckChild0Integer, 1, ++/*359707*/ OPC_CheckChild0Type, MVT::i32, ++/*359709*/ OPC_CheckChild1Integer, 1, ++/*359711*/ OPC_CheckChild1Type, MVT::i32, ++/*359713*/ OPC_CheckChild2Integer, 1, ++/*359715*/ OPC_CheckChild2Type, MVT::i32, ++/*359717*/ OPC_CheckChild3Integer, 1, ++/*359719*/ OPC_CheckChild3Type, MVT::i32, ++/*359721*/ OPC_CheckChild4Integer, 1, ++/*359723*/ OPC_CheckChild4Type, MVT::i32, ++/*359725*/ OPC_MoveChild5, ++/*359726*/ OPC_CheckInteger, 1, ++/*359728*/ OPC_CheckType, MVT::i32, ++/*359730*/ OPC_MoveParent, ++/*359731*/ OPC_MoveChild6, ++/*359732*/ OPC_CheckInteger, 1, ++/*359734*/ OPC_CheckType, MVT::i32, ++/*359736*/ OPC_MoveParent, ++/*359737*/ OPC_MoveChild7, ++/*359738*/ OPC_CheckInteger, 1, ++/*359740*/ OPC_CheckType, MVT::i32, ++/*359742*/ OPC_MoveParent, ++/*359743*/ OPC_MoveChild, 8, ++/*359745*/ OPC_CheckInteger, 1, ++/*359747*/ OPC_CheckType, MVT::i32, ++/*359749*/ OPC_MoveParent, ++/*359750*/ OPC_MoveChild, 9, ++/*359752*/ OPC_CheckInteger, 1, ++/*359754*/ OPC_CheckType, MVT::i32, ++/*359756*/ OPC_MoveParent, ++/*359757*/ OPC_MoveChild, 10, ++/*359759*/ OPC_CheckInteger, 1, ++/*359761*/ OPC_CheckType, MVT::i32, ++/*359763*/ OPC_MoveParent, ++/*359764*/ OPC_MoveChild, 11, ++/*359766*/ OPC_CheckInteger, 1, ++/*359768*/ OPC_CheckType, MVT::i32, ++/*359770*/ OPC_MoveParent, ++/*359771*/ OPC_MoveChild, 12, ++/*359773*/ OPC_CheckInteger, 1, ++/*359775*/ OPC_CheckType, MVT::i32, ++/*359777*/ OPC_MoveParent, ++/*359778*/ OPC_MoveChild, 13, ++/*359780*/ OPC_CheckInteger, 1, ++/*359782*/ OPC_CheckType, MVT::i32, ++/*359784*/ OPC_MoveParent, ++/*359785*/ OPC_MoveChild, 14, ++/*359787*/ OPC_CheckInteger, 1, ++/*359789*/ OPC_CheckType, MVT::i32, ++/*359791*/ OPC_MoveParent, ++/*359792*/ OPC_MoveChild, 15, ++/*359794*/ OPC_CheckInteger, 1, ++/*359796*/ OPC_CheckType, MVT::i32, ++/*359798*/ OPC_MoveParent, ++/*359799*/ OPC_CheckType, MVT::v16i8, ++/*359801*/ OPC_MoveParent, ++/*359802*/ OPC_CheckType, MVT::v16i8, ++/*359804*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*359806*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a), LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*359814*/ /*Scope*/ 91|128,1/*219*/, /*->360035*/ ++/*359816*/ OPC_CheckChild0Same, 1, ++/*359818*/ OPC_MoveChild1, ++/*359819*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*359822*/ OPC_CheckChild0Integer, 1, ++/*359824*/ OPC_CheckChild0Type, MVT::i32, ++/*359826*/ OPC_CheckChild1Integer, 1, ++/*359828*/ OPC_CheckChild1Type, MVT::i32, ++/*359830*/ OPC_CheckChild2Integer, 1, ++/*359832*/ OPC_CheckChild2Type, MVT::i32, ++/*359834*/ OPC_CheckChild3Integer, 1, ++/*359836*/ OPC_CheckChild3Type, MVT::i32, ++/*359838*/ OPC_CheckChild4Integer, 1, ++/*359840*/ OPC_CheckChild4Type, MVT::i32, ++/*359842*/ OPC_MoveChild5, ++/*359843*/ OPC_CheckInteger, 1, ++/*359845*/ OPC_CheckType, MVT::i32, ++/*359847*/ OPC_MoveParent, ++/*359848*/ OPC_MoveChild6, ++/*359849*/ OPC_CheckInteger, 1, ++/*359851*/ OPC_CheckType, MVT::i32, ++/*359853*/ OPC_MoveParent, ++/*359854*/ OPC_MoveChild7, ++/*359855*/ OPC_CheckInteger, 1, ++/*359857*/ OPC_CheckType, MVT::i32, ++/*359859*/ OPC_MoveParent, ++/*359860*/ OPC_MoveChild, 8, ++/*359862*/ OPC_CheckInteger, 1, ++/*359864*/ OPC_CheckType, MVT::i32, ++/*359866*/ OPC_MoveParent, ++/*359867*/ OPC_MoveChild, 9, ++/*359869*/ OPC_CheckInteger, 1, ++/*359871*/ OPC_CheckType, MVT::i32, ++/*359873*/ OPC_MoveParent, ++/*359874*/ OPC_MoveChild, 10, ++/*359876*/ OPC_CheckInteger, 1, ++/*359878*/ OPC_CheckType, MVT::i32, ++/*359880*/ OPC_MoveParent, ++/*359881*/ OPC_MoveChild, 11, ++/*359883*/ OPC_CheckInteger, 1, ++/*359885*/ OPC_CheckType, MVT::i32, ++/*359887*/ OPC_MoveParent, ++/*359888*/ OPC_MoveChild, 12, ++/*359890*/ OPC_CheckInteger, 1, ++/*359892*/ OPC_CheckType, MVT::i32, ++/*359894*/ OPC_MoveParent, ++/*359895*/ OPC_MoveChild, 13, ++/*359897*/ OPC_CheckInteger, 1, ++/*359899*/ OPC_CheckType, MVT::i32, ++/*359901*/ OPC_MoveParent, ++/*359902*/ OPC_MoveChild, 14, ++/*359904*/ OPC_CheckInteger, 1, ++/*359906*/ OPC_CheckType, MVT::i32, ++/*359908*/ OPC_MoveParent, ++/*359909*/ OPC_MoveChild, 15, ++/*359911*/ OPC_CheckInteger, 1, ++/*359913*/ OPC_CheckType, MVT::i32, ++/*359915*/ OPC_MoveParent, ++/*359916*/ OPC_MoveParent, ++/*359917*/ OPC_MoveParent, ++/*359918*/ OPC_CheckChild1Same, 0, ++/*359920*/ OPC_MoveParent, ++/*359921*/ OPC_MoveParent, ++/*359922*/ OPC_MoveChild1, ++/*359923*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*359926*/ OPC_CheckChild0Integer, 1, ++/*359928*/ OPC_CheckChild0Type, MVT::i32, ++/*359930*/ OPC_CheckChild1Integer, 1, ++/*359932*/ OPC_CheckChild1Type, MVT::i32, ++/*359934*/ OPC_CheckChild2Integer, 1, ++/*359936*/ OPC_CheckChild2Type, MVT::i32, ++/*359938*/ OPC_CheckChild3Integer, 1, ++/*359940*/ OPC_CheckChild3Type, MVT::i32, ++/*359942*/ OPC_CheckChild4Integer, 1, ++/*359944*/ OPC_CheckChild4Type, MVT::i32, ++/*359946*/ OPC_MoveChild5, ++/*359947*/ OPC_CheckInteger, 1, ++/*359949*/ OPC_CheckType, MVT::i32, ++/*359951*/ OPC_MoveParent, ++/*359952*/ OPC_MoveChild6, ++/*359953*/ OPC_CheckInteger, 1, ++/*359955*/ OPC_CheckType, MVT::i32, ++/*359957*/ OPC_MoveParent, ++/*359958*/ OPC_MoveChild7, ++/*359959*/ OPC_CheckInteger, 1, ++/*359961*/ OPC_CheckType, MVT::i32, ++/*359963*/ OPC_MoveParent, ++/*359964*/ OPC_MoveChild, 8, ++/*359966*/ OPC_CheckInteger, 1, ++/*359968*/ OPC_CheckType, MVT::i32, ++/*359970*/ OPC_MoveParent, ++/*359971*/ OPC_MoveChild, 9, ++/*359973*/ OPC_CheckInteger, 1, ++/*359975*/ OPC_CheckType, MVT::i32, ++/*359977*/ OPC_MoveParent, ++/*359978*/ OPC_MoveChild, 10, ++/*359980*/ OPC_CheckInteger, 1, ++/*359982*/ OPC_CheckType, MVT::i32, ++/*359984*/ OPC_MoveParent, ++/*359985*/ OPC_MoveChild, 11, ++/*359987*/ OPC_CheckInteger, 1, ++/*359989*/ OPC_CheckType, MVT::i32, ++/*359991*/ OPC_MoveParent, ++/*359992*/ OPC_MoveChild, 12, ++/*359994*/ OPC_CheckInteger, 1, ++/*359996*/ OPC_CheckType, MVT::i32, ++/*359998*/ OPC_MoveParent, ++/*359999*/ OPC_MoveChild, 13, ++/*360001*/ OPC_CheckInteger, 1, ++/*360003*/ OPC_CheckType, MVT::i32, ++/*360005*/ OPC_MoveParent, ++/*360006*/ OPC_MoveChild, 14, ++/*360008*/ OPC_CheckInteger, 1, ++/*360010*/ OPC_CheckType, MVT::i32, ++/*360012*/ OPC_MoveParent, ++/*360013*/ OPC_MoveChild, 15, ++/*360015*/ OPC_CheckInteger, 1, ++/*360017*/ OPC_CheckType, MVT::i32, ++/*360019*/ OPC_MoveParent, ++/*360020*/ OPC_CheckType, MVT::v16i8, ++/*360022*/ OPC_MoveParent, ++/*360023*/ OPC_CheckType, MVT::v16i8, ++/*360025*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*360027*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*360035*/ /*Scope*/ 91|128,1/*219*/, /*->360256*/ ++/*360037*/ OPC_MoveChild0, ++/*360038*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*360041*/ OPC_CheckChild0Integer, 1, ++/*360043*/ OPC_CheckChild0Type, MVT::i32, ++/*360045*/ OPC_CheckChild1Integer, 1, ++/*360047*/ OPC_CheckChild1Type, MVT::i32, ++/*360049*/ OPC_CheckChild2Integer, 1, ++/*360051*/ OPC_CheckChild2Type, MVT::i32, ++/*360053*/ OPC_CheckChild3Integer, 1, ++/*360055*/ OPC_CheckChild3Type, MVT::i32, ++/*360057*/ OPC_CheckChild4Integer, 1, ++/*360059*/ OPC_CheckChild4Type, MVT::i32, ++/*360061*/ OPC_MoveChild5, ++/*360062*/ OPC_CheckInteger, 1, ++/*360064*/ OPC_CheckType, MVT::i32, ++/*360066*/ OPC_MoveParent, ++/*360067*/ OPC_MoveChild6, ++/*360068*/ OPC_CheckInteger, 1, ++/*360070*/ OPC_CheckType, MVT::i32, ++/*360072*/ OPC_MoveParent, ++/*360073*/ OPC_MoveChild7, ++/*360074*/ OPC_CheckInteger, 1, ++/*360076*/ OPC_CheckType, MVT::i32, ++/*360078*/ OPC_MoveParent, ++/*360079*/ OPC_MoveChild, 8, ++/*360081*/ OPC_CheckInteger, 1, ++/*360083*/ OPC_CheckType, MVT::i32, ++/*360085*/ OPC_MoveParent, ++/*360086*/ OPC_MoveChild, 9, ++/*360088*/ OPC_CheckInteger, 1, ++/*360090*/ OPC_CheckType, MVT::i32, ++/*360092*/ OPC_MoveParent, ++/*360093*/ OPC_MoveChild, 10, ++/*360095*/ OPC_CheckInteger, 1, ++/*360097*/ OPC_CheckType, MVT::i32, ++/*360099*/ OPC_MoveParent, ++/*360100*/ OPC_MoveChild, 11, ++/*360102*/ OPC_CheckInteger, 1, ++/*360104*/ OPC_CheckType, MVT::i32, ++/*360106*/ OPC_MoveParent, ++/*360107*/ OPC_MoveChild, 12, ++/*360109*/ OPC_CheckInteger, 1, ++/*360111*/ OPC_CheckType, MVT::i32, ++/*360113*/ OPC_MoveParent, ++/*360114*/ OPC_MoveChild, 13, ++/*360116*/ OPC_CheckInteger, 1, ++/*360118*/ OPC_CheckType, MVT::i32, ++/*360120*/ OPC_MoveParent, ++/*360121*/ OPC_MoveChild, 14, ++/*360123*/ OPC_CheckInteger, 1, ++/*360125*/ OPC_CheckType, MVT::i32, ++/*360127*/ OPC_MoveParent, ++/*360128*/ OPC_MoveChild, 15, ++/*360130*/ OPC_CheckInteger, 1, ++/*360132*/ OPC_CheckType, MVT::i32, ++/*360134*/ OPC_MoveParent, ++/*360135*/ OPC_MoveParent, ++/*360136*/ OPC_CheckChild1Same, 0, ++/*360138*/ OPC_MoveParent, ++/*360139*/ OPC_CheckChild1Same, 1, ++/*360141*/ OPC_MoveParent, ++/*360142*/ OPC_MoveParent, ++/*360143*/ OPC_MoveChild1, ++/*360144*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*360147*/ OPC_CheckChild0Integer, 1, ++/*360149*/ OPC_CheckChild0Type, MVT::i32, ++/*360151*/ OPC_CheckChild1Integer, 1, ++/*360153*/ OPC_CheckChild1Type, MVT::i32, ++/*360155*/ OPC_CheckChild2Integer, 1, ++/*360157*/ OPC_CheckChild2Type, MVT::i32, ++/*360159*/ OPC_CheckChild3Integer, 1, ++/*360161*/ OPC_CheckChild3Type, MVT::i32, ++/*360163*/ OPC_CheckChild4Integer, 1, ++/*360165*/ OPC_CheckChild4Type, MVT::i32, ++/*360167*/ OPC_MoveChild5, ++/*360168*/ OPC_CheckInteger, 1, ++/*360170*/ OPC_CheckType, MVT::i32, ++/*360172*/ OPC_MoveParent, ++/*360173*/ OPC_MoveChild6, ++/*360174*/ OPC_CheckInteger, 1, ++/*360176*/ OPC_CheckType, MVT::i32, ++/*360178*/ OPC_MoveParent, ++/*360179*/ OPC_MoveChild7, ++/*360180*/ OPC_CheckInteger, 1, ++/*360182*/ OPC_CheckType, MVT::i32, ++/*360184*/ OPC_MoveParent, ++/*360185*/ OPC_MoveChild, 8, ++/*360187*/ OPC_CheckInteger, 1, ++/*360189*/ OPC_CheckType, MVT::i32, ++/*360191*/ OPC_MoveParent, ++/*360192*/ OPC_MoveChild, 9, ++/*360194*/ OPC_CheckInteger, 1, ++/*360196*/ OPC_CheckType, MVT::i32, ++/*360198*/ OPC_MoveParent, ++/*360199*/ OPC_MoveChild, 10, ++/*360201*/ OPC_CheckInteger, 1, ++/*360203*/ OPC_CheckType, MVT::i32, ++/*360205*/ OPC_MoveParent, ++/*360206*/ OPC_MoveChild, 11, ++/*360208*/ OPC_CheckInteger, 1, ++/*360210*/ OPC_CheckType, MVT::i32, ++/*360212*/ OPC_MoveParent, ++/*360213*/ OPC_MoveChild, 12, ++/*360215*/ OPC_CheckInteger, 1, ++/*360217*/ OPC_CheckType, MVT::i32, ++/*360219*/ OPC_MoveParent, ++/*360220*/ OPC_MoveChild, 13, ++/*360222*/ OPC_CheckInteger, 1, ++/*360224*/ OPC_CheckType, MVT::i32, ++/*360226*/ OPC_MoveParent, ++/*360227*/ OPC_MoveChild, 14, ++/*360229*/ OPC_CheckInteger, 1, ++/*360231*/ OPC_CheckType, MVT::i32, ++/*360233*/ OPC_MoveParent, ++/*360234*/ OPC_MoveChild, 15, ++/*360236*/ OPC_CheckInteger, 1, ++/*360238*/ OPC_CheckType, MVT::i32, ++/*360240*/ OPC_MoveParent, ++/*360241*/ OPC_CheckType, MVT::v16i8, ++/*360243*/ OPC_MoveParent, ++/*360244*/ OPC_CheckType, MVT::v16i8, ++/*360246*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*360248*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b), LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*360256*/ /*Scope*/ 91|128,1/*219*/, /*->360477*/ ++/*360258*/ OPC_CheckChild0Same, 0, ++/*360260*/ OPC_MoveChild1, ++/*360261*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*360264*/ OPC_CheckChild0Integer, 1, ++/*360266*/ OPC_CheckChild0Type, MVT::i32, ++/*360268*/ OPC_CheckChild1Integer, 1, ++/*360270*/ OPC_CheckChild1Type, MVT::i32, ++/*360272*/ OPC_CheckChild2Integer, 1, ++/*360274*/ OPC_CheckChild2Type, MVT::i32, ++/*360276*/ OPC_CheckChild3Integer, 1, ++/*360278*/ OPC_CheckChild3Type, MVT::i32, ++/*360280*/ OPC_CheckChild4Integer, 1, ++/*360282*/ OPC_CheckChild4Type, MVT::i32, ++/*360284*/ OPC_MoveChild5, ++/*360285*/ OPC_CheckInteger, 1, ++/*360287*/ OPC_CheckType, MVT::i32, ++/*360289*/ OPC_MoveParent, ++/*360290*/ OPC_MoveChild6, ++/*360291*/ OPC_CheckInteger, 1, ++/*360293*/ OPC_CheckType, MVT::i32, ++/*360295*/ OPC_MoveParent, ++/*360296*/ OPC_MoveChild7, ++/*360297*/ OPC_CheckInteger, 1, ++/*360299*/ OPC_CheckType, MVT::i32, ++/*360301*/ OPC_MoveParent, ++/*360302*/ OPC_MoveChild, 8, ++/*360304*/ OPC_CheckInteger, 1, ++/*360306*/ OPC_CheckType, MVT::i32, ++/*360308*/ OPC_MoveParent, ++/*360309*/ OPC_MoveChild, 9, ++/*360311*/ OPC_CheckInteger, 1, ++/*360313*/ OPC_CheckType, MVT::i32, ++/*360315*/ OPC_MoveParent, ++/*360316*/ OPC_MoveChild, 10, ++/*360318*/ OPC_CheckInteger, 1, ++/*360320*/ OPC_CheckType, MVT::i32, ++/*360322*/ OPC_MoveParent, ++/*360323*/ OPC_MoveChild, 11, ++/*360325*/ OPC_CheckInteger, 1, ++/*360327*/ OPC_CheckType, MVT::i32, ++/*360329*/ OPC_MoveParent, ++/*360330*/ OPC_MoveChild, 12, ++/*360332*/ OPC_CheckInteger, 1, ++/*360334*/ OPC_CheckType, MVT::i32, ++/*360336*/ OPC_MoveParent, ++/*360337*/ OPC_MoveChild, 13, ++/*360339*/ OPC_CheckInteger, 1, ++/*360341*/ OPC_CheckType, MVT::i32, ++/*360343*/ OPC_MoveParent, ++/*360344*/ OPC_MoveChild, 14, ++/*360346*/ OPC_CheckInteger, 1, ++/*360348*/ OPC_CheckType, MVT::i32, ++/*360350*/ OPC_MoveParent, ++/*360351*/ OPC_MoveChild, 15, ++/*360353*/ OPC_CheckInteger, 1, ++/*360355*/ OPC_CheckType, MVT::i32, ++/*360357*/ OPC_MoveParent, ++/*360358*/ OPC_MoveParent, ++/*360359*/ OPC_MoveParent, ++/*360360*/ OPC_CheckChild1Same, 1, ++/*360362*/ OPC_MoveParent, ++/*360363*/ OPC_MoveParent, ++/*360364*/ OPC_MoveChild1, ++/*360365*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*360368*/ OPC_CheckChild0Integer, 1, ++/*360370*/ OPC_CheckChild0Type, MVT::i32, ++/*360372*/ OPC_CheckChild1Integer, 1, ++/*360374*/ OPC_CheckChild1Type, MVT::i32, ++/*360376*/ OPC_CheckChild2Integer, 1, ++/*360378*/ OPC_CheckChild2Type, MVT::i32, ++/*360380*/ OPC_CheckChild3Integer, 1, ++/*360382*/ OPC_CheckChild3Type, MVT::i32, ++/*360384*/ OPC_CheckChild4Integer, 1, ++/*360386*/ OPC_CheckChild4Type, MVT::i32, ++/*360388*/ OPC_MoveChild5, ++/*360389*/ OPC_CheckInteger, 1, ++/*360391*/ OPC_CheckType, MVT::i32, ++/*360393*/ OPC_MoveParent, ++/*360394*/ OPC_MoveChild6, ++/*360395*/ OPC_CheckInteger, 1, ++/*360397*/ OPC_CheckType, MVT::i32, ++/*360399*/ OPC_MoveParent, ++/*360400*/ OPC_MoveChild7, ++/*360401*/ OPC_CheckInteger, 1, ++/*360403*/ OPC_CheckType, MVT::i32, ++/*360405*/ OPC_MoveParent, ++/*360406*/ OPC_MoveChild, 8, ++/*360408*/ OPC_CheckInteger, 1, ++/*360410*/ OPC_CheckType, MVT::i32, ++/*360412*/ OPC_MoveParent, ++/*360413*/ OPC_MoveChild, 9, ++/*360415*/ OPC_CheckInteger, 1, ++/*360417*/ OPC_CheckType, MVT::i32, ++/*360419*/ OPC_MoveParent, ++/*360420*/ OPC_MoveChild, 10, ++/*360422*/ OPC_CheckInteger, 1, ++/*360424*/ OPC_CheckType, MVT::i32, ++/*360426*/ OPC_MoveParent, ++/*360427*/ OPC_MoveChild, 11, ++/*360429*/ OPC_CheckInteger, 1, ++/*360431*/ OPC_CheckType, MVT::i32, ++/*360433*/ OPC_MoveParent, ++/*360434*/ OPC_MoveChild, 12, ++/*360436*/ OPC_CheckInteger, 1, ++/*360438*/ OPC_CheckType, MVT::i32, ++/*360440*/ OPC_MoveParent, ++/*360441*/ OPC_MoveChild, 13, ++/*360443*/ OPC_CheckInteger, 1, ++/*360445*/ OPC_CheckType, MVT::i32, ++/*360447*/ OPC_MoveParent, ++/*360448*/ OPC_MoveChild, 14, ++/*360450*/ OPC_CheckInteger, 1, ++/*360452*/ OPC_CheckType, MVT::i32, ++/*360454*/ OPC_MoveParent, ++/*360455*/ OPC_MoveChild, 15, ++/*360457*/ OPC_CheckInteger, 1, ++/*360459*/ OPC_CheckType, MVT::i32, ++/*360461*/ OPC_MoveParent, ++/*360462*/ OPC_CheckType, MVT::v16i8, ++/*360464*/ OPC_MoveParent, ++/*360465*/ OPC_CheckType, MVT::v16i8, ++/*360467*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*360469*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*360477*/ /*Scope*/ 91|128,1/*219*/, /*->360698*/ ++/*360479*/ OPC_CheckChild0Same, 1, ++/*360481*/ OPC_CheckChild1Same, 0, ++/*360483*/ OPC_MoveParent, ++/*360484*/ OPC_MoveChild1, ++/*360485*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*360488*/ OPC_CheckChild0Integer, 1, ++/*360490*/ OPC_CheckChild0Type, MVT::i32, ++/*360492*/ OPC_CheckChild1Integer, 1, ++/*360494*/ OPC_CheckChild1Type, MVT::i32, ++/*360496*/ OPC_CheckChild2Integer, 1, ++/*360498*/ OPC_CheckChild2Type, MVT::i32, ++/*360500*/ OPC_CheckChild3Integer, 1, ++/*360502*/ OPC_CheckChild3Type, MVT::i32, ++/*360504*/ OPC_CheckChild4Integer, 1, ++/*360506*/ OPC_CheckChild4Type, MVT::i32, ++/*360508*/ OPC_MoveChild5, ++/*360509*/ OPC_CheckInteger, 1, ++/*360511*/ OPC_CheckType, MVT::i32, ++/*360513*/ OPC_MoveParent, ++/*360514*/ OPC_MoveChild6, ++/*360515*/ OPC_CheckInteger, 1, ++/*360517*/ OPC_CheckType, MVT::i32, ++/*360519*/ OPC_MoveParent, ++/*360520*/ OPC_MoveChild7, ++/*360521*/ OPC_CheckInteger, 1, ++/*360523*/ OPC_CheckType, MVT::i32, ++/*360525*/ OPC_MoveParent, ++/*360526*/ OPC_MoveChild, 8, ++/*360528*/ OPC_CheckInteger, 1, ++/*360530*/ OPC_CheckType, MVT::i32, ++/*360532*/ OPC_MoveParent, ++/*360533*/ OPC_MoveChild, 9, ++/*360535*/ OPC_CheckInteger, 1, ++/*360537*/ OPC_CheckType, MVT::i32, ++/*360539*/ OPC_MoveParent, ++/*360540*/ OPC_MoveChild, 10, ++/*360542*/ OPC_CheckInteger, 1, ++/*360544*/ OPC_CheckType, MVT::i32, ++/*360546*/ OPC_MoveParent, ++/*360547*/ OPC_MoveChild, 11, ++/*360549*/ OPC_CheckInteger, 1, ++/*360551*/ OPC_CheckType, MVT::i32, ++/*360553*/ OPC_MoveParent, ++/*360554*/ OPC_MoveChild, 12, ++/*360556*/ OPC_CheckInteger, 1, ++/*360558*/ OPC_CheckType, MVT::i32, ++/*360560*/ OPC_MoveParent, ++/*360561*/ OPC_MoveChild, 13, ++/*360563*/ OPC_CheckInteger, 1, ++/*360565*/ OPC_CheckType, MVT::i32, ++/*360567*/ OPC_MoveParent, ++/*360568*/ OPC_MoveChild, 14, ++/*360570*/ OPC_CheckInteger, 1, ++/*360572*/ OPC_CheckType, MVT::i32, ++/*360574*/ OPC_MoveParent, ++/*360575*/ OPC_MoveChild, 15, ++/*360577*/ OPC_CheckInteger, 1, ++/*360579*/ OPC_CheckType, MVT::i32, ++/*360581*/ OPC_MoveParent, ++/*360582*/ OPC_MoveParent, ++/*360583*/ OPC_MoveParent, ++/*360584*/ OPC_MoveParent, ++/*360585*/ OPC_MoveChild1, ++/*360586*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*360589*/ OPC_CheckChild0Integer, 1, ++/*360591*/ OPC_CheckChild0Type, MVT::i32, ++/*360593*/ OPC_CheckChild1Integer, 1, ++/*360595*/ OPC_CheckChild1Type, MVT::i32, ++/*360597*/ OPC_CheckChild2Integer, 1, ++/*360599*/ OPC_CheckChild2Type, MVT::i32, ++/*360601*/ OPC_CheckChild3Integer, 1, ++/*360603*/ OPC_CheckChild3Type, MVT::i32, ++/*360605*/ OPC_CheckChild4Integer, 1, ++/*360607*/ OPC_CheckChild4Type, MVT::i32, ++/*360609*/ OPC_MoveChild5, ++/*360610*/ OPC_CheckInteger, 1, ++/*360612*/ OPC_CheckType, MVT::i32, ++/*360614*/ OPC_MoveParent, ++/*360615*/ OPC_MoveChild6, ++/*360616*/ OPC_CheckInteger, 1, ++/*360618*/ OPC_CheckType, MVT::i32, ++/*360620*/ OPC_MoveParent, ++/*360621*/ OPC_MoveChild7, ++/*360622*/ OPC_CheckInteger, 1, ++/*360624*/ OPC_CheckType, MVT::i32, ++/*360626*/ OPC_MoveParent, ++/*360627*/ OPC_MoveChild, 8, ++/*360629*/ OPC_CheckInteger, 1, ++/*360631*/ OPC_CheckType, MVT::i32, ++/*360633*/ OPC_MoveParent, ++/*360634*/ OPC_MoveChild, 9, ++/*360636*/ OPC_CheckInteger, 1, ++/*360638*/ OPC_CheckType, MVT::i32, ++/*360640*/ OPC_MoveParent, ++/*360641*/ OPC_MoveChild, 10, ++/*360643*/ OPC_CheckInteger, 1, ++/*360645*/ OPC_CheckType, MVT::i32, ++/*360647*/ OPC_MoveParent, ++/*360648*/ OPC_MoveChild, 11, ++/*360650*/ OPC_CheckInteger, 1, ++/*360652*/ OPC_CheckType, MVT::i32, ++/*360654*/ OPC_MoveParent, ++/*360655*/ OPC_MoveChild, 12, ++/*360657*/ OPC_CheckInteger, 1, ++/*360659*/ OPC_CheckType, MVT::i32, ++/*360661*/ OPC_MoveParent, ++/*360662*/ OPC_MoveChild, 13, ++/*360664*/ OPC_CheckInteger, 1, ++/*360666*/ OPC_CheckType, MVT::i32, ++/*360668*/ OPC_MoveParent, ++/*360669*/ OPC_MoveChild, 14, ++/*360671*/ OPC_CheckInteger, 1, ++/*360673*/ OPC_CheckType, MVT::i32, ++/*360675*/ OPC_MoveParent, ++/*360676*/ OPC_MoveChild, 15, ++/*360678*/ OPC_CheckInteger, 1, ++/*360680*/ OPC_CheckType, MVT::i32, ++/*360682*/ OPC_MoveParent, ++/*360683*/ OPC_CheckType, MVT::v16i8, ++/*360685*/ OPC_MoveParent, ++/*360686*/ OPC_CheckType, MVT::v16i8, ++/*360688*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*360690*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*360698*/ /*Scope*/ 91|128,1/*219*/, /*->360919*/ ++/*360700*/ OPC_CheckChild0Same, 0, ++/*360702*/ OPC_CheckChild1Same, 1, ++/*360704*/ OPC_MoveParent, ++/*360705*/ OPC_MoveChild1, ++/*360706*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*360709*/ OPC_CheckChild0Integer, 1, ++/*360711*/ OPC_CheckChild0Type, MVT::i32, ++/*360713*/ OPC_CheckChild1Integer, 1, ++/*360715*/ OPC_CheckChild1Type, MVT::i32, ++/*360717*/ OPC_CheckChild2Integer, 1, ++/*360719*/ OPC_CheckChild2Type, MVT::i32, ++/*360721*/ OPC_CheckChild3Integer, 1, ++/*360723*/ OPC_CheckChild3Type, MVT::i32, ++/*360725*/ OPC_CheckChild4Integer, 1, ++/*360727*/ OPC_CheckChild4Type, MVT::i32, ++/*360729*/ OPC_MoveChild5, ++/*360730*/ OPC_CheckInteger, 1, ++/*360732*/ OPC_CheckType, MVT::i32, ++/*360734*/ OPC_MoveParent, ++/*360735*/ OPC_MoveChild6, ++/*360736*/ OPC_CheckInteger, 1, ++/*360738*/ OPC_CheckType, MVT::i32, ++/*360740*/ OPC_MoveParent, ++/*360741*/ OPC_MoveChild7, ++/*360742*/ OPC_CheckInteger, 1, ++/*360744*/ OPC_CheckType, MVT::i32, ++/*360746*/ OPC_MoveParent, ++/*360747*/ OPC_MoveChild, 8, ++/*360749*/ OPC_CheckInteger, 1, ++/*360751*/ OPC_CheckType, MVT::i32, ++/*360753*/ OPC_MoveParent, ++/*360754*/ OPC_MoveChild, 9, ++/*360756*/ OPC_CheckInteger, 1, ++/*360758*/ OPC_CheckType, MVT::i32, ++/*360760*/ OPC_MoveParent, ++/*360761*/ OPC_MoveChild, 10, ++/*360763*/ OPC_CheckInteger, 1, ++/*360765*/ OPC_CheckType, MVT::i32, ++/*360767*/ OPC_MoveParent, ++/*360768*/ OPC_MoveChild, 11, ++/*360770*/ OPC_CheckInteger, 1, ++/*360772*/ OPC_CheckType, MVT::i32, ++/*360774*/ OPC_MoveParent, ++/*360775*/ OPC_MoveChild, 12, ++/*360777*/ OPC_CheckInteger, 1, ++/*360779*/ OPC_CheckType, MVT::i32, ++/*360781*/ OPC_MoveParent, ++/*360782*/ OPC_MoveChild, 13, ++/*360784*/ OPC_CheckInteger, 1, ++/*360786*/ OPC_CheckType, MVT::i32, ++/*360788*/ OPC_MoveParent, ++/*360789*/ OPC_MoveChild, 14, ++/*360791*/ OPC_CheckInteger, 1, ++/*360793*/ OPC_CheckType, MVT::i32, ++/*360795*/ OPC_MoveParent, ++/*360796*/ OPC_MoveChild, 15, ++/*360798*/ OPC_CheckInteger, 1, ++/*360800*/ OPC_CheckType, MVT::i32, ++/*360802*/ OPC_MoveParent, ++/*360803*/ OPC_MoveParent, ++/*360804*/ OPC_MoveParent, ++/*360805*/ OPC_MoveParent, ++/*360806*/ OPC_MoveChild1, ++/*360807*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*360810*/ OPC_CheckChild0Integer, 1, ++/*360812*/ OPC_CheckChild0Type, MVT::i32, ++/*360814*/ OPC_CheckChild1Integer, 1, ++/*360816*/ OPC_CheckChild1Type, MVT::i32, ++/*360818*/ OPC_CheckChild2Integer, 1, ++/*360820*/ OPC_CheckChild2Type, MVT::i32, ++/*360822*/ OPC_CheckChild3Integer, 1, ++/*360824*/ OPC_CheckChild3Type, MVT::i32, ++/*360826*/ OPC_CheckChild4Integer, 1, ++/*360828*/ OPC_CheckChild4Type, MVT::i32, ++/*360830*/ OPC_MoveChild5, ++/*360831*/ OPC_CheckInteger, 1, ++/*360833*/ OPC_CheckType, MVT::i32, ++/*360835*/ OPC_MoveParent, ++/*360836*/ OPC_MoveChild6, ++/*360837*/ OPC_CheckInteger, 1, ++/*360839*/ OPC_CheckType, MVT::i32, ++/*360841*/ OPC_MoveParent, ++/*360842*/ OPC_MoveChild7, ++/*360843*/ OPC_CheckInteger, 1, ++/*360845*/ OPC_CheckType, MVT::i32, ++/*360847*/ OPC_MoveParent, ++/*360848*/ OPC_MoveChild, 8, ++/*360850*/ OPC_CheckInteger, 1, ++/*360852*/ OPC_CheckType, MVT::i32, ++/*360854*/ OPC_MoveParent, ++/*360855*/ OPC_MoveChild, 9, ++/*360857*/ OPC_CheckInteger, 1, ++/*360859*/ OPC_CheckType, MVT::i32, ++/*360861*/ OPC_MoveParent, ++/*360862*/ OPC_MoveChild, 10, ++/*360864*/ OPC_CheckInteger, 1, ++/*360866*/ OPC_CheckType, MVT::i32, ++/*360868*/ OPC_MoveParent, ++/*360869*/ OPC_MoveChild, 11, ++/*360871*/ OPC_CheckInteger, 1, ++/*360873*/ OPC_CheckType, MVT::i32, ++/*360875*/ OPC_MoveParent, ++/*360876*/ OPC_MoveChild, 12, ++/*360878*/ OPC_CheckInteger, 1, ++/*360880*/ OPC_CheckType, MVT::i32, ++/*360882*/ OPC_MoveParent, ++/*360883*/ OPC_MoveChild, 13, ++/*360885*/ OPC_CheckInteger, 1, ++/*360887*/ OPC_CheckType, MVT::i32, ++/*360889*/ OPC_MoveParent, ++/*360890*/ OPC_MoveChild, 14, ++/*360892*/ OPC_CheckInteger, 1, ++/*360894*/ OPC_CheckType, MVT::i32, ++/*360896*/ OPC_MoveParent, ++/*360897*/ OPC_MoveChild, 15, ++/*360899*/ OPC_CheckInteger, 1, ++/*360901*/ OPC_CheckType, MVT::i32, ++/*360903*/ OPC_MoveParent, ++/*360904*/ OPC_CheckType, MVT::v16i8, ++/*360906*/ OPC_MoveParent, ++/*360907*/ OPC_CheckType, MVT::v16i8, ++/*360909*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*360911*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*360919*/ 0, /*End of Scope*/ ++/*360920*/ /*Scope*/ 62|128,3/*446*/, /*->361368*/ ++/*360922*/ OPC_CheckChild0Same, 0, ++/*360924*/ OPC_MoveChild1, ++/*360925*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*360928*/ OPC_Scope, 89|128,1/*217*/, /*->361148*/ // 2 children in Scope ++/*360931*/ OPC_MoveChild0, ++/*360932*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*360935*/ OPC_CheckChild0Integer, 1, ++/*360937*/ OPC_CheckChild0Type, MVT::i32, ++/*360939*/ OPC_CheckChild1Integer, 1, ++/*360941*/ OPC_CheckChild1Type, MVT::i32, ++/*360943*/ OPC_CheckChild2Integer, 1, ++/*360945*/ OPC_CheckChild2Type, MVT::i32, ++/*360947*/ OPC_CheckChild3Integer, 1, ++/*360949*/ OPC_CheckChild3Type, MVT::i32, ++/*360951*/ OPC_CheckChild4Integer, 1, ++/*360953*/ OPC_CheckChild4Type, MVT::i32, ++/*360955*/ OPC_MoveChild5, ++/*360956*/ OPC_CheckInteger, 1, ++/*360958*/ OPC_CheckType, MVT::i32, ++/*360960*/ OPC_MoveParent, ++/*360961*/ OPC_MoveChild6, ++/*360962*/ OPC_CheckInteger, 1, ++/*360964*/ OPC_CheckType, MVT::i32, ++/*360966*/ OPC_MoveParent, ++/*360967*/ OPC_MoveChild7, ++/*360968*/ OPC_CheckInteger, 1, ++/*360970*/ OPC_CheckType, MVT::i32, ++/*360972*/ OPC_MoveParent, ++/*360973*/ OPC_MoveChild, 8, ++/*360975*/ OPC_CheckInteger, 1, ++/*360977*/ OPC_CheckType, MVT::i32, ++/*360979*/ OPC_MoveParent, ++/*360980*/ OPC_MoveChild, 9, ++/*360982*/ OPC_CheckInteger, 1, ++/*360984*/ OPC_CheckType, MVT::i32, ++/*360986*/ OPC_MoveParent, ++/*360987*/ OPC_MoveChild, 10, ++/*360989*/ OPC_CheckInteger, 1, ++/*360991*/ OPC_CheckType, MVT::i32, ++/*360993*/ OPC_MoveParent, ++/*360994*/ OPC_MoveChild, 11, ++/*360996*/ OPC_CheckInteger, 1, ++/*360998*/ OPC_CheckType, MVT::i32, ++/*361000*/ OPC_MoveParent, ++/*361001*/ OPC_MoveChild, 12, ++/*361003*/ OPC_CheckInteger, 1, ++/*361005*/ OPC_CheckType, MVT::i32, ++/*361007*/ OPC_MoveParent, ++/*361008*/ OPC_MoveChild, 13, ++/*361010*/ OPC_CheckInteger, 1, ++/*361012*/ OPC_CheckType, MVT::i32, ++/*361014*/ OPC_MoveParent, ++/*361015*/ OPC_MoveChild, 14, ++/*361017*/ OPC_CheckInteger, 1, ++/*361019*/ OPC_CheckType, MVT::i32, ++/*361021*/ OPC_MoveParent, ++/*361022*/ OPC_MoveChild, 15, ++/*361024*/ OPC_CheckInteger, 1, ++/*361026*/ OPC_CheckType, MVT::i32, ++/*361028*/ OPC_MoveParent, ++/*361029*/ OPC_MoveParent, ++/*361030*/ OPC_CheckChild1Same, 1, ++/*361032*/ OPC_MoveParent, ++/*361033*/ OPC_MoveParent, ++/*361034*/ OPC_MoveParent, ++/*361035*/ OPC_MoveChild1, ++/*361036*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*361039*/ OPC_CheckChild0Integer, 1, ++/*361041*/ OPC_CheckChild0Type, MVT::i32, ++/*361043*/ OPC_CheckChild1Integer, 1, ++/*361045*/ OPC_CheckChild1Type, MVT::i32, ++/*361047*/ OPC_CheckChild2Integer, 1, ++/*361049*/ OPC_CheckChild2Type, MVT::i32, ++/*361051*/ OPC_CheckChild3Integer, 1, ++/*361053*/ OPC_CheckChild3Type, MVT::i32, ++/*361055*/ OPC_CheckChild4Integer, 1, ++/*361057*/ OPC_CheckChild4Type, MVT::i32, ++/*361059*/ OPC_MoveChild5, ++/*361060*/ OPC_CheckInteger, 1, ++/*361062*/ OPC_CheckType, MVT::i32, ++/*361064*/ OPC_MoveParent, ++/*361065*/ OPC_MoveChild6, ++/*361066*/ OPC_CheckInteger, 1, ++/*361068*/ OPC_CheckType, MVT::i32, ++/*361070*/ OPC_MoveParent, ++/*361071*/ OPC_MoveChild7, ++/*361072*/ OPC_CheckInteger, 1, ++/*361074*/ OPC_CheckType, MVT::i32, ++/*361076*/ OPC_MoveParent, ++/*361077*/ OPC_MoveChild, 8, ++/*361079*/ OPC_CheckInteger, 1, ++/*361081*/ OPC_CheckType, MVT::i32, ++/*361083*/ OPC_MoveParent, ++/*361084*/ OPC_MoveChild, 9, ++/*361086*/ OPC_CheckInteger, 1, ++/*361088*/ OPC_CheckType, MVT::i32, ++/*361090*/ OPC_MoveParent, ++/*361091*/ OPC_MoveChild, 10, ++/*361093*/ OPC_CheckInteger, 1, ++/*361095*/ OPC_CheckType, MVT::i32, ++/*361097*/ OPC_MoveParent, ++/*361098*/ OPC_MoveChild, 11, ++/*361100*/ OPC_CheckInteger, 1, ++/*361102*/ OPC_CheckType, MVT::i32, ++/*361104*/ OPC_MoveParent, ++/*361105*/ OPC_MoveChild, 12, ++/*361107*/ OPC_CheckInteger, 1, ++/*361109*/ OPC_CheckType, MVT::i32, ++/*361111*/ OPC_MoveParent, ++/*361112*/ OPC_MoveChild, 13, ++/*361114*/ OPC_CheckInteger, 1, ++/*361116*/ OPC_CheckType, MVT::i32, ++/*361118*/ OPC_MoveParent, ++/*361119*/ OPC_MoveChild, 14, ++/*361121*/ OPC_CheckInteger, 1, ++/*361123*/ OPC_CheckType, MVT::i32, ++/*361125*/ OPC_MoveParent, ++/*361126*/ OPC_MoveChild, 15, ++/*361128*/ OPC_CheckInteger, 1, ++/*361130*/ OPC_CheckType, MVT::i32, ++/*361132*/ OPC_MoveParent, ++/*361133*/ OPC_CheckType, MVT::v16i8, ++/*361135*/ OPC_MoveParent, ++/*361136*/ OPC_CheckType, MVT::v16i8, ++/*361138*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*361140*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*361148*/ /*Scope*/ 89|128,1/*217*/, /*->361367*/ ++/*361150*/ OPC_CheckChild0Same, 1, ++/*361152*/ OPC_MoveChild1, ++/*361153*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*361156*/ OPC_CheckChild0Integer, 1, ++/*361158*/ OPC_CheckChild0Type, MVT::i32, ++/*361160*/ OPC_CheckChild1Integer, 1, ++/*361162*/ OPC_CheckChild1Type, MVT::i32, ++/*361164*/ OPC_CheckChild2Integer, 1, ++/*361166*/ OPC_CheckChild2Type, MVT::i32, ++/*361168*/ OPC_CheckChild3Integer, 1, ++/*361170*/ OPC_CheckChild3Type, MVT::i32, ++/*361172*/ OPC_CheckChild4Integer, 1, ++/*361174*/ OPC_CheckChild4Type, MVT::i32, ++/*361176*/ OPC_MoveChild5, ++/*361177*/ OPC_CheckInteger, 1, ++/*361179*/ OPC_CheckType, MVT::i32, ++/*361181*/ OPC_MoveParent, ++/*361182*/ OPC_MoveChild6, ++/*361183*/ OPC_CheckInteger, 1, ++/*361185*/ OPC_CheckType, MVT::i32, ++/*361187*/ OPC_MoveParent, ++/*361188*/ OPC_MoveChild7, ++/*361189*/ OPC_CheckInteger, 1, ++/*361191*/ OPC_CheckType, MVT::i32, ++/*361193*/ OPC_MoveParent, ++/*361194*/ OPC_MoveChild, 8, ++/*361196*/ OPC_CheckInteger, 1, ++/*361198*/ OPC_CheckType, MVT::i32, ++/*361200*/ OPC_MoveParent, ++/*361201*/ OPC_MoveChild, 9, ++/*361203*/ OPC_CheckInteger, 1, ++/*361205*/ OPC_CheckType, MVT::i32, ++/*361207*/ OPC_MoveParent, ++/*361208*/ OPC_MoveChild, 10, ++/*361210*/ OPC_CheckInteger, 1, ++/*361212*/ OPC_CheckType, MVT::i32, ++/*361214*/ OPC_MoveParent, ++/*361215*/ OPC_MoveChild, 11, ++/*361217*/ OPC_CheckInteger, 1, ++/*361219*/ OPC_CheckType, MVT::i32, ++/*361221*/ OPC_MoveParent, ++/*361222*/ OPC_MoveChild, 12, ++/*361224*/ OPC_CheckInteger, 1, ++/*361226*/ OPC_CheckType, MVT::i32, ++/*361228*/ OPC_MoveParent, ++/*361229*/ OPC_MoveChild, 13, ++/*361231*/ OPC_CheckInteger, 1, ++/*361233*/ OPC_CheckType, MVT::i32, ++/*361235*/ OPC_MoveParent, ++/*361236*/ OPC_MoveChild, 14, ++/*361238*/ OPC_CheckInteger, 1, ++/*361240*/ OPC_CheckType, MVT::i32, ++/*361242*/ OPC_MoveParent, ++/*361243*/ OPC_MoveChild, 15, ++/*361245*/ OPC_CheckInteger, 1, ++/*361247*/ OPC_CheckType, MVT::i32, ++/*361249*/ OPC_MoveParent, ++/*361250*/ OPC_MoveParent, ++/*361251*/ OPC_MoveParent, ++/*361252*/ OPC_MoveParent, ++/*361253*/ OPC_MoveParent, ++/*361254*/ OPC_MoveChild1, ++/*361255*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*361258*/ OPC_CheckChild0Integer, 1, ++/*361260*/ OPC_CheckChild0Type, MVT::i32, ++/*361262*/ OPC_CheckChild1Integer, 1, ++/*361264*/ OPC_CheckChild1Type, MVT::i32, ++/*361266*/ OPC_CheckChild2Integer, 1, ++/*361268*/ OPC_CheckChild2Type, MVT::i32, ++/*361270*/ OPC_CheckChild3Integer, 1, ++/*361272*/ OPC_CheckChild3Type, MVT::i32, ++/*361274*/ OPC_CheckChild4Integer, 1, ++/*361276*/ OPC_CheckChild4Type, MVT::i32, ++/*361278*/ OPC_MoveChild5, ++/*361279*/ OPC_CheckInteger, 1, ++/*361281*/ OPC_CheckType, MVT::i32, ++/*361283*/ OPC_MoveParent, ++/*361284*/ OPC_MoveChild6, ++/*361285*/ OPC_CheckInteger, 1, ++/*361287*/ OPC_CheckType, MVT::i32, ++/*361289*/ OPC_MoveParent, ++/*361290*/ OPC_MoveChild7, ++/*361291*/ OPC_CheckInteger, 1, ++/*361293*/ OPC_CheckType, MVT::i32, ++/*361295*/ OPC_MoveParent, ++/*361296*/ OPC_MoveChild, 8, ++/*361298*/ OPC_CheckInteger, 1, ++/*361300*/ OPC_CheckType, MVT::i32, ++/*361302*/ OPC_MoveParent, ++/*361303*/ OPC_MoveChild, 9, ++/*361305*/ OPC_CheckInteger, 1, ++/*361307*/ OPC_CheckType, MVT::i32, ++/*361309*/ OPC_MoveParent, ++/*361310*/ OPC_MoveChild, 10, ++/*361312*/ OPC_CheckInteger, 1, ++/*361314*/ OPC_CheckType, MVT::i32, ++/*361316*/ OPC_MoveParent, ++/*361317*/ OPC_MoveChild, 11, ++/*361319*/ OPC_CheckInteger, 1, ++/*361321*/ OPC_CheckType, MVT::i32, ++/*361323*/ OPC_MoveParent, ++/*361324*/ OPC_MoveChild, 12, ++/*361326*/ OPC_CheckInteger, 1, ++/*361328*/ OPC_CheckType, MVT::i32, ++/*361330*/ OPC_MoveParent, ++/*361331*/ OPC_MoveChild, 13, ++/*361333*/ OPC_CheckInteger, 1, ++/*361335*/ OPC_CheckType, MVT::i32, ++/*361337*/ OPC_MoveParent, ++/*361338*/ OPC_MoveChild, 14, ++/*361340*/ OPC_CheckInteger, 1, ++/*361342*/ OPC_CheckType, MVT::i32, ++/*361344*/ OPC_MoveParent, ++/*361345*/ OPC_MoveChild, 15, ++/*361347*/ OPC_CheckInteger, 1, ++/*361349*/ OPC_CheckType, MVT::i32, ++/*361351*/ OPC_MoveParent, ++/*361352*/ OPC_CheckType, MVT::v16i8, ++/*361354*/ OPC_MoveParent, ++/*361355*/ OPC_CheckType, MVT::v16i8, ++/*361357*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*361359*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*361367*/ 0, /*End of Scope*/ ++/*361368*/ /*Scope*/ 62|128,3/*446*/, /*->361816*/ ++/*361370*/ OPC_CheckChild0Same, 1, ++/*361372*/ OPC_MoveChild1, ++/*361373*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*361376*/ OPC_Scope, 89|128,1/*217*/, /*->361596*/ // 2 children in Scope ++/*361379*/ OPC_MoveChild0, ++/*361380*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*361383*/ OPC_CheckChild0Integer, 1, ++/*361385*/ OPC_CheckChild0Type, MVT::i32, ++/*361387*/ OPC_CheckChild1Integer, 1, ++/*361389*/ OPC_CheckChild1Type, MVT::i32, ++/*361391*/ OPC_CheckChild2Integer, 1, ++/*361393*/ OPC_CheckChild2Type, MVT::i32, ++/*361395*/ OPC_CheckChild3Integer, 1, ++/*361397*/ OPC_CheckChild3Type, MVT::i32, ++/*361399*/ OPC_CheckChild4Integer, 1, ++/*361401*/ OPC_CheckChild4Type, MVT::i32, ++/*361403*/ OPC_MoveChild5, ++/*361404*/ OPC_CheckInteger, 1, ++/*361406*/ OPC_CheckType, MVT::i32, ++/*361408*/ OPC_MoveParent, ++/*361409*/ OPC_MoveChild6, ++/*361410*/ OPC_CheckInteger, 1, ++/*361412*/ OPC_CheckType, MVT::i32, ++/*361414*/ OPC_MoveParent, ++/*361415*/ OPC_MoveChild7, ++/*361416*/ OPC_CheckInteger, 1, ++/*361418*/ OPC_CheckType, MVT::i32, ++/*361420*/ OPC_MoveParent, ++/*361421*/ OPC_MoveChild, 8, ++/*361423*/ OPC_CheckInteger, 1, ++/*361425*/ OPC_CheckType, MVT::i32, ++/*361427*/ OPC_MoveParent, ++/*361428*/ OPC_MoveChild, 9, ++/*361430*/ OPC_CheckInteger, 1, ++/*361432*/ OPC_CheckType, MVT::i32, ++/*361434*/ OPC_MoveParent, ++/*361435*/ OPC_MoveChild, 10, ++/*361437*/ OPC_CheckInteger, 1, ++/*361439*/ OPC_CheckType, MVT::i32, ++/*361441*/ OPC_MoveParent, ++/*361442*/ OPC_MoveChild, 11, ++/*361444*/ OPC_CheckInteger, 1, ++/*361446*/ OPC_CheckType, MVT::i32, ++/*361448*/ OPC_MoveParent, ++/*361449*/ OPC_MoveChild, 12, ++/*361451*/ OPC_CheckInteger, 1, ++/*361453*/ OPC_CheckType, MVT::i32, ++/*361455*/ OPC_MoveParent, ++/*361456*/ OPC_MoveChild, 13, ++/*361458*/ OPC_CheckInteger, 1, ++/*361460*/ OPC_CheckType, MVT::i32, ++/*361462*/ OPC_MoveParent, ++/*361463*/ OPC_MoveChild, 14, ++/*361465*/ OPC_CheckInteger, 1, ++/*361467*/ OPC_CheckType, MVT::i32, ++/*361469*/ OPC_MoveParent, ++/*361470*/ OPC_MoveChild, 15, ++/*361472*/ OPC_CheckInteger, 1, ++/*361474*/ OPC_CheckType, MVT::i32, ++/*361476*/ OPC_MoveParent, ++/*361477*/ OPC_MoveParent, ++/*361478*/ OPC_CheckChild1Same, 0, ++/*361480*/ OPC_MoveParent, ++/*361481*/ OPC_MoveParent, ++/*361482*/ OPC_MoveParent, ++/*361483*/ OPC_MoveChild1, ++/*361484*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*361487*/ OPC_CheckChild0Integer, 1, ++/*361489*/ OPC_CheckChild0Type, MVT::i32, ++/*361491*/ OPC_CheckChild1Integer, 1, ++/*361493*/ OPC_CheckChild1Type, MVT::i32, ++/*361495*/ OPC_CheckChild2Integer, 1, ++/*361497*/ OPC_CheckChild2Type, MVT::i32, ++/*361499*/ OPC_CheckChild3Integer, 1, ++/*361501*/ OPC_CheckChild3Type, MVT::i32, ++/*361503*/ OPC_CheckChild4Integer, 1, ++/*361505*/ OPC_CheckChild4Type, MVT::i32, ++/*361507*/ OPC_MoveChild5, ++/*361508*/ OPC_CheckInteger, 1, ++/*361510*/ OPC_CheckType, MVT::i32, ++/*361512*/ OPC_MoveParent, ++/*361513*/ OPC_MoveChild6, ++/*361514*/ OPC_CheckInteger, 1, ++/*361516*/ OPC_CheckType, MVT::i32, ++/*361518*/ OPC_MoveParent, ++/*361519*/ OPC_MoveChild7, ++/*361520*/ OPC_CheckInteger, 1, ++/*361522*/ OPC_CheckType, MVT::i32, ++/*361524*/ OPC_MoveParent, ++/*361525*/ OPC_MoveChild, 8, ++/*361527*/ OPC_CheckInteger, 1, ++/*361529*/ OPC_CheckType, MVT::i32, ++/*361531*/ OPC_MoveParent, ++/*361532*/ OPC_MoveChild, 9, ++/*361534*/ OPC_CheckInteger, 1, ++/*361536*/ OPC_CheckType, MVT::i32, ++/*361538*/ OPC_MoveParent, ++/*361539*/ OPC_MoveChild, 10, ++/*361541*/ OPC_CheckInteger, 1, ++/*361543*/ OPC_CheckType, MVT::i32, ++/*361545*/ OPC_MoveParent, ++/*361546*/ OPC_MoveChild, 11, ++/*361548*/ OPC_CheckInteger, 1, ++/*361550*/ OPC_CheckType, MVT::i32, ++/*361552*/ OPC_MoveParent, ++/*361553*/ OPC_MoveChild, 12, ++/*361555*/ OPC_CheckInteger, 1, ++/*361557*/ OPC_CheckType, MVT::i32, ++/*361559*/ OPC_MoveParent, ++/*361560*/ OPC_MoveChild, 13, ++/*361562*/ OPC_CheckInteger, 1, ++/*361564*/ OPC_CheckType, MVT::i32, ++/*361566*/ OPC_MoveParent, ++/*361567*/ OPC_MoveChild, 14, ++/*361569*/ OPC_CheckInteger, 1, ++/*361571*/ OPC_CheckType, MVT::i32, ++/*361573*/ OPC_MoveParent, ++/*361574*/ OPC_MoveChild, 15, ++/*361576*/ OPC_CheckInteger, 1, ++/*361578*/ OPC_CheckType, MVT::i32, ++/*361580*/ OPC_MoveParent, ++/*361581*/ OPC_CheckType, MVT::v16i8, ++/*361583*/ OPC_MoveParent, ++/*361584*/ OPC_CheckType, MVT::v16i8, ++/*361586*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*361588*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*361596*/ /*Scope*/ 89|128,1/*217*/, /*->361815*/ ++/*361598*/ OPC_CheckChild0Same, 0, ++/*361600*/ OPC_MoveChild1, ++/*361601*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*361604*/ OPC_CheckChild0Integer, 1, ++/*361606*/ OPC_CheckChild0Type, MVT::i32, ++/*361608*/ OPC_CheckChild1Integer, 1, ++/*361610*/ OPC_CheckChild1Type, MVT::i32, ++/*361612*/ OPC_CheckChild2Integer, 1, ++/*361614*/ OPC_CheckChild2Type, MVT::i32, ++/*361616*/ OPC_CheckChild3Integer, 1, ++/*361618*/ OPC_CheckChild3Type, MVT::i32, ++/*361620*/ OPC_CheckChild4Integer, 1, ++/*361622*/ OPC_CheckChild4Type, MVT::i32, ++/*361624*/ OPC_MoveChild5, ++/*361625*/ OPC_CheckInteger, 1, ++/*361627*/ OPC_CheckType, MVT::i32, ++/*361629*/ OPC_MoveParent, ++/*361630*/ OPC_MoveChild6, ++/*361631*/ OPC_CheckInteger, 1, ++/*361633*/ OPC_CheckType, MVT::i32, ++/*361635*/ OPC_MoveParent, ++/*361636*/ OPC_MoveChild7, ++/*361637*/ OPC_CheckInteger, 1, ++/*361639*/ OPC_CheckType, MVT::i32, ++/*361641*/ OPC_MoveParent, ++/*361642*/ OPC_MoveChild, 8, ++/*361644*/ OPC_CheckInteger, 1, ++/*361646*/ OPC_CheckType, MVT::i32, ++/*361648*/ OPC_MoveParent, ++/*361649*/ OPC_MoveChild, 9, ++/*361651*/ OPC_CheckInteger, 1, ++/*361653*/ OPC_CheckType, MVT::i32, ++/*361655*/ OPC_MoveParent, ++/*361656*/ OPC_MoveChild, 10, ++/*361658*/ OPC_CheckInteger, 1, ++/*361660*/ OPC_CheckType, MVT::i32, ++/*361662*/ OPC_MoveParent, ++/*361663*/ OPC_MoveChild, 11, ++/*361665*/ OPC_CheckInteger, 1, ++/*361667*/ OPC_CheckType, MVT::i32, ++/*361669*/ OPC_MoveParent, ++/*361670*/ OPC_MoveChild, 12, ++/*361672*/ OPC_CheckInteger, 1, ++/*361674*/ OPC_CheckType, MVT::i32, ++/*361676*/ OPC_MoveParent, ++/*361677*/ OPC_MoveChild, 13, ++/*361679*/ OPC_CheckInteger, 1, ++/*361681*/ OPC_CheckType, MVT::i32, ++/*361683*/ OPC_MoveParent, ++/*361684*/ OPC_MoveChild, 14, ++/*361686*/ OPC_CheckInteger, 1, ++/*361688*/ OPC_CheckType, MVT::i32, ++/*361690*/ OPC_MoveParent, ++/*361691*/ OPC_MoveChild, 15, ++/*361693*/ OPC_CheckInteger, 1, ++/*361695*/ OPC_CheckType, MVT::i32, ++/*361697*/ OPC_MoveParent, ++/*361698*/ OPC_MoveParent, ++/*361699*/ OPC_MoveParent, ++/*361700*/ OPC_MoveParent, ++/*361701*/ OPC_MoveParent, ++/*361702*/ OPC_MoveChild1, ++/*361703*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*361706*/ OPC_CheckChild0Integer, 1, ++/*361708*/ OPC_CheckChild0Type, MVT::i32, ++/*361710*/ OPC_CheckChild1Integer, 1, ++/*361712*/ OPC_CheckChild1Type, MVT::i32, ++/*361714*/ OPC_CheckChild2Integer, 1, ++/*361716*/ OPC_CheckChild2Type, MVT::i32, ++/*361718*/ OPC_CheckChild3Integer, 1, ++/*361720*/ OPC_CheckChild3Type, MVT::i32, ++/*361722*/ OPC_CheckChild4Integer, 1, ++/*361724*/ OPC_CheckChild4Type, MVT::i32, ++/*361726*/ OPC_MoveChild5, ++/*361727*/ OPC_CheckInteger, 1, ++/*361729*/ OPC_CheckType, MVT::i32, ++/*361731*/ OPC_MoveParent, ++/*361732*/ OPC_MoveChild6, ++/*361733*/ OPC_CheckInteger, 1, ++/*361735*/ OPC_CheckType, MVT::i32, ++/*361737*/ OPC_MoveParent, ++/*361738*/ OPC_MoveChild7, ++/*361739*/ OPC_CheckInteger, 1, ++/*361741*/ OPC_CheckType, MVT::i32, ++/*361743*/ OPC_MoveParent, ++/*361744*/ OPC_MoveChild, 8, ++/*361746*/ OPC_CheckInteger, 1, ++/*361748*/ OPC_CheckType, MVT::i32, ++/*361750*/ OPC_MoveParent, ++/*361751*/ OPC_MoveChild, 9, ++/*361753*/ OPC_CheckInteger, 1, ++/*361755*/ OPC_CheckType, MVT::i32, ++/*361757*/ OPC_MoveParent, ++/*361758*/ OPC_MoveChild, 10, ++/*361760*/ OPC_CheckInteger, 1, ++/*361762*/ OPC_CheckType, MVT::i32, ++/*361764*/ OPC_MoveParent, ++/*361765*/ OPC_MoveChild, 11, ++/*361767*/ OPC_CheckInteger, 1, ++/*361769*/ OPC_CheckType, MVT::i32, ++/*361771*/ OPC_MoveParent, ++/*361772*/ OPC_MoveChild, 12, ++/*361774*/ OPC_CheckInteger, 1, ++/*361776*/ OPC_CheckType, MVT::i32, ++/*361778*/ OPC_MoveParent, ++/*361779*/ OPC_MoveChild, 13, ++/*361781*/ OPC_CheckInteger, 1, ++/*361783*/ OPC_CheckType, MVT::i32, ++/*361785*/ OPC_MoveParent, ++/*361786*/ OPC_MoveChild, 14, ++/*361788*/ OPC_CheckInteger, 1, ++/*361790*/ OPC_CheckType, MVT::i32, ++/*361792*/ OPC_MoveParent, ++/*361793*/ OPC_MoveChild, 15, ++/*361795*/ OPC_CheckInteger, 1, ++/*361797*/ OPC_CheckType, MVT::i32, ++/*361799*/ OPC_MoveParent, ++/*361800*/ OPC_CheckType, MVT::v16i8, ++/*361802*/ OPC_MoveParent, ++/*361803*/ OPC_CheckType, MVT::v16i8, ++/*361805*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*361807*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*361815*/ 0, /*End of Scope*/ ++/*361816*/ /*Scope*/ 91|128,2/*347*/, /*->362165*/ ++/*361818*/ OPC_MoveChild0, ++/*361819*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*361822*/ OPC_CheckChild0Integer, 1, ++/*361824*/ OPC_CheckChild0Type, MVT::i32, ++/*361826*/ OPC_CheckChild1Integer, 1, ++/*361828*/ OPC_CheckChild1Type, MVT::i32, ++/*361830*/ OPC_CheckChild2Integer, 1, ++/*361832*/ OPC_CheckChild2Type, MVT::i32, ++/*361834*/ OPC_CheckChild3Integer, 1, ++/*361836*/ OPC_CheckChild3Type, MVT::i32, ++/*361838*/ OPC_CheckChild4Integer, 1, ++/*361840*/ OPC_CheckChild4Type, MVT::i32, ++/*361842*/ OPC_MoveChild5, ++/*361843*/ OPC_CheckInteger, 1, ++/*361845*/ OPC_CheckType, MVT::i32, ++/*361847*/ OPC_MoveParent, ++/*361848*/ OPC_MoveChild6, ++/*361849*/ OPC_CheckInteger, 1, ++/*361851*/ OPC_CheckType, MVT::i32, ++/*361853*/ OPC_MoveParent, ++/*361854*/ OPC_MoveChild7, ++/*361855*/ OPC_CheckInteger, 1, ++/*361857*/ OPC_CheckType, MVT::i32, ++/*361859*/ OPC_MoveParent, ++/*361860*/ OPC_MoveChild, 8, ++/*361862*/ OPC_CheckInteger, 1, ++/*361864*/ OPC_CheckType, MVT::i32, ++/*361866*/ OPC_MoveParent, ++/*361867*/ OPC_MoveChild, 9, ++/*361869*/ OPC_CheckInteger, 1, ++/*361871*/ OPC_CheckType, MVT::i32, ++/*361873*/ OPC_MoveParent, ++/*361874*/ OPC_MoveChild, 10, ++/*361876*/ OPC_CheckInteger, 1, ++/*361878*/ OPC_CheckType, MVT::i32, ++/*361880*/ OPC_MoveParent, ++/*361881*/ OPC_MoveChild, 11, ++/*361883*/ OPC_CheckInteger, 1, ++/*361885*/ OPC_CheckType, MVT::i32, ++/*361887*/ OPC_MoveParent, ++/*361888*/ OPC_MoveChild, 12, ++/*361890*/ OPC_CheckInteger, 1, ++/*361892*/ OPC_CheckType, MVT::i32, ++/*361894*/ OPC_MoveParent, ++/*361895*/ OPC_MoveChild, 13, ++/*361897*/ OPC_CheckInteger, 1, ++/*361899*/ OPC_CheckType, MVT::i32, ++/*361901*/ OPC_MoveParent, ++/*361902*/ OPC_MoveChild, 14, ++/*361904*/ OPC_CheckInteger, 1, ++/*361906*/ OPC_CheckType, MVT::i32, ++/*361908*/ OPC_MoveParent, ++/*361909*/ OPC_MoveChild, 15, ++/*361911*/ OPC_CheckInteger, 1, ++/*361913*/ OPC_CheckType, MVT::i32, ++/*361915*/ OPC_MoveParent, ++/*361916*/ OPC_MoveParent, ++/*361917*/ OPC_MoveChild1, ++/*361918*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*361921*/ OPC_Scope, 120, /*->362043*/ // 2 children in Scope ++/*361923*/ OPC_CheckChild0Same, 1, ++/*361925*/ OPC_CheckChild1Same, 0, ++/*361927*/ OPC_MoveParent, ++/*361928*/ OPC_MoveParent, ++/*361929*/ OPC_MoveParent, ++/*361930*/ OPC_MoveChild1, ++/*361931*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*361934*/ OPC_CheckChild0Integer, 1, ++/*361936*/ OPC_CheckChild0Type, MVT::i32, ++/*361938*/ OPC_CheckChild1Integer, 1, ++/*361940*/ OPC_CheckChild1Type, MVT::i32, ++/*361942*/ OPC_CheckChild2Integer, 1, ++/*361944*/ OPC_CheckChild2Type, MVT::i32, ++/*361946*/ OPC_CheckChild3Integer, 1, ++/*361948*/ OPC_CheckChild3Type, MVT::i32, ++/*361950*/ OPC_CheckChild4Integer, 1, ++/*361952*/ OPC_CheckChild4Type, MVT::i32, ++/*361954*/ OPC_MoveChild5, ++/*361955*/ OPC_CheckInteger, 1, ++/*361957*/ OPC_CheckType, MVT::i32, ++/*361959*/ OPC_MoveParent, ++/*361960*/ OPC_MoveChild6, ++/*361961*/ OPC_CheckInteger, 1, ++/*361963*/ OPC_CheckType, MVT::i32, ++/*361965*/ OPC_MoveParent, ++/*361966*/ OPC_MoveChild7, ++/*361967*/ OPC_CheckInteger, 1, ++/*361969*/ OPC_CheckType, MVT::i32, ++/*361971*/ OPC_MoveParent, ++/*361972*/ OPC_MoveChild, 8, ++/*361974*/ OPC_CheckInteger, 1, ++/*361976*/ OPC_CheckType, MVT::i32, ++/*361978*/ OPC_MoveParent, ++/*361979*/ OPC_MoveChild, 9, ++/*361981*/ OPC_CheckInteger, 1, ++/*361983*/ OPC_CheckType, MVT::i32, ++/*361985*/ OPC_MoveParent, ++/*361986*/ OPC_MoveChild, 10, ++/*361988*/ OPC_CheckInteger, 1, ++/*361990*/ OPC_CheckType, MVT::i32, ++/*361992*/ OPC_MoveParent, ++/*361993*/ OPC_MoveChild, 11, ++/*361995*/ OPC_CheckInteger, 1, ++/*361997*/ OPC_CheckType, MVT::i32, ++/*361999*/ OPC_MoveParent, ++/*362000*/ OPC_MoveChild, 12, ++/*362002*/ OPC_CheckInteger, 1, ++/*362004*/ OPC_CheckType, MVT::i32, ++/*362006*/ OPC_MoveParent, ++/*362007*/ OPC_MoveChild, 13, ++/*362009*/ OPC_CheckInteger, 1, ++/*362011*/ OPC_CheckType, MVT::i32, ++/*362013*/ OPC_MoveParent, ++/*362014*/ OPC_MoveChild, 14, ++/*362016*/ OPC_CheckInteger, 1, ++/*362018*/ OPC_CheckType, MVT::i32, ++/*362020*/ OPC_MoveParent, ++/*362021*/ OPC_MoveChild, 15, ++/*362023*/ OPC_CheckInteger, 1, ++/*362025*/ OPC_CheckType, MVT::i32, ++/*362027*/ OPC_MoveParent, ++/*362028*/ OPC_CheckType, MVT::v16i8, ++/*362030*/ OPC_MoveParent, ++/*362031*/ OPC_CheckType, MVT::v16i8, ++/*362033*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*362035*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*362043*/ /*Scope*/ 120, /*->362164*/ ++/*362044*/ OPC_CheckChild0Same, 0, ++/*362046*/ OPC_CheckChild1Same, 1, ++/*362048*/ OPC_MoveParent, ++/*362049*/ OPC_MoveParent, ++/*362050*/ OPC_MoveParent, ++/*362051*/ OPC_MoveChild1, ++/*362052*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*362055*/ OPC_CheckChild0Integer, 1, ++/*362057*/ OPC_CheckChild0Type, MVT::i32, ++/*362059*/ OPC_CheckChild1Integer, 1, ++/*362061*/ OPC_CheckChild1Type, MVT::i32, ++/*362063*/ OPC_CheckChild2Integer, 1, ++/*362065*/ OPC_CheckChild2Type, MVT::i32, ++/*362067*/ OPC_CheckChild3Integer, 1, ++/*362069*/ OPC_CheckChild3Type, MVT::i32, ++/*362071*/ OPC_CheckChild4Integer, 1, ++/*362073*/ OPC_CheckChild4Type, MVT::i32, ++/*362075*/ OPC_MoveChild5, ++/*362076*/ OPC_CheckInteger, 1, ++/*362078*/ OPC_CheckType, MVT::i32, ++/*362080*/ OPC_MoveParent, ++/*362081*/ OPC_MoveChild6, ++/*362082*/ OPC_CheckInteger, 1, ++/*362084*/ OPC_CheckType, MVT::i32, ++/*362086*/ OPC_MoveParent, ++/*362087*/ OPC_MoveChild7, ++/*362088*/ OPC_CheckInteger, 1, ++/*362090*/ OPC_CheckType, MVT::i32, ++/*362092*/ OPC_MoveParent, ++/*362093*/ OPC_MoveChild, 8, ++/*362095*/ OPC_CheckInteger, 1, ++/*362097*/ OPC_CheckType, MVT::i32, ++/*362099*/ OPC_MoveParent, ++/*362100*/ OPC_MoveChild, 9, ++/*362102*/ OPC_CheckInteger, 1, ++/*362104*/ OPC_CheckType, MVT::i32, ++/*362106*/ OPC_MoveParent, ++/*362107*/ OPC_MoveChild, 10, ++/*362109*/ OPC_CheckInteger, 1, ++/*362111*/ OPC_CheckType, MVT::i32, ++/*362113*/ OPC_MoveParent, ++/*362114*/ OPC_MoveChild, 11, ++/*362116*/ OPC_CheckInteger, 1, ++/*362118*/ OPC_CheckType, MVT::i32, ++/*362120*/ OPC_MoveParent, ++/*362121*/ OPC_MoveChild, 12, ++/*362123*/ OPC_CheckInteger, 1, ++/*362125*/ OPC_CheckType, MVT::i32, ++/*362127*/ OPC_MoveParent, ++/*362128*/ OPC_MoveChild, 13, ++/*362130*/ OPC_CheckInteger, 1, ++/*362132*/ OPC_CheckType, MVT::i32, ++/*362134*/ OPC_MoveParent, ++/*362135*/ OPC_MoveChild, 14, ++/*362137*/ OPC_CheckInteger, 1, ++/*362139*/ OPC_CheckType, MVT::i32, ++/*362141*/ OPC_MoveParent, ++/*362142*/ OPC_MoveChild, 15, ++/*362144*/ OPC_CheckInteger, 1, ++/*362146*/ OPC_CheckType, MVT::i32, ++/*362148*/ OPC_MoveParent, ++/*362149*/ OPC_CheckType, MVT::v16i8, ++/*362151*/ OPC_MoveParent, ++/*362152*/ OPC_CheckType, MVT::v16i8, ++/*362154*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*362156*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*362164*/ 0, /*End of Scope*/ ++/*362165*/ 0, /*End of Scope*/ ++/*362166*/ /*Scope*/ 101|128,21/*2789*/, /*->364957*/ ++/*362168*/ OPC_MoveChild0, ++/*362169*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*362172*/ OPC_CheckChild0Integer, 1, ++/*362174*/ OPC_CheckChild0Type, MVT::i32, ++/*362176*/ OPC_CheckChild1Integer, 1, ++/*362178*/ OPC_CheckChild1Type, MVT::i32, ++/*362180*/ OPC_CheckChild2Integer, 1, ++/*362182*/ OPC_CheckChild2Type, MVT::i32, ++/*362184*/ OPC_CheckChild3Integer, 1, ++/*362186*/ OPC_CheckChild3Type, MVT::i32, ++/*362188*/ OPC_CheckChild4Integer, 1, ++/*362190*/ OPC_CheckChild4Type, MVT::i32, ++/*362192*/ OPC_MoveChild5, ++/*362193*/ OPC_CheckInteger, 1, ++/*362195*/ OPC_CheckType, MVT::i32, ++/*362197*/ OPC_MoveParent, ++/*362198*/ OPC_MoveChild6, ++/*362199*/ OPC_CheckInteger, 1, ++/*362201*/ OPC_CheckType, MVT::i32, ++/*362203*/ OPC_MoveParent, ++/*362204*/ OPC_MoveChild7, ++/*362205*/ OPC_CheckInteger, 1, ++/*362207*/ OPC_CheckType, MVT::i32, ++/*362209*/ OPC_MoveParent, ++/*362210*/ OPC_MoveChild, 8, ++/*362212*/ OPC_CheckInteger, 1, ++/*362214*/ OPC_CheckType, MVT::i32, ++/*362216*/ OPC_MoveParent, ++/*362217*/ OPC_MoveChild, 9, ++/*362219*/ OPC_CheckInteger, 1, ++/*362221*/ OPC_CheckType, MVT::i32, ++/*362223*/ OPC_MoveParent, ++/*362224*/ OPC_MoveChild, 10, ++/*362226*/ OPC_CheckInteger, 1, ++/*362228*/ OPC_CheckType, MVT::i32, ++/*362230*/ OPC_MoveParent, ++/*362231*/ OPC_MoveChild, 11, ++/*362233*/ OPC_CheckInteger, 1, ++/*362235*/ OPC_CheckType, MVT::i32, ++/*362237*/ OPC_MoveParent, ++/*362238*/ OPC_MoveChild, 12, ++/*362240*/ OPC_CheckInteger, 1, ++/*362242*/ OPC_CheckType, MVT::i32, ++/*362244*/ OPC_MoveParent, ++/*362245*/ OPC_MoveChild, 13, ++/*362247*/ OPC_CheckInteger, 1, ++/*362249*/ OPC_CheckType, MVT::i32, ++/*362251*/ OPC_MoveParent, ++/*362252*/ OPC_MoveChild, 14, ++/*362254*/ OPC_CheckInteger, 1, ++/*362256*/ OPC_CheckType, MVT::i32, ++/*362258*/ OPC_MoveParent, ++/*362259*/ OPC_MoveChild, 15, ++/*362261*/ OPC_CheckInteger, 1, ++/*362263*/ OPC_CheckType, MVT::i32, ++/*362265*/ OPC_MoveParent, ++/*362266*/ OPC_MoveParent, ++/*362267*/ OPC_RecordChild1, // #1 = $b ++/*362268*/ OPC_MoveParent, ++/*362269*/ OPC_MoveParent, ++/*362270*/ OPC_MoveChild1, ++/*362271*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*362274*/ OPC_CheckChild0Integer, 7, ++/*362276*/ OPC_CheckChild0Type, MVT::i32, ++/*362278*/ OPC_CheckChild1Integer, 7, ++/*362280*/ OPC_CheckChild1Type, MVT::i32, ++/*362282*/ OPC_CheckChild2Integer, 7, ++/*362284*/ OPC_CheckChild2Type, MVT::i32, ++/*362286*/ OPC_CheckChild3Integer, 7, ++/*362288*/ OPC_CheckChild3Type, MVT::i32, ++/*362290*/ OPC_CheckChild4Integer, 7, ++/*362292*/ OPC_CheckChild4Type, MVT::i32, ++/*362294*/ OPC_MoveChild5, ++/*362295*/ OPC_CheckInteger, 7, ++/*362297*/ OPC_CheckType, MVT::i32, ++/*362299*/ OPC_MoveParent, ++/*362300*/ OPC_MoveChild6, ++/*362301*/ OPC_CheckInteger, 7, ++/*362303*/ OPC_CheckType, MVT::i32, ++/*362305*/ OPC_MoveParent, ++/*362306*/ OPC_MoveChild7, ++/*362307*/ OPC_CheckInteger, 7, ++/*362309*/ OPC_CheckType, MVT::i32, ++/*362311*/ OPC_MoveParent, ++/*362312*/ OPC_MoveChild, 8, ++/*362314*/ OPC_CheckInteger, 7, ++/*362316*/ OPC_CheckType, MVT::i32, ++/*362318*/ OPC_MoveParent, ++/*362319*/ OPC_MoveChild, 9, ++/*362321*/ OPC_CheckInteger, 7, ++/*362323*/ OPC_CheckType, MVT::i32, ++/*362325*/ OPC_MoveParent, ++/*362326*/ OPC_MoveChild, 10, ++/*362328*/ OPC_CheckInteger, 7, ++/*362330*/ OPC_CheckType, MVT::i32, ++/*362332*/ OPC_MoveParent, ++/*362333*/ OPC_MoveChild, 11, ++/*362335*/ OPC_CheckInteger, 7, ++/*362337*/ OPC_CheckType, MVT::i32, ++/*362339*/ OPC_MoveParent, ++/*362340*/ OPC_MoveChild, 12, ++/*362342*/ OPC_CheckInteger, 7, ++/*362344*/ OPC_CheckType, MVT::i32, ++/*362346*/ OPC_MoveParent, ++/*362347*/ OPC_MoveChild, 13, ++/*362349*/ OPC_CheckInteger, 7, ++/*362351*/ OPC_CheckType, MVT::i32, ++/*362353*/ OPC_MoveParent, ++/*362354*/ OPC_MoveChild, 14, ++/*362356*/ OPC_CheckInteger, 7, ++/*362358*/ OPC_CheckType, MVT::i32, ++/*362360*/ OPC_MoveParent, ++/*362361*/ OPC_MoveChild, 15, ++/*362363*/ OPC_CheckInteger, 7, ++/*362365*/ OPC_CheckType, MVT::i32, ++/*362367*/ OPC_MoveParent, ++/*362368*/ OPC_CheckType, MVT::v16i8, ++/*362370*/ OPC_MoveParent, ++/*362371*/ OPC_MoveParent, ++/*362372*/ OPC_MoveChild1, ++/*362373*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*362376*/ OPC_Scope, 52|128,10/*1332*/, /*->363711*/ // 4 children in Scope ++/*362379*/ OPC_MoveChild0, ++/*362380*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*362383*/ OPC_Scope, 91|128,1/*219*/, /*->362605*/ // 6 children in Scope ++/*362386*/ OPC_MoveChild0, ++/*362387*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*362390*/ OPC_CheckChild0Integer, 1, ++/*362392*/ OPC_CheckChild0Type, MVT::i32, ++/*362394*/ OPC_CheckChild1Integer, 1, ++/*362396*/ OPC_CheckChild1Type, MVT::i32, ++/*362398*/ OPC_CheckChild2Integer, 1, ++/*362400*/ OPC_CheckChild2Type, MVT::i32, ++/*362402*/ OPC_CheckChild3Integer, 1, ++/*362404*/ OPC_CheckChild3Type, MVT::i32, ++/*362406*/ OPC_CheckChild4Integer, 1, ++/*362408*/ OPC_CheckChild4Type, MVT::i32, ++/*362410*/ OPC_MoveChild5, ++/*362411*/ OPC_CheckInteger, 1, ++/*362413*/ OPC_CheckType, MVT::i32, ++/*362415*/ OPC_MoveParent, ++/*362416*/ OPC_MoveChild6, ++/*362417*/ OPC_CheckInteger, 1, ++/*362419*/ OPC_CheckType, MVT::i32, ++/*362421*/ OPC_MoveParent, ++/*362422*/ OPC_MoveChild7, ++/*362423*/ OPC_CheckInteger, 1, ++/*362425*/ OPC_CheckType, MVT::i32, ++/*362427*/ OPC_MoveParent, ++/*362428*/ OPC_MoveChild, 8, ++/*362430*/ OPC_CheckInteger, 1, ++/*362432*/ OPC_CheckType, MVT::i32, ++/*362434*/ OPC_MoveParent, ++/*362435*/ OPC_MoveChild, 9, ++/*362437*/ OPC_CheckInteger, 1, ++/*362439*/ OPC_CheckType, MVT::i32, ++/*362441*/ OPC_MoveParent, ++/*362442*/ OPC_MoveChild, 10, ++/*362444*/ OPC_CheckInteger, 1, ++/*362446*/ OPC_CheckType, MVT::i32, ++/*362448*/ OPC_MoveParent, ++/*362449*/ OPC_MoveChild, 11, ++/*362451*/ OPC_CheckInteger, 1, ++/*362453*/ OPC_CheckType, MVT::i32, ++/*362455*/ OPC_MoveParent, ++/*362456*/ OPC_MoveChild, 12, ++/*362458*/ OPC_CheckInteger, 1, ++/*362460*/ OPC_CheckType, MVT::i32, ++/*362462*/ OPC_MoveParent, ++/*362463*/ OPC_MoveChild, 13, ++/*362465*/ OPC_CheckInteger, 1, ++/*362467*/ OPC_CheckType, MVT::i32, ++/*362469*/ OPC_MoveParent, ++/*362470*/ OPC_MoveChild, 14, ++/*362472*/ OPC_CheckInteger, 1, ++/*362474*/ OPC_CheckType, MVT::i32, ++/*362476*/ OPC_MoveParent, ++/*362477*/ OPC_MoveChild, 15, ++/*362479*/ OPC_CheckInteger, 1, ++/*362481*/ OPC_CheckType, MVT::i32, ++/*362483*/ OPC_MoveParent, ++/*362484*/ OPC_MoveParent, ++/*362485*/ OPC_CheckChild1Same, 0, ++/*362487*/ OPC_MoveParent, ++/*362488*/ OPC_CheckChild1Same, 1, ++/*362490*/ OPC_MoveParent, ++/*362491*/ OPC_MoveParent, ++/*362492*/ OPC_MoveChild1, ++/*362493*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*362496*/ OPC_CheckChild0Integer, 1, ++/*362498*/ OPC_CheckChild0Type, MVT::i32, ++/*362500*/ OPC_CheckChild1Integer, 1, ++/*362502*/ OPC_CheckChild1Type, MVT::i32, ++/*362504*/ OPC_CheckChild2Integer, 1, ++/*362506*/ OPC_CheckChild2Type, MVT::i32, ++/*362508*/ OPC_CheckChild3Integer, 1, ++/*362510*/ OPC_CheckChild3Type, MVT::i32, ++/*362512*/ OPC_CheckChild4Integer, 1, ++/*362514*/ OPC_CheckChild4Type, MVT::i32, ++/*362516*/ OPC_MoveChild5, ++/*362517*/ OPC_CheckInteger, 1, ++/*362519*/ OPC_CheckType, MVT::i32, ++/*362521*/ OPC_MoveParent, ++/*362522*/ OPC_MoveChild6, ++/*362523*/ OPC_CheckInteger, 1, ++/*362525*/ OPC_CheckType, MVT::i32, ++/*362527*/ OPC_MoveParent, ++/*362528*/ OPC_MoveChild7, ++/*362529*/ OPC_CheckInteger, 1, ++/*362531*/ OPC_CheckType, MVT::i32, ++/*362533*/ OPC_MoveParent, ++/*362534*/ OPC_MoveChild, 8, ++/*362536*/ OPC_CheckInteger, 1, ++/*362538*/ OPC_CheckType, MVT::i32, ++/*362540*/ OPC_MoveParent, ++/*362541*/ OPC_MoveChild, 9, ++/*362543*/ OPC_CheckInteger, 1, ++/*362545*/ OPC_CheckType, MVT::i32, ++/*362547*/ OPC_MoveParent, ++/*362548*/ OPC_MoveChild, 10, ++/*362550*/ OPC_CheckInteger, 1, ++/*362552*/ OPC_CheckType, MVT::i32, ++/*362554*/ OPC_MoveParent, ++/*362555*/ OPC_MoveChild, 11, ++/*362557*/ OPC_CheckInteger, 1, ++/*362559*/ OPC_CheckType, MVT::i32, ++/*362561*/ OPC_MoveParent, ++/*362562*/ OPC_MoveChild, 12, ++/*362564*/ OPC_CheckInteger, 1, ++/*362566*/ OPC_CheckType, MVT::i32, ++/*362568*/ OPC_MoveParent, ++/*362569*/ OPC_MoveChild, 13, ++/*362571*/ OPC_CheckInteger, 1, ++/*362573*/ OPC_CheckType, MVT::i32, ++/*362575*/ OPC_MoveParent, ++/*362576*/ OPC_MoveChild, 14, ++/*362578*/ OPC_CheckInteger, 1, ++/*362580*/ OPC_CheckType, MVT::i32, ++/*362582*/ OPC_MoveParent, ++/*362583*/ OPC_MoveChild, 15, ++/*362585*/ OPC_CheckInteger, 1, ++/*362587*/ OPC_CheckType, MVT::i32, ++/*362589*/ OPC_MoveParent, ++/*362590*/ OPC_CheckType, MVT::v16i8, ++/*362592*/ OPC_MoveParent, ++/*362593*/ OPC_CheckType, MVT::v16i8, ++/*362595*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*362597*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a), LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*362605*/ /*Scope*/ 91|128,1/*219*/, /*->362826*/ ++/*362607*/ OPC_CheckChild0Same, 0, ++/*362609*/ OPC_MoveChild1, ++/*362610*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*362613*/ OPC_CheckChild0Integer, 1, ++/*362615*/ OPC_CheckChild0Type, MVT::i32, ++/*362617*/ OPC_CheckChild1Integer, 1, ++/*362619*/ OPC_CheckChild1Type, MVT::i32, ++/*362621*/ OPC_CheckChild2Integer, 1, ++/*362623*/ OPC_CheckChild2Type, MVT::i32, ++/*362625*/ OPC_CheckChild3Integer, 1, ++/*362627*/ OPC_CheckChild3Type, MVT::i32, ++/*362629*/ OPC_CheckChild4Integer, 1, ++/*362631*/ OPC_CheckChild4Type, MVT::i32, ++/*362633*/ OPC_MoveChild5, ++/*362634*/ OPC_CheckInteger, 1, ++/*362636*/ OPC_CheckType, MVT::i32, ++/*362638*/ OPC_MoveParent, ++/*362639*/ OPC_MoveChild6, ++/*362640*/ OPC_CheckInteger, 1, ++/*362642*/ OPC_CheckType, MVT::i32, ++/*362644*/ OPC_MoveParent, ++/*362645*/ OPC_MoveChild7, ++/*362646*/ OPC_CheckInteger, 1, ++/*362648*/ OPC_CheckType, MVT::i32, ++/*362650*/ OPC_MoveParent, ++/*362651*/ OPC_MoveChild, 8, ++/*362653*/ OPC_CheckInteger, 1, ++/*362655*/ OPC_CheckType, MVT::i32, ++/*362657*/ OPC_MoveParent, ++/*362658*/ OPC_MoveChild, 9, ++/*362660*/ OPC_CheckInteger, 1, ++/*362662*/ OPC_CheckType, MVT::i32, ++/*362664*/ OPC_MoveParent, ++/*362665*/ OPC_MoveChild, 10, ++/*362667*/ OPC_CheckInteger, 1, ++/*362669*/ OPC_CheckType, MVT::i32, ++/*362671*/ OPC_MoveParent, ++/*362672*/ OPC_MoveChild, 11, ++/*362674*/ OPC_CheckInteger, 1, ++/*362676*/ OPC_CheckType, MVT::i32, ++/*362678*/ OPC_MoveParent, ++/*362679*/ OPC_MoveChild, 12, ++/*362681*/ OPC_CheckInteger, 1, ++/*362683*/ OPC_CheckType, MVT::i32, ++/*362685*/ OPC_MoveParent, ++/*362686*/ OPC_MoveChild, 13, ++/*362688*/ OPC_CheckInteger, 1, ++/*362690*/ OPC_CheckType, MVT::i32, ++/*362692*/ OPC_MoveParent, ++/*362693*/ OPC_MoveChild, 14, ++/*362695*/ OPC_CheckInteger, 1, ++/*362697*/ OPC_CheckType, MVT::i32, ++/*362699*/ OPC_MoveParent, ++/*362700*/ OPC_MoveChild, 15, ++/*362702*/ OPC_CheckInteger, 1, ++/*362704*/ OPC_CheckType, MVT::i32, ++/*362706*/ OPC_MoveParent, ++/*362707*/ OPC_MoveParent, ++/*362708*/ OPC_MoveParent, ++/*362709*/ OPC_CheckChild1Same, 1, ++/*362711*/ OPC_MoveParent, ++/*362712*/ OPC_MoveParent, ++/*362713*/ OPC_MoveChild1, ++/*362714*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*362717*/ OPC_CheckChild0Integer, 1, ++/*362719*/ OPC_CheckChild0Type, MVT::i32, ++/*362721*/ OPC_CheckChild1Integer, 1, ++/*362723*/ OPC_CheckChild1Type, MVT::i32, ++/*362725*/ OPC_CheckChild2Integer, 1, ++/*362727*/ OPC_CheckChild2Type, MVT::i32, ++/*362729*/ OPC_CheckChild3Integer, 1, ++/*362731*/ OPC_CheckChild3Type, MVT::i32, ++/*362733*/ OPC_CheckChild4Integer, 1, ++/*362735*/ OPC_CheckChild4Type, MVT::i32, ++/*362737*/ OPC_MoveChild5, ++/*362738*/ OPC_CheckInteger, 1, ++/*362740*/ OPC_CheckType, MVT::i32, ++/*362742*/ OPC_MoveParent, ++/*362743*/ OPC_MoveChild6, ++/*362744*/ OPC_CheckInteger, 1, ++/*362746*/ OPC_CheckType, MVT::i32, ++/*362748*/ OPC_MoveParent, ++/*362749*/ OPC_MoveChild7, ++/*362750*/ OPC_CheckInteger, 1, ++/*362752*/ OPC_CheckType, MVT::i32, ++/*362754*/ OPC_MoveParent, ++/*362755*/ OPC_MoveChild, 8, ++/*362757*/ OPC_CheckInteger, 1, ++/*362759*/ OPC_CheckType, MVT::i32, ++/*362761*/ OPC_MoveParent, ++/*362762*/ OPC_MoveChild, 9, ++/*362764*/ OPC_CheckInteger, 1, ++/*362766*/ OPC_CheckType, MVT::i32, ++/*362768*/ OPC_MoveParent, ++/*362769*/ OPC_MoveChild, 10, ++/*362771*/ OPC_CheckInteger, 1, ++/*362773*/ OPC_CheckType, MVT::i32, ++/*362775*/ OPC_MoveParent, ++/*362776*/ OPC_MoveChild, 11, ++/*362778*/ OPC_CheckInteger, 1, ++/*362780*/ OPC_CheckType, MVT::i32, ++/*362782*/ OPC_MoveParent, ++/*362783*/ OPC_MoveChild, 12, ++/*362785*/ OPC_CheckInteger, 1, ++/*362787*/ OPC_CheckType, MVT::i32, ++/*362789*/ OPC_MoveParent, ++/*362790*/ OPC_MoveChild, 13, ++/*362792*/ OPC_CheckInteger, 1, ++/*362794*/ OPC_CheckType, MVT::i32, ++/*362796*/ OPC_MoveParent, ++/*362797*/ OPC_MoveChild, 14, ++/*362799*/ OPC_CheckInteger, 1, ++/*362801*/ OPC_CheckType, MVT::i32, ++/*362803*/ OPC_MoveParent, ++/*362804*/ OPC_MoveChild, 15, ++/*362806*/ OPC_CheckInteger, 1, ++/*362808*/ OPC_CheckType, MVT::i32, ++/*362810*/ OPC_MoveParent, ++/*362811*/ OPC_CheckType, MVT::v16i8, ++/*362813*/ OPC_MoveParent, ++/*362814*/ OPC_CheckType, MVT::v16i8, ++/*362816*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*362818*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*362826*/ /*Scope*/ 91|128,1/*219*/, /*->363047*/ ++/*362828*/ OPC_MoveChild0, ++/*362829*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*362832*/ OPC_CheckChild0Integer, 1, ++/*362834*/ OPC_CheckChild0Type, MVT::i32, ++/*362836*/ OPC_CheckChild1Integer, 1, ++/*362838*/ OPC_CheckChild1Type, MVT::i32, ++/*362840*/ OPC_CheckChild2Integer, 1, ++/*362842*/ OPC_CheckChild2Type, MVT::i32, ++/*362844*/ OPC_CheckChild3Integer, 1, ++/*362846*/ OPC_CheckChild3Type, MVT::i32, ++/*362848*/ OPC_CheckChild4Integer, 1, ++/*362850*/ OPC_CheckChild4Type, MVT::i32, ++/*362852*/ OPC_MoveChild5, ++/*362853*/ OPC_CheckInteger, 1, ++/*362855*/ OPC_CheckType, MVT::i32, ++/*362857*/ OPC_MoveParent, ++/*362858*/ OPC_MoveChild6, ++/*362859*/ OPC_CheckInteger, 1, ++/*362861*/ OPC_CheckType, MVT::i32, ++/*362863*/ OPC_MoveParent, ++/*362864*/ OPC_MoveChild7, ++/*362865*/ OPC_CheckInteger, 1, ++/*362867*/ OPC_CheckType, MVT::i32, ++/*362869*/ OPC_MoveParent, ++/*362870*/ OPC_MoveChild, 8, ++/*362872*/ OPC_CheckInteger, 1, ++/*362874*/ OPC_CheckType, MVT::i32, ++/*362876*/ OPC_MoveParent, ++/*362877*/ OPC_MoveChild, 9, ++/*362879*/ OPC_CheckInteger, 1, ++/*362881*/ OPC_CheckType, MVT::i32, ++/*362883*/ OPC_MoveParent, ++/*362884*/ OPC_MoveChild, 10, ++/*362886*/ OPC_CheckInteger, 1, ++/*362888*/ OPC_CheckType, MVT::i32, ++/*362890*/ OPC_MoveParent, ++/*362891*/ OPC_MoveChild, 11, ++/*362893*/ OPC_CheckInteger, 1, ++/*362895*/ OPC_CheckType, MVT::i32, ++/*362897*/ OPC_MoveParent, ++/*362898*/ OPC_MoveChild, 12, ++/*362900*/ OPC_CheckInteger, 1, ++/*362902*/ OPC_CheckType, MVT::i32, ++/*362904*/ OPC_MoveParent, ++/*362905*/ OPC_MoveChild, 13, ++/*362907*/ OPC_CheckInteger, 1, ++/*362909*/ OPC_CheckType, MVT::i32, ++/*362911*/ OPC_MoveParent, ++/*362912*/ OPC_MoveChild, 14, ++/*362914*/ OPC_CheckInteger, 1, ++/*362916*/ OPC_CheckType, MVT::i32, ++/*362918*/ OPC_MoveParent, ++/*362919*/ OPC_MoveChild, 15, ++/*362921*/ OPC_CheckInteger, 1, ++/*362923*/ OPC_CheckType, MVT::i32, ++/*362925*/ OPC_MoveParent, ++/*362926*/ OPC_MoveParent, ++/*362927*/ OPC_CheckChild1Same, 1, ++/*362929*/ OPC_MoveParent, ++/*362930*/ OPC_CheckChild1Same, 0, ++/*362932*/ OPC_MoveParent, ++/*362933*/ OPC_MoveParent, ++/*362934*/ OPC_MoveChild1, ++/*362935*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*362938*/ OPC_CheckChild0Integer, 1, ++/*362940*/ OPC_CheckChild0Type, MVT::i32, ++/*362942*/ OPC_CheckChild1Integer, 1, ++/*362944*/ OPC_CheckChild1Type, MVT::i32, ++/*362946*/ OPC_CheckChild2Integer, 1, ++/*362948*/ OPC_CheckChild2Type, MVT::i32, ++/*362950*/ OPC_CheckChild3Integer, 1, ++/*362952*/ OPC_CheckChild3Type, MVT::i32, ++/*362954*/ OPC_CheckChild4Integer, 1, ++/*362956*/ OPC_CheckChild4Type, MVT::i32, ++/*362958*/ OPC_MoveChild5, ++/*362959*/ OPC_CheckInteger, 1, ++/*362961*/ OPC_CheckType, MVT::i32, ++/*362963*/ OPC_MoveParent, ++/*362964*/ OPC_MoveChild6, ++/*362965*/ OPC_CheckInteger, 1, ++/*362967*/ OPC_CheckType, MVT::i32, ++/*362969*/ OPC_MoveParent, ++/*362970*/ OPC_MoveChild7, ++/*362971*/ OPC_CheckInteger, 1, ++/*362973*/ OPC_CheckType, MVT::i32, ++/*362975*/ OPC_MoveParent, ++/*362976*/ OPC_MoveChild, 8, ++/*362978*/ OPC_CheckInteger, 1, ++/*362980*/ OPC_CheckType, MVT::i32, ++/*362982*/ OPC_MoveParent, ++/*362983*/ OPC_MoveChild, 9, ++/*362985*/ OPC_CheckInteger, 1, ++/*362987*/ OPC_CheckType, MVT::i32, ++/*362989*/ OPC_MoveParent, ++/*362990*/ OPC_MoveChild, 10, ++/*362992*/ OPC_CheckInteger, 1, ++/*362994*/ OPC_CheckType, MVT::i32, ++/*362996*/ OPC_MoveParent, ++/*362997*/ OPC_MoveChild, 11, ++/*362999*/ OPC_CheckInteger, 1, ++/*363001*/ OPC_CheckType, MVT::i32, ++/*363003*/ OPC_MoveParent, ++/*363004*/ OPC_MoveChild, 12, ++/*363006*/ OPC_CheckInteger, 1, ++/*363008*/ OPC_CheckType, MVT::i32, ++/*363010*/ OPC_MoveParent, ++/*363011*/ OPC_MoveChild, 13, ++/*363013*/ OPC_CheckInteger, 1, ++/*363015*/ OPC_CheckType, MVT::i32, ++/*363017*/ OPC_MoveParent, ++/*363018*/ OPC_MoveChild, 14, ++/*363020*/ OPC_CheckInteger, 1, ++/*363022*/ OPC_CheckType, MVT::i32, ++/*363024*/ OPC_MoveParent, ++/*363025*/ OPC_MoveChild, 15, ++/*363027*/ OPC_CheckInteger, 1, ++/*363029*/ OPC_CheckType, MVT::i32, ++/*363031*/ OPC_MoveParent, ++/*363032*/ OPC_CheckType, MVT::v16i8, ++/*363034*/ OPC_MoveParent, ++/*363035*/ OPC_CheckType, MVT::v16i8, ++/*363037*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*363039*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b), LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*363047*/ /*Scope*/ 91|128,1/*219*/, /*->363268*/ ++/*363049*/ OPC_CheckChild0Same, 1, ++/*363051*/ OPC_MoveChild1, ++/*363052*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*363055*/ OPC_CheckChild0Integer, 1, ++/*363057*/ OPC_CheckChild0Type, MVT::i32, ++/*363059*/ OPC_CheckChild1Integer, 1, ++/*363061*/ OPC_CheckChild1Type, MVT::i32, ++/*363063*/ OPC_CheckChild2Integer, 1, ++/*363065*/ OPC_CheckChild2Type, MVT::i32, ++/*363067*/ OPC_CheckChild3Integer, 1, ++/*363069*/ OPC_CheckChild3Type, MVT::i32, ++/*363071*/ OPC_CheckChild4Integer, 1, ++/*363073*/ OPC_CheckChild4Type, MVT::i32, ++/*363075*/ OPC_MoveChild5, ++/*363076*/ OPC_CheckInteger, 1, ++/*363078*/ OPC_CheckType, MVT::i32, ++/*363080*/ OPC_MoveParent, ++/*363081*/ OPC_MoveChild6, ++/*363082*/ OPC_CheckInteger, 1, ++/*363084*/ OPC_CheckType, MVT::i32, ++/*363086*/ OPC_MoveParent, ++/*363087*/ OPC_MoveChild7, ++/*363088*/ OPC_CheckInteger, 1, ++/*363090*/ OPC_CheckType, MVT::i32, ++/*363092*/ OPC_MoveParent, ++/*363093*/ OPC_MoveChild, 8, ++/*363095*/ OPC_CheckInteger, 1, ++/*363097*/ OPC_CheckType, MVT::i32, ++/*363099*/ OPC_MoveParent, ++/*363100*/ OPC_MoveChild, 9, ++/*363102*/ OPC_CheckInteger, 1, ++/*363104*/ OPC_CheckType, MVT::i32, ++/*363106*/ OPC_MoveParent, ++/*363107*/ OPC_MoveChild, 10, ++/*363109*/ OPC_CheckInteger, 1, ++/*363111*/ OPC_CheckType, MVT::i32, ++/*363113*/ OPC_MoveParent, ++/*363114*/ OPC_MoveChild, 11, ++/*363116*/ OPC_CheckInteger, 1, ++/*363118*/ OPC_CheckType, MVT::i32, ++/*363120*/ OPC_MoveParent, ++/*363121*/ OPC_MoveChild, 12, ++/*363123*/ OPC_CheckInteger, 1, ++/*363125*/ OPC_CheckType, MVT::i32, ++/*363127*/ OPC_MoveParent, ++/*363128*/ OPC_MoveChild, 13, ++/*363130*/ OPC_CheckInteger, 1, ++/*363132*/ OPC_CheckType, MVT::i32, ++/*363134*/ OPC_MoveParent, ++/*363135*/ OPC_MoveChild, 14, ++/*363137*/ OPC_CheckInteger, 1, ++/*363139*/ OPC_CheckType, MVT::i32, ++/*363141*/ OPC_MoveParent, ++/*363142*/ OPC_MoveChild, 15, ++/*363144*/ OPC_CheckInteger, 1, ++/*363146*/ OPC_CheckType, MVT::i32, ++/*363148*/ OPC_MoveParent, ++/*363149*/ OPC_MoveParent, ++/*363150*/ OPC_MoveParent, ++/*363151*/ OPC_CheckChild1Same, 0, ++/*363153*/ OPC_MoveParent, ++/*363154*/ OPC_MoveParent, ++/*363155*/ OPC_MoveChild1, ++/*363156*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*363159*/ OPC_CheckChild0Integer, 1, ++/*363161*/ OPC_CheckChild0Type, MVT::i32, ++/*363163*/ OPC_CheckChild1Integer, 1, ++/*363165*/ OPC_CheckChild1Type, MVT::i32, ++/*363167*/ OPC_CheckChild2Integer, 1, ++/*363169*/ OPC_CheckChild2Type, MVT::i32, ++/*363171*/ OPC_CheckChild3Integer, 1, ++/*363173*/ OPC_CheckChild3Type, MVT::i32, ++/*363175*/ OPC_CheckChild4Integer, 1, ++/*363177*/ OPC_CheckChild4Type, MVT::i32, ++/*363179*/ OPC_MoveChild5, ++/*363180*/ OPC_CheckInteger, 1, ++/*363182*/ OPC_CheckType, MVT::i32, ++/*363184*/ OPC_MoveParent, ++/*363185*/ OPC_MoveChild6, ++/*363186*/ OPC_CheckInteger, 1, ++/*363188*/ OPC_CheckType, MVT::i32, ++/*363190*/ OPC_MoveParent, ++/*363191*/ OPC_MoveChild7, ++/*363192*/ OPC_CheckInteger, 1, ++/*363194*/ OPC_CheckType, MVT::i32, ++/*363196*/ OPC_MoveParent, ++/*363197*/ OPC_MoveChild, 8, ++/*363199*/ OPC_CheckInteger, 1, ++/*363201*/ OPC_CheckType, MVT::i32, ++/*363203*/ OPC_MoveParent, ++/*363204*/ OPC_MoveChild, 9, ++/*363206*/ OPC_CheckInteger, 1, ++/*363208*/ OPC_CheckType, MVT::i32, ++/*363210*/ OPC_MoveParent, ++/*363211*/ OPC_MoveChild, 10, ++/*363213*/ OPC_CheckInteger, 1, ++/*363215*/ OPC_CheckType, MVT::i32, ++/*363217*/ OPC_MoveParent, ++/*363218*/ OPC_MoveChild, 11, ++/*363220*/ OPC_CheckInteger, 1, ++/*363222*/ OPC_CheckType, MVT::i32, ++/*363224*/ OPC_MoveParent, ++/*363225*/ OPC_MoveChild, 12, ++/*363227*/ OPC_CheckInteger, 1, ++/*363229*/ OPC_CheckType, MVT::i32, ++/*363231*/ OPC_MoveParent, ++/*363232*/ OPC_MoveChild, 13, ++/*363234*/ OPC_CheckInteger, 1, ++/*363236*/ OPC_CheckType, MVT::i32, ++/*363238*/ OPC_MoveParent, ++/*363239*/ OPC_MoveChild, 14, ++/*363241*/ OPC_CheckInteger, 1, ++/*363243*/ OPC_CheckType, MVT::i32, ++/*363245*/ OPC_MoveParent, ++/*363246*/ OPC_MoveChild, 15, ++/*363248*/ OPC_CheckInteger, 1, ++/*363250*/ OPC_CheckType, MVT::i32, ++/*363252*/ OPC_MoveParent, ++/*363253*/ OPC_CheckType, MVT::v16i8, ++/*363255*/ OPC_MoveParent, ++/*363256*/ OPC_CheckType, MVT::v16i8, ++/*363258*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*363260*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*363268*/ /*Scope*/ 91|128,1/*219*/, /*->363489*/ ++/*363270*/ OPC_CheckChild0Same, 0, ++/*363272*/ OPC_CheckChild1Same, 1, ++/*363274*/ OPC_MoveParent, ++/*363275*/ OPC_MoveChild1, ++/*363276*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*363279*/ OPC_CheckChild0Integer, 1, ++/*363281*/ OPC_CheckChild0Type, MVT::i32, ++/*363283*/ OPC_CheckChild1Integer, 1, ++/*363285*/ OPC_CheckChild1Type, MVT::i32, ++/*363287*/ OPC_CheckChild2Integer, 1, ++/*363289*/ OPC_CheckChild2Type, MVT::i32, ++/*363291*/ OPC_CheckChild3Integer, 1, ++/*363293*/ OPC_CheckChild3Type, MVT::i32, ++/*363295*/ OPC_CheckChild4Integer, 1, ++/*363297*/ OPC_CheckChild4Type, MVT::i32, ++/*363299*/ OPC_MoveChild5, ++/*363300*/ OPC_CheckInteger, 1, ++/*363302*/ OPC_CheckType, MVT::i32, ++/*363304*/ OPC_MoveParent, ++/*363305*/ OPC_MoveChild6, ++/*363306*/ OPC_CheckInteger, 1, ++/*363308*/ OPC_CheckType, MVT::i32, ++/*363310*/ OPC_MoveParent, ++/*363311*/ OPC_MoveChild7, ++/*363312*/ OPC_CheckInteger, 1, ++/*363314*/ OPC_CheckType, MVT::i32, ++/*363316*/ OPC_MoveParent, ++/*363317*/ OPC_MoveChild, 8, ++/*363319*/ OPC_CheckInteger, 1, ++/*363321*/ OPC_CheckType, MVT::i32, ++/*363323*/ OPC_MoveParent, ++/*363324*/ OPC_MoveChild, 9, ++/*363326*/ OPC_CheckInteger, 1, ++/*363328*/ OPC_CheckType, MVT::i32, ++/*363330*/ OPC_MoveParent, ++/*363331*/ OPC_MoveChild, 10, ++/*363333*/ OPC_CheckInteger, 1, ++/*363335*/ OPC_CheckType, MVT::i32, ++/*363337*/ OPC_MoveParent, ++/*363338*/ OPC_MoveChild, 11, ++/*363340*/ OPC_CheckInteger, 1, ++/*363342*/ OPC_CheckType, MVT::i32, ++/*363344*/ OPC_MoveParent, ++/*363345*/ OPC_MoveChild, 12, ++/*363347*/ OPC_CheckInteger, 1, ++/*363349*/ OPC_CheckType, MVT::i32, ++/*363351*/ OPC_MoveParent, ++/*363352*/ OPC_MoveChild, 13, ++/*363354*/ OPC_CheckInteger, 1, ++/*363356*/ OPC_CheckType, MVT::i32, ++/*363358*/ OPC_MoveParent, ++/*363359*/ OPC_MoveChild, 14, ++/*363361*/ OPC_CheckInteger, 1, ++/*363363*/ OPC_CheckType, MVT::i32, ++/*363365*/ OPC_MoveParent, ++/*363366*/ OPC_MoveChild, 15, ++/*363368*/ OPC_CheckInteger, 1, ++/*363370*/ OPC_CheckType, MVT::i32, ++/*363372*/ OPC_MoveParent, ++/*363373*/ OPC_MoveParent, ++/*363374*/ OPC_MoveParent, ++/*363375*/ OPC_MoveParent, ++/*363376*/ OPC_MoveChild1, ++/*363377*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*363380*/ OPC_CheckChild0Integer, 1, ++/*363382*/ OPC_CheckChild0Type, MVT::i32, ++/*363384*/ OPC_CheckChild1Integer, 1, ++/*363386*/ OPC_CheckChild1Type, MVT::i32, ++/*363388*/ OPC_CheckChild2Integer, 1, ++/*363390*/ OPC_CheckChild2Type, MVT::i32, ++/*363392*/ OPC_CheckChild3Integer, 1, ++/*363394*/ OPC_CheckChild3Type, MVT::i32, ++/*363396*/ OPC_CheckChild4Integer, 1, ++/*363398*/ OPC_CheckChild4Type, MVT::i32, ++/*363400*/ OPC_MoveChild5, ++/*363401*/ OPC_CheckInteger, 1, ++/*363403*/ OPC_CheckType, MVT::i32, ++/*363405*/ OPC_MoveParent, ++/*363406*/ OPC_MoveChild6, ++/*363407*/ OPC_CheckInteger, 1, ++/*363409*/ OPC_CheckType, MVT::i32, ++/*363411*/ OPC_MoveParent, ++/*363412*/ OPC_MoveChild7, ++/*363413*/ OPC_CheckInteger, 1, ++/*363415*/ OPC_CheckType, MVT::i32, ++/*363417*/ OPC_MoveParent, ++/*363418*/ OPC_MoveChild, 8, ++/*363420*/ OPC_CheckInteger, 1, ++/*363422*/ OPC_CheckType, MVT::i32, ++/*363424*/ OPC_MoveParent, ++/*363425*/ OPC_MoveChild, 9, ++/*363427*/ OPC_CheckInteger, 1, ++/*363429*/ OPC_CheckType, MVT::i32, ++/*363431*/ OPC_MoveParent, ++/*363432*/ OPC_MoveChild, 10, ++/*363434*/ OPC_CheckInteger, 1, ++/*363436*/ OPC_CheckType, MVT::i32, ++/*363438*/ OPC_MoveParent, ++/*363439*/ OPC_MoveChild, 11, ++/*363441*/ OPC_CheckInteger, 1, ++/*363443*/ OPC_CheckType, MVT::i32, ++/*363445*/ OPC_MoveParent, ++/*363446*/ OPC_MoveChild, 12, ++/*363448*/ OPC_CheckInteger, 1, ++/*363450*/ OPC_CheckType, MVT::i32, ++/*363452*/ OPC_MoveParent, ++/*363453*/ OPC_MoveChild, 13, ++/*363455*/ OPC_CheckInteger, 1, ++/*363457*/ OPC_CheckType, MVT::i32, ++/*363459*/ OPC_MoveParent, ++/*363460*/ OPC_MoveChild, 14, ++/*363462*/ OPC_CheckInteger, 1, ++/*363464*/ OPC_CheckType, MVT::i32, ++/*363466*/ OPC_MoveParent, ++/*363467*/ OPC_MoveChild, 15, ++/*363469*/ OPC_CheckInteger, 1, ++/*363471*/ OPC_CheckType, MVT::i32, ++/*363473*/ OPC_MoveParent, ++/*363474*/ OPC_CheckType, MVT::v16i8, ++/*363476*/ OPC_MoveParent, ++/*363477*/ OPC_CheckType, MVT::v16i8, ++/*363479*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*363481*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*363489*/ /*Scope*/ 91|128,1/*219*/, /*->363710*/ ++/*363491*/ OPC_CheckChild0Same, 1, ++/*363493*/ OPC_CheckChild1Same, 0, ++/*363495*/ OPC_MoveParent, ++/*363496*/ OPC_MoveChild1, ++/*363497*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*363500*/ OPC_CheckChild0Integer, 1, ++/*363502*/ OPC_CheckChild0Type, MVT::i32, ++/*363504*/ OPC_CheckChild1Integer, 1, ++/*363506*/ OPC_CheckChild1Type, MVT::i32, ++/*363508*/ OPC_CheckChild2Integer, 1, ++/*363510*/ OPC_CheckChild2Type, MVT::i32, ++/*363512*/ OPC_CheckChild3Integer, 1, ++/*363514*/ OPC_CheckChild3Type, MVT::i32, ++/*363516*/ OPC_CheckChild4Integer, 1, ++/*363518*/ OPC_CheckChild4Type, MVT::i32, ++/*363520*/ OPC_MoveChild5, ++/*363521*/ OPC_CheckInteger, 1, ++/*363523*/ OPC_CheckType, MVT::i32, ++/*363525*/ OPC_MoveParent, ++/*363526*/ OPC_MoveChild6, ++/*363527*/ OPC_CheckInteger, 1, ++/*363529*/ OPC_CheckType, MVT::i32, ++/*363531*/ OPC_MoveParent, ++/*363532*/ OPC_MoveChild7, ++/*363533*/ OPC_CheckInteger, 1, ++/*363535*/ OPC_CheckType, MVT::i32, ++/*363537*/ OPC_MoveParent, ++/*363538*/ OPC_MoveChild, 8, ++/*363540*/ OPC_CheckInteger, 1, ++/*363542*/ OPC_CheckType, MVT::i32, ++/*363544*/ OPC_MoveParent, ++/*363545*/ OPC_MoveChild, 9, ++/*363547*/ OPC_CheckInteger, 1, ++/*363549*/ OPC_CheckType, MVT::i32, ++/*363551*/ OPC_MoveParent, ++/*363552*/ OPC_MoveChild, 10, ++/*363554*/ OPC_CheckInteger, 1, ++/*363556*/ OPC_CheckType, MVT::i32, ++/*363558*/ OPC_MoveParent, ++/*363559*/ OPC_MoveChild, 11, ++/*363561*/ OPC_CheckInteger, 1, ++/*363563*/ OPC_CheckType, MVT::i32, ++/*363565*/ OPC_MoveParent, ++/*363566*/ OPC_MoveChild, 12, ++/*363568*/ OPC_CheckInteger, 1, ++/*363570*/ OPC_CheckType, MVT::i32, ++/*363572*/ OPC_MoveParent, ++/*363573*/ OPC_MoveChild, 13, ++/*363575*/ OPC_CheckInteger, 1, ++/*363577*/ OPC_CheckType, MVT::i32, ++/*363579*/ OPC_MoveParent, ++/*363580*/ OPC_MoveChild, 14, ++/*363582*/ OPC_CheckInteger, 1, ++/*363584*/ OPC_CheckType, MVT::i32, ++/*363586*/ OPC_MoveParent, ++/*363587*/ OPC_MoveChild, 15, ++/*363589*/ OPC_CheckInteger, 1, ++/*363591*/ OPC_CheckType, MVT::i32, ++/*363593*/ OPC_MoveParent, ++/*363594*/ OPC_MoveParent, ++/*363595*/ OPC_MoveParent, ++/*363596*/ OPC_MoveParent, ++/*363597*/ OPC_MoveChild1, ++/*363598*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*363601*/ OPC_CheckChild0Integer, 1, ++/*363603*/ OPC_CheckChild0Type, MVT::i32, ++/*363605*/ OPC_CheckChild1Integer, 1, ++/*363607*/ OPC_CheckChild1Type, MVT::i32, ++/*363609*/ OPC_CheckChild2Integer, 1, ++/*363611*/ OPC_CheckChild2Type, MVT::i32, ++/*363613*/ OPC_CheckChild3Integer, 1, ++/*363615*/ OPC_CheckChild3Type, MVT::i32, ++/*363617*/ OPC_CheckChild4Integer, 1, ++/*363619*/ OPC_CheckChild4Type, MVT::i32, ++/*363621*/ OPC_MoveChild5, ++/*363622*/ OPC_CheckInteger, 1, ++/*363624*/ OPC_CheckType, MVT::i32, ++/*363626*/ OPC_MoveParent, ++/*363627*/ OPC_MoveChild6, ++/*363628*/ OPC_CheckInteger, 1, ++/*363630*/ OPC_CheckType, MVT::i32, ++/*363632*/ OPC_MoveParent, ++/*363633*/ OPC_MoveChild7, ++/*363634*/ OPC_CheckInteger, 1, ++/*363636*/ OPC_CheckType, MVT::i32, ++/*363638*/ OPC_MoveParent, ++/*363639*/ OPC_MoveChild, 8, ++/*363641*/ OPC_CheckInteger, 1, ++/*363643*/ OPC_CheckType, MVT::i32, ++/*363645*/ OPC_MoveParent, ++/*363646*/ OPC_MoveChild, 9, ++/*363648*/ OPC_CheckInteger, 1, ++/*363650*/ OPC_CheckType, MVT::i32, ++/*363652*/ OPC_MoveParent, ++/*363653*/ OPC_MoveChild, 10, ++/*363655*/ OPC_CheckInteger, 1, ++/*363657*/ OPC_CheckType, MVT::i32, ++/*363659*/ OPC_MoveParent, ++/*363660*/ OPC_MoveChild, 11, ++/*363662*/ OPC_CheckInteger, 1, ++/*363664*/ OPC_CheckType, MVT::i32, ++/*363666*/ OPC_MoveParent, ++/*363667*/ OPC_MoveChild, 12, ++/*363669*/ OPC_CheckInteger, 1, ++/*363671*/ OPC_CheckType, MVT::i32, ++/*363673*/ OPC_MoveParent, ++/*363674*/ OPC_MoveChild, 13, ++/*363676*/ OPC_CheckInteger, 1, ++/*363678*/ OPC_CheckType, MVT::i32, ++/*363680*/ OPC_MoveParent, ++/*363681*/ OPC_MoveChild, 14, ++/*363683*/ OPC_CheckInteger, 1, ++/*363685*/ OPC_CheckType, MVT::i32, ++/*363687*/ OPC_MoveParent, ++/*363688*/ OPC_MoveChild, 15, ++/*363690*/ OPC_CheckInteger, 1, ++/*363692*/ OPC_CheckType, MVT::i32, ++/*363694*/ OPC_MoveParent, ++/*363695*/ OPC_CheckType, MVT::v16i8, ++/*363697*/ OPC_MoveParent, ++/*363698*/ OPC_CheckType, MVT::v16i8, ++/*363700*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*363702*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*363710*/ 0, /*End of Scope*/ ++/*363711*/ /*Scope*/ 62|128,3/*446*/, /*->364159*/ ++/*363713*/ OPC_CheckChild0Same, 1, ++/*363715*/ OPC_MoveChild1, ++/*363716*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*363719*/ OPC_Scope, 89|128,1/*217*/, /*->363939*/ // 2 children in Scope ++/*363722*/ OPC_MoveChild0, ++/*363723*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*363726*/ OPC_CheckChild0Integer, 1, ++/*363728*/ OPC_CheckChild0Type, MVT::i32, ++/*363730*/ OPC_CheckChild1Integer, 1, ++/*363732*/ OPC_CheckChild1Type, MVT::i32, ++/*363734*/ OPC_CheckChild2Integer, 1, ++/*363736*/ OPC_CheckChild2Type, MVT::i32, ++/*363738*/ OPC_CheckChild3Integer, 1, ++/*363740*/ OPC_CheckChild3Type, MVT::i32, ++/*363742*/ OPC_CheckChild4Integer, 1, ++/*363744*/ OPC_CheckChild4Type, MVT::i32, ++/*363746*/ OPC_MoveChild5, ++/*363747*/ OPC_CheckInteger, 1, ++/*363749*/ OPC_CheckType, MVT::i32, ++/*363751*/ OPC_MoveParent, ++/*363752*/ OPC_MoveChild6, ++/*363753*/ OPC_CheckInteger, 1, ++/*363755*/ OPC_CheckType, MVT::i32, ++/*363757*/ OPC_MoveParent, ++/*363758*/ OPC_MoveChild7, ++/*363759*/ OPC_CheckInteger, 1, ++/*363761*/ OPC_CheckType, MVT::i32, ++/*363763*/ OPC_MoveParent, ++/*363764*/ OPC_MoveChild, 8, ++/*363766*/ OPC_CheckInteger, 1, ++/*363768*/ OPC_CheckType, MVT::i32, ++/*363770*/ OPC_MoveParent, ++/*363771*/ OPC_MoveChild, 9, ++/*363773*/ OPC_CheckInteger, 1, ++/*363775*/ OPC_CheckType, MVT::i32, ++/*363777*/ OPC_MoveParent, ++/*363778*/ OPC_MoveChild, 10, ++/*363780*/ OPC_CheckInteger, 1, ++/*363782*/ OPC_CheckType, MVT::i32, ++/*363784*/ OPC_MoveParent, ++/*363785*/ OPC_MoveChild, 11, ++/*363787*/ OPC_CheckInteger, 1, ++/*363789*/ OPC_CheckType, MVT::i32, ++/*363791*/ OPC_MoveParent, ++/*363792*/ OPC_MoveChild, 12, ++/*363794*/ OPC_CheckInteger, 1, ++/*363796*/ OPC_CheckType, MVT::i32, ++/*363798*/ OPC_MoveParent, ++/*363799*/ OPC_MoveChild, 13, ++/*363801*/ OPC_CheckInteger, 1, ++/*363803*/ OPC_CheckType, MVT::i32, ++/*363805*/ OPC_MoveParent, ++/*363806*/ OPC_MoveChild, 14, ++/*363808*/ OPC_CheckInteger, 1, ++/*363810*/ OPC_CheckType, MVT::i32, ++/*363812*/ OPC_MoveParent, ++/*363813*/ OPC_MoveChild, 15, ++/*363815*/ OPC_CheckInteger, 1, ++/*363817*/ OPC_CheckType, MVT::i32, ++/*363819*/ OPC_MoveParent, ++/*363820*/ OPC_MoveParent, ++/*363821*/ OPC_CheckChild1Same, 0, ++/*363823*/ OPC_MoveParent, ++/*363824*/ OPC_MoveParent, ++/*363825*/ OPC_MoveParent, ++/*363826*/ OPC_MoveChild1, ++/*363827*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*363830*/ OPC_CheckChild0Integer, 1, ++/*363832*/ OPC_CheckChild0Type, MVT::i32, ++/*363834*/ OPC_CheckChild1Integer, 1, ++/*363836*/ OPC_CheckChild1Type, MVT::i32, ++/*363838*/ OPC_CheckChild2Integer, 1, ++/*363840*/ OPC_CheckChild2Type, MVT::i32, ++/*363842*/ OPC_CheckChild3Integer, 1, ++/*363844*/ OPC_CheckChild3Type, MVT::i32, ++/*363846*/ OPC_CheckChild4Integer, 1, ++/*363848*/ OPC_CheckChild4Type, MVT::i32, ++/*363850*/ OPC_MoveChild5, ++/*363851*/ OPC_CheckInteger, 1, ++/*363853*/ OPC_CheckType, MVT::i32, ++/*363855*/ OPC_MoveParent, ++/*363856*/ OPC_MoveChild6, ++/*363857*/ OPC_CheckInteger, 1, ++/*363859*/ OPC_CheckType, MVT::i32, ++/*363861*/ OPC_MoveParent, ++/*363862*/ OPC_MoveChild7, ++/*363863*/ OPC_CheckInteger, 1, ++/*363865*/ OPC_CheckType, MVT::i32, ++/*363867*/ OPC_MoveParent, ++/*363868*/ OPC_MoveChild, 8, ++/*363870*/ OPC_CheckInteger, 1, ++/*363872*/ OPC_CheckType, MVT::i32, ++/*363874*/ OPC_MoveParent, ++/*363875*/ OPC_MoveChild, 9, ++/*363877*/ OPC_CheckInteger, 1, ++/*363879*/ OPC_CheckType, MVT::i32, ++/*363881*/ OPC_MoveParent, ++/*363882*/ OPC_MoveChild, 10, ++/*363884*/ OPC_CheckInteger, 1, ++/*363886*/ OPC_CheckType, MVT::i32, ++/*363888*/ OPC_MoveParent, ++/*363889*/ OPC_MoveChild, 11, ++/*363891*/ OPC_CheckInteger, 1, ++/*363893*/ OPC_CheckType, MVT::i32, ++/*363895*/ OPC_MoveParent, ++/*363896*/ OPC_MoveChild, 12, ++/*363898*/ OPC_CheckInteger, 1, ++/*363900*/ OPC_CheckType, MVT::i32, ++/*363902*/ OPC_MoveParent, ++/*363903*/ OPC_MoveChild, 13, ++/*363905*/ OPC_CheckInteger, 1, ++/*363907*/ OPC_CheckType, MVT::i32, ++/*363909*/ OPC_MoveParent, ++/*363910*/ OPC_MoveChild, 14, ++/*363912*/ OPC_CheckInteger, 1, ++/*363914*/ OPC_CheckType, MVT::i32, ++/*363916*/ OPC_MoveParent, ++/*363917*/ OPC_MoveChild, 15, ++/*363919*/ OPC_CheckInteger, 1, ++/*363921*/ OPC_CheckType, MVT::i32, ++/*363923*/ OPC_MoveParent, ++/*363924*/ OPC_CheckType, MVT::v16i8, ++/*363926*/ OPC_MoveParent, ++/*363927*/ OPC_CheckType, MVT::v16i8, ++/*363929*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*363931*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*363939*/ /*Scope*/ 89|128,1/*217*/, /*->364158*/ ++/*363941*/ OPC_CheckChild0Same, 0, ++/*363943*/ OPC_MoveChild1, ++/*363944*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*363947*/ OPC_CheckChild0Integer, 1, ++/*363949*/ OPC_CheckChild0Type, MVT::i32, ++/*363951*/ OPC_CheckChild1Integer, 1, ++/*363953*/ OPC_CheckChild1Type, MVT::i32, ++/*363955*/ OPC_CheckChild2Integer, 1, ++/*363957*/ OPC_CheckChild2Type, MVT::i32, ++/*363959*/ OPC_CheckChild3Integer, 1, ++/*363961*/ OPC_CheckChild3Type, MVT::i32, ++/*363963*/ OPC_CheckChild4Integer, 1, ++/*363965*/ OPC_CheckChild4Type, MVT::i32, ++/*363967*/ OPC_MoveChild5, ++/*363968*/ OPC_CheckInteger, 1, ++/*363970*/ OPC_CheckType, MVT::i32, ++/*363972*/ OPC_MoveParent, ++/*363973*/ OPC_MoveChild6, ++/*363974*/ OPC_CheckInteger, 1, ++/*363976*/ OPC_CheckType, MVT::i32, ++/*363978*/ OPC_MoveParent, ++/*363979*/ OPC_MoveChild7, ++/*363980*/ OPC_CheckInteger, 1, ++/*363982*/ OPC_CheckType, MVT::i32, ++/*363984*/ OPC_MoveParent, ++/*363985*/ OPC_MoveChild, 8, ++/*363987*/ OPC_CheckInteger, 1, ++/*363989*/ OPC_CheckType, MVT::i32, ++/*363991*/ OPC_MoveParent, ++/*363992*/ OPC_MoveChild, 9, ++/*363994*/ OPC_CheckInteger, 1, ++/*363996*/ OPC_CheckType, MVT::i32, ++/*363998*/ OPC_MoveParent, ++/*363999*/ OPC_MoveChild, 10, ++/*364001*/ OPC_CheckInteger, 1, ++/*364003*/ OPC_CheckType, MVT::i32, ++/*364005*/ OPC_MoveParent, ++/*364006*/ OPC_MoveChild, 11, ++/*364008*/ OPC_CheckInteger, 1, ++/*364010*/ OPC_CheckType, MVT::i32, ++/*364012*/ OPC_MoveParent, ++/*364013*/ OPC_MoveChild, 12, ++/*364015*/ OPC_CheckInteger, 1, ++/*364017*/ OPC_CheckType, MVT::i32, ++/*364019*/ OPC_MoveParent, ++/*364020*/ OPC_MoveChild, 13, ++/*364022*/ OPC_CheckInteger, 1, ++/*364024*/ OPC_CheckType, MVT::i32, ++/*364026*/ OPC_MoveParent, ++/*364027*/ OPC_MoveChild, 14, ++/*364029*/ OPC_CheckInteger, 1, ++/*364031*/ OPC_CheckType, MVT::i32, ++/*364033*/ OPC_MoveParent, ++/*364034*/ OPC_MoveChild, 15, ++/*364036*/ OPC_CheckInteger, 1, ++/*364038*/ OPC_CheckType, MVT::i32, ++/*364040*/ OPC_MoveParent, ++/*364041*/ OPC_MoveParent, ++/*364042*/ OPC_MoveParent, ++/*364043*/ OPC_MoveParent, ++/*364044*/ OPC_MoveParent, ++/*364045*/ OPC_MoveChild1, ++/*364046*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*364049*/ OPC_CheckChild0Integer, 1, ++/*364051*/ OPC_CheckChild0Type, MVT::i32, ++/*364053*/ OPC_CheckChild1Integer, 1, ++/*364055*/ OPC_CheckChild1Type, MVT::i32, ++/*364057*/ OPC_CheckChild2Integer, 1, ++/*364059*/ OPC_CheckChild2Type, MVT::i32, ++/*364061*/ OPC_CheckChild3Integer, 1, ++/*364063*/ OPC_CheckChild3Type, MVT::i32, ++/*364065*/ OPC_CheckChild4Integer, 1, ++/*364067*/ OPC_CheckChild4Type, MVT::i32, ++/*364069*/ OPC_MoveChild5, ++/*364070*/ OPC_CheckInteger, 1, ++/*364072*/ OPC_CheckType, MVT::i32, ++/*364074*/ OPC_MoveParent, ++/*364075*/ OPC_MoveChild6, ++/*364076*/ OPC_CheckInteger, 1, ++/*364078*/ OPC_CheckType, MVT::i32, ++/*364080*/ OPC_MoveParent, ++/*364081*/ OPC_MoveChild7, ++/*364082*/ OPC_CheckInteger, 1, ++/*364084*/ OPC_CheckType, MVT::i32, ++/*364086*/ OPC_MoveParent, ++/*364087*/ OPC_MoveChild, 8, ++/*364089*/ OPC_CheckInteger, 1, ++/*364091*/ OPC_CheckType, MVT::i32, ++/*364093*/ OPC_MoveParent, ++/*364094*/ OPC_MoveChild, 9, ++/*364096*/ OPC_CheckInteger, 1, ++/*364098*/ OPC_CheckType, MVT::i32, ++/*364100*/ OPC_MoveParent, ++/*364101*/ OPC_MoveChild, 10, ++/*364103*/ OPC_CheckInteger, 1, ++/*364105*/ OPC_CheckType, MVT::i32, ++/*364107*/ OPC_MoveParent, ++/*364108*/ OPC_MoveChild, 11, ++/*364110*/ OPC_CheckInteger, 1, ++/*364112*/ OPC_CheckType, MVT::i32, ++/*364114*/ OPC_MoveParent, ++/*364115*/ OPC_MoveChild, 12, ++/*364117*/ OPC_CheckInteger, 1, ++/*364119*/ OPC_CheckType, MVT::i32, ++/*364121*/ OPC_MoveParent, ++/*364122*/ OPC_MoveChild, 13, ++/*364124*/ OPC_CheckInteger, 1, ++/*364126*/ OPC_CheckType, MVT::i32, ++/*364128*/ OPC_MoveParent, ++/*364129*/ OPC_MoveChild, 14, ++/*364131*/ OPC_CheckInteger, 1, ++/*364133*/ OPC_CheckType, MVT::i32, ++/*364135*/ OPC_MoveParent, ++/*364136*/ OPC_MoveChild, 15, ++/*364138*/ OPC_CheckInteger, 1, ++/*364140*/ OPC_CheckType, MVT::i32, ++/*364142*/ OPC_MoveParent, ++/*364143*/ OPC_CheckType, MVT::v16i8, ++/*364145*/ OPC_MoveParent, ++/*364146*/ OPC_CheckType, MVT::v16i8, ++/*364148*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*364150*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*364158*/ 0, /*End of Scope*/ ++/*364159*/ /*Scope*/ 62|128,3/*446*/, /*->364607*/ ++/*364161*/ OPC_CheckChild0Same, 0, ++/*364163*/ OPC_MoveChild1, ++/*364164*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*364167*/ OPC_Scope, 89|128,1/*217*/, /*->364387*/ // 2 children in Scope ++/*364170*/ OPC_MoveChild0, ++/*364171*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*364174*/ OPC_CheckChild0Integer, 1, ++/*364176*/ OPC_CheckChild0Type, MVT::i32, ++/*364178*/ OPC_CheckChild1Integer, 1, ++/*364180*/ OPC_CheckChild1Type, MVT::i32, ++/*364182*/ OPC_CheckChild2Integer, 1, ++/*364184*/ OPC_CheckChild2Type, MVT::i32, ++/*364186*/ OPC_CheckChild3Integer, 1, ++/*364188*/ OPC_CheckChild3Type, MVT::i32, ++/*364190*/ OPC_CheckChild4Integer, 1, ++/*364192*/ OPC_CheckChild4Type, MVT::i32, ++/*364194*/ OPC_MoveChild5, ++/*364195*/ OPC_CheckInteger, 1, ++/*364197*/ OPC_CheckType, MVT::i32, ++/*364199*/ OPC_MoveParent, ++/*364200*/ OPC_MoveChild6, ++/*364201*/ OPC_CheckInteger, 1, ++/*364203*/ OPC_CheckType, MVT::i32, ++/*364205*/ OPC_MoveParent, ++/*364206*/ OPC_MoveChild7, ++/*364207*/ OPC_CheckInteger, 1, ++/*364209*/ OPC_CheckType, MVT::i32, ++/*364211*/ OPC_MoveParent, ++/*364212*/ OPC_MoveChild, 8, ++/*364214*/ OPC_CheckInteger, 1, ++/*364216*/ OPC_CheckType, MVT::i32, ++/*364218*/ OPC_MoveParent, ++/*364219*/ OPC_MoveChild, 9, ++/*364221*/ OPC_CheckInteger, 1, ++/*364223*/ OPC_CheckType, MVT::i32, ++/*364225*/ OPC_MoveParent, ++/*364226*/ OPC_MoveChild, 10, ++/*364228*/ OPC_CheckInteger, 1, ++/*364230*/ OPC_CheckType, MVT::i32, ++/*364232*/ OPC_MoveParent, ++/*364233*/ OPC_MoveChild, 11, ++/*364235*/ OPC_CheckInteger, 1, ++/*364237*/ OPC_CheckType, MVT::i32, ++/*364239*/ OPC_MoveParent, ++/*364240*/ OPC_MoveChild, 12, ++/*364242*/ OPC_CheckInteger, 1, ++/*364244*/ OPC_CheckType, MVT::i32, ++/*364246*/ OPC_MoveParent, ++/*364247*/ OPC_MoveChild, 13, ++/*364249*/ OPC_CheckInteger, 1, ++/*364251*/ OPC_CheckType, MVT::i32, ++/*364253*/ OPC_MoveParent, ++/*364254*/ OPC_MoveChild, 14, ++/*364256*/ OPC_CheckInteger, 1, ++/*364258*/ OPC_CheckType, MVT::i32, ++/*364260*/ OPC_MoveParent, ++/*364261*/ OPC_MoveChild, 15, ++/*364263*/ OPC_CheckInteger, 1, ++/*364265*/ OPC_CheckType, MVT::i32, ++/*364267*/ OPC_MoveParent, ++/*364268*/ OPC_MoveParent, ++/*364269*/ OPC_CheckChild1Same, 1, ++/*364271*/ OPC_MoveParent, ++/*364272*/ OPC_MoveParent, ++/*364273*/ OPC_MoveParent, ++/*364274*/ OPC_MoveChild1, ++/*364275*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*364278*/ OPC_CheckChild0Integer, 1, ++/*364280*/ OPC_CheckChild0Type, MVT::i32, ++/*364282*/ OPC_CheckChild1Integer, 1, ++/*364284*/ OPC_CheckChild1Type, MVT::i32, ++/*364286*/ OPC_CheckChild2Integer, 1, ++/*364288*/ OPC_CheckChild2Type, MVT::i32, ++/*364290*/ OPC_CheckChild3Integer, 1, ++/*364292*/ OPC_CheckChild3Type, MVT::i32, ++/*364294*/ OPC_CheckChild4Integer, 1, ++/*364296*/ OPC_CheckChild4Type, MVT::i32, ++/*364298*/ OPC_MoveChild5, ++/*364299*/ OPC_CheckInteger, 1, ++/*364301*/ OPC_CheckType, MVT::i32, ++/*364303*/ OPC_MoveParent, ++/*364304*/ OPC_MoveChild6, ++/*364305*/ OPC_CheckInteger, 1, ++/*364307*/ OPC_CheckType, MVT::i32, ++/*364309*/ OPC_MoveParent, ++/*364310*/ OPC_MoveChild7, ++/*364311*/ OPC_CheckInteger, 1, ++/*364313*/ OPC_CheckType, MVT::i32, ++/*364315*/ OPC_MoveParent, ++/*364316*/ OPC_MoveChild, 8, ++/*364318*/ OPC_CheckInteger, 1, ++/*364320*/ OPC_CheckType, MVT::i32, ++/*364322*/ OPC_MoveParent, ++/*364323*/ OPC_MoveChild, 9, ++/*364325*/ OPC_CheckInteger, 1, ++/*364327*/ OPC_CheckType, MVT::i32, ++/*364329*/ OPC_MoveParent, ++/*364330*/ OPC_MoveChild, 10, ++/*364332*/ OPC_CheckInteger, 1, ++/*364334*/ OPC_CheckType, MVT::i32, ++/*364336*/ OPC_MoveParent, ++/*364337*/ OPC_MoveChild, 11, ++/*364339*/ OPC_CheckInteger, 1, ++/*364341*/ OPC_CheckType, MVT::i32, ++/*364343*/ OPC_MoveParent, ++/*364344*/ OPC_MoveChild, 12, ++/*364346*/ OPC_CheckInteger, 1, ++/*364348*/ OPC_CheckType, MVT::i32, ++/*364350*/ OPC_MoveParent, ++/*364351*/ OPC_MoveChild, 13, ++/*364353*/ OPC_CheckInteger, 1, ++/*364355*/ OPC_CheckType, MVT::i32, ++/*364357*/ OPC_MoveParent, ++/*364358*/ OPC_MoveChild, 14, ++/*364360*/ OPC_CheckInteger, 1, ++/*364362*/ OPC_CheckType, MVT::i32, ++/*364364*/ OPC_MoveParent, ++/*364365*/ OPC_MoveChild, 15, ++/*364367*/ OPC_CheckInteger, 1, ++/*364369*/ OPC_CheckType, MVT::i32, ++/*364371*/ OPC_MoveParent, ++/*364372*/ OPC_CheckType, MVT::v16i8, ++/*364374*/ OPC_MoveParent, ++/*364375*/ OPC_CheckType, MVT::v16i8, ++/*364377*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*364379*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*364387*/ /*Scope*/ 89|128,1/*217*/, /*->364606*/ ++/*364389*/ OPC_CheckChild0Same, 1, ++/*364391*/ OPC_MoveChild1, ++/*364392*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*364395*/ OPC_CheckChild0Integer, 1, ++/*364397*/ OPC_CheckChild0Type, MVT::i32, ++/*364399*/ OPC_CheckChild1Integer, 1, ++/*364401*/ OPC_CheckChild1Type, MVT::i32, ++/*364403*/ OPC_CheckChild2Integer, 1, ++/*364405*/ OPC_CheckChild2Type, MVT::i32, ++/*364407*/ OPC_CheckChild3Integer, 1, ++/*364409*/ OPC_CheckChild3Type, MVT::i32, ++/*364411*/ OPC_CheckChild4Integer, 1, ++/*364413*/ OPC_CheckChild4Type, MVT::i32, ++/*364415*/ OPC_MoveChild5, ++/*364416*/ OPC_CheckInteger, 1, ++/*364418*/ OPC_CheckType, MVT::i32, ++/*364420*/ OPC_MoveParent, ++/*364421*/ OPC_MoveChild6, ++/*364422*/ OPC_CheckInteger, 1, ++/*364424*/ OPC_CheckType, MVT::i32, ++/*364426*/ OPC_MoveParent, ++/*364427*/ OPC_MoveChild7, ++/*364428*/ OPC_CheckInteger, 1, ++/*364430*/ OPC_CheckType, MVT::i32, ++/*364432*/ OPC_MoveParent, ++/*364433*/ OPC_MoveChild, 8, ++/*364435*/ OPC_CheckInteger, 1, ++/*364437*/ OPC_CheckType, MVT::i32, ++/*364439*/ OPC_MoveParent, ++/*364440*/ OPC_MoveChild, 9, ++/*364442*/ OPC_CheckInteger, 1, ++/*364444*/ OPC_CheckType, MVT::i32, ++/*364446*/ OPC_MoveParent, ++/*364447*/ OPC_MoveChild, 10, ++/*364449*/ OPC_CheckInteger, 1, ++/*364451*/ OPC_CheckType, MVT::i32, ++/*364453*/ OPC_MoveParent, ++/*364454*/ OPC_MoveChild, 11, ++/*364456*/ OPC_CheckInteger, 1, ++/*364458*/ OPC_CheckType, MVT::i32, ++/*364460*/ OPC_MoveParent, ++/*364461*/ OPC_MoveChild, 12, ++/*364463*/ OPC_CheckInteger, 1, ++/*364465*/ OPC_CheckType, MVT::i32, ++/*364467*/ OPC_MoveParent, ++/*364468*/ OPC_MoveChild, 13, ++/*364470*/ OPC_CheckInteger, 1, ++/*364472*/ OPC_CheckType, MVT::i32, ++/*364474*/ OPC_MoveParent, ++/*364475*/ OPC_MoveChild, 14, ++/*364477*/ OPC_CheckInteger, 1, ++/*364479*/ OPC_CheckType, MVT::i32, ++/*364481*/ OPC_MoveParent, ++/*364482*/ OPC_MoveChild, 15, ++/*364484*/ OPC_CheckInteger, 1, ++/*364486*/ OPC_CheckType, MVT::i32, ++/*364488*/ OPC_MoveParent, ++/*364489*/ OPC_MoveParent, ++/*364490*/ OPC_MoveParent, ++/*364491*/ OPC_MoveParent, ++/*364492*/ OPC_MoveParent, ++/*364493*/ OPC_MoveChild1, ++/*364494*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*364497*/ OPC_CheckChild0Integer, 1, ++/*364499*/ OPC_CheckChild0Type, MVT::i32, ++/*364501*/ OPC_CheckChild1Integer, 1, ++/*364503*/ OPC_CheckChild1Type, MVT::i32, ++/*364505*/ OPC_CheckChild2Integer, 1, ++/*364507*/ OPC_CheckChild2Type, MVT::i32, ++/*364509*/ OPC_CheckChild3Integer, 1, ++/*364511*/ OPC_CheckChild3Type, MVT::i32, ++/*364513*/ OPC_CheckChild4Integer, 1, ++/*364515*/ OPC_CheckChild4Type, MVT::i32, ++/*364517*/ OPC_MoveChild5, ++/*364518*/ OPC_CheckInteger, 1, ++/*364520*/ OPC_CheckType, MVT::i32, ++/*364522*/ OPC_MoveParent, ++/*364523*/ OPC_MoveChild6, ++/*364524*/ OPC_CheckInteger, 1, ++/*364526*/ OPC_CheckType, MVT::i32, ++/*364528*/ OPC_MoveParent, ++/*364529*/ OPC_MoveChild7, ++/*364530*/ OPC_CheckInteger, 1, ++/*364532*/ OPC_CheckType, MVT::i32, ++/*364534*/ OPC_MoveParent, ++/*364535*/ OPC_MoveChild, 8, ++/*364537*/ OPC_CheckInteger, 1, ++/*364539*/ OPC_CheckType, MVT::i32, ++/*364541*/ OPC_MoveParent, ++/*364542*/ OPC_MoveChild, 9, ++/*364544*/ OPC_CheckInteger, 1, ++/*364546*/ OPC_CheckType, MVT::i32, ++/*364548*/ OPC_MoveParent, ++/*364549*/ OPC_MoveChild, 10, ++/*364551*/ OPC_CheckInteger, 1, ++/*364553*/ OPC_CheckType, MVT::i32, ++/*364555*/ OPC_MoveParent, ++/*364556*/ OPC_MoveChild, 11, ++/*364558*/ OPC_CheckInteger, 1, ++/*364560*/ OPC_CheckType, MVT::i32, ++/*364562*/ OPC_MoveParent, ++/*364563*/ OPC_MoveChild, 12, ++/*364565*/ OPC_CheckInteger, 1, ++/*364567*/ OPC_CheckType, MVT::i32, ++/*364569*/ OPC_MoveParent, ++/*364570*/ OPC_MoveChild, 13, ++/*364572*/ OPC_CheckInteger, 1, ++/*364574*/ OPC_CheckType, MVT::i32, ++/*364576*/ OPC_MoveParent, ++/*364577*/ OPC_MoveChild, 14, ++/*364579*/ OPC_CheckInteger, 1, ++/*364581*/ OPC_CheckType, MVT::i32, ++/*364583*/ OPC_MoveParent, ++/*364584*/ OPC_MoveChild, 15, ++/*364586*/ OPC_CheckInteger, 1, ++/*364588*/ OPC_CheckType, MVT::i32, ++/*364590*/ OPC_MoveParent, ++/*364591*/ OPC_CheckType, MVT::v16i8, ++/*364593*/ OPC_MoveParent, ++/*364594*/ OPC_CheckType, MVT::v16i8, ++/*364596*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*364598*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*364606*/ 0, /*End of Scope*/ ++/*364607*/ /*Scope*/ 91|128,2/*347*/, /*->364956*/ ++/*364609*/ OPC_MoveChild0, ++/*364610*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*364613*/ OPC_CheckChild0Integer, 1, ++/*364615*/ OPC_CheckChild0Type, MVT::i32, ++/*364617*/ OPC_CheckChild1Integer, 1, ++/*364619*/ OPC_CheckChild1Type, MVT::i32, ++/*364621*/ OPC_CheckChild2Integer, 1, ++/*364623*/ OPC_CheckChild2Type, MVT::i32, ++/*364625*/ OPC_CheckChild3Integer, 1, ++/*364627*/ OPC_CheckChild3Type, MVT::i32, ++/*364629*/ OPC_CheckChild4Integer, 1, ++/*364631*/ OPC_CheckChild4Type, MVT::i32, ++/*364633*/ OPC_MoveChild5, ++/*364634*/ OPC_CheckInteger, 1, ++/*364636*/ OPC_CheckType, MVT::i32, ++/*364638*/ OPC_MoveParent, ++/*364639*/ OPC_MoveChild6, ++/*364640*/ OPC_CheckInteger, 1, ++/*364642*/ OPC_CheckType, MVT::i32, ++/*364644*/ OPC_MoveParent, ++/*364645*/ OPC_MoveChild7, ++/*364646*/ OPC_CheckInteger, 1, ++/*364648*/ OPC_CheckType, MVT::i32, ++/*364650*/ OPC_MoveParent, ++/*364651*/ OPC_MoveChild, 8, ++/*364653*/ OPC_CheckInteger, 1, ++/*364655*/ OPC_CheckType, MVT::i32, ++/*364657*/ OPC_MoveParent, ++/*364658*/ OPC_MoveChild, 9, ++/*364660*/ OPC_CheckInteger, 1, ++/*364662*/ OPC_CheckType, MVT::i32, ++/*364664*/ OPC_MoveParent, ++/*364665*/ OPC_MoveChild, 10, ++/*364667*/ OPC_CheckInteger, 1, ++/*364669*/ OPC_CheckType, MVT::i32, ++/*364671*/ OPC_MoveParent, ++/*364672*/ OPC_MoveChild, 11, ++/*364674*/ OPC_CheckInteger, 1, ++/*364676*/ OPC_CheckType, MVT::i32, ++/*364678*/ OPC_MoveParent, ++/*364679*/ OPC_MoveChild, 12, ++/*364681*/ OPC_CheckInteger, 1, ++/*364683*/ OPC_CheckType, MVT::i32, ++/*364685*/ OPC_MoveParent, ++/*364686*/ OPC_MoveChild, 13, ++/*364688*/ OPC_CheckInteger, 1, ++/*364690*/ OPC_CheckType, MVT::i32, ++/*364692*/ OPC_MoveParent, ++/*364693*/ OPC_MoveChild, 14, ++/*364695*/ OPC_CheckInteger, 1, ++/*364697*/ OPC_CheckType, MVT::i32, ++/*364699*/ OPC_MoveParent, ++/*364700*/ OPC_MoveChild, 15, ++/*364702*/ OPC_CheckInteger, 1, ++/*364704*/ OPC_CheckType, MVT::i32, ++/*364706*/ OPC_MoveParent, ++/*364707*/ OPC_MoveParent, ++/*364708*/ OPC_MoveChild1, ++/*364709*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*364712*/ OPC_Scope, 120, /*->364834*/ // 2 children in Scope ++/*364714*/ OPC_CheckChild0Same, 0, ++/*364716*/ OPC_CheckChild1Same, 1, ++/*364718*/ OPC_MoveParent, ++/*364719*/ OPC_MoveParent, ++/*364720*/ OPC_MoveParent, ++/*364721*/ OPC_MoveChild1, ++/*364722*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*364725*/ OPC_CheckChild0Integer, 1, ++/*364727*/ OPC_CheckChild0Type, MVT::i32, ++/*364729*/ OPC_CheckChild1Integer, 1, ++/*364731*/ OPC_CheckChild1Type, MVT::i32, ++/*364733*/ OPC_CheckChild2Integer, 1, ++/*364735*/ OPC_CheckChild2Type, MVT::i32, ++/*364737*/ OPC_CheckChild3Integer, 1, ++/*364739*/ OPC_CheckChild3Type, MVT::i32, ++/*364741*/ OPC_CheckChild4Integer, 1, ++/*364743*/ OPC_CheckChild4Type, MVT::i32, ++/*364745*/ OPC_MoveChild5, ++/*364746*/ OPC_CheckInteger, 1, ++/*364748*/ OPC_CheckType, MVT::i32, ++/*364750*/ OPC_MoveParent, ++/*364751*/ OPC_MoveChild6, ++/*364752*/ OPC_CheckInteger, 1, ++/*364754*/ OPC_CheckType, MVT::i32, ++/*364756*/ OPC_MoveParent, ++/*364757*/ OPC_MoveChild7, ++/*364758*/ OPC_CheckInteger, 1, ++/*364760*/ OPC_CheckType, MVT::i32, ++/*364762*/ OPC_MoveParent, ++/*364763*/ OPC_MoveChild, 8, ++/*364765*/ OPC_CheckInteger, 1, ++/*364767*/ OPC_CheckType, MVT::i32, ++/*364769*/ OPC_MoveParent, ++/*364770*/ OPC_MoveChild, 9, ++/*364772*/ OPC_CheckInteger, 1, ++/*364774*/ OPC_CheckType, MVT::i32, ++/*364776*/ OPC_MoveParent, ++/*364777*/ OPC_MoveChild, 10, ++/*364779*/ OPC_CheckInteger, 1, ++/*364781*/ OPC_CheckType, MVT::i32, ++/*364783*/ OPC_MoveParent, ++/*364784*/ OPC_MoveChild, 11, ++/*364786*/ OPC_CheckInteger, 1, ++/*364788*/ OPC_CheckType, MVT::i32, ++/*364790*/ OPC_MoveParent, ++/*364791*/ OPC_MoveChild, 12, ++/*364793*/ OPC_CheckInteger, 1, ++/*364795*/ OPC_CheckType, MVT::i32, ++/*364797*/ OPC_MoveParent, ++/*364798*/ OPC_MoveChild, 13, ++/*364800*/ OPC_CheckInteger, 1, ++/*364802*/ OPC_CheckType, MVT::i32, ++/*364804*/ OPC_MoveParent, ++/*364805*/ OPC_MoveChild, 14, ++/*364807*/ OPC_CheckInteger, 1, ++/*364809*/ OPC_CheckType, MVT::i32, ++/*364811*/ OPC_MoveParent, ++/*364812*/ OPC_MoveChild, 15, ++/*364814*/ OPC_CheckInteger, 1, ++/*364816*/ OPC_CheckType, MVT::i32, ++/*364818*/ OPC_MoveParent, ++/*364819*/ OPC_CheckType, MVT::v16i8, ++/*364821*/ OPC_MoveParent, ++/*364822*/ OPC_CheckType, MVT::v16i8, ++/*364824*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*364826*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*364834*/ /*Scope*/ 120, /*->364955*/ ++/*364835*/ OPC_CheckChild0Same, 1, ++/*364837*/ OPC_CheckChild1Same, 0, ++/*364839*/ OPC_MoveParent, ++/*364840*/ OPC_MoveParent, ++/*364841*/ OPC_MoveParent, ++/*364842*/ OPC_MoveChild1, ++/*364843*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*364846*/ OPC_CheckChild0Integer, 1, ++/*364848*/ OPC_CheckChild0Type, MVT::i32, ++/*364850*/ OPC_CheckChild1Integer, 1, ++/*364852*/ OPC_CheckChild1Type, MVT::i32, ++/*364854*/ OPC_CheckChild2Integer, 1, ++/*364856*/ OPC_CheckChild2Type, MVT::i32, ++/*364858*/ OPC_CheckChild3Integer, 1, ++/*364860*/ OPC_CheckChild3Type, MVT::i32, ++/*364862*/ OPC_CheckChild4Integer, 1, ++/*364864*/ OPC_CheckChild4Type, MVT::i32, ++/*364866*/ OPC_MoveChild5, ++/*364867*/ OPC_CheckInteger, 1, ++/*364869*/ OPC_CheckType, MVT::i32, ++/*364871*/ OPC_MoveParent, ++/*364872*/ OPC_MoveChild6, ++/*364873*/ OPC_CheckInteger, 1, ++/*364875*/ OPC_CheckType, MVT::i32, ++/*364877*/ OPC_MoveParent, ++/*364878*/ OPC_MoveChild7, ++/*364879*/ OPC_CheckInteger, 1, ++/*364881*/ OPC_CheckType, MVT::i32, ++/*364883*/ OPC_MoveParent, ++/*364884*/ OPC_MoveChild, 8, ++/*364886*/ OPC_CheckInteger, 1, ++/*364888*/ OPC_CheckType, MVT::i32, ++/*364890*/ OPC_MoveParent, ++/*364891*/ OPC_MoveChild, 9, ++/*364893*/ OPC_CheckInteger, 1, ++/*364895*/ OPC_CheckType, MVT::i32, ++/*364897*/ OPC_MoveParent, ++/*364898*/ OPC_MoveChild, 10, ++/*364900*/ OPC_CheckInteger, 1, ++/*364902*/ OPC_CheckType, MVT::i32, ++/*364904*/ OPC_MoveParent, ++/*364905*/ OPC_MoveChild, 11, ++/*364907*/ OPC_CheckInteger, 1, ++/*364909*/ OPC_CheckType, MVT::i32, ++/*364911*/ OPC_MoveParent, ++/*364912*/ OPC_MoveChild, 12, ++/*364914*/ OPC_CheckInteger, 1, ++/*364916*/ OPC_CheckType, MVT::i32, ++/*364918*/ OPC_MoveParent, ++/*364919*/ OPC_MoveChild, 13, ++/*364921*/ OPC_CheckInteger, 1, ++/*364923*/ OPC_CheckType, MVT::i32, ++/*364925*/ OPC_MoveParent, ++/*364926*/ OPC_MoveChild, 14, ++/*364928*/ OPC_CheckInteger, 1, ++/*364930*/ OPC_CheckType, MVT::i32, ++/*364932*/ OPC_MoveParent, ++/*364933*/ OPC_MoveChild, 15, ++/*364935*/ OPC_CheckInteger, 1, ++/*364937*/ OPC_CheckType, MVT::i32, ++/*364939*/ OPC_MoveParent, ++/*364940*/ OPC_CheckType, MVT::v16i8, ++/*364942*/ OPC_MoveParent, ++/*364943*/ OPC_CheckType, MVT::v16i8, ++/*364945*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*364947*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*364955*/ 0, /*End of Scope*/ ++/*364956*/ 0, /*End of Scope*/ ++/*364957*/ /*Scope*/ 101|128,21/*2789*/, /*->367748*/ ++/*364959*/ OPC_RecordChild0, // #1 = $b ++/*364960*/ OPC_MoveChild1, ++/*364961*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*364964*/ OPC_CheckChild0Integer, 1, ++/*364966*/ OPC_CheckChild0Type, MVT::i32, ++/*364968*/ OPC_CheckChild1Integer, 1, ++/*364970*/ OPC_CheckChild1Type, MVT::i32, ++/*364972*/ OPC_CheckChild2Integer, 1, ++/*364974*/ OPC_CheckChild2Type, MVT::i32, ++/*364976*/ OPC_CheckChild3Integer, 1, ++/*364978*/ OPC_CheckChild3Type, MVT::i32, ++/*364980*/ OPC_CheckChild4Integer, 1, ++/*364982*/ OPC_CheckChild4Type, MVT::i32, ++/*364984*/ OPC_MoveChild5, ++/*364985*/ OPC_CheckInteger, 1, ++/*364987*/ OPC_CheckType, MVT::i32, ++/*364989*/ OPC_MoveParent, ++/*364990*/ OPC_MoveChild6, ++/*364991*/ OPC_CheckInteger, 1, ++/*364993*/ OPC_CheckType, MVT::i32, ++/*364995*/ OPC_MoveParent, ++/*364996*/ OPC_MoveChild7, ++/*364997*/ OPC_CheckInteger, 1, ++/*364999*/ OPC_CheckType, MVT::i32, ++/*365001*/ OPC_MoveParent, ++/*365002*/ OPC_MoveChild, 8, ++/*365004*/ OPC_CheckInteger, 1, ++/*365006*/ OPC_CheckType, MVT::i32, ++/*365008*/ OPC_MoveParent, ++/*365009*/ OPC_MoveChild, 9, ++/*365011*/ OPC_CheckInteger, 1, ++/*365013*/ OPC_CheckType, MVT::i32, ++/*365015*/ OPC_MoveParent, ++/*365016*/ OPC_MoveChild, 10, ++/*365018*/ OPC_CheckInteger, 1, ++/*365020*/ OPC_CheckType, MVT::i32, ++/*365022*/ OPC_MoveParent, ++/*365023*/ OPC_MoveChild, 11, ++/*365025*/ OPC_CheckInteger, 1, ++/*365027*/ OPC_CheckType, MVT::i32, ++/*365029*/ OPC_MoveParent, ++/*365030*/ OPC_MoveChild, 12, ++/*365032*/ OPC_CheckInteger, 1, ++/*365034*/ OPC_CheckType, MVT::i32, ++/*365036*/ OPC_MoveParent, ++/*365037*/ OPC_MoveChild, 13, ++/*365039*/ OPC_CheckInteger, 1, ++/*365041*/ OPC_CheckType, MVT::i32, ++/*365043*/ OPC_MoveParent, ++/*365044*/ OPC_MoveChild, 14, ++/*365046*/ OPC_CheckInteger, 1, ++/*365048*/ OPC_CheckType, MVT::i32, ++/*365050*/ OPC_MoveParent, ++/*365051*/ OPC_MoveChild, 15, ++/*365053*/ OPC_CheckInteger, 1, ++/*365055*/ OPC_CheckType, MVT::i32, ++/*365057*/ OPC_MoveParent, ++/*365058*/ OPC_MoveParent, ++/*365059*/ OPC_MoveParent, ++/*365060*/ OPC_MoveParent, ++/*365061*/ OPC_MoveChild1, ++/*365062*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*365065*/ OPC_CheckChild0Integer, 7, ++/*365067*/ OPC_CheckChild0Type, MVT::i32, ++/*365069*/ OPC_CheckChild1Integer, 7, ++/*365071*/ OPC_CheckChild1Type, MVT::i32, ++/*365073*/ OPC_CheckChild2Integer, 7, ++/*365075*/ OPC_CheckChild2Type, MVT::i32, ++/*365077*/ OPC_CheckChild3Integer, 7, ++/*365079*/ OPC_CheckChild3Type, MVT::i32, ++/*365081*/ OPC_CheckChild4Integer, 7, ++/*365083*/ OPC_CheckChild4Type, MVT::i32, ++/*365085*/ OPC_MoveChild5, ++/*365086*/ OPC_CheckInteger, 7, ++/*365088*/ OPC_CheckType, MVT::i32, ++/*365090*/ OPC_MoveParent, ++/*365091*/ OPC_MoveChild6, ++/*365092*/ OPC_CheckInteger, 7, ++/*365094*/ OPC_CheckType, MVT::i32, ++/*365096*/ OPC_MoveParent, ++/*365097*/ OPC_MoveChild7, ++/*365098*/ OPC_CheckInteger, 7, ++/*365100*/ OPC_CheckType, MVT::i32, ++/*365102*/ OPC_MoveParent, ++/*365103*/ OPC_MoveChild, 8, ++/*365105*/ OPC_CheckInteger, 7, ++/*365107*/ OPC_CheckType, MVT::i32, ++/*365109*/ OPC_MoveParent, ++/*365110*/ OPC_MoveChild, 9, ++/*365112*/ OPC_CheckInteger, 7, ++/*365114*/ OPC_CheckType, MVT::i32, ++/*365116*/ OPC_MoveParent, ++/*365117*/ OPC_MoveChild, 10, ++/*365119*/ OPC_CheckInteger, 7, ++/*365121*/ OPC_CheckType, MVT::i32, ++/*365123*/ OPC_MoveParent, ++/*365124*/ OPC_MoveChild, 11, ++/*365126*/ OPC_CheckInteger, 7, ++/*365128*/ OPC_CheckType, MVT::i32, ++/*365130*/ OPC_MoveParent, ++/*365131*/ OPC_MoveChild, 12, ++/*365133*/ OPC_CheckInteger, 7, ++/*365135*/ OPC_CheckType, MVT::i32, ++/*365137*/ OPC_MoveParent, ++/*365138*/ OPC_MoveChild, 13, ++/*365140*/ OPC_CheckInteger, 7, ++/*365142*/ OPC_CheckType, MVT::i32, ++/*365144*/ OPC_MoveParent, ++/*365145*/ OPC_MoveChild, 14, ++/*365147*/ OPC_CheckInteger, 7, ++/*365149*/ OPC_CheckType, MVT::i32, ++/*365151*/ OPC_MoveParent, ++/*365152*/ OPC_MoveChild, 15, ++/*365154*/ OPC_CheckInteger, 7, ++/*365156*/ OPC_CheckType, MVT::i32, ++/*365158*/ OPC_MoveParent, ++/*365159*/ OPC_CheckType, MVT::v16i8, ++/*365161*/ OPC_MoveParent, ++/*365162*/ OPC_MoveParent, ++/*365163*/ OPC_MoveChild1, ++/*365164*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*365167*/ OPC_Scope, 52|128,10/*1332*/, /*->366502*/ // 4 children in Scope ++/*365170*/ OPC_MoveChild0, ++/*365171*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*365174*/ OPC_Scope, 91|128,1/*219*/, /*->365396*/ // 6 children in Scope ++/*365177*/ OPC_MoveChild0, ++/*365178*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*365181*/ OPC_CheckChild0Integer, 1, ++/*365183*/ OPC_CheckChild0Type, MVT::i32, ++/*365185*/ OPC_CheckChild1Integer, 1, ++/*365187*/ OPC_CheckChild1Type, MVT::i32, ++/*365189*/ OPC_CheckChild2Integer, 1, ++/*365191*/ OPC_CheckChild2Type, MVT::i32, ++/*365193*/ OPC_CheckChild3Integer, 1, ++/*365195*/ OPC_CheckChild3Type, MVT::i32, ++/*365197*/ OPC_CheckChild4Integer, 1, ++/*365199*/ OPC_CheckChild4Type, MVT::i32, ++/*365201*/ OPC_MoveChild5, ++/*365202*/ OPC_CheckInteger, 1, ++/*365204*/ OPC_CheckType, MVT::i32, ++/*365206*/ OPC_MoveParent, ++/*365207*/ OPC_MoveChild6, ++/*365208*/ OPC_CheckInteger, 1, ++/*365210*/ OPC_CheckType, MVT::i32, ++/*365212*/ OPC_MoveParent, ++/*365213*/ OPC_MoveChild7, ++/*365214*/ OPC_CheckInteger, 1, ++/*365216*/ OPC_CheckType, MVT::i32, ++/*365218*/ OPC_MoveParent, ++/*365219*/ OPC_MoveChild, 8, ++/*365221*/ OPC_CheckInteger, 1, ++/*365223*/ OPC_CheckType, MVT::i32, ++/*365225*/ OPC_MoveParent, ++/*365226*/ OPC_MoveChild, 9, ++/*365228*/ OPC_CheckInteger, 1, ++/*365230*/ OPC_CheckType, MVT::i32, ++/*365232*/ OPC_MoveParent, ++/*365233*/ OPC_MoveChild, 10, ++/*365235*/ OPC_CheckInteger, 1, ++/*365237*/ OPC_CheckType, MVT::i32, ++/*365239*/ OPC_MoveParent, ++/*365240*/ OPC_MoveChild, 11, ++/*365242*/ OPC_CheckInteger, 1, ++/*365244*/ OPC_CheckType, MVT::i32, ++/*365246*/ OPC_MoveParent, ++/*365247*/ OPC_MoveChild, 12, ++/*365249*/ OPC_CheckInteger, 1, ++/*365251*/ OPC_CheckType, MVT::i32, ++/*365253*/ OPC_MoveParent, ++/*365254*/ OPC_MoveChild, 13, ++/*365256*/ OPC_CheckInteger, 1, ++/*365258*/ OPC_CheckType, MVT::i32, ++/*365260*/ OPC_MoveParent, ++/*365261*/ OPC_MoveChild, 14, ++/*365263*/ OPC_CheckInteger, 1, ++/*365265*/ OPC_CheckType, MVT::i32, ++/*365267*/ OPC_MoveParent, ++/*365268*/ OPC_MoveChild, 15, ++/*365270*/ OPC_CheckInteger, 1, ++/*365272*/ OPC_CheckType, MVT::i32, ++/*365274*/ OPC_MoveParent, ++/*365275*/ OPC_MoveParent, ++/*365276*/ OPC_CheckChild1Same, 0, ++/*365278*/ OPC_MoveParent, ++/*365279*/ OPC_CheckChild1Same, 1, ++/*365281*/ OPC_MoveParent, ++/*365282*/ OPC_MoveParent, ++/*365283*/ OPC_MoveChild1, ++/*365284*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*365287*/ OPC_CheckChild0Integer, 1, ++/*365289*/ OPC_CheckChild0Type, MVT::i32, ++/*365291*/ OPC_CheckChild1Integer, 1, ++/*365293*/ OPC_CheckChild1Type, MVT::i32, ++/*365295*/ OPC_CheckChild2Integer, 1, ++/*365297*/ OPC_CheckChild2Type, MVT::i32, ++/*365299*/ OPC_CheckChild3Integer, 1, ++/*365301*/ OPC_CheckChild3Type, MVT::i32, ++/*365303*/ OPC_CheckChild4Integer, 1, ++/*365305*/ OPC_CheckChild4Type, MVT::i32, ++/*365307*/ OPC_MoveChild5, ++/*365308*/ OPC_CheckInteger, 1, ++/*365310*/ OPC_CheckType, MVT::i32, ++/*365312*/ OPC_MoveParent, ++/*365313*/ OPC_MoveChild6, ++/*365314*/ OPC_CheckInteger, 1, ++/*365316*/ OPC_CheckType, MVT::i32, ++/*365318*/ OPC_MoveParent, ++/*365319*/ OPC_MoveChild7, ++/*365320*/ OPC_CheckInteger, 1, ++/*365322*/ OPC_CheckType, MVT::i32, ++/*365324*/ OPC_MoveParent, ++/*365325*/ OPC_MoveChild, 8, ++/*365327*/ OPC_CheckInteger, 1, ++/*365329*/ OPC_CheckType, MVT::i32, ++/*365331*/ OPC_MoveParent, ++/*365332*/ OPC_MoveChild, 9, ++/*365334*/ OPC_CheckInteger, 1, ++/*365336*/ OPC_CheckType, MVT::i32, ++/*365338*/ OPC_MoveParent, ++/*365339*/ OPC_MoveChild, 10, ++/*365341*/ OPC_CheckInteger, 1, ++/*365343*/ OPC_CheckType, MVT::i32, ++/*365345*/ OPC_MoveParent, ++/*365346*/ OPC_MoveChild, 11, ++/*365348*/ OPC_CheckInteger, 1, ++/*365350*/ OPC_CheckType, MVT::i32, ++/*365352*/ OPC_MoveParent, ++/*365353*/ OPC_MoveChild, 12, ++/*365355*/ OPC_CheckInteger, 1, ++/*365357*/ OPC_CheckType, MVT::i32, ++/*365359*/ OPC_MoveParent, ++/*365360*/ OPC_MoveChild, 13, ++/*365362*/ OPC_CheckInteger, 1, ++/*365364*/ OPC_CheckType, MVT::i32, ++/*365366*/ OPC_MoveParent, ++/*365367*/ OPC_MoveChild, 14, ++/*365369*/ OPC_CheckInteger, 1, ++/*365371*/ OPC_CheckType, MVT::i32, ++/*365373*/ OPC_MoveParent, ++/*365374*/ OPC_MoveChild, 15, ++/*365376*/ OPC_CheckInteger, 1, ++/*365378*/ OPC_CheckType, MVT::i32, ++/*365380*/ OPC_MoveParent, ++/*365381*/ OPC_CheckType, MVT::v16i8, ++/*365383*/ OPC_MoveParent, ++/*365384*/ OPC_CheckType, MVT::v16i8, ++/*365386*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*365388*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a), LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*365396*/ /*Scope*/ 91|128,1/*219*/, /*->365617*/ ++/*365398*/ OPC_CheckChild0Same, 0, ++/*365400*/ OPC_MoveChild1, ++/*365401*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*365404*/ OPC_CheckChild0Integer, 1, ++/*365406*/ OPC_CheckChild0Type, MVT::i32, ++/*365408*/ OPC_CheckChild1Integer, 1, ++/*365410*/ OPC_CheckChild1Type, MVT::i32, ++/*365412*/ OPC_CheckChild2Integer, 1, ++/*365414*/ OPC_CheckChild2Type, MVT::i32, ++/*365416*/ OPC_CheckChild3Integer, 1, ++/*365418*/ OPC_CheckChild3Type, MVT::i32, ++/*365420*/ OPC_CheckChild4Integer, 1, ++/*365422*/ OPC_CheckChild4Type, MVT::i32, ++/*365424*/ OPC_MoveChild5, ++/*365425*/ OPC_CheckInteger, 1, ++/*365427*/ OPC_CheckType, MVT::i32, ++/*365429*/ OPC_MoveParent, ++/*365430*/ OPC_MoveChild6, ++/*365431*/ OPC_CheckInteger, 1, ++/*365433*/ OPC_CheckType, MVT::i32, ++/*365435*/ OPC_MoveParent, ++/*365436*/ OPC_MoveChild7, ++/*365437*/ OPC_CheckInteger, 1, ++/*365439*/ OPC_CheckType, MVT::i32, ++/*365441*/ OPC_MoveParent, ++/*365442*/ OPC_MoveChild, 8, ++/*365444*/ OPC_CheckInteger, 1, ++/*365446*/ OPC_CheckType, MVT::i32, ++/*365448*/ OPC_MoveParent, ++/*365449*/ OPC_MoveChild, 9, ++/*365451*/ OPC_CheckInteger, 1, ++/*365453*/ OPC_CheckType, MVT::i32, ++/*365455*/ OPC_MoveParent, ++/*365456*/ OPC_MoveChild, 10, ++/*365458*/ OPC_CheckInteger, 1, ++/*365460*/ OPC_CheckType, MVT::i32, ++/*365462*/ OPC_MoveParent, ++/*365463*/ OPC_MoveChild, 11, ++/*365465*/ OPC_CheckInteger, 1, ++/*365467*/ OPC_CheckType, MVT::i32, ++/*365469*/ OPC_MoveParent, ++/*365470*/ OPC_MoveChild, 12, ++/*365472*/ OPC_CheckInteger, 1, ++/*365474*/ OPC_CheckType, MVT::i32, ++/*365476*/ OPC_MoveParent, ++/*365477*/ OPC_MoveChild, 13, ++/*365479*/ OPC_CheckInteger, 1, ++/*365481*/ OPC_CheckType, MVT::i32, ++/*365483*/ OPC_MoveParent, ++/*365484*/ OPC_MoveChild, 14, ++/*365486*/ OPC_CheckInteger, 1, ++/*365488*/ OPC_CheckType, MVT::i32, ++/*365490*/ OPC_MoveParent, ++/*365491*/ OPC_MoveChild, 15, ++/*365493*/ OPC_CheckInteger, 1, ++/*365495*/ OPC_CheckType, MVT::i32, ++/*365497*/ OPC_MoveParent, ++/*365498*/ OPC_MoveParent, ++/*365499*/ OPC_MoveParent, ++/*365500*/ OPC_CheckChild1Same, 1, ++/*365502*/ OPC_MoveParent, ++/*365503*/ OPC_MoveParent, ++/*365504*/ OPC_MoveChild1, ++/*365505*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*365508*/ OPC_CheckChild0Integer, 1, ++/*365510*/ OPC_CheckChild0Type, MVT::i32, ++/*365512*/ OPC_CheckChild1Integer, 1, ++/*365514*/ OPC_CheckChild1Type, MVT::i32, ++/*365516*/ OPC_CheckChild2Integer, 1, ++/*365518*/ OPC_CheckChild2Type, MVT::i32, ++/*365520*/ OPC_CheckChild3Integer, 1, ++/*365522*/ OPC_CheckChild3Type, MVT::i32, ++/*365524*/ OPC_CheckChild4Integer, 1, ++/*365526*/ OPC_CheckChild4Type, MVT::i32, ++/*365528*/ OPC_MoveChild5, ++/*365529*/ OPC_CheckInteger, 1, ++/*365531*/ OPC_CheckType, MVT::i32, ++/*365533*/ OPC_MoveParent, ++/*365534*/ OPC_MoveChild6, ++/*365535*/ OPC_CheckInteger, 1, ++/*365537*/ OPC_CheckType, MVT::i32, ++/*365539*/ OPC_MoveParent, ++/*365540*/ OPC_MoveChild7, ++/*365541*/ OPC_CheckInteger, 1, ++/*365543*/ OPC_CheckType, MVT::i32, ++/*365545*/ OPC_MoveParent, ++/*365546*/ OPC_MoveChild, 8, ++/*365548*/ OPC_CheckInteger, 1, ++/*365550*/ OPC_CheckType, MVT::i32, ++/*365552*/ OPC_MoveParent, ++/*365553*/ OPC_MoveChild, 9, ++/*365555*/ OPC_CheckInteger, 1, ++/*365557*/ OPC_CheckType, MVT::i32, ++/*365559*/ OPC_MoveParent, ++/*365560*/ OPC_MoveChild, 10, ++/*365562*/ OPC_CheckInteger, 1, ++/*365564*/ OPC_CheckType, MVT::i32, ++/*365566*/ OPC_MoveParent, ++/*365567*/ OPC_MoveChild, 11, ++/*365569*/ OPC_CheckInteger, 1, ++/*365571*/ OPC_CheckType, MVT::i32, ++/*365573*/ OPC_MoveParent, ++/*365574*/ OPC_MoveChild, 12, ++/*365576*/ OPC_CheckInteger, 1, ++/*365578*/ OPC_CheckType, MVT::i32, ++/*365580*/ OPC_MoveParent, ++/*365581*/ OPC_MoveChild, 13, ++/*365583*/ OPC_CheckInteger, 1, ++/*365585*/ OPC_CheckType, MVT::i32, ++/*365587*/ OPC_MoveParent, ++/*365588*/ OPC_MoveChild, 14, ++/*365590*/ OPC_CheckInteger, 1, ++/*365592*/ OPC_CheckType, MVT::i32, ++/*365594*/ OPC_MoveParent, ++/*365595*/ OPC_MoveChild, 15, ++/*365597*/ OPC_CheckInteger, 1, ++/*365599*/ OPC_CheckType, MVT::i32, ++/*365601*/ OPC_MoveParent, ++/*365602*/ OPC_CheckType, MVT::v16i8, ++/*365604*/ OPC_MoveParent, ++/*365605*/ OPC_CheckType, MVT::v16i8, ++/*365607*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*365609*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*365617*/ /*Scope*/ 91|128,1/*219*/, /*->365838*/ ++/*365619*/ OPC_MoveChild0, ++/*365620*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*365623*/ OPC_CheckChild0Integer, 1, ++/*365625*/ OPC_CheckChild0Type, MVT::i32, ++/*365627*/ OPC_CheckChild1Integer, 1, ++/*365629*/ OPC_CheckChild1Type, MVT::i32, ++/*365631*/ OPC_CheckChild2Integer, 1, ++/*365633*/ OPC_CheckChild2Type, MVT::i32, ++/*365635*/ OPC_CheckChild3Integer, 1, ++/*365637*/ OPC_CheckChild3Type, MVT::i32, ++/*365639*/ OPC_CheckChild4Integer, 1, ++/*365641*/ OPC_CheckChild4Type, MVT::i32, ++/*365643*/ OPC_MoveChild5, ++/*365644*/ OPC_CheckInteger, 1, ++/*365646*/ OPC_CheckType, MVT::i32, ++/*365648*/ OPC_MoveParent, ++/*365649*/ OPC_MoveChild6, ++/*365650*/ OPC_CheckInteger, 1, ++/*365652*/ OPC_CheckType, MVT::i32, ++/*365654*/ OPC_MoveParent, ++/*365655*/ OPC_MoveChild7, ++/*365656*/ OPC_CheckInteger, 1, ++/*365658*/ OPC_CheckType, MVT::i32, ++/*365660*/ OPC_MoveParent, ++/*365661*/ OPC_MoveChild, 8, ++/*365663*/ OPC_CheckInteger, 1, ++/*365665*/ OPC_CheckType, MVT::i32, ++/*365667*/ OPC_MoveParent, ++/*365668*/ OPC_MoveChild, 9, ++/*365670*/ OPC_CheckInteger, 1, ++/*365672*/ OPC_CheckType, MVT::i32, ++/*365674*/ OPC_MoveParent, ++/*365675*/ OPC_MoveChild, 10, ++/*365677*/ OPC_CheckInteger, 1, ++/*365679*/ OPC_CheckType, MVT::i32, ++/*365681*/ OPC_MoveParent, ++/*365682*/ OPC_MoveChild, 11, ++/*365684*/ OPC_CheckInteger, 1, ++/*365686*/ OPC_CheckType, MVT::i32, ++/*365688*/ OPC_MoveParent, ++/*365689*/ OPC_MoveChild, 12, ++/*365691*/ OPC_CheckInteger, 1, ++/*365693*/ OPC_CheckType, MVT::i32, ++/*365695*/ OPC_MoveParent, ++/*365696*/ OPC_MoveChild, 13, ++/*365698*/ OPC_CheckInteger, 1, ++/*365700*/ OPC_CheckType, MVT::i32, ++/*365702*/ OPC_MoveParent, ++/*365703*/ OPC_MoveChild, 14, ++/*365705*/ OPC_CheckInteger, 1, ++/*365707*/ OPC_CheckType, MVT::i32, ++/*365709*/ OPC_MoveParent, ++/*365710*/ OPC_MoveChild, 15, ++/*365712*/ OPC_CheckInteger, 1, ++/*365714*/ OPC_CheckType, MVT::i32, ++/*365716*/ OPC_MoveParent, ++/*365717*/ OPC_MoveParent, ++/*365718*/ OPC_CheckChild1Same, 1, ++/*365720*/ OPC_MoveParent, ++/*365721*/ OPC_CheckChild1Same, 0, ++/*365723*/ OPC_MoveParent, ++/*365724*/ OPC_MoveParent, ++/*365725*/ OPC_MoveChild1, ++/*365726*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*365729*/ OPC_CheckChild0Integer, 1, ++/*365731*/ OPC_CheckChild0Type, MVT::i32, ++/*365733*/ OPC_CheckChild1Integer, 1, ++/*365735*/ OPC_CheckChild1Type, MVT::i32, ++/*365737*/ OPC_CheckChild2Integer, 1, ++/*365739*/ OPC_CheckChild2Type, MVT::i32, ++/*365741*/ OPC_CheckChild3Integer, 1, ++/*365743*/ OPC_CheckChild3Type, MVT::i32, ++/*365745*/ OPC_CheckChild4Integer, 1, ++/*365747*/ OPC_CheckChild4Type, MVT::i32, ++/*365749*/ OPC_MoveChild5, ++/*365750*/ OPC_CheckInteger, 1, ++/*365752*/ OPC_CheckType, MVT::i32, ++/*365754*/ OPC_MoveParent, ++/*365755*/ OPC_MoveChild6, ++/*365756*/ OPC_CheckInteger, 1, ++/*365758*/ OPC_CheckType, MVT::i32, ++/*365760*/ OPC_MoveParent, ++/*365761*/ OPC_MoveChild7, ++/*365762*/ OPC_CheckInteger, 1, ++/*365764*/ OPC_CheckType, MVT::i32, ++/*365766*/ OPC_MoveParent, ++/*365767*/ OPC_MoveChild, 8, ++/*365769*/ OPC_CheckInteger, 1, ++/*365771*/ OPC_CheckType, MVT::i32, ++/*365773*/ OPC_MoveParent, ++/*365774*/ OPC_MoveChild, 9, ++/*365776*/ OPC_CheckInteger, 1, ++/*365778*/ OPC_CheckType, MVT::i32, ++/*365780*/ OPC_MoveParent, ++/*365781*/ OPC_MoveChild, 10, ++/*365783*/ OPC_CheckInteger, 1, ++/*365785*/ OPC_CheckType, MVT::i32, ++/*365787*/ OPC_MoveParent, ++/*365788*/ OPC_MoveChild, 11, ++/*365790*/ OPC_CheckInteger, 1, ++/*365792*/ OPC_CheckType, MVT::i32, ++/*365794*/ OPC_MoveParent, ++/*365795*/ OPC_MoveChild, 12, ++/*365797*/ OPC_CheckInteger, 1, ++/*365799*/ OPC_CheckType, MVT::i32, ++/*365801*/ OPC_MoveParent, ++/*365802*/ OPC_MoveChild, 13, ++/*365804*/ OPC_CheckInteger, 1, ++/*365806*/ OPC_CheckType, MVT::i32, ++/*365808*/ OPC_MoveParent, ++/*365809*/ OPC_MoveChild, 14, ++/*365811*/ OPC_CheckInteger, 1, ++/*365813*/ OPC_CheckType, MVT::i32, ++/*365815*/ OPC_MoveParent, ++/*365816*/ OPC_MoveChild, 15, ++/*365818*/ OPC_CheckInteger, 1, ++/*365820*/ OPC_CheckType, MVT::i32, ++/*365822*/ OPC_MoveParent, ++/*365823*/ OPC_CheckType, MVT::v16i8, ++/*365825*/ OPC_MoveParent, ++/*365826*/ OPC_CheckType, MVT::v16i8, ++/*365828*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*365830*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b), LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*365838*/ /*Scope*/ 91|128,1/*219*/, /*->366059*/ ++/*365840*/ OPC_CheckChild0Same, 1, ++/*365842*/ OPC_MoveChild1, ++/*365843*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*365846*/ OPC_CheckChild0Integer, 1, ++/*365848*/ OPC_CheckChild0Type, MVT::i32, ++/*365850*/ OPC_CheckChild1Integer, 1, ++/*365852*/ OPC_CheckChild1Type, MVT::i32, ++/*365854*/ OPC_CheckChild2Integer, 1, ++/*365856*/ OPC_CheckChild2Type, MVT::i32, ++/*365858*/ OPC_CheckChild3Integer, 1, ++/*365860*/ OPC_CheckChild3Type, MVT::i32, ++/*365862*/ OPC_CheckChild4Integer, 1, ++/*365864*/ OPC_CheckChild4Type, MVT::i32, ++/*365866*/ OPC_MoveChild5, ++/*365867*/ OPC_CheckInteger, 1, ++/*365869*/ OPC_CheckType, MVT::i32, ++/*365871*/ OPC_MoveParent, ++/*365872*/ OPC_MoveChild6, ++/*365873*/ OPC_CheckInteger, 1, ++/*365875*/ OPC_CheckType, MVT::i32, ++/*365877*/ OPC_MoveParent, ++/*365878*/ OPC_MoveChild7, ++/*365879*/ OPC_CheckInteger, 1, ++/*365881*/ OPC_CheckType, MVT::i32, ++/*365883*/ OPC_MoveParent, ++/*365884*/ OPC_MoveChild, 8, ++/*365886*/ OPC_CheckInteger, 1, ++/*365888*/ OPC_CheckType, MVT::i32, ++/*365890*/ OPC_MoveParent, ++/*365891*/ OPC_MoveChild, 9, ++/*365893*/ OPC_CheckInteger, 1, ++/*365895*/ OPC_CheckType, MVT::i32, ++/*365897*/ OPC_MoveParent, ++/*365898*/ OPC_MoveChild, 10, ++/*365900*/ OPC_CheckInteger, 1, ++/*365902*/ OPC_CheckType, MVT::i32, ++/*365904*/ OPC_MoveParent, ++/*365905*/ OPC_MoveChild, 11, ++/*365907*/ OPC_CheckInteger, 1, ++/*365909*/ OPC_CheckType, MVT::i32, ++/*365911*/ OPC_MoveParent, ++/*365912*/ OPC_MoveChild, 12, ++/*365914*/ OPC_CheckInteger, 1, ++/*365916*/ OPC_CheckType, MVT::i32, ++/*365918*/ OPC_MoveParent, ++/*365919*/ OPC_MoveChild, 13, ++/*365921*/ OPC_CheckInteger, 1, ++/*365923*/ OPC_CheckType, MVT::i32, ++/*365925*/ OPC_MoveParent, ++/*365926*/ OPC_MoveChild, 14, ++/*365928*/ OPC_CheckInteger, 1, ++/*365930*/ OPC_CheckType, MVT::i32, ++/*365932*/ OPC_MoveParent, ++/*365933*/ OPC_MoveChild, 15, ++/*365935*/ OPC_CheckInteger, 1, ++/*365937*/ OPC_CheckType, MVT::i32, ++/*365939*/ OPC_MoveParent, ++/*365940*/ OPC_MoveParent, ++/*365941*/ OPC_MoveParent, ++/*365942*/ OPC_CheckChild1Same, 0, ++/*365944*/ OPC_MoveParent, ++/*365945*/ OPC_MoveParent, ++/*365946*/ OPC_MoveChild1, ++/*365947*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*365950*/ OPC_CheckChild0Integer, 1, ++/*365952*/ OPC_CheckChild0Type, MVT::i32, ++/*365954*/ OPC_CheckChild1Integer, 1, ++/*365956*/ OPC_CheckChild1Type, MVT::i32, ++/*365958*/ OPC_CheckChild2Integer, 1, ++/*365960*/ OPC_CheckChild2Type, MVT::i32, ++/*365962*/ OPC_CheckChild3Integer, 1, ++/*365964*/ OPC_CheckChild3Type, MVT::i32, ++/*365966*/ OPC_CheckChild4Integer, 1, ++/*365968*/ OPC_CheckChild4Type, MVT::i32, ++/*365970*/ OPC_MoveChild5, ++/*365971*/ OPC_CheckInteger, 1, ++/*365973*/ OPC_CheckType, MVT::i32, ++/*365975*/ OPC_MoveParent, ++/*365976*/ OPC_MoveChild6, ++/*365977*/ OPC_CheckInteger, 1, ++/*365979*/ OPC_CheckType, MVT::i32, ++/*365981*/ OPC_MoveParent, ++/*365982*/ OPC_MoveChild7, ++/*365983*/ OPC_CheckInteger, 1, ++/*365985*/ OPC_CheckType, MVT::i32, ++/*365987*/ OPC_MoveParent, ++/*365988*/ OPC_MoveChild, 8, ++/*365990*/ OPC_CheckInteger, 1, ++/*365992*/ OPC_CheckType, MVT::i32, ++/*365994*/ OPC_MoveParent, ++/*365995*/ OPC_MoveChild, 9, ++/*365997*/ OPC_CheckInteger, 1, ++/*365999*/ OPC_CheckType, MVT::i32, ++/*366001*/ OPC_MoveParent, ++/*366002*/ OPC_MoveChild, 10, ++/*366004*/ OPC_CheckInteger, 1, ++/*366006*/ OPC_CheckType, MVT::i32, ++/*366008*/ OPC_MoveParent, ++/*366009*/ OPC_MoveChild, 11, ++/*366011*/ OPC_CheckInteger, 1, ++/*366013*/ OPC_CheckType, MVT::i32, ++/*366015*/ OPC_MoveParent, ++/*366016*/ OPC_MoveChild, 12, ++/*366018*/ OPC_CheckInteger, 1, ++/*366020*/ OPC_CheckType, MVT::i32, ++/*366022*/ OPC_MoveParent, ++/*366023*/ OPC_MoveChild, 13, ++/*366025*/ OPC_CheckInteger, 1, ++/*366027*/ OPC_CheckType, MVT::i32, ++/*366029*/ OPC_MoveParent, ++/*366030*/ OPC_MoveChild, 14, ++/*366032*/ OPC_CheckInteger, 1, ++/*366034*/ OPC_CheckType, MVT::i32, ++/*366036*/ OPC_MoveParent, ++/*366037*/ OPC_MoveChild, 15, ++/*366039*/ OPC_CheckInteger, 1, ++/*366041*/ OPC_CheckType, MVT::i32, ++/*366043*/ OPC_MoveParent, ++/*366044*/ OPC_CheckType, MVT::v16i8, ++/*366046*/ OPC_MoveParent, ++/*366047*/ OPC_CheckType, MVT::v16i8, ++/*366049*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*366051*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*366059*/ /*Scope*/ 91|128,1/*219*/, /*->366280*/ ++/*366061*/ OPC_CheckChild0Same, 0, ++/*366063*/ OPC_CheckChild1Same, 1, ++/*366065*/ OPC_MoveParent, ++/*366066*/ OPC_MoveChild1, ++/*366067*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*366070*/ OPC_CheckChild0Integer, 1, ++/*366072*/ OPC_CheckChild0Type, MVT::i32, ++/*366074*/ OPC_CheckChild1Integer, 1, ++/*366076*/ OPC_CheckChild1Type, MVT::i32, ++/*366078*/ OPC_CheckChild2Integer, 1, ++/*366080*/ OPC_CheckChild2Type, MVT::i32, ++/*366082*/ OPC_CheckChild3Integer, 1, ++/*366084*/ OPC_CheckChild3Type, MVT::i32, ++/*366086*/ OPC_CheckChild4Integer, 1, ++/*366088*/ OPC_CheckChild4Type, MVT::i32, ++/*366090*/ OPC_MoveChild5, ++/*366091*/ OPC_CheckInteger, 1, ++/*366093*/ OPC_CheckType, MVT::i32, ++/*366095*/ OPC_MoveParent, ++/*366096*/ OPC_MoveChild6, ++/*366097*/ OPC_CheckInteger, 1, ++/*366099*/ OPC_CheckType, MVT::i32, ++/*366101*/ OPC_MoveParent, ++/*366102*/ OPC_MoveChild7, ++/*366103*/ OPC_CheckInteger, 1, ++/*366105*/ OPC_CheckType, MVT::i32, ++/*366107*/ OPC_MoveParent, ++/*366108*/ OPC_MoveChild, 8, ++/*366110*/ OPC_CheckInteger, 1, ++/*366112*/ OPC_CheckType, MVT::i32, ++/*366114*/ OPC_MoveParent, ++/*366115*/ OPC_MoveChild, 9, ++/*366117*/ OPC_CheckInteger, 1, ++/*366119*/ OPC_CheckType, MVT::i32, ++/*366121*/ OPC_MoveParent, ++/*366122*/ OPC_MoveChild, 10, ++/*366124*/ OPC_CheckInteger, 1, ++/*366126*/ OPC_CheckType, MVT::i32, ++/*366128*/ OPC_MoveParent, ++/*366129*/ OPC_MoveChild, 11, ++/*366131*/ OPC_CheckInteger, 1, ++/*366133*/ OPC_CheckType, MVT::i32, ++/*366135*/ OPC_MoveParent, ++/*366136*/ OPC_MoveChild, 12, ++/*366138*/ OPC_CheckInteger, 1, ++/*366140*/ OPC_CheckType, MVT::i32, ++/*366142*/ OPC_MoveParent, ++/*366143*/ OPC_MoveChild, 13, ++/*366145*/ OPC_CheckInteger, 1, ++/*366147*/ OPC_CheckType, MVT::i32, ++/*366149*/ OPC_MoveParent, ++/*366150*/ OPC_MoveChild, 14, ++/*366152*/ OPC_CheckInteger, 1, ++/*366154*/ OPC_CheckType, MVT::i32, ++/*366156*/ OPC_MoveParent, ++/*366157*/ OPC_MoveChild, 15, ++/*366159*/ OPC_CheckInteger, 1, ++/*366161*/ OPC_CheckType, MVT::i32, ++/*366163*/ OPC_MoveParent, ++/*366164*/ OPC_MoveParent, ++/*366165*/ OPC_MoveParent, ++/*366166*/ OPC_MoveParent, ++/*366167*/ OPC_MoveChild1, ++/*366168*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*366171*/ OPC_CheckChild0Integer, 1, ++/*366173*/ OPC_CheckChild0Type, MVT::i32, ++/*366175*/ OPC_CheckChild1Integer, 1, ++/*366177*/ OPC_CheckChild1Type, MVT::i32, ++/*366179*/ OPC_CheckChild2Integer, 1, ++/*366181*/ OPC_CheckChild2Type, MVT::i32, ++/*366183*/ OPC_CheckChild3Integer, 1, ++/*366185*/ OPC_CheckChild3Type, MVT::i32, ++/*366187*/ OPC_CheckChild4Integer, 1, ++/*366189*/ OPC_CheckChild4Type, MVT::i32, ++/*366191*/ OPC_MoveChild5, ++/*366192*/ OPC_CheckInteger, 1, ++/*366194*/ OPC_CheckType, MVT::i32, ++/*366196*/ OPC_MoveParent, ++/*366197*/ OPC_MoveChild6, ++/*366198*/ OPC_CheckInteger, 1, ++/*366200*/ OPC_CheckType, MVT::i32, ++/*366202*/ OPC_MoveParent, ++/*366203*/ OPC_MoveChild7, ++/*366204*/ OPC_CheckInteger, 1, ++/*366206*/ OPC_CheckType, MVT::i32, ++/*366208*/ OPC_MoveParent, ++/*366209*/ OPC_MoveChild, 8, ++/*366211*/ OPC_CheckInteger, 1, ++/*366213*/ OPC_CheckType, MVT::i32, ++/*366215*/ OPC_MoveParent, ++/*366216*/ OPC_MoveChild, 9, ++/*366218*/ OPC_CheckInteger, 1, ++/*366220*/ OPC_CheckType, MVT::i32, ++/*366222*/ OPC_MoveParent, ++/*366223*/ OPC_MoveChild, 10, ++/*366225*/ OPC_CheckInteger, 1, ++/*366227*/ OPC_CheckType, MVT::i32, ++/*366229*/ OPC_MoveParent, ++/*366230*/ OPC_MoveChild, 11, ++/*366232*/ OPC_CheckInteger, 1, ++/*366234*/ OPC_CheckType, MVT::i32, ++/*366236*/ OPC_MoveParent, ++/*366237*/ OPC_MoveChild, 12, ++/*366239*/ OPC_CheckInteger, 1, ++/*366241*/ OPC_CheckType, MVT::i32, ++/*366243*/ OPC_MoveParent, ++/*366244*/ OPC_MoveChild, 13, ++/*366246*/ OPC_CheckInteger, 1, ++/*366248*/ OPC_CheckType, MVT::i32, ++/*366250*/ OPC_MoveParent, ++/*366251*/ OPC_MoveChild, 14, ++/*366253*/ OPC_CheckInteger, 1, ++/*366255*/ OPC_CheckType, MVT::i32, ++/*366257*/ OPC_MoveParent, ++/*366258*/ OPC_MoveChild, 15, ++/*366260*/ OPC_CheckInteger, 1, ++/*366262*/ OPC_CheckType, MVT::i32, ++/*366264*/ OPC_MoveParent, ++/*366265*/ OPC_CheckType, MVT::v16i8, ++/*366267*/ OPC_MoveParent, ++/*366268*/ OPC_CheckType, MVT::v16i8, ++/*366270*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*366272*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*366280*/ /*Scope*/ 91|128,1/*219*/, /*->366501*/ ++/*366282*/ OPC_CheckChild0Same, 1, ++/*366284*/ OPC_CheckChild1Same, 0, ++/*366286*/ OPC_MoveParent, ++/*366287*/ OPC_MoveChild1, ++/*366288*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*366291*/ OPC_CheckChild0Integer, 1, ++/*366293*/ OPC_CheckChild0Type, MVT::i32, ++/*366295*/ OPC_CheckChild1Integer, 1, ++/*366297*/ OPC_CheckChild1Type, MVT::i32, ++/*366299*/ OPC_CheckChild2Integer, 1, ++/*366301*/ OPC_CheckChild2Type, MVT::i32, ++/*366303*/ OPC_CheckChild3Integer, 1, ++/*366305*/ OPC_CheckChild3Type, MVT::i32, ++/*366307*/ OPC_CheckChild4Integer, 1, ++/*366309*/ OPC_CheckChild4Type, MVT::i32, ++/*366311*/ OPC_MoveChild5, ++/*366312*/ OPC_CheckInteger, 1, ++/*366314*/ OPC_CheckType, MVT::i32, ++/*366316*/ OPC_MoveParent, ++/*366317*/ OPC_MoveChild6, ++/*366318*/ OPC_CheckInteger, 1, ++/*366320*/ OPC_CheckType, MVT::i32, ++/*366322*/ OPC_MoveParent, ++/*366323*/ OPC_MoveChild7, ++/*366324*/ OPC_CheckInteger, 1, ++/*366326*/ OPC_CheckType, MVT::i32, ++/*366328*/ OPC_MoveParent, ++/*366329*/ OPC_MoveChild, 8, ++/*366331*/ OPC_CheckInteger, 1, ++/*366333*/ OPC_CheckType, MVT::i32, ++/*366335*/ OPC_MoveParent, ++/*366336*/ OPC_MoveChild, 9, ++/*366338*/ OPC_CheckInteger, 1, ++/*366340*/ OPC_CheckType, MVT::i32, ++/*366342*/ OPC_MoveParent, ++/*366343*/ OPC_MoveChild, 10, ++/*366345*/ OPC_CheckInteger, 1, ++/*366347*/ OPC_CheckType, MVT::i32, ++/*366349*/ OPC_MoveParent, ++/*366350*/ OPC_MoveChild, 11, ++/*366352*/ OPC_CheckInteger, 1, ++/*366354*/ OPC_CheckType, MVT::i32, ++/*366356*/ OPC_MoveParent, ++/*366357*/ OPC_MoveChild, 12, ++/*366359*/ OPC_CheckInteger, 1, ++/*366361*/ OPC_CheckType, MVT::i32, ++/*366363*/ OPC_MoveParent, ++/*366364*/ OPC_MoveChild, 13, ++/*366366*/ OPC_CheckInteger, 1, ++/*366368*/ OPC_CheckType, MVT::i32, ++/*366370*/ OPC_MoveParent, ++/*366371*/ OPC_MoveChild, 14, ++/*366373*/ OPC_CheckInteger, 1, ++/*366375*/ OPC_CheckType, MVT::i32, ++/*366377*/ OPC_MoveParent, ++/*366378*/ OPC_MoveChild, 15, ++/*366380*/ OPC_CheckInteger, 1, ++/*366382*/ OPC_CheckType, MVT::i32, ++/*366384*/ OPC_MoveParent, ++/*366385*/ OPC_MoveParent, ++/*366386*/ OPC_MoveParent, ++/*366387*/ OPC_MoveParent, ++/*366388*/ OPC_MoveChild1, ++/*366389*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*366392*/ OPC_CheckChild0Integer, 1, ++/*366394*/ OPC_CheckChild0Type, MVT::i32, ++/*366396*/ OPC_CheckChild1Integer, 1, ++/*366398*/ OPC_CheckChild1Type, MVT::i32, ++/*366400*/ OPC_CheckChild2Integer, 1, ++/*366402*/ OPC_CheckChild2Type, MVT::i32, ++/*366404*/ OPC_CheckChild3Integer, 1, ++/*366406*/ OPC_CheckChild3Type, MVT::i32, ++/*366408*/ OPC_CheckChild4Integer, 1, ++/*366410*/ OPC_CheckChild4Type, MVT::i32, ++/*366412*/ OPC_MoveChild5, ++/*366413*/ OPC_CheckInteger, 1, ++/*366415*/ OPC_CheckType, MVT::i32, ++/*366417*/ OPC_MoveParent, ++/*366418*/ OPC_MoveChild6, ++/*366419*/ OPC_CheckInteger, 1, ++/*366421*/ OPC_CheckType, MVT::i32, ++/*366423*/ OPC_MoveParent, ++/*366424*/ OPC_MoveChild7, ++/*366425*/ OPC_CheckInteger, 1, ++/*366427*/ OPC_CheckType, MVT::i32, ++/*366429*/ OPC_MoveParent, ++/*366430*/ OPC_MoveChild, 8, ++/*366432*/ OPC_CheckInteger, 1, ++/*366434*/ OPC_CheckType, MVT::i32, ++/*366436*/ OPC_MoveParent, ++/*366437*/ OPC_MoveChild, 9, ++/*366439*/ OPC_CheckInteger, 1, ++/*366441*/ OPC_CheckType, MVT::i32, ++/*366443*/ OPC_MoveParent, ++/*366444*/ OPC_MoveChild, 10, ++/*366446*/ OPC_CheckInteger, 1, ++/*366448*/ OPC_CheckType, MVT::i32, ++/*366450*/ OPC_MoveParent, ++/*366451*/ OPC_MoveChild, 11, ++/*366453*/ OPC_CheckInteger, 1, ++/*366455*/ OPC_CheckType, MVT::i32, ++/*366457*/ OPC_MoveParent, ++/*366458*/ OPC_MoveChild, 12, ++/*366460*/ OPC_CheckInteger, 1, ++/*366462*/ OPC_CheckType, MVT::i32, ++/*366464*/ OPC_MoveParent, ++/*366465*/ OPC_MoveChild, 13, ++/*366467*/ OPC_CheckInteger, 1, ++/*366469*/ OPC_CheckType, MVT::i32, ++/*366471*/ OPC_MoveParent, ++/*366472*/ OPC_MoveChild, 14, ++/*366474*/ OPC_CheckInteger, 1, ++/*366476*/ OPC_CheckType, MVT::i32, ++/*366478*/ OPC_MoveParent, ++/*366479*/ OPC_MoveChild, 15, ++/*366481*/ OPC_CheckInteger, 1, ++/*366483*/ OPC_CheckType, MVT::i32, ++/*366485*/ OPC_MoveParent, ++/*366486*/ OPC_CheckType, MVT::v16i8, ++/*366488*/ OPC_MoveParent, ++/*366489*/ OPC_CheckType, MVT::v16i8, ++/*366491*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*366493*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*366501*/ 0, /*End of Scope*/ ++/*366502*/ /*Scope*/ 62|128,3/*446*/, /*->366950*/ ++/*366504*/ OPC_CheckChild0Same, 1, ++/*366506*/ OPC_MoveChild1, ++/*366507*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*366510*/ OPC_Scope, 89|128,1/*217*/, /*->366730*/ // 2 children in Scope ++/*366513*/ OPC_MoveChild0, ++/*366514*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*366517*/ OPC_CheckChild0Integer, 1, ++/*366519*/ OPC_CheckChild0Type, MVT::i32, ++/*366521*/ OPC_CheckChild1Integer, 1, ++/*366523*/ OPC_CheckChild1Type, MVT::i32, ++/*366525*/ OPC_CheckChild2Integer, 1, ++/*366527*/ OPC_CheckChild2Type, MVT::i32, ++/*366529*/ OPC_CheckChild3Integer, 1, ++/*366531*/ OPC_CheckChild3Type, MVT::i32, ++/*366533*/ OPC_CheckChild4Integer, 1, ++/*366535*/ OPC_CheckChild4Type, MVT::i32, ++/*366537*/ OPC_MoveChild5, ++/*366538*/ OPC_CheckInteger, 1, ++/*366540*/ OPC_CheckType, MVT::i32, ++/*366542*/ OPC_MoveParent, ++/*366543*/ OPC_MoveChild6, ++/*366544*/ OPC_CheckInteger, 1, ++/*366546*/ OPC_CheckType, MVT::i32, ++/*366548*/ OPC_MoveParent, ++/*366549*/ OPC_MoveChild7, ++/*366550*/ OPC_CheckInteger, 1, ++/*366552*/ OPC_CheckType, MVT::i32, ++/*366554*/ OPC_MoveParent, ++/*366555*/ OPC_MoveChild, 8, ++/*366557*/ OPC_CheckInteger, 1, ++/*366559*/ OPC_CheckType, MVT::i32, ++/*366561*/ OPC_MoveParent, ++/*366562*/ OPC_MoveChild, 9, ++/*366564*/ OPC_CheckInteger, 1, ++/*366566*/ OPC_CheckType, MVT::i32, ++/*366568*/ OPC_MoveParent, ++/*366569*/ OPC_MoveChild, 10, ++/*366571*/ OPC_CheckInteger, 1, ++/*366573*/ OPC_CheckType, MVT::i32, ++/*366575*/ OPC_MoveParent, ++/*366576*/ OPC_MoveChild, 11, ++/*366578*/ OPC_CheckInteger, 1, ++/*366580*/ OPC_CheckType, MVT::i32, ++/*366582*/ OPC_MoveParent, ++/*366583*/ OPC_MoveChild, 12, ++/*366585*/ OPC_CheckInteger, 1, ++/*366587*/ OPC_CheckType, MVT::i32, ++/*366589*/ OPC_MoveParent, ++/*366590*/ OPC_MoveChild, 13, ++/*366592*/ OPC_CheckInteger, 1, ++/*366594*/ OPC_CheckType, MVT::i32, ++/*366596*/ OPC_MoveParent, ++/*366597*/ OPC_MoveChild, 14, ++/*366599*/ OPC_CheckInteger, 1, ++/*366601*/ OPC_CheckType, MVT::i32, ++/*366603*/ OPC_MoveParent, ++/*366604*/ OPC_MoveChild, 15, ++/*366606*/ OPC_CheckInteger, 1, ++/*366608*/ OPC_CheckType, MVT::i32, ++/*366610*/ OPC_MoveParent, ++/*366611*/ OPC_MoveParent, ++/*366612*/ OPC_CheckChild1Same, 0, ++/*366614*/ OPC_MoveParent, ++/*366615*/ OPC_MoveParent, ++/*366616*/ OPC_MoveParent, ++/*366617*/ OPC_MoveChild1, ++/*366618*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*366621*/ OPC_CheckChild0Integer, 1, ++/*366623*/ OPC_CheckChild0Type, MVT::i32, ++/*366625*/ OPC_CheckChild1Integer, 1, ++/*366627*/ OPC_CheckChild1Type, MVT::i32, ++/*366629*/ OPC_CheckChild2Integer, 1, ++/*366631*/ OPC_CheckChild2Type, MVT::i32, ++/*366633*/ OPC_CheckChild3Integer, 1, ++/*366635*/ OPC_CheckChild3Type, MVT::i32, ++/*366637*/ OPC_CheckChild4Integer, 1, ++/*366639*/ OPC_CheckChild4Type, MVT::i32, ++/*366641*/ OPC_MoveChild5, ++/*366642*/ OPC_CheckInteger, 1, ++/*366644*/ OPC_CheckType, MVT::i32, ++/*366646*/ OPC_MoveParent, ++/*366647*/ OPC_MoveChild6, ++/*366648*/ OPC_CheckInteger, 1, ++/*366650*/ OPC_CheckType, MVT::i32, ++/*366652*/ OPC_MoveParent, ++/*366653*/ OPC_MoveChild7, ++/*366654*/ OPC_CheckInteger, 1, ++/*366656*/ OPC_CheckType, MVT::i32, ++/*366658*/ OPC_MoveParent, ++/*366659*/ OPC_MoveChild, 8, ++/*366661*/ OPC_CheckInteger, 1, ++/*366663*/ OPC_CheckType, MVT::i32, ++/*366665*/ OPC_MoveParent, ++/*366666*/ OPC_MoveChild, 9, ++/*366668*/ OPC_CheckInteger, 1, ++/*366670*/ OPC_CheckType, MVT::i32, ++/*366672*/ OPC_MoveParent, ++/*366673*/ OPC_MoveChild, 10, ++/*366675*/ OPC_CheckInteger, 1, ++/*366677*/ OPC_CheckType, MVT::i32, ++/*366679*/ OPC_MoveParent, ++/*366680*/ OPC_MoveChild, 11, ++/*366682*/ OPC_CheckInteger, 1, ++/*366684*/ OPC_CheckType, MVT::i32, ++/*366686*/ OPC_MoveParent, ++/*366687*/ OPC_MoveChild, 12, ++/*366689*/ OPC_CheckInteger, 1, ++/*366691*/ OPC_CheckType, MVT::i32, ++/*366693*/ OPC_MoveParent, ++/*366694*/ OPC_MoveChild, 13, ++/*366696*/ OPC_CheckInteger, 1, ++/*366698*/ OPC_CheckType, MVT::i32, ++/*366700*/ OPC_MoveParent, ++/*366701*/ OPC_MoveChild, 14, ++/*366703*/ OPC_CheckInteger, 1, ++/*366705*/ OPC_CheckType, MVT::i32, ++/*366707*/ OPC_MoveParent, ++/*366708*/ OPC_MoveChild, 15, ++/*366710*/ OPC_CheckInteger, 1, ++/*366712*/ OPC_CheckType, MVT::i32, ++/*366714*/ OPC_MoveParent, ++/*366715*/ OPC_CheckType, MVT::v16i8, ++/*366717*/ OPC_MoveParent, ++/*366718*/ OPC_CheckType, MVT::v16i8, ++/*366720*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*366722*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*366730*/ /*Scope*/ 89|128,1/*217*/, /*->366949*/ ++/*366732*/ OPC_CheckChild0Same, 0, ++/*366734*/ OPC_MoveChild1, ++/*366735*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*366738*/ OPC_CheckChild0Integer, 1, ++/*366740*/ OPC_CheckChild0Type, MVT::i32, ++/*366742*/ OPC_CheckChild1Integer, 1, ++/*366744*/ OPC_CheckChild1Type, MVT::i32, ++/*366746*/ OPC_CheckChild2Integer, 1, ++/*366748*/ OPC_CheckChild2Type, MVT::i32, ++/*366750*/ OPC_CheckChild3Integer, 1, ++/*366752*/ OPC_CheckChild3Type, MVT::i32, ++/*366754*/ OPC_CheckChild4Integer, 1, ++/*366756*/ OPC_CheckChild4Type, MVT::i32, ++/*366758*/ OPC_MoveChild5, ++/*366759*/ OPC_CheckInteger, 1, ++/*366761*/ OPC_CheckType, MVT::i32, ++/*366763*/ OPC_MoveParent, ++/*366764*/ OPC_MoveChild6, ++/*366765*/ OPC_CheckInteger, 1, ++/*366767*/ OPC_CheckType, MVT::i32, ++/*366769*/ OPC_MoveParent, ++/*366770*/ OPC_MoveChild7, ++/*366771*/ OPC_CheckInteger, 1, ++/*366773*/ OPC_CheckType, MVT::i32, ++/*366775*/ OPC_MoveParent, ++/*366776*/ OPC_MoveChild, 8, ++/*366778*/ OPC_CheckInteger, 1, ++/*366780*/ OPC_CheckType, MVT::i32, ++/*366782*/ OPC_MoveParent, ++/*366783*/ OPC_MoveChild, 9, ++/*366785*/ OPC_CheckInteger, 1, ++/*366787*/ OPC_CheckType, MVT::i32, ++/*366789*/ OPC_MoveParent, ++/*366790*/ OPC_MoveChild, 10, ++/*366792*/ OPC_CheckInteger, 1, ++/*366794*/ OPC_CheckType, MVT::i32, ++/*366796*/ OPC_MoveParent, ++/*366797*/ OPC_MoveChild, 11, ++/*366799*/ OPC_CheckInteger, 1, ++/*366801*/ OPC_CheckType, MVT::i32, ++/*366803*/ OPC_MoveParent, ++/*366804*/ OPC_MoveChild, 12, ++/*366806*/ OPC_CheckInteger, 1, ++/*366808*/ OPC_CheckType, MVT::i32, ++/*366810*/ OPC_MoveParent, ++/*366811*/ OPC_MoveChild, 13, ++/*366813*/ OPC_CheckInteger, 1, ++/*366815*/ OPC_CheckType, MVT::i32, ++/*366817*/ OPC_MoveParent, ++/*366818*/ OPC_MoveChild, 14, ++/*366820*/ OPC_CheckInteger, 1, ++/*366822*/ OPC_CheckType, MVT::i32, ++/*366824*/ OPC_MoveParent, ++/*366825*/ OPC_MoveChild, 15, ++/*366827*/ OPC_CheckInteger, 1, ++/*366829*/ OPC_CheckType, MVT::i32, ++/*366831*/ OPC_MoveParent, ++/*366832*/ OPC_MoveParent, ++/*366833*/ OPC_MoveParent, ++/*366834*/ OPC_MoveParent, ++/*366835*/ OPC_MoveParent, ++/*366836*/ OPC_MoveChild1, ++/*366837*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*366840*/ OPC_CheckChild0Integer, 1, ++/*366842*/ OPC_CheckChild0Type, MVT::i32, ++/*366844*/ OPC_CheckChild1Integer, 1, ++/*366846*/ OPC_CheckChild1Type, MVT::i32, ++/*366848*/ OPC_CheckChild2Integer, 1, ++/*366850*/ OPC_CheckChild2Type, MVT::i32, ++/*366852*/ OPC_CheckChild3Integer, 1, ++/*366854*/ OPC_CheckChild3Type, MVT::i32, ++/*366856*/ OPC_CheckChild4Integer, 1, ++/*366858*/ OPC_CheckChild4Type, MVT::i32, ++/*366860*/ OPC_MoveChild5, ++/*366861*/ OPC_CheckInteger, 1, ++/*366863*/ OPC_CheckType, MVT::i32, ++/*366865*/ OPC_MoveParent, ++/*366866*/ OPC_MoveChild6, ++/*366867*/ OPC_CheckInteger, 1, ++/*366869*/ OPC_CheckType, MVT::i32, ++/*366871*/ OPC_MoveParent, ++/*366872*/ OPC_MoveChild7, ++/*366873*/ OPC_CheckInteger, 1, ++/*366875*/ OPC_CheckType, MVT::i32, ++/*366877*/ OPC_MoveParent, ++/*366878*/ OPC_MoveChild, 8, ++/*366880*/ OPC_CheckInteger, 1, ++/*366882*/ OPC_CheckType, MVT::i32, ++/*366884*/ OPC_MoveParent, ++/*366885*/ OPC_MoveChild, 9, ++/*366887*/ OPC_CheckInteger, 1, ++/*366889*/ OPC_CheckType, MVT::i32, ++/*366891*/ OPC_MoveParent, ++/*366892*/ OPC_MoveChild, 10, ++/*366894*/ OPC_CheckInteger, 1, ++/*366896*/ OPC_CheckType, MVT::i32, ++/*366898*/ OPC_MoveParent, ++/*366899*/ OPC_MoveChild, 11, ++/*366901*/ OPC_CheckInteger, 1, ++/*366903*/ OPC_CheckType, MVT::i32, ++/*366905*/ OPC_MoveParent, ++/*366906*/ OPC_MoveChild, 12, ++/*366908*/ OPC_CheckInteger, 1, ++/*366910*/ OPC_CheckType, MVT::i32, ++/*366912*/ OPC_MoveParent, ++/*366913*/ OPC_MoveChild, 13, ++/*366915*/ OPC_CheckInteger, 1, ++/*366917*/ OPC_CheckType, MVT::i32, ++/*366919*/ OPC_MoveParent, ++/*366920*/ OPC_MoveChild, 14, ++/*366922*/ OPC_CheckInteger, 1, ++/*366924*/ OPC_CheckType, MVT::i32, ++/*366926*/ OPC_MoveParent, ++/*366927*/ OPC_MoveChild, 15, ++/*366929*/ OPC_CheckInteger, 1, ++/*366931*/ OPC_CheckType, MVT::i32, ++/*366933*/ OPC_MoveParent, ++/*366934*/ OPC_CheckType, MVT::v16i8, ++/*366936*/ OPC_MoveParent, ++/*366937*/ OPC_CheckType, MVT::v16i8, ++/*366939*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*366941*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*366949*/ 0, /*End of Scope*/ ++/*366950*/ /*Scope*/ 62|128,3/*446*/, /*->367398*/ ++/*366952*/ OPC_CheckChild0Same, 0, ++/*366954*/ OPC_MoveChild1, ++/*366955*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*366958*/ OPC_Scope, 89|128,1/*217*/, /*->367178*/ // 2 children in Scope ++/*366961*/ OPC_MoveChild0, ++/*366962*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*366965*/ OPC_CheckChild0Integer, 1, ++/*366967*/ OPC_CheckChild0Type, MVT::i32, ++/*366969*/ OPC_CheckChild1Integer, 1, ++/*366971*/ OPC_CheckChild1Type, MVT::i32, ++/*366973*/ OPC_CheckChild2Integer, 1, ++/*366975*/ OPC_CheckChild2Type, MVT::i32, ++/*366977*/ OPC_CheckChild3Integer, 1, ++/*366979*/ OPC_CheckChild3Type, MVT::i32, ++/*366981*/ OPC_CheckChild4Integer, 1, ++/*366983*/ OPC_CheckChild4Type, MVT::i32, ++/*366985*/ OPC_MoveChild5, ++/*366986*/ OPC_CheckInteger, 1, ++/*366988*/ OPC_CheckType, MVT::i32, ++/*366990*/ OPC_MoveParent, ++/*366991*/ OPC_MoveChild6, ++/*366992*/ OPC_CheckInteger, 1, ++/*366994*/ OPC_CheckType, MVT::i32, ++/*366996*/ OPC_MoveParent, ++/*366997*/ OPC_MoveChild7, ++/*366998*/ OPC_CheckInteger, 1, ++/*367000*/ OPC_CheckType, MVT::i32, ++/*367002*/ OPC_MoveParent, ++/*367003*/ OPC_MoveChild, 8, ++/*367005*/ OPC_CheckInteger, 1, ++/*367007*/ OPC_CheckType, MVT::i32, ++/*367009*/ OPC_MoveParent, ++/*367010*/ OPC_MoveChild, 9, ++/*367012*/ OPC_CheckInteger, 1, ++/*367014*/ OPC_CheckType, MVT::i32, ++/*367016*/ OPC_MoveParent, ++/*367017*/ OPC_MoveChild, 10, ++/*367019*/ OPC_CheckInteger, 1, ++/*367021*/ OPC_CheckType, MVT::i32, ++/*367023*/ OPC_MoveParent, ++/*367024*/ OPC_MoveChild, 11, ++/*367026*/ OPC_CheckInteger, 1, ++/*367028*/ OPC_CheckType, MVT::i32, ++/*367030*/ OPC_MoveParent, ++/*367031*/ OPC_MoveChild, 12, ++/*367033*/ OPC_CheckInteger, 1, ++/*367035*/ OPC_CheckType, MVT::i32, ++/*367037*/ OPC_MoveParent, ++/*367038*/ OPC_MoveChild, 13, ++/*367040*/ OPC_CheckInteger, 1, ++/*367042*/ OPC_CheckType, MVT::i32, ++/*367044*/ OPC_MoveParent, ++/*367045*/ OPC_MoveChild, 14, ++/*367047*/ OPC_CheckInteger, 1, ++/*367049*/ OPC_CheckType, MVT::i32, ++/*367051*/ OPC_MoveParent, ++/*367052*/ OPC_MoveChild, 15, ++/*367054*/ OPC_CheckInteger, 1, ++/*367056*/ OPC_CheckType, MVT::i32, ++/*367058*/ OPC_MoveParent, ++/*367059*/ OPC_MoveParent, ++/*367060*/ OPC_CheckChild1Same, 1, ++/*367062*/ OPC_MoveParent, ++/*367063*/ OPC_MoveParent, ++/*367064*/ OPC_MoveParent, ++/*367065*/ OPC_MoveChild1, ++/*367066*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*367069*/ OPC_CheckChild0Integer, 1, ++/*367071*/ OPC_CheckChild0Type, MVT::i32, ++/*367073*/ OPC_CheckChild1Integer, 1, ++/*367075*/ OPC_CheckChild1Type, MVT::i32, ++/*367077*/ OPC_CheckChild2Integer, 1, ++/*367079*/ OPC_CheckChild2Type, MVT::i32, ++/*367081*/ OPC_CheckChild3Integer, 1, ++/*367083*/ OPC_CheckChild3Type, MVT::i32, ++/*367085*/ OPC_CheckChild4Integer, 1, ++/*367087*/ OPC_CheckChild4Type, MVT::i32, ++/*367089*/ OPC_MoveChild5, ++/*367090*/ OPC_CheckInteger, 1, ++/*367092*/ OPC_CheckType, MVT::i32, ++/*367094*/ OPC_MoveParent, ++/*367095*/ OPC_MoveChild6, ++/*367096*/ OPC_CheckInteger, 1, ++/*367098*/ OPC_CheckType, MVT::i32, ++/*367100*/ OPC_MoveParent, ++/*367101*/ OPC_MoveChild7, ++/*367102*/ OPC_CheckInteger, 1, ++/*367104*/ OPC_CheckType, MVT::i32, ++/*367106*/ OPC_MoveParent, ++/*367107*/ OPC_MoveChild, 8, ++/*367109*/ OPC_CheckInteger, 1, ++/*367111*/ OPC_CheckType, MVT::i32, ++/*367113*/ OPC_MoveParent, ++/*367114*/ OPC_MoveChild, 9, ++/*367116*/ OPC_CheckInteger, 1, ++/*367118*/ OPC_CheckType, MVT::i32, ++/*367120*/ OPC_MoveParent, ++/*367121*/ OPC_MoveChild, 10, ++/*367123*/ OPC_CheckInteger, 1, ++/*367125*/ OPC_CheckType, MVT::i32, ++/*367127*/ OPC_MoveParent, ++/*367128*/ OPC_MoveChild, 11, ++/*367130*/ OPC_CheckInteger, 1, ++/*367132*/ OPC_CheckType, MVT::i32, ++/*367134*/ OPC_MoveParent, ++/*367135*/ OPC_MoveChild, 12, ++/*367137*/ OPC_CheckInteger, 1, ++/*367139*/ OPC_CheckType, MVT::i32, ++/*367141*/ OPC_MoveParent, ++/*367142*/ OPC_MoveChild, 13, ++/*367144*/ OPC_CheckInteger, 1, ++/*367146*/ OPC_CheckType, MVT::i32, ++/*367148*/ OPC_MoveParent, ++/*367149*/ OPC_MoveChild, 14, ++/*367151*/ OPC_CheckInteger, 1, ++/*367153*/ OPC_CheckType, MVT::i32, ++/*367155*/ OPC_MoveParent, ++/*367156*/ OPC_MoveChild, 15, ++/*367158*/ OPC_CheckInteger, 1, ++/*367160*/ OPC_CheckType, MVT::i32, ++/*367162*/ OPC_MoveParent, ++/*367163*/ OPC_CheckType, MVT::v16i8, ++/*367165*/ OPC_MoveParent, ++/*367166*/ OPC_CheckType, MVT::v16i8, ++/*367168*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*367170*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*367178*/ /*Scope*/ 89|128,1/*217*/, /*->367397*/ ++/*367180*/ OPC_CheckChild0Same, 1, ++/*367182*/ OPC_MoveChild1, ++/*367183*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*367186*/ OPC_CheckChild0Integer, 1, ++/*367188*/ OPC_CheckChild0Type, MVT::i32, ++/*367190*/ OPC_CheckChild1Integer, 1, ++/*367192*/ OPC_CheckChild1Type, MVT::i32, ++/*367194*/ OPC_CheckChild2Integer, 1, ++/*367196*/ OPC_CheckChild2Type, MVT::i32, ++/*367198*/ OPC_CheckChild3Integer, 1, ++/*367200*/ OPC_CheckChild3Type, MVT::i32, ++/*367202*/ OPC_CheckChild4Integer, 1, ++/*367204*/ OPC_CheckChild4Type, MVT::i32, ++/*367206*/ OPC_MoveChild5, ++/*367207*/ OPC_CheckInteger, 1, ++/*367209*/ OPC_CheckType, MVT::i32, ++/*367211*/ OPC_MoveParent, ++/*367212*/ OPC_MoveChild6, ++/*367213*/ OPC_CheckInteger, 1, ++/*367215*/ OPC_CheckType, MVT::i32, ++/*367217*/ OPC_MoveParent, ++/*367218*/ OPC_MoveChild7, ++/*367219*/ OPC_CheckInteger, 1, ++/*367221*/ OPC_CheckType, MVT::i32, ++/*367223*/ OPC_MoveParent, ++/*367224*/ OPC_MoveChild, 8, ++/*367226*/ OPC_CheckInteger, 1, ++/*367228*/ OPC_CheckType, MVT::i32, ++/*367230*/ OPC_MoveParent, ++/*367231*/ OPC_MoveChild, 9, ++/*367233*/ OPC_CheckInteger, 1, ++/*367235*/ OPC_CheckType, MVT::i32, ++/*367237*/ OPC_MoveParent, ++/*367238*/ OPC_MoveChild, 10, ++/*367240*/ OPC_CheckInteger, 1, ++/*367242*/ OPC_CheckType, MVT::i32, ++/*367244*/ OPC_MoveParent, ++/*367245*/ OPC_MoveChild, 11, ++/*367247*/ OPC_CheckInteger, 1, ++/*367249*/ OPC_CheckType, MVT::i32, ++/*367251*/ OPC_MoveParent, ++/*367252*/ OPC_MoveChild, 12, ++/*367254*/ OPC_CheckInteger, 1, ++/*367256*/ OPC_CheckType, MVT::i32, ++/*367258*/ OPC_MoveParent, ++/*367259*/ OPC_MoveChild, 13, ++/*367261*/ OPC_CheckInteger, 1, ++/*367263*/ OPC_CheckType, MVT::i32, ++/*367265*/ OPC_MoveParent, ++/*367266*/ OPC_MoveChild, 14, ++/*367268*/ OPC_CheckInteger, 1, ++/*367270*/ OPC_CheckType, MVT::i32, ++/*367272*/ OPC_MoveParent, ++/*367273*/ OPC_MoveChild, 15, ++/*367275*/ OPC_CheckInteger, 1, ++/*367277*/ OPC_CheckType, MVT::i32, ++/*367279*/ OPC_MoveParent, ++/*367280*/ OPC_MoveParent, ++/*367281*/ OPC_MoveParent, ++/*367282*/ OPC_MoveParent, ++/*367283*/ OPC_MoveParent, ++/*367284*/ OPC_MoveChild1, ++/*367285*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*367288*/ OPC_CheckChild0Integer, 1, ++/*367290*/ OPC_CheckChild0Type, MVT::i32, ++/*367292*/ OPC_CheckChild1Integer, 1, ++/*367294*/ OPC_CheckChild1Type, MVT::i32, ++/*367296*/ OPC_CheckChild2Integer, 1, ++/*367298*/ OPC_CheckChild2Type, MVT::i32, ++/*367300*/ OPC_CheckChild3Integer, 1, ++/*367302*/ OPC_CheckChild3Type, MVT::i32, ++/*367304*/ OPC_CheckChild4Integer, 1, ++/*367306*/ OPC_CheckChild4Type, MVT::i32, ++/*367308*/ OPC_MoveChild5, ++/*367309*/ OPC_CheckInteger, 1, ++/*367311*/ OPC_CheckType, MVT::i32, ++/*367313*/ OPC_MoveParent, ++/*367314*/ OPC_MoveChild6, ++/*367315*/ OPC_CheckInteger, 1, ++/*367317*/ OPC_CheckType, MVT::i32, ++/*367319*/ OPC_MoveParent, ++/*367320*/ OPC_MoveChild7, ++/*367321*/ OPC_CheckInteger, 1, ++/*367323*/ OPC_CheckType, MVT::i32, ++/*367325*/ OPC_MoveParent, ++/*367326*/ OPC_MoveChild, 8, ++/*367328*/ OPC_CheckInteger, 1, ++/*367330*/ OPC_CheckType, MVT::i32, ++/*367332*/ OPC_MoveParent, ++/*367333*/ OPC_MoveChild, 9, ++/*367335*/ OPC_CheckInteger, 1, ++/*367337*/ OPC_CheckType, MVT::i32, ++/*367339*/ OPC_MoveParent, ++/*367340*/ OPC_MoveChild, 10, ++/*367342*/ OPC_CheckInteger, 1, ++/*367344*/ OPC_CheckType, MVT::i32, ++/*367346*/ OPC_MoveParent, ++/*367347*/ OPC_MoveChild, 11, ++/*367349*/ OPC_CheckInteger, 1, ++/*367351*/ OPC_CheckType, MVT::i32, ++/*367353*/ OPC_MoveParent, ++/*367354*/ OPC_MoveChild, 12, ++/*367356*/ OPC_CheckInteger, 1, ++/*367358*/ OPC_CheckType, MVT::i32, ++/*367360*/ OPC_MoveParent, ++/*367361*/ OPC_MoveChild, 13, ++/*367363*/ OPC_CheckInteger, 1, ++/*367365*/ OPC_CheckType, MVT::i32, ++/*367367*/ OPC_MoveParent, ++/*367368*/ OPC_MoveChild, 14, ++/*367370*/ OPC_CheckInteger, 1, ++/*367372*/ OPC_CheckType, MVT::i32, ++/*367374*/ OPC_MoveParent, ++/*367375*/ OPC_MoveChild, 15, ++/*367377*/ OPC_CheckInteger, 1, ++/*367379*/ OPC_CheckType, MVT::i32, ++/*367381*/ OPC_MoveParent, ++/*367382*/ OPC_CheckType, MVT::v16i8, ++/*367384*/ OPC_MoveParent, ++/*367385*/ OPC_CheckType, MVT::v16i8, ++/*367387*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*367389*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*367397*/ 0, /*End of Scope*/ ++/*367398*/ /*Scope*/ 91|128,2/*347*/, /*->367747*/ ++/*367400*/ OPC_MoveChild0, ++/*367401*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*367404*/ OPC_CheckChild0Integer, 1, ++/*367406*/ OPC_CheckChild0Type, MVT::i32, ++/*367408*/ OPC_CheckChild1Integer, 1, ++/*367410*/ OPC_CheckChild1Type, MVT::i32, ++/*367412*/ OPC_CheckChild2Integer, 1, ++/*367414*/ OPC_CheckChild2Type, MVT::i32, ++/*367416*/ OPC_CheckChild3Integer, 1, ++/*367418*/ OPC_CheckChild3Type, MVT::i32, ++/*367420*/ OPC_CheckChild4Integer, 1, ++/*367422*/ OPC_CheckChild4Type, MVT::i32, ++/*367424*/ OPC_MoveChild5, ++/*367425*/ OPC_CheckInteger, 1, ++/*367427*/ OPC_CheckType, MVT::i32, ++/*367429*/ OPC_MoveParent, ++/*367430*/ OPC_MoveChild6, ++/*367431*/ OPC_CheckInteger, 1, ++/*367433*/ OPC_CheckType, MVT::i32, ++/*367435*/ OPC_MoveParent, ++/*367436*/ OPC_MoveChild7, ++/*367437*/ OPC_CheckInteger, 1, ++/*367439*/ OPC_CheckType, MVT::i32, ++/*367441*/ OPC_MoveParent, ++/*367442*/ OPC_MoveChild, 8, ++/*367444*/ OPC_CheckInteger, 1, ++/*367446*/ OPC_CheckType, MVT::i32, ++/*367448*/ OPC_MoveParent, ++/*367449*/ OPC_MoveChild, 9, ++/*367451*/ OPC_CheckInteger, 1, ++/*367453*/ OPC_CheckType, MVT::i32, ++/*367455*/ OPC_MoveParent, ++/*367456*/ OPC_MoveChild, 10, ++/*367458*/ OPC_CheckInteger, 1, ++/*367460*/ OPC_CheckType, MVT::i32, ++/*367462*/ OPC_MoveParent, ++/*367463*/ OPC_MoveChild, 11, ++/*367465*/ OPC_CheckInteger, 1, ++/*367467*/ OPC_CheckType, MVT::i32, ++/*367469*/ OPC_MoveParent, ++/*367470*/ OPC_MoveChild, 12, ++/*367472*/ OPC_CheckInteger, 1, ++/*367474*/ OPC_CheckType, MVT::i32, ++/*367476*/ OPC_MoveParent, ++/*367477*/ OPC_MoveChild, 13, ++/*367479*/ OPC_CheckInteger, 1, ++/*367481*/ OPC_CheckType, MVT::i32, ++/*367483*/ OPC_MoveParent, ++/*367484*/ OPC_MoveChild, 14, ++/*367486*/ OPC_CheckInteger, 1, ++/*367488*/ OPC_CheckType, MVT::i32, ++/*367490*/ OPC_MoveParent, ++/*367491*/ OPC_MoveChild, 15, ++/*367493*/ OPC_CheckInteger, 1, ++/*367495*/ OPC_CheckType, MVT::i32, ++/*367497*/ OPC_MoveParent, ++/*367498*/ OPC_MoveParent, ++/*367499*/ OPC_MoveChild1, ++/*367500*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*367503*/ OPC_Scope, 120, /*->367625*/ // 2 children in Scope ++/*367505*/ OPC_CheckChild0Same, 0, ++/*367507*/ OPC_CheckChild1Same, 1, ++/*367509*/ OPC_MoveParent, ++/*367510*/ OPC_MoveParent, ++/*367511*/ OPC_MoveParent, ++/*367512*/ OPC_MoveChild1, ++/*367513*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*367516*/ OPC_CheckChild0Integer, 1, ++/*367518*/ OPC_CheckChild0Type, MVT::i32, ++/*367520*/ OPC_CheckChild1Integer, 1, ++/*367522*/ OPC_CheckChild1Type, MVT::i32, ++/*367524*/ OPC_CheckChild2Integer, 1, ++/*367526*/ OPC_CheckChild2Type, MVT::i32, ++/*367528*/ OPC_CheckChild3Integer, 1, ++/*367530*/ OPC_CheckChild3Type, MVT::i32, ++/*367532*/ OPC_CheckChild4Integer, 1, ++/*367534*/ OPC_CheckChild4Type, MVT::i32, ++/*367536*/ OPC_MoveChild5, ++/*367537*/ OPC_CheckInteger, 1, ++/*367539*/ OPC_CheckType, MVT::i32, ++/*367541*/ OPC_MoveParent, ++/*367542*/ OPC_MoveChild6, ++/*367543*/ OPC_CheckInteger, 1, ++/*367545*/ OPC_CheckType, MVT::i32, ++/*367547*/ OPC_MoveParent, ++/*367548*/ OPC_MoveChild7, ++/*367549*/ OPC_CheckInteger, 1, ++/*367551*/ OPC_CheckType, MVT::i32, ++/*367553*/ OPC_MoveParent, ++/*367554*/ OPC_MoveChild, 8, ++/*367556*/ OPC_CheckInteger, 1, ++/*367558*/ OPC_CheckType, MVT::i32, ++/*367560*/ OPC_MoveParent, ++/*367561*/ OPC_MoveChild, 9, ++/*367563*/ OPC_CheckInteger, 1, ++/*367565*/ OPC_CheckType, MVT::i32, ++/*367567*/ OPC_MoveParent, ++/*367568*/ OPC_MoveChild, 10, ++/*367570*/ OPC_CheckInteger, 1, ++/*367572*/ OPC_CheckType, MVT::i32, ++/*367574*/ OPC_MoveParent, ++/*367575*/ OPC_MoveChild, 11, ++/*367577*/ OPC_CheckInteger, 1, ++/*367579*/ OPC_CheckType, MVT::i32, ++/*367581*/ OPC_MoveParent, ++/*367582*/ OPC_MoveChild, 12, ++/*367584*/ OPC_CheckInteger, 1, ++/*367586*/ OPC_CheckType, MVT::i32, ++/*367588*/ OPC_MoveParent, ++/*367589*/ OPC_MoveChild, 13, ++/*367591*/ OPC_CheckInteger, 1, ++/*367593*/ OPC_CheckType, MVT::i32, ++/*367595*/ OPC_MoveParent, ++/*367596*/ OPC_MoveChild, 14, ++/*367598*/ OPC_CheckInteger, 1, ++/*367600*/ OPC_CheckType, MVT::i32, ++/*367602*/ OPC_MoveParent, ++/*367603*/ OPC_MoveChild, 15, ++/*367605*/ OPC_CheckInteger, 1, ++/*367607*/ OPC_CheckType, MVT::i32, ++/*367609*/ OPC_MoveParent, ++/*367610*/ OPC_CheckType, MVT::v16i8, ++/*367612*/ OPC_MoveParent, ++/*367613*/ OPC_CheckType, MVT::v16i8, ++/*367615*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*367617*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*367625*/ /*Scope*/ 120, /*->367746*/ ++/*367626*/ OPC_CheckChild0Same, 1, ++/*367628*/ OPC_CheckChild1Same, 0, ++/*367630*/ OPC_MoveParent, ++/*367631*/ OPC_MoveParent, ++/*367632*/ OPC_MoveParent, ++/*367633*/ OPC_MoveChild1, ++/*367634*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*367637*/ OPC_CheckChild0Integer, 1, ++/*367639*/ OPC_CheckChild0Type, MVT::i32, ++/*367641*/ OPC_CheckChild1Integer, 1, ++/*367643*/ OPC_CheckChild1Type, MVT::i32, ++/*367645*/ OPC_CheckChild2Integer, 1, ++/*367647*/ OPC_CheckChild2Type, MVT::i32, ++/*367649*/ OPC_CheckChild3Integer, 1, ++/*367651*/ OPC_CheckChild3Type, MVT::i32, ++/*367653*/ OPC_CheckChild4Integer, 1, ++/*367655*/ OPC_CheckChild4Type, MVT::i32, ++/*367657*/ OPC_MoveChild5, ++/*367658*/ OPC_CheckInteger, 1, ++/*367660*/ OPC_CheckType, MVT::i32, ++/*367662*/ OPC_MoveParent, ++/*367663*/ OPC_MoveChild6, ++/*367664*/ OPC_CheckInteger, 1, ++/*367666*/ OPC_CheckType, MVT::i32, ++/*367668*/ OPC_MoveParent, ++/*367669*/ OPC_MoveChild7, ++/*367670*/ OPC_CheckInteger, 1, ++/*367672*/ OPC_CheckType, MVT::i32, ++/*367674*/ OPC_MoveParent, ++/*367675*/ OPC_MoveChild, 8, ++/*367677*/ OPC_CheckInteger, 1, ++/*367679*/ OPC_CheckType, MVT::i32, ++/*367681*/ OPC_MoveParent, ++/*367682*/ OPC_MoveChild, 9, ++/*367684*/ OPC_CheckInteger, 1, ++/*367686*/ OPC_CheckType, MVT::i32, ++/*367688*/ OPC_MoveParent, ++/*367689*/ OPC_MoveChild, 10, ++/*367691*/ OPC_CheckInteger, 1, ++/*367693*/ OPC_CheckType, MVT::i32, ++/*367695*/ OPC_MoveParent, ++/*367696*/ OPC_MoveChild, 11, ++/*367698*/ OPC_CheckInteger, 1, ++/*367700*/ OPC_CheckType, MVT::i32, ++/*367702*/ OPC_MoveParent, ++/*367703*/ OPC_MoveChild, 12, ++/*367705*/ OPC_CheckInteger, 1, ++/*367707*/ OPC_CheckType, MVT::i32, ++/*367709*/ OPC_MoveParent, ++/*367710*/ OPC_MoveChild, 13, ++/*367712*/ OPC_CheckInteger, 1, ++/*367714*/ OPC_CheckType, MVT::i32, ++/*367716*/ OPC_MoveParent, ++/*367717*/ OPC_MoveChild, 14, ++/*367719*/ OPC_CheckInteger, 1, ++/*367721*/ OPC_CheckType, MVT::i32, ++/*367723*/ OPC_MoveParent, ++/*367724*/ OPC_MoveChild, 15, ++/*367726*/ OPC_CheckInteger, 1, ++/*367728*/ OPC_CheckType, MVT::i32, ++/*367730*/ OPC_MoveParent, ++/*367731*/ OPC_CheckType, MVT::v16i8, ++/*367733*/ OPC_MoveParent, ++/*367734*/ OPC_CheckType, MVT::v16i8, ++/*367736*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*367738*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*367746*/ 0, /*End of Scope*/ ++/*367747*/ 0, /*End of Scope*/ ++/*367748*/ 0, /*End of Scope*/ ++/*367749*/ /*Scope*/ 39|128,43|128,1/*21927*/, /*->389679*/ ++/*367752*/ OPC_MoveChild0, ++/*367753*/ OPC_SwitchOpcode /*2 cases */, 122|128,41/*5370*/, TARGET_VAL(ISD::BUILD_VECTOR),// ->373128 ++/*367758*/ OPC_CheckChild0Integer, 1, ++/*367760*/ OPC_CheckChild0Type, MVT::i32, ++/*367762*/ OPC_CheckChild1Integer, 1, ++/*367764*/ OPC_CheckChild1Type, MVT::i32, ++/*367766*/ OPC_CheckChild2Integer, 1, ++/*367768*/ OPC_CheckChild2Type, MVT::i32, ++/*367770*/ OPC_CheckChild3Integer, 1, ++/*367772*/ OPC_CheckChild3Type, MVT::i32, ++/*367774*/ OPC_CheckChild4Integer, 1, ++/*367776*/ OPC_CheckChild4Type, MVT::i32, ++/*367778*/ OPC_MoveChild5, ++/*367779*/ OPC_CheckInteger, 1, ++/*367781*/ OPC_CheckType, MVT::i32, ++/*367783*/ OPC_MoveParent, ++/*367784*/ OPC_MoveChild6, ++/*367785*/ OPC_CheckInteger, 1, ++/*367787*/ OPC_CheckType, MVT::i32, ++/*367789*/ OPC_MoveParent, ++/*367790*/ OPC_MoveChild7, ++/*367791*/ OPC_CheckInteger, 1, ++/*367793*/ OPC_CheckType, MVT::i32, ++/*367795*/ OPC_MoveParent, ++/*367796*/ OPC_MoveChild, 8, ++/*367798*/ OPC_CheckInteger, 1, ++/*367800*/ OPC_CheckType, MVT::i32, ++/*367802*/ OPC_MoveParent, ++/*367803*/ OPC_MoveChild, 9, ++/*367805*/ OPC_CheckInteger, 1, ++/*367807*/ OPC_CheckType, MVT::i32, ++/*367809*/ OPC_MoveParent, ++/*367810*/ OPC_MoveChild, 10, ++/*367812*/ OPC_CheckInteger, 1, ++/*367814*/ OPC_CheckType, MVT::i32, ++/*367816*/ OPC_MoveParent, ++/*367817*/ OPC_MoveChild, 11, ++/*367819*/ OPC_CheckInteger, 1, ++/*367821*/ OPC_CheckType, MVT::i32, ++/*367823*/ OPC_MoveParent, ++/*367824*/ OPC_MoveChild, 12, ++/*367826*/ OPC_CheckInteger, 1, ++/*367828*/ OPC_CheckType, MVT::i32, ++/*367830*/ OPC_MoveParent, ++/*367831*/ OPC_MoveChild, 13, ++/*367833*/ OPC_CheckInteger, 1, ++/*367835*/ OPC_CheckType, MVT::i32, ++/*367837*/ OPC_MoveParent, ++/*367838*/ OPC_MoveChild, 14, ++/*367840*/ OPC_CheckInteger, 1, ++/*367842*/ OPC_CheckType, MVT::i32, ++/*367844*/ OPC_MoveParent, ++/*367845*/ OPC_MoveChild, 15, ++/*367847*/ OPC_CheckInteger, 1, ++/*367849*/ OPC_CheckType, MVT::i32, ++/*367851*/ OPC_MoveParent, ++/*367852*/ OPC_MoveParent, ++/*367853*/ OPC_MoveChild1, ++/*367854*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*367857*/ OPC_RecordChild0, // #0 = $a ++/*367858*/ OPC_RecordChild1, // #1 = $b ++/*367859*/ OPC_MoveParent, ++/*367860*/ OPC_MoveParent, ++/*367861*/ OPC_MoveChild1, ++/*367862*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*367865*/ OPC_CheckChild0Integer, 7, ++/*367867*/ OPC_CheckChild0Type, MVT::i32, ++/*367869*/ OPC_CheckChild1Integer, 7, ++/*367871*/ OPC_CheckChild1Type, MVT::i32, ++/*367873*/ OPC_CheckChild2Integer, 7, ++/*367875*/ OPC_CheckChild2Type, MVT::i32, ++/*367877*/ OPC_CheckChild3Integer, 7, ++/*367879*/ OPC_CheckChild3Type, MVT::i32, ++/*367881*/ OPC_CheckChild4Integer, 7, ++/*367883*/ OPC_CheckChild4Type, MVT::i32, ++/*367885*/ OPC_MoveChild5, ++/*367886*/ OPC_CheckInteger, 7, ++/*367888*/ OPC_CheckType, MVT::i32, ++/*367890*/ OPC_MoveParent, ++/*367891*/ OPC_MoveChild6, ++/*367892*/ OPC_CheckInteger, 7, ++/*367894*/ OPC_CheckType, MVT::i32, ++/*367896*/ OPC_MoveParent, ++/*367897*/ OPC_MoveChild7, ++/*367898*/ OPC_CheckInteger, 7, ++/*367900*/ OPC_CheckType, MVT::i32, ++/*367902*/ OPC_MoveParent, ++/*367903*/ OPC_MoveChild, 8, ++/*367905*/ OPC_CheckInteger, 7, ++/*367907*/ OPC_CheckType, MVT::i32, ++/*367909*/ OPC_MoveParent, ++/*367910*/ OPC_MoveChild, 9, ++/*367912*/ OPC_CheckInteger, 7, ++/*367914*/ OPC_CheckType, MVT::i32, ++/*367916*/ OPC_MoveParent, ++/*367917*/ OPC_MoveChild, 10, ++/*367919*/ OPC_CheckInteger, 7, ++/*367921*/ OPC_CheckType, MVT::i32, ++/*367923*/ OPC_MoveParent, ++/*367924*/ OPC_MoveChild, 11, ++/*367926*/ OPC_CheckInteger, 7, ++/*367928*/ OPC_CheckType, MVT::i32, ++/*367930*/ OPC_MoveParent, ++/*367931*/ OPC_MoveChild, 12, ++/*367933*/ OPC_CheckInteger, 7, ++/*367935*/ OPC_CheckType, MVT::i32, ++/*367937*/ OPC_MoveParent, ++/*367938*/ OPC_MoveChild, 13, ++/*367940*/ OPC_CheckInteger, 7, ++/*367942*/ OPC_CheckType, MVT::i32, ++/*367944*/ OPC_MoveParent, ++/*367945*/ OPC_MoveChild, 14, ++/*367947*/ OPC_CheckInteger, 7, ++/*367949*/ OPC_CheckType, MVT::i32, ++/*367951*/ OPC_MoveParent, ++/*367952*/ OPC_MoveChild, 15, ++/*367954*/ OPC_CheckInteger, 7, ++/*367956*/ OPC_CheckType, MVT::i32, ++/*367958*/ OPC_MoveParent, ++/*367959*/ OPC_CheckType, MVT::v16i8, ++/*367961*/ OPC_MoveParent, ++/*367962*/ OPC_MoveParent, ++/*367963*/ OPC_MoveChild1, ++/*367964*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*367967*/ OPC_Scope, 52|128,10/*1332*/, /*->369302*/ // 7 children in Scope ++/*367970*/ OPC_MoveChild0, ++/*367971*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*367974*/ OPC_Scope, 91|128,1/*219*/, /*->368196*/ // 6 children in Scope ++/*367977*/ OPC_MoveChild0, ++/*367978*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*367981*/ OPC_CheckChild0Integer, 1, ++/*367983*/ OPC_CheckChild0Type, MVT::i32, ++/*367985*/ OPC_CheckChild1Integer, 1, ++/*367987*/ OPC_CheckChild1Type, MVT::i32, ++/*367989*/ OPC_CheckChild2Integer, 1, ++/*367991*/ OPC_CheckChild2Type, MVT::i32, ++/*367993*/ OPC_CheckChild3Integer, 1, ++/*367995*/ OPC_CheckChild3Type, MVT::i32, ++/*367997*/ OPC_CheckChild4Integer, 1, ++/*367999*/ OPC_CheckChild4Type, MVT::i32, ++/*368001*/ OPC_MoveChild5, ++/*368002*/ OPC_CheckInteger, 1, ++/*368004*/ OPC_CheckType, MVT::i32, ++/*368006*/ OPC_MoveParent, ++/*368007*/ OPC_MoveChild6, ++/*368008*/ OPC_CheckInteger, 1, ++/*368010*/ OPC_CheckType, MVT::i32, ++/*368012*/ OPC_MoveParent, ++/*368013*/ OPC_MoveChild7, ++/*368014*/ OPC_CheckInteger, 1, ++/*368016*/ OPC_CheckType, MVT::i32, ++/*368018*/ OPC_MoveParent, ++/*368019*/ OPC_MoveChild, 8, ++/*368021*/ OPC_CheckInteger, 1, ++/*368023*/ OPC_CheckType, MVT::i32, ++/*368025*/ OPC_MoveParent, ++/*368026*/ OPC_MoveChild, 9, ++/*368028*/ OPC_CheckInteger, 1, ++/*368030*/ OPC_CheckType, MVT::i32, ++/*368032*/ OPC_MoveParent, ++/*368033*/ OPC_MoveChild, 10, ++/*368035*/ OPC_CheckInteger, 1, ++/*368037*/ OPC_CheckType, MVT::i32, ++/*368039*/ OPC_MoveParent, ++/*368040*/ OPC_MoveChild, 11, ++/*368042*/ OPC_CheckInteger, 1, ++/*368044*/ OPC_CheckType, MVT::i32, ++/*368046*/ OPC_MoveParent, ++/*368047*/ OPC_MoveChild, 12, ++/*368049*/ OPC_CheckInteger, 1, ++/*368051*/ OPC_CheckType, MVT::i32, ++/*368053*/ OPC_MoveParent, ++/*368054*/ OPC_MoveChild, 13, ++/*368056*/ OPC_CheckInteger, 1, ++/*368058*/ OPC_CheckType, MVT::i32, ++/*368060*/ OPC_MoveParent, ++/*368061*/ OPC_MoveChild, 14, ++/*368063*/ OPC_CheckInteger, 1, ++/*368065*/ OPC_CheckType, MVT::i32, ++/*368067*/ OPC_MoveParent, ++/*368068*/ OPC_MoveChild, 15, ++/*368070*/ OPC_CheckInteger, 1, ++/*368072*/ OPC_CheckType, MVT::i32, ++/*368074*/ OPC_MoveParent, ++/*368075*/ OPC_MoveParent, ++/*368076*/ OPC_CheckChild1Same, 0, ++/*368078*/ OPC_MoveParent, ++/*368079*/ OPC_CheckChild1Same, 1, ++/*368081*/ OPC_MoveParent, ++/*368082*/ OPC_MoveParent, ++/*368083*/ OPC_MoveChild1, ++/*368084*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*368087*/ OPC_CheckChild0Integer, 1, ++/*368089*/ OPC_CheckChild0Type, MVT::i32, ++/*368091*/ OPC_CheckChild1Integer, 1, ++/*368093*/ OPC_CheckChild1Type, MVT::i32, ++/*368095*/ OPC_CheckChild2Integer, 1, ++/*368097*/ OPC_CheckChild2Type, MVT::i32, ++/*368099*/ OPC_CheckChild3Integer, 1, ++/*368101*/ OPC_CheckChild3Type, MVT::i32, ++/*368103*/ OPC_CheckChild4Integer, 1, ++/*368105*/ OPC_CheckChild4Type, MVT::i32, ++/*368107*/ OPC_MoveChild5, ++/*368108*/ OPC_CheckInteger, 1, ++/*368110*/ OPC_CheckType, MVT::i32, ++/*368112*/ OPC_MoveParent, ++/*368113*/ OPC_MoveChild6, ++/*368114*/ OPC_CheckInteger, 1, ++/*368116*/ OPC_CheckType, MVT::i32, ++/*368118*/ OPC_MoveParent, ++/*368119*/ OPC_MoveChild7, ++/*368120*/ OPC_CheckInteger, 1, ++/*368122*/ OPC_CheckType, MVT::i32, ++/*368124*/ OPC_MoveParent, ++/*368125*/ OPC_MoveChild, 8, ++/*368127*/ OPC_CheckInteger, 1, ++/*368129*/ OPC_CheckType, MVT::i32, ++/*368131*/ OPC_MoveParent, ++/*368132*/ OPC_MoveChild, 9, ++/*368134*/ OPC_CheckInteger, 1, ++/*368136*/ OPC_CheckType, MVT::i32, ++/*368138*/ OPC_MoveParent, ++/*368139*/ OPC_MoveChild, 10, ++/*368141*/ OPC_CheckInteger, 1, ++/*368143*/ OPC_CheckType, MVT::i32, ++/*368145*/ OPC_MoveParent, ++/*368146*/ OPC_MoveChild, 11, ++/*368148*/ OPC_CheckInteger, 1, ++/*368150*/ OPC_CheckType, MVT::i32, ++/*368152*/ OPC_MoveParent, ++/*368153*/ OPC_MoveChild, 12, ++/*368155*/ OPC_CheckInteger, 1, ++/*368157*/ OPC_CheckType, MVT::i32, ++/*368159*/ OPC_MoveParent, ++/*368160*/ OPC_MoveChild, 13, ++/*368162*/ OPC_CheckInteger, 1, ++/*368164*/ OPC_CheckType, MVT::i32, ++/*368166*/ OPC_MoveParent, ++/*368167*/ OPC_MoveChild, 14, ++/*368169*/ OPC_CheckInteger, 1, ++/*368171*/ OPC_CheckType, MVT::i32, ++/*368173*/ OPC_MoveParent, ++/*368174*/ OPC_MoveChild, 15, ++/*368176*/ OPC_CheckInteger, 1, ++/*368178*/ OPC_CheckType, MVT::i32, ++/*368180*/ OPC_MoveParent, ++/*368181*/ OPC_CheckType, MVT::v16i8, ++/*368183*/ OPC_MoveParent, ++/*368184*/ OPC_CheckType, MVT::v16i8, ++/*368186*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*368188*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a), LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*368196*/ /*Scope*/ 91|128,1/*219*/, /*->368417*/ ++/*368198*/ OPC_CheckChild0Same, 0, ++/*368200*/ OPC_MoveChild1, ++/*368201*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*368204*/ OPC_CheckChild0Integer, 1, ++/*368206*/ OPC_CheckChild0Type, MVT::i32, ++/*368208*/ OPC_CheckChild1Integer, 1, ++/*368210*/ OPC_CheckChild1Type, MVT::i32, ++/*368212*/ OPC_CheckChild2Integer, 1, ++/*368214*/ OPC_CheckChild2Type, MVT::i32, ++/*368216*/ OPC_CheckChild3Integer, 1, ++/*368218*/ OPC_CheckChild3Type, MVT::i32, ++/*368220*/ OPC_CheckChild4Integer, 1, ++/*368222*/ OPC_CheckChild4Type, MVT::i32, ++/*368224*/ OPC_MoveChild5, ++/*368225*/ OPC_CheckInteger, 1, ++/*368227*/ OPC_CheckType, MVT::i32, ++/*368229*/ OPC_MoveParent, ++/*368230*/ OPC_MoveChild6, ++/*368231*/ OPC_CheckInteger, 1, ++/*368233*/ OPC_CheckType, MVT::i32, ++/*368235*/ OPC_MoveParent, ++/*368236*/ OPC_MoveChild7, ++/*368237*/ OPC_CheckInteger, 1, ++/*368239*/ OPC_CheckType, MVT::i32, ++/*368241*/ OPC_MoveParent, ++/*368242*/ OPC_MoveChild, 8, ++/*368244*/ OPC_CheckInteger, 1, ++/*368246*/ OPC_CheckType, MVT::i32, ++/*368248*/ OPC_MoveParent, ++/*368249*/ OPC_MoveChild, 9, ++/*368251*/ OPC_CheckInteger, 1, ++/*368253*/ OPC_CheckType, MVT::i32, ++/*368255*/ OPC_MoveParent, ++/*368256*/ OPC_MoveChild, 10, ++/*368258*/ OPC_CheckInteger, 1, ++/*368260*/ OPC_CheckType, MVT::i32, ++/*368262*/ OPC_MoveParent, ++/*368263*/ OPC_MoveChild, 11, ++/*368265*/ OPC_CheckInteger, 1, ++/*368267*/ OPC_CheckType, MVT::i32, ++/*368269*/ OPC_MoveParent, ++/*368270*/ OPC_MoveChild, 12, ++/*368272*/ OPC_CheckInteger, 1, ++/*368274*/ OPC_CheckType, MVT::i32, ++/*368276*/ OPC_MoveParent, ++/*368277*/ OPC_MoveChild, 13, ++/*368279*/ OPC_CheckInteger, 1, ++/*368281*/ OPC_CheckType, MVT::i32, ++/*368283*/ OPC_MoveParent, ++/*368284*/ OPC_MoveChild, 14, ++/*368286*/ OPC_CheckInteger, 1, ++/*368288*/ OPC_CheckType, MVT::i32, ++/*368290*/ OPC_MoveParent, ++/*368291*/ OPC_MoveChild, 15, ++/*368293*/ OPC_CheckInteger, 1, ++/*368295*/ OPC_CheckType, MVT::i32, ++/*368297*/ OPC_MoveParent, ++/*368298*/ OPC_MoveParent, ++/*368299*/ OPC_MoveParent, ++/*368300*/ OPC_CheckChild1Same, 1, ++/*368302*/ OPC_MoveParent, ++/*368303*/ OPC_MoveParent, ++/*368304*/ OPC_MoveChild1, ++/*368305*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*368308*/ OPC_CheckChild0Integer, 1, ++/*368310*/ OPC_CheckChild0Type, MVT::i32, ++/*368312*/ OPC_CheckChild1Integer, 1, ++/*368314*/ OPC_CheckChild1Type, MVT::i32, ++/*368316*/ OPC_CheckChild2Integer, 1, ++/*368318*/ OPC_CheckChild2Type, MVT::i32, ++/*368320*/ OPC_CheckChild3Integer, 1, ++/*368322*/ OPC_CheckChild3Type, MVT::i32, ++/*368324*/ OPC_CheckChild4Integer, 1, ++/*368326*/ OPC_CheckChild4Type, MVT::i32, ++/*368328*/ OPC_MoveChild5, ++/*368329*/ OPC_CheckInteger, 1, ++/*368331*/ OPC_CheckType, MVT::i32, ++/*368333*/ OPC_MoveParent, ++/*368334*/ OPC_MoveChild6, ++/*368335*/ OPC_CheckInteger, 1, ++/*368337*/ OPC_CheckType, MVT::i32, ++/*368339*/ OPC_MoveParent, ++/*368340*/ OPC_MoveChild7, ++/*368341*/ OPC_CheckInteger, 1, ++/*368343*/ OPC_CheckType, MVT::i32, ++/*368345*/ OPC_MoveParent, ++/*368346*/ OPC_MoveChild, 8, ++/*368348*/ OPC_CheckInteger, 1, ++/*368350*/ OPC_CheckType, MVT::i32, ++/*368352*/ OPC_MoveParent, ++/*368353*/ OPC_MoveChild, 9, ++/*368355*/ OPC_CheckInteger, 1, ++/*368357*/ OPC_CheckType, MVT::i32, ++/*368359*/ OPC_MoveParent, ++/*368360*/ OPC_MoveChild, 10, ++/*368362*/ OPC_CheckInteger, 1, ++/*368364*/ OPC_CheckType, MVT::i32, ++/*368366*/ OPC_MoveParent, ++/*368367*/ OPC_MoveChild, 11, ++/*368369*/ OPC_CheckInteger, 1, ++/*368371*/ OPC_CheckType, MVT::i32, ++/*368373*/ OPC_MoveParent, ++/*368374*/ OPC_MoveChild, 12, ++/*368376*/ OPC_CheckInteger, 1, ++/*368378*/ OPC_CheckType, MVT::i32, ++/*368380*/ OPC_MoveParent, ++/*368381*/ OPC_MoveChild, 13, ++/*368383*/ OPC_CheckInteger, 1, ++/*368385*/ OPC_CheckType, MVT::i32, ++/*368387*/ OPC_MoveParent, ++/*368388*/ OPC_MoveChild, 14, ++/*368390*/ OPC_CheckInteger, 1, ++/*368392*/ OPC_CheckType, MVT::i32, ++/*368394*/ OPC_MoveParent, ++/*368395*/ OPC_MoveChild, 15, ++/*368397*/ OPC_CheckInteger, 1, ++/*368399*/ OPC_CheckType, MVT::i32, ++/*368401*/ OPC_MoveParent, ++/*368402*/ OPC_CheckType, MVT::v16i8, ++/*368404*/ OPC_MoveParent, ++/*368405*/ OPC_CheckType, MVT::v16i8, ++/*368407*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*368409*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*368417*/ /*Scope*/ 91|128,1/*219*/, /*->368638*/ ++/*368419*/ OPC_MoveChild0, ++/*368420*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*368423*/ OPC_CheckChild0Integer, 1, ++/*368425*/ OPC_CheckChild0Type, MVT::i32, ++/*368427*/ OPC_CheckChild1Integer, 1, ++/*368429*/ OPC_CheckChild1Type, MVT::i32, ++/*368431*/ OPC_CheckChild2Integer, 1, ++/*368433*/ OPC_CheckChild2Type, MVT::i32, ++/*368435*/ OPC_CheckChild3Integer, 1, ++/*368437*/ OPC_CheckChild3Type, MVT::i32, ++/*368439*/ OPC_CheckChild4Integer, 1, ++/*368441*/ OPC_CheckChild4Type, MVT::i32, ++/*368443*/ OPC_MoveChild5, ++/*368444*/ OPC_CheckInteger, 1, ++/*368446*/ OPC_CheckType, MVT::i32, ++/*368448*/ OPC_MoveParent, ++/*368449*/ OPC_MoveChild6, ++/*368450*/ OPC_CheckInteger, 1, ++/*368452*/ OPC_CheckType, MVT::i32, ++/*368454*/ OPC_MoveParent, ++/*368455*/ OPC_MoveChild7, ++/*368456*/ OPC_CheckInteger, 1, ++/*368458*/ OPC_CheckType, MVT::i32, ++/*368460*/ OPC_MoveParent, ++/*368461*/ OPC_MoveChild, 8, ++/*368463*/ OPC_CheckInteger, 1, ++/*368465*/ OPC_CheckType, MVT::i32, ++/*368467*/ OPC_MoveParent, ++/*368468*/ OPC_MoveChild, 9, ++/*368470*/ OPC_CheckInteger, 1, ++/*368472*/ OPC_CheckType, MVT::i32, ++/*368474*/ OPC_MoveParent, ++/*368475*/ OPC_MoveChild, 10, ++/*368477*/ OPC_CheckInteger, 1, ++/*368479*/ OPC_CheckType, MVT::i32, ++/*368481*/ OPC_MoveParent, ++/*368482*/ OPC_MoveChild, 11, ++/*368484*/ OPC_CheckInteger, 1, ++/*368486*/ OPC_CheckType, MVT::i32, ++/*368488*/ OPC_MoveParent, ++/*368489*/ OPC_MoveChild, 12, ++/*368491*/ OPC_CheckInteger, 1, ++/*368493*/ OPC_CheckType, MVT::i32, ++/*368495*/ OPC_MoveParent, ++/*368496*/ OPC_MoveChild, 13, ++/*368498*/ OPC_CheckInteger, 1, ++/*368500*/ OPC_CheckType, MVT::i32, ++/*368502*/ OPC_MoveParent, ++/*368503*/ OPC_MoveChild, 14, ++/*368505*/ OPC_CheckInteger, 1, ++/*368507*/ OPC_CheckType, MVT::i32, ++/*368509*/ OPC_MoveParent, ++/*368510*/ OPC_MoveChild, 15, ++/*368512*/ OPC_CheckInteger, 1, ++/*368514*/ OPC_CheckType, MVT::i32, ++/*368516*/ OPC_MoveParent, ++/*368517*/ OPC_MoveParent, ++/*368518*/ OPC_CheckChild1Same, 1, ++/*368520*/ OPC_MoveParent, ++/*368521*/ OPC_CheckChild1Same, 0, ++/*368523*/ OPC_MoveParent, ++/*368524*/ OPC_MoveParent, ++/*368525*/ OPC_MoveChild1, ++/*368526*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*368529*/ OPC_CheckChild0Integer, 1, ++/*368531*/ OPC_CheckChild0Type, MVT::i32, ++/*368533*/ OPC_CheckChild1Integer, 1, ++/*368535*/ OPC_CheckChild1Type, MVT::i32, ++/*368537*/ OPC_CheckChild2Integer, 1, ++/*368539*/ OPC_CheckChild2Type, MVT::i32, ++/*368541*/ OPC_CheckChild3Integer, 1, ++/*368543*/ OPC_CheckChild3Type, MVT::i32, ++/*368545*/ OPC_CheckChild4Integer, 1, ++/*368547*/ OPC_CheckChild4Type, MVT::i32, ++/*368549*/ OPC_MoveChild5, ++/*368550*/ OPC_CheckInteger, 1, ++/*368552*/ OPC_CheckType, MVT::i32, ++/*368554*/ OPC_MoveParent, ++/*368555*/ OPC_MoveChild6, ++/*368556*/ OPC_CheckInteger, 1, ++/*368558*/ OPC_CheckType, MVT::i32, ++/*368560*/ OPC_MoveParent, ++/*368561*/ OPC_MoveChild7, ++/*368562*/ OPC_CheckInteger, 1, ++/*368564*/ OPC_CheckType, MVT::i32, ++/*368566*/ OPC_MoveParent, ++/*368567*/ OPC_MoveChild, 8, ++/*368569*/ OPC_CheckInteger, 1, ++/*368571*/ OPC_CheckType, MVT::i32, ++/*368573*/ OPC_MoveParent, ++/*368574*/ OPC_MoveChild, 9, ++/*368576*/ OPC_CheckInteger, 1, ++/*368578*/ OPC_CheckType, MVT::i32, ++/*368580*/ OPC_MoveParent, ++/*368581*/ OPC_MoveChild, 10, ++/*368583*/ OPC_CheckInteger, 1, ++/*368585*/ OPC_CheckType, MVT::i32, ++/*368587*/ OPC_MoveParent, ++/*368588*/ OPC_MoveChild, 11, ++/*368590*/ OPC_CheckInteger, 1, ++/*368592*/ OPC_CheckType, MVT::i32, ++/*368594*/ OPC_MoveParent, ++/*368595*/ OPC_MoveChild, 12, ++/*368597*/ OPC_CheckInteger, 1, ++/*368599*/ OPC_CheckType, MVT::i32, ++/*368601*/ OPC_MoveParent, ++/*368602*/ OPC_MoveChild, 13, ++/*368604*/ OPC_CheckInteger, 1, ++/*368606*/ OPC_CheckType, MVT::i32, ++/*368608*/ OPC_MoveParent, ++/*368609*/ OPC_MoveChild, 14, ++/*368611*/ OPC_CheckInteger, 1, ++/*368613*/ OPC_CheckType, MVT::i32, ++/*368615*/ OPC_MoveParent, ++/*368616*/ OPC_MoveChild, 15, ++/*368618*/ OPC_CheckInteger, 1, ++/*368620*/ OPC_CheckType, MVT::i32, ++/*368622*/ OPC_MoveParent, ++/*368623*/ OPC_CheckType, MVT::v16i8, ++/*368625*/ OPC_MoveParent, ++/*368626*/ OPC_CheckType, MVT::v16i8, ++/*368628*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*368630*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b), LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*368638*/ /*Scope*/ 91|128,1/*219*/, /*->368859*/ ++/*368640*/ OPC_CheckChild0Same, 1, ++/*368642*/ OPC_MoveChild1, ++/*368643*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*368646*/ OPC_CheckChild0Integer, 1, ++/*368648*/ OPC_CheckChild0Type, MVT::i32, ++/*368650*/ OPC_CheckChild1Integer, 1, ++/*368652*/ OPC_CheckChild1Type, MVT::i32, ++/*368654*/ OPC_CheckChild2Integer, 1, ++/*368656*/ OPC_CheckChild2Type, MVT::i32, ++/*368658*/ OPC_CheckChild3Integer, 1, ++/*368660*/ OPC_CheckChild3Type, MVT::i32, ++/*368662*/ OPC_CheckChild4Integer, 1, ++/*368664*/ OPC_CheckChild4Type, MVT::i32, ++/*368666*/ OPC_MoveChild5, ++/*368667*/ OPC_CheckInteger, 1, ++/*368669*/ OPC_CheckType, MVT::i32, ++/*368671*/ OPC_MoveParent, ++/*368672*/ OPC_MoveChild6, ++/*368673*/ OPC_CheckInteger, 1, ++/*368675*/ OPC_CheckType, MVT::i32, ++/*368677*/ OPC_MoveParent, ++/*368678*/ OPC_MoveChild7, ++/*368679*/ OPC_CheckInteger, 1, ++/*368681*/ OPC_CheckType, MVT::i32, ++/*368683*/ OPC_MoveParent, ++/*368684*/ OPC_MoveChild, 8, ++/*368686*/ OPC_CheckInteger, 1, ++/*368688*/ OPC_CheckType, MVT::i32, ++/*368690*/ OPC_MoveParent, ++/*368691*/ OPC_MoveChild, 9, ++/*368693*/ OPC_CheckInteger, 1, ++/*368695*/ OPC_CheckType, MVT::i32, ++/*368697*/ OPC_MoveParent, ++/*368698*/ OPC_MoveChild, 10, ++/*368700*/ OPC_CheckInteger, 1, ++/*368702*/ OPC_CheckType, MVT::i32, ++/*368704*/ OPC_MoveParent, ++/*368705*/ OPC_MoveChild, 11, ++/*368707*/ OPC_CheckInteger, 1, ++/*368709*/ OPC_CheckType, MVT::i32, ++/*368711*/ OPC_MoveParent, ++/*368712*/ OPC_MoveChild, 12, ++/*368714*/ OPC_CheckInteger, 1, ++/*368716*/ OPC_CheckType, MVT::i32, ++/*368718*/ OPC_MoveParent, ++/*368719*/ OPC_MoveChild, 13, ++/*368721*/ OPC_CheckInteger, 1, ++/*368723*/ OPC_CheckType, MVT::i32, ++/*368725*/ OPC_MoveParent, ++/*368726*/ OPC_MoveChild, 14, ++/*368728*/ OPC_CheckInteger, 1, ++/*368730*/ OPC_CheckType, MVT::i32, ++/*368732*/ OPC_MoveParent, ++/*368733*/ OPC_MoveChild, 15, ++/*368735*/ OPC_CheckInteger, 1, ++/*368737*/ OPC_CheckType, MVT::i32, ++/*368739*/ OPC_MoveParent, ++/*368740*/ OPC_MoveParent, ++/*368741*/ OPC_MoveParent, ++/*368742*/ OPC_CheckChild1Same, 0, ++/*368744*/ OPC_MoveParent, ++/*368745*/ OPC_MoveParent, ++/*368746*/ OPC_MoveChild1, ++/*368747*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*368750*/ OPC_CheckChild0Integer, 1, ++/*368752*/ OPC_CheckChild0Type, MVT::i32, ++/*368754*/ OPC_CheckChild1Integer, 1, ++/*368756*/ OPC_CheckChild1Type, MVT::i32, ++/*368758*/ OPC_CheckChild2Integer, 1, ++/*368760*/ OPC_CheckChild2Type, MVT::i32, ++/*368762*/ OPC_CheckChild3Integer, 1, ++/*368764*/ OPC_CheckChild3Type, MVT::i32, ++/*368766*/ OPC_CheckChild4Integer, 1, ++/*368768*/ OPC_CheckChild4Type, MVT::i32, ++/*368770*/ OPC_MoveChild5, ++/*368771*/ OPC_CheckInteger, 1, ++/*368773*/ OPC_CheckType, MVT::i32, ++/*368775*/ OPC_MoveParent, ++/*368776*/ OPC_MoveChild6, ++/*368777*/ OPC_CheckInteger, 1, ++/*368779*/ OPC_CheckType, MVT::i32, ++/*368781*/ OPC_MoveParent, ++/*368782*/ OPC_MoveChild7, ++/*368783*/ OPC_CheckInteger, 1, ++/*368785*/ OPC_CheckType, MVT::i32, ++/*368787*/ OPC_MoveParent, ++/*368788*/ OPC_MoveChild, 8, ++/*368790*/ OPC_CheckInteger, 1, ++/*368792*/ OPC_CheckType, MVT::i32, ++/*368794*/ OPC_MoveParent, ++/*368795*/ OPC_MoveChild, 9, ++/*368797*/ OPC_CheckInteger, 1, ++/*368799*/ OPC_CheckType, MVT::i32, ++/*368801*/ OPC_MoveParent, ++/*368802*/ OPC_MoveChild, 10, ++/*368804*/ OPC_CheckInteger, 1, ++/*368806*/ OPC_CheckType, MVT::i32, ++/*368808*/ OPC_MoveParent, ++/*368809*/ OPC_MoveChild, 11, ++/*368811*/ OPC_CheckInteger, 1, ++/*368813*/ OPC_CheckType, MVT::i32, ++/*368815*/ OPC_MoveParent, ++/*368816*/ OPC_MoveChild, 12, ++/*368818*/ OPC_CheckInteger, 1, ++/*368820*/ OPC_CheckType, MVT::i32, ++/*368822*/ OPC_MoveParent, ++/*368823*/ OPC_MoveChild, 13, ++/*368825*/ OPC_CheckInteger, 1, ++/*368827*/ OPC_CheckType, MVT::i32, ++/*368829*/ OPC_MoveParent, ++/*368830*/ OPC_MoveChild, 14, ++/*368832*/ OPC_CheckInteger, 1, ++/*368834*/ OPC_CheckType, MVT::i32, ++/*368836*/ OPC_MoveParent, ++/*368837*/ OPC_MoveChild, 15, ++/*368839*/ OPC_CheckInteger, 1, ++/*368841*/ OPC_CheckType, MVT::i32, ++/*368843*/ OPC_MoveParent, ++/*368844*/ OPC_CheckType, MVT::v16i8, ++/*368846*/ OPC_MoveParent, ++/*368847*/ OPC_CheckType, MVT::v16i8, ++/*368849*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*368851*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*368859*/ /*Scope*/ 91|128,1/*219*/, /*->369080*/ ++/*368861*/ OPC_CheckChild0Same, 0, ++/*368863*/ OPC_CheckChild1Same, 1, ++/*368865*/ OPC_MoveParent, ++/*368866*/ OPC_MoveChild1, ++/*368867*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*368870*/ OPC_CheckChild0Integer, 1, ++/*368872*/ OPC_CheckChild0Type, MVT::i32, ++/*368874*/ OPC_CheckChild1Integer, 1, ++/*368876*/ OPC_CheckChild1Type, MVT::i32, ++/*368878*/ OPC_CheckChild2Integer, 1, ++/*368880*/ OPC_CheckChild2Type, MVT::i32, ++/*368882*/ OPC_CheckChild3Integer, 1, ++/*368884*/ OPC_CheckChild3Type, MVT::i32, ++/*368886*/ OPC_CheckChild4Integer, 1, ++/*368888*/ OPC_CheckChild4Type, MVT::i32, ++/*368890*/ OPC_MoveChild5, ++/*368891*/ OPC_CheckInteger, 1, ++/*368893*/ OPC_CheckType, MVT::i32, ++/*368895*/ OPC_MoveParent, ++/*368896*/ OPC_MoveChild6, ++/*368897*/ OPC_CheckInteger, 1, ++/*368899*/ OPC_CheckType, MVT::i32, ++/*368901*/ OPC_MoveParent, ++/*368902*/ OPC_MoveChild7, ++/*368903*/ OPC_CheckInteger, 1, ++/*368905*/ OPC_CheckType, MVT::i32, ++/*368907*/ OPC_MoveParent, ++/*368908*/ OPC_MoveChild, 8, ++/*368910*/ OPC_CheckInteger, 1, ++/*368912*/ OPC_CheckType, MVT::i32, ++/*368914*/ OPC_MoveParent, ++/*368915*/ OPC_MoveChild, 9, ++/*368917*/ OPC_CheckInteger, 1, ++/*368919*/ OPC_CheckType, MVT::i32, ++/*368921*/ OPC_MoveParent, ++/*368922*/ OPC_MoveChild, 10, ++/*368924*/ OPC_CheckInteger, 1, ++/*368926*/ OPC_CheckType, MVT::i32, ++/*368928*/ OPC_MoveParent, ++/*368929*/ OPC_MoveChild, 11, ++/*368931*/ OPC_CheckInteger, 1, ++/*368933*/ OPC_CheckType, MVT::i32, ++/*368935*/ OPC_MoveParent, ++/*368936*/ OPC_MoveChild, 12, ++/*368938*/ OPC_CheckInteger, 1, ++/*368940*/ OPC_CheckType, MVT::i32, ++/*368942*/ OPC_MoveParent, ++/*368943*/ OPC_MoveChild, 13, ++/*368945*/ OPC_CheckInteger, 1, ++/*368947*/ OPC_CheckType, MVT::i32, ++/*368949*/ OPC_MoveParent, ++/*368950*/ OPC_MoveChild, 14, ++/*368952*/ OPC_CheckInteger, 1, ++/*368954*/ OPC_CheckType, MVT::i32, ++/*368956*/ OPC_MoveParent, ++/*368957*/ OPC_MoveChild, 15, ++/*368959*/ OPC_CheckInteger, 1, ++/*368961*/ OPC_CheckType, MVT::i32, ++/*368963*/ OPC_MoveParent, ++/*368964*/ OPC_MoveParent, ++/*368965*/ OPC_MoveParent, ++/*368966*/ OPC_MoveParent, ++/*368967*/ OPC_MoveChild1, ++/*368968*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*368971*/ OPC_CheckChild0Integer, 1, ++/*368973*/ OPC_CheckChild0Type, MVT::i32, ++/*368975*/ OPC_CheckChild1Integer, 1, ++/*368977*/ OPC_CheckChild1Type, MVT::i32, ++/*368979*/ OPC_CheckChild2Integer, 1, ++/*368981*/ OPC_CheckChild2Type, MVT::i32, ++/*368983*/ OPC_CheckChild3Integer, 1, ++/*368985*/ OPC_CheckChild3Type, MVT::i32, ++/*368987*/ OPC_CheckChild4Integer, 1, ++/*368989*/ OPC_CheckChild4Type, MVT::i32, ++/*368991*/ OPC_MoveChild5, ++/*368992*/ OPC_CheckInteger, 1, ++/*368994*/ OPC_CheckType, MVT::i32, ++/*368996*/ OPC_MoveParent, ++/*368997*/ OPC_MoveChild6, ++/*368998*/ OPC_CheckInteger, 1, ++/*369000*/ OPC_CheckType, MVT::i32, ++/*369002*/ OPC_MoveParent, ++/*369003*/ OPC_MoveChild7, ++/*369004*/ OPC_CheckInteger, 1, ++/*369006*/ OPC_CheckType, MVT::i32, ++/*369008*/ OPC_MoveParent, ++/*369009*/ OPC_MoveChild, 8, ++/*369011*/ OPC_CheckInteger, 1, ++/*369013*/ OPC_CheckType, MVT::i32, ++/*369015*/ OPC_MoveParent, ++/*369016*/ OPC_MoveChild, 9, ++/*369018*/ OPC_CheckInteger, 1, ++/*369020*/ OPC_CheckType, MVT::i32, ++/*369022*/ OPC_MoveParent, ++/*369023*/ OPC_MoveChild, 10, ++/*369025*/ OPC_CheckInteger, 1, ++/*369027*/ OPC_CheckType, MVT::i32, ++/*369029*/ OPC_MoveParent, ++/*369030*/ OPC_MoveChild, 11, ++/*369032*/ OPC_CheckInteger, 1, ++/*369034*/ OPC_CheckType, MVT::i32, ++/*369036*/ OPC_MoveParent, ++/*369037*/ OPC_MoveChild, 12, ++/*369039*/ OPC_CheckInteger, 1, ++/*369041*/ OPC_CheckType, MVT::i32, ++/*369043*/ OPC_MoveParent, ++/*369044*/ OPC_MoveChild, 13, ++/*369046*/ OPC_CheckInteger, 1, ++/*369048*/ OPC_CheckType, MVT::i32, ++/*369050*/ OPC_MoveParent, ++/*369051*/ OPC_MoveChild, 14, ++/*369053*/ OPC_CheckInteger, 1, ++/*369055*/ OPC_CheckType, MVT::i32, ++/*369057*/ OPC_MoveParent, ++/*369058*/ OPC_MoveChild, 15, ++/*369060*/ OPC_CheckInteger, 1, ++/*369062*/ OPC_CheckType, MVT::i32, ++/*369064*/ OPC_MoveParent, ++/*369065*/ OPC_CheckType, MVT::v16i8, ++/*369067*/ OPC_MoveParent, ++/*369068*/ OPC_CheckType, MVT::v16i8, ++/*369070*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*369072*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*369080*/ /*Scope*/ 91|128,1/*219*/, /*->369301*/ ++/*369082*/ OPC_CheckChild0Same, 1, ++/*369084*/ OPC_CheckChild1Same, 0, ++/*369086*/ OPC_MoveParent, ++/*369087*/ OPC_MoveChild1, ++/*369088*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*369091*/ OPC_CheckChild0Integer, 1, ++/*369093*/ OPC_CheckChild0Type, MVT::i32, ++/*369095*/ OPC_CheckChild1Integer, 1, ++/*369097*/ OPC_CheckChild1Type, MVT::i32, ++/*369099*/ OPC_CheckChild2Integer, 1, ++/*369101*/ OPC_CheckChild2Type, MVT::i32, ++/*369103*/ OPC_CheckChild3Integer, 1, ++/*369105*/ OPC_CheckChild3Type, MVT::i32, ++/*369107*/ OPC_CheckChild4Integer, 1, ++/*369109*/ OPC_CheckChild4Type, MVT::i32, ++/*369111*/ OPC_MoveChild5, ++/*369112*/ OPC_CheckInteger, 1, ++/*369114*/ OPC_CheckType, MVT::i32, ++/*369116*/ OPC_MoveParent, ++/*369117*/ OPC_MoveChild6, ++/*369118*/ OPC_CheckInteger, 1, ++/*369120*/ OPC_CheckType, MVT::i32, ++/*369122*/ OPC_MoveParent, ++/*369123*/ OPC_MoveChild7, ++/*369124*/ OPC_CheckInteger, 1, ++/*369126*/ OPC_CheckType, MVT::i32, ++/*369128*/ OPC_MoveParent, ++/*369129*/ OPC_MoveChild, 8, ++/*369131*/ OPC_CheckInteger, 1, ++/*369133*/ OPC_CheckType, MVT::i32, ++/*369135*/ OPC_MoveParent, ++/*369136*/ OPC_MoveChild, 9, ++/*369138*/ OPC_CheckInteger, 1, ++/*369140*/ OPC_CheckType, MVT::i32, ++/*369142*/ OPC_MoveParent, ++/*369143*/ OPC_MoveChild, 10, ++/*369145*/ OPC_CheckInteger, 1, ++/*369147*/ OPC_CheckType, MVT::i32, ++/*369149*/ OPC_MoveParent, ++/*369150*/ OPC_MoveChild, 11, ++/*369152*/ OPC_CheckInteger, 1, ++/*369154*/ OPC_CheckType, MVT::i32, ++/*369156*/ OPC_MoveParent, ++/*369157*/ OPC_MoveChild, 12, ++/*369159*/ OPC_CheckInteger, 1, ++/*369161*/ OPC_CheckType, MVT::i32, ++/*369163*/ OPC_MoveParent, ++/*369164*/ OPC_MoveChild, 13, ++/*369166*/ OPC_CheckInteger, 1, ++/*369168*/ OPC_CheckType, MVT::i32, ++/*369170*/ OPC_MoveParent, ++/*369171*/ OPC_MoveChild, 14, ++/*369173*/ OPC_CheckInteger, 1, ++/*369175*/ OPC_CheckType, MVT::i32, ++/*369177*/ OPC_MoveParent, ++/*369178*/ OPC_MoveChild, 15, ++/*369180*/ OPC_CheckInteger, 1, ++/*369182*/ OPC_CheckType, MVT::i32, ++/*369184*/ OPC_MoveParent, ++/*369185*/ OPC_MoveParent, ++/*369186*/ OPC_MoveParent, ++/*369187*/ OPC_MoveParent, ++/*369188*/ OPC_MoveChild1, ++/*369189*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*369192*/ OPC_CheckChild0Integer, 1, ++/*369194*/ OPC_CheckChild0Type, MVT::i32, ++/*369196*/ OPC_CheckChild1Integer, 1, ++/*369198*/ OPC_CheckChild1Type, MVT::i32, ++/*369200*/ OPC_CheckChild2Integer, 1, ++/*369202*/ OPC_CheckChild2Type, MVT::i32, ++/*369204*/ OPC_CheckChild3Integer, 1, ++/*369206*/ OPC_CheckChild3Type, MVT::i32, ++/*369208*/ OPC_CheckChild4Integer, 1, ++/*369210*/ OPC_CheckChild4Type, MVT::i32, ++/*369212*/ OPC_MoveChild5, ++/*369213*/ OPC_CheckInteger, 1, ++/*369215*/ OPC_CheckType, MVT::i32, ++/*369217*/ OPC_MoveParent, ++/*369218*/ OPC_MoveChild6, ++/*369219*/ OPC_CheckInteger, 1, ++/*369221*/ OPC_CheckType, MVT::i32, ++/*369223*/ OPC_MoveParent, ++/*369224*/ OPC_MoveChild7, ++/*369225*/ OPC_CheckInteger, 1, ++/*369227*/ OPC_CheckType, MVT::i32, ++/*369229*/ OPC_MoveParent, ++/*369230*/ OPC_MoveChild, 8, ++/*369232*/ OPC_CheckInteger, 1, ++/*369234*/ OPC_CheckType, MVT::i32, ++/*369236*/ OPC_MoveParent, ++/*369237*/ OPC_MoveChild, 9, ++/*369239*/ OPC_CheckInteger, 1, ++/*369241*/ OPC_CheckType, MVT::i32, ++/*369243*/ OPC_MoveParent, ++/*369244*/ OPC_MoveChild, 10, ++/*369246*/ OPC_CheckInteger, 1, ++/*369248*/ OPC_CheckType, MVT::i32, ++/*369250*/ OPC_MoveParent, ++/*369251*/ OPC_MoveChild, 11, ++/*369253*/ OPC_CheckInteger, 1, ++/*369255*/ OPC_CheckType, MVT::i32, ++/*369257*/ OPC_MoveParent, ++/*369258*/ OPC_MoveChild, 12, ++/*369260*/ OPC_CheckInteger, 1, ++/*369262*/ OPC_CheckType, MVT::i32, ++/*369264*/ OPC_MoveParent, ++/*369265*/ OPC_MoveChild, 13, ++/*369267*/ OPC_CheckInteger, 1, ++/*369269*/ OPC_CheckType, MVT::i32, ++/*369271*/ OPC_MoveParent, ++/*369272*/ OPC_MoveChild, 14, ++/*369274*/ OPC_CheckInteger, 1, ++/*369276*/ OPC_CheckType, MVT::i32, ++/*369278*/ OPC_MoveParent, ++/*369279*/ OPC_MoveChild, 15, ++/*369281*/ OPC_CheckInteger, 1, ++/*369283*/ OPC_CheckType, MVT::i32, ++/*369285*/ OPC_MoveParent, ++/*369286*/ OPC_CheckType, MVT::v16i8, ++/*369288*/ OPC_MoveParent, ++/*369289*/ OPC_CheckType, MVT::v16i8, ++/*369291*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*369293*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*369301*/ 0, /*End of Scope*/ ++/*369302*/ /*Scope*/ 62|128,3/*446*/, /*->369750*/ ++/*369304*/ OPC_CheckChild0Same, 1, ++/*369306*/ OPC_MoveChild1, ++/*369307*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*369310*/ OPC_Scope, 89|128,1/*217*/, /*->369530*/ // 2 children in Scope ++/*369313*/ OPC_MoveChild0, ++/*369314*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*369317*/ OPC_CheckChild0Integer, 1, ++/*369319*/ OPC_CheckChild0Type, MVT::i32, ++/*369321*/ OPC_CheckChild1Integer, 1, ++/*369323*/ OPC_CheckChild1Type, MVT::i32, ++/*369325*/ OPC_CheckChild2Integer, 1, ++/*369327*/ OPC_CheckChild2Type, MVT::i32, ++/*369329*/ OPC_CheckChild3Integer, 1, ++/*369331*/ OPC_CheckChild3Type, MVT::i32, ++/*369333*/ OPC_CheckChild4Integer, 1, ++/*369335*/ OPC_CheckChild4Type, MVT::i32, ++/*369337*/ OPC_MoveChild5, ++/*369338*/ OPC_CheckInteger, 1, ++/*369340*/ OPC_CheckType, MVT::i32, ++/*369342*/ OPC_MoveParent, ++/*369343*/ OPC_MoveChild6, ++/*369344*/ OPC_CheckInteger, 1, ++/*369346*/ OPC_CheckType, MVT::i32, ++/*369348*/ OPC_MoveParent, ++/*369349*/ OPC_MoveChild7, ++/*369350*/ OPC_CheckInteger, 1, ++/*369352*/ OPC_CheckType, MVT::i32, ++/*369354*/ OPC_MoveParent, ++/*369355*/ OPC_MoveChild, 8, ++/*369357*/ OPC_CheckInteger, 1, ++/*369359*/ OPC_CheckType, MVT::i32, ++/*369361*/ OPC_MoveParent, ++/*369362*/ OPC_MoveChild, 9, ++/*369364*/ OPC_CheckInteger, 1, ++/*369366*/ OPC_CheckType, MVT::i32, ++/*369368*/ OPC_MoveParent, ++/*369369*/ OPC_MoveChild, 10, ++/*369371*/ OPC_CheckInteger, 1, ++/*369373*/ OPC_CheckType, MVT::i32, ++/*369375*/ OPC_MoveParent, ++/*369376*/ OPC_MoveChild, 11, ++/*369378*/ OPC_CheckInteger, 1, ++/*369380*/ OPC_CheckType, MVT::i32, ++/*369382*/ OPC_MoveParent, ++/*369383*/ OPC_MoveChild, 12, ++/*369385*/ OPC_CheckInteger, 1, ++/*369387*/ OPC_CheckType, MVT::i32, ++/*369389*/ OPC_MoveParent, ++/*369390*/ OPC_MoveChild, 13, ++/*369392*/ OPC_CheckInteger, 1, ++/*369394*/ OPC_CheckType, MVT::i32, ++/*369396*/ OPC_MoveParent, ++/*369397*/ OPC_MoveChild, 14, ++/*369399*/ OPC_CheckInteger, 1, ++/*369401*/ OPC_CheckType, MVT::i32, ++/*369403*/ OPC_MoveParent, ++/*369404*/ OPC_MoveChild, 15, ++/*369406*/ OPC_CheckInteger, 1, ++/*369408*/ OPC_CheckType, MVT::i32, ++/*369410*/ OPC_MoveParent, ++/*369411*/ OPC_MoveParent, ++/*369412*/ OPC_CheckChild1Same, 0, ++/*369414*/ OPC_MoveParent, ++/*369415*/ OPC_MoveParent, ++/*369416*/ OPC_MoveParent, ++/*369417*/ OPC_MoveChild1, ++/*369418*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*369421*/ OPC_CheckChild0Integer, 1, ++/*369423*/ OPC_CheckChild0Type, MVT::i32, ++/*369425*/ OPC_CheckChild1Integer, 1, ++/*369427*/ OPC_CheckChild1Type, MVT::i32, ++/*369429*/ OPC_CheckChild2Integer, 1, ++/*369431*/ OPC_CheckChild2Type, MVT::i32, ++/*369433*/ OPC_CheckChild3Integer, 1, ++/*369435*/ OPC_CheckChild3Type, MVT::i32, ++/*369437*/ OPC_CheckChild4Integer, 1, ++/*369439*/ OPC_CheckChild4Type, MVT::i32, ++/*369441*/ OPC_MoveChild5, ++/*369442*/ OPC_CheckInteger, 1, ++/*369444*/ OPC_CheckType, MVT::i32, ++/*369446*/ OPC_MoveParent, ++/*369447*/ OPC_MoveChild6, ++/*369448*/ OPC_CheckInteger, 1, ++/*369450*/ OPC_CheckType, MVT::i32, ++/*369452*/ OPC_MoveParent, ++/*369453*/ OPC_MoveChild7, ++/*369454*/ OPC_CheckInteger, 1, ++/*369456*/ OPC_CheckType, MVT::i32, ++/*369458*/ OPC_MoveParent, ++/*369459*/ OPC_MoveChild, 8, ++/*369461*/ OPC_CheckInteger, 1, ++/*369463*/ OPC_CheckType, MVT::i32, ++/*369465*/ OPC_MoveParent, ++/*369466*/ OPC_MoveChild, 9, ++/*369468*/ OPC_CheckInteger, 1, ++/*369470*/ OPC_CheckType, MVT::i32, ++/*369472*/ OPC_MoveParent, ++/*369473*/ OPC_MoveChild, 10, ++/*369475*/ OPC_CheckInteger, 1, ++/*369477*/ OPC_CheckType, MVT::i32, ++/*369479*/ OPC_MoveParent, ++/*369480*/ OPC_MoveChild, 11, ++/*369482*/ OPC_CheckInteger, 1, ++/*369484*/ OPC_CheckType, MVT::i32, ++/*369486*/ OPC_MoveParent, ++/*369487*/ OPC_MoveChild, 12, ++/*369489*/ OPC_CheckInteger, 1, ++/*369491*/ OPC_CheckType, MVT::i32, ++/*369493*/ OPC_MoveParent, ++/*369494*/ OPC_MoveChild, 13, ++/*369496*/ OPC_CheckInteger, 1, ++/*369498*/ OPC_CheckType, MVT::i32, ++/*369500*/ OPC_MoveParent, ++/*369501*/ OPC_MoveChild, 14, ++/*369503*/ OPC_CheckInteger, 1, ++/*369505*/ OPC_CheckType, MVT::i32, ++/*369507*/ OPC_MoveParent, ++/*369508*/ OPC_MoveChild, 15, ++/*369510*/ OPC_CheckInteger, 1, ++/*369512*/ OPC_CheckType, MVT::i32, ++/*369514*/ OPC_MoveParent, ++/*369515*/ OPC_CheckType, MVT::v16i8, ++/*369517*/ OPC_MoveParent, ++/*369518*/ OPC_CheckType, MVT::v16i8, ++/*369520*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*369522*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*369530*/ /*Scope*/ 89|128,1/*217*/, /*->369749*/ ++/*369532*/ OPC_CheckChild0Same, 0, ++/*369534*/ OPC_MoveChild1, ++/*369535*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*369538*/ OPC_CheckChild0Integer, 1, ++/*369540*/ OPC_CheckChild0Type, MVT::i32, ++/*369542*/ OPC_CheckChild1Integer, 1, ++/*369544*/ OPC_CheckChild1Type, MVT::i32, ++/*369546*/ OPC_CheckChild2Integer, 1, ++/*369548*/ OPC_CheckChild2Type, MVT::i32, ++/*369550*/ OPC_CheckChild3Integer, 1, ++/*369552*/ OPC_CheckChild3Type, MVT::i32, ++/*369554*/ OPC_CheckChild4Integer, 1, ++/*369556*/ OPC_CheckChild4Type, MVT::i32, ++/*369558*/ OPC_MoveChild5, ++/*369559*/ OPC_CheckInteger, 1, ++/*369561*/ OPC_CheckType, MVT::i32, ++/*369563*/ OPC_MoveParent, ++/*369564*/ OPC_MoveChild6, ++/*369565*/ OPC_CheckInteger, 1, ++/*369567*/ OPC_CheckType, MVT::i32, ++/*369569*/ OPC_MoveParent, ++/*369570*/ OPC_MoveChild7, ++/*369571*/ OPC_CheckInteger, 1, ++/*369573*/ OPC_CheckType, MVT::i32, ++/*369575*/ OPC_MoveParent, ++/*369576*/ OPC_MoveChild, 8, ++/*369578*/ OPC_CheckInteger, 1, ++/*369580*/ OPC_CheckType, MVT::i32, ++/*369582*/ OPC_MoveParent, ++/*369583*/ OPC_MoveChild, 9, ++/*369585*/ OPC_CheckInteger, 1, ++/*369587*/ OPC_CheckType, MVT::i32, ++/*369589*/ OPC_MoveParent, ++/*369590*/ OPC_MoveChild, 10, ++/*369592*/ OPC_CheckInteger, 1, ++/*369594*/ OPC_CheckType, MVT::i32, ++/*369596*/ OPC_MoveParent, ++/*369597*/ OPC_MoveChild, 11, ++/*369599*/ OPC_CheckInteger, 1, ++/*369601*/ OPC_CheckType, MVT::i32, ++/*369603*/ OPC_MoveParent, ++/*369604*/ OPC_MoveChild, 12, ++/*369606*/ OPC_CheckInteger, 1, ++/*369608*/ OPC_CheckType, MVT::i32, ++/*369610*/ OPC_MoveParent, ++/*369611*/ OPC_MoveChild, 13, ++/*369613*/ OPC_CheckInteger, 1, ++/*369615*/ OPC_CheckType, MVT::i32, ++/*369617*/ OPC_MoveParent, ++/*369618*/ OPC_MoveChild, 14, ++/*369620*/ OPC_CheckInteger, 1, ++/*369622*/ OPC_CheckType, MVT::i32, ++/*369624*/ OPC_MoveParent, ++/*369625*/ OPC_MoveChild, 15, ++/*369627*/ OPC_CheckInteger, 1, ++/*369629*/ OPC_CheckType, MVT::i32, ++/*369631*/ OPC_MoveParent, ++/*369632*/ OPC_MoveParent, ++/*369633*/ OPC_MoveParent, ++/*369634*/ OPC_MoveParent, ++/*369635*/ OPC_MoveParent, ++/*369636*/ OPC_MoveChild1, ++/*369637*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*369640*/ OPC_CheckChild0Integer, 1, ++/*369642*/ OPC_CheckChild0Type, MVT::i32, ++/*369644*/ OPC_CheckChild1Integer, 1, ++/*369646*/ OPC_CheckChild1Type, MVT::i32, ++/*369648*/ OPC_CheckChild2Integer, 1, ++/*369650*/ OPC_CheckChild2Type, MVT::i32, ++/*369652*/ OPC_CheckChild3Integer, 1, ++/*369654*/ OPC_CheckChild3Type, MVT::i32, ++/*369656*/ OPC_CheckChild4Integer, 1, ++/*369658*/ OPC_CheckChild4Type, MVT::i32, ++/*369660*/ OPC_MoveChild5, ++/*369661*/ OPC_CheckInteger, 1, ++/*369663*/ OPC_CheckType, MVT::i32, ++/*369665*/ OPC_MoveParent, ++/*369666*/ OPC_MoveChild6, ++/*369667*/ OPC_CheckInteger, 1, ++/*369669*/ OPC_CheckType, MVT::i32, ++/*369671*/ OPC_MoveParent, ++/*369672*/ OPC_MoveChild7, ++/*369673*/ OPC_CheckInteger, 1, ++/*369675*/ OPC_CheckType, MVT::i32, ++/*369677*/ OPC_MoveParent, ++/*369678*/ OPC_MoveChild, 8, ++/*369680*/ OPC_CheckInteger, 1, ++/*369682*/ OPC_CheckType, MVT::i32, ++/*369684*/ OPC_MoveParent, ++/*369685*/ OPC_MoveChild, 9, ++/*369687*/ OPC_CheckInteger, 1, ++/*369689*/ OPC_CheckType, MVT::i32, ++/*369691*/ OPC_MoveParent, ++/*369692*/ OPC_MoveChild, 10, ++/*369694*/ OPC_CheckInteger, 1, ++/*369696*/ OPC_CheckType, MVT::i32, ++/*369698*/ OPC_MoveParent, ++/*369699*/ OPC_MoveChild, 11, ++/*369701*/ OPC_CheckInteger, 1, ++/*369703*/ OPC_CheckType, MVT::i32, ++/*369705*/ OPC_MoveParent, ++/*369706*/ OPC_MoveChild, 12, ++/*369708*/ OPC_CheckInteger, 1, ++/*369710*/ OPC_CheckType, MVT::i32, ++/*369712*/ OPC_MoveParent, ++/*369713*/ OPC_MoveChild, 13, ++/*369715*/ OPC_CheckInteger, 1, ++/*369717*/ OPC_CheckType, MVT::i32, ++/*369719*/ OPC_MoveParent, ++/*369720*/ OPC_MoveChild, 14, ++/*369722*/ OPC_CheckInteger, 1, ++/*369724*/ OPC_CheckType, MVT::i32, ++/*369726*/ OPC_MoveParent, ++/*369727*/ OPC_MoveChild, 15, ++/*369729*/ OPC_CheckInteger, 1, ++/*369731*/ OPC_CheckType, MVT::i32, ++/*369733*/ OPC_MoveParent, ++/*369734*/ OPC_CheckType, MVT::v16i8, ++/*369736*/ OPC_MoveParent, ++/*369737*/ OPC_CheckType, MVT::v16i8, ++/*369739*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*369741*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*369749*/ 0, /*End of Scope*/ ++/*369750*/ /*Scope*/ 62|128,3/*446*/, /*->370198*/ ++/*369752*/ OPC_CheckChild0Same, 0, ++/*369754*/ OPC_MoveChild1, ++/*369755*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*369758*/ OPC_Scope, 89|128,1/*217*/, /*->369978*/ // 2 children in Scope ++/*369761*/ OPC_MoveChild0, ++/*369762*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*369765*/ OPC_CheckChild0Integer, 1, ++/*369767*/ OPC_CheckChild0Type, MVT::i32, ++/*369769*/ OPC_CheckChild1Integer, 1, ++/*369771*/ OPC_CheckChild1Type, MVT::i32, ++/*369773*/ OPC_CheckChild2Integer, 1, ++/*369775*/ OPC_CheckChild2Type, MVT::i32, ++/*369777*/ OPC_CheckChild3Integer, 1, ++/*369779*/ OPC_CheckChild3Type, MVT::i32, ++/*369781*/ OPC_CheckChild4Integer, 1, ++/*369783*/ OPC_CheckChild4Type, MVT::i32, ++/*369785*/ OPC_MoveChild5, ++/*369786*/ OPC_CheckInteger, 1, ++/*369788*/ OPC_CheckType, MVT::i32, ++/*369790*/ OPC_MoveParent, ++/*369791*/ OPC_MoveChild6, ++/*369792*/ OPC_CheckInteger, 1, ++/*369794*/ OPC_CheckType, MVT::i32, ++/*369796*/ OPC_MoveParent, ++/*369797*/ OPC_MoveChild7, ++/*369798*/ OPC_CheckInteger, 1, ++/*369800*/ OPC_CheckType, MVT::i32, ++/*369802*/ OPC_MoveParent, ++/*369803*/ OPC_MoveChild, 8, ++/*369805*/ OPC_CheckInteger, 1, ++/*369807*/ OPC_CheckType, MVT::i32, ++/*369809*/ OPC_MoveParent, ++/*369810*/ OPC_MoveChild, 9, ++/*369812*/ OPC_CheckInteger, 1, ++/*369814*/ OPC_CheckType, MVT::i32, ++/*369816*/ OPC_MoveParent, ++/*369817*/ OPC_MoveChild, 10, ++/*369819*/ OPC_CheckInteger, 1, ++/*369821*/ OPC_CheckType, MVT::i32, ++/*369823*/ OPC_MoveParent, ++/*369824*/ OPC_MoveChild, 11, ++/*369826*/ OPC_CheckInteger, 1, ++/*369828*/ OPC_CheckType, MVT::i32, ++/*369830*/ OPC_MoveParent, ++/*369831*/ OPC_MoveChild, 12, ++/*369833*/ OPC_CheckInteger, 1, ++/*369835*/ OPC_CheckType, MVT::i32, ++/*369837*/ OPC_MoveParent, ++/*369838*/ OPC_MoveChild, 13, ++/*369840*/ OPC_CheckInteger, 1, ++/*369842*/ OPC_CheckType, MVT::i32, ++/*369844*/ OPC_MoveParent, ++/*369845*/ OPC_MoveChild, 14, ++/*369847*/ OPC_CheckInteger, 1, ++/*369849*/ OPC_CheckType, MVT::i32, ++/*369851*/ OPC_MoveParent, ++/*369852*/ OPC_MoveChild, 15, ++/*369854*/ OPC_CheckInteger, 1, ++/*369856*/ OPC_CheckType, MVT::i32, ++/*369858*/ OPC_MoveParent, ++/*369859*/ OPC_MoveParent, ++/*369860*/ OPC_CheckChild1Same, 1, ++/*369862*/ OPC_MoveParent, ++/*369863*/ OPC_MoveParent, ++/*369864*/ OPC_MoveParent, ++/*369865*/ OPC_MoveChild1, ++/*369866*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*369869*/ OPC_CheckChild0Integer, 1, ++/*369871*/ OPC_CheckChild0Type, MVT::i32, ++/*369873*/ OPC_CheckChild1Integer, 1, ++/*369875*/ OPC_CheckChild1Type, MVT::i32, ++/*369877*/ OPC_CheckChild2Integer, 1, ++/*369879*/ OPC_CheckChild2Type, MVT::i32, ++/*369881*/ OPC_CheckChild3Integer, 1, ++/*369883*/ OPC_CheckChild3Type, MVT::i32, ++/*369885*/ OPC_CheckChild4Integer, 1, ++/*369887*/ OPC_CheckChild4Type, MVT::i32, ++/*369889*/ OPC_MoveChild5, ++/*369890*/ OPC_CheckInteger, 1, ++/*369892*/ OPC_CheckType, MVT::i32, ++/*369894*/ OPC_MoveParent, ++/*369895*/ OPC_MoveChild6, ++/*369896*/ OPC_CheckInteger, 1, ++/*369898*/ OPC_CheckType, MVT::i32, ++/*369900*/ OPC_MoveParent, ++/*369901*/ OPC_MoveChild7, ++/*369902*/ OPC_CheckInteger, 1, ++/*369904*/ OPC_CheckType, MVT::i32, ++/*369906*/ OPC_MoveParent, ++/*369907*/ OPC_MoveChild, 8, ++/*369909*/ OPC_CheckInteger, 1, ++/*369911*/ OPC_CheckType, MVT::i32, ++/*369913*/ OPC_MoveParent, ++/*369914*/ OPC_MoveChild, 9, ++/*369916*/ OPC_CheckInteger, 1, ++/*369918*/ OPC_CheckType, MVT::i32, ++/*369920*/ OPC_MoveParent, ++/*369921*/ OPC_MoveChild, 10, ++/*369923*/ OPC_CheckInteger, 1, ++/*369925*/ OPC_CheckType, MVT::i32, ++/*369927*/ OPC_MoveParent, ++/*369928*/ OPC_MoveChild, 11, ++/*369930*/ OPC_CheckInteger, 1, ++/*369932*/ OPC_CheckType, MVT::i32, ++/*369934*/ OPC_MoveParent, ++/*369935*/ OPC_MoveChild, 12, ++/*369937*/ OPC_CheckInteger, 1, ++/*369939*/ OPC_CheckType, MVT::i32, ++/*369941*/ OPC_MoveParent, ++/*369942*/ OPC_MoveChild, 13, ++/*369944*/ OPC_CheckInteger, 1, ++/*369946*/ OPC_CheckType, MVT::i32, ++/*369948*/ OPC_MoveParent, ++/*369949*/ OPC_MoveChild, 14, ++/*369951*/ OPC_CheckInteger, 1, ++/*369953*/ OPC_CheckType, MVT::i32, ++/*369955*/ OPC_MoveParent, ++/*369956*/ OPC_MoveChild, 15, ++/*369958*/ OPC_CheckInteger, 1, ++/*369960*/ OPC_CheckType, MVT::i32, ++/*369962*/ OPC_MoveParent, ++/*369963*/ OPC_CheckType, MVT::v16i8, ++/*369965*/ OPC_MoveParent, ++/*369966*/ OPC_CheckType, MVT::v16i8, ++/*369968*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*369970*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*369978*/ /*Scope*/ 89|128,1/*217*/, /*->370197*/ ++/*369980*/ OPC_CheckChild0Same, 1, ++/*369982*/ OPC_MoveChild1, ++/*369983*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*369986*/ OPC_CheckChild0Integer, 1, ++/*369988*/ OPC_CheckChild0Type, MVT::i32, ++/*369990*/ OPC_CheckChild1Integer, 1, ++/*369992*/ OPC_CheckChild1Type, MVT::i32, ++/*369994*/ OPC_CheckChild2Integer, 1, ++/*369996*/ OPC_CheckChild2Type, MVT::i32, ++/*369998*/ OPC_CheckChild3Integer, 1, ++/*370000*/ OPC_CheckChild3Type, MVT::i32, ++/*370002*/ OPC_CheckChild4Integer, 1, ++/*370004*/ OPC_CheckChild4Type, MVT::i32, ++/*370006*/ OPC_MoveChild5, ++/*370007*/ OPC_CheckInteger, 1, ++/*370009*/ OPC_CheckType, MVT::i32, ++/*370011*/ OPC_MoveParent, ++/*370012*/ OPC_MoveChild6, ++/*370013*/ OPC_CheckInteger, 1, ++/*370015*/ OPC_CheckType, MVT::i32, ++/*370017*/ OPC_MoveParent, ++/*370018*/ OPC_MoveChild7, ++/*370019*/ OPC_CheckInteger, 1, ++/*370021*/ OPC_CheckType, MVT::i32, ++/*370023*/ OPC_MoveParent, ++/*370024*/ OPC_MoveChild, 8, ++/*370026*/ OPC_CheckInteger, 1, ++/*370028*/ OPC_CheckType, MVT::i32, ++/*370030*/ OPC_MoveParent, ++/*370031*/ OPC_MoveChild, 9, ++/*370033*/ OPC_CheckInteger, 1, ++/*370035*/ OPC_CheckType, MVT::i32, ++/*370037*/ OPC_MoveParent, ++/*370038*/ OPC_MoveChild, 10, ++/*370040*/ OPC_CheckInteger, 1, ++/*370042*/ OPC_CheckType, MVT::i32, ++/*370044*/ OPC_MoveParent, ++/*370045*/ OPC_MoveChild, 11, ++/*370047*/ OPC_CheckInteger, 1, ++/*370049*/ OPC_CheckType, MVT::i32, ++/*370051*/ OPC_MoveParent, ++/*370052*/ OPC_MoveChild, 12, ++/*370054*/ OPC_CheckInteger, 1, ++/*370056*/ OPC_CheckType, MVT::i32, ++/*370058*/ OPC_MoveParent, ++/*370059*/ OPC_MoveChild, 13, ++/*370061*/ OPC_CheckInteger, 1, ++/*370063*/ OPC_CheckType, MVT::i32, ++/*370065*/ OPC_MoveParent, ++/*370066*/ OPC_MoveChild, 14, ++/*370068*/ OPC_CheckInteger, 1, ++/*370070*/ OPC_CheckType, MVT::i32, ++/*370072*/ OPC_MoveParent, ++/*370073*/ OPC_MoveChild, 15, ++/*370075*/ OPC_CheckInteger, 1, ++/*370077*/ OPC_CheckType, MVT::i32, ++/*370079*/ OPC_MoveParent, ++/*370080*/ OPC_MoveParent, ++/*370081*/ OPC_MoveParent, ++/*370082*/ OPC_MoveParent, ++/*370083*/ OPC_MoveParent, ++/*370084*/ OPC_MoveChild1, ++/*370085*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*370088*/ OPC_CheckChild0Integer, 1, ++/*370090*/ OPC_CheckChild0Type, MVT::i32, ++/*370092*/ OPC_CheckChild1Integer, 1, ++/*370094*/ OPC_CheckChild1Type, MVT::i32, ++/*370096*/ OPC_CheckChild2Integer, 1, ++/*370098*/ OPC_CheckChild2Type, MVT::i32, ++/*370100*/ OPC_CheckChild3Integer, 1, ++/*370102*/ OPC_CheckChild3Type, MVT::i32, ++/*370104*/ OPC_CheckChild4Integer, 1, ++/*370106*/ OPC_CheckChild4Type, MVT::i32, ++/*370108*/ OPC_MoveChild5, ++/*370109*/ OPC_CheckInteger, 1, ++/*370111*/ OPC_CheckType, MVT::i32, ++/*370113*/ OPC_MoveParent, ++/*370114*/ OPC_MoveChild6, ++/*370115*/ OPC_CheckInteger, 1, ++/*370117*/ OPC_CheckType, MVT::i32, ++/*370119*/ OPC_MoveParent, ++/*370120*/ OPC_MoveChild7, ++/*370121*/ OPC_CheckInteger, 1, ++/*370123*/ OPC_CheckType, MVT::i32, ++/*370125*/ OPC_MoveParent, ++/*370126*/ OPC_MoveChild, 8, ++/*370128*/ OPC_CheckInteger, 1, ++/*370130*/ OPC_CheckType, MVT::i32, ++/*370132*/ OPC_MoveParent, ++/*370133*/ OPC_MoveChild, 9, ++/*370135*/ OPC_CheckInteger, 1, ++/*370137*/ OPC_CheckType, MVT::i32, ++/*370139*/ OPC_MoveParent, ++/*370140*/ OPC_MoveChild, 10, ++/*370142*/ OPC_CheckInteger, 1, ++/*370144*/ OPC_CheckType, MVT::i32, ++/*370146*/ OPC_MoveParent, ++/*370147*/ OPC_MoveChild, 11, ++/*370149*/ OPC_CheckInteger, 1, ++/*370151*/ OPC_CheckType, MVT::i32, ++/*370153*/ OPC_MoveParent, ++/*370154*/ OPC_MoveChild, 12, ++/*370156*/ OPC_CheckInteger, 1, ++/*370158*/ OPC_CheckType, MVT::i32, ++/*370160*/ OPC_MoveParent, ++/*370161*/ OPC_MoveChild, 13, ++/*370163*/ OPC_CheckInteger, 1, ++/*370165*/ OPC_CheckType, MVT::i32, ++/*370167*/ OPC_MoveParent, ++/*370168*/ OPC_MoveChild, 14, ++/*370170*/ OPC_CheckInteger, 1, ++/*370172*/ OPC_CheckType, MVT::i32, ++/*370174*/ OPC_MoveParent, ++/*370175*/ OPC_MoveChild, 15, ++/*370177*/ OPC_CheckInteger, 1, ++/*370179*/ OPC_CheckType, MVT::i32, ++/*370181*/ OPC_MoveParent, ++/*370182*/ OPC_CheckType, MVT::v16i8, ++/*370184*/ OPC_MoveParent, ++/*370185*/ OPC_CheckType, MVT::v16i8, ++/*370187*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*370189*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*370197*/ 0, /*End of Scope*/ ++/*370198*/ /*Scope*/ 18|128,13/*1682*/, /*->371882*/ ++/*370200*/ OPC_MoveChild0, ++/*370201*/ OPC_SwitchOpcode /*2 cases */, 87|128,2/*343*/, TARGET_VAL(ISD::BUILD_VECTOR),// ->370549 ++/*370206*/ OPC_CheckChild0Integer, 1, ++/*370208*/ OPC_CheckChild0Type, MVT::i32, ++/*370210*/ OPC_CheckChild1Integer, 1, ++/*370212*/ OPC_CheckChild1Type, MVT::i32, ++/*370214*/ OPC_CheckChild2Integer, 1, ++/*370216*/ OPC_CheckChild2Type, MVT::i32, ++/*370218*/ OPC_CheckChild3Integer, 1, ++/*370220*/ OPC_CheckChild3Type, MVT::i32, ++/*370222*/ OPC_CheckChild4Integer, 1, ++/*370224*/ OPC_CheckChild4Type, MVT::i32, ++/*370226*/ OPC_MoveChild5, ++/*370227*/ OPC_CheckInteger, 1, ++/*370229*/ OPC_CheckType, MVT::i32, ++/*370231*/ OPC_MoveParent, ++/*370232*/ OPC_MoveChild6, ++/*370233*/ OPC_CheckInteger, 1, ++/*370235*/ OPC_CheckType, MVT::i32, ++/*370237*/ OPC_MoveParent, ++/*370238*/ OPC_MoveChild7, ++/*370239*/ OPC_CheckInteger, 1, ++/*370241*/ OPC_CheckType, MVT::i32, ++/*370243*/ OPC_MoveParent, ++/*370244*/ OPC_MoveChild, 8, ++/*370246*/ OPC_CheckInteger, 1, ++/*370248*/ OPC_CheckType, MVT::i32, ++/*370250*/ OPC_MoveParent, ++/*370251*/ OPC_MoveChild, 9, ++/*370253*/ OPC_CheckInteger, 1, ++/*370255*/ OPC_CheckType, MVT::i32, ++/*370257*/ OPC_MoveParent, ++/*370258*/ OPC_MoveChild, 10, ++/*370260*/ OPC_CheckInteger, 1, ++/*370262*/ OPC_CheckType, MVT::i32, ++/*370264*/ OPC_MoveParent, ++/*370265*/ OPC_MoveChild, 11, ++/*370267*/ OPC_CheckInteger, 1, ++/*370269*/ OPC_CheckType, MVT::i32, ++/*370271*/ OPC_MoveParent, ++/*370272*/ OPC_MoveChild, 12, ++/*370274*/ OPC_CheckInteger, 1, ++/*370276*/ OPC_CheckType, MVT::i32, ++/*370278*/ OPC_MoveParent, ++/*370279*/ OPC_MoveChild, 13, ++/*370281*/ OPC_CheckInteger, 1, ++/*370283*/ OPC_CheckType, MVT::i32, ++/*370285*/ OPC_MoveParent, ++/*370286*/ OPC_MoveChild, 14, ++/*370288*/ OPC_CheckInteger, 1, ++/*370290*/ OPC_CheckType, MVT::i32, ++/*370292*/ OPC_MoveParent, ++/*370293*/ OPC_MoveChild, 15, ++/*370295*/ OPC_CheckInteger, 1, ++/*370297*/ OPC_CheckType, MVT::i32, ++/*370299*/ OPC_MoveParent, ++/*370300*/ OPC_MoveParent, ++/*370301*/ OPC_MoveChild1, ++/*370302*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*370305*/ OPC_Scope, 120, /*->370427*/ // 2 children in Scope ++/*370307*/ OPC_CheckChild0Same, 0, ++/*370309*/ OPC_CheckChild1Same, 1, ++/*370311*/ OPC_MoveParent, ++/*370312*/ OPC_MoveParent, ++/*370313*/ OPC_MoveParent, ++/*370314*/ OPC_MoveChild1, ++/*370315*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*370318*/ OPC_CheckChild0Integer, 1, ++/*370320*/ OPC_CheckChild0Type, MVT::i32, ++/*370322*/ OPC_CheckChild1Integer, 1, ++/*370324*/ OPC_CheckChild1Type, MVT::i32, ++/*370326*/ OPC_CheckChild2Integer, 1, ++/*370328*/ OPC_CheckChild2Type, MVT::i32, ++/*370330*/ OPC_CheckChild3Integer, 1, ++/*370332*/ OPC_CheckChild3Type, MVT::i32, ++/*370334*/ OPC_CheckChild4Integer, 1, ++/*370336*/ OPC_CheckChild4Type, MVT::i32, ++/*370338*/ OPC_MoveChild5, ++/*370339*/ OPC_CheckInteger, 1, ++/*370341*/ OPC_CheckType, MVT::i32, ++/*370343*/ OPC_MoveParent, ++/*370344*/ OPC_MoveChild6, ++/*370345*/ OPC_CheckInteger, 1, ++/*370347*/ OPC_CheckType, MVT::i32, ++/*370349*/ OPC_MoveParent, ++/*370350*/ OPC_MoveChild7, ++/*370351*/ OPC_CheckInteger, 1, ++/*370353*/ OPC_CheckType, MVT::i32, ++/*370355*/ OPC_MoveParent, ++/*370356*/ OPC_MoveChild, 8, ++/*370358*/ OPC_CheckInteger, 1, ++/*370360*/ OPC_CheckType, MVT::i32, ++/*370362*/ OPC_MoveParent, ++/*370363*/ OPC_MoveChild, 9, ++/*370365*/ OPC_CheckInteger, 1, ++/*370367*/ OPC_CheckType, MVT::i32, ++/*370369*/ OPC_MoveParent, ++/*370370*/ OPC_MoveChild, 10, ++/*370372*/ OPC_CheckInteger, 1, ++/*370374*/ OPC_CheckType, MVT::i32, ++/*370376*/ OPC_MoveParent, ++/*370377*/ OPC_MoveChild, 11, ++/*370379*/ OPC_CheckInteger, 1, ++/*370381*/ OPC_CheckType, MVT::i32, ++/*370383*/ OPC_MoveParent, ++/*370384*/ OPC_MoveChild, 12, ++/*370386*/ OPC_CheckInteger, 1, ++/*370388*/ OPC_CheckType, MVT::i32, ++/*370390*/ OPC_MoveParent, ++/*370391*/ OPC_MoveChild, 13, ++/*370393*/ OPC_CheckInteger, 1, ++/*370395*/ OPC_CheckType, MVT::i32, ++/*370397*/ OPC_MoveParent, ++/*370398*/ OPC_MoveChild, 14, ++/*370400*/ OPC_CheckInteger, 1, ++/*370402*/ OPC_CheckType, MVT::i32, ++/*370404*/ OPC_MoveParent, ++/*370405*/ OPC_MoveChild, 15, ++/*370407*/ OPC_CheckInteger, 1, ++/*370409*/ OPC_CheckType, MVT::i32, ++/*370411*/ OPC_MoveParent, ++/*370412*/ OPC_CheckType, MVT::v16i8, ++/*370414*/ OPC_MoveParent, ++/*370415*/ OPC_CheckType, MVT::v16i8, ++/*370417*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*370419*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*370427*/ /*Scope*/ 120, /*->370548*/ ++/*370428*/ OPC_CheckChild0Same, 1, ++/*370430*/ OPC_CheckChild1Same, 0, ++/*370432*/ OPC_MoveParent, ++/*370433*/ OPC_MoveParent, ++/*370434*/ OPC_MoveParent, ++/*370435*/ OPC_MoveChild1, ++/*370436*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*370439*/ OPC_CheckChild0Integer, 1, ++/*370441*/ OPC_CheckChild0Type, MVT::i32, ++/*370443*/ OPC_CheckChild1Integer, 1, ++/*370445*/ OPC_CheckChild1Type, MVT::i32, ++/*370447*/ OPC_CheckChild2Integer, 1, ++/*370449*/ OPC_CheckChild2Type, MVT::i32, ++/*370451*/ OPC_CheckChild3Integer, 1, ++/*370453*/ OPC_CheckChild3Type, MVT::i32, ++/*370455*/ OPC_CheckChild4Integer, 1, ++/*370457*/ OPC_CheckChild4Type, MVT::i32, ++/*370459*/ OPC_MoveChild5, ++/*370460*/ OPC_CheckInteger, 1, ++/*370462*/ OPC_CheckType, MVT::i32, ++/*370464*/ OPC_MoveParent, ++/*370465*/ OPC_MoveChild6, ++/*370466*/ OPC_CheckInteger, 1, ++/*370468*/ OPC_CheckType, MVT::i32, ++/*370470*/ OPC_MoveParent, ++/*370471*/ OPC_MoveChild7, ++/*370472*/ OPC_CheckInteger, 1, ++/*370474*/ OPC_CheckType, MVT::i32, ++/*370476*/ OPC_MoveParent, ++/*370477*/ OPC_MoveChild, 8, ++/*370479*/ OPC_CheckInteger, 1, ++/*370481*/ OPC_CheckType, MVT::i32, ++/*370483*/ OPC_MoveParent, ++/*370484*/ OPC_MoveChild, 9, ++/*370486*/ OPC_CheckInteger, 1, ++/*370488*/ OPC_CheckType, MVT::i32, ++/*370490*/ OPC_MoveParent, ++/*370491*/ OPC_MoveChild, 10, ++/*370493*/ OPC_CheckInteger, 1, ++/*370495*/ OPC_CheckType, MVT::i32, ++/*370497*/ OPC_MoveParent, ++/*370498*/ OPC_MoveChild, 11, ++/*370500*/ OPC_CheckInteger, 1, ++/*370502*/ OPC_CheckType, MVT::i32, ++/*370504*/ OPC_MoveParent, ++/*370505*/ OPC_MoveChild, 12, ++/*370507*/ OPC_CheckInteger, 1, ++/*370509*/ OPC_CheckType, MVT::i32, ++/*370511*/ OPC_MoveParent, ++/*370512*/ OPC_MoveChild, 13, ++/*370514*/ OPC_CheckInteger, 1, ++/*370516*/ OPC_CheckType, MVT::i32, ++/*370518*/ OPC_MoveParent, ++/*370519*/ OPC_MoveChild, 14, ++/*370521*/ OPC_CheckInteger, 1, ++/*370523*/ OPC_CheckType, MVT::i32, ++/*370525*/ OPC_MoveParent, ++/*370526*/ OPC_MoveChild, 15, ++/*370528*/ OPC_CheckInteger, 1, ++/*370530*/ OPC_CheckType, MVT::i32, ++/*370532*/ OPC_MoveParent, ++/*370533*/ OPC_CheckType, MVT::v16i8, ++/*370535*/ OPC_MoveParent, ++/*370536*/ OPC_CheckType, MVT::v16i8, ++/*370538*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*370540*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*370548*/ 0, /*End of Scope*/ ++/*370549*/ /*SwitchOpcode*/ 48|128,10/*1328*/, TARGET_VAL(ISD::ADD),// ->371881 ++/*370553*/ OPC_Scope, 91|128,1/*219*/, /*->370775*/ // 6 children in Scope ++/*370556*/ OPC_MoveChild0, ++/*370557*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*370560*/ OPC_CheckChild0Integer, 1, ++/*370562*/ OPC_CheckChild0Type, MVT::i32, ++/*370564*/ OPC_CheckChild1Integer, 1, ++/*370566*/ OPC_CheckChild1Type, MVT::i32, ++/*370568*/ OPC_CheckChild2Integer, 1, ++/*370570*/ OPC_CheckChild2Type, MVT::i32, ++/*370572*/ OPC_CheckChild3Integer, 1, ++/*370574*/ OPC_CheckChild3Type, MVT::i32, ++/*370576*/ OPC_CheckChild4Integer, 1, ++/*370578*/ OPC_CheckChild4Type, MVT::i32, ++/*370580*/ OPC_MoveChild5, ++/*370581*/ OPC_CheckInteger, 1, ++/*370583*/ OPC_CheckType, MVT::i32, ++/*370585*/ OPC_MoveParent, ++/*370586*/ OPC_MoveChild6, ++/*370587*/ OPC_CheckInteger, 1, ++/*370589*/ OPC_CheckType, MVT::i32, ++/*370591*/ OPC_MoveParent, ++/*370592*/ OPC_MoveChild7, ++/*370593*/ OPC_CheckInteger, 1, ++/*370595*/ OPC_CheckType, MVT::i32, ++/*370597*/ OPC_MoveParent, ++/*370598*/ OPC_MoveChild, 8, ++/*370600*/ OPC_CheckInteger, 1, ++/*370602*/ OPC_CheckType, MVT::i32, ++/*370604*/ OPC_MoveParent, ++/*370605*/ OPC_MoveChild, 9, ++/*370607*/ OPC_CheckInteger, 1, ++/*370609*/ OPC_CheckType, MVT::i32, ++/*370611*/ OPC_MoveParent, ++/*370612*/ OPC_MoveChild, 10, ++/*370614*/ OPC_CheckInteger, 1, ++/*370616*/ OPC_CheckType, MVT::i32, ++/*370618*/ OPC_MoveParent, ++/*370619*/ OPC_MoveChild, 11, ++/*370621*/ OPC_CheckInteger, 1, ++/*370623*/ OPC_CheckType, MVT::i32, ++/*370625*/ OPC_MoveParent, ++/*370626*/ OPC_MoveChild, 12, ++/*370628*/ OPC_CheckInteger, 1, ++/*370630*/ OPC_CheckType, MVT::i32, ++/*370632*/ OPC_MoveParent, ++/*370633*/ OPC_MoveChild, 13, ++/*370635*/ OPC_CheckInteger, 1, ++/*370637*/ OPC_CheckType, MVT::i32, ++/*370639*/ OPC_MoveParent, ++/*370640*/ OPC_MoveChild, 14, ++/*370642*/ OPC_CheckInteger, 1, ++/*370644*/ OPC_CheckType, MVT::i32, ++/*370646*/ OPC_MoveParent, ++/*370647*/ OPC_MoveChild, 15, ++/*370649*/ OPC_CheckInteger, 1, ++/*370651*/ OPC_CheckType, MVT::i32, ++/*370653*/ OPC_MoveParent, ++/*370654*/ OPC_MoveParent, ++/*370655*/ OPC_CheckChild1Same, 1, ++/*370657*/ OPC_MoveParent, ++/*370658*/ OPC_CheckChild1Same, 0, ++/*370660*/ OPC_MoveParent, ++/*370661*/ OPC_MoveParent, ++/*370662*/ OPC_MoveChild1, ++/*370663*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*370666*/ OPC_CheckChild0Integer, 1, ++/*370668*/ OPC_CheckChild0Type, MVT::i32, ++/*370670*/ OPC_CheckChild1Integer, 1, ++/*370672*/ OPC_CheckChild1Type, MVT::i32, ++/*370674*/ OPC_CheckChild2Integer, 1, ++/*370676*/ OPC_CheckChild2Type, MVT::i32, ++/*370678*/ OPC_CheckChild3Integer, 1, ++/*370680*/ OPC_CheckChild3Type, MVT::i32, ++/*370682*/ OPC_CheckChild4Integer, 1, ++/*370684*/ OPC_CheckChild4Type, MVT::i32, ++/*370686*/ OPC_MoveChild5, ++/*370687*/ OPC_CheckInteger, 1, ++/*370689*/ OPC_CheckType, MVT::i32, ++/*370691*/ OPC_MoveParent, ++/*370692*/ OPC_MoveChild6, ++/*370693*/ OPC_CheckInteger, 1, ++/*370695*/ OPC_CheckType, MVT::i32, ++/*370697*/ OPC_MoveParent, ++/*370698*/ OPC_MoveChild7, ++/*370699*/ OPC_CheckInteger, 1, ++/*370701*/ OPC_CheckType, MVT::i32, ++/*370703*/ OPC_MoveParent, ++/*370704*/ OPC_MoveChild, 8, ++/*370706*/ OPC_CheckInteger, 1, ++/*370708*/ OPC_CheckType, MVT::i32, ++/*370710*/ OPC_MoveParent, ++/*370711*/ OPC_MoveChild, 9, ++/*370713*/ OPC_CheckInteger, 1, ++/*370715*/ OPC_CheckType, MVT::i32, ++/*370717*/ OPC_MoveParent, ++/*370718*/ OPC_MoveChild, 10, ++/*370720*/ OPC_CheckInteger, 1, ++/*370722*/ OPC_CheckType, MVT::i32, ++/*370724*/ OPC_MoveParent, ++/*370725*/ OPC_MoveChild, 11, ++/*370727*/ OPC_CheckInteger, 1, ++/*370729*/ OPC_CheckType, MVT::i32, ++/*370731*/ OPC_MoveParent, ++/*370732*/ OPC_MoveChild, 12, ++/*370734*/ OPC_CheckInteger, 1, ++/*370736*/ OPC_CheckType, MVT::i32, ++/*370738*/ OPC_MoveParent, ++/*370739*/ OPC_MoveChild, 13, ++/*370741*/ OPC_CheckInteger, 1, ++/*370743*/ OPC_CheckType, MVT::i32, ++/*370745*/ OPC_MoveParent, ++/*370746*/ OPC_MoveChild, 14, ++/*370748*/ OPC_CheckInteger, 1, ++/*370750*/ OPC_CheckType, MVT::i32, ++/*370752*/ OPC_MoveParent, ++/*370753*/ OPC_MoveChild, 15, ++/*370755*/ OPC_CheckInteger, 1, ++/*370757*/ OPC_CheckType, MVT::i32, ++/*370759*/ OPC_MoveParent, ++/*370760*/ OPC_CheckType, MVT::v16i8, ++/*370762*/ OPC_MoveParent, ++/*370763*/ OPC_CheckType, MVT::v16i8, ++/*370765*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*370767*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a), LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*370775*/ /*Scope*/ 91|128,1/*219*/, /*->370996*/ ++/*370777*/ OPC_CheckChild0Same, 1, ++/*370779*/ OPC_MoveChild1, ++/*370780*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*370783*/ OPC_CheckChild0Integer, 1, ++/*370785*/ OPC_CheckChild0Type, MVT::i32, ++/*370787*/ OPC_CheckChild1Integer, 1, ++/*370789*/ OPC_CheckChild1Type, MVT::i32, ++/*370791*/ OPC_CheckChild2Integer, 1, ++/*370793*/ OPC_CheckChild2Type, MVT::i32, ++/*370795*/ OPC_CheckChild3Integer, 1, ++/*370797*/ OPC_CheckChild3Type, MVT::i32, ++/*370799*/ OPC_CheckChild4Integer, 1, ++/*370801*/ OPC_CheckChild4Type, MVT::i32, ++/*370803*/ OPC_MoveChild5, ++/*370804*/ OPC_CheckInteger, 1, ++/*370806*/ OPC_CheckType, MVT::i32, ++/*370808*/ OPC_MoveParent, ++/*370809*/ OPC_MoveChild6, ++/*370810*/ OPC_CheckInteger, 1, ++/*370812*/ OPC_CheckType, MVT::i32, ++/*370814*/ OPC_MoveParent, ++/*370815*/ OPC_MoveChild7, ++/*370816*/ OPC_CheckInteger, 1, ++/*370818*/ OPC_CheckType, MVT::i32, ++/*370820*/ OPC_MoveParent, ++/*370821*/ OPC_MoveChild, 8, ++/*370823*/ OPC_CheckInteger, 1, ++/*370825*/ OPC_CheckType, MVT::i32, ++/*370827*/ OPC_MoveParent, ++/*370828*/ OPC_MoveChild, 9, ++/*370830*/ OPC_CheckInteger, 1, ++/*370832*/ OPC_CheckType, MVT::i32, ++/*370834*/ OPC_MoveParent, ++/*370835*/ OPC_MoveChild, 10, ++/*370837*/ OPC_CheckInteger, 1, ++/*370839*/ OPC_CheckType, MVT::i32, ++/*370841*/ OPC_MoveParent, ++/*370842*/ OPC_MoveChild, 11, ++/*370844*/ OPC_CheckInteger, 1, ++/*370846*/ OPC_CheckType, MVT::i32, ++/*370848*/ OPC_MoveParent, ++/*370849*/ OPC_MoveChild, 12, ++/*370851*/ OPC_CheckInteger, 1, ++/*370853*/ OPC_CheckType, MVT::i32, ++/*370855*/ OPC_MoveParent, ++/*370856*/ OPC_MoveChild, 13, ++/*370858*/ OPC_CheckInteger, 1, ++/*370860*/ OPC_CheckType, MVT::i32, ++/*370862*/ OPC_MoveParent, ++/*370863*/ OPC_MoveChild, 14, ++/*370865*/ OPC_CheckInteger, 1, ++/*370867*/ OPC_CheckType, MVT::i32, ++/*370869*/ OPC_MoveParent, ++/*370870*/ OPC_MoveChild, 15, ++/*370872*/ OPC_CheckInteger, 1, ++/*370874*/ OPC_CheckType, MVT::i32, ++/*370876*/ OPC_MoveParent, ++/*370877*/ OPC_MoveParent, ++/*370878*/ OPC_MoveParent, ++/*370879*/ OPC_CheckChild1Same, 0, ++/*370881*/ OPC_MoveParent, ++/*370882*/ OPC_MoveParent, ++/*370883*/ OPC_MoveChild1, ++/*370884*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*370887*/ OPC_CheckChild0Integer, 1, ++/*370889*/ OPC_CheckChild0Type, MVT::i32, ++/*370891*/ OPC_CheckChild1Integer, 1, ++/*370893*/ OPC_CheckChild1Type, MVT::i32, ++/*370895*/ OPC_CheckChild2Integer, 1, ++/*370897*/ OPC_CheckChild2Type, MVT::i32, ++/*370899*/ OPC_CheckChild3Integer, 1, ++/*370901*/ OPC_CheckChild3Type, MVT::i32, ++/*370903*/ OPC_CheckChild4Integer, 1, ++/*370905*/ OPC_CheckChild4Type, MVT::i32, ++/*370907*/ OPC_MoveChild5, ++/*370908*/ OPC_CheckInteger, 1, ++/*370910*/ OPC_CheckType, MVT::i32, ++/*370912*/ OPC_MoveParent, ++/*370913*/ OPC_MoveChild6, ++/*370914*/ OPC_CheckInteger, 1, ++/*370916*/ OPC_CheckType, MVT::i32, ++/*370918*/ OPC_MoveParent, ++/*370919*/ OPC_MoveChild7, ++/*370920*/ OPC_CheckInteger, 1, ++/*370922*/ OPC_CheckType, MVT::i32, ++/*370924*/ OPC_MoveParent, ++/*370925*/ OPC_MoveChild, 8, ++/*370927*/ OPC_CheckInteger, 1, ++/*370929*/ OPC_CheckType, MVT::i32, ++/*370931*/ OPC_MoveParent, ++/*370932*/ OPC_MoveChild, 9, ++/*370934*/ OPC_CheckInteger, 1, ++/*370936*/ OPC_CheckType, MVT::i32, ++/*370938*/ OPC_MoveParent, ++/*370939*/ OPC_MoveChild, 10, ++/*370941*/ OPC_CheckInteger, 1, ++/*370943*/ OPC_CheckType, MVT::i32, ++/*370945*/ OPC_MoveParent, ++/*370946*/ OPC_MoveChild, 11, ++/*370948*/ OPC_CheckInteger, 1, ++/*370950*/ OPC_CheckType, MVT::i32, ++/*370952*/ OPC_MoveParent, ++/*370953*/ OPC_MoveChild, 12, ++/*370955*/ OPC_CheckInteger, 1, ++/*370957*/ OPC_CheckType, MVT::i32, ++/*370959*/ OPC_MoveParent, ++/*370960*/ OPC_MoveChild, 13, ++/*370962*/ OPC_CheckInteger, 1, ++/*370964*/ OPC_CheckType, MVT::i32, ++/*370966*/ OPC_MoveParent, ++/*370967*/ OPC_MoveChild, 14, ++/*370969*/ OPC_CheckInteger, 1, ++/*370971*/ OPC_CheckType, MVT::i32, ++/*370973*/ OPC_MoveParent, ++/*370974*/ OPC_MoveChild, 15, ++/*370976*/ OPC_CheckInteger, 1, ++/*370978*/ OPC_CheckType, MVT::i32, ++/*370980*/ OPC_MoveParent, ++/*370981*/ OPC_CheckType, MVT::v16i8, ++/*370983*/ OPC_MoveParent, ++/*370984*/ OPC_CheckType, MVT::v16i8, ++/*370986*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*370988*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*370996*/ /*Scope*/ 91|128,1/*219*/, /*->371217*/ ++/*370998*/ OPC_MoveChild0, ++/*370999*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*371002*/ OPC_CheckChild0Integer, 1, ++/*371004*/ OPC_CheckChild0Type, MVT::i32, ++/*371006*/ OPC_CheckChild1Integer, 1, ++/*371008*/ OPC_CheckChild1Type, MVT::i32, ++/*371010*/ OPC_CheckChild2Integer, 1, ++/*371012*/ OPC_CheckChild2Type, MVT::i32, ++/*371014*/ OPC_CheckChild3Integer, 1, ++/*371016*/ OPC_CheckChild3Type, MVT::i32, ++/*371018*/ OPC_CheckChild4Integer, 1, ++/*371020*/ OPC_CheckChild4Type, MVT::i32, ++/*371022*/ OPC_MoveChild5, ++/*371023*/ OPC_CheckInteger, 1, ++/*371025*/ OPC_CheckType, MVT::i32, ++/*371027*/ OPC_MoveParent, ++/*371028*/ OPC_MoveChild6, ++/*371029*/ OPC_CheckInteger, 1, ++/*371031*/ OPC_CheckType, MVT::i32, ++/*371033*/ OPC_MoveParent, ++/*371034*/ OPC_MoveChild7, ++/*371035*/ OPC_CheckInteger, 1, ++/*371037*/ OPC_CheckType, MVT::i32, ++/*371039*/ OPC_MoveParent, ++/*371040*/ OPC_MoveChild, 8, ++/*371042*/ OPC_CheckInteger, 1, ++/*371044*/ OPC_CheckType, MVT::i32, ++/*371046*/ OPC_MoveParent, ++/*371047*/ OPC_MoveChild, 9, ++/*371049*/ OPC_CheckInteger, 1, ++/*371051*/ OPC_CheckType, MVT::i32, ++/*371053*/ OPC_MoveParent, ++/*371054*/ OPC_MoveChild, 10, ++/*371056*/ OPC_CheckInteger, 1, ++/*371058*/ OPC_CheckType, MVT::i32, ++/*371060*/ OPC_MoveParent, ++/*371061*/ OPC_MoveChild, 11, ++/*371063*/ OPC_CheckInteger, 1, ++/*371065*/ OPC_CheckType, MVT::i32, ++/*371067*/ OPC_MoveParent, ++/*371068*/ OPC_MoveChild, 12, ++/*371070*/ OPC_CheckInteger, 1, ++/*371072*/ OPC_CheckType, MVT::i32, ++/*371074*/ OPC_MoveParent, ++/*371075*/ OPC_MoveChild, 13, ++/*371077*/ OPC_CheckInteger, 1, ++/*371079*/ OPC_CheckType, MVT::i32, ++/*371081*/ OPC_MoveParent, ++/*371082*/ OPC_MoveChild, 14, ++/*371084*/ OPC_CheckInteger, 1, ++/*371086*/ OPC_CheckType, MVT::i32, ++/*371088*/ OPC_MoveParent, ++/*371089*/ OPC_MoveChild, 15, ++/*371091*/ OPC_CheckInteger, 1, ++/*371093*/ OPC_CheckType, MVT::i32, ++/*371095*/ OPC_MoveParent, ++/*371096*/ OPC_MoveParent, ++/*371097*/ OPC_CheckChild1Same, 0, ++/*371099*/ OPC_MoveParent, ++/*371100*/ OPC_CheckChild1Same, 1, ++/*371102*/ OPC_MoveParent, ++/*371103*/ OPC_MoveParent, ++/*371104*/ OPC_MoveChild1, ++/*371105*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*371108*/ OPC_CheckChild0Integer, 1, ++/*371110*/ OPC_CheckChild0Type, MVT::i32, ++/*371112*/ OPC_CheckChild1Integer, 1, ++/*371114*/ OPC_CheckChild1Type, MVT::i32, ++/*371116*/ OPC_CheckChild2Integer, 1, ++/*371118*/ OPC_CheckChild2Type, MVT::i32, ++/*371120*/ OPC_CheckChild3Integer, 1, ++/*371122*/ OPC_CheckChild3Type, MVT::i32, ++/*371124*/ OPC_CheckChild4Integer, 1, ++/*371126*/ OPC_CheckChild4Type, MVT::i32, ++/*371128*/ OPC_MoveChild5, ++/*371129*/ OPC_CheckInteger, 1, ++/*371131*/ OPC_CheckType, MVT::i32, ++/*371133*/ OPC_MoveParent, ++/*371134*/ OPC_MoveChild6, ++/*371135*/ OPC_CheckInteger, 1, ++/*371137*/ OPC_CheckType, MVT::i32, ++/*371139*/ OPC_MoveParent, ++/*371140*/ OPC_MoveChild7, ++/*371141*/ OPC_CheckInteger, 1, ++/*371143*/ OPC_CheckType, MVT::i32, ++/*371145*/ OPC_MoveParent, ++/*371146*/ OPC_MoveChild, 8, ++/*371148*/ OPC_CheckInteger, 1, ++/*371150*/ OPC_CheckType, MVT::i32, ++/*371152*/ OPC_MoveParent, ++/*371153*/ OPC_MoveChild, 9, ++/*371155*/ OPC_CheckInteger, 1, ++/*371157*/ OPC_CheckType, MVT::i32, ++/*371159*/ OPC_MoveParent, ++/*371160*/ OPC_MoveChild, 10, ++/*371162*/ OPC_CheckInteger, 1, ++/*371164*/ OPC_CheckType, MVT::i32, ++/*371166*/ OPC_MoveParent, ++/*371167*/ OPC_MoveChild, 11, ++/*371169*/ OPC_CheckInteger, 1, ++/*371171*/ OPC_CheckType, MVT::i32, ++/*371173*/ OPC_MoveParent, ++/*371174*/ OPC_MoveChild, 12, ++/*371176*/ OPC_CheckInteger, 1, ++/*371178*/ OPC_CheckType, MVT::i32, ++/*371180*/ OPC_MoveParent, ++/*371181*/ OPC_MoveChild, 13, ++/*371183*/ OPC_CheckInteger, 1, ++/*371185*/ OPC_CheckType, MVT::i32, ++/*371187*/ OPC_MoveParent, ++/*371188*/ OPC_MoveChild, 14, ++/*371190*/ OPC_CheckInteger, 1, ++/*371192*/ OPC_CheckType, MVT::i32, ++/*371194*/ OPC_MoveParent, ++/*371195*/ OPC_MoveChild, 15, ++/*371197*/ OPC_CheckInteger, 1, ++/*371199*/ OPC_CheckType, MVT::i32, ++/*371201*/ OPC_MoveParent, ++/*371202*/ OPC_CheckType, MVT::v16i8, ++/*371204*/ OPC_MoveParent, ++/*371205*/ OPC_CheckType, MVT::v16i8, ++/*371207*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*371209*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b), LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*371217*/ /*Scope*/ 91|128,1/*219*/, /*->371438*/ ++/*371219*/ OPC_CheckChild0Same, 0, ++/*371221*/ OPC_MoveChild1, ++/*371222*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*371225*/ OPC_CheckChild0Integer, 1, ++/*371227*/ OPC_CheckChild0Type, MVT::i32, ++/*371229*/ OPC_CheckChild1Integer, 1, ++/*371231*/ OPC_CheckChild1Type, MVT::i32, ++/*371233*/ OPC_CheckChild2Integer, 1, ++/*371235*/ OPC_CheckChild2Type, MVT::i32, ++/*371237*/ OPC_CheckChild3Integer, 1, ++/*371239*/ OPC_CheckChild3Type, MVT::i32, ++/*371241*/ OPC_CheckChild4Integer, 1, ++/*371243*/ OPC_CheckChild4Type, MVT::i32, ++/*371245*/ OPC_MoveChild5, ++/*371246*/ OPC_CheckInteger, 1, ++/*371248*/ OPC_CheckType, MVT::i32, ++/*371250*/ OPC_MoveParent, ++/*371251*/ OPC_MoveChild6, ++/*371252*/ OPC_CheckInteger, 1, ++/*371254*/ OPC_CheckType, MVT::i32, ++/*371256*/ OPC_MoveParent, ++/*371257*/ OPC_MoveChild7, ++/*371258*/ OPC_CheckInteger, 1, ++/*371260*/ OPC_CheckType, MVT::i32, ++/*371262*/ OPC_MoveParent, ++/*371263*/ OPC_MoveChild, 8, ++/*371265*/ OPC_CheckInteger, 1, ++/*371267*/ OPC_CheckType, MVT::i32, ++/*371269*/ OPC_MoveParent, ++/*371270*/ OPC_MoveChild, 9, ++/*371272*/ OPC_CheckInteger, 1, ++/*371274*/ OPC_CheckType, MVT::i32, ++/*371276*/ OPC_MoveParent, ++/*371277*/ OPC_MoveChild, 10, ++/*371279*/ OPC_CheckInteger, 1, ++/*371281*/ OPC_CheckType, MVT::i32, ++/*371283*/ OPC_MoveParent, ++/*371284*/ OPC_MoveChild, 11, ++/*371286*/ OPC_CheckInteger, 1, ++/*371288*/ OPC_CheckType, MVT::i32, ++/*371290*/ OPC_MoveParent, ++/*371291*/ OPC_MoveChild, 12, ++/*371293*/ OPC_CheckInteger, 1, ++/*371295*/ OPC_CheckType, MVT::i32, ++/*371297*/ OPC_MoveParent, ++/*371298*/ OPC_MoveChild, 13, ++/*371300*/ OPC_CheckInteger, 1, ++/*371302*/ OPC_CheckType, MVT::i32, ++/*371304*/ OPC_MoveParent, ++/*371305*/ OPC_MoveChild, 14, ++/*371307*/ OPC_CheckInteger, 1, ++/*371309*/ OPC_CheckType, MVT::i32, ++/*371311*/ OPC_MoveParent, ++/*371312*/ OPC_MoveChild, 15, ++/*371314*/ OPC_CheckInteger, 1, ++/*371316*/ OPC_CheckType, MVT::i32, ++/*371318*/ OPC_MoveParent, ++/*371319*/ OPC_MoveParent, ++/*371320*/ OPC_MoveParent, ++/*371321*/ OPC_CheckChild1Same, 1, ++/*371323*/ OPC_MoveParent, ++/*371324*/ OPC_MoveParent, ++/*371325*/ OPC_MoveChild1, ++/*371326*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*371329*/ OPC_CheckChild0Integer, 1, ++/*371331*/ OPC_CheckChild0Type, MVT::i32, ++/*371333*/ OPC_CheckChild1Integer, 1, ++/*371335*/ OPC_CheckChild1Type, MVT::i32, ++/*371337*/ OPC_CheckChild2Integer, 1, ++/*371339*/ OPC_CheckChild2Type, MVT::i32, ++/*371341*/ OPC_CheckChild3Integer, 1, ++/*371343*/ OPC_CheckChild3Type, MVT::i32, ++/*371345*/ OPC_CheckChild4Integer, 1, ++/*371347*/ OPC_CheckChild4Type, MVT::i32, ++/*371349*/ OPC_MoveChild5, ++/*371350*/ OPC_CheckInteger, 1, ++/*371352*/ OPC_CheckType, MVT::i32, ++/*371354*/ OPC_MoveParent, ++/*371355*/ OPC_MoveChild6, ++/*371356*/ OPC_CheckInteger, 1, ++/*371358*/ OPC_CheckType, MVT::i32, ++/*371360*/ OPC_MoveParent, ++/*371361*/ OPC_MoveChild7, ++/*371362*/ OPC_CheckInteger, 1, ++/*371364*/ OPC_CheckType, MVT::i32, ++/*371366*/ OPC_MoveParent, ++/*371367*/ OPC_MoveChild, 8, ++/*371369*/ OPC_CheckInteger, 1, ++/*371371*/ OPC_CheckType, MVT::i32, ++/*371373*/ OPC_MoveParent, ++/*371374*/ OPC_MoveChild, 9, ++/*371376*/ OPC_CheckInteger, 1, ++/*371378*/ OPC_CheckType, MVT::i32, ++/*371380*/ OPC_MoveParent, ++/*371381*/ OPC_MoveChild, 10, ++/*371383*/ OPC_CheckInteger, 1, ++/*371385*/ OPC_CheckType, MVT::i32, ++/*371387*/ OPC_MoveParent, ++/*371388*/ OPC_MoveChild, 11, ++/*371390*/ OPC_CheckInteger, 1, ++/*371392*/ OPC_CheckType, MVT::i32, ++/*371394*/ OPC_MoveParent, ++/*371395*/ OPC_MoveChild, 12, ++/*371397*/ OPC_CheckInteger, 1, ++/*371399*/ OPC_CheckType, MVT::i32, ++/*371401*/ OPC_MoveParent, ++/*371402*/ OPC_MoveChild, 13, ++/*371404*/ OPC_CheckInteger, 1, ++/*371406*/ OPC_CheckType, MVT::i32, ++/*371408*/ OPC_MoveParent, ++/*371409*/ OPC_MoveChild, 14, ++/*371411*/ OPC_CheckInteger, 1, ++/*371413*/ OPC_CheckType, MVT::i32, ++/*371415*/ OPC_MoveParent, ++/*371416*/ OPC_MoveChild, 15, ++/*371418*/ OPC_CheckInteger, 1, ++/*371420*/ OPC_CheckType, MVT::i32, ++/*371422*/ OPC_MoveParent, ++/*371423*/ OPC_CheckType, MVT::v16i8, ++/*371425*/ OPC_MoveParent, ++/*371426*/ OPC_CheckType, MVT::v16i8, ++/*371428*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*371430*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*371438*/ /*Scope*/ 91|128,1/*219*/, /*->371659*/ ++/*371440*/ OPC_CheckChild0Same, 1, ++/*371442*/ OPC_CheckChild1Same, 0, ++/*371444*/ OPC_MoveParent, ++/*371445*/ OPC_MoveChild1, ++/*371446*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*371449*/ OPC_CheckChild0Integer, 1, ++/*371451*/ OPC_CheckChild0Type, MVT::i32, ++/*371453*/ OPC_CheckChild1Integer, 1, ++/*371455*/ OPC_CheckChild1Type, MVT::i32, ++/*371457*/ OPC_CheckChild2Integer, 1, ++/*371459*/ OPC_CheckChild2Type, MVT::i32, ++/*371461*/ OPC_CheckChild3Integer, 1, ++/*371463*/ OPC_CheckChild3Type, MVT::i32, ++/*371465*/ OPC_CheckChild4Integer, 1, ++/*371467*/ OPC_CheckChild4Type, MVT::i32, ++/*371469*/ OPC_MoveChild5, ++/*371470*/ OPC_CheckInteger, 1, ++/*371472*/ OPC_CheckType, MVT::i32, ++/*371474*/ OPC_MoveParent, ++/*371475*/ OPC_MoveChild6, ++/*371476*/ OPC_CheckInteger, 1, ++/*371478*/ OPC_CheckType, MVT::i32, ++/*371480*/ OPC_MoveParent, ++/*371481*/ OPC_MoveChild7, ++/*371482*/ OPC_CheckInteger, 1, ++/*371484*/ OPC_CheckType, MVT::i32, ++/*371486*/ OPC_MoveParent, ++/*371487*/ OPC_MoveChild, 8, ++/*371489*/ OPC_CheckInteger, 1, ++/*371491*/ OPC_CheckType, MVT::i32, ++/*371493*/ OPC_MoveParent, ++/*371494*/ OPC_MoveChild, 9, ++/*371496*/ OPC_CheckInteger, 1, ++/*371498*/ OPC_CheckType, MVT::i32, ++/*371500*/ OPC_MoveParent, ++/*371501*/ OPC_MoveChild, 10, ++/*371503*/ OPC_CheckInteger, 1, ++/*371505*/ OPC_CheckType, MVT::i32, ++/*371507*/ OPC_MoveParent, ++/*371508*/ OPC_MoveChild, 11, ++/*371510*/ OPC_CheckInteger, 1, ++/*371512*/ OPC_CheckType, MVT::i32, ++/*371514*/ OPC_MoveParent, ++/*371515*/ OPC_MoveChild, 12, ++/*371517*/ OPC_CheckInteger, 1, ++/*371519*/ OPC_CheckType, MVT::i32, ++/*371521*/ OPC_MoveParent, ++/*371522*/ OPC_MoveChild, 13, ++/*371524*/ OPC_CheckInteger, 1, ++/*371526*/ OPC_CheckType, MVT::i32, ++/*371528*/ OPC_MoveParent, ++/*371529*/ OPC_MoveChild, 14, ++/*371531*/ OPC_CheckInteger, 1, ++/*371533*/ OPC_CheckType, MVT::i32, ++/*371535*/ OPC_MoveParent, ++/*371536*/ OPC_MoveChild, 15, ++/*371538*/ OPC_CheckInteger, 1, ++/*371540*/ OPC_CheckType, MVT::i32, ++/*371542*/ OPC_MoveParent, ++/*371543*/ OPC_MoveParent, ++/*371544*/ OPC_MoveParent, ++/*371545*/ OPC_MoveParent, ++/*371546*/ OPC_MoveChild1, ++/*371547*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*371550*/ OPC_CheckChild0Integer, 1, ++/*371552*/ OPC_CheckChild0Type, MVT::i32, ++/*371554*/ OPC_CheckChild1Integer, 1, ++/*371556*/ OPC_CheckChild1Type, MVT::i32, ++/*371558*/ OPC_CheckChild2Integer, 1, ++/*371560*/ OPC_CheckChild2Type, MVT::i32, ++/*371562*/ OPC_CheckChild3Integer, 1, ++/*371564*/ OPC_CheckChild3Type, MVT::i32, ++/*371566*/ OPC_CheckChild4Integer, 1, ++/*371568*/ OPC_CheckChild4Type, MVT::i32, ++/*371570*/ OPC_MoveChild5, ++/*371571*/ OPC_CheckInteger, 1, ++/*371573*/ OPC_CheckType, MVT::i32, ++/*371575*/ OPC_MoveParent, ++/*371576*/ OPC_MoveChild6, ++/*371577*/ OPC_CheckInteger, 1, ++/*371579*/ OPC_CheckType, MVT::i32, ++/*371581*/ OPC_MoveParent, ++/*371582*/ OPC_MoveChild7, ++/*371583*/ OPC_CheckInteger, 1, ++/*371585*/ OPC_CheckType, MVT::i32, ++/*371587*/ OPC_MoveParent, ++/*371588*/ OPC_MoveChild, 8, ++/*371590*/ OPC_CheckInteger, 1, ++/*371592*/ OPC_CheckType, MVT::i32, ++/*371594*/ OPC_MoveParent, ++/*371595*/ OPC_MoveChild, 9, ++/*371597*/ OPC_CheckInteger, 1, ++/*371599*/ OPC_CheckType, MVT::i32, ++/*371601*/ OPC_MoveParent, ++/*371602*/ OPC_MoveChild, 10, ++/*371604*/ OPC_CheckInteger, 1, ++/*371606*/ OPC_CheckType, MVT::i32, ++/*371608*/ OPC_MoveParent, ++/*371609*/ OPC_MoveChild, 11, ++/*371611*/ OPC_CheckInteger, 1, ++/*371613*/ OPC_CheckType, MVT::i32, ++/*371615*/ OPC_MoveParent, ++/*371616*/ OPC_MoveChild, 12, ++/*371618*/ OPC_CheckInteger, 1, ++/*371620*/ OPC_CheckType, MVT::i32, ++/*371622*/ OPC_MoveParent, ++/*371623*/ OPC_MoveChild, 13, ++/*371625*/ OPC_CheckInteger, 1, ++/*371627*/ OPC_CheckType, MVT::i32, ++/*371629*/ OPC_MoveParent, ++/*371630*/ OPC_MoveChild, 14, ++/*371632*/ OPC_CheckInteger, 1, ++/*371634*/ OPC_CheckType, MVT::i32, ++/*371636*/ OPC_MoveParent, ++/*371637*/ OPC_MoveChild, 15, ++/*371639*/ OPC_CheckInteger, 1, ++/*371641*/ OPC_CheckType, MVT::i32, ++/*371643*/ OPC_MoveParent, ++/*371644*/ OPC_CheckType, MVT::v16i8, ++/*371646*/ OPC_MoveParent, ++/*371647*/ OPC_CheckType, MVT::v16i8, ++/*371649*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*371651*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*371659*/ /*Scope*/ 91|128,1/*219*/, /*->371880*/ ++/*371661*/ OPC_CheckChild0Same, 0, ++/*371663*/ OPC_CheckChild1Same, 1, ++/*371665*/ OPC_MoveParent, ++/*371666*/ OPC_MoveChild1, ++/*371667*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*371670*/ OPC_CheckChild0Integer, 1, ++/*371672*/ OPC_CheckChild0Type, MVT::i32, ++/*371674*/ OPC_CheckChild1Integer, 1, ++/*371676*/ OPC_CheckChild1Type, MVT::i32, ++/*371678*/ OPC_CheckChild2Integer, 1, ++/*371680*/ OPC_CheckChild2Type, MVT::i32, ++/*371682*/ OPC_CheckChild3Integer, 1, ++/*371684*/ OPC_CheckChild3Type, MVT::i32, ++/*371686*/ OPC_CheckChild4Integer, 1, ++/*371688*/ OPC_CheckChild4Type, MVT::i32, ++/*371690*/ OPC_MoveChild5, ++/*371691*/ OPC_CheckInteger, 1, ++/*371693*/ OPC_CheckType, MVT::i32, ++/*371695*/ OPC_MoveParent, ++/*371696*/ OPC_MoveChild6, ++/*371697*/ OPC_CheckInteger, 1, ++/*371699*/ OPC_CheckType, MVT::i32, ++/*371701*/ OPC_MoveParent, ++/*371702*/ OPC_MoveChild7, ++/*371703*/ OPC_CheckInteger, 1, ++/*371705*/ OPC_CheckType, MVT::i32, ++/*371707*/ OPC_MoveParent, ++/*371708*/ OPC_MoveChild, 8, ++/*371710*/ OPC_CheckInteger, 1, ++/*371712*/ OPC_CheckType, MVT::i32, ++/*371714*/ OPC_MoveParent, ++/*371715*/ OPC_MoveChild, 9, ++/*371717*/ OPC_CheckInteger, 1, ++/*371719*/ OPC_CheckType, MVT::i32, ++/*371721*/ OPC_MoveParent, ++/*371722*/ OPC_MoveChild, 10, ++/*371724*/ OPC_CheckInteger, 1, ++/*371726*/ OPC_CheckType, MVT::i32, ++/*371728*/ OPC_MoveParent, ++/*371729*/ OPC_MoveChild, 11, ++/*371731*/ OPC_CheckInteger, 1, ++/*371733*/ OPC_CheckType, MVT::i32, ++/*371735*/ OPC_MoveParent, ++/*371736*/ OPC_MoveChild, 12, ++/*371738*/ OPC_CheckInteger, 1, ++/*371740*/ OPC_CheckType, MVT::i32, ++/*371742*/ OPC_MoveParent, ++/*371743*/ OPC_MoveChild, 13, ++/*371745*/ OPC_CheckInteger, 1, ++/*371747*/ OPC_CheckType, MVT::i32, ++/*371749*/ OPC_MoveParent, ++/*371750*/ OPC_MoveChild, 14, ++/*371752*/ OPC_CheckInteger, 1, ++/*371754*/ OPC_CheckType, MVT::i32, ++/*371756*/ OPC_MoveParent, ++/*371757*/ OPC_MoveChild, 15, ++/*371759*/ OPC_CheckInteger, 1, ++/*371761*/ OPC_CheckType, MVT::i32, ++/*371763*/ OPC_MoveParent, ++/*371764*/ OPC_MoveParent, ++/*371765*/ OPC_MoveParent, ++/*371766*/ OPC_MoveParent, ++/*371767*/ OPC_MoveChild1, ++/*371768*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*371771*/ OPC_CheckChild0Integer, 1, ++/*371773*/ OPC_CheckChild0Type, MVT::i32, ++/*371775*/ OPC_CheckChild1Integer, 1, ++/*371777*/ OPC_CheckChild1Type, MVT::i32, ++/*371779*/ OPC_CheckChild2Integer, 1, ++/*371781*/ OPC_CheckChild2Type, MVT::i32, ++/*371783*/ OPC_CheckChild3Integer, 1, ++/*371785*/ OPC_CheckChild3Type, MVT::i32, ++/*371787*/ OPC_CheckChild4Integer, 1, ++/*371789*/ OPC_CheckChild4Type, MVT::i32, ++/*371791*/ OPC_MoveChild5, ++/*371792*/ OPC_CheckInteger, 1, ++/*371794*/ OPC_CheckType, MVT::i32, ++/*371796*/ OPC_MoveParent, ++/*371797*/ OPC_MoveChild6, ++/*371798*/ OPC_CheckInteger, 1, ++/*371800*/ OPC_CheckType, MVT::i32, ++/*371802*/ OPC_MoveParent, ++/*371803*/ OPC_MoveChild7, ++/*371804*/ OPC_CheckInteger, 1, ++/*371806*/ OPC_CheckType, MVT::i32, ++/*371808*/ OPC_MoveParent, ++/*371809*/ OPC_MoveChild, 8, ++/*371811*/ OPC_CheckInteger, 1, ++/*371813*/ OPC_CheckType, MVT::i32, ++/*371815*/ OPC_MoveParent, ++/*371816*/ OPC_MoveChild, 9, ++/*371818*/ OPC_CheckInteger, 1, ++/*371820*/ OPC_CheckType, MVT::i32, ++/*371822*/ OPC_MoveParent, ++/*371823*/ OPC_MoveChild, 10, ++/*371825*/ OPC_CheckInteger, 1, ++/*371827*/ OPC_CheckType, MVT::i32, ++/*371829*/ OPC_MoveParent, ++/*371830*/ OPC_MoveChild, 11, ++/*371832*/ OPC_CheckInteger, 1, ++/*371834*/ OPC_CheckType, MVT::i32, ++/*371836*/ OPC_MoveParent, ++/*371837*/ OPC_MoveChild, 12, ++/*371839*/ OPC_CheckInteger, 1, ++/*371841*/ OPC_CheckType, MVT::i32, ++/*371843*/ OPC_MoveParent, ++/*371844*/ OPC_MoveChild, 13, ++/*371846*/ OPC_CheckInteger, 1, ++/*371848*/ OPC_CheckType, MVT::i32, ++/*371850*/ OPC_MoveParent, ++/*371851*/ OPC_MoveChild, 14, ++/*371853*/ OPC_CheckInteger, 1, ++/*371855*/ OPC_CheckType, MVT::i32, ++/*371857*/ OPC_MoveParent, ++/*371858*/ OPC_MoveChild, 15, ++/*371860*/ OPC_CheckInteger, 1, ++/*371862*/ OPC_CheckType, MVT::i32, ++/*371864*/ OPC_MoveParent, ++/*371865*/ OPC_CheckType, MVT::v16i8, ++/*371867*/ OPC_MoveParent, ++/*371868*/ OPC_CheckType, MVT::v16i8, ++/*371870*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*371872*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*371880*/ 0, /*End of Scope*/ ++/*371881*/ 0, // EndSwitchOpcode ++/*371882*/ /*Scope*/ 62|128,3/*446*/, /*->372330*/ ++/*371884*/ OPC_CheckChild0Same, 0, ++/*371886*/ OPC_MoveChild1, ++/*371887*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*371890*/ OPC_Scope, 89|128,1/*217*/, /*->372110*/ // 2 children in Scope ++/*371893*/ OPC_MoveChild0, ++/*371894*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*371897*/ OPC_CheckChild0Integer, 1, ++/*371899*/ OPC_CheckChild0Type, MVT::i32, ++/*371901*/ OPC_CheckChild1Integer, 1, ++/*371903*/ OPC_CheckChild1Type, MVT::i32, ++/*371905*/ OPC_CheckChild2Integer, 1, ++/*371907*/ OPC_CheckChild2Type, MVT::i32, ++/*371909*/ OPC_CheckChild3Integer, 1, ++/*371911*/ OPC_CheckChild3Type, MVT::i32, ++/*371913*/ OPC_CheckChild4Integer, 1, ++/*371915*/ OPC_CheckChild4Type, MVT::i32, ++/*371917*/ OPC_MoveChild5, ++/*371918*/ OPC_CheckInteger, 1, ++/*371920*/ OPC_CheckType, MVT::i32, ++/*371922*/ OPC_MoveParent, ++/*371923*/ OPC_MoveChild6, ++/*371924*/ OPC_CheckInteger, 1, ++/*371926*/ OPC_CheckType, MVT::i32, ++/*371928*/ OPC_MoveParent, ++/*371929*/ OPC_MoveChild7, ++/*371930*/ OPC_CheckInteger, 1, ++/*371932*/ OPC_CheckType, MVT::i32, ++/*371934*/ OPC_MoveParent, ++/*371935*/ OPC_MoveChild, 8, ++/*371937*/ OPC_CheckInteger, 1, ++/*371939*/ OPC_CheckType, MVT::i32, ++/*371941*/ OPC_MoveParent, ++/*371942*/ OPC_MoveChild, 9, ++/*371944*/ OPC_CheckInteger, 1, ++/*371946*/ OPC_CheckType, MVT::i32, ++/*371948*/ OPC_MoveParent, ++/*371949*/ OPC_MoveChild, 10, ++/*371951*/ OPC_CheckInteger, 1, ++/*371953*/ OPC_CheckType, MVT::i32, ++/*371955*/ OPC_MoveParent, ++/*371956*/ OPC_MoveChild, 11, ++/*371958*/ OPC_CheckInteger, 1, ++/*371960*/ OPC_CheckType, MVT::i32, ++/*371962*/ OPC_MoveParent, ++/*371963*/ OPC_MoveChild, 12, ++/*371965*/ OPC_CheckInteger, 1, ++/*371967*/ OPC_CheckType, MVT::i32, ++/*371969*/ OPC_MoveParent, ++/*371970*/ OPC_MoveChild, 13, ++/*371972*/ OPC_CheckInteger, 1, ++/*371974*/ OPC_CheckType, MVT::i32, ++/*371976*/ OPC_MoveParent, ++/*371977*/ OPC_MoveChild, 14, ++/*371979*/ OPC_CheckInteger, 1, ++/*371981*/ OPC_CheckType, MVT::i32, ++/*371983*/ OPC_MoveParent, ++/*371984*/ OPC_MoveChild, 15, ++/*371986*/ OPC_CheckInteger, 1, ++/*371988*/ OPC_CheckType, MVT::i32, ++/*371990*/ OPC_MoveParent, ++/*371991*/ OPC_MoveParent, ++/*371992*/ OPC_CheckChild1Same, 1, ++/*371994*/ OPC_MoveParent, ++/*371995*/ OPC_MoveParent, ++/*371996*/ OPC_MoveParent, ++/*371997*/ OPC_MoveChild1, ++/*371998*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*372001*/ OPC_CheckChild0Integer, 1, ++/*372003*/ OPC_CheckChild0Type, MVT::i32, ++/*372005*/ OPC_CheckChild1Integer, 1, ++/*372007*/ OPC_CheckChild1Type, MVT::i32, ++/*372009*/ OPC_CheckChild2Integer, 1, ++/*372011*/ OPC_CheckChild2Type, MVT::i32, ++/*372013*/ OPC_CheckChild3Integer, 1, ++/*372015*/ OPC_CheckChild3Type, MVT::i32, ++/*372017*/ OPC_CheckChild4Integer, 1, ++/*372019*/ OPC_CheckChild4Type, MVT::i32, ++/*372021*/ OPC_MoveChild5, ++/*372022*/ OPC_CheckInteger, 1, ++/*372024*/ OPC_CheckType, MVT::i32, ++/*372026*/ OPC_MoveParent, ++/*372027*/ OPC_MoveChild6, ++/*372028*/ OPC_CheckInteger, 1, ++/*372030*/ OPC_CheckType, MVT::i32, ++/*372032*/ OPC_MoveParent, ++/*372033*/ OPC_MoveChild7, ++/*372034*/ OPC_CheckInteger, 1, ++/*372036*/ OPC_CheckType, MVT::i32, ++/*372038*/ OPC_MoveParent, ++/*372039*/ OPC_MoveChild, 8, ++/*372041*/ OPC_CheckInteger, 1, ++/*372043*/ OPC_CheckType, MVT::i32, ++/*372045*/ OPC_MoveParent, ++/*372046*/ OPC_MoveChild, 9, ++/*372048*/ OPC_CheckInteger, 1, ++/*372050*/ OPC_CheckType, MVT::i32, ++/*372052*/ OPC_MoveParent, ++/*372053*/ OPC_MoveChild, 10, ++/*372055*/ OPC_CheckInteger, 1, ++/*372057*/ OPC_CheckType, MVT::i32, ++/*372059*/ OPC_MoveParent, ++/*372060*/ OPC_MoveChild, 11, ++/*372062*/ OPC_CheckInteger, 1, ++/*372064*/ OPC_CheckType, MVT::i32, ++/*372066*/ OPC_MoveParent, ++/*372067*/ OPC_MoveChild, 12, ++/*372069*/ OPC_CheckInteger, 1, ++/*372071*/ OPC_CheckType, MVT::i32, ++/*372073*/ OPC_MoveParent, ++/*372074*/ OPC_MoveChild, 13, ++/*372076*/ OPC_CheckInteger, 1, ++/*372078*/ OPC_CheckType, MVT::i32, ++/*372080*/ OPC_MoveParent, ++/*372081*/ OPC_MoveChild, 14, ++/*372083*/ OPC_CheckInteger, 1, ++/*372085*/ OPC_CheckType, MVT::i32, ++/*372087*/ OPC_MoveParent, ++/*372088*/ OPC_MoveChild, 15, ++/*372090*/ OPC_CheckInteger, 1, ++/*372092*/ OPC_CheckType, MVT::i32, ++/*372094*/ OPC_MoveParent, ++/*372095*/ OPC_CheckType, MVT::v16i8, ++/*372097*/ OPC_MoveParent, ++/*372098*/ OPC_CheckType, MVT::v16i8, ++/*372100*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*372102*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$a))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*372110*/ /*Scope*/ 89|128,1/*217*/, /*->372329*/ ++/*372112*/ OPC_CheckChild0Same, 1, ++/*372114*/ OPC_MoveChild1, ++/*372115*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*372118*/ OPC_CheckChild0Integer, 1, ++/*372120*/ OPC_CheckChild0Type, MVT::i32, ++/*372122*/ OPC_CheckChild1Integer, 1, ++/*372124*/ OPC_CheckChild1Type, MVT::i32, ++/*372126*/ OPC_CheckChild2Integer, 1, ++/*372128*/ OPC_CheckChild2Type, MVT::i32, ++/*372130*/ OPC_CheckChild3Integer, 1, ++/*372132*/ OPC_CheckChild3Type, MVT::i32, ++/*372134*/ OPC_CheckChild4Integer, 1, ++/*372136*/ OPC_CheckChild4Type, MVT::i32, ++/*372138*/ OPC_MoveChild5, ++/*372139*/ OPC_CheckInteger, 1, ++/*372141*/ OPC_CheckType, MVT::i32, ++/*372143*/ OPC_MoveParent, ++/*372144*/ OPC_MoveChild6, ++/*372145*/ OPC_CheckInteger, 1, ++/*372147*/ OPC_CheckType, MVT::i32, ++/*372149*/ OPC_MoveParent, ++/*372150*/ OPC_MoveChild7, ++/*372151*/ OPC_CheckInteger, 1, ++/*372153*/ OPC_CheckType, MVT::i32, ++/*372155*/ OPC_MoveParent, ++/*372156*/ OPC_MoveChild, 8, ++/*372158*/ OPC_CheckInteger, 1, ++/*372160*/ OPC_CheckType, MVT::i32, ++/*372162*/ OPC_MoveParent, ++/*372163*/ OPC_MoveChild, 9, ++/*372165*/ OPC_CheckInteger, 1, ++/*372167*/ OPC_CheckType, MVT::i32, ++/*372169*/ OPC_MoveParent, ++/*372170*/ OPC_MoveChild, 10, ++/*372172*/ OPC_CheckInteger, 1, ++/*372174*/ OPC_CheckType, MVT::i32, ++/*372176*/ OPC_MoveParent, ++/*372177*/ OPC_MoveChild, 11, ++/*372179*/ OPC_CheckInteger, 1, ++/*372181*/ OPC_CheckType, MVT::i32, ++/*372183*/ OPC_MoveParent, ++/*372184*/ OPC_MoveChild, 12, ++/*372186*/ OPC_CheckInteger, 1, ++/*372188*/ OPC_CheckType, MVT::i32, ++/*372190*/ OPC_MoveParent, ++/*372191*/ OPC_MoveChild, 13, ++/*372193*/ OPC_CheckInteger, 1, ++/*372195*/ OPC_CheckType, MVT::i32, ++/*372197*/ OPC_MoveParent, ++/*372198*/ OPC_MoveChild, 14, ++/*372200*/ OPC_CheckInteger, 1, ++/*372202*/ OPC_CheckType, MVT::i32, ++/*372204*/ OPC_MoveParent, ++/*372205*/ OPC_MoveChild, 15, ++/*372207*/ OPC_CheckInteger, 1, ++/*372209*/ OPC_CheckType, MVT::i32, ++/*372211*/ OPC_MoveParent, ++/*372212*/ OPC_MoveParent, ++/*372213*/ OPC_MoveParent, ++/*372214*/ OPC_MoveParent, ++/*372215*/ OPC_MoveParent, ++/*372216*/ OPC_MoveChild1, ++/*372217*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*372220*/ OPC_CheckChild0Integer, 1, ++/*372222*/ OPC_CheckChild0Type, MVT::i32, ++/*372224*/ OPC_CheckChild1Integer, 1, ++/*372226*/ OPC_CheckChild1Type, MVT::i32, ++/*372228*/ OPC_CheckChild2Integer, 1, ++/*372230*/ OPC_CheckChild2Type, MVT::i32, ++/*372232*/ OPC_CheckChild3Integer, 1, ++/*372234*/ OPC_CheckChild3Type, MVT::i32, ++/*372236*/ OPC_CheckChild4Integer, 1, ++/*372238*/ OPC_CheckChild4Type, MVT::i32, ++/*372240*/ OPC_MoveChild5, ++/*372241*/ OPC_CheckInteger, 1, ++/*372243*/ OPC_CheckType, MVT::i32, ++/*372245*/ OPC_MoveParent, ++/*372246*/ OPC_MoveChild6, ++/*372247*/ OPC_CheckInteger, 1, ++/*372249*/ OPC_CheckType, MVT::i32, ++/*372251*/ OPC_MoveParent, ++/*372252*/ OPC_MoveChild7, ++/*372253*/ OPC_CheckInteger, 1, ++/*372255*/ OPC_CheckType, MVT::i32, ++/*372257*/ OPC_MoveParent, ++/*372258*/ OPC_MoveChild, 8, ++/*372260*/ OPC_CheckInteger, 1, ++/*372262*/ OPC_CheckType, MVT::i32, ++/*372264*/ OPC_MoveParent, ++/*372265*/ OPC_MoveChild, 9, ++/*372267*/ OPC_CheckInteger, 1, ++/*372269*/ OPC_CheckType, MVT::i32, ++/*372271*/ OPC_MoveParent, ++/*372272*/ OPC_MoveChild, 10, ++/*372274*/ OPC_CheckInteger, 1, ++/*372276*/ OPC_CheckType, MVT::i32, ++/*372278*/ OPC_MoveParent, ++/*372279*/ OPC_MoveChild, 11, ++/*372281*/ OPC_CheckInteger, 1, ++/*372283*/ OPC_CheckType, MVT::i32, ++/*372285*/ OPC_MoveParent, ++/*372286*/ OPC_MoveChild, 12, ++/*372288*/ OPC_CheckInteger, 1, ++/*372290*/ OPC_CheckType, MVT::i32, ++/*372292*/ OPC_MoveParent, ++/*372293*/ OPC_MoveChild, 13, ++/*372295*/ OPC_CheckInteger, 1, ++/*372297*/ OPC_CheckType, MVT::i32, ++/*372299*/ OPC_MoveParent, ++/*372300*/ OPC_MoveChild, 14, ++/*372302*/ OPC_CheckInteger, 1, ++/*372304*/ OPC_CheckType, MVT::i32, ++/*372306*/ OPC_MoveParent, ++/*372307*/ OPC_MoveChild, 15, ++/*372309*/ OPC_CheckInteger, 1, ++/*372311*/ OPC_CheckType, MVT::i32, ++/*372313*/ OPC_MoveParent, ++/*372314*/ OPC_CheckType, MVT::v16i8, ++/*372316*/ OPC_MoveParent, ++/*372317*/ OPC_CheckType, MVT::v16i8, ++/*372319*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*372321*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*372329*/ 0, /*End of Scope*/ ++/*372330*/ /*Scope*/ 62|128,3/*446*/, /*->372778*/ ++/*372332*/ OPC_CheckChild0Same, 1, ++/*372334*/ OPC_MoveChild1, ++/*372335*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*372338*/ OPC_Scope, 89|128,1/*217*/, /*->372558*/ // 2 children in Scope ++/*372341*/ OPC_MoveChild0, ++/*372342*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*372345*/ OPC_CheckChild0Integer, 1, ++/*372347*/ OPC_CheckChild0Type, MVT::i32, ++/*372349*/ OPC_CheckChild1Integer, 1, ++/*372351*/ OPC_CheckChild1Type, MVT::i32, ++/*372353*/ OPC_CheckChild2Integer, 1, ++/*372355*/ OPC_CheckChild2Type, MVT::i32, ++/*372357*/ OPC_CheckChild3Integer, 1, ++/*372359*/ OPC_CheckChild3Type, MVT::i32, ++/*372361*/ OPC_CheckChild4Integer, 1, ++/*372363*/ OPC_CheckChild4Type, MVT::i32, ++/*372365*/ OPC_MoveChild5, ++/*372366*/ OPC_CheckInteger, 1, ++/*372368*/ OPC_CheckType, MVT::i32, ++/*372370*/ OPC_MoveParent, ++/*372371*/ OPC_MoveChild6, ++/*372372*/ OPC_CheckInteger, 1, ++/*372374*/ OPC_CheckType, MVT::i32, ++/*372376*/ OPC_MoveParent, ++/*372377*/ OPC_MoveChild7, ++/*372378*/ OPC_CheckInteger, 1, ++/*372380*/ OPC_CheckType, MVT::i32, ++/*372382*/ OPC_MoveParent, ++/*372383*/ OPC_MoveChild, 8, ++/*372385*/ OPC_CheckInteger, 1, ++/*372387*/ OPC_CheckType, MVT::i32, ++/*372389*/ OPC_MoveParent, ++/*372390*/ OPC_MoveChild, 9, ++/*372392*/ OPC_CheckInteger, 1, ++/*372394*/ OPC_CheckType, MVT::i32, ++/*372396*/ OPC_MoveParent, ++/*372397*/ OPC_MoveChild, 10, ++/*372399*/ OPC_CheckInteger, 1, ++/*372401*/ OPC_CheckType, MVT::i32, ++/*372403*/ OPC_MoveParent, ++/*372404*/ OPC_MoveChild, 11, ++/*372406*/ OPC_CheckInteger, 1, ++/*372408*/ OPC_CheckType, MVT::i32, ++/*372410*/ OPC_MoveParent, ++/*372411*/ OPC_MoveChild, 12, ++/*372413*/ OPC_CheckInteger, 1, ++/*372415*/ OPC_CheckType, MVT::i32, ++/*372417*/ OPC_MoveParent, ++/*372418*/ OPC_MoveChild, 13, ++/*372420*/ OPC_CheckInteger, 1, ++/*372422*/ OPC_CheckType, MVT::i32, ++/*372424*/ OPC_MoveParent, ++/*372425*/ OPC_MoveChild, 14, ++/*372427*/ OPC_CheckInteger, 1, ++/*372429*/ OPC_CheckType, MVT::i32, ++/*372431*/ OPC_MoveParent, ++/*372432*/ OPC_MoveChild, 15, ++/*372434*/ OPC_CheckInteger, 1, ++/*372436*/ OPC_CheckType, MVT::i32, ++/*372438*/ OPC_MoveParent, ++/*372439*/ OPC_MoveParent, ++/*372440*/ OPC_CheckChild1Same, 0, ++/*372442*/ OPC_MoveParent, ++/*372443*/ OPC_MoveParent, ++/*372444*/ OPC_MoveParent, ++/*372445*/ OPC_MoveChild1, ++/*372446*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*372449*/ OPC_CheckChild0Integer, 1, ++/*372451*/ OPC_CheckChild0Type, MVT::i32, ++/*372453*/ OPC_CheckChild1Integer, 1, ++/*372455*/ OPC_CheckChild1Type, MVT::i32, ++/*372457*/ OPC_CheckChild2Integer, 1, ++/*372459*/ OPC_CheckChild2Type, MVT::i32, ++/*372461*/ OPC_CheckChild3Integer, 1, ++/*372463*/ OPC_CheckChild3Type, MVT::i32, ++/*372465*/ OPC_CheckChild4Integer, 1, ++/*372467*/ OPC_CheckChild4Type, MVT::i32, ++/*372469*/ OPC_MoveChild5, ++/*372470*/ OPC_CheckInteger, 1, ++/*372472*/ OPC_CheckType, MVT::i32, ++/*372474*/ OPC_MoveParent, ++/*372475*/ OPC_MoveChild6, ++/*372476*/ OPC_CheckInteger, 1, ++/*372478*/ OPC_CheckType, MVT::i32, ++/*372480*/ OPC_MoveParent, ++/*372481*/ OPC_MoveChild7, ++/*372482*/ OPC_CheckInteger, 1, ++/*372484*/ OPC_CheckType, MVT::i32, ++/*372486*/ OPC_MoveParent, ++/*372487*/ OPC_MoveChild, 8, ++/*372489*/ OPC_CheckInteger, 1, ++/*372491*/ OPC_CheckType, MVT::i32, ++/*372493*/ OPC_MoveParent, ++/*372494*/ OPC_MoveChild, 9, ++/*372496*/ OPC_CheckInteger, 1, ++/*372498*/ OPC_CheckType, MVT::i32, ++/*372500*/ OPC_MoveParent, ++/*372501*/ OPC_MoveChild, 10, ++/*372503*/ OPC_CheckInteger, 1, ++/*372505*/ OPC_CheckType, MVT::i32, ++/*372507*/ OPC_MoveParent, ++/*372508*/ OPC_MoveChild, 11, ++/*372510*/ OPC_CheckInteger, 1, ++/*372512*/ OPC_CheckType, MVT::i32, ++/*372514*/ OPC_MoveParent, ++/*372515*/ OPC_MoveChild, 12, ++/*372517*/ OPC_CheckInteger, 1, ++/*372519*/ OPC_CheckType, MVT::i32, ++/*372521*/ OPC_MoveParent, ++/*372522*/ OPC_MoveChild, 13, ++/*372524*/ OPC_CheckInteger, 1, ++/*372526*/ OPC_CheckType, MVT::i32, ++/*372528*/ OPC_MoveParent, ++/*372529*/ OPC_MoveChild, 14, ++/*372531*/ OPC_CheckInteger, 1, ++/*372533*/ OPC_CheckType, MVT::i32, ++/*372535*/ OPC_MoveParent, ++/*372536*/ OPC_MoveChild, 15, ++/*372538*/ OPC_CheckInteger, 1, ++/*372540*/ OPC_CheckType, MVT::i32, ++/*372542*/ OPC_MoveParent, ++/*372543*/ OPC_CheckType, MVT::v16i8, ++/*372545*/ OPC_MoveParent, ++/*372546*/ OPC_CheckType, MVT::v16i8, ++/*372548*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*372550*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128B:{ *:[v16i8] }:$b))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*372558*/ /*Scope*/ 89|128,1/*217*/, /*->372777*/ ++/*372560*/ OPC_CheckChild0Same, 0, ++/*372562*/ OPC_MoveChild1, ++/*372563*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*372566*/ OPC_CheckChild0Integer, 1, ++/*372568*/ OPC_CheckChild0Type, MVT::i32, ++/*372570*/ OPC_CheckChild1Integer, 1, ++/*372572*/ OPC_CheckChild1Type, MVT::i32, ++/*372574*/ OPC_CheckChild2Integer, 1, ++/*372576*/ OPC_CheckChild2Type, MVT::i32, ++/*372578*/ OPC_CheckChild3Integer, 1, ++/*372580*/ OPC_CheckChild3Type, MVT::i32, ++/*372582*/ OPC_CheckChild4Integer, 1, ++/*372584*/ OPC_CheckChild4Type, MVT::i32, ++/*372586*/ OPC_MoveChild5, ++/*372587*/ OPC_CheckInteger, 1, ++/*372589*/ OPC_CheckType, MVT::i32, ++/*372591*/ OPC_MoveParent, ++/*372592*/ OPC_MoveChild6, ++/*372593*/ OPC_CheckInteger, 1, ++/*372595*/ OPC_CheckType, MVT::i32, ++/*372597*/ OPC_MoveParent, ++/*372598*/ OPC_MoveChild7, ++/*372599*/ OPC_CheckInteger, 1, ++/*372601*/ OPC_CheckType, MVT::i32, ++/*372603*/ OPC_MoveParent, ++/*372604*/ OPC_MoveChild, 8, ++/*372606*/ OPC_CheckInteger, 1, ++/*372608*/ OPC_CheckType, MVT::i32, ++/*372610*/ OPC_MoveParent, ++/*372611*/ OPC_MoveChild, 9, ++/*372613*/ OPC_CheckInteger, 1, ++/*372615*/ OPC_CheckType, MVT::i32, ++/*372617*/ OPC_MoveParent, ++/*372618*/ OPC_MoveChild, 10, ++/*372620*/ OPC_CheckInteger, 1, ++/*372622*/ OPC_CheckType, MVT::i32, ++/*372624*/ OPC_MoveParent, ++/*372625*/ OPC_MoveChild, 11, ++/*372627*/ OPC_CheckInteger, 1, ++/*372629*/ OPC_CheckType, MVT::i32, ++/*372631*/ OPC_MoveParent, ++/*372632*/ OPC_MoveChild, 12, ++/*372634*/ OPC_CheckInteger, 1, ++/*372636*/ OPC_CheckType, MVT::i32, ++/*372638*/ OPC_MoveParent, ++/*372639*/ OPC_MoveChild, 13, ++/*372641*/ OPC_CheckInteger, 1, ++/*372643*/ OPC_CheckType, MVT::i32, ++/*372645*/ OPC_MoveParent, ++/*372646*/ OPC_MoveChild, 14, ++/*372648*/ OPC_CheckInteger, 1, ++/*372650*/ OPC_CheckType, MVT::i32, ++/*372652*/ OPC_MoveParent, ++/*372653*/ OPC_MoveChild, 15, ++/*372655*/ OPC_CheckInteger, 1, ++/*372657*/ OPC_CheckType, MVT::i32, ++/*372659*/ OPC_MoveParent, ++/*372660*/ OPC_MoveParent, ++/*372661*/ OPC_MoveParent, ++/*372662*/ OPC_MoveParent, ++/*372663*/ OPC_MoveParent, ++/*372664*/ OPC_MoveChild1, ++/*372665*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*372668*/ OPC_CheckChild0Integer, 1, ++/*372670*/ OPC_CheckChild0Type, MVT::i32, ++/*372672*/ OPC_CheckChild1Integer, 1, ++/*372674*/ OPC_CheckChild1Type, MVT::i32, ++/*372676*/ OPC_CheckChild2Integer, 1, ++/*372678*/ OPC_CheckChild2Type, MVT::i32, ++/*372680*/ OPC_CheckChild3Integer, 1, ++/*372682*/ OPC_CheckChild3Type, MVT::i32, ++/*372684*/ OPC_CheckChild4Integer, 1, ++/*372686*/ OPC_CheckChild4Type, MVT::i32, ++/*372688*/ OPC_MoveChild5, ++/*372689*/ OPC_CheckInteger, 1, ++/*372691*/ OPC_CheckType, MVT::i32, ++/*372693*/ OPC_MoveParent, ++/*372694*/ OPC_MoveChild6, ++/*372695*/ OPC_CheckInteger, 1, ++/*372697*/ OPC_CheckType, MVT::i32, ++/*372699*/ OPC_MoveParent, ++/*372700*/ OPC_MoveChild7, ++/*372701*/ OPC_CheckInteger, 1, ++/*372703*/ OPC_CheckType, MVT::i32, ++/*372705*/ OPC_MoveParent, ++/*372706*/ OPC_MoveChild, 8, ++/*372708*/ OPC_CheckInteger, 1, ++/*372710*/ OPC_CheckType, MVT::i32, ++/*372712*/ OPC_MoveParent, ++/*372713*/ OPC_MoveChild, 9, ++/*372715*/ OPC_CheckInteger, 1, ++/*372717*/ OPC_CheckType, MVT::i32, ++/*372719*/ OPC_MoveParent, ++/*372720*/ OPC_MoveChild, 10, ++/*372722*/ OPC_CheckInteger, 1, ++/*372724*/ OPC_CheckType, MVT::i32, ++/*372726*/ OPC_MoveParent, ++/*372727*/ OPC_MoveChild, 11, ++/*372729*/ OPC_CheckInteger, 1, ++/*372731*/ OPC_CheckType, MVT::i32, ++/*372733*/ OPC_MoveParent, ++/*372734*/ OPC_MoveChild, 12, ++/*372736*/ OPC_CheckInteger, 1, ++/*372738*/ OPC_CheckType, MVT::i32, ++/*372740*/ OPC_MoveParent, ++/*372741*/ OPC_MoveChild, 13, ++/*372743*/ OPC_CheckInteger, 1, ++/*372745*/ OPC_CheckType, MVT::i32, ++/*372747*/ OPC_MoveParent, ++/*372748*/ OPC_MoveChild, 14, ++/*372750*/ OPC_CheckInteger, 1, ++/*372752*/ OPC_CheckType, MVT::i32, ++/*372754*/ OPC_MoveParent, ++/*372755*/ OPC_MoveChild, 15, ++/*372757*/ OPC_CheckInteger, 1, ++/*372759*/ OPC_CheckType, MVT::i32, ++/*372761*/ OPC_MoveParent, ++/*372762*/ OPC_CheckType, MVT::v16i8, ++/*372764*/ OPC_MoveParent, ++/*372765*/ OPC_CheckType, MVT::v16i8, ++/*372767*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*372769*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*372777*/ 0, /*End of Scope*/ ++/*372778*/ /*Scope*/ 91|128,2/*347*/, /*->373127*/ ++/*372780*/ OPC_MoveChild0, ++/*372781*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*372784*/ OPC_CheckChild0Integer, 1, ++/*372786*/ OPC_CheckChild0Type, MVT::i32, ++/*372788*/ OPC_CheckChild1Integer, 1, ++/*372790*/ OPC_CheckChild1Type, MVT::i32, ++/*372792*/ OPC_CheckChild2Integer, 1, ++/*372794*/ OPC_CheckChild2Type, MVT::i32, ++/*372796*/ OPC_CheckChild3Integer, 1, ++/*372798*/ OPC_CheckChild3Type, MVT::i32, ++/*372800*/ OPC_CheckChild4Integer, 1, ++/*372802*/ OPC_CheckChild4Type, MVT::i32, ++/*372804*/ OPC_MoveChild5, ++/*372805*/ OPC_CheckInteger, 1, ++/*372807*/ OPC_CheckType, MVT::i32, ++/*372809*/ OPC_MoveParent, ++/*372810*/ OPC_MoveChild6, ++/*372811*/ OPC_CheckInteger, 1, ++/*372813*/ OPC_CheckType, MVT::i32, ++/*372815*/ OPC_MoveParent, ++/*372816*/ OPC_MoveChild7, ++/*372817*/ OPC_CheckInteger, 1, ++/*372819*/ OPC_CheckType, MVT::i32, ++/*372821*/ OPC_MoveParent, ++/*372822*/ OPC_MoveChild, 8, ++/*372824*/ OPC_CheckInteger, 1, ++/*372826*/ OPC_CheckType, MVT::i32, ++/*372828*/ OPC_MoveParent, ++/*372829*/ OPC_MoveChild, 9, ++/*372831*/ OPC_CheckInteger, 1, ++/*372833*/ OPC_CheckType, MVT::i32, ++/*372835*/ OPC_MoveParent, ++/*372836*/ OPC_MoveChild, 10, ++/*372838*/ OPC_CheckInteger, 1, ++/*372840*/ OPC_CheckType, MVT::i32, ++/*372842*/ OPC_MoveParent, ++/*372843*/ OPC_MoveChild, 11, ++/*372845*/ OPC_CheckInteger, 1, ++/*372847*/ OPC_CheckType, MVT::i32, ++/*372849*/ OPC_MoveParent, ++/*372850*/ OPC_MoveChild, 12, ++/*372852*/ OPC_CheckInteger, 1, ++/*372854*/ OPC_CheckType, MVT::i32, ++/*372856*/ OPC_MoveParent, ++/*372857*/ OPC_MoveChild, 13, ++/*372859*/ OPC_CheckInteger, 1, ++/*372861*/ OPC_CheckType, MVT::i32, ++/*372863*/ OPC_MoveParent, ++/*372864*/ OPC_MoveChild, 14, ++/*372866*/ OPC_CheckInteger, 1, ++/*372868*/ OPC_CheckType, MVT::i32, ++/*372870*/ OPC_MoveParent, ++/*372871*/ OPC_MoveChild, 15, ++/*372873*/ OPC_CheckInteger, 1, ++/*372875*/ OPC_CheckType, MVT::i32, ++/*372877*/ OPC_MoveParent, ++/*372878*/ OPC_MoveParent, ++/*372879*/ OPC_MoveChild1, ++/*372880*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*372883*/ OPC_Scope, 120, /*->373005*/ // 2 children in Scope ++/*372885*/ OPC_CheckChild0Same, 1, ++/*372887*/ OPC_CheckChild1Same, 0, ++/*372889*/ OPC_MoveParent, ++/*372890*/ OPC_MoveParent, ++/*372891*/ OPC_MoveParent, ++/*372892*/ OPC_MoveChild1, ++/*372893*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*372896*/ OPC_CheckChild0Integer, 1, ++/*372898*/ OPC_CheckChild0Type, MVT::i32, ++/*372900*/ OPC_CheckChild1Integer, 1, ++/*372902*/ OPC_CheckChild1Type, MVT::i32, ++/*372904*/ OPC_CheckChild2Integer, 1, ++/*372906*/ OPC_CheckChild2Type, MVT::i32, ++/*372908*/ OPC_CheckChild3Integer, 1, ++/*372910*/ OPC_CheckChild3Type, MVT::i32, ++/*372912*/ OPC_CheckChild4Integer, 1, ++/*372914*/ OPC_CheckChild4Type, MVT::i32, ++/*372916*/ OPC_MoveChild5, ++/*372917*/ OPC_CheckInteger, 1, ++/*372919*/ OPC_CheckType, MVT::i32, ++/*372921*/ OPC_MoveParent, ++/*372922*/ OPC_MoveChild6, ++/*372923*/ OPC_CheckInteger, 1, ++/*372925*/ OPC_CheckType, MVT::i32, ++/*372927*/ OPC_MoveParent, ++/*372928*/ OPC_MoveChild7, ++/*372929*/ OPC_CheckInteger, 1, ++/*372931*/ OPC_CheckType, MVT::i32, ++/*372933*/ OPC_MoveParent, ++/*372934*/ OPC_MoveChild, 8, ++/*372936*/ OPC_CheckInteger, 1, ++/*372938*/ OPC_CheckType, MVT::i32, ++/*372940*/ OPC_MoveParent, ++/*372941*/ OPC_MoveChild, 9, ++/*372943*/ OPC_CheckInteger, 1, ++/*372945*/ OPC_CheckType, MVT::i32, ++/*372947*/ OPC_MoveParent, ++/*372948*/ OPC_MoveChild, 10, ++/*372950*/ OPC_CheckInteger, 1, ++/*372952*/ OPC_CheckType, MVT::i32, ++/*372954*/ OPC_MoveParent, ++/*372955*/ OPC_MoveChild, 11, ++/*372957*/ OPC_CheckInteger, 1, ++/*372959*/ OPC_CheckType, MVT::i32, ++/*372961*/ OPC_MoveParent, ++/*372962*/ OPC_MoveChild, 12, ++/*372964*/ OPC_CheckInteger, 1, ++/*372966*/ OPC_CheckType, MVT::i32, ++/*372968*/ OPC_MoveParent, ++/*372969*/ OPC_MoveChild, 13, ++/*372971*/ OPC_CheckInteger, 1, ++/*372973*/ OPC_CheckType, MVT::i32, ++/*372975*/ OPC_MoveParent, ++/*372976*/ OPC_MoveChild, 14, ++/*372978*/ OPC_CheckInteger, 1, ++/*372980*/ OPC_CheckType, MVT::i32, ++/*372982*/ OPC_MoveParent, ++/*372983*/ OPC_MoveChild, 15, ++/*372985*/ OPC_CheckInteger, 1, ++/*372987*/ OPC_CheckType, MVT::i32, ++/*372989*/ OPC_MoveParent, ++/*372990*/ OPC_CheckType, MVT::v16i8, ++/*372992*/ OPC_MoveParent, ++/*372993*/ OPC_CheckType, MVT::v16i8, ++/*372995*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*372997*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*373005*/ /*Scope*/ 120, /*->373126*/ ++/*373006*/ OPC_CheckChild0Same, 0, ++/*373008*/ OPC_CheckChild1Same, 1, ++/*373010*/ OPC_MoveParent, ++/*373011*/ OPC_MoveParent, ++/*373012*/ OPC_MoveParent, ++/*373013*/ OPC_MoveChild1, ++/*373014*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*373017*/ OPC_CheckChild0Integer, 1, ++/*373019*/ OPC_CheckChild0Type, MVT::i32, ++/*373021*/ OPC_CheckChild1Integer, 1, ++/*373023*/ OPC_CheckChild1Type, MVT::i32, ++/*373025*/ OPC_CheckChild2Integer, 1, ++/*373027*/ OPC_CheckChild2Type, MVT::i32, ++/*373029*/ OPC_CheckChild3Integer, 1, ++/*373031*/ OPC_CheckChild3Type, MVT::i32, ++/*373033*/ OPC_CheckChild4Integer, 1, ++/*373035*/ OPC_CheckChild4Type, MVT::i32, ++/*373037*/ OPC_MoveChild5, ++/*373038*/ OPC_CheckInteger, 1, ++/*373040*/ OPC_CheckType, MVT::i32, ++/*373042*/ OPC_MoveParent, ++/*373043*/ OPC_MoveChild6, ++/*373044*/ OPC_CheckInteger, 1, ++/*373046*/ OPC_CheckType, MVT::i32, ++/*373048*/ OPC_MoveParent, ++/*373049*/ OPC_MoveChild7, ++/*373050*/ OPC_CheckInteger, 1, ++/*373052*/ OPC_CheckType, MVT::i32, ++/*373054*/ OPC_MoveParent, ++/*373055*/ OPC_MoveChild, 8, ++/*373057*/ OPC_CheckInteger, 1, ++/*373059*/ OPC_CheckType, MVT::i32, ++/*373061*/ OPC_MoveParent, ++/*373062*/ OPC_MoveChild, 9, ++/*373064*/ OPC_CheckInteger, 1, ++/*373066*/ OPC_CheckType, MVT::i32, ++/*373068*/ OPC_MoveParent, ++/*373069*/ OPC_MoveChild, 10, ++/*373071*/ OPC_CheckInteger, 1, ++/*373073*/ OPC_CheckType, MVT::i32, ++/*373075*/ OPC_MoveParent, ++/*373076*/ OPC_MoveChild, 11, ++/*373078*/ OPC_CheckInteger, 1, ++/*373080*/ OPC_CheckType, MVT::i32, ++/*373082*/ OPC_MoveParent, ++/*373083*/ OPC_MoveChild, 12, ++/*373085*/ OPC_CheckInteger, 1, ++/*373087*/ OPC_CheckType, MVT::i32, ++/*373089*/ OPC_MoveParent, ++/*373090*/ OPC_MoveChild, 13, ++/*373092*/ OPC_CheckInteger, 1, ++/*373094*/ OPC_CheckType, MVT::i32, ++/*373096*/ OPC_MoveParent, ++/*373097*/ OPC_MoveChild, 14, ++/*373099*/ OPC_CheckInteger, 1, ++/*373101*/ OPC_CheckType, MVT::i32, ++/*373103*/ OPC_MoveParent, ++/*373104*/ OPC_MoveChild, 15, ++/*373106*/ OPC_CheckInteger, 1, ++/*373108*/ OPC_CheckType, MVT::i32, ++/*373110*/ OPC_MoveParent, ++/*373111*/ OPC_CheckType, MVT::v16i8, ++/*373113*/ OPC_MoveParent, ++/*373114*/ OPC_CheckType, MVT::v16i8, ++/*373116*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*373118*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (VAVGR_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*373126*/ 0, /*End of Scope*/ ++/*373127*/ 0, /*End of Scope*/ ++/*373128*/ /*SwitchOpcode*/ 33|128,1|128,1/*16545*/, TARGET_VAL(ISD::ADD),// ->389678 ++/*373133*/ OPC_Scope, 102|128,21/*2790*/, /*->375926*/ // 4 children in Scope ++/*373136*/ OPC_MoveChild0, ++/*373137*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*373140*/ OPC_CheckChild0Integer, 1, ++/*373142*/ OPC_CheckChild0Type, MVT::i32, ++/*373144*/ OPC_CheckChild1Integer, 1, ++/*373146*/ OPC_CheckChild1Type, MVT::i32, ++/*373148*/ OPC_CheckChild2Integer, 1, ++/*373150*/ OPC_CheckChild2Type, MVT::i32, ++/*373152*/ OPC_CheckChild3Integer, 1, ++/*373154*/ OPC_CheckChild3Type, MVT::i32, ++/*373156*/ OPC_CheckChild4Integer, 1, ++/*373158*/ OPC_CheckChild4Type, MVT::i32, ++/*373160*/ OPC_MoveChild5, ++/*373161*/ OPC_CheckInteger, 1, ++/*373163*/ OPC_CheckType, MVT::i32, ++/*373165*/ OPC_MoveParent, ++/*373166*/ OPC_MoveChild6, ++/*373167*/ OPC_CheckInteger, 1, ++/*373169*/ OPC_CheckType, MVT::i32, ++/*373171*/ OPC_MoveParent, ++/*373172*/ OPC_MoveChild7, ++/*373173*/ OPC_CheckInteger, 1, ++/*373175*/ OPC_CheckType, MVT::i32, ++/*373177*/ OPC_MoveParent, ++/*373178*/ OPC_MoveChild, 8, ++/*373180*/ OPC_CheckInteger, 1, ++/*373182*/ OPC_CheckType, MVT::i32, ++/*373184*/ OPC_MoveParent, ++/*373185*/ OPC_MoveChild, 9, ++/*373187*/ OPC_CheckInteger, 1, ++/*373189*/ OPC_CheckType, MVT::i32, ++/*373191*/ OPC_MoveParent, ++/*373192*/ OPC_MoveChild, 10, ++/*373194*/ OPC_CheckInteger, 1, ++/*373196*/ OPC_CheckType, MVT::i32, ++/*373198*/ OPC_MoveParent, ++/*373199*/ OPC_MoveChild, 11, ++/*373201*/ OPC_CheckInteger, 1, ++/*373203*/ OPC_CheckType, MVT::i32, ++/*373205*/ OPC_MoveParent, ++/*373206*/ OPC_MoveChild, 12, ++/*373208*/ OPC_CheckInteger, 1, ++/*373210*/ OPC_CheckType, MVT::i32, ++/*373212*/ OPC_MoveParent, ++/*373213*/ OPC_MoveChild, 13, ++/*373215*/ OPC_CheckInteger, 1, ++/*373217*/ OPC_CheckType, MVT::i32, ++/*373219*/ OPC_MoveParent, ++/*373220*/ OPC_MoveChild, 14, ++/*373222*/ OPC_CheckInteger, 1, ++/*373224*/ OPC_CheckType, MVT::i32, ++/*373226*/ OPC_MoveParent, ++/*373227*/ OPC_MoveChild, 15, ++/*373229*/ OPC_CheckInteger, 1, ++/*373231*/ OPC_CheckType, MVT::i32, ++/*373233*/ OPC_MoveParent, ++/*373234*/ OPC_MoveParent, ++/*373235*/ OPC_RecordChild1, // #0 = $a ++/*373236*/ OPC_MoveParent, ++/*373237*/ OPC_RecordChild1, // #1 = $b ++/*373238*/ OPC_MoveParent, ++/*373239*/ OPC_MoveChild1, ++/*373240*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*373243*/ OPC_CheckChild0Integer, 15, ++/*373245*/ OPC_CheckChild0Type, MVT::i32, ++/*373247*/ OPC_CheckChild1Integer, 15, ++/*373249*/ OPC_CheckChild1Type, MVT::i32, ++/*373251*/ OPC_CheckChild2Integer, 15, ++/*373253*/ OPC_CheckChild2Type, MVT::i32, ++/*373255*/ OPC_CheckChild3Integer, 15, ++/*373257*/ OPC_CheckChild3Type, MVT::i32, ++/*373259*/ OPC_CheckChild4Integer, 15, ++/*373261*/ OPC_CheckChild4Type, MVT::i32, ++/*373263*/ OPC_MoveChild5, ++/*373264*/ OPC_CheckInteger, 15, ++/*373266*/ OPC_CheckType, MVT::i32, ++/*373268*/ OPC_MoveParent, ++/*373269*/ OPC_MoveChild6, ++/*373270*/ OPC_CheckInteger, 15, ++/*373272*/ OPC_CheckType, MVT::i32, ++/*373274*/ OPC_MoveParent, ++/*373275*/ OPC_MoveChild7, ++/*373276*/ OPC_CheckInteger, 15, ++/*373278*/ OPC_CheckType, MVT::i32, ++/*373280*/ OPC_MoveParent, ++/*373281*/ OPC_MoveChild, 8, ++/*373283*/ OPC_CheckInteger, 15, ++/*373285*/ OPC_CheckType, MVT::i32, ++/*373287*/ OPC_MoveParent, ++/*373288*/ OPC_MoveChild, 9, ++/*373290*/ OPC_CheckInteger, 15, ++/*373292*/ OPC_CheckType, MVT::i32, ++/*373294*/ OPC_MoveParent, ++/*373295*/ OPC_MoveChild, 10, ++/*373297*/ OPC_CheckInteger, 15, ++/*373299*/ OPC_CheckType, MVT::i32, ++/*373301*/ OPC_MoveParent, ++/*373302*/ OPC_MoveChild, 11, ++/*373304*/ OPC_CheckInteger, 15, ++/*373306*/ OPC_CheckType, MVT::i32, ++/*373308*/ OPC_MoveParent, ++/*373309*/ OPC_MoveChild, 12, ++/*373311*/ OPC_CheckInteger, 15, ++/*373313*/ OPC_CheckType, MVT::i32, ++/*373315*/ OPC_MoveParent, ++/*373316*/ OPC_MoveChild, 13, ++/*373318*/ OPC_CheckInteger, 15, ++/*373320*/ OPC_CheckType, MVT::i32, ++/*373322*/ OPC_MoveParent, ++/*373323*/ OPC_MoveChild, 14, ++/*373325*/ OPC_CheckInteger, 15, ++/*373327*/ OPC_CheckType, MVT::i32, ++/*373329*/ OPC_MoveParent, ++/*373330*/ OPC_MoveChild, 15, ++/*373332*/ OPC_CheckInteger, 15, ++/*373334*/ OPC_CheckType, MVT::i32, ++/*373336*/ OPC_MoveParent, ++/*373337*/ OPC_CheckType, MVT::v16i16, ++/*373339*/ OPC_MoveParent, ++/*373340*/ OPC_MoveParent, ++/*373341*/ OPC_MoveChild1, ++/*373342*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*373345*/ OPC_Scope, 52|128,10/*1332*/, /*->374680*/ // 4 children in Scope ++/*373348*/ OPC_MoveChild0, ++/*373349*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*373352*/ OPC_Scope, 91|128,1/*219*/, /*->373574*/ // 6 children in Scope ++/*373355*/ OPC_MoveChild0, ++/*373356*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*373359*/ OPC_CheckChild0Integer, 1, ++/*373361*/ OPC_CheckChild0Type, MVT::i32, ++/*373363*/ OPC_CheckChild1Integer, 1, ++/*373365*/ OPC_CheckChild1Type, MVT::i32, ++/*373367*/ OPC_CheckChild2Integer, 1, ++/*373369*/ OPC_CheckChild2Type, MVT::i32, ++/*373371*/ OPC_CheckChild3Integer, 1, ++/*373373*/ OPC_CheckChild3Type, MVT::i32, ++/*373375*/ OPC_CheckChild4Integer, 1, ++/*373377*/ OPC_CheckChild4Type, MVT::i32, ++/*373379*/ OPC_MoveChild5, ++/*373380*/ OPC_CheckInteger, 1, ++/*373382*/ OPC_CheckType, MVT::i32, ++/*373384*/ OPC_MoveParent, ++/*373385*/ OPC_MoveChild6, ++/*373386*/ OPC_CheckInteger, 1, ++/*373388*/ OPC_CheckType, MVT::i32, ++/*373390*/ OPC_MoveParent, ++/*373391*/ OPC_MoveChild7, ++/*373392*/ OPC_CheckInteger, 1, ++/*373394*/ OPC_CheckType, MVT::i32, ++/*373396*/ OPC_MoveParent, ++/*373397*/ OPC_MoveChild, 8, ++/*373399*/ OPC_CheckInteger, 1, ++/*373401*/ OPC_CheckType, MVT::i32, ++/*373403*/ OPC_MoveParent, ++/*373404*/ OPC_MoveChild, 9, ++/*373406*/ OPC_CheckInteger, 1, ++/*373408*/ OPC_CheckType, MVT::i32, ++/*373410*/ OPC_MoveParent, ++/*373411*/ OPC_MoveChild, 10, ++/*373413*/ OPC_CheckInteger, 1, ++/*373415*/ OPC_CheckType, MVT::i32, ++/*373417*/ OPC_MoveParent, ++/*373418*/ OPC_MoveChild, 11, ++/*373420*/ OPC_CheckInteger, 1, ++/*373422*/ OPC_CheckType, MVT::i32, ++/*373424*/ OPC_MoveParent, ++/*373425*/ OPC_MoveChild, 12, ++/*373427*/ OPC_CheckInteger, 1, ++/*373429*/ OPC_CheckType, MVT::i32, ++/*373431*/ OPC_MoveParent, ++/*373432*/ OPC_MoveChild, 13, ++/*373434*/ OPC_CheckInteger, 1, ++/*373436*/ OPC_CheckType, MVT::i32, ++/*373438*/ OPC_MoveParent, ++/*373439*/ OPC_MoveChild, 14, ++/*373441*/ OPC_CheckInteger, 1, ++/*373443*/ OPC_CheckType, MVT::i32, ++/*373445*/ OPC_MoveParent, ++/*373446*/ OPC_MoveChild, 15, ++/*373448*/ OPC_CheckInteger, 1, ++/*373450*/ OPC_CheckType, MVT::i32, ++/*373452*/ OPC_MoveParent, ++/*373453*/ OPC_MoveParent, ++/*373454*/ OPC_CheckChild1Same, 0, ++/*373456*/ OPC_MoveParent, ++/*373457*/ OPC_CheckChild1Same, 1, ++/*373459*/ OPC_MoveParent, ++/*373460*/ OPC_MoveParent, ++/*373461*/ OPC_MoveChild1, ++/*373462*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*373465*/ OPC_CheckChild0Integer, 1, ++/*373467*/ OPC_CheckChild0Type, MVT::i32, ++/*373469*/ OPC_CheckChild1Integer, 1, ++/*373471*/ OPC_CheckChild1Type, MVT::i32, ++/*373473*/ OPC_CheckChild2Integer, 1, ++/*373475*/ OPC_CheckChild2Type, MVT::i32, ++/*373477*/ OPC_CheckChild3Integer, 1, ++/*373479*/ OPC_CheckChild3Type, MVT::i32, ++/*373481*/ OPC_CheckChild4Integer, 1, ++/*373483*/ OPC_CheckChild4Type, MVT::i32, ++/*373485*/ OPC_MoveChild5, ++/*373486*/ OPC_CheckInteger, 1, ++/*373488*/ OPC_CheckType, MVT::i32, ++/*373490*/ OPC_MoveParent, ++/*373491*/ OPC_MoveChild6, ++/*373492*/ OPC_CheckInteger, 1, ++/*373494*/ OPC_CheckType, MVT::i32, ++/*373496*/ OPC_MoveParent, ++/*373497*/ OPC_MoveChild7, ++/*373498*/ OPC_CheckInteger, 1, ++/*373500*/ OPC_CheckType, MVT::i32, ++/*373502*/ OPC_MoveParent, ++/*373503*/ OPC_MoveChild, 8, ++/*373505*/ OPC_CheckInteger, 1, ++/*373507*/ OPC_CheckType, MVT::i32, ++/*373509*/ OPC_MoveParent, ++/*373510*/ OPC_MoveChild, 9, ++/*373512*/ OPC_CheckInteger, 1, ++/*373514*/ OPC_CheckType, MVT::i32, ++/*373516*/ OPC_MoveParent, ++/*373517*/ OPC_MoveChild, 10, ++/*373519*/ OPC_CheckInteger, 1, ++/*373521*/ OPC_CheckType, MVT::i32, ++/*373523*/ OPC_MoveParent, ++/*373524*/ OPC_MoveChild, 11, ++/*373526*/ OPC_CheckInteger, 1, ++/*373528*/ OPC_CheckType, MVT::i32, ++/*373530*/ OPC_MoveParent, ++/*373531*/ OPC_MoveChild, 12, ++/*373533*/ OPC_CheckInteger, 1, ++/*373535*/ OPC_CheckType, MVT::i32, ++/*373537*/ OPC_MoveParent, ++/*373538*/ OPC_MoveChild, 13, ++/*373540*/ OPC_CheckInteger, 1, ++/*373542*/ OPC_CheckType, MVT::i32, ++/*373544*/ OPC_MoveParent, ++/*373545*/ OPC_MoveChild, 14, ++/*373547*/ OPC_CheckInteger, 1, ++/*373549*/ OPC_CheckType, MVT::i32, ++/*373551*/ OPC_MoveParent, ++/*373552*/ OPC_MoveChild, 15, ++/*373554*/ OPC_CheckInteger, 1, ++/*373556*/ OPC_CheckType, MVT::i32, ++/*373558*/ OPC_MoveParent, ++/*373559*/ OPC_CheckType, MVT::v16i16, ++/*373561*/ OPC_MoveParent, ++/*373562*/ OPC_CheckType, MVT::v16i16, ++/*373564*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*373566*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a), LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a), LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*373574*/ /*Scope*/ 91|128,1/*219*/, /*->373795*/ ++/*373576*/ OPC_CheckChild0Same, 0, ++/*373578*/ OPC_MoveChild1, ++/*373579*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*373582*/ OPC_CheckChild0Integer, 1, ++/*373584*/ OPC_CheckChild0Type, MVT::i32, ++/*373586*/ OPC_CheckChild1Integer, 1, ++/*373588*/ OPC_CheckChild1Type, MVT::i32, ++/*373590*/ OPC_CheckChild2Integer, 1, ++/*373592*/ OPC_CheckChild2Type, MVT::i32, ++/*373594*/ OPC_CheckChild3Integer, 1, ++/*373596*/ OPC_CheckChild3Type, MVT::i32, ++/*373598*/ OPC_CheckChild4Integer, 1, ++/*373600*/ OPC_CheckChild4Type, MVT::i32, ++/*373602*/ OPC_MoveChild5, ++/*373603*/ OPC_CheckInteger, 1, ++/*373605*/ OPC_CheckType, MVT::i32, ++/*373607*/ OPC_MoveParent, ++/*373608*/ OPC_MoveChild6, ++/*373609*/ OPC_CheckInteger, 1, ++/*373611*/ OPC_CheckType, MVT::i32, ++/*373613*/ OPC_MoveParent, ++/*373614*/ OPC_MoveChild7, ++/*373615*/ OPC_CheckInteger, 1, ++/*373617*/ OPC_CheckType, MVT::i32, ++/*373619*/ OPC_MoveParent, ++/*373620*/ OPC_MoveChild, 8, ++/*373622*/ OPC_CheckInteger, 1, ++/*373624*/ OPC_CheckType, MVT::i32, ++/*373626*/ OPC_MoveParent, ++/*373627*/ OPC_MoveChild, 9, ++/*373629*/ OPC_CheckInteger, 1, ++/*373631*/ OPC_CheckType, MVT::i32, ++/*373633*/ OPC_MoveParent, ++/*373634*/ OPC_MoveChild, 10, ++/*373636*/ OPC_CheckInteger, 1, ++/*373638*/ OPC_CheckType, MVT::i32, ++/*373640*/ OPC_MoveParent, ++/*373641*/ OPC_MoveChild, 11, ++/*373643*/ OPC_CheckInteger, 1, ++/*373645*/ OPC_CheckType, MVT::i32, ++/*373647*/ OPC_MoveParent, ++/*373648*/ OPC_MoveChild, 12, ++/*373650*/ OPC_CheckInteger, 1, ++/*373652*/ OPC_CheckType, MVT::i32, ++/*373654*/ OPC_MoveParent, ++/*373655*/ OPC_MoveChild, 13, ++/*373657*/ OPC_CheckInteger, 1, ++/*373659*/ OPC_CheckType, MVT::i32, ++/*373661*/ OPC_MoveParent, ++/*373662*/ OPC_MoveChild, 14, ++/*373664*/ OPC_CheckInteger, 1, ++/*373666*/ OPC_CheckType, MVT::i32, ++/*373668*/ OPC_MoveParent, ++/*373669*/ OPC_MoveChild, 15, ++/*373671*/ OPC_CheckInteger, 1, ++/*373673*/ OPC_CheckType, MVT::i32, ++/*373675*/ OPC_MoveParent, ++/*373676*/ OPC_MoveParent, ++/*373677*/ OPC_MoveParent, ++/*373678*/ OPC_CheckChild1Same, 1, ++/*373680*/ OPC_MoveParent, ++/*373681*/ OPC_MoveParent, ++/*373682*/ OPC_MoveChild1, ++/*373683*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*373686*/ OPC_CheckChild0Integer, 1, ++/*373688*/ OPC_CheckChild0Type, MVT::i32, ++/*373690*/ OPC_CheckChild1Integer, 1, ++/*373692*/ OPC_CheckChild1Type, MVT::i32, ++/*373694*/ OPC_CheckChild2Integer, 1, ++/*373696*/ OPC_CheckChild2Type, MVT::i32, ++/*373698*/ OPC_CheckChild3Integer, 1, ++/*373700*/ OPC_CheckChild3Type, MVT::i32, ++/*373702*/ OPC_CheckChild4Integer, 1, ++/*373704*/ OPC_CheckChild4Type, MVT::i32, ++/*373706*/ OPC_MoveChild5, ++/*373707*/ OPC_CheckInteger, 1, ++/*373709*/ OPC_CheckType, MVT::i32, ++/*373711*/ OPC_MoveParent, ++/*373712*/ OPC_MoveChild6, ++/*373713*/ OPC_CheckInteger, 1, ++/*373715*/ OPC_CheckType, MVT::i32, ++/*373717*/ OPC_MoveParent, ++/*373718*/ OPC_MoveChild7, ++/*373719*/ OPC_CheckInteger, 1, ++/*373721*/ OPC_CheckType, MVT::i32, ++/*373723*/ OPC_MoveParent, ++/*373724*/ OPC_MoveChild, 8, ++/*373726*/ OPC_CheckInteger, 1, ++/*373728*/ OPC_CheckType, MVT::i32, ++/*373730*/ OPC_MoveParent, ++/*373731*/ OPC_MoveChild, 9, ++/*373733*/ OPC_CheckInteger, 1, ++/*373735*/ OPC_CheckType, MVT::i32, ++/*373737*/ OPC_MoveParent, ++/*373738*/ OPC_MoveChild, 10, ++/*373740*/ OPC_CheckInteger, 1, ++/*373742*/ OPC_CheckType, MVT::i32, ++/*373744*/ OPC_MoveParent, ++/*373745*/ OPC_MoveChild, 11, ++/*373747*/ OPC_CheckInteger, 1, ++/*373749*/ OPC_CheckType, MVT::i32, ++/*373751*/ OPC_MoveParent, ++/*373752*/ OPC_MoveChild, 12, ++/*373754*/ OPC_CheckInteger, 1, ++/*373756*/ OPC_CheckType, MVT::i32, ++/*373758*/ OPC_MoveParent, ++/*373759*/ OPC_MoveChild, 13, ++/*373761*/ OPC_CheckInteger, 1, ++/*373763*/ OPC_CheckType, MVT::i32, ++/*373765*/ OPC_MoveParent, ++/*373766*/ OPC_MoveChild, 14, ++/*373768*/ OPC_CheckInteger, 1, ++/*373770*/ OPC_CheckType, MVT::i32, ++/*373772*/ OPC_MoveParent, ++/*373773*/ OPC_MoveChild, 15, ++/*373775*/ OPC_CheckInteger, 1, ++/*373777*/ OPC_CheckType, MVT::i32, ++/*373779*/ OPC_MoveParent, ++/*373780*/ OPC_CheckType, MVT::v16i16, ++/*373782*/ OPC_MoveParent, ++/*373783*/ OPC_CheckType, MVT::v16i16, ++/*373785*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*373787*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a), LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*373795*/ /*Scope*/ 91|128,1/*219*/, /*->374016*/ ++/*373797*/ OPC_MoveChild0, ++/*373798*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*373801*/ OPC_CheckChild0Integer, 1, ++/*373803*/ OPC_CheckChild0Type, MVT::i32, ++/*373805*/ OPC_CheckChild1Integer, 1, ++/*373807*/ OPC_CheckChild1Type, MVT::i32, ++/*373809*/ OPC_CheckChild2Integer, 1, ++/*373811*/ OPC_CheckChild2Type, MVT::i32, ++/*373813*/ OPC_CheckChild3Integer, 1, ++/*373815*/ OPC_CheckChild3Type, MVT::i32, ++/*373817*/ OPC_CheckChild4Integer, 1, ++/*373819*/ OPC_CheckChild4Type, MVT::i32, ++/*373821*/ OPC_MoveChild5, ++/*373822*/ OPC_CheckInteger, 1, ++/*373824*/ OPC_CheckType, MVT::i32, ++/*373826*/ OPC_MoveParent, ++/*373827*/ OPC_MoveChild6, ++/*373828*/ OPC_CheckInteger, 1, ++/*373830*/ OPC_CheckType, MVT::i32, ++/*373832*/ OPC_MoveParent, ++/*373833*/ OPC_MoveChild7, ++/*373834*/ OPC_CheckInteger, 1, ++/*373836*/ OPC_CheckType, MVT::i32, ++/*373838*/ OPC_MoveParent, ++/*373839*/ OPC_MoveChild, 8, ++/*373841*/ OPC_CheckInteger, 1, ++/*373843*/ OPC_CheckType, MVT::i32, ++/*373845*/ OPC_MoveParent, ++/*373846*/ OPC_MoveChild, 9, ++/*373848*/ OPC_CheckInteger, 1, ++/*373850*/ OPC_CheckType, MVT::i32, ++/*373852*/ OPC_MoveParent, ++/*373853*/ OPC_MoveChild, 10, ++/*373855*/ OPC_CheckInteger, 1, ++/*373857*/ OPC_CheckType, MVT::i32, ++/*373859*/ OPC_MoveParent, ++/*373860*/ OPC_MoveChild, 11, ++/*373862*/ OPC_CheckInteger, 1, ++/*373864*/ OPC_CheckType, MVT::i32, ++/*373866*/ OPC_MoveParent, ++/*373867*/ OPC_MoveChild, 12, ++/*373869*/ OPC_CheckInteger, 1, ++/*373871*/ OPC_CheckType, MVT::i32, ++/*373873*/ OPC_MoveParent, ++/*373874*/ OPC_MoveChild, 13, ++/*373876*/ OPC_CheckInteger, 1, ++/*373878*/ OPC_CheckType, MVT::i32, ++/*373880*/ OPC_MoveParent, ++/*373881*/ OPC_MoveChild, 14, ++/*373883*/ OPC_CheckInteger, 1, ++/*373885*/ OPC_CheckType, MVT::i32, ++/*373887*/ OPC_MoveParent, ++/*373888*/ OPC_MoveChild, 15, ++/*373890*/ OPC_CheckInteger, 1, ++/*373892*/ OPC_CheckType, MVT::i32, ++/*373894*/ OPC_MoveParent, ++/*373895*/ OPC_MoveParent, ++/*373896*/ OPC_CheckChild1Same, 1, ++/*373898*/ OPC_MoveParent, ++/*373899*/ OPC_CheckChild1Same, 0, ++/*373901*/ OPC_MoveParent, ++/*373902*/ OPC_MoveParent, ++/*373903*/ OPC_MoveChild1, ++/*373904*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*373907*/ OPC_CheckChild0Integer, 1, ++/*373909*/ OPC_CheckChild0Type, MVT::i32, ++/*373911*/ OPC_CheckChild1Integer, 1, ++/*373913*/ OPC_CheckChild1Type, MVT::i32, ++/*373915*/ OPC_CheckChild2Integer, 1, ++/*373917*/ OPC_CheckChild2Type, MVT::i32, ++/*373919*/ OPC_CheckChild3Integer, 1, ++/*373921*/ OPC_CheckChild3Type, MVT::i32, ++/*373923*/ OPC_CheckChild4Integer, 1, ++/*373925*/ OPC_CheckChild4Type, MVT::i32, ++/*373927*/ OPC_MoveChild5, ++/*373928*/ OPC_CheckInteger, 1, ++/*373930*/ OPC_CheckType, MVT::i32, ++/*373932*/ OPC_MoveParent, ++/*373933*/ OPC_MoveChild6, ++/*373934*/ OPC_CheckInteger, 1, ++/*373936*/ OPC_CheckType, MVT::i32, ++/*373938*/ OPC_MoveParent, ++/*373939*/ OPC_MoveChild7, ++/*373940*/ OPC_CheckInteger, 1, ++/*373942*/ OPC_CheckType, MVT::i32, ++/*373944*/ OPC_MoveParent, ++/*373945*/ OPC_MoveChild, 8, ++/*373947*/ OPC_CheckInteger, 1, ++/*373949*/ OPC_CheckType, MVT::i32, ++/*373951*/ OPC_MoveParent, ++/*373952*/ OPC_MoveChild, 9, ++/*373954*/ OPC_CheckInteger, 1, ++/*373956*/ OPC_CheckType, MVT::i32, ++/*373958*/ OPC_MoveParent, ++/*373959*/ OPC_MoveChild, 10, ++/*373961*/ OPC_CheckInteger, 1, ++/*373963*/ OPC_CheckType, MVT::i32, ++/*373965*/ OPC_MoveParent, ++/*373966*/ OPC_MoveChild, 11, ++/*373968*/ OPC_CheckInteger, 1, ++/*373970*/ OPC_CheckType, MVT::i32, ++/*373972*/ OPC_MoveParent, ++/*373973*/ OPC_MoveChild, 12, ++/*373975*/ OPC_CheckInteger, 1, ++/*373977*/ OPC_CheckType, MVT::i32, ++/*373979*/ OPC_MoveParent, ++/*373980*/ OPC_MoveChild, 13, ++/*373982*/ OPC_CheckInteger, 1, ++/*373984*/ OPC_CheckType, MVT::i32, ++/*373986*/ OPC_MoveParent, ++/*373987*/ OPC_MoveChild, 14, ++/*373989*/ OPC_CheckInteger, 1, ++/*373991*/ OPC_CheckType, MVT::i32, ++/*373993*/ OPC_MoveParent, ++/*373994*/ OPC_MoveChild, 15, ++/*373996*/ OPC_CheckInteger, 1, ++/*373998*/ OPC_CheckType, MVT::i32, ++/*374000*/ OPC_MoveParent, ++/*374001*/ OPC_CheckType, MVT::v16i16, ++/*374003*/ OPC_MoveParent, ++/*374004*/ OPC_CheckType, MVT::v16i16, ++/*374006*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*374008*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a), LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b), LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*374016*/ /*Scope*/ 91|128,1/*219*/, /*->374237*/ ++/*374018*/ OPC_CheckChild0Same, 1, ++/*374020*/ OPC_MoveChild1, ++/*374021*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*374024*/ OPC_CheckChild0Integer, 1, ++/*374026*/ OPC_CheckChild0Type, MVT::i32, ++/*374028*/ OPC_CheckChild1Integer, 1, ++/*374030*/ OPC_CheckChild1Type, MVT::i32, ++/*374032*/ OPC_CheckChild2Integer, 1, ++/*374034*/ OPC_CheckChild2Type, MVT::i32, ++/*374036*/ OPC_CheckChild3Integer, 1, ++/*374038*/ OPC_CheckChild3Type, MVT::i32, ++/*374040*/ OPC_CheckChild4Integer, 1, ++/*374042*/ OPC_CheckChild4Type, MVT::i32, ++/*374044*/ OPC_MoveChild5, ++/*374045*/ OPC_CheckInteger, 1, ++/*374047*/ OPC_CheckType, MVT::i32, ++/*374049*/ OPC_MoveParent, ++/*374050*/ OPC_MoveChild6, ++/*374051*/ OPC_CheckInteger, 1, ++/*374053*/ OPC_CheckType, MVT::i32, ++/*374055*/ OPC_MoveParent, ++/*374056*/ OPC_MoveChild7, ++/*374057*/ OPC_CheckInteger, 1, ++/*374059*/ OPC_CheckType, MVT::i32, ++/*374061*/ OPC_MoveParent, ++/*374062*/ OPC_MoveChild, 8, ++/*374064*/ OPC_CheckInteger, 1, ++/*374066*/ OPC_CheckType, MVT::i32, ++/*374068*/ OPC_MoveParent, ++/*374069*/ OPC_MoveChild, 9, ++/*374071*/ OPC_CheckInteger, 1, ++/*374073*/ OPC_CheckType, MVT::i32, ++/*374075*/ OPC_MoveParent, ++/*374076*/ OPC_MoveChild, 10, ++/*374078*/ OPC_CheckInteger, 1, ++/*374080*/ OPC_CheckType, MVT::i32, ++/*374082*/ OPC_MoveParent, ++/*374083*/ OPC_MoveChild, 11, ++/*374085*/ OPC_CheckInteger, 1, ++/*374087*/ OPC_CheckType, MVT::i32, ++/*374089*/ OPC_MoveParent, ++/*374090*/ OPC_MoveChild, 12, ++/*374092*/ OPC_CheckInteger, 1, ++/*374094*/ OPC_CheckType, MVT::i32, ++/*374096*/ OPC_MoveParent, ++/*374097*/ OPC_MoveChild, 13, ++/*374099*/ OPC_CheckInteger, 1, ++/*374101*/ OPC_CheckType, MVT::i32, ++/*374103*/ OPC_MoveParent, ++/*374104*/ OPC_MoveChild, 14, ++/*374106*/ OPC_CheckInteger, 1, ++/*374108*/ OPC_CheckType, MVT::i32, ++/*374110*/ OPC_MoveParent, ++/*374111*/ OPC_MoveChild, 15, ++/*374113*/ OPC_CheckInteger, 1, ++/*374115*/ OPC_CheckType, MVT::i32, ++/*374117*/ OPC_MoveParent, ++/*374118*/ OPC_MoveParent, ++/*374119*/ OPC_MoveParent, ++/*374120*/ OPC_CheckChild1Same, 0, ++/*374122*/ OPC_MoveParent, ++/*374123*/ OPC_MoveParent, ++/*374124*/ OPC_MoveChild1, ++/*374125*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*374128*/ OPC_CheckChild0Integer, 1, ++/*374130*/ OPC_CheckChild0Type, MVT::i32, ++/*374132*/ OPC_CheckChild1Integer, 1, ++/*374134*/ OPC_CheckChild1Type, MVT::i32, ++/*374136*/ OPC_CheckChild2Integer, 1, ++/*374138*/ OPC_CheckChild2Type, MVT::i32, ++/*374140*/ OPC_CheckChild3Integer, 1, ++/*374142*/ OPC_CheckChild3Type, MVT::i32, ++/*374144*/ OPC_CheckChild4Integer, 1, ++/*374146*/ OPC_CheckChild4Type, MVT::i32, ++/*374148*/ OPC_MoveChild5, ++/*374149*/ OPC_CheckInteger, 1, ++/*374151*/ OPC_CheckType, MVT::i32, ++/*374153*/ OPC_MoveParent, ++/*374154*/ OPC_MoveChild6, ++/*374155*/ OPC_CheckInteger, 1, ++/*374157*/ OPC_CheckType, MVT::i32, ++/*374159*/ OPC_MoveParent, ++/*374160*/ OPC_MoveChild7, ++/*374161*/ OPC_CheckInteger, 1, ++/*374163*/ OPC_CheckType, MVT::i32, ++/*374165*/ OPC_MoveParent, ++/*374166*/ OPC_MoveChild, 8, ++/*374168*/ OPC_CheckInteger, 1, ++/*374170*/ OPC_CheckType, MVT::i32, ++/*374172*/ OPC_MoveParent, ++/*374173*/ OPC_MoveChild, 9, ++/*374175*/ OPC_CheckInteger, 1, ++/*374177*/ OPC_CheckType, MVT::i32, ++/*374179*/ OPC_MoveParent, ++/*374180*/ OPC_MoveChild, 10, ++/*374182*/ OPC_CheckInteger, 1, ++/*374184*/ OPC_CheckType, MVT::i32, ++/*374186*/ OPC_MoveParent, ++/*374187*/ OPC_MoveChild, 11, ++/*374189*/ OPC_CheckInteger, 1, ++/*374191*/ OPC_CheckType, MVT::i32, ++/*374193*/ OPC_MoveParent, ++/*374194*/ OPC_MoveChild, 12, ++/*374196*/ OPC_CheckInteger, 1, ++/*374198*/ OPC_CheckType, MVT::i32, ++/*374200*/ OPC_MoveParent, ++/*374201*/ OPC_MoveChild, 13, ++/*374203*/ OPC_CheckInteger, 1, ++/*374205*/ OPC_CheckType, MVT::i32, ++/*374207*/ OPC_MoveParent, ++/*374208*/ OPC_MoveChild, 14, ++/*374210*/ OPC_CheckInteger, 1, ++/*374212*/ OPC_CheckType, MVT::i32, ++/*374214*/ OPC_MoveParent, ++/*374215*/ OPC_MoveChild, 15, ++/*374217*/ OPC_CheckInteger, 1, ++/*374219*/ OPC_CheckType, MVT::i32, ++/*374221*/ OPC_MoveParent, ++/*374222*/ OPC_CheckType, MVT::v16i16, ++/*374224*/ OPC_MoveParent, ++/*374225*/ OPC_CheckType, MVT::v16i16, ++/*374227*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*374229*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a), LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*374237*/ /*Scope*/ 91|128,1/*219*/, /*->374458*/ ++/*374239*/ OPC_CheckChild0Same, 0, ++/*374241*/ OPC_CheckChild1Same, 1, ++/*374243*/ OPC_MoveParent, ++/*374244*/ OPC_MoveChild1, ++/*374245*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*374248*/ OPC_CheckChild0Integer, 1, ++/*374250*/ OPC_CheckChild0Type, MVT::i32, ++/*374252*/ OPC_CheckChild1Integer, 1, ++/*374254*/ OPC_CheckChild1Type, MVT::i32, ++/*374256*/ OPC_CheckChild2Integer, 1, ++/*374258*/ OPC_CheckChild2Type, MVT::i32, ++/*374260*/ OPC_CheckChild3Integer, 1, ++/*374262*/ OPC_CheckChild3Type, MVT::i32, ++/*374264*/ OPC_CheckChild4Integer, 1, ++/*374266*/ OPC_CheckChild4Type, MVT::i32, ++/*374268*/ OPC_MoveChild5, ++/*374269*/ OPC_CheckInteger, 1, ++/*374271*/ OPC_CheckType, MVT::i32, ++/*374273*/ OPC_MoveParent, ++/*374274*/ OPC_MoveChild6, ++/*374275*/ OPC_CheckInteger, 1, ++/*374277*/ OPC_CheckType, MVT::i32, ++/*374279*/ OPC_MoveParent, ++/*374280*/ OPC_MoveChild7, ++/*374281*/ OPC_CheckInteger, 1, ++/*374283*/ OPC_CheckType, MVT::i32, ++/*374285*/ OPC_MoveParent, ++/*374286*/ OPC_MoveChild, 8, ++/*374288*/ OPC_CheckInteger, 1, ++/*374290*/ OPC_CheckType, MVT::i32, ++/*374292*/ OPC_MoveParent, ++/*374293*/ OPC_MoveChild, 9, ++/*374295*/ OPC_CheckInteger, 1, ++/*374297*/ OPC_CheckType, MVT::i32, ++/*374299*/ OPC_MoveParent, ++/*374300*/ OPC_MoveChild, 10, ++/*374302*/ OPC_CheckInteger, 1, ++/*374304*/ OPC_CheckType, MVT::i32, ++/*374306*/ OPC_MoveParent, ++/*374307*/ OPC_MoveChild, 11, ++/*374309*/ OPC_CheckInteger, 1, ++/*374311*/ OPC_CheckType, MVT::i32, ++/*374313*/ OPC_MoveParent, ++/*374314*/ OPC_MoveChild, 12, ++/*374316*/ OPC_CheckInteger, 1, ++/*374318*/ OPC_CheckType, MVT::i32, ++/*374320*/ OPC_MoveParent, ++/*374321*/ OPC_MoveChild, 13, ++/*374323*/ OPC_CheckInteger, 1, ++/*374325*/ OPC_CheckType, MVT::i32, ++/*374327*/ OPC_MoveParent, ++/*374328*/ OPC_MoveChild, 14, ++/*374330*/ OPC_CheckInteger, 1, ++/*374332*/ OPC_CheckType, MVT::i32, ++/*374334*/ OPC_MoveParent, ++/*374335*/ OPC_MoveChild, 15, ++/*374337*/ OPC_CheckInteger, 1, ++/*374339*/ OPC_CheckType, MVT::i32, ++/*374341*/ OPC_MoveParent, ++/*374342*/ OPC_MoveParent, ++/*374343*/ OPC_MoveParent, ++/*374344*/ OPC_MoveParent, ++/*374345*/ OPC_MoveChild1, ++/*374346*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*374349*/ OPC_CheckChild0Integer, 1, ++/*374351*/ OPC_CheckChild0Type, MVT::i32, ++/*374353*/ OPC_CheckChild1Integer, 1, ++/*374355*/ OPC_CheckChild1Type, MVT::i32, ++/*374357*/ OPC_CheckChild2Integer, 1, ++/*374359*/ OPC_CheckChild2Type, MVT::i32, ++/*374361*/ OPC_CheckChild3Integer, 1, ++/*374363*/ OPC_CheckChild3Type, MVT::i32, ++/*374365*/ OPC_CheckChild4Integer, 1, ++/*374367*/ OPC_CheckChild4Type, MVT::i32, ++/*374369*/ OPC_MoveChild5, ++/*374370*/ OPC_CheckInteger, 1, ++/*374372*/ OPC_CheckType, MVT::i32, ++/*374374*/ OPC_MoveParent, ++/*374375*/ OPC_MoveChild6, ++/*374376*/ OPC_CheckInteger, 1, ++/*374378*/ OPC_CheckType, MVT::i32, ++/*374380*/ OPC_MoveParent, ++/*374381*/ OPC_MoveChild7, ++/*374382*/ OPC_CheckInteger, 1, ++/*374384*/ OPC_CheckType, MVT::i32, ++/*374386*/ OPC_MoveParent, ++/*374387*/ OPC_MoveChild, 8, ++/*374389*/ OPC_CheckInteger, 1, ++/*374391*/ OPC_CheckType, MVT::i32, ++/*374393*/ OPC_MoveParent, ++/*374394*/ OPC_MoveChild, 9, ++/*374396*/ OPC_CheckInteger, 1, ++/*374398*/ OPC_CheckType, MVT::i32, ++/*374400*/ OPC_MoveParent, ++/*374401*/ OPC_MoveChild, 10, ++/*374403*/ OPC_CheckInteger, 1, ++/*374405*/ OPC_CheckType, MVT::i32, ++/*374407*/ OPC_MoveParent, ++/*374408*/ OPC_MoveChild, 11, ++/*374410*/ OPC_CheckInteger, 1, ++/*374412*/ OPC_CheckType, MVT::i32, ++/*374414*/ OPC_MoveParent, ++/*374415*/ OPC_MoveChild, 12, ++/*374417*/ OPC_CheckInteger, 1, ++/*374419*/ OPC_CheckType, MVT::i32, ++/*374421*/ OPC_MoveParent, ++/*374422*/ OPC_MoveChild, 13, ++/*374424*/ OPC_CheckInteger, 1, ++/*374426*/ OPC_CheckType, MVT::i32, ++/*374428*/ OPC_MoveParent, ++/*374429*/ OPC_MoveChild, 14, ++/*374431*/ OPC_CheckInteger, 1, ++/*374433*/ OPC_CheckType, MVT::i32, ++/*374435*/ OPC_MoveParent, ++/*374436*/ OPC_MoveChild, 15, ++/*374438*/ OPC_CheckInteger, 1, ++/*374440*/ OPC_CheckType, MVT::i32, ++/*374442*/ OPC_MoveParent, ++/*374443*/ OPC_CheckType, MVT::v16i16, ++/*374445*/ OPC_MoveParent, ++/*374446*/ OPC_CheckType, MVT::v16i16, ++/*374448*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*374450*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a), LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*374458*/ /*Scope*/ 91|128,1/*219*/, /*->374679*/ ++/*374460*/ OPC_CheckChild0Same, 1, ++/*374462*/ OPC_CheckChild1Same, 0, ++/*374464*/ OPC_MoveParent, ++/*374465*/ OPC_MoveChild1, ++/*374466*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*374469*/ OPC_CheckChild0Integer, 1, ++/*374471*/ OPC_CheckChild0Type, MVT::i32, ++/*374473*/ OPC_CheckChild1Integer, 1, ++/*374475*/ OPC_CheckChild1Type, MVT::i32, ++/*374477*/ OPC_CheckChild2Integer, 1, ++/*374479*/ OPC_CheckChild2Type, MVT::i32, ++/*374481*/ OPC_CheckChild3Integer, 1, ++/*374483*/ OPC_CheckChild3Type, MVT::i32, ++/*374485*/ OPC_CheckChild4Integer, 1, ++/*374487*/ OPC_CheckChild4Type, MVT::i32, ++/*374489*/ OPC_MoveChild5, ++/*374490*/ OPC_CheckInteger, 1, ++/*374492*/ OPC_CheckType, MVT::i32, ++/*374494*/ OPC_MoveParent, ++/*374495*/ OPC_MoveChild6, ++/*374496*/ OPC_CheckInteger, 1, ++/*374498*/ OPC_CheckType, MVT::i32, ++/*374500*/ OPC_MoveParent, ++/*374501*/ OPC_MoveChild7, ++/*374502*/ OPC_CheckInteger, 1, ++/*374504*/ OPC_CheckType, MVT::i32, ++/*374506*/ OPC_MoveParent, ++/*374507*/ OPC_MoveChild, 8, ++/*374509*/ OPC_CheckInteger, 1, ++/*374511*/ OPC_CheckType, MVT::i32, ++/*374513*/ OPC_MoveParent, ++/*374514*/ OPC_MoveChild, 9, ++/*374516*/ OPC_CheckInteger, 1, ++/*374518*/ OPC_CheckType, MVT::i32, ++/*374520*/ OPC_MoveParent, ++/*374521*/ OPC_MoveChild, 10, ++/*374523*/ OPC_CheckInteger, 1, ++/*374525*/ OPC_CheckType, MVT::i32, ++/*374527*/ OPC_MoveParent, ++/*374528*/ OPC_MoveChild, 11, ++/*374530*/ OPC_CheckInteger, 1, ++/*374532*/ OPC_CheckType, MVT::i32, ++/*374534*/ OPC_MoveParent, ++/*374535*/ OPC_MoveChild, 12, ++/*374537*/ OPC_CheckInteger, 1, ++/*374539*/ OPC_CheckType, MVT::i32, ++/*374541*/ OPC_MoveParent, ++/*374542*/ OPC_MoveChild, 13, ++/*374544*/ OPC_CheckInteger, 1, ++/*374546*/ OPC_CheckType, MVT::i32, ++/*374548*/ OPC_MoveParent, ++/*374549*/ OPC_MoveChild, 14, ++/*374551*/ OPC_CheckInteger, 1, ++/*374553*/ OPC_CheckType, MVT::i32, ++/*374555*/ OPC_MoveParent, ++/*374556*/ OPC_MoveChild, 15, ++/*374558*/ OPC_CheckInteger, 1, ++/*374560*/ OPC_CheckType, MVT::i32, ++/*374562*/ OPC_MoveParent, ++/*374563*/ OPC_MoveParent, ++/*374564*/ OPC_MoveParent, ++/*374565*/ OPC_MoveParent, ++/*374566*/ OPC_MoveChild1, ++/*374567*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*374570*/ OPC_CheckChild0Integer, 1, ++/*374572*/ OPC_CheckChild0Type, MVT::i32, ++/*374574*/ OPC_CheckChild1Integer, 1, ++/*374576*/ OPC_CheckChild1Type, MVT::i32, ++/*374578*/ OPC_CheckChild2Integer, 1, ++/*374580*/ OPC_CheckChild2Type, MVT::i32, ++/*374582*/ OPC_CheckChild3Integer, 1, ++/*374584*/ OPC_CheckChild3Type, MVT::i32, ++/*374586*/ OPC_CheckChild4Integer, 1, ++/*374588*/ OPC_CheckChild4Type, MVT::i32, ++/*374590*/ OPC_MoveChild5, ++/*374591*/ OPC_CheckInteger, 1, ++/*374593*/ OPC_CheckType, MVT::i32, ++/*374595*/ OPC_MoveParent, ++/*374596*/ OPC_MoveChild6, ++/*374597*/ OPC_CheckInteger, 1, ++/*374599*/ OPC_CheckType, MVT::i32, ++/*374601*/ OPC_MoveParent, ++/*374602*/ OPC_MoveChild7, ++/*374603*/ OPC_CheckInteger, 1, ++/*374605*/ OPC_CheckType, MVT::i32, ++/*374607*/ OPC_MoveParent, ++/*374608*/ OPC_MoveChild, 8, ++/*374610*/ OPC_CheckInteger, 1, ++/*374612*/ OPC_CheckType, MVT::i32, ++/*374614*/ OPC_MoveParent, ++/*374615*/ OPC_MoveChild, 9, ++/*374617*/ OPC_CheckInteger, 1, ++/*374619*/ OPC_CheckType, MVT::i32, ++/*374621*/ OPC_MoveParent, ++/*374622*/ OPC_MoveChild, 10, ++/*374624*/ OPC_CheckInteger, 1, ++/*374626*/ OPC_CheckType, MVT::i32, ++/*374628*/ OPC_MoveParent, ++/*374629*/ OPC_MoveChild, 11, ++/*374631*/ OPC_CheckInteger, 1, ++/*374633*/ OPC_CheckType, MVT::i32, ++/*374635*/ OPC_MoveParent, ++/*374636*/ OPC_MoveChild, 12, ++/*374638*/ OPC_CheckInteger, 1, ++/*374640*/ OPC_CheckType, MVT::i32, ++/*374642*/ OPC_MoveParent, ++/*374643*/ OPC_MoveChild, 13, ++/*374645*/ OPC_CheckInteger, 1, ++/*374647*/ OPC_CheckType, MVT::i32, ++/*374649*/ OPC_MoveParent, ++/*374650*/ OPC_MoveChild, 14, ++/*374652*/ OPC_CheckInteger, 1, ++/*374654*/ OPC_CheckType, MVT::i32, ++/*374656*/ OPC_MoveParent, ++/*374657*/ OPC_MoveChild, 15, ++/*374659*/ OPC_CheckInteger, 1, ++/*374661*/ OPC_CheckType, MVT::i32, ++/*374663*/ OPC_MoveParent, ++/*374664*/ OPC_CheckType, MVT::v16i16, ++/*374666*/ OPC_MoveParent, ++/*374667*/ OPC_CheckType, MVT::v16i16, ++/*374669*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*374671*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a), LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*374679*/ 0, /*End of Scope*/ ++/*374680*/ /*Scope*/ 62|128,3/*446*/, /*->375128*/ ++/*374682*/ OPC_CheckChild0Same, 1, ++/*374684*/ OPC_MoveChild1, ++/*374685*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*374688*/ OPC_Scope, 89|128,1/*217*/, /*->374908*/ // 2 children in Scope ++/*374691*/ OPC_MoveChild0, ++/*374692*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*374695*/ OPC_CheckChild0Integer, 1, ++/*374697*/ OPC_CheckChild0Type, MVT::i32, ++/*374699*/ OPC_CheckChild1Integer, 1, ++/*374701*/ OPC_CheckChild1Type, MVT::i32, ++/*374703*/ OPC_CheckChild2Integer, 1, ++/*374705*/ OPC_CheckChild2Type, MVT::i32, ++/*374707*/ OPC_CheckChild3Integer, 1, ++/*374709*/ OPC_CheckChild3Type, MVT::i32, ++/*374711*/ OPC_CheckChild4Integer, 1, ++/*374713*/ OPC_CheckChild4Type, MVT::i32, ++/*374715*/ OPC_MoveChild5, ++/*374716*/ OPC_CheckInteger, 1, ++/*374718*/ OPC_CheckType, MVT::i32, ++/*374720*/ OPC_MoveParent, ++/*374721*/ OPC_MoveChild6, ++/*374722*/ OPC_CheckInteger, 1, ++/*374724*/ OPC_CheckType, MVT::i32, ++/*374726*/ OPC_MoveParent, ++/*374727*/ OPC_MoveChild7, ++/*374728*/ OPC_CheckInteger, 1, ++/*374730*/ OPC_CheckType, MVT::i32, ++/*374732*/ OPC_MoveParent, ++/*374733*/ OPC_MoveChild, 8, ++/*374735*/ OPC_CheckInteger, 1, ++/*374737*/ OPC_CheckType, MVT::i32, ++/*374739*/ OPC_MoveParent, ++/*374740*/ OPC_MoveChild, 9, ++/*374742*/ OPC_CheckInteger, 1, ++/*374744*/ OPC_CheckType, MVT::i32, ++/*374746*/ OPC_MoveParent, ++/*374747*/ OPC_MoveChild, 10, ++/*374749*/ OPC_CheckInteger, 1, ++/*374751*/ OPC_CheckType, MVT::i32, ++/*374753*/ OPC_MoveParent, ++/*374754*/ OPC_MoveChild, 11, ++/*374756*/ OPC_CheckInteger, 1, ++/*374758*/ OPC_CheckType, MVT::i32, ++/*374760*/ OPC_MoveParent, ++/*374761*/ OPC_MoveChild, 12, ++/*374763*/ OPC_CheckInteger, 1, ++/*374765*/ OPC_CheckType, MVT::i32, ++/*374767*/ OPC_MoveParent, ++/*374768*/ OPC_MoveChild, 13, ++/*374770*/ OPC_CheckInteger, 1, ++/*374772*/ OPC_CheckType, MVT::i32, ++/*374774*/ OPC_MoveParent, ++/*374775*/ OPC_MoveChild, 14, ++/*374777*/ OPC_CheckInteger, 1, ++/*374779*/ OPC_CheckType, MVT::i32, ++/*374781*/ OPC_MoveParent, ++/*374782*/ OPC_MoveChild, 15, ++/*374784*/ OPC_CheckInteger, 1, ++/*374786*/ OPC_CheckType, MVT::i32, ++/*374788*/ OPC_MoveParent, ++/*374789*/ OPC_MoveParent, ++/*374790*/ OPC_CheckChild1Same, 0, ++/*374792*/ OPC_MoveParent, ++/*374793*/ OPC_MoveParent, ++/*374794*/ OPC_MoveParent, ++/*374795*/ OPC_MoveChild1, ++/*374796*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*374799*/ OPC_CheckChild0Integer, 1, ++/*374801*/ OPC_CheckChild0Type, MVT::i32, ++/*374803*/ OPC_CheckChild1Integer, 1, ++/*374805*/ OPC_CheckChild1Type, MVT::i32, ++/*374807*/ OPC_CheckChild2Integer, 1, ++/*374809*/ OPC_CheckChild2Type, MVT::i32, ++/*374811*/ OPC_CheckChild3Integer, 1, ++/*374813*/ OPC_CheckChild3Type, MVT::i32, ++/*374815*/ OPC_CheckChild4Integer, 1, ++/*374817*/ OPC_CheckChild4Type, MVT::i32, ++/*374819*/ OPC_MoveChild5, ++/*374820*/ OPC_CheckInteger, 1, ++/*374822*/ OPC_CheckType, MVT::i32, ++/*374824*/ OPC_MoveParent, ++/*374825*/ OPC_MoveChild6, ++/*374826*/ OPC_CheckInteger, 1, ++/*374828*/ OPC_CheckType, MVT::i32, ++/*374830*/ OPC_MoveParent, ++/*374831*/ OPC_MoveChild7, ++/*374832*/ OPC_CheckInteger, 1, ++/*374834*/ OPC_CheckType, MVT::i32, ++/*374836*/ OPC_MoveParent, ++/*374837*/ OPC_MoveChild, 8, ++/*374839*/ OPC_CheckInteger, 1, ++/*374841*/ OPC_CheckType, MVT::i32, ++/*374843*/ OPC_MoveParent, ++/*374844*/ OPC_MoveChild, 9, ++/*374846*/ OPC_CheckInteger, 1, ++/*374848*/ OPC_CheckType, MVT::i32, ++/*374850*/ OPC_MoveParent, ++/*374851*/ OPC_MoveChild, 10, ++/*374853*/ OPC_CheckInteger, 1, ++/*374855*/ OPC_CheckType, MVT::i32, ++/*374857*/ OPC_MoveParent, ++/*374858*/ OPC_MoveChild, 11, ++/*374860*/ OPC_CheckInteger, 1, ++/*374862*/ OPC_CheckType, MVT::i32, ++/*374864*/ OPC_MoveParent, ++/*374865*/ OPC_MoveChild, 12, ++/*374867*/ OPC_CheckInteger, 1, ++/*374869*/ OPC_CheckType, MVT::i32, ++/*374871*/ OPC_MoveParent, ++/*374872*/ OPC_MoveChild, 13, ++/*374874*/ OPC_CheckInteger, 1, ++/*374876*/ OPC_CheckType, MVT::i32, ++/*374878*/ OPC_MoveParent, ++/*374879*/ OPC_MoveChild, 14, ++/*374881*/ OPC_CheckInteger, 1, ++/*374883*/ OPC_CheckType, MVT::i32, ++/*374885*/ OPC_MoveParent, ++/*374886*/ OPC_MoveChild, 15, ++/*374888*/ OPC_CheckInteger, 1, ++/*374890*/ OPC_CheckType, MVT::i32, ++/*374892*/ OPC_MoveParent, ++/*374893*/ OPC_CheckType, MVT::v16i16, ++/*374895*/ OPC_MoveParent, ++/*374896*/ OPC_CheckType, MVT::v16i16, ++/*374898*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*374900*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a), LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*374908*/ /*Scope*/ 89|128,1/*217*/, /*->375127*/ ++/*374910*/ OPC_CheckChild0Same, 0, ++/*374912*/ OPC_MoveChild1, ++/*374913*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*374916*/ OPC_CheckChild0Integer, 1, ++/*374918*/ OPC_CheckChild0Type, MVT::i32, ++/*374920*/ OPC_CheckChild1Integer, 1, ++/*374922*/ OPC_CheckChild1Type, MVT::i32, ++/*374924*/ OPC_CheckChild2Integer, 1, ++/*374926*/ OPC_CheckChild2Type, MVT::i32, ++/*374928*/ OPC_CheckChild3Integer, 1, ++/*374930*/ OPC_CheckChild3Type, MVT::i32, ++/*374932*/ OPC_CheckChild4Integer, 1, ++/*374934*/ OPC_CheckChild4Type, MVT::i32, ++/*374936*/ OPC_MoveChild5, ++/*374937*/ OPC_CheckInteger, 1, ++/*374939*/ OPC_CheckType, MVT::i32, ++/*374941*/ OPC_MoveParent, ++/*374942*/ OPC_MoveChild6, ++/*374943*/ OPC_CheckInteger, 1, ++/*374945*/ OPC_CheckType, MVT::i32, ++/*374947*/ OPC_MoveParent, ++/*374948*/ OPC_MoveChild7, ++/*374949*/ OPC_CheckInteger, 1, ++/*374951*/ OPC_CheckType, MVT::i32, ++/*374953*/ OPC_MoveParent, ++/*374954*/ OPC_MoveChild, 8, ++/*374956*/ OPC_CheckInteger, 1, ++/*374958*/ OPC_CheckType, MVT::i32, ++/*374960*/ OPC_MoveParent, ++/*374961*/ OPC_MoveChild, 9, ++/*374963*/ OPC_CheckInteger, 1, ++/*374965*/ OPC_CheckType, MVT::i32, ++/*374967*/ OPC_MoveParent, ++/*374968*/ OPC_MoveChild, 10, ++/*374970*/ OPC_CheckInteger, 1, ++/*374972*/ OPC_CheckType, MVT::i32, ++/*374974*/ OPC_MoveParent, ++/*374975*/ OPC_MoveChild, 11, ++/*374977*/ OPC_CheckInteger, 1, ++/*374979*/ OPC_CheckType, MVT::i32, ++/*374981*/ OPC_MoveParent, ++/*374982*/ OPC_MoveChild, 12, ++/*374984*/ OPC_CheckInteger, 1, ++/*374986*/ OPC_CheckType, MVT::i32, ++/*374988*/ OPC_MoveParent, ++/*374989*/ OPC_MoveChild, 13, ++/*374991*/ OPC_CheckInteger, 1, ++/*374993*/ OPC_CheckType, MVT::i32, ++/*374995*/ OPC_MoveParent, ++/*374996*/ OPC_MoveChild, 14, ++/*374998*/ OPC_CheckInteger, 1, ++/*375000*/ OPC_CheckType, MVT::i32, ++/*375002*/ OPC_MoveParent, ++/*375003*/ OPC_MoveChild, 15, ++/*375005*/ OPC_CheckInteger, 1, ++/*375007*/ OPC_CheckType, MVT::i32, ++/*375009*/ OPC_MoveParent, ++/*375010*/ OPC_MoveParent, ++/*375011*/ OPC_MoveParent, ++/*375012*/ OPC_MoveParent, ++/*375013*/ OPC_MoveParent, ++/*375014*/ OPC_MoveChild1, ++/*375015*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*375018*/ OPC_CheckChild0Integer, 1, ++/*375020*/ OPC_CheckChild0Type, MVT::i32, ++/*375022*/ OPC_CheckChild1Integer, 1, ++/*375024*/ OPC_CheckChild1Type, MVT::i32, ++/*375026*/ OPC_CheckChild2Integer, 1, ++/*375028*/ OPC_CheckChild2Type, MVT::i32, ++/*375030*/ OPC_CheckChild3Integer, 1, ++/*375032*/ OPC_CheckChild3Type, MVT::i32, ++/*375034*/ OPC_CheckChild4Integer, 1, ++/*375036*/ OPC_CheckChild4Type, MVT::i32, ++/*375038*/ OPC_MoveChild5, ++/*375039*/ OPC_CheckInteger, 1, ++/*375041*/ OPC_CheckType, MVT::i32, ++/*375043*/ OPC_MoveParent, ++/*375044*/ OPC_MoveChild6, ++/*375045*/ OPC_CheckInteger, 1, ++/*375047*/ OPC_CheckType, MVT::i32, ++/*375049*/ OPC_MoveParent, ++/*375050*/ OPC_MoveChild7, ++/*375051*/ OPC_CheckInteger, 1, ++/*375053*/ OPC_CheckType, MVT::i32, ++/*375055*/ OPC_MoveParent, ++/*375056*/ OPC_MoveChild, 8, ++/*375058*/ OPC_CheckInteger, 1, ++/*375060*/ OPC_CheckType, MVT::i32, ++/*375062*/ OPC_MoveParent, ++/*375063*/ OPC_MoveChild, 9, ++/*375065*/ OPC_CheckInteger, 1, ++/*375067*/ OPC_CheckType, MVT::i32, ++/*375069*/ OPC_MoveParent, ++/*375070*/ OPC_MoveChild, 10, ++/*375072*/ OPC_CheckInteger, 1, ++/*375074*/ OPC_CheckType, MVT::i32, ++/*375076*/ OPC_MoveParent, ++/*375077*/ OPC_MoveChild, 11, ++/*375079*/ OPC_CheckInteger, 1, ++/*375081*/ OPC_CheckType, MVT::i32, ++/*375083*/ OPC_MoveParent, ++/*375084*/ OPC_MoveChild, 12, ++/*375086*/ OPC_CheckInteger, 1, ++/*375088*/ OPC_CheckType, MVT::i32, ++/*375090*/ OPC_MoveParent, ++/*375091*/ OPC_MoveChild, 13, ++/*375093*/ OPC_CheckInteger, 1, ++/*375095*/ OPC_CheckType, MVT::i32, ++/*375097*/ OPC_MoveParent, ++/*375098*/ OPC_MoveChild, 14, ++/*375100*/ OPC_CheckInteger, 1, ++/*375102*/ OPC_CheckType, MVT::i32, ++/*375104*/ OPC_MoveParent, ++/*375105*/ OPC_MoveChild, 15, ++/*375107*/ OPC_CheckInteger, 1, ++/*375109*/ OPC_CheckType, MVT::i32, ++/*375111*/ OPC_MoveParent, ++/*375112*/ OPC_CheckType, MVT::v16i16, ++/*375114*/ OPC_MoveParent, ++/*375115*/ OPC_CheckType, MVT::v16i16, ++/*375117*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*375119*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a), LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*375127*/ 0, /*End of Scope*/ ++/*375128*/ /*Scope*/ 62|128,3/*446*/, /*->375576*/ ++/*375130*/ OPC_CheckChild0Same, 0, ++/*375132*/ OPC_MoveChild1, ++/*375133*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*375136*/ OPC_Scope, 89|128,1/*217*/, /*->375356*/ // 2 children in Scope ++/*375139*/ OPC_MoveChild0, ++/*375140*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*375143*/ OPC_CheckChild0Integer, 1, ++/*375145*/ OPC_CheckChild0Type, MVT::i32, ++/*375147*/ OPC_CheckChild1Integer, 1, ++/*375149*/ OPC_CheckChild1Type, MVT::i32, ++/*375151*/ OPC_CheckChild2Integer, 1, ++/*375153*/ OPC_CheckChild2Type, MVT::i32, ++/*375155*/ OPC_CheckChild3Integer, 1, ++/*375157*/ OPC_CheckChild3Type, MVT::i32, ++/*375159*/ OPC_CheckChild4Integer, 1, ++/*375161*/ OPC_CheckChild4Type, MVT::i32, ++/*375163*/ OPC_MoveChild5, ++/*375164*/ OPC_CheckInteger, 1, ++/*375166*/ OPC_CheckType, MVT::i32, ++/*375168*/ OPC_MoveParent, ++/*375169*/ OPC_MoveChild6, ++/*375170*/ OPC_CheckInteger, 1, ++/*375172*/ OPC_CheckType, MVT::i32, ++/*375174*/ OPC_MoveParent, ++/*375175*/ OPC_MoveChild7, ++/*375176*/ OPC_CheckInteger, 1, ++/*375178*/ OPC_CheckType, MVT::i32, ++/*375180*/ OPC_MoveParent, ++/*375181*/ OPC_MoveChild, 8, ++/*375183*/ OPC_CheckInteger, 1, ++/*375185*/ OPC_CheckType, MVT::i32, ++/*375187*/ OPC_MoveParent, ++/*375188*/ OPC_MoveChild, 9, ++/*375190*/ OPC_CheckInteger, 1, ++/*375192*/ OPC_CheckType, MVT::i32, ++/*375194*/ OPC_MoveParent, ++/*375195*/ OPC_MoveChild, 10, ++/*375197*/ OPC_CheckInteger, 1, ++/*375199*/ OPC_CheckType, MVT::i32, ++/*375201*/ OPC_MoveParent, ++/*375202*/ OPC_MoveChild, 11, ++/*375204*/ OPC_CheckInteger, 1, ++/*375206*/ OPC_CheckType, MVT::i32, ++/*375208*/ OPC_MoveParent, ++/*375209*/ OPC_MoveChild, 12, ++/*375211*/ OPC_CheckInteger, 1, ++/*375213*/ OPC_CheckType, MVT::i32, ++/*375215*/ OPC_MoveParent, ++/*375216*/ OPC_MoveChild, 13, ++/*375218*/ OPC_CheckInteger, 1, ++/*375220*/ OPC_CheckType, MVT::i32, ++/*375222*/ OPC_MoveParent, ++/*375223*/ OPC_MoveChild, 14, ++/*375225*/ OPC_CheckInteger, 1, ++/*375227*/ OPC_CheckType, MVT::i32, ++/*375229*/ OPC_MoveParent, ++/*375230*/ OPC_MoveChild, 15, ++/*375232*/ OPC_CheckInteger, 1, ++/*375234*/ OPC_CheckType, MVT::i32, ++/*375236*/ OPC_MoveParent, ++/*375237*/ OPC_MoveParent, ++/*375238*/ OPC_CheckChild1Same, 1, ++/*375240*/ OPC_MoveParent, ++/*375241*/ OPC_MoveParent, ++/*375242*/ OPC_MoveParent, ++/*375243*/ OPC_MoveChild1, ++/*375244*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*375247*/ OPC_CheckChild0Integer, 1, ++/*375249*/ OPC_CheckChild0Type, MVT::i32, ++/*375251*/ OPC_CheckChild1Integer, 1, ++/*375253*/ OPC_CheckChild1Type, MVT::i32, ++/*375255*/ OPC_CheckChild2Integer, 1, ++/*375257*/ OPC_CheckChild2Type, MVT::i32, ++/*375259*/ OPC_CheckChild3Integer, 1, ++/*375261*/ OPC_CheckChild3Type, MVT::i32, ++/*375263*/ OPC_CheckChild4Integer, 1, ++/*375265*/ OPC_CheckChild4Type, MVT::i32, ++/*375267*/ OPC_MoveChild5, ++/*375268*/ OPC_CheckInteger, 1, ++/*375270*/ OPC_CheckType, MVT::i32, ++/*375272*/ OPC_MoveParent, ++/*375273*/ OPC_MoveChild6, ++/*375274*/ OPC_CheckInteger, 1, ++/*375276*/ OPC_CheckType, MVT::i32, ++/*375278*/ OPC_MoveParent, ++/*375279*/ OPC_MoveChild7, ++/*375280*/ OPC_CheckInteger, 1, ++/*375282*/ OPC_CheckType, MVT::i32, ++/*375284*/ OPC_MoveParent, ++/*375285*/ OPC_MoveChild, 8, ++/*375287*/ OPC_CheckInteger, 1, ++/*375289*/ OPC_CheckType, MVT::i32, ++/*375291*/ OPC_MoveParent, ++/*375292*/ OPC_MoveChild, 9, ++/*375294*/ OPC_CheckInteger, 1, ++/*375296*/ OPC_CheckType, MVT::i32, ++/*375298*/ OPC_MoveParent, ++/*375299*/ OPC_MoveChild, 10, ++/*375301*/ OPC_CheckInteger, 1, ++/*375303*/ OPC_CheckType, MVT::i32, ++/*375305*/ OPC_MoveParent, ++/*375306*/ OPC_MoveChild, 11, ++/*375308*/ OPC_CheckInteger, 1, ++/*375310*/ OPC_CheckType, MVT::i32, ++/*375312*/ OPC_MoveParent, ++/*375313*/ OPC_MoveChild, 12, ++/*375315*/ OPC_CheckInteger, 1, ++/*375317*/ OPC_CheckType, MVT::i32, ++/*375319*/ OPC_MoveParent, ++/*375320*/ OPC_MoveChild, 13, ++/*375322*/ OPC_CheckInteger, 1, ++/*375324*/ OPC_CheckType, MVT::i32, ++/*375326*/ OPC_MoveParent, ++/*375327*/ OPC_MoveChild, 14, ++/*375329*/ OPC_CheckInteger, 1, ++/*375331*/ OPC_CheckType, MVT::i32, ++/*375333*/ OPC_MoveParent, ++/*375334*/ OPC_MoveChild, 15, ++/*375336*/ OPC_CheckInteger, 1, ++/*375338*/ OPC_CheckType, MVT::i32, ++/*375340*/ OPC_MoveParent, ++/*375341*/ OPC_CheckType, MVT::v16i16, ++/*375343*/ OPC_MoveParent, ++/*375344*/ OPC_CheckType, MVT::v16i16, ++/*375346*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*375348*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a), LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*375356*/ /*Scope*/ 89|128,1/*217*/, /*->375575*/ ++/*375358*/ OPC_CheckChild0Same, 1, ++/*375360*/ OPC_MoveChild1, ++/*375361*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*375364*/ OPC_CheckChild0Integer, 1, ++/*375366*/ OPC_CheckChild0Type, MVT::i32, ++/*375368*/ OPC_CheckChild1Integer, 1, ++/*375370*/ OPC_CheckChild1Type, MVT::i32, ++/*375372*/ OPC_CheckChild2Integer, 1, ++/*375374*/ OPC_CheckChild2Type, MVT::i32, ++/*375376*/ OPC_CheckChild3Integer, 1, ++/*375378*/ OPC_CheckChild3Type, MVT::i32, ++/*375380*/ OPC_CheckChild4Integer, 1, ++/*375382*/ OPC_CheckChild4Type, MVT::i32, ++/*375384*/ OPC_MoveChild5, ++/*375385*/ OPC_CheckInteger, 1, ++/*375387*/ OPC_CheckType, MVT::i32, ++/*375389*/ OPC_MoveParent, ++/*375390*/ OPC_MoveChild6, ++/*375391*/ OPC_CheckInteger, 1, ++/*375393*/ OPC_CheckType, MVT::i32, ++/*375395*/ OPC_MoveParent, ++/*375396*/ OPC_MoveChild7, ++/*375397*/ OPC_CheckInteger, 1, ++/*375399*/ OPC_CheckType, MVT::i32, ++/*375401*/ OPC_MoveParent, ++/*375402*/ OPC_MoveChild, 8, ++/*375404*/ OPC_CheckInteger, 1, ++/*375406*/ OPC_CheckType, MVT::i32, ++/*375408*/ OPC_MoveParent, ++/*375409*/ OPC_MoveChild, 9, ++/*375411*/ OPC_CheckInteger, 1, ++/*375413*/ OPC_CheckType, MVT::i32, ++/*375415*/ OPC_MoveParent, ++/*375416*/ OPC_MoveChild, 10, ++/*375418*/ OPC_CheckInteger, 1, ++/*375420*/ OPC_CheckType, MVT::i32, ++/*375422*/ OPC_MoveParent, ++/*375423*/ OPC_MoveChild, 11, ++/*375425*/ OPC_CheckInteger, 1, ++/*375427*/ OPC_CheckType, MVT::i32, ++/*375429*/ OPC_MoveParent, ++/*375430*/ OPC_MoveChild, 12, ++/*375432*/ OPC_CheckInteger, 1, ++/*375434*/ OPC_CheckType, MVT::i32, ++/*375436*/ OPC_MoveParent, ++/*375437*/ OPC_MoveChild, 13, ++/*375439*/ OPC_CheckInteger, 1, ++/*375441*/ OPC_CheckType, MVT::i32, ++/*375443*/ OPC_MoveParent, ++/*375444*/ OPC_MoveChild, 14, ++/*375446*/ OPC_CheckInteger, 1, ++/*375448*/ OPC_CheckType, MVT::i32, ++/*375450*/ OPC_MoveParent, ++/*375451*/ OPC_MoveChild, 15, ++/*375453*/ OPC_CheckInteger, 1, ++/*375455*/ OPC_CheckType, MVT::i32, ++/*375457*/ OPC_MoveParent, ++/*375458*/ OPC_MoveParent, ++/*375459*/ OPC_MoveParent, ++/*375460*/ OPC_MoveParent, ++/*375461*/ OPC_MoveParent, ++/*375462*/ OPC_MoveChild1, ++/*375463*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*375466*/ OPC_CheckChild0Integer, 1, ++/*375468*/ OPC_CheckChild0Type, MVT::i32, ++/*375470*/ OPC_CheckChild1Integer, 1, ++/*375472*/ OPC_CheckChild1Type, MVT::i32, ++/*375474*/ OPC_CheckChild2Integer, 1, ++/*375476*/ OPC_CheckChild2Type, MVT::i32, ++/*375478*/ OPC_CheckChild3Integer, 1, ++/*375480*/ OPC_CheckChild3Type, MVT::i32, ++/*375482*/ OPC_CheckChild4Integer, 1, ++/*375484*/ OPC_CheckChild4Type, MVT::i32, ++/*375486*/ OPC_MoveChild5, ++/*375487*/ OPC_CheckInteger, 1, ++/*375489*/ OPC_CheckType, MVT::i32, ++/*375491*/ OPC_MoveParent, ++/*375492*/ OPC_MoveChild6, ++/*375493*/ OPC_CheckInteger, 1, ++/*375495*/ OPC_CheckType, MVT::i32, ++/*375497*/ OPC_MoveParent, ++/*375498*/ OPC_MoveChild7, ++/*375499*/ OPC_CheckInteger, 1, ++/*375501*/ OPC_CheckType, MVT::i32, ++/*375503*/ OPC_MoveParent, ++/*375504*/ OPC_MoveChild, 8, ++/*375506*/ OPC_CheckInteger, 1, ++/*375508*/ OPC_CheckType, MVT::i32, ++/*375510*/ OPC_MoveParent, ++/*375511*/ OPC_MoveChild, 9, ++/*375513*/ OPC_CheckInteger, 1, ++/*375515*/ OPC_CheckType, MVT::i32, ++/*375517*/ OPC_MoveParent, ++/*375518*/ OPC_MoveChild, 10, ++/*375520*/ OPC_CheckInteger, 1, ++/*375522*/ OPC_CheckType, MVT::i32, ++/*375524*/ OPC_MoveParent, ++/*375525*/ OPC_MoveChild, 11, ++/*375527*/ OPC_CheckInteger, 1, ++/*375529*/ OPC_CheckType, MVT::i32, ++/*375531*/ OPC_MoveParent, ++/*375532*/ OPC_MoveChild, 12, ++/*375534*/ OPC_CheckInteger, 1, ++/*375536*/ OPC_CheckType, MVT::i32, ++/*375538*/ OPC_MoveParent, ++/*375539*/ OPC_MoveChild, 13, ++/*375541*/ OPC_CheckInteger, 1, ++/*375543*/ OPC_CheckType, MVT::i32, ++/*375545*/ OPC_MoveParent, ++/*375546*/ OPC_MoveChild, 14, ++/*375548*/ OPC_CheckInteger, 1, ++/*375550*/ OPC_CheckType, MVT::i32, ++/*375552*/ OPC_MoveParent, ++/*375553*/ OPC_MoveChild, 15, ++/*375555*/ OPC_CheckInteger, 1, ++/*375557*/ OPC_CheckType, MVT::i32, ++/*375559*/ OPC_MoveParent, ++/*375560*/ OPC_CheckType, MVT::v16i16, ++/*375562*/ OPC_MoveParent, ++/*375563*/ OPC_CheckType, MVT::v16i16, ++/*375565*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*375567*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a), LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*375575*/ 0, /*End of Scope*/ ++/*375576*/ /*Scope*/ 91|128,2/*347*/, /*->375925*/ ++/*375578*/ OPC_MoveChild0, ++/*375579*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*375582*/ OPC_CheckChild0Integer, 1, ++/*375584*/ OPC_CheckChild0Type, MVT::i32, ++/*375586*/ OPC_CheckChild1Integer, 1, ++/*375588*/ OPC_CheckChild1Type, MVT::i32, ++/*375590*/ OPC_CheckChild2Integer, 1, ++/*375592*/ OPC_CheckChild2Type, MVT::i32, ++/*375594*/ OPC_CheckChild3Integer, 1, ++/*375596*/ OPC_CheckChild3Type, MVT::i32, ++/*375598*/ OPC_CheckChild4Integer, 1, ++/*375600*/ OPC_CheckChild4Type, MVT::i32, ++/*375602*/ OPC_MoveChild5, ++/*375603*/ OPC_CheckInteger, 1, ++/*375605*/ OPC_CheckType, MVT::i32, ++/*375607*/ OPC_MoveParent, ++/*375608*/ OPC_MoveChild6, ++/*375609*/ OPC_CheckInteger, 1, ++/*375611*/ OPC_CheckType, MVT::i32, ++/*375613*/ OPC_MoveParent, ++/*375614*/ OPC_MoveChild7, ++/*375615*/ OPC_CheckInteger, 1, ++/*375617*/ OPC_CheckType, MVT::i32, ++/*375619*/ OPC_MoveParent, ++/*375620*/ OPC_MoveChild, 8, ++/*375622*/ OPC_CheckInteger, 1, ++/*375624*/ OPC_CheckType, MVT::i32, ++/*375626*/ OPC_MoveParent, ++/*375627*/ OPC_MoveChild, 9, ++/*375629*/ OPC_CheckInteger, 1, ++/*375631*/ OPC_CheckType, MVT::i32, ++/*375633*/ OPC_MoveParent, ++/*375634*/ OPC_MoveChild, 10, ++/*375636*/ OPC_CheckInteger, 1, ++/*375638*/ OPC_CheckType, MVT::i32, ++/*375640*/ OPC_MoveParent, ++/*375641*/ OPC_MoveChild, 11, ++/*375643*/ OPC_CheckInteger, 1, ++/*375645*/ OPC_CheckType, MVT::i32, ++/*375647*/ OPC_MoveParent, ++/*375648*/ OPC_MoveChild, 12, ++/*375650*/ OPC_CheckInteger, 1, ++/*375652*/ OPC_CheckType, MVT::i32, ++/*375654*/ OPC_MoveParent, ++/*375655*/ OPC_MoveChild, 13, ++/*375657*/ OPC_CheckInteger, 1, ++/*375659*/ OPC_CheckType, MVT::i32, ++/*375661*/ OPC_MoveParent, ++/*375662*/ OPC_MoveChild, 14, ++/*375664*/ OPC_CheckInteger, 1, ++/*375666*/ OPC_CheckType, MVT::i32, ++/*375668*/ OPC_MoveParent, ++/*375669*/ OPC_MoveChild, 15, ++/*375671*/ OPC_CheckInteger, 1, ++/*375673*/ OPC_CheckType, MVT::i32, ++/*375675*/ OPC_MoveParent, ++/*375676*/ OPC_MoveParent, ++/*375677*/ OPC_MoveChild1, ++/*375678*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*375681*/ OPC_Scope, 120, /*->375803*/ // 2 children in Scope ++/*375683*/ OPC_CheckChild0Same, 0, ++/*375685*/ OPC_CheckChild1Same, 1, ++/*375687*/ OPC_MoveParent, ++/*375688*/ OPC_MoveParent, ++/*375689*/ OPC_MoveParent, ++/*375690*/ OPC_MoveChild1, ++/*375691*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*375694*/ OPC_CheckChild0Integer, 1, ++/*375696*/ OPC_CheckChild0Type, MVT::i32, ++/*375698*/ OPC_CheckChild1Integer, 1, ++/*375700*/ OPC_CheckChild1Type, MVT::i32, ++/*375702*/ OPC_CheckChild2Integer, 1, ++/*375704*/ OPC_CheckChild2Type, MVT::i32, ++/*375706*/ OPC_CheckChild3Integer, 1, ++/*375708*/ OPC_CheckChild3Type, MVT::i32, ++/*375710*/ OPC_CheckChild4Integer, 1, ++/*375712*/ OPC_CheckChild4Type, MVT::i32, ++/*375714*/ OPC_MoveChild5, ++/*375715*/ OPC_CheckInteger, 1, ++/*375717*/ OPC_CheckType, MVT::i32, ++/*375719*/ OPC_MoveParent, ++/*375720*/ OPC_MoveChild6, ++/*375721*/ OPC_CheckInteger, 1, ++/*375723*/ OPC_CheckType, MVT::i32, ++/*375725*/ OPC_MoveParent, ++/*375726*/ OPC_MoveChild7, ++/*375727*/ OPC_CheckInteger, 1, ++/*375729*/ OPC_CheckType, MVT::i32, ++/*375731*/ OPC_MoveParent, ++/*375732*/ OPC_MoveChild, 8, ++/*375734*/ OPC_CheckInteger, 1, ++/*375736*/ OPC_CheckType, MVT::i32, ++/*375738*/ OPC_MoveParent, ++/*375739*/ OPC_MoveChild, 9, ++/*375741*/ OPC_CheckInteger, 1, ++/*375743*/ OPC_CheckType, MVT::i32, ++/*375745*/ OPC_MoveParent, ++/*375746*/ OPC_MoveChild, 10, ++/*375748*/ OPC_CheckInteger, 1, ++/*375750*/ OPC_CheckType, MVT::i32, ++/*375752*/ OPC_MoveParent, ++/*375753*/ OPC_MoveChild, 11, ++/*375755*/ OPC_CheckInteger, 1, ++/*375757*/ OPC_CheckType, MVT::i32, ++/*375759*/ OPC_MoveParent, ++/*375760*/ OPC_MoveChild, 12, ++/*375762*/ OPC_CheckInteger, 1, ++/*375764*/ OPC_CheckType, MVT::i32, ++/*375766*/ OPC_MoveParent, ++/*375767*/ OPC_MoveChild, 13, ++/*375769*/ OPC_CheckInteger, 1, ++/*375771*/ OPC_CheckType, MVT::i32, ++/*375773*/ OPC_MoveParent, ++/*375774*/ OPC_MoveChild, 14, ++/*375776*/ OPC_CheckInteger, 1, ++/*375778*/ OPC_CheckType, MVT::i32, ++/*375780*/ OPC_MoveParent, ++/*375781*/ OPC_MoveChild, 15, ++/*375783*/ OPC_CheckInteger, 1, ++/*375785*/ OPC_CheckType, MVT::i32, ++/*375787*/ OPC_MoveParent, ++/*375788*/ OPC_CheckType, MVT::v16i16, ++/*375790*/ OPC_MoveParent, ++/*375791*/ OPC_CheckType, MVT::v16i16, ++/*375793*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*375795*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a), LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*375803*/ /*Scope*/ 120, /*->375924*/ ++/*375804*/ OPC_CheckChild0Same, 1, ++/*375806*/ OPC_CheckChild1Same, 0, ++/*375808*/ OPC_MoveParent, ++/*375809*/ OPC_MoveParent, ++/*375810*/ OPC_MoveParent, ++/*375811*/ OPC_MoveChild1, ++/*375812*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*375815*/ OPC_CheckChild0Integer, 1, ++/*375817*/ OPC_CheckChild0Type, MVT::i32, ++/*375819*/ OPC_CheckChild1Integer, 1, ++/*375821*/ OPC_CheckChild1Type, MVT::i32, ++/*375823*/ OPC_CheckChild2Integer, 1, ++/*375825*/ OPC_CheckChild2Type, MVT::i32, ++/*375827*/ OPC_CheckChild3Integer, 1, ++/*375829*/ OPC_CheckChild3Type, MVT::i32, ++/*375831*/ OPC_CheckChild4Integer, 1, ++/*375833*/ OPC_CheckChild4Type, MVT::i32, ++/*375835*/ OPC_MoveChild5, ++/*375836*/ OPC_CheckInteger, 1, ++/*375838*/ OPC_CheckType, MVT::i32, ++/*375840*/ OPC_MoveParent, ++/*375841*/ OPC_MoveChild6, ++/*375842*/ OPC_CheckInteger, 1, ++/*375844*/ OPC_CheckType, MVT::i32, ++/*375846*/ OPC_MoveParent, ++/*375847*/ OPC_MoveChild7, ++/*375848*/ OPC_CheckInteger, 1, ++/*375850*/ OPC_CheckType, MVT::i32, ++/*375852*/ OPC_MoveParent, ++/*375853*/ OPC_MoveChild, 8, ++/*375855*/ OPC_CheckInteger, 1, ++/*375857*/ OPC_CheckType, MVT::i32, ++/*375859*/ OPC_MoveParent, ++/*375860*/ OPC_MoveChild, 9, ++/*375862*/ OPC_CheckInteger, 1, ++/*375864*/ OPC_CheckType, MVT::i32, ++/*375866*/ OPC_MoveParent, ++/*375867*/ OPC_MoveChild, 10, ++/*375869*/ OPC_CheckInteger, 1, ++/*375871*/ OPC_CheckType, MVT::i32, ++/*375873*/ OPC_MoveParent, ++/*375874*/ OPC_MoveChild, 11, ++/*375876*/ OPC_CheckInteger, 1, ++/*375878*/ OPC_CheckType, MVT::i32, ++/*375880*/ OPC_MoveParent, ++/*375881*/ OPC_MoveChild, 12, ++/*375883*/ OPC_CheckInteger, 1, ++/*375885*/ OPC_CheckType, MVT::i32, ++/*375887*/ OPC_MoveParent, ++/*375888*/ OPC_MoveChild, 13, ++/*375890*/ OPC_CheckInteger, 1, ++/*375892*/ OPC_CheckType, MVT::i32, ++/*375894*/ OPC_MoveParent, ++/*375895*/ OPC_MoveChild, 14, ++/*375897*/ OPC_CheckInteger, 1, ++/*375899*/ OPC_CheckType, MVT::i32, ++/*375901*/ OPC_MoveParent, ++/*375902*/ OPC_MoveChild, 15, ++/*375904*/ OPC_CheckInteger, 1, ++/*375906*/ OPC_CheckType, MVT::i32, ++/*375908*/ OPC_MoveParent, ++/*375909*/ OPC_CheckType, MVT::v16i16, ++/*375911*/ OPC_MoveParent, ++/*375912*/ OPC_CheckType, MVT::v16i16, ++/*375914*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*375916*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a), LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*375924*/ 0, /*End of Scope*/ ++/*375925*/ 0, /*End of Scope*/ ++/*375926*/ /*Scope*/ 102|128,21/*2790*/, /*->378718*/ ++/*375928*/ OPC_RecordChild0, // #0 = $a ++/*375929*/ OPC_MoveChild1, ++/*375930*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*375933*/ OPC_CheckChild0Integer, 1, ++/*375935*/ OPC_CheckChild0Type, MVT::i32, ++/*375937*/ OPC_CheckChild1Integer, 1, ++/*375939*/ OPC_CheckChild1Type, MVT::i32, ++/*375941*/ OPC_CheckChild2Integer, 1, ++/*375943*/ OPC_CheckChild2Type, MVT::i32, ++/*375945*/ OPC_CheckChild3Integer, 1, ++/*375947*/ OPC_CheckChild3Type, MVT::i32, ++/*375949*/ OPC_CheckChild4Integer, 1, ++/*375951*/ OPC_CheckChild4Type, MVT::i32, ++/*375953*/ OPC_MoveChild5, ++/*375954*/ OPC_CheckInteger, 1, ++/*375956*/ OPC_CheckType, MVT::i32, ++/*375958*/ OPC_MoveParent, ++/*375959*/ OPC_MoveChild6, ++/*375960*/ OPC_CheckInteger, 1, ++/*375962*/ OPC_CheckType, MVT::i32, ++/*375964*/ OPC_MoveParent, ++/*375965*/ OPC_MoveChild7, ++/*375966*/ OPC_CheckInteger, 1, ++/*375968*/ OPC_CheckType, MVT::i32, ++/*375970*/ OPC_MoveParent, ++/*375971*/ OPC_MoveChild, 8, ++/*375973*/ OPC_CheckInteger, 1, ++/*375975*/ OPC_CheckType, MVT::i32, ++/*375977*/ OPC_MoveParent, ++/*375978*/ OPC_MoveChild, 9, ++/*375980*/ OPC_CheckInteger, 1, ++/*375982*/ OPC_CheckType, MVT::i32, ++/*375984*/ OPC_MoveParent, ++/*375985*/ OPC_MoveChild, 10, ++/*375987*/ OPC_CheckInteger, 1, ++/*375989*/ OPC_CheckType, MVT::i32, ++/*375991*/ OPC_MoveParent, ++/*375992*/ OPC_MoveChild, 11, ++/*375994*/ OPC_CheckInteger, 1, ++/*375996*/ OPC_CheckType, MVT::i32, ++/*375998*/ OPC_MoveParent, ++/*375999*/ OPC_MoveChild, 12, ++/*376001*/ OPC_CheckInteger, 1, ++/*376003*/ OPC_CheckType, MVT::i32, ++/*376005*/ OPC_MoveParent, ++/*376006*/ OPC_MoveChild, 13, ++/*376008*/ OPC_CheckInteger, 1, ++/*376010*/ OPC_CheckType, MVT::i32, ++/*376012*/ OPC_MoveParent, ++/*376013*/ OPC_MoveChild, 14, ++/*376015*/ OPC_CheckInteger, 1, ++/*376017*/ OPC_CheckType, MVT::i32, ++/*376019*/ OPC_MoveParent, ++/*376020*/ OPC_MoveChild, 15, ++/*376022*/ OPC_CheckInteger, 1, ++/*376024*/ OPC_CheckType, MVT::i32, ++/*376026*/ OPC_MoveParent, ++/*376027*/ OPC_MoveParent, ++/*376028*/ OPC_MoveParent, ++/*376029*/ OPC_RecordChild1, // #1 = $b ++/*376030*/ OPC_MoveParent, ++/*376031*/ OPC_MoveChild1, ++/*376032*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*376035*/ OPC_CheckChild0Integer, 15, ++/*376037*/ OPC_CheckChild0Type, MVT::i32, ++/*376039*/ OPC_CheckChild1Integer, 15, ++/*376041*/ OPC_CheckChild1Type, MVT::i32, ++/*376043*/ OPC_CheckChild2Integer, 15, ++/*376045*/ OPC_CheckChild2Type, MVT::i32, ++/*376047*/ OPC_CheckChild3Integer, 15, ++/*376049*/ OPC_CheckChild3Type, MVT::i32, ++/*376051*/ OPC_CheckChild4Integer, 15, ++/*376053*/ OPC_CheckChild4Type, MVT::i32, ++/*376055*/ OPC_MoveChild5, ++/*376056*/ OPC_CheckInteger, 15, ++/*376058*/ OPC_CheckType, MVT::i32, ++/*376060*/ OPC_MoveParent, ++/*376061*/ OPC_MoveChild6, ++/*376062*/ OPC_CheckInteger, 15, ++/*376064*/ OPC_CheckType, MVT::i32, ++/*376066*/ OPC_MoveParent, ++/*376067*/ OPC_MoveChild7, ++/*376068*/ OPC_CheckInteger, 15, ++/*376070*/ OPC_CheckType, MVT::i32, ++/*376072*/ OPC_MoveParent, ++/*376073*/ OPC_MoveChild, 8, ++/*376075*/ OPC_CheckInteger, 15, ++/*376077*/ OPC_CheckType, MVT::i32, ++/*376079*/ OPC_MoveParent, ++/*376080*/ OPC_MoveChild, 9, ++/*376082*/ OPC_CheckInteger, 15, ++/*376084*/ OPC_CheckType, MVT::i32, ++/*376086*/ OPC_MoveParent, ++/*376087*/ OPC_MoveChild, 10, ++/*376089*/ OPC_CheckInteger, 15, ++/*376091*/ OPC_CheckType, MVT::i32, ++/*376093*/ OPC_MoveParent, ++/*376094*/ OPC_MoveChild, 11, ++/*376096*/ OPC_CheckInteger, 15, ++/*376098*/ OPC_CheckType, MVT::i32, ++/*376100*/ OPC_MoveParent, ++/*376101*/ OPC_MoveChild, 12, ++/*376103*/ OPC_CheckInteger, 15, ++/*376105*/ OPC_CheckType, MVT::i32, ++/*376107*/ OPC_MoveParent, ++/*376108*/ OPC_MoveChild, 13, ++/*376110*/ OPC_CheckInteger, 15, ++/*376112*/ OPC_CheckType, MVT::i32, ++/*376114*/ OPC_MoveParent, ++/*376115*/ OPC_MoveChild, 14, ++/*376117*/ OPC_CheckInteger, 15, ++/*376119*/ OPC_CheckType, MVT::i32, ++/*376121*/ OPC_MoveParent, ++/*376122*/ OPC_MoveChild, 15, ++/*376124*/ OPC_CheckInteger, 15, ++/*376126*/ OPC_CheckType, MVT::i32, ++/*376128*/ OPC_MoveParent, ++/*376129*/ OPC_CheckType, MVT::v16i16, ++/*376131*/ OPC_MoveParent, ++/*376132*/ OPC_MoveParent, ++/*376133*/ OPC_MoveChild1, ++/*376134*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*376137*/ OPC_Scope, 52|128,10/*1332*/, /*->377472*/ // 4 children in Scope ++/*376140*/ OPC_MoveChild0, ++/*376141*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*376144*/ OPC_Scope, 91|128,1/*219*/, /*->376366*/ // 6 children in Scope ++/*376147*/ OPC_MoveChild0, ++/*376148*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*376151*/ OPC_CheckChild0Integer, 1, ++/*376153*/ OPC_CheckChild0Type, MVT::i32, ++/*376155*/ OPC_CheckChild1Integer, 1, ++/*376157*/ OPC_CheckChild1Type, MVT::i32, ++/*376159*/ OPC_CheckChild2Integer, 1, ++/*376161*/ OPC_CheckChild2Type, MVT::i32, ++/*376163*/ OPC_CheckChild3Integer, 1, ++/*376165*/ OPC_CheckChild3Type, MVT::i32, ++/*376167*/ OPC_CheckChild4Integer, 1, ++/*376169*/ OPC_CheckChild4Type, MVT::i32, ++/*376171*/ OPC_MoveChild5, ++/*376172*/ OPC_CheckInteger, 1, ++/*376174*/ OPC_CheckType, MVT::i32, ++/*376176*/ OPC_MoveParent, ++/*376177*/ OPC_MoveChild6, ++/*376178*/ OPC_CheckInteger, 1, ++/*376180*/ OPC_CheckType, MVT::i32, ++/*376182*/ OPC_MoveParent, ++/*376183*/ OPC_MoveChild7, ++/*376184*/ OPC_CheckInteger, 1, ++/*376186*/ OPC_CheckType, MVT::i32, ++/*376188*/ OPC_MoveParent, ++/*376189*/ OPC_MoveChild, 8, ++/*376191*/ OPC_CheckInteger, 1, ++/*376193*/ OPC_CheckType, MVT::i32, ++/*376195*/ OPC_MoveParent, ++/*376196*/ OPC_MoveChild, 9, ++/*376198*/ OPC_CheckInteger, 1, ++/*376200*/ OPC_CheckType, MVT::i32, ++/*376202*/ OPC_MoveParent, ++/*376203*/ OPC_MoveChild, 10, ++/*376205*/ OPC_CheckInteger, 1, ++/*376207*/ OPC_CheckType, MVT::i32, ++/*376209*/ OPC_MoveParent, ++/*376210*/ OPC_MoveChild, 11, ++/*376212*/ OPC_CheckInteger, 1, ++/*376214*/ OPC_CheckType, MVT::i32, ++/*376216*/ OPC_MoveParent, ++/*376217*/ OPC_MoveChild, 12, ++/*376219*/ OPC_CheckInteger, 1, ++/*376221*/ OPC_CheckType, MVT::i32, ++/*376223*/ OPC_MoveParent, ++/*376224*/ OPC_MoveChild, 13, ++/*376226*/ OPC_CheckInteger, 1, ++/*376228*/ OPC_CheckType, MVT::i32, ++/*376230*/ OPC_MoveParent, ++/*376231*/ OPC_MoveChild, 14, ++/*376233*/ OPC_CheckInteger, 1, ++/*376235*/ OPC_CheckType, MVT::i32, ++/*376237*/ OPC_MoveParent, ++/*376238*/ OPC_MoveChild, 15, ++/*376240*/ OPC_CheckInteger, 1, ++/*376242*/ OPC_CheckType, MVT::i32, ++/*376244*/ OPC_MoveParent, ++/*376245*/ OPC_MoveParent, ++/*376246*/ OPC_CheckChild1Same, 0, ++/*376248*/ OPC_MoveParent, ++/*376249*/ OPC_CheckChild1Same, 1, ++/*376251*/ OPC_MoveParent, ++/*376252*/ OPC_MoveParent, ++/*376253*/ OPC_MoveChild1, ++/*376254*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*376257*/ OPC_CheckChild0Integer, 1, ++/*376259*/ OPC_CheckChild0Type, MVT::i32, ++/*376261*/ OPC_CheckChild1Integer, 1, ++/*376263*/ OPC_CheckChild1Type, MVT::i32, ++/*376265*/ OPC_CheckChild2Integer, 1, ++/*376267*/ OPC_CheckChild2Type, MVT::i32, ++/*376269*/ OPC_CheckChild3Integer, 1, ++/*376271*/ OPC_CheckChild3Type, MVT::i32, ++/*376273*/ OPC_CheckChild4Integer, 1, ++/*376275*/ OPC_CheckChild4Type, MVT::i32, ++/*376277*/ OPC_MoveChild5, ++/*376278*/ OPC_CheckInteger, 1, ++/*376280*/ OPC_CheckType, MVT::i32, ++/*376282*/ OPC_MoveParent, ++/*376283*/ OPC_MoveChild6, ++/*376284*/ OPC_CheckInteger, 1, ++/*376286*/ OPC_CheckType, MVT::i32, ++/*376288*/ OPC_MoveParent, ++/*376289*/ OPC_MoveChild7, ++/*376290*/ OPC_CheckInteger, 1, ++/*376292*/ OPC_CheckType, MVT::i32, ++/*376294*/ OPC_MoveParent, ++/*376295*/ OPC_MoveChild, 8, ++/*376297*/ OPC_CheckInteger, 1, ++/*376299*/ OPC_CheckType, MVT::i32, ++/*376301*/ OPC_MoveParent, ++/*376302*/ OPC_MoveChild, 9, ++/*376304*/ OPC_CheckInteger, 1, ++/*376306*/ OPC_CheckType, MVT::i32, ++/*376308*/ OPC_MoveParent, ++/*376309*/ OPC_MoveChild, 10, ++/*376311*/ OPC_CheckInteger, 1, ++/*376313*/ OPC_CheckType, MVT::i32, ++/*376315*/ OPC_MoveParent, ++/*376316*/ OPC_MoveChild, 11, ++/*376318*/ OPC_CheckInteger, 1, ++/*376320*/ OPC_CheckType, MVT::i32, ++/*376322*/ OPC_MoveParent, ++/*376323*/ OPC_MoveChild, 12, ++/*376325*/ OPC_CheckInteger, 1, ++/*376327*/ OPC_CheckType, MVT::i32, ++/*376329*/ OPC_MoveParent, ++/*376330*/ OPC_MoveChild, 13, ++/*376332*/ OPC_CheckInteger, 1, ++/*376334*/ OPC_CheckType, MVT::i32, ++/*376336*/ OPC_MoveParent, ++/*376337*/ OPC_MoveChild, 14, ++/*376339*/ OPC_CheckInteger, 1, ++/*376341*/ OPC_CheckType, MVT::i32, ++/*376343*/ OPC_MoveParent, ++/*376344*/ OPC_MoveChild, 15, ++/*376346*/ OPC_CheckInteger, 1, ++/*376348*/ OPC_CheckType, MVT::i32, ++/*376350*/ OPC_MoveParent, ++/*376351*/ OPC_CheckType, MVT::v16i16, ++/*376353*/ OPC_MoveParent, ++/*376354*/ OPC_CheckType, MVT::v16i16, ++/*376356*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*376358*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a), LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*376366*/ /*Scope*/ 91|128,1/*219*/, /*->376587*/ ++/*376368*/ OPC_CheckChild0Same, 0, ++/*376370*/ OPC_MoveChild1, ++/*376371*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*376374*/ OPC_CheckChild0Integer, 1, ++/*376376*/ OPC_CheckChild0Type, MVT::i32, ++/*376378*/ OPC_CheckChild1Integer, 1, ++/*376380*/ OPC_CheckChild1Type, MVT::i32, ++/*376382*/ OPC_CheckChild2Integer, 1, ++/*376384*/ OPC_CheckChild2Type, MVT::i32, ++/*376386*/ OPC_CheckChild3Integer, 1, ++/*376388*/ OPC_CheckChild3Type, MVT::i32, ++/*376390*/ OPC_CheckChild4Integer, 1, ++/*376392*/ OPC_CheckChild4Type, MVT::i32, ++/*376394*/ OPC_MoveChild5, ++/*376395*/ OPC_CheckInteger, 1, ++/*376397*/ OPC_CheckType, MVT::i32, ++/*376399*/ OPC_MoveParent, ++/*376400*/ OPC_MoveChild6, ++/*376401*/ OPC_CheckInteger, 1, ++/*376403*/ OPC_CheckType, MVT::i32, ++/*376405*/ OPC_MoveParent, ++/*376406*/ OPC_MoveChild7, ++/*376407*/ OPC_CheckInteger, 1, ++/*376409*/ OPC_CheckType, MVT::i32, ++/*376411*/ OPC_MoveParent, ++/*376412*/ OPC_MoveChild, 8, ++/*376414*/ OPC_CheckInteger, 1, ++/*376416*/ OPC_CheckType, MVT::i32, ++/*376418*/ OPC_MoveParent, ++/*376419*/ OPC_MoveChild, 9, ++/*376421*/ OPC_CheckInteger, 1, ++/*376423*/ OPC_CheckType, MVT::i32, ++/*376425*/ OPC_MoveParent, ++/*376426*/ OPC_MoveChild, 10, ++/*376428*/ OPC_CheckInteger, 1, ++/*376430*/ OPC_CheckType, MVT::i32, ++/*376432*/ OPC_MoveParent, ++/*376433*/ OPC_MoveChild, 11, ++/*376435*/ OPC_CheckInteger, 1, ++/*376437*/ OPC_CheckType, MVT::i32, ++/*376439*/ OPC_MoveParent, ++/*376440*/ OPC_MoveChild, 12, ++/*376442*/ OPC_CheckInteger, 1, ++/*376444*/ OPC_CheckType, MVT::i32, ++/*376446*/ OPC_MoveParent, ++/*376447*/ OPC_MoveChild, 13, ++/*376449*/ OPC_CheckInteger, 1, ++/*376451*/ OPC_CheckType, MVT::i32, ++/*376453*/ OPC_MoveParent, ++/*376454*/ OPC_MoveChild, 14, ++/*376456*/ OPC_CheckInteger, 1, ++/*376458*/ OPC_CheckType, MVT::i32, ++/*376460*/ OPC_MoveParent, ++/*376461*/ OPC_MoveChild, 15, ++/*376463*/ OPC_CheckInteger, 1, ++/*376465*/ OPC_CheckType, MVT::i32, ++/*376467*/ OPC_MoveParent, ++/*376468*/ OPC_MoveParent, ++/*376469*/ OPC_MoveParent, ++/*376470*/ OPC_CheckChild1Same, 1, ++/*376472*/ OPC_MoveParent, ++/*376473*/ OPC_MoveParent, ++/*376474*/ OPC_MoveChild1, ++/*376475*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*376478*/ OPC_CheckChild0Integer, 1, ++/*376480*/ OPC_CheckChild0Type, MVT::i32, ++/*376482*/ OPC_CheckChild1Integer, 1, ++/*376484*/ OPC_CheckChild1Type, MVT::i32, ++/*376486*/ OPC_CheckChild2Integer, 1, ++/*376488*/ OPC_CheckChild2Type, MVT::i32, ++/*376490*/ OPC_CheckChild3Integer, 1, ++/*376492*/ OPC_CheckChild3Type, MVT::i32, ++/*376494*/ OPC_CheckChild4Integer, 1, ++/*376496*/ OPC_CheckChild4Type, MVT::i32, ++/*376498*/ OPC_MoveChild5, ++/*376499*/ OPC_CheckInteger, 1, ++/*376501*/ OPC_CheckType, MVT::i32, ++/*376503*/ OPC_MoveParent, ++/*376504*/ OPC_MoveChild6, ++/*376505*/ OPC_CheckInteger, 1, ++/*376507*/ OPC_CheckType, MVT::i32, ++/*376509*/ OPC_MoveParent, ++/*376510*/ OPC_MoveChild7, ++/*376511*/ OPC_CheckInteger, 1, ++/*376513*/ OPC_CheckType, MVT::i32, ++/*376515*/ OPC_MoveParent, ++/*376516*/ OPC_MoveChild, 8, ++/*376518*/ OPC_CheckInteger, 1, ++/*376520*/ OPC_CheckType, MVT::i32, ++/*376522*/ OPC_MoveParent, ++/*376523*/ OPC_MoveChild, 9, ++/*376525*/ OPC_CheckInteger, 1, ++/*376527*/ OPC_CheckType, MVT::i32, ++/*376529*/ OPC_MoveParent, ++/*376530*/ OPC_MoveChild, 10, ++/*376532*/ OPC_CheckInteger, 1, ++/*376534*/ OPC_CheckType, MVT::i32, ++/*376536*/ OPC_MoveParent, ++/*376537*/ OPC_MoveChild, 11, ++/*376539*/ OPC_CheckInteger, 1, ++/*376541*/ OPC_CheckType, MVT::i32, ++/*376543*/ OPC_MoveParent, ++/*376544*/ OPC_MoveChild, 12, ++/*376546*/ OPC_CheckInteger, 1, ++/*376548*/ OPC_CheckType, MVT::i32, ++/*376550*/ OPC_MoveParent, ++/*376551*/ OPC_MoveChild, 13, ++/*376553*/ OPC_CheckInteger, 1, ++/*376555*/ OPC_CheckType, MVT::i32, ++/*376557*/ OPC_MoveParent, ++/*376558*/ OPC_MoveChild, 14, ++/*376560*/ OPC_CheckInteger, 1, ++/*376562*/ OPC_CheckType, MVT::i32, ++/*376564*/ OPC_MoveParent, ++/*376565*/ OPC_MoveChild, 15, ++/*376567*/ OPC_CheckInteger, 1, ++/*376569*/ OPC_CheckType, MVT::i32, ++/*376571*/ OPC_MoveParent, ++/*376572*/ OPC_CheckType, MVT::v16i16, ++/*376574*/ OPC_MoveParent, ++/*376575*/ OPC_CheckType, MVT::v16i16, ++/*376577*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*376579*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*376587*/ /*Scope*/ 91|128,1/*219*/, /*->376808*/ ++/*376589*/ OPC_MoveChild0, ++/*376590*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*376593*/ OPC_CheckChild0Integer, 1, ++/*376595*/ OPC_CheckChild0Type, MVT::i32, ++/*376597*/ OPC_CheckChild1Integer, 1, ++/*376599*/ OPC_CheckChild1Type, MVT::i32, ++/*376601*/ OPC_CheckChild2Integer, 1, ++/*376603*/ OPC_CheckChild2Type, MVT::i32, ++/*376605*/ OPC_CheckChild3Integer, 1, ++/*376607*/ OPC_CheckChild3Type, MVT::i32, ++/*376609*/ OPC_CheckChild4Integer, 1, ++/*376611*/ OPC_CheckChild4Type, MVT::i32, ++/*376613*/ OPC_MoveChild5, ++/*376614*/ OPC_CheckInteger, 1, ++/*376616*/ OPC_CheckType, MVT::i32, ++/*376618*/ OPC_MoveParent, ++/*376619*/ OPC_MoveChild6, ++/*376620*/ OPC_CheckInteger, 1, ++/*376622*/ OPC_CheckType, MVT::i32, ++/*376624*/ OPC_MoveParent, ++/*376625*/ OPC_MoveChild7, ++/*376626*/ OPC_CheckInteger, 1, ++/*376628*/ OPC_CheckType, MVT::i32, ++/*376630*/ OPC_MoveParent, ++/*376631*/ OPC_MoveChild, 8, ++/*376633*/ OPC_CheckInteger, 1, ++/*376635*/ OPC_CheckType, MVT::i32, ++/*376637*/ OPC_MoveParent, ++/*376638*/ OPC_MoveChild, 9, ++/*376640*/ OPC_CheckInteger, 1, ++/*376642*/ OPC_CheckType, MVT::i32, ++/*376644*/ OPC_MoveParent, ++/*376645*/ OPC_MoveChild, 10, ++/*376647*/ OPC_CheckInteger, 1, ++/*376649*/ OPC_CheckType, MVT::i32, ++/*376651*/ OPC_MoveParent, ++/*376652*/ OPC_MoveChild, 11, ++/*376654*/ OPC_CheckInteger, 1, ++/*376656*/ OPC_CheckType, MVT::i32, ++/*376658*/ OPC_MoveParent, ++/*376659*/ OPC_MoveChild, 12, ++/*376661*/ OPC_CheckInteger, 1, ++/*376663*/ OPC_CheckType, MVT::i32, ++/*376665*/ OPC_MoveParent, ++/*376666*/ OPC_MoveChild, 13, ++/*376668*/ OPC_CheckInteger, 1, ++/*376670*/ OPC_CheckType, MVT::i32, ++/*376672*/ OPC_MoveParent, ++/*376673*/ OPC_MoveChild, 14, ++/*376675*/ OPC_CheckInteger, 1, ++/*376677*/ OPC_CheckType, MVT::i32, ++/*376679*/ OPC_MoveParent, ++/*376680*/ OPC_MoveChild, 15, ++/*376682*/ OPC_CheckInteger, 1, ++/*376684*/ OPC_CheckType, MVT::i32, ++/*376686*/ OPC_MoveParent, ++/*376687*/ OPC_MoveParent, ++/*376688*/ OPC_CheckChild1Same, 1, ++/*376690*/ OPC_MoveParent, ++/*376691*/ OPC_CheckChild1Same, 0, ++/*376693*/ OPC_MoveParent, ++/*376694*/ OPC_MoveParent, ++/*376695*/ OPC_MoveChild1, ++/*376696*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*376699*/ OPC_CheckChild0Integer, 1, ++/*376701*/ OPC_CheckChild0Type, MVT::i32, ++/*376703*/ OPC_CheckChild1Integer, 1, ++/*376705*/ OPC_CheckChild1Type, MVT::i32, ++/*376707*/ OPC_CheckChild2Integer, 1, ++/*376709*/ OPC_CheckChild2Type, MVT::i32, ++/*376711*/ OPC_CheckChild3Integer, 1, ++/*376713*/ OPC_CheckChild3Type, MVT::i32, ++/*376715*/ OPC_CheckChild4Integer, 1, ++/*376717*/ OPC_CheckChild4Type, MVT::i32, ++/*376719*/ OPC_MoveChild5, ++/*376720*/ OPC_CheckInteger, 1, ++/*376722*/ OPC_CheckType, MVT::i32, ++/*376724*/ OPC_MoveParent, ++/*376725*/ OPC_MoveChild6, ++/*376726*/ OPC_CheckInteger, 1, ++/*376728*/ OPC_CheckType, MVT::i32, ++/*376730*/ OPC_MoveParent, ++/*376731*/ OPC_MoveChild7, ++/*376732*/ OPC_CheckInteger, 1, ++/*376734*/ OPC_CheckType, MVT::i32, ++/*376736*/ OPC_MoveParent, ++/*376737*/ OPC_MoveChild, 8, ++/*376739*/ OPC_CheckInteger, 1, ++/*376741*/ OPC_CheckType, MVT::i32, ++/*376743*/ OPC_MoveParent, ++/*376744*/ OPC_MoveChild, 9, ++/*376746*/ OPC_CheckInteger, 1, ++/*376748*/ OPC_CheckType, MVT::i32, ++/*376750*/ OPC_MoveParent, ++/*376751*/ OPC_MoveChild, 10, ++/*376753*/ OPC_CheckInteger, 1, ++/*376755*/ OPC_CheckType, MVT::i32, ++/*376757*/ OPC_MoveParent, ++/*376758*/ OPC_MoveChild, 11, ++/*376760*/ OPC_CheckInteger, 1, ++/*376762*/ OPC_CheckType, MVT::i32, ++/*376764*/ OPC_MoveParent, ++/*376765*/ OPC_MoveChild, 12, ++/*376767*/ OPC_CheckInteger, 1, ++/*376769*/ OPC_CheckType, MVT::i32, ++/*376771*/ OPC_MoveParent, ++/*376772*/ OPC_MoveChild, 13, ++/*376774*/ OPC_CheckInteger, 1, ++/*376776*/ OPC_CheckType, MVT::i32, ++/*376778*/ OPC_MoveParent, ++/*376779*/ OPC_MoveChild, 14, ++/*376781*/ OPC_CheckInteger, 1, ++/*376783*/ OPC_CheckType, MVT::i32, ++/*376785*/ OPC_MoveParent, ++/*376786*/ OPC_MoveChild, 15, ++/*376788*/ OPC_CheckInteger, 1, ++/*376790*/ OPC_CheckType, MVT::i32, ++/*376792*/ OPC_MoveParent, ++/*376793*/ OPC_CheckType, MVT::v16i16, ++/*376795*/ OPC_MoveParent, ++/*376796*/ OPC_CheckType, MVT::v16i16, ++/*376798*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*376800*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b), LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*376808*/ /*Scope*/ 91|128,1/*219*/, /*->377029*/ ++/*376810*/ OPC_CheckChild0Same, 1, ++/*376812*/ OPC_MoveChild1, ++/*376813*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*376816*/ OPC_CheckChild0Integer, 1, ++/*376818*/ OPC_CheckChild0Type, MVT::i32, ++/*376820*/ OPC_CheckChild1Integer, 1, ++/*376822*/ OPC_CheckChild1Type, MVT::i32, ++/*376824*/ OPC_CheckChild2Integer, 1, ++/*376826*/ OPC_CheckChild2Type, MVT::i32, ++/*376828*/ OPC_CheckChild3Integer, 1, ++/*376830*/ OPC_CheckChild3Type, MVT::i32, ++/*376832*/ OPC_CheckChild4Integer, 1, ++/*376834*/ OPC_CheckChild4Type, MVT::i32, ++/*376836*/ OPC_MoveChild5, ++/*376837*/ OPC_CheckInteger, 1, ++/*376839*/ OPC_CheckType, MVT::i32, ++/*376841*/ OPC_MoveParent, ++/*376842*/ OPC_MoveChild6, ++/*376843*/ OPC_CheckInteger, 1, ++/*376845*/ OPC_CheckType, MVT::i32, ++/*376847*/ OPC_MoveParent, ++/*376848*/ OPC_MoveChild7, ++/*376849*/ OPC_CheckInteger, 1, ++/*376851*/ OPC_CheckType, MVT::i32, ++/*376853*/ OPC_MoveParent, ++/*376854*/ OPC_MoveChild, 8, ++/*376856*/ OPC_CheckInteger, 1, ++/*376858*/ OPC_CheckType, MVT::i32, ++/*376860*/ OPC_MoveParent, ++/*376861*/ OPC_MoveChild, 9, ++/*376863*/ OPC_CheckInteger, 1, ++/*376865*/ OPC_CheckType, MVT::i32, ++/*376867*/ OPC_MoveParent, ++/*376868*/ OPC_MoveChild, 10, ++/*376870*/ OPC_CheckInteger, 1, ++/*376872*/ OPC_CheckType, MVT::i32, ++/*376874*/ OPC_MoveParent, ++/*376875*/ OPC_MoveChild, 11, ++/*376877*/ OPC_CheckInteger, 1, ++/*376879*/ OPC_CheckType, MVT::i32, ++/*376881*/ OPC_MoveParent, ++/*376882*/ OPC_MoveChild, 12, ++/*376884*/ OPC_CheckInteger, 1, ++/*376886*/ OPC_CheckType, MVT::i32, ++/*376888*/ OPC_MoveParent, ++/*376889*/ OPC_MoveChild, 13, ++/*376891*/ OPC_CheckInteger, 1, ++/*376893*/ OPC_CheckType, MVT::i32, ++/*376895*/ OPC_MoveParent, ++/*376896*/ OPC_MoveChild, 14, ++/*376898*/ OPC_CheckInteger, 1, ++/*376900*/ OPC_CheckType, MVT::i32, ++/*376902*/ OPC_MoveParent, ++/*376903*/ OPC_MoveChild, 15, ++/*376905*/ OPC_CheckInteger, 1, ++/*376907*/ OPC_CheckType, MVT::i32, ++/*376909*/ OPC_MoveParent, ++/*376910*/ OPC_MoveParent, ++/*376911*/ OPC_MoveParent, ++/*376912*/ OPC_CheckChild1Same, 0, ++/*376914*/ OPC_MoveParent, ++/*376915*/ OPC_MoveParent, ++/*376916*/ OPC_MoveChild1, ++/*376917*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*376920*/ OPC_CheckChild0Integer, 1, ++/*376922*/ OPC_CheckChild0Type, MVT::i32, ++/*376924*/ OPC_CheckChild1Integer, 1, ++/*376926*/ OPC_CheckChild1Type, MVT::i32, ++/*376928*/ OPC_CheckChild2Integer, 1, ++/*376930*/ OPC_CheckChild2Type, MVT::i32, ++/*376932*/ OPC_CheckChild3Integer, 1, ++/*376934*/ OPC_CheckChild3Type, MVT::i32, ++/*376936*/ OPC_CheckChild4Integer, 1, ++/*376938*/ OPC_CheckChild4Type, MVT::i32, ++/*376940*/ OPC_MoveChild5, ++/*376941*/ OPC_CheckInteger, 1, ++/*376943*/ OPC_CheckType, MVT::i32, ++/*376945*/ OPC_MoveParent, ++/*376946*/ OPC_MoveChild6, ++/*376947*/ OPC_CheckInteger, 1, ++/*376949*/ OPC_CheckType, MVT::i32, ++/*376951*/ OPC_MoveParent, ++/*376952*/ OPC_MoveChild7, ++/*376953*/ OPC_CheckInteger, 1, ++/*376955*/ OPC_CheckType, MVT::i32, ++/*376957*/ OPC_MoveParent, ++/*376958*/ OPC_MoveChild, 8, ++/*376960*/ OPC_CheckInteger, 1, ++/*376962*/ OPC_CheckType, MVT::i32, ++/*376964*/ OPC_MoveParent, ++/*376965*/ OPC_MoveChild, 9, ++/*376967*/ OPC_CheckInteger, 1, ++/*376969*/ OPC_CheckType, MVT::i32, ++/*376971*/ OPC_MoveParent, ++/*376972*/ OPC_MoveChild, 10, ++/*376974*/ OPC_CheckInteger, 1, ++/*376976*/ OPC_CheckType, MVT::i32, ++/*376978*/ OPC_MoveParent, ++/*376979*/ OPC_MoveChild, 11, ++/*376981*/ OPC_CheckInteger, 1, ++/*376983*/ OPC_CheckType, MVT::i32, ++/*376985*/ OPC_MoveParent, ++/*376986*/ OPC_MoveChild, 12, ++/*376988*/ OPC_CheckInteger, 1, ++/*376990*/ OPC_CheckType, MVT::i32, ++/*376992*/ OPC_MoveParent, ++/*376993*/ OPC_MoveChild, 13, ++/*376995*/ OPC_CheckInteger, 1, ++/*376997*/ OPC_CheckType, MVT::i32, ++/*376999*/ OPC_MoveParent, ++/*377000*/ OPC_MoveChild, 14, ++/*377002*/ OPC_CheckInteger, 1, ++/*377004*/ OPC_CheckType, MVT::i32, ++/*377006*/ OPC_MoveParent, ++/*377007*/ OPC_MoveChild, 15, ++/*377009*/ OPC_CheckInteger, 1, ++/*377011*/ OPC_CheckType, MVT::i32, ++/*377013*/ OPC_MoveParent, ++/*377014*/ OPC_CheckType, MVT::v16i16, ++/*377016*/ OPC_MoveParent, ++/*377017*/ OPC_CheckType, MVT::v16i16, ++/*377019*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*377021*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*377029*/ /*Scope*/ 91|128,1/*219*/, /*->377250*/ ++/*377031*/ OPC_CheckChild0Same, 0, ++/*377033*/ OPC_CheckChild1Same, 1, ++/*377035*/ OPC_MoveParent, ++/*377036*/ OPC_MoveChild1, ++/*377037*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*377040*/ OPC_CheckChild0Integer, 1, ++/*377042*/ OPC_CheckChild0Type, MVT::i32, ++/*377044*/ OPC_CheckChild1Integer, 1, ++/*377046*/ OPC_CheckChild1Type, MVT::i32, ++/*377048*/ OPC_CheckChild2Integer, 1, ++/*377050*/ OPC_CheckChild2Type, MVT::i32, ++/*377052*/ OPC_CheckChild3Integer, 1, ++/*377054*/ OPC_CheckChild3Type, MVT::i32, ++/*377056*/ OPC_CheckChild4Integer, 1, ++/*377058*/ OPC_CheckChild4Type, MVT::i32, ++/*377060*/ OPC_MoveChild5, ++/*377061*/ OPC_CheckInteger, 1, ++/*377063*/ OPC_CheckType, MVT::i32, ++/*377065*/ OPC_MoveParent, ++/*377066*/ OPC_MoveChild6, ++/*377067*/ OPC_CheckInteger, 1, ++/*377069*/ OPC_CheckType, MVT::i32, ++/*377071*/ OPC_MoveParent, ++/*377072*/ OPC_MoveChild7, ++/*377073*/ OPC_CheckInteger, 1, ++/*377075*/ OPC_CheckType, MVT::i32, ++/*377077*/ OPC_MoveParent, ++/*377078*/ OPC_MoveChild, 8, ++/*377080*/ OPC_CheckInteger, 1, ++/*377082*/ OPC_CheckType, MVT::i32, ++/*377084*/ OPC_MoveParent, ++/*377085*/ OPC_MoveChild, 9, ++/*377087*/ OPC_CheckInteger, 1, ++/*377089*/ OPC_CheckType, MVT::i32, ++/*377091*/ OPC_MoveParent, ++/*377092*/ OPC_MoveChild, 10, ++/*377094*/ OPC_CheckInteger, 1, ++/*377096*/ OPC_CheckType, MVT::i32, ++/*377098*/ OPC_MoveParent, ++/*377099*/ OPC_MoveChild, 11, ++/*377101*/ OPC_CheckInteger, 1, ++/*377103*/ OPC_CheckType, MVT::i32, ++/*377105*/ OPC_MoveParent, ++/*377106*/ OPC_MoveChild, 12, ++/*377108*/ OPC_CheckInteger, 1, ++/*377110*/ OPC_CheckType, MVT::i32, ++/*377112*/ OPC_MoveParent, ++/*377113*/ OPC_MoveChild, 13, ++/*377115*/ OPC_CheckInteger, 1, ++/*377117*/ OPC_CheckType, MVT::i32, ++/*377119*/ OPC_MoveParent, ++/*377120*/ OPC_MoveChild, 14, ++/*377122*/ OPC_CheckInteger, 1, ++/*377124*/ OPC_CheckType, MVT::i32, ++/*377126*/ OPC_MoveParent, ++/*377127*/ OPC_MoveChild, 15, ++/*377129*/ OPC_CheckInteger, 1, ++/*377131*/ OPC_CheckType, MVT::i32, ++/*377133*/ OPC_MoveParent, ++/*377134*/ OPC_MoveParent, ++/*377135*/ OPC_MoveParent, ++/*377136*/ OPC_MoveParent, ++/*377137*/ OPC_MoveChild1, ++/*377138*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*377141*/ OPC_CheckChild0Integer, 1, ++/*377143*/ OPC_CheckChild0Type, MVT::i32, ++/*377145*/ OPC_CheckChild1Integer, 1, ++/*377147*/ OPC_CheckChild1Type, MVT::i32, ++/*377149*/ OPC_CheckChild2Integer, 1, ++/*377151*/ OPC_CheckChild2Type, MVT::i32, ++/*377153*/ OPC_CheckChild3Integer, 1, ++/*377155*/ OPC_CheckChild3Type, MVT::i32, ++/*377157*/ OPC_CheckChild4Integer, 1, ++/*377159*/ OPC_CheckChild4Type, MVT::i32, ++/*377161*/ OPC_MoveChild5, ++/*377162*/ OPC_CheckInteger, 1, ++/*377164*/ OPC_CheckType, MVT::i32, ++/*377166*/ OPC_MoveParent, ++/*377167*/ OPC_MoveChild6, ++/*377168*/ OPC_CheckInteger, 1, ++/*377170*/ OPC_CheckType, MVT::i32, ++/*377172*/ OPC_MoveParent, ++/*377173*/ OPC_MoveChild7, ++/*377174*/ OPC_CheckInteger, 1, ++/*377176*/ OPC_CheckType, MVT::i32, ++/*377178*/ OPC_MoveParent, ++/*377179*/ OPC_MoveChild, 8, ++/*377181*/ OPC_CheckInteger, 1, ++/*377183*/ OPC_CheckType, MVT::i32, ++/*377185*/ OPC_MoveParent, ++/*377186*/ OPC_MoveChild, 9, ++/*377188*/ OPC_CheckInteger, 1, ++/*377190*/ OPC_CheckType, MVT::i32, ++/*377192*/ OPC_MoveParent, ++/*377193*/ OPC_MoveChild, 10, ++/*377195*/ OPC_CheckInteger, 1, ++/*377197*/ OPC_CheckType, MVT::i32, ++/*377199*/ OPC_MoveParent, ++/*377200*/ OPC_MoveChild, 11, ++/*377202*/ OPC_CheckInteger, 1, ++/*377204*/ OPC_CheckType, MVT::i32, ++/*377206*/ OPC_MoveParent, ++/*377207*/ OPC_MoveChild, 12, ++/*377209*/ OPC_CheckInteger, 1, ++/*377211*/ OPC_CheckType, MVT::i32, ++/*377213*/ OPC_MoveParent, ++/*377214*/ OPC_MoveChild, 13, ++/*377216*/ OPC_CheckInteger, 1, ++/*377218*/ OPC_CheckType, MVT::i32, ++/*377220*/ OPC_MoveParent, ++/*377221*/ OPC_MoveChild, 14, ++/*377223*/ OPC_CheckInteger, 1, ++/*377225*/ OPC_CheckType, MVT::i32, ++/*377227*/ OPC_MoveParent, ++/*377228*/ OPC_MoveChild, 15, ++/*377230*/ OPC_CheckInteger, 1, ++/*377232*/ OPC_CheckType, MVT::i32, ++/*377234*/ OPC_MoveParent, ++/*377235*/ OPC_CheckType, MVT::v16i16, ++/*377237*/ OPC_MoveParent, ++/*377238*/ OPC_CheckType, MVT::v16i16, ++/*377240*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*377242*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*377250*/ /*Scope*/ 91|128,1/*219*/, /*->377471*/ ++/*377252*/ OPC_CheckChild0Same, 1, ++/*377254*/ OPC_CheckChild1Same, 0, ++/*377256*/ OPC_MoveParent, ++/*377257*/ OPC_MoveChild1, ++/*377258*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*377261*/ OPC_CheckChild0Integer, 1, ++/*377263*/ OPC_CheckChild0Type, MVT::i32, ++/*377265*/ OPC_CheckChild1Integer, 1, ++/*377267*/ OPC_CheckChild1Type, MVT::i32, ++/*377269*/ OPC_CheckChild2Integer, 1, ++/*377271*/ OPC_CheckChild2Type, MVT::i32, ++/*377273*/ OPC_CheckChild3Integer, 1, ++/*377275*/ OPC_CheckChild3Type, MVT::i32, ++/*377277*/ OPC_CheckChild4Integer, 1, ++/*377279*/ OPC_CheckChild4Type, MVT::i32, ++/*377281*/ OPC_MoveChild5, ++/*377282*/ OPC_CheckInteger, 1, ++/*377284*/ OPC_CheckType, MVT::i32, ++/*377286*/ OPC_MoveParent, ++/*377287*/ OPC_MoveChild6, ++/*377288*/ OPC_CheckInteger, 1, ++/*377290*/ OPC_CheckType, MVT::i32, ++/*377292*/ OPC_MoveParent, ++/*377293*/ OPC_MoveChild7, ++/*377294*/ OPC_CheckInteger, 1, ++/*377296*/ OPC_CheckType, MVT::i32, ++/*377298*/ OPC_MoveParent, ++/*377299*/ OPC_MoveChild, 8, ++/*377301*/ OPC_CheckInteger, 1, ++/*377303*/ OPC_CheckType, MVT::i32, ++/*377305*/ OPC_MoveParent, ++/*377306*/ OPC_MoveChild, 9, ++/*377308*/ OPC_CheckInteger, 1, ++/*377310*/ OPC_CheckType, MVT::i32, ++/*377312*/ OPC_MoveParent, ++/*377313*/ OPC_MoveChild, 10, ++/*377315*/ OPC_CheckInteger, 1, ++/*377317*/ OPC_CheckType, MVT::i32, ++/*377319*/ OPC_MoveParent, ++/*377320*/ OPC_MoveChild, 11, ++/*377322*/ OPC_CheckInteger, 1, ++/*377324*/ OPC_CheckType, MVT::i32, ++/*377326*/ OPC_MoveParent, ++/*377327*/ OPC_MoveChild, 12, ++/*377329*/ OPC_CheckInteger, 1, ++/*377331*/ OPC_CheckType, MVT::i32, ++/*377333*/ OPC_MoveParent, ++/*377334*/ OPC_MoveChild, 13, ++/*377336*/ OPC_CheckInteger, 1, ++/*377338*/ OPC_CheckType, MVT::i32, ++/*377340*/ OPC_MoveParent, ++/*377341*/ OPC_MoveChild, 14, ++/*377343*/ OPC_CheckInteger, 1, ++/*377345*/ OPC_CheckType, MVT::i32, ++/*377347*/ OPC_MoveParent, ++/*377348*/ OPC_MoveChild, 15, ++/*377350*/ OPC_CheckInteger, 1, ++/*377352*/ OPC_CheckType, MVT::i32, ++/*377354*/ OPC_MoveParent, ++/*377355*/ OPC_MoveParent, ++/*377356*/ OPC_MoveParent, ++/*377357*/ OPC_MoveParent, ++/*377358*/ OPC_MoveChild1, ++/*377359*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*377362*/ OPC_CheckChild0Integer, 1, ++/*377364*/ OPC_CheckChild0Type, MVT::i32, ++/*377366*/ OPC_CheckChild1Integer, 1, ++/*377368*/ OPC_CheckChild1Type, MVT::i32, ++/*377370*/ OPC_CheckChild2Integer, 1, ++/*377372*/ OPC_CheckChild2Type, MVT::i32, ++/*377374*/ OPC_CheckChild3Integer, 1, ++/*377376*/ OPC_CheckChild3Type, MVT::i32, ++/*377378*/ OPC_CheckChild4Integer, 1, ++/*377380*/ OPC_CheckChild4Type, MVT::i32, ++/*377382*/ OPC_MoveChild5, ++/*377383*/ OPC_CheckInteger, 1, ++/*377385*/ OPC_CheckType, MVT::i32, ++/*377387*/ OPC_MoveParent, ++/*377388*/ OPC_MoveChild6, ++/*377389*/ OPC_CheckInteger, 1, ++/*377391*/ OPC_CheckType, MVT::i32, ++/*377393*/ OPC_MoveParent, ++/*377394*/ OPC_MoveChild7, ++/*377395*/ OPC_CheckInteger, 1, ++/*377397*/ OPC_CheckType, MVT::i32, ++/*377399*/ OPC_MoveParent, ++/*377400*/ OPC_MoveChild, 8, ++/*377402*/ OPC_CheckInteger, 1, ++/*377404*/ OPC_CheckType, MVT::i32, ++/*377406*/ OPC_MoveParent, ++/*377407*/ OPC_MoveChild, 9, ++/*377409*/ OPC_CheckInteger, 1, ++/*377411*/ OPC_CheckType, MVT::i32, ++/*377413*/ OPC_MoveParent, ++/*377414*/ OPC_MoveChild, 10, ++/*377416*/ OPC_CheckInteger, 1, ++/*377418*/ OPC_CheckType, MVT::i32, ++/*377420*/ OPC_MoveParent, ++/*377421*/ OPC_MoveChild, 11, ++/*377423*/ OPC_CheckInteger, 1, ++/*377425*/ OPC_CheckType, MVT::i32, ++/*377427*/ OPC_MoveParent, ++/*377428*/ OPC_MoveChild, 12, ++/*377430*/ OPC_CheckInteger, 1, ++/*377432*/ OPC_CheckType, MVT::i32, ++/*377434*/ OPC_MoveParent, ++/*377435*/ OPC_MoveChild, 13, ++/*377437*/ OPC_CheckInteger, 1, ++/*377439*/ OPC_CheckType, MVT::i32, ++/*377441*/ OPC_MoveParent, ++/*377442*/ OPC_MoveChild, 14, ++/*377444*/ OPC_CheckInteger, 1, ++/*377446*/ OPC_CheckType, MVT::i32, ++/*377448*/ OPC_MoveParent, ++/*377449*/ OPC_MoveChild, 15, ++/*377451*/ OPC_CheckInteger, 1, ++/*377453*/ OPC_CheckType, MVT::i32, ++/*377455*/ OPC_MoveParent, ++/*377456*/ OPC_CheckType, MVT::v16i16, ++/*377458*/ OPC_MoveParent, ++/*377459*/ OPC_CheckType, MVT::v16i16, ++/*377461*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*377463*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*377471*/ 0, /*End of Scope*/ ++/*377472*/ /*Scope*/ 62|128,3/*446*/, /*->377920*/ ++/*377474*/ OPC_CheckChild0Same, 1, ++/*377476*/ OPC_MoveChild1, ++/*377477*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*377480*/ OPC_Scope, 89|128,1/*217*/, /*->377700*/ // 2 children in Scope ++/*377483*/ OPC_MoveChild0, ++/*377484*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*377487*/ OPC_CheckChild0Integer, 1, ++/*377489*/ OPC_CheckChild0Type, MVT::i32, ++/*377491*/ OPC_CheckChild1Integer, 1, ++/*377493*/ OPC_CheckChild1Type, MVT::i32, ++/*377495*/ OPC_CheckChild2Integer, 1, ++/*377497*/ OPC_CheckChild2Type, MVT::i32, ++/*377499*/ OPC_CheckChild3Integer, 1, ++/*377501*/ OPC_CheckChild3Type, MVT::i32, ++/*377503*/ OPC_CheckChild4Integer, 1, ++/*377505*/ OPC_CheckChild4Type, MVT::i32, ++/*377507*/ OPC_MoveChild5, ++/*377508*/ OPC_CheckInteger, 1, ++/*377510*/ OPC_CheckType, MVT::i32, ++/*377512*/ OPC_MoveParent, ++/*377513*/ OPC_MoveChild6, ++/*377514*/ OPC_CheckInteger, 1, ++/*377516*/ OPC_CheckType, MVT::i32, ++/*377518*/ OPC_MoveParent, ++/*377519*/ OPC_MoveChild7, ++/*377520*/ OPC_CheckInteger, 1, ++/*377522*/ OPC_CheckType, MVT::i32, ++/*377524*/ OPC_MoveParent, ++/*377525*/ OPC_MoveChild, 8, ++/*377527*/ OPC_CheckInteger, 1, ++/*377529*/ OPC_CheckType, MVT::i32, ++/*377531*/ OPC_MoveParent, ++/*377532*/ OPC_MoveChild, 9, ++/*377534*/ OPC_CheckInteger, 1, ++/*377536*/ OPC_CheckType, MVT::i32, ++/*377538*/ OPC_MoveParent, ++/*377539*/ OPC_MoveChild, 10, ++/*377541*/ OPC_CheckInteger, 1, ++/*377543*/ OPC_CheckType, MVT::i32, ++/*377545*/ OPC_MoveParent, ++/*377546*/ OPC_MoveChild, 11, ++/*377548*/ OPC_CheckInteger, 1, ++/*377550*/ OPC_CheckType, MVT::i32, ++/*377552*/ OPC_MoveParent, ++/*377553*/ OPC_MoveChild, 12, ++/*377555*/ OPC_CheckInteger, 1, ++/*377557*/ OPC_CheckType, MVT::i32, ++/*377559*/ OPC_MoveParent, ++/*377560*/ OPC_MoveChild, 13, ++/*377562*/ OPC_CheckInteger, 1, ++/*377564*/ OPC_CheckType, MVT::i32, ++/*377566*/ OPC_MoveParent, ++/*377567*/ OPC_MoveChild, 14, ++/*377569*/ OPC_CheckInteger, 1, ++/*377571*/ OPC_CheckType, MVT::i32, ++/*377573*/ OPC_MoveParent, ++/*377574*/ OPC_MoveChild, 15, ++/*377576*/ OPC_CheckInteger, 1, ++/*377578*/ OPC_CheckType, MVT::i32, ++/*377580*/ OPC_MoveParent, ++/*377581*/ OPC_MoveParent, ++/*377582*/ OPC_CheckChild1Same, 0, ++/*377584*/ OPC_MoveParent, ++/*377585*/ OPC_MoveParent, ++/*377586*/ OPC_MoveParent, ++/*377587*/ OPC_MoveChild1, ++/*377588*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*377591*/ OPC_CheckChild0Integer, 1, ++/*377593*/ OPC_CheckChild0Type, MVT::i32, ++/*377595*/ OPC_CheckChild1Integer, 1, ++/*377597*/ OPC_CheckChild1Type, MVT::i32, ++/*377599*/ OPC_CheckChild2Integer, 1, ++/*377601*/ OPC_CheckChild2Type, MVT::i32, ++/*377603*/ OPC_CheckChild3Integer, 1, ++/*377605*/ OPC_CheckChild3Type, MVT::i32, ++/*377607*/ OPC_CheckChild4Integer, 1, ++/*377609*/ OPC_CheckChild4Type, MVT::i32, ++/*377611*/ OPC_MoveChild5, ++/*377612*/ OPC_CheckInteger, 1, ++/*377614*/ OPC_CheckType, MVT::i32, ++/*377616*/ OPC_MoveParent, ++/*377617*/ OPC_MoveChild6, ++/*377618*/ OPC_CheckInteger, 1, ++/*377620*/ OPC_CheckType, MVT::i32, ++/*377622*/ OPC_MoveParent, ++/*377623*/ OPC_MoveChild7, ++/*377624*/ OPC_CheckInteger, 1, ++/*377626*/ OPC_CheckType, MVT::i32, ++/*377628*/ OPC_MoveParent, ++/*377629*/ OPC_MoveChild, 8, ++/*377631*/ OPC_CheckInteger, 1, ++/*377633*/ OPC_CheckType, MVT::i32, ++/*377635*/ OPC_MoveParent, ++/*377636*/ OPC_MoveChild, 9, ++/*377638*/ OPC_CheckInteger, 1, ++/*377640*/ OPC_CheckType, MVT::i32, ++/*377642*/ OPC_MoveParent, ++/*377643*/ OPC_MoveChild, 10, ++/*377645*/ OPC_CheckInteger, 1, ++/*377647*/ OPC_CheckType, MVT::i32, ++/*377649*/ OPC_MoveParent, ++/*377650*/ OPC_MoveChild, 11, ++/*377652*/ OPC_CheckInteger, 1, ++/*377654*/ OPC_CheckType, MVT::i32, ++/*377656*/ OPC_MoveParent, ++/*377657*/ OPC_MoveChild, 12, ++/*377659*/ OPC_CheckInteger, 1, ++/*377661*/ OPC_CheckType, MVT::i32, ++/*377663*/ OPC_MoveParent, ++/*377664*/ OPC_MoveChild, 13, ++/*377666*/ OPC_CheckInteger, 1, ++/*377668*/ OPC_CheckType, MVT::i32, ++/*377670*/ OPC_MoveParent, ++/*377671*/ OPC_MoveChild, 14, ++/*377673*/ OPC_CheckInteger, 1, ++/*377675*/ OPC_CheckType, MVT::i32, ++/*377677*/ OPC_MoveParent, ++/*377678*/ OPC_MoveChild, 15, ++/*377680*/ OPC_CheckInteger, 1, ++/*377682*/ OPC_CheckType, MVT::i32, ++/*377684*/ OPC_MoveParent, ++/*377685*/ OPC_CheckType, MVT::v16i16, ++/*377687*/ OPC_MoveParent, ++/*377688*/ OPC_CheckType, MVT::v16i16, ++/*377690*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*377692*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*377700*/ /*Scope*/ 89|128,1/*217*/, /*->377919*/ ++/*377702*/ OPC_CheckChild0Same, 0, ++/*377704*/ OPC_MoveChild1, ++/*377705*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*377708*/ OPC_CheckChild0Integer, 1, ++/*377710*/ OPC_CheckChild0Type, MVT::i32, ++/*377712*/ OPC_CheckChild1Integer, 1, ++/*377714*/ OPC_CheckChild1Type, MVT::i32, ++/*377716*/ OPC_CheckChild2Integer, 1, ++/*377718*/ OPC_CheckChild2Type, MVT::i32, ++/*377720*/ OPC_CheckChild3Integer, 1, ++/*377722*/ OPC_CheckChild3Type, MVT::i32, ++/*377724*/ OPC_CheckChild4Integer, 1, ++/*377726*/ OPC_CheckChild4Type, MVT::i32, ++/*377728*/ OPC_MoveChild5, ++/*377729*/ OPC_CheckInteger, 1, ++/*377731*/ OPC_CheckType, MVT::i32, ++/*377733*/ OPC_MoveParent, ++/*377734*/ OPC_MoveChild6, ++/*377735*/ OPC_CheckInteger, 1, ++/*377737*/ OPC_CheckType, MVT::i32, ++/*377739*/ OPC_MoveParent, ++/*377740*/ OPC_MoveChild7, ++/*377741*/ OPC_CheckInteger, 1, ++/*377743*/ OPC_CheckType, MVT::i32, ++/*377745*/ OPC_MoveParent, ++/*377746*/ OPC_MoveChild, 8, ++/*377748*/ OPC_CheckInteger, 1, ++/*377750*/ OPC_CheckType, MVT::i32, ++/*377752*/ OPC_MoveParent, ++/*377753*/ OPC_MoveChild, 9, ++/*377755*/ OPC_CheckInteger, 1, ++/*377757*/ OPC_CheckType, MVT::i32, ++/*377759*/ OPC_MoveParent, ++/*377760*/ OPC_MoveChild, 10, ++/*377762*/ OPC_CheckInteger, 1, ++/*377764*/ OPC_CheckType, MVT::i32, ++/*377766*/ OPC_MoveParent, ++/*377767*/ OPC_MoveChild, 11, ++/*377769*/ OPC_CheckInteger, 1, ++/*377771*/ OPC_CheckType, MVT::i32, ++/*377773*/ OPC_MoveParent, ++/*377774*/ OPC_MoveChild, 12, ++/*377776*/ OPC_CheckInteger, 1, ++/*377778*/ OPC_CheckType, MVT::i32, ++/*377780*/ OPC_MoveParent, ++/*377781*/ OPC_MoveChild, 13, ++/*377783*/ OPC_CheckInteger, 1, ++/*377785*/ OPC_CheckType, MVT::i32, ++/*377787*/ OPC_MoveParent, ++/*377788*/ OPC_MoveChild, 14, ++/*377790*/ OPC_CheckInteger, 1, ++/*377792*/ OPC_CheckType, MVT::i32, ++/*377794*/ OPC_MoveParent, ++/*377795*/ OPC_MoveChild, 15, ++/*377797*/ OPC_CheckInteger, 1, ++/*377799*/ OPC_CheckType, MVT::i32, ++/*377801*/ OPC_MoveParent, ++/*377802*/ OPC_MoveParent, ++/*377803*/ OPC_MoveParent, ++/*377804*/ OPC_MoveParent, ++/*377805*/ OPC_MoveParent, ++/*377806*/ OPC_MoveChild1, ++/*377807*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*377810*/ OPC_CheckChild0Integer, 1, ++/*377812*/ OPC_CheckChild0Type, MVT::i32, ++/*377814*/ OPC_CheckChild1Integer, 1, ++/*377816*/ OPC_CheckChild1Type, MVT::i32, ++/*377818*/ OPC_CheckChild2Integer, 1, ++/*377820*/ OPC_CheckChild2Type, MVT::i32, ++/*377822*/ OPC_CheckChild3Integer, 1, ++/*377824*/ OPC_CheckChild3Type, MVT::i32, ++/*377826*/ OPC_CheckChild4Integer, 1, ++/*377828*/ OPC_CheckChild4Type, MVT::i32, ++/*377830*/ OPC_MoveChild5, ++/*377831*/ OPC_CheckInteger, 1, ++/*377833*/ OPC_CheckType, MVT::i32, ++/*377835*/ OPC_MoveParent, ++/*377836*/ OPC_MoveChild6, ++/*377837*/ OPC_CheckInteger, 1, ++/*377839*/ OPC_CheckType, MVT::i32, ++/*377841*/ OPC_MoveParent, ++/*377842*/ OPC_MoveChild7, ++/*377843*/ OPC_CheckInteger, 1, ++/*377845*/ OPC_CheckType, MVT::i32, ++/*377847*/ OPC_MoveParent, ++/*377848*/ OPC_MoveChild, 8, ++/*377850*/ OPC_CheckInteger, 1, ++/*377852*/ OPC_CheckType, MVT::i32, ++/*377854*/ OPC_MoveParent, ++/*377855*/ OPC_MoveChild, 9, ++/*377857*/ OPC_CheckInteger, 1, ++/*377859*/ OPC_CheckType, MVT::i32, ++/*377861*/ OPC_MoveParent, ++/*377862*/ OPC_MoveChild, 10, ++/*377864*/ OPC_CheckInteger, 1, ++/*377866*/ OPC_CheckType, MVT::i32, ++/*377868*/ OPC_MoveParent, ++/*377869*/ OPC_MoveChild, 11, ++/*377871*/ OPC_CheckInteger, 1, ++/*377873*/ OPC_CheckType, MVT::i32, ++/*377875*/ OPC_MoveParent, ++/*377876*/ OPC_MoveChild, 12, ++/*377878*/ OPC_CheckInteger, 1, ++/*377880*/ OPC_CheckType, MVT::i32, ++/*377882*/ OPC_MoveParent, ++/*377883*/ OPC_MoveChild, 13, ++/*377885*/ OPC_CheckInteger, 1, ++/*377887*/ OPC_CheckType, MVT::i32, ++/*377889*/ OPC_MoveParent, ++/*377890*/ OPC_MoveChild, 14, ++/*377892*/ OPC_CheckInteger, 1, ++/*377894*/ OPC_CheckType, MVT::i32, ++/*377896*/ OPC_MoveParent, ++/*377897*/ OPC_MoveChild, 15, ++/*377899*/ OPC_CheckInteger, 1, ++/*377901*/ OPC_CheckType, MVT::i32, ++/*377903*/ OPC_MoveParent, ++/*377904*/ OPC_CheckType, MVT::v16i16, ++/*377906*/ OPC_MoveParent, ++/*377907*/ OPC_CheckType, MVT::v16i16, ++/*377909*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*377911*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*377919*/ 0, /*End of Scope*/ ++/*377920*/ /*Scope*/ 62|128,3/*446*/, /*->378368*/ ++/*377922*/ OPC_CheckChild0Same, 0, ++/*377924*/ OPC_MoveChild1, ++/*377925*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*377928*/ OPC_Scope, 89|128,1/*217*/, /*->378148*/ // 2 children in Scope ++/*377931*/ OPC_MoveChild0, ++/*377932*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*377935*/ OPC_CheckChild0Integer, 1, ++/*377937*/ OPC_CheckChild0Type, MVT::i32, ++/*377939*/ OPC_CheckChild1Integer, 1, ++/*377941*/ OPC_CheckChild1Type, MVT::i32, ++/*377943*/ OPC_CheckChild2Integer, 1, ++/*377945*/ OPC_CheckChild2Type, MVT::i32, ++/*377947*/ OPC_CheckChild3Integer, 1, ++/*377949*/ OPC_CheckChild3Type, MVT::i32, ++/*377951*/ OPC_CheckChild4Integer, 1, ++/*377953*/ OPC_CheckChild4Type, MVT::i32, ++/*377955*/ OPC_MoveChild5, ++/*377956*/ OPC_CheckInteger, 1, ++/*377958*/ OPC_CheckType, MVT::i32, ++/*377960*/ OPC_MoveParent, ++/*377961*/ OPC_MoveChild6, ++/*377962*/ OPC_CheckInteger, 1, ++/*377964*/ OPC_CheckType, MVT::i32, ++/*377966*/ OPC_MoveParent, ++/*377967*/ OPC_MoveChild7, ++/*377968*/ OPC_CheckInteger, 1, ++/*377970*/ OPC_CheckType, MVT::i32, ++/*377972*/ OPC_MoveParent, ++/*377973*/ OPC_MoveChild, 8, ++/*377975*/ OPC_CheckInteger, 1, ++/*377977*/ OPC_CheckType, MVT::i32, ++/*377979*/ OPC_MoveParent, ++/*377980*/ OPC_MoveChild, 9, ++/*377982*/ OPC_CheckInteger, 1, ++/*377984*/ OPC_CheckType, MVT::i32, ++/*377986*/ OPC_MoveParent, ++/*377987*/ OPC_MoveChild, 10, ++/*377989*/ OPC_CheckInteger, 1, ++/*377991*/ OPC_CheckType, MVT::i32, ++/*377993*/ OPC_MoveParent, ++/*377994*/ OPC_MoveChild, 11, ++/*377996*/ OPC_CheckInteger, 1, ++/*377998*/ OPC_CheckType, MVT::i32, ++/*378000*/ OPC_MoveParent, ++/*378001*/ OPC_MoveChild, 12, ++/*378003*/ OPC_CheckInteger, 1, ++/*378005*/ OPC_CheckType, MVT::i32, ++/*378007*/ OPC_MoveParent, ++/*378008*/ OPC_MoveChild, 13, ++/*378010*/ OPC_CheckInteger, 1, ++/*378012*/ OPC_CheckType, MVT::i32, ++/*378014*/ OPC_MoveParent, ++/*378015*/ OPC_MoveChild, 14, ++/*378017*/ OPC_CheckInteger, 1, ++/*378019*/ OPC_CheckType, MVT::i32, ++/*378021*/ OPC_MoveParent, ++/*378022*/ OPC_MoveChild, 15, ++/*378024*/ OPC_CheckInteger, 1, ++/*378026*/ OPC_CheckType, MVT::i32, ++/*378028*/ OPC_MoveParent, ++/*378029*/ OPC_MoveParent, ++/*378030*/ OPC_CheckChild1Same, 1, ++/*378032*/ OPC_MoveParent, ++/*378033*/ OPC_MoveParent, ++/*378034*/ OPC_MoveParent, ++/*378035*/ OPC_MoveChild1, ++/*378036*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*378039*/ OPC_CheckChild0Integer, 1, ++/*378041*/ OPC_CheckChild0Type, MVT::i32, ++/*378043*/ OPC_CheckChild1Integer, 1, ++/*378045*/ OPC_CheckChild1Type, MVT::i32, ++/*378047*/ OPC_CheckChild2Integer, 1, ++/*378049*/ OPC_CheckChild2Type, MVT::i32, ++/*378051*/ OPC_CheckChild3Integer, 1, ++/*378053*/ OPC_CheckChild3Type, MVT::i32, ++/*378055*/ OPC_CheckChild4Integer, 1, ++/*378057*/ OPC_CheckChild4Type, MVT::i32, ++/*378059*/ OPC_MoveChild5, ++/*378060*/ OPC_CheckInteger, 1, ++/*378062*/ OPC_CheckType, MVT::i32, ++/*378064*/ OPC_MoveParent, ++/*378065*/ OPC_MoveChild6, ++/*378066*/ OPC_CheckInteger, 1, ++/*378068*/ OPC_CheckType, MVT::i32, ++/*378070*/ OPC_MoveParent, ++/*378071*/ OPC_MoveChild7, ++/*378072*/ OPC_CheckInteger, 1, ++/*378074*/ OPC_CheckType, MVT::i32, ++/*378076*/ OPC_MoveParent, ++/*378077*/ OPC_MoveChild, 8, ++/*378079*/ OPC_CheckInteger, 1, ++/*378081*/ OPC_CheckType, MVT::i32, ++/*378083*/ OPC_MoveParent, ++/*378084*/ OPC_MoveChild, 9, ++/*378086*/ OPC_CheckInteger, 1, ++/*378088*/ OPC_CheckType, MVT::i32, ++/*378090*/ OPC_MoveParent, ++/*378091*/ OPC_MoveChild, 10, ++/*378093*/ OPC_CheckInteger, 1, ++/*378095*/ OPC_CheckType, MVT::i32, ++/*378097*/ OPC_MoveParent, ++/*378098*/ OPC_MoveChild, 11, ++/*378100*/ OPC_CheckInteger, 1, ++/*378102*/ OPC_CheckType, MVT::i32, ++/*378104*/ OPC_MoveParent, ++/*378105*/ OPC_MoveChild, 12, ++/*378107*/ OPC_CheckInteger, 1, ++/*378109*/ OPC_CheckType, MVT::i32, ++/*378111*/ OPC_MoveParent, ++/*378112*/ OPC_MoveChild, 13, ++/*378114*/ OPC_CheckInteger, 1, ++/*378116*/ OPC_CheckType, MVT::i32, ++/*378118*/ OPC_MoveParent, ++/*378119*/ OPC_MoveChild, 14, ++/*378121*/ OPC_CheckInteger, 1, ++/*378123*/ OPC_CheckType, MVT::i32, ++/*378125*/ OPC_MoveParent, ++/*378126*/ OPC_MoveChild, 15, ++/*378128*/ OPC_CheckInteger, 1, ++/*378130*/ OPC_CheckType, MVT::i32, ++/*378132*/ OPC_MoveParent, ++/*378133*/ OPC_CheckType, MVT::v16i16, ++/*378135*/ OPC_MoveParent, ++/*378136*/ OPC_CheckType, MVT::v16i16, ++/*378138*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*378140*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*378148*/ /*Scope*/ 89|128,1/*217*/, /*->378367*/ ++/*378150*/ OPC_CheckChild0Same, 1, ++/*378152*/ OPC_MoveChild1, ++/*378153*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*378156*/ OPC_CheckChild0Integer, 1, ++/*378158*/ OPC_CheckChild0Type, MVT::i32, ++/*378160*/ OPC_CheckChild1Integer, 1, ++/*378162*/ OPC_CheckChild1Type, MVT::i32, ++/*378164*/ OPC_CheckChild2Integer, 1, ++/*378166*/ OPC_CheckChild2Type, MVT::i32, ++/*378168*/ OPC_CheckChild3Integer, 1, ++/*378170*/ OPC_CheckChild3Type, MVT::i32, ++/*378172*/ OPC_CheckChild4Integer, 1, ++/*378174*/ OPC_CheckChild4Type, MVT::i32, ++/*378176*/ OPC_MoveChild5, ++/*378177*/ OPC_CheckInteger, 1, ++/*378179*/ OPC_CheckType, MVT::i32, ++/*378181*/ OPC_MoveParent, ++/*378182*/ OPC_MoveChild6, ++/*378183*/ OPC_CheckInteger, 1, ++/*378185*/ OPC_CheckType, MVT::i32, ++/*378187*/ OPC_MoveParent, ++/*378188*/ OPC_MoveChild7, ++/*378189*/ OPC_CheckInteger, 1, ++/*378191*/ OPC_CheckType, MVT::i32, ++/*378193*/ OPC_MoveParent, ++/*378194*/ OPC_MoveChild, 8, ++/*378196*/ OPC_CheckInteger, 1, ++/*378198*/ OPC_CheckType, MVT::i32, ++/*378200*/ OPC_MoveParent, ++/*378201*/ OPC_MoveChild, 9, ++/*378203*/ OPC_CheckInteger, 1, ++/*378205*/ OPC_CheckType, MVT::i32, ++/*378207*/ OPC_MoveParent, ++/*378208*/ OPC_MoveChild, 10, ++/*378210*/ OPC_CheckInteger, 1, ++/*378212*/ OPC_CheckType, MVT::i32, ++/*378214*/ OPC_MoveParent, ++/*378215*/ OPC_MoveChild, 11, ++/*378217*/ OPC_CheckInteger, 1, ++/*378219*/ OPC_CheckType, MVT::i32, ++/*378221*/ OPC_MoveParent, ++/*378222*/ OPC_MoveChild, 12, ++/*378224*/ OPC_CheckInteger, 1, ++/*378226*/ OPC_CheckType, MVT::i32, ++/*378228*/ OPC_MoveParent, ++/*378229*/ OPC_MoveChild, 13, ++/*378231*/ OPC_CheckInteger, 1, ++/*378233*/ OPC_CheckType, MVT::i32, ++/*378235*/ OPC_MoveParent, ++/*378236*/ OPC_MoveChild, 14, ++/*378238*/ OPC_CheckInteger, 1, ++/*378240*/ OPC_CheckType, MVT::i32, ++/*378242*/ OPC_MoveParent, ++/*378243*/ OPC_MoveChild, 15, ++/*378245*/ OPC_CheckInteger, 1, ++/*378247*/ OPC_CheckType, MVT::i32, ++/*378249*/ OPC_MoveParent, ++/*378250*/ OPC_MoveParent, ++/*378251*/ OPC_MoveParent, ++/*378252*/ OPC_MoveParent, ++/*378253*/ OPC_MoveParent, ++/*378254*/ OPC_MoveChild1, ++/*378255*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*378258*/ OPC_CheckChild0Integer, 1, ++/*378260*/ OPC_CheckChild0Type, MVT::i32, ++/*378262*/ OPC_CheckChild1Integer, 1, ++/*378264*/ OPC_CheckChild1Type, MVT::i32, ++/*378266*/ OPC_CheckChild2Integer, 1, ++/*378268*/ OPC_CheckChild2Type, MVT::i32, ++/*378270*/ OPC_CheckChild3Integer, 1, ++/*378272*/ OPC_CheckChild3Type, MVT::i32, ++/*378274*/ OPC_CheckChild4Integer, 1, ++/*378276*/ OPC_CheckChild4Type, MVT::i32, ++/*378278*/ OPC_MoveChild5, ++/*378279*/ OPC_CheckInteger, 1, ++/*378281*/ OPC_CheckType, MVT::i32, ++/*378283*/ OPC_MoveParent, ++/*378284*/ OPC_MoveChild6, ++/*378285*/ OPC_CheckInteger, 1, ++/*378287*/ OPC_CheckType, MVT::i32, ++/*378289*/ OPC_MoveParent, ++/*378290*/ OPC_MoveChild7, ++/*378291*/ OPC_CheckInteger, 1, ++/*378293*/ OPC_CheckType, MVT::i32, ++/*378295*/ OPC_MoveParent, ++/*378296*/ OPC_MoveChild, 8, ++/*378298*/ OPC_CheckInteger, 1, ++/*378300*/ OPC_CheckType, MVT::i32, ++/*378302*/ OPC_MoveParent, ++/*378303*/ OPC_MoveChild, 9, ++/*378305*/ OPC_CheckInteger, 1, ++/*378307*/ OPC_CheckType, MVT::i32, ++/*378309*/ OPC_MoveParent, ++/*378310*/ OPC_MoveChild, 10, ++/*378312*/ OPC_CheckInteger, 1, ++/*378314*/ OPC_CheckType, MVT::i32, ++/*378316*/ OPC_MoveParent, ++/*378317*/ OPC_MoveChild, 11, ++/*378319*/ OPC_CheckInteger, 1, ++/*378321*/ OPC_CheckType, MVT::i32, ++/*378323*/ OPC_MoveParent, ++/*378324*/ OPC_MoveChild, 12, ++/*378326*/ OPC_CheckInteger, 1, ++/*378328*/ OPC_CheckType, MVT::i32, ++/*378330*/ OPC_MoveParent, ++/*378331*/ OPC_MoveChild, 13, ++/*378333*/ OPC_CheckInteger, 1, ++/*378335*/ OPC_CheckType, MVT::i32, ++/*378337*/ OPC_MoveParent, ++/*378338*/ OPC_MoveChild, 14, ++/*378340*/ OPC_CheckInteger, 1, ++/*378342*/ OPC_CheckType, MVT::i32, ++/*378344*/ OPC_MoveParent, ++/*378345*/ OPC_MoveChild, 15, ++/*378347*/ OPC_CheckInteger, 1, ++/*378349*/ OPC_CheckType, MVT::i32, ++/*378351*/ OPC_MoveParent, ++/*378352*/ OPC_CheckType, MVT::v16i16, ++/*378354*/ OPC_MoveParent, ++/*378355*/ OPC_CheckType, MVT::v16i16, ++/*378357*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*378359*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*378367*/ 0, /*End of Scope*/ ++/*378368*/ /*Scope*/ 91|128,2/*347*/, /*->378717*/ ++/*378370*/ OPC_MoveChild0, ++/*378371*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*378374*/ OPC_CheckChild0Integer, 1, ++/*378376*/ OPC_CheckChild0Type, MVT::i32, ++/*378378*/ OPC_CheckChild1Integer, 1, ++/*378380*/ OPC_CheckChild1Type, MVT::i32, ++/*378382*/ OPC_CheckChild2Integer, 1, ++/*378384*/ OPC_CheckChild2Type, MVT::i32, ++/*378386*/ OPC_CheckChild3Integer, 1, ++/*378388*/ OPC_CheckChild3Type, MVT::i32, ++/*378390*/ OPC_CheckChild4Integer, 1, ++/*378392*/ OPC_CheckChild4Type, MVT::i32, ++/*378394*/ OPC_MoveChild5, ++/*378395*/ OPC_CheckInteger, 1, ++/*378397*/ OPC_CheckType, MVT::i32, ++/*378399*/ OPC_MoveParent, ++/*378400*/ OPC_MoveChild6, ++/*378401*/ OPC_CheckInteger, 1, ++/*378403*/ OPC_CheckType, MVT::i32, ++/*378405*/ OPC_MoveParent, ++/*378406*/ OPC_MoveChild7, ++/*378407*/ OPC_CheckInteger, 1, ++/*378409*/ OPC_CheckType, MVT::i32, ++/*378411*/ OPC_MoveParent, ++/*378412*/ OPC_MoveChild, 8, ++/*378414*/ OPC_CheckInteger, 1, ++/*378416*/ OPC_CheckType, MVT::i32, ++/*378418*/ OPC_MoveParent, ++/*378419*/ OPC_MoveChild, 9, ++/*378421*/ OPC_CheckInteger, 1, ++/*378423*/ OPC_CheckType, MVT::i32, ++/*378425*/ OPC_MoveParent, ++/*378426*/ OPC_MoveChild, 10, ++/*378428*/ OPC_CheckInteger, 1, ++/*378430*/ OPC_CheckType, MVT::i32, ++/*378432*/ OPC_MoveParent, ++/*378433*/ OPC_MoveChild, 11, ++/*378435*/ OPC_CheckInteger, 1, ++/*378437*/ OPC_CheckType, MVT::i32, ++/*378439*/ OPC_MoveParent, ++/*378440*/ OPC_MoveChild, 12, ++/*378442*/ OPC_CheckInteger, 1, ++/*378444*/ OPC_CheckType, MVT::i32, ++/*378446*/ OPC_MoveParent, ++/*378447*/ OPC_MoveChild, 13, ++/*378449*/ OPC_CheckInteger, 1, ++/*378451*/ OPC_CheckType, MVT::i32, ++/*378453*/ OPC_MoveParent, ++/*378454*/ OPC_MoveChild, 14, ++/*378456*/ OPC_CheckInteger, 1, ++/*378458*/ OPC_CheckType, MVT::i32, ++/*378460*/ OPC_MoveParent, ++/*378461*/ OPC_MoveChild, 15, ++/*378463*/ OPC_CheckInteger, 1, ++/*378465*/ OPC_CheckType, MVT::i32, ++/*378467*/ OPC_MoveParent, ++/*378468*/ OPC_MoveParent, ++/*378469*/ OPC_MoveChild1, ++/*378470*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*378473*/ OPC_Scope, 120, /*->378595*/ // 2 children in Scope ++/*378475*/ OPC_CheckChild0Same, 0, ++/*378477*/ OPC_CheckChild1Same, 1, ++/*378479*/ OPC_MoveParent, ++/*378480*/ OPC_MoveParent, ++/*378481*/ OPC_MoveParent, ++/*378482*/ OPC_MoveChild1, ++/*378483*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*378486*/ OPC_CheckChild0Integer, 1, ++/*378488*/ OPC_CheckChild0Type, MVT::i32, ++/*378490*/ OPC_CheckChild1Integer, 1, ++/*378492*/ OPC_CheckChild1Type, MVT::i32, ++/*378494*/ OPC_CheckChild2Integer, 1, ++/*378496*/ OPC_CheckChild2Type, MVT::i32, ++/*378498*/ OPC_CheckChild3Integer, 1, ++/*378500*/ OPC_CheckChild3Type, MVT::i32, ++/*378502*/ OPC_CheckChild4Integer, 1, ++/*378504*/ OPC_CheckChild4Type, MVT::i32, ++/*378506*/ OPC_MoveChild5, ++/*378507*/ OPC_CheckInteger, 1, ++/*378509*/ OPC_CheckType, MVT::i32, ++/*378511*/ OPC_MoveParent, ++/*378512*/ OPC_MoveChild6, ++/*378513*/ OPC_CheckInteger, 1, ++/*378515*/ OPC_CheckType, MVT::i32, ++/*378517*/ OPC_MoveParent, ++/*378518*/ OPC_MoveChild7, ++/*378519*/ OPC_CheckInteger, 1, ++/*378521*/ OPC_CheckType, MVT::i32, ++/*378523*/ OPC_MoveParent, ++/*378524*/ OPC_MoveChild, 8, ++/*378526*/ OPC_CheckInteger, 1, ++/*378528*/ OPC_CheckType, MVT::i32, ++/*378530*/ OPC_MoveParent, ++/*378531*/ OPC_MoveChild, 9, ++/*378533*/ OPC_CheckInteger, 1, ++/*378535*/ OPC_CheckType, MVT::i32, ++/*378537*/ OPC_MoveParent, ++/*378538*/ OPC_MoveChild, 10, ++/*378540*/ OPC_CheckInteger, 1, ++/*378542*/ OPC_CheckType, MVT::i32, ++/*378544*/ OPC_MoveParent, ++/*378545*/ OPC_MoveChild, 11, ++/*378547*/ OPC_CheckInteger, 1, ++/*378549*/ OPC_CheckType, MVT::i32, ++/*378551*/ OPC_MoveParent, ++/*378552*/ OPC_MoveChild, 12, ++/*378554*/ OPC_CheckInteger, 1, ++/*378556*/ OPC_CheckType, MVT::i32, ++/*378558*/ OPC_MoveParent, ++/*378559*/ OPC_MoveChild, 13, ++/*378561*/ OPC_CheckInteger, 1, ++/*378563*/ OPC_CheckType, MVT::i32, ++/*378565*/ OPC_MoveParent, ++/*378566*/ OPC_MoveChild, 14, ++/*378568*/ OPC_CheckInteger, 1, ++/*378570*/ OPC_CheckType, MVT::i32, ++/*378572*/ OPC_MoveParent, ++/*378573*/ OPC_MoveChild, 15, ++/*378575*/ OPC_CheckInteger, 1, ++/*378577*/ OPC_CheckType, MVT::i32, ++/*378579*/ OPC_MoveParent, ++/*378580*/ OPC_CheckType, MVT::v16i16, ++/*378582*/ OPC_MoveParent, ++/*378583*/ OPC_CheckType, MVT::v16i16, ++/*378585*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*378587*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*378595*/ /*Scope*/ 120, /*->378716*/ ++/*378596*/ OPC_CheckChild0Same, 1, ++/*378598*/ OPC_CheckChild1Same, 0, ++/*378600*/ OPC_MoveParent, ++/*378601*/ OPC_MoveParent, ++/*378602*/ OPC_MoveParent, ++/*378603*/ OPC_MoveChild1, ++/*378604*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*378607*/ OPC_CheckChild0Integer, 1, ++/*378609*/ OPC_CheckChild0Type, MVT::i32, ++/*378611*/ OPC_CheckChild1Integer, 1, ++/*378613*/ OPC_CheckChild1Type, MVT::i32, ++/*378615*/ OPC_CheckChild2Integer, 1, ++/*378617*/ OPC_CheckChild2Type, MVT::i32, ++/*378619*/ OPC_CheckChild3Integer, 1, ++/*378621*/ OPC_CheckChild3Type, MVT::i32, ++/*378623*/ OPC_CheckChild4Integer, 1, ++/*378625*/ OPC_CheckChild4Type, MVT::i32, ++/*378627*/ OPC_MoveChild5, ++/*378628*/ OPC_CheckInteger, 1, ++/*378630*/ OPC_CheckType, MVT::i32, ++/*378632*/ OPC_MoveParent, ++/*378633*/ OPC_MoveChild6, ++/*378634*/ OPC_CheckInteger, 1, ++/*378636*/ OPC_CheckType, MVT::i32, ++/*378638*/ OPC_MoveParent, ++/*378639*/ OPC_MoveChild7, ++/*378640*/ OPC_CheckInteger, 1, ++/*378642*/ OPC_CheckType, MVT::i32, ++/*378644*/ OPC_MoveParent, ++/*378645*/ OPC_MoveChild, 8, ++/*378647*/ OPC_CheckInteger, 1, ++/*378649*/ OPC_CheckType, MVT::i32, ++/*378651*/ OPC_MoveParent, ++/*378652*/ OPC_MoveChild, 9, ++/*378654*/ OPC_CheckInteger, 1, ++/*378656*/ OPC_CheckType, MVT::i32, ++/*378658*/ OPC_MoveParent, ++/*378659*/ OPC_MoveChild, 10, ++/*378661*/ OPC_CheckInteger, 1, ++/*378663*/ OPC_CheckType, MVT::i32, ++/*378665*/ OPC_MoveParent, ++/*378666*/ OPC_MoveChild, 11, ++/*378668*/ OPC_CheckInteger, 1, ++/*378670*/ OPC_CheckType, MVT::i32, ++/*378672*/ OPC_MoveParent, ++/*378673*/ OPC_MoveChild, 12, ++/*378675*/ OPC_CheckInteger, 1, ++/*378677*/ OPC_CheckType, MVT::i32, ++/*378679*/ OPC_MoveParent, ++/*378680*/ OPC_MoveChild, 13, ++/*378682*/ OPC_CheckInteger, 1, ++/*378684*/ OPC_CheckType, MVT::i32, ++/*378686*/ OPC_MoveParent, ++/*378687*/ OPC_MoveChild, 14, ++/*378689*/ OPC_CheckInteger, 1, ++/*378691*/ OPC_CheckType, MVT::i32, ++/*378693*/ OPC_MoveParent, ++/*378694*/ OPC_MoveChild, 15, ++/*378696*/ OPC_CheckInteger, 1, ++/*378698*/ OPC_CheckType, MVT::i32, ++/*378700*/ OPC_MoveParent, ++/*378701*/ OPC_CheckType, MVT::v16i16, ++/*378703*/ OPC_MoveParent, ++/*378704*/ OPC_CheckType, MVT::v16i16, ++/*378706*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*378708*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*378716*/ 0, /*End of Scope*/ ++/*378717*/ 0, /*End of Scope*/ ++/*378718*/ /*Scope*/ 102|128,21/*2790*/, /*->381510*/ ++/*378720*/ OPC_MoveChild0, ++/*378721*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*378724*/ OPC_CheckChild0Integer, 1, ++/*378726*/ OPC_CheckChild0Type, MVT::i32, ++/*378728*/ OPC_CheckChild1Integer, 1, ++/*378730*/ OPC_CheckChild1Type, MVT::i32, ++/*378732*/ OPC_CheckChild2Integer, 1, ++/*378734*/ OPC_CheckChild2Type, MVT::i32, ++/*378736*/ OPC_CheckChild3Integer, 1, ++/*378738*/ OPC_CheckChild3Type, MVT::i32, ++/*378740*/ OPC_CheckChild4Integer, 1, ++/*378742*/ OPC_CheckChild4Type, MVT::i32, ++/*378744*/ OPC_MoveChild5, ++/*378745*/ OPC_CheckInteger, 1, ++/*378747*/ OPC_CheckType, MVT::i32, ++/*378749*/ OPC_MoveParent, ++/*378750*/ OPC_MoveChild6, ++/*378751*/ OPC_CheckInteger, 1, ++/*378753*/ OPC_CheckType, MVT::i32, ++/*378755*/ OPC_MoveParent, ++/*378756*/ OPC_MoveChild7, ++/*378757*/ OPC_CheckInteger, 1, ++/*378759*/ OPC_CheckType, MVT::i32, ++/*378761*/ OPC_MoveParent, ++/*378762*/ OPC_MoveChild, 8, ++/*378764*/ OPC_CheckInteger, 1, ++/*378766*/ OPC_CheckType, MVT::i32, ++/*378768*/ OPC_MoveParent, ++/*378769*/ OPC_MoveChild, 9, ++/*378771*/ OPC_CheckInteger, 1, ++/*378773*/ OPC_CheckType, MVT::i32, ++/*378775*/ OPC_MoveParent, ++/*378776*/ OPC_MoveChild, 10, ++/*378778*/ OPC_CheckInteger, 1, ++/*378780*/ OPC_CheckType, MVT::i32, ++/*378782*/ OPC_MoveParent, ++/*378783*/ OPC_MoveChild, 11, ++/*378785*/ OPC_CheckInteger, 1, ++/*378787*/ OPC_CheckType, MVT::i32, ++/*378789*/ OPC_MoveParent, ++/*378790*/ OPC_MoveChild, 12, ++/*378792*/ OPC_CheckInteger, 1, ++/*378794*/ OPC_CheckType, MVT::i32, ++/*378796*/ OPC_MoveParent, ++/*378797*/ OPC_MoveChild, 13, ++/*378799*/ OPC_CheckInteger, 1, ++/*378801*/ OPC_CheckType, MVT::i32, ++/*378803*/ OPC_MoveParent, ++/*378804*/ OPC_MoveChild, 14, ++/*378806*/ OPC_CheckInteger, 1, ++/*378808*/ OPC_CheckType, MVT::i32, ++/*378810*/ OPC_MoveParent, ++/*378811*/ OPC_MoveChild, 15, ++/*378813*/ OPC_CheckInteger, 1, ++/*378815*/ OPC_CheckType, MVT::i32, ++/*378817*/ OPC_MoveParent, ++/*378818*/ OPC_MoveParent, ++/*378819*/ OPC_RecordChild1, // #0 = $b ++/*378820*/ OPC_MoveParent, ++/*378821*/ OPC_RecordChild1, // #1 = $a ++/*378822*/ OPC_MoveParent, ++/*378823*/ OPC_MoveChild1, ++/*378824*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*378827*/ OPC_CheckChild0Integer, 15, ++/*378829*/ OPC_CheckChild0Type, MVT::i32, ++/*378831*/ OPC_CheckChild1Integer, 15, ++/*378833*/ OPC_CheckChild1Type, MVT::i32, ++/*378835*/ OPC_CheckChild2Integer, 15, ++/*378837*/ OPC_CheckChild2Type, MVT::i32, ++/*378839*/ OPC_CheckChild3Integer, 15, ++/*378841*/ OPC_CheckChild3Type, MVT::i32, ++/*378843*/ OPC_CheckChild4Integer, 15, ++/*378845*/ OPC_CheckChild4Type, MVT::i32, ++/*378847*/ OPC_MoveChild5, ++/*378848*/ OPC_CheckInteger, 15, ++/*378850*/ OPC_CheckType, MVT::i32, ++/*378852*/ OPC_MoveParent, ++/*378853*/ OPC_MoveChild6, ++/*378854*/ OPC_CheckInteger, 15, ++/*378856*/ OPC_CheckType, MVT::i32, ++/*378858*/ OPC_MoveParent, ++/*378859*/ OPC_MoveChild7, ++/*378860*/ OPC_CheckInteger, 15, ++/*378862*/ OPC_CheckType, MVT::i32, ++/*378864*/ OPC_MoveParent, ++/*378865*/ OPC_MoveChild, 8, ++/*378867*/ OPC_CheckInteger, 15, ++/*378869*/ OPC_CheckType, MVT::i32, ++/*378871*/ OPC_MoveParent, ++/*378872*/ OPC_MoveChild, 9, ++/*378874*/ OPC_CheckInteger, 15, ++/*378876*/ OPC_CheckType, MVT::i32, ++/*378878*/ OPC_MoveParent, ++/*378879*/ OPC_MoveChild, 10, ++/*378881*/ OPC_CheckInteger, 15, ++/*378883*/ OPC_CheckType, MVT::i32, ++/*378885*/ OPC_MoveParent, ++/*378886*/ OPC_MoveChild, 11, ++/*378888*/ OPC_CheckInteger, 15, ++/*378890*/ OPC_CheckType, MVT::i32, ++/*378892*/ OPC_MoveParent, ++/*378893*/ OPC_MoveChild, 12, ++/*378895*/ OPC_CheckInteger, 15, ++/*378897*/ OPC_CheckType, MVT::i32, ++/*378899*/ OPC_MoveParent, ++/*378900*/ OPC_MoveChild, 13, ++/*378902*/ OPC_CheckInteger, 15, ++/*378904*/ OPC_CheckType, MVT::i32, ++/*378906*/ OPC_MoveParent, ++/*378907*/ OPC_MoveChild, 14, ++/*378909*/ OPC_CheckInteger, 15, ++/*378911*/ OPC_CheckType, MVT::i32, ++/*378913*/ OPC_MoveParent, ++/*378914*/ OPC_MoveChild, 15, ++/*378916*/ OPC_CheckInteger, 15, ++/*378918*/ OPC_CheckType, MVT::i32, ++/*378920*/ OPC_MoveParent, ++/*378921*/ OPC_CheckType, MVT::v16i16, ++/*378923*/ OPC_MoveParent, ++/*378924*/ OPC_MoveParent, ++/*378925*/ OPC_MoveChild1, ++/*378926*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*378929*/ OPC_Scope, 52|128,10/*1332*/, /*->380264*/ // 4 children in Scope ++/*378932*/ OPC_MoveChild0, ++/*378933*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*378936*/ OPC_Scope, 91|128,1/*219*/, /*->379158*/ // 6 children in Scope ++/*378939*/ OPC_MoveChild0, ++/*378940*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*378943*/ OPC_CheckChild0Integer, 1, ++/*378945*/ OPC_CheckChild0Type, MVT::i32, ++/*378947*/ OPC_CheckChild1Integer, 1, ++/*378949*/ OPC_CheckChild1Type, MVT::i32, ++/*378951*/ OPC_CheckChild2Integer, 1, ++/*378953*/ OPC_CheckChild2Type, MVT::i32, ++/*378955*/ OPC_CheckChild3Integer, 1, ++/*378957*/ OPC_CheckChild3Type, MVT::i32, ++/*378959*/ OPC_CheckChild4Integer, 1, ++/*378961*/ OPC_CheckChild4Type, MVT::i32, ++/*378963*/ OPC_MoveChild5, ++/*378964*/ OPC_CheckInteger, 1, ++/*378966*/ OPC_CheckType, MVT::i32, ++/*378968*/ OPC_MoveParent, ++/*378969*/ OPC_MoveChild6, ++/*378970*/ OPC_CheckInteger, 1, ++/*378972*/ OPC_CheckType, MVT::i32, ++/*378974*/ OPC_MoveParent, ++/*378975*/ OPC_MoveChild7, ++/*378976*/ OPC_CheckInteger, 1, ++/*378978*/ OPC_CheckType, MVT::i32, ++/*378980*/ OPC_MoveParent, ++/*378981*/ OPC_MoveChild, 8, ++/*378983*/ OPC_CheckInteger, 1, ++/*378985*/ OPC_CheckType, MVT::i32, ++/*378987*/ OPC_MoveParent, ++/*378988*/ OPC_MoveChild, 9, ++/*378990*/ OPC_CheckInteger, 1, ++/*378992*/ OPC_CheckType, MVT::i32, ++/*378994*/ OPC_MoveParent, ++/*378995*/ OPC_MoveChild, 10, ++/*378997*/ OPC_CheckInteger, 1, ++/*378999*/ OPC_CheckType, MVT::i32, ++/*379001*/ OPC_MoveParent, ++/*379002*/ OPC_MoveChild, 11, ++/*379004*/ OPC_CheckInteger, 1, ++/*379006*/ OPC_CheckType, MVT::i32, ++/*379008*/ OPC_MoveParent, ++/*379009*/ OPC_MoveChild, 12, ++/*379011*/ OPC_CheckInteger, 1, ++/*379013*/ OPC_CheckType, MVT::i32, ++/*379015*/ OPC_MoveParent, ++/*379016*/ OPC_MoveChild, 13, ++/*379018*/ OPC_CheckInteger, 1, ++/*379020*/ OPC_CheckType, MVT::i32, ++/*379022*/ OPC_MoveParent, ++/*379023*/ OPC_MoveChild, 14, ++/*379025*/ OPC_CheckInteger, 1, ++/*379027*/ OPC_CheckType, MVT::i32, ++/*379029*/ OPC_MoveParent, ++/*379030*/ OPC_MoveChild, 15, ++/*379032*/ OPC_CheckInteger, 1, ++/*379034*/ OPC_CheckType, MVT::i32, ++/*379036*/ OPC_MoveParent, ++/*379037*/ OPC_MoveParent, ++/*379038*/ OPC_CheckChild1Same, 1, ++/*379040*/ OPC_MoveParent, ++/*379041*/ OPC_CheckChild1Same, 0, ++/*379043*/ OPC_MoveParent, ++/*379044*/ OPC_MoveParent, ++/*379045*/ OPC_MoveChild1, ++/*379046*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*379049*/ OPC_CheckChild0Integer, 1, ++/*379051*/ OPC_CheckChild0Type, MVT::i32, ++/*379053*/ OPC_CheckChild1Integer, 1, ++/*379055*/ OPC_CheckChild1Type, MVT::i32, ++/*379057*/ OPC_CheckChild2Integer, 1, ++/*379059*/ OPC_CheckChild2Type, MVT::i32, ++/*379061*/ OPC_CheckChild3Integer, 1, ++/*379063*/ OPC_CheckChild3Type, MVT::i32, ++/*379065*/ OPC_CheckChild4Integer, 1, ++/*379067*/ OPC_CheckChild4Type, MVT::i32, ++/*379069*/ OPC_MoveChild5, ++/*379070*/ OPC_CheckInteger, 1, ++/*379072*/ OPC_CheckType, MVT::i32, ++/*379074*/ OPC_MoveParent, ++/*379075*/ OPC_MoveChild6, ++/*379076*/ OPC_CheckInteger, 1, ++/*379078*/ OPC_CheckType, MVT::i32, ++/*379080*/ OPC_MoveParent, ++/*379081*/ OPC_MoveChild7, ++/*379082*/ OPC_CheckInteger, 1, ++/*379084*/ OPC_CheckType, MVT::i32, ++/*379086*/ OPC_MoveParent, ++/*379087*/ OPC_MoveChild, 8, ++/*379089*/ OPC_CheckInteger, 1, ++/*379091*/ OPC_CheckType, MVT::i32, ++/*379093*/ OPC_MoveParent, ++/*379094*/ OPC_MoveChild, 9, ++/*379096*/ OPC_CheckInteger, 1, ++/*379098*/ OPC_CheckType, MVT::i32, ++/*379100*/ OPC_MoveParent, ++/*379101*/ OPC_MoveChild, 10, ++/*379103*/ OPC_CheckInteger, 1, ++/*379105*/ OPC_CheckType, MVT::i32, ++/*379107*/ OPC_MoveParent, ++/*379108*/ OPC_MoveChild, 11, ++/*379110*/ OPC_CheckInteger, 1, ++/*379112*/ OPC_CheckType, MVT::i32, ++/*379114*/ OPC_MoveParent, ++/*379115*/ OPC_MoveChild, 12, ++/*379117*/ OPC_CheckInteger, 1, ++/*379119*/ OPC_CheckType, MVT::i32, ++/*379121*/ OPC_MoveParent, ++/*379122*/ OPC_MoveChild, 13, ++/*379124*/ OPC_CheckInteger, 1, ++/*379126*/ OPC_CheckType, MVT::i32, ++/*379128*/ OPC_MoveParent, ++/*379129*/ OPC_MoveChild, 14, ++/*379131*/ OPC_CheckInteger, 1, ++/*379133*/ OPC_CheckType, MVT::i32, ++/*379135*/ OPC_MoveParent, ++/*379136*/ OPC_MoveChild, 15, ++/*379138*/ OPC_CheckInteger, 1, ++/*379140*/ OPC_CheckType, MVT::i32, ++/*379142*/ OPC_MoveParent, ++/*379143*/ OPC_CheckType, MVT::v16i16, ++/*379145*/ OPC_MoveParent, ++/*379146*/ OPC_CheckType, MVT::v16i16, ++/*379148*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*379150*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b), LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a), LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*379158*/ /*Scope*/ 91|128,1/*219*/, /*->379379*/ ++/*379160*/ OPC_CheckChild0Same, 1, ++/*379162*/ OPC_MoveChild1, ++/*379163*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*379166*/ OPC_CheckChild0Integer, 1, ++/*379168*/ OPC_CheckChild0Type, MVT::i32, ++/*379170*/ OPC_CheckChild1Integer, 1, ++/*379172*/ OPC_CheckChild1Type, MVT::i32, ++/*379174*/ OPC_CheckChild2Integer, 1, ++/*379176*/ OPC_CheckChild2Type, MVT::i32, ++/*379178*/ OPC_CheckChild3Integer, 1, ++/*379180*/ OPC_CheckChild3Type, MVT::i32, ++/*379182*/ OPC_CheckChild4Integer, 1, ++/*379184*/ OPC_CheckChild4Type, MVT::i32, ++/*379186*/ OPC_MoveChild5, ++/*379187*/ OPC_CheckInteger, 1, ++/*379189*/ OPC_CheckType, MVT::i32, ++/*379191*/ OPC_MoveParent, ++/*379192*/ OPC_MoveChild6, ++/*379193*/ OPC_CheckInteger, 1, ++/*379195*/ OPC_CheckType, MVT::i32, ++/*379197*/ OPC_MoveParent, ++/*379198*/ OPC_MoveChild7, ++/*379199*/ OPC_CheckInteger, 1, ++/*379201*/ OPC_CheckType, MVT::i32, ++/*379203*/ OPC_MoveParent, ++/*379204*/ OPC_MoveChild, 8, ++/*379206*/ OPC_CheckInteger, 1, ++/*379208*/ OPC_CheckType, MVT::i32, ++/*379210*/ OPC_MoveParent, ++/*379211*/ OPC_MoveChild, 9, ++/*379213*/ OPC_CheckInteger, 1, ++/*379215*/ OPC_CheckType, MVT::i32, ++/*379217*/ OPC_MoveParent, ++/*379218*/ OPC_MoveChild, 10, ++/*379220*/ OPC_CheckInteger, 1, ++/*379222*/ OPC_CheckType, MVT::i32, ++/*379224*/ OPC_MoveParent, ++/*379225*/ OPC_MoveChild, 11, ++/*379227*/ OPC_CheckInteger, 1, ++/*379229*/ OPC_CheckType, MVT::i32, ++/*379231*/ OPC_MoveParent, ++/*379232*/ OPC_MoveChild, 12, ++/*379234*/ OPC_CheckInteger, 1, ++/*379236*/ OPC_CheckType, MVT::i32, ++/*379238*/ OPC_MoveParent, ++/*379239*/ OPC_MoveChild, 13, ++/*379241*/ OPC_CheckInteger, 1, ++/*379243*/ OPC_CheckType, MVT::i32, ++/*379245*/ OPC_MoveParent, ++/*379246*/ OPC_MoveChild, 14, ++/*379248*/ OPC_CheckInteger, 1, ++/*379250*/ OPC_CheckType, MVT::i32, ++/*379252*/ OPC_MoveParent, ++/*379253*/ OPC_MoveChild, 15, ++/*379255*/ OPC_CheckInteger, 1, ++/*379257*/ OPC_CheckType, MVT::i32, ++/*379259*/ OPC_MoveParent, ++/*379260*/ OPC_MoveParent, ++/*379261*/ OPC_MoveParent, ++/*379262*/ OPC_CheckChild1Same, 0, ++/*379264*/ OPC_MoveParent, ++/*379265*/ OPC_MoveParent, ++/*379266*/ OPC_MoveChild1, ++/*379267*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*379270*/ OPC_CheckChild0Integer, 1, ++/*379272*/ OPC_CheckChild0Type, MVT::i32, ++/*379274*/ OPC_CheckChild1Integer, 1, ++/*379276*/ OPC_CheckChild1Type, MVT::i32, ++/*379278*/ OPC_CheckChild2Integer, 1, ++/*379280*/ OPC_CheckChild2Type, MVT::i32, ++/*379282*/ OPC_CheckChild3Integer, 1, ++/*379284*/ OPC_CheckChild3Type, MVT::i32, ++/*379286*/ OPC_CheckChild4Integer, 1, ++/*379288*/ OPC_CheckChild4Type, MVT::i32, ++/*379290*/ OPC_MoveChild5, ++/*379291*/ OPC_CheckInteger, 1, ++/*379293*/ OPC_CheckType, MVT::i32, ++/*379295*/ OPC_MoveParent, ++/*379296*/ OPC_MoveChild6, ++/*379297*/ OPC_CheckInteger, 1, ++/*379299*/ OPC_CheckType, MVT::i32, ++/*379301*/ OPC_MoveParent, ++/*379302*/ OPC_MoveChild7, ++/*379303*/ OPC_CheckInteger, 1, ++/*379305*/ OPC_CheckType, MVT::i32, ++/*379307*/ OPC_MoveParent, ++/*379308*/ OPC_MoveChild, 8, ++/*379310*/ OPC_CheckInteger, 1, ++/*379312*/ OPC_CheckType, MVT::i32, ++/*379314*/ OPC_MoveParent, ++/*379315*/ OPC_MoveChild, 9, ++/*379317*/ OPC_CheckInteger, 1, ++/*379319*/ OPC_CheckType, MVT::i32, ++/*379321*/ OPC_MoveParent, ++/*379322*/ OPC_MoveChild, 10, ++/*379324*/ OPC_CheckInteger, 1, ++/*379326*/ OPC_CheckType, MVT::i32, ++/*379328*/ OPC_MoveParent, ++/*379329*/ OPC_MoveChild, 11, ++/*379331*/ OPC_CheckInteger, 1, ++/*379333*/ OPC_CheckType, MVT::i32, ++/*379335*/ OPC_MoveParent, ++/*379336*/ OPC_MoveChild, 12, ++/*379338*/ OPC_CheckInteger, 1, ++/*379340*/ OPC_CheckType, MVT::i32, ++/*379342*/ OPC_MoveParent, ++/*379343*/ OPC_MoveChild, 13, ++/*379345*/ OPC_CheckInteger, 1, ++/*379347*/ OPC_CheckType, MVT::i32, ++/*379349*/ OPC_MoveParent, ++/*379350*/ OPC_MoveChild, 14, ++/*379352*/ OPC_CheckInteger, 1, ++/*379354*/ OPC_CheckType, MVT::i32, ++/*379356*/ OPC_MoveParent, ++/*379357*/ OPC_MoveChild, 15, ++/*379359*/ OPC_CheckInteger, 1, ++/*379361*/ OPC_CheckType, MVT::i32, ++/*379363*/ OPC_MoveParent, ++/*379364*/ OPC_CheckType, MVT::v16i16, ++/*379366*/ OPC_MoveParent, ++/*379367*/ OPC_CheckType, MVT::v16i16, ++/*379369*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*379371*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b), LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*379379*/ /*Scope*/ 91|128,1/*219*/, /*->379600*/ ++/*379381*/ OPC_MoveChild0, ++/*379382*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*379385*/ OPC_CheckChild0Integer, 1, ++/*379387*/ OPC_CheckChild0Type, MVT::i32, ++/*379389*/ OPC_CheckChild1Integer, 1, ++/*379391*/ OPC_CheckChild1Type, MVT::i32, ++/*379393*/ OPC_CheckChild2Integer, 1, ++/*379395*/ OPC_CheckChild2Type, MVT::i32, ++/*379397*/ OPC_CheckChild3Integer, 1, ++/*379399*/ OPC_CheckChild3Type, MVT::i32, ++/*379401*/ OPC_CheckChild4Integer, 1, ++/*379403*/ OPC_CheckChild4Type, MVT::i32, ++/*379405*/ OPC_MoveChild5, ++/*379406*/ OPC_CheckInteger, 1, ++/*379408*/ OPC_CheckType, MVT::i32, ++/*379410*/ OPC_MoveParent, ++/*379411*/ OPC_MoveChild6, ++/*379412*/ OPC_CheckInteger, 1, ++/*379414*/ OPC_CheckType, MVT::i32, ++/*379416*/ OPC_MoveParent, ++/*379417*/ OPC_MoveChild7, ++/*379418*/ OPC_CheckInteger, 1, ++/*379420*/ OPC_CheckType, MVT::i32, ++/*379422*/ OPC_MoveParent, ++/*379423*/ OPC_MoveChild, 8, ++/*379425*/ OPC_CheckInteger, 1, ++/*379427*/ OPC_CheckType, MVT::i32, ++/*379429*/ OPC_MoveParent, ++/*379430*/ OPC_MoveChild, 9, ++/*379432*/ OPC_CheckInteger, 1, ++/*379434*/ OPC_CheckType, MVT::i32, ++/*379436*/ OPC_MoveParent, ++/*379437*/ OPC_MoveChild, 10, ++/*379439*/ OPC_CheckInteger, 1, ++/*379441*/ OPC_CheckType, MVT::i32, ++/*379443*/ OPC_MoveParent, ++/*379444*/ OPC_MoveChild, 11, ++/*379446*/ OPC_CheckInteger, 1, ++/*379448*/ OPC_CheckType, MVT::i32, ++/*379450*/ OPC_MoveParent, ++/*379451*/ OPC_MoveChild, 12, ++/*379453*/ OPC_CheckInteger, 1, ++/*379455*/ OPC_CheckType, MVT::i32, ++/*379457*/ OPC_MoveParent, ++/*379458*/ OPC_MoveChild, 13, ++/*379460*/ OPC_CheckInteger, 1, ++/*379462*/ OPC_CheckType, MVT::i32, ++/*379464*/ OPC_MoveParent, ++/*379465*/ OPC_MoveChild, 14, ++/*379467*/ OPC_CheckInteger, 1, ++/*379469*/ OPC_CheckType, MVT::i32, ++/*379471*/ OPC_MoveParent, ++/*379472*/ OPC_MoveChild, 15, ++/*379474*/ OPC_CheckInteger, 1, ++/*379476*/ OPC_CheckType, MVT::i32, ++/*379478*/ OPC_MoveParent, ++/*379479*/ OPC_MoveParent, ++/*379480*/ OPC_CheckChild1Same, 0, ++/*379482*/ OPC_MoveParent, ++/*379483*/ OPC_CheckChild1Same, 1, ++/*379485*/ OPC_MoveParent, ++/*379486*/ OPC_MoveParent, ++/*379487*/ OPC_MoveChild1, ++/*379488*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*379491*/ OPC_CheckChild0Integer, 1, ++/*379493*/ OPC_CheckChild0Type, MVT::i32, ++/*379495*/ OPC_CheckChild1Integer, 1, ++/*379497*/ OPC_CheckChild1Type, MVT::i32, ++/*379499*/ OPC_CheckChild2Integer, 1, ++/*379501*/ OPC_CheckChild2Type, MVT::i32, ++/*379503*/ OPC_CheckChild3Integer, 1, ++/*379505*/ OPC_CheckChild3Type, MVT::i32, ++/*379507*/ OPC_CheckChild4Integer, 1, ++/*379509*/ OPC_CheckChild4Type, MVT::i32, ++/*379511*/ OPC_MoveChild5, ++/*379512*/ OPC_CheckInteger, 1, ++/*379514*/ OPC_CheckType, MVT::i32, ++/*379516*/ OPC_MoveParent, ++/*379517*/ OPC_MoveChild6, ++/*379518*/ OPC_CheckInteger, 1, ++/*379520*/ OPC_CheckType, MVT::i32, ++/*379522*/ OPC_MoveParent, ++/*379523*/ OPC_MoveChild7, ++/*379524*/ OPC_CheckInteger, 1, ++/*379526*/ OPC_CheckType, MVT::i32, ++/*379528*/ OPC_MoveParent, ++/*379529*/ OPC_MoveChild, 8, ++/*379531*/ OPC_CheckInteger, 1, ++/*379533*/ OPC_CheckType, MVT::i32, ++/*379535*/ OPC_MoveParent, ++/*379536*/ OPC_MoveChild, 9, ++/*379538*/ OPC_CheckInteger, 1, ++/*379540*/ OPC_CheckType, MVT::i32, ++/*379542*/ OPC_MoveParent, ++/*379543*/ OPC_MoveChild, 10, ++/*379545*/ OPC_CheckInteger, 1, ++/*379547*/ OPC_CheckType, MVT::i32, ++/*379549*/ OPC_MoveParent, ++/*379550*/ OPC_MoveChild, 11, ++/*379552*/ OPC_CheckInteger, 1, ++/*379554*/ OPC_CheckType, MVT::i32, ++/*379556*/ OPC_MoveParent, ++/*379557*/ OPC_MoveChild, 12, ++/*379559*/ OPC_CheckInteger, 1, ++/*379561*/ OPC_CheckType, MVT::i32, ++/*379563*/ OPC_MoveParent, ++/*379564*/ OPC_MoveChild, 13, ++/*379566*/ OPC_CheckInteger, 1, ++/*379568*/ OPC_CheckType, MVT::i32, ++/*379570*/ OPC_MoveParent, ++/*379571*/ OPC_MoveChild, 14, ++/*379573*/ OPC_CheckInteger, 1, ++/*379575*/ OPC_CheckType, MVT::i32, ++/*379577*/ OPC_MoveParent, ++/*379578*/ OPC_MoveChild, 15, ++/*379580*/ OPC_CheckInteger, 1, ++/*379582*/ OPC_CheckType, MVT::i32, ++/*379584*/ OPC_MoveParent, ++/*379585*/ OPC_CheckType, MVT::v16i16, ++/*379587*/ OPC_MoveParent, ++/*379588*/ OPC_CheckType, MVT::v16i16, ++/*379590*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*379592*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b), LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b), LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*379600*/ /*Scope*/ 91|128,1/*219*/, /*->379821*/ ++/*379602*/ OPC_CheckChild0Same, 0, ++/*379604*/ OPC_MoveChild1, ++/*379605*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*379608*/ OPC_CheckChild0Integer, 1, ++/*379610*/ OPC_CheckChild0Type, MVT::i32, ++/*379612*/ OPC_CheckChild1Integer, 1, ++/*379614*/ OPC_CheckChild1Type, MVT::i32, ++/*379616*/ OPC_CheckChild2Integer, 1, ++/*379618*/ OPC_CheckChild2Type, MVT::i32, ++/*379620*/ OPC_CheckChild3Integer, 1, ++/*379622*/ OPC_CheckChild3Type, MVT::i32, ++/*379624*/ OPC_CheckChild4Integer, 1, ++/*379626*/ OPC_CheckChild4Type, MVT::i32, ++/*379628*/ OPC_MoveChild5, ++/*379629*/ OPC_CheckInteger, 1, ++/*379631*/ OPC_CheckType, MVT::i32, ++/*379633*/ OPC_MoveParent, ++/*379634*/ OPC_MoveChild6, ++/*379635*/ OPC_CheckInteger, 1, ++/*379637*/ OPC_CheckType, MVT::i32, ++/*379639*/ OPC_MoveParent, ++/*379640*/ OPC_MoveChild7, ++/*379641*/ OPC_CheckInteger, 1, ++/*379643*/ OPC_CheckType, MVT::i32, ++/*379645*/ OPC_MoveParent, ++/*379646*/ OPC_MoveChild, 8, ++/*379648*/ OPC_CheckInteger, 1, ++/*379650*/ OPC_CheckType, MVT::i32, ++/*379652*/ OPC_MoveParent, ++/*379653*/ OPC_MoveChild, 9, ++/*379655*/ OPC_CheckInteger, 1, ++/*379657*/ OPC_CheckType, MVT::i32, ++/*379659*/ OPC_MoveParent, ++/*379660*/ OPC_MoveChild, 10, ++/*379662*/ OPC_CheckInteger, 1, ++/*379664*/ OPC_CheckType, MVT::i32, ++/*379666*/ OPC_MoveParent, ++/*379667*/ OPC_MoveChild, 11, ++/*379669*/ OPC_CheckInteger, 1, ++/*379671*/ OPC_CheckType, MVT::i32, ++/*379673*/ OPC_MoveParent, ++/*379674*/ OPC_MoveChild, 12, ++/*379676*/ OPC_CheckInteger, 1, ++/*379678*/ OPC_CheckType, MVT::i32, ++/*379680*/ OPC_MoveParent, ++/*379681*/ OPC_MoveChild, 13, ++/*379683*/ OPC_CheckInteger, 1, ++/*379685*/ OPC_CheckType, MVT::i32, ++/*379687*/ OPC_MoveParent, ++/*379688*/ OPC_MoveChild, 14, ++/*379690*/ OPC_CheckInteger, 1, ++/*379692*/ OPC_CheckType, MVT::i32, ++/*379694*/ OPC_MoveParent, ++/*379695*/ OPC_MoveChild, 15, ++/*379697*/ OPC_CheckInteger, 1, ++/*379699*/ OPC_CheckType, MVT::i32, ++/*379701*/ OPC_MoveParent, ++/*379702*/ OPC_MoveParent, ++/*379703*/ OPC_MoveParent, ++/*379704*/ OPC_CheckChild1Same, 1, ++/*379706*/ OPC_MoveParent, ++/*379707*/ OPC_MoveParent, ++/*379708*/ OPC_MoveChild1, ++/*379709*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*379712*/ OPC_CheckChild0Integer, 1, ++/*379714*/ OPC_CheckChild0Type, MVT::i32, ++/*379716*/ OPC_CheckChild1Integer, 1, ++/*379718*/ OPC_CheckChild1Type, MVT::i32, ++/*379720*/ OPC_CheckChild2Integer, 1, ++/*379722*/ OPC_CheckChild2Type, MVT::i32, ++/*379724*/ OPC_CheckChild3Integer, 1, ++/*379726*/ OPC_CheckChild3Type, MVT::i32, ++/*379728*/ OPC_CheckChild4Integer, 1, ++/*379730*/ OPC_CheckChild4Type, MVT::i32, ++/*379732*/ OPC_MoveChild5, ++/*379733*/ OPC_CheckInteger, 1, ++/*379735*/ OPC_CheckType, MVT::i32, ++/*379737*/ OPC_MoveParent, ++/*379738*/ OPC_MoveChild6, ++/*379739*/ OPC_CheckInteger, 1, ++/*379741*/ OPC_CheckType, MVT::i32, ++/*379743*/ OPC_MoveParent, ++/*379744*/ OPC_MoveChild7, ++/*379745*/ OPC_CheckInteger, 1, ++/*379747*/ OPC_CheckType, MVT::i32, ++/*379749*/ OPC_MoveParent, ++/*379750*/ OPC_MoveChild, 8, ++/*379752*/ OPC_CheckInteger, 1, ++/*379754*/ OPC_CheckType, MVT::i32, ++/*379756*/ OPC_MoveParent, ++/*379757*/ OPC_MoveChild, 9, ++/*379759*/ OPC_CheckInteger, 1, ++/*379761*/ OPC_CheckType, MVT::i32, ++/*379763*/ OPC_MoveParent, ++/*379764*/ OPC_MoveChild, 10, ++/*379766*/ OPC_CheckInteger, 1, ++/*379768*/ OPC_CheckType, MVT::i32, ++/*379770*/ OPC_MoveParent, ++/*379771*/ OPC_MoveChild, 11, ++/*379773*/ OPC_CheckInteger, 1, ++/*379775*/ OPC_CheckType, MVT::i32, ++/*379777*/ OPC_MoveParent, ++/*379778*/ OPC_MoveChild, 12, ++/*379780*/ OPC_CheckInteger, 1, ++/*379782*/ OPC_CheckType, MVT::i32, ++/*379784*/ OPC_MoveParent, ++/*379785*/ OPC_MoveChild, 13, ++/*379787*/ OPC_CheckInteger, 1, ++/*379789*/ OPC_CheckType, MVT::i32, ++/*379791*/ OPC_MoveParent, ++/*379792*/ OPC_MoveChild, 14, ++/*379794*/ OPC_CheckInteger, 1, ++/*379796*/ OPC_CheckType, MVT::i32, ++/*379798*/ OPC_MoveParent, ++/*379799*/ OPC_MoveChild, 15, ++/*379801*/ OPC_CheckInteger, 1, ++/*379803*/ OPC_CheckType, MVT::i32, ++/*379805*/ OPC_MoveParent, ++/*379806*/ OPC_CheckType, MVT::v16i16, ++/*379808*/ OPC_MoveParent, ++/*379809*/ OPC_CheckType, MVT::v16i16, ++/*379811*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*379813*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b), LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*379821*/ /*Scope*/ 91|128,1/*219*/, /*->380042*/ ++/*379823*/ OPC_CheckChild0Same, 1, ++/*379825*/ OPC_CheckChild1Same, 0, ++/*379827*/ OPC_MoveParent, ++/*379828*/ OPC_MoveChild1, ++/*379829*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*379832*/ OPC_CheckChild0Integer, 1, ++/*379834*/ OPC_CheckChild0Type, MVT::i32, ++/*379836*/ OPC_CheckChild1Integer, 1, ++/*379838*/ OPC_CheckChild1Type, MVT::i32, ++/*379840*/ OPC_CheckChild2Integer, 1, ++/*379842*/ OPC_CheckChild2Type, MVT::i32, ++/*379844*/ OPC_CheckChild3Integer, 1, ++/*379846*/ OPC_CheckChild3Type, MVT::i32, ++/*379848*/ OPC_CheckChild4Integer, 1, ++/*379850*/ OPC_CheckChild4Type, MVT::i32, ++/*379852*/ OPC_MoveChild5, ++/*379853*/ OPC_CheckInteger, 1, ++/*379855*/ OPC_CheckType, MVT::i32, ++/*379857*/ OPC_MoveParent, ++/*379858*/ OPC_MoveChild6, ++/*379859*/ OPC_CheckInteger, 1, ++/*379861*/ OPC_CheckType, MVT::i32, ++/*379863*/ OPC_MoveParent, ++/*379864*/ OPC_MoveChild7, ++/*379865*/ OPC_CheckInteger, 1, ++/*379867*/ OPC_CheckType, MVT::i32, ++/*379869*/ OPC_MoveParent, ++/*379870*/ OPC_MoveChild, 8, ++/*379872*/ OPC_CheckInteger, 1, ++/*379874*/ OPC_CheckType, MVT::i32, ++/*379876*/ OPC_MoveParent, ++/*379877*/ OPC_MoveChild, 9, ++/*379879*/ OPC_CheckInteger, 1, ++/*379881*/ OPC_CheckType, MVT::i32, ++/*379883*/ OPC_MoveParent, ++/*379884*/ OPC_MoveChild, 10, ++/*379886*/ OPC_CheckInteger, 1, ++/*379888*/ OPC_CheckType, MVT::i32, ++/*379890*/ OPC_MoveParent, ++/*379891*/ OPC_MoveChild, 11, ++/*379893*/ OPC_CheckInteger, 1, ++/*379895*/ OPC_CheckType, MVT::i32, ++/*379897*/ OPC_MoveParent, ++/*379898*/ OPC_MoveChild, 12, ++/*379900*/ OPC_CheckInteger, 1, ++/*379902*/ OPC_CheckType, MVT::i32, ++/*379904*/ OPC_MoveParent, ++/*379905*/ OPC_MoveChild, 13, ++/*379907*/ OPC_CheckInteger, 1, ++/*379909*/ OPC_CheckType, MVT::i32, ++/*379911*/ OPC_MoveParent, ++/*379912*/ OPC_MoveChild, 14, ++/*379914*/ OPC_CheckInteger, 1, ++/*379916*/ OPC_CheckType, MVT::i32, ++/*379918*/ OPC_MoveParent, ++/*379919*/ OPC_MoveChild, 15, ++/*379921*/ OPC_CheckInteger, 1, ++/*379923*/ OPC_CheckType, MVT::i32, ++/*379925*/ OPC_MoveParent, ++/*379926*/ OPC_MoveParent, ++/*379927*/ OPC_MoveParent, ++/*379928*/ OPC_MoveParent, ++/*379929*/ OPC_MoveChild1, ++/*379930*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*379933*/ OPC_CheckChild0Integer, 1, ++/*379935*/ OPC_CheckChild0Type, MVT::i32, ++/*379937*/ OPC_CheckChild1Integer, 1, ++/*379939*/ OPC_CheckChild1Type, MVT::i32, ++/*379941*/ OPC_CheckChild2Integer, 1, ++/*379943*/ OPC_CheckChild2Type, MVT::i32, ++/*379945*/ OPC_CheckChild3Integer, 1, ++/*379947*/ OPC_CheckChild3Type, MVT::i32, ++/*379949*/ OPC_CheckChild4Integer, 1, ++/*379951*/ OPC_CheckChild4Type, MVT::i32, ++/*379953*/ OPC_MoveChild5, ++/*379954*/ OPC_CheckInteger, 1, ++/*379956*/ OPC_CheckType, MVT::i32, ++/*379958*/ OPC_MoveParent, ++/*379959*/ OPC_MoveChild6, ++/*379960*/ OPC_CheckInteger, 1, ++/*379962*/ OPC_CheckType, MVT::i32, ++/*379964*/ OPC_MoveParent, ++/*379965*/ OPC_MoveChild7, ++/*379966*/ OPC_CheckInteger, 1, ++/*379968*/ OPC_CheckType, MVT::i32, ++/*379970*/ OPC_MoveParent, ++/*379971*/ OPC_MoveChild, 8, ++/*379973*/ OPC_CheckInteger, 1, ++/*379975*/ OPC_CheckType, MVT::i32, ++/*379977*/ OPC_MoveParent, ++/*379978*/ OPC_MoveChild, 9, ++/*379980*/ OPC_CheckInteger, 1, ++/*379982*/ OPC_CheckType, MVT::i32, ++/*379984*/ OPC_MoveParent, ++/*379985*/ OPC_MoveChild, 10, ++/*379987*/ OPC_CheckInteger, 1, ++/*379989*/ OPC_CheckType, MVT::i32, ++/*379991*/ OPC_MoveParent, ++/*379992*/ OPC_MoveChild, 11, ++/*379994*/ OPC_CheckInteger, 1, ++/*379996*/ OPC_CheckType, MVT::i32, ++/*379998*/ OPC_MoveParent, ++/*379999*/ OPC_MoveChild, 12, ++/*380001*/ OPC_CheckInteger, 1, ++/*380003*/ OPC_CheckType, MVT::i32, ++/*380005*/ OPC_MoveParent, ++/*380006*/ OPC_MoveChild, 13, ++/*380008*/ OPC_CheckInteger, 1, ++/*380010*/ OPC_CheckType, MVT::i32, ++/*380012*/ OPC_MoveParent, ++/*380013*/ OPC_MoveChild, 14, ++/*380015*/ OPC_CheckInteger, 1, ++/*380017*/ OPC_CheckType, MVT::i32, ++/*380019*/ OPC_MoveParent, ++/*380020*/ OPC_MoveChild, 15, ++/*380022*/ OPC_CheckInteger, 1, ++/*380024*/ OPC_CheckType, MVT::i32, ++/*380026*/ OPC_MoveParent, ++/*380027*/ OPC_CheckType, MVT::v16i16, ++/*380029*/ OPC_MoveParent, ++/*380030*/ OPC_CheckType, MVT::v16i16, ++/*380032*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*380034*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b), LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*380042*/ /*Scope*/ 91|128,1/*219*/, /*->380263*/ ++/*380044*/ OPC_CheckChild0Same, 0, ++/*380046*/ OPC_CheckChild1Same, 1, ++/*380048*/ OPC_MoveParent, ++/*380049*/ OPC_MoveChild1, ++/*380050*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*380053*/ OPC_CheckChild0Integer, 1, ++/*380055*/ OPC_CheckChild0Type, MVT::i32, ++/*380057*/ OPC_CheckChild1Integer, 1, ++/*380059*/ OPC_CheckChild1Type, MVT::i32, ++/*380061*/ OPC_CheckChild2Integer, 1, ++/*380063*/ OPC_CheckChild2Type, MVT::i32, ++/*380065*/ OPC_CheckChild3Integer, 1, ++/*380067*/ OPC_CheckChild3Type, MVT::i32, ++/*380069*/ OPC_CheckChild4Integer, 1, ++/*380071*/ OPC_CheckChild4Type, MVT::i32, ++/*380073*/ OPC_MoveChild5, ++/*380074*/ OPC_CheckInteger, 1, ++/*380076*/ OPC_CheckType, MVT::i32, ++/*380078*/ OPC_MoveParent, ++/*380079*/ OPC_MoveChild6, ++/*380080*/ OPC_CheckInteger, 1, ++/*380082*/ OPC_CheckType, MVT::i32, ++/*380084*/ OPC_MoveParent, ++/*380085*/ OPC_MoveChild7, ++/*380086*/ OPC_CheckInteger, 1, ++/*380088*/ OPC_CheckType, MVT::i32, ++/*380090*/ OPC_MoveParent, ++/*380091*/ OPC_MoveChild, 8, ++/*380093*/ OPC_CheckInteger, 1, ++/*380095*/ OPC_CheckType, MVT::i32, ++/*380097*/ OPC_MoveParent, ++/*380098*/ OPC_MoveChild, 9, ++/*380100*/ OPC_CheckInteger, 1, ++/*380102*/ OPC_CheckType, MVT::i32, ++/*380104*/ OPC_MoveParent, ++/*380105*/ OPC_MoveChild, 10, ++/*380107*/ OPC_CheckInteger, 1, ++/*380109*/ OPC_CheckType, MVT::i32, ++/*380111*/ OPC_MoveParent, ++/*380112*/ OPC_MoveChild, 11, ++/*380114*/ OPC_CheckInteger, 1, ++/*380116*/ OPC_CheckType, MVT::i32, ++/*380118*/ OPC_MoveParent, ++/*380119*/ OPC_MoveChild, 12, ++/*380121*/ OPC_CheckInteger, 1, ++/*380123*/ OPC_CheckType, MVT::i32, ++/*380125*/ OPC_MoveParent, ++/*380126*/ OPC_MoveChild, 13, ++/*380128*/ OPC_CheckInteger, 1, ++/*380130*/ OPC_CheckType, MVT::i32, ++/*380132*/ OPC_MoveParent, ++/*380133*/ OPC_MoveChild, 14, ++/*380135*/ OPC_CheckInteger, 1, ++/*380137*/ OPC_CheckType, MVT::i32, ++/*380139*/ OPC_MoveParent, ++/*380140*/ OPC_MoveChild, 15, ++/*380142*/ OPC_CheckInteger, 1, ++/*380144*/ OPC_CheckType, MVT::i32, ++/*380146*/ OPC_MoveParent, ++/*380147*/ OPC_MoveParent, ++/*380148*/ OPC_MoveParent, ++/*380149*/ OPC_MoveParent, ++/*380150*/ OPC_MoveChild1, ++/*380151*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*380154*/ OPC_CheckChild0Integer, 1, ++/*380156*/ OPC_CheckChild0Type, MVT::i32, ++/*380158*/ OPC_CheckChild1Integer, 1, ++/*380160*/ OPC_CheckChild1Type, MVT::i32, ++/*380162*/ OPC_CheckChild2Integer, 1, ++/*380164*/ OPC_CheckChild2Type, MVT::i32, ++/*380166*/ OPC_CheckChild3Integer, 1, ++/*380168*/ OPC_CheckChild3Type, MVT::i32, ++/*380170*/ OPC_CheckChild4Integer, 1, ++/*380172*/ OPC_CheckChild4Type, MVT::i32, ++/*380174*/ OPC_MoveChild5, ++/*380175*/ OPC_CheckInteger, 1, ++/*380177*/ OPC_CheckType, MVT::i32, ++/*380179*/ OPC_MoveParent, ++/*380180*/ OPC_MoveChild6, ++/*380181*/ OPC_CheckInteger, 1, ++/*380183*/ OPC_CheckType, MVT::i32, ++/*380185*/ OPC_MoveParent, ++/*380186*/ OPC_MoveChild7, ++/*380187*/ OPC_CheckInteger, 1, ++/*380189*/ OPC_CheckType, MVT::i32, ++/*380191*/ OPC_MoveParent, ++/*380192*/ OPC_MoveChild, 8, ++/*380194*/ OPC_CheckInteger, 1, ++/*380196*/ OPC_CheckType, MVT::i32, ++/*380198*/ OPC_MoveParent, ++/*380199*/ OPC_MoveChild, 9, ++/*380201*/ OPC_CheckInteger, 1, ++/*380203*/ OPC_CheckType, MVT::i32, ++/*380205*/ OPC_MoveParent, ++/*380206*/ OPC_MoveChild, 10, ++/*380208*/ OPC_CheckInteger, 1, ++/*380210*/ OPC_CheckType, MVT::i32, ++/*380212*/ OPC_MoveParent, ++/*380213*/ OPC_MoveChild, 11, ++/*380215*/ OPC_CheckInteger, 1, ++/*380217*/ OPC_CheckType, MVT::i32, ++/*380219*/ OPC_MoveParent, ++/*380220*/ OPC_MoveChild, 12, ++/*380222*/ OPC_CheckInteger, 1, ++/*380224*/ OPC_CheckType, MVT::i32, ++/*380226*/ OPC_MoveParent, ++/*380227*/ OPC_MoveChild, 13, ++/*380229*/ OPC_CheckInteger, 1, ++/*380231*/ OPC_CheckType, MVT::i32, ++/*380233*/ OPC_MoveParent, ++/*380234*/ OPC_MoveChild, 14, ++/*380236*/ OPC_CheckInteger, 1, ++/*380238*/ OPC_CheckType, MVT::i32, ++/*380240*/ OPC_MoveParent, ++/*380241*/ OPC_MoveChild, 15, ++/*380243*/ OPC_CheckInteger, 1, ++/*380245*/ OPC_CheckType, MVT::i32, ++/*380247*/ OPC_MoveParent, ++/*380248*/ OPC_CheckType, MVT::v16i16, ++/*380250*/ OPC_MoveParent, ++/*380251*/ OPC_CheckType, MVT::v16i16, ++/*380253*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*380255*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b), LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*380263*/ 0, /*End of Scope*/ ++/*380264*/ /*Scope*/ 62|128,3/*446*/, /*->380712*/ ++/*380266*/ OPC_CheckChild0Same, 0, ++/*380268*/ OPC_MoveChild1, ++/*380269*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*380272*/ OPC_Scope, 89|128,1/*217*/, /*->380492*/ // 2 children in Scope ++/*380275*/ OPC_MoveChild0, ++/*380276*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*380279*/ OPC_CheckChild0Integer, 1, ++/*380281*/ OPC_CheckChild0Type, MVT::i32, ++/*380283*/ OPC_CheckChild1Integer, 1, ++/*380285*/ OPC_CheckChild1Type, MVT::i32, ++/*380287*/ OPC_CheckChild2Integer, 1, ++/*380289*/ OPC_CheckChild2Type, MVT::i32, ++/*380291*/ OPC_CheckChild3Integer, 1, ++/*380293*/ OPC_CheckChild3Type, MVT::i32, ++/*380295*/ OPC_CheckChild4Integer, 1, ++/*380297*/ OPC_CheckChild4Type, MVT::i32, ++/*380299*/ OPC_MoveChild5, ++/*380300*/ OPC_CheckInteger, 1, ++/*380302*/ OPC_CheckType, MVT::i32, ++/*380304*/ OPC_MoveParent, ++/*380305*/ OPC_MoveChild6, ++/*380306*/ OPC_CheckInteger, 1, ++/*380308*/ OPC_CheckType, MVT::i32, ++/*380310*/ OPC_MoveParent, ++/*380311*/ OPC_MoveChild7, ++/*380312*/ OPC_CheckInteger, 1, ++/*380314*/ OPC_CheckType, MVT::i32, ++/*380316*/ OPC_MoveParent, ++/*380317*/ OPC_MoveChild, 8, ++/*380319*/ OPC_CheckInteger, 1, ++/*380321*/ OPC_CheckType, MVT::i32, ++/*380323*/ OPC_MoveParent, ++/*380324*/ OPC_MoveChild, 9, ++/*380326*/ OPC_CheckInteger, 1, ++/*380328*/ OPC_CheckType, MVT::i32, ++/*380330*/ OPC_MoveParent, ++/*380331*/ OPC_MoveChild, 10, ++/*380333*/ OPC_CheckInteger, 1, ++/*380335*/ OPC_CheckType, MVT::i32, ++/*380337*/ OPC_MoveParent, ++/*380338*/ OPC_MoveChild, 11, ++/*380340*/ OPC_CheckInteger, 1, ++/*380342*/ OPC_CheckType, MVT::i32, ++/*380344*/ OPC_MoveParent, ++/*380345*/ OPC_MoveChild, 12, ++/*380347*/ OPC_CheckInteger, 1, ++/*380349*/ OPC_CheckType, MVT::i32, ++/*380351*/ OPC_MoveParent, ++/*380352*/ OPC_MoveChild, 13, ++/*380354*/ OPC_CheckInteger, 1, ++/*380356*/ OPC_CheckType, MVT::i32, ++/*380358*/ OPC_MoveParent, ++/*380359*/ OPC_MoveChild, 14, ++/*380361*/ OPC_CheckInteger, 1, ++/*380363*/ OPC_CheckType, MVT::i32, ++/*380365*/ OPC_MoveParent, ++/*380366*/ OPC_MoveChild, 15, ++/*380368*/ OPC_CheckInteger, 1, ++/*380370*/ OPC_CheckType, MVT::i32, ++/*380372*/ OPC_MoveParent, ++/*380373*/ OPC_MoveParent, ++/*380374*/ OPC_CheckChild1Same, 1, ++/*380376*/ OPC_MoveParent, ++/*380377*/ OPC_MoveParent, ++/*380378*/ OPC_MoveParent, ++/*380379*/ OPC_MoveChild1, ++/*380380*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*380383*/ OPC_CheckChild0Integer, 1, ++/*380385*/ OPC_CheckChild0Type, MVT::i32, ++/*380387*/ OPC_CheckChild1Integer, 1, ++/*380389*/ OPC_CheckChild1Type, MVT::i32, ++/*380391*/ OPC_CheckChild2Integer, 1, ++/*380393*/ OPC_CheckChild2Type, MVT::i32, ++/*380395*/ OPC_CheckChild3Integer, 1, ++/*380397*/ OPC_CheckChild3Type, MVT::i32, ++/*380399*/ OPC_CheckChild4Integer, 1, ++/*380401*/ OPC_CheckChild4Type, MVT::i32, ++/*380403*/ OPC_MoveChild5, ++/*380404*/ OPC_CheckInteger, 1, ++/*380406*/ OPC_CheckType, MVT::i32, ++/*380408*/ OPC_MoveParent, ++/*380409*/ OPC_MoveChild6, ++/*380410*/ OPC_CheckInteger, 1, ++/*380412*/ OPC_CheckType, MVT::i32, ++/*380414*/ OPC_MoveParent, ++/*380415*/ OPC_MoveChild7, ++/*380416*/ OPC_CheckInteger, 1, ++/*380418*/ OPC_CheckType, MVT::i32, ++/*380420*/ OPC_MoveParent, ++/*380421*/ OPC_MoveChild, 8, ++/*380423*/ OPC_CheckInteger, 1, ++/*380425*/ OPC_CheckType, MVT::i32, ++/*380427*/ OPC_MoveParent, ++/*380428*/ OPC_MoveChild, 9, ++/*380430*/ OPC_CheckInteger, 1, ++/*380432*/ OPC_CheckType, MVT::i32, ++/*380434*/ OPC_MoveParent, ++/*380435*/ OPC_MoveChild, 10, ++/*380437*/ OPC_CheckInteger, 1, ++/*380439*/ OPC_CheckType, MVT::i32, ++/*380441*/ OPC_MoveParent, ++/*380442*/ OPC_MoveChild, 11, ++/*380444*/ OPC_CheckInteger, 1, ++/*380446*/ OPC_CheckType, MVT::i32, ++/*380448*/ OPC_MoveParent, ++/*380449*/ OPC_MoveChild, 12, ++/*380451*/ OPC_CheckInteger, 1, ++/*380453*/ OPC_CheckType, MVT::i32, ++/*380455*/ OPC_MoveParent, ++/*380456*/ OPC_MoveChild, 13, ++/*380458*/ OPC_CheckInteger, 1, ++/*380460*/ OPC_CheckType, MVT::i32, ++/*380462*/ OPC_MoveParent, ++/*380463*/ OPC_MoveChild, 14, ++/*380465*/ OPC_CheckInteger, 1, ++/*380467*/ OPC_CheckType, MVT::i32, ++/*380469*/ OPC_MoveParent, ++/*380470*/ OPC_MoveChild, 15, ++/*380472*/ OPC_CheckInteger, 1, ++/*380474*/ OPC_CheckType, MVT::i32, ++/*380476*/ OPC_MoveParent, ++/*380477*/ OPC_CheckType, MVT::v16i16, ++/*380479*/ OPC_MoveParent, ++/*380480*/ OPC_CheckType, MVT::v16i16, ++/*380482*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*380484*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b), LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*380492*/ /*Scope*/ 89|128,1/*217*/, /*->380711*/ ++/*380494*/ OPC_CheckChild0Same, 1, ++/*380496*/ OPC_MoveChild1, ++/*380497*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*380500*/ OPC_CheckChild0Integer, 1, ++/*380502*/ OPC_CheckChild0Type, MVT::i32, ++/*380504*/ OPC_CheckChild1Integer, 1, ++/*380506*/ OPC_CheckChild1Type, MVT::i32, ++/*380508*/ OPC_CheckChild2Integer, 1, ++/*380510*/ OPC_CheckChild2Type, MVT::i32, ++/*380512*/ OPC_CheckChild3Integer, 1, ++/*380514*/ OPC_CheckChild3Type, MVT::i32, ++/*380516*/ OPC_CheckChild4Integer, 1, ++/*380518*/ OPC_CheckChild4Type, MVT::i32, ++/*380520*/ OPC_MoveChild5, ++/*380521*/ OPC_CheckInteger, 1, ++/*380523*/ OPC_CheckType, MVT::i32, ++/*380525*/ OPC_MoveParent, ++/*380526*/ OPC_MoveChild6, ++/*380527*/ OPC_CheckInteger, 1, ++/*380529*/ OPC_CheckType, MVT::i32, ++/*380531*/ OPC_MoveParent, ++/*380532*/ OPC_MoveChild7, ++/*380533*/ OPC_CheckInteger, 1, ++/*380535*/ OPC_CheckType, MVT::i32, ++/*380537*/ OPC_MoveParent, ++/*380538*/ OPC_MoveChild, 8, ++/*380540*/ OPC_CheckInteger, 1, ++/*380542*/ OPC_CheckType, MVT::i32, ++/*380544*/ OPC_MoveParent, ++/*380545*/ OPC_MoveChild, 9, ++/*380547*/ OPC_CheckInteger, 1, ++/*380549*/ OPC_CheckType, MVT::i32, ++/*380551*/ OPC_MoveParent, ++/*380552*/ OPC_MoveChild, 10, ++/*380554*/ OPC_CheckInteger, 1, ++/*380556*/ OPC_CheckType, MVT::i32, ++/*380558*/ OPC_MoveParent, ++/*380559*/ OPC_MoveChild, 11, ++/*380561*/ OPC_CheckInteger, 1, ++/*380563*/ OPC_CheckType, MVT::i32, ++/*380565*/ OPC_MoveParent, ++/*380566*/ OPC_MoveChild, 12, ++/*380568*/ OPC_CheckInteger, 1, ++/*380570*/ OPC_CheckType, MVT::i32, ++/*380572*/ OPC_MoveParent, ++/*380573*/ OPC_MoveChild, 13, ++/*380575*/ OPC_CheckInteger, 1, ++/*380577*/ OPC_CheckType, MVT::i32, ++/*380579*/ OPC_MoveParent, ++/*380580*/ OPC_MoveChild, 14, ++/*380582*/ OPC_CheckInteger, 1, ++/*380584*/ OPC_CheckType, MVT::i32, ++/*380586*/ OPC_MoveParent, ++/*380587*/ OPC_MoveChild, 15, ++/*380589*/ OPC_CheckInteger, 1, ++/*380591*/ OPC_CheckType, MVT::i32, ++/*380593*/ OPC_MoveParent, ++/*380594*/ OPC_MoveParent, ++/*380595*/ OPC_MoveParent, ++/*380596*/ OPC_MoveParent, ++/*380597*/ OPC_MoveParent, ++/*380598*/ OPC_MoveChild1, ++/*380599*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*380602*/ OPC_CheckChild0Integer, 1, ++/*380604*/ OPC_CheckChild0Type, MVT::i32, ++/*380606*/ OPC_CheckChild1Integer, 1, ++/*380608*/ OPC_CheckChild1Type, MVT::i32, ++/*380610*/ OPC_CheckChild2Integer, 1, ++/*380612*/ OPC_CheckChild2Type, MVT::i32, ++/*380614*/ OPC_CheckChild3Integer, 1, ++/*380616*/ OPC_CheckChild3Type, MVT::i32, ++/*380618*/ OPC_CheckChild4Integer, 1, ++/*380620*/ OPC_CheckChild4Type, MVT::i32, ++/*380622*/ OPC_MoveChild5, ++/*380623*/ OPC_CheckInteger, 1, ++/*380625*/ OPC_CheckType, MVT::i32, ++/*380627*/ OPC_MoveParent, ++/*380628*/ OPC_MoveChild6, ++/*380629*/ OPC_CheckInteger, 1, ++/*380631*/ OPC_CheckType, MVT::i32, ++/*380633*/ OPC_MoveParent, ++/*380634*/ OPC_MoveChild7, ++/*380635*/ OPC_CheckInteger, 1, ++/*380637*/ OPC_CheckType, MVT::i32, ++/*380639*/ OPC_MoveParent, ++/*380640*/ OPC_MoveChild, 8, ++/*380642*/ OPC_CheckInteger, 1, ++/*380644*/ OPC_CheckType, MVT::i32, ++/*380646*/ OPC_MoveParent, ++/*380647*/ OPC_MoveChild, 9, ++/*380649*/ OPC_CheckInteger, 1, ++/*380651*/ OPC_CheckType, MVT::i32, ++/*380653*/ OPC_MoveParent, ++/*380654*/ OPC_MoveChild, 10, ++/*380656*/ OPC_CheckInteger, 1, ++/*380658*/ OPC_CheckType, MVT::i32, ++/*380660*/ OPC_MoveParent, ++/*380661*/ OPC_MoveChild, 11, ++/*380663*/ OPC_CheckInteger, 1, ++/*380665*/ OPC_CheckType, MVT::i32, ++/*380667*/ OPC_MoveParent, ++/*380668*/ OPC_MoveChild, 12, ++/*380670*/ OPC_CheckInteger, 1, ++/*380672*/ OPC_CheckType, MVT::i32, ++/*380674*/ OPC_MoveParent, ++/*380675*/ OPC_MoveChild, 13, ++/*380677*/ OPC_CheckInteger, 1, ++/*380679*/ OPC_CheckType, MVT::i32, ++/*380681*/ OPC_MoveParent, ++/*380682*/ OPC_MoveChild, 14, ++/*380684*/ OPC_CheckInteger, 1, ++/*380686*/ OPC_CheckType, MVT::i32, ++/*380688*/ OPC_MoveParent, ++/*380689*/ OPC_MoveChild, 15, ++/*380691*/ OPC_CheckInteger, 1, ++/*380693*/ OPC_CheckType, MVT::i32, ++/*380695*/ OPC_MoveParent, ++/*380696*/ OPC_CheckType, MVT::v16i16, ++/*380698*/ OPC_MoveParent, ++/*380699*/ OPC_CheckType, MVT::v16i16, ++/*380701*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*380703*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b), LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*380711*/ 0, /*End of Scope*/ ++/*380712*/ /*Scope*/ 62|128,3/*446*/, /*->381160*/ ++/*380714*/ OPC_CheckChild0Same, 1, ++/*380716*/ OPC_MoveChild1, ++/*380717*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*380720*/ OPC_Scope, 89|128,1/*217*/, /*->380940*/ // 2 children in Scope ++/*380723*/ OPC_MoveChild0, ++/*380724*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*380727*/ OPC_CheckChild0Integer, 1, ++/*380729*/ OPC_CheckChild0Type, MVT::i32, ++/*380731*/ OPC_CheckChild1Integer, 1, ++/*380733*/ OPC_CheckChild1Type, MVT::i32, ++/*380735*/ OPC_CheckChild2Integer, 1, ++/*380737*/ OPC_CheckChild2Type, MVT::i32, ++/*380739*/ OPC_CheckChild3Integer, 1, ++/*380741*/ OPC_CheckChild3Type, MVT::i32, ++/*380743*/ OPC_CheckChild4Integer, 1, ++/*380745*/ OPC_CheckChild4Type, MVT::i32, ++/*380747*/ OPC_MoveChild5, ++/*380748*/ OPC_CheckInteger, 1, ++/*380750*/ OPC_CheckType, MVT::i32, ++/*380752*/ OPC_MoveParent, ++/*380753*/ OPC_MoveChild6, ++/*380754*/ OPC_CheckInteger, 1, ++/*380756*/ OPC_CheckType, MVT::i32, ++/*380758*/ OPC_MoveParent, ++/*380759*/ OPC_MoveChild7, ++/*380760*/ OPC_CheckInteger, 1, ++/*380762*/ OPC_CheckType, MVT::i32, ++/*380764*/ OPC_MoveParent, ++/*380765*/ OPC_MoveChild, 8, ++/*380767*/ OPC_CheckInteger, 1, ++/*380769*/ OPC_CheckType, MVT::i32, ++/*380771*/ OPC_MoveParent, ++/*380772*/ OPC_MoveChild, 9, ++/*380774*/ OPC_CheckInteger, 1, ++/*380776*/ OPC_CheckType, MVT::i32, ++/*380778*/ OPC_MoveParent, ++/*380779*/ OPC_MoveChild, 10, ++/*380781*/ OPC_CheckInteger, 1, ++/*380783*/ OPC_CheckType, MVT::i32, ++/*380785*/ OPC_MoveParent, ++/*380786*/ OPC_MoveChild, 11, ++/*380788*/ OPC_CheckInteger, 1, ++/*380790*/ OPC_CheckType, MVT::i32, ++/*380792*/ OPC_MoveParent, ++/*380793*/ OPC_MoveChild, 12, ++/*380795*/ OPC_CheckInteger, 1, ++/*380797*/ OPC_CheckType, MVT::i32, ++/*380799*/ OPC_MoveParent, ++/*380800*/ OPC_MoveChild, 13, ++/*380802*/ OPC_CheckInteger, 1, ++/*380804*/ OPC_CheckType, MVT::i32, ++/*380806*/ OPC_MoveParent, ++/*380807*/ OPC_MoveChild, 14, ++/*380809*/ OPC_CheckInteger, 1, ++/*380811*/ OPC_CheckType, MVT::i32, ++/*380813*/ OPC_MoveParent, ++/*380814*/ OPC_MoveChild, 15, ++/*380816*/ OPC_CheckInteger, 1, ++/*380818*/ OPC_CheckType, MVT::i32, ++/*380820*/ OPC_MoveParent, ++/*380821*/ OPC_MoveParent, ++/*380822*/ OPC_CheckChild1Same, 0, ++/*380824*/ OPC_MoveParent, ++/*380825*/ OPC_MoveParent, ++/*380826*/ OPC_MoveParent, ++/*380827*/ OPC_MoveChild1, ++/*380828*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*380831*/ OPC_CheckChild0Integer, 1, ++/*380833*/ OPC_CheckChild0Type, MVT::i32, ++/*380835*/ OPC_CheckChild1Integer, 1, ++/*380837*/ OPC_CheckChild1Type, MVT::i32, ++/*380839*/ OPC_CheckChild2Integer, 1, ++/*380841*/ OPC_CheckChild2Type, MVT::i32, ++/*380843*/ OPC_CheckChild3Integer, 1, ++/*380845*/ OPC_CheckChild3Type, MVT::i32, ++/*380847*/ OPC_CheckChild4Integer, 1, ++/*380849*/ OPC_CheckChild4Type, MVT::i32, ++/*380851*/ OPC_MoveChild5, ++/*380852*/ OPC_CheckInteger, 1, ++/*380854*/ OPC_CheckType, MVT::i32, ++/*380856*/ OPC_MoveParent, ++/*380857*/ OPC_MoveChild6, ++/*380858*/ OPC_CheckInteger, 1, ++/*380860*/ OPC_CheckType, MVT::i32, ++/*380862*/ OPC_MoveParent, ++/*380863*/ OPC_MoveChild7, ++/*380864*/ OPC_CheckInteger, 1, ++/*380866*/ OPC_CheckType, MVT::i32, ++/*380868*/ OPC_MoveParent, ++/*380869*/ OPC_MoveChild, 8, ++/*380871*/ OPC_CheckInteger, 1, ++/*380873*/ OPC_CheckType, MVT::i32, ++/*380875*/ OPC_MoveParent, ++/*380876*/ OPC_MoveChild, 9, ++/*380878*/ OPC_CheckInteger, 1, ++/*380880*/ OPC_CheckType, MVT::i32, ++/*380882*/ OPC_MoveParent, ++/*380883*/ OPC_MoveChild, 10, ++/*380885*/ OPC_CheckInteger, 1, ++/*380887*/ OPC_CheckType, MVT::i32, ++/*380889*/ OPC_MoveParent, ++/*380890*/ OPC_MoveChild, 11, ++/*380892*/ OPC_CheckInteger, 1, ++/*380894*/ OPC_CheckType, MVT::i32, ++/*380896*/ OPC_MoveParent, ++/*380897*/ OPC_MoveChild, 12, ++/*380899*/ OPC_CheckInteger, 1, ++/*380901*/ OPC_CheckType, MVT::i32, ++/*380903*/ OPC_MoveParent, ++/*380904*/ OPC_MoveChild, 13, ++/*380906*/ OPC_CheckInteger, 1, ++/*380908*/ OPC_CheckType, MVT::i32, ++/*380910*/ OPC_MoveParent, ++/*380911*/ OPC_MoveChild, 14, ++/*380913*/ OPC_CheckInteger, 1, ++/*380915*/ OPC_CheckType, MVT::i32, ++/*380917*/ OPC_MoveParent, ++/*380918*/ OPC_MoveChild, 15, ++/*380920*/ OPC_CheckInteger, 1, ++/*380922*/ OPC_CheckType, MVT::i32, ++/*380924*/ OPC_MoveParent, ++/*380925*/ OPC_CheckType, MVT::v16i16, ++/*380927*/ OPC_MoveParent, ++/*380928*/ OPC_CheckType, MVT::v16i16, ++/*380930*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*380932*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b), LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*380940*/ /*Scope*/ 89|128,1/*217*/, /*->381159*/ ++/*380942*/ OPC_CheckChild0Same, 0, ++/*380944*/ OPC_MoveChild1, ++/*380945*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*380948*/ OPC_CheckChild0Integer, 1, ++/*380950*/ OPC_CheckChild0Type, MVT::i32, ++/*380952*/ OPC_CheckChild1Integer, 1, ++/*380954*/ OPC_CheckChild1Type, MVT::i32, ++/*380956*/ OPC_CheckChild2Integer, 1, ++/*380958*/ OPC_CheckChild2Type, MVT::i32, ++/*380960*/ OPC_CheckChild3Integer, 1, ++/*380962*/ OPC_CheckChild3Type, MVT::i32, ++/*380964*/ OPC_CheckChild4Integer, 1, ++/*380966*/ OPC_CheckChild4Type, MVT::i32, ++/*380968*/ OPC_MoveChild5, ++/*380969*/ OPC_CheckInteger, 1, ++/*380971*/ OPC_CheckType, MVT::i32, ++/*380973*/ OPC_MoveParent, ++/*380974*/ OPC_MoveChild6, ++/*380975*/ OPC_CheckInteger, 1, ++/*380977*/ OPC_CheckType, MVT::i32, ++/*380979*/ OPC_MoveParent, ++/*380980*/ OPC_MoveChild7, ++/*380981*/ OPC_CheckInteger, 1, ++/*380983*/ OPC_CheckType, MVT::i32, ++/*380985*/ OPC_MoveParent, ++/*380986*/ OPC_MoveChild, 8, ++/*380988*/ OPC_CheckInteger, 1, ++/*380990*/ OPC_CheckType, MVT::i32, ++/*380992*/ OPC_MoveParent, ++/*380993*/ OPC_MoveChild, 9, ++/*380995*/ OPC_CheckInteger, 1, ++/*380997*/ OPC_CheckType, MVT::i32, ++/*380999*/ OPC_MoveParent, ++/*381000*/ OPC_MoveChild, 10, ++/*381002*/ OPC_CheckInteger, 1, ++/*381004*/ OPC_CheckType, MVT::i32, ++/*381006*/ OPC_MoveParent, ++/*381007*/ OPC_MoveChild, 11, ++/*381009*/ OPC_CheckInteger, 1, ++/*381011*/ OPC_CheckType, MVT::i32, ++/*381013*/ OPC_MoveParent, ++/*381014*/ OPC_MoveChild, 12, ++/*381016*/ OPC_CheckInteger, 1, ++/*381018*/ OPC_CheckType, MVT::i32, ++/*381020*/ OPC_MoveParent, ++/*381021*/ OPC_MoveChild, 13, ++/*381023*/ OPC_CheckInteger, 1, ++/*381025*/ OPC_CheckType, MVT::i32, ++/*381027*/ OPC_MoveParent, ++/*381028*/ OPC_MoveChild, 14, ++/*381030*/ OPC_CheckInteger, 1, ++/*381032*/ OPC_CheckType, MVT::i32, ++/*381034*/ OPC_MoveParent, ++/*381035*/ OPC_MoveChild, 15, ++/*381037*/ OPC_CheckInteger, 1, ++/*381039*/ OPC_CheckType, MVT::i32, ++/*381041*/ OPC_MoveParent, ++/*381042*/ OPC_MoveParent, ++/*381043*/ OPC_MoveParent, ++/*381044*/ OPC_MoveParent, ++/*381045*/ OPC_MoveParent, ++/*381046*/ OPC_MoveChild1, ++/*381047*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*381050*/ OPC_CheckChild0Integer, 1, ++/*381052*/ OPC_CheckChild0Type, MVT::i32, ++/*381054*/ OPC_CheckChild1Integer, 1, ++/*381056*/ OPC_CheckChild1Type, MVT::i32, ++/*381058*/ OPC_CheckChild2Integer, 1, ++/*381060*/ OPC_CheckChild2Type, MVT::i32, ++/*381062*/ OPC_CheckChild3Integer, 1, ++/*381064*/ OPC_CheckChild3Type, MVT::i32, ++/*381066*/ OPC_CheckChild4Integer, 1, ++/*381068*/ OPC_CheckChild4Type, MVT::i32, ++/*381070*/ OPC_MoveChild5, ++/*381071*/ OPC_CheckInteger, 1, ++/*381073*/ OPC_CheckType, MVT::i32, ++/*381075*/ OPC_MoveParent, ++/*381076*/ OPC_MoveChild6, ++/*381077*/ OPC_CheckInteger, 1, ++/*381079*/ OPC_CheckType, MVT::i32, ++/*381081*/ OPC_MoveParent, ++/*381082*/ OPC_MoveChild7, ++/*381083*/ OPC_CheckInteger, 1, ++/*381085*/ OPC_CheckType, MVT::i32, ++/*381087*/ OPC_MoveParent, ++/*381088*/ OPC_MoveChild, 8, ++/*381090*/ OPC_CheckInteger, 1, ++/*381092*/ OPC_CheckType, MVT::i32, ++/*381094*/ OPC_MoveParent, ++/*381095*/ OPC_MoveChild, 9, ++/*381097*/ OPC_CheckInteger, 1, ++/*381099*/ OPC_CheckType, MVT::i32, ++/*381101*/ OPC_MoveParent, ++/*381102*/ OPC_MoveChild, 10, ++/*381104*/ OPC_CheckInteger, 1, ++/*381106*/ OPC_CheckType, MVT::i32, ++/*381108*/ OPC_MoveParent, ++/*381109*/ OPC_MoveChild, 11, ++/*381111*/ OPC_CheckInteger, 1, ++/*381113*/ OPC_CheckType, MVT::i32, ++/*381115*/ OPC_MoveParent, ++/*381116*/ OPC_MoveChild, 12, ++/*381118*/ OPC_CheckInteger, 1, ++/*381120*/ OPC_CheckType, MVT::i32, ++/*381122*/ OPC_MoveParent, ++/*381123*/ OPC_MoveChild, 13, ++/*381125*/ OPC_CheckInteger, 1, ++/*381127*/ OPC_CheckType, MVT::i32, ++/*381129*/ OPC_MoveParent, ++/*381130*/ OPC_MoveChild, 14, ++/*381132*/ OPC_CheckInteger, 1, ++/*381134*/ OPC_CheckType, MVT::i32, ++/*381136*/ OPC_MoveParent, ++/*381137*/ OPC_MoveChild, 15, ++/*381139*/ OPC_CheckInteger, 1, ++/*381141*/ OPC_CheckType, MVT::i32, ++/*381143*/ OPC_MoveParent, ++/*381144*/ OPC_CheckType, MVT::v16i16, ++/*381146*/ OPC_MoveParent, ++/*381147*/ OPC_CheckType, MVT::v16i16, ++/*381149*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*381151*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b), LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*381159*/ 0, /*End of Scope*/ ++/*381160*/ /*Scope*/ 91|128,2/*347*/, /*->381509*/ ++/*381162*/ OPC_MoveChild0, ++/*381163*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*381166*/ OPC_CheckChild0Integer, 1, ++/*381168*/ OPC_CheckChild0Type, MVT::i32, ++/*381170*/ OPC_CheckChild1Integer, 1, ++/*381172*/ OPC_CheckChild1Type, MVT::i32, ++/*381174*/ OPC_CheckChild2Integer, 1, ++/*381176*/ OPC_CheckChild2Type, MVT::i32, ++/*381178*/ OPC_CheckChild3Integer, 1, ++/*381180*/ OPC_CheckChild3Type, MVT::i32, ++/*381182*/ OPC_CheckChild4Integer, 1, ++/*381184*/ OPC_CheckChild4Type, MVT::i32, ++/*381186*/ OPC_MoveChild5, ++/*381187*/ OPC_CheckInteger, 1, ++/*381189*/ OPC_CheckType, MVT::i32, ++/*381191*/ OPC_MoveParent, ++/*381192*/ OPC_MoveChild6, ++/*381193*/ OPC_CheckInteger, 1, ++/*381195*/ OPC_CheckType, MVT::i32, ++/*381197*/ OPC_MoveParent, ++/*381198*/ OPC_MoveChild7, ++/*381199*/ OPC_CheckInteger, 1, ++/*381201*/ OPC_CheckType, MVT::i32, ++/*381203*/ OPC_MoveParent, ++/*381204*/ OPC_MoveChild, 8, ++/*381206*/ OPC_CheckInteger, 1, ++/*381208*/ OPC_CheckType, MVT::i32, ++/*381210*/ OPC_MoveParent, ++/*381211*/ OPC_MoveChild, 9, ++/*381213*/ OPC_CheckInteger, 1, ++/*381215*/ OPC_CheckType, MVT::i32, ++/*381217*/ OPC_MoveParent, ++/*381218*/ OPC_MoveChild, 10, ++/*381220*/ OPC_CheckInteger, 1, ++/*381222*/ OPC_CheckType, MVT::i32, ++/*381224*/ OPC_MoveParent, ++/*381225*/ OPC_MoveChild, 11, ++/*381227*/ OPC_CheckInteger, 1, ++/*381229*/ OPC_CheckType, MVT::i32, ++/*381231*/ OPC_MoveParent, ++/*381232*/ OPC_MoveChild, 12, ++/*381234*/ OPC_CheckInteger, 1, ++/*381236*/ OPC_CheckType, MVT::i32, ++/*381238*/ OPC_MoveParent, ++/*381239*/ OPC_MoveChild, 13, ++/*381241*/ OPC_CheckInteger, 1, ++/*381243*/ OPC_CheckType, MVT::i32, ++/*381245*/ OPC_MoveParent, ++/*381246*/ OPC_MoveChild, 14, ++/*381248*/ OPC_CheckInteger, 1, ++/*381250*/ OPC_CheckType, MVT::i32, ++/*381252*/ OPC_MoveParent, ++/*381253*/ OPC_MoveChild, 15, ++/*381255*/ OPC_CheckInteger, 1, ++/*381257*/ OPC_CheckType, MVT::i32, ++/*381259*/ OPC_MoveParent, ++/*381260*/ OPC_MoveParent, ++/*381261*/ OPC_MoveChild1, ++/*381262*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*381265*/ OPC_Scope, 120, /*->381387*/ // 2 children in Scope ++/*381267*/ OPC_CheckChild0Same, 1, ++/*381269*/ OPC_CheckChild1Same, 0, ++/*381271*/ OPC_MoveParent, ++/*381272*/ OPC_MoveParent, ++/*381273*/ OPC_MoveParent, ++/*381274*/ OPC_MoveChild1, ++/*381275*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*381278*/ OPC_CheckChild0Integer, 1, ++/*381280*/ OPC_CheckChild0Type, MVT::i32, ++/*381282*/ OPC_CheckChild1Integer, 1, ++/*381284*/ OPC_CheckChild1Type, MVT::i32, ++/*381286*/ OPC_CheckChild2Integer, 1, ++/*381288*/ OPC_CheckChild2Type, MVT::i32, ++/*381290*/ OPC_CheckChild3Integer, 1, ++/*381292*/ OPC_CheckChild3Type, MVT::i32, ++/*381294*/ OPC_CheckChild4Integer, 1, ++/*381296*/ OPC_CheckChild4Type, MVT::i32, ++/*381298*/ OPC_MoveChild5, ++/*381299*/ OPC_CheckInteger, 1, ++/*381301*/ OPC_CheckType, MVT::i32, ++/*381303*/ OPC_MoveParent, ++/*381304*/ OPC_MoveChild6, ++/*381305*/ OPC_CheckInteger, 1, ++/*381307*/ OPC_CheckType, MVT::i32, ++/*381309*/ OPC_MoveParent, ++/*381310*/ OPC_MoveChild7, ++/*381311*/ OPC_CheckInteger, 1, ++/*381313*/ OPC_CheckType, MVT::i32, ++/*381315*/ OPC_MoveParent, ++/*381316*/ OPC_MoveChild, 8, ++/*381318*/ OPC_CheckInteger, 1, ++/*381320*/ OPC_CheckType, MVT::i32, ++/*381322*/ OPC_MoveParent, ++/*381323*/ OPC_MoveChild, 9, ++/*381325*/ OPC_CheckInteger, 1, ++/*381327*/ OPC_CheckType, MVT::i32, ++/*381329*/ OPC_MoveParent, ++/*381330*/ OPC_MoveChild, 10, ++/*381332*/ OPC_CheckInteger, 1, ++/*381334*/ OPC_CheckType, MVT::i32, ++/*381336*/ OPC_MoveParent, ++/*381337*/ OPC_MoveChild, 11, ++/*381339*/ OPC_CheckInteger, 1, ++/*381341*/ OPC_CheckType, MVT::i32, ++/*381343*/ OPC_MoveParent, ++/*381344*/ OPC_MoveChild, 12, ++/*381346*/ OPC_CheckInteger, 1, ++/*381348*/ OPC_CheckType, MVT::i32, ++/*381350*/ OPC_MoveParent, ++/*381351*/ OPC_MoveChild, 13, ++/*381353*/ OPC_CheckInteger, 1, ++/*381355*/ OPC_CheckType, MVT::i32, ++/*381357*/ OPC_MoveParent, ++/*381358*/ OPC_MoveChild, 14, ++/*381360*/ OPC_CheckInteger, 1, ++/*381362*/ OPC_CheckType, MVT::i32, ++/*381364*/ OPC_MoveParent, ++/*381365*/ OPC_MoveChild, 15, ++/*381367*/ OPC_CheckInteger, 1, ++/*381369*/ OPC_CheckType, MVT::i32, ++/*381371*/ OPC_MoveParent, ++/*381372*/ OPC_CheckType, MVT::v16i16, ++/*381374*/ OPC_MoveParent, ++/*381375*/ OPC_CheckType, MVT::v16i16, ++/*381377*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*381379*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b), LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*381387*/ /*Scope*/ 120, /*->381508*/ ++/*381388*/ OPC_CheckChild0Same, 0, ++/*381390*/ OPC_CheckChild1Same, 1, ++/*381392*/ OPC_MoveParent, ++/*381393*/ OPC_MoveParent, ++/*381394*/ OPC_MoveParent, ++/*381395*/ OPC_MoveChild1, ++/*381396*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*381399*/ OPC_CheckChild0Integer, 1, ++/*381401*/ OPC_CheckChild0Type, MVT::i32, ++/*381403*/ OPC_CheckChild1Integer, 1, ++/*381405*/ OPC_CheckChild1Type, MVT::i32, ++/*381407*/ OPC_CheckChild2Integer, 1, ++/*381409*/ OPC_CheckChild2Type, MVT::i32, ++/*381411*/ OPC_CheckChild3Integer, 1, ++/*381413*/ OPC_CheckChild3Type, MVT::i32, ++/*381415*/ OPC_CheckChild4Integer, 1, ++/*381417*/ OPC_CheckChild4Type, MVT::i32, ++/*381419*/ OPC_MoveChild5, ++/*381420*/ OPC_CheckInteger, 1, ++/*381422*/ OPC_CheckType, MVT::i32, ++/*381424*/ OPC_MoveParent, ++/*381425*/ OPC_MoveChild6, ++/*381426*/ OPC_CheckInteger, 1, ++/*381428*/ OPC_CheckType, MVT::i32, ++/*381430*/ OPC_MoveParent, ++/*381431*/ OPC_MoveChild7, ++/*381432*/ OPC_CheckInteger, 1, ++/*381434*/ OPC_CheckType, MVT::i32, ++/*381436*/ OPC_MoveParent, ++/*381437*/ OPC_MoveChild, 8, ++/*381439*/ OPC_CheckInteger, 1, ++/*381441*/ OPC_CheckType, MVT::i32, ++/*381443*/ OPC_MoveParent, ++/*381444*/ OPC_MoveChild, 9, ++/*381446*/ OPC_CheckInteger, 1, ++/*381448*/ OPC_CheckType, MVT::i32, ++/*381450*/ OPC_MoveParent, ++/*381451*/ OPC_MoveChild, 10, ++/*381453*/ OPC_CheckInteger, 1, ++/*381455*/ OPC_CheckType, MVT::i32, ++/*381457*/ OPC_MoveParent, ++/*381458*/ OPC_MoveChild, 11, ++/*381460*/ OPC_CheckInteger, 1, ++/*381462*/ OPC_CheckType, MVT::i32, ++/*381464*/ OPC_MoveParent, ++/*381465*/ OPC_MoveChild, 12, ++/*381467*/ OPC_CheckInteger, 1, ++/*381469*/ OPC_CheckType, MVT::i32, ++/*381471*/ OPC_MoveParent, ++/*381472*/ OPC_MoveChild, 13, ++/*381474*/ OPC_CheckInteger, 1, ++/*381476*/ OPC_CheckType, MVT::i32, ++/*381478*/ OPC_MoveParent, ++/*381479*/ OPC_MoveChild, 14, ++/*381481*/ OPC_CheckInteger, 1, ++/*381483*/ OPC_CheckType, MVT::i32, ++/*381485*/ OPC_MoveParent, ++/*381486*/ OPC_MoveChild, 15, ++/*381488*/ OPC_CheckInteger, 1, ++/*381490*/ OPC_CheckType, MVT::i32, ++/*381492*/ OPC_MoveParent, ++/*381493*/ OPC_CheckType, MVT::v16i16, ++/*381495*/ OPC_MoveParent, ++/*381496*/ OPC_CheckType, MVT::v16i16, ++/*381498*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*381500*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b), LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*381508*/ 0, /*End of Scope*/ ++/*381509*/ 0, /*End of Scope*/ ++/*381510*/ /*Scope*/ 101|128,63/*8165*/, /*->389677*/ ++/*381512*/ OPC_RecordChild0, // #0 = $b ++/*381513*/ OPC_Scope, 101|128,21/*2789*/, /*->384305*/ // 2 children in Scope ++/*381516*/ OPC_MoveChild1, ++/*381517*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*381520*/ OPC_CheckChild0Integer, 1, ++/*381522*/ OPC_CheckChild0Type, MVT::i32, ++/*381524*/ OPC_CheckChild1Integer, 1, ++/*381526*/ OPC_CheckChild1Type, MVT::i32, ++/*381528*/ OPC_CheckChild2Integer, 1, ++/*381530*/ OPC_CheckChild2Type, MVT::i32, ++/*381532*/ OPC_CheckChild3Integer, 1, ++/*381534*/ OPC_CheckChild3Type, MVT::i32, ++/*381536*/ OPC_CheckChild4Integer, 1, ++/*381538*/ OPC_CheckChild4Type, MVT::i32, ++/*381540*/ OPC_MoveChild5, ++/*381541*/ OPC_CheckInteger, 1, ++/*381543*/ OPC_CheckType, MVT::i32, ++/*381545*/ OPC_MoveParent, ++/*381546*/ OPC_MoveChild6, ++/*381547*/ OPC_CheckInteger, 1, ++/*381549*/ OPC_CheckType, MVT::i32, ++/*381551*/ OPC_MoveParent, ++/*381552*/ OPC_MoveChild7, ++/*381553*/ OPC_CheckInteger, 1, ++/*381555*/ OPC_CheckType, MVT::i32, ++/*381557*/ OPC_MoveParent, ++/*381558*/ OPC_MoveChild, 8, ++/*381560*/ OPC_CheckInteger, 1, ++/*381562*/ OPC_CheckType, MVT::i32, ++/*381564*/ OPC_MoveParent, ++/*381565*/ OPC_MoveChild, 9, ++/*381567*/ OPC_CheckInteger, 1, ++/*381569*/ OPC_CheckType, MVT::i32, ++/*381571*/ OPC_MoveParent, ++/*381572*/ OPC_MoveChild, 10, ++/*381574*/ OPC_CheckInteger, 1, ++/*381576*/ OPC_CheckType, MVT::i32, ++/*381578*/ OPC_MoveParent, ++/*381579*/ OPC_MoveChild, 11, ++/*381581*/ OPC_CheckInteger, 1, ++/*381583*/ OPC_CheckType, MVT::i32, ++/*381585*/ OPC_MoveParent, ++/*381586*/ OPC_MoveChild, 12, ++/*381588*/ OPC_CheckInteger, 1, ++/*381590*/ OPC_CheckType, MVT::i32, ++/*381592*/ OPC_MoveParent, ++/*381593*/ OPC_MoveChild, 13, ++/*381595*/ OPC_CheckInteger, 1, ++/*381597*/ OPC_CheckType, MVT::i32, ++/*381599*/ OPC_MoveParent, ++/*381600*/ OPC_MoveChild, 14, ++/*381602*/ OPC_CheckInteger, 1, ++/*381604*/ OPC_CheckType, MVT::i32, ++/*381606*/ OPC_MoveParent, ++/*381607*/ OPC_MoveChild, 15, ++/*381609*/ OPC_CheckInteger, 1, ++/*381611*/ OPC_CheckType, MVT::i32, ++/*381613*/ OPC_MoveParent, ++/*381614*/ OPC_MoveParent, ++/*381615*/ OPC_MoveParent, ++/*381616*/ OPC_RecordChild1, // #1 = $a ++/*381617*/ OPC_MoveParent, ++/*381618*/ OPC_MoveChild1, ++/*381619*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*381622*/ OPC_CheckChild0Integer, 15, ++/*381624*/ OPC_CheckChild0Type, MVT::i32, ++/*381626*/ OPC_CheckChild1Integer, 15, ++/*381628*/ OPC_CheckChild1Type, MVT::i32, ++/*381630*/ OPC_CheckChild2Integer, 15, ++/*381632*/ OPC_CheckChild2Type, MVT::i32, ++/*381634*/ OPC_CheckChild3Integer, 15, ++/*381636*/ OPC_CheckChild3Type, MVT::i32, ++/*381638*/ OPC_CheckChild4Integer, 15, ++/*381640*/ OPC_CheckChild4Type, MVT::i32, ++/*381642*/ OPC_MoveChild5, ++/*381643*/ OPC_CheckInteger, 15, ++/*381645*/ OPC_CheckType, MVT::i32, ++/*381647*/ OPC_MoveParent, ++/*381648*/ OPC_MoveChild6, ++/*381649*/ OPC_CheckInteger, 15, ++/*381651*/ OPC_CheckType, MVT::i32, ++/*381653*/ OPC_MoveParent, ++/*381654*/ OPC_MoveChild7, ++/*381655*/ OPC_CheckInteger, 15, ++/*381657*/ OPC_CheckType, MVT::i32, ++/*381659*/ OPC_MoveParent, ++/*381660*/ OPC_MoveChild, 8, ++/*381662*/ OPC_CheckInteger, 15, ++/*381664*/ OPC_CheckType, MVT::i32, ++/*381666*/ OPC_MoveParent, ++/*381667*/ OPC_MoveChild, 9, ++/*381669*/ OPC_CheckInteger, 15, ++/*381671*/ OPC_CheckType, MVT::i32, ++/*381673*/ OPC_MoveParent, ++/*381674*/ OPC_MoveChild, 10, ++/*381676*/ OPC_CheckInteger, 15, ++/*381678*/ OPC_CheckType, MVT::i32, ++/*381680*/ OPC_MoveParent, ++/*381681*/ OPC_MoveChild, 11, ++/*381683*/ OPC_CheckInteger, 15, ++/*381685*/ OPC_CheckType, MVT::i32, ++/*381687*/ OPC_MoveParent, ++/*381688*/ OPC_MoveChild, 12, ++/*381690*/ OPC_CheckInteger, 15, ++/*381692*/ OPC_CheckType, MVT::i32, ++/*381694*/ OPC_MoveParent, ++/*381695*/ OPC_MoveChild, 13, ++/*381697*/ OPC_CheckInteger, 15, ++/*381699*/ OPC_CheckType, MVT::i32, ++/*381701*/ OPC_MoveParent, ++/*381702*/ OPC_MoveChild, 14, ++/*381704*/ OPC_CheckInteger, 15, ++/*381706*/ OPC_CheckType, MVT::i32, ++/*381708*/ OPC_MoveParent, ++/*381709*/ OPC_MoveChild, 15, ++/*381711*/ OPC_CheckInteger, 15, ++/*381713*/ OPC_CheckType, MVT::i32, ++/*381715*/ OPC_MoveParent, ++/*381716*/ OPC_CheckType, MVT::v16i16, ++/*381718*/ OPC_MoveParent, ++/*381719*/ OPC_MoveParent, ++/*381720*/ OPC_MoveChild1, ++/*381721*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*381724*/ OPC_Scope, 52|128,10/*1332*/, /*->383059*/ // 4 children in Scope ++/*381727*/ OPC_MoveChild0, ++/*381728*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*381731*/ OPC_Scope, 91|128,1/*219*/, /*->381953*/ // 6 children in Scope ++/*381734*/ OPC_MoveChild0, ++/*381735*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*381738*/ OPC_CheckChild0Integer, 1, ++/*381740*/ OPC_CheckChild0Type, MVT::i32, ++/*381742*/ OPC_CheckChild1Integer, 1, ++/*381744*/ OPC_CheckChild1Type, MVT::i32, ++/*381746*/ OPC_CheckChild2Integer, 1, ++/*381748*/ OPC_CheckChild2Type, MVT::i32, ++/*381750*/ OPC_CheckChild3Integer, 1, ++/*381752*/ OPC_CheckChild3Type, MVT::i32, ++/*381754*/ OPC_CheckChild4Integer, 1, ++/*381756*/ OPC_CheckChild4Type, MVT::i32, ++/*381758*/ OPC_MoveChild5, ++/*381759*/ OPC_CheckInteger, 1, ++/*381761*/ OPC_CheckType, MVT::i32, ++/*381763*/ OPC_MoveParent, ++/*381764*/ OPC_MoveChild6, ++/*381765*/ OPC_CheckInteger, 1, ++/*381767*/ OPC_CheckType, MVT::i32, ++/*381769*/ OPC_MoveParent, ++/*381770*/ OPC_MoveChild7, ++/*381771*/ OPC_CheckInteger, 1, ++/*381773*/ OPC_CheckType, MVT::i32, ++/*381775*/ OPC_MoveParent, ++/*381776*/ OPC_MoveChild, 8, ++/*381778*/ OPC_CheckInteger, 1, ++/*381780*/ OPC_CheckType, MVT::i32, ++/*381782*/ OPC_MoveParent, ++/*381783*/ OPC_MoveChild, 9, ++/*381785*/ OPC_CheckInteger, 1, ++/*381787*/ OPC_CheckType, MVT::i32, ++/*381789*/ OPC_MoveParent, ++/*381790*/ OPC_MoveChild, 10, ++/*381792*/ OPC_CheckInteger, 1, ++/*381794*/ OPC_CheckType, MVT::i32, ++/*381796*/ OPC_MoveParent, ++/*381797*/ OPC_MoveChild, 11, ++/*381799*/ OPC_CheckInteger, 1, ++/*381801*/ OPC_CheckType, MVT::i32, ++/*381803*/ OPC_MoveParent, ++/*381804*/ OPC_MoveChild, 12, ++/*381806*/ OPC_CheckInteger, 1, ++/*381808*/ OPC_CheckType, MVT::i32, ++/*381810*/ OPC_MoveParent, ++/*381811*/ OPC_MoveChild, 13, ++/*381813*/ OPC_CheckInteger, 1, ++/*381815*/ OPC_CheckType, MVT::i32, ++/*381817*/ OPC_MoveParent, ++/*381818*/ OPC_MoveChild, 14, ++/*381820*/ OPC_CheckInteger, 1, ++/*381822*/ OPC_CheckType, MVT::i32, ++/*381824*/ OPC_MoveParent, ++/*381825*/ OPC_MoveChild, 15, ++/*381827*/ OPC_CheckInteger, 1, ++/*381829*/ OPC_CheckType, MVT::i32, ++/*381831*/ OPC_MoveParent, ++/*381832*/ OPC_MoveParent, ++/*381833*/ OPC_CheckChild1Same, 1, ++/*381835*/ OPC_MoveParent, ++/*381836*/ OPC_CheckChild1Same, 0, ++/*381838*/ OPC_MoveParent, ++/*381839*/ OPC_MoveParent, ++/*381840*/ OPC_MoveChild1, ++/*381841*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*381844*/ OPC_CheckChild0Integer, 1, ++/*381846*/ OPC_CheckChild0Type, MVT::i32, ++/*381848*/ OPC_CheckChild1Integer, 1, ++/*381850*/ OPC_CheckChild1Type, MVT::i32, ++/*381852*/ OPC_CheckChild2Integer, 1, ++/*381854*/ OPC_CheckChild2Type, MVT::i32, ++/*381856*/ OPC_CheckChild3Integer, 1, ++/*381858*/ OPC_CheckChild3Type, MVT::i32, ++/*381860*/ OPC_CheckChild4Integer, 1, ++/*381862*/ OPC_CheckChild4Type, MVT::i32, ++/*381864*/ OPC_MoveChild5, ++/*381865*/ OPC_CheckInteger, 1, ++/*381867*/ OPC_CheckType, MVT::i32, ++/*381869*/ OPC_MoveParent, ++/*381870*/ OPC_MoveChild6, ++/*381871*/ OPC_CheckInteger, 1, ++/*381873*/ OPC_CheckType, MVT::i32, ++/*381875*/ OPC_MoveParent, ++/*381876*/ OPC_MoveChild7, ++/*381877*/ OPC_CheckInteger, 1, ++/*381879*/ OPC_CheckType, MVT::i32, ++/*381881*/ OPC_MoveParent, ++/*381882*/ OPC_MoveChild, 8, ++/*381884*/ OPC_CheckInteger, 1, ++/*381886*/ OPC_CheckType, MVT::i32, ++/*381888*/ OPC_MoveParent, ++/*381889*/ OPC_MoveChild, 9, ++/*381891*/ OPC_CheckInteger, 1, ++/*381893*/ OPC_CheckType, MVT::i32, ++/*381895*/ OPC_MoveParent, ++/*381896*/ OPC_MoveChild, 10, ++/*381898*/ OPC_CheckInteger, 1, ++/*381900*/ OPC_CheckType, MVT::i32, ++/*381902*/ OPC_MoveParent, ++/*381903*/ OPC_MoveChild, 11, ++/*381905*/ OPC_CheckInteger, 1, ++/*381907*/ OPC_CheckType, MVT::i32, ++/*381909*/ OPC_MoveParent, ++/*381910*/ OPC_MoveChild, 12, ++/*381912*/ OPC_CheckInteger, 1, ++/*381914*/ OPC_CheckType, MVT::i32, ++/*381916*/ OPC_MoveParent, ++/*381917*/ OPC_MoveChild, 13, ++/*381919*/ OPC_CheckInteger, 1, ++/*381921*/ OPC_CheckType, MVT::i32, ++/*381923*/ OPC_MoveParent, ++/*381924*/ OPC_MoveChild, 14, ++/*381926*/ OPC_CheckInteger, 1, ++/*381928*/ OPC_CheckType, MVT::i32, ++/*381930*/ OPC_MoveParent, ++/*381931*/ OPC_MoveChild, 15, ++/*381933*/ OPC_CheckInteger, 1, ++/*381935*/ OPC_CheckType, MVT::i32, ++/*381937*/ OPC_MoveParent, ++/*381938*/ OPC_CheckType, MVT::v16i16, ++/*381940*/ OPC_MoveParent, ++/*381941*/ OPC_CheckType, MVT::v16i16, ++/*381943*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*381945*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a), LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*381953*/ /*Scope*/ 91|128,1/*219*/, /*->382174*/ ++/*381955*/ OPC_CheckChild0Same, 1, ++/*381957*/ OPC_MoveChild1, ++/*381958*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*381961*/ OPC_CheckChild0Integer, 1, ++/*381963*/ OPC_CheckChild0Type, MVT::i32, ++/*381965*/ OPC_CheckChild1Integer, 1, ++/*381967*/ OPC_CheckChild1Type, MVT::i32, ++/*381969*/ OPC_CheckChild2Integer, 1, ++/*381971*/ OPC_CheckChild2Type, MVT::i32, ++/*381973*/ OPC_CheckChild3Integer, 1, ++/*381975*/ OPC_CheckChild3Type, MVT::i32, ++/*381977*/ OPC_CheckChild4Integer, 1, ++/*381979*/ OPC_CheckChild4Type, MVT::i32, ++/*381981*/ OPC_MoveChild5, ++/*381982*/ OPC_CheckInteger, 1, ++/*381984*/ OPC_CheckType, MVT::i32, ++/*381986*/ OPC_MoveParent, ++/*381987*/ OPC_MoveChild6, ++/*381988*/ OPC_CheckInteger, 1, ++/*381990*/ OPC_CheckType, MVT::i32, ++/*381992*/ OPC_MoveParent, ++/*381993*/ OPC_MoveChild7, ++/*381994*/ OPC_CheckInteger, 1, ++/*381996*/ OPC_CheckType, MVT::i32, ++/*381998*/ OPC_MoveParent, ++/*381999*/ OPC_MoveChild, 8, ++/*382001*/ OPC_CheckInteger, 1, ++/*382003*/ OPC_CheckType, MVT::i32, ++/*382005*/ OPC_MoveParent, ++/*382006*/ OPC_MoveChild, 9, ++/*382008*/ OPC_CheckInteger, 1, ++/*382010*/ OPC_CheckType, MVT::i32, ++/*382012*/ OPC_MoveParent, ++/*382013*/ OPC_MoveChild, 10, ++/*382015*/ OPC_CheckInteger, 1, ++/*382017*/ OPC_CheckType, MVT::i32, ++/*382019*/ OPC_MoveParent, ++/*382020*/ OPC_MoveChild, 11, ++/*382022*/ OPC_CheckInteger, 1, ++/*382024*/ OPC_CheckType, MVT::i32, ++/*382026*/ OPC_MoveParent, ++/*382027*/ OPC_MoveChild, 12, ++/*382029*/ OPC_CheckInteger, 1, ++/*382031*/ OPC_CheckType, MVT::i32, ++/*382033*/ OPC_MoveParent, ++/*382034*/ OPC_MoveChild, 13, ++/*382036*/ OPC_CheckInteger, 1, ++/*382038*/ OPC_CheckType, MVT::i32, ++/*382040*/ OPC_MoveParent, ++/*382041*/ OPC_MoveChild, 14, ++/*382043*/ OPC_CheckInteger, 1, ++/*382045*/ OPC_CheckType, MVT::i32, ++/*382047*/ OPC_MoveParent, ++/*382048*/ OPC_MoveChild, 15, ++/*382050*/ OPC_CheckInteger, 1, ++/*382052*/ OPC_CheckType, MVT::i32, ++/*382054*/ OPC_MoveParent, ++/*382055*/ OPC_MoveParent, ++/*382056*/ OPC_MoveParent, ++/*382057*/ OPC_CheckChild1Same, 0, ++/*382059*/ OPC_MoveParent, ++/*382060*/ OPC_MoveParent, ++/*382061*/ OPC_MoveChild1, ++/*382062*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*382065*/ OPC_CheckChild0Integer, 1, ++/*382067*/ OPC_CheckChild0Type, MVT::i32, ++/*382069*/ OPC_CheckChild1Integer, 1, ++/*382071*/ OPC_CheckChild1Type, MVT::i32, ++/*382073*/ OPC_CheckChild2Integer, 1, ++/*382075*/ OPC_CheckChild2Type, MVT::i32, ++/*382077*/ OPC_CheckChild3Integer, 1, ++/*382079*/ OPC_CheckChild3Type, MVT::i32, ++/*382081*/ OPC_CheckChild4Integer, 1, ++/*382083*/ OPC_CheckChild4Type, MVT::i32, ++/*382085*/ OPC_MoveChild5, ++/*382086*/ OPC_CheckInteger, 1, ++/*382088*/ OPC_CheckType, MVT::i32, ++/*382090*/ OPC_MoveParent, ++/*382091*/ OPC_MoveChild6, ++/*382092*/ OPC_CheckInteger, 1, ++/*382094*/ OPC_CheckType, MVT::i32, ++/*382096*/ OPC_MoveParent, ++/*382097*/ OPC_MoveChild7, ++/*382098*/ OPC_CheckInteger, 1, ++/*382100*/ OPC_CheckType, MVT::i32, ++/*382102*/ OPC_MoveParent, ++/*382103*/ OPC_MoveChild, 8, ++/*382105*/ OPC_CheckInteger, 1, ++/*382107*/ OPC_CheckType, MVT::i32, ++/*382109*/ OPC_MoveParent, ++/*382110*/ OPC_MoveChild, 9, ++/*382112*/ OPC_CheckInteger, 1, ++/*382114*/ OPC_CheckType, MVT::i32, ++/*382116*/ OPC_MoveParent, ++/*382117*/ OPC_MoveChild, 10, ++/*382119*/ OPC_CheckInteger, 1, ++/*382121*/ OPC_CheckType, MVT::i32, ++/*382123*/ OPC_MoveParent, ++/*382124*/ OPC_MoveChild, 11, ++/*382126*/ OPC_CheckInteger, 1, ++/*382128*/ OPC_CheckType, MVT::i32, ++/*382130*/ OPC_MoveParent, ++/*382131*/ OPC_MoveChild, 12, ++/*382133*/ OPC_CheckInteger, 1, ++/*382135*/ OPC_CheckType, MVT::i32, ++/*382137*/ OPC_MoveParent, ++/*382138*/ OPC_MoveChild, 13, ++/*382140*/ OPC_CheckInteger, 1, ++/*382142*/ OPC_CheckType, MVT::i32, ++/*382144*/ OPC_MoveParent, ++/*382145*/ OPC_MoveChild, 14, ++/*382147*/ OPC_CheckInteger, 1, ++/*382149*/ OPC_CheckType, MVT::i32, ++/*382151*/ OPC_MoveParent, ++/*382152*/ OPC_MoveChild, 15, ++/*382154*/ OPC_CheckInteger, 1, ++/*382156*/ OPC_CheckType, MVT::i32, ++/*382158*/ OPC_MoveParent, ++/*382159*/ OPC_CheckType, MVT::v16i16, ++/*382161*/ OPC_MoveParent, ++/*382162*/ OPC_CheckType, MVT::v16i16, ++/*382164*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*382166*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*382174*/ /*Scope*/ 91|128,1/*219*/, /*->382395*/ ++/*382176*/ OPC_MoveChild0, ++/*382177*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*382180*/ OPC_CheckChild0Integer, 1, ++/*382182*/ OPC_CheckChild0Type, MVT::i32, ++/*382184*/ OPC_CheckChild1Integer, 1, ++/*382186*/ OPC_CheckChild1Type, MVT::i32, ++/*382188*/ OPC_CheckChild2Integer, 1, ++/*382190*/ OPC_CheckChild2Type, MVT::i32, ++/*382192*/ OPC_CheckChild3Integer, 1, ++/*382194*/ OPC_CheckChild3Type, MVT::i32, ++/*382196*/ OPC_CheckChild4Integer, 1, ++/*382198*/ OPC_CheckChild4Type, MVT::i32, ++/*382200*/ OPC_MoveChild5, ++/*382201*/ OPC_CheckInteger, 1, ++/*382203*/ OPC_CheckType, MVT::i32, ++/*382205*/ OPC_MoveParent, ++/*382206*/ OPC_MoveChild6, ++/*382207*/ OPC_CheckInteger, 1, ++/*382209*/ OPC_CheckType, MVT::i32, ++/*382211*/ OPC_MoveParent, ++/*382212*/ OPC_MoveChild7, ++/*382213*/ OPC_CheckInteger, 1, ++/*382215*/ OPC_CheckType, MVT::i32, ++/*382217*/ OPC_MoveParent, ++/*382218*/ OPC_MoveChild, 8, ++/*382220*/ OPC_CheckInteger, 1, ++/*382222*/ OPC_CheckType, MVT::i32, ++/*382224*/ OPC_MoveParent, ++/*382225*/ OPC_MoveChild, 9, ++/*382227*/ OPC_CheckInteger, 1, ++/*382229*/ OPC_CheckType, MVT::i32, ++/*382231*/ OPC_MoveParent, ++/*382232*/ OPC_MoveChild, 10, ++/*382234*/ OPC_CheckInteger, 1, ++/*382236*/ OPC_CheckType, MVT::i32, ++/*382238*/ OPC_MoveParent, ++/*382239*/ OPC_MoveChild, 11, ++/*382241*/ OPC_CheckInteger, 1, ++/*382243*/ OPC_CheckType, MVT::i32, ++/*382245*/ OPC_MoveParent, ++/*382246*/ OPC_MoveChild, 12, ++/*382248*/ OPC_CheckInteger, 1, ++/*382250*/ OPC_CheckType, MVT::i32, ++/*382252*/ OPC_MoveParent, ++/*382253*/ OPC_MoveChild, 13, ++/*382255*/ OPC_CheckInteger, 1, ++/*382257*/ OPC_CheckType, MVT::i32, ++/*382259*/ OPC_MoveParent, ++/*382260*/ OPC_MoveChild, 14, ++/*382262*/ OPC_CheckInteger, 1, ++/*382264*/ OPC_CheckType, MVT::i32, ++/*382266*/ OPC_MoveParent, ++/*382267*/ OPC_MoveChild, 15, ++/*382269*/ OPC_CheckInteger, 1, ++/*382271*/ OPC_CheckType, MVT::i32, ++/*382273*/ OPC_MoveParent, ++/*382274*/ OPC_MoveParent, ++/*382275*/ OPC_CheckChild1Same, 0, ++/*382277*/ OPC_MoveParent, ++/*382278*/ OPC_CheckChild1Same, 1, ++/*382280*/ OPC_MoveParent, ++/*382281*/ OPC_MoveParent, ++/*382282*/ OPC_MoveChild1, ++/*382283*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*382286*/ OPC_CheckChild0Integer, 1, ++/*382288*/ OPC_CheckChild0Type, MVT::i32, ++/*382290*/ OPC_CheckChild1Integer, 1, ++/*382292*/ OPC_CheckChild1Type, MVT::i32, ++/*382294*/ OPC_CheckChild2Integer, 1, ++/*382296*/ OPC_CheckChild2Type, MVT::i32, ++/*382298*/ OPC_CheckChild3Integer, 1, ++/*382300*/ OPC_CheckChild3Type, MVT::i32, ++/*382302*/ OPC_CheckChild4Integer, 1, ++/*382304*/ OPC_CheckChild4Type, MVT::i32, ++/*382306*/ OPC_MoveChild5, ++/*382307*/ OPC_CheckInteger, 1, ++/*382309*/ OPC_CheckType, MVT::i32, ++/*382311*/ OPC_MoveParent, ++/*382312*/ OPC_MoveChild6, ++/*382313*/ OPC_CheckInteger, 1, ++/*382315*/ OPC_CheckType, MVT::i32, ++/*382317*/ OPC_MoveParent, ++/*382318*/ OPC_MoveChild7, ++/*382319*/ OPC_CheckInteger, 1, ++/*382321*/ OPC_CheckType, MVT::i32, ++/*382323*/ OPC_MoveParent, ++/*382324*/ OPC_MoveChild, 8, ++/*382326*/ OPC_CheckInteger, 1, ++/*382328*/ OPC_CheckType, MVT::i32, ++/*382330*/ OPC_MoveParent, ++/*382331*/ OPC_MoveChild, 9, ++/*382333*/ OPC_CheckInteger, 1, ++/*382335*/ OPC_CheckType, MVT::i32, ++/*382337*/ OPC_MoveParent, ++/*382338*/ OPC_MoveChild, 10, ++/*382340*/ OPC_CheckInteger, 1, ++/*382342*/ OPC_CheckType, MVT::i32, ++/*382344*/ OPC_MoveParent, ++/*382345*/ OPC_MoveChild, 11, ++/*382347*/ OPC_CheckInteger, 1, ++/*382349*/ OPC_CheckType, MVT::i32, ++/*382351*/ OPC_MoveParent, ++/*382352*/ OPC_MoveChild, 12, ++/*382354*/ OPC_CheckInteger, 1, ++/*382356*/ OPC_CheckType, MVT::i32, ++/*382358*/ OPC_MoveParent, ++/*382359*/ OPC_MoveChild, 13, ++/*382361*/ OPC_CheckInteger, 1, ++/*382363*/ OPC_CheckType, MVT::i32, ++/*382365*/ OPC_MoveParent, ++/*382366*/ OPC_MoveChild, 14, ++/*382368*/ OPC_CheckInteger, 1, ++/*382370*/ OPC_CheckType, MVT::i32, ++/*382372*/ OPC_MoveParent, ++/*382373*/ OPC_MoveChild, 15, ++/*382375*/ OPC_CheckInteger, 1, ++/*382377*/ OPC_CheckType, MVT::i32, ++/*382379*/ OPC_MoveParent, ++/*382380*/ OPC_CheckType, MVT::v16i16, ++/*382382*/ OPC_MoveParent, ++/*382383*/ OPC_CheckType, MVT::v16i16, ++/*382385*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*382387*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b), LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*382395*/ /*Scope*/ 91|128,1/*219*/, /*->382616*/ ++/*382397*/ OPC_CheckChild0Same, 0, ++/*382399*/ OPC_MoveChild1, ++/*382400*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*382403*/ OPC_CheckChild0Integer, 1, ++/*382405*/ OPC_CheckChild0Type, MVT::i32, ++/*382407*/ OPC_CheckChild1Integer, 1, ++/*382409*/ OPC_CheckChild1Type, MVT::i32, ++/*382411*/ OPC_CheckChild2Integer, 1, ++/*382413*/ OPC_CheckChild2Type, MVT::i32, ++/*382415*/ OPC_CheckChild3Integer, 1, ++/*382417*/ OPC_CheckChild3Type, MVT::i32, ++/*382419*/ OPC_CheckChild4Integer, 1, ++/*382421*/ OPC_CheckChild4Type, MVT::i32, ++/*382423*/ OPC_MoveChild5, ++/*382424*/ OPC_CheckInteger, 1, ++/*382426*/ OPC_CheckType, MVT::i32, ++/*382428*/ OPC_MoveParent, ++/*382429*/ OPC_MoveChild6, ++/*382430*/ OPC_CheckInteger, 1, ++/*382432*/ OPC_CheckType, MVT::i32, ++/*382434*/ OPC_MoveParent, ++/*382435*/ OPC_MoveChild7, ++/*382436*/ OPC_CheckInteger, 1, ++/*382438*/ OPC_CheckType, MVT::i32, ++/*382440*/ OPC_MoveParent, ++/*382441*/ OPC_MoveChild, 8, ++/*382443*/ OPC_CheckInteger, 1, ++/*382445*/ OPC_CheckType, MVT::i32, ++/*382447*/ OPC_MoveParent, ++/*382448*/ OPC_MoveChild, 9, ++/*382450*/ OPC_CheckInteger, 1, ++/*382452*/ OPC_CheckType, MVT::i32, ++/*382454*/ OPC_MoveParent, ++/*382455*/ OPC_MoveChild, 10, ++/*382457*/ OPC_CheckInteger, 1, ++/*382459*/ OPC_CheckType, MVT::i32, ++/*382461*/ OPC_MoveParent, ++/*382462*/ OPC_MoveChild, 11, ++/*382464*/ OPC_CheckInteger, 1, ++/*382466*/ OPC_CheckType, MVT::i32, ++/*382468*/ OPC_MoveParent, ++/*382469*/ OPC_MoveChild, 12, ++/*382471*/ OPC_CheckInteger, 1, ++/*382473*/ OPC_CheckType, MVT::i32, ++/*382475*/ OPC_MoveParent, ++/*382476*/ OPC_MoveChild, 13, ++/*382478*/ OPC_CheckInteger, 1, ++/*382480*/ OPC_CheckType, MVT::i32, ++/*382482*/ OPC_MoveParent, ++/*382483*/ OPC_MoveChild, 14, ++/*382485*/ OPC_CheckInteger, 1, ++/*382487*/ OPC_CheckType, MVT::i32, ++/*382489*/ OPC_MoveParent, ++/*382490*/ OPC_MoveChild, 15, ++/*382492*/ OPC_CheckInteger, 1, ++/*382494*/ OPC_CheckType, MVT::i32, ++/*382496*/ OPC_MoveParent, ++/*382497*/ OPC_MoveParent, ++/*382498*/ OPC_MoveParent, ++/*382499*/ OPC_CheckChild1Same, 1, ++/*382501*/ OPC_MoveParent, ++/*382502*/ OPC_MoveParent, ++/*382503*/ OPC_MoveChild1, ++/*382504*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*382507*/ OPC_CheckChild0Integer, 1, ++/*382509*/ OPC_CheckChild0Type, MVT::i32, ++/*382511*/ OPC_CheckChild1Integer, 1, ++/*382513*/ OPC_CheckChild1Type, MVT::i32, ++/*382515*/ OPC_CheckChild2Integer, 1, ++/*382517*/ OPC_CheckChild2Type, MVT::i32, ++/*382519*/ OPC_CheckChild3Integer, 1, ++/*382521*/ OPC_CheckChild3Type, MVT::i32, ++/*382523*/ OPC_CheckChild4Integer, 1, ++/*382525*/ OPC_CheckChild4Type, MVT::i32, ++/*382527*/ OPC_MoveChild5, ++/*382528*/ OPC_CheckInteger, 1, ++/*382530*/ OPC_CheckType, MVT::i32, ++/*382532*/ OPC_MoveParent, ++/*382533*/ OPC_MoveChild6, ++/*382534*/ OPC_CheckInteger, 1, ++/*382536*/ OPC_CheckType, MVT::i32, ++/*382538*/ OPC_MoveParent, ++/*382539*/ OPC_MoveChild7, ++/*382540*/ OPC_CheckInteger, 1, ++/*382542*/ OPC_CheckType, MVT::i32, ++/*382544*/ OPC_MoveParent, ++/*382545*/ OPC_MoveChild, 8, ++/*382547*/ OPC_CheckInteger, 1, ++/*382549*/ OPC_CheckType, MVT::i32, ++/*382551*/ OPC_MoveParent, ++/*382552*/ OPC_MoveChild, 9, ++/*382554*/ OPC_CheckInteger, 1, ++/*382556*/ OPC_CheckType, MVT::i32, ++/*382558*/ OPC_MoveParent, ++/*382559*/ OPC_MoveChild, 10, ++/*382561*/ OPC_CheckInteger, 1, ++/*382563*/ OPC_CheckType, MVT::i32, ++/*382565*/ OPC_MoveParent, ++/*382566*/ OPC_MoveChild, 11, ++/*382568*/ OPC_CheckInteger, 1, ++/*382570*/ OPC_CheckType, MVT::i32, ++/*382572*/ OPC_MoveParent, ++/*382573*/ OPC_MoveChild, 12, ++/*382575*/ OPC_CheckInteger, 1, ++/*382577*/ OPC_CheckType, MVT::i32, ++/*382579*/ OPC_MoveParent, ++/*382580*/ OPC_MoveChild, 13, ++/*382582*/ OPC_CheckInteger, 1, ++/*382584*/ OPC_CheckType, MVT::i32, ++/*382586*/ OPC_MoveParent, ++/*382587*/ OPC_MoveChild, 14, ++/*382589*/ OPC_CheckInteger, 1, ++/*382591*/ OPC_CheckType, MVT::i32, ++/*382593*/ OPC_MoveParent, ++/*382594*/ OPC_MoveChild, 15, ++/*382596*/ OPC_CheckInteger, 1, ++/*382598*/ OPC_CheckType, MVT::i32, ++/*382600*/ OPC_MoveParent, ++/*382601*/ OPC_CheckType, MVT::v16i16, ++/*382603*/ OPC_MoveParent, ++/*382604*/ OPC_CheckType, MVT::v16i16, ++/*382606*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*382608*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*382616*/ /*Scope*/ 91|128,1/*219*/, /*->382837*/ ++/*382618*/ OPC_CheckChild0Same, 1, ++/*382620*/ OPC_CheckChild1Same, 0, ++/*382622*/ OPC_MoveParent, ++/*382623*/ OPC_MoveChild1, ++/*382624*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*382627*/ OPC_CheckChild0Integer, 1, ++/*382629*/ OPC_CheckChild0Type, MVT::i32, ++/*382631*/ OPC_CheckChild1Integer, 1, ++/*382633*/ OPC_CheckChild1Type, MVT::i32, ++/*382635*/ OPC_CheckChild2Integer, 1, ++/*382637*/ OPC_CheckChild2Type, MVT::i32, ++/*382639*/ OPC_CheckChild3Integer, 1, ++/*382641*/ OPC_CheckChild3Type, MVT::i32, ++/*382643*/ OPC_CheckChild4Integer, 1, ++/*382645*/ OPC_CheckChild4Type, MVT::i32, ++/*382647*/ OPC_MoveChild5, ++/*382648*/ OPC_CheckInteger, 1, ++/*382650*/ OPC_CheckType, MVT::i32, ++/*382652*/ OPC_MoveParent, ++/*382653*/ OPC_MoveChild6, ++/*382654*/ OPC_CheckInteger, 1, ++/*382656*/ OPC_CheckType, MVT::i32, ++/*382658*/ OPC_MoveParent, ++/*382659*/ OPC_MoveChild7, ++/*382660*/ OPC_CheckInteger, 1, ++/*382662*/ OPC_CheckType, MVT::i32, ++/*382664*/ OPC_MoveParent, ++/*382665*/ OPC_MoveChild, 8, ++/*382667*/ OPC_CheckInteger, 1, ++/*382669*/ OPC_CheckType, MVT::i32, ++/*382671*/ OPC_MoveParent, ++/*382672*/ OPC_MoveChild, 9, ++/*382674*/ OPC_CheckInteger, 1, ++/*382676*/ OPC_CheckType, MVT::i32, ++/*382678*/ OPC_MoveParent, ++/*382679*/ OPC_MoveChild, 10, ++/*382681*/ OPC_CheckInteger, 1, ++/*382683*/ OPC_CheckType, MVT::i32, ++/*382685*/ OPC_MoveParent, ++/*382686*/ OPC_MoveChild, 11, ++/*382688*/ OPC_CheckInteger, 1, ++/*382690*/ OPC_CheckType, MVT::i32, ++/*382692*/ OPC_MoveParent, ++/*382693*/ OPC_MoveChild, 12, ++/*382695*/ OPC_CheckInteger, 1, ++/*382697*/ OPC_CheckType, MVT::i32, ++/*382699*/ OPC_MoveParent, ++/*382700*/ OPC_MoveChild, 13, ++/*382702*/ OPC_CheckInteger, 1, ++/*382704*/ OPC_CheckType, MVT::i32, ++/*382706*/ OPC_MoveParent, ++/*382707*/ OPC_MoveChild, 14, ++/*382709*/ OPC_CheckInteger, 1, ++/*382711*/ OPC_CheckType, MVT::i32, ++/*382713*/ OPC_MoveParent, ++/*382714*/ OPC_MoveChild, 15, ++/*382716*/ OPC_CheckInteger, 1, ++/*382718*/ OPC_CheckType, MVT::i32, ++/*382720*/ OPC_MoveParent, ++/*382721*/ OPC_MoveParent, ++/*382722*/ OPC_MoveParent, ++/*382723*/ OPC_MoveParent, ++/*382724*/ OPC_MoveChild1, ++/*382725*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*382728*/ OPC_CheckChild0Integer, 1, ++/*382730*/ OPC_CheckChild0Type, MVT::i32, ++/*382732*/ OPC_CheckChild1Integer, 1, ++/*382734*/ OPC_CheckChild1Type, MVT::i32, ++/*382736*/ OPC_CheckChild2Integer, 1, ++/*382738*/ OPC_CheckChild2Type, MVT::i32, ++/*382740*/ OPC_CheckChild3Integer, 1, ++/*382742*/ OPC_CheckChild3Type, MVT::i32, ++/*382744*/ OPC_CheckChild4Integer, 1, ++/*382746*/ OPC_CheckChild4Type, MVT::i32, ++/*382748*/ OPC_MoveChild5, ++/*382749*/ OPC_CheckInteger, 1, ++/*382751*/ OPC_CheckType, MVT::i32, ++/*382753*/ OPC_MoveParent, ++/*382754*/ OPC_MoveChild6, ++/*382755*/ OPC_CheckInteger, 1, ++/*382757*/ OPC_CheckType, MVT::i32, ++/*382759*/ OPC_MoveParent, ++/*382760*/ OPC_MoveChild7, ++/*382761*/ OPC_CheckInteger, 1, ++/*382763*/ OPC_CheckType, MVT::i32, ++/*382765*/ OPC_MoveParent, ++/*382766*/ OPC_MoveChild, 8, ++/*382768*/ OPC_CheckInteger, 1, ++/*382770*/ OPC_CheckType, MVT::i32, ++/*382772*/ OPC_MoveParent, ++/*382773*/ OPC_MoveChild, 9, ++/*382775*/ OPC_CheckInteger, 1, ++/*382777*/ OPC_CheckType, MVT::i32, ++/*382779*/ OPC_MoveParent, ++/*382780*/ OPC_MoveChild, 10, ++/*382782*/ OPC_CheckInteger, 1, ++/*382784*/ OPC_CheckType, MVT::i32, ++/*382786*/ OPC_MoveParent, ++/*382787*/ OPC_MoveChild, 11, ++/*382789*/ OPC_CheckInteger, 1, ++/*382791*/ OPC_CheckType, MVT::i32, ++/*382793*/ OPC_MoveParent, ++/*382794*/ OPC_MoveChild, 12, ++/*382796*/ OPC_CheckInteger, 1, ++/*382798*/ OPC_CheckType, MVT::i32, ++/*382800*/ OPC_MoveParent, ++/*382801*/ OPC_MoveChild, 13, ++/*382803*/ OPC_CheckInteger, 1, ++/*382805*/ OPC_CheckType, MVT::i32, ++/*382807*/ OPC_MoveParent, ++/*382808*/ OPC_MoveChild, 14, ++/*382810*/ OPC_CheckInteger, 1, ++/*382812*/ OPC_CheckType, MVT::i32, ++/*382814*/ OPC_MoveParent, ++/*382815*/ OPC_MoveChild, 15, ++/*382817*/ OPC_CheckInteger, 1, ++/*382819*/ OPC_CheckType, MVT::i32, ++/*382821*/ OPC_MoveParent, ++/*382822*/ OPC_CheckType, MVT::v16i16, ++/*382824*/ OPC_MoveParent, ++/*382825*/ OPC_CheckType, MVT::v16i16, ++/*382827*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*382829*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*382837*/ /*Scope*/ 91|128,1/*219*/, /*->383058*/ ++/*382839*/ OPC_CheckChild0Same, 0, ++/*382841*/ OPC_CheckChild1Same, 1, ++/*382843*/ OPC_MoveParent, ++/*382844*/ OPC_MoveChild1, ++/*382845*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*382848*/ OPC_CheckChild0Integer, 1, ++/*382850*/ OPC_CheckChild0Type, MVT::i32, ++/*382852*/ OPC_CheckChild1Integer, 1, ++/*382854*/ OPC_CheckChild1Type, MVT::i32, ++/*382856*/ OPC_CheckChild2Integer, 1, ++/*382858*/ OPC_CheckChild2Type, MVT::i32, ++/*382860*/ OPC_CheckChild3Integer, 1, ++/*382862*/ OPC_CheckChild3Type, MVT::i32, ++/*382864*/ OPC_CheckChild4Integer, 1, ++/*382866*/ OPC_CheckChild4Type, MVT::i32, ++/*382868*/ OPC_MoveChild5, ++/*382869*/ OPC_CheckInteger, 1, ++/*382871*/ OPC_CheckType, MVT::i32, ++/*382873*/ OPC_MoveParent, ++/*382874*/ OPC_MoveChild6, ++/*382875*/ OPC_CheckInteger, 1, ++/*382877*/ OPC_CheckType, MVT::i32, ++/*382879*/ OPC_MoveParent, ++/*382880*/ OPC_MoveChild7, ++/*382881*/ OPC_CheckInteger, 1, ++/*382883*/ OPC_CheckType, MVT::i32, ++/*382885*/ OPC_MoveParent, ++/*382886*/ OPC_MoveChild, 8, ++/*382888*/ OPC_CheckInteger, 1, ++/*382890*/ OPC_CheckType, MVT::i32, ++/*382892*/ OPC_MoveParent, ++/*382893*/ OPC_MoveChild, 9, ++/*382895*/ OPC_CheckInteger, 1, ++/*382897*/ OPC_CheckType, MVT::i32, ++/*382899*/ OPC_MoveParent, ++/*382900*/ OPC_MoveChild, 10, ++/*382902*/ OPC_CheckInteger, 1, ++/*382904*/ OPC_CheckType, MVT::i32, ++/*382906*/ OPC_MoveParent, ++/*382907*/ OPC_MoveChild, 11, ++/*382909*/ OPC_CheckInteger, 1, ++/*382911*/ OPC_CheckType, MVT::i32, ++/*382913*/ OPC_MoveParent, ++/*382914*/ OPC_MoveChild, 12, ++/*382916*/ OPC_CheckInteger, 1, ++/*382918*/ OPC_CheckType, MVT::i32, ++/*382920*/ OPC_MoveParent, ++/*382921*/ OPC_MoveChild, 13, ++/*382923*/ OPC_CheckInteger, 1, ++/*382925*/ OPC_CheckType, MVT::i32, ++/*382927*/ OPC_MoveParent, ++/*382928*/ OPC_MoveChild, 14, ++/*382930*/ OPC_CheckInteger, 1, ++/*382932*/ OPC_CheckType, MVT::i32, ++/*382934*/ OPC_MoveParent, ++/*382935*/ OPC_MoveChild, 15, ++/*382937*/ OPC_CheckInteger, 1, ++/*382939*/ OPC_CheckType, MVT::i32, ++/*382941*/ OPC_MoveParent, ++/*382942*/ OPC_MoveParent, ++/*382943*/ OPC_MoveParent, ++/*382944*/ OPC_MoveParent, ++/*382945*/ OPC_MoveChild1, ++/*382946*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*382949*/ OPC_CheckChild0Integer, 1, ++/*382951*/ OPC_CheckChild0Type, MVT::i32, ++/*382953*/ OPC_CheckChild1Integer, 1, ++/*382955*/ OPC_CheckChild1Type, MVT::i32, ++/*382957*/ OPC_CheckChild2Integer, 1, ++/*382959*/ OPC_CheckChild2Type, MVT::i32, ++/*382961*/ OPC_CheckChild3Integer, 1, ++/*382963*/ OPC_CheckChild3Type, MVT::i32, ++/*382965*/ OPC_CheckChild4Integer, 1, ++/*382967*/ OPC_CheckChild4Type, MVT::i32, ++/*382969*/ OPC_MoveChild5, ++/*382970*/ OPC_CheckInteger, 1, ++/*382972*/ OPC_CheckType, MVT::i32, ++/*382974*/ OPC_MoveParent, ++/*382975*/ OPC_MoveChild6, ++/*382976*/ OPC_CheckInteger, 1, ++/*382978*/ OPC_CheckType, MVT::i32, ++/*382980*/ OPC_MoveParent, ++/*382981*/ OPC_MoveChild7, ++/*382982*/ OPC_CheckInteger, 1, ++/*382984*/ OPC_CheckType, MVT::i32, ++/*382986*/ OPC_MoveParent, ++/*382987*/ OPC_MoveChild, 8, ++/*382989*/ OPC_CheckInteger, 1, ++/*382991*/ OPC_CheckType, MVT::i32, ++/*382993*/ OPC_MoveParent, ++/*382994*/ OPC_MoveChild, 9, ++/*382996*/ OPC_CheckInteger, 1, ++/*382998*/ OPC_CheckType, MVT::i32, ++/*383000*/ OPC_MoveParent, ++/*383001*/ OPC_MoveChild, 10, ++/*383003*/ OPC_CheckInteger, 1, ++/*383005*/ OPC_CheckType, MVT::i32, ++/*383007*/ OPC_MoveParent, ++/*383008*/ OPC_MoveChild, 11, ++/*383010*/ OPC_CheckInteger, 1, ++/*383012*/ OPC_CheckType, MVT::i32, ++/*383014*/ OPC_MoveParent, ++/*383015*/ OPC_MoveChild, 12, ++/*383017*/ OPC_CheckInteger, 1, ++/*383019*/ OPC_CheckType, MVT::i32, ++/*383021*/ OPC_MoveParent, ++/*383022*/ OPC_MoveChild, 13, ++/*383024*/ OPC_CheckInteger, 1, ++/*383026*/ OPC_CheckType, MVT::i32, ++/*383028*/ OPC_MoveParent, ++/*383029*/ OPC_MoveChild, 14, ++/*383031*/ OPC_CheckInteger, 1, ++/*383033*/ OPC_CheckType, MVT::i32, ++/*383035*/ OPC_MoveParent, ++/*383036*/ OPC_MoveChild, 15, ++/*383038*/ OPC_CheckInteger, 1, ++/*383040*/ OPC_CheckType, MVT::i32, ++/*383042*/ OPC_MoveParent, ++/*383043*/ OPC_CheckType, MVT::v16i16, ++/*383045*/ OPC_MoveParent, ++/*383046*/ OPC_CheckType, MVT::v16i16, ++/*383048*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*383050*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*383058*/ 0, /*End of Scope*/ ++/*383059*/ /*Scope*/ 62|128,3/*446*/, /*->383507*/ ++/*383061*/ OPC_CheckChild0Same, 0, ++/*383063*/ OPC_MoveChild1, ++/*383064*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*383067*/ OPC_Scope, 89|128,1/*217*/, /*->383287*/ // 2 children in Scope ++/*383070*/ OPC_MoveChild0, ++/*383071*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*383074*/ OPC_CheckChild0Integer, 1, ++/*383076*/ OPC_CheckChild0Type, MVT::i32, ++/*383078*/ OPC_CheckChild1Integer, 1, ++/*383080*/ OPC_CheckChild1Type, MVT::i32, ++/*383082*/ OPC_CheckChild2Integer, 1, ++/*383084*/ OPC_CheckChild2Type, MVT::i32, ++/*383086*/ OPC_CheckChild3Integer, 1, ++/*383088*/ OPC_CheckChild3Type, MVT::i32, ++/*383090*/ OPC_CheckChild4Integer, 1, ++/*383092*/ OPC_CheckChild4Type, MVT::i32, ++/*383094*/ OPC_MoveChild5, ++/*383095*/ OPC_CheckInteger, 1, ++/*383097*/ OPC_CheckType, MVT::i32, ++/*383099*/ OPC_MoveParent, ++/*383100*/ OPC_MoveChild6, ++/*383101*/ OPC_CheckInteger, 1, ++/*383103*/ OPC_CheckType, MVT::i32, ++/*383105*/ OPC_MoveParent, ++/*383106*/ OPC_MoveChild7, ++/*383107*/ OPC_CheckInteger, 1, ++/*383109*/ OPC_CheckType, MVT::i32, ++/*383111*/ OPC_MoveParent, ++/*383112*/ OPC_MoveChild, 8, ++/*383114*/ OPC_CheckInteger, 1, ++/*383116*/ OPC_CheckType, MVT::i32, ++/*383118*/ OPC_MoveParent, ++/*383119*/ OPC_MoveChild, 9, ++/*383121*/ OPC_CheckInteger, 1, ++/*383123*/ OPC_CheckType, MVT::i32, ++/*383125*/ OPC_MoveParent, ++/*383126*/ OPC_MoveChild, 10, ++/*383128*/ OPC_CheckInteger, 1, ++/*383130*/ OPC_CheckType, MVT::i32, ++/*383132*/ OPC_MoveParent, ++/*383133*/ OPC_MoveChild, 11, ++/*383135*/ OPC_CheckInteger, 1, ++/*383137*/ OPC_CheckType, MVT::i32, ++/*383139*/ OPC_MoveParent, ++/*383140*/ OPC_MoveChild, 12, ++/*383142*/ OPC_CheckInteger, 1, ++/*383144*/ OPC_CheckType, MVT::i32, ++/*383146*/ OPC_MoveParent, ++/*383147*/ OPC_MoveChild, 13, ++/*383149*/ OPC_CheckInteger, 1, ++/*383151*/ OPC_CheckType, MVT::i32, ++/*383153*/ OPC_MoveParent, ++/*383154*/ OPC_MoveChild, 14, ++/*383156*/ OPC_CheckInteger, 1, ++/*383158*/ OPC_CheckType, MVT::i32, ++/*383160*/ OPC_MoveParent, ++/*383161*/ OPC_MoveChild, 15, ++/*383163*/ OPC_CheckInteger, 1, ++/*383165*/ OPC_CheckType, MVT::i32, ++/*383167*/ OPC_MoveParent, ++/*383168*/ OPC_MoveParent, ++/*383169*/ OPC_CheckChild1Same, 1, ++/*383171*/ OPC_MoveParent, ++/*383172*/ OPC_MoveParent, ++/*383173*/ OPC_MoveParent, ++/*383174*/ OPC_MoveChild1, ++/*383175*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*383178*/ OPC_CheckChild0Integer, 1, ++/*383180*/ OPC_CheckChild0Type, MVT::i32, ++/*383182*/ OPC_CheckChild1Integer, 1, ++/*383184*/ OPC_CheckChild1Type, MVT::i32, ++/*383186*/ OPC_CheckChild2Integer, 1, ++/*383188*/ OPC_CheckChild2Type, MVT::i32, ++/*383190*/ OPC_CheckChild3Integer, 1, ++/*383192*/ OPC_CheckChild3Type, MVT::i32, ++/*383194*/ OPC_CheckChild4Integer, 1, ++/*383196*/ OPC_CheckChild4Type, MVT::i32, ++/*383198*/ OPC_MoveChild5, ++/*383199*/ OPC_CheckInteger, 1, ++/*383201*/ OPC_CheckType, MVT::i32, ++/*383203*/ OPC_MoveParent, ++/*383204*/ OPC_MoveChild6, ++/*383205*/ OPC_CheckInteger, 1, ++/*383207*/ OPC_CheckType, MVT::i32, ++/*383209*/ OPC_MoveParent, ++/*383210*/ OPC_MoveChild7, ++/*383211*/ OPC_CheckInteger, 1, ++/*383213*/ OPC_CheckType, MVT::i32, ++/*383215*/ OPC_MoveParent, ++/*383216*/ OPC_MoveChild, 8, ++/*383218*/ OPC_CheckInteger, 1, ++/*383220*/ OPC_CheckType, MVT::i32, ++/*383222*/ OPC_MoveParent, ++/*383223*/ OPC_MoveChild, 9, ++/*383225*/ OPC_CheckInteger, 1, ++/*383227*/ OPC_CheckType, MVT::i32, ++/*383229*/ OPC_MoveParent, ++/*383230*/ OPC_MoveChild, 10, ++/*383232*/ OPC_CheckInteger, 1, ++/*383234*/ OPC_CheckType, MVT::i32, ++/*383236*/ OPC_MoveParent, ++/*383237*/ OPC_MoveChild, 11, ++/*383239*/ OPC_CheckInteger, 1, ++/*383241*/ OPC_CheckType, MVT::i32, ++/*383243*/ OPC_MoveParent, ++/*383244*/ OPC_MoveChild, 12, ++/*383246*/ OPC_CheckInteger, 1, ++/*383248*/ OPC_CheckType, MVT::i32, ++/*383250*/ OPC_MoveParent, ++/*383251*/ OPC_MoveChild, 13, ++/*383253*/ OPC_CheckInteger, 1, ++/*383255*/ OPC_CheckType, MVT::i32, ++/*383257*/ OPC_MoveParent, ++/*383258*/ OPC_MoveChild, 14, ++/*383260*/ OPC_CheckInteger, 1, ++/*383262*/ OPC_CheckType, MVT::i32, ++/*383264*/ OPC_MoveParent, ++/*383265*/ OPC_MoveChild, 15, ++/*383267*/ OPC_CheckInteger, 1, ++/*383269*/ OPC_CheckType, MVT::i32, ++/*383271*/ OPC_MoveParent, ++/*383272*/ OPC_CheckType, MVT::v16i16, ++/*383274*/ OPC_MoveParent, ++/*383275*/ OPC_CheckType, MVT::v16i16, ++/*383277*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*383279*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*383287*/ /*Scope*/ 89|128,1/*217*/, /*->383506*/ ++/*383289*/ OPC_CheckChild0Same, 1, ++/*383291*/ OPC_MoveChild1, ++/*383292*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*383295*/ OPC_CheckChild0Integer, 1, ++/*383297*/ OPC_CheckChild0Type, MVT::i32, ++/*383299*/ OPC_CheckChild1Integer, 1, ++/*383301*/ OPC_CheckChild1Type, MVT::i32, ++/*383303*/ OPC_CheckChild2Integer, 1, ++/*383305*/ OPC_CheckChild2Type, MVT::i32, ++/*383307*/ OPC_CheckChild3Integer, 1, ++/*383309*/ OPC_CheckChild3Type, MVT::i32, ++/*383311*/ OPC_CheckChild4Integer, 1, ++/*383313*/ OPC_CheckChild4Type, MVT::i32, ++/*383315*/ OPC_MoveChild5, ++/*383316*/ OPC_CheckInteger, 1, ++/*383318*/ OPC_CheckType, MVT::i32, ++/*383320*/ OPC_MoveParent, ++/*383321*/ OPC_MoveChild6, ++/*383322*/ OPC_CheckInteger, 1, ++/*383324*/ OPC_CheckType, MVT::i32, ++/*383326*/ OPC_MoveParent, ++/*383327*/ OPC_MoveChild7, ++/*383328*/ OPC_CheckInteger, 1, ++/*383330*/ OPC_CheckType, MVT::i32, ++/*383332*/ OPC_MoveParent, ++/*383333*/ OPC_MoveChild, 8, ++/*383335*/ OPC_CheckInteger, 1, ++/*383337*/ OPC_CheckType, MVT::i32, ++/*383339*/ OPC_MoveParent, ++/*383340*/ OPC_MoveChild, 9, ++/*383342*/ OPC_CheckInteger, 1, ++/*383344*/ OPC_CheckType, MVT::i32, ++/*383346*/ OPC_MoveParent, ++/*383347*/ OPC_MoveChild, 10, ++/*383349*/ OPC_CheckInteger, 1, ++/*383351*/ OPC_CheckType, MVT::i32, ++/*383353*/ OPC_MoveParent, ++/*383354*/ OPC_MoveChild, 11, ++/*383356*/ OPC_CheckInteger, 1, ++/*383358*/ OPC_CheckType, MVT::i32, ++/*383360*/ OPC_MoveParent, ++/*383361*/ OPC_MoveChild, 12, ++/*383363*/ OPC_CheckInteger, 1, ++/*383365*/ OPC_CheckType, MVT::i32, ++/*383367*/ OPC_MoveParent, ++/*383368*/ OPC_MoveChild, 13, ++/*383370*/ OPC_CheckInteger, 1, ++/*383372*/ OPC_CheckType, MVT::i32, ++/*383374*/ OPC_MoveParent, ++/*383375*/ OPC_MoveChild, 14, ++/*383377*/ OPC_CheckInteger, 1, ++/*383379*/ OPC_CheckType, MVT::i32, ++/*383381*/ OPC_MoveParent, ++/*383382*/ OPC_MoveChild, 15, ++/*383384*/ OPC_CheckInteger, 1, ++/*383386*/ OPC_CheckType, MVT::i32, ++/*383388*/ OPC_MoveParent, ++/*383389*/ OPC_MoveParent, ++/*383390*/ OPC_MoveParent, ++/*383391*/ OPC_MoveParent, ++/*383392*/ OPC_MoveParent, ++/*383393*/ OPC_MoveChild1, ++/*383394*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*383397*/ OPC_CheckChild0Integer, 1, ++/*383399*/ OPC_CheckChild0Type, MVT::i32, ++/*383401*/ OPC_CheckChild1Integer, 1, ++/*383403*/ OPC_CheckChild1Type, MVT::i32, ++/*383405*/ OPC_CheckChild2Integer, 1, ++/*383407*/ OPC_CheckChild2Type, MVT::i32, ++/*383409*/ OPC_CheckChild3Integer, 1, ++/*383411*/ OPC_CheckChild3Type, MVT::i32, ++/*383413*/ OPC_CheckChild4Integer, 1, ++/*383415*/ OPC_CheckChild4Type, MVT::i32, ++/*383417*/ OPC_MoveChild5, ++/*383418*/ OPC_CheckInteger, 1, ++/*383420*/ OPC_CheckType, MVT::i32, ++/*383422*/ OPC_MoveParent, ++/*383423*/ OPC_MoveChild6, ++/*383424*/ OPC_CheckInteger, 1, ++/*383426*/ OPC_CheckType, MVT::i32, ++/*383428*/ OPC_MoveParent, ++/*383429*/ OPC_MoveChild7, ++/*383430*/ OPC_CheckInteger, 1, ++/*383432*/ OPC_CheckType, MVT::i32, ++/*383434*/ OPC_MoveParent, ++/*383435*/ OPC_MoveChild, 8, ++/*383437*/ OPC_CheckInteger, 1, ++/*383439*/ OPC_CheckType, MVT::i32, ++/*383441*/ OPC_MoveParent, ++/*383442*/ OPC_MoveChild, 9, ++/*383444*/ OPC_CheckInteger, 1, ++/*383446*/ OPC_CheckType, MVT::i32, ++/*383448*/ OPC_MoveParent, ++/*383449*/ OPC_MoveChild, 10, ++/*383451*/ OPC_CheckInteger, 1, ++/*383453*/ OPC_CheckType, MVT::i32, ++/*383455*/ OPC_MoveParent, ++/*383456*/ OPC_MoveChild, 11, ++/*383458*/ OPC_CheckInteger, 1, ++/*383460*/ OPC_CheckType, MVT::i32, ++/*383462*/ OPC_MoveParent, ++/*383463*/ OPC_MoveChild, 12, ++/*383465*/ OPC_CheckInteger, 1, ++/*383467*/ OPC_CheckType, MVT::i32, ++/*383469*/ OPC_MoveParent, ++/*383470*/ OPC_MoveChild, 13, ++/*383472*/ OPC_CheckInteger, 1, ++/*383474*/ OPC_CheckType, MVT::i32, ++/*383476*/ OPC_MoveParent, ++/*383477*/ OPC_MoveChild, 14, ++/*383479*/ OPC_CheckInteger, 1, ++/*383481*/ OPC_CheckType, MVT::i32, ++/*383483*/ OPC_MoveParent, ++/*383484*/ OPC_MoveChild, 15, ++/*383486*/ OPC_CheckInteger, 1, ++/*383488*/ OPC_CheckType, MVT::i32, ++/*383490*/ OPC_MoveParent, ++/*383491*/ OPC_CheckType, MVT::v16i16, ++/*383493*/ OPC_MoveParent, ++/*383494*/ OPC_CheckType, MVT::v16i16, ++/*383496*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*383498*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*383506*/ 0, /*End of Scope*/ ++/*383507*/ /*Scope*/ 62|128,3/*446*/, /*->383955*/ ++/*383509*/ OPC_CheckChild0Same, 1, ++/*383511*/ OPC_MoveChild1, ++/*383512*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*383515*/ OPC_Scope, 89|128,1/*217*/, /*->383735*/ // 2 children in Scope ++/*383518*/ OPC_MoveChild0, ++/*383519*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*383522*/ OPC_CheckChild0Integer, 1, ++/*383524*/ OPC_CheckChild0Type, MVT::i32, ++/*383526*/ OPC_CheckChild1Integer, 1, ++/*383528*/ OPC_CheckChild1Type, MVT::i32, ++/*383530*/ OPC_CheckChild2Integer, 1, ++/*383532*/ OPC_CheckChild2Type, MVT::i32, ++/*383534*/ OPC_CheckChild3Integer, 1, ++/*383536*/ OPC_CheckChild3Type, MVT::i32, ++/*383538*/ OPC_CheckChild4Integer, 1, ++/*383540*/ OPC_CheckChild4Type, MVT::i32, ++/*383542*/ OPC_MoveChild5, ++/*383543*/ OPC_CheckInteger, 1, ++/*383545*/ OPC_CheckType, MVT::i32, ++/*383547*/ OPC_MoveParent, ++/*383548*/ OPC_MoveChild6, ++/*383549*/ OPC_CheckInteger, 1, ++/*383551*/ OPC_CheckType, MVT::i32, ++/*383553*/ OPC_MoveParent, ++/*383554*/ OPC_MoveChild7, ++/*383555*/ OPC_CheckInteger, 1, ++/*383557*/ OPC_CheckType, MVT::i32, ++/*383559*/ OPC_MoveParent, ++/*383560*/ OPC_MoveChild, 8, ++/*383562*/ OPC_CheckInteger, 1, ++/*383564*/ OPC_CheckType, MVT::i32, ++/*383566*/ OPC_MoveParent, ++/*383567*/ OPC_MoveChild, 9, ++/*383569*/ OPC_CheckInteger, 1, ++/*383571*/ OPC_CheckType, MVT::i32, ++/*383573*/ OPC_MoveParent, ++/*383574*/ OPC_MoveChild, 10, ++/*383576*/ OPC_CheckInteger, 1, ++/*383578*/ OPC_CheckType, MVT::i32, ++/*383580*/ OPC_MoveParent, ++/*383581*/ OPC_MoveChild, 11, ++/*383583*/ OPC_CheckInteger, 1, ++/*383585*/ OPC_CheckType, MVT::i32, ++/*383587*/ OPC_MoveParent, ++/*383588*/ OPC_MoveChild, 12, ++/*383590*/ OPC_CheckInteger, 1, ++/*383592*/ OPC_CheckType, MVT::i32, ++/*383594*/ OPC_MoveParent, ++/*383595*/ OPC_MoveChild, 13, ++/*383597*/ OPC_CheckInteger, 1, ++/*383599*/ OPC_CheckType, MVT::i32, ++/*383601*/ OPC_MoveParent, ++/*383602*/ OPC_MoveChild, 14, ++/*383604*/ OPC_CheckInteger, 1, ++/*383606*/ OPC_CheckType, MVT::i32, ++/*383608*/ OPC_MoveParent, ++/*383609*/ OPC_MoveChild, 15, ++/*383611*/ OPC_CheckInteger, 1, ++/*383613*/ OPC_CheckType, MVT::i32, ++/*383615*/ OPC_MoveParent, ++/*383616*/ OPC_MoveParent, ++/*383617*/ OPC_CheckChild1Same, 0, ++/*383619*/ OPC_MoveParent, ++/*383620*/ OPC_MoveParent, ++/*383621*/ OPC_MoveParent, ++/*383622*/ OPC_MoveChild1, ++/*383623*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*383626*/ OPC_CheckChild0Integer, 1, ++/*383628*/ OPC_CheckChild0Type, MVT::i32, ++/*383630*/ OPC_CheckChild1Integer, 1, ++/*383632*/ OPC_CheckChild1Type, MVT::i32, ++/*383634*/ OPC_CheckChild2Integer, 1, ++/*383636*/ OPC_CheckChild2Type, MVT::i32, ++/*383638*/ OPC_CheckChild3Integer, 1, ++/*383640*/ OPC_CheckChild3Type, MVT::i32, ++/*383642*/ OPC_CheckChild4Integer, 1, ++/*383644*/ OPC_CheckChild4Type, MVT::i32, ++/*383646*/ OPC_MoveChild5, ++/*383647*/ OPC_CheckInteger, 1, ++/*383649*/ OPC_CheckType, MVT::i32, ++/*383651*/ OPC_MoveParent, ++/*383652*/ OPC_MoveChild6, ++/*383653*/ OPC_CheckInteger, 1, ++/*383655*/ OPC_CheckType, MVT::i32, ++/*383657*/ OPC_MoveParent, ++/*383658*/ OPC_MoveChild7, ++/*383659*/ OPC_CheckInteger, 1, ++/*383661*/ OPC_CheckType, MVT::i32, ++/*383663*/ OPC_MoveParent, ++/*383664*/ OPC_MoveChild, 8, ++/*383666*/ OPC_CheckInteger, 1, ++/*383668*/ OPC_CheckType, MVT::i32, ++/*383670*/ OPC_MoveParent, ++/*383671*/ OPC_MoveChild, 9, ++/*383673*/ OPC_CheckInteger, 1, ++/*383675*/ OPC_CheckType, MVT::i32, ++/*383677*/ OPC_MoveParent, ++/*383678*/ OPC_MoveChild, 10, ++/*383680*/ OPC_CheckInteger, 1, ++/*383682*/ OPC_CheckType, MVT::i32, ++/*383684*/ OPC_MoveParent, ++/*383685*/ OPC_MoveChild, 11, ++/*383687*/ OPC_CheckInteger, 1, ++/*383689*/ OPC_CheckType, MVT::i32, ++/*383691*/ OPC_MoveParent, ++/*383692*/ OPC_MoveChild, 12, ++/*383694*/ OPC_CheckInteger, 1, ++/*383696*/ OPC_CheckType, MVT::i32, ++/*383698*/ OPC_MoveParent, ++/*383699*/ OPC_MoveChild, 13, ++/*383701*/ OPC_CheckInteger, 1, ++/*383703*/ OPC_CheckType, MVT::i32, ++/*383705*/ OPC_MoveParent, ++/*383706*/ OPC_MoveChild, 14, ++/*383708*/ OPC_CheckInteger, 1, ++/*383710*/ OPC_CheckType, MVT::i32, ++/*383712*/ OPC_MoveParent, ++/*383713*/ OPC_MoveChild, 15, ++/*383715*/ OPC_CheckInteger, 1, ++/*383717*/ OPC_CheckType, MVT::i32, ++/*383719*/ OPC_MoveParent, ++/*383720*/ OPC_CheckType, MVT::v16i16, ++/*383722*/ OPC_MoveParent, ++/*383723*/ OPC_CheckType, MVT::v16i16, ++/*383725*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*383727*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*383735*/ /*Scope*/ 89|128,1/*217*/, /*->383954*/ ++/*383737*/ OPC_CheckChild0Same, 0, ++/*383739*/ OPC_MoveChild1, ++/*383740*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*383743*/ OPC_CheckChild0Integer, 1, ++/*383745*/ OPC_CheckChild0Type, MVT::i32, ++/*383747*/ OPC_CheckChild1Integer, 1, ++/*383749*/ OPC_CheckChild1Type, MVT::i32, ++/*383751*/ OPC_CheckChild2Integer, 1, ++/*383753*/ OPC_CheckChild2Type, MVT::i32, ++/*383755*/ OPC_CheckChild3Integer, 1, ++/*383757*/ OPC_CheckChild3Type, MVT::i32, ++/*383759*/ OPC_CheckChild4Integer, 1, ++/*383761*/ OPC_CheckChild4Type, MVT::i32, ++/*383763*/ OPC_MoveChild5, ++/*383764*/ OPC_CheckInteger, 1, ++/*383766*/ OPC_CheckType, MVT::i32, ++/*383768*/ OPC_MoveParent, ++/*383769*/ OPC_MoveChild6, ++/*383770*/ OPC_CheckInteger, 1, ++/*383772*/ OPC_CheckType, MVT::i32, ++/*383774*/ OPC_MoveParent, ++/*383775*/ OPC_MoveChild7, ++/*383776*/ OPC_CheckInteger, 1, ++/*383778*/ OPC_CheckType, MVT::i32, ++/*383780*/ OPC_MoveParent, ++/*383781*/ OPC_MoveChild, 8, ++/*383783*/ OPC_CheckInteger, 1, ++/*383785*/ OPC_CheckType, MVT::i32, ++/*383787*/ OPC_MoveParent, ++/*383788*/ OPC_MoveChild, 9, ++/*383790*/ OPC_CheckInteger, 1, ++/*383792*/ OPC_CheckType, MVT::i32, ++/*383794*/ OPC_MoveParent, ++/*383795*/ OPC_MoveChild, 10, ++/*383797*/ OPC_CheckInteger, 1, ++/*383799*/ OPC_CheckType, MVT::i32, ++/*383801*/ OPC_MoveParent, ++/*383802*/ OPC_MoveChild, 11, ++/*383804*/ OPC_CheckInteger, 1, ++/*383806*/ OPC_CheckType, MVT::i32, ++/*383808*/ OPC_MoveParent, ++/*383809*/ OPC_MoveChild, 12, ++/*383811*/ OPC_CheckInteger, 1, ++/*383813*/ OPC_CheckType, MVT::i32, ++/*383815*/ OPC_MoveParent, ++/*383816*/ OPC_MoveChild, 13, ++/*383818*/ OPC_CheckInteger, 1, ++/*383820*/ OPC_CheckType, MVT::i32, ++/*383822*/ OPC_MoveParent, ++/*383823*/ OPC_MoveChild, 14, ++/*383825*/ OPC_CheckInteger, 1, ++/*383827*/ OPC_CheckType, MVT::i32, ++/*383829*/ OPC_MoveParent, ++/*383830*/ OPC_MoveChild, 15, ++/*383832*/ OPC_CheckInteger, 1, ++/*383834*/ OPC_CheckType, MVT::i32, ++/*383836*/ OPC_MoveParent, ++/*383837*/ OPC_MoveParent, ++/*383838*/ OPC_MoveParent, ++/*383839*/ OPC_MoveParent, ++/*383840*/ OPC_MoveParent, ++/*383841*/ OPC_MoveChild1, ++/*383842*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*383845*/ OPC_CheckChild0Integer, 1, ++/*383847*/ OPC_CheckChild0Type, MVT::i32, ++/*383849*/ OPC_CheckChild1Integer, 1, ++/*383851*/ OPC_CheckChild1Type, MVT::i32, ++/*383853*/ OPC_CheckChild2Integer, 1, ++/*383855*/ OPC_CheckChild2Type, MVT::i32, ++/*383857*/ OPC_CheckChild3Integer, 1, ++/*383859*/ OPC_CheckChild3Type, MVT::i32, ++/*383861*/ OPC_CheckChild4Integer, 1, ++/*383863*/ OPC_CheckChild4Type, MVT::i32, ++/*383865*/ OPC_MoveChild5, ++/*383866*/ OPC_CheckInteger, 1, ++/*383868*/ OPC_CheckType, MVT::i32, ++/*383870*/ OPC_MoveParent, ++/*383871*/ OPC_MoveChild6, ++/*383872*/ OPC_CheckInteger, 1, ++/*383874*/ OPC_CheckType, MVT::i32, ++/*383876*/ OPC_MoveParent, ++/*383877*/ OPC_MoveChild7, ++/*383878*/ OPC_CheckInteger, 1, ++/*383880*/ OPC_CheckType, MVT::i32, ++/*383882*/ OPC_MoveParent, ++/*383883*/ OPC_MoveChild, 8, ++/*383885*/ OPC_CheckInteger, 1, ++/*383887*/ OPC_CheckType, MVT::i32, ++/*383889*/ OPC_MoveParent, ++/*383890*/ OPC_MoveChild, 9, ++/*383892*/ OPC_CheckInteger, 1, ++/*383894*/ OPC_CheckType, MVT::i32, ++/*383896*/ OPC_MoveParent, ++/*383897*/ OPC_MoveChild, 10, ++/*383899*/ OPC_CheckInteger, 1, ++/*383901*/ OPC_CheckType, MVT::i32, ++/*383903*/ OPC_MoveParent, ++/*383904*/ OPC_MoveChild, 11, ++/*383906*/ OPC_CheckInteger, 1, ++/*383908*/ OPC_CheckType, MVT::i32, ++/*383910*/ OPC_MoveParent, ++/*383911*/ OPC_MoveChild, 12, ++/*383913*/ OPC_CheckInteger, 1, ++/*383915*/ OPC_CheckType, MVT::i32, ++/*383917*/ OPC_MoveParent, ++/*383918*/ OPC_MoveChild, 13, ++/*383920*/ OPC_CheckInteger, 1, ++/*383922*/ OPC_CheckType, MVT::i32, ++/*383924*/ OPC_MoveParent, ++/*383925*/ OPC_MoveChild, 14, ++/*383927*/ OPC_CheckInteger, 1, ++/*383929*/ OPC_CheckType, MVT::i32, ++/*383931*/ OPC_MoveParent, ++/*383932*/ OPC_MoveChild, 15, ++/*383934*/ OPC_CheckInteger, 1, ++/*383936*/ OPC_CheckType, MVT::i32, ++/*383938*/ OPC_MoveParent, ++/*383939*/ OPC_CheckType, MVT::v16i16, ++/*383941*/ OPC_MoveParent, ++/*383942*/ OPC_CheckType, MVT::v16i16, ++/*383944*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*383946*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*383954*/ 0, /*End of Scope*/ ++/*383955*/ /*Scope*/ 91|128,2/*347*/, /*->384304*/ ++/*383957*/ OPC_MoveChild0, ++/*383958*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*383961*/ OPC_CheckChild0Integer, 1, ++/*383963*/ OPC_CheckChild0Type, MVT::i32, ++/*383965*/ OPC_CheckChild1Integer, 1, ++/*383967*/ OPC_CheckChild1Type, MVT::i32, ++/*383969*/ OPC_CheckChild2Integer, 1, ++/*383971*/ OPC_CheckChild2Type, MVT::i32, ++/*383973*/ OPC_CheckChild3Integer, 1, ++/*383975*/ OPC_CheckChild3Type, MVT::i32, ++/*383977*/ OPC_CheckChild4Integer, 1, ++/*383979*/ OPC_CheckChild4Type, MVT::i32, ++/*383981*/ OPC_MoveChild5, ++/*383982*/ OPC_CheckInteger, 1, ++/*383984*/ OPC_CheckType, MVT::i32, ++/*383986*/ OPC_MoveParent, ++/*383987*/ OPC_MoveChild6, ++/*383988*/ OPC_CheckInteger, 1, ++/*383990*/ OPC_CheckType, MVT::i32, ++/*383992*/ OPC_MoveParent, ++/*383993*/ OPC_MoveChild7, ++/*383994*/ OPC_CheckInteger, 1, ++/*383996*/ OPC_CheckType, MVT::i32, ++/*383998*/ OPC_MoveParent, ++/*383999*/ OPC_MoveChild, 8, ++/*384001*/ OPC_CheckInteger, 1, ++/*384003*/ OPC_CheckType, MVT::i32, ++/*384005*/ OPC_MoveParent, ++/*384006*/ OPC_MoveChild, 9, ++/*384008*/ OPC_CheckInteger, 1, ++/*384010*/ OPC_CheckType, MVT::i32, ++/*384012*/ OPC_MoveParent, ++/*384013*/ OPC_MoveChild, 10, ++/*384015*/ OPC_CheckInteger, 1, ++/*384017*/ OPC_CheckType, MVT::i32, ++/*384019*/ OPC_MoveParent, ++/*384020*/ OPC_MoveChild, 11, ++/*384022*/ OPC_CheckInteger, 1, ++/*384024*/ OPC_CheckType, MVT::i32, ++/*384026*/ OPC_MoveParent, ++/*384027*/ OPC_MoveChild, 12, ++/*384029*/ OPC_CheckInteger, 1, ++/*384031*/ OPC_CheckType, MVT::i32, ++/*384033*/ OPC_MoveParent, ++/*384034*/ OPC_MoveChild, 13, ++/*384036*/ OPC_CheckInteger, 1, ++/*384038*/ OPC_CheckType, MVT::i32, ++/*384040*/ OPC_MoveParent, ++/*384041*/ OPC_MoveChild, 14, ++/*384043*/ OPC_CheckInteger, 1, ++/*384045*/ OPC_CheckType, MVT::i32, ++/*384047*/ OPC_MoveParent, ++/*384048*/ OPC_MoveChild, 15, ++/*384050*/ OPC_CheckInteger, 1, ++/*384052*/ OPC_CheckType, MVT::i32, ++/*384054*/ OPC_MoveParent, ++/*384055*/ OPC_MoveParent, ++/*384056*/ OPC_MoveChild1, ++/*384057*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*384060*/ OPC_Scope, 120, /*->384182*/ // 2 children in Scope ++/*384062*/ OPC_CheckChild0Same, 1, ++/*384064*/ OPC_CheckChild1Same, 0, ++/*384066*/ OPC_MoveParent, ++/*384067*/ OPC_MoveParent, ++/*384068*/ OPC_MoveParent, ++/*384069*/ OPC_MoveChild1, ++/*384070*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*384073*/ OPC_CheckChild0Integer, 1, ++/*384075*/ OPC_CheckChild0Type, MVT::i32, ++/*384077*/ OPC_CheckChild1Integer, 1, ++/*384079*/ OPC_CheckChild1Type, MVT::i32, ++/*384081*/ OPC_CheckChild2Integer, 1, ++/*384083*/ OPC_CheckChild2Type, MVT::i32, ++/*384085*/ OPC_CheckChild3Integer, 1, ++/*384087*/ OPC_CheckChild3Type, MVT::i32, ++/*384089*/ OPC_CheckChild4Integer, 1, ++/*384091*/ OPC_CheckChild4Type, MVT::i32, ++/*384093*/ OPC_MoveChild5, ++/*384094*/ OPC_CheckInteger, 1, ++/*384096*/ OPC_CheckType, MVT::i32, ++/*384098*/ OPC_MoveParent, ++/*384099*/ OPC_MoveChild6, ++/*384100*/ OPC_CheckInteger, 1, ++/*384102*/ OPC_CheckType, MVT::i32, ++/*384104*/ OPC_MoveParent, ++/*384105*/ OPC_MoveChild7, ++/*384106*/ OPC_CheckInteger, 1, ++/*384108*/ OPC_CheckType, MVT::i32, ++/*384110*/ OPC_MoveParent, ++/*384111*/ OPC_MoveChild, 8, ++/*384113*/ OPC_CheckInteger, 1, ++/*384115*/ OPC_CheckType, MVT::i32, ++/*384117*/ OPC_MoveParent, ++/*384118*/ OPC_MoveChild, 9, ++/*384120*/ OPC_CheckInteger, 1, ++/*384122*/ OPC_CheckType, MVT::i32, ++/*384124*/ OPC_MoveParent, ++/*384125*/ OPC_MoveChild, 10, ++/*384127*/ OPC_CheckInteger, 1, ++/*384129*/ OPC_CheckType, MVT::i32, ++/*384131*/ OPC_MoveParent, ++/*384132*/ OPC_MoveChild, 11, ++/*384134*/ OPC_CheckInteger, 1, ++/*384136*/ OPC_CheckType, MVT::i32, ++/*384138*/ OPC_MoveParent, ++/*384139*/ OPC_MoveChild, 12, ++/*384141*/ OPC_CheckInteger, 1, ++/*384143*/ OPC_CheckType, MVT::i32, ++/*384145*/ OPC_MoveParent, ++/*384146*/ OPC_MoveChild, 13, ++/*384148*/ OPC_CheckInteger, 1, ++/*384150*/ OPC_CheckType, MVT::i32, ++/*384152*/ OPC_MoveParent, ++/*384153*/ OPC_MoveChild, 14, ++/*384155*/ OPC_CheckInteger, 1, ++/*384157*/ OPC_CheckType, MVT::i32, ++/*384159*/ OPC_MoveParent, ++/*384160*/ OPC_MoveChild, 15, ++/*384162*/ OPC_CheckInteger, 1, ++/*384164*/ OPC_CheckType, MVT::i32, ++/*384166*/ OPC_MoveParent, ++/*384167*/ OPC_CheckType, MVT::v16i16, ++/*384169*/ OPC_MoveParent, ++/*384170*/ OPC_CheckType, MVT::v16i16, ++/*384172*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*384174*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*384182*/ /*Scope*/ 120, /*->384303*/ ++/*384183*/ OPC_CheckChild0Same, 0, ++/*384185*/ OPC_CheckChild1Same, 1, ++/*384187*/ OPC_MoveParent, ++/*384188*/ OPC_MoveParent, ++/*384189*/ OPC_MoveParent, ++/*384190*/ OPC_MoveChild1, ++/*384191*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*384194*/ OPC_CheckChild0Integer, 1, ++/*384196*/ OPC_CheckChild0Type, MVT::i32, ++/*384198*/ OPC_CheckChild1Integer, 1, ++/*384200*/ OPC_CheckChild1Type, MVT::i32, ++/*384202*/ OPC_CheckChild2Integer, 1, ++/*384204*/ OPC_CheckChild2Type, MVT::i32, ++/*384206*/ OPC_CheckChild3Integer, 1, ++/*384208*/ OPC_CheckChild3Type, MVT::i32, ++/*384210*/ OPC_CheckChild4Integer, 1, ++/*384212*/ OPC_CheckChild4Type, MVT::i32, ++/*384214*/ OPC_MoveChild5, ++/*384215*/ OPC_CheckInteger, 1, ++/*384217*/ OPC_CheckType, MVT::i32, ++/*384219*/ OPC_MoveParent, ++/*384220*/ OPC_MoveChild6, ++/*384221*/ OPC_CheckInteger, 1, ++/*384223*/ OPC_CheckType, MVT::i32, ++/*384225*/ OPC_MoveParent, ++/*384226*/ OPC_MoveChild7, ++/*384227*/ OPC_CheckInteger, 1, ++/*384229*/ OPC_CheckType, MVT::i32, ++/*384231*/ OPC_MoveParent, ++/*384232*/ OPC_MoveChild, 8, ++/*384234*/ OPC_CheckInteger, 1, ++/*384236*/ OPC_CheckType, MVT::i32, ++/*384238*/ OPC_MoveParent, ++/*384239*/ OPC_MoveChild, 9, ++/*384241*/ OPC_CheckInteger, 1, ++/*384243*/ OPC_CheckType, MVT::i32, ++/*384245*/ OPC_MoveParent, ++/*384246*/ OPC_MoveChild, 10, ++/*384248*/ OPC_CheckInteger, 1, ++/*384250*/ OPC_CheckType, MVT::i32, ++/*384252*/ OPC_MoveParent, ++/*384253*/ OPC_MoveChild, 11, ++/*384255*/ OPC_CheckInteger, 1, ++/*384257*/ OPC_CheckType, MVT::i32, ++/*384259*/ OPC_MoveParent, ++/*384260*/ OPC_MoveChild, 12, ++/*384262*/ OPC_CheckInteger, 1, ++/*384264*/ OPC_CheckType, MVT::i32, ++/*384266*/ OPC_MoveParent, ++/*384267*/ OPC_MoveChild, 13, ++/*384269*/ OPC_CheckInteger, 1, ++/*384271*/ OPC_CheckType, MVT::i32, ++/*384273*/ OPC_MoveParent, ++/*384274*/ OPC_MoveChild, 14, ++/*384276*/ OPC_CheckInteger, 1, ++/*384278*/ OPC_CheckType, MVT::i32, ++/*384280*/ OPC_MoveParent, ++/*384281*/ OPC_MoveChild, 15, ++/*384283*/ OPC_CheckInteger, 1, ++/*384285*/ OPC_CheckType, MVT::i32, ++/*384287*/ OPC_MoveParent, ++/*384288*/ OPC_CheckType, MVT::v16i16, ++/*384290*/ OPC_MoveParent, ++/*384291*/ OPC_CheckType, MVT::v16i16, ++/*384293*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*384295*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*384303*/ 0, /*End of Scope*/ ++/*384304*/ 0, /*End of Scope*/ ++/*384305*/ /*Scope*/ 121|128,41/*5369*/, /*->389676*/ ++/*384307*/ OPC_RecordChild1, // #1 = $b ++/*384308*/ OPC_MoveParent, ++/*384309*/ OPC_MoveChild1, ++/*384310*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*384313*/ OPC_CheckChild0Integer, 1, ++/*384315*/ OPC_CheckChild0Type, MVT::i32, ++/*384317*/ OPC_CheckChild1Integer, 1, ++/*384319*/ OPC_CheckChild1Type, MVT::i32, ++/*384321*/ OPC_CheckChild2Integer, 1, ++/*384323*/ OPC_CheckChild2Type, MVT::i32, ++/*384325*/ OPC_CheckChild3Integer, 1, ++/*384327*/ OPC_CheckChild3Type, MVT::i32, ++/*384329*/ OPC_CheckChild4Integer, 1, ++/*384331*/ OPC_CheckChild4Type, MVT::i32, ++/*384333*/ OPC_MoveChild5, ++/*384334*/ OPC_CheckInteger, 1, ++/*384336*/ OPC_CheckType, MVT::i32, ++/*384338*/ OPC_MoveParent, ++/*384339*/ OPC_MoveChild6, ++/*384340*/ OPC_CheckInteger, 1, ++/*384342*/ OPC_CheckType, MVT::i32, ++/*384344*/ OPC_MoveParent, ++/*384345*/ OPC_MoveChild7, ++/*384346*/ OPC_CheckInteger, 1, ++/*384348*/ OPC_CheckType, MVT::i32, ++/*384350*/ OPC_MoveParent, ++/*384351*/ OPC_MoveChild, 8, ++/*384353*/ OPC_CheckInteger, 1, ++/*384355*/ OPC_CheckType, MVT::i32, ++/*384357*/ OPC_MoveParent, ++/*384358*/ OPC_MoveChild, 9, ++/*384360*/ OPC_CheckInteger, 1, ++/*384362*/ OPC_CheckType, MVT::i32, ++/*384364*/ OPC_MoveParent, ++/*384365*/ OPC_MoveChild, 10, ++/*384367*/ OPC_CheckInteger, 1, ++/*384369*/ OPC_CheckType, MVT::i32, ++/*384371*/ OPC_MoveParent, ++/*384372*/ OPC_MoveChild, 11, ++/*384374*/ OPC_CheckInteger, 1, ++/*384376*/ OPC_CheckType, MVT::i32, ++/*384378*/ OPC_MoveParent, ++/*384379*/ OPC_MoveChild, 12, ++/*384381*/ OPC_CheckInteger, 1, ++/*384383*/ OPC_CheckType, MVT::i32, ++/*384385*/ OPC_MoveParent, ++/*384386*/ OPC_MoveChild, 13, ++/*384388*/ OPC_CheckInteger, 1, ++/*384390*/ OPC_CheckType, MVT::i32, ++/*384392*/ OPC_MoveParent, ++/*384393*/ OPC_MoveChild, 14, ++/*384395*/ OPC_CheckInteger, 1, ++/*384397*/ OPC_CheckType, MVT::i32, ++/*384399*/ OPC_MoveParent, ++/*384400*/ OPC_MoveChild, 15, ++/*384402*/ OPC_CheckInteger, 1, ++/*384404*/ OPC_CheckType, MVT::i32, ++/*384406*/ OPC_MoveParent, ++/*384407*/ OPC_MoveParent, ++/*384408*/ OPC_MoveParent, ++/*384409*/ OPC_MoveChild1, ++/*384410*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*384413*/ OPC_CheckChild0Integer, 15, ++/*384415*/ OPC_CheckChild0Type, MVT::i32, ++/*384417*/ OPC_CheckChild1Integer, 15, ++/*384419*/ OPC_CheckChild1Type, MVT::i32, ++/*384421*/ OPC_CheckChild2Integer, 15, ++/*384423*/ OPC_CheckChild2Type, MVT::i32, ++/*384425*/ OPC_CheckChild3Integer, 15, ++/*384427*/ OPC_CheckChild3Type, MVT::i32, ++/*384429*/ OPC_CheckChild4Integer, 15, ++/*384431*/ OPC_CheckChild4Type, MVT::i32, ++/*384433*/ OPC_MoveChild5, ++/*384434*/ OPC_CheckInteger, 15, ++/*384436*/ OPC_CheckType, MVT::i32, ++/*384438*/ OPC_MoveParent, ++/*384439*/ OPC_MoveChild6, ++/*384440*/ OPC_CheckInteger, 15, ++/*384442*/ OPC_CheckType, MVT::i32, ++/*384444*/ OPC_MoveParent, ++/*384445*/ OPC_MoveChild7, ++/*384446*/ OPC_CheckInteger, 15, ++/*384448*/ OPC_CheckType, MVT::i32, ++/*384450*/ OPC_MoveParent, ++/*384451*/ OPC_MoveChild, 8, ++/*384453*/ OPC_CheckInteger, 15, ++/*384455*/ OPC_CheckType, MVT::i32, ++/*384457*/ OPC_MoveParent, ++/*384458*/ OPC_MoveChild, 9, ++/*384460*/ OPC_CheckInteger, 15, ++/*384462*/ OPC_CheckType, MVT::i32, ++/*384464*/ OPC_MoveParent, ++/*384465*/ OPC_MoveChild, 10, ++/*384467*/ OPC_CheckInteger, 15, ++/*384469*/ OPC_CheckType, MVT::i32, ++/*384471*/ OPC_MoveParent, ++/*384472*/ OPC_MoveChild, 11, ++/*384474*/ OPC_CheckInteger, 15, ++/*384476*/ OPC_CheckType, MVT::i32, ++/*384478*/ OPC_MoveParent, ++/*384479*/ OPC_MoveChild, 12, ++/*384481*/ OPC_CheckInteger, 15, ++/*384483*/ OPC_CheckType, MVT::i32, ++/*384485*/ OPC_MoveParent, ++/*384486*/ OPC_MoveChild, 13, ++/*384488*/ OPC_CheckInteger, 15, ++/*384490*/ OPC_CheckType, MVT::i32, ++/*384492*/ OPC_MoveParent, ++/*384493*/ OPC_MoveChild, 14, ++/*384495*/ OPC_CheckInteger, 15, ++/*384497*/ OPC_CheckType, MVT::i32, ++/*384499*/ OPC_MoveParent, ++/*384500*/ OPC_MoveChild, 15, ++/*384502*/ OPC_CheckInteger, 15, ++/*384504*/ OPC_CheckType, MVT::i32, ++/*384506*/ OPC_MoveParent, ++/*384507*/ OPC_CheckType, MVT::v16i16, ++/*384509*/ OPC_MoveParent, ++/*384510*/ OPC_MoveParent, ++/*384511*/ OPC_MoveChild1, ++/*384512*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*384515*/ OPC_Scope, 52|128,10/*1332*/, /*->385850*/ // 7 children in Scope ++/*384518*/ OPC_MoveChild0, ++/*384519*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*384522*/ OPC_Scope, 91|128,1/*219*/, /*->384744*/ // 6 children in Scope ++/*384525*/ OPC_MoveChild0, ++/*384526*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*384529*/ OPC_CheckChild0Integer, 1, ++/*384531*/ OPC_CheckChild0Type, MVT::i32, ++/*384533*/ OPC_CheckChild1Integer, 1, ++/*384535*/ OPC_CheckChild1Type, MVT::i32, ++/*384537*/ OPC_CheckChild2Integer, 1, ++/*384539*/ OPC_CheckChild2Type, MVT::i32, ++/*384541*/ OPC_CheckChild3Integer, 1, ++/*384543*/ OPC_CheckChild3Type, MVT::i32, ++/*384545*/ OPC_CheckChild4Integer, 1, ++/*384547*/ OPC_CheckChild4Type, MVT::i32, ++/*384549*/ OPC_MoveChild5, ++/*384550*/ OPC_CheckInteger, 1, ++/*384552*/ OPC_CheckType, MVT::i32, ++/*384554*/ OPC_MoveParent, ++/*384555*/ OPC_MoveChild6, ++/*384556*/ OPC_CheckInteger, 1, ++/*384558*/ OPC_CheckType, MVT::i32, ++/*384560*/ OPC_MoveParent, ++/*384561*/ OPC_MoveChild7, ++/*384562*/ OPC_CheckInteger, 1, ++/*384564*/ OPC_CheckType, MVT::i32, ++/*384566*/ OPC_MoveParent, ++/*384567*/ OPC_MoveChild, 8, ++/*384569*/ OPC_CheckInteger, 1, ++/*384571*/ OPC_CheckType, MVT::i32, ++/*384573*/ OPC_MoveParent, ++/*384574*/ OPC_MoveChild, 9, ++/*384576*/ OPC_CheckInteger, 1, ++/*384578*/ OPC_CheckType, MVT::i32, ++/*384580*/ OPC_MoveParent, ++/*384581*/ OPC_MoveChild, 10, ++/*384583*/ OPC_CheckInteger, 1, ++/*384585*/ OPC_CheckType, MVT::i32, ++/*384587*/ OPC_MoveParent, ++/*384588*/ OPC_MoveChild, 11, ++/*384590*/ OPC_CheckInteger, 1, ++/*384592*/ OPC_CheckType, MVT::i32, ++/*384594*/ OPC_MoveParent, ++/*384595*/ OPC_MoveChild, 12, ++/*384597*/ OPC_CheckInteger, 1, ++/*384599*/ OPC_CheckType, MVT::i32, ++/*384601*/ OPC_MoveParent, ++/*384602*/ OPC_MoveChild, 13, ++/*384604*/ OPC_CheckInteger, 1, ++/*384606*/ OPC_CheckType, MVT::i32, ++/*384608*/ OPC_MoveParent, ++/*384609*/ OPC_MoveChild, 14, ++/*384611*/ OPC_CheckInteger, 1, ++/*384613*/ OPC_CheckType, MVT::i32, ++/*384615*/ OPC_MoveParent, ++/*384616*/ OPC_MoveChild, 15, ++/*384618*/ OPC_CheckInteger, 1, ++/*384620*/ OPC_CheckType, MVT::i32, ++/*384622*/ OPC_MoveParent, ++/*384623*/ OPC_MoveParent, ++/*384624*/ OPC_CheckChild1Same, 0, ++/*384626*/ OPC_MoveParent, ++/*384627*/ OPC_CheckChild1Same, 1, ++/*384629*/ OPC_MoveParent, ++/*384630*/ OPC_MoveParent, ++/*384631*/ OPC_MoveChild1, ++/*384632*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*384635*/ OPC_CheckChild0Integer, 1, ++/*384637*/ OPC_CheckChild0Type, MVT::i32, ++/*384639*/ OPC_CheckChild1Integer, 1, ++/*384641*/ OPC_CheckChild1Type, MVT::i32, ++/*384643*/ OPC_CheckChild2Integer, 1, ++/*384645*/ OPC_CheckChild2Type, MVT::i32, ++/*384647*/ OPC_CheckChild3Integer, 1, ++/*384649*/ OPC_CheckChild3Type, MVT::i32, ++/*384651*/ OPC_CheckChild4Integer, 1, ++/*384653*/ OPC_CheckChild4Type, MVT::i32, ++/*384655*/ OPC_MoveChild5, ++/*384656*/ OPC_CheckInteger, 1, ++/*384658*/ OPC_CheckType, MVT::i32, ++/*384660*/ OPC_MoveParent, ++/*384661*/ OPC_MoveChild6, ++/*384662*/ OPC_CheckInteger, 1, ++/*384664*/ OPC_CheckType, MVT::i32, ++/*384666*/ OPC_MoveParent, ++/*384667*/ OPC_MoveChild7, ++/*384668*/ OPC_CheckInteger, 1, ++/*384670*/ OPC_CheckType, MVT::i32, ++/*384672*/ OPC_MoveParent, ++/*384673*/ OPC_MoveChild, 8, ++/*384675*/ OPC_CheckInteger, 1, ++/*384677*/ OPC_CheckType, MVT::i32, ++/*384679*/ OPC_MoveParent, ++/*384680*/ OPC_MoveChild, 9, ++/*384682*/ OPC_CheckInteger, 1, ++/*384684*/ OPC_CheckType, MVT::i32, ++/*384686*/ OPC_MoveParent, ++/*384687*/ OPC_MoveChild, 10, ++/*384689*/ OPC_CheckInteger, 1, ++/*384691*/ OPC_CheckType, MVT::i32, ++/*384693*/ OPC_MoveParent, ++/*384694*/ OPC_MoveChild, 11, ++/*384696*/ OPC_CheckInteger, 1, ++/*384698*/ OPC_CheckType, MVT::i32, ++/*384700*/ OPC_MoveParent, ++/*384701*/ OPC_MoveChild, 12, ++/*384703*/ OPC_CheckInteger, 1, ++/*384705*/ OPC_CheckType, MVT::i32, ++/*384707*/ OPC_MoveParent, ++/*384708*/ OPC_MoveChild, 13, ++/*384710*/ OPC_CheckInteger, 1, ++/*384712*/ OPC_CheckType, MVT::i32, ++/*384714*/ OPC_MoveParent, ++/*384715*/ OPC_MoveChild, 14, ++/*384717*/ OPC_CheckInteger, 1, ++/*384719*/ OPC_CheckType, MVT::i32, ++/*384721*/ OPC_MoveParent, ++/*384722*/ OPC_MoveChild, 15, ++/*384724*/ OPC_CheckInteger, 1, ++/*384726*/ OPC_CheckType, MVT::i32, ++/*384728*/ OPC_MoveParent, ++/*384729*/ OPC_CheckType, MVT::v16i16, ++/*384731*/ OPC_MoveParent, ++/*384732*/ OPC_CheckType, MVT::v16i16, ++/*384734*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*384736*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a), LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*384744*/ /*Scope*/ 91|128,1/*219*/, /*->384965*/ ++/*384746*/ OPC_CheckChild0Same, 0, ++/*384748*/ OPC_MoveChild1, ++/*384749*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*384752*/ OPC_CheckChild0Integer, 1, ++/*384754*/ OPC_CheckChild0Type, MVT::i32, ++/*384756*/ OPC_CheckChild1Integer, 1, ++/*384758*/ OPC_CheckChild1Type, MVT::i32, ++/*384760*/ OPC_CheckChild2Integer, 1, ++/*384762*/ OPC_CheckChild2Type, MVT::i32, ++/*384764*/ OPC_CheckChild3Integer, 1, ++/*384766*/ OPC_CheckChild3Type, MVT::i32, ++/*384768*/ OPC_CheckChild4Integer, 1, ++/*384770*/ OPC_CheckChild4Type, MVT::i32, ++/*384772*/ OPC_MoveChild5, ++/*384773*/ OPC_CheckInteger, 1, ++/*384775*/ OPC_CheckType, MVT::i32, ++/*384777*/ OPC_MoveParent, ++/*384778*/ OPC_MoveChild6, ++/*384779*/ OPC_CheckInteger, 1, ++/*384781*/ OPC_CheckType, MVT::i32, ++/*384783*/ OPC_MoveParent, ++/*384784*/ OPC_MoveChild7, ++/*384785*/ OPC_CheckInteger, 1, ++/*384787*/ OPC_CheckType, MVT::i32, ++/*384789*/ OPC_MoveParent, ++/*384790*/ OPC_MoveChild, 8, ++/*384792*/ OPC_CheckInteger, 1, ++/*384794*/ OPC_CheckType, MVT::i32, ++/*384796*/ OPC_MoveParent, ++/*384797*/ OPC_MoveChild, 9, ++/*384799*/ OPC_CheckInteger, 1, ++/*384801*/ OPC_CheckType, MVT::i32, ++/*384803*/ OPC_MoveParent, ++/*384804*/ OPC_MoveChild, 10, ++/*384806*/ OPC_CheckInteger, 1, ++/*384808*/ OPC_CheckType, MVT::i32, ++/*384810*/ OPC_MoveParent, ++/*384811*/ OPC_MoveChild, 11, ++/*384813*/ OPC_CheckInteger, 1, ++/*384815*/ OPC_CheckType, MVT::i32, ++/*384817*/ OPC_MoveParent, ++/*384818*/ OPC_MoveChild, 12, ++/*384820*/ OPC_CheckInteger, 1, ++/*384822*/ OPC_CheckType, MVT::i32, ++/*384824*/ OPC_MoveParent, ++/*384825*/ OPC_MoveChild, 13, ++/*384827*/ OPC_CheckInteger, 1, ++/*384829*/ OPC_CheckType, MVT::i32, ++/*384831*/ OPC_MoveParent, ++/*384832*/ OPC_MoveChild, 14, ++/*384834*/ OPC_CheckInteger, 1, ++/*384836*/ OPC_CheckType, MVT::i32, ++/*384838*/ OPC_MoveParent, ++/*384839*/ OPC_MoveChild, 15, ++/*384841*/ OPC_CheckInteger, 1, ++/*384843*/ OPC_CheckType, MVT::i32, ++/*384845*/ OPC_MoveParent, ++/*384846*/ OPC_MoveParent, ++/*384847*/ OPC_MoveParent, ++/*384848*/ OPC_CheckChild1Same, 1, ++/*384850*/ OPC_MoveParent, ++/*384851*/ OPC_MoveParent, ++/*384852*/ OPC_MoveChild1, ++/*384853*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*384856*/ OPC_CheckChild0Integer, 1, ++/*384858*/ OPC_CheckChild0Type, MVT::i32, ++/*384860*/ OPC_CheckChild1Integer, 1, ++/*384862*/ OPC_CheckChild1Type, MVT::i32, ++/*384864*/ OPC_CheckChild2Integer, 1, ++/*384866*/ OPC_CheckChild2Type, MVT::i32, ++/*384868*/ OPC_CheckChild3Integer, 1, ++/*384870*/ OPC_CheckChild3Type, MVT::i32, ++/*384872*/ OPC_CheckChild4Integer, 1, ++/*384874*/ OPC_CheckChild4Type, MVT::i32, ++/*384876*/ OPC_MoveChild5, ++/*384877*/ OPC_CheckInteger, 1, ++/*384879*/ OPC_CheckType, MVT::i32, ++/*384881*/ OPC_MoveParent, ++/*384882*/ OPC_MoveChild6, ++/*384883*/ OPC_CheckInteger, 1, ++/*384885*/ OPC_CheckType, MVT::i32, ++/*384887*/ OPC_MoveParent, ++/*384888*/ OPC_MoveChild7, ++/*384889*/ OPC_CheckInteger, 1, ++/*384891*/ OPC_CheckType, MVT::i32, ++/*384893*/ OPC_MoveParent, ++/*384894*/ OPC_MoveChild, 8, ++/*384896*/ OPC_CheckInteger, 1, ++/*384898*/ OPC_CheckType, MVT::i32, ++/*384900*/ OPC_MoveParent, ++/*384901*/ OPC_MoveChild, 9, ++/*384903*/ OPC_CheckInteger, 1, ++/*384905*/ OPC_CheckType, MVT::i32, ++/*384907*/ OPC_MoveParent, ++/*384908*/ OPC_MoveChild, 10, ++/*384910*/ OPC_CheckInteger, 1, ++/*384912*/ OPC_CheckType, MVT::i32, ++/*384914*/ OPC_MoveParent, ++/*384915*/ OPC_MoveChild, 11, ++/*384917*/ OPC_CheckInteger, 1, ++/*384919*/ OPC_CheckType, MVT::i32, ++/*384921*/ OPC_MoveParent, ++/*384922*/ OPC_MoveChild, 12, ++/*384924*/ OPC_CheckInteger, 1, ++/*384926*/ OPC_CheckType, MVT::i32, ++/*384928*/ OPC_MoveParent, ++/*384929*/ OPC_MoveChild, 13, ++/*384931*/ OPC_CheckInteger, 1, ++/*384933*/ OPC_CheckType, MVT::i32, ++/*384935*/ OPC_MoveParent, ++/*384936*/ OPC_MoveChild, 14, ++/*384938*/ OPC_CheckInteger, 1, ++/*384940*/ OPC_CheckType, MVT::i32, ++/*384942*/ OPC_MoveParent, ++/*384943*/ OPC_MoveChild, 15, ++/*384945*/ OPC_CheckInteger, 1, ++/*384947*/ OPC_CheckType, MVT::i32, ++/*384949*/ OPC_MoveParent, ++/*384950*/ OPC_CheckType, MVT::v16i16, ++/*384952*/ OPC_MoveParent, ++/*384953*/ OPC_CheckType, MVT::v16i16, ++/*384955*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*384957*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*384965*/ /*Scope*/ 91|128,1/*219*/, /*->385186*/ ++/*384967*/ OPC_MoveChild0, ++/*384968*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*384971*/ OPC_CheckChild0Integer, 1, ++/*384973*/ OPC_CheckChild0Type, MVT::i32, ++/*384975*/ OPC_CheckChild1Integer, 1, ++/*384977*/ OPC_CheckChild1Type, MVT::i32, ++/*384979*/ OPC_CheckChild2Integer, 1, ++/*384981*/ OPC_CheckChild2Type, MVT::i32, ++/*384983*/ OPC_CheckChild3Integer, 1, ++/*384985*/ OPC_CheckChild3Type, MVT::i32, ++/*384987*/ OPC_CheckChild4Integer, 1, ++/*384989*/ OPC_CheckChild4Type, MVT::i32, ++/*384991*/ OPC_MoveChild5, ++/*384992*/ OPC_CheckInteger, 1, ++/*384994*/ OPC_CheckType, MVT::i32, ++/*384996*/ OPC_MoveParent, ++/*384997*/ OPC_MoveChild6, ++/*384998*/ OPC_CheckInteger, 1, ++/*385000*/ OPC_CheckType, MVT::i32, ++/*385002*/ OPC_MoveParent, ++/*385003*/ OPC_MoveChild7, ++/*385004*/ OPC_CheckInteger, 1, ++/*385006*/ OPC_CheckType, MVT::i32, ++/*385008*/ OPC_MoveParent, ++/*385009*/ OPC_MoveChild, 8, ++/*385011*/ OPC_CheckInteger, 1, ++/*385013*/ OPC_CheckType, MVT::i32, ++/*385015*/ OPC_MoveParent, ++/*385016*/ OPC_MoveChild, 9, ++/*385018*/ OPC_CheckInteger, 1, ++/*385020*/ OPC_CheckType, MVT::i32, ++/*385022*/ OPC_MoveParent, ++/*385023*/ OPC_MoveChild, 10, ++/*385025*/ OPC_CheckInteger, 1, ++/*385027*/ OPC_CheckType, MVT::i32, ++/*385029*/ OPC_MoveParent, ++/*385030*/ OPC_MoveChild, 11, ++/*385032*/ OPC_CheckInteger, 1, ++/*385034*/ OPC_CheckType, MVT::i32, ++/*385036*/ OPC_MoveParent, ++/*385037*/ OPC_MoveChild, 12, ++/*385039*/ OPC_CheckInteger, 1, ++/*385041*/ OPC_CheckType, MVT::i32, ++/*385043*/ OPC_MoveParent, ++/*385044*/ OPC_MoveChild, 13, ++/*385046*/ OPC_CheckInteger, 1, ++/*385048*/ OPC_CheckType, MVT::i32, ++/*385050*/ OPC_MoveParent, ++/*385051*/ OPC_MoveChild, 14, ++/*385053*/ OPC_CheckInteger, 1, ++/*385055*/ OPC_CheckType, MVT::i32, ++/*385057*/ OPC_MoveParent, ++/*385058*/ OPC_MoveChild, 15, ++/*385060*/ OPC_CheckInteger, 1, ++/*385062*/ OPC_CheckType, MVT::i32, ++/*385064*/ OPC_MoveParent, ++/*385065*/ OPC_MoveParent, ++/*385066*/ OPC_CheckChild1Same, 1, ++/*385068*/ OPC_MoveParent, ++/*385069*/ OPC_CheckChild1Same, 0, ++/*385071*/ OPC_MoveParent, ++/*385072*/ OPC_MoveParent, ++/*385073*/ OPC_MoveChild1, ++/*385074*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*385077*/ OPC_CheckChild0Integer, 1, ++/*385079*/ OPC_CheckChild0Type, MVT::i32, ++/*385081*/ OPC_CheckChild1Integer, 1, ++/*385083*/ OPC_CheckChild1Type, MVT::i32, ++/*385085*/ OPC_CheckChild2Integer, 1, ++/*385087*/ OPC_CheckChild2Type, MVT::i32, ++/*385089*/ OPC_CheckChild3Integer, 1, ++/*385091*/ OPC_CheckChild3Type, MVT::i32, ++/*385093*/ OPC_CheckChild4Integer, 1, ++/*385095*/ OPC_CheckChild4Type, MVT::i32, ++/*385097*/ OPC_MoveChild5, ++/*385098*/ OPC_CheckInteger, 1, ++/*385100*/ OPC_CheckType, MVT::i32, ++/*385102*/ OPC_MoveParent, ++/*385103*/ OPC_MoveChild6, ++/*385104*/ OPC_CheckInteger, 1, ++/*385106*/ OPC_CheckType, MVT::i32, ++/*385108*/ OPC_MoveParent, ++/*385109*/ OPC_MoveChild7, ++/*385110*/ OPC_CheckInteger, 1, ++/*385112*/ OPC_CheckType, MVT::i32, ++/*385114*/ OPC_MoveParent, ++/*385115*/ OPC_MoveChild, 8, ++/*385117*/ OPC_CheckInteger, 1, ++/*385119*/ OPC_CheckType, MVT::i32, ++/*385121*/ OPC_MoveParent, ++/*385122*/ OPC_MoveChild, 9, ++/*385124*/ OPC_CheckInteger, 1, ++/*385126*/ OPC_CheckType, MVT::i32, ++/*385128*/ OPC_MoveParent, ++/*385129*/ OPC_MoveChild, 10, ++/*385131*/ OPC_CheckInteger, 1, ++/*385133*/ OPC_CheckType, MVT::i32, ++/*385135*/ OPC_MoveParent, ++/*385136*/ OPC_MoveChild, 11, ++/*385138*/ OPC_CheckInteger, 1, ++/*385140*/ OPC_CheckType, MVT::i32, ++/*385142*/ OPC_MoveParent, ++/*385143*/ OPC_MoveChild, 12, ++/*385145*/ OPC_CheckInteger, 1, ++/*385147*/ OPC_CheckType, MVT::i32, ++/*385149*/ OPC_MoveParent, ++/*385150*/ OPC_MoveChild, 13, ++/*385152*/ OPC_CheckInteger, 1, ++/*385154*/ OPC_CheckType, MVT::i32, ++/*385156*/ OPC_MoveParent, ++/*385157*/ OPC_MoveChild, 14, ++/*385159*/ OPC_CheckInteger, 1, ++/*385161*/ OPC_CheckType, MVT::i32, ++/*385163*/ OPC_MoveParent, ++/*385164*/ OPC_MoveChild, 15, ++/*385166*/ OPC_CheckInteger, 1, ++/*385168*/ OPC_CheckType, MVT::i32, ++/*385170*/ OPC_MoveParent, ++/*385171*/ OPC_CheckType, MVT::v16i16, ++/*385173*/ OPC_MoveParent, ++/*385174*/ OPC_CheckType, MVT::v16i16, ++/*385176*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*385178*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b), LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*385186*/ /*Scope*/ 91|128,1/*219*/, /*->385407*/ ++/*385188*/ OPC_CheckChild0Same, 1, ++/*385190*/ OPC_MoveChild1, ++/*385191*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*385194*/ OPC_CheckChild0Integer, 1, ++/*385196*/ OPC_CheckChild0Type, MVT::i32, ++/*385198*/ OPC_CheckChild1Integer, 1, ++/*385200*/ OPC_CheckChild1Type, MVT::i32, ++/*385202*/ OPC_CheckChild2Integer, 1, ++/*385204*/ OPC_CheckChild2Type, MVT::i32, ++/*385206*/ OPC_CheckChild3Integer, 1, ++/*385208*/ OPC_CheckChild3Type, MVT::i32, ++/*385210*/ OPC_CheckChild4Integer, 1, ++/*385212*/ OPC_CheckChild4Type, MVT::i32, ++/*385214*/ OPC_MoveChild5, ++/*385215*/ OPC_CheckInteger, 1, ++/*385217*/ OPC_CheckType, MVT::i32, ++/*385219*/ OPC_MoveParent, ++/*385220*/ OPC_MoveChild6, ++/*385221*/ OPC_CheckInteger, 1, ++/*385223*/ OPC_CheckType, MVT::i32, ++/*385225*/ OPC_MoveParent, ++/*385226*/ OPC_MoveChild7, ++/*385227*/ OPC_CheckInteger, 1, ++/*385229*/ OPC_CheckType, MVT::i32, ++/*385231*/ OPC_MoveParent, ++/*385232*/ OPC_MoveChild, 8, ++/*385234*/ OPC_CheckInteger, 1, ++/*385236*/ OPC_CheckType, MVT::i32, ++/*385238*/ OPC_MoveParent, ++/*385239*/ OPC_MoveChild, 9, ++/*385241*/ OPC_CheckInteger, 1, ++/*385243*/ OPC_CheckType, MVT::i32, ++/*385245*/ OPC_MoveParent, ++/*385246*/ OPC_MoveChild, 10, ++/*385248*/ OPC_CheckInteger, 1, ++/*385250*/ OPC_CheckType, MVT::i32, ++/*385252*/ OPC_MoveParent, ++/*385253*/ OPC_MoveChild, 11, ++/*385255*/ OPC_CheckInteger, 1, ++/*385257*/ OPC_CheckType, MVT::i32, ++/*385259*/ OPC_MoveParent, ++/*385260*/ OPC_MoveChild, 12, ++/*385262*/ OPC_CheckInteger, 1, ++/*385264*/ OPC_CheckType, MVT::i32, ++/*385266*/ OPC_MoveParent, ++/*385267*/ OPC_MoveChild, 13, ++/*385269*/ OPC_CheckInteger, 1, ++/*385271*/ OPC_CheckType, MVT::i32, ++/*385273*/ OPC_MoveParent, ++/*385274*/ OPC_MoveChild, 14, ++/*385276*/ OPC_CheckInteger, 1, ++/*385278*/ OPC_CheckType, MVT::i32, ++/*385280*/ OPC_MoveParent, ++/*385281*/ OPC_MoveChild, 15, ++/*385283*/ OPC_CheckInteger, 1, ++/*385285*/ OPC_CheckType, MVT::i32, ++/*385287*/ OPC_MoveParent, ++/*385288*/ OPC_MoveParent, ++/*385289*/ OPC_MoveParent, ++/*385290*/ OPC_CheckChild1Same, 0, ++/*385292*/ OPC_MoveParent, ++/*385293*/ OPC_MoveParent, ++/*385294*/ OPC_MoveChild1, ++/*385295*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*385298*/ OPC_CheckChild0Integer, 1, ++/*385300*/ OPC_CheckChild0Type, MVT::i32, ++/*385302*/ OPC_CheckChild1Integer, 1, ++/*385304*/ OPC_CheckChild1Type, MVT::i32, ++/*385306*/ OPC_CheckChild2Integer, 1, ++/*385308*/ OPC_CheckChild2Type, MVT::i32, ++/*385310*/ OPC_CheckChild3Integer, 1, ++/*385312*/ OPC_CheckChild3Type, MVT::i32, ++/*385314*/ OPC_CheckChild4Integer, 1, ++/*385316*/ OPC_CheckChild4Type, MVT::i32, ++/*385318*/ OPC_MoveChild5, ++/*385319*/ OPC_CheckInteger, 1, ++/*385321*/ OPC_CheckType, MVT::i32, ++/*385323*/ OPC_MoveParent, ++/*385324*/ OPC_MoveChild6, ++/*385325*/ OPC_CheckInteger, 1, ++/*385327*/ OPC_CheckType, MVT::i32, ++/*385329*/ OPC_MoveParent, ++/*385330*/ OPC_MoveChild7, ++/*385331*/ OPC_CheckInteger, 1, ++/*385333*/ OPC_CheckType, MVT::i32, ++/*385335*/ OPC_MoveParent, ++/*385336*/ OPC_MoveChild, 8, ++/*385338*/ OPC_CheckInteger, 1, ++/*385340*/ OPC_CheckType, MVT::i32, ++/*385342*/ OPC_MoveParent, ++/*385343*/ OPC_MoveChild, 9, ++/*385345*/ OPC_CheckInteger, 1, ++/*385347*/ OPC_CheckType, MVT::i32, ++/*385349*/ OPC_MoveParent, ++/*385350*/ OPC_MoveChild, 10, ++/*385352*/ OPC_CheckInteger, 1, ++/*385354*/ OPC_CheckType, MVT::i32, ++/*385356*/ OPC_MoveParent, ++/*385357*/ OPC_MoveChild, 11, ++/*385359*/ OPC_CheckInteger, 1, ++/*385361*/ OPC_CheckType, MVT::i32, ++/*385363*/ OPC_MoveParent, ++/*385364*/ OPC_MoveChild, 12, ++/*385366*/ OPC_CheckInteger, 1, ++/*385368*/ OPC_CheckType, MVT::i32, ++/*385370*/ OPC_MoveParent, ++/*385371*/ OPC_MoveChild, 13, ++/*385373*/ OPC_CheckInteger, 1, ++/*385375*/ OPC_CheckType, MVT::i32, ++/*385377*/ OPC_MoveParent, ++/*385378*/ OPC_MoveChild, 14, ++/*385380*/ OPC_CheckInteger, 1, ++/*385382*/ OPC_CheckType, MVT::i32, ++/*385384*/ OPC_MoveParent, ++/*385385*/ OPC_MoveChild, 15, ++/*385387*/ OPC_CheckInteger, 1, ++/*385389*/ OPC_CheckType, MVT::i32, ++/*385391*/ OPC_MoveParent, ++/*385392*/ OPC_CheckType, MVT::v16i16, ++/*385394*/ OPC_MoveParent, ++/*385395*/ OPC_CheckType, MVT::v16i16, ++/*385397*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*385399*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*385407*/ /*Scope*/ 91|128,1/*219*/, /*->385628*/ ++/*385409*/ OPC_CheckChild0Same, 0, ++/*385411*/ OPC_CheckChild1Same, 1, ++/*385413*/ OPC_MoveParent, ++/*385414*/ OPC_MoveChild1, ++/*385415*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*385418*/ OPC_CheckChild0Integer, 1, ++/*385420*/ OPC_CheckChild0Type, MVT::i32, ++/*385422*/ OPC_CheckChild1Integer, 1, ++/*385424*/ OPC_CheckChild1Type, MVT::i32, ++/*385426*/ OPC_CheckChild2Integer, 1, ++/*385428*/ OPC_CheckChild2Type, MVT::i32, ++/*385430*/ OPC_CheckChild3Integer, 1, ++/*385432*/ OPC_CheckChild3Type, MVT::i32, ++/*385434*/ OPC_CheckChild4Integer, 1, ++/*385436*/ OPC_CheckChild4Type, MVT::i32, ++/*385438*/ OPC_MoveChild5, ++/*385439*/ OPC_CheckInteger, 1, ++/*385441*/ OPC_CheckType, MVT::i32, ++/*385443*/ OPC_MoveParent, ++/*385444*/ OPC_MoveChild6, ++/*385445*/ OPC_CheckInteger, 1, ++/*385447*/ OPC_CheckType, MVT::i32, ++/*385449*/ OPC_MoveParent, ++/*385450*/ OPC_MoveChild7, ++/*385451*/ OPC_CheckInteger, 1, ++/*385453*/ OPC_CheckType, MVT::i32, ++/*385455*/ OPC_MoveParent, ++/*385456*/ OPC_MoveChild, 8, ++/*385458*/ OPC_CheckInteger, 1, ++/*385460*/ OPC_CheckType, MVT::i32, ++/*385462*/ OPC_MoveParent, ++/*385463*/ OPC_MoveChild, 9, ++/*385465*/ OPC_CheckInteger, 1, ++/*385467*/ OPC_CheckType, MVT::i32, ++/*385469*/ OPC_MoveParent, ++/*385470*/ OPC_MoveChild, 10, ++/*385472*/ OPC_CheckInteger, 1, ++/*385474*/ OPC_CheckType, MVT::i32, ++/*385476*/ OPC_MoveParent, ++/*385477*/ OPC_MoveChild, 11, ++/*385479*/ OPC_CheckInteger, 1, ++/*385481*/ OPC_CheckType, MVT::i32, ++/*385483*/ OPC_MoveParent, ++/*385484*/ OPC_MoveChild, 12, ++/*385486*/ OPC_CheckInteger, 1, ++/*385488*/ OPC_CheckType, MVT::i32, ++/*385490*/ OPC_MoveParent, ++/*385491*/ OPC_MoveChild, 13, ++/*385493*/ OPC_CheckInteger, 1, ++/*385495*/ OPC_CheckType, MVT::i32, ++/*385497*/ OPC_MoveParent, ++/*385498*/ OPC_MoveChild, 14, ++/*385500*/ OPC_CheckInteger, 1, ++/*385502*/ OPC_CheckType, MVT::i32, ++/*385504*/ OPC_MoveParent, ++/*385505*/ OPC_MoveChild, 15, ++/*385507*/ OPC_CheckInteger, 1, ++/*385509*/ OPC_CheckType, MVT::i32, ++/*385511*/ OPC_MoveParent, ++/*385512*/ OPC_MoveParent, ++/*385513*/ OPC_MoveParent, ++/*385514*/ OPC_MoveParent, ++/*385515*/ OPC_MoveChild1, ++/*385516*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*385519*/ OPC_CheckChild0Integer, 1, ++/*385521*/ OPC_CheckChild0Type, MVT::i32, ++/*385523*/ OPC_CheckChild1Integer, 1, ++/*385525*/ OPC_CheckChild1Type, MVT::i32, ++/*385527*/ OPC_CheckChild2Integer, 1, ++/*385529*/ OPC_CheckChild2Type, MVT::i32, ++/*385531*/ OPC_CheckChild3Integer, 1, ++/*385533*/ OPC_CheckChild3Type, MVT::i32, ++/*385535*/ OPC_CheckChild4Integer, 1, ++/*385537*/ OPC_CheckChild4Type, MVT::i32, ++/*385539*/ OPC_MoveChild5, ++/*385540*/ OPC_CheckInteger, 1, ++/*385542*/ OPC_CheckType, MVT::i32, ++/*385544*/ OPC_MoveParent, ++/*385545*/ OPC_MoveChild6, ++/*385546*/ OPC_CheckInteger, 1, ++/*385548*/ OPC_CheckType, MVT::i32, ++/*385550*/ OPC_MoveParent, ++/*385551*/ OPC_MoveChild7, ++/*385552*/ OPC_CheckInteger, 1, ++/*385554*/ OPC_CheckType, MVT::i32, ++/*385556*/ OPC_MoveParent, ++/*385557*/ OPC_MoveChild, 8, ++/*385559*/ OPC_CheckInteger, 1, ++/*385561*/ OPC_CheckType, MVT::i32, ++/*385563*/ OPC_MoveParent, ++/*385564*/ OPC_MoveChild, 9, ++/*385566*/ OPC_CheckInteger, 1, ++/*385568*/ OPC_CheckType, MVT::i32, ++/*385570*/ OPC_MoveParent, ++/*385571*/ OPC_MoveChild, 10, ++/*385573*/ OPC_CheckInteger, 1, ++/*385575*/ OPC_CheckType, MVT::i32, ++/*385577*/ OPC_MoveParent, ++/*385578*/ OPC_MoveChild, 11, ++/*385580*/ OPC_CheckInteger, 1, ++/*385582*/ OPC_CheckType, MVT::i32, ++/*385584*/ OPC_MoveParent, ++/*385585*/ OPC_MoveChild, 12, ++/*385587*/ OPC_CheckInteger, 1, ++/*385589*/ OPC_CheckType, MVT::i32, ++/*385591*/ OPC_MoveParent, ++/*385592*/ OPC_MoveChild, 13, ++/*385594*/ OPC_CheckInteger, 1, ++/*385596*/ OPC_CheckType, MVT::i32, ++/*385598*/ OPC_MoveParent, ++/*385599*/ OPC_MoveChild, 14, ++/*385601*/ OPC_CheckInteger, 1, ++/*385603*/ OPC_CheckType, MVT::i32, ++/*385605*/ OPC_MoveParent, ++/*385606*/ OPC_MoveChild, 15, ++/*385608*/ OPC_CheckInteger, 1, ++/*385610*/ OPC_CheckType, MVT::i32, ++/*385612*/ OPC_MoveParent, ++/*385613*/ OPC_CheckType, MVT::v16i16, ++/*385615*/ OPC_MoveParent, ++/*385616*/ OPC_CheckType, MVT::v16i16, ++/*385618*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*385620*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*385628*/ /*Scope*/ 91|128,1/*219*/, /*->385849*/ ++/*385630*/ OPC_CheckChild0Same, 1, ++/*385632*/ OPC_CheckChild1Same, 0, ++/*385634*/ OPC_MoveParent, ++/*385635*/ OPC_MoveChild1, ++/*385636*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*385639*/ OPC_CheckChild0Integer, 1, ++/*385641*/ OPC_CheckChild0Type, MVT::i32, ++/*385643*/ OPC_CheckChild1Integer, 1, ++/*385645*/ OPC_CheckChild1Type, MVT::i32, ++/*385647*/ OPC_CheckChild2Integer, 1, ++/*385649*/ OPC_CheckChild2Type, MVT::i32, ++/*385651*/ OPC_CheckChild3Integer, 1, ++/*385653*/ OPC_CheckChild3Type, MVT::i32, ++/*385655*/ OPC_CheckChild4Integer, 1, ++/*385657*/ OPC_CheckChild4Type, MVT::i32, ++/*385659*/ OPC_MoveChild5, ++/*385660*/ OPC_CheckInteger, 1, ++/*385662*/ OPC_CheckType, MVT::i32, ++/*385664*/ OPC_MoveParent, ++/*385665*/ OPC_MoveChild6, ++/*385666*/ OPC_CheckInteger, 1, ++/*385668*/ OPC_CheckType, MVT::i32, ++/*385670*/ OPC_MoveParent, ++/*385671*/ OPC_MoveChild7, ++/*385672*/ OPC_CheckInteger, 1, ++/*385674*/ OPC_CheckType, MVT::i32, ++/*385676*/ OPC_MoveParent, ++/*385677*/ OPC_MoveChild, 8, ++/*385679*/ OPC_CheckInteger, 1, ++/*385681*/ OPC_CheckType, MVT::i32, ++/*385683*/ OPC_MoveParent, ++/*385684*/ OPC_MoveChild, 9, ++/*385686*/ OPC_CheckInteger, 1, ++/*385688*/ OPC_CheckType, MVT::i32, ++/*385690*/ OPC_MoveParent, ++/*385691*/ OPC_MoveChild, 10, ++/*385693*/ OPC_CheckInteger, 1, ++/*385695*/ OPC_CheckType, MVT::i32, ++/*385697*/ OPC_MoveParent, ++/*385698*/ OPC_MoveChild, 11, ++/*385700*/ OPC_CheckInteger, 1, ++/*385702*/ OPC_CheckType, MVT::i32, ++/*385704*/ OPC_MoveParent, ++/*385705*/ OPC_MoveChild, 12, ++/*385707*/ OPC_CheckInteger, 1, ++/*385709*/ OPC_CheckType, MVT::i32, ++/*385711*/ OPC_MoveParent, ++/*385712*/ OPC_MoveChild, 13, ++/*385714*/ OPC_CheckInteger, 1, ++/*385716*/ OPC_CheckType, MVT::i32, ++/*385718*/ OPC_MoveParent, ++/*385719*/ OPC_MoveChild, 14, ++/*385721*/ OPC_CheckInteger, 1, ++/*385723*/ OPC_CheckType, MVT::i32, ++/*385725*/ OPC_MoveParent, ++/*385726*/ OPC_MoveChild, 15, ++/*385728*/ OPC_CheckInteger, 1, ++/*385730*/ OPC_CheckType, MVT::i32, ++/*385732*/ OPC_MoveParent, ++/*385733*/ OPC_MoveParent, ++/*385734*/ OPC_MoveParent, ++/*385735*/ OPC_MoveParent, ++/*385736*/ OPC_MoveChild1, ++/*385737*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*385740*/ OPC_CheckChild0Integer, 1, ++/*385742*/ OPC_CheckChild0Type, MVT::i32, ++/*385744*/ OPC_CheckChild1Integer, 1, ++/*385746*/ OPC_CheckChild1Type, MVT::i32, ++/*385748*/ OPC_CheckChild2Integer, 1, ++/*385750*/ OPC_CheckChild2Type, MVT::i32, ++/*385752*/ OPC_CheckChild3Integer, 1, ++/*385754*/ OPC_CheckChild3Type, MVT::i32, ++/*385756*/ OPC_CheckChild4Integer, 1, ++/*385758*/ OPC_CheckChild4Type, MVT::i32, ++/*385760*/ OPC_MoveChild5, ++/*385761*/ OPC_CheckInteger, 1, ++/*385763*/ OPC_CheckType, MVT::i32, ++/*385765*/ OPC_MoveParent, ++/*385766*/ OPC_MoveChild6, ++/*385767*/ OPC_CheckInteger, 1, ++/*385769*/ OPC_CheckType, MVT::i32, ++/*385771*/ OPC_MoveParent, ++/*385772*/ OPC_MoveChild7, ++/*385773*/ OPC_CheckInteger, 1, ++/*385775*/ OPC_CheckType, MVT::i32, ++/*385777*/ OPC_MoveParent, ++/*385778*/ OPC_MoveChild, 8, ++/*385780*/ OPC_CheckInteger, 1, ++/*385782*/ OPC_CheckType, MVT::i32, ++/*385784*/ OPC_MoveParent, ++/*385785*/ OPC_MoveChild, 9, ++/*385787*/ OPC_CheckInteger, 1, ++/*385789*/ OPC_CheckType, MVT::i32, ++/*385791*/ OPC_MoveParent, ++/*385792*/ OPC_MoveChild, 10, ++/*385794*/ OPC_CheckInteger, 1, ++/*385796*/ OPC_CheckType, MVT::i32, ++/*385798*/ OPC_MoveParent, ++/*385799*/ OPC_MoveChild, 11, ++/*385801*/ OPC_CheckInteger, 1, ++/*385803*/ OPC_CheckType, MVT::i32, ++/*385805*/ OPC_MoveParent, ++/*385806*/ OPC_MoveChild, 12, ++/*385808*/ OPC_CheckInteger, 1, ++/*385810*/ OPC_CheckType, MVT::i32, ++/*385812*/ OPC_MoveParent, ++/*385813*/ OPC_MoveChild, 13, ++/*385815*/ OPC_CheckInteger, 1, ++/*385817*/ OPC_CheckType, MVT::i32, ++/*385819*/ OPC_MoveParent, ++/*385820*/ OPC_MoveChild, 14, ++/*385822*/ OPC_CheckInteger, 1, ++/*385824*/ OPC_CheckType, MVT::i32, ++/*385826*/ OPC_MoveParent, ++/*385827*/ OPC_MoveChild, 15, ++/*385829*/ OPC_CheckInteger, 1, ++/*385831*/ OPC_CheckType, MVT::i32, ++/*385833*/ OPC_MoveParent, ++/*385834*/ OPC_CheckType, MVT::v16i16, ++/*385836*/ OPC_MoveParent, ++/*385837*/ OPC_CheckType, MVT::v16i16, ++/*385839*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*385841*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*385849*/ 0, /*End of Scope*/ ++/*385850*/ /*Scope*/ 62|128,3/*446*/, /*->386298*/ ++/*385852*/ OPC_CheckChild0Same, 1, ++/*385854*/ OPC_MoveChild1, ++/*385855*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*385858*/ OPC_Scope, 89|128,1/*217*/, /*->386078*/ // 2 children in Scope ++/*385861*/ OPC_MoveChild0, ++/*385862*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*385865*/ OPC_CheckChild0Integer, 1, ++/*385867*/ OPC_CheckChild0Type, MVT::i32, ++/*385869*/ OPC_CheckChild1Integer, 1, ++/*385871*/ OPC_CheckChild1Type, MVT::i32, ++/*385873*/ OPC_CheckChild2Integer, 1, ++/*385875*/ OPC_CheckChild2Type, MVT::i32, ++/*385877*/ OPC_CheckChild3Integer, 1, ++/*385879*/ OPC_CheckChild3Type, MVT::i32, ++/*385881*/ OPC_CheckChild4Integer, 1, ++/*385883*/ OPC_CheckChild4Type, MVT::i32, ++/*385885*/ OPC_MoveChild5, ++/*385886*/ OPC_CheckInteger, 1, ++/*385888*/ OPC_CheckType, MVT::i32, ++/*385890*/ OPC_MoveParent, ++/*385891*/ OPC_MoveChild6, ++/*385892*/ OPC_CheckInteger, 1, ++/*385894*/ OPC_CheckType, MVT::i32, ++/*385896*/ OPC_MoveParent, ++/*385897*/ OPC_MoveChild7, ++/*385898*/ OPC_CheckInteger, 1, ++/*385900*/ OPC_CheckType, MVT::i32, ++/*385902*/ OPC_MoveParent, ++/*385903*/ OPC_MoveChild, 8, ++/*385905*/ OPC_CheckInteger, 1, ++/*385907*/ OPC_CheckType, MVT::i32, ++/*385909*/ OPC_MoveParent, ++/*385910*/ OPC_MoveChild, 9, ++/*385912*/ OPC_CheckInteger, 1, ++/*385914*/ OPC_CheckType, MVT::i32, ++/*385916*/ OPC_MoveParent, ++/*385917*/ OPC_MoveChild, 10, ++/*385919*/ OPC_CheckInteger, 1, ++/*385921*/ OPC_CheckType, MVT::i32, ++/*385923*/ OPC_MoveParent, ++/*385924*/ OPC_MoveChild, 11, ++/*385926*/ OPC_CheckInteger, 1, ++/*385928*/ OPC_CheckType, MVT::i32, ++/*385930*/ OPC_MoveParent, ++/*385931*/ OPC_MoveChild, 12, ++/*385933*/ OPC_CheckInteger, 1, ++/*385935*/ OPC_CheckType, MVT::i32, ++/*385937*/ OPC_MoveParent, ++/*385938*/ OPC_MoveChild, 13, ++/*385940*/ OPC_CheckInteger, 1, ++/*385942*/ OPC_CheckType, MVT::i32, ++/*385944*/ OPC_MoveParent, ++/*385945*/ OPC_MoveChild, 14, ++/*385947*/ OPC_CheckInteger, 1, ++/*385949*/ OPC_CheckType, MVT::i32, ++/*385951*/ OPC_MoveParent, ++/*385952*/ OPC_MoveChild, 15, ++/*385954*/ OPC_CheckInteger, 1, ++/*385956*/ OPC_CheckType, MVT::i32, ++/*385958*/ OPC_MoveParent, ++/*385959*/ OPC_MoveParent, ++/*385960*/ OPC_CheckChild1Same, 0, ++/*385962*/ OPC_MoveParent, ++/*385963*/ OPC_MoveParent, ++/*385964*/ OPC_MoveParent, ++/*385965*/ OPC_MoveChild1, ++/*385966*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*385969*/ OPC_CheckChild0Integer, 1, ++/*385971*/ OPC_CheckChild0Type, MVT::i32, ++/*385973*/ OPC_CheckChild1Integer, 1, ++/*385975*/ OPC_CheckChild1Type, MVT::i32, ++/*385977*/ OPC_CheckChild2Integer, 1, ++/*385979*/ OPC_CheckChild2Type, MVT::i32, ++/*385981*/ OPC_CheckChild3Integer, 1, ++/*385983*/ OPC_CheckChild3Type, MVT::i32, ++/*385985*/ OPC_CheckChild4Integer, 1, ++/*385987*/ OPC_CheckChild4Type, MVT::i32, ++/*385989*/ OPC_MoveChild5, ++/*385990*/ OPC_CheckInteger, 1, ++/*385992*/ OPC_CheckType, MVT::i32, ++/*385994*/ OPC_MoveParent, ++/*385995*/ OPC_MoveChild6, ++/*385996*/ OPC_CheckInteger, 1, ++/*385998*/ OPC_CheckType, MVT::i32, ++/*386000*/ OPC_MoveParent, ++/*386001*/ OPC_MoveChild7, ++/*386002*/ OPC_CheckInteger, 1, ++/*386004*/ OPC_CheckType, MVT::i32, ++/*386006*/ OPC_MoveParent, ++/*386007*/ OPC_MoveChild, 8, ++/*386009*/ OPC_CheckInteger, 1, ++/*386011*/ OPC_CheckType, MVT::i32, ++/*386013*/ OPC_MoveParent, ++/*386014*/ OPC_MoveChild, 9, ++/*386016*/ OPC_CheckInteger, 1, ++/*386018*/ OPC_CheckType, MVT::i32, ++/*386020*/ OPC_MoveParent, ++/*386021*/ OPC_MoveChild, 10, ++/*386023*/ OPC_CheckInteger, 1, ++/*386025*/ OPC_CheckType, MVT::i32, ++/*386027*/ OPC_MoveParent, ++/*386028*/ OPC_MoveChild, 11, ++/*386030*/ OPC_CheckInteger, 1, ++/*386032*/ OPC_CheckType, MVT::i32, ++/*386034*/ OPC_MoveParent, ++/*386035*/ OPC_MoveChild, 12, ++/*386037*/ OPC_CheckInteger, 1, ++/*386039*/ OPC_CheckType, MVT::i32, ++/*386041*/ OPC_MoveParent, ++/*386042*/ OPC_MoveChild, 13, ++/*386044*/ OPC_CheckInteger, 1, ++/*386046*/ OPC_CheckType, MVT::i32, ++/*386048*/ OPC_MoveParent, ++/*386049*/ OPC_MoveChild, 14, ++/*386051*/ OPC_CheckInteger, 1, ++/*386053*/ OPC_CheckType, MVT::i32, ++/*386055*/ OPC_MoveParent, ++/*386056*/ OPC_MoveChild, 15, ++/*386058*/ OPC_CheckInteger, 1, ++/*386060*/ OPC_CheckType, MVT::i32, ++/*386062*/ OPC_MoveParent, ++/*386063*/ OPC_CheckType, MVT::v16i16, ++/*386065*/ OPC_MoveParent, ++/*386066*/ OPC_CheckType, MVT::v16i16, ++/*386068*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*386070*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*386078*/ /*Scope*/ 89|128,1/*217*/, /*->386297*/ ++/*386080*/ OPC_CheckChild0Same, 0, ++/*386082*/ OPC_MoveChild1, ++/*386083*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*386086*/ OPC_CheckChild0Integer, 1, ++/*386088*/ OPC_CheckChild0Type, MVT::i32, ++/*386090*/ OPC_CheckChild1Integer, 1, ++/*386092*/ OPC_CheckChild1Type, MVT::i32, ++/*386094*/ OPC_CheckChild2Integer, 1, ++/*386096*/ OPC_CheckChild2Type, MVT::i32, ++/*386098*/ OPC_CheckChild3Integer, 1, ++/*386100*/ OPC_CheckChild3Type, MVT::i32, ++/*386102*/ OPC_CheckChild4Integer, 1, ++/*386104*/ OPC_CheckChild4Type, MVT::i32, ++/*386106*/ OPC_MoveChild5, ++/*386107*/ OPC_CheckInteger, 1, ++/*386109*/ OPC_CheckType, MVT::i32, ++/*386111*/ OPC_MoveParent, ++/*386112*/ OPC_MoveChild6, ++/*386113*/ OPC_CheckInteger, 1, ++/*386115*/ OPC_CheckType, MVT::i32, ++/*386117*/ OPC_MoveParent, ++/*386118*/ OPC_MoveChild7, ++/*386119*/ OPC_CheckInteger, 1, ++/*386121*/ OPC_CheckType, MVT::i32, ++/*386123*/ OPC_MoveParent, ++/*386124*/ OPC_MoveChild, 8, ++/*386126*/ OPC_CheckInteger, 1, ++/*386128*/ OPC_CheckType, MVT::i32, ++/*386130*/ OPC_MoveParent, ++/*386131*/ OPC_MoveChild, 9, ++/*386133*/ OPC_CheckInteger, 1, ++/*386135*/ OPC_CheckType, MVT::i32, ++/*386137*/ OPC_MoveParent, ++/*386138*/ OPC_MoveChild, 10, ++/*386140*/ OPC_CheckInteger, 1, ++/*386142*/ OPC_CheckType, MVT::i32, ++/*386144*/ OPC_MoveParent, ++/*386145*/ OPC_MoveChild, 11, ++/*386147*/ OPC_CheckInteger, 1, ++/*386149*/ OPC_CheckType, MVT::i32, ++/*386151*/ OPC_MoveParent, ++/*386152*/ OPC_MoveChild, 12, ++/*386154*/ OPC_CheckInteger, 1, ++/*386156*/ OPC_CheckType, MVT::i32, ++/*386158*/ OPC_MoveParent, ++/*386159*/ OPC_MoveChild, 13, ++/*386161*/ OPC_CheckInteger, 1, ++/*386163*/ OPC_CheckType, MVT::i32, ++/*386165*/ OPC_MoveParent, ++/*386166*/ OPC_MoveChild, 14, ++/*386168*/ OPC_CheckInteger, 1, ++/*386170*/ OPC_CheckType, MVT::i32, ++/*386172*/ OPC_MoveParent, ++/*386173*/ OPC_MoveChild, 15, ++/*386175*/ OPC_CheckInteger, 1, ++/*386177*/ OPC_CheckType, MVT::i32, ++/*386179*/ OPC_MoveParent, ++/*386180*/ OPC_MoveParent, ++/*386181*/ OPC_MoveParent, ++/*386182*/ OPC_MoveParent, ++/*386183*/ OPC_MoveParent, ++/*386184*/ OPC_MoveChild1, ++/*386185*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*386188*/ OPC_CheckChild0Integer, 1, ++/*386190*/ OPC_CheckChild0Type, MVT::i32, ++/*386192*/ OPC_CheckChild1Integer, 1, ++/*386194*/ OPC_CheckChild1Type, MVT::i32, ++/*386196*/ OPC_CheckChild2Integer, 1, ++/*386198*/ OPC_CheckChild2Type, MVT::i32, ++/*386200*/ OPC_CheckChild3Integer, 1, ++/*386202*/ OPC_CheckChild3Type, MVT::i32, ++/*386204*/ OPC_CheckChild4Integer, 1, ++/*386206*/ OPC_CheckChild4Type, MVT::i32, ++/*386208*/ OPC_MoveChild5, ++/*386209*/ OPC_CheckInteger, 1, ++/*386211*/ OPC_CheckType, MVT::i32, ++/*386213*/ OPC_MoveParent, ++/*386214*/ OPC_MoveChild6, ++/*386215*/ OPC_CheckInteger, 1, ++/*386217*/ OPC_CheckType, MVT::i32, ++/*386219*/ OPC_MoveParent, ++/*386220*/ OPC_MoveChild7, ++/*386221*/ OPC_CheckInteger, 1, ++/*386223*/ OPC_CheckType, MVT::i32, ++/*386225*/ OPC_MoveParent, ++/*386226*/ OPC_MoveChild, 8, ++/*386228*/ OPC_CheckInteger, 1, ++/*386230*/ OPC_CheckType, MVT::i32, ++/*386232*/ OPC_MoveParent, ++/*386233*/ OPC_MoveChild, 9, ++/*386235*/ OPC_CheckInteger, 1, ++/*386237*/ OPC_CheckType, MVT::i32, ++/*386239*/ OPC_MoveParent, ++/*386240*/ OPC_MoveChild, 10, ++/*386242*/ OPC_CheckInteger, 1, ++/*386244*/ OPC_CheckType, MVT::i32, ++/*386246*/ OPC_MoveParent, ++/*386247*/ OPC_MoveChild, 11, ++/*386249*/ OPC_CheckInteger, 1, ++/*386251*/ OPC_CheckType, MVT::i32, ++/*386253*/ OPC_MoveParent, ++/*386254*/ OPC_MoveChild, 12, ++/*386256*/ OPC_CheckInteger, 1, ++/*386258*/ OPC_CheckType, MVT::i32, ++/*386260*/ OPC_MoveParent, ++/*386261*/ OPC_MoveChild, 13, ++/*386263*/ OPC_CheckInteger, 1, ++/*386265*/ OPC_CheckType, MVT::i32, ++/*386267*/ OPC_MoveParent, ++/*386268*/ OPC_MoveChild, 14, ++/*386270*/ OPC_CheckInteger, 1, ++/*386272*/ OPC_CheckType, MVT::i32, ++/*386274*/ OPC_MoveParent, ++/*386275*/ OPC_MoveChild, 15, ++/*386277*/ OPC_CheckInteger, 1, ++/*386279*/ OPC_CheckType, MVT::i32, ++/*386281*/ OPC_MoveParent, ++/*386282*/ OPC_CheckType, MVT::v16i16, ++/*386284*/ OPC_MoveParent, ++/*386285*/ OPC_CheckType, MVT::v16i16, ++/*386287*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*386289*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*386297*/ 0, /*End of Scope*/ ++/*386298*/ /*Scope*/ 62|128,3/*446*/, /*->386746*/ ++/*386300*/ OPC_CheckChild0Same, 0, ++/*386302*/ OPC_MoveChild1, ++/*386303*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*386306*/ OPC_Scope, 89|128,1/*217*/, /*->386526*/ // 2 children in Scope ++/*386309*/ OPC_MoveChild0, ++/*386310*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*386313*/ OPC_CheckChild0Integer, 1, ++/*386315*/ OPC_CheckChild0Type, MVT::i32, ++/*386317*/ OPC_CheckChild1Integer, 1, ++/*386319*/ OPC_CheckChild1Type, MVT::i32, ++/*386321*/ OPC_CheckChild2Integer, 1, ++/*386323*/ OPC_CheckChild2Type, MVT::i32, ++/*386325*/ OPC_CheckChild3Integer, 1, ++/*386327*/ OPC_CheckChild3Type, MVT::i32, ++/*386329*/ OPC_CheckChild4Integer, 1, ++/*386331*/ OPC_CheckChild4Type, MVT::i32, ++/*386333*/ OPC_MoveChild5, ++/*386334*/ OPC_CheckInteger, 1, ++/*386336*/ OPC_CheckType, MVT::i32, ++/*386338*/ OPC_MoveParent, ++/*386339*/ OPC_MoveChild6, ++/*386340*/ OPC_CheckInteger, 1, ++/*386342*/ OPC_CheckType, MVT::i32, ++/*386344*/ OPC_MoveParent, ++/*386345*/ OPC_MoveChild7, ++/*386346*/ OPC_CheckInteger, 1, ++/*386348*/ OPC_CheckType, MVT::i32, ++/*386350*/ OPC_MoveParent, ++/*386351*/ OPC_MoveChild, 8, ++/*386353*/ OPC_CheckInteger, 1, ++/*386355*/ OPC_CheckType, MVT::i32, ++/*386357*/ OPC_MoveParent, ++/*386358*/ OPC_MoveChild, 9, ++/*386360*/ OPC_CheckInteger, 1, ++/*386362*/ OPC_CheckType, MVT::i32, ++/*386364*/ OPC_MoveParent, ++/*386365*/ OPC_MoveChild, 10, ++/*386367*/ OPC_CheckInteger, 1, ++/*386369*/ OPC_CheckType, MVT::i32, ++/*386371*/ OPC_MoveParent, ++/*386372*/ OPC_MoveChild, 11, ++/*386374*/ OPC_CheckInteger, 1, ++/*386376*/ OPC_CheckType, MVT::i32, ++/*386378*/ OPC_MoveParent, ++/*386379*/ OPC_MoveChild, 12, ++/*386381*/ OPC_CheckInteger, 1, ++/*386383*/ OPC_CheckType, MVT::i32, ++/*386385*/ OPC_MoveParent, ++/*386386*/ OPC_MoveChild, 13, ++/*386388*/ OPC_CheckInteger, 1, ++/*386390*/ OPC_CheckType, MVT::i32, ++/*386392*/ OPC_MoveParent, ++/*386393*/ OPC_MoveChild, 14, ++/*386395*/ OPC_CheckInteger, 1, ++/*386397*/ OPC_CheckType, MVT::i32, ++/*386399*/ OPC_MoveParent, ++/*386400*/ OPC_MoveChild, 15, ++/*386402*/ OPC_CheckInteger, 1, ++/*386404*/ OPC_CheckType, MVT::i32, ++/*386406*/ OPC_MoveParent, ++/*386407*/ OPC_MoveParent, ++/*386408*/ OPC_CheckChild1Same, 1, ++/*386410*/ OPC_MoveParent, ++/*386411*/ OPC_MoveParent, ++/*386412*/ OPC_MoveParent, ++/*386413*/ OPC_MoveChild1, ++/*386414*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*386417*/ OPC_CheckChild0Integer, 1, ++/*386419*/ OPC_CheckChild0Type, MVT::i32, ++/*386421*/ OPC_CheckChild1Integer, 1, ++/*386423*/ OPC_CheckChild1Type, MVT::i32, ++/*386425*/ OPC_CheckChild2Integer, 1, ++/*386427*/ OPC_CheckChild2Type, MVT::i32, ++/*386429*/ OPC_CheckChild3Integer, 1, ++/*386431*/ OPC_CheckChild3Type, MVT::i32, ++/*386433*/ OPC_CheckChild4Integer, 1, ++/*386435*/ OPC_CheckChild4Type, MVT::i32, ++/*386437*/ OPC_MoveChild5, ++/*386438*/ OPC_CheckInteger, 1, ++/*386440*/ OPC_CheckType, MVT::i32, ++/*386442*/ OPC_MoveParent, ++/*386443*/ OPC_MoveChild6, ++/*386444*/ OPC_CheckInteger, 1, ++/*386446*/ OPC_CheckType, MVT::i32, ++/*386448*/ OPC_MoveParent, ++/*386449*/ OPC_MoveChild7, ++/*386450*/ OPC_CheckInteger, 1, ++/*386452*/ OPC_CheckType, MVT::i32, ++/*386454*/ OPC_MoveParent, ++/*386455*/ OPC_MoveChild, 8, ++/*386457*/ OPC_CheckInteger, 1, ++/*386459*/ OPC_CheckType, MVT::i32, ++/*386461*/ OPC_MoveParent, ++/*386462*/ OPC_MoveChild, 9, ++/*386464*/ OPC_CheckInteger, 1, ++/*386466*/ OPC_CheckType, MVT::i32, ++/*386468*/ OPC_MoveParent, ++/*386469*/ OPC_MoveChild, 10, ++/*386471*/ OPC_CheckInteger, 1, ++/*386473*/ OPC_CheckType, MVT::i32, ++/*386475*/ OPC_MoveParent, ++/*386476*/ OPC_MoveChild, 11, ++/*386478*/ OPC_CheckInteger, 1, ++/*386480*/ OPC_CheckType, MVT::i32, ++/*386482*/ OPC_MoveParent, ++/*386483*/ OPC_MoveChild, 12, ++/*386485*/ OPC_CheckInteger, 1, ++/*386487*/ OPC_CheckType, MVT::i32, ++/*386489*/ OPC_MoveParent, ++/*386490*/ OPC_MoveChild, 13, ++/*386492*/ OPC_CheckInteger, 1, ++/*386494*/ OPC_CheckType, MVT::i32, ++/*386496*/ OPC_MoveParent, ++/*386497*/ OPC_MoveChild, 14, ++/*386499*/ OPC_CheckInteger, 1, ++/*386501*/ OPC_CheckType, MVT::i32, ++/*386503*/ OPC_MoveParent, ++/*386504*/ OPC_MoveChild, 15, ++/*386506*/ OPC_CheckInteger, 1, ++/*386508*/ OPC_CheckType, MVT::i32, ++/*386510*/ OPC_MoveParent, ++/*386511*/ OPC_CheckType, MVT::v16i16, ++/*386513*/ OPC_MoveParent, ++/*386514*/ OPC_CheckType, MVT::v16i16, ++/*386516*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*386518*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*386526*/ /*Scope*/ 89|128,1/*217*/, /*->386745*/ ++/*386528*/ OPC_CheckChild0Same, 1, ++/*386530*/ OPC_MoveChild1, ++/*386531*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*386534*/ OPC_CheckChild0Integer, 1, ++/*386536*/ OPC_CheckChild0Type, MVT::i32, ++/*386538*/ OPC_CheckChild1Integer, 1, ++/*386540*/ OPC_CheckChild1Type, MVT::i32, ++/*386542*/ OPC_CheckChild2Integer, 1, ++/*386544*/ OPC_CheckChild2Type, MVT::i32, ++/*386546*/ OPC_CheckChild3Integer, 1, ++/*386548*/ OPC_CheckChild3Type, MVT::i32, ++/*386550*/ OPC_CheckChild4Integer, 1, ++/*386552*/ OPC_CheckChild4Type, MVT::i32, ++/*386554*/ OPC_MoveChild5, ++/*386555*/ OPC_CheckInteger, 1, ++/*386557*/ OPC_CheckType, MVT::i32, ++/*386559*/ OPC_MoveParent, ++/*386560*/ OPC_MoveChild6, ++/*386561*/ OPC_CheckInteger, 1, ++/*386563*/ OPC_CheckType, MVT::i32, ++/*386565*/ OPC_MoveParent, ++/*386566*/ OPC_MoveChild7, ++/*386567*/ OPC_CheckInteger, 1, ++/*386569*/ OPC_CheckType, MVT::i32, ++/*386571*/ OPC_MoveParent, ++/*386572*/ OPC_MoveChild, 8, ++/*386574*/ OPC_CheckInteger, 1, ++/*386576*/ OPC_CheckType, MVT::i32, ++/*386578*/ OPC_MoveParent, ++/*386579*/ OPC_MoveChild, 9, ++/*386581*/ OPC_CheckInteger, 1, ++/*386583*/ OPC_CheckType, MVT::i32, ++/*386585*/ OPC_MoveParent, ++/*386586*/ OPC_MoveChild, 10, ++/*386588*/ OPC_CheckInteger, 1, ++/*386590*/ OPC_CheckType, MVT::i32, ++/*386592*/ OPC_MoveParent, ++/*386593*/ OPC_MoveChild, 11, ++/*386595*/ OPC_CheckInteger, 1, ++/*386597*/ OPC_CheckType, MVT::i32, ++/*386599*/ OPC_MoveParent, ++/*386600*/ OPC_MoveChild, 12, ++/*386602*/ OPC_CheckInteger, 1, ++/*386604*/ OPC_CheckType, MVT::i32, ++/*386606*/ OPC_MoveParent, ++/*386607*/ OPC_MoveChild, 13, ++/*386609*/ OPC_CheckInteger, 1, ++/*386611*/ OPC_CheckType, MVT::i32, ++/*386613*/ OPC_MoveParent, ++/*386614*/ OPC_MoveChild, 14, ++/*386616*/ OPC_CheckInteger, 1, ++/*386618*/ OPC_CheckType, MVT::i32, ++/*386620*/ OPC_MoveParent, ++/*386621*/ OPC_MoveChild, 15, ++/*386623*/ OPC_CheckInteger, 1, ++/*386625*/ OPC_CheckType, MVT::i32, ++/*386627*/ OPC_MoveParent, ++/*386628*/ OPC_MoveParent, ++/*386629*/ OPC_MoveParent, ++/*386630*/ OPC_MoveParent, ++/*386631*/ OPC_MoveParent, ++/*386632*/ OPC_MoveChild1, ++/*386633*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*386636*/ OPC_CheckChild0Integer, 1, ++/*386638*/ OPC_CheckChild0Type, MVT::i32, ++/*386640*/ OPC_CheckChild1Integer, 1, ++/*386642*/ OPC_CheckChild1Type, MVT::i32, ++/*386644*/ OPC_CheckChild2Integer, 1, ++/*386646*/ OPC_CheckChild2Type, MVT::i32, ++/*386648*/ OPC_CheckChild3Integer, 1, ++/*386650*/ OPC_CheckChild3Type, MVT::i32, ++/*386652*/ OPC_CheckChild4Integer, 1, ++/*386654*/ OPC_CheckChild4Type, MVT::i32, ++/*386656*/ OPC_MoveChild5, ++/*386657*/ OPC_CheckInteger, 1, ++/*386659*/ OPC_CheckType, MVT::i32, ++/*386661*/ OPC_MoveParent, ++/*386662*/ OPC_MoveChild6, ++/*386663*/ OPC_CheckInteger, 1, ++/*386665*/ OPC_CheckType, MVT::i32, ++/*386667*/ OPC_MoveParent, ++/*386668*/ OPC_MoveChild7, ++/*386669*/ OPC_CheckInteger, 1, ++/*386671*/ OPC_CheckType, MVT::i32, ++/*386673*/ OPC_MoveParent, ++/*386674*/ OPC_MoveChild, 8, ++/*386676*/ OPC_CheckInteger, 1, ++/*386678*/ OPC_CheckType, MVT::i32, ++/*386680*/ OPC_MoveParent, ++/*386681*/ OPC_MoveChild, 9, ++/*386683*/ OPC_CheckInteger, 1, ++/*386685*/ OPC_CheckType, MVT::i32, ++/*386687*/ OPC_MoveParent, ++/*386688*/ OPC_MoveChild, 10, ++/*386690*/ OPC_CheckInteger, 1, ++/*386692*/ OPC_CheckType, MVT::i32, ++/*386694*/ OPC_MoveParent, ++/*386695*/ OPC_MoveChild, 11, ++/*386697*/ OPC_CheckInteger, 1, ++/*386699*/ OPC_CheckType, MVT::i32, ++/*386701*/ OPC_MoveParent, ++/*386702*/ OPC_MoveChild, 12, ++/*386704*/ OPC_CheckInteger, 1, ++/*386706*/ OPC_CheckType, MVT::i32, ++/*386708*/ OPC_MoveParent, ++/*386709*/ OPC_MoveChild, 13, ++/*386711*/ OPC_CheckInteger, 1, ++/*386713*/ OPC_CheckType, MVT::i32, ++/*386715*/ OPC_MoveParent, ++/*386716*/ OPC_MoveChild, 14, ++/*386718*/ OPC_CheckInteger, 1, ++/*386720*/ OPC_CheckType, MVT::i32, ++/*386722*/ OPC_MoveParent, ++/*386723*/ OPC_MoveChild, 15, ++/*386725*/ OPC_CheckInteger, 1, ++/*386727*/ OPC_CheckType, MVT::i32, ++/*386729*/ OPC_MoveParent, ++/*386730*/ OPC_CheckType, MVT::v16i16, ++/*386732*/ OPC_MoveParent, ++/*386733*/ OPC_CheckType, MVT::v16i16, ++/*386735*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*386737*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*386745*/ 0, /*End of Scope*/ ++/*386746*/ /*Scope*/ 18|128,13/*1682*/, /*->388430*/ ++/*386748*/ OPC_MoveChild0, ++/*386749*/ OPC_SwitchOpcode /*2 cases */, 87|128,2/*343*/, TARGET_VAL(ISD::BUILD_VECTOR),// ->387097 ++/*386754*/ OPC_CheckChild0Integer, 1, ++/*386756*/ OPC_CheckChild0Type, MVT::i32, ++/*386758*/ OPC_CheckChild1Integer, 1, ++/*386760*/ OPC_CheckChild1Type, MVT::i32, ++/*386762*/ OPC_CheckChild2Integer, 1, ++/*386764*/ OPC_CheckChild2Type, MVT::i32, ++/*386766*/ OPC_CheckChild3Integer, 1, ++/*386768*/ OPC_CheckChild3Type, MVT::i32, ++/*386770*/ OPC_CheckChild4Integer, 1, ++/*386772*/ OPC_CheckChild4Type, MVT::i32, ++/*386774*/ OPC_MoveChild5, ++/*386775*/ OPC_CheckInteger, 1, ++/*386777*/ OPC_CheckType, MVT::i32, ++/*386779*/ OPC_MoveParent, ++/*386780*/ OPC_MoveChild6, ++/*386781*/ OPC_CheckInteger, 1, ++/*386783*/ OPC_CheckType, MVT::i32, ++/*386785*/ OPC_MoveParent, ++/*386786*/ OPC_MoveChild7, ++/*386787*/ OPC_CheckInteger, 1, ++/*386789*/ OPC_CheckType, MVT::i32, ++/*386791*/ OPC_MoveParent, ++/*386792*/ OPC_MoveChild, 8, ++/*386794*/ OPC_CheckInteger, 1, ++/*386796*/ OPC_CheckType, MVT::i32, ++/*386798*/ OPC_MoveParent, ++/*386799*/ OPC_MoveChild, 9, ++/*386801*/ OPC_CheckInteger, 1, ++/*386803*/ OPC_CheckType, MVT::i32, ++/*386805*/ OPC_MoveParent, ++/*386806*/ OPC_MoveChild, 10, ++/*386808*/ OPC_CheckInteger, 1, ++/*386810*/ OPC_CheckType, MVT::i32, ++/*386812*/ OPC_MoveParent, ++/*386813*/ OPC_MoveChild, 11, ++/*386815*/ OPC_CheckInteger, 1, ++/*386817*/ OPC_CheckType, MVT::i32, ++/*386819*/ OPC_MoveParent, ++/*386820*/ OPC_MoveChild, 12, ++/*386822*/ OPC_CheckInteger, 1, ++/*386824*/ OPC_CheckType, MVT::i32, ++/*386826*/ OPC_MoveParent, ++/*386827*/ OPC_MoveChild, 13, ++/*386829*/ OPC_CheckInteger, 1, ++/*386831*/ OPC_CheckType, MVT::i32, ++/*386833*/ OPC_MoveParent, ++/*386834*/ OPC_MoveChild, 14, ++/*386836*/ OPC_CheckInteger, 1, ++/*386838*/ OPC_CheckType, MVT::i32, ++/*386840*/ OPC_MoveParent, ++/*386841*/ OPC_MoveChild, 15, ++/*386843*/ OPC_CheckInteger, 1, ++/*386845*/ OPC_CheckType, MVT::i32, ++/*386847*/ OPC_MoveParent, ++/*386848*/ OPC_MoveParent, ++/*386849*/ OPC_MoveChild1, ++/*386850*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*386853*/ OPC_Scope, 120, /*->386975*/ // 2 children in Scope ++/*386855*/ OPC_CheckChild0Same, 0, ++/*386857*/ OPC_CheckChild1Same, 1, ++/*386859*/ OPC_MoveParent, ++/*386860*/ OPC_MoveParent, ++/*386861*/ OPC_MoveParent, ++/*386862*/ OPC_MoveChild1, ++/*386863*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*386866*/ OPC_CheckChild0Integer, 1, ++/*386868*/ OPC_CheckChild0Type, MVT::i32, ++/*386870*/ OPC_CheckChild1Integer, 1, ++/*386872*/ OPC_CheckChild1Type, MVT::i32, ++/*386874*/ OPC_CheckChild2Integer, 1, ++/*386876*/ OPC_CheckChild2Type, MVT::i32, ++/*386878*/ OPC_CheckChild3Integer, 1, ++/*386880*/ OPC_CheckChild3Type, MVT::i32, ++/*386882*/ OPC_CheckChild4Integer, 1, ++/*386884*/ OPC_CheckChild4Type, MVT::i32, ++/*386886*/ OPC_MoveChild5, ++/*386887*/ OPC_CheckInteger, 1, ++/*386889*/ OPC_CheckType, MVT::i32, ++/*386891*/ OPC_MoveParent, ++/*386892*/ OPC_MoveChild6, ++/*386893*/ OPC_CheckInteger, 1, ++/*386895*/ OPC_CheckType, MVT::i32, ++/*386897*/ OPC_MoveParent, ++/*386898*/ OPC_MoveChild7, ++/*386899*/ OPC_CheckInteger, 1, ++/*386901*/ OPC_CheckType, MVT::i32, ++/*386903*/ OPC_MoveParent, ++/*386904*/ OPC_MoveChild, 8, ++/*386906*/ OPC_CheckInteger, 1, ++/*386908*/ OPC_CheckType, MVT::i32, ++/*386910*/ OPC_MoveParent, ++/*386911*/ OPC_MoveChild, 9, ++/*386913*/ OPC_CheckInteger, 1, ++/*386915*/ OPC_CheckType, MVT::i32, ++/*386917*/ OPC_MoveParent, ++/*386918*/ OPC_MoveChild, 10, ++/*386920*/ OPC_CheckInteger, 1, ++/*386922*/ OPC_CheckType, MVT::i32, ++/*386924*/ OPC_MoveParent, ++/*386925*/ OPC_MoveChild, 11, ++/*386927*/ OPC_CheckInteger, 1, ++/*386929*/ OPC_CheckType, MVT::i32, ++/*386931*/ OPC_MoveParent, ++/*386932*/ OPC_MoveChild, 12, ++/*386934*/ OPC_CheckInteger, 1, ++/*386936*/ OPC_CheckType, MVT::i32, ++/*386938*/ OPC_MoveParent, ++/*386939*/ OPC_MoveChild, 13, ++/*386941*/ OPC_CheckInteger, 1, ++/*386943*/ OPC_CheckType, MVT::i32, ++/*386945*/ OPC_MoveParent, ++/*386946*/ OPC_MoveChild, 14, ++/*386948*/ OPC_CheckInteger, 1, ++/*386950*/ OPC_CheckType, MVT::i32, ++/*386952*/ OPC_MoveParent, ++/*386953*/ OPC_MoveChild, 15, ++/*386955*/ OPC_CheckInteger, 1, ++/*386957*/ OPC_CheckType, MVT::i32, ++/*386959*/ OPC_MoveParent, ++/*386960*/ OPC_CheckType, MVT::v16i16, ++/*386962*/ OPC_MoveParent, ++/*386963*/ OPC_CheckType, MVT::v16i16, ++/*386965*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*386967*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*386975*/ /*Scope*/ 120, /*->387096*/ ++/*386976*/ OPC_CheckChild0Same, 1, ++/*386978*/ OPC_CheckChild1Same, 0, ++/*386980*/ OPC_MoveParent, ++/*386981*/ OPC_MoveParent, ++/*386982*/ OPC_MoveParent, ++/*386983*/ OPC_MoveChild1, ++/*386984*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*386987*/ OPC_CheckChild0Integer, 1, ++/*386989*/ OPC_CheckChild0Type, MVT::i32, ++/*386991*/ OPC_CheckChild1Integer, 1, ++/*386993*/ OPC_CheckChild1Type, MVT::i32, ++/*386995*/ OPC_CheckChild2Integer, 1, ++/*386997*/ OPC_CheckChild2Type, MVT::i32, ++/*386999*/ OPC_CheckChild3Integer, 1, ++/*387001*/ OPC_CheckChild3Type, MVT::i32, ++/*387003*/ OPC_CheckChild4Integer, 1, ++/*387005*/ OPC_CheckChild4Type, MVT::i32, ++/*387007*/ OPC_MoveChild5, ++/*387008*/ OPC_CheckInteger, 1, ++/*387010*/ OPC_CheckType, MVT::i32, ++/*387012*/ OPC_MoveParent, ++/*387013*/ OPC_MoveChild6, ++/*387014*/ OPC_CheckInteger, 1, ++/*387016*/ OPC_CheckType, MVT::i32, ++/*387018*/ OPC_MoveParent, ++/*387019*/ OPC_MoveChild7, ++/*387020*/ OPC_CheckInteger, 1, ++/*387022*/ OPC_CheckType, MVT::i32, ++/*387024*/ OPC_MoveParent, ++/*387025*/ OPC_MoveChild, 8, ++/*387027*/ OPC_CheckInteger, 1, ++/*387029*/ OPC_CheckType, MVT::i32, ++/*387031*/ OPC_MoveParent, ++/*387032*/ OPC_MoveChild, 9, ++/*387034*/ OPC_CheckInteger, 1, ++/*387036*/ OPC_CheckType, MVT::i32, ++/*387038*/ OPC_MoveParent, ++/*387039*/ OPC_MoveChild, 10, ++/*387041*/ OPC_CheckInteger, 1, ++/*387043*/ OPC_CheckType, MVT::i32, ++/*387045*/ OPC_MoveParent, ++/*387046*/ OPC_MoveChild, 11, ++/*387048*/ OPC_CheckInteger, 1, ++/*387050*/ OPC_CheckType, MVT::i32, ++/*387052*/ OPC_MoveParent, ++/*387053*/ OPC_MoveChild, 12, ++/*387055*/ OPC_CheckInteger, 1, ++/*387057*/ OPC_CheckType, MVT::i32, ++/*387059*/ OPC_MoveParent, ++/*387060*/ OPC_MoveChild, 13, ++/*387062*/ OPC_CheckInteger, 1, ++/*387064*/ OPC_CheckType, MVT::i32, ++/*387066*/ OPC_MoveParent, ++/*387067*/ OPC_MoveChild, 14, ++/*387069*/ OPC_CheckInteger, 1, ++/*387071*/ OPC_CheckType, MVT::i32, ++/*387073*/ OPC_MoveParent, ++/*387074*/ OPC_MoveChild, 15, ++/*387076*/ OPC_CheckInteger, 1, ++/*387078*/ OPC_CheckType, MVT::i32, ++/*387080*/ OPC_MoveParent, ++/*387081*/ OPC_CheckType, MVT::v16i16, ++/*387083*/ OPC_MoveParent, ++/*387084*/ OPC_CheckType, MVT::v16i16, ++/*387086*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*387088*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*387096*/ 0, /*End of Scope*/ ++/*387097*/ /*SwitchOpcode*/ 48|128,10/*1328*/, TARGET_VAL(ISD::ADD),// ->388429 ++/*387101*/ OPC_Scope, 91|128,1/*219*/, /*->387323*/ // 6 children in Scope ++/*387104*/ OPC_MoveChild0, ++/*387105*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*387108*/ OPC_CheckChild0Integer, 1, ++/*387110*/ OPC_CheckChild0Type, MVT::i32, ++/*387112*/ OPC_CheckChild1Integer, 1, ++/*387114*/ OPC_CheckChild1Type, MVT::i32, ++/*387116*/ OPC_CheckChild2Integer, 1, ++/*387118*/ OPC_CheckChild2Type, MVT::i32, ++/*387120*/ OPC_CheckChild3Integer, 1, ++/*387122*/ OPC_CheckChild3Type, MVT::i32, ++/*387124*/ OPC_CheckChild4Integer, 1, ++/*387126*/ OPC_CheckChild4Type, MVT::i32, ++/*387128*/ OPC_MoveChild5, ++/*387129*/ OPC_CheckInteger, 1, ++/*387131*/ OPC_CheckType, MVT::i32, ++/*387133*/ OPC_MoveParent, ++/*387134*/ OPC_MoveChild6, ++/*387135*/ OPC_CheckInteger, 1, ++/*387137*/ OPC_CheckType, MVT::i32, ++/*387139*/ OPC_MoveParent, ++/*387140*/ OPC_MoveChild7, ++/*387141*/ OPC_CheckInteger, 1, ++/*387143*/ OPC_CheckType, MVT::i32, ++/*387145*/ OPC_MoveParent, ++/*387146*/ OPC_MoveChild, 8, ++/*387148*/ OPC_CheckInteger, 1, ++/*387150*/ OPC_CheckType, MVT::i32, ++/*387152*/ OPC_MoveParent, ++/*387153*/ OPC_MoveChild, 9, ++/*387155*/ OPC_CheckInteger, 1, ++/*387157*/ OPC_CheckType, MVT::i32, ++/*387159*/ OPC_MoveParent, ++/*387160*/ OPC_MoveChild, 10, ++/*387162*/ OPC_CheckInteger, 1, ++/*387164*/ OPC_CheckType, MVT::i32, ++/*387166*/ OPC_MoveParent, ++/*387167*/ OPC_MoveChild, 11, ++/*387169*/ OPC_CheckInteger, 1, ++/*387171*/ OPC_CheckType, MVT::i32, ++/*387173*/ OPC_MoveParent, ++/*387174*/ OPC_MoveChild, 12, ++/*387176*/ OPC_CheckInteger, 1, ++/*387178*/ OPC_CheckType, MVT::i32, ++/*387180*/ OPC_MoveParent, ++/*387181*/ OPC_MoveChild, 13, ++/*387183*/ OPC_CheckInteger, 1, ++/*387185*/ OPC_CheckType, MVT::i32, ++/*387187*/ OPC_MoveParent, ++/*387188*/ OPC_MoveChild, 14, ++/*387190*/ OPC_CheckInteger, 1, ++/*387192*/ OPC_CheckType, MVT::i32, ++/*387194*/ OPC_MoveParent, ++/*387195*/ OPC_MoveChild, 15, ++/*387197*/ OPC_CheckInteger, 1, ++/*387199*/ OPC_CheckType, MVT::i32, ++/*387201*/ OPC_MoveParent, ++/*387202*/ OPC_MoveParent, ++/*387203*/ OPC_CheckChild1Same, 1, ++/*387205*/ OPC_MoveParent, ++/*387206*/ OPC_CheckChild1Same, 0, ++/*387208*/ OPC_MoveParent, ++/*387209*/ OPC_MoveParent, ++/*387210*/ OPC_MoveChild1, ++/*387211*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*387214*/ OPC_CheckChild0Integer, 1, ++/*387216*/ OPC_CheckChild0Type, MVT::i32, ++/*387218*/ OPC_CheckChild1Integer, 1, ++/*387220*/ OPC_CheckChild1Type, MVT::i32, ++/*387222*/ OPC_CheckChild2Integer, 1, ++/*387224*/ OPC_CheckChild2Type, MVT::i32, ++/*387226*/ OPC_CheckChild3Integer, 1, ++/*387228*/ OPC_CheckChild3Type, MVT::i32, ++/*387230*/ OPC_CheckChild4Integer, 1, ++/*387232*/ OPC_CheckChild4Type, MVT::i32, ++/*387234*/ OPC_MoveChild5, ++/*387235*/ OPC_CheckInteger, 1, ++/*387237*/ OPC_CheckType, MVT::i32, ++/*387239*/ OPC_MoveParent, ++/*387240*/ OPC_MoveChild6, ++/*387241*/ OPC_CheckInteger, 1, ++/*387243*/ OPC_CheckType, MVT::i32, ++/*387245*/ OPC_MoveParent, ++/*387246*/ OPC_MoveChild7, ++/*387247*/ OPC_CheckInteger, 1, ++/*387249*/ OPC_CheckType, MVT::i32, ++/*387251*/ OPC_MoveParent, ++/*387252*/ OPC_MoveChild, 8, ++/*387254*/ OPC_CheckInteger, 1, ++/*387256*/ OPC_CheckType, MVT::i32, ++/*387258*/ OPC_MoveParent, ++/*387259*/ OPC_MoveChild, 9, ++/*387261*/ OPC_CheckInteger, 1, ++/*387263*/ OPC_CheckType, MVT::i32, ++/*387265*/ OPC_MoveParent, ++/*387266*/ OPC_MoveChild, 10, ++/*387268*/ OPC_CheckInteger, 1, ++/*387270*/ OPC_CheckType, MVT::i32, ++/*387272*/ OPC_MoveParent, ++/*387273*/ OPC_MoveChild, 11, ++/*387275*/ OPC_CheckInteger, 1, ++/*387277*/ OPC_CheckType, MVT::i32, ++/*387279*/ OPC_MoveParent, ++/*387280*/ OPC_MoveChild, 12, ++/*387282*/ OPC_CheckInteger, 1, ++/*387284*/ OPC_CheckType, MVT::i32, ++/*387286*/ OPC_MoveParent, ++/*387287*/ OPC_MoveChild, 13, ++/*387289*/ OPC_CheckInteger, 1, ++/*387291*/ OPC_CheckType, MVT::i32, ++/*387293*/ OPC_MoveParent, ++/*387294*/ OPC_MoveChild, 14, ++/*387296*/ OPC_CheckInteger, 1, ++/*387298*/ OPC_CheckType, MVT::i32, ++/*387300*/ OPC_MoveParent, ++/*387301*/ OPC_MoveChild, 15, ++/*387303*/ OPC_CheckInteger, 1, ++/*387305*/ OPC_CheckType, MVT::i32, ++/*387307*/ OPC_MoveParent, ++/*387308*/ OPC_CheckType, MVT::v16i16, ++/*387310*/ OPC_MoveParent, ++/*387311*/ OPC_CheckType, MVT::v16i16, ++/*387313*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*387315*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a), LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*387323*/ /*Scope*/ 91|128,1/*219*/, /*->387544*/ ++/*387325*/ OPC_CheckChild0Same, 1, ++/*387327*/ OPC_MoveChild1, ++/*387328*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*387331*/ OPC_CheckChild0Integer, 1, ++/*387333*/ OPC_CheckChild0Type, MVT::i32, ++/*387335*/ OPC_CheckChild1Integer, 1, ++/*387337*/ OPC_CheckChild1Type, MVT::i32, ++/*387339*/ OPC_CheckChild2Integer, 1, ++/*387341*/ OPC_CheckChild2Type, MVT::i32, ++/*387343*/ OPC_CheckChild3Integer, 1, ++/*387345*/ OPC_CheckChild3Type, MVT::i32, ++/*387347*/ OPC_CheckChild4Integer, 1, ++/*387349*/ OPC_CheckChild4Type, MVT::i32, ++/*387351*/ OPC_MoveChild5, ++/*387352*/ OPC_CheckInteger, 1, ++/*387354*/ OPC_CheckType, MVT::i32, ++/*387356*/ OPC_MoveParent, ++/*387357*/ OPC_MoveChild6, ++/*387358*/ OPC_CheckInteger, 1, ++/*387360*/ OPC_CheckType, MVT::i32, ++/*387362*/ OPC_MoveParent, ++/*387363*/ OPC_MoveChild7, ++/*387364*/ OPC_CheckInteger, 1, ++/*387366*/ OPC_CheckType, MVT::i32, ++/*387368*/ OPC_MoveParent, ++/*387369*/ OPC_MoveChild, 8, ++/*387371*/ OPC_CheckInteger, 1, ++/*387373*/ OPC_CheckType, MVT::i32, ++/*387375*/ OPC_MoveParent, ++/*387376*/ OPC_MoveChild, 9, ++/*387378*/ OPC_CheckInteger, 1, ++/*387380*/ OPC_CheckType, MVT::i32, ++/*387382*/ OPC_MoveParent, ++/*387383*/ OPC_MoveChild, 10, ++/*387385*/ OPC_CheckInteger, 1, ++/*387387*/ OPC_CheckType, MVT::i32, ++/*387389*/ OPC_MoveParent, ++/*387390*/ OPC_MoveChild, 11, ++/*387392*/ OPC_CheckInteger, 1, ++/*387394*/ OPC_CheckType, MVT::i32, ++/*387396*/ OPC_MoveParent, ++/*387397*/ OPC_MoveChild, 12, ++/*387399*/ OPC_CheckInteger, 1, ++/*387401*/ OPC_CheckType, MVT::i32, ++/*387403*/ OPC_MoveParent, ++/*387404*/ OPC_MoveChild, 13, ++/*387406*/ OPC_CheckInteger, 1, ++/*387408*/ OPC_CheckType, MVT::i32, ++/*387410*/ OPC_MoveParent, ++/*387411*/ OPC_MoveChild, 14, ++/*387413*/ OPC_CheckInteger, 1, ++/*387415*/ OPC_CheckType, MVT::i32, ++/*387417*/ OPC_MoveParent, ++/*387418*/ OPC_MoveChild, 15, ++/*387420*/ OPC_CheckInteger, 1, ++/*387422*/ OPC_CheckType, MVT::i32, ++/*387424*/ OPC_MoveParent, ++/*387425*/ OPC_MoveParent, ++/*387426*/ OPC_MoveParent, ++/*387427*/ OPC_CheckChild1Same, 0, ++/*387429*/ OPC_MoveParent, ++/*387430*/ OPC_MoveParent, ++/*387431*/ OPC_MoveChild1, ++/*387432*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*387435*/ OPC_CheckChild0Integer, 1, ++/*387437*/ OPC_CheckChild0Type, MVT::i32, ++/*387439*/ OPC_CheckChild1Integer, 1, ++/*387441*/ OPC_CheckChild1Type, MVT::i32, ++/*387443*/ OPC_CheckChild2Integer, 1, ++/*387445*/ OPC_CheckChild2Type, MVT::i32, ++/*387447*/ OPC_CheckChild3Integer, 1, ++/*387449*/ OPC_CheckChild3Type, MVT::i32, ++/*387451*/ OPC_CheckChild4Integer, 1, ++/*387453*/ OPC_CheckChild4Type, MVT::i32, ++/*387455*/ OPC_MoveChild5, ++/*387456*/ OPC_CheckInteger, 1, ++/*387458*/ OPC_CheckType, MVT::i32, ++/*387460*/ OPC_MoveParent, ++/*387461*/ OPC_MoveChild6, ++/*387462*/ OPC_CheckInteger, 1, ++/*387464*/ OPC_CheckType, MVT::i32, ++/*387466*/ OPC_MoveParent, ++/*387467*/ OPC_MoveChild7, ++/*387468*/ OPC_CheckInteger, 1, ++/*387470*/ OPC_CheckType, MVT::i32, ++/*387472*/ OPC_MoveParent, ++/*387473*/ OPC_MoveChild, 8, ++/*387475*/ OPC_CheckInteger, 1, ++/*387477*/ OPC_CheckType, MVT::i32, ++/*387479*/ OPC_MoveParent, ++/*387480*/ OPC_MoveChild, 9, ++/*387482*/ OPC_CheckInteger, 1, ++/*387484*/ OPC_CheckType, MVT::i32, ++/*387486*/ OPC_MoveParent, ++/*387487*/ OPC_MoveChild, 10, ++/*387489*/ OPC_CheckInteger, 1, ++/*387491*/ OPC_CheckType, MVT::i32, ++/*387493*/ OPC_MoveParent, ++/*387494*/ OPC_MoveChild, 11, ++/*387496*/ OPC_CheckInteger, 1, ++/*387498*/ OPC_CheckType, MVT::i32, ++/*387500*/ OPC_MoveParent, ++/*387501*/ OPC_MoveChild, 12, ++/*387503*/ OPC_CheckInteger, 1, ++/*387505*/ OPC_CheckType, MVT::i32, ++/*387507*/ OPC_MoveParent, ++/*387508*/ OPC_MoveChild, 13, ++/*387510*/ OPC_CheckInteger, 1, ++/*387512*/ OPC_CheckType, MVT::i32, ++/*387514*/ OPC_MoveParent, ++/*387515*/ OPC_MoveChild, 14, ++/*387517*/ OPC_CheckInteger, 1, ++/*387519*/ OPC_CheckType, MVT::i32, ++/*387521*/ OPC_MoveParent, ++/*387522*/ OPC_MoveChild, 15, ++/*387524*/ OPC_CheckInteger, 1, ++/*387526*/ OPC_CheckType, MVT::i32, ++/*387528*/ OPC_MoveParent, ++/*387529*/ OPC_CheckType, MVT::v16i16, ++/*387531*/ OPC_MoveParent, ++/*387532*/ OPC_CheckType, MVT::v16i16, ++/*387534*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*387536*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*387544*/ /*Scope*/ 91|128,1/*219*/, /*->387765*/ ++/*387546*/ OPC_MoveChild0, ++/*387547*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*387550*/ OPC_CheckChild0Integer, 1, ++/*387552*/ OPC_CheckChild0Type, MVT::i32, ++/*387554*/ OPC_CheckChild1Integer, 1, ++/*387556*/ OPC_CheckChild1Type, MVT::i32, ++/*387558*/ OPC_CheckChild2Integer, 1, ++/*387560*/ OPC_CheckChild2Type, MVT::i32, ++/*387562*/ OPC_CheckChild3Integer, 1, ++/*387564*/ OPC_CheckChild3Type, MVT::i32, ++/*387566*/ OPC_CheckChild4Integer, 1, ++/*387568*/ OPC_CheckChild4Type, MVT::i32, ++/*387570*/ OPC_MoveChild5, ++/*387571*/ OPC_CheckInteger, 1, ++/*387573*/ OPC_CheckType, MVT::i32, ++/*387575*/ OPC_MoveParent, ++/*387576*/ OPC_MoveChild6, ++/*387577*/ OPC_CheckInteger, 1, ++/*387579*/ OPC_CheckType, MVT::i32, ++/*387581*/ OPC_MoveParent, ++/*387582*/ OPC_MoveChild7, ++/*387583*/ OPC_CheckInteger, 1, ++/*387585*/ OPC_CheckType, MVT::i32, ++/*387587*/ OPC_MoveParent, ++/*387588*/ OPC_MoveChild, 8, ++/*387590*/ OPC_CheckInteger, 1, ++/*387592*/ OPC_CheckType, MVT::i32, ++/*387594*/ OPC_MoveParent, ++/*387595*/ OPC_MoveChild, 9, ++/*387597*/ OPC_CheckInteger, 1, ++/*387599*/ OPC_CheckType, MVT::i32, ++/*387601*/ OPC_MoveParent, ++/*387602*/ OPC_MoveChild, 10, ++/*387604*/ OPC_CheckInteger, 1, ++/*387606*/ OPC_CheckType, MVT::i32, ++/*387608*/ OPC_MoveParent, ++/*387609*/ OPC_MoveChild, 11, ++/*387611*/ OPC_CheckInteger, 1, ++/*387613*/ OPC_CheckType, MVT::i32, ++/*387615*/ OPC_MoveParent, ++/*387616*/ OPC_MoveChild, 12, ++/*387618*/ OPC_CheckInteger, 1, ++/*387620*/ OPC_CheckType, MVT::i32, ++/*387622*/ OPC_MoveParent, ++/*387623*/ OPC_MoveChild, 13, ++/*387625*/ OPC_CheckInteger, 1, ++/*387627*/ OPC_CheckType, MVT::i32, ++/*387629*/ OPC_MoveParent, ++/*387630*/ OPC_MoveChild, 14, ++/*387632*/ OPC_CheckInteger, 1, ++/*387634*/ OPC_CheckType, MVT::i32, ++/*387636*/ OPC_MoveParent, ++/*387637*/ OPC_MoveChild, 15, ++/*387639*/ OPC_CheckInteger, 1, ++/*387641*/ OPC_CheckType, MVT::i32, ++/*387643*/ OPC_MoveParent, ++/*387644*/ OPC_MoveParent, ++/*387645*/ OPC_CheckChild1Same, 0, ++/*387647*/ OPC_MoveParent, ++/*387648*/ OPC_CheckChild1Same, 1, ++/*387650*/ OPC_MoveParent, ++/*387651*/ OPC_MoveParent, ++/*387652*/ OPC_MoveChild1, ++/*387653*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*387656*/ OPC_CheckChild0Integer, 1, ++/*387658*/ OPC_CheckChild0Type, MVT::i32, ++/*387660*/ OPC_CheckChild1Integer, 1, ++/*387662*/ OPC_CheckChild1Type, MVT::i32, ++/*387664*/ OPC_CheckChild2Integer, 1, ++/*387666*/ OPC_CheckChild2Type, MVT::i32, ++/*387668*/ OPC_CheckChild3Integer, 1, ++/*387670*/ OPC_CheckChild3Type, MVT::i32, ++/*387672*/ OPC_CheckChild4Integer, 1, ++/*387674*/ OPC_CheckChild4Type, MVT::i32, ++/*387676*/ OPC_MoveChild5, ++/*387677*/ OPC_CheckInteger, 1, ++/*387679*/ OPC_CheckType, MVT::i32, ++/*387681*/ OPC_MoveParent, ++/*387682*/ OPC_MoveChild6, ++/*387683*/ OPC_CheckInteger, 1, ++/*387685*/ OPC_CheckType, MVT::i32, ++/*387687*/ OPC_MoveParent, ++/*387688*/ OPC_MoveChild7, ++/*387689*/ OPC_CheckInteger, 1, ++/*387691*/ OPC_CheckType, MVT::i32, ++/*387693*/ OPC_MoveParent, ++/*387694*/ OPC_MoveChild, 8, ++/*387696*/ OPC_CheckInteger, 1, ++/*387698*/ OPC_CheckType, MVT::i32, ++/*387700*/ OPC_MoveParent, ++/*387701*/ OPC_MoveChild, 9, ++/*387703*/ OPC_CheckInteger, 1, ++/*387705*/ OPC_CheckType, MVT::i32, ++/*387707*/ OPC_MoveParent, ++/*387708*/ OPC_MoveChild, 10, ++/*387710*/ OPC_CheckInteger, 1, ++/*387712*/ OPC_CheckType, MVT::i32, ++/*387714*/ OPC_MoveParent, ++/*387715*/ OPC_MoveChild, 11, ++/*387717*/ OPC_CheckInteger, 1, ++/*387719*/ OPC_CheckType, MVT::i32, ++/*387721*/ OPC_MoveParent, ++/*387722*/ OPC_MoveChild, 12, ++/*387724*/ OPC_CheckInteger, 1, ++/*387726*/ OPC_CheckType, MVT::i32, ++/*387728*/ OPC_MoveParent, ++/*387729*/ OPC_MoveChild, 13, ++/*387731*/ OPC_CheckInteger, 1, ++/*387733*/ OPC_CheckType, MVT::i32, ++/*387735*/ OPC_MoveParent, ++/*387736*/ OPC_MoveChild, 14, ++/*387738*/ OPC_CheckInteger, 1, ++/*387740*/ OPC_CheckType, MVT::i32, ++/*387742*/ OPC_MoveParent, ++/*387743*/ OPC_MoveChild, 15, ++/*387745*/ OPC_CheckInteger, 1, ++/*387747*/ OPC_CheckType, MVT::i32, ++/*387749*/ OPC_MoveParent, ++/*387750*/ OPC_CheckType, MVT::v16i16, ++/*387752*/ OPC_MoveParent, ++/*387753*/ OPC_CheckType, MVT::v16i16, ++/*387755*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*387757*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b), LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*387765*/ /*Scope*/ 91|128,1/*219*/, /*->387986*/ ++/*387767*/ OPC_CheckChild0Same, 0, ++/*387769*/ OPC_MoveChild1, ++/*387770*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*387773*/ OPC_CheckChild0Integer, 1, ++/*387775*/ OPC_CheckChild0Type, MVT::i32, ++/*387777*/ OPC_CheckChild1Integer, 1, ++/*387779*/ OPC_CheckChild1Type, MVT::i32, ++/*387781*/ OPC_CheckChild2Integer, 1, ++/*387783*/ OPC_CheckChild2Type, MVT::i32, ++/*387785*/ OPC_CheckChild3Integer, 1, ++/*387787*/ OPC_CheckChild3Type, MVT::i32, ++/*387789*/ OPC_CheckChild4Integer, 1, ++/*387791*/ OPC_CheckChild4Type, MVT::i32, ++/*387793*/ OPC_MoveChild5, ++/*387794*/ OPC_CheckInteger, 1, ++/*387796*/ OPC_CheckType, MVT::i32, ++/*387798*/ OPC_MoveParent, ++/*387799*/ OPC_MoveChild6, ++/*387800*/ OPC_CheckInteger, 1, ++/*387802*/ OPC_CheckType, MVT::i32, ++/*387804*/ OPC_MoveParent, ++/*387805*/ OPC_MoveChild7, ++/*387806*/ OPC_CheckInteger, 1, ++/*387808*/ OPC_CheckType, MVT::i32, ++/*387810*/ OPC_MoveParent, ++/*387811*/ OPC_MoveChild, 8, ++/*387813*/ OPC_CheckInteger, 1, ++/*387815*/ OPC_CheckType, MVT::i32, ++/*387817*/ OPC_MoveParent, ++/*387818*/ OPC_MoveChild, 9, ++/*387820*/ OPC_CheckInteger, 1, ++/*387822*/ OPC_CheckType, MVT::i32, ++/*387824*/ OPC_MoveParent, ++/*387825*/ OPC_MoveChild, 10, ++/*387827*/ OPC_CheckInteger, 1, ++/*387829*/ OPC_CheckType, MVT::i32, ++/*387831*/ OPC_MoveParent, ++/*387832*/ OPC_MoveChild, 11, ++/*387834*/ OPC_CheckInteger, 1, ++/*387836*/ OPC_CheckType, MVT::i32, ++/*387838*/ OPC_MoveParent, ++/*387839*/ OPC_MoveChild, 12, ++/*387841*/ OPC_CheckInteger, 1, ++/*387843*/ OPC_CheckType, MVT::i32, ++/*387845*/ OPC_MoveParent, ++/*387846*/ OPC_MoveChild, 13, ++/*387848*/ OPC_CheckInteger, 1, ++/*387850*/ OPC_CheckType, MVT::i32, ++/*387852*/ OPC_MoveParent, ++/*387853*/ OPC_MoveChild, 14, ++/*387855*/ OPC_CheckInteger, 1, ++/*387857*/ OPC_CheckType, MVT::i32, ++/*387859*/ OPC_MoveParent, ++/*387860*/ OPC_MoveChild, 15, ++/*387862*/ OPC_CheckInteger, 1, ++/*387864*/ OPC_CheckType, MVT::i32, ++/*387866*/ OPC_MoveParent, ++/*387867*/ OPC_MoveParent, ++/*387868*/ OPC_MoveParent, ++/*387869*/ OPC_CheckChild1Same, 1, ++/*387871*/ OPC_MoveParent, ++/*387872*/ OPC_MoveParent, ++/*387873*/ OPC_MoveChild1, ++/*387874*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*387877*/ OPC_CheckChild0Integer, 1, ++/*387879*/ OPC_CheckChild0Type, MVT::i32, ++/*387881*/ OPC_CheckChild1Integer, 1, ++/*387883*/ OPC_CheckChild1Type, MVT::i32, ++/*387885*/ OPC_CheckChild2Integer, 1, ++/*387887*/ OPC_CheckChild2Type, MVT::i32, ++/*387889*/ OPC_CheckChild3Integer, 1, ++/*387891*/ OPC_CheckChild3Type, MVT::i32, ++/*387893*/ OPC_CheckChild4Integer, 1, ++/*387895*/ OPC_CheckChild4Type, MVT::i32, ++/*387897*/ OPC_MoveChild5, ++/*387898*/ OPC_CheckInteger, 1, ++/*387900*/ OPC_CheckType, MVT::i32, ++/*387902*/ OPC_MoveParent, ++/*387903*/ OPC_MoveChild6, ++/*387904*/ OPC_CheckInteger, 1, ++/*387906*/ OPC_CheckType, MVT::i32, ++/*387908*/ OPC_MoveParent, ++/*387909*/ OPC_MoveChild7, ++/*387910*/ OPC_CheckInteger, 1, ++/*387912*/ OPC_CheckType, MVT::i32, ++/*387914*/ OPC_MoveParent, ++/*387915*/ OPC_MoveChild, 8, ++/*387917*/ OPC_CheckInteger, 1, ++/*387919*/ OPC_CheckType, MVT::i32, ++/*387921*/ OPC_MoveParent, ++/*387922*/ OPC_MoveChild, 9, ++/*387924*/ OPC_CheckInteger, 1, ++/*387926*/ OPC_CheckType, MVT::i32, ++/*387928*/ OPC_MoveParent, ++/*387929*/ OPC_MoveChild, 10, ++/*387931*/ OPC_CheckInteger, 1, ++/*387933*/ OPC_CheckType, MVT::i32, ++/*387935*/ OPC_MoveParent, ++/*387936*/ OPC_MoveChild, 11, ++/*387938*/ OPC_CheckInteger, 1, ++/*387940*/ OPC_CheckType, MVT::i32, ++/*387942*/ OPC_MoveParent, ++/*387943*/ OPC_MoveChild, 12, ++/*387945*/ OPC_CheckInteger, 1, ++/*387947*/ OPC_CheckType, MVT::i32, ++/*387949*/ OPC_MoveParent, ++/*387950*/ OPC_MoveChild, 13, ++/*387952*/ OPC_CheckInteger, 1, ++/*387954*/ OPC_CheckType, MVT::i32, ++/*387956*/ OPC_MoveParent, ++/*387957*/ OPC_MoveChild, 14, ++/*387959*/ OPC_CheckInteger, 1, ++/*387961*/ OPC_CheckType, MVT::i32, ++/*387963*/ OPC_MoveParent, ++/*387964*/ OPC_MoveChild, 15, ++/*387966*/ OPC_CheckInteger, 1, ++/*387968*/ OPC_CheckType, MVT::i32, ++/*387970*/ OPC_MoveParent, ++/*387971*/ OPC_CheckType, MVT::v16i16, ++/*387973*/ OPC_MoveParent, ++/*387974*/ OPC_CheckType, MVT::v16i16, ++/*387976*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*387978*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*387986*/ /*Scope*/ 91|128,1/*219*/, /*->388207*/ ++/*387988*/ OPC_CheckChild0Same, 1, ++/*387990*/ OPC_CheckChild1Same, 0, ++/*387992*/ OPC_MoveParent, ++/*387993*/ OPC_MoveChild1, ++/*387994*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*387997*/ OPC_CheckChild0Integer, 1, ++/*387999*/ OPC_CheckChild0Type, MVT::i32, ++/*388001*/ OPC_CheckChild1Integer, 1, ++/*388003*/ OPC_CheckChild1Type, MVT::i32, ++/*388005*/ OPC_CheckChild2Integer, 1, ++/*388007*/ OPC_CheckChild2Type, MVT::i32, ++/*388009*/ OPC_CheckChild3Integer, 1, ++/*388011*/ OPC_CheckChild3Type, MVT::i32, ++/*388013*/ OPC_CheckChild4Integer, 1, ++/*388015*/ OPC_CheckChild4Type, MVT::i32, ++/*388017*/ OPC_MoveChild5, ++/*388018*/ OPC_CheckInteger, 1, ++/*388020*/ OPC_CheckType, MVT::i32, ++/*388022*/ OPC_MoveParent, ++/*388023*/ OPC_MoveChild6, ++/*388024*/ OPC_CheckInteger, 1, ++/*388026*/ OPC_CheckType, MVT::i32, ++/*388028*/ OPC_MoveParent, ++/*388029*/ OPC_MoveChild7, ++/*388030*/ OPC_CheckInteger, 1, ++/*388032*/ OPC_CheckType, MVT::i32, ++/*388034*/ OPC_MoveParent, ++/*388035*/ OPC_MoveChild, 8, ++/*388037*/ OPC_CheckInteger, 1, ++/*388039*/ OPC_CheckType, MVT::i32, ++/*388041*/ OPC_MoveParent, ++/*388042*/ OPC_MoveChild, 9, ++/*388044*/ OPC_CheckInteger, 1, ++/*388046*/ OPC_CheckType, MVT::i32, ++/*388048*/ OPC_MoveParent, ++/*388049*/ OPC_MoveChild, 10, ++/*388051*/ OPC_CheckInteger, 1, ++/*388053*/ OPC_CheckType, MVT::i32, ++/*388055*/ OPC_MoveParent, ++/*388056*/ OPC_MoveChild, 11, ++/*388058*/ OPC_CheckInteger, 1, ++/*388060*/ OPC_CheckType, MVT::i32, ++/*388062*/ OPC_MoveParent, ++/*388063*/ OPC_MoveChild, 12, ++/*388065*/ OPC_CheckInteger, 1, ++/*388067*/ OPC_CheckType, MVT::i32, ++/*388069*/ OPC_MoveParent, ++/*388070*/ OPC_MoveChild, 13, ++/*388072*/ OPC_CheckInteger, 1, ++/*388074*/ OPC_CheckType, MVT::i32, ++/*388076*/ OPC_MoveParent, ++/*388077*/ OPC_MoveChild, 14, ++/*388079*/ OPC_CheckInteger, 1, ++/*388081*/ OPC_CheckType, MVT::i32, ++/*388083*/ OPC_MoveParent, ++/*388084*/ OPC_MoveChild, 15, ++/*388086*/ OPC_CheckInteger, 1, ++/*388088*/ OPC_CheckType, MVT::i32, ++/*388090*/ OPC_MoveParent, ++/*388091*/ OPC_MoveParent, ++/*388092*/ OPC_MoveParent, ++/*388093*/ OPC_MoveParent, ++/*388094*/ OPC_MoveChild1, ++/*388095*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*388098*/ OPC_CheckChild0Integer, 1, ++/*388100*/ OPC_CheckChild0Type, MVT::i32, ++/*388102*/ OPC_CheckChild1Integer, 1, ++/*388104*/ OPC_CheckChild1Type, MVT::i32, ++/*388106*/ OPC_CheckChild2Integer, 1, ++/*388108*/ OPC_CheckChild2Type, MVT::i32, ++/*388110*/ OPC_CheckChild3Integer, 1, ++/*388112*/ OPC_CheckChild3Type, MVT::i32, ++/*388114*/ OPC_CheckChild4Integer, 1, ++/*388116*/ OPC_CheckChild4Type, MVT::i32, ++/*388118*/ OPC_MoveChild5, ++/*388119*/ OPC_CheckInteger, 1, ++/*388121*/ OPC_CheckType, MVT::i32, ++/*388123*/ OPC_MoveParent, ++/*388124*/ OPC_MoveChild6, ++/*388125*/ OPC_CheckInteger, 1, ++/*388127*/ OPC_CheckType, MVT::i32, ++/*388129*/ OPC_MoveParent, ++/*388130*/ OPC_MoveChild7, ++/*388131*/ OPC_CheckInteger, 1, ++/*388133*/ OPC_CheckType, MVT::i32, ++/*388135*/ OPC_MoveParent, ++/*388136*/ OPC_MoveChild, 8, ++/*388138*/ OPC_CheckInteger, 1, ++/*388140*/ OPC_CheckType, MVT::i32, ++/*388142*/ OPC_MoveParent, ++/*388143*/ OPC_MoveChild, 9, ++/*388145*/ OPC_CheckInteger, 1, ++/*388147*/ OPC_CheckType, MVT::i32, ++/*388149*/ OPC_MoveParent, ++/*388150*/ OPC_MoveChild, 10, ++/*388152*/ OPC_CheckInteger, 1, ++/*388154*/ OPC_CheckType, MVT::i32, ++/*388156*/ OPC_MoveParent, ++/*388157*/ OPC_MoveChild, 11, ++/*388159*/ OPC_CheckInteger, 1, ++/*388161*/ OPC_CheckType, MVT::i32, ++/*388163*/ OPC_MoveParent, ++/*388164*/ OPC_MoveChild, 12, ++/*388166*/ OPC_CheckInteger, 1, ++/*388168*/ OPC_CheckType, MVT::i32, ++/*388170*/ OPC_MoveParent, ++/*388171*/ OPC_MoveChild, 13, ++/*388173*/ OPC_CheckInteger, 1, ++/*388175*/ OPC_CheckType, MVT::i32, ++/*388177*/ OPC_MoveParent, ++/*388178*/ OPC_MoveChild, 14, ++/*388180*/ OPC_CheckInteger, 1, ++/*388182*/ OPC_CheckType, MVT::i32, ++/*388184*/ OPC_MoveParent, ++/*388185*/ OPC_MoveChild, 15, ++/*388187*/ OPC_CheckInteger, 1, ++/*388189*/ OPC_CheckType, MVT::i32, ++/*388191*/ OPC_MoveParent, ++/*388192*/ OPC_CheckType, MVT::v16i16, ++/*388194*/ OPC_MoveParent, ++/*388195*/ OPC_CheckType, MVT::v16i16, ++/*388197*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*388199*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*388207*/ /*Scope*/ 91|128,1/*219*/, /*->388428*/ ++/*388209*/ OPC_CheckChild0Same, 0, ++/*388211*/ OPC_CheckChild1Same, 1, ++/*388213*/ OPC_MoveParent, ++/*388214*/ OPC_MoveChild1, ++/*388215*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*388218*/ OPC_CheckChild0Integer, 1, ++/*388220*/ OPC_CheckChild0Type, MVT::i32, ++/*388222*/ OPC_CheckChild1Integer, 1, ++/*388224*/ OPC_CheckChild1Type, MVT::i32, ++/*388226*/ OPC_CheckChild2Integer, 1, ++/*388228*/ OPC_CheckChild2Type, MVT::i32, ++/*388230*/ OPC_CheckChild3Integer, 1, ++/*388232*/ OPC_CheckChild3Type, MVT::i32, ++/*388234*/ OPC_CheckChild4Integer, 1, ++/*388236*/ OPC_CheckChild4Type, MVT::i32, ++/*388238*/ OPC_MoveChild5, ++/*388239*/ OPC_CheckInteger, 1, ++/*388241*/ OPC_CheckType, MVT::i32, ++/*388243*/ OPC_MoveParent, ++/*388244*/ OPC_MoveChild6, ++/*388245*/ OPC_CheckInteger, 1, ++/*388247*/ OPC_CheckType, MVT::i32, ++/*388249*/ OPC_MoveParent, ++/*388250*/ OPC_MoveChild7, ++/*388251*/ OPC_CheckInteger, 1, ++/*388253*/ OPC_CheckType, MVT::i32, ++/*388255*/ OPC_MoveParent, ++/*388256*/ OPC_MoveChild, 8, ++/*388258*/ OPC_CheckInteger, 1, ++/*388260*/ OPC_CheckType, MVT::i32, ++/*388262*/ OPC_MoveParent, ++/*388263*/ OPC_MoveChild, 9, ++/*388265*/ OPC_CheckInteger, 1, ++/*388267*/ OPC_CheckType, MVT::i32, ++/*388269*/ OPC_MoveParent, ++/*388270*/ OPC_MoveChild, 10, ++/*388272*/ OPC_CheckInteger, 1, ++/*388274*/ OPC_CheckType, MVT::i32, ++/*388276*/ OPC_MoveParent, ++/*388277*/ OPC_MoveChild, 11, ++/*388279*/ OPC_CheckInteger, 1, ++/*388281*/ OPC_CheckType, MVT::i32, ++/*388283*/ OPC_MoveParent, ++/*388284*/ OPC_MoveChild, 12, ++/*388286*/ OPC_CheckInteger, 1, ++/*388288*/ OPC_CheckType, MVT::i32, ++/*388290*/ OPC_MoveParent, ++/*388291*/ OPC_MoveChild, 13, ++/*388293*/ OPC_CheckInteger, 1, ++/*388295*/ OPC_CheckType, MVT::i32, ++/*388297*/ OPC_MoveParent, ++/*388298*/ OPC_MoveChild, 14, ++/*388300*/ OPC_CheckInteger, 1, ++/*388302*/ OPC_CheckType, MVT::i32, ++/*388304*/ OPC_MoveParent, ++/*388305*/ OPC_MoveChild, 15, ++/*388307*/ OPC_CheckInteger, 1, ++/*388309*/ OPC_CheckType, MVT::i32, ++/*388311*/ OPC_MoveParent, ++/*388312*/ OPC_MoveParent, ++/*388313*/ OPC_MoveParent, ++/*388314*/ OPC_MoveParent, ++/*388315*/ OPC_MoveChild1, ++/*388316*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*388319*/ OPC_CheckChild0Integer, 1, ++/*388321*/ OPC_CheckChild0Type, MVT::i32, ++/*388323*/ OPC_CheckChild1Integer, 1, ++/*388325*/ OPC_CheckChild1Type, MVT::i32, ++/*388327*/ OPC_CheckChild2Integer, 1, ++/*388329*/ OPC_CheckChild2Type, MVT::i32, ++/*388331*/ OPC_CheckChild3Integer, 1, ++/*388333*/ OPC_CheckChild3Type, MVT::i32, ++/*388335*/ OPC_CheckChild4Integer, 1, ++/*388337*/ OPC_CheckChild4Type, MVT::i32, ++/*388339*/ OPC_MoveChild5, ++/*388340*/ OPC_CheckInteger, 1, ++/*388342*/ OPC_CheckType, MVT::i32, ++/*388344*/ OPC_MoveParent, ++/*388345*/ OPC_MoveChild6, ++/*388346*/ OPC_CheckInteger, 1, ++/*388348*/ OPC_CheckType, MVT::i32, ++/*388350*/ OPC_MoveParent, ++/*388351*/ OPC_MoveChild7, ++/*388352*/ OPC_CheckInteger, 1, ++/*388354*/ OPC_CheckType, MVT::i32, ++/*388356*/ OPC_MoveParent, ++/*388357*/ OPC_MoveChild, 8, ++/*388359*/ OPC_CheckInteger, 1, ++/*388361*/ OPC_CheckType, MVT::i32, ++/*388363*/ OPC_MoveParent, ++/*388364*/ OPC_MoveChild, 9, ++/*388366*/ OPC_CheckInteger, 1, ++/*388368*/ OPC_CheckType, MVT::i32, ++/*388370*/ OPC_MoveParent, ++/*388371*/ OPC_MoveChild, 10, ++/*388373*/ OPC_CheckInteger, 1, ++/*388375*/ OPC_CheckType, MVT::i32, ++/*388377*/ OPC_MoveParent, ++/*388378*/ OPC_MoveChild, 11, ++/*388380*/ OPC_CheckInteger, 1, ++/*388382*/ OPC_CheckType, MVT::i32, ++/*388384*/ OPC_MoveParent, ++/*388385*/ OPC_MoveChild, 12, ++/*388387*/ OPC_CheckInteger, 1, ++/*388389*/ OPC_CheckType, MVT::i32, ++/*388391*/ OPC_MoveParent, ++/*388392*/ OPC_MoveChild, 13, ++/*388394*/ OPC_CheckInteger, 1, ++/*388396*/ OPC_CheckType, MVT::i32, ++/*388398*/ OPC_MoveParent, ++/*388399*/ OPC_MoveChild, 14, ++/*388401*/ OPC_CheckInteger, 1, ++/*388403*/ OPC_CheckType, MVT::i32, ++/*388405*/ OPC_MoveParent, ++/*388406*/ OPC_MoveChild, 15, ++/*388408*/ OPC_CheckInteger, 1, ++/*388410*/ OPC_CheckType, MVT::i32, ++/*388412*/ OPC_MoveParent, ++/*388413*/ OPC_CheckType, MVT::v16i16, ++/*388415*/ OPC_MoveParent, ++/*388416*/ OPC_CheckType, MVT::v16i16, ++/*388418*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*388420*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*388428*/ 0, /*End of Scope*/ ++/*388429*/ 0, // EndSwitchOpcode ++/*388430*/ /*Scope*/ 62|128,3/*446*/, /*->388878*/ ++/*388432*/ OPC_CheckChild0Same, 0, ++/*388434*/ OPC_MoveChild1, ++/*388435*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*388438*/ OPC_Scope, 89|128,1/*217*/, /*->388658*/ // 2 children in Scope ++/*388441*/ OPC_MoveChild0, ++/*388442*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*388445*/ OPC_CheckChild0Integer, 1, ++/*388447*/ OPC_CheckChild0Type, MVT::i32, ++/*388449*/ OPC_CheckChild1Integer, 1, ++/*388451*/ OPC_CheckChild1Type, MVT::i32, ++/*388453*/ OPC_CheckChild2Integer, 1, ++/*388455*/ OPC_CheckChild2Type, MVT::i32, ++/*388457*/ OPC_CheckChild3Integer, 1, ++/*388459*/ OPC_CheckChild3Type, MVT::i32, ++/*388461*/ OPC_CheckChild4Integer, 1, ++/*388463*/ OPC_CheckChild4Type, MVT::i32, ++/*388465*/ OPC_MoveChild5, ++/*388466*/ OPC_CheckInteger, 1, ++/*388468*/ OPC_CheckType, MVT::i32, ++/*388470*/ OPC_MoveParent, ++/*388471*/ OPC_MoveChild6, ++/*388472*/ OPC_CheckInteger, 1, ++/*388474*/ OPC_CheckType, MVT::i32, ++/*388476*/ OPC_MoveParent, ++/*388477*/ OPC_MoveChild7, ++/*388478*/ OPC_CheckInteger, 1, ++/*388480*/ OPC_CheckType, MVT::i32, ++/*388482*/ OPC_MoveParent, ++/*388483*/ OPC_MoveChild, 8, ++/*388485*/ OPC_CheckInteger, 1, ++/*388487*/ OPC_CheckType, MVT::i32, ++/*388489*/ OPC_MoveParent, ++/*388490*/ OPC_MoveChild, 9, ++/*388492*/ OPC_CheckInteger, 1, ++/*388494*/ OPC_CheckType, MVT::i32, ++/*388496*/ OPC_MoveParent, ++/*388497*/ OPC_MoveChild, 10, ++/*388499*/ OPC_CheckInteger, 1, ++/*388501*/ OPC_CheckType, MVT::i32, ++/*388503*/ OPC_MoveParent, ++/*388504*/ OPC_MoveChild, 11, ++/*388506*/ OPC_CheckInteger, 1, ++/*388508*/ OPC_CheckType, MVT::i32, ++/*388510*/ OPC_MoveParent, ++/*388511*/ OPC_MoveChild, 12, ++/*388513*/ OPC_CheckInteger, 1, ++/*388515*/ OPC_CheckType, MVT::i32, ++/*388517*/ OPC_MoveParent, ++/*388518*/ OPC_MoveChild, 13, ++/*388520*/ OPC_CheckInteger, 1, ++/*388522*/ OPC_CheckType, MVT::i32, ++/*388524*/ OPC_MoveParent, ++/*388525*/ OPC_MoveChild, 14, ++/*388527*/ OPC_CheckInteger, 1, ++/*388529*/ OPC_CheckType, MVT::i32, ++/*388531*/ OPC_MoveParent, ++/*388532*/ OPC_MoveChild, 15, ++/*388534*/ OPC_CheckInteger, 1, ++/*388536*/ OPC_CheckType, MVT::i32, ++/*388538*/ OPC_MoveParent, ++/*388539*/ OPC_MoveParent, ++/*388540*/ OPC_CheckChild1Same, 1, ++/*388542*/ OPC_MoveParent, ++/*388543*/ OPC_MoveParent, ++/*388544*/ OPC_MoveParent, ++/*388545*/ OPC_MoveChild1, ++/*388546*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*388549*/ OPC_CheckChild0Integer, 1, ++/*388551*/ OPC_CheckChild0Type, MVT::i32, ++/*388553*/ OPC_CheckChild1Integer, 1, ++/*388555*/ OPC_CheckChild1Type, MVT::i32, ++/*388557*/ OPC_CheckChild2Integer, 1, ++/*388559*/ OPC_CheckChild2Type, MVT::i32, ++/*388561*/ OPC_CheckChild3Integer, 1, ++/*388563*/ OPC_CheckChild3Type, MVT::i32, ++/*388565*/ OPC_CheckChild4Integer, 1, ++/*388567*/ OPC_CheckChild4Type, MVT::i32, ++/*388569*/ OPC_MoveChild5, ++/*388570*/ OPC_CheckInteger, 1, ++/*388572*/ OPC_CheckType, MVT::i32, ++/*388574*/ OPC_MoveParent, ++/*388575*/ OPC_MoveChild6, ++/*388576*/ OPC_CheckInteger, 1, ++/*388578*/ OPC_CheckType, MVT::i32, ++/*388580*/ OPC_MoveParent, ++/*388581*/ OPC_MoveChild7, ++/*388582*/ OPC_CheckInteger, 1, ++/*388584*/ OPC_CheckType, MVT::i32, ++/*388586*/ OPC_MoveParent, ++/*388587*/ OPC_MoveChild, 8, ++/*388589*/ OPC_CheckInteger, 1, ++/*388591*/ OPC_CheckType, MVT::i32, ++/*388593*/ OPC_MoveParent, ++/*388594*/ OPC_MoveChild, 9, ++/*388596*/ OPC_CheckInteger, 1, ++/*388598*/ OPC_CheckType, MVT::i32, ++/*388600*/ OPC_MoveParent, ++/*388601*/ OPC_MoveChild, 10, ++/*388603*/ OPC_CheckInteger, 1, ++/*388605*/ OPC_CheckType, MVT::i32, ++/*388607*/ OPC_MoveParent, ++/*388608*/ OPC_MoveChild, 11, ++/*388610*/ OPC_CheckInteger, 1, ++/*388612*/ OPC_CheckType, MVT::i32, ++/*388614*/ OPC_MoveParent, ++/*388615*/ OPC_MoveChild, 12, ++/*388617*/ OPC_CheckInteger, 1, ++/*388619*/ OPC_CheckType, MVT::i32, ++/*388621*/ OPC_MoveParent, ++/*388622*/ OPC_MoveChild, 13, ++/*388624*/ OPC_CheckInteger, 1, ++/*388626*/ OPC_CheckType, MVT::i32, ++/*388628*/ OPC_MoveParent, ++/*388629*/ OPC_MoveChild, 14, ++/*388631*/ OPC_CheckInteger, 1, ++/*388633*/ OPC_CheckType, MVT::i32, ++/*388635*/ OPC_MoveParent, ++/*388636*/ OPC_MoveChild, 15, ++/*388638*/ OPC_CheckInteger, 1, ++/*388640*/ OPC_CheckType, MVT::i32, ++/*388642*/ OPC_MoveParent, ++/*388643*/ OPC_CheckType, MVT::v16i16, ++/*388645*/ OPC_MoveParent, ++/*388646*/ OPC_CheckType, MVT::v16i16, ++/*388648*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*388650*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*388658*/ /*Scope*/ 89|128,1/*217*/, /*->388877*/ ++/*388660*/ OPC_CheckChild0Same, 1, ++/*388662*/ OPC_MoveChild1, ++/*388663*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*388666*/ OPC_CheckChild0Integer, 1, ++/*388668*/ OPC_CheckChild0Type, MVT::i32, ++/*388670*/ OPC_CheckChild1Integer, 1, ++/*388672*/ OPC_CheckChild1Type, MVT::i32, ++/*388674*/ OPC_CheckChild2Integer, 1, ++/*388676*/ OPC_CheckChild2Type, MVT::i32, ++/*388678*/ OPC_CheckChild3Integer, 1, ++/*388680*/ OPC_CheckChild3Type, MVT::i32, ++/*388682*/ OPC_CheckChild4Integer, 1, ++/*388684*/ OPC_CheckChild4Type, MVT::i32, ++/*388686*/ OPC_MoveChild5, ++/*388687*/ OPC_CheckInteger, 1, ++/*388689*/ OPC_CheckType, MVT::i32, ++/*388691*/ OPC_MoveParent, ++/*388692*/ OPC_MoveChild6, ++/*388693*/ OPC_CheckInteger, 1, ++/*388695*/ OPC_CheckType, MVT::i32, ++/*388697*/ OPC_MoveParent, ++/*388698*/ OPC_MoveChild7, ++/*388699*/ OPC_CheckInteger, 1, ++/*388701*/ OPC_CheckType, MVT::i32, ++/*388703*/ OPC_MoveParent, ++/*388704*/ OPC_MoveChild, 8, ++/*388706*/ OPC_CheckInteger, 1, ++/*388708*/ OPC_CheckType, MVT::i32, ++/*388710*/ OPC_MoveParent, ++/*388711*/ OPC_MoveChild, 9, ++/*388713*/ OPC_CheckInteger, 1, ++/*388715*/ OPC_CheckType, MVT::i32, ++/*388717*/ OPC_MoveParent, ++/*388718*/ OPC_MoveChild, 10, ++/*388720*/ OPC_CheckInteger, 1, ++/*388722*/ OPC_CheckType, MVT::i32, ++/*388724*/ OPC_MoveParent, ++/*388725*/ OPC_MoveChild, 11, ++/*388727*/ OPC_CheckInteger, 1, ++/*388729*/ OPC_CheckType, MVT::i32, ++/*388731*/ OPC_MoveParent, ++/*388732*/ OPC_MoveChild, 12, ++/*388734*/ OPC_CheckInteger, 1, ++/*388736*/ OPC_CheckType, MVT::i32, ++/*388738*/ OPC_MoveParent, ++/*388739*/ OPC_MoveChild, 13, ++/*388741*/ OPC_CheckInteger, 1, ++/*388743*/ OPC_CheckType, MVT::i32, ++/*388745*/ OPC_MoveParent, ++/*388746*/ OPC_MoveChild, 14, ++/*388748*/ OPC_CheckInteger, 1, ++/*388750*/ OPC_CheckType, MVT::i32, ++/*388752*/ OPC_MoveParent, ++/*388753*/ OPC_MoveChild, 15, ++/*388755*/ OPC_CheckInteger, 1, ++/*388757*/ OPC_CheckType, MVT::i32, ++/*388759*/ OPC_MoveParent, ++/*388760*/ OPC_MoveParent, ++/*388761*/ OPC_MoveParent, ++/*388762*/ OPC_MoveParent, ++/*388763*/ OPC_MoveParent, ++/*388764*/ OPC_MoveChild1, ++/*388765*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*388768*/ OPC_CheckChild0Integer, 1, ++/*388770*/ OPC_CheckChild0Type, MVT::i32, ++/*388772*/ OPC_CheckChild1Integer, 1, ++/*388774*/ OPC_CheckChild1Type, MVT::i32, ++/*388776*/ OPC_CheckChild2Integer, 1, ++/*388778*/ OPC_CheckChild2Type, MVT::i32, ++/*388780*/ OPC_CheckChild3Integer, 1, ++/*388782*/ OPC_CheckChild3Type, MVT::i32, ++/*388784*/ OPC_CheckChild4Integer, 1, ++/*388786*/ OPC_CheckChild4Type, MVT::i32, ++/*388788*/ OPC_MoveChild5, ++/*388789*/ OPC_CheckInteger, 1, ++/*388791*/ OPC_CheckType, MVT::i32, ++/*388793*/ OPC_MoveParent, ++/*388794*/ OPC_MoveChild6, ++/*388795*/ OPC_CheckInteger, 1, ++/*388797*/ OPC_CheckType, MVT::i32, ++/*388799*/ OPC_MoveParent, ++/*388800*/ OPC_MoveChild7, ++/*388801*/ OPC_CheckInteger, 1, ++/*388803*/ OPC_CheckType, MVT::i32, ++/*388805*/ OPC_MoveParent, ++/*388806*/ OPC_MoveChild, 8, ++/*388808*/ OPC_CheckInteger, 1, ++/*388810*/ OPC_CheckType, MVT::i32, ++/*388812*/ OPC_MoveParent, ++/*388813*/ OPC_MoveChild, 9, ++/*388815*/ OPC_CheckInteger, 1, ++/*388817*/ OPC_CheckType, MVT::i32, ++/*388819*/ OPC_MoveParent, ++/*388820*/ OPC_MoveChild, 10, ++/*388822*/ OPC_CheckInteger, 1, ++/*388824*/ OPC_CheckType, MVT::i32, ++/*388826*/ OPC_MoveParent, ++/*388827*/ OPC_MoveChild, 11, ++/*388829*/ OPC_CheckInteger, 1, ++/*388831*/ OPC_CheckType, MVT::i32, ++/*388833*/ OPC_MoveParent, ++/*388834*/ OPC_MoveChild, 12, ++/*388836*/ OPC_CheckInteger, 1, ++/*388838*/ OPC_CheckType, MVT::i32, ++/*388840*/ OPC_MoveParent, ++/*388841*/ OPC_MoveChild, 13, ++/*388843*/ OPC_CheckInteger, 1, ++/*388845*/ OPC_CheckType, MVT::i32, ++/*388847*/ OPC_MoveParent, ++/*388848*/ OPC_MoveChild, 14, ++/*388850*/ OPC_CheckInteger, 1, ++/*388852*/ OPC_CheckType, MVT::i32, ++/*388854*/ OPC_MoveParent, ++/*388855*/ OPC_MoveChild, 15, ++/*388857*/ OPC_CheckInteger, 1, ++/*388859*/ OPC_CheckType, MVT::i32, ++/*388861*/ OPC_MoveParent, ++/*388862*/ OPC_CheckType, MVT::v16i16, ++/*388864*/ OPC_MoveParent, ++/*388865*/ OPC_CheckType, MVT::v16i16, ++/*388867*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*388869*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*388877*/ 0, /*End of Scope*/ ++/*388878*/ /*Scope*/ 62|128,3/*446*/, /*->389326*/ ++/*388880*/ OPC_CheckChild0Same, 1, ++/*388882*/ OPC_MoveChild1, ++/*388883*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*388886*/ OPC_Scope, 89|128,1/*217*/, /*->389106*/ // 2 children in Scope ++/*388889*/ OPC_MoveChild0, ++/*388890*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*388893*/ OPC_CheckChild0Integer, 1, ++/*388895*/ OPC_CheckChild0Type, MVT::i32, ++/*388897*/ OPC_CheckChild1Integer, 1, ++/*388899*/ OPC_CheckChild1Type, MVT::i32, ++/*388901*/ OPC_CheckChild2Integer, 1, ++/*388903*/ OPC_CheckChild2Type, MVT::i32, ++/*388905*/ OPC_CheckChild3Integer, 1, ++/*388907*/ OPC_CheckChild3Type, MVT::i32, ++/*388909*/ OPC_CheckChild4Integer, 1, ++/*388911*/ OPC_CheckChild4Type, MVT::i32, ++/*388913*/ OPC_MoveChild5, ++/*388914*/ OPC_CheckInteger, 1, ++/*388916*/ OPC_CheckType, MVT::i32, ++/*388918*/ OPC_MoveParent, ++/*388919*/ OPC_MoveChild6, ++/*388920*/ OPC_CheckInteger, 1, ++/*388922*/ OPC_CheckType, MVT::i32, ++/*388924*/ OPC_MoveParent, ++/*388925*/ OPC_MoveChild7, ++/*388926*/ OPC_CheckInteger, 1, ++/*388928*/ OPC_CheckType, MVT::i32, ++/*388930*/ OPC_MoveParent, ++/*388931*/ OPC_MoveChild, 8, ++/*388933*/ OPC_CheckInteger, 1, ++/*388935*/ OPC_CheckType, MVT::i32, ++/*388937*/ OPC_MoveParent, ++/*388938*/ OPC_MoveChild, 9, ++/*388940*/ OPC_CheckInteger, 1, ++/*388942*/ OPC_CheckType, MVT::i32, ++/*388944*/ OPC_MoveParent, ++/*388945*/ OPC_MoveChild, 10, ++/*388947*/ OPC_CheckInteger, 1, ++/*388949*/ OPC_CheckType, MVT::i32, ++/*388951*/ OPC_MoveParent, ++/*388952*/ OPC_MoveChild, 11, ++/*388954*/ OPC_CheckInteger, 1, ++/*388956*/ OPC_CheckType, MVT::i32, ++/*388958*/ OPC_MoveParent, ++/*388959*/ OPC_MoveChild, 12, ++/*388961*/ OPC_CheckInteger, 1, ++/*388963*/ OPC_CheckType, MVT::i32, ++/*388965*/ OPC_MoveParent, ++/*388966*/ OPC_MoveChild, 13, ++/*388968*/ OPC_CheckInteger, 1, ++/*388970*/ OPC_CheckType, MVT::i32, ++/*388972*/ OPC_MoveParent, ++/*388973*/ OPC_MoveChild, 14, ++/*388975*/ OPC_CheckInteger, 1, ++/*388977*/ OPC_CheckType, MVT::i32, ++/*388979*/ OPC_MoveParent, ++/*388980*/ OPC_MoveChild, 15, ++/*388982*/ OPC_CheckInteger, 1, ++/*388984*/ OPC_CheckType, MVT::i32, ++/*388986*/ OPC_MoveParent, ++/*388987*/ OPC_MoveParent, ++/*388988*/ OPC_CheckChild1Same, 0, ++/*388990*/ OPC_MoveParent, ++/*388991*/ OPC_MoveParent, ++/*388992*/ OPC_MoveParent, ++/*388993*/ OPC_MoveChild1, ++/*388994*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*388997*/ OPC_CheckChild0Integer, 1, ++/*388999*/ OPC_CheckChild0Type, MVT::i32, ++/*389001*/ OPC_CheckChild1Integer, 1, ++/*389003*/ OPC_CheckChild1Type, MVT::i32, ++/*389005*/ OPC_CheckChild2Integer, 1, ++/*389007*/ OPC_CheckChild2Type, MVT::i32, ++/*389009*/ OPC_CheckChild3Integer, 1, ++/*389011*/ OPC_CheckChild3Type, MVT::i32, ++/*389013*/ OPC_CheckChild4Integer, 1, ++/*389015*/ OPC_CheckChild4Type, MVT::i32, ++/*389017*/ OPC_MoveChild5, ++/*389018*/ OPC_CheckInteger, 1, ++/*389020*/ OPC_CheckType, MVT::i32, ++/*389022*/ OPC_MoveParent, ++/*389023*/ OPC_MoveChild6, ++/*389024*/ OPC_CheckInteger, 1, ++/*389026*/ OPC_CheckType, MVT::i32, ++/*389028*/ OPC_MoveParent, ++/*389029*/ OPC_MoveChild7, ++/*389030*/ OPC_CheckInteger, 1, ++/*389032*/ OPC_CheckType, MVT::i32, ++/*389034*/ OPC_MoveParent, ++/*389035*/ OPC_MoveChild, 8, ++/*389037*/ OPC_CheckInteger, 1, ++/*389039*/ OPC_CheckType, MVT::i32, ++/*389041*/ OPC_MoveParent, ++/*389042*/ OPC_MoveChild, 9, ++/*389044*/ OPC_CheckInteger, 1, ++/*389046*/ OPC_CheckType, MVT::i32, ++/*389048*/ OPC_MoveParent, ++/*389049*/ OPC_MoveChild, 10, ++/*389051*/ OPC_CheckInteger, 1, ++/*389053*/ OPC_CheckType, MVT::i32, ++/*389055*/ OPC_MoveParent, ++/*389056*/ OPC_MoveChild, 11, ++/*389058*/ OPC_CheckInteger, 1, ++/*389060*/ OPC_CheckType, MVT::i32, ++/*389062*/ OPC_MoveParent, ++/*389063*/ OPC_MoveChild, 12, ++/*389065*/ OPC_CheckInteger, 1, ++/*389067*/ OPC_CheckType, MVT::i32, ++/*389069*/ OPC_MoveParent, ++/*389070*/ OPC_MoveChild, 13, ++/*389072*/ OPC_CheckInteger, 1, ++/*389074*/ OPC_CheckType, MVT::i32, ++/*389076*/ OPC_MoveParent, ++/*389077*/ OPC_MoveChild, 14, ++/*389079*/ OPC_CheckInteger, 1, ++/*389081*/ OPC_CheckType, MVT::i32, ++/*389083*/ OPC_MoveParent, ++/*389084*/ OPC_MoveChild, 15, ++/*389086*/ OPC_CheckInteger, 1, ++/*389088*/ OPC_CheckType, MVT::i32, ++/*389090*/ OPC_MoveParent, ++/*389091*/ OPC_CheckType, MVT::v16i16, ++/*389093*/ OPC_MoveParent, ++/*389094*/ OPC_CheckType, MVT::v16i16, ++/*389096*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*389098*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*389106*/ /*Scope*/ 89|128,1/*217*/, /*->389325*/ ++/*389108*/ OPC_CheckChild0Same, 0, ++/*389110*/ OPC_MoveChild1, ++/*389111*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*389114*/ OPC_CheckChild0Integer, 1, ++/*389116*/ OPC_CheckChild0Type, MVT::i32, ++/*389118*/ OPC_CheckChild1Integer, 1, ++/*389120*/ OPC_CheckChild1Type, MVT::i32, ++/*389122*/ OPC_CheckChild2Integer, 1, ++/*389124*/ OPC_CheckChild2Type, MVT::i32, ++/*389126*/ OPC_CheckChild3Integer, 1, ++/*389128*/ OPC_CheckChild3Type, MVT::i32, ++/*389130*/ OPC_CheckChild4Integer, 1, ++/*389132*/ OPC_CheckChild4Type, MVT::i32, ++/*389134*/ OPC_MoveChild5, ++/*389135*/ OPC_CheckInteger, 1, ++/*389137*/ OPC_CheckType, MVT::i32, ++/*389139*/ OPC_MoveParent, ++/*389140*/ OPC_MoveChild6, ++/*389141*/ OPC_CheckInteger, 1, ++/*389143*/ OPC_CheckType, MVT::i32, ++/*389145*/ OPC_MoveParent, ++/*389146*/ OPC_MoveChild7, ++/*389147*/ OPC_CheckInteger, 1, ++/*389149*/ OPC_CheckType, MVT::i32, ++/*389151*/ OPC_MoveParent, ++/*389152*/ OPC_MoveChild, 8, ++/*389154*/ OPC_CheckInteger, 1, ++/*389156*/ OPC_CheckType, MVT::i32, ++/*389158*/ OPC_MoveParent, ++/*389159*/ OPC_MoveChild, 9, ++/*389161*/ OPC_CheckInteger, 1, ++/*389163*/ OPC_CheckType, MVT::i32, ++/*389165*/ OPC_MoveParent, ++/*389166*/ OPC_MoveChild, 10, ++/*389168*/ OPC_CheckInteger, 1, ++/*389170*/ OPC_CheckType, MVT::i32, ++/*389172*/ OPC_MoveParent, ++/*389173*/ OPC_MoveChild, 11, ++/*389175*/ OPC_CheckInteger, 1, ++/*389177*/ OPC_CheckType, MVT::i32, ++/*389179*/ OPC_MoveParent, ++/*389180*/ OPC_MoveChild, 12, ++/*389182*/ OPC_CheckInteger, 1, ++/*389184*/ OPC_CheckType, MVT::i32, ++/*389186*/ OPC_MoveParent, ++/*389187*/ OPC_MoveChild, 13, ++/*389189*/ OPC_CheckInteger, 1, ++/*389191*/ OPC_CheckType, MVT::i32, ++/*389193*/ OPC_MoveParent, ++/*389194*/ OPC_MoveChild, 14, ++/*389196*/ OPC_CheckInteger, 1, ++/*389198*/ OPC_CheckType, MVT::i32, ++/*389200*/ OPC_MoveParent, ++/*389201*/ OPC_MoveChild, 15, ++/*389203*/ OPC_CheckInteger, 1, ++/*389205*/ OPC_CheckType, MVT::i32, ++/*389207*/ OPC_MoveParent, ++/*389208*/ OPC_MoveParent, ++/*389209*/ OPC_MoveParent, ++/*389210*/ OPC_MoveParent, ++/*389211*/ OPC_MoveParent, ++/*389212*/ OPC_MoveChild1, ++/*389213*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*389216*/ OPC_CheckChild0Integer, 1, ++/*389218*/ OPC_CheckChild0Type, MVT::i32, ++/*389220*/ OPC_CheckChild1Integer, 1, ++/*389222*/ OPC_CheckChild1Type, MVT::i32, ++/*389224*/ OPC_CheckChild2Integer, 1, ++/*389226*/ OPC_CheckChild2Type, MVT::i32, ++/*389228*/ OPC_CheckChild3Integer, 1, ++/*389230*/ OPC_CheckChild3Type, MVT::i32, ++/*389232*/ OPC_CheckChild4Integer, 1, ++/*389234*/ OPC_CheckChild4Type, MVT::i32, ++/*389236*/ OPC_MoveChild5, ++/*389237*/ OPC_CheckInteger, 1, ++/*389239*/ OPC_CheckType, MVT::i32, ++/*389241*/ OPC_MoveParent, ++/*389242*/ OPC_MoveChild6, ++/*389243*/ OPC_CheckInteger, 1, ++/*389245*/ OPC_CheckType, MVT::i32, ++/*389247*/ OPC_MoveParent, ++/*389248*/ OPC_MoveChild7, ++/*389249*/ OPC_CheckInteger, 1, ++/*389251*/ OPC_CheckType, MVT::i32, ++/*389253*/ OPC_MoveParent, ++/*389254*/ OPC_MoveChild, 8, ++/*389256*/ OPC_CheckInteger, 1, ++/*389258*/ OPC_CheckType, MVT::i32, ++/*389260*/ OPC_MoveParent, ++/*389261*/ OPC_MoveChild, 9, ++/*389263*/ OPC_CheckInteger, 1, ++/*389265*/ OPC_CheckType, MVT::i32, ++/*389267*/ OPC_MoveParent, ++/*389268*/ OPC_MoveChild, 10, ++/*389270*/ OPC_CheckInteger, 1, ++/*389272*/ OPC_CheckType, MVT::i32, ++/*389274*/ OPC_MoveParent, ++/*389275*/ OPC_MoveChild, 11, ++/*389277*/ OPC_CheckInteger, 1, ++/*389279*/ OPC_CheckType, MVT::i32, ++/*389281*/ OPC_MoveParent, ++/*389282*/ OPC_MoveChild, 12, ++/*389284*/ OPC_CheckInteger, 1, ++/*389286*/ OPC_CheckType, MVT::i32, ++/*389288*/ OPC_MoveParent, ++/*389289*/ OPC_MoveChild, 13, ++/*389291*/ OPC_CheckInteger, 1, ++/*389293*/ OPC_CheckType, MVT::i32, ++/*389295*/ OPC_MoveParent, ++/*389296*/ OPC_MoveChild, 14, ++/*389298*/ OPC_CheckInteger, 1, ++/*389300*/ OPC_CheckType, MVT::i32, ++/*389302*/ OPC_MoveParent, ++/*389303*/ OPC_MoveChild, 15, ++/*389305*/ OPC_CheckInteger, 1, ++/*389307*/ OPC_CheckType, MVT::i32, ++/*389309*/ OPC_MoveParent, ++/*389310*/ OPC_CheckType, MVT::v16i16, ++/*389312*/ OPC_MoveParent, ++/*389313*/ OPC_CheckType, MVT::v16i16, ++/*389315*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*389317*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*389325*/ 0, /*End of Scope*/ ++/*389326*/ /*Scope*/ 91|128,2/*347*/, /*->389675*/ ++/*389328*/ OPC_MoveChild0, ++/*389329*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*389332*/ OPC_CheckChild0Integer, 1, ++/*389334*/ OPC_CheckChild0Type, MVT::i32, ++/*389336*/ OPC_CheckChild1Integer, 1, ++/*389338*/ OPC_CheckChild1Type, MVT::i32, ++/*389340*/ OPC_CheckChild2Integer, 1, ++/*389342*/ OPC_CheckChild2Type, MVT::i32, ++/*389344*/ OPC_CheckChild3Integer, 1, ++/*389346*/ OPC_CheckChild3Type, MVT::i32, ++/*389348*/ OPC_CheckChild4Integer, 1, ++/*389350*/ OPC_CheckChild4Type, MVT::i32, ++/*389352*/ OPC_MoveChild5, ++/*389353*/ OPC_CheckInteger, 1, ++/*389355*/ OPC_CheckType, MVT::i32, ++/*389357*/ OPC_MoveParent, ++/*389358*/ OPC_MoveChild6, ++/*389359*/ OPC_CheckInteger, 1, ++/*389361*/ OPC_CheckType, MVT::i32, ++/*389363*/ OPC_MoveParent, ++/*389364*/ OPC_MoveChild7, ++/*389365*/ OPC_CheckInteger, 1, ++/*389367*/ OPC_CheckType, MVT::i32, ++/*389369*/ OPC_MoveParent, ++/*389370*/ OPC_MoveChild, 8, ++/*389372*/ OPC_CheckInteger, 1, ++/*389374*/ OPC_CheckType, MVT::i32, ++/*389376*/ OPC_MoveParent, ++/*389377*/ OPC_MoveChild, 9, ++/*389379*/ OPC_CheckInteger, 1, ++/*389381*/ OPC_CheckType, MVT::i32, ++/*389383*/ OPC_MoveParent, ++/*389384*/ OPC_MoveChild, 10, ++/*389386*/ OPC_CheckInteger, 1, ++/*389388*/ OPC_CheckType, MVT::i32, ++/*389390*/ OPC_MoveParent, ++/*389391*/ OPC_MoveChild, 11, ++/*389393*/ OPC_CheckInteger, 1, ++/*389395*/ OPC_CheckType, MVT::i32, ++/*389397*/ OPC_MoveParent, ++/*389398*/ OPC_MoveChild, 12, ++/*389400*/ OPC_CheckInteger, 1, ++/*389402*/ OPC_CheckType, MVT::i32, ++/*389404*/ OPC_MoveParent, ++/*389405*/ OPC_MoveChild, 13, ++/*389407*/ OPC_CheckInteger, 1, ++/*389409*/ OPC_CheckType, MVT::i32, ++/*389411*/ OPC_MoveParent, ++/*389412*/ OPC_MoveChild, 14, ++/*389414*/ OPC_CheckInteger, 1, ++/*389416*/ OPC_CheckType, MVT::i32, ++/*389418*/ OPC_MoveParent, ++/*389419*/ OPC_MoveChild, 15, ++/*389421*/ OPC_CheckInteger, 1, ++/*389423*/ OPC_CheckType, MVT::i32, ++/*389425*/ OPC_MoveParent, ++/*389426*/ OPC_MoveParent, ++/*389427*/ OPC_MoveChild1, ++/*389428*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*389431*/ OPC_Scope, 120, /*->389553*/ // 2 children in Scope ++/*389433*/ OPC_CheckChild0Same, 1, ++/*389435*/ OPC_CheckChild1Same, 0, ++/*389437*/ OPC_MoveParent, ++/*389438*/ OPC_MoveParent, ++/*389439*/ OPC_MoveParent, ++/*389440*/ OPC_MoveChild1, ++/*389441*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*389444*/ OPC_CheckChild0Integer, 1, ++/*389446*/ OPC_CheckChild0Type, MVT::i32, ++/*389448*/ OPC_CheckChild1Integer, 1, ++/*389450*/ OPC_CheckChild1Type, MVT::i32, ++/*389452*/ OPC_CheckChild2Integer, 1, ++/*389454*/ OPC_CheckChild2Type, MVT::i32, ++/*389456*/ OPC_CheckChild3Integer, 1, ++/*389458*/ OPC_CheckChild3Type, MVT::i32, ++/*389460*/ OPC_CheckChild4Integer, 1, ++/*389462*/ OPC_CheckChild4Type, MVT::i32, ++/*389464*/ OPC_MoveChild5, ++/*389465*/ OPC_CheckInteger, 1, ++/*389467*/ OPC_CheckType, MVT::i32, ++/*389469*/ OPC_MoveParent, ++/*389470*/ OPC_MoveChild6, ++/*389471*/ OPC_CheckInteger, 1, ++/*389473*/ OPC_CheckType, MVT::i32, ++/*389475*/ OPC_MoveParent, ++/*389476*/ OPC_MoveChild7, ++/*389477*/ OPC_CheckInteger, 1, ++/*389479*/ OPC_CheckType, MVT::i32, ++/*389481*/ OPC_MoveParent, ++/*389482*/ OPC_MoveChild, 8, ++/*389484*/ OPC_CheckInteger, 1, ++/*389486*/ OPC_CheckType, MVT::i32, ++/*389488*/ OPC_MoveParent, ++/*389489*/ OPC_MoveChild, 9, ++/*389491*/ OPC_CheckInteger, 1, ++/*389493*/ OPC_CheckType, MVT::i32, ++/*389495*/ OPC_MoveParent, ++/*389496*/ OPC_MoveChild, 10, ++/*389498*/ OPC_CheckInteger, 1, ++/*389500*/ OPC_CheckType, MVT::i32, ++/*389502*/ OPC_MoveParent, ++/*389503*/ OPC_MoveChild, 11, ++/*389505*/ OPC_CheckInteger, 1, ++/*389507*/ OPC_CheckType, MVT::i32, ++/*389509*/ OPC_MoveParent, ++/*389510*/ OPC_MoveChild, 12, ++/*389512*/ OPC_CheckInteger, 1, ++/*389514*/ OPC_CheckType, MVT::i32, ++/*389516*/ OPC_MoveParent, ++/*389517*/ OPC_MoveChild, 13, ++/*389519*/ OPC_CheckInteger, 1, ++/*389521*/ OPC_CheckType, MVT::i32, ++/*389523*/ OPC_MoveParent, ++/*389524*/ OPC_MoveChild, 14, ++/*389526*/ OPC_CheckInteger, 1, ++/*389528*/ OPC_CheckType, MVT::i32, ++/*389530*/ OPC_MoveParent, ++/*389531*/ OPC_MoveChild, 15, ++/*389533*/ OPC_CheckInteger, 1, ++/*389535*/ OPC_CheckType, MVT::i32, ++/*389537*/ OPC_MoveParent, ++/*389538*/ OPC_CheckType, MVT::v16i16, ++/*389540*/ OPC_MoveParent, ++/*389541*/ OPC_CheckType, MVT::v16i16, ++/*389543*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*389545*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*389553*/ /*Scope*/ 120, /*->389674*/ ++/*389554*/ OPC_CheckChild0Same, 0, ++/*389556*/ OPC_CheckChild1Same, 1, ++/*389558*/ OPC_MoveParent, ++/*389559*/ OPC_MoveParent, ++/*389560*/ OPC_MoveParent, ++/*389561*/ OPC_MoveChild1, ++/*389562*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*389565*/ OPC_CheckChild0Integer, 1, ++/*389567*/ OPC_CheckChild0Type, MVT::i32, ++/*389569*/ OPC_CheckChild1Integer, 1, ++/*389571*/ OPC_CheckChild1Type, MVT::i32, ++/*389573*/ OPC_CheckChild2Integer, 1, ++/*389575*/ OPC_CheckChild2Type, MVT::i32, ++/*389577*/ OPC_CheckChild3Integer, 1, ++/*389579*/ OPC_CheckChild3Type, MVT::i32, ++/*389581*/ OPC_CheckChild4Integer, 1, ++/*389583*/ OPC_CheckChild4Type, MVT::i32, ++/*389585*/ OPC_MoveChild5, ++/*389586*/ OPC_CheckInteger, 1, ++/*389588*/ OPC_CheckType, MVT::i32, ++/*389590*/ OPC_MoveParent, ++/*389591*/ OPC_MoveChild6, ++/*389592*/ OPC_CheckInteger, 1, ++/*389594*/ OPC_CheckType, MVT::i32, ++/*389596*/ OPC_MoveParent, ++/*389597*/ OPC_MoveChild7, ++/*389598*/ OPC_CheckInteger, 1, ++/*389600*/ OPC_CheckType, MVT::i32, ++/*389602*/ OPC_MoveParent, ++/*389603*/ OPC_MoveChild, 8, ++/*389605*/ OPC_CheckInteger, 1, ++/*389607*/ OPC_CheckType, MVT::i32, ++/*389609*/ OPC_MoveParent, ++/*389610*/ OPC_MoveChild, 9, ++/*389612*/ OPC_CheckInteger, 1, ++/*389614*/ OPC_CheckType, MVT::i32, ++/*389616*/ OPC_MoveParent, ++/*389617*/ OPC_MoveChild, 10, ++/*389619*/ OPC_CheckInteger, 1, ++/*389621*/ OPC_CheckType, MVT::i32, ++/*389623*/ OPC_MoveParent, ++/*389624*/ OPC_MoveChild, 11, ++/*389626*/ OPC_CheckInteger, 1, ++/*389628*/ OPC_CheckType, MVT::i32, ++/*389630*/ OPC_MoveParent, ++/*389631*/ OPC_MoveChild, 12, ++/*389633*/ OPC_CheckInteger, 1, ++/*389635*/ OPC_CheckType, MVT::i32, ++/*389637*/ OPC_MoveParent, ++/*389638*/ OPC_MoveChild, 13, ++/*389640*/ OPC_CheckInteger, 1, ++/*389642*/ OPC_CheckType, MVT::i32, ++/*389644*/ OPC_MoveParent, ++/*389645*/ OPC_MoveChild, 14, ++/*389647*/ OPC_CheckInteger, 1, ++/*389649*/ OPC_CheckType, MVT::i32, ++/*389651*/ OPC_MoveParent, ++/*389652*/ OPC_MoveChild, 15, ++/*389654*/ OPC_CheckInteger, 1, ++/*389656*/ OPC_CheckType, MVT::i32, ++/*389658*/ OPC_MoveParent, ++/*389659*/ OPC_CheckType, MVT::v16i16, ++/*389661*/ OPC_MoveParent, ++/*389662*/ OPC_CheckType, MVT::v16i16, ++/*389664*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*389666*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*389674*/ 0, /*End of Scope*/ ++/*389675*/ 0, /*End of Scope*/ ++/*389676*/ 0, /*End of Scope*/ ++/*389677*/ 0, /*End of Scope*/ ++/*389678*/ 0, // EndSwitchOpcode ++/*389679*/ /*Scope*/ 35|128,87/*11171*/, /*->400852*/ ++/*389681*/ OPC_RecordChild0, // #0 = $b ++/*389682*/ OPC_MoveChild1, ++/*389683*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*389686*/ OPC_Scope, 101|128,21/*2789*/, /*->392478*/ // 4 children in Scope ++/*389689*/ OPC_MoveChild0, ++/*389690*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*389693*/ OPC_CheckChild0Integer, 1, ++/*389695*/ OPC_CheckChild0Type, MVT::i32, ++/*389697*/ OPC_CheckChild1Integer, 1, ++/*389699*/ OPC_CheckChild1Type, MVT::i32, ++/*389701*/ OPC_CheckChild2Integer, 1, ++/*389703*/ OPC_CheckChild2Type, MVT::i32, ++/*389705*/ OPC_CheckChild3Integer, 1, ++/*389707*/ OPC_CheckChild3Type, MVT::i32, ++/*389709*/ OPC_CheckChild4Integer, 1, ++/*389711*/ OPC_CheckChild4Type, MVT::i32, ++/*389713*/ OPC_MoveChild5, ++/*389714*/ OPC_CheckInteger, 1, ++/*389716*/ OPC_CheckType, MVT::i32, ++/*389718*/ OPC_MoveParent, ++/*389719*/ OPC_MoveChild6, ++/*389720*/ OPC_CheckInteger, 1, ++/*389722*/ OPC_CheckType, MVT::i32, ++/*389724*/ OPC_MoveParent, ++/*389725*/ OPC_MoveChild7, ++/*389726*/ OPC_CheckInteger, 1, ++/*389728*/ OPC_CheckType, MVT::i32, ++/*389730*/ OPC_MoveParent, ++/*389731*/ OPC_MoveChild, 8, ++/*389733*/ OPC_CheckInteger, 1, ++/*389735*/ OPC_CheckType, MVT::i32, ++/*389737*/ OPC_MoveParent, ++/*389738*/ OPC_MoveChild, 9, ++/*389740*/ OPC_CheckInteger, 1, ++/*389742*/ OPC_CheckType, MVT::i32, ++/*389744*/ OPC_MoveParent, ++/*389745*/ OPC_MoveChild, 10, ++/*389747*/ OPC_CheckInteger, 1, ++/*389749*/ OPC_CheckType, MVT::i32, ++/*389751*/ OPC_MoveParent, ++/*389752*/ OPC_MoveChild, 11, ++/*389754*/ OPC_CheckInteger, 1, ++/*389756*/ OPC_CheckType, MVT::i32, ++/*389758*/ OPC_MoveParent, ++/*389759*/ OPC_MoveChild, 12, ++/*389761*/ OPC_CheckInteger, 1, ++/*389763*/ OPC_CheckType, MVT::i32, ++/*389765*/ OPC_MoveParent, ++/*389766*/ OPC_MoveChild, 13, ++/*389768*/ OPC_CheckInteger, 1, ++/*389770*/ OPC_CheckType, MVT::i32, ++/*389772*/ OPC_MoveParent, ++/*389773*/ OPC_MoveChild, 14, ++/*389775*/ OPC_CheckInteger, 1, ++/*389777*/ OPC_CheckType, MVT::i32, ++/*389779*/ OPC_MoveParent, ++/*389780*/ OPC_MoveChild, 15, ++/*389782*/ OPC_CheckInteger, 1, ++/*389784*/ OPC_CheckType, MVT::i32, ++/*389786*/ OPC_MoveParent, ++/*389787*/ OPC_MoveParent, ++/*389788*/ OPC_RecordChild1, // #1 = $a ++/*389789*/ OPC_MoveParent, ++/*389790*/ OPC_MoveParent, ++/*389791*/ OPC_MoveChild1, ++/*389792*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*389795*/ OPC_CheckChild0Integer, 15, ++/*389797*/ OPC_CheckChild0Type, MVT::i32, ++/*389799*/ OPC_CheckChild1Integer, 15, ++/*389801*/ OPC_CheckChild1Type, MVT::i32, ++/*389803*/ OPC_CheckChild2Integer, 15, ++/*389805*/ OPC_CheckChild2Type, MVT::i32, ++/*389807*/ OPC_CheckChild3Integer, 15, ++/*389809*/ OPC_CheckChild3Type, MVT::i32, ++/*389811*/ OPC_CheckChild4Integer, 15, ++/*389813*/ OPC_CheckChild4Type, MVT::i32, ++/*389815*/ OPC_MoveChild5, ++/*389816*/ OPC_CheckInteger, 15, ++/*389818*/ OPC_CheckType, MVT::i32, ++/*389820*/ OPC_MoveParent, ++/*389821*/ OPC_MoveChild6, ++/*389822*/ OPC_CheckInteger, 15, ++/*389824*/ OPC_CheckType, MVT::i32, ++/*389826*/ OPC_MoveParent, ++/*389827*/ OPC_MoveChild7, ++/*389828*/ OPC_CheckInteger, 15, ++/*389830*/ OPC_CheckType, MVT::i32, ++/*389832*/ OPC_MoveParent, ++/*389833*/ OPC_MoveChild, 8, ++/*389835*/ OPC_CheckInteger, 15, ++/*389837*/ OPC_CheckType, MVT::i32, ++/*389839*/ OPC_MoveParent, ++/*389840*/ OPC_MoveChild, 9, ++/*389842*/ OPC_CheckInteger, 15, ++/*389844*/ OPC_CheckType, MVT::i32, ++/*389846*/ OPC_MoveParent, ++/*389847*/ OPC_MoveChild, 10, ++/*389849*/ OPC_CheckInteger, 15, ++/*389851*/ OPC_CheckType, MVT::i32, ++/*389853*/ OPC_MoveParent, ++/*389854*/ OPC_MoveChild, 11, ++/*389856*/ OPC_CheckInteger, 15, ++/*389858*/ OPC_CheckType, MVT::i32, ++/*389860*/ OPC_MoveParent, ++/*389861*/ OPC_MoveChild, 12, ++/*389863*/ OPC_CheckInteger, 15, ++/*389865*/ OPC_CheckType, MVT::i32, ++/*389867*/ OPC_MoveParent, ++/*389868*/ OPC_MoveChild, 13, ++/*389870*/ OPC_CheckInteger, 15, ++/*389872*/ OPC_CheckType, MVT::i32, ++/*389874*/ OPC_MoveParent, ++/*389875*/ OPC_MoveChild, 14, ++/*389877*/ OPC_CheckInteger, 15, ++/*389879*/ OPC_CheckType, MVT::i32, ++/*389881*/ OPC_MoveParent, ++/*389882*/ OPC_MoveChild, 15, ++/*389884*/ OPC_CheckInteger, 15, ++/*389886*/ OPC_CheckType, MVT::i32, ++/*389888*/ OPC_MoveParent, ++/*389889*/ OPC_CheckType, MVT::v16i16, ++/*389891*/ OPC_MoveParent, ++/*389892*/ OPC_MoveParent, ++/*389893*/ OPC_MoveChild1, ++/*389894*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*389897*/ OPC_Scope, 52|128,10/*1332*/, /*->391232*/ // 4 children in Scope ++/*389900*/ OPC_MoveChild0, ++/*389901*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*389904*/ OPC_Scope, 91|128,1/*219*/, /*->390126*/ // 6 children in Scope ++/*389907*/ OPC_MoveChild0, ++/*389908*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*389911*/ OPC_CheckChild0Integer, 1, ++/*389913*/ OPC_CheckChild0Type, MVT::i32, ++/*389915*/ OPC_CheckChild1Integer, 1, ++/*389917*/ OPC_CheckChild1Type, MVT::i32, ++/*389919*/ OPC_CheckChild2Integer, 1, ++/*389921*/ OPC_CheckChild2Type, MVT::i32, ++/*389923*/ OPC_CheckChild3Integer, 1, ++/*389925*/ OPC_CheckChild3Type, MVT::i32, ++/*389927*/ OPC_CheckChild4Integer, 1, ++/*389929*/ OPC_CheckChild4Type, MVT::i32, ++/*389931*/ OPC_MoveChild5, ++/*389932*/ OPC_CheckInteger, 1, ++/*389934*/ OPC_CheckType, MVT::i32, ++/*389936*/ OPC_MoveParent, ++/*389937*/ OPC_MoveChild6, ++/*389938*/ OPC_CheckInteger, 1, ++/*389940*/ OPC_CheckType, MVT::i32, ++/*389942*/ OPC_MoveParent, ++/*389943*/ OPC_MoveChild7, ++/*389944*/ OPC_CheckInteger, 1, ++/*389946*/ OPC_CheckType, MVT::i32, ++/*389948*/ OPC_MoveParent, ++/*389949*/ OPC_MoveChild, 8, ++/*389951*/ OPC_CheckInteger, 1, ++/*389953*/ OPC_CheckType, MVT::i32, ++/*389955*/ OPC_MoveParent, ++/*389956*/ OPC_MoveChild, 9, ++/*389958*/ OPC_CheckInteger, 1, ++/*389960*/ OPC_CheckType, MVT::i32, ++/*389962*/ OPC_MoveParent, ++/*389963*/ OPC_MoveChild, 10, ++/*389965*/ OPC_CheckInteger, 1, ++/*389967*/ OPC_CheckType, MVT::i32, ++/*389969*/ OPC_MoveParent, ++/*389970*/ OPC_MoveChild, 11, ++/*389972*/ OPC_CheckInteger, 1, ++/*389974*/ OPC_CheckType, MVT::i32, ++/*389976*/ OPC_MoveParent, ++/*389977*/ OPC_MoveChild, 12, ++/*389979*/ OPC_CheckInteger, 1, ++/*389981*/ OPC_CheckType, MVT::i32, ++/*389983*/ OPC_MoveParent, ++/*389984*/ OPC_MoveChild, 13, ++/*389986*/ OPC_CheckInteger, 1, ++/*389988*/ OPC_CheckType, MVT::i32, ++/*389990*/ OPC_MoveParent, ++/*389991*/ OPC_MoveChild, 14, ++/*389993*/ OPC_CheckInteger, 1, ++/*389995*/ OPC_CheckType, MVT::i32, ++/*389997*/ OPC_MoveParent, ++/*389998*/ OPC_MoveChild, 15, ++/*390000*/ OPC_CheckInteger, 1, ++/*390002*/ OPC_CheckType, MVT::i32, ++/*390004*/ OPC_MoveParent, ++/*390005*/ OPC_MoveParent, ++/*390006*/ OPC_CheckChild1Same, 1, ++/*390008*/ OPC_MoveParent, ++/*390009*/ OPC_CheckChild1Same, 0, ++/*390011*/ OPC_MoveParent, ++/*390012*/ OPC_MoveParent, ++/*390013*/ OPC_MoveChild1, ++/*390014*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*390017*/ OPC_CheckChild0Integer, 1, ++/*390019*/ OPC_CheckChild0Type, MVT::i32, ++/*390021*/ OPC_CheckChild1Integer, 1, ++/*390023*/ OPC_CheckChild1Type, MVT::i32, ++/*390025*/ OPC_CheckChild2Integer, 1, ++/*390027*/ OPC_CheckChild2Type, MVT::i32, ++/*390029*/ OPC_CheckChild3Integer, 1, ++/*390031*/ OPC_CheckChild3Type, MVT::i32, ++/*390033*/ OPC_CheckChild4Integer, 1, ++/*390035*/ OPC_CheckChild4Type, MVT::i32, ++/*390037*/ OPC_MoveChild5, ++/*390038*/ OPC_CheckInteger, 1, ++/*390040*/ OPC_CheckType, MVT::i32, ++/*390042*/ OPC_MoveParent, ++/*390043*/ OPC_MoveChild6, ++/*390044*/ OPC_CheckInteger, 1, ++/*390046*/ OPC_CheckType, MVT::i32, ++/*390048*/ OPC_MoveParent, ++/*390049*/ OPC_MoveChild7, ++/*390050*/ OPC_CheckInteger, 1, ++/*390052*/ OPC_CheckType, MVT::i32, ++/*390054*/ OPC_MoveParent, ++/*390055*/ OPC_MoveChild, 8, ++/*390057*/ OPC_CheckInteger, 1, ++/*390059*/ OPC_CheckType, MVT::i32, ++/*390061*/ OPC_MoveParent, ++/*390062*/ OPC_MoveChild, 9, ++/*390064*/ OPC_CheckInteger, 1, ++/*390066*/ OPC_CheckType, MVT::i32, ++/*390068*/ OPC_MoveParent, ++/*390069*/ OPC_MoveChild, 10, ++/*390071*/ OPC_CheckInteger, 1, ++/*390073*/ OPC_CheckType, MVT::i32, ++/*390075*/ OPC_MoveParent, ++/*390076*/ OPC_MoveChild, 11, ++/*390078*/ OPC_CheckInteger, 1, ++/*390080*/ OPC_CheckType, MVT::i32, ++/*390082*/ OPC_MoveParent, ++/*390083*/ OPC_MoveChild, 12, ++/*390085*/ OPC_CheckInteger, 1, ++/*390087*/ OPC_CheckType, MVT::i32, ++/*390089*/ OPC_MoveParent, ++/*390090*/ OPC_MoveChild, 13, ++/*390092*/ OPC_CheckInteger, 1, ++/*390094*/ OPC_CheckType, MVT::i32, ++/*390096*/ OPC_MoveParent, ++/*390097*/ OPC_MoveChild, 14, ++/*390099*/ OPC_CheckInteger, 1, ++/*390101*/ OPC_CheckType, MVT::i32, ++/*390103*/ OPC_MoveParent, ++/*390104*/ OPC_MoveChild, 15, ++/*390106*/ OPC_CheckInteger, 1, ++/*390108*/ OPC_CheckType, MVT::i32, ++/*390110*/ OPC_MoveParent, ++/*390111*/ OPC_CheckType, MVT::v16i16, ++/*390113*/ OPC_MoveParent, ++/*390114*/ OPC_CheckType, MVT::v16i16, ++/*390116*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*390118*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a), LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*390126*/ /*Scope*/ 91|128,1/*219*/, /*->390347*/ ++/*390128*/ OPC_CheckChild0Same, 1, ++/*390130*/ OPC_MoveChild1, ++/*390131*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*390134*/ OPC_CheckChild0Integer, 1, ++/*390136*/ OPC_CheckChild0Type, MVT::i32, ++/*390138*/ OPC_CheckChild1Integer, 1, ++/*390140*/ OPC_CheckChild1Type, MVT::i32, ++/*390142*/ OPC_CheckChild2Integer, 1, ++/*390144*/ OPC_CheckChild2Type, MVT::i32, ++/*390146*/ OPC_CheckChild3Integer, 1, ++/*390148*/ OPC_CheckChild3Type, MVT::i32, ++/*390150*/ OPC_CheckChild4Integer, 1, ++/*390152*/ OPC_CheckChild4Type, MVT::i32, ++/*390154*/ OPC_MoveChild5, ++/*390155*/ OPC_CheckInteger, 1, ++/*390157*/ OPC_CheckType, MVT::i32, ++/*390159*/ OPC_MoveParent, ++/*390160*/ OPC_MoveChild6, ++/*390161*/ OPC_CheckInteger, 1, ++/*390163*/ OPC_CheckType, MVT::i32, ++/*390165*/ OPC_MoveParent, ++/*390166*/ OPC_MoveChild7, ++/*390167*/ OPC_CheckInteger, 1, ++/*390169*/ OPC_CheckType, MVT::i32, ++/*390171*/ OPC_MoveParent, ++/*390172*/ OPC_MoveChild, 8, ++/*390174*/ OPC_CheckInteger, 1, ++/*390176*/ OPC_CheckType, MVT::i32, ++/*390178*/ OPC_MoveParent, ++/*390179*/ OPC_MoveChild, 9, ++/*390181*/ OPC_CheckInteger, 1, ++/*390183*/ OPC_CheckType, MVT::i32, ++/*390185*/ OPC_MoveParent, ++/*390186*/ OPC_MoveChild, 10, ++/*390188*/ OPC_CheckInteger, 1, ++/*390190*/ OPC_CheckType, MVT::i32, ++/*390192*/ OPC_MoveParent, ++/*390193*/ OPC_MoveChild, 11, ++/*390195*/ OPC_CheckInteger, 1, ++/*390197*/ OPC_CheckType, MVT::i32, ++/*390199*/ OPC_MoveParent, ++/*390200*/ OPC_MoveChild, 12, ++/*390202*/ OPC_CheckInteger, 1, ++/*390204*/ OPC_CheckType, MVT::i32, ++/*390206*/ OPC_MoveParent, ++/*390207*/ OPC_MoveChild, 13, ++/*390209*/ OPC_CheckInteger, 1, ++/*390211*/ OPC_CheckType, MVT::i32, ++/*390213*/ OPC_MoveParent, ++/*390214*/ OPC_MoveChild, 14, ++/*390216*/ OPC_CheckInteger, 1, ++/*390218*/ OPC_CheckType, MVT::i32, ++/*390220*/ OPC_MoveParent, ++/*390221*/ OPC_MoveChild, 15, ++/*390223*/ OPC_CheckInteger, 1, ++/*390225*/ OPC_CheckType, MVT::i32, ++/*390227*/ OPC_MoveParent, ++/*390228*/ OPC_MoveParent, ++/*390229*/ OPC_MoveParent, ++/*390230*/ OPC_CheckChild1Same, 0, ++/*390232*/ OPC_MoveParent, ++/*390233*/ OPC_MoveParent, ++/*390234*/ OPC_MoveChild1, ++/*390235*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*390238*/ OPC_CheckChild0Integer, 1, ++/*390240*/ OPC_CheckChild0Type, MVT::i32, ++/*390242*/ OPC_CheckChild1Integer, 1, ++/*390244*/ OPC_CheckChild1Type, MVT::i32, ++/*390246*/ OPC_CheckChild2Integer, 1, ++/*390248*/ OPC_CheckChild2Type, MVT::i32, ++/*390250*/ OPC_CheckChild3Integer, 1, ++/*390252*/ OPC_CheckChild3Type, MVT::i32, ++/*390254*/ OPC_CheckChild4Integer, 1, ++/*390256*/ OPC_CheckChild4Type, MVT::i32, ++/*390258*/ OPC_MoveChild5, ++/*390259*/ OPC_CheckInteger, 1, ++/*390261*/ OPC_CheckType, MVT::i32, ++/*390263*/ OPC_MoveParent, ++/*390264*/ OPC_MoveChild6, ++/*390265*/ OPC_CheckInteger, 1, ++/*390267*/ OPC_CheckType, MVT::i32, ++/*390269*/ OPC_MoveParent, ++/*390270*/ OPC_MoveChild7, ++/*390271*/ OPC_CheckInteger, 1, ++/*390273*/ OPC_CheckType, MVT::i32, ++/*390275*/ OPC_MoveParent, ++/*390276*/ OPC_MoveChild, 8, ++/*390278*/ OPC_CheckInteger, 1, ++/*390280*/ OPC_CheckType, MVT::i32, ++/*390282*/ OPC_MoveParent, ++/*390283*/ OPC_MoveChild, 9, ++/*390285*/ OPC_CheckInteger, 1, ++/*390287*/ OPC_CheckType, MVT::i32, ++/*390289*/ OPC_MoveParent, ++/*390290*/ OPC_MoveChild, 10, ++/*390292*/ OPC_CheckInteger, 1, ++/*390294*/ OPC_CheckType, MVT::i32, ++/*390296*/ OPC_MoveParent, ++/*390297*/ OPC_MoveChild, 11, ++/*390299*/ OPC_CheckInteger, 1, ++/*390301*/ OPC_CheckType, MVT::i32, ++/*390303*/ OPC_MoveParent, ++/*390304*/ OPC_MoveChild, 12, ++/*390306*/ OPC_CheckInteger, 1, ++/*390308*/ OPC_CheckType, MVT::i32, ++/*390310*/ OPC_MoveParent, ++/*390311*/ OPC_MoveChild, 13, ++/*390313*/ OPC_CheckInteger, 1, ++/*390315*/ OPC_CheckType, MVT::i32, ++/*390317*/ OPC_MoveParent, ++/*390318*/ OPC_MoveChild, 14, ++/*390320*/ OPC_CheckInteger, 1, ++/*390322*/ OPC_CheckType, MVT::i32, ++/*390324*/ OPC_MoveParent, ++/*390325*/ OPC_MoveChild, 15, ++/*390327*/ OPC_CheckInteger, 1, ++/*390329*/ OPC_CheckType, MVT::i32, ++/*390331*/ OPC_MoveParent, ++/*390332*/ OPC_CheckType, MVT::v16i16, ++/*390334*/ OPC_MoveParent, ++/*390335*/ OPC_CheckType, MVT::v16i16, ++/*390337*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*390339*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*390347*/ /*Scope*/ 91|128,1/*219*/, /*->390568*/ ++/*390349*/ OPC_MoveChild0, ++/*390350*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*390353*/ OPC_CheckChild0Integer, 1, ++/*390355*/ OPC_CheckChild0Type, MVT::i32, ++/*390357*/ OPC_CheckChild1Integer, 1, ++/*390359*/ OPC_CheckChild1Type, MVT::i32, ++/*390361*/ OPC_CheckChild2Integer, 1, ++/*390363*/ OPC_CheckChild2Type, MVT::i32, ++/*390365*/ OPC_CheckChild3Integer, 1, ++/*390367*/ OPC_CheckChild3Type, MVT::i32, ++/*390369*/ OPC_CheckChild4Integer, 1, ++/*390371*/ OPC_CheckChild4Type, MVT::i32, ++/*390373*/ OPC_MoveChild5, ++/*390374*/ OPC_CheckInteger, 1, ++/*390376*/ OPC_CheckType, MVT::i32, ++/*390378*/ OPC_MoveParent, ++/*390379*/ OPC_MoveChild6, ++/*390380*/ OPC_CheckInteger, 1, ++/*390382*/ OPC_CheckType, MVT::i32, ++/*390384*/ OPC_MoveParent, ++/*390385*/ OPC_MoveChild7, ++/*390386*/ OPC_CheckInteger, 1, ++/*390388*/ OPC_CheckType, MVT::i32, ++/*390390*/ OPC_MoveParent, ++/*390391*/ OPC_MoveChild, 8, ++/*390393*/ OPC_CheckInteger, 1, ++/*390395*/ OPC_CheckType, MVT::i32, ++/*390397*/ OPC_MoveParent, ++/*390398*/ OPC_MoveChild, 9, ++/*390400*/ OPC_CheckInteger, 1, ++/*390402*/ OPC_CheckType, MVT::i32, ++/*390404*/ OPC_MoveParent, ++/*390405*/ OPC_MoveChild, 10, ++/*390407*/ OPC_CheckInteger, 1, ++/*390409*/ OPC_CheckType, MVT::i32, ++/*390411*/ OPC_MoveParent, ++/*390412*/ OPC_MoveChild, 11, ++/*390414*/ OPC_CheckInteger, 1, ++/*390416*/ OPC_CheckType, MVT::i32, ++/*390418*/ OPC_MoveParent, ++/*390419*/ OPC_MoveChild, 12, ++/*390421*/ OPC_CheckInteger, 1, ++/*390423*/ OPC_CheckType, MVT::i32, ++/*390425*/ OPC_MoveParent, ++/*390426*/ OPC_MoveChild, 13, ++/*390428*/ OPC_CheckInteger, 1, ++/*390430*/ OPC_CheckType, MVT::i32, ++/*390432*/ OPC_MoveParent, ++/*390433*/ OPC_MoveChild, 14, ++/*390435*/ OPC_CheckInteger, 1, ++/*390437*/ OPC_CheckType, MVT::i32, ++/*390439*/ OPC_MoveParent, ++/*390440*/ OPC_MoveChild, 15, ++/*390442*/ OPC_CheckInteger, 1, ++/*390444*/ OPC_CheckType, MVT::i32, ++/*390446*/ OPC_MoveParent, ++/*390447*/ OPC_MoveParent, ++/*390448*/ OPC_CheckChild1Same, 0, ++/*390450*/ OPC_MoveParent, ++/*390451*/ OPC_CheckChild1Same, 1, ++/*390453*/ OPC_MoveParent, ++/*390454*/ OPC_MoveParent, ++/*390455*/ OPC_MoveChild1, ++/*390456*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*390459*/ OPC_CheckChild0Integer, 1, ++/*390461*/ OPC_CheckChild0Type, MVT::i32, ++/*390463*/ OPC_CheckChild1Integer, 1, ++/*390465*/ OPC_CheckChild1Type, MVT::i32, ++/*390467*/ OPC_CheckChild2Integer, 1, ++/*390469*/ OPC_CheckChild2Type, MVT::i32, ++/*390471*/ OPC_CheckChild3Integer, 1, ++/*390473*/ OPC_CheckChild3Type, MVT::i32, ++/*390475*/ OPC_CheckChild4Integer, 1, ++/*390477*/ OPC_CheckChild4Type, MVT::i32, ++/*390479*/ OPC_MoveChild5, ++/*390480*/ OPC_CheckInteger, 1, ++/*390482*/ OPC_CheckType, MVT::i32, ++/*390484*/ OPC_MoveParent, ++/*390485*/ OPC_MoveChild6, ++/*390486*/ OPC_CheckInteger, 1, ++/*390488*/ OPC_CheckType, MVT::i32, ++/*390490*/ OPC_MoveParent, ++/*390491*/ OPC_MoveChild7, ++/*390492*/ OPC_CheckInteger, 1, ++/*390494*/ OPC_CheckType, MVT::i32, ++/*390496*/ OPC_MoveParent, ++/*390497*/ OPC_MoveChild, 8, ++/*390499*/ OPC_CheckInteger, 1, ++/*390501*/ OPC_CheckType, MVT::i32, ++/*390503*/ OPC_MoveParent, ++/*390504*/ OPC_MoveChild, 9, ++/*390506*/ OPC_CheckInteger, 1, ++/*390508*/ OPC_CheckType, MVT::i32, ++/*390510*/ OPC_MoveParent, ++/*390511*/ OPC_MoveChild, 10, ++/*390513*/ OPC_CheckInteger, 1, ++/*390515*/ OPC_CheckType, MVT::i32, ++/*390517*/ OPC_MoveParent, ++/*390518*/ OPC_MoveChild, 11, ++/*390520*/ OPC_CheckInteger, 1, ++/*390522*/ OPC_CheckType, MVT::i32, ++/*390524*/ OPC_MoveParent, ++/*390525*/ OPC_MoveChild, 12, ++/*390527*/ OPC_CheckInteger, 1, ++/*390529*/ OPC_CheckType, MVT::i32, ++/*390531*/ OPC_MoveParent, ++/*390532*/ OPC_MoveChild, 13, ++/*390534*/ OPC_CheckInteger, 1, ++/*390536*/ OPC_CheckType, MVT::i32, ++/*390538*/ OPC_MoveParent, ++/*390539*/ OPC_MoveChild, 14, ++/*390541*/ OPC_CheckInteger, 1, ++/*390543*/ OPC_CheckType, MVT::i32, ++/*390545*/ OPC_MoveParent, ++/*390546*/ OPC_MoveChild, 15, ++/*390548*/ OPC_CheckInteger, 1, ++/*390550*/ OPC_CheckType, MVT::i32, ++/*390552*/ OPC_MoveParent, ++/*390553*/ OPC_CheckType, MVT::v16i16, ++/*390555*/ OPC_MoveParent, ++/*390556*/ OPC_CheckType, MVT::v16i16, ++/*390558*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*390560*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b), LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*390568*/ /*Scope*/ 91|128,1/*219*/, /*->390789*/ ++/*390570*/ OPC_CheckChild0Same, 0, ++/*390572*/ OPC_MoveChild1, ++/*390573*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*390576*/ OPC_CheckChild0Integer, 1, ++/*390578*/ OPC_CheckChild0Type, MVT::i32, ++/*390580*/ OPC_CheckChild1Integer, 1, ++/*390582*/ OPC_CheckChild1Type, MVT::i32, ++/*390584*/ OPC_CheckChild2Integer, 1, ++/*390586*/ OPC_CheckChild2Type, MVT::i32, ++/*390588*/ OPC_CheckChild3Integer, 1, ++/*390590*/ OPC_CheckChild3Type, MVT::i32, ++/*390592*/ OPC_CheckChild4Integer, 1, ++/*390594*/ OPC_CheckChild4Type, MVT::i32, ++/*390596*/ OPC_MoveChild5, ++/*390597*/ OPC_CheckInteger, 1, ++/*390599*/ OPC_CheckType, MVT::i32, ++/*390601*/ OPC_MoveParent, ++/*390602*/ OPC_MoveChild6, ++/*390603*/ OPC_CheckInteger, 1, ++/*390605*/ OPC_CheckType, MVT::i32, ++/*390607*/ OPC_MoveParent, ++/*390608*/ OPC_MoveChild7, ++/*390609*/ OPC_CheckInteger, 1, ++/*390611*/ OPC_CheckType, MVT::i32, ++/*390613*/ OPC_MoveParent, ++/*390614*/ OPC_MoveChild, 8, ++/*390616*/ OPC_CheckInteger, 1, ++/*390618*/ OPC_CheckType, MVT::i32, ++/*390620*/ OPC_MoveParent, ++/*390621*/ OPC_MoveChild, 9, ++/*390623*/ OPC_CheckInteger, 1, ++/*390625*/ OPC_CheckType, MVT::i32, ++/*390627*/ OPC_MoveParent, ++/*390628*/ OPC_MoveChild, 10, ++/*390630*/ OPC_CheckInteger, 1, ++/*390632*/ OPC_CheckType, MVT::i32, ++/*390634*/ OPC_MoveParent, ++/*390635*/ OPC_MoveChild, 11, ++/*390637*/ OPC_CheckInteger, 1, ++/*390639*/ OPC_CheckType, MVT::i32, ++/*390641*/ OPC_MoveParent, ++/*390642*/ OPC_MoveChild, 12, ++/*390644*/ OPC_CheckInteger, 1, ++/*390646*/ OPC_CheckType, MVT::i32, ++/*390648*/ OPC_MoveParent, ++/*390649*/ OPC_MoveChild, 13, ++/*390651*/ OPC_CheckInteger, 1, ++/*390653*/ OPC_CheckType, MVT::i32, ++/*390655*/ OPC_MoveParent, ++/*390656*/ OPC_MoveChild, 14, ++/*390658*/ OPC_CheckInteger, 1, ++/*390660*/ OPC_CheckType, MVT::i32, ++/*390662*/ OPC_MoveParent, ++/*390663*/ OPC_MoveChild, 15, ++/*390665*/ OPC_CheckInteger, 1, ++/*390667*/ OPC_CheckType, MVT::i32, ++/*390669*/ OPC_MoveParent, ++/*390670*/ OPC_MoveParent, ++/*390671*/ OPC_MoveParent, ++/*390672*/ OPC_CheckChild1Same, 1, ++/*390674*/ OPC_MoveParent, ++/*390675*/ OPC_MoveParent, ++/*390676*/ OPC_MoveChild1, ++/*390677*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*390680*/ OPC_CheckChild0Integer, 1, ++/*390682*/ OPC_CheckChild0Type, MVT::i32, ++/*390684*/ OPC_CheckChild1Integer, 1, ++/*390686*/ OPC_CheckChild1Type, MVT::i32, ++/*390688*/ OPC_CheckChild2Integer, 1, ++/*390690*/ OPC_CheckChild2Type, MVT::i32, ++/*390692*/ OPC_CheckChild3Integer, 1, ++/*390694*/ OPC_CheckChild3Type, MVT::i32, ++/*390696*/ OPC_CheckChild4Integer, 1, ++/*390698*/ OPC_CheckChild4Type, MVT::i32, ++/*390700*/ OPC_MoveChild5, ++/*390701*/ OPC_CheckInteger, 1, ++/*390703*/ OPC_CheckType, MVT::i32, ++/*390705*/ OPC_MoveParent, ++/*390706*/ OPC_MoveChild6, ++/*390707*/ OPC_CheckInteger, 1, ++/*390709*/ OPC_CheckType, MVT::i32, ++/*390711*/ OPC_MoveParent, ++/*390712*/ OPC_MoveChild7, ++/*390713*/ OPC_CheckInteger, 1, ++/*390715*/ OPC_CheckType, MVT::i32, ++/*390717*/ OPC_MoveParent, ++/*390718*/ OPC_MoveChild, 8, ++/*390720*/ OPC_CheckInteger, 1, ++/*390722*/ OPC_CheckType, MVT::i32, ++/*390724*/ OPC_MoveParent, ++/*390725*/ OPC_MoveChild, 9, ++/*390727*/ OPC_CheckInteger, 1, ++/*390729*/ OPC_CheckType, MVT::i32, ++/*390731*/ OPC_MoveParent, ++/*390732*/ OPC_MoveChild, 10, ++/*390734*/ OPC_CheckInteger, 1, ++/*390736*/ OPC_CheckType, MVT::i32, ++/*390738*/ OPC_MoveParent, ++/*390739*/ OPC_MoveChild, 11, ++/*390741*/ OPC_CheckInteger, 1, ++/*390743*/ OPC_CheckType, MVT::i32, ++/*390745*/ OPC_MoveParent, ++/*390746*/ OPC_MoveChild, 12, ++/*390748*/ OPC_CheckInteger, 1, ++/*390750*/ OPC_CheckType, MVT::i32, ++/*390752*/ OPC_MoveParent, ++/*390753*/ OPC_MoveChild, 13, ++/*390755*/ OPC_CheckInteger, 1, ++/*390757*/ OPC_CheckType, MVT::i32, ++/*390759*/ OPC_MoveParent, ++/*390760*/ OPC_MoveChild, 14, ++/*390762*/ OPC_CheckInteger, 1, ++/*390764*/ OPC_CheckType, MVT::i32, ++/*390766*/ OPC_MoveParent, ++/*390767*/ OPC_MoveChild, 15, ++/*390769*/ OPC_CheckInteger, 1, ++/*390771*/ OPC_CheckType, MVT::i32, ++/*390773*/ OPC_MoveParent, ++/*390774*/ OPC_CheckType, MVT::v16i16, ++/*390776*/ OPC_MoveParent, ++/*390777*/ OPC_CheckType, MVT::v16i16, ++/*390779*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*390781*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*390789*/ /*Scope*/ 91|128,1/*219*/, /*->391010*/ ++/*390791*/ OPC_CheckChild0Same, 1, ++/*390793*/ OPC_CheckChild1Same, 0, ++/*390795*/ OPC_MoveParent, ++/*390796*/ OPC_MoveChild1, ++/*390797*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*390800*/ OPC_CheckChild0Integer, 1, ++/*390802*/ OPC_CheckChild0Type, MVT::i32, ++/*390804*/ OPC_CheckChild1Integer, 1, ++/*390806*/ OPC_CheckChild1Type, MVT::i32, ++/*390808*/ OPC_CheckChild2Integer, 1, ++/*390810*/ OPC_CheckChild2Type, MVT::i32, ++/*390812*/ OPC_CheckChild3Integer, 1, ++/*390814*/ OPC_CheckChild3Type, MVT::i32, ++/*390816*/ OPC_CheckChild4Integer, 1, ++/*390818*/ OPC_CheckChild4Type, MVT::i32, ++/*390820*/ OPC_MoveChild5, ++/*390821*/ OPC_CheckInteger, 1, ++/*390823*/ OPC_CheckType, MVT::i32, ++/*390825*/ OPC_MoveParent, ++/*390826*/ OPC_MoveChild6, ++/*390827*/ OPC_CheckInteger, 1, ++/*390829*/ OPC_CheckType, MVT::i32, ++/*390831*/ OPC_MoveParent, ++/*390832*/ OPC_MoveChild7, ++/*390833*/ OPC_CheckInteger, 1, ++/*390835*/ OPC_CheckType, MVT::i32, ++/*390837*/ OPC_MoveParent, ++/*390838*/ OPC_MoveChild, 8, ++/*390840*/ OPC_CheckInteger, 1, ++/*390842*/ OPC_CheckType, MVT::i32, ++/*390844*/ OPC_MoveParent, ++/*390845*/ OPC_MoveChild, 9, ++/*390847*/ OPC_CheckInteger, 1, ++/*390849*/ OPC_CheckType, MVT::i32, ++/*390851*/ OPC_MoveParent, ++/*390852*/ OPC_MoveChild, 10, ++/*390854*/ OPC_CheckInteger, 1, ++/*390856*/ OPC_CheckType, MVT::i32, ++/*390858*/ OPC_MoveParent, ++/*390859*/ OPC_MoveChild, 11, ++/*390861*/ OPC_CheckInteger, 1, ++/*390863*/ OPC_CheckType, MVT::i32, ++/*390865*/ OPC_MoveParent, ++/*390866*/ OPC_MoveChild, 12, ++/*390868*/ OPC_CheckInteger, 1, ++/*390870*/ OPC_CheckType, MVT::i32, ++/*390872*/ OPC_MoveParent, ++/*390873*/ OPC_MoveChild, 13, ++/*390875*/ OPC_CheckInteger, 1, ++/*390877*/ OPC_CheckType, MVT::i32, ++/*390879*/ OPC_MoveParent, ++/*390880*/ OPC_MoveChild, 14, ++/*390882*/ OPC_CheckInteger, 1, ++/*390884*/ OPC_CheckType, MVT::i32, ++/*390886*/ OPC_MoveParent, ++/*390887*/ OPC_MoveChild, 15, ++/*390889*/ OPC_CheckInteger, 1, ++/*390891*/ OPC_CheckType, MVT::i32, ++/*390893*/ OPC_MoveParent, ++/*390894*/ OPC_MoveParent, ++/*390895*/ OPC_MoveParent, ++/*390896*/ OPC_MoveParent, ++/*390897*/ OPC_MoveChild1, ++/*390898*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*390901*/ OPC_CheckChild0Integer, 1, ++/*390903*/ OPC_CheckChild0Type, MVT::i32, ++/*390905*/ OPC_CheckChild1Integer, 1, ++/*390907*/ OPC_CheckChild1Type, MVT::i32, ++/*390909*/ OPC_CheckChild2Integer, 1, ++/*390911*/ OPC_CheckChild2Type, MVT::i32, ++/*390913*/ OPC_CheckChild3Integer, 1, ++/*390915*/ OPC_CheckChild3Type, MVT::i32, ++/*390917*/ OPC_CheckChild4Integer, 1, ++/*390919*/ OPC_CheckChild4Type, MVT::i32, ++/*390921*/ OPC_MoveChild5, ++/*390922*/ OPC_CheckInteger, 1, ++/*390924*/ OPC_CheckType, MVT::i32, ++/*390926*/ OPC_MoveParent, ++/*390927*/ OPC_MoveChild6, ++/*390928*/ OPC_CheckInteger, 1, ++/*390930*/ OPC_CheckType, MVT::i32, ++/*390932*/ OPC_MoveParent, ++/*390933*/ OPC_MoveChild7, ++/*390934*/ OPC_CheckInteger, 1, ++/*390936*/ OPC_CheckType, MVT::i32, ++/*390938*/ OPC_MoveParent, ++/*390939*/ OPC_MoveChild, 8, ++/*390941*/ OPC_CheckInteger, 1, ++/*390943*/ OPC_CheckType, MVT::i32, ++/*390945*/ OPC_MoveParent, ++/*390946*/ OPC_MoveChild, 9, ++/*390948*/ OPC_CheckInteger, 1, ++/*390950*/ OPC_CheckType, MVT::i32, ++/*390952*/ OPC_MoveParent, ++/*390953*/ OPC_MoveChild, 10, ++/*390955*/ OPC_CheckInteger, 1, ++/*390957*/ OPC_CheckType, MVT::i32, ++/*390959*/ OPC_MoveParent, ++/*390960*/ OPC_MoveChild, 11, ++/*390962*/ OPC_CheckInteger, 1, ++/*390964*/ OPC_CheckType, MVT::i32, ++/*390966*/ OPC_MoveParent, ++/*390967*/ OPC_MoveChild, 12, ++/*390969*/ OPC_CheckInteger, 1, ++/*390971*/ OPC_CheckType, MVT::i32, ++/*390973*/ OPC_MoveParent, ++/*390974*/ OPC_MoveChild, 13, ++/*390976*/ OPC_CheckInteger, 1, ++/*390978*/ OPC_CheckType, MVT::i32, ++/*390980*/ OPC_MoveParent, ++/*390981*/ OPC_MoveChild, 14, ++/*390983*/ OPC_CheckInteger, 1, ++/*390985*/ OPC_CheckType, MVT::i32, ++/*390987*/ OPC_MoveParent, ++/*390988*/ OPC_MoveChild, 15, ++/*390990*/ OPC_CheckInteger, 1, ++/*390992*/ OPC_CheckType, MVT::i32, ++/*390994*/ OPC_MoveParent, ++/*390995*/ OPC_CheckType, MVT::v16i16, ++/*390997*/ OPC_MoveParent, ++/*390998*/ OPC_CheckType, MVT::v16i16, ++/*391000*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*391002*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*391010*/ /*Scope*/ 91|128,1/*219*/, /*->391231*/ ++/*391012*/ OPC_CheckChild0Same, 0, ++/*391014*/ OPC_CheckChild1Same, 1, ++/*391016*/ OPC_MoveParent, ++/*391017*/ OPC_MoveChild1, ++/*391018*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*391021*/ OPC_CheckChild0Integer, 1, ++/*391023*/ OPC_CheckChild0Type, MVT::i32, ++/*391025*/ OPC_CheckChild1Integer, 1, ++/*391027*/ OPC_CheckChild1Type, MVT::i32, ++/*391029*/ OPC_CheckChild2Integer, 1, ++/*391031*/ OPC_CheckChild2Type, MVT::i32, ++/*391033*/ OPC_CheckChild3Integer, 1, ++/*391035*/ OPC_CheckChild3Type, MVT::i32, ++/*391037*/ OPC_CheckChild4Integer, 1, ++/*391039*/ OPC_CheckChild4Type, MVT::i32, ++/*391041*/ OPC_MoveChild5, ++/*391042*/ OPC_CheckInteger, 1, ++/*391044*/ OPC_CheckType, MVT::i32, ++/*391046*/ OPC_MoveParent, ++/*391047*/ OPC_MoveChild6, ++/*391048*/ OPC_CheckInteger, 1, ++/*391050*/ OPC_CheckType, MVT::i32, ++/*391052*/ OPC_MoveParent, ++/*391053*/ OPC_MoveChild7, ++/*391054*/ OPC_CheckInteger, 1, ++/*391056*/ OPC_CheckType, MVT::i32, ++/*391058*/ OPC_MoveParent, ++/*391059*/ OPC_MoveChild, 8, ++/*391061*/ OPC_CheckInteger, 1, ++/*391063*/ OPC_CheckType, MVT::i32, ++/*391065*/ OPC_MoveParent, ++/*391066*/ OPC_MoveChild, 9, ++/*391068*/ OPC_CheckInteger, 1, ++/*391070*/ OPC_CheckType, MVT::i32, ++/*391072*/ OPC_MoveParent, ++/*391073*/ OPC_MoveChild, 10, ++/*391075*/ OPC_CheckInteger, 1, ++/*391077*/ OPC_CheckType, MVT::i32, ++/*391079*/ OPC_MoveParent, ++/*391080*/ OPC_MoveChild, 11, ++/*391082*/ OPC_CheckInteger, 1, ++/*391084*/ OPC_CheckType, MVT::i32, ++/*391086*/ OPC_MoveParent, ++/*391087*/ OPC_MoveChild, 12, ++/*391089*/ OPC_CheckInteger, 1, ++/*391091*/ OPC_CheckType, MVT::i32, ++/*391093*/ OPC_MoveParent, ++/*391094*/ OPC_MoveChild, 13, ++/*391096*/ OPC_CheckInteger, 1, ++/*391098*/ OPC_CheckType, MVT::i32, ++/*391100*/ OPC_MoveParent, ++/*391101*/ OPC_MoveChild, 14, ++/*391103*/ OPC_CheckInteger, 1, ++/*391105*/ OPC_CheckType, MVT::i32, ++/*391107*/ OPC_MoveParent, ++/*391108*/ OPC_MoveChild, 15, ++/*391110*/ OPC_CheckInteger, 1, ++/*391112*/ OPC_CheckType, MVT::i32, ++/*391114*/ OPC_MoveParent, ++/*391115*/ OPC_MoveParent, ++/*391116*/ OPC_MoveParent, ++/*391117*/ OPC_MoveParent, ++/*391118*/ OPC_MoveChild1, ++/*391119*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*391122*/ OPC_CheckChild0Integer, 1, ++/*391124*/ OPC_CheckChild0Type, MVT::i32, ++/*391126*/ OPC_CheckChild1Integer, 1, ++/*391128*/ OPC_CheckChild1Type, MVT::i32, ++/*391130*/ OPC_CheckChild2Integer, 1, ++/*391132*/ OPC_CheckChild2Type, MVT::i32, ++/*391134*/ OPC_CheckChild3Integer, 1, ++/*391136*/ OPC_CheckChild3Type, MVT::i32, ++/*391138*/ OPC_CheckChild4Integer, 1, ++/*391140*/ OPC_CheckChild4Type, MVT::i32, ++/*391142*/ OPC_MoveChild5, ++/*391143*/ OPC_CheckInteger, 1, ++/*391145*/ OPC_CheckType, MVT::i32, ++/*391147*/ OPC_MoveParent, ++/*391148*/ OPC_MoveChild6, ++/*391149*/ OPC_CheckInteger, 1, ++/*391151*/ OPC_CheckType, MVT::i32, ++/*391153*/ OPC_MoveParent, ++/*391154*/ OPC_MoveChild7, ++/*391155*/ OPC_CheckInteger, 1, ++/*391157*/ OPC_CheckType, MVT::i32, ++/*391159*/ OPC_MoveParent, ++/*391160*/ OPC_MoveChild, 8, ++/*391162*/ OPC_CheckInteger, 1, ++/*391164*/ OPC_CheckType, MVT::i32, ++/*391166*/ OPC_MoveParent, ++/*391167*/ OPC_MoveChild, 9, ++/*391169*/ OPC_CheckInteger, 1, ++/*391171*/ OPC_CheckType, MVT::i32, ++/*391173*/ OPC_MoveParent, ++/*391174*/ OPC_MoveChild, 10, ++/*391176*/ OPC_CheckInteger, 1, ++/*391178*/ OPC_CheckType, MVT::i32, ++/*391180*/ OPC_MoveParent, ++/*391181*/ OPC_MoveChild, 11, ++/*391183*/ OPC_CheckInteger, 1, ++/*391185*/ OPC_CheckType, MVT::i32, ++/*391187*/ OPC_MoveParent, ++/*391188*/ OPC_MoveChild, 12, ++/*391190*/ OPC_CheckInteger, 1, ++/*391192*/ OPC_CheckType, MVT::i32, ++/*391194*/ OPC_MoveParent, ++/*391195*/ OPC_MoveChild, 13, ++/*391197*/ OPC_CheckInteger, 1, ++/*391199*/ OPC_CheckType, MVT::i32, ++/*391201*/ OPC_MoveParent, ++/*391202*/ OPC_MoveChild, 14, ++/*391204*/ OPC_CheckInteger, 1, ++/*391206*/ OPC_CheckType, MVT::i32, ++/*391208*/ OPC_MoveParent, ++/*391209*/ OPC_MoveChild, 15, ++/*391211*/ OPC_CheckInteger, 1, ++/*391213*/ OPC_CheckType, MVT::i32, ++/*391215*/ OPC_MoveParent, ++/*391216*/ OPC_CheckType, MVT::v16i16, ++/*391218*/ OPC_MoveParent, ++/*391219*/ OPC_CheckType, MVT::v16i16, ++/*391221*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*391223*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*391231*/ 0, /*End of Scope*/ ++/*391232*/ /*Scope*/ 62|128,3/*446*/, /*->391680*/ ++/*391234*/ OPC_CheckChild0Same, 0, ++/*391236*/ OPC_MoveChild1, ++/*391237*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*391240*/ OPC_Scope, 89|128,1/*217*/, /*->391460*/ // 2 children in Scope ++/*391243*/ OPC_MoveChild0, ++/*391244*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*391247*/ OPC_CheckChild0Integer, 1, ++/*391249*/ OPC_CheckChild0Type, MVT::i32, ++/*391251*/ OPC_CheckChild1Integer, 1, ++/*391253*/ OPC_CheckChild1Type, MVT::i32, ++/*391255*/ OPC_CheckChild2Integer, 1, ++/*391257*/ OPC_CheckChild2Type, MVT::i32, ++/*391259*/ OPC_CheckChild3Integer, 1, ++/*391261*/ OPC_CheckChild3Type, MVT::i32, ++/*391263*/ OPC_CheckChild4Integer, 1, ++/*391265*/ OPC_CheckChild4Type, MVT::i32, ++/*391267*/ OPC_MoveChild5, ++/*391268*/ OPC_CheckInteger, 1, ++/*391270*/ OPC_CheckType, MVT::i32, ++/*391272*/ OPC_MoveParent, ++/*391273*/ OPC_MoveChild6, ++/*391274*/ OPC_CheckInteger, 1, ++/*391276*/ OPC_CheckType, MVT::i32, ++/*391278*/ OPC_MoveParent, ++/*391279*/ OPC_MoveChild7, ++/*391280*/ OPC_CheckInteger, 1, ++/*391282*/ OPC_CheckType, MVT::i32, ++/*391284*/ OPC_MoveParent, ++/*391285*/ OPC_MoveChild, 8, ++/*391287*/ OPC_CheckInteger, 1, ++/*391289*/ OPC_CheckType, MVT::i32, ++/*391291*/ OPC_MoveParent, ++/*391292*/ OPC_MoveChild, 9, ++/*391294*/ OPC_CheckInteger, 1, ++/*391296*/ OPC_CheckType, MVT::i32, ++/*391298*/ OPC_MoveParent, ++/*391299*/ OPC_MoveChild, 10, ++/*391301*/ OPC_CheckInteger, 1, ++/*391303*/ OPC_CheckType, MVT::i32, ++/*391305*/ OPC_MoveParent, ++/*391306*/ OPC_MoveChild, 11, ++/*391308*/ OPC_CheckInteger, 1, ++/*391310*/ OPC_CheckType, MVT::i32, ++/*391312*/ OPC_MoveParent, ++/*391313*/ OPC_MoveChild, 12, ++/*391315*/ OPC_CheckInteger, 1, ++/*391317*/ OPC_CheckType, MVT::i32, ++/*391319*/ OPC_MoveParent, ++/*391320*/ OPC_MoveChild, 13, ++/*391322*/ OPC_CheckInteger, 1, ++/*391324*/ OPC_CheckType, MVT::i32, ++/*391326*/ OPC_MoveParent, ++/*391327*/ OPC_MoveChild, 14, ++/*391329*/ OPC_CheckInteger, 1, ++/*391331*/ OPC_CheckType, MVT::i32, ++/*391333*/ OPC_MoveParent, ++/*391334*/ OPC_MoveChild, 15, ++/*391336*/ OPC_CheckInteger, 1, ++/*391338*/ OPC_CheckType, MVT::i32, ++/*391340*/ OPC_MoveParent, ++/*391341*/ OPC_MoveParent, ++/*391342*/ OPC_CheckChild1Same, 1, ++/*391344*/ OPC_MoveParent, ++/*391345*/ OPC_MoveParent, ++/*391346*/ OPC_MoveParent, ++/*391347*/ OPC_MoveChild1, ++/*391348*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*391351*/ OPC_CheckChild0Integer, 1, ++/*391353*/ OPC_CheckChild0Type, MVT::i32, ++/*391355*/ OPC_CheckChild1Integer, 1, ++/*391357*/ OPC_CheckChild1Type, MVT::i32, ++/*391359*/ OPC_CheckChild2Integer, 1, ++/*391361*/ OPC_CheckChild2Type, MVT::i32, ++/*391363*/ OPC_CheckChild3Integer, 1, ++/*391365*/ OPC_CheckChild3Type, MVT::i32, ++/*391367*/ OPC_CheckChild4Integer, 1, ++/*391369*/ OPC_CheckChild4Type, MVT::i32, ++/*391371*/ OPC_MoveChild5, ++/*391372*/ OPC_CheckInteger, 1, ++/*391374*/ OPC_CheckType, MVT::i32, ++/*391376*/ OPC_MoveParent, ++/*391377*/ OPC_MoveChild6, ++/*391378*/ OPC_CheckInteger, 1, ++/*391380*/ OPC_CheckType, MVT::i32, ++/*391382*/ OPC_MoveParent, ++/*391383*/ OPC_MoveChild7, ++/*391384*/ OPC_CheckInteger, 1, ++/*391386*/ OPC_CheckType, MVT::i32, ++/*391388*/ OPC_MoveParent, ++/*391389*/ OPC_MoveChild, 8, ++/*391391*/ OPC_CheckInteger, 1, ++/*391393*/ OPC_CheckType, MVT::i32, ++/*391395*/ OPC_MoveParent, ++/*391396*/ OPC_MoveChild, 9, ++/*391398*/ OPC_CheckInteger, 1, ++/*391400*/ OPC_CheckType, MVT::i32, ++/*391402*/ OPC_MoveParent, ++/*391403*/ OPC_MoveChild, 10, ++/*391405*/ OPC_CheckInteger, 1, ++/*391407*/ OPC_CheckType, MVT::i32, ++/*391409*/ OPC_MoveParent, ++/*391410*/ OPC_MoveChild, 11, ++/*391412*/ OPC_CheckInteger, 1, ++/*391414*/ OPC_CheckType, MVT::i32, ++/*391416*/ OPC_MoveParent, ++/*391417*/ OPC_MoveChild, 12, ++/*391419*/ OPC_CheckInteger, 1, ++/*391421*/ OPC_CheckType, MVT::i32, ++/*391423*/ OPC_MoveParent, ++/*391424*/ OPC_MoveChild, 13, ++/*391426*/ OPC_CheckInteger, 1, ++/*391428*/ OPC_CheckType, MVT::i32, ++/*391430*/ OPC_MoveParent, ++/*391431*/ OPC_MoveChild, 14, ++/*391433*/ OPC_CheckInteger, 1, ++/*391435*/ OPC_CheckType, MVT::i32, ++/*391437*/ OPC_MoveParent, ++/*391438*/ OPC_MoveChild, 15, ++/*391440*/ OPC_CheckInteger, 1, ++/*391442*/ OPC_CheckType, MVT::i32, ++/*391444*/ OPC_MoveParent, ++/*391445*/ OPC_CheckType, MVT::v16i16, ++/*391447*/ OPC_MoveParent, ++/*391448*/ OPC_CheckType, MVT::v16i16, ++/*391450*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*391452*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*391460*/ /*Scope*/ 89|128,1/*217*/, /*->391679*/ ++/*391462*/ OPC_CheckChild0Same, 1, ++/*391464*/ OPC_MoveChild1, ++/*391465*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*391468*/ OPC_CheckChild0Integer, 1, ++/*391470*/ OPC_CheckChild0Type, MVT::i32, ++/*391472*/ OPC_CheckChild1Integer, 1, ++/*391474*/ OPC_CheckChild1Type, MVT::i32, ++/*391476*/ OPC_CheckChild2Integer, 1, ++/*391478*/ OPC_CheckChild2Type, MVT::i32, ++/*391480*/ OPC_CheckChild3Integer, 1, ++/*391482*/ OPC_CheckChild3Type, MVT::i32, ++/*391484*/ OPC_CheckChild4Integer, 1, ++/*391486*/ OPC_CheckChild4Type, MVT::i32, ++/*391488*/ OPC_MoveChild5, ++/*391489*/ OPC_CheckInteger, 1, ++/*391491*/ OPC_CheckType, MVT::i32, ++/*391493*/ OPC_MoveParent, ++/*391494*/ OPC_MoveChild6, ++/*391495*/ OPC_CheckInteger, 1, ++/*391497*/ OPC_CheckType, MVT::i32, ++/*391499*/ OPC_MoveParent, ++/*391500*/ OPC_MoveChild7, ++/*391501*/ OPC_CheckInteger, 1, ++/*391503*/ OPC_CheckType, MVT::i32, ++/*391505*/ OPC_MoveParent, ++/*391506*/ OPC_MoveChild, 8, ++/*391508*/ OPC_CheckInteger, 1, ++/*391510*/ OPC_CheckType, MVT::i32, ++/*391512*/ OPC_MoveParent, ++/*391513*/ OPC_MoveChild, 9, ++/*391515*/ OPC_CheckInteger, 1, ++/*391517*/ OPC_CheckType, MVT::i32, ++/*391519*/ OPC_MoveParent, ++/*391520*/ OPC_MoveChild, 10, ++/*391522*/ OPC_CheckInteger, 1, ++/*391524*/ OPC_CheckType, MVT::i32, ++/*391526*/ OPC_MoveParent, ++/*391527*/ OPC_MoveChild, 11, ++/*391529*/ OPC_CheckInteger, 1, ++/*391531*/ OPC_CheckType, MVT::i32, ++/*391533*/ OPC_MoveParent, ++/*391534*/ OPC_MoveChild, 12, ++/*391536*/ OPC_CheckInteger, 1, ++/*391538*/ OPC_CheckType, MVT::i32, ++/*391540*/ OPC_MoveParent, ++/*391541*/ OPC_MoveChild, 13, ++/*391543*/ OPC_CheckInteger, 1, ++/*391545*/ OPC_CheckType, MVT::i32, ++/*391547*/ OPC_MoveParent, ++/*391548*/ OPC_MoveChild, 14, ++/*391550*/ OPC_CheckInteger, 1, ++/*391552*/ OPC_CheckType, MVT::i32, ++/*391554*/ OPC_MoveParent, ++/*391555*/ OPC_MoveChild, 15, ++/*391557*/ OPC_CheckInteger, 1, ++/*391559*/ OPC_CheckType, MVT::i32, ++/*391561*/ OPC_MoveParent, ++/*391562*/ OPC_MoveParent, ++/*391563*/ OPC_MoveParent, ++/*391564*/ OPC_MoveParent, ++/*391565*/ OPC_MoveParent, ++/*391566*/ OPC_MoveChild1, ++/*391567*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*391570*/ OPC_CheckChild0Integer, 1, ++/*391572*/ OPC_CheckChild0Type, MVT::i32, ++/*391574*/ OPC_CheckChild1Integer, 1, ++/*391576*/ OPC_CheckChild1Type, MVT::i32, ++/*391578*/ OPC_CheckChild2Integer, 1, ++/*391580*/ OPC_CheckChild2Type, MVT::i32, ++/*391582*/ OPC_CheckChild3Integer, 1, ++/*391584*/ OPC_CheckChild3Type, MVT::i32, ++/*391586*/ OPC_CheckChild4Integer, 1, ++/*391588*/ OPC_CheckChild4Type, MVT::i32, ++/*391590*/ OPC_MoveChild5, ++/*391591*/ OPC_CheckInteger, 1, ++/*391593*/ OPC_CheckType, MVT::i32, ++/*391595*/ OPC_MoveParent, ++/*391596*/ OPC_MoveChild6, ++/*391597*/ OPC_CheckInteger, 1, ++/*391599*/ OPC_CheckType, MVT::i32, ++/*391601*/ OPC_MoveParent, ++/*391602*/ OPC_MoveChild7, ++/*391603*/ OPC_CheckInteger, 1, ++/*391605*/ OPC_CheckType, MVT::i32, ++/*391607*/ OPC_MoveParent, ++/*391608*/ OPC_MoveChild, 8, ++/*391610*/ OPC_CheckInteger, 1, ++/*391612*/ OPC_CheckType, MVT::i32, ++/*391614*/ OPC_MoveParent, ++/*391615*/ OPC_MoveChild, 9, ++/*391617*/ OPC_CheckInteger, 1, ++/*391619*/ OPC_CheckType, MVT::i32, ++/*391621*/ OPC_MoveParent, ++/*391622*/ OPC_MoveChild, 10, ++/*391624*/ OPC_CheckInteger, 1, ++/*391626*/ OPC_CheckType, MVT::i32, ++/*391628*/ OPC_MoveParent, ++/*391629*/ OPC_MoveChild, 11, ++/*391631*/ OPC_CheckInteger, 1, ++/*391633*/ OPC_CheckType, MVT::i32, ++/*391635*/ OPC_MoveParent, ++/*391636*/ OPC_MoveChild, 12, ++/*391638*/ OPC_CheckInteger, 1, ++/*391640*/ OPC_CheckType, MVT::i32, ++/*391642*/ OPC_MoveParent, ++/*391643*/ OPC_MoveChild, 13, ++/*391645*/ OPC_CheckInteger, 1, ++/*391647*/ OPC_CheckType, MVT::i32, ++/*391649*/ OPC_MoveParent, ++/*391650*/ OPC_MoveChild, 14, ++/*391652*/ OPC_CheckInteger, 1, ++/*391654*/ OPC_CheckType, MVT::i32, ++/*391656*/ OPC_MoveParent, ++/*391657*/ OPC_MoveChild, 15, ++/*391659*/ OPC_CheckInteger, 1, ++/*391661*/ OPC_CheckType, MVT::i32, ++/*391663*/ OPC_MoveParent, ++/*391664*/ OPC_CheckType, MVT::v16i16, ++/*391666*/ OPC_MoveParent, ++/*391667*/ OPC_CheckType, MVT::v16i16, ++/*391669*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*391671*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*391679*/ 0, /*End of Scope*/ ++/*391680*/ /*Scope*/ 62|128,3/*446*/, /*->392128*/ ++/*391682*/ OPC_CheckChild0Same, 1, ++/*391684*/ OPC_MoveChild1, ++/*391685*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*391688*/ OPC_Scope, 89|128,1/*217*/, /*->391908*/ // 2 children in Scope ++/*391691*/ OPC_MoveChild0, ++/*391692*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*391695*/ OPC_CheckChild0Integer, 1, ++/*391697*/ OPC_CheckChild0Type, MVT::i32, ++/*391699*/ OPC_CheckChild1Integer, 1, ++/*391701*/ OPC_CheckChild1Type, MVT::i32, ++/*391703*/ OPC_CheckChild2Integer, 1, ++/*391705*/ OPC_CheckChild2Type, MVT::i32, ++/*391707*/ OPC_CheckChild3Integer, 1, ++/*391709*/ OPC_CheckChild3Type, MVT::i32, ++/*391711*/ OPC_CheckChild4Integer, 1, ++/*391713*/ OPC_CheckChild4Type, MVT::i32, ++/*391715*/ OPC_MoveChild5, ++/*391716*/ OPC_CheckInteger, 1, ++/*391718*/ OPC_CheckType, MVT::i32, ++/*391720*/ OPC_MoveParent, ++/*391721*/ OPC_MoveChild6, ++/*391722*/ OPC_CheckInteger, 1, ++/*391724*/ OPC_CheckType, MVT::i32, ++/*391726*/ OPC_MoveParent, ++/*391727*/ OPC_MoveChild7, ++/*391728*/ OPC_CheckInteger, 1, ++/*391730*/ OPC_CheckType, MVT::i32, ++/*391732*/ OPC_MoveParent, ++/*391733*/ OPC_MoveChild, 8, ++/*391735*/ OPC_CheckInteger, 1, ++/*391737*/ OPC_CheckType, MVT::i32, ++/*391739*/ OPC_MoveParent, ++/*391740*/ OPC_MoveChild, 9, ++/*391742*/ OPC_CheckInteger, 1, ++/*391744*/ OPC_CheckType, MVT::i32, ++/*391746*/ OPC_MoveParent, ++/*391747*/ OPC_MoveChild, 10, ++/*391749*/ OPC_CheckInteger, 1, ++/*391751*/ OPC_CheckType, MVT::i32, ++/*391753*/ OPC_MoveParent, ++/*391754*/ OPC_MoveChild, 11, ++/*391756*/ OPC_CheckInteger, 1, ++/*391758*/ OPC_CheckType, MVT::i32, ++/*391760*/ OPC_MoveParent, ++/*391761*/ OPC_MoveChild, 12, ++/*391763*/ OPC_CheckInteger, 1, ++/*391765*/ OPC_CheckType, MVT::i32, ++/*391767*/ OPC_MoveParent, ++/*391768*/ OPC_MoveChild, 13, ++/*391770*/ OPC_CheckInteger, 1, ++/*391772*/ OPC_CheckType, MVT::i32, ++/*391774*/ OPC_MoveParent, ++/*391775*/ OPC_MoveChild, 14, ++/*391777*/ OPC_CheckInteger, 1, ++/*391779*/ OPC_CheckType, MVT::i32, ++/*391781*/ OPC_MoveParent, ++/*391782*/ OPC_MoveChild, 15, ++/*391784*/ OPC_CheckInteger, 1, ++/*391786*/ OPC_CheckType, MVT::i32, ++/*391788*/ OPC_MoveParent, ++/*391789*/ OPC_MoveParent, ++/*391790*/ OPC_CheckChild1Same, 0, ++/*391792*/ OPC_MoveParent, ++/*391793*/ OPC_MoveParent, ++/*391794*/ OPC_MoveParent, ++/*391795*/ OPC_MoveChild1, ++/*391796*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*391799*/ OPC_CheckChild0Integer, 1, ++/*391801*/ OPC_CheckChild0Type, MVT::i32, ++/*391803*/ OPC_CheckChild1Integer, 1, ++/*391805*/ OPC_CheckChild1Type, MVT::i32, ++/*391807*/ OPC_CheckChild2Integer, 1, ++/*391809*/ OPC_CheckChild2Type, MVT::i32, ++/*391811*/ OPC_CheckChild3Integer, 1, ++/*391813*/ OPC_CheckChild3Type, MVT::i32, ++/*391815*/ OPC_CheckChild4Integer, 1, ++/*391817*/ OPC_CheckChild4Type, MVT::i32, ++/*391819*/ OPC_MoveChild5, ++/*391820*/ OPC_CheckInteger, 1, ++/*391822*/ OPC_CheckType, MVT::i32, ++/*391824*/ OPC_MoveParent, ++/*391825*/ OPC_MoveChild6, ++/*391826*/ OPC_CheckInteger, 1, ++/*391828*/ OPC_CheckType, MVT::i32, ++/*391830*/ OPC_MoveParent, ++/*391831*/ OPC_MoveChild7, ++/*391832*/ OPC_CheckInteger, 1, ++/*391834*/ OPC_CheckType, MVT::i32, ++/*391836*/ OPC_MoveParent, ++/*391837*/ OPC_MoveChild, 8, ++/*391839*/ OPC_CheckInteger, 1, ++/*391841*/ OPC_CheckType, MVT::i32, ++/*391843*/ OPC_MoveParent, ++/*391844*/ OPC_MoveChild, 9, ++/*391846*/ OPC_CheckInteger, 1, ++/*391848*/ OPC_CheckType, MVT::i32, ++/*391850*/ OPC_MoveParent, ++/*391851*/ OPC_MoveChild, 10, ++/*391853*/ OPC_CheckInteger, 1, ++/*391855*/ OPC_CheckType, MVT::i32, ++/*391857*/ OPC_MoveParent, ++/*391858*/ OPC_MoveChild, 11, ++/*391860*/ OPC_CheckInteger, 1, ++/*391862*/ OPC_CheckType, MVT::i32, ++/*391864*/ OPC_MoveParent, ++/*391865*/ OPC_MoveChild, 12, ++/*391867*/ OPC_CheckInteger, 1, ++/*391869*/ OPC_CheckType, MVT::i32, ++/*391871*/ OPC_MoveParent, ++/*391872*/ OPC_MoveChild, 13, ++/*391874*/ OPC_CheckInteger, 1, ++/*391876*/ OPC_CheckType, MVT::i32, ++/*391878*/ OPC_MoveParent, ++/*391879*/ OPC_MoveChild, 14, ++/*391881*/ OPC_CheckInteger, 1, ++/*391883*/ OPC_CheckType, MVT::i32, ++/*391885*/ OPC_MoveParent, ++/*391886*/ OPC_MoveChild, 15, ++/*391888*/ OPC_CheckInteger, 1, ++/*391890*/ OPC_CheckType, MVT::i32, ++/*391892*/ OPC_MoveParent, ++/*391893*/ OPC_CheckType, MVT::v16i16, ++/*391895*/ OPC_MoveParent, ++/*391896*/ OPC_CheckType, MVT::v16i16, ++/*391898*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*391900*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*391908*/ /*Scope*/ 89|128,1/*217*/, /*->392127*/ ++/*391910*/ OPC_CheckChild0Same, 0, ++/*391912*/ OPC_MoveChild1, ++/*391913*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*391916*/ OPC_CheckChild0Integer, 1, ++/*391918*/ OPC_CheckChild0Type, MVT::i32, ++/*391920*/ OPC_CheckChild1Integer, 1, ++/*391922*/ OPC_CheckChild1Type, MVT::i32, ++/*391924*/ OPC_CheckChild2Integer, 1, ++/*391926*/ OPC_CheckChild2Type, MVT::i32, ++/*391928*/ OPC_CheckChild3Integer, 1, ++/*391930*/ OPC_CheckChild3Type, MVT::i32, ++/*391932*/ OPC_CheckChild4Integer, 1, ++/*391934*/ OPC_CheckChild4Type, MVT::i32, ++/*391936*/ OPC_MoveChild5, ++/*391937*/ OPC_CheckInteger, 1, ++/*391939*/ OPC_CheckType, MVT::i32, ++/*391941*/ OPC_MoveParent, ++/*391942*/ OPC_MoveChild6, ++/*391943*/ OPC_CheckInteger, 1, ++/*391945*/ OPC_CheckType, MVT::i32, ++/*391947*/ OPC_MoveParent, ++/*391948*/ OPC_MoveChild7, ++/*391949*/ OPC_CheckInteger, 1, ++/*391951*/ OPC_CheckType, MVT::i32, ++/*391953*/ OPC_MoveParent, ++/*391954*/ OPC_MoveChild, 8, ++/*391956*/ OPC_CheckInteger, 1, ++/*391958*/ OPC_CheckType, MVT::i32, ++/*391960*/ OPC_MoveParent, ++/*391961*/ OPC_MoveChild, 9, ++/*391963*/ OPC_CheckInteger, 1, ++/*391965*/ OPC_CheckType, MVT::i32, ++/*391967*/ OPC_MoveParent, ++/*391968*/ OPC_MoveChild, 10, ++/*391970*/ OPC_CheckInteger, 1, ++/*391972*/ OPC_CheckType, MVT::i32, ++/*391974*/ OPC_MoveParent, ++/*391975*/ OPC_MoveChild, 11, ++/*391977*/ OPC_CheckInteger, 1, ++/*391979*/ OPC_CheckType, MVT::i32, ++/*391981*/ OPC_MoveParent, ++/*391982*/ OPC_MoveChild, 12, ++/*391984*/ OPC_CheckInteger, 1, ++/*391986*/ OPC_CheckType, MVT::i32, ++/*391988*/ OPC_MoveParent, ++/*391989*/ OPC_MoveChild, 13, ++/*391991*/ OPC_CheckInteger, 1, ++/*391993*/ OPC_CheckType, MVT::i32, ++/*391995*/ OPC_MoveParent, ++/*391996*/ OPC_MoveChild, 14, ++/*391998*/ OPC_CheckInteger, 1, ++/*392000*/ OPC_CheckType, MVT::i32, ++/*392002*/ OPC_MoveParent, ++/*392003*/ OPC_MoveChild, 15, ++/*392005*/ OPC_CheckInteger, 1, ++/*392007*/ OPC_CheckType, MVT::i32, ++/*392009*/ OPC_MoveParent, ++/*392010*/ OPC_MoveParent, ++/*392011*/ OPC_MoveParent, ++/*392012*/ OPC_MoveParent, ++/*392013*/ OPC_MoveParent, ++/*392014*/ OPC_MoveChild1, ++/*392015*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*392018*/ OPC_CheckChild0Integer, 1, ++/*392020*/ OPC_CheckChild0Type, MVT::i32, ++/*392022*/ OPC_CheckChild1Integer, 1, ++/*392024*/ OPC_CheckChild1Type, MVT::i32, ++/*392026*/ OPC_CheckChild2Integer, 1, ++/*392028*/ OPC_CheckChild2Type, MVT::i32, ++/*392030*/ OPC_CheckChild3Integer, 1, ++/*392032*/ OPC_CheckChild3Type, MVT::i32, ++/*392034*/ OPC_CheckChild4Integer, 1, ++/*392036*/ OPC_CheckChild4Type, MVT::i32, ++/*392038*/ OPC_MoveChild5, ++/*392039*/ OPC_CheckInteger, 1, ++/*392041*/ OPC_CheckType, MVT::i32, ++/*392043*/ OPC_MoveParent, ++/*392044*/ OPC_MoveChild6, ++/*392045*/ OPC_CheckInteger, 1, ++/*392047*/ OPC_CheckType, MVT::i32, ++/*392049*/ OPC_MoveParent, ++/*392050*/ OPC_MoveChild7, ++/*392051*/ OPC_CheckInteger, 1, ++/*392053*/ OPC_CheckType, MVT::i32, ++/*392055*/ OPC_MoveParent, ++/*392056*/ OPC_MoveChild, 8, ++/*392058*/ OPC_CheckInteger, 1, ++/*392060*/ OPC_CheckType, MVT::i32, ++/*392062*/ OPC_MoveParent, ++/*392063*/ OPC_MoveChild, 9, ++/*392065*/ OPC_CheckInteger, 1, ++/*392067*/ OPC_CheckType, MVT::i32, ++/*392069*/ OPC_MoveParent, ++/*392070*/ OPC_MoveChild, 10, ++/*392072*/ OPC_CheckInteger, 1, ++/*392074*/ OPC_CheckType, MVT::i32, ++/*392076*/ OPC_MoveParent, ++/*392077*/ OPC_MoveChild, 11, ++/*392079*/ OPC_CheckInteger, 1, ++/*392081*/ OPC_CheckType, MVT::i32, ++/*392083*/ OPC_MoveParent, ++/*392084*/ OPC_MoveChild, 12, ++/*392086*/ OPC_CheckInteger, 1, ++/*392088*/ OPC_CheckType, MVT::i32, ++/*392090*/ OPC_MoveParent, ++/*392091*/ OPC_MoveChild, 13, ++/*392093*/ OPC_CheckInteger, 1, ++/*392095*/ OPC_CheckType, MVT::i32, ++/*392097*/ OPC_MoveParent, ++/*392098*/ OPC_MoveChild, 14, ++/*392100*/ OPC_CheckInteger, 1, ++/*392102*/ OPC_CheckType, MVT::i32, ++/*392104*/ OPC_MoveParent, ++/*392105*/ OPC_MoveChild, 15, ++/*392107*/ OPC_CheckInteger, 1, ++/*392109*/ OPC_CheckType, MVT::i32, ++/*392111*/ OPC_MoveParent, ++/*392112*/ OPC_CheckType, MVT::v16i16, ++/*392114*/ OPC_MoveParent, ++/*392115*/ OPC_CheckType, MVT::v16i16, ++/*392117*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*392119*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*392127*/ 0, /*End of Scope*/ ++/*392128*/ /*Scope*/ 91|128,2/*347*/, /*->392477*/ ++/*392130*/ OPC_MoveChild0, ++/*392131*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*392134*/ OPC_CheckChild0Integer, 1, ++/*392136*/ OPC_CheckChild0Type, MVT::i32, ++/*392138*/ OPC_CheckChild1Integer, 1, ++/*392140*/ OPC_CheckChild1Type, MVT::i32, ++/*392142*/ OPC_CheckChild2Integer, 1, ++/*392144*/ OPC_CheckChild2Type, MVT::i32, ++/*392146*/ OPC_CheckChild3Integer, 1, ++/*392148*/ OPC_CheckChild3Type, MVT::i32, ++/*392150*/ OPC_CheckChild4Integer, 1, ++/*392152*/ OPC_CheckChild4Type, MVT::i32, ++/*392154*/ OPC_MoveChild5, ++/*392155*/ OPC_CheckInteger, 1, ++/*392157*/ OPC_CheckType, MVT::i32, ++/*392159*/ OPC_MoveParent, ++/*392160*/ OPC_MoveChild6, ++/*392161*/ OPC_CheckInteger, 1, ++/*392163*/ OPC_CheckType, MVT::i32, ++/*392165*/ OPC_MoveParent, ++/*392166*/ OPC_MoveChild7, ++/*392167*/ OPC_CheckInteger, 1, ++/*392169*/ OPC_CheckType, MVT::i32, ++/*392171*/ OPC_MoveParent, ++/*392172*/ OPC_MoveChild, 8, ++/*392174*/ OPC_CheckInteger, 1, ++/*392176*/ OPC_CheckType, MVT::i32, ++/*392178*/ OPC_MoveParent, ++/*392179*/ OPC_MoveChild, 9, ++/*392181*/ OPC_CheckInteger, 1, ++/*392183*/ OPC_CheckType, MVT::i32, ++/*392185*/ OPC_MoveParent, ++/*392186*/ OPC_MoveChild, 10, ++/*392188*/ OPC_CheckInteger, 1, ++/*392190*/ OPC_CheckType, MVT::i32, ++/*392192*/ OPC_MoveParent, ++/*392193*/ OPC_MoveChild, 11, ++/*392195*/ OPC_CheckInteger, 1, ++/*392197*/ OPC_CheckType, MVT::i32, ++/*392199*/ OPC_MoveParent, ++/*392200*/ OPC_MoveChild, 12, ++/*392202*/ OPC_CheckInteger, 1, ++/*392204*/ OPC_CheckType, MVT::i32, ++/*392206*/ OPC_MoveParent, ++/*392207*/ OPC_MoveChild, 13, ++/*392209*/ OPC_CheckInteger, 1, ++/*392211*/ OPC_CheckType, MVT::i32, ++/*392213*/ OPC_MoveParent, ++/*392214*/ OPC_MoveChild, 14, ++/*392216*/ OPC_CheckInteger, 1, ++/*392218*/ OPC_CheckType, MVT::i32, ++/*392220*/ OPC_MoveParent, ++/*392221*/ OPC_MoveChild, 15, ++/*392223*/ OPC_CheckInteger, 1, ++/*392225*/ OPC_CheckType, MVT::i32, ++/*392227*/ OPC_MoveParent, ++/*392228*/ OPC_MoveParent, ++/*392229*/ OPC_MoveChild1, ++/*392230*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*392233*/ OPC_Scope, 120, /*->392355*/ // 2 children in Scope ++/*392235*/ OPC_CheckChild0Same, 1, ++/*392237*/ OPC_CheckChild1Same, 0, ++/*392239*/ OPC_MoveParent, ++/*392240*/ OPC_MoveParent, ++/*392241*/ OPC_MoveParent, ++/*392242*/ OPC_MoveChild1, ++/*392243*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*392246*/ OPC_CheckChild0Integer, 1, ++/*392248*/ OPC_CheckChild0Type, MVT::i32, ++/*392250*/ OPC_CheckChild1Integer, 1, ++/*392252*/ OPC_CheckChild1Type, MVT::i32, ++/*392254*/ OPC_CheckChild2Integer, 1, ++/*392256*/ OPC_CheckChild2Type, MVT::i32, ++/*392258*/ OPC_CheckChild3Integer, 1, ++/*392260*/ OPC_CheckChild3Type, MVT::i32, ++/*392262*/ OPC_CheckChild4Integer, 1, ++/*392264*/ OPC_CheckChild4Type, MVT::i32, ++/*392266*/ OPC_MoveChild5, ++/*392267*/ OPC_CheckInteger, 1, ++/*392269*/ OPC_CheckType, MVT::i32, ++/*392271*/ OPC_MoveParent, ++/*392272*/ OPC_MoveChild6, ++/*392273*/ OPC_CheckInteger, 1, ++/*392275*/ OPC_CheckType, MVT::i32, ++/*392277*/ OPC_MoveParent, ++/*392278*/ OPC_MoveChild7, ++/*392279*/ OPC_CheckInteger, 1, ++/*392281*/ OPC_CheckType, MVT::i32, ++/*392283*/ OPC_MoveParent, ++/*392284*/ OPC_MoveChild, 8, ++/*392286*/ OPC_CheckInteger, 1, ++/*392288*/ OPC_CheckType, MVT::i32, ++/*392290*/ OPC_MoveParent, ++/*392291*/ OPC_MoveChild, 9, ++/*392293*/ OPC_CheckInteger, 1, ++/*392295*/ OPC_CheckType, MVT::i32, ++/*392297*/ OPC_MoveParent, ++/*392298*/ OPC_MoveChild, 10, ++/*392300*/ OPC_CheckInteger, 1, ++/*392302*/ OPC_CheckType, MVT::i32, ++/*392304*/ OPC_MoveParent, ++/*392305*/ OPC_MoveChild, 11, ++/*392307*/ OPC_CheckInteger, 1, ++/*392309*/ OPC_CheckType, MVT::i32, ++/*392311*/ OPC_MoveParent, ++/*392312*/ OPC_MoveChild, 12, ++/*392314*/ OPC_CheckInteger, 1, ++/*392316*/ OPC_CheckType, MVT::i32, ++/*392318*/ OPC_MoveParent, ++/*392319*/ OPC_MoveChild, 13, ++/*392321*/ OPC_CheckInteger, 1, ++/*392323*/ OPC_CheckType, MVT::i32, ++/*392325*/ OPC_MoveParent, ++/*392326*/ OPC_MoveChild, 14, ++/*392328*/ OPC_CheckInteger, 1, ++/*392330*/ OPC_CheckType, MVT::i32, ++/*392332*/ OPC_MoveParent, ++/*392333*/ OPC_MoveChild, 15, ++/*392335*/ OPC_CheckInteger, 1, ++/*392337*/ OPC_CheckType, MVT::i32, ++/*392339*/ OPC_MoveParent, ++/*392340*/ OPC_CheckType, MVT::v16i16, ++/*392342*/ OPC_MoveParent, ++/*392343*/ OPC_CheckType, MVT::v16i16, ++/*392345*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*392347*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*392355*/ /*Scope*/ 120, /*->392476*/ ++/*392356*/ OPC_CheckChild0Same, 0, ++/*392358*/ OPC_CheckChild1Same, 1, ++/*392360*/ OPC_MoveParent, ++/*392361*/ OPC_MoveParent, ++/*392362*/ OPC_MoveParent, ++/*392363*/ OPC_MoveChild1, ++/*392364*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*392367*/ OPC_CheckChild0Integer, 1, ++/*392369*/ OPC_CheckChild0Type, MVT::i32, ++/*392371*/ OPC_CheckChild1Integer, 1, ++/*392373*/ OPC_CheckChild1Type, MVT::i32, ++/*392375*/ OPC_CheckChild2Integer, 1, ++/*392377*/ OPC_CheckChild2Type, MVT::i32, ++/*392379*/ OPC_CheckChild3Integer, 1, ++/*392381*/ OPC_CheckChild3Type, MVT::i32, ++/*392383*/ OPC_CheckChild4Integer, 1, ++/*392385*/ OPC_CheckChild4Type, MVT::i32, ++/*392387*/ OPC_MoveChild5, ++/*392388*/ OPC_CheckInteger, 1, ++/*392390*/ OPC_CheckType, MVT::i32, ++/*392392*/ OPC_MoveParent, ++/*392393*/ OPC_MoveChild6, ++/*392394*/ OPC_CheckInteger, 1, ++/*392396*/ OPC_CheckType, MVT::i32, ++/*392398*/ OPC_MoveParent, ++/*392399*/ OPC_MoveChild7, ++/*392400*/ OPC_CheckInteger, 1, ++/*392402*/ OPC_CheckType, MVT::i32, ++/*392404*/ OPC_MoveParent, ++/*392405*/ OPC_MoveChild, 8, ++/*392407*/ OPC_CheckInteger, 1, ++/*392409*/ OPC_CheckType, MVT::i32, ++/*392411*/ OPC_MoveParent, ++/*392412*/ OPC_MoveChild, 9, ++/*392414*/ OPC_CheckInteger, 1, ++/*392416*/ OPC_CheckType, MVT::i32, ++/*392418*/ OPC_MoveParent, ++/*392419*/ OPC_MoveChild, 10, ++/*392421*/ OPC_CheckInteger, 1, ++/*392423*/ OPC_CheckType, MVT::i32, ++/*392425*/ OPC_MoveParent, ++/*392426*/ OPC_MoveChild, 11, ++/*392428*/ OPC_CheckInteger, 1, ++/*392430*/ OPC_CheckType, MVT::i32, ++/*392432*/ OPC_MoveParent, ++/*392433*/ OPC_MoveChild, 12, ++/*392435*/ OPC_CheckInteger, 1, ++/*392437*/ OPC_CheckType, MVT::i32, ++/*392439*/ OPC_MoveParent, ++/*392440*/ OPC_MoveChild, 13, ++/*392442*/ OPC_CheckInteger, 1, ++/*392444*/ OPC_CheckType, MVT::i32, ++/*392446*/ OPC_MoveParent, ++/*392447*/ OPC_MoveChild, 14, ++/*392449*/ OPC_CheckInteger, 1, ++/*392451*/ OPC_CheckType, MVT::i32, ++/*392453*/ OPC_MoveParent, ++/*392454*/ OPC_MoveChild, 15, ++/*392456*/ OPC_CheckInteger, 1, ++/*392458*/ OPC_CheckType, MVT::i32, ++/*392460*/ OPC_MoveParent, ++/*392461*/ OPC_CheckType, MVT::v16i16, ++/*392463*/ OPC_MoveParent, ++/*392464*/ OPC_CheckType, MVT::v16i16, ++/*392466*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*392468*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*392476*/ 0, /*End of Scope*/ ++/*392477*/ 0, /*End of Scope*/ ++/*392478*/ /*Scope*/ 101|128,21/*2789*/, /*->395269*/ ++/*392480*/ OPC_RecordChild0, // #1 = $a ++/*392481*/ OPC_MoveChild1, ++/*392482*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*392485*/ OPC_CheckChild0Integer, 1, ++/*392487*/ OPC_CheckChild0Type, MVT::i32, ++/*392489*/ OPC_CheckChild1Integer, 1, ++/*392491*/ OPC_CheckChild1Type, MVT::i32, ++/*392493*/ OPC_CheckChild2Integer, 1, ++/*392495*/ OPC_CheckChild2Type, MVT::i32, ++/*392497*/ OPC_CheckChild3Integer, 1, ++/*392499*/ OPC_CheckChild3Type, MVT::i32, ++/*392501*/ OPC_CheckChild4Integer, 1, ++/*392503*/ OPC_CheckChild4Type, MVT::i32, ++/*392505*/ OPC_MoveChild5, ++/*392506*/ OPC_CheckInteger, 1, ++/*392508*/ OPC_CheckType, MVT::i32, ++/*392510*/ OPC_MoveParent, ++/*392511*/ OPC_MoveChild6, ++/*392512*/ OPC_CheckInteger, 1, ++/*392514*/ OPC_CheckType, MVT::i32, ++/*392516*/ OPC_MoveParent, ++/*392517*/ OPC_MoveChild7, ++/*392518*/ OPC_CheckInteger, 1, ++/*392520*/ OPC_CheckType, MVT::i32, ++/*392522*/ OPC_MoveParent, ++/*392523*/ OPC_MoveChild, 8, ++/*392525*/ OPC_CheckInteger, 1, ++/*392527*/ OPC_CheckType, MVT::i32, ++/*392529*/ OPC_MoveParent, ++/*392530*/ OPC_MoveChild, 9, ++/*392532*/ OPC_CheckInteger, 1, ++/*392534*/ OPC_CheckType, MVT::i32, ++/*392536*/ OPC_MoveParent, ++/*392537*/ OPC_MoveChild, 10, ++/*392539*/ OPC_CheckInteger, 1, ++/*392541*/ OPC_CheckType, MVT::i32, ++/*392543*/ OPC_MoveParent, ++/*392544*/ OPC_MoveChild, 11, ++/*392546*/ OPC_CheckInteger, 1, ++/*392548*/ OPC_CheckType, MVT::i32, ++/*392550*/ OPC_MoveParent, ++/*392551*/ OPC_MoveChild, 12, ++/*392553*/ OPC_CheckInteger, 1, ++/*392555*/ OPC_CheckType, MVT::i32, ++/*392557*/ OPC_MoveParent, ++/*392558*/ OPC_MoveChild, 13, ++/*392560*/ OPC_CheckInteger, 1, ++/*392562*/ OPC_CheckType, MVT::i32, ++/*392564*/ OPC_MoveParent, ++/*392565*/ OPC_MoveChild, 14, ++/*392567*/ OPC_CheckInteger, 1, ++/*392569*/ OPC_CheckType, MVT::i32, ++/*392571*/ OPC_MoveParent, ++/*392572*/ OPC_MoveChild, 15, ++/*392574*/ OPC_CheckInteger, 1, ++/*392576*/ OPC_CheckType, MVT::i32, ++/*392578*/ OPC_MoveParent, ++/*392579*/ OPC_MoveParent, ++/*392580*/ OPC_MoveParent, ++/*392581*/ OPC_MoveParent, ++/*392582*/ OPC_MoveChild1, ++/*392583*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*392586*/ OPC_CheckChild0Integer, 15, ++/*392588*/ OPC_CheckChild0Type, MVT::i32, ++/*392590*/ OPC_CheckChild1Integer, 15, ++/*392592*/ OPC_CheckChild1Type, MVT::i32, ++/*392594*/ OPC_CheckChild2Integer, 15, ++/*392596*/ OPC_CheckChild2Type, MVT::i32, ++/*392598*/ OPC_CheckChild3Integer, 15, ++/*392600*/ OPC_CheckChild3Type, MVT::i32, ++/*392602*/ OPC_CheckChild4Integer, 15, ++/*392604*/ OPC_CheckChild4Type, MVT::i32, ++/*392606*/ OPC_MoveChild5, ++/*392607*/ OPC_CheckInteger, 15, ++/*392609*/ OPC_CheckType, MVT::i32, ++/*392611*/ OPC_MoveParent, ++/*392612*/ OPC_MoveChild6, ++/*392613*/ OPC_CheckInteger, 15, ++/*392615*/ OPC_CheckType, MVT::i32, ++/*392617*/ OPC_MoveParent, ++/*392618*/ OPC_MoveChild7, ++/*392619*/ OPC_CheckInteger, 15, ++/*392621*/ OPC_CheckType, MVT::i32, ++/*392623*/ OPC_MoveParent, ++/*392624*/ OPC_MoveChild, 8, ++/*392626*/ OPC_CheckInteger, 15, ++/*392628*/ OPC_CheckType, MVT::i32, ++/*392630*/ OPC_MoveParent, ++/*392631*/ OPC_MoveChild, 9, ++/*392633*/ OPC_CheckInteger, 15, ++/*392635*/ OPC_CheckType, MVT::i32, ++/*392637*/ OPC_MoveParent, ++/*392638*/ OPC_MoveChild, 10, ++/*392640*/ OPC_CheckInteger, 15, ++/*392642*/ OPC_CheckType, MVT::i32, ++/*392644*/ OPC_MoveParent, ++/*392645*/ OPC_MoveChild, 11, ++/*392647*/ OPC_CheckInteger, 15, ++/*392649*/ OPC_CheckType, MVT::i32, ++/*392651*/ OPC_MoveParent, ++/*392652*/ OPC_MoveChild, 12, ++/*392654*/ OPC_CheckInteger, 15, ++/*392656*/ OPC_CheckType, MVT::i32, ++/*392658*/ OPC_MoveParent, ++/*392659*/ OPC_MoveChild, 13, ++/*392661*/ OPC_CheckInteger, 15, ++/*392663*/ OPC_CheckType, MVT::i32, ++/*392665*/ OPC_MoveParent, ++/*392666*/ OPC_MoveChild, 14, ++/*392668*/ OPC_CheckInteger, 15, ++/*392670*/ OPC_CheckType, MVT::i32, ++/*392672*/ OPC_MoveParent, ++/*392673*/ OPC_MoveChild, 15, ++/*392675*/ OPC_CheckInteger, 15, ++/*392677*/ OPC_CheckType, MVT::i32, ++/*392679*/ OPC_MoveParent, ++/*392680*/ OPC_CheckType, MVT::v16i16, ++/*392682*/ OPC_MoveParent, ++/*392683*/ OPC_MoveParent, ++/*392684*/ OPC_MoveChild1, ++/*392685*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*392688*/ OPC_Scope, 52|128,10/*1332*/, /*->394023*/ // 4 children in Scope ++/*392691*/ OPC_MoveChild0, ++/*392692*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*392695*/ OPC_Scope, 91|128,1/*219*/, /*->392917*/ // 6 children in Scope ++/*392698*/ OPC_MoveChild0, ++/*392699*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*392702*/ OPC_CheckChild0Integer, 1, ++/*392704*/ OPC_CheckChild0Type, MVT::i32, ++/*392706*/ OPC_CheckChild1Integer, 1, ++/*392708*/ OPC_CheckChild1Type, MVT::i32, ++/*392710*/ OPC_CheckChild2Integer, 1, ++/*392712*/ OPC_CheckChild2Type, MVT::i32, ++/*392714*/ OPC_CheckChild3Integer, 1, ++/*392716*/ OPC_CheckChild3Type, MVT::i32, ++/*392718*/ OPC_CheckChild4Integer, 1, ++/*392720*/ OPC_CheckChild4Type, MVT::i32, ++/*392722*/ OPC_MoveChild5, ++/*392723*/ OPC_CheckInteger, 1, ++/*392725*/ OPC_CheckType, MVT::i32, ++/*392727*/ OPC_MoveParent, ++/*392728*/ OPC_MoveChild6, ++/*392729*/ OPC_CheckInteger, 1, ++/*392731*/ OPC_CheckType, MVT::i32, ++/*392733*/ OPC_MoveParent, ++/*392734*/ OPC_MoveChild7, ++/*392735*/ OPC_CheckInteger, 1, ++/*392737*/ OPC_CheckType, MVT::i32, ++/*392739*/ OPC_MoveParent, ++/*392740*/ OPC_MoveChild, 8, ++/*392742*/ OPC_CheckInteger, 1, ++/*392744*/ OPC_CheckType, MVT::i32, ++/*392746*/ OPC_MoveParent, ++/*392747*/ OPC_MoveChild, 9, ++/*392749*/ OPC_CheckInteger, 1, ++/*392751*/ OPC_CheckType, MVT::i32, ++/*392753*/ OPC_MoveParent, ++/*392754*/ OPC_MoveChild, 10, ++/*392756*/ OPC_CheckInteger, 1, ++/*392758*/ OPC_CheckType, MVT::i32, ++/*392760*/ OPC_MoveParent, ++/*392761*/ OPC_MoveChild, 11, ++/*392763*/ OPC_CheckInteger, 1, ++/*392765*/ OPC_CheckType, MVT::i32, ++/*392767*/ OPC_MoveParent, ++/*392768*/ OPC_MoveChild, 12, ++/*392770*/ OPC_CheckInteger, 1, ++/*392772*/ OPC_CheckType, MVT::i32, ++/*392774*/ OPC_MoveParent, ++/*392775*/ OPC_MoveChild, 13, ++/*392777*/ OPC_CheckInteger, 1, ++/*392779*/ OPC_CheckType, MVT::i32, ++/*392781*/ OPC_MoveParent, ++/*392782*/ OPC_MoveChild, 14, ++/*392784*/ OPC_CheckInteger, 1, ++/*392786*/ OPC_CheckType, MVT::i32, ++/*392788*/ OPC_MoveParent, ++/*392789*/ OPC_MoveChild, 15, ++/*392791*/ OPC_CheckInteger, 1, ++/*392793*/ OPC_CheckType, MVT::i32, ++/*392795*/ OPC_MoveParent, ++/*392796*/ OPC_MoveParent, ++/*392797*/ OPC_CheckChild1Same, 1, ++/*392799*/ OPC_MoveParent, ++/*392800*/ OPC_CheckChild1Same, 0, ++/*392802*/ OPC_MoveParent, ++/*392803*/ OPC_MoveParent, ++/*392804*/ OPC_MoveChild1, ++/*392805*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*392808*/ OPC_CheckChild0Integer, 1, ++/*392810*/ OPC_CheckChild0Type, MVT::i32, ++/*392812*/ OPC_CheckChild1Integer, 1, ++/*392814*/ OPC_CheckChild1Type, MVT::i32, ++/*392816*/ OPC_CheckChild2Integer, 1, ++/*392818*/ OPC_CheckChild2Type, MVT::i32, ++/*392820*/ OPC_CheckChild3Integer, 1, ++/*392822*/ OPC_CheckChild3Type, MVT::i32, ++/*392824*/ OPC_CheckChild4Integer, 1, ++/*392826*/ OPC_CheckChild4Type, MVT::i32, ++/*392828*/ OPC_MoveChild5, ++/*392829*/ OPC_CheckInteger, 1, ++/*392831*/ OPC_CheckType, MVT::i32, ++/*392833*/ OPC_MoveParent, ++/*392834*/ OPC_MoveChild6, ++/*392835*/ OPC_CheckInteger, 1, ++/*392837*/ OPC_CheckType, MVT::i32, ++/*392839*/ OPC_MoveParent, ++/*392840*/ OPC_MoveChild7, ++/*392841*/ OPC_CheckInteger, 1, ++/*392843*/ OPC_CheckType, MVT::i32, ++/*392845*/ OPC_MoveParent, ++/*392846*/ OPC_MoveChild, 8, ++/*392848*/ OPC_CheckInteger, 1, ++/*392850*/ OPC_CheckType, MVT::i32, ++/*392852*/ OPC_MoveParent, ++/*392853*/ OPC_MoveChild, 9, ++/*392855*/ OPC_CheckInteger, 1, ++/*392857*/ OPC_CheckType, MVT::i32, ++/*392859*/ OPC_MoveParent, ++/*392860*/ OPC_MoveChild, 10, ++/*392862*/ OPC_CheckInteger, 1, ++/*392864*/ OPC_CheckType, MVT::i32, ++/*392866*/ OPC_MoveParent, ++/*392867*/ OPC_MoveChild, 11, ++/*392869*/ OPC_CheckInteger, 1, ++/*392871*/ OPC_CheckType, MVT::i32, ++/*392873*/ OPC_MoveParent, ++/*392874*/ OPC_MoveChild, 12, ++/*392876*/ OPC_CheckInteger, 1, ++/*392878*/ OPC_CheckType, MVT::i32, ++/*392880*/ OPC_MoveParent, ++/*392881*/ OPC_MoveChild, 13, ++/*392883*/ OPC_CheckInteger, 1, ++/*392885*/ OPC_CheckType, MVT::i32, ++/*392887*/ OPC_MoveParent, ++/*392888*/ OPC_MoveChild, 14, ++/*392890*/ OPC_CheckInteger, 1, ++/*392892*/ OPC_CheckType, MVT::i32, ++/*392894*/ OPC_MoveParent, ++/*392895*/ OPC_MoveChild, 15, ++/*392897*/ OPC_CheckInteger, 1, ++/*392899*/ OPC_CheckType, MVT::i32, ++/*392901*/ OPC_MoveParent, ++/*392902*/ OPC_CheckType, MVT::v16i16, ++/*392904*/ OPC_MoveParent, ++/*392905*/ OPC_CheckType, MVT::v16i16, ++/*392907*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*392909*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a), LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*392917*/ /*Scope*/ 91|128,1/*219*/, /*->393138*/ ++/*392919*/ OPC_CheckChild0Same, 1, ++/*392921*/ OPC_MoveChild1, ++/*392922*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*392925*/ OPC_CheckChild0Integer, 1, ++/*392927*/ OPC_CheckChild0Type, MVT::i32, ++/*392929*/ OPC_CheckChild1Integer, 1, ++/*392931*/ OPC_CheckChild1Type, MVT::i32, ++/*392933*/ OPC_CheckChild2Integer, 1, ++/*392935*/ OPC_CheckChild2Type, MVT::i32, ++/*392937*/ OPC_CheckChild3Integer, 1, ++/*392939*/ OPC_CheckChild3Type, MVT::i32, ++/*392941*/ OPC_CheckChild4Integer, 1, ++/*392943*/ OPC_CheckChild4Type, MVT::i32, ++/*392945*/ OPC_MoveChild5, ++/*392946*/ OPC_CheckInteger, 1, ++/*392948*/ OPC_CheckType, MVT::i32, ++/*392950*/ OPC_MoveParent, ++/*392951*/ OPC_MoveChild6, ++/*392952*/ OPC_CheckInteger, 1, ++/*392954*/ OPC_CheckType, MVT::i32, ++/*392956*/ OPC_MoveParent, ++/*392957*/ OPC_MoveChild7, ++/*392958*/ OPC_CheckInteger, 1, ++/*392960*/ OPC_CheckType, MVT::i32, ++/*392962*/ OPC_MoveParent, ++/*392963*/ OPC_MoveChild, 8, ++/*392965*/ OPC_CheckInteger, 1, ++/*392967*/ OPC_CheckType, MVT::i32, ++/*392969*/ OPC_MoveParent, ++/*392970*/ OPC_MoveChild, 9, ++/*392972*/ OPC_CheckInteger, 1, ++/*392974*/ OPC_CheckType, MVT::i32, ++/*392976*/ OPC_MoveParent, ++/*392977*/ OPC_MoveChild, 10, ++/*392979*/ OPC_CheckInteger, 1, ++/*392981*/ OPC_CheckType, MVT::i32, ++/*392983*/ OPC_MoveParent, ++/*392984*/ OPC_MoveChild, 11, ++/*392986*/ OPC_CheckInteger, 1, ++/*392988*/ OPC_CheckType, MVT::i32, ++/*392990*/ OPC_MoveParent, ++/*392991*/ OPC_MoveChild, 12, ++/*392993*/ OPC_CheckInteger, 1, ++/*392995*/ OPC_CheckType, MVT::i32, ++/*392997*/ OPC_MoveParent, ++/*392998*/ OPC_MoveChild, 13, ++/*393000*/ OPC_CheckInteger, 1, ++/*393002*/ OPC_CheckType, MVT::i32, ++/*393004*/ OPC_MoveParent, ++/*393005*/ OPC_MoveChild, 14, ++/*393007*/ OPC_CheckInteger, 1, ++/*393009*/ OPC_CheckType, MVT::i32, ++/*393011*/ OPC_MoveParent, ++/*393012*/ OPC_MoveChild, 15, ++/*393014*/ OPC_CheckInteger, 1, ++/*393016*/ OPC_CheckType, MVT::i32, ++/*393018*/ OPC_MoveParent, ++/*393019*/ OPC_MoveParent, ++/*393020*/ OPC_MoveParent, ++/*393021*/ OPC_CheckChild1Same, 0, ++/*393023*/ OPC_MoveParent, ++/*393024*/ OPC_MoveParent, ++/*393025*/ OPC_MoveChild1, ++/*393026*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*393029*/ OPC_CheckChild0Integer, 1, ++/*393031*/ OPC_CheckChild0Type, MVT::i32, ++/*393033*/ OPC_CheckChild1Integer, 1, ++/*393035*/ OPC_CheckChild1Type, MVT::i32, ++/*393037*/ OPC_CheckChild2Integer, 1, ++/*393039*/ OPC_CheckChild2Type, MVT::i32, ++/*393041*/ OPC_CheckChild3Integer, 1, ++/*393043*/ OPC_CheckChild3Type, MVT::i32, ++/*393045*/ OPC_CheckChild4Integer, 1, ++/*393047*/ OPC_CheckChild4Type, MVT::i32, ++/*393049*/ OPC_MoveChild5, ++/*393050*/ OPC_CheckInteger, 1, ++/*393052*/ OPC_CheckType, MVT::i32, ++/*393054*/ OPC_MoveParent, ++/*393055*/ OPC_MoveChild6, ++/*393056*/ OPC_CheckInteger, 1, ++/*393058*/ OPC_CheckType, MVT::i32, ++/*393060*/ OPC_MoveParent, ++/*393061*/ OPC_MoveChild7, ++/*393062*/ OPC_CheckInteger, 1, ++/*393064*/ OPC_CheckType, MVT::i32, ++/*393066*/ OPC_MoveParent, ++/*393067*/ OPC_MoveChild, 8, ++/*393069*/ OPC_CheckInteger, 1, ++/*393071*/ OPC_CheckType, MVT::i32, ++/*393073*/ OPC_MoveParent, ++/*393074*/ OPC_MoveChild, 9, ++/*393076*/ OPC_CheckInteger, 1, ++/*393078*/ OPC_CheckType, MVT::i32, ++/*393080*/ OPC_MoveParent, ++/*393081*/ OPC_MoveChild, 10, ++/*393083*/ OPC_CheckInteger, 1, ++/*393085*/ OPC_CheckType, MVT::i32, ++/*393087*/ OPC_MoveParent, ++/*393088*/ OPC_MoveChild, 11, ++/*393090*/ OPC_CheckInteger, 1, ++/*393092*/ OPC_CheckType, MVT::i32, ++/*393094*/ OPC_MoveParent, ++/*393095*/ OPC_MoveChild, 12, ++/*393097*/ OPC_CheckInteger, 1, ++/*393099*/ OPC_CheckType, MVT::i32, ++/*393101*/ OPC_MoveParent, ++/*393102*/ OPC_MoveChild, 13, ++/*393104*/ OPC_CheckInteger, 1, ++/*393106*/ OPC_CheckType, MVT::i32, ++/*393108*/ OPC_MoveParent, ++/*393109*/ OPC_MoveChild, 14, ++/*393111*/ OPC_CheckInteger, 1, ++/*393113*/ OPC_CheckType, MVT::i32, ++/*393115*/ OPC_MoveParent, ++/*393116*/ OPC_MoveChild, 15, ++/*393118*/ OPC_CheckInteger, 1, ++/*393120*/ OPC_CheckType, MVT::i32, ++/*393122*/ OPC_MoveParent, ++/*393123*/ OPC_CheckType, MVT::v16i16, ++/*393125*/ OPC_MoveParent, ++/*393126*/ OPC_CheckType, MVT::v16i16, ++/*393128*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*393130*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*393138*/ /*Scope*/ 91|128,1/*219*/, /*->393359*/ ++/*393140*/ OPC_MoveChild0, ++/*393141*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*393144*/ OPC_CheckChild0Integer, 1, ++/*393146*/ OPC_CheckChild0Type, MVT::i32, ++/*393148*/ OPC_CheckChild1Integer, 1, ++/*393150*/ OPC_CheckChild1Type, MVT::i32, ++/*393152*/ OPC_CheckChild2Integer, 1, ++/*393154*/ OPC_CheckChild2Type, MVT::i32, ++/*393156*/ OPC_CheckChild3Integer, 1, ++/*393158*/ OPC_CheckChild3Type, MVT::i32, ++/*393160*/ OPC_CheckChild4Integer, 1, ++/*393162*/ OPC_CheckChild4Type, MVT::i32, ++/*393164*/ OPC_MoveChild5, ++/*393165*/ OPC_CheckInteger, 1, ++/*393167*/ OPC_CheckType, MVT::i32, ++/*393169*/ OPC_MoveParent, ++/*393170*/ OPC_MoveChild6, ++/*393171*/ OPC_CheckInteger, 1, ++/*393173*/ OPC_CheckType, MVT::i32, ++/*393175*/ OPC_MoveParent, ++/*393176*/ OPC_MoveChild7, ++/*393177*/ OPC_CheckInteger, 1, ++/*393179*/ OPC_CheckType, MVT::i32, ++/*393181*/ OPC_MoveParent, ++/*393182*/ OPC_MoveChild, 8, ++/*393184*/ OPC_CheckInteger, 1, ++/*393186*/ OPC_CheckType, MVT::i32, ++/*393188*/ OPC_MoveParent, ++/*393189*/ OPC_MoveChild, 9, ++/*393191*/ OPC_CheckInteger, 1, ++/*393193*/ OPC_CheckType, MVT::i32, ++/*393195*/ OPC_MoveParent, ++/*393196*/ OPC_MoveChild, 10, ++/*393198*/ OPC_CheckInteger, 1, ++/*393200*/ OPC_CheckType, MVT::i32, ++/*393202*/ OPC_MoveParent, ++/*393203*/ OPC_MoveChild, 11, ++/*393205*/ OPC_CheckInteger, 1, ++/*393207*/ OPC_CheckType, MVT::i32, ++/*393209*/ OPC_MoveParent, ++/*393210*/ OPC_MoveChild, 12, ++/*393212*/ OPC_CheckInteger, 1, ++/*393214*/ OPC_CheckType, MVT::i32, ++/*393216*/ OPC_MoveParent, ++/*393217*/ OPC_MoveChild, 13, ++/*393219*/ OPC_CheckInteger, 1, ++/*393221*/ OPC_CheckType, MVT::i32, ++/*393223*/ OPC_MoveParent, ++/*393224*/ OPC_MoveChild, 14, ++/*393226*/ OPC_CheckInteger, 1, ++/*393228*/ OPC_CheckType, MVT::i32, ++/*393230*/ OPC_MoveParent, ++/*393231*/ OPC_MoveChild, 15, ++/*393233*/ OPC_CheckInteger, 1, ++/*393235*/ OPC_CheckType, MVT::i32, ++/*393237*/ OPC_MoveParent, ++/*393238*/ OPC_MoveParent, ++/*393239*/ OPC_CheckChild1Same, 0, ++/*393241*/ OPC_MoveParent, ++/*393242*/ OPC_CheckChild1Same, 1, ++/*393244*/ OPC_MoveParent, ++/*393245*/ OPC_MoveParent, ++/*393246*/ OPC_MoveChild1, ++/*393247*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*393250*/ OPC_CheckChild0Integer, 1, ++/*393252*/ OPC_CheckChild0Type, MVT::i32, ++/*393254*/ OPC_CheckChild1Integer, 1, ++/*393256*/ OPC_CheckChild1Type, MVT::i32, ++/*393258*/ OPC_CheckChild2Integer, 1, ++/*393260*/ OPC_CheckChild2Type, MVT::i32, ++/*393262*/ OPC_CheckChild3Integer, 1, ++/*393264*/ OPC_CheckChild3Type, MVT::i32, ++/*393266*/ OPC_CheckChild4Integer, 1, ++/*393268*/ OPC_CheckChild4Type, MVT::i32, ++/*393270*/ OPC_MoveChild5, ++/*393271*/ OPC_CheckInteger, 1, ++/*393273*/ OPC_CheckType, MVT::i32, ++/*393275*/ OPC_MoveParent, ++/*393276*/ OPC_MoveChild6, ++/*393277*/ OPC_CheckInteger, 1, ++/*393279*/ OPC_CheckType, MVT::i32, ++/*393281*/ OPC_MoveParent, ++/*393282*/ OPC_MoveChild7, ++/*393283*/ OPC_CheckInteger, 1, ++/*393285*/ OPC_CheckType, MVT::i32, ++/*393287*/ OPC_MoveParent, ++/*393288*/ OPC_MoveChild, 8, ++/*393290*/ OPC_CheckInteger, 1, ++/*393292*/ OPC_CheckType, MVT::i32, ++/*393294*/ OPC_MoveParent, ++/*393295*/ OPC_MoveChild, 9, ++/*393297*/ OPC_CheckInteger, 1, ++/*393299*/ OPC_CheckType, MVT::i32, ++/*393301*/ OPC_MoveParent, ++/*393302*/ OPC_MoveChild, 10, ++/*393304*/ OPC_CheckInteger, 1, ++/*393306*/ OPC_CheckType, MVT::i32, ++/*393308*/ OPC_MoveParent, ++/*393309*/ OPC_MoveChild, 11, ++/*393311*/ OPC_CheckInteger, 1, ++/*393313*/ OPC_CheckType, MVT::i32, ++/*393315*/ OPC_MoveParent, ++/*393316*/ OPC_MoveChild, 12, ++/*393318*/ OPC_CheckInteger, 1, ++/*393320*/ OPC_CheckType, MVT::i32, ++/*393322*/ OPC_MoveParent, ++/*393323*/ OPC_MoveChild, 13, ++/*393325*/ OPC_CheckInteger, 1, ++/*393327*/ OPC_CheckType, MVT::i32, ++/*393329*/ OPC_MoveParent, ++/*393330*/ OPC_MoveChild, 14, ++/*393332*/ OPC_CheckInteger, 1, ++/*393334*/ OPC_CheckType, MVT::i32, ++/*393336*/ OPC_MoveParent, ++/*393337*/ OPC_MoveChild, 15, ++/*393339*/ OPC_CheckInteger, 1, ++/*393341*/ OPC_CheckType, MVT::i32, ++/*393343*/ OPC_MoveParent, ++/*393344*/ OPC_CheckType, MVT::v16i16, ++/*393346*/ OPC_MoveParent, ++/*393347*/ OPC_CheckType, MVT::v16i16, ++/*393349*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*393351*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b), LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*393359*/ /*Scope*/ 91|128,1/*219*/, /*->393580*/ ++/*393361*/ OPC_CheckChild0Same, 0, ++/*393363*/ OPC_MoveChild1, ++/*393364*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*393367*/ OPC_CheckChild0Integer, 1, ++/*393369*/ OPC_CheckChild0Type, MVT::i32, ++/*393371*/ OPC_CheckChild1Integer, 1, ++/*393373*/ OPC_CheckChild1Type, MVT::i32, ++/*393375*/ OPC_CheckChild2Integer, 1, ++/*393377*/ OPC_CheckChild2Type, MVT::i32, ++/*393379*/ OPC_CheckChild3Integer, 1, ++/*393381*/ OPC_CheckChild3Type, MVT::i32, ++/*393383*/ OPC_CheckChild4Integer, 1, ++/*393385*/ OPC_CheckChild4Type, MVT::i32, ++/*393387*/ OPC_MoveChild5, ++/*393388*/ OPC_CheckInteger, 1, ++/*393390*/ OPC_CheckType, MVT::i32, ++/*393392*/ OPC_MoveParent, ++/*393393*/ OPC_MoveChild6, ++/*393394*/ OPC_CheckInteger, 1, ++/*393396*/ OPC_CheckType, MVT::i32, ++/*393398*/ OPC_MoveParent, ++/*393399*/ OPC_MoveChild7, ++/*393400*/ OPC_CheckInteger, 1, ++/*393402*/ OPC_CheckType, MVT::i32, ++/*393404*/ OPC_MoveParent, ++/*393405*/ OPC_MoveChild, 8, ++/*393407*/ OPC_CheckInteger, 1, ++/*393409*/ OPC_CheckType, MVT::i32, ++/*393411*/ OPC_MoveParent, ++/*393412*/ OPC_MoveChild, 9, ++/*393414*/ OPC_CheckInteger, 1, ++/*393416*/ OPC_CheckType, MVT::i32, ++/*393418*/ OPC_MoveParent, ++/*393419*/ OPC_MoveChild, 10, ++/*393421*/ OPC_CheckInteger, 1, ++/*393423*/ OPC_CheckType, MVT::i32, ++/*393425*/ OPC_MoveParent, ++/*393426*/ OPC_MoveChild, 11, ++/*393428*/ OPC_CheckInteger, 1, ++/*393430*/ OPC_CheckType, MVT::i32, ++/*393432*/ OPC_MoveParent, ++/*393433*/ OPC_MoveChild, 12, ++/*393435*/ OPC_CheckInteger, 1, ++/*393437*/ OPC_CheckType, MVT::i32, ++/*393439*/ OPC_MoveParent, ++/*393440*/ OPC_MoveChild, 13, ++/*393442*/ OPC_CheckInteger, 1, ++/*393444*/ OPC_CheckType, MVT::i32, ++/*393446*/ OPC_MoveParent, ++/*393447*/ OPC_MoveChild, 14, ++/*393449*/ OPC_CheckInteger, 1, ++/*393451*/ OPC_CheckType, MVT::i32, ++/*393453*/ OPC_MoveParent, ++/*393454*/ OPC_MoveChild, 15, ++/*393456*/ OPC_CheckInteger, 1, ++/*393458*/ OPC_CheckType, MVT::i32, ++/*393460*/ OPC_MoveParent, ++/*393461*/ OPC_MoveParent, ++/*393462*/ OPC_MoveParent, ++/*393463*/ OPC_CheckChild1Same, 1, ++/*393465*/ OPC_MoveParent, ++/*393466*/ OPC_MoveParent, ++/*393467*/ OPC_MoveChild1, ++/*393468*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*393471*/ OPC_CheckChild0Integer, 1, ++/*393473*/ OPC_CheckChild0Type, MVT::i32, ++/*393475*/ OPC_CheckChild1Integer, 1, ++/*393477*/ OPC_CheckChild1Type, MVT::i32, ++/*393479*/ OPC_CheckChild2Integer, 1, ++/*393481*/ OPC_CheckChild2Type, MVT::i32, ++/*393483*/ OPC_CheckChild3Integer, 1, ++/*393485*/ OPC_CheckChild3Type, MVT::i32, ++/*393487*/ OPC_CheckChild4Integer, 1, ++/*393489*/ OPC_CheckChild4Type, MVT::i32, ++/*393491*/ OPC_MoveChild5, ++/*393492*/ OPC_CheckInteger, 1, ++/*393494*/ OPC_CheckType, MVT::i32, ++/*393496*/ OPC_MoveParent, ++/*393497*/ OPC_MoveChild6, ++/*393498*/ OPC_CheckInteger, 1, ++/*393500*/ OPC_CheckType, MVT::i32, ++/*393502*/ OPC_MoveParent, ++/*393503*/ OPC_MoveChild7, ++/*393504*/ OPC_CheckInteger, 1, ++/*393506*/ OPC_CheckType, MVT::i32, ++/*393508*/ OPC_MoveParent, ++/*393509*/ OPC_MoveChild, 8, ++/*393511*/ OPC_CheckInteger, 1, ++/*393513*/ OPC_CheckType, MVT::i32, ++/*393515*/ OPC_MoveParent, ++/*393516*/ OPC_MoveChild, 9, ++/*393518*/ OPC_CheckInteger, 1, ++/*393520*/ OPC_CheckType, MVT::i32, ++/*393522*/ OPC_MoveParent, ++/*393523*/ OPC_MoveChild, 10, ++/*393525*/ OPC_CheckInteger, 1, ++/*393527*/ OPC_CheckType, MVT::i32, ++/*393529*/ OPC_MoveParent, ++/*393530*/ OPC_MoveChild, 11, ++/*393532*/ OPC_CheckInteger, 1, ++/*393534*/ OPC_CheckType, MVT::i32, ++/*393536*/ OPC_MoveParent, ++/*393537*/ OPC_MoveChild, 12, ++/*393539*/ OPC_CheckInteger, 1, ++/*393541*/ OPC_CheckType, MVT::i32, ++/*393543*/ OPC_MoveParent, ++/*393544*/ OPC_MoveChild, 13, ++/*393546*/ OPC_CheckInteger, 1, ++/*393548*/ OPC_CheckType, MVT::i32, ++/*393550*/ OPC_MoveParent, ++/*393551*/ OPC_MoveChild, 14, ++/*393553*/ OPC_CheckInteger, 1, ++/*393555*/ OPC_CheckType, MVT::i32, ++/*393557*/ OPC_MoveParent, ++/*393558*/ OPC_MoveChild, 15, ++/*393560*/ OPC_CheckInteger, 1, ++/*393562*/ OPC_CheckType, MVT::i32, ++/*393564*/ OPC_MoveParent, ++/*393565*/ OPC_CheckType, MVT::v16i16, ++/*393567*/ OPC_MoveParent, ++/*393568*/ OPC_CheckType, MVT::v16i16, ++/*393570*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*393572*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*393580*/ /*Scope*/ 91|128,1/*219*/, /*->393801*/ ++/*393582*/ OPC_CheckChild0Same, 1, ++/*393584*/ OPC_CheckChild1Same, 0, ++/*393586*/ OPC_MoveParent, ++/*393587*/ OPC_MoveChild1, ++/*393588*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*393591*/ OPC_CheckChild0Integer, 1, ++/*393593*/ OPC_CheckChild0Type, MVT::i32, ++/*393595*/ OPC_CheckChild1Integer, 1, ++/*393597*/ OPC_CheckChild1Type, MVT::i32, ++/*393599*/ OPC_CheckChild2Integer, 1, ++/*393601*/ OPC_CheckChild2Type, MVT::i32, ++/*393603*/ OPC_CheckChild3Integer, 1, ++/*393605*/ OPC_CheckChild3Type, MVT::i32, ++/*393607*/ OPC_CheckChild4Integer, 1, ++/*393609*/ OPC_CheckChild4Type, MVT::i32, ++/*393611*/ OPC_MoveChild5, ++/*393612*/ OPC_CheckInteger, 1, ++/*393614*/ OPC_CheckType, MVT::i32, ++/*393616*/ OPC_MoveParent, ++/*393617*/ OPC_MoveChild6, ++/*393618*/ OPC_CheckInteger, 1, ++/*393620*/ OPC_CheckType, MVT::i32, ++/*393622*/ OPC_MoveParent, ++/*393623*/ OPC_MoveChild7, ++/*393624*/ OPC_CheckInteger, 1, ++/*393626*/ OPC_CheckType, MVT::i32, ++/*393628*/ OPC_MoveParent, ++/*393629*/ OPC_MoveChild, 8, ++/*393631*/ OPC_CheckInteger, 1, ++/*393633*/ OPC_CheckType, MVT::i32, ++/*393635*/ OPC_MoveParent, ++/*393636*/ OPC_MoveChild, 9, ++/*393638*/ OPC_CheckInteger, 1, ++/*393640*/ OPC_CheckType, MVT::i32, ++/*393642*/ OPC_MoveParent, ++/*393643*/ OPC_MoveChild, 10, ++/*393645*/ OPC_CheckInteger, 1, ++/*393647*/ OPC_CheckType, MVT::i32, ++/*393649*/ OPC_MoveParent, ++/*393650*/ OPC_MoveChild, 11, ++/*393652*/ OPC_CheckInteger, 1, ++/*393654*/ OPC_CheckType, MVT::i32, ++/*393656*/ OPC_MoveParent, ++/*393657*/ OPC_MoveChild, 12, ++/*393659*/ OPC_CheckInteger, 1, ++/*393661*/ OPC_CheckType, MVT::i32, ++/*393663*/ OPC_MoveParent, ++/*393664*/ OPC_MoveChild, 13, ++/*393666*/ OPC_CheckInteger, 1, ++/*393668*/ OPC_CheckType, MVT::i32, ++/*393670*/ OPC_MoveParent, ++/*393671*/ OPC_MoveChild, 14, ++/*393673*/ OPC_CheckInteger, 1, ++/*393675*/ OPC_CheckType, MVT::i32, ++/*393677*/ OPC_MoveParent, ++/*393678*/ OPC_MoveChild, 15, ++/*393680*/ OPC_CheckInteger, 1, ++/*393682*/ OPC_CheckType, MVT::i32, ++/*393684*/ OPC_MoveParent, ++/*393685*/ OPC_MoveParent, ++/*393686*/ OPC_MoveParent, ++/*393687*/ OPC_MoveParent, ++/*393688*/ OPC_MoveChild1, ++/*393689*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*393692*/ OPC_CheckChild0Integer, 1, ++/*393694*/ OPC_CheckChild0Type, MVT::i32, ++/*393696*/ OPC_CheckChild1Integer, 1, ++/*393698*/ OPC_CheckChild1Type, MVT::i32, ++/*393700*/ OPC_CheckChild2Integer, 1, ++/*393702*/ OPC_CheckChild2Type, MVT::i32, ++/*393704*/ OPC_CheckChild3Integer, 1, ++/*393706*/ OPC_CheckChild3Type, MVT::i32, ++/*393708*/ OPC_CheckChild4Integer, 1, ++/*393710*/ OPC_CheckChild4Type, MVT::i32, ++/*393712*/ OPC_MoveChild5, ++/*393713*/ OPC_CheckInteger, 1, ++/*393715*/ OPC_CheckType, MVT::i32, ++/*393717*/ OPC_MoveParent, ++/*393718*/ OPC_MoveChild6, ++/*393719*/ OPC_CheckInteger, 1, ++/*393721*/ OPC_CheckType, MVT::i32, ++/*393723*/ OPC_MoveParent, ++/*393724*/ OPC_MoveChild7, ++/*393725*/ OPC_CheckInteger, 1, ++/*393727*/ OPC_CheckType, MVT::i32, ++/*393729*/ OPC_MoveParent, ++/*393730*/ OPC_MoveChild, 8, ++/*393732*/ OPC_CheckInteger, 1, ++/*393734*/ OPC_CheckType, MVT::i32, ++/*393736*/ OPC_MoveParent, ++/*393737*/ OPC_MoveChild, 9, ++/*393739*/ OPC_CheckInteger, 1, ++/*393741*/ OPC_CheckType, MVT::i32, ++/*393743*/ OPC_MoveParent, ++/*393744*/ OPC_MoveChild, 10, ++/*393746*/ OPC_CheckInteger, 1, ++/*393748*/ OPC_CheckType, MVT::i32, ++/*393750*/ OPC_MoveParent, ++/*393751*/ OPC_MoveChild, 11, ++/*393753*/ OPC_CheckInteger, 1, ++/*393755*/ OPC_CheckType, MVT::i32, ++/*393757*/ OPC_MoveParent, ++/*393758*/ OPC_MoveChild, 12, ++/*393760*/ OPC_CheckInteger, 1, ++/*393762*/ OPC_CheckType, MVT::i32, ++/*393764*/ OPC_MoveParent, ++/*393765*/ OPC_MoveChild, 13, ++/*393767*/ OPC_CheckInteger, 1, ++/*393769*/ OPC_CheckType, MVT::i32, ++/*393771*/ OPC_MoveParent, ++/*393772*/ OPC_MoveChild, 14, ++/*393774*/ OPC_CheckInteger, 1, ++/*393776*/ OPC_CheckType, MVT::i32, ++/*393778*/ OPC_MoveParent, ++/*393779*/ OPC_MoveChild, 15, ++/*393781*/ OPC_CheckInteger, 1, ++/*393783*/ OPC_CheckType, MVT::i32, ++/*393785*/ OPC_MoveParent, ++/*393786*/ OPC_CheckType, MVT::v16i16, ++/*393788*/ OPC_MoveParent, ++/*393789*/ OPC_CheckType, MVT::v16i16, ++/*393791*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*393793*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*393801*/ /*Scope*/ 91|128,1/*219*/, /*->394022*/ ++/*393803*/ OPC_CheckChild0Same, 0, ++/*393805*/ OPC_CheckChild1Same, 1, ++/*393807*/ OPC_MoveParent, ++/*393808*/ OPC_MoveChild1, ++/*393809*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*393812*/ OPC_CheckChild0Integer, 1, ++/*393814*/ OPC_CheckChild0Type, MVT::i32, ++/*393816*/ OPC_CheckChild1Integer, 1, ++/*393818*/ OPC_CheckChild1Type, MVT::i32, ++/*393820*/ OPC_CheckChild2Integer, 1, ++/*393822*/ OPC_CheckChild2Type, MVT::i32, ++/*393824*/ OPC_CheckChild3Integer, 1, ++/*393826*/ OPC_CheckChild3Type, MVT::i32, ++/*393828*/ OPC_CheckChild4Integer, 1, ++/*393830*/ OPC_CheckChild4Type, MVT::i32, ++/*393832*/ OPC_MoveChild5, ++/*393833*/ OPC_CheckInteger, 1, ++/*393835*/ OPC_CheckType, MVT::i32, ++/*393837*/ OPC_MoveParent, ++/*393838*/ OPC_MoveChild6, ++/*393839*/ OPC_CheckInteger, 1, ++/*393841*/ OPC_CheckType, MVT::i32, ++/*393843*/ OPC_MoveParent, ++/*393844*/ OPC_MoveChild7, ++/*393845*/ OPC_CheckInteger, 1, ++/*393847*/ OPC_CheckType, MVT::i32, ++/*393849*/ OPC_MoveParent, ++/*393850*/ OPC_MoveChild, 8, ++/*393852*/ OPC_CheckInteger, 1, ++/*393854*/ OPC_CheckType, MVT::i32, ++/*393856*/ OPC_MoveParent, ++/*393857*/ OPC_MoveChild, 9, ++/*393859*/ OPC_CheckInteger, 1, ++/*393861*/ OPC_CheckType, MVT::i32, ++/*393863*/ OPC_MoveParent, ++/*393864*/ OPC_MoveChild, 10, ++/*393866*/ OPC_CheckInteger, 1, ++/*393868*/ OPC_CheckType, MVT::i32, ++/*393870*/ OPC_MoveParent, ++/*393871*/ OPC_MoveChild, 11, ++/*393873*/ OPC_CheckInteger, 1, ++/*393875*/ OPC_CheckType, MVT::i32, ++/*393877*/ OPC_MoveParent, ++/*393878*/ OPC_MoveChild, 12, ++/*393880*/ OPC_CheckInteger, 1, ++/*393882*/ OPC_CheckType, MVT::i32, ++/*393884*/ OPC_MoveParent, ++/*393885*/ OPC_MoveChild, 13, ++/*393887*/ OPC_CheckInteger, 1, ++/*393889*/ OPC_CheckType, MVT::i32, ++/*393891*/ OPC_MoveParent, ++/*393892*/ OPC_MoveChild, 14, ++/*393894*/ OPC_CheckInteger, 1, ++/*393896*/ OPC_CheckType, MVT::i32, ++/*393898*/ OPC_MoveParent, ++/*393899*/ OPC_MoveChild, 15, ++/*393901*/ OPC_CheckInteger, 1, ++/*393903*/ OPC_CheckType, MVT::i32, ++/*393905*/ OPC_MoveParent, ++/*393906*/ OPC_MoveParent, ++/*393907*/ OPC_MoveParent, ++/*393908*/ OPC_MoveParent, ++/*393909*/ OPC_MoveChild1, ++/*393910*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*393913*/ OPC_CheckChild0Integer, 1, ++/*393915*/ OPC_CheckChild0Type, MVT::i32, ++/*393917*/ OPC_CheckChild1Integer, 1, ++/*393919*/ OPC_CheckChild1Type, MVT::i32, ++/*393921*/ OPC_CheckChild2Integer, 1, ++/*393923*/ OPC_CheckChild2Type, MVT::i32, ++/*393925*/ OPC_CheckChild3Integer, 1, ++/*393927*/ OPC_CheckChild3Type, MVT::i32, ++/*393929*/ OPC_CheckChild4Integer, 1, ++/*393931*/ OPC_CheckChild4Type, MVT::i32, ++/*393933*/ OPC_MoveChild5, ++/*393934*/ OPC_CheckInteger, 1, ++/*393936*/ OPC_CheckType, MVT::i32, ++/*393938*/ OPC_MoveParent, ++/*393939*/ OPC_MoveChild6, ++/*393940*/ OPC_CheckInteger, 1, ++/*393942*/ OPC_CheckType, MVT::i32, ++/*393944*/ OPC_MoveParent, ++/*393945*/ OPC_MoveChild7, ++/*393946*/ OPC_CheckInteger, 1, ++/*393948*/ OPC_CheckType, MVT::i32, ++/*393950*/ OPC_MoveParent, ++/*393951*/ OPC_MoveChild, 8, ++/*393953*/ OPC_CheckInteger, 1, ++/*393955*/ OPC_CheckType, MVT::i32, ++/*393957*/ OPC_MoveParent, ++/*393958*/ OPC_MoveChild, 9, ++/*393960*/ OPC_CheckInteger, 1, ++/*393962*/ OPC_CheckType, MVT::i32, ++/*393964*/ OPC_MoveParent, ++/*393965*/ OPC_MoveChild, 10, ++/*393967*/ OPC_CheckInteger, 1, ++/*393969*/ OPC_CheckType, MVT::i32, ++/*393971*/ OPC_MoveParent, ++/*393972*/ OPC_MoveChild, 11, ++/*393974*/ OPC_CheckInteger, 1, ++/*393976*/ OPC_CheckType, MVT::i32, ++/*393978*/ OPC_MoveParent, ++/*393979*/ OPC_MoveChild, 12, ++/*393981*/ OPC_CheckInteger, 1, ++/*393983*/ OPC_CheckType, MVT::i32, ++/*393985*/ OPC_MoveParent, ++/*393986*/ OPC_MoveChild, 13, ++/*393988*/ OPC_CheckInteger, 1, ++/*393990*/ OPC_CheckType, MVT::i32, ++/*393992*/ OPC_MoveParent, ++/*393993*/ OPC_MoveChild, 14, ++/*393995*/ OPC_CheckInteger, 1, ++/*393997*/ OPC_CheckType, MVT::i32, ++/*393999*/ OPC_MoveParent, ++/*394000*/ OPC_MoveChild, 15, ++/*394002*/ OPC_CheckInteger, 1, ++/*394004*/ OPC_CheckType, MVT::i32, ++/*394006*/ OPC_MoveParent, ++/*394007*/ OPC_CheckType, MVT::v16i16, ++/*394009*/ OPC_MoveParent, ++/*394010*/ OPC_CheckType, MVT::v16i16, ++/*394012*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*394014*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*394022*/ 0, /*End of Scope*/ ++/*394023*/ /*Scope*/ 62|128,3/*446*/, /*->394471*/ ++/*394025*/ OPC_CheckChild0Same, 0, ++/*394027*/ OPC_MoveChild1, ++/*394028*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*394031*/ OPC_Scope, 89|128,1/*217*/, /*->394251*/ // 2 children in Scope ++/*394034*/ OPC_MoveChild0, ++/*394035*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*394038*/ OPC_CheckChild0Integer, 1, ++/*394040*/ OPC_CheckChild0Type, MVT::i32, ++/*394042*/ OPC_CheckChild1Integer, 1, ++/*394044*/ OPC_CheckChild1Type, MVT::i32, ++/*394046*/ OPC_CheckChild2Integer, 1, ++/*394048*/ OPC_CheckChild2Type, MVT::i32, ++/*394050*/ OPC_CheckChild3Integer, 1, ++/*394052*/ OPC_CheckChild3Type, MVT::i32, ++/*394054*/ OPC_CheckChild4Integer, 1, ++/*394056*/ OPC_CheckChild4Type, MVT::i32, ++/*394058*/ OPC_MoveChild5, ++/*394059*/ OPC_CheckInteger, 1, ++/*394061*/ OPC_CheckType, MVT::i32, ++/*394063*/ OPC_MoveParent, ++/*394064*/ OPC_MoveChild6, ++/*394065*/ OPC_CheckInteger, 1, ++/*394067*/ OPC_CheckType, MVT::i32, ++/*394069*/ OPC_MoveParent, ++/*394070*/ OPC_MoveChild7, ++/*394071*/ OPC_CheckInteger, 1, ++/*394073*/ OPC_CheckType, MVT::i32, ++/*394075*/ OPC_MoveParent, ++/*394076*/ OPC_MoveChild, 8, ++/*394078*/ OPC_CheckInteger, 1, ++/*394080*/ OPC_CheckType, MVT::i32, ++/*394082*/ OPC_MoveParent, ++/*394083*/ OPC_MoveChild, 9, ++/*394085*/ OPC_CheckInteger, 1, ++/*394087*/ OPC_CheckType, MVT::i32, ++/*394089*/ OPC_MoveParent, ++/*394090*/ OPC_MoveChild, 10, ++/*394092*/ OPC_CheckInteger, 1, ++/*394094*/ OPC_CheckType, MVT::i32, ++/*394096*/ OPC_MoveParent, ++/*394097*/ OPC_MoveChild, 11, ++/*394099*/ OPC_CheckInteger, 1, ++/*394101*/ OPC_CheckType, MVT::i32, ++/*394103*/ OPC_MoveParent, ++/*394104*/ OPC_MoveChild, 12, ++/*394106*/ OPC_CheckInteger, 1, ++/*394108*/ OPC_CheckType, MVT::i32, ++/*394110*/ OPC_MoveParent, ++/*394111*/ OPC_MoveChild, 13, ++/*394113*/ OPC_CheckInteger, 1, ++/*394115*/ OPC_CheckType, MVT::i32, ++/*394117*/ OPC_MoveParent, ++/*394118*/ OPC_MoveChild, 14, ++/*394120*/ OPC_CheckInteger, 1, ++/*394122*/ OPC_CheckType, MVT::i32, ++/*394124*/ OPC_MoveParent, ++/*394125*/ OPC_MoveChild, 15, ++/*394127*/ OPC_CheckInteger, 1, ++/*394129*/ OPC_CheckType, MVT::i32, ++/*394131*/ OPC_MoveParent, ++/*394132*/ OPC_MoveParent, ++/*394133*/ OPC_CheckChild1Same, 1, ++/*394135*/ OPC_MoveParent, ++/*394136*/ OPC_MoveParent, ++/*394137*/ OPC_MoveParent, ++/*394138*/ OPC_MoveChild1, ++/*394139*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*394142*/ OPC_CheckChild0Integer, 1, ++/*394144*/ OPC_CheckChild0Type, MVT::i32, ++/*394146*/ OPC_CheckChild1Integer, 1, ++/*394148*/ OPC_CheckChild1Type, MVT::i32, ++/*394150*/ OPC_CheckChild2Integer, 1, ++/*394152*/ OPC_CheckChild2Type, MVT::i32, ++/*394154*/ OPC_CheckChild3Integer, 1, ++/*394156*/ OPC_CheckChild3Type, MVT::i32, ++/*394158*/ OPC_CheckChild4Integer, 1, ++/*394160*/ OPC_CheckChild4Type, MVT::i32, ++/*394162*/ OPC_MoveChild5, ++/*394163*/ OPC_CheckInteger, 1, ++/*394165*/ OPC_CheckType, MVT::i32, ++/*394167*/ OPC_MoveParent, ++/*394168*/ OPC_MoveChild6, ++/*394169*/ OPC_CheckInteger, 1, ++/*394171*/ OPC_CheckType, MVT::i32, ++/*394173*/ OPC_MoveParent, ++/*394174*/ OPC_MoveChild7, ++/*394175*/ OPC_CheckInteger, 1, ++/*394177*/ OPC_CheckType, MVT::i32, ++/*394179*/ OPC_MoveParent, ++/*394180*/ OPC_MoveChild, 8, ++/*394182*/ OPC_CheckInteger, 1, ++/*394184*/ OPC_CheckType, MVT::i32, ++/*394186*/ OPC_MoveParent, ++/*394187*/ OPC_MoveChild, 9, ++/*394189*/ OPC_CheckInteger, 1, ++/*394191*/ OPC_CheckType, MVT::i32, ++/*394193*/ OPC_MoveParent, ++/*394194*/ OPC_MoveChild, 10, ++/*394196*/ OPC_CheckInteger, 1, ++/*394198*/ OPC_CheckType, MVT::i32, ++/*394200*/ OPC_MoveParent, ++/*394201*/ OPC_MoveChild, 11, ++/*394203*/ OPC_CheckInteger, 1, ++/*394205*/ OPC_CheckType, MVT::i32, ++/*394207*/ OPC_MoveParent, ++/*394208*/ OPC_MoveChild, 12, ++/*394210*/ OPC_CheckInteger, 1, ++/*394212*/ OPC_CheckType, MVT::i32, ++/*394214*/ OPC_MoveParent, ++/*394215*/ OPC_MoveChild, 13, ++/*394217*/ OPC_CheckInteger, 1, ++/*394219*/ OPC_CheckType, MVT::i32, ++/*394221*/ OPC_MoveParent, ++/*394222*/ OPC_MoveChild, 14, ++/*394224*/ OPC_CheckInteger, 1, ++/*394226*/ OPC_CheckType, MVT::i32, ++/*394228*/ OPC_MoveParent, ++/*394229*/ OPC_MoveChild, 15, ++/*394231*/ OPC_CheckInteger, 1, ++/*394233*/ OPC_CheckType, MVT::i32, ++/*394235*/ OPC_MoveParent, ++/*394236*/ OPC_CheckType, MVT::v16i16, ++/*394238*/ OPC_MoveParent, ++/*394239*/ OPC_CheckType, MVT::v16i16, ++/*394241*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*394243*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*394251*/ /*Scope*/ 89|128,1/*217*/, /*->394470*/ ++/*394253*/ OPC_CheckChild0Same, 1, ++/*394255*/ OPC_MoveChild1, ++/*394256*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*394259*/ OPC_CheckChild0Integer, 1, ++/*394261*/ OPC_CheckChild0Type, MVT::i32, ++/*394263*/ OPC_CheckChild1Integer, 1, ++/*394265*/ OPC_CheckChild1Type, MVT::i32, ++/*394267*/ OPC_CheckChild2Integer, 1, ++/*394269*/ OPC_CheckChild2Type, MVT::i32, ++/*394271*/ OPC_CheckChild3Integer, 1, ++/*394273*/ OPC_CheckChild3Type, MVT::i32, ++/*394275*/ OPC_CheckChild4Integer, 1, ++/*394277*/ OPC_CheckChild4Type, MVT::i32, ++/*394279*/ OPC_MoveChild5, ++/*394280*/ OPC_CheckInteger, 1, ++/*394282*/ OPC_CheckType, MVT::i32, ++/*394284*/ OPC_MoveParent, ++/*394285*/ OPC_MoveChild6, ++/*394286*/ OPC_CheckInteger, 1, ++/*394288*/ OPC_CheckType, MVT::i32, ++/*394290*/ OPC_MoveParent, ++/*394291*/ OPC_MoveChild7, ++/*394292*/ OPC_CheckInteger, 1, ++/*394294*/ OPC_CheckType, MVT::i32, ++/*394296*/ OPC_MoveParent, ++/*394297*/ OPC_MoveChild, 8, ++/*394299*/ OPC_CheckInteger, 1, ++/*394301*/ OPC_CheckType, MVT::i32, ++/*394303*/ OPC_MoveParent, ++/*394304*/ OPC_MoveChild, 9, ++/*394306*/ OPC_CheckInteger, 1, ++/*394308*/ OPC_CheckType, MVT::i32, ++/*394310*/ OPC_MoveParent, ++/*394311*/ OPC_MoveChild, 10, ++/*394313*/ OPC_CheckInteger, 1, ++/*394315*/ OPC_CheckType, MVT::i32, ++/*394317*/ OPC_MoveParent, ++/*394318*/ OPC_MoveChild, 11, ++/*394320*/ OPC_CheckInteger, 1, ++/*394322*/ OPC_CheckType, MVT::i32, ++/*394324*/ OPC_MoveParent, ++/*394325*/ OPC_MoveChild, 12, ++/*394327*/ OPC_CheckInteger, 1, ++/*394329*/ OPC_CheckType, MVT::i32, ++/*394331*/ OPC_MoveParent, ++/*394332*/ OPC_MoveChild, 13, ++/*394334*/ OPC_CheckInteger, 1, ++/*394336*/ OPC_CheckType, MVT::i32, ++/*394338*/ OPC_MoveParent, ++/*394339*/ OPC_MoveChild, 14, ++/*394341*/ OPC_CheckInteger, 1, ++/*394343*/ OPC_CheckType, MVT::i32, ++/*394345*/ OPC_MoveParent, ++/*394346*/ OPC_MoveChild, 15, ++/*394348*/ OPC_CheckInteger, 1, ++/*394350*/ OPC_CheckType, MVT::i32, ++/*394352*/ OPC_MoveParent, ++/*394353*/ OPC_MoveParent, ++/*394354*/ OPC_MoveParent, ++/*394355*/ OPC_MoveParent, ++/*394356*/ OPC_MoveParent, ++/*394357*/ OPC_MoveChild1, ++/*394358*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*394361*/ OPC_CheckChild0Integer, 1, ++/*394363*/ OPC_CheckChild0Type, MVT::i32, ++/*394365*/ OPC_CheckChild1Integer, 1, ++/*394367*/ OPC_CheckChild1Type, MVT::i32, ++/*394369*/ OPC_CheckChild2Integer, 1, ++/*394371*/ OPC_CheckChild2Type, MVT::i32, ++/*394373*/ OPC_CheckChild3Integer, 1, ++/*394375*/ OPC_CheckChild3Type, MVT::i32, ++/*394377*/ OPC_CheckChild4Integer, 1, ++/*394379*/ OPC_CheckChild4Type, MVT::i32, ++/*394381*/ OPC_MoveChild5, ++/*394382*/ OPC_CheckInteger, 1, ++/*394384*/ OPC_CheckType, MVT::i32, ++/*394386*/ OPC_MoveParent, ++/*394387*/ OPC_MoveChild6, ++/*394388*/ OPC_CheckInteger, 1, ++/*394390*/ OPC_CheckType, MVT::i32, ++/*394392*/ OPC_MoveParent, ++/*394393*/ OPC_MoveChild7, ++/*394394*/ OPC_CheckInteger, 1, ++/*394396*/ OPC_CheckType, MVT::i32, ++/*394398*/ OPC_MoveParent, ++/*394399*/ OPC_MoveChild, 8, ++/*394401*/ OPC_CheckInteger, 1, ++/*394403*/ OPC_CheckType, MVT::i32, ++/*394405*/ OPC_MoveParent, ++/*394406*/ OPC_MoveChild, 9, ++/*394408*/ OPC_CheckInteger, 1, ++/*394410*/ OPC_CheckType, MVT::i32, ++/*394412*/ OPC_MoveParent, ++/*394413*/ OPC_MoveChild, 10, ++/*394415*/ OPC_CheckInteger, 1, ++/*394417*/ OPC_CheckType, MVT::i32, ++/*394419*/ OPC_MoveParent, ++/*394420*/ OPC_MoveChild, 11, ++/*394422*/ OPC_CheckInteger, 1, ++/*394424*/ OPC_CheckType, MVT::i32, ++/*394426*/ OPC_MoveParent, ++/*394427*/ OPC_MoveChild, 12, ++/*394429*/ OPC_CheckInteger, 1, ++/*394431*/ OPC_CheckType, MVT::i32, ++/*394433*/ OPC_MoveParent, ++/*394434*/ OPC_MoveChild, 13, ++/*394436*/ OPC_CheckInteger, 1, ++/*394438*/ OPC_CheckType, MVT::i32, ++/*394440*/ OPC_MoveParent, ++/*394441*/ OPC_MoveChild, 14, ++/*394443*/ OPC_CheckInteger, 1, ++/*394445*/ OPC_CheckType, MVT::i32, ++/*394447*/ OPC_MoveParent, ++/*394448*/ OPC_MoveChild, 15, ++/*394450*/ OPC_CheckInteger, 1, ++/*394452*/ OPC_CheckType, MVT::i32, ++/*394454*/ OPC_MoveParent, ++/*394455*/ OPC_CheckType, MVT::v16i16, ++/*394457*/ OPC_MoveParent, ++/*394458*/ OPC_CheckType, MVT::v16i16, ++/*394460*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*394462*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*394470*/ 0, /*End of Scope*/ ++/*394471*/ /*Scope*/ 62|128,3/*446*/, /*->394919*/ ++/*394473*/ OPC_CheckChild0Same, 1, ++/*394475*/ OPC_MoveChild1, ++/*394476*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*394479*/ OPC_Scope, 89|128,1/*217*/, /*->394699*/ // 2 children in Scope ++/*394482*/ OPC_MoveChild0, ++/*394483*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*394486*/ OPC_CheckChild0Integer, 1, ++/*394488*/ OPC_CheckChild0Type, MVT::i32, ++/*394490*/ OPC_CheckChild1Integer, 1, ++/*394492*/ OPC_CheckChild1Type, MVT::i32, ++/*394494*/ OPC_CheckChild2Integer, 1, ++/*394496*/ OPC_CheckChild2Type, MVT::i32, ++/*394498*/ OPC_CheckChild3Integer, 1, ++/*394500*/ OPC_CheckChild3Type, MVT::i32, ++/*394502*/ OPC_CheckChild4Integer, 1, ++/*394504*/ OPC_CheckChild4Type, MVT::i32, ++/*394506*/ OPC_MoveChild5, ++/*394507*/ OPC_CheckInteger, 1, ++/*394509*/ OPC_CheckType, MVT::i32, ++/*394511*/ OPC_MoveParent, ++/*394512*/ OPC_MoveChild6, ++/*394513*/ OPC_CheckInteger, 1, ++/*394515*/ OPC_CheckType, MVT::i32, ++/*394517*/ OPC_MoveParent, ++/*394518*/ OPC_MoveChild7, ++/*394519*/ OPC_CheckInteger, 1, ++/*394521*/ OPC_CheckType, MVT::i32, ++/*394523*/ OPC_MoveParent, ++/*394524*/ OPC_MoveChild, 8, ++/*394526*/ OPC_CheckInteger, 1, ++/*394528*/ OPC_CheckType, MVT::i32, ++/*394530*/ OPC_MoveParent, ++/*394531*/ OPC_MoveChild, 9, ++/*394533*/ OPC_CheckInteger, 1, ++/*394535*/ OPC_CheckType, MVT::i32, ++/*394537*/ OPC_MoveParent, ++/*394538*/ OPC_MoveChild, 10, ++/*394540*/ OPC_CheckInteger, 1, ++/*394542*/ OPC_CheckType, MVT::i32, ++/*394544*/ OPC_MoveParent, ++/*394545*/ OPC_MoveChild, 11, ++/*394547*/ OPC_CheckInteger, 1, ++/*394549*/ OPC_CheckType, MVT::i32, ++/*394551*/ OPC_MoveParent, ++/*394552*/ OPC_MoveChild, 12, ++/*394554*/ OPC_CheckInteger, 1, ++/*394556*/ OPC_CheckType, MVT::i32, ++/*394558*/ OPC_MoveParent, ++/*394559*/ OPC_MoveChild, 13, ++/*394561*/ OPC_CheckInteger, 1, ++/*394563*/ OPC_CheckType, MVT::i32, ++/*394565*/ OPC_MoveParent, ++/*394566*/ OPC_MoveChild, 14, ++/*394568*/ OPC_CheckInteger, 1, ++/*394570*/ OPC_CheckType, MVT::i32, ++/*394572*/ OPC_MoveParent, ++/*394573*/ OPC_MoveChild, 15, ++/*394575*/ OPC_CheckInteger, 1, ++/*394577*/ OPC_CheckType, MVT::i32, ++/*394579*/ OPC_MoveParent, ++/*394580*/ OPC_MoveParent, ++/*394581*/ OPC_CheckChild1Same, 0, ++/*394583*/ OPC_MoveParent, ++/*394584*/ OPC_MoveParent, ++/*394585*/ OPC_MoveParent, ++/*394586*/ OPC_MoveChild1, ++/*394587*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*394590*/ OPC_CheckChild0Integer, 1, ++/*394592*/ OPC_CheckChild0Type, MVT::i32, ++/*394594*/ OPC_CheckChild1Integer, 1, ++/*394596*/ OPC_CheckChild1Type, MVT::i32, ++/*394598*/ OPC_CheckChild2Integer, 1, ++/*394600*/ OPC_CheckChild2Type, MVT::i32, ++/*394602*/ OPC_CheckChild3Integer, 1, ++/*394604*/ OPC_CheckChild3Type, MVT::i32, ++/*394606*/ OPC_CheckChild4Integer, 1, ++/*394608*/ OPC_CheckChild4Type, MVT::i32, ++/*394610*/ OPC_MoveChild5, ++/*394611*/ OPC_CheckInteger, 1, ++/*394613*/ OPC_CheckType, MVT::i32, ++/*394615*/ OPC_MoveParent, ++/*394616*/ OPC_MoveChild6, ++/*394617*/ OPC_CheckInteger, 1, ++/*394619*/ OPC_CheckType, MVT::i32, ++/*394621*/ OPC_MoveParent, ++/*394622*/ OPC_MoveChild7, ++/*394623*/ OPC_CheckInteger, 1, ++/*394625*/ OPC_CheckType, MVT::i32, ++/*394627*/ OPC_MoveParent, ++/*394628*/ OPC_MoveChild, 8, ++/*394630*/ OPC_CheckInteger, 1, ++/*394632*/ OPC_CheckType, MVT::i32, ++/*394634*/ OPC_MoveParent, ++/*394635*/ OPC_MoveChild, 9, ++/*394637*/ OPC_CheckInteger, 1, ++/*394639*/ OPC_CheckType, MVT::i32, ++/*394641*/ OPC_MoveParent, ++/*394642*/ OPC_MoveChild, 10, ++/*394644*/ OPC_CheckInteger, 1, ++/*394646*/ OPC_CheckType, MVT::i32, ++/*394648*/ OPC_MoveParent, ++/*394649*/ OPC_MoveChild, 11, ++/*394651*/ OPC_CheckInteger, 1, ++/*394653*/ OPC_CheckType, MVT::i32, ++/*394655*/ OPC_MoveParent, ++/*394656*/ OPC_MoveChild, 12, ++/*394658*/ OPC_CheckInteger, 1, ++/*394660*/ OPC_CheckType, MVT::i32, ++/*394662*/ OPC_MoveParent, ++/*394663*/ OPC_MoveChild, 13, ++/*394665*/ OPC_CheckInteger, 1, ++/*394667*/ OPC_CheckType, MVT::i32, ++/*394669*/ OPC_MoveParent, ++/*394670*/ OPC_MoveChild, 14, ++/*394672*/ OPC_CheckInteger, 1, ++/*394674*/ OPC_CheckType, MVT::i32, ++/*394676*/ OPC_MoveParent, ++/*394677*/ OPC_MoveChild, 15, ++/*394679*/ OPC_CheckInteger, 1, ++/*394681*/ OPC_CheckType, MVT::i32, ++/*394683*/ OPC_MoveParent, ++/*394684*/ OPC_CheckType, MVT::v16i16, ++/*394686*/ OPC_MoveParent, ++/*394687*/ OPC_CheckType, MVT::v16i16, ++/*394689*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*394691*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*394699*/ /*Scope*/ 89|128,1/*217*/, /*->394918*/ ++/*394701*/ OPC_CheckChild0Same, 0, ++/*394703*/ OPC_MoveChild1, ++/*394704*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*394707*/ OPC_CheckChild0Integer, 1, ++/*394709*/ OPC_CheckChild0Type, MVT::i32, ++/*394711*/ OPC_CheckChild1Integer, 1, ++/*394713*/ OPC_CheckChild1Type, MVT::i32, ++/*394715*/ OPC_CheckChild2Integer, 1, ++/*394717*/ OPC_CheckChild2Type, MVT::i32, ++/*394719*/ OPC_CheckChild3Integer, 1, ++/*394721*/ OPC_CheckChild3Type, MVT::i32, ++/*394723*/ OPC_CheckChild4Integer, 1, ++/*394725*/ OPC_CheckChild4Type, MVT::i32, ++/*394727*/ OPC_MoveChild5, ++/*394728*/ OPC_CheckInteger, 1, ++/*394730*/ OPC_CheckType, MVT::i32, ++/*394732*/ OPC_MoveParent, ++/*394733*/ OPC_MoveChild6, ++/*394734*/ OPC_CheckInteger, 1, ++/*394736*/ OPC_CheckType, MVT::i32, ++/*394738*/ OPC_MoveParent, ++/*394739*/ OPC_MoveChild7, ++/*394740*/ OPC_CheckInteger, 1, ++/*394742*/ OPC_CheckType, MVT::i32, ++/*394744*/ OPC_MoveParent, ++/*394745*/ OPC_MoveChild, 8, ++/*394747*/ OPC_CheckInteger, 1, ++/*394749*/ OPC_CheckType, MVT::i32, ++/*394751*/ OPC_MoveParent, ++/*394752*/ OPC_MoveChild, 9, ++/*394754*/ OPC_CheckInteger, 1, ++/*394756*/ OPC_CheckType, MVT::i32, ++/*394758*/ OPC_MoveParent, ++/*394759*/ OPC_MoveChild, 10, ++/*394761*/ OPC_CheckInteger, 1, ++/*394763*/ OPC_CheckType, MVT::i32, ++/*394765*/ OPC_MoveParent, ++/*394766*/ OPC_MoveChild, 11, ++/*394768*/ OPC_CheckInteger, 1, ++/*394770*/ OPC_CheckType, MVT::i32, ++/*394772*/ OPC_MoveParent, ++/*394773*/ OPC_MoveChild, 12, ++/*394775*/ OPC_CheckInteger, 1, ++/*394777*/ OPC_CheckType, MVT::i32, ++/*394779*/ OPC_MoveParent, ++/*394780*/ OPC_MoveChild, 13, ++/*394782*/ OPC_CheckInteger, 1, ++/*394784*/ OPC_CheckType, MVT::i32, ++/*394786*/ OPC_MoveParent, ++/*394787*/ OPC_MoveChild, 14, ++/*394789*/ OPC_CheckInteger, 1, ++/*394791*/ OPC_CheckType, MVT::i32, ++/*394793*/ OPC_MoveParent, ++/*394794*/ OPC_MoveChild, 15, ++/*394796*/ OPC_CheckInteger, 1, ++/*394798*/ OPC_CheckType, MVT::i32, ++/*394800*/ OPC_MoveParent, ++/*394801*/ OPC_MoveParent, ++/*394802*/ OPC_MoveParent, ++/*394803*/ OPC_MoveParent, ++/*394804*/ OPC_MoveParent, ++/*394805*/ OPC_MoveChild1, ++/*394806*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*394809*/ OPC_CheckChild0Integer, 1, ++/*394811*/ OPC_CheckChild0Type, MVT::i32, ++/*394813*/ OPC_CheckChild1Integer, 1, ++/*394815*/ OPC_CheckChild1Type, MVT::i32, ++/*394817*/ OPC_CheckChild2Integer, 1, ++/*394819*/ OPC_CheckChild2Type, MVT::i32, ++/*394821*/ OPC_CheckChild3Integer, 1, ++/*394823*/ OPC_CheckChild3Type, MVT::i32, ++/*394825*/ OPC_CheckChild4Integer, 1, ++/*394827*/ OPC_CheckChild4Type, MVT::i32, ++/*394829*/ OPC_MoveChild5, ++/*394830*/ OPC_CheckInteger, 1, ++/*394832*/ OPC_CheckType, MVT::i32, ++/*394834*/ OPC_MoveParent, ++/*394835*/ OPC_MoveChild6, ++/*394836*/ OPC_CheckInteger, 1, ++/*394838*/ OPC_CheckType, MVT::i32, ++/*394840*/ OPC_MoveParent, ++/*394841*/ OPC_MoveChild7, ++/*394842*/ OPC_CheckInteger, 1, ++/*394844*/ OPC_CheckType, MVT::i32, ++/*394846*/ OPC_MoveParent, ++/*394847*/ OPC_MoveChild, 8, ++/*394849*/ OPC_CheckInteger, 1, ++/*394851*/ OPC_CheckType, MVT::i32, ++/*394853*/ OPC_MoveParent, ++/*394854*/ OPC_MoveChild, 9, ++/*394856*/ OPC_CheckInteger, 1, ++/*394858*/ OPC_CheckType, MVT::i32, ++/*394860*/ OPC_MoveParent, ++/*394861*/ OPC_MoveChild, 10, ++/*394863*/ OPC_CheckInteger, 1, ++/*394865*/ OPC_CheckType, MVT::i32, ++/*394867*/ OPC_MoveParent, ++/*394868*/ OPC_MoveChild, 11, ++/*394870*/ OPC_CheckInteger, 1, ++/*394872*/ OPC_CheckType, MVT::i32, ++/*394874*/ OPC_MoveParent, ++/*394875*/ OPC_MoveChild, 12, ++/*394877*/ OPC_CheckInteger, 1, ++/*394879*/ OPC_CheckType, MVT::i32, ++/*394881*/ OPC_MoveParent, ++/*394882*/ OPC_MoveChild, 13, ++/*394884*/ OPC_CheckInteger, 1, ++/*394886*/ OPC_CheckType, MVT::i32, ++/*394888*/ OPC_MoveParent, ++/*394889*/ OPC_MoveChild, 14, ++/*394891*/ OPC_CheckInteger, 1, ++/*394893*/ OPC_CheckType, MVT::i32, ++/*394895*/ OPC_MoveParent, ++/*394896*/ OPC_MoveChild, 15, ++/*394898*/ OPC_CheckInteger, 1, ++/*394900*/ OPC_CheckType, MVT::i32, ++/*394902*/ OPC_MoveParent, ++/*394903*/ OPC_CheckType, MVT::v16i16, ++/*394905*/ OPC_MoveParent, ++/*394906*/ OPC_CheckType, MVT::v16i16, ++/*394908*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*394910*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*394918*/ 0, /*End of Scope*/ ++/*394919*/ /*Scope*/ 91|128,2/*347*/, /*->395268*/ ++/*394921*/ OPC_MoveChild0, ++/*394922*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*394925*/ OPC_CheckChild0Integer, 1, ++/*394927*/ OPC_CheckChild0Type, MVT::i32, ++/*394929*/ OPC_CheckChild1Integer, 1, ++/*394931*/ OPC_CheckChild1Type, MVT::i32, ++/*394933*/ OPC_CheckChild2Integer, 1, ++/*394935*/ OPC_CheckChild2Type, MVT::i32, ++/*394937*/ OPC_CheckChild3Integer, 1, ++/*394939*/ OPC_CheckChild3Type, MVT::i32, ++/*394941*/ OPC_CheckChild4Integer, 1, ++/*394943*/ OPC_CheckChild4Type, MVT::i32, ++/*394945*/ OPC_MoveChild5, ++/*394946*/ OPC_CheckInteger, 1, ++/*394948*/ OPC_CheckType, MVT::i32, ++/*394950*/ OPC_MoveParent, ++/*394951*/ OPC_MoveChild6, ++/*394952*/ OPC_CheckInteger, 1, ++/*394954*/ OPC_CheckType, MVT::i32, ++/*394956*/ OPC_MoveParent, ++/*394957*/ OPC_MoveChild7, ++/*394958*/ OPC_CheckInteger, 1, ++/*394960*/ OPC_CheckType, MVT::i32, ++/*394962*/ OPC_MoveParent, ++/*394963*/ OPC_MoveChild, 8, ++/*394965*/ OPC_CheckInteger, 1, ++/*394967*/ OPC_CheckType, MVT::i32, ++/*394969*/ OPC_MoveParent, ++/*394970*/ OPC_MoveChild, 9, ++/*394972*/ OPC_CheckInteger, 1, ++/*394974*/ OPC_CheckType, MVT::i32, ++/*394976*/ OPC_MoveParent, ++/*394977*/ OPC_MoveChild, 10, ++/*394979*/ OPC_CheckInteger, 1, ++/*394981*/ OPC_CheckType, MVT::i32, ++/*394983*/ OPC_MoveParent, ++/*394984*/ OPC_MoveChild, 11, ++/*394986*/ OPC_CheckInteger, 1, ++/*394988*/ OPC_CheckType, MVT::i32, ++/*394990*/ OPC_MoveParent, ++/*394991*/ OPC_MoveChild, 12, ++/*394993*/ OPC_CheckInteger, 1, ++/*394995*/ OPC_CheckType, MVT::i32, ++/*394997*/ OPC_MoveParent, ++/*394998*/ OPC_MoveChild, 13, ++/*395000*/ OPC_CheckInteger, 1, ++/*395002*/ OPC_CheckType, MVT::i32, ++/*395004*/ OPC_MoveParent, ++/*395005*/ OPC_MoveChild, 14, ++/*395007*/ OPC_CheckInteger, 1, ++/*395009*/ OPC_CheckType, MVT::i32, ++/*395011*/ OPC_MoveParent, ++/*395012*/ OPC_MoveChild, 15, ++/*395014*/ OPC_CheckInteger, 1, ++/*395016*/ OPC_CheckType, MVT::i32, ++/*395018*/ OPC_MoveParent, ++/*395019*/ OPC_MoveParent, ++/*395020*/ OPC_MoveChild1, ++/*395021*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*395024*/ OPC_Scope, 120, /*->395146*/ // 2 children in Scope ++/*395026*/ OPC_CheckChild0Same, 1, ++/*395028*/ OPC_CheckChild1Same, 0, ++/*395030*/ OPC_MoveParent, ++/*395031*/ OPC_MoveParent, ++/*395032*/ OPC_MoveParent, ++/*395033*/ OPC_MoveChild1, ++/*395034*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*395037*/ OPC_CheckChild0Integer, 1, ++/*395039*/ OPC_CheckChild0Type, MVT::i32, ++/*395041*/ OPC_CheckChild1Integer, 1, ++/*395043*/ OPC_CheckChild1Type, MVT::i32, ++/*395045*/ OPC_CheckChild2Integer, 1, ++/*395047*/ OPC_CheckChild2Type, MVT::i32, ++/*395049*/ OPC_CheckChild3Integer, 1, ++/*395051*/ OPC_CheckChild3Type, MVT::i32, ++/*395053*/ OPC_CheckChild4Integer, 1, ++/*395055*/ OPC_CheckChild4Type, MVT::i32, ++/*395057*/ OPC_MoveChild5, ++/*395058*/ OPC_CheckInteger, 1, ++/*395060*/ OPC_CheckType, MVT::i32, ++/*395062*/ OPC_MoveParent, ++/*395063*/ OPC_MoveChild6, ++/*395064*/ OPC_CheckInteger, 1, ++/*395066*/ OPC_CheckType, MVT::i32, ++/*395068*/ OPC_MoveParent, ++/*395069*/ OPC_MoveChild7, ++/*395070*/ OPC_CheckInteger, 1, ++/*395072*/ OPC_CheckType, MVT::i32, ++/*395074*/ OPC_MoveParent, ++/*395075*/ OPC_MoveChild, 8, ++/*395077*/ OPC_CheckInteger, 1, ++/*395079*/ OPC_CheckType, MVT::i32, ++/*395081*/ OPC_MoveParent, ++/*395082*/ OPC_MoveChild, 9, ++/*395084*/ OPC_CheckInteger, 1, ++/*395086*/ OPC_CheckType, MVT::i32, ++/*395088*/ OPC_MoveParent, ++/*395089*/ OPC_MoveChild, 10, ++/*395091*/ OPC_CheckInteger, 1, ++/*395093*/ OPC_CheckType, MVT::i32, ++/*395095*/ OPC_MoveParent, ++/*395096*/ OPC_MoveChild, 11, ++/*395098*/ OPC_CheckInteger, 1, ++/*395100*/ OPC_CheckType, MVT::i32, ++/*395102*/ OPC_MoveParent, ++/*395103*/ OPC_MoveChild, 12, ++/*395105*/ OPC_CheckInteger, 1, ++/*395107*/ OPC_CheckType, MVT::i32, ++/*395109*/ OPC_MoveParent, ++/*395110*/ OPC_MoveChild, 13, ++/*395112*/ OPC_CheckInteger, 1, ++/*395114*/ OPC_CheckType, MVT::i32, ++/*395116*/ OPC_MoveParent, ++/*395117*/ OPC_MoveChild, 14, ++/*395119*/ OPC_CheckInteger, 1, ++/*395121*/ OPC_CheckType, MVT::i32, ++/*395123*/ OPC_MoveParent, ++/*395124*/ OPC_MoveChild, 15, ++/*395126*/ OPC_CheckInteger, 1, ++/*395128*/ OPC_CheckType, MVT::i32, ++/*395130*/ OPC_MoveParent, ++/*395131*/ OPC_CheckType, MVT::v16i16, ++/*395133*/ OPC_MoveParent, ++/*395134*/ OPC_CheckType, MVT::v16i16, ++/*395136*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*395138*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*395146*/ /*Scope*/ 120, /*->395267*/ ++/*395147*/ OPC_CheckChild0Same, 0, ++/*395149*/ OPC_CheckChild1Same, 1, ++/*395151*/ OPC_MoveParent, ++/*395152*/ OPC_MoveParent, ++/*395153*/ OPC_MoveParent, ++/*395154*/ OPC_MoveChild1, ++/*395155*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*395158*/ OPC_CheckChild0Integer, 1, ++/*395160*/ OPC_CheckChild0Type, MVT::i32, ++/*395162*/ OPC_CheckChild1Integer, 1, ++/*395164*/ OPC_CheckChild1Type, MVT::i32, ++/*395166*/ OPC_CheckChild2Integer, 1, ++/*395168*/ OPC_CheckChild2Type, MVT::i32, ++/*395170*/ OPC_CheckChild3Integer, 1, ++/*395172*/ OPC_CheckChild3Type, MVT::i32, ++/*395174*/ OPC_CheckChild4Integer, 1, ++/*395176*/ OPC_CheckChild4Type, MVT::i32, ++/*395178*/ OPC_MoveChild5, ++/*395179*/ OPC_CheckInteger, 1, ++/*395181*/ OPC_CheckType, MVT::i32, ++/*395183*/ OPC_MoveParent, ++/*395184*/ OPC_MoveChild6, ++/*395185*/ OPC_CheckInteger, 1, ++/*395187*/ OPC_CheckType, MVT::i32, ++/*395189*/ OPC_MoveParent, ++/*395190*/ OPC_MoveChild7, ++/*395191*/ OPC_CheckInteger, 1, ++/*395193*/ OPC_CheckType, MVT::i32, ++/*395195*/ OPC_MoveParent, ++/*395196*/ OPC_MoveChild, 8, ++/*395198*/ OPC_CheckInteger, 1, ++/*395200*/ OPC_CheckType, MVT::i32, ++/*395202*/ OPC_MoveParent, ++/*395203*/ OPC_MoveChild, 9, ++/*395205*/ OPC_CheckInteger, 1, ++/*395207*/ OPC_CheckType, MVT::i32, ++/*395209*/ OPC_MoveParent, ++/*395210*/ OPC_MoveChild, 10, ++/*395212*/ OPC_CheckInteger, 1, ++/*395214*/ OPC_CheckType, MVT::i32, ++/*395216*/ OPC_MoveParent, ++/*395217*/ OPC_MoveChild, 11, ++/*395219*/ OPC_CheckInteger, 1, ++/*395221*/ OPC_CheckType, MVT::i32, ++/*395223*/ OPC_MoveParent, ++/*395224*/ OPC_MoveChild, 12, ++/*395226*/ OPC_CheckInteger, 1, ++/*395228*/ OPC_CheckType, MVT::i32, ++/*395230*/ OPC_MoveParent, ++/*395231*/ OPC_MoveChild, 13, ++/*395233*/ OPC_CheckInteger, 1, ++/*395235*/ OPC_CheckType, MVT::i32, ++/*395237*/ OPC_MoveParent, ++/*395238*/ OPC_MoveChild, 14, ++/*395240*/ OPC_CheckInteger, 1, ++/*395242*/ OPC_CheckType, MVT::i32, ++/*395244*/ OPC_MoveParent, ++/*395245*/ OPC_MoveChild, 15, ++/*395247*/ OPC_CheckInteger, 1, ++/*395249*/ OPC_CheckType, MVT::i32, ++/*395251*/ OPC_MoveParent, ++/*395252*/ OPC_CheckType, MVT::v16i16, ++/*395254*/ OPC_MoveParent, ++/*395255*/ OPC_CheckType, MVT::v16i16, ++/*395257*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*395259*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*395267*/ 0, /*End of Scope*/ ++/*395268*/ 0, /*End of Scope*/ ++/*395269*/ /*Scope*/ 101|128,21/*2789*/, /*->398060*/ ++/*395271*/ OPC_MoveChild0, ++/*395272*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*395275*/ OPC_CheckChild0Integer, 1, ++/*395277*/ OPC_CheckChild0Type, MVT::i32, ++/*395279*/ OPC_CheckChild1Integer, 1, ++/*395281*/ OPC_CheckChild1Type, MVT::i32, ++/*395283*/ OPC_CheckChild2Integer, 1, ++/*395285*/ OPC_CheckChild2Type, MVT::i32, ++/*395287*/ OPC_CheckChild3Integer, 1, ++/*395289*/ OPC_CheckChild3Type, MVT::i32, ++/*395291*/ OPC_CheckChild4Integer, 1, ++/*395293*/ OPC_CheckChild4Type, MVT::i32, ++/*395295*/ OPC_MoveChild5, ++/*395296*/ OPC_CheckInteger, 1, ++/*395298*/ OPC_CheckType, MVT::i32, ++/*395300*/ OPC_MoveParent, ++/*395301*/ OPC_MoveChild6, ++/*395302*/ OPC_CheckInteger, 1, ++/*395304*/ OPC_CheckType, MVT::i32, ++/*395306*/ OPC_MoveParent, ++/*395307*/ OPC_MoveChild7, ++/*395308*/ OPC_CheckInteger, 1, ++/*395310*/ OPC_CheckType, MVT::i32, ++/*395312*/ OPC_MoveParent, ++/*395313*/ OPC_MoveChild, 8, ++/*395315*/ OPC_CheckInteger, 1, ++/*395317*/ OPC_CheckType, MVT::i32, ++/*395319*/ OPC_MoveParent, ++/*395320*/ OPC_MoveChild, 9, ++/*395322*/ OPC_CheckInteger, 1, ++/*395324*/ OPC_CheckType, MVT::i32, ++/*395326*/ OPC_MoveParent, ++/*395327*/ OPC_MoveChild, 10, ++/*395329*/ OPC_CheckInteger, 1, ++/*395331*/ OPC_CheckType, MVT::i32, ++/*395333*/ OPC_MoveParent, ++/*395334*/ OPC_MoveChild, 11, ++/*395336*/ OPC_CheckInteger, 1, ++/*395338*/ OPC_CheckType, MVT::i32, ++/*395340*/ OPC_MoveParent, ++/*395341*/ OPC_MoveChild, 12, ++/*395343*/ OPC_CheckInteger, 1, ++/*395345*/ OPC_CheckType, MVT::i32, ++/*395347*/ OPC_MoveParent, ++/*395348*/ OPC_MoveChild, 13, ++/*395350*/ OPC_CheckInteger, 1, ++/*395352*/ OPC_CheckType, MVT::i32, ++/*395354*/ OPC_MoveParent, ++/*395355*/ OPC_MoveChild, 14, ++/*395357*/ OPC_CheckInteger, 1, ++/*395359*/ OPC_CheckType, MVT::i32, ++/*395361*/ OPC_MoveParent, ++/*395362*/ OPC_MoveChild, 15, ++/*395364*/ OPC_CheckInteger, 1, ++/*395366*/ OPC_CheckType, MVT::i32, ++/*395368*/ OPC_MoveParent, ++/*395369*/ OPC_MoveParent, ++/*395370*/ OPC_RecordChild1, // #1 = $b ++/*395371*/ OPC_MoveParent, ++/*395372*/ OPC_MoveParent, ++/*395373*/ OPC_MoveChild1, ++/*395374*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*395377*/ OPC_CheckChild0Integer, 15, ++/*395379*/ OPC_CheckChild0Type, MVT::i32, ++/*395381*/ OPC_CheckChild1Integer, 15, ++/*395383*/ OPC_CheckChild1Type, MVT::i32, ++/*395385*/ OPC_CheckChild2Integer, 15, ++/*395387*/ OPC_CheckChild2Type, MVT::i32, ++/*395389*/ OPC_CheckChild3Integer, 15, ++/*395391*/ OPC_CheckChild3Type, MVT::i32, ++/*395393*/ OPC_CheckChild4Integer, 15, ++/*395395*/ OPC_CheckChild4Type, MVT::i32, ++/*395397*/ OPC_MoveChild5, ++/*395398*/ OPC_CheckInteger, 15, ++/*395400*/ OPC_CheckType, MVT::i32, ++/*395402*/ OPC_MoveParent, ++/*395403*/ OPC_MoveChild6, ++/*395404*/ OPC_CheckInteger, 15, ++/*395406*/ OPC_CheckType, MVT::i32, ++/*395408*/ OPC_MoveParent, ++/*395409*/ OPC_MoveChild7, ++/*395410*/ OPC_CheckInteger, 15, ++/*395412*/ OPC_CheckType, MVT::i32, ++/*395414*/ OPC_MoveParent, ++/*395415*/ OPC_MoveChild, 8, ++/*395417*/ OPC_CheckInteger, 15, ++/*395419*/ OPC_CheckType, MVT::i32, ++/*395421*/ OPC_MoveParent, ++/*395422*/ OPC_MoveChild, 9, ++/*395424*/ OPC_CheckInteger, 15, ++/*395426*/ OPC_CheckType, MVT::i32, ++/*395428*/ OPC_MoveParent, ++/*395429*/ OPC_MoveChild, 10, ++/*395431*/ OPC_CheckInteger, 15, ++/*395433*/ OPC_CheckType, MVT::i32, ++/*395435*/ OPC_MoveParent, ++/*395436*/ OPC_MoveChild, 11, ++/*395438*/ OPC_CheckInteger, 15, ++/*395440*/ OPC_CheckType, MVT::i32, ++/*395442*/ OPC_MoveParent, ++/*395443*/ OPC_MoveChild, 12, ++/*395445*/ OPC_CheckInteger, 15, ++/*395447*/ OPC_CheckType, MVT::i32, ++/*395449*/ OPC_MoveParent, ++/*395450*/ OPC_MoveChild, 13, ++/*395452*/ OPC_CheckInteger, 15, ++/*395454*/ OPC_CheckType, MVT::i32, ++/*395456*/ OPC_MoveParent, ++/*395457*/ OPC_MoveChild, 14, ++/*395459*/ OPC_CheckInteger, 15, ++/*395461*/ OPC_CheckType, MVT::i32, ++/*395463*/ OPC_MoveParent, ++/*395464*/ OPC_MoveChild, 15, ++/*395466*/ OPC_CheckInteger, 15, ++/*395468*/ OPC_CheckType, MVT::i32, ++/*395470*/ OPC_MoveParent, ++/*395471*/ OPC_CheckType, MVT::v16i16, ++/*395473*/ OPC_MoveParent, ++/*395474*/ OPC_MoveParent, ++/*395475*/ OPC_MoveChild1, ++/*395476*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*395479*/ OPC_Scope, 52|128,10/*1332*/, /*->396814*/ // 4 children in Scope ++/*395482*/ OPC_MoveChild0, ++/*395483*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*395486*/ OPC_Scope, 91|128,1/*219*/, /*->395708*/ // 6 children in Scope ++/*395489*/ OPC_MoveChild0, ++/*395490*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*395493*/ OPC_CheckChild0Integer, 1, ++/*395495*/ OPC_CheckChild0Type, MVT::i32, ++/*395497*/ OPC_CheckChild1Integer, 1, ++/*395499*/ OPC_CheckChild1Type, MVT::i32, ++/*395501*/ OPC_CheckChild2Integer, 1, ++/*395503*/ OPC_CheckChild2Type, MVT::i32, ++/*395505*/ OPC_CheckChild3Integer, 1, ++/*395507*/ OPC_CheckChild3Type, MVT::i32, ++/*395509*/ OPC_CheckChild4Integer, 1, ++/*395511*/ OPC_CheckChild4Type, MVT::i32, ++/*395513*/ OPC_MoveChild5, ++/*395514*/ OPC_CheckInteger, 1, ++/*395516*/ OPC_CheckType, MVT::i32, ++/*395518*/ OPC_MoveParent, ++/*395519*/ OPC_MoveChild6, ++/*395520*/ OPC_CheckInteger, 1, ++/*395522*/ OPC_CheckType, MVT::i32, ++/*395524*/ OPC_MoveParent, ++/*395525*/ OPC_MoveChild7, ++/*395526*/ OPC_CheckInteger, 1, ++/*395528*/ OPC_CheckType, MVT::i32, ++/*395530*/ OPC_MoveParent, ++/*395531*/ OPC_MoveChild, 8, ++/*395533*/ OPC_CheckInteger, 1, ++/*395535*/ OPC_CheckType, MVT::i32, ++/*395537*/ OPC_MoveParent, ++/*395538*/ OPC_MoveChild, 9, ++/*395540*/ OPC_CheckInteger, 1, ++/*395542*/ OPC_CheckType, MVT::i32, ++/*395544*/ OPC_MoveParent, ++/*395545*/ OPC_MoveChild, 10, ++/*395547*/ OPC_CheckInteger, 1, ++/*395549*/ OPC_CheckType, MVT::i32, ++/*395551*/ OPC_MoveParent, ++/*395552*/ OPC_MoveChild, 11, ++/*395554*/ OPC_CheckInteger, 1, ++/*395556*/ OPC_CheckType, MVT::i32, ++/*395558*/ OPC_MoveParent, ++/*395559*/ OPC_MoveChild, 12, ++/*395561*/ OPC_CheckInteger, 1, ++/*395563*/ OPC_CheckType, MVT::i32, ++/*395565*/ OPC_MoveParent, ++/*395566*/ OPC_MoveChild, 13, ++/*395568*/ OPC_CheckInteger, 1, ++/*395570*/ OPC_CheckType, MVT::i32, ++/*395572*/ OPC_MoveParent, ++/*395573*/ OPC_MoveChild, 14, ++/*395575*/ OPC_CheckInteger, 1, ++/*395577*/ OPC_CheckType, MVT::i32, ++/*395579*/ OPC_MoveParent, ++/*395580*/ OPC_MoveChild, 15, ++/*395582*/ OPC_CheckInteger, 1, ++/*395584*/ OPC_CheckType, MVT::i32, ++/*395586*/ OPC_MoveParent, ++/*395587*/ OPC_MoveParent, ++/*395588*/ OPC_CheckChild1Same, 0, ++/*395590*/ OPC_MoveParent, ++/*395591*/ OPC_CheckChild1Same, 1, ++/*395593*/ OPC_MoveParent, ++/*395594*/ OPC_MoveParent, ++/*395595*/ OPC_MoveChild1, ++/*395596*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*395599*/ OPC_CheckChild0Integer, 1, ++/*395601*/ OPC_CheckChild0Type, MVT::i32, ++/*395603*/ OPC_CheckChild1Integer, 1, ++/*395605*/ OPC_CheckChild1Type, MVT::i32, ++/*395607*/ OPC_CheckChild2Integer, 1, ++/*395609*/ OPC_CheckChild2Type, MVT::i32, ++/*395611*/ OPC_CheckChild3Integer, 1, ++/*395613*/ OPC_CheckChild3Type, MVT::i32, ++/*395615*/ OPC_CheckChild4Integer, 1, ++/*395617*/ OPC_CheckChild4Type, MVT::i32, ++/*395619*/ OPC_MoveChild5, ++/*395620*/ OPC_CheckInteger, 1, ++/*395622*/ OPC_CheckType, MVT::i32, ++/*395624*/ OPC_MoveParent, ++/*395625*/ OPC_MoveChild6, ++/*395626*/ OPC_CheckInteger, 1, ++/*395628*/ OPC_CheckType, MVT::i32, ++/*395630*/ OPC_MoveParent, ++/*395631*/ OPC_MoveChild7, ++/*395632*/ OPC_CheckInteger, 1, ++/*395634*/ OPC_CheckType, MVT::i32, ++/*395636*/ OPC_MoveParent, ++/*395637*/ OPC_MoveChild, 8, ++/*395639*/ OPC_CheckInteger, 1, ++/*395641*/ OPC_CheckType, MVT::i32, ++/*395643*/ OPC_MoveParent, ++/*395644*/ OPC_MoveChild, 9, ++/*395646*/ OPC_CheckInteger, 1, ++/*395648*/ OPC_CheckType, MVT::i32, ++/*395650*/ OPC_MoveParent, ++/*395651*/ OPC_MoveChild, 10, ++/*395653*/ OPC_CheckInteger, 1, ++/*395655*/ OPC_CheckType, MVT::i32, ++/*395657*/ OPC_MoveParent, ++/*395658*/ OPC_MoveChild, 11, ++/*395660*/ OPC_CheckInteger, 1, ++/*395662*/ OPC_CheckType, MVT::i32, ++/*395664*/ OPC_MoveParent, ++/*395665*/ OPC_MoveChild, 12, ++/*395667*/ OPC_CheckInteger, 1, ++/*395669*/ OPC_CheckType, MVT::i32, ++/*395671*/ OPC_MoveParent, ++/*395672*/ OPC_MoveChild, 13, ++/*395674*/ OPC_CheckInteger, 1, ++/*395676*/ OPC_CheckType, MVT::i32, ++/*395678*/ OPC_MoveParent, ++/*395679*/ OPC_MoveChild, 14, ++/*395681*/ OPC_CheckInteger, 1, ++/*395683*/ OPC_CheckType, MVT::i32, ++/*395685*/ OPC_MoveParent, ++/*395686*/ OPC_MoveChild, 15, ++/*395688*/ OPC_CheckInteger, 1, ++/*395690*/ OPC_CheckType, MVT::i32, ++/*395692*/ OPC_MoveParent, ++/*395693*/ OPC_CheckType, MVT::v16i16, ++/*395695*/ OPC_MoveParent, ++/*395696*/ OPC_CheckType, MVT::v16i16, ++/*395698*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*395700*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a), LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*395708*/ /*Scope*/ 91|128,1/*219*/, /*->395929*/ ++/*395710*/ OPC_CheckChild0Same, 0, ++/*395712*/ OPC_MoveChild1, ++/*395713*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*395716*/ OPC_CheckChild0Integer, 1, ++/*395718*/ OPC_CheckChild0Type, MVT::i32, ++/*395720*/ OPC_CheckChild1Integer, 1, ++/*395722*/ OPC_CheckChild1Type, MVT::i32, ++/*395724*/ OPC_CheckChild2Integer, 1, ++/*395726*/ OPC_CheckChild2Type, MVT::i32, ++/*395728*/ OPC_CheckChild3Integer, 1, ++/*395730*/ OPC_CheckChild3Type, MVT::i32, ++/*395732*/ OPC_CheckChild4Integer, 1, ++/*395734*/ OPC_CheckChild4Type, MVT::i32, ++/*395736*/ OPC_MoveChild5, ++/*395737*/ OPC_CheckInteger, 1, ++/*395739*/ OPC_CheckType, MVT::i32, ++/*395741*/ OPC_MoveParent, ++/*395742*/ OPC_MoveChild6, ++/*395743*/ OPC_CheckInteger, 1, ++/*395745*/ OPC_CheckType, MVT::i32, ++/*395747*/ OPC_MoveParent, ++/*395748*/ OPC_MoveChild7, ++/*395749*/ OPC_CheckInteger, 1, ++/*395751*/ OPC_CheckType, MVT::i32, ++/*395753*/ OPC_MoveParent, ++/*395754*/ OPC_MoveChild, 8, ++/*395756*/ OPC_CheckInteger, 1, ++/*395758*/ OPC_CheckType, MVT::i32, ++/*395760*/ OPC_MoveParent, ++/*395761*/ OPC_MoveChild, 9, ++/*395763*/ OPC_CheckInteger, 1, ++/*395765*/ OPC_CheckType, MVT::i32, ++/*395767*/ OPC_MoveParent, ++/*395768*/ OPC_MoveChild, 10, ++/*395770*/ OPC_CheckInteger, 1, ++/*395772*/ OPC_CheckType, MVT::i32, ++/*395774*/ OPC_MoveParent, ++/*395775*/ OPC_MoveChild, 11, ++/*395777*/ OPC_CheckInteger, 1, ++/*395779*/ OPC_CheckType, MVT::i32, ++/*395781*/ OPC_MoveParent, ++/*395782*/ OPC_MoveChild, 12, ++/*395784*/ OPC_CheckInteger, 1, ++/*395786*/ OPC_CheckType, MVT::i32, ++/*395788*/ OPC_MoveParent, ++/*395789*/ OPC_MoveChild, 13, ++/*395791*/ OPC_CheckInteger, 1, ++/*395793*/ OPC_CheckType, MVT::i32, ++/*395795*/ OPC_MoveParent, ++/*395796*/ OPC_MoveChild, 14, ++/*395798*/ OPC_CheckInteger, 1, ++/*395800*/ OPC_CheckType, MVT::i32, ++/*395802*/ OPC_MoveParent, ++/*395803*/ OPC_MoveChild, 15, ++/*395805*/ OPC_CheckInteger, 1, ++/*395807*/ OPC_CheckType, MVT::i32, ++/*395809*/ OPC_MoveParent, ++/*395810*/ OPC_MoveParent, ++/*395811*/ OPC_MoveParent, ++/*395812*/ OPC_CheckChild1Same, 1, ++/*395814*/ OPC_MoveParent, ++/*395815*/ OPC_MoveParent, ++/*395816*/ OPC_MoveChild1, ++/*395817*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*395820*/ OPC_CheckChild0Integer, 1, ++/*395822*/ OPC_CheckChild0Type, MVT::i32, ++/*395824*/ OPC_CheckChild1Integer, 1, ++/*395826*/ OPC_CheckChild1Type, MVT::i32, ++/*395828*/ OPC_CheckChild2Integer, 1, ++/*395830*/ OPC_CheckChild2Type, MVT::i32, ++/*395832*/ OPC_CheckChild3Integer, 1, ++/*395834*/ OPC_CheckChild3Type, MVT::i32, ++/*395836*/ OPC_CheckChild4Integer, 1, ++/*395838*/ OPC_CheckChild4Type, MVT::i32, ++/*395840*/ OPC_MoveChild5, ++/*395841*/ OPC_CheckInteger, 1, ++/*395843*/ OPC_CheckType, MVT::i32, ++/*395845*/ OPC_MoveParent, ++/*395846*/ OPC_MoveChild6, ++/*395847*/ OPC_CheckInteger, 1, ++/*395849*/ OPC_CheckType, MVT::i32, ++/*395851*/ OPC_MoveParent, ++/*395852*/ OPC_MoveChild7, ++/*395853*/ OPC_CheckInteger, 1, ++/*395855*/ OPC_CheckType, MVT::i32, ++/*395857*/ OPC_MoveParent, ++/*395858*/ OPC_MoveChild, 8, ++/*395860*/ OPC_CheckInteger, 1, ++/*395862*/ OPC_CheckType, MVT::i32, ++/*395864*/ OPC_MoveParent, ++/*395865*/ OPC_MoveChild, 9, ++/*395867*/ OPC_CheckInteger, 1, ++/*395869*/ OPC_CheckType, MVT::i32, ++/*395871*/ OPC_MoveParent, ++/*395872*/ OPC_MoveChild, 10, ++/*395874*/ OPC_CheckInteger, 1, ++/*395876*/ OPC_CheckType, MVT::i32, ++/*395878*/ OPC_MoveParent, ++/*395879*/ OPC_MoveChild, 11, ++/*395881*/ OPC_CheckInteger, 1, ++/*395883*/ OPC_CheckType, MVT::i32, ++/*395885*/ OPC_MoveParent, ++/*395886*/ OPC_MoveChild, 12, ++/*395888*/ OPC_CheckInteger, 1, ++/*395890*/ OPC_CheckType, MVT::i32, ++/*395892*/ OPC_MoveParent, ++/*395893*/ OPC_MoveChild, 13, ++/*395895*/ OPC_CheckInteger, 1, ++/*395897*/ OPC_CheckType, MVT::i32, ++/*395899*/ OPC_MoveParent, ++/*395900*/ OPC_MoveChild, 14, ++/*395902*/ OPC_CheckInteger, 1, ++/*395904*/ OPC_CheckType, MVT::i32, ++/*395906*/ OPC_MoveParent, ++/*395907*/ OPC_MoveChild, 15, ++/*395909*/ OPC_CheckInteger, 1, ++/*395911*/ OPC_CheckType, MVT::i32, ++/*395913*/ OPC_MoveParent, ++/*395914*/ OPC_CheckType, MVT::v16i16, ++/*395916*/ OPC_MoveParent, ++/*395917*/ OPC_CheckType, MVT::v16i16, ++/*395919*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*395921*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*395929*/ /*Scope*/ 91|128,1/*219*/, /*->396150*/ ++/*395931*/ OPC_MoveChild0, ++/*395932*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*395935*/ OPC_CheckChild0Integer, 1, ++/*395937*/ OPC_CheckChild0Type, MVT::i32, ++/*395939*/ OPC_CheckChild1Integer, 1, ++/*395941*/ OPC_CheckChild1Type, MVT::i32, ++/*395943*/ OPC_CheckChild2Integer, 1, ++/*395945*/ OPC_CheckChild2Type, MVT::i32, ++/*395947*/ OPC_CheckChild3Integer, 1, ++/*395949*/ OPC_CheckChild3Type, MVT::i32, ++/*395951*/ OPC_CheckChild4Integer, 1, ++/*395953*/ OPC_CheckChild4Type, MVT::i32, ++/*395955*/ OPC_MoveChild5, ++/*395956*/ OPC_CheckInteger, 1, ++/*395958*/ OPC_CheckType, MVT::i32, ++/*395960*/ OPC_MoveParent, ++/*395961*/ OPC_MoveChild6, ++/*395962*/ OPC_CheckInteger, 1, ++/*395964*/ OPC_CheckType, MVT::i32, ++/*395966*/ OPC_MoveParent, ++/*395967*/ OPC_MoveChild7, ++/*395968*/ OPC_CheckInteger, 1, ++/*395970*/ OPC_CheckType, MVT::i32, ++/*395972*/ OPC_MoveParent, ++/*395973*/ OPC_MoveChild, 8, ++/*395975*/ OPC_CheckInteger, 1, ++/*395977*/ OPC_CheckType, MVT::i32, ++/*395979*/ OPC_MoveParent, ++/*395980*/ OPC_MoveChild, 9, ++/*395982*/ OPC_CheckInteger, 1, ++/*395984*/ OPC_CheckType, MVT::i32, ++/*395986*/ OPC_MoveParent, ++/*395987*/ OPC_MoveChild, 10, ++/*395989*/ OPC_CheckInteger, 1, ++/*395991*/ OPC_CheckType, MVT::i32, ++/*395993*/ OPC_MoveParent, ++/*395994*/ OPC_MoveChild, 11, ++/*395996*/ OPC_CheckInteger, 1, ++/*395998*/ OPC_CheckType, MVT::i32, ++/*396000*/ OPC_MoveParent, ++/*396001*/ OPC_MoveChild, 12, ++/*396003*/ OPC_CheckInteger, 1, ++/*396005*/ OPC_CheckType, MVT::i32, ++/*396007*/ OPC_MoveParent, ++/*396008*/ OPC_MoveChild, 13, ++/*396010*/ OPC_CheckInteger, 1, ++/*396012*/ OPC_CheckType, MVT::i32, ++/*396014*/ OPC_MoveParent, ++/*396015*/ OPC_MoveChild, 14, ++/*396017*/ OPC_CheckInteger, 1, ++/*396019*/ OPC_CheckType, MVT::i32, ++/*396021*/ OPC_MoveParent, ++/*396022*/ OPC_MoveChild, 15, ++/*396024*/ OPC_CheckInteger, 1, ++/*396026*/ OPC_CheckType, MVT::i32, ++/*396028*/ OPC_MoveParent, ++/*396029*/ OPC_MoveParent, ++/*396030*/ OPC_CheckChild1Same, 1, ++/*396032*/ OPC_MoveParent, ++/*396033*/ OPC_CheckChild1Same, 0, ++/*396035*/ OPC_MoveParent, ++/*396036*/ OPC_MoveParent, ++/*396037*/ OPC_MoveChild1, ++/*396038*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*396041*/ OPC_CheckChild0Integer, 1, ++/*396043*/ OPC_CheckChild0Type, MVT::i32, ++/*396045*/ OPC_CheckChild1Integer, 1, ++/*396047*/ OPC_CheckChild1Type, MVT::i32, ++/*396049*/ OPC_CheckChild2Integer, 1, ++/*396051*/ OPC_CheckChild2Type, MVT::i32, ++/*396053*/ OPC_CheckChild3Integer, 1, ++/*396055*/ OPC_CheckChild3Type, MVT::i32, ++/*396057*/ OPC_CheckChild4Integer, 1, ++/*396059*/ OPC_CheckChild4Type, MVT::i32, ++/*396061*/ OPC_MoveChild5, ++/*396062*/ OPC_CheckInteger, 1, ++/*396064*/ OPC_CheckType, MVT::i32, ++/*396066*/ OPC_MoveParent, ++/*396067*/ OPC_MoveChild6, ++/*396068*/ OPC_CheckInteger, 1, ++/*396070*/ OPC_CheckType, MVT::i32, ++/*396072*/ OPC_MoveParent, ++/*396073*/ OPC_MoveChild7, ++/*396074*/ OPC_CheckInteger, 1, ++/*396076*/ OPC_CheckType, MVT::i32, ++/*396078*/ OPC_MoveParent, ++/*396079*/ OPC_MoveChild, 8, ++/*396081*/ OPC_CheckInteger, 1, ++/*396083*/ OPC_CheckType, MVT::i32, ++/*396085*/ OPC_MoveParent, ++/*396086*/ OPC_MoveChild, 9, ++/*396088*/ OPC_CheckInteger, 1, ++/*396090*/ OPC_CheckType, MVT::i32, ++/*396092*/ OPC_MoveParent, ++/*396093*/ OPC_MoveChild, 10, ++/*396095*/ OPC_CheckInteger, 1, ++/*396097*/ OPC_CheckType, MVT::i32, ++/*396099*/ OPC_MoveParent, ++/*396100*/ OPC_MoveChild, 11, ++/*396102*/ OPC_CheckInteger, 1, ++/*396104*/ OPC_CheckType, MVT::i32, ++/*396106*/ OPC_MoveParent, ++/*396107*/ OPC_MoveChild, 12, ++/*396109*/ OPC_CheckInteger, 1, ++/*396111*/ OPC_CheckType, MVT::i32, ++/*396113*/ OPC_MoveParent, ++/*396114*/ OPC_MoveChild, 13, ++/*396116*/ OPC_CheckInteger, 1, ++/*396118*/ OPC_CheckType, MVT::i32, ++/*396120*/ OPC_MoveParent, ++/*396121*/ OPC_MoveChild, 14, ++/*396123*/ OPC_CheckInteger, 1, ++/*396125*/ OPC_CheckType, MVT::i32, ++/*396127*/ OPC_MoveParent, ++/*396128*/ OPC_MoveChild, 15, ++/*396130*/ OPC_CheckInteger, 1, ++/*396132*/ OPC_CheckType, MVT::i32, ++/*396134*/ OPC_MoveParent, ++/*396135*/ OPC_CheckType, MVT::v16i16, ++/*396137*/ OPC_MoveParent, ++/*396138*/ OPC_CheckType, MVT::v16i16, ++/*396140*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*396142*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b), LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*396150*/ /*Scope*/ 91|128,1/*219*/, /*->396371*/ ++/*396152*/ OPC_CheckChild0Same, 1, ++/*396154*/ OPC_MoveChild1, ++/*396155*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*396158*/ OPC_CheckChild0Integer, 1, ++/*396160*/ OPC_CheckChild0Type, MVT::i32, ++/*396162*/ OPC_CheckChild1Integer, 1, ++/*396164*/ OPC_CheckChild1Type, MVT::i32, ++/*396166*/ OPC_CheckChild2Integer, 1, ++/*396168*/ OPC_CheckChild2Type, MVT::i32, ++/*396170*/ OPC_CheckChild3Integer, 1, ++/*396172*/ OPC_CheckChild3Type, MVT::i32, ++/*396174*/ OPC_CheckChild4Integer, 1, ++/*396176*/ OPC_CheckChild4Type, MVT::i32, ++/*396178*/ OPC_MoveChild5, ++/*396179*/ OPC_CheckInteger, 1, ++/*396181*/ OPC_CheckType, MVT::i32, ++/*396183*/ OPC_MoveParent, ++/*396184*/ OPC_MoveChild6, ++/*396185*/ OPC_CheckInteger, 1, ++/*396187*/ OPC_CheckType, MVT::i32, ++/*396189*/ OPC_MoveParent, ++/*396190*/ OPC_MoveChild7, ++/*396191*/ OPC_CheckInteger, 1, ++/*396193*/ OPC_CheckType, MVT::i32, ++/*396195*/ OPC_MoveParent, ++/*396196*/ OPC_MoveChild, 8, ++/*396198*/ OPC_CheckInteger, 1, ++/*396200*/ OPC_CheckType, MVT::i32, ++/*396202*/ OPC_MoveParent, ++/*396203*/ OPC_MoveChild, 9, ++/*396205*/ OPC_CheckInteger, 1, ++/*396207*/ OPC_CheckType, MVT::i32, ++/*396209*/ OPC_MoveParent, ++/*396210*/ OPC_MoveChild, 10, ++/*396212*/ OPC_CheckInteger, 1, ++/*396214*/ OPC_CheckType, MVT::i32, ++/*396216*/ OPC_MoveParent, ++/*396217*/ OPC_MoveChild, 11, ++/*396219*/ OPC_CheckInteger, 1, ++/*396221*/ OPC_CheckType, MVT::i32, ++/*396223*/ OPC_MoveParent, ++/*396224*/ OPC_MoveChild, 12, ++/*396226*/ OPC_CheckInteger, 1, ++/*396228*/ OPC_CheckType, MVT::i32, ++/*396230*/ OPC_MoveParent, ++/*396231*/ OPC_MoveChild, 13, ++/*396233*/ OPC_CheckInteger, 1, ++/*396235*/ OPC_CheckType, MVT::i32, ++/*396237*/ OPC_MoveParent, ++/*396238*/ OPC_MoveChild, 14, ++/*396240*/ OPC_CheckInteger, 1, ++/*396242*/ OPC_CheckType, MVT::i32, ++/*396244*/ OPC_MoveParent, ++/*396245*/ OPC_MoveChild, 15, ++/*396247*/ OPC_CheckInteger, 1, ++/*396249*/ OPC_CheckType, MVT::i32, ++/*396251*/ OPC_MoveParent, ++/*396252*/ OPC_MoveParent, ++/*396253*/ OPC_MoveParent, ++/*396254*/ OPC_CheckChild1Same, 0, ++/*396256*/ OPC_MoveParent, ++/*396257*/ OPC_MoveParent, ++/*396258*/ OPC_MoveChild1, ++/*396259*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*396262*/ OPC_CheckChild0Integer, 1, ++/*396264*/ OPC_CheckChild0Type, MVT::i32, ++/*396266*/ OPC_CheckChild1Integer, 1, ++/*396268*/ OPC_CheckChild1Type, MVT::i32, ++/*396270*/ OPC_CheckChild2Integer, 1, ++/*396272*/ OPC_CheckChild2Type, MVT::i32, ++/*396274*/ OPC_CheckChild3Integer, 1, ++/*396276*/ OPC_CheckChild3Type, MVT::i32, ++/*396278*/ OPC_CheckChild4Integer, 1, ++/*396280*/ OPC_CheckChild4Type, MVT::i32, ++/*396282*/ OPC_MoveChild5, ++/*396283*/ OPC_CheckInteger, 1, ++/*396285*/ OPC_CheckType, MVT::i32, ++/*396287*/ OPC_MoveParent, ++/*396288*/ OPC_MoveChild6, ++/*396289*/ OPC_CheckInteger, 1, ++/*396291*/ OPC_CheckType, MVT::i32, ++/*396293*/ OPC_MoveParent, ++/*396294*/ OPC_MoveChild7, ++/*396295*/ OPC_CheckInteger, 1, ++/*396297*/ OPC_CheckType, MVT::i32, ++/*396299*/ OPC_MoveParent, ++/*396300*/ OPC_MoveChild, 8, ++/*396302*/ OPC_CheckInteger, 1, ++/*396304*/ OPC_CheckType, MVT::i32, ++/*396306*/ OPC_MoveParent, ++/*396307*/ OPC_MoveChild, 9, ++/*396309*/ OPC_CheckInteger, 1, ++/*396311*/ OPC_CheckType, MVT::i32, ++/*396313*/ OPC_MoveParent, ++/*396314*/ OPC_MoveChild, 10, ++/*396316*/ OPC_CheckInteger, 1, ++/*396318*/ OPC_CheckType, MVT::i32, ++/*396320*/ OPC_MoveParent, ++/*396321*/ OPC_MoveChild, 11, ++/*396323*/ OPC_CheckInteger, 1, ++/*396325*/ OPC_CheckType, MVT::i32, ++/*396327*/ OPC_MoveParent, ++/*396328*/ OPC_MoveChild, 12, ++/*396330*/ OPC_CheckInteger, 1, ++/*396332*/ OPC_CheckType, MVT::i32, ++/*396334*/ OPC_MoveParent, ++/*396335*/ OPC_MoveChild, 13, ++/*396337*/ OPC_CheckInteger, 1, ++/*396339*/ OPC_CheckType, MVT::i32, ++/*396341*/ OPC_MoveParent, ++/*396342*/ OPC_MoveChild, 14, ++/*396344*/ OPC_CheckInteger, 1, ++/*396346*/ OPC_CheckType, MVT::i32, ++/*396348*/ OPC_MoveParent, ++/*396349*/ OPC_MoveChild, 15, ++/*396351*/ OPC_CheckInteger, 1, ++/*396353*/ OPC_CheckType, MVT::i32, ++/*396355*/ OPC_MoveParent, ++/*396356*/ OPC_CheckType, MVT::v16i16, ++/*396358*/ OPC_MoveParent, ++/*396359*/ OPC_CheckType, MVT::v16i16, ++/*396361*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*396363*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*396371*/ /*Scope*/ 91|128,1/*219*/, /*->396592*/ ++/*396373*/ OPC_CheckChild0Same, 0, ++/*396375*/ OPC_CheckChild1Same, 1, ++/*396377*/ OPC_MoveParent, ++/*396378*/ OPC_MoveChild1, ++/*396379*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*396382*/ OPC_CheckChild0Integer, 1, ++/*396384*/ OPC_CheckChild0Type, MVT::i32, ++/*396386*/ OPC_CheckChild1Integer, 1, ++/*396388*/ OPC_CheckChild1Type, MVT::i32, ++/*396390*/ OPC_CheckChild2Integer, 1, ++/*396392*/ OPC_CheckChild2Type, MVT::i32, ++/*396394*/ OPC_CheckChild3Integer, 1, ++/*396396*/ OPC_CheckChild3Type, MVT::i32, ++/*396398*/ OPC_CheckChild4Integer, 1, ++/*396400*/ OPC_CheckChild4Type, MVT::i32, ++/*396402*/ OPC_MoveChild5, ++/*396403*/ OPC_CheckInteger, 1, ++/*396405*/ OPC_CheckType, MVT::i32, ++/*396407*/ OPC_MoveParent, ++/*396408*/ OPC_MoveChild6, ++/*396409*/ OPC_CheckInteger, 1, ++/*396411*/ OPC_CheckType, MVT::i32, ++/*396413*/ OPC_MoveParent, ++/*396414*/ OPC_MoveChild7, ++/*396415*/ OPC_CheckInteger, 1, ++/*396417*/ OPC_CheckType, MVT::i32, ++/*396419*/ OPC_MoveParent, ++/*396420*/ OPC_MoveChild, 8, ++/*396422*/ OPC_CheckInteger, 1, ++/*396424*/ OPC_CheckType, MVT::i32, ++/*396426*/ OPC_MoveParent, ++/*396427*/ OPC_MoveChild, 9, ++/*396429*/ OPC_CheckInteger, 1, ++/*396431*/ OPC_CheckType, MVT::i32, ++/*396433*/ OPC_MoveParent, ++/*396434*/ OPC_MoveChild, 10, ++/*396436*/ OPC_CheckInteger, 1, ++/*396438*/ OPC_CheckType, MVT::i32, ++/*396440*/ OPC_MoveParent, ++/*396441*/ OPC_MoveChild, 11, ++/*396443*/ OPC_CheckInteger, 1, ++/*396445*/ OPC_CheckType, MVT::i32, ++/*396447*/ OPC_MoveParent, ++/*396448*/ OPC_MoveChild, 12, ++/*396450*/ OPC_CheckInteger, 1, ++/*396452*/ OPC_CheckType, MVT::i32, ++/*396454*/ OPC_MoveParent, ++/*396455*/ OPC_MoveChild, 13, ++/*396457*/ OPC_CheckInteger, 1, ++/*396459*/ OPC_CheckType, MVT::i32, ++/*396461*/ OPC_MoveParent, ++/*396462*/ OPC_MoveChild, 14, ++/*396464*/ OPC_CheckInteger, 1, ++/*396466*/ OPC_CheckType, MVT::i32, ++/*396468*/ OPC_MoveParent, ++/*396469*/ OPC_MoveChild, 15, ++/*396471*/ OPC_CheckInteger, 1, ++/*396473*/ OPC_CheckType, MVT::i32, ++/*396475*/ OPC_MoveParent, ++/*396476*/ OPC_MoveParent, ++/*396477*/ OPC_MoveParent, ++/*396478*/ OPC_MoveParent, ++/*396479*/ OPC_MoveChild1, ++/*396480*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*396483*/ OPC_CheckChild0Integer, 1, ++/*396485*/ OPC_CheckChild0Type, MVT::i32, ++/*396487*/ OPC_CheckChild1Integer, 1, ++/*396489*/ OPC_CheckChild1Type, MVT::i32, ++/*396491*/ OPC_CheckChild2Integer, 1, ++/*396493*/ OPC_CheckChild2Type, MVT::i32, ++/*396495*/ OPC_CheckChild3Integer, 1, ++/*396497*/ OPC_CheckChild3Type, MVT::i32, ++/*396499*/ OPC_CheckChild4Integer, 1, ++/*396501*/ OPC_CheckChild4Type, MVT::i32, ++/*396503*/ OPC_MoveChild5, ++/*396504*/ OPC_CheckInteger, 1, ++/*396506*/ OPC_CheckType, MVT::i32, ++/*396508*/ OPC_MoveParent, ++/*396509*/ OPC_MoveChild6, ++/*396510*/ OPC_CheckInteger, 1, ++/*396512*/ OPC_CheckType, MVT::i32, ++/*396514*/ OPC_MoveParent, ++/*396515*/ OPC_MoveChild7, ++/*396516*/ OPC_CheckInteger, 1, ++/*396518*/ OPC_CheckType, MVT::i32, ++/*396520*/ OPC_MoveParent, ++/*396521*/ OPC_MoveChild, 8, ++/*396523*/ OPC_CheckInteger, 1, ++/*396525*/ OPC_CheckType, MVT::i32, ++/*396527*/ OPC_MoveParent, ++/*396528*/ OPC_MoveChild, 9, ++/*396530*/ OPC_CheckInteger, 1, ++/*396532*/ OPC_CheckType, MVT::i32, ++/*396534*/ OPC_MoveParent, ++/*396535*/ OPC_MoveChild, 10, ++/*396537*/ OPC_CheckInteger, 1, ++/*396539*/ OPC_CheckType, MVT::i32, ++/*396541*/ OPC_MoveParent, ++/*396542*/ OPC_MoveChild, 11, ++/*396544*/ OPC_CheckInteger, 1, ++/*396546*/ OPC_CheckType, MVT::i32, ++/*396548*/ OPC_MoveParent, ++/*396549*/ OPC_MoveChild, 12, ++/*396551*/ OPC_CheckInteger, 1, ++/*396553*/ OPC_CheckType, MVT::i32, ++/*396555*/ OPC_MoveParent, ++/*396556*/ OPC_MoveChild, 13, ++/*396558*/ OPC_CheckInteger, 1, ++/*396560*/ OPC_CheckType, MVT::i32, ++/*396562*/ OPC_MoveParent, ++/*396563*/ OPC_MoveChild, 14, ++/*396565*/ OPC_CheckInteger, 1, ++/*396567*/ OPC_CheckType, MVT::i32, ++/*396569*/ OPC_MoveParent, ++/*396570*/ OPC_MoveChild, 15, ++/*396572*/ OPC_CheckInteger, 1, ++/*396574*/ OPC_CheckType, MVT::i32, ++/*396576*/ OPC_MoveParent, ++/*396577*/ OPC_CheckType, MVT::v16i16, ++/*396579*/ OPC_MoveParent, ++/*396580*/ OPC_CheckType, MVT::v16i16, ++/*396582*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*396584*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*396592*/ /*Scope*/ 91|128,1/*219*/, /*->396813*/ ++/*396594*/ OPC_CheckChild0Same, 1, ++/*396596*/ OPC_CheckChild1Same, 0, ++/*396598*/ OPC_MoveParent, ++/*396599*/ OPC_MoveChild1, ++/*396600*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*396603*/ OPC_CheckChild0Integer, 1, ++/*396605*/ OPC_CheckChild0Type, MVT::i32, ++/*396607*/ OPC_CheckChild1Integer, 1, ++/*396609*/ OPC_CheckChild1Type, MVT::i32, ++/*396611*/ OPC_CheckChild2Integer, 1, ++/*396613*/ OPC_CheckChild2Type, MVT::i32, ++/*396615*/ OPC_CheckChild3Integer, 1, ++/*396617*/ OPC_CheckChild3Type, MVT::i32, ++/*396619*/ OPC_CheckChild4Integer, 1, ++/*396621*/ OPC_CheckChild4Type, MVT::i32, ++/*396623*/ OPC_MoveChild5, ++/*396624*/ OPC_CheckInteger, 1, ++/*396626*/ OPC_CheckType, MVT::i32, ++/*396628*/ OPC_MoveParent, ++/*396629*/ OPC_MoveChild6, ++/*396630*/ OPC_CheckInteger, 1, ++/*396632*/ OPC_CheckType, MVT::i32, ++/*396634*/ OPC_MoveParent, ++/*396635*/ OPC_MoveChild7, ++/*396636*/ OPC_CheckInteger, 1, ++/*396638*/ OPC_CheckType, MVT::i32, ++/*396640*/ OPC_MoveParent, ++/*396641*/ OPC_MoveChild, 8, ++/*396643*/ OPC_CheckInteger, 1, ++/*396645*/ OPC_CheckType, MVT::i32, ++/*396647*/ OPC_MoveParent, ++/*396648*/ OPC_MoveChild, 9, ++/*396650*/ OPC_CheckInteger, 1, ++/*396652*/ OPC_CheckType, MVT::i32, ++/*396654*/ OPC_MoveParent, ++/*396655*/ OPC_MoveChild, 10, ++/*396657*/ OPC_CheckInteger, 1, ++/*396659*/ OPC_CheckType, MVT::i32, ++/*396661*/ OPC_MoveParent, ++/*396662*/ OPC_MoveChild, 11, ++/*396664*/ OPC_CheckInteger, 1, ++/*396666*/ OPC_CheckType, MVT::i32, ++/*396668*/ OPC_MoveParent, ++/*396669*/ OPC_MoveChild, 12, ++/*396671*/ OPC_CheckInteger, 1, ++/*396673*/ OPC_CheckType, MVT::i32, ++/*396675*/ OPC_MoveParent, ++/*396676*/ OPC_MoveChild, 13, ++/*396678*/ OPC_CheckInteger, 1, ++/*396680*/ OPC_CheckType, MVT::i32, ++/*396682*/ OPC_MoveParent, ++/*396683*/ OPC_MoveChild, 14, ++/*396685*/ OPC_CheckInteger, 1, ++/*396687*/ OPC_CheckType, MVT::i32, ++/*396689*/ OPC_MoveParent, ++/*396690*/ OPC_MoveChild, 15, ++/*396692*/ OPC_CheckInteger, 1, ++/*396694*/ OPC_CheckType, MVT::i32, ++/*396696*/ OPC_MoveParent, ++/*396697*/ OPC_MoveParent, ++/*396698*/ OPC_MoveParent, ++/*396699*/ OPC_MoveParent, ++/*396700*/ OPC_MoveChild1, ++/*396701*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*396704*/ OPC_CheckChild0Integer, 1, ++/*396706*/ OPC_CheckChild0Type, MVT::i32, ++/*396708*/ OPC_CheckChild1Integer, 1, ++/*396710*/ OPC_CheckChild1Type, MVT::i32, ++/*396712*/ OPC_CheckChild2Integer, 1, ++/*396714*/ OPC_CheckChild2Type, MVT::i32, ++/*396716*/ OPC_CheckChild3Integer, 1, ++/*396718*/ OPC_CheckChild3Type, MVT::i32, ++/*396720*/ OPC_CheckChild4Integer, 1, ++/*396722*/ OPC_CheckChild4Type, MVT::i32, ++/*396724*/ OPC_MoveChild5, ++/*396725*/ OPC_CheckInteger, 1, ++/*396727*/ OPC_CheckType, MVT::i32, ++/*396729*/ OPC_MoveParent, ++/*396730*/ OPC_MoveChild6, ++/*396731*/ OPC_CheckInteger, 1, ++/*396733*/ OPC_CheckType, MVT::i32, ++/*396735*/ OPC_MoveParent, ++/*396736*/ OPC_MoveChild7, ++/*396737*/ OPC_CheckInteger, 1, ++/*396739*/ OPC_CheckType, MVT::i32, ++/*396741*/ OPC_MoveParent, ++/*396742*/ OPC_MoveChild, 8, ++/*396744*/ OPC_CheckInteger, 1, ++/*396746*/ OPC_CheckType, MVT::i32, ++/*396748*/ OPC_MoveParent, ++/*396749*/ OPC_MoveChild, 9, ++/*396751*/ OPC_CheckInteger, 1, ++/*396753*/ OPC_CheckType, MVT::i32, ++/*396755*/ OPC_MoveParent, ++/*396756*/ OPC_MoveChild, 10, ++/*396758*/ OPC_CheckInteger, 1, ++/*396760*/ OPC_CheckType, MVT::i32, ++/*396762*/ OPC_MoveParent, ++/*396763*/ OPC_MoveChild, 11, ++/*396765*/ OPC_CheckInteger, 1, ++/*396767*/ OPC_CheckType, MVT::i32, ++/*396769*/ OPC_MoveParent, ++/*396770*/ OPC_MoveChild, 12, ++/*396772*/ OPC_CheckInteger, 1, ++/*396774*/ OPC_CheckType, MVT::i32, ++/*396776*/ OPC_MoveParent, ++/*396777*/ OPC_MoveChild, 13, ++/*396779*/ OPC_CheckInteger, 1, ++/*396781*/ OPC_CheckType, MVT::i32, ++/*396783*/ OPC_MoveParent, ++/*396784*/ OPC_MoveChild, 14, ++/*396786*/ OPC_CheckInteger, 1, ++/*396788*/ OPC_CheckType, MVT::i32, ++/*396790*/ OPC_MoveParent, ++/*396791*/ OPC_MoveChild, 15, ++/*396793*/ OPC_CheckInteger, 1, ++/*396795*/ OPC_CheckType, MVT::i32, ++/*396797*/ OPC_MoveParent, ++/*396798*/ OPC_CheckType, MVT::v16i16, ++/*396800*/ OPC_MoveParent, ++/*396801*/ OPC_CheckType, MVT::v16i16, ++/*396803*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*396805*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*396813*/ 0, /*End of Scope*/ ++/*396814*/ /*Scope*/ 62|128,3/*446*/, /*->397262*/ ++/*396816*/ OPC_CheckChild0Same, 1, ++/*396818*/ OPC_MoveChild1, ++/*396819*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*396822*/ OPC_Scope, 89|128,1/*217*/, /*->397042*/ // 2 children in Scope ++/*396825*/ OPC_MoveChild0, ++/*396826*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*396829*/ OPC_CheckChild0Integer, 1, ++/*396831*/ OPC_CheckChild0Type, MVT::i32, ++/*396833*/ OPC_CheckChild1Integer, 1, ++/*396835*/ OPC_CheckChild1Type, MVT::i32, ++/*396837*/ OPC_CheckChild2Integer, 1, ++/*396839*/ OPC_CheckChild2Type, MVT::i32, ++/*396841*/ OPC_CheckChild3Integer, 1, ++/*396843*/ OPC_CheckChild3Type, MVT::i32, ++/*396845*/ OPC_CheckChild4Integer, 1, ++/*396847*/ OPC_CheckChild4Type, MVT::i32, ++/*396849*/ OPC_MoveChild5, ++/*396850*/ OPC_CheckInteger, 1, ++/*396852*/ OPC_CheckType, MVT::i32, ++/*396854*/ OPC_MoveParent, ++/*396855*/ OPC_MoveChild6, ++/*396856*/ OPC_CheckInteger, 1, ++/*396858*/ OPC_CheckType, MVT::i32, ++/*396860*/ OPC_MoveParent, ++/*396861*/ OPC_MoveChild7, ++/*396862*/ OPC_CheckInteger, 1, ++/*396864*/ OPC_CheckType, MVT::i32, ++/*396866*/ OPC_MoveParent, ++/*396867*/ OPC_MoveChild, 8, ++/*396869*/ OPC_CheckInteger, 1, ++/*396871*/ OPC_CheckType, MVT::i32, ++/*396873*/ OPC_MoveParent, ++/*396874*/ OPC_MoveChild, 9, ++/*396876*/ OPC_CheckInteger, 1, ++/*396878*/ OPC_CheckType, MVT::i32, ++/*396880*/ OPC_MoveParent, ++/*396881*/ OPC_MoveChild, 10, ++/*396883*/ OPC_CheckInteger, 1, ++/*396885*/ OPC_CheckType, MVT::i32, ++/*396887*/ OPC_MoveParent, ++/*396888*/ OPC_MoveChild, 11, ++/*396890*/ OPC_CheckInteger, 1, ++/*396892*/ OPC_CheckType, MVT::i32, ++/*396894*/ OPC_MoveParent, ++/*396895*/ OPC_MoveChild, 12, ++/*396897*/ OPC_CheckInteger, 1, ++/*396899*/ OPC_CheckType, MVT::i32, ++/*396901*/ OPC_MoveParent, ++/*396902*/ OPC_MoveChild, 13, ++/*396904*/ OPC_CheckInteger, 1, ++/*396906*/ OPC_CheckType, MVT::i32, ++/*396908*/ OPC_MoveParent, ++/*396909*/ OPC_MoveChild, 14, ++/*396911*/ OPC_CheckInteger, 1, ++/*396913*/ OPC_CheckType, MVT::i32, ++/*396915*/ OPC_MoveParent, ++/*396916*/ OPC_MoveChild, 15, ++/*396918*/ OPC_CheckInteger, 1, ++/*396920*/ OPC_CheckType, MVT::i32, ++/*396922*/ OPC_MoveParent, ++/*396923*/ OPC_MoveParent, ++/*396924*/ OPC_CheckChild1Same, 0, ++/*396926*/ OPC_MoveParent, ++/*396927*/ OPC_MoveParent, ++/*396928*/ OPC_MoveParent, ++/*396929*/ OPC_MoveChild1, ++/*396930*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*396933*/ OPC_CheckChild0Integer, 1, ++/*396935*/ OPC_CheckChild0Type, MVT::i32, ++/*396937*/ OPC_CheckChild1Integer, 1, ++/*396939*/ OPC_CheckChild1Type, MVT::i32, ++/*396941*/ OPC_CheckChild2Integer, 1, ++/*396943*/ OPC_CheckChild2Type, MVT::i32, ++/*396945*/ OPC_CheckChild3Integer, 1, ++/*396947*/ OPC_CheckChild3Type, MVT::i32, ++/*396949*/ OPC_CheckChild4Integer, 1, ++/*396951*/ OPC_CheckChild4Type, MVT::i32, ++/*396953*/ OPC_MoveChild5, ++/*396954*/ OPC_CheckInteger, 1, ++/*396956*/ OPC_CheckType, MVT::i32, ++/*396958*/ OPC_MoveParent, ++/*396959*/ OPC_MoveChild6, ++/*396960*/ OPC_CheckInteger, 1, ++/*396962*/ OPC_CheckType, MVT::i32, ++/*396964*/ OPC_MoveParent, ++/*396965*/ OPC_MoveChild7, ++/*396966*/ OPC_CheckInteger, 1, ++/*396968*/ OPC_CheckType, MVT::i32, ++/*396970*/ OPC_MoveParent, ++/*396971*/ OPC_MoveChild, 8, ++/*396973*/ OPC_CheckInteger, 1, ++/*396975*/ OPC_CheckType, MVT::i32, ++/*396977*/ OPC_MoveParent, ++/*396978*/ OPC_MoveChild, 9, ++/*396980*/ OPC_CheckInteger, 1, ++/*396982*/ OPC_CheckType, MVT::i32, ++/*396984*/ OPC_MoveParent, ++/*396985*/ OPC_MoveChild, 10, ++/*396987*/ OPC_CheckInteger, 1, ++/*396989*/ OPC_CheckType, MVT::i32, ++/*396991*/ OPC_MoveParent, ++/*396992*/ OPC_MoveChild, 11, ++/*396994*/ OPC_CheckInteger, 1, ++/*396996*/ OPC_CheckType, MVT::i32, ++/*396998*/ OPC_MoveParent, ++/*396999*/ OPC_MoveChild, 12, ++/*397001*/ OPC_CheckInteger, 1, ++/*397003*/ OPC_CheckType, MVT::i32, ++/*397005*/ OPC_MoveParent, ++/*397006*/ OPC_MoveChild, 13, ++/*397008*/ OPC_CheckInteger, 1, ++/*397010*/ OPC_CheckType, MVT::i32, ++/*397012*/ OPC_MoveParent, ++/*397013*/ OPC_MoveChild, 14, ++/*397015*/ OPC_CheckInteger, 1, ++/*397017*/ OPC_CheckType, MVT::i32, ++/*397019*/ OPC_MoveParent, ++/*397020*/ OPC_MoveChild, 15, ++/*397022*/ OPC_CheckInteger, 1, ++/*397024*/ OPC_CheckType, MVT::i32, ++/*397026*/ OPC_MoveParent, ++/*397027*/ OPC_CheckType, MVT::v16i16, ++/*397029*/ OPC_MoveParent, ++/*397030*/ OPC_CheckType, MVT::v16i16, ++/*397032*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*397034*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*397042*/ /*Scope*/ 89|128,1/*217*/, /*->397261*/ ++/*397044*/ OPC_CheckChild0Same, 0, ++/*397046*/ OPC_MoveChild1, ++/*397047*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*397050*/ OPC_CheckChild0Integer, 1, ++/*397052*/ OPC_CheckChild0Type, MVT::i32, ++/*397054*/ OPC_CheckChild1Integer, 1, ++/*397056*/ OPC_CheckChild1Type, MVT::i32, ++/*397058*/ OPC_CheckChild2Integer, 1, ++/*397060*/ OPC_CheckChild2Type, MVT::i32, ++/*397062*/ OPC_CheckChild3Integer, 1, ++/*397064*/ OPC_CheckChild3Type, MVT::i32, ++/*397066*/ OPC_CheckChild4Integer, 1, ++/*397068*/ OPC_CheckChild4Type, MVT::i32, ++/*397070*/ OPC_MoveChild5, ++/*397071*/ OPC_CheckInteger, 1, ++/*397073*/ OPC_CheckType, MVT::i32, ++/*397075*/ OPC_MoveParent, ++/*397076*/ OPC_MoveChild6, ++/*397077*/ OPC_CheckInteger, 1, ++/*397079*/ OPC_CheckType, MVT::i32, ++/*397081*/ OPC_MoveParent, ++/*397082*/ OPC_MoveChild7, ++/*397083*/ OPC_CheckInteger, 1, ++/*397085*/ OPC_CheckType, MVT::i32, ++/*397087*/ OPC_MoveParent, ++/*397088*/ OPC_MoveChild, 8, ++/*397090*/ OPC_CheckInteger, 1, ++/*397092*/ OPC_CheckType, MVT::i32, ++/*397094*/ OPC_MoveParent, ++/*397095*/ OPC_MoveChild, 9, ++/*397097*/ OPC_CheckInteger, 1, ++/*397099*/ OPC_CheckType, MVT::i32, ++/*397101*/ OPC_MoveParent, ++/*397102*/ OPC_MoveChild, 10, ++/*397104*/ OPC_CheckInteger, 1, ++/*397106*/ OPC_CheckType, MVT::i32, ++/*397108*/ OPC_MoveParent, ++/*397109*/ OPC_MoveChild, 11, ++/*397111*/ OPC_CheckInteger, 1, ++/*397113*/ OPC_CheckType, MVT::i32, ++/*397115*/ OPC_MoveParent, ++/*397116*/ OPC_MoveChild, 12, ++/*397118*/ OPC_CheckInteger, 1, ++/*397120*/ OPC_CheckType, MVT::i32, ++/*397122*/ OPC_MoveParent, ++/*397123*/ OPC_MoveChild, 13, ++/*397125*/ OPC_CheckInteger, 1, ++/*397127*/ OPC_CheckType, MVT::i32, ++/*397129*/ OPC_MoveParent, ++/*397130*/ OPC_MoveChild, 14, ++/*397132*/ OPC_CheckInteger, 1, ++/*397134*/ OPC_CheckType, MVT::i32, ++/*397136*/ OPC_MoveParent, ++/*397137*/ OPC_MoveChild, 15, ++/*397139*/ OPC_CheckInteger, 1, ++/*397141*/ OPC_CheckType, MVT::i32, ++/*397143*/ OPC_MoveParent, ++/*397144*/ OPC_MoveParent, ++/*397145*/ OPC_MoveParent, ++/*397146*/ OPC_MoveParent, ++/*397147*/ OPC_MoveParent, ++/*397148*/ OPC_MoveChild1, ++/*397149*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*397152*/ OPC_CheckChild0Integer, 1, ++/*397154*/ OPC_CheckChild0Type, MVT::i32, ++/*397156*/ OPC_CheckChild1Integer, 1, ++/*397158*/ OPC_CheckChild1Type, MVT::i32, ++/*397160*/ OPC_CheckChild2Integer, 1, ++/*397162*/ OPC_CheckChild2Type, MVT::i32, ++/*397164*/ OPC_CheckChild3Integer, 1, ++/*397166*/ OPC_CheckChild3Type, MVT::i32, ++/*397168*/ OPC_CheckChild4Integer, 1, ++/*397170*/ OPC_CheckChild4Type, MVT::i32, ++/*397172*/ OPC_MoveChild5, ++/*397173*/ OPC_CheckInteger, 1, ++/*397175*/ OPC_CheckType, MVT::i32, ++/*397177*/ OPC_MoveParent, ++/*397178*/ OPC_MoveChild6, ++/*397179*/ OPC_CheckInteger, 1, ++/*397181*/ OPC_CheckType, MVT::i32, ++/*397183*/ OPC_MoveParent, ++/*397184*/ OPC_MoveChild7, ++/*397185*/ OPC_CheckInteger, 1, ++/*397187*/ OPC_CheckType, MVT::i32, ++/*397189*/ OPC_MoveParent, ++/*397190*/ OPC_MoveChild, 8, ++/*397192*/ OPC_CheckInteger, 1, ++/*397194*/ OPC_CheckType, MVT::i32, ++/*397196*/ OPC_MoveParent, ++/*397197*/ OPC_MoveChild, 9, ++/*397199*/ OPC_CheckInteger, 1, ++/*397201*/ OPC_CheckType, MVT::i32, ++/*397203*/ OPC_MoveParent, ++/*397204*/ OPC_MoveChild, 10, ++/*397206*/ OPC_CheckInteger, 1, ++/*397208*/ OPC_CheckType, MVT::i32, ++/*397210*/ OPC_MoveParent, ++/*397211*/ OPC_MoveChild, 11, ++/*397213*/ OPC_CheckInteger, 1, ++/*397215*/ OPC_CheckType, MVT::i32, ++/*397217*/ OPC_MoveParent, ++/*397218*/ OPC_MoveChild, 12, ++/*397220*/ OPC_CheckInteger, 1, ++/*397222*/ OPC_CheckType, MVT::i32, ++/*397224*/ OPC_MoveParent, ++/*397225*/ OPC_MoveChild, 13, ++/*397227*/ OPC_CheckInteger, 1, ++/*397229*/ OPC_CheckType, MVT::i32, ++/*397231*/ OPC_MoveParent, ++/*397232*/ OPC_MoveChild, 14, ++/*397234*/ OPC_CheckInteger, 1, ++/*397236*/ OPC_CheckType, MVT::i32, ++/*397238*/ OPC_MoveParent, ++/*397239*/ OPC_MoveChild, 15, ++/*397241*/ OPC_CheckInteger, 1, ++/*397243*/ OPC_CheckType, MVT::i32, ++/*397245*/ OPC_MoveParent, ++/*397246*/ OPC_CheckType, MVT::v16i16, ++/*397248*/ OPC_MoveParent, ++/*397249*/ OPC_CheckType, MVT::v16i16, ++/*397251*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*397253*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*397261*/ 0, /*End of Scope*/ ++/*397262*/ /*Scope*/ 62|128,3/*446*/, /*->397710*/ ++/*397264*/ OPC_CheckChild0Same, 0, ++/*397266*/ OPC_MoveChild1, ++/*397267*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*397270*/ OPC_Scope, 89|128,1/*217*/, /*->397490*/ // 2 children in Scope ++/*397273*/ OPC_MoveChild0, ++/*397274*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*397277*/ OPC_CheckChild0Integer, 1, ++/*397279*/ OPC_CheckChild0Type, MVT::i32, ++/*397281*/ OPC_CheckChild1Integer, 1, ++/*397283*/ OPC_CheckChild1Type, MVT::i32, ++/*397285*/ OPC_CheckChild2Integer, 1, ++/*397287*/ OPC_CheckChild2Type, MVT::i32, ++/*397289*/ OPC_CheckChild3Integer, 1, ++/*397291*/ OPC_CheckChild3Type, MVT::i32, ++/*397293*/ OPC_CheckChild4Integer, 1, ++/*397295*/ OPC_CheckChild4Type, MVT::i32, ++/*397297*/ OPC_MoveChild5, ++/*397298*/ OPC_CheckInteger, 1, ++/*397300*/ OPC_CheckType, MVT::i32, ++/*397302*/ OPC_MoveParent, ++/*397303*/ OPC_MoveChild6, ++/*397304*/ OPC_CheckInteger, 1, ++/*397306*/ OPC_CheckType, MVT::i32, ++/*397308*/ OPC_MoveParent, ++/*397309*/ OPC_MoveChild7, ++/*397310*/ OPC_CheckInteger, 1, ++/*397312*/ OPC_CheckType, MVT::i32, ++/*397314*/ OPC_MoveParent, ++/*397315*/ OPC_MoveChild, 8, ++/*397317*/ OPC_CheckInteger, 1, ++/*397319*/ OPC_CheckType, MVT::i32, ++/*397321*/ OPC_MoveParent, ++/*397322*/ OPC_MoveChild, 9, ++/*397324*/ OPC_CheckInteger, 1, ++/*397326*/ OPC_CheckType, MVT::i32, ++/*397328*/ OPC_MoveParent, ++/*397329*/ OPC_MoveChild, 10, ++/*397331*/ OPC_CheckInteger, 1, ++/*397333*/ OPC_CheckType, MVT::i32, ++/*397335*/ OPC_MoveParent, ++/*397336*/ OPC_MoveChild, 11, ++/*397338*/ OPC_CheckInteger, 1, ++/*397340*/ OPC_CheckType, MVT::i32, ++/*397342*/ OPC_MoveParent, ++/*397343*/ OPC_MoveChild, 12, ++/*397345*/ OPC_CheckInteger, 1, ++/*397347*/ OPC_CheckType, MVT::i32, ++/*397349*/ OPC_MoveParent, ++/*397350*/ OPC_MoveChild, 13, ++/*397352*/ OPC_CheckInteger, 1, ++/*397354*/ OPC_CheckType, MVT::i32, ++/*397356*/ OPC_MoveParent, ++/*397357*/ OPC_MoveChild, 14, ++/*397359*/ OPC_CheckInteger, 1, ++/*397361*/ OPC_CheckType, MVT::i32, ++/*397363*/ OPC_MoveParent, ++/*397364*/ OPC_MoveChild, 15, ++/*397366*/ OPC_CheckInteger, 1, ++/*397368*/ OPC_CheckType, MVT::i32, ++/*397370*/ OPC_MoveParent, ++/*397371*/ OPC_MoveParent, ++/*397372*/ OPC_CheckChild1Same, 1, ++/*397374*/ OPC_MoveParent, ++/*397375*/ OPC_MoveParent, ++/*397376*/ OPC_MoveParent, ++/*397377*/ OPC_MoveChild1, ++/*397378*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*397381*/ OPC_CheckChild0Integer, 1, ++/*397383*/ OPC_CheckChild0Type, MVT::i32, ++/*397385*/ OPC_CheckChild1Integer, 1, ++/*397387*/ OPC_CheckChild1Type, MVT::i32, ++/*397389*/ OPC_CheckChild2Integer, 1, ++/*397391*/ OPC_CheckChild2Type, MVT::i32, ++/*397393*/ OPC_CheckChild3Integer, 1, ++/*397395*/ OPC_CheckChild3Type, MVT::i32, ++/*397397*/ OPC_CheckChild4Integer, 1, ++/*397399*/ OPC_CheckChild4Type, MVT::i32, ++/*397401*/ OPC_MoveChild5, ++/*397402*/ OPC_CheckInteger, 1, ++/*397404*/ OPC_CheckType, MVT::i32, ++/*397406*/ OPC_MoveParent, ++/*397407*/ OPC_MoveChild6, ++/*397408*/ OPC_CheckInteger, 1, ++/*397410*/ OPC_CheckType, MVT::i32, ++/*397412*/ OPC_MoveParent, ++/*397413*/ OPC_MoveChild7, ++/*397414*/ OPC_CheckInteger, 1, ++/*397416*/ OPC_CheckType, MVT::i32, ++/*397418*/ OPC_MoveParent, ++/*397419*/ OPC_MoveChild, 8, ++/*397421*/ OPC_CheckInteger, 1, ++/*397423*/ OPC_CheckType, MVT::i32, ++/*397425*/ OPC_MoveParent, ++/*397426*/ OPC_MoveChild, 9, ++/*397428*/ OPC_CheckInteger, 1, ++/*397430*/ OPC_CheckType, MVT::i32, ++/*397432*/ OPC_MoveParent, ++/*397433*/ OPC_MoveChild, 10, ++/*397435*/ OPC_CheckInteger, 1, ++/*397437*/ OPC_CheckType, MVT::i32, ++/*397439*/ OPC_MoveParent, ++/*397440*/ OPC_MoveChild, 11, ++/*397442*/ OPC_CheckInteger, 1, ++/*397444*/ OPC_CheckType, MVT::i32, ++/*397446*/ OPC_MoveParent, ++/*397447*/ OPC_MoveChild, 12, ++/*397449*/ OPC_CheckInteger, 1, ++/*397451*/ OPC_CheckType, MVT::i32, ++/*397453*/ OPC_MoveParent, ++/*397454*/ OPC_MoveChild, 13, ++/*397456*/ OPC_CheckInteger, 1, ++/*397458*/ OPC_CheckType, MVT::i32, ++/*397460*/ OPC_MoveParent, ++/*397461*/ OPC_MoveChild, 14, ++/*397463*/ OPC_CheckInteger, 1, ++/*397465*/ OPC_CheckType, MVT::i32, ++/*397467*/ OPC_MoveParent, ++/*397468*/ OPC_MoveChild, 15, ++/*397470*/ OPC_CheckInteger, 1, ++/*397472*/ OPC_CheckType, MVT::i32, ++/*397474*/ OPC_MoveParent, ++/*397475*/ OPC_CheckType, MVT::v16i16, ++/*397477*/ OPC_MoveParent, ++/*397478*/ OPC_CheckType, MVT::v16i16, ++/*397480*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*397482*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*397490*/ /*Scope*/ 89|128,1/*217*/, /*->397709*/ ++/*397492*/ OPC_CheckChild0Same, 1, ++/*397494*/ OPC_MoveChild1, ++/*397495*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*397498*/ OPC_CheckChild0Integer, 1, ++/*397500*/ OPC_CheckChild0Type, MVT::i32, ++/*397502*/ OPC_CheckChild1Integer, 1, ++/*397504*/ OPC_CheckChild1Type, MVT::i32, ++/*397506*/ OPC_CheckChild2Integer, 1, ++/*397508*/ OPC_CheckChild2Type, MVT::i32, ++/*397510*/ OPC_CheckChild3Integer, 1, ++/*397512*/ OPC_CheckChild3Type, MVT::i32, ++/*397514*/ OPC_CheckChild4Integer, 1, ++/*397516*/ OPC_CheckChild4Type, MVT::i32, ++/*397518*/ OPC_MoveChild5, ++/*397519*/ OPC_CheckInteger, 1, ++/*397521*/ OPC_CheckType, MVT::i32, ++/*397523*/ OPC_MoveParent, ++/*397524*/ OPC_MoveChild6, ++/*397525*/ OPC_CheckInteger, 1, ++/*397527*/ OPC_CheckType, MVT::i32, ++/*397529*/ OPC_MoveParent, ++/*397530*/ OPC_MoveChild7, ++/*397531*/ OPC_CheckInteger, 1, ++/*397533*/ OPC_CheckType, MVT::i32, ++/*397535*/ OPC_MoveParent, ++/*397536*/ OPC_MoveChild, 8, ++/*397538*/ OPC_CheckInteger, 1, ++/*397540*/ OPC_CheckType, MVT::i32, ++/*397542*/ OPC_MoveParent, ++/*397543*/ OPC_MoveChild, 9, ++/*397545*/ OPC_CheckInteger, 1, ++/*397547*/ OPC_CheckType, MVT::i32, ++/*397549*/ OPC_MoveParent, ++/*397550*/ OPC_MoveChild, 10, ++/*397552*/ OPC_CheckInteger, 1, ++/*397554*/ OPC_CheckType, MVT::i32, ++/*397556*/ OPC_MoveParent, ++/*397557*/ OPC_MoveChild, 11, ++/*397559*/ OPC_CheckInteger, 1, ++/*397561*/ OPC_CheckType, MVT::i32, ++/*397563*/ OPC_MoveParent, ++/*397564*/ OPC_MoveChild, 12, ++/*397566*/ OPC_CheckInteger, 1, ++/*397568*/ OPC_CheckType, MVT::i32, ++/*397570*/ OPC_MoveParent, ++/*397571*/ OPC_MoveChild, 13, ++/*397573*/ OPC_CheckInteger, 1, ++/*397575*/ OPC_CheckType, MVT::i32, ++/*397577*/ OPC_MoveParent, ++/*397578*/ OPC_MoveChild, 14, ++/*397580*/ OPC_CheckInteger, 1, ++/*397582*/ OPC_CheckType, MVT::i32, ++/*397584*/ OPC_MoveParent, ++/*397585*/ OPC_MoveChild, 15, ++/*397587*/ OPC_CheckInteger, 1, ++/*397589*/ OPC_CheckType, MVT::i32, ++/*397591*/ OPC_MoveParent, ++/*397592*/ OPC_MoveParent, ++/*397593*/ OPC_MoveParent, ++/*397594*/ OPC_MoveParent, ++/*397595*/ OPC_MoveParent, ++/*397596*/ OPC_MoveChild1, ++/*397597*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*397600*/ OPC_CheckChild0Integer, 1, ++/*397602*/ OPC_CheckChild0Type, MVT::i32, ++/*397604*/ OPC_CheckChild1Integer, 1, ++/*397606*/ OPC_CheckChild1Type, MVT::i32, ++/*397608*/ OPC_CheckChild2Integer, 1, ++/*397610*/ OPC_CheckChild2Type, MVT::i32, ++/*397612*/ OPC_CheckChild3Integer, 1, ++/*397614*/ OPC_CheckChild3Type, MVT::i32, ++/*397616*/ OPC_CheckChild4Integer, 1, ++/*397618*/ OPC_CheckChild4Type, MVT::i32, ++/*397620*/ OPC_MoveChild5, ++/*397621*/ OPC_CheckInteger, 1, ++/*397623*/ OPC_CheckType, MVT::i32, ++/*397625*/ OPC_MoveParent, ++/*397626*/ OPC_MoveChild6, ++/*397627*/ OPC_CheckInteger, 1, ++/*397629*/ OPC_CheckType, MVT::i32, ++/*397631*/ OPC_MoveParent, ++/*397632*/ OPC_MoveChild7, ++/*397633*/ OPC_CheckInteger, 1, ++/*397635*/ OPC_CheckType, MVT::i32, ++/*397637*/ OPC_MoveParent, ++/*397638*/ OPC_MoveChild, 8, ++/*397640*/ OPC_CheckInteger, 1, ++/*397642*/ OPC_CheckType, MVT::i32, ++/*397644*/ OPC_MoveParent, ++/*397645*/ OPC_MoveChild, 9, ++/*397647*/ OPC_CheckInteger, 1, ++/*397649*/ OPC_CheckType, MVT::i32, ++/*397651*/ OPC_MoveParent, ++/*397652*/ OPC_MoveChild, 10, ++/*397654*/ OPC_CheckInteger, 1, ++/*397656*/ OPC_CheckType, MVT::i32, ++/*397658*/ OPC_MoveParent, ++/*397659*/ OPC_MoveChild, 11, ++/*397661*/ OPC_CheckInteger, 1, ++/*397663*/ OPC_CheckType, MVT::i32, ++/*397665*/ OPC_MoveParent, ++/*397666*/ OPC_MoveChild, 12, ++/*397668*/ OPC_CheckInteger, 1, ++/*397670*/ OPC_CheckType, MVT::i32, ++/*397672*/ OPC_MoveParent, ++/*397673*/ OPC_MoveChild, 13, ++/*397675*/ OPC_CheckInteger, 1, ++/*397677*/ OPC_CheckType, MVT::i32, ++/*397679*/ OPC_MoveParent, ++/*397680*/ OPC_MoveChild, 14, ++/*397682*/ OPC_CheckInteger, 1, ++/*397684*/ OPC_CheckType, MVT::i32, ++/*397686*/ OPC_MoveParent, ++/*397687*/ OPC_MoveChild, 15, ++/*397689*/ OPC_CheckInteger, 1, ++/*397691*/ OPC_CheckType, MVT::i32, ++/*397693*/ OPC_MoveParent, ++/*397694*/ OPC_CheckType, MVT::v16i16, ++/*397696*/ OPC_MoveParent, ++/*397697*/ OPC_CheckType, MVT::v16i16, ++/*397699*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*397701*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*397709*/ 0, /*End of Scope*/ ++/*397710*/ /*Scope*/ 91|128,2/*347*/, /*->398059*/ ++/*397712*/ OPC_MoveChild0, ++/*397713*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*397716*/ OPC_CheckChild0Integer, 1, ++/*397718*/ OPC_CheckChild0Type, MVT::i32, ++/*397720*/ OPC_CheckChild1Integer, 1, ++/*397722*/ OPC_CheckChild1Type, MVT::i32, ++/*397724*/ OPC_CheckChild2Integer, 1, ++/*397726*/ OPC_CheckChild2Type, MVT::i32, ++/*397728*/ OPC_CheckChild3Integer, 1, ++/*397730*/ OPC_CheckChild3Type, MVT::i32, ++/*397732*/ OPC_CheckChild4Integer, 1, ++/*397734*/ OPC_CheckChild4Type, MVT::i32, ++/*397736*/ OPC_MoveChild5, ++/*397737*/ OPC_CheckInteger, 1, ++/*397739*/ OPC_CheckType, MVT::i32, ++/*397741*/ OPC_MoveParent, ++/*397742*/ OPC_MoveChild6, ++/*397743*/ OPC_CheckInteger, 1, ++/*397745*/ OPC_CheckType, MVT::i32, ++/*397747*/ OPC_MoveParent, ++/*397748*/ OPC_MoveChild7, ++/*397749*/ OPC_CheckInteger, 1, ++/*397751*/ OPC_CheckType, MVT::i32, ++/*397753*/ OPC_MoveParent, ++/*397754*/ OPC_MoveChild, 8, ++/*397756*/ OPC_CheckInteger, 1, ++/*397758*/ OPC_CheckType, MVT::i32, ++/*397760*/ OPC_MoveParent, ++/*397761*/ OPC_MoveChild, 9, ++/*397763*/ OPC_CheckInteger, 1, ++/*397765*/ OPC_CheckType, MVT::i32, ++/*397767*/ OPC_MoveParent, ++/*397768*/ OPC_MoveChild, 10, ++/*397770*/ OPC_CheckInteger, 1, ++/*397772*/ OPC_CheckType, MVT::i32, ++/*397774*/ OPC_MoveParent, ++/*397775*/ OPC_MoveChild, 11, ++/*397777*/ OPC_CheckInteger, 1, ++/*397779*/ OPC_CheckType, MVT::i32, ++/*397781*/ OPC_MoveParent, ++/*397782*/ OPC_MoveChild, 12, ++/*397784*/ OPC_CheckInteger, 1, ++/*397786*/ OPC_CheckType, MVT::i32, ++/*397788*/ OPC_MoveParent, ++/*397789*/ OPC_MoveChild, 13, ++/*397791*/ OPC_CheckInteger, 1, ++/*397793*/ OPC_CheckType, MVT::i32, ++/*397795*/ OPC_MoveParent, ++/*397796*/ OPC_MoveChild, 14, ++/*397798*/ OPC_CheckInteger, 1, ++/*397800*/ OPC_CheckType, MVT::i32, ++/*397802*/ OPC_MoveParent, ++/*397803*/ OPC_MoveChild, 15, ++/*397805*/ OPC_CheckInteger, 1, ++/*397807*/ OPC_CheckType, MVT::i32, ++/*397809*/ OPC_MoveParent, ++/*397810*/ OPC_MoveParent, ++/*397811*/ OPC_MoveChild1, ++/*397812*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*397815*/ OPC_Scope, 120, /*->397937*/ // 2 children in Scope ++/*397817*/ OPC_CheckChild0Same, 0, ++/*397819*/ OPC_CheckChild1Same, 1, ++/*397821*/ OPC_MoveParent, ++/*397822*/ OPC_MoveParent, ++/*397823*/ OPC_MoveParent, ++/*397824*/ OPC_MoveChild1, ++/*397825*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*397828*/ OPC_CheckChild0Integer, 1, ++/*397830*/ OPC_CheckChild0Type, MVT::i32, ++/*397832*/ OPC_CheckChild1Integer, 1, ++/*397834*/ OPC_CheckChild1Type, MVT::i32, ++/*397836*/ OPC_CheckChild2Integer, 1, ++/*397838*/ OPC_CheckChild2Type, MVT::i32, ++/*397840*/ OPC_CheckChild3Integer, 1, ++/*397842*/ OPC_CheckChild3Type, MVT::i32, ++/*397844*/ OPC_CheckChild4Integer, 1, ++/*397846*/ OPC_CheckChild4Type, MVT::i32, ++/*397848*/ OPC_MoveChild5, ++/*397849*/ OPC_CheckInteger, 1, ++/*397851*/ OPC_CheckType, MVT::i32, ++/*397853*/ OPC_MoveParent, ++/*397854*/ OPC_MoveChild6, ++/*397855*/ OPC_CheckInteger, 1, ++/*397857*/ OPC_CheckType, MVT::i32, ++/*397859*/ OPC_MoveParent, ++/*397860*/ OPC_MoveChild7, ++/*397861*/ OPC_CheckInteger, 1, ++/*397863*/ OPC_CheckType, MVT::i32, ++/*397865*/ OPC_MoveParent, ++/*397866*/ OPC_MoveChild, 8, ++/*397868*/ OPC_CheckInteger, 1, ++/*397870*/ OPC_CheckType, MVT::i32, ++/*397872*/ OPC_MoveParent, ++/*397873*/ OPC_MoveChild, 9, ++/*397875*/ OPC_CheckInteger, 1, ++/*397877*/ OPC_CheckType, MVT::i32, ++/*397879*/ OPC_MoveParent, ++/*397880*/ OPC_MoveChild, 10, ++/*397882*/ OPC_CheckInteger, 1, ++/*397884*/ OPC_CheckType, MVT::i32, ++/*397886*/ OPC_MoveParent, ++/*397887*/ OPC_MoveChild, 11, ++/*397889*/ OPC_CheckInteger, 1, ++/*397891*/ OPC_CheckType, MVT::i32, ++/*397893*/ OPC_MoveParent, ++/*397894*/ OPC_MoveChild, 12, ++/*397896*/ OPC_CheckInteger, 1, ++/*397898*/ OPC_CheckType, MVT::i32, ++/*397900*/ OPC_MoveParent, ++/*397901*/ OPC_MoveChild, 13, ++/*397903*/ OPC_CheckInteger, 1, ++/*397905*/ OPC_CheckType, MVT::i32, ++/*397907*/ OPC_MoveParent, ++/*397908*/ OPC_MoveChild, 14, ++/*397910*/ OPC_CheckInteger, 1, ++/*397912*/ OPC_CheckType, MVT::i32, ++/*397914*/ OPC_MoveParent, ++/*397915*/ OPC_MoveChild, 15, ++/*397917*/ OPC_CheckInteger, 1, ++/*397919*/ OPC_CheckType, MVT::i32, ++/*397921*/ OPC_MoveParent, ++/*397922*/ OPC_CheckType, MVT::v16i16, ++/*397924*/ OPC_MoveParent, ++/*397925*/ OPC_CheckType, MVT::v16i16, ++/*397927*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*397929*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*397937*/ /*Scope*/ 120, /*->398058*/ ++/*397938*/ OPC_CheckChild0Same, 1, ++/*397940*/ OPC_CheckChild1Same, 0, ++/*397942*/ OPC_MoveParent, ++/*397943*/ OPC_MoveParent, ++/*397944*/ OPC_MoveParent, ++/*397945*/ OPC_MoveChild1, ++/*397946*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*397949*/ OPC_CheckChild0Integer, 1, ++/*397951*/ OPC_CheckChild0Type, MVT::i32, ++/*397953*/ OPC_CheckChild1Integer, 1, ++/*397955*/ OPC_CheckChild1Type, MVT::i32, ++/*397957*/ OPC_CheckChild2Integer, 1, ++/*397959*/ OPC_CheckChild2Type, MVT::i32, ++/*397961*/ OPC_CheckChild3Integer, 1, ++/*397963*/ OPC_CheckChild3Type, MVT::i32, ++/*397965*/ OPC_CheckChild4Integer, 1, ++/*397967*/ OPC_CheckChild4Type, MVT::i32, ++/*397969*/ OPC_MoveChild5, ++/*397970*/ OPC_CheckInteger, 1, ++/*397972*/ OPC_CheckType, MVT::i32, ++/*397974*/ OPC_MoveParent, ++/*397975*/ OPC_MoveChild6, ++/*397976*/ OPC_CheckInteger, 1, ++/*397978*/ OPC_CheckType, MVT::i32, ++/*397980*/ OPC_MoveParent, ++/*397981*/ OPC_MoveChild7, ++/*397982*/ OPC_CheckInteger, 1, ++/*397984*/ OPC_CheckType, MVT::i32, ++/*397986*/ OPC_MoveParent, ++/*397987*/ OPC_MoveChild, 8, ++/*397989*/ OPC_CheckInteger, 1, ++/*397991*/ OPC_CheckType, MVT::i32, ++/*397993*/ OPC_MoveParent, ++/*397994*/ OPC_MoveChild, 9, ++/*397996*/ OPC_CheckInteger, 1, ++/*397998*/ OPC_CheckType, MVT::i32, ++/*398000*/ OPC_MoveParent, ++/*398001*/ OPC_MoveChild, 10, ++/*398003*/ OPC_CheckInteger, 1, ++/*398005*/ OPC_CheckType, MVT::i32, ++/*398007*/ OPC_MoveParent, ++/*398008*/ OPC_MoveChild, 11, ++/*398010*/ OPC_CheckInteger, 1, ++/*398012*/ OPC_CheckType, MVT::i32, ++/*398014*/ OPC_MoveParent, ++/*398015*/ OPC_MoveChild, 12, ++/*398017*/ OPC_CheckInteger, 1, ++/*398019*/ OPC_CheckType, MVT::i32, ++/*398021*/ OPC_MoveParent, ++/*398022*/ OPC_MoveChild, 13, ++/*398024*/ OPC_CheckInteger, 1, ++/*398026*/ OPC_CheckType, MVT::i32, ++/*398028*/ OPC_MoveParent, ++/*398029*/ OPC_MoveChild, 14, ++/*398031*/ OPC_CheckInteger, 1, ++/*398033*/ OPC_CheckType, MVT::i32, ++/*398035*/ OPC_MoveParent, ++/*398036*/ OPC_MoveChild, 15, ++/*398038*/ OPC_CheckInteger, 1, ++/*398040*/ OPC_CheckType, MVT::i32, ++/*398042*/ OPC_MoveParent, ++/*398043*/ OPC_CheckType, MVT::v16i16, ++/*398045*/ OPC_MoveParent, ++/*398046*/ OPC_CheckType, MVT::v16i16, ++/*398048*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*398050*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*398058*/ 0, /*End of Scope*/ ++/*398059*/ 0, /*End of Scope*/ ++/*398060*/ /*Scope*/ 101|128,21/*2789*/, /*->400851*/ ++/*398062*/ OPC_RecordChild0, // #1 = $b ++/*398063*/ OPC_MoveChild1, ++/*398064*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*398067*/ OPC_CheckChild0Integer, 1, ++/*398069*/ OPC_CheckChild0Type, MVT::i32, ++/*398071*/ OPC_CheckChild1Integer, 1, ++/*398073*/ OPC_CheckChild1Type, MVT::i32, ++/*398075*/ OPC_CheckChild2Integer, 1, ++/*398077*/ OPC_CheckChild2Type, MVT::i32, ++/*398079*/ OPC_CheckChild3Integer, 1, ++/*398081*/ OPC_CheckChild3Type, MVT::i32, ++/*398083*/ OPC_CheckChild4Integer, 1, ++/*398085*/ OPC_CheckChild4Type, MVT::i32, ++/*398087*/ OPC_MoveChild5, ++/*398088*/ OPC_CheckInteger, 1, ++/*398090*/ OPC_CheckType, MVT::i32, ++/*398092*/ OPC_MoveParent, ++/*398093*/ OPC_MoveChild6, ++/*398094*/ OPC_CheckInteger, 1, ++/*398096*/ OPC_CheckType, MVT::i32, ++/*398098*/ OPC_MoveParent, ++/*398099*/ OPC_MoveChild7, ++/*398100*/ OPC_CheckInteger, 1, ++/*398102*/ OPC_CheckType, MVT::i32, ++/*398104*/ OPC_MoveParent, ++/*398105*/ OPC_MoveChild, 8, ++/*398107*/ OPC_CheckInteger, 1, ++/*398109*/ OPC_CheckType, MVT::i32, ++/*398111*/ OPC_MoveParent, ++/*398112*/ OPC_MoveChild, 9, ++/*398114*/ OPC_CheckInteger, 1, ++/*398116*/ OPC_CheckType, MVT::i32, ++/*398118*/ OPC_MoveParent, ++/*398119*/ OPC_MoveChild, 10, ++/*398121*/ OPC_CheckInteger, 1, ++/*398123*/ OPC_CheckType, MVT::i32, ++/*398125*/ OPC_MoveParent, ++/*398126*/ OPC_MoveChild, 11, ++/*398128*/ OPC_CheckInteger, 1, ++/*398130*/ OPC_CheckType, MVT::i32, ++/*398132*/ OPC_MoveParent, ++/*398133*/ OPC_MoveChild, 12, ++/*398135*/ OPC_CheckInteger, 1, ++/*398137*/ OPC_CheckType, MVT::i32, ++/*398139*/ OPC_MoveParent, ++/*398140*/ OPC_MoveChild, 13, ++/*398142*/ OPC_CheckInteger, 1, ++/*398144*/ OPC_CheckType, MVT::i32, ++/*398146*/ OPC_MoveParent, ++/*398147*/ OPC_MoveChild, 14, ++/*398149*/ OPC_CheckInteger, 1, ++/*398151*/ OPC_CheckType, MVT::i32, ++/*398153*/ OPC_MoveParent, ++/*398154*/ OPC_MoveChild, 15, ++/*398156*/ OPC_CheckInteger, 1, ++/*398158*/ OPC_CheckType, MVT::i32, ++/*398160*/ OPC_MoveParent, ++/*398161*/ OPC_MoveParent, ++/*398162*/ OPC_MoveParent, ++/*398163*/ OPC_MoveParent, ++/*398164*/ OPC_MoveChild1, ++/*398165*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*398168*/ OPC_CheckChild0Integer, 15, ++/*398170*/ OPC_CheckChild0Type, MVT::i32, ++/*398172*/ OPC_CheckChild1Integer, 15, ++/*398174*/ OPC_CheckChild1Type, MVT::i32, ++/*398176*/ OPC_CheckChild2Integer, 15, ++/*398178*/ OPC_CheckChild2Type, MVT::i32, ++/*398180*/ OPC_CheckChild3Integer, 15, ++/*398182*/ OPC_CheckChild3Type, MVT::i32, ++/*398184*/ OPC_CheckChild4Integer, 15, ++/*398186*/ OPC_CheckChild4Type, MVT::i32, ++/*398188*/ OPC_MoveChild5, ++/*398189*/ OPC_CheckInteger, 15, ++/*398191*/ OPC_CheckType, MVT::i32, ++/*398193*/ OPC_MoveParent, ++/*398194*/ OPC_MoveChild6, ++/*398195*/ OPC_CheckInteger, 15, ++/*398197*/ OPC_CheckType, MVT::i32, ++/*398199*/ OPC_MoveParent, ++/*398200*/ OPC_MoveChild7, ++/*398201*/ OPC_CheckInteger, 15, ++/*398203*/ OPC_CheckType, MVT::i32, ++/*398205*/ OPC_MoveParent, ++/*398206*/ OPC_MoveChild, 8, ++/*398208*/ OPC_CheckInteger, 15, ++/*398210*/ OPC_CheckType, MVT::i32, ++/*398212*/ OPC_MoveParent, ++/*398213*/ OPC_MoveChild, 9, ++/*398215*/ OPC_CheckInteger, 15, ++/*398217*/ OPC_CheckType, MVT::i32, ++/*398219*/ OPC_MoveParent, ++/*398220*/ OPC_MoveChild, 10, ++/*398222*/ OPC_CheckInteger, 15, ++/*398224*/ OPC_CheckType, MVT::i32, ++/*398226*/ OPC_MoveParent, ++/*398227*/ OPC_MoveChild, 11, ++/*398229*/ OPC_CheckInteger, 15, ++/*398231*/ OPC_CheckType, MVT::i32, ++/*398233*/ OPC_MoveParent, ++/*398234*/ OPC_MoveChild, 12, ++/*398236*/ OPC_CheckInteger, 15, ++/*398238*/ OPC_CheckType, MVT::i32, ++/*398240*/ OPC_MoveParent, ++/*398241*/ OPC_MoveChild, 13, ++/*398243*/ OPC_CheckInteger, 15, ++/*398245*/ OPC_CheckType, MVT::i32, ++/*398247*/ OPC_MoveParent, ++/*398248*/ OPC_MoveChild, 14, ++/*398250*/ OPC_CheckInteger, 15, ++/*398252*/ OPC_CheckType, MVT::i32, ++/*398254*/ OPC_MoveParent, ++/*398255*/ OPC_MoveChild, 15, ++/*398257*/ OPC_CheckInteger, 15, ++/*398259*/ OPC_CheckType, MVT::i32, ++/*398261*/ OPC_MoveParent, ++/*398262*/ OPC_CheckType, MVT::v16i16, ++/*398264*/ OPC_MoveParent, ++/*398265*/ OPC_MoveParent, ++/*398266*/ OPC_MoveChild1, ++/*398267*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*398270*/ OPC_Scope, 52|128,10/*1332*/, /*->399605*/ // 4 children in Scope ++/*398273*/ OPC_MoveChild0, ++/*398274*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*398277*/ OPC_Scope, 91|128,1/*219*/, /*->398499*/ // 6 children in Scope ++/*398280*/ OPC_MoveChild0, ++/*398281*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*398284*/ OPC_CheckChild0Integer, 1, ++/*398286*/ OPC_CheckChild0Type, MVT::i32, ++/*398288*/ OPC_CheckChild1Integer, 1, ++/*398290*/ OPC_CheckChild1Type, MVT::i32, ++/*398292*/ OPC_CheckChild2Integer, 1, ++/*398294*/ OPC_CheckChild2Type, MVT::i32, ++/*398296*/ OPC_CheckChild3Integer, 1, ++/*398298*/ OPC_CheckChild3Type, MVT::i32, ++/*398300*/ OPC_CheckChild4Integer, 1, ++/*398302*/ OPC_CheckChild4Type, MVT::i32, ++/*398304*/ OPC_MoveChild5, ++/*398305*/ OPC_CheckInteger, 1, ++/*398307*/ OPC_CheckType, MVT::i32, ++/*398309*/ OPC_MoveParent, ++/*398310*/ OPC_MoveChild6, ++/*398311*/ OPC_CheckInteger, 1, ++/*398313*/ OPC_CheckType, MVT::i32, ++/*398315*/ OPC_MoveParent, ++/*398316*/ OPC_MoveChild7, ++/*398317*/ OPC_CheckInteger, 1, ++/*398319*/ OPC_CheckType, MVT::i32, ++/*398321*/ OPC_MoveParent, ++/*398322*/ OPC_MoveChild, 8, ++/*398324*/ OPC_CheckInteger, 1, ++/*398326*/ OPC_CheckType, MVT::i32, ++/*398328*/ OPC_MoveParent, ++/*398329*/ OPC_MoveChild, 9, ++/*398331*/ OPC_CheckInteger, 1, ++/*398333*/ OPC_CheckType, MVT::i32, ++/*398335*/ OPC_MoveParent, ++/*398336*/ OPC_MoveChild, 10, ++/*398338*/ OPC_CheckInteger, 1, ++/*398340*/ OPC_CheckType, MVT::i32, ++/*398342*/ OPC_MoveParent, ++/*398343*/ OPC_MoveChild, 11, ++/*398345*/ OPC_CheckInteger, 1, ++/*398347*/ OPC_CheckType, MVT::i32, ++/*398349*/ OPC_MoveParent, ++/*398350*/ OPC_MoveChild, 12, ++/*398352*/ OPC_CheckInteger, 1, ++/*398354*/ OPC_CheckType, MVT::i32, ++/*398356*/ OPC_MoveParent, ++/*398357*/ OPC_MoveChild, 13, ++/*398359*/ OPC_CheckInteger, 1, ++/*398361*/ OPC_CheckType, MVT::i32, ++/*398363*/ OPC_MoveParent, ++/*398364*/ OPC_MoveChild, 14, ++/*398366*/ OPC_CheckInteger, 1, ++/*398368*/ OPC_CheckType, MVT::i32, ++/*398370*/ OPC_MoveParent, ++/*398371*/ OPC_MoveChild, 15, ++/*398373*/ OPC_CheckInteger, 1, ++/*398375*/ OPC_CheckType, MVT::i32, ++/*398377*/ OPC_MoveParent, ++/*398378*/ OPC_MoveParent, ++/*398379*/ OPC_CheckChild1Same, 0, ++/*398381*/ OPC_MoveParent, ++/*398382*/ OPC_CheckChild1Same, 1, ++/*398384*/ OPC_MoveParent, ++/*398385*/ OPC_MoveParent, ++/*398386*/ OPC_MoveChild1, ++/*398387*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*398390*/ OPC_CheckChild0Integer, 1, ++/*398392*/ OPC_CheckChild0Type, MVT::i32, ++/*398394*/ OPC_CheckChild1Integer, 1, ++/*398396*/ OPC_CheckChild1Type, MVT::i32, ++/*398398*/ OPC_CheckChild2Integer, 1, ++/*398400*/ OPC_CheckChild2Type, MVT::i32, ++/*398402*/ OPC_CheckChild3Integer, 1, ++/*398404*/ OPC_CheckChild3Type, MVT::i32, ++/*398406*/ OPC_CheckChild4Integer, 1, ++/*398408*/ OPC_CheckChild4Type, MVT::i32, ++/*398410*/ OPC_MoveChild5, ++/*398411*/ OPC_CheckInteger, 1, ++/*398413*/ OPC_CheckType, MVT::i32, ++/*398415*/ OPC_MoveParent, ++/*398416*/ OPC_MoveChild6, ++/*398417*/ OPC_CheckInteger, 1, ++/*398419*/ OPC_CheckType, MVT::i32, ++/*398421*/ OPC_MoveParent, ++/*398422*/ OPC_MoveChild7, ++/*398423*/ OPC_CheckInteger, 1, ++/*398425*/ OPC_CheckType, MVT::i32, ++/*398427*/ OPC_MoveParent, ++/*398428*/ OPC_MoveChild, 8, ++/*398430*/ OPC_CheckInteger, 1, ++/*398432*/ OPC_CheckType, MVT::i32, ++/*398434*/ OPC_MoveParent, ++/*398435*/ OPC_MoveChild, 9, ++/*398437*/ OPC_CheckInteger, 1, ++/*398439*/ OPC_CheckType, MVT::i32, ++/*398441*/ OPC_MoveParent, ++/*398442*/ OPC_MoveChild, 10, ++/*398444*/ OPC_CheckInteger, 1, ++/*398446*/ OPC_CheckType, MVT::i32, ++/*398448*/ OPC_MoveParent, ++/*398449*/ OPC_MoveChild, 11, ++/*398451*/ OPC_CheckInteger, 1, ++/*398453*/ OPC_CheckType, MVT::i32, ++/*398455*/ OPC_MoveParent, ++/*398456*/ OPC_MoveChild, 12, ++/*398458*/ OPC_CheckInteger, 1, ++/*398460*/ OPC_CheckType, MVT::i32, ++/*398462*/ OPC_MoveParent, ++/*398463*/ OPC_MoveChild, 13, ++/*398465*/ OPC_CheckInteger, 1, ++/*398467*/ OPC_CheckType, MVT::i32, ++/*398469*/ OPC_MoveParent, ++/*398470*/ OPC_MoveChild, 14, ++/*398472*/ OPC_CheckInteger, 1, ++/*398474*/ OPC_CheckType, MVT::i32, ++/*398476*/ OPC_MoveParent, ++/*398477*/ OPC_MoveChild, 15, ++/*398479*/ OPC_CheckInteger, 1, ++/*398481*/ OPC_CheckType, MVT::i32, ++/*398483*/ OPC_MoveParent, ++/*398484*/ OPC_CheckType, MVT::v16i16, ++/*398486*/ OPC_MoveParent, ++/*398487*/ OPC_CheckType, MVT::v16i16, ++/*398489*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*398491*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a), LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*398499*/ /*Scope*/ 91|128,1/*219*/, /*->398720*/ ++/*398501*/ OPC_CheckChild0Same, 0, ++/*398503*/ OPC_MoveChild1, ++/*398504*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*398507*/ OPC_CheckChild0Integer, 1, ++/*398509*/ OPC_CheckChild0Type, MVT::i32, ++/*398511*/ OPC_CheckChild1Integer, 1, ++/*398513*/ OPC_CheckChild1Type, MVT::i32, ++/*398515*/ OPC_CheckChild2Integer, 1, ++/*398517*/ OPC_CheckChild2Type, MVT::i32, ++/*398519*/ OPC_CheckChild3Integer, 1, ++/*398521*/ OPC_CheckChild3Type, MVT::i32, ++/*398523*/ OPC_CheckChild4Integer, 1, ++/*398525*/ OPC_CheckChild4Type, MVT::i32, ++/*398527*/ OPC_MoveChild5, ++/*398528*/ OPC_CheckInteger, 1, ++/*398530*/ OPC_CheckType, MVT::i32, ++/*398532*/ OPC_MoveParent, ++/*398533*/ OPC_MoveChild6, ++/*398534*/ OPC_CheckInteger, 1, ++/*398536*/ OPC_CheckType, MVT::i32, ++/*398538*/ OPC_MoveParent, ++/*398539*/ OPC_MoveChild7, ++/*398540*/ OPC_CheckInteger, 1, ++/*398542*/ OPC_CheckType, MVT::i32, ++/*398544*/ OPC_MoveParent, ++/*398545*/ OPC_MoveChild, 8, ++/*398547*/ OPC_CheckInteger, 1, ++/*398549*/ OPC_CheckType, MVT::i32, ++/*398551*/ OPC_MoveParent, ++/*398552*/ OPC_MoveChild, 9, ++/*398554*/ OPC_CheckInteger, 1, ++/*398556*/ OPC_CheckType, MVT::i32, ++/*398558*/ OPC_MoveParent, ++/*398559*/ OPC_MoveChild, 10, ++/*398561*/ OPC_CheckInteger, 1, ++/*398563*/ OPC_CheckType, MVT::i32, ++/*398565*/ OPC_MoveParent, ++/*398566*/ OPC_MoveChild, 11, ++/*398568*/ OPC_CheckInteger, 1, ++/*398570*/ OPC_CheckType, MVT::i32, ++/*398572*/ OPC_MoveParent, ++/*398573*/ OPC_MoveChild, 12, ++/*398575*/ OPC_CheckInteger, 1, ++/*398577*/ OPC_CheckType, MVT::i32, ++/*398579*/ OPC_MoveParent, ++/*398580*/ OPC_MoveChild, 13, ++/*398582*/ OPC_CheckInteger, 1, ++/*398584*/ OPC_CheckType, MVT::i32, ++/*398586*/ OPC_MoveParent, ++/*398587*/ OPC_MoveChild, 14, ++/*398589*/ OPC_CheckInteger, 1, ++/*398591*/ OPC_CheckType, MVT::i32, ++/*398593*/ OPC_MoveParent, ++/*398594*/ OPC_MoveChild, 15, ++/*398596*/ OPC_CheckInteger, 1, ++/*398598*/ OPC_CheckType, MVT::i32, ++/*398600*/ OPC_MoveParent, ++/*398601*/ OPC_MoveParent, ++/*398602*/ OPC_MoveParent, ++/*398603*/ OPC_CheckChild1Same, 1, ++/*398605*/ OPC_MoveParent, ++/*398606*/ OPC_MoveParent, ++/*398607*/ OPC_MoveChild1, ++/*398608*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*398611*/ OPC_CheckChild0Integer, 1, ++/*398613*/ OPC_CheckChild0Type, MVT::i32, ++/*398615*/ OPC_CheckChild1Integer, 1, ++/*398617*/ OPC_CheckChild1Type, MVT::i32, ++/*398619*/ OPC_CheckChild2Integer, 1, ++/*398621*/ OPC_CheckChild2Type, MVT::i32, ++/*398623*/ OPC_CheckChild3Integer, 1, ++/*398625*/ OPC_CheckChild3Type, MVT::i32, ++/*398627*/ OPC_CheckChild4Integer, 1, ++/*398629*/ OPC_CheckChild4Type, MVT::i32, ++/*398631*/ OPC_MoveChild5, ++/*398632*/ OPC_CheckInteger, 1, ++/*398634*/ OPC_CheckType, MVT::i32, ++/*398636*/ OPC_MoveParent, ++/*398637*/ OPC_MoveChild6, ++/*398638*/ OPC_CheckInteger, 1, ++/*398640*/ OPC_CheckType, MVT::i32, ++/*398642*/ OPC_MoveParent, ++/*398643*/ OPC_MoveChild7, ++/*398644*/ OPC_CheckInteger, 1, ++/*398646*/ OPC_CheckType, MVT::i32, ++/*398648*/ OPC_MoveParent, ++/*398649*/ OPC_MoveChild, 8, ++/*398651*/ OPC_CheckInteger, 1, ++/*398653*/ OPC_CheckType, MVT::i32, ++/*398655*/ OPC_MoveParent, ++/*398656*/ OPC_MoveChild, 9, ++/*398658*/ OPC_CheckInteger, 1, ++/*398660*/ OPC_CheckType, MVT::i32, ++/*398662*/ OPC_MoveParent, ++/*398663*/ OPC_MoveChild, 10, ++/*398665*/ OPC_CheckInteger, 1, ++/*398667*/ OPC_CheckType, MVT::i32, ++/*398669*/ OPC_MoveParent, ++/*398670*/ OPC_MoveChild, 11, ++/*398672*/ OPC_CheckInteger, 1, ++/*398674*/ OPC_CheckType, MVT::i32, ++/*398676*/ OPC_MoveParent, ++/*398677*/ OPC_MoveChild, 12, ++/*398679*/ OPC_CheckInteger, 1, ++/*398681*/ OPC_CheckType, MVT::i32, ++/*398683*/ OPC_MoveParent, ++/*398684*/ OPC_MoveChild, 13, ++/*398686*/ OPC_CheckInteger, 1, ++/*398688*/ OPC_CheckType, MVT::i32, ++/*398690*/ OPC_MoveParent, ++/*398691*/ OPC_MoveChild, 14, ++/*398693*/ OPC_CheckInteger, 1, ++/*398695*/ OPC_CheckType, MVT::i32, ++/*398697*/ OPC_MoveParent, ++/*398698*/ OPC_MoveChild, 15, ++/*398700*/ OPC_CheckInteger, 1, ++/*398702*/ OPC_CheckType, MVT::i32, ++/*398704*/ OPC_MoveParent, ++/*398705*/ OPC_CheckType, MVT::v16i16, ++/*398707*/ OPC_MoveParent, ++/*398708*/ OPC_CheckType, MVT::v16i16, ++/*398710*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*398712*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*398720*/ /*Scope*/ 91|128,1/*219*/, /*->398941*/ ++/*398722*/ OPC_MoveChild0, ++/*398723*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*398726*/ OPC_CheckChild0Integer, 1, ++/*398728*/ OPC_CheckChild0Type, MVT::i32, ++/*398730*/ OPC_CheckChild1Integer, 1, ++/*398732*/ OPC_CheckChild1Type, MVT::i32, ++/*398734*/ OPC_CheckChild2Integer, 1, ++/*398736*/ OPC_CheckChild2Type, MVT::i32, ++/*398738*/ OPC_CheckChild3Integer, 1, ++/*398740*/ OPC_CheckChild3Type, MVT::i32, ++/*398742*/ OPC_CheckChild4Integer, 1, ++/*398744*/ OPC_CheckChild4Type, MVT::i32, ++/*398746*/ OPC_MoveChild5, ++/*398747*/ OPC_CheckInteger, 1, ++/*398749*/ OPC_CheckType, MVT::i32, ++/*398751*/ OPC_MoveParent, ++/*398752*/ OPC_MoveChild6, ++/*398753*/ OPC_CheckInteger, 1, ++/*398755*/ OPC_CheckType, MVT::i32, ++/*398757*/ OPC_MoveParent, ++/*398758*/ OPC_MoveChild7, ++/*398759*/ OPC_CheckInteger, 1, ++/*398761*/ OPC_CheckType, MVT::i32, ++/*398763*/ OPC_MoveParent, ++/*398764*/ OPC_MoveChild, 8, ++/*398766*/ OPC_CheckInteger, 1, ++/*398768*/ OPC_CheckType, MVT::i32, ++/*398770*/ OPC_MoveParent, ++/*398771*/ OPC_MoveChild, 9, ++/*398773*/ OPC_CheckInteger, 1, ++/*398775*/ OPC_CheckType, MVT::i32, ++/*398777*/ OPC_MoveParent, ++/*398778*/ OPC_MoveChild, 10, ++/*398780*/ OPC_CheckInteger, 1, ++/*398782*/ OPC_CheckType, MVT::i32, ++/*398784*/ OPC_MoveParent, ++/*398785*/ OPC_MoveChild, 11, ++/*398787*/ OPC_CheckInteger, 1, ++/*398789*/ OPC_CheckType, MVT::i32, ++/*398791*/ OPC_MoveParent, ++/*398792*/ OPC_MoveChild, 12, ++/*398794*/ OPC_CheckInteger, 1, ++/*398796*/ OPC_CheckType, MVT::i32, ++/*398798*/ OPC_MoveParent, ++/*398799*/ OPC_MoveChild, 13, ++/*398801*/ OPC_CheckInteger, 1, ++/*398803*/ OPC_CheckType, MVT::i32, ++/*398805*/ OPC_MoveParent, ++/*398806*/ OPC_MoveChild, 14, ++/*398808*/ OPC_CheckInteger, 1, ++/*398810*/ OPC_CheckType, MVT::i32, ++/*398812*/ OPC_MoveParent, ++/*398813*/ OPC_MoveChild, 15, ++/*398815*/ OPC_CheckInteger, 1, ++/*398817*/ OPC_CheckType, MVT::i32, ++/*398819*/ OPC_MoveParent, ++/*398820*/ OPC_MoveParent, ++/*398821*/ OPC_CheckChild1Same, 1, ++/*398823*/ OPC_MoveParent, ++/*398824*/ OPC_CheckChild1Same, 0, ++/*398826*/ OPC_MoveParent, ++/*398827*/ OPC_MoveParent, ++/*398828*/ OPC_MoveChild1, ++/*398829*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*398832*/ OPC_CheckChild0Integer, 1, ++/*398834*/ OPC_CheckChild0Type, MVT::i32, ++/*398836*/ OPC_CheckChild1Integer, 1, ++/*398838*/ OPC_CheckChild1Type, MVT::i32, ++/*398840*/ OPC_CheckChild2Integer, 1, ++/*398842*/ OPC_CheckChild2Type, MVT::i32, ++/*398844*/ OPC_CheckChild3Integer, 1, ++/*398846*/ OPC_CheckChild3Type, MVT::i32, ++/*398848*/ OPC_CheckChild4Integer, 1, ++/*398850*/ OPC_CheckChild4Type, MVT::i32, ++/*398852*/ OPC_MoveChild5, ++/*398853*/ OPC_CheckInteger, 1, ++/*398855*/ OPC_CheckType, MVT::i32, ++/*398857*/ OPC_MoveParent, ++/*398858*/ OPC_MoveChild6, ++/*398859*/ OPC_CheckInteger, 1, ++/*398861*/ OPC_CheckType, MVT::i32, ++/*398863*/ OPC_MoveParent, ++/*398864*/ OPC_MoveChild7, ++/*398865*/ OPC_CheckInteger, 1, ++/*398867*/ OPC_CheckType, MVT::i32, ++/*398869*/ OPC_MoveParent, ++/*398870*/ OPC_MoveChild, 8, ++/*398872*/ OPC_CheckInteger, 1, ++/*398874*/ OPC_CheckType, MVT::i32, ++/*398876*/ OPC_MoveParent, ++/*398877*/ OPC_MoveChild, 9, ++/*398879*/ OPC_CheckInteger, 1, ++/*398881*/ OPC_CheckType, MVT::i32, ++/*398883*/ OPC_MoveParent, ++/*398884*/ OPC_MoveChild, 10, ++/*398886*/ OPC_CheckInteger, 1, ++/*398888*/ OPC_CheckType, MVT::i32, ++/*398890*/ OPC_MoveParent, ++/*398891*/ OPC_MoveChild, 11, ++/*398893*/ OPC_CheckInteger, 1, ++/*398895*/ OPC_CheckType, MVT::i32, ++/*398897*/ OPC_MoveParent, ++/*398898*/ OPC_MoveChild, 12, ++/*398900*/ OPC_CheckInteger, 1, ++/*398902*/ OPC_CheckType, MVT::i32, ++/*398904*/ OPC_MoveParent, ++/*398905*/ OPC_MoveChild, 13, ++/*398907*/ OPC_CheckInteger, 1, ++/*398909*/ OPC_CheckType, MVT::i32, ++/*398911*/ OPC_MoveParent, ++/*398912*/ OPC_MoveChild, 14, ++/*398914*/ OPC_CheckInteger, 1, ++/*398916*/ OPC_CheckType, MVT::i32, ++/*398918*/ OPC_MoveParent, ++/*398919*/ OPC_MoveChild, 15, ++/*398921*/ OPC_CheckInteger, 1, ++/*398923*/ OPC_CheckType, MVT::i32, ++/*398925*/ OPC_MoveParent, ++/*398926*/ OPC_CheckType, MVT::v16i16, ++/*398928*/ OPC_MoveParent, ++/*398929*/ OPC_CheckType, MVT::v16i16, ++/*398931*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*398933*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b), LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*398941*/ /*Scope*/ 91|128,1/*219*/, /*->399162*/ ++/*398943*/ OPC_CheckChild0Same, 1, ++/*398945*/ OPC_MoveChild1, ++/*398946*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*398949*/ OPC_CheckChild0Integer, 1, ++/*398951*/ OPC_CheckChild0Type, MVT::i32, ++/*398953*/ OPC_CheckChild1Integer, 1, ++/*398955*/ OPC_CheckChild1Type, MVT::i32, ++/*398957*/ OPC_CheckChild2Integer, 1, ++/*398959*/ OPC_CheckChild2Type, MVT::i32, ++/*398961*/ OPC_CheckChild3Integer, 1, ++/*398963*/ OPC_CheckChild3Type, MVT::i32, ++/*398965*/ OPC_CheckChild4Integer, 1, ++/*398967*/ OPC_CheckChild4Type, MVT::i32, ++/*398969*/ OPC_MoveChild5, ++/*398970*/ OPC_CheckInteger, 1, ++/*398972*/ OPC_CheckType, MVT::i32, ++/*398974*/ OPC_MoveParent, ++/*398975*/ OPC_MoveChild6, ++/*398976*/ OPC_CheckInteger, 1, ++/*398978*/ OPC_CheckType, MVT::i32, ++/*398980*/ OPC_MoveParent, ++/*398981*/ OPC_MoveChild7, ++/*398982*/ OPC_CheckInteger, 1, ++/*398984*/ OPC_CheckType, MVT::i32, ++/*398986*/ OPC_MoveParent, ++/*398987*/ OPC_MoveChild, 8, ++/*398989*/ OPC_CheckInteger, 1, ++/*398991*/ OPC_CheckType, MVT::i32, ++/*398993*/ OPC_MoveParent, ++/*398994*/ OPC_MoveChild, 9, ++/*398996*/ OPC_CheckInteger, 1, ++/*398998*/ OPC_CheckType, MVT::i32, ++/*399000*/ OPC_MoveParent, ++/*399001*/ OPC_MoveChild, 10, ++/*399003*/ OPC_CheckInteger, 1, ++/*399005*/ OPC_CheckType, MVT::i32, ++/*399007*/ OPC_MoveParent, ++/*399008*/ OPC_MoveChild, 11, ++/*399010*/ OPC_CheckInteger, 1, ++/*399012*/ OPC_CheckType, MVT::i32, ++/*399014*/ OPC_MoveParent, ++/*399015*/ OPC_MoveChild, 12, ++/*399017*/ OPC_CheckInteger, 1, ++/*399019*/ OPC_CheckType, MVT::i32, ++/*399021*/ OPC_MoveParent, ++/*399022*/ OPC_MoveChild, 13, ++/*399024*/ OPC_CheckInteger, 1, ++/*399026*/ OPC_CheckType, MVT::i32, ++/*399028*/ OPC_MoveParent, ++/*399029*/ OPC_MoveChild, 14, ++/*399031*/ OPC_CheckInteger, 1, ++/*399033*/ OPC_CheckType, MVT::i32, ++/*399035*/ OPC_MoveParent, ++/*399036*/ OPC_MoveChild, 15, ++/*399038*/ OPC_CheckInteger, 1, ++/*399040*/ OPC_CheckType, MVT::i32, ++/*399042*/ OPC_MoveParent, ++/*399043*/ OPC_MoveParent, ++/*399044*/ OPC_MoveParent, ++/*399045*/ OPC_CheckChild1Same, 0, ++/*399047*/ OPC_MoveParent, ++/*399048*/ OPC_MoveParent, ++/*399049*/ OPC_MoveChild1, ++/*399050*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*399053*/ OPC_CheckChild0Integer, 1, ++/*399055*/ OPC_CheckChild0Type, MVT::i32, ++/*399057*/ OPC_CheckChild1Integer, 1, ++/*399059*/ OPC_CheckChild1Type, MVT::i32, ++/*399061*/ OPC_CheckChild2Integer, 1, ++/*399063*/ OPC_CheckChild2Type, MVT::i32, ++/*399065*/ OPC_CheckChild3Integer, 1, ++/*399067*/ OPC_CheckChild3Type, MVT::i32, ++/*399069*/ OPC_CheckChild4Integer, 1, ++/*399071*/ OPC_CheckChild4Type, MVT::i32, ++/*399073*/ OPC_MoveChild5, ++/*399074*/ OPC_CheckInteger, 1, ++/*399076*/ OPC_CheckType, MVT::i32, ++/*399078*/ OPC_MoveParent, ++/*399079*/ OPC_MoveChild6, ++/*399080*/ OPC_CheckInteger, 1, ++/*399082*/ OPC_CheckType, MVT::i32, ++/*399084*/ OPC_MoveParent, ++/*399085*/ OPC_MoveChild7, ++/*399086*/ OPC_CheckInteger, 1, ++/*399088*/ OPC_CheckType, MVT::i32, ++/*399090*/ OPC_MoveParent, ++/*399091*/ OPC_MoveChild, 8, ++/*399093*/ OPC_CheckInteger, 1, ++/*399095*/ OPC_CheckType, MVT::i32, ++/*399097*/ OPC_MoveParent, ++/*399098*/ OPC_MoveChild, 9, ++/*399100*/ OPC_CheckInteger, 1, ++/*399102*/ OPC_CheckType, MVT::i32, ++/*399104*/ OPC_MoveParent, ++/*399105*/ OPC_MoveChild, 10, ++/*399107*/ OPC_CheckInteger, 1, ++/*399109*/ OPC_CheckType, MVT::i32, ++/*399111*/ OPC_MoveParent, ++/*399112*/ OPC_MoveChild, 11, ++/*399114*/ OPC_CheckInteger, 1, ++/*399116*/ OPC_CheckType, MVT::i32, ++/*399118*/ OPC_MoveParent, ++/*399119*/ OPC_MoveChild, 12, ++/*399121*/ OPC_CheckInteger, 1, ++/*399123*/ OPC_CheckType, MVT::i32, ++/*399125*/ OPC_MoveParent, ++/*399126*/ OPC_MoveChild, 13, ++/*399128*/ OPC_CheckInteger, 1, ++/*399130*/ OPC_CheckType, MVT::i32, ++/*399132*/ OPC_MoveParent, ++/*399133*/ OPC_MoveChild, 14, ++/*399135*/ OPC_CheckInteger, 1, ++/*399137*/ OPC_CheckType, MVT::i32, ++/*399139*/ OPC_MoveParent, ++/*399140*/ OPC_MoveChild, 15, ++/*399142*/ OPC_CheckInteger, 1, ++/*399144*/ OPC_CheckType, MVT::i32, ++/*399146*/ OPC_MoveParent, ++/*399147*/ OPC_CheckType, MVT::v16i16, ++/*399149*/ OPC_MoveParent, ++/*399150*/ OPC_CheckType, MVT::v16i16, ++/*399152*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*399154*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*399162*/ /*Scope*/ 91|128,1/*219*/, /*->399383*/ ++/*399164*/ OPC_CheckChild0Same, 0, ++/*399166*/ OPC_CheckChild1Same, 1, ++/*399168*/ OPC_MoveParent, ++/*399169*/ OPC_MoveChild1, ++/*399170*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*399173*/ OPC_CheckChild0Integer, 1, ++/*399175*/ OPC_CheckChild0Type, MVT::i32, ++/*399177*/ OPC_CheckChild1Integer, 1, ++/*399179*/ OPC_CheckChild1Type, MVT::i32, ++/*399181*/ OPC_CheckChild2Integer, 1, ++/*399183*/ OPC_CheckChild2Type, MVT::i32, ++/*399185*/ OPC_CheckChild3Integer, 1, ++/*399187*/ OPC_CheckChild3Type, MVT::i32, ++/*399189*/ OPC_CheckChild4Integer, 1, ++/*399191*/ OPC_CheckChild4Type, MVT::i32, ++/*399193*/ OPC_MoveChild5, ++/*399194*/ OPC_CheckInteger, 1, ++/*399196*/ OPC_CheckType, MVT::i32, ++/*399198*/ OPC_MoveParent, ++/*399199*/ OPC_MoveChild6, ++/*399200*/ OPC_CheckInteger, 1, ++/*399202*/ OPC_CheckType, MVT::i32, ++/*399204*/ OPC_MoveParent, ++/*399205*/ OPC_MoveChild7, ++/*399206*/ OPC_CheckInteger, 1, ++/*399208*/ OPC_CheckType, MVT::i32, ++/*399210*/ OPC_MoveParent, ++/*399211*/ OPC_MoveChild, 8, ++/*399213*/ OPC_CheckInteger, 1, ++/*399215*/ OPC_CheckType, MVT::i32, ++/*399217*/ OPC_MoveParent, ++/*399218*/ OPC_MoveChild, 9, ++/*399220*/ OPC_CheckInteger, 1, ++/*399222*/ OPC_CheckType, MVT::i32, ++/*399224*/ OPC_MoveParent, ++/*399225*/ OPC_MoveChild, 10, ++/*399227*/ OPC_CheckInteger, 1, ++/*399229*/ OPC_CheckType, MVT::i32, ++/*399231*/ OPC_MoveParent, ++/*399232*/ OPC_MoveChild, 11, ++/*399234*/ OPC_CheckInteger, 1, ++/*399236*/ OPC_CheckType, MVT::i32, ++/*399238*/ OPC_MoveParent, ++/*399239*/ OPC_MoveChild, 12, ++/*399241*/ OPC_CheckInteger, 1, ++/*399243*/ OPC_CheckType, MVT::i32, ++/*399245*/ OPC_MoveParent, ++/*399246*/ OPC_MoveChild, 13, ++/*399248*/ OPC_CheckInteger, 1, ++/*399250*/ OPC_CheckType, MVT::i32, ++/*399252*/ OPC_MoveParent, ++/*399253*/ OPC_MoveChild, 14, ++/*399255*/ OPC_CheckInteger, 1, ++/*399257*/ OPC_CheckType, MVT::i32, ++/*399259*/ OPC_MoveParent, ++/*399260*/ OPC_MoveChild, 15, ++/*399262*/ OPC_CheckInteger, 1, ++/*399264*/ OPC_CheckType, MVT::i32, ++/*399266*/ OPC_MoveParent, ++/*399267*/ OPC_MoveParent, ++/*399268*/ OPC_MoveParent, ++/*399269*/ OPC_MoveParent, ++/*399270*/ OPC_MoveChild1, ++/*399271*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*399274*/ OPC_CheckChild0Integer, 1, ++/*399276*/ OPC_CheckChild0Type, MVT::i32, ++/*399278*/ OPC_CheckChild1Integer, 1, ++/*399280*/ OPC_CheckChild1Type, MVT::i32, ++/*399282*/ OPC_CheckChild2Integer, 1, ++/*399284*/ OPC_CheckChild2Type, MVT::i32, ++/*399286*/ OPC_CheckChild3Integer, 1, ++/*399288*/ OPC_CheckChild3Type, MVT::i32, ++/*399290*/ OPC_CheckChild4Integer, 1, ++/*399292*/ OPC_CheckChild4Type, MVT::i32, ++/*399294*/ OPC_MoveChild5, ++/*399295*/ OPC_CheckInteger, 1, ++/*399297*/ OPC_CheckType, MVT::i32, ++/*399299*/ OPC_MoveParent, ++/*399300*/ OPC_MoveChild6, ++/*399301*/ OPC_CheckInteger, 1, ++/*399303*/ OPC_CheckType, MVT::i32, ++/*399305*/ OPC_MoveParent, ++/*399306*/ OPC_MoveChild7, ++/*399307*/ OPC_CheckInteger, 1, ++/*399309*/ OPC_CheckType, MVT::i32, ++/*399311*/ OPC_MoveParent, ++/*399312*/ OPC_MoveChild, 8, ++/*399314*/ OPC_CheckInteger, 1, ++/*399316*/ OPC_CheckType, MVT::i32, ++/*399318*/ OPC_MoveParent, ++/*399319*/ OPC_MoveChild, 9, ++/*399321*/ OPC_CheckInteger, 1, ++/*399323*/ OPC_CheckType, MVT::i32, ++/*399325*/ OPC_MoveParent, ++/*399326*/ OPC_MoveChild, 10, ++/*399328*/ OPC_CheckInteger, 1, ++/*399330*/ OPC_CheckType, MVT::i32, ++/*399332*/ OPC_MoveParent, ++/*399333*/ OPC_MoveChild, 11, ++/*399335*/ OPC_CheckInteger, 1, ++/*399337*/ OPC_CheckType, MVT::i32, ++/*399339*/ OPC_MoveParent, ++/*399340*/ OPC_MoveChild, 12, ++/*399342*/ OPC_CheckInteger, 1, ++/*399344*/ OPC_CheckType, MVT::i32, ++/*399346*/ OPC_MoveParent, ++/*399347*/ OPC_MoveChild, 13, ++/*399349*/ OPC_CheckInteger, 1, ++/*399351*/ OPC_CheckType, MVT::i32, ++/*399353*/ OPC_MoveParent, ++/*399354*/ OPC_MoveChild, 14, ++/*399356*/ OPC_CheckInteger, 1, ++/*399358*/ OPC_CheckType, MVT::i32, ++/*399360*/ OPC_MoveParent, ++/*399361*/ OPC_MoveChild, 15, ++/*399363*/ OPC_CheckInteger, 1, ++/*399365*/ OPC_CheckType, MVT::i32, ++/*399367*/ OPC_MoveParent, ++/*399368*/ OPC_CheckType, MVT::v16i16, ++/*399370*/ OPC_MoveParent, ++/*399371*/ OPC_CheckType, MVT::v16i16, ++/*399373*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*399375*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*399383*/ /*Scope*/ 91|128,1/*219*/, /*->399604*/ ++/*399385*/ OPC_CheckChild0Same, 1, ++/*399387*/ OPC_CheckChild1Same, 0, ++/*399389*/ OPC_MoveParent, ++/*399390*/ OPC_MoveChild1, ++/*399391*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*399394*/ OPC_CheckChild0Integer, 1, ++/*399396*/ OPC_CheckChild0Type, MVT::i32, ++/*399398*/ OPC_CheckChild1Integer, 1, ++/*399400*/ OPC_CheckChild1Type, MVT::i32, ++/*399402*/ OPC_CheckChild2Integer, 1, ++/*399404*/ OPC_CheckChild2Type, MVT::i32, ++/*399406*/ OPC_CheckChild3Integer, 1, ++/*399408*/ OPC_CheckChild3Type, MVT::i32, ++/*399410*/ OPC_CheckChild4Integer, 1, ++/*399412*/ OPC_CheckChild4Type, MVT::i32, ++/*399414*/ OPC_MoveChild5, ++/*399415*/ OPC_CheckInteger, 1, ++/*399417*/ OPC_CheckType, MVT::i32, ++/*399419*/ OPC_MoveParent, ++/*399420*/ OPC_MoveChild6, ++/*399421*/ OPC_CheckInteger, 1, ++/*399423*/ OPC_CheckType, MVT::i32, ++/*399425*/ OPC_MoveParent, ++/*399426*/ OPC_MoveChild7, ++/*399427*/ OPC_CheckInteger, 1, ++/*399429*/ OPC_CheckType, MVT::i32, ++/*399431*/ OPC_MoveParent, ++/*399432*/ OPC_MoveChild, 8, ++/*399434*/ OPC_CheckInteger, 1, ++/*399436*/ OPC_CheckType, MVT::i32, ++/*399438*/ OPC_MoveParent, ++/*399439*/ OPC_MoveChild, 9, ++/*399441*/ OPC_CheckInteger, 1, ++/*399443*/ OPC_CheckType, MVT::i32, ++/*399445*/ OPC_MoveParent, ++/*399446*/ OPC_MoveChild, 10, ++/*399448*/ OPC_CheckInteger, 1, ++/*399450*/ OPC_CheckType, MVT::i32, ++/*399452*/ OPC_MoveParent, ++/*399453*/ OPC_MoveChild, 11, ++/*399455*/ OPC_CheckInteger, 1, ++/*399457*/ OPC_CheckType, MVT::i32, ++/*399459*/ OPC_MoveParent, ++/*399460*/ OPC_MoveChild, 12, ++/*399462*/ OPC_CheckInteger, 1, ++/*399464*/ OPC_CheckType, MVT::i32, ++/*399466*/ OPC_MoveParent, ++/*399467*/ OPC_MoveChild, 13, ++/*399469*/ OPC_CheckInteger, 1, ++/*399471*/ OPC_CheckType, MVT::i32, ++/*399473*/ OPC_MoveParent, ++/*399474*/ OPC_MoveChild, 14, ++/*399476*/ OPC_CheckInteger, 1, ++/*399478*/ OPC_CheckType, MVT::i32, ++/*399480*/ OPC_MoveParent, ++/*399481*/ OPC_MoveChild, 15, ++/*399483*/ OPC_CheckInteger, 1, ++/*399485*/ OPC_CheckType, MVT::i32, ++/*399487*/ OPC_MoveParent, ++/*399488*/ OPC_MoveParent, ++/*399489*/ OPC_MoveParent, ++/*399490*/ OPC_MoveParent, ++/*399491*/ OPC_MoveChild1, ++/*399492*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*399495*/ OPC_CheckChild0Integer, 1, ++/*399497*/ OPC_CheckChild0Type, MVT::i32, ++/*399499*/ OPC_CheckChild1Integer, 1, ++/*399501*/ OPC_CheckChild1Type, MVT::i32, ++/*399503*/ OPC_CheckChild2Integer, 1, ++/*399505*/ OPC_CheckChild2Type, MVT::i32, ++/*399507*/ OPC_CheckChild3Integer, 1, ++/*399509*/ OPC_CheckChild3Type, MVT::i32, ++/*399511*/ OPC_CheckChild4Integer, 1, ++/*399513*/ OPC_CheckChild4Type, MVT::i32, ++/*399515*/ OPC_MoveChild5, ++/*399516*/ OPC_CheckInteger, 1, ++/*399518*/ OPC_CheckType, MVT::i32, ++/*399520*/ OPC_MoveParent, ++/*399521*/ OPC_MoveChild6, ++/*399522*/ OPC_CheckInteger, 1, ++/*399524*/ OPC_CheckType, MVT::i32, ++/*399526*/ OPC_MoveParent, ++/*399527*/ OPC_MoveChild7, ++/*399528*/ OPC_CheckInteger, 1, ++/*399530*/ OPC_CheckType, MVT::i32, ++/*399532*/ OPC_MoveParent, ++/*399533*/ OPC_MoveChild, 8, ++/*399535*/ OPC_CheckInteger, 1, ++/*399537*/ OPC_CheckType, MVT::i32, ++/*399539*/ OPC_MoveParent, ++/*399540*/ OPC_MoveChild, 9, ++/*399542*/ OPC_CheckInteger, 1, ++/*399544*/ OPC_CheckType, MVT::i32, ++/*399546*/ OPC_MoveParent, ++/*399547*/ OPC_MoveChild, 10, ++/*399549*/ OPC_CheckInteger, 1, ++/*399551*/ OPC_CheckType, MVT::i32, ++/*399553*/ OPC_MoveParent, ++/*399554*/ OPC_MoveChild, 11, ++/*399556*/ OPC_CheckInteger, 1, ++/*399558*/ OPC_CheckType, MVT::i32, ++/*399560*/ OPC_MoveParent, ++/*399561*/ OPC_MoveChild, 12, ++/*399563*/ OPC_CheckInteger, 1, ++/*399565*/ OPC_CheckType, MVT::i32, ++/*399567*/ OPC_MoveParent, ++/*399568*/ OPC_MoveChild, 13, ++/*399570*/ OPC_CheckInteger, 1, ++/*399572*/ OPC_CheckType, MVT::i32, ++/*399574*/ OPC_MoveParent, ++/*399575*/ OPC_MoveChild, 14, ++/*399577*/ OPC_CheckInteger, 1, ++/*399579*/ OPC_CheckType, MVT::i32, ++/*399581*/ OPC_MoveParent, ++/*399582*/ OPC_MoveChild, 15, ++/*399584*/ OPC_CheckInteger, 1, ++/*399586*/ OPC_CheckType, MVT::i32, ++/*399588*/ OPC_MoveParent, ++/*399589*/ OPC_CheckType, MVT::v16i16, ++/*399591*/ OPC_MoveParent, ++/*399592*/ OPC_CheckType, MVT::v16i16, ++/*399594*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*399596*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*399604*/ 0, /*End of Scope*/ ++/*399605*/ /*Scope*/ 62|128,3/*446*/, /*->400053*/ ++/*399607*/ OPC_CheckChild0Same, 1, ++/*399609*/ OPC_MoveChild1, ++/*399610*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*399613*/ OPC_Scope, 89|128,1/*217*/, /*->399833*/ // 2 children in Scope ++/*399616*/ OPC_MoveChild0, ++/*399617*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*399620*/ OPC_CheckChild0Integer, 1, ++/*399622*/ OPC_CheckChild0Type, MVT::i32, ++/*399624*/ OPC_CheckChild1Integer, 1, ++/*399626*/ OPC_CheckChild1Type, MVT::i32, ++/*399628*/ OPC_CheckChild2Integer, 1, ++/*399630*/ OPC_CheckChild2Type, MVT::i32, ++/*399632*/ OPC_CheckChild3Integer, 1, ++/*399634*/ OPC_CheckChild3Type, MVT::i32, ++/*399636*/ OPC_CheckChild4Integer, 1, ++/*399638*/ OPC_CheckChild4Type, MVT::i32, ++/*399640*/ OPC_MoveChild5, ++/*399641*/ OPC_CheckInteger, 1, ++/*399643*/ OPC_CheckType, MVT::i32, ++/*399645*/ OPC_MoveParent, ++/*399646*/ OPC_MoveChild6, ++/*399647*/ OPC_CheckInteger, 1, ++/*399649*/ OPC_CheckType, MVT::i32, ++/*399651*/ OPC_MoveParent, ++/*399652*/ OPC_MoveChild7, ++/*399653*/ OPC_CheckInteger, 1, ++/*399655*/ OPC_CheckType, MVT::i32, ++/*399657*/ OPC_MoveParent, ++/*399658*/ OPC_MoveChild, 8, ++/*399660*/ OPC_CheckInteger, 1, ++/*399662*/ OPC_CheckType, MVT::i32, ++/*399664*/ OPC_MoveParent, ++/*399665*/ OPC_MoveChild, 9, ++/*399667*/ OPC_CheckInteger, 1, ++/*399669*/ OPC_CheckType, MVT::i32, ++/*399671*/ OPC_MoveParent, ++/*399672*/ OPC_MoveChild, 10, ++/*399674*/ OPC_CheckInteger, 1, ++/*399676*/ OPC_CheckType, MVT::i32, ++/*399678*/ OPC_MoveParent, ++/*399679*/ OPC_MoveChild, 11, ++/*399681*/ OPC_CheckInteger, 1, ++/*399683*/ OPC_CheckType, MVT::i32, ++/*399685*/ OPC_MoveParent, ++/*399686*/ OPC_MoveChild, 12, ++/*399688*/ OPC_CheckInteger, 1, ++/*399690*/ OPC_CheckType, MVT::i32, ++/*399692*/ OPC_MoveParent, ++/*399693*/ OPC_MoveChild, 13, ++/*399695*/ OPC_CheckInteger, 1, ++/*399697*/ OPC_CheckType, MVT::i32, ++/*399699*/ OPC_MoveParent, ++/*399700*/ OPC_MoveChild, 14, ++/*399702*/ OPC_CheckInteger, 1, ++/*399704*/ OPC_CheckType, MVT::i32, ++/*399706*/ OPC_MoveParent, ++/*399707*/ OPC_MoveChild, 15, ++/*399709*/ OPC_CheckInteger, 1, ++/*399711*/ OPC_CheckType, MVT::i32, ++/*399713*/ OPC_MoveParent, ++/*399714*/ OPC_MoveParent, ++/*399715*/ OPC_CheckChild1Same, 0, ++/*399717*/ OPC_MoveParent, ++/*399718*/ OPC_MoveParent, ++/*399719*/ OPC_MoveParent, ++/*399720*/ OPC_MoveChild1, ++/*399721*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*399724*/ OPC_CheckChild0Integer, 1, ++/*399726*/ OPC_CheckChild0Type, MVT::i32, ++/*399728*/ OPC_CheckChild1Integer, 1, ++/*399730*/ OPC_CheckChild1Type, MVT::i32, ++/*399732*/ OPC_CheckChild2Integer, 1, ++/*399734*/ OPC_CheckChild2Type, MVT::i32, ++/*399736*/ OPC_CheckChild3Integer, 1, ++/*399738*/ OPC_CheckChild3Type, MVT::i32, ++/*399740*/ OPC_CheckChild4Integer, 1, ++/*399742*/ OPC_CheckChild4Type, MVT::i32, ++/*399744*/ OPC_MoveChild5, ++/*399745*/ OPC_CheckInteger, 1, ++/*399747*/ OPC_CheckType, MVT::i32, ++/*399749*/ OPC_MoveParent, ++/*399750*/ OPC_MoveChild6, ++/*399751*/ OPC_CheckInteger, 1, ++/*399753*/ OPC_CheckType, MVT::i32, ++/*399755*/ OPC_MoveParent, ++/*399756*/ OPC_MoveChild7, ++/*399757*/ OPC_CheckInteger, 1, ++/*399759*/ OPC_CheckType, MVT::i32, ++/*399761*/ OPC_MoveParent, ++/*399762*/ OPC_MoveChild, 8, ++/*399764*/ OPC_CheckInteger, 1, ++/*399766*/ OPC_CheckType, MVT::i32, ++/*399768*/ OPC_MoveParent, ++/*399769*/ OPC_MoveChild, 9, ++/*399771*/ OPC_CheckInteger, 1, ++/*399773*/ OPC_CheckType, MVT::i32, ++/*399775*/ OPC_MoveParent, ++/*399776*/ OPC_MoveChild, 10, ++/*399778*/ OPC_CheckInteger, 1, ++/*399780*/ OPC_CheckType, MVT::i32, ++/*399782*/ OPC_MoveParent, ++/*399783*/ OPC_MoveChild, 11, ++/*399785*/ OPC_CheckInteger, 1, ++/*399787*/ OPC_CheckType, MVT::i32, ++/*399789*/ OPC_MoveParent, ++/*399790*/ OPC_MoveChild, 12, ++/*399792*/ OPC_CheckInteger, 1, ++/*399794*/ OPC_CheckType, MVT::i32, ++/*399796*/ OPC_MoveParent, ++/*399797*/ OPC_MoveChild, 13, ++/*399799*/ OPC_CheckInteger, 1, ++/*399801*/ OPC_CheckType, MVT::i32, ++/*399803*/ OPC_MoveParent, ++/*399804*/ OPC_MoveChild, 14, ++/*399806*/ OPC_CheckInteger, 1, ++/*399808*/ OPC_CheckType, MVT::i32, ++/*399810*/ OPC_MoveParent, ++/*399811*/ OPC_MoveChild, 15, ++/*399813*/ OPC_CheckInteger, 1, ++/*399815*/ OPC_CheckType, MVT::i32, ++/*399817*/ OPC_MoveParent, ++/*399818*/ OPC_CheckType, MVT::v16i16, ++/*399820*/ OPC_MoveParent, ++/*399821*/ OPC_CheckType, MVT::v16i16, ++/*399823*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*399825*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*399833*/ /*Scope*/ 89|128,1/*217*/, /*->400052*/ ++/*399835*/ OPC_CheckChild0Same, 0, ++/*399837*/ OPC_MoveChild1, ++/*399838*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*399841*/ OPC_CheckChild0Integer, 1, ++/*399843*/ OPC_CheckChild0Type, MVT::i32, ++/*399845*/ OPC_CheckChild1Integer, 1, ++/*399847*/ OPC_CheckChild1Type, MVT::i32, ++/*399849*/ OPC_CheckChild2Integer, 1, ++/*399851*/ OPC_CheckChild2Type, MVT::i32, ++/*399853*/ OPC_CheckChild3Integer, 1, ++/*399855*/ OPC_CheckChild3Type, MVT::i32, ++/*399857*/ OPC_CheckChild4Integer, 1, ++/*399859*/ OPC_CheckChild4Type, MVT::i32, ++/*399861*/ OPC_MoveChild5, ++/*399862*/ OPC_CheckInteger, 1, ++/*399864*/ OPC_CheckType, MVT::i32, ++/*399866*/ OPC_MoveParent, ++/*399867*/ OPC_MoveChild6, ++/*399868*/ OPC_CheckInteger, 1, ++/*399870*/ OPC_CheckType, MVT::i32, ++/*399872*/ OPC_MoveParent, ++/*399873*/ OPC_MoveChild7, ++/*399874*/ OPC_CheckInteger, 1, ++/*399876*/ OPC_CheckType, MVT::i32, ++/*399878*/ OPC_MoveParent, ++/*399879*/ OPC_MoveChild, 8, ++/*399881*/ OPC_CheckInteger, 1, ++/*399883*/ OPC_CheckType, MVT::i32, ++/*399885*/ OPC_MoveParent, ++/*399886*/ OPC_MoveChild, 9, ++/*399888*/ OPC_CheckInteger, 1, ++/*399890*/ OPC_CheckType, MVT::i32, ++/*399892*/ OPC_MoveParent, ++/*399893*/ OPC_MoveChild, 10, ++/*399895*/ OPC_CheckInteger, 1, ++/*399897*/ OPC_CheckType, MVT::i32, ++/*399899*/ OPC_MoveParent, ++/*399900*/ OPC_MoveChild, 11, ++/*399902*/ OPC_CheckInteger, 1, ++/*399904*/ OPC_CheckType, MVT::i32, ++/*399906*/ OPC_MoveParent, ++/*399907*/ OPC_MoveChild, 12, ++/*399909*/ OPC_CheckInteger, 1, ++/*399911*/ OPC_CheckType, MVT::i32, ++/*399913*/ OPC_MoveParent, ++/*399914*/ OPC_MoveChild, 13, ++/*399916*/ OPC_CheckInteger, 1, ++/*399918*/ OPC_CheckType, MVT::i32, ++/*399920*/ OPC_MoveParent, ++/*399921*/ OPC_MoveChild, 14, ++/*399923*/ OPC_CheckInteger, 1, ++/*399925*/ OPC_CheckType, MVT::i32, ++/*399927*/ OPC_MoveParent, ++/*399928*/ OPC_MoveChild, 15, ++/*399930*/ OPC_CheckInteger, 1, ++/*399932*/ OPC_CheckType, MVT::i32, ++/*399934*/ OPC_MoveParent, ++/*399935*/ OPC_MoveParent, ++/*399936*/ OPC_MoveParent, ++/*399937*/ OPC_MoveParent, ++/*399938*/ OPC_MoveParent, ++/*399939*/ OPC_MoveChild1, ++/*399940*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*399943*/ OPC_CheckChild0Integer, 1, ++/*399945*/ OPC_CheckChild0Type, MVT::i32, ++/*399947*/ OPC_CheckChild1Integer, 1, ++/*399949*/ OPC_CheckChild1Type, MVT::i32, ++/*399951*/ OPC_CheckChild2Integer, 1, ++/*399953*/ OPC_CheckChild2Type, MVT::i32, ++/*399955*/ OPC_CheckChild3Integer, 1, ++/*399957*/ OPC_CheckChild3Type, MVT::i32, ++/*399959*/ OPC_CheckChild4Integer, 1, ++/*399961*/ OPC_CheckChild4Type, MVT::i32, ++/*399963*/ OPC_MoveChild5, ++/*399964*/ OPC_CheckInteger, 1, ++/*399966*/ OPC_CheckType, MVT::i32, ++/*399968*/ OPC_MoveParent, ++/*399969*/ OPC_MoveChild6, ++/*399970*/ OPC_CheckInteger, 1, ++/*399972*/ OPC_CheckType, MVT::i32, ++/*399974*/ OPC_MoveParent, ++/*399975*/ OPC_MoveChild7, ++/*399976*/ OPC_CheckInteger, 1, ++/*399978*/ OPC_CheckType, MVT::i32, ++/*399980*/ OPC_MoveParent, ++/*399981*/ OPC_MoveChild, 8, ++/*399983*/ OPC_CheckInteger, 1, ++/*399985*/ OPC_CheckType, MVT::i32, ++/*399987*/ OPC_MoveParent, ++/*399988*/ OPC_MoveChild, 9, ++/*399990*/ OPC_CheckInteger, 1, ++/*399992*/ OPC_CheckType, MVT::i32, ++/*399994*/ OPC_MoveParent, ++/*399995*/ OPC_MoveChild, 10, ++/*399997*/ OPC_CheckInteger, 1, ++/*399999*/ OPC_CheckType, MVT::i32, ++/*400001*/ OPC_MoveParent, ++/*400002*/ OPC_MoveChild, 11, ++/*400004*/ OPC_CheckInteger, 1, ++/*400006*/ OPC_CheckType, MVT::i32, ++/*400008*/ OPC_MoveParent, ++/*400009*/ OPC_MoveChild, 12, ++/*400011*/ OPC_CheckInteger, 1, ++/*400013*/ OPC_CheckType, MVT::i32, ++/*400015*/ OPC_MoveParent, ++/*400016*/ OPC_MoveChild, 13, ++/*400018*/ OPC_CheckInteger, 1, ++/*400020*/ OPC_CheckType, MVT::i32, ++/*400022*/ OPC_MoveParent, ++/*400023*/ OPC_MoveChild, 14, ++/*400025*/ OPC_CheckInteger, 1, ++/*400027*/ OPC_CheckType, MVT::i32, ++/*400029*/ OPC_MoveParent, ++/*400030*/ OPC_MoveChild, 15, ++/*400032*/ OPC_CheckInteger, 1, ++/*400034*/ OPC_CheckType, MVT::i32, ++/*400036*/ OPC_MoveParent, ++/*400037*/ OPC_CheckType, MVT::v16i16, ++/*400039*/ OPC_MoveParent, ++/*400040*/ OPC_CheckType, MVT::v16i16, ++/*400042*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*400044*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*400052*/ 0, /*End of Scope*/ ++/*400053*/ /*Scope*/ 62|128,3/*446*/, /*->400501*/ ++/*400055*/ OPC_CheckChild0Same, 0, ++/*400057*/ OPC_MoveChild1, ++/*400058*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*400061*/ OPC_Scope, 89|128,1/*217*/, /*->400281*/ // 2 children in Scope ++/*400064*/ OPC_MoveChild0, ++/*400065*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*400068*/ OPC_CheckChild0Integer, 1, ++/*400070*/ OPC_CheckChild0Type, MVT::i32, ++/*400072*/ OPC_CheckChild1Integer, 1, ++/*400074*/ OPC_CheckChild1Type, MVT::i32, ++/*400076*/ OPC_CheckChild2Integer, 1, ++/*400078*/ OPC_CheckChild2Type, MVT::i32, ++/*400080*/ OPC_CheckChild3Integer, 1, ++/*400082*/ OPC_CheckChild3Type, MVT::i32, ++/*400084*/ OPC_CheckChild4Integer, 1, ++/*400086*/ OPC_CheckChild4Type, MVT::i32, ++/*400088*/ OPC_MoveChild5, ++/*400089*/ OPC_CheckInteger, 1, ++/*400091*/ OPC_CheckType, MVT::i32, ++/*400093*/ OPC_MoveParent, ++/*400094*/ OPC_MoveChild6, ++/*400095*/ OPC_CheckInteger, 1, ++/*400097*/ OPC_CheckType, MVT::i32, ++/*400099*/ OPC_MoveParent, ++/*400100*/ OPC_MoveChild7, ++/*400101*/ OPC_CheckInteger, 1, ++/*400103*/ OPC_CheckType, MVT::i32, ++/*400105*/ OPC_MoveParent, ++/*400106*/ OPC_MoveChild, 8, ++/*400108*/ OPC_CheckInteger, 1, ++/*400110*/ OPC_CheckType, MVT::i32, ++/*400112*/ OPC_MoveParent, ++/*400113*/ OPC_MoveChild, 9, ++/*400115*/ OPC_CheckInteger, 1, ++/*400117*/ OPC_CheckType, MVT::i32, ++/*400119*/ OPC_MoveParent, ++/*400120*/ OPC_MoveChild, 10, ++/*400122*/ OPC_CheckInteger, 1, ++/*400124*/ OPC_CheckType, MVT::i32, ++/*400126*/ OPC_MoveParent, ++/*400127*/ OPC_MoveChild, 11, ++/*400129*/ OPC_CheckInteger, 1, ++/*400131*/ OPC_CheckType, MVT::i32, ++/*400133*/ OPC_MoveParent, ++/*400134*/ OPC_MoveChild, 12, ++/*400136*/ OPC_CheckInteger, 1, ++/*400138*/ OPC_CheckType, MVT::i32, ++/*400140*/ OPC_MoveParent, ++/*400141*/ OPC_MoveChild, 13, ++/*400143*/ OPC_CheckInteger, 1, ++/*400145*/ OPC_CheckType, MVT::i32, ++/*400147*/ OPC_MoveParent, ++/*400148*/ OPC_MoveChild, 14, ++/*400150*/ OPC_CheckInteger, 1, ++/*400152*/ OPC_CheckType, MVT::i32, ++/*400154*/ OPC_MoveParent, ++/*400155*/ OPC_MoveChild, 15, ++/*400157*/ OPC_CheckInteger, 1, ++/*400159*/ OPC_CheckType, MVT::i32, ++/*400161*/ OPC_MoveParent, ++/*400162*/ OPC_MoveParent, ++/*400163*/ OPC_CheckChild1Same, 1, ++/*400165*/ OPC_MoveParent, ++/*400166*/ OPC_MoveParent, ++/*400167*/ OPC_MoveParent, ++/*400168*/ OPC_MoveChild1, ++/*400169*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*400172*/ OPC_CheckChild0Integer, 1, ++/*400174*/ OPC_CheckChild0Type, MVT::i32, ++/*400176*/ OPC_CheckChild1Integer, 1, ++/*400178*/ OPC_CheckChild1Type, MVT::i32, ++/*400180*/ OPC_CheckChild2Integer, 1, ++/*400182*/ OPC_CheckChild2Type, MVT::i32, ++/*400184*/ OPC_CheckChild3Integer, 1, ++/*400186*/ OPC_CheckChild3Type, MVT::i32, ++/*400188*/ OPC_CheckChild4Integer, 1, ++/*400190*/ OPC_CheckChild4Type, MVT::i32, ++/*400192*/ OPC_MoveChild5, ++/*400193*/ OPC_CheckInteger, 1, ++/*400195*/ OPC_CheckType, MVT::i32, ++/*400197*/ OPC_MoveParent, ++/*400198*/ OPC_MoveChild6, ++/*400199*/ OPC_CheckInteger, 1, ++/*400201*/ OPC_CheckType, MVT::i32, ++/*400203*/ OPC_MoveParent, ++/*400204*/ OPC_MoveChild7, ++/*400205*/ OPC_CheckInteger, 1, ++/*400207*/ OPC_CheckType, MVT::i32, ++/*400209*/ OPC_MoveParent, ++/*400210*/ OPC_MoveChild, 8, ++/*400212*/ OPC_CheckInteger, 1, ++/*400214*/ OPC_CheckType, MVT::i32, ++/*400216*/ OPC_MoveParent, ++/*400217*/ OPC_MoveChild, 9, ++/*400219*/ OPC_CheckInteger, 1, ++/*400221*/ OPC_CheckType, MVT::i32, ++/*400223*/ OPC_MoveParent, ++/*400224*/ OPC_MoveChild, 10, ++/*400226*/ OPC_CheckInteger, 1, ++/*400228*/ OPC_CheckType, MVT::i32, ++/*400230*/ OPC_MoveParent, ++/*400231*/ OPC_MoveChild, 11, ++/*400233*/ OPC_CheckInteger, 1, ++/*400235*/ OPC_CheckType, MVT::i32, ++/*400237*/ OPC_MoveParent, ++/*400238*/ OPC_MoveChild, 12, ++/*400240*/ OPC_CheckInteger, 1, ++/*400242*/ OPC_CheckType, MVT::i32, ++/*400244*/ OPC_MoveParent, ++/*400245*/ OPC_MoveChild, 13, ++/*400247*/ OPC_CheckInteger, 1, ++/*400249*/ OPC_CheckType, MVT::i32, ++/*400251*/ OPC_MoveParent, ++/*400252*/ OPC_MoveChild, 14, ++/*400254*/ OPC_CheckInteger, 1, ++/*400256*/ OPC_CheckType, MVT::i32, ++/*400258*/ OPC_MoveParent, ++/*400259*/ OPC_MoveChild, 15, ++/*400261*/ OPC_CheckInteger, 1, ++/*400263*/ OPC_CheckType, MVT::i32, ++/*400265*/ OPC_MoveParent, ++/*400266*/ OPC_CheckType, MVT::v16i16, ++/*400268*/ OPC_MoveParent, ++/*400269*/ OPC_CheckType, MVT::v16i16, ++/*400271*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*400273*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*400281*/ /*Scope*/ 89|128,1/*217*/, /*->400500*/ ++/*400283*/ OPC_CheckChild0Same, 1, ++/*400285*/ OPC_MoveChild1, ++/*400286*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*400289*/ OPC_CheckChild0Integer, 1, ++/*400291*/ OPC_CheckChild0Type, MVT::i32, ++/*400293*/ OPC_CheckChild1Integer, 1, ++/*400295*/ OPC_CheckChild1Type, MVT::i32, ++/*400297*/ OPC_CheckChild2Integer, 1, ++/*400299*/ OPC_CheckChild2Type, MVT::i32, ++/*400301*/ OPC_CheckChild3Integer, 1, ++/*400303*/ OPC_CheckChild3Type, MVT::i32, ++/*400305*/ OPC_CheckChild4Integer, 1, ++/*400307*/ OPC_CheckChild4Type, MVT::i32, ++/*400309*/ OPC_MoveChild5, ++/*400310*/ OPC_CheckInteger, 1, ++/*400312*/ OPC_CheckType, MVT::i32, ++/*400314*/ OPC_MoveParent, ++/*400315*/ OPC_MoveChild6, ++/*400316*/ OPC_CheckInteger, 1, ++/*400318*/ OPC_CheckType, MVT::i32, ++/*400320*/ OPC_MoveParent, ++/*400321*/ OPC_MoveChild7, ++/*400322*/ OPC_CheckInteger, 1, ++/*400324*/ OPC_CheckType, MVT::i32, ++/*400326*/ OPC_MoveParent, ++/*400327*/ OPC_MoveChild, 8, ++/*400329*/ OPC_CheckInteger, 1, ++/*400331*/ OPC_CheckType, MVT::i32, ++/*400333*/ OPC_MoveParent, ++/*400334*/ OPC_MoveChild, 9, ++/*400336*/ OPC_CheckInteger, 1, ++/*400338*/ OPC_CheckType, MVT::i32, ++/*400340*/ OPC_MoveParent, ++/*400341*/ OPC_MoveChild, 10, ++/*400343*/ OPC_CheckInteger, 1, ++/*400345*/ OPC_CheckType, MVT::i32, ++/*400347*/ OPC_MoveParent, ++/*400348*/ OPC_MoveChild, 11, ++/*400350*/ OPC_CheckInteger, 1, ++/*400352*/ OPC_CheckType, MVT::i32, ++/*400354*/ OPC_MoveParent, ++/*400355*/ OPC_MoveChild, 12, ++/*400357*/ OPC_CheckInteger, 1, ++/*400359*/ OPC_CheckType, MVT::i32, ++/*400361*/ OPC_MoveParent, ++/*400362*/ OPC_MoveChild, 13, ++/*400364*/ OPC_CheckInteger, 1, ++/*400366*/ OPC_CheckType, MVT::i32, ++/*400368*/ OPC_MoveParent, ++/*400369*/ OPC_MoveChild, 14, ++/*400371*/ OPC_CheckInteger, 1, ++/*400373*/ OPC_CheckType, MVT::i32, ++/*400375*/ OPC_MoveParent, ++/*400376*/ OPC_MoveChild, 15, ++/*400378*/ OPC_CheckInteger, 1, ++/*400380*/ OPC_CheckType, MVT::i32, ++/*400382*/ OPC_MoveParent, ++/*400383*/ OPC_MoveParent, ++/*400384*/ OPC_MoveParent, ++/*400385*/ OPC_MoveParent, ++/*400386*/ OPC_MoveParent, ++/*400387*/ OPC_MoveChild1, ++/*400388*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*400391*/ OPC_CheckChild0Integer, 1, ++/*400393*/ OPC_CheckChild0Type, MVT::i32, ++/*400395*/ OPC_CheckChild1Integer, 1, ++/*400397*/ OPC_CheckChild1Type, MVT::i32, ++/*400399*/ OPC_CheckChild2Integer, 1, ++/*400401*/ OPC_CheckChild2Type, MVT::i32, ++/*400403*/ OPC_CheckChild3Integer, 1, ++/*400405*/ OPC_CheckChild3Type, MVT::i32, ++/*400407*/ OPC_CheckChild4Integer, 1, ++/*400409*/ OPC_CheckChild4Type, MVT::i32, ++/*400411*/ OPC_MoveChild5, ++/*400412*/ OPC_CheckInteger, 1, ++/*400414*/ OPC_CheckType, MVT::i32, ++/*400416*/ OPC_MoveParent, ++/*400417*/ OPC_MoveChild6, ++/*400418*/ OPC_CheckInteger, 1, ++/*400420*/ OPC_CheckType, MVT::i32, ++/*400422*/ OPC_MoveParent, ++/*400423*/ OPC_MoveChild7, ++/*400424*/ OPC_CheckInteger, 1, ++/*400426*/ OPC_CheckType, MVT::i32, ++/*400428*/ OPC_MoveParent, ++/*400429*/ OPC_MoveChild, 8, ++/*400431*/ OPC_CheckInteger, 1, ++/*400433*/ OPC_CheckType, MVT::i32, ++/*400435*/ OPC_MoveParent, ++/*400436*/ OPC_MoveChild, 9, ++/*400438*/ OPC_CheckInteger, 1, ++/*400440*/ OPC_CheckType, MVT::i32, ++/*400442*/ OPC_MoveParent, ++/*400443*/ OPC_MoveChild, 10, ++/*400445*/ OPC_CheckInteger, 1, ++/*400447*/ OPC_CheckType, MVT::i32, ++/*400449*/ OPC_MoveParent, ++/*400450*/ OPC_MoveChild, 11, ++/*400452*/ OPC_CheckInteger, 1, ++/*400454*/ OPC_CheckType, MVT::i32, ++/*400456*/ OPC_MoveParent, ++/*400457*/ OPC_MoveChild, 12, ++/*400459*/ OPC_CheckInteger, 1, ++/*400461*/ OPC_CheckType, MVT::i32, ++/*400463*/ OPC_MoveParent, ++/*400464*/ OPC_MoveChild, 13, ++/*400466*/ OPC_CheckInteger, 1, ++/*400468*/ OPC_CheckType, MVT::i32, ++/*400470*/ OPC_MoveParent, ++/*400471*/ OPC_MoveChild, 14, ++/*400473*/ OPC_CheckInteger, 1, ++/*400475*/ OPC_CheckType, MVT::i32, ++/*400477*/ OPC_MoveParent, ++/*400478*/ OPC_MoveChild, 15, ++/*400480*/ OPC_CheckInteger, 1, ++/*400482*/ OPC_CheckType, MVT::i32, ++/*400484*/ OPC_MoveParent, ++/*400485*/ OPC_CheckType, MVT::v16i16, ++/*400487*/ OPC_MoveParent, ++/*400488*/ OPC_CheckType, MVT::v16i16, ++/*400490*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*400492*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*400500*/ 0, /*End of Scope*/ ++/*400501*/ /*Scope*/ 91|128,2/*347*/, /*->400850*/ ++/*400503*/ OPC_MoveChild0, ++/*400504*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*400507*/ OPC_CheckChild0Integer, 1, ++/*400509*/ OPC_CheckChild0Type, MVT::i32, ++/*400511*/ OPC_CheckChild1Integer, 1, ++/*400513*/ OPC_CheckChild1Type, MVT::i32, ++/*400515*/ OPC_CheckChild2Integer, 1, ++/*400517*/ OPC_CheckChild2Type, MVT::i32, ++/*400519*/ OPC_CheckChild3Integer, 1, ++/*400521*/ OPC_CheckChild3Type, MVT::i32, ++/*400523*/ OPC_CheckChild4Integer, 1, ++/*400525*/ OPC_CheckChild4Type, MVT::i32, ++/*400527*/ OPC_MoveChild5, ++/*400528*/ OPC_CheckInteger, 1, ++/*400530*/ OPC_CheckType, MVT::i32, ++/*400532*/ OPC_MoveParent, ++/*400533*/ OPC_MoveChild6, ++/*400534*/ OPC_CheckInteger, 1, ++/*400536*/ OPC_CheckType, MVT::i32, ++/*400538*/ OPC_MoveParent, ++/*400539*/ OPC_MoveChild7, ++/*400540*/ OPC_CheckInteger, 1, ++/*400542*/ OPC_CheckType, MVT::i32, ++/*400544*/ OPC_MoveParent, ++/*400545*/ OPC_MoveChild, 8, ++/*400547*/ OPC_CheckInteger, 1, ++/*400549*/ OPC_CheckType, MVT::i32, ++/*400551*/ OPC_MoveParent, ++/*400552*/ OPC_MoveChild, 9, ++/*400554*/ OPC_CheckInteger, 1, ++/*400556*/ OPC_CheckType, MVT::i32, ++/*400558*/ OPC_MoveParent, ++/*400559*/ OPC_MoveChild, 10, ++/*400561*/ OPC_CheckInteger, 1, ++/*400563*/ OPC_CheckType, MVT::i32, ++/*400565*/ OPC_MoveParent, ++/*400566*/ OPC_MoveChild, 11, ++/*400568*/ OPC_CheckInteger, 1, ++/*400570*/ OPC_CheckType, MVT::i32, ++/*400572*/ OPC_MoveParent, ++/*400573*/ OPC_MoveChild, 12, ++/*400575*/ OPC_CheckInteger, 1, ++/*400577*/ OPC_CheckType, MVT::i32, ++/*400579*/ OPC_MoveParent, ++/*400580*/ OPC_MoveChild, 13, ++/*400582*/ OPC_CheckInteger, 1, ++/*400584*/ OPC_CheckType, MVT::i32, ++/*400586*/ OPC_MoveParent, ++/*400587*/ OPC_MoveChild, 14, ++/*400589*/ OPC_CheckInteger, 1, ++/*400591*/ OPC_CheckType, MVT::i32, ++/*400593*/ OPC_MoveParent, ++/*400594*/ OPC_MoveChild, 15, ++/*400596*/ OPC_CheckInteger, 1, ++/*400598*/ OPC_CheckType, MVT::i32, ++/*400600*/ OPC_MoveParent, ++/*400601*/ OPC_MoveParent, ++/*400602*/ OPC_MoveChild1, ++/*400603*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*400606*/ OPC_Scope, 120, /*->400728*/ // 2 children in Scope ++/*400608*/ OPC_CheckChild0Same, 0, ++/*400610*/ OPC_CheckChild1Same, 1, ++/*400612*/ OPC_MoveParent, ++/*400613*/ OPC_MoveParent, ++/*400614*/ OPC_MoveParent, ++/*400615*/ OPC_MoveChild1, ++/*400616*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*400619*/ OPC_CheckChild0Integer, 1, ++/*400621*/ OPC_CheckChild0Type, MVT::i32, ++/*400623*/ OPC_CheckChild1Integer, 1, ++/*400625*/ OPC_CheckChild1Type, MVT::i32, ++/*400627*/ OPC_CheckChild2Integer, 1, ++/*400629*/ OPC_CheckChild2Type, MVT::i32, ++/*400631*/ OPC_CheckChild3Integer, 1, ++/*400633*/ OPC_CheckChild3Type, MVT::i32, ++/*400635*/ OPC_CheckChild4Integer, 1, ++/*400637*/ OPC_CheckChild4Type, MVT::i32, ++/*400639*/ OPC_MoveChild5, ++/*400640*/ OPC_CheckInteger, 1, ++/*400642*/ OPC_CheckType, MVT::i32, ++/*400644*/ OPC_MoveParent, ++/*400645*/ OPC_MoveChild6, ++/*400646*/ OPC_CheckInteger, 1, ++/*400648*/ OPC_CheckType, MVT::i32, ++/*400650*/ OPC_MoveParent, ++/*400651*/ OPC_MoveChild7, ++/*400652*/ OPC_CheckInteger, 1, ++/*400654*/ OPC_CheckType, MVT::i32, ++/*400656*/ OPC_MoveParent, ++/*400657*/ OPC_MoveChild, 8, ++/*400659*/ OPC_CheckInteger, 1, ++/*400661*/ OPC_CheckType, MVT::i32, ++/*400663*/ OPC_MoveParent, ++/*400664*/ OPC_MoveChild, 9, ++/*400666*/ OPC_CheckInteger, 1, ++/*400668*/ OPC_CheckType, MVT::i32, ++/*400670*/ OPC_MoveParent, ++/*400671*/ OPC_MoveChild, 10, ++/*400673*/ OPC_CheckInteger, 1, ++/*400675*/ OPC_CheckType, MVT::i32, ++/*400677*/ OPC_MoveParent, ++/*400678*/ OPC_MoveChild, 11, ++/*400680*/ OPC_CheckInteger, 1, ++/*400682*/ OPC_CheckType, MVT::i32, ++/*400684*/ OPC_MoveParent, ++/*400685*/ OPC_MoveChild, 12, ++/*400687*/ OPC_CheckInteger, 1, ++/*400689*/ OPC_CheckType, MVT::i32, ++/*400691*/ OPC_MoveParent, ++/*400692*/ OPC_MoveChild, 13, ++/*400694*/ OPC_CheckInteger, 1, ++/*400696*/ OPC_CheckType, MVT::i32, ++/*400698*/ OPC_MoveParent, ++/*400699*/ OPC_MoveChild, 14, ++/*400701*/ OPC_CheckInteger, 1, ++/*400703*/ OPC_CheckType, MVT::i32, ++/*400705*/ OPC_MoveParent, ++/*400706*/ OPC_MoveChild, 15, ++/*400708*/ OPC_CheckInteger, 1, ++/*400710*/ OPC_CheckType, MVT::i32, ++/*400712*/ OPC_MoveParent, ++/*400713*/ OPC_CheckType, MVT::v16i16, ++/*400715*/ OPC_MoveParent, ++/*400716*/ OPC_CheckType, MVT::v16i16, ++/*400718*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*400720*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*400728*/ /*Scope*/ 120, /*->400849*/ ++/*400729*/ OPC_CheckChild0Same, 1, ++/*400731*/ OPC_CheckChild1Same, 0, ++/*400733*/ OPC_MoveParent, ++/*400734*/ OPC_MoveParent, ++/*400735*/ OPC_MoveParent, ++/*400736*/ OPC_MoveChild1, ++/*400737*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*400740*/ OPC_CheckChild0Integer, 1, ++/*400742*/ OPC_CheckChild0Type, MVT::i32, ++/*400744*/ OPC_CheckChild1Integer, 1, ++/*400746*/ OPC_CheckChild1Type, MVT::i32, ++/*400748*/ OPC_CheckChild2Integer, 1, ++/*400750*/ OPC_CheckChild2Type, MVT::i32, ++/*400752*/ OPC_CheckChild3Integer, 1, ++/*400754*/ OPC_CheckChild3Type, MVT::i32, ++/*400756*/ OPC_CheckChild4Integer, 1, ++/*400758*/ OPC_CheckChild4Type, MVT::i32, ++/*400760*/ OPC_MoveChild5, ++/*400761*/ OPC_CheckInteger, 1, ++/*400763*/ OPC_CheckType, MVT::i32, ++/*400765*/ OPC_MoveParent, ++/*400766*/ OPC_MoveChild6, ++/*400767*/ OPC_CheckInteger, 1, ++/*400769*/ OPC_CheckType, MVT::i32, ++/*400771*/ OPC_MoveParent, ++/*400772*/ OPC_MoveChild7, ++/*400773*/ OPC_CheckInteger, 1, ++/*400775*/ OPC_CheckType, MVT::i32, ++/*400777*/ OPC_MoveParent, ++/*400778*/ OPC_MoveChild, 8, ++/*400780*/ OPC_CheckInteger, 1, ++/*400782*/ OPC_CheckType, MVT::i32, ++/*400784*/ OPC_MoveParent, ++/*400785*/ OPC_MoveChild, 9, ++/*400787*/ OPC_CheckInteger, 1, ++/*400789*/ OPC_CheckType, MVT::i32, ++/*400791*/ OPC_MoveParent, ++/*400792*/ OPC_MoveChild, 10, ++/*400794*/ OPC_CheckInteger, 1, ++/*400796*/ OPC_CheckType, MVT::i32, ++/*400798*/ OPC_MoveParent, ++/*400799*/ OPC_MoveChild, 11, ++/*400801*/ OPC_CheckInteger, 1, ++/*400803*/ OPC_CheckType, MVT::i32, ++/*400805*/ OPC_MoveParent, ++/*400806*/ OPC_MoveChild, 12, ++/*400808*/ OPC_CheckInteger, 1, ++/*400810*/ OPC_CheckType, MVT::i32, ++/*400812*/ OPC_MoveParent, ++/*400813*/ OPC_MoveChild, 13, ++/*400815*/ OPC_CheckInteger, 1, ++/*400817*/ OPC_CheckType, MVT::i32, ++/*400819*/ OPC_MoveParent, ++/*400820*/ OPC_MoveChild, 14, ++/*400822*/ OPC_CheckInteger, 1, ++/*400824*/ OPC_CheckType, MVT::i32, ++/*400826*/ OPC_MoveParent, ++/*400827*/ OPC_MoveChild, 15, ++/*400829*/ OPC_CheckInteger, 1, ++/*400831*/ OPC_CheckType, MVT::i32, ++/*400833*/ OPC_MoveParent, ++/*400834*/ OPC_CheckType, MVT::v16i16, ++/*400836*/ OPC_MoveParent, ++/*400837*/ OPC_CheckType, MVT::v16i16, ++/*400839*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*400841*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*400849*/ 0, /*End of Scope*/ ++/*400850*/ 0, /*End of Scope*/ ++/*400851*/ 0, /*End of Scope*/ ++/*400852*/ /*Scope*/ 126|128,41/*5374*/, /*->406228*/ ++/*400854*/ OPC_MoveChild0, ++/*400855*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*400858*/ OPC_CheckChild0Integer, 1, ++/*400860*/ OPC_CheckChild0Type, MVT::i32, ++/*400862*/ OPC_CheckChild1Integer, 1, ++/*400864*/ OPC_CheckChild1Type, MVT::i32, ++/*400866*/ OPC_CheckChild2Integer, 1, ++/*400868*/ OPC_CheckChild2Type, MVT::i32, ++/*400870*/ OPC_CheckChild3Integer, 1, ++/*400872*/ OPC_CheckChild3Type, MVT::i32, ++/*400874*/ OPC_CheckChild4Integer, 1, ++/*400876*/ OPC_CheckChild4Type, MVT::i32, ++/*400878*/ OPC_MoveChild5, ++/*400879*/ OPC_CheckInteger, 1, ++/*400881*/ OPC_CheckType, MVT::i32, ++/*400883*/ OPC_MoveParent, ++/*400884*/ OPC_MoveChild6, ++/*400885*/ OPC_CheckInteger, 1, ++/*400887*/ OPC_CheckType, MVT::i32, ++/*400889*/ OPC_MoveParent, ++/*400890*/ OPC_MoveChild7, ++/*400891*/ OPC_CheckInteger, 1, ++/*400893*/ OPC_CheckType, MVT::i32, ++/*400895*/ OPC_MoveParent, ++/*400896*/ OPC_MoveChild, 8, ++/*400898*/ OPC_CheckInteger, 1, ++/*400900*/ OPC_CheckType, MVT::i32, ++/*400902*/ OPC_MoveParent, ++/*400903*/ OPC_MoveChild, 9, ++/*400905*/ OPC_CheckInteger, 1, ++/*400907*/ OPC_CheckType, MVT::i32, ++/*400909*/ OPC_MoveParent, ++/*400910*/ OPC_MoveChild, 10, ++/*400912*/ OPC_CheckInteger, 1, ++/*400914*/ OPC_CheckType, MVT::i32, ++/*400916*/ OPC_MoveParent, ++/*400917*/ OPC_MoveChild, 11, ++/*400919*/ OPC_CheckInteger, 1, ++/*400921*/ OPC_CheckType, MVT::i32, ++/*400923*/ OPC_MoveParent, ++/*400924*/ OPC_MoveChild, 12, ++/*400926*/ OPC_CheckInteger, 1, ++/*400928*/ OPC_CheckType, MVT::i32, ++/*400930*/ OPC_MoveParent, ++/*400931*/ OPC_MoveChild, 13, ++/*400933*/ OPC_CheckInteger, 1, ++/*400935*/ OPC_CheckType, MVT::i32, ++/*400937*/ OPC_MoveParent, ++/*400938*/ OPC_MoveChild, 14, ++/*400940*/ OPC_CheckInteger, 1, ++/*400942*/ OPC_CheckType, MVT::i32, ++/*400944*/ OPC_MoveParent, ++/*400945*/ OPC_MoveChild, 15, ++/*400947*/ OPC_CheckInteger, 1, ++/*400949*/ OPC_CheckType, MVT::i32, ++/*400951*/ OPC_MoveParent, ++/*400952*/ OPC_MoveParent, ++/*400953*/ OPC_MoveChild1, ++/*400954*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*400957*/ OPC_RecordChild0, // #0 = $a ++/*400958*/ OPC_RecordChild1, // #1 = $b ++/*400959*/ OPC_MoveParent, ++/*400960*/ OPC_MoveParent, ++/*400961*/ OPC_MoveChild1, ++/*400962*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*400965*/ OPC_CheckChild0Integer, 15, ++/*400967*/ OPC_CheckChild0Type, MVT::i32, ++/*400969*/ OPC_CheckChild1Integer, 15, ++/*400971*/ OPC_CheckChild1Type, MVT::i32, ++/*400973*/ OPC_CheckChild2Integer, 15, ++/*400975*/ OPC_CheckChild2Type, MVT::i32, ++/*400977*/ OPC_CheckChild3Integer, 15, ++/*400979*/ OPC_CheckChild3Type, MVT::i32, ++/*400981*/ OPC_CheckChild4Integer, 15, ++/*400983*/ OPC_CheckChild4Type, MVT::i32, ++/*400985*/ OPC_MoveChild5, ++/*400986*/ OPC_CheckInteger, 15, ++/*400988*/ OPC_CheckType, MVT::i32, ++/*400990*/ OPC_MoveParent, ++/*400991*/ OPC_MoveChild6, ++/*400992*/ OPC_CheckInteger, 15, ++/*400994*/ OPC_CheckType, MVT::i32, ++/*400996*/ OPC_MoveParent, ++/*400997*/ OPC_MoveChild7, ++/*400998*/ OPC_CheckInteger, 15, ++/*401000*/ OPC_CheckType, MVT::i32, ++/*401002*/ OPC_MoveParent, ++/*401003*/ OPC_MoveChild, 8, ++/*401005*/ OPC_CheckInteger, 15, ++/*401007*/ OPC_CheckType, MVT::i32, ++/*401009*/ OPC_MoveParent, ++/*401010*/ OPC_MoveChild, 9, ++/*401012*/ OPC_CheckInteger, 15, ++/*401014*/ OPC_CheckType, MVT::i32, ++/*401016*/ OPC_MoveParent, ++/*401017*/ OPC_MoveChild, 10, ++/*401019*/ OPC_CheckInteger, 15, ++/*401021*/ OPC_CheckType, MVT::i32, ++/*401023*/ OPC_MoveParent, ++/*401024*/ OPC_MoveChild, 11, ++/*401026*/ OPC_CheckInteger, 15, ++/*401028*/ OPC_CheckType, MVT::i32, ++/*401030*/ OPC_MoveParent, ++/*401031*/ OPC_MoveChild, 12, ++/*401033*/ OPC_CheckInteger, 15, ++/*401035*/ OPC_CheckType, MVT::i32, ++/*401037*/ OPC_MoveParent, ++/*401038*/ OPC_MoveChild, 13, ++/*401040*/ OPC_CheckInteger, 15, ++/*401042*/ OPC_CheckType, MVT::i32, ++/*401044*/ OPC_MoveParent, ++/*401045*/ OPC_MoveChild, 14, ++/*401047*/ OPC_CheckInteger, 15, ++/*401049*/ OPC_CheckType, MVT::i32, ++/*401051*/ OPC_MoveParent, ++/*401052*/ OPC_MoveChild, 15, ++/*401054*/ OPC_CheckInteger, 15, ++/*401056*/ OPC_CheckType, MVT::i32, ++/*401058*/ OPC_MoveParent, ++/*401059*/ OPC_CheckType, MVT::v16i16, ++/*401061*/ OPC_MoveParent, ++/*401062*/ OPC_MoveParent, ++/*401063*/ OPC_MoveChild1, ++/*401064*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*401067*/ OPC_Scope, 52|128,10/*1332*/, /*->402402*/ // 7 children in Scope ++/*401070*/ OPC_MoveChild0, ++/*401071*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*401074*/ OPC_Scope, 91|128,1/*219*/, /*->401296*/ // 6 children in Scope ++/*401077*/ OPC_MoveChild0, ++/*401078*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*401081*/ OPC_CheckChild0Integer, 1, ++/*401083*/ OPC_CheckChild0Type, MVT::i32, ++/*401085*/ OPC_CheckChild1Integer, 1, ++/*401087*/ OPC_CheckChild1Type, MVT::i32, ++/*401089*/ OPC_CheckChild2Integer, 1, ++/*401091*/ OPC_CheckChild2Type, MVT::i32, ++/*401093*/ OPC_CheckChild3Integer, 1, ++/*401095*/ OPC_CheckChild3Type, MVT::i32, ++/*401097*/ OPC_CheckChild4Integer, 1, ++/*401099*/ OPC_CheckChild4Type, MVT::i32, ++/*401101*/ OPC_MoveChild5, ++/*401102*/ OPC_CheckInteger, 1, ++/*401104*/ OPC_CheckType, MVT::i32, ++/*401106*/ OPC_MoveParent, ++/*401107*/ OPC_MoveChild6, ++/*401108*/ OPC_CheckInteger, 1, ++/*401110*/ OPC_CheckType, MVT::i32, ++/*401112*/ OPC_MoveParent, ++/*401113*/ OPC_MoveChild7, ++/*401114*/ OPC_CheckInteger, 1, ++/*401116*/ OPC_CheckType, MVT::i32, ++/*401118*/ OPC_MoveParent, ++/*401119*/ OPC_MoveChild, 8, ++/*401121*/ OPC_CheckInteger, 1, ++/*401123*/ OPC_CheckType, MVT::i32, ++/*401125*/ OPC_MoveParent, ++/*401126*/ OPC_MoveChild, 9, ++/*401128*/ OPC_CheckInteger, 1, ++/*401130*/ OPC_CheckType, MVT::i32, ++/*401132*/ OPC_MoveParent, ++/*401133*/ OPC_MoveChild, 10, ++/*401135*/ OPC_CheckInteger, 1, ++/*401137*/ OPC_CheckType, MVT::i32, ++/*401139*/ OPC_MoveParent, ++/*401140*/ OPC_MoveChild, 11, ++/*401142*/ OPC_CheckInteger, 1, ++/*401144*/ OPC_CheckType, MVT::i32, ++/*401146*/ OPC_MoveParent, ++/*401147*/ OPC_MoveChild, 12, ++/*401149*/ OPC_CheckInteger, 1, ++/*401151*/ OPC_CheckType, MVT::i32, ++/*401153*/ OPC_MoveParent, ++/*401154*/ OPC_MoveChild, 13, ++/*401156*/ OPC_CheckInteger, 1, ++/*401158*/ OPC_CheckType, MVT::i32, ++/*401160*/ OPC_MoveParent, ++/*401161*/ OPC_MoveChild, 14, ++/*401163*/ OPC_CheckInteger, 1, ++/*401165*/ OPC_CheckType, MVT::i32, ++/*401167*/ OPC_MoveParent, ++/*401168*/ OPC_MoveChild, 15, ++/*401170*/ OPC_CheckInteger, 1, ++/*401172*/ OPC_CheckType, MVT::i32, ++/*401174*/ OPC_MoveParent, ++/*401175*/ OPC_MoveParent, ++/*401176*/ OPC_CheckChild1Same, 0, ++/*401178*/ OPC_MoveParent, ++/*401179*/ OPC_CheckChild1Same, 1, ++/*401181*/ OPC_MoveParent, ++/*401182*/ OPC_MoveParent, ++/*401183*/ OPC_MoveChild1, ++/*401184*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*401187*/ OPC_CheckChild0Integer, 1, ++/*401189*/ OPC_CheckChild0Type, MVT::i32, ++/*401191*/ OPC_CheckChild1Integer, 1, ++/*401193*/ OPC_CheckChild1Type, MVT::i32, ++/*401195*/ OPC_CheckChild2Integer, 1, ++/*401197*/ OPC_CheckChild2Type, MVT::i32, ++/*401199*/ OPC_CheckChild3Integer, 1, ++/*401201*/ OPC_CheckChild3Type, MVT::i32, ++/*401203*/ OPC_CheckChild4Integer, 1, ++/*401205*/ OPC_CheckChild4Type, MVT::i32, ++/*401207*/ OPC_MoveChild5, ++/*401208*/ OPC_CheckInteger, 1, ++/*401210*/ OPC_CheckType, MVT::i32, ++/*401212*/ OPC_MoveParent, ++/*401213*/ OPC_MoveChild6, ++/*401214*/ OPC_CheckInteger, 1, ++/*401216*/ OPC_CheckType, MVT::i32, ++/*401218*/ OPC_MoveParent, ++/*401219*/ OPC_MoveChild7, ++/*401220*/ OPC_CheckInteger, 1, ++/*401222*/ OPC_CheckType, MVT::i32, ++/*401224*/ OPC_MoveParent, ++/*401225*/ OPC_MoveChild, 8, ++/*401227*/ OPC_CheckInteger, 1, ++/*401229*/ OPC_CheckType, MVT::i32, ++/*401231*/ OPC_MoveParent, ++/*401232*/ OPC_MoveChild, 9, ++/*401234*/ OPC_CheckInteger, 1, ++/*401236*/ OPC_CheckType, MVT::i32, ++/*401238*/ OPC_MoveParent, ++/*401239*/ OPC_MoveChild, 10, ++/*401241*/ OPC_CheckInteger, 1, ++/*401243*/ OPC_CheckType, MVT::i32, ++/*401245*/ OPC_MoveParent, ++/*401246*/ OPC_MoveChild, 11, ++/*401248*/ OPC_CheckInteger, 1, ++/*401250*/ OPC_CheckType, MVT::i32, ++/*401252*/ OPC_MoveParent, ++/*401253*/ OPC_MoveChild, 12, ++/*401255*/ OPC_CheckInteger, 1, ++/*401257*/ OPC_CheckType, MVT::i32, ++/*401259*/ OPC_MoveParent, ++/*401260*/ OPC_MoveChild, 13, ++/*401262*/ OPC_CheckInteger, 1, ++/*401264*/ OPC_CheckType, MVT::i32, ++/*401266*/ OPC_MoveParent, ++/*401267*/ OPC_MoveChild, 14, ++/*401269*/ OPC_CheckInteger, 1, ++/*401271*/ OPC_CheckType, MVT::i32, ++/*401273*/ OPC_MoveParent, ++/*401274*/ OPC_MoveChild, 15, ++/*401276*/ OPC_CheckInteger, 1, ++/*401278*/ OPC_CheckType, MVT::i32, ++/*401280*/ OPC_MoveParent, ++/*401281*/ OPC_CheckType, MVT::v16i16, ++/*401283*/ OPC_MoveParent, ++/*401284*/ OPC_CheckType, MVT::v16i16, ++/*401286*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*401288*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a), LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*401296*/ /*Scope*/ 91|128,1/*219*/, /*->401517*/ ++/*401298*/ OPC_CheckChild0Same, 0, ++/*401300*/ OPC_MoveChild1, ++/*401301*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*401304*/ OPC_CheckChild0Integer, 1, ++/*401306*/ OPC_CheckChild0Type, MVT::i32, ++/*401308*/ OPC_CheckChild1Integer, 1, ++/*401310*/ OPC_CheckChild1Type, MVT::i32, ++/*401312*/ OPC_CheckChild2Integer, 1, ++/*401314*/ OPC_CheckChild2Type, MVT::i32, ++/*401316*/ OPC_CheckChild3Integer, 1, ++/*401318*/ OPC_CheckChild3Type, MVT::i32, ++/*401320*/ OPC_CheckChild4Integer, 1, ++/*401322*/ OPC_CheckChild4Type, MVT::i32, ++/*401324*/ OPC_MoveChild5, ++/*401325*/ OPC_CheckInteger, 1, ++/*401327*/ OPC_CheckType, MVT::i32, ++/*401329*/ OPC_MoveParent, ++/*401330*/ OPC_MoveChild6, ++/*401331*/ OPC_CheckInteger, 1, ++/*401333*/ OPC_CheckType, MVT::i32, ++/*401335*/ OPC_MoveParent, ++/*401336*/ OPC_MoveChild7, ++/*401337*/ OPC_CheckInteger, 1, ++/*401339*/ OPC_CheckType, MVT::i32, ++/*401341*/ OPC_MoveParent, ++/*401342*/ OPC_MoveChild, 8, ++/*401344*/ OPC_CheckInteger, 1, ++/*401346*/ OPC_CheckType, MVT::i32, ++/*401348*/ OPC_MoveParent, ++/*401349*/ OPC_MoveChild, 9, ++/*401351*/ OPC_CheckInteger, 1, ++/*401353*/ OPC_CheckType, MVT::i32, ++/*401355*/ OPC_MoveParent, ++/*401356*/ OPC_MoveChild, 10, ++/*401358*/ OPC_CheckInteger, 1, ++/*401360*/ OPC_CheckType, MVT::i32, ++/*401362*/ OPC_MoveParent, ++/*401363*/ OPC_MoveChild, 11, ++/*401365*/ OPC_CheckInteger, 1, ++/*401367*/ OPC_CheckType, MVT::i32, ++/*401369*/ OPC_MoveParent, ++/*401370*/ OPC_MoveChild, 12, ++/*401372*/ OPC_CheckInteger, 1, ++/*401374*/ OPC_CheckType, MVT::i32, ++/*401376*/ OPC_MoveParent, ++/*401377*/ OPC_MoveChild, 13, ++/*401379*/ OPC_CheckInteger, 1, ++/*401381*/ OPC_CheckType, MVT::i32, ++/*401383*/ OPC_MoveParent, ++/*401384*/ OPC_MoveChild, 14, ++/*401386*/ OPC_CheckInteger, 1, ++/*401388*/ OPC_CheckType, MVT::i32, ++/*401390*/ OPC_MoveParent, ++/*401391*/ OPC_MoveChild, 15, ++/*401393*/ OPC_CheckInteger, 1, ++/*401395*/ OPC_CheckType, MVT::i32, ++/*401397*/ OPC_MoveParent, ++/*401398*/ OPC_MoveParent, ++/*401399*/ OPC_MoveParent, ++/*401400*/ OPC_CheckChild1Same, 1, ++/*401402*/ OPC_MoveParent, ++/*401403*/ OPC_MoveParent, ++/*401404*/ OPC_MoveChild1, ++/*401405*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*401408*/ OPC_CheckChild0Integer, 1, ++/*401410*/ OPC_CheckChild0Type, MVT::i32, ++/*401412*/ OPC_CheckChild1Integer, 1, ++/*401414*/ OPC_CheckChild1Type, MVT::i32, ++/*401416*/ OPC_CheckChild2Integer, 1, ++/*401418*/ OPC_CheckChild2Type, MVT::i32, ++/*401420*/ OPC_CheckChild3Integer, 1, ++/*401422*/ OPC_CheckChild3Type, MVT::i32, ++/*401424*/ OPC_CheckChild4Integer, 1, ++/*401426*/ OPC_CheckChild4Type, MVT::i32, ++/*401428*/ OPC_MoveChild5, ++/*401429*/ OPC_CheckInteger, 1, ++/*401431*/ OPC_CheckType, MVT::i32, ++/*401433*/ OPC_MoveParent, ++/*401434*/ OPC_MoveChild6, ++/*401435*/ OPC_CheckInteger, 1, ++/*401437*/ OPC_CheckType, MVT::i32, ++/*401439*/ OPC_MoveParent, ++/*401440*/ OPC_MoveChild7, ++/*401441*/ OPC_CheckInteger, 1, ++/*401443*/ OPC_CheckType, MVT::i32, ++/*401445*/ OPC_MoveParent, ++/*401446*/ OPC_MoveChild, 8, ++/*401448*/ OPC_CheckInteger, 1, ++/*401450*/ OPC_CheckType, MVT::i32, ++/*401452*/ OPC_MoveParent, ++/*401453*/ OPC_MoveChild, 9, ++/*401455*/ OPC_CheckInteger, 1, ++/*401457*/ OPC_CheckType, MVT::i32, ++/*401459*/ OPC_MoveParent, ++/*401460*/ OPC_MoveChild, 10, ++/*401462*/ OPC_CheckInteger, 1, ++/*401464*/ OPC_CheckType, MVT::i32, ++/*401466*/ OPC_MoveParent, ++/*401467*/ OPC_MoveChild, 11, ++/*401469*/ OPC_CheckInteger, 1, ++/*401471*/ OPC_CheckType, MVT::i32, ++/*401473*/ OPC_MoveParent, ++/*401474*/ OPC_MoveChild, 12, ++/*401476*/ OPC_CheckInteger, 1, ++/*401478*/ OPC_CheckType, MVT::i32, ++/*401480*/ OPC_MoveParent, ++/*401481*/ OPC_MoveChild, 13, ++/*401483*/ OPC_CheckInteger, 1, ++/*401485*/ OPC_CheckType, MVT::i32, ++/*401487*/ OPC_MoveParent, ++/*401488*/ OPC_MoveChild, 14, ++/*401490*/ OPC_CheckInteger, 1, ++/*401492*/ OPC_CheckType, MVT::i32, ++/*401494*/ OPC_MoveParent, ++/*401495*/ OPC_MoveChild, 15, ++/*401497*/ OPC_CheckInteger, 1, ++/*401499*/ OPC_CheckType, MVT::i32, ++/*401501*/ OPC_MoveParent, ++/*401502*/ OPC_CheckType, MVT::v16i16, ++/*401504*/ OPC_MoveParent, ++/*401505*/ OPC_CheckType, MVT::v16i16, ++/*401507*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*401509*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*401517*/ /*Scope*/ 91|128,1/*219*/, /*->401738*/ ++/*401519*/ OPC_MoveChild0, ++/*401520*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*401523*/ OPC_CheckChild0Integer, 1, ++/*401525*/ OPC_CheckChild0Type, MVT::i32, ++/*401527*/ OPC_CheckChild1Integer, 1, ++/*401529*/ OPC_CheckChild1Type, MVT::i32, ++/*401531*/ OPC_CheckChild2Integer, 1, ++/*401533*/ OPC_CheckChild2Type, MVT::i32, ++/*401535*/ OPC_CheckChild3Integer, 1, ++/*401537*/ OPC_CheckChild3Type, MVT::i32, ++/*401539*/ OPC_CheckChild4Integer, 1, ++/*401541*/ OPC_CheckChild4Type, MVT::i32, ++/*401543*/ OPC_MoveChild5, ++/*401544*/ OPC_CheckInteger, 1, ++/*401546*/ OPC_CheckType, MVT::i32, ++/*401548*/ OPC_MoveParent, ++/*401549*/ OPC_MoveChild6, ++/*401550*/ OPC_CheckInteger, 1, ++/*401552*/ OPC_CheckType, MVT::i32, ++/*401554*/ OPC_MoveParent, ++/*401555*/ OPC_MoveChild7, ++/*401556*/ OPC_CheckInteger, 1, ++/*401558*/ OPC_CheckType, MVT::i32, ++/*401560*/ OPC_MoveParent, ++/*401561*/ OPC_MoveChild, 8, ++/*401563*/ OPC_CheckInteger, 1, ++/*401565*/ OPC_CheckType, MVT::i32, ++/*401567*/ OPC_MoveParent, ++/*401568*/ OPC_MoveChild, 9, ++/*401570*/ OPC_CheckInteger, 1, ++/*401572*/ OPC_CheckType, MVT::i32, ++/*401574*/ OPC_MoveParent, ++/*401575*/ OPC_MoveChild, 10, ++/*401577*/ OPC_CheckInteger, 1, ++/*401579*/ OPC_CheckType, MVT::i32, ++/*401581*/ OPC_MoveParent, ++/*401582*/ OPC_MoveChild, 11, ++/*401584*/ OPC_CheckInteger, 1, ++/*401586*/ OPC_CheckType, MVT::i32, ++/*401588*/ OPC_MoveParent, ++/*401589*/ OPC_MoveChild, 12, ++/*401591*/ OPC_CheckInteger, 1, ++/*401593*/ OPC_CheckType, MVT::i32, ++/*401595*/ OPC_MoveParent, ++/*401596*/ OPC_MoveChild, 13, ++/*401598*/ OPC_CheckInteger, 1, ++/*401600*/ OPC_CheckType, MVT::i32, ++/*401602*/ OPC_MoveParent, ++/*401603*/ OPC_MoveChild, 14, ++/*401605*/ OPC_CheckInteger, 1, ++/*401607*/ OPC_CheckType, MVT::i32, ++/*401609*/ OPC_MoveParent, ++/*401610*/ OPC_MoveChild, 15, ++/*401612*/ OPC_CheckInteger, 1, ++/*401614*/ OPC_CheckType, MVT::i32, ++/*401616*/ OPC_MoveParent, ++/*401617*/ OPC_MoveParent, ++/*401618*/ OPC_CheckChild1Same, 1, ++/*401620*/ OPC_MoveParent, ++/*401621*/ OPC_CheckChild1Same, 0, ++/*401623*/ OPC_MoveParent, ++/*401624*/ OPC_MoveParent, ++/*401625*/ OPC_MoveChild1, ++/*401626*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*401629*/ OPC_CheckChild0Integer, 1, ++/*401631*/ OPC_CheckChild0Type, MVT::i32, ++/*401633*/ OPC_CheckChild1Integer, 1, ++/*401635*/ OPC_CheckChild1Type, MVT::i32, ++/*401637*/ OPC_CheckChild2Integer, 1, ++/*401639*/ OPC_CheckChild2Type, MVT::i32, ++/*401641*/ OPC_CheckChild3Integer, 1, ++/*401643*/ OPC_CheckChild3Type, MVT::i32, ++/*401645*/ OPC_CheckChild4Integer, 1, ++/*401647*/ OPC_CheckChild4Type, MVT::i32, ++/*401649*/ OPC_MoveChild5, ++/*401650*/ OPC_CheckInteger, 1, ++/*401652*/ OPC_CheckType, MVT::i32, ++/*401654*/ OPC_MoveParent, ++/*401655*/ OPC_MoveChild6, ++/*401656*/ OPC_CheckInteger, 1, ++/*401658*/ OPC_CheckType, MVT::i32, ++/*401660*/ OPC_MoveParent, ++/*401661*/ OPC_MoveChild7, ++/*401662*/ OPC_CheckInteger, 1, ++/*401664*/ OPC_CheckType, MVT::i32, ++/*401666*/ OPC_MoveParent, ++/*401667*/ OPC_MoveChild, 8, ++/*401669*/ OPC_CheckInteger, 1, ++/*401671*/ OPC_CheckType, MVT::i32, ++/*401673*/ OPC_MoveParent, ++/*401674*/ OPC_MoveChild, 9, ++/*401676*/ OPC_CheckInteger, 1, ++/*401678*/ OPC_CheckType, MVT::i32, ++/*401680*/ OPC_MoveParent, ++/*401681*/ OPC_MoveChild, 10, ++/*401683*/ OPC_CheckInteger, 1, ++/*401685*/ OPC_CheckType, MVT::i32, ++/*401687*/ OPC_MoveParent, ++/*401688*/ OPC_MoveChild, 11, ++/*401690*/ OPC_CheckInteger, 1, ++/*401692*/ OPC_CheckType, MVT::i32, ++/*401694*/ OPC_MoveParent, ++/*401695*/ OPC_MoveChild, 12, ++/*401697*/ OPC_CheckInteger, 1, ++/*401699*/ OPC_CheckType, MVT::i32, ++/*401701*/ OPC_MoveParent, ++/*401702*/ OPC_MoveChild, 13, ++/*401704*/ OPC_CheckInteger, 1, ++/*401706*/ OPC_CheckType, MVT::i32, ++/*401708*/ OPC_MoveParent, ++/*401709*/ OPC_MoveChild, 14, ++/*401711*/ OPC_CheckInteger, 1, ++/*401713*/ OPC_CheckType, MVT::i32, ++/*401715*/ OPC_MoveParent, ++/*401716*/ OPC_MoveChild, 15, ++/*401718*/ OPC_CheckInteger, 1, ++/*401720*/ OPC_CheckType, MVT::i32, ++/*401722*/ OPC_MoveParent, ++/*401723*/ OPC_CheckType, MVT::v16i16, ++/*401725*/ OPC_MoveParent, ++/*401726*/ OPC_CheckType, MVT::v16i16, ++/*401728*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*401730*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b), LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*401738*/ /*Scope*/ 91|128,1/*219*/, /*->401959*/ ++/*401740*/ OPC_CheckChild0Same, 1, ++/*401742*/ OPC_MoveChild1, ++/*401743*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*401746*/ OPC_CheckChild0Integer, 1, ++/*401748*/ OPC_CheckChild0Type, MVT::i32, ++/*401750*/ OPC_CheckChild1Integer, 1, ++/*401752*/ OPC_CheckChild1Type, MVT::i32, ++/*401754*/ OPC_CheckChild2Integer, 1, ++/*401756*/ OPC_CheckChild2Type, MVT::i32, ++/*401758*/ OPC_CheckChild3Integer, 1, ++/*401760*/ OPC_CheckChild3Type, MVT::i32, ++/*401762*/ OPC_CheckChild4Integer, 1, ++/*401764*/ OPC_CheckChild4Type, MVT::i32, ++/*401766*/ OPC_MoveChild5, ++/*401767*/ OPC_CheckInteger, 1, ++/*401769*/ OPC_CheckType, MVT::i32, ++/*401771*/ OPC_MoveParent, ++/*401772*/ OPC_MoveChild6, ++/*401773*/ OPC_CheckInteger, 1, ++/*401775*/ OPC_CheckType, MVT::i32, ++/*401777*/ OPC_MoveParent, ++/*401778*/ OPC_MoveChild7, ++/*401779*/ OPC_CheckInteger, 1, ++/*401781*/ OPC_CheckType, MVT::i32, ++/*401783*/ OPC_MoveParent, ++/*401784*/ OPC_MoveChild, 8, ++/*401786*/ OPC_CheckInteger, 1, ++/*401788*/ OPC_CheckType, MVT::i32, ++/*401790*/ OPC_MoveParent, ++/*401791*/ OPC_MoveChild, 9, ++/*401793*/ OPC_CheckInteger, 1, ++/*401795*/ OPC_CheckType, MVT::i32, ++/*401797*/ OPC_MoveParent, ++/*401798*/ OPC_MoveChild, 10, ++/*401800*/ OPC_CheckInteger, 1, ++/*401802*/ OPC_CheckType, MVT::i32, ++/*401804*/ OPC_MoveParent, ++/*401805*/ OPC_MoveChild, 11, ++/*401807*/ OPC_CheckInteger, 1, ++/*401809*/ OPC_CheckType, MVT::i32, ++/*401811*/ OPC_MoveParent, ++/*401812*/ OPC_MoveChild, 12, ++/*401814*/ OPC_CheckInteger, 1, ++/*401816*/ OPC_CheckType, MVT::i32, ++/*401818*/ OPC_MoveParent, ++/*401819*/ OPC_MoveChild, 13, ++/*401821*/ OPC_CheckInteger, 1, ++/*401823*/ OPC_CheckType, MVT::i32, ++/*401825*/ OPC_MoveParent, ++/*401826*/ OPC_MoveChild, 14, ++/*401828*/ OPC_CheckInteger, 1, ++/*401830*/ OPC_CheckType, MVT::i32, ++/*401832*/ OPC_MoveParent, ++/*401833*/ OPC_MoveChild, 15, ++/*401835*/ OPC_CheckInteger, 1, ++/*401837*/ OPC_CheckType, MVT::i32, ++/*401839*/ OPC_MoveParent, ++/*401840*/ OPC_MoveParent, ++/*401841*/ OPC_MoveParent, ++/*401842*/ OPC_CheckChild1Same, 0, ++/*401844*/ OPC_MoveParent, ++/*401845*/ OPC_MoveParent, ++/*401846*/ OPC_MoveChild1, ++/*401847*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*401850*/ OPC_CheckChild0Integer, 1, ++/*401852*/ OPC_CheckChild0Type, MVT::i32, ++/*401854*/ OPC_CheckChild1Integer, 1, ++/*401856*/ OPC_CheckChild1Type, MVT::i32, ++/*401858*/ OPC_CheckChild2Integer, 1, ++/*401860*/ OPC_CheckChild2Type, MVT::i32, ++/*401862*/ OPC_CheckChild3Integer, 1, ++/*401864*/ OPC_CheckChild3Type, MVT::i32, ++/*401866*/ OPC_CheckChild4Integer, 1, ++/*401868*/ OPC_CheckChild4Type, MVT::i32, ++/*401870*/ OPC_MoveChild5, ++/*401871*/ OPC_CheckInteger, 1, ++/*401873*/ OPC_CheckType, MVT::i32, ++/*401875*/ OPC_MoveParent, ++/*401876*/ OPC_MoveChild6, ++/*401877*/ OPC_CheckInteger, 1, ++/*401879*/ OPC_CheckType, MVT::i32, ++/*401881*/ OPC_MoveParent, ++/*401882*/ OPC_MoveChild7, ++/*401883*/ OPC_CheckInteger, 1, ++/*401885*/ OPC_CheckType, MVT::i32, ++/*401887*/ OPC_MoveParent, ++/*401888*/ OPC_MoveChild, 8, ++/*401890*/ OPC_CheckInteger, 1, ++/*401892*/ OPC_CheckType, MVT::i32, ++/*401894*/ OPC_MoveParent, ++/*401895*/ OPC_MoveChild, 9, ++/*401897*/ OPC_CheckInteger, 1, ++/*401899*/ OPC_CheckType, MVT::i32, ++/*401901*/ OPC_MoveParent, ++/*401902*/ OPC_MoveChild, 10, ++/*401904*/ OPC_CheckInteger, 1, ++/*401906*/ OPC_CheckType, MVT::i32, ++/*401908*/ OPC_MoveParent, ++/*401909*/ OPC_MoveChild, 11, ++/*401911*/ OPC_CheckInteger, 1, ++/*401913*/ OPC_CheckType, MVT::i32, ++/*401915*/ OPC_MoveParent, ++/*401916*/ OPC_MoveChild, 12, ++/*401918*/ OPC_CheckInteger, 1, ++/*401920*/ OPC_CheckType, MVT::i32, ++/*401922*/ OPC_MoveParent, ++/*401923*/ OPC_MoveChild, 13, ++/*401925*/ OPC_CheckInteger, 1, ++/*401927*/ OPC_CheckType, MVT::i32, ++/*401929*/ OPC_MoveParent, ++/*401930*/ OPC_MoveChild, 14, ++/*401932*/ OPC_CheckInteger, 1, ++/*401934*/ OPC_CheckType, MVT::i32, ++/*401936*/ OPC_MoveParent, ++/*401937*/ OPC_MoveChild, 15, ++/*401939*/ OPC_CheckInteger, 1, ++/*401941*/ OPC_CheckType, MVT::i32, ++/*401943*/ OPC_MoveParent, ++/*401944*/ OPC_CheckType, MVT::v16i16, ++/*401946*/ OPC_MoveParent, ++/*401947*/ OPC_CheckType, MVT::v16i16, ++/*401949*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*401951*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*401959*/ /*Scope*/ 91|128,1/*219*/, /*->402180*/ ++/*401961*/ OPC_CheckChild0Same, 0, ++/*401963*/ OPC_CheckChild1Same, 1, ++/*401965*/ OPC_MoveParent, ++/*401966*/ OPC_MoveChild1, ++/*401967*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*401970*/ OPC_CheckChild0Integer, 1, ++/*401972*/ OPC_CheckChild0Type, MVT::i32, ++/*401974*/ OPC_CheckChild1Integer, 1, ++/*401976*/ OPC_CheckChild1Type, MVT::i32, ++/*401978*/ OPC_CheckChild2Integer, 1, ++/*401980*/ OPC_CheckChild2Type, MVT::i32, ++/*401982*/ OPC_CheckChild3Integer, 1, ++/*401984*/ OPC_CheckChild3Type, MVT::i32, ++/*401986*/ OPC_CheckChild4Integer, 1, ++/*401988*/ OPC_CheckChild4Type, MVT::i32, ++/*401990*/ OPC_MoveChild5, ++/*401991*/ OPC_CheckInteger, 1, ++/*401993*/ OPC_CheckType, MVT::i32, ++/*401995*/ OPC_MoveParent, ++/*401996*/ OPC_MoveChild6, ++/*401997*/ OPC_CheckInteger, 1, ++/*401999*/ OPC_CheckType, MVT::i32, ++/*402001*/ OPC_MoveParent, ++/*402002*/ OPC_MoveChild7, ++/*402003*/ OPC_CheckInteger, 1, ++/*402005*/ OPC_CheckType, MVT::i32, ++/*402007*/ OPC_MoveParent, ++/*402008*/ OPC_MoveChild, 8, ++/*402010*/ OPC_CheckInteger, 1, ++/*402012*/ OPC_CheckType, MVT::i32, ++/*402014*/ OPC_MoveParent, ++/*402015*/ OPC_MoveChild, 9, ++/*402017*/ OPC_CheckInteger, 1, ++/*402019*/ OPC_CheckType, MVT::i32, ++/*402021*/ OPC_MoveParent, ++/*402022*/ OPC_MoveChild, 10, ++/*402024*/ OPC_CheckInteger, 1, ++/*402026*/ OPC_CheckType, MVT::i32, ++/*402028*/ OPC_MoveParent, ++/*402029*/ OPC_MoveChild, 11, ++/*402031*/ OPC_CheckInteger, 1, ++/*402033*/ OPC_CheckType, MVT::i32, ++/*402035*/ OPC_MoveParent, ++/*402036*/ OPC_MoveChild, 12, ++/*402038*/ OPC_CheckInteger, 1, ++/*402040*/ OPC_CheckType, MVT::i32, ++/*402042*/ OPC_MoveParent, ++/*402043*/ OPC_MoveChild, 13, ++/*402045*/ OPC_CheckInteger, 1, ++/*402047*/ OPC_CheckType, MVT::i32, ++/*402049*/ OPC_MoveParent, ++/*402050*/ OPC_MoveChild, 14, ++/*402052*/ OPC_CheckInteger, 1, ++/*402054*/ OPC_CheckType, MVT::i32, ++/*402056*/ OPC_MoveParent, ++/*402057*/ OPC_MoveChild, 15, ++/*402059*/ OPC_CheckInteger, 1, ++/*402061*/ OPC_CheckType, MVT::i32, ++/*402063*/ OPC_MoveParent, ++/*402064*/ OPC_MoveParent, ++/*402065*/ OPC_MoveParent, ++/*402066*/ OPC_MoveParent, ++/*402067*/ OPC_MoveChild1, ++/*402068*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*402071*/ OPC_CheckChild0Integer, 1, ++/*402073*/ OPC_CheckChild0Type, MVT::i32, ++/*402075*/ OPC_CheckChild1Integer, 1, ++/*402077*/ OPC_CheckChild1Type, MVT::i32, ++/*402079*/ OPC_CheckChild2Integer, 1, ++/*402081*/ OPC_CheckChild2Type, MVT::i32, ++/*402083*/ OPC_CheckChild3Integer, 1, ++/*402085*/ OPC_CheckChild3Type, MVT::i32, ++/*402087*/ OPC_CheckChild4Integer, 1, ++/*402089*/ OPC_CheckChild4Type, MVT::i32, ++/*402091*/ OPC_MoveChild5, ++/*402092*/ OPC_CheckInteger, 1, ++/*402094*/ OPC_CheckType, MVT::i32, ++/*402096*/ OPC_MoveParent, ++/*402097*/ OPC_MoveChild6, ++/*402098*/ OPC_CheckInteger, 1, ++/*402100*/ OPC_CheckType, MVT::i32, ++/*402102*/ OPC_MoveParent, ++/*402103*/ OPC_MoveChild7, ++/*402104*/ OPC_CheckInteger, 1, ++/*402106*/ OPC_CheckType, MVT::i32, ++/*402108*/ OPC_MoveParent, ++/*402109*/ OPC_MoveChild, 8, ++/*402111*/ OPC_CheckInteger, 1, ++/*402113*/ OPC_CheckType, MVT::i32, ++/*402115*/ OPC_MoveParent, ++/*402116*/ OPC_MoveChild, 9, ++/*402118*/ OPC_CheckInteger, 1, ++/*402120*/ OPC_CheckType, MVT::i32, ++/*402122*/ OPC_MoveParent, ++/*402123*/ OPC_MoveChild, 10, ++/*402125*/ OPC_CheckInteger, 1, ++/*402127*/ OPC_CheckType, MVT::i32, ++/*402129*/ OPC_MoveParent, ++/*402130*/ OPC_MoveChild, 11, ++/*402132*/ OPC_CheckInteger, 1, ++/*402134*/ OPC_CheckType, MVT::i32, ++/*402136*/ OPC_MoveParent, ++/*402137*/ OPC_MoveChild, 12, ++/*402139*/ OPC_CheckInteger, 1, ++/*402141*/ OPC_CheckType, MVT::i32, ++/*402143*/ OPC_MoveParent, ++/*402144*/ OPC_MoveChild, 13, ++/*402146*/ OPC_CheckInteger, 1, ++/*402148*/ OPC_CheckType, MVT::i32, ++/*402150*/ OPC_MoveParent, ++/*402151*/ OPC_MoveChild, 14, ++/*402153*/ OPC_CheckInteger, 1, ++/*402155*/ OPC_CheckType, MVT::i32, ++/*402157*/ OPC_MoveParent, ++/*402158*/ OPC_MoveChild, 15, ++/*402160*/ OPC_CheckInteger, 1, ++/*402162*/ OPC_CheckType, MVT::i32, ++/*402164*/ OPC_MoveParent, ++/*402165*/ OPC_CheckType, MVT::v16i16, ++/*402167*/ OPC_MoveParent, ++/*402168*/ OPC_CheckType, MVT::v16i16, ++/*402170*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*402172*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*402180*/ /*Scope*/ 91|128,1/*219*/, /*->402401*/ ++/*402182*/ OPC_CheckChild0Same, 1, ++/*402184*/ OPC_CheckChild1Same, 0, ++/*402186*/ OPC_MoveParent, ++/*402187*/ OPC_MoveChild1, ++/*402188*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*402191*/ OPC_CheckChild0Integer, 1, ++/*402193*/ OPC_CheckChild0Type, MVT::i32, ++/*402195*/ OPC_CheckChild1Integer, 1, ++/*402197*/ OPC_CheckChild1Type, MVT::i32, ++/*402199*/ OPC_CheckChild2Integer, 1, ++/*402201*/ OPC_CheckChild2Type, MVT::i32, ++/*402203*/ OPC_CheckChild3Integer, 1, ++/*402205*/ OPC_CheckChild3Type, MVT::i32, ++/*402207*/ OPC_CheckChild4Integer, 1, ++/*402209*/ OPC_CheckChild4Type, MVT::i32, ++/*402211*/ OPC_MoveChild5, ++/*402212*/ OPC_CheckInteger, 1, ++/*402214*/ OPC_CheckType, MVT::i32, ++/*402216*/ OPC_MoveParent, ++/*402217*/ OPC_MoveChild6, ++/*402218*/ OPC_CheckInteger, 1, ++/*402220*/ OPC_CheckType, MVT::i32, ++/*402222*/ OPC_MoveParent, ++/*402223*/ OPC_MoveChild7, ++/*402224*/ OPC_CheckInteger, 1, ++/*402226*/ OPC_CheckType, MVT::i32, ++/*402228*/ OPC_MoveParent, ++/*402229*/ OPC_MoveChild, 8, ++/*402231*/ OPC_CheckInteger, 1, ++/*402233*/ OPC_CheckType, MVT::i32, ++/*402235*/ OPC_MoveParent, ++/*402236*/ OPC_MoveChild, 9, ++/*402238*/ OPC_CheckInteger, 1, ++/*402240*/ OPC_CheckType, MVT::i32, ++/*402242*/ OPC_MoveParent, ++/*402243*/ OPC_MoveChild, 10, ++/*402245*/ OPC_CheckInteger, 1, ++/*402247*/ OPC_CheckType, MVT::i32, ++/*402249*/ OPC_MoveParent, ++/*402250*/ OPC_MoveChild, 11, ++/*402252*/ OPC_CheckInteger, 1, ++/*402254*/ OPC_CheckType, MVT::i32, ++/*402256*/ OPC_MoveParent, ++/*402257*/ OPC_MoveChild, 12, ++/*402259*/ OPC_CheckInteger, 1, ++/*402261*/ OPC_CheckType, MVT::i32, ++/*402263*/ OPC_MoveParent, ++/*402264*/ OPC_MoveChild, 13, ++/*402266*/ OPC_CheckInteger, 1, ++/*402268*/ OPC_CheckType, MVT::i32, ++/*402270*/ OPC_MoveParent, ++/*402271*/ OPC_MoveChild, 14, ++/*402273*/ OPC_CheckInteger, 1, ++/*402275*/ OPC_CheckType, MVT::i32, ++/*402277*/ OPC_MoveParent, ++/*402278*/ OPC_MoveChild, 15, ++/*402280*/ OPC_CheckInteger, 1, ++/*402282*/ OPC_CheckType, MVT::i32, ++/*402284*/ OPC_MoveParent, ++/*402285*/ OPC_MoveParent, ++/*402286*/ OPC_MoveParent, ++/*402287*/ OPC_MoveParent, ++/*402288*/ OPC_MoveChild1, ++/*402289*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*402292*/ OPC_CheckChild0Integer, 1, ++/*402294*/ OPC_CheckChild0Type, MVT::i32, ++/*402296*/ OPC_CheckChild1Integer, 1, ++/*402298*/ OPC_CheckChild1Type, MVT::i32, ++/*402300*/ OPC_CheckChild2Integer, 1, ++/*402302*/ OPC_CheckChild2Type, MVT::i32, ++/*402304*/ OPC_CheckChild3Integer, 1, ++/*402306*/ OPC_CheckChild3Type, MVT::i32, ++/*402308*/ OPC_CheckChild4Integer, 1, ++/*402310*/ OPC_CheckChild4Type, MVT::i32, ++/*402312*/ OPC_MoveChild5, ++/*402313*/ OPC_CheckInteger, 1, ++/*402315*/ OPC_CheckType, MVT::i32, ++/*402317*/ OPC_MoveParent, ++/*402318*/ OPC_MoveChild6, ++/*402319*/ OPC_CheckInteger, 1, ++/*402321*/ OPC_CheckType, MVT::i32, ++/*402323*/ OPC_MoveParent, ++/*402324*/ OPC_MoveChild7, ++/*402325*/ OPC_CheckInteger, 1, ++/*402327*/ OPC_CheckType, MVT::i32, ++/*402329*/ OPC_MoveParent, ++/*402330*/ OPC_MoveChild, 8, ++/*402332*/ OPC_CheckInteger, 1, ++/*402334*/ OPC_CheckType, MVT::i32, ++/*402336*/ OPC_MoveParent, ++/*402337*/ OPC_MoveChild, 9, ++/*402339*/ OPC_CheckInteger, 1, ++/*402341*/ OPC_CheckType, MVT::i32, ++/*402343*/ OPC_MoveParent, ++/*402344*/ OPC_MoveChild, 10, ++/*402346*/ OPC_CheckInteger, 1, ++/*402348*/ OPC_CheckType, MVT::i32, ++/*402350*/ OPC_MoveParent, ++/*402351*/ OPC_MoveChild, 11, ++/*402353*/ OPC_CheckInteger, 1, ++/*402355*/ OPC_CheckType, MVT::i32, ++/*402357*/ OPC_MoveParent, ++/*402358*/ OPC_MoveChild, 12, ++/*402360*/ OPC_CheckInteger, 1, ++/*402362*/ OPC_CheckType, MVT::i32, ++/*402364*/ OPC_MoveParent, ++/*402365*/ OPC_MoveChild, 13, ++/*402367*/ OPC_CheckInteger, 1, ++/*402369*/ OPC_CheckType, MVT::i32, ++/*402371*/ OPC_MoveParent, ++/*402372*/ OPC_MoveChild, 14, ++/*402374*/ OPC_CheckInteger, 1, ++/*402376*/ OPC_CheckType, MVT::i32, ++/*402378*/ OPC_MoveParent, ++/*402379*/ OPC_MoveChild, 15, ++/*402381*/ OPC_CheckInteger, 1, ++/*402383*/ OPC_CheckType, MVT::i32, ++/*402385*/ OPC_MoveParent, ++/*402386*/ OPC_CheckType, MVT::v16i16, ++/*402388*/ OPC_MoveParent, ++/*402389*/ OPC_CheckType, MVT::v16i16, ++/*402391*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*402393*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*402401*/ 0, /*End of Scope*/ ++/*402402*/ /*Scope*/ 62|128,3/*446*/, /*->402850*/ ++/*402404*/ OPC_CheckChild0Same, 1, ++/*402406*/ OPC_MoveChild1, ++/*402407*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*402410*/ OPC_Scope, 89|128,1/*217*/, /*->402630*/ // 2 children in Scope ++/*402413*/ OPC_MoveChild0, ++/*402414*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*402417*/ OPC_CheckChild0Integer, 1, ++/*402419*/ OPC_CheckChild0Type, MVT::i32, ++/*402421*/ OPC_CheckChild1Integer, 1, ++/*402423*/ OPC_CheckChild1Type, MVT::i32, ++/*402425*/ OPC_CheckChild2Integer, 1, ++/*402427*/ OPC_CheckChild2Type, MVT::i32, ++/*402429*/ OPC_CheckChild3Integer, 1, ++/*402431*/ OPC_CheckChild3Type, MVT::i32, ++/*402433*/ OPC_CheckChild4Integer, 1, ++/*402435*/ OPC_CheckChild4Type, MVT::i32, ++/*402437*/ OPC_MoveChild5, ++/*402438*/ OPC_CheckInteger, 1, ++/*402440*/ OPC_CheckType, MVT::i32, ++/*402442*/ OPC_MoveParent, ++/*402443*/ OPC_MoveChild6, ++/*402444*/ OPC_CheckInteger, 1, ++/*402446*/ OPC_CheckType, MVT::i32, ++/*402448*/ OPC_MoveParent, ++/*402449*/ OPC_MoveChild7, ++/*402450*/ OPC_CheckInteger, 1, ++/*402452*/ OPC_CheckType, MVT::i32, ++/*402454*/ OPC_MoveParent, ++/*402455*/ OPC_MoveChild, 8, ++/*402457*/ OPC_CheckInteger, 1, ++/*402459*/ OPC_CheckType, MVT::i32, ++/*402461*/ OPC_MoveParent, ++/*402462*/ OPC_MoveChild, 9, ++/*402464*/ OPC_CheckInteger, 1, ++/*402466*/ OPC_CheckType, MVT::i32, ++/*402468*/ OPC_MoveParent, ++/*402469*/ OPC_MoveChild, 10, ++/*402471*/ OPC_CheckInteger, 1, ++/*402473*/ OPC_CheckType, MVT::i32, ++/*402475*/ OPC_MoveParent, ++/*402476*/ OPC_MoveChild, 11, ++/*402478*/ OPC_CheckInteger, 1, ++/*402480*/ OPC_CheckType, MVT::i32, ++/*402482*/ OPC_MoveParent, ++/*402483*/ OPC_MoveChild, 12, ++/*402485*/ OPC_CheckInteger, 1, ++/*402487*/ OPC_CheckType, MVT::i32, ++/*402489*/ OPC_MoveParent, ++/*402490*/ OPC_MoveChild, 13, ++/*402492*/ OPC_CheckInteger, 1, ++/*402494*/ OPC_CheckType, MVT::i32, ++/*402496*/ OPC_MoveParent, ++/*402497*/ OPC_MoveChild, 14, ++/*402499*/ OPC_CheckInteger, 1, ++/*402501*/ OPC_CheckType, MVT::i32, ++/*402503*/ OPC_MoveParent, ++/*402504*/ OPC_MoveChild, 15, ++/*402506*/ OPC_CheckInteger, 1, ++/*402508*/ OPC_CheckType, MVT::i32, ++/*402510*/ OPC_MoveParent, ++/*402511*/ OPC_MoveParent, ++/*402512*/ OPC_CheckChild1Same, 0, ++/*402514*/ OPC_MoveParent, ++/*402515*/ OPC_MoveParent, ++/*402516*/ OPC_MoveParent, ++/*402517*/ OPC_MoveChild1, ++/*402518*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*402521*/ OPC_CheckChild0Integer, 1, ++/*402523*/ OPC_CheckChild0Type, MVT::i32, ++/*402525*/ OPC_CheckChild1Integer, 1, ++/*402527*/ OPC_CheckChild1Type, MVT::i32, ++/*402529*/ OPC_CheckChild2Integer, 1, ++/*402531*/ OPC_CheckChild2Type, MVT::i32, ++/*402533*/ OPC_CheckChild3Integer, 1, ++/*402535*/ OPC_CheckChild3Type, MVT::i32, ++/*402537*/ OPC_CheckChild4Integer, 1, ++/*402539*/ OPC_CheckChild4Type, MVT::i32, ++/*402541*/ OPC_MoveChild5, ++/*402542*/ OPC_CheckInteger, 1, ++/*402544*/ OPC_CheckType, MVT::i32, ++/*402546*/ OPC_MoveParent, ++/*402547*/ OPC_MoveChild6, ++/*402548*/ OPC_CheckInteger, 1, ++/*402550*/ OPC_CheckType, MVT::i32, ++/*402552*/ OPC_MoveParent, ++/*402553*/ OPC_MoveChild7, ++/*402554*/ OPC_CheckInteger, 1, ++/*402556*/ OPC_CheckType, MVT::i32, ++/*402558*/ OPC_MoveParent, ++/*402559*/ OPC_MoveChild, 8, ++/*402561*/ OPC_CheckInteger, 1, ++/*402563*/ OPC_CheckType, MVT::i32, ++/*402565*/ OPC_MoveParent, ++/*402566*/ OPC_MoveChild, 9, ++/*402568*/ OPC_CheckInteger, 1, ++/*402570*/ OPC_CheckType, MVT::i32, ++/*402572*/ OPC_MoveParent, ++/*402573*/ OPC_MoveChild, 10, ++/*402575*/ OPC_CheckInteger, 1, ++/*402577*/ OPC_CheckType, MVT::i32, ++/*402579*/ OPC_MoveParent, ++/*402580*/ OPC_MoveChild, 11, ++/*402582*/ OPC_CheckInteger, 1, ++/*402584*/ OPC_CheckType, MVT::i32, ++/*402586*/ OPC_MoveParent, ++/*402587*/ OPC_MoveChild, 12, ++/*402589*/ OPC_CheckInteger, 1, ++/*402591*/ OPC_CheckType, MVT::i32, ++/*402593*/ OPC_MoveParent, ++/*402594*/ OPC_MoveChild, 13, ++/*402596*/ OPC_CheckInteger, 1, ++/*402598*/ OPC_CheckType, MVT::i32, ++/*402600*/ OPC_MoveParent, ++/*402601*/ OPC_MoveChild, 14, ++/*402603*/ OPC_CheckInteger, 1, ++/*402605*/ OPC_CheckType, MVT::i32, ++/*402607*/ OPC_MoveParent, ++/*402608*/ OPC_MoveChild, 15, ++/*402610*/ OPC_CheckInteger, 1, ++/*402612*/ OPC_CheckType, MVT::i32, ++/*402614*/ OPC_MoveParent, ++/*402615*/ OPC_CheckType, MVT::v16i16, ++/*402617*/ OPC_MoveParent, ++/*402618*/ OPC_CheckType, MVT::v16i16, ++/*402620*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*402622*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*402630*/ /*Scope*/ 89|128,1/*217*/, /*->402849*/ ++/*402632*/ OPC_CheckChild0Same, 0, ++/*402634*/ OPC_MoveChild1, ++/*402635*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*402638*/ OPC_CheckChild0Integer, 1, ++/*402640*/ OPC_CheckChild0Type, MVT::i32, ++/*402642*/ OPC_CheckChild1Integer, 1, ++/*402644*/ OPC_CheckChild1Type, MVT::i32, ++/*402646*/ OPC_CheckChild2Integer, 1, ++/*402648*/ OPC_CheckChild2Type, MVT::i32, ++/*402650*/ OPC_CheckChild3Integer, 1, ++/*402652*/ OPC_CheckChild3Type, MVT::i32, ++/*402654*/ OPC_CheckChild4Integer, 1, ++/*402656*/ OPC_CheckChild4Type, MVT::i32, ++/*402658*/ OPC_MoveChild5, ++/*402659*/ OPC_CheckInteger, 1, ++/*402661*/ OPC_CheckType, MVT::i32, ++/*402663*/ OPC_MoveParent, ++/*402664*/ OPC_MoveChild6, ++/*402665*/ OPC_CheckInteger, 1, ++/*402667*/ OPC_CheckType, MVT::i32, ++/*402669*/ OPC_MoveParent, ++/*402670*/ OPC_MoveChild7, ++/*402671*/ OPC_CheckInteger, 1, ++/*402673*/ OPC_CheckType, MVT::i32, ++/*402675*/ OPC_MoveParent, ++/*402676*/ OPC_MoveChild, 8, ++/*402678*/ OPC_CheckInteger, 1, ++/*402680*/ OPC_CheckType, MVT::i32, ++/*402682*/ OPC_MoveParent, ++/*402683*/ OPC_MoveChild, 9, ++/*402685*/ OPC_CheckInteger, 1, ++/*402687*/ OPC_CheckType, MVT::i32, ++/*402689*/ OPC_MoveParent, ++/*402690*/ OPC_MoveChild, 10, ++/*402692*/ OPC_CheckInteger, 1, ++/*402694*/ OPC_CheckType, MVT::i32, ++/*402696*/ OPC_MoveParent, ++/*402697*/ OPC_MoveChild, 11, ++/*402699*/ OPC_CheckInteger, 1, ++/*402701*/ OPC_CheckType, MVT::i32, ++/*402703*/ OPC_MoveParent, ++/*402704*/ OPC_MoveChild, 12, ++/*402706*/ OPC_CheckInteger, 1, ++/*402708*/ OPC_CheckType, MVT::i32, ++/*402710*/ OPC_MoveParent, ++/*402711*/ OPC_MoveChild, 13, ++/*402713*/ OPC_CheckInteger, 1, ++/*402715*/ OPC_CheckType, MVT::i32, ++/*402717*/ OPC_MoveParent, ++/*402718*/ OPC_MoveChild, 14, ++/*402720*/ OPC_CheckInteger, 1, ++/*402722*/ OPC_CheckType, MVT::i32, ++/*402724*/ OPC_MoveParent, ++/*402725*/ OPC_MoveChild, 15, ++/*402727*/ OPC_CheckInteger, 1, ++/*402729*/ OPC_CheckType, MVT::i32, ++/*402731*/ OPC_MoveParent, ++/*402732*/ OPC_MoveParent, ++/*402733*/ OPC_MoveParent, ++/*402734*/ OPC_MoveParent, ++/*402735*/ OPC_MoveParent, ++/*402736*/ OPC_MoveChild1, ++/*402737*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*402740*/ OPC_CheckChild0Integer, 1, ++/*402742*/ OPC_CheckChild0Type, MVT::i32, ++/*402744*/ OPC_CheckChild1Integer, 1, ++/*402746*/ OPC_CheckChild1Type, MVT::i32, ++/*402748*/ OPC_CheckChild2Integer, 1, ++/*402750*/ OPC_CheckChild2Type, MVT::i32, ++/*402752*/ OPC_CheckChild3Integer, 1, ++/*402754*/ OPC_CheckChild3Type, MVT::i32, ++/*402756*/ OPC_CheckChild4Integer, 1, ++/*402758*/ OPC_CheckChild4Type, MVT::i32, ++/*402760*/ OPC_MoveChild5, ++/*402761*/ OPC_CheckInteger, 1, ++/*402763*/ OPC_CheckType, MVT::i32, ++/*402765*/ OPC_MoveParent, ++/*402766*/ OPC_MoveChild6, ++/*402767*/ OPC_CheckInteger, 1, ++/*402769*/ OPC_CheckType, MVT::i32, ++/*402771*/ OPC_MoveParent, ++/*402772*/ OPC_MoveChild7, ++/*402773*/ OPC_CheckInteger, 1, ++/*402775*/ OPC_CheckType, MVT::i32, ++/*402777*/ OPC_MoveParent, ++/*402778*/ OPC_MoveChild, 8, ++/*402780*/ OPC_CheckInteger, 1, ++/*402782*/ OPC_CheckType, MVT::i32, ++/*402784*/ OPC_MoveParent, ++/*402785*/ OPC_MoveChild, 9, ++/*402787*/ OPC_CheckInteger, 1, ++/*402789*/ OPC_CheckType, MVT::i32, ++/*402791*/ OPC_MoveParent, ++/*402792*/ OPC_MoveChild, 10, ++/*402794*/ OPC_CheckInteger, 1, ++/*402796*/ OPC_CheckType, MVT::i32, ++/*402798*/ OPC_MoveParent, ++/*402799*/ OPC_MoveChild, 11, ++/*402801*/ OPC_CheckInteger, 1, ++/*402803*/ OPC_CheckType, MVT::i32, ++/*402805*/ OPC_MoveParent, ++/*402806*/ OPC_MoveChild, 12, ++/*402808*/ OPC_CheckInteger, 1, ++/*402810*/ OPC_CheckType, MVT::i32, ++/*402812*/ OPC_MoveParent, ++/*402813*/ OPC_MoveChild, 13, ++/*402815*/ OPC_CheckInteger, 1, ++/*402817*/ OPC_CheckType, MVT::i32, ++/*402819*/ OPC_MoveParent, ++/*402820*/ OPC_MoveChild, 14, ++/*402822*/ OPC_CheckInteger, 1, ++/*402824*/ OPC_CheckType, MVT::i32, ++/*402826*/ OPC_MoveParent, ++/*402827*/ OPC_MoveChild, 15, ++/*402829*/ OPC_CheckInteger, 1, ++/*402831*/ OPC_CheckType, MVT::i32, ++/*402833*/ OPC_MoveParent, ++/*402834*/ OPC_CheckType, MVT::v16i16, ++/*402836*/ OPC_MoveParent, ++/*402837*/ OPC_CheckType, MVT::v16i16, ++/*402839*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*402841*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*402849*/ 0, /*End of Scope*/ ++/*402850*/ /*Scope*/ 62|128,3/*446*/, /*->403298*/ ++/*402852*/ OPC_CheckChild0Same, 0, ++/*402854*/ OPC_MoveChild1, ++/*402855*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*402858*/ OPC_Scope, 89|128,1/*217*/, /*->403078*/ // 2 children in Scope ++/*402861*/ OPC_MoveChild0, ++/*402862*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*402865*/ OPC_CheckChild0Integer, 1, ++/*402867*/ OPC_CheckChild0Type, MVT::i32, ++/*402869*/ OPC_CheckChild1Integer, 1, ++/*402871*/ OPC_CheckChild1Type, MVT::i32, ++/*402873*/ OPC_CheckChild2Integer, 1, ++/*402875*/ OPC_CheckChild2Type, MVT::i32, ++/*402877*/ OPC_CheckChild3Integer, 1, ++/*402879*/ OPC_CheckChild3Type, MVT::i32, ++/*402881*/ OPC_CheckChild4Integer, 1, ++/*402883*/ OPC_CheckChild4Type, MVT::i32, ++/*402885*/ OPC_MoveChild5, ++/*402886*/ OPC_CheckInteger, 1, ++/*402888*/ OPC_CheckType, MVT::i32, ++/*402890*/ OPC_MoveParent, ++/*402891*/ OPC_MoveChild6, ++/*402892*/ OPC_CheckInteger, 1, ++/*402894*/ OPC_CheckType, MVT::i32, ++/*402896*/ OPC_MoveParent, ++/*402897*/ OPC_MoveChild7, ++/*402898*/ OPC_CheckInteger, 1, ++/*402900*/ OPC_CheckType, MVT::i32, ++/*402902*/ OPC_MoveParent, ++/*402903*/ OPC_MoveChild, 8, ++/*402905*/ OPC_CheckInteger, 1, ++/*402907*/ OPC_CheckType, MVT::i32, ++/*402909*/ OPC_MoveParent, ++/*402910*/ OPC_MoveChild, 9, ++/*402912*/ OPC_CheckInteger, 1, ++/*402914*/ OPC_CheckType, MVT::i32, ++/*402916*/ OPC_MoveParent, ++/*402917*/ OPC_MoveChild, 10, ++/*402919*/ OPC_CheckInteger, 1, ++/*402921*/ OPC_CheckType, MVT::i32, ++/*402923*/ OPC_MoveParent, ++/*402924*/ OPC_MoveChild, 11, ++/*402926*/ OPC_CheckInteger, 1, ++/*402928*/ OPC_CheckType, MVT::i32, ++/*402930*/ OPC_MoveParent, ++/*402931*/ OPC_MoveChild, 12, ++/*402933*/ OPC_CheckInteger, 1, ++/*402935*/ OPC_CheckType, MVT::i32, ++/*402937*/ OPC_MoveParent, ++/*402938*/ OPC_MoveChild, 13, ++/*402940*/ OPC_CheckInteger, 1, ++/*402942*/ OPC_CheckType, MVT::i32, ++/*402944*/ OPC_MoveParent, ++/*402945*/ OPC_MoveChild, 14, ++/*402947*/ OPC_CheckInteger, 1, ++/*402949*/ OPC_CheckType, MVT::i32, ++/*402951*/ OPC_MoveParent, ++/*402952*/ OPC_MoveChild, 15, ++/*402954*/ OPC_CheckInteger, 1, ++/*402956*/ OPC_CheckType, MVT::i32, ++/*402958*/ OPC_MoveParent, ++/*402959*/ OPC_MoveParent, ++/*402960*/ OPC_CheckChild1Same, 1, ++/*402962*/ OPC_MoveParent, ++/*402963*/ OPC_MoveParent, ++/*402964*/ OPC_MoveParent, ++/*402965*/ OPC_MoveChild1, ++/*402966*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*402969*/ OPC_CheckChild0Integer, 1, ++/*402971*/ OPC_CheckChild0Type, MVT::i32, ++/*402973*/ OPC_CheckChild1Integer, 1, ++/*402975*/ OPC_CheckChild1Type, MVT::i32, ++/*402977*/ OPC_CheckChild2Integer, 1, ++/*402979*/ OPC_CheckChild2Type, MVT::i32, ++/*402981*/ OPC_CheckChild3Integer, 1, ++/*402983*/ OPC_CheckChild3Type, MVT::i32, ++/*402985*/ OPC_CheckChild4Integer, 1, ++/*402987*/ OPC_CheckChild4Type, MVT::i32, ++/*402989*/ OPC_MoveChild5, ++/*402990*/ OPC_CheckInteger, 1, ++/*402992*/ OPC_CheckType, MVT::i32, ++/*402994*/ OPC_MoveParent, ++/*402995*/ OPC_MoveChild6, ++/*402996*/ OPC_CheckInteger, 1, ++/*402998*/ OPC_CheckType, MVT::i32, ++/*403000*/ OPC_MoveParent, ++/*403001*/ OPC_MoveChild7, ++/*403002*/ OPC_CheckInteger, 1, ++/*403004*/ OPC_CheckType, MVT::i32, ++/*403006*/ OPC_MoveParent, ++/*403007*/ OPC_MoveChild, 8, ++/*403009*/ OPC_CheckInteger, 1, ++/*403011*/ OPC_CheckType, MVT::i32, ++/*403013*/ OPC_MoveParent, ++/*403014*/ OPC_MoveChild, 9, ++/*403016*/ OPC_CheckInteger, 1, ++/*403018*/ OPC_CheckType, MVT::i32, ++/*403020*/ OPC_MoveParent, ++/*403021*/ OPC_MoveChild, 10, ++/*403023*/ OPC_CheckInteger, 1, ++/*403025*/ OPC_CheckType, MVT::i32, ++/*403027*/ OPC_MoveParent, ++/*403028*/ OPC_MoveChild, 11, ++/*403030*/ OPC_CheckInteger, 1, ++/*403032*/ OPC_CheckType, MVT::i32, ++/*403034*/ OPC_MoveParent, ++/*403035*/ OPC_MoveChild, 12, ++/*403037*/ OPC_CheckInteger, 1, ++/*403039*/ OPC_CheckType, MVT::i32, ++/*403041*/ OPC_MoveParent, ++/*403042*/ OPC_MoveChild, 13, ++/*403044*/ OPC_CheckInteger, 1, ++/*403046*/ OPC_CheckType, MVT::i32, ++/*403048*/ OPC_MoveParent, ++/*403049*/ OPC_MoveChild, 14, ++/*403051*/ OPC_CheckInteger, 1, ++/*403053*/ OPC_CheckType, MVT::i32, ++/*403055*/ OPC_MoveParent, ++/*403056*/ OPC_MoveChild, 15, ++/*403058*/ OPC_CheckInteger, 1, ++/*403060*/ OPC_CheckType, MVT::i32, ++/*403062*/ OPC_MoveParent, ++/*403063*/ OPC_CheckType, MVT::v16i16, ++/*403065*/ OPC_MoveParent, ++/*403066*/ OPC_CheckType, MVT::v16i16, ++/*403068*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*403070*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*403078*/ /*Scope*/ 89|128,1/*217*/, /*->403297*/ ++/*403080*/ OPC_CheckChild0Same, 1, ++/*403082*/ OPC_MoveChild1, ++/*403083*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*403086*/ OPC_CheckChild0Integer, 1, ++/*403088*/ OPC_CheckChild0Type, MVT::i32, ++/*403090*/ OPC_CheckChild1Integer, 1, ++/*403092*/ OPC_CheckChild1Type, MVT::i32, ++/*403094*/ OPC_CheckChild2Integer, 1, ++/*403096*/ OPC_CheckChild2Type, MVT::i32, ++/*403098*/ OPC_CheckChild3Integer, 1, ++/*403100*/ OPC_CheckChild3Type, MVT::i32, ++/*403102*/ OPC_CheckChild4Integer, 1, ++/*403104*/ OPC_CheckChild4Type, MVT::i32, ++/*403106*/ OPC_MoveChild5, ++/*403107*/ OPC_CheckInteger, 1, ++/*403109*/ OPC_CheckType, MVT::i32, ++/*403111*/ OPC_MoveParent, ++/*403112*/ OPC_MoveChild6, ++/*403113*/ OPC_CheckInteger, 1, ++/*403115*/ OPC_CheckType, MVT::i32, ++/*403117*/ OPC_MoveParent, ++/*403118*/ OPC_MoveChild7, ++/*403119*/ OPC_CheckInteger, 1, ++/*403121*/ OPC_CheckType, MVT::i32, ++/*403123*/ OPC_MoveParent, ++/*403124*/ OPC_MoveChild, 8, ++/*403126*/ OPC_CheckInteger, 1, ++/*403128*/ OPC_CheckType, MVT::i32, ++/*403130*/ OPC_MoveParent, ++/*403131*/ OPC_MoveChild, 9, ++/*403133*/ OPC_CheckInteger, 1, ++/*403135*/ OPC_CheckType, MVT::i32, ++/*403137*/ OPC_MoveParent, ++/*403138*/ OPC_MoveChild, 10, ++/*403140*/ OPC_CheckInteger, 1, ++/*403142*/ OPC_CheckType, MVT::i32, ++/*403144*/ OPC_MoveParent, ++/*403145*/ OPC_MoveChild, 11, ++/*403147*/ OPC_CheckInteger, 1, ++/*403149*/ OPC_CheckType, MVT::i32, ++/*403151*/ OPC_MoveParent, ++/*403152*/ OPC_MoveChild, 12, ++/*403154*/ OPC_CheckInteger, 1, ++/*403156*/ OPC_CheckType, MVT::i32, ++/*403158*/ OPC_MoveParent, ++/*403159*/ OPC_MoveChild, 13, ++/*403161*/ OPC_CheckInteger, 1, ++/*403163*/ OPC_CheckType, MVT::i32, ++/*403165*/ OPC_MoveParent, ++/*403166*/ OPC_MoveChild, 14, ++/*403168*/ OPC_CheckInteger, 1, ++/*403170*/ OPC_CheckType, MVT::i32, ++/*403172*/ OPC_MoveParent, ++/*403173*/ OPC_MoveChild, 15, ++/*403175*/ OPC_CheckInteger, 1, ++/*403177*/ OPC_CheckType, MVT::i32, ++/*403179*/ OPC_MoveParent, ++/*403180*/ OPC_MoveParent, ++/*403181*/ OPC_MoveParent, ++/*403182*/ OPC_MoveParent, ++/*403183*/ OPC_MoveParent, ++/*403184*/ OPC_MoveChild1, ++/*403185*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*403188*/ OPC_CheckChild0Integer, 1, ++/*403190*/ OPC_CheckChild0Type, MVT::i32, ++/*403192*/ OPC_CheckChild1Integer, 1, ++/*403194*/ OPC_CheckChild1Type, MVT::i32, ++/*403196*/ OPC_CheckChild2Integer, 1, ++/*403198*/ OPC_CheckChild2Type, MVT::i32, ++/*403200*/ OPC_CheckChild3Integer, 1, ++/*403202*/ OPC_CheckChild3Type, MVT::i32, ++/*403204*/ OPC_CheckChild4Integer, 1, ++/*403206*/ OPC_CheckChild4Type, MVT::i32, ++/*403208*/ OPC_MoveChild5, ++/*403209*/ OPC_CheckInteger, 1, ++/*403211*/ OPC_CheckType, MVT::i32, ++/*403213*/ OPC_MoveParent, ++/*403214*/ OPC_MoveChild6, ++/*403215*/ OPC_CheckInteger, 1, ++/*403217*/ OPC_CheckType, MVT::i32, ++/*403219*/ OPC_MoveParent, ++/*403220*/ OPC_MoveChild7, ++/*403221*/ OPC_CheckInteger, 1, ++/*403223*/ OPC_CheckType, MVT::i32, ++/*403225*/ OPC_MoveParent, ++/*403226*/ OPC_MoveChild, 8, ++/*403228*/ OPC_CheckInteger, 1, ++/*403230*/ OPC_CheckType, MVT::i32, ++/*403232*/ OPC_MoveParent, ++/*403233*/ OPC_MoveChild, 9, ++/*403235*/ OPC_CheckInteger, 1, ++/*403237*/ OPC_CheckType, MVT::i32, ++/*403239*/ OPC_MoveParent, ++/*403240*/ OPC_MoveChild, 10, ++/*403242*/ OPC_CheckInteger, 1, ++/*403244*/ OPC_CheckType, MVT::i32, ++/*403246*/ OPC_MoveParent, ++/*403247*/ OPC_MoveChild, 11, ++/*403249*/ OPC_CheckInteger, 1, ++/*403251*/ OPC_CheckType, MVT::i32, ++/*403253*/ OPC_MoveParent, ++/*403254*/ OPC_MoveChild, 12, ++/*403256*/ OPC_CheckInteger, 1, ++/*403258*/ OPC_CheckType, MVT::i32, ++/*403260*/ OPC_MoveParent, ++/*403261*/ OPC_MoveChild, 13, ++/*403263*/ OPC_CheckInteger, 1, ++/*403265*/ OPC_CheckType, MVT::i32, ++/*403267*/ OPC_MoveParent, ++/*403268*/ OPC_MoveChild, 14, ++/*403270*/ OPC_CheckInteger, 1, ++/*403272*/ OPC_CheckType, MVT::i32, ++/*403274*/ OPC_MoveParent, ++/*403275*/ OPC_MoveChild, 15, ++/*403277*/ OPC_CheckInteger, 1, ++/*403279*/ OPC_CheckType, MVT::i32, ++/*403281*/ OPC_MoveParent, ++/*403282*/ OPC_CheckType, MVT::v16i16, ++/*403284*/ OPC_MoveParent, ++/*403285*/ OPC_CheckType, MVT::v16i16, ++/*403287*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*403289*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*403297*/ 0, /*End of Scope*/ ++/*403298*/ /*Scope*/ 18|128,13/*1682*/, /*->404982*/ ++/*403300*/ OPC_MoveChild0, ++/*403301*/ OPC_SwitchOpcode /*2 cases */, 87|128,2/*343*/, TARGET_VAL(ISD::BUILD_VECTOR),// ->403649 ++/*403306*/ OPC_CheckChild0Integer, 1, ++/*403308*/ OPC_CheckChild0Type, MVT::i32, ++/*403310*/ OPC_CheckChild1Integer, 1, ++/*403312*/ OPC_CheckChild1Type, MVT::i32, ++/*403314*/ OPC_CheckChild2Integer, 1, ++/*403316*/ OPC_CheckChild2Type, MVT::i32, ++/*403318*/ OPC_CheckChild3Integer, 1, ++/*403320*/ OPC_CheckChild3Type, MVT::i32, ++/*403322*/ OPC_CheckChild4Integer, 1, ++/*403324*/ OPC_CheckChild4Type, MVT::i32, ++/*403326*/ OPC_MoveChild5, ++/*403327*/ OPC_CheckInteger, 1, ++/*403329*/ OPC_CheckType, MVT::i32, ++/*403331*/ OPC_MoveParent, ++/*403332*/ OPC_MoveChild6, ++/*403333*/ OPC_CheckInteger, 1, ++/*403335*/ OPC_CheckType, MVT::i32, ++/*403337*/ OPC_MoveParent, ++/*403338*/ OPC_MoveChild7, ++/*403339*/ OPC_CheckInteger, 1, ++/*403341*/ OPC_CheckType, MVT::i32, ++/*403343*/ OPC_MoveParent, ++/*403344*/ OPC_MoveChild, 8, ++/*403346*/ OPC_CheckInteger, 1, ++/*403348*/ OPC_CheckType, MVT::i32, ++/*403350*/ OPC_MoveParent, ++/*403351*/ OPC_MoveChild, 9, ++/*403353*/ OPC_CheckInteger, 1, ++/*403355*/ OPC_CheckType, MVT::i32, ++/*403357*/ OPC_MoveParent, ++/*403358*/ OPC_MoveChild, 10, ++/*403360*/ OPC_CheckInteger, 1, ++/*403362*/ OPC_CheckType, MVT::i32, ++/*403364*/ OPC_MoveParent, ++/*403365*/ OPC_MoveChild, 11, ++/*403367*/ OPC_CheckInteger, 1, ++/*403369*/ OPC_CheckType, MVT::i32, ++/*403371*/ OPC_MoveParent, ++/*403372*/ OPC_MoveChild, 12, ++/*403374*/ OPC_CheckInteger, 1, ++/*403376*/ OPC_CheckType, MVT::i32, ++/*403378*/ OPC_MoveParent, ++/*403379*/ OPC_MoveChild, 13, ++/*403381*/ OPC_CheckInteger, 1, ++/*403383*/ OPC_CheckType, MVT::i32, ++/*403385*/ OPC_MoveParent, ++/*403386*/ OPC_MoveChild, 14, ++/*403388*/ OPC_CheckInteger, 1, ++/*403390*/ OPC_CheckType, MVT::i32, ++/*403392*/ OPC_MoveParent, ++/*403393*/ OPC_MoveChild, 15, ++/*403395*/ OPC_CheckInteger, 1, ++/*403397*/ OPC_CheckType, MVT::i32, ++/*403399*/ OPC_MoveParent, ++/*403400*/ OPC_MoveParent, ++/*403401*/ OPC_MoveChild1, ++/*403402*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*403405*/ OPC_Scope, 120, /*->403527*/ // 2 children in Scope ++/*403407*/ OPC_CheckChild0Same, 0, ++/*403409*/ OPC_CheckChild1Same, 1, ++/*403411*/ OPC_MoveParent, ++/*403412*/ OPC_MoveParent, ++/*403413*/ OPC_MoveParent, ++/*403414*/ OPC_MoveChild1, ++/*403415*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*403418*/ OPC_CheckChild0Integer, 1, ++/*403420*/ OPC_CheckChild0Type, MVT::i32, ++/*403422*/ OPC_CheckChild1Integer, 1, ++/*403424*/ OPC_CheckChild1Type, MVT::i32, ++/*403426*/ OPC_CheckChild2Integer, 1, ++/*403428*/ OPC_CheckChild2Type, MVT::i32, ++/*403430*/ OPC_CheckChild3Integer, 1, ++/*403432*/ OPC_CheckChild3Type, MVT::i32, ++/*403434*/ OPC_CheckChild4Integer, 1, ++/*403436*/ OPC_CheckChild4Type, MVT::i32, ++/*403438*/ OPC_MoveChild5, ++/*403439*/ OPC_CheckInteger, 1, ++/*403441*/ OPC_CheckType, MVT::i32, ++/*403443*/ OPC_MoveParent, ++/*403444*/ OPC_MoveChild6, ++/*403445*/ OPC_CheckInteger, 1, ++/*403447*/ OPC_CheckType, MVT::i32, ++/*403449*/ OPC_MoveParent, ++/*403450*/ OPC_MoveChild7, ++/*403451*/ OPC_CheckInteger, 1, ++/*403453*/ OPC_CheckType, MVT::i32, ++/*403455*/ OPC_MoveParent, ++/*403456*/ OPC_MoveChild, 8, ++/*403458*/ OPC_CheckInteger, 1, ++/*403460*/ OPC_CheckType, MVT::i32, ++/*403462*/ OPC_MoveParent, ++/*403463*/ OPC_MoveChild, 9, ++/*403465*/ OPC_CheckInteger, 1, ++/*403467*/ OPC_CheckType, MVT::i32, ++/*403469*/ OPC_MoveParent, ++/*403470*/ OPC_MoveChild, 10, ++/*403472*/ OPC_CheckInteger, 1, ++/*403474*/ OPC_CheckType, MVT::i32, ++/*403476*/ OPC_MoveParent, ++/*403477*/ OPC_MoveChild, 11, ++/*403479*/ OPC_CheckInteger, 1, ++/*403481*/ OPC_CheckType, MVT::i32, ++/*403483*/ OPC_MoveParent, ++/*403484*/ OPC_MoveChild, 12, ++/*403486*/ OPC_CheckInteger, 1, ++/*403488*/ OPC_CheckType, MVT::i32, ++/*403490*/ OPC_MoveParent, ++/*403491*/ OPC_MoveChild, 13, ++/*403493*/ OPC_CheckInteger, 1, ++/*403495*/ OPC_CheckType, MVT::i32, ++/*403497*/ OPC_MoveParent, ++/*403498*/ OPC_MoveChild, 14, ++/*403500*/ OPC_CheckInteger, 1, ++/*403502*/ OPC_CheckType, MVT::i32, ++/*403504*/ OPC_MoveParent, ++/*403505*/ OPC_MoveChild, 15, ++/*403507*/ OPC_CheckInteger, 1, ++/*403509*/ OPC_CheckType, MVT::i32, ++/*403511*/ OPC_MoveParent, ++/*403512*/ OPC_CheckType, MVT::v16i16, ++/*403514*/ OPC_MoveParent, ++/*403515*/ OPC_CheckType, MVT::v16i16, ++/*403517*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*403519*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*403527*/ /*Scope*/ 120, /*->403648*/ ++/*403528*/ OPC_CheckChild0Same, 1, ++/*403530*/ OPC_CheckChild1Same, 0, ++/*403532*/ OPC_MoveParent, ++/*403533*/ OPC_MoveParent, ++/*403534*/ OPC_MoveParent, ++/*403535*/ OPC_MoveChild1, ++/*403536*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*403539*/ OPC_CheckChild0Integer, 1, ++/*403541*/ OPC_CheckChild0Type, MVT::i32, ++/*403543*/ OPC_CheckChild1Integer, 1, ++/*403545*/ OPC_CheckChild1Type, MVT::i32, ++/*403547*/ OPC_CheckChild2Integer, 1, ++/*403549*/ OPC_CheckChild2Type, MVT::i32, ++/*403551*/ OPC_CheckChild3Integer, 1, ++/*403553*/ OPC_CheckChild3Type, MVT::i32, ++/*403555*/ OPC_CheckChild4Integer, 1, ++/*403557*/ OPC_CheckChild4Type, MVT::i32, ++/*403559*/ OPC_MoveChild5, ++/*403560*/ OPC_CheckInteger, 1, ++/*403562*/ OPC_CheckType, MVT::i32, ++/*403564*/ OPC_MoveParent, ++/*403565*/ OPC_MoveChild6, ++/*403566*/ OPC_CheckInteger, 1, ++/*403568*/ OPC_CheckType, MVT::i32, ++/*403570*/ OPC_MoveParent, ++/*403571*/ OPC_MoveChild7, ++/*403572*/ OPC_CheckInteger, 1, ++/*403574*/ OPC_CheckType, MVT::i32, ++/*403576*/ OPC_MoveParent, ++/*403577*/ OPC_MoveChild, 8, ++/*403579*/ OPC_CheckInteger, 1, ++/*403581*/ OPC_CheckType, MVT::i32, ++/*403583*/ OPC_MoveParent, ++/*403584*/ OPC_MoveChild, 9, ++/*403586*/ OPC_CheckInteger, 1, ++/*403588*/ OPC_CheckType, MVT::i32, ++/*403590*/ OPC_MoveParent, ++/*403591*/ OPC_MoveChild, 10, ++/*403593*/ OPC_CheckInteger, 1, ++/*403595*/ OPC_CheckType, MVT::i32, ++/*403597*/ OPC_MoveParent, ++/*403598*/ OPC_MoveChild, 11, ++/*403600*/ OPC_CheckInteger, 1, ++/*403602*/ OPC_CheckType, MVT::i32, ++/*403604*/ OPC_MoveParent, ++/*403605*/ OPC_MoveChild, 12, ++/*403607*/ OPC_CheckInteger, 1, ++/*403609*/ OPC_CheckType, MVT::i32, ++/*403611*/ OPC_MoveParent, ++/*403612*/ OPC_MoveChild, 13, ++/*403614*/ OPC_CheckInteger, 1, ++/*403616*/ OPC_CheckType, MVT::i32, ++/*403618*/ OPC_MoveParent, ++/*403619*/ OPC_MoveChild, 14, ++/*403621*/ OPC_CheckInteger, 1, ++/*403623*/ OPC_CheckType, MVT::i32, ++/*403625*/ OPC_MoveParent, ++/*403626*/ OPC_MoveChild, 15, ++/*403628*/ OPC_CheckInteger, 1, ++/*403630*/ OPC_CheckType, MVT::i32, ++/*403632*/ OPC_MoveParent, ++/*403633*/ OPC_CheckType, MVT::v16i16, ++/*403635*/ OPC_MoveParent, ++/*403636*/ OPC_CheckType, MVT::v16i16, ++/*403638*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*403640*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*403648*/ 0, /*End of Scope*/ ++/*403649*/ /*SwitchOpcode*/ 48|128,10/*1328*/, TARGET_VAL(ISD::ADD),// ->404981 ++/*403653*/ OPC_Scope, 91|128,1/*219*/, /*->403875*/ // 6 children in Scope ++/*403656*/ OPC_MoveChild0, ++/*403657*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*403660*/ OPC_CheckChild0Integer, 1, ++/*403662*/ OPC_CheckChild0Type, MVT::i32, ++/*403664*/ OPC_CheckChild1Integer, 1, ++/*403666*/ OPC_CheckChild1Type, MVT::i32, ++/*403668*/ OPC_CheckChild2Integer, 1, ++/*403670*/ OPC_CheckChild2Type, MVT::i32, ++/*403672*/ OPC_CheckChild3Integer, 1, ++/*403674*/ OPC_CheckChild3Type, MVT::i32, ++/*403676*/ OPC_CheckChild4Integer, 1, ++/*403678*/ OPC_CheckChild4Type, MVT::i32, ++/*403680*/ OPC_MoveChild5, ++/*403681*/ OPC_CheckInteger, 1, ++/*403683*/ OPC_CheckType, MVT::i32, ++/*403685*/ OPC_MoveParent, ++/*403686*/ OPC_MoveChild6, ++/*403687*/ OPC_CheckInteger, 1, ++/*403689*/ OPC_CheckType, MVT::i32, ++/*403691*/ OPC_MoveParent, ++/*403692*/ OPC_MoveChild7, ++/*403693*/ OPC_CheckInteger, 1, ++/*403695*/ OPC_CheckType, MVT::i32, ++/*403697*/ OPC_MoveParent, ++/*403698*/ OPC_MoveChild, 8, ++/*403700*/ OPC_CheckInteger, 1, ++/*403702*/ OPC_CheckType, MVT::i32, ++/*403704*/ OPC_MoveParent, ++/*403705*/ OPC_MoveChild, 9, ++/*403707*/ OPC_CheckInteger, 1, ++/*403709*/ OPC_CheckType, MVT::i32, ++/*403711*/ OPC_MoveParent, ++/*403712*/ OPC_MoveChild, 10, ++/*403714*/ OPC_CheckInteger, 1, ++/*403716*/ OPC_CheckType, MVT::i32, ++/*403718*/ OPC_MoveParent, ++/*403719*/ OPC_MoveChild, 11, ++/*403721*/ OPC_CheckInteger, 1, ++/*403723*/ OPC_CheckType, MVT::i32, ++/*403725*/ OPC_MoveParent, ++/*403726*/ OPC_MoveChild, 12, ++/*403728*/ OPC_CheckInteger, 1, ++/*403730*/ OPC_CheckType, MVT::i32, ++/*403732*/ OPC_MoveParent, ++/*403733*/ OPC_MoveChild, 13, ++/*403735*/ OPC_CheckInteger, 1, ++/*403737*/ OPC_CheckType, MVT::i32, ++/*403739*/ OPC_MoveParent, ++/*403740*/ OPC_MoveChild, 14, ++/*403742*/ OPC_CheckInteger, 1, ++/*403744*/ OPC_CheckType, MVT::i32, ++/*403746*/ OPC_MoveParent, ++/*403747*/ OPC_MoveChild, 15, ++/*403749*/ OPC_CheckInteger, 1, ++/*403751*/ OPC_CheckType, MVT::i32, ++/*403753*/ OPC_MoveParent, ++/*403754*/ OPC_MoveParent, ++/*403755*/ OPC_CheckChild1Same, 1, ++/*403757*/ OPC_MoveParent, ++/*403758*/ OPC_CheckChild1Same, 0, ++/*403760*/ OPC_MoveParent, ++/*403761*/ OPC_MoveParent, ++/*403762*/ OPC_MoveChild1, ++/*403763*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*403766*/ OPC_CheckChild0Integer, 1, ++/*403768*/ OPC_CheckChild0Type, MVT::i32, ++/*403770*/ OPC_CheckChild1Integer, 1, ++/*403772*/ OPC_CheckChild1Type, MVT::i32, ++/*403774*/ OPC_CheckChild2Integer, 1, ++/*403776*/ OPC_CheckChild2Type, MVT::i32, ++/*403778*/ OPC_CheckChild3Integer, 1, ++/*403780*/ OPC_CheckChild3Type, MVT::i32, ++/*403782*/ OPC_CheckChild4Integer, 1, ++/*403784*/ OPC_CheckChild4Type, MVT::i32, ++/*403786*/ OPC_MoveChild5, ++/*403787*/ OPC_CheckInteger, 1, ++/*403789*/ OPC_CheckType, MVT::i32, ++/*403791*/ OPC_MoveParent, ++/*403792*/ OPC_MoveChild6, ++/*403793*/ OPC_CheckInteger, 1, ++/*403795*/ OPC_CheckType, MVT::i32, ++/*403797*/ OPC_MoveParent, ++/*403798*/ OPC_MoveChild7, ++/*403799*/ OPC_CheckInteger, 1, ++/*403801*/ OPC_CheckType, MVT::i32, ++/*403803*/ OPC_MoveParent, ++/*403804*/ OPC_MoveChild, 8, ++/*403806*/ OPC_CheckInteger, 1, ++/*403808*/ OPC_CheckType, MVT::i32, ++/*403810*/ OPC_MoveParent, ++/*403811*/ OPC_MoveChild, 9, ++/*403813*/ OPC_CheckInteger, 1, ++/*403815*/ OPC_CheckType, MVT::i32, ++/*403817*/ OPC_MoveParent, ++/*403818*/ OPC_MoveChild, 10, ++/*403820*/ OPC_CheckInteger, 1, ++/*403822*/ OPC_CheckType, MVT::i32, ++/*403824*/ OPC_MoveParent, ++/*403825*/ OPC_MoveChild, 11, ++/*403827*/ OPC_CheckInteger, 1, ++/*403829*/ OPC_CheckType, MVT::i32, ++/*403831*/ OPC_MoveParent, ++/*403832*/ OPC_MoveChild, 12, ++/*403834*/ OPC_CheckInteger, 1, ++/*403836*/ OPC_CheckType, MVT::i32, ++/*403838*/ OPC_MoveParent, ++/*403839*/ OPC_MoveChild, 13, ++/*403841*/ OPC_CheckInteger, 1, ++/*403843*/ OPC_CheckType, MVT::i32, ++/*403845*/ OPC_MoveParent, ++/*403846*/ OPC_MoveChild, 14, ++/*403848*/ OPC_CheckInteger, 1, ++/*403850*/ OPC_CheckType, MVT::i32, ++/*403852*/ OPC_MoveParent, ++/*403853*/ OPC_MoveChild, 15, ++/*403855*/ OPC_CheckInteger, 1, ++/*403857*/ OPC_CheckType, MVT::i32, ++/*403859*/ OPC_MoveParent, ++/*403860*/ OPC_CheckType, MVT::v16i16, ++/*403862*/ OPC_MoveParent, ++/*403863*/ OPC_CheckType, MVT::v16i16, ++/*403865*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*403867*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a), LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*403875*/ /*Scope*/ 91|128,1/*219*/, /*->404096*/ ++/*403877*/ OPC_CheckChild0Same, 1, ++/*403879*/ OPC_MoveChild1, ++/*403880*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*403883*/ OPC_CheckChild0Integer, 1, ++/*403885*/ OPC_CheckChild0Type, MVT::i32, ++/*403887*/ OPC_CheckChild1Integer, 1, ++/*403889*/ OPC_CheckChild1Type, MVT::i32, ++/*403891*/ OPC_CheckChild2Integer, 1, ++/*403893*/ OPC_CheckChild2Type, MVT::i32, ++/*403895*/ OPC_CheckChild3Integer, 1, ++/*403897*/ OPC_CheckChild3Type, MVT::i32, ++/*403899*/ OPC_CheckChild4Integer, 1, ++/*403901*/ OPC_CheckChild4Type, MVT::i32, ++/*403903*/ OPC_MoveChild5, ++/*403904*/ OPC_CheckInteger, 1, ++/*403906*/ OPC_CheckType, MVT::i32, ++/*403908*/ OPC_MoveParent, ++/*403909*/ OPC_MoveChild6, ++/*403910*/ OPC_CheckInteger, 1, ++/*403912*/ OPC_CheckType, MVT::i32, ++/*403914*/ OPC_MoveParent, ++/*403915*/ OPC_MoveChild7, ++/*403916*/ OPC_CheckInteger, 1, ++/*403918*/ OPC_CheckType, MVT::i32, ++/*403920*/ OPC_MoveParent, ++/*403921*/ OPC_MoveChild, 8, ++/*403923*/ OPC_CheckInteger, 1, ++/*403925*/ OPC_CheckType, MVT::i32, ++/*403927*/ OPC_MoveParent, ++/*403928*/ OPC_MoveChild, 9, ++/*403930*/ OPC_CheckInteger, 1, ++/*403932*/ OPC_CheckType, MVT::i32, ++/*403934*/ OPC_MoveParent, ++/*403935*/ OPC_MoveChild, 10, ++/*403937*/ OPC_CheckInteger, 1, ++/*403939*/ OPC_CheckType, MVT::i32, ++/*403941*/ OPC_MoveParent, ++/*403942*/ OPC_MoveChild, 11, ++/*403944*/ OPC_CheckInteger, 1, ++/*403946*/ OPC_CheckType, MVT::i32, ++/*403948*/ OPC_MoveParent, ++/*403949*/ OPC_MoveChild, 12, ++/*403951*/ OPC_CheckInteger, 1, ++/*403953*/ OPC_CheckType, MVT::i32, ++/*403955*/ OPC_MoveParent, ++/*403956*/ OPC_MoveChild, 13, ++/*403958*/ OPC_CheckInteger, 1, ++/*403960*/ OPC_CheckType, MVT::i32, ++/*403962*/ OPC_MoveParent, ++/*403963*/ OPC_MoveChild, 14, ++/*403965*/ OPC_CheckInteger, 1, ++/*403967*/ OPC_CheckType, MVT::i32, ++/*403969*/ OPC_MoveParent, ++/*403970*/ OPC_MoveChild, 15, ++/*403972*/ OPC_CheckInteger, 1, ++/*403974*/ OPC_CheckType, MVT::i32, ++/*403976*/ OPC_MoveParent, ++/*403977*/ OPC_MoveParent, ++/*403978*/ OPC_MoveParent, ++/*403979*/ OPC_CheckChild1Same, 0, ++/*403981*/ OPC_MoveParent, ++/*403982*/ OPC_MoveParent, ++/*403983*/ OPC_MoveChild1, ++/*403984*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*403987*/ OPC_CheckChild0Integer, 1, ++/*403989*/ OPC_CheckChild0Type, MVT::i32, ++/*403991*/ OPC_CheckChild1Integer, 1, ++/*403993*/ OPC_CheckChild1Type, MVT::i32, ++/*403995*/ OPC_CheckChild2Integer, 1, ++/*403997*/ OPC_CheckChild2Type, MVT::i32, ++/*403999*/ OPC_CheckChild3Integer, 1, ++/*404001*/ OPC_CheckChild3Type, MVT::i32, ++/*404003*/ OPC_CheckChild4Integer, 1, ++/*404005*/ OPC_CheckChild4Type, MVT::i32, ++/*404007*/ OPC_MoveChild5, ++/*404008*/ OPC_CheckInteger, 1, ++/*404010*/ OPC_CheckType, MVT::i32, ++/*404012*/ OPC_MoveParent, ++/*404013*/ OPC_MoveChild6, ++/*404014*/ OPC_CheckInteger, 1, ++/*404016*/ OPC_CheckType, MVT::i32, ++/*404018*/ OPC_MoveParent, ++/*404019*/ OPC_MoveChild7, ++/*404020*/ OPC_CheckInteger, 1, ++/*404022*/ OPC_CheckType, MVT::i32, ++/*404024*/ OPC_MoveParent, ++/*404025*/ OPC_MoveChild, 8, ++/*404027*/ OPC_CheckInteger, 1, ++/*404029*/ OPC_CheckType, MVT::i32, ++/*404031*/ OPC_MoveParent, ++/*404032*/ OPC_MoveChild, 9, ++/*404034*/ OPC_CheckInteger, 1, ++/*404036*/ OPC_CheckType, MVT::i32, ++/*404038*/ OPC_MoveParent, ++/*404039*/ OPC_MoveChild, 10, ++/*404041*/ OPC_CheckInteger, 1, ++/*404043*/ OPC_CheckType, MVT::i32, ++/*404045*/ OPC_MoveParent, ++/*404046*/ OPC_MoveChild, 11, ++/*404048*/ OPC_CheckInteger, 1, ++/*404050*/ OPC_CheckType, MVT::i32, ++/*404052*/ OPC_MoveParent, ++/*404053*/ OPC_MoveChild, 12, ++/*404055*/ OPC_CheckInteger, 1, ++/*404057*/ OPC_CheckType, MVT::i32, ++/*404059*/ OPC_MoveParent, ++/*404060*/ OPC_MoveChild, 13, ++/*404062*/ OPC_CheckInteger, 1, ++/*404064*/ OPC_CheckType, MVT::i32, ++/*404066*/ OPC_MoveParent, ++/*404067*/ OPC_MoveChild, 14, ++/*404069*/ OPC_CheckInteger, 1, ++/*404071*/ OPC_CheckType, MVT::i32, ++/*404073*/ OPC_MoveParent, ++/*404074*/ OPC_MoveChild, 15, ++/*404076*/ OPC_CheckInteger, 1, ++/*404078*/ OPC_CheckType, MVT::i32, ++/*404080*/ OPC_MoveParent, ++/*404081*/ OPC_CheckType, MVT::v16i16, ++/*404083*/ OPC_MoveParent, ++/*404084*/ OPC_CheckType, MVT::v16i16, ++/*404086*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*404088*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*404096*/ /*Scope*/ 91|128,1/*219*/, /*->404317*/ ++/*404098*/ OPC_MoveChild0, ++/*404099*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*404102*/ OPC_CheckChild0Integer, 1, ++/*404104*/ OPC_CheckChild0Type, MVT::i32, ++/*404106*/ OPC_CheckChild1Integer, 1, ++/*404108*/ OPC_CheckChild1Type, MVT::i32, ++/*404110*/ OPC_CheckChild2Integer, 1, ++/*404112*/ OPC_CheckChild2Type, MVT::i32, ++/*404114*/ OPC_CheckChild3Integer, 1, ++/*404116*/ OPC_CheckChild3Type, MVT::i32, ++/*404118*/ OPC_CheckChild4Integer, 1, ++/*404120*/ OPC_CheckChild4Type, MVT::i32, ++/*404122*/ OPC_MoveChild5, ++/*404123*/ OPC_CheckInteger, 1, ++/*404125*/ OPC_CheckType, MVT::i32, ++/*404127*/ OPC_MoveParent, ++/*404128*/ OPC_MoveChild6, ++/*404129*/ OPC_CheckInteger, 1, ++/*404131*/ OPC_CheckType, MVT::i32, ++/*404133*/ OPC_MoveParent, ++/*404134*/ OPC_MoveChild7, ++/*404135*/ OPC_CheckInteger, 1, ++/*404137*/ OPC_CheckType, MVT::i32, ++/*404139*/ OPC_MoveParent, ++/*404140*/ OPC_MoveChild, 8, ++/*404142*/ OPC_CheckInteger, 1, ++/*404144*/ OPC_CheckType, MVT::i32, ++/*404146*/ OPC_MoveParent, ++/*404147*/ OPC_MoveChild, 9, ++/*404149*/ OPC_CheckInteger, 1, ++/*404151*/ OPC_CheckType, MVT::i32, ++/*404153*/ OPC_MoveParent, ++/*404154*/ OPC_MoveChild, 10, ++/*404156*/ OPC_CheckInteger, 1, ++/*404158*/ OPC_CheckType, MVT::i32, ++/*404160*/ OPC_MoveParent, ++/*404161*/ OPC_MoveChild, 11, ++/*404163*/ OPC_CheckInteger, 1, ++/*404165*/ OPC_CheckType, MVT::i32, ++/*404167*/ OPC_MoveParent, ++/*404168*/ OPC_MoveChild, 12, ++/*404170*/ OPC_CheckInteger, 1, ++/*404172*/ OPC_CheckType, MVT::i32, ++/*404174*/ OPC_MoveParent, ++/*404175*/ OPC_MoveChild, 13, ++/*404177*/ OPC_CheckInteger, 1, ++/*404179*/ OPC_CheckType, MVT::i32, ++/*404181*/ OPC_MoveParent, ++/*404182*/ OPC_MoveChild, 14, ++/*404184*/ OPC_CheckInteger, 1, ++/*404186*/ OPC_CheckType, MVT::i32, ++/*404188*/ OPC_MoveParent, ++/*404189*/ OPC_MoveChild, 15, ++/*404191*/ OPC_CheckInteger, 1, ++/*404193*/ OPC_CheckType, MVT::i32, ++/*404195*/ OPC_MoveParent, ++/*404196*/ OPC_MoveParent, ++/*404197*/ OPC_CheckChild1Same, 0, ++/*404199*/ OPC_MoveParent, ++/*404200*/ OPC_CheckChild1Same, 1, ++/*404202*/ OPC_MoveParent, ++/*404203*/ OPC_MoveParent, ++/*404204*/ OPC_MoveChild1, ++/*404205*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*404208*/ OPC_CheckChild0Integer, 1, ++/*404210*/ OPC_CheckChild0Type, MVT::i32, ++/*404212*/ OPC_CheckChild1Integer, 1, ++/*404214*/ OPC_CheckChild1Type, MVT::i32, ++/*404216*/ OPC_CheckChild2Integer, 1, ++/*404218*/ OPC_CheckChild2Type, MVT::i32, ++/*404220*/ OPC_CheckChild3Integer, 1, ++/*404222*/ OPC_CheckChild3Type, MVT::i32, ++/*404224*/ OPC_CheckChild4Integer, 1, ++/*404226*/ OPC_CheckChild4Type, MVT::i32, ++/*404228*/ OPC_MoveChild5, ++/*404229*/ OPC_CheckInteger, 1, ++/*404231*/ OPC_CheckType, MVT::i32, ++/*404233*/ OPC_MoveParent, ++/*404234*/ OPC_MoveChild6, ++/*404235*/ OPC_CheckInteger, 1, ++/*404237*/ OPC_CheckType, MVT::i32, ++/*404239*/ OPC_MoveParent, ++/*404240*/ OPC_MoveChild7, ++/*404241*/ OPC_CheckInteger, 1, ++/*404243*/ OPC_CheckType, MVT::i32, ++/*404245*/ OPC_MoveParent, ++/*404246*/ OPC_MoveChild, 8, ++/*404248*/ OPC_CheckInteger, 1, ++/*404250*/ OPC_CheckType, MVT::i32, ++/*404252*/ OPC_MoveParent, ++/*404253*/ OPC_MoveChild, 9, ++/*404255*/ OPC_CheckInteger, 1, ++/*404257*/ OPC_CheckType, MVT::i32, ++/*404259*/ OPC_MoveParent, ++/*404260*/ OPC_MoveChild, 10, ++/*404262*/ OPC_CheckInteger, 1, ++/*404264*/ OPC_CheckType, MVT::i32, ++/*404266*/ OPC_MoveParent, ++/*404267*/ OPC_MoveChild, 11, ++/*404269*/ OPC_CheckInteger, 1, ++/*404271*/ OPC_CheckType, MVT::i32, ++/*404273*/ OPC_MoveParent, ++/*404274*/ OPC_MoveChild, 12, ++/*404276*/ OPC_CheckInteger, 1, ++/*404278*/ OPC_CheckType, MVT::i32, ++/*404280*/ OPC_MoveParent, ++/*404281*/ OPC_MoveChild, 13, ++/*404283*/ OPC_CheckInteger, 1, ++/*404285*/ OPC_CheckType, MVT::i32, ++/*404287*/ OPC_MoveParent, ++/*404288*/ OPC_MoveChild, 14, ++/*404290*/ OPC_CheckInteger, 1, ++/*404292*/ OPC_CheckType, MVT::i32, ++/*404294*/ OPC_MoveParent, ++/*404295*/ OPC_MoveChild, 15, ++/*404297*/ OPC_CheckInteger, 1, ++/*404299*/ OPC_CheckType, MVT::i32, ++/*404301*/ OPC_MoveParent, ++/*404302*/ OPC_CheckType, MVT::v16i16, ++/*404304*/ OPC_MoveParent, ++/*404305*/ OPC_CheckType, MVT::v16i16, ++/*404307*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*404309*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b), LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*404317*/ /*Scope*/ 91|128,1/*219*/, /*->404538*/ ++/*404319*/ OPC_CheckChild0Same, 0, ++/*404321*/ OPC_MoveChild1, ++/*404322*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*404325*/ OPC_CheckChild0Integer, 1, ++/*404327*/ OPC_CheckChild0Type, MVT::i32, ++/*404329*/ OPC_CheckChild1Integer, 1, ++/*404331*/ OPC_CheckChild1Type, MVT::i32, ++/*404333*/ OPC_CheckChild2Integer, 1, ++/*404335*/ OPC_CheckChild2Type, MVT::i32, ++/*404337*/ OPC_CheckChild3Integer, 1, ++/*404339*/ OPC_CheckChild3Type, MVT::i32, ++/*404341*/ OPC_CheckChild4Integer, 1, ++/*404343*/ OPC_CheckChild4Type, MVT::i32, ++/*404345*/ OPC_MoveChild5, ++/*404346*/ OPC_CheckInteger, 1, ++/*404348*/ OPC_CheckType, MVT::i32, ++/*404350*/ OPC_MoveParent, ++/*404351*/ OPC_MoveChild6, ++/*404352*/ OPC_CheckInteger, 1, ++/*404354*/ OPC_CheckType, MVT::i32, ++/*404356*/ OPC_MoveParent, ++/*404357*/ OPC_MoveChild7, ++/*404358*/ OPC_CheckInteger, 1, ++/*404360*/ OPC_CheckType, MVT::i32, ++/*404362*/ OPC_MoveParent, ++/*404363*/ OPC_MoveChild, 8, ++/*404365*/ OPC_CheckInteger, 1, ++/*404367*/ OPC_CheckType, MVT::i32, ++/*404369*/ OPC_MoveParent, ++/*404370*/ OPC_MoveChild, 9, ++/*404372*/ OPC_CheckInteger, 1, ++/*404374*/ OPC_CheckType, MVT::i32, ++/*404376*/ OPC_MoveParent, ++/*404377*/ OPC_MoveChild, 10, ++/*404379*/ OPC_CheckInteger, 1, ++/*404381*/ OPC_CheckType, MVT::i32, ++/*404383*/ OPC_MoveParent, ++/*404384*/ OPC_MoveChild, 11, ++/*404386*/ OPC_CheckInteger, 1, ++/*404388*/ OPC_CheckType, MVT::i32, ++/*404390*/ OPC_MoveParent, ++/*404391*/ OPC_MoveChild, 12, ++/*404393*/ OPC_CheckInteger, 1, ++/*404395*/ OPC_CheckType, MVT::i32, ++/*404397*/ OPC_MoveParent, ++/*404398*/ OPC_MoveChild, 13, ++/*404400*/ OPC_CheckInteger, 1, ++/*404402*/ OPC_CheckType, MVT::i32, ++/*404404*/ OPC_MoveParent, ++/*404405*/ OPC_MoveChild, 14, ++/*404407*/ OPC_CheckInteger, 1, ++/*404409*/ OPC_CheckType, MVT::i32, ++/*404411*/ OPC_MoveParent, ++/*404412*/ OPC_MoveChild, 15, ++/*404414*/ OPC_CheckInteger, 1, ++/*404416*/ OPC_CheckType, MVT::i32, ++/*404418*/ OPC_MoveParent, ++/*404419*/ OPC_MoveParent, ++/*404420*/ OPC_MoveParent, ++/*404421*/ OPC_CheckChild1Same, 1, ++/*404423*/ OPC_MoveParent, ++/*404424*/ OPC_MoveParent, ++/*404425*/ OPC_MoveChild1, ++/*404426*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*404429*/ OPC_CheckChild0Integer, 1, ++/*404431*/ OPC_CheckChild0Type, MVT::i32, ++/*404433*/ OPC_CheckChild1Integer, 1, ++/*404435*/ OPC_CheckChild1Type, MVT::i32, ++/*404437*/ OPC_CheckChild2Integer, 1, ++/*404439*/ OPC_CheckChild2Type, MVT::i32, ++/*404441*/ OPC_CheckChild3Integer, 1, ++/*404443*/ OPC_CheckChild3Type, MVT::i32, ++/*404445*/ OPC_CheckChild4Integer, 1, ++/*404447*/ OPC_CheckChild4Type, MVT::i32, ++/*404449*/ OPC_MoveChild5, ++/*404450*/ OPC_CheckInteger, 1, ++/*404452*/ OPC_CheckType, MVT::i32, ++/*404454*/ OPC_MoveParent, ++/*404455*/ OPC_MoveChild6, ++/*404456*/ OPC_CheckInteger, 1, ++/*404458*/ OPC_CheckType, MVT::i32, ++/*404460*/ OPC_MoveParent, ++/*404461*/ OPC_MoveChild7, ++/*404462*/ OPC_CheckInteger, 1, ++/*404464*/ OPC_CheckType, MVT::i32, ++/*404466*/ OPC_MoveParent, ++/*404467*/ OPC_MoveChild, 8, ++/*404469*/ OPC_CheckInteger, 1, ++/*404471*/ OPC_CheckType, MVT::i32, ++/*404473*/ OPC_MoveParent, ++/*404474*/ OPC_MoveChild, 9, ++/*404476*/ OPC_CheckInteger, 1, ++/*404478*/ OPC_CheckType, MVT::i32, ++/*404480*/ OPC_MoveParent, ++/*404481*/ OPC_MoveChild, 10, ++/*404483*/ OPC_CheckInteger, 1, ++/*404485*/ OPC_CheckType, MVT::i32, ++/*404487*/ OPC_MoveParent, ++/*404488*/ OPC_MoveChild, 11, ++/*404490*/ OPC_CheckInteger, 1, ++/*404492*/ OPC_CheckType, MVT::i32, ++/*404494*/ OPC_MoveParent, ++/*404495*/ OPC_MoveChild, 12, ++/*404497*/ OPC_CheckInteger, 1, ++/*404499*/ OPC_CheckType, MVT::i32, ++/*404501*/ OPC_MoveParent, ++/*404502*/ OPC_MoveChild, 13, ++/*404504*/ OPC_CheckInteger, 1, ++/*404506*/ OPC_CheckType, MVT::i32, ++/*404508*/ OPC_MoveParent, ++/*404509*/ OPC_MoveChild, 14, ++/*404511*/ OPC_CheckInteger, 1, ++/*404513*/ OPC_CheckType, MVT::i32, ++/*404515*/ OPC_MoveParent, ++/*404516*/ OPC_MoveChild, 15, ++/*404518*/ OPC_CheckInteger, 1, ++/*404520*/ OPC_CheckType, MVT::i32, ++/*404522*/ OPC_MoveParent, ++/*404523*/ OPC_CheckType, MVT::v16i16, ++/*404525*/ OPC_MoveParent, ++/*404526*/ OPC_CheckType, MVT::v16i16, ++/*404528*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*404530*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*404538*/ /*Scope*/ 91|128,1/*219*/, /*->404759*/ ++/*404540*/ OPC_CheckChild0Same, 1, ++/*404542*/ OPC_CheckChild1Same, 0, ++/*404544*/ OPC_MoveParent, ++/*404545*/ OPC_MoveChild1, ++/*404546*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*404549*/ OPC_CheckChild0Integer, 1, ++/*404551*/ OPC_CheckChild0Type, MVT::i32, ++/*404553*/ OPC_CheckChild1Integer, 1, ++/*404555*/ OPC_CheckChild1Type, MVT::i32, ++/*404557*/ OPC_CheckChild2Integer, 1, ++/*404559*/ OPC_CheckChild2Type, MVT::i32, ++/*404561*/ OPC_CheckChild3Integer, 1, ++/*404563*/ OPC_CheckChild3Type, MVT::i32, ++/*404565*/ OPC_CheckChild4Integer, 1, ++/*404567*/ OPC_CheckChild4Type, MVT::i32, ++/*404569*/ OPC_MoveChild5, ++/*404570*/ OPC_CheckInteger, 1, ++/*404572*/ OPC_CheckType, MVT::i32, ++/*404574*/ OPC_MoveParent, ++/*404575*/ OPC_MoveChild6, ++/*404576*/ OPC_CheckInteger, 1, ++/*404578*/ OPC_CheckType, MVT::i32, ++/*404580*/ OPC_MoveParent, ++/*404581*/ OPC_MoveChild7, ++/*404582*/ OPC_CheckInteger, 1, ++/*404584*/ OPC_CheckType, MVT::i32, ++/*404586*/ OPC_MoveParent, ++/*404587*/ OPC_MoveChild, 8, ++/*404589*/ OPC_CheckInteger, 1, ++/*404591*/ OPC_CheckType, MVT::i32, ++/*404593*/ OPC_MoveParent, ++/*404594*/ OPC_MoveChild, 9, ++/*404596*/ OPC_CheckInteger, 1, ++/*404598*/ OPC_CheckType, MVT::i32, ++/*404600*/ OPC_MoveParent, ++/*404601*/ OPC_MoveChild, 10, ++/*404603*/ OPC_CheckInteger, 1, ++/*404605*/ OPC_CheckType, MVT::i32, ++/*404607*/ OPC_MoveParent, ++/*404608*/ OPC_MoveChild, 11, ++/*404610*/ OPC_CheckInteger, 1, ++/*404612*/ OPC_CheckType, MVT::i32, ++/*404614*/ OPC_MoveParent, ++/*404615*/ OPC_MoveChild, 12, ++/*404617*/ OPC_CheckInteger, 1, ++/*404619*/ OPC_CheckType, MVT::i32, ++/*404621*/ OPC_MoveParent, ++/*404622*/ OPC_MoveChild, 13, ++/*404624*/ OPC_CheckInteger, 1, ++/*404626*/ OPC_CheckType, MVT::i32, ++/*404628*/ OPC_MoveParent, ++/*404629*/ OPC_MoveChild, 14, ++/*404631*/ OPC_CheckInteger, 1, ++/*404633*/ OPC_CheckType, MVT::i32, ++/*404635*/ OPC_MoveParent, ++/*404636*/ OPC_MoveChild, 15, ++/*404638*/ OPC_CheckInteger, 1, ++/*404640*/ OPC_CheckType, MVT::i32, ++/*404642*/ OPC_MoveParent, ++/*404643*/ OPC_MoveParent, ++/*404644*/ OPC_MoveParent, ++/*404645*/ OPC_MoveParent, ++/*404646*/ OPC_MoveChild1, ++/*404647*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*404650*/ OPC_CheckChild0Integer, 1, ++/*404652*/ OPC_CheckChild0Type, MVT::i32, ++/*404654*/ OPC_CheckChild1Integer, 1, ++/*404656*/ OPC_CheckChild1Type, MVT::i32, ++/*404658*/ OPC_CheckChild2Integer, 1, ++/*404660*/ OPC_CheckChild2Type, MVT::i32, ++/*404662*/ OPC_CheckChild3Integer, 1, ++/*404664*/ OPC_CheckChild3Type, MVT::i32, ++/*404666*/ OPC_CheckChild4Integer, 1, ++/*404668*/ OPC_CheckChild4Type, MVT::i32, ++/*404670*/ OPC_MoveChild5, ++/*404671*/ OPC_CheckInteger, 1, ++/*404673*/ OPC_CheckType, MVT::i32, ++/*404675*/ OPC_MoveParent, ++/*404676*/ OPC_MoveChild6, ++/*404677*/ OPC_CheckInteger, 1, ++/*404679*/ OPC_CheckType, MVT::i32, ++/*404681*/ OPC_MoveParent, ++/*404682*/ OPC_MoveChild7, ++/*404683*/ OPC_CheckInteger, 1, ++/*404685*/ OPC_CheckType, MVT::i32, ++/*404687*/ OPC_MoveParent, ++/*404688*/ OPC_MoveChild, 8, ++/*404690*/ OPC_CheckInteger, 1, ++/*404692*/ OPC_CheckType, MVT::i32, ++/*404694*/ OPC_MoveParent, ++/*404695*/ OPC_MoveChild, 9, ++/*404697*/ OPC_CheckInteger, 1, ++/*404699*/ OPC_CheckType, MVT::i32, ++/*404701*/ OPC_MoveParent, ++/*404702*/ OPC_MoveChild, 10, ++/*404704*/ OPC_CheckInteger, 1, ++/*404706*/ OPC_CheckType, MVT::i32, ++/*404708*/ OPC_MoveParent, ++/*404709*/ OPC_MoveChild, 11, ++/*404711*/ OPC_CheckInteger, 1, ++/*404713*/ OPC_CheckType, MVT::i32, ++/*404715*/ OPC_MoveParent, ++/*404716*/ OPC_MoveChild, 12, ++/*404718*/ OPC_CheckInteger, 1, ++/*404720*/ OPC_CheckType, MVT::i32, ++/*404722*/ OPC_MoveParent, ++/*404723*/ OPC_MoveChild, 13, ++/*404725*/ OPC_CheckInteger, 1, ++/*404727*/ OPC_CheckType, MVT::i32, ++/*404729*/ OPC_MoveParent, ++/*404730*/ OPC_MoveChild, 14, ++/*404732*/ OPC_CheckInteger, 1, ++/*404734*/ OPC_CheckType, MVT::i32, ++/*404736*/ OPC_MoveParent, ++/*404737*/ OPC_MoveChild, 15, ++/*404739*/ OPC_CheckInteger, 1, ++/*404741*/ OPC_CheckType, MVT::i32, ++/*404743*/ OPC_MoveParent, ++/*404744*/ OPC_CheckType, MVT::v16i16, ++/*404746*/ OPC_MoveParent, ++/*404747*/ OPC_CheckType, MVT::v16i16, ++/*404749*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*404751*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*404759*/ /*Scope*/ 91|128,1/*219*/, /*->404980*/ ++/*404761*/ OPC_CheckChild0Same, 0, ++/*404763*/ OPC_CheckChild1Same, 1, ++/*404765*/ OPC_MoveParent, ++/*404766*/ OPC_MoveChild1, ++/*404767*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*404770*/ OPC_CheckChild0Integer, 1, ++/*404772*/ OPC_CheckChild0Type, MVT::i32, ++/*404774*/ OPC_CheckChild1Integer, 1, ++/*404776*/ OPC_CheckChild1Type, MVT::i32, ++/*404778*/ OPC_CheckChild2Integer, 1, ++/*404780*/ OPC_CheckChild2Type, MVT::i32, ++/*404782*/ OPC_CheckChild3Integer, 1, ++/*404784*/ OPC_CheckChild3Type, MVT::i32, ++/*404786*/ OPC_CheckChild4Integer, 1, ++/*404788*/ OPC_CheckChild4Type, MVT::i32, ++/*404790*/ OPC_MoveChild5, ++/*404791*/ OPC_CheckInteger, 1, ++/*404793*/ OPC_CheckType, MVT::i32, ++/*404795*/ OPC_MoveParent, ++/*404796*/ OPC_MoveChild6, ++/*404797*/ OPC_CheckInteger, 1, ++/*404799*/ OPC_CheckType, MVT::i32, ++/*404801*/ OPC_MoveParent, ++/*404802*/ OPC_MoveChild7, ++/*404803*/ OPC_CheckInteger, 1, ++/*404805*/ OPC_CheckType, MVT::i32, ++/*404807*/ OPC_MoveParent, ++/*404808*/ OPC_MoveChild, 8, ++/*404810*/ OPC_CheckInteger, 1, ++/*404812*/ OPC_CheckType, MVT::i32, ++/*404814*/ OPC_MoveParent, ++/*404815*/ OPC_MoveChild, 9, ++/*404817*/ OPC_CheckInteger, 1, ++/*404819*/ OPC_CheckType, MVT::i32, ++/*404821*/ OPC_MoveParent, ++/*404822*/ OPC_MoveChild, 10, ++/*404824*/ OPC_CheckInteger, 1, ++/*404826*/ OPC_CheckType, MVT::i32, ++/*404828*/ OPC_MoveParent, ++/*404829*/ OPC_MoveChild, 11, ++/*404831*/ OPC_CheckInteger, 1, ++/*404833*/ OPC_CheckType, MVT::i32, ++/*404835*/ OPC_MoveParent, ++/*404836*/ OPC_MoveChild, 12, ++/*404838*/ OPC_CheckInteger, 1, ++/*404840*/ OPC_CheckType, MVT::i32, ++/*404842*/ OPC_MoveParent, ++/*404843*/ OPC_MoveChild, 13, ++/*404845*/ OPC_CheckInteger, 1, ++/*404847*/ OPC_CheckType, MVT::i32, ++/*404849*/ OPC_MoveParent, ++/*404850*/ OPC_MoveChild, 14, ++/*404852*/ OPC_CheckInteger, 1, ++/*404854*/ OPC_CheckType, MVT::i32, ++/*404856*/ OPC_MoveParent, ++/*404857*/ OPC_MoveChild, 15, ++/*404859*/ OPC_CheckInteger, 1, ++/*404861*/ OPC_CheckType, MVT::i32, ++/*404863*/ OPC_MoveParent, ++/*404864*/ OPC_MoveParent, ++/*404865*/ OPC_MoveParent, ++/*404866*/ OPC_MoveParent, ++/*404867*/ OPC_MoveChild1, ++/*404868*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*404871*/ OPC_CheckChild0Integer, 1, ++/*404873*/ OPC_CheckChild0Type, MVT::i32, ++/*404875*/ OPC_CheckChild1Integer, 1, ++/*404877*/ OPC_CheckChild1Type, MVT::i32, ++/*404879*/ OPC_CheckChild2Integer, 1, ++/*404881*/ OPC_CheckChild2Type, MVT::i32, ++/*404883*/ OPC_CheckChild3Integer, 1, ++/*404885*/ OPC_CheckChild3Type, MVT::i32, ++/*404887*/ OPC_CheckChild4Integer, 1, ++/*404889*/ OPC_CheckChild4Type, MVT::i32, ++/*404891*/ OPC_MoveChild5, ++/*404892*/ OPC_CheckInteger, 1, ++/*404894*/ OPC_CheckType, MVT::i32, ++/*404896*/ OPC_MoveParent, ++/*404897*/ OPC_MoveChild6, ++/*404898*/ OPC_CheckInteger, 1, ++/*404900*/ OPC_CheckType, MVT::i32, ++/*404902*/ OPC_MoveParent, ++/*404903*/ OPC_MoveChild7, ++/*404904*/ OPC_CheckInteger, 1, ++/*404906*/ OPC_CheckType, MVT::i32, ++/*404908*/ OPC_MoveParent, ++/*404909*/ OPC_MoveChild, 8, ++/*404911*/ OPC_CheckInteger, 1, ++/*404913*/ OPC_CheckType, MVT::i32, ++/*404915*/ OPC_MoveParent, ++/*404916*/ OPC_MoveChild, 9, ++/*404918*/ OPC_CheckInteger, 1, ++/*404920*/ OPC_CheckType, MVT::i32, ++/*404922*/ OPC_MoveParent, ++/*404923*/ OPC_MoveChild, 10, ++/*404925*/ OPC_CheckInteger, 1, ++/*404927*/ OPC_CheckType, MVT::i32, ++/*404929*/ OPC_MoveParent, ++/*404930*/ OPC_MoveChild, 11, ++/*404932*/ OPC_CheckInteger, 1, ++/*404934*/ OPC_CheckType, MVT::i32, ++/*404936*/ OPC_MoveParent, ++/*404937*/ OPC_MoveChild, 12, ++/*404939*/ OPC_CheckInteger, 1, ++/*404941*/ OPC_CheckType, MVT::i32, ++/*404943*/ OPC_MoveParent, ++/*404944*/ OPC_MoveChild, 13, ++/*404946*/ OPC_CheckInteger, 1, ++/*404948*/ OPC_CheckType, MVT::i32, ++/*404950*/ OPC_MoveParent, ++/*404951*/ OPC_MoveChild, 14, ++/*404953*/ OPC_CheckInteger, 1, ++/*404955*/ OPC_CheckType, MVT::i32, ++/*404957*/ OPC_MoveParent, ++/*404958*/ OPC_MoveChild, 15, ++/*404960*/ OPC_CheckInteger, 1, ++/*404962*/ OPC_CheckType, MVT::i32, ++/*404964*/ OPC_MoveParent, ++/*404965*/ OPC_CheckType, MVT::v16i16, ++/*404967*/ OPC_MoveParent, ++/*404968*/ OPC_CheckType, MVT::v16i16, ++/*404970*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*404972*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*404980*/ 0, /*End of Scope*/ ++/*404981*/ 0, // EndSwitchOpcode ++/*404982*/ /*Scope*/ 62|128,3/*446*/, /*->405430*/ ++/*404984*/ OPC_CheckChild0Same, 0, ++/*404986*/ OPC_MoveChild1, ++/*404987*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*404990*/ OPC_Scope, 89|128,1/*217*/, /*->405210*/ // 2 children in Scope ++/*404993*/ OPC_MoveChild0, ++/*404994*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*404997*/ OPC_CheckChild0Integer, 1, ++/*404999*/ OPC_CheckChild0Type, MVT::i32, ++/*405001*/ OPC_CheckChild1Integer, 1, ++/*405003*/ OPC_CheckChild1Type, MVT::i32, ++/*405005*/ OPC_CheckChild2Integer, 1, ++/*405007*/ OPC_CheckChild2Type, MVT::i32, ++/*405009*/ OPC_CheckChild3Integer, 1, ++/*405011*/ OPC_CheckChild3Type, MVT::i32, ++/*405013*/ OPC_CheckChild4Integer, 1, ++/*405015*/ OPC_CheckChild4Type, MVT::i32, ++/*405017*/ OPC_MoveChild5, ++/*405018*/ OPC_CheckInteger, 1, ++/*405020*/ OPC_CheckType, MVT::i32, ++/*405022*/ OPC_MoveParent, ++/*405023*/ OPC_MoveChild6, ++/*405024*/ OPC_CheckInteger, 1, ++/*405026*/ OPC_CheckType, MVT::i32, ++/*405028*/ OPC_MoveParent, ++/*405029*/ OPC_MoveChild7, ++/*405030*/ OPC_CheckInteger, 1, ++/*405032*/ OPC_CheckType, MVT::i32, ++/*405034*/ OPC_MoveParent, ++/*405035*/ OPC_MoveChild, 8, ++/*405037*/ OPC_CheckInteger, 1, ++/*405039*/ OPC_CheckType, MVT::i32, ++/*405041*/ OPC_MoveParent, ++/*405042*/ OPC_MoveChild, 9, ++/*405044*/ OPC_CheckInteger, 1, ++/*405046*/ OPC_CheckType, MVT::i32, ++/*405048*/ OPC_MoveParent, ++/*405049*/ OPC_MoveChild, 10, ++/*405051*/ OPC_CheckInteger, 1, ++/*405053*/ OPC_CheckType, MVT::i32, ++/*405055*/ OPC_MoveParent, ++/*405056*/ OPC_MoveChild, 11, ++/*405058*/ OPC_CheckInteger, 1, ++/*405060*/ OPC_CheckType, MVT::i32, ++/*405062*/ OPC_MoveParent, ++/*405063*/ OPC_MoveChild, 12, ++/*405065*/ OPC_CheckInteger, 1, ++/*405067*/ OPC_CheckType, MVT::i32, ++/*405069*/ OPC_MoveParent, ++/*405070*/ OPC_MoveChild, 13, ++/*405072*/ OPC_CheckInteger, 1, ++/*405074*/ OPC_CheckType, MVT::i32, ++/*405076*/ OPC_MoveParent, ++/*405077*/ OPC_MoveChild, 14, ++/*405079*/ OPC_CheckInteger, 1, ++/*405081*/ OPC_CheckType, MVT::i32, ++/*405083*/ OPC_MoveParent, ++/*405084*/ OPC_MoveChild, 15, ++/*405086*/ OPC_CheckInteger, 1, ++/*405088*/ OPC_CheckType, MVT::i32, ++/*405090*/ OPC_MoveParent, ++/*405091*/ OPC_MoveParent, ++/*405092*/ OPC_CheckChild1Same, 1, ++/*405094*/ OPC_MoveParent, ++/*405095*/ OPC_MoveParent, ++/*405096*/ OPC_MoveParent, ++/*405097*/ OPC_MoveChild1, ++/*405098*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*405101*/ OPC_CheckChild0Integer, 1, ++/*405103*/ OPC_CheckChild0Type, MVT::i32, ++/*405105*/ OPC_CheckChild1Integer, 1, ++/*405107*/ OPC_CheckChild1Type, MVT::i32, ++/*405109*/ OPC_CheckChild2Integer, 1, ++/*405111*/ OPC_CheckChild2Type, MVT::i32, ++/*405113*/ OPC_CheckChild3Integer, 1, ++/*405115*/ OPC_CheckChild3Type, MVT::i32, ++/*405117*/ OPC_CheckChild4Integer, 1, ++/*405119*/ OPC_CheckChild4Type, MVT::i32, ++/*405121*/ OPC_MoveChild5, ++/*405122*/ OPC_CheckInteger, 1, ++/*405124*/ OPC_CheckType, MVT::i32, ++/*405126*/ OPC_MoveParent, ++/*405127*/ OPC_MoveChild6, ++/*405128*/ OPC_CheckInteger, 1, ++/*405130*/ OPC_CheckType, MVT::i32, ++/*405132*/ OPC_MoveParent, ++/*405133*/ OPC_MoveChild7, ++/*405134*/ OPC_CheckInteger, 1, ++/*405136*/ OPC_CheckType, MVT::i32, ++/*405138*/ OPC_MoveParent, ++/*405139*/ OPC_MoveChild, 8, ++/*405141*/ OPC_CheckInteger, 1, ++/*405143*/ OPC_CheckType, MVT::i32, ++/*405145*/ OPC_MoveParent, ++/*405146*/ OPC_MoveChild, 9, ++/*405148*/ OPC_CheckInteger, 1, ++/*405150*/ OPC_CheckType, MVT::i32, ++/*405152*/ OPC_MoveParent, ++/*405153*/ OPC_MoveChild, 10, ++/*405155*/ OPC_CheckInteger, 1, ++/*405157*/ OPC_CheckType, MVT::i32, ++/*405159*/ OPC_MoveParent, ++/*405160*/ OPC_MoveChild, 11, ++/*405162*/ OPC_CheckInteger, 1, ++/*405164*/ OPC_CheckType, MVT::i32, ++/*405166*/ OPC_MoveParent, ++/*405167*/ OPC_MoveChild, 12, ++/*405169*/ OPC_CheckInteger, 1, ++/*405171*/ OPC_CheckType, MVT::i32, ++/*405173*/ OPC_MoveParent, ++/*405174*/ OPC_MoveChild, 13, ++/*405176*/ OPC_CheckInteger, 1, ++/*405178*/ OPC_CheckType, MVT::i32, ++/*405180*/ OPC_MoveParent, ++/*405181*/ OPC_MoveChild, 14, ++/*405183*/ OPC_CheckInteger, 1, ++/*405185*/ OPC_CheckType, MVT::i32, ++/*405187*/ OPC_MoveParent, ++/*405188*/ OPC_MoveChild, 15, ++/*405190*/ OPC_CheckInteger, 1, ++/*405192*/ OPC_CheckType, MVT::i32, ++/*405194*/ OPC_MoveParent, ++/*405195*/ OPC_CheckType, MVT::v16i16, ++/*405197*/ OPC_MoveParent, ++/*405198*/ OPC_CheckType, MVT::v16i16, ++/*405200*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*405202*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$a))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*405210*/ /*Scope*/ 89|128,1/*217*/, /*->405429*/ ++/*405212*/ OPC_CheckChild0Same, 1, ++/*405214*/ OPC_MoveChild1, ++/*405215*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*405218*/ OPC_CheckChild0Integer, 1, ++/*405220*/ OPC_CheckChild0Type, MVT::i32, ++/*405222*/ OPC_CheckChild1Integer, 1, ++/*405224*/ OPC_CheckChild1Type, MVT::i32, ++/*405226*/ OPC_CheckChild2Integer, 1, ++/*405228*/ OPC_CheckChild2Type, MVT::i32, ++/*405230*/ OPC_CheckChild3Integer, 1, ++/*405232*/ OPC_CheckChild3Type, MVT::i32, ++/*405234*/ OPC_CheckChild4Integer, 1, ++/*405236*/ OPC_CheckChild4Type, MVT::i32, ++/*405238*/ OPC_MoveChild5, ++/*405239*/ OPC_CheckInteger, 1, ++/*405241*/ OPC_CheckType, MVT::i32, ++/*405243*/ OPC_MoveParent, ++/*405244*/ OPC_MoveChild6, ++/*405245*/ OPC_CheckInteger, 1, ++/*405247*/ OPC_CheckType, MVT::i32, ++/*405249*/ OPC_MoveParent, ++/*405250*/ OPC_MoveChild7, ++/*405251*/ OPC_CheckInteger, 1, ++/*405253*/ OPC_CheckType, MVT::i32, ++/*405255*/ OPC_MoveParent, ++/*405256*/ OPC_MoveChild, 8, ++/*405258*/ OPC_CheckInteger, 1, ++/*405260*/ OPC_CheckType, MVT::i32, ++/*405262*/ OPC_MoveParent, ++/*405263*/ OPC_MoveChild, 9, ++/*405265*/ OPC_CheckInteger, 1, ++/*405267*/ OPC_CheckType, MVT::i32, ++/*405269*/ OPC_MoveParent, ++/*405270*/ OPC_MoveChild, 10, ++/*405272*/ OPC_CheckInteger, 1, ++/*405274*/ OPC_CheckType, MVT::i32, ++/*405276*/ OPC_MoveParent, ++/*405277*/ OPC_MoveChild, 11, ++/*405279*/ OPC_CheckInteger, 1, ++/*405281*/ OPC_CheckType, MVT::i32, ++/*405283*/ OPC_MoveParent, ++/*405284*/ OPC_MoveChild, 12, ++/*405286*/ OPC_CheckInteger, 1, ++/*405288*/ OPC_CheckType, MVT::i32, ++/*405290*/ OPC_MoveParent, ++/*405291*/ OPC_MoveChild, 13, ++/*405293*/ OPC_CheckInteger, 1, ++/*405295*/ OPC_CheckType, MVT::i32, ++/*405297*/ OPC_MoveParent, ++/*405298*/ OPC_MoveChild, 14, ++/*405300*/ OPC_CheckInteger, 1, ++/*405302*/ OPC_CheckType, MVT::i32, ++/*405304*/ OPC_MoveParent, ++/*405305*/ OPC_MoveChild, 15, ++/*405307*/ OPC_CheckInteger, 1, ++/*405309*/ OPC_CheckType, MVT::i32, ++/*405311*/ OPC_MoveParent, ++/*405312*/ OPC_MoveParent, ++/*405313*/ OPC_MoveParent, ++/*405314*/ OPC_MoveParent, ++/*405315*/ OPC_MoveParent, ++/*405316*/ OPC_MoveChild1, ++/*405317*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*405320*/ OPC_CheckChild0Integer, 1, ++/*405322*/ OPC_CheckChild0Type, MVT::i32, ++/*405324*/ OPC_CheckChild1Integer, 1, ++/*405326*/ OPC_CheckChild1Type, MVT::i32, ++/*405328*/ OPC_CheckChild2Integer, 1, ++/*405330*/ OPC_CheckChild2Type, MVT::i32, ++/*405332*/ OPC_CheckChild3Integer, 1, ++/*405334*/ OPC_CheckChild3Type, MVT::i32, ++/*405336*/ OPC_CheckChild4Integer, 1, ++/*405338*/ OPC_CheckChild4Type, MVT::i32, ++/*405340*/ OPC_MoveChild5, ++/*405341*/ OPC_CheckInteger, 1, ++/*405343*/ OPC_CheckType, MVT::i32, ++/*405345*/ OPC_MoveParent, ++/*405346*/ OPC_MoveChild6, ++/*405347*/ OPC_CheckInteger, 1, ++/*405349*/ OPC_CheckType, MVT::i32, ++/*405351*/ OPC_MoveParent, ++/*405352*/ OPC_MoveChild7, ++/*405353*/ OPC_CheckInteger, 1, ++/*405355*/ OPC_CheckType, MVT::i32, ++/*405357*/ OPC_MoveParent, ++/*405358*/ OPC_MoveChild, 8, ++/*405360*/ OPC_CheckInteger, 1, ++/*405362*/ OPC_CheckType, MVT::i32, ++/*405364*/ OPC_MoveParent, ++/*405365*/ OPC_MoveChild, 9, ++/*405367*/ OPC_CheckInteger, 1, ++/*405369*/ OPC_CheckType, MVT::i32, ++/*405371*/ OPC_MoveParent, ++/*405372*/ OPC_MoveChild, 10, ++/*405374*/ OPC_CheckInteger, 1, ++/*405376*/ OPC_CheckType, MVT::i32, ++/*405378*/ OPC_MoveParent, ++/*405379*/ OPC_MoveChild, 11, ++/*405381*/ OPC_CheckInteger, 1, ++/*405383*/ OPC_CheckType, MVT::i32, ++/*405385*/ OPC_MoveParent, ++/*405386*/ OPC_MoveChild, 12, ++/*405388*/ OPC_CheckInteger, 1, ++/*405390*/ OPC_CheckType, MVT::i32, ++/*405392*/ OPC_MoveParent, ++/*405393*/ OPC_MoveChild, 13, ++/*405395*/ OPC_CheckInteger, 1, ++/*405397*/ OPC_CheckType, MVT::i32, ++/*405399*/ OPC_MoveParent, ++/*405400*/ OPC_MoveChild, 14, ++/*405402*/ OPC_CheckInteger, 1, ++/*405404*/ OPC_CheckType, MVT::i32, ++/*405406*/ OPC_MoveParent, ++/*405407*/ OPC_MoveChild, 15, ++/*405409*/ OPC_CheckInteger, 1, ++/*405411*/ OPC_CheckType, MVT::i32, ++/*405413*/ OPC_MoveParent, ++/*405414*/ OPC_CheckType, MVT::v16i16, ++/*405416*/ OPC_MoveParent, ++/*405417*/ OPC_CheckType, MVT::v16i16, ++/*405419*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*405421*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*405429*/ 0, /*End of Scope*/ ++/*405430*/ /*Scope*/ 62|128,3/*446*/, /*->405878*/ ++/*405432*/ OPC_CheckChild0Same, 1, ++/*405434*/ OPC_MoveChild1, ++/*405435*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*405438*/ OPC_Scope, 89|128,1/*217*/, /*->405658*/ // 2 children in Scope ++/*405441*/ OPC_MoveChild0, ++/*405442*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*405445*/ OPC_CheckChild0Integer, 1, ++/*405447*/ OPC_CheckChild0Type, MVT::i32, ++/*405449*/ OPC_CheckChild1Integer, 1, ++/*405451*/ OPC_CheckChild1Type, MVT::i32, ++/*405453*/ OPC_CheckChild2Integer, 1, ++/*405455*/ OPC_CheckChild2Type, MVT::i32, ++/*405457*/ OPC_CheckChild3Integer, 1, ++/*405459*/ OPC_CheckChild3Type, MVT::i32, ++/*405461*/ OPC_CheckChild4Integer, 1, ++/*405463*/ OPC_CheckChild4Type, MVT::i32, ++/*405465*/ OPC_MoveChild5, ++/*405466*/ OPC_CheckInteger, 1, ++/*405468*/ OPC_CheckType, MVT::i32, ++/*405470*/ OPC_MoveParent, ++/*405471*/ OPC_MoveChild6, ++/*405472*/ OPC_CheckInteger, 1, ++/*405474*/ OPC_CheckType, MVT::i32, ++/*405476*/ OPC_MoveParent, ++/*405477*/ OPC_MoveChild7, ++/*405478*/ OPC_CheckInteger, 1, ++/*405480*/ OPC_CheckType, MVT::i32, ++/*405482*/ OPC_MoveParent, ++/*405483*/ OPC_MoveChild, 8, ++/*405485*/ OPC_CheckInteger, 1, ++/*405487*/ OPC_CheckType, MVT::i32, ++/*405489*/ OPC_MoveParent, ++/*405490*/ OPC_MoveChild, 9, ++/*405492*/ OPC_CheckInteger, 1, ++/*405494*/ OPC_CheckType, MVT::i32, ++/*405496*/ OPC_MoveParent, ++/*405497*/ OPC_MoveChild, 10, ++/*405499*/ OPC_CheckInteger, 1, ++/*405501*/ OPC_CheckType, MVT::i32, ++/*405503*/ OPC_MoveParent, ++/*405504*/ OPC_MoveChild, 11, ++/*405506*/ OPC_CheckInteger, 1, ++/*405508*/ OPC_CheckType, MVT::i32, ++/*405510*/ OPC_MoveParent, ++/*405511*/ OPC_MoveChild, 12, ++/*405513*/ OPC_CheckInteger, 1, ++/*405515*/ OPC_CheckType, MVT::i32, ++/*405517*/ OPC_MoveParent, ++/*405518*/ OPC_MoveChild, 13, ++/*405520*/ OPC_CheckInteger, 1, ++/*405522*/ OPC_CheckType, MVT::i32, ++/*405524*/ OPC_MoveParent, ++/*405525*/ OPC_MoveChild, 14, ++/*405527*/ OPC_CheckInteger, 1, ++/*405529*/ OPC_CheckType, MVT::i32, ++/*405531*/ OPC_MoveParent, ++/*405532*/ OPC_MoveChild, 15, ++/*405534*/ OPC_CheckInteger, 1, ++/*405536*/ OPC_CheckType, MVT::i32, ++/*405538*/ OPC_MoveParent, ++/*405539*/ OPC_MoveParent, ++/*405540*/ OPC_CheckChild1Same, 0, ++/*405542*/ OPC_MoveParent, ++/*405543*/ OPC_MoveParent, ++/*405544*/ OPC_MoveParent, ++/*405545*/ OPC_MoveChild1, ++/*405546*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*405549*/ OPC_CheckChild0Integer, 1, ++/*405551*/ OPC_CheckChild0Type, MVT::i32, ++/*405553*/ OPC_CheckChild1Integer, 1, ++/*405555*/ OPC_CheckChild1Type, MVT::i32, ++/*405557*/ OPC_CheckChild2Integer, 1, ++/*405559*/ OPC_CheckChild2Type, MVT::i32, ++/*405561*/ OPC_CheckChild3Integer, 1, ++/*405563*/ OPC_CheckChild3Type, MVT::i32, ++/*405565*/ OPC_CheckChild4Integer, 1, ++/*405567*/ OPC_CheckChild4Type, MVT::i32, ++/*405569*/ OPC_MoveChild5, ++/*405570*/ OPC_CheckInteger, 1, ++/*405572*/ OPC_CheckType, MVT::i32, ++/*405574*/ OPC_MoveParent, ++/*405575*/ OPC_MoveChild6, ++/*405576*/ OPC_CheckInteger, 1, ++/*405578*/ OPC_CheckType, MVT::i32, ++/*405580*/ OPC_MoveParent, ++/*405581*/ OPC_MoveChild7, ++/*405582*/ OPC_CheckInteger, 1, ++/*405584*/ OPC_CheckType, MVT::i32, ++/*405586*/ OPC_MoveParent, ++/*405587*/ OPC_MoveChild, 8, ++/*405589*/ OPC_CheckInteger, 1, ++/*405591*/ OPC_CheckType, MVT::i32, ++/*405593*/ OPC_MoveParent, ++/*405594*/ OPC_MoveChild, 9, ++/*405596*/ OPC_CheckInteger, 1, ++/*405598*/ OPC_CheckType, MVT::i32, ++/*405600*/ OPC_MoveParent, ++/*405601*/ OPC_MoveChild, 10, ++/*405603*/ OPC_CheckInteger, 1, ++/*405605*/ OPC_CheckType, MVT::i32, ++/*405607*/ OPC_MoveParent, ++/*405608*/ OPC_MoveChild, 11, ++/*405610*/ OPC_CheckInteger, 1, ++/*405612*/ OPC_CheckType, MVT::i32, ++/*405614*/ OPC_MoveParent, ++/*405615*/ OPC_MoveChild, 12, ++/*405617*/ OPC_CheckInteger, 1, ++/*405619*/ OPC_CheckType, MVT::i32, ++/*405621*/ OPC_MoveParent, ++/*405622*/ OPC_MoveChild, 13, ++/*405624*/ OPC_CheckInteger, 1, ++/*405626*/ OPC_CheckType, MVT::i32, ++/*405628*/ OPC_MoveParent, ++/*405629*/ OPC_MoveChild, 14, ++/*405631*/ OPC_CheckInteger, 1, ++/*405633*/ OPC_CheckType, MVT::i32, ++/*405635*/ OPC_MoveParent, ++/*405636*/ OPC_MoveChild, 15, ++/*405638*/ OPC_CheckInteger, 1, ++/*405640*/ OPC_CheckType, MVT::i32, ++/*405642*/ OPC_MoveParent, ++/*405643*/ OPC_CheckType, MVT::v16i16, ++/*405645*/ OPC_MoveParent, ++/*405646*/ OPC_CheckType, MVT::v16i16, ++/*405648*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*405650*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256H:{ *:[v16i16] }:$b))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*405658*/ /*Scope*/ 89|128,1/*217*/, /*->405877*/ ++/*405660*/ OPC_CheckChild0Same, 0, ++/*405662*/ OPC_MoveChild1, ++/*405663*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*405666*/ OPC_CheckChild0Integer, 1, ++/*405668*/ OPC_CheckChild0Type, MVT::i32, ++/*405670*/ OPC_CheckChild1Integer, 1, ++/*405672*/ OPC_CheckChild1Type, MVT::i32, ++/*405674*/ OPC_CheckChild2Integer, 1, ++/*405676*/ OPC_CheckChild2Type, MVT::i32, ++/*405678*/ OPC_CheckChild3Integer, 1, ++/*405680*/ OPC_CheckChild3Type, MVT::i32, ++/*405682*/ OPC_CheckChild4Integer, 1, ++/*405684*/ OPC_CheckChild4Type, MVT::i32, ++/*405686*/ OPC_MoveChild5, ++/*405687*/ OPC_CheckInteger, 1, ++/*405689*/ OPC_CheckType, MVT::i32, ++/*405691*/ OPC_MoveParent, ++/*405692*/ OPC_MoveChild6, ++/*405693*/ OPC_CheckInteger, 1, ++/*405695*/ OPC_CheckType, MVT::i32, ++/*405697*/ OPC_MoveParent, ++/*405698*/ OPC_MoveChild7, ++/*405699*/ OPC_CheckInteger, 1, ++/*405701*/ OPC_CheckType, MVT::i32, ++/*405703*/ OPC_MoveParent, ++/*405704*/ OPC_MoveChild, 8, ++/*405706*/ OPC_CheckInteger, 1, ++/*405708*/ OPC_CheckType, MVT::i32, ++/*405710*/ OPC_MoveParent, ++/*405711*/ OPC_MoveChild, 9, ++/*405713*/ OPC_CheckInteger, 1, ++/*405715*/ OPC_CheckType, MVT::i32, ++/*405717*/ OPC_MoveParent, ++/*405718*/ OPC_MoveChild, 10, ++/*405720*/ OPC_CheckInteger, 1, ++/*405722*/ OPC_CheckType, MVT::i32, ++/*405724*/ OPC_MoveParent, ++/*405725*/ OPC_MoveChild, 11, ++/*405727*/ OPC_CheckInteger, 1, ++/*405729*/ OPC_CheckType, MVT::i32, ++/*405731*/ OPC_MoveParent, ++/*405732*/ OPC_MoveChild, 12, ++/*405734*/ OPC_CheckInteger, 1, ++/*405736*/ OPC_CheckType, MVT::i32, ++/*405738*/ OPC_MoveParent, ++/*405739*/ OPC_MoveChild, 13, ++/*405741*/ OPC_CheckInteger, 1, ++/*405743*/ OPC_CheckType, MVT::i32, ++/*405745*/ OPC_MoveParent, ++/*405746*/ OPC_MoveChild, 14, ++/*405748*/ OPC_CheckInteger, 1, ++/*405750*/ OPC_CheckType, MVT::i32, ++/*405752*/ OPC_MoveParent, ++/*405753*/ OPC_MoveChild, 15, ++/*405755*/ OPC_CheckInteger, 1, ++/*405757*/ OPC_CheckType, MVT::i32, ++/*405759*/ OPC_MoveParent, ++/*405760*/ OPC_MoveParent, ++/*405761*/ OPC_MoveParent, ++/*405762*/ OPC_MoveParent, ++/*405763*/ OPC_MoveParent, ++/*405764*/ OPC_MoveChild1, ++/*405765*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*405768*/ OPC_CheckChild0Integer, 1, ++/*405770*/ OPC_CheckChild0Type, MVT::i32, ++/*405772*/ OPC_CheckChild1Integer, 1, ++/*405774*/ OPC_CheckChild1Type, MVT::i32, ++/*405776*/ OPC_CheckChild2Integer, 1, ++/*405778*/ OPC_CheckChild2Type, MVT::i32, ++/*405780*/ OPC_CheckChild3Integer, 1, ++/*405782*/ OPC_CheckChild3Type, MVT::i32, ++/*405784*/ OPC_CheckChild4Integer, 1, ++/*405786*/ OPC_CheckChild4Type, MVT::i32, ++/*405788*/ OPC_MoveChild5, ++/*405789*/ OPC_CheckInteger, 1, ++/*405791*/ OPC_CheckType, MVT::i32, ++/*405793*/ OPC_MoveParent, ++/*405794*/ OPC_MoveChild6, ++/*405795*/ OPC_CheckInteger, 1, ++/*405797*/ OPC_CheckType, MVT::i32, ++/*405799*/ OPC_MoveParent, ++/*405800*/ OPC_MoveChild7, ++/*405801*/ OPC_CheckInteger, 1, ++/*405803*/ OPC_CheckType, MVT::i32, ++/*405805*/ OPC_MoveParent, ++/*405806*/ OPC_MoveChild, 8, ++/*405808*/ OPC_CheckInteger, 1, ++/*405810*/ OPC_CheckType, MVT::i32, ++/*405812*/ OPC_MoveParent, ++/*405813*/ OPC_MoveChild, 9, ++/*405815*/ OPC_CheckInteger, 1, ++/*405817*/ OPC_CheckType, MVT::i32, ++/*405819*/ OPC_MoveParent, ++/*405820*/ OPC_MoveChild, 10, ++/*405822*/ OPC_CheckInteger, 1, ++/*405824*/ OPC_CheckType, MVT::i32, ++/*405826*/ OPC_MoveParent, ++/*405827*/ OPC_MoveChild, 11, ++/*405829*/ OPC_CheckInteger, 1, ++/*405831*/ OPC_CheckType, MVT::i32, ++/*405833*/ OPC_MoveParent, ++/*405834*/ OPC_MoveChild, 12, ++/*405836*/ OPC_CheckInteger, 1, ++/*405838*/ OPC_CheckType, MVT::i32, ++/*405840*/ OPC_MoveParent, ++/*405841*/ OPC_MoveChild, 13, ++/*405843*/ OPC_CheckInteger, 1, ++/*405845*/ OPC_CheckType, MVT::i32, ++/*405847*/ OPC_MoveParent, ++/*405848*/ OPC_MoveChild, 14, ++/*405850*/ OPC_CheckInteger, 1, ++/*405852*/ OPC_CheckType, MVT::i32, ++/*405854*/ OPC_MoveParent, ++/*405855*/ OPC_MoveChild, 15, ++/*405857*/ OPC_CheckInteger, 1, ++/*405859*/ OPC_CheckType, MVT::i32, ++/*405861*/ OPC_MoveParent, ++/*405862*/ OPC_CheckType, MVT::v16i16, ++/*405864*/ OPC_MoveParent, ++/*405865*/ OPC_CheckType, MVT::v16i16, ++/*405867*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*405869*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*405877*/ 0, /*End of Scope*/ ++/*405878*/ /*Scope*/ 91|128,2/*347*/, /*->406227*/ ++/*405880*/ OPC_MoveChild0, ++/*405881*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*405884*/ OPC_CheckChild0Integer, 1, ++/*405886*/ OPC_CheckChild0Type, MVT::i32, ++/*405888*/ OPC_CheckChild1Integer, 1, ++/*405890*/ OPC_CheckChild1Type, MVT::i32, ++/*405892*/ OPC_CheckChild2Integer, 1, ++/*405894*/ OPC_CheckChild2Type, MVT::i32, ++/*405896*/ OPC_CheckChild3Integer, 1, ++/*405898*/ OPC_CheckChild3Type, MVT::i32, ++/*405900*/ OPC_CheckChild4Integer, 1, ++/*405902*/ OPC_CheckChild4Type, MVT::i32, ++/*405904*/ OPC_MoveChild5, ++/*405905*/ OPC_CheckInteger, 1, ++/*405907*/ OPC_CheckType, MVT::i32, ++/*405909*/ OPC_MoveParent, ++/*405910*/ OPC_MoveChild6, ++/*405911*/ OPC_CheckInteger, 1, ++/*405913*/ OPC_CheckType, MVT::i32, ++/*405915*/ OPC_MoveParent, ++/*405916*/ OPC_MoveChild7, ++/*405917*/ OPC_CheckInteger, 1, ++/*405919*/ OPC_CheckType, MVT::i32, ++/*405921*/ OPC_MoveParent, ++/*405922*/ OPC_MoveChild, 8, ++/*405924*/ OPC_CheckInteger, 1, ++/*405926*/ OPC_CheckType, MVT::i32, ++/*405928*/ OPC_MoveParent, ++/*405929*/ OPC_MoveChild, 9, ++/*405931*/ OPC_CheckInteger, 1, ++/*405933*/ OPC_CheckType, MVT::i32, ++/*405935*/ OPC_MoveParent, ++/*405936*/ OPC_MoveChild, 10, ++/*405938*/ OPC_CheckInteger, 1, ++/*405940*/ OPC_CheckType, MVT::i32, ++/*405942*/ OPC_MoveParent, ++/*405943*/ OPC_MoveChild, 11, ++/*405945*/ OPC_CheckInteger, 1, ++/*405947*/ OPC_CheckType, MVT::i32, ++/*405949*/ OPC_MoveParent, ++/*405950*/ OPC_MoveChild, 12, ++/*405952*/ OPC_CheckInteger, 1, ++/*405954*/ OPC_CheckType, MVT::i32, ++/*405956*/ OPC_MoveParent, ++/*405957*/ OPC_MoveChild, 13, ++/*405959*/ OPC_CheckInteger, 1, ++/*405961*/ OPC_CheckType, MVT::i32, ++/*405963*/ OPC_MoveParent, ++/*405964*/ OPC_MoveChild, 14, ++/*405966*/ OPC_CheckInteger, 1, ++/*405968*/ OPC_CheckType, MVT::i32, ++/*405970*/ OPC_MoveParent, ++/*405971*/ OPC_MoveChild, 15, ++/*405973*/ OPC_CheckInteger, 1, ++/*405975*/ OPC_CheckType, MVT::i32, ++/*405977*/ OPC_MoveParent, ++/*405978*/ OPC_MoveParent, ++/*405979*/ OPC_MoveChild1, ++/*405980*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*405983*/ OPC_Scope, 120, /*->406105*/ // 2 children in Scope ++/*405985*/ OPC_CheckChild0Same, 1, ++/*405987*/ OPC_CheckChild1Same, 0, ++/*405989*/ OPC_MoveParent, ++/*405990*/ OPC_MoveParent, ++/*405991*/ OPC_MoveParent, ++/*405992*/ OPC_MoveChild1, ++/*405993*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*405996*/ OPC_CheckChild0Integer, 1, ++/*405998*/ OPC_CheckChild0Type, MVT::i32, ++/*406000*/ OPC_CheckChild1Integer, 1, ++/*406002*/ OPC_CheckChild1Type, MVT::i32, ++/*406004*/ OPC_CheckChild2Integer, 1, ++/*406006*/ OPC_CheckChild2Type, MVT::i32, ++/*406008*/ OPC_CheckChild3Integer, 1, ++/*406010*/ OPC_CheckChild3Type, MVT::i32, ++/*406012*/ OPC_CheckChild4Integer, 1, ++/*406014*/ OPC_CheckChild4Type, MVT::i32, ++/*406016*/ OPC_MoveChild5, ++/*406017*/ OPC_CheckInteger, 1, ++/*406019*/ OPC_CheckType, MVT::i32, ++/*406021*/ OPC_MoveParent, ++/*406022*/ OPC_MoveChild6, ++/*406023*/ OPC_CheckInteger, 1, ++/*406025*/ OPC_CheckType, MVT::i32, ++/*406027*/ OPC_MoveParent, ++/*406028*/ OPC_MoveChild7, ++/*406029*/ OPC_CheckInteger, 1, ++/*406031*/ OPC_CheckType, MVT::i32, ++/*406033*/ OPC_MoveParent, ++/*406034*/ OPC_MoveChild, 8, ++/*406036*/ OPC_CheckInteger, 1, ++/*406038*/ OPC_CheckType, MVT::i32, ++/*406040*/ OPC_MoveParent, ++/*406041*/ OPC_MoveChild, 9, ++/*406043*/ OPC_CheckInteger, 1, ++/*406045*/ OPC_CheckType, MVT::i32, ++/*406047*/ OPC_MoveParent, ++/*406048*/ OPC_MoveChild, 10, ++/*406050*/ OPC_CheckInteger, 1, ++/*406052*/ OPC_CheckType, MVT::i32, ++/*406054*/ OPC_MoveParent, ++/*406055*/ OPC_MoveChild, 11, ++/*406057*/ OPC_CheckInteger, 1, ++/*406059*/ OPC_CheckType, MVT::i32, ++/*406061*/ OPC_MoveParent, ++/*406062*/ OPC_MoveChild, 12, ++/*406064*/ OPC_CheckInteger, 1, ++/*406066*/ OPC_CheckType, MVT::i32, ++/*406068*/ OPC_MoveParent, ++/*406069*/ OPC_MoveChild, 13, ++/*406071*/ OPC_CheckInteger, 1, ++/*406073*/ OPC_CheckType, MVT::i32, ++/*406075*/ OPC_MoveParent, ++/*406076*/ OPC_MoveChild, 14, ++/*406078*/ OPC_CheckInteger, 1, ++/*406080*/ OPC_CheckType, MVT::i32, ++/*406082*/ OPC_MoveParent, ++/*406083*/ OPC_MoveChild, 15, ++/*406085*/ OPC_CheckInteger, 1, ++/*406087*/ OPC_CheckType, MVT::i32, ++/*406089*/ OPC_MoveParent, ++/*406090*/ OPC_CheckType, MVT::v16i16, ++/*406092*/ OPC_MoveParent, ++/*406093*/ OPC_CheckType, MVT::v16i16, ++/*406095*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*406097*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*406105*/ /*Scope*/ 120, /*->406226*/ ++/*406106*/ OPC_CheckChild0Same, 0, ++/*406108*/ OPC_CheckChild1Same, 1, ++/*406110*/ OPC_MoveParent, ++/*406111*/ OPC_MoveParent, ++/*406112*/ OPC_MoveParent, ++/*406113*/ OPC_MoveChild1, ++/*406114*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*406117*/ OPC_CheckChild0Integer, 1, ++/*406119*/ OPC_CheckChild0Type, MVT::i32, ++/*406121*/ OPC_CheckChild1Integer, 1, ++/*406123*/ OPC_CheckChild1Type, MVT::i32, ++/*406125*/ OPC_CheckChild2Integer, 1, ++/*406127*/ OPC_CheckChild2Type, MVT::i32, ++/*406129*/ OPC_CheckChild3Integer, 1, ++/*406131*/ OPC_CheckChild3Type, MVT::i32, ++/*406133*/ OPC_CheckChild4Integer, 1, ++/*406135*/ OPC_CheckChild4Type, MVT::i32, ++/*406137*/ OPC_MoveChild5, ++/*406138*/ OPC_CheckInteger, 1, ++/*406140*/ OPC_CheckType, MVT::i32, ++/*406142*/ OPC_MoveParent, ++/*406143*/ OPC_MoveChild6, ++/*406144*/ OPC_CheckInteger, 1, ++/*406146*/ OPC_CheckType, MVT::i32, ++/*406148*/ OPC_MoveParent, ++/*406149*/ OPC_MoveChild7, ++/*406150*/ OPC_CheckInteger, 1, ++/*406152*/ OPC_CheckType, MVT::i32, ++/*406154*/ OPC_MoveParent, ++/*406155*/ OPC_MoveChild, 8, ++/*406157*/ OPC_CheckInteger, 1, ++/*406159*/ OPC_CheckType, MVT::i32, ++/*406161*/ OPC_MoveParent, ++/*406162*/ OPC_MoveChild, 9, ++/*406164*/ OPC_CheckInteger, 1, ++/*406166*/ OPC_CheckType, MVT::i32, ++/*406168*/ OPC_MoveParent, ++/*406169*/ OPC_MoveChild, 10, ++/*406171*/ OPC_CheckInteger, 1, ++/*406173*/ OPC_CheckType, MVT::i32, ++/*406175*/ OPC_MoveParent, ++/*406176*/ OPC_MoveChild, 11, ++/*406178*/ OPC_CheckInteger, 1, ++/*406180*/ OPC_CheckType, MVT::i32, ++/*406182*/ OPC_MoveParent, ++/*406183*/ OPC_MoveChild, 12, ++/*406185*/ OPC_CheckInteger, 1, ++/*406187*/ OPC_CheckType, MVT::i32, ++/*406189*/ OPC_MoveParent, ++/*406190*/ OPC_MoveChild, 13, ++/*406192*/ OPC_CheckInteger, 1, ++/*406194*/ OPC_CheckType, MVT::i32, ++/*406196*/ OPC_MoveParent, ++/*406197*/ OPC_MoveChild, 14, ++/*406199*/ OPC_CheckInteger, 1, ++/*406201*/ OPC_CheckType, MVT::i32, ++/*406203*/ OPC_MoveParent, ++/*406204*/ OPC_MoveChild, 15, ++/*406206*/ OPC_CheckInteger, 1, ++/*406208*/ OPC_CheckType, MVT::i32, ++/*406210*/ OPC_MoveParent, ++/*406211*/ OPC_CheckType, MVT::v16i16, ++/*406213*/ OPC_MoveParent, ++/*406214*/ OPC_CheckType, MVT::v16i16, ++/*406216*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*406218*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 353 ++ // Dst: (XVAVGR_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*406226*/ 0, /*End of Scope*/ ++/*406227*/ 0, /*End of Scope*/ ++/*406228*/ /*Scope*/ 38|128,7/*934*/, /*->407164*/ ++/*406230*/ OPC_RecordChild0, // #0 = $a ++/*406231*/ OPC_RecordChild1, // #1 = $b ++/*406232*/ OPC_MoveParent, ++/*406233*/ OPC_MoveChild1, ++/*406234*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*406237*/ OPC_CheckChild0Integer, 7, ++/*406239*/ OPC_CheckChild0Type, MVT::i32, ++/*406241*/ OPC_CheckChild1Integer, 7, ++/*406243*/ OPC_CheckChild1Type, MVT::i32, ++/*406245*/ OPC_CheckChild2Integer, 7, ++/*406247*/ OPC_CheckChild2Type, MVT::i32, ++/*406249*/ OPC_CheckChild3Integer, 7, ++/*406251*/ OPC_CheckChild3Type, MVT::i32, ++/*406253*/ OPC_CheckChild4Integer, 7, ++/*406255*/ OPC_CheckChild4Type, MVT::i32, ++/*406257*/ OPC_MoveChild5, ++/*406258*/ OPC_CheckInteger, 7, ++/*406260*/ OPC_CheckType, MVT::i32, ++/*406262*/ OPC_MoveParent, ++/*406263*/ OPC_MoveChild6, ++/*406264*/ OPC_CheckInteger, 7, ++/*406266*/ OPC_CheckType, MVT::i32, ++/*406268*/ OPC_MoveParent, ++/*406269*/ OPC_MoveChild7, ++/*406270*/ OPC_CheckInteger, 7, ++/*406272*/ OPC_CheckType, MVT::i32, ++/*406274*/ OPC_MoveParent, ++/*406275*/ OPC_MoveChild, 8, ++/*406277*/ OPC_CheckInteger, 7, ++/*406279*/ OPC_CheckType, MVT::i32, ++/*406281*/ OPC_MoveParent, ++/*406282*/ OPC_MoveChild, 9, ++/*406284*/ OPC_CheckInteger, 7, ++/*406286*/ OPC_CheckType, MVT::i32, ++/*406288*/ OPC_MoveParent, ++/*406289*/ OPC_MoveChild, 10, ++/*406291*/ OPC_CheckInteger, 7, ++/*406293*/ OPC_CheckType, MVT::i32, ++/*406295*/ OPC_MoveParent, ++/*406296*/ OPC_MoveChild, 11, ++/*406298*/ OPC_CheckInteger, 7, ++/*406300*/ OPC_CheckType, MVT::i32, ++/*406302*/ OPC_MoveParent, ++/*406303*/ OPC_MoveChild, 12, ++/*406305*/ OPC_CheckInteger, 7, ++/*406307*/ OPC_CheckType, MVT::i32, ++/*406309*/ OPC_MoveParent, ++/*406310*/ OPC_MoveChild, 13, ++/*406312*/ OPC_CheckInteger, 7, ++/*406314*/ OPC_CheckType, MVT::i32, ++/*406316*/ OPC_MoveParent, ++/*406317*/ OPC_MoveChild, 14, ++/*406319*/ OPC_CheckInteger, 7, ++/*406321*/ OPC_CheckType, MVT::i32, ++/*406323*/ OPC_MoveParent, ++/*406324*/ OPC_MoveChild, 15, ++/*406326*/ OPC_CheckInteger, 7, ++/*406328*/ OPC_CheckType, MVT::i32, ++/*406330*/ OPC_MoveParent, ++/*406331*/ OPC_MoveChild, 16, ++/*406333*/ OPC_CheckInteger, 7, ++/*406335*/ OPC_CheckType, MVT::i32, ++/*406337*/ OPC_MoveParent, ++/*406338*/ OPC_MoveChild, 17, ++/*406340*/ OPC_CheckInteger, 7, ++/*406342*/ OPC_CheckType, MVT::i32, ++/*406344*/ OPC_MoveParent, ++/*406345*/ OPC_MoveChild, 18, ++/*406347*/ OPC_CheckInteger, 7, ++/*406349*/ OPC_CheckType, MVT::i32, ++/*406351*/ OPC_MoveParent, ++/*406352*/ OPC_MoveChild, 19, ++/*406354*/ OPC_CheckInteger, 7, ++/*406356*/ OPC_CheckType, MVT::i32, ++/*406358*/ OPC_MoveParent, ++/*406359*/ OPC_MoveChild, 20, ++/*406361*/ OPC_CheckInteger, 7, ++/*406363*/ OPC_CheckType, MVT::i32, ++/*406365*/ OPC_MoveParent, ++/*406366*/ OPC_MoveChild, 21, ++/*406368*/ OPC_CheckInteger, 7, ++/*406370*/ OPC_CheckType, MVT::i32, ++/*406372*/ OPC_MoveParent, ++/*406373*/ OPC_MoveChild, 22, ++/*406375*/ OPC_CheckInteger, 7, ++/*406377*/ OPC_CheckType, MVT::i32, ++/*406379*/ OPC_MoveParent, ++/*406380*/ OPC_MoveChild, 23, ++/*406382*/ OPC_CheckInteger, 7, ++/*406384*/ OPC_CheckType, MVT::i32, ++/*406386*/ OPC_MoveParent, ++/*406387*/ OPC_MoveChild, 24, ++/*406389*/ OPC_CheckInteger, 7, ++/*406391*/ OPC_CheckType, MVT::i32, ++/*406393*/ OPC_MoveParent, ++/*406394*/ OPC_MoveChild, 25, ++/*406396*/ OPC_CheckInteger, 7, ++/*406398*/ OPC_CheckType, MVT::i32, ++/*406400*/ OPC_MoveParent, ++/*406401*/ OPC_MoveChild, 26, ++/*406403*/ OPC_CheckInteger, 7, ++/*406405*/ OPC_CheckType, MVT::i32, ++/*406407*/ OPC_MoveParent, ++/*406408*/ OPC_MoveChild, 27, ++/*406410*/ OPC_CheckInteger, 7, ++/*406412*/ OPC_CheckType, MVT::i32, ++/*406414*/ OPC_MoveParent, ++/*406415*/ OPC_MoveChild, 28, ++/*406417*/ OPC_CheckInteger, 7, ++/*406419*/ OPC_CheckType, MVT::i32, ++/*406421*/ OPC_MoveParent, ++/*406422*/ OPC_MoveChild, 29, ++/*406424*/ OPC_CheckInteger, 7, ++/*406426*/ OPC_CheckType, MVT::i32, ++/*406428*/ OPC_MoveParent, ++/*406429*/ OPC_MoveChild, 30, ++/*406431*/ OPC_CheckInteger, 7, ++/*406433*/ OPC_CheckType, MVT::i32, ++/*406435*/ OPC_MoveParent, ++/*406436*/ OPC_MoveChild, 31, ++/*406438*/ OPC_CheckInteger, 7, ++/*406440*/ OPC_CheckType, MVT::i32, ++/*406442*/ OPC_MoveParent, ++/*406443*/ OPC_CheckType, MVT::v32i8, ++/*406445*/ OPC_MoveParent, ++/*406446*/ OPC_MoveParent, ++/*406447*/ OPC_MoveChild1, ++/*406448*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*406451*/ OPC_Scope, 103|128,1/*231*/, /*->406685*/ // 3 children in Scope ++/*406454*/ OPC_CheckChild0Same, 0, ++/*406456*/ OPC_CheckChild1Same, 1, ++/*406458*/ OPC_MoveParent, ++/*406459*/ OPC_MoveParent, ++/*406460*/ OPC_MoveChild1, ++/*406461*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*406464*/ OPC_CheckChild0Integer, 1, ++/*406466*/ OPC_CheckChild0Type, MVT::i32, ++/*406468*/ OPC_CheckChild1Integer, 1, ++/*406470*/ OPC_CheckChild1Type, MVT::i32, ++/*406472*/ OPC_CheckChild2Integer, 1, ++/*406474*/ OPC_CheckChild2Type, MVT::i32, ++/*406476*/ OPC_CheckChild3Integer, 1, ++/*406478*/ OPC_CheckChild3Type, MVT::i32, ++/*406480*/ OPC_CheckChild4Integer, 1, ++/*406482*/ OPC_CheckChild4Type, MVT::i32, ++/*406484*/ OPC_MoveChild5, ++/*406485*/ OPC_CheckInteger, 1, ++/*406487*/ OPC_CheckType, MVT::i32, ++/*406489*/ OPC_MoveParent, ++/*406490*/ OPC_MoveChild6, ++/*406491*/ OPC_CheckInteger, 1, ++/*406493*/ OPC_CheckType, MVT::i32, ++/*406495*/ OPC_MoveParent, ++/*406496*/ OPC_MoveChild7, ++/*406497*/ OPC_CheckInteger, 1, ++/*406499*/ OPC_CheckType, MVT::i32, ++/*406501*/ OPC_MoveParent, ++/*406502*/ OPC_MoveChild, 8, ++/*406504*/ OPC_CheckInteger, 1, ++/*406506*/ OPC_CheckType, MVT::i32, ++/*406508*/ OPC_MoveParent, ++/*406509*/ OPC_MoveChild, 9, ++/*406511*/ OPC_CheckInteger, 1, ++/*406513*/ OPC_CheckType, MVT::i32, ++/*406515*/ OPC_MoveParent, ++/*406516*/ OPC_MoveChild, 10, ++/*406518*/ OPC_CheckInteger, 1, ++/*406520*/ OPC_CheckType, MVT::i32, ++/*406522*/ OPC_MoveParent, ++/*406523*/ OPC_MoveChild, 11, ++/*406525*/ OPC_CheckInteger, 1, ++/*406527*/ OPC_CheckType, MVT::i32, ++/*406529*/ OPC_MoveParent, ++/*406530*/ OPC_MoveChild, 12, ++/*406532*/ OPC_CheckInteger, 1, ++/*406534*/ OPC_CheckType, MVT::i32, ++/*406536*/ OPC_MoveParent, ++/*406537*/ OPC_MoveChild, 13, ++/*406539*/ OPC_CheckInteger, 1, ++/*406541*/ OPC_CheckType, MVT::i32, ++/*406543*/ OPC_MoveParent, ++/*406544*/ OPC_MoveChild, 14, ++/*406546*/ OPC_CheckInteger, 1, ++/*406548*/ OPC_CheckType, MVT::i32, ++/*406550*/ OPC_MoveParent, ++/*406551*/ OPC_MoveChild, 15, ++/*406553*/ OPC_CheckInteger, 1, ++/*406555*/ OPC_CheckType, MVT::i32, ++/*406557*/ OPC_MoveParent, ++/*406558*/ OPC_MoveChild, 16, ++/*406560*/ OPC_CheckInteger, 1, ++/*406562*/ OPC_CheckType, MVT::i32, ++/*406564*/ OPC_MoveParent, ++/*406565*/ OPC_MoveChild, 17, ++/*406567*/ OPC_CheckInteger, 1, ++/*406569*/ OPC_CheckType, MVT::i32, ++/*406571*/ OPC_MoveParent, ++/*406572*/ OPC_MoveChild, 18, ++/*406574*/ OPC_CheckInteger, 1, ++/*406576*/ OPC_CheckType, MVT::i32, ++/*406578*/ OPC_MoveParent, ++/*406579*/ OPC_MoveChild, 19, ++/*406581*/ OPC_CheckInteger, 1, ++/*406583*/ OPC_CheckType, MVT::i32, ++/*406585*/ OPC_MoveParent, ++/*406586*/ OPC_MoveChild, 20, ++/*406588*/ OPC_CheckInteger, 1, ++/*406590*/ OPC_CheckType, MVT::i32, ++/*406592*/ OPC_MoveParent, ++/*406593*/ OPC_MoveChild, 21, ++/*406595*/ OPC_CheckInteger, 1, ++/*406597*/ OPC_CheckType, MVT::i32, ++/*406599*/ OPC_MoveParent, ++/*406600*/ OPC_MoveChild, 22, ++/*406602*/ OPC_CheckInteger, 1, ++/*406604*/ OPC_CheckType, MVT::i32, ++/*406606*/ OPC_MoveParent, ++/*406607*/ OPC_MoveChild, 23, ++/*406609*/ OPC_CheckInteger, 1, ++/*406611*/ OPC_CheckType, MVT::i32, ++/*406613*/ OPC_MoveParent, ++/*406614*/ OPC_MoveChild, 24, ++/*406616*/ OPC_CheckInteger, 1, ++/*406618*/ OPC_CheckType, MVT::i32, ++/*406620*/ OPC_MoveParent, ++/*406621*/ OPC_MoveChild, 25, ++/*406623*/ OPC_CheckInteger, 1, ++/*406625*/ OPC_CheckType, MVT::i32, ++/*406627*/ OPC_MoveParent, ++/*406628*/ OPC_MoveChild, 26, ++/*406630*/ OPC_CheckInteger, 1, ++/*406632*/ OPC_CheckType, MVT::i32, ++/*406634*/ OPC_MoveParent, ++/*406635*/ OPC_MoveChild, 27, ++/*406637*/ OPC_CheckInteger, 1, ++/*406639*/ OPC_CheckType, MVT::i32, ++/*406641*/ OPC_MoveParent, ++/*406642*/ OPC_MoveChild, 28, ++/*406644*/ OPC_CheckInteger, 1, ++/*406646*/ OPC_CheckType, MVT::i32, ++/*406648*/ OPC_MoveParent, ++/*406649*/ OPC_MoveChild, 29, ++/*406651*/ OPC_CheckInteger, 1, ++/*406653*/ OPC_CheckType, MVT::i32, ++/*406655*/ OPC_MoveParent, ++/*406656*/ OPC_MoveChild, 30, ++/*406658*/ OPC_CheckInteger, 1, ++/*406660*/ OPC_CheckType, MVT::i32, ++/*406662*/ OPC_MoveParent, ++/*406663*/ OPC_MoveChild, 31, ++/*406665*/ OPC_CheckInteger, 1, ++/*406667*/ OPC_CheckType, MVT::i32, ++/*406669*/ OPC_MoveParent, ++/*406670*/ OPC_CheckType, MVT::v32i8, ++/*406672*/ OPC_MoveParent, ++/*406673*/ OPC_CheckType, MVT::v32i8, ++/*406675*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*406677*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 341 ++ // Dst: (XVAVG_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*406685*/ /*Scope*/ 115|128,1/*243*/, /*->406930*/ ++/*406687*/ OPC_CheckChild0Same, 1, ++/*406689*/ OPC_CheckChild1Same, 0, ++/*406691*/ OPC_MoveParent, ++/*406692*/ OPC_MoveParent, ++/*406693*/ OPC_MoveChild1, ++/*406694*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*406697*/ OPC_CheckChild0Integer, 1, ++/*406699*/ OPC_CheckChild0Type, MVT::i32, ++/*406701*/ OPC_CheckChild1Integer, 1, ++/*406703*/ OPC_CheckChild1Type, MVT::i32, ++/*406705*/ OPC_CheckChild2Integer, 1, ++/*406707*/ OPC_CheckChild2Type, MVT::i32, ++/*406709*/ OPC_CheckChild3Integer, 1, ++/*406711*/ OPC_CheckChild3Type, MVT::i32, ++/*406713*/ OPC_CheckChild4Integer, 1, ++/*406715*/ OPC_CheckChild4Type, MVT::i32, ++/*406717*/ OPC_MoveChild5, ++/*406718*/ OPC_CheckInteger, 1, ++/*406720*/ OPC_CheckType, MVT::i32, ++/*406722*/ OPC_MoveParent, ++/*406723*/ OPC_MoveChild6, ++/*406724*/ OPC_CheckInteger, 1, ++/*406726*/ OPC_CheckType, MVT::i32, ++/*406728*/ OPC_MoveParent, ++/*406729*/ OPC_MoveChild7, ++/*406730*/ OPC_CheckInteger, 1, ++/*406732*/ OPC_CheckType, MVT::i32, ++/*406734*/ OPC_MoveParent, ++/*406735*/ OPC_MoveChild, 8, ++/*406737*/ OPC_CheckInteger, 1, ++/*406739*/ OPC_CheckType, MVT::i32, ++/*406741*/ OPC_MoveParent, ++/*406742*/ OPC_MoveChild, 9, ++/*406744*/ OPC_CheckInteger, 1, ++/*406746*/ OPC_CheckType, MVT::i32, ++/*406748*/ OPC_MoveParent, ++/*406749*/ OPC_MoveChild, 10, ++/*406751*/ OPC_CheckInteger, 1, ++/*406753*/ OPC_CheckType, MVT::i32, ++/*406755*/ OPC_MoveParent, ++/*406756*/ OPC_MoveChild, 11, ++/*406758*/ OPC_CheckInteger, 1, ++/*406760*/ OPC_CheckType, MVT::i32, ++/*406762*/ OPC_MoveParent, ++/*406763*/ OPC_MoveChild, 12, ++/*406765*/ OPC_CheckInteger, 1, ++/*406767*/ OPC_CheckType, MVT::i32, ++/*406769*/ OPC_MoveParent, ++/*406770*/ OPC_MoveChild, 13, ++/*406772*/ OPC_CheckInteger, 1, ++/*406774*/ OPC_CheckType, MVT::i32, ++/*406776*/ OPC_MoveParent, ++/*406777*/ OPC_MoveChild, 14, ++/*406779*/ OPC_CheckInteger, 1, ++/*406781*/ OPC_CheckType, MVT::i32, ++/*406783*/ OPC_MoveParent, ++/*406784*/ OPC_MoveChild, 15, ++/*406786*/ OPC_CheckInteger, 1, ++/*406788*/ OPC_CheckType, MVT::i32, ++/*406790*/ OPC_MoveParent, ++/*406791*/ OPC_MoveChild, 16, ++/*406793*/ OPC_CheckInteger, 1, ++/*406795*/ OPC_CheckType, MVT::i32, ++/*406797*/ OPC_MoveParent, ++/*406798*/ OPC_MoveChild, 17, ++/*406800*/ OPC_CheckInteger, 1, ++/*406802*/ OPC_CheckType, MVT::i32, ++/*406804*/ OPC_MoveParent, ++/*406805*/ OPC_MoveChild, 18, ++/*406807*/ OPC_CheckInteger, 1, ++/*406809*/ OPC_CheckType, MVT::i32, ++/*406811*/ OPC_MoveParent, ++/*406812*/ OPC_MoveChild, 19, ++/*406814*/ OPC_CheckInteger, 1, ++/*406816*/ OPC_CheckType, MVT::i32, ++/*406818*/ OPC_MoveParent, ++/*406819*/ OPC_MoveChild, 20, ++/*406821*/ OPC_CheckInteger, 1, ++/*406823*/ OPC_CheckType, MVT::i32, ++/*406825*/ OPC_MoveParent, ++/*406826*/ OPC_MoveChild, 21, ++/*406828*/ OPC_CheckInteger, 1, ++/*406830*/ OPC_CheckType, MVT::i32, ++/*406832*/ OPC_MoveParent, ++/*406833*/ OPC_MoveChild, 22, ++/*406835*/ OPC_CheckInteger, 1, ++/*406837*/ OPC_CheckType, MVT::i32, ++/*406839*/ OPC_MoveParent, ++/*406840*/ OPC_MoveChild, 23, ++/*406842*/ OPC_CheckInteger, 1, ++/*406844*/ OPC_CheckType, MVT::i32, ++/*406846*/ OPC_MoveParent, ++/*406847*/ OPC_MoveChild, 24, ++/*406849*/ OPC_CheckInteger, 1, ++/*406851*/ OPC_CheckType, MVT::i32, ++/*406853*/ OPC_MoveParent, ++/*406854*/ OPC_MoveChild, 25, ++/*406856*/ OPC_CheckInteger, 1, ++/*406858*/ OPC_CheckType, MVT::i32, ++/*406860*/ OPC_MoveParent, ++/*406861*/ OPC_MoveChild, 26, ++/*406863*/ OPC_CheckInteger, 1, ++/*406865*/ OPC_CheckType, MVT::i32, ++/*406867*/ OPC_MoveParent, ++/*406868*/ OPC_MoveChild, 27, ++/*406870*/ OPC_CheckInteger, 1, ++/*406872*/ OPC_CheckType, MVT::i32, ++/*406874*/ OPC_MoveParent, ++/*406875*/ OPC_MoveChild, 28, ++/*406877*/ OPC_CheckInteger, 1, ++/*406879*/ OPC_CheckType, MVT::i32, ++/*406881*/ OPC_MoveParent, ++/*406882*/ OPC_MoveChild, 29, ++/*406884*/ OPC_CheckInteger, 1, ++/*406886*/ OPC_CheckType, MVT::i32, ++/*406888*/ OPC_MoveParent, ++/*406889*/ OPC_MoveChild, 30, ++/*406891*/ OPC_CheckInteger, 1, ++/*406893*/ OPC_CheckType, MVT::i32, ++/*406895*/ OPC_MoveParent, ++/*406896*/ OPC_MoveChild, 31, ++/*406898*/ OPC_CheckInteger, 1, ++/*406900*/ OPC_CheckType, MVT::i32, ++/*406902*/ OPC_MoveParent, ++/*406903*/ OPC_CheckType, MVT::v32i8, ++/*406905*/ OPC_MoveParent, ++/*406906*/ OPC_CheckType, MVT::v32i8, ++/*406908*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*406910*/ OPC_Scope, 8, /*->406920*/ // 2 children in Scope ++/*406912*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 341 ++ // Dst: (XVAVG_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*406920*/ /*Scope*/ 8, /*->406929*/ ++/*406921*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 341 ++ // Dst: (XVAVG_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*406929*/ 0, /*End of Scope*/ ++/*406930*/ /*Scope*/ 103|128,1/*231*/, /*->407163*/ ++/*406932*/ OPC_CheckChild0Same, 0, ++/*406934*/ OPC_CheckChild1Same, 1, ++/*406936*/ OPC_MoveParent, ++/*406937*/ OPC_MoveParent, ++/*406938*/ OPC_MoveChild1, ++/*406939*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*406942*/ OPC_CheckChild0Integer, 1, ++/*406944*/ OPC_CheckChild0Type, MVT::i32, ++/*406946*/ OPC_CheckChild1Integer, 1, ++/*406948*/ OPC_CheckChild1Type, MVT::i32, ++/*406950*/ OPC_CheckChild2Integer, 1, ++/*406952*/ OPC_CheckChild2Type, MVT::i32, ++/*406954*/ OPC_CheckChild3Integer, 1, ++/*406956*/ OPC_CheckChild3Type, MVT::i32, ++/*406958*/ OPC_CheckChild4Integer, 1, ++/*406960*/ OPC_CheckChild4Type, MVT::i32, ++/*406962*/ OPC_MoveChild5, ++/*406963*/ OPC_CheckInteger, 1, ++/*406965*/ OPC_CheckType, MVT::i32, ++/*406967*/ OPC_MoveParent, ++/*406968*/ OPC_MoveChild6, ++/*406969*/ OPC_CheckInteger, 1, ++/*406971*/ OPC_CheckType, MVT::i32, ++/*406973*/ OPC_MoveParent, ++/*406974*/ OPC_MoveChild7, ++/*406975*/ OPC_CheckInteger, 1, ++/*406977*/ OPC_CheckType, MVT::i32, ++/*406979*/ OPC_MoveParent, ++/*406980*/ OPC_MoveChild, 8, ++/*406982*/ OPC_CheckInteger, 1, ++/*406984*/ OPC_CheckType, MVT::i32, ++/*406986*/ OPC_MoveParent, ++/*406987*/ OPC_MoveChild, 9, ++/*406989*/ OPC_CheckInteger, 1, ++/*406991*/ OPC_CheckType, MVT::i32, ++/*406993*/ OPC_MoveParent, ++/*406994*/ OPC_MoveChild, 10, ++/*406996*/ OPC_CheckInteger, 1, ++/*406998*/ OPC_CheckType, MVT::i32, ++/*407000*/ OPC_MoveParent, ++/*407001*/ OPC_MoveChild, 11, ++/*407003*/ OPC_CheckInteger, 1, ++/*407005*/ OPC_CheckType, MVT::i32, ++/*407007*/ OPC_MoveParent, ++/*407008*/ OPC_MoveChild, 12, ++/*407010*/ OPC_CheckInteger, 1, ++/*407012*/ OPC_CheckType, MVT::i32, ++/*407014*/ OPC_MoveParent, ++/*407015*/ OPC_MoveChild, 13, ++/*407017*/ OPC_CheckInteger, 1, ++/*407019*/ OPC_CheckType, MVT::i32, ++/*407021*/ OPC_MoveParent, ++/*407022*/ OPC_MoveChild, 14, ++/*407024*/ OPC_CheckInteger, 1, ++/*407026*/ OPC_CheckType, MVT::i32, ++/*407028*/ OPC_MoveParent, ++/*407029*/ OPC_MoveChild, 15, ++/*407031*/ OPC_CheckInteger, 1, ++/*407033*/ OPC_CheckType, MVT::i32, ++/*407035*/ OPC_MoveParent, ++/*407036*/ OPC_MoveChild, 16, ++/*407038*/ OPC_CheckInteger, 1, ++/*407040*/ OPC_CheckType, MVT::i32, ++/*407042*/ OPC_MoveParent, ++/*407043*/ OPC_MoveChild, 17, ++/*407045*/ OPC_CheckInteger, 1, ++/*407047*/ OPC_CheckType, MVT::i32, ++/*407049*/ OPC_MoveParent, ++/*407050*/ OPC_MoveChild, 18, ++/*407052*/ OPC_CheckInteger, 1, ++/*407054*/ OPC_CheckType, MVT::i32, ++/*407056*/ OPC_MoveParent, ++/*407057*/ OPC_MoveChild, 19, ++/*407059*/ OPC_CheckInteger, 1, ++/*407061*/ OPC_CheckType, MVT::i32, ++/*407063*/ OPC_MoveParent, ++/*407064*/ OPC_MoveChild, 20, ++/*407066*/ OPC_CheckInteger, 1, ++/*407068*/ OPC_CheckType, MVT::i32, ++/*407070*/ OPC_MoveParent, ++/*407071*/ OPC_MoveChild, 21, ++/*407073*/ OPC_CheckInteger, 1, ++/*407075*/ OPC_CheckType, MVT::i32, ++/*407077*/ OPC_MoveParent, ++/*407078*/ OPC_MoveChild, 22, ++/*407080*/ OPC_CheckInteger, 1, ++/*407082*/ OPC_CheckType, MVT::i32, ++/*407084*/ OPC_MoveParent, ++/*407085*/ OPC_MoveChild, 23, ++/*407087*/ OPC_CheckInteger, 1, ++/*407089*/ OPC_CheckType, MVT::i32, ++/*407091*/ OPC_MoveParent, ++/*407092*/ OPC_MoveChild, 24, ++/*407094*/ OPC_CheckInteger, 1, ++/*407096*/ OPC_CheckType, MVT::i32, ++/*407098*/ OPC_MoveParent, ++/*407099*/ OPC_MoveChild, 25, ++/*407101*/ OPC_CheckInteger, 1, ++/*407103*/ OPC_CheckType, MVT::i32, ++/*407105*/ OPC_MoveParent, ++/*407106*/ OPC_MoveChild, 26, ++/*407108*/ OPC_CheckInteger, 1, ++/*407110*/ OPC_CheckType, MVT::i32, ++/*407112*/ OPC_MoveParent, ++/*407113*/ OPC_MoveChild, 27, ++/*407115*/ OPC_CheckInteger, 1, ++/*407117*/ OPC_CheckType, MVT::i32, ++/*407119*/ OPC_MoveParent, ++/*407120*/ OPC_MoveChild, 28, ++/*407122*/ OPC_CheckInteger, 1, ++/*407124*/ OPC_CheckType, MVT::i32, ++/*407126*/ OPC_MoveParent, ++/*407127*/ OPC_MoveChild, 29, ++/*407129*/ OPC_CheckInteger, 1, ++/*407131*/ OPC_CheckType, MVT::i32, ++/*407133*/ OPC_MoveParent, ++/*407134*/ OPC_MoveChild, 30, ++/*407136*/ OPC_CheckInteger, 1, ++/*407138*/ OPC_CheckType, MVT::i32, ++/*407140*/ OPC_MoveParent, ++/*407141*/ OPC_MoveChild, 31, ++/*407143*/ OPC_CheckInteger, 1, ++/*407145*/ OPC_CheckType, MVT::i32, ++/*407147*/ OPC_MoveParent, ++/*407148*/ OPC_CheckType, MVT::v32i8, ++/*407150*/ OPC_MoveParent, ++/*407151*/ OPC_CheckType, MVT::v32i8, ++/*407153*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*407155*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 341 ++ // Dst: (XVAVG_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*407163*/ 0, /*End of Scope*/ ++/*407164*/ 0, /*End of Scope*/ ++/*407165*/ 0, // EndSwitchOpcode ++/*407166*/ /*Scope*/ 61|128,28/*3645*/, /*->410813*/ ++/*407168*/ OPC_RecordChild0, // #0 = $b ++/*407169*/ OPC_MoveChild1, ++/*407170*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*407173*/ OPC_Scope, 11|128,7/*907*/, /*->408083*/ // 4 children in Scope ++/*407176*/ OPC_RecordChild0, // #1 = $a ++/*407177*/ OPC_MoveChild1, ++/*407178*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*407181*/ OPC_MoveChild0, ++/*407182*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*407185*/ OPC_Scope, 62|128,3/*446*/, /*->407634*/ // 2 children in Scope ++/*407188*/ OPC_CheckChild0Same, 1, ++/*407190*/ OPC_CheckChild1Same, 0, ++/*407192*/ OPC_MoveParent, ++/*407193*/ OPC_MoveChild1, ++/*407194*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*407197*/ OPC_CheckChild0Integer, 7, ++/*407199*/ OPC_CheckChild0Type, MVT::i32, ++/*407201*/ OPC_CheckChild1Integer, 7, ++/*407203*/ OPC_CheckChild1Type, MVT::i32, ++/*407205*/ OPC_CheckChild2Integer, 7, ++/*407207*/ OPC_CheckChild2Type, MVT::i32, ++/*407209*/ OPC_CheckChild3Integer, 7, ++/*407211*/ OPC_CheckChild3Type, MVT::i32, ++/*407213*/ OPC_CheckChild4Integer, 7, ++/*407215*/ OPC_CheckChild4Type, MVT::i32, ++/*407217*/ OPC_MoveChild5, ++/*407218*/ OPC_CheckInteger, 7, ++/*407220*/ OPC_CheckType, MVT::i32, ++/*407222*/ OPC_MoveParent, ++/*407223*/ OPC_MoveChild6, ++/*407224*/ OPC_CheckInteger, 7, ++/*407226*/ OPC_CheckType, MVT::i32, ++/*407228*/ OPC_MoveParent, ++/*407229*/ OPC_MoveChild7, ++/*407230*/ OPC_CheckInteger, 7, ++/*407232*/ OPC_CheckType, MVT::i32, ++/*407234*/ OPC_MoveParent, ++/*407235*/ OPC_MoveChild, 8, ++/*407237*/ OPC_CheckInteger, 7, ++/*407239*/ OPC_CheckType, MVT::i32, ++/*407241*/ OPC_MoveParent, ++/*407242*/ OPC_MoveChild, 9, ++/*407244*/ OPC_CheckInteger, 7, ++/*407246*/ OPC_CheckType, MVT::i32, ++/*407248*/ OPC_MoveParent, ++/*407249*/ OPC_MoveChild, 10, ++/*407251*/ OPC_CheckInteger, 7, ++/*407253*/ OPC_CheckType, MVT::i32, ++/*407255*/ OPC_MoveParent, ++/*407256*/ OPC_MoveChild, 11, ++/*407258*/ OPC_CheckInteger, 7, ++/*407260*/ OPC_CheckType, MVT::i32, ++/*407262*/ OPC_MoveParent, ++/*407263*/ OPC_MoveChild, 12, ++/*407265*/ OPC_CheckInteger, 7, ++/*407267*/ OPC_CheckType, MVT::i32, ++/*407269*/ OPC_MoveParent, ++/*407270*/ OPC_MoveChild, 13, ++/*407272*/ OPC_CheckInteger, 7, ++/*407274*/ OPC_CheckType, MVT::i32, ++/*407276*/ OPC_MoveParent, ++/*407277*/ OPC_MoveChild, 14, ++/*407279*/ OPC_CheckInteger, 7, ++/*407281*/ OPC_CheckType, MVT::i32, ++/*407283*/ OPC_MoveParent, ++/*407284*/ OPC_MoveChild, 15, ++/*407286*/ OPC_CheckInteger, 7, ++/*407288*/ OPC_CheckType, MVT::i32, ++/*407290*/ OPC_MoveParent, ++/*407291*/ OPC_MoveChild, 16, ++/*407293*/ OPC_CheckInteger, 7, ++/*407295*/ OPC_CheckType, MVT::i32, ++/*407297*/ OPC_MoveParent, ++/*407298*/ OPC_MoveChild, 17, ++/*407300*/ OPC_CheckInteger, 7, ++/*407302*/ OPC_CheckType, MVT::i32, ++/*407304*/ OPC_MoveParent, ++/*407305*/ OPC_MoveChild, 18, ++/*407307*/ OPC_CheckInteger, 7, ++/*407309*/ OPC_CheckType, MVT::i32, ++/*407311*/ OPC_MoveParent, ++/*407312*/ OPC_MoveChild, 19, ++/*407314*/ OPC_CheckInteger, 7, ++/*407316*/ OPC_CheckType, MVT::i32, ++/*407318*/ OPC_MoveParent, ++/*407319*/ OPC_MoveChild, 20, ++/*407321*/ OPC_CheckInteger, 7, ++/*407323*/ OPC_CheckType, MVT::i32, ++/*407325*/ OPC_MoveParent, ++/*407326*/ OPC_MoveChild, 21, ++/*407328*/ OPC_CheckInteger, 7, ++/*407330*/ OPC_CheckType, MVT::i32, ++/*407332*/ OPC_MoveParent, ++/*407333*/ OPC_MoveChild, 22, ++/*407335*/ OPC_CheckInteger, 7, ++/*407337*/ OPC_CheckType, MVT::i32, ++/*407339*/ OPC_MoveParent, ++/*407340*/ OPC_MoveChild, 23, ++/*407342*/ OPC_CheckInteger, 7, ++/*407344*/ OPC_CheckType, MVT::i32, ++/*407346*/ OPC_MoveParent, ++/*407347*/ OPC_MoveChild, 24, ++/*407349*/ OPC_CheckInteger, 7, ++/*407351*/ OPC_CheckType, MVT::i32, ++/*407353*/ OPC_MoveParent, ++/*407354*/ OPC_MoveChild, 25, ++/*407356*/ OPC_CheckInteger, 7, ++/*407358*/ OPC_CheckType, MVT::i32, ++/*407360*/ OPC_MoveParent, ++/*407361*/ OPC_MoveChild, 26, ++/*407363*/ OPC_CheckInteger, 7, ++/*407365*/ OPC_CheckType, MVT::i32, ++/*407367*/ OPC_MoveParent, ++/*407368*/ OPC_MoveChild, 27, ++/*407370*/ OPC_CheckInteger, 7, ++/*407372*/ OPC_CheckType, MVT::i32, ++/*407374*/ OPC_MoveParent, ++/*407375*/ OPC_MoveChild, 28, ++/*407377*/ OPC_CheckInteger, 7, ++/*407379*/ OPC_CheckType, MVT::i32, ++/*407381*/ OPC_MoveParent, ++/*407382*/ OPC_MoveChild, 29, ++/*407384*/ OPC_CheckInteger, 7, ++/*407386*/ OPC_CheckType, MVT::i32, ++/*407388*/ OPC_MoveParent, ++/*407389*/ OPC_MoveChild, 30, ++/*407391*/ OPC_CheckInteger, 7, ++/*407393*/ OPC_CheckType, MVT::i32, ++/*407395*/ OPC_MoveParent, ++/*407396*/ OPC_MoveChild, 31, ++/*407398*/ OPC_CheckInteger, 7, ++/*407400*/ OPC_CheckType, MVT::i32, ++/*407402*/ OPC_MoveParent, ++/*407403*/ OPC_CheckType, MVT::v32i8, ++/*407405*/ OPC_MoveParent, ++/*407406*/ OPC_MoveParent, ++/*407407*/ OPC_MoveParent, ++/*407408*/ OPC_MoveParent, ++/*407409*/ OPC_MoveChild1, ++/*407410*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*407413*/ OPC_CheckChild0Integer, 1, ++/*407415*/ OPC_CheckChild0Type, MVT::i32, ++/*407417*/ OPC_CheckChild1Integer, 1, ++/*407419*/ OPC_CheckChild1Type, MVT::i32, ++/*407421*/ OPC_CheckChild2Integer, 1, ++/*407423*/ OPC_CheckChild2Type, MVT::i32, ++/*407425*/ OPC_CheckChild3Integer, 1, ++/*407427*/ OPC_CheckChild3Type, MVT::i32, ++/*407429*/ OPC_CheckChild4Integer, 1, ++/*407431*/ OPC_CheckChild4Type, MVT::i32, ++/*407433*/ OPC_MoveChild5, ++/*407434*/ OPC_CheckInteger, 1, ++/*407436*/ OPC_CheckType, MVT::i32, ++/*407438*/ OPC_MoveParent, ++/*407439*/ OPC_MoveChild6, ++/*407440*/ OPC_CheckInteger, 1, ++/*407442*/ OPC_CheckType, MVT::i32, ++/*407444*/ OPC_MoveParent, ++/*407445*/ OPC_MoveChild7, ++/*407446*/ OPC_CheckInteger, 1, ++/*407448*/ OPC_CheckType, MVT::i32, ++/*407450*/ OPC_MoveParent, ++/*407451*/ OPC_MoveChild, 8, ++/*407453*/ OPC_CheckInteger, 1, ++/*407455*/ OPC_CheckType, MVT::i32, ++/*407457*/ OPC_MoveParent, ++/*407458*/ OPC_MoveChild, 9, ++/*407460*/ OPC_CheckInteger, 1, ++/*407462*/ OPC_CheckType, MVT::i32, ++/*407464*/ OPC_MoveParent, ++/*407465*/ OPC_MoveChild, 10, ++/*407467*/ OPC_CheckInteger, 1, ++/*407469*/ OPC_CheckType, MVT::i32, ++/*407471*/ OPC_MoveParent, ++/*407472*/ OPC_MoveChild, 11, ++/*407474*/ OPC_CheckInteger, 1, ++/*407476*/ OPC_CheckType, MVT::i32, ++/*407478*/ OPC_MoveParent, ++/*407479*/ OPC_MoveChild, 12, ++/*407481*/ OPC_CheckInteger, 1, ++/*407483*/ OPC_CheckType, MVT::i32, ++/*407485*/ OPC_MoveParent, ++/*407486*/ OPC_MoveChild, 13, ++/*407488*/ OPC_CheckInteger, 1, ++/*407490*/ OPC_CheckType, MVT::i32, ++/*407492*/ OPC_MoveParent, ++/*407493*/ OPC_MoveChild, 14, ++/*407495*/ OPC_CheckInteger, 1, ++/*407497*/ OPC_CheckType, MVT::i32, ++/*407499*/ OPC_MoveParent, ++/*407500*/ OPC_MoveChild, 15, ++/*407502*/ OPC_CheckInteger, 1, ++/*407504*/ OPC_CheckType, MVT::i32, ++/*407506*/ OPC_MoveParent, ++/*407507*/ OPC_MoveChild, 16, ++/*407509*/ OPC_CheckInteger, 1, ++/*407511*/ OPC_CheckType, MVT::i32, ++/*407513*/ OPC_MoveParent, ++/*407514*/ OPC_MoveChild, 17, ++/*407516*/ OPC_CheckInteger, 1, ++/*407518*/ OPC_CheckType, MVT::i32, ++/*407520*/ OPC_MoveParent, ++/*407521*/ OPC_MoveChild, 18, ++/*407523*/ OPC_CheckInteger, 1, ++/*407525*/ OPC_CheckType, MVT::i32, ++/*407527*/ OPC_MoveParent, ++/*407528*/ OPC_MoveChild, 19, ++/*407530*/ OPC_CheckInteger, 1, ++/*407532*/ OPC_CheckType, MVT::i32, ++/*407534*/ OPC_MoveParent, ++/*407535*/ OPC_MoveChild, 20, ++/*407537*/ OPC_CheckInteger, 1, ++/*407539*/ OPC_CheckType, MVT::i32, ++/*407541*/ OPC_MoveParent, ++/*407542*/ OPC_MoveChild, 21, ++/*407544*/ OPC_CheckInteger, 1, ++/*407546*/ OPC_CheckType, MVT::i32, ++/*407548*/ OPC_MoveParent, ++/*407549*/ OPC_MoveChild, 22, ++/*407551*/ OPC_CheckInteger, 1, ++/*407553*/ OPC_CheckType, MVT::i32, ++/*407555*/ OPC_MoveParent, ++/*407556*/ OPC_MoveChild, 23, ++/*407558*/ OPC_CheckInteger, 1, ++/*407560*/ OPC_CheckType, MVT::i32, ++/*407562*/ OPC_MoveParent, ++/*407563*/ OPC_MoveChild, 24, ++/*407565*/ OPC_CheckInteger, 1, ++/*407567*/ OPC_CheckType, MVT::i32, ++/*407569*/ OPC_MoveParent, ++/*407570*/ OPC_MoveChild, 25, ++/*407572*/ OPC_CheckInteger, 1, ++/*407574*/ OPC_CheckType, MVT::i32, ++/*407576*/ OPC_MoveParent, ++/*407577*/ OPC_MoveChild, 26, ++/*407579*/ OPC_CheckInteger, 1, ++/*407581*/ OPC_CheckType, MVT::i32, ++/*407583*/ OPC_MoveParent, ++/*407584*/ OPC_MoveChild, 27, ++/*407586*/ OPC_CheckInteger, 1, ++/*407588*/ OPC_CheckType, MVT::i32, ++/*407590*/ OPC_MoveParent, ++/*407591*/ OPC_MoveChild, 28, ++/*407593*/ OPC_CheckInteger, 1, ++/*407595*/ OPC_CheckType, MVT::i32, ++/*407597*/ OPC_MoveParent, ++/*407598*/ OPC_MoveChild, 29, ++/*407600*/ OPC_CheckInteger, 1, ++/*407602*/ OPC_CheckType, MVT::i32, ++/*407604*/ OPC_MoveParent, ++/*407605*/ OPC_MoveChild, 30, ++/*407607*/ OPC_CheckInteger, 1, ++/*407609*/ OPC_CheckType, MVT::i32, ++/*407611*/ OPC_MoveParent, ++/*407612*/ OPC_MoveChild, 31, ++/*407614*/ OPC_CheckInteger, 1, ++/*407616*/ OPC_CheckType, MVT::i32, ++/*407618*/ OPC_MoveParent, ++/*407619*/ OPC_CheckType, MVT::v32i8, ++/*407621*/ OPC_MoveParent, ++/*407622*/ OPC_CheckType, MVT::v32i8, ++/*407624*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*407626*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 341 ++ // Dst: (XVAVG_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*407634*/ /*Scope*/ 62|128,3/*446*/, /*->408082*/ ++/*407636*/ OPC_CheckChild0Same, 0, ++/*407638*/ OPC_CheckChild1Same, 1, ++/*407640*/ OPC_MoveParent, ++/*407641*/ OPC_MoveChild1, ++/*407642*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*407645*/ OPC_CheckChild0Integer, 7, ++/*407647*/ OPC_CheckChild0Type, MVT::i32, ++/*407649*/ OPC_CheckChild1Integer, 7, ++/*407651*/ OPC_CheckChild1Type, MVT::i32, ++/*407653*/ OPC_CheckChild2Integer, 7, ++/*407655*/ OPC_CheckChild2Type, MVT::i32, ++/*407657*/ OPC_CheckChild3Integer, 7, ++/*407659*/ OPC_CheckChild3Type, MVT::i32, ++/*407661*/ OPC_CheckChild4Integer, 7, ++/*407663*/ OPC_CheckChild4Type, MVT::i32, ++/*407665*/ OPC_MoveChild5, ++/*407666*/ OPC_CheckInteger, 7, ++/*407668*/ OPC_CheckType, MVT::i32, ++/*407670*/ OPC_MoveParent, ++/*407671*/ OPC_MoveChild6, ++/*407672*/ OPC_CheckInteger, 7, ++/*407674*/ OPC_CheckType, MVT::i32, ++/*407676*/ OPC_MoveParent, ++/*407677*/ OPC_MoveChild7, ++/*407678*/ OPC_CheckInteger, 7, ++/*407680*/ OPC_CheckType, MVT::i32, ++/*407682*/ OPC_MoveParent, ++/*407683*/ OPC_MoveChild, 8, ++/*407685*/ OPC_CheckInteger, 7, ++/*407687*/ OPC_CheckType, MVT::i32, ++/*407689*/ OPC_MoveParent, ++/*407690*/ OPC_MoveChild, 9, ++/*407692*/ OPC_CheckInteger, 7, ++/*407694*/ OPC_CheckType, MVT::i32, ++/*407696*/ OPC_MoveParent, ++/*407697*/ OPC_MoveChild, 10, ++/*407699*/ OPC_CheckInteger, 7, ++/*407701*/ OPC_CheckType, MVT::i32, ++/*407703*/ OPC_MoveParent, ++/*407704*/ OPC_MoveChild, 11, ++/*407706*/ OPC_CheckInteger, 7, ++/*407708*/ OPC_CheckType, MVT::i32, ++/*407710*/ OPC_MoveParent, ++/*407711*/ OPC_MoveChild, 12, ++/*407713*/ OPC_CheckInteger, 7, ++/*407715*/ OPC_CheckType, MVT::i32, ++/*407717*/ OPC_MoveParent, ++/*407718*/ OPC_MoveChild, 13, ++/*407720*/ OPC_CheckInteger, 7, ++/*407722*/ OPC_CheckType, MVT::i32, ++/*407724*/ OPC_MoveParent, ++/*407725*/ OPC_MoveChild, 14, ++/*407727*/ OPC_CheckInteger, 7, ++/*407729*/ OPC_CheckType, MVT::i32, ++/*407731*/ OPC_MoveParent, ++/*407732*/ OPC_MoveChild, 15, ++/*407734*/ OPC_CheckInteger, 7, ++/*407736*/ OPC_CheckType, MVT::i32, ++/*407738*/ OPC_MoveParent, ++/*407739*/ OPC_MoveChild, 16, ++/*407741*/ OPC_CheckInteger, 7, ++/*407743*/ OPC_CheckType, MVT::i32, ++/*407745*/ OPC_MoveParent, ++/*407746*/ OPC_MoveChild, 17, ++/*407748*/ OPC_CheckInteger, 7, ++/*407750*/ OPC_CheckType, MVT::i32, ++/*407752*/ OPC_MoveParent, ++/*407753*/ OPC_MoveChild, 18, ++/*407755*/ OPC_CheckInteger, 7, ++/*407757*/ OPC_CheckType, MVT::i32, ++/*407759*/ OPC_MoveParent, ++/*407760*/ OPC_MoveChild, 19, ++/*407762*/ OPC_CheckInteger, 7, ++/*407764*/ OPC_CheckType, MVT::i32, ++/*407766*/ OPC_MoveParent, ++/*407767*/ OPC_MoveChild, 20, ++/*407769*/ OPC_CheckInteger, 7, ++/*407771*/ OPC_CheckType, MVT::i32, ++/*407773*/ OPC_MoveParent, ++/*407774*/ OPC_MoveChild, 21, ++/*407776*/ OPC_CheckInteger, 7, ++/*407778*/ OPC_CheckType, MVT::i32, ++/*407780*/ OPC_MoveParent, ++/*407781*/ OPC_MoveChild, 22, ++/*407783*/ OPC_CheckInteger, 7, ++/*407785*/ OPC_CheckType, MVT::i32, ++/*407787*/ OPC_MoveParent, ++/*407788*/ OPC_MoveChild, 23, ++/*407790*/ OPC_CheckInteger, 7, ++/*407792*/ OPC_CheckType, MVT::i32, ++/*407794*/ OPC_MoveParent, ++/*407795*/ OPC_MoveChild, 24, ++/*407797*/ OPC_CheckInteger, 7, ++/*407799*/ OPC_CheckType, MVT::i32, ++/*407801*/ OPC_MoveParent, ++/*407802*/ OPC_MoveChild, 25, ++/*407804*/ OPC_CheckInteger, 7, ++/*407806*/ OPC_CheckType, MVT::i32, ++/*407808*/ OPC_MoveParent, ++/*407809*/ OPC_MoveChild, 26, ++/*407811*/ OPC_CheckInteger, 7, ++/*407813*/ OPC_CheckType, MVT::i32, ++/*407815*/ OPC_MoveParent, ++/*407816*/ OPC_MoveChild, 27, ++/*407818*/ OPC_CheckInteger, 7, ++/*407820*/ OPC_CheckType, MVT::i32, ++/*407822*/ OPC_MoveParent, ++/*407823*/ OPC_MoveChild, 28, ++/*407825*/ OPC_CheckInteger, 7, ++/*407827*/ OPC_CheckType, MVT::i32, ++/*407829*/ OPC_MoveParent, ++/*407830*/ OPC_MoveChild, 29, ++/*407832*/ OPC_CheckInteger, 7, ++/*407834*/ OPC_CheckType, MVT::i32, ++/*407836*/ OPC_MoveParent, ++/*407837*/ OPC_MoveChild, 30, ++/*407839*/ OPC_CheckInteger, 7, ++/*407841*/ OPC_CheckType, MVT::i32, ++/*407843*/ OPC_MoveParent, ++/*407844*/ OPC_MoveChild, 31, ++/*407846*/ OPC_CheckInteger, 7, ++/*407848*/ OPC_CheckType, MVT::i32, ++/*407850*/ OPC_MoveParent, ++/*407851*/ OPC_CheckType, MVT::v32i8, ++/*407853*/ OPC_MoveParent, ++/*407854*/ OPC_MoveParent, ++/*407855*/ OPC_MoveParent, ++/*407856*/ OPC_MoveParent, ++/*407857*/ OPC_MoveChild1, ++/*407858*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*407861*/ OPC_CheckChild0Integer, 1, ++/*407863*/ OPC_CheckChild0Type, MVT::i32, ++/*407865*/ OPC_CheckChild1Integer, 1, ++/*407867*/ OPC_CheckChild1Type, MVT::i32, ++/*407869*/ OPC_CheckChild2Integer, 1, ++/*407871*/ OPC_CheckChild2Type, MVT::i32, ++/*407873*/ OPC_CheckChild3Integer, 1, ++/*407875*/ OPC_CheckChild3Type, MVT::i32, ++/*407877*/ OPC_CheckChild4Integer, 1, ++/*407879*/ OPC_CheckChild4Type, MVT::i32, ++/*407881*/ OPC_MoveChild5, ++/*407882*/ OPC_CheckInteger, 1, ++/*407884*/ OPC_CheckType, MVT::i32, ++/*407886*/ OPC_MoveParent, ++/*407887*/ OPC_MoveChild6, ++/*407888*/ OPC_CheckInteger, 1, ++/*407890*/ OPC_CheckType, MVT::i32, ++/*407892*/ OPC_MoveParent, ++/*407893*/ OPC_MoveChild7, ++/*407894*/ OPC_CheckInteger, 1, ++/*407896*/ OPC_CheckType, MVT::i32, ++/*407898*/ OPC_MoveParent, ++/*407899*/ OPC_MoveChild, 8, ++/*407901*/ OPC_CheckInteger, 1, ++/*407903*/ OPC_CheckType, MVT::i32, ++/*407905*/ OPC_MoveParent, ++/*407906*/ OPC_MoveChild, 9, ++/*407908*/ OPC_CheckInteger, 1, ++/*407910*/ OPC_CheckType, MVT::i32, ++/*407912*/ OPC_MoveParent, ++/*407913*/ OPC_MoveChild, 10, ++/*407915*/ OPC_CheckInteger, 1, ++/*407917*/ OPC_CheckType, MVT::i32, ++/*407919*/ OPC_MoveParent, ++/*407920*/ OPC_MoveChild, 11, ++/*407922*/ OPC_CheckInteger, 1, ++/*407924*/ OPC_CheckType, MVT::i32, ++/*407926*/ OPC_MoveParent, ++/*407927*/ OPC_MoveChild, 12, ++/*407929*/ OPC_CheckInteger, 1, ++/*407931*/ OPC_CheckType, MVT::i32, ++/*407933*/ OPC_MoveParent, ++/*407934*/ OPC_MoveChild, 13, ++/*407936*/ OPC_CheckInteger, 1, ++/*407938*/ OPC_CheckType, MVT::i32, ++/*407940*/ OPC_MoveParent, ++/*407941*/ OPC_MoveChild, 14, ++/*407943*/ OPC_CheckInteger, 1, ++/*407945*/ OPC_CheckType, MVT::i32, ++/*407947*/ OPC_MoveParent, ++/*407948*/ OPC_MoveChild, 15, ++/*407950*/ OPC_CheckInteger, 1, ++/*407952*/ OPC_CheckType, MVT::i32, ++/*407954*/ OPC_MoveParent, ++/*407955*/ OPC_MoveChild, 16, ++/*407957*/ OPC_CheckInteger, 1, ++/*407959*/ OPC_CheckType, MVT::i32, ++/*407961*/ OPC_MoveParent, ++/*407962*/ OPC_MoveChild, 17, ++/*407964*/ OPC_CheckInteger, 1, ++/*407966*/ OPC_CheckType, MVT::i32, ++/*407968*/ OPC_MoveParent, ++/*407969*/ OPC_MoveChild, 18, ++/*407971*/ OPC_CheckInteger, 1, ++/*407973*/ OPC_CheckType, MVT::i32, ++/*407975*/ OPC_MoveParent, ++/*407976*/ OPC_MoveChild, 19, ++/*407978*/ OPC_CheckInteger, 1, ++/*407980*/ OPC_CheckType, MVT::i32, ++/*407982*/ OPC_MoveParent, ++/*407983*/ OPC_MoveChild, 20, ++/*407985*/ OPC_CheckInteger, 1, ++/*407987*/ OPC_CheckType, MVT::i32, ++/*407989*/ OPC_MoveParent, ++/*407990*/ OPC_MoveChild, 21, ++/*407992*/ OPC_CheckInteger, 1, ++/*407994*/ OPC_CheckType, MVT::i32, ++/*407996*/ OPC_MoveParent, ++/*407997*/ OPC_MoveChild, 22, ++/*407999*/ OPC_CheckInteger, 1, ++/*408001*/ OPC_CheckType, MVT::i32, ++/*408003*/ OPC_MoveParent, ++/*408004*/ OPC_MoveChild, 23, ++/*408006*/ OPC_CheckInteger, 1, ++/*408008*/ OPC_CheckType, MVT::i32, ++/*408010*/ OPC_MoveParent, ++/*408011*/ OPC_MoveChild, 24, ++/*408013*/ OPC_CheckInteger, 1, ++/*408015*/ OPC_CheckType, MVT::i32, ++/*408017*/ OPC_MoveParent, ++/*408018*/ OPC_MoveChild, 25, ++/*408020*/ OPC_CheckInteger, 1, ++/*408022*/ OPC_CheckType, MVT::i32, ++/*408024*/ OPC_MoveParent, ++/*408025*/ OPC_MoveChild, 26, ++/*408027*/ OPC_CheckInteger, 1, ++/*408029*/ OPC_CheckType, MVT::i32, ++/*408031*/ OPC_MoveParent, ++/*408032*/ OPC_MoveChild, 27, ++/*408034*/ OPC_CheckInteger, 1, ++/*408036*/ OPC_CheckType, MVT::i32, ++/*408038*/ OPC_MoveParent, ++/*408039*/ OPC_MoveChild, 28, ++/*408041*/ OPC_CheckInteger, 1, ++/*408043*/ OPC_CheckType, MVT::i32, ++/*408045*/ OPC_MoveParent, ++/*408046*/ OPC_MoveChild, 29, ++/*408048*/ OPC_CheckInteger, 1, ++/*408050*/ OPC_CheckType, MVT::i32, ++/*408052*/ OPC_MoveParent, ++/*408053*/ OPC_MoveChild, 30, ++/*408055*/ OPC_CheckInteger, 1, ++/*408057*/ OPC_CheckType, MVT::i32, ++/*408059*/ OPC_MoveParent, ++/*408060*/ OPC_MoveChild, 31, ++/*408062*/ OPC_CheckInteger, 1, ++/*408064*/ OPC_CheckType, MVT::i32, ++/*408066*/ OPC_MoveParent, ++/*408067*/ OPC_CheckType, MVT::v32i8, ++/*408069*/ OPC_MoveParent, ++/*408070*/ OPC_CheckType, MVT::v32i8, ++/*408072*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*408074*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 341 ++ // Dst: (XVAVG_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*408082*/ 0, /*End of Scope*/ ++/*408083*/ /*Scope*/ 12|128,7/*908*/, /*->408993*/ ++/*408085*/ OPC_MoveChild0, ++/*408086*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*408089*/ OPC_MoveChild0, ++/*408090*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*408093*/ OPC_Scope, 63|128,3/*447*/, /*->408543*/ // 2 children in Scope ++/*408096*/ OPC_RecordChild0, // #1 = $a ++/*408097*/ OPC_CheckChild1Same, 0, ++/*408099*/ OPC_MoveParent, ++/*408100*/ OPC_MoveChild1, ++/*408101*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*408104*/ OPC_CheckChild0Integer, 7, ++/*408106*/ OPC_CheckChild0Type, MVT::i32, ++/*408108*/ OPC_CheckChild1Integer, 7, ++/*408110*/ OPC_CheckChild1Type, MVT::i32, ++/*408112*/ OPC_CheckChild2Integer, 7, ++/*408114*/ OPC_CheckChild2Type, MVT::i32, ++/*408116*/ OPC_CheckChild3Integer, 7, ++/*408118*/ OPC_CheckChild3Type, MVT::i32, ++/*408120*/ OPC_CheckChild4Integer, 7, ++/*408122*/ OPC_CheckChild4Type, MVT::i32, ++/*408124*/ OPC_MoveChild5, ++/*408125*/ OPC_CheckInteger, 7, ++/*408127*/ OPC_CheckType, MVT::i32, ++/*408129*/ OPC_MoveParent, ++/*408130*/ OPC_MoveChild6, ++/*408131*/ OPC_CheckInteger, 7, ++/*408133*/ OPC_CheckType, MVT::i32, ++/*408135*/ OPC_MoveParent, ++/*408136*/ OPC_MoveChild7, ++/*408137*/ OPC_CheckInteger, 7, ++/*408139*/ OPC_CheckType, MVT::i32, ++/*408141*/ OPC_MoveParent, ++/*408142*/ OPC_MoveChild, 8, ++/*408144*/ OPC_CheckInteger, 7, ++/*408146*/ OPC_CheckType, MVT::i32, ++/*408148*/ OPC_MoveParent, ++/*408149*/ OPC_MoveChild, 9, ++/*408151*/ OPC_CheckInteger, 7, ++/*408153*/ OPC_CheckType, MVT::i32, ++/*408155*/ OPC_MoveParent, ++/*408156*/ OPC_MoveChild, 10, ++/*408158*/ OPC_CheckInteger, 7, ++/*408160*/ OPC_CheckType, MVT::i32, ++/*408162*/ OPC_MoveParent, ++/*408163*/ OPC_MoveChild, 11, ++/*408165*/ OPC_CheckInteger, 7, ++/*408167*/ OPC_CheckType, MVT::i32, ++/*408169*/ OPC_MoveParent, ++/*408170*/ OPC_MoveChild, 12, ++/*408172*/ OPC_CheckInteger, 7, ++/*408174*/ OPC_CheckType, MVT::i32, ++/*408176*/ OPC_MoveParent, ++/*408177*/ OPC_MoveChild, 13, ++/*408179*/ OPC_CheckInteger, 7, ++/*408181*/ OPC_CheckType, MVT::i32, ++/*408183*/ OPC_MoveParent, ++/*408184*/ OPC_MoveChild, 14, ++/*408186*/ OPC_CheckInteger, 7, ++/*408188*/ OPC_CheckType, MVT::i32, ++/*408190*/ OPC_MoveParent, ++/*408191*/ OPC_MoveChild, 15, ++/*408193*/ OPC_CheckInteger, 7, ++/*408195*/ OPC_CheckType, MVT::i32, ++/*408197*/ OPC_MoveParent, ++/*408198*/ OPC_MoveChild, 16, ++/*408200*/ OPC_CheckInteger, 7, ++/*408202*/ OPC_CheckType, MVT::i32, ++/*408204*/ OPC_MoveParent, ++/*408205*/ OPC_MoveChild, 17, ++/*408207*/ OPC_CheckInteger, 7, ++/*408209*/ OPC_CheckType, MVT::i32, ++/*408211*/ OPC_MoveParent, ++/*408212*/ OPC_MoveChild, 18, ++/*408214*/ OPC_CheckInteger, 7, ++/*408216*/ OPC_CheckType, MVT::i32, ++/*408218*/ OPC_MoveParent, ++/*408219*/ OPC_MoveChild, 19, ++/*408221*/ OPC_CheckInteger, 7, ++/*408223*/ OPC_CheckType, MVT::i32, ++/*408225*/ OPC_MoveParent, ++/*408226*/ OPC_MoveChild, 20, ++/*408228*/ OPC_CheckInteger, 7, ++/*408230*/ OPC_CheckType, MVT::i32, ++/*408232*/ OPC_MoveParent, ++/*408233*/ OPC_MoveChild, 21, ++/*408235*/ OPC_CheckInteger, 7, ++/*408237*/ OPC_CheckType, MVT::i32, ++/*408239*/ OPC_MoveParent, ++/*408240*/ OPC_MoveChild, 22, ++/*408242*/ OPC_CheckInteger, 7, ++/*408244*/ OPC_CheckType, MVT::i32, ++/*408246*/ OPC_MoveParent, ++/*408247*/ OPC_MoveChild, 23, ++/*408249*/ OPC_CheckInteger, 7, ++/*408251*/ OPC_CheckType, MVT::i32, ++/*408253*/ OPC_MoveParent, ++/*408254*/ OPC_MoveChild, 24, ++/*408256*/ OPC_CheckInteger, 7, ++/*408258*/ OPC_CheckType, MVT::i32, ++/*408260*/ OPC_MoveParent, ++/*408261*/ OPC_MoveChild, 25, ++/*408263*/ OPC_CheckInteger, 7, ++/*408265*/ OPC_CheckType, MVT::i32, ++/*408267*/ OPC_MoveParent, ++/*408268*/ OPC_MoveChild, 26, ++/*408270*/ OPC_CheckInteger, 7, ++/*408272*/ OPC_CheckType, MVT::i32, ++/*408274*/ OPC_MoveParent, ++/*408275*/ OPC_MoveChild, 27, ++/*408277*/ OPC_CheckInteger, 7, ++/*408279*/ OPC_CheckType, MVT::i32, ++/*408281*/ OPC_MoveParent, ++/*408282*/ OPC_MoveChild, 28, ++/*408284*/ OPC_CheckInteger, 7, ++/*408286*/ OPC_CheckType, MVT::i32, ++/*408288*/ OPC_MoveParent, ++/*408289*/ OPC_MoveChild, 29, ++/*408291*/ OPC_CheckInteger, 7, ++/*408293*/ OPC_CheckType, MVT::i32, ++/*408295*/ OPC_MoveParent, ++/*408296*/ OPC_MoveChild, 30, ++/*408298*/ OPC_CheckInteger, 7, ++/*408300*/ OPC_CheckType, MVT::i32, ++/*408302*/ OPC_MoveParent, ++/*408303*/ OPC_MoveChild, 31, ++/*408305*/ OPC_CheckInteger, 7, ++/*408307*/ OPC_CheckType, MVT::i32, ++/*408309*/ OPC_MoveParent, ++/*408310*/ OPC_CheckType, MVT::v32i8, ++/*408312*/ OPC_MoveParent, ++/*408313*/ OPC_MoveParent, ++/*408314*/ OPC_CheckChild1Same, 1, ++/*408316*/ OPC_MoveParent, ++/*408317*/ OPC_MoveParent, ++/*408318*/ OPC_MoveChild1, ++/*408319*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*408322*/ OPC_CheckChild0Integer, 1, ++/*408324*/ OPC_CheckChild0Type, MVT::i32, ++/*408326*/ OPC_CheckChild1Integer, 1, ++/*408328*/ OPC_CheckChild1Type, MVT::i32, ++/*408330*/ OPC_CheckChild2Integer, 1, ++/*408332*/ OPC_CheckChild2Type, MVT::i32, ++/*408334*/ OPC_CheckChild3Integer, 1, ++/*408336*/ OPC_CheckChild3Type, MVT::i32, ++/*408338*/ OPC_CheckChild4Integer, 1, ++/*408340*/ OPC_CheckChild4Type, MVT::i32, ++/*408342*/ OPC_MoveChild5, ++/*408343*/ OPC_CheckInteger, 1, ++/*408345*/ OPC_CheckType, MVT::i32, ++/*408347*/ OPC_MoveParent, ++/*408348*/ OPC_MoveChild6, ++/*408349*/ OPC_CheckInteger, 1, ++/*408351*/ OPC_CheckType, MVT::i32, ++/*408353*/ OPC_MoveParent, ++/*408354*/ OPC_MoveChild7, ++/*408355*/ OPC_CheckInteger, 1, ++/*408357*/ OPC_CheckType, MVT::i32, ++/*408359*/ OPC_MoveParent, ++/*408360*/ OPC_MoveChild, 8, ++/*408362*/ OPC_CheckInteger, 1, ++/*408364*/ OPC_CheckType, MVT::i32, ++/*408366*/ OPC_MoveParent, ++/*408367*/ OPC_MoveChild, 9, ++/*408369*/ OPC_CheckInteger, 1, ++/*408371*/ OPC_CheckType, MVT::i32, ++/*408373*/ OPC_MoveParent, ++/*408374*/ OPC_MoveChild, 10, ++/*408376*/ OPC_CheckInteger, 1, ++/*408378*/ OPC_CheckType, MVT::i32, ++/*408380*/ OPC_MoveParent, ++/*408381*/ OPC_MoveChild, 11, ++/*408383*/ OPC_CheckInteger, 1, ++/*408385*/ OPC_CheckType, MVT::i32, ++/*408387*/ OPC_MoveParent, ++/*408388*/ OPC_MoveChild, 12, ++/*408390*/ OPC_CheckInteger, 1, ++/*408392*/ OPC_CheckType, MVT::i32, ++/*408394*/ OPC_MoveParent, ++/*408395*/ OPC_MoveChild, 13, ++/*408397*/ OPC_CheckInteger, 1, ++/*408399*/ OPC_CheckType, MVT::i32, ++/*408401*/ OPC_MoveParent, ++/*408402*/ OPC_MoveChild, 14, ++/*408404*/ OPC_CheckInteger, 1, ++/*408406*/ OPC_CheckType, MVT::i32, ++/*408408*/ OPC_MoveParent, ++/*408409*/ OPC_MoveChild, 15, ++/*408411*/ OPC_CheckInteger, 1, ++/*408413*/ OPC_CheckType, MVT::i32, ++/*408415*/ OPC_MoveParent, ++/*408416*/ OPC_MoveChild, 16, ++/*408418*/ OPC_CheckInteger, 1, ++/*408420*/ OPC_CheckType, MVT::i32, ++/*408422*/ OPC_MoveParent, ++/*408423*/ OPC_MoveChild, 17, ++/*408425*/ OPC_CheckInteger, 1, ++/*408427*/ OPC_CheckType, MVT::i32, ++/*408429*/ OPC_MoveParent, ++/*408430*/ OPC_MoveChild, 18, ++/*408432*/ OPC_CheckInteger, 1, ++/*408434*/ OPC_CheckType, MVT::i32, ++/*408436*/ OPC_MoveParent, ++/*408437*/ OPC_MoveChild, 19, ++/*408439*/ OPC_CheckInteger, 1, ++/*408441*/ OPC_CheckType, MVT::i32, ++/*408443*/ OPC_MoveParent, ++/*408444*/ OPC_MoveChild, 20, ++/*408446*/ OPC_CheckInteger, 1, ++/*408448*/ OPC_CheckType, MVT::i32, ++/*408450*/ OPC_MoveParent, ++/*408451*/ OPC_MoveChild, 21, ++/*408453*/ OPC_CheckInteger, 1, ++/*408455*/ OPC_CheckType, MVT::i32, ++/*408457*/ OPC_MoveParent, ++/*408458*/ OPC_MoveChild, 22, ++/*408460*/ OPC_CheckInteger, 1, ++/*408462*/ OPC_CheckType, MVT::i32, ++/*408464*/ OPC_MoveParent, ++/*408465*/ OPC_MoveChild, 23, ++/*408467*/ OPC_CheckInteger, 1, ++/*408469*/ OPC_CheckType, MVT::i32, ++/*408471*/ OPC_MoveParent, ++/*408472*/ OPC_MoveChild, 24, ++/*408474*/ OPC_CheckInteger, 1, ++/*408476*/ OPC_CheckType, MVT::i32, ++/*408478*/ OPC_MoveParent, ++/*408479*/ OPC_MoveChild, 25, ++/*408481*/ OPC_CheckInteger, 1, ++/*408483*/ OPC_CheckType, MVT::i32, ++/*408485*/ OPC_MoveParent, ++/*408486*/ OPC_MoveChild, 26, ++/*408488*/ OPC_CheckInteger, 1, ++/*408490*/ OPC_CheckType, MVT::i32, ++/*408492*/ OPC_MoveParent, ++/*408493*/ OPC_MoveChild, 27, ++/*408495*/ OPC_CheckInteger, 1, ++/*408497*/ OPC_CheckType, MVT::i32, ++/*408499*/ OPC_MoveParent, ++/*408500*/ OPC_MoveChild, 28, ++/*408502*/ OPC_CheckInteger, 1, ++/*408504*/ OPC_CheckType, MVT::i32, ++/*408506*/ OPC_MoveParent, ++/*408507*/ OPC_MoveChild, 29, ++/*408509*/ OPC_CheckInteger, 1, ++/*408511*/ OPC_CheckType, MVT::i32, ++/*408513*/ OPC_MoveParent, ++/*408514*/ OPC_MoveChild, 30, ++/*408516*/ OPC_CheckInteger, 1, ++/*408518*/ OPC_CheckType, MVT::i32, ++/*408520*/ OPC_MoveParent, ++/*408521*/ OPC_MoveChild, 31, ++/*408523*/ OPC_CheckInteger, 1, ++/*408525*/ OPC_CheckType, MVT::i32, ++/*408527*/ OPC_MoveParent, ++/*408528*/ OPC_CheckType, MVT::v32i8, ++/*408530*/ OPC_MoveParent, ++/*408531*/ OPC_CheckType, MVT::v32i8, ++/*408533*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*408535*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 341 ++ // Dst: (XVAVG_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*408543*/ /*Scope*/ 63|128,3/*447*/, /*->408992*/ ++/*408545*/ OPC_CheckChild0Same, 0, ++/*408547*/ OPC_RecordChild1, // #1 = $a ++/*408548*/ OPC_MoveParent, ++/*408549*/ OPC_MoveChild1, ++/*408550*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*408553*/ OPC_CheckChild0Integer, 7, ++/*408555*/ OPC_CheckChild0Type, MVT::i32, ++/*408557*/ OPC_CheckChild1Integer, 7, ++/*408559*/ OPC_CheckChild1Type, MVT::i32, ++/*408561*/ OPC_CheckChild2Integer, 7, ++/*408563*/ OPC_CheckChild2Type, MVT::i32, ++/*408565*/ OPC_CheckChild3Integer, 7, ++/*408567*/ OPC_CheckChild3Type, MVT::i32, ++/*408569*/ OPC_CheckChild4Integer, 7, ++/*408571*/ OPC_CheckChild4Type, MVT::i32, ++/*408573*/ OPC_MoveChild5, ++/*408574*/ OPC_CheckInteger, 7, ++/*408576*/ OPC_CheckType, MVT::i32, ++/*408578*/ OPC_MoveParent, ++/*408579*/ OPC_MoveChild6, ++/*408580*/ OPC_CheckInteger, 7, ++/*408582*/ OPC_CheckType, MVT::i32, ++/*408584*/ OPC_MoveParent, ++/*408585*/ OPC_MoveChild7, ++/*408586*/ OPC_CheckInteger, 7, ++/*408588*/ OPC_CheckType, MVT::i32, ++/*408590*/ OPC_MoveParent, ++/*408591*/ OPC_MoveChild, 8, ++/*408593*/ OPC_CheckInteger, 7, ++/*408595*/ OPC_CheckType, MVT::i32, ++/*408597*/ OPC_MoveParent, ++/*408598*/ OPC_MoveChild, 9, ++/*408600*/ OPC_CheckInteger, 7, ++/*408602*/ OPC_CheckType, MVT::i32, ++/*408604*/ OPC_MoveParent, ++/*408605*/ OPC_MoveChild, 10, ++/*408607*/ OPC_CheckInteger, 7, ++/*408609*/ OPC_CheckType, MVT::i32, ++/*408611*/ OPC_MoveParent, ++/*408612*/ OPC_MoveChild, 11, ++/*408614*/ OPC_CheckInteger, 7, ++/*408616*/ OPC_CheckType, MVT::i32, ++/*408618*/ OPC_MoveParent, ++/*408619*/ OPC_MoveChild, 12, ++/*408621*/ OPC_CheckInteger, 7, ++/*408623*/ OPC_CheckType, MVT::i32, ++/*408625*/ OPC_MoveParent, ++/*408626*/ OPC_MoveChild, 13, ++/*408628*/ OPC_CheckInteger, 7, ++/*408630*/ OPC_CheckType, MVT::i32, ++/*408632*/ OPC_MoveParent, ++/*408633*/ OPC_MoveChild, 14, ++/*408635*/ OPC_CheckInteger, 7, ++/*408637*/ OPC_CheckType, MVT::i32, ++/*408639*/ OPC_MoveParent, ++/*408640*/ OPC_MoveChild, 15, ++/*408642*/ OPC_CheckInteger, 7, ++/*408644*/ OPC_CheckType, MVT::i32, ++/*408646*/ OPC_MoveParent, ++/*408647*/ OPC_MoveChild, 16, ++/*408649*/ OPC_CheckInteger, 7, ++/*408651*/ OPC_CheckType, MVT::i32, ++/*408653*/ OPC_MoveParent, ++/*408654*/ OPC_MoveChild, 17, ++/*408656*/ OPC_CheckInteger, 7, ++/*408658*/ OPC_CheckType, MVT::i32, ++/*408660*/ OPC_MoveParent, ++/*408661*/ OPC_MoveChild, 18, ++/*408663*/ OPC_CheckInteger, 7, ++/*408665*/ OPC_CheckType, MVT::i32, ++/*408667*/ OPC_MoveParent, ++/*408668*/ OPC_MoveChild, 19, ++/*408670*/ OPC_CheckInteger, 7, ++/*408672*/ OPC_CheckType, MVT::i32, ++/*408674*/ OPC_MoveParent, ++/*408675*/ OPC_MoveChild, 20, ++/*408677*/ OPC_CheckInteger, 7, ++/*408679*/ OPC_CheckType, MVT::i32, ++/*408681*/ OPC_MoveParent, ++/*408682*/ OPC_MoveChild, 21, ++/*408684*/ OPC_CheckInteger, 7, ++/*408686*/ OPC_CheckType, MVT::i32, ++/*408688*/ OPC_MoveParent, ++/*408689*/ OPC_MoveChild, 22, ++/*408691*/ OPC_CheckInteger, 7, ++/*408693*/ OPC_CheckType, MVT::i32, ++/*408695*/ OPC_MoveParent, ++/*408696*/ OPC_MoveChild, 23, ++/*408698*/ OPC_CheckInteger, 7, ++/*408700*/ OPC_CheckType, MVT::i32, ++/*408702*/ OPC_MoveParent, ++/*408703*/ OPC_MoveChild, 24, ++/*408705*/ OPC_CheckInteger, 7, ++/*408707*/ OPC_CheckType, MVT::i32, ++/*408709*/ OPC_MoveParent, ++/*408710*/ OPC_MoveChild, 25, ++/*408712*/ OPC_CheckInteger, 7, ++/*408714*/ OPC_CheckType, MVT::i32, ++/*408716*/ OPC_MoveParent, ++/*408717*/ OPC_MoveChild, 26, ++/*408719*/ OPC_CheckInteger, 7, ++/*408721*/ OPC_CheckType, MVT::i32, ++/*408723*/ OPC_MoveParent, ++/*408724*/ OPC_MoveChild, 27, ++/*408726*/ OPC_CheckInteger, 7, ++/*408728*/ OPC_CheckType, MVT::i32, ++/*408730*/ OPC_MoveParent, ++/*408731*/ OPC_MoveChild, 28, ++/*408733*/ OPC_CheckInteger, 7, ++/*408735*/ OPC_CheckType, MVT::i32, ++/*408737*/ OPC_MoveParent, ++/*408738*/ OPC_MoveChild, 29, ++/*408740*/ OPC_CheckInteger, 7, ++/*408742*/ OPC_CheckType, MVT::i32, ++/*408744*/ OPC_MoveParent, ++/*408745*/ OPC_MoveChild, 30, ++/*408747*/ OPC_CheckInteger, 7, ++/*408749*/ OPC_CheckType, MVT::i32, ++/*408751*/ OPC_MoveParent, ++/*408752*/ OPC_MoveChild, 31, ++/*408754*/ OPC_CheckInteger, 7, ++/*408756*/ OPC_CheckType, MVT::i32, ++/*408758*/ OPC_MoveParent, ++/*408759*/ OPC_CheckType, MVT::v32i8, ++/*408761*/ OPC_MoveParent, ++/*408762*/ OPC_MoveParent, ++/*408763*/ OPC_CheckChild1Same, 1, ++/*408765*/ OPC_MoveParent, ++/*408766*/ OPC_MoveParent, ++/*408767*/ OPC_MoveChild1, ++/*408768*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*408771*/ OPC_CheckChild0Integer, 1, ++/*408773*/ OPC_CheckChild0Type, MVT::i32, ++/*408775*/ OPC_CheckChild1Integer, 1, ++/*408777*/ OPC_CheckChild1Type, MVT::i32, ++/*408779*/ OPC_CheckChild2Integer, 1, ++/*408781*/ OPC_CheckChild2Type, MVT::i32, ++/*408783*/ OPC_CheckChild3Integer, 1, ++/*408785*/ OPC_CheckChild3Type, MVT::i32, ++/*408787*/ OPC_CheckChild4Integer, 1, ++/*408789*/ OPC_CheckChild4Type, MVT::i32, ++/*408791*/ OPC_MoveChild5, ++/*408792*/ OPC_CheckInteger, 1, ++/*408794*/ OPC_CheckType, MVT::i32, ++/*408796*/ OPC_MoveParent, ++/*408797*/ OPC_MoveChild6, ++/*408798*/ OPC_CheckInteger, 1, ++/*408800*/ OPC_CheckType, MVT::i32, ++/*408802*/ OPC_MoveParent, ++/*408803*/ OPC_MoveChild7, ++/*408804*/ OPC_CheckInteger, 1, ++/*408806*/ OPC_CheckType, MVT::i32, ++/*408808*/ OPC_MoveParent, ++/*408809*/ OPC_MoveChild, 8, ++/*408811*/ OPC_CheckInteger, 1, ++/*408813*/ OPC_CheckType, MVT::i32, ++/*408815*/ OPC_MoveParent, ++/*408816*/ OPC_MoveChild, 9, ++/*408818*/ OPC_CheckInteger, 1, ++/*408820*/ OPC_CheckType, MVT::i32, ++/*408822*/ OPC_MoveParent, ++/*408823*/ OPC_MoveChild, 10, ++/*408825*/ OPC_CheckInteger, 1, ++/*408827*/ OPC_CheckType, MVT::i32, ++/*408829*/ OPC_MoveParent, ++/*408830*/ OPC_MoveChild, 11, ++/*408832*/ OPC_CheckInteger, 1, ++/*408834*/ OPC_CheckType, MVT::i32, ++/*408836*/ OPC_MoveParent, ++/*408837*/ OPC_MoveChild, 12, ++/*408839*/ OPC_CheckInteger, 1, ++/*408841*/ OPC_CheckType, MVT::i32, ++/*408843*/ OPC_MoveParent, ++/*408844*/ OPC_MoveChild, 13, ++/*408846*/ OPC_CheckInteger, 1, ++/*408848*/ OPC_CheckType, MVT::i32, ++/*408850*/ OPC_MoveParent, ++/*408851*/ OPC_MoveChild, 14, ++/*408853*/ OPC_CheckInteger, 1, ++/*408855*/ OPC_CheckType, MVT::i32, ++/*408857*/ OPC_MoveParent, ++/*408858*/ OPC_MoveChild, 15, ++/*408860*/ OPC_CheckInteger, 1, ++/*408862*/ OPC_CheckType, MVT::i32, ++/*408864*/ OPC_MoveParent, ++/*408865*/ OPC_MoveChild, 16, ++/*408867*/ OPC_CheckInteger, 1, ++/*408869*/ OPC_CheckType, MVT::i32, ++/*408871*/ OPC_MoveParent, ++/*408872*/ OPC_MoveChild, 17, ++/*408874*/ OPC_CheckInteger, 1, ++/*408876*/ OPC_CheckType, MVT::i32, ++/*408878*/ OPC_MoveParent, ++/*408879*/ OPC_MoveChild, 18, ++/*408881*/ OPC_CheckInteger, 1, ++/*408883*/ OPC_CheckType, MVT::i32, ++/*408885*/ OPC_MoveParent, ++/*408886*/ OPC_MoveChild, 19, ++/*408888*/ OPC_CheckInteger, 1, ++/*408890*/ OPC_CheckType, MVT::i32, ++/*408892*/ OPC_MoveParent, ++/*408893*/ OPC_MoveChild, 20, ++/*408895*/ OPC_CheckInteger, 1, ++/*408897*/ OPC_CheckType, MVT::i32, ++/*408899*/ OPC_MoveParent, ++/*408900*/ OPC_MoveChild, 21, ++/*408902*/ OPC_CheckInteger, 1, ++/*408904*/ OPC_CheckType, MVT::i32, ++/*408906*/ OPC_MoveParent, ++/*408907*/ OPC_MoveChild, 22, ++/*408909*/ OPC_CheckInteger, 1, ++/*408911*/ OPC_CheckType, MVT::i32, ++/*408913*/ OPC_MoveParent, ++/*408914*/ OPC_MoveChild, 23, ++/*408916*/ OPC_CheckInteger, 1, ++/*408918*/ OPC_CheckType, MVT::i32, ++/*408920*/ OPC_MoveParent, ++/*408921*/ OPC_MoveChild, 24, ++/*408923*/ OPC_CheckInteger, 1, ++/*408925*/ OPC_CheckType, MVT::i32, ++/*408927*/ OPC_MoveParent, ++/*408928*/ OPC_MoveChild, 25, ++/*408930*/ OPC_CheckInteger, 1, ++/*408932*/ OPC_CheckType, MVT::i32, ++/*408934*/ OPC_MoveParent, ++/*408935*/ OPC_MoveChild, 26, ++/*408937*/ OPC_CheckInteger, 1, ++/*408939*/ OPC_CheckType, MVT::i32, ++/*408941*/ OPC_MoveParent, ++/*408942*/ OPC_MoveChild, 27, ++/*408944*/ OPC_CheckInteger, 1, ++/*408946*/ OPC_CheckType, MVT::i32, ++/*408948*/ OPC_MoveParent, ++/*408949*/ OPC_MoveChild, 28, ++/*408951*/ OPC_CheckInteger, 1, ++/*408953*/ OPC_CheckType, MVT::i32, ++/*408955*/ OPC_MoveParent, ++/*408956*/ OPC_MoveChild, 29, ++/*408958*/ OPC_CheckInteger, 1, ++/*408960*/ OPC_CheckType, MVT::i32, ++/*408962*/ OPC_MoveParent, ++/*408963*/ OPC_MoveChild, 30, ++/*408965*/ OPC_CheckInteger, 1, ++/*408967*/ OPC_CheckType, MVT::i32, ++/*408969*/ OPC_MoveParent, ++/*408970*/ OPC_MoveChild, 31, ++/*408972*/ OPC_CheckInteger, 1, ++/*408974*/ OPC_CheckType, MVT::i32, ++/*408976*/ OPC_MoveParent, ++/*408977*/ OPC_CheckType, MVT::v32i8, ++/*408979*/ OPC_MoveParent, ++/*408980*/ OPC_CheckType, MVT::v32i8, ++/*408982*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*408984*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$a)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 341 ++ // Dst: (XVAVG_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*408992*/ 0, /*End of Scope*/ ++/*408993*/ /*Scope*/ 11|128,7/*907*/, /*->409902*/ ++/*408995*/ OPC_RecordChild0, // #1 = $b ++/*408996*/ OPC_MoveChild1, ++/*408997*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*409000*/ OPC_MoveChild0, ++/*409001*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*409004*/ OPC_Scope, 62|128,3/*446*/, /*->409453*/ // 2 children in Scope ++/*409007*/ OPC_CheckChild0Same, 0, ++/*409009*/ OPC_CheckChild1Same, 1, ++/*409011*/ OPC_MoveParent, ++/*409012*/ OPC_MoveChild1, ++/*409013*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*409016*/ OPC_CheckChild0Integer, 7, ++/*409018*/ OPC_CheckChild0Type, MVT::i32, ++/*409020*/ OPC_CheckChild1Integer, 7, ++/*409022*/ OPC_CheckChild1Type, MVT::i32, ++/*409024*/ OPC_CheckChild2Integer, 7, ++/*409026*/ OPC_CheckChild2Type, MVT::i32, ++/*409028*/ OPC_CheckChild3Integer, 7, ++/*409030*/ OPC_CheckChild3Type, MVT::i32, ++/*409032*/ OPC_CheckChild4Integer, 7, ++/*409034*/ OPC_CheckChild4Type, MVT::i32, ++/*409036*/ OPC_MoveChild5, ++/*409037*/ OPC_CheckInteger, 7, ++/*409039*/ OPC_CheckType, MVT::i32, ++/*409041*/ OPC_MoveParent, ++/*409042*/ OPC_MoveChild6, ++/*409043*/ OPC_CheckInteger, 7, ++/*409045*/ OPC_CheckType, MVT::i32, ++/*409047*/ OPC_MoveParent, ++/*409048*/ OPC_MoveChild7, ++/*409049*/ OPC_CheckInteger, 7, ++/*409051*/ OPC_CheckType, MVT::i32, ++/*409053*/ OPC_MoveParent, ++/*409054*/ OPC_MoveChild, 8, ++/*409056*/ OPC_CheckInteger, 7, ++/*409058*/ OPC_CheckType, MVT::i32, ++/*409060*/ OPC_MoveParent, ++/*409061*/ OPC_MoveChild, 9, ++/*409063*/ OPC_CheckInteger, 7, ++/*409065*/ OPC_CheckType, MVT::i32, ++/*409067*/ OPC_MoveParent, ++/*409068*/ OPC_MoveChild, 10, ++/*409070*/ OPC_CheckInteger, 7, ++/*409072*/ OPC_CheckType, MVT::i32, ++/*409074*/ OPC_MoveParent, ++/*409075*/ OPC_MoveChild, 11, ++/*409077*/ OPC_CheckInteger, 7, ++/*409079*/ OPC_CheckType, MVT::i32, ++/*409081*/ OPC_MoveParent, ++/*409082*/ OPC_MoveChild, 12, ++/*409084*/ OPC_CheckInteger, 7, ++/*409086*/ OPC_CheckType, MVT::i32, ++/*409088*/ OPC_MoveParent, ++/*409089*/ OPC_MoveChild, 13, ++/*409091*/ OPC_CheckInteger, 7, ++/*409093*/ OPC_CheckType, MVT::i32, ++/*409095*/ OPC_MoveParent, ++/*409096*/ OPC_MoveChild, 14, ++/*409098*/ OPC_CheckInteger, 7, ++/*409100*/ OPC_CheckType, MVT::i32, ++/*409102*/ OPC_MoveParent, ++/*409103*/ OPC_MoveChild, 15, ++/*409105*/ OPC_CheckInteger, 7, ++/*409107*/ OPC_CheckType, MVT::i32, ++/*409109*/ OPC_MoveParent, ++/*409110*/ OPC_MoveChild, 16, ++/*409112*/ OPC_CheckInteger, 7, ++/*409114*/ OPC_CheckType, MVT::i32, ++/*409116*/ OPC_MoveParent, ++/*409117*/ OPC_MoveChild, 17, ++/*409119*/ OPC_CheckInteger, 7, ++/*409121*/ OPC_CheckType, MVT::i32, ++/*409123*/ OPC_MoveParent, ++/*409124*/ OPC_MoveChild, 18, ++/*409126*/ OPC_CheckInteger, 7, ++/*409128*/ OPC_CheckType, MVT::i32, ++/*409130*/ OPC_MoveParent, ++/*409131*/ OPC_MoveChild, 19, ++/*409133*/ OPC_CheckInteger, 7, ++/*409135*/ OPC_CheckType, MVT::i32, ++/*409137*/ OPC_MoveParent, ++/*409138*/ OPC_MoveChild, 20, ++/*409140*/ OPC_CheckInteger, 7, ++/*409142*/ OPC_CheckType, MVT::i32, ++/*409144*/ OPC_MoveParent, ++/*409145*/ OPC_MoveChild, 21, ++/*409147*/ OPC_CheckInteger, 7, ++/*409149*/ OPC_CheckType, MVT::i32, ++/*409151*/ OPC_MoveParent, ++/*409152*/ OPC_MoveChild, 22, ++/*409154*/ OPC_CheckInteger, 7, ++/*409156*/ OPC_CheckType, MVT::i32, ++/*409158*/ OPC_MoveParent, ++/*409159*/ OPC_MoveChild, 23, ++/*409161*/ OPC_CheckInteger, 7, ++/*409163*/ OPC_CheckType, MVT::i32, ++/*409165*/ OPC_MoveParent, ++/*409166*/ OPC_MoveChild, 24, ++/*409168*/ OPC_CheckInteger, 7, ++/*409170*/ OPC_CheckType, MVT::i32, ++/*409172*/ OPC_MoveParent, ++/*409173*/ OPC_MoveChild, 25, ++/*409175*/ OPC_CheckInteger, 7, ++/*409177*/ OPC_CheckType, MVT::i32, ++/*409179*/ OPC_MoveParent, ++/*409180*/ OPC_MoveChild, 26, ++/*409182*/ OPC_CheckInteger, 7, ++/*409184*/ OPC_CheckType, MVT::i32, ++/*409186*/ OPC_MoveParent, ++/*409187*/ OPC_MoveChild, 27, ++/*409189*/ OPC_CheckInteger, 7, ++/*409191*/ OPC_CheckType, MVT::i32, ++/*409193*/ OPC_MoveParent, ++/*409194*/ OPC_MoveChild, 28, ++/*409196*/ OPC_CheckInteger, 7, ++/*409198*/ OPC_CheckType, MVT::i32, ++/*409200*/ OPC_MoveParent, ++/*409201*/ OPC_MoveChild, 29, ++/*409203*/ OPC_CheckInteger, 7, ++/*409205*/ OPC_CheckType, MVT::i32, ++/*409207*/ OPC_MoveParent, ++/*409208*/ OPC_MoveChild, 30, ++/*409210*/ OPC_CheckInteger, 7, ++/*409212*/ OPC_CheckType, MVT::i32, ++/*409214*/ OPC_MoveParent, ++/*409215*/ OPC_MoveChild, 31, ++/*409217*/ OPC_CheckInteger, 7, ++/*409219*/ OPC_CheckType, MVT::i32, ++/*409221*/ OPC_MoveParent, ++/*409222*/ OPC_CheckType, MVT::v32i8, ++/*409224*/ OPC_MoveParent, ++/*409225*/ OPC_MoveParent, ++/*409226*/ OPC_MoveParent, ++/*409227*/ OPC_MoveParent, ++/*409228*/ OPC_MoveChild1, ++/*409229*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*409232*/ OPC_CheckChild0Integer, 1, ++/*409234*/ OPC_CheckChild0Type, MVT::i32, ++/*409236*/ OPC_CheckChild1Integer, 1, ++/*409238*/ OPC_CheckChild1Type, MVT::i32, ++/*409240*/ OPC_CheckChild2Integer, 1, ++/*409242*/ OPC_CheckChild2Type, MVT::i32, ++/*409244*/ OPC_CheckChild3Integer, 1, ++/*409246*/ OPC_CheckChild3Type, MVT::i32, ++/*409248*/ OPC_CheckChild4Integer, 1, ++/*409250*/ OPC_CheckChild4Type, MVT::i32, ++/*409252*/ OPC_MoveChild5, ++/*409253*/ OPC_CheckInteger, 1, ++/*409255*/ OPC_CheckType, MVT::i32, ++/*409257*/ OPC_MoveParent, ++/*409258*/ OPC_MoveChild6, ++/*409259*/ OPC_CheckInteger, 1, ++/*409261*/ OPC_CheckType, MVT::i32, ++/*409263*/ OPC_MoveParent, ++/*409264*/ OPC_MoveChild7, ++/*409265*/ OPC_CheckInteger, 1, ++/*409267*/ OPC_CheckType, MVT::i32, ++/*409269*/ OPC_MoveParent, ++/*409270*/ OPC_MoveChild, 8, ++/*409272*/ OPC_CheckInteger, 1, ++/*409274*/ OPC_CheckType, MVT::i32, ++/*409276*/ OPC_MoveParent, ++/*409277*/ OPC_MoveChild, 9, ++/*409279*/ OPC_CheckInteger, 1, ++/*409281*/ OPC_CheckType, MVT::i32, ++/*409283*/ OPC_MoveParent, ++/*409284*/ OPC_MoveChild, 10, ++/*409286*/ OPC_CheckInteger, 1, ++/*409288*/ OPC_CheckType, MVT::i32, ++/*409290*/ OPC_MoveParent, ++/*409291*/ OPC_MoveChild, 11, ++/*409293*/ OPC_CheckInteger, 1, ++/*409295*/ OPC_CheckType, MVT::i32, ++/*409297*/ OPC_MoveParent, ++/*409298*/ OPC_MoveChild, 12, ++/*409300*/ OPC_CheckInteger, 1, ++/*409302*/ OPC_CheckType, MVT::i32, ++/*409304*/ OPC_MoveParent, ++/*409305*/ OPC_MoveChild, 13, ++/*409307*/ OPC_CheckInteger, 1, ++/*409309*/ OPC_CheckType, MVT::i32, ++/*409311*/ OPC_MoveParent, ++/*409312*/ OPC_MoveChild, 14, ++/*409314*/ OPC_CheckInteger, 1, ++/*409316*/ OPC_CheckType, MVT::i32, ++/*409318*/ OPC_MoveParent, ++/*409319*/ OPC_MoveChild, 15, ++/*409321*/ OPC_CheckInteger, 1, ++/*409323*/ OPC_CheckType, MVT::i32, ++/*409325*/ OPC_MoveParent, ++/*409326*/ OPC_MoveChild, 16, ++/*409328*/ OPC_CheckInteger, 1, ++/*409330*/ OPC_CheckType, MVT::i32, ++/*409332*/ OPC_MoveParent, ++/*409333*/ OPC_MoveChild, 17, ++/*409335*/ OPC_CheckInteger, 1, ++/*409337*/ OPC_CheckType, MVT::i32, ++/*409339*/ OPC_MoveParent, ++/*409340*/ OPC_MoveChild, 18, ++/*409342*/ OPC_CheckInteger, 1, ++/*409344*/ OPC_CheckType, MVT::i32, ++/*409346*/ OPC_MoveParent, ++/*409347*/ OPC_MoveChild, 19, ++/*409349*/ OPC_CheckInteger, 1, ++/*409351*/ OPC_CheckType, MVT::i32, ++/*409353*/ OPC_MoveParent, ++/*409354*/ OPC_MoveChild, 20, ++/*409356*/ OPC_CheckInteger, 1, ++/*409358*/ OPC_CheckType, MVT::i32, ++/*409360*/ OPC_MoveParent, ++/*409361*/ OPC_MoveChild, 21, ++/*409363*/ OPC_CheckInteger, 1, ++/*409365*/ OPC_CheckType, MVT::i32, ++/*409367*/ OPC_MoveParent, ++/*409368*/ OPC_MoveChild, 22, ++/*409370*/ OPC_CheckInteger, 1, ++/*409372*/ OPC_CheckType, MVT::i32, ++/*409374*/ OPC_MoveParent, ++/*409375*/ OPC_MoveChild, 23, ++/*409377*/ OPC_CheckInteger, 1, ++/*409379*/ OPC_CheckType, MVT::i32, ++/*409381*/ OPC_MoveParent, ++/*409382*/ OPC_MoveChild, 24, ++/*409384*/ OPC_CheckInteger, 1, ++/*409386*/ OPC_CheckType, MVT::i32, ++/*409388*/ OPC_MoveParent, ++/*409389*/ OPC_MoveChild, 25, ++/*409391*/ OPC_CheckInteger, 1, ++/*409393*/ OPC_CheckType, MVT::i32, ++/*409395*/ OPC_MoveParent, ++/*409396*/ OPC_MoveChild, 26, ++/*409398*/ OPC_CheckInteger, 1, ++/*409400*/ OPC_CheckType, MVT::i32, ++/*409402*/ OPC_MoveParent, ++/*409403*/ OPC_MoveChild, 27, ++/*409405*/ OPC_CheckInteger, 1, ++/*409407*/ OPC_CheckType, MVT::i32, ++/*409409*/ OPC_MoveParent, ++/*409410*/ OPC_MoveChild, 28, ++/*409412*/ OPC_CheckInteger, 1, ++/*409414*/ OPC_CheckType, MVT::i32, ++/*409416*/ OPC_MoveParent, ++/*409417*/ OPC_MoveChild, 29, ++/*409419*/ OPC_CheckInteger, 1, ++/*409421*/ OPC_CheckType, MVT::i32, ++/*409423*/ OPC_MoveParent, ++/*409424*/ OPC_MoveChild, 30, ++/*409426*/ OPC_CheckInteger, 1, ++/*409428*/ OPC_CheckType, MVT::i32, ++/*409430*/ OPC_MoveParent, ++/*409431*/ OPC_MoveChild, 31, ++/*409433*/ OPC_CheckInteger, 1, ++/*409435*/ OPC_CheckType, MVT::i32, ++/*409437*/ OPC_MoveParent, ++/*409438*/ OPC_CheckType, MVT::v32i8, ++/*409440*/ OPC_MoveParent, ++/*409441*/ OPC_CheckType, MVT::v32i8, ++/*409443*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*409445*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 341 ++ // Dst: (XVAVG_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*409453*/ /*Scope*/ 62|128,3/*446*/, /*->409901*/ ++/*409455*/ OPC_CheckChild0Same, 1, ++/*409457*/ OPC_CheckChild1Same, 0, ++/*409459*/ OPC_MoveParent, ++/*409460*/ OPC_MoveChild1, ++/*409461*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*409464*/ OPC_CheckChild0Integer, 7, ++/*409466*/ OPC_CheckChild0Type, MVT::i32, ++/*409468*/ OPC_CheckChild1Integer, 7, ++/*409470*/ OPC_CheckChild1Type, MVT::i32, ++/*409472*/ OPC_CheckChild2Integer, 7, ++/*409474*/ OPC_CheckChild2Type, MVT::i32, ++/*409476*/ OPC_CheckChild3Integer, 7, ++/*409478*/ OPC_CheckChild3Type, MVT::i32, ++/*409480*/ OPC_CheckChild4Integer, 7, ++/*409482*/ OPC_CheckChild4Type, MVT::i32, ++/*409484*/ OPC_MoveChild5, ++/*409485*/ OPC_CheckInteger, 7, ++/*409487*/ OPC_CheckType, MVT::i32, ++/*409489*/ OPC_MoveParent, ++/*409490*/ OPC_MoveChild6, ++/*409491*/ OPC_CheckInteger, 7, ++/*409493*/ OPC_CheckType, MVT::i32, ++/*409495*/ OPC_MoveParent, ++/*409496*/ OPC_MoveChild7, ++/*409497*/ OPC_CheckInteger, 7, ++/*409499*/ OPC_CheckType, MVT::i32, ++/*409501*/ OPC_MoveParent, ++/*409502*/ OPC_MoveChild, 8, ++/*409504*/ OPC_CheckInteger, 7, ++/*409506*/ OPC_CheckType, MVT::i32, ++/*409508*/ OPC_MoveParent, ++/*409509*/ OPC_MoveChild, 9, ++/*409511*/ OPC_CheckInteger, 7, ++/*409513*/ OPC_CheckType, MVT::i32, ++/*409515*/ OPC_MoveParent, ++/*409516*/ OPC_MoveChild, 10, ++/*409518*/ OPC_CheckInteger, 7, ++/*409520*/ OPC_CheckType, MVT::i32, ++/*409522*/ OPC_MoveParent, ++/*409523*/ OPC_MoveChild, 11, ++/*409525*/ OPC_CheckInteger, 7, ++/*409527*/ OPC_CheckType, MVT::i32, ++/*409529*/ OPC_MoveParent, ++/*409530*/ OPC_MoveChild, 12, ++/*409532*/ OPC_CheckInteger, 7, ++/*409534*/ OPC_CheckType, MVT::i32, ++/*409536*/ OPC_MoveParent, ++/*409537*/ OPC_MoveChild, 13, ++/*409539*/ OPC_CheckInteger, 7, ++/*409541*/ OPC_CheckType, MVT::i32, ++/*409543*/ OPC_MoveParent, ++/*409544*/ OPC_MoveChild, 14, ++/*409546*/ OPC_CheckInteger, 7, ++/*409548*/ OPC_CheckType, MVT::i32, ++/*409550*/ OPC_MoveParent, ++/*409551*/ OPC_MoveChild, 15, ++/*409553*/ OPC_CheckInteger, 7, ++/*409555*/ OPC_CheckType, MVT::i32, ++/*409557*/ OPC_MoveParent, ++/*409558*/ OPC_MoveChild, 16, ++/*409560*/ OPC_CheckInteger, 7, ++/*409562*/ OPC_CheckType, MVT::i32, ++/*409564*/ OPC_MoveParent, ++/*409565*/ OPC_MoveChild, 17, ++/*409567*/ OPC_CheckInteger, 7, ++/*409569*/ OPC_CheckType, MVT::i32, ++/*409571*/ OPC_MoveParent, ++/*409572*/ OPC_MoveChild, 18, ++/*409574*/ OPC_CheckInteger, 7, ++/*409576*/ OPC_CheckType, MVT::i32, ++/*409578*/ OPC_MoveParent, ++/*409579*/ OPC_MoveChild, 19, ++/*409581*/ OPC_CheckInteger, 7, ++/*409583*/ OPC_CheckType, MVT::i32, ++/*409585*/ OPC_MoveParent, ++/*409586*/ OPC_MoveChild, 20, ++/*409588*/ OPC_CheckInteger, 7, ++/*409590*/ OPC_CheckType, MVT::i32, ++/*409592*/ OPC_MoveParent, ++/*409593*/ OPC_MoveChild, 21, ++/*409595*/ OPC_CheckInteger, 7, ++/*409597*/ OPC_CheckType, MVT::i32, ++/*409599*/ OPC_MoveParent, ++/*409600*/ OPC_MoveChild, 22, ++/*409602*/ OPC_CheckInteger, 7, ++/*409604*/ OPC_CheckType, MVT::i32, ++/*409606*/ OPC_MoveParent, ++/*409607*/ OPC_MoveChild, 23, ++/*409609*/ OPC_CheckInteger, 7, ++/*409611*/ OPC_CheckType, MVT::i32, ++/*409613*/ OPC_MoveParent, ++/*409614*/ OPC_MoveChild, 24, ++/*409616*/ OPC_CheckInteger, 7, ++/*409618*/ OPC_CheckType, MVT::i32, ++/*409620*/ OPC_MoveParent, ++/*409621*/ OPC_MoveChild, 25, ++/*409623*/ OPC_CheckInteger, 7, ++/*409625*/ OPC_CheckType, MVT::i32, ++/*409627*/ OPC_MoveParent, ++/*409628*/ OPC_MoveChild, 26, ++/*409630*/ OPC_CheckInteger, 7, ++/*409632*/ OPC_CheckType, MVT::i32, ++/*409634*/ OPC_MoveParent, ++/*409635*/ OPC_MoveChild, 27, ++/*409637*/ OPC_CheckInteger, 7, ++/*409639*/ OPC_CheckType, MVT::i32, ++/*409641*/ OPC_MoveParent, ++/*409642*/ OPC_MoveChild, 28, ++/*409644*/ OPC_CheckInteger, 7, ++/*409646*/ OPC_CheckType, MVT::i32, ++/*409648*/ OPC_MoveParent, ++/*409649*/ OPC_MoveChild, 29, ++/*409651*/ OPC_CheckInteger, 7, ++/*409653*/ OPC_CheckType, MVT::i32, ++/*409655*/ OPC_MoveParent, ++/*409656*/ OPC_MoveChild, 30, ++/*409658*/ OPC_CheckInteger, 7, ++/*409660*/ OPC_CheckType, MVT::i32, ++/*409662*/ OPC_MoveParent, ++/*409663*/ OPC_MoveChild, 31, ++/*409665*/ OPC_CheckInteger, 7, ++/*409667*/ OPC_CheckType, MVT::i32, ++/*409669*/ OPC_MoveParent, ++/*409670*/ OPC_CheckType, MVT::v32i8, ++/*409672*/ OPC_MoveParent, ++/*409673*/ OPC_MoveParent, ++/*409674*/ OPC_MoveParent, ++/*409675*/ OPC_MoveParent, ++/*409676*/ OPC_MoveChild1, ++/*409677*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*409680*/ OPC_CheckChild0Integer, 1, ++/*409682*/ OPC_CheckChild0Type, MVT::i32, ++/*409684*/ OPC_CheckChild1Integer, 1, ++/*409686*/ OPC_CheckChild1Type, MVT::i32, ++/*409688*/ OPC_CheckChild2Integer, 1, ++/*409690*/ OPC_CheckChild2Type, MVT::i32, ++/*409692*/ OPC_CheckChild3Integer, 1, ++/*409694*/ OPC_CheckChild3Type, MVT::i32, ++/*409696*/ OPC_CheckChild4Integer, 1, ++/*409698*/ OPC_CheckChild4Type, MVT::i32, ++/*409700*/ OPC_MoveChild5, ++/*409701*/ OPC_CheckInteger, 1, ++/*409703*/ OPC_CheckType, MVT::i32, ++/*409705*/ OPC_MoveParent, ++/*409706*/ OPC_MoveChild6, ++/*409707*/ OPC_CheckInteger, 1, ++/*409709*/ OPC_CheckType, MVT::i32, ++/*409711*/ OPC_MoveParent, ++/*409712*/ OPC_MoveChild7, ++/*409713*/ OPC_CheckInteger, 1, ++/*409715*/ OPC_CheckType, MVT::i32, ++/*409717*/ OPC_MoveParent, ++/*409718*/ OPC_MoveChild, 8, ++/*409720*/ OPC_CheckInteger, 1, ++/*409722*/ OPC_CheckType, MVT::i32, ++/*409724*/ OPC_MoveParent, ++/*409725*/ OPC_MoveChild, 9, ++/*409727*/ OPC_CheckInteger, 1, ++/*409729*/ OPC_CheckType, MVT::i32, ++/*409731*/ OPC_MoveParent, ++/*409732*/ OPC_MoveChild, 10, ++/*409734*/ OPC_CheckInteger, 1, ++/*409736*/ OPC_CheckType, MVT::i32, ++/*409738*/ OPC_MoveParent, ++/*409739*/ OPC_MoveChild, 11, ++/*409741*/ OPC_CheckInteger, 1, ++/*409743*/ OPC_CheckType, MVT::i32, ++/*409745*/ OPC_MoveParent, ++/*409746*/ OPC_MoveChild, 12, ++/*409748*/ OPC_CheckInteger, 1, ++/*409750*/ OPC_CheckType, MVT::i32, ++/*409752*/ OPC_MoveParent, ++/*409753*/ OPC_MoveChild, 13, ++/*409755*/ OPC_CheckInteger, 1, ++/*409757*/ OPC_CheckType, MVT::i32, ++/*409759*/ OPC_MoveParent, ++/*409760*/ OPC_MoveChild, 14, ++/*409762*/ OPC_CheckInteger, 1, ++/*409764*/ OPC_CheckType, MVT::i32, ++/*409766*/ OPC_MoveParent, ++/*409767*/ OPC_MoveChild, 15, ++/*409769*/ OPC_CheckInteger, 1, ++/*409771*/ OPC_CheckType, MVT::i32, ++/*409773*/ OPC_MoveParent, ++/*409774*/ OPC_MoveChild, 16, ++/*409776*/ OPC_CheckInteger, 1, ++/*409778*/ OPC_CheckType, MVT::i32, ++/*409780*/ OPC_MoveParent, ++/*409781*/ OPC_MoveChild, 17, ++/*409783*/ OPC_CheckInteger, 1, ++/*409785*/ OPC_CheckType, MVT::i32, ++/*409787*/ OPC_MoveParent, ++/*409788*/ OPC_MoveChild, 18, ++/*409790*/ OPC_CheckInteger, 1, ++/*409792*/ OPC_CheckType, MVT::i32, ++/*409794*/ OPC_MoveParent, ++/*409795*/ OPC_MoveChild, 19, ++/*409797*/ OPC_CheckInteger, 1, ++/*409799*/ OPC_CheckType, MVT::i32, ++/*409801*/ OPC_MoveParent, ++/*409802*/ OPC_MoveChild, 20, ++/*409804*/ OPC_CheckInteger, 1, ++/*409806*/ OPC_CheckType, MVT::i32, ++/*409808*/ OPC_MoveParent, ++/*409809*/ OPC_MoveChild, 21, ++/*409811*/ OPC_CheckInteger, 1, ++/*409813*/ OPC_CheckType, MVT::i32, ++/*409815*/ OPC_MoveParent, ++/*409816*/ OPC_MoveChild, 22, ++/*409818*/ OPC_CheckInteger, 1, ++/*409820*/ OPC_CheckType, MVT::i32, ++/*409822*/ OPC_MoveParent, ++/*409823*/ OPC_MoveChild, 23, ++/*409825*/ OPC_CheckInteger, 1, ++/*409827*/ OPC_CheckType, MVT::i32, ++/*409829*/ OPC_MoveParent, ++/*409830*/ OPC_MoveChild, 24, ++/*409832*/ OPC_CheckInteger, 1, ++/*409834*/ OPC_CheckType, MVT::i32, ++/*409836*/ OPC_MoveParent, ++/*409837*/ OPC_MoveChild, 25, ++/*409839*/ OPC_CheckInteger, 1, ++/*409841*/ OPC_CheckType, MVT::i32, ++/*409843*/ OPC_MoveParent, ++/*409844*/ OPC_MoveChild, 26, ++/*409846*/ OPC_CheckInteger, 1, ++/*409848*/ OPC_CheckType, MVT::i32, ++/*409850*/ OPC_MoveParent, ++/*409851*/ OPC_MoveChild, 27, ++/*409853*/ OPC_CheckInteger, 1, ++/*409855*/ OPC_CheckType, MVT::i32, ++/*409857*/ OPC_MoveParent, ++/*409858*/ OPC_MoveChild, 28, ++/*409860*/ OPC_CheckInteger, 1, ++/*409862*/ OPC_CheckType, MVT::i32, ++/*409864*/ OPC_MoveParent, ++/*409865*/ OPC_MoveChild, 29, ++/*409867*/ OPC_CheckInteger, 1, ++/*409869*/ OPC_CheckType, MVT::i32, ++/*409871*/ OPC_MoveParent, ++/*409872*/ OPC_MoveChild, 30, ++/*409874*/ OPC_CheckInteger, 1, ++/*409876*/ OPC_CheckType, MVT::i32, ++/*409878*/ OPC_MoveParent, ++/*409879*/ OPC_MoveChild, 31, ++/*409881*/ OPC_CheckInteger, 1, ++/*409883*/ OPC_CheckType, MVT::i32, ++/*409885*/ OPC_MoveParent, ++/*409886*/ OPC_CheckType, MVT::v32i8, ++/*409888*/ OPC_MoveParent, ++/*409889*/ OPC_CheckType, MVT::v32i8, ++/*409891*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*409893*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })))), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 341 ++ // Dst: (XVAVG_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*409901*/ 0, /*End of Scope*/ ++/*409902*/ /*Scope*/ 12|128,7/*908*/, /*->410812*/ ++/*409904*/ OPC_MoveChild0, ++/*409905*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*409908*/ OPC_MoveChild0, ++/*409909*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*409912*/ OPC_Scope, 63|128,3/*447*/, /*->410362*/ // 2 children in Scope ++/*409915*/ OPC_CheckChild0Same, 0, ++/*409917*/ OPC_RecordChild1, // #1 = $b ++/*409918*/ OPC_MoveParent, ++/*409919*/ OPC_MoveChild1, ++/*409920*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*409923*/ OPC_CheckChild0Integer, 7, ++/*409925*/ OPC_CheckChild0Type, MVT::i32, ++/*409927*/ OPC_CheckChild1Integer, 7, ++/*409929*/ OPC_CheckChild1Type, MVT::i32, ++/*409931*/ OPC_CheckChild2Integer, 7, ++/*409933*/ OPC_CheckChild2Type, MVT::i32, ++/*409935*/ OPC_CheckChild3Integer, 7, ++/*409937*/ OPC_CheckChild3Type, MVT::i32, ++/*409939*/ OPC_CheckChild4Integer, 7, ++/*409941*/ OPC_CheckChild4Type, MVT::i32, ++/*409943*/ OPC_MoveChild5, ++/*409944*/ OPC_CheckInteger, 7, ++/*409946*/ OPC_CheckType, MVT::i32, ++/*409948*/ OPC_MoveParent, ++/*409949*/ OPC_MoveChild6, ++/*409950*/ OPC_CheckInteger, 7, ++/*409952*/ OPC_CheckType, MVT::i32, ++/*409954*/ OPC_MoveParent, ++/*409955*/ OPC_MoveChild7, ++/*409956*/ OPC_CheckInteger, 7, ++/*409958*/ OPC_CheckType, MVT::i32, ++/*409960*/ OPC_MoveParent, ++/*409961*/ OPC_MoveChild, 8, ++/*409963*/ OPC_CheckInteger, 7, ++/*409965*/ OPC_CheckType, MVT::i32, ++/*409967*/ OPC_MoveParent, ++/*409968*/ OPC_MoveChild, 9, ++/*409970*/ OPC_CheckInteger, 7, ++/*409972*/ OPC_CheckType, MVT::i32, ++/*409974*/ OPC_MoveParent, ++/*409975*/ OPC_MoveChild, 10, ++/*409977*/ OPC_CheckInteger, 7, ++/*409979*/ OPC_CheckType, MVT::i32, ++/*409981*/ OPC_MoveParent, ++/*409982*/ OPC_MoveChild, 11, ++/*409984*/ OPC_CheckInteger, 7, ++/*409986*/ OPC_CheckType, MVT::i32, ++/*409988*/ OPC_MoveParent, ++/*409989*/ OPC_MoveChild, 12, ++/*409991*/ OPC_CheckInteger, 7, ++/*409993*/ OPC_CheckType, MVT::i32, ++/*409995*/ OPC_MoveParent, ++/*409996*/ OPC_MoveChild, 13, ++/*409998*/ OPC_CheckInteger, 7, ++/*410000*/ OPC_CheckType, MVT::i32, ++/*410002*/ OPC_MoveParent, ++/*410003*/ OPC_MoveChild, 14, ++/*410005*/ OPC_CheckInteger, 7, ++/*410007*/ OPC_CheckType, MVT::i32, ++/*410009*/ OPC_MoveParent, ++/*410010*/ OPC_MoveChild, 15, ++/*410012*/ OPC_CheckInteger, 7, ++/*410014*/ OPC_CheckType, MVT::i32, ++/*410016*/ OPC_MoveParent, ++/*410017*/ OPC_MoveChild, 16, ++/*410019*/ OPC_CheckInteger, 7, ++/*410021*/ OPC_CheckType, MVT::i32, ++/*410023*/ OPC_MoveParent, ++/*410024*/ OPC_MoveChild, 17, ++/*410026*/ OPC_CheckInteger, 7, ++/*410028*/ OPC_CheckType, MVT::i32, ++/*410030*/ OPC_MoveParent, ++/*410031*/ OPC_MoveChild, 18, ++/*410033*/ OPC_CheckInteger, 7, ++/*410035*/ OPC_CheckType, MVT::i32, ++/*410037*/ OPC_MoveParent, ++/*410038*/ OPC_MoveChild, 19, ++/*410040*/ OPC_CheckInteger, 7, ++/*410042*/ OPC_CheckType, MVT::i32, ++/*410044*/ OPC_MoveParent, ++/*410045*/ OPC_MoveChild, 20, ++/*410047*/ OPC_CheckInteger, 7, ++/*410049*/ OPC_CheckType, MVT::i32, ++/*410051*/ OPC_MoveParent, ++/*410052*/ OPC_MoveChild, 21, ++/*410054*/ OPC_CheckInteger, 7, ++/*410056*/ OPC_CheckType, MVT::i32, ++/*410058*/ OPC_MoveParent, ++/*410059*/ OPC_MoveChild, 22, ++/*410061*/ OPC_CheckInteger, 7, ++/*410063*/ OPC_CheckType, MVT::i32, ++/*410065*/ OPC_MoveParent, ++/*410066*/ OPC_MoveChild, 23, ++/*410068*/ OPC_CheckInteger, 7, ++/*410070*/ OPC_CheckType, MVT::i32, ++/*410072*/ OPC_MoveParent, ++/*410073*/ OPC_MoveChild, 24, ++/*410075*/ OPC_CheckInteger, 7, ++/*410077*/ OPC_CheckType, MVT::i32, ++/*410079*/ OPC_MoveParent, ++/*410080*/ OPC_MoveChild, 25, ++/*410082*/ OPC_CheckInteger, 7, ++/*410084*/ OPC_CheckType, MVT::i32, ++/*410086*/ OPC_MoveParent, ++/*410087*/ OPC_MoveChild, 26, ++/*410089*/ OPC_CheckInteger, 7, ++/*410091*/ OPC_CheckType, MVT::i32, ++/*410093*/ OPC_MoveParent, ++/*410094*/ OPC_MoveChild, 27, ++/*410096*/ OPC_CheckInteger, 7, ++/*410098*/ OPC_CheckType, MVT::i32, ++/*410100*/ OPC_MoveParent, ++/*410101*/ OPC_MoveChild, 28, ++/*410103*/ OPC_CheckInteger, 7, ++/*410105*/ OPC_CheckType, MVT::i32, ++/*410107*/ OPC_MoveParent, ++/*410108*/ OPC_MoveChild, 29, ++/*410110*/ OPC_CheckInteger, 7, ++/*410112*/ OPC_CheckType, MVT::i32, ++/*410114*/ OPC_MoveParent, ++/*410115*/ OPC_MoveChild, 30, ++/*410117*/ OPC_CheckInteger, 7, ++/*410119*/ OPC_CheckType, MVT::i32, ++/*410121*/ OPC_MoveParent, ++/*410122*/ OPC_MoveChild, 31, ++/*410124*/ OPC_CheckInteger, 7, ++/*410126*/ OPC_CheckType, MVT::i32, ++/*410128*/ OPC_MoveParent, ++/*410129*/ OPC_CheckType, MVT::v32i8, ++/*410131*/ OPC_MoveParent, ++/*410132*/ OPC_MoveParent, ++/*410133*/ OPC_CheckChild1Same, 1, ++/*410135*/ OPC_MoveParent, ++/*410136*/ OPC_MoveParent, ++/*410137*/ OPC_MoveChild1, ++/*410138*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*410141*/ OPC_CheckChild0Integer, 1, ++/*410143*/ OPC_CheckChild0Type, MVT::i32, ++/*410145*/ OPC_CheckChild1Integer, 1, ++/*410147*/ OPC_CheckChild1Type, MVT::i32, ++/*410149*/ OPC_CheckChild2Integer, 1, ++/*410151*/ OPC_CheckChild2Type, MVT::i32, ++/*410153*/ OPC_CheckChild3Integer, 1, ++/*410155*/ OPC_CheckChild3Type, MVT::i32, ++/*410157*/ OPC_CheckChild4Integer, 1, ++/*410159*/ OPC_CheckChild4Type, MVT::i32, ++/*410161*/ OPC_MoveChild5, ++/*410162*/ OPC_CheckInteger, 1, ++/*410164*/ OPC_CheckType, MVT::i32, ++/*410166*/ OPC_MoveParent, ++/*410167*/ OPC_MoveChild6, ++/*410168*/ OPC_CheckInteger, 1, ++/*410170*/ OPC_CheckType, MVT::i32, ++/*410172*/ OPC_MoveParent, ++/*410173*/ OPC_MoveChild7, ++/*410174*/ OPC_CheckInteger, 1, ++/*410176*/ OPC_CheckType, MVT::i32, ++/*410178*/ OPC_MoveParent, ++/*410179*/ OPC_MoveChild, 8, ++/*410181*/ OPC_CheckInteger, 1, ++/*410183*/ OPC_CheckType, MVT::i32, ++/*410185*/ OPC_MoveParent, ++/*410186*/ OPC_MoveChild, 9, ++/*410188*/ OPC_CheckInteger, 1, ++/*410190*/ OPC_CheckType, MVT::i32, ++/*410192*/ OPC_MoveParent, ++/*410193*/ OPC_MoveChild, 10, ++/*410195*/ OPC_CheckInteger, 1, ++/*410197*/ OPC_CheckType, MVT::i32, ++/*410199*/ OPC_MoveParent, ++/*410200*/ OPC_MoveChild, 11, ++/*410202*/ OPC_CheckInteger, 1, ++/*410204*/ OPC_CheckType, MVT::i32, ++/*410206*/ OPC_MoveParent, ++/*410207*/ OPC_MoveChild, 12, ++/*410209*/ OPC_CheckInteger, 1, ++/*410211*/ OPC_CheckType, MVT::i32, ++/*410213*/ OPC_MoveParent, ++/*410214*/ OPC_MoveChild, 13, ++/*410216*/ OPC_CheckInteger, 1, ++/*410218*/ OPC_CheckType, MVT::i32, ++/*410220*/ OPC_MoveParent, ++/*410221*/ OPC_MoveChild, 14, ++/*410223*/ OPC_CheckInteger, 1, ++/*410225*/ OPC_CheckType, MVT::i32, ++/*410227*/ OPC_MoveParent, ++/*410228*/ OPC_MoveChild, 15, ++/*410230*/ OPC_CheckInteger, 1, ++/*410232*/ OPC_CheckType, MVT::i32, ++/*410234*/ OPC_MoveParent, ++/*410235*/ OPC_MoveChild, 16, ++/*410237*/ OPC_CheckInteger, 1, ++/*410239*/ OPC_CheckType, MVT::i32, ++/*410241*/ OPC_MoveParent, ++/*410242*/ OPC_MoveChild, 17, ++/*410244*/ OPC_CheckInteger, 1, ++/*410246*/ OPC_CheckType, MVT::i32, ++/*410248*/ OPC_MoveParent, ++/*410249*/ OPC_MoveChild, 18, ++/*410251*/ OPC_CheckInteger, 1, ++/*410253*/ OPC_CheckType, MVT::i32, ++/*410255*/ OPC_MoveParent, ++/*410256*/ OPC_MoveChild, 19, ++/*410258*/ OPC_CheckInteger, 1, ++/*410260*/ OPC_CheckType, MVT::i32, ++/*410262*/ OPC_MoveParent, ++/*410263*/ OPC_MoveChild, 20, ++/*410265*/ OPC_CheckInteger, 1, ++/*410267*/ OPC_CheckType, MVT::i32, ++/*410269*/ OPC_MoveParent, ++/*410270*/ OPC_MoveChild, 21, ++/*410272*/ OPC_CheckInteger, 1, ++/*410274*/ OPC_CheckType, MVT::i32, ++/*410276*/ OPC_MoveParent, ++/*410277*/ OPC_MoveChild, 22, ++/*410279*/ OPC_CheckInteger, 1, ++/*410281*/ OPC_CheckType, MVT::i32, ++/*410283*/ OPC_MoveParent, ++/*410284*/ OPC_MoveChild, 23, ++/*410286*/ OPC_CheckInteger, 1, ++/*410288*/ OPC_CheckType, MVT::i32, ++/*410290*/ OPC_MoveParent, ++/*410291*/ OPC_MoveChild, 24, ++/*410293*/ OPC_CheckInteger, 1, ++/*410295*/ OPC_CheckType, MVT::i32, ++/*410297*/ OPC_MoveParent, ++/*410298*/ OPC_MoveChild, 25, ++/*410300*/ OPC_CheckInteger, 1, ++/*410302*/ OPC_CheckType, MVT::i32, ++/*410304*/ OPC_MoveParent, ++/*410305*/ OPC_MoveChild, 26, ++/*410307*/ OPC_CheckInteger, 1, ++/*410309*/ OPC_CheckType, MVT::i32, ++/*410311*/ OPC_MoveParent, ++/*410312*/ OPC_MoveChild, 27, ++/*410314*/ OPC_CheckInteger, 1, ++/*410316*/ OPC_CheckType, MVT::i32, ++/*410318*/ OPC_MoveParent, ++/*410319*/ OPC_MoveChild, 28, ++/*410321*/ OPC_CheckInteger, 1, ++/*410323*/ OPC_CheckType, MVT::i32, ++/*410325*/ OPC_MoveParent, ++/*410326*/ OPC_MoveChild, 29, ++/*410328*/ OPC_CheckInteger, 1, ++/*410330*/ OPC_CheckType, MVT::i32, ++/*410332*/ OPC_MoveParent, ++/*410333*/ OPC_MoveChild, 30, ++/*410335*/ OPC_CheckInteger, 1, ++/*410337*/ OPC_CheckType, MVT::i32, ++/*410339*/ OPC_MoveParent, ++/*410340*/ OPC_MoveChild, 31, ++/*410342*/ OPC_CheckInteger, 1, ++/*410344*/ OPC_CheckType, MVT::i32, ++/*410346*/ OPC_MoveParent, ++/*410347*/ OPC_CheckType, MVT::v32i8, ++/*410349*/ OPC_MoveParent, ++/*410350*/ OPC_CheckType, MVT::v32i8, ++/*410352*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*410354*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 341 ++ // Dst: (XVAVG_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*410362*/ /*Scope*/ 63|128,3/*447*/, /*->410811*/ ++/*410364*/ OPC_RecordChild0, // #1 = $b ++/*410365*/ OPC_CheckChild1Same, 0, ++/*410367*/ OPC_MoveParent, ++/*410368*/ OPC_MoveChild1, ++/*410369*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*410372*/ OPC_CheckChild0Integer, 7, ++/*410374*/ OPC_CheckChild0Type, MVT::i32, ++/*410376*/ OPC_CheckChild1Integer, 7, ++/*410378*/ OPC_CheckChild1Type, MVT::i32, ++/*410380*/ OPC_CheckChild2Integer, 7, ++/*410382*/ OPC_CheckChild2Type, MVT::i32, ++/*410384*/ OPC_CheckChild3Integer, 7, ++/*410386*/ OPC_CheckChild3Type, MVT::i32, ++/*410388*/ OPC_CheckChild4Integer, 7, ++/*410390*/ OPC_CheckChild4Type, MVT::i32, ++/*410392*/ OPC_MoveChild5, ++/*410393*/ OPC_CheckInteger, 7, ++/*410395*/ OPC_CheckType, MVT::i32, ++/*410397*/ OPC_MoveParent, ++/*410398*/ OPC_MoveChild6, ++/*410399*/ OPC_CheckInteger, 7, ++/*410401*/ OPC_CheckType, MVT::i32, ++/*410403*/ OPC_MoveParent, ++/*410404*/ OPC_MoveChild7, ++/*410405*/ OPC_CheckInteger, 7, ++/*410407*/ OPC_CheckType, MVT::i32, ++/*410409*/ OPC_MoveParent, ++/*410410*/ OPC_MoveChild, 8, ++/*410412*/ OPC_CheckInteger, 7, ++/*410414*/ OPC_CheckType, MVT::i32, ++/*410416*/ OPC_MoveParent, ++/*410417*/ OPC_MoveChild, 9, ++/*410419*/ OPC_CheckInteger, 7, ++/*410421*/ OPC_CheckType, MVT::i32, ++/*410423*/ OPC_MoveParent, ++/*410424*/ OPC_MoveChild, 10, ++/*410426*/ OPC_CheckInteger, 7, ++/*410428*/ OPC_CheckType, MVT::i32, ++/*410430*/ OPC_MoveParent, ++/*410431*/ OPC_MoveChild, 11, ++/*410433*/ OPC_CheckInteger, 7, ++/*410435*/ OPC_CheckType, MVT::i32, ++/*410437*/ OPC_MoveParent, ++/*410438*/ OPC_MoveChild, 12, ++/*410440*/ OPC_CheckInteger, 7, ++/*410442*/ OPC_CheckType, MVT::i32, ++/*410444*/ OPC_MoveParent, ++/*410445*/ OPC_MoveChild, 13, ++/*410447*/ OPC_CheckInteger, 7, ++/*410449*/ OPC_CheckType, MVT::i32, ++/*410451*/ OPC_MoveParent, ++/*410452*/ OPC_MoveChild, 14, ++/*410454*/ OPC_CheckInteger, 7, ++/*410456*/ OPC_CheckType, MVT::i32, ++/*410458*/ OPC_MoveParent, ++/*410459*/ OPC_MoveChild, 15, ++/*410461*/ OPC_CheckInteger, 7, ++/*410463*/ OPC_CheckType, MVT::i32, ++/*410465*/ OPC_MoveParent, ++/*410466*/ OPC_MoveChild, 16, ++/*410468*/ OPC_CheckInteger, 7, ++/*410470*/ OPC_CheckType, MVT::i32, ++/*410472*/ OPC_MoveParent, ++/*410473*/ OPC_MoveChild, 17, ++/*410475*/ OPC_CheckInteger, 7, ++/*410477*/ OPC_CheckType, MVT::i32, ++/*410479*/ OPC_MoveParent, ++/*410480*/ OPC_MoveChild, 18, ++/*410482*/ OPC_CheckInteger, 7, ++/*410484*/ OPC_CheckType, MVT::i32, ++/*410486*/ OPC_MoveParent, ++/*410487*/ OPC_MoveChild, 19, ++/*410489*/ OPC_CheckInteger, 7, ++/*410491*/ OPC_CheckType, MVT::i32, ++/*410493*/ OPC_MoveParent, ++/*410494*/ OPC_MoveChild, 20, ++/*410496*/ OPC_CheckInteger, 7, ++/*410498*/ OPC_CheckType, MVT::i32, ++/*410500*/ OPC_MoveParent, ++/*410501*/ OPC_MoveChild, 21, ++/*410503*/ OPC_CheckInteger, 7, ++/*410505*/ OPC_CheckType, MVT::i32, ++/*410507*/ OPC_MoveParent, ++/*410508*/ OPC_MoveChild, 22, ++/*410510*/ OPC_CheckInteger, 7, ++/*410512*/ OPC_CheckType, MVT::i32, ++/*410514*/ OPC_MoveParent, ++/*410515*/ OPC_MoveChild, 23, ++/*410517*/ OPC_CheckInteger, 7, ++/*410519*/ OPC_CheckType, MVT::i32, ++/*410521*/ OPC_MoveParent, ++/*410522*/ OPC_MoveChild, 24, ++/*410524*/ OPC_CheckInteger, 7, ++/*410526*/ OPC_CheckType, MVT::i32, ++/*410528*/ OPC_MoveParent, ++/*410529*/ OPC_MoveChild, 25, ++/*410531*/ OPC_CheckInteger, 7, ++/*410533*/ OPC_CheckType, MVT::i32, ++/*410535*/ OPC_MoveParent, ++/*410536*/ OPC_MoveChild, 26, ++/*410538*/ OPC_CheckInteger, 7, ++/*410540*/ OPC_CheckType, MVT::i32, ++/*410542*/ OPC_MoveParent, ++/*410543*/ OPC_MoveChild, 27, ++/*410545*/ OPC_CheckInteger, 7, ++/*410547*/ OPC_CheckType, MVT::i32, ++/*410549*/ OPC_MoveParent, ++/*410550*/ OPC_MoveChild, 28, ++/*410552*/ OPC_CheckInteger, 7, ++/*410554*/ OPC_CheckType, MVT::i32, ++/*410556*/ OPC_MoveParent, ++/*410557*/ OPC_MoveChild, 29, ++/*410559*/ OPC_CheckInteger, 7, ++/*410561*/ OPC_CheckType, MVT::i32, ++/*410563*/ OPC_MoveParent, ++/*410564*/ OPC_MoveChild, 30, ++/*410566*/ OPC_CheckInteger, 7, ++/*410568*/ OPC_CheckType, MVT::i32, ++/*410570*/ OPC_MoveParent, ++/*410571*/ OPC_MoveChild, 31, ++/*410573*/ OPC_CheckInteger, 7, ++/*410575*/ OPC_CheckType, MVT::i32, ++/*410577*/ OPC_MoveParent, ++/*410578*/ OPC_CheckType, MVT::v32i8, ++/*410580*/ OPC_MoveParent, ++/*410581*/ OPC_MoveParent, ++/*410582*/ OPC_CheckChild1Same, 1, ++/*410584*/ OPC_MoveParent, ++/*410585*/ OPC_MoveParent, ++/*410586*/ OPC_MoveChild1, ++/*410587*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*410590*/ OPC_CheckChild0Integer, 1, ++/*410592*/ OPC_CheckChild0Type, MVT::i32, ++/*410594*/ OPC_CheckChild1Integer, 1, ++/*410596*/ OPC_CheckChild1Type, MVT::i32, ++/*410598*/ OPC_CheckChild2Integer, 1, ++/*410600*/ OPC_CheckChild2Type, MVT::i32, ++/*410602*/ OPC_CheckChild3Integer, 1, ++/*410604*/ OPC_CheckChild3Type, MVT::i32, ++/*410606*/ OPC_CheckChild4Integer, 1, ++/*410608*/ OPC_CheckChild4Type, MVT::i32, ++/*410610*/ OPC_MoveChild5, ++/*410611*/ OPC_CheckInteger, 1, ++/*410613*/ OPC_CheckType, MVT::i32, ++/*410615*/ OPC_MoveParent, ++/*410616*/ OPC_MoveChild6, ++/*410617*/ OPC_CheckInteger, 1, ++/*410619*/ OPC_CheckType, MVT::i32, ++/*410621*/ OPC_MoveParent, ++/*410622*/ OPC_MoveChild7, ++/*410623*/ OPC_CheckInteger, 1, ++/*410625*/ OPC_CheckType, MVT::i32, ++/*410627*/ OPC_MoveParent, ++/*410628*/ OPC_MoveChild, 8, ++/*410630*/ OPC_CheckInteger, 1, ++/*410632*/ OPC_CheckType, MVT::i32, ++/*410634*/ OPC_MoveParent, ++/*410635*/ OPC_MoveChild, 9, ++/*410637*/ OPC_CheckInteger, 1, ++/*410639*/ OPC_CheckType, MVT::i32, ++/*410641*/ OPC_MoveParent, ++/*410642*/ OPC_MoveChild, 10, ++/*410644*/ OPC_CheckInteger, 1, ++/*410646*/ OPC_CheckType, MVT::i32, ++/*410648*/ OPC_MoveParent, ++/*410649*/ OPC_MoveChild, 11, ++/*410651*/ OPC_CheckInteger, 1, ++/*410653*/ OPC_CheckType, MVT::i32, ++/*410655*/ OPC_MoveParent, ++/*410656*/ OPC_MoveChild, 12, ++/*410658*/ OPC_CheckInteger, 1, ++/*410660*/ OPC_CheckType, MVT::i32, ++/*410662*/ OPC_MoveParent, ++/*410663*/ OPC_MoveChild, 13, ++/*410665*/ OPC_CheckInteger, 1, ++/*410667*/ OPC_CheckType, MVT::i32, ++/*410669*/ OPC_MoveParent, ++/*410670*/ OPC_MoveChild, 14, ++/*410672*/ OPC_CheckInteger, 1, ++/*410674*/ OPC_CheckType, MVT::i32, ++/*410676*/ OPC_MoveParent, ++/*410677*/ OPC_MoveChild, 15, ++/*410679*/ OPC_CheckInteger, 1, ++/*410681*/ OPC_CheckType, MVT::i32, ++/*410683*/ OPC_MoveParent, ++/*410684*/ OPC_MoveChild, 16, ++/*410686*/ OPC_CheckInteger, 1, ++/*410688*/ OPC_CheckType, MVT::i32, ++/*410690*/ OPC_MoveParent, ++/*410691*/ OPC_MoveChild, 17, ++/*410693*/ OPC_CheckInteger, 1, ++/*410695*/ OPC_CheckType, MVT::i32, ++/*410697*/ OPC_MoveParent, ++/*410698*/ OPC_MoveChild, 18, ++/*410700*/ OPC_CheckInteger, 1, ++/*410702*/ OPC_CheckType, MVT::i32, ++/*410704*/ OPC_MoveParent, ++/*410705*/ OPC_MoveChild, 19, ++/*410707*/ OPC_CheckInteger, 1, ++/*410709*/ OPC_CheckType, MVT::i32, ++/*410711*/ OPC_MoveParent, ++/*410712*/ OPC_MoveChild, 20, ++/*410714*/ OPC_CheckInteger, 1, ++/*410716*/ OPC_CheckType, MVT::i32, ++/*410718*/ OPC_MoveParent, ++/*410719*/ OPC_MoveChild, 21, ++/*410721*/ OPC_CheckInteger, 1, ++/*410723*/ OPC_CheckType, MVT::i32, ++/*410725*/ OPC_MoveParent, ++/*410726*/ OPC_MoveChild, 22, ++/*410728*/ OPC_CheckInteger, 1, ++/*410730*/ OPC_CheckType, MVT::i32, ++/*410732*/ OPC_MoveParent, ++/*410733*/ OPC_MoveChild, 23, ++/*410735*/ OPC_CheckInteger, 1, ++/*410737*/ OPC_CheckType, MVT::i32, ++/*410739*/ OPC_MoveParent, ++/*410740*/ OPC_MoveChild, 24, ++/*410742*/ OPC_CheckInteger, 1, ++/*410744*/ OPC_CheckType, MVT::i32, ++/*410746*/ OPC_MoveParent, ++/*410747*/ OPC_MoveChild, 25, ++/*410749*/ OPC_CheckInteger, 1, ++/*410751*/ OPC_CheckType, MVT::i32, ++/*410753*/ OPC_MoveParent, ++/*410754*/ OPC_MoveChild, 26, ++/*410756*/ OPC_CheckInteger, 1, ++/*410758*/ OPC_CheckType, MVT::i32, ++/*410760*/ OPC_MoveParent, ++/*410761*/ OPC_MoveChild, 27, ++/*410763*/ OPC_CheckInteger, 1, ++/*410765*/ OPC_CheckType, MVT::i32, ++/*410767*/ OPC_MoveParent, ++/*410768*/ OPC_MoveChild, 28, ++/*410770*/ OPC_CheckInteger, 1, ++/*410772*/ OPC_CheckType, MVT::i32, ++/*410774*/ OPC_MoveParent, ++/*410775*/ OPC_MoveChild, 29, ++/*410777*/ OPC_CheckInteger, 1, ++/*410779*/ OPC_CheckType, MVT::i32, ++/*410781*/ OPC_MoveParent, ++/*410782*/ OPC_MoveChild, 30, ++/*410784*/ OPC_CheckInteger, 1, ++/*410786*/ OPC_CheckType, MVT::i32, ++/*410788*/ OPC_MoveParent, ++/*410789*/ OPC_MoveChild, 31, ++/*410791*/ OPC_CheckInteger, 1, ++/*410793*/ OPC_CheckType, MVT::i32, ++/*410795*/ OPC_MoveParent, ++/*410796*/ OPC_CheckType, MVT::v32i8, ++/*410798*/ OPC_MoveParent, ++/*410799*/ OPC_CheckType, MVT::v32i8, ++/*410801*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*410803*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, (add:{ *:[v32i8] } (srl:{ *:[v32i8] } (add:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$b, LASX256B:{ *:[v32i8] }:$a), (build_vector:{ *:[v32i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), LASX256B:{ *:[v32i8] }:$b)), (build_vector:{ *:[v32i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 341 ++ // Dst: (XVAVG_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*410811*/ 0, /*End of Scope*/ ++/*410812*/ 0, /*End of Scope*/ ++/*410813*/ /*Scope*/ 17|128,124|128,4/*81425*/, /*->492241*/ ++/*410816*/ OPC_MoveChild0, ++/*410817*/ OPC_SwitchOpcode /*2 cases */, 111|128,119|128,2/*48111*/, TARGET_VAL(ISD::ADD),// ->458934 ++/*410823*/ OPC_Scope, 38|128,91/*11686*/, /*->422512*/ // 9 children in Scope ++/*410826*/ OPC_MoveChild0, ++/*410827*/ OPC_SwitchOpcode /*2 cases */, 60|128,2/*316*/, TARGET_VAL(ISD::BUILD_VECTOR),// ->411148 ++/*410832*/ OPC_CheckChild0Integer, 1, ++/*410834*/ OPC_CheckChild0Type, MVT::i32, ++/*410836*/ OPC_CheckChild1Integer, 1, ++/*410838*/ OPC_CheckChild1Type, MVT::i32, ++/*410840*/ OPC_CheckChild2Integer, 1, ++/*410842*/ OPC_CheckChild2Type, MVT::i32, ++/*410844*/ OPC_CheckChild3Integer, 1, ++/*410846*/ OPC_CheckChild3Type, MVT::i32, ++/*410848*/ OPC_CheckChild4Integer, 1, ++/*410850*/ OPC_CheckChild4Type, MVT::i32, ++/*410852*/ OPC_MoveChild5, ++/*410853*/ OPC_CheckInteger, 1, ++/*410855*/ OPC_CheckType, MVT::i32, ++/*410857*/ OPC_MoveParent, ++/*410858*/ OPC_MoveChild6, ++/*410859*/ OPC_CheckInteger, 1, ++/*410861*/ OPC_CheckType, MVT::i32, ++/*410863*/ OPC_MoveParent, ++/*410864*/ OPC_MoveChild7, ++/*410865*/ OPC_CheckInteger, 1, ++/*410867*/ OPC_CheckType, MVT::i32, ++/*410869*/ OPC_MoveParent, ++/*410870*/ OPC_MoveParent, ++/*410871*/ OPC_MoveChild1, ++/*410872*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*410875*/ OPC_RecordChild0, // #0 = $a ++/*410876*/ OPC_RecordChild1, // #1 = $b ++/*410877*/ OPC_MoveParent, ++/*410878*/ OPC_MoveParent, ++/*410879*/ OPC_MoveChild1, ++/*410880*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*410883*/ OPC_MoveChild0, ++/*410884*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*410887*/ OPC_MoveChild0, ++/*410888*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*410891*/ OPC_CheckChild0Integer, 1, ++/*410893*/ OPC_CheckChild0Type, MVT::i32, ++/*410895*/ OPC_CheckChild1Integer, 1, ++/*410897*/ OPC_CheckChild1Type, MVT::i32, ++/*410899*/ OPC_CheckChild2Integer, 1, ++/*410901*/ OPC_CheckChild2Type, MVT::i32, ++/*410903*/ OPC_CheckChild3Integer, 1, ++/*410905*/ OPC_CheckChild3Type, MVT::i32, ++/*410907*/ OPC_CheckChild4Integer, 1, ++/*410909*/ OPC_CheckChild4Type, MVT::i32, ++/*410911*/ OPC_MoveChild5, ++/*410912*/ OPC_CheckInteger, 1, ++/*410914*/ OPC_CheckType, MVT::i32, ++/*410916*/ OPC_MoveParent, ++/*410917*/ OPC_MoveChild6, ++/*410918*/ OPC_CheckInteger, 1, ++/*410920*/ OPC_CheckType, MVT::i32, ++/*410922*/ OPC_MoveParent, ++/*410923*/ OPC_MoveChild7, ++/*410924*/ OPC_CheckInteger, 1, ++/*410926*/ OPC_CheckType, MVT::i32, ++/*410928*/ OPC_MoveParent, ++/*410929*/ OPC_MoveParent, ++/*410930*/ OPC_MoveChild1, ++/*410931*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*410934*/ OPC_CheckChild0Same, 0, ++/*410936*/ OPC_CheckChild1Same, 1, ++/*410938*/ OPC_MoveParent, ++/*410939*/ OPC_MoveParent, ++/*410940*/ OPC_MoveChild1, ++/*410941*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*410944*/ OPC_Scope, 100, /*->411046*/ // 2 children in Scope ++/*410946*/ OPC_CheckChild0Integer, 15, ++/*410948*/ OPC_CheckChild0Type, MVT::i32, ++/*410950*/ OPC_CheckChild1Integer, 15, ++/*410952*/ OPC_CheckChild1Type, MVT::i32, ++/*410954*/ OPC_CheckChild2Integer, 15, ++/*410956*/ OPC_CheckChild2Type, MVT::i32, ++/*410958*/ OPC_CheckChild3Integer, 15, ++/*410960*/ OPC_CheckChild3Type, MVT::i32, ++/*410962*/ OPC_CheckChild4Integer, 15, ++/*410964*/ OPC_CheckChild4Type, MVT::i32, ++/*410966*/ OPC_MoveChild5, ++/*410967*/ OPC_CheckInteger, 15, ++/*410969*/ OPC_CheckType, MVT::i32, ++/*410971*/ OPC_MoveParent, ++/*410972*/ OPC_MoveChild6, ++/*410973*/ OPC_CheckInteger, 15, ++/*410975*/ OPC_CheckType, MVT::i32, ++/*410977*/ OPC_MoveParent, ++/*410978*/ OPC_MoveChild7, ++/*410979*/ OPC_CheckInteger, 15, ++/*410981*/ OPC_CheckType, MVT::i32, ++/*410983*/ OPC_MoveParent, ++/*410984*/ OPC_CheckType, MVT::v8i16, ++/*410986*/ OPC_MoveParent, ++/*410987*/ OPC_MoveParent, ++/*410988*/ OPC_MoveParent, ++/*410989*/ OPC_MoveChild1, ++/*410990*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*410993*/ OPC_CheckChild0Integer, 1, ++/*410995*/ OPC_CheckChild0Type, MVT::i32, ++/*410997*/ OPC_CheckChild1Integer, 1, ++/*410999*/ OPC_CheckChild1Type, MVT::i32, ++/*411001*/ OPC_CheckChild2Integer, 1, ++/*411003*/ OPC_CheckChild2Type, MVT::i32, ++/*411005*/ OPC_CheckChild3Integer, 1, ++/*411007*/ OPC_CheckChild3Type, MVT::i32, ++/*411009*/ OPC_CheckChild4Integer, 1, ++/*411011*/ OPC_CheckChild4Type, MVT::i32, ++/*411013*/ OPC_MoveChild5, ++/*411014*/ OPC_CheckInteger, 1, ++/*411016*/ OPC_CheckType, MVT::i32, ++/*411018*/ OPC_MoveParent, ++/*411019*/ OPC_MoveChild6, ++/*411020*/ OPC_CheckInteger, 1, ++/*411022*/ OPC_CheckType, MVT::i32, ++/*411024*/ OPC_MoveParent, ++/*411025*/ OPC_MoveChild7, ++/*411026*/ OPC_CheckInteger, 1, ++/*411028*/ OPC_CheckType, MVT::i32, ++/*411030*/ OPC_MoveParent, ++/*411031*/ OPC_CheckType, MVT::v8i16, ++/*411033*/ OPC_MoveParent, ++/*411034*/ OPC_CheckType, MVT::v8i16, ++/*411036*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*411038*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b)), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*411046*/ /*Scope*/ 100, /*->411147*/ ++/*411047*/ OPC_CheckChild0Integer, 31, ++/*411049*/ OPC_CheckChild0Type, MVT::i32, ++/*411051*/ OPC_CheckChild1Integer, 31, ++/*411053*/ OPC_CheckChild1Type, MVT::i32, ++/*411055*/ OPC_CheckChild2Integer, 31, ++/*411057*/ OPC_CheckChild2Type, MVT::i32, ++/*411059*/ OPC_CheckChild3Integer, 31, ++/*411061*/ OPC_CheckChild3Type, MVT::i32, ++/*411063*/ OPC_CheckChild4Integer, 31, ++/*411065*/ OPC_CheckChild4Type, MVT::i32, ++/*411067*/ OPC_MoveChild5, ++/*411068*/ OPC_CheckInteger, 31, ++/*411070*/ OPC_CheckType, MVT::i32, ++/*411072*/ OPC_MoveParent, ++/*411073*/ OPC_MoveChild6, ++/*411074*/ OPC_CheckInteger, 31, ++/*411076*/ OPC_CheckType, MVT::i32, ++/*411078*/ OPC_MoveParent, ++/*411079*/ OPC_MoveChild7, ++/*411080*/ OPC_CheckInteger, 31, ++/*411082*/ OPC_CheckType, MVT::i32, ++/*411084*/ OPC_MoveParent, ++/*411085*/ OPC_CheckType, MVT::v8i32, ++/*411087*/ OPC_MoveParent, ++/*411088*/ OPC_MoveParent, ++/*411089*/ OPC_MoveParent, ++/*411090*/ OPC_MoveChild1, ++/*411091*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*411094*/ OPC_CheckChild0Integer, 1, ++/*411096*/ OPC_CheckChild0Type, MVT::i32, ++/*411098*/ OPC_CheckChild1Integer, 1, ++/*411100*/ OPC_CheckChild1Type, MVT::i32, ++/*411102*/ OPC_CheckChild2Integer, 1, ++/*411104*/ OPC_CheckChild2Type, MVT::i32, ++/*411106*/ OPC_CheckChild3Integer, 1, ++/*411108*/ OPC_CheckChild3Type, MVT::i32, ++/*411110*/ OPC_CheckChild4Integer, 1, ++/*411112*/ OPC_CheckChild4Type, MVT::i32, ++/*411114*/ OPC_MoveChild5, ++/*411115*/ OPC_CheckInteger, 1, ++/*411117*/ OPC_CheckType, MVT::i32, ++/*411119*/ OPC_MoveParent, ++/*411120*/ OPC_MoveChild6, ++/*411121*/ OPC_CheckInteger, 1, ++/*411123*/ OPC_CheckType, MVT::i32, ++/*411125*/ OPC_MoveParent, ++/*411126*/ OPC_MoveChild7, ++/*411127*/ OPC_CheckInteger, 1, ++/*411129*/ OPC_CheckType, MVT::i32, ++/*411131*/ OPC_MoveParent, ++/*411132*/ OPC_CheckType, MVT::v8i32, ++/*411134*/ OPC_MoveParent, ++/*411135*/ OPC_CheckType, MVT::v8i32, ++/*411137*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*411139*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b)), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*411147*/ 0, /*End of Scope*/ ++/*411148*/ /*SwitchOpcode*/ 95|128,88/*11359*/, TARGET_VAL(ISD::ADD),// ->422511 ++/*411152*/ OPC_Scope, 108|128,14/*1900*/, /*->413055*/ // 4 children in Scope ++/*411155*/ OPC_MoveChild0, ++/*411156*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*411159*/ OPC_CheckChild0Integer, 1, ++/*411161*/ OPC_CheckChild0Type, MVT::i32, ++/*411163*/ OPC_CheckChild1Integer, 1, ++/*411165*/ OPC_CheckChild1Type, MVT::i32, ++/*411167*/ OPC_CheckChild2Integer, 1, ++/*411169*/ OPC_CheckChild2Type, MVT::i32, ++/*411171*/ OPC_CheckChild3Integer, 1, ++/*411173*/ OPC_CheckChild3Type, MVT::i32, ++/*411175*/ OPC_CheckChild4Integer, 1, ++/*411177*/ OPC_CheckChild4Type, MVT::i32, ++/*411179*/ OPC_MoveChild5, ++/*411180*/ OPC_CheckInteger, 1, ++/*411182*/ OPC_CheckType, MVT::i32, ++/*411184*/ OPC_MoveParent, ++/*411185*/ OPC_MoveChild6, ++/*411186*/ OPC_CheckInteger, 1, ++/*411188*/ OPC_CheckType, MVT::i32, ++/*411190*/ OPC_MoveParent, ++/*411191*/ OPC_MoveChild7, ++/*411192*/ OPC_CheckInteger, 1, ++/*411194*/ OPC_CheckType, MVT::i32, ++/*411196*/ OPC_MoveParent, ++/*411197*/ OPC_MoveParent, ++/*411198*/ OPC_RecordChild1, // #0 = $a ++/*411199*/ OPC_MoveParent, ++/*411200*/ OPC_RecordChild1, // #1 = $b ++/*411201*/ OPC_MoveParent, ++/*411202*/ OPC_MoveChild1, ++/*411203*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*411206*/ OPC_MoveChild0, ++/*411207*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*411210*/ OPC_Scope, 40|128,7/*936*/, /*->412149*/ // 4 children in Scope ++/*411213*/ OPC_MoveChild0, ++/*411214*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*411217*/ OPC_Scope, 25|128,1/*153*/, /*->411373*/ // 6 children in Scope ++/*411220*/ OPC_MoveChild0, ++/*411221*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*411224*/ OPC_CheckChild0Integer, 1, ++/*411226*/ OPC_CheckChild0Type, MVT::i32, ++/*411228*/ OPC_CheckChild1Integer, 1, ++/*411230*/ OPC_CheckChild1Type, MVT::i32, ++/*411232*/ OPC_CheckChild2Integer, 1, ++/*411234*/ OPC_CheckChild2Type, MVT::i32, ++/*411236*/ OPC_CheckChild3Integer, 1, ++/*411238*/ OPC_CheckChild3Type, MVT::i32, ++/*411240*/ OPC_CheckChild4Integer, 1, ++/*411242*/ OPC_CheckChild4Type, MVT::i32, ++/*411244*/ OPC_MoveChild5, ++/*411245*/ OPC_CheckInteger, 1, ++/*411247*/ OPC_CheckType, MVT::i32, ++/*411249*/ OPC_MoveParent, ++/*411250*/ OPC_MoveChild6, ++/*411251*/ OPC_CheckInteger, 1, ++/*411253*/ OPC_CheckType, MVT::i32, ++/*411255*/ OPC_MoveParent, ++/*411256*/ OPC_MoveChild7, ++/*411257*/ OPC_CheckInteger, 1, ++/*411259*/ OPC_CheckType, MVT::i32, ++/*411261*/ OPC_MoveParent, ++/*411262*/ OPC_MoveParent, ++/*411263*/ OPC_CheckChild1Same, 0, ++/*411265*/ OPC_MoveParent, ++/*411266*/ OPC_CheckChild1Same, 1, ++/*411268*/ OPC_MoveParent, ++/*411269*/ OPC_MoveChild1, ++/*411270*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*411273*/ OPC_CheckChild0Integer, 15, ++/*411275*/ OPC_CheckChild0Type, MVT::i32, ++/*411277*/ OPC_CheckChild1Integer, 15, ++/*411279*/ OPC_CheckChild1Type, MVT::i32, ++/*411281*/ OPC_CheckChild2Integer, 15, ++/*411283*/ OPC_CheckChild2Type, MVT::i32, ++/*411285*/ OPC_CheckChild3Integer, 15, ++/*411287*/ OPC_CheckChild3Type, MVT::i32, ++/*411289*/ OPC_CheckChild4Integer, 15, ++/*411291*/ OPC_CheckChild4Type, MVT::i32, ++/*411293*/ OPC_MoveChild5, ++/*411294*/ OPC_CheckInteger, 15, ++/*411296*/ OPC_CheckType, MVT::i32, ++/*411298*/ OPC_MoveParent, ++/*411299*/ OPC_MoveChild6, ++/*411300*/ OPC_CheckInteger, 15, ++/*411302*/ OPC_CheckType, MVT::i32, ++/*411304*/ OPC_MoveParent, ++/*411305*/ OPC_MoveChild7, ++/*411306*/ OPC_CheckInteger, 15, ++/*411308*/ OPC_CheckType, MVT::i32, ++/*411310*/ OPC_MoveParent, ++/*411311*/ OPC_CheckType, MVT::v8i16, ++/*411313*/ OPC_MoveParent, ++/*411314*/ OPC_MoveParent, ++/*411315*/ OPC_MoveParent, ++/*411316*/ OPC_MoveChild1, ++/*411317*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*411320*/ OPC_CheckChild0Integer, 1, ++/*411322*/ OPC_CheckChild0Type, MVT::i32, ++/*411324*/ OPC_CheckChild1Integer, 1, ++/*411326*/ OPC_CheckChild1Type, MVT::i32, ++/*411328*/ OPC_CheckChild2Integer, 1, ++/*411330*/ OPC_CheckChild2Type, MVT::i32, ++/*411332*/ OPC_CheckChild3Integer, 1, ++/*411334*/ OPC_CheckChild3Type, MVT::i32, ++/*411336*/ OPC_CheckChild4Integer, 1, ++/*411338*/ OPC_CheckChild4Type, MVT::i32, ++/*411340*/ OPC_MoveChild5, ++/*411341*/ OPC_CheckInteger, 1, ++/*411343*/ OPC_CheckType, MVT::i32, ++/*411345*/ OPC_MoveParent, ++/*411346*/ OPC_MoveChild6, ++/*411347*/ OPC_CheckInteger, 1, ++/*411349*/ OPC_CheckType, MVT::i32, ++/*411351*/ OPC_MoveParent, ++/*411352*/ OPC_MoveChild7, ++/*411353*/ OPC_CheckInteger, 1, ++/*411355*/ OPC_CheckType, MVT::i32, ++/*411357*/ OPC_MoveParent, ++/*411358*/ OPC_CheckType, MVT::v8i16, ++/*411360*/ OPC_MoveParent, ++/*411361*/ OPC_CheckType, MVT::v8i16, ++/*411363*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*411365*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a), LSX128H:{ *:[v8i16] }:$b), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a), LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*411373*/ /*Scope*/ 25|128,1/*153*/, /*->411528*/ ++/*411375*/ OPC_CheckChild0Same, 0, ++/*411377*/ OPC_MoveChild1, ++/*411378*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*411381*/ OPC_CheckChild0Integer, 1, ++/*411383*/ OPC_CheckChild0Type, MVT::i32, ++/*411385*/ OPC_CheckChild1Integer, 1, ++/*411387*/ OPC_CheckChild1Type, MVT::i32, ++/*411389*/ OPC_CheckChild2Integer, 1, ++/*411391*/ OPC_CheckChild2Type, MVT::i32, ++/*411393*/ OPC_CheckChild3Integer, 1, ++/*411395*/ OPC_CheckChild3Type, MVT::i32, ++/*411397*/ OPC_CheckChild4Integer, 1, ++/*411399*/ OPC_CheckChild4Type, MVT::i32, ++/*411401*/ OPC_MoveChild5, ++/*411402*/ OPC_CheckInteger, 1, ++/*411404*/ OPC_CheckType, MVT::i32, ++/*411406*/ OPC_MoveParent, ++/*411407*/ OPC_MoveChild6, ++/*411408*/ OPC_CheckInteger, 1, ++/*411410*/ OPC_CheckType, MVT::i32, ++/*411412*/ OPC_MoveParent, ++/*411413*/ OPC_MoveChild7, ++/*411414*/ OPC_CheckInteger, 1, ++/*411416*/ OPC_CheckType, MVT::i32, ++/*411418*/ OPC_MoveParent, ++/*411419*/ OPC_MoveParent, ++/*411420*/ OPC_MoveParent, ++/*411421*/ OPC_CheckChild1Same, 1, ++/*411423*/ OPC_MoveParent, ++/*411424*/ OPC_MoveChild1, ++/*411425*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*411428*/ OPC_CheckChild0Integer, 15, ++/*411430*/ OPC_CheckChild0Type, MVT::i32, ++/*411432*/ OPC_CheckChild1Integer, 15, ++/*411434*/ OPC_CheckChild1Type, MVT::i32, ++/*411436*/ OPC_CheckChild2Integer, 15, ++/*411438*/ OPC_CheckChild2Type, MVT::i32, ++/*411440*/ OPC_CheckChild3Integer, 15, ++/*411442*/ OPC_CheckChild3Type, MVT::i32, ++/*411444*/ OPC_CheckChild4Integer, 15, ++/*411446*/ OPC_CheckChild4Type, MVT::i32, ++/*411448*/ OPC_MoveChild5, ++/*411449*/ OPC_CheckInteger, 15, ++/*411451*/ OPC_CheckType, MVT::i32, ++/*411453*/ OPC_MoveParent, ++/*411454*/ OPC_MoveChild6, ++/*411455*/ OPC_CheckInteger, 15, ++/*411457*/ OPC_CheckType, MVT::i32, ++/*411459*/ OPC_MoveParent, ++/*411460*/ OPC_MoveChild7, ++/*411461*/ OPC_CheckInteger, 15, ++/*411463*/ OPC_CheckType, MVT::i32, ++/*411465*/ OPC_MoveParent, ++/*411466*/ OPC_CheckType, MVT::v8i16, ++/*411468*/ OPC_MoveParent, ++/*411469*/ OPC_MoveParent, ++/*411470*/ OPC_MoveParent, ++/*411471*/ OPC_MoveChild1, ++/*411472*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*411475*/ OPC_CheckChild0Integer, 1, ++/*411477*/ OPC_CheckChild0Type, MVT::i32, ++/*411479*/ OPC_CheckChild1Integer, 1, ++/*411481*/ OPC_CheckChild1Type, MVT::i32, ++/*411483*/ OPC_CheckChild2Integer, 1, ++/*411485*/ OPC_CheckChild2Type, MVT::i32, ++/*411487*/ OPC_CheckChild3Integer, 1, ++/*411489*/ OPC_CheckChild3Type, MVT::i32, ++/*411491*/ OPC_CheckChild4Integer, 1, ++/*411493*/ OPC_CheckChild4Type, MVT::i32, ++/*411495*/ OPC_MoveChild5, ++/*411496*/ OPC_CheckInteger, 1, ++/*411498*/ OPC_CheckType, MVT::i32, ++/*411500*/ OPC_MoveParent, ++/*411501*/ OPC_MoveChild6, ++/*411502*/ OPC_CheckInteger, 1, ++/*411504*/ OPC_CheckType, MVT::i32, ++/*411506*/ OPC_MoveParent, ++/*411507*/ OPC_MoveChild7, ++/*411508*/ OPC_CheckInteger, 1, ++/*411510*/ OPC_CheckType, MVT::i32, ++/*411512*/ OPC_MoveParent, ++/*411513*/ OPC_CheckType, MVT::v8i16, ++/*411515*/ OPC_MoveParent, ++/*411516*/ OPC_CheckType, MVT::v8i16, ++/*411518*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*411520*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a), LSX128H:{ *:[v8i16] }:$b), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*411528*/ /*Scope*/ 25|128,1/*153*/, /*->411683*/ ++/*411530*/ OPC_MoveChild0, ++/*411531*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*411534*/ OPC_CheckChild0Integer, 1, ++/*411536*/ OPC_CheckChild0Type, MVT::i32, ++/*411538*/ OPC_CheckChild1Integer, 1, ++/*411540*/ OPC_CheckChild1Type, MVT::i32, ++/*411542*/ OPC_CheckChild2Integer, 1, ++/*411544*/ OPC_CheckChild2Type, MVT::i32, ++/*411546*/ OPC_CheckChild3Integer, 1, ++/*411548*/ OPC_CheckChild3Type, MVT::i32, ++/*411550*/ OPC_CheckChild4Integer, 1, ++/*411552*/ OPC_CheckChild4Type, MVT::i32, ++/*411554*/ OPC_MoveChild5, ++/*411555*/ OPC_CheckInteger, 1, ++/*411557*/ OPC_CheckType, MVT::i32, ++/*411559*/ OPC_MoveParent, ++/*411560*/ OPC_MoveChild6, ++/*411561*/ OPC_CheckInteger, 1, ++/*411563*/ OPC_CheckType, MVT::i32, ++/*411565*/ OPC_MoveParent, ++/*411566*/ OPC_MoveChild7, ++/*411567*/ OPC_CheckInteger, 1, ++/*411569*/ OPC_CheckType, MVT::i32, ++/*411571*/ OPC_MoveParent, ++/*411572*/ OPC_MoveParent, ++/*411573*/ OPC_CheckChild1Same, 1, ++/*411575*/ OPC_MoveParent, ++/*411576*/ OPC_CheckChild1Same, 0, ++/*411578*/ OPC_MoveParent, ++/*411579*/ OPC_MoveChild1, ++/*411580*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*411583*/ OPC_CheckChild0Integer, 15, ++/*411585*/ OPC_CheckChild0Type, MVT::i32, ++/*411587*/ OPC_CheckChild1Integer, 15, ++/*411589*/ OPC_CheckChild1Type, MVT::i32, ++/*411591*/ OPC_CheckChild2Integer, 15, ++/*411593*/ OPC_CheckChild2Type, MVT::i32, ++/*411595*/ OPC_CheckChild3Integer, 15, ++/*411597*/ OPC_CheckChild3Type, MVT::i32, ++/*411599*/ OPC_CheckChild4Integer, 15, ++/*411601*/ OPC_CheckChild4Type, MVT::i32, ++/*411603*/ OPC_MoveChild5, ++/*411604*/ OPC_CheckInteger, 15, ++/*411606*/ OPC_CheckType, MVT::i32, ++/*411608*/ OPC_MoveParent, ++/*411609*/ OPC_MoveChild6, ++/*411610*/ OPC_CheckInteger, 15, ++/*411612*/ OPC_CheckType, MVT::i32, ++/*411614*/ OPC_MoveParent, ++/*411615*/ OPC_MoveChild7, ++/*411616*/ OPC_CheckInteger, 15, ++/*411618*/ OPC_CheckType, MVT::i32, ++/*411620*/ OPC_MoveParent, ++/*411621*/ OPC_CheckType, MVT::v8i16, ++/*411623*/ OPC_MoveParent, ++/*411624*/ OPC_MoveParent, ++/*411625*/ OPC_MoveParent, ++/*411626*/ OPC_MoveChild1, ++/*411627*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*411630*/ OPC_CheckChild0Integer, 1, ++/*411632*/ OPC_CheckChild0Type, MVT::i32, ++/*411634*/ OPC_CheckChild1Integer, 1, ++/*411636*/ OPC_CheckChild1Type, MVT::i32, ++/*411638*/ OPC_CheckChild2Integer, 1, ++/*411640*/ OPC_CheckChild2Type, MVT::i32, ++/*411642*/ OPC_CheckChild3Integer, 1, ++/*411644*/ OPC_CheckChild3Type, MVT::i32, ++/*411646*/ OPC_CheckChild4Integer, 1, ++/*411648*/ OPC_CheckChild4Type, MVT::i32, ++/*411650*/ OPC_MoveChild5, ++/*411651*/ OPC_CheckInteger, 1, ++/*411653*/ OPC_CheckType, MVT::i32, ++/*411655*/ OPC_MoveParent, ++/*411656*/ OPC_MoveChild6, ++/*411657*/ OPC_CheckInteger, 1, ++/*411659*/ OPC_CheckType, MVT::i32, ++/*411661*/ OPC_MoveParent, ++/*411662*/ OPC_MoveChild7, ++/*411663*/ OPC_CheckInteger, 1, ++/*411665*/ OPC_CheckType, MVT::i32, ++/*411667*/ OPC_MoveParent, ++/*411668*/ OPC_CheckType, MVT::v8i16, ++/*411670*/ OPC_MoveParent, ++/*411671*/ OPC_CheckType, MVT::v8i16, ++/*411673*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*411675*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a), LSX128H:{ *:[v8i16] }:$b), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b), LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*411683*/ /*Scope*/ 25|128,1/*153*/, /*->411838*/ ++/*411685*/ OPC_CheckChild0Same, 1, ++/*411687*/ OPC_MoveChild1, ++/*411688*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*411691*/ OPC_CheckChild0Integer, 1, ++/*411693*/ OPC_CheckChild0Type, MVT::i32, ++/*411695*/ OPC_CheckChild1Integer, 1, ++/*411697*/ OPC_CheckChild1Type, MVT::i32, ++/*411699*/ OPC_CheckChild2Integer, 1, ++/*411701*/ OPC_CheckChild2Type, MVT::i32, ++/*411703*/ OPC_CheckChild3Integer, 1, ++/*411705*/ OPC_CheckChild3Type, MVT::i32, ++/*411707*/ OPC_CheckChild4Integer, 1, ++/*411709*/ OPC_CheckChild4Type, MVT::i32, ++/*411711*/ OPC_MoveChild5, ++/*411712*/ OPC_CheckInteger, 1, ++/*411714*/ OPC_CheckType, MVT::i32, ++/*411716*/ OPC_MoveParent, ++/*411717*/ OPC_MoveChild6, ++/*411718*/ OPC_CheckInteger, 1, ++/*411720*/ OPC_CheckType, MVT::i32, ++/*411722*/ OPC_MoveParent, ++/*411723*/ OPC_MoveChild7, ++/*411724*/ OPC_CheckInteger, 1, ++/*411726*/ OPC_CheckType, MVT::i32, ++/*411728*/ OPC_MoveParent, ++/*411729*/ OPC_MoveParent, ++/*411730*/ OPC_MoveParent, ++/*411731*/ OPC_CheckChild1Same, 0, ++/*411733*/ OPC_MoveParent, ++/*411734*/ OPC_MoveChild1, ++/*411735*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*411738*/ OPC_CheckChild0Integer, 15, ++/*411740*/ OPC_CheckChild0Type, MVT::i32, ++/*411742*/ OPC_CheckChild1Integer, 15, ++/*411744*/ OPC_CheckChild1Type, MVT::i32, ++/*411746*/ OPC_CheckChild2Integer, 15, ++/*411748*/ OPC_CheckChild2Type, MVT::i32, ++/*411750*/ OPC_CheckChild3Integer, 15, ++/*411752*/ OPC_CheckChild3Type, MVT::i32, ++/*411754*/ OPC_CheckChild4Integer, 15, ++/*411756*/ OPC_CheckChild4Type, MVT::i32, ++/*411758*/ OPC_MoveChild5, ++/*411759*/ OPC_CheckInteger, 15, ++/*411761*/ OPC_CheckType, MVT::i32, ++/*411763*/ OPC_MoveParent, ++/*411764*/ OPC_MoveChild6, ++/*411765*/ OPC_CheckInteger, 15, ++/*411767*/ OPC_CheckType, MVT::i32, ++/*411769*/ OPC_MoveParent, ++/*411770*/ OPC_MoveChild7, ++/*411771*/ OPC_CheckInteger, 15, ++/*411773*/ OPC_CheckType, MVT::i32, ++/*411775*/ OPC_MoveParent, ++/*411776*/ OPC_CheckType, MVT::v8i16, ++/*411778*/ OPC_MoveParent, ++/*411779*/ OPC_MoveParent, ++/*411780*/ OPC_MoveParent, ++/*411781*/ OPC_MoveChild1, ++/*411782*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*411785*/ OPC_CheckChild0Integer, 1, ++/*411787*/ OPC_CheckChild0Type, MVT::i32, ++/*411789*/ OPC_CheckChild1Integer, 1, ++/*411791*/ OPC_CheckChild1Type, MVT::i32, ++/*411793*/ OPC_CheckChild2Integer, 1, ++/*411795*/ OPC_CheckChild2Type, MVT::i32, ++/*411797*/ OPC_CheckChild3Integer, 1, ++/*411799*/ OPC_CheckChild3Type, MVT::i32, ++/*411801*/ OPC_CheckChild4Integer, 1, ++/*411803*/ OPC_CheckChild4Type, MVT::i32, ++/*411805*/ OPC_MoveChild5, ++/*411806*/ OPC_CheckInteger, 1, ++/*411808*/ OPC_CheckType, MVT::i32, ++/*411810*/ OPC_MoveParent, ++/*411811*/ OPC_MoveChild6, ++/*411812*/ OPC_CheckInteger, 1, ++/*411814*/ OPC_CheckType, MVT::i32, ++/*411816*/ OPC_MoveParent, ++/*411817*/ OPC_MoveChild7, ++/*411818*/ OPC_CheckInteger, 1, ++/*411820*/ OPC_CheckType, MVT::i32, ++/*411822*/ OPC_MoveParent, ++/*411823*/ OPC_CheckType, MVT::v8i16, ++/*411825*/ OPC_MoveParent, ++/*411826*/ OPC_CheckType, MVT::v8i16, ++/*411828*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*411830*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a), LSX128H:{ *:[v8i16] }:$b), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*411838*/ /*Scope*/ 25|128,1/*153*/, /*->411993*/ ++/*411840*/ OPC_CheckChild0Same, 0, ++/*411842*/ OPC_CheckChild1Same, 1, ++/*411844*/ OPC_MoveParent, ++/*411845*/ OPC_MoveChild1, ++/*411846*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*411849*/ OPC_CheckChild0Integer, 1, ++/*411851*/ OPC_CheckChild0Type, MVT::i32, ++/*411853*/ OPC_CheckChild1Integer, 1, ++/*411855*/ OPC_CheckChild1Type, MVT::i32, ++/*411857*/ OPC_CheckChild2Integer, 1, ++/*411859*/ OPC_CheckChild2Type, MVT::i32, ++/*411861*/ OPC_CheckChild3Integer, 1, ++/*411863*/ OPC_CheckChild3Type, MVT::i32, ++/*411865*/ OPC_CheckChild4Integer, 1, ++/*411867*/ OPC_CheckChild4Type, MVT::i32, ++/*411869*/ OPC_MoveChild5, ++/*411870*/ OPC_CheckInteger, 1, ++/*411872*/ OPC_CheckType, MVT::i32, ++/*411874*/ OPC_MoveParent, ++/*411875*/ OPC_MoveChild6, ++/*411876*/ OPC_CheckInteger, 1, ++/*411878*/ OPC_CheckType, MVT::i32, ++/*411880*/ OPC_MoveParent, ++/*411881*/ OPC_MoveChild7, ++/*411882*/ OPC_CheckInteger, 1, ++/*411884*/ OPC_CheckType, MVT::i32, ++/*411886*/ OPC_MoveParent, ++/*411887*/ OPC_MoveParent, ++/*411888*/ OPC_MoveParent, ++/*411889*/ OPC_MoveChild1, ++/*411890*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*411893*/ OPC_CheckChild0Integer, 15, ++/*411895*/ OPC_CheckChild0Type, MVT::i32, ++/*411897*/ OPC_CheckChild1Integer, 15, ++/*411899*/ OPC_CheckChild1Type, MVT::i32, ++/*411901*/ OPC_CheckChild2Integer, 15, ++/*411903*/ OPC_CheckChild2Type, MVT::i32, ++/*411905*/ OPC_CheckChild3Integer, 15, ++/*411907*/ OPC_CheckChild3Type, MVT::i32, ++/*411909*/ OPC_CheckChild4Integer, 15, ++/*411911*/ OPC_CheckChild4Type, MVT::i32, ++/*411913*/ OPC_MoveChild5, ++/*411914*/ OPC_CheckInteger, 15, ++/*411916*/ OPC_CheckType, MVT::i32, ++/*411918*/ OPC_MoveParent, ++/*411919*/ OPC_MoveChild6, ++/*411920*/ OPC_CheckInteger, 15, ++/*411922*/ OPC_CheckType, MVT::i32, ++/*411924*/ OPC_MoveParent, ++/*411925*/ OPC_MoveChild7, ++/*411926*/ OPC_CheckInteger, 15, ++/*411928*/ OPC_CheckType, MVT::i32, ++/*411930*/ OPC_MoveParent, ++/*411931*/ OPC_CheckType, MVT::v8i16, ++/*411933*/ OPC_MoveParent, ++/*411934*/ OPC_MoveParent, ++/*411935*/ OPC_MoveParent, ++/*411936*/ OPC_MoveChild1, ++/*411937*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*411940*/ OPC_CheckChild0Integer, 1, ++/*411942*/ OPC_CheckChild0Type, MVT::i32, ++/*411944*/ OPC_CheckChild1Integer, 1, ++/*411946*/ OPC_CheckChild1Type, MVT::i32, ++/*411948*/ OPC_CheckChild2Integer, 1, ++/*411950*/ OPC_CheckChild2Type, MVT::i32, ++/*411952*/ OPC_CheckChild3Integer, 1, ++/*411954*/ OPC_CheckChild3Type, MVT::i32, ++/*411956*/ OPC_CheckChild4Integer, 1, ++/*411958*/ OPC_CheckChild4Type, MVT::i32, ++/*411960*/ OPC_MoveChild5, ++/*411961*/ OPC_CheckInteger, 1, ++/*411963*/ OPC_CheckType, MVT::i32, ++/*411965*/ OPC_MoveParent, ++/*411966*/ OPC_MoveChild6, ++/*411967*/ OPC_CheckInteger, 1, ++/*411969*/ OPC_CheckType, MVT::i32, ++/*411971*/ OPC_MoveParent, ++/*411972*/ OPC_MoveChild7, ++/*411973*/ OPC_CheckInteger, 1, ++/*411975*/ OPC_CheckType, MVT::i32, ++/*411977*/ OPC_MoveParent, ++/*411978*/ OPC_CheckType, MVT::v8i16, ++/*411980*/ OPC_MoveParent, ++/*411981*/ OPC_CheckType, MVT::v8i16, ++/*411983*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*411985*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a), LSX128H:{ *:[v8i16] }:$b), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*411993*/ /*Scope*/ 25|128,1/*153*/, /*->412148*/ ++/*411995*/ OPC_CheckChild0Same, 1, ++/*411997*/ OPC_CheckChild1Same, 0, ++/*411999*/ OPC_MoveParent, ++/*412000*/ OPC_MoveChild1, ++/*412001*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*412004*/ OPC_CheckChild0Integer, 1, ++/*412006*/ OPC_CheckChild0Type, MVT::i32, ++/*412008*/ OPC_CheckChild1Integer, 1, ++/*412010*/ OPC_CheckChild1Type, MVT::i32, ++/*412012*/ OPC_CheckChild2Integer, 1, ++/*412014*/ OPC_CheckChild2Type, MVT::i32, ++/*412016*/ OPC_CheckChild3Integer, 1, ++/*412018*/ OPC_CheckChild3Type, MVT::i32, ++/*412020*/ OPC_CheckChild4Integer, 1, ++/*412022*/ OPC_CheckChild4Type, MVT::i32, ++/*412024*/ OPC_MoveChild5, ++/*412025*/ OPC_CheckInteger, 1, ++/*412027*/ OPC_CheckType, MVT::i32, ++/*412029*/ OPC_MoveParent, ++/*412030*/ OPC_MoveChild6, ++/*412031*/ OPC_CheckInteger, 1, ++/*412033*/ OPC_CheckType, MVT::i32, ++/*412035*/ OPC_MoveParent, ++/*412036*/ OPC_MoveChild7, ++/*412037*/ OPC_CheckInteger, 1, ++/*412039*/ OPC_CheckType, MVT::i32, ++/*412041*/ OPC_MoveParent, ++/*412042*/ OPC_MoveParent, ++/*412043*/ OPC_MoveParent, ++/*412044*/ OPC_MoveChild1, ++/*412045*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*412048*/ OPC_CheckChild0Integer, 15, ++/*412050*/ OPC_CheckChild0Type, MVT::i32, ++/*412052*/ OPC_CheckChild1Integer, 15, ++/*412054*/ OPC_CheckChild1Type, MVT::i32, ++/*412056*/ OPC_CheckChild2Integer, 15, ++/*412058*/ OPC_CheckChild2Type, MVT::i32, ++/*412060*/ OPC_CheckChild3Integer, 15, ++/*412062*/ OPC_CheckChild3Type, MVT::i32, ++/*412064*/ OPC_CheckChild4Integer, 15, ++/*412066*/ OPC_CheckChild4Type, MVT::i32, ++/*412068*/ OPC_MoveChild5, ++/*412069*/ OPC_CheckInteger, 15, ++/*412071*/ OPC_CheckType, MVT::i32, ++/*412073*/ OPC_MoveParent, ++/*412074*/ OPC_MoveChild6, ++/*412075*/ OPC_CheckInteger, 15, ++/*412077*/ OPC_CheckType, MVT::i32, ++/*412079*/ OPC_MoveParent, ++/*412080*/ OPC_MoveChild7, ++/*412081*/ OPC_CheckInteger, 15, ++/*412083*/ OPC_CheckType, MVT::i32, ++/*412085*/ OPC_MoveParent, ++/*412086*/ OPC_CheckType, MVT::v8i16, ++/*412088*/ OPC_MoveParent, ++/*412089*/ OPC_MoveParent, ++/*412090*/ OPC_MoveParent, ++/*412091*/ OPC_MoveChild1, ++/*412092*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*412095*/ OPC_CheckChild0Integer, 1, ++/*412097*/ OPC_CheckChild0Type, MVT::i32, ++/*412099*/ OPC_CheckChild1Integer, 1, ++/*412101*/ OPC_CheckChild1Type, MVT::i32, ++/*412103*/ OPC_CheckChild2Integer, 1, ++/*412105*/ OPC_CheckChild2Type, MVT::i32, ++/*412107*/ OPC_CheckChild3Integer, 1, ++/*412109*/ OPC_CheckChild3Type, MVT::i32, ++/*412111*/ OPC_CheckChild4Integer, 1, ++/*412113*/ OPC_CheckChild4Type, MVT::i32, ++/*412115*/ OPC_MoveChild5, ++/*412116*/ OPC_CheckInteger, 1, ++/*412118*/ OPC_CheckType, MVT::i32, ++/*412120*/ OPC_MoveParent, ++/*412121*/ OPC_MoveChild6, ++/*412122*/ OPC_CheckInteger, 1, ++/*412124*/ OPC_CheckType, MVT::i32, ++/*412126*/ OPC_MoveParent, ++/*412127*/ OPC_MoveChild7, ++/*412128*/ OPC_CheckInteger, 1, ++/*412130*/ OPC_CheckType, MVT::i32, ++/*412132*/ OPC_MoveParent, ++/*412133*/ OPC_CheckType, MVT::v8i16, ++/*412135*/ OPC_MoveParent, ++/*412136*/ OPC_CheckType, MVT::v8i16, ++/*412138*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*412140*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a), LSX128H:{ *:[v8i16] }:$b), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*412148*/ 0, /*End of Scope*/ ++/*412149*/ /*Scope*/ 58|128,2/*314*/, /*->412465*/ ++/*412151*/ OPC_CheckChild0Same, 1, ++/*412153*/ OPC_MoveChild1, ++/*412154*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*412157*/ OPC_Scope, 23|128,1/*151*/, /*->412311*/ // 2 children in Scope ++/*412160*/ OPC_MoveChild0, ++/*412161*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*412164*/ OPC_CheckChild0Integer, 1, ++/*412166*/ OPC_CheckChild0Type, MVT::i32, ++/*412168*/ OPC_CheckChild1Integer, 1, ++/*412170*/ OPC_CheckChild1Type, MVT::i32, ++/*412172*/ OPC_CheckChild2Integer, 1, ++/*412174*/ OPC_CheckChild2Type, MVT::i32, ++/*412176*/ OPC_CheckChild3Integer, 1, ++/*412178*/ OPC_CheckChild3Type, MVT::i32, ++/*412180*/ OPC_CheckChild4Integer, 1, ++/*412182*/ OPC_CheckChild4Type, MVT::i32, ++/*412184*/ OPC_MoveChild5, ++/*412185*/ OPC_CheckInteger, 1, ++/*412187*/ OPC_CheckType, MVT::i32, ++/*412189*/ OPC_MoveParent, ++/*412190*/ OPC_MoveChild6, ++/*412191*/ OPC_CheckInteger, 1, ++/*412193*/ OPC_CheckType, MVT::i32, ++/*412195*/ OPC_MoveParent, ++/*412196*/ OPC_MoveChild7, ++/*412197*/ OPC_CheckInteger, 1, ++/*412199*/ OPC_CheckType, MVT::i32, ++/*412201*/ OPC_MoveParent, ++/*412202*/ OPC_MoveParent, ++/*412203*/ OPC_CheckChild1Same, 0, ++/*412205*/ OPC_MoveParent, ++/*412206*/ OPC_MoveParent, ++/*412207*/ OPC_MoveChild1, ++/*412208*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*412211*/ OPC_CheckChild0Integer, 15, ++/*412213*/ OPC_CheckChild0Type, MVT::i32, ++/*412215*/ OPC_CheckChild1Integer, 15, ++/*412217*/ OPC_CheckChild1Type, MVT::i32, ++/*412219*/ OPC_CheckChild2Integer, 15, ++/*412221*/ OPC_CheckChild2Type, MVT::i32, ++/*412223*/ OPC_CheckChild3Integer, 15, ++/*412225*/ OPC_CheckChild3Type, MVT::i32, ++/*412227*/ OPC_CheckChild4Integer, 15, ++/*412229*/ OPC_CheckChild4Type, MVT::i32, ++/*412231*/ OPC_MoveChild5, ++/*412232*/ OPC_CheckInteger, 15, ++/*412234*/ OPC_CheckType, MVT::i32, ++/*412236*/ OPC_MoveParent, ++/*412237*/ OPC_MoveChild6, ++/*412238*/ OPC_CheckInteger, 15, ++/*412240*/ OPC_CheckType, MVT::i32, ++/*412242*/ OPC_MoveParent, ++/*412243*/ OPC_MoveChild7, ++/*412244*/ OPC_CheckInteger, 15, ++/*412246*/ OPC_CheckType, MVT::i32, ++/*412248*/ OPC_MoveParent, ++/*412249*/ OPC_CheckType, MVT::v8i16, ++/*412251*/ OPC_MoveParent, ++/*412252*/ OPC_MoveParent, ++/*412253*/ OPC_MoveParent, ++/*412254*/ OPC_MoveChild1, ++/*412255*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*412258*/ OPC_CheckChild0Integer, 1, ++/*412260*/ OPC_CheckChild0Type, MVT::i32, ++/*412262*/ OPC_CheckChild1Integer, 1, ++/*412264*/ OPC_CheckChild1Type, MVT::i32, ++/*412266*/ OPC_CheckChild2Integer, 1, ++/*412268*/ OPC_CheckChild2Type, MVT::i32, ++/*412270*/ OPC_CheckChild3Integer, 1, ++/*412272*/ OPC_CheckChild3Type, MVT::i32, ++/*412274*/ OPC_CheckChild4Integer, 1, ++/*412276*/ OPC_CheckChild4Type, MVT::i32, ++/*412278*/ OPC_MoveChild5, ++/*412279*/ OPC_CheckInteger, 1, ++/*412281*/ OPC_CheckType, MVT::i32, ++/*412283*/ OPC_MoveParent, ++/*412284*/ OPC_MoveChild6, ++/*412285*/ OPC_CheckInteger, 1, ++/*412287*/ OPC_CheckType, MVT::i32, ++/*412289*/ OPC_MoveParent, ++/*412290*/ OPC_MoveChild7, ++/*412291*/ OPC_CheckInteger, 1, ++/*412293*/ OPC_CheckType, MVT::i32, ++/*412295*/ OPC_MoveParent, ++/*412296*/ OPC_CheckType, MVT::v8i16, ++/*412298*/ OPC_MoveParent, ++/*412299*/ OPC_CheckType, MVT::v8i16, ++/*412301*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*412303*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a), LSX128H:{ *:[v8i16] }:$b), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*412311*/ /*Scope*/ 23|128,1/*151*/, /*->412464*/ ++/*412313*/ OPC_CheckChild0Same, 0, ++/*412315*/ OPC_MoveChild1, ++/*412316*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*412319*/ OPC_CheckChild0Integer, 1, ++/*412321*/ OPC_CheckChild0Type, MVT::i32, ++/*412323*/ OPC_CheckChild1Integer, 1, ++/*412325*/ OPC_CheckChild1Type, MVT::i32, ++/*412327*/ OPC_CheckChild2Integer, 1, ++/*412329*/ OPC_CheckChild2Type, MVT::i32, ++/*412331*/ OPC_CheckChild3Integer, 1, ++/*412333*/ OPC_CheckChild3Type, MVT::i32, ++/*412335*/ OPC_CheckChild4Integer, 1, ++/*412337*/ OPC_CheckChild4Type, MVT::i32, ++/*412339*/ OPC_MoveChild5, ++/*412340*/ OPC_CheckInteger, 1, ++/*412342*/ OPC_CheckType, MVT::i32, ++/*412344*/ OPC_MoveParent, ++/*412345*/ OPC_MoveChild6, ++/*412346*/ OPC_CheckInteger, 1, ++/*412348*/ OPC_CheckType, MVT::i32, ++/*412350*/ OPC_MoveParent, ++/*412351*/ OPC_MoveChild7, ++/*412352*/ OPC_CheckInteger, 1, ++/*412354*/ OPC_CheckType, MVT::i32, ++/*412356*/ OPC_MoveParent, ++/*412357*/ OPC_MoveParent, ++/*412358*/ OPC_MoveParent, ++/*412359*/ OPC_MoveParent, ++/*412360*/ OPC_MoveChild1, ++/*412361*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*412364*/ OPC_CheckChild0Integer, 15, ++/*412366*/ OPC_CheckChild0Type, MVT::i32, ++/*412368*/ OPC_CheckChild1Integer, 15, ++/*412370*/ OPC_CheckChild1Type, MVT::i32, ++/*412372*/ OPC_CheckChild2Integer, 15, ++/*412374*/ OPC_CheckChild2Type, MVT::i32, ++/*412376*/ OPC_CheckChild3Integer, 15, ++/*412378*/ OPC_CheckChild3Type, MVT::i32, ++/*412380*/ OPC_CheckChild4Integer, 15, ++/*412382*/ OPC_CheckChild4Type, MVT::i32, ++/*412384*/ OPC_MoveChild5, ++/*412385*/ OPC_CheckInteger, 15, ++/*412387*/ OPC_CheckType, MVT::i32, ++/*412389*/ OPC_MoveParent, ++/*412390*/ OPC_MoveChild6, ++/*412391*/ OPC_CheckInteger, 15, ++/*412393*/ OPC_CheckType, MVT::i32, ++/*412395*/ OPC_MoveParent, ++/*412396*/ OPC_MoveChild7, ++/*412397*/ OPC_CheckInteger, 15, ++/*412399*/ OPC_CheckType, MVT::i32, ++/*412401*/ OPC_MoveParent, ++/*412402*/ OPC_CheckType, MVT::v8i16, ++/*412404*/ OPC_MoveParent, ++/*412405*/ OPC_MoveParent, ++/*412406*/ OPC_MoveParent, ++/*412407*/ OPC_MoveChild1, ++/*412408*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*412411*/ OPC_CheckChild0Integer, 1, ++/*412413*/ OPC_CheckChild0Type, MVT::i32, ++/*412415*/ OPC_CheckChild1Integer, 1, ++/*412417*/ OPC_CheckChild1Type, MVT::i32, ++/*412419*/ OPC_CheckChild2Integer, 1, ++/*412421*/ OPC_CheckChild2Type, MVT::i32, ++/*412423*/ OPC_CheckChild3Integer, 1, ++/*412425*/ OPC_CheckChild3Type, MVT::i32, ++/*412427*/ OPC_CheckChild4Integer, 1, ++/*412429*/ OPC_CheckChild4Type, MVT::i32, ++/*412431*/ OPC_MoveChild5, ++/*412432*/ OPC_CheckInteger, 1, ++/*412434*/ OPC_CheckType, MVT::i32, ++/*412436*/ OPC_MoveParent, ++/*412437*/ OPC_MoveChild6, ++/*412438*/ OPC_CheckInteger, 1, ++/*412440*/ OPC_CheckType, MVT::i32, ++/*412442*/ OPC_MoveParent, ++/*412443*/ OPC_MoveChild7, ++/*412444*/ OPC_CheckInteger, 1, ++/*412446*/ OPC_CheckType, MVT::i32, ++/*412448*/ OPC_MoveParent, ++/*412449*/ OPC_CheckType, MVT::v8i16, ++/*412451*/ OPC_MoveParent, ++/*412452*/ OPC_CheckType, MVT::v8i16, ++/*412454*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*412456*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a), LSX128H:{ *:[v8i16] }:$b), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*412464*/ 0, /*End of Scope*/ ++/*412465*/ /*Scope*/ 58|128,2/*314*/, /*->412781*/ ++/*412467*/ OPC_CheckChild0Same, 0, ++/*412469*/ OPC_MoveChild1, ++/*412470*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*412473*/ OPC_Scope, 23|128,1/*151*/, /*->412627*/ // 2 children in Scope ++/*412476*/ OPC_MoveChild0, ++/*412477*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*412480*/ OPC_CheckChild0Integer, 1, ++/*412482*/ OPC_CheckChild0Type, MVT::i32, ++/*412484*/ OPC_CheckChild1Integer, 1, ++/*412486*/ OPC_CheckChild1Type, MVT::i32, ++/*412488*/ OPC_CheckChild2Integer, 1, ++/*412490*/ OPC_CheckChild2Type, MVT::i32, ++/*412492*/ OPC_CheckChild3Integer, 1, ++/*412494*/ OPC_CheckChild3Type, MVT::i32, ++/*412496*/ OPC_CheckChild4Integer, 1, ++/*412498*/ OPC_CheckChild4Type, MVT::i32, ++/*412500*/ OPC_MoveChild5, ++/*412501*/ OPC_CheckInteger, 1, ++/*412503*/ OPC_CheckType, MVT::i32, ++/*412505*/ OPC_MoveParent, ++/*412506*/ OPC_MoveChild6, ++/*412507*/ OPC_CheckInteger, 1, ++/*412509*/ OPC_CheckType, MVT::i32, ++/*412511*/ OPC_MoveParent, ++/*412512*/ OPC_MoveChild7, ++/*412513*/ OPC_CheckInteger, 1, ++/*412515*/ OPC_CheckType, MVT::i32, ++/*412517*/ OPC_MoveParent, ++/*412518*/ OPC_MoveParent, ++/*412519*/ OPC_CheckChild1Same, 1, ++/*412521*/ OPC_MoveParent, ++/*412522*/ OPC_MoveParent, ++/*412523*/ OPC_MoveChild1, ++/*412524*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*412527*/ OPC_CheckChild0Integer, 15, ++/*412529*/ OPC_CheckChild0Type, MVT::i32, ++/*412531*/ OPC_CheckChild1Integer, 15, ++/*412533*/ OPC_CheckChild1Type, MVT::i32, ++/*412535*/ OPC_CheckChild2Integer, 15, ++/*412537*/ OPC_CheckChild2Type, MVT::i32, ++/*412539*/ OPC_CheckChild3Integer, 15, ++/*412541*/ OPC_CheckChild3Type, MVT::i32, ++/*412543*/ OPC_CheckChild4Integer, 15, ++/*412545*/ OPC_CheckChild4Type, MVT::i32, ++/*412547*/ OPC_MoveChild5, ++/*412548*/ OPC_CheckInteger, 15, ++/*412550*/ OPC_CheckType, MVT::i32, ++/*412552*/ OPC_MoveParent, ++/*412553*/ OPC_MoveChild6, ++/*412554*/ OPC_CheckInteger, 15, ++/*412556*/ OPC_CheckType, MVT::i32, ++/*412558*/ OPC_MoveParent, ++/*412559*/ OPC_MoveChild7, ++/*412560*/ OPC_CheckInteger, 15, ++/*412562*/ OPC_CheckType, MVT::i32, ++/*412564*/ OPC_MoveParent, ++/*412565*/ OPC_CheckType, MVT::v8i16, ++/*412567*/ OPC_MoveParent, ++/*412568*/ OPC_MoveParent, ++/*412569*/ OPC_MoveParent, ++/*412570*/ OPC_MoveChild1, ++/*412571*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*412574*/ OPC_CheckChild0Integer, 1, ++/*412576*/ OPC_CheckChild0Type, MVT::i32, ++/*412578*/ OPC_CheckChild1Integer, 1, ++/*412580*/ OPC_CheckChild1Type, MVT::i32, ++/*412582*/ OPC_CheckChild2Integer, 1, ++/*412584*/ OPC_CheckChild2Type, MVT::i32, ++/*412586*/ OPC_CheckChild3Integer, 1, ++/*412588*/ OPC_CheckChild3Type, MVT::i32, ++/*412590*/ OPC_CheckChild4Integer, 1, ++/*412592*/ OPC_CheckChild4Type, MVT::i32, ++/*412594*/ OPC_MoveChild5, ++/*412595*/ OPC_CheckInteger, 1, ++/*412597*/ OPC_CheckType, MVT::i32, ++/*412599*/ OPC_MoveParent, ++/*412600*/ OPC_MoveChild6, ++/*412601*/ OPC_CheckInteger, 1, ++/*412603*/ OPC_CheckType, MVT::i32, ++/*412605*/ OPC_MoveParent, ++/*412606*/ OPC_MoveChild7, ++/*412607*/ OPC_CheckInteger, 1, ++/*412609*/ OPC_CheckType, MVT::i32, ++/*412611*/ OPC_MoveParent, ++/*412612*/ OPC_CheckType, MVT::v8i16, ++/*412614*/ OPC_MoveParent, ++/*412615*/ OPC_CheckType, MVT::v8i16, ++/*412617*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*412619*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a), LSX128H:{ *:[v8i16] }:$b), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*412627*/ /*Scope*/ 23|128,1/*151*/, /*->412780*/ ++/*412629*/ OPC_CheckChild0Same, 1, ++/*412631*/ OPC_MoveChild1, ++/*412632*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*412635*/ OPC_CheckChild0Integer, 1, ++/*412637*/ OPC_CheckChild0Type, MVT::i32, ++/*412639*/ OPC_CheckChild1Integer, 1, ++/*412641*/ OPC_CheckChild1Type, MVT::i32, ++/*412643*/ OPC_CheckChild2Integer, 1, ++/*412645*/ OPC_CheckChild2Type, MVT::i32, ++/*412647*/ OPC_CheckChild3Integer, 1, ++/*412649*/ OPC_CheckChild3Type, MVT::i32, ++/*412651*/ OPC_CheckChild4Integer, 1, ++/*412653*/ OPC_CheckChild4Type, MVT::i32, ++/*412655*/ OPC_MoveChild5, ++/*412656*/ OPC_CheckInteger, 1, ++/*412658*/ OPC_CheckType, MVT::i32, ++/*412660*/ OPC_MoveParent, ++/*412661*/ OPC_MoveChild6, ++/*412662*/ OPC_CheckInteger, 1, ++/*412664*/ OPC_CheckType, MVT::i32, ++/*412666*/ OPC_MoveParent, ++/*412667*/ OPC_MoveChild7, ++/*412668*/ OPC_CheckInteger, 1, ++/*412670*/ OPC_CheckType, MVT::i32, ++/*412672*/ OPC_MoveParent, ++/*412673*/ OPC_MoveParent, ++/*412674*/ OPC_MoveParent, ++/*412675*/ OPC_MoveParent, ++/*412676*/ OPC_MoveChild1, ++/*412677*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*412680*/ OPC_CheckChild0Integer, 15, ++/*412682*/ OPC_CheckChild0Type, MVT::i32, ++/*412684*/ OPC_CheckChild1Integer, 15, ++/*412686*/ OPC_CheckChild1Type, MVT::i32, ++/*412688*/ OPC_CheckChild2Integer, 15, ++/*412690*/ OPC_CheckChild2Type, MVT::i32, ++/*412692*/ OPC_CheckChild3Integer, 15, ++/*412694*/ OPC_CheckChild3Type, MVT::i32, ++/*412696*/ OPC_CheckChild4Integer, 15, ++/*412698*/ OPC_CheckChild4Type, MVT::i32, ++/*412700*/ OPC_MoveChild5, ++/*412701*/ OPC_CheckInteger, 15, ++/*412703*/ OPC_CheckType, MVT::i32, ++/*412705*/ OPC_MoveParent, ++/*412706*/ OPC_MoveChild6, ++/*412707*/ OPC_CheckInteger, 15, ++/*412709*/ OPC_CheckType, MVT::i32, ++/*412711*/ OPC_MoveParent, ++/*412712*/ OPC_MoveChild7, ++/*412713*/ OPC_CheckInteger, 15, ++/*412715*/ OPC_CheckType, MVT::i32, ++/*412717*/ OPC_MoveParent, ++/*412718*/ OPC_CheckType, MVT::v8i16, ++/*412720*/ OPC_MoveParent, ++/*412721*/ OPC_MoveParent, ++/*412722*/ OPC_MoveParent, ++/*412723*/ OPC_MoveChild1, ++/*412724*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*412727*/ OPC_CheckChild0Integer, 1, ++/*412729*/ OPC_CheckChild0Type, MVT::i32, ++/*412731*/ OPC_CheckChild1Integer, 1, ++/*412733*/ OPC_CheckChild1Type, MVT::i32, ++/*412735*/ OPC_CheckChild2Integer, 1, ++/*412737*/ OPC_CheckChild2Type, MVT::i32, ++/*412739*/ OPC_CheckChild3Integer, 1, ++/*412741*/ OPC_CheckChild3Type, MVT::i32, ++/*412743*/ OPC_CheckChild4Integer, 1, ++/*412745*/ OPC_CheckChild4Type, MVT::i32, ++/*412747*/ OPC_MoveChild5, ++/*412748*/ OPC_CheckInteger, 1, ++/*412750*/ OPC_CheckType, MVT::i32, ++/*412752*/ OPC_MoveParent, ++/*412753*/ OPC_MoveChild6, ++/*412754*/ OPC_CheckInteger, 1, ++/*412756*/ OPC_CheckType, MVT::i32, ++/*412758*/ OPC_MoveParent, ++/*412759*/ OPC_MoveChild7, ++/*412760*/ OPC_CheckInteger, 1, ++/*412762*/ OPC_CheckType, MVT::i32, ++/*412764*/ OPC_MoveParent, ++/*412765*/ OPC_CheckType, MVT::v8i16, ++/*412767*/ OPC_MoveParent, ++/*412768*/ OPC_CheckType, MVT::v8i16, ++/*412770*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*412772*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a), LSX128H:{ *:[v8i16] }:$b), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*412780*/ 0, /*End of Scope*/ ++/*412781*/ /*Scope*/ 15|128,2/*271*/, /*->413054*/ ++/*412783*/ OPC_MoveChild0, ++/*412784*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*412787*/ OPC_CheckChild0Integer, 1, ++/*412789*/ OPC_CheckChild0Type, MVT::i32, ++/*412791*/ OPC_CheckChild1Integer, 1, ++/*412793*/ OPC_CheckChild1Type, MVT::i32, ++/*412795*/ OPC_CheckChild2Integer, 1, ++/*412797*/ OPC_CheckChild2Type, MVT::i32, ++/*412799*/ OPC_CheckChild3Integer, 1, ++/*412801*/ OPC_CheckChild3Type, MVT::i32, ++/*412803*/ OPC_CheckChild4Integer, 1, ++/*412805*/ OPC_CheckChild4Type, MVT::i32, ++/*412807*/ OPC_MoveChild5, ++/*412808*/ OPC_CheckInteger, 1, ++/*412810*/ OPC_CheckType, MVT::i32, ++/*412812*/ OPC_MoveParent, ++/*412813*/ OPC_MoveChild6, ++/*412814*/ OPC_CheckInteger, 1, ++/*412816*/ OPC_CheckType, MVT::i32, ++/*412818*/ OPC_MoveParent, ++/*412819*/ OPC_MoveChild7, ++/*412820*/ OPC_CheckInteger, 1, ++/*412822*/ OPC_CheckType, MVT::i32, ++/*412824*/ OPC_MoveParent, ++/*412825*/ OPC_MoveParent, ++/*412826*/ OPC_MoveChild1, ++/*412827*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*412830*/ OPC_Scope, 110, /*->412942*/ // 2 children in Scope ++/*412832*/ OPC_CheckChild0Same, 0, ++/*412834*/ OPC_CheckChild1Same, 1, ++/*412836*/ OPC_MoveParent, ++/*412837*/ OPC_MoveParent, ++/*412838*/ OPC_MoveChild1, ++/*412839*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*412842*/ OPC_CheckChild0Integer, 15, ++/*412844*/ OPC_CheckChild0Type, MVT::i32, ++/*412846*/ OPC_CheckChild1Integer, 15, ++/*412848*/ OPC_CheckChild1Type, MVT::i32, ++/*412850*/ OPC_CheckChild2Integer, 15, ++/*412852*/ OPC_CheckChild2Type, MVT::i32, ++/*412854*/ OPC_CheckChild3Integer, 15, ++/*412856*/ OPC_CheckChild3Type, MVT::i32, ++/*412858*/ OPC_CheckChild4Integer, 15, ++/*412860*/ OPC_CheckChild4Type, MVT::i32, ++/*412862*/ OPC_MoveChild5, ++/*412863*/ OPC_CheckInteger, 15, ++/*412865*/ OPC_CheckType, MVT::i32, ++/*412867*/ OPC_MoveParent, ++/*412868*/ OPC_MoveChild6, ++/*412869*/ OPC_CheckInteger, 15, ++/*412871*/ OPC_CheckType, MVT::i32, ++/*412873*/ OPC_MoveParent, ++/*412874*/ OPC_MoveChild7, ++/*412875*/ OPC_CheckInteger, 15, ++/*412877*/ OPC_CheckType, MVT::i32, ++/*412879*/ OPC_MoveParent, ++/*412880*/ OPC_CheckType, MVT::v8i16, ++/*412882*/ OPC_MoveParent, ++/*412883*/ OPC_MoveParent, ++/*412884*/ OPC_MoveParent, ++/*412885*/ OPC_MoveChild1, ++/*412886*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*412889*/ OPC_CheckChild0Integer, 1, ++/*412891*/ OPC_CheckChild0Type, MVT::i32, ++/*412893*/ OPC_CheckChild1Integer, 1, ++/*412895*/ OPC_CheckChild1Type, MVT::i32, ++/*412897*/ OPC_CheckChild2Integer, 1, ++/*412899*/ OPC_CheckChild2Type, MVT::i32, ++/*412901*/ OPC_CheckChild3Integer, 1, ++/*412903*/ OPC_CheckChild3Type, MVT::i32, ++/*412905*/ OPC_CheckChild4Integer, 1, ++/*412907*/ OPC_CheckChild4Type, MVT::i32, ++/*412909*/ OPC_MoveChild5, ++/*412910*/ OPC_CheckInteger, 1, ++/*412912*/ OPC_CheckType, MVT::i32, ++/*412914*/ OPC_MoveParent, ++/*412915*/ OPC_MoveChild6, ++/*412916*/ OPC_CheckInteger, 1, ++/*412918*/ OPC_CheckType, MVT::i32, ++/*412920*/ OPC_MoveParent, ++/*412921*/ OPC_MoveChild7, ++/*412922*/ OPC_CheckInteger, 1, ++/*412924*/ OPC_CheckType, MVT::i32, ++/*412926*/ OPC_MoveParent, ++/*412927*/ OPC_CheckType, MVT::v8i16, ++/*412929*/ OPC_MoveParent, ++/*412930*/ OPC_CheckType, MVT::v8i16, ++/*412932*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*412934*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a), LSX128H:{ *:[v8i16] }:$b), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*412942*/ /*Scope*/ 110, /*->413053*/ ++/*412943*/ OPC_CheckChild0Same, 1, ++/*412945*/ OPC_CheckChild1Same, 0, ++/*412947*/ OPC_MoveParent, ++/*412948*/ OPC_MoveParent, ++/*412949*/ OPC_MoveChild1, ++/*412950*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*412953*/ OPC_CheckChild0Integer, 15, ++/*412955*/ OPC_CheckChild0Type, MVT::i32, ++/*412957*/ OPC_CheckChild1Integer, 15, ++/*412959*/ OPC_CheckChild1Type, MVT::i32, ++/*412961*/ OPC_CheckChild2Integer, 15, ++/*412963*/ OPC_CheckChild2Type, MVT::i32, ++/*412965*/ OPC_CheckChild3Integer, 15, ++/*412967*/ OPC_CheckChild3Type, MVT::i32, ++/*412969*/ OPC_CheckChild4Integer, 15, ++/*412971*/ OPC_CheckChild4Type, MVT::i32, ++/*412973*/ OPC_MoveChild5, ++/*412974*/ OPC_CheckInteger, 15, ++/*412976*/ OPC_CheckType, MVT::i32, ++/*412978*/ OPC_MoveParent, ++/*412979*/ OPC_MoveChild6, ++/*412980*/ OPC_CheckInteger, 15, ++/*412982*/ OPC_CheckType, MVT::i32, ++/*412984*/ OPC_MoveParent, ++/*412985*/ OPC_MoveChild7, ++/*412986*/ OPC_CheckInteger, 15, ++/*412988*/ OPC_CheckType, MVT::i32, ++/*412990*/ OPC_MoveParent, ++/*412991*/ OPC_CheckType, MVT::v8i16, ++/*412993*/ OPC_MoveParent, ++/*412994*/ OPC_MoveParent, ++/*412995*/ OPC_MoveParent, ++/*412996*/ OPC_MoveChild1, ++/*412997*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*413000*/ OPC_CheckChild0Integer, 1, ++/*413002*/ OPC_CheckChild0Type, MVT::i32, ++/*413004*/ OPC_CheckChild1Integer, 1, ++/*413006*/ OPC_CheckChild1Type, MVT::i32, ++/*413008*/ OPC_CheckChild2Integer, 1, ++/*413010*/ OPC_CheckChild2Type, MVT::i32, ++/*413012*/ OPC_CheckChild3Integer, 1, ++/*413014*/ OPC_CheckChild3Type, MVT::i32, ++/*413016*/ OPC_CheckChild4Integer, 1, ++/*413018*/ OPC_CheckChild4Type, MVT::i32, ++/*413020*/ OPC_MoveChild5, ++/*413021*/ OPC_CheckInteger, 1, ++/*413023*/ OPC_CheckType, MVT::i32, ++/*413025*/ OPC_MoveParent, ++/*413026*/ OPC_MoveChild6, ++/*413027*/ OPC_CheckInteger, 1, ++/*413029*/ OPC_CheckType, MVT::i32, ++/*413031*/ OPC_MoveParent, ++/*413032*/ OPC_MoveChild7, ++/*413033*/ OPC_CheckInteger, 1, ++/*413035*/ OPC_CheckType, MVT::i32, ++/*413037*/ OPC_MoveParent, ++/*413038*/ OPC_CheckType, MVT::v8i16, ++/*413040*/ OPC_MoveParent, ++/*413041*/ OPC_CheckType, MVT::v8i16, ++/*413043*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*413045*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a), LSX128H:{ *:[v8i16] }:$b), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*413053*/ 0, /*End of Scope*/ ++/*413054*/ 0, /*End of Scope*/ ++/*413055*/ /*Scope*/ 108|128,14/*1900*/, /*->414957*/ ++/*413057*/ OPC_RecordChild0, // #0 = $a ++/*413058*/ OPC_MoveChild1, ++/*413059*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*413062*/ OPC_CheckChild0Integer, 1, ++/*413064*/ OPC_CheckChild0Type, MVT::i32, ++/*413066*/ OPC_CheckChild1Integer, 1, ++/*413068*/ OPC_CheckChild1Type, MVT::i32, ++/*413070*/ OPC_CheckChild2Integer, 1, ++/*413072*/ OPC_CheckChild2Type, MVT::i32, ++/*413074*/ OPC_CheckChild3Integer, 1, ++/*413076*/ OPC_CheckChild3Type, MVT::i32, ++/*413078*/ OPC_CheckChild4Integer, 1, ++/*413080*/ OPC_CheckChild4Type, MVT::i32, ++/*413082*/ OPC_MoveChild5, ++/*413083*/ OPC_CheckInteger, 1, ++/*413085*/ OPC_CheckType, MVT::i32, ++/*413087*/ OPC_MoveParent, ++/*413088*/ OPC_MoveChild6, ++/*413089*/ OPC_CheckInteger, 1, ++/*413091*/ OPC_CheckType, MVT::i32, ++/*413093*/ OPC_MoveParent, ++/*413094*/ OPC_MoveChild7, ++/*413095*/ OPC_CheckInteger, 1, ++/*413097*/ OPC_CheckType, MVT::i32, ++/*413099*/ OPC_MoveParent, ++/*413100*/ OPC_MoveParent, ++/*413101*/ OPC_MoveParent, ++/*413102*/ OPC_RecordChild1, // #1 = $b ++/*413103*/ OPC_MoveParent, ++/*413104*/ OPC_MoveChild1, ++/*413105*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*413108*/ OPC_MoveChild0, ++/*413109*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*413112*/ OPC_Scope, 40|128,7/*936*/, /*->414051*/ // 4 children in Scope ++/*413115*/ OPC_MoveChild0, ++/*413116*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*413119*/ OPC_Scope, 25|128,1/*153*/, /*->413275*/ // 6 children in Scope ++/*413122*/ OPC_MoveChild0, ++/*413123*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*413126*/ OPC_CheckChild0Integer, 1, ++/*413128*/ OPC_CheckChild0Type, MVT::i32, ++/*413130*/ OPC_CheckChild1Integer, 1, ++/*413132*/ OPC_CheckChild1Type, MVT::i32, ++/*413134*/ OPC_CheckChild2Integer, 1, ++/*413136*/ OPC_CheckChild2Type, MVT::i32, ++/*413138*/ OPC_CheckChild3Integer, 1, ++/*413140*/ OPC_CheckChild3Type, MVT::i32, ++/*413142*/ OPC_CheckChild4Integer, 1, ++/*413144*/ OPC_CheckChild4Type, MVT::i32, ++/*413146*/ OPC_MoveChild5, ++/*413147*/ OPC_CheckInteger, 1, ++/*413149*/ OPC_CheckType, MVT::i32, ++/*413151*/ OPC_MoveParent, ++/*413152*/ OPC_MoveChild6, ++/*413153*/ OPC_CheckInteger, 1, ++/*413155*/ OPC_CheckType, MVT::i32, ++/*413157*/ OPC_MoveParent, ++/*413158*/ OPC_MoveChild7, ++/*413159*/ OPC_CheckInteger, 1, ++/*413161*/ OPC_CheckType, MVT::i32, ++/*413163*/ OPC_MoveParent, ++/*413164*/ OPC_MoveParent, ++/*413165*/ OPC_CheckChild1Same, 0, ++/*413167*/ OPC_MoveParent, ++/*413168*/ OPC_CheckChild1Same, 1, ++/*413170*/ OPC_MoveParent, ++/*413171*/ OPC_MoveChild1, ++/*413172*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*413175*/ OPC_CheckChild0Integer, 15, ++/*413177*/ OPC_CheckChild0Type, MVT::i32, ++/*413179*/ OPC_CheckChild1Integer, 15, ++/*413181*/ OPC_CheckChild1Type, MVT::i32, ++/*413183*/ OPC_CheckChild2Integer, 15, ++/*413185*/ OPC_CheckChild2Type, MVT::i32, ++/*413187*/ OPC_CheckChild3Integer, 15, ++/*413189*/ OPC_CheckChild3Type, MVT::i32, ++/*413191*/ OPC_CheckChild4Integer, 15, ++/*413193*/ OPC_CheckChild4Type, MVT::i32, ++/*413195*/ OPC_MoveChild5, ++/*413196*/ OPC_CheckInteger, 15, ++/*413198*/ OPC_CheckType, MVT::i32, ++/*413200*/ OPC_MoveParent, ++/*413201*/ OPC_MoveChild6, ++/*413202*/ OPC_CheckInteger, 15, ++/*413204*/ OPC_CheckType, MVT::i32, ++/*413206*/ OPC_MoveParent, ++/*413207*/ OPC_MoveChild7, ++/*413208*/ OPC_CheckInteger, 15, ++/*413210*/ OPC_CheckType, MVT::i32, ++/*413212*/ OPC_MoveParent, ++/*413213*/ OPC_CheckType, MVT::v8i16, ++/*413215*/ OPC_MoveParent, ++/*413216*/ OPC_MoveParent, ++/*413217*/ OPC_MoveParent, ++/*413218*/ OPC_MoveChild1, ++/*413219*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*413222*/ OPC_CheckChild0Integer, 1, ++/*413224*/ OPC_CheckChild0Type, MVT::i32, ++/*413226*/ OPC_CheckChild1Integer, 1, ++/*413228*/ OPC_CheckChild1Type, MVT::i32, ++/*413230*/ OPC_CheckChild2Integer, 1, ++/*413232*/ OPC_CheckChild2Type, MVT::i32, ++/*413234*/ OPC_CheckChild3Integer, 1, ++/*413236*/ OPC_CheckChild3Type, MVT::i32, ++/*413238*/ OPC_CheckChild4Integer, 1, ++/*413240*/ OPC_CheckChild4Type, MVT::i32, ++/*413242*/ OPC_MoveChild5, ++/*413243*/ OPC_CheckInteger, 1, ++/*413245*/ OPC_CheckType, MVT::i32, ++/*413247*/ OPC_MoveParent, ++/*413248*/ OPC_MoveChild6, ++/*413249*/ OPC_CheckInteger, 1, ++/*413251*/ OPC_CheckType, MVT::i32, ++/*413253*/ OPC_MoveParent, ++/*413254*/ OPC_MoveChild7, ++/*413255*/ OPC_CheckInteger, 1, ++/*413257*/ OPC_CheckType, MVT::i32, ++/*413259*/ OPC_MoveParent, ++/*413260*/ OPC_CheckType, MVT::v8i16, ++/*413262*/ OPC_MoveParent, ++/*413263*/ OPC_CheckType, MVT::v8i16, ++/*413265*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*413267*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$b), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a), LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*413275*/ /*Scope*/ 25|128,1/*153*/, /*->413430*/ ++/*413277*/ OPC_CheckChild0Same, 0, ++/*413279*/ OPC_MoveChild1, ++/*413280*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*413283*/ OPC_CheckChild0Integer, 1, ++/*413285*/ OPC_CheckChild0Type, MVT::i32, ++/*413287*/ OPC_CheckChild1Integer, 1, ++/*413289*/ OPC_CheckChild1Type, MVT::i32, ++/*413291*/ OPC_CheckChild2Integer, 1, ++/*413293*/ OPC_CheckChild2Type, MVT::i32, ++/*413295*/ OPC_CheckChild3Integer, 1, ++/*413297*/ OPC_CheckChild3Type, MVT::i32, ++/*413299*/ OPC_CheckChild4Integer, 1, ++/*413301*/ OPC_CheckChild4Type, MVT::i32, ++/*413303*/ OPC_MoveChild5, ++/*413304*/ OPC_CheckInteger, 1, ++/*413306*/ OPC_CheckType, MVT::i32, ++/*413308*/ OPC_MoveParent, ++/*413309*/ OPC_MoveChild6, ++/*413310*/ OPC_CheckInteger, 1, ++/*413312*/ OPC_CheckType, MVT::i32, ++/*413314*/ OPC_MoveParent, ++/*413315*/ OPC_MoveChild7, ++/*413316*/ OPC_CheckInteger, 1, ++/*413318*/ OPC_CheckType, MVT::i32, ++/*413320*/ OPC_MoveParent, ++/*413321*/ OPC_MoveParent, ++/*413322*/ OPC_MoveParent, ++/*413323*/ OPC_CheckChild1Same, 1, ++/*413325*/ OPC_MoveParent, ++/*413326*/ OPC_MoveChild1, ++/*413327*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*413330*/ OPC_CheckChild0Integer, 15, ++/*413332*/ OPC_CheckChild0Type, MVT::i32, ++/*413334*/ OPC_CheckChild1Integer, 15, ++/*413336*/ OPC_CheckChild1Type, MVT::i32, ++/*413338*/ OPC_CheckChild2Integer, 15, ++/*413340*/ OPC_CheckChild2Type, MVT::i32, ++/*413342*/ OPC_CheckChild3Integer, 15, ++/*413344*/ OPC_CheckChild3Type, MVT::i32, ++/*413346*/ OPC_CheckChild4Integer, 15, ++/*413348*/ OPC_CheckChild4Type, MVT::i32, ++/*413350*/ OPC_MoveChild5, ++/*413351*/ OPC_CheckInteger, 15, ++/*413353*/ OPC_CheckType, MVT::i32, ++/*413355*/ OPC_MoveParent, ++/*413356*/ OPC_MoveChild6, ++/*413357*/ OPC_CheckInteger, 15, ++/*413359*/ OPC_CheckType, MVT::i32, ++/*413361*/ OPC_MoveParent, ++/*413362*/ OPC_MoveChild7, ++/*413363*/ OPC_CheckInteger, 15, ++/*413365*/ OPC_CheckType, MVT::i32, ++/*413367*/ OPC_MoveParent, ++/*413368*/ OPC_CheckType, MVT::v8i16, ++/*413370*/ OPC_MoveParent, ++/*413371*/ OPC_MoveParent, ++/*413372*/ OPC_MoveParent, ++/*413373*/ OPC_MoveChild1, ++/*413374*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*413377*/ OPC_CheckChild0Integer, 1, ++/*413379*/ OPC_CheckChild0Type, MVT::i32, ++/*413381*/ OPC_CheckChild1Integer, 1, ++/*413383*/ OPC_CheckChild1Type, MVT::i32, ++/*413385*/ OPC_CheckChild2Integer, 1, ++/*413387*/ OPC_CheckChild2Type, MVT::i32, ++/*413389*/ OPC_CheckChild3Integer, 1, ++/*413391*/ OPC_CheckChild3Type, MVT::i32, ++/*413393*/ OPC_CheckChild4Integer, 1, ++/*413395*/ OPC_CheckChild4Type, MVT::i32, ++/*413397*/ OPC_MoveChild5, ++/*413398*/ OPC_CheckInteger, 1, ++/*413400*/ OPC_CheckType, MVT::i32, ++/*413402*/ OPC_MoveParent, ++/*413403*/ OPC_MoveChild6, ++/*413404*/ OPC_CheckInteger, 1, ++/*413406*/ OPC_CheckType, MVT::i32, ++/*413408*/ OPC_MoveParent, ++/*413409*/ OPC_MoveChild7, ++/*413410*/ OPC_CheckInteger, 1, ++/*413412*/ OPC_CheckType, MVT::i32, ++/*413414*/ OPC_MoveParent, ++/*413415*/ OPC_CheckType, MVT::v8i16, ++/*413417*/ OPC_MoveParent, ++/*413418*/ OPC_CheckType, MVT::v8i16, ++/*413420*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*413422*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$b), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*413430*/ /*Scope*/ 25|128,1/*153*/, /*->413585*/ ++/*413432*/ OPC_MoveChild0, ++/*413433*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*413436*/ OPC_CheckChild0Integer, 1, ++/*413438*/ OPC_CheckChild0Type, MVT::i32, ++/*413440*/ OPC_CheckChild1Integer, 1, ++/*413442*/ OPC_CheckChild1Type, MVT::i32, ++/*413444*/ OPC_CheckChild2Integer, 1, ++/*413446*/ OPC_CheckChild2Type, MVT::i32, ++/*413448*/ OPC_CheckChild3Integer, 1, ++/*413450*/ OPC_CheckChild3Type, MVT::i32, ++/*413452*/ OPC_CheckChild4Integer, 1, ++/*413454*/ OPC_CheckChild4Type, MVT::i32, ++/*413456*/ OPC_MoveChild5, ++/*413457*/ OPC_CheckInteger, 1, ++/*413459*/ OPC_CheckType, MVT::i32, ++/*413461*/ OPC_MoveParent, ++/*413462*/ OPC_MoveChild6, ++/*413463*/ OPC_CheckInteger, 1, ++/*413465*/ OPC_CheckType, MVT::i32, ++/*413467*/ OPC_MoveParent, ++/*413468*/ OPC_MoveChild7, ++/*413469*/ OPC_CheckInteger, 1, ++/*413471*/ OPC_CheckType, MVT::i32, ++/*413473*/ OPC_MoveParent, ++/*413474*/ OPC_MoveParent, ++/*413475*/ OPC_CheckChild1Same, 1, ++/*413477*/ OPC_MoveParent, ++/*413478*/ OPC_CheckChild1Same, 0, ++/*413480*/ OPC_MoveParent, ++/*413481*/ OPC_MoveChild1, ++/*413482*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*413485*/ OPC_CheckChild0Integer, 15, ++/*413487*/ OPC_CheckChild0Type, MVT::i32, ++/*413489*/ OPC_CheckChild1Integer, 15, ++/*413491*/ OPC_CheckChild1Type, MVT::i32, ++/*413493*/ OPC_CheckChild2Integer, 15, ++/*413495*/ OPC_CheckChild2Type, MVT::i32, ++/*413497*/ OPC_CheckChild3Integer, 15, ++/*413499*/ OPC_CheckChild3Type, MVT::i32, ++/*413501*/ OPC_CheckChild4Integer, 15, ++/*413503*/ OPC_CheckChild4Type, MVT::i32, ++/*413505*/ OPC_MoveChild5, ++/*413506*/ OPC_CheckInteger, 15, ++/*413508*/ OPC_CheckType, MVT::i32, ++/*413510*/ OPC_MoveParent, ++/*413511*/ OPC_MoveChild6, ++/*413512*/ OPC_CheckInteger, 15, ++/*413514*/ OPC_CheckType, MVT::i32, ++/*413516*/ OPC_MoveParent, ++/*413517*/ OPC_MoveChild7, ++/*413518*/ OPC_CheckInteger, 15, ++/*413520*/ OPC_CheckType, MVT::i32, ++/*413522*/ OPC_MoveParent, ++/*413523*/ OPC_CheckType, MVT::v8i16, ++/*413525*/ OPC_MoveParent, ++/*413526*/ OPC_MoveParent, ++/*413527*/ OPC_MoveParent, ++/*413528*/ OPC_MoveChild1, ++/*413529*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*413532*/ OPC_CheckChild0Integer, 1, ++/*413534*/ OPC_CheckChild0Type, MVT::i32, ++/*413536*/ OPC_CheckChild1Integer, 1, ++/*413538*/ OPC_CheckChild1Type, MVT::i32, ++/*413540*/ OPC_CheckChild2Integer, 1, ++/*413542*/ OPC_CheckChild2Type, MVT::i32, ++/*413544*/ OPC_CheckChild3Integer, 1, ++/*413546*/ OPC_CheckChild3Type, MVT::i32, ++/*413548*/ OPC_CheckChild4Integer, 1, ++/*413550*/ OPC_CheckChild4Type, MVT::i32, ++/*413552*/ OPC_MoveChild5, ++/*413553*/ OPC_CheckInteger, 1, ++/*413555*/ OPC_CheckType, MVT::i32, ++/*413557*/ OPC_MoveParent, ++/*413558*/ OPC_MoveChild6, ++/*413559*/ OPC_CheckInteger, 1, ++/*413561*/ OPC_CheckType, MVT::i32, ++/*413563*/ OPC_MoveParent, ++/*413564*/ OPC_MoveChild7, ++/*413565*/ OPC_CheckInteger, 1, ++/*413567*/ OPC_CheckType, MVT::i32, ++/*413569*/ OPC_MoveParent, ++/*413570*/ OPC_CheckType, MVT::v8i16, ++/*413572*/ OPC_MoveParent, ++/*413573*/ OPC_CheckType, MVT::v8i16, ++/*413575*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*413577*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$b), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b), LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*413585*/ /*Scope*/ 25|128,1/*153*/, /*->413740*/ ++/*413587*/ OPC_CheckChild0Same, 1, ++/*413589*/ OPC_MoveChild1, ++/*413590*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*413593*/ OPC_CheckChild0Integer, 1, ++/*413595*/ OPC_CheckChild0Type, MVT::i32, ++/*413597*/ OPC_CheckChild1Integer, 1, ++/*413599*/ OPC_CheckChild1Type, MVT::i32, ++/*413601*/ OPC_CheckChild2Integer, 1, ++/*413603*/ OPC_CheckChild2Type, MVT::i32, ++/*413605*/ OPC_CheckChild3Integer, 1, ++/*413607*/ OPC_CheckChild3Type, MVT::i32, ++/*413609*/ OPC_CheckChild4Integer, 1, ++/*413611*/ OPC_CheckChild4Type, MVT::i32, ++/*413613*/ OPC_MoveChild5, ++/*413614*/ OPC_CheckInteger, 1, ++/*413616*/ OPC_CheckType, MVT::i32, ++/*413618*/ OPC_MoveParent, ++/*413619*/ OPC_MoveChild6, ++/*413620*/ OPC_CheckInteger, 1, ++/*413622*/ OPC_CheckType, MVT::i32, ++/*413624*/ OPC_MoveParent, ++/*413625*/ OPC_MoveChild7, ++/*413626*/ OPC_CheckInteger, 1, ++/*413628*/ OPC_CheckType, MVT::i32, ++/*413630*/ OPC_MoveParent, ++/*413631*/ OPC_MoveParent, ++/*413632*/ OPC_MoveParent, ++/*413633*/ OPC_CheckChild1Same, 0, ++/*413635*/ OPC_MoveParent, ++/*413636*/ OPC_MoveChild1, ++/*413637*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*413640*/ OPC_CheckChild0Integer, 15, ++/*413642*/ OPC_CheckChild0Type, MVT::i32, ++/*413644*/ OPC_CheckChild1Integer, 15, ++/*413646*/ OPC_CheckChild1Type, MVT::i32, ++/*413648*/ OPC_CheckChild2Integer, 15, ++/*413650*/ OPC_CheckChild2Type, MVT::i32, ++/*413652*/ OPC_CheckChild3Integer, 15, ++/*413654*/ OPC_CheckChild3Type, MVT::i32, ++/*413656*/ OPC_CheckChild4Integer, 15, ++/*413658*/ OPC_CheckChild4Type, MVT::i32, ++/*413660*/ OPC_MoveChild5, ++/*413661*/ OPC_CheckInteger, 15, ++/*413663*/ OPC_CheckType, MVT::i32, ++/*413665*/ OPC_MoveParent, ++/*413666*/ OPC_MoveChild6, ++/*413667*/ OPC_CheckInteger, 15, ++/*413669*/ OPC_CheckType, MVT::i32, ++/*413671*/ OPC_MoveParent, ++/*413672*/ OPC_MoveChild7, ++/*413673*/ OPC_CheckInteger, 15, ++/*413675*/ OPC_CheckType, MVT::i32, ++/*413677*/ OPC_MoveParent, ++/*413678*/ OPC_CheckType, MVT::v8i16, ++/*413680*/ OPC_MoveParent, ++/*413681*/ OPC_MoveParent, ++/*413682*/ OPC_MoveParent, ++/*413683*/ OPC_MoveChild1, ++/*413684*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*413687*/ OPC_CheckChild0Integer, 1, ++/*413689*/ OPC_CheckChild0Type, MVT::i32, ++/*413691*/ OPC_CheckChild1Integer, 1, ++/*413693*/ OPC_CheckChild1Type, MVT::i32, ++/*413695*/ OPC_CheckChild2Integer, 1, ++/*413697*/ OPC_CheckChild2Type, MVT::i32, ++/*413699*/ OPC_CheckChild3Integer, 1, ++/*413701*/ OPC_CheckChild3Type, MVT::i32, ++/*413703*/ OPC_CheckChild4Integer, 1, ++/*413705*/ OPC_CheckChild4Type, MVT::i32, ++/*413707*/ OPC_MoveChild5, ++/*413708*/ OPC_CheckInteger, 1, ++/*413710*/ OPC_CheckType, MVT::i32, ++/*413712*/ OPC_MoveParent, ++/*413713*/ OPC_MoveChild6, ++/*413714*/ OPC_CheckInteger, 1, ++/*413716*/ OPC_CheckType, MVT::i32, ++/*413718*/ OPC_MoveParent, ++/*413719*/ OPC_MoveChild7, ++/*413720*/ OPC_CheckInteger, 1, ++/*413722*/ OPC_CheckType, MVT::i32, ++/*413724*/ OPC_MoveParent, ++/*413725*/ OPC_CheckType, MVT::v8i16, ++/*413727*/ OPC_MoveParent, ++/*413728*/ OPC_CheckType, MVT::v8i16, ++/*413730*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*413732*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$b), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*413740*/ /*Scope*/ 25|128,1/*153*/, /*->413895*/ ++/*413742*/ OPC_CheckChild0Same, 0, ++/*413744*/ OPC_CheckChild1Same, 1, ++/*413746*/ OPC_MoveParent, ++/*413747*/ OPC_MoveChild1, ++/*413748*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*413751*/ OPC_CheckChild0Integer, 1, ++/*413753*/ OPC_CheckChild0Type, MVT::i32, ++/*413755*/ OPC_CheckChild1Integer, 1, ++/*413757*/ OPC_CheckChild1Type, MVT::i32, ++/*413759*/ OPC_CheckChild2Integer, 1, ++/*413761*/ OPC_CheckChild2Type, MVT::i32, ++/*413763*/ OPC_CheckChild3Integer, 1, ++/*413765*/ OPC_CheckChild3Type, MVT::i32, ++/*413767*/ OPC_CheckChild4Integer, 1, ++/*413769*/ OPC_CheckChild4Type, MVT::i32, ++/*413771*/ OPC_MoveChild5, ++/*413772*/ OPC_CheckInteger, 1, ++/*413774*/ OPC_CheckType, MVT::i32, ++/*413776*/ OPC_MoveParent, ++/*413777*/ OPC_MoveChild6, ++/*413778*/ OPC_CheckInteger, 1, ++/*413780*/ OPC_CheckType, MVT::i32, ++/*413782*/ OPC_MoveParent, ++/*413783*/ OPC_MoveChild7, ++/*413784*/ OPC_CheckInteger, 1, ++/*413786*/ OPC_CheckType, MVT::i32, ++/*413788*/ OPC_MoveParent, ++/*413789*/ OPC_MoveParent, ++/*413790*/ OPC_MoveParent, ++/*413791*/ OPC_MoveChild1, ++/*413792*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*413795*/ OPC_CheckChild0Integer, 15, ++/*413797*/ OPC_CheckChild0Type, MVT::i32, ++/*413799*/ OPC_CheckChild1Integer, 15, ++/*413801*/ OPC_CheckChild1Type, MVT::i32, ++/*413803*/ OPC_CheckChild2Integer, 15, ++/*413805*/ OPC_CheckChild2Type, MVT::i32, ++/*413807*/ OPC_CheckChild3Integer, 15, ++/*413809*/ OPC_CheckChild3Type, MVT::i32, ++/*413811*/ OPC_CheckChild4Integer, 15, ++/*413813*/ OPC_CheckChild4Type, MVT::i32, ++/*413815*/ OPC_MoveChild5, ++/*413816*/ OPC_CheckInteger, 15, ++/*413818*/ OPC_CheckType, MVT::i32, ++/*413820*/ OPC_MoveParent, ++/*413821*/ OPC_MoveChild6, ++/*413822*/ OPC_CheckInteger, 15, ++/*413824*/ OPC_CheckType, MVT::i32, ++/*413826*/ OPC_MoveParent, ++/*413827*/ OPC_MoveChild7, ++/*413828*/ OPC_CheckInteger, 15, ++/*413830*/ OPC_CheckType, MVT::i32, ++/*413832*/ OPC_MoveParent, ++/*413833*/ OPC_CheckType, MVT::v8i16, ++/*413835*/ OPC_MoveParent, ++/*413836*/ OPC_MoveParent, ++/*413837*/ OPC_MoveParent, ++/*413838*/ OPC_MoveChild1, ++/*413839*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*413842*/ OPC_CheckChild0Integer, 1, ++/*413844*/ OPC_CheckChild0Type, MVT::i32, ++/*413846*/ OPC_CheckChild1Integer, 1, ++/*413848*/ OPC_CheckChild1Type, MVT::i32, ++/*413850*/ OPC_CheckChild2Integer, 1, ++/*413852*/ OPC_CheckChild2Type, MVT::i32, ++/*413854*/ OPC_CheckChild3Integer, 1, ++/*413856*/ OPC_CheckChild3Type, MVT::i32, ++/*413858*/ OPC_CheckChild4Integer, 1, ++/*413860*/ OPC_CheckChild4Type, MVT::i32, ++/*413862*/ OPC_MoveChild5, ++/*413863*/ OPC_CheckInteger, 1, ++/*413865*/ OPC_CheckType, MVT::i32, ++/*413867*/ OPC_MoveParent, ++/*413868*/ OPC_MoveChild6, ++/*413869*/ OPC_CheckInteger, 1, ++/*413871*/ OPC_CheckType, MVT::i32, ++/*413873*/ OPC_MoveParent, ++/*413874*/ OPC_MoveChild7, ++/*413875*/ OPC_CheckInteger, 1, ++/*413877*/ OPC_CheckType, MVT::i32, ++/*413879*/ OPC_MoveParent, ++/*413880*/ OPC_CheckType, MVT::v8i16, ++/*413882*/ OPC_MoveParent, ++/*413883*/ OPC_CheckType, MVT::v8i16, ++/*413885*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*413887*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$b), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*413895*/ /*Scope*/ 25|128,1/*153*/, /*->414050*/ ++/*413897*/ OPC_CheckChild0Same, 1, ++/*413899*/ OPC_CheckChild1Same, 0, ++/*413901*/ OPC_MoveParent, ++/*413902*/ OPC_MoveChild1, ++/*413903*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*413906*/ OPC_CheckChild0Integer, 1, ++/*413908*/ OPC_CheckChild0Type, MVT::i32, ++/*413910*/ OPC_CheckChild1Integer, 1, ++/*413912*/ OPC_CheckChild1Type, MVT::i32, ++/*413914*/ OPC_CheckChild2Integer, 1, ++/*413916*/ OPC_CheckChild2Type, MVT::i32, ++/*413918*/ OPC_CheckChild3Integer, 1, ++/*413920*/ OPC_CheckChild3Type, MVT::i32, ++/*413922*/ OPC_CheckChild4Integer, 1, ++/*413924*/ OPC_CheckChild4Type, MVT::i32, ++/*413926*/ OPC_MoveChild5, ++/*413927*/ OPC_CheckInteger, 1, ++/*413929*/ OPC_CheckType, MVT::i32, ++/*413931*/ OPC_MoveParent, ++/*413932*/ OPC_MoveChild6, ++/*413933*/ OPC_CheckInteger, 1, ++/*413935*/ OPC_CheckType, MVT::i32, ++/*413937*/ OPC_MoveParent, ++/*413938*/ OPC_MoveChild7, ++/*413939*/ OPC_CheckInteger, 1, ++/*413941*/ OPC_CheckType, MVT::i32, ++/*413943*/ OPC_MoveParent, ++/*413944*/ OPC_MoveParent, ++/*413945*/ OPC_MoveParent, ++/*413946*/ OPC_MoveChild1, ++/*413947*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*413950*/ OPC_CheckChild0Integer, 15, ++/*413952*/ OPC_CheckChild0Type, MVT::i32, ++/*413954*/ OPC_CheckChild1Integer, 15, ++/*413956*/ OPC_CheckChild1Type, MVT::i32, ++/*413958*/ OPC_CheckChild2Integer, 15, ++/*413960*/ OPC_CheckChild2Type, MVT::i32, ++/*413962*/ OPC_CheckChild3Integer, 15, ++/*413964*/ OPC_CheckChild3Type, MVT::i32, ++/*413966*/ OPC_CheckChild4Integer, 15, ++/*413968*/ OPC_CheckChild4Type, MVT::i32, ++/*413970*/ OPC_MoveChild5, ++/*413971*/ OPC_CheckInteger, 15, ++/*413973*/ OPC_CheckType, MVT::i32, ++/*413975*/ OPC_MoveParent, ++/*413976*/ OPC_MoveChild6, ++/*413977*/ OPC_CheckInteger, 15, ++/*413979*/ OPC_CheckType, MVT::i32, ++/*413981*/ OPC_MoveParent, ++/*413982*/ OPC_MoveChild7, ++/*413983*/ OPC_CheckInteger, 15, ++/*413985*/ OPC_CheckType, MVT::i32, ++/*413987*/ OPC_MoveParent, ++/*413988*/ OPC_CheckType, MVT::v8i16, ++/*413990*/ OPC_MoveParent, ++/*413991*/ OPC_MoveParent, ++/*413992*/ OPC_MoveParent, ++/*413993*/ OPC_MoveChild1, ++/*413994*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*413997*/ OPC_CheckChild0Integer, 1, ++/*413999*/ OPC_CheckChild0Type, MVT::i32, ++/*414001*/ OPC_CheckChild1Integer, 1, ++/*414003*/ OPC_CheckChild1Type, MVT::i32, ++/*414005*/ OPC_CheckChild2Integer, 1, ++/*414007*/ OPC_CheckChild2Type, MVT::i32, ++/*414009*/ OPC_CheckChild3Integer, 1, ++/*414011*/ OPC_CheckChild3Type, MVT::i32, ++/*414013*/ OPC_CheckChild4Integer, 1, ++/*414015*/ OPC_CheckChild4Type, MVT::i32, ++/*414017*/ OPC_MoveChild5, ++/*414018*/ OPC_CheckInteger, 1, ++/*414020*/ OPC_CheckType, MVT::i32, ++/*414022*/ OPC_MoveParent, ++/*414023*/ OPC_MoveChild6, ++/*414024*/ OPC_CheckInteger, 1, ++/*414026*/ OPC_CheckType, MVT::i32, ++/*414028*/ OPC_MoveParent, ++/*414029*/ OPC_MoveChild7, ++/*414030*/ OPC_CheckInteger, 1, ++/*414032*/ OPC_CheckType, MVT::i32, ++/*414034*/ OPC_MoveParent, ++/*414035*/ OPC_CheckType, MVT::v8i16, ++/*414037*/ OPC_MoveParent, ++/*414038*/ OPC_CheckType, MVT::v8i16, ++/*414040*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*414042*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$b), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*414050*/ 0, /*End of Scope*/ ++/*414051*/ /*Scope*/ 58|128,2/*314*/, /*->414367*/ ++/*414053*/ OPC_CheckChild0Same, 1, ++/*414055*/ OPC_MoveChild1, ++/*414056*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*414059*/ OPC_Scope, 23|128,1/*151*/, /*->414213*/ // 2 children in Scope ++/*414062*/ OPC_MoveChild0, ++/*414063*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*414066*/ OPC_CheckChild0Integer, 1, ++/*414068*/ OPC_CheckChild0Type, MVT::i32, ++/*414070*/ OPC_CheckChild1Integer, 1, ++/*414072*/ OPC_CheckChild1Type, MVT::i32, ++/*414074*/ OPC_CheckChild2Integer, 1, ++/*414076*/ OPC_CheckChild2Type, MVT::i32, ++/*414078*/ OPC_CheckChild3Integer, 1, ++/*414080*/ OPC_CheckChild3Type, MVT::i32, ++/*414082*/ OPC_CheckChild4Integer, 1, ++/*414084*/ OPC_CheckChild4Type, MVT::i32, ++/*414086*/ OPC_MoveChild5, ++/*414087*/ OPC_CheckInteger, 1, ++/*414089*/ OPC_CheckType, MVT::i32, ++/*414091*/ OPC_MoveParent, ++/*414092*/ OPC_MoveChild6, ++/*414093*/ OPC_CheckInteger, 1, ++/*414095*/ OPC_CheckType, MVT::i32, ++/*414097*/ OPC_MoveParent, ++/*414098*/ OPC_MoveChild7, ++/*414099*/ OPC_CheckInteger, 1, ++/*414101*/ OPC_CheckType, MVT::i32, ++/*414103*/ OPC_MoveParent, ++/*414104*/ OPC_MoveParent, ++/*414105*/ OPC_CheckChild1Same, 0, ++/*414107*/ OPC_MoveParent, ++/*414108*/ OPC_MoveParent, ++/*414109*/ OPC_MoveChild1, ++/*414110*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*414113*/ OPC_CheckChild0Integer, 15, ++/*414115*/ OPC_CheckChild0Type, MVT::i32, ++/*414117*/ OPC_CheckChild1Integer, 15, ++/*414119*/ OPC_CheckChild1Type, MVT::i32, ++/*414121*/ OPC_CheckChild2Integer, 15, ++/*414123*/ OPC_CheckChild2Type, MVT::i32, ++/*414125*/ OPC_CheckChild3Integer, 15, ++/*414127*/ OPC_CheckChild3Type, MVT::i32, ++/*414129*/ OPC_CheckChild4Integer, 15, ++/*414131*/ OPC_CheckChild4Type, MVT::i32, ++/*414133*/ OPC_MoveChild5, ++/*414134*/ OPC_CheckInteger, 15, ++/*414136*/ OPC_CheckType, MVT::i32, ++/*414138*/ OPC_MoveParent, ++/*414139*/ OPC_MoveChild6, ++/*414140*/ OPC_CheckInteger, 15, ++/*414142*/ OPC_CheckType, MVT::i32, ++/*414144*/ OPC_MoveParent, ++/*414145*/ OPC_MoveChild7, ++/*414146*/ OPC_CheckInteger, 15, ++/*414148*/ OPC_CheckType, MVT::i32, ++/*414150*/ OPC_MoveParent, ++/*414151*/ OPC_CheckType, MVT::v8i16, ++/*414153*/ OPC_MoveParent, ++/*414154*/ OPC_MoveParent, ++/*414155*/ OPC_MoveParent, ++/*414156*/ OPC_MoveChild1, ++/*414157*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*414160*/ OPC_CheckChild0Integer, 1, ++/*414162*/ OPC_CheckChild0Type, MVT::i32, ++/*414164*/ OPC_CheckChild1Integer, 1, ++/*414166*/ OPC_CheckChild1Type, MVT::i32, ++/*414168*/ OPC_CheckChild2Integer, 1, ++/*414170*/ OPC_CheckChild2Type, MVT::i32, ++/*414172*/ OPC_CheckChild3Integer, 1, ++/*414174*/ OPC_CheckChild3Type, MVT::i32, ++/*414176*/ OPC_CheckChild4Integer, 1, ++/*414178*/ OPC_CheckChild4Type, MVT::i32, ++/*414180*/ OPC_MoveChild5, ++/*414181*/ OPC_CheckInteger, 1, ++/*414183*/ OPC_CheckType, MVT::i32, ++/*414185*/ OPC_MoveParent, ++/*414186*/ OPC_MoveChild6, ++/*414187*/ OPC_CheckInteger, 1, ++/*414189*/ OPC_CheckType, MVT::i32, ++/*414191*/ OPC_MoveParent, ++/*414192*/ OPC_MoveChild7, ++/*414193*/ OPC_CheckInteger, 1, ++/*414195*/ OPC_CheckType, MVT::i32, ++/*414197*/ OPC_MoveParent, ++/*414198*/ OPC_CheckType, MVT::v8i16, ++/*414200*/ OPC_MoveParent, ++/*414201*/ OPC_CheckType, MVT::v8i16, ++/*414203*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*414205*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$b), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*414213*/ /*Scope*/ 23|128,1/*151*/, /*->414366*/ ++/*414215*/ OPC_CheckChild0Same, 0, ++/*414217*/ OPC_MoveChild1, ++/*414218*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*414221*/ OPC_CheckChild0Integer, 1, ++/*414223*/ OPC_CheckChild0Type, MVT::i32, ++/*414225*/ OPC_CheckChild1Integer, 1, ++/*414227*/ OPC_CheckChild1Type, MVT::i32, ++/*414229*/ OPC_CheckChild2Integer, 1, ++/*414231*/ OPC_CheckChild2Type, MVT::i32, ++/*414233*/ OPC_CheckChild3Integer, 1, ++/*414235*/ OPC_CheckChild3Type, MVT::i32, ++/*414237*/ OPC_CheckChild4Integer, 1, ++/*414239*/ OPC_CheckChild4Type, MVT::i32, ++/*414241*/ OPC_MoveChild5, ++/*414242*/ OPC_CheckInteger, 1, ++/*414244*/ OPC_CheckType, MVT::i32, ++/*414246*/ OPC_MoveParent, ++/*414247*/ OPC_MoveChild6, ++/*414248*/ OPC_CheckInteger, 1, ++/*414250*/ OPC_CheckType, MVT::i32, ++/*414252*/ OPC_MoveParent, ++/*414253*/ OPC_MoveChild7, ++/*414254*/ OPC_CheckInteger, 1, ++/*414256*/ OPC_CheckType, MVT::i32, ++/*414258*/ OPC_MoveParent, ++/*414259*/ OPC_MoveParent, ++/*414260*/ OPC_MoveParent, ++/*414261*/ OPC_MoveParent, ++/*414262*/ OPC_MoveChild1, ++/*414263*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*414266*/ OPC_CheckChild0Integer, 15, ++/*414268*/ OPC_CheckChild0Type, MVT::i32, ++/*414270*/ OPC_CheckChild1Integer, 15, ++/*414272*/ OPC_CheckChild1Type, MVT::i32, ++/*414274*/ OPC_CheckChild2Integer, 15, ++/*414276*/ OPC_CheckChild2Type, MVT::i32, ++/*414278*/ OPC_CheckChild3Integer, 15, ++/*414280*/ OPC_CheckChild3Type, MVT::i32, ++/*414282*/ OPC_CheckChild4Integer, 15, ++/*414284*/ OPC_CheckChild4Type, MVT::i32, ++/*414286*/ OPC_MoveChild5, ++/*414287*/ OPC_CheckInteger, 15, ++/*414289*/ OPC_CheckType, MVT::i32, ++/*414291*/ OPC_MoveParent, ++/*414292*/ OPC_MoveChild6, ++/*414293*/ OPC_CheckInteger, 15, ++/*414295*/ OPC_CheckType, MVT::i32, ++/*414297*/ OPC_MoveParent, ++/*414298*/ OPC_MoveChild7, ++/*414299*/ OPC_CheckInteger, 15, ++/*414301*/ OPC_CheckType, MVT::i32, ++/*414303*/ OPC_MoveParent, ++/*414304*/ OPC_CheckType, MVT::v8i16, ++/*414306*/ OPC_MoveParent, ++/*414307*/ OPC_MoveParent, ++/*414308*/ OPC_MoveParent, ++/*414309*/ OPC_MoveChild1, ++/*414310*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*414313*/ OPC_CheckChild0Integer, 1, ++/*414315*/ OPC_CheckChild0Type, MVT::i32, ++/*414317*/ OPC_CheckChild1Integer, 1, ++/*414319*/ OPC_CheckChild1Type, MVT::i32, ++/*414321*/ OPC_CheckChild2Integer, 1, ++/*414323*/ OPC_CheckChild2Type, MVT::i32, ++/*414325*/ OPC_CheckChild3Integer, 1, ++/*414327*/ OPC_CheckChild3Type, MVT::i32, ++/*414329*/ OPC_CheckChild4Integer, 1, ++/*414331*/ OPC_CheckChild4Type, MVT::i32, ++/*414333*/ OPC_MoveChild5, ++/*414334*/ OPC_CheckInteger, 1, ++/*414336*/ OPC_CheckType, MVT::i32, ++/*414338*/ OPC_MoveParent, ++/*414339*/ OPC_MoveChild6, ++/*414340*/ OPC_CheckInteger, 1, ++/*414342*/ OPC_CheckType, MVT::i32, ++/*414344*/ OPC_MoveParent, ++/*414345*/ OPC_MoveChild7, ++/*414346*/ OPC_CheckInteger, 1, ++/*414348*/ OPC_CheckType, MVT::i32, ++/*414350*/ OPC_MoveParent, ++/*414351*/ OPC_CheckType, MVT::v8i16, ++/*414353*/ OPC_MoveParent, ++/*414354*/ OPC_CheckType, MVT::v8i16, ++/*414356*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*414358*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$b), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*414366*/ 0, /*End of Scope*/ ++/*414367*/ /*Scope*/ 58|128,2/*314*/, /*->414683*/ ++/*414369*/ OPC_CheckChild0Same, 0, ++/*414371*/ OPC_MoveChild1, ++/*414372*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*414375*/ OPC_Scope, 23|128,1/*151*/, /*->414529*/ // 2 children in Scope ++/*414378*/ OPC_MoveChild0, ++/*414379*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*414382*/ OPC_CheckChild0Integer, 1, ++/*414384*/ OPC_CheckChild0Type, MVT::i32, ++/*414386*/ OPC_CheckChild1Integer, 1, ++/*414388*/ OPC_CheckChild1Type, MVT::i32, ++/*414390*/ OPC_CheckChild2Integer, 1, ++/*414392*/ OPC_CheckChild2Type, MVT::i32, ++/*414394*/ OPC_CheckChild3Integer, 1, ++/*414396*/ OPC_CheckChild3Type, MVT::i32, ++/*414398*/ OPC_CheckChild4Integer, 1, ++/*414400*/ OPC_CheckChild4Type, MVT::i32, ++/*414402*/ OPC_MoveChild5, ++/*414403*/ OPC_CheckInteger, 1, ++/*414405*/ OPC_CheckType, MVT::i32, ++/*414407*/ OPC_MoveParent, ++/*414408*/ OPC_MoveChild6, ++/*414409*/ OPC_CheckInteger, 1, ++/*414411*/ OPC_CheckType, MVT::i32, ++/*414413*/ OPC_MoveParent, ++/*414414*/ OPC_MoveChild7, ++/*414415*/ OPC_CheckInteger, 1, ++/*414417*/ OPC_CheckType, MVT::i32, ++/*414419*/ OPC_MoveParent, ++/*414420*/ OPC_MoveParent, ++/*414421*/ OPC_CheckChild1Same, 1, ++/*414423*/ OPC_MoveParent, ++/*414424*/ OPC_MoveParent, ++/*414425*/ OPC_MoveChild1, ++/*414426*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*414429*/ OPC_CheckChild0Integer, 15, ++/*414431*/ OPC_CheckChild0Type, MVT::i32, ++/*414433*/ OPC_CheckChild1Integer, 15, ++/*414435*/ OPC_CheckChild1Type, MVT::i32, ++/*414437*/ OPC_CheckChild2Integer, 15, ++/*414439*/ OPC_CheckChild2Type, MVT::i32, ++/*414441*/ OPC_CheckChild3Integer, 15, ++/*414443*/ OPC_CheckChild3Type, MVT::i32, ++/*414445*/ OPC_CheckChild4Integer, 15, ++/*414447*/ OPC_CheckChild4Type, MVT::i32, ++/*414449*/ OPC_MoveChild5, ++/*414450*/ OPC_CheckInteger, 15, ++/*414452*/ OPC_CheckType, MVT::i32, ++/*414454*/ OPC_MoveParent, ++/*414455*/ OPC_MoveChild6, ++/*414456*/ OPC_CheckInteger, 15, ++/*414458*/ OPC_CheckType, MVT::i32, ++/*414460*/ OPC_MoveParent, ++/*414461*/ OPC_MoveChild7, ++/*414462*/ OPC_CheckInteger, 15, ++/*414464*/ OPC_CheckType, MVT::i32, ++/*414466*/ OPC_MoveParent, ++/*414467*/ OPC_CheckType, MVT::v8i16, ++/*414469*/ OPC_MoveParent, ++/*414470*/ OPC_MoveParent, ++/*414471*/ OPC_MoveParent, ++/*414472*/ OPC_MoveChild1, ++/*414473*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*414476*/ OPC_CheckChild0Integer, 1, ++/*414478*/ OPC_CheckChild0Type, MVT::i32, ++/*414480*/ OPC_CheckChild1Integer, 1, ++/*414482*/ OPC_CheckChild1Type, MVT::i32, ++/*414484*/ OPC_CheckChild2Integer, 1, ++/*414486*/ OPC_CheckChild2Type, MVT::i32, ++/*414488*/ OPC_CheckChild3Integer, 1, ++/*414490*/ OPC_CheckChild3Type, MVT::i32, ++/*414492*/ OPC_CheckChild4Integer, 1, ++/*414494*/ OPC_CheckChild4Type, MVT::i32, ++/*414496*/ OPC_MoveChild5, ++/*414497*/ OPC_CheckInteger, 1, ++/*414499*/ OPC_CheckType, MVT::i32, ++/*414501*/ OPC_MoveParent, ++/*414502*/ OPC_MoveChild6, ++/*414503*/ OPC_CheckInteger, 1, ++/*414505*/ OPC_CheckType, MVT::i32, ++/*414507*/ OPC_MoveParent, ++/*414508*/ OPC_MoveChild7, ++/*414509*/ OPC_CheckInteger, 1, ++/*414511*/ OPC_CheckType, MVT::i32, ++/*414513*/ OPC_MoveParent, ++/*414514*/ OPC_CheckType, MVT::v8i16, ++/*414516*/ OPC_MoveParent, ++/*414517*/ OPC_CheckType, MVT::v8i16, ++/*414519*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*414521*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$b), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*414529*/ /*Scope*/ 23|128,1/*151*/, /*->414682*/ ++/*414531*/ OPC_CheckChild0Same, 1, ++/*414533*/ OPC_MoveChild1, ++/*414534*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*414537*/ OPC_CheckChild0Integer, 1, ++/*414539*/ OPC_CheckChild0Type, MVT::i32, ++/*414541*/ OPC_CheckChild1Integer, 1, ++/*414543*/ OPC_CheckChild1Type, MVT::i32, ++/*414545*/ OPC_CheckChild2Integer, 1, ++/*414547*/ OPC_CheckChild2Type, MVT::i32, ++/*414549*/ OPC_CheckChild3Integer, 1, ++/*414551*/ OPC_CheckChild3Type, MVT::i32, ++/*414553*/ OPC_CheckChild4Integer, 1, ++/*414555*/ OPC_CheckChild4Type, MVT::i32, ++/*414557*/ OPC_MoveChild5, ++/*414558*/ OPC_CheckInteger, 1, ++/*414560*/ OPC_CheckType, MVT::i32, ++/*414562*/ OPC_MoveParent, ++/*414563*/ OPC_MoveChild6, ++/*414564*/ OPC_CheckInteger, 1, ++/*414566*/ OPC_CheckType, MVT::i32, ++/*414568*/ OPC_MoveParent, ++/*414569*/ OPC_MoveChild7, ++/*414570*/ OPC_CheckInteger, 1, ++/*414572*/ OPC_CheckType, MVT::i32, ++/*414574*/ OPC_MoveParent, ++/*414575*/ OPC_MoveParent, ++/*414576*/ OPC_MoveParent, ++/*414577*/ OPC_MoveParent, ++/*414578*/ OPC_MoveChild1, ++/*414579*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*414582*/ OPC_CheckChild0Integer, 15, ++/*414584*/ OPC_CheckChild0Type, MVT::i32, ++/*414586*/ OPC_CheckChild1Integer, 15, ++/*414588*/ OPC_CheckChild1Type, MVT::i32, ++/*414590*/ OPC_CheckChild2Integer, 15, ++/*414592*/ OPC_CheckChild2Type, MVT::i32, ++/*414594*/ OPC_CheckChild3Integer, 15, ++/*414596*/ OPC_CheckChild3Type, MVT::i32, ++/*414598*/ OPC_CheckChild4Integer, 15, ++/*414600*/ OPC_CheckChild4Type, MVT::i32, ++/*414602*/ OPC_MoveChild5, ++/*414603*/ OPC_CheckInteger, 15, ++/*414605*/ OPC_CheckType, MVT::i32, ++/*414607*/ OPC_MoveParent, ++/*414608*/ OPC_MoveChild6, ++/*414609*/ OPC_CheckInteger, 15, ++/*414611*/ OPC_CheckType, MVT::i32, ++/*414613*/ OPC_MoveParent, ++/*414614*/ OPC_MoveChild7, ++/*414615*/ OPC_CheckInteger, 15, ++/*414617*/ OPC_CheckType, MVT::i32, ++/*414619*/ OPC_MoveParent, ++/*414620*/ OPC_CheckType, MVT::v8i16, ++/*414622*/ OPC_MoveParent, ++/*414623*/ OPC_MoveParent, ++/*414624*/ OPC_MoveParent, ++/*414625*/ OPC_MoveChild1, ++/*414626*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*414629*/ OPC_CheckChild0Integer, 1, ++/*414631*/ OPC_CheckChild0Type, MVT::i32, ++/*414633*/ OPC_CheckChild1Integer, 1, ++/*414635*/ OPC_CheckChild1Type, MVT::i32, ++/*414637*/ OPC_CheckChild2Integer, 1, ++/*414639*/ OPC_CheckChild2Type, MVT::i32, ++/*414641*/ OPC_CheckChild3Integer, 1, ++/*414643*/ OPC_CheckChild3Type, MVT::i32, ++/*414645*/ OPC_CheckChild4Integer, 1, ++/*414647*/ OPC_CheckChild4Type, MVT::i32, ++/*414649*/ OPC_MoveChild5, ++/*414650*/ OPC_CheckInteger, 1, ++/*414652*/ OPC_CheckType, MVT::i32, ++/*414654*/ OPC_MoveParent, ++/*414655*/ OPC_MoveChild6, ++/*414656*/ OPC_CheckInteger, 1, ++/*414658*/ OPC_CheckType, MVT::i32, ++/*414660*/ OPC_MoveParent, ++/*414661*/ OPC_MoveChild7, ++/*414662*/ OPC_CheckInteger, 1, ++/*414664*/ OPC_CheckType, MVT::i32, ++/*414666*/ OPC_MoveParent, ++/*414667*/ OPC_CheckType, MVT::v8i16, ++/*414669*/ OPC_MoveParent, ++/*414670*/ OPC_CheckType, MVT::v8i16, ++/*414672*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*414674*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$b), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*414682*/ 0, /*End of Scope*/ ++/*414683*/ /*Scope*/ 15|128,2/*271*/, /*->414956*/ ++/*414685*/ OPC_MoveChild0, ++/*414686*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*414689*/ OPC_CheckChild0Integer, 1, ++/*414691*/ OPC_CheckChild0Type, MVT::i32, ++/*414693*/ OPC_CheckChild1Integer, 1, ++/*414695*/ OPC_CheckChild1Type, MVT::i32, ++/*414697*/ OPC_CheckChild2Integer, 1, ++/*414699*/ OPC_CheckChild2Type, MVT::i32, ++/*414701*/ OPC_CheckChild3Integer, 1, ++/*414703*/ OPC_CheckChild3Type, MVT::i32, ++/*414705*/ OPC_CheckChild4Integer, 1, ++/*414707*/ OPC_CheckChild4Type, MVT::i32, ++/*414709*/ OPC_MoveChild5, ++/*414710*/ OPC_CheckInteger, 1, ++/*414712*/ OPC_CheckType, MVT::i32, ++/*414714*/ OPC_MoveParent, ++/*414715*/ OPC_MoveChild6, ++/*414716*/ OPC_CheckInteger, 1, ++/*414718*/ OPC_CheckType, MVT::i32, ++/*414720*/ OPC_MoveParent, ++/*414721*/ OPC_MoveChild7, ++/*414722*/ OPC_CheckInteger, 1, ++/*414724*/ OPC_CheckType, MVT::i32, ++/*414726*/ OPC_MoveParent, ++/*414727*/ OPC_MoveParent, ++/*414728*/ OPC_MoveChild1, ++/*414729*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*414732*/ OPC_Scope, 110, /*->414844*/ // 2 children in Scope ++/*414734*/ OPC_CheckChild0Same, 0, ++/*414736*/ OPC_CheckChild1Same, 1, ++/*414738*/ OPC_MoveParent, ++/*414739*/ OPC_MoveParent, ++/*414740*/ OPC_MoveChild1, ++/*414741*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*414744*/ OPC_CheckChild0Integer, 15, ++/*414746*/ OPC_CheckChild0Type, MVT::i32, ++/*414748*/ OPC_CheckChild1Integer, 15, ++/*414750*/ OPC_CheckChild1Type, MVT::i32, ++/*414752*/ OPC_CheckChild2Integer, 15, ++/*414754*/ OPC_CheckChild2Type, MVT::i32, ++/*414756*/ OPC_CheckChild3Integer, 15, ++/*414758*/ OPC_CheckChild3Type, MVT::i32, ++/*414760*/ OPC_CheckChild4Integer, 15, ++/*414762*/ OPC_CheckChild4Type, MVT::i32, ++/*414764*/ OPC_MoveChild5, ++/*414765*/ OPC_CheckInteger, 15, ++/*414767*/ OPC_CheckType, MVT::i32, ++/*414769*/ OPC_MoveParent, ++/*414770*/ OPC_MoveChild6, ++/*414771*/ OPC_CheckInteger, 15, ++/*414773*/ OPC_CheckType, MVT::i32, ++/*414775*/ OPC_MoveParent, ++/*414776*/ OPC_MoveChild7, ++/*414777*/ OPC_CheckInteger, 15, ++/*414779*/ OPC_CheckType, MVT::i32, ++/*414781*/ OPC_MoveParent, ++/*414782*/ OPC_CheckType, MVT::v8i16, ++/*414784*/ OPC_MoveParent, ++/*414785*/ OPC_MoveParent, ++/*414786*/ OPC_MoveParent, ++/*414787*/ OPC_MoveChild1, ++/*414788*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*414791*/ OPC_CheckChild0Integer, 1, ++/*414793*/ OPC_CheckChild0Type, MVT::i32, ++/*414795*/ OPC_CheckChild1Integer, 1, ++/*414797*/ OPC_CheckChild1Type, MVT::i32, ++/*414799*/ OPC_CheckChild2Integer, 1, ++/*414801*/ OPC_CheckChild2Type, MVT::i32, ++/*414803*/ OPC_CheckChild3Integer, 1, ++/*414805*/ OPC_CheckChild3Type, MVT::i32, ++/*414807*/ OPC_CheckChild4Integer, 1, ++/*414809*/ OPC_CheckChild4Type, MVT::i32, ++/*414811*/ OPC_MoveChild5, ++/*414812*/ OPC_CheckInteger, 1, ++/*414814*/ OPC_CheckType, MVT::i32, ++/*414816*/ OPC_MoveParent, ++/*414817*/ OPC_MoveChild6, ++/*414818*/ OPC_CheckInteger, 1, ++/*414820*/ OPC_CheckType, MVT::i32, ++/*414822*/ OPC_MoveParent, ++/*414823*/ OPC_MoveChild7, ++/*414824*/ OPC_CheckInteger, 1, ++/*414826*/ OPC_CheckType, MVT::i32, ++/*414828*/ OPC_MoveParent, ++/*414829*/ OPC_CheckType, MVT::v8i16, ++/*414831*/ OPC_MoveParent, ++/*414832*/ OPC_CheckType, MVT::v8i16, ++/*414834*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*414836*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$b), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*414844*/ /*Scope*/ 110, /*->414955*/ ++/*414845*/ OPC_CheckChild0Same, 1, ++/*414847*/ OPC_CheckChild1Same, 0, ++/*414849*/ OPC_MoveParent, ++/*414850*/ OPC_MoveParent, ++/*414851*/ OPC_MoveChild1, ++/*414852*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*414855*/ OPC_CheckChild0Integer, 15, ++/*414857*/ OPC_CheckChild0Type, MVT::i32, ++/*414859*/ OPC_CheckChild1Integer, 15, ++/*414861*/ OPC_CheckChild1Type, MVT::i32, ++/*414863*/ OPC_CheckChild2Integer, 15, ++/*414865*/ OPC_CheckChild2Type, MVT::i32, ++/*414867*/ OPC_CheckChild3Integer, 15, ++/*414869*/ OPC_CheckChild3Type, MVT::i32, ++/*414871*/ OPC_CheckChild4Integer, 15, ++/*414873*/ OPC_CheckChild4Type, MVT::i32, ++/*414875*/ OPC_MoveChild5, ++/*414876*/ OPC_CheckInteger, 15, ++/*414878*/ OPC_CheckType, MVT::i32, ++/*414880*/ OPC_MoveParent, ++/*414881*/ OPC_MoveChild6, ++/*414882*/ OPC_CheckInteger, 15, ++/*414884*/ OPC_CheckType, MVT::i32, ++/*414886*/ OPC_MoveParent, ++/*414887*/ OPC_MoveChild7, ++/*414888*/ OPC_CheckInteger, 15, ++/*414890*/ OPC_CheckType, MVT::i32, ++/*414892*/ OPC_MoveParent, ++/*414893*/ OPC_CheckType, MVT::v8i16, ++/*414895*/ OPC_MoveParent, ++/*414896*/ OPC_MoveParent, ++/*414897*/ OPC_MoveParent, ++/*414898*/ OPC_MoveChild1, ++/*414899*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*414902*/ OPC_CheckChild0Integer, 1, ++/*414904*/ OPC_CheckChild0Type, MVT::i32, ++/*414906*/ OPC_CheckChild1Integer, 1, ++/*414908*/ OPC_CheckChild1Type, MVT::i32, ++/*414910*/ OPC_CheckChild2Integer, 1, ++/*414912*/ OPC_CheckChild2Type, MVT::i32, ++/*414914*/ OPC_CheckChild3Integer, 1, ++/*414916*/ OPC_CheckChild3Type, MVT::i32, ++/*414918*/ OPC_CheckChild4Integer, 1, ++/*414920*/ OPC_CheckChild4Type, MVT::i32, ++/*414922*/ OPC_MoveChild5, ++/*414923*/ OPC_CheckInteger, 1, ++/*414925*/ OPC_CheckType, MVT::i32, ++/*414927*/ OPC_MoveParent, ++/*414928*/ OPC_MoveChild6, ++/*414929*/ OPC_CheckInteger, 1, ++/*414931*/ OPC_CheckType, MVT::i32, ++/*414933*/ OPC_MoveParent, ++/*414934*/ OPC_MoveChild7, ++/*414935*/ OPC_CheckInteger, 1, ++/*414937*/ OPC_CheckType, MVT::i32, ++/*414939*/ OPC_MoveParent, ++/*414940*/ OPC_CheckType, MVT::v8i16, ++/*414942*/ OPC_MoveParent, ++/*414943*/ OPC_CheckType, MVT::v8i16, ++/*414945*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*414947*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$b), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*414955*/ 0, /*End of Scope*/ ++/*414956*/ 0, /*End of Scope*/ ++/*414957*/ /*Scope*/ 108|128,14/*1900*/, /*->416859*/ ++/*414959*/ OPC_MoveChild0, ++/*414960*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*414963*/ OPC_CheckChild0Integer, 1, ++/*414965*/ OPC_CheckChild0Type, MVT::i32, ++/*414967*/ OPC_CheckChild1Integer, 1, ++/*414969*/ OPC_CheckChild1Type, MVT::i32, ++/*414971*/ OPC_CheckChild2Integer, 1, ++/*414973*/ OPC_CheckChild2Type, MVT::i32, ++/*414975*/ OPC_CheckChild3Integer, 1, ++/*414977*/ OPC_CheckChild3Type, MVT::i32, ++/*414979*/ OPC_CheckChild4Integer, 1, ++/*414981*/ OPC_CheckChild4Type, MVT::i32, ++/*414983*/ OPC_MoveChild5, ++/*414984*/ OPC_CheckInteger, 1, ++/*414986*/ OPC_CheckType, MVT::i32, ++/*414988*/ OPC_MoveParent, ++/*414989*/ OPC_MoveChild6, ++/*414990*/ OPC_CheckInteger, 1, ++/*414992*/ OPC_CheckType, MVT::i32, ++/*414994*/ OPC_MoveParent, ++/*414995*/ OPC_MoveChild7, ++/*414996*/ OPC_CheckInteger, 1, ++/*414998*/ OPC_CheckType, MVT::i32, ++/*415000*/ OPC_MoveParent, ++/*415001*/ OPC_MoveParent, ++/*415002*/ OPC_RecordChild1, // #0 = $b ++/*415003*/ OPC_MoveParent, ++/*415004*/ OPC_RecordChild1, // #1 = $a ++/*415005*/ OPC_MoveParent, ++/*415006*/ OPC_MoveChild1, ++/*415007*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*415010*/ OPC_MoveChild0, ++/*415011*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*415014*/ OPC_Scope, 40|128,7/*936*/, /*->415953*/ // 4 children in Scope ++/*415017*/ OPC_MoveChild0, ++/*415018*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*415021*/ OPC_Scope, 25|128,1/*153*/, /*->415177*/ // 6 children in Scope ++/*415024*/ OPC_MoveChild0, ++/*415025*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*415028*/ OPC_CheckChild0Integer, 1, ++/*415030*/ OPC_CheckChild0Type, MVT::i32, ++/*415032*/ OPC_CheckChild1Integer, 1, ++/*415034*/ OPC_CheckChild1Type, MVT::i32, ++/*415036*/ OPC_CheckChild2Integer, 1, ++/*415038*/ OPC_CheckChild2Type, MVT::i32, ++/*415040*/ OPC_CheckChild3Integer, 1, ++/*415042*/ OPC_CheckChild3Type, MVT::i32, ++/*415044*/ OPC_CheckChild4Integer, 1, ++/*415046*/ OPC_CheckChild4Type, MVT::i32, ++/*415048*/ OPC_MoveChild5, ++/*415049*/ OPC_CheckInteger, 1, ++/*415051*/ OPC_CheckType, MVT::i32, ++/*415053*/ OPC_MoveParent, ++/*415054*/ OPC_MoveChild6, ++/*415055*/ OPC_CheckInteger, 1, ++/*415057*/ OPC_CheckType, MVT::i32, ++/*415059*/ OPC_MoveParent, ++/*415060*/ OPC_MoveChild7, ++/*415061*/ OPC_CheckInteger, 1, ++/*415063*/ OPC_CheckType, MVT::i32, ++/*415065*/ OPC_MoveParent, ++/*415066*/ OPC_MoveParent, ++/*415067*/ OPC_CheckChild1Same, 1, ++/*415069*/ OPC_MoveParent, ++/*415070*/ OPC_CheckChild1Same, 0, ++/*415072*/ OPC_MoveParent, ++/*415073*/ OPC_MoveChild1, ++/*415074*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*415077*/ OPC_CheckChild0Integer, 15, ++/*415079*/ OPC_CheckChild0Type, MVT::i32, ++/*415081*/ OPC_CheckChild1Integer, 15, ++/*415083*/ OPC_CheckChild1Type, MVT::i32, ++/*415085*/ OPC_CheckChild2Integer, 15, ++/*415087*/ OPC_CheckChild2Type, MVT::i32, ++/*415089*/ OPC_CheckChild3Integer, 15, ++/*415091*/ OPC_CheckChild3Type, MVT::i32, ++/*415093*/ OPC_CheckChild4Integer, 15, ++/*415095*/ OPC_CheckChild4Type, MVT::i32, ++/*415097*/ OPC_MoveChild5, ++/*415098*/ OPC_CheckInteger, 15, ++/*415100*/ OPC_CheckType, MVT::i32, ++/*415102*/ OPC_MoveParent, ++/*415103*/ OPC_MoveChild6, ++/*415104*/ OPC_CheckInteger, 15, ++/*415106*/ OPC_CheckType, MVT::i32, ++/*415108*/ OPC_MoveParent, ++/*415109*/ OPC_MoveChild7, ++/*415110*/ OPC_CheckInteger, 15, ++/*415112*/ OPC_CheckType, MVT::i32, ++/*415114*/ OPC_MoveParent, ++/*415115*/ OPC_CheckType, MVT::v8i16, ++/*415117*/ OPC_MoveParent, ++/*415118*/ OPC_MoveParent, ++/*415119*/ OPC_MoveParent, ++/*415120*/ OPC_MoveChild1, ++/*415121*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*415124*/ OPC_CheckChild0Integer, 1, ++/*415126*/ OPC_CheckChild0Type, MVT::i32, ++/*415128*/ OPC_CheckChild1Integer, 1, ++/*415130*/ OPC_CheckChild1Type, MVT::i32, ++/*415132*/ OPC_CheckChild2Integer, 1, ++/*415134*/ OPC_CheckChild2Type, MVT::i32, ++/*415136*/ OPC_CheckChild3Integer, 1, ++/*415138*/ OPC_CheckChild3Type, MVT::i32, ++/*415140*/ OPC_CheckChild4Integer, 1, ++/*415142*/ OPC_CheckChild4Type, MVT::i32, ++/*415144*/ OPC_MoveChild5, ++/*415145*/ OPC_CheckInteger, 1, ++/*415147*/ OPC_CheckType, MVT::i32, ++/*415149*/ OPC_MoveParent, ++/*415150*/ OPC_MoveChild6, ++/*415151*/ OPC_CheckInteger, 1, ++/*415153*/ OPC_CheckType, MVT::i32, ++/*415155*/ OPC_MoveParent, ++/*415156*/ OPC_MoveChild7, ++/*415157*/ OPC_CheckInteger, 1, ++/*415159*/ OPC_CheckType, MVT::i32, ++/*415161*/ OPC_MoveParent, ++/*415162*/ OPC_CheckType, MVT::v8i16, ++/*415164*/ OPC_MoveParent, ++/*415165*/ OPC_CheckType, MVT::v8i16, ++/*415167*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*415169*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b), LSX128H:{ *:[v8i16] }:$a), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a), LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*415177*/ /*Scope*/ 25|128,1/*153*/, /*->415332*/ ++/*415179*/ OPC_CheckChild0Same, 1, ++/*415181*/ OPC_MoveChild1, ++/*415182*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*415185*/ OPC_CheckChild0Integer, 1, ++/*415187*/ OPC_CheckChild0Type, MVT::i32, ++/*415189*/ OPC_CheckChild1Integer, 1, ++/*415191*/ OPC_CheckChild1Type, MVT::i32, ++/*415193*/ OPC_CheckChild2Integer, 1, ++/*415195*/ OPC_CheckChild2Type, MVT::i32, ++/*415197*/ OPC_CheckChild3Integer, 1, ++/*415199*/ OPC_CheckChild3Type, MVT::i32, ++/*415201*/ OPC_CheckChild4Integer, 1, ++/*415203*/ OPC_CheckChild4Type, MVT::i32, ++/*415205*/ OPC_MoveChild5, ++/*415206*/ OPC_CheckInteger, 1, ++/*415208*/ OPC_CheckType, MVT::i32, ++/*415210*/ OPC_MoveParent, ++/*415211*/ OPC_MoveChild6, ++/*415212*/ OPC_CheckInteger, 1, ++/*415214*/ OPC_CheckType, MVT::i32, ++/*415216*/ OPC_MoveParent, ++/*415217*/ OPC_MoveChild7, ++/*415218*/ OPC_CheckInteger, 1, ++/*415220*/ OPC_CheckType, MVT::i32, ++/*415222*/ OPC_MoveParent, ++/*415223*/ OPC_MoveParent, ++/*415224*/ OPC_MoveParent, ++/*415225*/ OPC_CheckChild1Same, 0, ++/*415227*/ OPC_MoveParent, ++/*415228*/ OPC_MoveChild1, ++/*415229*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*415232*/ OPC_CheckChild0Integer, 15, ++/*415234*/ OPC_CheckChild0Type, MVT::i32, ++/*415236*/ OPC_CheckChild1Integer, 15, ++/*415238*/ OPC_CheckChild1Type, MVT::i32, ++/*415240*/ OPC_CheckChild2Integer, 15, ++/*415242*/ OPC_CheckChild2Type, MVT::i32, ++/*415244*/ OPC_CheckChild3Integer, 15, ++/*415246*/ OPC_CheckChild3Type, MVT::i32, ++/*415248*/ OPC_CheckChild4Integer, 15, ++/*415250*/ OPC_CheckChild4Type, MVT::i32, ++/*415252*/ OPC_MoveChild5, ++/*415253*/ OPC_CheckInteger, 15, ++/*415255*/ OPC_CheckType, MVT::i32, ++/*415257*/ OPC_MoveParent, ++/*415258*/ OPC_MoveChild6, ++/*415259*/ OPC_CheckInteger, 15, ++/*415261*/ OPC_CheckType, MVT::i32, ++/*415263*/ OPC_MoveParent, ++/*415264*/ OPC_MoveChild7, ++/*415265*/ OPC_CheckInteger, 15, ++/*415267*/ OPC_CheckType, MVT::i32, ++/*415269*/ OPC_MoveParent, ++/*415270*/ OPC_CheckType, MVT::v8i16, ++/*415272*/ OPC_MoveParent, ++/*415273*/ OPC_MoveParent, ++/*415274*/ OPC_MoveParent, ++/*415275*/ OPC_MoveChild1, ++/*415276*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*415279*/ OPC_CheckChild0Integer, 1, ++/*415281*/ OPC_CheckChild0Type, MVT::i32, ++/*415283*/ OPC_CheckChild1Integer, 1, ++/*415285*/ OPC_CheckChild1Type, MVT::i32, ++/*415287*/ OPC_CheckChild2Integer, 1, ++/*415289*/ OPC_CheckChild2Type, MVT::i32, ++/*415291*/ OPC_CheckChild3Integer, 1, ++/*415293*/ OPC_CheckChild3Type, MVT::i32, ++/*415295*/ OPC_CheckChild4Integer, 1, ++/*415297*/ OPC_CheckChild4Type, MVT::i32, ++/*415299*/ OPC_MoveChild5, ++/*415300*/ OPC_CheckInteger, 1, ++/*415302*/ OPC_CheckType, MVT::i32, ++/*415304*/ OPC_MoveParent, ++/*415305*/ OPC_MoveChild6, ++/*415306*/ OPC_CheckInteger, 1, ++/*415308*/ OPC_CheckType, MVT::i32, ++/*415310*/ OPC_MoveParent, ++/*415311*/ OPC_MoveChild7, ++/*415312*/ OPC_CheckInteger, 1, ++/*415314*/ OPC_CheckType, MVT::i32, ++/*415316*/ OPC_MoveParent, ++/*415317*/ OPC_CheckType, MVT::v8i16, ++/*415319*/ OPC_MoveParent, ++/*415320*/ OPC_CheckType, MVT::v8i16, ++/*415322*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*415324*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b), LSX128H:{ *:[v8i16] }:$a), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*415332*/ /*Scope*/ 25|128,1/*153*/, /*->415487*/ ++/*415334*/ OPC_MoveChild0, ++/*415335*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*415338*/ OPC_CheckChild0Integer, 1, ++/*415340*/ OPC_CheckChild0Type, MVT::i32, ++/*415342*/ OPC_CheckChild1Integer, 1, ++/*415344*/ OPC_CheckChild1Type, MVT::i32, ++/*415346*/ OPC_CheckChild2Integer, 1, ++/*415348*/ OPC_CheckChild2Type, MVT::i32, ++/*415350*/ OPC_CheckChild3Integer, 1, ++/*415352*/ OPC_CheckChild3Type, MVT::i32, ++/*415354*/ OPC_CheckChild4Integer, 1, ++/*415356*/ OPC_CheckChild4Type, MVT::i32, ++/*415358*/ OPC_MoveChild5, ++/*415359*/ OPC_CheckInteger, 1, ++/*415361*/ OPC_CheckType, MVT::i32, ++/*415363*/ OPC_MoveParent, ++/*415364*/ OPC_MoveChild6, ++/*415365*/ OPC_CheckInteger, 1, ++/*415367*/ OPC_CheckType, MVT::i32, ++/*415369*/ OPC_MoveParent, ++/*415370*/ OPC_MoveChild7, ++/*415371*/ OPC_CheckInteger, 1, ++/*415373*/ OPC_CheckType, MVT::i32, ++/*415375*/ OPC_MoveParent, ++/*415376*/ OPC_MoveParent, ++/*415377*/ OPC_CheckChild1Same, 0, ++/*415379*/ OPC_MoveParent, ++/*415380*/ OPC_CheckChild1Same, 1, ++/*415382*/ OPC_MoveParent, ++/*415383*/ OPC_MoveChild1, ++/*415384*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*415387*/ OPC_CheckChild0Integer, 15, ++/*415389*/ OPC_CheckChild0Type, MVT::i32, ++/*415391*/ OPC_CheckChild1Integer, 15, ++/*415393*/ OPC_CheckChild1Type, MVT::i32, ++/*415395*/ OPC_CheckChild2Integer, 15, ++/*415397*/ OPC_CheckChild2Type, MVT::i32, ++/*415399*/ OPC_CheckChild3Integer, 15, ++/*415401*/ OPC_CheckChild3Type, MVT::i32, ++/*415403*/ OPC_CheckChild4Integer, 15, ++/*415405*/ OPC_CheckChild4Type, MVT::i32, ++/*415407*/ OPC_MoveChild5, ++/*415408*/ OPC_CheckInteger, 15, ++/*415410*/ OPC_CheckType, MVT::i32, ++/*415412*/ OPC_MoveParent, ++/*415413*/ OPC_MoveChild6, ++/*415414*/ OPC_CheckInteger, 15, ++/*415416*/ OPC_CheckType, MVT::i32, ++/*415418*/ OPC_MoveParent, ++/*415419*/ OPC_MoveChild7, ++/*415420*/ OPC_CheckInteger, 15, ++/*415422*/ OPC_CheckType, MVT::i32, ++/*415424*/ OPC_MoveParent, ++/*415425*/ OPC_CheckType, MVT::v8i16, ++/*415427*/ OPC_MoveParent, ++/*415428*/ OPC_MoveParent, ++/*415429*/ OPC_MoveParent, ++/*415430*/ OPC_MoveChild1, ++/*415431*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*415434*/ OPC_CheckChild0Integer, 1, ++/*415436*/ OPC_CheckChild0Type, MVT::i32, ++/*415438*/ OPC_CheckChild1Integer, 1, ++/*415440*/ OPC_CheckChild1Type, MVT::i32, ++/*415442*/ OPC_CheckChild2Integer, 1, ++/*415444*/ OPC_CheckChild2Type, MVT::i32, ++/*415446*/ OPC_CheckChild3Integer, 1, ++/*415448*/ OPC_CheckChild3Type, MVT::i32, ++/*415450*/ OPC_CheckChild4Integer, 1, ++/*415452*/ OPC_CheckChild4Type, MVT::i32, ++/*415454*/ OPC_MoveChild5, ++/*415455*/ OPC_CheckInteger, 1, ++/*415457*/ OPC_CheckType, MVT::i32, ++/*415459*/ OPC_MoveParent, ++/*415460*/ OPC_MoveChild6, ++/*415461*/ OPC_CheckInteger, 1, ++/*415463*/ OPC_CheckType, MVT::i32, ++/*415465*/ OPC_MoveParent, ++/*415466*/ OPC_MoveChild7, ++/*415467*/ OPC_CheckInteger, 1, ++/*415469*/ OPC_CheckType, MVT::i32, ++/*415471*/ OPC_MoveParent, ++/*415472*/ OPC_CheckType, MVT::v8i16, ++/*415474*/ OPC_MoveParent, ++/*415475*/ OPC_CheckType, MVT::v8i16, ++/*415477*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*415479*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b), LSX128H:{ *:[v8i16] }:$a), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b), LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*415487*/ /*Scope*/ 25|128,1/*153*/, /*->415642*/ ++/*415489*/ OPC_CheckChild0Same, 0, ++/*415491*/ OPC_MoveChild1, ++/*415492*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*415495*/ OPC_CheckChild0Integer, 1, ++/*415497*/ OPC_CheckChild0Type, MVT::i32, ++/*415499*/ OPC_CheckChild1Integer, 1, ++/*415501*/ OPC_CheckChild1Type, MVT::i32, ++/*415503*/ OPC_CheckChild2Integer, 1, ++/*415505*/ OPC_CheckChild2Type, MVT::i32, ++/*415507*/ OPC_CheckChild3Integer, 1, ++/*415509*/ OPC_CheckChild3Type, MVT::i32, ++/*415511*/ OPC_CheckChild4Integer, 1, ++/*415513*/ OPC_CheckChild4Type, MVT::i32, ++/*415515*/ OPC_MoveChild5, ++/*415516*/ OPC_CheckInteger, 1, ++/*415518*/ OPC_CheckType, MVT::i32, ++/*415520*/ OPC_MoveParent, ++/*415521*/ OPC_MoveChild6, ++/*415522*/ OPC_CheckInteger, 1, ++/*415524*/ OPC_CheckType, MVT::i32, ++/*415526*/ OPC_MoveParent, ++/*415527*/ OPC_MoveChild7, ++/*415528*/ OPC_CheckInteger, 1, ++/*415530*/ OPC_CheckType, MVT::i32, ++/*415532*/ OPC_MoveParent, ++/*415533*/ OPC_MoveParent, ++/*415534*/ OPC_MoveParent, ++/*415535*/ OPC_CheckChild1Same, 1, ++/*415537*/ OPC_MoveParent, ++/*415538*/ OPC_MoveChild1, ++/*415539*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*415542*/ OPC_CheckChild0Integer, 15, ++/*415544*/ OPC_CheckChild0Type, MVT::i32, ++/*415546*/ OPC_CheckChild1Integer, 15, ++/*415548*/ OPC_CheckChild1Type, MVT::i32, ++/*415550*/ OPC_CheckChild2Integer, 15, ++/*415552*/ OPC_CheckChild2Type, MVT::i32, ++/*415554*/ OPC_CheckChild3Integer, 15, ++/*415556*/ OPC_CheckChild3Type, MVT::i32, ++/*415558*/ OPC_CheckChild4Integer, 15, ++/*415560*/ OPC_CheckChild4Type, MVT::i32, ++/*415562*/ OPC_MoveChild5, ++/*415563*/ OPC_CheckInteger, 15, ++/*415565*/ OPC_CheckType, MVT::i32, ++/*415567*/ OPC_MoveParent, ++/*415568*/ OPC_MoveChild6, ++/*415569*/ OPC_CheckInteger, 15, ++/*415571*/ OPC_CheckType, MVT::i32, ++/*415573*/ OPC_MoveParent, ++/*415574*/ OPC_MoveChild7, ++/*415575*/ OPC_CheckInteger, 15, ++/*415577*/ OPC_CheckType, MVT::i32, ++/*415579*/ OPC_MoveParent, ++/*415580*/ OPC_CheckType, MVT::v8i16, ++/*415582*/ OPC_MoveParent, ++/*415583*/ OPC_MoveParent, ++/*415584*/ OPC_MoveParent, ++/*415585*/ OPC_MoveChild1, ++/*415586*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*415589*/ OPC_CheckChild0Integer, 1, ++/*415591*/ OPC_CheckChild0Type, MVT::i32, ++/*415593*/ OPC_CheckChild1Integer, 1, ++/*415595*/ OPC_CheckChild1Type, MVT::i32, ++/*415597*/ OPC_CheckChild2Integer, 1, ++/*415599*/ OPC_CheckChild2Type, MVT::i32, ++/*415601*/ OPC_CheckChild3Integer, 1, ++/*415603*/ OPC_CheckChild3Type, MVT::i32, ++/*415605*/ OPC_CheckChild4Integer, 1, ++/*415607*/ OPC_CheckChild4Type, MVT::i32, ++/*415609*/ OPC_MoveChild5, ++/*415610*/ OPC_CheckInteger, 1, ++/*415612*/ OPC_CheckType, MVT::i32, ++/*415614*/ OPC_MoveParent, ++/*415615*/ OPC_MoveChild6, ++/*415616*/ OPC_CheckInteger, 1, ++/*415618*/ OPC_CheckType, MVT::i32, ++/*415620*/ OPC_MoveParent, ++/*415621*/ OPC_MoveChild7, ++/*415622*/ OPC_CheckInteger, 1, ++/*415624*/ OPC_CheckType, MVT::i32, ++/*415626*/ OPC_MoveParent, ++/*415627*/ OPC_CheckType, MVT::v8i16, ++/*415629*/ OPC_MoveParent, ++/*415630*/ OPC_CheckType, MVT::v8i16, ++/*415632*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*415634*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b), LSX128H:{ *:[v8i16] }:$a), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*415642*/ /*Scope*/ 25|128,1/*153*/, /*->415797*/ ++/*415644*/ OPC_CheckChild0Same, 1, ++/*415646*/ OPC_CheckChild1Same, 0, ++/*415648*/ OPC_MoveParent, ++/*415649*/ OPC_MoveChild1, ++/*415650*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*415653*/ OPC_CheckChild0Integer, 1, ++/*415655*/ OPC_CheckChild0Type, MVT::i32, ++/*415657*/ OPC_CheckChild1Integer, 1, ++/*415659*/ OPC_CheckChild1Type, MVT::i32, ++/*415661*/ OPC_CheckChild2Integer, 1, ++/*415663*/ OPC_CheckChild2Type, MVT::i32, ++/*415665*/ OPC_CheckChild3Integer, 1, ++/*415667*/ OPC_CheckChild3Type, MVT::i32, ++/*415669*/ OPC_CheckChild4Integer, 1, ++/*415671*/ OPC_CheckChild4Type, MVT::i32, ++/*415673*/ OPC_MoveChild5, ++/*415674*/ OPC_CheckInteger, 1, ++/*415676*/ OPC_CheckType, MVT::i32, ++/*415678*/ OPC_MoveParent, ++/*415679*/ OPC_MoveChild6, ++/*415680*/ OPC_CheckInteger, 1, ++/*415682*/ OPC_CheckType, MVT::i32, ++/*415684*/ OPC_MoveParent, ++/*415685*/ OPC_MoveChild7, ++/*415686*/ OPC_CheckInteger, 1, ++/*415688*/ OPC_CheckType, MVT::i32, ++/*415690*/ OPC_MoveParent, ++/*415691*/ OPC_MoveParent, ++/*415692*/ OPC_MoveParent, ++/*415693*/ OPC_MoveChild1, ++/*415694*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*415697*/ OPC_CheckChild0Integer, 15, ++/*415699*/ OPC_CheckChild0Type, MVT::i32, ++/*415701*/ OPC_CheckChild1Integer, 15, ++/*415703*/ OPC_CheckChild1Type, MVT::i32, ++/*415705*/ OPC_CheckChild2Integer, 15, ++/*415707*/ OPC_CheckChild2Type, MVT::i32, ++/*415709*/ OPC_CheckChild3Integer, 15, ++/*415711*/ OPC_CheckChild3Type, MVT::i32, ++/*415713*/ OPC_CheckChild4Integer, 15, ++/*415715*/ OPC_CheckChild4Type, MVT::i32, ++/*415717*/ OPC_MoveChild5, ++/*415718*/ OPC_CheckInteger, 15, ++/*415720*/ OPC_CheckType, MVT::i32, ++/*415722*/ OPC_MoveParent, ++/*415723*/ OPC_MoveChild6, ++/*415724*/ OPC_CheckInteger, 15, ++/*415726*/ OPC_CheckType, MVT::i32, ++/*415728*/ OPC_MoveParent, ++/*415729*/ OPC_MoveChild7, ++/*415730*/ OPC_CheckInteger, 15, ++/*415732*/ OPC_CheckType, MVT::i32, ++/*415734*/ OPC_MoveParent, ++/*415735*/ OPC_CheckType, MVT::v8i16, ++/*415737*/ OPC_MoveParent, ++/*415738*/ OPC_MoveParent, ++/*415739*/ OPC_MoveParent, ++/*415740*/ OPC_MoveChild1, ++/*415741*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*415744*/ OPC_CheckChild0Integer, 1, ++/*415746*/ OPC_CheckChild0Type, MVT::i32, ++/*415748*/ OPC_CheckChild1Integer, 1, ++/*415750*/ OPC_CheckChild1Type, MVT::i32, ++/*415752*/ OPC_CheckChild2Integer, 1, ++/*415754*/ OPC_CheckChild2Type, MVT::i32, ++/*415756*/ OPC_CheckChild3Integer, 1, ++/*415758*/ OPC_CheckChild3Type, MVT::i32, ++/*415760*/ OPC_CheckChild4Integer, 1, ++/*415762*/ OPC_CheckChild4Type, MVT::i32, ++/*415764*/ OPC_MoveChild5, ++/*415765*/ OPC_CheckInteger, 1, ++/*415767*/ OPC_CheckType, MVT::i32, ++/*415769*/ OPC_MoveParent, ++/*415770*/ OPC_MoveChild6, ++/*415771*/ OPC_CheckInteger, 1, ++/*415773*/ OPC_CheckType, MVT::i32, ++/*415775*/ OPC_MoveParent, ++/*415776*/ OPC_MoveChild7, ++/*415777*/ OPC_CheckInteger, 1, ++/*415779*/ OPC_CheckType, MVT::i32, ++/*415781*/ OPC_MoveParent, ++/*415782*/ OPC_CheckType, MVT::v8i16, ++/*415784*/ OPC_MoveParent, ++/*415785*/ OPC_CheckType, MVT::v8i16, ++/*415787*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*415789*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b), LSX128H:{ *:[v8i16] }:$a), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*415797*/ /*Scope*/ 25|128,1/*153*/, /*->415952*/ ++/*415799*/ OPC_CheckChild0Same, 0, ++/*415801*/ OPC_CheckChild1Same, 1, ++/*415803*/ OPC_MoveParent, ++/*415804*/ OPC_MoveChild1, ++/*415805*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*415808*/ OPC_CheckChild0Integer, 1, ++/*415810*/ OPC_CheckChild0Type, MVT::i32, ++/*415812*/ OPC_CheckChild1Integer, 1, ++/*415814*/ OPC_CheckChild1Type, MVT::i32, ++/*415816*/ OPC_CheckChild2Integer, 1, ++/*415818*/ OPC_CheckChild2Type, MVT::i32, ++/*415820*/ OPC_CheckChild3Integer, 1, ++/*415822*/ OPC_CheckChild3Type, MVT::i32, ++/*415824*/ OPC_CheckChild4Integer, 1, ++/*415826*/ OPC_CheckChild4Type, MVT::i32, ++/*415828*/ OPC_MoveChild5, ++/*415829*/ OPC_CheckInteger, 1, ++/*415831*/ OPC_CheckType, MVT::i32, ++/*415833*/ OPC_MoveParent, ++/*415834*/ OPC_MoveChild6, ++/*415835*/ OPC_CheckInteger, 1, ++/*415837*/ OPC_CheckType, MVT::i32, ++/*415839*/ OPC_MoveParent, ++/*415840*/ OPC_MoveChild7, ++/*415841*/ OPC_CheckInteger, 1, ++/*415843*/ OPC_CheckType, MVT::i32, ++/*415845*/ OPC_MoveParent, ++/*415846*/ OPC_MoveParent, ++/*415847*/ OPC_MoveParent, ++/*415848*/ OPC_MoveChild1, ++/*415849*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*415852*/ OPC_CheckChild0Integer, 15, ++/*415854*/ OPC_CheckChild0Type, MVT::i32, ++/*415856*/ OPC_CheckChild1Integer, 15, ++/*415858*/ OPC_CheckChild1Type, MVT::i32, ++/*415860*/ OPC_CheckChild2Integer, 15, ++/*415862*/ OPC_CheckChild2Type, MVT::i32, ++/*415864*/ OPC_CheckChild3Integer, 15, ++/*415866*/ OPC_CheckChild3Type, MVT::i32, ++/*415868*/ OPC_CheckChild4Integer, 15, ++/*415870*/ OPC_CheckChild4Type, MVT::i32, ++/*415872*/ OPC_MoveChild5, ++/*415873*/ OPC_CheckInteger, 15, ++/*415875*/ OPC_CheckType, MVT::i32, ++/*415877*/ OPC_MoveParent, ++/*415878*/ OPC_MoveChild6, ++/*415879*/ OPC_CheckInteger, 15, ++/*415881*/ OPC_CheckType, MVT::i32, ++/*415883*/ OPC_MoveParent, ++/*415884*/ OPC_MoveChild7, ++/*415885*/ OPC_CheckInteger, 15, ++/*415887*/ OPC_CheckType, MVT::i32, ++/*415889*/ OPC_MoveParent, ++/*415890*/ OPC_CheckType, MVT::v8i16, ++/*415892*/ OPC_MoveParent, ++/*415893*/ OPC_MoveParent, ++/*415894*/ OPC_MoveParent, ++/*415895*/ OPC_MoveChild1, ++/*415896*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*415899*/ OPC_CheckChild0Integer, 1, ++/*415901*/ OPC_CheckChild0Type, MVT::i32, ++/*415903*/ OPC_CheckChild1Integer, 1, ++/*415905*/ OPC_CheckChild1Type, MVT::i32, ++/*415907*/ OPC_CheckChild2Integer, 1, ++/*415909*/ OPC_CheckChild2Type, MVT::i32, ++/*415911*/ OPC_CheckChild3Integer, 1, ++/*415913*/ OPC_CheckChild3Type, MVT::i32, ++/*415915*/ OPC_CheckChild4Integer, 1, ++/*415917*/ OPC_CheckChild4Type, MVT::i32, ++/*415919*/ OPC_MoveChild5, ++/*415920*/ OPC_CheckInteger, 1, ++/*415922*/ OPC_CheckType, MVT::i32, ++/*415924*/ OPC_MoveParent, ++/*415925*/ OPC_MoveChild6, ++/*415926*/ OPC_CheckInteger, 1, ++/*415928*/ OPC_CheckType, MVT::i32, ++/*415930*/ OPC_MoveParent, ++/*415931*/ OPC_MoveChild7, ++/*415932*/ OPC_CheckInteger, 1, ++/*415934*/ OPC_CheckType, MVT::i32, ++/*415936*/ OPC_MoveParent, ++/*415937*/ OPC_CheckType, MVT::v8i16, ++/*415939*/ OPC_MoveParent, ++/*415940*/ OPC_CheckType, MVT::v8i16, ++/*415942*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*415944*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b), LSX128H:{ *:[v8i16] }:$a), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*415952*/ 0, /*End of Scope*/ ++/*415953*/ /*Scope*/ 58|128,2/*314*/, /*->416269*/ ++/*415955*/ OPC_CheckChild0Same, 0, ++/*415957*/ OPC_MoveChild1, ++/*415958*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*415961*/ OPC_Scope, 23|128,1/*151*/, /*->416115*/ // 2 children in Scope ++/*415964*/ OPC_MoveChild0, ++/*415965*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*415968*/ OPC_CheckChild0Integer, 1, ++/*415970*/ OPC_CheckChild0Type, MVT::i32, ++/*415972*/ OPC_CheckChild1Integer, 1, ++/*415974*/ OPC_CheckChild1Type, MVT::i32, ++/*415976*/ OPC_CheckChild2Integer, 1, ++/*415978*/ OPC_CheckChild2Type, MVT::i32, ++/*415980*/ OPC_CheckChild3Integer, 1, ++/*415982*/ OPC_CheckChild3Type, MVT::i32, ++/*415984*/ OPC_CheckChild4Integer, 1, ++/*415986*/ OPC_CheckChild4Type, MVT::i32, ++/*415988*/ OPC_MoveChild5, ++/*415989*/ OPC_CheckInteger, 1, ++/*415991*/ OPC_CheckType, MVT::i32, ++/*415993*/ OPC_MoveParent, ++/*415994*/ OPC_MoveChild6, ++/*415995*/ OPC_CheckInteger, 1, ++/*415997*/ OPC_CheckType, MVT::i32, ++/*415999*/ OPC_MoveParent, ++/*416000*/ OPC_MoveChild7, ++/*416001*/ OPC_CheckInteger, 1, ++/*416003*/ OPC_CheckType, MVT::i32, ++/*416005*/ OPC_MoveParent, ++/*416006*/ OPC_MoveParent, ++/*416007*/ OPC_CheckChild1Same, 1, ++/*416009*/ OPC_MoveParent, ++/*416010*/ OPC_MoveParent, ++/*416011*/ OPC_MoveChild1, ++/*416012*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*416015*/ OPC_CheckChild0Integer, 15, ++/*416017*/ OPC_CheckChild0Type, MVT::i32, ++/*416019*/ OPC_CheckChild1Integer, 15, ++/*416021*/ OPC_CheckChild1Type, MVT::i32, ++/*416023*/ OPC_CheckChild2Integer, 15, ++/*416025*/ OPC_CheckChild2Type, MVT::i32, ++/*416027*/ OPC_CheckChild3Integer, 15, ++/*416029*/ OPC_CheckChild3Type, MVT::i32, ++/*416031*/ OPC_CheckChild4Integer, 15, ++/*416033*/ OPC_CheckChild4Type, MVT::i32, ++/*416035*/ OPC_MoveChild5, ++/*416036*/ OPC_CheckInteger, 15, ++/*416038*/ OPC_CheckType, MVT::i32, ++/*416040*/ OPC_MoveParent, ++/*416041*/ OPC_MoveChild6, ++/*416042*/ OPC_CheckInteger, 15, ++/*416044*/ OPC_CheckType, MVT::i32, ++/*416046*/ OPC_MoveParent, ++/*416047*/ OPC_MoveChild7, ++/*416048*/ OPC_CheckInteger, 15, ++/*416050*/ OPC_CheckType, MVT::i32, ++/*416052*/ OPC_MoveParent, ++/*416053*/ OPC_CheckType, MVT::v8i16, ++/*416055*/ OPC_MoveParent, ++/*416056*/ OPC_MoveParent, ++/*416057*/ OPC_MoveParent, ++/*416058*/ OPC_MoveChild1, ++/*416059*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*416062*/ OPC_CheckChild0Integer, 1, ++/*416064*/ OPC_CheckChild0Type, MVT::i32, ++/*416066*/ OPC_CheckChild1Integer, 1, ++/*416068*/ OPC_CheckChild1Type, MVT::i32, ++/*416070*/ OPC_CheckChild2Integer, 1, ++/*416072*/ OPC_CheckChild2Type, MVT::i32, ++/*416074*/ OPC_CheckChild3Integer, 1, ++/*416076*/ OPC_CheckChild3Type, MVT::i32, ++/*416078*/ OPC_CheckChild4Integer, 1, ++/*416080*/ OPC_CheckChild4Type, MVT::i32, ++/*416082*/ OPC_MoveChild5, ++/*416083*/ OPC_CheckInteger, 1, ++/*416085*/ OPC_CheckType, MVT::i32, ++/*416087*/ OPC_MoveParent, ++/*416088*/ OPC_MoveChild6, ++/*416089*/ OPC_CheckInteger, 1, ++/*416091*/ OPC_CheckType, MVT::i32, ++/*416093*/ OPC_MoveParent, ++/*416094*/ OPC_MoveChild7, ++/*416095*/ OPC_CheckInteger, 1, ++/*416097*/ OPC_CheckType, MVT::i32, ++/*416099*/ OPC_MoveParent, ++/*416100*/ OPC_CheckType, MVT::v8i16, ++/*416102*/ OPC_MoveParent, ++/*416103*/ OPC_CheckType, MVT::v8i16, ++/*416105*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*416107*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b), LSX128H:{ *:[v8i16] }:$a), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*416115*/ /*Scope*/ 23|128,1/*151*/, /*->416268*/ ++/*416117*/ OPC_CheckChild0Same, 1, ++/*416119*/ OPC_MoveChild1, ++/*416120*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*416123*/ OPC_CheckChild0Integer, 1, ++/*416125*/ OPC_CheckChild0Type, MVT::i32, ++/*416127*/ OPC_CheckChild1Integer, 1, ++/*416129*/ OPC_CheckChild1Type, MVT::i32, ++/*416131*/ OPC_CheckChild2Integer, 1, ++/*416133*/ OPC_CheckChild2Type, MVT::i32, ++/*416135*/ OPC_CheckChild3Integer, 1, ++/*416137*/ OPC_CheckChild3Type, MVT::i32, ++/*416139*/ OPC_CheckChild4Integer, 1, ++/*416141*/ OPC_CheckChild4Type, MVT::i32, ++/*416143*/ OPC_MoveChild5, ++/*416144*/ OPC_CheckInteger, 1, ++/*416146*/ OPC_CheckType, MVT::i32, ++/*416148*/ OPC_MoveParent, ++/*416149*/ OPC_MoveChild6, ++/*416150*/ OPC_CheckInteger, 1, ++/*416152*/ OPC_CheckType, MVT::i32, ++/*416154*/ OPC_MoveParent, ++/*416155*/ OPC_MoveChild7, ++/*416156*/ OPC_CheckInteger, 1, ++/*416158*/ OPC_CheckType, MVT::i32, ++/*416160*/ OPC_MoveParent, ++/*416161*/ OPC_MoveParent, ++/*416162*/ OPC_MoveParent, ++/*416163*/ OPC_MoveParent, ++/*416164*/ OPC_MoveChild1, ++/*416165*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*416168*/ OPC_CheckChild0Integer, 15, ++/*416170*/ OPC_CheckChild0Type, MVT::i32, ++/*416172*/ OPC_CheckChild1Integer, 15, ++/*416174*/ OPC_CheckChild1Type, MVT::i32, ++/*416176*/ OPC_CheckChild2Integer, 15, ++/*416178*/ OPC_CheckChild2Type, MVT::i32, ++/*416180*/ OPC_CheckChild3Integer, 15, ++/*416182*/ OPC_CheckChild3Type, MVT::i32, ++/*416184*/ OPC_CheckChild4Integer, 15, ++/*416186*/ OPC_CheckChild4Type, MVT::i32, ++/*416188*/ OPC_MoveChild5, ++/*416189*/ OPC_CheckInteger, 15, ++/*416191*/ OPC_CheckType, MVT::i32, ++/*416193*/ OPC_MoveParent, ++/*416194*/ OPC_MoveChild6, ++/*416195*/ OPC_CheckInteger, 15, ++/*416197*/ OPC_CheckType, MVT::i32, ++/*416199*/ OPC_MoveParent, ++/*416200*/ OPC_MoveChild7, ++/*416201*/ OPC_CheckInteger, 15, ++/*416203*/ OPC_CheckType, MVT::i32, ++/*416205*/ OPC_MoveParent, ++/*416206*/ OPC_CheckType, MVT::v8i16, ++/*416208*/ OPC_MoveParent, ++/*416209*/ OPC_MoveParent, ++/*416210*/ OPC_MoveParent, ++/*416211*/ OPC_MoveChild1, ++/*416212*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*416215*/ OPC_CheckChild0Integer, 1, ++/*416217*/ OPC_CheckChild0Type, MVT::i32, ++/*416219*/ OPC_CheckChild1Integer, 1, ++/*416221*/ OPC_CheckChild1Type, MVT::i32, ++/*416223*/ OPC_CheckChild2Integer, 1, ++/*416225*/ OPC_CheckChild2Type, MVT::i32, ++/*416227*/ OPC_CheckChild3Integer, 1, ++/*416229*/ OPC_CheckChild3Type, MVT::i32, ++/*416231*/ OPC_CheckChild4Integer, 1, ++/*416233*/ OPC_CheckChild4Type, MVT::i32, ++/*416235*/ OPC_MoveChild5, ++/*416236*/ OPC_CheckInteger, 1, ++/*416238*/ OPC_CheckType, MVT::i32, ++/*416240*/ OPC_MoveParent, ++/*416241*/ OPC_MoveChild6, ++/*416242*/ OPC_CheckInteger, 1, ++/*416244*/ OPC_CheckType, MVT::i32, ++/*416246*/ OPC_MoveParent, ++/*416247*/ OPC_MoveChild7, ++/*416248*/ OPC_CheckInteger, 1, ++/*416250*/ OPC_CheckType, MVT::i32, ++/*416252*/ OPC_MoveParent, ++/*416253*/ OPC_CheckType, MVT::v8i16, ++/*416255*/ OPC_MoveParent, ++/*416256*/ OPC_CheckType, MVT::v8i16, ++/*416258*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*416260*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b), LSX128H:{ *:[v8i16] }:$a), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*416268*/ 0, /*End of Scope*/ ++/*416269*/ /*Scope*/ 58|128,2/*314*/, /*->416585*/ ++/*416271*/ OPC_CheckChild0Same, 1, ++/*416273*/ OPC_MoveChild1, ++/*416274*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*416277*/ OPC_Scope, 23|128,1/*151*/, /*->416431*/ // 2 children in Scope ++/*416280*/ OPC_MoveChild0, ++/*416281*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*416284*/ OPC_CheckChild0Integer, 1, ++/*416286*/ OPC_CheckChild0Type, MVT::i32, ++/*416288*/ OPC_CheckChild1Integer, 1, ++/*416290*/ OPC_CheckChild1Type, MVT::i32, ++/*416292*/ OPC_CheckChild2Integer, 1, ++/*416294*/ OPC_CheckChild2Type, MVT::i32, ++/*416296*/ OPC_CheckChild3Integer, 1, ++/*416298*/ OPC_CheckChild3Type, MVT::i32, ++/*416300*/ OPC_CheckChild4Integer, 1, ++/*416302*/ OPC_CheckChild4Type, MVT::i32, ++/*416304*/ OPC_MoveChild5, ++/*416305*/ OPC_CheckInteger, 1, ++/*416307*/ OPC_CheckType, MVT::i32, ++/*416309*/ OPC_MoveParent, ++/*416310*/ OPC_MoveChild6, ++/*416311*/ OPC_CheckInteger, 1, ++/*416313*/ OPC_CheckType, MVT::i32, ++/*416315*/ OPC_MoveParent, ++/*416316*/ OPC_MoveChild7, ++/*416317*/ OPC_CheckInteger, 1, ++/*416319*/ OPC_CheckType, MVT::i32, ++/*416321*/ OPC_MoveParent, ++/*416322*/ OPC_MoveParent, ++/*416323*/ OPC_CheckChild1Same, 0, ++/*416325*/ OPC_MoveParent, ++/*416326*/ OPC_MoveParent, ++/*416327*/ OPC_MoveChild1, ++/*416328*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*416331*/ OPC_CheckChild0Integer, 15, ++/*416333*/ OPC_CheckChild0Type, MVT::i32, ++/*416335*/ OPC_CheckChild1Integer, 15, ++/*416337*/ OPC_CheckChild1Type, MVT::i32, ++/*416339*/ OPC_CheckChild2Integer, 15, ++/*416341*/ OPC_CheckChild2Type, MVT::i32, ++/*416343*/ OPC_CheckChild3Integer, 15, ++/*416345*/ OPC_CheckChild3Type, MVT::i32, ++/*416347*/ OPC_CheckChild4Integer, 15, ++/*416349*/ OPC_CheckChild4Type, MVT::i32, ++/*416351*/ OPC_MoveChild5, ++/*416352*/ OPC_CheckInteger, 15, ++/*416354*/ OPC_CheckType, MVT::i32, ++/*416356*/ OPC_MoveParent, ++/*416357*/ OPC_MoveChild6, ++/*416358*/ OPC_CheckInteger, 15, ++/*416360*/ OPC_CheckType, MVT::i32, ++/*416362*/ OPC_MoveParent, ++/*416363*/ OPC_MoveChild7, ++/*416364*/ OPC_CheckInteger, 15, ++/*416366*/ OPC_CheckType, MVT::i32, ++/*416368*/ OPC_MoveParent, ++/*416369*/ OPC_CheckType, MVT::v8i16, ++/*416371*/ OPC_MoveParent, ++/*416372*/ OPC_MoveParent, ++/*416373*/ OPC_MoveParent, ++/*416374*/ OPC_MoveChild1, ++/*416375*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*416378*/ OPC_CheckChild0Integer, 1, ++/*416380*/ OPC_CheckChild0Type, MVT::i32, ++/*416382*/ OPC_CheckChild1Integer, 1, ++/*416384*/ OPC_CheckChild1Type, MVT::i32, ++/*416386*/ OPC_CheckChild2Integer, 1, ++/*416388*/ OPC_CheckChild2Type, MVT::i32, ++/*416390*/ OPC_CheckChild3Integer, 1, ++/*416392*/ OPC_CheckChild3Type, MVT::i32, ++/*416394*/ OPC_CheckChild4Integer, 1, ++/*416396*/ OPC_CheckChild4Type, MVT::i32, ++/*416398*/ OPC_MoveChild5, ++/*416399*/ OPC_CheckInteger, 1, ++/*416401*/ OPC_CheckType, MVT::i32, ++/*416403*/ OPC_MoveParent, ++/*416404*/ OPC_MoveChild6, ++/*416405*/ OPC_CheckInteger, 1, ++/*416407*/ OPC_CheckType, MVT::i32, ++/*416409*/ OPC_MoveParent, ++/*416410*/ OPC_MoveChild7, ++/*416411*/ OPC_CheckInteger, 1, ++/*416413*/ OPC_CheckType, MVT::i32, ++/*416415*/ OPC_MoveParent, ++/*416416*/ OPC_CheckType, MVT::v8i16, ++/*416418*/ OPC_MoveParent, ++/*416419*/ OPC_CheckType, MVT::v8i16, ++/*416421*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*416423*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b), LSX128H:{ *:[v8i16] }:$a), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*416431*/ /*Scope*/ 23|128,1/*151*/, /*->416584*/ ++/*416433*/ OPC_CheckChild0Same, 0, ++/*416435*/ OPC_MoveChild1, ++/*416436*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*416439*/ OPC_CheckChild0Integer, 1, ++/*416441*/ OPC_CheckChild0Type, MVT::i32, ++/*416443*/ OPC_CheckChild1Integer, 1, ++/*416445*/ OPC_CheckChild1Type, MVT::i32, ++/*416447*/ OPC_CheckChild2Integer, 1, ++/*416449*/ OPC_CheckChild2Type, MVT::i32, ++/*416451*/ OPC_CheckChild3Integer, 1, ++/*416453*/ OPC_CheckChild3Type, MVT::i32, ++/*416455*/ OPC_CheckChild4Integer, 1, ++/*416457*/ OPC_CheckChild4Type, MVT::i32, ++/*416459*/ OPC_MoveChild5, ++/*416460*/ OPC_CheckInteger, 1, ++/*416462*/ OPC_CheckType, MVT::i32, ++/*416464*/ OPC_MoveParent, ++/*416465*/ OPC_MoveChild6, ++/*416466*/ OPC_CheckInteger, 1, ++/*416468*/ OPC_CheckType, MVT::i32, ++/*416470*/ OPC_MoveParent, ++/*416471*/ OPC_MoveChild7, ++/*416472*/ OPC_CheckInteger, 1, ++/*416474*/ OPC_CheckType, MVT::i32, ++/*416476*/ OPC_MoveParent, ++/*416477*/ OPC_MoveParent, ++/*416478*/ OPC_MoveParent, ++/*416479*/ OPC_MoveParent, ++/*416480*/ OPC_MoveChild1, ++/*416481*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*416484*/ OPC_CheckChild0Integer, 15, ++/*416486*/ OPC_CheckChild0Type, MVT::i32, ++/*416488*/ OPC_CheckChild1Integer, 15, ++/*416490*/ OPC_CheckChild1Type, MVT::i32, ++/*416492*/ OPC_CheckChild2Integer, 15, ++/*416494*/ OPC_CheckChild2Type, MVT::i32, ++/*416496*/ OPC_CheckChild3Integer, 15, ++/*416498*/ OPC_CheckChild3Type, MVT::i32, ++/*416500*/ OPC_CheckChild4Integer, 15, ++/*416502*/ OPC_CheckChild4Type, MVT::i32, ++/*416504*/ OPC_MoveChild5, ++/*416505*/ OPC_CheckInteger, 15, ++/*416507*/ OPC_CheckType, MVT::i32, ++/*416509*/ OPC_MoveParent, ++/*416510*/ OPC_MoveChild6, ++/*416511*/ OPC_CheckInteger, 15, ++/*416513*/ OPC_CheckType, MVT::i32, ++/*416515*/ OPC_MoveParent, ++/*416516*/ OPC_MoveChild7, ++/*416517*/ OPC_CheckInteger, 15, ++/*416519*/ OPC_CheckType, MVT::i32, ++/*416521*/ OPC_MoveParent, ++/*416522*/ OPC_CheckType, MVT::v8i16, ++/*416524*/ OPC_MoveParent, ++/*416525*/ OPC_MoveParent, ++/*416526*/ OPC_MoveParent, ++/*416527*/ OPC_MoveChild1, ++/*416528*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*416531*/ OPC_CheckChild0Integer, 1, ++/*416533*/ OPC_CheckChild0Type, MVT::i32, ++/*416535*/ OPC_CheckChild1Integer, 1, ++/*416537*/ OPC_CheckChild1Type, MVT::i32, ++/*416539*/ OPC_CheckChild2Integer, 1, ++/*416541*/ OPC_CheckChild2Type, MVT::i32, ++/*416543*/ OPC_CheckChild3Integer, 1, ++/*416545*/ OPC_CheckChild3Type, MVT::i32, ++/*416547*/ OPC_CheckChild4Integer, 1, ++/*416549*/ OPC_CheckChild4Type, MVT::i32, ++/*416551*/ OPC_MoveChild5, ++/*416552*/ OPC_CheckInteger, 1, ++/*416554*/ OPC_CheckType, MVT::i32, ++/*416556*/ OPC_MoveParent, ++/*416557*/ OPC_MoveChild6, ++/*416558*/ OPC_CheckInteger, 1, ++/*416560*/ OPC_CheckType, MVT::i32, ++/*416562*/ OPC_MoveParent, ++/*416563*/ OPC_MoveChild7, ++/*416564*/ OPC_CheckInteger, 1, ++/*416566*/ OPC_CheckType, MVT::i32, ++/*416568*/ OPC_MoveParent, ++/*416569*/ OPC_CheckType, MVT::v8i16, ++/*416571*/ OPC_MoveParent, ++/*416572*/ OPC_CheckType, MVT::v8i16, ++/*416574*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*416576*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b), LSX128H:{ *:[v8i16] }:$a), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*416584*/ 0, /*End of Scope*/ ++/*416585*/ /*Scope*/ 15|128,2/*271*/, /*->416858*/ ++/*416587*/ OPC_MoveChild0, ++/*416588*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*416591*/ OPC_CheckChild0Integer, 1, ++/*416593*/ OPC_CheckChild0Type, MVT::i32, ++/*416595*/ OPC_CheckChild1Integer, 1, ++/*416597*/ OPC_CheckChild1Type, MVT::i32, ++/*416599*/ OPC_CheckChild2Integer, 1, ++/*416601*/ OPC_CheckChild2Type, MVT::i32, ++/*416603*/ OPC_CheckChild3Integer, 1, ++/*416605*/ OPC_CheckChild3Type, MVT::i32, ++/*416607*/ OPC_CheckChild4Integer, 1, ++/*416609*/ OPC_CheckChild4Type, MVT::i32, ++/*416611*/ OPC_MoveChild5, ++/*416612*/ OPC_CheckInteger, 1, ++/*416614*/ OPC_CheckType, MVT::i32, ++/*416616*/ OPC_MoveParent, ++/*416617*/ OPC_MoveChild6, ++/*416618*/ OPC_CheckInteger, 1, ++/*416620*/ OPC_CheckType, MVT::i32, ++/*416622*/ OPC_MoveParent, ++/*416623*/ OPC_MoveChild7, ++/*416624*/ OPC_CheckInteger, 1, ++/*416626*/ OPC_CheckType, MVT::i32, ++/*416628*/ OPC_MoveParent, ++/*416629*/ OPC_MoveParent, ++/*416630*/ OPC_MoveChild1, ++/*416631*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*416634*/ OPC_Scope, 110, /*->416746*/ // 2 children in Scope ++/*416636*/ OPC_CheckChild0Same, 1, ++/*416638*/ OPC_CheckChild1Same, 0, ++/*416640*/ OPC_MoveParent, ++/*416641*/ OPC_MoveParent, ++/*416642*/ OPC_MoveChild1, ++/*416643*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*416646*/ OPC_CheckChild0Integer, 15, ++/*416648*/ OPC_CheckChild0Type, MVT::i32, ++/*416650*/ OPC_CheckChild1Integer, 15, ++/*416652*/ OPC_CheckChild1Type, MVT::i32, ++/*416654*/ OPC_CheckChild2Integer, 15, ++/*416656*/ OPC_CheckChild2Type, MVT::i32, ++/*416658*/ OPC_CheckChild3Integer, 15, ++/*416660*/ OPC_CheckChild3Type, MVT::i32, ++/*416662*/ OPC_CheckChild4Integer, 15, ++/*416664*/ OPC_CheckChild4Type, MVT::i32, ++/*416666*/ OPC_MoveChild5, ++/*416667*/ OPC_CheckInteger, 15, ++/*416669*/ OPC_CheckType, MVT::i32, ++/*416671*/ OPC_MoveParent, ++/*416672*/ OPC_MoveChild6, ++/*416673*/ OPC_CheckInteger, 15, ++/*416675*/ OPC_CheckType, MVT::i32, ++/*416677*/ OPC_MoveParent, ++/*416678*/ OPC_MoveChild7, ++/*416679*/ OPC_CheckInteger, 15, ++/*416681*/ OPC_CheckType, MVT::i32, ++/*416683*/ OPC_MoveParent, ++/*416684*/ OPC_CheckType, MVT::v8i16, ++/*416686*/ OPC_MoveParent, ++/*416687*/ OPC_MoveParent, ++/*416688*/ OPC_MoveParent, ++/*416689*/ OPC_MoveChild1, ++/*416690*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*416693*/ OPC_CheckChild0Integer, 1, ++/*416695*/ OPC_CheckChild0Type, MVT::i32, ++/*416697*/ OPC_CheckChild1Integer, 1, ++/*416699*/ OPC_CheckChild1Type, MVT::i32, ++/*416701*/ OPC_CheckChild2Integer, 1, ++/*416703*/ OPC_CheckChild2Type, MVT::i32, ++/*416705*/ OPC_CheckChild3Integer, 1, ++/*416707*/ OPC_CheckChild3Type, MVT::i32, ++/*416709*/ OPC_CheckChild4Integer, 1, ++/*416711*/ OPC_CheckChild4Type, MVT::i32, ++/*416713*/ OPC_MoveChild5, ++/*416714*/ OPC_CheckInteger, 1, ++/*416716*/ OPC_CheckType, MVT::i32, ++/*416718*/ OPC_MoveParent, ++/*416719*/ OPC_MoveChild6, ++/*416720*/ OPC_CheckInteger, 1, ++/*416722*/ OPC_CheckType, MVT::i32, ++/*416724*/ OPC_MoveParent, ++/*416725*/ OPC_MoveChild7, ++/*416726*/ OPC_CheckInteger, 1, ++/*416728*/ OPC_CheckType, MVT::i32, ++/*416730*/ OPC_MoveParent, ++/*416731*/ OPC_CheckType, MVT::v8i16, ++/*416733*/ OPC_MoveParent, ++/*416734*/ OPC_CheckType, MVT::v8i16, ++/*416736*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*416738*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b), LSX128H:{ *:[v8i16] }:$a), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*416746*/ /*Scope*/ 110, /*->416857*/ ++/*416747*/ OPC_CheckChild0Same, 0, ++/*416749*/ OPC_CheckChild1Same, 1, ++/*416751*/ OPC_MoveParent, ++/*416752*/ OPC_MoveParent, ++/*416753*/ OPC_MoveChild1, ++/*416754*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*416757*/ OPC_CheckChild0Integer, 15, ++/*416759*/ OPC_CheckChild0Type, MVT::i32, ++/*416761*/ OPC_CheckChild1Integer, 15, ++/*416763*/ OPC_CheckChild1Type, MVT::i32, ++/*416765*/ OPC_CheckChild2Integer, 15, ++/*416767*/ OPC_CheckChild2Type, MVT::i32, ++/*416769*/ OPC_CheckChild3Integer, 15, ++/*416771*/ OPC_CheckChild3Type, MVT::i32, ++/*416773*/ OPC_CheckChild4Integer, 15, ++/*416775*/ OPC_CheckChild4Type, MVT::i32, ++/*416777*/ OPC_MoveChild5, ++/*416778*/ OPC_CheckInteger, 15, ++/*416780*/ OPC_CheckType, MVT::i32, ++/*416782*/ OPC_MoveParent, ++/*416783*/ OPC_MoveChild6, ++/*416784*/ OPC_CheckInteger, 15, ++/*416786*/ OPC_CheckType, MVT::i32, ++/*416788*/ OPC_MoveParent, ++/*416789*/ OPC_MoveChild7, ++/*416790*/ OPC_CheckInteger, 15, ++/*416792*/ OPC_CheckType, MVT::i32, ++/*416794*/ OPC_MoveParent, ++/*416795*/ OPC_CheckType, MVT::v8i16, ++/*416797*/ OPC_MoveParent, ++/*416798*/ OPC_MoveParent, ++/*416799*/ OPC_MoveParent, ++/*416800*/ OPC_MoveChild1, ++/*416801*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*416804*/ OPC_CheckChild0Integer, 1, ++/*416806*/ OPC_CheckChild0Type, MVT::i32, ++/*416808*/ OPC_CheckChild1Integer, 1, ++/*416810*/ OPC_CheckChild1Type, MVT::i32, ++/*416812*/ OPC_CheckChild2Integer, 1, ++/*416814*/ OPC_CheckChild2Type, MVT::i32, ++/*416816*/ OPC_CheckChild3Integer, 1, ++/*416818*/ OPC_CheckChild3Type, MVT::i32, ++/*416820*/ OPC_CheckChild4Integer, 1, ++/*416822*/ OPC_CheckChild4Type, MVT::i32, ++/*416824*/ OPC_MoveChild5, ++/*416825*/ OPC_CheckInteger, 1, ++/*416827*/ OPC_CheckType, MVT::i32, ++/*416829*/ OPC_MoveParent, ++/*416830*/ OPC_MoveChild6, ++/*416831*/ OPC_CheckInteger, 1, ++/*416833*/ OPC_CheckType, MVT::i32, ++/*416835*/ OPC_MoveParent, ++/*416836*/ OPC_MoveChild7, ++/*416837*/ OPC_CheckInteger, 1, ++/*416839*/ OPC_CheckType, MVT::i32, ++/*416841*/ OPC_MoveParent, ++/*416842*/ OPC_CheckType, MVT::v8i16, ++/*416844*/ OPC_MoveParent, ++/*416845*/ OPC_CheckType, MVT::v8i16, ++/*416847*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*416849*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b), LSX128H:{ *:[v8i16] }:$a), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*416857*/ 0, /*End of Scope*/ ++/*416858*/ 0, /*End of Scope*/ ++/*416859*/ /*Scope*/ 17|128,44/*5649*/, /*->422510*/ ++/*416861*/ OPC_RecordChild0, // #0 = $b ++/*416862*/ OPC_Scope, 107|128,14/*1899*/, /*->418764*/ // 2 children in Scope ++/*416865*/ OPC_MoveChild1, ++/*416866*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*416869*/ OPC_CheckChild0Integer, 1, ++/*416871*/ OPC_CheckChild0Type, MVT::i32, ++/*416873*/ OPC_CheckChild1Integer, 1, ++/*416875*/ OPC_CheckChild1Type, MVT::i32, ++/*416877*/ OPC_CheckChild2Integer, 1, ++/*416879*/ OPC_CheckChild2Type, MVT::i32, ++/*416881*/ OPC_CheckChild3Integer, 1, ++/*416883*/ OPC_CheckChild3Type, MVT::i32, ++/*416885*/ OPC_CheckChild4Integer, 1, ++/*416887*/ OPC_CheckChild4Type, MVT::i32, ++/*416889*/ OPC_MoveChild5, ++/*416890*/ OPC_CheckInteger, 1, ++/*416892*/ OPC_CheckType, MVT::i32, ++/*416894*/ OPC_MoveParent, ++/*416895*/ OPC_MoveChild6, ++/*416896*/ OPC_CheckInteger, 1, ++/*416898*/ OPC_CheckType, MVT::i32, ++/*416900*/ OPC_MoveParent, ++/*416901*/ OPC_MoveChild7, ++/*416902*/ OPC_CheckInteger, 1, ++/*416904*/ OPC_CheckType, MVT::i32, ++/*416906*/ OPC_MoveParent, ++/*416907*/ OPC_MoveParent, ++/*416908*/ OPC_MoveParent, ++/*416909*/ OPC_RecordChild1, // #1 = $a ++/*416910*/ OPC_MoveParent, ++/*416911*/ OPC_MoveChild1, ++/*416912*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*416915*/ OPC_MoveChild0, ++/*416916*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*416919*/ OPC_Scope, 40|128,7/*936*/, /*->417858*/ // 4 children in Scope ++/*416922*/ OPC_MoveChild0, ++/*416923*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*416926*/ OPC_Scope, 25|128,1/*153*/, /*->417082*/ // 6 children in Scope ++/*416929*/ OPC_MoveChild0, ++/*416930*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*416933*/ OPC_CheckChild0Integer, 1, ++/*416935*/ OPC_CheckChild0Type, MVT::i32, ++/*416937*/ OPC_CheckChild1Integer, 1, ++/*416939*/ OPC_CheckChild1Type, MVT::i32, ++/*416941*/ OPC_CheckChild2Integer, 1, ++/*416943*/ OPC_CheckChild2Type, MVT::i32, ++/*416945*/ OPC_CheckChild3Integer, 1, ++/*416947*/ OPC_CheckChild3Type, MVT::i32, ++/*416949*/ OPC_CheckChild4Integer, 1, ++/*416951*/ OPC_CheckChild4Type, MVT::i32, ++/*416953*/ OPC_MoveChild5, ++/*416954*/ OPC_CheckInteger, 1, ++/*416956*/ OPC_CheckType, MVT::i32, ++/*416958*/ OPC_MoveParent, ++/*416959*/ OPC_MoveChild6, ++/*416960*/ OPC_CheckInteger, 1, ++/*416962*/ OPC_CheckType, MVT::i32, ++/*416964*/ OPC_MoveParent, ++/*416965*/ OPC_MoveChild7, ++/*416966*/ OPC_CheckInteger, 1, ++/*416968*/ OPC_CheckType, MVT::i32, ++/*416970*/ OPC_MoveParent, ++/*416971*/ OPC_MoveParent, ++/*416972*/ OPC_CheckChild1Same, 1, ++/*416974*/ OPC_MoveParent, ++/*416975*/ OPC_CheckChild1Same, 0, ++/*416977*/ OPC_MoveParent, ++/*416978*/ OPC_MoveChild1, ++/*416979*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*416982*/ OPC_CheckChild0Integer, 15, ++/*416984*/ OPC_CheckChild0Type, MVT::i32, ++/*416986*/ OPC_CheckChild1Integer, 15, ++/*416988*/ OPC_CheckChild1Type, MVT::i32, ++/*416990*/ OPC_CheckChild2Integer, 15, ++/*416992*/ OPC_CheckChild2Type, MVT::i32, ++/*416994*/ OPC_CheckChild3Integer, 15, ++/*416996*/ OPC_CheckChild3Type, MVT::i32, ++/*416998*/ OPC_CheckChild4Integer, 15, ++/*417000*/ OPC_CheckChild4Type, MVT::i32, ++/*417002*/ OPC_MoveChild5, ++/*417003*/ OPC_CheckInteger, 15, ++/*417005*/ OPC_CheckType, MVT::i32, ++/*417007*/ OPC_MoveParent, ++/*417008*/ OPC_MoveChild6, ++/*417009*/ OPC_CheckInteger, 15, ++/*417011*/ OPC_CheckType, MVT::i32, ++/*417013*/ OPC_MoveParent, ++/*417014*/ OPC_MoveChild7, ++/*417015*/ OPC_CheckInteger, 15, ++/*417017*/ OPC_CheckType, MVT::i32, ++/*417019*/ OPC_MoveParent, ++/*417020*/ OPC_CheckType, MVT::v8i16, ++/*417022*/ OPC_MoveParent, ++/*417023*/ OPC_MoveParent, ++/*417024*/ OPC_MoveParent, ++/*417025*/ OPC_MoveChild1, ++/*417026*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*417029*/ OPC_CheckChild0Integer, 1, ++/*417031*/ OPC_CheckChild0Type, MVT::i32, ++/*417033*/ OPC_CheckChild1Integer, 1, ++/*417035*/ OPC_CheckChild1Type, MVT::i32, ++/*417037*/ OPC_CheckChild2Integer, 1, ++/*417039*/ OPC_CheckChild2Type, MVT::i32, ++/*417041*/ OPC_CheckChild3Integer, 1, ++/*417043*/ OPC_CheckChild3Type, MVT::i32, ++/*417045*/ OPC_CheckChild4Integer, 1, ++/*417047*/ OPC_CheckChild4Type, MVT::i32, ++/*417049*/ OPC_MoveChild5, ++/*417050*/ OPC_CheckInteger, 1, ++/*417052*/ OPC_CheckType, MVT::i32, ++/*417054*/ OPC_MoveParent, ++/*417055*/ OPC_MoveChild6, ++/*417056*/ OPC_CheckInteger, 1, ++/*417058*/ OPC_CheckType, MVT::i32, ++/*417060*/ OPC_MoveParent, ++/*417061*/ OPC_MoveChild7, ++/*417062*/ OPC_CheckInteger, 1, ++/*417064*/ OPC_CheckType, MVT::i32, ++/*417066*/ OPC_MoveParent, ++/*417067*/ OPC_CheckType, MVT::v8i16, ++/*417069*/ OPC_MoveParent, ++/*417070*/ OPC_CheckType, MVT::v8i16, ++/*417072*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*417074*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$a), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a), LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*417082*/ /*Scope*/ 25|128,1/*153*/, /*->417237*/ ++/*417084*/ OPC_CheckChild0Same, 1, ++/*417086*/ OPC_MoveChild1, ++/*417087*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*417090*/ OPC_CheckChild0Integer, 1, ++/*417092*/ OPC_CheckChild0Type, MVT::i32, ++/*417094*/ OPC_CheckChild1Integer, 1, ++/*417096*/ OPC_CheckChild1Type, MVT::i32, ++/*417098*/ OPC_CheckChild2Integer, 1, ++/*417100*/ OPC_CheckChild2Type, MVT::i32, ++/*417102*/ OPC_CheckChild3Integer, 1, ++/*417104*/ OPC_CheckChild3Type, MVT::i32, ++/*417106*/ OPC_CheckChild4Integer, 1, ++/*417108*/ OPC_CheckChild4Type, MVT::i32, ++/*417110*/ OPC_MoveChild5, ++/*417111*/ OPC_CheckInteger, 1, ++/*417113*/ OPC_CheckType, MVT::i32, ++/*417115*/ OPC_MoveParent, ++/*417116*/ OPC_MoveChild6, ++/*417117*/ OPC_CheckInteger, 1, ++/*417119*/ OPC_CheckType, MVT::i32, ++/*417121*/ OPC_MoveParent, ++/*417122*/ OPC_MoveChild7, ++/*417123*/ OPC_CheckInteger, 1, ++/*417125*/ OPC_CheckType, MVT::i32, ++/*417127*/ OPC_MoveParent, ++/*417128*/ OPC_MoveParent, ++/*417129*/ OPC_MoveParent, ++/*417130*/ OPC_CheckChild1Same, 0, ++/*417132*/ OPC_MoveParent, ++/*417133*/ OPC_MoveChild1, ++/*417134*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*417137*/ OPC_CheckChild0Integer, 15, ++/*417139*/ OPC_CheckChild0Type, MVT::i32, ++/*417141*/ OPC_CheckChild1Integer, 15, ++/*417143*/ OPC_CheckChild1Type, MVT::i32, ++/*417145*/ OPC_CheckChild2Integer, 15, ++/*417147*/ OPC_CheckChild2Type, MVT::i32, ++/*417149*/ OPC_CheckChild3Integer, 15, ++/*417151*/ OPC_CheckChild3Type, MVT::i32, ++/*417153*/ OPC_CheckChild4Integer, 15, ++/*417155*/ OPC_CheckChild4Type, MVT::i32, ++/*417157*/ OPC_MoveChild5, ++/*417158*/ OPC_CheckInteger, 15, ++/*417160*/ OPC_CheckType, MVT::i32, ++/*417162*/ OPC_MoveParent, ++/*417163*/ OPC_MoveChild6, ++/*417164*/ OPC_CheckInteger, 15, ++/*417166*/ OPC_CheckType, MVT::i32, ++/*417168*/ OPC_MoveParent, ++/*417169*/ OPC_MoveChild7, ++/*417170*/ OPC_CheckInteger, 15, ++/*417172*/ OPC_CheckType, MVT::i32, ++/*417174*/ OPC_MoveParent, ++/*417175*/ OPC_CheckType, MVT::v8i16, ++/*417177*/ OPC_MoveParent, ++/*417178*/ OPC_MoveParent, ++/*417179*/ OPC_MoveParent, ++/*417180*/ OPC_MoveChild1, ++/*417181*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*417184*/ OPC_CheckChild0Integer, 1, ++/*417186*/ OPC_CheckChild0Type, MVT::i32, ++/*417188*/ OPC_CheckChild1Integer, 1, ++/*417190*/ OPC_CheckChild1Type, MVT::i32, ++/*417192*/ OPC_CheckChild2Integer, 1, ++/*417194*/ OPC_CheckChild2Type, MVT::i32, ++/*417196*/ OPC_CheckChild3Integer, 1, ++/*417198*/ OPC_CheckChild3Type, MVT::i32, ++/*417200*/ OPC_CheckChild4Integer, 1, ++/*417202*/ OPC_CheckChild4Type, MVT::i32, ++/*417204*/ OPC_MoveChild5, ++/*417205*/ OPC_CheckInteger, 1, ++/*417207*/ OPC_CheckType, MVT::i32, ++/*417209*/ OPC_MoveParent, ++/*417210*/ OPC_MoveChild6, ++/*417211*/ OPC_CheckInteger, 1, ++/*417213*/ OPC_CheckType, MVT::i32, ++/*417215*/ OPC_MoveParent, ++/*417216*/ OPC_MoveChild7, ++/*417217*/ OPC_CheckInteger, 1, ++/*417219*/ OPC_CheckType, MVT::i32, ++/*417221*/ OPC_MoveParent, ++/*417222*/ OPC_CheckType, MVT::v8i16, ++/*417224*/ OPC_MoveParent, ++/*417225*/ OPC_CheckType, MVT::v8i16, ++/*417227*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*417229*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$a), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*417237*/ /*Scope*/ 25|128,1/*153*/, /*->417392*/ ++/*417239*/ OPC_MoveChild0, ++/*417240*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*417243*/ OPC_CheckChild0Integer, 1, ++/*417245*/ OPC_CheckChild0Type, MVT::i32, ++/*417247*/ OPC_CheckChild1Integer, 1, ++/*417249*/ OPC_CheckChild1Type, MVT::i32, ++/*417251*/ OPC_CheckChild2Integer, 1, ++/*417253*/ OPC_CheckChild2Type, MVT::i32, ++/*417255*/ OPC_CheckChild3Integer, 1, ++/*417257*/ OPC_CheckChild3Type, MVT::i32, ++/*417259*/ OPC_CheckChild4Integer, 1, ++/*417261*/ OPC_CheckChild4Type, MVT::i32, ++/*417263*/ OPC_MoveChild5, ++/*417264*/ OPC_CheckInteger, 1, ++/*417266*/ OPC_CheckType, MVT::i32, ++/*417268*/ OPC_MoveParent, ++/*417269*/ OPC_MoveChild6, ++/*417270*/ OPC_CheckInteger, 1, ++/*417272*/ OPC_CheckType, MVT::i32, ++/*417274*/ OPC_MoveParent, ++/*417275*/ OPC_MoveChild7, ++/*417276*/ OPC_CheckInteger, 1, ++/*417278*/ OPC_CheckType, MVT::i32, ++/*417280*/ OPC_MoveParent, ++/*417281*/ OPC_MoveParent, ++/*417282*/ OPC_CheckChild1Same, 0, ++/*417284*/ OPC_MoveParent, ++/*417285*/ OPC_CheckChild1Same, 1, ++/*417287*/ OPC_MoveParent, ++/*417288*/ OPC_MoveChild1, ++/*417289*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*417292*/ OPC_CheckChild0Integer, 15, ++/*417294*/ OPC_CheckChild0Type, MVT::i32, ++/*417296*/ OPC_CheckChild1Integer, 15, ++/*417298*/ OPC_CheckChild1Type, MVT::i32, ++/*417300*/ OPC_CheckChild2Integer, 15, ++/*417302*/ OPC_CheckChild2Type, MVT::i32, ++/*417304*/ OPC_CheckChild3Integer, 15, ++/*417306*/ OPC_CheckChild3Type, MVT::i32, ++/*417308*/ OPC_CheckChild4Integer, 15, ++/*417310*/ OPC_CheckChild4Type, MVT::i32, ++/*417312*/ OPC_MoveChild5, ++/*417313*/ OPC_CheckInteger, 15, ++/*417315*/ OPC_CheckType, MVT::i32, ++/*417317*/ OPC_MoveParent, ++/*417318*/ OPC_MoveChild6, ++/*417319*/ OPC_CheckInteger, 15, ++/*417321*/ OPC_CheckType, MVT::i32, ++/*417323*/ OPC_MoveParent, ++/*417324*/ OPC_MoveChild7, ++/*417325*/ OPC_CheckInteger, 15, ++/*417327*/ OPC_CheckType, MVT::i32, ++/*417329*/ OPC_MoveParent, ++/*417330*/ OPC_CheckType, MVT::v8i16, ++/*417332*/ OPC_MoveParent, ++/*417333*/ OPC_MoveParent, ++/*417334*/ OPC_MoveParent, ++/*417335*/ OPC_MoveChild1, ++/*417336*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*417339*/ OPC_CheckChild0Integer, 1, ++/*417341*/ OPC_CheckChild0Type, MVT::i32, ++/*417343*/ OPC_CheckChild1Integer, 1, ++/*417345*/ OPC_CheckChild1Type, MVT::i32, ++/*417347*/ OPC_CheckChild2Integer, 1, ++/*417349*/ OPC_CheckChild2Type, MVT::i32, ++/*417351*/ OPC_CheckChild3Integer, 1, ++/*417353*/ OPC_CheckChild3Type, MVT::i32, ++/*417355*/ OPC_CheckChild4Integer, 1, ++/*417357*/ OPC_CheckChild4Type, MVT::i32, ++/*417359*/ OPC_MoveChild5, ++/*417360*/ OPC_CheckInteger, 1, ++/*417362*/ OPC_CheckType, MVT::i32, ++/*417364*/ OPC_MoveParent, ++/*417365*/ OPC_MoveChild6, ++/*417366*/ OPC_CheckInteger, 1, ++/*417368*/ OPC_CheckType, MVT::i32, ++/*417370*/ OPC_MoveParent, ++/*417371*/ OPC_MoveChild7, ++/*417372*/ OPC_CheckInteger, 1, ++/*417374*/ OPC_CheckType, MVT::i32, ++/*417376*/ OPC_MoveParent, ++/*417377*/ OPC_CheckType, MVT::v8i16, ++/*417379*/ OPC_MoveParent, ++/*417380*/ OPC_CheckType, MVT::v8i16, ++/*417382*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*417384*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$a), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b), LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*417392*/ /*Scope*/ 25|128,1/*153*/, /*->417547*/ ++/*417394*/ OPC_CheckChild0Same, 0, ++/*417396*/ OPC_MoveChild1, ++/*417397*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*417400*/ OPC_CheckChild0Integer, 1, ++/*417402*/ OPC_CheckChild0Type, MVT::i32, ++/*417404*/ OPC_CheckChild1Integer, 1, ++/*417406*/ OPC_CheckChild1Type, MVT::i32, ++/*417408*/ OPC_CheckChild2Integer, 1, ++/*417410*/ OPC_CheckChild2Type, MVT::i32, ++/*417412*/ OPC_CheckChild3Integer, 1, ++/*417414*/ OPC_CheckChild3Type, MVT::i32, ++/*417416*/ OPC_CheckChild4Integer, 1, ++/*417418*/ OPC_CheckChild4Type, MVT::i32, ++/*417420*/ OPC_MoveChild5, ++/*417421*/ OPC_CheckInteger, 1, ++/*417423*/ OPC_CheckType, MVT::i32, ++/*417425*/ OPC_MoveParent, ++/*417426*/ OPC_MoveChild6, ++/*417427*/ OPC_CheckInteger, 1, ++/*417429*/ OPC_CheckType, MVT::i32, ++/*417431*/ OPC_MoveParent, ++/*417432*/ OPC_MoveChild7, ++/*417433*/ OPC_CheckInteger, 1, ++/*417435*/ OPC_CheckType, MVT::i32, ++/*417437*/ OPC_MoveParent, ++/*417438*/ OPC_MoveParent, ++/*417439*/ OPC_MoveParent, ++/*417440*/ OPC_CheckChild1Same, 1, ++/*417442*/ OPC_MoveParent, ++/*417443*/ OPC_MoveChild1, ++/*417444*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*417447*/ OPC_CheckChild0Integer, 15, ++/*417449*/ OPC_CheckChild0Type, MVT::i32, ++/*417451*/ OPC_CheckChild1Integer, 15, ++/*417453*/ OPC_CheckChild1Type, MVT::i32, ++/*417455*/ OPC_CheckChild2Integer, 15, ++/*417457*/ OPC_CheckChild2Type, MVT::i32, ++/*417459*/ OPC_CheckChild3Integer, 15, ++/*417461*/ OPC_CheckChild3Type, MVT::i32, ++/*417463*/ OPC_CheckChild4Integer, 15, ++/*417465*/ OPC_CheckChild4Type, MVT::i32, ++/*417467*/ OPC_MoveChild5, ++/*417468*/ OPC_CheckInteger, 15, ++/*417470*/ OPC_CheckType, MVT::i32, ++/*417472*/ OPC_MoveParent, ++/*417473*/ OPC_MoveChild6, ++/*417474*/ OPC_CheckInteger, 15, ++/*417476*/ OPC_CheckType, MVT::i32, ++/*417478*/ OPC_MoveParent, ++/*417479*/ OPC_MoveChild7, ++/*417480*/ OPC_CheckInteger, 15, ++/*417482*/ OPC_CheckType, MVT::i32, ++/*417484*/ OPC_MoveParent, ++/*417485*/ OPC_CheckType, MVT::v8i16, ++/*417487*/ OPC_MoveParent, ++/*417488*/ OPC_MoveParent, ++/*417489*/ OPC_MoveParent, ++/*417490*/ OPC_MoveChild1, ++/*417491*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*417494*/ OPC_CheckChild0Integer, 1, ++/*417496*/ OPC_CheckChild0Type, MVT::i32, ++/*417498*/ OPC_CheckChild1Integer, 1, ++/*417500*/ OPC_CheckChild1Type, MVT::i32, ++/*417502*/ OPC_CheckChild2Integer, 1, ++/*417504*/ OPC_CheckChild2Type, MVT::i32, ++/*417506*/ OPC_CheckChild3Integer, 1, ++/*417508*/ OPC_CheckChild3Type, MVT::i32, ++/*417510*/ OPC_CheckChild4Integer, 1, ++/*417512*/ OPC_CheckChild4Type, MVT::i32, ++/*417514*/ OPC_MoveChild5, ++/*417515*/ OPC_CheckInteger, 1, ++/*417517*/ OPC_CheckType, MVT::i32, ++/*417519*/ OPC_MoveParent, ++/*417520*/ OPC_MoveChild6, ++/*417521*/ OPC_CheckInteger, 1, ++/*417523*/ OPC_CheckType, MVT::i32, ++/*417525*/ OPC_MoveParent, ++/*417526*/ OPC_MoveChild7, ++/*417527*/ OPC_CheckInteger, 1, ++/*417529*/ OPC_CheckType, MVT::i32, ++/*417531*/ OPC_MoveParent, ++/*417532*/ OPC_CheckType, MVT::v8i16, ++/*417534*/ OPC_MoveParent, ++/*417535*/ OPC_CheckType, MVT::v8i16, ++/*417537*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*417539*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$a), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*417547*/ /*Scope*/ 25|128,1/*153*/, /*->417702*/ ++/*417549*/ OPC_CheckChild0Same, 1, ++/*417551*/ OPC_CheckChild1Same, 0, ++/*417553*/ OPC_MoveParent, ++/*417554*/ OPC_MoveChild1, ++/*417555*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*417558*/ OPC_CheckChild0Integer, 1, ++/*417560*/ OPC_CheckChild0Type, MVT::i32, ++/*417562*/ OPC_CheckChild1Integer, 1, ++/*417564*/ OPC_CheckChild1Type, MVT::i32, ++/*417566*/ OPC_CheckChild2Integer, 1, ++/*417568*/ OPC_CheckChild2Type, MVT::i32, ++/*417570*/ OPC_CheckChild3Integer, 1, ++/*417572*/ OPC_CheckChild3Type, MVT::i32, ++/*417574*/ OPC_CheckChild4Integer, 1, ++/*417576*/ OPC_CheckChild4Type, MVT::i32, ++/*417578*/ OPC_MoveChild5, ++/*417579*/ OPC_CheckInteger, 1, ++/*417581*/ OPC_CheckType, MVT::i32, ++/*417583*/ OPC_MoveParent, ++/*417584*/ OPC_MoveChild6, ++/*417585*/ OPC_CheckInteger, 1, ++/*417587*/ OPC_CheckType, MVT::i32, ++/*417589*/ OPC_MoveParent, ++/*417590*/ OPC_MoveChild7, ++/*417591*/ OPC_CheckInteger, 1, ++/*417593*/ OPC_CheckType, MVT::i32, ++/*417595*/ OPC_MoveParent, ++/*417596*/ OPC_MoveParent, ++/*417597*/ OPC_MoveParent, ++/*417598*/ OPC_MoveChild1, ++/*417599*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*417602*/ OPC_CheckChild0Integer, 15, ++/*417604*/ OPC_CheckChild0Type, MVT::i32, ++/*417606*/ OPC_CheckChild1Integer, 15, ++/*417608*/ OPC_CheckChild1Type, MVT::i32, ++/*417610*/ OPC_CheckChild2Integer, 15, ++/*417612*/ OPC_CheckChild2Type, MVT::i32, ++/*417614*/ OPC_CheckChild3Integer, 15, ++/*417616*/ OPC_CheckChild3Type, MVT::i32, ++/*417618*/ OPC_CheckChild4Integer, 15, ++/*417620*/ OPC_CheckChild4Type, MVT::i32, ++/*417622*/ OPC_MoveChild5, ++/*417623*/ OPC_CheckInteger, 15, ++/*417625*/ OPC_CheckType, MVT::i32, ++/*417627*/ OPC_MoveParent, ++/*417628*/ OPC_MoveChild6, ++/*417629*/ OPC_CheckInteger, 15, ++/*417631*/ OPC_CheckType, MVT::i32, ++/*417633*/ OPC_MoveParent, ++/*417634*/ OPC_MoveChild7, ++/*417635*/ OPC_CheckInteger, 15, ++/*417637*/ OPC_CheckType, MVT::i32, ++/*417639*/ OPC_MoveParent, ++/*417640*/ OPC_CheckType, MVT::v8i16, ++/*417642*/ OPC_MoveParent, ++/*417643*/ OPC_MoveParent, ++/*417644*/ OPC_MoveParent, ++/*417645*/ OPC_MoveChild1, ++/*417646*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*417649*/ OPC_CheckChild0Integer, 1, ++/*417651*/ OPC_CheckChild0Type, MVT::i32, ++/*417653*/ OPC_CheckChild1Integer, 1, ++/*417655*/ OPC_CheckChild1Type, MVT::i32, ++/*417657*/ OPC_CheckChild2Integer, 1, ++/*417659*/ OPC_CheckChild2Type, MVT::i32, ++/*417661*/ OPC_CheckChild3Integer, 1, ++/*417663*/ OPC_CheckChild3Type, MVT::i32, ++/*417665*/ OPC_CheckChild4Integer, 1, ++/*417667*/ OPC_CheckChild4Type, MVT::i32, ++/*417669*/ OPC_MoveChild5, ++/*417670*/ OPC_CheckInteger, 1, ++/*417672*/ OPC_CheckType, MVT::i32, ++/*417674*/ OPC_MoveParent, ++/*417675*/ OPC_MoveChild6, ++/*417676*/ OPC_CheckInteger, 1, ++/*417678*/ OPC_CheckType, MVT::i32, ++/*417680*/ OPC_MoveParent, ++/*417681*/ OPC_MoveChild7, ++/*417682*/ OPC_CheckInteger, 1, ++/*417684*/ OPC_CheckType, MVT::i32, ++/*417686*/ OPC_MoveParent, ++/*417687*/ OPC_CheckType, MVT::v8i16, ++/*417689*/ OPC_MoveParent, ++/*417690*/ OPC_CheckType, MVT::v8i16, ++/*417692*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*417694*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$a), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*417702*/ /*Scope*/ 25|128,1/*153*/, /*->417857*/ ++/*417704*/ OPC_CheckChild0Same, 0, ++/*417706*/ OPC_CheckChild1Same, 1, ++/*417708*/ OPC_MoveParent, ++/*417709*/ OPC_MoveChild1, ++/*417710*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*417713*/ OPC_CheckChild0Integer, 1, ++/*417715*/ OPC_CheckChild0Type, MVT::i32, ++/*417717*/ OPC_CheckChild1Integer, 1, ++/*417719*/ OPC_CheckChild1Type, MVT::i32, ++/*417721*/ OPC_CheckChild2Integer, 1, ++/*417723*/ OPC_CheckChild2Type, MVT::i32, ++/*417725*/ OPC_CheckChild3Integer, 1, ++/*417727*/ OPC_CheckChild3Type, MVT::i32, ++/*417729*/ OPC_CheckChild4Integer, 1, ++/*417731*/ OPC_CheckChild4Type, MVT::i32, ++/*417733*/ OPC_MoveChild5, ++/*417734*/ OPC_CheckInteger, 1, ++/*417736*/ OPC_CheckType, MVT::i32, ++/*417738*/ OPC_MoveParent, ++/*417739*/ OPC_MoveChild6, ++/*417740*/ OPC_CheckInteger, 1, ++/*417742*/ OPC_CheckType, MVT::i32, ++/*417744*/ OPC_MoveParent, ++/*417745*/ OPC_MoveChild7, ++/*417746*/ OPC_CheckInteger, 1, ++/*417748*/ OPC_CheckType, MVT::i32, ++/*417750*/ OPC_MoveParent, ++/*417751*/ OPC_MoveParent, ++/*417752*/ OPC_MoveParent, ++/*417753*/ OPC_MoveChild1, ++/*417754*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*417757*/ OPC_CheckChild0Integer, 15, ++/*417759*/ OPC_CheckChild0Type, MVT::i32, ++/*417761*/ OPC_CheckChild1Integer, 15, ++/*417763*/ OPC_CheckChild1Type, MVT::i32, ++/*417765*/ OPC_CheckChild2Integer, 15, ++/*417767*/ OPC_CheckChild2Type, MVT::i32, ++/*417769*/ OPC_CheckChild3Integer, 15, ++/*417771*/ OPC_CheckChild3Type, MVT::i32, ++/*417773*/ OPC_CheckChild4Integer, 15, ++/*417775*/ OPC_CheckChild4Type, MVT::i32, ++/*417777*/ OPC_MoveChild5, ++/*417778*/ OPC_CheckInteger, 15, ++/*417780*/ OPC_CheckType, MVT::i32, ++/*417782*/ OPC_MoveParent, ++/*417783*/ OPC_MoveChild6, ++/*417784*/ OPC_CheckInteger, 15, ++/*417786*/ OPC_CheckType, MVT::i32, ++/*417788*/ OPC_MoveParent, ++/*417789*/ OPC_MoveChild7, ++/*417790*/ OPC_CheckInteger, 15, ++/*417792*/ OPC_CheckType, MVT::i32, ++/*417794*/ OPC_MoveParent, ++/*417795*/ OPC_CheckType, MVT::v8i16, ++/*417797*/ OPC_MoveParent, ++/*417798*/ OPC_MoveParent, ++/*417799*/ OPC_MoveParent, ++/*417800*/ OPC_MoveChild1, ++/*417801*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*417804*/ OPC_CheckChild0Integer, 1, ++/*417806*/ OPC_CheckChild0Type, MVT::i32, ++/*417808*/ OPC_CheckChild1Integer, 1, ++/*417810*/ OPC_CheckChild1Type, MVT::i32, ++/*417812*/ OPC_CheckChild2Integer, 1, ++/*417814*/ OPC_CheckChild2Type, MVT::i32, ++/*417816*/ OPC_CheckChild3Integer, 1, ++/*417818*/ OPC_CheckChild3Type, MVT::i32, ++/*417820*/ OPC_CheckChild4Integer, 1, ++/*417822*/ OPC_CheckChild4Type, MVT::i32, ++/*417824*/ OPC_MoveChild5, ++/*417825*/ OPC_CheckInteger, 1, ++/*417827*/ OPC_CheckType, MVT::i32, ++/*417829*/ OPC_MoveParent, ++/*417830*/ OPC_MoveChild6, ++/*417831*/ OPC_CheckInteger, 1, ++/*417833*/ OPC_CheckType, MVT::i32, ++/*417835*/ OPC_MoveParent, ++/*417836*/ OPC_MoveChild7, ++/*417837*/ OPC_CheckInteger, 1, ++/*417839*/ OPC_CheckType, MVT::i32, ++/*417841*/ OPC_MoveParent, ++/*417842*/ OPC_CheckType, MVT::v8i16, ++/*417844*/ OPC_MoveParent, ++/*417845*/ OPC_CheckType, MVT::v8i16, ++/*417847*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*417849*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$a), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*417857*/ 0, /*End of Scope*/ ++/*417858*/ /*Scope*/ 58|128,2/*314*/, /*->418174*/ ++/*417860*/ OPC_CheckChild0Same, 0, ++/*417862*/ OPC_MoveChild1, ++/*417863*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*417866*/ OPC_Scope, 23|128,1/*151*/, /*->418020*/ // 2 children in Scope ++/*417869*/ OPC_MoveChild0, ++/*417870*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*417873*/ OPC_CheckChild0Integer, 1, ++/*417875*/ OPC_CheckChild0Type, MVT::i32, ++/*417877*/ OPC_CheckChild1Integer, 1, ++/*417879*/ OPC_CheckChild1Type, MVT::i32, ++/*417881*/ OPC_CheckChild2Integer, 1, ++/*417883*/ OPC_CheckChild2Type, MVT::i32, ++/*417885*/ OPC_CheckChild3Integer, 1, ++/*417887*/ OPC_CheckChild3Type, MVT::i32, ++/*417889*/ OPC_CheckChild4Integer, 1, ++/*417891*/ OPC_CheckChild4Type, MVT::i32, ++/*417893*/ OPC_MoveChild5, ++/*417894*/ OPC_CheckInteger, 1, ++/*417896*/ OPC_CheckType, MVT::i32, ++/*417898*/ OPC_MoveParent, ++/*417899*/ OPC_MoveChild6, ++/*417900*/ OPC_CheckInteger, 1, ++/*417902*/ OPC_CheckType, MVT::i32, ++/*417904*/ OPC_MoveParent, ++/*417905*/ OPC_MoveChild7, ++/*417906*/ OPC_CheckInteger, 1, ++/*417908*/ OPC_CheckType, MVT::i32, ++/*417910*/ OPC_MoveParent, ++/*417911*/ OPC_MoveParent, ++/*417912*/ OPC_CheckChild1Same, 1, ++/*417914*/ OPC_MoveParent, ++/*417915*/ OPC_MoveParent, ++/*417916*/ OPC_MoveChild1, ++/*417917*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*417920*/ OPC_CheckChild0Integer, 15, ++/*417922*/ OPC_CheckChild0Type, MVT::i32, ++/*417924*/ OPC_CheckChild1Integer, 15, ++/*417926*/ OPC_CheckChild1Type, MVT::i32, ++/*417928*/ OPC_CheckChild2Integer, 15, ++/*417930*/ OPC_CheckChild2Type, MVT::i32, ++/*417932*/ OPC_CheckChild3Integer, 15, ++/*417934*/ OPC_CheckChild3Type, MVT::i32, ++/*417936*/ OPC_CheckChild4Integer, 15, ++/*417938*/ OPC_CheckChild4Type, MVT::i32, ++/*417940*/ OPC_MoveChild5, ++/*417941*/ OPC_CheckInteger, 15, ++/*417943*/ OPC_CheckType, MVT::i32, ++/*417945*/ OPC_MoveParent, ++/*417946*/ OPC_MoveChild6, ++/*417947*/ OPC_CheckInteger, 15, ++/*417949*/ OPC_CheckType, MVT::i32, ++/*417951*/ OPC_MoveParent, ++/*417952*/ OPC_MoveChild7, ++/*417953*/ OPC_CheckInteger, 15, ++/*417955*/ OPC_CheckType, MVT::i32, ++/*417957*/ OPC_MoveParent, ++/*417958*/ OPC_CheckType, MVT::v8i16, ++/*417960*/ OPC_MoveParent, ++/*417961*/ OPC_MoveParent, ++/*417962*/ OPC_MoveParent, ++/*417963*/ OPC_MoveChild1, ++/*417964*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*417967*/ OPC_CheckChild0Integer, 1, ++/*417969*/ OPC_CheckChild0Type, MVT::i32, ++/*417971*/ OPC_CheckChild1Integer, 1, ++/*417973*/ OPC_CheckChild1Type, MVT::i32, ++/*417975*/ OPC_CheckChild2Integer, 1, ++/*417977*/ OPC_CheckChild2Type, MVT::i32, ++/*417979*/ OPC_CheckChild3Integer, 1, ++/*417981*/ OPC_CheckChild3Type, MVT::i32, ++/*417983*/ OPC_CheckChild4Integer, 1, ++/*417985*/ OPC_CheckChild4Type, MVT::i32, ++/*417987*/ OPC_MoveChild5, ++/*417988*/ OPC_CheckInteger, 1, ++/*417990*/ OPC_CheckType, MVT::i32, ++/*417992*/ OPC_MoveParent, ++/*417993*/ OPC_MoveChild6, ++/*417994*/ OPC_CheckInteger, 1, ++/*417996*/ OPC_CheckType, MVT::i32, ++/*417998*/ OPC_MoveParent, ++/*417999*/ OPC_MoveChild7, ++/*418000*/ OPC_CheckInteger, 1, ++/*418002*/ OPC_CheckType, MVT::i32, ++/*418004*/ OPC_MoveParent, ++/*418005*/ OPC_CheckType, MVT::v8i16, ++/*418007*/ OPC_MoveParent, ++/*418008*/ OPC_CheckType, MVT::v8i16, ++/*418010*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*418012*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$a), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*418020*/ /*Scope*/ 23|128,1/*151*/, /*->418173*/ ++/*418022*/ OPC_CheckChild0Same, 1, ++/*418024*/ OPC_MoveChild1, ++/*418025*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*418028*/ OPC_CheckChild0Integer, 1, ++/*418030*/ OPC_CheckChild0Type, MVT::i32, ++/*418032*/ OPC_CheckChild1Integer, 1, ++/*418034*/ OPC_CheckChild1Type, MVT::i32, ++/*418036*/ OPC_CheckChild2Integer, 1, ++/*418038*/ OPC_CheckChild2Type, MVT::i32, ++/*418040*/ OPC_CheckChild3Integer, 1, ++/*418042*/ OPC_CheckChild3Type, MVT::i32, ++/*418044*/ OPC_CheckChild4Integer, 1, ++/*418046*/ OPC_CheckChild4Type, MVT::i32, ++/*418048*/ OPC_MoveChild5, ++/*418049*/ OPC_CheckInteger, 1, ++/*418051*/ OPC_CheckType, MVT::i32, ++/*418053*/ OPC_MoveParent, ++/*418054*/ OPC_MoveChild6, ++/*418055*/ OPC_CheckInteger, 1, ++/*418057*/ OPC_CheckType, MVT::i32, ++/*418059*/ OPC_MoveParent, ++/*418060*/ OPC_MoveChild7, ++/*418061*/ OPC_CheckInteger, 1, ++/*418063*/ OPC_CheckType, MVT::i32, ++/*418065*/ OPC_MoveParent, ++/*418066*/ OPC_MoveParent, ++/*418067*/ OPC_MoveParent, ++/*418068*/ OPC_MoveParent, ++/*418069*/ OPC_MoveChild1, ++/*418070*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*418073*/ OPC_CheckChild0Integer, 15, ++/*418075*/ OPC_CheckChild0Type, MVT::i32, ++/*418077*/ OPC_CheckChild1Integer, 15, ++/*418079*/ OPC_CheckChild1Type, MVT::i32, ++/*418081*/ OPC_CheckChild2Integer, 15, ++/*418083*/ OPC_CheckChild2Type, MVT::i32, ++/*418085*/ OPC_CheckChild3Integer, 15, ++/*418087*/ OPC_CheckChild3Type, MVT::i32, ++/*418089*/ OPC_CheckChild4Integer, 15, ++/*418091*/ OPC_CheckChild4Type, MVT::i32, ++/*418093*/ OPC_MoveChild5, ++/*418094*/ OPC_CheckInteger, 15, ++/*418096*/ OPC_CheckType, MVT::i32, ++/*418098*/ OPC_MoveParent, ++/*418099*/ OPC_MoveChild6, ++/*418100*/ OPC_CheckInteger, 15, ++/*418102*/ OPC_CheckType, MVT::i32, ++/*418104*/ OPC_MoveParent, ++/*418105*/ OPC_MoveChild7, ++/*418106*/ OPC_CheckInteger, 15, ++/*418108*/ OPC_CheckType, MVT::i32, ++/*418110*/ OPC_MoveParent, ++/*418111*/ OPC_CheckType, MVT::v8i16, ++/*418113*/ OPC_MoveParent, ++/*418114*/ OPC_MoveParent, ++/*418115*/ OPC_MoveParent, ++/*418116*/ OPC_MoveChild1, ++/*418117*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*418120*/ OPC_CheckChild0Integer, 1, ++/*418122*/ OPC_CheckChild0Type, MVT::i32, ++/*418124*/ OPC_CheckChild1Integer, 1, ++/*418126*/ OPC_CheckChild1Type, MVT::i32, ++/*418128*/ OPC_CheckChild2Integer, 1, ++/*418130*/ OPC_CheckChild2Type, MVT::i32, ++/*418132*/ OPC_CheckChild3Integer, 1, ++/*418134*/ OPC_CheckChild3Type, MVT::i32, ++/*418136*/ OPC_CheckChild4Integer, 1, ++/*418138*/ OPC_CheckChild4Type, MVT::i32, ++/*418140*/ OPC_MoveChild5, ++/*418141*/ OPC_CheckInteger, 1, ++/*418143*/ OPC_CheckType, MVT::i32, ++/*418145*/ OPC_MoveParent, ++/*418146*/ OPC_MoveChild6, ++/*418147*/ OPC_CheckInteger, 1, ++/*418149*/ OPC_CheckType, MVT::i32, ++/*418151*/ OPC_MoveParent, ++/*418152*/ OPC_MoveChild7, ++/*418153*/ OPC_CheckInteger, 1, ++/*418155*/ OPC_CheckType, MVT::i32, ++/*418157*/ OPC_MoveParent, ++/*418158*/ OPC_CheckType, MVT::v8i16, ++/*418160*/ OPC_MoveParent, ++/*418161*/ OPC_CheckType, MVT::v8i16, ++/*418163*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*418165*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$a), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*418173*/ 0, /*End of Scope*/ ++/*418174*/ /*Scope*/ 58|128,2/*314*/, /*->418490*/ ++/*418176*/ OPC_CheckChild0Same, 1, ++/*418178*/ OPC_MoveChild1, ++/*418179*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*418182*/ OPC_Scope, 23|128,1/*151*/, /*->418336*/ // 2 children in Scope ++/*418185*/ OPC_MoveChild0, ++/*418186*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*418189*/ OPC_CheckChild0Integer, 1, ++/*418191*/ OPC_CheckChild0Type, MVT::i32, ++/*418193*/ OPC_CheckChild1Integer, 1, ++/*418195*/ OPC_CheckChild1Type, MVT::i32, ++/*418197*/ OPC_CheckChild2Integer, 1, ++/*418199*/ OPC_CheckChild2Type, MVT::i32, ++/*418201*/ OPC_CheckChild3Integer, 1, ++/*418203*/ OPC_CheckChild3Type, MVT::i32, ++/*418205*/ OPC_CheckChild4Integer, 1, ++/*418207*/ OPC_CheckChild4Type, MVT::i32, ++/*418209*/ OPC_MoveChild5, ++/*418210*/ OPC_CheckInteger, 1, ++/*418212*/ OPC_CheckType, MVT::i32, ++/*418214*/ OPC_MoveParent, ++/*418215*/ OPC_MoveChild6, ++/*418216*/ OPC_CheckInteger, 1, ++/*418218*/ OPC_CheckType, MVT::i32, ++/*418220*/ OPC_MoveParent, ++/*418221*/ OPC_MoveChild7, ++/*418222*/ OPC_CheckInteger, 1, ++/*418224*/ OPC_CheckType, MVT::i32, ++/*418226*/ OPC_MoveParent, ++/*418227*/ OPC_MoveParent, ++/*418228*/ OPC_CheckChild1Same, 0, ++/*418230*/ OPC_MoveParent, ++/*418231*/ OPC_MoveParent, ++/*418232*/ OPC_MoveChild1, ++/*418233*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*418236*/ OPC_CheckChild0Integer, 15, ++/*418238*/ OPC_CheckChild0Type, MVT::i32, ++/*418240*/ OPC_CheckChild1Integer, 15, ++/*418242*/ OPC_CheckChild1Type, MVT::i32, ++/*418244*/ OPC_CheckChild2Integer, 15, ++/*418246*/ OPC_CheckChild2Type, MVT::i32, ++/*418248*/ OPC_CheckChild3Integer, 15, ++/*418250*/ OPC_CheckChild3Type, MVT::i32, ++/*418252*/ OPC_CheckChild4Integer, 15, ++/*418254*/ OPC_CheckChild4Type, MVT::i32, ++/*418256*/ OPC_MoveChild5, ++/*418257*/ OPC_CheckInteger, 15, ++/*418259*/ OPC_CheckType, MVT::i32, ++/*418261*/ OPC_MoveParent, ++/*418262*/ OPC_MoveChild6, ++/*418263*/ OPC_CheckInteger, 15, ++/*418265*/ OPC_CheckType, MVT::i32, ++/*418267*/ OPC_MoveParent, ++/*418268*/ OPC_MoveChild7, ++/*418269*/ OPC_CheckInteger, 15, ++/*418271*/ OPC_CheckType, MVT::i32, ++/*418273*/ OPC_MoveParent, ++/*418274*/ OPC_CheckType, MVT::v8i16, ++/*418276*/ OPC_MoveParent, ++/*418277*/ OPC_MoveParent, ++/*418278*/ OPC_MoveParent, ++/*418279*/ OPC_MoveChild1, ++/*418280*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*418283*/ OPC_CheckChild0Integer, 1, ++/*418285*/ OPC_CheckChild0Type, MVT::i32, ++/*418287*/ OPC_CheckChild1Integer, 1, ++/*418289*/ OPC_CheckChild1Type, MVT::i32, ++/*418291*/ OPC_CheckChild2Integer, 1, ++/*418293*/ OPC_CheckChild2Type, MVT::i32, ++/*418295*/ OPC_CheckChild3Integer, 1, ++/*418297*/ OPC_CheckChild3Type, MVT::i32, ++/*418299*/ OPC_CheckChild4Integer, 1, ++/*418301*/ OPC_CheckChild4Type, MVT::i32, ++/*418303*/ OPC_MoveChild5, ++/*418304*/ OPC_CheckInteger, 1, ++/*418306*/ OPC_CheckType, MVT::i32, ++/*418308*/ OPC_MoveParent, ++/*418309*/ OPC_MoveChild6, ++/*418310*/ OPC_CheckInteger, 1, ++/*418312*/ OPC_CheckType, MVT::i32, ++/*418314*/ OPC_MoveParent, ++/*418315*/ OPC_MoveChild7, ++/*418316*/ OPC_CheckInteger, 1, ++/*418318*/ OPC_CheckType, MVT::i32, ++/*418320*/ OPC_MoveParent, ++/*418321*/ OPC_CheckType, MVT::v8i16, ++/*418323*/ OPC_MoveParent, ++/*418324*/ OPC_CheckType, MVT::v8i16, ++/*418326*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*418328*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$a), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*418336*/ /*Scope*/ 23|128,1/*151*/, /*->418489*/ ++/*418338*/ OPC_CheckChild0Same, 0, ++/*418340*/ OPC_MoveChild1, ++/*418341*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*418344*/ OPC_CheckChild0Integer, 1, ++/*418346*/ OPC_CheckChild0Type, MVT::i32, ++/*418348*/ OPC_CheckChild1Integer, 1, ++/*418350*/ OPC_CheckChild1Type, MVT::i32, ++/*418352*/ OPC_CheckChild2Integer, 1, ++/*418354*/ OPC_CheckChild2Type, MVT::i32, ++/*418356*/ OPC_CheckChild3Integer, 1, ++/*418358*/ OPC_CheckChild3Type, MVT::i32, ++/*418360*/ OPC_CheckChild4Integer, 1, ++/*418362*/ OPC_CheckChild4Type, MVT::i32, ++/*418364*/ OPC_MoveChild5, ++/*418365*/ OPC_CheckInteger, 1, ++/*418367*/ OPC_CheckType, MVT::i32, ++/*418369*/ OPC_MoveParent, ++/*418370*/ OPC_MoveChild6, ++/*418371*/ OPC_CheckInteger, 1, ++/*418373*/ OPC_CheckType, MVT::i32, ++/*418375*/ OPC_MoveParent, ++/*418376*/ OPC_MoveChild7, ++/*418377*/ OPC_CheckInteger, 1, ++/*418379*/ OPC_CheckType, MVT::i32, ++/*418381*/ OPC_MoveParent, ++/*418382*/ OPC_MoveParent, ++/*418383*/ OPC_MoveParent, ++/*418384*/ OPC_MoveParent, ++/*418385*/ OPC_MoveChild1, ++/*418386*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*418389*/ OPC_CheckChild0Integer, 15, ++/*418391*/ OPC_CheckChild0Type, MVT::i32, ++/*418393*/ OPC_CheckChild1Integer, 15, ++/*418395*/ OPC_CheckChild1Type, MVT::i32, ++/*418397*/ OPC_CheckChild2Integer, 15, ++/*418399*/ OPC_CheckChild2Type, MVT::i32, ++/*418401*/ OPC_CheckChild3Integer, 15, ++/*418403*/ OPC_CheckChild3Type, MVT::i32, ++/*418405*/ OPC_CheckChild4Integer, 15, ++/*418407*/ OPC_CheckChild4Type, MVT::i32, ++/*418409*/ OPC_MoveChild5, ++/*418410*/ OPC_CheckInteger, 15, ++/*418412*/ OPC_CheckType, MVT::i32, ++/*418414*/ OPC_MoveParent, ++/*418415*/ OPC_MoveChild6, ++/*418416*/ OPC_CheckInteger, 15, ++/*418418*/ OPC_CheckType, MVT::i32, ++/*418420*/ OPC_MoveParent, ++/*418421*/ OPC_MoveChild7, ++/*418422*/ OPC_CheckInteger, 15, ++/*418424*/ OPC_CheckType, MVT::i32, ++/*418426*/ OPC_MoveParent, ++/*418427*/ OPC_CheckType, MVT::v8i16, ++/*418429*/ OPC_MoveParent, ++/*418430*/ OPC_MoveParent, ++/*418431*/ OPC_MoveParent, ++/*418432*/ OPC_MoveChild1, ++/*418433*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*418436*/ OPC_CheckChild0Integer, 1, ++/*418438*/ OPC_CheckChild0Type, MVT::i32, ++/*418440*/ OPC_CheckChild1Integer, 1, ++/*418442*/ OPC_CheckChild1Type, MVT::i32, ++/*418444*/ OPC_CheckChild2Integer, 1, ++/*418446*/ OPC_CheckChild2Type, MVT::i32, ++/*418448*/ OPC_CheckChild3Integer, 1, ++/*418450*/ OPC_CheckChild3Type, MVT::i32, ++/*418452*/ OPC_CheckChild4Integer, 1, ++/*418454*/ OPC_CheckChild4Type, MVT::i32, ++/*418456*/ OPC_MoveChild5, ++/*418457*/ OPC_CheckInteger, 1, ++/*418459*/ OPC_CheckType, MVT::i32, ++/*418461*/ OPC_MoveParent, ++/*418462*/ OPC_MoveChild6, ++/*418463*/ OPC_CheckInteger, 1, ++/*418465*/ OPC_CheckType, MVT::i32, ++/*418467*/ OPC_MoveParent, ++/*418468*/ OPC_MoveChild7, ++/*418469*/ OPC_CheckInteger, 1, ++/*418471*/ OPC_CheckType, MVT::i32, ++/*418473*/ OPC_MoveParent, ++/*418474*/ OPC_CheckType, MVT::v8i16, ++/*418476*/ OPC_MoveParent, ++/*418477*/ OPC_CheckType, MVT::v8i16, ++/*418479*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*418481*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$a), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*418489*/ 0, /*End of Scope*/ ++/*418490*/ /*Scope*/ 15|128,2/*271*/, /*->418763*/ ++/*418492*/ OPC_MoveChild0, ++/*418493*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*418496*/ OPC_CheckChild0Integer, 1, ++/*418498*/ OPC_CheckChild0Type, MVT::i32, ++/*418500*/ OPC_CheckChild1Integer, 1, ++/*418502*/ OPC_CheckChild1Type, MVT::i32, ++/*418504*/ OPC_CheckChild2Integer, 1, ++/*418506*/ OPC_CheckChild2Type, MVT::i32, ++/*418508*/ OPC_CheckChild3Integer, 1, ++/*418510*/ OPC_CheckChild3Type, MVT::i32, ++/*418512*/ OPC_CheckChild4Integer, 1, ++/*418514*/ OPC_CheckChild4Type, MVT::i32, ++/*418516*/ OPC_MoveChild5, ++/*418517*/ OPC_CheckInteger, 1, ++/*418519*/ OPC_CheckType, MVT::i32, ++/*418521*/ OPC_MoveParent, ++/*418522*/ OPC_MoveChild6, ++/*418523*/ OPC_CheckInteger, 1, ++/*418525*/ OPC_CheckType, MVT::i32, ++/*418527*/ OPC_MoveParent, ++/*418528*/ OPC_MoveChild7, ++/*418529*/ OPC_CheckInteger, 1, ++/*418531*/ OPC_CheckType, MVT::i32, ++/*418533*/ OPC_MoveParent, ++/*418534*/ OPC_MoveParent, ++/*418535*/ OPC_MoveChild1, ++/*418536*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*418539*/ OPC_Scope, 110, /*->418651*/ // 2 children in Scope ++/*418541*/ OPC_CheckChild0Same, 1, ++/*418543*/ OPC_CheckChild1Same, 0, ++/*418545*/ OPC_MoveParent, ++/*418546*/ OPC_MoveParent, ++/*418547*/ OPC_MoveChild1, ++/*418548*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*418551*/ OPC_CheckChild0Integer, 15, ++/*418553*/ OPC_CheckChild0Type, MVT::i32, ++/*418555*/ OPC_CheckChild1Integer, 15, ++/*418557*/ OPC_CheckChild1Type, MVT::i32, ++/*418559*/ OPC_CheckChild2Integer, 15, ++/*418561*/ OPC_CheckChild2Type, MVT::i32, ++/*418563*/ OPC_CheckChild3Integer, 15, ++/*418565*/ OPC_CheckChild3Type, MVT::i32, ++/*418567*/ OPC_CheckChild4Integer, 15, ++/*418569*/ OPC_CheckChild4Type, MVT::i32, ++/*418571*/ OPC_MoveChild5, ++/*418572*/ OPC_CheckInteger, 15, ++/*418574*/ OPC_CheckType, MVT::i32, ++/*418576*/ OPC_MoveParent, ++/*418577*/ OPC_MoveChild6, ++/*418578*/ OPC_CheckInteger, 15, ++/*418580*/ OPC_CheckType, MVT::i32, ++/*418582*/ OPC_MoveParent, ++/*418583*/ OPC_MoveChild7, ++/*418584*/ OPC_CheckInteger, 15, ++/*418586*/ OPC_CheckType, MVT::i32, ++/*418588*/ OPC_MoveParent, ++/*418589*/ OPC_CheckType, MVT::v8i16, ++/*418591*/ OPC_MoveParent, ++/*418592*/ OPC_MoveParent, ++/*418593*/ OPC_MoveParent, ++/*418594*/ OPC_MoveChild1, ++/*418595*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*418598*/ OPC_CheckChild0Integer, 1, ++/*418600*/ OPC_CheckChild0Type, MVT::i32, ++/*418602*/ OPC_CheckChild1Integer, 1, ++/*418604*/ OPC_CheckChild1Type, MVT::i32, ++/*418606*/ OPC_CheckChild2Integer, 1, ++/*418608*/ OPC_CheckChild2Type, MVT::i32, ++/*418610*/ OPC_CheckChild3Integer, 1, ++/*418612*/ OPC_CheckChild3Type, MVT::i32, ++/*418614*/ OPC_CheckChild4Integer, 1, ++/*418616*/ OPC_CheckChild4Type, MVT::i32, ++/*418618*/ OPC_MoveChild5, ++/*418619*/ OPC_CheckInteger, 1, ++/*418621*/ OPC_CheckType, MVT::i32, ++/*418623*/ OPC_MoveParent, ++/*418624*/ OPC_MoveChild6, ++/*418625*/ OPC_CheckInteger, 1, ++/*418627*/ OPC_CheckType, MVT::i32, ++/*418629*/ OPC_MoveParent, ++/*418630*/ OPC_MoveChild7, ++/*418631*/ OPC_CheckInteger, 1, ++/*418633*/ OPC_CheckType, MVT::i32, ++/*418635*/ OPC_MoveParent, ++/*418636*/ OPC_CheckType, MVT::v8i16, ++/*418638*/ OPC_MoveParent, ++/*418639*/ OPC_CheckType, MVT::v8i16, ++/*418641*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*418643*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$a), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*418651*/ /*Scope*/ 110, /*->418762*/ ++/*418652*/ OPC_CheckChild0Same, 0, ++/*418654*/ OPC_CheckChild1Same, 1, ++/*418656*/ OPC_MoveParent, ++/*418657*/ OPC_MoveParent, ++/*418658*/ OPC_MoveChild1, ++/*418659*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*418662*/ OPC_CheckChild0Integer, 15, ++/*418664*/ OPC_CheckChild0Type, MVT::i32, ++/*418666*/ OPC_CheckChild1Integer, 15, ++/*418668*/ OPC_CheckChild1Type, MVT::i32, ++/*418670*/ OPC_CheckChild2Integer, 15, ++/*418672*/ OPC_CheckChild2Type, MVT::i32, ++/*418674*/ OPC_CheckChild3Integer, 15, ++/*418676*/ OPC_CheckChild3Type, MVT::i32, ++/*418678*/ OPC_CheckChild4Integer, 15, ++/*418680*/ OPC_CheckChild4Type, MVT::i32, ++/*418682*/ OPC_MoveChild5, ++/*418683*/ OPC_CheckInteger, 15, ++/*418685*/ OPC_CheckType, MVT::i32, ++/*418687*/ OPC_MoveParent, ++/*418688*/ OPC_MoveChild6, ++/*418689*/ OPC_CheckInteger, 15, ++/*418691*/ OPC_CheckType, MVT::i32, ++/*418693*/ OPC_MoveParent, ++/*418694*/ OPC_MoveChild7, ++/*418695*/ OPC_CheckInteger, 15, ++/*418697*/ OPC_CheckType, MVT::i32, ++/*418699*/ OPC_MoveParent, ++/*418700*/ OPC_CheckType, MVT::v8i16, ++/*418702*/ OPC_MoveParent, ++/*418703*/ OPC_MoveParent, ++/*418704*/ OPC_MoveParent, ++/*418705*/ OPC_MoveChild1, ++/*418706*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*418709*/ OPC_CheckChild0Integer, 1, ++/*418711*/ OPC_CheckChild0Type, MVT::i32, ++/*418713*/ OPC_CheckChild1Integer, 1, ++/*418715*/ OPC_CheckChild1Type, MVT::i32, ++/*418717*/ OPC_CheckChild2Integer, 1, ++/*418719*/ OPC_CheckChild2Type, MVT::i32, ++/*418721*/ OPC_CheckChild3Integer, 1, ++/*418723*/ OPC_CheckChild3Type, MVT::i32, ++/*418725*/ OPC_CheckChild4Integer, 1, ++/*418727*/ OPC_CheckChild4Type, MVT::i32, ++/*418729*/ OPC_MoveChild5, ++/*418730*/ OPC_CheckInteger, 1, ++/*418732*/ OPC_CheckType, MVT::i32, ++/*418734*/ OPC_MoveParent, ++/*418735*/ OPC_MoveChild6, ++/*418736*/ OPC_CheckInteger, 1, ++/*418738*/ OPC_CheckType, MVT::i32, ++/*418740*/ OPC_MoveParent, ++/*418741*/ OPC_MoveChild7, ++/*418742*/ OPC_CheckInteger, 1, ++/*418744*/ OPC_CheckType, MVT::i32, ++/*418746*/ OPC_MoveParent, ++/*418747*/ OPC_CheckType, MVT::v8i16, ++/*418749*/ OPC_MoveParent, ++/*418750*/ OPC_CheckType, MVT::v8i16, ++/*418752*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*418754*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$a), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*418762*/ 0, /*End of Scope*/ ++/*418763*/ 0, /*End of Scope*/ ++/*418764*/ /*Scope*/ 31|128,29/*3743*/, /*->422509*/ ++/*418766*/ OPC_RecordChild1, // #1 = $b ++/*418767*/ OPC_MoveParent, ++/*418768*/ OPC_MoveChild1, ++/*418769*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*418772*/ OPC_CheckChild0Integer, 1, ++/*418774*/ OPC_CheckChild0Type, MVT::i32, ++/*418776*/ OPC_CheckChild1Integer, 1, ++/*418778*/ OPC_CheckChild1Type, MVT::i32, ++/*418780*/ OPC_CheckChild2Integer, 1, ++/*418782*/ OPC_CheckChild2Type, MVT::i32, ++/*418784*/ OPC_CheckChild3Integer, 1, ++/*418786*/ OPC_CheckChild3Type, MVT::i32, ++/*418788*/ OPC_CheckChild4Integer, 1, ++/*418790*/ OPC_CheckChild4Type, MVT::i32, ++/*418792*/ OPC_MoveChild5, ++/*418793*/ OPC_CheckInteger, 1, ++/*418795*/ OPC_CheckType, MVT::i32, ++/*418797*/ OPC_MoveParent, ++/*418798*/ OPC_MoveChild6, ++/*418799*/ OPC_CheckInteger, 1, ++/*418801*/ OPC_CheckType, MVT::i32, ++/*418803*/ OPC_MoveParent, ++/*418804*/ OPC_MoveChild7, ++/*418805*/ OPC_CheckInteger, 1, ++/*418807*/ OPC_CheckType, MVT::i32, ++/*418809*/ OPC_MoveParent, ++/*418810*/ OPC_MoveParent, ++/*418811*/ OPC_MoveParent, ++/*418812*/ OPC_MoveChild1, ++/*418813*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*418816*/ OPC_MoveChild0, ++/*418817*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*418820*/ OPC_Scope, 40|128,7/*936*/, /*->419759*/ // 7 children in Scope ++/*418823*/ OPC_MoveChild0, ++/*418824*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*418827*/ OPC_Scope, 25|128,1/*153*/, /*->418983*/ // 6 children in Scope ++/*418830*/ OPC_MoveChild0, ++/*418831*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*418834*/ OPC_CheckChild0Integer, 1, ++/*418836*/ OPC_CheckChild0Type, MVT::i32, ++/*418838*/ OPC_CheckChild1Integer, 1, ++/*418840*/ OPC_CheckChild1Type, MVT::i32, ++/*418842*/ OPC_CheckChild2Integer, 1, ++/*418844*/ OPC_CheckChild2Type, MVT::i32, ++/*418846*/ OPC_CheckChild3Integer, 1, ++/*418848*/ OPC_CheckChild3Type, MVT::i32, ++/*418850*/ OPC_CheckChild4Integer, 1, ++/*418852*/ OPC_CheckChild4Type, MVT::i32, ++/*418854*/ OPC_MoveChild5, ++/*418855*/ OPC_CheckInteger, 1, ++/*418857*/ OPC_CheckType, MVT::i32, ++/*418859*/ OPC_MoveParent, ++/*418860*/ OPC_MoveChild6, ++/*418861*/ OPC_CheckInteger, 1, ++/*418863*/ OPC_CheckType, MVT::i32, ++/*418865*/ OPC_MoveParent, ++/*418866*/ OPC_MoveChild7, ++/*418867*/ OPC_CheckInteger, 1, ++/*418869*/ OPC_CheckType, MVT::i32, ++/*418871*/ OPC_MoveParent, ++/*418872*/ OPC_MoveParent, ++/*418873*/ OPC_CheckChild1Same, 0, ++/*418875*/ OPC_MoveParent, ++/*418876*/ OPC_CheckChild1Same, 1, ++/*418878*/ OPC_MoveParent, ++/*418879*/ OPC_MoveChild1, ++/*418880*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*418883*/ OPC_CheckChild0Integer, 15, ++/*418885*/ OPC_CheckChild0Type, MVT::i32, ++/*418887*/ OPC_CheckChild1Integer, 15, ++/*418889*/ OPC_CheckChild1Type, MVT::i32, ++/*418891*/ OPC_CheckChild2Integer, 15, ++/*418893*/ OPC_CheckChild2Type, MVT::i32, ++/*418895*/ OPC_CheckChild3Integer, 15, ++/*418897*/ OPC_CheckChild3Type, MVT::i32, ++/*418899*/ OPC_CheckChild4Integer, 15, ++/*418901*/ OPC_CheckChild4Type, MVT::i32, ++/*418903*/ OPC_MoveChild5, ++/*418904*/ OPC_CheckInteger, 15, ++/*418906*/ OPC_CheckType, MVT::i32, ++/*418908*/ OPC_MoveParent, ++/*418909*/ OPC_MoveChild6, ++/*418910*/ OPC_CheckInteger, 15, ++/*418912*/ OPC_CheckType, MVT::i32, ++/*418914*/ OPC_MoveParent, ++/*418915*/ OPC_MoveChild7, ++/*418916*/ OPC_CheckInteger, 15, ++/*418918*/ OPC_CheckType, MVT::i32, ++/*418920*/ OPC_MoveParent, ++/*418921*/ OPC_CheckType, MVT::v8i16, ++/*418923*/ OPC_MoveParent, ++/*418924*/ OPC_MoveParent, ++/*418925*/ OPC_MoveParent, ++/*418926*/ OPC_MoveChild1, ++/*418927*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*418930*/ OPC_CheckChild0Integer, 1, ++/*418932*/ OPC_CheckChild0Type, MVT::i32, ++/*418934*/ OPC_CheckChild1Integer, 1, ++/*418936*/ OPC_CheckChild1Type, MVT::i32, ++/*418938*/ OPC_CheckChild2Integer, 1, ++/*418940*/ OPC_CheckChild2Type, MVT::i32, ++/*418942*/ OPC_CheckChild3Integer, 1, ++/*418944*/ OPC_CheckChild3Type, MVT::i32, ++/*418946*/ OPC_CheckChild4Integer, 1, ++/*418948*/ OPC_CheckChild4Type, MVT::i32, ++/*418950*/ OPC_MoveChild5, ++/*418951*/ OPC_CheckInteger, 1, ++/*418953*/ OPC_CheckType, MVT::i32, ++/*418955*/ OPC_MoveParent, ++/*418956*/ OPC_MoveChild6, ++/*418957*/ OPC_CheckInteger, 1, ++/*418959*/ OPC_CheckType, MVT::i32, ++/*418961*/ OPC_MoveParent, ++/*418962*/ OPC_MoveChild7, ++/*418963*/ OPC_CheckInteger, 1, ++/*418965*/ OPC_CheckType, MVT::i32, ++/*418967*/ OPC_MoveParent, ++/*418968*/ OPC_CheckType, MVT::v8i16, ++/*418970*/ OPC_MoveParent, ++/*418971*/ OPC_CheckType, MVT::v8i16, ++/*418973*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*418975*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a), LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*418983*/ /*Scope*/ 25|128,1/*153*/, /*->419138*/ ++/*418985*/ OPC_CheckChild0Same, 0, ++/*418987*/ OPC_MoveChild1, ++/*418988*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*418991*/ OPC_CheckChild0Integer, 1, ++/*418993*/ OPC_CheckChild0Type, MVT::i32, ++/*418995*/ OPC_CheckChild1Integer, 1, ++/*418997*/ OPC_CheckChild1Type, MVT::i32, ++/*418999*/ OPC_CheckChild2Integer, 1, ++/*419001*/ OPC_CheckChild2Type, MVT::i32, ++/*419003*/ OPC_CheckChild3Integer, 1, ++/*419005*/ OPC_CheckChild3Type, MVT::i32, ++/*419007*/ OPC_CheckChild4Integer, 1, ++/*419009*/ OPC_CheckChild4Type, MVT::i32, ++/*419011*/ OPC_MoveChild5, ++/*419012*/ OPC_CheckInteger, 1, ++/*419014*/ OPC_CheckType, MVT::i32, ++/*419016*/ OPC_MoveParent, ++/*419017*/ OPC_MoveChild6, ++/*419018*/ OPC_CheckInteger, 1, ++/*419020*/ OPC_CheckType, MVT::i32, ++/*419022*/ OPC_MoveParent, ++/*419023*/ OPC_MoveChild7, ++/*419024*/ OPC_CheckInteger, 1, ++/*419026*/ OPC_CheckType, MVT::i32, ++/*419028*/ OPC_MoveParent, ++/*419029*/ OPC_MoveParent, ++/*419030*/ OPC_MoveParent, ++/*419031*/ OPC_CheckChild1Same, 1, ++/*419033*/ OPC_MoveParent, ++/*419034*/ OPC_MoveChild1, ++/*419035*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*419038*/ OPC_CheckChild0Integer, 15, ++/*419040*/ OPC_CheckChild0Type, MVT::i32, ++/*419042*/ OPC_CheckChild1Integer, 15, ++/*419044*/ OPC_CheckChild1Type, MVT::i32, ++/*419046*/ OPC_CheckChild2Integer, 15, ++/*419048*/ OPC_CheckChild2Type, MVT::i32, ++/*419050*/ OPC_CheckChild3Integer, 15, ++/*419052*/ OPC_CheckChild3Type, MVT::i32, ++/*419054*/ OPC_CheckChild4Integer, 15, ++/*419056*/ OPC_CheckChild4Type, MVT::i32, ++/*419058*/ OPC_MoveChild5, ++/*419059*/ OPC_CheckInteger, 15, ++/*419061*/ OPC_CheckType, MVT::i32, ++/*419063*/ OPC_MoveParent, ++/*419064*/ OPC_MoveChild6, ++/*419065*/ OPC_CheckInteger, 15, ++/*419067*/ OPC_CheckType, MVT::i32, ++/*419069*/ OPC_MoveParent, ++/*419070*/ OPC_MoveChild7, ++/*419071*/ OPC_CheckInteger, 15, ++/*419073*/ OPC_CheckType, MVT::i32, ++/*419075*/ OPC_MoveParent, ++/*419076*/ OPC_CheckType, MVT::v8i16, ++/*419078*/ OPC_MoveParent, ++/*419079*/ OPC_MoveParent, ++/*419080*/ OPC_MoveParent, ++/*419081*/ OPC_MoveChild1, ++/*419082*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*419085*/ OPC_CheckChild0Integer, 1, ++/*419087*/ OPC_CheckChild0Type, MVT::i32, ++/*419089*/ OPC_CheckChild1Integer, 1, ++/*419091*/ OPC_CheckChild1Type, MVT::i32, ++/*419093*/ OPC_CheckChild2Integer, 1, ++/*419095*/ OPC_CheckChild2Type, MVT::i32, ++/*419097*/ OPC_CheckChild3Integer, 1, ++/*419099*/ OPC_CheckChild3Type, MVT::i32, ++/*419101*/ OPC_CheckChild4Integer, 1, ++/*419103*/ OPC_CheckChild4Type, MVT::i32, ++/*419105*/ OPC_MoveChild5, ++/*419106*/ OPC_CheckInteger, 1, ++/*419108*/ OPC_CheckType, MVT::i32, ++/*419110*/ OPC_MoveParent, ++/*419111*/ OPC_MoveChild6, ++/*419112*/ OPC_CheckInteger, 1, ++/*419114*/ OPC_CheckType, MVT::i32, ++/*419116*/ OPC_MoveParent, ++/*419117*/ OPC_MoveChild7, ++/*419118*/ OPC_CheckInteger, 1, ++/*419120*/ OPC_CheckType, MVT::i32, ++/*419122*/ OPC_MoveParent, ++/*419123*/ OPC_CheckType, MVT::v8i16, ++/*419125*/ OPC_MoveParent, ++/*419126*/ OPC_CheckType, MVT::v8i16, ++/*419128*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*419130*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*419138*/ /*Scope*/ 25|128,1/*153*/, /*->419293*/ ++/*419140*/ OPC_MoveChild0, ++/*419141*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*419144*/ OPC_CheckChild0Integer, 1, ++/*419146*/ OPC_CheckChild0Type, MVT::i32, ++/*419148*/ OPC_CheckChild1Integer, 1, ++/*419150*/ OPC_CheckChild1Type, MVT::i32, ++/*419152*/ OPC_CheckChild2Integer, 1, ++/*419154*/ OPC_CheckChild2Type, MVT::i32, ++/*419156*/ OPC_CheckChild3Integer, 1, ++/*419158*/ OPC_CheckChild3Type, MVT::i32, ++/*419160*/ OPC_CheckChild4Integer, 1, ++/*419162*/ OPC_CheckChild4Type, MVT::i32, ++/*419164*/ OPC_MoveChild5, ++/*419165*/ OPC_CheckInteger, 1, ++/*419167*/ OPC_CheckType, MVT::i32, ++/*419169*/ OPC_MoveParent, ++/*419170*/ OPC_MoveChild6, ++/*419171*/ OPC_CheckInteger, 1, ++/*419173*/ OPC_CheckType, MVT::i32, ++/*419175*/ OPC_MoveParent, ++/*419176*/ OPC_MoveChild7, ++/*419177*/ OPC_CheckInteger, 1, ++/*419179*/ OPC_CheckType, MVT::i32, ++/*419181*/ OPC_MoveParent, ++/*419182*/ OPC_MoveParent, ++/*419183*/ OPC_CheckChild1Same, 1, ++/*419185*/ OPC_MoveParent, ++/*419186*/ OPC_CheckChild1Same, 0, ++/*419188*/ OPC_MoveParent, ++/*419189*/ OPC_MoveChild1, ++/*419190*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*419193*/ OPC_CheckChild0Integer, 15, ++/*419195*/ OPC_CheckChild0Type, MVT::i32, ++/*419197*/ OPC_CheckChild1Integer, 15, ++/*419199*/ OPC_CheckChild1Type, MVT::i32, ++/*419201*/ OPC_CheckChild2Integer, 15, ++/*419203*/ OPC_CheckChild2Type, MVT::i32, ++/*419205*/ OPC_CheckChild3Integer, 15, ++/*419207*/ OPC_CheckChild3Type, MVT::i32, ++/*419209*/ OPC_CheckChild4Integer, 15, ++/*419211*/ OPC_CheckChild4Type, MVT::i32, ++/*419213*/ OPC_MoveChild5, ++/*419214*/ OPC_CheckInteger, 15, ++/*419216*/ OPC_CheckType, MVT::i32, ++/*419218*/ OPC_MoveParent, ++/*419219*/ OPC_MoveChild6, ++/*419220*/ OPC_CheckInteger, 15, ++/*419222*/ OPC_CheckType, MVT::i32, ++/*419224*/ OPC_MoveParent, ++/*419225*/ OPC_MoveChild7, ++/*419226*/ OPC_CheckInteger, 15, ++/*419228*/ OPC_CheckType, MVT::i32, ++/*419230*/ OPC_MoveParent, ++/*419231*/ OPC_CheckType, MVT::v8i16, ++/*419233*/ OPC_MoveParent, ++/*419234*/ OPC_MoveParent, ++/*419235*/ OPC_MoveParent, ++/*419236*/ OPC_MoveChild1, ++/*419237*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*419240*/ OPC_CheckChild0Integer, 1, ++/*419242*/ OPC_CheckChild0Type, MVT::i32, ++/*419244*/ OPC_CheckChild1Integer, 1, ++/*419246*/ OPC_CheckChild1Type, MVT::i32, ++/*419248*/ OPC_CheckChild2Integer, 1, ++/*419250*/ OPC_CheckChild2Type, MVT::i32, ++/*419252*/ OPC_CheckChild3Integer, 1, ++/*419254*/ OPC_CheckChild3Type, MVT::i32, ++/*419256*/ OPC_CheckChild4Integer, 1, ++/*419258*/ OPC_CheckChild4Type, MVT::i32, ++/*419260*/ OPC_MoveChild5, ++/*419261*/ OPC_CheckInteger, 1, ++/*419263*/ OPC_CheckType, MVT::i32, ++/*419265*/ OPC_MoveParent, ++/*419266*/ OPC_MoveChild6, ++/*419267*/ OPC_CheckInteger, 1, ++/*419269*/ OPC_CheckType, MVT::i32, ++/*419271*/ OPC_MoveParent, ++/*419272*/ OPC_MoveChild7, ++/*419273*/ OPC_CheckInteger, 1, ++/*419275*/ OPC_CheckType, MVT::i32, ++/*419277*/ OPC_MoveParent, ++/*419278*/ OPC_CheckType, MVT::v8i16, ++/*419280*/ OPC_MoveParent, ++/*419281*/ OPC_CheckType, MVT::v8i16, ++/*419283*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*419285*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b), LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*419293*/ /*Scope*/ 25|128,1/*153*/, /*->419448*/ ++/*419295*/ OPC_CheckChild0Same, 1, ++/*419297*/ OPC_MoveChild1, ++/*419298*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*419301*/ OPC_CheckChild0Integer, 1, ++/*419303*/ OPC_CheckChild0Type, MVT::i32, ++/*419305*/ OPC_CheckChild1Integer, 1, ++/*419307*/ OPC_CheckChild1Type, MVT::i32, ++/*419309*/ OPC_CheckChild2Integer, 1, ++/*419311*/ OPC_CheckChild2Type, MVT::i32, ++/*419313*/ OPC_CheckChild3Integer, 1, ++/*419315*/ OPC_CheckChild3Type, MVT::i32, ++/*419317*/ OPC_CheckChild4Integer, 1, ++/*419319*/ OPC_CheckChild4Type, MVT::i32, ++/*419321*/ OPC_MoveChild5, ++/*419322*/ OPC_CheckInteger, 1, ++/*419324*/ OPC_CheckType, MVT::i32, ++/*419326*/ OPC_MoveParent, ++/*419327*/ OPC_MoveChild6, ++/*419328*/ OPC_CheckInteger, 1, ++/*419330*/ OPC_CheckType, MVT::i32, ++/*419332*/ OPC_MoveParent, ++/*419333*/ OPC_MoveChild7, ++/*419334*/ OPC_CheckInteger, 1, ++/*419336*/ OPC_CheckType, MVT::i32, ++/*419338*/ OPC_MoveParent, ++/*419339*/ OPC_MoveParent, ++/*419340*/ OPC_MoveParent, ++/*419341*/ OPC_CheckChild1Same, 0, ++/*419343*/ OPC_MoveParent, ++/*419344*/ OPC_MoveChild1, ++/*419345*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*419348*/ OPC_CheckChild0Integer, 15, ++/*419350*/ OPC_CheckChild0Type, MVT::i32, ++/*419352*/ OPC_CheckChild1Integer, 15, ++/*419354*/ OPC_CheckChild1Type, MVT::i32, ++/*419356*/ OPC_CheckChild2Integer, 15, ++/*419358*/ OPC_CheckChild2Type, MVT::i32, ++/*419360*/ OPC_CheckChild3Integer, 15, ++/*419362*/ OPC_CheckChild3Type, MVT::i32, ++/*419364*/ OPC_CheckChild4Integer, 15, ++/*419366*/ OPC_CheckChild4Type, MVT::i32, ++/*419368*/ OPC_MoveChild5, ++/*419369*/ OPC_CheckInteger, 15, ++/*419371*/ OPC_CheckType, MVT::i32, ++/*419373*/ OPC_MoveParent, ++/*419374*/ OPC_MoveChild6, ++/*419375*/ OPC_CheckInteger, 15, ++/*419377*/ OPC_CheckType, MVT::i32, ++/*419379*/ OPC_MoveParent, ++/*419380*/ OPC_MoveChild7, ++/*419381*/ OPC_CheckInteger, 15, ++/*419383*/ OPC_CheckType, MVT::i32, ++/*419385*/ OPC_MoveParent, ++/*419386*/ OPC_CheckType, MVT::v8i16, ++/*419388*/ OPC_MoveParent, ++/*419389*/ OPC_MoveParent, ++/*419390*/ OPC_MoveParent, ++/*419391*/ OPC_MoveChild1, ++/*419392*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*419395*/ OPC_CheckChild0Integer, 1, ++/*419397*/ OPC_CheckChild0Type, MVT::i32, ++/*419399*/ OPC_CheckChild1Integer, 1, ++/*419401*/ OPC_CheckChild1Type, MVT::i32, ++/*419403*/ OPC_CheckChild2Integer, 1, ++/*419405*/ OPC_CheckChild2Type, MVT::i32, ++/*419407*/ OPC_CheckChild3Integer, 1, ++/*419409*/ OPC_CheckChild3Type, MVT::i32, ++/*419411*/ OPC_CheckChild4Integer, 1, ++/*419413*/ OPC_CheckChild4Type, MVT::i32, ++/*419415*/ OPC_MoveChild5, ++/*419416*/ OPC_CheckInteger, 1, ++/*419418*/ OPC_CheckType, MVT::i32, ++/*419420*/ OPC_MoveParent, ++/*419421*/ OPC_MoveChild6, ++/*419422*/ OPC_CheckInteger, 1, ++/*419424*/ OPC_CheckType, MVT::i32, ++/*419426*/ OPC_MoveParent, ++/*419427*/ OPC_MoveChild7, ++/*419428*/ OPC_CheckInteger, 1, ++/*419430*/ OPC_CheckType, MVT::i32, ++/*419432*/ OPC_MoveParent, ++/*419433*/ OPC_CheckType, MVT::v8i16, ++/*419435*/ OPC_MoveParent, ++/*419436*/ OPC_CheckType, MVT::v8i16, ++/*419438*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*419440*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*419448*/ /*Scope*/ 25|128,1/*153*/, /*->419603*/ ++/*419450*/ OPC_CheckChild0Same, 0, ++/*419452*/ OPC_CheckChild1Same, 1, ++/*419454*/ OPC_MoveParent, ++/*419455*/ OPC_MoveChild1, ++/*419456*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*419459*/ OPC_CheckChild0Integer, 1, ++/*419461*/ OPC_CheckChild0Type, MVT::i32, ++/*419463*/ OPC_CheckChild1Integer, 1, ++/*419465*/ OPC_CheckChild1Type, MVT::i32, ++/*419467*/ OPC_CheckChild2Integer, 1, ++/*419469*/ OPC_CheckChild2Type, MVT::i32, ++/*419471*/ OPC_CheckChild3Integer, 1, ++/*419473*/ OPC_CheckChild3Type, MVT::i32, ++/*419475*/ OPC_CheckChild4Integer, 1, ++/*419477*/ OPC_CheckChild4Type, MVT::i32, ++/*419479*/ OPC_MoveChild5, ++/*419480*/ OPC_CheckInteger, 1, ++/*419482*/ OPC_CheckType, MVT::i32, ++/*419484*/ OPC_MoveParent, ++/*419485*/ OPC_MoveChild6, ++/*419486*/ OPC_CheckInteger, 1, ++/*419488*/ OPC_CheckType, MVT::i32, ++/*419490*/ OPC_MoveParent, ++/*419491*/ OPC_MoveChild7, ++/*419492*/ OPC_CheckInteger, 1, ++/*419494*/ OPC_CheckType, MVT::i32, ++/*419496*/ OPC_MoveParent, ++/*419497*/ OPC_MoveParent, ++/*419498*/ OPC_MoveParent, ++/*419499*/ OPC_MoveChild1, ++/*419500*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*419503*/ OPC_CheckChild0Integer, 15, ++/*419505*/ OPC_CheckChild0Type, MVT::i32, ++/*419507*/ OPC_CheckChild1Integer, 15, ++/*419509*/ OPC_CheckChild1Type, MVT::i32, ++/*419511*/ OPC_CheckChild2Integer, 15, ++/*419513*/ OPC_CheckChild2Type, MVT::i32, ++/*419515*/ OPC_CheckChild3Integer, 15, ++/*419517*/ OPC_CheckChild3Type, MVT::i32, ++/*419519*/ OPC_CheckChild4Integer, 15, ++/*419521*/ OPC_CheckChild4Type, MVT::i32, ++/*419523*/ OPC_MoveChild5, ++/*419524*/ OPC_CheckInteger, 15, ++/*419526*/ OPC_CheckType, MVT::i32, ++/*419528*/ OPC_MoveParent, ++/*419529*/ OPC_MoveChild6, ++/*419530*/ OPC_CheckInteger, 15, ++/*419532*/ OPC_CheckType, MVT::i32, ++/*419534*/ OPC_MoveParent, ++/*419535*/ OPC_MoveChild7, ++/*419536*/ OPC_CheckInteger, 15, ++/*419538*/ OPC_CheckType, MVT::i32, ++/*419540*/ OPC_MoveParent, ++/*419541*/ OPC_CheckType, MVT::v8i16, ++/*419543*/ OPC_MoveParent, ++/*419544*/ OPC_MoveParent, ++/*419545*/ OPC_MoveParent, ++/*419546*/ OPC_MoveChild1, ++/*419547*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*419550*/ OPC_CheckChild0Integer, 1, ++/*419552*/ OPC_CheckChild0Type, MVT::i32, ++/*419554*/ OPC_CheckChild1Integer, 1, ++/*419556*/ OPC_CheckChild1Type, MVT::i32, ++/*419558*/ OPC_CheckChild2Integer, 1, ++/*419560*/ OPC_CheckChild2Type, MVT::i32, ++/*419562*/ OPC_CheckChild3Integer, 1, ++/*419564*/ OPC_CheckChild3Type, MVT::i32, ++/*419566*/ OPC_CheckChild4Integer, 1, ++/*419568*/ OPC_CheckChild4Type, MVT::i32, ++/*419570*/ OPC_MoveChild5, ++/*419571*/ OPC_CheckInteger, 1, ++/*419573*/ OPC_CheckType, MVT::i32, ++/*419575*/ OPC_MoveParent, ++/*419576*/ OPC_MoveChild6, ++/*419577*/ OPC_CheckInteger, 1, ++/*419579*/ OPC_CheckType, MVT::i32, ++/*419581*/ OPC_MoveParent, ++/*419582*/ OPC_MoveChild7, ++/*419583*/ OPC_CheckInteger, 1, ++/*419585*/ OPC_CheckType, MVT::i32, ++/*419587*/ OPC_MoveParent, ++/*419588*/ OPC_CheckType, MVT::v8i16, ++/*419590*/ OPC_MoveParent, ++/*419591*/ OPC_CheckType, MVT::v8i16, ++/*419593*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*419595*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*419603*/ /*Scope*/ 25|128,1/*153*/, /*->419758*/ ++/*419605*/ OPC_CheckChild0Same, 1, ++/*419607*/ OPC_CheckChild1Same, 0, ++/*419609*/ OPC_MoveParent, ++/*419610*/ OPC_MoveChild1, ++/*419611*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*419614*/ OPC_CheckChild0Integer, 1, ++/*419616*/ OPC_CheckChild0Type, MVT::i32, ++/*419618*/ OPC_CheckChild1Integer, 1, ++/*419620*/ OPC_CheckChild1Type, MVT::i32, ++/*419622*/ OPC_CheckChild2Integer, 1, ++/*419624*/ OPC_CheckChild2Type, MVT::i32, ++/*419626*/ OPC_CheckChild3Integer, 1, ++/*419628*/ OPC_CheckChild3Type, MVT::i32, ++/*419630*/ OPC_CheckChild4Integer, 1, ++/*419632*/ OPC_CheckChild4Type, MVT::i32, ++/*419634*/ OPC_MoveChild5, ++/*419635*/ OPC_CheckInteger, 1, ++/*419637*/ OPC_CheckType, MVT::i32, ++/*419639*/ OPC_MoveParent, ++/*419640*/ OPC_MoveChild6, ++/*419641*/ OPC_CheckInteger, 1, ++/*419643*/ OPC_CheckType, MVT::i32, ++/*419645*/ OPC_MoveParent, ++/*419646*/ OPC_MoveChild7, ++/*419647*/ OPC_CheckInteger, 1, ++/*419649*/ OPC_CheckType, MVT::i32, ++/*419651*/ OPC_MoveParent, ++/*419652*/ OPC_MoveParent, ++/*419653*/ OPC_MoveParent, ++/*419654*/ OPC_MoveChild1, ++/*419655*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*419658*/ OPC_CheckChild0Integer, 15, ++/*419660*/ OPC_CheckChild0Type, MVT::i32, ++/*419662*/ OPC_CheckChild1Integer, 15, ++/*419664*/ OPC_CheckChild1Type, MVT::i32, ++/*419666*/ OPC_CheckChild2Integer, 15, ++/*419668*/ OPC_CheckChild2Type, MVT::i32, ++/*419670*/ OPC_CheckChild3Integer, 15, ++/*419672*/ OPC_CheckChild3Type, MVT::i32, ++/*419674*/ OPC_CheckChild4Integer, 15, ++/*419676*/ OPC_CheckChild4Type, MVT::i32, ++/*419678*/ OPC_MoveChild5, ++/*419679*/ OPC_CheckInteger, 15, ++/*419681*/ OPC_CheckType, MVT::i32, ++/*419683*/ OPC_MoveParent, ++/*419684*/ OPC_MoveChild6, ++/*419685*/ OPC_CheckInteger, 15, ++/*419687*/ OPC_CheckType, MVT::i32, ++/*419689*/ OPC_MoveParent, ++/*419690*/ OPC_MoveChild7, ++/*419691*/ OPC_CheckInteger, 15, ++/*419693*/ OPC_CheckType, MVT::i32, ++/*419695*/ OPC_MoveParent, ++/*419696*/ OPC_CheckType, MVT::v8i16, ++/*419698*/ OPC_MoveParent, ++/*419699*/ OPC_MoveParent, ++/*419700*/ OPC_MoveParent, ++/*419701*/ OPC_MoveChild1, ++/*419702*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*419705*/ OPC_CheckChild0Integer, 1, ++/*419707*/ OPC_CheckChild0Type, MVT::i32, ++/*419709*/ OPC_CheckChild1Integer, 1, ++/*419711*/ OPC_CheckChild1Type, MVT::i32, ++/*419713*/ OPC_CheckChild2Integer, 1, ++/*419715*/ OPC_CheckChild2Type, MVT::i32, ++/*419717*/ OPC_CheckChild3Integer, 1, ++/*419719*/ OPC_CheckChild3Type, MVT::i32, ++/*419721*/ OPC_CheckChild4Integer, 1, ++/*419723*/ OPC_CheckChild4Type, MVT::i32, ++/*419725*/ OPC_MoveChild5, ++/*419726*/ OPC_CheckInteger, 1, ++/*419728*/ OPC_CheckType, MVT::i32, ++/*419730*/ OPC_MoveParent, ++/*419731*/ OPC_MoveChild6, ++/*419732*/ OPC_CheckInteger, 1, ++/*419734*/ OPC_CheckType, MVT::i32, ++/*419736*/ OPC_MoveParent, ++/*419737*/ OPC_MoveChild7, ++/*419738*/ OPC_CheckInteger, 1, ++/*419740*/ OPC_CheckType, MVT::i32, ++/*419742*/ OPC_MoveParent, ++/*419743*/ OPC_CheckType, MVT::v8i16, ++/*419745*/ OPC_MoveParent, ++/*419746*/ OPC_CheckType, MVT::v8i16, ++/*419748*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*419750*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*419758*/ 0, /*End of Scope*/ ++/*419759*/ /*Scope*/ 58|128,2/*314*/, /*->420075*/ ++/*419761*/ OPC_CheckChild0Same, 1, ++/*419763*/ OPC_MoveChild1, ++/*419764*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*419767*/ OPC_Scope, 23|128,1/*151*/, /*->419921*/ // 2 children in Scope ++/*419770*/ OPC_MoveChild0, ++/*419771*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*419774*/ OPC_CheckChild0Integer, 1, ++/*419776*/ OPC_CheckChild0Type, MVT::i32, ++/*419778*/ OPC_CheckChild1Integer, 1, ++/*419780*/ OPC_CheckChild1Type, MVT::i32, ++/*419782*/ OPC_CheckChild2Integer, 1, ++/*419784*/ OPC_CheckChild2Type, MVT::i32, ++/*419786*/ OPC_CheckChild3Integer, 1, ++/*419788*/ OPC_CheckChild3Type, MVT::i32, ++/*419790*/ OPC_CheckChild4Integer, 1, ++/*419792*/ OPC_CheckChild4Type, MVT::i32, ++/*419794*/ OPC_MoveChild5, ++/*419795*/ OPC_CheckInteger, 1, ++/*419797*/ OPC_CheckType, MVT::i32, ++/*419799*/ OPC_MoveParent, ++/*419800*/ OPC_MoveChild6, ++/*419801*/ OPC_CheckInteger, 1, ++/*419803*/ OPC_CheckType, MVT::i32, ++/*419805*/ OPC_MoveParent, ++/*419806*/ OPC_MoveChild7, ++/*419807*/ OPC_CheckInteger, 1, ++/*419809*/ OPC_CheckType, MVT::i32, ++/*419811*/ OPC_MoveParent, ++/*419812*/ OPC_MoveParent, ++/*419813*/ OPC_CheckChild1Same, 0, ++/*419815*/ OPC_MoveParent, ++/*419816*/ OPC_MoveParent, ++/*419817*/ OPC_MoveChild1, ++/*419818*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*419821*/ OPC_CheckChild0Integer, 15, ++/*419823*/ OPC_CheckChild0Type, MVT::i32, ++/*419825*/ OPC_CheckChild1Integer, 15, ++/*419827*/ OPC_CheckChild1Type, MVT::i32, ++/*419829*/ OPC_CheckChild2Integer, 15, ++/*419831*/ OPC_CheckChild2Type, MVT::i32, ++/*419833*/ OPC_CheckChild3Integer, 15, ++/*419835*/ OPC_CheckChild3Type, MVT::i32, ++/*419837*/ OPC_CheckChild4Integer, 15, ++/*419839*/ OPC_CheckChild4Type, MVT::i32, ++/*419841*/ OPC_MoveChild5, ++/*419842*/ OPC_CheckInteger, 15, ++/*419844*/ OPC_CheckType, MVT::i32, ++/*419846*/ OPC_MoveParent, ++/*419847*/ OPC_MoveChild6, ++/*419848*/ OPC_CheckInteger, 15, ++/*419850*/ OPC_CheckType, MVT::i32, ++/*419852*/ OPC_MoveParent, ++/*419853*/ OPC_MoveChild7, ++/*419854*/ OPC_CheckInteger, 15, ++/*419856*/ OPC_CheckType, MVT::i32, ++/*419858*/ OPC_MoveParent, ++/*419859*/ OPC_CheckType, MVT::v8i16, ++/*419861*/ OPC_MoveParent, ++/*419862*/ OPC_MoveParent, ++/*419863*/ OPC_MoveParent, ++/*419864*/ OPC_MoveChild1, ++/*419865*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*419868*/ OPC_CheckChild0Integer, 1, ++/*419870*/ OPC_CheckChild0Type, MVT::i32, ++/*419872*/ OPC_CheckChild1Integer, 1, ++/*419874*/ OPC_CheckChild1Type, MVT::i32, ++/*419876*/ OPC_CheckChild2Integer, 1, ++/*419878*/ OPC_CheckChild2Type, MVT::i32, ++/*419880*/ OPC_CheckChild3Integer, 1, ++/*419882*/ OPC_CheckChild3Type, MVT::i32, ++/*419884*/ OPC_CheckChild4Integer, 1, ++/*419886*/ OPC_CheckChild4Type, MVT::i32, ++/*419888*/ OPC_MoveChild5, ++/*419889*/ OPC_CheckInteger, 1, ++/*419891*/ OPC_CheckType, MVT::i32, ++/*419893*/ OPC_MoveParent, ++/*419894*/ OPC_MoveChild6, ++/*419895*/ OPC_CheckInteger, 1, ++/*419897*/ OPC_CheckType, MVT::i32, ++/*419899*/ OPC_MoveParent, ++/*419900*/ OPC_MoveChild7, ++/*419901*/ OPC_CheckInteger, 1, ++/*419903*/ OPC_CheckType, MVT::i32, ++/*419905*/ OPC_MoveParent, ++/*419906*/ OPC_CheckType, MVT::v8i16, ++/*419908*/ OPC_MoveParent, ++/*419909*/ OPC_CheckType, MVT::v8i16, ++/*419911*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*419913*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*419921*/ /*Scope*/ 23|128,1/*151*/, /*->420074*/ ++/*419923*/ OPC_CheckChild0Same, 0, ++/*419925*/ OPC_MoveChild1, ++/*419926*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*419929*/ OPC_CheckChild0Integer, 1, ++/*419931*/ OPC_CheckChild0Type, MVT::i32, ++/*419933*/ OPC_CheckChild1Integer, 1, ++/*419935*/ OPC_CheckChild1Type, MVT::i32, ++/*419937*/ OPC_CheckChild2Integer, 1, ++/*419939*/ OPC_CheckChild2Type, MVT::i32, ++/*419941*/ OPC_CheckChild3Integer, 1, ++/*419943*/ OPC_CheckChild3Type, MVT::i32, ++/*419945*/ OPC_CheckChild4Integer, 1, ++/*419947*/ OPC_CheckChild4Type, MVT::i32, ++/*419949*/ OPC_MoveChild5, ++/*419950*/ OPC_CheckInteger, 1, ++/*419952*/ OPC_CheckType, MVT::i32, ++/*419954*/ OPC_MoveParent, ++/*419955*/ OPC_MoveChild6, ++/*419956*/ OPC_CheckInteger, 1, ++/*419958*/ OPC_CheckType, MVT::i32, ++/*419960*/ OPC_MoveParent, ++/*419961*/ OPC_MoveChild7, ++/*419962*/ OPC_CheckInteger, 1, ++/*419964*/ OPC_CheckType, MVT::i32, ++/*419966*/ OPC_MoveParent, ++/*419967*/ OPC_MoveParent, ++/*419968*/ OPC_MoveParent, ++/*419969*/ OPC_MoveParent, ++/*419970*/ OPC_MoveChild1, ++/*419971*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*419974*/ OPC_CheckChild0Integer, 15, ++/*419976*/ OPC_CheckChild0Type, MVT::i32, ++/*419978*/ OPC_CheckChild1Integer, 15, ++/*419980*/ OPC_CheckChild1Type, MVT::i32, ++/*419982*/ OPC_CheckChild2Integer, 15, ++/*419984*/ OPC_CheckChild2Type, MVT::i32, ++/*419986*/ OPC_CheckChild3Integer, 15, ++/*419988*/ OPC_CheckChild3Type, MVT::i32, ++/*419990*/ OPC_CheckChild4Integer, 15, ++/*419992*/ OPC_CheckChild4Type, MVT::i32, ++/*419994*/ OPC_MoveChild5, ++/*419995*/ OPC_CheckInteger, 15, ++/*419997*/ OPC_CheckType, MVT::i32, ++/*419999*/ OPC_MoveParent, ++/*420000*/ OPC_MoveChild6, ++/*420001*/ OPC_CheckInteger, 15, ++/*420003*/ OPC_CheckType, MVT::i32, ++/*420005*/ OPC_MoveParent, ++/*420006*/ OPC_MoveChild7, ++/*420007*/ OPC_CheckInteger, 15, ++/*420009*/ OPC_CheckType, MVT::i32, ++/*420011*/ OPC_MoveParent, ++/*420012*/ OPC_CheckType, MVT::v8i16, ++/*420014*/ OPC_MoveParent, ++/*420015*/ OPC_MoveParent, ++/*420016*/ OPC_MoveParent, ++/*420017*/ OPC_MoveChild1, ++/*420018*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*420021*/ OPC_CheckChild0Integer, 1, ++/*420023*/ OPC_CheckChild0Type, MVT::i32, ++/*420025*/ OPC_CheckChild1Integer, 1, ++/*420027*/ OPC_CheckChild1Type, MVT::i32, ++/*420029*/ OPC_CheckChild2Integer, 1, ++/*420031*/ OPC_CheckChild2Type, MVT::i32, ++/*420033*/ OPC_CheckChild3Integer, 1, ++/*420035*/ OPC_CheckChild3Type, MVT::i32, ++/*420037*/ OPC_CheckChild4Integer, 1, ++/*420039*/ OPC_CheckChild4Type, MVT::i32, ++/*420041*/ OPC_MoveChild5, ++/*420042*/ OPC_CheckInteger, 1, ++/*420044*/ OPC_CheckType, MVT::i32, ++/*420046*/ OPC_MoveParent, ++/*420047*/ OPC_MoveChild6, ++/*420048*/ OPC_CheckInteger, 1, ++/*420050*/ OPC_CheckType, MVT::i32, ++/*420052*/ OPC_MoveParent, ++/*420053*/ OPC_MoveChild7, ++/*420054*/ OPC_CheckInteger, 1, ++/*420056*/ OPC_CheckType, MVT::i32, ++/*420058*/ OPC_MoveParent, ++/*420059*/ OPC_CheckType, MVT::v8i16, ++/*420061*/ OPC_MoveParent, ++/*420062*/ OPC_CheckType, MVT::v8i16, ++/*420064*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*420066*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*420074*/ 0, /*End of Scope*/ ++/*420075*/ /*Scope*/ 58|128,2/*314*/, /*->420391*/ ++/*420077*/ OPC_CheckChild0Same, 0, ++/*420079*/ OPC_MoveChild1, ++/*420080*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*420083*/ OPC_Scope, 23|128,1/*151*/, /*->420237*/ // 2 children in Scope ++/*420086*/ OPC_MoveChild0, ++/*420087*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*420090*/ OPC_CheckChild0Integer, 1, ++/*420092*/ OPC_CheckChild0Type, MVT::i32, ++/*420094*/ OPC_CheckChild1Integer, 1, ++/*420096*/ OPC_CheckChild1Type, MVT::i32, ++/*420098*/ OPC_CheckChild2Integer, 1, ++/*420100*/ OPC_CheckChild2Type, MVT::i32, ++/*420102*/ OPC_CheckChild3Integer, 1, ++/*420104*/ OPC_CheckChild3Type, MVT::i32, ++/*420106*/ OPC_CheckChild4Integer, 1, ++/*420108*/ OPC_CheckChild4Type, MVT::i32, ++/*420110*/ OPC_MoveChild5, ++/*420111*/ OPC_CheckInteger, 1, ++/*420113*/ OPC_CheckType, MVT::i32, ++/*420115*/ OPC_MoveParent, ++/*420116*/ OPC_MoveChild6, ++/*420117*/ OPC_CheckInteger, 1, ++/*420119*/ OPC_CheckType, MVT::i32, ++/*420121*/ OPC_MoveParent, ++/*420122*/ OPC_MoveChild7, ++/*420123*/ OPC_CheckInteger, 1, ++/*420125*/ OPC_CheckType, MVT::i32, ++/*420127*/ OPC_MoveParent, ++/*420128*/ OPC_MoveParent, ++/*420129*/ OPC_CheckChild1Same, 1, ++/*420131*/ OPC_MoveParent, ++/*420132*/ OPC_MoveParent, ++/*420133*/ OPC_MoveChild1, ++/*420134*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*420137*/ OPC_CheckChild0Integer, 15, ++/*420139*/ OPC_CheckChild0Type, MVT::i32, ++/*420141*/ OPC_CheckChild1Integer, 15, ++/*420143*/ OPC_CheckChild1Type, MVT::i32, ++/*420145*/ OPC_CheckChild2Integer, 15, ++/*420147*/ OPC_CheckChild2Type, MVT::i32, ++/*420149*/ OPC_CheckChild3Integer, 15, ++/*420151*/ OPC_CheckChild3Type, MVT::i32, ++/*420153*/ OPC_CheckChild4Integer, 15, ++/*420155*/ OPC_CheckChild4Type, MVT::i32, ++/*420157*/ OPC_MoveChild5, ++/*420158*/ OPC_CheckInteger, 15, ++/*420160*/ OPC_CheckType, MVT::i32, ++/*420162*/ OPC_MoveParent, ++/*420163*/ OPC_MoveChild6, ++/*420164*/ OPC_CheckInteger, 15, ++/*420166*/ OPC_CheckType, MVT::i32, ++/*420168*/ OPC_MoveParent, ++/*420169*/ OPC_MoveChild7, ++/*420170*/ OPC_CheckInteger, 15, ++/*420172*/ OPC_CheckType, MVT::i32, ++/*420174*/ OPC_MoveParent, ++/*420175*/ OPC_CheckType, MVT::v8i16, ++/*420177*/ OPC_MoveParent, ++/*420178*/ OPC_MoveParent, ++/*420179*/ OPC_MoveParent, ++/*420180*/ OPC_MoveChild1, ++/*420181*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*420184*/ OPC_CheckChild0Integer, 1, ++/*420186*/ OPC_CheckChild0Type, MVT::i32, ++/*420188*/ OPC_CheckChild1Integer, 1, ++/*420190*/ OPC_CheckChild1Type, MVT::i32, ++/*420192*/ OPC_CheckChild2Integer, 1, ++/*420194*/ OPC_CheckChild2Type, MVT::i32, ++/*420196*/ OPC_CheckChild3Integer, 1, ++/*420198*/ OPC_CheckChild3Type, MVT::i32, ++/*420200*/ OPC_CheckChild4Integer, 1, ++/*420202*/ OPC_CheckChild4Type, MVT::i32, ++/*420204*/ OPC_MoveChild5, ++/*420205*/ OPC_CheckInteger, 1, ++/*420207*/ OPC_CheckType, MVT::i32, ++/*420209*/ OPC_MoveParent, ++/*420210*/ OPC_MoveChild6, ++/*420211*/ OPC_CheckInteger, 1, ++/*420213*/ OPC_CheckType, MVT::i32, ++/*420215*/ OPC_MoveParent, ++/*420216*/ OPC_MoveChild7, ++/*420217*/ OPC_CheckInteger, 1, ++/*420219*/ OPC_CheckType, MVT::i32, ++/*420221*/ OPC_MoveParent, ++/*420222*/ OPC_CheckType, MVT::v8i16, ++/*420224*/ OPC_MoveParent, ++/*420225*/ OPC_CheckType, MVT::v8i16, ++/*420227*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*420229*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*420237*/ /*Scope*/ 23|128,1/*151*/, /*->420390*/ ++/*420239*/ OPC_CheckChild0Same, 1, ++/*420241*/ OPC_MoveChild1, ++/*420242*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*420245*/ OPC_CheckChild0Integer, 1, ++/*420247*/ OPC_CheckChild0Type, MVT::i32, ++/*420249*/ OPC_CheckChild1Integer, 1, ++/*420251*/ OPC_CheckChild1Type, MVT::i32, ++/*420253*/ OPC_CheckChild2Integer, 1, ++/*420255*/ OPC_CheckChild2Type, MVT::i32, ++/*420257*/ OPC_CheckChild3Integer, 1, ++/*420259*/ OPC_CheckChild3Type, MVT::i32, ++/*420261*/ OPC_CheckChild4Integer, 1, ++/*420263*/ OPC_CheckChild4Type, MVT::i32, ++/*420265*/ OPC_MoveChild5, ++/*420266*/ OPC_CheckInteger, 1, ++/*420268*/ OPC_CheckType, MVT::i32, ++/*420270*/ OPC_MoveParent, ++/*420271*/ OPC_MoveChild6, ++/*420272*/ OPC_CheckInteger, 1, ++/*420274*/ OPC_CheckType, MVT::i32, ++/*420276*/ OPC_MoveParent, ++/*420277*/ OPC_MoveChild7, ++/*420278*/ OPC_CheckInteger, 1, ++/*420280*/ OPC_CheckType, MVT::i32, ++/*420282*/ OPC_MoveParent, ++/*420283*/ OPC_MoveParent, ++/*420284*/ OPC_MoveParent, ++/*420285*/ OPC_MoveParent, ++/*420286*/ OPC_MoveChild1, ++/*420287*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*420290*/ OPC_CheckChild0Integer, 15, ++/*420292*/ OPC_CheckChild0Type, MVT::i32, ++/*420294*/ OPC_CheckChild1Integer, 15, ++/*420296*/ OPC_CheckChild1Type, MVT::i32, ++/*420298*/ OPC_CheckChild2Integer, 15, ++/*420300*/ OPC_CheckChild2Type, MVT::i32, ++/*420302*/ OPC_CheckChild3Integer, 15, ++/*420304*/ OPC_CheckChild3Type, MVT::i32, ++/*420306*/ OPC_CheckChild4Integer, 15, ++/*420308*/ OPC_CheckChild4Type, MVT::i32, ++/*420310*/ OPC_MoveChild5, ++/*420311*/ OPC_CheckInteger, 15, ++/*420313*/ OPC_CheckType, MVT::i32, ++/*420315*/ OPC_MoveParent, ++/*420316*/ OPC_MoveChild6, ++/*420317*/ OPC_CheckInteger, 15, ++/*420319*/ OPC_CheckType, MVT::i32, ++/*420321*/ OPC_MoveParent, ++/*420322*/ OPC_MoveChild7, ++/*420323*/ OPC_CheckInteger, 15, ++/*420325*/ OPC_CheckType, MVT::i32, ++/*420327*/ OPC_MoveParent, ++/*420328*/ OPC_CheckType, MVT::v8i16, ++/*420330*/ OPC_MoveParent, ++/*420331*/ OPC_MoveParent, ++/*420332*/ OPC_MoveParent, ++/*420333*/ OPC_MoveChild1, ++/*420334*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*420337*/ OPC_CheckChild0Integer, 1, ++/*420339*/ OPC_CheckChild0Type, MVT::i32, ++/*420341*/ OPC_CheckChild1Integer, 1, ++/*420343*/ OPC_CheckChild1Type, MVT::i32, ++/*420345*/ OPC_CheckChild2Integer, 1, ++/*420347*/ OPC_CheckChild2Type, MVT::i32, ++/*420349*/ OPC_CheckChild3Integer, 1, ++/*420351*/ OPC_CheckChild3Type, MVT::i32, ++/*420353*/ OPC_CheckChild4Integer, 1, ++/*420355*/ OPC_CheckChild4Type, MVT::i32, ++/*420357*/ OPC_MoveChild5, ++/*420358*/ OPC_CheckInteger, 1, ++/*420360*/ OPC_CheckType, MVT::i32, ++/*420362*/ OPC_MoveParent, ++/*420363*/ OPC_MoveChild6, ++/*420364*/ OPC_CheckInteger, 1, ++/*420366*/ OPC_CheckType, MVT::i32, ++/*420368*/ OPC_MoveParent, ++/*420369*/ OPC_MoveChild7, ++/*420370*/ OPC_CheckInteger, 1, ++/*420372*/ OPC_CheckType, MVT::i32, ++/*420374*/ OPC_MoveParent, ++/*420375*/ OPC_CheckType, MVT::v8i16, ++/*420377*/ OPC_MoveParent, ++/*420378*/ OPC_CheckType, MVT::v8i16, ++/*420380*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*420382*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*420390*/ 0, /*End of Scope*/ ++/*420391*/ /*Scope*/ 58|128,9/*1210*/, /*->421603*/ ++/*420393*/ OPC_MoveChild0, ++/*420394*/ OPC_SwitchOpcode /*2 cases */, 11|128,2/*267*/, TARGET_VAL(ISD::BUILD_VECTOR),// ->420666 ++/*420399*/ OPC_CheckChild0Integer, 1, ++/*420401*/ OPC_CheckChild0Type, MVT::i32, ++/*420403*/ OPC_CheckChild1Integer, 1, ++/*420405*/ OPC_CheckChild1Type, MVT::i32, ++/*420407*/ OPC_CheckChild2Integer, 1, ++/*420409*/ OPC_CheckChild2Type, MVT::i32, ++/*420411*/ OPC_CheckChild3Integer, 1, ++/*420413*/ OPC_CheckChild3Type, MVT::i32, ++/*420415*/ OPC_CheckChild4Integer, 1, ++/*420417*/ OPC_CheckChild4Type, MVT::i32, ++/*420419*/ OPC_MoveChild5, ++/*420420*/ OPC_CheckInteger, 1, ++/*420422*/ OPC_CheckType, MVT::i32, ++/*420424*/ OPC_MoveParent, ++/*420425*/ OPC_MoveChild6, ++/*420426*/ OPC_CheckInteger, 1, ++/*420428*/ OPC_CheckType, MVT::i32, ++/*420430*/ OPC_MoveParent, ++/*420431*/ OPC_MoveChild7, ++/*420432*/ OPC_CheckInteger, 1, ++/*420434*/ OPC_CheckType, MVT::i32, ++/*420436*/ OPC_MoveParent, ++/*420437*/ OPC_MoveParent, ++/*420438*/ OPC_MoveChild1, ++/*420439*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*420442*/ OPC_Scope, 110, /*->420554*/ // 2 children in Scope ++/*420444*/ OPC_CheckChild0Same, 0, ++/*420446*/ OPC_CheckChild1Same, 1, ++/*420448*/ OPC_MoveParent, ++/*420449*/ OPC_MoveParent, ++/*420450*/ OPC_MoveChild1, ++/*420451*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*420454*/ OPC_CheckChild0Integer, 15, ++/*420456*/ OPC_CheckChild0Type, MVT::i32, ++/*420458*/ OPC_CheckChild1Integer, 15, ++/*420460*/ OPC_CheckChild1Type, MVT::i32, ++/*420462*/ OPC_CheckChild2Integer, 15, ++/*420464*/ OPC_CheckChild2Type, MVT::i32, ++/*420466*/ OPC_CheckChild3Integer, 15, ++/*420468*/ OPC_CheckChild3Type, MVT::i32, ++/*420470*/ OPC_CheckChild4Integer, 15, ++/*420472*/ OPC_CheckChild4Type, MVT::i32, ++/*420474*/ OPC_MoveChild5, ++/*420475*/ OPC_CheckInteger, 15, ++/*420477*/ OPC_CheckType, MVT::i32, ++/*420479*/ OPC_MoveParent, ++/*420480*/ OPC_MoveChild6, ++/*420481*/ OPC_CheckInteger, 15, ++/*420483*/ OPC_CheckType, MVT::i32, ++/*420485*/ OPC_MoveParent, ++/*420486*/ OPC_MoveChild7, ++/*420487*/ OPC_CheckInteger, 15, ++/*420489*/ OPC_CheckType, MVT::i32, ++/*420491*/ OPC_MoveParent, ++/*420492*/ OPC_CheckType, MVT::v8i16, ++/*420494*/ OPC_MoveParent, ++/*420495*/ OPC_MoveParent, ++/*420496*/ OPC_MoveParent, ++/*420497*/ OPC_MoveChild1, ++/*420498*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*420501*/ OPC_CheckChild0Integer, 1, ++/*420503*/ OPC_CheckChild0Type, MVT::i32, ++/*420505*/ OPC_CheckChild1Integer, 1, ++/*420507*/ OPC_CheckChild1Type, MVT::i32, ++/*420509*/ OPC_CheckChild2Integer, 1, ++/*420511*/ OPC_CheckChild2Type, MVT::i32, ++/*420513*/ OPC_CheckChild3Integer, 1, ++/*420515*/ OPC_CheckChild3Type, MVT::i32, ++/*420517*/ OPC_CheckChild4Integer, 1, ++/*420519*/ OPC_CheckChild4Type, MVT::i32, ++/*420521*/ OPC_MoveChild5, ++/*420522*/ OPC_CheckInteger, 1, ++/*420524*/ OPC_CheckType, MVT::i32, ++/*420526*/ OPC_MoveParent, ++/*420527*/ OPC_MoveChild6, ++/*420528*/ OPC_CheckInteger, 1, ++/*420530*/ OPC_CheckType, MVT::i32, ++/*420532*/ OPC_MoveParent, ++/*420533*/ OPC_MoveChild7, ++/*420534*/ OPC_CheckInteger, 1, ++/*420536*/ OPC_CheckType, MVT::i32, ++/*420538*/ OPC_MoveParent, ++/*420539*/ OPC_CheckType, MVT::v8i16, ++/*420541*/ OPC_MoveParent, ++/*420542*/ OPC_CheckType, MVT::v8i16, ++/*420544*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*420546*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*420554*/ /*Scope*/ 110, /*->420665*/ ++/*420555*/ OPC_CheckChild0Same, 1, ++/*420557*/ OPC_CheckChild1Same, 0, ++/*420559*/ OPC_MoveParent, ++/*420560*/ OPC_MoveParent, ++/*420561*/ OPC_MoveChild1, ++/*420562*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*420565*/ OPC_CheckChild0Integer, 15, ++/*420567*/ OPC_CheckChild0Type, MVT::i32, ++/*420569*/ OPC_CheckChild1Integer, 15, ++/*420571*/ OPC_CheckChild1Type, MVT::i32, ++/*420573*/ OPC_CheckChild2Integer, 15, ++/*420575*/ OPC_CheckChild2Type, MVT::i32, ++/*420577*/ OPC_CheckChild3Integer, 15, ++/*420579*/ OPC_CheckChild3Type, MVT::i32, ++/*420581*/ OPC_CheckChild4Integer, 15, ++/*420583*/ OPC_CheckChild4Type, MVT::i32, ++/*420585*/ OPC_MoveChild5, ++/*420586*/ OPC_CheckInteger, 15, ++/*420588*/ OPC_CheckType, MVT::i32, ++/*420590*/ OPC_MoveParent, ++/*420591*/ OPC_MoveChild6, ++/*420592*/ OPC_CheckInteger, 15, ++/*420594*/ OPC_CheckType, MVT::i32, ++/*420596*/ OPC_MoveParent, ++/*420597*/ OPC_MoveChild7, ++/*420598*/ OPC_CheckInteger, 15, ++/*420600*/ OPC_CheckType, MVT::i32, ++/*420602*/ OPC_MoveParent, ++/*420603*/ OPC_CheckType, MVT::v8i16, ++/*420605*/ OPC_MoveParent, ++/*420606*/ OPC_MoveParent, ++/*420607*/ OPC_MoveParent, ++/*420608*/ OPC_MoveChild1, ++/*420609*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*420612*/ OPC_CheckChild0Integer, 1, ++/*420614*/ OPC_CheckChild0Type, MVT::i32, ++/*420616*/ OPC_CheckChild1Integer, 1, ++/*420618*/ OPC_CheckChild1Type, MVT::i32, ++/*420620*/ OPC_CheckChild2Integer, 1, ++/*420622*/ OPC_CheckChild2Type, MVT::i32, ++/*420624*/ OPC_CheckChild3Integer, 1, ++/*420626*/ OPC_CheckChild3Type, MVT::i32, ++/*420628*/ OPC_CheckChild4Integer, 1, ++/*420630*/ OPC_CheckChild4Type, MVT::i32, ++/*420632*/ OPC_MoveChild5, ++/*420633*/ OPC_CheckInteger, 1, ++/*420635*/ OPC_CheckType, MVT::i32, ++/*420637*/ OPC_MoveParent, ++/*420638*/ OPC_MoveChild6, ++/*420639*/ OPC_CheckInteger, 1, ++/*420641*/ OPC_CheckType, MVT::i32, ++/*420643*/ OPC_MoveParent, ++/*420644*/ OPC_MoveChild7, ++/*420645*/ OPC_CheckInteger, 1, ++/*420647*/ OPC_CheckType, MVT::i32, ++/*420649*/ OPC_MoveParent, ++/*420650*/ OPC_CheckType, MVT::v8i16, ++/*420652*/ OPC_MoveParent, ++/*420653*/ OPC_CheckType, MVT::v8i16, ++/*420655*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*420657*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*420665*/ 0, /*End of Scope*/ ++/*420666*/ /*SwitchOpcode*/ 36|128,7/*932*/, TARGET_VAL(ISD::ADD),// ->421602 ++/*420670*/ OPC_Scope, 25|128,1/*153*/, /*->420826*/ // 6 children in Scope ++/*420673*/ OPC_MoveChild0, ++/*420674*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*420677*/ OPC_CheckChild0Integer, 1, ++/*420679*/ OPC_CheckChild0Type, MVT::i32, ++/*420681*/ OPC_CheckChild1Integer, 1, ++/*420683*/ OPC_CheckChild1Type, MVT::i32, ++/*420685*/ OPC_CheckChild2Integer, 1, ++/*420687*/ OPC_CheckChild2Type, MVT::i32, ++/*420689*/ OPC_CheckChild3Integer, 1, ++/*420691*/ OPC_CheckChild3Type, MVT::i32, ++/*420693*/ OPC_CheckChild4Integer, 1, ++/*420695*/ OPC_CheckChild4Type, MVT::i32, ++/*420697*/ OPC_MoveChild5, ++/*420698*/ OPC_CheckInteger, 1, ++/*420700*/ OPC_CheckType, MVT::i32, ++/*420702*/ OPC_MoveParent, ++/*420703*/ OPC_MoveChild6, ++/*420704*/ OPC_CheckInteger, 1, ++/*420706*/ OPC_CheckType, MVT::i32, ++/*420708*/ OPC_MoveParent, ++/*420709*/ OPC_MoveChild7, ++/*420710*/ OPC_CheckInteger, 1, ++/*420712*/ OPC_CheckType, MVT::i32, ++/*420714*/ OPC_MoveParent, ++/*420715*/ OPC_MoveParent, ++/*420716*/ OPC_CheckChild1Same, 1, ++/*420718*/ OPC_MoveParent, ++/*420719*/ OPC_CheckChild1Same, 0, ++/*420721*/ OPC_MoveParent, ++/*420722*/ OPC_MoveChild1, ++/*420723*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*420726*/ OPC_CheckChild0Integer, 15, ++/*420728*/ OPC_CheckChild0Type, MVT::i32, ++/*420730*/ OPC_CheckChild1Integer, 15, ++/*420732*/ OPC_CheckChild1Type, MVT::i32, ++/*420734*/ OPC_CheckChild2Integer, 15, ++/*420736*/ OPC_CheckChild2Type, MVT::i32, ++/*420738*/ OPC_CheckChild3Integer, 15, ++/*420740*/ OPC_CheckChild3Type, MVT::i32, ++/*420742*/ OPC_CheckChild4Integer, 15, ++/*420744*/ OPC_CheckChild4Type, MVT::i32, ++/*420746*/ OPC_MoveChild5, ++/*420747*/ OPC_CheckInteger, 15, ++/*420749*/ OPC_CheckType, MVT::i32, ++/*420751*/ OPC_MoveParent, ++/*420752*/ OPC_MoveChild6, ++/*420753*/ OPC_CheckInteger, 15, ++/*420755*/ OPC_CheckType, MVT::i32, ++/*420757*/ OPC_MoveParent, ++/*420758*/ OPC_MoveChild7, ++/*420759*/ OPC_CheckInteger, 15, ++/*420761*/ OPC_CheckType, MVT::i32, ++/*420763*/ OPC_MoveParent, ++/*420764*/ OPC_CheckType, MVT::v8i16, ++/*420766*/ OPC_MoveParent, ++/*420767*/ OPC_MoveParent, ++/*420768*/ OPC_MoveParent, ++/*420769*/ OPC_MoveChild1, ++/*420770*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*420773*/ OPC_CheckChild0Integer, 1, ++/*420775*/ OPC_CheckChild0Type, MVT::i32, ++/*420777*/ OPC_CheckChild1Integer, 1, ++/*420779*/ OPC_CheckChild1Type, MVT::i32, ++/*420781*/ OPC_CheckChild2Integer, 1, ++/*420783*/ OPC_CheckChild2Type, MVT::i32, ++/*420785*/ OPC_CheckChild3Integer, 1, ++/*420787*/ OPC_CheckChild3Type, MVT::i32, ++/*420789*/ OPC_CheckChild4Integer, 1, ++/*420791*/ OPC_CheckChild4Type, MVT::i32, ++/*420793*/ OPC_MoveChild5, ++/*420794*/ OPC_CheckInteger, 1, ++/*420796*/ OPC_CheckType, MVT::i32, ++/*420798*/ OPC_MoveParent, ++/*420799*/ OPC_MoveChild6, ++/*420800*/ OPC_CheckInteger, 1, ++/*420802*/ OPC_CheckType, MVT::i32, ++/*420804*/ OPC_MoveParent, ++/*420805*/ OPC_MoveChild7, ++/*420806*/ OPC_CheckInteger, 1, ++/*420808*/ OPC_CheckType, MVT::i32, ++/*420810*/ OPC_MoveParent, ++/*420811*/ OPC_CheckType, MVT::v8i16, ++/*420813*/ OPC_MoveParent, ++/*420814*/ OPC_CheckType, MVT::v8i16, ++/*420816*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*420818*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a), LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*420826*/ /*Scope*/ 25|128,1/*153*/, /*->420981*/ ++/*420828*/ OPC_CheckChild0Same, 1, ++/*420830*/ OPC_MoveChild1, ++/*420831*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*420834*/ OPC_CheckChild0Integer, 1, ++/*420836*/ OPC_CheckChild0Type, MVT::i32, ++/*420838*/ OPC_CheckChild1Integer, 1, ++/*420840*/ OPC_CheckChild1Type, MVT::i32, ++/*420842*/ OPC_CheckChild2Integer, 1, ++/*420844*/ OPC_CheckChild2Type, MVT::i32, ++/*420846*/ OPC_CheckChild3Integer, 1, ++/*420848*/ OPC_CheckChild3Type, MVT::i32, ++/*420850*/ OPC_CheckChild4Integer, 1, ++/*420852*/ OPC_CheckChild4Type, MVT::i32, ++/*420854*/ OPC_MoveChild5, ++/*420855*/ OPC_CheckInteger, 1, ++/*420857*/ OPC_CheckType, MVT::i32, ++/*420859*/ OPC_MoveParent, ++/*420860*/ OPC_MoveChild6, ++/*420861*/ OPC_CheckInteger, 1, ++/*420863*/ OPC_CheckType, MVT::i32, ++/*420865*/ OPC_MoveParent, ++/*420866*/ OPC_MoveChild7, ++/*420867*/ OPC_CheckInteger, 1, ++/*420869*/ OPC_CheckType, MVT::i32, ++/*420871*/ OPC_MoveParent, ++/*420872*/ OPC_MoveParent, ++/*420873*/ OPC_MoveParent, ++/*420874*/ OPC_CheckChild1Same, 0, ++/*420876*/ OPC_MoveParent, ++/*420877*/ OPC_MoveChild1, ++/*420878*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*420881*/ OPC_CheckChild0Integer, 15, ++/*420883*/ OPC_CheckChild0Type, MVT::i32, ++/*420885*/ OPC_CheckChild1Integer, 15, ++/*420887*/ OPC_CheckChild1Type, MVT::i32, ++/*420889*/ OPC_CheckChild2Integer, 15, ++/*420891*/ OPC_CheckChild2Type, MVT::i32, ++/*420893*/ OPC_CheckChild3Integer, 15, ++/*420895*/ OPC_CheckChild3Type, MVT::i32, ++/*420897*/ OPC_CheckChild4Integer, 15, ++/*420899*/ OPC_CheckChild4Type, MVT::i32, ++/*420901*/ OPC_MoveChild5, ++/*420902*/ OPC_CheckInteger, 15, ++/*420904*/ OPC_CheckType, MVT::i32, ++/*420906*/ OPC_MoveParent, ++/*420907*/ OPC_MoveChild6, ++/*420908*/ OPC_CheckInteger, 15, ++/*420910*/ OPC_CheckType, MVT::i32, ++/*420912*/ OPC_MoveParent, ++/*420913*/ OPC_MoveChild7, ++/*420914*/ OPC_CheckInteger, 15, ++/*420916*/ OPC_CheckType, MVT::i32, ++/*420918*/ OPC_MoveParent, ++/*420919*/ OPC_CheckType, MVT::v8i16, ++/*420921*/ OPC_MoveParent, ++/*420922*/ OPC_MoveParent, ++/*420923*/ OPC_MoveParent, ++/*420924*/ OPC_MoveChild1, ++/*420925*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*420928*/ OPC_CheckChild0Integer, 1, ++/*420930*/ OPC_CheckChild0Type, MVT::i32, ++/*420932*/ OPC_CheckChild1Integer, 1, ++/*420934*/ OPC_CheckChild1Type, MVT::i32, ++/*420936*/ OPC_CheckChild2Integer, 1, ++/*420938*/ OPC_CheckChild2Type, MVT::i32, ++/*420940*/ OPC_CheckChild3Integer, 1, ++/*420942*/ OPC_CheckChild3Type, MVT::i32, ++/*420944*/ OPC_CheckChild4Integer, 1, ++/*420946*/ OPC_CheckChild4Type, MVT::i32, ++/*420948*/ OPC_MoveChild5, ++/*420949*/ OPC_CheckInteger, 1, ++/*420951*/ OPC_CheckType, MVT::i32, ++/*420953*/ OPC_MoveParent, ++/*420954*/ OPC_MoveChild6, ++/*420955*/ OPC_CheckInteger, 1, ++/*420957*/ OPC_CheckType, MVT::i32, ++/*420959*/ OPC_MoveParent, ++/*420960*/ OPC_MoveChild7, ++/*420961*/ OPC_CheckInteger, 1, ++/*420963*/ OPC_CheckType, MVT::i32, ++/*420965*/ OPC_MoveParent, ++/*420966*/ OPC_CheckType, MVT::v8i16, ++/*420968*/ OPC_MoveParent, ++/*420969*/ OPC_CheckType, MVT::v8i16, ++/*420971*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*420973*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*420981*/ /*Scope*/ 25|128,1/*153*/, /*->421136*/ ++/*420983*/ OPC_MoveChild0, ++/*420984*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*420987*/ OPC_CheckChild0Integer, 1, ++/*420989*/ OPC_CheckChild0Type, MVT::i32, ++/*420991*/ OPC_CheckChild1Integer, 1, ++/*420993*/ OPC_CheckChild1Type, MVT::i32, ++/*420995*/ OPC_CheckChild2Integer, 1, ++/*420997*/ OPC_CheckChild2Type, MVT::i32, ++/*420999*/ OPC_CheckChild3Integer, 1, ++/*421001*/ OPC_CheckChild3Type, MVT::i32, ++/*421003*/ OPC_CheckChild4Integer, 1, ++/*421005*/ OPC_CheckChild4Type, MVT::i32, ++/*421007*/ OPC_MoveChild5, ++/*421008*/ OPC_CheckInteger, 1, ++/*421010*/ OPC_CheckType, MVT::i32, ++/*421012*/ OPC_MoveParent, ++/*421013*/ OPC_MoveChild6, ++/*421014*/ OPC_CheckInteger, 1, ++/*421016*/ OPC_CheckType, MVT::i32, ++/*421018*/ OPC_MoveParent, ++/*421019*/ OPC_MoveChild7, ++/*421020*/ OPC_CheckInteger, 1, ++/*421022*/ OPC_CheckType, MVT::i32, ++/*421024*/ OPC_MoveParent, ++/*421025*/ OPC_MoveParent, ++/*421026*/ OPC_CheckChild1Same, 0, ++/*421028*/ OPC_MoveParent, ++/*421029*/ OPC_CheckChild1Same, 1, ++/*421031*/ OPC_MoveParent, ++/*421032*/ OPC_MoveChild1, ++/*421033*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*421036*/ OPC_CheckChild0Integer, 15, ++/*421038*/ OPC_CheckChild0Type, MVT::i32, ++/*421040*/ OPC_CheckChild1Integer, 15, ++/*421042*/ OPC_CheckChild1Type, MVT::i32, ++/*421044*/ OPC_CheckChild2Integer, 15, ++/*421046*/ OPC_CheckChild2Type, MVT::i32, ++/*421048*/ OPC_CheckChild3Integer, 15, ++/*421050*/ OPC_CheckChild3Type, MVT::i32, ++/*421052*/ OPC_CheckChild4Integer, 15, ++/*421054*/ OPC_CheckChild4Type, MVT::i32, ++/*421056*/ OPC_MoveChild5, ++/*421057*/ OPC_CheckInteger, 15, ++/*421059*/ OPC_CheckType, MVT::i32, ++/*421061*/ OPC_MoveParent, ++/*421062*/ OPC_MoveChild6, ++/*421063*/ OPC_CheckInteger, 15, ++/*421065*/ OPC_CheckType, MVT::i32, ++/*421067*/ OPC_MoveParent, ++/*421068*/ OPC_MoveChild7, ++/*421069*/ OPC_CheckInteger, 15, ++/*421071*/ OPC_CheckType, MVT::i32, ++/*421073*/ OPC_MoveParent, ++/*421074*/ OPC_CheckType, MVT::v8i16, ++/*421076*/ OPC_MoveParent, ++/*421077*/ OPC_MoveParent, ++/*421078*/ OPC_MoveParent, ++/*421079*/ OPC_MoveChild1, ++/*421080*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*421083*/ OPC_CheckChild0Integer, 1, ++/*421085*/ OPC_CheckChild0Type, MVT::i32, ++/*421087*/ OPC_CheckChild1Integer, 1, ++/*421089*/ OPC_CheckChild1Type, MVT::i32, ++/*421091*/ OPC_CheckChild2Integer, 1, ++/*421093*/ OPC_CheckChild2Type, MVT::i32, ++/*421095*/ OPC_CheckChild3Integer, 1, ++/*421097*/ OPC_CheckChild3Type, MVT::i32, ++/*421099*/ OPC_CheckChild4Integer, 1, ++/*421101*/ OPC_CheckChild4Type, MVT::i32, ++/*421103*/ OPC_MoveChild5, ++/*421104*/ OPC_CheckInteger, 1, ++/*421106*/ OPC_CheckType, MVT::i32, ++/*421108*/ OPC_MoveParent, ++/*421109*/ OPC_MoveChild6, ++/*421110*/ OPC_CheckInteger, 1, ++/*421112*/ OPC_CheckType, MVT::i32, ++/*421114*/ OPC_MoveParent, ++/*421115*/ OPC_MoveChild7, ++/*421116*/ OPC_CheckInteger, 1, ++/*421118*/ OPC_CheckType, MVT::i32, ++/*421120*/ OPC_MoveParent, ++/*421121*/ OPC_CheckType, MVT::v8i16, ++/*421123*/ OPC_MoveParent, ++/*421124*/ OPC_CheckType, MVT::v8i16, ++/*421126*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*421128*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b), LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*421136*/ /*Scope*/ 25|128,1/*153*/, /*->421291*/ ++/*421138*/ OPC_CheckChild0Same, 0, ++/*421140*/ OPC_MoveChild1, ++/*421141*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*421144*/ OPC_CheckChild0Integer, 1, ++/*421146*/ OPC_CheckChild0Type, MVT::i32, ++/*421148*/ OPC_CheckChild1Integer, 1, ++/*421150*/ OPC_CheckChild1Type, MVT::i32, ++/*421152*/ OPC_CheckChild2Integer, 1, ++/*421154*/ OPC_CheckChild2Type, MVT::i32, ++/*421156*/ OPC_CheckChild3Integer, 1, ++/*421158*/ OPC_CheckChild3Type, MVT::i32, ++/*421160*/ OPC_CheckChild4Integer, 1, ++/*421162*/ OPC_CheckChild4Type, MVT::i32, ++/*421164*/ OPC_MoveChild5, ++/*421165*/ OPC_CheckInteger, 1, ++/*421167*/ OPC_CheckType, MVT::i32, ++/*421169*/ OPC_MoveParent, ++/*421170*/ OPC_MoveChild6, ++/*421171*/ OPC_CheckInteger, 1, ++/*421173*/ OPC_CheckType, MVT::i32, ++/*421175*/ OPC_MoveParent, ++/*421176*/ OPC_MoveChild7, ++/*421177*/ OPC_CheckInteger, 1, ++/*421179*/ OPC_CheckType, MVT::i32, ++/*421181*/ OPC_MoveParent, ++/*421182*/ OPC_MoveParent, ++/*421183*/ OPC_MoveParent, ++/*421184*/ OPC_CheckChild1Same, 1, ++/*421186*/ OPC_MoveParent, ++/*421187*/ OPC_MoveChild1, ++/*421188*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*421191*/ OPC_CheckChild0Integer, 15, ++/*421193*/ OPC_CheckChild0Type, MVT::i32, ++/*421195*/ OPC_CheckChild1Integer, 15, ++/*421197*/ OPC_CheckChild1Type, MVT::i32, ++/*421199*/ OPC_CheckChild2Integer, 15, ++/*421201*/ OPC_CheckChild2Type, MVT::i32, ++/*421203*/ OPC_CheckChild3Integer, 15, ++/*421205*/ OPC_CheckChild3Type, MVT::i32, ++/*421207*/ OPC_CheckChild4Integer, 15, ++/*421209*/ OPC_CheckChild4Type, MVT::i32, ++/*421211*/ OPC_MoveChild5, ++/*421212*/ OPC_CheckInteger, 15, ++/*421214*/ OPC_CheckType, MVT::i32, ++/*421216*/ OPC_MoveParent, ++/*421217*/ OPC_MoveChild6, ++/*421218*/ OPC_CheckInteger, 15, ++/*421220*/ OPC_CheckType, MVT::i32, ++/*421222*/ OPC_MoveParent, ++/*421223*/ OPC_MoveChild7, ++/*421224*/ OPC_CheckInteger, 15, ++/*421226*/ OPC_CheckType, MVT::i32, ++/*421228*/ OPC_MoveParent, ++/*421229*/ OPC_CheckType, MVT::v8i16, ++/*421231*/ OPC_MoveParent, ++/*421232*/ OPC_MoveParent, ++/*421233*/ OPC_MoveParent, ++/*421234*/ OPC_MoveChild1, ++/*421235*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*421238*/ OPC_CheckChild0Integer, 1, ++/*421240*/ OPC_CheckChild0Type, MVT::i32, ++/*421242*/ OPC_CheckChild1Integer, 1, ++/*421244*/ OPC_CheckChild1Type, MVT::i32, ++/*421246*/ OPC_CheckChild2Integer, 1, ++/*421248*/ OPC_CheckChild2Type, MVT::i32, ++/*421250*/ OPC_CheckChild3Integer, 1, ++/*421252*/ OPC_CheckChild3Type, MVT::i32, ++/*421254*/ OPC_CheckChild4Integer, 1, ++/*421256*/ OPC_CheckChild4Type, MVT::i32, ++/*421258*/ OPC_MoveChild5, ++/*421259*/ OPC_CheckInteger, 1, ++/*421261*/ OPC_CheckType, MVT::i32, ++/*421263*/ OPC_MoveParent, ++/*421264*/ OPC_MoveChild6, ++/*421265*/ OPC_CheckInteger, 1, ++/*421267*/ OPC_CheckType, MVT::i32, ++/*421269*/ OPC_MoveParent, ++/*421270*/ OPC_MoveChild7, ++/*421271*/ OPC_CheckInteger, 1, ++/*421273*/ OPC_CheckType, MVT::i32, ++/*421275*/ OPC_MoveParent, ++/*421276*/ OPC_CheckType, MVT::v8i16, ++/*421278*/ OPC_MoveParent, ++/*421279*/ OPC_CheckType, MVT::v8i16, ++/*421281*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*421283*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*421291*/ /*Scope*/ 25|128,1/*153*/, /*->421446*/ ++/*421293*/ OPC_CheckChild0Same, 1, ++/*421295*/ OPC_CheckChild1Same, 0, ++/*421297*/ OPC_MoveParent, ++/*421298*/ OPC_MoveChild1, ++/*421299*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*421302*/ OPC_CheckChild0Integer, 1, ++/*421304*/ OPC_CheckChild0Type, MVT::i32, ++/*421306*/ OPC_CheckChild1Integer, 1, ++/*421308*/ OPC_CheckChild1Type, MVT::i32, ++/*421310*/ OPC_CheckChild2Integer, 1, ++/*421312*/ OPC_CheckChild2Type, MVT::i32, ++/*421314*/ OPC_CheckChild3Integer, 1, ++/*421316*/ OPC_CheckChild3Type, MVT::i32, ++/*421318*/ OPC_CheckChild4Integer, 1, ++/*421320*/ OPC_CheckChild4Type, MVT::i32, ++/*421322*/ OPC_MoveChild5, ++/*421323*/ OPC_CheckInteger, 1, ++/*421325*/ OPC_CheckType, MVT::i32, ++/*421327*/ OPC_MoveParent, ++/*421328*/ OPC_MoveChild6, ++/*421329*/ OPC_CheckInteger, 1, ++/*421331*/ OPC_CheckType, MVT::i32, ++/*421333*/ OPC_MoveParent, ++/*421334*/ OPC_MoveChild7, ++/*421335*/ OPC_CheckInteger, 1, ++/*421337*/ OPC_CheckType, MVT::i32, ++/*421339*/ OPC_MoveParent, ++/*421340*/ OPC_MoveParent, ++/*421341*/ OPC_MoveParent, ++/*421342*/ OPC_MoveChild1, ++/*421343*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*421346*/ OPC_CheckChild0Integer, 15, ++/*421348*/ OPC_CheckChild0Type, MVT::i32, ++/*421350*/ OPC_CheckChild1Integer, 15, ++/*421352*/ OPC_CheckChild1Type, MVT::i32, ++/*421354*/ OPC_CheckChild2Integer, 15, ++/*421356*/ OPC_CheckChild2Type, MVT::i32, ++/*421358*/ OPC_CheckChild3Integer, 15, ++/*421360*/ OPC_CheckChild3Type, MVT::i32, ++/*421362*/ OPC_CheckChild4Integer, 15, ++/*421364*/ OPC_CheckChild4Type, MVT::i32, ++/*421366*/ OPC_MoveChild5, ++/*421367*/ OPC_CheckInteger, 15, ++/*421369*/ OPC_CheckType, MVT::i32, ++/*421371*/ OPC_MoveParent, ++/*421372*/ OPC_MoveChild6, ++/*421373*/ OPC_CheckInteger, 15, ++/*421375*/ OPC_CheckType, MVT::i32, ++/*421377*/ OPC_MoveParent, ++/*421378*/ OPC_MoveChild7, ++/*421379*/ OPC_CheckInteger, 15, ++/*421381*/ OPC_CheckType, MVT::i32, ++/*421383*/ OPC_MoveParent, ++/*421384*/ OPC_CheckType, MVT::v8i16, ++/*421386*/ OPC_MoveParent, ++/*421387*/ OPC_MoveParent, ++/*421388*/ OPC_MoveParent, ++/*421389*/ OPC_MoveChild1, ++/*421390*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*421393*/ OPC_CheckChild0Integer, 1, ++/*421395*/ OPC_CheckChild0Type, MVT::i32, ++/*421397*/ OPC_CheckChild1Integer, 1, ++/*421399*/ OPC_CheckChild1Type, MVT::i32, ++/*421401*/ OPC_CheckChild2Integer, 1, ++/*421403*/ OPC_CheckChild2Type, MVT::i32, ++/*421405*/ OPC_CheckChild3Integer, 1, ++/*421407*/ OPC_CheckChild3Type, MVT::i32, ++/*421409*/ OPC_CheckChild4Integer, 1, ++/*421411*/ OPC_CheckChild4Type, MVT::i32, ++/*421413*/ OPC_MoveChild5, ++/*421414*/ OPC_CheckInteger, 1, ++/*421416*/ OPC_CheckType, MVT::i32, ++/*421418*/ OPC_MoveParent, ++/*421419*/ OPC_MoveChild6, ++/*421420*/ OPC_CheckInteger, 1, ++/*421422*/ OPC_CheckType, MVT::i32, ++/*421424*/ OPC_MoveParent, ++/*421425*/ OPC_MoveChild7, ++/*421426*/ OPC_CheckInteger, 1, ++/*421428*/ OPC_CheckType, MVT::i32, ++/*421430*/ OPC_MoveParent, ++/*421431*/ OPC_CheckType, MVT::v8i16, ++/*421433*/ OPC_MoveParent, ++/*421434*/ OPC_CheckType, MVT::v8i16, ++/*421436*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*421438*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*421446*/ /*Scope*/ 25|128,1/*153*/, /*->421601*/ ++/*421448*/ OPC_CheckChild0Same, 0, ++/*421450*/ OPC_CheckChild1Same, 1, ++/*421452*/ OPC_MoveParent, ++/*421453*/ OPC_MoveChild1, ++/*421454*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*421457*/ OPC_CheckChild0Integer, 1, ++/*421459*/ OPC_CheckChild0Type, MVT::i32, ++/*421461*/ OPC_CheckChild1Integer, 1, ++/*421463*/ OPC_CheckChild1Type, MVT::i32, ++/*421465*/ OPC_CheckChild2Integer, 1, ++/*421467*/ OPC_CheckChild2Type, MVT::i32, ++/*421469*/ OPC_CheckChild3Integer, 1, ++/*421471*/ OPC_CheckChild3Type, MVT::i32, ++/*421473*/ OPC_CheckChild4Integer, 1, ++/*421475*/ OPC_CheckChild4Type, MVT::i32, ++/*421477*/ OPC_MoveChild5, ++/*421478*/ OPC_CheckInteger, 1, ++/*421480*/ OPC_CheckType, MVT::i32, ++/*421482*/ OPC_MoveParent, ++/*421483*/ OPC_MoveChild6, ++/*421484*/ OPC_CheckInteger, 1, ++/*421486*/ OPC_CheckType, MVT::i32, ++/*421488*/ OPC_MoveParent, ++/*421489*/ OPC_MoveChild7, ++/*421490*/ OPC_CheckInteger, 1, ++/*421492*/ OPC_CheckType, MVT::i32, ++/*421494*/ OPC_MoveParent, ++/*421495*/ OPC_MoveParent, ++/*421496*/ OPC_MoveParent, ++/*421497*/ OPC_MoveChild1, ++/*421498*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*421501*/ OPC_CheckChild0Integer, 15, ++/*421503*/ OPC_CheckChild0Type, MVT::i32, ++/*421505*/ OPC_CheckChild1Integer, 15, ++/*421507*/ OPC_CheckChild1Type, MVT::i32, ++/*421509*/ OPC_CheckChild2Integer, 15, ++/*421511*/ OPC_CheckChild2Type, MVT::i32, ++/*421513*/ OPC_CheckChild3Integer, 15, ++/*421515*/ OPC_CheckChild3Type, MVT::i32, ++/*421517*/ OPC_CheckChild4Integer, 15, ++/*421519*/ OPC_CheckChild4Type, MVT::i32, ++/*421521*/ OPC_MoveChild5, ++/*421522*/ OPC_CheckInteger, 15, ++/*421524*/ OPC_CheckType, MVT::i32, ++/*421526*/ OPC_MoveParent, ++/*421527*/ OPC_MoveChild6, ++/*421528*/ OPC_CheckInteger, 15, ++/*421530*/ OPC_CheckType, MVT::i32, ++/*421532*/ OPC_MoveParent, ++/*421533*/ OPC_MoveChild7, ++/*421534*/ OPC_CheckInteger, 15, ++/*421536*/ OPC_CheckType, MVT::i32, ++/*421538*/ OPC_MoveParent, ++/*421539*/ OPC_CheckType, MVT::v8i16, ++/*421541*/ OPC_MoveParent, ++/*421542*/ OPC_MoveParent, ++/*421543*/ OPC_MoveParent, ++/*421544*/ OPC_MoveChild1, ++/*421545*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*421548*/ OPC_CheckChild0Integer, 1, ++/*421550*/ OPC_CheckChild0Type, MVT::i32, ++/*421552*/ OPC_CheckChild1Integer, 1, ++/*421554*/ OPC_CheckChild1Type, MVT::i32, ++/*421556*/ OPC_CheckChild2Integer, 1, ++/*421558*/ OPC_CheckChild2Type, MVT::i32, ++/*421560*/ OPC_CheckChild3Integer, 1, ++/*421562*/ OPC_CheckChild3Type, MVT::i32, ++/*421564*/ OPC_CheckChild4Integer, 1, ++/*421566*/ OPC_CheckChild4Type, MVT::i32, ++/*421568*/ OPC_MoveChild5, ++/*421569*/ OPC_CheckInteger, 1, ++/*421571*/ OPC_CheckType, MVT::i32, ++/*421573*/ OPC_MoveParent, ++/*421574*/ OPC_MoveChild6, ++/*421575*/ OPC_CheckInteger, 1, ++/*421577*/ OPC_CheckType, MVT::i32, ++/*421579*/ OPC_MoveParent, ++/*421580*/ OPC_MoveChild7, ++/*421581*/ OPC_CheckInteger, 1, ++/*421583*/ OPC_CheckType, MVT::i32, ++/*421585*/ OPC_MoveParent, ++/*421586*/ OPC_CheckType, MVT::v8i16, ++/*421588*/ OPC_MoveParent, ++/*421589*/ OPC_CheckType, MVT::v8i16, ++/*421591*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*421593*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*421601*/ 0, /*End of Scope*/ ++/*421602*/ 0, // EndSwitchOpcode ++/*421603*/ /*Scope*/ 58|128,2/*314*/, /*->421919*/ ++/*421605*/ OPC_CheckChild0Same, 0, ++/*421607*/ OPC_MoveChild1, ++/*421608*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*421611*/ OPC_Scope, 23|128,1/*151*/, /*->421765*/ // 2 children in Scope ++/*421614*/ OPC_MoveChild0, ++/*421615*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*421618*/ OPC_CheckChild0Integer, 1, ++/*421620*/ OPC_CheckChild0Type, MVT::i32, ++/*421622*/ OPC_CheckChild1Integer, 1, ++/*421624*/ OPC_CheckChild1Type, MVT::i32, ++/*421626*/ OPC_CheckChild2Integer, 1, ++/*421628*/ OPC_CheckChild2Type, MVT::i32, ++/*421630*/ OPC_CheckChild3Integer, 1, ++/*421632*/ OPC_CheckChild3Type, MVT::i32, ++/*421634*/ OPC_CheckChild4Integer, 1, ++/*421636*/ OPC_CheckChild4Type, MVT::i32, ++/*421638*/ OPC_MoveChild5, ++/*421639*/ OPC_CheckInteger, 1, ++/*421641*/ OPC_CheckType, MVT::i32, ++/*421643*/ OPC_MoveParent, ++/*421644*/ OPC_MoveChild6, ++/*421645*/ OPC_CheckInteger, 1, ++/*421647*/ OPC_CheckType, MVT::i32, ++/*421649*/ OPC_MoveParent, ++/*421650*/ OPC_MoveChild7, ++/*421651*/ OPC_CheckInteger, 1, ++/*421653*/ OPC_CheckType, MVT::i32, ++/*421655*/ OPC_MoveParent, ++/*421656*/ OPC_MoveParent, ++/*421657*/ OPC_CheckChild1Same, 1, ++/*421659*/ OPC_MoveParent, ++/*421660*/ OPC_MoveParent, ++/*421661*/ OPC_MoveChild1, ++/*421662*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*421665*/ OPC_CheckChild0Integer, 15, ++/*421667*/ OPC_CheckChild0Type, MVT::i32, ++/*421669*/ OPC_CheckChild1Integer, 15, ++/*421671*/ OPC_CheckChild1Type, MVT::i32, ++/*421673*/ OPC_CheckChild2Integer, 15, ++/*421675*/ OPC_CheckChild2Type, MVT::i32, ++/*421677*/ OPC_CheckChild3Integer, 15, ++/*421679*/ OPC_CheckChild3Type, MVT::i32, ++/*421681*/ OPC_CheckChild4Integer, 15, ++/*421683*/ OPC_CheckChild4Type, MVT::i32, ++/*421685*/ OPC_MoveChild5, ++/*421686*/ OPC_CheckInteger, 15, ++/*421688*/ OPC_CheckType, MVT::i32, ++/*421690*/ OPC_MoveParent, ++/*421691*/ OPC_MoveChild6, ++/*421692*/ OPC_CheckInteger, 15, ++/*421694*/ OPC_CheckType, MVT::i32, ++/*421696*/ OPC_MoveParent, ++/*421697*/ OPC_MoveChild7, ++/*421698*/ OPC_CheckInteger, 15, ++/*421700*/ OPC_CheckType, MVT::i32, ++/*421702*/ OPC_MoveParent, ++/*421703*/ OPC_CheckType, MVT::v8i16, ++/*421705*/ OPC_MoveParent, ++/*421706*/ OPC_MoveParent, ++/*421707*/ OPC_MoveParent, ++/*421708*/ OPC_MoveChild1, ++/*421709*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*421712*/ OPC_CheckChild0Integer, 1, ++/*421714*/ OPC_CheckChild0Type, MVT::i32, ++/*421716*/ OPC_CheckChild1Integer, 1, ++/*421718*/ OPC_CheckChild1Type, MVT::i32, ++/*421720*/ OPC_CheckChild2Integer, 1, ++/*421722*/ OPC_CheckChild2Type, MVT::i32, ++/*421724*/ OPC_CheckChild3Integer, 1, ++/*421726*/ OPC_CheckChild3Type, MVT::i32, ++/*421728*/ OPC_CheckChild4Integer, 1, ++/*421730*/ OPC_CheckChild4Type, MVT::i32, ++/*421732*/ OPC_MoveChild5, ++/*421733*/ OPC_CheckInteger, 1, ++/*421735*/ OPC_CheckType, MVT::i32, ++/*421737*/ OPC_MoveParent, ++/*421738*/ OPC_MoveChild6, ++/*421739*/ OPC_CheckInteger, 1, ++/*421741*/ OPC_CheckType, MVT::i32, ++/*421743*/ OPC_MoveParent, ++/*421744*/ OPC_MoveChild7, ++/*421745*/ OPC_CheckInteger, 1, ++/*421747*/ OPC_CheckType, MVT::i32, ++/*421749*/ OPC_MoveParent, ++/*421750*/ OPC_CheckType, MVT::v8i16, ++/*421752*/ OPC_MoveParent, ++/*421753*/ OPC_CheckType, MVT::v8i16, ++/*421755*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*421757*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*421765*/ /*Scope*/ 23|128,1/*151*/, /*->421918*/ ++/*421767*/ OPC_CheckChild0Same, 1, ++/*421769*/ OPC_MoveChild1, ++/*421770*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*421773*/ OPC_CheckChild0Integer, 1, ++/*421775*/ OPC_CheckChild0Type, MVT::i32, ++/*421777*/ OPC_CheckChild1Integer, 1, ++/*421779*/ OPC_CheckChild1Type, MVT::i32, ++/*421781*/ OPC_CheckChild2Integer, 1, ++/*421783*/ OPC_CheckChild2Type, MVT::i32, ++/*421785*/ OPC_CheckChild3Integer, 1, ++/*421787*/ OPC_CheckChild3Type, MVT::i32, ++/*421789*/ OPC_CheckChild4Integer, 1, ++/*421791*/ OPC_CheckChild4Type, MVT::i32, ++/*421793*/ OPC_MoveChild5, ++/*421794*/ OPC_CheckInteger, 1, ++/*421796*/ OPC_CheckType, MVT::i32, ++/*421798*/ OPC_MoveParent, ++/*421799*/ OPC_MoveChild6, ++/*421800*/ OPC_CheckInteger, 1, ++/*421802*/ OPC_CheckType, MVT::i32, ++/*421804*/ OPC_MoveParent, ++/*421805*/ OPC_MoveChild7, ++/*421806*/ OPC_CheckInteger, 1, ++/*421808*/ OPC_CheckType, MVT::i32, ++/*421810*/ OPC_MoveParent, ++/*421811*/ OPC_MoveParent, ++/*421812*/ OPC_MoveParent, ++/*421813*/ OPC_MoveParent, ++/*421814*/ OPC_MoveChild1, ++/*421815*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*421818*/ OPC_CheckChild0Integer, 15, ++/*421820*/ OPC_CheckChild0Type, MVT::i32, ++/*421822*/ OPC_CheckChild1Integer, 15, ++/*421824*/ OPC_CheckChild1Type, MVT::i32, ++/*421826*/ OPC_CheckChild2Integer, 15, ++/*421828*/ OPC_CheckChild2Type, MVT::i32, ++/*421830*/ OPC_CheckChild3Integer, 15, ++/*421832*/ OPC_CheckChild3Type, MVT::i32, ++/*421834*/ OPC_CheckChild4Integer, 15, ++/*421836*/ OPC_CheckChild4Type, MVT::i32, ++/*421838*/ OPC_MoveChild5, ++/*421839*/ OPC_CheckInteger, 15, ++/*421841*/ OPC_CheckType, MVT::i32, ++/*421843*/ OPC_MoveParent, ++/*421844*/ OPC_MoveChild6, ++/*421845*/ OPC_CheckInteger, 15, ++/*421847*/ OPC_CheckType, MVT::i32, ++/*421849*/ OPC_MoveParent, ++/*421850*/ OPC_MoveChild7, ++/*421851*/ OPC_CheckInteger, 15, ++/*421853*/ OPC_CheckType, MVT::i32, ++/*421855*/ OPC_MoveParent, ++/*421856*/ OPC_CheckType, MVT::v8i16, ++/*421858*/ OPC_MoveParent, ++/*421859*/ OPC_MoveParent, ++/*421860*/ OPC_MoveParent, ++/*421861*/ OPC_MoveChild1, ++/*421862*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*421865*/ OPC_CheckChild0Integer, 1, ++/*421867*/ OPC_CheckChild0Type, MVT::i32, ++/*421869*/ OPC_CheckChild1Integer, 1, ++/*421871*/ OPC_CheckChild1Type, MVT::i32, ++/*421873*/ OPC_CheckChild2Integer, 1, ++/*421875*/ OPC_CheckChild2Type, MVT::i32, ++/*421877*/ OPC_CheckChild3Integer, 1, ++/*421879*/ OPC_CheckChild3Type, MVT::i32, ++/*421881*/ OPC_CheckChild4Integer, 1, ++/*421883*/ OPC_CheckChild4Type, MVT::i32, ++/*421885*/ OPC_MoveChild5, ++/*421886*/ OPC_CheckInteger, 1, ++/*421888*/ OPC_CheckType, MVT::i32, ++/*421890*/ OPC_MoveParent, ++/*421891*/ OPC_MoveChild6, ++/*421892*/ OPC_CheckInteger, 1, ++/*421894*/ OPC_CheckType, MVT::i32, ++/*421896*/ OPC_MoveParent, ++/*421897*/ OPC_MoveChild7, ++/*421898*/ OPC_CheckInteger, 1, ++/*421900*/ OPC_CheckType, MVT::i32, ++/*421902*/ OPC_MoveParent, ++/*421903*/ OPC_CheckType, MVT::v8i16, ++/*421905*/ OPC_MoveParent, ++/*421906*/ OPC_CheckType, MVT::v8i16, ++/*421908*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*421910*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*421918*/ 0, /*End of Scope*/ ++/*421919*/ /*Scope*/ 58|128,2/*314*/, /*->422235*/ ++/*421921*/ OPC_CheckChild0Same, 1, ++/*421923*/ OPC_MoveChild1, ++/*421924*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*421927*/ OPC_Scope, 23|128,1/*151*/, /*->422081*/ // 2 children in Scope ++/*421930*/ OPC_MoveChild0, ++/*421931*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*421934*/ OPC_CheckChild0Integer, 1, ++/*421936*/ OPC_CheckChild0Type, MVT::i32, ++/*421938*/ OPC_CheckChild1Integer, 1, ++/*421940*/ OPC_CheckChild1Type, MVT::i32, ++/*421942*/ OPC_CheckChild2Integer, 1, ++/*421944*/ OPC_CheckChild2Type, MVT::i32, ++/*421946*/ OPC_CheckChild3Integer, 1, ++/*421948*/ OPC_CheckChild3Type, MVT::i32, ++/*421950*/ OPC_CheckChild4Integer, 1, ++/*421952*/ OPC_CheckChild4Type, MVT::i32, ++/*421954*/ OPC_MoveChild5, ++/*421955*/ OPC_CheckInteger, 1, ++/*421957*/ OPC_CheckType, MVT::i32, ++/*421959*/ OPC_MoveParent, ++/*421960*/ OPC_MoveChild6, ++/*421961*/ OPC_CheckInteger, 1, ++/*421963*/ OPC_CheckType, MVT::i32, ++/*421965*/ OPC_MoveParent, ++/*421966*/ OPC_MoveChild7, ++/*421967*/ OPC_CheckInteger, 1, ++/*421969*/ OPC_CheckType, MVT::i32, ++/*421971*/ OPC_MoveParent, ++/*421972*/ OPC_MoveParent, ++/*421973*/ OPC_CheckChild1Same, 0, ++/*421975*/ OPC_MoveParent, ++/*421976*/ OPC_MoveParent, ++/*421977*/ OPC_MoveChild1, ++/*421978*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*421981*/ OPC_CheckChild0Integer, 15, ++/*421983*/ OPC_CheckChild0Type, MVT::i32, ++/*421985*/ OPC_CheckChild1Integer, 15, ++/*421987*/ OPC_CheckChild1Type, MVT::i32, ++/*421989*/ OPC_CheckChild2Integer, 15, ++/*421991*/ OPC_CheckChild2Type, MVT::i32, ++/*421993*/ OPC_CheckChild3Integer, 15, ++/*421995*/ OPC_CheckChild3Type, MVT::i32, ++/*421997*/ OPC_CheckChild4Integer, 15, ++/*421999*/ OPC_CheckChild4Type, MVT::i32, ++/*422001*/ OPC_MoveChild5, ++/*422002*/ OPC_CheckInteger, 15, ++/*422004*/ OPC_CheckType, MVT::i32, ++/*422006*/ OPC_MoveParent, ++/*422007*/ OPC_MoveChild6, ++/*422008*/ OPC_CheckInteger, 15, ++/*422010*/ OPC_CheckType, MVT::i32, ++/*422012*/ OPC_MoveParent, ++/*422013*/ OPC_MoveChild7, ++/*422014*/ OPC_CheckInteger, 15, ++/*422016*/ OPC_CheckType, MVT::i32, ++/*422018*/ OPC_MoveParent, ++/*422019*/ OPC_CheckType, MVT::v8i16, ++/*422021*/ OPC_MoveParent, ++/*422022*/ OPC_MoveParent, ++/*422023*/ OPC_MoveParent, ++/*422024*/ OPC_MoveChild1, ++/*422025*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*422028*/ OPC_CheckChild0Integer, 1, ++/*422030*/ OPC_CheckChild0Type, MVT::i32, ++/*422032*/ OPC_CheckChild1Integer, 1, ++/*422034*/ OPC_CheckChild1Type, MVT::i32, ++/*422036*/ OPC_CheckChild2Integer, 1, ++/*422038*/ OPC_CheckChild2Type, MVT::i32, ++/*422040*/ OPC_CheckChild3Integer, 1, ++/*422042*/ OPC_CheckChild3Type, MVT::i32, ++/*422044*/ OPC_CheckChild4Integer, 1, ++/*422046*/ OPC_CheckChild4Type, MVT::i32, ++/*422048*/ OPC_MoveChild5, ++/*422049*/ OPC_CheckInteger, 1, ++/*422051*/ OPC_CheckType, MVT::i32, ++/*422053*/ OPC_MoveParent, ++/*422054*/ OPC_MoveChild6, ++/*422055*/ OPC_CheckInteger, 1, ++/*422057*/ OPC_CheckType, MVT::i32, ++/*422059*/ OPC_MoveParent, ++/*422060*/ OPC_MoveChild7, ++/*422061*/ OPC_CheckInteger, 1, ++/*422063*/ OPC_CheckType, MVT::i32, ++/*422065*/ OPC_MoveParent, ++/*422066*/ OPC_CheckType, MVT::v8i16, ++/*422068*/ OPC_MoveParent, ++/*422069*/ OPC_CheckType, MVT::v8i16, ++/*422071*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*422073*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*422081*/ /*Scope*/ 23|128,1/*151*/, /*->422234*/ ++/*422083*/ OPC_CheckChild0Same, 0, ++/*422085*/ OPC_MoveChild1, ++/*422086*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*422089*/ OPC_CheckChild0Integer, 1, ++/*422091*/ OPC_CheckChild0Type, MVT::i32, ++/*422093*/ OPC_CheckChild1Integer, 1, ++/*422095*/ OPC_CheckChild1Type, MVT::i32, ++/*422097*/ OPC_CheckChild2Integer, 1, ++/*422099*/ OPC_CheckChild2Type, MVT::i32, ++/*422101*/ OPC_CheckChild3Integer, 1, ++/*422103*/ OPC_CheckChild3Type, MVT::i32, ++/*422105*/ OPC_CheckChild4Integer, 1, ++/*422107*/ OPC_CheckChild4Type, MVT::i32, ++/*422109*/ OPC_MoveChild5, ++/*422110*/ OPC_CheckInteger, 1, ++/*422112*/ OPC_CheckType, MVT::i32, ++/*422114*/ OPC_MoveParent, ++/*422115*/ OPC_MoveChild6, ++/*422116*/ OPC_CheckInteger, 1, ++/*422118*/ OPC_CheckType, MVT::i32, ++/*422120*/ OPC_MoveParent, ++/*422121*/ OPC_MoveChild7, ++/*422122*/ OPC_CheckInteger, 1, ++/*422124*/ OPC_CheckType, MVT::i32, ++/*422126*/ OPC_MoveParent, ++/*422127*/ OPC_MoveParent, ++/*422128*/ OPC_MoveParent, ++/*422129*/ OPC_MoveParent, ++/*422130*/ OPC_MoveChild1, ++/*422131*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*422134*/ OPC_CheckChild0Integer, 15, ++/*422136*/ OPC_CheckChild0Type, MVT::i32, ++/*422138*/ OPC_CheckChild1Integer, 15, ++/*422140*/ OPC_CheckChild1Type, MVT::i32, ++/*422142*/ OPC_CheckChild2Integer, 15, ++/*422144*/ OPC_CheckChild2Type, MVT::i32, ++/*422146*/ OPC_CheckChild3Integer, 15, ++/*422148*/ OPC_CheckChild3Type, MVT::i32, ++/*422150*/ OPC_CheckChild4Integer, 15, ++/*422152*/ OPC_CheckChild4Type, MVT::i32, ++/*422154*/ OPC_MoveChild5, ++/*422155*/ OPC_CheckInteger, 15, ++/*422157*/ OPC_CheckType, MVT::i32, ++/*422159*/ OPC_MoveParent, ++/*422160*/ OPC_MoveChild6, ++/*422161*/ OPC_CheckInteger, 15, ++/*422163*/ OPC_CheckType, MVT::i32, ++/*422165*/ OPC_MoveParent, ++/*422166*/ OPC_MoveChild7, ++/*422167*/ OPC_CheckInteger, 15, ++/*422169*/ OPC_CheckType, MVT::i32, ++/*422171*/ OPC_MoveParent, ++/*422172*/ OPC_CheckType, MVT::v8i16, ++/*422174*/ OPC_MoveParent, ++/*422175*/ OPC_MoveParent, ++/*422176*/ OPC_MoveParent, ++/*422177*/ OPC_MoveChild1, ++/*422178*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*422181*/ OPC_CheckChild0Integer, 1, ++/*422183*/ OPC_CheckChild0Type, MVT::i32, ++/*422185*/ OPC_CheckChild1Integer, 1, ++/*422187*/ OPC_CheckChild1Type, MVT::i32, ++/*422189*/ OPC_CheckChild2Integer, 1, ++/*422191*/ OPC_CheckChild2Type, MVT::i32, ++/*422193*/ OPC_CheckChild3Integer, 1, ++/*422195*/ OPC_CheckChild3Type, MVT::i32, ++/*422197*/ OPC_CheckChild4Integer, 1, ++/*422199*/ OPC_CheckChild4Type, MVT::i32, ++/*422201*/ OPC_MoveChild5, ++/*422202*/ OPC_CheckInteger, 1, ++/*422204*/ OPC_CheckType, MVT::i32, ++/*422206*/ OPC_MoveParent, ++/*422207*/ OPC_MoveChild6, ++/*422208*/ OPC_CheckInteger, 1, ++/*422210*/ OPC_CheckType, MVT::i32, ++/*422212*/ OPC_MoveParent, ++/*422213*/ OPC_MoveChild7, ++/*422214*/ OPC_CheckInteger, 1, ++/*422216*/ OPC_CheckType, MVT::i32, ++/*422218*/ OPC_MoveParent, ++/*422219*/ OPC_CheckType, MVT::v8i16, ++/*422221*/ OPC_MoveParent, ++/*422222*/ OPC_CheckType, MVT::v8i16, ++/*422224*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*422226*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*422234*/ 0, /*End of Scope*/ ++/*422235*/ /*Scope*/ 15|128,2/*271*/, /*->422508*/ ++/*422237*/ OPC_MoveChild0, ++/*422238*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*422241*/ OPC_CheckChild0Integer, 1, ++/*422243*/ OPC_CheckChild0Type, MVT::i32, ++/*422245*/ OPC_CheckChild1Integer, 1, ++/*422247*/ OPC_CheckChild1Type, MVT::i32, ++/*422249*/ OPC_CheckChild2Integer, 1, ++/*422251*/ OPC_CheckChild2Type, MVT::i32, ++/*422253*/ OPC_CheckChild3Integer, 1, ++/*422255*/ OPC_CheckChild3Type, MVT::i32, ++/*422257*/ OPC_CheckChild4Integer, 1, ++/*422259*/ OPC_CheckChild4Type, MVT::i32, ++/*422261*/ OPC_MoveChild5, ++/*422262*/ OPC_CheckInteger, 1, ++/*422264*/ OPC_CheckType, MVT::i32, ++/*422266*/ OPC_MoveParent, ++/*422267*/ OPC_MoveChild6, ++/*422268*/ OPC_CheckInteger, 1, ++/*422270*/ OPC_CheckType, MVT::i32, ++/*422272*/ OPC_MoveParent, ++/*422273*/ OPC_MoveChild7, ++/*422274*/ OPC_CheckInteger, 1, ++/*422276*/ OPC_CheckType, MVT::i32, ++/*422278*/ OPC_MoveParent, ++/*422279*/ OPC_MoveParent, ++/*422280*/ OPC_MoveChild1, ++/*422281*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*422284*/ OPC_Scope, 110, /*->422396*/ // 2 children in Scope ++/*422286*/ OPC_CheckChild0Same, 1, ++/*422288*/ OPC_CheckChild1Same, 0, ++/*422290*/ OPC_MoveParent, ++/*422291*/ OPC_MoveParent, ++/*422292*/ OPC_MoveChild1, ++/*422293*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*422296*/ OPC_CheckChild0Integer, 15, ++/*422298*/ OPC_CheckChild0Type, MVT::i32, ++/*422300*/ OPC_CheckChild1Integer, 15, ++/*422302*/ OPC_CheckChild1Type, MVT::i32, ++/*422304*/ OPC_CheckChild2Integer, 15, ++/*422306*/ OPC_CheckChild2Type, MVT::i32, ++/*422308*/ OPC_CheckChild3Integer, 15, ++/*422310*/ OPC_CheckChild3Type, MVT::i32, ++/*422312*/ OPC_CheckChild4Integer, 15, ++/*422314*/ OPC_CheckChild4Type, MVT::i32, ++/*422316*/ OPC_MoveChild5, ++/*422317*/ OPC_CheckInteger, 15, ++/*422319*/ OPC_CheckType, MVT::i32, ++/*422321*/ OPC_MoveParent, ++/*422322*/ OPC_MoveChild6, ++/*422323*/ OPC_CheckInteger, 15, ++/*422325*/ OPC_CheckType, MVT::i32, ++/*422327*/ OPC_MoveParent, ++/*422328*/ OPC_MoveChild7, ++/*422329*/ OPC_CheckInteger, 15, ++/*422331*/ OPC_CheckType, MVT::i32, ++/*422333*/ OPC_MoveParent, ++/*422334*/ OPC_CheckType, MVT::v8i16, ++/*422336*/ OPC_MoveParent, ++/*422337*/ OPC_MoveParent, ++/*422338*/ OPC_MoveParent, ++/*422339*/ OPC_MoveChild1, ++/*422340*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*422343*/ OPC_CheckChild0Integer, 1, ++/*422345*/ OPC_CheckChild0Type, MVT::i32, ++/*422347*/ OPC_CheckChild1Integer, 1, ++/*422349*/ OPC_CheckChild1Type, MVT::i32, ++/*422351*/ OPC_CheckChild2Integer, 1, ++/*422353*/ OPC_CheckChild2Type, MVT::i32, ++/*422355*/ OPC_CheckChild3Integer, 1, ++/*422357*/ OPC_CheckChild3Type, MVT::i32, ++/*422359*/ OPC_CheckChild4Integer, 1, ++/*422361*/ OPC_CheckChild4Type, MVT::i32, ++/*422363*/ OPC_MoveChild5, ++/*422364*/ OPC_CheckInteger, 1, ++/*422366*/ OPC_CheckType, MVT::i32, ++/*422368*/ OPC_MoveParent, ++/*422369*/ OPC_MoveChild6, ++/*422370*/ OPC_CheckInteger, 1, ++/*422372*/ OPC_CheckType, MVT::i32, ++/*422374*/ OPC_MoveParent, ++/*422375*/ OPC_MoveChild7, ++/*422376*/ OPC_CheckInteger, 1, ++/*422378*/ OPC_CheckType, MVT::i32, ++/*422380*/ OPC_MoveParent, ++/*422381*/ OPC_CheckType, MVT::v8i16, ++/*422383*/ OPC_MoveParent, ++/*422384*/ OPC_CheckType, MVT::v8i16, ++/*422386*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*422388*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*422396*/ /*Scope*/ 110, /*->422507*/ ++/*422397*/ OPC_CheckChild0Same, 0, ++/*422399*/ OPC_CheckChild1Same, 1, ++/*422401*/ OPC_MoveParent, ++/*422402*/ OPC_MoveParent, ++/*422403*/ OPC_MoveChild1, ++/*422404*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*422407*/ OPC_CheckChild0Integer, 15, ++/*422409*/ OPC_CheckChild0Type, MVT::i32, ++/*422411*/ OPC_CheckChild1Integer, 15, ++/*422413*/ OPC_CheckChild1Type, MVT::i32, ++/*422415*/ OPC_CheckChild2Integer, 15, ++/*422417*/ OPC_CheckChild2Type, MVT::i32, ++/*422419*/ OPC_CheckChild3Integer, 15, ++/*422421*/ OPC_CheckChild3Type, MVT::i32, ++/*422423*/ OPC_CheckChild4Integer, 15, ++/*422425*/ OPC_CheckChild4Type, MVT::i32, ++/*422427*/ OPC_MoveChild5, ++/*422428*/ OPC_CheckInteger, 15, ++/*422430*/ OPC_CheckType, MVT::i32, ++/*422432*/ OPC_MoveParent, ++/*422433*/ OPC_MoveChild6, ++/*422434*/ OPC_CheckInteger, 15, ++/*422436*/ OPC_CheckType, MVT::i32, ++/*422438*/ OPC_MoveParent, ++/*422439*/ OPC_MoveChild7, ++/*422440*/ OPC_CheckInteger, 15, ++/*422442*/ OPC_CheckType, MVT::i32, ++/*422444*/ OPC_MoveParent, ++/*422445*/ OPC_CheckType, MVT::v8i16, ++/*422447*/ OPC_MoveParent, ++/*422448*/ OPC_MoveParent, ++/*422449*/ OPC_MoveParent, ++/*422450*/ OPC_MoveChild1, ++/*422451*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*422454*/ OPC_CheckChild0Integer, 1, ++/*422456*/ OPC_CheckChild0Type, MVT::i32, ++/*422458*/ OPC_CheckChild1Integer, 1, ++/*422460*/ OPC_CheckChild1Type, MVT::i32, ++/*422462*/ OPC_CheckChild2Integer, 1, ++/*422464*/ OPC_CheckChild2Type, MVT::i32, ++/*422466*/ OPC_CheckChild3Integer, 1, ++/*422468*/ OPC_CheckChild3Type, MVT::i32, ++/*422470*/ OPC_CheckChild4Integer, 1, ++/*422472*/ OPC_CheckChild4Type, MVT::i32, ++/*422474*/ OPC_MoveChild5, ++/*422475*/ OPC_CheckInteger, 1, ++/*422477*/ OPC_CheckType, MVT::i32, ++/*422479*/ OPC_MoveParent, ++/*422480*/ OPC_MoveChild6, ++/*422481*/ OPC_CheckInteger, 1, ++/*422483*/ OPC_CheckType, MVT::i32, ++/*422485*/ OPC_MoveParent, ++/*422486*/ OPC_MoveChild7, ++/*422487*/ OPC_CheckInteger, 1, ++/*422489*/ OPC_CheckType, MVT::i32, ++/*422491*/ OPC_MoveParent, ++/*422492*/ OPC_CheckType, MVT::v8i16, ++/*422494*/ OPC_MoveParent, ++/*422495*/ OPC_CheckType, MVT::v8i16, ++/*422497*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*422499*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*422507*/ 0, /*End of Scope*/ ++/*422508*/ 0, /*End of Scope*/ ++/*422509*/ 0, /*End of Scope*/ ++/*422510*/ 0, /*End of Scope*/ ++/*422511*/ 0, // EndSwitchOpcode ++/*422512*/ /*Scope*/ 59|128,59/*7611*/, /*->430125*/ ++/*422514*/ OPC_RecordChild0, // #0 = $b ++/*422515*/ OPC_MoveChild1, ++/*422516*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*422519*/ OPC_Scope, 107|128,14/*1899*/, /*->424421*/ // 4 children in Scope ++/*422522*/ OPC_MoveChild0, ++/*422523*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*422526*/ OPC_CheckChild0Integer, 1, ++/*422528*/ OPC_CheckChild0Type, MVT::i32, ++/*422530*/ OPC_CheckChild1Integer, 1, ++/*422532*/ OPC_CheckChild1Type, MVT::i32, ++/*422534*/ OPC_CheckChild2Integer, 1, ++/*422536*/ OPC_CheckChild2Type, MVT::i32, ++/*422538*/ OPC_CheckChild3Integer, 1, ++/*422540*/ OPC_CheckChild3Type, MVT::i32, ++/*422542*/ OPC_CheckChild4Integer, 1, ++/*422544*/ OPC_CheckChild4Type, MVT::i32, ++/*422546*/ OPC_MoveChild5, ++/*422547*/ OPC_CheckInteger, 1, ++/*422549*/ OPC_CheckType, MVT::i32, ++/*422551*/ OPC_MoveParent, ++/*422552*/ OPC_MoveChild6, ++/*422553*/ OPC_CheckInteger, 1, ++/*422555*/ OPC_CheckType, MVT::i32, ++/*422557*/ OPC_MoveParent, ++/*422558*/ OPC_MoveChild7, ++/*422559*/ OPC_CheckInteger, 1, ++/*422561*/ OPC_CheckType, MVT::i32, ++/*422563*/ OPC_MoveParent, ++/*422564*/ OPC_MoveParent, ++/*422565*/ OPC_RecordChild1, // #1 = $a ++/*422566*/ OPC_MoveParent, ++/*422567*/ OPC_MoveParent, ++/*422568*/ OPC_MoveChild1, ++/*422569*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*422572*/ OPC_MoveChild0, ++/*422573*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*422576*/ OPC_Scope, 40|128,7/*936*/, /*->423515*/ // 4 children in Scope ++/*422579*/ OPC_MoveChild0, ++/*422580*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*422583*/ OPC_Scope, 25|128,1/*153*/, /*->422739*/ // 6 children in Scope ++/*422586*/ OPC_MoveChild0, ++/*422587*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*422590*/ OPC_CheckChild0Integer, 1, ++/*422592*/ OPC_CheckChild0Type, MVT::i32, ++/*422594*/ OPC_CheckChild1Integer, 1, ++/*422596*/ OPC_CheckChild1Type, MVT::i32, ++/*422598*/ OPC_CheckChild2Integer, 1, ++/*422600*/ OPC_CheckChild2Type, MVT::i32, ++/*422602*/ OPC_CheckChild3Integer, 1, ++/*422604*/ OPC_CheckChild3Type, MVT::i32, ++/*422606*/ OPC_CheckChild4Integer, 1, ++/*422608*/ OPC_CheckChild4Type, MVT::i32, ++/*422610*/ OPC_MoveChild5, ++/*422611*/ OPC_CheckInteger, 1, ++/*422613*/ OPC_CheckType, MVT::i32, ++/*422615*/ OPC_MoveParent, ++/*422616*/ OPC_MoveChild6, ++/*422617*/ OPC_CheckInteger, 1, ++/*422619*/ OPC_CheckType, MVT::i32, ++/*422621*/ OPC_MoveParent, ++/*422622*/ OPC_MoveChild7, ++/*422623*/ OPC_CheckInteger, 1, ++/*422625*/ OPC_CheckType, MVT::i32, ++/*422627*/ OPC_MoveParent, ++/*422628*/ OPC_MoveParent, ++/*422629*/ OPC_CheckChild1Same, 1, ++/*422631*/ OPC_MoveParent, ++/*422632*/ OPC_CheckChild1Same, 0, ++/*422634*/ OPC_MoveParent, ++/*422635*/ OPC_MoveChild1, ++/*422636*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*422639*/ OPC_CheckChild0Integer, 15, ++/*422641*/ OPC_CheckChild0Type, MVT::i32, ++/*422643*/ OPC_CheckChild1Integer, 15, ++/*422645*/ OPC_CheckChild1Type, MVT::i32, ++/*422647*/ OPC_CheckChild2Integer, 15, ++/*422649*/ OPC_CheckChild2Type, MVT::i32, ++/*422651*/ OPC_CheckChild3Integer, 15, ++/*422653*/ OPC_CheckChild3Type, MVT::i32, ++/*422655*/ OPC_CheckChild4Integer, 15, ++/*422657*/ OPC_CheckChild4Type, MVT::i32, ++/*422659*/ OPC_MoveChild5, ++/*422660*/ OPC_CheckInteger, 15, ++/*422662*/ OPC_CheckType, MVT::i32, ++/*422664*/ OPC_MoveParent, ++/*422665*/ OPC_MoveChild6, ++/*422666*/ OPC_CheckInteger, 15, ++/*422668*/ OPC_CheckType, MVT::i32, ++/*422670*/ OPC_MoveParent, ++/*422671*/ OPC_MoveChild7, ++/*422672*/ OPC_CheckInteger, 15, ++/*422674*/ OPC_CheckType, MVT::i32, ++/*422676*/ OPC_MoveParent, ++/*422677*/ OPC_CheckType, MVT::v8i16, ++/*422679*/ OPC_MoveParent, ++/*422680*/ OPC_MoveParent, ++/*422681*/ OPC_MoveParent, ++/*422682*/ OPC_MoveChild1, ++/*422683*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*422686*/ OPC_CheckChild0Integer, 1, ++/*422688*/ OPC_CheckChild0Type, MVT::i32, ++/*422690*/ OPC_CheckChild1Integer, 1, ++/*422692*/ OPC_CheckChild1Type, MVT::i32, ++/*422694*/ OPC_CheckChild2Integer, 1, ++/*422696*/ OPC_CheckChild2Type, MVT::i32, ++/*422698*/ OPC_CheckChild3Integer, 1, ++/*422700*/ OPC_CheckChild3Type, MVT::i32, ++/*422702*/ OPC_CheckChild4Integer, 1, ++/*422704*/ OPC_CheckChild4Type, MVT::i32, ++/*422706*/ OPC_MoveChild5, ++/*422707*/ OPC_CheckInteger, 1, ++/*422709*/ OPC_CheckType, MVT::i32, ++/*422711*/ OPC_MoveParent, ++/*422712*/ OPC_MoveChild6, ++/*422713*/ OPC_CheckInteger, 1, ++/*422715*/ OPC_CheckType, MVT::i32, ++/*422717*/ OPC_MoveParent, ++/*422718*/ OPC_MoveChild7, ++/*422719*/ OPC_CheckInteger, 1, ++/*422721*/ OPC_CheckType, MVT::i32, ++/*422723*/ OPC_MoveParent, ++/*422724*/ OPC_CheckType, MVT::v8i16, ++/*422726*/ OPC_MoveParent, ++/*422727*/ OPC_CheckType, MVT::v8i16, ++/*422729*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*422731*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a)), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a), LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*422739*/ /*Scope*/ 25|128,1/*153*/, /*->422894*/ ++/*422741*/ OPC_CheckChild0Same, 1, ++/*422743*/ OPC_MoveChild1, ++/*422744*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*422747*/ OPC_CheckChild0Integer, 1, ++/*422749*/ OPC_CheckChild0Type, MVT::i32, ++/*422751*/ OPC_CheckChild1Integer, 1, ++/*422753*/ OPC_CheckChild1Type, MVT::i32, ++/*422755*/ OPC_CheckChild2Integer, 1, ++/*422757*/ OPC_CheckChild2Type, MVT::i32, ++/*422759*/ OPC_CheckChild3Integer, 1, ++/*422761*/ OPC_CheckChild3Type, MVT::i32, ++/*422763*/ OPC_CheckChild4Integer, 1, ++/*422765*/ OPC_CheckChild4Type, MVT::i32, ++/*422767*/ OPC_MoveChild5, ++/*422768*/ OPC_CheckInteger, 1, ++/*422770*/ OPC_CheckType, MVT::i32, ++/*422772*/ OPC_MoveParent, ++/*422773*/ OPC_MoveChild6, ++/*422774*/ OPC_CheckInteger, 1, ++/*422776*/ OPC_CheckType, MVT::i32, ++/*422778*/ OPC_MoveParent, ++/*422779*/ OPC_MoveChild7, ++/*422780*/ OPC_CheckInteger, 1, ++/*422782*/ OPC_CheckType, MVT::i32, ++/*422784*/ OPC_MoveParent, ++/*422785*/ OPC_MoveParent, ++/*422786*/ OPC_MoveParent, ++/*422787*/ OPC_CheckChild1Same, 0, ++/*422789*/ OPC_MoveParent, ++/*422790*/ OPC_MoveChild1, ++/*422791*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*422794*/ OPC_CheckChild0Integer, 15, ++/*422796*/ OPC_CheckChild0Type, MVT::i32, ++/*422798*/ OPC_CheckChild1Integer, 15, ++/*422800*/ OPC_CheckChild1Type, MVT::i32, ++/*422802*/ OPC_CheckChild2Integer, 15, ++/*422804*/ OPC_CheckChild2Type, MVT::i32, ++/*422806*/ OPC_CheckChild3Integer, 15, ++/*422808*/ OPC_CheckChild3Type, MVT::i32, ++/*422810*/ OPC_CheckChild4Integer, 15, ++/*422812*/ OPC_CheckChild4Type, MVT::i32, ++/*422814*/ OPC_MoveChild5, ++/*422815*/ OPC_CheckInteger, 15, ++/*422817*/ OPC_CheckType, MVT::i32, ++/*422819*/ OPC_MoveParent, ++/*422820*/ OPC_MoveChild6, ++/*422821*/ OPC_CheckInteger, 15, ++/*422823*/ OPC_CheckType, MVT::i32, ++/*422825*/ OPC_MoveParent, ++/*422826*/ OPC_MoveChild7, ++/*422827*/ OPC_CheckInteger, 15, ++/*422829*/ OPC_CheckType, MVT::i32, ++/*422831*/ OPC_MoveParent, ++/*422832*/ OPC_CheckType, MVT::v8i16, ++/*422834*/ OPC_MoveParent, ++/*422835*/ OPC_MoveParent, ++/*422836*/ OPC_MoveParent, ++/*422837*/ OPC_MoveChild1, ++/*422838*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*422841*/ OPC_CheckChild0Integer, 1, ++/*422843*/ OPC_CheckChild0Type, MVT::i32, ++/*422845*/ OPC_CheckChild1Integer, 1, ++/*422847*/ OPC_CheckChild1Type, MVT::i32, ++/*422849*/ OPC_CheckChild2Integer, 1, ++/*422851*/ OPC_CheckChild2Type, MVT::i32, ++/*422853*/ OPC_CheckChild3Integer, 1, ++/*422855*/ OPC_CheckChild3Type, MVT::i32, ++/*422857*/ OPC_CheckChild4Integer, 1, ++/*422859*/ OPC_CheckChild4Type, MVT::i32, ++/*422861*/ OPC_MoveChild5, ++/*422862*/ OPC_CheckInteger, 1, ++/*422864*/ OPC_CheckType, MVT::i32, ++/*422866*/ OPC_MoveParent, ++/*422867*/ OPC_MoveChild6, ++/*422868*/ OPC_CheckInteger, 1, ++/*422870*/ OPC_CheckType, MVT::i32, ++/*422872*/ OPC_MoveParent, ++/*422873*/ OPC_MoveChild7, ++/*422874*/ OPC_CheckInteger, 1, ++/*422876*/ OPC_CheckType, MVT::i32, ++/*422878*/ OPC_MoveParent, ++/*422879*/ OPC_CheckType, MVT::v8i16, ++/*422881*/ OPC_MoveParent, ++/*422882*/ OPC_CheckType, MVT::v8i16, ++/*422884*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*422886*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a)), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*422894*/ /*Scope*/ 25|128,1/*153*/, /*->423049*/ ++/*422896*/ OPC_MoveChild0, ++/*422897*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*422900*/ OPC_CheckChild0Integer, 1, ++/*422902*/ OPC_CheckChild0Type, MVT::i32, ++/*422904*/ OPC_CheckChild1Integer, 1, ++/*422906*/ OPC_CheckChild1Type, MVT::i32, ++/*422908*/ OPC_CheckChild2Integer, 1, ++/*422910*/ OPC_CheckChild2Type, MVT::i32, ++/*422912*/ OPC_CheckChild3Integer, 1, ++/*422914*/ OPC_CheckChild3Type, MVT::i32, ++/*422916*/ OPC_CheckChild4Integer, 1, ++/*422918*/ OPC_CheckChild4Type, MVT::i32, ++/*422920*/ OPC_MoveChild5, ++/*422921*/ OPC_CheckInteger, 1, ++/*422923*/ OPC_CheckType, MVT::i32, ++/*422925*/ OPC_MoveParent, ++/*422926*/ OPC_MoveChild6, ++/*422927*/ OPC_CheckInteger, 1, ++/*422929*/ OPC_CheckType, MVT::i32, ++/*422931*/ OPC_MoveParent, ++/*422932*/ OPC_MoveChild7, ++/*422933*/ OPC_CheckInteger, 1, ++/*422935*/ OPC_CheckType, MVT::i32, ++/*422937*/ OPC_MoveParent, ++/*422938*/ OPC_MoveParent, ++/*422939*/ OPC_CheckChild1Same, 0, ++/*422941*/ OPC_MoveParent, ++/*422942*/ OPC_CheckChild1Same, 1, ++/*422944*/ OPC_MoveParent, ++/*422945*/ OPC_MoveChild1, ++/*422946*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*422949*/ OPC_CheckChild0Integer, 15, ++/*422951*/ OPC_CheckChild0Type, MVT::i32, ++/*422953*/ OPC_CheckChild1Integer, 15, ++/*422955*/ OPC_CheckChild1Type, MVT::i32, ++/*422957*/ OPC_CheckChild2Integer, 15, ++/*422959*/ OPC_CheckChild2Type, MVT::i32, ++/*422961*/ OPC_CheckChild3Integer, 15, ++/*422963*/ OPC_CheckChild3Type, MVT::i32, ++/*422965*/ OPC_CheckChild4Integer, 15, ++/*422967*/ OPC_CheckChild4Type, MVT::i32, ++/*422969*/ OPC_MoveChild5, ++/*422970*/ OPC_CheckInteger, 15, ++/*422972*/ OPC_CheckType, MVT::i32, ++/*422974*/ OPC_MoveParent, ++/*422975*/ OPC_MoveChild6, ++/*422976*/ OPC_CheckInteger, 15, ++/*422978*/ OPC_CheckType, MVT::i32, ++/*422980*/ OPC_MoveParent, ++/*422981*/ OPC_MoveChild7, ++/*422982*/ OPC_CheckInteger, 15, ++/*422984*/ OPC_CheckType, MVT::i32, ++/*422986*/ OPC_MoveParent, ++/*422987*/ OPC_CheckType, MVT::v8i16, ++/*422989*/ OPC_MoveParent, ++/*422990*/ OPC_MoveParent, ++/*422991*/ OPC_MoveParent, ++/*422992*/ OPC_MoveChild1, ++/*422993*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*422996*/ OPC_CheckChild0Integer, 1, ++/*422998*/ OPC_CheckChild0Type, MVT::i32, ++/*423000*/ OPC_CheckChild1Integer, 1, ++/*423002*/ OPC_CheckChild1Type, MVT::i32, ++/*423004*/ OPC_CheckChild2Integer, 1, ++/*423006*/ OPC_CheckChild2Type, MVT::i32, ++/*423008*/ OPC_CheckChild3Integer, 1, ++/*423010*/ OPC_CheckChild3Type, MVT::i32, ++/*423012*/ OPC_CheckChild4Integer, 1, ++/*423014*/ OPC_CheckChild4Type, MVT::i32, ++/*423016*/ OPC_MoveChild5, ++/*423017*/ OPC_CheckInteger, 1, ++/*423019*/ OPC_CheckType, MVT::i32, ++/*423021*/ OPC_MoveParent, ++/*423022*/ OPC_MoveChild6, ++/*423023*/ OPC_CheckInteger, 1, ++/*423025*/ OPC_CheckType, MVT::i32, ++/*423027*/ OPC_MoveParent, ++/*423028*/ OPC_MoveChild7, ++/*423029*/ OPC_CheckInteger, 1, ++/*423031*/ OPC_CheckType, MVT::i32, ++/*423033*/ OPC_MoveParent, ++/*423034*/ OPC_CheckType, MVT::v8i16, ++/*423036*/ OPC_MoveParent, ++/*423037*/ OPC_CheckType, MVT::v8i16, ++/*423039*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*423041*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a)), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b), LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*423049*/ /*Scope*/ 25|128,1/*153*/, /*->423204*/ ++/*423051*/ OPC_CheckChild0Same, 0, ++/*423053*/ OPC_MoveChild1, ++/*423054*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*423057*/ OPC_CheckChild0Integer, 1, ++/*423059*/ OPC_CheckChild0Type, MVT::i32, ++/*423061*/ OPC_CheckChild1Integer, 1, ++/*423063*/ OPC_CheckChild1Type, MVT::i32, ++/*423065*/ OPC_CheckChild2Integer, 1, ++/*423067*/ OPC_CheckChild2Type, MVT::i32, ++/*423069*/ OPC_CheckChild3Integer, 1, ++/*423071*/ OPC_CheckChild3Type, MVT::i32, ++/*423073*/ OPC_CheckChild4Integer, 1, ++/*423075*/ OPC_CheckChild4Type, MVT::i32, ++/*423077*/ OPC_MoveChild5, ++/*423078*/ OPC_CheckInteger, 1, ++/*423080*/ OPC_CheckType, MVT::i32, ++/*423082*/ OPC_MoveParent, ++/*423083*/ OPC_MoveChild6, ++/*423084*/ OPC_CheckInteger, 1, ++/*423086*/ OPC_CheckType, MVT::i32, ++/*423088*/ OPC_MoveParent, ++/*423089*/ OPC_MoveChild7, ++/*423090*/ OPC_CheckInteger, 1, ++/*423092*/ OPC_CheckType, MVT::i32, ++/*423094*/ OPC_MoveParent, ++/*423095*/ OPC_MoveParent, ++/*423096*/ OPC_MoveParent, ++/*423097*/ OPC_CheckChild1Same, 1, ++/*423099*/ OPC_MoveParent, ++/*423100*/ OPC_MoveChild1, ++/*423101*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*423104*/ OPC_CheckChild0Integer, 15, ++/*423106*/ OPC_CheckChild0Type, MVT::i32, ++/*423108*/ OPC_CheckChild1Integer, 15, ++/*423110*/ OPC_CheckChild1Type, MVT::i32, ++/*423112*/ OPC_CheckChild2Integer, 15, ++/*423114*/ OPC_CheckChild2Type, MVT::i32, ++/*423116*/ OPC_CheckChild3Integer, 15, ++/*423118*/ OPC_CheckChild3Type, MVT::i32, ++/*423120*/ OPC_CheckChild4Integer, 15, ++/*423122*/ OPC_CheckChild4Type, MVT::i32, ++/*423124*/ OPC_MoveChild5, ++/*423125*/ OPC_CheckInteger, 15, ++/*423127*/ OPC_CheckType, MVT::i32, ++/*423129*/ OPC_MoveParent, ++/*423130*/ OPC_MoveChild6, ++/*423131*/ OPC_CheckInteger, 15, ++/*423133*/ OPC_CheckType, MVT::i32, ++/*423135*/ OPC_MoveParent, ++/*423136*/ OPC_MoveChild7, ++/*423137*/ OPC_CheckInteger, 15, ++/*423139*/ OPC_CheckType, MVT::i32, ++/*423141*/ OPC_MoveParent, ++/*423142*/ OPC_CheckType, MVT::v8i16, ++/*423144*/ OPC_MoveParent, ++/*423145*/ OPC_MoveParent, ++/*423146*/ OPC_MoveParent, ++/*423147*/ OPC_MoveChild1, ++/*423148*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*423151*/ OPC_CheckChild0Integer, 1, ++/*423153*/ OPC_CheckChild0Type, MVT::i32, ++/*423155*/ OPC_CheckChild1Integer, 1, ++/*423157*/ OPC_CheckChild1Type, MVT::i32, ++/*423159*/ OPC_CheckChild2Integer, 1, ++/*423161*/ OPC_CheckChild2Type, MVT::i32, ++/*423163*/ OPC_CheckChild3Integer, 1, ++/*423165*/ OPC_CheckChild3Type, MVT::i32, ++/*423167*/ OPC_CheckChild4Integer, 1, ++/*423169*/ OPC_CheckChild4Type, MVT::i32, ++/*423171*/ OPC_MoveChild5, ++/*423172*/ OPC_CheckInteger, 1, ++/*423174*/ OPC_CheckType, MVT::i32, ++/*423176*/ OPC_MoveParent, ++/*423177*/ OPC_MoveChild6, ++/*423178*/ OPC_CheckInteger, 1, ++/*423180*/ OPC_CheckType, MVT::i32, ++/*423182*/ OPC_MoveParent, ++/*423183*/ OPC_MoveChild7, ++/*423184*/ OPC_CheckInteger, 1, ++/*423186*/ OPC_CheckType, MVT::i32, ++/*423188*/ OPC_MoveParent, ++/*423189*/ OPC_CheckType, MVT::v8i16, ++/*423191*/ OPC_MoveParent, ++/*423192*/ OPC_CheckType, MVT::v8i16, ++/*423194*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*423196*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a)), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*423204*/ /*Scope*/ 25|128,1/*153*/, /*->423359*/ ++/*423206*/ OPC_CheckChild0Same, 1, ++/*423208*/ OPC_CheckChild1Same, 0, ++/*423210*/ OPC_MoveParent, ++/*423211*/ OPC_MoveChild1, ++/*423212*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*423215*/ OPC_CheckChild0Integer, 1, ++/*423217*/ OPC_CheckChild0Type, MVT::i32, ++/*423219*/ OPC_CheckChild1Integer, 1, ++/*423221*/ OPC_CheckChild1Type, MVT::i32, ++/*423223*/ OPC_CheckChild2Integer, 1, ++/*423225*/ OPC_CheckChild2Type, MVT::i32, ++/*423227*/ OPC_CheckChild3Integer, 1, ++/*423229*/ OPC_CheckChild3Type, MVT::i32, ++/*423231*/ OPC_CheckChild4Integer, 1, ++/*423233*/ OPC_CheckChild4Type, MVT::i32, ++/*423235*/ OPC_MoveChild5, ++/*423236*/ OPC_CheckInteger, 1, ++/*423238*/ OPC_CheckType, MVT::i32, ++/*423240*/ OPC_MoveParent, ++/*423241*/ OPC_MoveChild6, ++/*423242*/ OPC_CheckInteger, 1, ++/*423244*/ OPC_CheckType, MVT::i32, ++/*423246*/ OPC_MoveParent, ++/*423247*/ OPC_MoveChild7, ++/*423248*/ OPC_CheckInteger, 1, ++/*423250*/ OPC_CheckType, MVT::i32, ++/*423252*/ OPC_MoveParent, ++/*423253*/ OPC_MoveParent, ++/*423254*/ OPC_MoveParent, ++/*423255*/ OPC_MoveChild1, ++/*423256*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*423259*/ OPC_CheckChild0Integer, 15, ++/*423261*/ OPC_CheckChild0Type, MVT::i32, ++/*423263*/ OPC_CheckChild1Integer, 15, ++/*423265*/ OPC_CheckChild1Type, MVT::i32, ++/*423267*/ OPC_CheckChild2Integer, 15, ++/*423269*/ OPC_CheckChild2Type, MVT::i32, ++/*423271*/ OPC_CheckChild3Integer, 15, ++/*423273*/ OPC_CheckChild3Type, MVT::i32, ++/*423275*/ OPC_CheckChild4Integer, 15, ++/*423277*/ OPC_CheckChild4Type, MVT::i32, ++/*423279*/ OPC_MoveChild5, ++/*423280*/ OPC_CheckInteger, 15, ++/*423282*/ OPC_CheckType, MVT::i32, ++/*423284*/ OPC_MoveParent, ++/*423285*/ OPC_MoveChild6, ++/*423286*/ OPC_CheckInteger, 15, ++/*423288*/ OPC_CheckType, MVT::i32, ++/*423290*/ OPC_MoveParent, ++/*423291*/ OPC_MoveChild7, ++/*423292*/ OPC_CheckInteger, 15, ++/*423294*/ OPC_CheckType, MVT::i32, ++/*423296*/ OPC_MoveParent, ++/*423297*/ OPC_CheckType, MVT::v8i16, ++/*423299*/ OPC_MoveParent, ++/*423300*/ OPC_MoveParent, ++/*423301*/ OPC_MoveParent, ++/*423302*/ OPC_MoveChild1, ++/*423303*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*423306*/ OPC_CheckChild0Integer, 1, ++/*423308*/ OPC_CheckChild0Type, MVT::i32, ++/*423310*/ OPC_CheckChild1Integer, 1, ++/*423312*/ OPC_CheckChild1Type, MVT::i32, ++/*423314*/ OPC_CheckChild2Integer, 1, ++/*423316*/ OPC_CheckChild2Type, MVT::i32, ++/*423318*/ OPC_CheckChild3Integer, 1, ++/*423320*/ OPC_CheckChild3Type, MVT::i32, ++/*423322*/ OPC_CheckChild4Integer, 1, ++/*423324*/ OPC_CheckChild4Type, MVT::i32, ++/*423326*/ OPC_MoveChild5, ++/*423327*/ OPC_CheckInteger, 1, ++/*423329*/ OPC_CheckType, MVT::i32, ++/*423331*/ OPC_MoveParent, ++/*423332*/ OPC_MoveChild6, ++/*423333*/ OPC_CheckInteger, 1, ++/*423335*/ OPC_CheckType, MVT::i32, ++/*423337*/ OPC_MoveParent, ++/*423338*/ OPC_MoveChild7, ++/*423339*/ OPC_CheckInteger, 1, ++/*423341*/ OPC_CheckType, MVT::i32, ++/*423343*/ OPC_MoveParent, ++/*423344*/ OPC_CheckType, MVT::v8i16, ++/*423346*/ OPC_MoveParent, ++/*423347*/ OPC_CheckType, MVT::v8i16, ++/*423349*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*423351*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a)), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*423359*/ /*Scope*/ 25|128,1/*153*/, /*->423514*/ ++/*423361*/ OPC_CheckChild0Same, 0, ++/*423363*/ OPC_CheckChild1Same, 1, ++/*423365*/ OPC_MoveParent, ++/*423366*/ OPC_MoveChild1, ++/*423367*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*423370*/ OPC_CheckChild0Integer, 1, ++/*423372*/ OPC_CheckChild0Type, MVT::i32, ++/*423374*/ OPC_CheckChild1Integer, 1, ++/*423376*/ OPC_CheckChild1Type, MVT::i32, ++/*423378*/ OPC_CheckChild2Integer, 1, ++/*423380*/ OPC_CheckChild2Type, MVT::i32, ++/*423382*/ OPC_CheckChild3Integer, 1, ++/*423384*/ OPC_CheckChild3Type, MVT::i32, ++/*423386*/ OPC_CheckChild4Integer, 1, ++/*423388*/ OPC_CheckChild4Type, MVT::i32, ++/*423390*/ OPC_MoveChild5, ++/*423391*/ OPC_CheckInteger, 1, ++/*423393*/ OPC_CheckType, MVT::i32, ++/*423395*/ OPC_MoveParent, ++/*423396*/ OPC_MoveChild6, ++/*423397*/ OPC_CheckInteger, 1, ++/*423399*/ OPC_CheckType, MVT::i32, ++/*423401*/ OPC_MoveParent, ++/*423402*/ OPC_MoveChild7, ++/*423403*/ OPC_CheckInteger, 1, ++/*423405*/ OPC_CheckType, MVT::i32, ++/*423407*/ OPC_MoveParent, ++/*423408*/ OPC_MoveParent, ++/*423409*/ OPC_MoveParent, ++/*423410*/ OPC_MoveChild1, ++/*423411*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*423414*/ OPC_CheckChild0Integer, 15, ++/*423416*/ OPC_CheckChild0Type, MVT::i32, ++/*423418*/ OPC_CheckChild1Integer, 15, ++/*423420*/ OPC_CheckChild1Type, MVT::i32, ++/*423422*/ OPC_CheckChild2Integer, 15, ++/*423424*/ OPC_CheckChild2Type, MVT::i32, ++/*423426*/ OPC_CheckChild3Integer, 15, ++/*423428*/ OPC_CheckChild3Type, MVT::i32, ++/*423430*/ OPC_CheckChild4Integer, 15, ++/*423432*/ OPC_CheckChild4Type, MVT::i32, ++/*423434*/ OPC_MoveChild5, ++/*423435*/ OPC_CheckInteger, 15, ++/*423437*/ OPC_CheckType, MVT::i32, ++/*423439*/ OPC_MoveParent, ++/*423440*/ OPC_MoveChild6, ++/*423441*/ OPC_CheckInteger, 15, ++/*423443*/ OPC_CheckType, MVT::i32, ++/*423445*/ OPC_MoveParent, ++/*423446*/ OPC_MoveChild7, ++/*423447*/ OPC_CheckInteger, 15, ++/*423449*/ OPC_CheckType, MVT::i32, ++/*423451*/ OPC_MoveParent, ++/*423452*/ OPC_CheckType, MVT::v8i16, ++/*423454*/ OPC_MoveParent, ++/*423455*/ OPC_MoveParent, ++/*423456*/ OPC_MoveParent, ++/*423457*/ OPC_MoveChild1, ++/*423458*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*423461*/ OPC_CheckChild0Integer, 1, ++/*423463*/ OPC_CheckChild0Type, MVT::i32, ++/*423465*/ OPC_CheckChild1Integer, 1, ++/*423467*/ OPC_CheckChild1Type, MVT::i32, ++/*423469*/ OPC_CheckChild2Integer, 1, ++/*423471*/ OPC_CheckChild2Type, MVT::i32, ++/*423473*/ OPC_CheckChild3Integer, 1, ++/*423475*/ OPC_CheckChild3Type, MVT::i32, ++/*423477*/ OPC_CheckChild4Integer, 1, ++/*423479*/ OPC_CheckChild4Type, MVT::i32, ++/*423481*/ OPC_MoveChild5, ++/*423482*/ OPC_CheckInteger, 1, ++/*423484*/ OPC_CheckType, MVT::i32, ++/*423486*/ OPC_MoveParent, ++/*423487*/ OPC_MoveChild6, ++/*423488*/ OPC_CheckInteger, 1, ++/*423490*/ OPC_CheckType, MVT::i32, ++/*423492*/ OPC_MoveParent, ++/*423493*/ OPC_MoveChild7, ++/*423494*/ OPC_CheckInteger, 1, ++/*423496*/ OPC_CheckType, MVT::i32, ++/*423498*/ OPC_MoveParent, ++/*423499*/ OPC_CheckType, MVT::v8i16, ++/*423501*/ OPC_MoveParent, ++/*423502*/ OPC_CheckType, MVT::v8i16, ++/*423504*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*423506*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a)), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*423514*/ 0, /*End of Scope*/ ++/*423515*/ /*Scope*/ 58|128,2/*314*/, /*->423831*/ ++/*423517*/ OPC_CheckChild0Same, 0, ++/*423519*/ OPC_MoveChild1, ++/*423520*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*423523*/ OPC_Scope, 23|128,1/*151*/, /*->423677*/ // 2 children in Scope ++/*423526*/ OPC_MoveChild0, ++/*423527*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*423530*/ OPC_CheckChild0Integer, 1, ++/*423532*/ OPC_CheckChild0Type, MVT::i32, ++/*423534*/ OPC_CheckChild1Integer, 1, ++/*423536*/ OPC_CheckChild1Type, MVT::i32, ++/*423538*/ OPC_CheckChild2Integer, 1, ++/*423540*/ OPC_CheckChild2Type, MVT::i32, ++/*423542*/ OPC_CheckChild3Integer, 1, ++/*423544*/ OPC_CheckChild3Type, MVT::i32, ++/*423546*/ OPC_CheckChild4Integer, 1, ++/*423548*/ OPC_CheckChild4Type, MVT::i32, ++/*423550*/ OPC_MoveChild5, ++/*423551*/ OPC_CheckInteger, 1, ++/*423553*/ OPC_CheckType, MVT::i32, ++/*423555*/ OPC_MoveParent, ++/*423556*/ OPC_MoveChild6, ++/*423557*/ OPC_CheckInteger, 1, ++/*423559*/ OPC_CheckType, MVT::i32, ++/*423561*/ OPC_MoveParent, ++/*423562*/ OPC_MoveChild7, ++/*423563*/ OPC_CheckInteger, 1, ++/*423565*/ OPC_CheckType, MVT::i32, ++/*423567*/ OPC_MoveParent, ++/*423568*/ OPC_MoveParent, ++/*423569*/ OPC_CheckChild1Same, 1, ++/*423571*/ OPC_MoveParent, ++/*423572*/ OPC_MoveParent, ++/*423573*/ OPC_MoveChild1, ++/*423574*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*423577*/ OPC_CheckChild0Integer, 15, ++/*423579*/ OPC_CheckChild0Type, MVT::i32, ++/*423581*/ OPC_CheckChild1Integer, 15, ++/*423583*/ OPC_CheckChild1Type, MVT::i32, ++/*423585*/ OPC_CheckChild2Integer, 15, ++/*423587*/ OPC_CheckChild2Type, MVT::i32, ++/*423589*/ OPC_CheckChild3Integer, 15, ++/*423591*/ OPC_CheckChild3Type, MVT::i32, ++/*423593*/ OPC_CheckChild4Integer, 15, ++/*423595*/ OPC_CheckChild4Type, MVT::i32, ++/*423597*/ OPC_MoveChild5, ++/*423598*/ OPC_CheckInteger, 15, ++/*423600*/ OPC_CheckType, MVT::i32, ++/*423602*/ OPC_MoveParent, ++/*423603*/ OPC_MoveChild6, ++/*423604*/ OPC_CheckInteger, 15, ++/*423606*/ OPC_CheckType, MVT::i32, ++/*423608*/ OPC_MoveParent, ++/*423609*/ OPC_MoveChild7, ++/*423610*/ OPC_CheckInteger, 15, ++/*423612*/ OPC_CheckType, MVT::i32, ++/*423614*/ OPC_MoveParent, ++/*423615*/ OPC_CheckType, MVT::v8i16, ++/*423617*/ OPC_MoveParent, ++/*423618*/ OPC_MoveParent, ++/*423619*/ OPC_MoveParent, ++/*423620*/ OPC_MoveChild1, ++/*423621*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*423624*/ OPC_CheckChild0Integer, 1, ++/*423626*/ OPC_CheckChild0Type, MVT::i32, ++/*423628*/ OPC_CheckChild1Integer, 1, ++/*423630*/ OPC_CheckChild1Type, MVT::i32, ++/*423632*/ OPC_CheckChild2Integer, 1, ++/*423634*/ OPC_CheckChild2Type, MVT::i32, ++/*423636*/ OPC_CheckChild3Integer, 1, ++/*423638*/ OPC_CheckChild3Type, MVT::i32, ++/*423640*/ OPC_CheckChild4Integer, 1, ++/*423642*/ OPC_CheckChild4Type, MVT::i32, ++/*423644*/ OPC_MoveChild5, ++/*423645*/ OPC_CheckInteger, 1, ++/*423647*/ OPC_CheckType, MVT::i32, ++/*423649*/ OPC_MoveParent, ++/*423650*/ OPC_MoveChild6, ++/*423651*/ OPC_CheckInteger, 1, ++/*423653*/ OPC_CheckType, MVT::i32, ++/*423655*/ OPC_MoveParent, ++/*423656*/ OPC_MoveChild7, ++/*423657*/ OPC_CheckInteger, 1, ++/*423659*/ OPC_CheckType, MVT::i32, ++/*423661*/ OPC_MoveParent, ++/*423662*/ OPC_CheckType, MVT::v8i16, ++/*423664*/ OPC_MoveParent, ++/*423665*/ OPC_CheckType, MVT::v8i16, ++/*423667*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*423669*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a)), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*423677*/ /*Scope*/ 23|128,1/*151*/, /*->423830*/ ++/*423679*/ OPC_CheckChild0Same, 1, ++/*423681*/ OPC_MoveChild1, ++/*423682*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*423685*/ OPC_CheckChild0Integer, 1, ++/*423687*/ OPC_CheckChild0Type, MVT::i32, ++/*423689*/ OPC_CheckChild1Integer, 1, ++/*423691*/ OPC_CheckChild1Type, MVT::i32, ++/*423693*/ OPC_CheckChild2Integer, 1, ++/*423695*/ OPC_CheckChild2Type, MVT::i32, ++/*423697*/ OPC_CheckChild3Integer, 1, ++/*423699*/ OPC_CheckChild3Type, MVT::i32, ++/*423701*/ OPC_CheckChild4Integer, 1, ++/*423703*/ OPC_CheckChild4Type, MVT::i32, ++/*423705*/ OPC_MoveChild5, ++/*423706*/ OPC_CheckInteger, 1, ++/*423708*/ OPC_CheckType, MVT::i32, ++/*423710*/ OPC_MoveParent, ++/*423711*/ OPC_MoveChild6, ++/*423712*/ OPC_CheckInteger, 1, ++/*423714*/ OPC_CheckType, MVT::i32, ++/*423716*/ OPC_MoveParent, ++/*423717*/ OPC_MoveChild7, ++/*423718*/ OPC_CheckInteger, 1, ++/*423720*/ OPC_CheckType, MVT::i32, ++/*423722*/ OPC_MoveParent, ++/*423723*/ OPC_MoveParent, ++/*423724*/ OPC_MoveParent, ++/*423725*/ OPC_MoveParent, ++/*423726*/ OPC_MoveChild1, ++/*423727*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*423730*/ OPC_CheckChild0Integer, 15, ++/*423732*/ OPC_CheckChild0Type, MVT::i32, ++/*423734*/ OPC_CheckChild1Integer, 15, ++/*423736*/ OPC_CheckChild1Type, MVT::i32, ++/*423738*/ OPC_CheckChild2Integer, 15, ++/*423740*/ OPC_CheckChild2Type, MVT::i32, ++/*423742*/ OPC_CheckChild3Integer, 15, ++/*423744*/ OPC_CheckChild3Type, MVT::i32, ++/*423746*/ OPC_CheckChild4Integer, 15, ++/*423748*/ OPC_CheckChild4Type, MVT::i32, ++/*423750*/ OPC_MoveChild5, ++/*423751*/ OPC_CheckInteger, 15, ++/*423753*/ OPC_CheckType, MVT::i32, ++/*423755*/ OPC_MoveParent, ++/*423756*/ OPC_MoveChild6, ++/*423757*/ OPC_CheckInteger, 15, ++/*423759*/ OPC_CheckType, MVT::i32, ++/*423761*/ OPC_MoveParent, ++/*423762*/ OPC_MoveChild7, ++/*423763*/ OPC_CheckInteger, 15, ++/*423765*/ OPC_CheckType, MVT::i32, ++/*423767*/ OPC_MoveParent, ++/*423768*/ OPC_CheckType, MVT::v8i16, ++/*423770*/ OPC_MoveParent, ++/*423771*/ OPC_MoveParent, ++/*423772*/ OPC_MoveParent, ++/*423773*/ OPC_MoveChild1, ++/*423774*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*423777*/ OPC_CheckChild0Integer, 1, ++/*423779*/ OPC_CheckChild0Type, MVT::i32, ++/*423781*/ OPC_CheckChild1Integer, 1, ++/*423783*/ OPC_CheckChild1Type, MVT::i32, ++/*423785*/ OPC_CheckChild2Integer, 1, ++/*423787*/ OPC_CheckChild2Type, MVT::i32, ++/*423789*/ OPC_CheckChild3Integer, 1, ++/*423791*/ OPC_CheckChild3Type, MVT::i32, ++/*423793*/ OPC_CheckChild4Integer, 1, ++/*423795*/ OPC_CheckChild4Type, MVT::i32, ++/*423797*/ OPC_MoveChild5, ++/*423798*/ OPC_CheckInteger, 1, ++/*423800*/ OPC_CheckType, MVT::i32, ++/*423802*/ OPC_MoveParent, ++/*423803*/ OPC_MoveChild6, ++/*423804*/ OPC_CheckInteger, 1, ++/*423806*/ OPC_CheckType, MVT::i32, ++/*423808*/ OPC_MoveParent, ++/*423809*/ OPC_MoveChild7, ++/*423810*/ OPC_CheckInteger, 1, ++/*423812*/ OPC_CheckType, MVT::i32, ++/*423814*/ OPC_MoveParent, ++/*423815*/ OPC_CheckType, MVT::v8i16, ++/*423817*/ OPC_MoveParent, ++/*423818*/ OPC_CheckType, MVT::v8i16, ++/*423820*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*423822*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a)), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*423830*/ 0, /*End of Scope*/ ++/*423831*/ /*Scope*/ 58|128,2/*314*/, /*->424147*/ ++/*423833*/ OPC_CheckChild0Same, 1, ++/*423835*/ OPC_MoveChild1, ++/*423836*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*423839*/ OPC_Scope, 23|128,1/*151*/, /*->423993*/ // 2 children in Scope ++/*423842*/ OPC_MoveChild0, ++/*423843*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*423846*/ OPC_CheckChild0Integer, 1, ++/*423848*/ OPC_CheckChild0Type, MVT::i32, ++/*423850*/ OPC_CheckChild1Integer, 1, ++/*423852*/ OPC_CheckChild1Type, MVT::i32, ++/*423854*/ OPC_CheckChild2Integer, 1, ++/*423856*/ OPC_CheckChild2Type, MVT::i32, ++/*423858*/ OPC_CheckChild3Integer, 1, ++/*423860*/ OPC_CheckChild3Type, MVT::i32, ++/*423862*/ OPC_CheckChild4Integer, 1, ++/*423864*/ OPC_CheckChild4Type, MVT::i32, ++/*423866*/ OPC_MoveChild5, ++/*423867*/ OPC_CheckInteger, 1, ++/*423869*/ OPC_CheckType, MVT::i32, ++/*423871*/ OPC_MoveParent, ++/*423872*/ OPC_MoveChild6, ++/*423873*/ OPC_CheckInteger, 1, ++/*423875*/ OPC_CheckType, MVT::i32, ++/*423877*/ OPC_MoveParent, ++/*423878*/ OPC_MoveChild7, ++/*423879*/ OPC_CheckInteger, 1, ++/*423881*/ OPC_CheckType, MVT::i32, ++/*423883*/ OPC_MoveParent, ++/*423884*/ OPC_MoveParent, ++/*423885*/ OPC_CheckChild1Same, 0, ++/*423887*/ OPC_MoveParent, ++/*423888*/ OPC_MoveParent, ++/*423889*/ OPC_MoveChild1, ++/*423890*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*423893*/ OPC_CheckChild0Integer, 15, ++/*423895*/ OPC_CheckChild0Type, MVT::i32, ++/*423897*/ OPC_CheckChild1Integer, 15, ++/*423899*/ OPC_CheckChild1Type, MVT::i32, ++/*423901*/ OPC_CheckChild2Integer, 15, ++/*423903*/ OPC_CheckChild2Type, MVT::i32, ++/*423905*/ OPC_CheckChild3Integer, 15, ++/*423907*/ OPC_CheckChild3Type, MVT::i32, ++/*423909*/ OPC_CheckChild4Integer, 15, ++/*423911*/ OPC_CheckChild4Type, MVT::i32, ++/*423913*/ OPC_MoveChild5, ++/*423914*/ OPC_CheckInteger, 15, ++/*423916*/ OPC_CheckType, MVT::i32, ++/*423918*/ OPC_MoveParent, ++/*423919*/ OPC_MoveChild6, ++/*423920*/ OPC_CheckInteger, 15, ++/*423922*/ OPC_CheckType, MVT::i32, ++/*423924*/ OPC_MoveParent, ++/*423925*/ OPC_MoveChild7, ++/*423926*/ OPC_CheckInteger, 15, ++/*423928*/ OPC_CheckType, MVT::i32, ++/*423930*/ OPC_MoveParent, ++/*423931*/ OPC_CheckType, MVT::v8i16, ++/*423933*/ OPC_MoveParent, ++/*423934*/ OPC_MoveParent, ++/*423935*/ OPC_MoveParent, ++/*423936*/ OPC_MoveChild1, ++/*423937*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*423940*/ OPC_CheckChild0Integer, 1, ++/*423942*/ OPC_CheckChild0Type, MVT::i32, ++/*423944*/ OPC_CheckChild1Integer, 1, ++/*423946*/ OPC_CheckChild1Type, MVT::i32, ++/*423948*/ OPC_CheckChild2Integer, 1, ++/*423950*/ OPC_CheckChild2Type, MVT::i32, ++/*423952*/ OPC_CheckChild3Integer, 1, ++/*423954*/ OPC_CheckChild3Type, MVT::i32, ++/*423956*/ OPC_CheckChild4Integer, 1, ++/*423958*/ OPC_CheckChild4Type, MVT::i32, ++/*423960*/ OPC_MoveChild5, ++/*423961*/ OPC_CheckInteger, 1, ++/*423963*/ OPC_CheckType, MVT::i32, ++/*423965*/ OPC_MoveParent, ++/*423966*/ OPC_MoveChild6, ++/*423967*/ OPC_CheckInteger, 1, ++/*423969*/ OPC_CheckType, MVT::i32, ++/*423971*/ OPC_MoveParent, ++/*423972*/ OPC_MoveChild7, ++/*423973*/ OPC_CheckInteger, 1, ++/*423975*/ OPC_CheckType, MVT::i32, ++/*423977*/ OPC_MoveParent, ++/*423978*/ OPC_CheckType, MVT::v8i16, ++/*423980*/ OPC_MoveParent, ++/*423981*/ OPC_CheckType, MVT::v8i16, ++/*423983*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*423985*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a)), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*423993*/ /*Scope*/ 23|128,1/*151*/, /*->424146*/ ++/*423995*/ OPC_CheckChild0Same, 0, ++/*423997*/ OPC_MoveChild1, ++/*423998*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*424001*/ OPC_CheckChild0Integer, 1, ++/*424003*/ OPC_CheckChild0Type, MVT::i32, ++/*424005*/ OPC_CheckChild1Integer, 1, ++/*424007*/ OPC_CheckChild1Type, MVT::i32, ++/*424009*/ OPC_CheckChild2Integer, 1, ++/*424011*/ OPC_CheckChild2Type, MVT::i32, ++/*424013*/ OPC_CheckChild3Integer, 1, ++/*424015*/ OPC_CheckChild3Type, MVT::i32, ++/*424017*/ OPC_CheckChild4Integer, 1, ++/*424019*/ OPC_CheckChild4Type, MVT::i32, ++/*424021*/ OPC_MoveChild5, ++/*424022*/ OPC_CheckInteger, 1, ++/*424024*/ OPC_CheckType, MVT::i32, ++/*424026*/ OPC_MoveParent, ++/*424027*/ OPC_MoveChild6, ++/*424028*/ OPC_CheckInteger, 1, ++/*424030*/ OPC_CheckType, MVT::i32, ++/*424032*/ OPC_MoveParent, ++/*424033*/ OPC_MoveChild7, ++/*424034*/ OPC_CheckInteger, 1, ++/*424036*/ OPC_CheckType, MVT::i32, ++/*424038*/ OPC_MoveParent, ++/*424039*/ OPC_MoveParent, ++/*424040*/ OPC_MoveParent, ++/*424041*/ OPC_MoveParent, ++/*424042*/ OPC_MoveChild1, ++/*424043*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*424046*/ OPC_CheckChild0Integer, 15, ++/*424048*/ OPC_CheckChild0Type, MVT::i32, ++/*424050*/ OPC_CheckChild1Integer, 15, ++/*424052*/ OPC_CheckChild1Type, MVT::i32, ++/*424054*/ OPC_CheckChild2Integer, 15, ++/*424056*/ OPC_CheckChild2Type, MVT::i32, ++/*424058*/ OPC_CheckChild3Integer, 15, ++/*424060*/ OPC_CheckChild3Type, MVT::i32, ++/*424062*/ OPC_CheckChild4Integer, 15, ++/*424064*/ OPC_CheckChild4Type, MVT::i32, ++/*424066*/ OPC_MoveChild5, ++/*424067*/ OPC_CheckInteger, 15, ++/*424069*/ OPC_CheckType, MVT::i32, ++/*424071*/ OPC_MoveParent, ++/*424072*/ OPC_MoveChild6, ++/*424073*/ OPC_CheckInteger, 15, ++/*424075*/ OPC_CheckType, MVT::i32, ++/*424077*/ OPC_MoveParent, ++/*424078*/ OPC_MoveChild7, ++/*424079*/ OPC_CheckInteger, 15, ++/*424081*/ OPC_CheckType, MVT::i32, ++/*424083*/ OPC_MoveParent, ++/*424084*/ OPC_CheckType, MVT::v8i16, ++/*424086*/ OPC_MoveParent, ++/*424087*/ OPC_MoveParent, ++/*424088*/ OPC_MoveParent, ++/*424089*/ OPC_MoveChild1, ++/*424090*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*424093*/ OPC_CheckChild0Integer, 1, ++/*424095*/ OPC_CheckChild0Type, MVT::i32, ++/*424097*/ OPC_CheckChild1Integer, 1, ++/*424099*/ OPC_CheckChild1Type, MVT::i32, ++/*424101*/ OPC_CheckChild2Integer, 1, ++/*424103*/ OPC_CheckChild2Type, MVT::i32, ++/*424105*/ OPC_CheckChild3Integer, 1, ++/*424107*/ OPC_CheckChild3Type, MVT::i32, ++/*424109*/ OPC_CheckChild4Integer, 1, ++/*424111*/ OPC_CheckChild4Type, MVT::i32, ++/*424113*/ OPC_MoveChild5, ++/*424114*/ OPC_CheckInteger, 1, ++/*424116*/ OPC_CheckType, MVT::i32, ++/*424118*/ OPC_MoveParent, ++/*424119*/ OPC_MoveChild6, ++/*424120*/ OPC_CheckInteger, 1, ++/*424122*/ OPC_CheckType, MVT::i32, ++/*424124*/ OPC_MoveParent, ++/*424125*/ OPC_MoveChild7, ++/*424126*/ OPC_CheckInteger, 1, ++/*424128*/ OPC_CheckType, MVT::i32, ++/*424130*/ OPC_MoveParent, ++/*424131*/ OPC_CheckType, MVT::v8i16, ++/*424133*/ OPC_MoveParent, ++/*424134*/ OPC_CheckType, MVT::v8i16, ++/*424136*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*424138*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a)), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*424146*/ 0, /*End of Scope*/ ++/*424147*/ /*Scope*/ 15|128,2/*271*/, /*->424420*/ ++/*424149*/ OPC_MoveChild0, ++/*424150*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*424153*/ OPC_CheckChild0Integer, 1, ++/*424155*/ OPC_CheckChild0Type, MVT::i32, ++/*424157*/ OPC_CheckChild1Integer, 1, ++/*424159*/ OPC_CheckChild1Type, MVT::i32, ++/*424161*/ OPC_CheckChild2Integer, 1, ++/*424163*/ OPC_CheckChild2Type, MVT::i32, ++/*424165*/ OPC_CheckChild3Integer, 1, ++/*424167*/ OPC_CheckChild3Type, MVT::i32, ++/*424169*/ OPC_CheckChild4Integer, 1, ++/*424171*/ OPC_CheckChild4Type, MVT::i32, ++/*424173*/ OPC_MoveChild5, ++/*424174*/ OPC_CheckInteger, 1, ++/*424176*/ OPC_CheckType, MVT::i32, ++/*424178*/ OPC_MoveParent, ++/*424179*/ OPC_MoveChild6, ++/*424180*/ OPC_CheckInteger, 1, ++/*424182*/ OPC_CheckType, MVT::i32, ++/*424184*/ OPC_MoveParent, ++/*424185*/ OPC_MoveChild7, ++/*424186*/ OPC_CheckInteger, 1, ++/*424188*/ OPC_CheckType, MVT::i32, ++/*424190*/ OPC_MoveParent, ++/*424191*/ OPC_MoveParent, ++/*424192*/ OPC_MoveChild1, ++/*424193*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*424196*/ OPC_Scope, 110, /*->424308*/ // 2 children in Scope ++/*424198*/ OPC_CheckChild0Same, 1, ++/*424200*/ OPC_CheckChild1Same, 0, ++/*424202*/ OPC_MoveParent, ++/*424203*/ OPC_MoveParent, ++/*424204*/ OPC_MoveChild1, ++/*424205*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*424208*/ OPC_CheckChild0Integer, 15, ++/*424210*/ OPC_CheckChild0Type, MVT::i32, ++/*424212*/ OPC_CheckChild1Integer, 15, ++/*424214*/ OPC_CheckChild1Type, MVT::i32, ++/*424216*/ OPC_CheckChild2Integer, 15, ++/*424218*/ OPC_CheckChild2Type, MVT::i32, ++/*424220*/ OPC_CheckChild3Integer, 15, ++/*424222*/ OPC_CheckChild3Type, MVT::i32, ++/*424224*/ OPC_CheckChild4Integer, 15, ++/*424226*/ OPC_CheckChild4Type, MVT::i32, ++/*424228*/ OPC_MoveChild5, ++/*424229*/ OPC_CheckInteger, 15, ++/*424231*/ OPC_CheckType, MVT::i32, ++/*424233*/ OPC_MoveParent, ++/*424234*/ OPC_MoveChild6, ++/*424235*/ OPC_CheckInteger, 15, ++/*424237*/ OPC_CheckType, MVT::i32, ++/*424239*/ OPC_MoveParent, ++/*424240*/ OPC_MoveChild7, ++/*424241*/ OPC_CheckInteger, 15, ++/*424243*/ OPC_CheckType, MVT::i32, ++/*424245*/ OPC_MoveParent, ++/*424246*/ OPC_CheckType, MVT::v8i16, ++/*424248*/ OPC_MoveParent, ++/*424249*/ OPC_MoveParent, ++/*424250*/ OPC_MoveParent, ++/*424251*/ OPC_MoveChild1, ++/*424252*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*424255*/ OPC_CheckChild0Integer, 1, ++/*424257*/ OPC_CheckChild0Type, MVT::i32, ++/*424259*/ OPC_CheckChild1Integer, 1, ++/*424261*/ OPC_CheckChild1Type, MVT::i32, ++/*424263*/ OPC_CheckChild2Integer, 1, ++/*424265*/ OPC_CheckChild2Type, MVT::i32, ++/*424267*/ OPC_CheckChild3Integer, 1, ++/*424269*/ OPC_CheckChild3Type, MVT::i32, ++/*424271*/ OPC_CheckChild4Integer, 1, ++/*424273*/ OPC_CheckChild4Type, MVT::i32, ++/*424275*/ OPC_MoveChild5, ++/*424276*/ OPC_CheckInteger, 1, ++/*424278*/ OPC_CheckType, MVT::i32, ++/*424280*/ OPC_MoveParent, ++/*424281*/ OPC_MoveChild6, ++/*424282*/ OPC_CheckInteger, 1, ++/*424284*/ OPC_CheckType, MVT::i32, ++/*424286*/ OPC_MoveParent, ++/*424287*/ OPC_MoveChild7, ++/*424288*/ OPC_CheckInteger, 1, ++/*424290*/ OPC_CheckType, MVT::i32, ++/*424292*/ OPC_MoveParent, ++/*424293*/ OPC_CheckType, MVT::v8i16, ++/*424295*/ OPC_MoveParent, ++/*424296*/ OPC_CheckType, MVT::v8i16, ++/*424298*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*424300*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a)), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*424308*/ /*Scope*/ 110, /*->424419*/ ++/*424309*/ OPC_CheckChild0Same, 0, ++/*424311*/ OPC_CheckChild1Same, 1, ++/*424313*/ OPC_MoveParent, ++/*424314*/ OPC_MoveParent, ++/*424315*/ OPC_MoveChild1, ++/*424316*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*424319*/ OPC_CheckChild0Integer, 15, ++/*424321*/ OPC_CheckChild0Type, MVT::i32, ++/*424323*/ OPC_CheckChild1Integer, 15, ++/*424325*/ OPC_CheckChild1Type, MVT::i32, ++/*424327*/ OPC_CheckChild2Integer, 15, ++/*424329*/ OPC_CheckChild2Type, MVT::i32, ++/*424331*/ OPC_CheckChild3Integer, 15, ++/*424333*/ OPC_CheckChild3Type, MVT::i32, ++/*424335*/ OPC_CheckChild4Integer, 15, ++/*424337*/ OPC_CheckChild4Type, MVT::i32, ++/*424339*/ OPC_MoveChild5, ++/*424340*/ OPC_CheckInteger, 15, ++/*424342*/ OPC_CheckType, MVT::i32, ++/*424344*/ OPC_MoveParent, ++/*424345*/ OPC_MoveChild6, ++/*424346*/ OPC_CheckInteger, 15, ++/*424348*/ OPC_CheckType, MVT::i32, ++/*424350*/ OPC_MoveParent, ++/*424351*/ OPC_MoveChild7, ++/*424352*/ OPC_CheckInteger, 15, ++/*424354*/ OPC_CheckType, MVT::i32, ++/*424356*/ OPC_MoveParent, ++/*424357*/ OPC_CheckType, MVT::v8i16, ++/*424359*/ OPC_MoveParent, ++/*424360*/ OPC_MoveParent, ++/*424361*/ OPC_MoveParent, ++/*424362*/ OPC_MoveChild1, ++/*424363*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*424366*/ OPC_CheckChild0Integer, 1, ++/*424368*/ OPC_CheckChild0Type, MVT::i32, ++/*424370*/ OPC_CheckChild1Integer, 1, ++/*424372*/ OPC_CheckChild1Type, MVT::i32, ++/*424374*/ OPC_CheckChild2Integer, 1, ++/*424376*/ OPC_CheckChild2Type, MVT::i32, ++/*424378*/ OPC_CheckChild3Integer, 1, ++/*424380*/ OPC_CheckChild3Type, MVT::i32, ++/*424382*/ OPC_CheckChild4Integer, 1, ++/*424384*/ OPC_CheckChild4Type, MVT::i32, ++/*424386*/ OPC_MoveChild5, ++/*424387*/ OPC_CheckInteger, 1, ++/*424389*/ OPC_CheckType, MVT::i32, ++/*424391*/ OPC_MoveParent, ++/*424392*/ OPC_MoveChild6, ++/*424393*/ OPC_CheckInteger, 1, ++/*424395*/ OPC_CheckType, MVT::i32, ++/*424397*/ OPC_MoveParent, ++/*424398*/ OPC_MoveChild7, ++/*424399*/ OPC_CheckInteger, 1, ++/*424401*/ OPC_CheckType, MVT::i32, ++/*424403*/ OPC_MoveParent, ++/*424404*/ OPC_CheckType, MVT::v8i16, ++/*424406*/ OPC_MoveParent, ++/*424407*/ OPC_CheckType, MVT::v8i16, ++/*424409*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*424411*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a)), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*424419*/ 0, /*End of Scope*/ ++/*424420*/ 0, /*End of Scope*/ ++/*424421*/ /*Scope*/ 107|128,14/*1899*/, /*->426322*/ ++/*424423*/ OPC_RecordChild0, // #1 = $a ++/*424424*/ OPC_MoveChild1, ++/*424425*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*424428*/ OPC_CheckChild0Integer, 1, ++/*424430*/ OPC_CheckChild0Type, MVT::i32, ++/*424432*/ OPC_CheckChild1Integer, 1, ++/*424434*/ OPC_CheckChild1Type, MVT::i32, ++/*424436*/ OPC_CheckChild2Integer, 1, ++/*424438*/ OPC_CheckChild2Type, MVT::i32, ++/*424440*/ OPC_CheckChild3Integer, 1, ++/*424442*/ OPC_CheckChild3Type, MVT::i32, ++/*424444*/ OPC_CheckChild4Integer, 1, ++/*424446*/ OPC_CheckChild4Type, MVT::i32, ++/*424448*/ OPC_MoveChild5, ++/*424449*/ OPC_CheckInteger, 1, ++/*424451*/ OPC_CheckType, MVT::i32, ++/*424453*/ OPC_MoveParent, ++/*424454*/ OPC_MoveChild6, ++/*424455*/ OPC_CheckInteger, 1, ++/*424457*/ OPC_CheckType, MVT::i32, ++/*424459*/ OPC_MoveParent, ++/*424460*/ OPC_MoveChild7, ++/*424461*/ OPC_CheckInteger, 1, ++/*424463*/ OPC_CheckType, MVT::i32, ++/*424465*/ OPC_MoveParent, ++/*424466*/ OPC_MoveParent, ++/*424467*/ OPC_MoveParent, ++/*424468*/ OPC_MoveParent, ++/*424469*/ OPC_MoveChild1, ++/*424470*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*424473*/ OPC_MoveChild0, ++/*424474*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*424477*/ OPC_Scope, 40|128,7/*936*/, /*->425416*/ // 4 children in Scope ++/*424480*/ OPC_MoveChild0, ++/*424481*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*424484*/ OPC_Scope, 25|128,1/*153*/, /*->424640*/ // 6 children in Scope ++/*424487*/ OPC_MoveChild0, ++/*424488*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*424491*/ OPC_CheckChild0Integer, 1, ++/*424493*/ OPC_CheckChild0Type, MVT::i32, ++/*424495*/ OPC_CheckChild1Integer, 1, ++/*424497*/ OPC_CheckChild1Type, MVT::i32, ++/*424499*/ OPC_CheckChild2Integer, 1, ++/*424501*/ OPC_CheckChild2Type, MVT::i32, ++/*424503*/ OPC_CheckChild3Integer, 1, ++/*424505*/ OPC_CheckChild3Type, MVT::i32, ++/*424507*/ OPC_CheckChild4Integer, 1, ++/*424509*/ OPC_CheckChild4Type, MVT::i32, ++/*424511*/ OPC_MoveChild5, ++/*424512*/ OPC_CheckInteger, 1, ++/*424514*/ OPC_CheckType, MVT::i32, ++/*424516*/ OPC_MoveParent, ++/*424517*/ OPC_MoveChild6, ++/*424518*/ OPC_CheckInteger, 1, ++/*424520*/ OPC_CheckType, MVT::i32, ++/*424522*/ OPC_MoveParent, ++/*424523*/ OPC_MoveChild7, ++/*424524*/ OPC_CheckInteger, 1, ++/*424526*/ OPC_CheckType, MVT::i32, ++/*424528*/ OPC_MoveParent, ++/*424529*/ OPC_MoveParent, ++/*424530*/ OPC_CheckChild1Same, 1, ++/*424532*/ OPC_MoveParent, ++/*424533*/ OPC_CheckChild1Same, 0, ++/*424535*/ OPC_MoveParent, ++/*424536*/ OPC_MoveChild1, ++/*424537*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*424540*/ OPC_CheckChild0Integer, 15, ++/*424542*/ OPC_CheckChild0Type, MVT::i32, ++/*424544*/ OPC_CheckChild1Integer, 15, ++/*424546*/ OPC_CheckChild1Type, MVT::i32, ++/*424548*/ OPC_CheckChild2Integer, 15, ++/*424550*/ OPC_CheckChild2Type, MVT::i32, ++/*424552*/ OPC_CheckChild3Integer, 15, ++/*424554*/ OPC_CheckChild3Type, MVT::i32, ++/*424556*/ OPC_CheckChild4Integer, 15, ++/*424558*/ OPC_CheckChild4Type, MVT::i32, ++/*424560*/ OPC_MoveChild5, ++/*424561*/ OPC_CheckInteger, 15, ++/*424563*/ OPC_CheckType, MVT::i32, ++/*424565*/ OPC_MoveParent, ++/*424566*/ OPC_MoveChild6, ++/*424567*/ OPC_CheckInteger, 15, ++/*424569*/ OPC_CheckType, MVT::i32, ++/*424571*/ OPC_MoveParent, ++/*424572*/ OPC_MoveChild7, ++/*424573*/ OPC_CheckInteger, 15, ++/*424575*/ OPC_CheckType, MVT::i32, ++/*424577*/ OPC_MoveParent, ++/*424578*/ OPC_CheckType, MVT::v8i16, ++/*424580*/ OPC_MoveParent, ++/*424581*/ OPC_MoveParent, ++/*424582*/ OPC_MoveParent, ++/*424583*/ OPC_MoveChild1, ++/*424584*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*424587*/ OPC_CheckChild0Integer, 1, ++/*424589*/ OPC_CheckChild0Type, MVT::i32, ++/*424591*/ OPC_CheckChild1Integer, 1, ++/*424593*/ OPC_CheckChild1Type, MVT::i32, ++/*424595*/ OPC_CheckChild2Integer, 1, ++/*424597*/ OPC_CheckChild2Type, MVT::i32, ++/*424599*/ OPC_CheckChild3Integer, 1, ++/*424601*/ OPC_CheckChild3Type, MVT::i32, ++/*424603*/ OPC_CheckChild4Integer, 1, ++/*424605*/ OPC_CheckChild4Type, MVT::i32, ++/*424607*/ OPC_MoveChild5, ++/*424608*/ OPC_CheckInteger, 1, ++/*424610*/ OPC_CheckType, MVT::i32, ++/*424612*/ OPC_MoveParent, ++/*424613*/ OPC_MoveChild6, ++/*424614*/ OPC_CheckInteger, 1, ++/*424616*/ OPC_CheckType, MVT::i32, ++/*424618*/ OPC_MoveParent, ++/*424619*/ OPC_MoveChild7, ++/*424620*/ OPC_CheckInteger, 1, ++/*424622*/ OPC_CheckType, MVT::i32, ++/*424624*/ OPC_MoveParent, ++/*424625*/ OPC_CheckType, MVT::v8i16, ++/*424627*/ OPC_MoveParent, ++/*424628*/ OPC_CheckType, MVT::v8i16, ++/*424630*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*424632*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a), LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*424640*/ /*Scope*/ 25|128,1/*153*/, /*->424795*/ ++/*424642*/ OPC_CheckChild0Same, 1, ++/*424644*/ OPC_MoveChild1, ++/*424645*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*424648*/ OPC_CheckChild0Integer, 1, ++/*424650*/ OPC_CheckChild0Type, MVT::i32, ++/*424652*/ OPC_CheckChild1Integer, 1, ++/*424654*/ OPC_CheckChild1Type, MVT::i32, ++/*424656*/ OPC_CheckChild2Integer, 1, ++/*424658*/ OPC_CheckChild2Type, MVT::i32, ++/*424660*/ OPC_CheckChild3Integer, 1, ++/*424662*/ OPC_CheckChild3Type, MVT::i32, ++/*424664*/ OPC_CheckChild4Integer, 1, ++/*424666*/ OPC_CheckChild4Type, MVT::i32, ++/*424668*/ OPC_MoveChild5, ++/*424669*/ OPC_CheckInteger, 1, ++/*424671*/ OPC_CheckType, MVT::i32, ++/*424673*/ OPC_MoveParent, ++/*424674*/ OPC_MoveChild6, ++/*424675*/ OPC_CheckInteger, 1, ++/*424677*/ OPC_CheckType, MVT::i32, ++/*424679*/ OPC_MoveParent, ++/*424680*/ OPC_MoveChild7, ++/*424681*/ OPC_CheckInteger, 1, ++/*424683*/ OPC_CheckType, MVT::i32, ++/*424685*/ OPC_MoveParent, ++/*424686*/ OPC_MoveParent, ++/*424687*/ OPC_MoveParent, ++/*424688*/ OPC_CheckChild1Same, 0, ++/*424690*/ OPC_MoveParent, ++/*424691*/ OPC_MoveChild1, ++/*424692*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*424695*/ OPC_CheckChild0Integer, 15, ++/*424697*/ OPC_CheckChild0Type, MVT::i32, ++/*424699*/ OPC_CheckChild1Integer, 15, ++/*424701*/ OPC_CheckChild1Type, MVT::i32, ++/*424703*/ OPC_CheckChild2Integer, 15, ++/*424705*/ OPC_CheckChild2Type, MVT::i32, ++/*424707*/ OPC_CheckChild3Integer, 15, ++/*424709*/ OPC_CheckChild3Type, MVT::i32, ++/*424711*/ OPC_CheckChild4Integer, 15, ++/*424713*/ OPC_CheckChild4Type, MVT::i32, ++/*424715*/ OPC_MoveChild5, ++/*424716*/ OPC_CheckInteger, 15, ++/*424718*/ OPC_CheckType, MVT::i32, ++/*424720*/ OPC_MoveParent, ++/*424721*/ OPC_MoveChild6, ++/*424722*/ OPC_CheckInteger, 15, ++/*424724*/ OPC_CheckType, MVT::i32, ++/*424726*/ OPC_MoveParent, ++/*424727*/ OPC_MoveChild7, ++/*424728*/ OPC_CheckInteger, 15, ++/*424730*/ OPC_CheckType, MVT::i32, ++/*424732*/ OPC_MoveParent, ++/*424733*/ OPC_CheckType, MVT::v8i16, ++/*424735*/ OPC_MoveParent, ++/*424736*/ OPC_MoveParent, ++/*424737*/ OPC_MoveParent, ++/*424738*/ OPC_MoveChild1, ++/*424739*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*424742*/ OPC_CheckChild0Integer, 1, ++/*424744*/ OPC_CheckChild0Type, MVT::i32, ++/*424746*/ OPC_CheckChild1Integer, 1, ++/*424748*/ OPC_CheckChild1Type, MVT::i32, ++/*424750*/ OPC_CheckChild2Integer, 1, ++/*424752*/ OPC_CheckChild2Type, MVT::i32, ++/*424754*/ OPC_CheckChild3Integer, 1, ++/*424756*/ OPC_CheckChild3Type, MVT::i32, ++/*424758*/ OPC_CheckChild4Integer, 1, ++/*424760*/ OPC_CheckChild4Type, MVT::i32, ++/*424762*/ OPC_MoveChild5, ++/*424763*/ OPC_CheckInteger, 1, ++/*424765*/ OPC_CheckType, MVT::i32, ++/*424767*/ OPC_MoveParent, ++/*424768*/ OPC_MoveChild6, ++/*424769*/ OPC_CheckInteger, 1, ++/*424771*/ OPC_CheckType, MVT::i32, ++/*424773*/ OPC_MoveParent, ++/*424774*/ OPC_MoveChild7, ++/*424775*/ OPC_CheckInteger, 1, ++/*424777*/ OPC_CheckType, MVT::i32, ++/*424779*/ OPC_MoveParent, ++/*424780*/ OPC_CheckType, MVT::v8i16, ++/*424782*/ OPC_MoveParent, ++/*424783*/ OPC_CheckType, MVT::v8i16, ++/*424785*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*424787*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*424795*/ /*Scope*/ 25|128,1/*153*/, /*->424950*/ ++/*424797*/ OPC_MoveChild0, ++/*424798*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*424801*/ OPC_CheckChild0Integer, 1, ++/*424803*/ OPC_CheckChild0Type, MVT::i32, ++/*424805*/ OPC_CheckChild1Integer, 1, ++/*424807*/ OPC_CheckChild1Type, MVT::i32, ++/*424809*/ OPC_CheckChild2Integer, 1, ++/*424811*/ OPC_CheckChild2Type, MVT::i32, ++/*424813*/ OPC_CheckChild3Integer, 1, ++/*424815*/ OPC_CheckChild3Type, MVT::i32, ++/*424817*/ OPC_CheckChild4Integer, 1, ++/*424819*/ OPC_CheckChild4Type, MVT::i32, ++/*424821*/ OPC_MoveChild5, ++/*424822*/ OPC_CheckInteger, 1, ++/*424824*/ OPC_CheckType, MVT::i32, ++/*424826*/ OPC_MoveParent, ++/*424827*/ OPC_MoveChild6, ++/*424828*/ OPC_CheckInteger, 1, ++/*424830*/ OPC_CheckType, MVT::i32, ++/*424832*/ OPC_MoveParent, ++/*424833*/ OPC_MoveChild7, ++/*424834*/ OPC_CheckInteger, 1, ++/*424836*/ OPC_CheckType, MVT::i32, ++/*424838*/ OPC_MoveParent, ++/*424839*/ OPC_MoveParent, ++/*424840*/ OPC_CheckChild1Same, 0, ++/*424842*/ OPC_MoveParent, ++/*424843*/ OPC_CheckChild1Same, 1, ++/*424845*/ OPC_MoveParent, ++/*424846*/ OPC_MoveChild1, ++/*424847*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*424850*/ OPC_CheckChild0Integer, 15, ++/*424852*/ OPC_CheckChild0Type, MVT::i32, ++/*424854*/ OPC_CheckChild1Integer, 15, ++/*424856*/ OPC_CheckChild1Type, MVT::i32, ++/*424858*/ OPC_CheckChild2Integer, 15, ++/*424860*/ OPC_CheckChild2Type, MVT::i32, ++/*424862*/ OPC_CheckChild3Integer, 15, ++/*424864*/ OPC_CheckChild3Type, MVT::i32, ++/*424866*/ OPC_CheckChild4Integer, 15, ++/*424868*/ OPC_CheckChild4Type, MVT::i32, ++/*424870*/ OPC_MoveChild5, ++/*424871*/ OPC_CheckInteger, 15, ++/*424873*/ OPC_CheckType, MVT::i32, ++/*424875*/ OPC_MoveParent, ++/*424876*/ OPC_MoveChild6, ++/*424877*/ OPC_CheckInteger, 15, ++/*424879*/ OPC_CheckType, MVT::i32, ++/*424881*/ OPC_MoveParent, ++/*424882*/ OPC_MoveChild7, ++/*424883*/ OPC_CheckInteger, 15, ++/*424885*/ OPC_CheckType, MVT::i32, ++/*424887*/ OPC_MoveParent, ++/*424888*/ OPC_CheckType, MVT::v8i16, ++/*424890*/ OPC_MoveParent, ++/*424891*/ OPC_MoveParent, ++/*424892*/ OPC_MoveParent, ++/*424893*/ OPC_MoveChild1, ++/*424894*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*424897*/ OPC_CheckChild0Integer, 1, ++/*424899*/ OPC_CheckChild0Type, MVT::i32, ++/*424901*/ OPC_CheckChild1Integer, 1, ++/*424903*/ OPC_CheckChild1Type, MVT::i32, ++/*424905*/ OPC_CheckChild2Integer, 1, ++/*424907*/ OPC_CheckChild2Type, MVT::i32, ++/*424909*/ OPC_CheckChild3Integer, 1, ++/*424911*/ OPC_CheckChild3Type, MVT::i32, ++/*424913*/ OPC_CheckChild4Integer, 1, ++/*424915*/ OPC_CheckChild4Type, MVT::i32, ++/*424917*/ OPC_MoveChild5, ++/*424918*/ OPC_CheckInteger, 1, ++/*424920*/ OPC_CheckType, MVT::i32, ++/*424922*/ OPC_MoveParent, ++/*424923*/ OPC_MoveChild6, ++/*424924*/ OPC_CheckInteger, 1, ++/*424926*/ OPC_CheckType, MVT::i32, ++/*424928*/ OPC_MoveParent, ++/*424929*/ OPC_MoveChild7, ++/*424930*/ OPC_CheckInteger, 1, ++/*424932*/ OPC_CheckType, MVT::i32, ++/*424934*/ OPC_MoveParent, ++/*424935*/ OPC_CheckType, MVT::v8i16, ++/*424937*/ OPC_MoveParent, ++/*424938*/ OPC_CheckType, MVT::v8i16, ++/*424940*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*424942*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b), LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*424950*/ /*Scope*/ 25|128,1/*153*/, /*->425105*/ ++/*424952*/ OPC_CheckChild0Same, 0, ++/*424954*/ OPC_MoveChild1, ++/*424955*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*424958*/ OPC_CheckChild0Integer, 1, ++/*424960*/ OPC_CheckChild0Type, MVT::i32, ++/*424962*/ OPC_CheckChild1Integer, 1, ++/*424964*/ OPC_CheckChild1Type, MVT::i32, ++/*424966*/ OPC_CheckChild2Integer, 1, ++/*424968*/ OPC_CheckChild2Type, MVT::i32, ++/*424970*/ OPC_CheckChild3Integer, 1, ++/*424972*/ OPC_CheckChild3Type, MVT::i32, ++/*424974*/ OPC_CheckChild4Integer, 1, ++/*424976*/ OPC_CheckChild4Type, MVT::i32, ++/*424978*/ OPC_MoveChild5, ++/*424979*/ OPC_CheckInteger, 1, ++/*424981*/ OPC_CheckType, MVT::i32, ++/*424983*/ OPC_MoveParent, ++/*424984*/ OPC_MoveChild6, ++/*424985*/ OPC_CheckInteger, 1, ++/*424987*/ OPC_CheckType, MVT::i32, ++/*424989*/ OPC_MoveParent, ++/*424990*/ OPC_MoveChild7, ++/*424991*/ OPC_CheckInteger, 1, ++/*424993*/ OPC_CheckType, MVT::i32, ++/*424995*/ OPC_MoveParent, ++/*424996*/ OPC_MoveParent, ++/*424997*/ OPC_MoveParent, ++/*424998*/ OPC_CheckChild1Same, 1, ++/*425000*/ OPC_MoveParent, ++/*425001*/ OPC_MoveChild1, ++/*425002*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*425005*/ OPC_CheckChild0Integer, 15, ++/*425007*/ OPC_CheckChild0Type, MVT::i32, ++/*425009*/ OPC_CheckChild1Integer, 15, ++/*425011*/ OPC_CheckChild1Type, MVT::i32, ++/*425013*/ OPC_CheckChild2Integer, 15, ++/*425015*/ OPC_CheckChild2Type, MVT::i32, ++/*425017*/ OPC_CheckChild3Integer, 15, ++/*425019*/ OPC_CheckChild3Type, MVT::i32, ++/*425021*/ OPC_CheckChild4Integer, 15, ++/*425023*/ OPC_CheckChild4Type, MVT::i32, ++/*425025*/ OPC_MoveChild5, ++/*425026*/ OPC_CheckInteger, 15, ++/*425028*/ OPC_CheckType, MVT::i32, ++/*425030*/ OPC_MoveParent, ++/*425031*/ OPC_MoveChild6, ++/*425032*/ OPC_CheckInteger, 15, ++/*425034*/ OPC_CheckType, MVT::i32, ++/*425036*/ OPC_MoveParent, ++/*425037*/ OPC_MoveChild7, ++/*425038*/ OPC_CheckInteger, 15, ++/*425040*/ OPC_CheckType, MVT::i32, ++/*425042*/ OPC_MoveParent, ++/*425043*/ OPC_CheckType, MVT::v8i16, ++/*425045*/ OPC_MoveParent, ++/*425046*/ OPC_MoveParent, ++/*425047*/ OPC_MoveParent, ++/*425048*/ OPC_MoveChild1, ++/*425049*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*425052*/ OPC_CheckChild0Integer, 1, ++/*425054*/ OPC_CheckChild0Type, MVT::i32, ++/*425056*/ OPC_CheckChild1Integer, 1, ++/*425058*/ OPC_CheckChild1Type, MVT::i32, ++/*425060*/ OPC_CheckChild2Integer, 1, ++/*425062*/ OPC_CheckChild2Type, MVT::i32, ++/*425064*/ OPC_CheckChild3Integer, 1, ++/*425066*/ OPC_CheckChild3Type, MVT::i32, ++/*425068*/ OPC_CheckChild4Integer, 1, ++/*425070*/ OPC_CheckChild4Type, MVT::i32, ++/*425072*/ OPC_MoveChild5, ++/*425073*/ OPC_CheckInteger, 1, ++/*425075*/ OPC_CheckType, MVT::i32, ++/*425077*/ OPC_MoveParent, ++/*425078*/ OPC_MoveChild6, ++/*425079*/ OPC_CheckInteger, 1, ++/*425081*/ OPC_CheckType, MVT::i32, ++/*425083*/ OPC_MoveParent, ++/*425084*/ OPC_MoveChild7, ++/*425085*/ OPC_CheckInteger, 1, ++/*425087*/ OPC_CheckType, MVT::i32, ++/*425089*/ OPC_MoveParent, ++/*425090*/ OPC_CheckType, MVT::v8i16, ++/*425092*/ OPC_MoveParent, ++/*425093*/ OPC_CheckType, MVT::v8i16, ++/*425095*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*425097*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*425105*/ /*Scope*/ 25|128,1/*153*/, /*->425260*/ ++/*425107*/ OPC_CheckChild0Same, 1, ++/*425109*/ OPC_CheckChild1Same, 0, ++/*425111*/ OPC_MoveParent, ++/*425112*/ OPC_MoveChild1, ++/*425113*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*425116*/ OPC_CheckChild0Integer, 1, ++/*425118*/ OPC_CheckChild0Type, MVT::i32, ++/*425120*/ OPC_CheckChild1Integer, 1, ++/*425122*/ OPC_CheckChild1Type, MVT::i32, ++/*425124*/ OPC_CheckChild2Integer, 1, ++/*425126*/ OPC_CheckChild2Type, MVT::i32, ++/*425128*/ OPC_CheckChild3Integer, 1, ++/*425130*/ OPC_CheckChild3Type, MVT::i32, ++/*425132*/ OPC_CheckChild4Integer, 1, ++/*425134*/ OPC_CheckChild4Type, MVT::i32, ++/*425136*/ OPC_MoveChild5, ++/*425137*/ OPC_CheckInteger, 1, ++/*425139*/ OPC_CheckType, MVT::i32, ++/*425141*/ OPC_MoveParent, ++/*425142*/ OPC_MoveChild6, ++/*425143*/ OPC_CheckInteger, 1, ++/*425145*/ OPC_CheckType, MVT::i32, ++/*425147*/ OPC_MoveParent, ++/*425148*/ OPC_MoveChild7, ++/*425149*/ OPC_CheckInteger, 1, ++/*425151*/ OPC_CheckType, MVT::i32, ++/*425153*/ OPC_MoveParent, ++/*425154*/ OPC_MoveParent, ++/*425155*/ OPC_MoveParent, ++/*425156*/ OPC_MoveChild1, ++/*425157*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*425160*/ OPC_CheckChild0Integer, 15, ++/*425162*/ OPC_CheckChild0Type, MVT::i32, ++/*425164*/ OPC_CheckChild1Integer, 15, ++/*425166*/ OPC_CheckChild1Type, MVT::i32, ++/*425168*/ OPC_CheckChild2Integer, 15, ++/*425170*/ OPC_CheckChild2Type, MVT::i32, ++/*425172*/ OPC_CheckChild3Integer, 15, ++/*425174*/ OPC_CheckChild3Type, MVT::i32, ++/*425176*/ OPC_CheckChild4Integer, 15, ++/*425178*/ OPC_CheckChild4Type, MVT::i32, ++/*425180*/ OPC_MoveChild5, ++/*425181*/ OPC_CheckInteger, 15, ++/*425183*/ OPC_CheckType, MVT::i32, ++/*425185*/ OPC_MoveParent, ++/*425186*/ OPC_MoveChild6, ++/*425187*/ OPC_CheckInteger, 15, ++/*425189*/ OPC_CheckType, MVT::i32, ++/*425191*/ OPC_MoveParent, ++/*425192*/ OPC_MoveChild7, ++/*425193*/ OPC_CheckInteger, 15, ++/*425195*/ OPC_CheckType, MVT::i32, ++/*425197*/ OPC_MoveParent, ++/*425198*/ OPC_CheckType, MVT::v8i16, ++/*425200*/ OPC_MoveParent, ++/*425201*/ OPC_MoveParent, ++/*425202*/ OPC_MoveParent, ++/*425203*/ OPC_MoveChild1, ++/*425204*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*425207*/ OPC_CheckChild0Integer, 1, ++/*425209*/ OPC_CheckChild0Type, MVT::i32, ++/*425211*/ OPC_CheckChild1Integer, 1, ++/*425213*/ OPC_CheckChild1Type, MVT::i32, ++/*425215*/ OPC_CheckChild2Integer, 1, ++/*425217*/ OPC_CheckChild2Type, MVT::i32, ++/*425219*/ OPC_CheckChild3Integer, 1, ++/*425221*/ OPC_CheckChild3Type, MVT::i32, ++/*425223*/ OPC_CheckChild4Integer, 1, ++/*425225*/ OPC_CheckChild4Type, MVT::i32, ++/*425227*/ OPC_MoveChild5, ++/*425228*/ OPC_CheckInteger, 1, ++/*425230*/ OPC_CheckType, MVT::i32, ++/*425232*/ OPC_MoveParent, ++/*425233*/ OPC_MoveChild6, ++/*425234*/ OPC_CheckInteger, 1, ++/*425236*/ OPC_CheckType, MVT::i32, ++/*425238*/ OPC_MoveParent, ++/*425239*/ OPC_MoveChild7, ++/*425240*/ OPC_CheckInteger, 1, ++/*425242*/ OPC_CheckType, MVT::i32, ++/*425244*/ OPC_MoveParent, ++/*425245*/ OPC_CheckType, MVT::v8i16, ++/*425247*/ OPC_MoveParent, ++/*425248*/ OPC_CheckType, MVT::v8i16, ++/*425250*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*425252*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*425260*/ /*Scope*/ 25|128,1/*153*/, /*->425415*/ ++/*425262*/ OPC_CheckChild0Same, 0, ++/*425264*/ OPC_CheckChild1Same, 1, ++/*425266*/ OPC_MoveParent, ++/*425267*/ OPC_MoveChild1, ++/*425268*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*425271*/ OPC_CheckChild0Integer, 1, ++/*425273*/ OPC_CheckChild0Type, MVT::i32, ++/*425275*/ OPC_CheckChild1Integer, 1, ++/*425277*/ OPC_CheckChild1Type, MVT::i32, ++/*425279*/ OPC_CheckChild2Integer, 1, ++/*425281*/ OPC_CheckChild2Type, MVT::i32, ++/*425283*/ OPC_CheckChild3Integer, 1, ++/*425285*/ OPC_CheckChild3Type, MVT::i32, ++/*425287*/ OPC_CheckChild4Integer, 1, ++/*425289*/ OPC_CheckChild4Type, MVT::i32, ++/*425291*/ OPC_MoveChild5, ++/*425292*/ OPC_CheckInteger, 1, ++/*425294*/ OPC_CheckType, MVT::i32, ++/*425296*/ OPC_MoveParent, ++/*425297*/ OPC_MoveChild6, ++/*425298*/ OPC_CheckInteger, 1, ++/*425300*/ OPC_CheckType, MVT::i32, ++/*425302*/ OPC_MoveParent, ++/*425303*/ OPC_MoveChild7, ++/*425304*/ OPC_CheckInteger, 1, ++/*425306*/ OPC_CheckType, MVT::i32, ++/*425308*/ OPC_MoveParent, ++/*425309*/ OPC_MoveParent, ++/*425310*/ OPC_MoveParent, ++/*425311*/ OPC_MoveChild1, ++/*425312*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*425315*/ OPC_CheckChild0Integer, 15, ++/*425317*/ OPC_CheckChild0Type, MVT::i32, ++/*425319*/ OPC_CheckChild1Integer, 15, ++/*425321*/ OPC_CheckChild1Type, MVT::i32, ++/*425323*/ OPC_CheckChild2Integer, 15, ++/*425325*/ OPC_CheckChild2Type, MVT::i32, ++/*425327*/ OPC_CheckChild3Integer, 15, ++/*425329*/ OPC_CheckChild3Type, MVT::i32, ++/*425331*/ OPC_CheckChild4Integer, 15, ++/*425333*/ OPC_CheckChild4Type, MVT::i32, ++/*425335*/ OPC_MoveChild5, ++/*425336*/ OPC_CheckInteger, 15, ++/*425338*/ OPC_CheckType, MVT::i32, ++/*425340*/ OPC_MoveParent, ++/*425341*/ OPC_MoveChild6, ++/*425342*/ OPC_CheckInteger, 15, ++/*425344*/ OPC_CheckType, MVT::i32, ++/*425346*/ OPC_MoveParent, ++/*425347*/ OPC_MoveChild7, ++/*425348*/ OPC_CheckInteger, 15, ++/*425350*/ OPC_CheckType, MVT::i32, ++/*425352*/ OPC_MoveParent, ++/*425353*/ OPC_CheckType, MVT::v8i16, ++/*425355*/ OPC_MoveParent, ++/*425356*/ OPC_MoveParent, ++/*425357*/ OPC_MoveParent, ++/*425358*/ OPC_MoveChild1, ++/*425359*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*425362*/ OPC_CheckChild0Integer, 1, ++/*425364*/ OPC_CheckChild0Type, MVT::i32, ++/*425366*/ OPC_CheckChild1Integer, 1, ++/*425368*/ OPC_CheckChild1Type, MVT::i32, ++/*425370*/ OPC_CheckChild2Integer, 1, ++/*425372*/ OPC_CheckChild2Type, MVT::i32, ++/*425374*/ OPC_CheckChild3Integer, 1, ++/*425376*/ OPC_CheckChild3Type, MVT::i32, ++/*425378*/ OPC_CheckChild4Integer, 1, ++/*425380*/ OPC_CheckChild4Type, MVT::i32, ++/*425382*/ OPC_MoveChild5, ++/*425383*/ OPC_CheckInteger, 1, ++/*425385*/ OPC_CheckType, MVT::i32, ++/*425387*/ OPC_MoveParent, ++/*425388*/ OPC_MoveChild6, ++/*425389*/ OPC_CheckInteger, 1, ++/*425391*/ OPC_CheckType, MVT::i32, ++/*425393*/ OPC_MoveParent, ++/*425394*/ OPC_MoveChild7, ++/*425395*/ OPC_CheckInteger, 1, ++/*425397*/ OPC_CheckType, MVT::i32, ++/*425399*/ OPC_MoveParent, ++/*425400*/ OPC_CheckType, MVT::v8i16, ++/*425402*/ OPC_MoveParent, ++/*425403*/ OPC_CheckType, MVT::v8i16, ++/*425405*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*425407*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*425415*/ 0, /*End of Scope*/ ++/*425416*/ /*Scope*/ 58|128,2/*314*/, /*->425732*/ ++/*425418*/ OPC_CheckChild0Same, 0, ++/*425420*/ OPC_MoveChild1, ++/*425421*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*425424*/ OPC_Scope, 23|128,1/*151*/, /*->425578*/ // 2 children in Scope ++/*425427*/ OPC_MoveChild0, ++/*425428*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*425431*/ OPC_CheckChild0Integer, 1, ++/*425433*/ OPC_CheckChild0Type, MVT::i32, ++/*425435*/ OPC_CheckChild1Integer, 1, ++/*425437*/ OPC_CheckChild1Type, MVT::i32, ++/*425439*/ OPC_CheckChild2Integer, 1, ++/*425441*/ OPC_CheckChild2Type, MVT::i32, ++/*425443*/ OPC_CheckChild3Integer, 1, ++/*425445*/ OPC_CheckChild3Type, MVT::i32, ++/*425447*/ OPC_CheckChild4Integer, 1, ++/*425449*/ OPC_CheckChild4Type, MVT::i32, ++/*425451*/ OPC_MoveChild5, ++/*425452*/ OPC_CheckInteger, 1, ++/*425454*/ OPC_CheckType, MVT::i32, ++/*425456*/ OPC_MoveParent, ++/*425457*/ OPC_MoveChild6, ++/*425458*/ OPC_CheckInteger, 1, ++/*425460*/ OPC_CheckType, MVT::i32, ++/*425462*/ OPC_MoveParent, ++/*425463*/ OPC_MoveChild7, ++/*425464*/ OPC_CheckInteger, 1, ++/*425466*/ OPC_CheckType, MVT::i32, ++/*425468*/ OPC_MoveParent, ++/*425469*/ OPC_MoveParent, ++/*425470*/ OPC_CheckChild1Same, 1, ++/*425472*/ OPC_MoveParent, ++/*425473*/ OPC_MoveParent, ++/*425474*/ OPC_MoveChild1, ++/*425475*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*425478*/ OPC_CheckChild0Integer, 15, ++/*425480*/ OPC_CheckChild0Type, MVT::i32, ++/*425482*/ OPC_CheckChild1Integer, 15, ++/*425484*/ OPC_CheckChild1Type, MVT::i32, ++/*425486*/ OPC_CheckChild2Integer, 15, ++/*425488*/ OPC_CheckChild2Type, MVT::i32, ++/*425490*/ OPC_CheckChild3Integer, 15, ++/*425492*/ OPC_CheckChild3Type, MVT::i32, ++/*425494*/ OPC_CheckChild4Integer, 15, ++/*425496*/ OPC_CheckChild4Type, MVT::i32, ++/*425498*/ OPC_MoveChild5, ++/*425499*/ OPC_CheckInteger, 15, ++/*425501*/ OPC_CheckType, MVT::i32, ++/*425503*/ OPC_MoveParent, ++/*425504*/ OPC_MoveChild6, ++/*425505*/ OPC_CheckInteger, 15, ++/*425507*/ OPC_CheckType, MVT::i32, ++/*425509*/ OPC_MoveParent, ++/*425510*/ OPC_MoveChild7, ++/*425511*/ OPC_CheckInteger, 15, ++/*425513*/ OPC_CheckType, MVT::i32, ++/*425515*/ OPC_MoveParent, ++/*425516*/ OPC_CheckType, MVT::v8i16, ++/*425518*/ OPC_MoveParent, ++/*425519*/ OPC_MoveParent, ++/*425520*/ OPC_MoveParent, ++/*425521*/ OPC_MoveChild1, ++/*425522*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*425525*/ OPC_CheckChild0Integer, 1, ++/*425527*/ OPC_CheckChild0Type, MVT::i32, ++/*425529*/ OPC_CheckChild1Integer, 1, ++/*425531*/ OPC_CheckChild1Type, MVT::i32, ++/*425533*/ OPC_CheckChild2Integer, 1, ++/*425535*/ OPC_CheckChild2Type, MVT::i32, ++/*425537*/ OPC_CheckChild3Integer, 1, ++/*425539*/ OPC_CheckChild3Type, MVT::i32, ++/*425541*/ OPC_CheckChild4Integer, 1, ++/*425543*/ OPC_CheckChild4Type, MVT::i32, ++/*425545*/ OPC_MoveChild5, ++/*425546*/ OPC_CheckInteger, 1, ++/*425548*/ OPC_CheckType, MVT::i32, ++/*425550*/ OPC_MoveParent, ++/*425551*/ OPC_MoveChild6, ++/*425552*/ OPC_CheckInteger, 1, ++/*425554*/ OPC_CheckType, MVT::i32, ++/*425556*/ OPC_MoveParent, ++/*425557*/ OPC_MoveChild7, ++/*425558*/ OPC_CheckInteger, 1, ++/*425560*/ OPC_CheckType, MVT::i32, ++/*425562*/ OPC_MoveParent, ++/*425563*/ OPC_CheckType, MVT::v8i16, ++/*425565*/ OPC_MoveParent, ++/*425566*/ OPC_CheckType, MVT::v8i16, ++/*425568*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*425570*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*425578*/ /*Scope*/ 23|128,1/*151*/, /*->425731*/ ++/*425580*/ OPC_CheckChild0Same, 1, ++/*425582*/ OPC_MoveChild1, ++/*425583*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*425586*/ OPC_CheckChild0Integer, 1, ++/*425588*/ OPC_CheckChild0Type, MVT::i32, ++/*425590*/ OPC_CheckChild1Integer, 1, ++/*425592*/ OPC_CheckChild1Type, MVT::i32, ++/*425594*/ OPC_CheckChild2Integer, 1, ++/*425596*/ OPC_CheckChild2Type, MVT::i32, ++/*425598*/ OPC_CheckChild3Integer, 1, ++/*425600*/ OPC_CheckChild3Type, MVT::i32, ++/*425602*/ OPC_CheckChild4Integer, 1, ++/*425604*/ OPC_CheckChild4Type, MVT::i32, ++/*425606*/ OPC_MoveChild5, ++/*425607*/ OPC_CheckInteger, 1, ++/*425609*/ OPC_CheckType, MVT::i32, ++/*425611*/ OPC_MoveParent, ++/*425612*/ OPC_MoveChild6, ++/*425613*/ OPC_CheckInteger, 1, ++/*425615*/ OPC_CheckType, MVT::i32, ++/*425617*/ OPC_MoveParent, ++/*425618*/ OPC_MoveChild7, ++/*425619*/ OPC_CheckInteger, 1, ++/*425621*/ OPC_CheckType, MVT::i32, ++/*425623*/ OPC_MoveParent, ++/*425624*/ OPC_MoveParent, ++/*425625*/ OPC_MoveParent, ++/*425626*/ OPC_MoveParent, ++/*425627*/ OPC_MoveChild1, ++/*425628*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*425631*/ OPC_CheckChild0Integer, 15, ++/*425633*/ OPC_CheckChild0Type, MVT::i32, ++/*425635*/ OPC_CheckChild1Integer, 15, ++/*425637*/ OPC_CheckChild1Type, MVT::i32, ++/*425639*/ OPC_CheckChild2Integer, 15, ++/*425641*/ OPC_CheckChild2Type, MVT::i32, ++/*425643*/ OPC_CheckChild3Integer, 15, ++/*425645*/ OPC_CheckChild3Type, MVT::i32, ++/*425647*/ OPC_CheckChild4Integer, 15, ++/*425649*/ OPC_CheckChild4Type, MVT::i32, ++/*425651*/ OPC_MoveChild5, ++/*425652*/ OPC_CheckInteger, 15, ++/*425654*/ OPC_CheckType, MVT::i32, ++/*425656*/ OPC_MoveParent, ++/*425657*/ OPC_MoveChild6, ++/*425658*/ OPC_CheckInteger, 15, ++/*425660*/ OPC_CheckType, MVT::i32, ++/*425662*/ OPC_MoveParent, ++/*425663*/ OPC_MoveChild7, ++/*425664*/ OPC_CheckInteger, 15, ++/*425666*/ OPC_CheckType, MVT::i32, ++/*425668*/ OPC_MoveParent, ++/*425669*/ OPC_CheckType, MVT::v8i16, ++/*425671*/ OPC_MoveParent, ++/*425672*/ OPC_MoveParent, ++/*425673*/ OPC_MoveParent, ++/*425674*/ OPC_MoveChild1, ++/*425675*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*425678*/ OPC_CheckChild0Integer, 1, ++/*425680*/ OPC_CheckChild0Type, MVT::i32, ++/*425682*/ OPC_CheckChild1Integer, 1, ++/*425684*/ OPC_CheckChild1Type, MVT::i32, ++/*425686*/ OPC_CheckChild2Integer, 1, ++/*425688*/ OPC_CheckChild2Type, MVT::i32, ++/*425690*/ OPC_CheckChild3Integer, 1, ++/*425692*/ OPC_CheckChild3Type, MVT::i32, ++/*425694*/ OPC_CheckChild4Integer, 1, ++/*425696*/ OPC_CheckChild4Type, MVT::i32, ++/*425698*/ OPC_MoveChild5, ++/*425699*/ OPC_CheckInteger, 1, ++/*425701*/ OPC_CheckType, MVT::i32, ++/*425703*/ OPC_MoveParent, ++/*425704*/ OPC_MoveChild6, ++/*425705*/ OPC_CheckInteger, 1, ++/*425707*/ OPC_CheckType, MVT::i32, ++/*425709*/ OPC_MoveParent, ++/*425710*/ OPC_MoveChild7, ++/*425711*/ OPC_CheckInteger, 1, ++/*425713*/ OPC_CheckType, MVT::i32, ++/*425715*/ OPC_MoveParent, ++/*425716*/ OPC_CheckType, MVT::v8i16, ++/*425718*/ OPC_MoveParent, ++/*425719*/ OPC_CheckType, MVT::v8i16, ++/*425721*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*425723*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*425731*/ 0, /*End of Scope*/ ++/*425732*/ /*Scope*/ 58|128,2/*314*/, /*->426048*/ ++/*425734*/ OPC_CheckChild0Same, 1, ++/*425736*/ OPC_MoveChild1, ++/*425737*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*425740*/ OPC_Scope, 23|128,1/*151*/, /*->425894*/ // 2 children in Scope ++/*425743*/ OPC_MoveChild0, ++/*425744*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*425747*/ OPC_CheckChild0Integer, 1, ++/*425749*/ OPC_CheckChild0Type, MVT::i32, ++/*425751*/ OPC_CheckChild1Integer, 1, ++/*425753*/ OPC_CheckChild1Type, MVT::i32, ++/*425755*/ OPC_CheckChild2Integer, 1, ++/*425757*/ OPC_CheckChild2Type, MVT::i32, ++/*425759*/ OPC_CheckChild3Integer, 1, ++/*425761*/ OPC_CheckChild3Type, MVT::i32, ++/*425763*/ OPC_CheckChild4Integer, 1, ++/*425765*/ OPC_CheckChild4Type, MVT::i32, ++/*425767*/ OPC_MoveChild5, ++/*425768*/ OPC_CheckInteger, 1, ++/*425770*/ OPC_CheckType, MVT::i32, ++/*425772*/ OPC_MoveParent, ++/*425773*/ OPC_MoveChild6, ++/*425774*/ OPC_CheckInteger, 1, ++/*425776*/ OPC_CheckType, MVT::i32, ++/*425778*/ OPC_MoveParent, ++/*425779*/ OPC_MoveChild7, ++/*425780*/ OPC_CheckInteger, 1, ++/*425782*/ OPC_CheckType, MVT::i32, ++/*425784*/ OPC_MoveParent, ++/*425785*/ OPC_MoveParent, ++/*425786*/ OPC_CheckChild1Same, 0, ++/*425788*/ OPC_MoveParent, ++/*425789*/ OPC_MoveParent, ++/*425790*/ OPC_MoveChild1, ++/*425791*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*425794*/ OPC_CheckChild0Integer, 15, ++/*425796*/ OPC_CheckChild0Type, MVT::i32, ++/*425798*/ OPC_CheckChild1Integer, 15, ++/*425800*/ OPC_CheckChild1Type, MVT::i32, ++/*425802*/ OPC_CheckChild2Integer, 15, ++/*425804*/ OPC_CheckChild2Type, MVT::i32, ++/*425806*/ OPC_CheckChild3Integer, 15, ++/*425808*/ OPC_CheckChild3Type, MVT::i32, ++/*425810*/ OPC_CheckChild4Integer, 15, ++/*425812*/ OPC_CheckChild4Type, MVT::i32, ++/*425814*/ OPC_MoveChild5, ++/*425815*/ OPC_CheckInteger, 15, ++/*425817*/ OPC_CheckType, MVT::i32, ++/*425819*/ OPC_MoveParent, ++/*425820*/ OPC_MoveChild6, ++/*425821*/ OPC_CheckInteger, 15, ++/*425823*/ OPC_CheckType, MVT::i32, ++/*425825*/ OPC_MoveParent, ++/*425826*/ OPC_MoveChild7, ++/*425827*/ OPC_CheckInteger, 15, ++/*425829*/ OPC_CheckType, MVT::i32, ++/*425831*/ OPC_MoveParent, ++/*425832*/ OPC_CheckType, MVT::v8i16, ++/*425834*/ OPC_MoveParent, ++/*425835*/ OPC_MoveParent, ++/*425836*/ OPC_MoveParent, ++/*425837*/ OPC_MoveChild1, ++/*425838*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*425841*/ OPC_CheckChild0Integer, 1, ++/*425843*/ OPC_CheckChild0Type, MVT::i32, ++/*425845*/ OPC_CheckChild1Integer, 1, ++/*425847*/ OPC_CheckChild1Type, MVT::i32, ++/*425849*/ OPC_CheckChild2Integer, 1, ++/*425851*/ OPC_CheckChild2Type, MVT::i32, ++/*425853*/ OPC_CheckChild3Integer, 1, ++/*425855*/ OPC_CheckChild3Type, MVT::i32, ++/*425857*/ OPC_CheckChild4Integer, 1, ++/*425859*/ OPC_CheckChild4Type, MVT::i32, ++/*425861*/ OPC_MoveChild5, ++/*425862*/ OPC_CheckInteger, 1, ++/*425864*/ OPC_CheckType, MVT::i32, ++/*425866*/ OPC_MoveParent, ++/*425867*/ OPC_MoveChild6, ++/*425868*/ OPC_CheckInteger, 1, ++/*425870*/ OPC_CheckType, MVT::i32, ++/*425872*/ OPC_MoveParent, ++/*425873*/ OPC_MoveChild7, ++/*425874*/ OPC_CheckInteger, 1, ++/*425876*/ OPC_CheckType, MVT::i32, ++/*425878*/ OPC_MoveParent, ++/*425879*/ OPC_CheckType, MVT::v8i16, ++/*425881*/ OPC_MoveParent, ++/*425882*/ OPC_CheckType, MVT::v8i16, ++/*425884*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*425886*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*425894*/ /*Scope*/ 23|128,1/*151*/, /*->426047*/ ++/*425896*/ OPC_CheckChild0Same, 0, ++/*425898*/ OPC_MoveChild1, ++/*425899*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*425902*/ OPC_CheckChild0Integer, 1, ++/*425904*/ OPC_CheckChild0Type, MVT::i32, ++/*425906*/ OPC_CheckChild1Integer, 1, ++/*425908*/ OPC_CheckChild1Type, MVT::i32, ++/*425910*/ OPC_CheckChild2Integer, 1, ++/*425912*/ OPC_CheckChild2Type, MVT::i32, ++/*425914*/ OPC_CheckChild3Integer, 1, ++/*425916*/ OPC_CheckChild3Type, MVT::i32, ++/*425918*/ OPC_CheckChild4Integer, 1, ++/*425920*/ OPC_CheckChild4Type, MVT::i32, ++/*425922*/ OPC_MoveChild5, ++/*425923*/ OPC_CheckInteger, 1, ++/*425925*/ OPC_CheckType, MVT::i32, ++/*425927*/ OPC_MoveParent, ++/*425928*/ OPC_MoveChild6, ++/*425929*/ OPC_CheckInteger, 1, ++/*425931*/ OPC_CheckType, MVT::i32, ++/*425933*/ OPC_MoveParent, ++/*425934*/ OPC_MoveChild7, ++/*425935*/ OPC_CheckInteger, 1, ++/*425937*/ OPC_CheckType, MVT::i32, ++/*425939*/ OPC_MoveParent, ++/*425940*/ OPC_MoveParent, ++/*425941*/ OPC_MoveParent, ++/*425942*/ OPC_MoveParent, ++/*425943*/ OPC_MoveChild1, ++/*425944*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*425947*/ OPC_CheckChild0Integer, 15, ++/*425949*/ OPC_CheckChild0Type, MVT::i32, ++/*425951*/ OPC_CheckChild1Integer, 15, ++/*425953*/ OPC_CheckChild1Type, MVT::i32, ++/*425955*/ OPC_CheckChild2Integer, 15, ++/*425957*/ OPC_CheckChild2Type, MVT::i32, ++/*425959*/ OPC_CheckChild3Integer, 15, ++/*425961*/ OPC_CheckChild3Type, MVT::i32, ++/*425963*/ OPC_CheckChild4Integer, 15, ++/*425965*/ OPC_CheckChild4Type, MVT::i32, ++/*425967*/ OPC_MoveChild5, ++/*425968*/ OPC_CheckInteger, 15, ++/*425970*/ OPC_CheckType, MVT::i32, ++/*425972*/ OPC_MoveParent, ++/*425973*/ OPC_MoveChild6, ++/*425974*/ OPC_CheckInteger, 15, ++/*425976*/ OPC_CheckType, MVT::i32, ++/*425978*/ OPC_MoveParent, ++/*425979*/ OPC_MoveChild7, ++/*425980*/ OPC_CheckInteger, 15, ++/*425982*/ OPC_CheckType, MVT::i32, ++/*425984*/ OPC_MoveParent, ++/*425985*/ OPC_CheckType, MVT::v8i16, ++/*425987*/ OPC_MoveParent, ++/*425988*/ OPC_MoveParent, ++/*425989*/ OPC_MoveParent, ++/*425990*/ OPC_MoveChild1, ++/*425991*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*425994*/ OPC_CheckChild0Integer, 1, ++/*425996*/ OPC_CheckChild0Type, MVT::i32, ++/*425998*/ OPC_CheckChild1Integer, 1, ++/*426000*/ OPC_CheckChild1Type, MVT::i32, ++/*426002*/ OPC_CheckChild2Integer, 1, ++/*426004*/ OPC_CheckChild2Type, MVT::i32, ++/*426006*/ OPC_CheckChild3Integer, 1, ++/*426008*/ OPC_CheckChild3Type, MVT::i32, ++/*426010*/ OPC_CheckChild4Integer, 1, ++/*426012*/ OPC_CheckChild4Type, MVT::i32, ++/*426014*/ OPC_MoveChild5, ++/*426015*/ OPC_CheckInteger, 1, ++/*426017*/ OPC_CheckType, MVT::i32, ++/*426019*/ OPC_MoveParent, ++/*426020*/ OPC_MoveChild6, ++/*426021*/ OPC_CheckInteger, 1, ++/*426023*/ OPC_CheckType, MVT::i32, ++/*426025*/ OPC_MoveParent, ++/*426026*/ OPC_MoveChild7, ++/*426027*/ OPC_CheckInteger, 1, ++/*426029*/ OPC_CheckType, MVT::i32, ++/*426031*/ OPC_MoveParent, ++/*426032*/ OPC_CheckType, MVT::v8i16, ++/*426034*/ OPC_MoveParent, ++/*426035*/ OPC_CheckType, MVT::v8i16, ++/*426037*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*426039*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*426047*/ 0, /*End of Scope*/ ++/*426048*/ /*Scope*/ 15|128,2/*271*/, /*->426321*/ ++/*426050*/ OPC_MoveChild0, ++/*426051*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*426054*/ OPC_CheckChild0Integer, 1, ++/*426056*/ OPC_CheckChild0Type, MVT::i32, ++/*426058*/ OPC_CheckChild1Integer, 1, ++/*426060*/ OPC_CheckChild1Type, MVT::i32, ++/*426062*/ OPC_CheckChild2Integer, 1, ++/*426064*/ OPC_CheckChild2Type, MVT::i32, ++/*426066*/ OPC_CheckChild3Integer, 1, ++/*426068*/ OPC_CheckChild3Type, MVT::i32, ++/*426070*/ OPC_CheckChild4Integer, 1, ++/*426072*/ OPC_CheckChild4Type, MVT::i32, ++/*426074*/ OPC_MoveChild5, ++/*426075*/ OPC_CheckInteger, 1, ++/*426077*/ OPC_CheckType, MVT::i32, ++/*426079*/ OPC_MoveParent, ++/*426080*/ OPC_MoveChild6, ++/*426081*/ OPC_CheckInteger, 1, ++/*426083*/ OPC_CheckType, MVT::i32, ++/*426085*/ OPC_MoveParent, ++/*426086*/ OPC_MoveChild7, ++/*426087*/ OPC_CheckInteger, 1, ++/*426089*/ OPC_CheckType, MVT::i32, ++/*426091*/ OPC_MoveParent, ++/*426092*/ OPC_MoveParent, ++/*426093*/ OPC_MoveChild1, ++/*426094*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*426097*/ OPC_Scope, 110, /*->426209*/ // 2 children in Scope ++/*426099*/ OPC_CheckChild0Same, 1, ++/*426101*/ OPC_CheckChild1Same, 0, ++/*426103*/ OPC_MoveParent, ++/*426104*/ OPC_MoveParent, ++/*426105*/ OPC_MoveChild1, ++/*426106*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*426109*/ OPC_CheckChild0Integer, 15, ++/*426111*/ OPC_CheckChild0Type, MVT::i32, ++/*426113*/ OPC_CheckChild1Integer, 15, ++/*426115*/ OPC_CheckChild1Type, MVT::i32, ++/*426117*/ OPC_CheckChild2Integer, 15, ++/*426119*/ OPC_CheckChild2Type, MVT::i32, ++/*426121*/ OPC_CheckChild3Integer, 15, ++/*426123*/ OPC_CheckChild3Type, MVT::i32, ++/*426125*/ OPC_CheckChild4Integer, 15, ++/*426127*/ OPC_CheckChild4Type, MVT::i32, ++/*426129*/ OPC_MoveChild5, ++/*426130*/ OPC_CheckInteger, 15, ++/*426132*/ OPC_CheckType, MVT::i32, ++/*426134*/ OPC_MoveParent, ++/*426135*/ OPC_MoveChild6, ++/*426136*/ OPC_CheckInteger, 15, ++/*426138*/ OPC_CheckType, MVT::i32, ++/*426140*/ OPC_MoveParent, ++/*426141*/ OPC_MoveChild7, ++/*426142*/ OPC_CheckInteger, 15, ++/*426144*/ OPC_CheckType, MVT::i32, ++/*426146*/ OPC_MoveParent, ++/*426147*/ OPC_CheckType, MVT::v8i16, ++/*426149*/ OPC_MoveParent, ++/*426150*/ OPC_MoveParent, ++/*426151*/ OPC_MoveParent, ++/*426152*/ OPC_MoveChild1, ++/*426153*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*426156*/ OPC_CheckChild0Integer, 1, ++/*426158*/ OPC_CheckChild0Type, MVT::i32, ++/*426160*/ OPC_CheckChild1Integer, 1, ++/*426162*/ OPC_CheckChild1Type, MVT::i32, ++/*426164*/ OPC_CheckChild2Integer, 1, ++/*426166*/ OPC_CheckChild2Type, MVT::i32, ++/*426168*/ OPC_CheckChild3Integer, 1, ++/*426170*/ OPC_CheckChild3Type, MVT::i32, ++/*426172*/ OPC_CheckChild4Integer, 1, ++/*426174*/ OPC_CheckChild4Type, MVT::i32, ++/*426176*/ OPC_MoveChild5, ++/*426177*/ OPC_CheckInteger, 1, ++/*426179*/ OPC_CheckType, MVT::i32, ++/*426181*/ OPC_MoveParent, ++/*426182*/ OPC_MoveChild6, ++/*426183*/ OPC_CheckInteger, 1, ++/*426185*/ OPC_CheckType, MVT::i32, ++/*426187*/ OPC_MoveParent, ++/*426188*/ OPC_MoveChild7, ++/*426189*/ OPC_CheckInteger, 1, ++/*426191*/ OPC_CheckType, MVT::i32, ++/*426193*/ OPC_MoveParent, ++/*426194*/ OPC_CheckType, MVT::v8i16, ++/*426196*/ OPC_MoveParent, ++/*426197*/ OPC_CheckType, MVT::v8i16, ++/*426199*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*426201*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*426209*/ /*Scope*/ 110, /*->426320*/ ++/*426210*/ OPC_CheckChild0Same, 0, ++/*426212*/ OPC_CheckChild1Same, 1, ++/*426214*/ OPC_MoveParent, ++/*426215*/ OPC_MoveParent, ++/*426216*/ OPC_MoveChild1, ++/*426217*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*426220*/ OPC_CheckChild0Integer, 15, ++/*426222*/ OPC_CheckChild0Type, MVT::i32, ++/*426224*/ OPC_CheckChild1Integer, 15, ++/*426226*/ OPC_CheckChild1Type, MVT::i32, ++/*426228*/ OPC_CheckChild2Integer, 15, ++/*426230*/ OPC_CheckChild2Type, MVT::i32, ++/*426232*/ OPC_CheckChild3Integer, 15, ++/*426234*/ OPC_CheckChild3Type, MVT::i32, ++/*426236*/ OPC_CheckChild4Integer, 15, ++/*426238*/ OPC_CheckChild4Type, MVT::i32, ++/*426240*/ OPC_MoveChild5, ++/*426241*/ OPC_CheckInteger, 15, ++/*426243*/ OPC_CheckType, MVT::i32, ++/*426245*/ OPC_MoveParent, ++/*426246*/ OPC_MoveChild6, ++/*426247*/ OPC_CheckInteger, 15, ++/*426249*/ OPC_CheckType, MVT::i32, ++/*426251*/ OPC_MoveParent, ++/*426252*/ OPC_MoveChild7, ++/*426253*/ OPC_CheckInteger, 15, ++/*426255*/ OPC_CheckType, MVT::i32, ++/*426257*/ OPC_MoveParent, ++/*426258*/ OPC_CheckType, MVT::v8i16, ++/*426260*/ OPC_MoveParent, ++/*426261*/ OPC_MoveParent, ++/*426262*/ OPC_MoveParent, ++/*426263*/ OPC_MoveChild1, ++/*426264*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*426267*/ OPC_CheckChild0Integer, 1, ++/*426269*/ OPC_CheckChild0Type, MVT::i32, ++/*426271*/ OPC_CheckChild1Integer, 1, ++/*426273*/ OPC_CheckChild1Type, MVT::i32, ++/*426275*/ OPC_CheckChild2Integer, 1, ++/*426277*/ OPC_CheckChild2Type, MVT::i32, ++/*426279*/ OPC_CheckChild3Integer, 1, ++/*426281*/ OPC_CheckChild3Type, MVT::i32, ++/*426283*/ OPC_CheckChild4Integer, 1, ++/*426285*/ OPC_CheckChild4Type, MVT::i32, ++/*426287*/ OPC_MoveChild5, ++/*426288*/ OPC_CheckInteger, 1, ++/*426290*/ OPC_CheckType, MVT::i32, ++/*426292*/ OPC_MoveParent, ++/*426293*/ OPC_MoveChild6, ++/*426294*/ OPC_CheckInteger, 1, ++/*426296*/ OPC_CheckType, MVT::i32, ++/*426298*/ OPC_MoveParent, ++/*426299*/ OPC_MoveChild7, ++/*426300*/ OPC_CheckInteger, 1, ++/*426302*/ OPC_CheckType, MVT::i32, ++/*426304*/ OPC_MoveParent, ++/*426305*/ OPC_CheckType, MVT::v8i16, ++/*426307*/ OPC_MoveParent, ++/*426308*/ OPC_CheckType, MVT::v8i16, ++/*426310*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*426312*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*426320*/ 0, /*End of Scope*/ ++/*426321*/ 0, /*End of Scope*/ ++/*426322*/ /*Scope*/ 107|128,14/*1899*/, /*->428223*/ ++/*426324*/ OPC_MoveChild0, ++/*426325*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*426328*/ OPC_CheckChild0Integer, 1, ++/*426330*/ OPC_CheckChild0Type, MVT::i32, ++/*426332*/ OPC_CheckChild1Integer, 1, ++/*426334*/ OPC_CheckChild1Type, MVT::i32, ++/*426336*/ OPC_CheckChild2Integer, 1, ++/*426338*/ OPC_CheckChild2Type, MVT::i32, ++/*426340*/ OPC_CheckChild3Integer, 1, ++/*426342*/ OPC_CheckChild3Type, MVT::i32, ++/*426344*/ OPC_CheckChild4Integer, 1, ++/*426346*/ OPC_CheckChild4Type, MVT::i32, ++/*426348*/ OPC_MoveChild5, ++/*426349*/ OPC_CheckInteger, 1, ++/*426351*/ OPC_CheckType, MVT::i32, ++/*426353*/ OPC_MoveParent, ++/*426354*/ OPC_MoveChild6, ++/*426355*/ OPC_CheckInteger, 1, ++/*426357*/ OPC_CheckType, MVT::i32, ++/*426359*/ OPC_MoveParent, ++/*426360*/ OPC_MoveChild7, ++/*426361*/ OPC_CheckInteger, 1, ++/*426363*/ OPC_CheckType, MVT::i32, ++/*426365*/ OPC_MoveParent, ++/*426366*/ OPC_MoveParent, ++/*426367*/ OPC_RecordChild1, // #1 = $b ++/*426368*/ OPC_MoveParent, ++/*426369*/ OPC_MoveParent, ++/*426370*/ OPC_MoveChild1, ++/*426371*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*426374*/ OPC_MoveChild0, ++/*426375*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*426378*/ OPC_Scope, 40|128,7/*936*/, /*->427317*/ // 4 children in Scope ++/*426381*/ OPC_MoveChild0, ++/*426382*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*426385*/ OPC_Scope, 25|128,1/*153*/, /*->426541*/ // 6 children in Scope ++/*426388*/ OPC_MoveChild0, ++/*426389*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*426392*/ OPC_CheckChild0Integer, 1, ++/*426394*/ OPC_CheckChild0Type, MVT::i32, ++/*426396*/ OPC_CheckChild1Integer, 1, ++/*426398*/ OPC_CheckChild1Type, MVT::i32, ++/*426400*/ OPC_CheckChild2Integer, 1, ++/*426402*/ OPC_CheckChild2Type, MVT::i32, ++/*426404*/ OPC_CheckChild3Integer, 1, ++/*426406*/ OPC_CheckChild3Type, MVT::i32, ++/*426408*/ OPC_CheckChild4Integer, 1, ++/*426410*/ OPC_CheckChild4Type, MVT::i32, ++/*426412*/ OPC_MoveChild5, ++/*426413*/ OPC_CheckInteger, 1, ++/*426415*/ OPC_CheckType, MVT::i32, ++/*426417*/ OPC_MoveParent, ++/*426418*/ OPC_MoveChild6, ++/*426419*/ OPC_CheckInteger, 1, ++/*426421*/ OPC_CheckType, MVT::i32, ++/*426423*/ OPC_MoveParent, ++/*426424*/ OPC_MoveChild7, ++/*426425*/ OPC_CheckInteger, 1, ++/*426427*/ OPC_CheckType, MVT::i32, ++/*426429*/ OPC_MoveParent, ++/*426430*/ OPC_MoveParent, ++/*426431*/ OPC_CheckChild1Same, 0, ++/*426433*/ OPC_MoveParent, ++/*426434*/ OPC_CheckChild1Same, 1, ++/*426436*/ OPC_MoveParent, ++/*426437*/ OPC_MoveChild1, ++/*426438*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*426441*/ OPC_CheckChild0Integer, 15, ++/*426443*/ OPC_CheckChild0Type, MVT::i32, ++/*426445*/ OPC_CheckChild1Integer, 15, ++/*426447*/ OPC_CheckChild1Type, MVT::i32, ++/*426449*/ OPC_CheckChild2Integer, 15, ++/*426451*/ OPC_CheckChild2Type, MVT::i32, ++/*426453*/ OPC_CheckChild3Integer, 15, ++/*426455*/ OPC_CheckChild3Type, MVT::i32, ++/*426457*/ OPC_CheckChild4Integer, 15, ++/*426459*/ OPC_CheckChild4Type, MVT::i32, ++/*426461*/ OPC_MoveChild5, ++/*426462*/ OPC_CheckInteger, 15, ++/*426464*/ OPC_CheckType, MVT::i32, ++/*426466*/ OPC_MoveParent, ++/*426467*/ OPC_MoveChild6, ++/*426468*/ OPC_CheckInteger, 15, ++/*426470*/ OPC_CheckType, MVT::i32, ++/*426472*/ OPC_MoveParent, ++/*426473*/ OPC_MoveChild7, ++/*426474*/ OPC_CheckInteger, 15, ++/*426476*/ OPC_CheckType, MVT::i32, ++/*426478*/ OPC_MoveParent, ++/*426479*/ OPC_CheckType, MVT::v8i16, ++/*426481*/ OPC_MoveParent, ++/*426482*/ OPC_MoveParent, ++/*426483*/ OPC_MoveParent, ++/*426484*/ OPC_MoveChild1, ++/*426485*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*426488*/ OPC_CheckChild0Integer, 1, ++/*426490*/ OPC_CheckChild0Type, MVT::i32, ++/*426492*/ OPC_CheckChild1Integer, 1, ++/*426494*/ OPC_CheckChild1Type, MVT::i32, ++/*426496*/ OPC_CheckChild2Integer, 1, ++/*426498*/ OPC_CheckChild2Type, MVT::i32, ++/*426500*/ OPC_CheckChild3Integer, 1, ++/*426502*/ OPC_CheckChild3Type, MVT::i32, ++/*426504*/ OPC_CheckChild4Integer, 1, ++/*426506*/ OPC_CheckChild4Type, MVT::i32, ++/*426508*/ OPC_MoveChild5, ++/*426509*/ OPC_CheckInteger, 1, ++/*426511*/ OPC_CheckType, MVT::i32, ++/*426513*/ OPC_MoveParent, ++/*426514*/ OPC_MoveChild6, ++/*426515*/ OPC_CheckInteger, 1, ++/*426517*/ OPC_CheckType, MVT::i32, ++/*426519*/ OPC_MoveParent, ++/*426520*/ OPC_MoveChild7, ++/*426521*/ OPC_CheckInteger, 1, ++/*426523*/ OPC_CheckType, MVT::i32, ++/*426525*/ OPC_MoveParent, ++/*426526*/ OPC_CheckType, MVT::v8i16, ++/*426528*/ OPC_MoveParent, ++/*426529*/ OPC_CheckType, MVT::v8i16, ++/*426531*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*426533*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b)), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a), LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*426541*/ /*Scope*/ 25|128,1/*153*/, /*->426696*/ ++/*426543*/ OPC_CheckChild0Same, 0, ++/*426545*/ OPC_MoveChild1, ++/*426546*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*426549*/ OPC_CheckChild0Integer, 1, ++/*426551*/ OPC_CheckChild0Type, MVT::i32, ++/*426553*/ OPC_CheckChild1Integer, 1, ++/*426555*/ OPC_CheckChild1Type, MVT::i32, ++/*426557*/ OPC_CheckChild2Integer, 1, ++/*426559*/ OPC_CheckChild2Type, MVT::i32, ++/*426561*/ OPC_CheckChild3Integer, 1, ++/*426563*/ OPC_CheckChild3Type, MVT::i32, ++/*426565*/ OPC_CheckChild4Integer, 1, ++/*426567*/ OPC_CheckChild4Type, MVT::i32, ++/*426569*/ OPC_MoveChild5, ++/*426570*/ OPC_CheckInteger, 1, ++/*426572*/ OPC_CheckType, MVT::i32, ++/*426574*/ OPC_MoveParent, ++/*426575*/ OPC_MoveChild6, ++/*426576*/ OPC_CheckInteger, 1, ++/*426578*/ OPC_CheckType, MVT::i32, ++/*426580*/ OPC_MoveParent, ++/*426581*/ OPC_MoveChild7, ++/*426582*/ OPC_CheckInteger, 1, ++/*426584*/ OPC_CheckType, MVT::i32, ++/*426586*/ OPC_MoveParent, ++/*426587*/ OPC_MoveParent, ++/*426588*/ OPC_MoveParent, ++/*426589*/ OPC_CheckChild1Same, 1, ++/*426591*/ OPC_MoveParent, ++/*426592*/ OPC_MoveChild1, ++/*426593*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*426596*/ OPC_CheckChild0Integer, 15, ++/*426598*/ OPC_CheckChild0Type, MVT::i32, ++/*426600*/ OPC_CheckChild1Integer, 15, ++/*426602*/ OPC_CheckChild1Type, MVT::i32, ++/*426604*/ OPC_CheckChild2Integer, 15, ++/*426606*/ OPC_CheckChild2Type, MVT::i32, ++/*426608*/ OPC_CheckChild3Integer, 15, ++/*426610*/ OPC_CheckChild3Type, MVT::i32, ++/*426612*/ OPC_CheckChild4Integer, 15, ++/*426614*/ OPC_CheckChild4Type, MVT::i32, ++/*426616*/ OPC_MoveChild5, ++/*426617*/ OPC_CheckInteger, 15, ++/*426619*/ OPC_CheckType, MVT::i32, ++/*426621*/ OPC_MoveParent, ++/*426622*/ OPC_MoveChild6, ++/*426623*/ OPC_CheckInteger, 15, ++/*426625*/ OPC_CheckType, MVT::i32, ++/*426627*/ OPC_MoveParent, ++/*426628*/ OPC_MoveChild7, ++/*426629*/ OPC_CheckInteger, 15, ++/*426631*/ OPC_CheckType, MVT::i32, ++/*426633*/ OPC_MoveParent, ++/*426634*/ OPC_CheckType, MVT::v8i16, ++/*426636*/ OPC_MoveParent, ++/*426637*/ OPC_MoveParent, ++/*426638*/ OPC_MoveParent, ++/*426639*/ OPC_MoveChild1, ++/*426640*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*426643*/ OPC_CheckChild0Integer, 1, ++/*426645*/ OPC_CheckChild0Type, MVT::i32, ++/*426647*/ OPC_CheckChild1Integer, 1, ++/*426649*/ OPC_CheckChild1Type, MVT::i32, ++/*426651*/ OPC_CheckChild2Integer, 1, ++/*426653*/ OPC_CheckChild2Type, MVT::i32, ++/*426655*/ OPC_CheckChild3Integer, 1, ++/*426657*/ OPC_CheckChild3Type, MVT::i32, ++/*426659*/ OPC_CheckChild4Integer, 1, ++/*426661*/ OPC_CheckChild4Type, MVT::i32, ++/*426663*/ OPC_MoveChild5, ++/*426664*/ OPC_CheckInteger, 1, ++/*426666*/ OPC_CheckType, MVT::i32, ++/*426668*/ OPC_MoveParent, ++/*426669*/ OPC_MoveChild6, ++/*426670*/ OPC_CheckInteger, 1, ++/*426672*/ OPC_CheckType, MVT::i32, ++/*426674*/ OPC_MoveParent, ++/*426675*/ OPC_MoveChild7, ++/*426676*/ OPC_CheckInteger, 1, ++/*426678*/ OPC_CheckType, MVT::i32, ++/*426680*/ OPC_MoveParent, ++/*426681*/ OPC_CheckType, MVT::v8i16, ++/*426683*/ OPC_MoveParent, ++/*426684*/ OPC_CheckType, MVT::v8i16, ++/*426686*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*426688*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b)), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*426696*/ /*Scope*/ 25|128,1/*153*/, /*->426851*/ ++/*426698*/ OPC_MoveChild0, ++/*426699*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*426702*/ OPC_CheckChild0Integer, 1, ++/*426704*/ OPC_CheckChild0Type, MVT::i32, ++/*426706*/ OPC_CheckChild1Integer, 1, ++/*426708*/ OPC_CheckChild1Type, MVT::i32, ++/*426710*/ OPC_CheckChild2Integer, 1, ++/*426712*/ OPC_CheckChild2Type, MVT::i32, ++/*426714*/ OPC_CheckChild3Integer, 1, ++/*426716*/ OPC_CheckChild3Type, MVT::i32, ++/*426718*/ OPC_CheckChild4Integer, 1, ++/*426720*/ OPC_CheckChild4Type, MVT::i32, ++/*426722*/ OPC_MoveChild5, ++/*426723*/ OPC_CheckInteger, 1, ++/*426725*/ OPC_CheckType, MVT::i32, ++/*426727*/ OPC_MoveParent, ++/*426728*/ OPC_MoveChild6, ++/*426729*/ OPC_CheckInteger, 1, ++/*426731*/ OPC_CheckType, MVT::i32, ++/*426733*/ OPC_MoveParent, ++/*426734*/ OPC_MoveChild7, ++/*426735*/ OPC_CheckInteger, 1, ++/*426737*/ OPC_CheckType, MVT::i32, ++/*426739*/ OPC_MoveParent, ++/*426740*/ OPC_MoveParent, ++/*426741*/ OPC_CheckChild1Same, 1, ++/*426743*/ OPC_MoveParent, ++/*426744*/ OPC_CheckChild1Same, 0, ++/*426746*/ OPC_MoveParent, ++/*426747*/ OPC_MoveChild1, ++/*426748*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*426751*/ OPC_CheckChild0Integer, 15, ++/*426753*/ OPC_CheckChild0Type, MVT::i32, ++/*426755*/ OPC_CheckChild1Integer, 15, ++/*426757*/ OPC_CheckChild1Type, MVT::i32, ++/*426759*/ OPC_CheckChild2Integer, 15, ++/*426761*/ OPC_CheckChild2Type, MVT::i32, ++/*426763*/ OPC_CheckChild3Integer, 15, ++/*426765*/ OPC_CheckChild3Type, MVT::i32, ++/*426767*/ OPC_CheckChild4Integer, 15, ++/*426769*/ OPC_CheckChild4Type, MVT::i32, ++/*426771*/ OPC_MoveChild5, ++/*426772*/ OPC_CheckInteger, 15, ++/*426774*/ OPC_CheckType, MVT::i32, ++/*426776*/ OPC_MoveParent, ++/*426777*/ OPC_MoveChild6, ++/*426778*/ OPC_CheckInteger, 15, ++/*426780*/ OPC_CheckType, MVT::i32, ++/*426782*/ OPC_MoveParent, ++/*426783*/ OPC_MoveChild7, ++/*426784*/ OPC_CheckInteger, 15, ++/*426786*/ OPC_CheckType, MVT::i32, ++/*426788*/ OPC_MoveParent, ++/*426789*/ OPC_CheckType, MVT::v8i16, ++/*426791*/ OPC_MoveParent, ++/*426792*/ OPC_MoveParent, ++/*426793*/ OPC_MoveParent, ++/*426794*/ OPC_MoveChild1, ++/*426795*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*426798*/ OPC_CheckChild0Integer, 1, ++/*426800*/ OPC_CheckChild0Type, MVT::i32, ++/*426802*/ OPC_CheckChild1Integer, 1, ++/*426804*/ OPC_CheckChild1Type, MVT::i32, ++/*426806*/ OPC_CheckChild2Integer, 1, ++/*426808*/ OPC_CheckChild2Type, MVT::i32, ++/*426810*/ OPC_CheckChild3Integer, 1, ++/*426812*/ OPC_CheckChild3Type, MVT::i32, ++/*426814*/ OPC_CheckChild4Integer, 1, ++/*426816*/ OPC_CheckChild4Type, MVT::i32, ++/*426818*/ OPC_MoveChild5, ++/*426819*/ OPC_CheckInteger, 1, ++/*426821*/ OPC_CheckType, MVT::i32, ++/*426823*/ OPC_MoveParent, ++/*426824*/ OPC_MoveChild6, ++/*426825*/ OPC_CheckInteger, 1, ++/*426827*/ OPC_CheckType, MVT::i32, ++/*426829*/ OPC_MoveParent, ++/*426830*/ OPC_MoveChild7, ++/*426831*/ OPC_CheckInteger, 1, ++/*426833*/ OPC_CheckType, MVT::i32, ++/*426835*/ OPC_MoveParent, ++/*426836*/ OPC_CheckType, MVT::v8i16, ++/*426838*/ OPC_MoveParent, ++/*426839*/ OPC_CheckType, MVT::v8i16, ++/*426841*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*426843*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b)), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b), LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*426851*/ /*Scope*/ 25|128,1/*153*/, /*->427006*/ ++/*426853*/ OPC_CheckChild0Same, 1, ++/*426855*/ OPC_MoveChild1, ++/*426856*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*426859*/ OPC_CheckChild0Integer, 1, ++/*426861*/ OPC_CheckChild0Type, MVT::i32, ++/*426863*/ OPC_CheckChild1Integer, 1, ++/*426865*/ OPC_CheckChild1Type, MVT::i32, ++/*426867*/ OPC_CheckChild2Integer, 1, ++/*426869*/ OPC_CheckChild2Type, MVT::i32, ++/*426871*/ OPC_CheckChild3Integer, 1, ++/*426873*/ OPC_CheckChild3Type, MVT::i32, ++/*426875*/ OPC_CheckChild4Integer, 1, ++/*426877*/ OPC_CheckChild4Type, MVT::i32, ++/*426879*/ OPC_MoveChild5, ++/*426880*/ OPC_CheckInteger, 1, ++/*426882*/ OPC_CheckType, MVT::i32, ++/*426884*/ OPC_MoveParent, ++/*426885*/ OPC_MoveChild6, ++/*426886*/ OPC_CheckInteger, 1, ++/*426888*/ OPC_CheckType, MVT::i32, ++/*426890*/ OPC_MoveParent, ++/*426891*/ OPC_MoveChild7, ++/*426892*/ OPC_CheckInteger, 1, ++/*426894*/ OPC_CheckType, MVT::i32, ++/*426896*/ OPC_MoveParent, ++/*426897*/ OPC_MoveParent, ++/*426898*/ OPC_MoveParent, ++/*426899*/ OPC_CheckChild1Same, 0, ++/*426901*/ OPC_MoveParent, ++/*426902*/ OPC_MoveChild1, ++/*426903*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*426906*/ OPC_CheckChild0Integer, 15, ++/*426908*/ OPC_CheckChild0Type, MVT::i32, ++/*426910*/ OPC_CheckChild1Integer, 15, ++/*426912*/ OPC_CheckChild1Type, MVT::i32, ++/*426914*/ OPC_CheckChild2Integer, 15, ++/*426916*/ OPC_CheckChild2Type, MVT::i32, ++/*426918*/ OPC_CheckChild3Integer, 15, ++/*426920*/ OPC_CheckChild3Type, MVT::i32, ++/*426922*/ OPC_CheckChild4Integer, 15, ++/*426924*/ OPC_CheckChild4Type, MVT::i32, ++/*426926*/ OPC_MoveChild5, ++/*426927*/ OPC_CheckInteger, 15, ++/*426929*/ OPC_CheckType, MVT::i32, ++/*426931*/ OPC_MoveParent, ++/*426932*/ OPC_MoveChild6, ++/*426933*/ OPC_CheckInteger, 15, ++/*426935*/ OPC_CheckType, MVT::i32, ++/*426937*/ OPC_MoveParent, ++/*426938*/ OPC_MoveChild7, ++/*426939*/ OPC_CheckInteger, 15, ++/*426941*/ OPC_CheckType, MVT::i32, ++/*426943*/ OPC_MoveParent, ++/*426944*/ OPC_CheckType, MVT::v8i16, ++/*426946*/ OPC_MoveParent, ++/*426947*/ OPC_MoveParent, ++/*426948*/ OPC_MoveParent, ++/*426949*/ OPC_MoveChild1, ++/*426950*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*426953*/ OPC_CheckChild0Integer, 1, ++/*426955*/ OPC_CheckChild0Type, MVT::i32, ++/*426957*/ OPC_CheckChild1Integer, 1, ++/*426959*/ OPC_CheckChild1Type, MVT::i32, ++/*426961*/ OPC_CheckChild2Integer, 1, ++/*426963*/ OPC_CheckChild2Type, MVT::i32, ++/*426965*/ OPC_CheckChild3Integer, 1, ++/*426967*/ OPC_CheckChild3Type, MVT::i32, ++/*426969*/ OPC_CheckChild4Integer, 1, ++/*426971*/ OPC_CheckChild4Type, MVT::i32, ++/*426973*/ OPC_MoveChild5, ++/*426974*/ OPC_CheckInteger, 1, ++/*426976*/ OPC_CheckType, MVT::i32, ++/*426978*/ OPC_MoveParent, ++/*426979*/ OPC_MoveChild6, ++/*426980*/ OPC_CheckInteger, 1, ++/*426982*/ OPC_CheckType, MVT::i32, ++/*426984*/ OPC_MoveParent, ++/*426985*/ OPC_MoveChild7, ++/*426986*/ OPC_CheckInteger, 1, ++/*426988*/ OPC_CheckType, MVT::i32, ++/*426990*/ OPC_MoveParent, ++/*426991*/ OPC_CheckType, MVT::v8i16, ++/*426993*/ OPC_MoveParent, ++/*426994*/ OPC_CheckType, MVT::v8i16, ++/*426996*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*426998*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b)), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*427006*/ /*Scope*/ 25|128,1/*153*/, /*->427161*/ ++/*427008*/ OPC_CheckChild0Same, 0, ++/*427010*/ OPC_CheckChild1Same, 1, ++/*427012*/ OPC_MoveParent, ++/*427013*/ OPC_MoveChild1, ++/*427014*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*427017*/ OPC_CheckChild0Integer, 1, ++/*427019*/ OPC_CheckChild0Type, MVT::i32, ++/*427021*/ OPC_CheckChild1Integer, 1, ++/*427023*/ OPC_CheckChild1Type, MVT::i32, ++/*427025*/ OPC_CheckChild2Integer, 1, ++/*427027*/ OPC_CheckChild2Type, MVT::i32, ++/*427029*/ OPC_CheckChild3Integer, 1, ++/*427031*/ OPC_CheckChild3Type, MVT::i32, ++/*427033*/ OPC_CheckChild4Integer, 1, ++/*427035*/ OPC_CheckChild4Type, MVT::i32, ++/*427037*/ OPC_MoveChild5, ++/*427038*/ OPC_CheckInteger, 1, ++/*427040*/ OPC_CheckType, MVT::i32, ++/*427042*/ OPC_MoveParent, ++/*427043*/ OPC_MoveChild6, ++/*427044*/ OPC_CheckInteger, 1, ++/*427046*/ OPC_CheckType, MVT::i32, ++/*427048*/ OPC_MoveParent, ++/*427049*/ OPC_MoveChild7, ++/*427050*/ OPC_CheckInteger, 1, ++/*427052*/ OPC_CheckType, MVT::i32, ++/*427054*/ OPC_MoveParent, ++/*427055*/ OPC_MoveParent, ++/*427056*/ OPC_MoveParent, ++/*427057*/ OPC_MoveChild1, ++/*427058*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*427061*/ OPC_CheckChild0Integer, 15, ++/*427063*/ OPC_CheckChild0Type, MVT::i32, ++/*427065*/ OPC_CheckChild1Integer, 15, ++/*427067*/ OPC_CheckChild1Type, MVT::i32, ++/*427069*/ OPC_CheckChild2Integer, 15, ++/*427071*/ OPC_CheckChild2Type, MVT::i32, ++/*427073*/ OPC_CheckChild3Integer, 15, ++/*427075*/ OPC_CheckChild3Type, MVT::i32, ++/*427077*/ OPC_CheckChild4Integer, 15, ++/*427079*/ OPC_CheckChild4Type, MVT::i32, ++/*427081*/ OPC_MoveChild5, ++/*427082*/ OPC_CheckInteger, 15, ++/*427084*/ OPC_CheckType, MVT::i32, ++/*427086*/ OPC_MoveParent, ++/*427087*/ OPC_MoveChild6, ++/*427088*/ OPC_CheckInteger, 15, ++/*427090*/ OPC_CheckType, MVT::i32, ++/*427092*/ OPC_MoveParent, ++/*427093*/ OPC_MoveChild7, ++/*427094*/ OPC_CheckInteger, 15, ++/*427096*/ OPC_CheckType, MVT::i32, ++/*427098*/ OPC_MoveParent, ++/*427099*/ OPC_CheckType, MVT::v8i16, ++/*427101*/ OPC_MoveParent, ++/*427102*/ OPC_MoveParent, ++/*427103*/ OPC_MoveParent, ++/*427104*/ OPC_MoveChild1, ++/*427105*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*427108*/ OPC_CheckChild0Integer, 1, ++/*427110*/ OPC_CheckChild0Type, MVT::i32, ++/*427112*/ OPC_CheckChild1Integer, 1, ++/*427114*/ OPC_CheckChild1Type, MVT::i32, ++/*427116*/ OPC_CheckChild2Integer, 1, ++/*427118*/ OPC_CheckChild2Type, MVT::i32, ++/*427120*/ OPC_CheckChild3Integer, 1, ++/*427122*/ OPC_CheckChild3Type, MVT::i32, ++/*427124*/ OPC_CheckChild4Integer, 1, ++/*427126*/ OPC_CheckChild4Type, MVT::i32, ++/*427128*/ OPC_MoveChild5, ++/*427129*/ OPC_CheckInteger, 1, ++/*427131*/ OPC_CheckType, MVT::i32, ++/*427133*/ OPC_MoveParent, ++/*427134*/ OPC_MoveChild6, ++/*427135*/ OPC_CheckInteger, 1, ++/*427137*/ OPC_CheckType, MVT::i32, ++/*427139*/ OPC_MoveParent, ++/*427140*/ OPC_MoveChild7, ++/*427141*/ OPC_CheckInteger, 1, ++/*427143*/ OPC_CheckType, MVT::i32, ++/*427145*/ OPC_MoveParent, ++/*427146*/ OPC_CheckType, MVT::v8i16, ++/*427148*/ OPC_MoveParent, ++/*427149*/ OPC_CheckType, MVT::v8i16, ++/*427151*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*427153*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b)), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*427161*/ /*Scope*/ 25|128,1/*153*/, /*->427316*/ ++/*427163*/ OPC_CheckChild0Same, 1, ++/*427165*/ OPC_CheckChild1Same, 0, ++/*427167*/ OPC_MoveParent, ++/*427168*/ OPC_MoveChild1, ++/*427169*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*427172*/ OPC_CheckChild0Integer, 1, ++/*427174*/ OPC_CheckChild0Type, MVT::i32, ++/*427176*/ OPC_CheckChild1Integer, 1, ++/*427178*/ OPC_CheckChild1Type, MVT::i32, ++/*427180*/ OPC_CheckChild2Integer, 1, ++/*427182*/ OPC_CheckChild2Type, MVT::i32, ++/*427184*/ OPC_CheckChild3Integer, 1, ++/*427186*/ OPC_CheckChild3Type, MVT::i32, ++/*427188*/ OPC_CheckChild4Integer, 1, ++/*427190*/ OPC_CheckChild4Type, MVT::i32, ++/*427192*/ OPC_MoveChild5, ++/*427193*/ OPC_CheckInteger, 1, ++/*427195*/ OPC_CheckType, MVT::i32, ++/*427197*/ OPC_MoveParent, ++/*427198*/ OPC_MoveChild6, ++/*427199*/ OPC_CheckInteger, 1, ++/*427201*/ OPC_CheckType, MVT::i32, ++/*427203*/ OPC_MoveParent, ++/*427204*/ OPC_MoveChild7, ++/*427205*/ OPC_CheckInteger, 1, ++/*427207*/ OPC_CheckType, MVT::i32, ++/*427209*/ OPC_MoveParent, ++/*427210*/ OPC_MoveParent, ++/*427211*/ OPC_MoveParent, ++/*427212*/ OPC_MoveChild1, ++/*427213*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*427216*/ OPC_CheckChild0Integer, 15, ++/*427218*/ OPC_CheckChild0Type, MVT::i32, ++/*427220*/ OPC_CheckChild1Integer, 15, ++/*427222*/ OPC_CheckChild1Type, MVT::i32, ++/*427224*/ OPC_CheckChild2Integer, 15, ++/*427226*/ OPC_CheckChild2Type, MVT::i32, ++/*427228*/ OPC_CheckChild3Integer, 15, ++/*427230*/ OPC_CheckChild3Type, MVT::i32, ++/*427232*/ OPC_CheckChild4Integer, 15, ++/*427234*/ OPC_CheckChild4Type, MVT::i32, ++/*427236*/ OPC_MoveChild5, ++/*427237*/ OPC_CheckInteger, 15, ++/*427239*/ OPC_CheckType, MVT::i32, ++/*427241*/ OPC_MoveParent, ++/*427242*/ OPC_MoveChild6, ++/*427243*/ OPC_CheckInteger, 15, ++/*427245*/ OPC_CheckType, MVT::i32, ++/*427247*/ OPC_MoveParent, ++/*427248*/ OPC_MoveChild7, ++/*427249*/ OPC_CheckInteger, 15, ++/*427251*/ OPC_CheckType, MVT::i32, ++/*427253*/ OPC_MoveParent, ++/*427254*/ OPC_CheckType, MVT::v8i16, ++/*427256*/ OPC_MoveParent, ++/*427257*/ OPC_MoveParent, ++/*427258*/ OPC_MoveParent, ++/*427259*/ OPC_MoveChild1, ++/*427260*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*427263*/ OPC_CheckChild0Integer, 1, ++/*427265*/ OPC_CheckChild0Type, MVT::i32, ++/*427267*/ OPC_CheckChild1Integer, 1, ++/*427269*/ OPC_CheckChild1Type, MVT::i32, ++/*427271*/ OPC_CheckChild2Integer, 1, ++/*427273*/ OPC_CheckChild2Type, MVT::i32, ++/*427275*/ OPC_CheckChild3Integer, 1, ++/*427277*/ OPC_CheckChild3Type, MVT::i32, ++/*427279*/ OPC_CheckChild4Integer, 1, ++/*427281*/ OPC_CheckChild4Type, MVT::i32, ++/*427283*/ OPC_MoveChild5, ++/*427284*/ OPC_CheckInteger, 1, ++/*427286*/ OPC_CheckType, MVT::i32, ++/*427288*/ OPC_MoveParent, ++/*427289*/ OPC_MoveChild6, ++/*427290*/ OPC_CheckInteger, 1, ++/*427292*/ OPC_CheckType, MVT::i32, ++/*427294*/ OPC_MoveParent, ++/*427295*/ OPC_MoveChild7, ++/*427296*/ OPC_CheckInteger, 1, ++/*427298*/ OPC_CheckType, MVT::i32, ++/*427300*/ OPC_MoveParent, ++/*427301*/ OPC_CheckType, MVT::v8i16, ++/*427303*/ OPC_MoveParent, ++/*427304*/ OPC_CheckType, MVT::v8i16, ++/*427306*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*427308*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b)), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*427316*/ 0, /*End of Scope*/ ++/*427317*/ /*Scope*/ 58|128,2/*314*/, /*->427633*/ ++/*427319*/ OPC_CheckChild0Same, 1, ++/*427321*/ OPC_MoveChild1, ++/*427322*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*427325*/ OPC_Scope, 23|128,1/*151*/, /*->427479*/ // 2 children in Scope ++/*427328*/ OPC_MoveChild0, ++/*427329*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*427332*/ OPC_CheckChild0Integer, 1, ++/*427334*/ OPC_CheckChild0Type, MVT::i32, ++/*427336*/ OPC_CheckChild1Integer, 1, ++/*427338*/ OPC_CheckChild1Type, MVT::i32, ++/*427340*/ OPC_CheckChild2Integer, 1, ++/*427342*/ OPC_CheckChild2Type, MVT::i32, ++/*427344*/ OPC_CheckChild3Integer, 1, ++/*427346*/ OPC_CheckChild3Type, MVT::i32, ++/*427348*/ OPC_CheckChild4Integer, 1, ++/*427350*/ OPC_CheckChild4Type, MVT::i32, ++/*427352*/ OPC_MoveChild5, ++/*427353*/ OPC_CheckInteger, 1, ++/*427355*/ OPC_CheckType, MVT::i32, ++/*427357*/ OPC_MoveParent, ++/*427358*/ OPC_MoveChild6, ++/*427359*/ OPC_CheckInteger, 1, ++/*427361*/ OPC_CheckType, MVT::i32, ++/*427363*/ OPC_MoveParent, ++/*427364*/ OPC_MoveChild7, ++/*427365*/ OPC_CheckInteger, 1, ++/*427367*/ OPC_CheckType, MVT::i32, ++/*427369*/ OPC_MoveParent, ++/*427370*/ OPC_MoveParent, ++/*427371*/ OPC_CheckChild1Same, 0, ++/*427373*/ OPC_MoveParent, ++/*427374*/ OPC_MoveParent, ++/*427375*/ OPC_MoveChild1, ++/*427376*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*427379*/ OPC_CheckChild0Integer, 15, ++/*427381*/ OPC_CheckChild0Type, MVT::i32, ++/*427383*/ OPC_CheckChild1Integer, 15, ++/*427385*/ OPC_CheckChild1Type, MVT::i32, ++/*427387*/ OPC_CheckChild2Integer, 15, ++/*427389*/ OPC_CheckChild2Type, MVT::i32, ++/*427391*/ OPC_CheckChild3Integer, 15, ++/*427393*/ OPC_CheckChild3Type, MVT::i32, ++/*427395*/ OPC_CheckChild4Integer, 15, ++/*427397*/ OPC_CheckChild4Type, MVT::i32, ++/*427399*/ OPC_MoveChild5, ++/*427400*/ OPC_CheckInteger, 15, ++/*427402*/ OPC_CheckType, MVT::i32, ++/*427404*/ OPC_MoveParent, ++/*427405*/ OPC_MoveChild6, ++/*427406*/ OPC_CheckInteger, 15, ++/*427408*/ OPC_CheckType, MVT::i32, ++/*427410*/ OPC_MoveParent, ++/*427411*/ OPC_MoveChild7, ++/*427412*/ OPC_CheckInteger, 15, ++/*427414*/ OPC_CheckType, MVT::i32, ++/*427416*/ OPC_MoveParent, ++/*427417*/ OPC_CheckType, MVT::v8i16, ++/*427419*/ OPC_MoveParent, ++/*427420*/ OPC_MoveParent, ++/*427421*/ OPC_MoveParent, ++/*427422*/ OPC_MoveChild1, ++/*427423*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*427426*/ OPC_CheckChild0Integer, 1, ++/*427428*/ OPC_CheckChild0Type, MVT::i32, ++/*427430*/ OPC_CheckChild1Integer, 1, ++/*427432*/ OPC_CheckChild1Type, MVT::i32, ++/*427434*/ OPC_CheckChild2Integer, 1, ++/*427436*/ OPC_CheckChild2Type, MVT::i32, ++/*427438*/ OPC_CheckChild3Integer, 1, ++/*427440*/ OPC_CheckChild3Type, MVT::i32, ++/*427442*/ OPC_CheckChild4Integer, 1, ++/*427444*/ OPC_CheckChild4Type, MVT::i32, ++/*427446*/ OPC_MoveChild5, ++/*427447*/ OPC_CheckInteger, 1, ++/*427449*/ OPC_CheckType, MVT::i32, ++/*427451*/ OPC_MoveParent, ++/*427452*/ OPC_MoveChild6, ++/*427453*/ OPC_CheckInteger, 1, ++/*427455*/ OPC_CheckType, MVT::i32, ++/*427457*/ OPC_MoveParent, ++/*427458*/ OPC_MoveChild7, ++/*427459*/ OPC_CheckInteger, 1, ++/*427461*/ OPC_CheckType, MVT::i32, ++/*427463*/ OPC_MoveParent, ++/*427464*/ OPC_CheckType, MVT::v8i16, ++/*427466*/ OPC_MoveParent, ++/*427467*/ OPC_CheckType, MVT::v8i16, ++/*427469*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*427471*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b)), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*427479*/ /*Scope*/ 23|128,1/*151*/, /*->427632*/ ++/*427481*/ OPC_CheckChild0Same, 0, ++/*427483*/ OPC_MoveChild1, ++/*427484*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*427487*/ OPC_CheckChild0Integer, 1, ++/*427489*/ OPC_CheckChild0Type, MVT::i32, ++/*427491*/ OPC_CheckChild1Integer, 1, ++/*427493*/ OPC_CheckChild1Type, MVT::i32, ++/*427495*/ OPC_CheckChild2Integer, 1, ++/*427497*/ OPC_CheckChild2Type, MVT::i32, ++/*427499*/ OPC_CheckChild3Integer, 1, ++/*427501*/ OPC_CheckChild3Type, MVT::i32, ++/*427503*/ OPC_CheckChild4Integer, 1, ++/*427505*/ OPC_CheckChild4Type, MVT::i32, ++/*427507*/ OPC_MoveChild5, ++/*427508*/ OPC_CheckInteger, 1, ++/*427510*/ OPC_CheckType, MVT::i32, ++/*427512*/ OPC_MoveParent, ++/*427513*/ OPC_MoveChild6, ++/*427514*/ OPC_CheckInteger, 1, ++/*427516*/ OPC_CheckType, MVT::i32, ++/*427518*/ OPC_MoveParent, ++/*427519*/ OPC_MoveChild7, ++/*427520*/ OPC_CheckInteger, 1, ++/*427522*/ OPC_CheckType, MVT::i32, ++/*427524*/ OPC_MoveParent, ++/*427525*/ OPC_MoveParent, ++/*427526*/ OPC_MoveParent, ++/*427527*/ OPC_MoveParent, ++/*427528*/ OPC_MoveChild1, ++/*427529*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*427532*/ OPC_CheckChild0Integer, 15, ++/*427534*/ OPC_CheckChild0Type, MVT::i32, ++/*427536*/ OPC_CheckChild1Integer, 15, ++/*427538*/ OPC_CheckChild1Type, MVT::i32, ++/*427540*/ OPC_CheckChild2Integer, 15, ++/*427542*/ OPC_CheckChild2Type, MVT::i32, ++/*427544*/ OPC_CheckChild3Integer, 15, ++/*427546*/ OPC_CheckChild3Type, MVT::i32, ++/*427548*/ OPC_CheckChild4Integer, 15, ++/*427550*/ OPC_CheckChild4Type, MVT::i32, ++/*427552*/ OPC_MoveChild5, ++/*427553*/ OPC_CheckInteger, 15, ++/*427555*/ OPC_CheckType, MVT::i32, ++/*427557*/ OPC_MoveParent, ++/*427558*/ OPC_MoveChild6, ++/*427559*/ OPC_CheckInteger, 15, ++/*427561*/ OPC_CheckType, MVT::i32, ++/*427563*/ OPC_MoveParent, ++/*427564*/ OPC_MoveChild7, ++/*427565*/ OPC_CheckInteger, 15, ++/*427567*/ OPC_CheckType, MVT::i32, ++/*427569*/ OPC_MoveParent, ++/*427570*/ OPC_CheckType, MVT::v8i16, ++/*427572*/ OPC_MoveParent, ++/*427573*/ OPC_MoveParent, ++/*427574*/ OPC_MoveParent, ++/*427575*/ OPC_MoveChild1, ++/*427576*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*427579*/ OPC_CheckChild0Integer, 1, ++/*427581*/ OPC_CheckChild0Type, MVT::i32, ++/*427583*/ OPC_CheckChild1Integer, 1, ++/*427585*/ OPC_CheckChild1Type, MVT::i32, ++/*427587*/ OPC_CheckChild2Integer, 1, ++/*427589*/ OPC_CheckChild2Type, MVT::i32, ++/*427591*/ OPC_CheckChild3Integer, 1, ++/*427593*/ OPC_CheckChild3Type, MVT::i32, ++/*427595*/ OPC_CheckChild4Integer, 1, ++/*427597*/ OPC_CheckChild4Type, MVT::i32, ++/*427599*/ OPC_MoveChild5, ++/*427600*/ OPC_CheckInteger, 1, ++/*427602*/ OPC_CheckType, MVT::i32, ++/*427604*/ OPC_MoveParent, ++/*427605*/ OPC_MoveChild6, ++/*427606*/ OPC_CheckInteger, 1, ++/*427608*/ OPC_CheckType, MVT::i32, ++/*427610*/ OPC_MoveParent, ++/*427611*/ OPC_MoveChild7, ++/*427612*/ OPC_CheckInteger, 1, ++/*427614*/ OPC_CheckType, MVT::i32, ++/*427616*/ OPC_MoveParent, ++/*427617*/ OPC_CheckType, MVT::v8i16, ++/*427619*/ OPC_MoveParent, ++/*427620*/ OPC_CheckType, MVT::v8i16, ++/*427622*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*427624*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b)), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*427632*/ 0, /*End of Scope*/ ++/*427633*/ /*Scope*/ 58|128,2/*314*/, /*->427949*/ ++/*427635*/ OPC_CheckChild0Same, 0, ++/*427637*/ OPC_MoveChild1, ++/*427638*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*427641*/ OPC_Scope, 23|128,1/*151*/, /*->427795*/ // 2 children in Scope ++/*427644*/ OPC_MoveChild0, ++/*427645*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*427648*/ OPC_CheckChild0Integer, 1, ++/*427650*/ OPC_CheckChild0Type, MVT::i32, ++/*427652*/ OPC_CheckChild1Integer, 1, ++/*427654*/ OPC_CheckChild1Type, MVT::i32, ++/*427656*/ OPC_CheckChild2Integer, 1, ++/*427658*/ OPC_CheckChild2Type, MVT::i32, ++/*427660*/ OPC_CheckChild3Integer, 1, ++/*427662*/ OPC_CheckChild3Type, MVT::i32, ++/*427664*/ OPC_CheckChild4Integer, 1, ++/*427666*/ OPC_CheckChild4Type, MVT::i32, ++/*427668*/ OPC_MoveChild5, ++/*427669*/ OPC_CheckInteger, 1, ++/*427671*/ OPC_CheckType, MVT::i32, ++/*427673*/ OPC_MoveParent, ++/*427674*/ OPC_MoveChild6, ++/*427675*/ OPC_CheckInteger, 1, ++/*427677*/ OPC_CheckType, MVT::i32, ++/*427679*/ OPC_MoveParent, ++/*427680*/ OPC_MoveChild7, ++/*427681*/ OPC_CheckInteger, 1, ++/*427683*/ OPC_CheckType, MVT::i32, ++/*427685*/ OPC_MoveParent, ++/*427686*/ OPC_MoveParent, ++/*427687*/ OPC_CheckChild1Same, 1, ++/*427689*/ OPC_MoveParent, ++/*427690*/ OPC_MoveParent, ++/*427691*/ OPC_MoveChild1, ++/*427692*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*427695*/ OPC_CheckChild0Integer, 15, ++/*427697*/ OPC_CheckChild0Type, MVT::i32, ++/*427699*/ OPC_CheckChild1Integer, 15, ++/*427701*/ OPC_CheckChild1Type, MVT::i32, ++/*427703*/ OPC_CheckChild2Integer, 15, ++/*427705*/ OPC_CheckChild2Type, MVT::i32, ++/*427707*/ OPC_CheckChild3Integer, 15, ++/*427709*/ OPC_CheckChild3Type, MVT::i32, ++/*427711*/ OPC_CheckChild4Integer, 15, ++/*427713*/ OPC_CheckChild4Type, MVT::i32, ++/*427715*/ OPC_MoveChild5, ++/*427716*/ OPC_CheckInteger, 15, ++/*427718*/ OPC_CheckType, MVT::i32, ++/*427720*/ OPC_MoveParent, ++/*427721*/ OPC_MoveChild6, ++/*427722*/ OPC_CheckInteger, 15, ++/*427724*/ OPC_CheckType, MVT::i32, ++/*427726*/ OPC_MoveParent, ++/*427727*/ OPC_MoveChild7, ++/*427728*/ OPC_CheckInteger, 15, ++/*427730*/ OPC_CheckType, MVT::i32, ++/*427732*/ OPC_MoveParent, ++/*427733*/ OPC_CheckType, MVT::v8i16, ++/*427735*/ OPC_MoveParent, ++/*427736*/ OPC_MoveParent, ++/*427737*/ OPC_MoveParent, ++/*427738*/ OPC_MoveChild1, ++/*427739*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*427742*/ OPC_CheckChild0Integer, 1, ++/*427744*/ OPC_CheckChild0Type, MVT::i32, ++/*427746*/ OPC_CheckChild1Integer, 1, ++/*427748*/ OPC_CheckChild1Type, MVT::i32, ++/*427750*/ OPC_CheckChild2Integer, 1, ++/*427752*/ OPC_CheckChild2Type, MVT::i32, ++/*427754*/ OPC_CheckChild3Integer, 1, ++/*427756*/ OPC_CheckChild3Type, MVT::i32, ++/*427758*/ OPC_CheckChild4Integer, 1, ++/*427760*/ OPC_CheckChild4Type, MVT::i32, ++/*427762*/ OPC_MoveChild5, ++/*427763*/ OPC_CheckInteger, 1, ++/*427765*/ OPC_CheckType, MVT::i32, ++/*427767*/ OPC_MoveParent, ++/*427768*/ OPC_MoveChild6, ++/*427769*/ OPC_CheckInteger, 1, ++/*427771*/ OPC_CheckType, MVT::i32, ++/*427773*/ OPC_MoveParent, ++/*427774*/ OPC_MoveChild7, ++/*427775*/ OPC_CheckInteger, 1, ++/*427777*/ OPC_CheckType, MVT::i32, ++/*427779*/ OPC_MoveParent, ++/*427780*/ OPC_CheckType, MVT::v8i16, ++/*427782*/ OPC_MoveParent, ++/*427783*/ OPC_CheckType, MVT::v8i16, ++/*427785*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*427787*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b)), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*427795*/ /*Scope*/ 23|128,1/*151*/, /*->427948*/ ++/*427797*/ OPC_CheckChild0Same, 1, ++/*427799*/ OPC_MoveChild1, ++/*427800*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*427803*/ OPC_CheckChild0Integer, 1, ++/*427805*/ OPC_CheckChild0Type, MVT::i32, ++/*427807*/ OPC_CheckChild1Integer, 1, ++/*427809*/ OPC_CheckChild1Type, MVT::i32, ++/*427811*/ OPC_CheckChild2Integer, 1, ++/*427813*/ OPC_CheckChild2Type, MVT::i32, ++/*427815*/ OPC_CheckChild3Integer, 1, ++/*427817*/ OPC_CheckChild3Type, MVT::i32, ++/*427819*/ OPC_CheckChild4Integer, 1, ++/*427821*/ OPC_CheckChild4Type, MVT::i32, ++/*427823*/ OPC_MoveChild5, ++/*427824*/ OPC_CheckInteger, 1, ++/*427826*/ OPC_CheckType, MVT::i32, ++/*427828*/ OPC_MoveParent, ++/*427829*/ OPC_MoveChild6, ++/*427830*/ OPC_CheckInteger, 1, ++/*427832*/ OPC_CheckType, MVT::i32, ++/*427834*/ OPC_MoveParent, ++/*427835*/ OPC_MoveChild7, ++/*427836*/ OPC_CheckInteger, 1, ++/*427838*/ OPC_CheckType, MVT::i32, ++/*427840*/ OPC_MoveParent, ++/*427841*/ OPC_MoveParent, ++/*427842*/ OPC_MoveParent, ++/*427843*/ OPC_MoveParent, ++/*427844*/ OPC_MoveChild1, ++/*427845*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*427848*/ OPC_CheckChild0Integer, 15, ++/*427850*/ OPC_CheckChild0Type, MVT::i32, ++/*427852*/ OPC_CheckChild1Integer, 15, ++/*427854*/ OPC_CheckChild1Type, MVT::i32, ++/*427856*/ OPC_CheckChild2Integer, 15, ++/*427858*/ OPC_CheckChild2Type, MVT::i32, ++/*427860*/ OPC_CheckChild3Integer, 15, ++/*427862*/ OPC_CheckChild3Type, MVT::i32, ++/*427864*/ OPC_CheckChild4Integer, 15, ++/*427866*/ OPC_CheckChild4Type, MVT::i32, ++/*427868*/ OPC_MoveChild5, ++/*427869*/ OPC_CheckInteger, 15, ++/*427871*/ OPC_CheckType, MVT::i32, ++/*427873*/ OPC_MoveParent, ++/*427874*/ OPC_MoveChild6, ++/*427875*/ OPC_CheckInteger, 15, ++/*427877*/ OPC_CheckType, MVT::i32, ++/*427879*/ OPC_MoveParent, ++/*427880*/ OPC_MoveChild7, ++/*427881*/ OPC_CheckInteger, 15, ++/*427883*/ OPC_CheckType, MVT::i32, ++/*427885*/ OPC_MoveParent, ++/*427886*/ OPC_CheckType, MVT::v8i16, ++/*427888*/ OPC_MoveParent, ++/*427889*/ OPC_MoveParent, ++/*427890*/ OPC_MoveParent, ++/*427891*/ OPC_MoveChild1, ++/*427892*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*427895*/ OPC_CheckChild0Integer, 1, ++/*427897*/ OPC_CheckChild0Type, MVT::i32, ++/*427899*/ OPC_CheckChild1Integer, 1, ++/*427901*/ OPC_CheckChild1Type, MVT::i32, ++/*427903*/ OPC_CheckChild2Integer, 1, ++/*427905*/ OPC_CheckChild2Type, MVT::i32, ++/*427907*/ OPC_CheckChild3Integer, 1, ++/*427909*/ OPC_CheckChild3Type, MVT::i32, ++/*427911*/ OPC_CheckChild4Integer, 1, ++/*427913*/ OPC_CheckChild4Type, MVT::i32, ++/*427915*/ OPC_MoveChild5, ++/*427916*/ OPC_CheckInteger, 1, ++/*427918*/ OPC_CheckType, MVT::i32, ++/*427920*/ OPC_MoveParent, ++/*427921*/ OPC_MoveChild6, ++/*427922*/ OPC_CheckInteger, 1, ++/*427924*/ OPC_CheckType, MVT::i32, ++/*427926*/ OPC_MoveParent, ++/*427927*/ OPC_MoveChild7, ++/*427928*/ OPC_CheckInteger, 1, ++/*427930*/ OPC_CheckType, MVT::i32, ++/*427932*/ OPC_MoveParent, ++/*427933*/ OPC_CheckType, MVT::v8i16, ++/*427935*/ OPC_MoveParent, ++/*427936*/ OPC_CheckType, MVT::v8i16, ++/*427938*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*427940*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b)), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*427948*/ 0, /*End of Scope*/ ++/*427949*/ /*Scope*/ 15|128,2/*271*/, /*->428222*/ ++/*427951*/ OPC_MoveChild0, ++/*427952*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*427955*/ OPC_CheckChild0Integer, 1, ++/*427957*/ OPC_CheckChild0Type, MVT::i32, ++/*427959*/ OPC_CheckChild1Integer, 1, ++/*427961*/ OPC_CheckChild1Type, MVT::i32, ++/*427963*/ OPC_CheckChild2Integer, 1, ++/*427965*/ OPC_CheckChild2Type, MVT::i32, ++/*427967*/ OPC_CheckChild3Integer, 1, ++/*427969*/ OPC_CheckChild3Type, MVT::i32, ++/*427971*/ OPC_CheckChild4Integer, 1, ++/*427973*/ OPC_CheckChild4Type, MVT::i32, ++/*427975*/ OPC_MoveChild5, ++/*427976*/ OPC_CheckInteger, 1, ++/*427978*/ OPC_CheckType, MVT::i32, ++/*427980*/ OPC_MoveParent, ++/*427981*/ OPC_MoveChild6, ++/*427982*/ OPC_CheckInteger, 1, ++/*427984*/ OPC_CheckType, MVT::i32, ++/*427986*/ OPC_MoveParent, ++/*427987*/ OPC_MoveChild7, ++/*427988*/ OPC_CheckInteger, 1, ++/*427990*/ OPC_CheckType, MVT::i32, ++/*427992*/ OPC_MoveParent, ++/*427993*/ OPC_MoveParent, ++/*427994*/ OPC_MoveChild1, ++/*427995*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*427998*/ OPC_Scope, 110, /*->428110*/ // 2 children in Scope ++/*428000*/ OPC_CheckChild0Same, 0, ++/*428002*/ OPC_CheckChild1Same, 1, ++/*428004*/ OPC_MoveParent, ++/*428005*/ OPC_MoveParent, ++/*428006*/ OPC_MoveChild1, ++/*428007*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*428010*/ OPC_CheckChild0Integer, 15, ++/*428012*/ OPC_CheckChild0Type, MVT::i32, ++/*428014*/ OPC_CheckChild1Integer, 15, ++/*428016*/ OPC_CheckChild1Type, MVT::i32, ++/*428018*/ OPC_CheckChild2Integer, 15, ++/*428020*/ OPC_CheckChild2Type, MVT::i32, ++/*428022*/ OPC_CheckChild3Integer, 15, ++/*428024*/ OPC_CheckChild3Type, MVT::i32, ++/*428026*/ OPC_CheckChild4Integer, 15, ++/*428028*/ OPC_CheckChild4Type, MVT::i32, ++/*428030*/ OPC_MoveChild5, ++/*428031*/ OPC_CheckInteger, 15, ++/*428033*/ OPC_CheckType, MVT::i32, ++/*428035*/ OPC_MoveParent, ++/*428036*/ OPC_MoveChild6, ++/*428037*/ OPC_CheckInteger, 15, ++/*428039*/ OPC_CheckType, MVT::i32, ++/*428041*/ OPC_MoveParent, ++/*428042*/ OPC_MoveChild7, ++/*428043*/ OPC_CheckInteger, 15, ++/*428045*/ OPC_CheckType, MVT::i32, ++/*428047*/ OPC_MoveParent, ++/*428048*/ OPC_CheckType, MVT::v8i16, ++/*428050*/ OPC_MoveParent, ++/*428051*/ OPC_MoveParent, ++/*428052*/ OPC_MoveParent, ++/*428053*/ OPC_MoveChild1, ++/*428054*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*428057*/ OPC_CheckChild0Integer, 1, ++/*428059*/ OPC_CheckChild0Type, MVT::i32, ++/*428061*/ OPC_CheckChild1Integer, 1, ++/*428063*/ OPC_CheckChild1Type, MVT::i32, ++/*428065*/ OPC_CheckChild2Integer, 1, ++/*428067*/ OPC_CheckChild2Type, MVT::i32, ++/*428069*/ OPC_CheckChild3Integer, 1, ++/*428071*/ OPC_CheckChild3Type, MVT::i32, ++/*428073*/ OPC_CheckChild4Integer, 1, ++/*428075*/ OPC_CheckChild4Type, MVT::i32, ++/*428077*/ OPC_MoveChild5, ++/*428078*/ OPC_CheckInteger, 1, ++/*428080*/ OPC_CheckType, MVT::i32, ++/*428082*/ OPC_MoveParent, ++/*428083*/ OPC_MoveChild6, ++/*428084*/ OPC_CheckInteger, 1, ++/*428086*/ OPC_CheckType, MVT::i32, ++/*428088*/ OPC_MoveParent, ++/*428089*/ OPC_MoveChild7, ++/*428090*/ OPC_CheckInteger, 1, ++/*428092*/ OPC_CheckType, MVT::i32, ++/*428094*/ OPC_MoveParent, ++/*428095*/ OPC_CheckType, MVT::v8i16, ++/*428097*/ OPC_MoveParent, ++/*428098*/ OPC_CheckType, MVT::v8i16, ++/*428100*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*428102*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b)), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*428110*/ /*Scope*/ 110, /*->428221*/ ++/*428111*/ OPC_CheckChild0Same, 1, ++/*428113*/ OPC_CheckChild1Same, 0, ++/*428115*/ OPC_MoveParent, ++/*428116*/ OPC_MoveParent, ++/*428117*/ OPC_MoveChild1, ++/*428118*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*428121*/ OPC_CheckChild0Integer, 15, ++/*428123*/ OPC_CheckChild0Type, MVT::i32, ++/*428125*/ OPC_CheckChild1Integer, 15, ++/*428127*/ OPC_CheckChild1Type, MVT::i32, ++/*428129*/ OPC_CheckChild2Integer, 15, ++/*428131*/ OPC_CheckChild2Type, MVT::i32, ++/*428133*/ OPC_CheckChild3Integer, 15, ++/*428135*/ OPC_CheckChild3Type, MVT::i32, ++/*428137*/ OPC_CheckChild4Integer, 15, ++/*428139*/ OPC_CheckChild4Type, MVT::i32, ++/*428141*/ OPC_MoveChild5, ++/*428142*/ OPC_CheckInteger, 15, ++/*428144*/ OPC_CheckType, MVT::i32, ++/*428146*/ OPC_MoveParent, ++/*428147*/ OPC_MoveChild6, ++/*428148*/ OPC_CheckInteger, 15, ++/*428150*/ OPC_CheckType, MVT::i32, ++/*428152*/ OPC_MoveParent, ++/*428153*/ OPC_MoveChild7, ++/*428154*/ OPC_CheckInteger, 15, ++/*428156*/ OPC_CheckType, MVT::i32, ++/*428158*/ OPC_MoveParent, ++/*428159*/ OPC_CheckType, MVT::v8i16, ++/*428161*/ OPC_MoveParent, ++/*428162*/ OPC_MoveParent, ++/*428163*/ OPC_MoveParent, ++/*428164*/ OPC_MoveChild1, ++/*428165*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*428168*/ OPC_CheckChild0Integer, 1, ++/*428170*/ OPC_CheckChild0Type, MVT::i32, ++/*428172*/ OPC_CheckChild1Integer, 1, ++/*428174*/ OPC_CheckChild1Type, MVT::i32, ++/*428176*/ OPC_CheckChild2Integer, 1, ++/*428178*/ OPC_CheckChild2Type, MVT::i32, ++/*428180*/ OPC_CheckChild3Integer, 1, ++/*428182*/ OPC_CheckChild3Type, MVT::i32, ++/*428184*/ OPC_CheckChild4Integer, 1, ++/*428186*/ OPC_CheckChild4Type, MVT::i32, ++/*428188*/ OPC_MoveChild5, ++/*428189*/ OPC_CheckInteger, 1, ++/*428191*/ OPC_CheckType, MVT::i32, ++/*428193*/ OPC_MoveParent, ++/*428194*/ OPC_MoveChild6, ++/*428195*/ OPC_CheckInteger, 1, ++/*428197*/ OPC_CheckType, MVT::i32, ++/*428199*/ OPC_MoveParent, ++/*428200*/ OPC_MoveChild7, ++/*428201*/ OPC_CheckInteger, 1, ++/*428203*/ OPC_CheckType, MVT::i32, ++/*428205*/ OPC_MoveParent, ++/*428206*/ OPC_CheckType, MVT::v8i16, ++/*428208*/ OPC_MoveParent, ++/*428209*/ OPC_CheckType, MVT::v8i16, ++/*428211*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*428213*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b)), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*428221*/ 0, /*End of Scope*/ ++/*428222*/ 0, /*End of Scope*/ ++/*428223*/ /*Scope*/ 107|128,14/*1899*/, /*->430124*/ ++/*428225*/ OPC_RecordChild0, // #1 = $b ++/*428226*/ OPC_MoveChild1, ++/*428227*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*428230*/ OPC_CheckChild0Integer, 1, ++/*428232*/ OPC_CheckChild0Type, MVT::i32, ++/*428234*/ OPC_CheckChild1Integer, 1, ++/*428236*/ OPC_CheckChild1Type, MVT::i32, ++/*428238*/ OPC_CheckChild2Integer, 1, ++/*428240*/ OPC_CheckChild2Type, MVT::i32, ++/*428242*/ OPC_CheckChild3Integer, 1, ++/*428244*/ OPC_CheckChild3Type, MVT::i32, ++/*428246*/ OPC_CheckChild4Integer, 1, ++/*428248*/ OPC_CheckChild4Type, MVT::i32, ++/*428250*/ OPC_MoveChild5, ++/*428251*/ OPC_CheckInteger, 1, ++/*428253*/ OPC_CheckType, MVT::i32, ++/*428255*/ OPC_MoveParent, ++/*428256*/ OPC_MoveChild6, ++/*428257*/ OPC_CheckInteger, 1, ++/*428259*/ OPC_CheckType, MVT::i32, ++/*428261*/ OPC_MoveParent, ++/*428262*/ OPC_MoveChild7, ++/*428263*/ OPC_CheckInteger, 1, ++/*428265*/ OPC_CheckType, MVT::i32, ++/*428267*/ OPC_MoveParent, ++/*428268*/ OPC_MoveParent, ++/*428269*/ OPC_MoveParent, ++/*428270*/ OPC_MoveParent, ++/*428271*/ OPC_MoveChild1, ++/*428272*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*428275*/ OPC_MoveChild0, ++/*428276*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*428279*/ OPC_Scope, 40|128,7/*936*/, /*->429218*/ // 4 children in Scope ++/*428282*/ OPC_MoveChild0, ++/*428283*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*428286*/ OPC_Scope, 25|128,1/*153*/, /*->428442*/ // 6 children in Scope ++/*428289*/ OPC_MoveChild0, ++/*428290*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*428293*/ OPC_CheckChild0Integer, 1, ++/*428295*/ OPC_CheckChild0Type, MVT::i32, ++/*428297*/ OPC_CheckChild1Integer, 1, ++/*428299*/ OPC_CheckChild1Type, MVT::i32, ++/*428301*/ OPC_CheckChild2Integer, 1, ++/*428303*/ OPC_CheckChild2Type, MVT::i32, ++/*428305*/ OPC_CheckChild3Integer, 1, ++/*428307*/ OPC_CheckChild3Type, MVT::i32, ++/*428309*/ OPC_CheckChild4Integer, 1, ++/*428311*/ OPC_CheckChild4Type, MVT::i32, ++/*428313*/ OPC_MoveChild5, ++/*428314*/ OPC_CheckInteger, 1, ++/*428316*/ OPC_CheckType, MVT::i32, ++/*428318*/ OPC_MoveParent, ++/*428319*/ OPC_MoveChild6, ++/*428320*/ OPC_CheckInteger, 1, ++/*428322*/ OPC_CheckType, MVT::i32, ++/*428324*/ OPC_MoveParent, ++/*428325*/ OPC_MoveChild7, ++/*428326*/ OPC_CheckInteger, 1, ++/*428328*/ OPC_CheckType, MVT::i32, ++/*428330*/ OPC_MoveParent, ++/*428331*/ OPC_MoveParent, ++/*428332*/ OPC_CheckChild1Same, 0, ++/*428334*/ OPC_MoveParent, ++/*428335*/ OPC_CheckChild1Same, 1, ++/*428337*/ OPC_MoveParent, ++/*428338*/ OPC_MoveChild1, ++/*428339*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*428342*/ OPC_CheckChild0Integer, 15, ++/*428344*/ OPC_CheckChild0Type, MVT::i32, ++/*428346*/ OPC_CheckChild1Integer, 15, ++/*428348*/ OPC_CheckChild1Type, MVT::i32, ++/*428350*/ OPC_CheckChild2Integer, 15, ++/*428352*/ OPC_CheckChild2Type, MVT::i32, ++/*428354*/ OPC_CheckChild3Integer, 15, ++/*428356*/ OPC_CheckChild3Type, MVT::i32, ++/*428358*/ OPC_CheckChild4Integer, 15, ++/*428360*/ OPC_CheckChild4Type, MVT::i32, ++/*428362*/ OPC_MoveChild5, ++/*428363*/ OPC_CheckInteger, 15, ++/*428365*/ OPC_CheckType, MVT::i32, ++/*428367*/ OPC_MoveParent, ++/*428368*/ OPC_MoveChild6, ++/*428369*/ OPC_CheckInteger, 15, ++/*428371*/ OPC_CheckType, MVT::i32, ++/*428373*/ OPC_MoveParent, ++/*428374*/ OPC_MoveChild7, ++/*428375*/ OPC_CheckInteger, 15, ++/*428377*/ OPC_CheckType, MVT::i32, ++/*428379*/ OPC_MoveParent, ++/*428380*/ OPC_CheckType, MVT::v8i16, ++/*428382*/ OPC_MoveParent, ++/*428383*/ OPC_MoveParent, ++/*428384*/ OPC_MoveParent, ++/*428385*/ OPC_MoveChild1, ++/*428386*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*428389*/ OPC_CheckChild0Integer, 1, ++/*428391*/ OPC_CheckChild0Type, MVT::i32, ++/*428393*/ OPC_CheckChild1Integer, 1, ++/*428395*/ OPC_CheckChild1Type, MVT::i32, ++/*428397*/ OPC_CheckChild2Integer, 1, ++/*428399*/ OPC_CheckChild2Type, MVT::i32, ++/*428401*/ OPC_CheckChild3Integer, 1, ++/*428403*/ OPC_CheckChild3Type, MVT::i32, ++/*428405*/ OPC_CheckChild4Integer, 1, ++/*428407*/ OPC_CheckChild4Type, MVT::i32, ++/*428409*/ OPC_MoveChild5, ++/*428410*/ OPC_CheckInteger, 1, ++/*428412*/ OPC_CheckType, MVT::i32, ++/*428414*/ OPC_MoveParent, ++/*428415*/ OPC_MoveChild6, ++/*428416*/ OPC_CheckInteger, 1, ++/*428418*/ OPC_CheckType, MVT::i32, ++/*428420*/ OPC_MoveParent, ++/*428421*/ OPC_MoveChild7, ++/*428422*/ OPC_CheckInteger, 1, ++/*428424*/ OPC_CheckType, MVT::i32, ++/*428426*/ OPC_MoveParent, ++/*428427*/ OPC_CheckType, MVT::v8i16, ++/*428429*/ OPC_MoveParent, ++/*428430*/ OPC_CheckType, MVT::v8i16, ++/*428432*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*428434*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a), LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*428442*/ /*Scope*/ 25|128,1/*153*/, /*->428597*/ ++/*428444*/ OPC_CheckChild0Same, 0, ++/*428446*/ OPC_MoveChild1, ++/*428447*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*428450*/ OPC_CheckChild0Integer, 1, ++/*428452*/ OPC_CheckChild0Type, MVT::i32, ++/*428454*/ OPC_CheckChild1Integer, 1, ++/*428456*/ OPC_CheckChild1Type, MVT::i32, ++/*428458*/ OPC_CheckChild2Integer, 1, ++/*428460*/ OPC_CheckChild2Type, MVT::i32, ++/*428462*/ OPC_CheckChild3Integer, 1, ++/*428464*/ OPC_CheckChild3Type, MVT::i32, ++/*428466*/ OPC_CheckChild4Integer, 1, ++/*428468*/ OPC_CheckChild4Type, MVT::i32, ++/*428470*/ OPC_MoveChild5, ++/*428471*/ OPC_CheckInteger, 1, ++/*428473*/ OPC_CheckType, MVT::i32, ++/*428475*/ OPC_MoveParent, ++/*428476*/ OPC_MoveChild6, ++/*428477*/ OPC_CheckInteger, 1, ++/*428479*/ OPC_CheckType, MVT::i32, ++/*428481*/ OPC_MoveParent, ++/*428482*/ OPC_MoveChild7, ++/*428483*/ OPC_CheckInteger, 1, ++/*428485*/ OPC_CheckType, MVT::i32, ++/*428487*/ OPC_MoveParent, ++/*428488*/ OPC_MoveParent, ++/*428489*/ OPC_MoveParent, ++/*428490*/ OPC_CheckChild1Same, 1, ++/*428492*/ OPC_MoveParent, ++/*428493*/ OPC_MoveChild1, ++/*428494*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*428497*/ OPC_CheckChild0Integer, 15, ++/*428499*/ OPC_CheckChild0Type, MVT::i32, ++/*428501*/ OPC_CheckChild1Integer, 15, ++/*428503*/ OPC_CheckChild1Type, MVT::i32, ++/*428505*/ OPC_CheckChild2Integer, 15, ++/*428507*/ OPC_CheckChild2Type, MVT::i32, ++/*428509*/ OPC_CheckChild3Integer, 15, ++/*428511*/ OPC_CheckChild3Type, MVT::i32, ++/*428513*/ OPC_CheckChild4Integer, 15, ++/*428515*/ OPC_CheckChild4Type, MVT::i32, ++/*428517*/ OPC_MoveChild5, ++/*428518*/ OPC_CheckInteger, 15, ++/*428520*/ OPC_CheckType, MVT::i32, ++/*428522*/ OPC_MoveParent, ++/*428523*/ OPC_MoveChild6, ++/*428524*/ OPC_CheckInteger, 15, ++/*428526*/ OPC_CheckType, MVT::i32, ++/*428528*/ OPC_MoveParent, ++/*428529*/ OPC_MoveChild7, ++/*428530*/ OPC_CheckInteger, 15, ++/*428532*/ OPC_CheckType, MVT::i32, ++/*428534*/ OPC_MoveParent, ++/*428535*/ OPC_CheckType, MVT::v8i16, ++/*428537*/ OPC_MoveParent, ++/*428538*/ OPC_MoveParent, ++/*428539*/ OPC_MoveParent, ++/*428540*/ OPC_MoveChild1, ++/*428541*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*428544*/ OPC_CheckChild0Integer, 1, ++/*428546*/ OPC_CheckChild0Type, MVT::i32, ++/*428548*/ OPC_CheckChild1Integer, 1, ++/*428550*/ OPC_CheckChild1Type, MVT::i32, ++/*428552*/ OPC_CheckChild2Integer, 1, ++/*428554*/ OPC_CheckChild2Type, MVT::i32, ++/*428556*/ OPC_CheckChild3Integer, 1, ++/*428558*/ OPC_CheckChild3Type, MVT::i32, ++/*428560*/ OPC_CheckChild4Integer, 1, ++/*428562*/ OPC_CheckChild4Type, MVT::i32, ++/*428564*/ OPC_MoveChild5, ++/*428565*/ OPC_CheckInteger, 1, ++/*428567*/ OPC_CheckType, MVT::i32, ++/*428569*/ OPC_MoveParent, ++/*428570*/ OPC_MoveChild6, ++/*428571*/ OPC_CheckInteger, 1, ++/*428573*/ OPC_CheckType, MVT::i32, ++/*428575*/ OPC_MoveParent, ++/*428576*/ OPC_MoveChild7, ++/*428577*/ OPC_CheckInteger, 1, ++/*428579*/ OPC_CheckType, MVT::i32, ++/*428581*/ OPC_MoveParent, ++/*428582*/ OPC_CheckType, MVT::v8i16, ++/*428584*/ OPC_MoveParent, ++/*428585*/ OPC_CheckType, MVT::v8i16, ++/*428587*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*428589*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*428597*/ /*Scope*/ 25|128,1/*153*/, /*->428752*/ ++/*428599*/ OPC_MoveChild0, ++/*428600*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*428603*/ OPC_CheckChild0Integer, 1, ++/*428605*/ OPC_CheckChild0Type, MVT::i32, ++/*428607*/ OPC_CheckChild1Integer, 1, ++/*428609*/ OPC_CheckChild1Type, MVT::i32, ++/*428611*/ OPC_CheckChild2Integer, 1, ++/*428613*/ OPC_CheckChild2Type, MVT::i32, ++/*428615*/ OPC_CheckChild3Integer, 1, ++/*428617*/ OPC_CheckChild3Type, MVT::i32, ++/*428619*/ OPC_CheckChild4Integer, 1, ++/*428621*/ OPC_CheckChild4Type, MVT::i32, ++/*428623*/ OPC_MoveChild5, ++/*428624*/ OPC_CheckInteger, 1, ++/*428626*/ OPC_CheckType, MVT::i32, ++/*428628*/ OPC_MoveParent, ++/*428629*/ OPC_MoveChild6, ++/*428630*/ OPC_CheckInteger, 1, ++/*428632*/ OPC_CheckType, MVT::i32, ++/*428634*/ OPC_MoveParent, ++/*428635*/ OPC_MoveChild7, ++/*428636*/ OPC_CheckInteger, 1, ++/*428638*/ OPC_CheckType, MVT::i32, ++/*428640*/ OPC_MoveParent, ++/*428641*/ OPC_MoveParent, ++/*428642*/ OPC_CheckChild1Same, 1, ++/*428644*/ OPC_MoveParent, ++/*428645*/ OPC_CheckChild1Same, 0, ++/*428647*/ OPC_MoveParent, ++/*428648*/ OPC_MoveChild1, ++/*428649*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*428652*/ OPC_CheckChild0Integer, 15, ++/*428654*/ OPC_CheckChild0Type, MVT::i32, ++/*428656*/ OPC_CheckChild1Integer, 15, ++/*428658*/ OPC_CheckChild1Type, MVT::i32, ++/*428660*/ OPC_CheckChild2Integer, 15, ++/*428662*/ OPC_CheckChild2Type, MVT::i32, ++/*428664*/ OPC_CheckChild3Integer, 15, ++/*428666*/ OPC_CheckChild3Type, MVT::i32, ++/*428668*/ OPC_CheckChild4Integer, 15, ++/*428670*/ OPC_CheckChild4Type, MVT::i32, ++/*428672*/ OPC_MoveChild5, ++/*428673*/ OPC_CheckInteger, 15, ++/*428675*/ OPC_CheckType, MVT::i32, ++/*428677*/ OPC_MoveParent, ++/*428678*/ OPC_MoveChild6, ++/*428679*/ OPC_CheckInteger, 15, ++/*428681*/ OPC_CheckType, MVT::i32, ++/*428683*/ OPC_MoveParent, ++/*428684*/ OPC_MoveChild7, ++/*428685*/ OPC_CheckInteger, 15, ++/*428687*/ OPC_CheckType, MVT::i32, ++/*428689*/ OPC_MoveParent, ++/*428690*/ OPC_CheckType, MVT::v8i16, ++/*428692*/ OPC_MoveParent, ++/*428693*/ OPC_MoveParent, ++/*428694*/ OPC_MoveParent, ++/*428695*/ OPC_MoveChild1, ++/*428696*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*428699*/ OPC_CheckChild0Integer, 1, ++/*428701*/ OPC_CheckChild0Type, MVT::i32, ++/*428703*/ OPC_CheckChild1Integer, 1, ++/*428705*/ OPC_CheckChild1Type, MVT::i32, ++/*428707*/ OPC_CheckChild2Integer, 1, ++/*428709*/ OPC_CheckChild2Type, MVT::i32, ++/*428711*/ OPC_CheckChild3Integer, 1, ++/*428713*/ OPC_CheckChild3Type, MVT::i32, ++/*428715*/ OPC_CheckChild4Integer, 1, ++/*428717*/ OPC_CheckChild4Type, MVT::i32, ++/*428719*/ OPC_MoveChild5, ++/*428720*/ OPC_CheckInteger, 1, ++/*428722*/ OPC_CheckType, MVT::i32, ++/*428724*/ OPC_MoveParent, ++/*428725*/ OPC_MoveChild6, ++/*428726*/ OPC_CheckInteger, 1, ++/*428728*/ OPC_CheckType, MVT::i32, ++/*428730*/ OPC_MoveParent, ++/*428731*/ OPC_MoveChild7, ++/*428732*/ OPC_CheckInteger, 1, ++/*428734*/ OPC_CheckType, MVT::i32, ++/*428736*/ OPC_MoveParent, ++/*428737*/ OPC_CheckType, MVT::v8i16, ++/*428739*/ OPC_MoveParent, ++/*428740*/ OPC_CheckType, MVT::v8i16, ++/*428742*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*428744*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b), LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*428752*/ /*Scope*/ 25|128,1/*153*/, /*->428907*/ ++/*428754*/ OPC_CheckChild0Same, 1, ++/*428756*/ OPC_MoveChild1, ++/*428757*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*428760*/ OPC_CheckChild0Integer, 1, ++/*428762*/ OPC_CheckChild0Type, MVT::i32, ++/*428764*/ OPC_CheckChild1Integer, 1, ++/*428766*/ OPC_CheckChild1Type, MVT::i32, ++/*428768*/ OPC_CheckChild2Integer, 1, ++/*428770*/ OPC_CheckChild2Type, MVT::i32, ++/*428772*/ OPC_CheckChild3Integer, 1, ++/*428774*/ OPC_CheckChild3Type, MVT::i32, ++/*428776*/ OPC_CheckChild4Integer, 1, ++/*428778*/ OPC_CheckChild4Type, MVT::i32, ++/*428780*/ OPC_MoveChild5, ++/*428781*/ OPC_CheckInteger, 1, ++/*428783*/ OPC_CheckType, MVT::i32, ++/*428785*/ OPC_MoveParent, ++/*428786*/ OPC_MoveChild6, ++/*428787*/ OPC_CheckInteger, 1, ++/*428789*/ OPC_CheckType, MVT::i32, ++/*428791*/ OPC_MoveParent, ++/*428792*/ OPC_MoveChild7, ++/*428793*/ OPC_CheckInteger, 1, ++/*428795*/ OPC_CheckType, MVT::i32, ++/*428797*/ OPC_MoveParent, ++/*428798*/ OPC_MoveParent, ++/*428799*/ OPC_MoveParent, ++/*428800*/ OPC_CheckChild1Same, 0, ++/*428802*/ OPC_MoveParent, ++/*428803*/ OPC_MoveChild1, ++/*428804*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*428807*/ OPC_CheckChild0Integer, 15, ++/*428809*/ OPC_CheckChild0Type, MVT::i32, ++/*428811*/ OPC_CheckChild1Integer, 15, ++/*428813*/ OPC_CheckChild1Type, MVT::i32, ++/*428815*/ OPC_CheckChild2Integer, 15, ++/*428817*/ OPC_CheckChild2Type, MVT::i32, ++/*428819*/ OPC_CheckChild3Integer, 15, ++/*428821*/ OPC_CheckChild3Type, MVT::i32, ++/*428823*/ OPC_CheckChild4Integer, 15, ++/*428825*/ OPC_CheckChild4Type, MVT::i32, ++/*428827*/ OPC_MoveChild5, ++/*428828*/ OPC_CheckInteger, 15, ++/*428830*/ OPC_CheckType, MVT::i32, ++/*428832*/ OPC_MoveParent, ++/*428833*/ OPC_MoveChild6, ++/*428834*/ OPC_CheckInteger, 15, ++/*428836*/ OPC_CheckType, MVT::i32, ++/*428838*/ OPC_MoveParent, ++/*428839*/ OPC_MoveChild7, ++/*428840*/ OPC_CheckInteger, 15, ++/*428842*/ OPC_CheckType, MVT::i32, ++/*428844*/ OPC_MoveParent, ++/*428845*/ OPC_CheckType, MVT::v8i16, ++/*428847*/ OPC_MoveParent, ++/*428848*/ OPC_MoveParent, ++/*428849*/ OPC_MoveParent, ++/*428850*/ OPC_MoveChild1, ++/*428851*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*428854*/ OPC_CheckChild0Integer, 1, ++/*428856*/ OPC_CheckChild0Type, MVT::i32, ++/*428858*/ OPC_CheckChild1Integer, 1, ++/*428860*/ OPC_CheckChild1Type, MVT::i32, ++/*428862*/ OPC_CheckChild2Integer, 1, ++/*428864*/ OPC_CheckChild2Type, MVT::i32, ++/*428866*/ OPC_CheckChild3Integer, 1, ++/*428868*/ OPC_CheckChild3Type, MVT::i32, ++/*428870*/ OPC_CheckChild4Integer, 1, ++/*428872*/ OPC_CheckChild4Type, MVT::i32, ++/*428874*/ OPC_MoveChild5, ++/*428875*/ OPC_CheckInteger, 1, ++/*428877*/ OPC_CheckType, MVT::i32, ++/*428879*/ OPC_MoveParent, ++/*428880*/ OPC_MoveChild6, ++/*428881*/ OPC_CheckInteger, 1, ++/*428883*/ OPC_CheckType, MVT::i32, ++/*428885*/ OPC_MoveParent, ++/*428886*/ OPC_MoveChild7, ++/*428887*/ OPC_CheckInteger, 1, ++/*428889*/ OPC_CheckType, MVT::i32, ++/*428891*/ OPC_MoveParent, ++/*428892*/ OPC_CheckType, MVT::v8i16, ++/*428894*/ OPC_MoveParent, ++/*428895*/ OPC_CheckType, MVT::v8i16, ++/*428897*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*428899*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*428907*/ /*Scope*/ 25|128,1/*153*/, /*->429062*/ ++/*428909*/ OPC_CheckChild0Same, 0, ++/*428911*/ OPC_CheckChild1Same, 1, ++/*428913*/ OPC_MoveParent, ++/*428914*/ OPC_MoveChild1, ++/*428915*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*428918*/ OPC_CheckChild0Integer, 1, ++/*428920*/ OPC_CheckChild0Type, MVT::i32, ++/*428922*/ OPC_CheckChild1Integer, 1, ++/*428924*/ OPC_CheckChild1Type, MVT::i32, ++/*428926*/ OPC_CheckChild2Integer, 1, ++/*428928*/ OPC_CheckChild2Type, MVT::i32, ++/*428930*/ OPC_CheckChild3Integer, 1, ++/*428932*/ OPC_CheckChild3Type, MVT::i32, ++/*428934*/ OPC_CheckChild4Integer, 1, ++/*428936*/ OPC_CheckChild4Type, MVT::i32, ++/*428938*/ OPC_MoveChild5, ++/*428939*/ OPC_CheckInteger, 1, ++/*428941*/ OPC_CheckType, MVT::i32, ++/*428943*/ OPC_MoveParent, ++/*428944*/ OPC_MoveChild6, ++/*428945*/ OPC_CheckInteger, 1, ++/*428947*/ OPC_CheckType, MVT::i32, ++/*428949*/ OPC_MoveParent, ++/*428950*/ OPC_MoveChild7, ++/*428951*/ OPC_CheckInteger, 1, ++/*428953*/ OPC_CheckType, MVT::i32, ++/*428955*/ OPC_MoveParent, ++/*428956*/ OPC_MoveParent, ++/*428957*/ OPC_MoveParent, ++/*428958*/ OPC_MoveChild1, ++/*428959*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*428962*/ OPC_CheckChild0Integer, 15, ++/*428964*/ OPC_CheckChild0Type, MVT::i32, ++/*428966*/ OPC_CheckChild1Integer, 15, ++/*428968*/ OPC_CheckChild1Type, MVT::i32, ++/*428970*/ OPC_CheckChild2Integer, 15, ++/*428972*/ OPC_CheckChild2Type, MVT::i32, ++/*428974*/ OPC_CheckChild3Integer, 15, ++/*428976*/ OPC_CheckChild3Type, MVT::i32, ++/*428978*/ OPC_CheckChild4Integer, 15, ++/*428980*/ OPC_CheckChild4Type, MVT::i32, ++/*428982*/ OPC_MoveChild5, ++/*428983*/ OPC_CheckInteger, 15, ++/*428985*/ OPC_CheckType, MVT::i32, ++/*428987*/ OPC_MoveParent, ++/*428988*/ OPC_MoveChild6, ++/*428989*/ OPC_CheckInteger, 15, ++/*428991*/ OPC_CheckType, MVT::i32, ++/*428993*/ OPC_MoveParent, ++/*428994*/ OPC_MoveChild7, ++/*428995*/ OPC_CheckInteger, 15, ++/*428997*/ OPC_CheckType, MVT::i32, ++/*428999*/ OPC_MoveParent, ++/*429000*/ OPC_CheckType, MVT::v8i16, ++/*429002*/ OPC_MoveParent, ++/*429003*/ OPC_MoveParent, ++/*429004*/ OPC_MoveParent, ++/*429005*/ OPC_MoveChild1, ++/*429006*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*429009*/ OPC_CheckChild0Integer, 1, ++/*429011*/ OPC_CheckChild0Type, MVT::i32, ++/*429013*/ OPC_CheckChild1Integer, 1, ++/*429015*/ OPC_CheckChild1Type, MVT::i32, ++/*429017*/ OPC_CheckChild2Integer, 1, ++/*429019*/ OPC_CheckChild2Type, MVT::i32, ++/*429021*/ OPC_CheckChild3Integer, 1, ++/*429023*/ OPC_CheckChild3Type, MVT::i32, ++/*429025*/ OPC_CheckChild4Integer, 1, ++/*429027*/ OPC_CheckChild4Type, MVT::i32, ++/*429029*/ OPC_MoveChild5, ++/*429030*/ OPC_CheckInteger, 1, ++/*429032*/ OPC_CheckType, MVT::i32, ++/*429034*/ OPC_MoveParent, ++/*429035*/ OPC_MoveChild6, ++/*429036*/ OPC_CheckInteger, 1, ++/*429038*/ OPC_CheckType, MVT::i32, ++/*429040*/ OPC_MoveParent, ++/*429041*/ OPC_MoveChild7, ++/*429042*/ OPC_CheckInteger, 1, ++/*429044*/ OPC_CheckType, MVT::i32, ++/*429046*/ OPC_MoveParent, ++/*429047*/ OPC_CheckType, MVT::v8i16, ++/*429049*/ OPC_MoveParent, ++/*429050*/ OPC_CheckType, MVT::v8i16, ++/*429052*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*429054*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*429062*/ /*Scope*/ 25|128,1/*153*/, /*->429217*/ ++/*429064*/ OPC_CheckChild0Same, 1, ++/*429066*/ OPC_CheckChild1Same, 0, ++/*429068*/ OPC_MoveParent, ++/*429069*/ OPC_MoveChild1, ++/*429070*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*429073*/ OPC_CheckChild0Integer, 1, ++/*429075*/ OPC_CheckChild0Type, MVT::i32, ++/*429077*/ OPC_CheckChild1Integer, 1, ++/*429079*/ OPC_CheckChild1Type, MVT::i32, ++/*429081*/ OPC_CheckChild2Integer, 1, ++/*429083*/ OPC_CheckChild2Type, MVT::i32, ++/*429085*/ OPC_CheckChild3Integer, 1, ++/*429087*/ OPC_CheckChild3Type, MVT::i32, ++/*429089*/ OPC_CheckChild4Integer, 1, ++/*429091*/ OPC_CheckChild4Type, MVT::i32, ++/*429093*/ OPC_MoveChild5, ++/*429094*/ OPC_CheckInteger, 1, ++/*429096*/ OPC_CheckType, MVT::i32, ++/*429098*/ OPC_MoveParent, ++/*429099*/ OPC_MoveChild6, ++/*429100*/ OPC_CheckInteger, 1, ++/*429102*/ OPC_CheckType, MVT::i32, ++/*429104*/ OPC_MoveParent, ++/*429105*/ OPC_MoveChild7, ++/*429106*/ OPC_CheckInteger, 1, ++/*429108*/ OPC_CheckType, MVT::i32, ++/*429110*/ OPC_MoveParent, ++/*429111*/ OPC_MoveParent, ++/*429112*/ OPC_MoveParent, ++/*429113*/ OPC_MoveChild1, ++/*429114*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*429117*/ OPC_CheckChild0Integer, 15, ++/*429119*/ OPC_CheckChild0Type, MVT::i32, ++/*429121*/ OPC_CheckChild1Integer, 15, ++/*429123*/ OPC_CheckChild1Type, MVT::i32, ++/*429125*/ OPC_CheckChild2Integer, 15, ++/*429127*/ OPC_CheckChild2Type, MVT::i32, ++/*429129*/ OPC_CheckChild3Integer, 15, ++/*429131*/ OPC_CheckChild3Type, MVT::i32, ++/*429133*/ OPC_CheckChild4Integer, 15, ++/*429135*/ OPC_CheckChild4Type, MVT::i32, ++/*429137*/ OPC_MoveChild5, ++/*429138*/ OPC_CheckInteger, 15, ++/*429140*/ OPC_CheckType, MVT::i32, ++/*429142*/ OPC_MoveParent, ++/*429143*/ OPC_MoveChild6, ++/*429144*/ OPC_CheckInteger, 15, ++/*429146*/ OPC_CheckType, MVT::i32, ++/*429148*/ OPC_MoveParent, ++/*429149*/ OPC_MoveChild7, ++/*429150*/ OPC_CheckInteger, 15, ++/*429152*/ OPC_CheckType, MVT::i32, ++/*429154*/ OPC_MoveParent, ++/*429155*/ OPC_CheckType, MVT::v8i16, ++/*429157*/ OPC_MoveParent, ++/*429158*/ OPC_MoveParent, ++/*429159*/ OPC_MoveParent, ++/*429160*/ OPC_MoveChild1, ++/*429161*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*429164*/ OPC_CheckChild0Integer, 1, ++/*429166*/ OPC_CheckChild0Type, MVT::i32, ++/*429168*/ OPC_CheckChild1Integer, 1, ++/*429170*/ OPC_CheckChild1Type, MVT::i32, ++/*429172*/ OPC_CheckChild2Integer, 1, ++/*429174*/ OPC_CheckChild2Type, MVT::i32, ++/*429176*/ OPC_CheckChild3Integer, 1, ++/*429178*/ OPC_CheckChild3Type, MVT::i32, ++/*429180*/ OPC_CheckChild4Integer, 1, ++/*429182*/ OPC_CheckChild4Type, MVT::i32, ++/*429184*/ OPC_MoveChild5, ++/*429185*/ OPC_CheckInteger, 1, ++/*429187*/ OPC_CheckType, MVT::i32, ++/*429189*/ OPC_MoveParent, ++/*429190*/ OPC_MoveChild6, ++/*429191*/ OPC_CheckInteger, 1, ++/*429193*/ OPC_CheckType, MVT::i32, ++/*429195*/ OPC_MoveParent, ++/*429196*/ OPC_MoveChild7, ++/*429197*/ OPC_CheckInteger, 1, ++/*429199*/ OPC_CheckType, MVT::i32, ++/*429201*/ OPC_MoveParent, ++/*429202*/ OPC_CheckType, MVT::v8i16, ++/*429204*/ OPC_MoveParent, ++/*429205*/ OPC_CheckType, MVT::v8i16, ++/*429207*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*429209*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*429217*/ 0, /*End of Scope*/ ++/*429218*/ /*Scope*/ 58|128,2/*314*/, /*->429534*/ ++/*429220*/ OPC_CheckChild0Same, 1, ++/*429222*/ OPC_MoveChild1, ++/*429223*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*429226*/ OPC_Scope, 23|128,1/*151*/, /*->429380*/ // 2 children in Scope ++/*429229*/ OPC_MoveChild0, ++/*429230*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*429233*/ OPC_CheckChild0Integer, 1, ++/*429235*/ OPC_CheckChild0Type, MVT::i32, ++/*429237*/ OPC_CheckChild1Integer, 1, ++/*429239*/ OPC_CheckChild1Type, MVT::i32, ++/*429241*/ OPC_CheckChild2Integer, 1, ++/*429243*/ OPC_CheckChild2Type, MVT::i32, ++/*429245*/ OPC_CheckChild3Integer, 1, ++/*429247*/ OPC_CheckChild3Type, MVT::i32, ++/*429249*/ OPC_CheckChild4Integer, 1, ++/*429251*/ OPC_CheckChild4Type, MVT::i32, ++/*429253*/ OPC_MoveChild5, ++/*429254*/ OPC_CheckInteger, 1, ++/*429256*/ OPC_CheckType, MVT::i32, ++/*429258*/ OPC_MoveParent, ++/*429259*/ OPC_MoveChild6, ++/*429260*/ OPC_CheckInteger, 1, ++/*429262*/ OPC_CheckType, MVT::i32, ++/*429264*/ OPC_MoveParent, ++/*429265*/ OPC_MoveChild7, ++/*429266*/ OPC_CheckInteger, 1, ++/*429268*/ OPC_CheckType, MVT::i32, ++/*429270*/ OPC_MoveParent, ++/*429271*/ OPC_MoveParent, ++/*429272*/ OPC_CheckChild1Same, 0, ++/*429274*/ OPC_MoveParent, ++/*429275*/ OPC_MoveParent, ++/*429276*/ OPC_MoveChild1, ++/*429277*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*429280*/ OPC_CheckChild0Integer, 15, ++/*429282*/ OPC_CheckChild0Type, MVT::i32, ++/*429284*/ OPC_CheckChild1Integer, 15, ++/*429286*/ OPC_CheckChild1Type, MVT::i32, ++/*429288*/ OPC_CheckChild2Integer, 15, ++/*429290*/ OPC_CheckChild2Type, MVT::i32, ++/*429292*/ OPC_CheckChild3Integer, 15, ++/*429294*/ OPC_CheckChild3Type, MVT::i32, ++/*429296*/ OPC_CheckChild4Integer, 15, ++/*429298*/ OPC_CheckChild4Type, MVT::i32, ++/*429300*/ OPC_MoveChild5, ++/*429301*/ OPC_CheckInteger, 15, ++/*429303*/ OPC_CheckType, MVT::i32, ++/*429305*/ OPC_MoveParent, ++/*429306*/ OPC_MoveChild6, ++/*429307*/ OPC_CheckInteger, 15, ++/*429309*/ OPC_CheckType, MVT::i32, ++/*429311*/ OPC_MoveParent, ++/*429312*/ OPC_MoveChild7, ++/*429313*/ OPC_CheckInteger, 15, ++/*429315*/ OPC_CheckType, MVT::i32, ++/*429317*/ OPC_MoveParent, ++/*429318*/ OPC_CheckType, MVT::v8i16, ++/*429320*/ OPC_MoveParent, ++/*429321*/ OPC_MoveParent, ++/*429322*/ OPC_MoveParent, ++/*429323*/ OPC_MoveChild1, ++/*429324*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*429327*/ OPC_CheckChild0Integer, 1, ++/*429329*/ OPC_CheckChild0Type, MVT::i32, ++/*429331*/ OPC_CheckChild1Integer, 1, ++/*429333*/ OPC_CheckChild1Type, MVT::i32, ++/*429335*/ OPC_CheckChild2Integer, 1, ++/*429337*/ OPC_CheckChild2Type, MVT::i32, ++/*429339*/ OPC_CheckChild3Integer, 1, ++/*429341*/ OPC_CheckChild3Type, MVT::i32, ++/*429343*/ OPC_CheckChild4Integer, 1, ++/*429345*/ OPC_CheckChild4Type, MVT::i32, ++/*429347*/ OPC_MoveChild5, ++/*429348*/ OPC_CheckInteger, 1, ++/*429350*/ OPC_CheckType, MVT::i32, ++/*429352*/ OPC_MoveParent, ++/*429353*/ OPC_MoveChild6, ++/*429354*/ OPC_CheckInteger, 1, ++/*429356*/ OPC_CheckType, MVT::i32, ++/*429358*/ OPC_MoveParent, ++/*429359*/ OPC_MoveChild7, ++/*429360*/ OPC_CheckInteger, 1, ++/*429362*/ OPC_CheckType, MVT::i32, ++/*429364*/ OPC_MoveParent, ++/*429365*/ OPC_CheckType, MVT::v8i16, ++/*429367*/ OPC_MoveParent, ++/*429368*/ OPC_CheckType, MVT::v8i16, ++/*429370*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*429372*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*429380*/ /*Scope*/ 23|128,1/*151*/, /*->429533*/ ++/*429382*/ OPC_CheckChild0Same, 0, ++/*429384*/ OPC_MoveChild1, ++/*429385*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*429388*/ OPC_CheckChild0Integer, 1, ++/*429390*/ OPC_CheckChild0Type, MVT::i32, ++/*429392*/ OPC_CheckChild1Integer, 1, ++/*429394*/ OPC_CheckChild1Type, MVT::i32, ++/*429396*/ OPC_CheckChild2Integer, 1, ++/*429398*/ OPC_CheckChild2Type, MVT::i32, ++/*429400*/ OPC_CheckChild3Integer, 1, ++/*429402*/ OPC_CheckChild3Type, MVT::i32, ++/*429404*/ OPC_CheckChild4Integer, 1, ++/*429406*/ OPC_CheckChild4Type, MVT::i32, ++/*429408*/ OPC_MoveChild5, ++/*429409*/ OPC_CheckInteger, 1, ++/*429411*/ OPC_CheckType, MVT::i32, ++/*429413*/ OPC_MoveParent, ++/*429414*/ OPC_MoveChild6, ++/*429415*/ OPC_CheckInteger, 1, ++/*429417*/ OPC_CheckType, MVT::i32, ++/*429419*/ OPC_MoveParent, ++/*429420*/ OPC_MoveChild7, ++/*429421*/ OPC_CheckInteger, 1, ++/*429423*/ OPC_CheckType, MVT::i32, ++/*429425*/ OPC_MoveParent, ++/*429426*/ OPC_MoveParent, ++/*429427*/ OPC_MoveParent, ++/*429428*/ OPC_MoveParent, ++/*429429*/ OPC_MoveChild1, ++/*429430*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*429433*/ OPC_CheckChild0Integer, 15, ++/*429435*/ OPC_CheckChild0Type, MVT::i32, ++/*429437*/ OPC_CheckChild1Integer, 15, ++/*429439*/ OPC_CheckChild1Type, MVT::i32, ++/*429441*/ OPC_CheckChild2Integer, 15, ++/*429443*/ OPC_CheckChild2Type, MVT::i32, ++/*429445*/ OPC_CheckChild3Integer, 15, ++/*429447*/ OPC_CheckChild3Type, MVT::i32, ++/*429449*/ OPC_CheckChild4Integer, 15, ++/*429451*/ OPC_CheckChild4Type, MVT::i32, ++/*429453*/ OPC_MoveChild5, ++/*429454*/ OPC_CheckInteger, 15, ++/*429456*/ OPC_CheckType, MVT::i32, ++/*429458*/ OPC_MoveParent, ++/*429459*/ OPC_MoveChild6, ++/*429460*/ OPC_CheckInteger, 15, ++/*429462*/ OPC_CheckType, MVT::i32, ++/*429464*/ OPC_MoveParent, ++/*429465*/ OPC_MoveChild7, ++/*429466*/ OPC_CheckInteger, 15, ++/*429468*/ OPC_CheckType, MVT::i32, ++/*429470*/ OPC_MoveParent, ++/*429471*/ OPC_CheckType, MVT::v8i16, ++/*429473*/ OPC_MoveParent, ++/*429474*/ OPC_MoveParent, ++/*429475*/ OPC_MoveParent, ++/*429476*/ OPC_MoveChild1, ++/*429477*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*429480*/ OPC_CheckChild0Integer, 1, ++/*429482*/ OPC_CheckChild0Type, MVT::i32, ++/*429484*/ OPC_CheckChild1Integer, 1, ++/*429486*/ OPC_CheckChild1Type, MVT::i32, ++/*429488*/ OPC_CheckChild2Integer, 1, ++/*429490*/ OPC_CheckChild2Type, MVT::i32, ++/*429492*/ OPC_CheckChild3Integer, 1, ++/*429494*/ OPC_CheckChild3Type, MVT::i32, ++/*429496*/ OPC_CheckChild4Integer, 1, ++/*429498*/ OPC_CheckChild4Type, MVT::i32, ++/*429500*/ OPC_MoveChild5, ++/*429501*/ OPC_CheckInteger, 1, ++/*429503*/ OPC_CheckType, MVT::i32, ++/*429505*/ OPC_MoveParent, ++/*429506*/ OPC_MoveChild6, ++/*429507*/ OPC_CheckInteger, 1, ++/*429509*/ OPC_CheckType, MVT::i32, ++/*429511*/ OPC_MoveParent, ++/*429512*/ OPC_MoveChild7, ++/*429513*/ OPC_CheckInteger, 1, ++/*429515*/ OPC_CheckType, MVT::i32, ++/*429517*/ OPC_MoveParent, ++/*429518*/ OPC_CheckType, MVT::v8i16, ++/*429520*/ OPC_MoveParent, ++/*429521*/ OPC_CheckType, MVT::v8i16, ++/*429523*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*429525*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*429533*/ 0, /*End of Scope*/ ++/*429534*/ /*Scope*/ 58|128,2/*314*/, /*->429850*/ ++/*429536*/ OPC_CheckChild0Same, 0, ++/*429538*/ OPC_MoveChild1, ++/*429539*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*429542*/ OPC_Scope, 23|128,1/*151*/, /*->429696*/ // 2 children in Scope ++/*429545*/ OPC_MoveChild0, ++/*429546*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*429549*/ OPC_CheckChild0Integer, 1, ++/*429551*/ OPC_CheckChild0Type, MVT::i32, ++/*429553*/ OPC_CheckChild1Integer, 1, ++/*429555*/ OPC_CheckChild1Type, MVT::i32, ++/*429557*/ OPC_CheckChild2Integer, 1, ++/*429559*/ OPC_CheckChild2Type, MVT::i32, ++/*429561*/ OPC_CheckChild3Integer, 1, ++/*429563*/ OPC_CheckChild3Type, MVT::i32, ++/*429565*/ OPC_CheckChild4Integer, 1, ++/*429567*/ OPC_CheckChild4Type, MVT::i32, ++/*429569*/ OPC_MoveChild5, ++/*429570*/ OPC_CheckInteger, 1, ++/*429572*/ OPC_CheckType, MVT::i32, ++/*429574*/ OPC_MoveParent, ++/*429575*/ OPC_MoveChild6, ++/*429576*/ OPC_CheckInteger, 1, ++/*429578*/ OPC_CheckType, MVT::i32, ++/*429580*/ OPC_MoveParent, ++/*429581*/ OPC_MoveChild7, ++/*429582*/ OPC_CheckInteger, 1, ++/*429584*/ OPC_CheckType, MVT::i32, ++/*429586*/ OPC_MoveParent, ++/*429587*/ OPC_MoveParent, ++/*429588*/ OPC_CheckChild1Same, 1, ++/*429590*/ OPC_MoveParent, ++/*429591*/ OPC_MoveParent, ++/*429592*/ OPC_MoveChild1, ++/*429593*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*429596*/ OPC_CheckChild0Integer, 15, ++/*429598*/ OPC_CheckChild0Type, MVT::i32, ++/*429600*/ OPC_CheckChild1Integer, 15, ++/*429602*/ OPC_CheckChild1Type, MVT::i32, ++/*429604*/ OPC_CheckChild2Integer, 15, ++/*429606*/ OPC_CheckChild2Type, MVT::i32, ++/*429608*/ OPC_CheckChild3Integer, 15, ++/*429610*/ OPC_CheckChild3Type, MVT::i32, ++/*429612*/ OPC_CheckChild4Integer, 15, ++/*429614*/ OPC_CheckChild4Type, MVT::i32, ++/*429616*/ OPC_MoveChild5, ++/*429617*/ OPC_CheckInteger, 15, ++/*429619*/ OPC_CheckType, MVT::i32, ++/*429621*/ OPC_MoveParent, ++/*429622*/ OPC_MoveChild6, ++/*429623*/ OPC_CheckInteger, 15, ++/*429625*/ OPC_CheckType, MVT::i32, ++/*429627*/ OPC_MoveParent, ++/*429628*/ OPC_MoveChild7, ++/*429629*/ OPC_CheckInteger, 15, ++/*429631*/ OPC_CheckType, MVT::i32, ++/*429633*/ OPC_MoveParent, ++/*429634*/ OPC_CheckType, MVT::v8i16, ++/*429636*/ OPC_MoveParent, ++/*429637*/ OPC_MoveParent, ++/*429638*/ OPC_MoveParent, ++/*429639*/ OPC_MoveChild1, ++/*429640*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*429643*/ OPC_CheckChild0Integer, 1, ++/*429645*/ OPC_CheckChild0Type, MVT::i32, ++/*429647*/ OPC_CheckChild1Integer, 1, ++/*429649*/ OPC_CheckChild1Type, MVT::i32, ++/*429651*/ OPC_CheckChild2Integer, 1, ++/*429653*/ OPC_CheckChild2Type, MVT::i32, ++/*429655*/ OPC_CheckChild3Integer, 1, ++/*429657*/ OPC_CheckChild3Type, MVT::i32, ++/*429659*/ OPC_CheckChild4Integer, 1, ++/*429661*/ OPC_CheckChild4Type, MVT::i32, ++/*429663*/ OPC_MoveChild5, ++/*429664*/ OPC_CheckInteger, 1, ++/*429666*/ OPC_CheckType, MVT::i32, ++/*429668*/ OPC_MoveParent, ++/*429669*/ OPC_MoveChild6, ++/*429670*/ OPC_CheckInteger, 1, ++/*429672*/ OPC_CheckType, MVT::i32, ++/*429674*/ OPC_MoveParent, ++/*429675*/ OPC_MoveChild7, ++/*429676*/ OPC_CheckInteger, 1, ++/*429678*/ OPC_CheckType, MVT::i32, ++/*429680*/ OPC_MoveParent, ++/*429681*/ OPC_CheckType, MVT::v8i16, ++/*429683*/ OPC_MoveParent, ++/*429684*/ OPC_CheckType, MVT::v8i16, ++/*429686*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*429688*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*429696*/ /*Scope*/ 23|128,1/*151*/, /*->429849*/ ++/*429698*/ OPC_CheckChild0Same, 1, ++/*429700*/ OPC_MoveChild1, ++/*429701*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*429704*/ OPC_CheckChild0Integer, 1, ++/*429706*/ OPC_CheckChild0Type, MVT::i32, ++/*429708*/ OPC_CheckChild1Integer, 1, ++/*429710*/ OPC_CheckChild1Type, MVT::i32, ++/*429712*/ OPC_CheckChild2Integer, 1, ++/*429714*/ OPC_CheckChild2Type, MVT::i32, ++/*429716*/ OPC_CheckChild3Integer, 1, ++/*429718*/ OPC_CheckChild3Type, MVT::i32, ++/*429720*/ OPC_CheckChild4Integer, 1, ++/*429722*/ OPC_CheckChild4Type, MVT::i32, ++/*429724*/ OPC_MoveChild5, ++/*429725*/ OPC_CheckInteger, 1, ++/*429727*/ OPC_CheckType, MVT::i32, ++/*429729*/ OPC_MoveParent, ++/*429730*/ OPC_MoveChild6, ++/*429731*/ OPC_CheckInteger, 1, ++/*429733*/ OPC_CheckType, MVT::i32, ++/*429735*/ OPC_MoveParent, ++/*429736*/ OPC_MoveChild7, ++/*429737*/ OPC_CheckInteger, 1, ++/*429739*/ OPC_CheckType, MVT::i32, ++/*429741*/ OPC_MoveParent, ++/*429742*/ OPC_MoveParent, ++/*429743*/ OPC_MoveParent, ++/*429744*/ OPC_MoveParent, ++/*429745*/ OPC_MoveChild1, ++/*429746*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*429749*/ OPC_CheckChild0Integer, 15, ++/*429751*/ OPC_CheckChild0Type, MVT::i32, ++/*429753*/ OPC_CheckChild1Integer, 15, ++/*429755*/ OPC_CheckChild1Type, MVT::i32, ++/*429757*/ OPC_CheckChild2Integer, 15, ++/*429759*/ OPC_CheckChild2Type, MVT::i32, ++/*429761*/ OPC_CheckChild3Integer, 15, ++/*429763*/ OPC_CheckChild3Type, MVT::i32, ++/*429765*/ OPC_CheckChild4Integer, 15, ++/*429767*/ OPC_CheckChild4Type, MVT::i32, ++/*429769*/ OPC_MoveChild5, ++/*429770*/ OPC_CheckInteger, 15, ++/*429772*/ OPC_CheckType, MVT::i32, ++/*429774*/ OPC_MoveParent, ++/*429775*/ OPC_MoveChild6, ++/*429776*/ OPC_CheckInteger, 15, ++/*429778*/ OPC_CheckType, MVT::i32, ++/*429780*/ OPC_MoveParent, ++/*429781*/ OPC_MoveChild7, ++/*429782*/ OPC_CheckInteger, 15, ++/*429784*/ OPC_CheckType, MVT::i32, ++/*429786*/ OPC_MoveParent, ++/*429787*/ OPC_CheckType, MVT::v8i16, ++/*429789*/ OPC_MoveParent, ++/*429790*/ OPC_MoveParent, ++/*429791*/ OPC_MoveParent, ++/*429792*/ OPC_MoveChild1, ++/*429793*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*429796*/ OPC_CheckChild0Integer, 1, ++/*429798*/ OPC_CheckChild0Type, MVT::i32, ++/*429800*/ OPC_CheckChild1Integer, 1, ++/*429802*/ OPC_CheckChild1Type, MVT::i32, ++/*429804*/ OPC_CheckChild2Integer, 1, ++/*429806*/ OPC_CheckChild2Type, MVT::i32, ++/*429808*/ OPC_CheckChild3Integer, 1, ++/*429810*/ OPC_CheckChild3Type, MVT::i32, ++/*429812*/ OPC_CheckChild4Integer, 1, ++/*429814*/ OPC_CheckChild4Type, MVT::i32, ++/*429816*/ OPC_MoveChild5, ++/*429817*/ OPC_CheckInteger, 1, ++/*429819*/ OPC_CheckType, MVT::i32, ++/*429821*/ OPC_MoveParent, ++/*429822*/ OPC_MoveChild6, ++/*429823*/ OPC_CheckInteger, 1, ++/*429825*/ OPC_CheckType, MVT::i32, ++/*429827*/ OPC_MoveParent, ++/*429828*/ OPC_MoveChild7, ++/*429829*/ OPC_CheckInteger, 1, ++/*429831*/ OPC_CheckType, MVT::i32, ++/*429833*/ OPC_MoveParent, ++/*429834*/ OPC_CheckType, MVT::v8i16, ++/*429836*/ OPC_MoveParent, ++/*429837*/ OPC_CheckType, MVT::v8i16, ++/*429839*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*429841*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*429849*/ 0, /*End of Scope*/ ++/*429850*/ /*Scope*/ 15|128,2/*271*/, /*->430123*/ ++/*429852*/ OPC_MoveChild0, ++/*429853*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*429856*/ OPC_CheckChild0Integer, 1, ++/*429858*/ OPC_CheckChild0Type, MVT::i32, ++/*429860*/ OPC_CheckChild1Integer, 1, ++/*429862*/ OPC_CheckChild1Type, MVT::i32, ++/*429864*/ OPC_CheckChild2Integer, 1, ++/*429866*/ OPC_CheckChild2Type, MVT::i32, ++/*429868*/ OPC_CheckChild3Integer, 1, ++/*429870*/ OPC_CheckChild3Type, MVT::i32, ++/*429872*/ OPC_CheckChild4Integer, 1, ++/*429874*/ OPC_CheckChild4Type, MVT::i32, ++/*429876*/ OPC_MoveChild5, ++/*429877*/ OPC_CheckInteger, 1, ++/*429879*/ OPC_CheckType, MVT::i32, ++/*429881*/ OPC_MoveParent, ++/*429882*/ OPC_MoveChild6, ++/*429883*/ OPC_CheckInteger, 1, ++/*429885*/ OPC_CheckType, MVT::i32, ++/*429887*/ OPC_MoveParent, ++/*429888*/ OPC_MoveChild7, ++/*429889*/ OPC_CheckInteger, 1, ++/*429891*/ OPC_CheckType, MVT::i32, ++/*429893*/ OPC_MoveParent, ++/*429894*/ OPC_MoveParent, ++/*429895*/ OPC_MoveChild1, ++/*429896*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*429899*/ OPC_Scope, 110, /*->430011*/ // 2 children in Scope ++/*429901*/ OPC_CheckChild0Same, 0, ++/*429903*/ OPC_CheckChild1Same, 1, ++/*429905*/ OPC_MoveParent, ++/*429906*/ OPC_MoveParent, ++/*429907*/ OPC_MoveChild1, ++/*429908*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*429911*/ OPC_CheckChild0Integer, 15, ++/*429913*/ OPC_CheckChild0Type, MVT::i32, ++/*429915*/ OPC_CheckChild1Integer, 15, ++/*429917*/ OPC_CheckChild1Type, MVT::i32, ++/*429919*/ OPC_CheckChild2Integer, 15, ++/*429921*/ OPC_CheckChild2Type, MVT::i32, ++/*429923*/ OPC_CheckChild3Integer, 15, ++/*429925*/ OPC_CheckChild3Type, MVT::i32, ++/*429927*/ OPC_CheckChild4Integer, 15, ++/*429929*/ OPC_CheckChild4Type, MVT::i32, ++/*429931*/ OPC_MoveChild5, ++/*429932*/ OPC_CheckInteger, 15, ++/*429934*/ OPC_CheckType, MVT::i32, ++/*429936*/ OPC_MoveParent, ++/*429937*/ OPC_MoveChild6, ++/*429938*/ OPC_CheckInteger, 15, ++/*429940*/ OPC_CheckType, MVT::i32, ++/*429942*/ OPC_MoveParent, ++/*429943*/ OPC_MoveChild7, ++/*429944*/ OPC_CheckInteger, 15, ++/*429946*/ OPC_CheckType, MVT::i32, ++/*429948*/ OPC_MoveParent, ++/*429949*/ OPC_CheckType, MVT::v8i16, ++/*429951*/ OPC_MoveParent, ++/*429952*/ OPC_MoveParent, ++/*429953*/ OPC_MoveParent, ++/*429954*/ OPC_MoveChild1, ++/*429955*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*429958*/ OPC_CheckChild0Integer, 1, ++/*429960*/ OPC_CheckChild0Type, MVT::i32, ++/*429962*/ OPC_CheckChild1Integer, 1, ++/*429964*/ OPC_CheckChild1Type, MVT::i32, ++/*429966*/ OPC_CheckChild2Integer, 1, ++/*429968*/ OPC_CheckChild2Type, MVT::i32, ++/*429970*/ OPC_CheckChild3Integer, 1, ++/*429972*/ OPC_CheckChild3Type, MVT::i32, ++/*429974*/ OPC_CheckChild4Integer, 1, ++/*429976*/ OPC_CheckChild4Type, MVT::i32, ++/*429978*/ OPC_MoveChild5, ++/*429979*/ OPC_CheckInteger, 1, ++/*429981*/ OPC_CheckType, MVT::i32, ++/*429983*/ OPC_MoveParent, ++/*429984*/ OPC_MoveChild6, ++/*429985*/ OPC_CheckInteger, 1, ++/*429987*/ OPC_CheckType, MVT::i32, ++/*429989*/ OPC_MoveParent, ++/*429990*/ OPC_MoveChild7, ++/*429991*/ OPC_CheckInteger, 1, ++/*429993*/ OPC_CheckType, MVT::i32, ++/*429995*/ OPC_MoveParent, ++/*429996*/ OPC_CheckType, MVT::v8i16, ++/*429998*/ OPC_MoveParent, ++/*429999*/ OPC_CheckType, MVT::v8i16, ++/*430001*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*430003*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*430011*/ /*Scope*/ 110, /*->430122*/ ++/*430012*/ OPC_CheckChild0Same, 1, ++/*430014*/ OPC_CheckChild1Same, 0, ++/*430016*/ OPC_MoveParent, ++/*430017*/ OPC_MoveParent, ++/*430018*/ OPC_MoveChild1, ++/*430019*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*430022*/ OPC_CheckChild0Integer, 15, ++/*430024*/ OPC_CheckChild0Type, MVT::i32, ++/*430026*/ OPC_CheckChild1Integer, 15, ++/*430028*/ OPC_CheckChild1Type, MVT::i32, ++/*430030*/ OPC_CheckChild2Integer, 15, ++/*430032*/ OPC_CheckChild2Type, MVT::i32, ++/*430034*/ OPC_CheckChild3Integer, 15, ++/*430036*/ OPC_CheckChild3Type, MVT::i32, ++/*430038*/ OPC_CheckChild4Integer, 15, ++/*430040*/ OPC_CheckChild4Type, MVT::i32, ++/*430042*/ OPC_MoveChild5, ++/*430043*/ OPC_CheckInteger, 15, ++/*430045*/ OPC_CheckType, MVT::i32, ++/*430047*/ OPC_MoveParent, ++/*430048*/ OPC_MoveChild6, ++/*430049*/ OPC_CheckInteger, 15, ++/*430051*/ OPC_CheckType, MVT::i32, ++/*430053*/ OPC_MoveParent, ++/*430054*/ OPC_MoveChild7, ++/*430055*/ OPC_CheckInteger, 15, ++/*430057*/ OPC_CheckType, MVT::i32, ++/*430059*/ OPC_MoveParent, ++/*430060*/ OPC_CheckType, MVT::v8i16, ++/*430062*/ OPC_MoveParent, ++/*430063*/ OPC_MoveParent, ++/*430064*/ OPC_MoveParent, ++/*430065*/ OPC_MoveChild1, ++/*430066*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*430069*/ OPC_CheckChild0Integer, 1, ++/*430071*/ OPC_CheckChild0Type, MVT::i32, ++/*430073*/ OPC_CheckChild1Integer, 1, ++/*430075*/ OPC_CheckChild1Type, MVT::i32, ++/*430077*/ OPC_CheckChild2Integer, 1, ++/*430079*/ OPC_CheckChild2Type, MVT::i32, ++/*430081*/ OPC_CheckChild3Integer, 1, ++/*430083*/ OPC_CheckChild3Type, MVT::i32, ++/*430085*/ OPC_CheckChild4Integer, 1, ++/*430087*/ OPC_CheckChild4Type, MVT::i32, ++/*430089*/ OPC_MoveChild5, ++/*430090*/ OPC_CheckInteger, 1, ++/*430092*/ OPC_CheckType, MVT::i32, ++/*430094*/ OPC_MoveParent, ++/*430095*/ OPC_MoveChild6, ++/*430096*/ OPC_CheckInteger, 1, ++/*430098*/ OPC_CheckType, MVT::i32, ++/*430100*/ OPC_MoveParent, ++/*430101*/ OPC_MoveChild7, ++/*430102*/ OPC_CheckInteger, 1, ++/*430104*/ OPC_CheckType, MVT::i32, ++/*430106*/ OPC_MoveParent, ++/*430107*/ OPC_CheckType, MVT::v8i16, ++/*430109*/ OPC_MoveParent, ++/*430110*/ OPC_CheckType, MVT::v8i16, ++/*430112*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*430114*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*430122*/ 0, /*End of Scope*/ ++/*430123*/ 0, /*End of Scope*/ ++/*430124*/ 0, /*End of Scope*/ ++/*430125*/ /*Scope*/ 24|128,117/*15000*/, /*->445127*/ ++/*430127*/ OPC_MoveChild0, ++/*430128*/ OPC_SwitchOpcode /*2 cases */, 46|128,28/*3630*/, TARGET_VAL(ISD::BUILD_VECTOR),// ->433763 ++/*430133*/ OPC_CheckChild0Integer, 1, ++/*430135*/ OPC_CheckChild0Type, MVT::i32, ++/*430137*/ OPC_CheckChild1Integer, 1, ++/*430139*/ OPC_CheckChild1Type, MVT::i32, ++/*430141*/ OPC_CheckChild2Integer, 1, ++/*430143*/ OPC_CheckChild2Type, MVT::i32, ++/*430145*/ OPC_CheckChild3Integer, 1, ++/*430147*/ OPC_CheckChild3Type, MVT::i32, ++/*430149*/ OPC_CheckChild4Integer, 1, ++/*430151*/ OPC_CheckChild4Type, MVT::i32, ++/*430153*/ OPC_MoveChild5, ++/*430154*/ OPC_CheckInteger, 1, ++/*430156*/ OPC_CheckType, MVT::i32, ++/*430158*/ OPC_MoveParent, ++/*430159*/ OPC_MoveChild6, ++/*430160*/ OPC_CheckInteger, 1, ++/*430162*/ OPC_CheckType, MVT::i32, ++/*430164*/ OPC_MoveParent, ++/*430165*/ OPC_MoveChild7, ++/*430166*/ OPC_CheckInteger, 1, ++/*430168*/ OPC_CheckType, MVT::i32, ++/*430170*/ OPC_MoveParent, ++/*430171*/ OPC_MoveParent, ++/*430172*/ OPC_MoveChild1, ++/*430173*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*430176*/ OPC_RecordChild0, // #0 = $a ++/*430177*/ OPC_RecordChild1, // #1 = $b ++/*430178*/ OPC_MoveParent, ++/*430179*/ OPC_MoveParent, ++/*430180*/ OPC_MoveChild1, ++/*430181*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*430184*/ OPC_MoveChild0, ++/*430185*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*430188*/ OPC_Scope, 40|128,7/*936*/, /*->431127*/ // 7 children in Scope ++/*430191*/ OPC_MoveChild0, ++/*430192*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*430195*/ OPC_Scope, 25|128,1/*153*/, /*->430351*/ // 6 children in Scope ++/*430198*/ OPC_MoveChild0, ++/*430199*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*430202*/ OPC_CheckChild0Integer, 1, ++/*430204*/ OPC_CheckChild0Type, MVT::i32, ++/*430206*/ OPC_CheckChild1Integer, 1, ++/*430208*/ OPC_CheckChild1Type, MVT::i32, ++/*430210*/ OPC_CheckChild2Integer, 1, ++/*430212*/ OPC_CheckChild2Type, MVT::i32, ++/*430214*/ OPC_CheckChild3Integer, 1, ++/*430216*/ OPC_CheckChild3Type, MVT::i32, ++/*430218*/ OPC_CheckChild4Integer, 1, ++/*430220*/ OPC_CheckChild4Type, MVT::i32, ++/*430222*/ OPC_MoveChild5, ++/*430223*/ OPC_CheckInteger, 1, ++/*430225*/ OPC_CheckType, MVT::i32, ++/*430227*/ OPC_MoveParent, ++/*430228*/ OPC_MoveChild6, ++/*430229*/ OPC_CheckInteger, 1, ++/*430231*/ OPC_CheckType, MVT::i32, ++/*430233*/ OPC_MoveParent, ++/*430234*/ OPC_MoveChild7, ++/*430235*/ OPC_CheckInteger, 1, ++/*430237*/ OPC_CheckType, MVT::i32, ++/*430239*/ OPC_MoveParent, ++/*430240*/ OPC_MoveParent, ++/*430241*/ OPC_CheckChild1Same, 0, ++/*430243*/ OPC_MoveParent, ++/*430244*/ OPC_CheckChild1Same, 1, ++/*430246*/ OPC_MoveParent, ++/*430247*/ OPC_MoveChild1, ++/*430248*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*430251*/ OPC_CheckChild0Integer, 15, ++/*430253*/ OPC_CheckChild0Type, MVT::i32, ++/*430255*/ OPC_CheckChild1Integer, 15, ++/*430257*/ OPC_CheckChild1Type, MVT::i32, ++/*430259*/ OPC_CheckChild2Integer, 15, ++/*430261*/ OPC_CheckChild2Type, MVT::i32, ++/*430263*/ OPC_CheckChild3Integer, 15, ++/*430265*/ OPC_CheckChild3Type, MVT::i32, ++/*430267*/ OPC_CheckChild4Integer, 15, ++/*430269*/ OPC_CheckChild4Type, MVT::i32, ++/*430271*/ OPC_MoveChild5, ++/*430272*/ OPC_CheckInteger, 15, ++/*430274*/ OPC_CheckType, MVT::i32, ++/*430276*/ OPC_MoveParent, ++/*430277*/ OPC_MoveChild6, ++/*430278*/ OPC_CheckInteger, 15, ++/*430280*/ OPC_CheckType, MVT::i32, ++/*430282*/ OPC_MoveParent, ++/*430283*/ OPC_MoveChild7, ++/*430284*/ OPC_CheckInteger, 15, ++/*430286*/ OPC_CheckType, MVT::i32, ++/*430288*/ OPC_MoveParent, ++/*430289*/ OPC_CheckType, MVT::v8i16, ++/*430291*/ OPC_MoveParent, ++/*430292*/ OPC_MoveParent, ++/*430293*/ OPC_MoveParent, ++/*430294*/ OPC_MoveChild1, ++/*430295*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*430298*/ OPC_CheckChild0Integer, 1, ++/*430300*/ OPC_CheckChild0Type, MVT::i32, ++/*430302*/ OPC_CheckChild1Integer, 1, ++/*430304*/ OPC_CheckChild1Type, MVT::i32, ++/*430306*/ OPC_CheckChild2Integer, 1, ++/*430308*/ OPC_CheckChild2Type, MVT::i32, ++/*430310*/ OPC_CheckChild3Integer, 1, ++/*430312*/ OPC_CheckChild3Type, MVT::i32, ++/*430314*/ OPC_CheckChild4Integer, 1, ++/*430316*/ OPC_CheckChild4Type, MVT::i32, ++/*430318*/ OPC_MoveChild5, ++/*430319*/ OPC_CheckInteger, 1, ++/*430321*/ OPC_CheckType, MVT::i32, ++/*430323*/ OPC_MoveParent, ++/*430324*/ OPC_MoveChild6, ++/*430325*/ OPC_CheckInteger, 1, ++/*430327*/ OPC_CheckType, MVT::i32, ++/*430329*/ OPC_MoveParent, ++/*430330*/ OPC_MoveChild7, ++/*430331*/ OPC_CheckInteger, 1, ++/*430333*/ OPC_CheckType, MVT::i32, ++/*430335*/ OPC_MoveParent, ++/*430336*/ OPC_CheckType, MVT::v8i16, ++/*430338*/ OPC_MoveParent, ++/*430339*/ OPC_CheckType, MVT::v8i16, ++/*430341*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*430343*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b)), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a), LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*430351*/ /*Scope*/ 25|128,1/*153*/, /*->430506*/ ++/*430353*/ OPC_CheckChild0Same, 0, ++/*430355*/ OPC_MoveChild1, ++/*430356*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*430359*/ OPC_CheckChild0Integer, 1, ++/*430361*/ OPC_CheckChild0Type, MVT::i32, ++/*430363*/ OPC_CheckChild1Integer, 1, ++/*430365*/ OPC_CheckChild1Type, MVT::i32, ++/*430367*/ OPC_CheckChild2Integer, 1, ++/*430369*/ OPC_CheckChild2Type, MVT::i32, ++/*430371*/ OPC_CheckChild3Integer, 1, ++/*430373*/ OPC_CheckChild3Type, MVT::i32, ++/*430375*/ OPC_CheckChild4Integer, 1, ++/*430377*/ OPC_CheckChild4Type, MVT::i32, ++/*430379*/ OPC_MoveChild5, ++/*430380*/ OPC_CheckInteger, 1, ++/*430382*/ OPC_CheckType, MVT::i32, ++/*430384*/ OPC_MoveParent, ++/*430385*/ OPC_MoveChild6, ++/*430386*/ OPC_CheckInteger, 1, ++/*430388*/ OPC_CheckType, MVT::i32, ++/*430390*/ OPC_MoveParent, ++/*430391*/ OPC_MoveChild7, ++/*430392*/ OPC_CheckInteger, 1, ++/*430394*/ OPC_CheckType, MVT::i32, ++/*430396*/ OPC_MoveParent, ++/*430397*/ OPC_MoveParent, ++/*430398*/ OPC_MoveParent, ++/*430399*/ OPC_CheckChild1Same, 1, ++/*430401*/ OPC_MoveParent, ++/*430402*/ OPC_MoveChild1, ++/*430403*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*430406*/ OPC_CheckChild0Integer, 15, ++/*430408*/ OPC_CheckChild0Type, MVT::i32, ++/*430410*/ OPC_CheckChild1Integer, 15, ++/*430412*/ OPC_CheckChild1Type, MVT::i32, ++/*430414*/ OPC_CheckChild2Integer, 15, ++/*430416*/ OPC_CheckChild2Type, MVT::i32, ++/*430418*/ OPC_CheckChild3Integer, 15, ++/*430420*/ OPC_CheckChild3Type, MVT::i32, ++/*430422*/ OPC_CheckChild4Integer, 15, ++/*430424*/ OPC_CheckChild4Type, MVT::i32, ++/*430426*/ OPC_MoveChild5, ++/*430427*/ OPC_CheckInteger, 15, ++/*430429*/ OPC_CheckType, MVT::i32, ++/*430431*/ OPC_MoveParent, ++/*430432*/ OPC_MoveChild6, ++/*430433*/ OPC_CheckInteger, 15, ++/*430435*/ OPC_CheckType, MVT::i32, ++/*430437*/ OPC_MoveParent, ++/*430438*/ OPC_MoveChild7, ++/*430439*/ OPC_CheckInteger, 15, ++/*430441*/ OPC_CheckType, MVT::i32, ++/*430443*/ OPC_MoveParent, ++/*430444*/ OPC_CheckType, MVT::v8i16, ++/*430446*/ OPC_MoveParent, ++/*430447*/ OPC_MoveParent, ++/*430448*/ OPC_MoveParent, ++/*430449*/ OPC_MoveChild1, ++/*430450*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*430453*/ OPC_CheckChild0Integer, 1, ++/*430455*/ OPC_CheckChild0Type, MVT::i32, ++/*430457*/ OPC_CheckChild1Integer, 1, ++/*430459*/ OPC_CheckChild1Type, MVT::i32, ++/*430461*/ OPC_CheckChild2Integer, 1, ++/*430463*/ OPC_CheckChild2Type, MVT::i32, ++/*430465*/ OPC_CheckChild3Integer, 1, ++/*430467*/ OPC_CheckChild3Type, MVT::i32, ++/*430469*/ OPC_CheckChild4Integer, 1, ++/*430471*/ OPC_CheckChild4Type, MVT::i32, ++/*430473*/ OPC_MoveChild5, ++/*430474*/ OPC_CheckInteger, 1, ++/*430476*/ OPC_CheckType, MVT::i32, ++/*430478*/ OPC_MoveParent, ++/*430479*/ OPC_MoveChild6, ++/*430480*/ OPC_CheckInteger, 1, ++/*430482*/ OPC_CheckType, MVT::i32, ++/*430484*/ OPC_MoveParent, ++/*430485*/ OPC_MoveChild7, ++/*430486*/ OPC_CheckInteger, 1, ++/*430488*/ OPC_CheckType, MVT::i32, ++/*430490*/ OPC_MoveParent, ++/*430491*/ OPC_CheckType, MVT::v8i16, ++/*430493*/ OPC_MoveParent, ++/*430494*/ OPC_CheckType, MVT::v8i16, ++/*430496*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*430498*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b)), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*430506*/ /*Scope*/ 25|128,1/*153*/, /*->430661*/ ++/*430508*/ OPC_MoveChild0, ++/*430509*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*430512*/ OPC_CheckChild0Integer, 1, ++/*430514*/ OPC_CheckChild0Type, MVT::i32, ++/*430516*/ OPC_CheckChild1Integer, 1, ++/*430518*/ OPC_CheckChild1Type, MVT::i32, ++/*430520*/ OPC_CheckChild2Integer, 1, ++/*430522*/ OPC_CheckChild2Type, MVT::i32, ++/*430524*/ OPC_CheckChild3Integer, 1, ++/*430526*/ OPC_CheckChild3Type, MVT::i32, ++/*430528*/ OPC_CheckChild4Integer, 1, ++/*430530*/ OPC_CheckChild4Type, MVT::i32, ++/*430532*/ OPC_MoveChild5, ++/*430533*/ OPC_CheckInteger, 1, ++/*430535*/ OPC_CheckType, MVT::i32, ++/*430537*/ OPC_MoveParent, ++/*430538*/ OPC_MoveChild6, ++/*430539*/ OPC_CheckInteger, 1, ++/*430541*/ OPC_CheckType, MVT::i32, ++/*430543*/ OPC_MoveParent, ++/*430544*/ OPC_MoveChild7, ++/*430545*/ OPC_CheckInteger, 1, ++/*430547*/ OPC_CheckType, MVT::i32, ++/*430549*/ OPC_MoveParent, ++/*430550*/ OPC_MoveParent, ++/*430551*/ OPC_CheckChild1Same, 1, ++/*430553*/ OPC_MoveParent, ++/*430554*/ OPC_CheckChild1Same, 0, ++/*430556*/ OPC_MoveParent, ++/*430557*/ OPC_MoveChild1, ++/*430558*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*430561*/ OPC_CheckChild0Integer, 15, ++/*430563*/ OPC_CheckChild0Type, MVT::i32, ++/*430565*/ OPC_CheckChild1Integer, 15, ++/*430567*/ OPC_CheckChild1Type, MVT::i32, ++/*430569*/ OPC_CheckChild2Integer, 15, ++/*430571*/ OPC_CheckChild2Type, MVT::i32, ++/*430573*/ OPC_CheckChild3Integer, 15, ++/*430575*/ OPC_CheckChild3Type, MVT::i32, ++/*430577*/ OPC_CheckChild4Integer, 15, ++/*430579*/ OPC_CheckChild4Type, MVT::i32, ++/*430581*/ OPC_MoveChild5, ++/*430582*/ OPC_CheckInteger, 15, ++/*430584*/ OPC_CheckType, MVT::i32, ++/*430586*/ OPC_MoveParent, ++/*430587*/ OPC_MoveChild6, ++/*430588*/ OPC_CheckInteger, 15, ++/*430590*/ OPC_CheckType, MVT::i32, ++/*430592*/ OPC_MoveParent, ++/*430593*/ OPC_MoveChild7, ++/*430594*/ OPC_CheckInteger, 15, ++/*430596*/ OPC_CheckType, MVT::i32, ++/*430598*/ OPC_MoveParent, ++/*430599*/ OPC_CheckType, MVT::v8i16, ++/*430601*/ OPC_MoveParent, ++/*430602*/ OPC_MoveParent, ++/*430603*/ OPC_MoveParent, ++/*430604*/ OPC_MoveChild1, ++/*430605*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*430608*/ OPC_CheckChild0Integer, 1, ++/*430610*/ OPC_CheckChild0Type, MVT::i32, ++/*430612*/ OPC_CheckChild1Integer, 1, ++/*430614*/ OPC_CheckChild1Type, MVT::i32, ++/*430616*/ OPC_CheckChild2Integer, 1, ++/*430618*/ OPC_CheckChild2Type, MVT::i32, ++/*430620*/ OPC_CheckChild3Integer, 1, ++/*430622*/ OPC_CheckChild3Type, MVT::i32, ++/*430624*/ OPC_CheckChild4Integer, 1, ++/*430626*/ OPC_CheckChild4Type, MVT::i32, ++/*430628*/ OPC_MoveChild5, ++/*430629*/ OPC_CheckInteger, 1, ++/*430631*/ OPC_CheckType, MVT::i32, ++/*430633*/ OPC_MoveParent, ++/*430634*/ OPC_MoveChild6, ++/*430635*/ OPC_CheckInteger, 1, ++/*430637*/ OPC_CheckType, MVT::i32, ++/*430639*/ OPC_MoveParent, ++/*430640*/ OPC_MoveChild7, ++/*430641*/ OPC_CheckInteger, 1, ++/*430643*/ OPC_CheckType, MVT::i32, ++/*430645*/ OPC_MoveParent, ++/*430646*/ OPC_CheckType, MVT::v8i16, ++/*430648*/ OPC_MoveParent, ++/*430649*/ OPC_CheckType, MVT::v8i16, ++/*430651*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*430653*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b)), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b), LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*430661*/ /*Scope*/ 25|128,1/*153*/, /*->430816*/ ++/*430663*/ OPC_CheckChild0Same, 1, ++/*430665*/ OPC_MoveChild1, ++/*430666*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*430669*/ OPC_CheckChild0Integer, 1, ++/*430671*/ OPC_CheckChild0Type, MVT::i32, ++/*430673*/ OPC_CheckChild1Integer, 1, ++/*430675*/ OPC_CheckChild1Type, MVT::i32, ++/*430677*/ OPC_CheckChild2Integer, 1, ++/*430679*/ OPC_CheckChild2Type, MVT::i32, ++/*430681*/ OPC_CheckChild3Integer, 1, ++/*430683*/ OPC_CheckChild3Type, MVT::i32, ++/*430685*/ OPC_CheckChild4Integer, 1, ++/*430687*/ OPC_CheckChild4Type, MVT::i32, ++/*430689*/ OPC_MoveChild5, ++/*430690*/ OPC_CheckInteger, 1, ++/*430692*/ OPC_CheckType, MVT::i32, ++/*430694*/ OPC_MoveParent, ++/*430695*/ OPC_MoveChild6, ++/*430696*/ OPC_CheckInteger, 1, ++/*430698*/ OPC_CheckType, MVT::i32, ++/*430700*/ OPC_MoveParent, ++/*430701*/ OPC_MoveChild7, ++/*430702*/ OPC_CheckInteger, 1, ++/*430704*/ OPC_CheckType, MVT::i32, ++/*430706*/ OPC_MoveParent, ++/*430707*/ OPC_MoveParent, ++/*430708*/ OPC_MoveParent, ++/*430709*/ OPC_CheckChild1Same, 0, ++/*430711*/ OPC_MoveParent, ++/*430712*/ OPC_MoveChild1, ++/*430713*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*430716*/ OPC_CheckChild0Integer, 15, ++/*430718*/ OPC_CheckChild0Type, MVT::i32, ++/*430720*/ OPC_CheckChild1Integer, 15, ++/*430722*/ OPC_CheckChild1Type, MVT::i32, ++/*430724*/ OPC_CheckChild2Integer, 15, ++/*430726*/ OPC_CheckChild2Type, MVT::i32, ++/*430728*/ OPC_CheckChild3Integer, 15, ++/*430730*/ OPC_CheckChild3Type, MVT::i32, ++/*430732*/ OPC_CheckChild4Integer, 15, ++/*430734*/ OPC_CheckChild4Type, MVT::i32, ++/*430736*/ OPC_MoveChild5, ++/*430737*/ OPC_CheckInteger, 15, ++/*430739*/ OPC_CheckType, MVT::i32, ++/*430741*/ OPC_MoveParent, ++/*430742*/ OPC_MoveChild6, ++/*430743*/ OPC_CheckInteger, 15, ++/*430745*/ OPC_CheckType, MVT::i32, ++/*430747*/ OPC_MoveParent, ++/*430748*/ OPC_MoveChild7, ++/*430749*/ OPC_CheckInteger, 15, ++/*430751*/ OPC_CheckType, MVT::i32, ++/*430753*/ OPC_MoveParent, ++/*430754*/ OPC_CheckType, MVT::v8i16, ++/*430756*/ OPC_MoveParent, ++/*430757*/ OPC_MoveParent, ++/*430758*/ OPC_MoveParent, ++/*430759*/ OPC_MoveChild1, ++/*430760*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*430763*/ OPC_CheckChild0Integer, 1, ++/*430765*/ OPC_CheckChild0Type, MVT::i32, ++/*430767*/ OPC_CheckChild1Integer, 1, ++/*430769*/ OPC_CheckChild1Type, MVT::i32, ++/*430771*/ OPC_CheckChild2Integer, 1, ++/*430773*/ OPC_CheckChild2Type, MVT::i32, ++/*430775*/ OPC_CheckChild3Integer, 1, ++/*430777*/ OPC_CheckChild3Type, MVT::i32, ++/*430779*/ OPC_CheckChild4Integer, 1, ++/*430781*/ OPC_CheckChild4Type, MVT::i32, ++/*430783*/ OPC_MoveChild5, ++/*430784*/ OPC_CheckInteger, 1, ++/*430786*/ OPC_CheckType, MVT::i32, ++/*430788*/ OPC_MoveParent, ++/*430789*/ OPC_MoveChild6, ++/*430790*/ OPC_CheckInteger, 1, ++/*430792*/ OPC_CheckType, MVT::i32, ++/*430794*/ OPC_MoveParent, ++/*430795*/ OPC_MoveChild7, ++/*430796*/ OPC_CheckInteger, 1, ++/*430798*/ OPC_CheckType, MVT::i32, ++/*430800*/ OPC_MoveParent, ++/*430801*/ OPC_CheckType, MVT::v8i16, ++/*430803*/ OPC_MoveParent, ++/*430804*/ OPC_CheckType, MVT::v8i16, ++/*430806*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*430808*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b)), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*430816*/ /*Scope*/ 25|128,1/*153*/, /*->430971*/ ++/*430818*/ OPC_CheckChild0Same, 0, ++/*430820*/ OPC_CheckChild1Same, 1, ++/*430822*/ OPC_MoveParent, ++/*430823*/ OPC_MoveChild1, ++/*430824*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*430827*/ OPC_CheckChild0Integer, 1, ++/*430829*/ OPC_CheckChild0Type, MVT::i32, ++/*430831*/ OPC_CheckChild1Integer, 1, ++/*430833*/ OPC_CheckChild1Type, MVT::i32, ++/*430835*/ OPC_CheckChild2Integer, 1, ++/*430837*/ OPC_CheckChild2Type, MVT::i32, ++/*430839*/ OPC_CheckChild3Integer, 1, ++/*430841*/ OPC_CheckChild3Type, MVT::i32, ++/*430843*/ OPC_CheckChild4Integer, 1, ++/*430845*/ OPC_CheckChild4Type, MVT::i32, ++/*430847*/ OPC_MoveChild5, ++/*430848*/ OPC_CheckInteger, 1, ++/*430850*/ OPC_CheckType, MVT::i32, ++/*430852*/ OPC_MoveParent, ++/*430853*/ OPC_MoveChild6, ++/*430854*/ OPC_CheckInteger, 1, ++/*430856*/ OPC_CheckType, MVT::i32, ++/*430858*/ OPC_MoveParent, ++/*430859*/ OPC_MoveChild7, ++/*430860*/ OPC_CheckInteger, 1, ++/*430862*/ OPC_CheckType, MVT::i32, ++/*430864*/ OPC_MoveParent, ++/*430865*/ OPC_MoveParent, ++/*430866*/ OPC_MoveParent, ++/*430867*/ OPC_MoveChild1, ++/*430868*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*430871*/ OPC_CheckChild0Integer, 15, ++/*430873*/ OPC_CheckChild0Type, MVT::i32, ++/*430875*/ OPC_CheckChild1Integer, 15, ++/*430877*/ OPC_CheckChild1Type, MVT::i32, ++/*430879*/ OPC_CheckChild2Integer, 15, ++/*430881*/ OPC_CheckChild2Type, MVT::i32, ++/*430883*/ OPC_CheckChild3Integer, 15, ++/*430885*/ OPC_CheckChild3Type, MVT::i32, ++/*430887*/ OPC_CheckChild4Integer, 15, ++/*430889*/ OPC_CheckChild4Type, MVT::i32, ++/*430891*/ OPC_MoveChild5, ++/*430892*/ OPC_CheckInteger, 15, ++/*430894*/ OPC_CheckType, MVT::i32, ++/*430896*/ OPC_MoveParent, ++/*430897*/ OPC_MoveChild6, ++/*430898*/ OPC_CheckInteger, 15, ++/*430900*/ OPC_CheckType, MVT::i32, ++/*430902*/ OPC_MoveParent, ++/*430903*/ OPC_MoveChild7, ++/*430904*/ OPC_CheckInteger, 15, ++/*430906*/ OPC_CheckType, MVT::i32, ++/*430908*/ OPC_MoveParent, ++/*430909*/ OPC_CheckType, MVT::v8i16, ++/*430911*/ OPC_MoveParent, ++/*430912*/ OPC_MoveParent, ++/*430913*/ OPC_MoveParent, ++/*430914*/ OPC_MoveChild1, ++/*430915*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*430918*/ OPC_CheckChild0Integer, 1, ++/*430920*/ OPC_CheckChild0Type, MVT::i32, ++/*430922*/ OPC_CheckChild1Integer, 1, ++/*430924*/ OPC_CheckChild1Type, MVT::i32, ++/*430926*/ OPC_CheckChild2Integer, 1, ++/*430928*/ OPC_CheckChild2Type, MVT::i32, ++/*430930*/ OPC_CheckChild3Integer, 1, ++/*430932*/ OPC_CheckChild3Type, MVT::i32, ++/*430934*/ OPC_CheckChild4Integer, 1, ++/*430936*/ OPC_CheckChild4Type, MVT::i32, ++/*430938*/ OPC_MoveChild5, ++/*430939*/ OPC_CheckInteger, 1, ++/*430941*/ OPC_CheckType, MVT::i32, ++/*430943*/ OPC_MoveParent, ++/*430944*/ OPC_MoveChild6, ++/*430945*/ OPC_CheckInteger, 1, ++/*430947*/ OPC_CheckType, MVT::i32, ++/*430949*/ OPC_MoveParent, ++/*430950*/ OPC_MoveChild7, ++/*430951*/ OPC_CheckInteger, 1, ++/*430953*/ OPC_CheckType, MVT::i32, ++/*430955*/ OPC_MoveParent, ++/*430956*/ OPC_CheckType, MVT::v8i16, ++/*430958*/ OPC_MoveParent, ++/*430959*/ OPC_CheckType, MVT::v8i16, ++/*430961*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*430963*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b)), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*430971*/ /*Scope*/ 25|128,1/*153*/, /*->431126*/ ++/*430973*/ OPC_CheckChild0Same, 1, ++/*430975*/ OPC_CheckChild1Same, 0, ++/*430977*/ OPC_MoveParent, ++/*430978*/ OPC_MoveChild1, ++/*430979*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*430982*/ OPC_CheckChild0Integer, 1, ++/*430984*/ OPC_CheckChild0Type, MVT::i32, ++/*430986*/ OPC_CheckChild1Integer, 1, ++/*430988*/ OPC_CheckChild1Type, MVT::i32, ++/*430990*/ OPC_CheckChild2Integer, 1, ++/*430992*/ OPC_CheckChild2Type, MVT::i32, ++/*430994*/ OPC_CheckChild3Integer, 1, ++/*430996*/ OPC_CheckChild3Type, MVT::i32, ++/*430998*/ OPC_CheckChild4Integer, 1, ++/*431000*/ OPC_CheckChild4Type, MVT::i32, ++/*431002*/ OPC_MoveChild5, ++/*431003*/ OPC_CheckInteger, 1, ++/*431005*/ OPC_CheckType, MVT::i32, ++/*431007*/ OPC_MoveParent, ++/*431008*/ OPC_MoveChild6, ++/*431009*/ OPC_CheckInteger, 1, ++/*431011*/ OPC_CheckType, MVT::i32, ++/*431013*/ OPC_MoveParent, ++/*431014*/ OPC_MoveChild7, ++/*431015*/ OPC_CheckInteger, 1, ++/*431017*/ OPC_CheckType, MVT::i32, ++/*431019*/ OPC_MoveParent, ++/*431020*/ OPC_MoveParent, ++/*431021*/ OPC_MoveParent, ++/*431022*/ OPC_MoveChild1, ++/*431023*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*431026*/ OPC_CheckChild0Integer, 15, ++/*431028*/ OPC_CheckChild0Type, MVT::i32, ++/*431030*/ OPC_CheckChild1Integer, 15, ++/*431032*/ OPC_CheckChild1Type, MVT::i32, ++/*431034*/ OPC_CheckChild2Integer, 15, ++/*431036*/ OPC_CheckChild2Type, MVT::i32, ++/*431038*/ OPC_CheckChild3Integer, 15, ++/*431040*/ OPC_CheckChild3Type, MVT::i32, ++/*431042*/ OPC_CheckChild4Integer, 15, ++/*431044*/ OPC_CheckChild4Type, MVT::i32, ++/*431046*/ OPC_MoveChild5, ++/*431047*/ OPC_CheckInteger, 15, ++/*431049*/ OPC_CheckType, MVT::i32, ++/*431051*/ OPC_MoveParent, ++/*431052*/ OPC_MoveChild6, ++/*431053*/ OPC_CheckInteger, 15, ++/*431055*/ OPC_CheckType, MVT::i32, ++/*431057*/ OPC_MoveParent, ++/*431058*/ OPC_MoveChild7, ++/*431059*/ OPC_CheckInteger, 15, ++/*431061*/ OPC_CheckType, MVT::i32, ++/*431063*/ OPC_MoveParent, ++/*431064*/ OPC_CheckType, MVT::v8i16, ++/*431066*/ OPC_MoveParent, ++/*431067*/ OPC_MoveParent, ++/*431068*/ OPC_MoveParent, ++/*431069*/ OPC_MoveChild1, ++/*431070*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*431073*/ OPC_CheckChild0Integer, 1, ++/*431075*/ OPC_CheckChild0Type, MVT::i32, ++/*431077*/ OPC_CheckChild1Integer, 1, ++/*431079*/ OPC_CheckChild1Type, MVT::i32, ++/*431081*/ OPC_CheckChild2Integer, 1, ++/*431083*/ OPC_CheckChild2Type, MVT::i32, ++/*431085*/ OPC_CheckChild3Integer, 1, ++/*431087*/ OPC_CheckChild3Type, MVT::i32, ++/*431089*/ OPC_CheckChild4Integer, 1, ++/*431091*/ OPC_CheckChild4Type, MVT::i32, ++/*431093*/ OPC_MoveChild5, ++/*431094*/ OPC_CheckInteger, 1, ++/*431096*/ OPC_CheckType, MVT::i32, ++/*431098*/ OPC_MoveParent, ++/*431099*/ OPC_MoveChild6, ++/*431100*/ OPC_CheckInteger, 1, ++/*431102*/ OPC_CheckType, MVT::i32, ++/*431104*/ OPC_MoveParent, ++/*431105*/ OPC_MoveChild7, ++/*431106*/ OPC_CheckInteger, 1, ++/*431108*/ OPC_CheckType, MVT::i32, ++/*431110*/ OPC_MoveParent, ++/*431111*/ OPC_CheckType, MVT::v8i16, ++/*431113*/ OPC_MoveParent, ++/*431114*/ OPC_CheckType, MVT::v8i16, ++/*431116*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*431118*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b)), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*431126*/ 0, /*End of Scope*/ ++/*431127*/ /*Scope*/ 58|128,2/*314*/, /*->431443*/ ++/*431129*/ OPC_CheckChild0Same, 1, ++/*431131*/ OPC_MoveChild1, ++/*431132*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*431135*/ OPC_Scope, 23|128,1/*151*/, /*->431289*/ // 2 children in Scope ++/*431138*/ OPC_MoveChild0, ++/*431139*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*431142*/ OPC_CheckChild0Integer, 1, ++/*431144*/ OPC_CheckChild0Type, MVT::i32, ++/*431146*/ OPC_CheckChild1Integer, 1, ++/*431148*/ OPC_CheckChild1Type, MVT::i32, ++/*431150*/ OPC_CheckChild2Integer, 1, ++/*431152*/ OPC_CheckChild2Type, MVT::i32, ++/*431154*/ OPC_CheckChild3Integer, 1, ++/*431156*/ OPC_CheckChild3Type, MVT::i32, ++/*431158*/ OPC_CheckChild4Integer, 1, ++/*431160*/ OPC_CheckChild4Type, MVT::i32, ++/*431162*/ OPC_MoveChild5, ++/*431163*/ OPC_CheckInteger, 1, ++/*431165*/ OPC_CheckType, MVT::i32, ++/*431167*/ OPC_MoveParent, ++/*431168*/ OPC_MoveChild6, ++/*431169*/ OPC_CheckInteger, 1, ++/*431171*/ OPC_CheckType, MVT::i32, ++/*431173*/ OPC_MoveParent, ++/*431174*/ OPC_MoveChild7, ++/*431175*/ OPC_CheckInteger, 1, ++/*431177*/ OPC_CheckType, MVT::i32, ++/*431179*/ OPC_MoveParent, ++/*431180*/ OPC_MoveParent, ++/*431181*/ OPC_CheckChild1Same, 0, ++/*431183*/ OPC_MoveParent, ++/*431184*/ OPC_MoveParent, ++/*431185*/ OPC_MoveChild1, ++/*431186*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*431189*/ OPC_CheckChild0Integer, 15, ++/*431191*/ OPC_CheckChild0Type, MVT::i32, ++/*431193*/ OPC_CheckChild1Integer, 15, ++/*431195*/ OPC_CheckChild1Type, MVT::i32, ++/*431197*/ OPC_CheckChild2Integer, 15, ++/*431199*/ OPC_CheckChild2Type, MVT::i32, ++/*431201*/ OPC_CheckChild3Integer, 15, ++/*431203*/ OPC_CheckChild3Type, MVT::i32, ++/*431205*/ OPC_CheckChild4Integer, 15, ++/*431207*/ OPC_CheckChild4Type, MVT::i32, ++/*431209*/ OPC_MoveChild5, ++/*431210*/ OPC_CheckInteger, 15, ++/*431212*/ OPC_CheckType, MVT::i32, ++/*431214*/ OPC_MoveParent, ++/*431215*/ OPC_MoveChild6, ++/*431216*/ OPC_CheckInteger, 15, ++/*431218*/ OPC_CheckType, MVT::i32, ++/*431220*/ OPC_MoveParent, ++/*431221*/ OPC_MoveChild7, ++/*431222*/ OPC_CheckInteger, 15, ++/*431224*/ OPC_CheckType, MVT::i32, ++/*431226*/ OPC_MoveParent, ++/*431227*/ OPC_CheckType, MVT::v8i16, ++/*431229*/ OPC_MoveParent, ++/*431230*/ OPC_MoveParent, ++/*431231*/ OPC_MoveParent, ++/*431232*/ OPC_MoveChild1, ++/*431233*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*431236*/ OPC_CheckChild0Integer, 1, ++/*431238*/ OPC_CheckChild0Type, MVT::i32, ++/*431240*/ OPC_CheckChild1Integer, 1, ++/*431242*/ OPC_CheckChild1Type, MVT::i32, ++/*431244*/ OPC_CheckChild2Integer, 1, ++/*431246*/ OPC_CheckChild2Type, MVT::i32, ++/*431248*/ OPC_CheckChild3Integer, 1, ++/*431250*/ OPC_CheckChild3Type, MVT::i32, ++/*431252*/ OPC_CheckChild4Integer, 1, ++/*431254*/ OPC_CheckChild4Type, MVT::i32, ++/*431256*/ OPC_MoveChild5, ++/*431257*/ OPC_CheckInteger, 1, ++/*431259*/ OPC_CheckType, MVT::i32, ++/*431261*/ OPC_MoveParent, ++/*431262*/ OPC_MoveChild6, ++/*431263*/ OPC_CheckInteger, 1, ++/*431265*/ OPC_CheckType, MVT::i32, ++/*431267*/ OPC_MoveParent, ++/*431268*/ OPC_MoveChild7, ++/*431269*/ OPC_CheckInteger, 1, ++/*431271*/ OPC_CheckType, MVT::i32, ++/*431273*/ OPC_MoveParent, ++/*431274*/ OPC_CheckType, MVT::v8i16, ++/*431276*/ OPC_MoveParent, ++/*431277*/ OPC_CheckType, MVT::v8i16, ++/*431279*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*431281*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b)), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*431289*/ /*Scope*/ 23|128,1/*151*/, /*->431442*/ ++/*431291*/ OPC_CheckChild0Same, 0, ++/*431293*/ OPC_MoveChild1, ++/*431294*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*431297*/ OPC_CheckChild0Integer, 1, ++/*431299*/ OPC_CheckChild0Type, MVT::i32, ++/*431301*/ OPC_CheckChild1Integer, 1, ++/*431303*/ OPC_CheckChild1Type, MVT::i32, ++/*431305*/ OPC_CheckChild2Integer, 1, ++/*431307*/ OPC_CheckChild2Type, MVT::i32, ++/*431309*/ OPC_CheckChild3Integer, 1, ++/*431311*/ OPC_CheckChild3Type, MVT::i32, ++/*431313*/ OPC_CheckChild4Integer, 1, ++/*431315*/ OPC_CheckChild4Type, MVT::i32, ++/*431317*/ OPC_MoveChild5, ++/*431318*/ OPC_CheckInteger, 1, ++/*431320*/ OPC_CheckType, MVT::i32, ++/*431322*/ OPC_MoveParent, ++/*431323*/ OPC_MoveChild6, ++/*431324*/ OPC_CheckInteger, 1, ++/*431326*/ OPC_CheckType, MVT::i32, ++/*431328*/ OPC_MoveParent, ++/*431329*/ OPC_MoveChild7, ++/*431330*/ OPC_CheckInteger, 1, ++/*431332*/ OPC_CheckType, MVT::i32, ++/*431334*/ OPC_MoveParent, ++/*431335*/ OPC_MoveParent, ++/*431336*/ OPC_MoveParent, ++/*431337*/ OPC_MoveParent, ++/*431338*/ OPC_MoveChild1, ++/*431339*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*431342*/ OPC_CheckChild0Integer, 15, ++/*431344*/ OPC_CheckChild0Type, MVT::i32, ++/*431346*/ OPC_CheckChild1Integer, 15, ++/*431348*/ OPC_CheckChild1Type, MVT::i32, ++/*431350*/ OPC_CheckChild2Integer, 15, ++/*431352*/ OPC_CheckChild2Type, MVT::i32, ++/*431354*/ OPC_CheckChild3Integer, 15, ++/*431356*/ OPC_CheckChild3Type, MVT::i32, ++/*431358*/ OPC_CheckChild4Integer, 15, ++/*431360*/ OPC_CheckChild4Type, MVT::i32, ++/*431362*/ OPC_MoveChild5, ++/*431363*/ OPC_CheckInteger, 15, ++/*431365*/ OPC_CheckType, MVT::i32, ++/*431367*/ OPC_MoveParent, ++/*431368*/ OPC_MoveChild6, ++/*431369*/ OPC_CheckInteger, 15, ++/*431371*/ OPC_CheckType, MVT::i32, ++/*431373*/ OPC_MoveParent, ++/*431374*/ OPC_MoveChild7, ++/*431375*/ OPC_CheckInteger, 15, ++/*431377*/ OPC_CheckType, MVT::i32, ++/*431379*/ OPC_MoveParent, ++/*431380*/ OPC_CheckType, MVT::v8i16, ++/*431382*/ OPC_MoveParent, ++/*431383*/ OPC_MoveParent, ++/*431384*/ OPC_MoveParent, ++/*431385*/ OPC_MoveChild1, ++/*431386*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*431389*/ OPC_CheckChild0Integer, 1, ++/*431391*/ OPC_CheckChild0Type, MVT::i32, ++/*431393*/ OPC_CheckChild1Integer, 1, ++/*431395*/ OPC_CheckChild1Type, MVT::i32, ++/*431397*/ OPC_CheckChild2Integer, 1, ++/*431399*/ OPC_CheckChild2Type, MVT::i32, ++/*431401*/ OPC_CheckChild3Integer, 1, ++/*431403*/ OPC_CheckChild3Type, MVT::i32, ++/*431405*/ OPC_CheckChild4Integer, 1, ++/*431407*/ OPC_CheckChild4Type, MVT::i32, ++/*431409*/ OPC_MoveChild5, ++/*431410*/ OPC_CheckInteger, 1, ++/*431412*/ OPC_CheckType, MVT::i32, ++/*431414*/ OPC_MoveParent, ++/*431415*/ OPC_MoveChild6, ++/*431416*/ OPC_CheckInteger, 1, ++/*431418*/ OPC_CheckType, MVT::i32, ++/*431420*/ OPC_MoveParent, ++/*431421*/ OPC_MoveChild7, ++/*431422*/ OPC_CheckInteger, 1, ++/*431424*/ OPC_CheckType, MVT::i32, ++/*431426*/ OPC_MoveParent, ++/*431427*/ OPC_CheckType, MVT::v8i16, ++/*431429*/ OPC_MoveParent, ++/*431430*/ OPC_CheckType, MVT::v8i16, ++/*431432*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*431434*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b)), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*431442*/ 0, /*End of Scope*/ ++/*431443*/ /*Scope*/ 58|128,2/*314*/, /*->431759*/ ++/*431445*/ OPC_CheckChild0Same, 0, ++/*431447*/ OPC_MoveChild1, ++/*431448*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*431451*/ OPC_Scope, 23|128,1/*151*/, /*->431605*/ // 2 children in Scope ++/*431454*/ OPC_MoveChild0, ++/*431455*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*431458*/ OPC_CheckChild0Integer, 1, ++/*431460*/ OPC_CheckChild0Type, MVT::i32, ++/*431462*/ OPC_CheckChild1Integer, 1, ++/*431464*/ OPC_CheckChild1Type, MVT::i32, ++/*431466*/ OPC_CheckChild2Integer, 1, ++/*431468*/ OPC_CheckChild2Type, MVT::i32, ++/*431470*/ OPC_CheckChild3Integer, 1, ++/*431472*/ OPC_CheckChild3Type, MVT::i32, ++/*431474*/ OPC_CheckChild4Integer, 1, ++/*431476*/ OPC_CheckChild4Type, MVT::i32, ++/*431478*/ OPC_MoveChild5, ++/*431479*/ OPC_CheckInteger, 1, ++/*431481*/ OPC_CheckType, MVT::i32, ++/*431483*/ OPC_MoveParent, ++/*431484*/ OPC_MoveChild6, ++/*431485*/ OPC_CheckInteger, 1, ++/*431487*/ OPC_CheckType, MVT::i32, ++/*431489*/ OPC_MoveParent, ++/*431490*/ OPC_MoveChild7, ++/*431491*/ OPC_CheckInteger, 1, ++/*431493*/ OPC_CheckType, MVT::i32, ++/*431495*/ OPC_MoveParent, ++/*431496*/ OPC_MoveParent, ++/*431497*/ OPC_CheckChild1Same, 1, ++/*431499*/ OPC_MoveParent, ++/*431500*/ OPC_MoveParent, ++/*431501*/ OPC_MoveChild1, ++/*431502*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*431505*/ OPC_CheckChild0Integer, 15, ++/*431507*/ OPC_CheckChild0Type, MVT::i32, ++/*431509*/ OPC_CheckChild1Integer, 15, ++/*431511*/ OPC_CheckChild1Type, MVT::i32, ++/*431513*/ OPC_CheckChild2Integer, 15, ++/*431515*/ OPC_CheckChild2Type, MVT::i32, ++/*431517*/ OPC_CheckChild3Integer, 15, ++/*431519*/ OPC_CheckChild3Type, MVT::i32, ++/*431521*/ OPC_CheckChild4Integer, 15, ++/*431523*/ OPC_CheckChild4Type, MVT::i32, ++/*431525*/ OPC_MoveChild5, ++/*431526*/ OPC_CheckInteger, 15, ++/*431528*/ OPC_CheckType, MVT::i32, ++/*431530*/ OPC_MoveParent, ++/*431531*/ OPC_MoveChild6, ++/*431532*/ OPC_CheckInteger, 15, ++/*431534*/ OPC_CheckType, MVT::i32, ++/*431536*/ OPC_MoveParent, ++/*431537*/ OPC_MoveChild7, ++/*431538*/ OPC_CheckInteger, 15, ++/*431540*/ OPC_CheckType, MVT::i32, ++/*431542*/ OPC_MoveParent, ++/*431543*/ OPC_CheckType, MVT::v8i16, ++/*431545*/ OPC_MoveParent, ++/*431546*/ OPC_MoveParent, ++/*431547*/ OPC_MoveParent, ++/*431548*/ OPC_MoveChild1, ++/*431549*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*431552*/ OPC_CheckChild0Integer, 1, ++/*431554*/ OPC_CheckChild0Type, MVT::i32, ++/*431556*/ OPC_CheckChild1Integer, 1, ++/*431558*/ OPC_CheckChild1Type, MVT::i32, ++/*431560*/ OPC_CheckChild2Integer, 1, ++/*431562*/ OPC_CheckChild2Type, MVT::i32, ++/*431564*/ OPC_CheckChild3Integer, 1, ++/*431566*/ OPC_CheckChild3Type, MVT::i32, ++/*431568*/ OPC_CheckChild4Integer, 1, ++/*431570*/ OPC_CheckChild4Type, MVT::i32, ++/*431572*/ OPC_MoveChild5, ++/*431573*/ OPC_CheckInteger, 1, ++/*431575*/ OPC_CheckType, MVT::i32, ++/*431577*/ OPC_MoveParent, ++/*431578*/ OPC_MoveChild6, ++/*431579*/ OPC_CheckInteger, 1, ++/*431581*/ OPC_CheckType, MVT::i32, ++/*431583*/ OPC_MoveParent, ++/*431584*/ OPC_MoveChild7, ++/*431585*/ OPC_CheckInteger, 1, ++/*431587*/ OPC_CheckType, MVT::i32, ++/*431589*/ OPC_MoveParent, ++/*431590*/ OPC_CheckType, MVT::v8i16, ++/*431592*/ OPC_MoveParent, ++/*431593*/ OPC_CheckType, MVT::v8i16, ++/*431595*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*431597*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b)), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*431605*/ /*Scope*/ 23|128,1/*151*/, /*->431758*/ ++/*431607*/ OPC_CheckChild0Same, 1, ++/*431609*/ OPC_MoveChild1, ++/*431610*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*431613*/ OPC_CheckChild0Integer, 1, ++/*431615*/ OPC_CheckChild0Type, MVT::i32, ++/*431617*/ OPC_CheckChild1Integer, 1, ++/*431619*/ OPC_CheckChild1Type, MVT::i32, ++/*431621*/ OPC_CheckChild2Integer, 1, ++/*431623*/ OPC_CheckChild2Type, MVT::i32, ++/*431625*/ OPC_CheckChild3Integer, 1, ++/*431627*/ OPC_CheckChild3Type, MVT::i32, ++/*431629*/ OPC_CheckChild4Integer, 1, ++/*431631*/ OPC_CheckChild4Type, MVT::i32, ++/*431633*/ OPC_MoveChild5, ++/*431634*/ OPC_CheckInteger, 1, ++/*431636*/ OPC_CheckType, MVT::i32, ++/*431638*/ OPC_MoveParent, ++/*431639*/ OPC_MoveChild6, ++/*431640*/ OPC_CheckInteger, 1, ++/*431642*/ OPC_CheckType, MVT::i32, ++/*431644*/ OPC_MoveParent, ++/*431645*/ OPC_MoveChild7, ++/*431646*/ OPC_CheckInteger, 1, ++/*431648*/ OPC_CheckType, MVT::i32, ++/*431650*/ OPC_MoveParent, ++/*431651*/ OPC_MoveParent, ++/*431652*/ OPC_MoveParent, ++/*431653*/ OPC_MoveParent, ++/*431654*/ OPC_MoveChild1, ++/*431655*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*431658*/ OPC_CheckChild0Integer, 15, ++/*431660*/ OPC_CheckChild0Type, MVT::i32, ++/*431662*/ OPC_CheckChild1Integer, 15, ++/*431664*/ OPC_CheckChild1Type, MVT::i32, ++/*431666*/ OPC_CheckChild2Integer, 15, ++/*431668*/ OPC_CheckChild2Type, MVT::i32, ++/*431670*/ OPC_CheckChild3Integer, 15, ++/*431672*/ OPC_CheckChild3Type, MVT::i32, ++/*431674*/ OPC_CheckChild4Integer, 15, ++/*431676*/ OPC_CheckChild4Type, MVT::i32, ++/*431678*/ OPC_MoveChild5, ++/*431679*/ OPC_CheckInteger, 15, ++/*431681*/ OPC_CheckType, MVT::i32, ++/*431683*/ OPC_MoveParent, ++/*431684*/ OPC_MoveChild6, ++/*431685*/ OPC_CheckInteger, 15, ++/*431687*/ OPC_CheckType, MVT::i32, ++/*431689*/ OPC_MoveParent, ++/*431690*/ OPC_MoveChild7, ++/*431691*/ OPC_CheckInteger, 15, ++/*431693*/ OPC_CheckType, MVT::i32, ++/*431695*/ OPC_MoveParent, ++/*431696*/ OPC_CheckType, MVT::v8i16, ++/*431698*/ OPC_MoveParent, ++/*431699*/ OPC_MoveParent, ++/*431700*/ OPC_MoveParent, ++/*431701*/ OPC_MoveChild1, ++/*431702*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*431705*/ OPC_CheckChild0Integer, 1, ++/*431707*/ OPC_CheckChild0Type, MVT::i32, ++/*431709*/ OPC_CheckChild1Integer, 1, ++/*431711*/ OPC_CheckChild1Type, MVT::i32, ++/*431713*/ OPC_CheckChild2Integer, 1, ++/*431715*/ OPC_CheckChild2Type, MVT::i32, ++/*431717*/ OPC_CheckChild3Integer, 1, ++/*431719*/ OPC_CheckChild3Type, MVT::i32, ++/*431721*/ OPC_CheckChild4Integer, 1, ++/*431723*/ OPC_CheckChild4Type, MVT::i32, ++/*431725*/ OPC_MoveChild5, ++/*431726*/ OPC_CheckInteger, 1, ++/*431728*/ OPC_CheckType, MVT::i32, ++/*431730*/ OPC_MoveParent, ++/*431731*/ OPC_MoveChild6, ++/*431732*/ OPC_CheckInteger, 1, ++/*431734*/ OPC_CheckType, MVT::i32, ++/*431736*/ OPC_MoveParent, ++/*431737*/ OPC_MoveChild7, ++/*431738*/ OPC_CheckInteger, 1, ++/*431740*/ OPC_CheckType, MVT::i32, ++/*431742*/ OPC_MoveParent, ++/*431743*/ OPC_CheckType, MVT::v8i16, ++/*431745*/ OPC_MoveParent, ++/*431746*/ OPC_CheckType, MVT::v8i16, ++/*431748*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*431750*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b)), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*431758*/ 0, /*End of Scope*/ ++/*431759*/ /*Scope*/ 72|128,8/*1096*/, /*->432857*/ ++/*431761*/ OPC_MoveChild0, ++/*431762*/ OPC_SwitchOpcode /*2 cases */, 25|128,1/*153*/, TARGET_VAL(ISD::BUILD_VECTOR),// ->431920 ++/*431767*/ OPC_CheckChild0Integer, 1, ++/*431769*/ OPC_CheckChild0Type, MVT::i32, ++/*431771*/ OPC_CheckChild1Integer, 1, ++/*431773*/ OPC_CheckChild1Type, MVT::i32, ++/*431775*/ OPC_CheckChild2Integer, 1, ++/*431777*/ OPC_CheckChild2Type, MVT::i32, ++/*431779*/ OPC_CheckChild3Integer, 1, ++/*431781*/ OPC_CheckChild3Type, MVT::i32, ++/*431783*/ OPC_CheckChild4Integer, 1, ++/*431785*/ OPC_CheckChild4Type, MVT::i32, ++/*431787*/ OPC_MoveChild5, ++/*431788*/ OPC_CheckInteger, 1, ++/*431790*/ OPC_CheckType, MVT::i32, ++/*431792*/ OPC_MoveParent, ++/*431793*/ OPC_MoveChild6, ++/*431794*/ OPC_CheckInteger, 1, ++/*431796*/ OPC_CheckType, MVT::i32, ++/*431798*/ OPC_MoveParent, ++/*431799*/ OPC_MoveChild7, ++/*431800*/ OPC_CheckInteger, 1, ++/*431802*/ OPC_CheckType, MVT::i32, ++/*431804*/ OPC_MoveParent, ++/*431805*/ OPC_MoveParent, ++/*431806*/ OPC_MoveChild1, ++/*431807*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*431810*/ OPC_CheckChild0Same, 1, ++/*431812*/ OPC_CheckChild1Same, 0, ++/*431814*/ OPC_MoveParent, ++/*431815*/ OPC_MoveParent, ++/*431816*/ OPC_MoveChild1, ++/*431817*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*431820*/ OPC_CheckChild0Integer, 15, ++/*431822*/ OPC_CheckChild0Type, MVT::i32, ++/*431824*/ OPC_CheckChild1Integer, 15, ++/*431826*/ OPC_CheckChild1Type, MVT::i32, ++/*431828*/ OPC_CheckChild2Integer, 15, ++/*431830*/ OPC_CheckChild2Type, MVT::i32, ++/*431832*/ OPC_CheckChild3Integer, 15, ++/*431834*/ OPC_CheckChild3Type, MVT::i32, ++/*431836*/ OPC_CheckChild4Integer, 15, ++/*431838*/ OPC_CheckChild4Type, MVT::i32, ++/*431840*/ OPC_MoveChild5, ++/*431841*/ OPC_CheckInteger, 15, ++/*431843*/ OPC_CheckType, MVT::i32, ++/*431845*/ OPC_MoveParent, ++/*431846*/ OPC_MoveChild6, ++/*431847*/ OPC_CheckInteger, 15, ++/*431849*/ OPC_CheckType, MVT::i32, ++/*431851*/ OPC_MoveParent, ++/*431852*/ OPC_MoveChild7, ++/*431853*/ OPC_CheckInteger, 15, ++/*431855*/ OPC_CheckType, MVT::i32, ++/*431857*/ OPC_MoveParent, ++/*431858*/ OPC_CheckType, MVT::v8i16, ++/*431860*/ OPC_MoveParent, ++/*431861*/ OPC_MoveParent, ++/*431862*/ OPC_MoveParent, ++/*431863*/ OPC_MoveChild1, ++/*431864*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*431867*/ OPC_CheckChild0Integer, 1, ++/*431869*/ OPC_CheckChild0Type, MVT::i32, ++/*431871*/ OPC_CheckChild1Integer, 1, ++/*431873*/ OPC_CheckChild1Type, MVT::i32, ++/*431875*/ OPC_CheckChild2Integer, 1, ++/*431877*/ OPC_CheckChild2Type, MVT::i32, ++/*431879*/ OPC_CheckChild3Integer, 1, ++/*431881*/ OPC_CheckChild3Type, MVT::i32, ++/*431883*/ OPC_CheckChild4Integer, 1, ++/*431885*/ OPC_CheckChild4Type, MVT::i32, ++/*431887*/ OPC_MoveChild5, ++/*431888*/ OPC_CheckInteger, 1, ++/*431890*/ OPC_CheckType, MVT::i32, ++/*431892*/ OPC_MoveParent, ++/*431893*/ OPC_MoveChild6, ++/*431894*/ OPC_CheckInteger, 1, ++/*431896*/ OPC_CheckType, MVT::i32, ++/*431898*/ OPC_MoveParent, ++/*431899*/ OPC_MoveChild7, ++/*431900*/ OPC_CheckInteger, 1, ++/*431902*/ OPC_CheckType, MVT::i32, ++/*431904*/ OPC_MoveParent, ++/*431905*/ OPC_CheckType, MVT::v8i16, ++/*431907*/ OPC_MoveParent, ++/*431908*/ OPC_CheckType, MVT::v8i16, ++/*431910*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*431912*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b)), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*431920*/ /*SwitchOpcode*/ 36|128,7/*932*/, TARGET_VAL(ISD::ADD),// ->432856 ++/*431924*/ OPC_Scope, 25|128,1/*153*/, /*->432080*/ // 6 children in Scope ++/*431927*/ OPC_MoveChild0, ++/*431928*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*431931*/ OPC_CheckChild0Integer, 1, ++/*431933*/ OPC_CheckChild0Type, MVT::i32, ++/*431935*/ OPC_CheckChild1Integer, 1, ++/*431937*/ OPC_CheckChild1Type, MVT::i32, ++/*431939*/ OPC_CheckChild2Integer, 1, ++/*431941*/ OPC_CheckChild2Type, MVT::i32, ++/*431943*/ OPC_CheckChild3Integer, 1, ++/*431945*/ OPC_CheckChild3Type, MVT::i32, ++/*431947*/ OPC_CheckChild4Integer, 1, ++/*431949*/ OPC_CheckChild4Type, MVT::i32, ++/*431951*/ OPC_MoveChild5, ++/*431952*/ OPC_CheckInteger, 1, ++/*431954*/ OPC_CheckType, MVT::i32, ++/*431956*/ OPC_MoveParent, ++/*431957*/ OPC_MoveChild6, ++/*431958*/ OPC_CheckInteger, 1, ++/*431960*/ OPC_CheckType, MVT::i32, ++/*431962*/ OPC_MoveParent, ++/*431963*/ OPC_MoveChild7, ++/*431964*/ OPC_CheckInteger, 1, ++/*431966*/ OPC_CheckType, MVT::i32, ++/*431968*/ OPC_MoveParent, ++/*431969*/ OPC_MoveParent, ++/*431970*/ OPC_CheckChild1Same, 1, ++/*431972*/ OPC_MoveParent, ++/*431973*/ OPC_CheckChild1Same, 0, ++/*431975*/ OPC_MoveParent, ++/*431976*/ OPC_MoveChild1, ++/*431977*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*431980*/ OPC_CheckChild0Integer, 15, ++/*431982*/ OPC_CheckChild0Type, MVT::i32, ++/*431984*/ OPC_CheckChild1Integer, 15, ++/*431986*/ OPC_CheckChild1Type, MVT::i32, ++/*431988*/ OPC_CheckChild2Integer, 15, ++/*431990*/ OPC_CheckChild2Type, MVT::i32, ++/*431992*/ OPC_CheckChild3Integer, 15, ++/*431994*/ OPC_CheckChild3Type, MVT::i32, ++/*431996*/ OPC_CheckChild4Integer, 15, ++/*431998*/ OPC_CheckChild4Type, MVT::i32, ++/*432000*/ OPC_MoveChild5, ++/*432001*/ OPC_CheckInteger, 15, ++/*432003*/ OPC_CheckType, MVT::i32, ++/*432005*/ OPC_MoveParent, ++/*432006*/ OPC_MoveChild6, ++/*432007*/ OPC_CheckInteger, 15, ++/*432009*/ OPC_CheckType, MVT::i32, ++/*432011*/ OPC_MoveParent, ++/*432012*/ OPC_MoveChild7, ++/*432013*/ OPC_CheckInteger, 15, ++/*432015*/ OPC_CheckType, MVT::i32, ++/*432017*/ OPC_MoveParent, ++/*432018*/ OPC_CheckType, MVT::v8i16, ++/*432020*/ OPC_MoveParent, ++/*432021*/ OPC_MoveParent, ++/*432022*/ OPC_MoveParent, ++/*432023*/ OPC_MoveChild1, ++/*432024*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*432027*/ OPC_CheckChild0Integer, 1, ++/*432029*/ OPC_CheckChild0Type, MVT::i32, ++/*432031*/ OPC_CheckChild1Integer, 1, ++/*432033*/ OPC_CheckChild1Type, MVT::i32, ++/*432035*/ OPC_CheckChild2Integer, 1, ++/*432037*/ OPC_CheckChild2Type, MVT::i32, ++/*432039*/ OPC_CheckChild3Integer, 1, ++/*432041*/ OPC_CheckChild3Type, MVT::i32, ++/*432043*/ OPC_CheckChild4Integer, 1, ++/*432045*/ OPC_CheckChild4Type, MVT::i32, ++/*432047*/ OPC_MoveChild5, ++/*432048*/ OPC_CheckInteger, 1, ++/*432050*/ OPC_CheckType, MVT::i32, ++/*432052*/ OPC_MoveParent, ++/*432053*/ OPC_MoveChild6, ++/*432054*/ OPC_CheckInteger, 1, ++/*432056*/ OPC_CheckType, MVT::i32, ++/*432058*/ OPC_MoveParent, ++/*432059*/ OPC_MoveChild7, ++/*432060*/ OPC_CheckInteger, 1, ++/*432062*/ OPC_CheckType, MVT::i32, ++/*432064*/ OPC_MoveParent, ++/*432065*/ OPC_CheckType, MVT::v8i16, ++/*432067*/ OPC_MoveParent, ++/*432068*/ OPC_CheckType, MVT::v8i16, ++/*432070*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*432072*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a)), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a), LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*432080*/ /*Scope*/ 25|128,1/*153*/, /*->432235*/ ++/*432082*/ OPC_CheckChild0Same, 1, ++/*432084*/ OPC_MoveChild1, ++/*432085*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*432088*/ OPC_CheckChild0Integer, 1, ++/*432090*/ OPC_CheckChild0Type, MVT::i32, ++/*432092*/ OPC_CheckChild1Integer, 1, ++/*432094*/ OPC_CheckChild1Type, MVT::i32, ++/*432096*/ OPC_CheckChild2Integer, 1, ++/*432098*/ OPC_CheckChild2Type, MVT::i32, ++/*432100*/ OPC_CheckChild3Integer, 1, ++/*432102*/ OPC_CheckChild3Type, MVT::i32, ++/*432104*/ OPC_CheckChild4Integer, 1, ++/*432106*/ OPC_CheckChild4Type, MVT::i32, ++/*432108*/ OPC_MoveChild5, ++/*432109*/ OPC_CheckInteger, 1, ++/*432111*/ OPC_CheckType, MVT::i32, ++/*432113*/ OPC_MoveParent, ++/*432114*/ OPC_MoveChild6, ++/*432115*/ OPC_CheckInteger, 1, ++/*432117*/ OPC_CheckType, MVT::i32, ++/*432119*/ OPC_MoveParent, ++/*432120*/ OPC_MoveChild7, ++/*432121*/ OPC_CheckInteger, 1, ++/*432123*/ OPC_CheckType, MVT::i32, ++/*432125*/ OPC_MoveParent, ++/*432126*/ OPC_MoveParent, ++/*432127*/ OPC_MoveParent, ++/*432128*/ OPC_CheckChild1Same, 0, ++/*432130*/ OPC_MoveParent, ++/*432131*/ OPC_MoveChild1, ++/*432132*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*432135*/ OPC_CheckChild0Integer, 15, ++/*432137*/ OPC_CheckChild0Type, MVT::i32, ++/*432139*/ OPC_CheckChild1Integer, 15, ++/*432141*/ OPC_CheckChild1Type, MVT::i32, ++/*432143*/ OPC_CheckChild2Integer, 15, ++/*432145*/ OPC_CheckChild2Type, MVT::i32, ++/*432147*/ OPC_CheckChild3Integer, 15, ++/*432149*/ OPC_CheckChild3Type, MVT::i32, ++/*432151*/ OPC_CheckChild4Integer, 15, ++/*432153*/ OPC_CheckChild4Type, MVT::i32, ++/*432155*/ OPC_MoveChild5, ++/*432156*/ OPC_CheckInteger, 15, ++/*432158*/ OPC_CheckType, MVT::i32, ++/*432160*/ OPC_MoveParent, ++/*432161*/ OPC_MoveChild6, ++/*432162*/ OPC_CheckInteger, 15, ++/*432164*/ OPC_CheckType, MVT::i32, ++/*432166*/ OPC_MoveParent, ++/*432167*/ OPC_MoveChild7, ++/*432168*/ OPC_CheckInteger, 15, ++/*432170*/ OPC_CheckType, MVT::i32, ++/*432172*/ OPC_MoveParent, ++/*432173*/ OPC_CheckType, MVT::v8i16, ++/*432175*/ OPC_MoveParent, ++/*432176*/ OPC_MoveParent, ++/*432177*/ OPC_MoveParent, ++/*432178*/ OPC_MoveChild1, ++/*432179*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*432182*/ OPC_CheckChild0Integer, 1, ++/*432184*/ OPC_CheckChild0Type, MVT::i32, ++/*432186*/ OPC_CheckChild1Integer, 1, ++/*432188*/ OPC_CheckChild1Type, MVT::i32, ++/*432190*/ OPC_CheckChild2Integer, 1, ++/*432192*/ OPC_CheckChild2Type, MVT::i32, ++/*432194*/ OPC_CheckChild3Integer, 1, ++/*432196*/ OPC_CheckChild3Type, MVT::i32, ++/*432198*/ OPC_CheckChild4Integer, 1, ++/*432200*/ OPC_CheckChild4Type, MVT::i32, ++/*432202*/ OPC_MoveChild5, ++/*432203*/ OPC_CheckInteger, 1, ++/*432205*/ OPC_CheckType, MVT::i32, ++/*432207*/ OPC_MoveParent, ++/*432208*/ OPC_MoveChild6, ++/*432209*/ OPC_CheckInteger, 1, ++/*432211*/ OPC_CheckType, MVT::i32, ++/*432213*/ OPC_MoveParent, ++/*432214*/ OPC_MoveChild7, ++/*432215*/ OPC_CheckInteger, 1, ++/*432217*/ OPC_CheckType, MVT::i32, ++/*432219*/ OPC_MoveParent, ++/*432220*/ OPC_CheckType, MVT::v8i16, ++/*432222*/ OPC_MoveParent, ++/*432223*/ OPC_CheckType, MVT::v8i16, ++/*432225*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*432227*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a)), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*432235*/ /*Scope*/ 25|128,1/*153*/, /*->432390*/ ++/*432237*/ OPC_MoveChild0, ++/*432238*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*432241*/ OPC_CheckChild0Integer, 1, ++/*432243*/ OPC_CheckChild0Type, MVT::i32, ++/*432245*/ OPC_CheckChild1Integer, 1, ++/*432247*/ OPC_CheckChild1Type, MVT::i32, ++/*432249*/ OPC_CheckChild2Integer, 1, ++/*432251*/ OPC_CheckChild2Type, MVT::i32, ++/*432253*/ OPC_CheckChild3Integer, 1, ++/*432255*/ OPC_CheckChild3Type, MVT::i32, ++/*432257*/ OPC_CheckChild4Integer, 1, ++/*432259*/ OPC_CheckChild4Type, MVT::i32, ++/*432261*/ OPC_MoveChild5, ++/*432262*/ OPC_CheckInteger, 1, ++/*432264*/ OPC_CheckType, MVT::i32, ++/*432266*/ OPC_MoveParent, ++/*432267*/ OPC_MoveChild6, ++/*432268*/ OPC_CheckInteger, 1, ++/*432270*/ OPC_CheckType, MVT::i32, ++/*432272*/ OPC_MoveParent, ++/*432273*/ OPC_MoveChild7, ++/*432274*/ OPC_CheckInteger, 1, ++/*432276*/ OPC_CheckType, MVT::i32, ++/*432278*/ OPC_MoveParent, ++/*432279*/ OPC_MoveParent, ++/*432280*/ OPC_CheckChild1Same, 0, ++/*432282*/ OPC_MoveParent, ++/*432283*/ OPC_CheckChild1Same, 1, ++/*432285*/ OPC_MoveParent, ++/*432286*/ OPC_MoveChild1, ++/*432287*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*432290*/ OPC_CheckChild0Integer, 15, ++/*432292*/ OPC_CheckChild0Type, MVT::i32, ++/*432294*/ OPC_CheckChild1Integer, 15, ++/*432296*/ OPC_CheckChild1Type, MVT::i32, ++/*432298*/ OPC_CheckChild2Integer, 15, ++/*432300*/ OPC_CheckChild2Type, MVT::i32, ++/*432302*/ OPC_CheckChild3Integer, 15, ++/*432304*/ OPC_CheckChild3Type, MVT::i32, ++/*432306*/ OPC_CheckChild4Integer, 15, ++/*432308*/ OPC_CheckChild4Type, MVT::i32, ++/*432310*/ OPC_MoveChild5, ++/*432311*/ OPC_CheckInteger, 15, ++/*432313*/ OPC_CheckType, MVT::i32, ++/*432315*/ OPC_MoveParent, ++/*432316*/ OPC_MoveChild6, ++/*432317*/ OPC_CheckInteger, 15, ++/*432319*/ OPC_CheckType, MVT::i32, ++/*432321*/ OPC_MoveParent, ++/*432322*/ OPC_MoveChild7, ++/*432323*/ OPC_CheckInteger, 15, ++/*432325*/ OPC_CheckType, MVT::i32, ++/*432327*/ OPC_MoveParent, ++/*432328*/ OPC_CheckType, MVT::v8i16, ++/*432330*/ OPC_MoveParent, ++/*432331*/ OPC_MoveParent, ++/*432332*/ OPC_MoveParent, ++/*432333*/ OPC_MoveChild1, ++/*432334*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*432337*/ OPC_CheckChild0Integer, 1, ++/*432339*/ OPC_CheckChild0Type, MVT::i32, ++/*432341*/ OPC_CheckChild1Integer, 1, ++/*432343*/ OPC_CheckChild1Type, MVT::i32, ++/*432345*/ OPC_CheckChild2Integer, 1, ++/*432347*/ OPC_CheckChild2Type, MVT::i32, ++/*432349*/ OPC_CheckChild3Integer, 1, ++/*432351*/ OPC_CheckChild3Type, MVT::i32, ++/*432353*/ OPC_CheckChild4Integer, 1, ++/*432355*/ OPC_CheckChild4Type, MVT::i32, ++/*432357*/ OPC_MoveChild5, ++/*432358*/ OPC_CheckInteger, 1, ++/*432360*/ OPC_CheckType, MVT::i32, ++/*432362*/ OPC_MoveParent, ++/*432363*/ OPC_MoveChild6, ++/*432364*/ OPC_CheckInteger, 1, ++/*432366*/ OPC_CheckType, MVT::i32, ++/*432368*/ OPC_MoveParent, ++/*432369*/ OPC_MoveChild7, ++/*432370*/ OPC_CheckInteger, 1, ++/*432372*/ OPC_CheckType, MVT::i32, ++/*432374*/ OPC_MoveParent, ++/*432375*/ OPC_CheckType, MVT::v8i16, ++/*432377*/ OPC_MoveParent, ++/*432378*/ OPC_CheckType, MVT::v8i16, ++/*432380*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*432382*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a)), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b), LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*432390*/ /*Scope*/ 25|128,1/*153*/, /*->432545*/ ++/*432392*/ OPC_CheckChild0Same, 0, ++/*432394*/ OPC_MoveChild1, ++/*432395*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*432398*/ OPC_CheckChild0Integer, 1, ++/*432400*/ OPC_CheckChild0Type, MVT::i32, ++/*432402*/ OPC_CheckChild1Integer, 1, ++/*432404*/ OPC_CheckChild1Type, MVT::i32, ++/*432406*/ OPC_CheckChild2Integer, 1, ++/*432408*/ OPC_CheckChild2Type, MVT::i32, ++/*432410*/ OPC_CheckChild3Integer, 1, ++/*432412*/ OPC_CheckChild3Type, MVT::i32, ++/*432414*/ OPC_CheckChild4Integer, 1, ++/*432416*/ OPC_CheckChild4Type, MVT::i32, ++/*432418*/ OPC_MoveChild5, ++/*432419*/ OPC_CheckInteger, 1, ++/*432421*/ OPC_CheckType, MVT::i32, ++/*432423*/ OPC_MoveParent, ++/*432424*/ OPC_MoveChild6, ++/*432425*/ OPC_CheckInteger, 1, ++/*432427*/ OPC_CheckType, MVT::i32, ++/*432429*/ OPC_MoveParent, ++/*432430*/ OPC_MoveChild7, ++/*432431*/ OPC_CheckInteger, 1, ++/*432433*/ OPC_CheckType, MVT::i32, ++/*432435*/ OPC_MoveParent, ++/*432436*/ OPC_MoveParent, ++/*432437*/ OPC_MoveParent, ++/*432438*/ OPC_CheckChild1Same, 1, ++/*432440*/ OPC_MoveParent, ++/*432441*/ OPC_MoveChild1, ++/*432442*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*432445*/ OPC_CheckChild0Integer, 15, ++/*432447*/ OPC_CheckChild0Type, MVT::i32, ++/*432449*/ OPC_CheckChild1Integer, 15, ++/*432451*/ OPC_CheckChild1Type, MVT::i32, ++/*432453*/ OPC_CheckChild2Integer, 15, ++/*432455*/ OPC_CheckChild2Type, MVT::i32, ++/*432457*/ OPC_CheckChild3Integer, 15, ++/*432459*/ OPC_CheckChild3Type, MVT::i32, ++/*432461*/ OPC_CheckChild4Integer, 15, ++/*432463*/ OPC_CheckChild4Type, MVT::i32, ++/*432465*/ OPC_MoveChild5, ++/*432466*/ OPC_CheckInteger, 15, ++/*432468*/ OPC_CheckType, MVT::i32, ++/*432470*/ OPC_MoveParent, ++/*432471*/ OPC_MoveChild6, ++/*432472*/ OPC_CheckInteger, 15, ++/*432474*/ OPC_CheckType, MVT::i32, ++/*432476*/ OPC_MoveParent, ++/*432477*/ OPC_MoveChild7, ++/*432478*/ OPC_CheckInteger, 15, ++/*432480*/ OPC_CheckType, MVT::i32, ++/*432482*/ OPC_MoveParent, ++/*432483*/ OPC_CheckType, MVT::v8i16, ++/*432485*/ OPC_MoveParent, ++/*432486*/ OPC_MoveParent, ++/*432487*/ OPC_MoveParent, ++/*432488*/ OPC_MoveChild1, ++/*432489*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*432492*/ OPC_CheckChild0Integer, 1, ++/*432494*/ OPC_CheckChild0Type, MVT::i32, ++/*432496*/ OPC_CheckChild1Integer, 1, ++/*432498*/ OPC_CheckChild1Type, MVT::i32, ++/*432500*/ OPC_CheckChild2Integer, 1, ++/*432502*/ OPC_CheckChild2Type, MVT::i32, ++/*432504*/ OPC_CheckChild3Integer, 1, ++/*432506*/ OPC_CheckChild3Type, MVT::i32, ++/*432508*/ OPC_CheckChild4Integer, 1, ++/*432510*/ OPC_CheckChild4Type, MVT::i32, ++/*432512*/ OPC_MoveChild5, ++/*432513*/ OPC_CheckInteger, 1, ++/*432515*/ OPC_CheckType, MVT::i32, ++/*432517*/ OPC_MoveParent, ++/*432518*/ OPC_MoveChild6, ++/*432519*/ OPC_CheckInteger, 1, ++/*432521*/ OPC_CheckType, MVT::i32, ++/*432523*/ OPC_MoveParent, ++/*432524*/ OPC_MoveChild7, ++/*432525*/ OPC_CheckInteger, 1, ++/*432527*/ OPC_CheckType, MVT::i32, ++/*432529*/ OPC_MoveParent, ++/*432530*/ OPC_CheckType, MVT::v8i16, ++/*432532*/ OPC_MoveParent, ++/*432533*/ OPC_CheckType, MVT::v8i16, ++/*432535*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*432537*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a)), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*432545*/ /*Scope*/ 25|128,1/*153*/, /*->432700*/ ++/*432547*/ OPC_CheckChild0Same, 1, ++/*432549*/ OPC_CheckChild1Same, 0, ++/*432551*/ OPC_MoveParent, ++/*432552*/ OPC_MoveChild1, ++/*432553*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*432556*/ OPC_CheckChild0Integer, 1, ++/*432558*/ OPC_CheckChild0Type, MVT::i32, ++/*432560*/ OPC_CheckChild1Integer, 1, ++/*432562*/ OPC_CheckChild1Type, MVT::i32, ++/*432564*/ OPC_CheckChild2Integer, 1, ++/*432566*/ OPC_CheckChild2Type, MVT::i32, ++/*432568*/ OPC_CheckChild3Integer, 1, ++/*432570*/ OPC_CheckChild3Type, MVT::i32, ++/*432572*/ OPC_CheckChild4Integer, 1, ++/*432574*/ OPC_CheckChild4Type, MVT::i32, ++/*432576*/ OPC_MoveChild5, ++/*432577*/ OPC_CheckInteger, 1, ++/*432579*/ OPC_CheckType, MVT::i32, ++/*432581*/ OPC_MoveParent, ++/*432582*/ OPC_MoveChild6, ++/*432583*/ OPC_CheckInteger, 1, ++/*432585*/ OPC_CheckType, MVT::i32, ++/*432587*/ OPC_MoveParent, ++/*432588*/ OPC_MoveChild7, ++/*432589*/ OPC_CheckInteger, 1, ++/*432591*/ OPC_CheckType, MVT::i32, ++/*432593*/ OPC_MoveParent, ++/*432594*/ OPC_MoveParent, ++/*432595*/ OPC_MoveParent, ++/*432596*/ OPC_MoveChild1, ++/*432597*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*432600*/ OPC_CheckChild0Integer, 15, ++/*432602*/ OPC_CheckChild0Type, MVT::i32, ++/*432604*/ OPC_CheckChild1Integer, 15, ++/*432606*/ OPC_CheckChild1Type, MVT::i32, ++/*432608*/ OPC_CheckChild2Integer, 15, ++/*432610*/ OPC_CheckChild2Type, MVT::i32, ++/*432612*/ OPC_CheckChild3Integer, 15, ++/*432614*/ OPC_CheckChild3Type, MVT::i32, ++/*432616*/ OPC_CheckChild4Integer, 15, ++/*432618*/ OPC_CheckChild4Type, MVT::i32, ++/*432620*/ OPC_MoveChild5, ++/*432621*/ OPC_CheckInteger, 15, ++/*432623*/ OPC_CheckType, MVT::i32, ++/*432625*/ OPC_MoveParent, ++/*432626*/ OPC_MoveChild6, ++/*432627*/ OPC_CheckInteger, 15, ++/*432629*/ OPC_CheckType, MVT::i32, ++/*432631*/ OPC_MoveParent, ++/*432632*/ OPC_MoveChild7, ++/*432633*/ OPC_CheckInteger, 15, ++/*432635*/ OPC_CheckType, MVT::i32, ++/*432637*/ OPC_MoveParent, ++/*432638*/ OPC_CheckType, MVT::v8i16, ++/*432640*/ OPC_MoveParent, ++/*432641*/ OPC_MoveParent, ++/*432642*/ OPC_MoveParent, ++/*432643*/ OPC_MoveChild1, ++/*432644*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*432647*/ OPC_CheckChild0Integer, 1, ++/*432649*/ OPC_CheckChild0Type, MVT::i32, ++/*432651*/ OPC_CheckChild1Integer, 1, ++/*432653*/ OPC_CheckChild1Type, MVT::i32, ++/*432655*/ OPC_CheckChild2Integer, 1, ++/*432657*/ OPC_CheckChild2Type, MVT::i32, ++/*432659*/ OPC_CheckChild3Integer, 1, ++/*432661*/ OPC_CheckChild3Type, MVT::i32, ++/*432663*/ OPC_CheckChild4Integer, 1, ++/*432665*/ OPC_CheckChild4Type, MVT::i32, ++/*432667*/ OPC_MoveChild5, ++/*432668*/ OPC_CheckInteger, 1, ++/*432670*/ OPC_CheckType, MVT::i32, ++/*432672*/ OPC_MoveParent, ++/*432673*/ OPC_MoveChild6, ++/*432674*/ OPC_CheckInteger, 1, ++/*432676*/ OPC_CheckType, MVT::i32, ++/*432678*/ OPC_MoveParent, ++/*432679*/ OPC_MoveChild7, ++/*432680*/ OPC_CheckInteger, 1, ++/*432682*/ OPC_CheckType, MVT::i32, ++/*432684*/ OPC_MoveParent, ++/*432685*/ OPC_CheckType, MVT::v8i16, ++/*432687*/ OPC_MoveParent, ++/*432688*/ OPC_CheckType, MVT::v8i16, ++/*432690*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*432692*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a)), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*432700*/ /*Scope*/ 25|128,1/*153*/, /*->432855*/ ++/*432702*/ OPC_CheckChild0Same, 0, ++/*432704*/ OPC_CheckChild1Same, 1, ++/*432706*/ OPC_MoveParent, ++/*432707*/ OPC_MoveChild1, ++/*432708*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*432711*/ OPC_CheckChild0Integer, 1, ++/*432713*/ OPC_CheckChild0Type, MVT::i32, ++/*432715*/ OPC_CheckChild1Integer, 1, ++/*432717*/ OPC_CheckChild1Type, MVT::i32, ++/*432719*/ OPC_CheckChild2Integer, 1, ++/*432721*/ OPC_CheckChild2Type, MVT::i32, ++/*432723*/ OPC_CheckChild3Integer, 1, ++/*432725*/ OPC_CheckChild3Type, MVT::i32, ++/*432727*/ OPC_CheckChild4Integer, 1, ++/*432729*/ OPC_CheckChild4Type, MVT::i32, ++/*432731*/ OPC_MoveChild5, ++/*432732*/ OPC_CheckInteger, 1, ++/*432734*/ OPC_CheckType, MVT::i32, ++/*432736*/ OPC_MoveParent, ++/*432737*/ OPC_MoveChild6, ++/*432738*/ OPC_CheckInteger, 1, ++/*432740*/ OPC_CheckType, MVT::i32, ++/*432742*/ OPC_MoveParent, ++/*432743*/ OPC_MoveChild7, ++/*432744*/ OPC_CheckInteger, 1, ++/*432746*/ OPC_CheckType, MVT::i32, ++/*432748*/ OPC_MoveParent, ++/*432749*/ OPC_MoveParent, ++/*432750*/ OPC_MoveParent, ++/*432751*/ OPC_MoveChild1, ++/*432752*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*432755*/ OPC_CheckChild0Integer, 15, ++/*432757*/ OPC_CheckChild0Type, MVT::i32, ++/*432759*/ OPC_CheckChild1Integer, 15, ++/*432761*/ OPC_CheckChild1Type, MVT::i32, ++/*432763*/ OPC_CheckChild2Integer, 15, ++/*432765*/ OPC_CheckChild2Type, MVT::i32, ++/*432767*/ OPC_CheckChild3Integer, 15, ++/*432769*/ OPC_CheckChild3Type, MVT::i32, ++/*432771*/ OPC_CheckChild4Integer, 15, ++/*432773*/ OPC_CheckChild4Type, MVT::i32, ++/*432775*/ OPC_MoveChild5, ++/*432776*/ OPC_CheckInteger, 15, ++/*432778*/ OPC_CheckType, MVT::i32, ++/*432780*/ OPC_MoveParent, ++/*432781*/ OPC_MoveChild6, ++/*432782*/ OPC_CheckInteger, 15, ++/*432784*/ OPC_CheckType, MVT::i32, ++/*432786*/ OPC_MoveParent, ++/*432787*/ OPC_MoveChild7, ++/*432788*/ OPC_CheckInteger, 15, ++/*432790*/ OPC_CheckType, MVT::i32, ++/*432792*/ OPC_MoveParent, ++/*432793*/ OPC_CheckType, MVT::v8i16, ++/*432795*/ OPC_MoveParent, ++/*432796*/ OPC_MoveParent, ++/*432797*/ OPC_MoveParent, ++/*432798*/ OPC_MoveChild1, ++/*432799*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*432802*/ OPC_CheckChild0Integer, 1, ++/*432804*/ OPC_CheckChild0Type, MVT::i32, ++/*432806*/ OPC_CheckChild1Integer, 1, ++/*432808*/ OPC_CheckChild1Type, MVT::i32, ++/*432810*/ OPC_CheckChild2Integer, 1, ++/*432812*/ OPC_CheckChild2Type, MVT::i32, ++/*432814*/ OPC_CheckChild3Integer, 1, ++/*432816*/ OPC_CheckChild3Type, MVT::i32, ++/*432818*/ OPC_CheckChild4Integer, 1, ++/*432820*/ OPC_CheckChild4Type, MVT::i32, ++/*432822*/ OPC_MoveChild5, ++/*432823*/ OPC_CheckInteger, 1, ++/*432825*/ OPC_CheckType, MVT::i32, ++/*432827*/ OPC_MoveParent, ++/*432828*/ OPC_MoveChild6, ++/*432829*/ OPC_CheckInteger, 1, ++/*432831*/ OPC_CheckType, MVT::i32, ++/*432833*/ OPC_MoveParent, ++/*432834*/ OPC_MoveChild7, ++/*432835*/ OPC_CheckInteger, 1, ++/*432837*/ OPC_CheckType, MVT::i32, ++/*432839*/ OPC_MoveParent, ++/*432840*/ OPC_CheckType, MVT::v8i16, ++/*432842*/ OPC_MoveParent, ++/*432843*/ OPC_CheckType, MVT::v8i16, ++/*432845*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*432847*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a)), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*432855*/ 0, /*End of Scope*/ ++/*432856*/ 0, // EndSwitchOpcode ++/*432857*/ /*Scope*/ 58|128,2/*314*/, /*->433173*/ ++/*432859*/ OPC_CheckChild0Same, 0, ++/*432861*/ OPC_MoveChild1, ++/*432862*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*432865*/ OPC_Scope, 23|128,1/*151*/, /*->433019*/ // 2 children in Scope ++/*432868*/ OPC_MoveChild0, ++/*432869*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*432872*/ OPC_CheckChild0Integer, 1, ++/*432874*/ OPC_CheckChild0Type, MVT::i32, ++/*432876*/ OPC_CheckChild1Integer, 1, ++/*432878*/ OPC_CheckChild1Type, MVT::i32, ++/*432880*/ OPC_CheckChild2Integer, 1, ++/*432882*/ OPC_CheckChild2Type, MVT::i32, ++/*432884*/ OPC_CheckChild3Integer, 1, ++/*432886*/ OPC_CheckChild3Type, MVT::i32, ++/*432888*/ OPC_CheckChild4Integer, 1, ++/*432890*/ OPC_CheckChild4Type, MVT::i32, ++/*432892*/ OPC_MoveChild5, ++/*432893*/ OPC_CheckInteger, 1, ++/*432895*/ OPC_CheckType, MVT::i32, ++/*432897*/ OPC_MoveParent, ++/*432898*/ OPC_MoveChild6, ++/*432899*/ OPC_CheckInteger, 1, ++/*432901*/ OPC_CheckType, MVT::i32, ++/*432903*/ OPC_MoveParent, ++/*432904*/ OPC_MoveChild7, ++/*432905*/ OPC_CheckInteger, 1, ++/*432907*/ OPC_CheckType, MVT::i32, ++/*432909*/ OPC_MoveParent, ++/*432910*/ OPC_MoveParent, ++/*432911*/ OPC_CheckChild1Same, 1, ++/*432913*/ OPC_MoveParent, ++/*432914*/ OPC_MoveParent, ++/*432915*/ OPC_MoveChild1, ++/*432916*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*432919*/ OPC_CheckChild0Integer, 15, ++/*432921*/ OPC_CheckChild0Type, MVT::i32, ++/*432923*/ OPC_CheckChild1Integer, 15, ++/*432925*/ OPC_CheckChild1Type, MVT::i32, ++/*432927*/ OPC_CheckChild2Integer, 15, ++/*432929*/ OPC_CheckChild2Type, MVT::i32, ++/*432931*/ OPC_CheckChild3Integer, 15, ++/*432933*/ OPC_CheckChild3Type, MVT::i32, ++/*432935*/ OPC_CheckChild4Integer, 15, ++/*432937*/ OPC_CheckChild4Type, MVT::i32, ++/*432939*/ OPC_MoveChild5, ++/*432940*/ OPC_CheckInteger, 15, ++/*432942*/ OPC_CheckType, MVT::i32, ++/*432944*/ OPC_MoveParent, ++/*432945*/ OPC_MoveChild6, ++/*432946*/ OPC_CheckInteger, 15, ++/*432948*/ OPC_CheckType, MVT::i32, ++/*432950*/ OPC_MoveParent, ++/*432951*/ OPC_MoveChild7, ++/*432952*/ OPC_CheckInteger, 15, ++/*432954*/ OPC_CheckType, MVT::i32, ++/*432956*/ OPC_MoveParent, ++/*432957*/ OPC_CheckType, MVT::v8i16, ++/*432959*/ OPC_MoveParent, ++/*432960*/ OPC_MoveParent, ++/*432961*/ OPC_MoveParent, ++/*432962*/ OPC_MoveChild1, ++/*432963*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*432966*/ OPC_CheckChild0Integer, 1, ++/*432968*/ OPC_CheckChild0Type, MVT::i32, ++/*432970*/ OPC_CheckChild1Integer, 1, ++/*432972*/ OPC_CheckChild1Type, MVT::i32, ++/*432974*/ OPC_CheckChild2Integer, 1, ++/*432976*/ OPC_CheckChild2Type, MVT::i32, ++/*432978*/ OPC_CheckChild3Integer, 1, ++/*432980*/ OPC_CheckChild3Type, MVT::i32, ++/*432982*/ OPC_CheckChild4Integer, 1, ++/*432984*/ OPC_CheckChild4Type, MVT::i32, ++/*432986*/ OPC_MoveChild5, ++/*432987*/ OPC_CheckInteger, 1, ++/*432989*/ OPC_CheckType, MVT::i32, ++/*432991*/ OPC_MoveParent, ++/*432992*/ OPC_MoveChild6, ++/*432993*/ OPC_CheckInteger, 1, ++/*432995*/ OPC_CheckType, MVT::i32, ++/*432997*/ OPC_MoveParent, ++/*432998*/ OPC_MoveChild7, ++/*432999*/ OPC_CheckInteger, 1, ++/*433001*/ OPC_CheckType, MVT::i32, ++/*433003*/ OPC_MoveParent, ++/*433004*/ OPC_CheckType, MVT::v8i16, ++/*433006*/ OPC_MoveParent, ++/*433007*/ OPC_CheckType, MVT::v8i16, ++/*433009*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*433011*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a)), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*433019*/ /*Scope*/ 23|128,1/*151*/, /*->433172*/ ++/*433021*/ OPC_CheckChild0Same, 1, ++/*433023*/ OPC_MoveChild1, ++/*433024*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*433027*/ OPC_CheckChild0Integer, 1, ++/*433029*/ OPC_CheckChild0Type, MVT::i32, ++/*433031*/ OPC_CheckChild1Integer, 1, ++/*433033*/ OPC_CheckChild1Type, MVT::i32, ++/*433035*/ OPC_CheckChild2Integer, 1, ++/*433037*/ OPC_CheckChild2Type, MVT::i32, ++/*433039*/ OPC_CheckChild3Integer, 1, ++/*433041*/ OPC_CheckChild3Type, MVT::i32, ++/*433043*/ OPC_CheckChild4Integer, 1, ++/*433045*/ OPC_CheckChild4Type, MVT::i32, ++/*433047*/ OPC_MoveChild5, ++/*433048*/ OPC_CheckInteger, 1, ++/*433050*/ OPC_CheckType, MVT::i32, ++/*433052*/ OPC_MoveParent, ++/*433053*/ OPC_MoveChild6, ++/*433054*/ OPC_CheckInteger, 1, ++/*433056*/ OPC_CheckType, MVT::i32, ++/*433058*/ OPC_MoveParent, ++/*433059*/ OPC_MoveChild7, ++/*433060*/ OPC_CheckInteger, 1, ++/*433062*/ OPC_CheckType, MVT::i32, ++/*433064*/ OPC_MoveParent, ++/*433065*/ OPC_MoveParent, ++/*433066*/ OPC_MoveParent, ++/*433067*/ OPC_MoveParent, ++/*433068*/ OPC_MoveChild1, ++/*433069*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*433072*/ OPC_CheckChild0Integer, 15, ++/*433074*/ OPC_CheckChild0Type, MVT::i32, ++/*433076*/ OPC_CheckChild1Integer, 15, ++/*433078*/ OPC_CheckChild1Type, MVT::i32, ++/*433080*/ OPC_CheckChild2Integer, 15, ++/*433082*/ OPC_CheckChild2Type, MVT::i32, ++/*433084*/ OPC_CheckChild3Integer, 15, ++/*433086*/ OPC_CheckChild3Type, MVT::i32, ++/*433088*/ OPC_CheckChild4Integer, 15, ++/*433090*/ OPC_CheckChild4Type, MVT::i32, ++/*433092*/ OPC_MoveChild5, ++/*433093*/ OPC_CheckInteger, 15, ++/*433095*/ OPC_CheckType, MVT::i32, ++/*433097*/ OPC_MoveParent, ++/*433098*/ OPC_MoveChild6, ++/*433099*/ OPC_CheckInteger, 15, ++/*433101*/ OPC_CheckType, MVT::i32, ++/*433103*/ OPC_MoveParent, ++/*433104*/ OPC_MoveChild7, ++/*433105*/ OPC_CheckInteger, 15, ++/*433107*/ OPC_CheckType, MVT::i32, ++/*433109*/ OPC_MoveParent, ++/*433110*/ OPC_CheckType, MVT::v8i16, ++/*433112*/ OPC_MoveParent, ++/*433113*/ OPC_MoveParent, ++/*433114*/ OPC_MoveParent, ++/*433115*/ OPC_MoveChild1, ++/*433116*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*433119*/ OPC_CheckChild0Integer, 1, ++/*433121*/ OPC_CheckChild0Type, MVT::i32, ++/*433123*/ OPC_CheckChild1Integer, 1, ++/*433125*/ OPC_CheckChild1Type, MVT::i32, ++/*433127*/ OPC_CheckChild2Integer, 1, ++/*433129*/ OPC_CheckChild2Type, MVT::i32, ++/*433131*/ OPC_CheckChild3Integer, 1, ++/*433133*/ OPC_CheckChild3Type, MVT::i32, ++/*433135*/ OPC_CheckChild4Integer, 1, ++/*433137*/ OPC_CheckChild4Type, MVT::i32, ++/*433139*/ OPC_MoveChild5, ++/*433140*/ OPC_CheckInteger, 1, ++/*433142*/ OPC_CheckType, MVT::i32, ++/*433144*/ OPC_MoveParent, ++/*433145*/ OPC_MoveChild6, ++/*433146*/ OPC_CheckInteger, 1, ++/*433148*/ OPC_CheckType, MVT::i32, ++/*433150*/ OPC_MoveParent, ++/*433151*/ OPC_MoveChild7, ++/*433152*/ OPC_CheckInteger, 1, ++/*433154*/ OPC_CheckType, MVT::i32, ++/*433156*/ OPC_MoveParent, ++/*433157*/ OPC_CheckType, MVT::v8i16, ++/*433159*/ OPC_MoveParent, ++/*433160*/ OPC_CheckType, MVT::v8i16, ++/*433162*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*433164*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a)), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*433172*/ 0, /*End of Scope*/ ++/*433173*/ /*Scope*/ 58|128,2/*314*/, /*->433489*/ ++/*433175*/ OPC_CheckChild0Same, 1, ++/*433177*/ OPC_MoveChild1, ++/*433178*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*433181*/ OPC_Scope, 23|128,1/*151*/, /*->433335*/ // 2 children in Scope ++/*433184*/ OPC_MoveChild0, ++/*433185*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*433188*/ OPC_CheckChild0Integer, 1, ++/*433190*/ OPC_CheckChild0Type, MVT::i32, ++/*433192*/ OPC_CheckChild1Integer, 1, ++/*433194*/ OPC_CheckChild1Type, MVT::i32, ++/*433196*/ OPC_CheckChild2Integer, 1, ++/*433198*/ OPC_CheckChild2Type, MVT::i32, ++/*433200*/ OPC_CheckChild3Integer, 1, ++/*433202*/ OPC_CheckChild3Type, MVT::i32, ++/*433204*/ OPC_CheckChild4Integer, 1, ++/*433206*/ OPC_CheckChild4Type, MVT::i32, ++/*433208*/ OPC_MoveChild5, ++/*433209*/ OPC_CheckInteger, 1, ++/*433211*/ OPC_CheckType, MVT::i32, ++/*433213*/ OPC_MoveParent, ++/*433214*/ OPC_MoveChild6, ++/*433215*/ OPC_CheckInteger, 1, ++/*433217*/ OPC_CheckType, MVT::i32, ++/*433219*/ OPC_MoveParent, ++/*433220*/ OPC_MoveChild7, ++/*433221*/ OPC_CheckInteger, 1, ++/*433223*/ OPC_CheckType, MVT::i32, ++/*433225*/ OPC_MoveParent, ++/*433226*/ OPC_MoveParent, ++/*433227*/ OPC_CheckChild1Same, 0, ++/*433229*/ OPC_MoveParent, ++/*433230*/ OPC_MoveParent, ++/*433231*/ OPC_MoveChild1, ++/*433232*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*433235*/ OPC_CheckChild0Integer, 15, ++/*433237*/ OPC_CheckChild0Type, MVT::i32, ++/*433239*/ OPC_CheckChild1Integer, 15, ++/*433241*/ OPC_CheckChild1Type, MVT::i32, ++/*433243*/ OPC_CheckChild2Integer, 15, ++/*433245*/ OPC_CheckChild2Type, MVT::i32, ++/*433247*/ OPC_CheckChild3Integer, 15, ++/*433249*/ OPC_CheckChild3Type, MVT::i32, ++/*433251*/ OPC_CheckChild4Integer, 15, ++/*433253*/ OPC_CheckChild4Type, MVT::i32, ++/*433255*/ OPC_MoveChild5, ++/*433256*/ OPC_CheckInteger, 15, ++/*433258*/ OPC_CheckType, MVT::i32, ++/*433260*/ OPC_MoveParent, ++/*433261*/ OPC_MoveChild6, ++/*433262*/ OPC_CheckInteger, 15, ++/*433264*/ OPC_CheckType, MVT::i32, ++/*433266*/ OPC_MoveParent, ++/*433267*/ OPC_MoveChild7, ++/*433268*/ OPC_CheckInteger, 15, ++/*433270*/ OPC_CheckType, MVT::i32, ++/*433272*/ OPC_MoveParent, ++/*433273*/ OPC_CheckType, MVT::v8i16, ++/*433275*/ OPC_MoveParent, ++/*433276*/ OPC_MoveParent, ++/*433277*/ OPC_MoveParent, ++/*433278*/ OPC_MoveChild1, ++/*433279*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*433282*/ OPC_CheckChild0Integer, 1, ++/*433284*/ OPC_CheckChild0Type, MVT::i32, ++/*433286*/ OPC_CheckChild1Integer, 1, ++/*433288*/ OPC_CheckChild1Type, MVT::i32, ++/*433290*/ OPC_CheckChild2Integer, 1, ++/*433292*/ OPC_CheckChild2Type, MVT::i32, ++/*433294*/ OPC_CheckChild3Integer, 1, ++/*433296*/ OPC_CheckChild3Type, MVT::i32, ++/*433298*/ OPC_CheckChild4Integer, 1, ++/*433300*/ OPC_CheckChild4Type, MVT::i32, ++/*433302*/ OPC_MoveChild5, ++/*433303*/ OPC_CheckInteger, 1, ++/*433305*/ OPC_CheckType, MVT::i32, ++/*433307*/ OPC_MoveParent, ++/*433308*/ OPC_MoveChild6, ++/*433309*/ OPC_CheckInteger, 1, ++/*433311*/ OPC_CheckType, MVT::i32, ++/*433313*/ OPC_MoveParent, ++/*433314*/ OPC_MoveChild7, ++/*433315*/ OPC_CheckInteger, 1, ++/*433317*/ OPC_CheckType, MVT::i32, ++/*433319*/ OPC_MoveParent, ++/*433320*/ OPC_CheckType, MVT::v8i16, ++/*433322*/ OPC_MoveParent, ++/*433323*/ OPC_CheckType, MVT::v8i16, ++/*433325*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*433327*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a)), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*433335*/ /*Scope*/ 23|128,1/*151*/, /*->433488*/ ++/*433337*/ OPC_CheckChild0Same, 0, ++/*433339*/ OPC_MoveChild1, ++/*433340*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*433343*/ OPC_CheckChild0Integer, 1, ++/*433345*/ OPC_CheckChild0Type, MVT::i32, ++/*433347*/ OPC_CheckChild1Integer, 1, ++/*433349*/ OPC_CheckChild1Type, MVT::i32, ++/*433351*/ OPC_CheckChild2Integer, 1, ++/*433353*/ OPC_CheckChild2Type, MVT::i32, ++/*433355*/ OPC_CheckChild3Integer, 1, ++/*433357*/ OPC_CheckChild3Type, MVT::i32, ++/*433359*/ OPC_CheckChild4Integer, 1, ++/*433361*/ OPC_CheckChild4Type, MVT::i32, ++/*433363*/ OPC_MoveChild5, ++/*433364*/ OPC_CheckInteger, 1, ++/*433366*/ OPC_CheckType, MVT::i32, ++/*433368*/ OPC_MoveParent, ++/*433369*/ OPC_MoveChild6, ++/*433370*/ OPC_CheckInteger, 1, ++/*433372*/ OPC_CheckType, MVT::i32, ++/*433374*/ OPC_MoveParent, ++/*433375*/ OPC_MoveChild7, ++/*433376*/ OPC_CheckInteger, 1, ++/*433378*/ OPC_CheckType, MVT::i32, ++/*433380*/ OPC_MoveParent, ++/*433381*/ OPC_MoveParent, ++/*433382*/ OPC_MoveParent, ++/*433383*/ OPC_MoveParent, ++/*433384*/ OPC_MoveChild1, ++/*433385*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*433388*/ OPC_CheckChild0Integer, 15, ++/*433390*/ OPC_CheckChild0Type, MVT::i32, ++/*433392*/ OPC_CheckChild1Integer, 15, ++/*433394*/ OPC_CheckChild1Type, MVT::i32, ++/*433396*/ OPC_CheckChild2Integer, 15, ++/*433398*/ OPC_CheckChild2Type, MVT::i32, ++/*433400*/ OPC_CheckChild3Integer, 15, ++/*433402*/ OPC_CheckChild3Type, MVT::i32, ++/*433404*/ OPC_CheckChild4Integer, 15, ++/*433406*/ OPC_CheckChild4Type, MVT::i32, ++/*433408*/ OPC_MoveChild5, ++/*433409*/ OPC_CheckInteger, 15, ++/*433411*/ OPC_CheckType, MVT::i32, ++/*433413*/ OPC_MoveParent, ++/*433414*/ OPC_MoveChild6, ++/*433415*/ OPC_CheckInteger, 15, ++/*433417*/ OPC_CheckType, MVT::i32, ++/*433419*/ OPC_MoveParent, ++/*433420*/ OPC_MoveChild7, ++/*433421*/ OPC_CheckInteger, 15, ++/*433423*/ OPC_CheckType, MVT::i32, ++/*433425*/ OPC_MoveParent, ++/*433426*/ OPC_CheckType, MVT::v8i16, ++/*433428*/ OPC_MoveParent, ++/*433429*/ OPC_MoveParent, ++/*433430*/ OPC_MoveParent, ++/*433431*/ OPC_MoveChild1, ++/*433432*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*433435*/ OPC_CheckChild0Integer, 1, ++/*433437*/ OPC_CheckChild0Type, MVT::i32, ++/*433439*/ OPC_CheckChild1Integer, 1, ++/*433441*/ OPC_CheckChild1Type, MVT::i32, ++/*433443*/ OPC_CheckChild2Integer, 1, ++/*433445*/ OPC_CheckChild2Type, MVT::i32, ++/*433447*/ OPC_CheckChild3Integer, 1, ++/*433449*/ OPC_CheckChild3Type, MVT::i32, ++/*433451*/ OPC_CheckChild4Integer, 1, ++/*433453*/ OPC_CheckChild4Type, MVT::i32, ++/*433455*/ OPC_MoveChild5, ++/*433456*/ OPC_CheckInteger, 1, ++/*433458*/ OPC_CheckType, MVT::i32, ++/*433460*/ OPC_MoveParent, ++/*433461*/ OPC_MoveChild6, ++/*433462*/ OPC_CheckInteger, 1, ++/*433464*/ OPC_CheckType, MVT::i32, ++/*433466*/ OPC_MoveParent, ++/*433467*/ OPC_MoveChild7, ++/*433468*/ OPC_CheckInteger, 1, ++/*433470*/ OPC_CheckType, MVT::i32, ++/*433472*/ OPC_MoveParent, ++/*433473*/ OPC_CheckType, MVT::v8i16, ++/*433475*/ OPC_MoveParent, ++/*433476*/ OPC_CheckType, MVT::v8i16, ++/*433478*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*433480*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a)), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*433488*/ 0, /*End of Scope*/ ++/*433489*/ /*Scope*/ 15|128,2/*271*/, /*->433762*/ ++/*433491*/ OPC_MoveChild0, ++/*433492*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*433495*/ OPC_CheckChild0Integer, 1, ++/*433497*/ OPC_CheckChild0Type, MVT::i32, ++/*433499*/ OPC_CheckChild1Integer, 1, ++/*433501*/ OPC_CheckChild1Type, MVT::i32, ++/*433503*/ OPC_CheckChild2Integer, 1, ++/*433505*/ OPC_CheckChild2Type, MVT::i32, ++/*433507*/ OPC_CheckChild3Integer, 1, ++/*433509*/ OPC_CheckChild3Type, MVT::i32, ++/*433511*/ OPC_CheckChild4Integer, 1, ++/*433513*/ OPC_CheckChild4Type, MVT::i32, ++/*433515*/ OPC_MoveChild5, ++/*433516*/ OPC_CheckInteger, 1, ++/*433518*/ OPC_CheckType, MVT::i32, ++/*433520*/ OPC_MoveParent, ++/*433521*/ OPC_MoveChild6, ++/*433522*/ OPC_CheckInteger, 1, ++/*433524*/ OPC_CheckType, MVT::i32, ++/*433526*/ OPC_MoveParent, ++/*433527*/ OPC_MoveChild7, ++/*433528*/ OPC_CheckInteger, 1, ++/*433530*/ OPC_CheckType, MVT::i32, ++/*433532*/ OPC_MoveParent, ++/*433533*/ OPC_MoveParent, ++/*433534*/ OPC_MoveChild1, ++/*433535*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*433538*/ OPC_Scope, 110, /*->433650*/ // 2 children in Scope ++/*433540*/ OPC_CheckChild0Same, 1, ++/*433542*/ OPC_CheckChild1Same, 0, ++/*433544*/ OPC_MoveParent, ++/*433545*/ OPC_MoveParent, ++/*433546*/ OPC_MoveChild1, ++/*433547*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*433550*/ OPC_CheckChild0Integer, 15, ++/*433552*/ OPC_CheckChild0Type, MVT::i32, ++/*433554*/ OPC_CheckChild1Integer, 15, ++/*433556*/ OPC_CheckChild1Type, MVT::i32, ++/*433558*/ OPC_CheckChild2Integer, 15, ++/*433560*/ OPC_CheckChild2Type, MVT::i32, ++/*433562*/ OPC_CheckChild3Integer, 15, ++/*433564*/ OPC_CheckChild3Type, MVT::i32, ++/*433566*/ OPC_CheckChild4Integer, 15, ++/*433568*/ OPC_CheckChild4Type, MVT::i32, ++/*433570*/ OPC_MoveChild5, ++/*433571*/ OPC_CheckInteger, 15, ++/*433573*/ OPC_CheckType, MVT::i32, ++/*433575*/ OPC_MoveParent, ++/*433576*/ OPC_MoveChild6, ++/*433577*/ OPC_CheckInteger, 15, ++/*433579*/ OPC_CheckType, MVT::i32, ++/*433581*/ OPC_MoveParent, ++/*433582*/ OPC_MoveChild7, ++/*433583*/ OPC_CheckInteger, 15, ++/*433585*/ OPC_CheckType, MVT::i32, ++/*433587*/ OPC_MoveParent, ++/*433588*/ OPC_CheckType, MVT::v8i16, ++/*433590*/ OPC_MoveParent, ++/*433591*/ OPC_MoveParent, ++/*433592*/ OPC_MoveParent, ++/*433593*/ OPC_MoveChild1, ++/*433594*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*433597*/ OPC_CheckChild0Integer, 1, ++/*433599*/ OPC_CheckChild0Type, MVT::i32, ++/*433601*/ OPC_CheckChild1Integer, 1, ++/*433603*/ OPC_CheckChild1Type, MVT::i32, ++/*433605*/ OPC_CheckChild2Integer, 1, ++/*433607*/ OPC_CheckChild2Type, MVT::i32, ++/*433609*/ OPC_CheckChild3Integer, 1, ++/*433611*/ OPC_CheckChild3Type, MVT::i32, ++/*433613*/ OPC_CheckChild4Integer, 1, ++/*433615*/ OPC_CheckChild4Type, MVT::i32, ++/*433617*/ OPC_MoveChild5, ++/*433618*/ OPC_CheckInteger, 1, ++/*433620*/ OPC_CheckType, MVT::i32, ++/*433622*/ OPC_MoveParent, ++/*433623*/ OPC_MoveChild6, ++/*433624*/ OPC_CheckInteger, 1, ++/*433626*/ OPC_CheckType, MVT::i32, ++/*433628*/ OPC_MoveParent, ++/*433629*/ OPC_MoveChild7, ++/*433630*/ OPC_CheckInteger, 1, ++/*433632*/ OPC_CheckType, MVT::i32, ++/*433634*/ OPC_MoveParent, ++/*433635*/ OPC_CheckType, MVT::v8i16, ++/*433637*/ OPC_MoveParent, ++/*433638*/ OPC_CheckType, MVT::v8i16, ++/*433640*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*433642*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a)), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*433650*/ /*Scope*/ 110, /*->433761*/ ++/*433651*/ OPC_CheckChild0Same, 0, ++/*433653*/ OPC_CheckChild1Same, 1, ++/*433655*/ OPC_MoveParent, ++/*433656*/ OPC_MoveParent, ++/*433657*/ OPC_MoveChild1, ++/*433658*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*433661*/ OPC_CheckChild0Integer, 15, ++/*433663*/ OPC_CheckChild0Type, MVT::i32, ++/*433665*/ OPC_CheckChild1Integer, 15, ++/*433667*/ OPC_CheckChild1Type, MVT::i32, ++/*433669*/ OPC_CheckChild2Integer, 15, ++/*433671*/ OPC_CheckChild2Type, MVT::i32, ++/*433673*/ OPC_CheckChild3Integer, 15, ++/*433675*/ OPC_CheckChild3Type, MVT::i32, ++/*433677*/ OPC_CheckChild4Integer, 15, ++/*433679*/ OPC_CheckChild4Type, MVT::i32, ++/*433681*/ OPC_MoveChild5, ++/*433682*/ OPC_CheckInteger, 15, ++/*433684*/ OPC_CheckType, MVT::i32, ++/*433686*/ OPC_MoveParent, ++/*433687*/ OPC_MoveChild6, ++/*433688*/ OPC_CheckInteger, 15, ++/*433690*/ OPC_CheckType, MVT::i32, ++/*433692*/ OPC_MoveParent, ++/*433693*/ OPC_MoveChild7, ++/*433694*/ OPC_CheckInteger, 15, ++/*433696*/ OPC_CheckType, MVT::i32, ++/*433698*/ OPC_MoveParent, ++/*433699*/ OPC_CheckType, MVT::v8i16, ++/*433701*/ OPC_MoveParent, ++/*433702*/ OPC_MoveParent, ++/*433703*/ OPC_MoveParent, ++/*433704*/ OPC_MoveChild1, ++/*433705*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*433708*/ OPC_CheckChild0Integer, 1, ++/*433710*/ OPC_CheckChild0Type, MVT::i32, ++/*433712*/ OPC_CheckChild1Integer, 1, ++/*433714*/ OPC_CheckChild1Type, MVT::i32, ++/*433716*/ OPC_CheckChild2Integer, 1, ++/*433718*/ OPC_CheckChild2Type, MVT::i32, ++/*433720*/ OPC_CheckChild3Integer, 1, ++/*433722*/ OPC_CheckChild3Type, MVT::i32, ++/*433724*/ OPC_CheckChild4Integer, 1, ++/*433726*/ OPC_CheckChild4Type, MVT::i32, ++/*433728*/ OPC_MoveChild5, ++/*433729*/ OPC_CheckInteger, 1, ++/*433731*/ OPC_CheckType, MVT::i32, ++/*433733*/ OPC_MoveParent, ++/*433734*/ OPC_MoveChild6, ++/*433735*/ OPC_CheckInteger, 1, ++/*433737*/ OPC_CheckType, MVT::i32, ++/*433739*/ OPC_MoveParent, ++/*433740*/ OPC_MoveChild7, ++/*433741*/ OPC_CheckInteger, 1, ++/*433743*/ OPC_CheckType, MVT::i32, ++/*433745*/ OPC_MoveParent, ++/*433746*/ OPC_CheckType, MVT::v8i16, ++/*433748*/ OPC_MoveParent, ++/*433749*/ OPC_CheckType, MVT::v8i16, ++/*433751*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*433753*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a)), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*433761*/ 0, /*End of Scope*/ ++/*433762*/ 0, /*End of Scope*/ ++/*433763*/ /*SwitchOpcode*/ 95|128,88/*11359*/, TARGET_VAL(ISD::ADD),// ->445126 ++/*433767*/ OPC_Scope, 108|128,14/*1900*/, /*->435670*/ // 4 children in Scope ++/*433770*/ OPC_MoveChild0, ++/*433771*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*433774*/ OPC_CheckChild0Integer, 1, ++/*433776*/ OPC_CheckChild0Type, MVT::i32, ++/*433778*/ OPC_CheckChild1Integer, 1, ++/*433780*/ OPC_CheckChild1Type, MVT::i32, ++/*433782*/ OPC_CheckChild2Integer, 1, ++/*433784*/ OPC_CheckChild2Type, MVT::i32, ++/*433786*/ OPC_CheckChild3Integer, 1, ++/*433788*/ OPC_CheckChild3Type, MVT::i32, ++/*433790*/ OPC_CheckChild4Integer, 1, ++/*433792*/ OPC_CheckChild4Type, MVT::i32, ++/*433794*/ OPC_MoveChild5, ++/*433795*/ OPC_CheckInteger, 1, ++/*433797*/ OPC_CheckType, MVT::i32, ++/*433799*/ OPC_MoveParent, ++/*433800*/ OPC_MoveChild6, ++/*433801*/ OPC_CheckInteger, 1, ++/*433803*/ OPC_CheckType, MVT::i32, ++/*433805*/ OPC_MoveParent, ++/*433806*/ OPC_MoveChild7, ++/*433807*/ OPC_CheckInteger, 1, ++/*433809*/ OPC_CheckType, MVT::i32, ++/*433811*/ OPC_MoveParent, ++/*433812*/ OPC_MoveParent, ++/*433813*/ OPC_RecordChild1, // #0 = $a ++/*433814*/ OPC_MoveParent, ++/*433815*/ OPC_RecordChild1, // #1 = $b ++/*433816*/ OPC_MoveParent, ++/*433817*/ OPC_MoveChild1, ++/*433818*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*433821*/ OPC_MoveChild0, ++/*433822*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*433825*/ OPC_Scope, 40|128,7/*936*/, /*->434764*/ // 4 children in Scope ++/*433828*/ OPC_MoveChild0, ++/*433829*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*433832*/ OPC_Scope, 25|128,1/*153*/, /*->433988*/ // 6 children in Scope ++/*433835*/ OPC_MoveChild0, ++/*433836*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*433839*/ OPC_CheckChild0Integer, 1, ++/*433841*/ OPC_CheckChild0Type, MVT::i32, ++/*433843*/ OPC_CheckChild1Integer, 1, ++/*433845*/ OPC_CheckChild1Type, MVT::i32, ++/*433847*/ OPC_CheckChild2Integer, 1, ++/*433849*/ OPC_CheckChild2Type, MVT::i32, ++/*433851*/ OPC_CheckChild3Integer, 1, ++/*433853*/ OPC_CheckChild3Type, MVT::i32, ++/*433855*/ OPC_CheckChild4Integer, 1, ++/*433857*/ OPC_CheckChild4Type, MVT::i32, ++/*433859*/ OPC_MoveChild5, ++/*433860*/ OPC_CheckInteger, 1, ++/*433862*/ OPC_CheckType, MVT::i32, ++/*433864*/ OPC_MoveParent, ++/*433865*/ OPC_MoveChild6, ++/*433866*/ OPC_CheckInteger, 1, ++/*433868*/ OPC_CheckType, MVT::i32, ++/*433870*/ OPC_MoveParent, ++/*433871*/ OPC_MoveChild7, ++/*433872*/ OPC_CheckInteger, 1, ++/*433874*/ OPC_CheckType, MVT::i32, ++/*433876*/ OPC_MoveParent, ++/*433877*/ OPC_MoveParent, ++/*433878*/ OPC_CheckChild1Same, 0, ++/*433880*/ OPC_MoveParent, ++/*433881*/ OPC_CheckChild1Same, 1, ++/*433883*/ OPC_MoveParent, ++/*433884*/ OPC_MoveChild1, ++/*433885*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*433888*/ OPC_CheckChild0Integer, 31, ++/*433890*/ OPC_CheckChild0Type, MVT::i32, ++/*433892*/ OPC_CheckChild1Integer, 31, ++/*433894*/ OPC_CheckChild1Type, MVT::i32, ++/*433896*/ OPC_CheckChild2Integer, 31, ++/*433898*/ OPC_CheckChild2Type, MVT::i32, ++/*433900*/ OPC_CheckChild3Integer, 31, ++/*433902*/ OPC_CheckChild3Type, MVT::i32, ++/*433904*/ OPC_CheckChild4Integer, 31, ++/*433906*/ OPC_CheckChild4Type, MVT::i32, ++/*433908*/ OPC_MoveChild5, ++/*433909*/ OPC_CheckInteger, 31, ++/*433911*/ OPC_CheckType, MVT::i32, ++/*433913*/ OPC_MoveParent, ++/*433914*/ OPC_MoveChild6, ++/*433915*/ OPC_CheckInteger, 31, ++/*433917*/ OPC_CheckType, MVT::i32, ++/*433919*/ OPC_MoveParent, ++/*433920*/ OPC_MoveChild7, ++/*433921*/ OPC_CheckInteger, 31, ++/*433923*/ OPC_CheckType, MVT::i32, ++/*433925*/ OPC_MoveParent, ++/*433926*/ OPC_CheckType, MVT::v8i32, ++/*433928*/ OPC_MoveParent, ++/*433929*/ OPC_MoveParent, ++/*433930*/ OPC_MoveParent, ++/*433931*/ OPC_MoveChild1, ++/*433932*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*433935*/ OPC_CheckChild0Integer, 1, ++/*433937*/ OPC_CheckChild0Type, MVT::i32, ++/*433939*/ OPC_CheckChild1Integer, 1, ++/*433941*/ OPC_CheckChild1Type, MVT::i32, ++/*433943*/ OPC_CheckChild2Integer, 1, ++/*433945*/ OPC_CheckChild2Type, MVT::i32, ++/*433947*/ OPC_CheckChild3Integer, 1, ++/*433949*/ OPC_CheckChild3Type, MVT::i32, ++/*433951*/ OPC_CheckChild4Integer, 1, ++/*433953*/ OPC_CheckChild4Type, MVT::i32, ++/*433955*/ OPC_MoveChild5, ++/*433956*/ OPC_CheckInteger, 1, ++/*433958*/ OPC_CheckType, MVT::i32, ++/*433960*/ OPC_MoveParent, ++/*433961*/ OPC_MoveChild6, ++/*433962*/ OPC_CheckInteger, 1, ++/*433964*/ OPC_CheckType, MVT::i32, ++/*433966*/ OPC_MoveParent, ++/*433967*/ OPC_MoveChild7, ++/*433968*/ OPC_CheckInteger, 1, ++/*433970*/ OPC_CheckType, MVT::i32, ++/*433972*/ OPC_MoveParent, ++/*433973*/ OPC_CheckType, MVT::v8i32, ++/*433975*/ OPC_MoveParent, ++/*433976*/ OPC_CheckType, MVT::v8i32, ++/*433978*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*433980*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a), LASX256W:{ *:[v8i32] }:$b), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a), LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*433988*/ /*Scope*/ 25|128,1/*153*/, /*->434143*/ ++/*433990*/ OPC_CheckChild0Same, 0, ++/*433992*/ OPC_MoveChild1, ++/*433993*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*433996*/ OPC_CheckChild0Integer, 1, ++/*433998*/ OPC_CheckChild0Type, MVT::i32, ++/*434000*/ OPC_CheckChild1Integer, 1, ++/*434002*/ OPC_CheckChild1Type, MVT::i32, ++/*434004*/ OPC_CheckChild2Integer, 1, ++/*434006*/ OPC_CheckChild2Type, MVT::i32, ++/*434008*/ OPC_CheckChild3Integer, 1, ++/*434010*/ OPC_CheckChild3Type, MVT::i32, ++/*434012*/ OPC_CheckChild4Integer, 1, ++/*434014*/ OPC_CheckChild4Type, MVT::i32, ++/*434016*/ OPC_MoveChild5, ++/*434017*/ OPC_CheckInteger, 1, ++/*434019*/ OPC_CheckType, MVT::i32, ++/*434021*/ OPC_MoveParent, ++/*434022*/ OPC_MoveChild6, ++/*434023*/ OPC_CheckInteger, 1, ++/*434025*/ OPC_CheckType, MVT::i32, ++/*434027*/ OPC_MoveParent, ++/*434028*/ OPC_MoveChild7, ++/*434029*/ OPC_CheckInteger, 1, ++/*434031*/ OPC_CheckType, MVT::i32, ++/*434033*/ OPC_MoveParent, ++/*434034*/ OPC_MoveParent, ++/*434035*/ OPC_MoveParent, ++/*434036*/ OPC_CheckChild1Same, 1, ++/*434038*/ OPC_MoveParent, ++/*434039*/ OPC_MoveChild1, ++/*434040*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*434043*/ OPC_CheckChild0Integer, 31, ++/*434045*/ OPC_CheckChild0Type, MVT::i32, ++/*434047*/ OPC_CheckChild1Integer, 31, ++/*434049*/ OPC_CheckChild1Type, MVT::i32, ++/*434051*/ OPC_CheckChild2Integer, 31, ++/*434053*/ OPC_CheckChild2Type, MVT::i32, ++/*434055*/ OPC_CheckChild3Integer, 31, ++/*434057*/ OPC_CheckChild3Type, MVT::i32, ++/*434059*/ OPC_CheckChild4Integer, 31, ++/*434061*/ OPC_CheckChild4Type, MVT::i32, ++/*434063*/ OPC_MoveChild5, ++/*434064*/ OPC_CheckInteger, 31, ++/*434066*/ OPC_CheckType, MVT::i32, ++/*434068*/ OPC_MoveParent, ++/*434069*/ OPC_MoveChild6, ++/*434070*/ OPC_CheckInteger, 31, ++/*434072*/ OPC_CheckType, MVT::i32, ++/*434074*/ OPC_MoveParent, ++/*434075*/ OPC_MoveChild7, ++/*434076*/ OPC_CheckInteger, 31, ++/*434078*/ OPC_CheckType, MVT::i32, ++/*434080*/ OPC_MoveParent, ++/*434081*/ OPC_CheckType, MVT::v8i32, ++/*434083*/ OPC_MoveParent, ++/*434084*/ OPC_MoveParent, ++/*434085*/ OPC_MoveParent, ++/*434086*/ OPC_MoveChild1, ++/*434087*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*434090*/ OPC_CheckChild0Integer, 1, ++/*434092*/ OPC_CheckChild0Type, MVT::i32, ++/*434094*/ OPC_CheckChild1Integer, 1, ++/*434096*/ OPC_CheckChild1Type, MVT::i32, ++/*434098*/ OPC_CheckChild2Integer, 1, ++/*434100*/ OPC_CheckChild2Type, MVT::i32, ++/*434102*/ OPC_CheckChild3Integer, 1, ++/*434104*/ OPC_CheckChild3Type, MVT::i32, ++/*434106*/ OPC_CheckChild4Integer, 1, ++/*434108*/ OPC_CheckChild4Type, MVT::i32, ++/*434110*/ OPC_MoveChild5, ++/*434111*/ OPC_CheckInteger, 1, ++/*434113*/ OPC_CheckType, MVT::i32, ++/*434115*/ OPC_MoveParent, ++/*434116*/ OPC_MoveChild6, ++/*434117*/ OPC_CheckInteger, 1, ++/*434119*/ OPC_CheckType, MVT::i32, ++/*434121*/ OPC_MoveParent, ++/*434122*/ OPC_MoveChild7, ++/*434123*/ OPC_CheckInteger, 1, ++/*434125*/ OPC_CheckType, MVT::i32, ++/*434127*/ OPC_MoveParent, ++/*434128*/ OPC_CheckType, MVT::v8i32, ++/*434130*/ OPC_MoveParent, ++/*434131*/ OPC_CheckType, MVT::v8i32, ++/*434133*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*434135*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a), LASX256W:{ *:[v8i32] }:$b), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*434143*/ /*Scope*/ 25|128,1/*153*/, /*->434298*/ ++/*434145*/ OPC_MoveChild0, ++/*434146*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*434149*/ OPC_CheckChild0Integer, 1, ++/*434151*/ OPC_CheckChild0Type, MVT::i32, ++/*434153*/ OPC_CheckChild1Integer, 1, ++/*434155*/ OPC_CheckChild1Type, MVT::i32, ++/*434157*/ OPC_CheckChild2Integer, 1, ++/*434159*/ OPC_CheckChild2Type, MVT::i32, ++/*434161*/ OPC_CheckChild3Integer, 1, ++/*434163*/ OPC_CheckChild3Type, MVT::i32, ++/*434165*/ OPC_CheckChild4Integer, 1, ++/*434167*/ OPC_CheckChild4Type, MVT::i32, ++/*434169*/ OPC_MoveChild5, ++/*434170*/ OPC_CheckInteger, 1, ++/*434172*/ OPC_CheckType, MVT::i32, ++/*434174*/ OPC_MoveParent, ++/*434175*/ OPC_MoveChild6, ++/*434176*/ OPC_CheckInteger, 1, ++/*434178*/ OPC_CheckType, MVT::i32, ++/*434180*/ OPC_MoveParent, ++/*434181*/ OPC_MoveChild7, ++/*434182*/ OPC_CheckInteger, 1, ++/*434184*/ OPC_CheckType, MVT::i32, ++/*434186*/ OPC_MoveParent, ++/*434187*/ OPC_MoveParent, ++/*434188*/ OPC_CheckChild1Same, 1, ++/*434190*/ OPC_MoveParent, ++/*434191*/ OPC_CheckChild1Same, 0, ++/*434193*/ OPC_MoveParent, ++/*434194*/ OPC_MoveChild1, ++/*434195*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*434198*/ OPC_CheckChild0Integer, 31, ++/*434200*/ OPC_CheckChild0Type, MVT::i32, ++/*434202*/ OPC_CheckChild1Integer, 31, ++/*434204*/ OPC_CheckChild1Type, MVT::i32, ++/*434206*/ OPC_CheckChild2Integer, 31, ++/*434208*/ OPC_CheckChild2Type, MVT::i32, ++/*434210*/ OPC_CheckChild3Integer, 31, ++/*434212*/ OPC_CheckChild3Type, MVT::i32, ++/*434214*/ OPC_CheckChild4Integer, 31, ++/*434216*/ OPC_CheckChild4Type, MVT::i32, ++/*434218*/ OPC_MoveChild5, ++/*434219*/ OPC_CheckInteger, 31, ++/*434221*/ OPC_CheckType, MVT::i32, ++/*434223*/ OPC_MoveParent, ++/*434224*/ OPC_MoveChild6, ++/*434225*/ OPC_CheckInteger, 31, ++/*434227*/ OPC_CheckType, MVT::i32, ++/*434229*/ OPC_MoveParent, ++/*434230*/ OPC_MoveChild7, ++/*434231*/ OPC_CheckInteger, 31, ++/*434233*/ OPC_CheckType, MVT::i32, ++/*434235*/ OPC_MoveParent, ++/*434236*/ OPC_CheckType, MVT::v8i32, ++/*434238*/ OPC_MoveParent, ++/*434239*/ OPC_MoveParent, ++/*434240*/ OPC_MoveParent, ++/*434241*/ OPC_MoveChild1, ++/*434242*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*434245*/ OPC_CheckChild0Integer, 1, ++/*434247*/ OPC_CheckChild0Type, MVT::i32, ++/*434249*/ OPC_CheckChild1Integer, 1, ++/*434251*/ OPC_CheckChild1Type, MVT::i32, ++/*434253*/ OPC_CheckChild2Integer, 1, ++/*434255*/ OPC_CheckChild2Type, MVT::i32, ++/*434257*/ OPC_CheckChild3Integer, 1, ++/*434259*/ OPC_CheckChild3Type, MVT::i32, ++/*434261*/ OPC_CheckChild4Integer, 1, ++/*434263*/ OPC_CheckChild4Type, MVT::i32, ++/*434265*/ OPC_MoveChild5, ++/*434266*/ OPC_CheckInteger, 1, ++/*434268*/ OPC_CheckType, MVT::i32, ++/*434270*/ OPC_MoveParent, ++/*434271*/ OPC_MoveChild6, ++/*434272*/ OPC_CheckInteger, 1, ++/*434274*/ OPC_CheckType, MVT::i32, ++/*434276*/ OPC_MoveParent, ++/*434277*/ OPC_MoveChild7, ++/*434278*/ OPC_CheckInteger, 1, ++/*434280*/ OPC_CheckType, MVT::i32, ++/*434282*/ OPC_MoveParent, ++/*434283*/ OPC_CheckType, MVT::v8i32, ++/*434285*/ OPC_MoveParent, ++/*434286*/ OPC_CheckType, MVT::v8i32, ++/*434288*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*434290*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a), LASX256W:{ *:[v8i32] }:$b), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b), LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*434298*/ /*Scope*/ 25|128,1/*153*/, /*->434453*/ ++/*434300*/ OPC_CheckChild0Same, 1, ++/*434302*/ OPC_MoveChild1, ++/*434303*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*434306*/ OPC_CheckChild0Integer, 1, ++/*434308*/ OPC_CheckChild0Type, MVT::i32, ++/*434310*/ OPC_CheckChild1Integer, 1, ++/*434312*/ OPC_CheckChild1Type, MVT::i32, ++/*434314*/ OPC_CheckChild2Integer, 1, ++/*434316*/ OPC_CheckChild2Type, MVT::i32, ++/*434318*/ OPC_CheckChild3Integer, 1, ++/*434320*/ OPC_CheckChild3Type, MVT::i32, ++/*434322*/ OPC_CheckChild4Integer, 1, ++/*434324*/ OPC_CheckChild4Type, MVT::i32, ++/*434326*/ OPC_MoveChild5, ++/*434327*/ OPC_CheckInteger, 1, ++/*434329*/ OPC_CheckType, MVT::i32, ++/*434331*/ OPC_MoveParent, ++/*434332*/ OPC_MoveChild6, ++/*434333*/ OPC_CheckInteger, 1, ++/*434335*/ OPC_CheckType, MVT::i32, ++/*434337*/ OPC_MoveParent, ++/*434338*/ OPC_MoveChild7, ++/*434339*/ OPC_CheckInteger, 1, ++/*434341*/ OPC_CheckType, MVT::i32, ++/*434343*/ OPC_MoveParent, ++/*434344*/ OPC_MoveParent, ++/*434345*/ OPC_MoveParent, ++/*434346*/ OPC_CheckChild1Same, 0, ++/*434348*/ OPC_MoveParent, ++/*434349*/ OPC_MoveChild1, ++/*434350*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*434353*/ OPC_CheckChild0Integer, 31, ++/*434355*/ OPC_CheckChild0Type, MVT::i32, ++/*434357*/ OPC_CheckChild1Integer, 31, ++/*434359*/ OPC_CheckChild1Type, MVT::i32, ++/*434361*/ OPC_CheckChild2Integer, 31, ++/*434363*/ OPC_CheckChild2Type, MVT::i32, ++/*434365*/ OPC_CheckChild3Integer, 31, ++/*434367*/ OPC_CheckChild3Type, MVT::i32, ++/*434369*/ OPC_CheckChild4Integer, 31, ++/*434371*/ OPC_CheckChild4Type, MVT::i32, ++/*434373*/ OPC_MoveChild5, ++/*434374*/ OPC_CheckInteger, 31, ++/*434376*/ OPC_CheckType, MVT::i32, ++/*434378*/ OPC_MoveParent, ++/*434379*/ OPC_MoveChild6, ++/*434380*/ OPC_CheckInteger, 31, ++/*434382*/ OPC_CheckType, MVT::i32, ++/*434384*/ OPC_MoveParent, ++/*434385*/ OPC_MoveChild7, ++/*434386*/ OPC_CheckInteger, 31, ++/*434388*/ OPC_CheckType, MVT::i32, ++/*434390*/ OPC_MoveParent, ++/*434391*/ OPC_CheckType, MVT::v8i32, ++/*434393*/ OPC_MoveParent, ++/*434394*/ OPC_MoveParent, ++/*434395*/ OPC_MoveParent, ++/*434396*/ OPC_MoveChild1, ++/*434397*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*434400*/ OPC_CheckChild0Integer, 1, ++/*434402*/ OPC_CheckChild0Type, MVT::i32, ++/*434404*/ OPC_CheckChild1Integer, 1, ++/*434406*/ OPC_CheckChild1Type, MVT::i32, ++/*434408*/ OPC_CheckChild2Integer, 1, ++/*434410*/ OPC_CheckChild2Type, MVT::i32, ++/*434412*/ OPC_CheckChild3Integer, 1, ++/*434414*/ OPC_CheckChild3Type, MVT::i32, ++/*434416*/ OPC_CheckChild4Integer, 1, ++/*434418*/ OPC_CheckChild4Type, MVT::i32, ++/*434420*/ OPC_MoveChild5, ++/*434421*/ OPC_CheckInteger, 1, ++/*434423*/ OPC_CheckType, MVT::i32, ++/*434425*/ OPC_MoveParent, ++/*434426*/ OPC_MoveChild6, ++/*434427*/ OPC_CheckInteger, 1, ++/*434429*/ OPC_CheckType, MVT::i32, ++/*434431*/ OPC_MoveParent, ++/*434432*/ OPC_MoveChild7, ++/*434433*/ OPC_CheckInteger, 1, ++/*434435*/ OPC_CheckType, MVT::i32, ++/*434437*/ OPC_MoveParent, ++/*434438*/ OPC_CheckType, MVT::v8i32, ++/*434440*/ OPC_MoveParent, ++/*434441*/ OPC_CheckType, MVT::v8i32, ++/*434443*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*434445*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a), LASX256W:{ *:[v8i32] }:$b), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*434453*/ /*Scope*/ 25|128,1/*153*/, /*->434608*/ ++/*434455*/ OPC_CheckChild0Same, 0, ++/*434457*/ OPC_CheckChild1Same, 1, ++/*434459*/ OPC_MoveParent, ++/*434460*/ OPC_MoveChild1, ++/*434461*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*434464*/ OPC_CheckChild0Integer, 1, ++/*434466*/ OPC_CheckChild0Type, MVT::i32, ++/*434468*/ OPC_CheckChild1Integer, 1, ++/*434470*/ OPC_CheckChild1Type, MVT::i32, ++/*434472*/ OPC_CheckChild2Integer, 1, ++/*434474*/ OPC_CheckChild2Type, MVT::i32, ++/*434476*/ OPC_CheckChild3Integer, 1, ++/*434478*/ OPC_CheckChild3Type, MVT::i32, ++/*434480*/ OPC_CheckChild4Integer, 1, ++/*434482*/ OPC_CheckChild4Type, MVT::i32, ++/*434484*/ OPC_MoveChild5, ++/*434485*/ OPC_CheckInteger, 1, ++/*434487*/ OPC_CheckType, MVT::i32, ++/*434489*/ OPC_MoveParent, ++/*434490*/ OPC_MoveChild6, ++/*434491*/ OPC_CheckInteger, 1, ++/*434493*/ OPC_CheckType, MVT::i32, ++/*434495*/ OPC_MoveParent, ++/*434496*/ OPC_MoveChild7, ++/*434497*/ OPC_CheckInteger, 1, ++/*434499*/ OPC_CheckType, MVT::i32, ++/*434501*/ OPC_MoveParent, ++/*434502*/ OPC_MoveParent, ++/*434503*/ OPC_MoveParent, ++/*434504*/ OPC_MoveChild1, ++/*434505*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*434508*/ OPC_CheckChild0Integer, 31, ++/*434510*/ OPC_CheckChild0Type, MVT::i32, ++/*434512*/ OPC_CheckChild1Integer, 31, ++/*434514*/ OPC_CheckChild1Type, MVT::i32, ++/*434516*/ OPC_CheckChild2Integer, 31, ++/*434518*/ OPC_CheckChild2Type, MVT::i32, ++/*434520*/ OPC_CheckChild3Integer, 31, ++/*434522*/ OPC_CheckChild3Type, MVT::i32, ++/*434524*/ OPC_CheckChild4Integer, 31, ++/*434526*/ OPC_CheckChild4Type, MVT::i32, ++/*434528*/ OPC_MoveChild5, ++/*434529*/ OPC_CheckInteger, 31, ++/*434531*/ OPC_CheckType, MVT::i32, ++/*434533*/ OPC_MoveParent, ++/*434534*/ OPC_MoveChild6, ++/*434535*/ OPC_CheckInteger, 31, ++/*434537*/ OPC_CheckType, MVT::i32, ++/*434539*/ OPC_MoveParent, ++/*434540*/ OPC_MoveChild7, ++/*434541*/ OPC_CheckInteger, 31, ++/*434543*/ OPC_CheckType, MVT::i32, ++/*434545*/ OPC_MoveParent, ++/*434546*/ OPC_CheckType, MVT::v8i32, ++/*434548*/ OPC_MoveParent, ++/*434549*/ OPC_MoveParent, ++/*434550*/ OPC_MoveParent, ++/*434551*/ OPC_MoveChild1, ++/*434552*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*434555*/ OPC_CheckChild0Integer, 1, ++/*434557*/ OPC_CheckChild0Type, MVT::i32, ++/*434559*/ OPC_CheckChild1Integer, 1, ++/*434561*/ OPC_CheckChild1Type, MVT::i32, ++/*434563*/ OPC_CheckChild2Integer, 1, ++/*434565*/ OPC_CheckChild2Type, MVT::i32, ++/*434567*/ OPC_CheckChild3Integer, 1, ++/*434569*/ OPC_CheckChild3Type, MVT::i32, ++/*434571*/ OPC_CheckChild4Integer, 1, ++/*434573*/ OPC_CheckChild4Type, MVT::i32, ++/*434575*/ OPC_MoveChild5, ++/*434576*/ OPC_CheckInteger, 1, ++/*434578*/ OPC_CheckType, MVT::i32, ++/*434580*/ OPC_MoveParent, ++/*434581*/ OPC_MoveChild6, ++/*434582*/ OPC_CheckInteger, 1, ++/*434584*/ OPC_CheckType, MVT::i32, ++/*434586*/ OPC_MoveParent, ++/*434587*/ OPC_MoveChild7, ++/*434588*/ OPC_CheckInteger, 1, ++/*434590*/ OPC_CheckType, MVT::i32, ++/*434592*/ OPC_MoveParent, ++/*434593*/ OPC_CheckType, MVT::v8i32, ++/*434595*/ OPC_MoveParent, ++/*434596*/ OPC_CheckType, MVT::v8i32, ++/*434598*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*434600*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a), LASX256W:{ *:[v8i32] }:$b), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*434608*/ /*Scope*/ 25|128,1/*153*/, /*->434763*/ ++/*434610*/ OPC_CheckChild0Same, 1, ++/*434612*/ OPC_CheckChild1Same, 0, ++/*434614*/ OPC_MoveParent, ++/*434615*/ OPC_MoveChild1, ++/*434616*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*434619*/ OPC_CheckChild0Integer, 1, ++/*434621*/ OPC_CheckChild0Type, MVT::i32, ++/*434623*/ OPC_CheckChild1Integer, 1, ++/*434625*/ OPC_CheckChild1Type, MVT::i32, ++/*434627*/ OPC_CheckChild2Integer, 1, ++/*434629*/ OPC_CheckChild2Type, MVT::i32, ++/*434631*/ OPC_CheckChild3Integer, 1, ++/*434633*/ OPC_CheckChild3Type, MVT::i32, ++/*434635*/ OPC_CheckChild4Integer, 1, ++/*434637*/ OPC_CheckChild4Type, MVT::i32, ++/*434639*/ OPC_MoveChild5, ++/*434640*/ OPC_CheckInteger, 1, ++/*434642*/ OPC_CheckType, MVT::i32, ++/*434644*/ OPC_MoveParent, ++/*434645*/ OPC_MoveChild6, ++/*434646*/ OPC_CheckInteger, 1, ++/*434648*/ OPC_CheckType, MVT::i32, ++/*434650*/ OPC_MoveParent, ++/*434651*/ OPC_MoveChild7, ++/*434652*/ OPC_CheckInteger, 1, ++/*434654*/ OPC_CheckType, MVT::i32, ++/*434656*/ OPC_MoveParent, ++/*434657*/ OPC_MoveParent, ++/*434658*/ OPC_MoveParent, ++/*434659*/ OPC_MoveChild1, ++/*434660*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*434663*/ OPC_CheckChild0Integer, 31, ++/*434665*/ OPC_CheckChild0Type, MVT::i32, ++/*434667*/ OPC_CheckChild1Integer, 31, ++/*434669*/ OPC_CheckChild1Type, MVT::i32, ++/*434671*/ OPC_CheckChild2Integer, 31, ++/*434673*/ OPC_CheckChild2Type, MVT::i32, ++/*434675*/ OPC_CheckChild3Integer, 31, ++/*434677*/ OPC_CheckChild3Type, MVT::i32, ++/*434679*/ OPC_CheckChild4Integer, 31, ++/*434681*/ OPC_CheckChild4Type, MVT::i32, ++/*434683*/ OPC_MoveChild5, ++/*434684*/ OPC_CheckInteger, 31, ++/*434686*/ OPC_CheckType, MVT::i32, ++/*434688*/ OPC_MoveParent, ++/*434689*/ OPC_MoveChild6, ++/*434690*/ OPC_CheckInteger, 31, ++/*434692*/ OPC_CheckType, MVT::i32, ++/*434694*/ OPC_MoveParent, ++/*434695*/ OPC_MoveChild7, ++/*434696*/ OPC_CheckInteger, 31, ++/*434698*/ OPC_CheckType, MVT::i32, ++/*434700*/ OPC_MoveParent, ++/*434701*/ OPC_CheckType, MVT::v8i32, ++/*434703*/ OPC_MoveParent, ++/*434704*/ OPC_MoveParent, ++/*434705*/ OPC_MoveParent, ++/*434706*/ OPC_MoveChild1, ++/*434707*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*434710*/ OPC_CheckChild0Integer, 1, ++/*434712*/ OPC_CheckChild0Type, MVT::i32, ++/*434714*/ OPC_CheckChild1Integer, 1, ++/*434716*/ OPC_CheckChild1Type, MVT::i32, ++/*434718*/ OPC_CheckChild2Integer, 1, ++/*434720*/ OPC_CheckChild2Type, MVT::i32, ++/*434722*/ OPC_CheckChild3Integer, 1, ++/*434724*/ OPC_CheckChild3Type, MVT::i32, ++/*434726*/ OPC_CheckChild4Integer, 1, ++/*434728*/ OPC_CheckChild4Type, MVT::i32, ++/*434730*/ OPC_MoveChild5, ++/*434731*/ OPC_CheckInteger, 1, ++/*434733*/ OPC_CheckType, MVT::i32, ++/*434735*/ OPC_MoveParent, ++/*434736*/ OPC_MoveChild6, ++/*434737*/ OPC_CheckInteger, 1, ++/*434739*/ OPC_CheckType, MVT::i32, ++/*434741*/ OPC_MoveParent, ++/*434742*/ OPC_MoveChild7, ++/*434743*/ OPC_CheckInteger, 1, ++/*434745*/ OPC_CheckType, MVT::i32, ++/*434747*/ OPC_MoveParent, ++/*434748*/ OPC_CheckType, MVT::v8i32, ++/*434750*/ OPC_MoveParent, ++/*434751*/ OPC_CheckType, MVT::v8i32, ++/*434753*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*434755*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a), LASX256W:{ *:[v8i32] }:$b), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*434763*/ 0, /*End of Scope*/ ++/*434764*/ /*Scope*/ 58|128,2/*314*/, /*->435080*/ ++/*434766*/ OPC_CheckChild0Same, 1, ++/*434768*/ OPC_MoveChild1, ++/*434769*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*434772*/ OPC_Scope, 23|128,1/*151*/, /*->434926*/ // 2 children in Scope ++/*434775*/ OPC_MoveChild0, ++/*434776*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*434779*/ OPC_CheckChild0Integer, 1, ++/*434781*/ OPC_CheckChild0Type, MVT::i32, ++/*434783*/ OPC_CheckChild1Integer, 1, ++/*434785*/ OPC_CheckChild1Type, MVT::i32, ++/*434787*/ OPC_CheckChild2Integer, 1, ++/*434789*/ OPC_CheckChild2Type, MVT::i32, ++/*434791*/ OPC_CheckChild3Integer, 1, ++/*434793*/ OPC_CheckChild3Type, MVT::i32, ++/*434795*/ OPC_CheckChild4Integer, 1, ++/*434797*/ OPC_CheckChild4Type, MVT::i32, ++/*434799*/ OPC_MoveChild5, ++/*434800*/ OPC_CheckInteger, 1, ++/*434802*/ OPC_CheckType, MVT::i32, ++/*434804*/ OPC_MoveParent, ++/*434805*/ OPC_MoveChild6, ++/*434806*/ OPC_CheckInteger, 1, ++/*434808*/ OPC_CheckType, MVT::i32, ++/*434810*/ OPC_MoveParent, ++/*434811*/ OPC_MoveChild7, ++/*434812*/ OPC_CheckInteger, 1, ++/*434814*/ OPC_CheckType, MVT::i32, ++/*434816*/ OPC_MoveParent, ++/*434817*/ OPC_MoveParent, ++/*434818*/ OPC_CheckChild1Same, 0, ++/*434820*/ OPC_MoveParent, ++/*434821*/ OPC_MoveParent, ++/*434822*/ OPC_MoveChild1, ++/*434823*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*434826*/ OPC_CheckChild0Integer, 31, ++/*434828*/ OPC_CheckChild0Type, MVT::i32, ++/*434830*/ OPC_CheckChild1Integer, 31, ++/*434832*/ OPC_CheckChild1Type, MVT::i32, ++/*434834*/ OPC_CheckChild2Integer, 31, ++/*434836*/ OPC_CheckChild2Type, MVT::i32, ++/*434838*/ OPC_CheckChild3Integer, 31, ++/*434840*/ OPC_CheckChild3Type, MVT::i32, ++/*434842*/ OPC_CheckChild4Integer, 31, ++/*434844*/ OPC_CheckChild4Type, MVT::i32, ++/*434846*/ OPC_MoveChild5, ++/*434847*/ OPC_CheckInteger, 31, ++/*434849*/ OPC_CheckType, MVT::i32, ++/*434851*/ OPC_MoveParent, ++/*434852*/ OPC_MoveChild6, ++/*434853*/ OPC_CheckInteger, 31, ++/*434855*/ OPC_CheckType, MVT::i32, ++/*434857*/ OPC_MoveParent, ++/*434858*/ OPC_MoveChild7, ++/*434859*/ OPC_CheckInteger, 31, ++/*434861*/ OPC_CheckType, MVT::i32, ++/*434863*/ OPC_MoveParent, ++/*434864*/ OPC_CheckType, MVT::v8i32, ++/*434866*/ OPC_MoveParent, ++/*434867*/ OPC_MoveParent, ++/*434868*/ OPC_MoveParent, ++/*434869*/ OPC_MoveChild1, ++/*434870*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*434873*/ OPC_CheckChild0Integer, 1, ++/*434875*/ OPC_CheckChild0Type, MVT::i32, ++/*434877*/ OPC_CheckChild1Integer, 1, ++/*434879*/ OPC_CheckChild1Type, MVT::i32, ++/*434881*/ OPC_CheckChild2Integer, 1, ++/*434883*/ OPC_CheckChild2Type, MVT::i32, ++/*434885*/ OPC_CheckChild3Integer, 1, ++/*434887*/ OPC_CheckChild3Type, MVT::i32, ++/*434889*/ OPC_CheckChild4Integer, 1, ++/*434891*/ OPC_CheckChild4Type, MVT::i32, ++/*434893*/ OPC_MoveChild5, ++/*434894*/ OPC_CheckInteger, 1, ++/*434896*/ OPC_CheckType, MVT::i32, ++/*434898*/ OPC_MoveParent, ++/*434899*/ OPC_MoveChild6, ++/*434900*/ OPC_CheckInteger, 1, ++/*434902*/ OPC_CheckType, MVT::i32, ++/*434904*/ OPC_MoveParent, ++/*434905*/ OPC_MoveChild7, ++/*434906*/ OPC_CheckInteger, 1, ++/*434908*/ OPC_CheckType, MVT::i32, ++/*434910*/ OPC_MoveParent, ++/*434911*/ OPC_CheckType, MVT::v8i32, ++/*434913*/ OPC_MoveParent, ++/*434914*/ OPC_CheckType, MVT::v8i32, ++/*434916*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*434918*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a), LASX256W:{ *:[v8i32] }:$b), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*434926*/ /*Scope*/ 23|128,1/*151*/, /*->435079*/ ++/*434928*/ OPC_CheckChild0Same, 0, ++/*434930*/ OPC_MoveChild1, ++/*434931*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*434934*/ OPC_CheckChild0Integer, 1, ++/*434936*/ OPC_CheckChild0Type, MVT::i32, ++/*434938*/ OPC_CheckChild1Integer, 1, ++/*434940*/ OPC_CheckChild1Type, MVT::i32, ++/*434942*/ OPC_CheckChild2Integer, 1, ++/*434944*/ OPC_CheckChild2Type, MVT::i32, ++/*434946*/ OPC_CheckChild3Integer, 1, ++/*434948*/ OPC_CheckChild3Type, MVT::i32, ++/*434950*/ OPC_CheckChild4Integer, 1, ++/*434952*/ OPC_CheckChild4Type, MVT::i32, ++/*434954*/ OPC_MoveChild5, ++/*434955*/ OPC_CheckInteger, 1, ++/*434957*/ OPC_CheckType, MVT::i32, ++/*434959*/ OPC_MoveParent, ++/*434960*/ OPC_MoveChild6, ++/*434961*/ OPC_CheckInteger, 1, ++/*434963*/ OPC_CheckType, MVT::i32, ++/*434965*/ OPC_MoveParent, ++/*434966*/ OPC_MoveChild7, ++/*434967*/ OPC_CheckInteger, 1, ++/*434969*/ OPC_CheckType, MVT::i32, ++/*434971*/ OPC_MoveParent, ++/*434972*/ OPC_MoveParent, ++/*434973*/ OPC_MoveParent, ++/*434974*/ OPC_MoveParent, ++/*434975*/ OPC_MoveChild1, ++/*434976*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*434979*/ OPC_CheckChild0Integer, 31, ++/*434981*/ OPC_CheckChild0Type, MVT::i32, ++/*434983*/ OPC_CheckChild1Integer, 31, ++/*434985*/ OPC_CheckChild1Type, MVT::i32, ++/*434987*/ OPC_CheckChild2Integer, 31, ++/*434989*/ OPC_CheckChild2Type, MVT::i32, ++/*434991*/ OPC_CheckChild3Integer, 31, ++/*434993*/ OPC_CheckChild3Type, MVT::i32, ++/*434995*/ OPC_CheckChild4Integer, 31, ++/*434997*/ OPC_CheckChild4Type, MVT::i32, ++/*434999*/ OPC_MoveChild5, ++/*435000*/ OPC_CheckInteger, 31, ++/*435002*/ OPC_CheckType, MVT::i32, ++/*435004*/ OPC_MoveParent, ++/*435005*/ OPC_MoveChild6, ++/*435006*/ OPC_CheckInteger, 31, ++/*435008*/ OPC_CheckType, MVT::i32, ++/*435010*/ OPC_MoveParent, ++/*435011*/ OPC_MoveChild7, ++/*435012*/ OPC_CheckInteger, 31, ++/*435014*/ OPC_CheckType, MVT::i32, ++/*435016*/ OPC_MoveParent, ++/*435017*/ OPC_CheckType, MVT::v8i32, ++/*435019*/ OPC_MoveParent, ++/*435020*/ OPC_MoveParent, ++/*435021*/ OPC_MoveParent, ++/*435022*/ OPC_MoveChild1, ++/*435023*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*435026*/ OPC_CheckChild0Integer, 1, ++/*435028*/ OPC_CheckChild0Type, MVT::i32, ++/*435030*/ OPC_CheckChild1Integer, 1, ++/*435032*/ OPC_CheckChild1Type, MVT::i32, ++/*435034*/ OPC_CheckChild2Integer, 1, ++/*435036*/ OPC_CheckChild2Type, MVT::i32, ++/*435038*/ OPC_CheckChild3Integer, 1, ++/*435040*/ OPC_CheckChild3Type, MVT::i32, ++/*435042*/ OPC_CheckChild4Integer, 1, ++/*435044*/ OPC_CheckChild4Type, MVT::i32, ++/*435046*/ OPC_MoveChild5, ++/*435047*/ OPC_CheckInteger, 1, ++/*435049*/ OPC_CheckType, MVT::i32, ++/*435051*/ OPC_MoveParent, ++/*435052*/ OPC_MoveChild6, ++/*435053*/ OPC_CheckInteger, 1, ++/*435055*/ OPC_CheckType, MVT::i32, ++/*435057*/ OPC_MoveParent, ++/*435058*/ OPC_MoveChild7, ++/*435059*/ OPC_CheckInteger, 1, ++/*435061*/ OPC_CheckType, MVT::i32, ++/*435063*/ OPC_MoveParent, ++/*435064*/ OPC_CheckType, MVT::v8i32, ++/*435066*/ OPC_MoveParent, ++/*435067*/ OPC_CheckType, MVT::v8i32, ++/*435069*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*435071*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a), LASX256W:{ *:[v8i32] }:$b), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*435079*/ 0, /*End of Scope*/ ++/*435080*/ /*Scope*/ 58|128,2/*314*/, /*->435396*/ ++/*435082*/ OPC_CheckChild0Same, 0, ++/*435084*/ OPC_MoveChild1, ++/*435085*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*435088*/ OPC_Scope, 23|128,1/*151*/, /*->435242*/ // 2 children in Scope ++/*435091*/ OPC_MoveChild0, ++/*435092*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*435095*/ OPC_CheckChild0Integer, 1, ++/*435097*/ OPC_CheckChild0Type, MVT::i32, ++/*435099*/ OPC_CheckChild1Integer, 1, ++/*435101*/ OPC_CheckChild1Type, MVT::i32, ++/*435103*/ OPC_CheckChild2Integer, 1, ++/*435105*/ OPC_CheckChild2Type, MVT::i32, ++/*435107*/ OPC_CheckChild3Integer, 1, ++/*435109*/ OPC_CheckChild3Type, MVT::i32, ++/*435111*/ OPC_CheckChild4Integer, 1, ++/*435113*/ OPC_CheckChild4Type, MVT::i32, ++/*435115*/ OPC_MoveChild5, ++/*435116*/ OPC_CheckInteger, 1, ++/*435118*/ OPC_CheckType, MVT::i32, ++/*435120*/ OPC_MoveParent, ++/*435121*/ OPC_MoveChild6, ++/*435122*/ OPC_CheckInteger, 1, ++/*435124*/ OPC_CheckType, MVT::i32, ++/*435126*/ OPC_MoveParent, ++/*435127*/ OPC_MoveChild7, ++/*435128*/ OPC_CheckInteger, 1, ++/*435130*/ OPC_CheckType, MVT::i32, ++/*435132*/ OPC_MoveParent, ++/*435133*/ OPC_MoveParent, ++/*435134*/ OPC_CheckChild1Same, 1, ++/*435136*/ OPC_MoveParent, ++/*435137*/ OPC_MoveParent, ++/*435138*/ OPC_MoveChild1, ++/*435139*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*435142*/ OPC_CheckChild0Integer, 31, ++/*435144*/ OPC_CheckChild0Type, MVT::i32, ++/*435146*/ OPC_CheckChild1Integer, 31, ++/*435148*/ OPC_CheckChild1Type, MVT::i32, ++/*435150*/ OPC_CheckChild2Integer, 31, ++/*435152*/ OPC_CheckChild2Type, MVT::i32, ++/*435154*/ OPC_CheckChild3Integer, 31, ++/*435156*/ OPC_CheckChild3Type, MVT::i32, ++/*435158*/ OPC_CheckChild4Integer, 31, ++/*435160*/ OPC_CheckChild4Type, MVT::i32, ++/*435162*/ OPC_MoveChild5, ++/*435163*/ OPC_CheckInteger, 31, ++/*435165*/ OPC_CheckType, MVT::i32, ++/*435167*/ OPC_MoveParent, ++/*435168*/ OPC_MoveChild6, ++/*435169*/ OPC_CheckInteger, 31, ++/*435171*/ OPC_CheckType, MVT::i32, ++/*435173*/ OPC_MoveParent, ++/*435174*/ OPC_MoveChild7, ++/*435175*/ OPC_CheckInteger, 31, ++/*435177*/ OPC_CheckType, MVT::i32, ++/*435179*/ OPC_MoveParent, ++/*435180*/ OPC_CheckType, MVT::v8i32, ++/*435182*/ OPC_MoveParent, ++/*435183*/ OPC_MoveParent, ++/*435184*/ OPC_MoveParent, ++/*435185*/ OPC_MoveChild1, ++/*435186*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*435189*/ OPC_CheckChild0Integer, 1, ++/*435191*/ OPC_CheckChild0Type, MVT::i32, ++/*435193*/ OPC_CheckChild1Integer, 1, ++/*435195*/ OPC_CheckChild1Type, MVT::i32, ++/*435197*/ OPC_CheckChild2Integer, 1, ++/*435199*/ OPC_CheckChild2Type, MVT::i32, ++/*435201*/ OPC_CheckChild3Integer, 1, ++/*435203*/ OPC_CheckChild3Type, MVT::i32, ++/*435205*/ OPC_CheckChild4Integer, 1, ++/*435207*/ OPC_CheckChild4Type, MVT::i32, ++/*435209*/ OPC_MoveChild5, ++/*435210*/ OPC_CheckInteger, 1, ++/*435212*/ OPC_CheckType, MVT::i32, ++/*435214*/ OPC_MoveParent, ++/*435215*/ OPC_MoveChild6, ++/*435216*/ OPC_CheckInteger, 1, ++/*435218*/ OPC_CheckType, MVT::i32, ++/*435220*/ OPC_MoveParent, ++/*435221*/ OPC_MoveChild7, ++/*435222*/ OPC_CheckInteger, 1, ++/*435224*/ OPC_CheckType, MVT::i32, ++/*435226*/ OPC_MoveParent, ++/*435227*/ OPC_CheckType, MVT::v8i32, ++/*435229*/ OPC_MoveParent, ++/*435230*/ OPC_CheckType, MVT::v8i32, ++/*435232*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*435234*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a), LASX256W:{ *:[v8i32] }:$b), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*435242*/ /*Scope*/ 23|128,1/*151*/, /*->435395*/ ++/*435244*/ OPC_CheckChild0Same, 1, ++/*435246*/ OPC_MoveChild1, ++/*435247*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*435250*/ OPC_CheckChild0Integer, 1, ++/*435252*/ OPC_CheckChild0Type, MVT::i32, ++/*435254*/ OPC_CheckChild1Integer, 1, ++/*435256*/ OPC_CheckChild1Type, MVT::i32, ++/*435258*/ OPC_CheckChild2Integer, 1, ++/*435260*/ OPC_CheckChild2Type, MVT::i32, ++/*435262*/ OPC_CheckChild3Integer, 1, ++/*435264*/ OPC_CheckChild3Type, MVT::i32, ++/*435266*/ OPC_CheckChild4Integer, 1, ++/*435268*/ OPC_CheckChild4Type, MVT::i32, ++/*435270*/ OPC_MoveChild5, ++/*435271*/ OPC_CheckInteger, 1, ++/*435273*/ OPC_CheckType, MVT::i32, ++/*435275*/ OPC_MoveParent, ++/*435276*/ OPC_MoveChild6, ++/*435277*/ OPC_CheckInteger, 1, ++/*435279*/ OPC_CheckType, MVT::i32, ++/*435281*/ OPC_MoveParent, ++/*435282*/ OPC_MoveChild7, ++/*435283*/ OPC_CheckInteger, 1, ++/*435285*/ OPC_CheckType, MVT::i32, ++/*435287*/ OPC_MoveParent, ++/*435288*/ OPC_MoveParent, ++/*435289*/ OPC_MoveParent, ++/*435290*/ OPC_MoveParent, ++/*435291*/ OPC_MoveChild1, ++/*435292*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*435295*/ OPC_CheckChild0Integer, 31, ++/*435297*/ OPC_CheckChild0Type, MVT::i32, ++/*435299*/ OPC_CheckChild1Integer, 31, ++/*435301*/ OPC_CheckChild1Type, MVT::i32, ++/*435303*/ OPC_CheckChild2Integer, 31, ++/*435305*/ OPC_CheckChild2Type, MVT::i32, ++/*435307*/ OPC_CheckChild3Integer, 31, ++/*435309*/ OPC_CheckChild3Type, MVT::i32, ++/*435311*/ OPC_CheckChild4Integer, 31, ++/*435313*/ OPC_CheckChild4Type, MVT::i32, ++/*435315*/ OPC_MoveChild5, ++/*435316*/ OPC_CheckInteger, 31, ++/*435318*/ OPC_CheckType, MVT::i32, ++/*435320*/ OPC_MoveParent, ++/*435321*/ OPC_MoveChild6, ++/*435322*/ OPC_CheckInteger, 31, ++/*435324*/ OPC_CheckType, MVT::i32, ++/*435326*/ OPC_MoveParent, ++/*435327*/ OPC_MoveChild7, ++/*435328*/ OPC_CheckInteger, 31, ++/*435330*/ OPC_CheckType, MVT::i32, ++/*435332*/ OPC_MoveParent, ++/*435333*/ OPC_CheckType, MVT::v8i32, ++/*435335*/ OPC_MoveParent, ++/*435336*/ OPC_MoveParent, ++/*435337*/ OPC_MoveParent, ++/*435338*/ OPC_MoveChild1, ++/*435339*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*435342*/ OPC_CheckChild0Integer, 1, ++/*435344*/ OPC_CheckChild0Type, MVT::i32, ++/*435346*/ OPC_CheckChild1Integer, 1, ++/*435348*/ OPC_CheckChild1Type, MVT::i32, ++/*435350*/ OPC_CheckChild2Integer, 1, ++/*435352*/ OPC_CheckChild2Type, MVT::i32, ++/*435354*/ OPC_CheckChild3Integer, 1, ++/*435356*/ OPC_CheckChild3Type, MVT::i32, ++/*435358*/ OPC_CheckChild4Integer, 1, ++/*435360*/ OPC_CheckChild4Type, MVT::i32, ++/*435362*/ OPC_MoveChild5, ++/*435363*/ OPC_CheckInteger, 1, ++/*435365*/ OPC_CheckType, MVT::i32, ++/*435367*/ OPC_MoveParent, ++/*435368*/ OPC_MoveChild6, ++/*435369*/ OPC_CheckInteger, 1, ++/*435371*/ OPC_CheckType, MVT::i32, ++/*435373*/ OPC_MoveParent, ++/*435374*/ OPC_MoveChild7, ++/*435375*/ OPC_CheckInteger, 1, ++/*435377*/ OPC_CheckType, MVT::i32, ++/*435379*/ OPC_MoveParent, ++/*435380*/ OPC_CheckType, MVT::v8i32, ++/*435382*/ OPC_MoveParent, ++/*435383*/ OPC_CheckType, MVT::v8i32, ++/*435385*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*435387*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a), LASX256W:{ *:[v8i32] }:$b), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*435395*/ 0, /*End of Scope*/ ++/*435396*/ /*Scope*/ 15|128,2/*271*/, /*->435669*/ ++/*435398*/ OPC_MoveChild0, ++/*435399*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*435402*/ OPC_CheckChild0Integer, 1, ++/*435404*/ OPC_CheckChild0Type, MVT::i32, ++/*435406*/ OPC_CheckChild1Integer, 1, ++/*435408*/ OPC_CheckChild1Type, MVT::i32, ++/*435410*/ OPC_CheckChild2Integer, 1, ++/*435412*/ OPC_CheckChild2Type, MVT::i32, ++/*435414*/ OPC_CheckChild3Integer, 1, ++/*435416*/ OPC_CheckChild3Type, MVT::i32, ++/*435418*/ OPC_CheckChild4Integer, 1, ++/*435420*/ OPC_CheckChild4Type, MVT::i32, ++/*435422*/ OPC_MoveChild5, ++/*435423*/ OPC_CheckInteger, 1, ++/*435425*/ OPC_CheckType, MVT::i32, ++/*435427*/ OPC_MoveParent, ++/*435428*/ OPC_MoveChild6, ++/*435429*/ OPC_CheckInteger, 1, ++/*435431*/ OPC_CheckType, MVT::i32, ++/*435433*/ OPC_MoveParent, ++/*435434*/ OPC_MoveChild7, ++/*435435*/ OPC_CheckInteger, 1, ++/*435437*/ OPC_CheckType, MVT::i32, ++/*435439*/ OPC_MoveParent, ++/*435440*/ OPC_MoveParent, ++/*435441*/ OPC_MoveChild1, ++/*435442*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*435445*/ OPC_Scope, 110, /*->435557*/ // 2 children in Scope ++/*435447*/ OPC_CheckChild0Same, 0, ++/*435449*/ OPC_CheckChild1Same, 1, ++/*435451*/ OPC_MoveParent, ++/*435452*/ OPC_MoveParent, ++/*435453*/ OPC_MoveChild1, ++/*435454*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*435457*/ OPC_CheckChild0Integer, 31, ++/*435459*/ OPC_CheckChild0Type, MVT::i32, ++/*435461*/ OPC_CheckChild1Integer, 31, ++/*435463*/ OPC_CheckChild1Type, MVT::i32, ++/*435465*/ OPC_CheckChild2Integer, 31, ++/*435467*/ OPC_CheckChild2Type, MVT::i32, ++/*435469*/ OPC_CheckChild3Integer, 31, ++/*435471*/ OPC_CheckChild3Type, MVT::i32, ++/*435473*/ OPC_CheckChild4Integer, 31, ++/*435475*/ OPC_CheckChild4Type, MVT::i32, ++/*435477*/ OPC_MoveChild5, ++/*435478*/ OPC_CheckInteger, 31, ++/*435480*/ OPC_CheckType, MVT::i32, ++/*435482*/ OPC_MoveParent, ++/*435483*/ OPC_MoveChild6, ++/*435484*/ OPC_CheckInteger, 31, ++/*435486*/ OPC_CheckType, MVT::i32, ++/*435488*/ OPC_MoveParent, ++/*435489*/ OPC_MoveChild7, ++/*435490*/ OPC_CheckInteger, 31, ++/*435492*/ OPC_CheckType, MVT::i32, ++/*435494*/ OPC_MoveParent, ++/*435495*/ OPC_CheckType, MVT::v8i32, ++/*435497*/ OPC_MoveParent, ++/*435498*/ OPC_MoveParent, ++/*435499*/ OPC_MoveParent, ++/*435500*/ OPC_MoveChild1, ++/*435501*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*435504*/ OPC_CheckChild0Integer, 1, ++/*435506*/ OPC_CheckChild0Type, MVT::i32, ++/*435508*/ OPC_CheckChild1Integer, 1, ++/*435510*/ OPC_CheckChild1Type, MVT::i32, ++/*435512*/ OPC_CheckChild2Integer, 1, ++/*435514*/ OPC_CheckChild2Type, MVT::i32, ++/*435516*/ OPC_CheckChild3Integer, 1, ++/*435518*/ OPC_CheckChild3Type, MVT::i32, ++/*435520*/ OPC_CheckChild4Integer, 1, ++/*435522*/ OPC_CheckChild4Type, MVT::i32, ++/*435524*/ OPC_MoveChild5, ++/*435525*/ OPC_CheckInteger, 1, ++/*435527*/ OPC_CheckType, MVT::i32, ++/*435529*/ OPC_MoveParent, ++/*435530*/ OPC_MoveChild6, ++/*435531*/ OPC_CheckInteger, 1, ++/*435533*/ OPC_CheckType, MVT::i32, ++/*435535*/ OPC_MoveParent, ++/*435536*/ OPC_MoveChild7, ++/*435537*/ OPC_CheckInteger, 1, ++/*435539*/ OPC_CheckType, MVT::i32, ++/*435541*/ OPC_MoveParent, ++/*435542*/ OPC_CheckType, MVT::v8i32, ++/*435544*/ OPC_MoveParent, ++/*435545*/ OPC_CheckType, MVT::v8i32, ++/*435547*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*435549*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a), LASX256W:{ *:[v8i32] }:$b), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*435557*/ /*Scope*/ 110, /*->435668*/ ++/*435558*/ OPC_CheckChild0Same, 1, ++/*435560*/ OPC_CheckChild1Same, 0, ++/*435562*/ OPC_MoveParent, ++/*435563*/ OPC_MoveParent, ++/*435564*/ OPC_MoveChild1, ++/*435565*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*435568*/ OPC_CheckChild0Integer, 31, ++/*435570*/ OPC_CheckChild0Type, MVT::i32, ++/*435572*/ OPC_CheckChild1Integer, 31, ++/*435574*/ OPC_CheckChild1Type, MVT::i32, ++/*435576*/ OPC_CheckChild2Integer, 31, ++/*435578*/ OPC_CheckChild2Type, MVT::i32, ++/*435580*/ OPC_CheckChild3Integer, 31, ++/*435582*/ OPC_CheckChild3Type, MVT::i32, ++/*435584*/ OPC_CheckChild4Integer, 31, ++/*435586*/ OPC_CheckChild4Type, MVT::i32, ++/*435588*/ OPC_MoveChild5, ++/*435589*/ OPC_CheckInteger, 31, ++/*435591*/ OPC_CheckType, MVT::i32, ++/*435593*/ OPC_MoveParent, ++/*435594*/ OPC_MoveChild6, ++/*435595*/ OPC_CheckInteger, 31, ++/*435597*/ OPC_CheckType, MVT::i32, ++/*435599*/ OPC_MoveParent, ++/*435600*/ OPC_MoveChild7, ++/*435601*/ OPC_CheckInteger, 31, ++/*435603*/ OPC_CheckType, MVT::i32, ++/*435605*/ OPC_MoveParent, ++/*435606*/ OPC_CheckType, MVT::v8i32, ++/*435608*/ OPC_MoveParent, ++/*435609*/ OPC_MoveParent, ++/*435610*/ OPC_MoveParent, ++/*435611*/ OPC_MoveChild1, ++/*435612*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*435615*/ OPC_CheckChild0Integer, 1, ++/*435617*/ OPC_CheckChild0Type, MVT::i32, ++/*435619*/ OPC_CheckChild1Integer, 1, ++/*435621*/ OPC_CheckChild1Type, MVT::i32, ++/*435623*/ OPC_CheckChild2Integer, 1, ++/*435625*/ OPC_CheckChild2Type, MVT::i32, ++/*435627*/ OPC_CheckChild3Integer, 1, ++/*435629*/ OPC_CheckChild3Type, MVT::i32, ++/*435631*/ OPC_CheckChild4Integer, 1, ++/*435633*/ OPC_CheckChild4Type, MVT::i32, ++/*435635*/ OPC_MoveChild5, ++/*435636*/ OPC_CheckInteger, 1, ++/*435638*/ OPC_CheckType, MVT::i32, ++/*435640*/ OPC_MoveParent, ++/*435641*/ OPC_MoveChild6, ++/*435642*/ OPC_CheckInteger, 1, ++/*435644*/ OPC_CheckType, MVT::i32, ++/*435646*/ OPC_MoveParent, ++/*435647*/ OPC_MoveChild7, ++/*435648*/ OPC_CheckInteger, 1, ++/*435650*/ OPC_CheckType, MVT::i32, ++/*435652*/ OPC_MoveParent, ++/*435653*/ OPC_CheckType, MVT::v8i32, ++/*435655*/ OPC_MoveParent, ++/*435656*/ OPC_CheckType, MVT::v8i32, ++/*435658*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*435660*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a), LASX256W:{ *:[v8i32] }:$b), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*435668*/ 0, /*End of Scope*/ ++/*435669*/ 0, /*End of Scope*/ ++/*435670*/ /*Scope*/ 108|128,14/*1900*/, /*->437572*/ ++/*435672*/ OPC_RecordChild0, // #0 = $a ++/*435673*/ OPC_MoveChild1, ++/*435674*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*435677*/ OPC_CheckChild0Integer, 1, ++/*435679*/ OPC_CheckChild0Type, MVT::i32, ++/*435681*/ OPC_CheckChild1Integer, 1, ++/*435683*/ OPC_CheckChild1Type, MVT::i32, ++/*435685*/ OPC_CheckChild2Integer, 1, ++/*435687*/ OPC_CheckChild2Type, MVT::i32, ++/*435689*/ OPC_CheckChild3Integer, 1, ++/*435691*/ OPC_CheckChild3Type, MVT::i32, ++/*435693*/ OPC_CheckChild4Integer, 1, ++/*435695*/ OPC_CheckChild4Type, MVT::i32, ++/*435697*/ OPC_MoveChild5, ++/*435698*/ OPC_CheckInteger, 1, ++/*435700*/ OPC_CheckType, MVT::i32, ++/*435702*/ OPC_MoveParent, ++/*435703*/ OPC_MoveChild6, ++/*435704*/ OPC_CheckInteger, 1, ++/*435706*/ OPC_CheckType, MVT::i32, ++/*435708*/ OPC_MoveParent, ++/*435709*/ OPC_MoveChild7, ++/*435710*/ OPC_CheckInteger, 1, ++/*435712*/ OPC_CheckType, MVT::i32, ++/*435714*/ OPC_MoveParent, ++/*435715*/ OPC_MoveParent, ++/*435716*/ OPC_MoveParent, ++/*435717*/ OPC_RecordChild1, // #1 = $b ++/*435718*/ OPC_MoveParent, ++/*435719*/ OPC_MoveChild1, ++/*435720*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*435723*/ OPC_MoveChild0, ++/*435724*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*435727*/ OPC_Scope, 40|128,7/*936*/, /*->436666*/ // 4 children in Scope ++/*435730*/ OPC_MoveChild0, ++/*435731*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*435734*/ OPC_Scope, 25|128,1/*153*/, /*->435890*/ // 6 children in Scope ++/*435737*/ OPC_MoveChild0, ++/*435738*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*435741*/ OPC_CheckChild0Integer, 1, ++/*435743*/ OPC_CheckChild0Type, MVT::i32, ++/*435745*/ OPC_CheckChild1Integer, 1, ++/*435747*/ OPC_CheckChild1Type, MVT::i32, ++/*435749*/ OPC_CheckChild2Integer, 1, ++/*435751*/ OPC_CheckChild2Type, MVT::i32, ++/*435753*/ OPC_CheckChild3Integer, 1, ++/*435755*/ OPC_CheckChild3Type, MVT::i32, ++/*435757*/ OPC_CheckChild4Integer, 1, ++/*435759*/ OPC_CheckChild4Type, MVT::i32, ++/*435761*/ OPC_MoveChild5, ++/*435762*/ OPC_CheckInteger, 1, ++/*435764*/ OPC_CheckType, MVT::i32, ++/*435766*/ OPC_MoveParent, ++/*435767*/ OPC_MoveChild6, ++/*435768*/ OPC_CheckInteger, 1, ++/*435770*/ OPC_CheckType, MVT::i32, ++/*435772*/ OPC_MoveParent, ++/*435773*/ OPC_MoveChild7, ++/*435774*/ OPC_CheckInteger, 1, ++/*435776*/ OPC_CheckType, MVT::i32, ++/*435778*/ OPC_MoveParent, ++/*435779*/ OPC_MoveParent, ++/*435780*/ OPC_CheckChild1Same, 0, ++/*435782*/ OPC_MoveParent, ++/*435783*/ OPC_CheckChild1Same, 1, ++/*435785*/ OPC_MoveParent, ++/*435786*/ OPC_MoveChild1, ++/*435787*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*435790*/ OPC_CheckChild0Integer, 31, ++/*435792*/ OPC_CheckChild0Type, MVT::i32, ++/*435794*/ OPC_CheckChild1Integer, 31, ++/*435796*/ OPC_CheckChild1Type, MVT::i32, ++/*435798*/ OPC_CheckChild2Integer, 31, ++/*435800*/ OPC_CheckChild2Type, MVT::i32, ++/*435802*/ OPC_CheckChild3Integer, 31, ++/*435804*/ OPC_CheckChild3Type, MVT::i32, ++/*435806*/ OPC_CheckChild4Integer, 31, ++/*435808*/ OPC_CheckChild4Type, MVT::i32, ++/*435810*/ OPC_MoveChild5, ++/*435811*/ OPC_CheckInteger, 31, ++/*435813*/ OPC_CheckType, MVT::i32, ++/*435815*/ OPC_MoveParent, ++/*435816*/ OPC_MoveChild6, ++/*435817*/ OPC_CheckInteger, 31, ++/*435819*/ OPC_CheckType, MVT::i32, ++/*435821*/ OPC_MoveParent, ++/*435822*/ OPC_MoveChild7, ++/*435823*/ OPC_CheckInteger, 31, ++/*435825*/ OPC_CheckType, MVT::i32, ++/*435827*/ OPC_MoveParent, ++/*435828*/ OPC_CheckType, MVT::v8i32, ++/*435830*/ OPC_MoveParent, ++/*435831*/ OPC_MoveParent, ++/*435832*/ OPC_MoveParent, ++/*435833*/ OPC_MoveChild1, ++/*435834*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*435837*/ OPC_CheckChild0Integer, 1, ++/*435839*/ OPC_CheckChild0Type, MVT::i32, ++/*435841*/ OPC_CheckChild1Integer, 1, ++/*435843*/ OPC_CheckChild1Type, MVT::i32, ++/*435845*/ OPC_CheckChild2Integer, 1, ++/*435847*/ OPC_CheckChild2Type, MVT::i32, ++/*435849*/ OPC_CheckChild3Integer, 1, ++/*435851*/ OPC_CheckChild3Type, MVT::i32, ++/*435853*/ OPC_CheckChild4Integer, 1, ++/*435855*/ OPC_CheckChild4Type, MVT::i32, ++/*435857*/ OPC_MoveChild5, ++/*435858*/ OPC_CheckInteger, 1, ++/*435860*/ OPC_CheckType, MVT::i32, ++/*435862*/ OPC_MoveParent, ++/*435863*/ OPC_MoveChild6, ++/*435864*/ OPC_CheckInteger, 1, ++/*435866*/ OPC_CheckType, MVT::i32, ++/*435868*/ OPC_MoveParent, ++/*435869*/ OPC_MoveChild7, ++/*435870*/ OPC_CheckInteger, 1, ++/*435872*/ OPC_CheckType, MVT::i32, ++/*435874*/ OPC_MoveParent, ++/*435875*/ OPC_CheckType, MVT::v8i32, ++/*435877*/ OPC_MoveParent, ++/*435878*/ OPC_CheckType, MVT::v8i32, ++/*435880*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*435882*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$b), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a), LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*435890*/ /*Scope*/ 25|128,1/*153*/, /*->436045*/ ++/*435892*/ OPC_CheckChild0Same, 0, ++/*435894*/ OPC_MoveChild1, ++/*435895*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*435898*/ OPC_CheckChild0Integer, 1, ++/*435900*/ OPC_CheckChild0Type, MVT::i32, ++/*435902*/ OPC_CheckChild1Integer, 1, ++/*435904*/ OPC_CheckChild1Type, MVT::i32, ++/*435906*/ OPC_CheckChild2Integer, 1, ++/*435908*/ OPC_CheckChild2Type, MVT::i32, ++/*435910*/ OPC_CheckChild3Integer, 1, ++/*435912*/ OPC_CheckChild3Type, MVT::i32, ++/*435914*/ OPC_CheckChild4Integer, 1, ++/*435916*/ OPC_CheckChild4Type, MVT::i32, ++/*435918*/ OPC_MoveChild5, ++/*435919*/ OPC_CheckInteger, 1, ++/*435921*/ OPC_CheckType, MVT::i32, ++/*435923*/ OPC_MoveParent, ++/*435924*/ OPC_MoveChild6, ++/*435925*/ OPC_CheckInteger, 1, ++/*435927*/ OPC_CheckType, MVT::i32, ++/*435929*/ OPC_MoveParent, ++/*435930*/ OPC_MoveChild7, ++/*435931*/ OPC_CheckInteger, 1, ++/*435933*/ OPC_CheckType, MVT::i32, ++/*435935*/ OPC_MoveParent, ++/*435936*/ OPC_MoveParent, ++/*435937*/ OPC_MoveParent, ++/*435938*/ OPC_CheckChild1Same, 1, ++/*435940*/ OPC_MoveParent, ++/*435941*/ OPC_MoveChild1, ++/*435942*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*435945*/ OPC_CheckChild0Integer, 31, ++/*435947*/ OPC_CheckChild0Type, MVT::i32, ++/*435949*/ OPC_CheckChild1Integer, 31, ++/*435951*/ OPC_CheckChild1Type, MVT::i32, ++/*435953*/ OPC_CheckChild2Integer, 31, ++/*435955*/ OPC_CheckChild2Type, MVT::i32, ++/*435957*/ OPC_CheckChild3Integer, 31, ++/*435959*/ OPC_CheckChild3Type, MVT::i32, ++/*435961*/ OPC_CheckChild4Integer, 31, ++/*435963*/ OPC_CheckChild4Type, MVT::i32, ++/*435965*/ OPC_MoveChild5, ++/*435966*/ OPC_CheckInteger, 31, ++/*435968*/ OPC_CheckType, MVT::i32, ++/*435970*/ OPC_MoveParent, ++/*435971*/ OPC_MoveChild6, ++/*435972*/ OPC_CheckInteger, 31, ++/*435974*/ OPC_CheckType, MVT::i32, ++/*435976*/ OPC_MoveParent, ++/*435977*/ OPC_MoveChild7, ++/*435978*/ OPC_CheckInteger, 31, ++/*435980*/ OPC_CheckType, MVT::i32, ++/*435982*/ OPC_MoveParent, ++/*435983*/ OPC_CheckType, MVT::v8i32, ++/*435985*/ OPC_MoveParent, ++/*435986*/ OPC_MoveParent, ++/*435987*/ OPC_MoveParent, ++/*435988*/ OPC_MoveChild1, ++/*435989*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*435992*/ OPC_CheckChild0Integer, 1, ++/*435994*/ OPC_CheckChild0Type, MVT::i32, ++/*435996*/ OPC_CheckChild1Integer, 1, ++/*435998*/ OPC_CheckChild1Type, MVT::i32, ++/*436000*/ OPC_CheckChild2Integer, 1, ++/*436002*/ OPC_CheckChild2Type, MVT::i32, ++/*436004*/ OPC_CheckChild3Integer, 1, ++/*436006*/ OPC_CheckChild3Type, MVT::i32, ++/*436008*/ OPC_CheckChild4Integer, 1, ++/*436010*/ OPC_CheckChild4Type, MVT::i32, ++/*436012*/ OPC_MoveChild5, ++/*436013*/ OPC_CheckInteger, 1, ++/*436015*/ OPC_CheckType, MVT::i32, ++/*436017*/ OPC_MoveParent, ++/*436018*/ OPC_MoveChild6, ++/*436019*/ OPC_CheckInteger, 1, ++/*436021*/ OPC_CheckType, MVT::i32, ++/*436023*/ OPC_MoveParent, ++/*436024*/ OPC_MoveChild7, ++/*436025*/ OPC_CheckInteger, 1, ++/*436027*/ OPC_CheckType, MVT::i32, ++/*436029*/ OPC_MoveParent, ++/*436030*/ OPC_CheckType, MVT::v8i32, ++/*436032*/ OPC_MoveParent, ++/*436033*/ OPC_CheckType, MVT::v8i32, ++/*436035*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*436037*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$b), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*436045*/ /*Scope*/ 25|128,1/*153*/, /*->436200*/ ++/*436047*/ OPC_MoveChild0, ++/*436048*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*436051*/ OPC_CheckChild0Integer, 1, ++/*436053*/ OPC_CheckChild0Type, MVT::i32, ++/*436055*/ OPC_CheckChild1Integer, 1, ++/*436057*/ OPC_CheckChild1Type, MVT::i32, ++/*436059*/ OPC_CheckChild2Integer, 1, ++/*436061*/ OPC_CheckChild2Type, MVT::i32, ++/*436063*/ OPC_CheckChild3Integer, 1, ++/*436065*/ OPC_CheckChild3Type, MVT::i32, ++/*436067*/ OPC_CheckChild4Integer, 1, ++/*436069*/ OPC_CheckChild4Type, MVT::i32, ++/*436071*/ OPC_MoveChild5, ++/*436072*/ OPC_CheckInteger, 1, ++/*436074*/ OPC_CheckType, MVT::i32, ++/*436076*/ OPC_MoveParent, ++/*436077*/ OPC_MoveChild6, ++/*436078*/ OPC_CheckInteger, 1, ++/*436080*/ OPC_CheckType, MVT::i32, ++/*436082*/ OPC_MoveParent, ++/*436083*/ OPC_MoveChild7, ++/*436084*/ OPC_CheckInteger, 1, ++/*436086*/ OPC_CheckType, MVT::i32, ++/*436088*/ OPC_MoveParent, ++/*436089*/ OPC_MoveParent, ++/*436090*/ OPC_CheckChild1Same, 1, ++/*436092*/ OPC_MoveParent, ++/*436093*/ OPC_CheckChild1Same, 0, ++/*436095*/ OPC_MoveParent, ++/*436096*/ OPC_MoveChild1, ++/*436097*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*436100*/ OPC_CheckChild0Integer, 31, ++/*436102*/ OPC_CheckChild0Type, MVT::i32, ++/*436104*/ OPC_CheckChild1Integer, 31, ++/*436106*/ OPC_CheckChild1Type, MVT::i32, ++/*436108*/ OPC_CheckChild2Integer, 31, ++/*436110*/ OPC_CheckChild2Type, MVT::i32, ++/*436112*/ OPC_CheckChild3Integer, 31, ++/*436114*/ OPC_CheckChild3Type, MVT::i32, ++/*436116*/ OPC_CheckChild4Integer, 31, ++/*436118*/ OPC_CheckChild4Type, MVT::i32, ++/*436120*/ OPC_MoveChild5, ++/*436121*/ OPC_CheckInteger, 31, ++/*436123*/ OPC_CheckType, MVT::i32, ++/*436125*/ OPC_MoveParent, ++/*436126*/ OPC_MoveChild6, ++/*436127*/ OPC_CheckInteger, 31, ++/*436129*/ OPC_CheckType, MVT::i32, ++/*436131*/ OPC_MoveParent, ++/*436132*/ OPC_MoveChild7, ++/*436133*/ OPC_CheckInteger, 31, ++/*436135*/ OPC_CheckType, MVT::i32, ++/*436137*/ OPC_MoveParent, ++/*436138*/ OPC_CheckType, MVT::v8i32, ++/*436140*/ OPC_MoveParent, ++/*436141*/ OPC_MoveParent, ++/*436142*/ OPC_MoveParent, ++/*436143*/ OPC_MoveChild1, ++/*436144*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*436147*/ OPC_CheckChild0Integer, 1, ++/*436149*/ OPC_CheckChild0Type, MVT::i32, ++/*436151*/ OPC_CheckChild1Integer, 1, ++/*436153*/ OPC_CheckChild1Type, MVT::i32, ++/*436155*/ OPC_CheckChild2Integer, 1, ++/*436157*/ OPC_CheckChild2Type, MVT::i32, ++/*436159*/ OPC_CheckChild3Integer, 1, ++/*436161*/ OPC_CheckChild3Type, MVT::i32, ++/*436163*/ OPC_CheckChild4Integer, 1, ++/*436165*/ OPC_CheckChild4Type, MVT::i32, ++/*436167*/ OPC_MoveChild5, ++/*436168*/ OPC_CheckInteger, 1, ++/*436170*/ OPC_CheckType, MVT::i32, ++/*436172*/ OPC_MoveParent, ++/*436173*/ OPC_MoveChild6, ++/*436174*/ OPC_CheckInteger, 1, ++/*436176*/ OPC_CheckType, MVT::i32, ++/*436178*/ OPC_MoveParent, ++/*436179*/ OPC_MoveChild7, ++/*436180*/ OPC_CheckInteger, 1, ++/*436182*/ OPC_CheckType, MVT::i32, ++/*436184*/ OPC_MoveParent, ++/*436185*/ OPC_CheckType, MVT::v8i32, ++/*436187*/ OPC_MoveParent, ++/*436188*/ OPC_CheckType, MVT::v8i32, ++/*436190*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*436192*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$b), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b), LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*436200*/ /*Scope*/ 25|128,1/*153*/, /*->436355*/ ++/*436202*/ OPC_CheckChild0Same, 1, ++/*436204*/ OPC_MoveChild1, ++/*436205*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*436208*/ OPC_CheckChild0Integer, 1, ++/*436210*/ OPC_CheckChild0Type, MVT::i32, ++/*436212*/ OPC_CheckChild1Integer, 1, ++/*436214*/ OPC_CheckChild1Type, MVT::i32, ++/*436216*/ OPC_CheckChild2Integer, 1, ++/*436218*/ OPC_CheckChild2Type, MVT::i32, ++/*436220*/ OPC_CheckChild3Integer, 1, ++/*436222*/ OPC_CheckChild3Type, MVT::i32, ++/*436224*/ OPC_CheckChild4Integer, 1, ++/*436226*/ OPC_CheckChild4Type, MVT::i32, ++/*436228*/ OPC_MoveChild5, ++/*436229*/ OPC_CheckInteger, 1, ++/*436231*/ OPC_CheckType, MVT::i32, ++/*436233*/ OPC_MoveParent, ++/*436234*/ OPC_MoveChild6, ++/*436235*/ OPC_CheckInteger, 1, ++/*436237*/ OPC_CheckType, MVT::i32, ++/*436239*/ OPC_MoveParent, ++/*436240*/ OPC_MoveChild7, ++/*436241*/ OPC_CheckInteger, 1, ++/*436243*/ OPC_CheckType, MVT::i32, ++/*436245*/ OPC_MoveParent, ++/*436246*/ OPC_MoveParent, ++/*436247*/ OPC_MoveParent, ++/*436248*/ OPC_CheckChild1Same, 0, ++/*436250*/ OPC_MoveParent, ++/*436251*/ OPC_MoveChild1, ++/*436252*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*436255*/ OPC_CheckChild0Integer, 31, ++/*436257*/ OPC_CheckChild0Type, MVT::i32, ++/*436259*/ OPC_CheckChild1Integer, 31, ++/*436261*/ OPC_CheckChild1Type, MVT::i32, ++/*436263*/ OPC_CheckChild2Integer, 31, ++/*436265*/ OPC_CheckChild2Type, MVT::i32, ++/*436267*/ OPC_CheckChild3Integer, 31, ++/*436269*/ OPC_CheckChild3Type, MVT::i32, ++/*436271*/ OPC_CheckChild4Integer, 31, ++/*436273*/ OPC_CheckChild4Type, MVT::i32, ++/*436275*/ OPC_MoveChild5, ++/*436276*/ OPC_CheckInteger, 31, ++/*436278*/ OPC_CheckType, MVT::i32, ++/*436280*/ OPC_MoveParent, ++/*436281*/ OPC_MoveChild6, ++/*436282*/ OPC_CheckInteger, 31, ++/*436284*/ OPC_CheckType, MVT::i32, ++/*436286*/ OPC_MoveParent, ++/*436287*/ OPC_MoveChild7, ++/*436288*/ OPC_CheckInteger, 31, ++/*436290*/ OPC_CheckType, MVT::i32, ++/*436292*/ OPC_MoveParent, ++/*436293*/ OPC_CheckType, MVT::v8i32, ++/*436295*/ OPC_MoveParent, ++/*436296*/ OPC_MoveParent, ++/*436297*/ OPC_MoveParent, ++/*436298*/ OPC_MoveChild1, ++/*436299*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*436302*/ OPC_CheckChild0Integer, 1, ++/*436304*/ OPC_CheckChild0Type, MVT::i32, ++/*436306*/ OPC_CheckChild1Integer, 1, ++/*436308*/ OPC_CheckChild1Type, MVT::i32, ++/*436310*/ OPC_CheckChild2Integer, 1, ++/*436312*/ OPC_CheckChild2Type, MVT::i32, ++/*436314*/ OPC_CheckChild3Integer, 1, ++/*436316*/ OPC_CheckChild3Type, MVT::i32, ++/*436318*/ OPC_CheckChild4Integer, 1, ++/*436320*/ OPC_CheckChild4Type, MVT::i32, ++/*436322*/ OPC_MoveChild5, ++/*436323*/ OPC_CheckInteger, 1, ++/*436325*/ OPC_CheckType, MVT::i32, ++/*436327*/ OPC_MoveParent, ++/*436328*/ OPC_MoveChild6, ++/*436329*/ OPC_CheckInteger, 1, ++/*436331*/ OPC_CheckType, MVT::i32, ++/*436333*/ OPC_MoveParent, ++/*436334*/ OPC_MoveChild7, ++/*436335*/ OPC_CheckInteger, 1, ++/*436337*/ OPC_CheckType, MVT::i32, ++/*436339*/ OPC_MoveParent, ++/*436340*/ OPC_CheckType, MVT::v8i32, ++/*436342*/ OPC_MoveParent, ++/*436343*/ OPC_CheckType, MVT::v8i32, ++/*436345*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*436347*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$b), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*436355*/ /*Scope*/ 25|128,1/*153*/, /*->436510*/ ++/*436357*/ OPC_CheckChild0Same, 0, ++/*436359*/ OPC_CheckChild1Same, 1, ++/*436361*/ OPC_MoveParent, ++/*436362*/ OPC_MoveChild1, ++/*436363*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*436366*/ OPC_CheckChild0Integer, 1, ++/*436368*/ OPC_CheckChild0Type, MVT::i32, ++/*436370*/ OPC_CheckChild1Integer, 1, ++/*436372*/ OPC_CheckChild1Type, MVT::i32, ++/*436374*/ OPC_CheckChild2Integer, 1, ++/*436376*/ OPC_CheckChild2Type, MVT::i32, ++/*436378*/ OPC_CheckChild3Integer, 1, ++/*436380*/ OPC_CheckChild3Type, MVT::i32, ++/*436382*/ OPC_CheckChild4Integer, 1, ++/*436384*/ OPC_CheckChild4Type, MVT::i32, ++/*436386*/ OPC_MoveChild5, ++/*436387*/ OPC_CheckInteger, 1, ++/*436389*/ OPC_CheckType, MVT::i32, ++/*436391*/ OPC_MoveParent, ++/*436392*/ OPC_MoveChild6, ++/*436393*/ OPC_CheckInteger, 1, ++/*436395*/ OPC_CheckType, MVT::i32, ++/*436397*/ OPC_MoveParent, ++/*436398*/ OPC_MoveChild7, ++/*436399*/ OPC_CheckInteger, 1, ++/*436401*/ OPC_CheckType, MVT::i32, ++/*436403*/ OPC_MoveParent, ++/*436404*/ OPC_MoveParent, ++/*436405*/ OPC_MoveParent, ++/*436406*/ OPC_MoveChild1, ++/*436407*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*436410*/ OPC_CheckChild0Integer, 31, ++/*436412*/ OPC_CheckChild0Type, MVT::i32, ++/*436414*/ OPC_CheckChild1Integer, 31, ++/*436416*/ OPC_CheckChild1Type, MVT::i32, ++/*436418*/ OPC_CheckChild2Integer, 31, ++/*436420*/ OPC_CheckChild2Type, MVT::i32, ++/*436422*/ OPC_CheckChild3Integer, 31, ++/*436424*/ OPC_CheckChild3Type, MVT::i32, ++/*436426*/ OPC_CheckChild4Integer, 31, ++/*436428*/ OPC_CheckChild4Type, MVT::i32, ++/*436430*/ OPC_MoveChild5, ++/*436431*/ OPC_CheckInteger, 31, ++/*436433*/ OPC_CheckType, MVT::i32, ++/*436435*/ OPC_MoveParent, ++/*436436*/ OPC_MoveChild6, ++/*436437*/ OPC_CheckInteger, 31, ++/*436439*/ OPC_CheckType, MVT::i32, ++/*436441*/ OPC_MoveParent, ++/*436442*/ OPC_MoveChild7, ++/*436443*/ OPC_CheckInteger, 31, ++/*436445*/ OPC_CheckType, MVT::i32, ++/*436447*/ OPC_MoveParent, ++/*436448*/ OPC_CheckType, MVT::v8i32, ++/*436450*/ OPC_MoveParent, ++/*436451*/ OPC_MoveParent, ++/*436452*/ OPC_MoveParent, ++/*436453*/ OPC_MoveChild1, ++/*436454*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*436457*/ OPC_CheckChild0Integer, 1, ++/*436459*/ OPC_CheckChild0Type, MVT::i32, ++/*436461*/ OPC_CheckChild1Integer, 1, ++/*436463*/ OPC_CheckChild1Type, MVT::i32, ++/*436465*/ OPC_CheckChild2Integer, 1, ++/*436467*/ OPC_CheckChild2Type, MVT::i32, ++/*436469*/ OPC_CheckChild3Integer, 1, ++/*436471*/ OPC_CheckChild3Type, MVT::i32, ++/*436473*/ OPC_CheckChild4Integer, 1, ++/*436475*/ OPC_CheckChild4Type, MVT::i32, ++/*436477*/ OPC_MoveChild5, ++/*436478*/ OPC_CheckInteger, 1, ++/*436480*/ OPC_CheckType, MVT::i32, ++/*436482*/ OPC_MoveParent, ++/*436483*/ OPC_MoveChild6, ++/*436484*/ OPC_CheckInteger, 1, ++/*436486*/ OPC_CheckType, MVT::i32, ++/*436488*/ OPC_MoveParent, ++/*436489*/ OPC_MoveChild7, ++/*436490*/ OPC_CheckInteger, 1, ++/*436492*/ OPC_CheckType, MVT::i32, ++/*436494*/ OPC_MoveParent, ++/*436495*/ OPC_CheckType, MVT::v8i32, ++/*436497*/ OPC_MoveParent, ++/*436498*/ OPC_CheckType, MVT::v8i32, ++/*436500*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*436502*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$b), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*436510*/ /*Scope*/ 25|128,1/*153*/, /*->436665*/ ++/*436512*/ OPC_CheckChild0Same, 1, ++/*436514*/ OPC_CheckChild1Same, 0, ++/*436516*/ OPC_MoveParent, ++/*436517*/ OPC_MoveChild1, ++/*436518*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*436521*/ OPC_CheckChild0Integer, 1, ++/*436523*/ OPC_CheckChild0Type, MVT::i32, ++/*436525*/ OPC_CheckChild1Integer, 1, ++/*436527*/ OPC_CheckChild1Type, MVT::i32, ++/*436529*/ OPC_CheckChild2Integer, 1, ++/*436531*/ OPC_CheckChild2Type, MVT::i32, ++/*436533*/ OPC_CheckChild3Integer, 1, ++/*436535*/ OPC_CheckChild3Type, MVT::i32, ++/*436537*/ OPC_CheckChild4Integer, 1, ++/*436539*/ OPC_CheckChild4Type, MVT::i32, ++/*436541*/ OPC_MoveChild5, ++/*436542*/ OPC_CheckInteger, 1, ++/*436544*/ OPC_CheckType, MVT::i32, ++/*436546*/ OPC_MoveParent, ++/*436547*/ OPC_MoveChild6, ++/*436548*/ OPC_CheckInteger, 1, ++/*436550*/ OPC_CheckType, MVT::i32, ++/*436552*/ OPC_MoveParent, ++/*436553*/ OPC_MoveChild7, ++/*436554*/ OPC_CheckInteger, 1, ++/*436556*/ OPC_CheckType, MVT::i32, ++/*436558*/ OPC_MoveParent, ++/*436559*/ OPC_MoveParent, ++/*436560*/ OPC_MoveParent, ++/*436561*/ OPC_MoveChild1, ++/*436562*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*436565*/ OPC_CheckChild0Integer, 31, ++/*436567*/ OPC_CheckChild0Type, MVT::i32, ++/*436569*/ OPC_CheckChild1Integer, 31, ++/*436571*/ OPC_CheckChild1Type, MVT::i32, ++/*436573*/ OPC_CheckChild2Integer, 31, ++/*436575*/ OPC_CheckChild2Type, MVT::i32, ++/*436577*/ OPC_CheckChild3Integer, 31, ++/*436579*/ OPC_CheckChild3Type, MVT::i32, ++/*436581*/ OPC_CheckChild4Integer, 31, ++/*436583*/ OPC_CheckChild4Type, MVT::i32, ++/*436585*/ OPC_MoveChild5, ++/*436586*/ OPC_CheckInteger, 31, ++/*436588*/ OPC_CheckType, MVT::i32, ++/*436590*/ OPC_MoveParent, ++/*436591*/ OPC_MoveChild6, ++/*436592*/ OPC_CheckInteger, 31, ++/*436594*/ OPC_CheckType, MVT::i32, ++/*436596*/ OPC_MoveParent, ++/*436597*/ OPC_MoveChild7, ++/*436598*/ OPC_CheckInteger, 31, ++/*436600*/ OPC_CheckType, MVT::i32, ++/*436602*/ OPC_MoveParent, ++/*436603*/ OPC_CheckType, MVT::v8i32, ++/*436605*/ OPC_MoveParent, ++/*436606*/ OPC_MoveParent, ++/*436607*/ OPC_MoveParent, ++/*436608*/ OPC_MoveChild1, ++/*436609*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*436612*/ OPC_CheckChild0Integer, 1, ++/*436614*/ OPC_CheckChild0Type, MVT::i32, ++/*436616*/ OPC_CheckChild1Integer, 1, ++/*436618*/ OPC_CheckChild1Type, MVT::i32, ++/*436620*/ OPC_CheckChild2Integer, 1, ++/*436622*/ OPC_CheckChild2Type, MVT::i32, ++/*436624*/ OPC_CheckChild3Integer, 1, ++/*436626*/ OPC_CheckChild3Type, MVT::i32, ++/*436628*/ OPC_CheckChild4Integer, 1, ++/*436630*/ OPC_CheckChild4Type, MVT::i32, ++/*436632*/ OPC_MoveChild5, ++/*436633*/ OPC_CheckInteger, 1, ++/*436635*/ OPC_CheckType, MVT::i32, ++/*436637*/ OPC_MoveParent, ++/*436638*/ OPC_MoveChild6, ++/*436639*/ OPC_CheckInteger, 1, ++/*436641*/ OPC_CheckType, MVT::i32, ++/*436643*/ OPC_MoveParent, ++/*436644*/ OPC_MoveChild7, ++/*436645*/ OPC_CheckInteger, 1, ++/*436647*/ OPC_CheckType, MVT::i32, ++/*436649*/ OPC_MoveParent, ++/*436650*/ OPC_CheckType, MVT::v8i32, ++/*436652*/ OPC_MoveParent, ++/*436653*/ OPC_CheckType, MVT::v8i32, ++/*436655*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*436657*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$b), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*436665*/ 0, /*End of Scope*/ ++/*436666*/ /*Scope*/ 58|128,2/*314*/, /*->436982*/ ++/*436668*/ OPC_CheckChild0Same, 1, ++/*436670*/ OPC_MoveChild1, ++/*436671*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*436674*/ OPC_Scope, 23|128,1/*151*/, /*->436828*/ // 2 children in Scope ++/*436677*/ OPC_MoveChild0, ++/*436678*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*436681*/ OPC_CheckChild0Integer, 1, ++/*436683*/ OPC_CheckChild0Type, MVT::i32, ++/*436685*/ OPC_CheckChild1Integer, 1, ++/*436687*/ OPC_CheckChild1Type, MVT::i32, ++/*436689*/ OPC_CheckChild2Integer, 1, ++/*436691*/ OPC_CheckChild2Type, MVT::i32, ++/*436693*/ OPC_CheckChild3Integer, 1, ++/*436695*/ OPC_CheckChild3Type, MVT::i32, ++/*436697*/ OPC_CheckChild4Integer, 1, ++/*436699*/ OPC_CheckChild4Type, MVT::i32, ++/*436701*/ OPC_MoveChild5, ++/*436702*/ OPC_CheckInteger, 1, ++/*436704*/ OPC_CheckType, MVT::i32, ++/*436706*/ OPC_MoveParent, ++/*436707*/ OPC_MoveChild6, ++/*436708*/ OPC_CheckInteger, 1, ++/*436710*/ OPC_CheckType, MVT::i32, ++/*436712*/ OPC_MoveParent, ++/*436713*/ OPC_MoveChild7, ++/*436714*/ OPC_CheckInteger, 1, ++/*436716*/ OPC_CheckType, MVT::i32, ++/*436718*/ OPC_MoveParent, ++/*436719*/ OPC_MoveParent, ++/*436720*/ OPC_CheckChild1Same, 0, ++/*436722*/ OPC_MoveParent, ++/*436723*/ OPC_MoveParent, ++/*436724*/ OPC_MoveChild1, ++/*436725*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*436728*/ OPC_CheckChild0Integer, 31, ++/*436730*/ OPC_CheckChild0Type, MVT::i32, ++/*436732*/ OPC_CheckChild1Integer, 31, ++/*436734*/ OPC_CheckChild1Type, MVT::i32, ++/*436736*/ OPC_CheckChild2Integer, 31, ++/*436738*/ OPC_CheckChild2Type, MVT::i32, ++/*436740*/ OPC_CheckChild3Integer, 31, ++/*436742*/ OPC_CheckChild3Type, MVT::i32, ++/*436744*/ OPC_CheckChild4Integer, 31, ++/*436746*/ OPC_CheckChild4Type, MVT::i32, ++/*436748*/ OPC_MoveChild5, ++/*436749*/ OPC_CheckInteger, 31, ++/*436751*/ OPC_CheckType, MVT::i32, ++/*436753*/ OPC_MoveParent, ++/*436754*/ OPC_MoveChild6, ++/*436755*/ OPC_CheckInteger, 31, ++/*436757*/ OPC_CheckType, MVT::i32, ++/*436759*/ OPC_MoveParent, ++/*436760*/ OPC_MoveChild7, ++/*436761*/ OPC_CheckInteger, 31, ++/*436763*/ OPC_CheckType, MVT::i32, ++/*436765*/ OPC_MoveParent, ++/*436766*/ OPC_CheckType, MVT::v8i32, ++/*436768*/ OPC_MoveParent, ++/*436769*/ OPC_MoveParent, ++/*436770*/ OPC_MoveParent, ++/*436771*/ OPC_MoveChild1, ++/*436772*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*436775*/ OPC_CheckChild0Integer, 1, ++/*436777*/ OPC_CheckChild0Type, MVT::i32, ++/*436779*/ OPC_CheckChild1Integer, 1, ++/*436781*/ OPC_CheckChild1Type, MVT::i32, ++/*436783*/ OPC_CheckChild2Integer, 1, ++/*436785*/ OPC_CheckChild2Type, MVT::i32, ++/*436787*/ OPC_CheckChild3Integer, 1, ++/*436789*/ OPC_CheckChild3Type, MVT::i32, ++/*436791*/ OPC_CheckChild4Integer, 1, ++/*436793*/ OPC_CheckChild4Type, MVT::i32, ++/*436795*/ OPC_MoveChild5, ++/*436796*/ OPC_CheckInteger, 1, ++/*436798*/ OPC_CheckType, MVT::i32, ++/*436800*/ OPC_MoveParent, ++/*436801*/ OPC_MoveChild6, ++/*436802*/ OPC_CheckInteger, 1, ++/*436804*/ OPC_CheckType, MVT::i32, ++/*436806*/ OPC_MoveParent, ++/*436807*/ OPC_MoveChild7, ++/*436808*/ OPC_CheckInteger, 1, ++/*436810*/ OPC_CheckType, MVT::i32, ++/*436812*/ OPC_MoveParent, ++/*436813*/ OPC_CheckType, MVT::v8i32, ++/*436815*/ OPC_MoveParent, ++/*436816*/ OPC_CheckType, MVT::v8i32, ++/*436818*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*436820*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$b), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*436828*/ /*Scope*/ 23|128,1/*151*/, /*->436981*/ ++/*436830*/ OPC_CheckChild0Same, 0, ++/*436832*/ OPC_MoveChild1, ++/*436833*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*436836*/ OPC_CheckChild0Integer, 1, ++/*436838*/ OPC_CheckChild0Type, MVT::i32, ++/*436840*/ OPC_CheckChild1Integer, 1, ++/*436842*/ OPC_CheckChild1Type, MVT::i32, ++/*436844*/ OPC_CheckChild2Integer, 1, ++/*436846*/ OPC_CheckChild2Type, MVT::i32, ++/*436848*/ OPC_CheckChild3Integer, 1, ++/*436850*/ OPC_CheckChild3Type, MVT::i32, ++/*436852*/ OPC_CheckChild4Integer, 1, ++/*436854*/ OPC_CheckChild4Type, MVT::i32, ++/*436856*/ OPC_MoveChild5, ++/*436857*/ OPC_CheckInteger, 1, ++/*436859*/ OPC_CheckType, MVT::i32, ++/*436861*/ OPC_MoveParent, ++/*436862*/ OPC_MoveChild6, ++/*436863*/ OPC_CheckInteger, 1, ++/*436865*/ OPC_CheckType, MVT::i32, ++/*436867*/ OPC_MoveParent, ++/*436868*/ OPC_MoveChild7, ++/*436869*/ OPC_CheckInteger, 1, ++/*436871*/ OPC_CheckType, MVT::i32, ++/*436873*/ OPC_MoveParent, ++/*436874*/ OPC_MoveParent, ++/*436875*/ OPC_MoveParent, ++/*436876*/ OPC_MoveParent, ++/*436877*/ OPC_MoveChild1, ++/*436878*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*436881*/ OPC_CheckChild0Integer, 31, ++/*436883*/ OPC_CheckChild0Type, MVT::i32, ++/*436885*/ OPC_CheckChild1Integer, 31, ++/*436887*/ OPC_CheckChild1Type, MVT::i32, ++/*436889*/ OPC_CheckChild2Integer, 31, ++/*436891*/ OPC_CheckChild2Type, MVT::i32, ++/*436893*/ OPC_CheckChild3Integer, 31, ++/*436895*/ OPC_CheckChild3Type, MVT::i32, ++/*436897*/ OPC_CheckChild4Integer, 31, ++/*436899*/ OPC_CheckChild4Type, MVT::i32, ++/*436901*/ OPC_MoveChild5, ++/*436902*/ OPC_CheckInteger, 31, ++/*436904*/ OPC_CheckType, MVT::i32, ++/*436906*/ OPC_MoveParent, ++/*436907*/ OPC_MoveChild6, ++/*436908*/ OPC_CheckInteger, 31, ++/*436910*/ OPC_CheckType, MVT::i32, ++/*436912*/ OPC_MoveParent, ++/*436913*/ OPC_MoveChild7, ++/*436914*/ OPC_CheckInteger, 31, ++/*436916*/ OPC_CheckType, MVT::i32, ++/*436918*/ OPC_MoveParent, ++/*436919*/ OPC_CheckType, MVT::v8i32, ++/*436921*/ OPC_MoveParent, ++/*436922*/ OPC_MoveParent, ++/*436923*/ OPC_MoveParent, ++/*436924*/ OPC_MoveChild1, ++/*436925*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*436928*/ OPC_CheckChild0Integer, 1, ++/*436930*/ OPC_CheckChild0Type, MVT::i32, ++/*436932*/ OPC_CheckChild1Integer, 1, ++/*436934*/ OPC_CheckChild1Type, MVT::i32, ++/*436936*/ OPC_CheckChild2Integer, 1, ++/*436938*/ OPC_CheckChild2Type, MVT::i32, ++/*436940*/ OPC_CheckChild3Integer, 1, ++/*436942*/ OPC_CheckChild3Type, MVT::i32, ++/*436944*/ OPC_CheckChild4Integer, 1, ++/*436946*/ OPC_CheckChild4Type, MVT::i32, ++/*436948*/ OPC_MoveChild5, ++/*436949*/ OPC_CheckInteger, 1, ++/*436951*/ OPC_CheckType, MVT::i32, ++/*436953*/ OPC_MoveParent, ++/*436954*/ OPC_MoveChild6, ++/*436955*/ OPC_CheckInteger, 1, ++/*436957*/ OPC_CheckType, MVT::i32, ++/*436959*/ OPC_MoveParent, ++/*436960*/ OPC_MoveChild7, ++/*436961*/ OPC_CheckInteger, 1, ++/*436963*/ OPC_CheckType, MVT::i32, ++/*436965*/ OPC_MoveParent, ++/*436966*/ OPC_CheckType, MVT::v8i32, ++/*436968*/ OPC_MoveParent, ++/*436969*/ OPC_CheckType, MVT::v8i32, ++/*436971*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*436973*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$b), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*436981*/ 0, /*End of Scope*/ ++/*436982*/ /*Scope*/ 58|128,2/*314*/, /*->437298*/ ++/*436984*/ OPC_CheckChild0Same, 0, ++/*436986*/ OPC_MoveChild1, ++/*436987*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*436990*/ OPC_Scope, 23|128,1/*151*/, /*->437144*/ // 2 children in Scope ++/*436993*/ OPC_MoveChild0, ++/*436994*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*436997*/ OPC_CheckChild0Integer, 1, ++/*436999*/ OPC_CheckChild0Type, MVT::i32, ++/*437001*/ OPC_CheckChild1Integer, 1, ++/*437003*/ OPC_CheckChild1Type, MVT::i32, ++/*437005*/ OPC_CheckChild2Integer, 1, ++/*437007*/ OPC_CheckChild2Type, MVT::i32, ++/*437009*/ OPC_CheckChild3Integer, 1, ++/*437011*/ OPC_CheckChild3Type, MVT::i32, ++/*437013*/ OPC_CheckChild4Integer, 1, ++/*437015*/ OPC_CheckChild4Type, MVT::i32, ++/*437017*/ OPC_MoveChild5, ++/*437018*/ OPC_CheckInteger, 1, ++/*437020*/ OPC_CheckType, MVT::i32, ++/*437022*/ OPC_MoveParent, ++/*437023*/ OPC_MoveChild6, ++/*437024*/ OPC_CheckInteger, 1, ++/*437026*/ OPC_CheckType, MVT::i32, ++/*437028*/ OPC_MoveParent, ++/*437029*/ OPC_MoveChild7, ++/*437030*/ OPC_CheckInteger, 1, ++/*437032*/ OPC_CheckType, MVT::i32, ++/*437034*/ OPC_MoveParent, ++/*437035*/ OPC_MoveParent, ++/*437036*/ OPC_CheckChild1Same, 1, ++/*437038*/ OPC_MoveParent, ++/*437039*/ OPC_MoveParent, ++/*437040*/ OPC_MoveChild1, ++/*437041*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*437044*/ OPC_CheckChild0Integer, 31, ++/*437046*/ OPC_CheckChild0Type, MVT::i32, ++/*437048*/ OPC_CheckChild1Integer, 31, ++/*437050*/ OPC_CheckChild1Type, MVT::i32, ++/*437052*/ OPC_CheckChild2Integer, 31, ++/*437054*/ OPC_CheckChild2Type, MVT::i32, ++/*437056*/ OPC_CheckChild3Integer, 31, ++/*437058*/ OPC_CheckChild3Type, MVT::i32, ++/*437060*/ OPC_CheckChild4Integer, 31, ++/*437062*/ OPC_CheckChild4Type, MVT::i32, ++/*437064*/ OPC_MoveChild5, ++/*437065*/ OPC_CheckInteger, 31, ++/*437067*/ OPC_CheckType, MVT::i32, ++/*437069*/ OPC_MoveParent, ++/*437070*/ OPC_MoveChild6, ++/*437071*/ OPC_CheckInteger, 31, ++/*437073*/ OPC_CheckType, MVT::i32, ++/*437075*/ OPC_MoveParent, ++/*437076*/ OPC_MoveChild7, ++/*437077*/ OPC_CheckInteger, 31, ++/*437079*/ OPC_CheckType, MVT::i32, ++/*437081*/ OPC_MoveParent, ++/*437082*/ OPC_CheckType, MVT::v8i32, ++/*437084*/ OPC_MoveParent, ++/*437085*/ OPC_MoveParent, ++/*437086*/ OPC_MoveParent, ++/*437087*/ OPC_MoveChild1, ++/*437088*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*437091*/ OPC_CheckChild0Integer, 1, ++/*437093*/ OPC_CheckChild0Type, MVT::i32, ++/*437095*/ OPC_CheckChild1Integer, 1, ++/*437097*/ OPC_CheckChild1Type, MVT::i32, ++/*437099*/ OPC_CheckChild2Integer, 1, ++/*437101*/ OPC_CheckChild2Type, MVT::i32, ++/*437103*/ OPC_CheckChild3Integer, 1, ++/*437105*/ OPC_CheckChild3Type, MVT::i32, ++/*437107*/ OPC_CheckChild4Integer, 1, ++/*437109*/ OPC_CheckChild4Type, MVT::i32, ++/*437111*/ OPC_MoveChild5, ++/*437112*/ OPC_CheckInteger, 1, ++/*437114*/ OPC_CheckType, MVT::i32, ++/*437116*/ OPC_MoveParent, ++/*437117*/ OPC_MoveChild6, ++/*437118*/ OPC_CheckInteger, 1, ++/*437120*/ OPC_CheckType, MVT::i32, ++/*437122*/ OPC_MoveParent, ++/*437123*/ OPC_MoveChild7, ++/*437124*/ OPC_CheckInteger, 1, ++/*437126*/ OPC_CheckType, MVT::i32, ++/*437128*/ OPC_MoveParent, ++/*437129*/ OPC_CheckType, MVT::v8i32, ++/*437131*/ OPC_MoveParent, ++/*437132*/ OPC_CheckType, MVT::v8i32, ++/*437134*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*437136*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$b), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*437144*/ /*Scope*/ 23|128,1/*151*/, /*->437297*/ ++/*437146*/ OPC_CheckChild0Same, 1, ++/*437148*/ OPC_MoveChild1, ++/*437149*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*437152*/ OPC_CheckChild0Integer, 1, ++/*437154*/ OPC_CheckChild0Type, MVT::i32, ++/*437156*/ OPC_CheckChild1Integer, 1, ++/*437158*/ OPC_CheckChild1Type, MVT::i32, ++/*437160*/ OPC_CheckChild2Integer, 1, ++/*437162*/ OPC_CheckChild2Type, MVT::i32, ++/*437164*/ OPC_CheckChild3Integer, 1, ++/*437166*/ OPC_CheckChild3Type, MVT::i32, ++/*437168*/ OPC_CheckChild4Integer, 1, ++/*437170*/ OPC_CheckChild4Type, MVT::i32, ++/*437172*/ OPC_MoveChild5, ++/*437173*/ OPC_CheckInteger, 1, ++/*437175*/ OPC_CheckType, MVT::i32, ++/*437177*/ OPC_MoveParent, ++/*437178*/ OPC_MoveChild6, ++/*437179*/ OPC_CheckInteger, 1, ++/*437181*/ OPC_CheckType, MVT::i32, ++/*437183*/ OPC_MoveParent, ++/*437184*/ OPC_MoveChild7, ++/*437185*/ OPC_CheckInteger, 1, ++/*437187*/ OPC_CheckType, MVT::i32, ++/*437189*/ OPC_MoveParent, ++/*437190*/ OPC_MoveParent, ++/*437191*/ OPC_MoveParent, ++/*437192*/ OPC_MoveParent, ++/*437193*/ OPC_MoveChild1, ++/*437194*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*437197*/ OPC_CheckChild0Integer, 31, ++/*437199*/ OPC_CheckChild0Type, MVT::i32, ++/*437201*/ OPC_CheckChild1Integer, 31, ++/*437203*/ OPC_CheckChild1Type, MVT::i32, ++/*437205*/ OPC_CheckChild2Integer, 31, ++/*437207*/ OPC_CheckChild2Type, MVT::i32, ++/*437209*/ OPC_CheckChild3Integer, 31, ++/*437211*/ OPC_CheckChild3Type, MVT::i32, ++/*437213*/ OPC_CheckChild4Integer, 31, ++/*437215*/ OPC_CheckChild4Type, MVT::i32, ++/*437217*/ OPC_MoveChild5, ++/*437218*/ OPC_CheckInteger, 31, ++/*437220*/ OPC_CheckType, MVT::i32, ++/*437222*/ OPC_MoveParent, ++/*437223*/ OPC_MoveChild6, ++/*437224*/ OPC_CheckInteger, 31, ++/*437226*/ OPC_CheckType, MVT::i32, ++/*437228*/ OPC_MoveParent, ++/*437229*/ OPC_MoveChild7, ++/*437230*/ OPC_CheckInteger, 31, ++/*437232*/ OPC_CheckType, MVT::i32, ++/*437234*/ OPC_MoveParent, ++/*437235*/ OPC_CheckType, MVT::v8i32, ++/*437237*/ OPC_MoveParent, ++/*437238*/ OPC_MoveParent, ++/*437239*/ OPC_MoveParent, ++/*437240*/ OPC_MoveChild1, ++/*437241*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*437244*/ OPC_CheckChild0Integer, 1, ++/*437246*/ OPC_CheckChild0Type, MVT::i32, ++/*437248*/ OPC_CheckChild1Integer, 1, ++/*437250*/ OPC_CheckChild1Type, MVT::i32, ++/*437252*/ OPC_CheckChild2Integer, 1, ++/*437254*/ OPC_CheckChild2Type, MVT::i32, ++/*437256*/ OPC_CheckChild3Integer, 1, ++/*437258*/ OPC_CheckChild3Type, MVT::i32, ++/*437260*/ OPC_CheckChild4Integer, 1, ++/*437262*/ OPC_CheckChild4Type, MVT::i32, ++/*437264*/ OPC_MoveChild5, ++/*437265*/ OPC_CheckInteger, 1, ++/*437267*/ OPC_CheckType, MVT::i32, ++/*437269*/ OPC_MoveParent, ++/*437270*/ OPC_MoveChild6, ++/*437271*/ OPC_CheckInteger, 1, ++/*437273*/ OPC_CheckType, MVT::i32, ++/*437275*/ OPC_MoveParent, ++/*437276*/ OPC_MoveChild7, ++/*437277*/ OPC_CheckInteger, 1, ++/*437279*/ OPC_CheckType, MVT::i32, ++/*437281*/ OPC_MoveParent, ++/*437282*/ OPC_CheckType, MVT::v8i32, ++/*437284*/ OPC_MoveParent, ++/*437285*/ OPC_CheckType, MVT::v8i32, ++/*437287*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*437289*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$b), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*437297*/ 0, /*End of Scope*/ ++/*437298*/ /*Scope*/ 15|128,2/*271*/, /*->437571*/ ++/*437300*/ OPC_MoveChild0, ++/*437301*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*437304*/ OPC_CheckChild0Integer, 1, ++/*437306*/ OPC_CheckChild0Type, MVT::i32, ++/*437308*/ OPC_CheckChild1Integer, 1, ++/*437310*/ OPC_CheckChild1Type, MVT::i32, ++/*437312*/ OPC_CheckChild2Integer, 1, ++/*437314*/ OPC_CheckChild2Type, MVT::i32, ++/*437316*/ OPC_CheckChild3Integer, 1, ++/*437318*/ OPC_CheckChild3Type, MVT::i32, ++/*437320*/ OPC_CheckChild4Integer, 1, ++/*437322*/ OPC_CheckChild4Type, MVT::i32, ++/*437324*/ OPC_MoveChild5, ++/*437325*/ OPC_CheckInteger, 1, ++/*437327*/ OPC_CheckType, MVT::i32, ++/*437329*/ OPC_MoveParent, ++/*437330*/ OPC_MoveChild6, ++/*437331*/ OPC_CheckInteger, 1, ++/*437333*/ OPC_CheckType, MVT::i32, ++/*437335*/ OPC_MoveParent, ++/*437336*/ OPC_MoveChild7, ++/*437337*/ OPC_CheckInteger, 1, ++/*437339*/ OPC_CheckType, MVT::i32, ++/*437341*/ OPC_MoveParent, ++/*437342*/ OPC_MoveParent, ++/*437343*/ OPC_MoveChild1, ++/*437344*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*437347*/ OPC_Scope, 110, /*->437459*/ // 2 children in Scope ++/*437349*/ OPC_CheckChild0Same, 0, ++/*437351*/ OPC_CheckChild1Same, 1, ++/*437353*/ OPC_MoveParent, ++/*437354*/ OPC_MoveParent, ++/*437355*/ OPC_MoveChild1, ++/*437356*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*437359*/ OPC_CheckChild0Integer, 31, ++/*437361*/ OPC_CheckChild0Type, MVT::i32, ++/*437363*/ OPC_CheckChild1Integer, 31, ++/*437365*/ OPC_CheckChild1Type, MVT::i32, ++/*437367*/ OPC_CheckChild2Integer, 31, ++/*437369*/ OPC_CheckChild2Type, MVT::i32, ++/*437371*/ OPC_CheckChild3Integer, 31, ++/*437373*/ OPC_CheckChild3Type, MVT::i32, ++/*437375*/ OPC_CheckChild4Integer, 31, ++/*437377*/ OPC_CheckChild4Type, MVT::i32, ++/*437379*/ OPC_MoveChild5, ++/*437380*/ OPC_CheckInteger, 31, ++/*437382*/ OPC_CheckType, MVT::i32, ++/*437384*/ OPC_MoveParent, ++/*437385*/ OPC_MoveChild6, ++/*437386*/ OPC_CheckInteger, 31, ++/*437388*/ OPC_CheckType, MVT::i32, ++/*437390*/ OPC_MoveParent, ++/*437391*/ OPC_MoveChild7, ++/*437392*/ OPC_CheckInteger, 31, ++/*437394*/ OPC_CheckType, MVT::i32, ++/*437396*/ OPC_MoveParent, ++/*437397*/ OPC_CheckType, MVT::v8i32, ++/*437399*/ OPC_MoveParent, ++/*437400*/ OPC_MoveParent, ++/*437401*/ OPC_MoveParent, ++/*437402*/ OPC_MoveChild1, ++/*437403*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*437406*/ OPC_CheckChild0Integer, 1, ++/*437408*/ OPC_CheckChild0Type, MVT::i32, ++/*437410*/ OPC_CheckChild1Integer, 1, ++/*437412*/ OPC_CheckChild1Type, MVT::i32, ++/*437414*/ OPC_CheckChild2Integer, 1, ++/*437416*/ OPC_CheckChild2Type, MVT::i32, ++/*437418*/ OPC_CheckChild3Integer, 1, ++/*437420*/ OPC_CheckChild3Type, MVT::i32, ++/*437422*/ OPC_CheckChild4Integer, 1, ++/*437424*/ OPC_CheckChild4Type, MVT::i32, ++/*437426*/ OPC_MoveChild5, ++/*437427*/ OPC_CheckInteger, 1, ++/*437429*/ OPC_CheckType, MVT::i32, ++/*437431*/ OPC_MoveParent, ++/*437432*/ OPC_MoveChild6, ++/*437433*/ OPC_CheckInteger, 1, ++/*437435*/ OPC_CheckType, MVT::i32, ++/*437437*/ OPC_MoveParent, ++/*437438*/ OPC_MoveChild7, ++/*437439*/ OPC_CheckInteger, 1, ++/*437441*/ OPC_CheckType, MVT::i32, ++/*437443*/ OPC_MoveParent, ++/*437444*/ OPC_CheckType, MVT::v8i32, ++/*437446*/ OPC_MoveParent, ++/*437447*/ OPC_CheckType, MVT::v8i32, ++/*437449*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*437451*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$b), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*437459*/ /*Scope*/ 110, /*->437570*/ ++/*437460*/ OPC_CheckChild0Same, 1, ++/*437462*/ OPC_CheckChild1Same, 0, ++/*437464*/ OPC_MoveParent, ++/*437465*/ OPC_MoveParent, ++/*437466*/ OPC_MoveChild1, ++/*437467*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*437470*/ OPC_CheckChild0Integer, 31, ++/*437472*/ OPC_CheckChild0Type, MVT::i32, ++/*437474*/ OPC_CheckChild1Integer, 31, ++/*437476*/ OPC_CheckChild1Type, MVT::i32, ++/*437478*/ OPC_CheckChild2Integer, 31, ++/*437480*/ OPC_CheckChild2Type, MVT::i32, ++/*437482*/ OPC_CheckChild3Integer, 31, ++/*437484*/ OPC_CheckChild3Type, MVT::i32, ++/*437486*/ OPC_CheckChild4Integer, 31, ++/*437488*/ OPC_CheckChild4Type, MVT::i32, ++/*437490*/ OPC_MoveChild5, ++/*437491*/ OPC_CheckInteger, 31, ++/*437493*/ OPC_CheckType, MVT::i32, ++/*437495*/ OPC_MoveParent, ++/*437496*/ OPC_MoveChild6, ++/*437497*/ OPC_CheckInteger, 31, ++/*437499*/ OPC_CheckType, MVT::i32, ++/*437501*/ OPC_MoveParent, ++/*437502*/ OPC_MoveChild7, ++/*437503*/ OPC_CheckInteger, 31, ++/*437505*/ OPC_CheckType, MVT::i32, ++/*437507*/ OPC_MoveParent, ++/*437508*/ OPC_CheckType, MVT::v8i32, ++/*437510*/ OPC_MoveParent, ++/*437511*/ OPC_MoveParent, ++/*437512*/ OPC_MoveParent, ++/*437513*/ OPC_MoveChild1, ++/*437514*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*437517*/ OPC_CheckChild0Integer, 1, ++/*437519*/ OPC_CheckChild0Type, MVT::i32, ++/*437521*/ OPC_CheckChild1Integer, 1, ++/*437523*/ OPC_CheckChild1Type, MVT::i32, ++/*437525*/ OPC_CheckChild2Integer, 1, ++/*437527*/ OPC_CheckChild2Type, MVT::i32, ++/*437529*/ OPC_CheckChild3Integer, 1, ++/*437531*/ OPC_CheckChild3Type, MVT::i32, ++/*437533*/ OPC_CheckChild4Integer, 1, ++/*437535*/ OPC_CheckChild4Type, MVT::i32, ++/*437537*/ OPC_MoveChild5, ++/*437538*/ OPC_CheckInteger, 1, ++/*437540*/ OPC_CheckType, MVT::i32, ++/*437542*/ OPC_MoveParent, ++/*437543*/ OPC_MoveChild6, ++/*437544*/ OPC_CheckInteger, 1, ++/*437546*/ OPC_CheckType, MVT::i32, ++/*437548*/ OPC_MoveParent, ++/*437549*/ OPC_MoveChild7, ++/*437550*/ OPC_CheckInteger, 1, ++/*437552*/ OPC_CheckType, MVT::i32, ++/*437554*/ OPC_MoveParent, ++/*437555*/ OPC_CheckType, MVT::v8i32, ++/*437557*/ OPC_MoveParent, ++/*437558*/ OPC_CheckType, MVT::v8i32, ++/*437560*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*437562*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$b), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*437570*/ 0, /*End of Scope*/ ++/*437571*/ 0, /*End of Scope*/ ++/*437572*/ /*Scope*/ 108|128,14/*1900*/, /*->439474*/ ++/*437574*/ OPC_MoveChild0, ++/*437575*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*437578*/ OPC_CheckChild0Integer, 1, ++/*437580*/ OPC_CheckChild0Type, MVT::i32, ++/*437582*/ OPC_CheckChild1Integer, 1, ++/*437584*/ OPC_CheckChild1Type, MVT::i32, ++/*437586*/ OPC_CheckChild2Integer, 1, ++/*437588*/ OPC_CheckChild2Type, MVT::i32, ++/*437590*/ OPC_CheckChild3Integer, 1, ++/*437592*/ OPC_CheckChild3Type, MVT::i32, ++/*437594*/ OPC_CheckChild4Integer, 1, ++/*437596*/ OPC_CheckChild4Type, MVT::i32, ++/*437598*/ OPC_MoveChild5, ++/*437599*/ OPC_CheckInteger, 1, ++/*437601*/ OPC_CheckType, MVT::i32, ++/*437603*/ OPC_MoveParent, ++/*437604*/ OPC_MoveChild6, ++/*437605*/ OPC_CheckInteger, 1, ++/*437607*/ OPC_CheckType, MVT::i32, ++/*437609*/ OPC_MoveParent, ++/*437610*/ OPC_MoveChild7, ++/*437611*/ OPC_CheckInteger, 1, ++/*437613*/ OPC_CheckType, MVT::i32, ++/*437615*/ OPC_MoveParent, ++/*437616*/ OPC_MoveParent, ++/*437617*/ OPC_RecordChild1, // #0 = $b ++/*437618*/ OPC_MoveParent, ++/*437619*/ OPC_RecordChild1, // #1 = $a ++/*437620*/ OPC_MoveParent, ++/*437621*/ OPC_MoveChild1, ++/*437622*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*437625*/ OPC_MoveChild0, ++/*437626*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*437629*/ OPC_Scope, 40|128,7/*936*/, /*->438568*/ // 4 children in Scope ++/*437632*/ OPC_MoveChild0, ++/*437633*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*437636*/ OPC_Scope, 25|128,1/*153*/, /*->437792*/ // 6 children in Scope ++/*437639*/ OPC_MoveChild0, ++/*437640*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*437643*/ OPC_CheckChild0Integer, 1, ++/*437645*/ OPC_CheckChild0Type, MVT::i32, ++/*437647*/ OPC_CheckChild1Integer, 1, ++/*437649*/ OPC_CheckChild1Type, MVT::i32, ++/*437651*/ OPC_CheckChild2Integer, 1, ++/*437653*/ OPC_CheckChild2Type, MVT::i32, ++/*437655*/ OPC_CheckChild3Integer, 1, ++/*437657*/ OPC_CheckChild3Type, MVT::i32, ++/*437659*/ OPC_CheckChild4Integer, 1, ++/*437661*/ OPC_CheckChild4Type, MVT::i32, ++/*437663*/ OPC_MoveChild5, ++/*437664*/ OPC_CheckInteger, 1, ++/*437666*/ OPC_CheckType, MVT::i32, ++/*437668*/ OPC_MoveParent, ++/*437669*/ OPC_MoveChild6, ++/*437670*/ OPC_CheckInteger, 1, ++/*437672*/ OPC_CheckType, MVT::i32, ++/*437674*/ OPC_MoveParent, ++/*437675*/ OPC_MoveChild7, ++/*437676*/ OPC_CheckInteger, 1, ++/*437678*/ OPC_CheckType, MVT::i32, ++/*437680*/ OPC_MoveParent, ++/*437681*/ OPC_MoveParent, ++/*437682*/ OPC_CheckChild1Same, 1, ++/*437684*/ OPC_MoveParent, ++/*437685*/ OPC_CheckChild1Same, 0, ++/*437687*/ OPC_MoveParent, ++/*437688*/ OPC_MoveChild1, ++/*437689*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*437692*/ OPC_CheckChild0Integer, 31, ++/*437694*/ OPC_CheckChild0Type, MVT::i32, ++/*437696*/ OPC_CheckChild1Integer, 31, ++/*437698*/ OPC_CheckChild1Type, MVT::i32, ++/*437700*/ OPC_CheckChild2Integer, 31, ++/*437702*/ OPC_CheckChild2Type, MVT::i32, ++/*437704*/ OPC_CheckChild3Integer, 31, ++/*437706*/ OPC_CheckChild3Type, MVT::i32, ++/*437708*/ OPC_CheckChild4Integer, 31, ++/*437710*/ OPC_CheckChild4Type, MVT::i32, ++/*437712*/ OPC_MoveChild5, ++/*437713*/ OPC_CheckInteger, 31, ++/*437715*/ OPC_CheckType, MVT::i32, ++/*437717*/ OPC_MoveParent, ++/*437718*/ OPC_MoveChild6, ++/*437719*/ OPC_CheckInteger, 31, ++/*437721*/ OPC_CheckType, MVT::i32, ++/*437723*/ OPC_MoveParent, ++/*437724*/ OPC_MoveChild7, ++/*437725*/ OPC_CheckInteger, 31, ++/*437727*/ OPC_CheckType, MVT::i32, ++/*437729*/ OPC_MoveParent, ++/*437730*/ OPC_CheckType, MVT::v8i32, ++/*437732*/ OPC_MoveParent, ++/*437733*/ OPC_MoveParent, ++/*437734*/ OPC_MoveParent, ++/*437735*/ OPC_MoveChild1, ++/*437736*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*437739*/ OPC_CheckChild0Integer, 1, ++/*437741*/ OPC_CheckChild0Type, MVT::i32, ++/*437743*/ OPC_CheckChild1Integer, 1, ++/*437745*/ OPC_CheckChild1Type, MVT::i32, ++/*437747*/ OPC_CheckChild2Integer, 1, ++/*437749*/ OPC_CheckChild2Type, MVT::i32, ++/*437751*/ OPC_CheckChild3Integer, 1, ++/*437753*/ OPC_CheckChild3Type, MVT::i32, ++/*437755*/ OPC_CheckChild4Integer, 1, ++/*437757*/ OPC_CheckChild4Type, MVT::i32, ++/*437759*/ OPC_MoveChild5, ++/*437760*/ OPC_CheckInteger, 1, ++/*437762*/ OPC_CheckType, MVT::i32, ++/*437764*/ OPC_MoveParent, ++/*437765*/ OPC_MoveChild6, ++/*437766*/ OPC_CheckInteger, 1, ++/*437768*/ OPC_CheckType, MVT::i32, ++/*437770*/ OPC_MoveParent, ++/*437771*/ OPC_MoveChild7, ++/*437772*/ OPC_CheckInteger, 1, ++/*437774*/ OPC_CheckType, MVT::i32, ++/*437776*/ OPC_MoveParent, ++/*437777*/ OPC_CheckType, MVT::v8i32, ++/*437779*/ OPC_MoveParent, ++/*437780*/ OPC_CheckType, MVT::v8i32, ++/*437782*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*437784*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b), LASX256W:{ *:[v8i32] }:$a), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a), LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*437792*/ /*Scope*/ 25|128,1/*153*/, /*->437947*/ ++/*437794*/ OPC_CheckChild0Same, 1, ++/*437796*/ OPC_MoveChild1, ++/*437797*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*437800*/ OPC_CheckChild0Integer, 1, ++/*437802*/ OPC_CheckChild0Type, MVT::i32, ++/*437804*/ OPC_CheckChild1Integer, 1, ++/*437806*/ OPC_CheckChild1Type, MVT::i32, ++/*437808*/ OPC_CheckChild2Integer, 1, ++/*437810*/ OPC_CheckChild2Type, MVT::i32, ++/*437812*/ OPC_CheckChild3Integer, 1, ++/*437814*/ OPC_CheckChild3Type, MVT::i32, ++/*437816*/ OPC_CheckChild4Integer, 1, ++/*437818*/ OPC_CheckChild4Type, MVT::i32, ++/*437820*/ OPC_MoveChild5, ++/*437821*/ OPC_CheckInteger, 1, ++/*437823*/ OPC_CheckType, MVT::i32, ++/*437825*/ OPC_MoveParent, ++/*437826*/ OPC_MoveChild6, ++/*437827*/ OPC_CheckInteger, 1, ++/*437829*/ OPC_CheckType, MVT::i32, ++/*437831*/ OPC_MoveParent, ++/*437832*/ OPC_MoveChild7, ++/*437833*/ OPC_CheckInteger, 1, ++/*437835*/ OPC_CheckType, MVT::i32, ++/*437837*/ OPC_MoveParent, ++/*437838*/ OPC_MoveParent, ++/*437839*/ OPC_MoveParent, ++/*437840*/ OPC_CheckChild1Same, 0, ++/*437842*/ OPC_MoveParent, ++/*437843*/ OPC_MoveChild1, ++/*437844*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*437847*/ OPC_CheckChild0Integer, 31, ++/*437849*/ OPC_CheckChild0Type, MVT::i32, ++/*437851*/ OPC_CheckChild1Integer, 31, ++/*437853*/ OPC_CheckChild1Type, MVT::i32, ++/*437855*/ OPC_CheckChild2Integer, 31, ++/*437857*/ OPC_CheckChild2Type, MVT::i32, ++/*437859*/ OPC_CheckChild3Integer, 31, ++/*437861*/ OPC_CheckChild3Type, MVT::i32, ++/*437863*/ OPC_CheckChild4Integer, 31, ++/*437865*/ OPC_CheckChild4Type, MVT::i32, ++/*437867*/ OPC_MoveChild5, ++/*437868*/ OPC_CheckInteger, 31, ++/*437870*/ OPC_CheckType, MVT::i32, ++/*437872*/ OPC_MoveParent, ++/*437873*/ OPC_MoveChild6, ++/*437874*/ OPC_CheckInteger, 31, ++/*437876*/ OPC_CheckType, MVT::i32, ++/*437878*/ OPC_MoveParent, ++/*437879*/ OPC_MoveChild7, ++/*437880*/ OPC_CheckInteger, 31, ++/*437882*/ OPC_CheckType, MVT::i32, ++/*437884*/ OPC_MoveParent, ++/*437885*/ OPC_CheckType, MVT::v8i32, ++/*437887*/ OPC_MoveParent, ++/*437888*/ OPC_MoveParent, ++/*437889*/ OPC_MoveParent, ++/*437890*/ OPC_MoveChild1, ++/*437891*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*437894*/ OPC_CheckChild0Integer, 1, ++/*437896*/ OPC_CheckChild0Type, MVT::i32, ++/*437898*/ OPC_CheckChild1Integer, 1, ++/*437900*/ OPC_CheckChild1Type, MVT::i32, ++/*437902*/ OPC_CheckChild2Integer, 1, ++/*437904*/ OPC_CheckChild2Type, MVT::i32, ++/*437906*/ OPC_CheckChild3Integer, 1, ++/*437908*/ OPC_CheckChild3Type, MVT::i32, ++/*437910*/ OPC_CheckChild4Integer, 1, ++/*437912*/ OPC_CheckChild4Type, MVT::i32, ++/*437914*/ OPC_MoveChild5, ++/*437915*/ OPC_CheckInteger, 1, ++/*437917*/ OPC_CheckType, MVT::i32, ++/*437919*/ OPC_MoveParent, ++/*437920*/ OPC_MoveChild6, ++/*437921*/ OPC_CheckInteger, 1, ++/*437923*/ OPC_CheckType, MVT::i32, ++/*437925*/ OPC_MoveParent, ++/*437926*/ OPC_MoveChild7, ++/*437927*/ OPC_CheckInteger, 1, ++/*437929*/ OPC_CheckType, MVT::i32, ++/*437931*/ OPC_MoveParent, ++/*437932*/ OPC_CheckType, MVT::v8i32, ++/*437934*/ OPC_MoveParent, ++/*437935*/ OPC_CheckType, MVT::v8i32, ++/*437937*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*437939*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b), LASX256W:{ *:[v8i32] }:$a), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*437947*/ /*Scope*/ 25|128,1/*153*/, /*->438102*/ ++/*437949*/ OPC_MoveChild0, ++/*437950*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*437953*/ OPC_CheckChild0Integer, 1, ++/*437955*/ OPC_CheckChild0Type, MVT::i32, ++/*437957*/ OPC_CheckChild1Integer, 1, ++/*437959*/ OPC_CheckChild1Type, MVT::i32, ++/*437961*/ OPC_CheckChild2Integer, 1, ++/*437963*/ OPC_CheckChild2Type, MVT::i32, ++/*437965*/ OPC_CheckChild3Integer, 1, ++/*437967*/ OPC_CheckChild3Type, MVT::i32, ++/*437969*/ OPC_CheckChild4Integer, 1, ++/*437971*/ OPC_CheckChild4Type, MVT::i32, ++/*437973*/ OPC_MoveChild5, ++/*437974*/ OPC_CheckInteger, 1, ++/*437976*/ OPC_CheckType, MVT::i32, ++/*437978*/ OPC_MoveParent, ++/*437979*/ OPC_MoveChild6, ++/*437980*/ OPC_CheckInteger, 1, ++/*437982*/ OPC_CheckType, MVT::i32, ++/*437984*/ OPC_MoveParent, ++/*437985*/ OPC_MoveChild7, ++/*437986*/ OPC_CheckInteger, 1, ++/*437988*/ OPC_CheckType, MVT::i32, ++/*437990*/ OPC_MoveParent, ++/*437991*/ OPC_MoveParent, ++/*437992*/ OPC_CheckChild1Same, 0, ++/*437994*/ OPC_MoveParent, ++/*437995*/ OPC_CheckChild1Same, 1, ++/*437997*/ OPC_MoveParent, ++/*437998*/ OPC_MoveChild1, ++/*437999*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*438002*/ OPC_CheckChild0Integer, 31, ++/*438004*/ OPC_CheckChild0Type, MVT::i32, ++/*438006*/ OPC_CheckChild1Integer, 31, ++/*438008*/ OPC_CheckChild1Type, MVT::i32, ++/*438010*/ OPC_CheckChild2Integer, 31, ++/*438012*/ OPC_CheckChild2Type, MVT::i32, ++/*438014*/ OPC_CheckChild3Integer, 31, ++/*438016*/ OPC_CheckChild3Type, MVT::i32, ++/*438018*/ OPC_CheckChild4Integer, 31, ++/*438020*/ OPC_CheckChild4Type, MVT::i32, ++/*438022*/ OPC_MoveChild5, ++/*438023*/ OPC_CheckInteger, 31, ++/*438025*/ OPC_CheckType, MVT::i32, ++/*438027*/ OPC_MoveParent, ++/*438028*/ OPC_MoveChild6, ++/*438029*/ OPC_CheckInteger, 31, ++/*438031*/ OPC_CheckType, MVT::i32, ++/*438033*/ OPC_MoveParent, ++/*438034*/ OPC_MoveChild7, ++/*438035*/ OPC_CheckInteger, 31, ++/*438037*/ OPC_CheckType, MVT::i32, ++/*438039*/ OPC_MoveParent, ++/*438040*/ OPC_CheckType, MVT::v8i32, ++/*438042*/ OPC_MoveParent, ++/*438043*/ OPC_MoveParent, ++/*438044*/ OPC_MoveParent, ++/*438045*/ OPC_MoveChild1, ++/*438046*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*438049*/ OPC_CheckChild0Integer, 1, ++/*438051*/ OPC_CheckChild0Type, MVT::i32, ++/*438053*/ OPC_CheckChild1Integer, 1, ++/*438055*/ OPC_CheckChild1Type, MVT::i32, ++/*438057*/ OPC_CheckChild2Integer, 1, ++/*438059*/ OPC_CheckChild2Type, MVT::i32, ++/*438061*/ OPC_CheckChild3Integer, 1, ++/*438063*/ OPC_CheckChild3Type, MVT::i32, ++/*438065*/ OPC_CheckChild4Integer, 1, ++/*438067*/ OPC_CheckChild4Type, MVT::i32, ++/*438069*/ OPC_MoveChild5, ++/*438070*/ OPC_CheckInteger, 1, ++/*438072*/ OPC_CheckType, MVT::i32, ++/*438074*/ OPC_MoveParent, ++/*438075*/ OPC_MoveChild6, ++/*438076*/ OPC_CheckInteger, 1, ++/*438078*/ OPC_CheckType, MVT::i32, ++/*438080*/ OPC_MoveParent, ++/*438081*/ OPC_MoveChild7, ++/*438082*/ OPC_CheckInteger, 1, ++/*438084*/ OPC_CheckType, MVT::i32, ++/*438086*/ OPC_MoveParent, ++/*438087*/ OPC_CheckType, MVT::v8i32, ++/*438089*/ OPC_MoveParent, ++/*438090*/ OPC_CheckType, MVT::v8i32, ++/*438092*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*438094*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b), LASX256W:{ *:[v8i32] }:$a), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b), LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*438102*/ /*Scope*/ 25|128,1/*153*/, /*->438257*/ ++/*438104*/ OPC_CheckChild0Same, 0, ++/*438106*/ OPC_MoveChild1, ++/*438107*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*438110*/ OPC_CheckChild0Integer, 1, ++/*438112*/ OPC_CheckChild0Type, MVT::i32, ++/*438114*/ OPC_CheckChild1Integer, 1, ++/*438116*/ OPC_CheckChild1Type, MVT::i32, ++/*438118*/ OPC_CheckChild2Integer, 1, ++/*438120*/ OPC_CheckChild2Type, MVT::i32, ++/*438122*/ OPC_CheckChild3Integer, 1, ++/*438124*/ OPC_CheckChild3Type, MVT::i32, ++/*438126*/ OPC_CheckChild4Integer, 1, ++/*438128*/ OPC_CheckChild4Type, MVT::i32, ++/*438130*/ OPC_MoveChild5, ++/*438131*/ OPC_CheckInteger, 1, ++/*438133*/ OPC_CheckType, MVT::i32, ++/*438135*/ OPC_MoveParent, ++/*438136*/ OPC_MoveChild6, ++/*438137*/ OPC_CheckInteger, 1, ++/*438139*/ OPC_CheckType, MVT::i32, ++/*438141*/ OPC_MoveParent, ++/*438142*/ OPC_MoveChild7, ++/*438143*/ OPC_CheckInteger, 1, ++/*438145*/ OPC_CheckType, MVT::i32, ++/*438147*/ OPC_MoveParent, ++/*438148*/ OPC_MoveParent, ++/*438149*/ OPC_MoveParent, ++/*438150*/ OPC_CheckChild1Same, 1, ++/*438152*/ OPC_MoveParent, ++/*438153*/ OPC_MoveChild1, ++/*438154*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*438157*/ OPC_CheckChild0Integer, 31, ++/*438159*/ OPC_CheckChild0Type, MVT::i32, ++/*438161*/ OPC_CheckChild1Integer, 31, ++/*438163*/ OPC_CheckChild1Type, MVT::i32, ++/*438165*/ OPC_CheckChild2Integer, 31, ++/*438167*/ OPC_CheckChild2Type, MVT::i32, ++/*438169*/ OPC_CheckChild3Integer, 31, ++/*438171*/ OPC_CheckChild3Type, MVT::i32, ++/*438173*/ OPC_CheckChild4Integer, 31, ++/*438175*/ OPC_CheckChild4Type, MVT::i32, ++/*438177*/ OPC_MoveChild5, ++/*438178*/ OPC_CheckInteger, 31, ++/*438180*/ OPC_CheckType, MVT::i32, ++/*438182*/ OPC_MoveParent, ++/*438183*/ OPC_MoveChild6, ++/*438184*/ OPC_CheckInteger, 31, ++/*438186*/ OPC_CheckType, MVT::i32, ++/*438188*/ OPC_MoveParent, ++/*438189*/ OPC_MoveChild7, ++/*438190*/ OPC_CheckInteger, 31, ++/*438192*/ OPC_CheckType, MVT::i32, ++/*438194*/ OPC_MoveParent, ++/*438195*/ OPC_CheckType, MVT::v8i32, ++/*438197*/ OPC_MoveParent, ++/*438198*/ OPC_MoveParent, ++/*438199*/ OPC_MoveParent, ++/*438200*/ OPC_MoveChild1, ++/*438201*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*438204*/ OPC_CheckChild0Integer, 1, ++/*438206*/ OPC_CheckChild0Type, MVT::i32, ++/*438208*/ OPC_CheckChild1Integer, 1, ++/*438210*/ OPC_CheckChild1Type, MVT::i32, ++/*438212*/ OPC_CheckChild2Integer, 1, ++/*438214*/ OPC_CheckChild2Type, MVT::i32, ++/*438216*/ OPC_CheckChild3Integer, 1, ++/*438218*/ OPC_CheckChild3Type, MVT::i32, ++/*438220*/ OPC_CheckChild4Integer, 1, ++/*438222*/ OPC_CheckChild4Type, MVT::i32, ++/*438224*/ OPC_MoveChild5, ++/*438225*/ OPC_CheckInteger, 1, ++/*438227*/ OPC_CheckType, MVT::i32, ++/*438229*/ OPC_MoveParent, ++/*438230*/ OPC_MoveChild6, ++/*438231*/ OPC_CheckInteger, 1, ++/*438233*/ OPC_CheckType, MVT::i32, ++/*438235*/ OPC_MoveParent, ++/*438236*/ OPC_MoveChild7, ++/*438237*/ OPC_CheckInteger, 1, ++/*438239*/ OPC_CheckType, MVT::i32, ++/*438241*/ OPC_MoveParent, ++/*438242*/ OPC_CheckType, MVT::v8i32, ++/*438244*/ OPC_MoveParent, ++/*438245*/ OPC_CheckType, MVT::v8i32, ++/*438247*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*438249*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b), LASX256W:{ *:[v8i32] }:$a), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*438257*/ /*Scope*/ 25|128,1/*153*/, /*->438412*/ ++/*438259*/ OPC_CheckChild0Same, 1, ++/*438261*/ OPC_CheckChild1Same, 0, ++/*438263*/ OPC_MoveParent, ++/*438264*/ OPC_MoveChild1, ++/*438265*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*438268*/ OPC_CheckChild0Integer, 1, ++/*438270*/ OPC_CheckChild0Type, MVT::i32, ++/*438272*/ OPC_CheckChild1Integer, 1, ++/*438274*/ OPC_CheckChild1Type, MVT::i32, ++/*438276*/ OPC_CheckChild2Integer, 1, ++/*438278*/ OPC_CheckChild2Type, MVT::i32, ++/*438280*/ OPC_CheckChild3Integer, 1, ++/*438282*/ OPC_CheckChild3Type, MVT::i32, ++/*438284*/ OPC_CheckChild4Integer, 1, ++/*438286*/ OPC_CheckChild4Type, MVT::i32, ++/*438288*/ OPC_MoveChild5, ++/*438289*/ OPC_CheckInteger, 1, ++/*438291*/ OPC_CheckType, MVT::i32, ++/*438293*/ OPC_MoveParent, ++/*438294*/ OPC_MoveChild6, ++/*438295*/ OPC_CheckInteger, 1, ++/*438297*/ OPC_CheckType, MVT::i32, ++/*438299*/ OPC_MoveParent, ++/*438300*/ OPC_MoveChild7, ++/*438301*/ OPC_CheckInteger, 1, ++/*438303*/ OPC_CheckType, MVT::i32, ++/*438305*/ OPC_MoveParent, ++/*438306*/ OPC_MoveParent, ++/*438307*/ OPC_MoveParent, ++/*438308*/ OPC_MoveChild1, ++/*438309*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*438312*/ OPC_CheckChild0Integer, 31, ++/*438314*/ OPC_CheckChild0Type, MVT::i32, ++/*438316*/ OPC_CheckChild1Integer, 31, ++/*438318*/ OPC_CheckChild1Type, MVT::i32, ++/*438320*/ OPC_CheckChild2Integer, 31, ++/*438322*/ OPC_CheckChild2Type, MVT::i32, ++/*438324*/ OPC_CheckChild3Integer, 31, ++/*438326*/ OPC_CheckChild3Type, MVT::i32, ++/*438328*/ OPC_CheckChild4Integer, 31, ++/*438330*/ OPC_CheckChild4Type, MVT::i32, ++/*438332*/ OPC_MoveChild5, ++/*438333*/ OPC_CheckInteger, 31, ++/*438335*/ OPC_CheckType, MVT::i32, ++/*438337*/ OPC_MoveParent, ++/*438338*/ OPC_MoveChild6, ++/*438339*/ OPC_CheckInteger, 31, ++/*438341*/ OPC_CheckType, MVT::i32, ++/*438343*/ OPC_MoveParent, ++/*438344*/ OPC_MoveChild7, ++/*438345*/ OPC_CheckInteger, 31, ++/*438347*/ OPC_CheckType, MVT::i32, ++/*438349*/ OPC_MoveParent, ++/*438350*/ OPC_CheckType, MVT::v8i32, ++/*438352*/ OPC_MoveParent, ++/*438353*/ OPC_MoveParent, ++/*438354*/ OPC_MoveParent, ++/*438355*/ OPC_MoveChild1, ++/*438356*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*438359*/ OPC_CheckChild0Integer, 1, ++/*438361*/ OPC_CheckChild0Type, MVT::i32, ++/*438363*/ OPC_CheckChild1Integer, 1, ++/*438365*/ OPC_CheckChild1Type, MVT::i32, ++/*438367*/ OPC_CheckChild2Integer, 1, ++/*438369*/ OPC_CheckChild2Type, MVT::i32, ++/*438371*/ OPC_CheckChild3Integer, 1, ++/*438373*/ OPC_CheckChild3Type, MVT::i32, ++/*438375*/ OPC_CheckChild4Integer, 1, ++/*438377*/ OPC_CheckChild4Type, MVT::i32, ++/*438379*/ OPC_MoveChild5, ++/*438380*/ OPC_CheckInteger, 1, ++/*438382*/ OPC_CheckType, MVT::i32, ++/*438384*/ OPC_MoveParent, ++/*438385*/ OPC_MoveChild6, ++/*438386*/ OPC_CheckInteger, 1, ++/*438388*/ OPC_CheckType, MVT::i32, ++/*438390*/ OPC_MoveParent, ++/*438391*/ OPC_MoveChild7, ++/*438392*/ OPC_CheckInteger, 1, ++/*438394*/ OPC_CheckType, MVT::i32, ++/*438396*/ OPC_MoveParent, ++/*438397*/ OPC_CheckType, MVT::v8i32, ++/*438399*/ OPC_MoveParent, ++/*438400*/ OPC_CheckType, MVT::v8i32, ++/*438402*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*438404*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b), LASX256W:{ *:[v8i32] }:$a), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*438412*/ /*Scope*/ 25|128,1/*153*/, /*->438567*/ ++/*438414*/ OPC_CheckChild0Same, 0, ++/*438416*/ OPC_CheckChild1Same, 1, ++/*438418*/ OPC_MoveParent, ++/*438419*/ OPC_MoveChild1, ++/*438420*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*438423*/ OPC_CheckChild0Integer, 1, ++/*438425*/ OPC_CheckChild0Type, MVT::i32, ++/*438427*/ OPC_CheckChild1Integer, 1, ++/*438429*/ OPC_CheckChild1Type, MVT::i32, ++/*438431*/ OPC_CheckChild2Integer, 1, ++/*438433*/ OPC_CheckChild2Type, MVT::i32, ++/*438435*/ OPC_CheckChild3Integer, 1, ++/*438437*/ OPC_CheckChild3Type, MVT::i32, ++/*438439*/ OPC_CheckChild4Integer, 1, ++/*438441*/ OPC_CheckChild4Type, MVT::i32, ++/*438443*/ OPC_MoveChild5, ++/*438444*/ OPC_CheckInteger, 1, ++/*438446*/ OPC_CheckType, MVT::i32, ++/*438448*/ OPC_MoveParent, ++/*438449*/ OPC_MoveChild6, ++/*438450*/ OPC_CheckInteger, 1, ++/*438452*/ OPC_CheckType, MVT::i32, ++/*438454*/ OPC_MoveParent, ++/*438455*/ OPC_MoveChild7, ++/*438456*/ OPC_CheckInteger, 1, ++/*438458*/ OPC_CheckType, MVT::i32, ++/*438460*/ OPC_MoveParent, ++/*438461*/ OPC_MoveParent, ++/*438462*/ OPC_MoveParent, ++/*438463*/ OPC_MoveChild1, ++/*438464*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*438467*/ OPC_CheckChild0Integer, 31, ++/*438469*/ OPC_CheckChild0Type, MVT::i32, ++/*438471*/ OPC_CheckChild1Integer, 31, ++/*438473*/ OPC_CheckChild1Type, MVT::i32, ++/*438475*/ OPC_CheckChild2Integer, 31, ++/*438477*/ OPC_CheckChild2Type, MVT::i32, ++/*438479*/ OPC_CheckChild3Integer, 31, ++/*438481*/ OPC_CheckChild3Type, MVT::i32, ++/*438483*/ OPC_CheckChild4Integer, 31, ++/*438485*/ OPC_CheckChild4Type, MVT::i32, ++/*438487*/ OPC_MoveChild5, ++/*438488*/ OPC_CheckInteger, 31, ++/*438490*/ OPC_CheckType, MVT::i32, ++/*438492*/ OPC_MoveParent, ++/*438493*/ OPC_MoveChild6, ++/*438494*/ OPC_CheckInteger, 31, ++/*438496*/ OPC_CheckType, MVT::i32, ++/*438498*/ OPC_MoveParent, ++/*438499*/ OPC_MoveChild7, ++/*438500*/ OPC_CheckInteger, 31, ++/*438502*/ OPC_CheckType, MVT::i32, ++/*438504*/ OPC_MoveParent, ++/*438505*/ OPC_CheckType, MVT::v8i32, ++/*438507*/ OPC_MoveParent, ++/*438508*/ OPC_MoveParent, ++/*438509*/ OPC_MoveParent, ++/*438510*/ OPC_MoveChild1, ++/*438511*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*438514*/ OPC_CheckChild0Integer, 1, ++/*438516*/ OPC_CheckChild0Type, MVT::i32, ++/*438518*/ OPC_CheckChild1Integer, 1, ++/*438520*/ OPC_CheckChild1Type, MVT::i32, ++/*438522*/ OPC_CheckChild2Integer, 1, ++/*438524*/ OPC_CheckChild2Type, MVT::i32, ++/*438526*/ OPC_CheckChild3Integer, 1, ++/*438528*/ OPC_CheckChild3Type, MVT::i32, ++/*438530*/ OPC_CheckChild4Integer, 1, ++/*438532*/ OPC_CheckChild4Type, MVT::i32, ++/*438534*/ OPC_MoveChild5, ++/*438535*/ OPC_CheckInteger, 1, ++/*438537*/ OPC_CheckType, MVT::i32, ++/*438539*/ OPC_MoveParent, ++/*438540*/ OPC_MoveChild6, ++/*438541*/ OPC_CheckInteger, 1, ++/*438543*/ OPC_CheckType, MVT::i32, ++/*438545*/ OPC_MoveParent, ++/*438546*/ OPC_MoveChild7, ++/*438547*/ OPC_CheckInteger, 1, ++/*438549*/ OPC_CheckType, MVT::i32, ++/*438551*/ OPC_MoveParent, ++/*438552*/ OPC_CheckType, MVT::v8i32, ++/*438554*/ OPC_MoveParent, ++/*438555*/ OPC_CheckType, MVT::v8i32, ++/*438557*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*438559*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b), LASX256W:{ *:[v8i32] }:$a), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*438567*/ 0, /*End of Scope*/ ++/*438568*/ /*Scope*/ 58|128,2/*314*/, /*->438884*/ ++/*438570*/ OPC_CheckChild0Same, 0, ++/*438572*/ OPC_MoveChild1, ++/*438573*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*438576*/ OPC_Scope, 23|128,1/*151*/, /*->438730*/ // 2 children in Scope ++/*438579*/ OPC_MoveChild0, ++/*438580*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*438583*/ OPC_CheckChild0Integer, 1, ++/*438585*/ OPC_CheckChild0Type, MVT::i32, ++/*438587*/ OPC_CheckChild1Integer, 1, ++/*438589*/ OPC_CheckChild1Type, MVT::i32, ++/*438591*/ OPC_CheckChild2Integer, 1, ++/*438593*/ OPC_CheckChild2Type, MVT::i32, ++/*438595*/ OPC_CheckChild3Integer, 1, ++/*438597*/ OPC_CheckChild3Type, MVT::i32, ++/*438599*/ OPC_CheckChild4Integer, 1, ++/*438601*/ OPC_CheckChild4Type, MVT::i32, ++/*438603*/ OPC_MoveChild5, ++/*438604*/ OPC_CheckInteger, 1, ++/*438606*/ OPC_CheckType, MVT::i32, ++/*438608*/ OPC_MoveParent, ++/*438609*/ OPC_MoveChild6, ++/*438610*/ OPC_CheckInteger, 1, ++/*438612*/ OPC_CheckType, MVT::i32, ++/*438614*/ OPC_MoveParent, ++/*438615*/ OPC_MoveChild7, ++/*438616*/ OPC_CheckInteger, 1, ++/*438618*/ OPC_CheckType, MVT::i32, ++/*438620*/ OPC_MoveParent, ++/*438621*/ OPC_MoveParent, ++/*438622*/ OPC_CheckChild1Same, 1, ++/*438624*/ OPC_MoveParent, ++/*438625*/ OPC_MoveParent, ++/*438626*/ OPC_MoveChild1, ++/*438627*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*438630*/ OPC_CheckChild0Integer, 31, ++/*438632*/ OPC_CheckChild0Type, MVT::i32, ++/*438634*/ OPC_CheckChild1Integer, 31, ++/*438636*/ OPC_CheckChild1Type, MVT::i32, ++/*438638*/ OPC_CheckChild2Integer, 31, ++/*438640*/ OPC_CheckChild2Type, MVT::i32, ++/*438642*/ OPC_CheckChild3Integer, 31, ++/*438644*/ OPC_CheckChild3Type, MVT::i32, ++/*438646*/ OPC_CheckChild4Integer, 31, ++/*438648*/ OPC_CheckChild4Type, MVT::i32, ++/*438650*/ OPC_MoveChild5, ++/*438651*/ OPC_CheckInteger, 31, ++/*438653*/ OPC_CheckType, MVT::i32, ++/*438655*/ OPC_MoveParent, ++/*438656*/ OPC_MoveChild6, ++/*438657*/ OPC_CheckInteger, 31, ++/*438659*/ OPC_CheckType, MVT::i32, ++/*438661*/ OPC_MoveParent, ++/*438662*/ OPC_MoveChild7, ++/*438663*/ OPC_CheckInteger, 31, ++/*438665*/ OPC_CheckType, MVT::i32, ++/*438667*/ OPC_MoveParent, ++/*438668*/ OPC_CheckType, MVT::v8i32, ++/*438670*/ OPC_MoveParent, ++/*438671*/ OPC_MoveParent, ++/*438672*/ OPC_MoveParent, ++/*438673*/ OPC_MoveChild1, ++/*438674*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*438677*/ OPC_CheckChild0Integer, 1, ++/*438679*/ OPC_CheckChild0Type, MVT::i32, ++/*438681*/ OPC_CheckChild1Integer, 1, ++/*438683*/ OPC_CheckChild1Type, MVT::i32, ++/*438685*/ OPC_CheckChild2Integer, 1, ++/*438687*/ OPC_CheckChild2Type, MVT::i32, ++/*438689*/ OPC_CheckChild3Integer, 1, ++/*438691*/ OPC_CheckChild3Type, MVT::i32, ++/*438693*/ OPC_CheckChild4Integer, 1, ++/*438695*/ OPC_CheckChild4Type, MVT::i32, ++/*438697*/ OPC_MoveChild5, ++/*438698*/ OPC_CheckInteger, 1, ++/*438700*/ OPC_CheckType, MVT::i32, ++/*438702*/ OPC_MoveParent, ++/*438703*/ OPC_MoveChild6, ++/*438704*/ OPC_CheckInteger, 1, ++/*438706*/ OPC_CheckType, MVT::i32, ++/*438708*/ OPC_MoveParent, ++/*438709*/ OPC_MoveChild7, ++/*438710*/ OPC_CheckInteger, 1, ++/*438712*/ OPC_CheckType, MVT::i32, ++/*438714*/ OPC_MoveParent, ++/*438715*/ OPC_CheckType, MVT::v8i32, ++/*438717*/ OPC_MoveParent, ++/*438718*/ OPC_CheckType, MVT::v8i32, ++/*438720*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*438722*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b), LASX256W:{ *:[v8i32] }:$a), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*438730*/ /*Scope*/ 23|128,1/*151*/, /*->438883*/ ++/*438732*/ OPC_CheckChild0Same, 1, ++/*438734*/ OPC_MoveChild1, ++/*438735*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*438738*/ OPC_CheckChild0Integer, 1, ++/*438740*/ OPC_CheckChild0Type, MVT::i32, ++/*438742*/ OPC_CheckChild1Integer, 1, ++/*438744*/ OPC_CheckChild1Type, MVT::i32, ++/*438746*/ OPC_CheckChild2Integer, 1, ++/*438748*/ OPC_CheckChild2Type, MVT::i32, ++/*438750*/ OPC_CheckChild3Integer, 1, ++/*438752*/ OPC_CheckChild3Type, MVT::i32, ++/*438754*/ OPC_CheckChild4Integer, 1, ++/*438756*/ OPC_CheckChild4Type, MVT::i32, ++/*438758*/ OPC_MoveChild5, ++/*438759*/ OPC_CheckInteger, 1, ++/*438761*/ OPC_CheckType, MVT::i32, ++/*438763*/ OPC_MoveParent, ++/*438764*/ OPC_MoveChild6, ++/*438765*/ OPC_CheckInteger, 1, ++/*438767*/ OPC_CheckType, MVT::i32, ++/*438769*/ OPC_MoveParent, ++/*438770*/ OPC_MoveChild7, ++/*438771*/ OPC_CheckInteger, 1, ++/*438773*/ OPC_CheckType, MVT::i32, ++/*438775*/ OPC_MoveParent, ++/*438776*/ OPC_MoveParent, ++/*438777*/ OPC_MoveParent, ++/*438778*/ OPC_MoveParent, ++/*438779*/ OPC_MoveChild1, ++/*438780*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*438783*/ OPC_CheckChild0Integer, 31, ++/*438785*/ OPC_CheckChild0Type, MVT::i32, ++/*438787*/ OPC_CheckChild1Integer, 31, ++/*438789*/ OPC_CheckChild1Type, MVT::i32, ++/*438791*/ OPC_CheckChild2Integer, 31, ++/*438793*/ OPC_CheckChild2Type, MVT::i32, ++/*438795*/ OPC_CheckChild3Integer, 31, ++/*438797*/ OPC_CheckChild3Type, MVT::i32, ++/*438799*/ OPC_CheckChild4Integer, 31, ++/*438801*/ OPC_CheckChild4Type, MVT::i32, ++/*438803*/ OPC_MoveChild5, ++/*438804*/ OPC_CheckInteger, 31, ++/*438806*/ OPC_CheckType, MVT::i32, ++/*438808*/ OPC_MoveParent, ++/*438809*/ OPC_MoveChild6, ++/*438810*/ OPC_CheckInteger, 31, ++/*438812*/ OPC_CheckType, MVT::i32, ++/*438814*/ OPC_MoveParent, ++/*438815*/ OPC_MoveChild7, ++/*438816*/ OPC_CheckInteger, 31, ++/*438818*/ OPC_CheckType, MVT::i32, ++/*438820*/ OPC_MoveParent, ++/*438821*/ OPC_CheckType, MVT::v8i32, ++/*438823*/ OPC_MoveParent, ++/*438824*/ OPC_MoveParent, ++/*438825*/ OPC_MoveParent, ++/*438826*/ OPC_MoveChild1, ++/*438827*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*438830*/ OPC_CheckChild0Integer, 1, ++/*438832*/ OPC_CheckChild0Type, MVT::i32, ++/*438834*/ OPC_CheckChild1Integer, 1, ++/*438836*/ OPC_CheckChild1Type, MVT::i32, ++/*438838*/ OPC_CheckChild2Integer, 1, ++/*438840*/ OPC_CheckChild2Type, MVT::i32, ++/*438842*/ OPC_CheckChild3Integer, 1, ++/*438844*/ OPC_CheckChild3Type, MVT::i32, ++/*438846*/ OPC_CheckChild4Integer, 1, ++/*438848*/ OPC_CheckChild4Type, MVT::i32, ++/*438850*/ OPC_MoveChild5, ++/*438851*/ OPC_CheckInteger, 1, ++/*438853*/ OPC_CheckType, MVT::i32, ++/*438855*/ OPC_MoveParent, ++/*438856*/ OPC_MoveChild6, ++/*438857*/ OPC_CheckInteger, 1, ++/*438859*/ OPC_CheckType, MVT::i32, ++/*438861*/ OPC_MoveParent, ++/*438862*/ OPC_MoveChild7, ++/*438863*/ OPC_CheckInteger, 1, ++/*438865*/ OPC_CheckType, MVT::i32, ++/*438867*/ OPC_MoveParent, ++/*438868*/ OPC_CheckType, MVT::v8i32, ++/*438870*/ OPC_MoveParent, ++/*438871*/ OPC_CheckType, MVT::v8i32, ++/*438873*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*438875*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b), LASX256W:{ *:[v8i32] }:$a), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*438883*/ 0, /*End of Scope*/ ++/*438884*/ /*Scope*/ 58|128,2/*314*/, /*->439200*/ ++/*438886*/ OPC_CheckChild0Same, 1, ++/*438888*/ OPC_MoveChild1, ++/*438889*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*438892*/ OPC_Scope, 23|128,1/*151*/, /*->439046*/ // 2 children in Scope ++/*438895*/ OPC_MoveChild0, ++/*438896*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*438899*/ OPC_CheckChild0Integer, 1, ++/*438901*/ OPC_CheckChild0Type, MVT::i32, ++/*438903*/ OPC_CheckChild1Integer, 1, ++/*438905*/ OPC_CheckChild1Type, MVT::i32, ++/*438907*/ OPC_CheckChild2Integer, 1, ++/*438909*/ OPC_CheckChild2Type, MVT::i32, ++/*438911*/ OPC_CheckChild3Integer, 1, ++/*438913*/ OPC_CheckChild3Type, MVT::i32, ++/*438915*/ OPC_CheckChild4Integer, 1, ++/*438917*/ OPC_CheckChild4Type, MVT::i32, ++/*438919*/ OPC_MoveChild5, ++/*438920*/ OPC_CheckInteger, 1, ++/*438922*/ OPC_CheckType, MVT::i32, ++/*438924*/ OPC_MoveParent, ++/*438925*/ OPC_MoveChild6, ++/*438926*/ OPC_CheckInteger, 1, ++/*438928*/ OPC_CheckType, MVT::i32, ++/*438930*/ OPC_MoveParent, ++/*438931*/ OPC_MoveChild7, ++/*438932*/ OPC_CheckInteger, 1, ++/*438934*/ OPC_CheckType, MVT::i32, ++/*438936*/ OPC_MoveParent, ++/*438937*/ OPC_MoveParent, ++/*438938*/ OPC_CheckChild1Same, 0, ++/*438940*/ OPC_MoveParent, ++/*438941*/ OPC_MoveParent, ++/*438942*/ OPC_MoveChild1, ++/*438943*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*438946*/ OPC_CheckChild0Integer, 31, ++/*438948*/ OPC_CheckChild0Type, MVT::i32, ++/*438950*/ OPC_CheckChild1Integer, 31, ++/*438952*/ OPC_CheckChild1Type, MVT::i32, ++/*438954*/ OPC_CheckChild2Integer, 31, ++/*438956*/ OPC_CheckChild2Type, MVT::i32, ++/*438958*/ OPC_CheckChild3Integer, 31, ++/*438960*/ OPC_CheckChild3Type, MVT::i32, ++/*438962*/ OPC_CheckChild4Integer, 31, ++/*438964*/ OPC_CheckChild4Type, MVT::i32, ++/*438966*/ OPC_MoveChild5, ++/*438967*/ OPC_CheckInteger, 31, ++/*438969*/ OPC_CheckType, MVT::i32, ++/*438971*/ OPC_MoveParent, ++/*438972*/ OPC_MoveChild6, ++/*438973*/ OPC_CheckInteger, 31, ++/*438975*/ OPC_CheckType, MVT::i32, ++/*438977*/ OPC_MoveParent, ++/*438978*/ OPC_MoveChild7, ++/*438979*/ OPC_CheckInteger, 31, ++/*438981*/ OPC_CheckType, MVT::i32, ++/*438983*/ OPC_MoveParent, ++/*438984*/ OPC_CheckType, MVT::v8i32, ++/*438986*/ OPC_MoveParent, ++/*438987*/ OPC_MoveParent, ++/*438988*/ OPC_MoveParent, ++/*438989*/ OPC_MoveChild1, ++/*438990*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*438993*/ OPC_CheckChild0Integer, 1, ++/*438995*/ OPC_CheckChild0Type, MVT::i32, ++/*438997*/ OPC_CheckChild1Integer, 1, ++/*438999*/ OPC_CheckChild1Type, MVT::i32, ++/*439001*/ OPC_CheckChild2Integer, 1, ++/*439003*/ OPC_CheckChild2Type, MVT::i32, ++/*439005*/ OPC_CheckChild3Integer, 1, ++/*439007*/ OPC_CheckChild3Type, MVT::i32, ++/*439009*/ OPC_CheckChild4Integer, 1, ++/*439011*/ OPC_CheckChild4Type, MVT::i32, ++/*439013*/ OPC_MoveChild5, ++/*439014*/ OPC_CheckInteger, 1, ++/*439016*/ OPC_CheckType, MVT::i32, ++/*439018*/ OPC_MoveParent, ++/*439019*/ OPC_MoveChild6, ++/*439020*/ OPC_CheckInteger, 1, ++/*439022*/ OPC_CheckType, MVT::i32, ++/*439024*/ OPC_MoveParent, ++/*439025*/ OPC_MoveChild7, ++/*439026*/ OPC_CheckInteger, 1, ++/*439028*/ OPC_CheckType, MVT::i32, ++/*439030*/ OPC_MoveParent, ++/*439031*/ OPC_CheckType, MVT::v8i32, ++/*439033*/ OPC_MoveParent, ++/*439034*/ OPC_CheckType, MVT::v8i32, ++/*439036*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*439038*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b), LASX256W:{ *:[v8i32] }:$a), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*439046*/ /*Scope*/ 23|128,1/*151*/, /*->439199*/ ++/*439048*/ OPC_CheckChild0Same, 0, ++/*439050*/ OPC_MoveChild1, ++/*439051*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*439054*/ OPC_CheckChild0Integer, 1, ++/*439056*/ OPC_CheckChild0Type, MVT::i32, ++/*439058*/ OPC_CheckChild1Integer, 1, ++/*439060*/ OPC_CheckChild1Type, MVT::i32, ++/*439062*/ OPC_CheckChild2Integer, 1, ++/*439064*/ OPC_CheckChild2Type, MVT::i32, ++/*439066*/ OPC_CheckChild3Integer, 1, ++/*439068*/ OPC_CheckChild3Type, MVT::i32, ++/*439070*/ OPC_CheckChild4Integer, 1, ++/*439072*/ OPC_CheckChild4Type, MVT::i32, ++/*439074*/ OPC_MoveChild5, ++/*439075*/ OPC_CheckInteger, 1, ++/*439077*/ OPC_CheckType, MVT::i32, ++/*439079*/ OPC_MoveParent, ++/*439080*/ OPC_MoveChild6, ++/*439081*/ OPC_CheckInteger, 1, ++/*439083*/ OPC_CheckType, MVT::i32, ++/*439085*/ OPC_MoveParent, ++/*439086*/ OPC_MoveChild7, ++/*439087*/ OPC_CheckInteger, 1, ++/*439089*/ OPC_CheckType, MVT::i32, ++/*439091*/ OPC_MoveParent, ++/*439092*/ OPC_MoveParent, ++/*439093*/ OPC_MoveParent, ++/*439094*/ OPC_MoveParent, ++/*439095*/ OPC_MoveChild1, ++/*439096*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*439099*/ OPC_CheckChild0Integer, 31, ++/*439101*/ OPC_CheckChild0Type, MVT::i32, ++/*439103*/ OPC_CheckChild1Integer, 31, ++/*439105*/ OPC_CheckChild1Type, MVT::i32, ++/*439107*/ OPC_CheckChild2Integer, 31, ++/*439109*/ OPC_CheckChild2Type, MVT::i32, ++/*439111*/ OPC_CheckChild3Integer, 31, ++/*439113*/ OPC_CheckChild3Type, MVT::i32, ++/*439115*/ OPC_CheckChild4Integer, 31, ++/*439117*/ OPC_CheckChild4Type, MVT::i32, ++/*439119*/ OPC_MoveChild5, ++/*439120*/ OPC_CheckInteger, 31, ++/*439122*/ OPC_CheckType, MVT::i32, ++/*439124*/ OPC_MoveParent, ++/*439125*/ OPC_MoveChild6, ++/*439126*/ OPC_CheckInteger, 31, ++/*439128*/ OPC_CheckType, MVT::i32, ++/*439130*/ OPC_MoveParent, ++/*439131*/ OPC_MoveChild7, ++/*439132*/ OPC_CheckInteger, 31, ++/*439134*/ OPC_CheckType, MVT::i32, ++/*439136*/ OPC_MoveParent, ++/*439137*/ OPC_CheckType, MVT::v8i32, ++/*439139*/ OPC_MoveParent, ++/*439140*/ OPC_MoveParent, ++/*439141*/ OPC_MoveParent, ++/*439142*/ OPC_MoveChild1, ++/*439143*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*439146*/ OPC_CheckChild0Integer, 1, ++/*439148*/ OPC_CheckChild0Type, MVT::i32, ++/*439150*/ OPC_CheckChild1Integer, 1, ++/*439152*/ OPC_CheckChild1Type, MVT::i32, ++/*439154*/ OPC_CheckChild2Integer, 1, ++/*439156*/ OPC_CheckChild2Type, MVT::i32, ++/*439158*/ OPC_CheckChild3Integer, 1, ++/*439160*/ OPC_CheckChild3Type, MVT::i32, ++/*439162*/ OPC_CheckChild4Integer, 1, ++/*439164*/ OPC_CheckChild4Type, MVT::i32, ++/*439166*/ OPC_MoveChild5, ++/*439167*/ OPC_CheckInteger, 1, ++/*439169*/ OPC_CheckType, MVT::i32, ++/*439171*/ OPC_MoveParent, ++/*439172*/ OPC_MoveChild6, ++/*439173*/ OPC_CheckInteger, 1, ++/*439175*/ OPC_CheckType, MVT::i32, ++/*439177*/ OPC_MoveParent, ++/*439178*/ OPC_MoveChild7, ++/*439179*/ OPC_CheckInteger, 1, ++/*439181*/ OPC_CheckType, MVT::i32, ++/*439183*/ OPC_MoveParent, ++/*439184*/ OPC_CheckType, MVT::v8i32, ++/*439186*/ OPC_MoveParent, ++/*439187*/ OPC_CheckType, MVT::v8i32, ++/*439189*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*439191*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b), LASX256W:{ *:[v8i32] }:$a), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*439199*/ 0, /*End of Scope*/ ++/*439200*/ /*Scope*/ 15|128,2/*271*/, /*->439473*/ ++/*439202*/ OPC_MoveChild0, ++/*439203*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*439206*/ OPC_CheckChild0Integer, 1, ++/*439208*/ OPC_CheckChild0Type, MVT::i32, ++/*439210*/ OPC_CheckChild1Integer, 1, ++/*439212*/ OPC_CheckChild1Type, MVT::i32, ++/*439214*/ OPC_CheckChild2Integer, 1, ++/*439216*/ OPC_CheckChild2Type, MVT::i32, ++/*439218*/ OPC_CheckChild3Integer, 1, ++/*439220*/ OPC_CheckChild3Type, MVT::i32, ++/*439222*/ OPC_CheckChild4Integer, 1, ++/*439224*/ OPC_CheckChild4Type, MVT::i32, ++/*439226*/ OPC_MoveChild5, ++/*439227*/ OPC_CheckInteger, 1, ++/*439229*/ OPC_CheckType, MVT::i32, ++/*439231*/ OPC_MoveParent, ++/*439232*/ OPC_MoveChild6, ++/*439233*/ OPC_CheckInteger, 1, ++/*439235*/ OPC_CheckType, MVT::i32, ++/*439237*/ OPC_MoveParent, ++/*439238*/ OPC_MoveChild7, ++/*439239*/ OPC_CheckInteger, 1, ++/*439241*/ OPC_CheckType, MVT::i32, ++/*439243*/ OPC_MoveParent, ++/*439244*/ OPC_MoveParent, ++/*439245*/ OPC_MoveChild1, ++/*439246*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*439249*/ OPC_Scope, 110, /*->439361*/ // 2 children in Scope ++/*439251*/ OPC_CheckChild0Same, 1, ++/*439253*/ OPC_CheckChild1Same, 0, ++/*439255*/ OPC_MoveParent, ++/*439256*/ OPC_MoveParent, ++/*439257*/ OPC_MoveChild1, ++/*439258*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*439261*/ OPC_CheckChild0Integer, 31, ++/*439263*/ OPC_CheckChild0Type, MVT::i32, ++/*439265*/ OPC_CheckChild1Integer, 31, ++/*439267*/ OPC_CheckChild1Type, MVT::i32, ++/*439269*/ OPC_CheckChild2Integer, 31, ++/*439271*/ OPC_CheckChild2Type, MVT::i32, ++/*439273*/ OPC_CheckChild3Integer, 31, ++/*439275*/ OPC_CheckChild3Type, MVT::i32, ++/*439277*/ OPC_CheckChild4Integer, 31, ++/*439279*/ OPC_CheckChild4Type, MVT::i32, ++/*439281*/ OPC_MoveChild5, ++/*439282*/ OPC_CheckInteger, 31, ++/*439284*/ OPC_CheckType, MVT::i32, ++/*439286*/ OPC_MoveParent, ++/*439287*/ OPC_MoveChild6, ++/*439288*/ OPC_CheckInteger, 31, ++/*439290*/ OPC_CheckType, MVT::i32, ++/*439292*/ OPC_MoveParent, ++/*439293*/ OPC_MoveChild7, ++/*439294*/ OPC_CheckInteger, 31, ++/*439296*/ OPC_CheckType, MVT::i32, ++/*439298*/ OPC_MoveParent, ++/*439299*/ OPC_CheckType, MVT::v8i32, ++/*439301*/ OPC_MoveParent, ++/*439302*/ OPC_MoveParent, ++/*439303*/ OPC_MoveParent, ++/*439304*/ OPC_MoveChild1, ++/*439305*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*439308*/ OPC_CheckChild0Integer, 1, ++/*439310*/ OPC_CheckChild0Type, MVT::i32, ++/*439312*/ OPC_CheckChild1Integer, 1, ++/*439314*/ OPC_CheckChild1Type, MVT::i32, ++/*439316*/ OPC_CheckChild2Integer, 1, ++/*439318*/ OPC_CheckChild2Type, MVT::i32, ++/*439320*/ OPC_CheckChild3Integer, 1, ++/*439322*/ OPC_CheckChild3Type, MVT::i32, ++/*439324*/ OPC_CheckChild4Integer, 1, ++/*439326*/ OPC_CheckChild4Type, MVT::i32, ++/*439328*/ OPC_MoveChild5, ++/*439329*/ OPC_CheckInteger, 1, ++/*439331*/ OPC_CheckType, MVT::i32, ++/*439333*/ OPC_MoveParent, ++/*439334*/ OPC_MoveChild6, ++/*439335*/ OPC_CheckInteger, 1, ++/*439337*/ OPC_CheckType, MVT::i32, ++/*439339*/ OPC_MoveParent, ++/*439340*/ OPC_MoveChild7, ++/*439341*/ OPC_CheckInteger, 1, ++/*439343*/ OPC_CheckType, MVT::i32, ++/*439345*/ OPC_MoveParent, ++/*439346*/ OPC_CheckType, MVT::v8i32, ++/*439348*/ OPC_MoveParent, ++/*439349*/ OPC_CheckType, MVT::v8i32, ++/*439351*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*439353*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b), LASX256W:{ *:[v8i32] }:$a), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*439361*/ /*Scope*/ 110, /*->439472*/ ++/*439362*/ OPC_CheckChild0Same, 0, ++/*439364*/ OPC_CheckChild1Same, 1, ++/*439366*/ OPC_MoveParent, ++/*439367*/ OPC_MoveParent, ++/*439368*/ OPC_MoveChild1, ++/*439369*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*439372*/ OPC_CheckChild0Integer, 31, ++/*439374*/ OPC_CheckChild0Type, MVT::i32, ++/*439376*/ OPC_CheckChild1Integer, 31, ++/*439378*/ OPC_CheckChild1Type, MVT::i32, ++/*439380*/ OPC_CheckChild2Integer, 31, ++/*439382*/ OPC_CheckChild2Type, MVT::i32, ++/*439384*/ OPC_CheckChild3Integer, 31, ++/*439386*/ OPC_CheckChild3Type, MVT::i32, ++/*439388*/ OPC_CheckChild4Integer, 31, ++/*439390*/ OPC_CheckChild4Type, MVT::i32, ++/*439392*/ OPC_MoveChild5, ++/*439393*/ OPC_CheckInteger, 31, ++/*439395*/ OPC_CheckType, MVT::i32, ++/*439397*/ OPC_MoveParent, ++/*439398*/ OPC_MoveChild6, ++/*439399*/ OPC_CheckInteger, 31, ++/*439401*/ OPC_CheckType, MVT::i32, ++/*439403*/ OPC_MoveParent, ++/*439404*/ OPC_MoveChild7, ++/*439405*/ OPC_CheckInteger, 31, ++/*439407*/ OPC_CheckType, MVT::i32, ++/*439409*/ OPC_MoveParent, ++/*439410*/ OPC_CheckType, MVT::v8i32, ++/*439412*/ OPC_MoveParent, ++/*439413*/ OPC_MoveParent, ++/*439414*/ OPC_MoveParent, ++/*439415*/ OPC_MoveChild1, ++/*439416*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*439419*/ OPC_CheckChild0Integer, 1, ++/*439421*/ OPC_CheckChild0Type, MVT::i32, ++/*439423*/ OPC_CheckChild1Integer, 1, ++/*439425*/ OPC_CheckChild1Type, MVT::i32, ++/*439427*/ OPC_CheckChild2Integer, 1, ++/*439429*/ OPC_CheckChild2Type, MVT::i32, ++/*439431*/ OPC_CheckChild3Integer, 1, ++/*439433*/ OPC_CheckChild3Type, MVT::i32, ++/*439435*/ OPC_CheckChild4Integer, 1, ++/*439437*/ OPC_CheckChild4Type, MVT::i32, ++/*439439*/ OPC_MoveChild5, ++/*439440*/ OPC_CheckInteger, 1, ++/*439442*/ OPC_CheckType, MVT::i32, ++/*439444*/ OPC_MoveParent, ++/*439445*/ OPC_MoveChild6, ++/*439446*/ OPC_CheckInteger, 1, ++/*439448*/ OPC_CheckType, MVT::i32, ++/*439450*/ OPC_MoveParent, ++/*439451*/ OPC_MoveChild7, ++/*439452*/ OPC_CheckInteger, 1, ++/*439454*/ OPC_CheckType, MVT::i32, ++/*439456*/ OPC_MoveParent, ++/*439457*/ OPC_CheckType, MVT::v8i32, ++/*439459*/ OPC_MoveParent, ++/*439460*/ OPC_CheckType, MVT::v8i32, ++/*439462*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*439464*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b), LASX256W:{ *:[v8i32] }:$a), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*439472*/ 0, /*End of Scope*/ ++/*439473*/ 0, /*End of Scope*/ ++/*439474*/ /*Scope*/ 17|128,44/*5649*/, /*->445125*/ ++/*439476*/ OPC_RecordChild0, // #0 = $b ++/*439477*/ OPC_Scope, 107|128,14/*1899*/, /*->441379*/ // 2 children in Scope ++/*439480*/ OPC_MoveChild1, ++/*439481*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*439484*/ OPC_CheckChild0Integer, 1, ++/*439486*/ OPC_CheckChild0Type, MVT::i32, ++/*439488*/ OPC_CheckChild1Integer, 1, ++/*439490*/ OPC_CheckChild1Type, MVT::i32, ++/*439492*/ OPC_CheckChild2Integer, 1, ++/*439494*/ OPC_CheckChild2Type, MVT::i32, ++/*439496*/ OPC_CheckChild3Integer, 1, ++/*439498*/ OPC_CheckChild3Type, MVT::i32, ++/*439500*/ OPC_CheckChild4Integer, 1, ++/*439502*/ OPC_CheckChild4Type, MVT::i32, ++/*439504*/ OPC_MoveChild5, ++/*439505*/ OPC_CheckInteger, 1, ++/*439507*/ OPC_CheckType, MVT::i32, ++/*439509*/ OPC_MoveParent, ++/*439510*/ OPC_MoveChild6, ++/*439511*/ OPC_CheckInteger, 1, ++/*439513*/ OPC_CheckType, MVT::i32, ++/*439515*/ OPC_MoveParent, ++/*439516*/ OPC_MoveChild7, ++/*439517*/ OPC_CheckInteger, 1, ++/*439519*/ OPC_CheckType, MVT::i32, ++/*439521*/ OPC_MoveParent, ++/*439522*/ OPC_MoveParent, ++/*439523*/ OPC_MoveParent, ++/*439524*/ OPC_RecordChild1, // #1 = $a ++/*439525*/ OPC_MoveParent, ++/*439526*/ OPC_MoveChild1, ++/*439527*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*439530*/ OPC_MoveChild0, ++/*439531*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*439534*/ OPC_Scope, 40|128,7/*936*/, /*->440473*/ // 4 children in Scope ++/*439537*/ OPC_MoveChild0, ++/*439538*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*439541*/ OPC_Scope, 25|128,1/*153*/, /*->439697*/ // 6 children in Scope ++/*439544*/ OPC_MoveChild0, ++/*439545*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*439548*/ OPC_CheckChild0Integer, 1, ++/*439550*/ OPC_CheckChild0Type, MVT::i32, ++/*439552*/ OPC_CheckChild1Integer, 1, ++/*439554*/ OPC_CheckChild1Type, MVT::i32, ++/*439556*/ OPC_CheckChild2Integer, 1, ++/*439558*/ OPC_CheckChild2Type, MVT::i32, ++/*439560*/ OPC_CheckChild3Integer, 1, ++/*439562*/ OPC_CheckChild3Type, MVT::i32, ++/*439564*/ OPC_CheckChild4Integer, 1, ++/*439566*/ OPC_CheckChild4Type, MVT::i32, ++/*439568*/ OPC_MoveChild5, ++/*439569*/ OPC_CheckInteger, 1, ++/*439571*/ OPC_CheckType, MVT::i32, ++/*439573*/ OPC_MoveParent, ++/*439574*/ OPC_MoveChild6, ++/*439575*/ OPC_CheckInteger, 1, ++/*439577*/ OPC_CheckType, MVT::i32, ++/*439579*/ OPC_MoveParent, ++/*439580*/ OPC_MoveChild7, ++/*439581*/ OPC_CheckInteger, 1, ++/*439583*/ OPC_CheckType, MVT::i32, ++/*439585*/ OPC_MoveParent, ++/*439586*/ OPC_MoveParent, ++/*439587*/ OPC_CheckChild1Same, 1, ++/*439589*/ OPC_MoveParent, ++/*439590*/ OPC_CheckChild1Same, 0, ++/*439592*/ OPC_MoveParent, ++/*439593*/ OPC_MoveChild1, ++/*439594*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*439597*/ OPC_CheckChild0Integer, 31, ++/*439599*/ OPC_CheckChild0Type, MVT::i32, ++/*439601*/ OPC_CheckChild1Integer, 31, ++/*439603*/ OPC_CheckChild1Type, MVT::i32, ++/*439605*/ OPC_CheckChild2Integer, 31, ++/*439607*/ OPC_CheckChild2Type, MVT::i32, ++/*439609*/ OPC_CheckChild3Integer, 31, ++/*439611*/ OPC_CheckChild3Type, MVT::i32, ++/*439613*/ OPC_CheckChild4Integer, 31, ++/*439615*/ OPC_CheckChild4Type, MVT::i32, ++/*439617*/ OPC_MoveChild5, ++/*439618*/ OPC_CheckInteger, 31, ++/*439620*/ OPC_CheckType, MVT::i32, ++/*439622*/ OPC_MoveParent, ++/*439623*/ OPC_MoveChild6, ++/*439624*/ OPC_CheckInteger, 31, ++/*439626*/ OPC_CheckType, MVT::i32, ++/*439628*/ OPC_MoveParent, ++/*439629*/ OPC_MoveChild7, ++/*439630*/ OPC_CheckInteger, 31, ++/*439632*/ OPC_CheckType, MVT::i32, ++/*439634*/ OPC_MoveParent, ++/*439635*/ OPC_CheckType, MVT::v8i32, ++/*439637*/ OPC_MoveParent, ++/*439638*/ OPC_MoveParent, ++/*439639*/ OPC_MoveParent, ++/*439640*/ OPC_MoveChild1, ++/*439641*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*439644*/ OPC_CheckChild0Integer, 1, ++/*439646*/ OPC_CheckChild0Type, MVT::i32, ++/*439648*/ OPC_CheckChild1Integer, 1, ++/*439650*/ OPC_CheckChild1Type, MVT::i32, ++/*439652*/ OPC_CheckChild2Integer, 1, ++/*439654*/ OPC_CheckChild2Type, MVT::i32, ++/*439656*/ OPC_CheckChild3Integer, 1, ++/*439658*/ OPC_CheckChild3Type, MVT::i32, ++/*439660*/ OPC_CheckChild4Integer, 1, ++/*439662*/ OPC_CheckChild4Type, MVT::i32, ++/*439664*/ OPC_MoveChild5, ++/*439665*/ OPC_CheckInteger, 1, ++/*439667*/ OPC_CheckType, MVT::i32, ++/*439669*/ OPC_MoveParent, ++/*439670*/ OPC_MoveChild6, ++/*439671*/ OPC_CheckInteger, 1, ++/*439673*/ OPC_CheckType, MVT::i32, ++/*439675*/ OPC_MoveParent, ++/*439676*/ OPC_MoveChild7, ++/*439677*/ OPC_CheckInteger, 1, ++/*439679*/ OPC_CheckType, MVT::i32, ++/*439681*/ OPC_MoveParent, ++/*439682*/ OPC_CheckType, MVT::v8i32, ++/*439684*/ OPC_MoveParent, ++/*439685*/ OPC_CheckType, MVT::v8i32, ++/*439687*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*439689*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$a), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a), LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*439697*/ /*Scope*/ 25|128,1/*153*/, /*->439852*/ ++/*439699*/ OPC_CheckChild0Same, 1, ++/*439701*/ OPC_MoveChild1, ++/*439702*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*439705*/ OPC_CheckChild0Integer, 1, ++/*439707*/ OPC_CheckChild0Type, MVT::i32, ++/*439709*/ OPC_CheckChild1Integer, 1, ++/*439711*/ OPC_CheckChild1Type, MVT::i32, ++/*439713*/ OPC_CheckChild2Integer, 1, ++/*439715*/ OPC_CheckChild2Type, MVT::i32, ++/*439717*/ OPC_CheckChild3Integer, 1, ++/*439719*/ OPC_CheckChild3Type, MVT::i32, ++/*439721*/ OPC_CheckChild4Integer, 1, ++/*439723*/ OPC_CheckChild4Type, MVT::i32, ++/*439725*/ OPC_MoveChild5, ++/*439726*/ OPC_CheckInteger, 1, ++/*439728*/ OPC_CheckType, MVT::i32, ++/*439730*/ OPC_MoveParent, ++/*439731*/ OPC_MoveChild6, ++/*439732*/ OPC_CheckInteger, 1, ++/*439734*/ OPC_CheckType, MVT::i32, ++/*439736*/ OPC_MoveParent, ++/*439737*/ OPC_MoveChild7, ++/*439738*/ OPC_CheckInteger, 1, ++/*439740*/ OPC_CheckType, MVT::i32, ++/*439742*/ OPC_MoveParent, ++/*439743*/ OPC_MoveParent, ++/*439744*/ OPC_MoveParent, ++/*439745*/ OPC_CheckChild1Same, 0, ++/*439747*/ OPC_MoveParent, ++/*439748*/ OPC_MoveChild1, ++/*439749*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*439752*/ OPC_CheckChild0Integer, 31, ++/*439754*/ OPC_CheckChild0Type, MVT::i32, ++/*439756*/ OPC_CheckChild1Integer, 31, ++/*439758*/ OPC_CheckChild1Type, MVT::i32, ++/*439760*/ OPC_CheckChild2Integer, 31, ++/*439762*/ OPC_CheckChild2Type, MVT::i32, ++/*439764*/ OPC_CheckChild3Integer, 31, ++/*439766*/ OPC_CheckChild3Type, MVT::i32, ++/*439768*/ OPC_CheckChild4Integer, 31, ++/*439770*/ OPC_CheckChild4Type, MVT::i32, ++/*439772*/ OPC_MoveChild5, ++/*439773*/ OPC_CheckInteger, 31, ++/*439775*/ OPC_CheckType, MVT::i32, ++/*439777*/ OPC_MoveParent, ++/*439778*/ OPC_MoveChild6, ++/*439779*/ OPC_CheckInteger, 31, ++/*439781*/ OPC_CheckType, MVT::i32, ++/*439783*/ OPC_MoveParent, ++/*439784*/ OPC_MoveChild7, ++/*439785*/ OPC_CheckInteger, 31, ++/*439787*/ OPC_CheckType, MVT::i32, ++/*439789*/ OPC_MoveParent, ++/*439790*/ OPC_CheckType, MVT::v8i32, ++/*439792*/ OPC_MoveParent, ++/*439793*/ OPC_MoveParent, ++/*439794*/ OPC_MoveParent, ++/*439795*/ OPC_MoveChild1, ++/*439796*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*439799*/ OPC_CheckChild0Integer, 1, ++/*439801*/ OPC_CheckChild0Type, MVT::i32, ++/*439803*/ OPC_CheckChild1Integer, 1, ++/*439805*/ OPC_CheckChild1Type, MVT::i32, ++/*439807*/ OPC_CheckChild2Integer, 1, ++/*439809*/ OPC_CheckChild2Type, MVT::i32, ++/*439811*/ OPC_CheckChild3Integer, 1, ++/*439813*/ OPC_CheckChild3Type, MVT::i32, ++/*439815*/ OPC_CheckChild4Integer, 1, ++/*439817*/ OPC_CheckChild4Type, MVT::i32, ++/*439819*/ OPC_MoveChild5, ++/*439820*/ OPC_CheckInteger, 1, ++/*439822*/ OPC_CheckType, MVT::i32, ++/*439824*/ OPC_MoveParent, ++/*439825*/ OPC_MoveChild6, ++/*439826*/ OPC_CheckInteger, 1, ++/*439828*/ OPC_CheckType, MVT::i32, ++/*439830*/ OPC_MoveParent, ++/*439831*/ OPC_MoveChild7, ++/*439832*/ OPC_CheckInteger, 1, ++/*439834*/ OPC_CheckType, MVT::i32, ++/*439836*/ OPC_MoveParent, ++/*439837*/ OPC_CheckType, MVT::v8i32, ++/*439839*/ OPC_MoveParent, ++/*439840*/ OPC_CheckType, MVT::v8i32, ++/*439842*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*439844*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$a), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*439852*/ /*Scope*/ 25|128,1/*153*/, /*->440007*/ ++/*439854*/ OPC_MoveChild0, ++/*439855*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*439858*/ OPC_CheckChild0Integer, 1, ++/*439860*/ OPC_CheckChild0Type, MVT::i32, ++/*439862*/ OPC_CheckChild1Integer, 1, ++/*439864*/ OPC_CheckChild1Type, MVT::i32, ++/*439866*/ OPC_CheckChild2Integer, 1, ++/*439868*/ OPC_CheckChild2Type, MVT::i32, ++/*439870*/ OPC_CheckChild3Integer, 1, ++/*439872*/ OPC_CheckChild3Type, MVT::i32, ++/*439874*/ OPC_CheckChild4Integer, 1, ++/*439876*/ OPC_CheckChild4Type, MVT::i32, ++/*439878*/ OPC_MoveChild5, ++/*439879*/ OPC_CheckInteger, 1, ++/*439881*/ OPC_CheckType, MVT::i32, ++/*439883*/ OPC_MoveParent, ++/*439884*/ OPC_MoveChild6, ++/*439885*/ OPC_CheckInteger, 1, ++/*439887*/ OPC_CheckType, MVT::i32, ++/*439889*/ OPC_MoveParent, ++/*439890*/ OPC_MoveChild7, ++/*439891*/ OPC_CheckInteger, 1, ++/*439893*/ OPC_CheckType, MVT::i32, ++/*439895*/ OPC_MoveParent, ++/*439896*/ OPC_MoveParent, ++/*439897*/ OPC_CheckChild1Same, 0, ++/*439899*/ OPC_MoveParent, ++/*439900*/ OPC_CheckChild1Same, 1, ++/*439902*/ OPC_MoveParent, ++/*439903*/ OPC_MoveChild1, ++/*439904*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*439907*/ OPC_CheckChild0Integer, 31, ++/*439909*/ OPC_CheckChild0Type, MVT::i32, ++/*439911*/ OPC_CheckChild1Integer, 31, ++/*439913*/ OPC_CheckChild1Type, MVT::i32, ++/*439915*/ OPC_CheckChild2Integer, 31, ++/*439917*/ OPC_CheckChild2Type, MVT::i32, ++/*439919*/ OPC_CheckChild3Integer, 31, ++/*439921*/ OPC_CheckChild3Type, MVT::i32, ++/*439923*/ OPC_CheckChild4Integer, 31, ++/*439925*/ OPC_CheckChild4Type, MVT::i32, ++/*439927*/ OPC_MoveChild5, ++/*439928*/ OPC_CheckInteger, 31, ++/*439930*/ OPC_CheckType, MVT::i32, ++/*439932*/ OPC_MoveParent, ++/*439933*/ OPC_MoveChild6, ++/*439934*/ OPC_CheckInteger, 31, ++/*439936*/ OPC_CheckType, MVT::i32, ++/*439938*/ OPC_MoveParent, ++/*439939*/ OPC_MoveChild7, ++/*439940*/ OPC_CheckInteger, 31, ++/*439942*/ OPC_CheckType, MVT::i32, ++/*439944*/ OPC_MoveParent, ++/*439945*/ OPC_CheckType, MVT::v8i32, ++/*439947*/ OPC_MoveParent, ++/*439948*/ OPC_MoveParent, ++/*439949*/ OPC_MoveParent, ++/*439950*/ OPC_MoveChild1, ++/*439951*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*439954*/ OPC_CheckChild0Integer, 1, ++/*439956*/ OPC_CheckChild0Type, MVT::i32, ++/*439958*/ OPC_CheckChild1Integer, 1, ++/*439960*/ OPC_CheckChild1Type, MVT::i32, ++/*439962*/ OPC_CheckChild2Integer, 1, ++/*439964*/ OPC_CheckChild2Type, MVT::i32, ++/*439966*/ OPC_CheckChild3Integer, 1, ++/*439968*/ OPC_CheckChild3Type, MVT::i32, ++/*439970*/ OPC_CheckChild4Integer, 1, ++/*439972*/ OPC_CheckChild4Type, MVT::i32, ++/*439974*/ OPC_MoveChild5, ++/*439975*/ OPC_CheckInteger, 1, ++/*439977*/ OPC_CheckType, MVT::i32, ++/*439979*/ OPC_MoveParent, ++/*439980*/ OPC_MoveChild6, ++/*439981*/ OPC_CheckInteger, 1, ++/*439983*/ OPC_CheckType, MVT::i32, ++/*439985*/ OPC_MoveParent, ++/*439986*/ OPC_MoveChild7, ++/*439987*/ OPC_CheckInteger, 1, ++/*439989*/ OPC_CheckType, MVT::i32, ++/*439991*/ OPC_MoveParent, ++/*439992*/ OPC_CheckType, MVT::v8i32, ++/*439994*/ OPC_MoveParent, ++/*439995*/ OPC_CheckType, MVT::v8i32, ++/*439997*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*439999*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$a), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b), LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*440007*/ /*Scope*/ 25|128,1/*153*/, /*->440162*/ ++/*440009*/ OPC_CheckChild0Same, 0, ++/*440011*/ OPC_MoveChild1, ++/*440012*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*440015*/ OPC_CheckChild0Integer, 1, ++/*440017*/ OPC_CheckChild0Type, MVT::i32, ++/*440019*/ OPC_CheckChild1Integer, 1, ++/*440021*/ OPC_CheckChild1Type, MVT::i32, ++/*440023*/ OPC_CheckChild2Integer, 1, ++/*440025*/ OPC_CheckChild2Type, MVT::i32, ++/*440027*/ OPC_CheckChild3Integer, 1, ++/*440029*/ OPC_CheckChild3Type, MVT::i32, ++/*440031*/ OPC_CheckChild4Integer, 1, ++/*440033*/ OPC_CheckChild4Type, MVT::i32, ++/*440035*/ OPC_MoveChild5, ++/*440036*/ OPC_CheckInteger, 1, ++/*440038*/ OPC_CheckType, MVT::i32, ++/*440040*/ OPC_MoveParent, ++/*440041*/ OPC_MoveChild6, ++/*440042*/ OPC_CheckInteger, 1, ++/*440044*/ OPC_CheckType, MVT::i32, ++/*440046*/ OPC_MoveParent, ++/*440047*/ OPC_MoveChild7, ++/*440048*/ OPC_CheckInteger, 1, ++/*440050*/ OPC_CheckType, MVT::i32, ++/*440052*/ OPC_MoveParent, ++/*440053*/ OPC_MoveParent, ++/*440054*/ OPC_MoveParent, ++/*440055*/ OPC_CheckChild1Same, 1, ++/*440057*/ OPC_MoveParent, ++/*440058*/ OPC_MoveChild1, ++/*440059*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*440062*/ OPC_CheckChild0Integer, 31, ++/*440064*/ OPC_CheckChild0Type, MVT::i32, ++/*440066*/ OPC_CheckChild1Integer, 31, ++/*440068*/ OPC_CheckChild1Type, MVT::i32, ++/*440070*/ OPC_CheckChild2Integer, 31, ++/*440072*/ OPC_CheckChild2Type, MVT::i32, ++/*440074*/ OPC_CheckChild3Integer, 31, ++/*440076*/ OPC_CheckChild3Type, MVT::i32, ++/*440078*/ OPC_CheckChild4Integer, 31, ++/*440080*/ OPC_CheckChild4Type, MVT::i32, ++/*440082*/ OPC_MoveChild5, ++/*440083*/ OPC_CheckInteger, 31, ++/*440085*/ OPC_CheckType, MVT::i32, ++/*440087*/ OPC_MoveParent, ++/*440088*/ OPC_MoveChild6, ++/*440089*/ OPC_CheckInteger, 31, ++/*440091*/ OPC_CheckType, MVT::i32, ++/*440093*/ OPC_MoveParent, ++/*440094*/ OPC_MoveChild7, ++/*440095*/ OPC_CheckInteger, 31, ++/*440097*/ OPC_CheckType, MVT::i32, ++/*440099*/ OPC_MoveParent, ++/*440100*/ OPC_CheckType, MVT::v8i32, ++/*440102*/ OPC_MoveParent, ++/*440103*/ OPC_MoveParent, ++/*440104*/ OPC_MoveParent, ++/*440105*/ OPC_MoveChild1, ++/*440106*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*440109*/ OPC_CheckChild0Integer, 1, ++/*440111*/ OPC_CheckChild0Type, MVT::i32, ++/*440113*/ OPC_CheckChild1Integer, 1, ++/*440115*/ OPC_CheckChild1Type, MVT::i32, ++/*440117*/ OPC_CheckChild2Integer, 1, ++/*440119*/ OPC_CheckChild2Type, MVT::i32, ++/*440121*/ OPC_CheckChild3Integer, 1, ++/*440123*/ OPC_CheckChild3Type, MVT::i32, ++/*440125*/ OPC_CheckChild4Integer, 1, ++/*440127*/ OPC_CheckChild4Type, MVT::i32, ++/*440129*/ OPC_MoveChild5, ++/*440130*/ OPC_CheckInteger, 1, ++/*440132*/ OPC_CheckType, MVT::i32, ++/*440134*/ OPC_MoveParent, ++/*440135*/ OPC_MoveChild6, ++/*440136*/ OPC_CheckInteger, 1, ++/*440138*/ OPC_CheckType, MVT::i32, ++/*440140*/ OPC_MoveParent, ++/*440141*/ OPC_MoveChild7, ++/*440142*/ OPC_CheckInteger, 1, ++/*440144*/ OPC_CheckType, MVT::i32, ++/*440146*/ OPC_MoveParent, ++/*440147*/ OPC_CheckType, MVT::v8i32, ++/*440149*/ OPC_MoveParent, ++/*440150*/ OPC_CheckType, MVT::v8i32, ++/*440152*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*440154*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$a), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*440162*/ /*Scope*/ 25|128,1/*153*/, /*->440317*/ ++/*440164*/ OPC_CheckChild0Same, 1, ++/*440166*/ OPC_CheckChild1Same, 0, ++/*440168*/ OPC_MoveParent, ++/*440169*/ OPC_MoveChild1, ++/*440170*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*440173*/ OPC_CheckChild0Integer, 1, ++/*440175*/ OPC_CheckChild0Type, MVT::i32, ++/*440177*/ OPC_CheckChild1Integer, 1, ++/*440179*/ OPC_CheckChild1Type, MVT::i32, ++/*440181*/ OPC_CheckChild2Integer, 1, ++/*440183*/ OPC_CheckChild2Type, MVT::i32, ++/*440185*/ OPC_CheckChild3Integer, 1, ++/*440187*/ OPC_CheckChild3Type, MVT::i32, ++/*440189*/ OPC_CheckChild4Integer, 1, ++/*440191*/ OPC_CheckChild4Type, MVT::i32, ++/*440193*/ OPC_MoveChild5, ++/*440194*/ OPC_CheckInteger, 1, ++/*440196*/ OPC_CheckType, MVT::i32, ++/*440198*/ OPC_MoveParent, ++/*440199*/ OPC_MoveChild6, ++/*440200*/ OPC_CheckInteger, 1, ++/*440202*/ OPC_CheckType, MVT::i32, ++/*440204*/ OPC_MoveParent, ++/*440205*/ OPC_MoveChild7, ++/*440206*/ OPC_CheckInteger, 1, ++/*440208*/ OPC_CheckType, MVT::i32, ++/*440210*/ OPC_MoveParent, ++/*440211*/ OPC_MoveParent, ++/*440212*/ OPC_MoveParent, ++/*440213*/ OPC_MoveChild1, ++/*440214*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*440217*/ OPC_CheckChild0Integer, 31, ++/*440219*/ OPC_CheckChild0Type, MVT::i32, ++/*440221*/ OPC_CheckChild1Integer, 31, ++/*440223*/ OPC_CheckChild1Type, MVT::i32, ++/*440225*/ OPC_CheckChild2Integer, 31, ++/*440227*/ OPC_CheckChild2Type, MVT::i32, ++/*440229*/ OPC_CheckChild3Integer, 31, ++/*440231*/ OPC_CheckChild3Type, MVT::i32, ++/*440233*/ OPC_CheckChild4Integer, 31, ++/*440235*/ OPC_CheckChild4Type, MVT::i32, ++/*440237*/ OPC_MoveChild5, ++/*440238*/ OPC_CheckInteger, 31, ++/*440240*/ OPC_CheckType, MVT::i32, ++/*440242*/ OPC_MoveParent, ++/*440243*/ OPC_MoveChild6, ++/*440244*/ OPC_CheckInteger, 31, ++/*440246*/ OPC_CheckType, MVT::i32, ++/*440248*/ OPC_MoveParent, ++/*440249*/ OPC_MoveChild7, ++/*440250*/ OPC_CheckInteger, 31, ++/*440252*/ OPC_CheckType, MVT::i32, ++/*440254*/ OPC_MoveParent, ++/*440255*/ OPC_CheckType, MVT::v8i32, ++/*440257*/ OPC_MoveParent, ++/*440258*/ OPC_MoveParent, ++/*440259*/ OPC_MoveParent, ++/*440260*/ OPC_MoveChild1, ++/*440261*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*440264*/ OPC_CheckChild0Integer, 1, ++/*440266*/ OPC_CheckChild0Type, MVT::i32, ++/*440268*/ OPC_CheckChild1Integer, 1, ++/*440270*/ OPC_CheckChild1Type, MVT::i32, ++/*440272*/ OPC_CheckChild2Integer, 1, ++/*440274*/ OPC_CheckChild2Type, MVT::i32, ++/*440276*/ OPC_CheckChild3Integer, 1, ++/*440278*/ OPC_CheckChild3Type, MVT::i32, ++/*440280*/ OPC_CheckChild4Integer, 1, ++/*440282*/ OPC_CheckChild4Type, MVT::i32, ++/*440284*/ OPC_MoveChild5, ++/*440285*/ OPC_CheckInteger, 1, ++/*440287*/ OPC_CheckType, MVT::i32, ++/*440289*/ OPC_MoveParent, ++/*440290*/ OPC_MoveChild6, ++/*440291*/ OPC_CheckInteger, 1, ++/*440293*/ OPC_CheckType, MVT::i32, ++/*440295*/ OPC_MoveParent, ++/*440296*/ OPC_MoveChild7, ++/*440297*/ OPC_CheckInteger, 1, ++/*440299*/ OPC_CheckType, MVT::i32, ++/*440301*/ OPC_MoveParent, ++/*440302*/ OPC_CheckType, MVT::v8i32, ++/*440304*/ OPC_MoveParent, ++/*440305*/ OPC_CheckType, MVT::v8i32, ++/*440307*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*440309*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$a), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*440317*/ /*Scope*/ 25|128,1/*153*/, /*->440472*/ ++/*440319*/ OPC_CheckChild0Same, 0, ++/*440321*/ OPC_CheckChild1Same, 1, ++/*440323*/ OPC_MoveParent, ++/*440324*/ OPC_MoveChild1, ++/*440325*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*440328*/ OPC_CheckChild0Integer, 1, ++/*440330*/ OPC_CheckChild0Type, MVT::i32, ++/*440332*/ OPC_CheckChild1Integer, 1, ++/*440334*/ OPC_CheckChild1Type, MVT::i32, ++/*440336*/ OPC_CheckChild2Integer, 1, ++/*440338*/ OPC_CheckChild2Type, MVT::i32, ++/*440340*/ OPC_CheckChild3Integer, 1, ++/*440342*/ OPC_CheckChild3Type, MVT::i32, ++/*440344*/ OPC_CheckChild4Integer, 1, ++/*440346*/ OPC_CheckChild4Type, MVT::i32, ++/*440348*/ OPC_MoveChild5, ++/*440349*/ OPC_CheckInteger, 1, ++/*440351*/ OPC_CheckType, MVT::i32, ++/*440353*/ OPC_MoveParent, ++/*440354*/ OPC_MoveChild6, ++/*440355*/ OPC_CheckInteger, 1, ++/*440357*/ OPC_CheckType, MVT::i32, ++/*440359*/ OPC_MoveParent, ++/*440360*/ OPC_MoveChild7, ++/*440361*/ OPC_CheckInteger, 1, ++/*440363*/ OPC_CheckType, MVT::i32, ++/*440365*/ OPC_MoveParent, ++/*440366*/ OPC_MoveParent, ++/*440367*/ OPC_MoveParent, ++/*440368*/ OPC_MoveChild1, ++/*440369*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*440372*/ OPC_CheckChild0Integer, 31, ++/*440374*/ OPC_CheckChild0Type, MVT::i32, ++/*440376*/ OPC_CheckChild1Integer, 31, ++/*440378*/ OPC_CheckChild1Type, MVT::i32, ++/*440380*/ OPC_CheckChild2Integer, 31, ++/*440382*/ OPC_CheckChild2Type, MVT::i32, ++/*440384*/ OPC_CheckChild3Integer, 31, ++/*440386*/ OPC_CheckChild3Type, MVT::i32, ++/*440388*/ OPC_CheckChild4Integer, 31, ++/*440390*/ OPC_CheckChild4Type, MVT::i32, ++/*440392*/ OPC_MoveChild5, ++/*440393*/ OPC_CheckInteger, 31, ++/*440395*/ OPC_CheckType, MVT::i32, ++/*440397*/ OPC_MoveParent, ++/*440398*/ OPC_MoveChild6, ++/*440399*/ OPC_CheckInteger, 31, ++/*440401*/ OPC_CheckType, MVT::i32, ++/*440403*/ OPC_MoveParent, ++/*440404*/ OPC_MoveChild7, ++/*440405*/ OPC_CheckInteger, 31, ++/*440407*/ OPC_CheckType, MVT::i32, ++/*440409*/ OPC_MoveParent, ++/*440410*/ OPC_CheckType, MVT::v8i32, ++/*440412*/ OPC_MoveParent, ++/*440413*/ OPC_MoveParent, ++/*440414*/ OPC_MoveParent, ++/*440415*/ OPC_MoveChild1, ++/*440416*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*440419*/ OPC_CheckChild0Integer, 1, ++/*440421*/ OPC_CheckChild0Type, MVT::i32, ++/*440423*/ OPC_CheckChild1Integer, 1, ++/*440425*/ OPC_CheckChild1Type, MVT::i32, ++/*440427*/ OPC_CheckChild2Integer, 1, ++/*440429*/ OPC_CheckChild2Type, MVT::i32, ++/*440431*/ OPC_CheckChild3Integer, 1, ++/*440433*/ OPC_CheckChild3Type, MVT::i32, ++/*440435*/ OPC_CheckChild4Integer, 1, ++/*440437*/ OPC_CheckChild4Type, MVT::i32, ++/*440439*/ OPC_MoveChild5, ++/*440440*/ OPC_CheckInteger, 1, ++/*440442*/ OPC_CheckType, MVT::i32, ++/*440444*/ OPC_MoveParent, ++/*440445*/ OPC_MoveChild6, ++/*440446*/ OPC_CheckInteger, 1, ++/*440448*/ OPC_CheckType, MVT::i32, ++/*440450*/ OPC_MoveParent, ++/*440451*/ OPC_MoveChild7, ++/*440452*/ OPC_CheckInteger, 1, ++/*440454*/ OPC_CheckType, MVT::i32, ++/*440456*/ OPC_MoveParent, ++/*440457*/ OPC_CheckType, MVT::v8i32, ++/*440459*/ OPC_MoveParent, ++/*440460*/ OPC_CheckType, MVT::v8i32, ++/*440462*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*440464*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$a), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*440472*/ 0, /*End of Scope*/ ++/*440473*/ /*Scope*/ 58|128,2/*314*/, /*->440789*/ ++/*440475*/ OPC_CheckChild0Same, 0, ++/*440477*/ OPC_MoveChild1, ++/*440478*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*440481*/ OPC_Scope, 23|128,1/*151*/, /*->440635*/ // 2 children in Scope ++/*440484*/ OPC_MoveChild0, ++/*440485*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*440488*/ OPC_CheckChild0Integer, 1, ++/*440490*/ OPC_CheckChild0Type, MVT::i32, ++/*440492*/ OPC_CheckChild1Integer, 1, ++/*440494*/ OPC_CheckChild1Type, MVT::i32, ++/*440496*/ OPC_CheckChild2Integer, 1, ++/*440498*/ OPC_CheckChild2Type, MVT::i32, ++/*440500*/ OPC_CheckChild3Integer, 1, ++/*440502*/ OPC_CheckChild3Type, MVT::i32, ++/*440504*/ OPC_CheckChild4Integer, 1, ++/*440506*/ OPC_CheckChild4Type, MVT::i32, ++/*440508*/ OPC_MoveChild5, ++/*440509*/ OPC_CheckInteger, 1, ++/*440511*/ OPC_CheckType, MVT::i32, ++/*440513*/ OPC_MoveParent, ++/*440514*/ OPC_MoveChild6, ++/*440515*/ OPC_CheckInteger, 1, ++/*440517*/ OPC_CheckType, MVT::i32, ++/*440519*/ OPC_MoveParent, ++/*440520*/ OPC_MoveChild7, ++/*440521*/ OPC_CheckInteger, 1, ++/*440523*/ OPC_CheckType, MVT::i32, ++/*440525*/ OPC_MoveParent, ++/*440526*/ OPC_MoveParent, ++/*440527*/ OPC_CheckChild1Same, 1, ++/*440529*/ OPC_MoveParent, ++/*440530*/ OPC_MoveParent, ++/*440531*/ OPC_MoveChild1, ++/*440532*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*440535*/ OPC_CheckChild0Integer, 31, ++/*440537*/ OPC_CheckChild0Type, MVT::i32, ++/*440539*/ OPC_CheckChild1Integer, 31, ++/*440541*/ OPC_CheckChild1Type, MVT::i32, ++/*440543*/ OPC_CheckChild2Integer, 31, ++/*440545*/ OPC_CheckChild2Type, MVT::i32, ++/*440547*/ OPC_CheckChild3Integer, 31, ++/*440549*/ OPC_CheckChild3Type, MVT::i32, ++/*440551*/ OPC_CheckChild4Integer, 31, ++/*440553*/ OPC_CheckChild4Type, MVT::i32, ++/*440555*/ OPC_MoveChild5, ++/*440556*/ OPC_CheckInteger, 31, ++/*440558*/ OPC_CheckType, MVT::i32, ++/*440560*/ OPC_MoveParent, ++/*440561*/ OPC_MoveChild6, ++/*440562*/ OPC_CheckInteger, 31, ++/*440564*/ OPC_CheckType, MVT::i32, ++/*440566*/ OPC_MoveParent, ++/*440567*/ OPC_MoveChild7, ++/*440568*/ OPC_CheckInteger, 31, ++/*440570*/ OPC_CheckType, MVT::i32, ++/*440572*/ OPC_MoveParent, ++/*440573*/ OPC_CheckType, MVT::v8i32, ++/*440575*/ OPC_MoveParent, ++/*440576*/ OPC_MoveParent, ++/*440577*/ OPC_MoveParent, ++/*440578*/ OPC_MoveChild1, ++/*440579*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*440582*/ OPC_CheckChild0Integer, 1, ++/*440584*/ OPC_CheckChild0Type, MVT::i32, ++/*440586*/ OPC_CheckChild1Integer, 1, ++/*440588*/ OPC_CheckChild1Type, MVT::i32, ++/*440590*/ OPC_CheckChild2Integer, 1, ++/*440592*/ OPC_CheckChild2Type, MVT::i32, ++/*440594*/ OPC_CheckChild3Integer, 1, ++/*440596*/ OPC_CheckChild3Type, MVT::i32, ++/*440598*/ OPC_CheckChild4Integer, 1, ++/*440600*/ OPC_CheckChild4Type, MVT::i32, ++/*440602*/ OPC_MoveChild5, ++/*440603*/ OPC_CheckInteger, 1, ++/*440605*/ OPC_CheckType, MVT::i32, ++/*440607*/ OPC_MoveParent, ++/*440608*/ OPC_MoveChild6, ++/*440609*/ OPC_CheckInteger, 1, ++/*440611*/ OPC_CheckType, MVT::i32, ++/*440613*/ OPC_MoveParent, ++/*440614*/ OPC_MoveChild7, ++/*440615*/ OPC_CheckInteger, 1, ++/*440617*/ OPC_CheckType, MVT::i32, ++/*440619*/ OPC_MoveParent, ++/*440620*/ OPC_CheckType, MVT::v8i32, ++/*440622*/ OPC_MoveParent, ++/*440623*/ OPC_CheckType, MVT::v8i32, ++/*440625*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*440627*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$a), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*440635*/ /*Scope*/ 23|128,1/*151*/, /*->440788*/ ++/*440637*/ OPC_CheckChild0Same, 1, ++/*440639*/ OPC_MoveChild1, ++/*440640*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*440643*/ OPC_CheckChild0Integer, 1, ++/*440645*/ OPC_CheckChild0Type, MVT::i32, ++/*440647*/ OPC_CheckChild1Integer, 1, ++/*440649*/ OPC_CheckChild1Type, MVT::i32, ++/*440651*/ OPC_CheckChild2Integer, 1, ++/*440653*/ OPC_CheckChild2Type, MVT::i32, ++/*440655*/ OPC_CheckChild3Integer, 1, ++/*440657*/ OPC_CheckChild3Type, MVT::i32, ++/*440659*/ OPC_CheckChild4Integer, 1, ++/*440661*/ OPC_CheckChild4Type, MVT::i32, ++/*440663*/ OPC_MoveChild5, ++/*440664*/ OPC_CheckInteger, 1, ++/*440666*/ OPC_CheckType, MVT::i32, ++/*440668*/ OPC_MoveParent, ++/*440669*/ OPC_MoveChild6, ++/*440670*/ OPC_CheckInteger, 1, ++/*440672*/ OPC_CheckType, MVT::i32, ++/*440674*/ OPC_MoveParent, ++/*440675*/ OPC_MoveChild7, ++/*440676*/ OPC_CheckInteger, 1, ++/*440678*/ OPC_CheckType, MVT::i32, ++/*440680*/ OPC_MoveParent, ++/*440681*/ OPC_MoveParent, ++/*440682*/ OPC_MoveParent, ++/*440683*/ OPC_MoveParent, ++/*440684*/ OPC_MoveChild1, ++/*440685*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*440688*/ OPC_CheckChild0Integer, 31, ++/*440690*/ OPC_CheckChild0Type, MVT::i32, ++/*440692*/ OPC_CheckChild1Integer, 31, ++/*440694*/ OPC_CheckChild1Type, MVT::i32, ++/*440696*/ OPC_CheckChild2Integer, 31, ++/*440698*/ OPC_CheckChild2Type, MVT::i32, ++/*440700*/ OPC_CheckChild3Integer, 31, ++/*440702*/ OPC_CheckChild3Type, MVT::i32, ++/*440704*/ OPC_CheckChild4Integer, 31, ++/*440706*/ OPC_CheckChild4Type, MVT::i32, ++/*440708*/ OPC_MoveChild5, ++/*440709*/ OPC_CheckInteger, 31, ++/*440711*/ OPC_CheckType, MVT::i32, ++/*440713*/ OPC_MoveParent, ++/*440714*/ OPC_MoveChild6, ++/*440715*/ OPC_CheckInteger, 31, ++/*440717*/ OPC_CheckType, MVT::i32, ++/*440719*/ OPC_MoveParent, ++/*440720*/ OPC_MoveChild7, ++/*440721*/ OPC_CheckInteger, 31, ++/*440723*/ OPC_CheckType, MVT::i32, ++/*440725*/ OPC_MoveParent, ++/*440726*/ OPC_CheckType, MVT::v8i32, ++/*440728*/ OPC_MoveParent, ++/*440729*/ OPC_MoveParent, ++/*440730*/ OPC_MoveParent, ++/*440731*/ OPC_MoveChild1, ++/*440732*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*440735*/ OPC_CheckChild0Integer, 1, ++/*440737*/ OPC_CheckChild0Type, MVT::i32, ++/*440739*/ OPC_CheckChild1Integer, 1, ++/*440741*/ OPC_CheckChild1Type, MVT::i32, ++/*440743*/ OPC_CheckChild2Integer, 1, ++/*440745*/ OPC_CheckChild2Type, MVT::i32, ++/*440747*/ OPC_CheckChild3Integer, 1, ++/*440749*/ OPC_CheckChild3Type, MVT::i32, ++/*440751*/ OPC_CheckChild4Integer, 1, ++/*440753*/ OPC_CheckChild4Type, MVT::i32, ++/*440755*/ OPC_MoveChild5, ++/*440756*/ OPC_CheckInteger, 1, ++/*440758*/ OPC_CheckType, MVT::i32, ++/*440760*/ OPC_MoveParent, ++/*440761*/ OPC_MoveChild6, ++/*440762*/ OPC_CheckInteger, 1, ++/*440764*/ OPC_CheckType, MVT::i32, ++/*440766*/ OPC_MoveParent, ++/*440767*/ OPC_MoveChild7, ++/*440768*/ OPC_CheckInteger, 1, ++/*440770*/ OPC_CheckType, MVT::i32, ++/*440772*/ OPC_MoveParent, ++/*440773*/ OPC_CheckType, MVT::v8i32, ++/*440775*/ OPC_MoveParent, ++/*440776*/ OPC_CheckType, MVT::v8i32, ++/*440778*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*440780*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$a), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*440788*/ 0, /*End of Scope*/ ++/*440789*/ /*Scope*/ 58|128,2/*314*/, /*->441105*/ ++/*440791*/ OPC_CheckChild0Same, 1, ++/*440793*/ OPC_MoveChild1, ++/*440794*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*440797*/ OPC_Scope, 23|128,1/*151*/, /*->440951*/ // 2 children in Scope ++/*440800*/ OPC_MoveChild0, ++/*440801*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*440804*/ OPC_CheckChild0Integer, 1, ++/*440806*/ OPC_CheckChild0Type, MVT::i32, ++/*440808*/ OPC_CheckChild1Integer, 1, ++/*440810*/ OPC_CheckChild1Type, MVT::i32, ++/*440812*/ OPC_CheckChild2Integer, 1, ++/*440814*/ OPC_CheckChild2Type, MVT::i32, ++/*440816*/ OPC_CheckChild3Integer, 1, ++/*440818*/ OPC_CheckChild3Type, MVT::i32, ++/*440820*/ OPC_CheckChild4Integer, 1, ++/*440822*/ OPC_CheckChild4Type, MVT::i32, ++/*440824*/ OPC_MoveChild5, ++/*440825*/ OPC_CheckInteger, 1, ++/*440827*/ OPC_CheckType, MVT::i32, ++/*440829*/ OPC_MoveParent, ++/*440830*/ OPC_MoveChild6, ++/*440831*/ OPC_CheckInteger, 1, ++/*440833*/ OPC_CheckType, MVT::i32, ++/*440835*/ OPC_MoveParent, ++/*440836*/ OPC_MoveChild7, ++/*440837*/ OPC_CheckInteger, 1, ++/*440839*/ OPC_CheckType, MVT::i32, ++/*440841*/ OPC_MoveParent, ++/*440842*/ OPC_MoveParent, ++/*440843*/ OPC_CheckChild1Same, 0, ++/*440845*/ OPC_MoveParent, ++/*440846*/ OPC_MoveParent, ++/*440847*/ OPC_MoveChild1, ++/*440848*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*440851*/ OPC_CheckChild0Integer, 31, ++/*440853*/ OPC_CheckChild0Type, MVT::i32, ++/*440855*/ OPC_CheckChild1Integer, 31, ++/*440857*/ OPC_CheckChild1Type, MVT::i32, ++/*440859*/ OPC_CheckChild2Integer, 31, ++/*440861*/ OPC_CheckChild2Type, MVT::i32, ++/*440863*/ OPC_CheckChild3Integer, 31, ++/*440865*/ OPC_CheckChild3Type, MVT::i32, ++/*440867*/ OPC_CheckChild4Integer, 31, ++/*440869*/ OPC_CheckChild4Type, MVT::i32, ++/*440871*/ OPC_MoveChild5, ++/*440872*/ OPC_CheckInteger, 31, ++/*440874*/ OPC_CheckType, MVT::i32, ++/*440876*/ OPC_MoveParent, ++/*440877*/ OPC_MoveChild6, ++/*440878*/ OPC_CheckInteger, 31, ++/*440880*/ OPC_CheckType, MVT::i32, ++/*440882*/ OPC_MoveParent, ++/*440883*/ OPC_MoveChild7, ++/*440884*/ OPC_CheckInteger, 31, ++/*440886*/ OPC_CheckType, MVT::i32, ++/*440888*/ OPC_MoveParent, ++/*440889*/ OPC_CheckType, MVT::v8i32, ++/*440891*/ OPC_MoveParent, ++/*440892*/ OPC_MoveParent, ++/*440893*/ OPC_MoveParent, ++/*440894*/ OPC_MoveChild1, ++/*440895*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*440898*/ OPC_CheckChild0Integer, 1, ++/*440900*/ OPC_CheckChild0Type, MVT::i32, ++/*440902*/ OPC_CheckChild1Integer, 1, ++/*440904*/ OPC_CheckChild1Type, MVT::i32, ++/*440906*/ OPC_CheckChild2Integer, 1, ++/*440908*/ OPC_CheckChild2Type, MVT::i32, ++/*440910*/ OPC_CheckChild3Integer, 1, ++/*440912*/ OPC_CheckChild3Type, MVT::i32, ++/*440914*/ OPC_CheckChild4Integer, 1, ++/*440916*/ OPC_CheckChild4Type, MVT::i32, ++/*440918*/ OPC_MoveChild5, ++/*440919*/ OPC_CheckInteger, 1, ++/*440921*/ OPC_CheckType, MVT::i32, ++/*440923*/ OPC_MoveParent, ++/*440924*/ OPC_MoveChild6, ++/*440925*/ OPC_CheckInteger, 1, ++/*440927*/ OPC_CheckType, MVT::i32, ++/*440929*/ OPC_MoveParent, ++/*440930*/ OPC_MoveChild7, ++/*440931*/ OPC_CheckInteger, 1, ++/*440933*/ OPC_CheckType, MVT::i32, ++/*440935*/ OPC_MoveParent, ++/*440936*/ OPC_CheckType, MVT::v8i32, ++/*440938*/ OPC_MoveParent, ++/*440939*/ OPC_CheckType, MVT::v8i32, ++/*440941*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*440943*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$a), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*440951*/ /*Scope*/ 23|128,1/*151*/, /*->441104*/ ++/*440953*/ OPC_CheckChild0Same, 0, ++/*440955*/ OPC_MoveChild1, ++/*440956*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*440959*/ OPC_CheckChild0Integer, 1, ++/*440961*/ OPC_CheckChild0Type, MVT::i32, ++/*440963*/ OPC_CheckChild1Integer, 1, ++/*440965*/ OPC_CheckChild1Type, MVT::i32, ++/*440967*/ OPC_CheckChild2Integer, 1, ++/*440969*/ OPC_CheckChild2Type, MVT::i32, ++/*440971*/ OPC_CheckChild3Integer, 1, ++/*440973*/ OPC_CheckChild3Type, MVT::i32, ++/*440975*/ OPC_CheckChild4Integer, 1, ++/*440977*/ OPC_CheckChild4Type, MVT::i32, ++/*440979*/ OPC_MoveChild5, ++/*440980*/ OPC_CheckInteger, 1, ++/*440982*/ OPC_CheckType, MVT::i32, ++/*440984*/ OPC_MoveParent, ++/*440985*/ OPC_MoveChild6, ++/*440986*/ OPC_CheckInteger, 1, ++/*440988*/ OPC_CheckType, MVT::i32, ++/*440990*/ OPC_MoveParent, ++/*440991*/ OPC_MoveChild7, ++/*440992*/ OPC_CheckInteger, 1, ++/*440994*/ OPC_CheckType, MVT::i32, ++/*440996*/ OPC_MoveParent, ++/*440997*/ OPC_MoveParent, ++/*440998*/ OPC_MoveParent, ++/*440999*/ OPC_MoveParent, ++/*441000*/ OPC_MoveChild1, ++/*441001*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*441004*/ OPC_CheckChild0Integer, 31, ++/*441006*/ OPC_CheckChild0Type, MVT::i32, ++/*441008*/ OPC_CheckChild1Integer, 31, ++/*441010*/ OPC_CheckChild1Type, MVT::i32, ++/*441012*/ OPC_CheckChild2Integer, 31, ++/*441014*/ OPC_CheckChild2Type, MVT::i32, ++/*441016*/ OPC_CheckChild3Integer, 31, ++/*441018*/ OPC_CheckChild3Type, MVT::i32, ++/*441020*/ OPC_CheckChild4Integer, 31, ++/*441022*/ OPC_CheckChild4Type, MVT::i32, ++/*441024*/ OPC_MoveChild5, ++/*441025*/ OPC_CheckInteger, 31, ++/*441027*/ OPC_CheckType, MVT::i32, ++/*441029*/ OPC_MoveParent, ++/*441030*/ OPC_MoveChild6, ++/*441031*/ OPC_CheckInteger, 31, ++/*441033*/ OPC_CheckType, MVT::i32, ++/*441035*/ OPC_MoveParent, ++/*441036*/ OPC_MoveChild7, ++/*441037*/ OPC_CheckInteger, 31, ++/*441039*/ OPC_CheckType, MVT::i32, ++/*441041*/ OPC_MoveParent, ++/*441042*/ OPC_CheckType, MVT::v8i32, ++/*441044*/ OPC_MoveParent, ++/*441045*/ OPC_MoveParent, ++/*441046*/ OPC_MoveParent, ++/*441047*/ OPC_MoveChild1, ++/*441048*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*441051*/ OPC_CheckChild0Integer, 1, ++/*441053*/ OPC_CheckChild0Type, MVT::i32, ++/*441055*/ OPC_CheckChild1Integer, 1, ++/*441057*/ OPC_CheckChild1Type, MVT::i32, ++/*441059*/ OPC_CheckChild2Integer, 1, ++/*441061*/ OPC_CheckChild2Type, MVT::i32, ++/*441063*/ OPC_CheckChild3Integer, 1, ++/*441065*/ OPC_CheckChild3Type, MVT::i32, ++/*441067*/ OPC_CheckChild4Integer, 1, ++/*441069*/ OPC_CheckChild4Type, MVT::i32, ++/*441071*/ OPC_MoveChild5, ++/*441072*/ OPC_CheckInteger, 1, ++/*441074*/ OPC_CheckType, MVT::i32, ++/*441076*/ OPC_MoveParent, ++/*441077*/ OPC_MoveChild6, ++/*441078*/ OPC_CheckInteger, 1, ++/*441080*/ OPC_CheckType, MVT::i32, ++/*441082*/ OPC_MoveParent, ++/*441083*/ OPC_MoveChild7, ++/*441084*/ OPC_CheckInteger, 1, ++/*441086*/ OPC_CheckType, MVT::i32, ++/*441088*/ OPC_MoveParent, ++/*441089*/ OPC_CheckType, MVT::v8i32, ++/*441091*/ OPC_MoveParent, ++/*441092*/ OPC_CheckType, MVT::v8i32, ++/*441094*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*441096*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$a), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*441104*/ 0, /*End of Scope*/ ++/*441105*/ /*Scope*/ 15|128,2/*271*/, /*->441378*/ ++/*441107*/ OPC_MoveChild0, ++/*441108*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*441111*/ OPC_CheckChild0Integer, 1, ++/*441113*/ OPC_CheckChild0Type, MVT::i32, ++/*441115*/ OPC_CheckChild1Integer, 1, ++/*441117*/ OPC_CheckChild1Type, MVT::i32, ++/*441119*/ OPC_CheckChild2Integer, 1, ++/*441121*/ OPC_CheckChild2Type, MVT::i32, ++/*441123*/ OPC_CheckChild3Integer, 1, ++/*441125*/ OPC_CheckChild3Type, MVT::i32, ++/*441127*/ OPC_CheckChild4Integer, 1, ++/*441129*/ OPC_CheckChild4Type, MVT::i32, ++/*441131*/ OPC_MoveChild5, ++/*441132*/ OPC_CheckInteger, 1, ++/*441134*/ OPC_CheckType, MVT::i32, ++/*441136*/ OPC_MoveParent, ++/*441137*/ OPC_MoveChild6, ++/*441138*/ OPC_CheckInteger, 1, ++/*441140*/ OPC_CheckType, MVT::i32, ++/*441142*/ OPC_MoveParent, ++/*441143*/ OPC_MoveChild7, ++/*441144*/ OPC_CheckInteger, 1, ++/*441146*/ OPC_CheckType, MVT::i32, ++/*441148*/ OPC_MoveParent, ++/*441149*/ OPC_MoveParent, ++/*441150*/ OPC_MoveChild1, ++/*441151*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*441154*/ OPC_Scope, 110, /*->441266*/ // 2 children in Scope ++/*441156*/ OPC_CheckChild0Same, 1, ++/*441158*/ OPC_CheckChild1Same, 0, ++/*441160*/ OPC_MoveParent, ++/*441161*/ OPC_MoveParent, ++/*441162*/ OPC_MoveChild1, ++/*441163*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*441166*/ OPC_CheckChild0Integer, 31, ++/*441168*/ OPC_CheckChild0Type, MVT::i32, ++/*441170*/ OPC_CheckChild1Integer, 31, ++/*441172*/ OPC_CheckChild1Type, MVT::i32, ++/*441174*/ OPC_CheckChild2Integer, 31, ++/*441176*/ OPC_CheckChild2Type, MVT::i32, ++/*441178*/ OPC_CheckChild3Integer, 31, ++/*441180*/ OPC_CheckChild3Type, MVT::i32, ++/*441182*/ OPC_CheckChild4Integer, 31, ++/*441184*/ OPC_CheckChild4Type, MVT::i32, ++/*441186*/ OPC_MoveChild5, ++/*441187*/ OPC_CheckInteger, 31, ++/*441189*/ OPC_CheckType, MVT::i32, ++/*441191*/ OPC_MoveParent, ++/*441192*/ OPC_MoveChild6, ++/*441193*/ OPC_CheckInteger, 31, ++/*441195*/ OPC_CheckType, MVT::i32, ++/*441197*/ OPC_MoveParent, ++/*441198*/ OPC_MoveChild7, ++/*441199*/ OPC_CheckInteger, 31, ++/*441201*/ OPC_CheckType, MVT::i32, ++/*441203*/ OPC_MoveParent, ++/*441204*/ OPC_CheckType, MVT::v8i32, ++/*441206*/ OPC_MoveParent, ++/*441207*/ OPC_MoveParent, ++/*441208*/ OPC_MoveParent, ++/*441209*/ OPC_MoveChild1, ++/*441210*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*441213*/ OPC_CheckChild0Integer, 1, ++/*441215*/ OPC_CheckChild0Type, MVT::i32, ++/*441217*/ OPC_CheckChild1Integer, 1, ++/*441219*/ OPC_CheckChild1Type, MVT::i32, ++/*441221*/ OPC_CheckChild2Integer, 1, ++/*441223*/ OPC_CheckChild2Type, MVT::i32, ++/*441225*/ OPC_CheckChild3Integer, 1, ++/*441227*/ OPC_CheckChild3Type, MVT::i32, ++/*441229*/ OPC_CheckChild4Integer, 1, ++/*441231*/ OPC_CheckChild4Type, MVT::i32, ++/*441233*/ OPC_MoveChild5, ++/*441234*/ OPC_CheckInteger, 1, ++/*441236*/ OPC_CheckType, MVT::i32, ++/*441238*/ OPC_MoveParent, ++/*441239*/ OPC_MoveChild6, ++/*441240*/ OPC_CheckInteger, 1, ++/*441242*/ OPC_CheckType, MVT::i32, ++/*441244*/ OPC_MoveParent, ++/*441245*/ OPC_MoveChild7, ++/*441246*/ OPC_CheckInteger, 1, ++/*441248*/ OPC_CheckType, MVT::i32, ++/*441250*/ OPC_MoveParent, ++/*441251*/ OPC_CheckType, MVT::v8i32, ++/*441253*/ OPC_MoveParent, ++/*441254*/ OPC_CheckType, MVT::v8i32, ++/*441256*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*441258*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$a), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*441266*/ /*Scope*/ 110, /*->441377*/ ++/*441267*/ OPC_CheckChild0Same, 0, ++/*441269*/ OPC_CheckChild1Same, 1, ++/*441271*/ OPC_MoveParent, ++/*441272*/ OPC_MoveParent, ++/*441273*/ OPC_MoveChild1, ++/*441274*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*441277*/ OPC_CheckChild0Integer, 31, ++/*441279*/ OPC_CheckChild0Type, MVT::i32, ++/*441281*/ OPC_CheckChild1Integer, 31, ++/*441283*/ OPC_CheckChild1Type, MVT::i32, ++/*441285*/ OPC_CheckChild2Integer, 31, ++/*441287*/ OPC_CheckChild2Type, MVT::i32, ++/*441289*/ OPC_CheckChild3Integer, 31, ++/*441291*/ OPC_CheckChild3Type, MVT::i32, ++/*441293*/ OPC_CheckChild4Integer, 31, ++/*441295*/ OPC_CheckChild4Type, MVT::i32, ++/*441297*/ OPC_MoveChild5, ++/*441298*/ OPC_CheckInteger, 31, ++/*441300*/ OPC_CheckType, MVT::i32, ++/*441302*/ OPC_MoveParent, ++/*441303*/ OPC_MoveChild6, ++/*441304*/ OPC_CheckInteger, 31, ++/*441306*/ OPC_CheckType, MVT::i32, ++/*441308*/ OPC_MoveParent, ++/*441309*/ OPC_MoveChild7, ++/*441310*/ OPC_CheckInteger, 31, ++/*441312*/ OPC_CheckType, MVT::i32, ++/*441314*/ OPC_MoveParent, ++/*441315*/ OPC_CheckType, MVT::v8i32, ++/*441317*/ OPC_MoveParent, ++/*441318*/ OPC_MoveParent, ++/*441319*/ OPC_MoveParent, ++/*441320*/ OPC_MoveChild1, ++/*441321*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*441324*/ OPC_CheckChild0Integer, 1, ++/*441326*/ OPC_CheckChild0Type, MVT::i32, ++/*441328*/ OPC_CheckChild1Integer, 1, ++/*441330*/ OPC_CheckChild1Type, MVT::i32, ++/*441332*/ OPC_CheckChild2Integer, 1, ++/*441334*/ OPC_CheckChild2Type, MVT::i32, ++/*441336*/ OPC_CheckChild3Integer, 1, ++/*441338*/ OPC_CheckChild3Type, MVT::i32, ++/*441340*/ OPC_CheckChild4Integer, 1, ++/*441342*/ OPC_CheckChild4Type, MVT::i32, ++/*441344*/ OPC_MoveChild5, ++/*441345*/ OPC_CheckInteger, 1, ++/*441347*/ OPC_CheckType, MVT::i32, ++/*441349*/ OPC_MoveParent, ++/*441350*/ OPC_MoveChild6, ++/*441351*/ OPC_CheckInteger, 1, ++/*441353*/ OPC_CheckType, MVT::i32, ++/*441355*/ OPC_MoveParent, ++/*441356*/ OPC_MoveChild7, ++/*441357*/ OPC_CheckInteger, 1, ++/*441359*/ OPC_CheckType, MVT::i32, ++/*441361*/ OPC_MoveParent, ++/*441362*/ OPC_CheckType, MVT::v8i32, ++/*441364*/ OPC_MoveParent, ++/*441365*/ OPC_CheckType, MVT::v8i32, ++/*441367*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*441369*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$a), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*441377*/ 0, /*End of Scope*/ ++/*441378*/ 0, /*End of Scope*/ ++/*441379*/ /*Scope*/ 31|128,29/*3743*/, /*->445124*/ ++/*441381*/ OPC_RecordChild1, // #1 = $b ++/*441382*/ OPC_MoveParent, ++/*441383*/ OPC_MoveChild1, ++/*441384*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*441387*/ OPC_CheckChild0Integer, 1, ++/*441389*/ OPC_CheckChild0Type, MVT::i32, ++/*441391*/ OPC_CheckChild1Integer, 1, ++/*441393*/ OPC_CheckChild1Type, MVT::i32, ++/*441395*/ OPC_CheckChild2Integer, 1, ++/*441397*/ OPC_CheckChild2Type, MVT::i32, ++/*441399*/ OPC_CheckChild3Integer, 1, ++/*441401*/ OPC_CheckChild3Type, MVT::i32, ++/*441403*/ OPC_CheckChild4Integer, 1, ++/*441405*/ OPC_CheckChild4Type, MVT::i32, ++/*441407*/ OPC_MoveChild5, ++/*441408*/ OPC_CheckInteger, 1, ++/*441410*/ OPC_CheckType, MVT::i32, ++/*441412*/ OPC_MoveParent, ++/*441413*/ OPC_MoveChild6, ++/*441414*/ OPC_CheckInteger, 1, ++/*441416*/ OPC_CheckType, MVT::i32, ++/*441418*/ OPC_MoveParent, ++/*441419*/ OPC_MoveChild7, ++/*441420*/ OPC_CheckInteger, 1, ++/*441422*/ OPC_CheckType, MVT::i32, ++/*441424*/ OPC_MoveParent, ++/*441425*/ OPC_MoveParent, ++/*441426*/ OPC_MoveParent, ++/*441427*/ OPC_MoveChild1, ++/*441428*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*441431*/ OPC_MoveChild0, ++/*441432*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*441435*/ OPC_Scope, 40|128,7/*936*/, /*->442374*/ // 7 children in Scope ++/*441438*/ OPC_MoveChild0, ++/*441439*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*441442*/ OPC_Scope, 25|128,1/*153*/, /*->441598*/ // 6 children in Scope ++/*441445*/ OPC_MoveChild0, ++/*441446*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*441449*/ OPC_CheckChild0Integer, 1, ++/*441451*/ OPC_CheckChild0Type, MVT::i32, ++/*441453*/ OPC_CheckChild1Integer, 1, ++/*441455*/ OPC_CheckChild1Type, MVT::i32, ++/*441457*/ OPC_CheckChild2Integer, 1, ++/*441459*/ OPC_CheckChild2Type, MVT::i32, ++/*441461*/ OPC_CheckChild3Integer, 1, ++/*441463*/ OPC_CheckChild3Type, MVT::i32, ++/*441465*/ OPC_CheckChild4Integer, 1, ++/*441467*/ OPC_CheckChild4Type, MVT::i32, ++/*441469*/ OPC_MoveChild5, ++/*441470*/ OPC_CheckInteger, 1, ++/*441472*/ OPC_CheckType, MVT::i32, ++/*441474*/ OPC_MoveParent, ++/*441475*/ OPC_MoveChild6, ++/*441476*/ OPC_CheckInteger, 1, ++/*441478*/ OPC_CheckType, MVT::i32, ++/*441480*/ OPC_MoveParent, ++/*441481*/ OPC_MoveChild7, ++/*441482*/ OPC_CheckInteger, 1, ++/*441484*/ OPC_CheckType, MVT::i32, ++/*441486*/ OPC_MoveParent, ++/*441487*/ OPC_MoveParent, ++/*441488*/ OPC_CheckChild1Same, 0, ++/*441490*/ OPC_MoveParent, ++/*441491*/ OPC_CheckChild1Same, 1, ++/*441493*/ OPC_MoveParent, ++/*441494*/ OPC_MoveChild1, ++/*441495*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*441498*/ OPC_CheckChild0Integer, 31, ++/*441500*/ OPC_CheckChild0Type, MVT::i32, ++/*441502*/ OPC_CheckChild1Integer, 31, ++/*441504*/ OPC_CheckChild1Type, MVT::i32, ++/*441506*/ OPC_CheckChild2Integer, 31, ++/*441508*/ OPC_CheckChild2Type, MVT::i32, ++/*441510*/ OPC_CheckChild3Integer, 31, ++/*441512*/ OPC_CheckChild3Type, MVT::i32, ++/*441514*/ OPC_CheckChild4Integer, 31, ++/*441516*/ OPC_CheckChild4Type, MVT::i32, ++/*441518*/ OPC_MoveChild5, ++/*441519*/ OPC_CheckInteger, 31, ++/*441521*/ OPC_CheckType, MVT::i32, ++/*441523*/ OPC_MoveParent, ++/*441524*/ OPC_MoveChild6, ++/*441525*/ OPC_CheckInteger, 31, ++/*441527*/ OPC_CheckType, MVT::i32, ++/*441529*/ OPC_MoveParent, ++/*441530*/ OPC_MoveChild7, ++/*441531*/ OPC_CheckInteger, 31, ++/*441533*/ OPC_CheckType, MVT::i32, ++/*441535*/ OPC_MoveParent, ++/*441536*/ OPC_CheckType, MVT::v8i32, ++/*441538*/ OPC_MoveParent, ++/*441539*/ OPC_MoveParent, ++/*441540*/ OPC_MoveParent, ++/*441541*/ OPC_MoveChild1, ++/*441542*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*441545*/ OPC_CheckChild0Integer, 1, ++/*441547*/ OPC_CheckChild0Type, MVT::i32, ++/*441549*/ OPC_CheckChild1Integer, 1, ++/*441551*/ OPC_CheckChild1Type, MVT::i32, ++/*441553*/ OPC_CheckChild2Integer, 1, ++/*441555*/ OPC_CheckChild2Type, MVT::i32, ++/*441557*/ OPC_CheckChild3Integer, 1, ++/*441559*/ OPC_CheckChild3Type, MVT::i32, ++/*441561*/ OPC_CheckChild4Integer, 1, ++/*441563*/ OPC_CheckChild4Type, MVT::i32, ++/*441565*/ OPC_MoveChild5, ++/*441566*/ OPC_CheckInteger, 1, ++/*441568*/ OPC_CheckType, MVT::i32, ++/*441570*/ OPC_MoveParent, ++/*441571*/ OPC_MoveChild6, ++/*441572*/ OPC_CheckInteger, 1, ++/*441574*/ OPC_CheckType, MVT::i32, ++/*441576*/ OPC_MoveParent, ++/*441577*/ OPC_MoveChild7, ++/*441578*/ OPC_CheckInteger, 1, ++/*441580*/ OPC_CheckType, MVT::i32, ++/*441582*/ OPC_MoveParent, ++/*441583*/ OPC_CheckType, MVT::v8i32, ++/*441585*/ OPC_MoveParent, ++/*441586*/ OPC_CheckType, MVT::v8i32, ++/*441588*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*441590*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a), LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*441598*/ /*Scope*/ 25|128,1/*153*/, /*->441753*/ ++/*441600*/ OPC_CheckChild0Same, 0, ++/*441602*/ OPC_MoveChild1, ++/*441603*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*441606*/ OPC_CheckChild0Integer, 1, ++/*441608*/ OPC_CheckChild0Type, MVT::i32, ++/*441610*/ OPC_CheckChild1Integer, 1, ++/*441612*/ OPC_CheckChild1Type, MVT::i32, ++/*441614*/ OPC_CheckChild2Integer, 1, ++/*441616*/ OPC_CheckChild2Type, MVT::i32, ++/*441618*/ OPC_CheckChild3Integer, 1, ++/*441620*/ OPC_CheckChild3Type, MVT::i32, ++/*441622*/ OPC_CheckChild4Integer, 1, ++/*441624*/ OPC_CheckChild4Type, MVT::i32, ++/*441626*/ OPC_MoveChild5, ++/*441627*/ OPC_CheckInteger, 1, ++/*441629*/ OPC_CheckType, MVT::i32, ++/*441631*/ OPC_MoveParent, ++/*441632*/ OPC_MoveChild6, ++/*441633*/ OPC_CheckInteger, 1, ++/*441635*/ OPC_CheckType, MVT::i32, ++/*441637*/ OPC_MoveParent, ++/*441638*/ OPC_MoveChild7, ++/*441639*/ OPC_CheckInteger, 1, ++/*441641*/ OPC_CheckType, MVT::i32, ++/*441643*/ OPC_MoveParent, ++/*441644*/ OPC_MoveParent, ++/*441645*/ OPC_MoveParent, ++/*441646*/ OPC_CheckChild1Same, 1, ++/*441648*/ OPC_MoveParent, ++/*441649*/ OPC_MoveChild1, ++/*441650*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*441653*/ OPC_CheckChild0Integer, 31, ++/*441655*/ OPC_CheckChild0Type, MVT::i32, ++/*441657*/ OPC_CheckChild1Integer, 31, ++/*441659*/ OPC_CheckChild1Type, MVT::i32, ++/*441661*/ OPC_CheckChild2Integer, 31, ++/*441663*/ OPC_CheckChild2Type, MVT::i32, ++/*441665*/ OPC_CheckChild3Integer, 31, ++/*441667*/ OPC_CheckChild3Type, MVT::i32, ++/*441669*/ OPC_CheckChild4Integer, 31, ++/*441671*/ OPC_CheckChild4Type, MVT::i32, ++/*441673*/ OPC_MoveChild5, ++/*441674*/ OPC_CheckInteger, 31, ++/*441676*/ OPC_CheckType, MVT::i32, ++/*441678*/ OPC_MoveParent, ++/*441679*/ OPC_MoveChild6, ++/*441680*/ OPC_CheckInteger, 31, ++/*441682*/ OPC_CheckType, MVT::i32, ++/*441684*/ OPC_MoveParent, ++/*441685*/ OPC_MoveChild7, ++/*441686*/ OPC_CheckInteger, 31, ++/*441688*/ OPC_CheckType, MVT::i32, ++/*441690*/ OPC_MoveParent, ++/*441691*/ OPC_CheckType, MVT::v8i32, ++/*441693*/ OPC_MoveParent, ++/*441694*/ OPC_MoveParent, ++/*441695*/ OPC_MoveParent, ++/*441696*/ OPC_MoveChild1, ++/*441697*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*441700*/ OPC_CheckChild0Integer, 1, ++/*441702*/ OPC_CheckChild0Type, MVT::i32, ++/*441704*/ OPC_CheckChild1Integer, 1, ++/*441706*/ OPC_CheckChild1Type, MVT::i32, ++/*441708*/ OPC_CheckChild2Integer, 1, ++/*441710*/ OPC_CheckChild2Type, MVT::i32, ++/*441712*/ OPC_CheckChild3Integer, 1, ++/*441714*/ OPC_CheckChild3Type, MVT::i32, ++/*441716*/ OPC_CheckChild4Integer, 1, ++/*441718*/ OPC_CheckChild4Type, MVT::i32, ++/*441720*/ OPC_MoveChild5, ++/*441721*/ OPC_CheckInteger, 1, ++/*441723*/ OPC_CheckType, MVT::i32, ++/*441725*/ OPC_MoveParent, ++/*441726*/ OPC_MoveChild6, ++/*441727*/ OPC_CheckInteger, 1, ++/*441729*/ OPC_CheckType, MVT::i32, ++/*441731*/ OPC_MoveParent, ++/*441732*/ OPC_MoveChild7, ++/*441733*/ OPC_CheckInteger, 1, ++/*441735*/ OPC_CheckType, MVT::i32, ++/*441737*/ OPC_MoveParent, ++/*441738*/ OPC_CheckType, MVT::v8i32, ++/*441740*/ OPC_MoveParent, ++/*441741*/ OPC_CheckType, MVT::v8i32, ++/*441743*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*441745*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*441753*/ /*Scope*/ 25|128,1/*153*/, /*->441908*/ ++/*441755*/ OPC_MoveChild0, ++/*441756*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*441759*/ OPC_CheckChild0Integer, 1, ++/*441761*/ OPC_CheckChild0Type, MVT::i32, ++/*441763*/ OPC_CheckChild1Integer, 1, ++/*441765*/ OPC_CheckChild1Type, MVT::i32, ++/*441767*/ OPC_CheckChild2Integer, 1, ++/*441769*/ OPC_CheckChild2Type, MVT::i32, ++/*441771*/ OPC_CheckChild3Integer, 1, ++/*441773*/ OPC_CheckChild3Type, MVT::i32, ++/*441775*/ OPC_CheckChild4Integer, 1, ++/*441777*/ OPC_CheckChild4Type, MVT::i32, ++/*441779*/ OPC_MoveChild5, ++/*441780*/ OPC_CheckInteger, 1, ++/*441782*/ OPC_CheckType, MVT::i32, ++/*441784*/ OPC_MoveParent, ++/*441785*/ OPC_MoveChild6, ++/*441786*/ OPC_CheckInteger, 1, ++/*441788*/ OPC_CheckType, MVT::i32, ++/*441790*/ OPC_MoveParent, ++/*441791*/ OPC_MoveChild7, ++/*441792*/ OPC_CheckInteger, 1, ++/*441794*/ OPC_CheckType, MVT::i32, ++/*441796*/ OPC_MoveParent, ++/*441797*/ OPC_MoveParent, ++/*441798*/ OPC_CheckChild1Same, 1, ++/*441800*/ OPC_MoveParent, ++/*441801*/ OPC_CheckChild1Same, 0, ++/*441803*/ OPC_MoveParent, ++/*441804*/ OPC_MoveChild1, ++/*441805*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*441808*/ OPC_CheckChild0Integer, 31, ++/*441810*/ OPC_CheckChild0Type, MVT::i32, ++/*441812*/ OPC_CheckChild1Integer, 31, ++/*441814*/ OPC_CheckChild1Type, MVT::i32, ++/*441816*/ OPC_CheckChild2Integer, 31, ++/*441818*/ OPC_CheckChild2Type, MVT::i32, ++/*441820*/ OPC_CheckChild3Integer, 31, ++/*441822*/ OPC_CheckChild3Type, MVT::i32, ++/*441824*/ OPC_CheckChild4Integer, 31, ++/*441826*/ OPC_CheckChild4Type, MVT::i32, ++/*441828*/ OPC_MoveChild5, ++/*441829*/ OPC_CheckInteger, 31, ++/*441831*/ OPC_CheckType, MVT::i32, ++/*441833*/ OPC_MoveParent, ++/*441834*/ OPC_MoveChild6, ++/*441835*/ OPC_CheckInteger, 31, ++/*441837*/ OPC_CheckType, MVT::i32, ++/*441839*/ OPC_MoveParent, ++/*441840*/ OPC_MoveChild7, ++/*441841*/ OPC_CheckInteger, 31, ++/*441843*/ OPC_CheckType, MVT::i32, ++/*441845*/ OPC_MoveParent, ++/*441846*/ OPC_CheckType, MVT::v8i32, ++/*441848*/ OPC_MoveParent, ++/*441849*/ OPC_MoveParent, ++/*441850*/ OPC_MoveParent, ++/*441851*/ OPC_MoveChild1, ++/*441852*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*441855*/ OPC_CheckChild0Integer, 1, ++/*441857*/ OPC_CheckChild0Type, MVT::i32, ++/*441859*/ OPC_CheckChild1Integer, 1, ++/*441861*/ OPC_CheckChild1Type, MVT::i32, ++/*441863*/ OPC_CheckChild2Integer, 1, ++/*441865*/ OPC_CheckChild2Type, MVT::i32, ++/*441867*/ OPC_CheckChild3Integer, 1, ++/*441869*/ OPC_CheckChild3Type, MVT::i32, ++/*441871*/ OPC_CheckChild4Integer, 1, ++/*441873*/ OPC_CheckChild4Type, MVT::i32, ++/*441875*/ OPC_MoveChild5, ++/*441876*/ OPC_CheckInteger, 1, ++/*441878*/ OPC_CheckType, MVT::i32, ++/*441880*/ OPC_MoveParent, ++/*441881*/ OPC_MoveChild6, ++/*441882*/ OPC_CheckInteger, 1, ++/*441884*/ OPC_CheckType, MVT::i32, ++/*441886*/ OPC_MoveParent, ++/*441887*/ OPC_MoveChild7, ++/*441888*/ OPC_CheckInteger, 1, ++/*441890*/ OPC_CheckType, MVT::i32, ++/*441892*/ OPC_MoveParent, ++/*441893*/ OPC_CheckType, MVT::v8i32, ++/*441895*/ OPC_MoveParent, ++/*441896*/ OPC_CheckType, MVT::v8i32, ++/*441898*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*441900*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b), LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*441908*/ /*Scope*/ 25|128,1/*153*/, /*->442063*/ ++/*441910*/ OPC_CheckChild0Same, 1, ++/*441912*/ OPC_MoveChild1, ++/*441913*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*441916*/ OPC_CheckChild0Integer, 1, ++/*441918*/ OPC_CheckChild0Type, MVT::i32, ++/*441920*/ OPC_CheckChild1Integer, 1, ++/*441922*/ OPC_CheckChild1Type, MVT::i32, ++/*441924*/ OPC_CheckChild2Integer, 1, ++/*441926*/ OPC_CheckChild2Type, MVT::i32, ++/*441928*/ OPC_CheckChild3Integer, 1, ++/*441930*/ OPC_CheckChild3Type, MVT::i32, ++/*441932*/ OPC_CheckChild4Integer, 1, ++/*441934*/ OPC_CheckChild4Type, MVT::i32, ++/*441936*/ OPC_MoveChild5, ++/*441937*/ OPC_CheckInteger, 1, ++/*441939*/ OPC_CheckType, MVT::i32, ++/*441941*/ OPC_MoveParent, ++/*441942*/ OPC_MoveChild6, ++/*441943*/ OPC_CheckInteger, 1, ++/*441945*/ OPC_CheckType, MVT::i32, ++/*441947*/ OPC_MoveParent, ++/*441948*/ OPC_MoveChild7, ++/*441949*/ OPC_CheckInteger, 1, ++/*441951*/ OPC_CheckType, MVT::i32, ++/*441953*/ OPC_MoveParent, ++/*441954*/ OPC_MoveParent, ++/*441955*/ OPC_MoveParent, ++/*441956*/ OPC_CheckChild1Same, 0, ++/*441958*/ OPC_MoveParent, ++/*441959*/ OPC_MoveChild1, ++/*441960*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*441963*/ OPC_CheckChild0Integer, 31, ++/*441965*/ OPC_CheckChild0Type, MVT::i32, ++/*441967*/ OPC_CheckChild1Integer, 31, ++/*441969*/ OPC_CheckChild1Type, MVT::i32, ++/*441971*/ OPC_CheckChild2Integer, 31, ++/*441973*/ OPC_CheckChild2Type, MVT::i32, ++/*441975*/ OPC_CheckChild3Integer, 31, ++/*441977*/ OPC_CheckChild3Type, MVT::i32, ++/*441979*/ OPC_CheckChild4Integer, 31, ++/*441981*/ OPC_CheckChild4Type, MVT::i32, ++/*441983*/ OPC_MoveChild5, ++/*441984*/ OPC_CheckInteger, 31, ++/*441986*/ OPC_CheckType, MVT::i32, ++/*441988*/ OPC_MoveParent, ++/*441989*/ OPC_MoveChild6, ++/*441990*/ OPC_CheckInteger, 31, ++/*441992*/ OPC_CheckType, MVT::i32, ++/*441994*/ OPC_MoveParent, ++/*441995*/ OPC_MoveChild7, ++/*441996*/ OPC_CheckInteger, 31, ++/*441998*/ OPC_CheckType, MVT::i32, ++/*442000*/ OPC_MoveParent, ++/*442001*/ OPC_CheckType, MVT::v8i32, ++/*442003*/ OPC_MoveParent, ++/*442004*/ OPC_MoveParent, ++/*442005*/ OPC_MoveParent, ++/*442006*/ OPC_MoveChild1, ++/*442007*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*442010*/ OPC_CheckChild0Integer, 1, ++/*442012*/ OPC_CheckChild0Type, MVT::i32, ++/*442014*/ OPC_CheckChild1Integer, 1, ++/*442016*/ OPC_CheckChild1Type, MVT::i32, ++/*442018*/ OPC_CheckChild2Integer, 1, ++/*442020*/ OPC_CheckChild2Type, MVT::i32, ++/*442022*/ OPC_CheckChild3Integer, 1, ++/*442024*/ OPC_CheckChild3Type, MVT::i32, ++/*442026*/ OPC_CheckChild4Integer, 1, ++/*442028*/ OPC_CheckChild4Type, MVT::i32, ++/*442030*/ OPC_MoveChild5, ++/*442031*/ OPC_CheckInteger, 1, ++/*442033*/ OPC_CheckType, MVT::i32, ++/*442035*/ OPC_MoveParent, ++/*442036*/ OPC_MoveChild6, ++/*442037*/ OPC_CheckInteger, 1, ++/*442039*/ OPC_CheckType, MVT::i32, ++/*442041*/ OPC_MoveParent, ++/*442042*/ OPC_MoveChild7, ++/*442043*/ OPC_CheckInteger, 1, ++/*442045*/ OPC_CheckType, MVT::i32, ++/*442047*/ OPC_MoveParent, ++/*442048*/ OPC_CheckType, MVT::v8i32, ++/*442050*/ OPC_MoveParent, ++/*442051*/ OPC_CheckType, MVT::v8i32, ++/*442053*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*442055*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*442063*/ /*Scope*/ 25|128,1/*153*/, /*->442218*/ ++/*442065*/ OPC_CheckChild0Same, 0, ++/*442067*/ OPC_CheckChild1Same, 1, ++/*442069*/ OPC_MoveParent, ++/*442070*/ OPC_MoveChild1, ++/*442071*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*442074*/ OPC_CheckChild0Integer, 1, ++/*442076*/ OPC_CheckChild0Type, MVT::i32, ++/*442078*/ OPC_CheckChild1Integer, 1, ++/*442080*/ OPC_CheckChild1Type, MVT::i32, ++/*442082*/ OPC_CheckChild2Integer, 1, ++/*442084*/ OPC_CheckChild2Type, MVT::i32, ++/*442086*/ OPC_CheckChild3Integer, 1, ++/*442088*/ OPC_CheckChild3Type, MVT::i32, ++/*442090*/ OPC_CheckChild4Integer, 1, ++/*442092*/ OPC_CheckChild4Type, MVT::i32, ++/*442094*/ OPC_MoveChild5, ++/*442095*/ OPC_CheckInteger, 1, ++/*442097*/ OPC_CheckType, MVT::i32, ++/*442099*/ OPC_MoveParent, ++/*442100*/ OPC_MoveChild6, ++/*442101*/ OPC_CheckInteger, 1, ++/*442103*/ OPC_CheckType, MVT::i32, ++/*442105*/ OPC_MoveParent, ++/*442106*/ OPC_MoveChild7, ++/*442107*/ OPC_CheckInteger, 1, ++/*442109*/ OPC_CheckType, MVT::i32, ++/*442111*/ OPC_MoveParent, ++/*442112*/ OPC_MoveParent, ++/*442113*/ OPC_MoveParent, ++/*442114*/ OPC_MoveChild1, ++/*442115*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*442118*/ OPC_CheckChild0Integer, 31, ++/*442120*/ OPC_CheckChild0Type, MVT::i32, ++/*442122*/ OPC_CheckChild1Integer, 31, ++/*442124*/ OPC_CheckChild1Type, MVT::i32, ++/*442126*/ OPC_CheckChild2Integer, 31, ++/*442128*/ OPC_CheckChild2Type, MVT::i32, ++/*442130*/ OPC_CheckChild3Integer, 31, ++/*442132*/ OPC_CheckChild3Type, MVT::i32, ++/*442134*/ OPC_CheckChild4Integer, 31, ++/*442136*/ OPC_CheckChild4Type, MVT::i32, ++/*442138*/ OPC_MoveChild5, ++/*442139*/ OPC_CheckInteger, 31, ++/*442141*/ OPC_CheckType, MVT::i32, ++/*442143*/ OPC_MoveParent, ++/*442144*/ OPC_MoveChild6, ++/*442145*/ OPC_CheckInteger, 31, ++/*442147*/ OPC_CheckType, MVT::i32, ++/*442149*/ OPC_MoveParent, ++/*442150*/ OPC_MoveChild7, ++/*442151*/ OPC_CheckInteger, 31, ++/*442153*/ OPC_CheckType, MVT::i32, ++/*442155*/ OPC_MoveParent, ++/*442156*/ OPC_CheckType, MVT::v8i32, ++/*442158*/ OPC_MoveParent, ++/*442159*/ OPC_MoveParent, ++/*442160*/ OPC_MoveParent, ++/*442161*/ OPC_MoveChild1, ++/*442162*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*442165*/ OPC_CheckChild0Integer, 1, ++/*442167*/ OPC_CheckChild0Type, MVT::i32, ++/*442169*/ OPC_CheckChild1Integer, 1, ++/*442171*/ OPC_CheckChild1Type, MVT::i32, ++/*442173*/ OPC_CheckChild2Integer, 1, ++/*442175*/ OPC_CheckChild2Type, MVT::i32, ++/*442177*/ OPC_CheckChild3Integer, 1, ++/*442179*/ OPC_CheckChild3Type, MVT::i32, ++/*442181*/ OPC_CheckChild4Integer, 1, ++/*442183*/ OPC_CheckChild4Type, MVT::i32, ++/*442185*/ OPC_MoveChild5, ++/*442186*/ OPC_CheckInteger, 1, ++/*442188*/ OPC_CheckType, MVT::i32, ++/*442190*/ OPC_MoveParent, ++/*442191*/ OPC_MoveChild6, ++/*442192*/ OPC_CheckInteger, 1, ++/*442194*/ OPC_CheckType, MVT::i32, ++/*442196*/ OPC_MoveParent, ++/*442197*/ OPC_MoveChild7, ++/*442198*/ OPC_CheckInteger, 1, ++/*442200*/ OPC_CheckType, MVT::i32, ++/*442202*/ OPC_MoveParent, ++/*442203*/ OPC_CheckType, MVT::v8i32, ++/*442205*/ OPC_MoveParent, ++/*442206*/ OPC_CheckType, MVT::v8i32, ++/*442208*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*442210*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*442218*/ /*Scope*/ 25|128,1/*153*/, /*->442373*/ ++/*442220*/ OPC_CheckChild0Same, 1, ++/*442222*/ OPC_CheckChild1Same, 0, ++/*442224*/ OPC_MoveParent, ++/*442225*/ OPC_MoveChild1, ++/*442226*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*442229*/ OPC_CheckChild0Integer, 1, ++/*442231*/ OPC_CheckChild0Type, MVT::i32, ++/*442233*/ OPC_CheckChild1Integer, 1, ++/*442235*/ OPC_CheckChild1Type, MVT::i32, ++/*442237*/ OPC_CheckChild2Integer, 1, ++/*442239*/ OPC_CheckChild2Type, MVT::i32, ++/*442241*/ OPC_CheckChild3Integer, 1, ++/*442243*/ OPC_CheckChild3Type, MVT::i32, ++/*442245*/ OPC_CheckChild4Integer, 1, ++/*442247*/ OPC_CheckChild4Type, MVT::i32, ++/*442249*/ OPC_MoveChild5, ++/*442250*/ OPC_CheckInteger, 1, ++/*442252*/ OPC_CheckType, MVT::i32, ++/*442254*/ OPC_MoveParent, ++/*442255*/ OPC_MoveChild6, ++/*442256*/ OPC_CheckInteger, 1, ++/*442258*/ OPC_CheckType, MVT::i32, ++/*442260*/ OPC_MoveParent, ++/*442261*/ OPC_MoveChild7, ++/*442262*/ OPC_CheckInteger, 1, ++/*442264*/ OPC_CheckType, MVT::i32, ++/*442266*/ OPC_MoveParent, ++/*442267*/ OPC_MoveParent, ++/*442268*/ OPC_MoveParent, ++/*442269*/ OPC_MoveChild1, ++/*442270*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*442273*/ OPC_CheckChild0Integer, 31, ++/*442275*/ OPC_CheckChild0Type, MVT::i32, ++/*442277*/ OPC_CheckChild1Integer, 31, ++/*442279*/ OPC_CheckChild1Type, MVT::i32, ++/*442281*/ OPC_CheckChild2Integer, 31, ++/*442283*/ OPC_CheckChild2Type, MVT::i32, ++/*442285*/ OPC_CheckChild3Integer, 31, ++/*442287*/ OPC_CheckChild3Type, MVT::i32, ++/*442289*/ OPC_CheckChild4Integer, 31, ++/*442291*/ OPC_CheckChild4Type, MVT::i32, ++/*442293*/ OPC_MoveChild5, ++/*442294*/ OPC_CheckInteger, 31, ++/*442296*/ OPC_CheckType, MVT::i32, ++/*442298*/ OPC_MoveParent, ++/*442299*/ OPC_MoveChild6, ++/*442300*/ OPC_CheckInteger, 31, ++/*442302*/ OPC_CheckType, MVT::i32, ++/*442304*/ OPC_MoveParent, ++/*442305*/ OPC_MoveChild7, ++/*442306*/ OPC_CheckInteger, 31, ++/*442308*/ OPC_CheckType, MVT::i32, ++/*442310*/ OPC_MoveParent, ++/*442311*/ OPC_CheckType, MVT::v8i32, ++/*442313*/ OPC_MoveParent, ++/*442314*/ OPC_MoveParent, ++/*442315*/ OPC_MoveParent, ++/*442316*/ OPC_MoveChild1, ++/*442317*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*442320*/ OPC_CheckChild0Integer, 1, ++/*442322*/ OPC_CheckChild0Type, MVT::i32, ++/*442324*/ OPC_CheckChild1Integer, 1, ++/*442326*/ OPC_CheckChild1Type, MVT::i32, ++/*442328*/ OPC_CheckChild2Integer, 1, ++/*442330*/ OPC_CheckChild2Type, MVT::i32, ++/*442332*/ OPC_CheckChild3Integer, 1, ++/*442334*/ OPC_CheckChild3Type, MVT::i32, ++/*442336*/ OPC_CheckChild4Integer, 1, ++/*442338*/ OPC_CheckChild4Type, MVT::i32, ++/*442340*/ OPC_MoveChild5, ++/*442341*/ OPC_CheckInteger, 1, ++/*442343*/ OPC_CheckType, MVT::i32, ++/*442345*/ OPC_MoveParent, ++/*442346*/ OPC_MoveChild6, ++/*442347*/ OPC_CheckInteger, 1, ++/*442349*/ OPC_CheckType, MVT::i32, ++/*442351*/ OPC_MoveParent, ++/*442352*/ OPC_MoveChild7, ++/*442353*/ OPC_CheckInteger, 1, ++/*442355*/ OPC_CheckType, MVT::i32, ++/*442357*/ OPC_MoveParent, ++/*442358*/ OPC_CheckType, MVT::v8i32, ++/*442360*/ OPC_MoveParent, ++/*442361*/ OPC_CheckType, MVT::v8i32, ++/*442363*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*442365*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*442373*/ 0, /*End of Scope*/ ++/*442374*/ /*Scope*/ 58|128,2/*314*/, /*->442690*/ ++/*442376*/ OPC_CheckChild0Same, 1, ++/*442378*/ OPC_MoveChild1, ++/*442379*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*442382*/ OPC_Scope, 23|128,1/*151*/, /*->442536*/ // 2 children in Scope ++/*442385*/ OPC_MoveChild0, ++/*442386*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*442389*/ OPC_CheckChild0Integer, 1, ++/*442391*/ OPC_CheckChild0Type, MVT::i32, ++/*442393*/ OPC_CheckChild1Integer, 1, ++/*442395*/ OPC_CheckChild1Type, MVT::i32, ++/*442397*/ OPC_CheckChild2Integer, 1, ++/*442399*/ OPC_CheckChild2Type, MVT::i32, ++/*442401*/ OPC_CheckChild3Integer, 1, ++/*442403*/ OPC_CheckChild3Type, MVT::i32, ++/*442405*/ OPC_CheckChild4Integer, 1, ++/*442407*/ OPC_CheckChild4Type, MVT::i32, ++/*442409*/ OPC_MoveChild5, ++/*442410*/ OPC_CheckInteger, 1, ++/*442412*/ OPC_CheckType, MVT::i32, ++/*442414*/ OPC_MoveParent, ++/*442415*/ OPC_MoveChild6, ++/*442416*/ OPC_CheckInteger, 1, ++/*442418*/ OPC_CheckType, MVT::i32, ++/*442420*/ OPC_MoveParent, ++/*442421*/ OPC_MoveChild7, ++/*442422*/ OPC_CheckInteger, 1, ++/*442424*/ OPC_CheckType, MVT::i32, ++/*442426*/ OPC_MoveParent, ++/*442427*/ OPC_MoveParent, ++/*442428*/ OPC_CheckChild1Same, 0, ++/*442430*/ OPC_MoveParent, ++/*442431*/ OPC_MoveParent, ++/*442432*/ OPC_MoveChild1, ++/*442433*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*442436*/ OPC_CheckChild0Integer, 31, ++/*442438*/ OPC_CheckChild0Type, MVT::i32, ++/*442440*/ OPC_CheckChild1Integer, 31, ++/*442442*/ OPC_CheckChild1Type, MVT::i32, ++/*442444*/ OPC_CheckChild2Integer, 31, ++/*442446*/ OPC_CheckChild2Type, MVT::i32, ++/*442448*/ OPC_CheckChild3Integer, 31, ++/*442450*/ OPC_CheckChild3Type, MVT::i32, ++/*442452*/ OPC_CheckChild4Integer, 31, ++/*442454*/ OPC_CheckChild4Type, MVT::i32, ++/*442456*/ OPC_MoveChild5, ++/*442457*/ OPC_CheckInteger, 31, ++/*442459*/ OPC_CheckType, MVT::i32, ++/*442461*/ OPC_MoveParent, ++/*442462*/ OPC_MoveChild6, ++/*442463*/ OPC_CheckInteger, 31, ++/*442465*/ OPC_CheckType, MVT::i32, ++/*442467*/ OPC_MoveParent, ++/*442468*/ OPC_MoveChild7, ++/*442469*/ OPC_CheckInteger, 31, ++/*442471*/ OPC_CheckType, MVT::i32, ++/*442473*/ OPC_MoveParent, ++/*442474*/ OPC_CheckType, MVT::v8i32, ++/*442476*/ OPC_MoveParent, ++/*442477*/ OPC_MoveParent, ++/*442478*/ OPC_MoveParent, ++/*442479*/ OPC_MoveChild1, ++/*442480*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*442483*/ OPC_CheckChild0Integer, 1, ++/*442485*/ OPC_CheckChild0Type, MVT::i32, ++/*442487*/ OPC_CheckChild1Integer, 1, ++/*442489*/ OPC_CheckChild1Type, MVT::i32, ++/*442491*/ OPC_CheckChild2Integer, 1, ++/*442493*/ OPC_CheckChild2Type, MVT::i32, ++/*442495*/ OPC_CheckChild3Integer, 1, ++/*442497*/ OPC_CheckChild3Type, MVT::i32, ++/*442499*/ OPC_CheckChild4Integer, 1, ++/*442501*/ OPC_CheckChild4Type, MVT::i32, ++/*442503*/ OPC_MoveChild5, ++/*442504*/ OPC_CheckInteger, 1, ++/*442506*/ OPC_CheckType, MVT::i32, ++/*442508*/ OPC_MoveParent, ++/*442509*/ OPC_MoveChild6, ++/*442510*/ OPC_CheckInteger, 1, ++/*442512*/ OPC_CheckType, MVT::i32, ++/*442514*/ OPC_MoveParent, ++/*442515*/ OPC_MoveChild7, ++/*442516*/ OPC_CheckInteger, 1, ++/*442518*/ OPC_CheckType, MVT::i32, ++/*442520*/ OPC_MoveParent, ++/*442521*/ OPC_CheckType, MVT::v8i32, ++/*442523*/ OPC_MoveParent, ++/*442524*/ OPC_CheckType, MVT::v8i32, ++/*442526*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*442528*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*442536*/ /*Scope*/ 23|128,1/*151*/, /*->442689*/ ++/*442538*/ OPC_CheckChild0Same, 0, ++/*442540*/ OPC_MoveChild1, ++/*442541*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*442544*/ OPC_CheckChild0Integer, 1, ++/*442546*/ OPC_CheckChild0Type, MVT::i32, ++/*442548*/ OPC_CheckChild1Integer, 1, ++/*442550*/ OPC_CheckChild1Type, MVT::i32, ++/*442552*/ OPC_CheckChild2Integer, 1, ++/*442554*/ OPC_CheckChild2Type, MVT::i32, ++/*442556*/ OPC_CheckChild3Integer, 1, ++/*442558*/ OPC_CheckChild3Type, MVT::i32, ++/*442560*/ OPC_CheckChild4Integer, 1, ++/*442562*/ OPC_CheckChild4Type, MVT::i32, ++/*442564*/ OPC_MoveChild5, ++/*442565*/ OPC_CheckInteger, 1, ++/*442567*/ OPC_CheckType, MVT::i32, ++/*442569*/ OPC_MoveParent, ++/*442570*/ OPC_MoveChild6, ++/*442571*/ OPC_CheckInteger, 1, ++/*442573*/ OPC_CheckType, MVT::i32, ++/*442575*/ OPC_MoveParent, ++/*442576*/ OPC_MoveChild7, ++/*442577*/ OPC_CheckInteger, 1, ++/*442579*/ OPC_CheckType, MVT::i32, ++/*442581*/ OPC_MoveParent, ++/*442582*/ OPC_MoveParent, ++/*442583*/ OPC_MoveParent, ++/*442584*/ OPC_MoveParent, ++/*442585*/ OPC_MoveChild1, ++/*442586*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*442589*/ OPC_CheckChild0Integer, 31, ++/*442591*/ OPC_CheckChild0Type, MVT::i32, ++/*442593*/ OPC_CheckChild1Integer, 31, ++/*442595*/ OPC_CheckChild1Type, MVT::i32, ++/*442597*/ OPC_CheckChild2Integer, 31, ++/*442599*/ OPC_CheckChild2Type, MVT::i32, ++/*442601*/ OPC_CheckChild3Integer, 31, ++/*442603*/ OPC_CheckChild3Type, MVT::i32, ++/*442605*/ OPC_CheckChild4Integer, 31, ++/*442607*/ OPC_CheckChild4Type, MVT::i32, ++/*442609*/ OPC_MoveChild5, ++/*442610*/ OPC_CheckInteger, 31, ++/*442612*/ OPC_CheckType, MVT::i32, ++/*442614*/ OPC_MoveParent, ++/*442615*/ OPC_MoveChild6, ++/*442616*/ OPC_CheckInteger, 31, ++/*442618*/ OPC_CheckType, MVT::i32, ++/*442620*/ OPC_MoveParent, ++/*442621*/ OPC_MoveChild7, ++/*442622*/ OPC_CheckInteger, 31, ++/*442624*/ OPC_CheckType, MVT::i32, ++/*442626*/ OPC_MoveParent, ++/*442627*/ OPC_CheckType, MVT::v8i32, ++/*442629*/ OPC_MoveParent, ++/*442630*/ OPC_MoveParent, ++/*442631*/ OPC_MoveParent, ++/*442632*/ OPC_MoveChild1, ++/*442633*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*442636*/ OPC_CheckChild0Integer, 1, ++/*442638*/ OPC_CheckChild0Type, MVT::i32, ++/*442640*/ OPC_CheckChild1Integer, 1, ++/*442642*/ OPC_CheckChild1Type, MVT::i32, ++/*442644*/ OPC_CheckChild2Integer, 1, ++/*442646*/ OPC_CheckChild2Type, MVT::i32, ++/*442648*/ OPC_CheckChild3Integer, 1, ++/*442650*/ OPC_CheckChild3Type, MVT::i32, ++/*442652*/ OPC_CheckChild4Integer, 1, ++/*442654*/ OPC_CheckChild4Type, MVT::i32, ++/*442656*/ OPC_MoveChild5, ++/*442657*/ OPC_CheckInteger, 1, ++/*442659*/ OPC_CheckType, MVT::i32, ++/*442661*/ OPC_MoveParent, ++/*442662*/ OPC_MoveChild6, ++/*442663*/ OPC_CheckInteger, 1, ++/*442665*/ OPC_CheckType, MVT::i32, ++/*442667*/ OPC_MoveParent, ++/*442668*/ OPC_MoveChild7, ++/*442669*/ OPC_CheckInteger, 1, ++/*442671*/ OPC_CheckType, MVT::i32, ++/*442673*/ OPC_MoveParent, ++/*442674*/ OPC_CheckType, MVT::v8i32, ++/*442676*/ OPC_MoveParent, ++/*442677*/ OPC_CheckType, MVT::v8i32, ++/*442679*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*442681*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*442689*/ 0, /*End of Scope*/ ++/*442690*/ /*Scope*/ 58|128,2/*314*/, /*->443006*/ ++/*442692*/ OPC_CheckChild0Same, 0, ++/*442694*/ OPC_MoveChild1, ++/*442695*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*442698*/ OPC_Scope, 23|128,1/*151*/, /*->442852*/ // 2 children in Scope ++/*442701*/ OPC_MoveChild0, ++/*442702*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*442705*/ OPC_CheckChild0Integer, 1, ++/*442707*/ OPC_CheckChild0Type, MVT::i32, ++/*442709*/ OPC_CheckChild1Integer, 1, ++/*442711*/ OPC_CheckChild1Type, MVT::i32, ++/*442713*/ OPC_CheckChild2Integer, 1, ++/*442715*/ OPC_CheckChild2Type, MVT::i32, ++/*442717*/ OPC_CheckChild3Integer, 1, ++/*442719*/ OPC_CheckChild3Type, MVT::i32, ++/*442721*/ OPC_CheckChild4Integer, 1, ++/*442723*/ OPC_CheckChild4Type, MVT::i32, ++/*442725*/ OPC_MoveChild5, ++/*442726*/ OPC_CheckInteger, 1, ++/*442728*/ OPC_CheckType, MVT::i32, ++/*442730*/ OPC_MoveParent, ++/*442731*/ OPC_MoveChild6, ++/*442732*/ OPC_CheckInteger, 1, ++/*442734*/ OPC_CheckType, MVT::i32, ++/*442736*/ OPC_MoveParent, ++/*442737*/ OPC_MoveChild7, ++/*442738*/ OPC_CheckInteger, 1, ++/*442740*/ OPC_CheckType, MVT::i32, ++/*442742*/ OPC_MoveParent, ++/*442743*/ OPC_MoveParent, ++/*442744*/ OPC_CheckChild1Same, 1, ++/*442746*/ OPC_MoveParent, ++/*442747*/ OPC_MoveParent, ++/*442748*/ OPC_MoveChild1, ++/*442749*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*442752*/ OPC_CheckChild0Integer, 31, ++/*442754*/ OPC_CheckChild0Type, MVT::i32, ++/*442756*/ OPC_CheckChild1Integer, 31, ++/*442758*/ OPC_CheckChild1Type, MVT::i32, ++/*442760*/ OPC_CheckChild2Integer, 31, ++/*442762*/ OPC_CheckChild2Type, MVT::i32, ++/*442764*/ OPC_CheckChild3Integer, 31, ++/*442766*/ OPC_CheckChild3Type, MVT::i32, ++/*442768*/ OPC_CheckChild4Integer, 31, ++/*442770*/ OPC_CheckChild4Type, MVT::i32, ++/*442772*/ OPC_MoveChild5, ++/*442773*/ OPC_CheckInteger, 31, ++/*442775*/ OPC_CheckType, MVT::i32, ++/*442777*/ OPC_MoveParent, ++/*442778*/ OPC_MoveChild6, ++/*442779*/ OPC_CheckInteger, 31, ++/*442781*/ OPC_CheckType, MVT::i32, ++/*442783*/ OPC_MoveParent, ++/*442784*/ OPC_MoveChild7, ++/*442785*/ OPC_CheckInteger, 31, ++/*442787*/ OPC_CheckType, MVT::i32, ++/*442789*/ OPC_MoveParent, ++/*442790*/ OPC_CheckType, MVT::v8i32, ++/*442792*/ OPC_MoveParent, ++/*442793*/ OPC_MoveParent, ++/*442794*/ OPC_MoveParent, ++/*442795*/ OPC_MoveChild1, ++/*442796*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*442799*/ OPC_CheckChild0Integer, 1, ++/*442801*/ OPC_CheckChild0Type, MVT::i32, ++/*442803*/ OPC_CheckChild1Integer, 1, ++/*442805*/ OPC_CheckChild1Type, MVT::i32, ++/*442807*/ OPC_CheckChild2Integer, 1, ++/*442809*/ OPC_CheckChild2Type, MVT::i32, ++/*442811*/ OPC_CheckChild3Integer, 1, ++/*442813*/ OPC_CheckChild3Type, MVT::i32, ++/*442815*/ OPC_CheckChild4Integer, 1, ++/*442817*/ OPC_CheckChild4Type, MVT::i32, ++/*442819*/ OPC_MoveChild5, ++/*442820*/ OPC_CheckInteger, 1, ++/*442822*/ OPC_CheckType, MVT::i32, ++/*442824*/ OPC_MoveParent, ++/*442825*/ OPC_MoveChild6, ++/*442826*/ OPC_CheckInteger, 1, ++/*442828*/ OPC_CheckType, MVT::i32, ++/*442830*/ OPC_MoveParent, ++/*442831*/ OPC_MoveChild7, ++/*442832*/ OPC_CheckInteger, 1, ++/*442834*/ OPC_CheckType, MVT::i32, ++/*442836*/ OPC_MoveParent, ++/*442837*/ OPC_CheckType, MVT::v8i32, ++/*442839*/ OPC_MoveParent, ++/*442840*/ OPC_CheckType, MVT::v8i32, ++/*442842*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*442844*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*442852*/ /*Scope*/ 23|128,1/*151*/, /*->443005*/ ++/*442854*/ OPC_CheckChild0Same, 1, ++/*442856*/ OPC_MoveChild1, ++/*442857*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*442860*/ OPC_CheckChild0Integer, 1, ++/*442862*/ OPC_CheckChild0Type, MVT::i32, ++/*442864*/ OPC_CheckChild1Integer, 1, ++/*442866*/ OPC_CheckChild1Type, MVT::i32, ++/*442868*/ OPC_CheckChild2Integer, 1, ++/*442870*/ OPC_CheckChild2Type, MVT::i32, ++/*442872*/ OPC_CheckChild3Integer, 1, ++/*442874*/ OPC_CheckChild3Type, MVT::i32, ++/*442876*/ OPC_CheckChild4Integer, 1, ++/*442878*/ OPC_CheckChild4Type, MVT::i32, ++/*442880*/ OPC_MoveChild5, ++/*442881*/ OPC_CheckInteger, 1, ++/*442883*/ OPC_CheckType, MVT::i32, ++/*442885*/ OPC_MoveParent, ++/*442886*/ OPC_MoveChild6, ++/*442887*/ OPC_CheckInteger, 1, ++/*442889*/ OPC_CheckType, MVT::i32, ++/*442891*/ OPC_MoveParent, ++/*442892*/ OPC_MoveChild7, ++/*442893*/ OPC_CheckInteger, 1, ++/*442895*/ OPC_CheckType, MVT::i32, ++/*442897*/ OPC_MoveParent, ++/*442898*/ OPC_MoveParent, ++/*442899*/ OPC_MoveParent, ++/*442900*/ OPC_MoveParent, ++/*442901*/ OPC_MoveChild1, ++/*442902*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*442905*/ OPC_CheckChild0Integer, 31, ++/*442907*/ OPC_CheckChild0Type, MVT::i32, ++/*442909*/ OPC_CheckChild1Integer, 31, ++/*442911*/ OPC_CheckChild1Type, MVT::i32, ++/*442913*/ OPC_CheckChild2Integer, 31, ++/*442915*/ OPC_CheckChild2Type, MVT::i32, ++/*442917*/ OPC_CheckChild3Integer, 31, ++/*442919*/ OPC_CheckChild3Type, MVT::i32, ++/*442921*/ OPC_CheckChild4Integer, 31, ++/*442923*/ OPC_CheckChild4Type, MVT::i32, ++/*442925*/ OPC_MoveChild5, ++/*442926*/ OPC_CheckInteger, 31, ++/*442928*/ OPC_CheckType, MVT::i32, ++/*442930*/ OPC_MoveParent, ++/*442931*/ OPC_MoveChild6, ++/*442932*/ OPC_CheckInteger, 31, ++/*442934*/ OPC_CheckType, MVT::i32, ++/*442936*/ OPC_MoveParent, ++/*442937*/ OPC_MoveChild7, ++/*442938*/ OPC_CheckInteger, 31, ++/*442940*/ OPC_CheckType, MVT::i32, ++/*442942*/ OPC_MoveParent, ++/*442943*/ OPC_CheckType, MVT::v8i32, ++/*442945*/ OPC_MoveParent, ++/*442946*/ OPC_MoveParent, ++/*442947*/ OPC_MoveParent, ++/*442948*/ OPC_MoveChild1, ++/*442949*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*442952*/ OPC_CheckChild0Integer, 1, ++/*442954*/ OPC_CheckChild0Type, MVT::i32, ++/*442956*/ OPC_CheckChild1Integer, 1, ++/*442958*/ OPC_CheckChild1Type, MVT::i32, ++/*442960*/ OPC_CheckChild2Integer, 1, ++/*442962*/ OPC_CheckChild2Type, MVT::i32, ++/*442964*/ OPC_CheckChild3Integer, 1, ++/*442966*/ OPC_CheckChild3Type, MVT::i32, ++/*442968*/ OPC_CheckChild4Integer, 1, ++/*442970*/ OPC_CheckChild4Type, MVT::i32, ++/*442972*/ OPC_MoveChild5, ++/*442973*/ OPC_CheckInteger, 1, ++/*442975*/ OPC_CheckType, MVT::i32, ++/*442977*/ OPC_MoveParent, ++/*442978*/ OPC_MoveChild6, ++/*442979*/ OPC_CheckInteger, 1, ++/*442981*/ OPC_CheckType, MVT::i32, ++/*442983*/ OPC_MoveParent, ++/*442984*/ OPC_MoveChild7, ++/*442985*/ OPC_CheckInteger, 1, ++/*442987*/ OPC_CheckType, MVT::i32, ++/*442989*/ OPC_MoveParent, ++/*442990*/ OPC_CheckType, MVT::v8i32, ++/*442992*/ OPC_MoveParent, ++/*442993*/ OPC_CheckType, MVT::v8i32, ++/*442995*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*442997*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*443005*/ 0, /*End of Scope*/ ++/*443006*/ /*Scope*/ 58|128,9/*1210*/, /*->444218*/ ++/*443008*/ OPC_MoveChild0, ++/*443009*/ OPC_SwitchOpcode /*2 cases */, 11|128,2/*267*/, TARGET_VAL(ISD::BUILD_VECTOR),// ->443281 ++/*443014*/ OPC_CheckChild0Integer, 1, ++/*443016*/ OPC_CheckChild0Type, MVT::i32, ++/*443018*/ OPC_CheckChild1Integer, 1, ++/*443020*/ OPC_CheckChild1Type, MVT::i32, ++/*443022*/ OPC_CheckChild2Integer, 1, ++/*443024*/ OPC_CheckChild2Type, MVT::i32, ++/*443026*/ OPC_CheckChild3Integer, 1, ++/*443028*/ OPC_CheckChild3Type, MVT::i32, ++/*443030*/ OPC_CheckChild4Integer, 1, ++/*443032*/ OPC_CheckChild4Type, MVT::i32, ++/*443034*/ OPC_MoveChild5, ++/*443035*/ OPC_CheckInteger, 1, ++/*443037*/ OPC_CheckType, MVT::i32, ++/*443039*/ OPC_MoveParent, ++/*443040*/ OPC_MoveChild6, ++/*443041*/ OPC_CheckInteger, 1, ++/*443043*/ OPC_CheckType, MVT::i32, ++/*443045*/ OPC_MoveParent, ++/*443046*/ OPC_MoveChild7, ++/*443047*/ OPC_CheckInteger, 1, ++/*443049*/ OPC_CheckType, MVT::i32, ++/*443051*/ OPC_MoveParent, ++/*443052*/ OPC_MoveParent, ++/*443053*/ OPC_MoveChild1, ++/*443054*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*443057*/ OPC_Scope, 110, /*->443169*/ // 2 children in Scope ++/*443059*/ OPC_CheckChild0Same, 0, ++/*443061*/ OPC_CheckChild1Same, 1, ++/*443063*/ OPC_MoveParent, ++/*443064*/ OPC_MoveParent, ++/*443065*/ OPC_MoveChild1, ++/*443066*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*443069*/ OPC_CheckChild0Integer, 31, ++/*443071*/ OPC_CheckChild0Type, MVT::i32, ++/*443073*/ OPC_CheckChild1Integer, 31, ++/*443075*/ OPC_CheckChild1Type, MVT::i32, ++/*443077*/ OPC_CheckChild2Integer, 31, ++/*443079*/ OPC_CheckChild2Type, MVT::i32, ++/*443081*/ OPC_CheckChild3Integer, 31, ++/*443083*/ OPC_CheckChild3Type, MVT::i32, ++/*443085*/ OPC_CheckChild4Integer, 31, ++/*443087*/ OPC_CheckChild4Type, MVT::i32, ++/*443089*/ OPC_MoveChild5, ++/*443090*/ OPC_CheckInteger, 31, ++/*443092*/ OPC_CheckType, MVT::i32, ++/*443094*/ OPC_MoveParent, ++/*443095*/ OPC_MoveChild6, ++/*443096*/ OPC_CheckInteger, 31, ++/*443098*/ OPC_CheckType, MVT::i32, ++/*443100*/ OPC_MoveParent, ++/*443101*/ OPC_MoveChild7, ++/*443102*/ OPC_CheckInteger, 31, ++/*443104*/ OPC_CheckType, MVT::i32, ++/*443106*/ OPC_MoveParent, ++/*443107*/ OPC_CheckType, MVT::v8i32, ++/*443109*/ OPC_MoveParent, ++/*443110*/ OPC_MoveParent, ++/*443111*/ OPC_MoveParent, ++/*443112*/ OPC_MoveChild1, ++/*443113*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*443116*/ OPC_CheckChild0Integer, 1, ++/*443118*/ OPC_CheckChild0Type, MVT::i32, ++/*443120*/ OPC_CheckChild1Integer, 1, ++/*443122*/ OPC_CheckChild1Type, MVT::i32, ++/*443124*/ OPC_CheckChild2Integer, 1, ++/*443126*/ OPC_CheckChild2Type, MVT::i32, ++/*443128*/ OPC_CheckChild3Integer, 1, ++/*443130*/ OPC_CheckChild3Type, MVT::i32, ++/*443132*/ OPC_CheckChild4Integer, 1, ++/*443134*/ OPC_CheckChild4Type, MVT::i32, ++/*443136*/ OPC_MoveChild5, ++/*443137*/ OPC_CheckInteger, 1, ++/*443139*/ OPC_CheckType, MVT::i32, ++/*443141*/ OPC_MoveParent, ++/*443142*/ OPC_MoveChild6, ++/*443143*/ OPC_CheckInteger, 1, ++/*443145*/ OPC_CheckType, MVT::i32, ++/*443147*/ OPC_MoveParent, ++/*443148*/ OPC_MoveChild7, ++/*443149*/ OPC_CheckInteger, 1, ++/*443151*/ OPC_CheckType, MVT::i32, ++/*443153*/ OPC_MoveParent, ++/*443154*/ OPC_CheckType, MVT::v8i32, ++/*443156*/ OPC_MoveParent, ++/*443157*/ OPC_CheckType, MVT::v8i32, ++/*443159*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*443161*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*443169*/ /*Scope*/ 110, /*->443280*/ ++/*443170*/ OPC_CheckChild0Same, 1, ++/*443172*/ OPC_CheckChild1Same, 0, ++/*443174*/ OPC_MoveParent, ++/*443175*/ OPC_MoveParent, ++/*443176*/ OPC_MoveChild1, ++/*443177*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*443180*/ OPC_CheckChild0Integer, 31, ++/*443182*/ OPC_CheckChild0Type, MVT::i32, ++/*443184*/ OPC_CheckChild1Integer, 31, ++/*443186*/ OPC_CheckChild1Type, MVT::i32, ++/*443188*/ OPC_CheckChild2Integer, 31, ++/*443190*/ OPC_CheckChild2Type, MVT::i32, ++/*443192*/ OPC_CheckChild3Integer, 31, ++/*443194*/ OPC_CheckChild3Type, MVT::i32, ++/*443196*/ OPC_CheckChild4Integer, 31, ++/*443198*/ OPC_CheckChild4Type, MVT::i32, ++/*443200*/ OPC_MoveChild5, ++/*443201*/ OPC_CheckInteger, 31, ++/*443203*/ OPC_CheckType, MVT::i32, ++/*443205*/ OPC_MoveParent, ++/*443206*/ OPC_MoveChild6, ++/*443207*/ OPC_CheckInteger, 31, ++/*443209*/ OPC_CheckType, MVT::i32, ++/*443211*/ OPC_MoveParent, ++/*443212*/ OPC_MoveChild7, ++/*443213*/ OPC_CheckInteger, 31, ++/*443215*/ OPC_CheckType, MVT::i32, ++/*443217*/ OPC_MoveParent, ++/*443218*/ OPC_CheckType, MVT::v8i32, ++/*443220*/ OPC_MoveParent, ++/*443221*/ OPC_MoveParent, ++/*443222*/ OPC_MoveParent, ++/*443223*/ OPC_MoveChild1, ++/*443224*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*443227*/ OPC_CheckChild0Integer, 1, ++/*443229*/ OPC_CheckChild0Type, MVT::i32, ++/*443231*/ OPC_CheckChild1Integer, 1, ++/*443233*/ OPC_CheckChild1Type, MVT::i32, ++/*443235*/ OPC_CheckChild2Integer, 1, ++/*443237*/ OPC_CheckChild2Type, MVT::i32, ++/*443239*/ OPC_CheckChild3Integer, 1, ++/*443241*/ OPC_CheckChild3Type, MVT::i32, ++/*443243*/ OPC_CheckChild4Integer, 1, ++/*443245*/ OPC_CheckChild4Type, MVT::i32, ++/*443247*/ OPC_MoveChild5, ++/*443248*/ OPC_CheckInteger, 1, ++/*443250*/ OPC_CheckType, MVT::i32, ++/*443252*/ OPC_MoveParent, ++/*443253*/ OPC_MoveChild6, ++/*443254*/ OPC_CheckInteger, 1, ++/*443256*/ OPC_CheckType, MVT::i32, ++/*443258*/ OPC_MoveParent, ++/*443259*/ OPC_MoveChild7, ++/*443260*/ OPC_CheckInteger, 1, ++/*443262*/ OPC_CheckType, MVT::i32, ++/*443264*/ OPC_MoveParent, ++/*443265*/ OPC_CheckType, MVT::v8i32, ++/*443267*/ OPC_MoveParent, ++/*443268*/ OPC_CheckType, MVT::v8i32, ++/*443270*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*443272*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*443280*/ 0, /*End of Scope*/ ++/*443281*/ /*SwitchOpcode*/ 36|128,7/*932*/, TARGET_VAL(ISD::ADD),// ->444217 ++/*443285*/ OPC_Scope, 25|128,1/*153*/, /*->443441*/ // 6 children in Scope ++/*443288*/ OPC_MoveChild0, ++/*443289*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*443292*/ OPC_CheckChild0Integer, 1, ++/*443294*/ OPC_CheckChild0Type, MVT::i32, ++/*443296*/ OPC_CheckChild1Integer, 1, ++/*443298*/ OPC_CheckChild1Type, MVT::i32, ++/*443300*/ OPC_CheckChild2Integer, 1, ++/*443302*/ OPC_CheckChild2Type, MVT::i32, ++/*443304*/ OPC_CheckChild3Integer, 1, ++/*443306*/ OPC_CheckChild3Type, MVT::i32, ++/*443308*/ OPC_CheckChild4Integer, 1, ++/*443310*/ OPC_CheckChild4Type, MVT::i32, ++/*443312*/ OPC_MoveChild5, ++/*443313*/ OPC_CheckInteger, 1, ++/*443315*/ OPC_CheckType, MVT::i32, ++/*443317*/ OPC_MoveParent, ++/*443318*/ OPC_MoveChild6, ++/*443319*/ OPC_CheckInteger, 1, ++/*443321*/ OPC_CheckType, MVT::i32, ++/*443323*/ OPC_MoveParent, ++/*443324*/ OPC_MoveChild7, ++/*443325*/ OPC_CheckInteger, 1, ++/*443327*/ OPC_CheckType, MVT::i32, ++/*443329*/ OPC_MoveParent, ++/*443330*/ OPC_MoveParent, ++/*443331*/ OPC_CheckChild1Same, 1, ++/*443333*/ OPC_MoveParent, ++/*443334*/ OPC_CheckChild1Same, 0, ++/*443336*/ OPC_MoveParent, ++/*443337*/ OPC_MoveChild1, ++/*443338*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*443341*/ OPC_CheckChild0Integer, 31, ++/*443343*/ OPC_CheckChild0Type, MVT::i32, ++/*443345*/ OPC_CheckChild1Integer, 31, ++/*443347*/ OPC_CheckChild1Type, MVT::i32, ++/*443349*/ OPC_CheckChild2Integer, 31, ++/*443351*/ OPC_CheckChild2Type, MVT::i32, ++/*443353*/ OPC_CheckChild3Integer, 31, ++/*443355*/ OPC_CheckChild3Type, MVT::i32, ++/*443357*/ OPC_CheckChild4Integer, 31, ++/*443359*/ OPC_CheckChild4Type, MVT::i32, ++/*443361*/ OPC_MoveChild5, ++/*443362*/ OPC_CheckInteger, 31, ++/*443364*/ OPC_CheckType, MVT::i32, ++/*443366*/ OPC_MoveParent, ++/*443367*/ OPC_MoveChild6, ++/*443368*/ OPC_CheckInteger, 31, ++/*443370*/ OPC_CheckType, MVT::i32, ++/*443372*/ OPC_MoveParent, ++/*443373*/ OPC_MoveChild7, ++/*443374*/ OPC_CheckInteger, 31, ++/*443376*/ OPC_CheckType, MVT::i32, ++/*443378*/ OPC_MoveParent, ++/*443379*/ OPC_CheckType, MVT::v8i32, ++/*443381*/ OPC_MoveParent, ++/*443382*/ OPC_MoveParent, ++/*443383*/ OPC_MoveParent, ++/*443384*/ OPC_MoveChild1, ++/*443385*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*443388*/ OPC_CheckChild0Integer, 1, ++/*443390*/ OPC_CheckChild0Type, MVT::i32, ++/*443392*/ OPC_CheckChild1Integer, 1, ++/*443394*/ OPC_CheckChild1Type, MVT::i32, ++/*443396*/ OPC_CheckChild2Integer, 1, ++/*443398*/ OPC_CheckChild2Type, MVT::i32, ++/*443400*/ OPC_CheckChild3Integer, 1, ++/*443402*/ OPC_CheckChild3Type, MVT::i32, ++/*443404*/ OPC_CheckChild4Integer, 1, ++/*443406*/ OPC_CheckChild4Type, MVT::i32, ++/*443408*/ OPC_MoveChild5, ++/*443409*/ OPC_CheckInteger, 1, ++/*443411*/ OPC_CheckType, MVT::i32, ++/*443413*/ OPC_MoveParent, ++/*443414*/ OPC_MoveChild6, ++/*443415*/ OPC_CheckInteger, 1, ++/*443417*/ OPC_CheckType, MVT::i32, ++/*443419*/ OPC_MoveParent, ++/*443420*/ OPC_MoveChild7, ++/*443421*/ OPC_CheckInteger, 1, ++/*443423*/ OPC_CheckType, MVT::i32, ++/*443425*/ OPC_MoveParent, ++/*443426*/ OPC_CheckType, MVT::v8i32, ++/*443428*/ OPC_MoveParent, ++/*443429*/ OPC_CheckType, MVT::v8i32, ++/*443431*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*443433*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a), LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*443441*/ /*Scope*/ 25|128,1/*153*/, /*->443596*/ ++/*443443*/ OPC_CheckChild0Same, 1, ++/*443445*/ OPC_MoveChild1, ++/*443446*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*443449*/ OPC_CheckChild0Integer, 1, ++/*443451*/ OPC_CheckChild0Type, MVT::i32, ++/*443453*/ OPC_CheckChild1Integer, 1, ++/*443455*/ OPC_CheckChild1Type, MVT::i32, ++/*443457*/ OPC_CheckChild2Integer, 1, ++/*443459*/ OPC_CheckChild2Type, MVT::i32, ++/*443461*/ OPC_CheckChild3Integer, 1, ++/*443463*/ OPC_CheckChild3Type, MVT::i32, ++/*443465*/ OPC_CheckChild4Integer, 1, ++/*443467*/ OPC_CheckChild4Type, MVT::i32, ++/*443469*/ OPC_MoveChild5, ++/*443470*/ OPC_CheckInteger, 1, ++/*443472*/ OPC_CheckType, MVT::i32, ++/*443474*/ OPC_MoveParent, ++/*443475*/ OPC_MoveChild6, ++/*443476*/ OPC_CheckInteger, 1, ++/*443478*/ OPC_CheckType, MVT::i32, ++/*443480*/ OPC_MoveParent, ++/*443481*/ OPC_MoveChild7, ++/*443482*/ OPC_CheckInteger, 1, ++/*443484*/ OPC_CheckType, MVT::i32, ++/*443486*/ OPC_MoveParent, ++/*443487*/ OPC_MoveParent, ++/*443488*/ OPC_MoveParent, ++/*443489*/ OPC_CheckChild1Same, 0, ++/*443491*/ OPC_MoveParent, ++/*443492*/ OPC_MoveChild1, ++/*443493*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*443496*/ OPC_CheckChild0Integer, 31, ++/*443498*/ OPC_CheckChild0Type, MVT::i32, ++/*443500*/ OPC_CheckChild1Integer, 31, ++/*443502*/ OPC_CheckChild1Type, MVT::i32, ++/*443504*/ OPC_CheckChild2Integer, 31, ++/*443506*/ OPC_CheckChild2Type, MVT::i32, ++/*443508*/ OPC_CheckChild3Integer, 31, ++/*443510*/ OPC_CheckChild3Type, MVT::i32, ++/*443512*/ OPC_CheckChild4Integer, 31, ++/*443514*/ OPC_CheckChild4Type, MVT::i32, ++/*443516*/ OPC_MoveChild5, ++/*443517*/ OPC_CheckInteger, 31, ++/*443519*/ OPC_CheckType, MVT::i32, ++/*443521*/ OPC_MoveParent, ++/*443522*/ OPC_MoveChild6, ++/*443523*/ OPC_CheckInteger, 31, ++/*443525*/ OPC_CheckType, MVT::i32, ++/*443527*/ OPC_MoveParent, ++/*443528*/ OPC_MoveChild7, ++/*443529*/ OPC_CheckInteger, 31, ++/*443531*/ OPC_CheckType, MVT::i32, ++/*443533*/ OPC_MoveParent, ++/*443534*/ OPC_CheckType, MVT::v8i32, ++/*443536*/ OPC_MoveParent, ++/*443537*/ OPC_MoveParent, ++/*443538*/ OPC_MoveParent, ++/*443539*/ OPC_MoveChild1, ++/*443540*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*443543*/ OPC_CheckChild0Integer, 1, ++/*443545*/ OPC_CheckChild0Type, MVT::i32, ++/*443547*/ OPC_CheckChild1Integer, 1, ++/*443549*/ OPC_CheckChild1Type, MVT::i32, ++/*443551*/ OPC_CheckChild2Integer, 1, ++/*443553*/ OPC_CheckChild2Type, MVT::i32, ++/*443555*/ OPC_CheckChild3Integer, 1, ++/*443557*/ OPC_CheckChild3Type, MVT::i32, ++/*443559*/ OPC_CheckChild4Integer, 1, ++/*443561*/ OPC_CheckChild4Type, MVT::i32, ++/*443563*/ OPC_MoveChild5, ++/*443564*/ OPC_CheckInteger, 1, ++/*443566*/ OPC_CheckType, MVT::i32, ++/*443568*/ OPC_MoveParent, ++/*443569*/ OPC_MoveChild6, ++/*443570*/ OPC_CheckInteger, 1, ++/*443572*/ OPC_CheckType, MVT::i32, ++/*443574*/ OPC_MoveParent, ++/*443575*/ OPC_MoveChild7, ++/*443576*/ OPC_CheckInteger, 1, ++/*443578*/ OPC_CheckType, MVT::i32, ++/*443580*/ OPC_MoveParent, ++/*443581*/ OPC_CheckType, MVT::v8i32, ++/*443583*/ OPC_MoveParent, ++/*443584*/ OPC_CheckType, MVT::v8i32, ++/*443586*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*443588*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*443596*/ /*Scope*/ 25|128,1/*153*/, /*->443751*/ ++/*443598*/ OPC_MoveChild0, ++/*443599*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*443602*/ OPC_CheckChild0Integer, 1, ++/*443604*/ OPC_CheckChild0Type, MVT::i32, ++/*443606*/ OPC_CheckChild1Integer, 1, ++/*443608*/ OPC_CheckChild1Type, MVT::i32, ++/*443610*/ OPC_CheckChild2Integer, 1, ++/*443612*/ OPC_CheckChild2Type, MVT::i32, ++/*443614*/ OPC_CheckChild3Integer, 1, ++/*443616*/ OPC_CheckChild3Type, MVT::i32, ++/*443618*/ OPC_CheckChild4Integer, 1, ++/*443620*/ OPC_CheckChild4Type, MVT::i32, ++/*443622*/ OPC_MoveChild5, ++/*443623*/ OPC_CheckInteger, 1, ++/*443625*/ OPC_CheckType, MVT::i32, ++/*443627*/ OPC_MoveParent, ++/*443628*/ OPC_MoveChild6, ++/*443629*/ OPC_CheckInteger, 1, ++/*443631*/ OPC_CheckType, MVT::i32, ++/*443633*/ OPC_MoveParent, ++/*443634*/ OPC_MoveChild7, ++/*443635*/ OPC_CheckInteger, 1, ++/*443637*/ OPC_CheckType, MVT::i32, ++/*443639*/ OPC_MoveParent, ++/*443640*/ OPC_MoveParent, ++/*443641*/ OPC_CheckChild1Same, 0, ++/*443643*/ OPC_MoveParent, ++/*443644*/ OPC_CheckChild1Same, 1, ++/*443646*/ OPC_MoveParent, ++/*443647*/ OPC_MoveChild1, ++/*443648*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*443651*/ OPC_CheckChild0Integer, 31, ++/*443653*/ OPC_CheckChild0Type, MVT::i32, ++/*443655*/ OPC_CheckChild1Integer, 31, ++/*443657*/ OPC_CheckChild1Type, MVT::i32, ++/*443659*/ OPC_CheckChild2Integer, 31, ++/*443661*/ OPC_CheckChild2Type, MVT::i32, ++/*443663*/ OPC_CheckChild3Integer, 31, ++/*443665*/ OPC_CheckChild3Type, MVT::i32, ++/*443667*/ OPC_CheckChild4Integer, 31, ++/*443669*/ OPC_CheckChild4Type, MVT::i32, ++/*443671*/ OPC_MoveChild5, ++/*443672*/ OPC_CheckInteger, 31, ++/*443674*/ OPC_CheckType, MVT::i32, ++/*443676*/ OPC_MoveParent, ++/*443677*/ OPC_MoveChild6, ++/*443678*/ OPC_CheckInteger, 31, ++/*443680*/ OPC_CheckType, MVT::i32, ++/*443682*/ OPC_MoveParent, ++/*443683*/ OPC_MoveChild7, ++/*443684*/ OPC_CheckInteger, 31, ++/*443686*/ OPC_CheckType, MVT::i32, ++/*443688*/ OPC_MoveParent, ++/*443689*/ OPC_CheckType, MVT::v8i32, ++/*443691*/ OPC_MoveParent, ++/*443692*/ OPC_MoveParent, ++/*443693*/ OPC_MoveParent, ++/*443694*/ OPC_MoveChild1, ++/*443695*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*443698*/ OPC_CheckChild0Integer, 1, ++/*443700*/ OPC_CheckChild0Type, MVT::i32, ++/*443702*/ OPC_CheckChild1Integer, 1, ++/*443704*/ OPC_CheckChild1Type, MVT::i32, ++/*443706*/ OPC_CheckChild2Integer, 1, ++/*443708*/ OPC_CheckChild2Type, MVT::i32, ++/*443710*/ OPC_CheckChild3Integer, 1, ++/*443712*/ OPC_CheckChild3Type, MVT::i32, ++/*443714*/ OPC_CheckChild4Integer, 1, ++/*443716*/ OPC_CheckChild4Type, MVT::i32, ++/*443718*/ OPC_MoveChild5, ++/*443719*/ OPC_CheckInteger, 1, ++/*443721*/ OPC_CheckType, MVT::i32, ++/*443723*/ OPC_MoveParent, ++/*443724*/ OPC_MoveChild6, ++/*443725*/ OPC_CheckInteger, 1, ++/*443727*/ OPC_CheckType, MVT::i32, ++/*443729*/ OPC_MoveParent, ++/*443730*/ OPC_MoveChild7, ++/*443731*/ OPC_CheckInteger, 1, ++/*443733*/ OPC_CheckType, MVT::i32, ++/*443735*/ OPC_MoveParent, ++/*443736*/ OPC_CheckType, MVT::v8i32, ++/*443738*/ OPC_MoveParent, ++/*443739*/ OPC_CheckType, MVT::v8i32, ++/*443741*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*443743*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b), LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*443751*/ /*Scope*/ 25|128,1/*153*/, /*->443906*/ ++/*443753*/ OPC_CheckChild0Same, 0, ++/*443755*/ OPC_MoveChild1, ++/*443756*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*443759*/ OPC_CheckChild0Integer, 1, ++/*443761*/ OPC_CheckChild0Type, MVT::i32, ++/*443763*/ OPC_CheckChild1Integer, 1, ++/*443765*/ OPC_CheckChild1Type, MVT::i32, ++/*443767*/ OPC_CheckChild2Integer, 1, ++/*443769*/ OPC_CheckChild2Type, MVT::i32, ++/*443771*/ OPC_CheckChild3Integer, 1, ++/*443773*/ OPC_CheckChild3Type, MVT::i32, ++/*443775*/ OPC_CheckChild4Integer, 1, ++/*443777*/ OPC_CheckChild4Type, MVT::i32, ++/*443779*/ OPC_MoveChild5, ++/*443780*/ OPC_CheckInteger, 1, ++/*443782*/ OPC_CheckType, MVT::i32, ++/*443784*/ OPC_MoveParent, ++/*443785*/ OPC_MoveChild6, ++/*443786*/ OPC_CheckInteger, 1, ++/*443788*/ OPC_CheckType, MVT::i32, ++/*443790*/ OPC_MoveParent, ++/*443791*/ OPC_MoveChild7, ++/*443792*/ OPC_CheckInteger, 1, ++/*443794*/ OPC_CheckType, MVT::i32, ++/*443796*/ OPC_MoveParent, ++/*443797*/ OPC_MoveParent, ++/*443798*/ OPC_MoveParent, ++/*443799*/ OPC_CheckChild1Same, 1, ++/*443801*/ OPC_MoveParent, ++/*443802*/ OPC_MoveChild1, ++/*443803*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*443806*/ OPC_CheckChild0Integer, 31, ++/*443808*/ OPC_CheckChild0Type, MVT::i32, ++/*443810*/ OPC_CheckChild1Integer, 31, ++/*443812*/ OPC_CheckChild1Type, MVT::i32, ++/*443814*/ OPC_CheckChild2Integer, 31, ++/*443816*/ OPC_CheckChild2Type, MVT::i32, ++/*443818*/ OPC_CheckChild3Integer, 31, ++/*443820*/ OPC_CheckChild3Type, MVT::i32, ++/*443822*/ OPC_CheckChild4Integer, 31, ++/*443824*/ OPC_CheckChild4Type, MVT::i32, ++/*443826*/ OPC_MoveChild5, ++/*443827*/ OPC_CheckInteger, 31, ++/*443829*/ OPC_CheckType, MVT::i32, ++/*443831*/ OPC_MoveParent, ++/*443832*/ OPC_MoveChild6, ++/*443833*/ OPC_CheckInteger, 31, ++/*443835*/ OPC_CheckType, MVT::i32, ++/*443837*/ OPC_MoveParent, ++/*443838*/ OPC_MoveChild7, ++/*443839*/ OPC_CheckInteger, 31, ++/*443841*/ OPC_CheckType, MVT::i32, ++/*443843*/ OPC_MoveParent, ++/*443844*/ OPC_CheckType, MVT::v8i32, ++/*443846*/ OPC_MoveParent, ++/*443847*/ OPC_MoveParent, ++/*443848*/ OPC_MoveParent, ++/*443849*/ OPC_MoveChild1, ++/*443850*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*443853*/ OPC_CheckChild0Integer, 1, ++/*443855*/ OPC_CheckChild0Type, MVT::i32, ++/*443857*/ OPC_CheckChild1Integer, 1, ++/*443859*/ OPC_CheckChild1Type, MVT::i32, ++/*443861*/ OPC_CheckChild2Integer, 1, ++/*443863*/ OPC_CheckChild2Type, MVT::i32, ++/*443865*/ OPC_CheckChild3Integer, 1, ++/*443867*/ OPC_CheckChild3Type, MVT::i32, ++/*443869*/ OPC_CheckChild4Integer, 1, ++/*443871*/ OPC_CheckChild4Type, MVT::i32, ++/*443873*/ OPC_MoveChild5, ++/*443874*/ OPC_CheckInteger, 1, ++/*443876*/ OPC_CheckType, MVT::i32, ++/*443878*/ OPC_MoveParent, ++/*443879*/ OPC_MoveChild6, ++/*443880*/ OPC_CheckInteger, 1, ++/*443882*/ OPC_CheckType, MVT::i32, ++/*443884*/ OPC_MoveParent, ++/*443885*/ OPC_MoveChild7, ++/*443886*/ OPC_CheckInteger, 1, ++/*443888*/ OPC_CheckType, MVT::i32, ++/*443890*/ OPC_MoveParent, ++/*443891*/ OPC_CheckType, MVT::v8i32, ++/*443893*/ OPC_MoveParent, ++/*443894*/ OPC_CheckType, MVT::v8i32, ++/*443896*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*443898*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*443906*/ /*Scope*/ 25|128,1/*153*/, /*->444061*/ ++/*443908*/ OPC_CheckChild0Same, 1, ++/*443910*/ OPC_CheckChild1Same, 0, ++/*443912*/ OPC_MoveParent, ++/*443913*/ OPC_MoveChild1, ++/*443914*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*443917*/ OPC_CheckChild0Integer, 1, ++/*443919*/ OPC_CheckChild0Type, MVT::i32, ++/*443921*/ OPC_CheckChild1Integer, 1, ++/*443923*/ OPC_CheckChild1Type, MVT::i32, ++/*443925*/ OPC_CheckChild2Integer, 1, ++/*443927*/ OPC_CheckChild2Type, MVT::i32, ++/*443929*/ OPC_CheckChild3Integer, 1, ++/*443931*/ OPC_CheckChild3Type, MVT::i32, ++/*443933*/ OPC_CheckChild4Integer, 1, ++/*443935*/ OPC_CheckChild4Type, MVT::i32, ++/*443937*/ OPC_MoveChild5, ++/*443938*/ OPC_CheckInteger, 1, ++/*443940*/ OPC_CheckType, MVT::i32, ++/*443942*/ OPC_MoveParent, ++/*443943*/ OPC_MoveChild6, ++/*443944*/ OPC_CheckInteger, 1, ++/*443946*/ OPC_CheckType, MVT::i32, ++/*443948*/ OPC_MoveParent, ++/*443949*/ OPC_MoveChild7, ++/*443950*/ OPC_CheckInteger, 1, ++/*443952*/ OPC_CheckType, MVT::i32, ++/*443954*/ OPC_MoveParent, ++/*443955*/ OPC_MoveParent, ++/*443956*/ OPC_MoveParent, ++/*443957*/ OPC_MoveChild1, ++/*443958*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*443961*/ OPC_CheckChild0Integer, 31, ++/*443963*/ OPC_CheckChild0Type, MVT::i32, ++/*443965*/ OPC_CheckChild1Integer, 31, ++/*443967*/ OPC_CheckChild1Type, MVT::i32, ++/*443969*/ OPC_CheckChild2Integer, 31, ++/*443971*/ OPC_CheckChild2Type, MVT::i32, ++/*443973*/ OPC_CheckChild3Integer, 31, ++/*443975*/ OPC_CheckChild3Type, MVT::i32, ++/*443977*/ OPC_CheckChild4Integer, 31, ++/*443979*/ OPC_CheckChild4Type, MVT::i32, ++/*443981*/ OPC_MoveChild5, ++/*443982*/ OPC_CheckInteger, 31, ++/*443984*/ OPC_CheckType, MVT::i32, ++/*443986*/ OPC_MoveParent, ++/*443987*/ OPC_MoveChild6, ++/*443988*/ OPC_CheckInteger, 31, ++/*443990*/ OPC_CheckType, MVT::i32, ++/*443992*/ OPC_MoveParent, ++/*443993*/ OPC_MoveChild7, ++/*443994*/ OPC_CheckInteger, 31, ++/*443996*/ OPC_CheckType, MVT::i32, ++/*443998*/ OPC_MoveParent, ++/*443999*/ OPC_CheckType, MVT::v8i32, ++/*444001*/ OPC_MoveParent, ++/*444002*/ OPC_MoveParent, ++/*444003*/ OPC_MoveParent, ++/*444004*/ OPC_MoveChild1, ++/*444005*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*444008*/ OPC_CheckChild0Integer, 1, ++/*444010*/ OPC_CheckChild0Type, MVT::i32, ++/*444012*/ OPC_CheckChild1Integer, 1, ++/*444014*/ OPC_CheckChild1Type, MVT::i32, ++/*444016*/ OPC_CheckChild2Integer, 1, ++/*444018*/ OPC_CheckChild2Type, MVT::i32, ++/*444020*/ OPC_CheckChild3Integer, 1, ++/*444022*/ OPC_CheckChild3Type, MVT::i32, ++/*444024*/ OPC_CheckChild4Integer, 1, ++/*444026*/ OPC_CheckChild4Type, MVT::i32, ++/*444028*/ OPC_MoveChild5, ++/*444029*/ OPC_CheckInteger, 1, ++/*444031*/ OPC_CheckType, MVT::i32, ++/*444033*/ OPC_MoveParent, ++/*444034*/ OPC_MoveChild6, ++/*444035*/ OPC_CheckInteger, 1, ++/*444037*/ OPC_CheckType, MVT::i32, ++/*444039*/ OPC_MoveParent, ++/*444040*/ OPC_MoveChild7, ++/*444041*/ OPC_CheckInteger, 1, ++/*444043*/ OPC_CheckType, MVT::i32, ++/*444045*/ OPC_MoveParent, ++/*444046*/ OPC_CheckType, MVT::v8i32, ++/*444048*/ OPC_MoveParent, ++/*444049*/ OPC_CheckType, MVT::v8i32, ++/*444051*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*444053*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*444061*/ /*Scope*/ 25|128,1/*153*/, /*->444216*/ ++/*444063*/ OPC_CheckChild0Same, 0, ++/*444065*/ OPC_CheckChild1Same, 1, ++/*444067*/ OPC_MoveParent, ++/*444068*/ OPC_MoveChild1, ++/*444069*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*444072*/ OPC_CheckChild0Integer, 1, ++/*444074*/ OPC_CheckChild0Type, MVT::i32, ++/*444076*/ OPC_CheckChild1Integer, 1, ++/*444078*/ OPC_CheckChild1Type, MVT::i32, ++/*444080*/ OPC_CheckChild2Integer, 1, ++/*444082*/ OPC_CheckChild2Type, MVT::i32, ++/*444084*/ OPC_CheckChild3Integer, 1, ++/*444086*/ OPC_CheckChild3Type, MVT::i32, ++/*444088*/ OPC_CheckChild4Integer, 1, ++/*444090*/ OPC_CheckChild4Type, MVT::i32, ++/*444092*/ OPC_MoveChild5, ++/*444093*/ OPC_CheckInteger, 1, ++/*444095*/ OPC_CheckType, MVT::i32, ++/*444097*/ OPC_MoveParent, ++/*444098*/ OPC_MoveChild6, ++/*444099*/ OPC_CheckInteger, 1, ++/*444101*/ OPC_CheckType, MVT::i32, ++/*444103*/ OPC_MoveParent, ++/*444104*/ OPC_MoveChild7, ++/*444105*/ OPC_CheckInteger, 1, ++/*444107*/ OPC_CheckType, MVT::i32, ++/*444109*/ OPC_MoveParent, ++/*444110*/ OPC_MoveParent, ++/*444111*/ OPC_MoveParent, ++/*444112*/ OPC_MoveChild1, ++/*444113*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*444116*/ OPC_CheckChild0Integer, 31, ++/*444118*/ OPC_CheckChild0Type, MVT::i32, ++/*444120*/ OPC_CheckChild1Integer, 31, ++/*444122*/ OPC_CheckChild1Type, MVT::i32, ++/*444124*/ OPC_CheckChild2Integer, 31, ++/*444126*/ OPC_CheckChild2Type, MVT::i32, ++/*444128*/ OPC_CheckChild3Integer, 31, ++/*444130*/ OPC_CheckChild3Type, MVT::i32, ++/*444132*/ OPC_CheckChild4Integer, 31, ++/*444134*/ OPC_CheckChild4Type, MVT::i32, ++/*444136*/ OPC_MoveChild5, ++/*444137*/ OPC_CheckInteger, 31, ++/*444139*/ OPC_CheckType, MVT::i32, ++/*444141*/ OPC_MoveParent, ++/*444142*/ OPC_MoveChild6, ++/*444143*/ OPC_CheckInteger, 31, ++/*444145*/ OPC_CheckType, MVT::i32, ++/*444147*/ OPC_MoveParent, ++/*444148*/ OPC_MoveChild7, ++/*444149*/ OPC_CheckInteger, 31, ++/*444151*/ OPC_CheckType, MVT::i32, ++/*444153*/ OPC_MoveParent, ++/*444154*/ OPC_CheckType, MVT::v8i32, ++/*444156*/ OPC_MoveParent, ++/*444157*/ OPC_MoveParent, ++/*444158*/ OPC_MoveParent, ++/*444159*/ OPC_MoveChild1, ++/*444160*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*444163*/ OPC_CheckChild0Integer, 1, ++/*444165*/ OPC_CheckChild0Type, MVT::i32, ++/*444167*/ OPC_CheckChild1Integer, 1, ++/*444169*/ OPC_CheckChild1Type, MVT::i32, ++/*444171*/ OPC_CheckChild2Integer, 1, ++/*444173*/ OPC_CheckChild2Type, MVT::i32, ++/*444175*/ OPC_CheckChild3Integer, 1, ++/*444177*/ OPC_CheckChild3Type, MVT::i32, ++/*444179*/ OPC_CheckChild4Integer, 1, ++/*444181*/ OPC_CheckChild4Type, MVT::i32, ++/*444183*/ OPC_MoveChild5, ++/*444184*/ OPC_CheckInteger, 1, ++/*444186*/ OPC_CheckType, MVT::i32, ++/*444188*/ OPC_MoveParent, ++/*444189*/ OPC_MoveChild6, ++/*444190*/ OPC_CheckInteger, 1, ++/*444192*/ OPC_CheckType, MVT::i32, ++/*444194*/ OPC_MoveParent, ++/*444195*/ OPC_MoveChild7, ++/*444196*/ OPC_CheckInteger, 1, ++/*444198*/ OPC_CheckType, MVT::i32, ++/*444200*/ OPC_MoveParent, ++/*444201*/ OPC_CheckType, MVT::v8i32, ++/*444203*/ OPC_MoveParent, ++/*444204*/ OPC_CheckType, MVT::v8i32, ++/*444206*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*444208*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*444216*/ 0, /*End of Scope*/ ++/*444217*/ 0, // EndSwitchOpcode ++/*444218*/ /*Scope*/ 58|128,2/*314*/, /*->444534*/ ++/*444220*/ OPC_CheckChild0Same, 0, ++/*444222*/ OPC_MoveChild1, ++/*444223*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*444226*/ OPC_Scope, 23|128,1/*151*/, /*->444380*/ // 2 children in Scope ++/*444229*/ OPC_MoveChild0, ++/*444230*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*444233*/ OPC_CheckChild0Integer, 1, ++/*444235*/ OPC_CheckChild0Type, MVT::i32, ++/*444237*/ OPC_CheckChild1Integer, 1, ++/*444239*/ OPC_CheckChild1Type, MVT::i32, ++/*444241*/ OPC_CheckChild2Integer, 1, ++/*444243*/ OPC_CheckChild2Type, MVT::i32, ++/*444245*/ OPC_CheckChild3Integer, 1, ++/*444247*/ OPC_CheckChild3Type, MVT::i32, ++/*444249*/ OPC_CheckChild4Integer, 1, ++/*444251*/ OPC_CheckChild4Type, MVT::i32, ++/*444253*/ OPC_MoveChild5, ++/*444254*/ OPC_CheckInteger, 1, ++/*444256*/ OPC_CheckType, MVT::i32, ++/*444258*/ OPC_MoveParent, ++/*444259*/ OPC_MoveChild6, ++/*444260*/ OPC_CheckInteger, 1, ++/*444262*/ OPC_CheckType, MVT::i32, ++/*444264*/ OPC_MoveParent, ++/*444265*/ OPC_MoveChild7, ++/*444266*/ OPC_CheckInteger, 1, ++/*444268*/ OPC_CheckType, MVT::i32, ++/*444270*/ OPC_MoveParent, ++/*444271*/ OPC_MoveParent, ++/*444272*/ OPC_CheckChild1Same, 1, ++/*444274*/ OPC_MoveParent, ++/*444275*/ OPC_MoveParent, ++/*444276*/ OPC_MoveChild1, ++/*444277*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*444280*/ OPC_CheckChild0Integer, 31, ++/*444282*/ OPC_CheckChild0Type, MVT::i32, ++/*444284*/ OPC_CheckChild1Integer, 31, ++/*444286*/ OPC_CheckChild1Type, MVT::i32, ++/*444288*/ OPC_CheckChild2Integer, 31, ++/*444290*/ OPC_CheckChild2Type, MVT::i32, ++/*444292*/ OPC_CheckChild3Integer, 31, ++/*444294*/ OPC_CheckChild3Type, MVT::i32, ++/*444296*/ OPC_CheckChild4Integer, 31, ++/*444298*/ OPC_CheckChild4Type, MVT::i32, ++/*444300*/ OPC_MoveChild5, ++/*444301*/ OPC_CheckInteger, 31, ++/*444303*/ OPC_CheckType, MVT::i32, ++/*444305*/ OPC_MoveParent, ++/*444306*/ OPC_MoveChild6, ++/*444307*/ OPC_CheckInteger, 31, ++/*444309*/ OPC_CheckType, MVT::i32, ++/*444311*/ OPC_MoveParent, ++/*444312*/ OPC_MoveChild7, ++/*444313*/ OPC_CheckInteger, 31, ++/*444315*/ OPC_CheckType, MVT::i32, ++/*444317*/ OPC_MoveParent, ++/*444318*/ OPC_CheckType, MVT::v8i32, ++/*444320*/ OPC_MoveParent, ++/*444321*/ OPC_MoveParent, ++/*444322*/ OPC_MoveParent, ++/*444323*/ OPC_MoveChild1, ++/*444324*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*444327*/ OPC_CheckChild0Integer, 1, ++/*444329*/ OPC_CheckChild0Type, MVT::i32, ++/*444331*/ OPC_CheckChild1Integer, 1, ++/*444333*/ OPC_CheckChild1Type, MVT::i32, ++/*444335*/ OPC_CheckChild2Integer, 1, ++/*444337*/ OPC_CheckChild2Type, MVT::i32, ++/*444339*/ OPC_CheckChild3Integer, 1, ++/*444341*/ OPC_CheckChild3Type, MVT::i32, ++/*444343*/ OPC_CheckChild4Integer, 1, ++/*444345*/ OPC_CheckChild4Type, MVT::i32, ++/*444347*/ OPC_MoveChild5, ++/*444348*/ OPC_CheckInteger, 1, ++/*444350*/ OPC_CheckType, MVT::i32, ++/*444352*/ OPC_MoveParent, ++/*444353*/ OPC_MoveChild6, ++/*444354*/ OPC_CheckInteger, 1, ++/*444356*/ OPC_CheckType, MVT::i32, ++/*444358*/ OPC_MoveParent, ++/*444359*/ OPC_MoveChild7, ++/*444360*/ OPC_CheckInteger, 1, ++/*444362*/ OPC_CheckType, MVT::i32, ++/*444364*/ OPC_MoveParent, ++/*444365*/ OPC_CheckType, MVT::v8i32, ++/*444367*/ OPC_MoveParent, ++/*444368*/ OPC_CheckType, MVT::v8i32, ++/*444370*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*444372*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*444380*/ /*Scope*/ 23|128,1/*151*/, /*->444533*/ ++/*444382*/ OPC_CheckChild0Same, 1, ++/*444384*/ OPC_MoveChild1, ++/*444385*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*444388*/ OPC_CheckChild0Integer, 1, ++/*444390*/ OPC_CheckChild0Type, MVT::i32, ++/*444392*/ OPC_CheckChild1Integer, 1, ++/*444394*/ OPC_CheckChild1Type, MVT::i32, ++/*444396*/ OPC_CheckChild2Integer, 1, ++/*444398*/ OPC_CheckChild2Type, MVT::i32, ++/*444400*/ OPC_CheckChild3Integer, 1, ++/*444402*/ OPC_CheckChild3Type, MVT::i32, ++/*444404*/ OPC_CheckChild4Integer, 1, ++/*444406*/ OPC_CheckChild4Type, MVT::i32, ++/*444408*/ OPC_MoveChild5, ++/*444409*/ OPC_CheckInteger, 1, ++/*444411*/ OPC_CheckType, MVT::i32, ++/*444413*/ OPC_MoveParent, ++/*444414*/ OPC_MoveChild6, ++/*444415*/ OPC_CheckInteger, 1, ++/*444417*/ OPC_CheckType, MVT::i32, ++/*444419*/ OPC_MoveParent, ++/*444420*/ OPC_MoveChild7, ++/*444421*/ OPC_CheckInteger, 1, ++/*444423*/ OPC_CheckType, MVT::i32, ++/*444425*/ OPC_MoveParent, ++/*444426*/ OPC_MoveParent, ++/*444427*/ OPC_MoveParent, ++/*444428*/ OPC_MoveParent, ++/*444429*/ OPC_MoveChild1, ++/*444430*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*444433*/ OPC_CheckChild0Integer, 31, ++/*444435*/ OPC_CheckChild0Type, MVT::i32, ++/*444437*/ OPC_CheckChild1Integer, 31, ++/*444439*/ OPC_CheckChild1Type, MVT::i32, ++/*444441*/ OPC_CheckChild2Integer, 31, ++/*444443*/ OPC_CheckChild2Type, MVT::i32, ++/*444445*/ OPC_CheckChild3Integer, 31, ++/*444447*/ OPC_CheckChild3Type, MVT::i32, ++/*444449*/ OPC_CheckChild4Integer, 31, ++/*444451*/ OPC_CheckChild4Type, MVT::i32, ++/*444453*/ OPC_MoveChild5, ++/*444454*/ OPC_CheckInteger, 31, ++/*444456*/ OPC_CheckType, MVT::i32, ++/*444458*/ OPC_MoveParent, ++/*444459*/ OPC_MoveChild6, ++/*444460*/ OPC_CheckInteger, 31, ++/*444462*/ OPC_CheckType, MVT::i32, ++/*444464*/ OPC_MoveParent, ++/*444465*/ OPC_MoveChild7, ++/*444466*/ OPC_CheckInteger, 31, ++/*444468*/ OPC_CheckType, MVT::i32, ++/*444470*/ OPC_MoveParent, ++/*444471*/ OPC_CheckType, MVT::v8i32, ++/*444473*/ OPC_MoveParent, ++/*444474*/ OPC_MoveParent, ++/*444475*/ OPC_MoveParent, ++/*444476*/ OPC_MoveChild1, ++/*444477*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*444480*/ OPC_CheckChild0Integer, 1, ++/*444482*/ OPC_CheckChild0Type, MVT::i32, ++/*444484*/ OPC_CheckChild1Integer, 1, ++/*444486*/ OPC_CheckChild1Type, MVT::i32, ++/*444488*/ OPC_CheckChild2Integer, 1, ++/*444490*/ OPC_CheckChild2Type, MVT::i32, ++/*444492*/ OPC_CheckChild3Integer, 1, ++/*444494*/ OPC_CheckChild3Type, MVT::i32, ++/*444496*/ OPC_CheckChild4Integer, 1, ++/*444498*/ OPC_CheckChild4Type, MVT::i32, ++/*444500*/ OPC_MoveChild5, ++/*444501*/ OPC_CheckInteger, 1, ++/*444503*/ OPC_CheckType, MVT::i32, ++/*444505*/ OPC_MoveParent, ++/*444506*/ OPC_MoveChild6, ++/*444507*/ OPC_CheckInteger, 1, ++/*444509*/ OPC_CheckType, MVT::i32, ++/*444511*/ OPC_MoveParent, ++/*444512*/ OPC_MoveChild7, ++/*444513*/ OPC_CheckInteger, 1, ++/*444515*/ OPC_CheckType, MVT::i32, ++/*444517*/ OPC_MoveParent, ++/*444518*/ OPC_CheckType, MVT::v8i32, ++/*444520*/ OPC_MoveParent, ++/*444521*/ OPC_CheckType, MVT::v8i32, ++/*444523*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*444525*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*444533*/ 0, /*End of Scope*/ ++/*444534*/ /*Scope*/ 58|128,2/*314*/, /*->444850*/ ++/*444536*/ OPC_CheckChild0Same, 1, ++/*444538*/ OPC_MoveChild1, ++/*444539*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*444542*/ OPC_Scope, 23|128,1/*151*/, /*->444696*/ // 2 children in Scope ++/*444545*/ OPC_MoveChild0, ++/*444546*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*444549*/ OPC_CheckChild0Integer, 1, ++/*444551*/ OPC_CheckChild0Type, MVT::i32, ++/*444553*/ OPC_CheckChild1Integer, 1, ++/*444555*/ OPC_CheckChild1Type, MVT::i32, ++/*444557*/ OPC_CheckChild2Integer, 1, ++/*444559*/ OPC_CheckChild2Type, MVT::i32, ++/*444561*/ OPC_CheckChild3Integer, 1, ++/*444563*/ OPC_CheckChild3Type, MVT::i32, ++/*444565*/ OPC_CheckChild4Integer, 1, ++/*444567*/ OPC_CheckChild4Type, MVT::i32, ++/*444569*/ OPC_MoveChild5, ++/*444570*/ OPC_CheckInteger, 1, ++/*444572*/ OPC_CheckType, MVT::i32, ++/*444574*/ OPC_MoveParent, ++/*444575*/ OPC_MoveChild6, ++/*444576*/ OPC_CheckInteger, 1, ++/*444578*/ OPC_CheckType, MVT::i32, ++/*444580*/ OPC_MoveParent, ++/*444581*/ OPC_MoveChild7, ++/*444582*/ OPC_CheckInteger, 1, ++/*444584*/ OPC_CheckType, MVT::i32, ++/*444586*/ OPC_MoveParent, ++/*444587*/ OPC_MoveParent, ++/*444588*/ OPC_CheckChild1Same, 0, ++/*444590*/ OPC_MoveParent, ++/*444591*/ OPC_MoveParent, ++/*444592*/ OPC_MoveChild1, ++/*444593*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*444596*/ OPC_CheckChild0Integer, 31, ++/*444598*/ OPC_CheckChild0Type, MVT::i32, ++/*444600*/ OPC_CheckChild1Integer, 31, ++/*444602*/ OPC_CheckChild1Type, MVT::i32, ++/*444604*/ OPC_CheckChild2Integer, 31, ++/*444606*/ OPC_CheckChild2Type, MVT::i32, ++/*444608*/ OPC_CheckChild3Integer, 31, ++/*444610*/ OPC_CheckChild3Type, MVT::i32, ++/*444612*/ OPC_CheckChild4Integer, 31, ++/*444614*/ OPC_CheckChild4Type, MVT::i32, ++/*444616*/ OPC_MoveChild5, ++/*444617*/ OPC_CheckInteger, 31, ++/*444619*/ OPC_CheckType, MVT::i32, ++/*444621*/ OPC_MoveParent, ++/*444622*/ OPC_MoveChild6, ++/*444623*/ OPC_CheckInteger, 31, ++/*444625*/ OPC_CheckType, MVT::i32, ++/*444627*/ OPC_MoveParent, ++/*444628*/ OPC_MoveChild7, ++/*444629*/ OPC_CheckInteger, 31, ++/*444631*/ OPC_CheckType, MVT::i32, ++/*444633*/ OPC_MoveParent, ++/*444634*/ OPC_CheckType, MVT::v8i32, ++/*444636*/ OPC_MoveParent, ++/*444637*/ OPC_MoveParent, ++/*444638*/ OPC_MoveParent, ++/*444639*/ OPC_MoveChild1, ++/*444640*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*444643*/ OPC_CheckChild0Integer, 1, ++/*444645*/ OPC_CheckChild0Type, MVT::i32, ++/*444647*/ OPC_CheckChild1Integer, 1, ++/*444649*/ OPC_CheckChild1Type, MVT::i32, ++/*444651*/ OPC_CheckChild2Integer, 1, ++/*444653*/ OPC_CheckChild2Type, MVT::i32, ++/*444655*/ OPC_CheckChild3Integer, 1, ++/*444657*/ OPC_CheckChild3Type, MVT::i32, ++/*444659*/ OPC_CheckChild4Integer, 1, ++/*444661*/ OPC_CheckChild4Type, MVT::i32, ++/*444663*/ OPC_MoveChild5, ++/*444664*/ OPC_CheckInteger, 1, ++/*444666*/ OPC_CheckType, MVT::i32, ++/*444668*/ OPC_MoveParent, ++/*444669*/ OPC_MoveChild6, ++/*444670*/ OPC_CheckInteger, 1, ++/*444672*/ OPC_CheckType, MVT::i32, ++/*444674*/ OPC_MoveParent, ++/*444675*/ OPC_MoveChild7, ++/*444676*/ OPC_CheckInteger, 1, ++/*444678*/ OPC_CheckType, MVT::i32, ++/*444680*/ OPC_MoveParent, ++/*444681*/ OPC_CheckType, MVT::v8i32, ++/*444683*/ OPC_MoveParent, ++/*444684*/ OPC_CheckType, MVT::v8i32, ++/*444686*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*444688*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*444696*/ /*Scope*/ 23|128,1/*151*/, /*->444849*/ ++/*444698*/ OPC_CheckChild0Same, 0, ++/*444700*/ OPC_MoveChild1, ++/*444701*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*444704*/ OPC_CheckChild0Integer, 1, ++/*444706*/ OPC_CheckChild0Type, MVT::i32, ++/*444708*/ OPC_CheckChild1Integer, 1, ++/*444710*/ OPC_CheckChild1Type, MVT::i32, ++/*444712*/ OPC_CheckChild2Integer, 1, ++/*444714*/ OPC_CheckChild2Type, MVT::i32, ++/*444716*/ OPC_CheckChild3Integer, 1, ++/*444718*/ OPC_CheckChild3Type, MVT::i32, ++/*444720*/ OPC_CheckChild4Integer, 1, ++/*444722*/ OPC_CheckChild4Type, MVT::i32, ++/*444724*/ OPC_MoveChild5, ++/*444725*/ OPC_CheckInteger, 1, ++/*444727*/ OPC_CheckType, MVT::i32, ++/*444729*/ OPC_MoveParent, ++/*444730*/ OPC_MoveChild6, ++/*444731*/ OPC_CheckInteger, 1, ++/*444733*/ OPC_CheckType, MVT::i32, ++/*444735*/ OPC_MoveParent, ++/*444736*/ OPC_MoveChild7, ++/*444737*/ OPC_CheckInteger, 1, ++/*444739*/ OPC_CheckType, MVT::i32, ++/*444741*/ OPC_MoveParent, ++/*444742*/ OPC_MoveParent, ++/*444743*/ OPC_MoveParent, ++/*444744*/ OPC_MoveParent, ++/*444745*/ OPC_MoveChild1, ++/*444746*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*444749*/ OPC_CheckChild0Integer, 31, ++/*444751*/ OPC_CheckChild0Type, MVT::i32, ++/*444753*/ OPC_CheckChild1Integer, 31, ++/*444755*/ OPC_CheckChild1Type, MVT::i32, ++/*444757*/ OPC_CheckChild2Integer, 31, ++/*444759*/ OPC_CheckChild2Type, MVT::i32, ++/*444761*/ OPC_CheckChild3Integer, 31, ++/*444763*/ OPC_CheckChild3Type, MVT::i32, ++/*444765*/ OPC_CheckChild4Integer, 31, ++/*444767*/ OPC_CheckChild4Type, MVT::i32, ++/*444769*/ OPC_MoveChild5, ++/*444770*/ OPC_CheckInteger, 31, ++/*444772*/ OPC_CheckType, MVT::i32, ++/*444774*/ OPC_MoveParent, ++/*444775*/ OPC_MoveChild6, ++/*444776*/ OPC_CheckInteger, 31, ++/*444778*/ OPC_CheckType, MVT::i32, ++/*444780*/ OPC_MoveParent, ++/*444781*/ OPC_MoveChild7, ++/*444782*/ OPC_CheckInteger, 31, ++/*444784*/ OPC_CheckType, MVT::i32, ++/*444786*/ OPC_MoveParent, ++/*444787*/ OPC_CheckType, MVT::v8i32, ++/*444789*/ OPC_MoveParent, ++/*444790*/ OPC_MoveParent, ++/*444791*/ OPC_MoveParent, ++/*444792*/ OPC_MoveChild1, ++/*444793*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*444796*/ OPC_CheckChild0Integer, 1, ++/*444798*/ OPC_CheckChild0Type, MVT::i32, ++/*444800*/ OPC_CheckChild1Integer, 1, ++/*444802*/ OPC_CheckChild1Type, MVT::i32, ++/*444804*/ OPC_CheckChild2Integer, 1, ++/*444806*/ OPC_CheckChild2Type, MVT::i32, ++/*444808*/ OPC_CheckChild3Integer, 1, ++/*444810*/ OPC_CheckChild3Type, MVT::i32, ++/*444812*/ OPC_CheckChild4Integer, 1, ++/*444814*/ OPC_CheckChild4Type, MVT::i32, ++/*444816*/ OPC_MoveChild5, ++/*444817*/ OPC_CheckInteger, 1, ++/*444819*/ OPC_CheckType, MVT::i32, ++/*444821*/ OPC_MoveParent, ++/*444822*/ OPC_MoveChild6, ++/*444823*/ OPC_CheckInteger, 1, ++/*444825*/ OPC_CheckType, MVT::i32, ++/*444827*/ OPC_MoveParent, ++/*444828*/ OPC_MoveChild7, ++/*444829*/ OPC_CheckInteger, 1, ++/*444831*/ OPC_CheckType, MVT::i32, ++/*444833*/ OPC_MoveParent, ++/*444834*/ OPC_CheckType, MVT::v8i32, ++/*444836*/ OPC_MoveParent, ++/*444837*/ OPC_CheckType, MVT::v8i32, ++/*444839*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*444841*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*444849*/ 0, /*End of Scope*/ ++/*444850*/ /*Scope*/ 15|128,2/*271*/, /*->445123*/ ++/*444852*/ OPC_MoveChild0, ++/*444853*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*444856*/ OPC_CheckChild0Integer, 1, ++/*444858*/ OPC_CheckChild0Type, MVT::i32, ++/*444860*/ OPC_CheckChild1Integer, 1, ++/*444862*/ OPC_CheckChild1Type, MVT::i32, ++/*444864*/ OPC_CheckChild2Integer, 1, ++/*444866*/ OPC_CheckChild2Type, MVT::i32, ++/*444868*/ OPC_CheckChild3Integer, 1, ++/*444870*/ OPC_CheckChild3Type, MVT::i32, ++/*444872*/ OPC_CheckChild4Integer, 1, ++/*444874*/ OPC_CheckChild4Type, MVT::i32, ++/*444876*/ OPC_MoveChild5, ++/*444877*/ OPC_CheckInteger, 1, ++/*444879*/ OPC_CheckType, MVT::i32, ++/*444881*/ OPC_MoveParent, ++/*444882*/ OPC_MoveChild6, ++/*444883*/ OPC_CheckInteger, 1, ++/*444885*/ OPC_CheckType, MVT::i32, ++/*444887*/ OPC_MoveParent, ++/*444888*/ OPC_MoveChild7, ++/*444889*/ OPC_CheckInteger, 1, ++/*444891*/ OPC_CheckType, MVT::i32, ++/*444893*/ OPC_MoveParent, ++/*444894*/ OPC_MoveParent, ++/*444895*/ OPC_MoveChild1, ++/*444896*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*444899*/ OPC_Scope, 110, /*->445011*/ // 2 children in Scope ++/*444901*/ OPC_CheckChild0Same, 1, ++/*444903*/ OPC_CheckChild1Same, 0, ++/*444905*/ OPC_MoveParent, ++/*444906*/ OPC_MoveParent, ++/*444907*/ OPC_MoveChild1, ++/*444908*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*444911*/ OPC_CheckChild0Integer, 31, ++/*444913*/ OPC_CheckChild0Type, MVT::i32, ++/*444915*/ OPC_CheckChild1Integer, 31, ++/*444917*/ OPC_CheckChild1Type, MVT::i32, ++/*444919*/ OPC_CheckChild2Integer, 31, ++/*444921*/ OPC_CheckChild2Type, MVT::i32, ++/*444923*/ OPC_CheckChild3Integer, 31, ++/*444925*/ OPC_CheckChild3Type, MVT::i32, ++/*444927*/ OPC_CheckChild4Integer, 31, ++/*444929*/ OPC_CheckChild4Type, MVT::i32, ++/*444931*/ OPC_MoveChild5, ++/*444932*/ OPC_CheckInteger, 31, ++/*444934*/ OPC_CheckType, MVT::i32, ++/*444936*/ OPC_MoveParent, ++/*444937*/ OPC_MoveChild6, ++/*444938*/ OPC_CheckInteger, 31, ++/*444940*/ OPC_CheckType, MVT::i32, ++/*444942*/ OPC_MoveParent, ++/*444943*/ OPC_MoveChild7, ++/*444944*/ OPC_CheckInteger, 31, ++/*444946*/ OPC_CheckType, MVT::i32, ++/*444948*/ OPC_MoveParent, ++/*444949*/ OPC_CheckType, MVT::v8i32, ++/*444951*/ OPC_MoveParent, ++/*444952*/ OPC_MoveParent, ++/*444953*/ OPC_MoveParent, ++/*444954*/ OPC_MoveChild1, ++/*444955*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*444958*/ OPC_CheckChild0Integer, 1, ++/*444960*/ OPC_CheckChild0Type, MVT::i32, ++/*444962*/ OPC_CheckChild1Integer, 1, ++/*444964*/ OPC_CheckChild1Type, MVT::i32, ++/*444966*/ OPC_CheckChild2Integer, 1, ++/*444968*/ OPC_CheckChild2Type, MVT::i32, ++/*444970*/ OPC_CheckChild3Integer, 1, ++/*444972*/ OPC_CheckChild3Type, MVT::i32, ++/*444974*/ OPC_CheckChild4Integer, 1, ++/*444976*/ OPC_CheckChild4Type, MVT::i32, ++/*444978*/ OPC_MoveChild5, ++/*444979*/ OPC_CheckInteger, 1, ++/*444981*/ OPC_CheckType, MVT::i32, ++/*444983*/ OPC_MoveParent, ++/*444984*/ OPC_MoveChild6, ++/*444985*/ OPC_CheckInteger, 1, ++/*444987*/ OPC_CheckType, MVT::i32, ++/*444989*/ OPC_MoveParent, ++/*444990*/ OPC_MoveChild7, ++/*444991*/ OPC_CheckInteger, 1, ++/*444993*/ OPC_CheckType, MVT::i32, ++/*444995*/ OPC_MoveParent, ++/*444996*/ OPC_CheckType, MVT::v8i32, ++/*444998*/ OPC_MoveParent, ++/*444999*/ OPC_CheckType, MVT::v8i32, ++/*445001*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*445003*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*445011*/ /*Scope*/ 110, /*->445122*/ ++/*445012*/ OPC_CheckChild0Same, 0, ++/*445014*/ OPC_CheckChild1Same, 1, ++/*445016*/ OPC_MoveParent, ++/*445017*/ OPC_MoveParent, ++/*445018*/ OPC_MoveChild1, ++/*445019*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*445022*/ OPC_CheckChild0Integer, 31, ++/*445024*/ OPC_CheckChild0Type, MVT::i32, ++/*445026*/ OPC_CheckChild1Integer, 31, ++/*445028*/ OPC_CheckChild1Type, MVT::i32, ++/*445030*/ OPC_CheckChild2Integer, 31, ++/*445032*/ OPC_CheckChild2Type, MVT::i32, ++/*445034*/ OPC_CheckChild3Integer, 31, ++/*445036*/ OPC_CheckChild3Type, MVT::i32, ++/*445038*/ OPC_CheckChild4Integer, 31, ++/*445040*/ OPC_CheckChild4Type, MVT::i32, ++/*445042*/ OPC_MoveChild5, ++/*445043*/ OPC_CheckInteger, 31, ++/*445045*/ OPC_CheckType, MVT::i32, ++/*445047*/ OPC_MoveParent, ++/*445048*/ OPC_MoveChild6, ++/*445049*/ OPC_CheckInteger, 31, ++/*445051*/ OPC_CheckType, MVT::i32, ++/*445053*/ OPC_MoveParent, ++/*445054*/ OPC_MoveChild7, ++/*445055*/ OPC_CheckInteger, 31, ++/*445057*/ OPC_CheckType, MVT::i32, ++/*445059*/ OPC_MoveParent, ++/*445060*/ OPC_CheckType, MVT::v8i32, ++/*445062*/ OPC_MoveParent, ++/*445063*/ OPC_MoveParent, ++/*445064*/ OPC_MoveParent, ++/*445065*/ OPC_MoveChild1, ++/*445066*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*445069*/ OPC_CheckChild0Integer, 1, ++/*445071*/ OPC_CheckChild0Type, MVT::i32, ++/*445073*/ OPC_CheckChild1Integer, 1, ++/*445075*/ OPC_CheckChild1Type, MVT::i32, ++/*445077*/ OPC_CheckChild2Integer, 1, ++/*445079*/ OPC_CheckChild2Type, MVT::i32, ++/*445081*/ OPC_CheckChild3Integer, 1, ++/*445083*/ OPC_CheckChild3Type, MVT::i32, ++/*445085*/ OPC_CheckChild4Integer, 1, ++/*445087*/ OPC_CheckChild4Type, MVT::i32, ++/*445089*/ OPC_MoveChild5, ++/*445090*/ OPC_CheckInteger, 1, ++/*445092*/ OPC_CheckType, MVT::i32, ++/*445094*/ OPC_MoveParent, ++/*445095*/ OPC_MoveChild6, ++/*445096*/ OPC_CheckInteger, 1, ++/*445098*/ OPC_CheckType, MVT::i32, ++/*445100*/ OPC_MoveParent, ++/*445101*/ OPC_MoveChild7, ++/*445102*/ OPC_CheckInteger, 1, ++/*445104*/ OPC_CheckType, MVT::i32, ++/*445106*/ OPC_MoveParent, ++/*445107*/ OPC_CheckType, MVT::v8i32, ++/*445109*/ OPC_MoveParent, ++/*445110*/ OPC_CheckType, MVT::v8i32, ++/*445112*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*445114*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*445122*/ 0, /*End of Scope*/ ++/*445123*/ 0, /*End of Scope*/ ++/*445124*/ 0, /*End of Scope*/ ++/*445125*/ 0, /*End of Scope*/ ++/*445126*/ 0, // EndSwitchOpcode ++/*445127*/ /*Scope*/ 59|128,59/*7611*/, /*->452740*/ ++/*445129*/ OPC_RecordChild0, // #0 = $b ++/*445130*/ OPC_MoveChild1, ++/*445131*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*445134*/ OPC_Scope, 107|128,14/*1899*/, /*->447036*/ // 4 children in Scope ++/*445137*/ OPC_MoveChild0, ++/*445138*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*445141*/ OPC_CheckChild0Integer, 1, ++/*445143*/ OPC_CheckChild0Type, MVT::i32, ++/*445145*/ OPC_CheckChild1Integer, 1, ++/*445147*/ OPC_CheckChild1Type, MVT::i32, ++/*445149*/ OPC_CheckChild2Integer, 1, ++/*445151*/ OPC_CheckChild2Type, MVT::i32, ++/*445153*/ OPC_CheckChild3Integer, 1, ++/*445155*/ OPC_CheckChild3Type, MVT::i32, ++/*445157*/ OPC_CheckChild4Integer, 1, ++/*445159*/ OPC_CheckChild4Type, MVT::i32, ++/*445161*/ OPC_MoveChild5, ++/*445162*/ OPC_CheckInteger, 1, ++/*445164*/ OPC_CheckType, MVT::i32, ++/*445166*/ OPC_MoveParent, ++/*445167*/ OPC_MoveChild6, ++/*445168*/ OPC_CheckInteger, 1, ++/*445170*/ OPC_CheckType, MVT::i32, ++/*445172*/ OPC_MoveParent, ++/*445173*/ OPC_MoveChild7, ++/*445174*/ OPC_CheckInteger, 1, ++/*445176*/ OPC_CheckType, MVT::i32, ++/*445178*/ OPC_MoveParent, ++/*445179*/ OPC_MoveParent, ++/*445180*/ OPC_RecordChild1, // #1 = $a ++/*445181*/ OPC_MoveParent, ++/*445182*/ OPC_MoveParent, ++/*445183*/ OPC_MoveChild1, ++/*445184*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*445187*/ OPC_MoveChild0, ++/*445188*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*445191*/ OPC_Scope, 40|128,7/*936*/, /*->446130*/ // 4 children in Scope ++/*445194*/ OPC_MoveChild0, ++/*445195*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*445198*/ OPC_Scope, 25|128,1/*153*/, /*->445354*/ // 6 children in Scope ++/*445201*/ OPC_MoveChild0, ++/*445202*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*445205*/ OPC_CheckChild0Integer, 1, ++/*445207*/ OPC_CheckChild0Type, MVT::i32, ++/*445209*/ OPC_CheckChild1Integer, 1, ++/*445211*/ OPC_CheckChild1Type, MVT::i32, ++/*445213*/ OPC_CheckChild2Integer, 1, ++/*445215*/ OPC_CheckChild2Type, MVT::i32, ++/*445217*/ OPC_CheckChild3Integer, 1, ++/*445219*/ OPC_CheckChild3Type, MVT::i32, ++/*445221*/ OPC_CheckChild4Integer, 1, ++/*445223*/ OPC_CheckChild4Type, MVT::i32, ++/*445225*/ OPC_MoveChild5, ++/*445226*/ OPC_CheckInteger, 1, ++/*445228*/ OPC_CheckType, MVT::i32, ++/*445230*/ OPC_MoveParent, ++/*445231*/ OPC_MoveChild6, ++/*445232*/ OPC_CheckInteger, 1, ++/*445234*/ OPC_CheckType, MVT::i32, ++/*445236*/ OPC_MoveParent, ++/*445237*/ OPC_MoveChild7, ++/*445238*/ OPC_CheckInteger, 1, ++/*445240*/ OPC_CheckType, MVT::i32, ++/*445242*/ OPC_MoveParent, ++/*445243*/ OPC_MoveParent, ++/*445244*/ OPC_CheckChild1Same, 1, ++/*445246*/ OPC_MoveParent, ++/*445247*/ OPC_CheckChild1Same, 0, ++/*445249*/ OPC_MoveParent, ++/*445250*/ OPC_MoveChild1, ++/*445251*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*445254*/ OPC_CheckChild0Integer, 31, ++/*445256*/ OPC_CheckChild0Type, MVT::i32, ++/*445258*/ OPC_CheckChild1Integer, 31, ++/*445260*/ OPC_CheckChild1Type, MVT::i32, ++/*445262*/ OPC_CheckChild2Integer, 31, ++/*445264*/ OPC_CheckChild2Type, MVT::i32, ++/*445266*/ OPC_CheckChild3Integer, 31, ++/*445268*/ OPC_CheckChild3Type, MVT::i32, ++/*445270*/ OPC_CheckChild4Integer, 31, ++/*445272*/ OPC_CheckChild4Type, MVT::i32, ++/*445274*/ OPC_MoveChild5, ++/*445275*/ OPC_CheckInteger, 31, ++/*445277*/ OPC_CheckType, MVT::i32, ++/*445279*/ OPC_MoveParent, ++/*445280*/ OPC_MoveChild6, ++/*445281*/ OPC_CheckInteger, 31, ++/*445283*/ OPC_CheckType, MVT::i32, ++/*445285*/ OPC_MoveParent, ++/*445286*/ OPC_MoveChild7, ++/*445287*/ OPC_CheckInteger, 31, ++/*445289*/ OPC_CheckType, MVT::i32, ++/*445291*/ OPC_MoveParent, ++/*445292*/ OPC_CheckType, MVT::v8i32, ++/*445294*/ OPC_MoveParent, ++/*445295*/ OPC_MoveParent, ++/*445296*/ OPC_MoveParent, ++/*445297*/ OPC_MoveChild1, ++/*445298*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*445301*/ OPC_CheckChild0Integer, 1, ++/*445303*/ OPC_CheckChild0Type, MVT::i32, ++/*445305*/ OPC_CheckChild1Integer, 1, ++/*445307*/ OPC_CheckChild1Type, MVT::i32, ++/*445309*/ OPC_CheckChild2Integer, 1, ++/*445311*/ OPC_CheckChild2Type, MVT::i32, ++/*445313*/ OPC_CheckChild3Integer, 1, ++/*445315*/ OPC_CheckChild3Type, MVT::i32, ++/*445317*/ OPC_CheckChild4Integer, 1, ++/*445319*/ OPC_CheckChild4Type, MVT::i32, ++/*445321*/ OPC_MoveChild5, ++/*445322*/ OPC_CheckInteger, 1, ++/*445324*/ OPC_CheckType, MVT::i32, ++/*445326*/ OPC_MoveParent, ++/*445327*/ OPC_MoveChild6, ++/*445328*/ OPC_CheckInteger, 1, ++/*445330*/ OPC_CheckType, MVT::i32, ++/*445332*/ OPC_MoveParent, ++/*445333*/ OPC_MoveChild7, ++/*445334*/ OPC_CheckInteger, 1, ++/*445336*/ OPC_CheckType, MVT::i32, ++/*445338*/ OPC_MoveParent, ++/*445339*/ OPC_CheckType, MVT::v8i32, ++/*445341*/ OPC_MoveParent, ++/*445342*/ OPC_CheckType, MVT::v8i32, ++/*445344*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*445346*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a)), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a), LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*445354*/ /*Scope*/ 25|128,1/*153*/, /*->445509*/ ++/*445356*/ OPC_CheckChild0Same, 1, ++/*445358*/ OPC_MoveChild1, ++/*445359*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*445362*/ OPC_CheckChild0Integer, 1, ++/*445364*/ OPC_CheckChild0Type, MVT::i32, ++/*445366*/ OPC_CheckChild1Integer, 1, ++/*445368*/ OPC_CheckChild1Type, MVT::i32, ++/*445370*/ OPC_CheckChild2Integer, 1, ++/*445372*/ OPC_CheckChild2Type, MVT::i32, ++/*445374*/ OPC_CheckChild3Integer, 1, ++/*445376*/ OPC_CheckChild3Type, MVT::i32, ++/*445378*/ OPC_CheckChild4Integer, 1, ++/*445380*/ OPC_CheckChild4Type, MVT::i32, ++/*445382*/ OPC_MoveChild5, ++/*445383*/ OPC_CheckInteger, 1, ++/*445385*/ OPC_CheckType, MVT::i32, ++/*445387*/ OPC_MoveParent, ++/*445388*/ OPC_MoveChild6, ++/*445389*/ OPC_CheckInteger, 1, ++/*445391*/ OPC_CheckType, MVT::i32, ++/*445393*/ OPC_MoveParent, ++/*445394*/ OPC_MoveChild7, ++/*445395*/ OPC_CheckInteger, 1, ++/*445397*/ OPC_CheckType, MVT::i32, ++/*445399*/ OPC_MoveParent, ++/*445400*/ OPC_MoveParent, ++/*445401*/ OPC_MoveParent, ++/*445402*/ OPC_CheckChild1Same, 0, ++/*445404*/ OPC_MoveParent, ++/*445405*/ OPC_MoveChild1, ++/*445406*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*445409*/ OPC_CheckChild0Integer, 31, ++/*445411*/ OPC_CheckChild0Type, MVT::i32, ++/*445413*/ OPC_CheckChild1Integer, 31, ++/*445415*/ OPC_CheckChild1Type, MVT::i32, ++/*445417*/ OPC_CheckChild2Integer, 31, ++/*445419*/ OPC_CheckChild2Type, MVT::i32, ++/*445421*/ OPC_CheckChild3Integer, 31, ++/*445423*/ OPC_CheckChild3Type, MVT::i32, ++/*445425*/ OPC_CheckChild4Integer, 31, ++/*445427*/ OPC_CheckChild4Type, MVT::i32, ++/*445429*/ OPC_MoveChild5, ++/*445430*/ OPC_CheckInteger, 31, ++/*445432*/ OPC_CheckType, MVT::i32, ++/*445434*/ OPC_MoveParent, ++/*445435*/ OPC_MoveChild6, ++/*445436*/ OPC_CheckInteger, 31, ++/*445438*/ OPC_CheckType, MVT::i32, ++/*445440*/ OPC_MoveParent, ++/*445441*/ OPC_MoveChild7, ++/*445442*/ OPC_CheckInteger, 31, ++/*445444*/ OPC_CheckType, MVT::i32, ++/*445446*/ OPC_MoveParent, ++/*445447*/ OPC_CheckType, MVT::v8i32, ++/*445449*/ OPC_MoveParent, ++/*445450*/ OPC_MoveParent, ++/*445451*/ OPC_MoveParent, ++/*445452*/ OPC_MoveChild1, ++/*445453*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*445456*/ OPC_CheckChild0Integer, 1, ++/*445458*/ OPC_CheckChild0Type, MVT::i32, ++/*445460*/ OPC_CheckChild1Integer, 1, ++/*445462*/ OPC_CheckChild1Type, MVT::i32, ++/*445464*/ OPC_CheckChild2Integer, 1, ++/*445466*/ OPC_CheckChild2Type, MVT::i32, ++/*445468*/ OPC_CheckChild3Integer, 1, ++/*445470*/ OPC_CheckChild3Type, MVT::i32, ++/*445472*/ OPC_CheckChild4Integer, 1, ++/*445474*/ OPC_CheckChild4Type, MVT::i32, ++/*445476*/ OPC_MoveChild5, ++/*445477*/ OPC_CheckInteger, 1, ++/*445479*/ OPC_CheckType, MVT::i32, ++/*445481*/ OPC_MoveParent, ++/*445482*/ OPC_MoveChild6, ++/*445483*/ OPC_CheckInteger, 1, ++/*445485*/ OPC_CheckType, MVT::i32, ++/*445487*/ OPC_MoveParent, ++/*445488*/ OPC_MoveChild7, ++/*445489*/ OPC_CheckInteger, 1, ++/*445491*/ OPC_CheckType, MVT::i32, ++/*445493*/ OPC_MoveParent, ++/*445494*/ OPC_CheckType, MVT::v8i32, ++/*445496*/ OPC_MoveParent, ++/*445497*/ OPC_CheckType, MVT::v8i32, ++/*445499*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*445501*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a)), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*445509*/ /*Scope*/ 25|128,1/*153*/, /*->445664*/ ++/*445511*/ OPC_MoveChild0, ++/*445512*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*445515*/ OPC_CheckChild0Integer, 1, ++/*445517*/ OPC_CheckChild0Type, MVT::i32, ++/*445519*/ OPC_CheckChild1Integer, 1, ++/*445521*/ OPC_CheckChild1Type, MVT::i32, ++/*445523*/ OPC_CheckChild2Integer, 1, ++/*445525*/ OPC_CheckChild2Type, MVT::i32, ++/*445527*/ OPC_CheckChild3Integer, 1, ++/*445529*/ OPC_CheckChild3Type, MVT::i32, ++/*445531*/ OPC_CheckChild4Integer, 1, ++/*445533*/ OPC_CheckChild4Type, MVT::i32, ++/*445535*/ OPC_MoveChild5, ++/*445536*/ OPC_CheckInteger, 1, ++/*445538*/ OPC_CheckType, MVT::i32, ++/*445540*/ OPC_MoveParent, ++/*445541*/ OPC_MoveChild6, ++/*445542*/ OPC_CheckInteger, 1, ++/*445544*/ OPC_CheckType, MVT::i32, ++/*445546*/ OPC_MoveParent, ++/*445547*/ OPC_MoveChild7, ++/*445548*/ OPC_CheckInteger, 1, ++/*445550*/ OPC_CheckType, MVT::i32, ++/*445552*/ OPC_MoveParent, ++/*445553*/ OPC_MoveParent, ++/*445554*/ OPC_CheckChild1Same, 0, ++/*445556*/ OPC_MoveParent, ++/*445557*/ OPC_CheckChild1Same, 1, ++/*445559*/ OPC_MoveParent, ++/*445560*/ OPC_MoveChild1, ++/*445561*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*445564*/ OPC_CheckChild0Integer, 31, ++/*445566*/ OPC_CheckChild0Type, MVT::i32, ++/*445568*/ OPC_CheckChild1Integer, 31, ++/*445570*/ OPC_CheckChild1Type, MVT::i32, ++/*445572*/ OPC_CheckChild2Integer, 31, ++/*445574*/ OPC_CheckChild2Type, MVT::i32, ++/*445576*/ OPC_CheckChild3Integer, 31, ++/*445578*/ OPC_CheckChild3Type, MVT::i32, ++/*445580*/ OPC_CheckChild4Integer, 31, ++/*445582*/ OPC_CheckChild4Type, MVT::i32, ++/*445584*/ OPC_MoveChild5, ++/*445585*/ OPC_CheckInteger, 31, ++/*445587*/ OPC_CheckType, MVT::i32, ++/*445589*/ OPC_MoveParent, ++/*445590*/ OPC_MoveChild6, ++/*445591*/ OPC_CheckInteger, 31, ++/*445593*/ OPC_CheckType, MVT::i32, ++/*445595*/ OPC_MoveParent, ++/*445596*/ OPC_MoveChild7, ++/*445597*/ OPC_CheckInteger, 31, ++/*445599*/ OPC_CheckType, MVT::i32, ++/*445601*/ OPC_MoveParent, ++/*445602*/ OPC_CheckType, MVT::v8i32, ++/*445604*/ OPC_MoveParent, ++/*445605*/ OPC_MoveParent, ++/*445606*/ OPC_MoveParent, ++/*445607*/ OPC_MoveChild1, ++/*445608*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*445611*/ OPC_CheckChild0Integer, 1, ++/*445613*/ OPC_CheckChild0Type, MVT::i32, ++/*445615*/ OPC_CheckChild1Integer, 1, ++/*445617*/ OPC_CheckChild1Type, MVT::i32, ++/*445619*/ OPC_CheckChild2Integer, 1, ++/*445621*/ OPC_CheckChild2Type, MVT::i32, ++/*445623*/ OPC_CheckChild3Integer, 1, ++/*445625*/ OPC_CheckChild3Type, MVT::i32, ++/*445627*/ OPC_CheckChild4Integer, 1, ++/*445629*/ OPC_CheckChild4Type, MVT::i32, ++/*445631*/ OPC_MoveChild5, ++/*445632*/ OPC_CheckInteger, 1, ++/*445634*/ OPC_CheckType, MVT::i32, ++/*445636*/ OPC_MoveParent, ++/*445637*/ OPC_MoveChild6, ++/*445638*/ OPC_CheckInteger, 1, ++/*445640*/ OPC_CheckType, MVT::i32, ++/*445642*/ OPC_MoveParent, ++/*445643*/ OPC_MoveChild7, ++/*445644*/ OPC_CheckInteger, 1, ++/*445646*/ OPC_CheckType, MVT::i32, ++/*445648*/ OPC_MoveParent, ++/*445649*/ OPC_CheckType, MVT::v8i32, ++/*445651*/ OPC_MoveParent, ++/*445652*/ OPC_CheckType, MVT::v8i32, ++/*445654*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*445656*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a)), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b), LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*445664*/ /*Scope*/ 25|128,1/*153*/, /*->445819*/ ++/*445666*/ OPC_CheckChild0Same, 0, ++/*445668*/ OPC_MoveChild1, ++/*445669*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*445672*/ OPC_CheckChild0Integer, 1, ++/*445674*/ OPC_CheckChild0Type, MVT::i32, ++/*445676*/ OPC_CheckChild1Integer, 1, ++/*445678*/ OPC_CheckChild1Type, MVT::i32, ++/*445680*/ OPC_CheckChild2Integer, 1, ++/*445682*/ OPC_CheckChild2Type, MVT::i32, ++/*445684*/ OPC_CheckChild3Integer, 1, ++/*445686*/ OPC_CheckChild3Type, MVT::i32, ++/*445688*/ OPC_CheckChild4Integer, 1, ++/*445690*/ OPC_CheckChild4Type, MVT::i32, ++/*445692*/ OPC_MoveChild5, ++/*445693*/ OPC_CheckInteger, 1, ++/*445695*/ OPC_CheckType, MVT::i32, ++/*445697*/ OPC_MoveParent, ++/*445698*/ OPC_MoveChild6, ++/*445699*/ OPC_CheckInteger, 1, ++/*445701*/ OPC_CheckType, MVT::i32, ++/*445703*/ OPC_MoveParent, ++/*445704*/ OPC_MoveChild7, ++/*445705*/ OPC_CheckInteger, 1, ++/*445707*/ OPC_CheckType, MVT::i32, ++/*445709*/ OPC_MoveParent, ++/*445710*/ OPC_MoveParent, ++/*445711*/ OPC_MoveParent, ++/*445712*/ OPC_CheckChild1Same, 1, ++/*445714*/ OPC_MoveParent, ++/*445715*/ OPC_MoveChild1, ++/*445716*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*445719*/ OPC_CheckChild0Integer, 31, ++/*445721*/ OPC_CheckChild0Type, MVT::i32, ++/*445723*/ OPC_CheckChild1Integer, 31, ++/*445725*/ OPC_CheckChild1Type, MVT::i32, ++/*445727*/ OPC_CheckChild2Integer, 31, ++/*445729*/ OPC_CheckChild2Type, MVT::i32, ++/*445731*/ OPC_CheckChild3Integer, 31, ++/*445733*/ OPC_CheckChild3Type, MVT::i32, ++/*445735*/ OPC_CheckChild4Integer, 31, ++/*445737*/ OPC_CheckChild4Type, MVT::i32, ++/*445739*/ OPC_MoveChild5, ++/*445740*/ OPC_CheckInteger, 31, ++/*445742*/ OPC_CheckType, MVT::i32, ++/*445744*/ OPC_MoveParent, ++/*445745*/ OPC_MoveChild6, ++/*445746*/ OPC_CheckInteger, 31, ++/*445748*/ OPC_CheckType, MVT::i32, ++/*445750*/ OPC_MoveParent, ++/*445751*/ OPC_MoveChild7, ++/*445752*/ OPC_CheckInteger, 31, ++/*445754*/ OPC_CheckType, MVT::i32, ++/*445756*/ OPC_MoveParent, ++/*445757*/ OPC_CheckType, MVT::v8i32, ++/*445759*/ OPC_MoveParent, ++/*445760*/ OPC_MoveParent, ++/*445761*/ OPC_MoveParent, ++/*445762*/ OPC_MoveChild1, ++/*445763*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*445766*/ OPC_CheckChild0Integer, 1, ++/*445768*/ OPC_CheckChild0Type, MVT::i32, ++/*445770*/ OPC_CheckChild1Integer, 1, ++/*445772*/ OPC_CheckChild1Type, MVT::i32, ++/*445774*/ OPC_CheckChild2Integer, 1, ++/*445776*/ OPC_CheckChild2Type, MVT::i32, ++/*445778*/ OPC_CheckChild3Integer, 1, ++/*445780*/ OPC_CheckChild3Type, MVT::i32, ++/*445782*/ OPC_CheckChild4Integer, 1, ++/*445784*/ OPC_CheckChild4Type, MVT::i32, ++/*445786*/ OPC_MoveChild5, ++/*445787*/ OPC_CheckInteger, 1, ++/*445789*/ OPC_CheckType, MVT::i32, ++/*445791*/ OPC_MoveParent, ++/*445792*/ OPC_MoveChild6, ++/*445793*/ OPC_CheckInteger, 1, ++/*445795*/ OPC_CheckType, MVT::i32, ++/*445797*/ OPC_MoveParent, ++/*445798*/ OPC_MoveChild7, ++/*445799*/ OPC_CheckInteger, 1, ++/*445801*/ OPC_CheckType, MVT::i32, ++/*445803*/ OPC_MoveParent, ++/*445804*/ OPC_CheckType, MVT::v8i32, ++/*445806*/ OPC_MoveParent, ++/*445807*/ OPC_CheckType, MVT::v8i32, ++/*445809*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*445811*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a)), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*445819*/ /*Scope*/ 25|128,1/*153*/, /*->445974*/ ++/*445821*/ OPC_CheckChild0Same, 1, ++/*445823*/ OPC_CheckChild1Same, 0, ++/*445825*/ OPC_MoveParent, ++/*445826*/ OPC_MoveChild1, ++/*445827*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*445830*/ OPC_CheckChild0Integer, 1, ++/*445832*/ OPC_CheckChild0Type, MVT::i32, ++/*445834*/ OPC_CheckChild1Integer, 1, ++/*445836*/ OPC_CheckChild1Type, MVT::i32, ++/*445838*/ OPC_CheckChild2Integer, 1, ++/*445840*/ OPC_CheckChild2Type, MVT::i32, ++/*445842*/ OPC_CheckChild3Integer, 1, ++/*445844*/ OPC_CheckChild3Type, MVT::i32, ++/*445846*/ OPC_CheckChild4Integer, 1, ++/*445848*/ OPC_CheckChild4Type, MVT::i32, ++/*445850*/ OPC_MoveChild5, ++/*445851*/ OPC_CheckInteger, 1, ++/*445853*/ OPC_CheckType, MVT::i32, ++/*445855*/ OPC_MoveParent, ++/*445856*/ OPC_MoveChild6, ++/*445857*/ OPC_CheckInteger, 1, ++/*445859*/ OPC_CheckType, MVT::i32, ++/*445861*/ OPC_MoveParent, ++/*445862*/ OPC_MoveChild7, ++/*445863*/ OPC_CheckInteger, 1, ++/*445865*/ OPC_CheckType, MVT::i32, ++/*445867*/ OPC_MoveParent, ++/*445868*/ OPC_MoveParent, ++/*445869*/ OPC_MoveParent, ++/*445870*/ OPC_MoveChild1, ++/*445871*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*445874*/ OPC_CheckChild0Integer, 31, ++/*445876*/ OPC_CheckChild0Type, MVT::i32, ++/*445878*/ OPC_CheckChild1Integer, 31, ++/*445880*/ OPC_CheckChild1Type, MVT::i32, ++/*445882*/ OPC_CheckChild2Integer, 31, ++/*445884*/ OPC_CheckChild2Type, MVT::i32, ++/*445886*/ OPC_CheckChild3Integer, 31, ++/*445888*/ OPC_CheckChild3Type, MVT::i32, ++/*445890*/ OPC_CheckChild4Integer, 31, ++/*445892*/ OPC_CheckChild4Type, MVT::i32, ++/*445894*/ OPC_MoveChild5, ++/*445895*/ OPC_CheckInteger, 31, ++/*445897*/ OPC_CheckType, MVT::i32, ++/*445899*/ OPC_MoveParent, ++/*445900*/ OPC_MoveChild6, ++/*445901*/ OPC_CheckInteger, 31, ++/*445903*/ OPC_CheckType, MVT::i32, ++/*445905*/ OPC_MoveParent, ++/*445906*/ OPC_MoveChild7, ++/*445907*/ OPC_CheckInteger, 31, ++/*445909*/ OPC_CheckType, MVT::i32, ++/*445911*/ OPC_MoveParent, ++/*445912*/ OPC_CheckType, MVT::v8i32, ++/*445914*/ OPC_MoveParent, ++/*445915*/ OPC_MoveParent, ++/*445916*/ OPC_MoveParent, ++/*445917*/ OPC_MoveChild1, ++/*445918*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*445921*/ OPC_CheckChild0Integer, 1, ++/*445923*/ OPC_CheckChild0Type, MVT::i32, ++/*445925*/ OPC_CheckChild1Integer, 1, ++/*445927*/ OPC_CheckChild1Type, MVT::i32, ++/*445929*/ OPC_CheckChild2Integer, 1, ++/*445931*/ OPC_CheckChild2Type, MVT::i32, ++/*445933*/ OPC_CheckChild3Integer, 1, ++/*445935*/ OPC_CheckChild3Type, MVT::i32, ++/*445937*/ OPC_CheckChild4Integer, 1, ++/*445939*/ OPC_CheckChild4Type, MVT::i32, ++/*445941*/ OPC_MoveChild5, ++/*445942*/ OPC_CheckInteger, 1, ++/*445944*/ OPC_CheckType, MVT::i32, ++/*445946*/ OPC_MoveParent, ++/*445947*/ OPC_MoveChild6, ++/*445948*/ OPC_CheckInteger, 1, ++/*445950*/ OPC_CheckType, MVT::i32, ++/*445952*/ OPC_MoveParent, ++/*445953*/ OPC_MoveChild7, ++/*445954*/ OPC_CheckInteger, 1, ++/*445956*/ OPC_CheckType, MVT::i32, ++/*445958*/ OPC_MoveParent, ++/*445959*/ OPC_CheckType, MVT::v8i32, ++/*445961*/ OPC_MoveParent, ++/*445962*/ OPC_CheckType, MVT::v8i32, ++/*445964*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*445966*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a)), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*445974*/ /*Scope*/ 25|128,1/*153*/, /*->446129*/ ++/*445976*/ OPC_CheckChild0Same, 0, ++/*445978*/ OPC_CheckChild1Same, 1, ++/*445980*/ OPC_MoveParent, ++/*445981*/ OPC_MoveChild1, ++/*445982*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*445985*/ OPC_CheckChild0Integer, 1, ++/*445987*/ OPC_CheckChild0Type, MVT::i32, ++/*445989*/ OPC_CheckChild1Integer, 1, ++/*445991*/ OPC_CheckChild1Type, MVT::i32, ++/*445993*/ OPC_CheckChild2Integer, 1, ++/*445995*/ OPC_CheckChild2Type, MVT::i32, ++/*445997*/ OPC_CheckChild3Integer, 1, ++/*445999*/ OPC_CheckChild3Type, MVT::i32, ++/*446001*/ OPC_CheckChild4Integer, 1, ++/*446003*/ OPC_CheckChild4Type, MVT::i32, ++/*446005*/ OPC_MoveChild5, ++/*446006*/ OPC_CheckInteger, 1, ++/*446008*/ OPC_CheckType, MVT::i32, ++/*446010*/ OPC_MoveParent, ++/*446011*/ OPC_MoveChild6, ++/*446012*/ OPC_CheckInteger, 1, ++/*446014*/ OPC_CheckType, MVT::i32, ++/*446016*/ OPC_MoveParent, ++/*446017*/ OPC_MoveChild7, ++/*446018*/ OPC_CheckInteger, 1, ++/*446020*/ OPC_CheckType, MVT::i32, ++/*446022*/ OPC_MoveParent, ++/*446023*/ OPC_MoveParent, ++/*446024*/ OPC_MoveParent, ++/*446025*/ OPC_MoveChild1, ++/*446026*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*446029*/ OPC_CheckChild0Integer, 31, ++/*446031*/ OPC_CheckChild0Type, MVT::i32, ++/*446033*/ OPC_CheckChild1Integer, 31, ++/*446035*/ OPC_CheckChild1Type, MVT::i32, ++/*446037*/ OPC_CheckChild2Integer, 31, ++/*446039*/ OPC_CheckChild2Type, MVT::i32, ++/*446041*/ OPC_CheckChild3Integer, 31, ++/*446043*/ OPC_CheckChild3Type, MVT::i32, ++/*446045*/ OPC_CheckChild4Integer, 31, ++/*446047*/ OPC_CheckChild4Type, MVT::i32, ++/*446049*/ OPC_MoveChild5, ++/*446050*/ OPC_CheckInteger, 31, ++/*446052*/ OPC_CheckType, MVT::i32, ++/*446054*/ OPC_MoveParent, ++/*446055*/ OPC_MoveChild6, ++/*446056*/ OPC_CheckInteger, 31, ++/*446058*/ OPC_CheckType, MVT::i32, ++/*446060*/ OPC_MoveParent, ++/*446061*/ OPC_MoveChild7, ++/*446062*/ OPC_CheckInteger, 31, ++/*446064*/ OPC_CheckType, MVT::i32, ++/*446066*/ OPC_MoveParent, ++/*446067*/ OPC_CheckType, MVT::v8i32, ++/*446069*/ OPC_MoveParent, ++/*446070*/ OPC_MoveParent, ++/*446071*/ OPC_MoveParent, ++/*446072*/ OPC_MoveChild1, ++/*446073*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*446076*/ OPC_CheckChild0Integer, 1, ++/*446078*/ OPC_CheckChild0Type, MVT::i32, ++/*446080*/ OPC_CheckChild1Integer, 1, ++/*446082*/ OPC_CheckChild1Type, MVT::i32, ++/*446084*/ OPC_CheckChild2Integer, 1, ++/*446086*/ OPC_CheckChild2Type, MVT::i32, ++/*446088*/ OPC_CheckChild3Integer, 1, ++/*446090*/ OPC_CheckChild3Type, MVT::i32, ++/*446092*/ OPC_CheckChild4Integer, 1, ++/*446094*/ OPC_CheckChild4Type, MVT::i32, ++/*446096*/ OPC_MoveChild5, ++/*446097*/ OPC_CheckInteger, 1, ++/*446099*/ OPC_CheckType, MVT::i32, ++/*446101*/ OPC_MoveParent, ++/*446102*/ OPC_MoveChild6, ++/*446103*/ OPC_CheckInteger, 1, ++/*446105*/ OPC_CheckType, MVT::i32, ++/*446107*/ OPC_MoveParent, ++/*446108*/ OPC_MoveChild7, ++/*446109*/ OPC_CheckInteger, 1, ++/*446111*/ OPC_CheckType, MVT::i32, ++/*446113*/ OPC_MoveParent, ++/*446114*/ OPC_CheckType, MVT::v8i32, ++/*446116*/ OPC_MoveParent, ++/*446117*/ OPC_CheckType, MVT::v8i32, ++/*446119*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*446121*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a)), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*446129*/ 0, /*End of Scope*/ ++/*446130*/ /*Scope*/ 58|128,2/*314*/, /*->446446*/ ++/*446132*/ OPC_CheckChild0Same, 0, ++/*446134*/ OPC_MoveChild1, ++/*446135*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*446138*/ OPC_Scope, 23|128,1/*151*/, /*->446292*/ // 2 children in Scope ++/*446141*/ OPC_MoveChild0, ++/*446142*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*446145*/ OPC_CheckChild0Integer, 1, ++/*446147*/ OPC_CheckChild0Type, MVT::i32, ++/*446149*/ OPC_CheckChild1Integer, 1, ++/*446151*/ OPC_CheckChild1Type, MVT::i32, ++/*446153*/ OPC_CheckChild2Integer, 1, ++/*446155*/ OPC_CheckChild2Type, MVT::i32, ++/*446157*/ OPC_CheckChild3Integer, 1, ++/*446159*/ OPC_CheckChild3Type, MVT::i32, ++/*446161*/ OPC_CheckChild4Integer, 1, ++/*446163*/ OPC_CheckChild4Type, MVT::i32, ++/*446165*/ OPC_MoveChild5, ++/*446166*/ OPC_CheckInteger, 1, ++/*446168*/ OPC_CheckType, MVT::i32, ++/*446170*/ OPC_MoveParent, ++/*446171*/ OPC_MoveChild6, ++/*446172*/ OPC_CheckInteger, 1, ++/*446174*/ OPC_CheckType, MVT::i32, ++/*446176*/ OPC_MoveParent, ++/*446177*/ OPC_MoveChild7, ++/*446178*/ OPC_CheckInteger, 1, ++/*446180*/ OPC_CheckType, MVT::i32, ++/*446182*/ OPC_MoveParent, ++/*446183*/ OPC_MoveParent, ++/*446184*/ OPC_CheckChild1Same, 1, ++/*446186*/ OPC_MoveParent, ++/*446187*/ OPC_MoveParent, ++/*446188*/ OPC_MoveChild1, ++/*446189*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*446192*/ OPC_CheckChild0Integer, 31, ++/*446194*/ OPC_CheckChild0Type, MVT::i32, ++/*446196*/ OPC_CheckChild1Integer, 31, ++/*446198*/ OPC_CheckChild1Type, MVT::i32, ++/*446200*/ OPC_CheckChild2Integer, 31, ++/*446202*/ OPC_CheckChild2Type, MVT::i32, ++/*446204*/ OPC_CheckChild3Integer, 31, ++/*446206*/ OPC_CheckChild3Type, MVT::i32, ++/*446208*/ OPC_CheckChild4Integer, 31, ++/*446210*/ OPC_CheckChild4Type, MVT::i32, ++/*446212*/ OPC_MoveChild5, ++/*446213*/ OPC_CheckInteger, 31, ++/*446215*/ OPC_CheckType, MVT::i32, ++/*446217*/ OPC_MoveParent, ++/*446218*/ OPC_MoveChild6, ++/*446219*/ OPC_CheckInteger, 31, ++/*446221*/ OPC_CheckType, MVT::i32, ++/*446223*/ OPC_MoveParent, ++/*446224*/ OPC_MoveChild7, ++/*446225*/ OPC_CheckInteger, 31, ++/*446227*/ OPC_CheckType, MVT::i32, ++/*446229*/ OPC_MoveParent, ++/*446230*/ OPC_CheckType, MVT::v8i32, ++/*446232*/ OPC_MoveParent, ++/*446233*/ OPC_MoveParent, ++/*446234*/ OPC_MoveParent, ++/*446235*/ OPC_MoveChild1, ++/*446236*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*446239*/ OPC_CheckChild0Integer, 1, ++/*446241*/ OPC_CheckChild0Type, MVT::i32, ++/*446243*/ OPC_CheckChild1Integer, 1, ++/*446245*/ OPC_CheckChild1Type, MVT::i32, ++/*446247*/ OPC_CheckChild2Integer, 1, ++/*446249*/ OPC_CheckChild2Type, MVT::i32, ++/*446251*/ OPC_CheckChild3Integer, 1, ++/*446253*/ OPC_CheckChild3Type, MVT::i32, ++/*446255*/ OPC_CheckChild4Integer, 1, ++/*446257*/ OPC_CheckChild4Type, MVT::i32, ++/*446259*/ OPC_MoveChild5, ++/*446260*/ OPC_CheckInteger, 1, ++/*446262*/ OPC_CheckType, MVT::i32, ++/*446264*/ OPC_MoveParent, ++/*446265*/ OPC_MoveChild6, ++/*446266*/ OPC_CheckInteger, 1, ++/*446268*/ OPC_CheckType, MVT::i32, ++/*446270*/ OPC_MoveParent, ++/*446271*/ OPC_MoveChild7, ++/*446272*/ OPC_CheckInteger, 1, ++/*446274*/ OPC_CheckType, MVT::i32, ++/*446276*/ OPC_MoveParent, ++/*446277*/ OPC_CheckType, MVT::v8i32, ++/*446279*/ OPC_MoveParent, ++/*446280*/ OPC_CheckType, MVT::v8i32, ++/*446282*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*446284*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a)), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*446292*/ /*Scope*/ 23|128,1/*151*/, /*->446445*/ ++/*446294*/ OPC_CheckChild0Same, 1, ++/*446296*/ OPC_MoveChild1, ++/*446297*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*446300*/ OPC_CheckChild0Integer, 1, ++/*446302*/ OPC_CheckChild0Type, MVT::i32, ++/*446304*/ OPC_CheckChild1Integer, 1, ++/*446306*/ OPC_CheckChild1Type, MVT::i32, ++/*446308*/ OPC_CheckChild2Integer, 1, ++/*446310*/ OPC_CheckChild2Type, MVT::i32, ++/*446312*/ OPC_CheckChild3Integer, 1, ++/*446314*/ OPC_CheckChild3Type, MVT::i32, ++/*446316*/ OPC_CheckChild4Integer, 1, ++/*446318*/ OPC_CheckChild4Type, MVT::i32, ++/*446320*/ OPC_MoveChild5, ++/*446321*/ OPC_CheckInteger, 1, ++/*446323*/ OPC_CheckType, MVT::i32, ++/*446325*/ OPC_MoveParent, ++/*446326*/ OPC_MoveChild6, ++/*446327*/ OPC_CheckInteger, 1, ++/*446329*/ OPC_CheckType, MVT::i32, ++/*446331*/ OPC_MoveParent, ++/*446332*/ OPC_MoveChild7, ++/*446333*/ OPC_CheckInteger, 1, ++/*446335*/ OPC_CheckType, MVT::i32, ++/*446337*/ OPC_MoveParent, ++/*446338*/ OPC_MoveParent, ++/*446339*/ OPC_MoveParent, ++/*446340*/ OPC_MoveParent, ++/*446341*/ OPC_MoveChild1, ++/*446342*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*446345*/ OPC_CheckChild0Integer, 31, ++/*446347*/ OPC_CheckChild0Type, MVT::i32, ++/*446349*/ OPC_CheckChild1Integer, 31, ++/*446351*/ OPC_CheckChild1Type, MVT::i32, ++/*446353*/ OPC_CheckChild2Integer, 31, ++/*446355*/ OPC_CheckChild2Type, MVT::i32, ++/*446357*/ OPC_CheckChild3Integer, 31, ++/*446359*/ OPC_CheckChild3Type, MVT::i32, ++/*446361*/ OPC_CheckChild4Integer, 31, ++/*446363*/ OPC_CheckChild4Type, MVT::i32, ++/*446365*/ OPC_MoveChild5, ++/*446366*/ OPC_CheckInteger, 31, ++/*446368*/ OPC_CheckType, MVT::i32, ++/*446370*/ OPC_MoveParent, ++/*446371*/ OPC_MoveChild6, ++/*446372*/ OPC_CheckInteger, 31, ++/*446374*/ OPC_CheckType, MVT::i32, ++/*446376*/ OPC_MoveParent, ++/*446377*/ OPC_MoveChild7, ++/*446378*/ OPC_CheckInteger, 31, ++/*446380*/ OPC_CheckType, MVT::i32, ++/*446382*/ OPC_MoveParent, ++/*446383*/ OPC_CheckType, MVT::v8i32, ++/*446385*/ OPC_MoveParent, ++/*446386*/ OPC_MoveParent, ++/*446387*/ OPC_MoveParent, ++/*446388*/ OPC_MoveChild1, ++/*446389*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*446392*/ OPC_CheckChild0Integer, 1, ++/*446394*/ OPC_CheckChild0Type, MVT::i32, ++/*446396*/ OPC_CheckChild1Integer, 1, ++/*446398*/ OPC_CheckChild1Type, MVT::i32, ++/*446400*/ OPC_CheckChild2Integer, 1, ++/*446402*/ OPC_CheckChild2Type, MVT::i32, ++/*446404*/ OPC_CheckChild3Integer, 1, ++/*446406*/ OPC_CheckChild3Type, MVT::i32, ++/*446408*/ OPC_CheckChild4Integer, 1, ++/*446410*/ OPC_CheckChild4Type, MVT::i32, ++/*446412*/ OPC_MoveChild5, ++/*446413*/ OPC_CheckInteger, 1, ++/*446415*/ OPC_CheckType, MVT::i32, ++/*446417*/ OPC_MoveParent, ++/*446418*/ OPC_MoveChild6, ++/*446419*/ OPC_CheckInteger, 1, ++/*446421*/ OPC_CheckType, MVT::i32, ++/*446423*/ OPC_MoveParent, ++/*446424*/ OPC_MoveChild7, ++/*446425*/ OPC_CheckInteger, 1, ++/*446427*/ OPC_CheckType, MVT::i32, ++/*446429*/ OPC_MoveParent, ++/*446430*/ OPC_CheckType, MVT::v8i32, ++/*446432*/ OPC_MoveParent, ++/*446433*/ OPC_CheckType, MVT::v8i32, ++/*446435*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*446437*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a)), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*446445*/ 0, /*End of Scope*/ ++/*446446*/ /*Scope*/ 58|128,2/*314*/, /*->446762*/ ++/*446448*/ OPC_CheckChild0Same, 1, ++/*446450*/ OPC_MoveChild1, ++/*446451*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*446454*/ OPC_Scope, 23|128,1/*151*/, /*->446608*/ // 2 children in Scope ++/*446457*/ OPC_MoveChild0, ++/*446458*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*446461*/ OPC_CheckChild0Integer, 1, ++/*446463*/ OPC_CheckChild0Type, MVT::i32, ++/*446465*/ OPC_CheckChild1Integer, 1, ++/*446467*/ OPC_CheckChild1Type, MVT::i32, ++/*446469*/ OPC_CheckChild2Integer, 1, ++/*446471*/ OPC_CheckChild2Type, MVT::i32, ++/*446473*/ OPC_CheckChild3Integer, 1, ++/*446475*/ OPC_CheckChild3Type, MVT::i32, ++/*446477*/ OPC_CheckChild4Integer, 1, ++/*446479*/ OPC_CheckChild4Type, MVT::i32, ++/*446481*/ OPC_MoveChild5, ++/*446482*/ OPC_CheckInteger, 1, ++/*446484*/ OPC_CheckType, MVT::i32, ++/*446486*/ OPC_MoveParent, ++/*446487*/ OPC_MoveChild6, ++/*446488*/ OPC_CheckInteger, 1, ++/*446490*/ OPC_CheckType, MVT::i32, ++/*446492*/ OPC_MoveParent, ++/*446493*/ OPC_MoveChild7, ++/*446494*/ OPC_CheckInteger, 1, ++/*446496*/ OPC_CheckType, MVT::i32, ++/*446498*/ OPC_MoveParent, ++/*446499*/ OPC_MoveParent, ++/*446500*/ OPC_CheckChild1Same, 0, ++/*446502*/ OPC_MoveParent, ++/*446503*/ OPC_MoveParent, ++/*446504*/ OPC_MoveChild1, ++/*446505*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*446508*/ OPC_CheckChild0Integer, 31, ++/*446510*/ OPC_CheckChild0Type, MVT::i32, ++/*446512*/ OPC_CheckChild1Integer, 31, ++/*446514*/ OPC_CheckChild1Type, MVT::i32, ++/*446516*/ OPC_CheckChild2Integer, 31, ++/*446518*/ OPC_CheckChild2Type, MVT::i32, ++/*446520*/ OPC_CheckChild3Integer, 31, ++/*446522*/ OPC_CheckChild3Type, MVT::i32, ++/*446524*/ OPC_CheckChild4Integer, 31, ++/*446526*/ OPC_CheckChild4Type, MVT::i32, ++/*446528*/ OPC_MoveChild5, ++/*446529*/ OPC_CheckInteger, 31, ++/*446531*/ OPC_CheckType, MVT::i32, ++/*446533*/ OPC_MoveParent, ++/*446534*/ OPC_MoveChild6, ++/*446535*/ OPC_CheckInteger, 31, ++/*446537*/ OPC_CheckType, MVT::i32, ++/*446539*/ OPC_MoveParent, ++/*446540*/ OPC_MoveChild7, ++/*446541*/ OPC_CheckInteger, 31, ++/*446543*/ OPC_CheckType, MVT::i32, ++/*446545*/ OPC_MoveParent, ++/*446546*/ OPC_CheckType, MVT::v8i32, ++/*446548*/ OPC_MoveParent, ++/*446549*/ OPC_MoveParent, ++/*446550*/ OPC_MoveParent, ++/*446551*/ OPC_MoveChild1, ++/*446552*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*446555*/ OPC_CheckChild0Integer, 1, ++/*446557*/ OPC_CheckChild0Type, MVT::i32, ++/*446559*/ OPC_CheckChild1Integer, 1, ++/*446561*/ OPC_CheckChild1Type, MVT::i32, ++/*446563*/ OPC_CheckChild2Integer, 1, ++/*446565*/ OPC_CheckChild2Type, MVT::i32, ++/*446567*/ OPC_CheckChild3Integer, 1, ++/*446569*/ OPC_CheckChild3Type, MVT::i32, ++/*446571*/ OPC_CheckChild4Integer, 1, ++/*446573*/ OPC_CheckChild4Type, MVT::i32, ++/*446575*/ OPC_MoveChild5, ++/*446576*/ OPC_CheckInteger, 1, ++/*446578*/ OPC_CheckType, MVT::i32, ++/*446580*/ OPC_MoveParent, ++/*446581*/ OPC_MoveChild6, ++/*446582*/ OPC_CheckInteger, 1, ++/*446584*/ OPC_CheckType, MVT::i32, ++/*446586*/ OPC_MoveParent, ++/*446587*/ OPC_MoveChild7, ++/*446588*/ OPC_CheckInteger, 1, ++/*446590*/ OPC_CheckType, MVT::i32, ++/*446592*/ OPC_MoveParent, ++/*446593*/ OPC_CheckType, MVT::v8i32, ++/*446595*/ OPC_MoveParent, ++/*446596*/ OPC_CheckType, MVT::v8i32, ++/*446598*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*446600*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a)), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*446608*/ /*Scope*/ 23|128,1/*151*/, /*->446761*/ ++/*446610*/ OPC_CheckChild0Same, 0, ++/*446612*/ OPC_MoveChild1, ++/*446613*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*446616*/ OPC_CheckChild0Integer, 1, ++/*446618*/ OPC_CheckChild0Type, MVT::i32, ++/*446620*/ OPC_CheckChild1Integer, 1, ++/*446622*/ OPC_CheckChild1Type, MVT::i32, ++/*446624*/ OPC_CheckChild2Integer, 1, ++/*446626*/ OPC_CheckChild2Type, MVT::i32, ++/*446628*/ OPC_CheckChild3Integer, 1, ++/*446630*/ OPC_CheckChild3Type, MVT::i32, ++/*446632*/ OPC_CheckChild4Integer, 1, ++/*446634*/ OPC_CheckChild4Type, MVT::i32, ++/*446636*/ OPC_MoveChild5, ++/*446637*/ OPC_CheckInteger, 1, ++/*446639*/ OPC_CheckType, MVT::i32, ++/*446641*/ OPC_MoveParent, ++/*446642*/ OPC_MoveChild6, ++/*446643*/ OPC_CheckInteger, 1, ++/*446645*/ OPC_CheckType, MVT::i32, ++/*446647*/ OPC_MoveParent, ++/*446648*/ OPC_MoveChild7, ++/*446649*/ OPC_CheckInteger, 1, ++/*446651*/ OPC_CheckType, MVT::i32, ++/*446653*/ OPC_MoveParent, ++/*446654*/ OPC_MoveParent, ++/*446655*/ OPC_MoveParent, ++/*446656*/ OPC_MoveParent, ++/*446657*/ OPC_MoveChild1, ++/*446658*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*446661*/ OPC_CheckChild0Integer, 31, ++/*446663*/ OPC_CheckChild0Type, MVT::i32, ++/*446665*/ OPC_CheckChild1Integer, 31, ++/*446667*/ OPC_CheckChild1Type, MVT::i32, ++/*446669*/ OPC_CheckChild2Integer, 31, ++/*446671*/ OPC_CheckChild2Type, MVT::i32, ++/*446673*/ OPC_CheckChild3Integer, 31, ++/*446675*/ OPC_CheckChild3Type, MVT::i32, ++/*446677*/ OPC_CheckChild4Integer, 31, ++/*446679*/ OPC_CheckChild4Type, MVT::i32, ++/*446681*/ OPC_MoveChild5, ++/*446682*/ OPC_CheckInteger, 31, ++/*446684*/ OPC_CheckType, MVT::i32, ++/*446686*/ OPC_MoveParent, ++/*446687*/ OPC_MoveChild6, ++/*446688*/ OPC_CheckInteger, 31, ++/*446690*/ OPC_CheckType, MVT::i32, ++/*446692*/ OPC_MoveParent, ++/*446693*/ OPC_MoveChild7, ++/*446694*/ OPC_CheckInteger, 31, ++/*446696*/ OPC_CheckType, MVT::i32, ++/*446698*/ OPC_MoveParent, ++/*446699*/ OPC_CheckType, MVT::v8i32, ++/*446701*/ OPC_MoveParent, ++/*446702*/ OPC_MoveParent, ++/*446703*/ OPC_MoveParent, ++/*446704*/ OPC_MoveChild1, ++/*446705*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*446708*/ OPC_CheckChild0Integer, 1, ++/*446710*/ OPC_CheckChild0Type, MVT::i32, ++/*446712*/ OPC_CheckChild1Integer, 1, ++/*446714*/ OPC_CheckChild1Type, MVT::i32, ++/*446716*/ OPC_CheckChild2Integer, 1, ++/*446718*/ OPC_CheckChild2Type, MVT::i32, ++/*446720*/ OPC_CheckChild3Integer, 1, ++/*446722*/ OPC_CheckChild3Type, MVT::i32, ++/*446724*/ OPC_CheckChild4Integer, 1, ++/*446726*/ OPC_CheckChild4Type, MVT::i32, ++/*446728*/ OPC_MoveChild5, ++/*446729*/ OPC_CheckInteger, 1, ++/*446731*/ OPC_CheckType, MVT::i32, ++/*446733*/ OPC_MoveParent, ++/*446734*/ OPC_MoveChild6, ++/*446735*/ OPC_CheckInteger, 1, ++/*446737*/ OPC_CheckType, MVT::i32, ++/*446739*/ OPC_MoveParent, ++/*446740*/ OPC_MoveChild7, ++/*446741*/ OPC_CheckInteger, 1, ++/*446743*/ OPC_CheckType, MVT::i32, ++/*446745*/ OPC_MoveParent, ++/*446746*/ OPC_CheckType, MVT::v8i32, ++/*446748*/ OPC_MoveParent, ++/*446749*/ OPC_CheckType, MVT::v8i32, ++/*446751*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*446753*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a)), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*446761*/ 0, /*End of Scope*/ ++/*446762*/ /*Scope*/ 15|128,2/*271*/, /*->447035*/ ++/*446764*/ OPC_MoveChild0, ++/*446765*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*446768*/ OPC_CheckChild0Integer, 1, ++/*446770*/ OPC_CheckChild0Type, MVT::i32, ++/*446772*/ OPC_CheckChild1Integer, 1, ++/*446774*/ OPC_CheckChild1Type, MVT::i32, ++/*446776*/ OPC_CheckChild2Integer, 1, ++/*446778*/ OPC_CheckChild2Type, MVT::i32, ++/*446780*/ OPC_CheckChild3Integer, 1, ++/*446782*/ OPC_CheckChild3Type, MVT::i32, ++/*446784*/ OPC_CheckChild4Integer, 1, ++/*446786*/ OPC_CheckChild4Type, MVT::i32, ++/*446788*/ OPC_MoveChild5, ++/*446789*/ OPC_CheckInteger, 1, ++/*446791*/ OPC_CheckType, MVT::i32, ++/*446793*/ OPC_MoveParent, ++/*446794*/ OPC_MoveChild6, ++/*446795*/ OPC_CheckInteger, 1, ++/*446797*/ OPC_CheckType, MVT::i32, ++/*446799*/ OPC_MoveParent, ++/*446800*/ OPC_MoveChild7, ++/*446801*/ OPC_CheckInteger, 1, ++/*446803*/ OPC_CheckType, MVT::i32, ++/*446805*/ OPC_MoveParent, ++/*446806*/ OPC_MoveParent, ++/*446807*/ OPC_MoveChild1, ++/*446808*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*446811*/ OPC_Scope, 110, /*->446923*/ // 2 children in Scope ++/*446813*/ OPC_CheckChild0Same, 1, ++/*446815*/ OPC_CheckChild1Same, 0, ++/*446817*/ OPC_MoveParent, ++/*446818*/ OPC_MoveParent, ++/*446819*/ OPC_MoveChild1, ++/*446820*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*446823*/ OPC_CheckChild0Integer, 31, ++/*446825*/ OPC_CheckChild0Type, MVT::i32, ++/*446827*/ OPC_CheckChild1Integer, 31, ++/*446829*/ OPC_CheckChild1Type, MVT::i32, ++/*446831*/ OPC_CheckChild2Integer, 31, ++/*446833*/ OPC_CheckChild2Type, MVT::i32, ++/*446835*/ OPC_CheckChild3Integer, 31, ++/*446837*/ OPC_CheckChild3Type, MVT::i32, ++/*446839*/ OPC_CheckChild4Integer, 31, ++/*446841*/ OPC_CheckChild4Type, MVT::i32, ++/*446843*/ OPC_MoveChild5, ++/*446844*/ OPC_CheckInteger, 31, ++/*446846*/ OPC_CheckType, MVT::i32, ++/*446848*/ OPC_MoveParent, ++/*446849*/ OPC_MoveChild6, ++/*446850*/ OPC_CheckInteger, 31, ++/*446852*/ OPC_CheckType, MVT::i32, ++/*446854*/ OPC_MoveParent, ++/*446855*/ OPC_MoveChild7, ++/*446856*/ OPC_CheckInteger, 31, ++/*446858*/ OPC_CheckType, MVT::i32, ++/*446860*/ OPC_MoveParent, ++/*446861*/ OPC_CheckType, MVT::v8i32, ++/*446863*/ OPC_MoveParent, ++/*446864*/ OPC_MoveParent, ++/*446865*/ OPC_MoveParent, ++/*446866*/ OPC_MoveChild1, ++/*446867*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*446870*/ OPC_CheckChild0Integer, 1, ++/*446872*/ OPC_CheckChild0Type, MVT::i32, ++/*446874*/ OPC_CheckChild1Integer, 1, ++/*446876*/ OPC_CheckChild1Type, MVT::i32, ++/*446878*/ OPC_CheckChild2Integer, 1, ++/*446880*/ OPC_CheckChild2Type, MVT::i32, ++/*446882*/ OPC_CheckChild3Integer, 1, ++/*446884*/ OPC_CheckChild3Type, MVT::i32, ++/*446886*/ OPC_CheckChild4Integer, 1, ++/*446888*/ OPC_CheckChild4Type, MVT::i32, ++/*446890*/ OPC_MoveChild5, ++/*446891*/ OPC_CheckInteger, 1, ++/*446893*/ OPC_CheckType, MVT::i32, ++/*446895*/ OPC_MoveParent, ++/*446896*/ OPC_MoveChild6, ++/*446897*/ OPC_CheckInteger, 1, ++/*446899*/ OPC_CheckType, MVT::i32, ++/*446901*/ OPC_MoveParent, ++/*446902*/ OPC_MoveChild7, ++/*446903*/ OPC_CheckInteger, 1, ++/*446905*/ OPC_CheckType, MVT::i32, ++/*446907*/ OPC_MoveParent, ++/*446908*/ OPC_CheckType, MVT::v8i32, ++/*446910*/ OPC_MoveParent, ++/*446911*/ OPC_CheckType, MVT::v8i32, ++/*446913*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*446915*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a)), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*446923*/ /*Scope*/ 110, /*->447034*/ ++/*446924*/ OPC_CheckChild0Same, 0, ++/*446926*/ OPC_CheckChild1Same, 1, ++/*446928*/ OPC_MoveParent, ++/*446929*/ OPC_MoveParent, ++/*446930*/ OPC_MoveChild1, ++/*446931*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*446934*/ OPC_CheckChild0Integer, 31, ++/*446936*/ OPC_CheckChild0Type, MVT::i32, ++/*446938*/ OPC_CheckChild1Integer, 31, ++/*446940*/ OPC_CheckChild1Type, MVT::i32, ++/*446942*/ OPC_CheckChild2Integer, 31, ++/*446944*/ OPC_CheckChild2Type, MVT::i32, ++/*446946*/ OPC_CheckChild3Integer, 31, ++/*446948*/ OPC_CheckChild3Type, MVT::i32, ++/*446950*/ OPC_CheckChild4Integer, 31, ++/*446952*/ OPC_CheckChild4Type, MVT::i32, ++/*446954*/ OPC_MoveChild5, ++/*446955*/ OPC_CheckInteger, 31, ++/*446957*/ OPC_CheckType, MVT::i32, ++/*446959*/ OPC_MoveParent, ++/*446960*/ OPC_MoveChild6, ++/*446961*/ OPC_CheckInteger, 31, ++/*446963*/ OPC_CheckType, MVT::i32, ++/*446965*/ OPC_MoveParent, ++/*446966*/ OPC_MoveChild7, ++/*446967*/ OPC_CheckInteger, 31, ++/*446969*/ OPC_CheckType, MVT::i32, ++/*446971*/ OPC_MoveParent, ++/*446972*/ OPC_CheckType, MVT::v8i32, ++/*446974*/ OPC_MoveParent, ++/*446975*/ OPC_MoveParent, ++/*446976*/ OPC_MoveParent, ++/*446977*/ OPC_MoveChild1, ++/*446978*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*446981*/ OPC_CheckChild0Integer, 1, ++/*446983*/ OPC_CheckChild0Type, MVT::i32, ++/*446985*/ OPC_CheckChild1Integer, 1, ++/*446987*/ OPC_CheckChild1Type, MVT::i32, ++/*446989*/ OPC_CheckChild2Integer, 1, ++/*446991*/ OPC_CheckChild2Type, MVT::i32, ++/*446993*/ OPC_CheckChild3Integer, 1, ++/*446995*/ OPC_CheckChild3Type, MVT::i32, ++/*446997*/ OPC_CheckChild4Integer, 1, ++/*446999*/ OPC_CheckChild4Type, MVT::i32, ++/*447001*/ OPC_MoveChild5, ++/*447002*/ OPC_CheckInteger, 1, ++/*447004*/ OPC_CheckType, MVT::i32, ++/*447006*/ OPC_MoveParent, ++/*447007*/ OPC_MoveChild6, ++/*447008*/ OPC_CheckInteger, 1, ++/*447010*/ OPC_CheckType, MVT::i32, ++/*447012*/ OPC_MoveParent, ++/*447013*/ OPC_MoveChild7, ++/*447014*/ OPC_CheckInteger, 1, ++/*447016*/ OPC_CheckType, MVT::i32, ++/*447018*/ OPC_MoveParent, ++/*447019*/ OPC_CheckType, MVT::v8i32, ++/*447021*/ OPC_MoveParent, ++/*447022*/ OPC_CheckType, MVT::v8i32, ++/*447024*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*447026*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a)), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*447034*/ 0, /*End of Scope*/ ++/*447035*/ 0, /*End of Scope*/ ++/*447036*/ /*Scope*/ 107|128,14/*1899*/, /*->448937*/ ++/*447038*/ OPC_RecordChild0, // #1 = $a ++/*447039*/ OPC_MoveChild1, ++/*447040*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*447043*/ OPC_CheckChild0Integer, 1, ++/*447045*/ OPC_CheckChild0Type, MVT::i32, ++/*447047*/ OPC_CheckChild1Integer, 1, ++/*447049*/ OPC_CheckChild1Type, MVT::i32, ++/*447051*/ OPC_CheckChild2Integer, 1, ++/*447053*/ OPC_CheckChild2Type, MVT::i32, ++/*447055*/ OPC_CheckChild3Integer, 1, ++/*447057*/ OPC_CheckChild3Type, MVT::i32, ++/*447059*/ OPC_CheckChild4Integer, 1, ++/*447061*/ OPC_CheckChild4Type, MVT::i32, ++/*447063*/ OPC_MoveChild5, ++/*447064*/ OPC_CheckInteger, 1, ++/*447066*/ OPC_CheckType, MVT::i32, ++/*447068*/ OPC_MoveParent, ++/*447069*/ OPC_MoveChild6, ++/*447070*/ OPC_CheckInteger, 1, ++/*447072*/ OPC_CheckType, MVT::i32, ++/*447074*/ OPC_MoveParent, ++/*447075*/ OPC_MoveChild7, ++/*447076*/ OPC_CheckInteger, 1, ++/*447078*/ OPC_CheckType, MVT::i32, ++/*447080*/ OPC_MoveParent, ++/*447081*/ OPC_MoveParent, ++/*447082*/ OPC_MoveParent, ++/*447083*/ OPC_MoveParent, ++/*447084*/ OPC_MoveChild1, ++/*447085*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*447088*/ OPC_MoveChild0, ++/*447089*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*447092*/ OPC_Scope, 40|128,7/*936*/, /*->448031*/ // 4 children in Scope ++/*447095*/ OPC_MoveChild0, ++/*447096*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*447099*/ OPC_Scope, 25|128,1/*153*/, /*->447255*/ // 6 children in Scope ++/*447102*/ OPC_MoveChild0, ++/*447103*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*447106*/ OPC_CheckChild0Integer, 1, ++/*447108*/ OPC_CheckChild0Type, MVT::i32, ++/*447110*/ OPC_CheckChild1Integer, 1, ++/*447112*/ OPC_CheckChild1Type, MVT::i32, ++/*447114*/ OPC_CheckChild2Integer, 1, ++/*447116*/ OPC_CheckChild2Type, MVT::i32, ++/*447118*/ OPC_CheckChild3Integer, 1, ++/*447120*/ OPC_CheckChild3Type, MVT::i32, ++/*447122*/ OPC_CheckChild4Integer, 1, ++/*447124*/ OPC_CheckChild4Type, MVT::i32, ++/*447126*/ OPC_MoveChild5, ++/*447127*/ OPC_CheckInteger, 1, ++/*447129*/ OPC_CheckType, MVT::i32, ++/*447131*/ OPC_MoveParent, ++/*447132*/ OPC_MoveChild6, ++/*447133*/ OPC_CheckInteger, 1, ++/*447135*/ OPC_CheckType, MVT::i32, ++/*447137*/ OPC_MoveParent, ++/*447138*/ OPC_MoveChild7, ++/*447139*/ OPC_CheckInteger, 1, ++/*447141*/ OPC_CheckType, MVT::i32, ++/*447143*/ OPC_MoveParent, ++/*447144*/ OPC_MoveParent, ++/*447145*/ OPC_CheckChild1Same, 1, ++/*447147*/ OPC_MoveParent, ++/*447148*/ OPC_CheckChild1Same, 0, ++/*447150*/ OPC_MoveParent, ++/*447151*/ OPC_MoveChild1, ++/*447152*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*447155*/ OPC_CheckChild0Integer, 31, ++/*447157*/ OPC_CheckChild0Type, MVT::i32, ++/*447159*/ OPC_CheckChild1Integer, 31, ++/*447161*/ OPC_CheckChild1Type, MVT::i32, ++/*447163*/ OPC_CheckChild2Integer, 31, ++/*447165*/ OPC_CheckChild2Type, MVT::i32, ++/*447167*/ OPC_CheckChild3Integer, 31, ++/*447169*/ OPC_CheckChild3Type, MVT::i32, ++/*447171*/ OPC_CheckChild4Integer, 31, ++/*447173*/ OPC_CheckChild4Type, MVT::i32, ++/*447175*/ OPC_MoveChild5, ++/*447176*/ OPC_CheckInteger, 31, ++/*447178*/ OPC_CheckType, MVT::i32, ++/*447180*/ OPC_MoveParent, ++/*447181*/ OPC_MoveChild6, ++/*447182*/ OPC_CheckInteger, 31, ++/*447184*/ OPC_CheckType, MVT::i32, ++/*447186*/ OPC_MoveParent, ++/*447187*/ OPC_MoveChild7, ++/*447188*/ OPC_CheckInteger, 31, ++/*447190*/ OPC_CheckType, MVT::i32, ++/*447192*/ OPC_MoveParent, ++/*447193*/ OPC_CheckType, MVT::v8i32, ++/*447195*/ OPC_MoveParent, ++/*447196*/ OPC_MoveParent, ++/*447197*/ OPC_MoveParent, ++/*447198*/ OPC_MoveChild1, ++/*447199*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*447202*/ OPC_CheckChild0Integer, 1, ++/*447204*/ OPC_CheckChild0Type, MVT::i32, ++/*447206*/ OPC_CheckChild1Integer, 1, ++/*447208*/ OPC_CheckChild1Type, MVT::i32, ++/*447210*/ OPC_CheckChild2Integer, 1, ++/*447212*/ OPC_CheckChild2Type, MVT::i32, ++/*447214*/ OPC_CheckChild3Integer, 1, ++/*447216*/ OPC_CheckChild3Type, MVT::i32, ++/*447218*/ OPC_CheckChild4Integer, 1, ++/*447220*/ OPC_CheckChild4Type, MVT::i32, ++/*447222*/ OPC_MoveChild5, ++/*447223*/ OPC_CheckInteger, 1, ++/*447225*/ OPC_CheckType, MVT::i32, ++/*447227*/ OPC_MoveParent, ++/*447228*/ OPC_MoveChild6, ++/*447229*/ OPC_CheckInteger, 1, ++/*447231*/ OPC_CheckType, MVT::i32, ++/*447233*/ OPC_MoveParent, ++/*447234*/ OPC_MoveChild7, ++/*447235*/ OPC_CheckInteger, 1, ++/*447237*/ OPC_CheckType, MVT::i32, ++/*447239*/ OPC_MoveParent, ++/*447240*/ OPC_CheckType, MVT::v8i32, ++/*447242*/ OPC_MoveParent, ++/*447243*/ OPC_CheckType, MVT::v8i32, ++/*447245*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*447247*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a), LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*447255*/ /*Scope*/ 25|128,1/*153*/, /*->447410*/ ++/*447257*/ OPC_CheckChild0Same, 1, ++/*447259*/ OPC_MoveChild1, ++/*447260*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*447263*/ OPC_CheckChild0Integer, 1, ++/*447265*/ OPC_CheckChild0Type, MVT::i32, ++/*447267*/ OPC_CheckChild1Integer, 1, ++/*447269*/ OPC_CheckChild1Type, MVT::i32, ++/*447271*/ OPC_CheckChild2Integer, 1, ++/*447273*/ OPC_CheckChild2Type, MVT::i32, ++/*447275*/ OPC_CheckChild3Integer, 1, ++/*447277*/ OPC_CheckChild3Type, MVT::i32, ++/*447279*/ OPC_CheckChild4Integer, 1, ++/*447281*/ OPC_CheckChild4Type, MVT::i32, ++/*447283*/ OPC_MoveChild5, ++/*447284*/ OPC_CheckInteger, 1, ++/*447286*/ OPC_CheckType, MVT::i32, ++/*447288*/ OPC_MoveParent, ++/*447289*/ OPC_MoveChild6, ++/*447290*/ OPC_CheckInteger, 1, ++/*447292*/ OPC_CheckType, MVT::i32, ++/*447294*/ OPC_MoveParent, ++/*447295*/ OPC_MoveChild7, ++/*447296*/ OPC_CheckInteger, 1, ++/*447298*/ OPC_CheckType, MVT::i32, ++/*447300*/ OPC_MoveParent, ++/*447301*/ OPC_MoveParent, ++/*447302*/ OPC_MoveParent, ++/*447303*/ OPC_CheckChild1Same, 0, ++/*447305*/ OPC_MoveParent, ++/*447306*/ OPC_MoveChild1, ++/*447307*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*447310*/ OPC_CheckChild0Integer, 31, ++/*447312*/ OPC_CheckChild0Type, MVT::i32, ++/*447314*/ OPC_CheckChild1Integer, 31, ++/*447316*/ OPC_CheckChild1Type, MVT::i32, ++/*447318*/ OPC_CheckChild2Integer, 31, ++/*447320*/ OPC_CheckChild2Type, MVT::i32, ++/*447322*/ OPC_CheckChild3Integer, 31, ++/*447324*/ OPC_CheckChild3Type, MVT::i32, ++/*447326*/ OPC_CheckChild4Integer, 31, ++/*447328*/ OPC_CheckChild4Type, MVT::i32, ++/*447330*/ OPC_MoveChild5, ++/*447331*/ OPC_CheckInteger, 31, ++/*447333*/ OPC_CheckType, MVT::i32, ++/*447335*/ OPC_MoveParent, ++/*447336*/ OPC_MoveChild6, ++/*447337*/ OPC_CheckInteger, 31, ++/*447339*/ OPC_CheckType, MVT::i32, ++/*447341*/ OPC_MoveParent, ++/*447342*/ OPC_MoveChild7, ++/*447343*/ OPC_CheckInteger, 31, ++/*447345*/ OPC_CheckType, MVT::i32, ++/*447347*/ OPC_MoveParent, ++/*447348*/ OPC_CheckType, MVT::v8i32, ++/*447350*/ OPC_MoveParent, ++/*447351*/ OPC_MoveParent, ++/*447352*/ OPC_MoveParent, ++/*447353*/ OPC_MoveChild1, ++/*447354*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*447357*/ OPC_CheckChild0Integer, 1, ++/*447359*/ OPC_CheckChild0Type, MVT::i32, ++/*447361*/ OPC_CheckChild1Integer, 1, ++/*447363*/ OPC_CheckChild1Type, MVT::i32, ++/*447365*/ OPC_CheckChild2Integer, 1, ++/*447367*/ OPC_CheckChild2Type, MVT::i32, ++/*447369*/ OPC_CheckChild3Integer, 1, ++/*447371*/ OPC_CheckChild3Type, MVT::i32, ++/*447373*/ OPC_CheckChild4Integer, 1, ++/*447375*/ OPC_CheckChild4Type, MVT::i32, ++/*447377*/ OPC_MoveChild5, ++/*447378*/ OPC_CheckInteger, 1, ++/*447380*/ OPC_CheckType, MVT::i32, ++/*447382*/ OPC_MoveParent, ++/*447383*/ OPC_MoveChild6, ++/*447384*/ OPC_CheckInteger, 1, ++/*447386*/ OPC_CheckType, MVT::i32, ++/*447388*/ OPC_MoveParent, ++/*447389*/ OPC_MoveChild7, ++/*447390*/ OPC_CheckInteger, 1, ++/*447392*/ OPC_CheckType, MVT::i32, ++/*447394*/ OPC_MoveParent, ++/*447395*/ OPC_CheckType, MVT::v8i32, ++/*447397*/ OPC_MoveParent, ++/*447398*/ OPC_CheckType, MVT::v8i32, ++/*447400*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*447402*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*447410*/ /*Scope*/ 25|128,1/*153*/, /*->447565*/ ++/*447412*/ OPC_MoveChild0, ++/*447413*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*447416*/ OPC_CheckChild0Integer, 1, ++/*447418*/ OPC_CheckChild0Type, MVT::i32, ++/*447420*/ OPC_CheckChild1Integer, 1, ++/*447422*/ OPC_CheckChild1Type, MVT::i32, ++/*447424*/ OPC_CheckChild2Integer, 1, ++/*447426*/ OPC_CheckChild2Type, MVT::i32, ++/*447428*/ OPC_CheckChild3Integer, 1, ++/*447430*/ OPC_CheckChild3Type, MVT::i32, ++/*447432*/ OPC_CheckChild4Integer, 1, ++/*447434*/ OPC_CheckChild4Type, MVT::i32, ++/*447436*/ OPC_MoveChild5, ++/*447437*/ OPC_CheckInteger, 1, ++/*447439*/ OPC_CheckType, MVT::i32, ++/*447441*/ OPC_MoveParent, ++/*447442*/ OPC_MoveChild6, ++/*447443*/ OPC_CheckInteger, 1, ++/*447445*/ OPC_CheckType, MVT::i32, ++/*447447*/ OPC_MoveParent, ++/*447448*/ OPC_MoveChild7, ++/*447449*/ OPC_CheckInteger, 1, ++/*447451*/ OPC_CheckType, MVT::i32, ++/*447453*/ OPC_MoveParent, ++/*447454*/ OPC_MoveParent, ++/*447455*/ OPC_CheckChild1Same, 0, ++/*447457*/ OPC_MoveParent, ++/*447458*/ OPC_CheckChild1Same, 1, ++/*447460*/ OPC_MoveParent, ++/*447461*/ OPC_MoveChild1, ++/*447462*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*447465*/ OPC_CheckChild0Integer, 31, ++/*447467*/ OPC_CheckChild0Type, MVT::i32, ++/*447469*/ OPC_CheckChild1Integer, 31, ++/*447471*/ OPC_CheckChild1Type, MVT::i32, ++/*447473*/ OPC_CheckChild2Integer, 31, ++/*447475*/ OPC_CheckChild2Type, MVT::i32, ++/*447477*/ OPC_CheckChild3Integer, 31, ++/*447479*/ OPC_CheckChild3Type, MVT::i32, ++/*447481*/ OPC_CheckChild4Integer, 31, ++/*447483*/ OPC_CheckChild4Type, MVT::i32, ++/*447485*/ OPC_MoveChild5, ++/*447486*/ OPC_CheckInteger, 31, ++/*447488*/ OPC_CheckType, MVT::i32, ++/*447490*/ OPC_MoveParent, ++/*447491*/ OPC_MoveChild6, ++/*447492*/ OPC_CheckInteger, 31, ++/*447494*/ OPC_CheckType, MVT::i32, ++/*447496*/ OPC_MoveParent, ++/*447497*/ OPC_MoveChild7, ++/*447498*/ OPC_CheckInteger, 31, ++/*447500*/ OPC_CheckType, MVT::i32, ++/*447502*/ OPC_MoveParent, ++/*447503*/ OPC_CheckType, MVT::v8i32, ++/*447505*/ OPC_MoveParent, ++/*447506*/ OPC_MoveParent, ++/*447507*/ OPC_MoveParent, ++/*447508*/ OPC_MoveChild1, ++/*447509*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*447512*/ OPC_CheckChild0Integer, 1, ++/*447514*/ OPC_CheckChild0Type, MVT::i32, ++/*447516*/ OPC_CheckChild1Integer, 1, ++/*447518*/ OPC_CheckChild1Type, MVT::i32, ++/*447520*/ OPC_CheckChild2Integer, 1, ++/*447522*/ OPC_CheckChild2Type, MVT::i32, ++/*447524*/ OPC_CheckChild3Integer, 1, ++/*447526*/ OPC_CheckChild3Type, MVT::i32, ++/*447528*/ OPC_CheckChild4Integer, 1, ++/*447530*/ OPC_CheckChild4Type, MVT::i32, ++/*447532*/ OPC_MoveChild5, ++/*447533*/ OPC_CheckInteger, 1, ++/*447535*/ OPC_CheckType, MVT::i32, ++/*447537*/ OPC_MoveParent, ++/*447538*/ OPC_MoveChild6, ++/*447539*/ OPC_CheckInteger, 1, ++/*447541*/ OPC_CheckType, MVT::i32, ++/*447543*/ OPC_MoveParent, ++/*447544*/ OPC_MoveChild7, ++/*447545*/ OPC_CheckInteger, 1, ++/*447547*/ OPC_CheckType, MVT::i32, ++/*447549*/ OPC_MoveParent, ++/*447550*/ OPC_CheckType, MVT::v8i32, ++/*447552*/ OPC_MoveParent, ++/*447553*/ OPC_CheckType, MVT::v8i32, ++/*447555*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*447557*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b), LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*447565*/ /*Scope*/ 25|128,1/*153*/, /*->447720*/ ++/*447567*/ OPC_CheckChild0Same, 0, ++/*447569*/ OPC_MoveChild1, ++/*447570*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*447573*/ OPC_CheckChild0Integer, 1, ++/*447575*/ OPC_CheckChild0Type, MVT::i32, ++/*447577*/ OPC_CheckChild1Integer, 1, ++/*447579*/ OPC_CheckChild1Type, MVT::i32, ++/*447581*/ OPC_CheckChild2Integer, 1, ++/*447583*/ OPC_CheckChild2Type, MVT::i32, ++/*447585*/ OPC_CheckChild3Integer, 1, ++/*447587*/ OPC_CheckChild3Type, MVT::i32, ++/*447589*/ OPC_CheckChild4Integer, 1, ++/*447591*/ OPC_CheckChild4Type, MVT::i32, ++/*447593*/ OPC_MoveChild5, ++/*447594*/ OPC_CheckInteger, 1, ++/*447596*/ OPC_CheckType, MVT::i32, ++/*447598*/ OPC_MoveParent, ++/*447599*/ OPC_MoveChild6, ++/*447600*/ OPC_CheckInteger, 1, ++/*447602*/ OPC_CheckType, MVT::i32, ++/*447604*/ OPC_MoveParent, ++/*447605*/ OPC_MoveChild7, ++/*447606*/ OPC_CheckInteger, 1, ++/*447608*/ OPC_CheckType, MVT::i32, ++/*447610*/ OPC_MoveParent, ++/*447611*/ OPC_MoveParent, ++/*447612*/ OPC_MoveParent, ++/*447613*/ OPC_CheckChild1Same, 1, ++/*447615*/ OPC_MoveParent, ++/*447616*/ OPC_MoveChild1, ++/*447617*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*447620*/ OPC_CheckChild0Integer, 31, ++/*447622*/ OPC_CheckChild0Type, MVT::i32, ++/*447624*/ OPC_CheckChild1Integer, 31, ++/*447626*/ OPC_CheckChild1Type, MVT::i32, ++/*447628*/ OPC_CheckChild2Integer, 31, ++/*447630*/ OPC_CheckChild2Type, MVT::i32, ++/*447632*/ OPC_CheckChild3Integer, 31, ++/*447634*/ OPC_CheckChild3Type, MVT::i32, ++/*447636*/ OPC_CheckChild4Integer, 31, ++/*447638*/ OPC_CheckChild4Type, MVT::i32, ++/*447640*/ OPC_MoveChild5, ++/*447641*/ OPC_CheckInteger, 31, ++/*447643*/ OPC_CheckType, MVT::i32, ++/*447645*/ OPC_MoveParent, ++/*447646*/ OPC_MoveChild6, ++/*447647*/ OPC_CheckInteger, 31, ++/*447649*/ OPC_CheckType, MVT::i32, ++/*447651*/ OPC_MoveParent, ++/*447652*/ OPC_MoveChild7, ++/*447653*/ OPC_CheckInteger, 31, ++/*447655*/ OPC_CheckType, MVT::i32, ++/*447657*/ OPC_MoveParent, ++/*447658*/ OPC_CheckType, MVT::v8i32, ++/*447660*/ OPC_MoveParent, ++/*447661*/ OPC_MoveParent, ++/*447662*/ OPC_MoveParent, ++/*447663*/ OPC_MoveChild1, ++/*447664*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*447667*/ OPC_CheckChild0Integer, 1, ++/*447669*/ OPC_CheckChild0Type, MVT::i32, ++/*447671*/ OPC_CheckChild1Integer, 1, ++/*447673*/ OPC_CheckChild1Type, MVT::i32, ++/*447675*/ OPC_CheckChild2Integer, 1, ++/*447677*/ OPC_CheckChild2Type, MVT::i32, ++/*447679*/ OPC_CheckChild3Integer, 1, ++/*447681*/ OPC_CheckChild3Type, MVT::i32, ++/*447683*/ OPC_CheckChild4Integer, 1, ++/*447685*/ OPC_CheckChild4Type, MVT::i32, ++/*447687*/ OPC_MoveChild5, ++/*447688*/ OPC_CheckInteger, 1, ++/*447690*/ OPC_CheckType, MVT::i32, ++/*447692*/ OPC_MoveParent, ++/*447693*/ OPC_MoveChild6, ++/*447694*/ OPC_CheckInteger, 1, ++/*447696*/ OPC_CheckType, MVT::i32, ++/*447698*/ OPC_MoveParent, ++/*447699*/ OPC_MoveChild7, ++/*447700*/ OPC_CheckInteger, 1, ++/*447702*/ OPC_CheckType, MVT::i32, ++/*447704*/ OPC_MoveParent, ++/*447705*/ OPC_CheckType, MVT::v8i32, ++/*447707*/ OPC_MoveParent, ++/*447708*/ OPC_CheckType, MVT::v8i32, ++/*447710*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*447712*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*447720*/ /*Scope*/ 25|128,1/*153*/, /*->447875*/ ++/*447722*/ OPC_CheckChild0Same, 1, ++/*447724*/ OPC_CheckChild1Same, 0, ++/*447726*/ OPC_MoveParent, ++/*447727*/ OPC_MoveChild1, ++/*447728*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*447731*/ OPC_CheckChild0Integer, 1, ++/*447733*/ OPC_CheckChild0Type, MVT::i32, ++/*447735*/ OPC_CheckChild1Integer, 1, ++/*447737*/ OPC_CheckChild1Type, MVT::i32, ++/*447739*/ OPC_CheckChild2Integer, 1, ++/*447741*/ OPC_CheckChild2Type, MVT::i32, ++/*447743*/ OPC_CheckChild3Integer, 1, ++/*447745*/ OPC_CheckChild3Type, MVT::i32, ++/*447747*/ OPC_CheckChild4Integer, 1, ++/*447749*/ OPC_CheckChild4Type, MVT::i32, ++/*447751*/ OPC_MoveChild5, ++/*447752*/ OPC_CheckInteger, 1, ++/*447754*/ OPC_CheckType, MVT::i32, ++/*447756*/ OPC_MoveParent, ++/*447757*/ OPC_MoveChild6, ++/*447758*/ OPC_CheckInteger, 1, ++/*447760*/ OPC_CheckType, MVT::i32, ++/*447762*/ OPC_MoveParent, ++/*447763*/ OPC_MoveChild7, ++/*447764*/ OPC_CheckInteger, 1, ++/*447766*/ OPC_CheckType, MVT::i32, ++/*447768*/ OPC_MoveParent, ++/*447769*/ OPC_MoveParent, ++/*447770*/ OPC_MoveParent, ++/*447771*/ OPC_MoveChild1, ++/*447772*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*447775*/ OPC_CheckChild0Integer, 31, ++/*447777*/ OPC_CheckChild0Type, MVT::i32, ++/*447779*/ OPC_CheckChild1Integer, 31, ++/*447781*/ OPC_CheckChild1Type, MVT::i32, ++/*447783*/ OPC_CheckChild2Integer, 31, ++/*447785*/ OPC_CheckChild2Type, MVT::i32, ++/*447787*/ OPC_CheckChild3Integer, 31, ++/*447789*/ OPC_CheckChild3Type, MVT::i32, ++/*447791*/ OPC_CheckChild4Integer, 31, ++/*447793*/ OPC_CheckChild4Type, MVT::i32, ++/*447795*/ OPC_MoveChild5, ++/*447796*/ OPC_CheckInteger, 31, ++/*447798*/ OPC_CheckType, MVT::i32, ++/*447800*/ OPC_MoveParent, ++/*447801*/ OPC_MoveChild6, ++/*447802*/ OPC_CheckInteger, 31, ++/*447804*/ OPC_CheckType, MVT::i32, ++/*447806*/ OPC_MoveParent, ++/*447807*/ OPC_MoveChild7, ++/*447808*/ OPC_CheckInteger, 31, ++/*447810*/ OPC_CheckType, MVT::i32, ++/*447812*/ OPC_MoveParent, ++/*447813*/ OPC_CheckType, MVT::v8i32, ++/*447815*/ OPC_MoveParent, ++/*447816*/ OPC_MoveParent, ++/*447817*/ OPC_MoveParent, ++/*447818*/ OPC_MoveChild1, ++/*447819*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*447822*/ OPC_CheckChild0Integer, 1, ++/*447824*/ OPC_CheckChild0Type, MVT::i32, ++/*447826*/ OPC_CheckChild1Integer, 1, ++/*447828*/ OPC_CheckChild1Type, MVT::i32, ++/*447830*/ OPC_CheckChild2Integer, 1, ++/*447832*/ OPC_CheckChild2Type, MVT::i32, ++/*447834*/ OPC_CheckChild3Integer, 1, ++/*447836*/ OPC_CheckChild3Type, MVT::i32, ++/*447838*/ OPC_CheckChild4Integer, 1, ++/*447840*/ OPC_CheckChild4Type, MVT::i32, ++/*447842*/ OPC_MoveChild5, ++/*447843*/ OPC_CheckInteger, 1, ++/*447845*/ OPC_CheckType, MVT::i32, ++/*447847*/ OPC_MoveParent, ++/*447848*/ OPC_MoveChild6, ++/*447849*/ OPC_CheckInteger, 1, ++/*447851*/ OPC_CheckType, MVT::i32, ++/*447853*/ OPC_MoveParent, ++/*447854*/ OPC_MoveChild7, ++/*447855*/ OPC_CheckInteger, 1, ++/*447857*/ OPC_CheckType, MVT::i32, ++/*447859*/ OPC_MoveParent, ++/*447860*/ OPC_CheckType, MVT::v8i32, ++/*447862*/ OPC_MoveParent, ++/*447863*/ OPC_CheckType, MVT::v8i32, ++/*447865*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*447867*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*447875*/ /*Scope*/ 25|128,1/*153*/, /*->448030*/ ++/*447877*/ OPC_CheckChild0Same, 0, ++/*447879*/ OPC_CheckChild1Same, 1, ++/*447881*/ OPC_MoveParent, ++/*447882*/ OPC_MoveChild1, ++/*447883*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*447886*/ OPC_CheckChild0Integer, 1, ++/*447888*/ OPC_CheckChild0Type, MVT::i32, ++/*447890*/ OPC_CheckChild1Integer, 1, ++/*447892*/ OPC_CheckChild1Type, MVT::i32, ++/*447894*/ OPC_CheckChild2Integer, 1, ++/*447896*/ OPC_CheckChild2Type, MVT::i32, ++/*447898*/ OPC_CheckChild3Integer, 1, ++/*447900*/ OPC_CheckChild3Type, MVT::i32, ++/*447902*/ OPC_CheckChild4Integer, 1, ++/*447904*/ OPC_CheckChild4Type, MVT::i32, ++/*447906*/ OPC_MoveChild5, ++/*447907*/ OPC_CheckInteger, 1, ++/*447909*/ OPC_CheckType, MVT::i32, ++/*447911*/ OPC_MoveParent, ++/*447912*/ OPC_MoveChild6, ++/*447913*/ OPC_CheckInteger, 1, ++/*447915*/ OPC_CheckType, MVT::i32, ++/*447917*/ OPC_MoveParent, ++/*447918*/ OPC_MoveChild7, ++/*447919*/ OPC_CheckInteger, 1, ++/*447921*/ OPC_CheckType, MVT::i32, ++/*447923*/ OPC_MoveParent, ++/*447924*/ OPC_MoveParent, ++/*447925*/ OPC_MoveParent, ++/*447926*/ OPC_MoveChild1, ++/*447927*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*447930*/ OPC_CheckChild0Integer, 31, ++/*447932*/ OPC_CheckChild0Type, MVT::i32, ++/*447934*/ OPC_CheckChild1Integer, 31, ++/*447936*/ OPC_CheckChild1Type, MVT::i32, ++/*447938*/ OPC_CheckChild2Integer, 31, ++/*447940*/ OPC_CheckChild2Type, MVT::i32, ++/*447942*/ OPC_CheckChild3Integer, 31, ++/*447944*/ OPC_CheckChild3Type, MVT::i32, ++/*447946*/ OPC_CheckChild4Integer, 31, ++/*447948*/ OPC_CheckChild4Type, MVT::i32, ++/*447950*/ OPC_MoveChild5, ++/*447951*/ OPC_CheckInteger, 31, ++/*447953*/ OPC_CheckType, MVT::i32, ++/*447955*/ OPC_MoveParent, ++/*447956*/ OPC_MoveChild6, ++/*447957*/ OPC_CheckInteger, 31, ++/*447959*/ OPC_CheckType, MVT::i32, ++/*447961*/ OPC_MoveParent, ++/*447962*/ OPC_MoveChild7, ++/*447963*/ OPC_CheckInteger, 31, ++/*447965*/ OPC_CheckType, MVT::i32, ++/*447967*/ OPC_MoveParent, ++/*447968*/ OPC_CheckType, MVT::v8i32, ++/*447970*/ OPC_MoveParent, ++/*447971*/ OPC_MoveParent, ++/*447972*/ OPC_MoveParent, ++/*447973*/ OPC_MoveChild1, ++/*447974*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*447977*/ OPC_CheckChild0Integer, 1, ++/*447979*/ OPC_CheckChild0Type, MVT::i32, ++/*447981*/ OPC_CheckChild1Integer, 1, ++/*447983*/ OPC_CheckChild1Type, MVT::i32, ++/*447985*/ OPC_CheckChild2Integer, 1, ++/*447987*/ OPC_CheckChild2Type, MVT::i32, ++/*447989*/ OPC_CheckChild3Integer, 1, ++/*447991*/ OPC_CheckChild3Type, MVT::i32, ++/*447993*/ OPC_CheckChild4Integer, 1, ++/*447995*/ OPC_CheckChild4Type, MVT::i32, ++/*447997*/ OPC_MoveChild5, ++/*447998*/ OPC_CheckInteger, 1, ++/*448000*/ OPC_CheckType, MVT::i32, ++/*448002*/ OPC_MoveParent, ++/*448003*/ OPC_MoveChild6, ++/*448004*/ OPC_CheckInteger, 1, ++/*448006*/ OPC_CheckType, MVT::i32, ++/*448008*/ OPC_MoveParent, ++/*448009*/ OPC_MoveChild7, ++/*448010*/ OPC_CheckInteger, 1, ++/*448012*/ OPC_CheckType, MVT::i32, ++/*448014*/ OPC_MoveParent, ++/*448015*/ OPC_CheckType, MVT::v8i32, ++/*448017*/ OPC_MoveParent, ++/*448018*/ OPC_CheckType, MVT::v8i32, ++/*448020*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*448022*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*448030*/ 0, /*End of Scope*/ ++/*448031*/ /*Scope*/ 58|128,2/*314*/, /*->448347*/ ++/*448033*/ OPC_CheckChild0Same, 0, ++/*448035*/ OPC_MoveChild1, ++/*448036*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*448039*/ OPC_Scope, 23|128,1/*151*/, /*->448193*/ // 2 children in Scope ++/*448042*/ OPC_MoveChild0, ++/*448043*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*448046*/ OPC_CheckChild0Integer, 1, ++/*448048*/ OPC_CheckChild0Type, MVT::i32, ++/*448050*/ OPC_CheckChild1Integer, 1, ++/*448052*/ OPC_CheckChild1Type, MVT::i32, ++/*448054*/ OPC_CheckChild2Integer, 1, ++/*448056*/ OPC_CheckChild2Type, MVT::i32, ++/*448058*/ OPC_CheckChild3Integer, 1, ++/*448060*/ OPC_CheckChild3Type, MVT::i32, ++/*448062*/ OPC_CheckChild4Integer, 1, ++/*448064*/ OPC_CheckChild4Type, MVT::i32, ++/*448066*/ OPC_MoveChild5, ++/*448067*/ OPC_CheckInteger, 1, ++/*448069*/ OPC_CheckType, MVT::i32, ++/*448071*/ OPC_MoveParent, ++/*448072*/ OPC_MoveChild6, ++/*448073*/ OPC_CheckInteger, 1, ++/*448075*/ OPC_CheckType, MVT::i32, ++/*448077*/ OPC_MoveParent, ++/*448078*/ OPC_MoveChild7, ++/*448079*/ OPC_CheckInteger, 1, ++/*448081*/ OPC_CheckType, MVT::i32, ++/*448083*/ OPC_MoveParent, ++/*448084*/ OPC_MoveParent, ++/*448085*/ OPC_CheckChild1Same, 1, ++/*448087*/ OPC_MoveParent, ++/*448088*/ OPC_MoveParent, ++/*448089*/ OPC_MoveChild1, ++/*448090*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*448093*/ OPC_CheckChild0Integer, 31, ++/*448095*/ OPC_CheckChild0Type, MVT::i32, ++/*448097*/ OPC_CheckChild1Integer, 31, ++/*448099*/ OPC_CheckChild1Type, MVT::i32, ++/*448101*/ OPC_CheckChild2Integer, 31, ++/*448103*/ OPC_CheckChild2Type, MVT::i32, ++/*448105*/ OPC_CheckChild3Integer, 31, ++/*448107*/ OPC_CheckChild3Type, MVT::i32, ++/*448109*/ OPC_CheckChild4Integer, 31, ++/*448111*/ OPC_CheckChild4Type, MVT::i32, ++/*448113*/ OPC_MoveChild5, ++/*448114*/ OPC_CheckInteger, 31, ++/*448116*/ OPC_CheckType, MVT::i32, ++/*448118*/ OPC_MoveParent, ++/*448119*/ OPC_MoveChild6, ++/*448120*/ OPC_CheckInteger, 31, ++/*448122*/ OPC_CheckType, MVT::i32, ++/*448124*/ OPC_MoveParent, ++/*448125*/ OPC_MoveChild7, ++/*448126*/ OPC_CheckInteger, 31, ++/*448128*/ OPC_CheckType, MVT::i32, ++/*448130*/ OPC_MoveParent, ++/*448131*/ OPC_CheckType, MVT::v8i32, ++/*448133*/ OPC_MoveParent, ++/*448134*/ OPC_MoveParent, ++/*448135*/ OPC_MoveParent, ++/*448136*/ OPC_MoveChild1, ++/*448137*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*448140*/ OPC_CheckChild0Integer, 1, ++/*448142*/ OPC_CheckChild0Type, MVT::i32, ++/*448144*/ OPC_CheckChild1Integer, 1, ++/*448146*/ OPC_CheckChild1Type, MVT::i32, ++/*448148*/ OPC_CheckChild2Integer, 1, ++/*448150*/ OPC_CheckChild2Type, MVT::i32, ++/*448152*/ OPC_CheckChild3Integer, 1, ++/*448154*/ OPC_CheckChild3Type, MVT::i32, ++/*448156*/ OPC_CheckChild4Integer, 1, ++/*448158*/ OPC_CheckChild4Type, MVT::i32, ++/*448160*/ OPC_MoveChild5, ++/*448161*/ OPC_CheckInteger, 1, ++/*448163*/ OPC_CheckType, MVT::i32, ++/*448165*/ OPC_MoveParent, ++/*448166*/ OPC_MoveChild6, ++/*448167*/ OPC_CheckInteger, 1, ++/*448169*/ OPC_CheckType, MVT::i32, ++/*448171*/ OPC_MoveParent, ++/*448172*/ OPC_MoveChild7, ++/*448173*/ OPC_CheckInteger, 1, ++/*448175*/ OPC_CheckType, MVT::i32, ++/*448177*/ OPC_MoveParent, ++/*448178*/ OPC_CheckType, MVT::v8i32, ++/*448180*/ OPC_MoveParent, ++/*448181*/ OPC_CheckType, MVT::v8i32, ++/*448183*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*448185*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*448193*/ /*Scope*/ 23|128,1/*151*/, /*->448346*/ ++/*448195*/ OPC_CheckChild0Same, 1, ++/*448197*/ OPC_MoveChild1, ++/*448198*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*448201*/ OPC_CheckChild0Integer, 1, ++/*448203*/ OPC_CheckChild0Type, MVT::i32, ++/*448205*/ OPC_CheckChild1Integer, 1, ++/*448207*/ OPC_CheckChild1Type, MVT::i32, ++/*448209*/ OPC_CheckChild2Integer, 1, ++/*448211*/ OPC_CheckChild2Type, MVT::i32, ++/*448213*/ OPC_CheckChild3Integer, 1, ++/*448215*/ OPC_CheckChild3Type, MVT::i32, ++/*448217*/ OPC_CheckChild4Integer, 1, ++/*448219*/ OPC_CheckChild4Type, MVT::i32, ++/*448221*/ OPC_MoveChild5, ++/*448222*/ OPC_CheckInteger, 1, ++/*448224*/ OPC_CheckType, MVT::i32, ++/*448226*/ OPC_MoveParent, ++/*448227*/ OPC_MoveChild6, ++/*448228*/ OPC_CheckInteger, 1, ++/*448230*/ OPC_CheckType, MVT::i32, ++/*448232*/ OPC_MoveParent, ++/*448233*/ OPC_MoveChild7, ++/*448234*/ OPC_CheckInteger, 1, ++/*448236*/ OPC_CheckType, MVT::i32, ++/*448238*/ OPC_MoveParent, ++/*448239*/ OPC_MoveParent, ++/*448240*/ OPC_MoveParent, ++/*448241*/ OPC_MoveParent, ++/*448242*/ OPC_MoveChild1, ++/*448243*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*448246*/ OPC_CheckChild0Integer, 31, ++/*448248*/ OPC_CheckChild0Type, MVT::i32, ++/*448250*/ OPC_CheckChild1Integer, 31, ++/*448252*/ OPC_CheckChild1Type, MVT::i32, ++/*448254*/ OPC_CheckChild2Integer, 31, ++/*448256*/ OPC_CheckChild2Type, MVT::i32, ++/*448258*/ OPC_CheckChild3Integer, 31, ++/*448260*/ OPC_CheckChild3Type, MVT::i32, ++/*448262*/ OPC_CheckChild4Integer, 31, ++/*448264*/ OPC_CheckChild4Type, MVT::i32, ++/*448266*/ OPC_MoveChild5, ++/*448267*/ OPC_CheckInteger, 31, ++/*448269*/ OPC_CheckType, MVT::i32, ++/*448271*/ OPC_MoveParent, ++/*448272*/ OPC_MoveChild6, ++/*448273*/ OPC_CheckInteger, 31, ++/*448275*/ OPC_CheckType, MVT::i32, ++/*448277*/ OPC_MoveParent, ++/*448278*/ OPC_MoveChild7, ++/*448279*/ OPC_CheckInteger, 31, ++/*448281*/ OPC_CheckType, MVT::i32, ++/*448283*/ OPC_MoveParent, ++/*448284*/ OPC_CheckType, MVT::v8i32, ++/*448286*/ OPC_MoveParent, ++/*448287*/ OPC_MoveParent, ++/*448288*/ OPC_MoveParent, ++/*448289*/ OPC_MoveChild1, ++/*448290*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*448293*/ OPC_CheckChild0Integer, 1, ++/*448295*/ OPC_CheckChild0Type, MVT::i32, ++/*448297*/ OPC_CheckChild1Integer, 1, ++/*448299*/ OPC_CheckChild1Type, MVT::i32, ++/*448301*/ OPC_CheckChild2Integer, 1, ++/*448303*/ OPC_CheckChild2Type, MVT::i32, ++/*448305*/ OPC_CheckChild3Integer, 1, ++/*448307*/ OPC_CheckChild3Type, MVT::i32, ++/*448309*/ OPC_CheckChild4Integer, 1, ++/*448311*/ OPC_CheckChild4Type, MVT::i32, ++/*448313*/ OPC_MoveChild5, ++/*448314*/ OPC_CheckInteger, 1, ++/*448316*/ OPC_CheckType, MVT::i32, ++/*448318*/ OPC_MoveParent, ++/*448319*/ OPC_MoveChild6, ++/*448320*/ OPC_CheckInteger, 1, ++/*448322*/ OPC_CheckType, MVT::i32, ++/*448324*/ OPC_MoveParent, ++/*448325*/ OPC_MoveChild7, ++/*448326*/ OPC_CheckInteger, 1, ++/*448328*/ OPC_CheckType, MVT::i32, ++/*448330*/ OPC_MoveParent, ++/*448331*/ OPC_CheckType, MVT::v8i32, ++/*448333*/ OPC_MoveParent, ++/*448334*/ OPC_CheckType, MVT::v8i32, ++/*448336*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*448338*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*448346*/ 0, /*End of Scope*/ ++/*448347*/ /*Scope*/ 58|128,2/*314*/, /*->448663*/ ++/*448349*/ OPC_CheckChild0Same, 1, ++/*448351*/ OPC_MoveChild1, ++/*448352*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*448355*/ OPC_Scope, 23|128,1/*151*/, /*->448509*/ // 2 children in Scope ++/*448358*/ OPC_MoveChild0, ++/*448359*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*448362*/ OPC_CheckChild0Integer, 1, ++/*448364*/ OPC_CheckChild0Type, MVT::i32, ++/*448366*/ OPC_CheckChild1Integer, 1, ++/*448368*/ OPC_CheckChild1Type, MVT::i32, ++/*448370*/ OPC_CheckChild2Integer, 1, ++/*448372*/ OPC_CheckChild2Type, MVT::i32, ++/*448374*/ OPC_CheckChild3Integer, 1, ++/*448376*/ OPC_CheckChild3Type, MVT::i32, ++/*448378*/ OPC_CheckChild4Integer, 1, ++/*448380*/ OPC_CheckChild4Type, MVT::i32, ++/*448382*/ OPC_MoveChild5, ++/*448383*/ OPC_CheckInteger, 1, ++/*448385*/ OPC_CheckType, MVT::i32, ++/*448387*/ OPC_MoveParent, ++/*448388*/ OPC_MoveChild6, ++/*448389*/ OPC_CheckInteger, 1, ++/*448391*/ OPC_CheckType, MVT::i32, ++/*448393*/ OPC_MoveParent, ++/*448394*/ OPC_MoveChild7, ++/*448395*/ OPC_CheckInteger, 1, ++/*448397*/ OPC_CheckType, MVT::i32, ++/*448399*/ OPC_MoveParent, ++/*448400*/ OPC_MoveParent, ++/*448401*/ OPC_CheckChild1Same, 0, ++/*448403*/ OPC_MoveParent, ++/*448404*/ OPC_MoveParent, ++/*448405*/ OPC_MoveChild1, ++/*448406*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*448409*/ OPC_CheckChild0Integer, 31, ++/*448411*/ OPC_CheckChild0Type, MVT::i32, ++/*448413*/ OPC_CheckChild1Integer, 31, ++/*448415*/ OPC_CheckChild1Type, MVT::i32, ++/*448417*/ OPC_CheckChild2Integer, 31, ++/*448419*/ OPC_CheckChild2Type, MVT::i32, ++/*448421*/ OPC_CheckChild3Integer, 31, ++/*448423*/ OPC_CheckChild3Type, MVT::i32, ++/*448425*/ OPC_CheckChild4Integer, 31, ++/*448427*/ OPC_CheckChild4Type, MVT::i32, ++/*448429*/ OPC_MoveChild5, ++/*448430*/ OPC_CheckInteger, 31, ++/*448432*/ OPC_CheckType, MVT::i32, ++/*448434*/ OPC_MoveParent, ++/*448435*/ OPC_MoveChild6, ++/*448436*/ OPC_CheckInteger, 31, ++/*448438*/ OPC_CheckType, MVT::i32, ++/*448440*/ OPC_MoveParent, ++/*448441*/ OPC_MoveChild7, ++/*448442*/ OPC_CheckInteger, 31, ++/*448444*/ OPC_CheckType, MVT::i32, ++/*448446*/ OPC_MoveParent, ++/*448447*/ OPC_CheckType, MVT::v8i32, ++/*448449*/ OPC_MoveParent, ++/*448450*/ OPC_MoveParent, ++/*448451*/ OPC_MoveParent, ++/*448452*/ OPC_MoveChild1, ++/*448453*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*448456*/ OPC_CheckChild0Integer, 1, ++/*448458*/ OPC_CheckChild0Type, MVT::i32, ++/*448460*/ OPC_CheckChild1Integer, 1, ++/*448462*/ OPC_CheckChild1Type, MVT::i32, ++/*448464*/ OPC_CheckChild2Integer, 1, ++/*448466*/ OPC_CheckChild2Type, MVT::i32, ++/*448468*/ OPC_CheckChild3Integer, 1, ++/*448470*/ OPC_CheckChild3Type, MVT::i32, ++/*448472*/ OPC_CheckChild4Integer, 1, ++/*448474*/ OPC_CheckChild4Type, MVT::i32, ++/*448476*/ OPC_MoveChild5, ++/*448477*/ OPC_CheckInteger, 1, ++/*448479*/ OPC_CheckType, MVT::i32, ++/*448481*/ OPC_MoveParent, ++/*448482*/ OPC_MoveChild6, ++/*448483*/ OPC_CheckInteger, 1, ++/*448485*/ OPC_CheckType, MVT::i32, ++/*448487*/ OPC_MoveParent, ++/*448488*/ OPC_MoveChild7, ++/*448489*/ OPC_CheckInteger, 1, ++/*448491*/ OPC_CheckType, MVT::i32, ++/*448493*/ OPC_MoveParent, ++/*448494*/ OPC_CheckType, MVT::v8i32, ++/*448496*/ OPC_MoveParent, ++/*448497*/ OPC_CheckType, MVT::v8i32, ++/*448499*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*448501*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*448509*/ /*Scope*/ 23|128,1/*151*/, /*->448662*/ ++/*448511*/ OPC_CheckChild0Same, 0, ++/*448513*/ OPC_MoveChild1, ++/*448514*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*448517*/ OPC_CheckChild0Integer, 1, ++/*448519*/ OPC_CheckChild0Type, MVT::i32, ++/*448521*/ OPC_CheckChild1Integer, 1, ++/*448523*/ OPC_CheckChild1Type, MVT::i32, ++/*448525*/ OPC_CheckChild2Integer, 1, ++/*448527*/ OPC_CheckChild2Type, MVT::i32, ++/*448529*/ OPC_CheckChild3Integer, 1, ++/*448531*/ OPC_CheckChild3Type, MVT::i32, ++/*448533*/ OPC_CheckChild4Integer, 1, ++/*448535*/ OPC_CheckChild4Type, MVT::i32, ++/*448537*/ OPC_MoveChild5, ++/*448538*/ OPC_CheckInteger, 1, ++/*448540*/ OPC_CheckType, MVT::i32, ++/*448542*/ OPC_MoveParent, ++/*448543*/ OPC_MoveChild6, ++/*448544*/ OPC_CheckInteger, 1, ++/*448546*/ OPC_CheckType, MVT::i32, ++/*448548*/ OPC_MoveParent, ++/*448549*/ OPC_MoveChild7, ++/*448550*/ OPC_CheckInteger, 1, ++/*448552*/ OPC_CheckType, MVT::i32, ++/*448554*/ OPC_MoveParent, ++/*448555*/ OPC_MoveParent, ++/*448556*/ OPC_MoveParent, ++/*448557*/ OPC_MoveParent, ++/*448558*/ OPC_MoveChild1, ++/*448559*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*448562*/ OPC_CheckChild0Integer, 31, ++/*448564*/ OPC_CheckChild0Type, MVT::i32, ++/*448566*/ OPC_CheckChild1Integer, 31, ++/*448568*/ OPC_CheckChild1Type, MVT::i32, ++/*448570*/ OPC_CheckChild2Integer, 31, ++/*448572*/ OPC_CheckChild2Type, MVT::i32, ++/*448574*/ OPC_CheckChild3Integer, 31, ++/*448576*/ OPC_CheckChild3Type, MVT::i32, ++/*448578*/ OPC_CheckChild4Integer, 31, ++/*448580*/ OPC_CheckChild4Type, MVT::i32, ++/*448582*/ OPC_MoveChild5, ++/*448583*/ OPC_CheckInteger, 31, ++/*448585*/ OPC_CheckType, MVT::i32, ++/*448587*/ OPC_MoveParent, ++/*448588*/ OPC_MoveChild6, ++/*448589*/ OPC_CheckInteger, 31, ++/*448591*/ OPC_CheckType, MVT::i32, ++/*448593*/ OPC_MoveParent, ++/*448594*/ OPC_MoveChild7, ++/*448595*/ OPC_CheckInteger, 31, ++/*448597*/ OPC_CheckType, MVT::i32, ++/*448599*/ OPC_MoveParent, ++/*448600*/ OPC_CheckType, MVT::v8i32, ++/*448602*/ OPC_MoveParent, ++/*448603*/ OPC_MoveParent, ++/*448604*/ OPC_MoveParent, ++/*448605*/ OPC_MoveChild1, ++/*448606*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*448609*/ OPC_CheckChild0Integer, 1, ++/*448611*/ OPC_CheckChild0Type, MVT::i32, ++/*448613*/ OPC_CheckChild1Integer, 1, ++/*448615*/ OPC_CheckChild1Type, MVT::i32, ++/*448617*/ OPC_CheckChild2Integer, 1, ++/*448619*/ OPC_CheckChild2Type, MVT::i32, ++/*448621*/ OPC_CheckChild3Integer, 1, ++/*448623*/ OPC_CheckChild3Type, MVT::i32, ++/*448625*/ OPC_CheckChild4Integer, 1, ++/*448627*/ OPC_CheckChild4Type, MVT::i32, ++/*448629*/ OPC_MoveChild5, ++/*448630*/ OPC_CheckInteger, 1, ++/*448632*/ OPC_CheckType, MVT::i32, ++/*448634*/ OPC_MoveParent, ++/*448635*/ OPC_MoveChild6, ++/*448636*/ OPC_CheckInteger, 1, ++/*448638*/ OPC_CheckType, MVT::i32, ++/*448640*/ OPC_MoveParent, ++/*448641*/ OPC_MoveChild7, ++/*448642*/ OPC_CheckInteger, 1, ++/*448644*/ OPC_CheckType, MVT::i32, ++/*448646*/ OPC_MoveParent, ++/*448647*/ OPC_CheckType, MVT::v8i32, ++/*448649*/ OPC_MoveParent, ++/*448650*/ OPC_CheckType, MVT::v8i32, ++/*448652*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*448654*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*448662*/ 0, /*End of Scope*/ ++/*448663*/ /*Scope*/ 15|128,2/*271*/, /*->448936*/ ++/*448665*/ OPC_MoveChild0, ++/*448666*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*448669*/ OPC_CheckChild0Integer, 1, ++/*448671*/ OPC_CheckChild0Type, MVT::i32, ++/*448673*/ OPC_CheckChild1Integer, 1, ++/*448675*/ OPC_CheckChild1Type, MVT::i32, ++/*448677*/ OPC_CheckChild2Integer, 1, ++/*448679*/ OPC_CheckChild2Type, MVT::i32, ++/*448681*/ OPC_CheckChild3Integer, 1, ++/*448683*/ OPC_CheckChild3Type, MVT::i32, ++/*448685*/ OPC_CheckChild4Integer, 1, ++/*448687*/ OPC_CheckChild4Type, MVT::i32, ++/*448689*/ OPC_MoveChild5, ++/*448690*/ OPC_CheckInteger, 1, ++/*448692*/ OPC_CheckType, MVT::i32, ++/*448694*/ OPC_MoveParent, ++/*448695*/ OPC_MoveChild6, ++/*448696*/ OPC_CheckInteger, 1, ++/*448698*/ OPC_CheckType, MVT::i32, ++/*448700*/ OPC_MoveParent, ++/*448701*/ OPC_MoveChild7, ++/*448702*/ OPC_CheckInteger, 1, ++/*448704*/ OPC_CheckType, MVT::i32, ++/*448706*/ OPC_MoveParent, ++/*448707*/ OPC_MoveParent, ++/*448708*/ OPC_MoveChild1, ++/*448709*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*448712*/ OPC_Scope, 110, /*->448824*/ // 2 children in Scope ++/*448714*/ OPC_CheckChild0Same, 1, ++/*448716*/ OPC_CheckChild1Same, 0, ++/*448718*/ OPC_MoveParent, ++/*448719*/ OPC_MoveParent, ++/*448720*/ OPC_MoveChild1, ++/*448721*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*448724*/ OPC_CheckChild0Integer, 31, ++/*448726*/ OPC_CheckChild0Type, MVT::i32, ++/*448728*/ OPC_CheckChild1Integer, 31, ++/*448730*/ OPC_CheckChild1Type, MVT::i32, ++/*448732*/ OPC_CheckChild2Integer, 31, ++/*448734*/ OPC_CheckChild2Type, MVT::i32, ++/*448736*/ OPC_CheckChild3Integer, 31, ++/*448738*/ OPC_CheckChild3Type, MVT::i32, ++/*448740*/ OPC_CheckChild4Integer, 31, ++/*448742*/ OPC_CheckChild4Type, MVT::i32, ++/*448744*/ OPC_MoveChild5, ++/*448745*/ OPC_CheckInteger, 31, ++/*448747*/ OPC_CheckType, MVT::i32, ++/*448749*/ OPC_MoveParent, ++/*448750*/ OPC_MoveChild6, ++/*448751*/ OPC_CheckInteger, 31, ++/*448753*/ OPC_CheckType, MVT::i32, ++/*448755*/ OPC_MoveParent, ++/*448756*/ OPC_MoveChild7, ++/*448757*/ OPC_CheckInteger, 31, ++/*448759*/ OPC_CheckType, MVT::i32, ++/*448761*/ OPC_MoveParent, ++/*448762*/ OPC_CheckType, MVT::v8i32, ++/*448764*/ OPC_MoveParent, ++/*448765*/ OPC_MoveParent, ++/*448766*/ OPC_MoveParent, ++/*448767*/ OPC_MoveChild1, ++/*448768*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*448771*/ OPC_CheckChild0Integer, 1, ++/*448773*/ OPC_CheckChild0Type, MVT::i32, ++/*448775*/ OPC_CheckChild1Integer, 1, ++/*448777*/ OPC_CheckChild1Type, MVT::i32, ++/*448779*/ OPC_CheckChild2Integer, 1, ++/*448781*/ OPC_CheckChild2Type, MVT::i32, ++/*448783*/ OPC_CheckChild3Integer, 1, ++/*448785*/ OPC_CheckChild3Type, MVT::i32, ++/*448787*/ OPC_CheckChild4Integer, 1, ++/*448789*/ OPC_CheckChild4Type, MVT::i32, ++/*448791*/ OPC_MoveChild5, ++/*448792*/ OPC_CheckInteger, 1, ++/*448794*/ OPC_CheckType, MVT::i32, ++/*448796*/ OPC_MoveParent, ++/*448797*/ OPC_MoveChild6, ++/*448798*/ OPC_CheckInteger, 1, ++/*448800*/ OPC_CheckType, MVT::i32, ++/*448802*/ OPC_MoveParent, ++/*448803*/ OPC_MoveChild7, ++/*448804*/ OPC_CheckInteger, 1, ++/*448806*/ OPC_CheckType, MVT::i32, ++/*448808*/ OPC_MoveParent, ++/*448809*/ OPC_CheckType, MVT::v8i32, ++/*448811*/ OPC_MoveParent, ++/*448812*/ OPC_CheckType, MVT::v8i32, ++/*448814*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*448816*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*448824*/ /*Scope*/ 110, /*->448935*/ ++/*448825*/ OPC_CheckChild0Same, 0, ++/*448827*/ OPC_CheckChild1Same, 1, ++/*448829*/ OPC_MoveParent, ++/*448830*/ OPC_MoveParent, ++/*448831*/ OPC_MoveChild1, ++/*448832*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*448835*/ OPC_CheckChild0Integer, 31, ++/*448837*/ OPC_CheckChild0Type, MVT::i32, ++/*448839*/ OPC_CheckChild1Integer, 31, ++/*448841*/ OPC_CheckChild1Type, MVT::i32, ++/*448843*/ OPC_CheckChild2Integer, 31, ++/*448845*/ OPC_CheckChild2Type, MVT::i32, ++/*448847*/ OPC_CheckChild3Integer, 31, ++/*448849*/ OPC_CheckChild3Type, MVT::i32, ++/*448851*/ OPC_CheckChild4Integer, 31, ++/*448853*/ OPC_CheckChild4Type, MVT::i32, ++/*448855*/ OPC_MoveChild5, ++/*448856*/ OPC_CheckInteger, 31, ++/*448858*/ OPC_CheckType, MVT::i32, ++/*448860*/ OPC_MoveParent, ++/*448861*/ OPC_MoveChild6, ++/*448862*/ OPC_CheckInteger, 31, ++/*448864*/ OPC_CheckType, MVT::i32, ++/*448866*/ OPC_MoveParent, ++/*448867*/ OPC_MoveChild7, ++/*448868*/ OPC_CheckInteger, 31, ++/*448870*/ OPC_CheckType, MVT::i32, ++/*448872*/ OPC_MoveParent, ++/*448873*/ OPC_CheckType, MVT::v8i32, ++/*448875*/ OPC_MoveParent, ++/*448876*/ OPC_MoveParent, ++/*448877*/ OPC_MoveParent, ++/*448878*/ OPC_MoveChild1, ++/*448879*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*448882*/ OPC_CheckChild0Integer, 1, ++/*448884*/ OPC_CheckChild0Type, MVT::i32, ++/*448886*/ OPC_CheckChild1Integer, 1, ++/*448888*/ OPC_CheckChild1Type, MVT::i32, ++/*448890*/ OPC_CheckChild2Integer, 1, ++/*448892*/ OPC_CheckChild2Type, MVT::i32, ++/*448894*/ OPC_CheckChild3Integer, 1, ++/*448896*/ OPC_CheckChild3Type, MVT::i32, ++/*448898*/ OPC_CheckChild4Integer, 1, ++/*448900*/ OPC_CheckChild4Type, MVT::i32, ++/*448902*/ OPC_MoveChild5, ++/*448903*/ OPC_CheckInteger, 1, ++/*448905*/ OPC_CheckType, MVT::i32, ++/*448907*/ OPC_MoveParent, ++/*448908*/ OPC_MoveChild6, ++/*448909*/ OPC_CheckInteger, 1, ++/*448911*/ OPC_CheckType, MVT::i32, ++/*448913*/ OPC_MoveParent, ++/*448914*/ OPC_MoveChild7, ++/*448915*/ OPC_CheckInteger, 1, ++/*448917*/ OPC_CheckType, MVT::i32, ++/*448919*/ OPC_MoveParent, ++/*448920*/ OPC_CheckType, MVT::v8i32, ++/*448922*/ OPC_MoveParent, ++/*448923*/ OPC_CheckType, MVT::v8i32, ++/*448925*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*448927*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*448935*/ 0, /*End of Scope*/ ++/*448936*/ 0, /*End of Scope*/ ++/*448937*/ /*Scope*/ 107|128,14/*1899*/, /*->450838*/ ++/*448939*/ OPC_MoveChild0, ++/*448940*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*448943*/ OPC_CheckChild0Integer, 1, ++/*448945*/ OPC_CheckChild0Type, MVT::i32, ++/*448947*/ OPC_CheckChild1Integer, 1, ++/*448949*/ OPC_CheckChild1Type, MVT::i32, ++/*448951*/ OPC_CheckChild2Integer, 1, ++/*448953*/ OPC_CheckChild2Type, MVT::i32, ++/*448955*/ OPC_CheckChild3Integer, 1, ++/*448957*/ OPC_CheckChild3Type, MVT::i32, ++/*448959*/ OPC_CheckChild4Integer, 1, ++/*448961*/ OPC_CheckChild4Type, MVT::i32, ++/*448963*/ OPC_MoveChild5, ++/*448964*/ OPC_CheckInteger, 1, ++/*448966*/ OPC_CheckType, MVT::i32, ++/*448968*/ OPC_MoveParent, ++/*448969*/ OPC_MoveChild6, ++/*448970*/ OPC_CheckInteger, 1, ++/*448972*/ OPC_CheckType, MVT::i32, ++/*448974*/ OPC_MoveParent, ++/*448975*/ OPC_MoveChild7, ++/*448976*/ OPC_CheckInteger, 1, ++/*448978*/ OPC_CheckType, MVT::i32, ++/*448980*/ OPC_MoveParent, ++/*448981*/ OPC_MoveParent, ++/*448982*/ OPC_RecordChild1, // #1 = $b ++/*448983*/ OPC_MoveParent, ++/*448984*/ OPC_MoveParent, ++/*448985*/ OPC_MoveChild1, ++/*448986*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*448989*/ OPC_MoveChild0, ++/*448990*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*448993*/ OPC_Scope, 40|128,7/*936*/, /*->449932*/ // 4 children in Scope ++/*448996*/ OPC_MoveChild0, ++/*448997*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*449000*/ OPC_Scope, 25|128,1/*153*/, /*->449156*/ // 6 children in Scope ++/*449003*/ OPC_MoveChild0, ++/*449004*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*449007*/ OPC_CheckChild0Integer, 1, ++/*449009*/ OPC_CheckChild0Type, MVT::i32, ++/*449011*/ OPC_CheckChild1Integer, 1, ++/*449013*/ OPC_CheckChild1Type, MVT::i32, ++/*449015*/ OPC_CheckChild2Integer, 1, ++/*449017*/ OPC_CheckChild2Type, MVT::i32, ++/*449019*/ OPC_CheckChild3Integer, 1, ++/*449021*/ OPC_CheckChild3Type, MVT::i32, ++/*449023*/ OPC_CheckChild4Integer, 1, ++/*449025*/ OPC_CheckChild4Type, MVT::i32, ++/*449027*/ OPC_MoveChild5, ++/*449028*/ OPC_CheckInteger, 1, ++/*449030*/ OPC_CheckType, MVT::i32, ++/*449032*/ OPC_MoveParent, ++/*449033*/ OPC_MoveChild6, ++/*449034*/ OPC_CheckInteger, 1, ++/*449036*/ OPC_CheckType, MVT::i32, ++/*449038*/ OPC_MoveParent, ++/*449039*/ OPC_MoveChild7, ++/*449040*/ OPC_CheckInteger, 1, ++/*449042*/ OPC_CheckType, MVT::i32, ++/*449044*/ OPC_MoveParent, ++/*449045*/ OPC_MoveParent, ++/*449046*/ OPC_CheckChild1Same, 0, ++/*449048*/ OPC_MoveParent, ++/*449049*/ OPC_CheckChild1Same, 1, ++/*449051*/ OPC_MoveParent, ++/*449052*/ OPC_MoveChild1, ++/*449053*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*449056*/ OPC_CheckChild0Integer, 31, ++/*449058*/ OPC_CheckChild0Type, MVT::i32, ++/*449060*/ OPC_CheckChild1Integer, 31, ++/*449062*/ OPC_CheckChild1Type, MVT::i32, ++/*449064*/ OPC_CheckChild2Integer, 31, ++/*449066*/ OPC_CheckChild2Type, MVT::i32, ++/*449068*/ OPC_CheckChild3Integer, 31, ++/*449070*/ OPC_CheckChild3Type, MVT::i32, ++/*449072*/ OPC_CheckChild4Integer, 31, ++/*449074*/ OPC_CheckChild4Type, MVT::i32, ++/*449076*/ OPC_MoveChild5, ++/*449077*/ OPC_CheckInteger, 31, ++/*449079*/ OPC_CheckType, MVT::i32, ++/*449081*/ OPC_MoveParent, ++/*449082*/ OPC_MoveChild6, ++/*449083*/ OPC_CheckInteger, 31, ++/*449085*/ OPC_CheckType, MVT::i32, ++/*449087*/ OPC_MoveParent, ++/*449088*/ OPC_MoveChild7, ++/*449089*/ OPC_CheckInteger, 31, ++/*449091*/ OPC_CheckType, MVT::i32, ++/*449093*/ OPC_MoveParent, ++/*449094*/ OPC_CheckType, MVT::v8i32, ++/*449096*/ OPC_MoveParent, ++/*449097*/ OPC_MoveParent, ++/*449098*/ OPC_MoveParent, ++/*449099*/ OPC_MoveChild1, ++/*449100*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*449103*/ OPC_CheckChild0Integer, 1, ++/*449105*/ OPC_CheckChild0Type, MVT::i32, ++/*449107*/ OPC_CheckChild1Integer, 1, ++/*449109*/ OPC_CheckChild1Type, MVT::i32, ++/*449111*/ OPC_CheckChild2Integer, 1, ++/*449113*/ OPC_CheckChild2Type, MVT::i32, ++/*449115*/ OPC_CheckChild3Integer, 1, ++/*449117*/ OPC_CheckChild3Type, MVT::i32, ++/*449119*/ OPC_CheckChild4Integer, 1, ++/*449121*/ OPC_CheckChild4Type, MVT::i32, ++/*449123*/ OPC_MoveChild5, ++/*449124*/ OPC_CheckInteger, 1, ++/*449126*/ OPC_CheckType, MVT::i32, ++/*449128*/ OPC_MoveParent, ++/*449129*/ OPC_MoveChild6, ++/*449130*/ OPC_CheckInteger, 1, ++/*449132*/ OPC_CheckType, MVT::i32, ++/*449134*/ OPC_MoveParent, ++/*449135*/ OPC_MoveChild7, ++/*449136*/ OPC_CheckInteger, 1, ++/*449138*/ OPC_CheckType, MVT::i32, ++/*449140*/ OPC_MoveParent, ++/*449141*/ OPC_CheckType, MVT::v8i32, ++/*449143*/ OPC_MoveParent, ++/*449144*/ OPC_CheckType, MVT::v8i32, ++/*449146*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*449148*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b)), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a), LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*449156*/ /*Scope*/ 25|128,1/*153*/, /*->449311*/ ++/*449158*/ OPC_CheckChild0Same, 0, ++/*449160*/ OPC_MoveChild1, ++/*449161*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*449164*/ OPC_CheckChild0Integer, 1, ++/*449166*/ OPC_CheckChild0Type, MVT::i32, ++/*449168*/ OPC_CheckChild1Integer, 1, ++/*449170*/ OPC_CheckChild1Type, MVT::i32, ++/*449172*/ OPC_CheckChild2Integer, 1, ++/*449174*/ OPC_CheckChild2Type, MVT::i32, ++/*449176*/ OPC_CheckChild3Integer, 1, ++/*449178*/ OPC_CheckChild3Type, MVT::i32, ++/*449180*/ OPC_CheckChild4Integer, 1, ++/*449182*/ OPC_CheckChild4Type, MVT::i32, ++/*449184*/ OPC_MoveChild5, ++/*449185*/ OPC_CheckInteger, 1, ++/*449187*/ OPC_CheckType, MVT::i32, ++/*449189*/ OPC_MoveParent, ++/*449190*/ OPC_MoveChild6, ++/*449191*/ OPC_CheckInteger, 1, ++/*449193*/ OPC_CheckType, MVT::i32, ++/*449195*/ OPC_MoveParent, ++/*449196*/ OPC_MoveChild7, ++/*449197*/ OPC_CheckInteger, 1, ++/*449199*/ OPC_CheckType, MVT::i32, ++/*449201*/ OPC_MoveParent, ++/*449202*/ OPC_MoveParent, ++/*449203*/ OPC_MoveParent, ++/*449204*/ OPC_CheckChild1Same, 1, ++/*449206*/ OPC_MoveParent, ++/*449207*/ OPC_MoveChild1, ++/*449208*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*449211*/ OPC_CheckChild0Integer, 31, ++/*449213*/ OPC_CheckChild0Type, MVT::i32, ++/*449215*/ OPC_CheckChild1Integer, 31, ++/*449217*/ OPC_CheckChild1Type, MVT::i32, ++/*449219*/ OPC_CheckChild2Integer, 31, ++/*449221*/ OPC_CheckChild2Type, MVT::i32, ++/*449223*/ OPC_CheckChild3Integer, 31, ++/*449225*/ OPC_CheckChild3Type, MVT::i32, ++/*449227*/ OPC_CheckChild4Integer, 31, ++/*449229*/ OPC_CheckChild4Type, MVT::i32, ++/*449231*/ OPC_MoveChild5, ++/*449232*/ OPC_CheckInteger, 31, ++/*449234*/ OPC_CheckType, MVT::i32, ++/*449236*/ OPC_MoveParent, ++/*449237*/ OPC_MoveChild6, ++/*449238*/ OPC_CheckInteger, 31, ++/*449240*/ OPC_CheckType, MVT::i32, ++/*449242*/ OPC_MoveParent, ++/*449243*/ OPC_MoveChild7, ++/*449244*/ OPC_CheckInteger, 31, ++/*449246*/ OPC_CheckType, MVT::i32, ++/*449248*/ OPC_MoveParent, ++/*449249*/ OPC_CheckType, MVT::v8i32, ++/*449251*/ OPC_MoveParent, ++/*449252*/ OPC_MoveParent, ++/*449253*/ OPC_MoveParent, ++/*449254*/ OPC_MoveChild1, ++/*449255*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*449258*/ OPC_CheckChild0Integer, 1, ++/*449260*/ OPC_CheckChild0Type, MVT::i32, ++/*449262*/ OPC_CheckChild1Integer, 1, ++/*449264*/ OPC_CheckChild1Type, MVT::i32, ++/*449266*/ OPC_CheckChild2Integer, 1, ++/*449268*/ OPC_CheckChild2Type, MVT::i32, ++/*449270*/ OPC_CheckChild3Integer, 1, ++/*449272*/ OPC_CheckChild3Type, MVT::i32, ++/*449274*/ OPC_CheckChild4Integer, 1, ++/*449276*/ OPC_CheckChild4Type, MVT::i32, ++/*449278*/ OPC_MoveChild5, ++/*449279*/ OPC_CheckInteger, 1, ++/*449281*/ OPC_CheckType, MVT::i32, ++/*449283*/ OPC_MoveParent, ++/*449284*/ OPC_MoveChild6, ++/*449285*/ OPC_CheckInteger, 1, ++/*449287*/ OPC_CheckType, MVT::i32, ++/*449289*/ OPC_MoveParent, ++/*449290*/ OPC_MoveChild7, ++/*449291*/ OPC_CheckInteger, 1, ++/*449293*/ OPC_CheckType, MVT::i32, ++/*449295*/ OPC_MoveParent, ++/*449296*/ OPC_CheckType, MVT::v8i32, ++/*449298*/ OPC_MoveParent, ++/*449299*/ OPC_CheckType, MVT::v8i32, ++/*449301*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*449303*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b)), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*449311*/ /*Scope*/ 25|128,1/*153*/, /*->449466*/ ++/*449313*/ OPC_MoveChild0, ++/*449314*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*449317*/ OPC_CheckChild0Integer, 1, ++/*449319*/ OPC_CheckChild0Type, MVT::i32, ++/*449321*/ OPC_CheckChild1Integer, 1, ++/*449323*/ OPC_CheckChild1Type, MVT::i32, ++/*449325*/ OPC_CheckChild2Integer, 1, ++/*449327*/ OPC_CheckChild2Type, MVT::i32, ++/*449329*/ OPC_CheckChild3Integer, 1, ++/*449331*/ OPC_CheckChild3Type, MVT::i32, ++/*449333*/ OPC_CheckChild4Integer, 1, ++/*449335*/ OPC_CheckChild4Type, MVT::i32, ++/*449337*/ OPC_MoveChild5, ++/*449338*/ OPC_CheckInteger, 1, ++/*449340*/ OPC_CheckType, MVT::i32, ++/*449342*/ OPC_MoveParent, ++/*449343*/ OPC_MoveChild6, ++/*449344*/ OPC_CheckInteger, 1, ++/*449346*/ OPC_CheckType, MVT::i32, ++/*449348*/ OPC_MoveParent, ++/*449349*/ OPC_MoveChild7, ++/*449350*/ OPC_CheckInteger, 1, ++/*449352*/ OPC_CheckType, MVT::i32, ++/*449354*/ OPC_MoveParent, ++/*449355*/ OPC_MoveParent, ++/*449356*/ OPC_CheckChild1Same, 1, ++/*449358*/ OPC_MoveParent, ++/*449359*/ OPC_CheckChild1Same, 0, ++/*449361*/ OPC_MoveParent, ++/*449362*/ OPC_MoveChild1, ++/*449363*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*449366*/ OPC_CheckChild0Integer, 31, ++/*449368*/ OPC_CheckChild0Type, MVT::i32, ++/*449370*/ OPC_CheckChild1Integer, 31, ++/*449372*/ OPC_CheckChild1Type, MVT::i32, ++/*449374*/ OPC_CheckChild2Integer, 31, ++/*449376*/ OPC_CheckChild2Type, MVT::i32, ++/*449378*/ OPC_CheckChild3Integer, 31, ++/*449380*/ OPC_CheckChild3Type, MVT::i32, ++/*449382*/ OPC_CheckChild4Integer, 31, ++/*449384*/ OPC_CheckChild4Type, MVT::i32, ++/*449386*/ OPC_MoveChild5, ++/*449387*/ OPC_CheckInteger, 31, ++/*449389*/ OPC_CheckType, MVT::i32, ++/*449391*/ OPC_MoveParent, ++/*449392*/ OPC_MoveChild6, ++/*449393*/ OPC_CheckInteger, 31, ++/*449395*/ OPC_CheckType, MVT::i32, ++/*449397*/ OPC_MoveParent, ++/*449398*/ OPC_MoveChild7, ++/*449399*/ OPC_CheckInteger, 31, ++/*449401*/ OPC_CheckType, MVT::i32, ++/*449403*/ OPC_MoveParent, ++/*449404*/ OPC_CheckType, MVT::v8i32, ++/*449406*/ OPC_MoveParent, ++/*449407*/ OPC_MoveParent, ++/*449408*/ OPC_MoveParent, ++/*449409*/ OPC_MoveChild1, ++/*449410*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*449413*/ OPC_CheckChild0Integer, 1, ++/*449415*/ OPC_CheckChild0Type, MVT::i32, ++/*449417*/ OPC_CheckChild1Integer, 1, ++/*449419*/ OPC_CheckChild1Type, MVT::i32, ++/*449421*/ OPC_CheckChild2Integer, 1, ++/*449423*/ OPC_CheckChild2Type, MVT::i32, ++/*449425*/ OPC_CheckChild3Integer, 1, ++/*449427*/ OPC_CheckChild3Type, MVT::i32, ++/*449429*/ OPC_CheckChild4Integer, 1, ++/*449431*/ OPC_CheckChild4Type, MVT::i32, ++/*449433*/ OPC_MoveChild5, ++/*449434*/ OPC_CheckInteger, 1, ++/*449436*/ OPC_CheckType, MVT::i32, ++/*449438*/ OPC_MoveParent, ++/*449439*/ OPC_MoveChild6, ++/*449440*/ OPC_CheckInteger, 1, ++/*449442*/ OPC_CheckType, MVT::i32, ++/*449444*/ OPC_MoveParent, ++/*449445*/ OPC_MoveChild7, ++/*449446*/ OPC_CheckInteger, 1, ++/*449448*/ OPC_CheckType, MVT::i32, ++/*449450*/ OPC_MoveParent, ++/*449451*/ OPC_CheckType, MVT::v8i32, ++/*449453*/ OPC_MoveParent, ++/*449454*/ OPC_CheckType, MVT::v8i32, ++/*449456*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*449458*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b)), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b), LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*449466*/ /*Scope*/ 25|128,1/*153*/, /*->449621*/ ++/*449468*/ OPC_CheckChild0Same, 1, ++/*449470*/ OPC_MoveChild1, ++/*449471*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*449474*/ OPC_CheckChild0Integer, 1, ++/*449476*/ OPC_CheckChild0Type, MVT::i32, ++/*449478*/ OPC_CheckChild1Integer, 1, ++/*449480*/ OPC_CheckChild1Type, MVT::i32, ++/*449482*/ OPC_CheckChild2Integer, 1, ++/*449484*/ OPC_CheckChild2Type, MVT::i32, ++/*449486*/ OPC_CheckChild3Integer, 1, ++/*449488*/ OPC_CheckChild3Type, MVT::i32, ++/*449490*/ OPC_CheckChild4Integer, 1, ++/*449492*/ OPC_CheckChild4Type, MVT::i32, ++/*449494*/ OPC_MoveChild5, ++/*449495*/ OPC_CheckInteger, 1, ++/*449497*/ OPC_CheckType, MVT::i32, ++/*449499*/ OPC_MoveParent, ++/*449500*/ OPC_MoveChild6, ++/*449501*/ OPC_CheckInteger, 1, ++/*449503*/ OPC_CheckType, MVT::i32, ++/*449505*/ OPC_MoveParent, ++/*449506*/ OPC_MoveChild7, ++/*449507*/ OPC_CheckInteger, 1, ++/*449509*/ OPC_CheckType, MVT::i32, ++/*449511*/ OPC_MoveParent, ++/*449512*/ OPC_MoveParent, ++/*449513*/ OPC_MoveParent, ++/*449514*/ OPC_CheckChild1Same, 0, ++/*449516*/ OPC_MoveParent, ++/*449517*/ OPC_MoveChild1, ++/*449518*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*449521*/ OPC_CheckChild0Integer, 31, ++/*449523*/ OPC_CheckChild0Type, MVT::i32, ++/*449525*/ OPC_CheckChild1Integer, 31, ++/*449527*/ OPC_CheckChild1Type, MVT::i32, ++/*449529*/ OPC_CheckChild2Integer, 31, ++/*449531*/ OPC_CheckChild2Type, MVT::i32, ++/*449533*/ OPC_CheckChild3Integer, 31, ++/*449535*/ OPC_CheckChild3Type, MVT::i32, ++/*449537*/ OPC_CheckChild4Integer, 31, ++/*449539*/ OPC_CheckChild4Type, MVT::i32, ++/*449541*/ OPC_MoveChild5, ++/*449542*/ OPC_CheckInteger, 31, ++/*449544*/ OPC_CheckType, MVT::i32, ++/*449546*/ OPC_MoveParent, ++/*449547*/ OPC_MoveChild6, ++/*449548*/ OPC_CheckInteger, 31, ++/*449550*/ OPC_CheckType, MVT::i32, ++/*449552*/ OPC_MoveParent, ++/*449553*/ OPC_MoveChild7, ++/*449554*/ OPC_CheckInteger, 31, ++/*449556*/ OPC_CheckType, MVT::i32, ++/*449558*/ OPC_MoveParent, ++/*449559*/ OPC_CheckType, MVT::v8i32, ++/*449561*/ OPC_MoveParent, ++/*449562*/ OPC_MoveParent, ++/*449563*/ OPC_MoveParent, ++/*449564*/ OPC_MoveChild1, ++/*449565*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*449568*/ OPC_CheckChild0Integer, 1, ++/*449570*/ OPC_CheckChild0Type, MVT::i32, ++/*449572*/ OPC_CheckChild1Integer, 1, ++/*449574*/ OPC_CheckChild1Type, MVT::i32, ++/*449576*/ OPC_CheckChild2Integer, 1, ++/*449578*/ OPC_CheckChild2Type, MVT::i32, ++/*449580*/ OPC_CheckChild3Integer, 1, ++/*449582*/ OPC_CheckChild3Type, MVT::i32, ++/*449584*/ OPC_CheckChild4Integer, 1, ++/*449586*/ OPC_CheckChild4Type, MVT::i32, ++/*449588*/ OPC_MoveChild5, ++/*449589*/ OPC_CheckInteger, 1, ++/*449591*/ OPC_CheckType, MVT::i32, ++/*449593*/ OPC_MoveParent, ++/*449594*/ OPC_MoveChild6, ++/*449595*/ OPC_CheckInteger, 1, ++/*449597*/ OPC_CheckType, MVT::i32, ++/*449599*/ OPC_MoveParent, ++/*449600*/ OPC_MoveChild7, ++/*449601*/ OPC_CheckInteger, 1, ++/*449603*/ OPC_CheckType, MVT::i32, ++/*449605*/ OPC_MoveParent, ++/*449606*/ OPC_CheckType, MVT::v8i32, ++/*449608*/ OPC_MoveParent, ++/*449609*/ OPC_CheckType, MVT::v8i32, ++/*449611*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*449613*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b)), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*449621*/ /*Scope*/ 25|128,1/*153*/, /*->449776*/ ++/*449623*/ OPC_CheckChild0Same, 0, ++/*449625*/ OPC_CheckChild1Same, 1, ++/*449627*/ OPC_MoveParent, ++/*449628*/ OPC_MoveChild1, ++/*449629*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*449632*/ OPC_CheckChild0Integer, 1, ++/*449634*/ OPC_CheckChild0Type, MVT::i32, ++/*449636*/ OPC_CheckChild1Integer, 1, ++/*449638*/ OPC_CheckChild1Type, MVT::i32, ++/*449640*/ OPC_CheckChild2Integer, 1, ++/*449642*/ OPC_CheckChild2Type, MVT::i32, ++/*449644*/ OPC_CheckChild3Integer, 1, ++/*449646*/ OPC_CheckChild3Type, MVT::i32, ++/*449648*/ OPC_CheckChild4Integer, 1, ++/*449650*/ OPC_CheckChild4Type, MVT::i32, ++/*449652*/ OPC_MoveChild5, ++/*449653*/ OPC_CheckInteger, 1, ++/*449655*/ OPC_CheckType, MVT::i32, ++/*449657*/ OPC_MoveParent, ++/*449658*/ OPC_MoveChild6, ++/*449659*/ OPC_CheckInteger, 1, ++/*449661*/ OPC_CheckType, MVT::i32, ++/*449663*/ OPC_MoveParent, ++/*449664*/ OPC_MoveChild7, ++/*449665*/ OPC_CheckInteger, 1, ++/*449667*/ OPC_CheckType, MVT::i32, ++/*449669*/ OPC_MoveParent, ++/*449670*/ OPC_MoveParent, ++/*449671*/ OPC_MoveParent, ++/*449672*/ OPC_MoveChild1, ++/*449673*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*449676*/ OPC_CheckChild0Integer, 31, ++/*449678*/ OPC_CheckChild0Type, MVT::i32, ++/*449680*/ OPC_CheckChild1Integer, 31, ++/*449682*/ OPC_CheckChild1Type, MVT::i32, ++/*449684*/ OPC_CheckChild2Integer, 31, ++/*449686*/ OPC_CheckChild2Type, MVT::i32, ++/*449688*/ OPC_CheckChild3Integer, 31, ++/*449690*/ OPC_CheckChild3Type, MVT::i32, ++/*449692*/ OPC_CheckChild4Integer, 31, ++/*449694*/ OPC_CheckChild4Type, MVT::i32, ++/*449696*/ OPC_MoveChild5, ++/*449697*/ OPC_CheckInteger, 31, ++/*449699*/ OPC_CheckType, MVT::i32, ++/*449701*/ OPC_MoveParent, ++/*449702*/ OPC_MoveChild6, ++/*449703*/ OPC_CheckInteger, 31, ++/*449705*/ OPC_CheckType, MVT::i32, ++/*449707*/ OPC_MoveParent, ++/*449708*/ OPC_MoveChild7, ++/*449709*/ OPC_CheckInteger, 31, ++/*449711*/ OPC_CheckType, MVT::i32, ++/*449713*/ OPC_MoveParent, ++/*449714*/ OPC_CheckType, MVT::v8i32, ++/*449716*/ OPC_MoveParent, ++/*449717*/ OPC_MoveParent, ++/*449718*/ OPC_MoveParent, ++/*449719*/ OPC_MoveChild1, ++/*449720*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*449723*/ OPC_CheckChild0Integer, 1, ++/*449725*/ OPC_CheckChild0Type, MVT::i32, ++/*449727*/ OPC_CheckChild1Integer, 1, ++/*449729*/ OPC_CheckChild1Type, MVT::i32, ++/*449731*/ OPC_CheckChild2Integer, 1, ++/*449733*/ OPC_CheckChild2Type, MVT::i32, ++/*449735*/ OPC_CheckChild3Integer, 1, ++/*449737*/ OPC_CheckChild3Type, MVT::i32, ++/*449739*/ OPC_CheckChild4Integer, 1, ++/*449741*/ OPC_CheckChild4Type, MVT::i32, ++/*449743*/ OPC_MoveChild5, ++/*449744*/ OPC_CheckInteger, 1, ++/*449746*/ OPC_CheckType, MVT::i32, ++/*449748*/ OPC_MoveParent, ++/*449749*/ OPC_MoveChild6, ++/*449750*/ OPC_CheckInteger, 1, ++/*449752*/ OPC_CheckType, MVT::i32, ++/*449754*/ OPC_MoveParent, ++/*449755*/ OPC_MoveChild7, ++/*449756*/ OPC_CheckInteger, 1, ++/*449758*/ OPC_CheckType, MVT::i32, ++/*449760*/ OPC_MoveParent, ++/*449761*/ OPC_CheckType, MVT::v8i32, ++/*449763*/ OPC_MoveParent, ++/*449764*/ OPC_CheckType, MVT::v8i32, ++/*449766*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*449768*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b)), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*449776*/ /*Scope*/ 25|128,1/*153*/, /*->449931*/ ++/*449778*/ OPC_CheckChild0Same, 1, ++/*449780*/ OPC_CheckChild1Same, 0, ++/*449782*/ OPC_MoveParent, ++/*449783*/ OPC_MoveChild1, ++/*449784*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*449787*/ OPC_CheckChild0Integer, 1, ++/*449789*/ OPC_CheckChild0Type, MVT::i32, ++/*449791*/ OPC_CheckChild1Integer, 1, ++/*449793*/ OPC_CheckChild1Type, MVT::i32, ++/*449795*/ OPC_CheckChild2Integer, 1, ++/*449797*/ OPC_CheckChild2Type, MVT::i32, ++/*449799*/ OPC_CheckChild3Integer, 1, ++/*449801*/ OPC_CheckChild3Type, MVT::i32, ++/*449803*/ OPC_CheckChild4Integer, 1, ++/*449805*/ OPC_CheckChild4Type, MVT::i32, ++/*449807*/ OPC_MoveChild5, ++/*449808*/ OPC_CheckInteger, 1, ++/*449810*/ OPC_CheckType, MVT::i32, ++/*449812*/ OPC_MoveParent, ++/*449813*/ OPC_MoveChild6, ++/*449814*/ OPC_CheckInteger, 1, ++/*449816*/ OPC_CheckType, MVT::i32, ++/*449818*/ OPC_MoveParent, ++/*449819*/ OPC_MoveChild7, ++/*449820*/ OPC_CheckInteger, 1, ++/*449822*/ OPC_CheckType, MVT::i32, ++/*449824*/ OPC_MoveParent, ++/*449825*/ OPC_MoveParent, ++/*449826*/ OPC_MoveParent, ++/*449827*/ OPC_MoveChild1, ++/*449828*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*449831*/ OPC_CheckChild0Integer, 31, ++/*449833*/ OPC_CheckChild0Type, MVT::i32, ++/*449835*/ OPC_CheckChild1Integer, 31, ++/*449837*/ OPC_CheckChild1Type, MVT::i32, ++/*449839*/ OPC_CheckChild2Integer, 31, ++/*449841*/ OPC_CheckChild2Type, MVT::i32, ++/*449843*/ OPC_CheckChild3Integer, 31, ++/*449845*/ OPC_CheckChild3Type, MVT::i32, ++/*449847*/ OPC_CheckChild4Integer, 31, ++/*449849*/ OPC_CheckChild4Type, MVT::i32, ++/*449851*/ OPC_MoveChild5, ++/*449852*/ OPC_CheckInteger, 31, ++/*449854*/ OPC_CheckType, MVT::i32, ++/*449856*/ OPC_MoveParent, ++/*449857*/ OPC_MoveChild6, ++/*449858*/ OPC_CheckInteger, 31, ++/*449860*/ OPC_CheckType, MVT::i32, ++/*449862*/ OPC_MoveParent, ++/*449863*/ OPC_MoveChild7, ++/*449864*/ OPC_CheckInteger, 31, ++/*449866*/ OPC_CheckType, MVT::i32, ++/*449868*/ OPC_MoveParent, ++/*449869*/ OPC_CheckType, MVT::v8i32, ++/*449871*/ OPC_MoveParent, ++/*449872*/ OPC_MoveParent, ++/*449873*/ OPC_MoveParent, ++/*449874*/ OPC_MoveChild1, ++/*449875*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*449878*/ OPC_CheckChild0Integer, 1, ++/*449880*/ OPC_CheckChild0Type, MVT::i32, ++/*449882*/ OPC_CheckChild1Integer, 1, ++/*449884*/ OPC_CheckChild1Type, MVT::i32, ++/*449886*/ OPC_CheckChild2Integer, 1, ++/*449888*/ OPC_CheckChild2Type, MVT::i32, ++/*449890*/ OPC_CheckChild3Integer, 1, ++/*449892*/ OPC_CheckChild3Type, MVT::i32, ++/*449894*/ OPC_CheckChild4Integer, 1, ++/*449896*/ OPC_CheckChild4Type, MVT::i32, ++/*449898*/ OPC_MoveChild5, ++/*449899*/ OPC_CheckInteger, 1, ++/*449901*/ OPC_CheckType, MVT::i32, ++/*449903*/ OPC_MoveParent, ++/*449904*/ OPC_MoveChild6, ++/*449905*/ OPC_CheckInteger, 1, ++/*449907*/ OPC_CheckType, MVT::i32, ++/*449909*/ OPC_MoveParent, ++/*449910*/ OPC_MoveChild7, ++/*449911*/ OPC_CheckInteger, 1, ++/*449913*/ OPC_CheckType, MVT::i32, ++/*449915*/ OPC_MoveParent, ++/*449916*/ OPC_CheckType, MVT::v8i32, ++/*449918*/ OPC_MoveParent, ++/*449919*/ OPC_CheckType, MVT::v8i32, ++/*449921*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*449923*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b)), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*449931*/ 0, /*End of Scope*/ ++/*449932*/ /*Scope*/ 58|128,2/*314*/, /*->450248*/ ++/*449934*/ OPC_CheckChild0Same, 1, ++/*449936*/ OPC_MoveChild1, ++/*449937*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*449940*/ OPC_Scope, 23|128,1/*151*/, /*->450094*/ // 2 children in Scope ++/*449943*/ OPC_MoveChild0, ++/*449944*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*449947*/ OPC_CheckChild0Integer, 1, ++/*449949*/ OPC_CheckChild0Type, MVT::i32, ++/*449951*/ OPC_CheckChild1Integer, 1, ++/*449953*/ OPC_CheckChild1Type, MVT::i32, ++/*449955*/ OPC_CheckChild2Integer, 1, ++/*449957*/ OPC_CheckChild2Type, MVT::i32, ++/*449959*/ OPC_CheckChild3Integer, 1, ++/*449961*/ OPC_CheckChild3Type, MVT::i32, ++/*449963*/ OPC_CheckChild4Integer, 1, ++/*449965*/ OPC_CheckChild4Type, MVT::i32, ++/*449967*/ OPC_MoveChild5, ++/*449968*/ OPC_CheckInteger, 1, ++/*449970*/ OPC_CheckType, MVT::i32, ++/*449972*/ OPC_MoveParent, ++/*449973*/ OPC_MoveChild6, ++/*449974*/ OPC_CheckInteger, 1, ++/*449976*/ OPC_CheckType, MVT::i32, ++/*449978*/ OPC_MoveParent, ++/*449979*/ OPC_MoveChild7, ++/*449980*/ OPC_CheckInteger, 1, ++/*449982*/ OPC_CheckType, MVT::i32, ++/*449984*/ OPC_MoveParent, ++/*449985*/ OPC_MoveParent, ++/*449986*/ OPC_CheckChild1Same, 0, ++/*449988*/ OPC_MoveParent, ++/*449989*/ OPC_MoveParent, ++/*449990*/ OPC_MoveChild1, ++/*449991*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*449994*/ OPC_CheckChild0Integer, 31, ++/*449996*/ OPC_CheckChild0Type, MVT::i32, ++/*449998*/ OPC_CheckChild1Integer, 31, ++/*450000*/ OPC_CheckChild1Type, MVT::i32, ++/*450002*/ OPC_CheckChild2Integer, 31, ++/*450004*/ OPC_CheckChild2Type, MVT::i32, ++/*450006*/ OPC_CheckChild3Integer, 31, ++/*450008*/ OPC_CheckChild3Type, MVT::i32, ++/*450010*/ OPC_CheckChild4Integer, 31, ++/*450012*/ OPC_CheckChild4Type, MVT::i32, ++/*450014*/ OPC_MoveChild5, ++/*450015*/ OPC_CheckInteger, 31, ++/*450017*/ OPC_CheckType, MVT::i32, ++/*450019*/ OPC_MoveParent, ++/*450020*/ OPC_MoveChild6, ++/*450021*/ OPC_CheckInteger, 31, ++/*450023*/ OPC_CheckType, MVT::i32, ++/*450025*/ OPC_MoveParent, ++/*450026*/ OPC_MoveChild7, ++/*450027*/ OPC_CheckInteger, 31, ++/*450029*/ OPC_CheckType, MVT::i32, ++/*450031*/ OPC_MoveParent, ++/*450032*/ OPC_CheckType, MVT::v8i32, ++/*450034*/ OPC_MoveParent, ++/*450035*/ OPC_MoveParent, ++/*450036*/ OPC_MoveParent, ++/*450037*/ OPC_MoveChild1, ++/*450038*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*450041*/ OPC_CheckChild0Integer, 1, ++/*450043*/ OPC_CheckChild0Type, MVT::i32, ++/*450045*/ OPC_CheckChild1Integer, 1, ++/*450047*/ OPC_CheckChild1Type, MVT::i32, ++/*450049*/ OPC_CheckChild2Integer, 1, ++/*450051*/ OPC_CheckChild2Type, MVT::i32, ++/*450053*/ OPC_CheckChild3Integer, 1, ++/*450055*/ OPC_CheckChild3Type, MVT::i32, ++/*450057*/ OPC_CheckChild4Integer, 1, ++/*450059*/ OPC_CheckChild4Type, MVT::i32, ++/*450061*/ OPC_MoveChild5, ++/*450062*/ OPC_CheckInteger, 1, ++/*450064*/ OPC_CheckType, MVT::i32, ++/*450066*/ OPC_MoveParent, ++/*450067*/ OPC_MoveChild6, ++/*450068*/ OPC_CheckInteger, 1, ++/*450070*/ OPC_CheckType, MVT::i32, ++/*450072*/ OPC_MoveParent, ++/*450073*/ OPC_MoveChild7, ++/*450074*/ OPC_CheckInteger, 1, ++/*450076*/ OPC_CheckType, MVT::i32, ++/*450078*/ OPC_MoveParent, ++/*450079*/ OPC_CheckType, MVT::v8i32, ++/*450081*/ OPC_MoveParent, ++/*450082*/ OPC_CheckType, MVT::v8i32, ++/*450084*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*450086*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b)), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*450094*/ /*Scope*/ 23|128,1/*151*/, /*->450247*/ ++/*450096*/ OPC_CheckChild0Same, 0, ++/*450098*/ OPC_MoveChild1, ++/*450099*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*450102*/ OPC_CheckChild0Integer, 1, ++/*450104*/ OPC_CheckChild0Type, MVT::i32, ++/*450106*/ OPC_CheckChild1Integer, 1, ++/*450108*/ OPC_CheckChild1Type, MVT::i32, ++/*450110*/ OPC_CheckChild2Integer, 1, ++/*450112*/ OPC_CheckChild2Type, MVT::i32, ++/*450114*/ OPC_CheckChild3Integer, 1, ++/*450116*/ OPC_CheckChild3Type, MVT::i32, ++/*450118*/ OPC_CheckChild4Integer, 1, ++/*450120*/ OPC_CheckChild4Type, MVT::i32, ++/*450122*/ OPC_MoveChild5, ++/*450123*/ OPC_CheckInteger, 1, ++/*450125*/ OPC_CheckType, MVT::i32, ++/*450127*/ OPC_MoveParent, ++/*450128*/ OPC_MoveChild6, ++/*450129*/ OPC_CheckInteger, 1, ++/*450131*/ OPC_CheckType, MVT::i32, ++/*450133*/ OPC_MoveParent, ++/*450134*/ OPC_MoveChild7, ++/*450135*/ OPC_CheckInteger, 1, ++/*450137*/ OPC_CheckType, MVT::i32, ++/*450139*/ OPC_MoveParent, ++/*450140*/ OPC_MoveParent, ++/*450141*/ OPC_MoveParent, ++/*450142*/ OPC_MoveParent, ++/*450143*/ OPC_MoveChild1, ++/*450144*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*450147*/ OPC_CheckChild0Integer, 31, ++/*450149*/ OPC_CheckChild0Type, MVT::i32, ++/*450151*/ OPC_CheckChild1Integer, 31, ++/*450153*/ OPC_CheckChild1Type, MVT::i32, ++/*450155*/ OPC_CheckChild2Integer, 31, ++/*450157*/ OPC_CheckChild2Type, MVT::i32, ++/*450159*/ OPC_CheckChild3Integer, 31, ++/*450161*/ OPC_CheckChild3Type, MVT::i32, ++/*450163*/ OPC_CheckChild4Integer, 31, ++/*450165*/ OPC_CheckChild4Type, MVT::i32, ++/*450167*/ OPC_MoveChild5, ++/*450168*/ OPC_CheckInteger, 31, ++/*450170*/ OPC_CheckType, MVT::i32, ++/*450172*/ OPC_MoveParent, ++/*450173*/ OPC_MoveChild6, ++/*450174*/ OPC_CheckInteger, 31, ++/*450176*/ OPC_CheckType, MVT::i32, ++/*450178*/ OPC_MoveParent, ++/*450179*/ OPC_MoveChild7, ++/*450180*/ OPC_CheckInteger, 31, ++/*450182*/ OPC_CheckType, MVT::i32, ++/*450184*/ OPC_MoveParent, ++/*450185*/ OPC_CheckType, MVT::v8i32, ++/*450187*/ OPC_MoveParent, ++/*450188*/ OPC_MoveParent, ++/*450189*/ OPC_MoveParent, ++/*450190*/ OPC_MoveChild1, ++/*450191*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*450194*/ OPC_CheckChild0Integer, 1, ++/*450196*/ OPC_CheckChild0Type, MVT::i32, ++/*450198*/ OPC_CheckChild1Integer, 1, ++/*450200*/ OPC_CheckChild1Type, MVT::i32, ++/*450202*/ OPC_CheckChild2Integer, 1, ++/*450204*/ OPC_CheckChild2Type, MVT::i32, ++/*450206*/ OPC_CheckChild3Integer, 1, ++/*450208*/ OPC_CheckChild3Type, MVT::i32, ++/*450210*/ OPC_CheckChild4Integer, 1, ++/*450212*/ OPC_CheckChild4Type, MVT::i32, ++/*450214*/ OPC_MoveChild5, ++/*450215*/ OPC_CheckInteger, 1, ++/*450217*/ OPC_CheckType, MVT::i32, ++/*450219*/ OPC_MoveParent, ++/*450220*/ OPC_MoveChild6, ++/*450221*/ OPC_CheckInteger, 1, ++/*450223*/ OPC_CheckType, MVT::i32, ++/*450225*/ OPC_MoveParent, ++/*450226*/ OPC_MoveChild7, ++/*450227*/ OPC_CheckInteger, 1, ++/*450229*/ OPC_CheckType, MVT::i32, ++/*450231*/ OPC_MoveParent, ++/*450232*/ OPC_CheckType, MVT::v8i32, ++/*450234*/ OPC_MoveParent, ++/*450235*/ OPC_CheckType, MVT::v8i32, ++/*450237*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*450239*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b)), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*450247*/ 0, /*End of Scope*/ ++/*450248*/ /*Scope*/ 58|128,2/*314*/, /*->450564*/ ++/*450250*/ OPC_CheckChild0Same, 0, ++/*450252*/ OPC_MoveChild1, ++/*450253*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*450256*/ OPC_Scope, 23|128,1/*151*/, /*->450410*/ // 2 children in Scope ++/*450259*/ OPC_MoveChild0, ++/*450260*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*450263*/ OPC_CheckChild0Integer, 1, ++/*450265*/ OPC_CheckChild0Type, MVT::i32, ++/*450267*/ OPC_CheckChild1Integer, 1, ++/*450269*/ OPC_CheckChild1Type, MVT::i32, ++/*450271*/ OPC_CheckChild2Integer, 1, ++/*450273*/ OPC_CheckChild2Type, MVT::i32, ++/*450275*/ OPC_CheckChild3Integer, 1, ++/*450277*/ OPC_CheckChild3Type, MVT::i32, ++/*450279*/ OPC_CheckChild4Integer, 1, ++/*450281*/ OPC_CheckChild4Type, MVT::i32, ++/*450283*/ OPC_MoveChild5, ++/*450284*/ OPC_CheckInteger, 1, ++/*450286*/ OPC_CheckType, MVT::i32, ++/*450288*/ OPC_MoveParent, ++/*450289*/ OPC_MoveChild6, ++/*450290*/ OPC_CheckInteger, 1, ++/*450292*/ OPC_CheckType, MVT::i32, ++/*450294*/ OPC_MoveParent, ++/*450295*/ OPC_MoveChild7, ++/*450296*/ OPC_CheckInteger, 1, ++/*450298*/ OPC_CheckType, MVT::i32, ++/*450300*/ OPC_MoveParent, ++/*450301*/ OPC_MoveParent, ++/*450302*/ OPC_CheckChild1Same, 1, ++/*450304*/ OPC_MoveParent, ++/*450305*/ OPC_MoveParent, ++/*450306*/ OPC_MoveChild1, ++/*450307*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*450310*/ OPC_CheckChild0Integer, 31, ++/*450312*/ OPC_CheckChild0Type, MVT::i32, ++/*450314*/ OPC_CheckChild1Integer, 31, ++/*450316*/ OPC_CheckChild1Type, MVT::i32, ++/*450318*/ OPC_CheckChild2Integer, 31, ++/*450320*/ OPC_CheckChild2Type, MVT::i32, ++/*450322*/ OPC_CheckChild3Integer, 31, ++/*450324*/ OPC_CheckChild3Type, MVT::i32, ++/*450326*/ OPC_CheckChild4Integer, 31, ++/*450328*/ OPC_CheckChild4Type, MVT::i32, ++/*450330*/ OPC_MoveChild5, ++/*450331*/ OPC_CheckInteger, 31, ++/*450333*/ OPC_CheckType, MVT::i32, ++/*450335*/ OPC_MoveParent, ++/*450336*/ OPC_MoveChild6, ++/*450337*/ OPC_CheckInteger, 31, ++/*450339*/ OPC_CheckType, MVT::i32, ++/*450341*/ OPC_MoveParent, ++/*450342*/ OPC_MoveChild7, ++/*450343*/ OPC_CheckInteger, 31, ++/*450345*/ OPC_CheckType, MVT::i32, ++/*450347*/ OPC_MoveParent, ++/*450348*/ OPC_CheckType, MVT::v8i32, ++/*450350*/ OPC_MoveParent, ++/*450351*/ OPC_MoveParent, ++/*450352*/ OPC_MoveParent, ++/*450353*/ OPC_MoveChild1, ++/*450354*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*450357*/ OPC_CheckChild0Integer, 1, ++/*450359*/ OPC_CheckChild0Type, MVT::i32, ++/*450361*/ OPC_CheckChild1Integer, 1, ++/*450363*/ OPC_CheckChild1Type, MVT::i32, ++/*450365*/ OPC_CheckChild2Integer, 1, ++/*450367*/ OPC_CheckChild2Type, MVT::i32, ++/*450369*/ OPC_CheckChild3Integer, 1, ++/*450371*/ OPC_CheckChild3Type, MVT::i32, ++/*450373*/ OPC_CheckChild4Integer, 1, ++/*450375*/ OPC_CheckChild4Type, MVT::i32, ++/*450377*/ OPC_MoveChild5, ++/*450378*/ OPC_CheckInteger, 1, ++/*450380*/ OPC_CheckType, MVT::i32, ++/*450382*/ OPC_MoveParent, ++/*450383*/ OPC_MoveChild6, ++/*450384*/ OPC_CheckInteger, 1, ++/*450386*/ OPC_CheckType, MVT::i32, ++/*450388*/ OPC_MoveParent, ++/*450389*/ OPC_MoveChild7, ++/*450390*/ OPC_CheckInteger, 1, ++/*450392*/ OPC_CheckType, MVT::i32, ++/*450394*/ OPC_MoveParent, ++/*450395*/ OPC_CheckType, MVT::v8i32, ++/*450397*/ OPC_MoveParent, ++/*450398*/ OPC_CheckType, MVT::v8i32, ++/*450400*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*450402*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b)), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*450410*/ /*Scope*/ 23|128,1/*151*/, /*->450563*/ ++/*450412*/ OPC_CheckChild0Same, 1, ++/*450414*/ OPC_MoveChild1, ++/*450415*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*450418*/ OPC_CheckChild0Integer, 1, ++/*450420*/ OPC_CheckChild0Type, MVT::i32, ++/*450422*/ OPC_CheckChild1Integer, 1, ++/*450424*/ OPC_CheckChild1Type, MVT::i32, ++/*450426*/ OPC_CheckChild2Integer, 1, ++/*450428*/ OPC_CheckChild2Type, MVT::i32, ++/*450430*/ OPC_CheckChild3Integer, 1, ++/*450432*/ OPC_CheckChild3Type, MVT::i32, ++/*450434*/ OPC_CheckChild4Integer, 1, ++/*450436*/ OPC_CheckChild4Type, MVT::i32, ++/*450438*/ OPC_MoveChild5, ++/*450439*/ OPC_CheckInteger, 1, ++/*450441*/ OPC_CheckType, MVT::i32, ++/*450443*/ OPC_MoveParent, ++/*450444*/ OPC_MoveChild6, ++/*450445*/ OPC_CheckInteger, 1, ++/*450447*/ OPC_CheckType, MVT::i32, ++/*450449*/ OPC_MoveParent, ++/*450450*/ OPC_MoveChild7, ++/*450451*/ OPC_CheckInteger, 1, ++/*450453*/ OPC_CheckType, MVT::i32, ++/*450455*/ OPC_MoveParent, ++/*450456*/ OPC_MoveParent, ++/*450457*/ OPC_MoveParent, ++/*450458*/ OPC_MoveParent, ++/*450459*/ OPC_MoveChild1, ++/*450460*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*450463*/ OPC_CheckChild0Integer, 31, ++/*450465*/ OPC_CheckChild0Type, MVT::i32, ++/*450467*/ OPC_CheckChild1Integer, 31, ++/*450469*/ OPC_CheckChild1Type, MVT::i32, ++/*450471*/ OPC_CheckChild2Integer, 31, ++/*450473*/ OPC_CheckChild2Type, MVT::i32, ++/*450475*/ OPC_CheckChild3Integer, 31, ++/*450477*/ OPC_CheckChild3Type, MVT::i32, ++/*450479*/ OPC_CheckChild4Integer, 31, ++/*450481*/ OPC_CheckChild4Type, MVT::i32, ++/*450483*/ OPC_MoveChild5, ++/*450484*/ OPC_CheckInteger, 31, ++/*450486*/ OPC_CheckType, MVT::i32, ++/*450488*/ OPC_MoveParent, ++/*450489*/ OPC_MoveChild6, ++/*450490*/ OPC_CheckInteger, 31, ++/*450492*/ OPC_CheckType, MVT::i32, ++/*450494*/ OPC_MoveParent, ++/*450495*/ OPC_MoveChild7, ++/*450496*/ OPC_CheckInteger, 31, ++/*450498*/ OPC_CheckType, MVT::i32, ++/*450500*/ OPC_MoveParent, ++/*450501*/ OPC_CheckType, MVT::v8i32, ++/*450503*/ OPC_MoveParent, ++/*450504*/ OPC_MoveParent, ++/*450505*/ OPC_MoveParent, ++/*450506*/ OPC_MoveChild1, ++/*450507*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*450510*/ OPC_CheckChild0Integer, 1, ++/*450512*/ OPC_CheckChild0Type, MVT::i32, ++/*450514*/ OPC_CheckChild1Integer, 1, ++/*450516*/ OPC_CheckChild1Type, MVT::i32, ++/*450518*/ OPC_CheckChild2Integer, 1, ++/*450520*/ OPC_CheckChild2Type, MVT::i32, ++/*450522*/ OPC_CheckChild3Integer, 1, ++/*450524*/ OPC_CheckChild3Type, MVT::i32, ++/*450526*/ OPC_CheckChild4Integer, 1, ++/*450528*/ OPC_CheckChild4Type, MVT::i32, ++/*450530*/ OPC_MoveChild5, ++/*450531*/ OPC_CheckInteger, 1, ++/*450533*/ OPC_CheckType, MVT::i32, ++/*450535*/ OPC_MoveParent, ++/*450536*/ OPC_MoveChild6, ++/*450537*/ OPC_CheckInteger, 1, ++/*450539*/ OPC_CheckType, MVT::i32, ++/*450541*/ OPC_MoveParent, ++/*450542*/ OPC_MoveChild7, ++/*450543*/ OPC_CheckInteger, 1, ++/*450545*/ OPC_CheckType, MVT::i32, ++/*450547*/ OPC_MoveParent, ++/*450548*/ OPC_CheckType, MVT::v8i32, ++/*450550*/ OPC_MoveParent, ++/*450551*/ OPC_CheckType, MVT::v8i32, ++/*450553*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*450555*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b)), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*450563*/ 0, /*End of Scope*/ ++/*450564*/ /*Scope*/ 15|128,2/*271*/, /*->450837*/ ++/*450566*/ OPC_MoveChild0, ++/*450567*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*450570*/ OPC_CheckChild0Integer, 1, ++/*450572*/ OPC_CheckChild0Type, MVT::i32, ++/*450574*/ OPC_CheckChild1Integer, 1, ++/*450576*/ OPC_CheckChild1Type, MVT::i32, ++/*450578*/ OPC_CheckChild2Integer, 1, ++/*450580*/ OPC_CheckChild2Type, MVT::i32, ++/*450582*/ OPC_CheckChild3Integer, 1, ++/*450584*/ OPC_CheckChild3Type, MVT::i32, ++/*450586*/ OPC_CheckChild4Integer, 1, ++/*450588*/ OPC_CheckChild4Type, MVT::i32, ++/*450590*/ OPC_MoveChild5, ++/*450591*/ OPC_CheckInteger, 1, ++/*450593*/ OPC_CheckType, MVT::i32, ++/*450595*/ OPC_MoveParent, ++/*450596*/ OPC_MoveChild6, ++/*450597*/ OPC_CheckInteger, 1, ++/*450599*/ OPC_CheckType, MVT::i32, ++/*450601*/ OPC_MoveParent, ++/*450602*/ OPC_MoveChild7, ++/*450603*/ OPC_CheckInteger, 1, ++/*450605*/ OPC_CheckType, MVT::i32, ++/*450607*/ OPC_MoveParent, ++/*450608*/ OPC_MoveParent, ++/*450609*/ OPC_MoveChild1, ++/*450610*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*450613*/ OPC_Scope, 110, /*->450725*/ // 2 children in Scope ++/*450615*/ OPC_CheckChild0Same, 0, ++/*450617*/ OPC_CheckChild1Same, 1, ++/*450619*/ OPC_MoveParent, ++/*450620*/ OPC_MoveParent, ++/*450621*/ OPC_MoveChild1, ++/*450622*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*450625*/ OPC_CheckChild0Integer, 31, ++/*450627*/ OPC_CheckChild0Type, MVT::i32, ++/*450629*/ OPC_CheckChild1Integer, 31, ++/*450631*/ OPC_CheckChild1Type, MVT::i32, ++/*450633*/ OPC_CheckChild2Integer, 31, ++/*450635*/ OPC_CheckChild2Type, MVT::i32, ++/*450637*/ OPC_CheckChild3Integer, 31, ++/*450639*/ OPC_CheckChild3Type, MVT::i32, ++/*450641*/ OPC_CheckChild4Integer, 31, ++/*450643*/ OPC_CheckChild4Type, MVT::i32, ++/*450645*/ OPC_MoveChild5, ++/*450646*/ OPC_CheckInteger, 31, ++/*450648*/ OPC_CheckType, MVT::i32, ++/*450650*/ OPC_MoveParent, ++/*450651*/ OPC_MoveChild6, ++/*450652*/ OPC_CheckInteger, 31, ++/*450654*/ OPC_CheckType, MVT::i32, ++/*450656*/ OPC_MoveParent, ++/*450657*/ OPC_MoveChild7, ++/*450658*/ OPC_CheckInteger, 31, ++/*450660*/ OPC_CheckType, MVT::i32, ++/*450662*/ OPC_MoveParent, ++/*450663*/ OPC_CheckType, MVT::v8i32, ++/*450665*/ OPC_MoveParent, ++/*450666*/ OPC_MoveParent, ++/*450667*/ OPC_MoveParent, ++/*450668*/ OPC_MoveChild1, ++/*450669*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*450672*/ OPC_CheckChild0Integer, 1, ++/*450674*/ OPC_CheckChild0Type, MVT::i32, ++/*450676*/ OPC_CheckChild1Integer, 1, ++/*450678*/ OPC_CheckChild1Type, MVT::i32, ++/*450680*/ OPC_CheckChild2Integer, 1, ++/*450682*/ OPC_CheckChild2Type, MVT::i32, ++/*450684*/ OPC_CheckChild3Integer, 1, ++/*450686*/ OPC_CheckChild3Type, MVT::i32, ++/*450688*/ OPC_CheckChild4Integer, 1, ++/*450690*/ OPC_CheckChild4Type, MVT::i32, ++/*450692*/ OPC_MoveChild5, ++/*450693*/ OPC_CheckInteger, 1, ++/*450695*/ OPC_CheckType, MVT::i32, ++/*450697*/ OPC_MoveParent, ++/*450698*/ OPC_MoveChild6, ++/*450699*/ OPC_CheckInteger, 1, ++/*450701*/ OPC_CheckType, MVT::i32, ++/*450703*/ OPC_MoveParent, ++/*450704*/ OPC_MoveChild7, ++/*450705*/ OPC_CheckInteger, 1, ++/*450707*/ OPC_CheckType, MVT::i32, ++/*450709*/ OPC_MoveParent, ++/*450710*/ OPC_CheckType, MVT::v8i32, ++/*450712*/ OPC_MoveParent, ++/*450713*/ OPC_CheckType, MVT::v8i32, ++/*450715*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*450717*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b)), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*450725*/ /*Scope*/ 110, /*->450836*/ ++/*450726*/ OPC_CheckChild0Same, 1, ++/*450728*/ OPC_CheckChild1Same, 0, ++/*450730*/ OPC_MoveParent, ++/*450731*/ OPC_MoveParent, ++/*450732*/ OPC_MoveChild1, ++/*450733*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*450736*/ OPC_CheckChild0Integer, 31, ++/*450738*/ OPC_CheckChild0Type, MVT::i32, ++/*450740*/ OPC_CheckChild1Integer, 31, ++/*450742*/ OPC_CheckChild1Type, MVT::i32, ++/*450744*/ OPC_CheckChild2Integer, 31, ++/*450746*/ OPC_CheckChild2Type, MVT::i32, ++/*450748*/ OPC_CheckChild3Integer, 31, ++/*450750*/ OPC_CheckChild3Type, MVT::i32, ++/*450752*/ OPC_CheckChild4Integer, 31, ++/*450754*/ OPC_CheckChild4Type, MVT::i32, ++/*450756*/ OPC_MoveChild5, ++/*450757*/ OPC_CheckInteger, 31, ++/*450759*/ OPC_CheckType, MVT::i32, ++/*450761*/ OPC_MoveParent, ++/*450762*/ OPC_MoveChild6, ++/*450763*/ OPC_CheckInteger, 31, ++/*450765*/ OPC_CheckType, MVT::i32, ++/*450767*/ OPC_MoveParent, ++/*450768*/ OPC_MoveChild7, ++/*450769*/ OPC_CheckInteger, 31, ++/*450771*/ OPC_CheckType, MVT::i32, ++/*450773*/ OPC_MoveParent, ++/*450774*/ OPC_CheckType, MVT::v8i32, ++/*450776*/ OPC_MoveParent, ++/*450777*/ OPC_MoveParent, ++/*450778*/ OPC_MoveParent, ++/*450779*/ OPC_MoveChild1, ++/*450780*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*450783*/ OPC_CheckChild0Integer, 1, ++/*450785*/ OPC_CheckChild0Type, MVT::i32, ++/*450787*/ OPC_CheckChild1Integer, 1, ++/*450789*/ OPC_CheckChild1Type, MVT::i32, ++/*450791*/ OPC_CheckChild2Integer, 1, ++/*450793*/ OPC_CheckChild2Type, MVT::i32, ++/*450795*/ OPC_CheckChild3Integer, 1, ++/*450797*/ OPC_CheckChild3Type, MVT::i32, ++/*450799*/ OPC_CheckChild4Integer, 1, ++/*450801*/ OPC_CheckChild4Type, MVT::i32, ++/*450803*/ OPC_MoveChild5, ++/*450804*/ OPC_CheckInteger, 1, ++/*450806*/ OPC_CheckType, MVT::i32, ++/*450808*/ OPC_MoveParent, ++/*450809*/ OPC_MoveChild6, ++/*450810*/ OPC_CheckInteger, 1, ++/*450812*/ OPC_CheckType, MVT::i32, ++/*450814*/ OPC_MoveParent, ++/*450815*/ OPC_MoveChild7, ++/*450816*/ OPC_CheckInteger, 1, ++/*450818*/ OPC_CheckType, MVT::i32, ++/*450820*/ OPC_MoveParent, ++/*450821*/ OPC_CheckType, MVT::v8i32, ++/*450823*/ OPC_MoveParent, ++/*450824*/ OPC_CheckType, MVT::v8i32, ++/*450826*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*450828*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b)), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*450836*/ 0, /*End of Scope*/ ++/*450837*/ 0, /*End of Scope*/ ++/*450838*/ /*Scope*/ 107|128,14/*1899*/, /*->452739*/ ++/*450840*/ OPC_RecordChild0, // #1 = $b ++/*450841*/ OPC_MoveChild1, ++/*450842*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*450845*/ OPC_CheckChild0Integer, 1, ++/*450847*/ OPC_CheckChild0Type, MVT::i32, ++/*450849*/ OPC_CheckChild1Integer, 1, ++/*450851*/ OPC_CheckChild1Type, MVT::i32, ++/*450853*/ OPC_CheckChild2Integer, 1, ++/*450855*/ OPC_CheckChild2Type, MVT::i32, ++/*450857*/ OPC_CheckChild3Integer, 1, ++/*450859*/ OPC_CheckChild3Type, MVT::i32, ++/*450861*/ OPC_CheckChild4Integer, 1, ++/*450863*/ OPC_CheckChild4Type, MVT::i32, ++/*450865*/ OPC_MoveChild5, ++/*450866*/ OPC_CheckInteger, 1, ++/*450868*/ OPC_CheckType, MVT::i32, ++/*450870*/ OPC_MoveParent, ++/*450871*/ OPC_MoveChild6, ++/*450872*/ OPC_CheckInteger, 1, ++/*450874*/ OPC_CheckType, MVT::i32, ++/*450876*/ OPC_MoveParent, ++/*450877*/ OPC_MoveChild7, ++/*450878*/ OPC_CheckInteger, 1, ++/*450880*/ OPC_CheckType, MVT::i32, ++/*450882*/ OPC_MoveParent, ++/*450883*/ OPC_MoveParent, ++/*450884*/ OPC_MoveParent, ++/*450885*/ OPC_MoveParent, ++/*450886*/ OPC_MoveChild1, ++/*450887*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*450890*/ OPC_MoveChild0, ++/*450891*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*450894*/ OPC_Scope, 40|128,7/*936*/, /*->451833*/ // 4 children in Scope ++/*450897*/ OPC_MoveChild0, ++/*450898*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*450901*/ OPC_Scope, 25|128,1/*153*/, /*->451057*/ // 6 children in Scope ++/*450904*/ OPC_MoveChild0, ++/*450905*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*450908*/ OPC_CheckChild0Integer, 1, ++/*450910*/ OPC_CheckChild0Type, MVT::i32, ++/*450912*/ OPC_CheckChild1Integer, 1, ++/*450914*/ OPC_CheckChild1Type, MVT::i32, ++/*450916*/ OPC_CheckChild2Integer, 1, ++/*450918*/ OPC_CheckChild2Type, MVT::i32, ++/*450920*/ OPC_CheckChild3Integer, 1, ++/*450922*/ OPC_CheckChild3Type, MVT::i32, ++/*450924*/ OPC_CheckChild4Integer, 1, ++/*450926*/ OPC_CheckChild4Type, MVT::i32, ++/*450928*/ OPC_MoveChild5, ++/*450929*/ OPC_CheckInteger, 1, ++/*450931*/ OPC_CheckType, MVT::i32, ++/*450933*/ OPC_MoveParent, ++/*450934*/ OPC_MoveChild6, ++/*450935*/ OPC_CheckInteger, 1, ++/*450937*/ OPC_CheckType, MVT::i32, ++/*450939*/ OPC_MoveParent, ++/*450940*/ OPC_MoveChild7, ++/*450941*/ OPC_CheckInteger, 1, ++/*450943*/ OPC_CheckType, MVT::i32, ++/*450945*/ OPC_MoveParent, ++/*450946*/ OPC_MoveParent, ++/*450947*/ OPC_CheckChild1Same, 0, ++/*450949*/ OPC_MoveParent, ++/*450950*/ OPC_CheckChild1Same, 1, ++/*450952*/ OPC_MoveParent, ++/*450953*/ OPC_MoveChild1, ++/*450954*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*450957*/ OPC_CheckChild0Integer, 31, ++/*450959*/ OPC_CheckChild0Type, MVT::i32, ++/*450961*/ OPC_CheckChild1Integer, 31, ++/*450963*/ OPC_CheckChild1Type, MVT::i32, ++/*450965*/ OPC_CheckChild2Integer, 31, ++/*450967*/ OPC_CheckChild2Type, MVT::i32, ++/*450969*/ OPC_CheckChild3Integer, 31, ++/*450971*/ OPC_CheckChild3Type, MVT::i32, ++/*450973*/ OPC_CheckChild4Integer, 31, ++/*450975*/ OPC_CheckChild4Type, MVT::i32, ++/*450977*/ OPC_MoveChild5, ++/*450978*/ OPC_CheckInteger, 31, ++/*450980*/ OPC_CheckType, MVT::i32, ++/*450982*/ OPC_MoveParent, ++/*450983*/ OPC_MoveChild6, ++/*450984*/ OPC_CheckInteger, 31, ++/*450986*/ OPC_CheckType, MVT::i32, ++/*450988*/ OPC_MoveParent, ++/*450989*/ OPC_MoveChild7, ++/*450990*/ OPC_CheckInteger, 31, ++/*450992*/ OPC_CheckType, MVT::i32, ++/*450994*/ OPC_MoveParent, ++/*450995*/ OPC_CheckType, MVT::v8i32, ++/*450997*/ OPC_MoveParent, ++/*450998*/ OPC_MoveParent, ++/*450999*/ OPC_MoveParent, ++/*451000*/ OPC_MoveChild1, ++/*451001*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*451004*/ OPC_CheckChild0Integer, 1, ++/*451006*/ OPC_CheckChild0Type, MVT::i32, ++/*451008*/ OPC_CheckChild1Integer, 1, ++/*451010*/ OPC_CheckChild1Type, MVT::i32, ++/*451012*/ OPC_CheckChild2Integer, 1, ++/*451014*/ OPC_CheckChild2Type, MVT::i32, ++/*451016*/ OPC_CheckChild3Integer, 1, ++/*451018*/ OPC_CheckChild3Type, MVT::i32, ++/*451020*/ OPC_CheckChild4Integer, 1, ++/*451022*/ OPC_CheckChild4Type, MVT::i32, ++/*451024*/ OPC_MoveChild5, ++/*451025*/ OPC_CheckInteger, 1, ++/*451027*/ OPC_CheckType, MVT::i32, ++/*451029*/ OPC_MoveParent, ++/*451030*/ OPC_MoveChild6, ++/*451031*/ OPC_CheckInteger, 1, ++/*451033*/ OPC_CheckType, MVT::i32, ++/*451035*/ OPC_MoveParent, ++/*451036*/ OPC_MoveChild7, ++/*451037*/ OPC_CheckInteger, 1, ++/*451039*/ OPC_CheckType, MVT::i32, ++/*451041*/ OPC_MoveParent, ++/*451042*/ OPC_CheckType, MVT::v8i32, ++/*451044*/ OPC_MoveParent, ++/*451045*/ OPC_CheckType, MVT::v8i32, ++/*451047*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*451049*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a), LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*451057*/ /*Scope*/ 25|128,1/*153*/, /*->451212*/ ++/*451059*/ OPC_CheckChild0Same, 0, ++/*451061*/ OPC_MoveChild1, ++/*451062*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*451065*/ OPC_CheckChild0Integer, 1, ++/*451067*/ OPC_CheckChild0Type, MVT::i32, ++/*451069*/ OPC_CheckChild1Integer, 1, ++/*451071*/ OPC_CheckChild1Type, MVT::i32, ++/*451073*/ OPC_CheckChild2Integer, 1, ++/*451075*/ OPC_CheckChild2Type, MVT::i32, ++/*451077*/ OPC_CheckChild3Integer, 1, ++/*451079*/ OPC_CheckChild3Type, MVT::i32, ++/*451081*/ OPC_CheckChild4Integer, 1, ++/*451083*/ OPC_CheckChild4Type, MVT::i32, ++/*451085*/ OPC_MoveChild5, ++/*451086*/ OPC_CheckInteger, 1, ++/*451088*/ OPC_CheckType, MVT::i32, ++/*451090*/ OPC_MoveParent, ++/*451091*/ OPC_MoveChild6, ++/*451092*/ OPC_CheckInteger, 1, ++/*451094*/ OPC_CheckType, MVT::i32, ++/*451096*/ OPC_MoveParent, ++/*451097*/ OPC_MoveChild7, ++/*451098*/ OPC_CheckInteger, 1, ++/*451100*/ OPC_CheckType, MVT::i32, ++/*451102*/ OPC_MoveParent, ++/*451103*/ OPC_MoveParent, ++/*451104*/ OPC_MoveParent, ++/*451105*/ OPC_CheckChild1Same, 1, ++/*451107*/ OPC_MoveParent, ++/*451108*/ OPC_MoveChild1, ++/*451109*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*451112*/ OPC_CheckChild0Integer, 31, ++/*451114*/ OPC_CheckChild0Type, MVT::i32, ++/*451116*/ OPC_CheckChild1Integer, 31, ++/*451118*/ OPC_CheckChild1Type, MVT::i32, ++/*451120*/ OPC_CheckChild2Integer, 31, ++/*451122*/ OPC_CheckChild2Type, MVT::i32, ++/*451124*/ OPC_CheckChild3Integer, 31, ++/*451126*/ OPC_CheckChild3Type, MVT::i32, ++/*451128*/ OPC_CheckChild4Integer, 31, ++/*451130*/ OPC_CheckChild4Type, MVT::i32, ++/*451132*/ OPC_MoveChild5, ++/*451133*/ OPC_CheckInteger, 31, ++/*451135*/ OPC_CheckType, MVT::i32, ++/*451137*/ OPC_MoveParent, ++/*451138*/ OPC_MoveChild6, ++/*451139*/ OPC_CheckInteger, 31, ++/*451141*/ OPC_CheckType, MVT::i32, ++/*451143*/ OPC_MoveParent, ++/*451144*/ OPC_MoveChild7, ++/*451145*/ OPC_CheckInteger, 31, ++/*451147*/ OPC_CheckType, MVT::i32, ++/*451149*/ OPC_MoveParent, ++/*451150*/ OPC_CheckType, MVT::v8i32, ++/*451152*/ OPC_MoveParent, ++/*451153*/ OPC_MoveParent, ++/*451154*/ OPC_MoveParent, ++/*451155*/ OPC_MoveChild1, ++/*451156*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*451159*/ OPC_CheckChild0Integer, 1, ++/*451161*/ OPC_CheckChild0Type, MVT::i32, ++/*451163*/ OPC_CheckChild1Integer, 1, ++/*451165*/ OPC_CheckChild1Type, MVT::i32, ++/*451167*/ OPC_CheckChild2Integer, 1, ++/*451169*/ OPC_CheckChild2Type, MVT::i32, ++/*451171*/ OPC_CheckChild3Integer, 1, ++/*451173*/ OPC_CheckChild3Type, MVT::i32, ++/*451175*/ OPC_CheckChild4Integer, 1, ++/*451177*/ OPC_CheckChild4Type, MVT::i32, ++/*451179*/ OPC_MoveChild5, ++/*451180*/ OPC_CheckInteger, 1, ++/*451182*/ OPC_CheckType, MVT::i32, ++/*451184*/ OPC_MoveParent, ++/*451185*/ OPC_MoveChild6, ++/*451186*/ OPC_CheckInteger, 1, ++/*451188*/ OPC_CheckType, MVT::i32, ++/*451190*/ OPC_MoveParent, ++/*451191*/ OPC_MoveChild7, ++/*451192*/ OPC_CheckInteger, 1, ++/*451194*/ OPC_CheckType, MVT::i32, ++/*451196*/ OPC_MoveParent, ++/*451197*/ OPC_CheckType, MVT::v8i32, ++/*451199*/ OPC_MoveParent, ++/*451200*/ OPC_CheckType, MVT::v8i32, ++/*451202*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*451204*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*451212*/ /*Scope*/ 25|128,1/*153*/, /*->451367*/ ++/*451214*/ OPC_MoveChild0, ++/*451215*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*451218*/ OPC_CheckChild0Integer, 1, ++/*451220*/ OPC_CheckChild0Type, MVT::i32, ++/*451222*/ OPC_CheckChild1Integer, 1, ++/*451224*/ OPC_CheckChild1Type, MVT::i32, ++/*451226*/ OPC_CheckChild2Integer, 1, ++/*451228*/ OPC_CheckChild2Type, MVT::i32, ++/*451230*/ OPC_CheckChild3Integer, 1, ++/*451232*/ OPC_CheckChild3Type, MVT::i32, ++/*451234*/ OPC_CheckChild4Integer, 1, ++/*451236*/ OPC_CheckChild4Type, MVT::i32, ++/*451238*/ OPC_MoveChild5, ++/*451239*/ OPC_CheckInteger, 1, ++/*451241*/ OPC_CheckType, MVT::i32, ++/*451243*/ OPC_MoveParent, ++/*451244*/ OPC_MoveChild6, ++/*451245*/ OPC_CheckInteger, 1, ++/*451247*/ OPC_CheckType, MVT::i32, ++/*451249*/ OPC_MoveParent, ++/*451250*/ OPC_MoveChild7, ++/*451251*/ OPC_CheckInteger, 1, ++/*451253*/ OPC_CheckType, MVT::i32, ++/*451255*/ OPC_MoveParent, ++/*451256*/ OPC_MoveParent, ++/*451257*/ OPC_CheckChild1Same, 1, ++/*451259*/ OPC_MoveParent, ++/*451260*/ OPC_CheckChild1Same, 0, ++/*451262*/ OPC_MoveParent, ++/*451263*/ OPC_MoveChild1, ++/*451264*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*451267*/ OPC_CheckChild0Integer, 31, ++/*451269*/ OPC_CheckChild0Type, MVT::i32, ++/*451271*/ OPC_CheckChild1Integer, 31, ++/*451273*/ OPC_CheckChild1Type, MVT::i32, ++/*451275*/ OPC_CheckChild2Integer, 31, ++/*451277*/ OPC_CheckChild2Type, MVT::i32, ++/*451279*/ OPC_CheckChild3Integer, 31, ++/*451281*/ OPC_CheckChild3Type, MVT::i32, ++/*451283*/ OPC_CheckChild4Integer, 31, ++/*451285*/ OPC_CheckChild4Type, MVT::i32, ++/*451287*/ OPC_MoveChild5, ++/*451288*/ OPC_CheckInteger, 31, ++/*451290*/ OPC_CheckType, MVT::i32, ++/*451292*/ OPC_MoveParent, ++/*451293*/ OPC_MoveChild6, ++/*451294*/ OPC_CheckInteger, 31, ++/*451296*/ OPC_CheckType, MVT::i32, ++/*451298*/ OPC_MoveParent, ++/*451299*/ OPC_MoveChild7, ++/*451300*/ OPC_CheckInteger, 31, ++/*451302*/ OPC_CheckType, MVT::i32, ++/*451304*/ OPC_MoveParent, ++/*451305*/ OPC_CheckType, MVT::v8i32, ++/*451307*/ OPC_MoveParent, ++/*451308*/ OPC_MoveParent, ++/*451309*/ OPC_MoveParent, ++/*451310*/ OPC_MoveChild1, ++/*451311*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*451314*/ OPC_CheckChild0Integer, 1, ++/*451316*/ OPC_CheckChild0Type, MVT::i32, ++/*451318*/ OPC_CheckChild1Integer, 1, ++/*451320*/ OPC_CheckChild1Type, MVT::i32, ++/*451322*/ OPC_CheckChild2Integer, 1, ++/*451324*/ OPC_CheckChild2Type, MVT::i32, ++/*451326*/ OPC_CheckChild3Integer, 1, ++/*451328*/ OPC_CheckChild3Type, MVT::i32, ++/*451330*/ OPC_CheckChild4Integer, 1, ++/*451332*/ OPC_CheckChild4Type, MVT::i32, ++/*451334*/ OPC_MoveChild5, ++/*451335*/ OPC_CheckInteger, 1, ++/*451337*/ OPC_CheckType, MVT::i32, ++/*451339*/ OPC_MoveParent, ++/*451340*/ OPC_MoveChild6, ++/*451341*/ OPC_CheckInteger, 1, ++/*451343*/ OPC_CheckType, MVT::i32, ++/*451345*/ OPC_MoveParent, ++/*451346*/ OPC_MoveChild7, ++/*451347*/ OPC_CheckInteger, 1, ++/*451349*/ OPC_CheckType, MVT::i32, ++/*451351*/ OPC_MoveParent, ++/*451352*/ OPC_CheckType, MVT::v8i32, ++/*451354*/ OPC_MoveParent, ++/*451355*/ OPC_CheckType, MVT::v8i32, ++/*451357*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*451359*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b), LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*451367*/ /*Scope*/ 25|128,1/*153*/, /*->451522*/ ++/*451369*/ OPC_CheckChild0Same, 1, ++/*451371*/ OPC_MoveChild1, ++/*451372*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*451375*/ OPC_CheckChild0Integer, 1, ++/*451377*/ OPC_CheckChild0Type, MVT::i32, ++/*451379*/ OPC_CheckChild1Integer, 1, ++/*451381*/ OPC_CheckChild1Type, MVT::i32, ++/*451383*/ OPC_CheckChild2Integer, 1, ++/*451385*/ OPC_CheckChild2Type, MVT::i32, ++/*451387*/ OPC_CheckChild3Integer, 1, ++/*451389*/ OPC_CheckChild3Type, MVT::i32, ++/*451391*/ OPC_CheckChild4Integer, 1, ++/*451393*/ OPC_CheckChild4Type, MVT::i32, ++/*451395*/ OPC_MoveChild5, ++/*451396*/ OPC_CheckInteger, 1, ++/*451398*/ OPC_CheckType, MVT::i32, ++/*451400*/ OPC_MoveParent, ++/*451401*/ OPC_MoveChild6, ++/*451402*/ OPC_CheckInteger, 1, ++/*451404*/ OPC_CheckType, MVT::i32, ++/*451406*/ OPC_MoveParent, ++/*451407*/ OPC_MoveChild7, ++/*451408*/ OPC_CheckInteger, 1, ++/*451410*/ OPC_CheckType, MVT::i32, ++/*451412*/ OPC_MoveParent, ++/*451413*/ OPC_MoveParent, ++/*451414*/ OPC_MoveParent, ++/*451415*/ OPC_CheckChild1Same, 0, ++/*451417*/ OPC_MoveParent, ++/*451418*/ OPC_MoveChild1, ++/*451419*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*451422*/ OPC_CheckChild0Integer, 31, ++/*451424*/ OPC_CheckChild0Type, MVT::i32, ++/*451426*/ OPC_CheckChild1Integer, 31, ++/*451428*/ OPC_CheckChild1Type, MVT::i32, ++/*451430*/ OPC_CheckChild2Integer, 31, ++/*451432*/ OPC_CheckChild2Type, MVT::i32, ++/*451434*/ OPC_CheckChild3Integer, 31, ++/*451436*/ OPC_CheckChild3Type, MVT::i32, ++/*451438*/ OPC_CheckChild4Integer, 31, ++/*451440*/ OPC_CheckChild4Type, MVT::i32, ++/*451442*/ OPC_MoveChild5, ++/*451443*/ OPC_CheckInteger, 31, ++/*451445*/ OPC_CheckType, MVT::i32, ++/*451447*/ OPC_MoveParent, ++/*451448*/ OPC_MoveChild6, ++/*451449*/ OPC_CheckInteger, 31, ++/*451451*/ OPC_CheckType, MVT::i32, ++/*451453*/ OPC_MoveParent, ++/*451454*/ OPC_MoveChild7, ++/*451455*/ OPC_CheckInteger, 31, ++/*451457*/ OPC_CheckType, MVT::i32, ++/*451459*/ OPC_MoveParent, ++/*451460*/ OPC_CheckType, MVT::v8i32, ++/*451462*/ OPC_MoveParent, ++/*451463*/ OPC_MoveParent, ++/*451464*/ OPC_MoveParent, ++/*451465*/ OPC_MoveChild1, ++/*451466*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*451469*/ OPC_CheckChild0Integer, 1, ++/*451471*/ OPC_CheckChild0Type, MVT::i32, ++/*451473*/ OPC_CheckChild1Integer, 1, ++/*451475*/ OPC_CheckChild1Type, MVT::i32, ++/*451477*/ OPC_CheckChild2Integer, 1, ++/*451479*/ OPC_CheckChild2Type, MVT::i32, ++/*451481*/ OPC_CheckChild3Integer, 1, ++/*451483*/ OPC_CheckChild3Type, MVT::i32, ++/*451485*/ OPC_CheckChild4Integer, 1, ++/*451487*/ OPC_CheckChild4Type, MVT::i32, ++/*451489*/ OPC_MoveChild5, ++/*451490*/ OPC_CheckInteger, 1, ++/*451492*/ OPC_CheckType, MVT::i32, ++/*451494*/ OPC_MoveParent, ++/*451495*/ OPC_MoveChild6, ++/*451496*/ OPC_CheckInteger, 1, ++/*451498*/ OPC_CheckType, MVT::i32, ++/*451500*/ OPC_MoveParent, ++/*451501*/ OPC_MoveChild7, ++/*451502*/ OPC_CheckInteger, 1, ++/*451504*/ OPC_CheckType, MVT::i32, ++/*451506*/ OPC_MoveParent, ++/*451507*/ OPC_CheckType, MVT::v8i32, ++/*451509*/ OPC_MoveParent, ++/*451510*/ OPC_CheckType, MVT::v8i32, ++/*451512*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*451514*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*451522*/ /*Scope*/ 25|128,1/*153*/, /*->451677*/ ++/*451524*/ OPC_CheckChild0Same, 0, ++/*451526*/ OPC_CheckChild1Same, 1, ++/*451528*/ OPC_MoveParent, ++/*451529*/ OPC_MoveChild1, ++/*451530*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*451533*/ OPC_CheckChild0Integer, 1, ++/*451535*/ OPC_CheckChild0Type, MVT::i32, ++/*451537*/ OPC_CheckChild1Integer, 1, ++/*451539*/ OPC_CheckChild1Type, MVT::i32, ++/*451541*/ OPC_CheckChild2Integer, 1, ++/*451543*/ OPC_CheckChild2Type, MVT::i32, ++/*451545*/ OPC_CheckChild3Integer, 1, ++/*451547*/ OPC_CheckChild3Type, MVT::i32, ++/*451549*/ OPC_CheckChild4Integer, 1, ++/*451551*/ OPC_CheckChild4Type, MVT::i32, ++/*451553*/ OPC_MoveChild5, ++/*451554*/ OPC_CheckInteger, 1, ++/*451556*/ OPC_CheckType, MVT::i32, ++/*451558*/ OPC_MoveParent, ++/*451559*/ OPC_MoveChild6, ++/*451560*/ OPC_CheckInteger, 1, ++/*451562*/ OPC_CheckType, MVT::i32, ++/*451564*/ OPC_MoveParent, ++/*451565*/ OPC_MoveChild7, ++/*451566*/ OPC_CheckInteger, 1, ++/*451568*/ OPC_CheckType, MVT::i32, ++/*451570*/ OPC_MoveParent, ++/*451571*/ OPC_MoveParent, ++/*451572*/ OPC_MoveParent, ++/*451573*/ OPC_MoveChild1, ++/*451574*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*451577*/ OPC_CheckChild0Integer, 31, ++/*451579*/ OPC_CheckChild0Type, MVT::i32, ++/*451581*/ OPC_CheckChild1Integer, 31, ++/*451583*/ OPC_CheckChild1Type, MVT::i32, ++/*451585*/ OPC_CheckChild2Integer, 31, ++/*451587*/ OPC_CheckChild2Type, MVT::i32, ++/*451589*/ OPC_CheckChild3Integer, 31, ++/*451591*/ OPC_CheckChild3Type, MVT::i32, ++/*451593*/ OPC_CheckChild4Integer, 31, ++/*451595*/ OPC_CheckChild4Type, MVT::i32, ++/*451597*/ OPC_MoveChild5, ++/*451598*/ OPC_CheckInteger, 31, ++/*451600*/ OPC_CheckType, MVT::i32, ++/*451602*/ OPC_MoveParent, ++/*451603*/ OPC_MoveChild6, ++/*451604*/ OPC_CheckInteger, 31, ++/*451606*/ OPC_CheckType, MVT::i32, ++/*451608*/ OPC_MoveParent, ++/*451609*/ OPC_MoveChild7, ++/*451610*/ OPC_CheckInteger, 31, ++/*451612*/ OPC_CheckType, MVT::i32, ++/*451614*/ OPC_MoveParent, ++/*451615*/ OPC_CheckType, MVT::v8i32, ++/*451617*/ OPC_MoveParent, ++/*451618*/ OPC_MoveParent, ++/*451619*/ OPC_MoveParent, ++/*451620*/ OPC_MoveChild1, ++/*451621*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*451624*/ OPC_CheckChild0Integer, 1, ++/*451626*/ OPC_CheckChild0Type, MVT::i32, ++/*451628*/ OPC_CheckChild1Integer, 1, ++/*451630*/ OPC_CheckChild1Type, MVT::i32, ++/*451632*/ OPC_CheckChild2Integer, 1, ++/*451634*/ OPC_CheckChild2Type, MVT::i32, ++/*451636*/ OPC_CheckChild3Integer, 1, ++/*451638*/ OPC_CheckChild3Type, MVT::i32, ++/*451640*/ OPC_CheckChild4Integer, 1, ++/*451642*/ OPC_CheckChild4Type, MVT::i32, ++/*451644*/ OPC_MoveChild5, ++/*451645*/ OPC_CheckInteger, 1, ++/*451647*/ OPC_CheckType, MVT::i32, ++/*451649*/ OPC_MoveParent, ++/*451650*/ OPC_MoveChild6, ++/*451651*/ OPC_CheckInteger, 1, ++/*451653*/ OPC_CheckType, MVT::i32, ++/*451655*/ OPC_MoveParent, ++/*451656*/ OPC_MoveChild7, ++/*451657*/ OPC_CheckInteger, 1, ++/*451659*/ OPC_CheckType, MVT::i32, ++/*451661*/ OPC_MoveParent, ++/*451662*/ OPC_CheckType, MVT::v8i32, ++/*451664*/ OPC_MoveParent, ++/*451665*/ OPC_CheckType, MVT::v8i32, ++/*451667*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*451669*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*451677*/ /*Scope*/ 25|128,1/*153*/, /*->451832*/ ++/*451679*/ OPC_CheckChild0Same, 1, ++/*451681*/ OPC_CheckChild1Same, 0, ++/*451683*/ OPC_MoveParent, ++/*451684*/ OPC_MoveChild1, ++/*451685*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*451688*/ OPC_CheckChild0Integer, 1, ++/*451690*/ OPC_CheckChild0Type, MVT::i32, ++/*451692*/ OPC_CheckChild1Integer, 1, ++/*451694*/ OPC_CheckChild1Type, MVT::i32, ++/*451696*/ OPC_CheckChild2Integer, 1, ++/*451698*/ OPC_CheckChild2Type, MVT::i32, ++/*451700*/ OPC_CheckChild3Integer, 1, ++/*451702*/ OPC_CheckChild3Type, MVT::i32, ++/*451704*/ OPC_CheckChild4Integer, 1, ++/*451706*/ OPC_CheckChild4Type, MVT::i32, ++/*451708*/ OPC_MoveChild5, ++/*451709*/ OPC_CheckInteger, 1, ++/*451711*/ OPC_CheckType, MVT::i32, ++/*451713*/ OPC_MoveParent, ++/*451714*/ OPC_MoveChild6, ++/*451715*/ OPC_CheckInteger, 1, ++/*451717*/ OPC_CheckType, MVT::i32, ++/*451719*/ OPC_MoveParent, ++/*451720*/ OPC_MoveChild7, ++/*451721*/ OPC_CheckInteger, 1, ++/*451723*/ OPC_CheckType, MVT::i32, ++/*451725*/ OPC_MoveParent, ++/*451726*/ OPC_MoveParent, ++/*451727*/ OPC_MoveParent, ++/*451728*/ OPC_MoveChild1, ++/*451729*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*451732*/ OPC_CheckChild0Integer, 31, ++/*451734*/ OPC_CheckChild0Type, MVT::i32, ++/*451736*/ OPC_CheckChild1Integer, 31, ++/*451738*/ OPC_CheckChild1Type, MVT::i32, ++/*451740*/ OPC_CheckChild2Integer, 31, ++/*451742*/ OPC_CheckChild2Type, MVT::i32, ++/*451744*/ OPC_CheckChild3Integer, 31, ++/*451746*/ OPC_CheckChild3Type, MVT::i32, ++/*451748*/ OPC_CheckChild4Integer, 31, ++/*451750*/ OPC_CheckChild4Type, MVT::i32, ++/*451752*/ OPC_MoveChild5, ++/*451753*/ OPC_CheckInteger, 31, ++/*451755*/ OPC_CheckType, MVT::i32, ++/*451757*/ OPC_MoveParent, ++/*451758*/ OPC_MoveChild6, ++/*451759*/ OPC_CheckInteger, 31, ++/*451761*/ OPC_CheckType, MVT::i32, ++/*451763*/ OPC_MoveParent, ++/*451764*/ OPC_MoveChild7, ++/*451765*/ OPC_CheckInteger, 31, ++/*451767*/ OPC_CheckType, MVT::i32, ++/*451769*/ OPC_MoveParent, ++/*451770*/ OPC_CheckType, MVT::v8i32, ++/*451772*/ OPC_MoveParent, ++/*451773*/ OPC_MoveParent, ++/*451774*/ OPC_MoveParent, ++/*451775*/ OPC_MoveChild1, ++/*451776*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*451779*/ OPC_CheckChild0Integer, 1, ++/*451781*/ OPC_CheckChild0Type, MVT::i32, ++/*451783*/ OPC_CheckChild1Integer, 1, ++/*451785*/ OPC_CheckChild1Type, MVT::i32, ++/*451787*/ OPC_CheckChild2Integer, 1, ++/*451789*/ OPC_CheckChild2Type, MVT::i32, ++/*451791*/ OPC_CheckChild3Integer, 1, ++/*451793*/ OPC_CheckChild3Type, MVT::i32, ++/*451795*/ OPC_CheckChild4Integer, 1, ++/*451797*/ OPC_CheckChild4Type, MVT::i32, ++/*451799*/ OPC_MoveChild5, ++/*451800*/ OPC_CheckInteger, 1, ++/*451802*/ OPC_CheckType, MVT::i32, ++/*451804*/ OPC_MoveParent, ++/*451805*/ OPC_MoveChild6, ++/*451806*/ OPC_CheckInteger, 1, ++/*451808*/ OPC_CheckType, MVT::i32, ++/*451810*/ OPC_MoveParent, ++/*451811*/ OPC_MoveChild7, ++/*451812*/ OPC_CheckInteger, 1, ++/*451814*/ OPC_CheckType, MVT::i32, ++/*451816*/ OPC_MoveParent, ++/*451817*/ OPC_CheckType, MVT::v8i32, ++/*451819*/ OPC_MoveParent, ++/*451820*/ OPC_CheckType, MVT::v8i32, ++/*451822*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*451824*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*451832*/ 0, /*End of Scope*/ ++/*451833*/ /*Scope*/ 58|128,2/*314*/, /*->452149*/ ++/*451835*/ OPC_CheckChild0Same, 1, ++/*451837*/ OPC_MoveChild1, ++/*451838*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*451841*/ OPC_Scope, 23|128,1/*151*/, /*->451995*/ // 2 children in Scope ++/*451844*/ OPC_MoveChild0, ++/*451845*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*451848*/ OPC_CheckChild0Integer, 1, ++/*451850*/ OPC_CheckChild0Type, MVT::i32, ++/*451852*/ OPC_CheckChild1Integer, 1, ++/*451854*/ OPC_CheckChild1Type, MVT::i32, ++/*451856*/ OPC_CheckChild2Integer, 1, ++/*451858*/ OPC_CheckChild2Type, MVT::i32, ++/*451860*/ OPC_CheckChild3Integer, 1, ++/*451862*/ OPC_CheckChild3Type, MVT::i32, ++/*451864*/ OPC_CheckChild4Integer, 1, ++/*451866*/ OPC_CheckChild4Type, MVT::i32, ++/*451868*/ OPC_MoveChild5, ++/*451869*/ OPC_CheckInteger, 1, ++/*451871*/ OPC_CheckType, MVT::i32, ++/*451873*/ OPC_MoveParent, ++/*451874*/ OPC_MoveChild6, ++/*451875*/ OPC_CheckInteger, 1, ++/*451877*/ OPC_CheckType, MVT::i32, ++/*451879*/ OPC_MoveParent, ++/*451880*/ OPC_MoveChild7, ++/*451881*/ OPC_CheckInteger, 1, ++/*451883*/ OPC_CheckType, MVT::i32, ++/*451885*/ OPC_MoveParent, ++/*451886*/ OPC_MoveParent, ++/*451887*/ OPC_CheckChild1Same, 0, ++/*451889*/ OPC_MoveParent, ++/*451890*/ OPC_MoveParent, ++/*451891*/ OPC_MoveChild1, ++/*451892*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*451895*/ OPC_CheckChild0Integer, 31, ++/*451897*/ OPC_CheckChild0Type, MVT::i32, ++/*451899*/ OPC_CheckChild1Integer, 31, ++/*451901*/ OPC_CheckChild1Type, MVT::i32, ++/*451903*/ OPC_CheckChild2Integer, 31, ++/*451905*/ OPC_CheckChild2Type, MVT::i32, ++/*451907*/ OPC_CheckChild3Integer, 31, ++/*451909*/ OPC_CheckChild3Type, MVT::i32, ++/*451911*/ OPC_CheckChild4Integer, 31, ++/*451913*/ OPC_CheckChild4Type, MVT::i32, ++/*451915*/ OPC_MoveChild5, ++/*451916*/ OPC_CheckInteger, 31, ++/*451918*/ OPC_CheckType, MVT::i32, ++/*451920*/ OPC_MoveParent, ++/*451921*/ OPC_MoveChild6, ++/*451922*/ OPC_CheckInteger, 31, ++/*451924*/ OPC_CheckType, MVT::i32, ++/*451926*/ OPC_MoveParent, ++/*451927*/ OPC_MoveChild7, ++/*451928*/ OPC_CheckInteger, 31, ++/*451930*/ OPC_CheckType, MVT::i32, ++/*451932*/ OPC_MoveParent, ++/*451933*/ OPC_CheckType, MVT::v8i32, ++/*451935*/ OPC_MoveParent, ++/*451936*/ OPC_MoveParent, ++/*451937*/ OPC_MoveParent, ++/*451938*/ OPC_MoveChild1, ++/*451939*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*451942*/ OPC_CheckChild0Integer, 1, ++/*451944*/ OPC_CheckChild0Type, MVT::i32, ++/*451946*/ OPC_CheckChild1Integer, 1, ++/*451948*/ OPC_CheckChild1Type, MVT::i32, ++/*451950*/ OPC_CheckChild2Integer, 1, ++/*451952*/ OPC_CheckChild2Type, MVT::i32, ++/*451954*/ OPC_CheckChild3Integer, 1, ++/*451956*/ OPC_CheckChild3Type, MVT::i32, ++/*451958*/ OPC_CheckChild4Integer, 1, ++/*451960*/ OPC_CheckChild4Type, MVT::i32, ++/*451962*/ OPC_MoveChild5, ++/*451963*/ OPC_CheckInteger, 1, ++/*451965*/ OPC_CheckType, MVT::i32, ++/*451967*/ OPC_MoveParent, ++/*451968*/ OPC_MoveChild6, ++/*451969*/ OPC_CheckInteger, 1, ++/*451971*/ OPC_CheckType, MVT::i32, ++/*451973*/ OPC_MoveParent, ++/*451974*/ OPC_MoveChild7, ++/*451975*/ OPC_CheckInteger, 1, ++/*451977*/ OPC_CheckType, MVT::i32, ++/*451979*/ OPC_MoveParent, ++/*451980*/ OPC_CheckType, MVT::v8i32, ++/*451982*/ OPC_MoveParent, ++/*451983*/ OPC_CheckType, MVT::v8i32, ++/*451985*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*451987*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*451995*/ /*Scope*/ 23|128,1/*151*/, /*->452148*/ ++/*451997*/ OPC_CheckChild0Same, 0, ++/*451999*/ OPC_MoveChild1, ++/*452000*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*452003*/ OPC_CheckChild0Integer, 1, ++/*452005*/ OPC_CheckChild0Type, MVT::i32, ++/*452007*/ OPC_CheckChild1Integer, 1, ++/*452009*/ OPC_CheckChild1Type, MVT::i32, ++/*452011*/ OPC_CheckChild2Integer, 1, ++/*452013*/ OPC_CheckChild2Type, MVT::i32, ++/*452015*/ OPC_CheckChild3Integer, 1, ++/*452017*/ OPC_CheckChild3Type, MVT::i32, ++/*452019*/ OPC_CheckChild4Integer, 1, ++/*452021*/ OPC_CheckChild4Type, MVT::i32, ++/*452023*/ OPC_MoveChild5, ++/*452024*/ OPC_CheckInteger, 1, ++/*452026*/ OPC_CheckType, MVT::i32, ++/*452028*/ OPC_MoveParent, ++/*452029*/ OPC_MoveChild6, ++/*452030*/ OPC_CheckInteger, 1, ++/*452032*/ OPC_CheckType, MVT::i32, ++/*452034*/ OPC_MoveParent, ++/*452035*/ OPC_MoveChild7, ++/*452036*/ OPC_CheckInteger, 1, ++/*452038*/ OPC_CheckType, MVT::i32, ++/*452040*/ OPC_MoveParent, ++/*452041*/ OPC_MoveParent, ++/*452042*/ OPC_MoveParent, ++/*452043*/ OPC_MoveParent, ++/*452044*/ OPC_MoveChild1, ++/*452045*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*452048*/ OPC_CheckChild0Integer, 31, ++/*452050*/ OPC_CheckChild0Type, MVT::i32, ++/*452052*/ OPC_CheckChild1Integer, 31, ++/*452054*/ OPC_CheckChild1Type, MVT::i32, ++/*452056*/ OPC_CheckChild2Integer, 31, ++/*452058*/ OPC_CheckChild2Type, MVT::i32, ++/*452060*/ OPC_CheckChild3Integer, 31, ++/*452062*/ OPC_CheckChild3Type, MVT::i32, ++/*452064*/ OPC_CheckChild4Integer, 31, ++/*452066*/ OPC_CheckChild4Type, MVT::i32, ++/*452068*/ OPC_MoveChild5, ++/*452069*/ OPC_CheckInteger, 31, ++/*452071*/ OPC_CheckType, MVT::i32, ++/*452073*/ OPC_MoveParent, ++/*452074*/ OPC_MoveChild6, ++/*452075*/ OPC_CheckInteger, 31, ++/*452077*/ OPC_CheckType, MVT::i32, ++/*452079*/ OPC_MoveParent, ++/*452080*/ OPC_MoveChild7, ++/*452081*/ OPC_CheckInteger, 31, ++/*452083*/ OPC_CheckType, MVT::i32, ++/*452085*/ OPC_MoveParent, ++/*452086*/ OPC_CheckType, MVT::v8i32, ++/*452088*/ OPC_MoveParent, ++/*452089*/ OPC_MoveParent, ++/*452090*/ OPC_MoveParent, ++/*452091*/ OPC_MoveChild1, ++/*452092*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*452095*/ OPC_CheckChild0Integer, 1, ++/*452097*/ OPC_CheckChild0Type, MVT::i32, ++/*452099*/ OPC_CheckChild1Integer, 1, ++/*452101*/ OPC_CheckChild1Type, MVT::i32, ++/*452103*/ OPC_CheckChild2Integer, 1, ++/*452105*/ OPC_CheckChild2Type, MVT::i32, ++/*452107*/ OPC_CheckChild3Integer, 1, ++/*452109*/ OPC_CheckChild3Type, MVT::i32, ++/*452111*/ OPC_CheckChild4Integer, 1, ++/*452113*/ OPC_CheckChild4Type, MVT::i32, ++/*452115*/ OPC_MoveChild5, ++/*452116*/ OPC_CheckInteger, 1, ++/*452118*/ OPC_CheckType, MVT::i32, ++/*452120*/ OPC_MoveParent, ++/*452121*/ OPC_MoveChild6, ++/*452122*/ OPC_CheckInteger, 1, ++/*452124*/ OPC_CheckType, MVT::i32, ++/*452126*/ OPC_MoveParent, ++/*452127*/ OPC_MoveChild7, ++/*452128*/ OPC_CheckInteger, 1, ++/*452130*/ OPC_CheckType, MVT::i32, ++/*452132*/ OPC_MoveParent, ++/*452133*/ OPC_CheckType, MVT::v8i32, ++/*452135*/ OPC_MoveParent, ++/*452136*/ OPC_CheckType, MVT::v8i32, ++/*452138*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*452140*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*452148*/ 0, /*End of Scope*/ ++/*452149*/ /*Scope*/ 58|128,2/*314*/, /*->452465*/ ++/*452151*/ OPC_CheckChild0Same, 0, ++/*452153*/ OPC_MoveChild1, ++/*452154*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*452157*/ OPC_Scope, 23|128,1/*151*/, /*->452311*/ // 2 children in Scope ++/*452160*/ OPC_MoveChild0, ++/*452161*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*452164*/ OPC_CheckChild0Integer, 1, ++/*452166*/ OPC_CheckChild0Type, MVT::i32, ++/*452168*/ OPC_CheckChild1Integer, 1, ++/*452170*/ OPC_CheckChild1Type, MVT::i32, ++/*452172*/ OPC_CheckChild2Integer, 1, ++/*452174*/ OPC_CheckChild2Type, MVT::i32, ++/*452176*/ OPC_CheckChild3Integer, 1, ++/*452178*/ OPC_CheckChild3Type, MVT::i32, ++/*452180*/ OPC_CheckChild4Integer, 1, ++/*452182*/ OPC_CheckChild4Type, MVT::i32, ++/*452184*/ OPC_MoveChild5, ++/*452185*/ OPC_CheckInteger, 1, ++/*452187*/ OPC_CheckType, MVT::i32, ++/*452189*/ OPC_MoveParent, ++/*452190*/ OPC_MoveChild6, ++/*452191*/ OPC_CheckInteger, 1, ++/*452193*/ OPC_CheckType, MVT::i32, ++/*452195*/ OPC_MoveParent, ++/*452196*/ OPC_MoveChild7, ++/*452197*/ OPC_CheckInteger, 1, ++/*452199*/ OPC_CheckType, MVT::i32, ++/*452201*/ OPC_MoveParent, ++/*452202*/ OPC_MoveParent, ++/*452203*/ OPC_CheckChild1Same, 1, ++/*452205*/ OPC_MoveParent, ++/*452206*/ OPC_MoveParent, ++/*452207*/ OPC_MoveChild1, ++/*452208*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*452211*/ OPC_CheckChild0Integer, 31, ++/*452213*/ OPC_CheckChild0Type, MVT::i32, ++/*452215*/ OPC_CheckChild1Integer, 31, ++/*452217*/ OPC_CheckChild1Type, MVT::i32, ++/*452219*/ OPC_CheckChild2Integer, 31, ++/*452221*/ OPC_CheckChild2Type, MVT::i32, ++/*452223*/ OPC_CheckChild3Integer, 31, ++/*452225*/ OPC_CheckChild3Type, MVT::i32, ++/*452227*/ OPC_CheckChild4Integer, 31, ++/*452229*/ OPC_CheckChild4Type, MVT::i32, ++/*452231*/ OPC_MoveChild5, ++/*452232*/ OPC_CheckInteger, 31, ++/*452234*/ OPC_CheckType, MVT::i32, ++/*452236*/ OPC_MoveParent, ++/*452237*/ OPC_MoveChild6, ++/*452238*/ OPC_CheckInteger, 31, ++/*452240*/ OPC_CheckType, MVT::i32, ++/*452242*/ OPC_MoveParent, ++/*452243*/ OPC_MoveChild7, ++/*452244*/ OPC_CheckInteger, 31, ++/*452246*/ OPC_CheckType, MVT::i32, ++/*452248*/ OPC_MoveParent, ++/*452249*/ OPC_CheckType, MVT::v8i32, ++/*452251*/ OPC_MoveParent, ++/*452252*/ OPC_MoveParent, ++/*452253*/ OPC_MoveParent, ++/*452254*/ OPC_MoveChild1, ++/*452255*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*452258*/ OPC_CheckChild0Integer, 1, ++/*452260*/ OPC_CheckChild0Type, MVT::i32, ++/*452262*/ OPC_CheckChild1Integer, 1, ++/*452264*/ OPC_CheckChild1Type, MVT::i32, ++/*452266*/ OPC_CheckChild2Integer, 1, ++/*452268*/ OPC_CheckChild2Type, MVT::i32, ++/*452270*/ OPC_CheckChild3Integer, 1, ++/*452272*/ OPC_CheckChild3Type, MVT::i32, ++/*452274*/ OPC_CheckChild4Integer, 1, ++/*452276*/ OPC_CheckChild4Type, MVT::i32, ++/*452278*/ OPC_MoveChild5, ++/*452279*/ OPC_CheckInteger, 1, ++/*452281*/ OPC_CheckType, MVT::i32, ++/*452283*/ OPC_MoveParent, ++/*452284*/ OPC_MoveChild6, ++/*452285*/ OPC_CheckInteger, 1, ++/*452287*/ OPC_CheckType, MVT::i32, ++/*452289*/ OPC_MoveParent, ++/*452290*/ OPC_MoveChild7, ++/*452291*/ OPC_CheckInteger, 1, ++/*452293*/ OPC_CheckType, MVT::i32, ++/*452295*/ OPC_MoveParent, ++/*452296*/ OPC_CheckType, MVT::v8i32, ++/*452298*/ OPC_MoveParent, ++/*452299*/ OPC_CheckType, MVT::v8i32, ++/*452301*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*452303*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*452311*/ /*Scope*/ 23|128,1/*151*/, /*->452464*/ ++/*452313*/ OPC_CheckChild0Same, 1, ++/*452315*/ OPC_MoveChild1, ++/*452316*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*452319*/ OPC_CheckChild0Integer, 1, ++/*452321*/ OPC_CheckChild0Type, MVT::i32, ++/*452323*/ OPC_CheckChild1Integer, 1, ++/*452325*/ OPC_CheckChild1Type, MVT::i32, ++/*452327*/ OPC_CheckChild2Integer, 1, ++/*452329*/ OPC_CheckChild2Type, MVT::i32, ++/*452331*/ OPC_CheckChild3Integer, 1, ++/*452333*/ OPC_CheckChild3Type, MVT::i32, ++/*452335*/ OPC_CheckChild4Integer, 1, ++/*452337*/ OPC_CheckChild4Type, MVT::i32, ++/*452339*/ OPC_MoveChild5, ++/*452340*/ OPC_CheckInteger, 1, ++/*452342*/ OPC_CheckType, MVT::i32, ++/*452344*/ OPC_MoveParent, ++/*452345*/ OPC_MoveChild6, ++/*452346*/ OPC_CheckInteger, 1, ++/*452348*/ OPC_CheckType, MVT::i32, ++/*452350*/ OPC_MoveParent, ++/*452351*/ OPC_MoveChild7, ++/*452352*/ OPC_CheckInteger, 1, ++/*452354*/ OPC_CheckType, MVT::i32, ++/*452356*/ OPC_MoveParent, ++/*452357*/ OPC_MoveParent, ++/*452358*/ OPC_MoveParent, ++/*452359*/ OPC_MoveParent, ++/*452360*/ OPC_MoveChild1, ++/*452361*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*452364*/ OPC_CheckChild0Integer, 31, ++/*452366*/ OPC_CheckChild0Type, MVT::i32, ++/*452368*/ OPC_CheckChild1Integer, 31, ++/*452370*/ OPC_CheckChild1Type, MVT::i32, ++/*452372*/ OPC_CheckChild2Integer, 31, ++/*452374*/ OPC_CheckChild2Type, MVT::i32, ++/*452376*/ OPC_CheckChild3Integer, 31, ++/*452378*/ OPC_CheckChild3Type, MVT::i32, ++/*452380*/ OPC_CheckChild4Integer, 31, ++/*452382*/ OPC_CheckChild4Type, MVT::i32, ++/*452384*/ OPC_MoveChild5, ++/*452385*/ OPC_CheckInteger, 31, ++/*452387*/ OPC_CheckType, MVT::i32, ++/*452389*/ OPC_MoveParent, ++/*452390*/ OPC_MoveChild6, ++/*452391*/ OPC_CheckInteger, 31, ++/*452393*/ OPC_CheckType, MVT::i32, ++/*452395*/ OPC_MoveParent, ++/*452396*/ OPC_MoveChild7, ++/*452397*/ OPC_CheckInteger, 31, ++/*452399*/ OPC_CheckType, MVT::i32, ++/*452401*/ OPC_MoveParent, ++/*452402*/ OPC_CheckType, MVT::v8i32, ++/*452404*/ OPC_MoveParent, ++/*452405*/ OPC_MoveParent, ++/*452406*/ OPC_MoveParent, ++/*452407*/ OPC_MoveChild1, ++/*452408*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*452411*/ OPC_CheckChild0Integer, 1, ++/*452413*/ OPC_CheckChild0Type, MVT::i32, ++/*452415*/ OPC_CheckChild1Integer, 1, ++/*452417*/ OPC_CheckChild1Type, MVT::i32, ++/*452419*/ OPC_CheckChild2Integer, 1, ++/*452421*/ OPC_CheckChild2Type, MVT::i32, ++/*452423*/ OPC_CheckChild3Integer, 1, ++/*452425*/ OPC_CheckChild3Type, MVT::i32, ++/*452427*/ OPC_CheckChild4Integer, 1, ++/*452429*/ OPC_CheckChild4Type, MVT::i32, ++/*452431*/ OPC_MoveChild5, ++/*452432*/ OPC_CheckInteger, 1, ++/*452434*/ OPC_CheckType, MVT::i32, ++/*452436*/ OPC_MoveParent, ++/*452437*/ OPC_MoveChild6, ++/*452438*/ OPC_CheckInteger, 1, ++/*452440*/ OPC_CheckType, MVT::i32, ++/*452442*/ OPC_MoveParent, ++/*452443*/ OPC_MoveChild7, ++/*452444*/ OPC_CheckInteger, 1, ++/*452446*/ OPC_CheckType, MVT::i32, ++/*452448*/ OPC_MoveParent, ++/*452449*/ OPC_CheckType, MVT::v8i32, ++/*452451*/ OPC_MoveParent, ++/*452452*/ OPC_CheckType, MVT::v8i32, ++/*452454*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*452456*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*452464*/ 0, /*End of Scope*/ ++/*452465*/ /*Scope*/ 15|128,2/*271*/, /*->452738*/ ++/*452467*/ OPC_MoveChild0, ++/*452468*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*452471*/ OPC_CheckChild0Integer, 1, ++/*452473*/ OPC_CheckChild0Type, MVT::i32, ++/*452475*/ OPC_CheckChild1Integer, 1, ++/*452477*/ OPC_CheckChild1Type, MVT::i32, ++/*452479*/ OPC_CheckChild2Integer, 1, ++/*452481*/ OPC_CheckChild2Type, MVT::i32, ++/*452483*/ OPC_CheckChild3Integer, 1, ++/*452485*/ OPC_CheckChild3Type, MVT::i32, ++/*452487*/ OPC_CheckChild4Integer, 1, ++/*452489*/ OPC_CheckChild4Type, MVT::i32, ++/*452491*/ OPC_MoveChild5, ++/*452492*/ OPC_CheckInteger, 1, ++/*452494*/ OPC_CheckType, MVT::i32, ++/*452496*/ OPC_MoveParent, ++/*452497*/ OPC_MoveChild6, ++/*452498*/ OPC_CheckInteger, 1, ++/*452500*/ OPC_CheckType, MVT::i32, ++/*452502*/ OPC_MoveParent, ++/*452503*/ OPC_MoveChild7, ++/*452504*/ OPC_CheckInteger, 1, ++/*452506*/ OPC_CheckType, MVT::i32, ++/*452508*/ OPC_MoveParent, ++/*452509*/ OPC_MoveParent, ++/*452510*/ OPC_MoveChild1, ++/*452511*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*452514*/ OPC_Scope, 110, /*->452626*/ // 2 children in Scope ++/*452516*/ OPC_CheckChild0Same, 0, ++/*452518*/ OPC_CheckChild1Same, 1, ++/*452520*/ OPC_MoveParent, ++/*452521*/ OPC_MoveParent, ++/*452522*/ OPC_MoveChild1, ++/*452523*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*452526*/ OPC_CheckChild0Integer, 31, ++/*452528*/ OPC_CheckChild0Type, MVT::i32, ++/*452530*/ OPC_CheckChild1Integer, 31, ++/*452532*/ OPC_CheckChild1Type, MVT::i32, ++/*452534*/ OPC_CheckChild2Integer, 31, ++/*452536*/ OPC_CheckChild2Type, MVT::i32, ++/*452538*/ OPC_CheckChild3Integer, 31, ++/*452540*/ OPC_CheckChild3Type, MVT::i32, ++/*452542*/ OPC_CheckChild4Integer, 31, ++/*452544*/ OPC_CheckChild4Type, MVT::i32, ++/*452546*/ OPC_MoveChild5, ++/*452547*/ OPC_CheckInteger, 31, ++/*452549*/ OPC_CheckType, MVT::i32, ++/*452551*/ OPC_MoveParent, ++/*452552*/ OPC_MoveChild6, ++/*452553*/ OPC_CheckInteger, 31, ++/*452555*/ OPC_CheckType, MVT::i32, ++/*452557*/ OPC_MoveParent, ++/*452558*/ OPC_MoveChild7, ++/*452559*/ OPC_CheckInteger, 31, ++/*452561*/ OPC_CheckType, MVT::i32, ++/*452563*/ OPC_MoveParent, ++/*452564*/ OPC_CheckType, MVT::v8i32, ++/*452566*/ OPC_MoveParent, ++/*452567*/ OPC_MoveParent, ++/*452568*/ OPC_MoveParent, ++/*452569*/ OPC_MoveChild1, ++/*452570*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*452573*/ OPC_CheckChild0Integer, 1, ++/*452575*/ OPC_CheckChild0Type, MVT::i32, ++/*452577*/ OPC_CheckChild1Integer, 1, ++/*452579*/ OPC_CheckChild1Type, MVT::i32, ++/*452581*/ OPC_CheckChild2Integer, 1, ++/*452583*/ OPC_CheckChild2Type, MVT::i32, ++/*452585*/ OPC_CheckChild3Integer, 1, ++/*452587*/ OPC_CheckChild3Type, MVT::i32, ++/*452589*/ OPC_CheckChild4Integer, 1, ++/*452591*/ OPC_CheckChild4Type, MVT::i32, ++/*452593*/ OPC_MoveChild5, ++/*452594*/ OPC_CheckInteger, 1, ++/*452596*/ OPC_CheckType, MVT::i32, ++/*452598*/ OPC_MoveParent, ++/*452599*/ OPC_MoveChild6, ++/*452600*/ OPC_CheckInteger, 1, ++/*452602*/ OPC_CheckType, MVT::i32, ++/*452604*/ OPC_MoveParent, ++/*452605*/ OPC_MoveChild7, ++/*452606*/ OPC_CheckInteger, 1, ++/*452608*/ OPC_CheckType, MVT::i32, ++/*452610*/ OPC_MoveParent, ++/*452611*/ OPC_CheckType, MVT::v8i32, ++/*452613*/ OPC_MoveParent, ++/*452614*/ OPC_CheckType, MVT::v8i32, ++/*452616*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*452618*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*452626*/ /*Scope*/ 110, /*->452737*/ ++/*452627*/ OPC_CheckChild0Same, 1, ++/*452629*/ OPC_CheckChild1Same, 0, ++/*452631*/ OPC_MoveParent, ++/*452632*/ OPC_MoveParent, ++/*452633*/ OPC_MoveChild1, ++/*452634*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*452637*/ OPC_CheckChild0Integer, 31, ++/*452639*/ OPC_CheckChild0Type, MVT::i32, ++/*452641*/ OPC_CheckChild1Integer, 31, ++/*452643*/ OPC_CheckChild1Type, MVT::i32, ++/*452645*/ OPC_CheckChild2Integer, 31, ++/*452647*/ OPC_CheckChild2Type, MVT::i32, ++/*452649*/ OPC_CheckChild3Integer, 31, ++/*452651*/ OPC_CheckChild3Type, MVT::i32, ++/*452653*/ OPC_CheckChild4Integer, 31, ++/*452655*/ OPC_CheckChild4Type, MVT::i32, ++/*452657*/ OPC_MoveChild5, ++/*452658*/ OPC_CheckInteger, 31, ++/*452660*/ OPC_CheckType, MVT::i32, ++/*452662*/ OPC_MoveParent, ++/*452663*/ OPC_MoveChild6, ++/*452664*/ OPC_CheckInteger, 31, ++/*452666*/ OPC_CheckType, MVT::i32, ++/*452668*/ OPC_MoveParent, ++/*452669*/ OPC_MoveChild7, ++/*452670*/ OPC_CheckInteger, 31, ++/*452672*/ OPC_CheckType, MVT::i32, ++/*452674*/ OPC_MoveParent, ++/*452675*/ OPC_CheckType, MVT::v8i32, ++/*452677*/ OPC_MoveParent, ++/*452678*/ OPC_MoveParent, ++/*452679*/ OPC_MoveParent, ++/*452680*/ OPC_MoveChild1, ++/*452681*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*452684*/ OPC_CheckChild0Integer, 1, ++/*452686*/ OPC_CheckChild0Type, MVT::i32, ++/*452688*/ OPC_CheckChild1Integer, 1, ++/*452690*/ OPC_CheckChild1Type, MVT::i32, ++/*452692*/ OPC_CheckChild2Integer, 1, ++/*452694*/ OPC_CheckChild2Type, MVT::i32, ++/*452696*/ OPC_CheckChild3Integer, 1, ++/*452698*/ OPC_CheckChild3Type, MVT::i32, ++/*452700*/ OPC_CheckChild4Integer, 1, ++/*452702*/ OPC_CheckChild4Type, MVT::i32, ++/*452704*/ OPC_MoveChild5, ++/*452705*/ OPC_CheckInteger, 1, ++/*452707*/ OPC_CheckType, MVT::i32, ++/*452709*/ OPC_MoveParent, ++/*452710*/ OPC_MoveChild6, ++/*452711*/ OPC_CheckInteger, 1, ++/*452713*/ OPC_CheckType, MVT::i32, ++/*452715*/ OPC_MoveParent, ++/*452716*/ OPC_MoveChild7, ++/*452717*/ OPC_CheckInteger, 1, ++/*452719*/ OPC_CheckType, MVT::i32, ++/*452721*/ OPC_MoveParent, ++/*452722*/ OPC_CheckType, MVT::v8i32, ++/*452724*/ OPC_MoveParent, ++/*452725*/ OPC_CheckType, MVT::v8i32, ++/*452727*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*452729*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*452737*/ 0, /*End of Scope*/ ++/*452738*/ 0, /*End of Scope*/ ++/*452739*/ 0, /*End of Scope*/ ++/*452740*/ /*Scope*/ 50|128,28/*3634*/, /*->456376*/ ++/*452742*/ OPC_MoveChild0, ++/*452743*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*452746*/ OPC_CheckChild0Integer, 1, ++/*452748*/ OPC_CheckChild0Type, MVT::i32, ++/*452750*/ OPC_CheckChild1Integer, 1, ++/*452752*/ OPC_CheckChild1Type, MVT::i32, ++/*452754*/ OPC_CheckChild2Integer, 1, ++/*452756*/ OPC_CheckChild2Type, MVT::i32, ++/*452758*/ OPC_CheckChild3Integer, 1, ++/*452760*/ OPC_CheckChild3Type, MVT::i32, ++/*452762*/ OPC_CheckChild4Integer, 1, ++/*452764*/ OPC_CheckChild4Type, MVT::i32, ++/*452766*/ OPC_MoveChild5, ++/*452767*/ OPC_CheckInteger, 1, ++/*452769*/ OPC_CheckType, MVT::i32, ++/*452771*/ OPC_MoveParent, ++/*452772*/ OPC_MoveChild6, ++/*452773*/ OPC_CheckInteger, 1, ++/*452775*/ OPC_CheckType, MVT::i32, ++/*452777*/ OPC_MoveParent, ++/*452778*/ OPC_MoveChild7, ++/*452779*/ OPC_CheckInteger, 1, ++/*452781*/ OPC_CheckType, MVT::i32, ++/*452783*/ OPC_MoveParent, ++/*452784*/ OPC_MoveParent, ++/*452785*/ OPC_MoveChild1, ++/*452786*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*452789*/ OPC_RecordChild0, // #0 = $a ++/*452790*/ OPC_RecordChild1, // #1 = $b ++/*452791*/ OPC_MoveParent, ++/*452792*/ OPC_MoveParent, ++/*452793*/ OPC_MoveChild1, ++/*452794*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*452797*/ OPC_MoveChild0, ++/*452798*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*452801*/ OPC_Scope, 40|128,7/*936*/, /*->453740*/ // 7 children in Scope ++/*452804*/ OPC_MoveChild0, ++/*452805*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*452808*/ OPC_Scope, 25|128,1/*153*/, /*->452964*/ // 6 children in Scope ++/*452811*/ OPC_MoveChild0, ++/*452812*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*452815*/ OPC_CheckChild0Integer, 1, ++/*452817*/ OPC_CheckChild0Type, MVT::i32, ++/*452819*/ OPC_CheckChild1Integer, 1, ++/*452821*/ OPC_CheckChild1Type, MVT::i32, ++/*452823*/ OPC_CheckChild2Integer, 1, ++/*452825*/ OPC_CheckChild2Type, MVT::i32, ++/*452827*/ OPC_CheckChild3Integer, 1, ++/*452829*/ OPC_CheckChild3Type, MVT::i32, ++/*452831*/ OPC_CheckChild4Integer, 1, ++/*452833*/ OPC_CheckChild4Type, MVT::i32, ++/*452835*/ OPC_MoveChild5, ++/*452836*/ OPC_CheckInteger, 1, ++/*452838*/ OPC_CheckType, MVT::i32, ++/*452840*/ OPC_MoveParent, ++/*452841*/ OPC_MoveChild6, ++/*452842*/ OPC_CheckInteger, 1, ++/*452844*/ OPC_CheckType, MVT::i32, ++/*452846*/ OPC_MoveParent, ++/*452847*/ OPC_MoveChild7, ++/*452848*/ OPC_CheckInteger, 1, ++/*452850*/ OPC_CheckType, MVT::i32, ++/*452852*/ OPC_MoveParent, ++/*452853*/ OPC_MoveParent, ++/*452854*/ OPC_CheckChild1Same, 0, ++/*452856*/ OPC_MoveParent, ++/*452857*/ OPC_CheckChild1Same, 1, ++/*452859*/ OPC_MoveParent, ++/*452860*/ OPC_MoveChild1, ++/*452861*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*452864*/ OPC_CheckChild0Integer, 31, ++/*452866*/ OPC_CheckChild0Type, MVT::i32, ++/*452868*/ OPC_CheckChild1Integer, 31, ++/*452870*/ OPC_CheckChild1Type, MVT::i32, ++/*452872*/ OPC_CheckChild2Integer, 31, ++/*452874*/ OPC_CheckChild2Type, MVT::i32, ++/*452876*/ OPC_CheckChild3Integer, 31, ++/*452878*/ OPC_CheckChild3Type, MVT::i32, ++/*452880*/ OPC_CheckChild4Integer, 31, ++/*452882*/ OPC_CheckChild4Type, MVT::i32, ++/*452884*/ OPC_MoveChild5, ++/*452885*/ OPC_CheckInteger, 31, ++/*452887*/ OPC_CheckType, MVT::i32, ++/*452889*/ OPC_MoveParent, ++/*452890*/ OPC_MoveChild6, ++/*452891*/ OPC_CheckInteger, 31, ++/*452893*/ OPC_CheckType, MVT::i32, ++/*452895*/ OPC_MoveParent, ++/*452896*/ OPC_MoveChild7, ++/*452897*/ OPC_CheckInteger, 31, ++/*452899*/ OPC_CheckType, MVT::i32, ++/*452901*/ OPC_MoveParent, ++/*452902*/ OPC_CheckType, MVT::v8i32, ++/*452904*/ OPC_MoveParent, ++/*452905*/ OPC_MoveParent, ++/*452906*/ OPC_MoveParent, ++/*452907*/ OPC_MoveChild1, ++/*452908*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*452911*/ OPC_CheckChild0Integer, 1, ++/*452913*/ OPC_CheckChild0Type, MVT::i32, ++/*452915*/ OPC_CheckChild1Integer, 1, ++/*452917*/ OPC_CheckChild1Type, MVT::i32, ++/*452919*/ OPC_CheckChild2Integer, 1, ++/*452921*/ OPC_CheckChild2Type, MVT::i32, ++/*452923*/ OPC_CheckChild3Integer, 1, ++/*452925*/ OPC_CheckChild3Type, MVT::i32, ++/*452927*/ OPC_CheckChild4Integer, 1, ++/*452929*/ OPC_CheckChild4Type, MVT::i32, ++/*452931*/ OPC_MoveChild5, ++/*452932*/ OPC_CheckInteger, 1, ++/*452934*/ OPC_CheckType, MVT::i32, ++/*452936*/ OPC_MoveParent, ++/*452937*/ OPC_MoveChild6, ++/*452938*/ OPC_CheckInteger, 1, ++/*452940*/ OPC_CheckType, MVT::i32, ++/*452942*/ OPC_MoveParent, ++/*452943*/ OPC_MoveChild7, ++/*452944*/ OPC_CheckInteger, 1, ++/*452946*/ OPC_CheckType, MVT::i32, ++/*452948*/ OPC_MoveParent, ++/*452949*/ OPC_CheckType, MVT::v8i32, ++/*452951*/ OPC_MoveParent, ++/*452952*/ OPC_CheckType, MVT::v8i32, ++/*452954*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*452956*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b)), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a), LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*452964*/ /*Scope*/ 25|128,1/*153*/, /*->453119*/ ++/*452966*/ OPC_CheckChild0Same, 0, ++/*452968*/ OPC_MoveChild1, ++/*452969*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*452972*/ OPC_CheckChild0Integer, 1, ++/*452974*/ OPC_CheckChild0Type, MVT::i32, ++/*452976*/ OPC_CheckChild1Integer, 1, ++/*452978*/ OPC_CheckChild1Type, MVT::i32, ++/*452980*/ OPC_CheckChild2Integer, 1, ++/*452982*/ OPC_CheckChild2Type, MVT::i32, ++/*452984*/ OPC_CheckChild3Integer, 1, ++/*452986*/ OPC_CheckChild3Type, MVT::i32, ++/*452988*/ OPC_CheckChild4Integer, 1, ++/*452990*/ OPC_CheckChild4Type, MVT::i32, ++/*452992*/ OPC_MoveChild5, ++/*452993*/ OPC_CheckInteger, 1, ++/*452995*/ OPC_CheckType, MVT::i32, ++/*452997*/ OPC_MoveParent, ++/*452998*/ OPC_MoveChild6, ++/*452999*/ OPC_CheckInteger, 1, ++/*453001*/ OPC_CheckType, MVT::i32, ++/*453003*/ OPC_MoveParent, ++/*453004*/ OPC_MoveChild7, ++/*453005*/ OPC_CheckInteger, 1, ++/*453007*/ OPC_CheckType, MVT::i32, ++/*453009*/ OPC_MoveParent, ++/*453010*/ OPC_MoveParent, ++/*453011*/ OPC_MoveParent, ++/*453012*/ OPC_CheckChild1Same, 1, ++/*453014*/ OPC_MoveParent, ++/*453015*/ OPC_MoveChild1, ++/*453016*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*453019*/ OPC_CheckChild0Integer, 31, ++/*453021*/ OPC_CheckChild0Type, MVT::i32, ++/*453023*/ OPC_CheckChild1Integer, 31, ++/*453025*/ OPC_CheckChild1Type, MVT::i32, ++/*453027*/ OPC_CheckChild2Integer, 31, ++/*453029*/ OPC_CheckChild2Type, MVT::i32, ++/*453031*/ OPC_CheckChild3Integer, 31, ++/*453033*/ OPC_CheckChild3Type, MVT::i32, ++/*453035*/ OPC_CheckChild4Integer, 31, ++/*453037*/ OPC_CheckChild4Type, MVT::i32, ++/*453039*/ OPC_MoveChild5, ++/*453040*/ OPC_CheckInteger, 31, ++/*453042*/ OPC_CheckType, MVT::i32, ++/*453044*/ OPC_MoveParent, ++/*453045*/ OPC_MoveChild6, ++/*453046*/ OPC_CheckInteger, 31, ++/*453048*/ OPC_CheckType, MVT::i32, ++/*453050*/ OPC_MoveParent, ++/*453051*/ OPC_MoveChild7, ++/*453052*/ OPC_CheckInteger, 31, ++/*453054*/ OPC_CheckType, MVT::i32, ++/*453056*/ OPC_MoveParent, ++/*453057*/ OPC_CheckType, MVT::v8i32, ++/*453059*/ OPC_MoveParent, ++/*453060*/ OPC_MoveParent, ++/*453061*/ OPC_MoveParent, ++/*453062*/ OPC_MoveChild1, ++/*453063*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*453066*/ OPC_CheckChild0Integer, 1, ++/*453068*/ OPC_CheckChild0Type, MVT::i32, ++/*453070*/ OPC_CheckChild1Integer, 1, ++/*453072*/ OPC_CheckChild1Type, MVT::i32, ++/*453074*/ OPC_CheckChild2Integer, 1, ++/*453076*/ OPC_CheckChild2Type, MVT::i32, ++/*453078*/ OPC_CheckChild3Integer, 1, ++/*453080*/ OPC_CheckChild3Type, MVT::i32, ++/*453082*/ OPC_CheckChild4Integer, 1, ++/*453084*/ OPC_CheckChild4Type, MVT::i32, ++/*453086*/ OPC_MoveChild5, ++/*453087*/ OPC_CheckInteger, 1, ++/*453089*/ OPC_CheckType, MVT::i32, ++/*453091*/ OPC_MoveParent, ++/*453092*/ OPC_MoveChild6, ++/*453093*/ OPC_CheckInteger, 1, ++/*453095*/ OPC_CheckType, MVT::i32, ++/*453097*/ OPC_MoveParent, ++/*453098*/ OPC_MoveChild7, ++/*453099*/ OPC_CheckInteger, 1, ++/*453101*/ OPC_CheckType, MVT::i32, ++/*453103*/ OPC_MoveParent, ++/*453104*/ OPC_CheckType, MVT::v8i32, ++/*453106*/ OPC_MoveParent, ++/*453107*/ OPC_CheckType, MVT::v8i32, ++/*453109*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*453111*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b)), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*453119*/ /*Scope*/ 25|128,1/*153*/, /*->453274*/ ++/*453121*/ OPC_MoveChild0, ++/*453122*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*453125*/ OPC_CheckChild0Integer, 1, ++/*453127*/ OPC_CheckChild0Type, MVT::i32, ++/*453129*/ OPC_CheckChild1Integer, 1, ++/*453131*/ OPC_CheckChild1Type, MVT::i32, ++/*453133*/ OPC_CheckChild2Integer, 1, ++/*453135*/ OPC_CheckChild2Type, MVT::i32, ++/*453137*/ OPC_CheckChild3Integer, 1, ++/*453139*/ OPC_CheckChild3Type, MVT::i32, ++/*453141*/ OPC_CheckChild4Integer, 1, ++/*453143*/ OPC_CheckChild4Type, MVT::i32, ++/*453145*/ OPC_MoveChild5, ++/*453146*/ OPC_CheckInteger, 1, ++/*453148*/ OPC_CheckType, MVT::i32, ++/*453150*/ OPC_MoveParent, ++/*453151*/ OPC_MoveChild6, ++/*453152*/ OPC_CheckInteger, 1, ++/*453154*/ OPC_CheckType, MVT::i32, ++/*453156*/ OPC_MoveParent, ++/*453157*/ OPC_MoveChild7, ++/*453158*/ OPC_CheckInteger, 1, ++/*453160*/ OPC_CheckType, MVT::i32, ++/*453162*/ OPC_MoveParent, ++/*453163*/ OPC_MoveParent, ++/*453164*/ OPC_CheckChild1Same, 1, ++/*453166*/ OPC_MoveParent, ++/*453167*/ OPC_CheckChild1Same, 0, ++/*453169*/ OPC_MoveParent, ++/*453170*/ OPC_MoveChild1, ++/*453171*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*453174*/ OPC_CheckChild0Integer, 31, ++/*453176*/ OPC_CheckChild0Type, MVT::i32, ++/*453178*/ OPC_CheckChild1Integer, 31, ++/*453180*/ OPC_CheckChild1Type, MVT::i32, ++/*453182*/ OPC_CheckChild2Integer, 31, ++/*453184*/ OPC_CheckChild2Type, MVT::i32, ++/*453186*/ OPC_CheckChild3Integer, 31, ++/*453188*/ OPC_CheckChild3Type, MVT::i32, ++/*453190*/ OPC_CheckChild4Integer, 31, ++/*453192*/ OPC_CheckChild4Type, MVT::i32, ++/*453194*/ OPC_MoveChild5, ++/*453195*/ OPC_CheckInteger, 31, ++/*453197*/ OPC_CheckType, MVT::i32, ++/*453199*/ OPC_MoveParent, ++/*453200*/ OPC_MoveChild6, ++/*453201*/ OPC_CheckInteger, 31, ++/*453203*/ OPC_CheckType, MVT::i32, ++/*453205*/ OPC_MoveParent, ++/*453206*/ OPC_MoveChild7, ++/*453207*/ OPC_CheckInteger, 31, ++/*453209*/ OPC_CheckType, MVT::i32, ++/*453211*/ OPC_MoveParent, ++/*453212*/ OPC_CheckType, MVT::v8i32, ++/*453214*/ OPC_MoveParent, ++/*453215*/ OPC_MoveParent, ++/*453216*/ OPC_MoveParent, ++/*453217*/ OPC_MoveChild1, ++/*453218*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*453221*/ OPC_CheckChild0Integer, 1, ++/*453223*/ OPC_CheckChild0Type, MVT::i32, ++/*453225*/ OPC_CheckChild1Integer, 1, ++/*453227*/ OPC_CheckChild1Type, MVT::i32, ++/*453229*/ OPC_CheckChild2Integer, 1, ++/*453231*/ OPC_CheckChild2Type, MVT::i32, ++/*453233*/ OPC_CheckChild3Integer, 1, ++/*453235*/ OPC_CheckChild3Type, MVT::i32, ++/*453237*/ OPC_CheckChild4Integer, 1, ++/*453239*/ OPC_CheckChild4Type, MVT::i32, ++/*453241*/ OPC_MoveChild5, ++/*453242*/ OPC_CheckInteger, 1, ++/*453244*/ OPC_CheckType, MVT::i32, ++/*453246*/ OPC_MoveParent, ++/*453247*/ OPC_MoveChild6, ++/*453248*/ OPC_CheckInteger, 1, ++/*453250*/ OPC_CheckType, MVT::i32, ++/*453252*/ OPC_MoveParent, ++/*453253*/ OPC_MoveChild7, ++/*453254*/ OPC_CheckInteger, 1, ++/*453256*/ OPC_CheckType, MVT::i32, ++/*453258*/ OPC_MoveParent, ++/*453259*/ OPC_CheckType, MVT::v8i32, ++/*453261*/ OPC_MoveParent, ++/*453262*/ OPC_CheckType, MVT::v8i32, ++/*453264*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*453266*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b)), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b), LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*453274*/ /*Scope*/ 25|128,1/*153*/, /*->453429*/ ++/*453276*/ OPC_CheckChild0Same, 1, ++/*453278*/ OPC_MoveChild1, ++/*453279*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*453282*/ OPC_CheckChild0Integer, 1, ++/*453284*/ OPC_CheckChild0Type, MVT::i32, ++/*453286*/ OPC_CheckChild1Integer, 1, ++/*453288*/ OPC_CheckChild1Type, MVT::i32, ++/*453290*/ OPC_CheckChild2Integer, 1, ++/*453292*/ OPC_CheckChild2Type, MVT::i32, ++/*453294*/ OPC_CheckChild3Integer, 1, ++/*453296*/ OPC_CheckChild3Type, MVT::i32, ++/*453298*/ OPC_CheckChild4Integer, 1, ++/*453300*/ OPC_CheckChild4Type, MVT::i32, ++/*453302*/ OPC_MoveChild5, ++/*453303*/ OPC_CheckInteger, 1, ++/*453305*/ OPC_CheckType, MVT::i32, ++/*453307*/ OPC_MoveParent, ++/*453308*/ OPC_MoveChild6, ++/*453309*/ OPC_CheckInteger, 1, ++/*453311*/ OPC_CheckType, MVT::i32, ++/*453313*/ OPC_MoveParent, ++/*453314*/ OPC_MoveChild7, ++/*453315*/ OPC_CheckInteger, 1, ++/*453317*/ OPC_CheckType, MVT::i32, ++/*453319*/ OPC_MoveParent, ++/*453320*/ OPC_MoveParent, ++/*453321*/ OPC_MoveParent, ++/*453322*/ OPC_CheckChild1Same, 0, ++/*453324*/ OPC_MoveParent, ++/*453325*/ OPC_MoveChild1, ++/*453326*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*453329*/ OPC_CheckChild0Integer, 31, ++/*453331*/ OPC_CheckChild0Type, MVT::i32, ++/*453333*/ OPC_CheckChild1Integer, 31, ++/*453335*/ OPC_CheckChild1Type, MVT::i32, ++/*453337*/ OPC_CheckChild2Integer, 31, ++/*453339*/ OPC_CheckChild2Type, MVT::i32, ++/*453341*/ OPC_CheckChild3Integer, 31, ++/*453343*/ OPC_CheckChild3Type, MVT::i32, ++/*453345*/ OPC_CheckChild4Integer, 31, ++/*453347*/ OPC_CheckChild4Type, MVT::i32, ++/*453349*/ OPC_MoveChild5, ++/*453350*/ OPC_CheckInteger, 31, ++/*453352*/ OPC_CheckType, MVT::i32, ++/*453354*/ OPC_MoveParent, ++/*453355*/ OPC_MoveChild6, ++/*453356*/ OPC_CheckInteger, 31, ++/*453358*/ OPC_CheckType, MVT::i32, ++/*453360*/ OPC_MoveParent, ++/*453361*/ OPC_MoveChild7, ++/*453362*/ OPC_CheckInteger, 31, ++/*453364*/ OPC_CheckType, MVT::i32, ++/*453366*/ OPC_MoveParent, ++/*453367*/ OPC_CheckType, MVT::v8i32, ++/*453369*/ OPC_MoveParent, ++/*453370*/ OPC_MoveParent, ++/*453371*/ OPC_MoveParent, ++/*453372*/ OPC_MoveChild1, ++/*453373*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*453376*/ OPC_CheckChild0Integer, 1, ++/*453378*/ OPC_CheckChild0Type, MVT::i32, ++/*453380*/ OPC_CheckChild1Integer, 1, ++/*453382*/ OPC_CheckChild1Type, MVT::i32, ++/*453384*/ OPC_CheckChild2Integer, 1, ++/*453386*/ OPC_CheckChild2Type, MVT::i32, ++/*453388*/ OPC_CheckChild3Integer, 1, ++/*453390*/ OPC_CheckChild3Type, MVT::i32, ++/*453392*/ OPC_CheckChild4Integer, 1, ++/*453394*/ OPC_CheckChild4Type, MVT::i32, ++/*453396*/ OPC_MoveChild5, ++/*453397*/ OPC_CheckInteger, 1, ++/*453399*/ OPC_CheckType, MVT::i32, ++/*453401*/ OPC_MoveParent, ++/*453402*/ OPC_MoveChild6, ++/*453403*/ OPC_CheckInteger, 1, ++/*453405*/ OPC_CheckType, MVT::i32, ++/*453407*/ OPC_MoveParent, ++/*453408*/ OPC_MoveChild7, ++/*453409*/ OPC_CheckInteger, 1, ++/*453411*/ OPC_CheckType, MVT::i32, ++/*453413*/ OPC_MoveParent, ++/*453414*/ OPC_CheckType, MVT::v8i32, ++/*453416*/ OPC_MoveParent, ++/*453417*/ OPC_CheckType, MVT::v8i32, ++/*453419*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*453421*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b)), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*453429*/ /*Scope*/ 25|128,1/*153*/, /*->453584*/ ++/*453431*/ OPC_CheckChild0Same, 0, ++/*453433*/ OPC_CheckChild1Same, 1, ++/*453435*/ OPC_MoveParent, ++/*453436*/ OPC_MoveChild1, ++/*453437*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*453440*/ OPC_CheckChild0Integer, 1, ++/*453442*/ OPC_CheckChild0Type, MVT::i32, ++/*453444*/ OPC_CheckChild1Integer, 1, ++/*453446*/ OPC_CheckChild1Type, MVT::i32, ++/*453448*/ OPC_CheckChild2Integer, 1, ++/*453450*/ OPC_CheckChild2Type, MVT::i32, ++/*453452*/ OPC_CheckChild3Integer, 1, ++/*453454*/ OPC_CheckChild3Type, MVT::i32, ++/*453456*/ OPC_CheckChild4Integer, 1, ++/*453458*/ OPC_CheckChild4Type, MVT::i32, ++/*453460*/ OPC_MoveChild5, ++/*453461*/ OPC_CheckInteger, 1, ++/*453463*/ OPC_CheckType, MVT::i32, ++/*453465*/ OPC_MoveParent, ++/*453466*/ OPC_MoveChild6, ++/*453467*/ OPC_CheckInteger, 1, ++/*453469*/ OPC_CheckType, MVT::i32, ++/*453471*/ OPC_MoveParent, ++/*453472*/ OPC_MoveChild7, ++/*453473*/ OPC_CheckInteger, 1, ++/*453475*/ OPC_CheckType, MVT::i32, ++/*453477*/ OPC_MoveParent, ++/*453478*/ OPC_MoveParent, ++/*453479*/ OPC_MoveParent, ++/*453480*/ OPC_MoveChild1, ++/*453481*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*453484*/ OPC_CheckChild0Integer, 31, ++/*453486*/ OPC_CheckChild0Type, MVT::i32, ++/*453488*/ OPC_CheckChild1Integer, 31, ++/*453490*/ OPC_CheckChild1Type, MVT::i32, ++/*453492*/ OPC_CheckChild2Integer, 31, ++/*453494*/ OPC_CheckChild2Type, MVT::i32, ++/*453496*/ OPC_CheckChild3Integer, 31, ++/*453498*/ OPC_CheckChild3Type, MVT::i32, ++/*453500*/ OPC_CheckChild4Integer, 31, ++/*453502*/ OPC_CheckChild4Type, MVT::i32, ++/*453504*/ OPC_MoveChild5, ++/*453505*/ OPC_CheckInteger, 31, ++/*453507*/ OPC_CheckType, MVT::i32, ++/*453509*/ OPC_MoveParent, ++/*453510*/ OPC_MoveChild6, ++/*453511*/ OPC_CheckInteger, 31, ++/*453513*/ OPC_CheckType, MVT::i32, ++/*453515*/ OPC_MoveParent, ++/*453516*/ OPC_MoveChild7, ++/*453517*/ OPC_CheckInteger, 31, ++/*453519*/ OPC_CheckType, MVT::i32, ++/*453521*/ OPC_MoveParent, ++/*453522*/ OPC_CheckType, MVT::v8i32, ++/*453524*/ OPC_MoveParent, ++/*453525*/ OPC_MoveParent, ++/*453526*/ OPC_MoveParent, ++/*453527*/ OPC_MoveChild1, ++/*453528*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*453531*/ OPC_CheckChild0Integer, 1, ++/*453533*/ OPC_CheckChild0Type, MVT::i32, ++/*453535*/ OPC_CheckChild1Integer, 1, ++/*453537*/ OPC_CheckChild1Type, MVT::i32, ++/*453539*/ OPC_CheckChild2Integer, 1, ++/*453541*/ OPC_CheckChild2Type, MVT::i32, ++/*453543*/ OPC_CheckChild3Integer, 1, ++/*453545*/ OPC_CheckChild3Type, MVT::i32, ++/*453547*/ OPC_CheckChild4Integer, 1, ++/*453549*/ OPC_CheckChild4Type, MVT::i32, ++/*453551*/ OPC_MoveChild5, ++/*453552*/ OPC_CheckInteger, 1, ++/*453554*/ OPC_CheckType, MVT::i32, ++/*453556*/ OPC_MoveParent, ++/*453557*/ OPC_MoveChild6, ++/*453558*/ OPC_CheckInteger, 1, ++/*453560*/ OPC_CheckType, MVT::i32, ++/*453562*/ OPC_MoveParent, ++/*453563*/ OPC_MoveChild7, ++/*453564*/ OPC_CheckInteger, 1, ++/*453566*/ OPC_CheckType, MVT::i32, ++/*453568*/ OPC_MoveParent, ++/*453569*/ OPC_CheckType, MVT::v8i32, ++/*453571*/ OPC_MoveParent, ++/*453572*/ OPC_CheckType, MVT::v8i32, ++/*453574*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*453576*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b)), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*453584*/ /*Scope*/ 25|128,1/*153*/, /*->453739*/ ++/*453586*/ OPC_CheckChild0Same, 1, ++/*453588*/ OPC_CheckChild1Same, 0, ++/*453590*/ OPC_MoveParent, ++/*453591*/ OPC_MoveChild1, ++/*453592*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*453595*/ OPC_CheckChild0Integer, 1, ++/*453597*/ OPC_CheckChild0Type, MVT::i32, ++/*453599*/ OPC_CheckChild1Integer, 1, ++/*453601*/ OPC_CheckChild1Type, MVT::i32, ++/*453603*/ OPC_CheckChild2Integer, 1, ++/*453605*/ OPC_CheckChild2Type, MVT::i32, ++/*453607*/ OPC_CheckChild3Integer, 1, ++/*453609*/ OPC_CheckChild3Type, MVT::i32, ++/*453611*/ OPC_CheckChild4Integer, 1, ++/*453613*/ OPC_CheckChild4Type, MVT::i32, ++/*453615*/ OPC_MoveChild5, ++/*453616*/ OPC_CheckInteger, 1, ++/*453618*/ OPC_CheckType, MVT::i32, ++/*453620*/ OPC_MoveParent, ++/*453621*/ OPC_MoveChild6, ++/*453622*/ OPC_CheckInteger, 1, ++/*453624*/ OPC_CheckType, MVT::i32, ++/*453626*/ OPC_MoveParent, ++/*453627*/ OPC_MoveChild7, ++/*453628*/ OPC_CheckInteger, 1, ++/*453630*/ OPC_CheckType, MVT::i32, ++/*453632*/ OPC_MoveParent, ++/*453633*/ OPC_MoveParent, ++/*453634*/ OPC_MoveParent, ++/*453635*/ OPC_MoveChild1, ++/*453636*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*453639*/ OPC_CheckChild0Integer, 31, ++/*453641*/ OPC_CheckChild0Type, MVT::i32, ++/*453643*/ OPC_CheckChild1Integer, 31, ++/*453645*/ OPC_CheckChild1Type, MVT::i32, ++/*453647*/ OPC_CheckChild2Integer, 31, ++/*453649*/ OPC_CheckChild2Type, MVT::i32, ++/*453651*/ OPC_CheckChild3Integer, 31, ++/*453653*/ OPC_CheckChild3Type, MVT::i32, ++/*453655*/ OPC_CheckChild4Integer, 31, ++/*453657*/ OPC_CheckChild4Type, MVT::i32, ++/*453659*/ OPC_MoveChild5, ++/*453660*/ OPC_CheckInteger, 31, ++/*453662*/ OPC_CheckType, MVT::i32, ++/*453664*/ OPC_MoveParent, ++/*453665*/ OPC_MoveChild6, ++/*453666*/ OPC_CheckInteger, 31, ++/*453668*/ OPC_CheckType, MVT::i32, ++/*453670*/ OPC_MoveParent, ++/*453671*/ OPC_MoveChild7, ++/*453672*/ OPC_CheckInteger, 31, ++/*453674*/ OPC_CheckType, MVT::i32, ++/*453676*/ OPC_MoveParent, ++/*453677*/ OPC_CheckType, MVT::v8i32, ++/*453679*/ OPC_MoveParent, ++/*453680*/ OPC_MoveParent, ++/*453681*/ OPC_MoveParent, ++/*453682*/ OPC_MoveChild1, ++/*453683*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*453686*/ OPC_CheckChild0Integer, 1, ++/*453688*/ OPC_CheckChild0Type, MVT::i32, ++/*453690*/ OPC_CheckChild1Integer, 1, ++/*453692*/ OPC_CheckChild1Type, MVT::i32, ++/*453694*/ OPC_CheckChild2Integer, 1, ++/*453696*/ OPC_CheckChild2Type, MVT::i32, ++/*453698*/ OPC_CheckChild3Integer, 1, ++/*453700*/ OPC_CheckChild3Type, MVT::i32, ++/*453702*/ OPC_CheckChild4Integer, 1, ++/*453704*/ OPC_CheckChild4Type, MVT::i32, ++/*453706*/ OPC_MoveChild5, ++/*453707*/ OPC_CheckInteger, 1, ++/*453709*/ OPC_CheckType, MVT::i32, ++/*453711*/ OPC_MoveParent, ++/*453712*/ OPC_MoveChild6, ++/*453713*/ OPC_CheckInteger, 1, ++/*453715*/ OPC_CheckType, MVT::i32, ++/*453717*/ OPC_MoveParent, ++/*453718*/ OPC_MoveChild7, ++/*453719*/ OPC_CheckInteger, 1, ++/*453721*/ OPC_CheckType, MVT::i32, ++/*453723*/ OPC_MoveParent, ++/*453724*/ OPC_CheckType, MVT::v8i32, ++/*453726*/ OPC_MoveParent, ++/*453727*/ OPC_CheckType, MVT::v8i32, ++/*453729*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*453731*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b)), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*453739*/ 0, /*End of Scope*/ ++/*453740*/ /*Scope*/ 58|128,2/*314*/, /*->454056*/ ++/*453742*/ OPC_CheckChild0Same, 1, ++/*453744*/ OPC_MoveChild1, ++/*453745*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*453748*/ OPC_Scope, 23|128,1/*151*/, /*->453902*/ // 2 children in Scope ++/*453751*/ OPC_MoveChild0, ++/*453752*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*453755*/ OPC_CheckChild0Integer, 1, ++/*453757*/ OPC_CheckChild0Type, MVT::i32, ++/*453759*/ OPC_CheckChild1Integer, 1, ++/*453761*/ OPC_CheckChild1Type, MVT::i32, ++/*453763*/ OPC_CheckChild2Integer, 1, ++/*453765*/ OPC_CheckChild2Type, MVT::i32, ++/*453767*/ OPC_CheckChild3Integer, 1, ++/*453769*/ OPC_CheckChild3Type, MVT::i32, ++/*453771*/ OPC_CheckChild4Integer, 1, ++/*453773*/ OPC_CheckChild4Type, MVT::i32, ++/*453775*/ OPC_MoveChild5, ++/*453776*/ OPC_CheckInteger, 1, ++/*453778*/ OPC_CheckType, MVT::i32, ++/*453780*/ OPC_MoveParent, ++/*453781*/ OPC_MoveChild6, ++/*453782*/ OPC_CheckInteger, 1, ++/*453784*/ OPC_CheckType, MVT::i32, ++/*453786*/ OPC_MoveParent, ++/*453787*/ OPC_MoveChild7, ++/*453788*/ OPC_CheckInteger, 1, ++/*453790*/ OPC_CheckType, MVT::i32, ++/*453792*/ OPC_MoveParent, ++/*453793*/ OPC_MoveParent, ++/*453794*/ OPC_CheckChild1Same, 0, ++/*453796*/ OPC_MoveParent, ++/*453797*/ OPC_MoveParent, ++/*453798*/ OPC_MoveChild1, ++/*453799*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*453802*/ OPC_CheckChild0Integer, 31, ++/*453804*/ OPC_CheckChild0Type, MVT::i32, ++/*453806*/ OPC_CheckChild1Integer, 31, ++/*453808*/ OPC_CheckChild1Type, MVT::i32, ++/*453810*/ OPC_CheckChild2Integer, 31, ++/*453812*/ OPC_CheckChild2Type, MVT::i32, ++/*453814*/ OPC_CheckChild3Integer, 31, ++/*453816*/ OPC_CheckChild3Type, MVT::i32, ++/*453818*/ OPC_CheckChild4Integer, 31, ++/*453820*/ OPC_CheckChild4Type, MVT::i32, ++/*453822*/ OPC_MoveChild5, ++/*453823*/ OPC_CheckInteger, 31, ++/*453825*/ OPC_CheckType, MVT::i32, ++/*453827*/ OPC_MoveParent, ++/*453828*/ OPC_MoveChild6, ++/*453829*/ OPC_CheckInteger, 31, ++/*453831*/ OPC_CheckType, MVT::i32, ++/*453833*/ OPC_MoveParent, ++/*453834*/ OPC_MoveChild7, ++/*453835*/ OPC_CheckInteger, 31, ++/*453837*/ OPC_CheckType, MVT::i32, ++/*453839*/ OPC_MoveParent, ++/*453840*/ OPC_CheckType, MVT::v8i32, ++/*453842*/ OPC_MoveParent, ++/*453843*/ OPC_MoveParent, ++/*453844*/ OPC_MoveParent, ++/*453845*/ OPC_MoveChild1, ++/*453846*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*453849*/ OPC_CheckChild0Integer, 1, ++/*453851*/ OPC_CheckChild0Type, MVT::i32, ++/*453853*/ OPC_CheckChild1Integer, 1, ++/*453855*/ OPC_CheckChild1Type, MVT::i32, ++/*453857*/ OPC_CheckChild2Integer, 1, ++/*453859*/ OPC_CheckChild2Type, MVT::i32, ++/*453861*/ OPC_CheckChild3Integer, 1, ++/*453863*/ OPC_CheckChild3Type, MVT::i32, ++/*453865*/ OPC_CheckChild4Integer, 1, ++/*453867*/ OPC_CheckChild4Type, MVT::i32, ++/*453869*/ OPC_MoveChild5, ++/*453870*/ OPC_CheckInteger, 1, ++/*453872*/ OPC_CheckType, MVT::i32, ++/*453874*/ OPC_MoveParent, ++/*453875*/ OPC_MoveChild6, ++/*453876*/ OPC_CheckInteger, 1, ++/*453878*/ OPC_CheckType, MVT::i32, ++/*453880*/ OPC_MoveParent, ++/*453881*/ OPC_MoveChild7, ++/*453882*/ OPC_CheckInteger, 1, ++/*453884*/ OPC_CheckType, MVT::i32, ++/*453886*/ OPC_MoveParent, ++/*453887*/ OPC_CheckType, MVT::v8i32, ++/*453889*/ OPC_MoveParent, ++/*453890*/ OPC_CheckType, MVT::v8i32, ++/*453892*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*453894*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b)), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*453902*/ /*Scope*/ 23|128,1/*151*/, /*->454055*/ ++/*453904*/ OPC_CheckChild0Same, 0, ++/*453906*/ OPC_MoveChild1, ++/*453907*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*453910*/ OPC_CheckChild0Integer, 1, ++/*453912*/ OPC_CheckChild0Type, MVT::i32, ++/*453914*/ OPC_CheckChild1Integer, 1, ++/*453916*/ OPC_CheckChild1Type, MVT::i32, ++/*453918*/ OPC_CheckChild2Integer, 1, ++/*453920*/ OPC_CheckChild2Type, MVT::i32, ++/*453922*/ OPC_CheckChild3Integer, 1, ++/*453924*/ OPC_CheckChild3Type, MVT::i32, ++/*453926*/ OPC_CheckChild4Integer, 1, ++/*453928*/ OPC_CheckChild4Type, MVT::i32, ++/*453930*/ OPC_MoveChild5, ++/*453931*/ OPC_CheckInteger, 1, ++/*453933*/ OPC_CheckType, MVT::i32, ++/*453935*/ OPC_MoveParent, ++/*453936*/ OPC_MoveChild6, ++/*453937*/ OPC_CheckInteger, 1, ++/*453939*/ OPC_CheckType, MVT::i32, ++/*453941*/ OPC_MoveParent, ++/*453942*/ OPC_MoveChild7, ++/*453943*/ OPC_CheckInteger, 1, ++/*453945*/ OPC_CheckType, MVT::i32, ++/*453947*/ OPC_MoveParent, ++/*453948*/ OPC_MoveParent, ++/*453949*/ OPC_MoveParent, ++/*453950*/ OPC_MoveParent, ++/*453951*/ OPC_MoveChild1, ++/*453952*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*453955*/ OPC_CheckChild0Integer, 31, ++/*453957*/ OPC_CheckChild0Type, MVT::i32, ++/*453959*/ OPC_CheckChild1Integer, 31, ++/*453961*/ OPC_CheckChild1Type, MVT::i32, ++/*453963*/ OPC_CheckChild2Integer, 31, ++/*453965*/ OPC_CheckChild2Type, MVT::i32, ++/*453967*/ OPC_CheckChild3Integer, 31, ++/*453969*/ OPC_CheckChild3Type, MVT::i32, ++/*453971*/ OPC_CheckChild4Integer, 31, ++/*453973*/ OPC_CheckChild4Type, MVT::i32, ++/*453975*/ OPC_MoveChild5, ++/*453976*/ OPC_CheckInteger, 31, ++/*453978*/ OPC_CheckType, MVT::i32, ++/*453980*/ OPC_MoveParent, ++/*453981*/ OPC_MoveChild6, ++/*453982*/ OPC_CheckInteger, 31, ++/*453984*/ OPC_CheckType, MVT::i32, ++/*453986*/ OPC_MoveParent, ++/*453987*/ OPC_MoveChild7, ++/*453988*/ OPC_CheckInteger, 31, ++/*453990*/ OPC_CheckType, MVT::i32, ++/*453992*/ OPC_MoveParent, ++/*453993*/ OPC_CheckType, MVT::v8i32, ++/*453995*/ OPC_MoveParent, ++/*453996*/ OPC_MoveParent, ++/*453997*/ OPC_MoveParent, ++/*453998*/ OPC_MoveChild1, ++/*453999*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*454002*/ OPC_CheckChild0Integer, 1, ++/*454004*/ OPC_CheckChild0Type, MVT::i32, ++/*454006*/ OPC_CheckChild1Integer, 1, ++/*454008*/ OPC_CheckChild1Type, MVT::i32, ++/*454010*/ OPC_CheckChild2Integer, 1, ++/*454012*/ OPC_CheckChild2Type, MVT::i32, ++/*454014*/ OPC_CheckChild3Integer, 1, ++/*454016*/ OPC_CheckChild3Type, MVT::i32, ++/*454018*/ OPC_CheckChild4Integer, 1, ++/*454020*/ OPC_CheckChild4Type, MVT::i32, ++/*454022*/ OPC_MoveChild5, ++/*454023*/ OPC_CheckInteger, 1, ++/*454025*/ OPC_CheckType, MVT::i32, ++/*454027*/ OPC_MoveParent, ++/*454028*/ OPC_MoveChild6, ++/*454029*/ OPC_CheckInteger, 1, ++/*454031*/ OPC_CheckType, MVT::i32, ++/*454033*/ OPC_MoveParent, ++/*454034*/ OPC_MoveChild7, ++/*454035*/ OPC_CheckInteger, 1, ++/*454037*/ OPC_CheckType, MVT::i32, ++/*454039*/ OPC_MoveParent, ++/*454040*/ OPC_CheckType, MVT::v8i32, ++/*454042*/ OPC_MoveParent, ++/*454043*/ OPC_CheckType, MVT::v8i32, ++/*454045*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*454047*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b)), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*454055*/ 0, /*End of Scope*/ ++/*454056*/ /*Scope*/ 58|128,2/*314*/, /*->454372*/ ++/*454058*/ OPC_CheckChild0Same, 0, ++/*454060*/ OPC_MoveChild1, ++/*454061*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*454064*/ OPC_Scope, 23|128,1/*151*/, /*->454218*/ // 2 children in Scope ++/*454067*/ OPC_MoveChild0, ++/*454068*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*454071*/ OPC_CheckChild0Integer, 1, ++/*454073*/ OPC_CheckChild0Type, MVT::i32, ++/*454075*/ OPC_CheckChild1Integer, 1, ++/*454077*/ OPC_CheckChild1Type, MVT::i32, ++/*454079*/ OPC_CheckChild2Integer, 1, ++/*454081*/ OPC_CheckChild2Type, MVT::i32, ++/*454083*/ OPC_CheckChild3Integer, 1, ++/*454085*/ OPC_CheckChild3Type, MVT::i32, ++/*454087*/ OPC_CheckChild4Integer, 1, ++/*454089*/ OPC_CheckChild4Type, MVT::i32, ++/*454091*/ OPC_MoveChild5, ++/*454092*/ OPC_CheckInteger, 1, ++/*454094*/ OPC_CheckType, MVT::i32, ++/*454096*/ OPC_MoveParent, ++/*454097*/ OPC_MoveChild6, ++/*454098*/ OPC_CheckInteger, 1, ++/*454100*/ OPC_CheckType, MVT::i32, ++/*454102*/ OPC_MoveParent, ++/*454103*/ OPC_MoveChild7, ++/*454104*/ OPC_CheckInteger, 1, ++/*454106*/ OPC_CheckType, MVT::i32, ++/*454108*/ OPC_MoveParent, ++/*454109*/ OPC_MoveParent, ++/*454110*/ OPC_CheckChild1Same, 1, ++/*454112*/ OPC_MoveParent, ++/*454113*/ OPC_MoveParent, ++/*454114*/ OPC_MoveChild1, ++/*454115*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*454118*/ OPC_CheckChild0Integer, 31, ++/*454120*/ OPC_CheckChild0Type, MVT::i32, ++/*454122*/ OPC_CheckChild1Integer, 31, ++/*454124*/ OPC_CheckChild1Type, MVT::i32, ++/*454126*/ OPC_CheckChild2Integer, 31, ++/*454128*/ OPC_CheckChild2Type, MVT::i32, ++/*454130*/ OPC_CheckChild3Integer, 31, ++/*454132*/ OPC_CheckChild3Type, MVT::i32, ++/*454134*/ OPC_CheckChild4Integer, 31, ++/*454136*/ OPC_CheckChild4Type, MVT::i32, ++/*454138*/ OPC_MoveChild5, ++/*454139*/ OPC_CheckInteger, 31, ++/*454141*/ OPC_CheckType, MVT::i32, ++/*454143*/ OPC_MoveParent, ++/*454144*/ OPC_MoveChild6, ++/*454145*/ OPC_CheckInteger, 31, ++/*454147*/ OPC_CheckType, MVT::i32, ++/*454149*/ OPC_MoveParent, ++/*454150*/ OPC_MoveChild7, ++/*454151*/ OPC_CheckInteger, 31, ++/*454153*/ OPC_CheckType, MVT::i32, ++/*454155*/ OPC_MoveParent, ++/*454156*/ OPC_CheckType, MVT::v8i32, ++/*454158*/ OPC_MoveParent, ++/*454159*/ OPC_MoveParent, ++/*454160*/ OPC_MoveParent, ++/*454161*/ OPC_MoveChild1, ++/*454162*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*454165*/ OPC_CheckChild0Integer, 1, ++/*454167*/ OPC_CheckChild0Type, MVT::i32, ++/*454169*/ OPC_CheckChild1Integer, 1, ++/*454171*/ OPC_CheckChild1Type, MVT::i32, ++/*454173*/ OPC_CheckChild2Integer, 1, ++/*454175*/ OPC_CheckChild2Type, MVT::i32, ++/*454177*/ OPC_CheckChild3Integer, 1, ++/*454179*/ OPC_CheckChild3Type, MVT::i32, ++/*454181*/ OPC_CheckChild4Integer, 1, ++/*454183*/ OPC_CheckChild4Type, MVT::i32, ++/*454185*/ OPC_MoveChild5, ++/*454186*/ OPC_CheckInteger, 1, ++/*454188*/ OPC_CheckType, MVT::i32, ++/*454190*/ OPC_MoveParent, ++/*454191*/ OPC_MoveChild6, ++/*454192*/ OPC_CheckInteger, 1, ++/*454194*/ OPC_CheckType, MVT::i32, ++/*454196*/ OPC_MoveParent, ++/*454197*/ OPC_MoveChild7, ++/*454198*/ OPC_CheckInteger, 1, ++/*454200*/ OPC_CheckType, MVT::i32, ++/*454202*/ OPC_MoveParent, ++/*454203*/ OPC_CheckType, MVT::v8i32, ++/*454205*/ OPC_MoveParent, ++/*454206*/ OPC_CheckType, MVT::v8i32, ++/*454208*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*454210*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b)), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*454218*/ /*Scope*/ 23|128,1/*151*/, /*->454371*/ ++/*454220*/ OPC_CheckChild0Same, 1, ++/*454222*/ OPC_MoveChild1, ++/*454223*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*454226*/ OPC_CheckChild0Integer, 1, ++/*454228*/ OPC_CheckChild0Type, MVT::i32, ++/*454230*/ OPC_CheckChild1Integer, 1, ++/*454232*/ OPC_CheckChild1Type, MVT::i32, ++/*454234*/ OPC_CheckChild2Integer, 1, ++/*454236*/ OPC_CheckChild2Type, MVT::i32, ++/*454238*/ OPC_CheckChild3Integer, 1, ++/*454240*/ OPC_CheckChild3Type, MVT::i32, ++/*454242*/ OPC_CheckChild4Integer, 1, ++/*454244*/ OPC_CheckChild4Type, MVT::i32, ++/*454246*/ OPC_MoveChild5, ++/*454247*/ OPC_CheckInteger, 1, ++/*454249*/ OPC_CheckType, MVT::i32, ++/*454251*/ OPC_MoveParent, ++/*454252*/ OPC_MoveChild6, ++/*454253*/ OPC_CheckInteger, 1, ++/*454255*/ OPC_CheckType, MVT::i32, ++/*454257*/ OPC_MoveParent, ++/*454258*/ OPC_MoveChild7, ++/*454259*/ OPC_CheckInteger, 1, ++/*454261*/ OPC_CheckType, MVT::i32, ++/*454263*/ OPC_MoveParent, ++/*454264*/ OPC_MoveParent, ++/*454265*/ OPC_MoveParent, ++/*454266*/ OPC_MoveParent, ++/*454267*/ OPC_MoveChild1, ++/*454268*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*454271*/ OPC_CheckChild0Integer, 31, ++/*454273*/ OPC_CheckChild0Type, MVT::i32, ++/*454275*/ OPC_CheckChild1Integer, 31, ++/*454277*/ OPC_CheckChild1Type, MVT::i32, ++/*454279*/ OPC_CheckChild2Integer, 31, ++/*454281*/ OPC_CheckChild2Type, MVT::i32, ++/*454283*/ OPC_CheckChild3Integer, 31, ++/*454285*/ OPC_CheckChild3Type, MVT::i32, ++/*454287*/ OPC_CheckChild4Integer, 31, ++/*454289*/ OPC_CheckChild4Type, MVT::i32, ++/*454291*/ OPC_MoveChild5, ++/*454292*/ OPC_CheckInteger, 31, ++/*454294*/ OPC_CheckType, MVT::i32, ++/*454296*/ OPC_MoveParent, ++/*454297*/ OPC_MoveChild6, ++/*454298*/ OPC_CheckInteger, 31, ++/*454300*/ OPC_CheckType, MVT::i32, ++/*454302*/ OPC_MoveParent, ++/*454303*/ OPC_MoveChild7, ++/*454304*/ OPC_CheckInteger, 31, ++/*454306*/ OPC_CheckType, MVT::i32, ++/*454308*/ OPC_MoveParent, ++/*454309*/ OPC_CheckType, MVT::v8i32, ++/*454311*/ OPC_MoveParent, ++/*454312*/ OPC_MoveParent, ++/*454313*/ OPC_MoveParent, ++/*454314*/ OPC_MoveChild1, ++/*454315*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*454318*/ OPC_CheckChild0Integer, 1, ++/*454320*/ OPC_CheckChild0Type, MVT::i32, ++/*454322*/ OPC_CheckChild1Integer, 1, ++/*454324*/ OPC_CheckChild1Type, MVT::i32, ++/*454326*/ OPC_CheckChild2Integer, 1, ++/*454328*/ OPC_CheckChild2Type, MVT::i32, ++/*454330*/ OPC_CheckChild3Integer, 1, ++/*454332*/ OPC_CheckChild3Type, MVT::i32, ++/*454334*/ OPC_CheckChild4Integer, 1, ++/*454336*/ OPC_CheckChild4Type, MVT::i32, ++/*454338*/ OPC_MoveChild5, ++/*454339*/ OPC_CheckInteger, 1, ++/*454341*/ OPC_CheckType, MVT::i32, ++/*454343*/ OPC_MoveParent, ++/*454344*/ OPC_MoveChild6, ++/*454345*/ OPC_CheckInteger, 1, ++/*454347*/ OPC_CheckType, MVT::i32, ++/*454349*/ OPC_MoveParent, ++/*454350*/ OPC_MoveChild7, ++/*454351*/ OPC_CheckInteger, 1, ++/*454353*/ OPC_CheckType, MVT::i32, ++/*454355*/ OPC_MoveParent, ++/*454356*/ OPC_CheckType, MVT::v8i32, ++/*454358*/ OPC_MoveParent, ++/*454359*/ OPC_CheckType, MVT::v8i32, ++/*454361*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*454363*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b)), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*454371*/ 0, /*End of Scope*/ ++/*454372*/ /*Scope*/ 72|128,8/*1096*/, /*->455470*/ ++/*454374*/ OPC_MoveChild0, ++/*454375*/ OPC_SwitchOpcode /*2 cases */, 25|128,1/*153*/, TARGET_VAL(ISD::BUILD_VECTOR),// ->454533 ++/*454380*/ OPC_CheckChild0Integer, 1, ++/*454382*/ OPC_CheckChild0Type, MVT::i32, ++/*454384*/ OPC_CheckChild1Integer, 1, ++/*454386*/ OPC_CheckChild1Type, MVT::i32, ++/*454388*/ OPC_CheckChild2Integer, 1, ++/*454390*/ OPC_CheckChild2Type, MVT::i32, ++/*454392*/ OPC_CheckChild3Integer, 1, ++/*454394*/ OPC_CheckChild3Type, MVT::i32, ++/*454396*/ OPC_CheckChild4Integer, 1, ++/*454398*/ OPC_CheckChild4Type, MVT::i32, ++/*454400*/ OPC_MoveChild5, ++/*454401*/ OPC_CheckInteger, 1, ++/*454403*/ OPC_CheckType, MVT::i32, ++/*454405*/ OPC_MoveParent, ++/*454406*/ OPC_MoveChild6, ++/*454407*/ OPC_CheckInteger, 1, ++/*454409*/ OPC_CheckType, MVT::i32, ++/*454411*/ OPC_MoveParent, ++/*454412*/ OPC_MoveChild7, ++/*454413*/ OPC_CheckInteger, 1, ++/*454415*/ OPC_CheckType, MVT::i32, ++/*454417*/ OPC_MoveParent, ++/*454418*/ OPC_MoveParent, ++/*454419*/ OPC_MoveChild1, ++/*454420*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*454423*/ OPC_CheckChild0Same, 1, ++/*454425*/ OPC_CheckChild1Same, 0, ++/*454427*/ OPC_MoveParent, ++/*454428*/ OPC_MoveParent, ++/*454429*/ OPC_MoveChild1, ++/*454430*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*454433*/ OPC_CheckChild0Integer, 31, ++/*454435*/ OPC_CheckChild0Type, MVT::i32, ++/*454437*/ OPC_CheckChild1Integer, 31, ++/*454439*/ OPC_CheckChild1Type, MVT::i32, ++/*454441*/ OPC_CheckChild2Integer, 31, ++/*454443*/ OPC_CheckChild2Type, MVT::i32, ++/*454445*/ OPC_CheckChild3Integer, 31, ++/*454447*/ OPC_CheckChild3Type, MVT::i32, ++/*454449*/ OPC_CheckChild4Integer, 31, ++/*454451*/ OPC_CheckChild4Type, MVT::i32, ++/*454453*/ OPC_MoveChild5, ++/*454454*/ OPC_CheckInteger, 31, ++/*454456*/ OPC_CheckType, MVT::i32, ++/*454458*/ OPC_MoveParent, ++/*454459*/ OPC_MoveChild6, ++/*454460*/ OPC_CheckInteger, 31, ++/*454462*/ OPC_CheckType, MVT::i32, ++/*454464*/ OPC_MoveParent, ++/*454465*/ OPC_MoveChild7, ++/*454466*/ OPC_CheckInteger, 31, ++/*454468*/ OPC_CheckType, MVT::i32, ++/*454470*/ OPC_MoveParent, ++/*454471*/ OPC_CheckType, MVT::v8i32, ++/*454473*/ OPC_MoveParent, ++/*454474*/ OPC_MoveParent, ++/*454475*/ OPC_MoveParent, ++/*454476*/ OPC_MoveChild1, ++/*454477*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*454480*/ OPC_CheckChild0Integer, 1, ++/*454482*/ OPC_CheckChild0Type, MVT::i32, ++/*454484*/ OPC_CheckChild1Integer, 1, ++/*454486*/ OPC_CheckChild1Type, MVT::i32, ++/*454488*/ OPC_CheckChild2Integer, 1, ++/*454490*/ OPC_CheckChild2Type, MVT::i32, ++/*454492*/ OPC_CheckChild3Integer, 1, ++/*454494*/ OPC_CheckChild3Type, MVT::i32, ++/*454496*/ OPC_CheckChild4Integer, 1, ++/*454498*/ OPC_CheckChild4Type, MVT::i32, ++/*454500*/ OPC_MoveChild5, ++/*454501*/ OPC_CheckInteger, 1, ++/*454503*/ OPC_CheckType, MVT::i32, ++/*454505*/ OPC_MoveParent, ++/*454506*/ OPC_MoveChild6, ++/*454507*/ OPC_CheckInteger, 1, ++/*454509*/ OPC_CheckType, MVT::i32, ++/*454511*/ OPC_MoveParent, ++/*454512*/ OPC_MoveChild7, ++/*454513*/ OPC_CheckInteger, 1, ++/*454515*/ OPC_CheckType, MVT::i32, ++/*454517*/ OPC_MoveParent, ++/*454518*/ OPC_CheckType, MVT::v8i32, ++/*454520*/ OPC_MoveParent, ++/*454521*/ OPC_CheckType, MVT::v8i32, ++/*454523*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*454525*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b)), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*454533*/ /*SwitchOpcode*/ 36|128,7/*932*/, TARGET_VAL(ISD::ADD),// ->455469 ++/*454537*/ OPC_Scope, 25|128,1/*153*/, /*->454693*/ // 6 children in Scope ++/*454540*/ OPC_MoveChild0, ++/*454541*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*454544*/ OPC_CheckChild0Integer, 1, ++/*454546*/ OPC_CheckChild0Type, MVT::i32, ++/*454548*/ OPC_CheckChild1Integer, 1, ++/*454550*/ OPC_CheckChild1Type, MVT::i32, ++/*454552*/ OPC_CheckChild2Integer, 1, ++/*454554*/ OPC_CheckChild2Type, MVT::i32, ++/*454556*/ OPC_CheckChild3Integer, 1, ++/*454558*/ OPC_CheckChild3Type, MVT::i32, ++/*454560*/ OPC_CheckChild4Integer, 1, ++/*454562*/ OPC_CheckChild4Type, MVT::i32, ++/*454564*/ OPC_MoveChild5, ++/*454565*/ OPC_CheckInteger, 1, ++/*454567*/ OPC_CheckType, MVT::i32, ++/*454569*/ OPC_MoveParent, ++/*454570*/ OPC_MoveChild6, ++/*454571*/ OPC_CheckInteger, 1, ++/*454573*/ OPC_CheckType, MVT::i32, ++/*454575*/ OPC_MoveParent, ++/*454576*/ OPC_MoveChild7, ++/*454577*/ OPC_CheckInteger, 1, ++/*454579*/ OPC_CheckType, MVT::i32, ++/*454581*/ OPC_MoveParent, ++/*454582*/ OPC_MoveParent, ++/*454583*/ OPC_CheckChild1Same, 1, ++/*454585*/ OPC_MoveParent, ++/*454586*/ OPC_CheckChild1Same, 0, ++/*454588*/ OPC_MoveParent, ++/*454589*/ OPC_MoveChild1, ++/*454590*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*454593*/ OPC_CheckChild0Integer, 31, ++/*454595*/ OPC_CheckChild0Type, MVT::i32, ++/*454597*/ OPC_CheckChild1Integer, 31, ++/*454599*/ OPC_CheckChild1Type, MVT::i32, ++/*454601*/ OPC_CheckChild2Integer, 31, ++/*454603*/ OPC_CheckChild2Type, MVT::i32, ++/*454605*/ OPC_CheckChild3Integer, 31, ++/*454607*/ OPC_CheckChild3Type, MVT::i32, ++/*454609*/ OPC_CheckChild4Integer, 31, ++/*454611*/ OPC_CheckChild4Type, MVT::i32, ++/*454613*/ OPC_MoveChild5, ++/*454614*/ OPC_CheckInteger, 31, ++/*454616*/ OPC_CheckType, MVT::i32, ++/*454618*/ OPC_MoveParent, ++/*454619*/ OPC_MoveChild6, ++/*454620*/ OPC_CheckInteger, 31, ++/*454622*/ OPC_CheckType, MVT::i32, ++/*454624*/ OPC_MoveParent, ++/*454625*/ OPC_MoveChild7, ++/*454626*/ OPC_CheckInteger, 31, ++/*454628*/ OPC_CheckType, MVT::i32, ++/*454630*/ OPC_MoveParent, ++/*454631*/ OPC_CheckType, MVT::v8i32, ++/*454633*/ OPC_MoveParent, ++/*454634*/ OPC_MoveParent, ++/*454635*/ OPC_MoveParent, ++/*454636*/ OPC_MoveChild1, ++/*454637*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*454640*/ OPC_CheckChild0Integer, 1, ++/*454642*/ OPC_CheckChild0Type, MVT::i32, ++/*454644*/ OPC_CheckChild1Integer, 1, ++/*454646*/ OPC_CheckChild1Type, MVT::i32, ++/*454648*/ OPC_CheckChild2Integer, 1, ++/*454650*/ OPC_CheckChild2Type, MVT::i32, ++/*454652*/ OPC_CheckChild3Integer, 1, ++/*454654*/ OPC_CheckChild3Type, MVT::i32, ++/*454656*/ OPC_CheckChild4Integer, 1, ++/*454658*/ OPC_CheckChild4Type, MVT::i32, ++/*454660*/ OPC_MoveChild5, ++/*454661*/ OPC_CheckInteger, 1, ++/*454663*/ OPC_CheckType, MVT::i32, ++/*454665*/ OPC_MoveParent, ++/*454666*/ OPC_MoveChild6, ++/*454667*/ OPC_CheckInteger, 1, ++/*454669*/ OPC_CheckType, MVT::i32, ++/*454671*/ OPC_MoveParent, ++/*454672*/ OPC_MoveChild7, ++/*454673*/ OPC_CheckInteger, 1, ++/*454675*/ OPC_CheckType, MVT::i32, ++/*454677*/ OPC_MoveParent, ++/*454678*/ OPC_CheckType, MVT::v8i32, ++/*454680*/ OPC_MoveParent, ++/*454681*/ OPC_CheckType, MVT::v8i32, ++/*454683*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*454685*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a)), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a), LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*454693*/ /*Scope*/ 25|128,1/*153*/, /*->454848*/ ++/*454695*/ OPC_CheckChild0Same, 1, ++/*454697*/ OPC_MoveChild1, ++/*454698*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*454701*/ OPC_CheckChild0Integer, 1, ++/*454703*/ OPC_CheckChild0Type, MVT::i32, ++/*454705*/ OPC_CheckChild1Integer, 1, ++/*454707*/ OPC_CheckChild1Type, MVT::i32, ++/*454709*/ OPC_CheckChild2Integer, 1, ++/*454711*/ OPC_CheckChild2Type, MVT::i32, ++/*454713*/ OPC_CheckChild3Integer, 1, ++/*454715*/ OPC_CheckChild3Type, MVT::i32, ++/*454717*/ OPC_CheckChild4Integer, 1, ++/*454719*/ OPC_CheckChild4Type, MVT::i32, ++/*454721*/ OPC_MoveChild5, ++/*454722*/ OPC_CheckInteger, 1, ++/*454724*/ OPC_CheckType, MVT::i32, ++/*454726*/ OPC_MoveParent, ++/*454727*/ OPC_MoveChild6, ++/*454728*/ OPC_CheckInteger, 1, ++/*454730*/ OPC_CheckType, MVT::i32, ++/*454732*/ OPC_MoveParent, ++/*454733*/ OPC_MoveChild7, ++/*454734*/ OPC_CheckInteger, 1, ++/*454736*/ OPC_CheckType, MVT::i32, ++/*454738*/ OPC_MoveParent, ++/*454739*/ OPC_MoveParent, ++/*454740*/ OPC_MoveParent, ++/*454741*/ OPC_CheckChild1Same, 0, ++/*454743*/ OPC_MoveParent, ++/*454744*/ OPC_MoveChild1, ++/*454745*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*454748*/ OPC_CheckChild0Integer, 31, ++/*454750*/ OPC_CheckChild0Type, MVT::i32, ++/*454752*/ OPC_CheckChild1Integer, 31, ++/*454754*/ OPC_CheckChild1Type, MVT::i32, ++/*454756*/ OPC_CheckChild2Integer, 31, ++/*454758*/ OPC_CheckChild2Type, MVT::i32, ++/*454760*/ OPC_CheckChild3Integer, 31, ++/*454762*/ OPC_CheckChild3Type, MVT::i32, ++/*454764*/ OPC_CheckChild4Integer, 31, ++/*454766*/ OPC_CheckChild4Type, MVT::i32, ++/*454768*/ OPC_MoveChild5, ++/*454769*/ OPC_CheckInteger, 31, ++/*454771*/ OPC_CheckType, MVT::i32, ++/*454773*/ OPC_MoveParent, ++/*454774*/ OPC_MoveChild6, ++/*454775*/ OPC_CheckInteger, 31, ++/*454777*/ OPC_CheckType, MVT::i32, ++/*454779*/ OPC_MoveParent, ++/*454780*/ OPC_MoveChild7, ++/*454781*/ OPC_CheckInteger, 31, ++/*454783*/ OPC_CheckType, MVT::i32, ++/*454785*/ OPC_MoveParent, ++/*454786*/ OPC_CheckType, MVT::v8i32, ++/*454788*/ OPC_MoveParent, ++/*454789*/ OPC_MoveParent, ++/*454790*/ OPC_MoveParent, ++/*454791*/ OPC_MoveChild1, ++/*454792*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*454795*/ OPC_CheckChild0Integer, 1, ++/*454797*/ OPC_CheckChild0Type, MVT::i32, ++/*454799*/ OPC_CheckChild1Integer, 1, ++/*454801*/ OPC_CheckChild1Type, MVT::i32, ++/*454803*/ OPC_CheckChild2Integer, 1, ++/*454805*/ OPC_CheckChild2Type, MVT::i32, ++/*454807*/ OPC_CheckChild3Integer, 1, ++/*454809*/ OPC_CheckChild3Type, MVT::i32, ++/*454811*/ OPC_CheckChild4Integer, 1, ++/*454813*/ OPC_CheckChild4Type, MVT::i32, ++/*454815*/ OPC_MoveChild5, ++/*454816*/ OPC_CheckInteger, 1, ++/*454818*/ OPC_CheckType, MVT::i32, ++/*454820*/ OPC_MoveParent, ++/*454821*/ OPC_MoveChild6, ++/*454822*/ OPC_CheckInteger, 1, ++/*454824*/ OPC_CheckType, MVT::i32, ++/*454826*/ OPC_MoveParent, ++/*454827*/ OPC_MoveChild7, ++/*454828*/ OPC_CheckInteger, 1, ++/*454830*/ OPC_CheckType, MVT::i32, ++/*454832*/ OPC_MoveParent, ++/*454833*/ OPC_CheckType, MVT::v8i32, ++/*454835*/ OPC_MoveParent, ++/*454836*/ OPC_CheckType, MVT::v8i32, ++/*454838*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*454840*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a)), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*454848*/ /*Scope*/ 25|128,1/*153*/, /*->455003*/ ++/*454850*/ OPC_MoveChild0, ++/*454851*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*454854*/ OPC_CheckChild0Integer, 1, ++/*454856*/ OPC_CheckChild0Type, MVT::i32, ++/*454858*/ OPC_CheckChild1Integer, 1, ++/*454860*/ OPC_CheckChild1Type, MVT::i32, ++/*454862*/ OPC_CheckChild2Integer, 1, ++/*454864*/ OPC_CheckChild2Type, MVT::i32, ++/*454866*/ OPC_CheckChild3Integer, 1, ++/*454868*/ OPC_CheckChild3Type, MVT::i32, ++/*454870*/ OPC_CheckChild4Integer, 1, ++/*454872*/ OPC_CheckChild4Type, MVT::i32, ++/*454874*/ OPC_MoveChild5, ++/*454875*/ OPC_CheckInteger, 1, ++/*454877*/ OPC_CheckType, MVT::i32, ++/*454879*/ OPC_MoveParent, ++/*454880*/ OPC_MoveChild6, ++/*454881*/ OPC_CheckInteger, 1, ++/*454883*/ OPC_CheckType, MVT::i32, ++/*454885*/ OPC_MoveParent, ++/*454886*/ OPC_MoveChild7, ++/*454887*/ OPC_CheckInteger, 1, ++/*454889*/ OPC_CheckType, MVT::i32, ++/*454891*/ OPC_MoveParent, ++/*454892*/ OPC_MoveParent, ++/*454893*/ OPC_CheckChild1Same, 0, ++/*454895*/ OPC_MoveParent, ++/*454896*/ OPC_CheckChild1Same, 1, ++/*454898*/ OPC_MoveParent, ++/*454899*/ OPC_MoveChild1, ++/*454900*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*454903*/ OPC_CheckChild0Integer, 31, ++/*454905*/ OPC_CheckChild0Type, MVT::i32, ++/*454907*/ OPC_CheckChild1Integer, 31, ++/*454909*/ OPC_CheckChild1Type, MVT::i32, ++/*454911*/ OPC_CheckChild2Integer, 31, ++/*454913*/ OPC_CheckChild2Type, MVT::i32, ++/*454915*/ OPC_CheckChild3Integer, 31, ++/*454917*/ OPC_CheckChild3Type, MVT::i32, ++/*454919*/ OPC_CheckChild4Integer, 31, ++/*454921*/ OPC_CheckChild4Type, MVT::i32, ++/*454923*/ OPC_MoveChild5, ++/*454924*/ OPC_CheckInteger, 31, ++/*454926*/ OPC_CheckType, MVT::i32, ++/*454928*/ OPC_MoveParent, ++/*454929*/ OPC_MoveChild6, ++/*454930*/ OPC_CheckInteger, 31, ++/*454932*/ OPC_CheckType, MVT::i32, ++/*454934*/ OPC_MoveParent, ++/*454935*/ OPC_MoveChild7, ++/*454936*/ OPC_CheckInteger, 31, ++/*454938*/ OPC_CheckType, MVT::i32, ++/*454940*/ OPC_MoveParent, ++/*454941*/ OPC_CheckType, MVT::v8i32, ++/*454943*/ OPC_MoveParent, ++/*454944*/ OPC_MoveParent, ++/*454945*/ OPC_MoveParent, ++/*454946*/ OPC_MoveChild1, ++/*454947*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*454950*/ OPC_CheckChild0Integer, 1, ++/*454952*/ OPC_CheckChild0Type, MVT::i32, ++/*454954*/ OPC_CheckChild1Integer, 1, ++/*454956*/ OPC_CheckChild1Type, MVT::i32, ++/*454958*/ OPC_CheckChild2Integer, 1, ++/*454960*/ OPC_CheckChild2Type, MVT::i32, ++/*454962*/ OPC_CheckChild3Integer, 1, ++/*454964*/ OPC_CheckChild3Type, MVT::i32, ++/*454966*/ OPC_CheckChild4Integer, 1, ++/*454968*/ OPC_CheckChild4Type, MVT::i32, ++/*454970*/ OPC_MoveChild5, ++/*454971*/ OPC_CheckInteger, 1, ++/*454973*/ OPC_CheckType, MVT::i32, ++/*454975*/ OPC_MoveParent, ++/*454976*/ OPC_MoveChild6, ++/*454977*/ OPC_CheckInteger, 1, ++/*454979*/ OPC_CheckType, MVT::i32, ++/*454981*/ OPC_MoveParent, ++/*454982*/ OPC_MoveChild7, ++/*454983*/ OPC_CheckInteger, 1, ++/*454985*/ OPC_CheckType, MVT::i32, ++/*454987*/ OPC_MoveParent, ++/*454988*/ OPC_CheckType, MVT::v8i32, ++/*454990*/ OPC_MoveParent, ++/*454991*/ OPC_CheckType, MVT::v8i32, ++/*454993*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*454995*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a)), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b), LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*455003*/ /*Scope*/ 25|128,1/*153*/, /*->455158*/ ++/*455005*/ OPC_CheckChild0Same, 0, ++/*455007*/ OPC_MoveChild1, ++/*455008*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*455011*/ OPC_CheckChild0Integer, 1, ++/*455013*/ OPC_CheckChild0Type, MVT::i32, ++/*455015*/ OPC_CheckChild1Integer, 1, ++/*455017*/ OPC_CheckChild1Type, MVT::i32, ++/*455019*/ OPC_CheckChild2Integer, 1, ++/*455021*/ OPC_CheckChild2Type, MVT::i32, ++/*455023*/ OPC_CheckChild3Integer, 1, ++/*455025*/ OPC_CheckChild3Type, MVT::i32, ++/*455027*/ OPC_CheckChild4Integer, 1, ++/*455029*/ OPC_CheckChild4Type, MVT::i32, ++/*455031*/ OPC_MoveChild5, ++/*455032*/ OPC_CheckInteger, 1, ++/*455034*/ OPC_CheckType, MVT::i32, ++/*455036*/ OPC_MoveParent, ++/*455037*/ OPC_MoveChild6, ++/*455038*/ OPC_CheckInteger, 1, ++/*455040*/ OPC_CheckType, MVT::i32, ++/*455042*/ OPC_MoveParent, ++/*455043*/ OPC_MoveChild7, ++/*455044*/ OPC_CheckInteger, 1, ++/*455046*/ OPC_CheckType, MVT::i32, ++/*455048*/ OPC_MoveParent, ++/*455049*/ OPC_MoveParent, ++/*455050*/ OPC_MoveParent, ++/*455051*/ OPC_CheckChild1Same, 1, ++/*455053*/ OPC_MoveParent, ++/*455054*/ OPC_MoveChild1, ++/*455055*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*455058*/ OPC_CheckChild0Integer, 31, ++/*455060*/ OPC_CheckChild0Type, MVT::i32, ++/*455062*/ OPC_CheckChild1Integer, 31, ++/*455064*/ OPC_CheckChild1Type, MVT::i32, ++/*455066*/ OPC_CheckChild2Integer, 31, ++/*455068*/ OPC_CheckChild2Type, MVT::i32, ++/*455070*/ OPC_CheckChild3Integer, 31, ++/*455072*/ OPC_CheckChild3Type, MVT::i32, ++/*455074*/ OPC_CheckChild4Integer, 31, ++/*455076*/ OPC_CheckChild4Type, MVT::i32, ++/*455078*/ OPC_MoveChild5, ++/*455079*/ OPC_CheckInteger, 31, ++/*455081*/ OPC_CheckType, MVT::i32, ++/*455083*/ OPC_MoveParent, ++/*455084*/ OPC_MoveChild6, ++/*455085*/ OPC_CheckInteger, 31, ++/*455087*/ OPC_CheckType, MVT::i32, ++/*455089*/ OPC_MoveParent, ++/*455090*/ OPC_MoveChild7, ++/*455091*/ OPC_CheckInteger, 31, ++/*455093*/ OPC_CheckType, MVT::i32, ++/*455095*/ OPC_MoveParent, ++/*455096*/ OPC_CheckType, MVT::v8i32, ++/*455098*/ OPC_MoveParent, ++/*455099*/ OPC_MoveParent, ++/*455100*/ OPC_MoveParent, ++/*455101*/ OPC_MoveChild1, ++/*455102*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*455105*/ OPC_CheckChild0Integer, 1, ++/*455107*/ OPC_CheckChild0Type, MVT::i32, ++/*455109*/ OPC_CheckChild1Integer, 1, ++/*455111*/ OPC_CheckChild1Type, MVT::i32, ++/*455113*/ OPC_CheckChild2Integer, 1, ++/*455115*/ OPC_CheckChild2Type, MVT::i32, ++/*455117*/ OPC_CheckChild3Integer, 1, ++/*455119*/ OPC_CheckChild3Type, MVT::i32, ++/*455121*/ OPC_CheckChild4Integer, 1, ++/*455123*/ OPC_CheckChild4Type, MVT::i32, ++/*455125*/ OPC_MoveChild5, ++/*455126*/ OPC_CheckInteger, 1, ++/*455128*/ OPC_CheckType, MVT::i32, ++/*455130*/ OPC_MoveParent, ++/*455131*/ OPC_MoveChild6, ++/*455132*/ OPC_CheckInteger, 1, ++/*455134*/ OPC_CheckType, MVT::i32, ++/*455136*/ OPC_MoveParent, ++/*455137*/ OPC_MoveChild7, ++/*455138*/ OPC_CheckInteger, 1, ++/*455140*/ OPC_CheckType, MVT::i32, ++/*455142*/ OPC_MoveParent, ++/*455143*/ OPC_CheckType, MVT::v8i32, ++/*455145*/ OPC_MoveParent, ++/*455146*/ OPC_CheckType, MVT::v8i32, ++/*455148*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*455150*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a)), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*455158*/ /*Scope*/ 25|128,1/*153*/, /*->455313*/ ++/*455160*/ OPC_CheckChild0Same, 1, ++/*455162*/ OPC_CheckChild1Same, 0, ++/*455164*/ OPC_MoveParent, ++/*455165*/ OPC_MoveChild1, ++/*455166*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*455169*/ OPC_CheckChild0Integer, 1, ++/*455171*/ OPC_CheckChild0Type, MVT::i32, ++/*455173*/ OPC_CheckChild1Integer, 1, ++/*455175*/ OPC_CheckChild1Type, MVT::i32, ++/*455177*/ OPC_CheckChild2Integer, 1, ++/*455179*/ OPC_CheckChild2Type, MVT::i32, ++/*455181*/ OPC_CheckChild3Integer, 1, ++/*455183*/ OPC_CheckChild3Type, MVT::i32, ++/*455185*/ OPC_CheckChild4Integer, 1, ++/*455187*/ OPC_CheckChild4Type, MVT::i32, ++/*455189*/ OPC_MoveChild5, ++/*455190*/ OPC_CheckInteger, 1, ++/*455192*/ OPC_CheckType, MVT::i32, ++/*455194*/ OPC_MoveParent, ++/*455195*/ OPC_MoveChild6, ++/*455196*/ OPC_CheckInteger, 1, ++/*455198*/ OPC_CheckType, MVT::i32, ++/*455200*/ OPC_MoveParent, ++/*455201*/ OPC_MoveChild7, ++/*455202*/ OPC_CheckInteger, 1, ++/*455204*/ OPC_CheckType, MVT::i32, ++/*455206*/ OPC_MoveParent, ++/*455207*/ OPC_MoveParent, ++/*455208*/ OPC_MoveParent, ++/*455209*/ OPC_MoveChild1, ++/*455210*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*455213*/ OPC_CheckChild0Integer, 31, ++/*455215*/ OPC_CheckChild0Type, MVT::i32, ++/*455217*/ OPC_CheckChild1Integer, 31, ++/*455219*/ OPC_CheckChild1Type, MVT::i32, ++/*455221*/ OPC_CheckChild2Integer, 31, ++/*455223*/ OPC_CheckChild2Type, MVT::i32, ++/*455225*/ OPC_CheckChild3Integer, 31, ++/*455227*/ OPC_CheckChild3Type, MVT::i32, ++/*455229*/ OPC_CheckChild4Integer, 31, ++/*455231*/ OPC_CheckChild4Type, MVT::i32, ++/*455233*/ OPC_MoveChild5, ++/*455234*/ OPC_CheckInteger, 31, ++/*455236*/ OPC_CheckType, MVT::i32, ++/*455238*/ OPC_MoveParent, ++/*455239*/ OPC_MoveChild6, ++/*455240*/ OPC_CheckInteger, 31, ++/*455242*/ OPC_CheckType, MVT::i32, ++/*455244*/ OPC_MoveParent, ++/*455245*/ OPC_MoveChild7, ++/*455246*/ OPC_CheckInteger, 31, ++/*455248*/ OPC_CheckType, MVT::i32, ++/*455250*/ OPC_MoveParent, ++/*455251*/ OPC_CheckType, MVT::v8i32, ++/*455253*/ OPC_MoveParent, ++/*455254*/ OPC_MoveParent, ++/*455255*/ OPC_MoveParent, ++/*455256*/ OPC_MoveChild1, ++/*455257*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*455260*/ OPC_CheckChild0Integer, 1, ++/*455262*/ OPC_CheckChild0Type, MVT::i32, ++/*455264*/ OPC_CheckChild1Integer, 1, ++/*455266*/ OPC_CheckChild1Type, MVT::i32, ++/*455268*/ OPC_CheckChild2Integer, 1, ++/*455270*/ OPC_CheckChild2Type, MVT::i32, ++/*455272*/ OPC_CheckChild3Integer, 1, ++/*455274*/ OPC_CheckChild3Type, MVT::i32, ++/*455276*/ OPC_CheckChild4Integer, 1, ++/*455278*/ OPC_CheckChild4Type, MVT::i32, ++/*455280*/ OPC_MoveChild5, ++/*455281*/ OPC_CheckInteger, 1, ++/*455283*/ OPC_CheckType, MVT::i32, ++/*455285*/ OPC_MoveParent, ++/*455286*/ OPC_MoveChild6, ++/*455287*/ OPC_CheckInteger, 1, ++/*455289*/ OPC_CheckType, MVT::i32, ++/*455291*/ OPC_MoveParent, ++/*455292*/ OPC_MoveChild7, ++/*455293*/ OPC_CheckInteger, 1, ++/*455295*/ OPC_CheckType, MVT::i32, ++/*455297*/ OPC_MoveParent, ++/*455298*/ OPC_CheckType, MVT::v8i32, ++/*455300*/ OPC_MoveParent, ++/*455301*/ OPC_CheckType, MVT::v8i32, ++/*455303*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*455305*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a)), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*455313*/ /*Scope*/ 25|128,1/*153*/, /*->455468*/ ++/*455315*/ OPC_CheckChild0Same, 0, ++/*455317*/ OPC_CheckChild1Same, 1, ++/*455319*/ OPC_MoveParent, ++/*455320*/ OPC_MoveChild1, ++/*455321*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*455324*/ OPC_CheckChild0Integer, 1, ++/*455326*/ OPC_CheckChild0Type, MVT::i32, ++/*455328*/ OPC_CheckChild1Integer, 1, ++/*455330*/ OPC_CheckChild1Type, MVT::i32, ++/*455332*/ OPC_CheckChild2Integer, 1, ++/*455334*/ OPC_CheckChild2Type, MVT::i32, ++/*455336*/ OPC_CheckChild3Integer, 1, ++/*455338*/ OPC_CheckChild3Type, MVT::i32, ++/*455340*/ OPC_CheckChild4Integer, 1, ++/*455342*/ OPC_CheckChild4Type, MVT::i32, ++/*455344*/ OPC_MoveChild5, ++/*455345*/ OPC_CheckInteger, 1, ++/*455347*/ OPC_CheckType, MVT::i32, ++/*455349*/ OPC_MoveParent, ++/*455350*/ OPC_MoveChild6, ++/*455351*/ OPC_CheckInteger, 1, ++/*455353*/ OPC_CheckType, MVT::i32, ++/*455355*/ OPC_MoveParent, ++/*455356*/ OPC_MoveChild7, ++/*455357*/ OPC_CheckInteger, 1, ++/*455359*/ OPC_CheckType, MVT::i32, ++/*455361*/ OPC_MoveParent, ++/*455362*/ OPC_MoveParent, ++/*455363*/ OPC_MoveParent, ++/*455364*/ OPC_MoveChild1, ++/*455365*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*455368*/ OPC_CheckChild0Integer, 31, ++/*455370*/ OPC_CheckChild0Type, MVT::i32, ++/*455372*/ OPC_CheckChild1Integer, 31, ++/*455374*/ OPC_CheckChild1Type, MVT::i32, ++/*455376*/ OPC_CheckChild2Integer, 31, ++/*455378*/ OPC_CheckChild2Type, MVT::i32, ++/*455380*/ OPC_CheckChild3Integer, 31, ++/*455382*/ OPC_CheckChild3Type, MVT::i32, ++/*455384*/ OPC_CheckChild4Integer, 31, ++/*455386*/ OPC_CheckChild4Type, MVT::i32, ++/*455388*/ OPC_MoveChild5, ++/*455389*/ OPC_CheckInteger, 31, ++/*455391*/ OPC_CheckType, MVT::i32, ++/*455393*/ OPC_MoveParent, ++/*455394*/ OPC_MoveChild6, ++/*455395*/ OPC_CheckInteger, 31, ++/*455397*/ OPC_CheckType, MVT::i32, ++/*455399*/ OPC_MoveParent, ++/*455400*/ OPC_MoveChild7, ++/*455401*/ OPC_CheckInteger, 31, ++/*455403*/ OPC_CheckType, MVT::i32, ++/*455405*/ OPC_MoveParent, ++/*455406*/ OPC_CheckType, MVT::v8i32, ++/*455408*/ OPC_MoveParent, ++/*455409*/ OPC_MoveParent, ++/*455410*/ OPC_MoveParent, ++/*455411*/ OPC_MoveChild1, ++/*455412*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*455415*/ OPC_CheckChild0Integer, 1, ++/*455417*/ OPC_CheckChild0Type, MVT::i32, ++/*455419*/ OPC_CheckChild1Integer, 1, ++/*455421*/ OPC_CheckChild1Type, MVT::i32, ++/*455423*/ OPC_CheckChild2Integer, 1, ++/*455425*/ OPC_CheckChild2Type, MVT::i32, ++/*455427*/ OPC_CheckChild3Integer, 1, ++/*455429*/ OPC_CheckChild3Type, MVT::i32, ++/*455431*/ OPC_CheckChild4Integer, 1, ++/*455433*/ OPC_CheckChild4Type, MVT::i32, ++/*455435*/ OPC_MoveChild5, ++/*455436*/ OPC_CheckInteger, 1, ++/*455438*/ OPC_CheckType, MVT::i32, ++/*455440*/ OPC_MoveParent, ++/*455441*/ OPC_MoveChild6, ++/*455442*/ OPC_CheckInteger, 1, ++/*455444*/ OPC_CheckType, MVT::i32, ++/*455446*/ OPC_MoveParent, ++/*455447*/ OPC_MoveChild7, ++/*455448*/ OPC_CheckInteger, 1, ++/*455450*/ OPC_CheckType, MVT::i32, ++/*455452*/ OPC_MoveParent, ++/*455453*/ OPC_CheckType, MVT::v8i32, ++/*455455*/ OPC_MoveParent, ++/*455456*/ OPC_CheckType, MVT::v8i32, ++/*455458*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*455460*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a)), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*455468*/ 0, /*End of Scope*/ ++/*455469*/ 0, // EndSwitchOpcode ++/*455470*/ /*Scope*/ 58|128,2/*314*/, /*->455786*/ ++/*455472*/ OPC_CheckChild0Same, 0, ++/*455474*/ OPC_MoveChild1, ++/*455475*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*455478*/ OPC_Scope, 23|128,1/*151*/, /*->455632*/ // 2 children in Scope ++/*455481*/ OPC_MoveChild0, ++/*455482*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*455485*/ OPC_CheckChild0Integer, 1, ++/*455487*/ OPC_CheckChild0Type, MVT::i32, ++/*455489*/ OPC_CheckChild1Integer, 1, ++/*455491*/ OPC_CheckChild1Type, MVT::i32, ++/*455493*/ OPC_CheckChild2Integer, 1, ++/*455495*/ OPC_CheckChild2Type, MVT::i32, ++/*455497*/ OPC_CheckChild3Integer, 1, ++/*455499*/ OPC_CheckChild3Type, MVT::i32, ++/*455501*/ OPC_CheckChild4Integer, 1, ++/*455503*/ OPC_CheckChild4Type, MVT::i32, ++/*455505*/ OPC_MoveChild5, ++/*455506*/ OPC_CheckInteger, 1, ++/*455508*/ OPC_CheckType, MVT::i32, ++/*455510*/ OPC_MoveParent, ++/*455511*/ OPC_MoveChild6, ++/*455512*/ OPC_CheckInteger, 1, ++/*455514*/ OPC_CheckType, MVT::i32, ++/*455516*/ OPC_MoveParent, ++/*455517*/ OPC_MoveChild7, ++/*455518*/ OPC_CheckInteger, 1, ++/*455520*/ OPC_CheckType, MVT::i32, ++/*455522*/ OPC_MoveParent, ++/*455523*/ OPC_MoveParent, ++/*455524*/ OPC_CheckChild1Same, 1, ++/*455526*/ OPC_MoveParent, ++/*455527*/ OPC_MoveParent, ++/*455528*/ OPC_MoveChild1, ++/*455529*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*455532*/ OPC_CheckChild0Integer, 31, ++/*455534*/ OPC_CheckChild0Type, MVT::i32, ++/*455536*/ OPC_CheckChild1Integer, 31, ++/*455538*/ OPC_CheckChild1Type, MVT::i32, ++/*455540*/ OPC_CheckChild2Integer, 31, ++/*455542*/ OPC_CheckChild2Type, MVT::i32, ++/*455544*/ OPC_CheckChild3Integer, 31, ++/*455546*/ OPC_CheckChild3Type, MVT::i32, ++/*455548*/ OPC_CheckChild4Integer, 31, ++/*455550*/ OPC_CheckChild4Type, MVT::i32, ++/*455552*/ OPC_MoveChild5, ++/*455553*/ OPC_CheckInteger, 31, ++/*455555*/ OPC_CheckType, MVT::i32, ++/*455557*/ OPC_MoveParent, ++/*455558*/ OPC_MoveChild6, ++/*455559*/ OPC_CheckInteger, 31, ++/*455561*/ OPC_CheckType, MVT::i32, ++/*455563*/ OPC_MoveParent, ++/*455564*/ OPC_MoveChild7, ++/*455565*/ OPC_CheckInteger, 31, ++/*455567*/ OPC_CheckType, MVT::i32, ++/*455569*/ OPC_MoveParent, ++/*455570*/ OPC_CheckType, MVT::v8i32, ++/*455572*/ OPC_MoveParent, ++/*455573*/ OPC_MoveParent, ++/*455574*/ OPC_MoveParent, ++/*455575*/ OPC_MoveChild1, ++/*455576*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*455579*/ OPC_CheckChild0Integer, 1, ++/*455581*/ OPC_CheckChild0Type, MVT::i32, ++/*455583*/ OPC_CheckChild1Integer, 1, ++/*455585*/ OPC_CheckChild1Type, MVT::i32, ++/*455587*/ OPC_CheckChild2Integer, 1, ++/*455589*/ OPC_CheckChild2Type, MVT::i32, ++/*455591*/ OPC_CheckChild3Integer, 1, ++/*455593*/ OPC_CheckChild3Type, MVT::i32, ++/*455595*/ OPC_CheckChild4Integer, 1, ++/*455597*/ OPC_CheckChild4Type, MVT::i32, ++/*455599*/ OPC_MoveChild5, ++/*455600*/ OPC_CheckInteger, 1, ++/*455602*/ OPC_CheckType, MVT::i32, ++/*455604*/ OPC_MoveParent, ++/*455605*/ OPC_MoveChild6, ++/*455606*/ OPC_CheckInteger, 1, ++/*455608*/ OPC_CheckType, MVT::i32, ++/*455610*/ OPC_MoveParent, ++/*455611*/ OPC_MoveChild7, ++/*455612*/ OPC_CheckInteger, 1, ++/*455614*/ OPC_CheckType, MVT::i32, ++/*455616*/ OPC_MoveParent, ++/*455617*/ OPC_CheckType, MVT::v8i32, ++/*455619*/ OPC_MoveParent, ++/*455620*/ OPC_CheckType, MVT::v8i32, ++/*455622*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*455624*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a)), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*455632*/ /*Scope*/ 23|128,1/*151*/, /*->455785*/ ++/*455634*/ OPC_CheckChild0Same, 1, ++/*455636*/ OPC_MoveChild1, ++/*455637*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*455640*/ OPC_CheckChild0Integer, 1, ++/*455642*/ OPC_CheckChild0Type, MVT::i32, ++/*455644*/ OPC_CheckChild1Integer, 1, ++/*455646*/ OPC_CheckChild1Type, MVT::i32, ++/*455648*/ OPC_CheckChild2Integer, 1, ++/*455650*/ OPC_CheckChild2Type, MVT::i32, ++/*455652*/ OPC_CheckChild3Integer, 1, ++/*455654*/ OPC_CheckChild3Type, MVT::i32, ++/*455656*/ OPC_CheckChild4Integer, 1, ++/*455658*/ OPC_CheckChild4Type, MVT::i32, ++/*455660*/ OPC_MoveChild5, ++/*455661*/ OPC_CheckInteger, 1, ++/*455663*/ OPC_CheckType, MVT::i32, ++/*455665*/ OPC_MoveParent, ++/*455666*/ OPC_MoveChild6, ++/*455667*/ OPC_CheckInteger, 1, ++/*455669*/ OPC_CheckType, MVT::i32, ++/*455671*/ OPC_MoveParent, ++/*455672*/ OPC_MoveChild7, ++/*455673*/ OPC_CheckInteger, 1, ++/*455675*/ OPC_CheckType, MVT::i32, ++/*455677*/ OPC_MoveParent, ++/*455678*/ OPC_MoveParent, ++/*455679*/ OPC_MoveParent, ++/*455680*/ OPC_MoveParent, ++/*455681*/ OPC_MoveChild1, ++/*455682*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*455685*/ OPC_CheckChild0Integer, 31, ++/*455687*/ OPC_CheckChild0Type, MVT::i32, ++/*455689*/ OPC_CheckChild1Integer, 31, ++/*455691*/ OPC_CheckChild1Type, MVT::i32, ++/*455693*/ OPC_CheckChild2Integer, 31, ++/*455695*/ OPC_CheckChild2Type, MVT::i32, ++/*455697*/ OPC_CheckChild3Integer, 31, ++/*455699*/ OPC_CheckChild3Type, MVT::i32, ++/*455701*/ OPC_CheckChild4Integer, 31, ++/*455703*/ OPC_CheckChild4Type, MVT::i32, ++/*455705*/ OPC_MoveChild5, ++/*455706*/ OPC_CheckInteger, 31, ++/*455708*/ OPC_CheckType, MVT::i32, ++/*455710*/ OPC_MoveParent, ++/*455711*/ OPC_MoveChild6, ++/*455712*/ OPC_CheckInteger, 31, ++/*455714*/ OPC_CheckType, MVT::i32, ++/*455716*/ OPC_MoveParent, ++/*455717*/ OPC_MoveChild7, ++/*455718*/ OPC_CheckInteger, 31, ++/*455720*/ OPC_CheckType, MVT::i32, ++/*455722*/ OPC_MoveParent, ++/*455723*/ OPC_CheckType, MVT::v8i32, ++/*455725*/ OPC_MoveParent, ++/*455726*/ OPC_MoveParent, ++/*455727*/ OPC_MoveParent, ++/*455728*/ OPC_MoveChild1, ++/*455729*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*455732*/ OPC_CheckChild0Integer, 1, ++/*455734*/ OPC_CheckChild0Type, MVT::i32, ++/*455736*/ OPC_CheckChild1Integer, 1, ++/*455738*/ OPC_CheckChild1Type, MVT::i32, ++/*455740*/ OPC_CheckChild2Integer, 1, ++/*455742*/ OPC_CheckChild2Type, MVT::i32, ++/*455744*/ OPC_CheckChild3Integer, 1, ++/*455746*/ OPC_CheckChild3Type, MVT::i32, ++/*455748*/ OPC_CheckChild4Integer, 1, ++/*455750*/ OPC_CheckChild4Type, MVT::i32, ++/*455752*/ OPC_MoveChild5, ++/*455753*/ OPC_CheckInteger, 1, ++/*455755*/ OPC_CheckType, MVT::i32, ++/*455757*/ OPC_MoveParent, ++/*455758*/ OPC_MoveChild6, ++/*455759*/ OPC_CheckInteger, 1, ++/*455761*/ OPC_CheckType, MVT::i32, ++/*455763*/ OPC_MoveParent, ++/*455764*/ OPC_MoveChild7, ++/*455765*/ OPC_CheckInteger, 1, ++/*455767*/ OPC_CheckType, MVT::i32, ++/*455769*/ OPC_MoveParent, ++/*455770*/ OPC_CheckType, MVT::v8i32, ++/*455772*/ OPC_MoveParent, ++/*455773*/ OPC_CheckType, MVT::v8i32, ++/*455775*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*455777*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a)), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*455785*/ 0, /*End of Scope*/ ++/*455786*/ /*Scope*/ 58|128,2/*314*/, /*->456102*/ ++/*455788*/ OPC_CheckChild0Same, 1, ++/*455790*/ OPC_MoveChild1, ++/*455791*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*455794*/ OPC_Scope, 23|128,1/*151*/, /*->455948*/ // 2 children in Scope ++/*455797*/ OPC_MoveChild0, ++/*455798*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*455801*/ OPC_CheckChild0Integer, 1, ++/*455803*/ OPC_CheckChild0Type, MVT::i32, ++/*455805*/ OPC_CheckChild1Integer, 1, ++/*455807*/ OPC_CheckChild1Type, MVT::i32, ++/*455809*/ OPC_CheckChild2Integer, 1, ++/*455811*/ OPC_CheckChild2Type, MVT::i32, ++/*455813*/ OPC_CheckChild3Integer, 1, ++/*455815*/ OPC_CheckChild3Type, MVT::i32, ++/*455817*/ OPC_CheckChild4Integer, 1, ++/*455819*/ OPC_CheckChild4Type, MVT::i32, ++/*455821*/ OPC_MoveChild5, ++/*455822*/ OPC_CheckInteger, 1, ++/*455824*/ OPC_CheckType, MVT::i32, ++/*455826*/ OPC_MoveParent, ++/*455827*/ OPC_MoveChild6, ++/*455828*/ OPC_CheckInteger, 1, ++/*455830*/ OPC_CheckType, MVT::i32, ++/*455832*/ OPC_MoveParent, ++/*455833*/ OPC_MoveChild7, ++/*455834*/ OPC_CheckInteger, 1, ++/*455836*/ OPC_CheckType, MVT::i32, ++/*455838*/ OPC_MoveParent, ++/*455839*/ OPC_MoveParent, ++/*455840*/ OPC_CheckChild1Same, 0, ++/*455842*/ OPC_MoveParent, ++/*455843*/ OPC_MoveParent, ++/*455844*/ OPC_MoveChild1, ++/*455845*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*455848*/ OPC_CheckChild0Integer, 31, ++/*455850*/ OPC_CheckChild0Type, MVT::i32, ++/*455852*/ OPC_CheckChild1Integer, 31, ++/*455854*/ OPC_CheckChild1Type, MVT::i32, ++/*455856*/ OPC_CheckChild2Integer, 31, ++/*455858*/ OPC_CheckChild2Type, MVT::i32, ++/*455860*/ OPC_CheckChild3Integer, 31, ++/*455862*/ OPC_CheckChild3Type, MVT::i32, ++/*455864*/ OPC_CheckChild4Integer, 31, ++/*455866*/ OPC_CheckChild4Type, MVT::i32, ++/*455868*/ OPC_MoveChild5, ++/*455869*/ OPC_CheckInteger, 31, ++/*455871*/ OPC_CheckType, MVT::i32, ++/*455873*/ OPC_MoveParent, ++/*455874*/ OPC_MoveChild6, ++/*455875*/ OPC_CheckInteger, 31, ++/*455877*/ OPC_CheckType, MVT::i32, ++/*455879*/ OPC_MoveParent, ++/*455880*/ OPC_MoveChild7, ++/*455881*/ OPC_CheckInteger, 31, ++/*455883*/ OPC_CheckType, MVT::i32, ++/*455885*/ OPC_MoveParent, ++/*455886*/ OPC_CheckType, MVT::v8i32, ++/*455888*/ OPC_MoveParent, ++/*455889*/ OPC_MoveParent, ++/*455890*/ OPC_MoveParent, ++/*455891*/ OPC_MoveChild1, ++/*455892*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*455895*/ OPC_CheckChild0Integer, 1, ++/*455897*/ OPC_CheckChild0Type, MVT::i32, ++/*455899*/ OPC_CheckChild1Integer, 1, ++/*455901*/ OPC_CheckChild1Type, MVT::i32, ++/*455903*/ OPC_CheckChild2Integer, 1, ++/*455905*/ OPC_CheckChild2Type, MVT::i32, ++/*455907*/ OPC_CheckChild3Integer, 1, ++/*455909*/ OPC_CheckChild3Type, MVT::i32, ++/*455911*/ OPC_CheckChild4Integer, 1, ++/*455913*/ OPC_CheckChild4Type, MVT::i32, ++/*455915*/ OPC_MoveChild5, ++/*455916*/ OPC_CheckInteger, 1, ++/*455918*/ OPC_CheckType, MVT::i32, ++/*455920*/ OPC_MoveParent, ++/*455921*/ OPC_MoveChild6, ++/*455922*/ OPC_CheckInteger, 1, ++/*455924*/ OPC_CheckType, MVT::i32, ++/*455926*/ OPC_MoveParent, ++/*455927*/ OPC_MoveChild7, ++/*455928*/ OPC_CheckInteger, 1, ++/*455930*/ OPC_CheckType, MVT::i32, ++/*455932*/ OPC_MoveParent, ++/*455933*/ OPC_CheckType, MVT::v8i32, ++/*455935*/ OPC_MoveParent, ++/*455936*/ OPC_CheckType, MVT::v8i32, ++/*455938*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*455940*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a)), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*455948*/ /*Scope*/ 23|128,1/*151*/, /*->456101*/ ++/*455950*/ OPC_CheckChild0Same, 0, ++/*455952*/ OPC_MoveChild1, ++/*455953*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*455956*/ OPC_CheckChild0Integer, 1, ++/*455958*/ OPC_CheckChild0Type, MVT::i32, ++/*455960*/ OPC_CheckChild1Integer, 1, ++/*455962*/ OPC_CheckChild1Type, MVT::i32, ++/*455964*/ OPC_CheckChild2Integer, 1, ++/*455966*/ OPC_CheckChild2Type, MVT::i32, ++/*455968*/ OPC_CheckChild3Integer, 1, ++/*455970*/ OPC_CheckChild3Type, MVT::i32, ++/*455972*/ OPC_CheckChild4Integer, 1, ++/*455974*/ OPC_CheckChild4Type, MVT::i32, ++/*455976*/ OPC_MoveChild5, ++/*455977*/ OPC_CheckInteger, 1, ++/*455979*/ OPC_CheckType, MVT::i32, ++/*455981*/ OPC_MoveParent, ++/*455982*/ OPC_MoveChild6, ++/*455983*/ OPC_CheckInteger, 1, ++/*455985*/ OPC_CheckType, MVT::i32, ++/*455987*/ OPC_MoveParent, ++/*455988*/ OPC_MoveChild7, ++/*455989*/ OPC_CheckInteger, 1, ++/*455991*/ OPC_CheckType, MVT::i32, ++/*455993*/ OPC_MoveParent, ++/*455994*/ OPC_MoveParent, ++/*455995*/ OPC_MoveParent, ++/*455996*/ OPC_MoveParent, ++/*455997*/ OPC_MoveChild1, ++/*455998*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*456001*/ OPC_CheckChild0Integer, 31, ++/*456003*/ OPC_CheckChild0Type, MVT::i32, ++/*456005*/ OPC_CheckChild1Integer, 31, ++/*456007*/ OPC_CheckChild1Type, MVT::i32, ++/*456009*/ OPC_CheckChild2Integer, 31, ++/*456011*/ OPC_CheckChild2Type, MVT::i32, ++/*456013*/ OPC_CheckChild3Integer, 31, ++/*456015*/ OPC_CheckChild3Type, MVT::i32, ++/*456017*/ OPC_CheckChild4Integer, 31, ++/*456019*/ OPC_CheckChild4Type, MVT::i32, ++/*456021*/ OPC_MoveChild5, ++/*456022*/ OPC_CheckInteger, 31, ++/*456024*/ OPC_CheckType, MVT::i32, ++/*456026*/ OPC_MoveParent, ++/*456027*/ OPC_MoveChild6, ++/*456028*/ OPC_CheckInteger, 31, ++/*456030*/ OPC_CheckType, MVT::i32, ++/*456032*/ OPC_MoveParent, ++/*456033*/ OPC_MoveChild7, ++/*456034*/ OPC_CheckInteger, 31, ++/*456036*/ OPC_CheckType, MVT::i32, ++/*456038*/ OPC_MoveParent, ++/*456039*/ OPC_CheckType, MVT::v8i32, ++/*456041*/ OPC_MoveParent, ++/*456042*/ OPC_MoveParent, ++/*456043*/ OPC_MoveParent, ++/*456044*/ OPC_MoveChild1, ++/*456045*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*456048*/ OPC_CheckChild0Integer, 1, ++/*456050*/ OPC_CheckChild0Type, MVT::i32, ++/*456052*/ OPC_CheckChild1Integer, 1, ++/*456054*/ OPC_CheckChild1Type, MVT::i32, ++/*456056*/ OPC_CheckChild2Integer, 1, ++/*456058*/ OPC_CheckChild2Type, MVT::i32, ++/*456060*/ OPC_CheckChild3Integer, 1, ++/*456062*/ OPC_CheckChild3Type, MVT::i32, ++/*456064*/ OPC_CheckChild4Integer, 1, ++/*456066*/ OPC_CheckChild4Type, MVT::i32, ++/*456068*/ OPC_MoveChild5, ++/*456069*/ OPC_CheckInteger, 1, ++/*456071*/ OPC_CheckType, MVT::i32, ++/*456073*/ OPC_MoveParent, ++/*456074*/ OPC_MoveChild6, ++/*456075*/ OPC_CheckInteger, 1, ++/*456077*/ OPC_CheckType, MVT::i32, ++/*456079*/ OPC_MoveParent, ++/*456080*/ OPC_MoveChild7, ++/*456081*/ OPC_CheckInteger, 1, ++/*456083*/ OPC_CheckType, MVT::i32, ++/*456085*/ OPC_MoveParent, ++/*456086*/ OPC_CheckType, MVT::v8i32, ++/*456088*/ OPC_MoveParent, ++/*456089*/ OPC_CheckType, MVT::v8i32, ++/*456091*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*456093*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a)), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*456101*/ 0, /*End of Scope*/ ++/*456102*/ /*Scope*/ 15|128,2/*271*/, /*->456375*/ ++/*456104*/ OPC_MoveChild0, ++/*456105*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*456108*/ OPC_CheckChild0Integer, 1, ++/*456110*/ OPC_CheckChild0Type, MVT::i32, ++/*456112*/ OPC_CheckChild1Integer, 1, ++/*456114*/ OPC_CheckChild1Type, MVT::i32, ++/*456116*/ OPC_CheckChild2Integer, 1, ++/*456118*/ OPC_CheckChild2Type, MVT::i32, ++/*456120*/ OPC_CheckChild3Integer, 1, ++/*456122*/ OPC_CheckChild3Type, MVT::i32, ++/*456124*/ OPC_CheckChild4Integer, 1, ++/*456126*/ OPC_CheckChild4Type, MVT::i32, ++/*456128*/ OPC_MoveChild5, ++/*456129*/ OPC_CheckInteger, 1, ++/*456131*/ OPC_CheckType, MVT::i32, ++/*456133*/ OPC_MoveParent, ++/*456134*/ OPC_MoveChild6, ++/*456135*/ OPC_CheckInteger, 1, ++/*456137*/ OPC_CheckType, MVT::i32, ++/*456139*/ OPC_MoveParent, ++/*456140*/ OPC_MoveChild7, ++/*456141*/ OPC_CheckInteger, 1, ++/*456143*/ OPC_CheckType, MVT::i32, ++/*456145*/ OPC_MoveParent, ++/*456146*/ OPC_MoveParent, ++/*456147*/ OPC_MoveChild1, ++/*456148*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*456151*/ OPC_Scope, 110, /*->456263*/ // 2 children in Scope ++/*456153*/ OPC_CheckChild0Same, 1, ++/*456155*/ OPC_CheckChild1Same, 0, ++/*456157*/ OPC_MoveParent, ++/*456158*/ OPC_MoveParent, ++/*456159*/ OPC_MoveChild1, ++/*456160*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*456163*/ OPC_CheckChild0Integer, 31, ++/*456165*/ OPC_CheckChild0Type, MVT::i32, ++/*456167*/ OPC_CheckChild1Integer, 31, ++/*456169*/ OPC_CheckChild1Type, MVT::i32, ++/*456171*/ OPC_CheckChild2Integer, 31, ++/*456173*/ OPC_CheckChild2Type, MVT::i32, ++/*456175*/ OPC_CheckChild3Integer, 31, ++/*456177*/ OPC_CheckChild3Type, MVT::i32, ++/*456179*/ OPC_CheckChild4Integer, 31, ++/*456181*/ OPC_CheckChild4Type, MVT::i32, ++/*456183*/ OPC_MoveChild5, ++/*456184*/ OPC_CheckInteger, 31, ++/*456186*/ OPC_CheckType, MVT::i32, ++/*456188*/ OPC_MoveParent, ++/*456189*/ OPC_MoveChild6, ++/*456190*/ OPC_CheckInteger, 31, ++/*456192*/ OPC_CheckType, MVT::i32, ++/*456194*/ OPC_MoveParent, ++/*456195*/ OPC_MoveChild7, ++/*456196*/ OPC_CheckInteger, 31, ++/*456198*/ OPC_CheckType, MVT::i32, ++/*456200*/ OPC_MoveParent, ++/*456201*/ OPC_CheckType, MVT::v8i32, ++/*456203*/ OPC_MoveParent, ++/*456204*/ OPC_MoveParent, ++/*456205*/ OPC_MoveParent, ++/*456206*/ OPC_MoveChild1, ++/*456207*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*456210*/ OPC_CheckChild0Integer, 1, ++/*456212*/ OPC_CheckChild0Type, MVT::i32, ++/*456214*/ OPC_CheckChild1Integer, 1, ++/*456216*/ OPC_CheckChild1Type, MVT::i32, ++/*456218*/ OPC_CheckChild2Integer, 1, ++/*456220*/ OPC_CheckChild2Type, MVT::i32, ++/*456222*/ OPC_CheckChild3Integer, 1, ++/*456224*/ OPC_CheckChild3Type, MVT::i32, ++/*456226*/ OPC_CheckChild4Integer, 1, ++/*456228*/ OPC_CheckChild4Type, MVT::i32, ++/*456230*/ OPC_MoveChild5, ++/*456231*/ OPC_CheckInteger, 1, ++/*456233*/ OPC_CheckType, MVT::i32, ++/*456235*/ OPC_MoveParent, ++/*456236*/ OPC_MoveChild6, ++/*456237*/ OPC_CheckInteger, 1, ++/*456239*/ OPC_CheckType, MVT::i32, ++/*456241*/ OPC_MoveParent, ++/*456242*/ OPC_MoveChild7, ++/*456243*/ OPC_CheckInteger, 1, ++/*456245*/ OPC_CheckType, MVT::i32, ++/*456247*/ OPC_MoveParent, ++/*456248*/ OPC_CheckType, MVT::v8i32, ++/*456250*/ OPC_MoveParent, ++/*456251*/ OPC_CheckType, MVT::v8i32, ++/*456253*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*456255*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a)), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*456263*/ /*Scope*/ 110, /*->456374*/ ++/*456264*/ OPC_CheckChild0Same, 0, ++/*456266*/ OPC_CheckChild1Same, 1, ++/*456268*/ OPC_MoveParent, ++/*456269*/ OPC_MoveParent, ++/*456270*/ OPC_MoveChild1, ++/*456271*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*456274*/ OPC_CheckChild0Integer, 31, ++/*456276*/ OPC_CheckChild0Type, MVT::i32, ++/*456278*/ OPC_CheckChild1Integer, 31, ++/*456280*/ OPC_CheckChild1Type, MVT::i32, ++/*456282*/ OPC_CheckChild2Integer, 31, ++/*456284*/ OPC_CheckChild2Type, MVT::i32, ++/*456286*/ OPC_CheckChild3Integer, 31, ++/*456288*/ OPC_CheckChild3Type, MVT::i32, ++/*456290*/ OPC_CheckChild4Integer, 31, ++/*456292*/ OPC_CheckChild4Type, MVT::i32, ++/*456294*/ OPC_MoveChild5, ++/*456295*/ OPC_CheckInteger, 31, ++/*456297*/ OPC_CheckType, MVT::i32, ++/*456299*/ OPC_MoveParent, ++/*456300*/ OPC_MoveChild6, ++/*456301*/ OPC_CheckInteger, 31, ++/*456303*/ OPC_CheckType, MVT::i32, ++/*456305*/ OPC_MoveParent, ++/*456306*/ OPC_MoveChild7, ++/*456307*/ OPC_CheckInteger, 31, ++/*456309*/ OPC_CheckType, MVT::i32, ++/*456311*/ OPC_MoveParent, ++/*456312*/ OPC_CheckType, MVT::v8i32, ++/*456314*/ OPC_MoveParent, ++/*456315*/ OPC_MoveParent, ++/*456316*/ OPC_MoveParent, ++/*456317*/ OPC_MoveChild1, ++/*456318*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*456321*/ OPC_CheckChild0Integer, 1, ++/*456323*/ OPC_CheckChild0Type, MVT::i32, ++/*456325*/ OPC_CheckChild1Integer, 1, ++/*456327*/ OPC_CheckChild1Type, MVT::i32, ++/*456329*/ OPC_CheckChild2Integer, 1, ++/*456331*/ OPC_CheckChild2Type, MVT::i32, ++/*456333*/ OPC_CheckChild3Integer, 1, ++/*456335*/ OPC_CheckChild3Type, MVT::i32, ++/*456337*/ OPC_CheckChild4Integer, 1, ++/*456339*/ OPC_CheckChild4Type, MVT::i32, ++/*456341*/ OPC_MoveChild5, ++/*456342*/ OPC_CheckInteger, 1, ++/*456344*/ OPC_CheckType, MVT::i32, ++/*456346*/ OPC_MoveParent, ++/*456347*/ OPC_MoveChild6, ++/*456348*/ OPC_CheckInteger, 1, ++/*456350*/ OPC_CheckType, MVT::i32, ++/*456352*/ OPC_MoveParent, ++/*456353*/ OPC_MoveChild7, ++/*456354*/ OPC_CheckInteger, 1, ++/*456356*/ OPC_CheckType, MVT::i32, ++/*456358*/ OPC_MoveParent, ++/*456359*/ OPC_CheckType, MVT::v8i32, ++/*456361*/ OPC_MoveParent, ++/*456362*/ OPC_CheckType, MVT::v8i32, ++/*456364*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*456366*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a)), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*456374*/ 0, /*End of Scope*/ ++/*456375*/ 0, /*End of Scope*/ ++/*456376*/ /*Scope*/ 98|128,10/*1378*/, /*->457756*/ ++/*456378*/ OPC_RecordChild0, // #0 = $a ++/*456379*/ OPC_Scope, 15|128,7/*911*/, /*->457293*/ // 2 children in Scope ++/*456382*/ OPC_RecordChild1, // #1 = $b ++/*456383*/ OPC_MoveParent, ++/*456384*/ OPC_MoveChild1, ++/*456385*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*456388*/ OPC_MoveChild0, ++/*456389*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*456392*/ OPC_Scope, 55|128,3/*439*/, /*->456834*/ // 3 children in Scope ++/*456395*/ OPC_CheckChild0Same, 0, ++/*456397*/ OPC_CheckChild1Same, 1, ++/*456399*/ OPC_MoveParent, ++/*456400*/ OPC_MoveChild1, ++/*456401*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*456404*/ OPC_Scope, 84|128,1/*212*/, /*->456619*/ // 2 children in Scope ++/*456407*/ OPC_CheckChild0Integer, 7, ++/*456409*/ OPC_CheckChild0Type, MVT::i32, ++/*456411*/ OPC_CheckChild1Integer, 7, ++/*456413*/ OPC_CheckChild1Type, MVT::i32, ++/*456415*/ OPC_CheckChild2Integer, 7, ++/*456417*/ OPC_CheckChild2Type, MVT::i32, ++/*456419*/ OPC_CheckChild3Integer, 7, ++/*456421*/ OPC_CheckChild3Type, MVT::i32, ++/*456423*/ OPC_CheckChild4Integer, 7, ++/*456425*/ OPC_CheckChild4Type, MVT::i32, ++/*456427*/ OPC_MoveChild5, ++/*456428*/ OPC_CheckInteger, 7, ++/*456430*/ OPC_CheckType, MVT::i32, ++/*456432*/ OPC_MoveParent, ++/*456433*/ OPC_MoveChild6, ++/*456434*/ OPC_CheckInteger, 7, ++/*456436*/ OPC_CheckType, MVT::i32, ++/*456438*/ OPC_MoveParent, ++/*456439*/ OPC_MoveChild7, ++/*456440*/ OPC_CheckInteger, 7, ++/*456442*/ OPC_CheckType, MVT::i32, ++/*456444*/ OPC_MoveParent, ++/*456445*/ OPC_MoveChild, 8, ++/*456447*/ OPC_CheckInteger, 7, ++/*456449*/ OPC_CheckType, MVT::i32, ++/*456451*/ OPC_MoveParent, ++/*456452*/ OPC_MoveChild, 9, ++/*456454*/ OPC_CheckInteger, 7, ++/*456456*/ OPC_CheckType, MVT::i32, ++/*456458*/ OPC_MoveParent, ++/*456459*/ OPC_MoveChild, 10, ++/*456461*/ OPC_CheckInteger, 7, ++/*456463*/ OPC_CheckType, MVT::i32, ++/*456465*/ OPC_MoveParent, ++/*456466*/ OPC_MoveChild, 11, ++/*456468*/ OPC_CheckInteger, 7, ++/*456470*/ OPC_CheckType, MVT::i32, ++/*456472*/ OPC_MoveParent, ++/*456473*/ OPC_MoveChild, 12, ++/*456475*/ OPC_CheckInteger, 7, ++/*456477*/ OPC_CheckType, MVT::i32, ++/*456479*/ OPC_MoveParent, ++/*456480*/ OPC_MoveChild, 13, ++/*456482*/ OPC_CheckInteger, 7, ++/*456484*/ OPC_CheckType, MVT::i32, ++/*456486*/ OPC_MoveParent, ++/*456487*/ OPC_MoveChild, 14, ++/*456489*/ OPC_CheckInteger, 7, ++/*456491*/ OPC_CheckType, MVT::i32, ++/*456493*/ OPC_MoveParent, ++/*456494*/ OPC_MoveChild, 15, ++/*456496*/ OPC_CheckInteger, 7, ++/*456498*/ OPC_CheckType, MVT::i32, ++/*456500*/ OPC_MoveParent, ++/*456501*/ OPC_CheckType, MVT::v16i8, ++/*456503*/ OPC_MoveParent, ++/*456504*/ OPC_MoveParent, ++/*456505*/ OPC_MoveParent, ++/*456506*/ OPC_MoveChild1, ++/*456507*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*456510*/ OPC_CheckChild0Integer, 1, ++/*456512*/ OPC_CheckChild0Type, MVT::i32, ++/*456514*/ OPC_CheckChild1Integer, 1, ++/*456516*/ OPC_CheckChild1Type, MVT::i32, ++/*456518*/ OPC_CheckChild2Integer, 1, ++/*456520*/ OPC_CheckChild2Type, MVT::i32, ++/*456522*/ OPC_CheckChild3Integer, 1, ++/*456524*/ OPC_CheckChild3Type, MVT::i32, ++/*456526*/ OPC_CheckChild4Integer, 1, ++/*456528*/ OPC_CheckChild4Type, MVT::i32, ++/*456530*/ OPC_MoveChild5, ++/*456531*/ OPC_CheckInteger, 1, ++/*456533*/ OPC_CheckType, MVT::i32, ++/*456535*/ OPC_MoveParent, ++/*456536*/ OPC_MoveChild6, ++/*456537*/ OPC_CheckInteger, 1, ++/*456539*/ OPC_CheckType, MVT::i32, ++/*456541*/ OPC_MoveParent, ++/*456542*/ OPC_MoveChild7, ++/*456543*/ OPC_CheckInteger, 1, ++/*456545*/ OPC_CheckType, MVT::i32, ++/*456547*/ OPC_MoveParent, ++/*456548*/ OPC_MoveChild, 8, ++/*456550*/ OPC_CheckInteger, 1, ++/*456552*/ OPC_CheckType, MVT::i32, ++/*456554*/ OPC_MoveParent, ++/*456555*/ OPC_MoveChild, 9, ++/*456557*/ OPC_CheckInteger, 1, ++/*456559*/ OPC_CheckType, MVT::i32, ++/*456561*/ OPC_MoveParent, ++/*456562*/ OPC_MoveChild, 10, ++/*456564*/ OPC_CheckInteger, 1, ++/*456566*/ OPC_CheckType, MVT::i32, ++/*456568*/ OPC_MoveParent, ++/*456569*/ OPC_MoveChild, 11, ++/*456571*/ OPC_CheckInteger, 1, ++/*456573*/ OPC_CheckType, MVT::i32, ++/*456575*/ OPC_MoveParent, ++/*456576*/ OPC_MoveChild, 12, ++/*456578*/ OPC_CheckInteger, 1, ++/*456580*/ OPC_CheckType, MVT::i32, ++/*456582*/ OPC_MoveParent, ++/*456583*/ OPC_MoveChild, 13, ++/*456585*/ OPC_CheckInteger, 1, ++/*456587*/ OPC_CheckType, MVT::i32, ++/*456589*/ OPC_MoveParent, ++/*456590*/ OPC_MoveChild, 14, ++/*456592*/ OPC_CheckInteger, 1, ++/*456594*/ OPC_CheckType, MVT::i32, ++/*456596*/ OPC_MoveParent, ++/*456597*/ OPC_MoveChild, 15, ++/*456599*/ OPC_CheckInteger, 1, ++/*456601*/ OPC_CheckType, MVT::i32, ++/*456603*/ OPC_MoveParent, ++/*456604*/ OPC_CheckType, MVT::v16i8, ++/*456606*/ OPC_MoveParent, ++/*456607*/ OPC_CheckType, MVT::v16i8, ++/*456609*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*456611*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 181 ++ // Dst: (VAVG_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*456619*/ /*Scope*/ 84|128,1/*212*/, /*->456833*/ ++/*456621*/ OPC_CheckChild0Integer, 15, ++/*456623*/ OPC_CheckChild0Type, MVT::i32, ++/*456625*/ OPC_CheckChild1Integer, 15, ++/*456627*/ OPC_CheckChild1Type, MVT::i32, ++/*456629*/ OPC_CheckChild2Integer, 15, ++/*456631*/ OPC_CheckChild2Type, MVT::i32, ++/*456633*/ OPC_CheckChild3Integer, 15, ++/*456635*/ OPC_CheckChild3Type, MVT::i32, ++/*456637*/ OPC_CheckChild4Integer, 15, ++/*456639*/ OPC_CheckChild4Type, MVT::i32, ++/*456641*/ OPC_MoveChild5, ++/*456642*/ OPC_CheckInteger, 15, ++/*456644*/ OPC_CheckType, MVT::i32, ++/*456646*/ OPC_MoveParent, ++/*456647*/ OPC_MoveChild6, ++/*456648*/ OPC_CheckInteger, 15, ++/*456650*/ OPC_CheckType, MVT::i32, ++/*456652*/ OPC_MoveParent, ++/*456653*/ OPC_MoveChild7, ++/*456654*/ OPC_CheckInteger, 15, ++/*456656*/ OPC_CheckType, MVT::i32, ++/*456658*/ OPC_MoveParent, ++/*456659*/ OPC_MoveChild, 8, ++/*456661*/ OPC_CheckInteger, 15, ++/*456663*/ OPC_CheckType, MVT::i32, ++/*456665*/ OPC_MoveParent, ++/*456666*/ OPC_MoveChild, 9, ++/*456668*/ OPC_CheckInteger, 15, ++/*456670*/ OPC_CheckType, MVT::i32, ++/*456672*/ OPC_MoveParent, ++/*456673*/ OPC_MoveChild, 10, ++/*456675*/ OPC_CheckInteger, 15, ++/*456677*/ OPC_CheckType, MVT::i32, ++/*456679*/ OPC_MoveParent, ++/*456680*/ OPC_MoveChild, 11, ++/*456682*/ OPC_CheckInteger, 15, ++/*456684*/ OPC_CheckType, MVT::i32, ++/*456686*/ OPC_MoveParent, ++/*456687*/ OPC_MoveChild, 12, ++/*456689*/ OPC_CheckInteger, 15, ++/*456691*/ OPC_CheckType, MVT::i32, ++/*456693*/ OPC_MoveParent, ++/*456694*/ OPC_MoveChild, 13, ++/*456696*/ OPC_CheckInteger, 15, ++/*456698*/ OPC_CheckType, MVT::i32, ++/*456700*/ OPC_MoveParent, ++/*456701*/ OPC_MoveChild, 14, ++/*456703*/ OPC_CheckInteger, 15, ++/*456705*/ OPC_CheckType, MVT::i32, ++/*456707*/ OPC_MoveParent, ++/*456708*/ OPC_MoveChild, 15, ++/*456710*/ OPC_CheckInteger, 15, ++/*456712*/ OPC_CheckType, MVT::i32, ++/*456714*/ OPC_MoveParent, ++/*456715*/ OPC_CheckType, MVT::v16i16, ++/*456717*/ OPC_MoveParent, ++/*456718*/ OPC_MoveParent, ++/*456719*/ OPC_MoveParent, ++/*456720*/ OPC_MoveChild1, ++/*456721*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*456724*/ OPC_CheckChild0Integer, 1, ++/*456726*/ OPC_CheckChild0Type, MVT::i32, ++/*456728*/ OPC_CheckChild1Integer, 1, ++/*456730*/ OPC_CheckChild1Type, MVT::i32, ++/*456732*/ OPC_CheckChild2Integer, 1, ++/*456734*/ OPC_CheckChild2Type, MVT::i32, ++/*456736*/ OPC_CheckChild3Integer, 1, ++/*456738*/ OPC_CheckChild3Type, MVT::i32, ++/*456740*/ OPC_CheckChild4Integer, 1, ++/*456742*/ OPC_CheckChild4Type, MVT::i32, ++/*456744*/ OPC_MoveChild5, ++/*456745*/ OPC_CheckInteger, 1, ++/*456747*/ OPC_CheckType, MVT::i32, ++/*456749*/ OPC_MoveParent, ++/*456750*/ OPC_MoveChild6, ++/*456751*/ OPC_CheckInteger, 1, ++/*456753*/ OPC_CheckType, MVT::i32, ++/*456755*/ OPC_MoveParent, ++/*456756*/ OPC_MoveChild7, ++/*456757*/ OPC_CheckInteger, 1, ++/*456759*/ OPC_CheckType, MVT::i32, ++/*456761*/ OPC_MoveParent, ++/*456762*/ OPC_MoveChild, 8, ++/*456764*/ OPC_CheckInteger, 1, ++/*456766*/ OPC_CheckType, MVT::i32, ++/*456768*/ OPC_MoveParent, ++/*456769*/ OPC_MoveChild, 9, ++/*456771*/ OPC_CheckInteger, 1, ++/*456773*/ OPC_CheckType, MVT::i32, ++/*456775*/ OPC_MoveParent, ++/*456776*/ OPC_MoveChild, 10, ++/*456778*/ OPC_CheckInteger, 1, ++/*456780*/ OPC_CheckType, MVT::i32, ++/*456782*/ OPC_MoveParent, ++/*456783*/ OPC_MoveChild, 11, ++/*456785*/ OPC_CheckInteger, 1, ++/*456787*/ OPC_CheckType, MVT::i32, ++/*456789*/ OPC_MoveParent, ++/*456790*/ OPC_MoveChild, 12, ++/*456792*/ OPC_CheckInteger, 1, ++/*456794*/ OPC_CheckType, MVT::i32, ++/*456796*/ OPC_MoveParent, ++/*456797*/ OPC_MoveChild, 13, ++/*456799*/ OPC_CheckInteger, 1, ++/*456801*/ OPC_CheckType, MVT::i32, ++/*456803*/ OPC_MoveParent, ++/*456804*/ OPC_MoveChild, 14, ++/*456806*/ OPC_CheckInteger, 1, ++/*456808*/ OPC_CheckType, MVT::i32, ++/*456810*/ OPC_MoveParent, ++/*456811*/ OPC_MoveChild, 15, ++/*456813*/ OPC_CheckInteger, 1, ++/*456815*/ OPC_CheckType, MVT::i32, ++/*456817*/ OPC_MoveParent, ++/*456818*/ OPC_CheckType, MVT::v16i16, ++/*456820*/ OPC_MoveParent, ++/*456821*/ OPC_CheckType, MVT::v16i16, ++/*456823*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*456825*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 181 ++ // Dst: (XVAVG_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*456833*/ 0, /*End of Scope*/ ++/*456834*/ /*Scope*/ 105|128,1/*233*/, /*->457069*/ ++/*456836*/ OPC_CheckChild0Same, 1, ++/*456838*/ OPC_CheckChild1Same, 0, ++/*456840*/ OPC_MoveParent, ++/*456841*/ OPC_MoveChild1, ++/*456842*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*456845*/ OPC_CheckChild0Integer, 7, ++/*456847*/ OPC_CheckChild0Type, MVT::i32, ++/*456849*/ OPC_CheckChild1Integer, 7, ++/*456851*/ OPC_CheckChild1Type, MVT::i32, ++/*456853*/ OPC_CheckChild2Integer, 7, ++/*456855*/ OPC_CheckChild2Type, MVT::i32, ++/*456857*/ OPC_CheckChild3Integer, 7, ++/*456859*/ OPC_CheckChild3Type, MVT::i32, ++/*456861*/ OPC_CheckChild4Integer, 7, ++/*456863*/ OPC_CheckChild4Type, MVT::i32, ++/*456865*/ OPC_MoveChild5, ++/*456866*/ OPC_CheckInteger, 7, ++/*456868*/ OPC_CheckType, MVT::i32, ++/*456870*/ OPC_MoveParent, ++/*456871*/ OPC_MoveChild6, ++/*456872*/ OPC_CheckInteger, 7, ++/*456874*/ OPC_CheckType, MVT::i32, ++/*456876*/ OPC_MoveParent, ++/*456877*/ OPC_MoveChild7, ++/*456878*/ OPC_CheckInteger, 7, ++/*456880*/ OPC_CheckType, MVT::i32, ++/*456882*/ OPC_MoveParent, ++/*456883*/ OPC_MoveChild, 8, ++/*456885*/ OPC_CheckInteger, 7, ++/*456887*/ OPC_CheckType, MVT::i32, ++/*456889*/ OPC_MoveParent, ++/*456890*/ OPC_MoveChild, 9, ++/*456892*/ OPC_CheckInteger, 7, ++/*456894*/ OPC_CheckType, MVT::i32, ++/*456896*/ OPC_MoveParent, ++/*456897*/ OPC_MoveChild, 10, ++/*456899*/ OPC_CheckInteger, 7, ++/*456901*/ OPC_CheckType, MVT::i32, ++/*456903*/ OPC_MoveParent, ++/*456904*/ OPC_MoveChild, 11, ++/*456906*/ OPC_CheckInteger, 7, ++/*456908*/ OPC_CheckType, MVT::i32, ++/*456910*/ OPC_MoveParent, ++/*456911*/ OPC_MoveChild, 12, ++/*456913*/ OPC_CheckInteger, 7, ++/*456915*/ OPC_CheckType, MVT::i32, ++/*456917*/ OPC_MoveParent, ++/*456918*/ OPC_MoveChild, 13, ++/*456920*/ OPC_CheckInteger, 7, ++/*456922*/ OPC_CheckType, MVT::i32, ++/*456924*/ OPC_MoveParent, ++/*456925*/ OPC_MoveChild, 14, ++/*456927*/ OPC_CheckInteger, 7, ++/*456929*/ OPC_CheckType, MVT::i32, ++/*456931*/ OPC_MoveParent, ++/*456932*/ OPC_MoveChild, 15, ++/*456934*/ OPC_CheckInteger, 7, ++/*456936*/ OPC_CheckType, MVT::i32, ++/*456938*/ OPC_MoveParent, ++/*456939*/ OPC_CheckType, MVT::v16i8, ++/*456941*/ OPC_MoveParent, ++/*456942*/ OPC_MoveParent, ++/*456943*/ OPC_MoveParent, ++/*456944*/ OPC_MoveChild1, ++/*456945*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*456948*/ OPC_CheckChild0Integer, 1, ++/*456950*/ OPC_CheckChild0Type, MVT::i32, ++/*456952*/ OPC_CheckChild1Integer, 1, ++/*456954*/ OPC_CheckChild1Type, MVT::i32, ++/*456956*/ OPC_CheckChild2Integer, 1, ++/*456958*/ OPC_CheckChild2Type, MVT::i32, ++/*456960*/ OPC_CheckChild3Integer, 1, ++/*456962*/ OPC_CheckChild3Type, MVT::i32, ++/*456964*/ OPC_CheckChild4Integer, 1, ++/*456966*/ OPC_CheckChild4Type, MVT::i32, ++/*456968*/ OPC_MoveChild5, ++/*456969*/ OPC_CheckInteger, 1, ++/*456971*/ OPC_CheckType, MVT::i32, ++/*456973*/ OPC_MoveParent, ++/*456974*/ OPC_MoveChild6, ++/*456975*/ OPC_CheckInteger, 1, ++/*456977*/ OPC_CheckType, MVT::i32, ++/*456979*/ OPC_MoveParent, ++/*456980*/ OPC_MoveChild7, ++/*456981*/ OPC_CheckInteger, 1, ++/*456983*/ OPC_CheckType, MVT::i32, ++/*456985*/ OPC_MoveParent, ++/*456986*/ OPC_MoveChild, 8, ++/*456988*/ OPC_CheckInteger, 1, ++/*456990*/ OPC_CheckType, MVT::i32, ++/*456992*/ OPC_MoveParent, ++/*456993*/ OPC_MoveChild, 9, ++/*456995*/ OPC_CheckInteger, 1, ++/*456997*/ OPC_CheckType, MVT::i32, ++/*456999*/ OPC_MoveParent, ++/*457000*/ OPC_MoveChild, 10, ++/*457002*/ OPC_CheckInteger, 1, ++/*457004*/ OPC_CheckType, MVT::i32, ++/*457006*/ OPC_MoveParent, ++/*457007*/ OPC_MoveChild, 11, ++/*457009*/ OPC_CheckInteger, 1, ++/*457011*/ OPC_CheckType, MVT::i32, ++/*457013*/ OPC_MoveParent, ++/*457014*/ OPC_MoveChild, 12, ++/*457016*/ OPC_CheckInteger, 1, ++/*457018*/ OPC_CheckType, MVT::i32, ++/*457020*/ OPC_MoveParent, ++/*457021*/ OPC_MoveChild, 13, ++/*457023*/ OPC_CheckInteger, 1, ++/*457025*/ OPC_CheckType, MVT::i32, ++/*457027*/ OPC_MoveParent, ++/*457028*/ OPC_MoveChild, 14, ++/*457030*/ OPC_CheckInteger, 1, ++/*457032*/ OPC_CheckType, MVT::i32, ++/*457034*/ OPC_MoveParent, ++/*457035*/ OPC_MoveChild, 15, ++/*457037*/ OPC_CheckInteger, 1, ++/*457039*/ OPC_CheckType, MVT::i32, ++/*457041*/ OPC_MoveParent, ++/*457042*/ OPC_CheckType, MVT::v16i8, ++/*457044*/ OPC_MoveParent, ++/*457045*/ OPC_CheckType, MVT::v16i8, ++/*457047*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*457049*/ OPC_Scope, 8, /*->457059*/ // 2 children in Scope ++/*457051*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 181 ++ // Dst: (VAVG_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*457059*/ /*Scope*/ 8, /*->457068*/ ++/*457060*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 181 ++ // Dst: (VAVG_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*457068*/ 0, /*End of Scope*/ ++/*457069*/ /*Scope*/ 93|128,1/*221*/, /*->457292*/ ++/*457071*/ OPC_CheckChild0Same, 0, ++/*457073*/ OPC_CheckChild1Same, 1, ++/*457075*/ OPC_MoveParent, ++/*457076*/ OPC_MoveChild1, ++/*457077*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*457080*/ OPC_CheckChild0Integer, 7, ++/*457082*/ OPC_CheckChild0Type, MVT::i32, ++/*457084*/ OPC_CheckChild1Integer, 7, ++/*457086*/ OPC_CheckChild1Type, MVT::i32, ++/*457088*/ OPC_CheckChild2Integer, 7, ++/*457090*/ OPC_CheckChild2Type, MVT::i32, ++/*457092*/ OPC_CheckChild3Integer, 7, ++/*457094*/ OPC_CheckChild3Type, MVT::i32, ++/*457096*/ OPC_CheckChild4Integer, 7, ++/*457098*/ OPC_CheckChild4Type, MVT::i32, ++/*457100*/ OPC_MoveChild5, ++/*457101*/ OPC_CheckInteger, 7, ++/*457103*/ OPC_CheckType, MVT::i32, ++/*457105*/ OPC_MoveParent, ++/*457106*/ OPC_MoveChild6, ++/*457107*/ OPC_CheckInteger, 7, ++/*457109*/ OPC_CheckType, MVT::i32, ++/*457111*/ OPC_MoveParent, ++/*457112*/ OPC_MoveChild7, ++/*457113*/ OPC_CheckInteger, 7, ++/*457115*/ OPC_CheckType, MVT::i32, ++/*457117*/ OPC_MoveParent, ++/*457118*/ OPC_MoveChild, 8, ++/*457120*/ OPC_CheckInteger, 7, ++/*457122*/ OPC_CheckType, MVT::i32, ++/*457124*/ OPC_MoveParent, ++/*457125*/ OPC_MoveChild, 9, ++/*457127*/ OPC_CheckInteger, 7, ++/*457129*/ OPC_CheckType, MVT::i32, ++/*457131*/ OPC_MoveParent, ++/*457132*/ OPC_MoveChild, 10, ++/*457134*/ OPC_CheckInteger, 7, ++/*457136*/ OPC_CheckType, MVT::i32, ++/*457138*/ OPC_MoveParent, ++/*457139*/ OPC_MoveChild, 11, ++/*457141*/ OPC_CheckInteger, 7, ++/*457143*/ OPC_CheckType, MVT::i32, ++/*457145*/ OPC_MoveParent, ++/*457146*/ OPC_MoveChild, 12, ++/*457148*/ OPC_CheckInteger, 7, ++/*457150*/ OPC_CheckType, MVT::i32, ++/*457152*/ OPC_MoveParent, ++/*457153*/ OPC_MoveChild, 13, ++/*457155*/ OPC_CheckInteger, 7, ++/*457157*/ OPC_CheckType, MVT::i32, ++/*457159*/ OPC_MoveParent, ++/*457160*/ OPC_MoveChild, 14, ++/*457162*/ OPC_CheckInteger, 7, ++/*457164*/ OPC_CheckType, MVT::i32, ++/*457166*/ OPC_MoveParent, ++/*457167*/ OPC_MoveChild, 15, ++/*457169*/ OPC_CheckInteger, 7, ++/*457171*/ OPC_CheckType, MVT::i32, ++/*457173*/ OPC_MoveParent, ++/*457174*/ OPC_CheckType, MVT::v16i8, ++/*457176*/ OPC_MoveParent, ++/*457177*/ OPC_MoveParent, ++/*457178*/ OPC_MoveParent, ++/*457179*/ OPC_MoveChild1, ++/*457180*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*457183*/ OPC_CheckChild0Integer, 1, ++/*457185*/ OPC_CheckChild0Type, MVT::i32, ++/*457187*/ OPC_CheckChild1Integer, 1, ++/*457189*/ OPC_CheckChild1Type, MVT::i32, ++/*457191*/ OPC_CheckChild2Integer, 1, ++/*457193*/ OPC_CheckChild2Type, MVT::i32, ++/*457195*/ OPC_CheckChild3Integer, 1, ++/*457197*/ OPC_CheckChild3Type, MVT::i32, ++/*457199*/ OPC_CheckChild4Integer, 1, ++/*457201*/ OPC_CheckChild4Type, MVT::i32, ++/*457203*/ OPC_MoveChild5, ++/*457204*/ OPC_CheckInteger, 1, ++/*457206*/ OPC_CheckType, MVT::i32, ++/*457208*/ OPC_MoveParent, ++/*457209*/ OPC_MoveChild6, ++/*457210*/ OPC_CheckInteger, 1, ++/*457212*/ OPC_CheckType, MVT::i32, ++/*457214*/ OPC_MoveParent, ++/*457215*/ OPC_MoveChild7, ++/*457216*/ OPC_CheckInteger, 1, ++/*457218*/ OPC_CheckType, MVT::i32, ++/*457220*/ OPC_MoveParent, ++/*457221*/ OPC_MoveChild, 8, ++/*457223*/ OPC_CheckInteger, 1, ++/*457225*/ OPC_CheckType, MVT::i32, ++/*457227*/ OPC_MoveParent, ++/*457228*/ OPC_MoveChild, 9, ++/*457230*/ OPC_CheckInteger, 1, ++/*457232*/ OPC_CheckType, MVT::i32, ++/*457234*/ OPC_MoveParent, ++/*457235*/ OPC_MoveChild, 10, ++/*457237*/ OPC_CheckInteger, 1, ++/*457239*/ OPC_CheckType, MVT::i32, ++/*457241*/ OPC_MoveParent, ++/*457242*/ OPC_MoveChild, 11, ++/*457244*/ OPC_CheckInteger, 1, ++/*457246*/ OPC_CheckType, MVT::i32, ++/*457248*/ OPC_MoveParent, ++/*457249*/ OPC_MoveChild, 12, ++/*457251*/ OPC_CheckInteger, 1, ++/*457253*/ OPC_CheckType, MVT::i32, ++/*457255*/ OPC_MoveParent, ++/*457256*/ OPC_MoveChild, 13, ++/*457258*/ OPC_CheckInteger, 1, ++/*457260*/ OPC_CheckType, MVT::i32, ++/*457262*/ OPC_MoveParent, ++/*457263*/ OPC_MoveChild, 14, ++/*457265*/ OPC_CheckInteger, 1, ++/*457267*/ OPC_CheckType, MVT::i32, ++/*457269*/ OPC_MoveParent, ++/*457270*/ OPC_MoveChild, 15, ++/*457272*/ OPC_CheckInteger, 1, ++/*457274*/ OPC_CheckType, MVT::i32, ++/*457276*/ OPC_MoveParent, ++/*457277*/ OPC_CheckType, MVT::v16i8, ++/*457279*/ OPC_MoveParent, ++/*457280*/ OPC_CheckType, MVT::v16i8, ++/*457282*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*457284*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 181 ++ // Dst: (VAVG_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*457292*/ 0, /*End of Scope*/ ++/*457293*/ /*Scope*/ 76|128,3/*460*/, /*->457755*/ ++/*457295*/ OPC_MoveChild1, ++/*457296*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*457299*/ OPC_MoveChild0, ++/*457300*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*457303*/ OPC_Scope, 95|128,1/*223*/, /*->457529*/ // 2 children in Scope ++/*457306*/ OPC_CheckChild0Same, 0, ++/*457308*/ OPC_RecordChild1, // #1 = $b ++/*457309*/ OPC_MoveParent, ++/*457310*/ OPC_MoveChild1, ++/*457311*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*457314*/ OPC_CheckChild0Integer, 7, ++/*457316*/ OPC_CheckChild0Type, MVT::i32, ++/*457318*/ OPC_CheckChild1Integer, 7, ++/*457320*/ OPC_CheckChild1Type, MVT::i32, ++/*457322*/ OPC_CheckChild2Integer, 7, ++/*457324*/ OPC_CheckChild2Type, MVT::i32, ++/*457326*/ OPC_CheckChild3Integer, 7, ++/*457328*/ OPC_CheckChild3Type, MVT::i32, ++/*457330*/ OPC_CheckChild4Integer, 7, ++/*457332*/ OPC_CheckChild4Type, MVT::i32, ++/*457334*/ OPC_MoveChild5, ++/*457335*/ OPC_CheckInteger, 7, ++/*457337*/ OPC_CheckType, MVT::i32, ++/*457339*/ OPC_MoveParent, ++/*457340*/ OPC_MoveChild6, ++/*457341*/ OPC_CheckInteger, 7, ++/*457343*/ OPC_CheckType, MVT::i32, ++/*457345*/ OPC_MoveParent, ++/*457346*/ OPC_MoveChild7, ++/*457347*/ OPC_CheckInteger, 7, ++/*457349*/ OPC_CheckType, MVT::i32, ++/*457351*/ OPC_MoveParent, ++/*457352*/ OPC_MoveChild, 8, ++/*457354*/ OPC_CheckInteger, 7, ++/*457356*/ OPC_CheckType, MVT::i32, ++/*457358*/ OPC_MoveParent, ++/*457359*/ OPC_MoveChild, 9, ++/*457361*/ OPC_CheckInteger, 7, ++/*457363*/ OPC_CheckType, MVT::i32, ++/*457365*/ OPC_MoveParent, ++/*457366*/ OPC_MoveChild, 10, ++/*457368*/ OPC_CheckInteger, 7, ++/*457370*/ OPC_CheckType, MVT::i32, ++/*457372*/ OPC_MoveParent, ++/*457373*/ OPC_MoveChild, 11, ++/*457375*/ OPC_CheckInteger, 7, ++/*457377*/ OPC_CheckType, MVT::i32, ++/*457379*/ OPC_MoveParent, ++/*457380*/ OPC_MoveChild, 12, ++/*457382*/ OPC_CheckInteger, 7, ++/*457384*/ OPC_CheckType, MVT::i32, ++/*457386*/ OPC_MoveParent, ++/*457387*/ OPC_MoveChild, 13, ++/*457389*/ OPC_CheckInteger, 7, ++/*457391*/ OPC_CheckType, MVT::i32, ++/*457393*/ OPC_MoveParent, ++/*457394*/ OPC_MoveChild, 14, ++/*457396*/ OPC_CheckInteger, 7, ++/*457398*/ OPC_CheckType, MVT::i32, ++/*457400*/ OPC_MoveParent, ++/*457401*/ OPC_MoveChild, 15, ++/*457403*/ OPC_CheckInteger, 7, ++/*457405*/ OPC_CheckType, MVT::i32, ++/*457407*/ OPC_MoveParent, ++/*457408*/ OPC_CheckType, MVT::v16i8, ++/*457410*/ OPC_MoveParent, ++/*457411*/ OPC_MoveParent, ++/*457412*/ OPC_MoveParent, ++/*457413*/ OPC_CheckChild1Same, 1, ++/*457415*/ OPC_MoveParent, ++/*457416*/ OPC_MoveChild1, ++/*457417*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*457420*/ OPC_CheckChild0Integer, 1, ++/*457422*/ OPC_CheckChild0Type, MVT::i32, ++/*457424*/ OPC_CheckChild1Integer, 1, ++/*457426*/ OPC_CheckChild1Type, MVT::i32, ++/*457428*/ OPC_CheckChild2Integer, 1, ++/*457430*/ OPC_CheckChild2Type, MVT::i32, ++/*457432*/ OPC_CheckChild3Integer, 1, ++/*457434*/ OPC_CheckChild3Type, MVT::i32, ++/*457436*/ OPC_CheckChild4Integer, 1, ++/*457438*/ OPC_CheckChild4Type, MVT::i32, ++/*457440*/ OPC_MoveChild5, ++/*457441*/ OPC_CheckInteger, 1, ++/*457443*/ OPC_CheckType, MVT::i32, ++/*457445*/ OPC_MoveParent, ++/*457446*/ OPC_MoveChild6, ++/*457447*/ OPC_CheckInteger, 1, ++/*457449*/ OPC_CheckType, MVT::i32, ++/*457451*/ OPC_MoveParent, ++/*457452*/ OPC_MoveChild7, ++/*457453*/ OPC_CheckInteger, 1, ++/*457455*/ OPC_CheckType, MVT::i32, ++/*457457*/ OPC_MoveParent, ++/*457458*/ OPC_MoveChild, 8, ++/*457460*/ OPC_CheckInteger, 1, ++/*457462*/ OPC_CheckType, MVT::i32, ++/*457464*/ OPC_MoveParent, ++/*457465*/ OPC_MoveChild, 9, ++/*457467*/ OPC_CheckInteger, 1, ++/*457469*/ OPC_CheckType, MVT::i32, ++/*457471*/ OPC_MoveParent, ++/*457472*/ OPC_MoveChild, 10, ++/*457474*/ OPC_CheckInteger, 1, ++/*457476*/ OPC_CheckType, MVT::i32, ++/*457478*/ OPC_MoveParent, ++/*457479*/ OPC_MoveChild, 11, ++/*457481*/ OPC_CheckInteger, 1, ++/*457483*/ OPC_CheckType, MVT::i32, ++/*457485*/ OPC_MoveParent, ++/*457486*/ OPC_MoveChild, 12, ++/*457488*/ OPC_CheckInteger, 1, ++/*457490*/ OPC_CheckType, MVT::i32, ++/*457492*/ OPC_MoveParent, ++/*457493*/ OPC_MoveChild, 13, ++/*457495*/ OPC_CheckInteger, 1, ++/*457497*/ OPC_CheckType, MVT::i32, ++/*457499*/ OPC_MoveParent, ++/*457500*/ OPC_MoveChild, 14, ++/*457502*/ OPC_CheckInteger, 1, ++/*457504*/ OPC_CheckType, MVT::i32, ++/*457506*/ OPC_MoveParent, ++/*457507*/ OPC_MoveChild, 15, ++/*457509*/ OPC_CheckInteger, 1, ++/*457511*/ OPC_CheckType, MVT::i32, ++/*457513*/ OPC_MoveParent, ++/*457514*/ OPC_CheckType, MVT::v16i8, ++/*457516*/ OPC_MoveParent, ++/*457517*/ OPC_CheckType, MVT::v16i8, ++/*457519*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*457521*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 181 ++ // Dst: (VAVG_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*457529*/ /*Scope*/ 95|128,1/*223*/, /*->457754*/ ++/*457531*/ OPC_RecordChild0, // #1 = $b ++/*457532*/ OPC_CheckChild1Same, 0, ++/*457534*/ OPC_MoveParent, ++/*457535*/ OPC_MoveChild1, ++/*457536*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*457539*/ OPC_CheckChild0Integer, 7, ++/*457541*/ OPC_CheckChild0Type, MVT::i32, ++/*457543*/ OPC_CheckChild1Integer, 7, ++/*457545*/ OPC_CheckChild1Type, MVT::i32, ++/*457547*/ OPC_CheckChild2Integer, 7, ++/*457549*/ OPC_CheckChild2Type, MVT::i32, ++/*457551*/ OPC_CheckChild3Integer, 7, ++/*457553*/ OPC_CheckChild3Type, MVT::i32, ++/*457555*/ OPC_CheckChild4Integer, 7, ++/*457557*/ OPC_CheckChild4Type, MVT::i32, ++/*457559*/ OPC_MoveChild5, ++/*457560*/ OPC_CheckInteger, 7, ++/*457562*/ OPC_CheckType, MVT::i32, ++/*457564*/ OPC_MoveParent, ++/*457565*/ OPC_MoveChild6, ++/*457566*/ OPC_CheckInteger, 7, ++/*457568*/ OPC_CheckType, MVT::i32, ++/*457570*/ OPC_MoveParent, ++/*457571*/ OPC_MoveChild7, ++/*457572*/ OPC_CheckInteger, 7, ++/*457574*/ OPC_CheckType, MVT::i32, ++/*457576*/ OPC_MoveParent, ++/*457577*/ OPC_MoveChild, 8, ++/*457579*/ OPC_CheckInteger, 7, ++/*457581*/ OPC_CheckType, MVT::i32, ++/*457583*/ OPC_MoveParent, ++/*457584*/ OPC_MoveChild, 9, ++/*457586*/ OPC_CheckInteger, 7, ++/*457588*/ OPC_CheckType, MVT::i32, ++/*457590*/ OPC_MoveParent, ++/*457591*/ OPC_MoveChild, 10, ++/*457593*/ OPC_CheckInteger, 7, ++/*457595*/ OPC_CheckType, MVT::i32, ++/*457597*/ OPC_MoveParent, ++/*457598*/ OPC_MoveChild, 11, ++/*457600*/ OPC_CheckInteger, 7, ++/*457602*/ OPC_CheckType, MVT::i32, ++/*457604*/ OPC_MoveParent, ++/*457605*/ OPC_MoveChild, 12, ++/*457607*/ OPC_CheckInteger, 7, ++/*457609*/ OPC_CheckType, MVT::i32, ++/*457611*/ OPC_MoveParent, ++/*457612*/ OPC_MoveChild, 13, ++/*457614*/ OPC_CheckInteger, 7, ++/*457616*/ OPC_CheckType, MVT::i32, ++/*457618*/ OPC_MoveParent, ++/*457619*/ OPC_MoveChild, 14, ++/*457621*/ OPC_CheckInteger, 7, ++/*457623*/ OPC_CheckType, MVT::i32, ++/*457625*/ OPC_MoveParent, ++/*457626*/ OPC_MoveChild, 15, ++/*457628*/ OPC_CheckInteger, 7, ++/*457630*/ OPC_CheckType, MVT::i32, ++/*457632*/ OPC_MoveParent, ++/*457633*/ OPC_CheckType, MVT::v16i8, ++/*457635*/ OPC_MoveParent, ++/*457636*/ OPC_MoveParent, ++/*457637*/ OPC_MoveParent, ++/*457638*/ OPC_CheckChild1Same, 1, ++/*457640*/ OPC_MoveParent, ++/*457641*/ OPC_MoveChild1, ++/*457642*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*457645*/ OPC_CheckChild0Integer, 1, ++/*457647*/ OPC_CheckChild0Type, MVT::i32, ++/*457649*/ OPC_CheckChild1Integer, 1, ++/*457651*/ OPC_CheckChild1Type, MVT::i32, ++/*457653*/ OPC_CheckChild2Integer, 1, ++/*457655*/ OPC_CheckChild2Type, MVT::i32, ++/*457657*/ OPC_CheckChild3Integer, 1, ++/*457659*/ OPC_CheckChild3Type, MVT::i32, ++/*457661*/ OPC_CheckChild4Integer, 1, ++/*457663*/ OPC_CheckChild4Type, MVT::i32, ++/*457665*/ OPC_MoveChild5, ++/*457666*/ OPC_CheckInteger, 1, ++/*457668*/ OPC_CheckType, MVT::i32, ++/*457670*/ OPC_MoveParent, ++/*457671*/ OPC_MoveChild6, ++/*457672*/ OPC_CheckInteger, 1, ++/*457674*/ OPC_CheckType, MVT::i32, ++/*457676*/ OPC_MoveParent, ++/*457677*/ OPC_MoveChild7, ++/*457678*/ OPC_CheckInteger, 1, ++/*457680*/ OPC_CheckType, MVT::i32, ++/*457682*/ OPC_MoveParent, ++/*457683*/ OPC_MoveChild, 8, ++/*457685*/ OPC_CheckInteger, 1, ++/*457687*/ OPC_CheckType, MVT::i32, ++/*457689*/ OPC_MoveParent, ++/*457690*/ OPC_MoveChild, 9, ++/*457692*/ OPC_CheckInteger, 1, ++/*457694*/ OPC_CheckType, MVT::i32, ++/*457696*/ OPC_MoveParent, ++/*457697*/ OPC_MoveChild, 10, ++/*457699*/ OPC_CheckInteger, 1, ++/*457701*/ OPC_CheckType, MVT::i32, ++/*457703*/ OPC_MoveParent, ++/*457704*/ OPC_MoveChild, 11, ++/*457706*/ OPC_CheckInteger, 1, ++/*457708*/ OPC_CheckType, MVT::i32, ++/*457710*/ OPC_MoveParent, ++/*457711*/ OPC_MoveChild, 12, ++/*457713*/ OPC_CheckInteger, 1, ++/*457715*/ OPC_CheckType, MVT::i32, ++/*457717*/ OPC_MoveParent, ++/*457718*/ OPC_MoveChild, 13, ++/*457720*/ OPC_CheckInteger, 1, ++/*457722*/ OPC_CheckType, MVT::i32, ++/*457724*/ OPC_MoveParent, ++/*457725*/ OPC_MoveChild, 14, ++/*457727*/ OPC_CheckInteger, 1, ++/*457729*/ OPC_CheckType, MVT::i32, ++/*457731*/ OPC_MoveParent, ++/*457732*/ OPC_MoveChild, 15, ++/*457734*/ OPC_CheckInteger, 1, ++/*457736*/ OPC_CheckType, MVT::i32, ++/*457738*/ OPC_MoveParent, ++/*457739*/ OPC_CheckType, MVT::v16i8, ++/*457741*/ OPC_MoveParent, ++/*457742*/ OPC_CheckType, MVT::v16i8, ++/*457744*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*457746*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 181 ++ // Dst: (VAVG_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*457754*/ 0, /*End of Scope*/ ++/*457755*/ 0, /*End of Scope*/ ++/*457756*/ /*Scope*/ 99|128,2/*355*/, /*->458113*/ ++/*457758*/ OPC_MoveChild0, ++/*457759*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*457762*/ OPC_MoveChild0, ++/*457763*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*457766*/ OPC_RecordChild0, // #0 = $a ++/*457767*/ OPC_RecordChild1, // #1 = $b ++/*457768*/ OPC_MoveParent, ++/*457769*/ OPC_MoveChild1, ++/*457770*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*457773*/ OPC_CheckChild0Integer, 7, ++/*457775*/ OPC_CheckChild0Type, MVT::i32, ++/*457777*/ OPC_CheckChild1Integer, 7, ++/*457779*/ OPC_CheckChild1Type, MVT::i32, ++/*457781*/ OPC_CheckChild2Integer, 7, ++/*457783*/ OPC_CheckChild2Type, MVT::i32, ++/*457785*/ OPC_CheckChild3Integer, 7, ++/*457787*/ OPC_CheckChild3Type, MVT::i32, ++/*457789*/ OPC_CheckChild4Integer, 7, ++/*457791*/ OPC_CheckChild4Type, MVT::i32, ++/*457793*/ OPC_MoveChild5, ++/*457794*/ OPC_CheckInteger, 7, ++/*457796*/ OPC_CheckType, MVT::i32, ++/*457798*/ OPC_MoveParent, ++/*457799*/ OPC_MoveChild6, ++/*457800*/ OPC_CheckInteger, 7, ++/*457802*/ OPC_CheckType, MVT::i32, ++/*457804*/ OPC_MoveParent, ++/*457805*/ OPC_MoveChild7, ++/*457806*/ OPC_CheckInteger, 7, ++/*457808*/ OPC_CheckType, MVT::i32, ++/*457810*/ OPC_MoveParent, ++/*457811*/ OPC_MoveChild, 8, ++/*457813*/ OPC_CheckInteger, 7, ++/*457815*/ OPC_CheckType, MVT::i32, ++/*457817*/ OPC_MoveParent, ++/*457818*/ OPC_MoveChild, 9, ++/*457820*/ OPC_CheckInteger, 7, ++/*457822*/ OPC_CheckType, MVT::i32, ++/*457824*/ OPC_MoveParent, ++/*457825*/ OPC_MoveChild, 10, ++/*457827*/ OPC_CheckInteger, 7, ++/*457829*/ OPC_CheckType, MVT::i32, ++/*457831*/ OPC_MoveParent, ++/*457832*/ OPC_MoveChild, 11, ++/*457834*/ OPC_CheckInteger, 7, ++/*457836*/ OPC_CheckType, MVT::i32, ++/*457838*/ OPC_MoveParent, ++/*457839*/ OPC_MoveChild, 12, ++/*457841*/ OPC_CheckInteger, 7, ++/*457843*/ OPC_CheckType, MVT::i32, ++/*457845*/ OPC_MoveParent, ++/*457846*/ OPC_MoveChild, 13, ++/*457848*/ OPC_CheckInteger, 7, ++/*457850*/ OPC_CheckType, MVT::i32, ++/*457852*/ OPC_MoveParent, ++/*457853*/ OPC_MoveChild, 14, ++/*457855*/ OPC_CheckInteger, 7, ++/*457857*/ OPC_CheckType, MVT::i32, ++/*457859*/ OPC_MoveParent, ++/*457860*/ OPC_MoveChild, 15, ++/*457862*/ OPC_CheckInteger, 7, ++/*457864*/ OPC_CheckType, MVT::i32, ++/*457866*/ OPC_MoveParent, ++/*457867*/ OPC_CheckType, MVT::v16i8, ++/*457869*/ OPC_MoveParent, ++/*457870*/ OPC_MoveParent, ++/*457871*/ OPC_Scope, 119, /*->457992*/ // 2 children in Scope ++/*457873*/ OPC_CheckChild1Same, 0, ++/*457875*/ OPC_MoveParent, ++/*457876*/ OPC_CheckChild1Same, 1, ++/*457878*/ OPC_MoveParent, ++/*457879*/ OPC_MoveChild1, ++/*457880*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*457883*/ OPC_CheckChild0Integer, 1, ++/*457885*/ OPC_CheckChild0Type, MVT::i32, ++/*457887*/ OPC_CheckChild1Integer, 1, ++/*457889*/ OPC_CheckChild1Type, MVT::i32, ++/*457891*/ OPC_CheckChild2Integer, 1, ++/*457893*/ OPC_CheckChild2Type, MVT::i32, ++/*457895*/ OPC_CheckChild3Integer, 1, ++/*457897*/ OPC_CheckChild3Type, MVT::i32, ++/*457899*/ OPC_CheckChild4Integer, 1, ++/*457901*/ OPC_CheckChild4Type, MVT::i32, ++/*457903*/ OPC_MoveChild5, ++/*457904*/ OPC_CheckInteger, 1, ++/*457906*/ OPC_CheckType, MVT::i32, ++/*457908*/ OPC_MoveParent, ++/*457909*/ OPC_MoveChild6, ++/*457910*/ OPC_CheckInteger, 1, ++/*457912*/ OPC_CheckType, MVT::i32, ++/*457914*/ OPC_MoveParent, ++/*457915*/ OPC_MoveChild7, ++/*457916*/ OPC_CheckInteger, 1, ++/*457918*/ OPC_CheckType, MVT::i32, ++/*457920*/ OPC_MoveParent, ++/*457921*/ OPC_MoveChild, 8, ++/*457923*/ OPC_CheckInteger, 1, ++/*457925*/ OPC_CheckType, MVT::i32, ++/*457927*/ OPC_MoveParent, ++/*457928*/ OPC_MoveChild, 9, ++/*457930*/ OPC_CheckInteger, 1, ++/*457932*/ OPC_CheckType, MVT::i32, ++/*457934*/ OPC_MoveParent, ++/*457935*/ OPC_MoveChild, 10, ++/*457937*/ OPC_CheckInteger, 1, ++/*457939*/ OPC_CheckType, MVT::i32, ++/*457941*/ OPC_MoveParent, ++/*457942*/ OPC_MoveChild, 11, ++/*457944*/ OPC_CheckInteger, 1, ++/*457946*/ OPC_CheckType, MVT::i32, ++/*457948*/ OPC_MoveParent, ++/*457949*/ OPC_MoveChild, 12, ++/*457951*/ OPC_CheckInteger, 1, ++/*457953*/ OPC_CheckType, MVT::i32, ++/*457955*/ OPC_MoveParent, ++/*457956*/ OPC_MoveChild, 13, ++/*457958*/ OPC_CheckInteger, 1, ++/*457960*/ OPC_CheckType, MVT::i32, ++/*457962*/ OPC_MoveParent, ++/*457963*/ OPC_MoveChild, 14, ++/*457965*/ OPC_CheckInteger, 1, ++/*457967*/ OPC_CheckType, MVT::i32, ++/*457969*/ OPC_MoveParent, ++/*457970*/ OPC_MoveChild, 15, ++/*457972*/ OPC_CheckInteger, 1, ++/*457974*/ OPC_CheckType, MVT::i32, ++/*457976*/ OPC_MoveParent, ++/*457977*/ OPC_CheckType, MVT::v16i8, ++/*457979*/ OPC_MoveParent, ++/*457980*/ OPC_CheckType, MVT::v16i8, ++/*457982*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*457984*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$a), LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 181 ++ // Dst: (VAVG_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*457992*/ /*Scope*/ 119, /*->458112*/ ++/*457993*/ OPC_CheckChild1Same, 1, ++/*457995*/ OPC_MoveParent, ++/*457996*/ OPC_CheckChild1Same, 0, ++/*457998*/ OPC_MoveParent, ++/*457999*/ OPC_MoveChild1, ++/*458000*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*458003*/ OPC_CheckChild0Integer, 1, ++/*458005*/ OPC_CheckChild0Type, MVT::i32, ++/*458007*/ OPC_CheckChild1Integer, 1, ++/*458009*/ OPC_CheckChild1Type, MVT::i32, ++/*458011*/ OPC_CheckChild2Integer, 1, ++/*458013*/ OPC_CheckChild2Type, MVT::i32, ++/*458015*/ OPC_CheckChild3Integer, 1, ++/*458017*/ OPC_CheckChild3Type, MVT::i32, ++/*458019*/ OPC_CheckChild4Integer, 1, ++/*458021*/ OPC_CheckChild4Type, MVT::i32, ++/*458023*/ OPC_MoveChild5, ++/*458024*/ OPC_CheckInteger, 1, ++/*458026*/ OPC_CheckType, MVT::i32, ++/*458028*/ OPC_MoveParent, ++/*458029*/ OPC_MoveChild6, ++/*458030*/ OPC_CheckInteger, 1, ++/*458032*/ OPC_CheckType, MVT::i32, ++/*458034*/ OPC_MoveParent, ++/*458035*/ OPC_MoveChild7, ++/*458036*/ OPC_CheckInteger, 1, ++/*458038*/ OPC_CheckType, MVT::i32, ++/*458040*/ OPC_MoveParent, ++/*458041*/ OPC_MoveChild, 8, ++/*458043*/ OPC_CheckInteger, 1, ++/*458045*/ OPC_CheckType, MVT::i32, ++/*458047*/ OPC_MoveParent, ++/*458048*/ OPC_MoveChild, 9, ++/*458050*/ OPC_CheckInteger, 1, ++/*458052*/ OPC_CheckType, MVT::i32, ++/*458054*/ OPC_MoveParent, ++/*458055*/ OPC_MoveChild, 10, ++/*458057*/ OPC_CheckInteger, 1, ++/*458059*/ OPC_CheckType, MVT::i32, ++/*458061*/ OPC_MoveParent, ++/*458062*/ OPC_MoveChild, 11, ++/*458064*/ OPC_CheckInteger, 1, ++/*458066*/ OPC_CheckType, MVT::i32, ++/*458068*/ OPC_MoveParent, ++/*458069*/ OPC_MoveChild, 12, ++/*458071*/ OPC_CheckInteger, 1, ++/*458073*/ OPC_CheckType, MVT::i32, ++/*458075*/ OPC_MoveParent, ++/*458076*/ OPC_MoveChild, 13, ++/*458078*/ OPC_CheckInteger, 1, ++/*458080*/ OPC_CheckType, MVT::i32, ++/*458082*/ OPC_MoveParent, ++/*458083*/ OPC_MoveChild, 14, ++/*458085*/ OPC_CheckInteger, 1, ++/*458087*/ OPC_CheckType, MVT::i32, ++/*458089*/ OPC_MoveParent, ++/*458090*/ OPC_MoveChild, 15, ++/*458092*/ OPC_CheckInteger, 1, ++/*458094*/ OPC_CheckType, MVT::i32, ++/*458096*/ OPC_MoveParent, ++/*458097*/ OPC_CheckType, MVT::v16i8, ++/*458099*/ OPC_MoveParent, ++/*458100*/ OPC_CheckType, MVT::v16i8, ++/*458102*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*458104*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$a), LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 181 ++ // Dst: (VAVG_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*458112*/ 0, /*End of Scope*/ ++/*458113*/ /*Scope*/ 77|128,3/*461*/, /*->458576*/ ++/*458115*/ OPC_RecordChild0, // #0 = $b ++/*458116*/ OPC_MoveChild1, ++/*458117*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*458120*/ OPC_MoveChild0, ++/*458121*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*458124*/ OPC_Scope, 95|128,1/*223*/, /*->458350*/ // 2 children in Scope ++/*458127*/ OPC_RecordChild0, // #1 = $a ++/*458128*/ OPC_CheckChild1Same, 0, ++/*458130*/ OPC_MoveParent, ++/*458131*/ OPC_MoveChild1, ++/*458132*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*458135*/ OPC_CheckChild0Integer, 7, ++/*458137*/ OPC_CheckChild0Type, MVT::i32, ++/*458139*/ OPC_CheckChild1Integer, 7, ++/*458141*/ OPC_CheckChild1Type, MVT::i32, ++/*458143*/ OPC_CheckChild2Integer, 7, ++/*458145*/ OPC_CheckChild2Type, MVT::i32, ++/*458147*/ OPC_CheckChild3Integer, 7, ++/*458149*/ OPC_CheckChild3Type, MVT::i32, ++/*458151*/ OPC_CheckChild4Integer, 7, ++/*458153*/ OPC_CheckChild4Type, MVT::i32, ++/*458155*/ OPC_MoveChild5, ++/*458156*/ OPC_CheckInteger, 7, ++/*458158*/ OPC_CheckType, MVT::i32, ++/*458160*/ OPC_MoveParent, ++/*458161*/ OPC_MoveChild6, ++/*458162*/ OPC_CheckInteger, 7, ++/*458164*/ OPC_CheckType, MVT::i32, ++/*458166*/ OPC_MoveParent, ++/*458167*/ OPC_MoveChild7, ++/*458168*/ OPC_CheckInteger, 7, ++/*458170*/ OPC_CheckType, MVT::i32, ++/*458172*/ OPC_MoveParent, ++/*458173*/ OPC_MoveChild, 8, ++/*458175*/ OPC_CheckInteger, 7, ++/*458177*/ OPC_CheckType, MVT::i32, ++/*458179*/ OPC_MoveParent, ++/*458180*/ OPC_MoveChild, 9, ++/*458182*/ OPC_CheckInteger, 7, ++/*458184*/ OPC_CheckType, MVT::i32, ++/*458186*/ OPC_MoveParent, ++/*458187*/ OPC_MoveChild, 10, ++/*458189*/ OPC_CheckInteger, 7, ++/*458191*/ OPC_CheckType, MVT::i32, ++/*458193*/ OPC_MoveParent, ++/*458194*/ OPC_MoveChild, 11, ++/*458196*/ OPC_CheckInteger, 7, ++/*458198*/ OPC_CheckType, MVT::i32, ++/*458200*/ OPC_MoveParent, ++/*458201*/ OPC_MoveChild, 12, ++/*458203*/ OPC_CheckInteger, 7, ++/*458205*/ OPC_CheckType, MVT::i32, ++/*458207*/ OPC_MoveParent, ++/*458208*/ OPC_MoveChild, 13, ++/*458210*/ OPC_CheckInteger, 7, ++/*458212*/ OPC_CheckType, MVT::i32, ++/*458214*/ OPC_MoveParent, ++/*458215*/ OPC_MoveChild, 14, ++/*458217*/ OPC_CheckInteger, 7, ++/*458219*/ OPC_CheckType, MVT::i32, ++/*458221*/ OPC_MoveParent, ++/*458222*/ OPC_MoveChild, 15, ++/*458224*/ OPC_CheckInteger, 7, ++/*458226*/ OPC_CheckType, MVT::i32, ++/*458228*/ OPC_MoveParent, ++/*458229*/ OPC_CheckType, MVT::v16i8, ++/*458231*/ OPC_MoveParent, ++/*458232*/ OPC_MoveParent, ++/*458233*/ OPC_MoveParent, ++/*458234*/ OPC_CheckChild1Same, 1, ++/*458236*/ OPC_MoveParent, ++/*458237*/ OPC_MoveChild1, ++/*458238*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*458241*/ OPC_CheckChild0Integer, 1, ++/*458243*/ OPC_CheckChild0Type, MVT::i32, ++/*458245*/ OPC_CheckChild1Integer, 1, ++/*458247*/ OPC_CheckChild1Type, MVT::i32, ++/*458249*/ OPC_CheckChild2Integer, 1, ++/*458251*/ OPC_CheckChild2Type, MVT::i32, ++/*458253*/ OPC_CheckChild3Integer, 1, ++/*458255*/ OPC_CheckChild3Type, MVT::i32, ++/*458257*/ OPC_CheckChild4Integer, 1, ++/*458259*/ OPC_CheckChild4Type, MVT::i32, ++/*458261*/ OPC_MoveChild5, ++/*458262*/ OPC_CheckInteger, 1, ++/*458264*/ OPC_CheckType, MVT::i32, ++/*458266*/ OPC_MoveParent, ++/*458267*/ OPC_MoveChild6, ++/*458268*/ OPC_CheckInteger, 1, ++/*458270*/ OPC_CheckType, MVT::i32, ++/*458272*/ OPC_MoveParent, ++/*458273*/ OPC_MoveChild7, ++/*458274*/ OPC_CheckInteger, 1, ++/*458276*/ OPC_CheckType, MVT::i32, ++/*458278*/ OPC_MoveParent, ++/*458279*/ OPC_MoveChild, 8, ++/*458281*/ OPC_CheckInteger, 1, ++/*458283*/ OPC_CheckType, MVT::i32, ++/*458285*/ OPC_MoveParent, ++/*458286*/ OPC_MoveChild, 9, ++/*458288*/ OPC_CheckInteger, 1, ++/*458290*/ OPC_CheckType, MVT::i32, ++/*458292*/ OPC_MoveParent, ++/*458293*/ OPC_MoveChild, 10, ++/*458295*/ OPC_CheckInteger, 1, ++/*458297*/ OPC_CheckType, MVT::i32, ++/*458299*/ OPC_MoveParent, ++/*458300*/ OPC_MoveChild, 11, ++/*458302*/ OPC_CheckInteger, 1, ++/*458304*/ OPC_CheckType, MVT::i32, ++/*458306*/ OPC_MoveParent, ++/*458307*/ OPC_MoveChild, 12, ++/*458309*/ OPC_CheckInteger, 1, ++/*458311*/ OPC_CheckType, MVT::i32, ++/*458313*/ OPC_MoveParent, ++/*458314*/ OPC_MoveChild, 13, ++/*458316*/ OPC_CheckInteger, 1, ++/*458318*/ OPC_CheckType, MVT::i32, ++/*458320*/ OPC_MoveParent, ++/*458321*/ OPC_MoveChild, 14, ++/*458323*/ OPC_CheckInteger, 1, ++/*458325*/ OPC_CheckType, MVT::i32, ++/*458327*/ OPC_MoveParent, ++/*458328*/ OPC_MoveChild, 15, ++/*458330*/ OPC_CheckInteger, 1, ++/*458332*/ OPC_CheckType, MVT::i32, ++/*458334*/ OPC_MoveParent, ++/*458335*/ OPC_CheckType, MVT::v16i8, ++/*458337*/ OPC_MoveParent, ++/*458338*/ OPC_CheckType, MVT::v16i8, ++/*458340*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*458342*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 181 ++ // Dst: (VAVG_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*458350*/ /*Scope*/ 95|128,1/*223*/, /*->458575*/ ++/*458352*/ OPC_CheckChild0Same, 0, ++/*458354*/ OPC_RecordChild1, // #1 = $a ++/*458355*/ OPC_MoveParent, ++/*458356*/ OPC_MoveChild1, ++/*458357*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*458360*/ OPC_CheckChild0Integer, 7, ++/*458362*/ OPC_CheckChild0Type, MVT::i32, ++/*458364*/ OPC_CheckChild1Integer, 7, ++/*458366*/ OPC_CheckChild1Type, MVT::i32, ++/*458368*/ OPC_CheckChild2Integer, 7, ++/*458370*/ OPC_CheckChild2Type, MVT::i32, ++/*458372*/ OPC_CheckChild3Integer, 7, ++/*458374*/ OPC_CheckChild3Type, MVT::i32, ++/*458376*/ OPC_CheckChild4Integer, 7, ++/*458378*/ OPC_CheckChild4Type, MVT::i32, ++/*458380*/ OPC_MoveChild5, ++/*458381*/ OPC_CheckInteger, 7, ++/*458383*/ OPC_CheckType, MVT::i32, ++/*458385*/ OPC_MoveParent, ++/*458386*/ OPC_MoveChild6, ++/*458387*/ OPC_CheckInteger, 7, ++/*458389*/ OPC_CheckType, MVT::i32, ++/*458391*/ OPC_MoveParent, ++/*458392*/ OPC_MoveChild7, ++/*458393*/ OPC_CheckInteger, 7, ++/*458395*/ OPC_CheckType, MVT::i32, ++/*458397*/ OPC_MoveParent, ++/*458398*/ OPC_MoveChild, 8, ++/*458400*/ OPC_CheckInteger, 7, ++/*458402*/ OPC_CheckType, MVT::i32, ++/*458404*/ OPC_MoveParent, ++/*458405*/ OPC_MoveChild, 9, ++/*458407*/ OPC_CheckInteger, 7, ++/*458409*/ OPC_CheckType, MVT::i32, ++/*458411*/ OPC_MoveParent, ++/*458412*/ OPC_MoveChild, 10, ++/*458414*/ OPC_CheckInteger, 7, ++/*458416*/ OPC_CheckType, MVT::i32, ++/*458418*/ OPC_MoveParent, ++/*458419*/ OPC_MoveChild, 11, ++/*458421*/ OPC_CheckInteger, 7, ++/*458423*/ OPC_CheckType, MVT::i32, ++/*458425*/ OPC_MoveParent, ++/*458426*/ OPC_MoveChild, 12, ++/*458428*/ OPC_CheckInteger, 7, ++/*458430*/ OPC_CheckType, MVT::i32, ++/*458432*/ OPC_MoveParent, ++/*458433*/ OPC_MoveChild, 13, ++/*458435*/ OPC_CheckInteger, 7, ++/*458437*/ OPC_CheckType, MVT::i32, ++/*458439*/ OPC_MoveParent, ++/*458440*/ OPC_MoveChild, 14, ++/*458442*/ OPC_CheckInteger, 7, ++/*458444*/ OPC_CheckType, MVT::i32, ++/*458446*/ OPC_MoveParent, ++/*458447*/ OPC_MoveChild, 15, ++/*458449*/ OPC_CheckInteger, 7, ++/*458451*/ OPC_CheckType, MVT::i32, ++/*458453*/ OPC_MoveParent, ++/*458454*/ OPC_CheckType, MVT::v16i8, ++/*458456*/ OPC_MoveParent, ++/*458457*/ OPC_MoveParent, ++/*458458*/ OPC_MoveParent, ++/*458459*/ OPC_CheckChild1Same, 1, ++/*458461*/ OPC_MoveParent, ++/*458462*/ OPC_MoveChild1, ++/*458463*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*458466*/ OPC_CheckChild0Integer, 1, ++/*458468*/ OPC_CheckChild0Type, MVT::i32, ++/*458470*/ OPC_CheckChild1Integer, 1, ++/*458472*/ OPC_CheckChild1Type, MVT::i32, ++/*458474*/ OPC_CheckChild2Integer, 1, ++/*458476*/ OPC_CheckChild2Type, MVT::i32, ++/*458478*/ OPC_CheckChild3Integer, 1, ++/*458480*/ OPC_CheckChild3Type, MVT::i32, ++/*458482*/ OPC_CheckChild4Integer, 1, ++/*458484*/ OPC_CheckChild4Type, MVT::i32, ++/*458486*/ OPC_MoveChild5, ++/*458487*/ OPC_CheckInteger, 1, ++/*458489*/ OPC_CheckType, MVT::i32, ++/*458491*/ OPC_MoveParent, ++/*458492*/ OPC_MoveChild6, ++/*458493*/ OPC_CheckInteger, 1, ++/*458495*/ OPC_CheckType, MVT::i32, ++/*458497*/ OPC_MoveParent, ++/*458498*/ OPC_MoveChild7, ++/*458499*/ OPC_CheckInteger, 1, ++/*458501*/ OPC_CheckType, MVT::i32, ++/*458503*/ OPC_MoveParent, ++/*458504*/ OPC_MoveChild, 8, ++/*458506*/ OPC_CheckInteger, 1, ++/*458508*/ OPC_CheckType, MVT::i32, ++/*458510*/ OPC_MoveParent, ++/*458511*/ OPC_MoveChild, 9, ++/*458513*/ OPC_CheckInteger, 1, ++/*458515*/ OPC_CheckType, MVT::i32, ++/*458517*/ OPC_MoveParent, ++/*458518*/ OPC_MoveChild, 10, ++/*458520*/ OPC_CheckInteger, 1, ++/*458522*/ OPC_CheckType, MVT::i32, ++/*458524*/ OPC_MoveParent, ++/*458525*/ OPC_MoveChild, 11, ++/*458527*/ OPC_CheckInteger, 1, ++/*458529*/ OPC_CheckType, MVT::i32, ++/*458531*/ OPC_MoveParent, ++/*458532*/ OPC_MoveChild, 12, ++/*458534*/ OPC_CheckInteger, 1, ++/*458536*/ OPC_CheckType, MVT::i32, ++/*458538*/ OPC_MoveParent, ++/*458539*/ OPC_MoveChild, 13, ++/*458541*/ OPC_CheckInteger, 1, ++/*458543*/ OPC_CheckType, MVT::i32, ++/*458545*/ OPC_MoveParent, ++/*458546*/ OPC_MoveChild, 14, ++/*458548*/ OPC_CheckInteger, 1, ++/*458550*/ OPC_CheckType, MVT::i32, ++/*458552*/ OPC_MoveParent, ++/*458553*/ OPC_MoveChild, 15, ++/*458555*/ OPC_CheckInteger, 1, ++/*458557*/ OPC_CheckType, MVT::i32, ++/*458559*/ OPC_MoveParent, ++/*458560*/ OPC_CheckType, MVT::v16i8, ++/*458562*/ OPC_MoveParent, ++/*458563*/ OPC_CheckType, MVT::v16i8, ++/*458565*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*458567*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }))), LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 181 ++ // Dst: (VAVG_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*458575*/ 0, /*End of Scope*/ ++/*458576*/ /*Scope*/ 99|128,2/*355*/, /*->458933*/ ++/*458578*/ OPC_MoveChild0, ++/*458579*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*458582*/ OPC_MoveChild0, ++/*458583*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*458586*/ OPC_RecordChild0, // #0 = $a ++/*458587*/ OPC_RecordChild1, // #1 = $b ++/*458588*/ OPC_MoveParent, ++/*458589*/ OPC_MoveChild1, ++/*458590*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*458593*/ OPC_CheckChild0Integer, 7, ++/*458595*/ OPC_CheckChild0Type, MVT::i32, ++/*458597*/ OPC_CheckChild1Integer, 7, ++/*458599*/ OPC_CheckChild1Type, MVT::i32, ++/*458601*/ OPC_CheckChild2Integer, 7, ++/*458603*/ OPC_CheckChild2Type, MVT::i32, ++/*458605*/ OPC_CheckChild3Integer, 7, ++/*458607*/ OPC_CheckChild3Type, MVT::i32, ++/*458609*/ OPC_CheckChild4Integer, 7, ++/*458611*/ OPC_CheckChild4Type, MVT::i32, ++/*458613*/ OPC_MoveChild5, ++/*458614*/ OPC_CheckInteger, 7, ++/*458616*/ OPC_CheckType, MVT::i32, ++/*458618*/ OPC_MoveParent, ++/*458619*/ OPC_MoveChild6, ++/*458620*/ OPC_CheckInteger, 7, ++/*458622*/ OPC_CheckType, MVT::i32, ++/*458624*/ OPC_MoveParent, ++/*458625*/ OPC_MoveChild7, ++/*458626*/ OPC_CheckInteger, 7, ++/*458628*/ OPC_CheckType, MVT::i32, ++/*458630*/ OPC_MoveParent, ++/*458631*/ OPC_MoveChild, 8, ++/*458633*/ OPC_CheckInteger, 7, ++/*458635*/ OPC_CheckType, MVT::i32, ++/*458637*/ OPC_MoveParent, ++/*458638*/ OPC_MoveChild, 9, ++/*458640*/ OPC_CheckInteger, 7, ++/*458642*/ OPC_CheckType, MVT::i32, ++/*458644*/ OPC_MoveParent, ++/*458645*/ OPC_MoveChild, 10, ++/*458647*/ OPC_CheckInteger, 7, ++/*458649*/ OPC_CheckType, MVT::i32, ++/*458651*/ OPC_MoveParent, ++/*458652*/ OPC_MoveChild, 11, ++/*458654*/ OPC_CheckInteger, 7, ++/*458656*/ OPC_CheckType, MVT::i32, ++/*458658*/ OPC_MoveParent, ++/*458659*/ OPC_MoveChild, 12, ++/*458661*/ OPC_CheckInteger, 7, ++/*458663*/ OPC_CheckType, MVT::i32, ++/*458665*/ OPC_MoveParent, ++/*458666*/ OPC_MoveChild, 13, ++/*458668*/ OPC_CheckInteger, 7, ++/*458670*/ OPC_CheckType, MVT::i32, ++/*458672*/ OPC_MoveParent, ++/*458673*/ OPC_MoveChild, 14, ++/*458675*/ OPC_CheckInteger, 7, ++/*458677*/ OPC_CheckType, MVT::i32, ++/*458679*/ OPC_MoveParent, ++/*458680*/ OPC_MoveChild, 15, ++/*458682*/ OPC_CheckInteger, 7, ++/*458684*/ OPC_CheckType, MVT::i32, ++/*458686*/ OPC_MoveParent, ++/*458687*/ OPC_CheckType, MVT::v16i8, ++/*458689*/ OPC_MoveParent, ++/*458690*/ OPC_MoveParent, ++/*458691*/ OPC_Scope, 119, /*->458812*/ // 2 children in Scope ++/*458693*/ OPC_CheckChild1Same, 1, ++/*458695*/ OPC_MoveParent, ++/*458696*/ OPC_CheckChild1Same, 0, ++/*458698*/ OPC_MoveParent, ++/*458699*/ OPC_MoveChild1, ++/*458700*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*458703*/ OPC_CheckChild0Integer, 1, ++/*458705*/ OPC_CheckChild0Type, MVT::i32, ++/*458707*/ OPC_CheckChild1Integer, 1, ++/*458709*/ OPC_CheckChild1Type, MVT::i32, ++/*458711*/ OPC_CheckChild2Integer, 1, ++/*458713*/ OPC_CheckChild2Type, MVT::i32, ++/*458715*/ OPC_CheckChild3Integer, 1, ++/*458717*/ OPC_CheckChild3Type, MVT::i32, ++/*458719*/ OPC_CheckChild4Integer, 1, ++/*458721*/ OPC_CheckChild4Type, MVT::i32, ++/*458723*/ OPC_MoveChild5, ++/*458724*/ OPC_CheckInteger, 1, ++/*458726*/ OPC_CheckType, MVT::i32, ++/*458728*/ OPC_MoveParent, ++/*458729*/ OPC_MoveChild6, ++/*458730*/ OPC_CheckInteger, 1, ++/*458732*/ OPC_CheckType, MVT::i32, ++/*458734*/ OPC_MoveParent, ++/*458735*/ OPC_MoveChild7, ++/*458736*/ OPC_CheckInteger, 1, ++/*458738*/ OPC_CheckType, MVT::i32, ++/*458740*/ OPC_MoveParent, ++/*458741*/ OPC_MoveChild, 8, ++/*458743*/ OPC_CheckInteger, 1, ++/*458745*/ OPC_CheckType, MVT::i32, ++/*458747*/ OPC_MoveParent, ++/*458748*/ OPC_MoveChild, 9, ++/*458750*/ OPC_CheckInteger, 1, ++/*458752*/ OPC_CheckType, MVT::i32, ++/*458754*/ OPC_MoveParent, ++/*458755*/ OPC_MoveChild, 10, ++/*458757*/ OPC_CheckInteger, 1, ++/*458759*/ OPC_CheckType, MVT::i32, ++/*458761*/ OPC_MoveParent, ++/*458762*/ OPC_MoveChild, 11, ++/*458764*/ OPC_CheckInteger, 1, ++/*458766*/ OPC_CheckType, MVT::i32, ++/*458768*/ OPC_MoveParent, ++/*458769*/ OPC_MoveChild, 12, ++/*458771*/ OPC_CheckInteger, 1, ++/*458773*/ OPC_CheckType, MVT::i32, ++/*458775*/ OPC_MoveParent, ++/*458776*/ OPC_MoveChild, 13, ++/*458778*/ OPC_CheckInteger, 1, ++/*458780*/ OPC_CheckType, MVT::i32, ++/*458782*/ OPC_MoveParent, ++/*458783*/ OPC_MoveChild, 14, ++/*458785*/ OPC_CheckInteger, 1, ++/*458787*/ OPC_CheckType, MVT::i32, ++/*458789*/ OPC_MoveParent, ++/*458790*/ OPC_MoveChild, 15, ++/*458792*/ OPC_CheckInteger, 1, ++/*458794*/ OPC_CheckType, MVT::i32, ++/*458796*/ OPC_MoveParent, ++/*458797*/ OPC_CheckType, MVT::v16i8, ++/*458799*/ OPC_MoveParent, ++/*458800*/ OPC_CheckType, MVT::v16i8, ++/*458802*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*458804*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$b), LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 181 ++ // Dst: (VAVG_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*458812*/ /*Scope*/ 119, /*->458932*/ ++/*458813*/ OPC_CheckChild1Same, 0, ++/*458815*/ OPC_MoveParent, ++/*458816*/ OPC_CheckChild1Same, 1, ++/*458818*/ OPC_MoveParent, ++/*458819*/ OPC_MoveChild1, ++/*458820*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*458823*/ OPC_CheckChild0Integer, 1, ++/*458825*/ OPC_CheckChild0Type, MVT::i32, ++/*458827*/ OPC_CheckChild1Integer, 1, ++/*458829*/ OPC_CheckChild1Type, MVT::i32, ++/*458831*/ OPC_CheckChild2Integer, 1, ++/*458833*/ OPC_CheckChild2Type, MVT::i32, ++/*458835*/ OPC_CheckChild3Integer, 1, ++/*458837*/ OPC_CheckChild3Type, MVT::i32, ++/*458839*/ OPC_CheckChild4Integer, 1, ++/*458841*/ OPC_CheckChild4Type, MVT::i32, ++/*458843*/ OPC_MoveChild5, ++/*458844*/ OPC_CheckInteger, 1, ++/*458846*/ OPC_CheckType, MVT::i32, ++/*458848*/ OPC_MoveParent, ++/*458849*/ OPC_MoveChild6, ++/*458850*/ OPC_CheckInteger, 1, ++/*458852*/ OPC_CheckType, MVT::i32, ++/*458854*/ OPC_MoveParent, ++/*458855*/ OPC_MoveChild7, ++/*458856*/ OPC_CheckInteger, 1, ++/*458858*/ OPC_CheckType, MVT::i32, ++/*458860*/ OPC_MoveParent, ++/*458861*/ OPC_MoveChild, 8, ++/*458863*/ OPC_CheckInteger, 1, ++/*458865*/ OPC_CheckType, MVT::i32, ++/*458867*/ OPC_MoveParent, ++/*458868*/ OPC_MoveChild, 9, ++/*458870*/ OPC_CheckInteger, 1, ++/*458872*/ OPC_CheckType, MVT::i32, ++/*458874*/ OPC_MoveParent, ++/*458875*/ OPC_MoveChild, 10, ++/*458877*/ OPC_CheckInteger, 1, ++/*458879*/ OPC_CheckType, MVT::i32, ++/*458881*/ OPC_MoveParent, ++/*458882*/ OPC_MoveChild, 11, ++/*458884*/ OPC_CheckInteger, 1, ++/*458886*/ OPC_CheckType, MVT::i32, ++/*458888*/ OPC_MoveParent, ++/*458889*/ OPC_MoveChild, 12, ++/*458891*/ OPC_CheckInteger, 1, ++/*458893*/ OPC_CheckType, MVT::i32, ++/*458895*/ OPC_MoveParent, ++/*458896*/ OPC_MoveChild, 13, ++/*458898*/ OPC_CheckInteger, 1, ++/*458900*/ OPC_CheckType, MVT::i32, ++/*458902*/ OPC_MoveParent, ++/*458903*/ OPC_MoveChild, 14, ++/*458905*/ OPC_CheckInteger, 1, ++/*458907*/ OPC_CheckType, MVT::i32, ++/*458909*/ OPC_MoveParent, ++/*458910*/ OPC_MoveChild, 15, ++/*458912*/ OPC_CheckInteger, 1, ++/*458914*/ OPC_CheckType, MVT::i32, ++/*458916*/ OPC_MoveParent, ++/*458917*/ OPC_CheckType, MVT::v16i8, ++/*458919*/ OPC_MoveParent, ++/*458920*/ OPC_CheckType, MVT::v16i8, ++/*458922*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*458924*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$b), LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 181 ++ // Dst: (VAVG_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*458932*/ 0, /*End of Scope*/ ++/*458933*/ 0, /*End of Scope*/ ++/*458934*/ /*SwitchOpcode*/ 21|128,4|128,2/*33301*/, TARGET_VAL(ISD::SRL),// ->492240 ++/*458939*/ OPC_MoveChild0, ++/*458940*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*458943*/ OPC_Scope, 9|128,64/*8201*/, /*->467147*/ // 6 children in Scope ++/*458946*/ OPC_MoveChild0, ++/*458947*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*458950*/ OPC_Scope, 100|128,10/*1380*/, /*->460333*/ // 4 children in Scope ++/*458953*/ OPC_MoveChild0, ++/*458954*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*458957*/ OPC_CheckChild0Integer, 1, ++/*458959*/ OPC_CheckChild0Type, MVT::i32, ++/*458961*/ OPC_CheckChild1Integer, 1, ++/*458963*/ OPC_CheckChild1Type, MVT::i32, ++/*458965*/ OPC_CheckChild2Integer, 1, ++/*458967*/ OPC_CheckChild2Type, MVT::i32, ++/*458969*/ OPC_CheckChild3Integer, 1, ++/*458971*/ OPC_CheckChild3Type, MVT::i32, ++/*458973*/ OPC_CheckChild4Integer, 1, ++/*458975*/ OPC_CheckChild4Type, MVT::i32, ++/*458977*/ OPC_MoveChild5, ++/*458978*/ OPC_CheckInteger, 1, ++/*458980*/ OPC_CheckType, MVT::i32, ++/*458982*/ OPC_MoveParent, ++/*458983*/ OPC_MoveChild6, ++/*458984*/ OPC_CheckInteger, 1, ++/*458986*/ OPC_CheckType, MVT::i32, ++/*458988*/ OPC_MoveParent, ++/*458989*/ OPC_MoveChild7, ++/*458990*/ OPC_CheckInteger, 1, ++/*458992*/ OPC_CheckType, MVT::i32, ++/*458994*/ OPC_MoveParent, ++/*458995*/ OPC_MoveParent, ++/*458996*/ OPC_RecordChild1, // #0 = $a ++/*458997*/ OPC_MoveParent, ++/*458998*/ OPC_RecordChild1, // #1 = $b ++/*458999*/ OPC_MoveParent, ++/*459000*/ OPC_MoveChild1, ++/*459001*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*459004*/ OPC_CheckChild0Integer, 15, ++/*459006*/ OPC_CheckChild0Type, MVT::i32, ++/*459008*/ OPC_CheckChild1Integer, 15, ++/*459010*/ OPC_CheckChild1Type, MVT::i32, ++/*459012*/ OPC_CheckChild2Integer, 15, ++/*459014*/ OPC_CheckChild2Type, MVT::i32, ++/*459016*/ OPC_CheckChild3Integer, 15, ++/*459018*/ OPC_CheckChild3Type, MVT::i32, ++/*459020*/ OPC_CheckChild4Integer, 15, ++/*459022*/ OPC_CheckChild4Type, MVT::i32, ++/*459024*/ OPC_MoveChild5, ++/*459025*/ OPC_CheckInteger, 15, ++/*459027*/ OPC_CheckType, MVT::i32, ++/*459029*/ OPC_MoveParent, ++/*459030*/ OPC_MoveChild6, ++/*459031*/ OPC_CheckInteger, 15, ++/*459033*/ OPC_CheckType, MVT::i32, ++/*459035*/ OPC_MoveParent, ++/*459036*/ OPC_MoveChild7, ++/*459037*/ OPC_CheckInteger, 15, ++/*459039*/ OPC_CheckType, MVT::i32, ++/*459041*/ OPC_MoveParent, ++/*459042*/ OPC_CheckType, MVT::v8i16, ++/*459044*/ OPC_MoveParent, ++/*459045*/ OPC_MoveParent, ++/*459046*/ OPC_MoveChild1, ++/*459047*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*459050*/ OPC_Scope, 14|128,5/*654*/, /*->459707*/ // 4 children in Scope ++/*459053*/ OPC_MoveChild0, ++/*459054*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*459057*/ OPC_Scope, 107, /*->459166*/ // 6 children in Scope ++/*459059*/ OPC_MoveChild0, ++/*459060*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*459063*/ OPC_CheckChild0Integer, 1, ++/*459065*/ OPC_CheckChild0Type, MVT::i32, ++/*459067*/ OPC_CheckChild1Integer, 1, ++/*459069*/ OPC_CheckChild1Type, MVT::i32, ++/*459071*/ OPC_CheckChild2Integer, 1, ++/*459073*/ OPC_CheckChild2Type, MVT::i32, ++/*459075*/ OPC_CheckChild3Integer, 1, ++/*459077*/ OPC_CheckChild3Type, MVT::i32, ++/*459079*/ OPC_CheckChild4Integer, 1, ++/*459081*/ OPC_CheckChild4Type, MVT::i32, ++/*459083*/ OPC_MoveChild5, ++/*459084*/ OPC_CheckInteger, 1, ++/*459086*/ OPC_CheckType, MVT::i32, ++/*459088*/ OPC_MoveParent, ++/*459089*/ OPC_MoveChild6, ++/*459090*/ OPC_CheckInteger, 1, ++/*459092*/ OPC_CheckType, MVT::i32, ++/*459094*/ OPC_MoveParent, ++/*459095*/ OPC_MoveChild7, ++/*459096*/ OPC_CheckInteger, 1, ++/*459098*/ OPC_CheckType, MVT::i32, ++/*459100*/ OPC_MoveParent, ++/*459101*/ OPC_MoveParent, ++/*459102*/ OPC_CheckChild1Same, 0, ++/*459104*/ OPC_MoveParent, ++/*459105*/ OPC_CheckChild1Same, 1, ++/*459107*/ OPC_MoveParent, ++/*459108*/ OPC_MoveParent, ++/*459109*/ OPC_MoveChild1, ++/*459110*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*459113*/ OPC_CheckChild0Integer, 1, ++/*459115*/ OPC_CheckChild0Type, MVT::i32, ++/*459117*/ OPC_CheckChild1Integer, 1, ++/*459119*/ OPC_CheckChild1Type, MVT::i32, ++/*459121*/ OPC_CheckChild2Integer, 1, ++/*459123*/ OPC_CheckChild2Type, MVT::i32, ++/*459125*/ OPC_CheckChild3Integer, 1, ++/*459127*/ OPC_CheckChild3Type, MVT::i32, ++/*459129*/ OPC_CheckChild4Integer, 1, ++/*459131*/ OPC_CheckChild4Type, MVT::i32, ++/*459133*/ OPC_MoveChild5, ++/*459134*/ OPC_CheckInteger, 1, ++/*459136*/ OPC_CheckType, MVT::i32, ++/*459138*/ OPC_MoveParent, ++/*459139*/ OPC_MoveChild6, ++/*459140*/ OPC_CheckInteger, 1, ++/*459142*/ OPC_CheckType, MVT::i32, ++/*459144*/ OPC_MoveParent, ++/*459145*/ OPC_MoveChild7, ++/*459146*/ OPC_CheckInteger, 1, ++/*459148*/ OPC_CheckType, MVT::i32, ++/*459150*/ OPC_MoveParent, ++/*459151*/ OPC_CheckType, MVT::v8i16, ++/*459153*/ OPC_MoveParent, ++/*459154*/ OPC_CheckType, MVT::v8i16, ++/*459156*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*459158*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a), LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a), LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*459166*/ /*Scope*/ 107, /*->459274*/ ++/*459167*/ OPC_CheckChild0Same, 0, ++/*459169*/ OPC_MoveChild1, ++/*459170*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*459173*/ OPC_CheckChild0Integer, 1, ++/*459175*/ OPC_CheckChild0Type, MVT::i32, ++/*459177*/ OPC_CheckChild1Integer, 1, ++/*459179*/ OPC_CheckChild1Type, MVT::i32, ++/*459181*/ OPC_CheckChild2Integer, 1, ++/*459183*/ OPC_CheckChild2Type, MVT::i32, ++/*459185*/ OPC_CheckChild3Integer, 1, ++/*459187*/ OPC_CheckChild3Type, MVT::i32, ++/*459189*/ OPC_CheckChild4Integer, 1, ++/*459191*/ OPC_CheckChild4Type, MVT::i32, ++/*459193*/ OPC_MoveChild5, ++/*459194*/ OPC_CheckInteger, 1, ++/*459196*/ OPC_CheckType, MVT::i32, ++/*459198*/ OPC_MoveParent, ++/*459199*/ OPC_MoveChild6, ++/*459200*/ OPC_CheckInteger, 1, ++/*459202*/ OPC_CheckType, MVT::i32, ++/*459204*/ OPC_MoveParent, ++/*459205*/ OPC_MoveChild7, ++/*459206*/ OPC_CheckInteger, 1, ++/*459208*/ OPC_CheckType, MVT::i32, ++/*459210*/ OPC_MoveParent, ++/*459211*/ OPC_MoveParent, ++/*459212*/ OPC_MoveParent, ++/*459213*/ OPC_CheckChild1Same, 1, ++/*459215*/ OPC_MoveParent, ++/*459216*/ OPC_MoveParent, ++/*459217*/ OPC_MoveChild1, ++/*459218*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*459221*/ OPC_CheckChild0Integer, 1, ++/*459223*/ OPC_CheckChild0Type, MVT::i32, ++/*459225*/ OPC_CheckChild1Integer, 1, ++/*459227*/ OPC_CheckChild1Type, MVT::i32, ++/*459229*/ OPC_CheckChild2Integer, 1, ++/*459231*/ OPC_CheckChild2Type, MVT::i32, ++/*459233*/ OPC_CheckChild3Integer, 1, ++/*459235*/ OPC_CheckChild3Type, MVT::i32, ++/*459237*/ OPC_CheckChild4Integer, 1, ++/*459239*/ OPC_CheckChild4Type, MVT::i32, ++/*459241*/ OPC_MoveChild5, ++/*459242*/ OPC_CheckInteger, 1, ++/*459244*/ OPC_CheckType, MVT::i32, ++/*459246*/ OPC_MoveParent, ++/*459247*/ OPC_MoveChild6, ++/*459248*/ OPC_CheckInteger, 1, ++/*459250*/ OPC_CheckType, MVT::i32, ++/*459252*/ OPC_MoveParent, ++/*459253*/ OPC_MoveChild7, ++/*459254*/ OPC_CheckInteger, 1, ++/*459256*/ OPC_CheckType, MVT::i32, ++/*459258*/ OPC_MoveParent, ++/*459259*/ OPC_CheckType, MVT::v8i16, ++/*459261*/ OPC_MoveParent, ++/*459262*/ OPC_CheckType, MVT::v8i16, ++/*459264*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*459266*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a), LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*459274*/ /*Scope*/ 107, /*->459382*/ ++/*459275*/ OPC_MoveChild0, ++/*459276*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*459279*/ OPC_CheckChild0Integer, 1, ++/*459281*/ OPC_CheckChild0Type, MVT::i32, ++/*459283*/ OPC_CheckChild1Integer, 1, ++/*459285*/ OPC_CheckChild1Type, MVT::i32, ++/*459287*/ OPC_CheckChild2Integer, 1, ++/*459289*/ OPC_CheckChild2Type, MVT::i32, ++/*459291*/ OPC_CheckChild3Integer, 1, ++/*459293*/ OPC_CheckChild3Type, MVT::i32, ++/*459295*/ OPC_CheckChild4Integer, 1, ++/*459297*/ OPC_CheckChild4Type, MVT::i32, ++/*459299*/ OPC_MoveChild5, ++/*459300*/ OPC_CheckInteger, 1, ++/*459302*/ OPC_CheckType, MVT::i32, ++/*459304*/ OPC_MoveParent, ++/*459305*/ OPC_MoveChild6, ++/*459306*/ OPC_CheckInteger, 1, ++/*459308*/ OPC_CheckType, MVT::i32, ++/*459310*/ OPC_MoveParent, ++/*459311*/ OPC_MoveChild7, ++/*459312*/ OPC_CheckInteger, 1, ++/*459314*/ OPC_CheckType, MVT::i32, ++/*459316*/ OPC_MoveParent, ++/*459317*/ OPC_MoveParent, ++/*459318*/ OPC_CheckChild1Same, 1, ++/*459320*/ OPC_MoveParent, ++/*459321*/ OPC_CheckChild1Same, 0, ++/*459323*/ OPC_MoveParent, ++/*459324*/ OPC_MoveParent, ++/*459325*/ OPC_MoveChild1, ++/*459326*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*459329*/ OPC_CheckChild0Integer, 1, ++/*459331*/ OPC_CheckChild0Type, MVT::i32, ++/*459333*/ OPC_CheckChild1Integer, 1, ++/*459335*/ OPC_CheckChild1Type, MVT::i32, ++/*459337*/ OPC_CheckChild2Integer, 1, ++/*459339*/ OPC_CheckChild2Type, MVT::i32, ++/*459341*/ OPC_CheckChild3Integer, 1, ++/*459343*/ OPC_CheckChild3Type, MVT::i32, ++/*459345*/ OPC_CheckChild4Integer, 1, ++/*459347*/ OPC_CheckChild4Type, MVT::i32, ++/*459349*/ OPC_MoveChild5, ++/*459350*/ OPC_CheckInteger, 1, ++/*459352*/ OPC_CheckType, MVT::i32, ++/*459354*/ OPC_MoveParent, ++/*459355*/ OPC_MoveChild6, ++/*459356*/ OPC_CheckInteger, 1, ++/*459358*/ OPC_CheckType, MVT::i32, ++/*459360*/ OPC_MoveParent, ++/*459361*/ OPC_MoveChild7, ++/*459362*/ OPC_CheckInteger, 1, ++/*459364*/ OPC_CheckType, MVT::i32, ++/*459366*/ OPC_MoveParent, ++/*459367*/ OPC_CheckType, MVT::v8i16, ++/*459369*/ OPC_MoveParent, ++/*459370*/ OPC_CheckType, MVT::v8i16, ++/*459372*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*459374*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a), LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b), LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*459382*/ /*Scope*/ 107, /*->459490*/ ++/*459383*/ OPC_CheckChild0Same, 1, ++/*459385*/ OPC_MoveChild1, ++/*459386*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*459389*/ OPC_CheckChild0Integer, 1, ++/*459391*/ OPC_CheckChild0Type, MVT::i32, ++/*459393*/ OPC_CheckChild1Integer, 1, ++/*459395*/ OPC_CheckChild1Type, MVT::i32, ++/*459397*/ OPC_CheckChild2Integer, 1, ++/*459399*/ OPC_CheckChild2Type, MVT::i32, ++/*459401*/ OPC_CheckChild3Integer, 1, ++/*459403*/ OPC_CheckChild3Type, MVT::i32, ++/*459405*/ OPC_CheckChild4Integer, 1, ++/*459407*/ OPC_CheckChild4Type, MVT::i32, ++/*459409*/ OPC_MoveChild5, ++/*459410*/ OPC_CheckInteger, 1, ++/*459412*/ OPC_CheckType, MVT::i32, ++/*459414*/ OPC_MoveParent, ++/*459415*/ OPC_MoveChild6, ++/*459416*/ OPC_CheckInteger, 1, ++/*459418*/ OPC_CheckType, MVT::i32, ++/*459420*/ OPC_MoveParent, ++/*459421*/ OPC_MoveChild7, ++/*459422*/ OPC_CheckInteger, 1, ++/*459424*/ OPC_CheckType, MVT::i32, ++/*459426*/ OPC_MoveParent, ++/*459427*/ OPC_MoveParent, ++/*459428*/ OPC_MoveParent, ++/*459429*/ OPC_CheckChild1Same, 0, ++/*459431*/ OPC_MoveParent, ++/*459432*/ OPC_MoveParent, ++/*459433*/ OPC_MoveChild1, ++/*459434*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*459437*/ OPC_CheckChild0Integer, 1, ++/*459439*/ OPC_CheckChild0Type, MVT::i32, ++/*459441*/ OPC_CheckChild1Integer, 1, ++/*459443*/ OPC_CheckChild1Type, MVT::i32, ++/*459445*/ OPC_CheckChild2Integer, 1, ++/*459447*/ OPC_CheckChild2Type, MVT::i32, ++/*459449*/ OPC_CheckChild3Integer, 1, ++/*459451*/ OPC_CheckChild3Type, MVT::i32, ++/*459453*/ OPC_CheckChild4Integer, 1, ++/*459455*/ OPC_CheckChild4Type, MVT::i32, ++/*459457*/ OPC_MoveChild5, ++/*459458*/ OPC_CheckInteger, 1, ++/*459460*/ OPC_CheckType, MVT::i32, ++/*459462*/ OPC_MoveParent, ++/*459463*/ OPC_MoveChild6, ++/*459464*/ OPC_CheckInteger, 1, ++/*459466*/ OPC_CheckType, MVT::i32, ++/*459468*/ OPC_MoveParent, ++/*459469*/ OPC_MoveChild7, ++/*459470*/ OPC_CheckInteger, 1, ++/*459472*/ OPC_CheckType, MVT::i32, ++/*459474*/ OPC_MoveParent, ++/*459475*/ OPC_CheckType, MVT::v8i16, ++/*459477*/ OPC_MoveParent, ++/*459478*/ OPC_CheckType, MVT::v8i16, ++/*459480*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*459482*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a), LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*459490*/ /*Scope*/ 107, /*->459598*/ ++/*459491*/ OPC_CheckChild0Same, 0, ++/*459493*/ OPC_CheckChild1Same, 1, ++/*459495*/ OPC_MoveParent, ++/*459496*/ OPC_MoveChild1, ++/*459497*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*459500*/ OPC_CheckChild0Integer, 1, ++/*459502*/ OPC_CheckChild0Type, MVT::i32, ++/*459504*/ OPC_CheckChild1Integer, 1, ++/*459506*/ OPC_CheckChild1Type, MVT::i32, ++/*459508*/ OPC_CheckChild2Integer, 1, ++/*459510*/ OPC_CheckChild2Type, MVT::i32, ++/*459512*/ OPC_CheckChild3Integer, 1, ++/*459514*/ OPC_CheckChild3Type, MVT::i32, ++/*459516*/ OPC_CheckChild4Integer, 1, ++/*459518*/ OPC_CheckChild4Type, MVT::i32, ++/*459520*/ OPC_MoveChild5, ++/*459521*/ OPC_CheckInteger, 1, ++/*459523*/ OPC_CheckType, MVT::i32, ++/*459525*/ OPC_MoveParent, ++/*459526*/ OPC_MoveChild6, ++/*459527*/ OPC_CheckInteger, 1, ++/*459529*/ OPC_CheckType, MVT::i32, ++/*459531*/ OPC_MoveParent, ++/*459532*/ OPC_MoveChild7, ++/*459533*/ OPC_CheckInteger, 1, ++/*459535*/ OPC_CheckType, MVT::i32, ++/*459537*/ OPC_MoveParent, ++/*459538*/ OPC_MoveParent, ++/*459539*/ OPC_MoveParent, ++/*459540*/ OPC_MoveParent, ++/*459541*/ OPC_MoveChild1, ++/*459542*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*459545*/ OPC_CheckChild0Integer, 1, ++/*459547*/ OPC_CheckChild0Type, MVT::i32, ++/*459549*/ OPC_CheckChild1Integer, 1, ++/*459551*/ OPC_CheckChild1Type, MVT::i32, ++/*459553*/ OPC_CheckChild2Integer, 1, ++/*459555*/ OPC_CheckChild2Type, MVT::i32, ++/*459557*/ OPC_CheckChild3Integer, 1, ++/*459559*/ OPC_CheckChild3Type, MVT::i32, ++/*459561*/ OPC_CheckChild4Integer, 1, ++/*459563*/ OPC_CheckChild4Type, MVT::i32, ++/*459565*/ OPC_MoveChild5, ++/*459566*/ OPC_CheckInteger, 1, ++/*459568*/ OPC_CheckType, MVT::i32, ++/*459570*/ OPC_MoveParent, ++/*459571*/ OPC_MoveChild6, ++/*459572*/ OPC_CheckInteger, 1, ++/*459574*/ OPC_CheckType, MVT::i32, ++/*459576*/ OPC_MoveParent, ++/*459577*/ OPC_MoveChild7, ++/*459578*/ OPC_CheckInteger, 1, ++/*459580*/ OPC_CheckType, MVT::i32, ++/*459582*/ OPC_MoveParent, ++/*459583*/ OPC_CheckType, MVT::v8i16, ++/*459585*/ OPC_MoveParent, ++/*459586*/ OPC_CheckType, MVT::v8i16, ++/*459588*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*459590*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a), LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*459598*/ /*Scope*/ 107, /*->459706*/ ++/*459599*/ OPC_CheckChild0Same, 1, ++/*459601*/ OPC_CheckChild1Same, 0, ++/*459603*/ OPC_MoveParent, ++/*459604*/ OPC_MoveChild1, ++/*459605*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*459608*/ OPC_CheckChild0Integer, 1, ++/*459610*/ OPC_CheckChild0Type, MVT::i32, ++/*459612*/ OPC_CheckChild1Integer, 1, ++/*459614*/ OPC_CheckChild1Type, MVT::i32, ++/*459616*/ OPC_CheckChild2Integer, 1, ++/*459618*/ OPC_CheckChild2Type, MVT::i32, ++/*459620*/ OPC_CheckChild3Integer, 1, ++/*459622*/ OPC_CheckChild3Type, MVT::i32, ++/*459624*/ OPC_CheckChild4Integer, 1, ++/*459626*/ OPC_CheckChild4Type, MVT::i32, ++/*459628*/ OPC_MoveChild5, ++/*459629*/ OPC_CheckInteger, 1, ++/*459631*/ OPC_CheckType, MVT::i32, ++/*459633*/ OPC_MoveParent, ++/*459634*/ OPC_MoveChild6, ++/*459635*/ OPC_CheckInteger, 1, ++/*459637*/ OPC_CheckType, MVT::i32, ++/*459639*/ OPC_MoveParent, ++/*459640*/ OPC_MoveChild7, ++/*459641*/ OPC_CheckInteger, 1, ++/*459643*/ OPC_CheckType, MVT::i32, ++/*459645*/ OPC_MoveParent, ++/*459646*/ OPC_MoveParent, ++/*459647*/ OPC_MoveParent, ++/*459648*/ OPC_MoveParent, ++/*459649*/ OPC_MoveChild1, ++/*459650*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*459653*/ OPC_CheckChild0Integer, 1, ++/*459655*/ OPC_CheckChild0Type, MVT::i32, ++/*459657*/ OPC_CheckChild1Integer, 1, ++/*459659*/ OPC_CheckChild1Type, MVT::i32, ++/*459661*/ OPC_CheckChild2Integer, 1, ++/*459663*/ OPC_CheckChild2Type, MVT::i32, ++/*459665*/ OPC_CheckChild3Integer, 1, ++/*459667*/ OPC_CheckChild3Type, MVT::i32, ++/*459669*/ OPC_CheckChild4Integer, 1, ++/*459671*/ OPC_CheckChild4Type, MVT::i32, ++/*459673*/ OPC_MoveChild5, ++/*459674*/ OPC_CheckInteger, 1, ++/*459676*/ OPC_CheckType, MVT::i32, ++/*459678*/ OPC_MoveParent, ++/*459679*/ OPC_MoveChild6, ++/*459680*/ OPC_CheckInteger, 1, ++/*459682*/ OPC_CheckType, MVT::i32, ++/*459684*/ OPC_MoveParent, ++/*459685*/ OPC_MoveChild7, ++/*459686*/ OPC_CheckInteger, 1, ++/*459688*/ OPC_CheckType, MVT::i32, ++/*459690*/ OPC_MoveParent, ++/*459691*/ OPC_CheckType, MVT::v8i16, ++/*459693*/ OPC_MoveParent, ++/*459694*/ OPC_CheckType, MVT::v8i16, ++/*459696*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*459698*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a), LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*459706*/ 0, /*End of Scope*/ ++/*459707*/ /*Scope*/ 92|128,1/*220*/, /*->459929*/ ++/*459709*/ OPC_CheckChild0Same, 1, ++/*459711*/ OPC_MoveChild1, ++/*459712*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*459715*/ OPC_Scope, 105, /*->459822*/ // 2 children in Scope ++/*459717*/ OPC_MoveChild0, ++/*459718*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*459721*/ OPC_CheckChild0Integer, 1, ++/*459723*/ OPC_CheckChild0Type, MVT::i32, ++/*459725*/ OPC_CheckChild1Integer, 1, ++/*459727*/ OPC_CheckChild1Type, MVT::i32, ++/*459729*/ OPC_CheckChild2Integer, 1, ++/*459731*/ OPC_CheckChild2Type, MVT::i32, ++/*459733*/ OPC_CheckChild3Integer, 1, ++/*459735*/ OPC_CheckChild3Type, MVT::i32, ++/*459737*/ OPC_CheckChild4Integer, 1, ++/*459739*/ OPC_CheckChild4Type, MVT::i32, ++/*459741*/ OPC_MoveChild5, ++/*459742*/ OPC_CheckInteger, 1, ++/*459744*/ OPC_CheckType, MVT::i32, ++/*459746*/ OPC_MoveParent, ++/*459747*/ OPC_MoveChild6, ++/*459748*/ OPC_CheckInteger, 1, ++/*459750*/ OPC_CheckType, MVT::i32, ++/*459752*/ OPC_MoveParent, ++/*459753*/ OPC_MoveChild7, ++/*459754*/ OPC_CheckInteger, 1, ++/*459756*/ OPC_CheckType, MVT::i32, ++/*459758*/ OPC_MoveParent, ++/*459759*/ OPC_MoveParent, ++/*459760*/ OPC_CheckChild1Same, 0, ++/*459762*/ OPC_MoveParent, ++/*459763*/ OPC_MoveParent, ++/*459764*/ OPC_MoveParent, ++/*459765*/ OPC_MoveChild1, ++/*459766*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*459769*/ OPC_CheckChild0Integer, 1, ++/*459771*/ OPC_CheckChild0Type, MVT::i32, ++/*459773*/ OPC_CheckChild1Integer, 1, ++/*459775*/ OPC_CheckChild1Type, MVT::i32, ++/*459777*/ OPC_CheckChild2Integer, 1, ++/*459779*/ OPC_CheckChild2Type, MVT::i32, ++/*459781*/ OPC_CheckChild3Integer, 1, ++/*459783*/ OPC_CheckChild3Type, MVT::i32, ++/*459785*/ OPC_CheckChild4Integer, 1, ++/*459787*/ OPC_CheckChild4Type, MVT::i32, ++/*459789*/ OPC_MoveChild5, ++/*459790*/ OPC_CheckInteger, 1, ++/*459792*/ OPC_CheckType, MVT::i32, ++/*459794*/ OPC_MoveParent, ++/*459795*/ OPC_MoveChild6, ++/*459796*/ OPC_CheckInteger, 1, ++/*459798*/ OPC_CheckType, MVT::i32, ++/*459800*/ OPC_MoveParent, ++/*459801*/ OPC_MoveChild7, ++/*459802*/ OPC_CheckInteger, 1, ++/*459804*/ OPC_CheckType, MVT::i32, ++/*459806*/ OPC_MoveParent, ++/*459807*/ OPC_CheckType, MVT::v8i16, ++/*459809*/ OPC_MoveParent, ++/*459810*/ OPC_CheckType, MVT::v8i16, ++/*459812*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*459814*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a), LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*459822*/ /*Scope*/ 105, /*->459928*/ ++/*459823*/ OPC_CheckChild0Same, 0, ++/*459825*/ OPC_MoveChild1, ++/*459826*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*459829*/ OPC_CheckChild0Integer, 1, ++/*459831*/ OPC_CheckChild0Type, MVT::i32, ++/*459833*/ OPC_CheckChild1Integer, 1, ++/*459835*/ OPC_CheckChild1Type, MVT::i32, ++/*459837*/ OPC_CheckChild2Integer, 1, ++/*459839*/ OPC_CheckChild2Type, MVT::i32, ++/*459841*/ OPC_CheckChild3Integer, 1, ++/*459843*/ OPC_CheckChild3Type, MVT::i32, ++/*459845*/ OPC_CheckChild4Integer, 1, ++/*459847*/ OPC_CheckChild4Type, MVT::i32, ++/*459849*/ OPC_MoveChild5, ++/*459850*/ OPC_CheckInteger, 1, ++/*459852*/ OPC_CheckType, MVT::i32, ++/*459854*/ OPC_MoveParent, ++/*459855*/ OPC_MoveChild6, ++/*459856*/ OPC_CheckInteger, 1, ++/*459858*/ OPC_CheckType, MVT::i32, ++/*459860*/ OPC_MoveParent, ++/*459861*/ OPC_MoveChild7, ++/*459862*/ OPC_CheckInteger, 1, ++/*459864*/ OPC_CheckType, MVT::i32, ++/*459866*/ OPC_MoveParent, ++/*459867*/ OPC_MoveParent, ++/*459868*/ OPC_MoveParent, ++/*459869*/ OPC_MoveParent, ++/*459870*/ OPC_MoveParent, ++/*459871*/ OPC_MoveChild1, ++/*459872*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*459875*/ OPC_CheckChild0Integer, 1, ++/*459877*/ OPC_CheckChild0Type, MVT::i32, ++/*459879*/ OPC_CheckChild1Integer, 1, ++/*459881*/ OPC_CheckChild1Type, MVT::i32, ++/*459883*/ OPC_CheckChild2Integer, 1, ++/*459885*/ OPC_CheckChild2Type, MVT::i32, ++/*459887*/ OPC_CheckChild3Integer, 1, ++/*459889*/ OPC_CheckChild3Type, MVT::i32, ++/*459891*/ OPC_CheckChild4Integer, 1, ++/*459893*/ OPC_CheckChild4Type, MVT::i32, ++/*459895*/ OPC_MoveChild5, ++/*459896*/ OPC_CheckInteger, 1, ++/*459898*/ OPC_CheckType, MVT::i32, ++/*459900*/ OPC_MoveParent, ++/*459901*/ OPC_MoveChild6, ++/*459902*/ OPC_CheckInteger, 1, ++/*459904*/ OPC_CheckType, MVT::i32, ++/*459906*/ OPC_MoveParent, ++/*459907*/ OPC_MoveChild7, ++/*459908*/ OPC_CheckInteger, 1, ++/*459910*/ OPC_CheckType, MVT::i32, ++/*459912*/ OPC_MoveParent, ++/*459913*/ OPC_CheckType, MVT::v8i16, ++/*459915*/ OPC_MoveParent, ++/*459916*/ OPC_CheckType, MVT::v8i16, ++/*459918*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*459920*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a), LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*459928*/ 0, /*End of Scope*/ ++/*459929*/ /*Scope*/ 92|128,1/*220*/, /*->460151*/ ++/*459931*/ OPC_CheckChild0Same, 0, ++/*459933*/ OPC_MoveChild1, ++/*459934*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*459937*/ OPC_Scope, 105, /*->460044*/ // 2 children in Scope ++/*459939*/ OPC_MoveChild0, ++/*459940*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*459943*/ OPC_CheckChild0Integer, 1, ++/*459945*/ OPC_CheckChild0Type, MVT::i32, ++/*459947*/ OPC_CheckChild1Integer, 1, ++/*459949*/ OPC_CheckChild1Type, MVT::i32, ++/*459951*/ OPC_CheckChild2Integer, 1, ++/*459953*/ OPC_CheckChild2Type, MVT::i32, ++/*459955*/ OPC_CheckChild3Integer, 1, ++/*459957*/ OPC_CheckChild3Type, MVT::i32, ++/*459959*/ OPC_CheckChild4Integer, 1, ++/*459961*/ OPC_CheckChild4Type, MVT::i32, ++/*459963*/ OPC_MoveChild5, ++/*459964*/ OPC_CheckInteger, 1, ++/*459966*/ OPC_CheckType, MVT::i32, ++/*459968*/ OPC_MoveParent, ++/*459969*/ OPC_MoveChild6, ++/*459970*/ OPC_CheckInteger, 1, ++/*459972*/ OPC_CheckType, MVT::i32, ++/*459974*/ OPC_MoveParent, ++/*459975*/ OPC_MoveChild7, ++/*459976*/ OPC_CheckInteger, 1, ++/*459978*/ OPC_CheckType, MVT::i32, ++/*459980*/ OPC_MoveParent, ++/*459981*/ OPC_MoveParent, ++/*459982*/ OPC_CheckChild1Same, 1, ++/*459984*/ OPC_MoveParent, ++/*459985*/ OPC_MoveParent, ++/*459986*/ OPC_MoveParent, ++/*459987*/ OPC_MoveChild1, ++/*459988*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*459991*/ OPC_CheckChild0Integer, 1, ++/*459993*/ OPC_CheckChild0Type, MVT::i32, ++/*459995*/ OPC_CheckChild1Integer, 1, ++/*459997*/ OPC_CheckChild1Type, MVT::i32, ++/*459999*/ OPC_CheckChild2Integer, 1, ++/*460001*/ OPC_CheckChild2Type, MVT::i32, ++/*460003*/ OPC_CheckChild3Integer, 1, ++/*460005*/ OPC_CheckChild3Type, MVT::i32, ++/*460007*/ OPC_CheckChild4Integer, 1, ++/*460009*/ OPC_CheckChild4Type, MVT::i32, ++/*460011*/ OPC_MoveChild5, ++/*460012*/ OPC_CheckInteger, 1, ++/*460014*/ OPC_CheckType, MVT::i32, ++/*460016*/ OPC_MoveParent, ++/*460017*/ OPC_MoveChild6, ++/*460018*/ OPC_CheckInteger, 1, ++/*460020*/ OPC_CheckType, MVT::i32, ++/*460022*/ OPC_MoveParent, ++/*460023*/ OPC_MoveChild7, ++/*460024*/ OPC_CheckInteger, 1, ++/*460026*/ OPC_CheckType, MVT::i32, ++/*460028*/ OPC_MoveParent, ++/*460029*/ OPC_CheckType, MVT::v8i16, ++/*460031*/ OPC_MoveParent, ++/*460032*/ OPC_CheckType, MVT::v8i16, ++/*460034*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*460036*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a), LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*460044*/ /*Scope*/ 105, /*->460150*/ ++/*460045*/ OPC_CheckChild0Same, 1, ++/*460047*/ OPC_MoveChild1, ++/*460048*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*460051*/ OPC_CheckChild0Integer, 1, ++/*460053*/ OPC_CheckChild0Type, MVT::i32, ++/*460055*/ OPC_CheckChild1Integer, 1, ++/*460057*/ OPC_CheckChild1Type, MVT::i32, ++/*460059*/ OPC_CheckChild2Integer, 1, ++/*460061*/ OPC_CheckChild2Type, MVT::i32, ++/*460063*/ OPC_CheckChild3Integer, 1, ++/*460065*/ OPC_CheckChild3Type, MVT::i32, ++/*460067*/ OPC_CheckChild4Integer, 1, ++/*460069*/ OPC_CheckChild4Type, MVT::i32, ++/*460071*/ OPC_MoveChild5, ++/*460072*/ OPC_CheckInteger, 1, ++/*460074*/ OPC_CheckType, MVT::i32, ++/*460076*/ OPC_MoveParent, ++/*460077*/ OPC_MoveChild6, ++/*460078*/ OPC_CheckInteger, 1, ++/*460080*/ OPC_CheckType, MVT::i32, ++/*460082*/ OPC_MoveParent, ++/*460083*/ OPC_MoveChild7, ++/*460084*/ OPC_CheckInteger, 1, ++/*460086*/ OPC_CheckType, MVT::i32, ++/*460088*/ OPC_MoveParent, ++/*460089*/ OPC_MoveParent, ++/*460090*/ OPC_MoveParent, ++/*460091*/ OPC_MoveParent, ++/*460092*/ OPC_MoveParent, ++/*460093*/ OPC_MoveChild1, ++/*460094*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*460097*/ OPC_CheckChild0Integer, 1, ++/*460099*/ OPC_CheckChild0Type, MVT::i32, ++/*460101*/ OPC_CheckChild1Integer, 1, ++/*460103*/ OPC_CheckChild1Type, MVT::i32, ++/*460105*/ OPC_CheckChild2Integer, 1, ++/*460107*/ OPC_CheckChild2Type, MVT::i32, ++/*460109*/ OPC_CheckChild3Integer, 1, ++/*460111*/ OPC_CheckChild3Type, MVT::i32, ++/*460113*/ OPC_CheckChild4Integer, 1, ++/*460115*/ OPC_CheckChild4Type, MVT::i32, ++/*460117*/ OPC_MoveChild5, ++/*460118*/ OPC_CheckInteger, 1, ++/*460120*/ OPC_CheckType, MVT::i32, ++/*460122*/ OPC_MoveParent, ++/*460123*/ OPC_MoveChild6, ++/*460124*/ OPC_CheckInteger, 1, ++/*460126*/ OPC_CheckType, MVT::i32, ++/*460128*/ OPC_MoveParent, ++/*460129*/ OPC_MoveChild7, ++/*460130*/ OPC_CheckInteger, 1, ++/*460132*/ OPC_CheckType, MVT::i32, ++/*460134*/ OPC_MoveParent, ++/*460135*/ OPC_CheckType, MVT::v8i16, ++/*460137*/ OPC_MoveParent, ++/*460138*/ OPC_CheckType, MVT::v8i16, ++/*460140*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*460142*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a), LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*460150*/ 0, /*End of Scope*/ ++/*460151*/ /*Scope*/ 51|128,1/*179*/, /*->460332*/ ++/*460153*/ OPC_MoveChild0, ++/*460154*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*460157*/ OPC_CheckChild0Integer, 1, ++/*460159*/ OPC_CheckChild0Type, MVT::i32, ++/*460161*/ OPC_CheckChild1Integer, 1, ++/*460163*/ OPC_CheckChild1Type, MVT::i32, ++/*460165*/ OPC_CheckChild2Integer, 1, ++/*460167*/ OPC_CheckChild2Type, MVT::i32, ++/*460169*/ OPC_CheckChild3Integer, 1, ++/*460171*/ OPC_CheckChild3Type, MVT::i32, ++/*460173*/ OPC_CheckChild4Integer, 1, ++/*460175*/ OPC_CheckChild4Type, MVT::i32, ++/*460177*/ OPC_MoveChild5, ++/*460178*/ OPC_CheckInteger, 1, ++/*460180*/ OPC_CheckType, MVT::i32, ++/*460182*/ OPC_MoveParent, ++/*460183*/ OPC_MoveChild6, ++/*460184*/ OPC_CheckInteger, 1, ++/*460186*/ OPC_CheckType, MVT::i32, ++/*460188*/ OPC_MoveParent, ++/*460189*/ OPC_MoveChild7, ++/*460190*/ OPC_CheckInteger, 1, ++/*460192*/ OPC_CheckType, MVT::i32, ++/*460194*/ OPC_MoveParent, ++/*460195*/ OPC_MoveParent, ++/*460196*/ OPC_MoveChild1, ++/*460197*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*460200*/ OPC_Scope, 64, /*->460266*/ // 2 children in Scope ++/*460202*/ OPC_CheckChild0Same, 0, ++/*460204*/ OPC_CheckChild1Same, 1, ++/*460206*/ OPC_MoveParent, ++/*460207*/ OPC_MoveParent, ++/*460208*/ OPC_MoveParent, ++/*460209*/ OPC_MoveChild1, ++/*460210*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*460213*/ OPC_CheckChild0Integer, 1, ++/*460215*/ OPC_CheckChild0Type, MVT::i32, ++/*460217*/ OPC_CheckChild1Integer, 1, ++/*460219*/ OPC_CheckChild1Type, MVT::i32, ++/*460221*/ OPC_CheckChild2Integer, 1, ++/*460223*/ OPC_CheckChild2Type, MVT::i32, ++/*460225*/ OPC_CheckChild3Integer, 1, ++/*460227*/ OPC_CheckChild3Type, MVT::i32, ++/*460229*/ OPC_CheckChild4Integer, 1, ++/*460231*/ OPC_CheckChild4Type, MVT::i32, ++/*460233*/ OPC_MoveChild5, ++/*460234*/ OPC_CheckInteger, 1, ++/*460236*/ OPC_CheckType, MVT::i32, ++/*460238*/ OPC_MoveParent, ++/*460239*/ OPC_MoveChild6, ++/*460240*/ OPC_CheckInteger, 1, ++/*460242*/ OPC_CheckType, MVT::i32, ++/*460244*/ OPC_MoveParent, ++/*460245*/ OPC_MoveChild7, ++/*460246*/ OPC_CheckInteger, 1, ++/*460248*/ OPC_CheckType, MVT::i32, ++/*460250*/ OPC_MoveParent, ++/*460251*/ OPC_CheckType, MVT::v8i16, ++/*460253*/ OPC_MoveParent, ++/*460254*/ OPC_CheckType, MVT::v8i16, ++/*460256*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*460258*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a), LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*460266*/ /*Scope*/ 64, /*->460331*/ ++/*460267*/ OPC_CheckChild0Same, 1, ++/*460269*/ OPC_CheckChild1Same, 0, ++/*460271*/ OPC_MoveParent, ++/*460272*/ OPC_MoveParent, ++/*460273*/ OPC_MoveParent, ++/*460274*/ OPC_MoveChild1, ++/*460275*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*460278*/ OPC_CheckChild0Integer, 1, ++/*460280*/ OPC_CheckChild0Type, MVT::i32, ++/*460282*/ OPC_CheckChild1Integer, 1, ++/*460284*/ OPC_CheckChild1Type, MVT::i32, ++/*460286*/ OPC_CheckChild2Integer, 1, ++/*460288*/ OPC_CheckChild2Type, MVT::i32, ++/*460290*/ OPC_CheckChild3Integer, 1, ++/*460292*/ OPC_CheckChild3Type, MVT::i32, ++/*460294*/ OPC_CheckChild4Integer, 1, ++/*460296*/ OPC_CheckChild4Type, MVT::i32, ++/*460298*/ OPC_MoveChild5, ++/*460299*/ OPC_CheckInteger, 1, ++/*460301*/ OPC_CheckType, MVT::i32, ++/*460303*/ OPC_MoveParent, ++/*460304*/ OPC_MoveChild6, ++/*460305*/ OPC_CheckInteger, 1, ++/*460307*/ OPC_CheckType, MVT::i32, ++/*460309*/ OPC_MoveParent, ++/*460310*/ OPC_MoveChild7, ++/*460311*/ OPC_CheckInteger, 1, ++/*460313*/ OPC_CheckType, MVT::i32, ++/*460315*/ OPC_MoveParent, ++/*460316*/ OPC_CheckType, MVT::v8i16, ++/*460318*/ OPC_MoveParent, ++/*460319*/ OPC_CheckType, MVT::v8i16, ++/*460321*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*460323*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a), LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*460331*/ 0, /*End of Scope*/ ++/*460332*/ 0, /*End of Scope*/ ++/*460333*/ /*Scope*/ 100|128,10/*1380*/, /*->461715*/ ++/*460335*/ OPC_RecordChild0, // #0 = $a ++/*460336*/ OPC_MoveChild1, ++/*460337*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*460340*/ OPC_CheckChild0Integer, 1, ++/*460342*/ OPC_CheckChild0Type, MVT::i32, ++/*460344*/ OPC_CheckChild1Integer, 1, ++/*460346*/ OPC_CheckChild1Type, MVT::i32, ++/*460348*/ OPC_CheckChild2Integer, 1, ++/*460350*/ OPC_CheckChild2Type, MVT::i32, ++/*460352*/ OPC_CheckChild3Integer, 1, ++/*460354*/ OPC_CheckChild3Type, MVT::i32, ++/*460356*/ OPC_CheckChild4Integer, 1, ++/*460358*/ OPC_CheckChild4Type, MVT::i32, ++/*460360*/ OPC_MoveChild5, ++/*460361*/ OPC_CheckInteger, 1, ++/*460363*/ OPC_CheckType, MVT::i32, ++/*460365*/ OPC_MoveParent, ++/*460366*/ OPC_MoveChild6, ++/*460367*/ OPC_CheckInteger, 1, ++/*460369*/ OPC_CheckType, MVT::i32, ++/*460371*/ OPC_MoveParent, ++/*460372*/ OPC_MoveChild7, ++/*460373*/ OPC_CheckInteger, 1, ++/*460375*/ OPC_CheckType, MVT::i32, ++/*460377*/ OPC_MoveParent, ++/*460378*/ OPC_MoveParent, ++/*460379*/ OPC_MoveParent, ++/*460380*/ OPC_RecordChild1, // #1 = $b ++/*460381*/ OPC_MoveParent, ++/*460382*/ OPC_MoveChild1, ++/*460383*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*460386*/ OPC_CheckChild0Integer, 15, ++/*460388*/ OPC_CheckChild0Type, MVT::i32, ++/*460390*/ OPC_CheckChild1Integer, 15, ++/*460392*/ OPC_CheckChild1Type, MVT::i32, ++/*460394*/ OPC_CheckChild2Integer, 15, ++/*460396*/ OPC_CheckChild2Type, MVT::i32, ++/*460398*/ OPC_CheckChild3Integer, 15, ++/*460400*/ OPC_CheckChild3Type, MVT::i32, ++/*460402*/ OPC_CheckChild4Integer, 15, ++/*460404*/ OPC_CheckChild4Type, MVT::i32, ++/*460406*/ OPC_MoveChild5, ++/*460407*/ OPC_CheckInteger, 15, ++/*460409*/ OPC_CheckType, MVT::i32, ++/*460411*/ OPC_MoveParent, ++/*460412*/ OPC_MoveChild6, ++/*460413*/ OPC_CheckInteger, 15, ++/*460415*/ OPC_CheckType, MVT::i32, ++/*460417*/ OPC_MoveParent, ++/*460418*/ OPC_MoveChild7, ++/*460419*/ OPC_CheckInteger, 15, ++/*460421*/ OPC_CheckType, MVT::i32, ++/*460423*/ OPC_MoveParent, ++/*460424*/ OPC_CheckType, MVT::v8i16, ++/*460426*/ OPC_MoveParent, ++/*460427*/ OPC_MoveParent, ++/*460428*/ OPC_MoveChild1, ++/*460429*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*460432*/ OPC_Scope, 14|128,5/*654*/, /*->461089*/ // 4 children in Scope ++/*460435*/ OPC_MoveChild0, ++/*460436*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*460439*/ OPC_Scope, 107, /*->460548*/ // 6 children in Scope ++/*460441*/ OPC_MoveChild0, ++/*460442*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*460445*/ OPC_CheckChild0Integer, 1, ++/*460447*/ OPC_CheckChild0Type, MVT::i32, ++/*460449*/ OPC_CheckChild1Integer, 1, ++/*460451*/ OPC_CheckChild1Type, MVT::i32, ++/*460453*/ OPC_CheckChild2Integer, 1, ++/*460455*/ OPC_CheckChild2Type, MVT::i32, ++/*460457*/ OPC_CheckChild3Integer, 1, ++/*460459*/ OPC_CheckChild3Type, MVT::i32, ++/*460461*/ OPC_CheckChild4Integer, 1, ++/*460463*/ OPC_CheckChild4Type, MVT::i32, ++/*460465*/ OPC_MoveChild5, ++/*460466*/ OPC_CheckInteger, 1, ++/*460468*/ OPC_CheckType, MVT::i32, ++/*460470*/ OPC_MoveParent, ++/*460471*/ OPC_MoveChild6, ++/*460472*/ OPC_CheckInteger, 1, ++/*460474*/ OPC_CheckType, MVT::i32, ++/*460476*/ OPC_MoveParent, ++/*460477*/ OPC_MoveChild7, ++/*460478*/ OPC_CheckInteger, 1, ++/*460480*/ OPC_CheckType, MVT::i32, ++/*460482*/ OPC_MoveParent, ++/*460483*/ OPC_MoveParent, ++/*460484*/ OPC_CheckChild1Same, 0, ++/*460486*/ OPC_MoveParent, ++/*460487*/ OPC_CheckChild1Same, 1, ++/*460489*/ OPC_MoveParent, ++/*460490*/ OPC_MoveParent, ++/*460491*/ OPC_MoveChild1, ++/*460492*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*460495*/ OPC_CheckChild0Integer, 1, ++/*460497*/ OPC_CheckChild0Type, MVT::i32, ++/*460499*/ OPC_CheckChild1Integer, 1, ++/*460501*/ OPC_CheckChild1Type, MVT::i32, ++/*460503*/ OPC_CheckChild2Integer, 1, ++/*460505*/ OPC_CheckChild2Type, MVT::i32, ++/*460507*/ OPC_CheckChild3Integer, 1, ++/*460509*/ OPC_CheckChild3Type, MVT::i32, ++/*460511*/ OPC_CheckChild4Integer, 1, ++/*460513*/ OPC_CheckChild4Type, MVT::i32, ++/*460515*/ OPC_MoveChild5, ++/*460516*/ OPC_CheckInteger, 1, ++/*460518*/ OPC_CheckType, MVT::i32, ++/*460520*/ OPC_MoveParent, ++/*460521*/ OPC_MoveChild6, ++/*460522*/ OPC_CheckInteger, 1, ++/*460524*/ OPC_CheckType, MVT::i32, ++/*460526*/ OPC_MoveParent, ++/*460527*/ OPC_MoveChild7, ++/*460528*/ OPC_CheckInteger, 1, ++/*460530*/ OPC_CheckType, MVT::i32, ++/*460532*/ OPC_MoveParent, ++/*460533*/ OPC_CheckType, MVT::v8i16, ++/*460535*/ OPC_MoveParent, ++/*460536*/ OPC_CheckType, MVT::v8i16, ++/*460538*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*460540*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a), LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*460548*/ /*Scope*/ 107, /*->460656*/ ++/*460549*/ OPC_CheckChild0Same, 0, ++/*460551*/ OPC_MoveChild1, ++/*460552*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*460555*/ OPC_CheckChild0Integer, 1, ++/*460557*/ OPC_CheckChild0Type, MVT::i32, ++/*460559*/ OPC_CheckChild1Integer, 1, ++/*460561*/ OPC_CheckChild1Type, MVT::i32, ++/*460563*/ OPC_CheckChild2Integer, 1, ++/*460565*/ OPC_CheckChild2Type, MVT::i32, ++/*460567*/ OPC_CheckChild3Integer, 1, ++/*460569*/ OPC_CheckChild3Type, MVT::i32, ++/*460571*/ OPC_CheckChild4Integer, 1, ++/*460573*/ OPC_CheckChild4Type, MVT::i32, ++/*460575*/ OPC_MoveChild5, ++/*460576*/ OPC_CheckInteger, 1, ++/*460578*/ OPC_CheckType, MVT::i32, ++/*460580*/ OPC_MoveParent, ++/*460581*/ OPC_MoveChild6, ++/*460582*/ OPC_CheckInteger, 1, ++/*460584*/ OPC_CheckType, MVT::i32, ++/*460586*/ OPC_MoveParent, ++/*460587*/ OPC_MoveChild7, ++/*460588*/ OPC_CheckInteger, 1, ++/*460590*/ OPC_CheckType, MVT::i32, ++/*460592*/ OPC_MoveParent, ++/*460593*/ OPC_MoveParent, ++/*460594*/ OPC_MoveParent, ++/*460595*/ OPC_CheckChild1Same, 1, ++/*460597*/ OPC_MoveParent, ++/*460598*/ OPC_MoveParent, ++/*460599*/ OPC_MoveChild1, ++/*460600*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*460603*/ OPC_CheckChild0Integer, 1, ++/*460605*/ OPC_CheckChild0Type, MVT::i32, ++/*460607*/ OPC_CheckChild1Integer, 1, ++/*460609*/ OPC_CheckChild1Type, MVT::i32, ++/*460611*/ OPC_CheckChild2Integer, 1, ++/*460613*/ OPC_CheckChild2Type, MVT::i32, ++/*460615*/ OPC_CheckChild3Integer, 1, ++/*460617*/ OPC_CheckChild3Type, MVT::i32, ++/*460619*/ OPC_CheckChild4Integer, 1, ++/*460621*/ OPC_CheckChild4Type, MVT::i32, ++/*460623*/ OPC_MoveChild5, ++/*460624*/ OPC_CheckInteger, 1, ++/*460626*/ OPC_CheckType, MVT::i32, ++/*460628*/ OPC_MoveParent, ++/*460629*/ OPC_MoveChild6, ++/*460630*/ OPC_CheckInteger, 1, ++/*460632*/ OPC_CheckType, MVT::i32, ++/*460634*/ OPC_MoveParent, ++/*460635*/ OPC_MoveChild7, ++/*460636*/ OPC_CheckInteger, 1, ++/*460638*/ OPC_CheckType, MVT::i32, ++/*460640*/ OPC_MoveParent, ++/*460641*/ OPC_CheckType, MVT::v8i16, ++/*460643*/ OPC_MoveParent, ++/*460644*/ OPC_CheckType, MVT::v8i16, ++/*460646*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*460648*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*460656*/ /*Scope*/ 107, /*->460764*/ ++/*460657*/ OPC_MoveChild0, ++/*460658*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*460661*/ OPC_CheckChild0Integer, 1, ++/*460663*/ OPC_CheckChild0Type, MVT::i32, ++/*460665*/ OPC_CheckChild1Integer, 1, ++/*460667*/ OPC_CheckChild1Type, MVT::i32, ++/*460669*/ OPC_CheckChild2Integer, 1, ++/*460671*/ OPC_CheckChild2Type, MVT::i32, ++/*460673*/ OPC_CheckChild3Integer, 1, ++/*460675*/ OPC_CheckChild3Type, MVT::i32, ++/*460677*/ OPC_CheckChild4Integer, 1, ++/*460679*/ OPC_CheckChild4Type, MVT::i32, ++/*460681*/ OPC_MoveChild5, ++/*460682*/ OPC_CheckInteger, 1, ++/*460684*/ OPC_CheckType, MVT::i32, ++/*460686*/ OPC_MoveParent, ++/*460687*/ OPC_MoveChild6, ++/*460688*/ OPC_CheckInteger, 1, ++/*460690*/ OPC_CheckType, MVT::i32, ++/*460692*/ OPC_MoveParent, ++/*460693*/ OPC_MoveChild7, ++/*460694*/ OPC_CheckInteger, 1, ++/*460696*/ OPC_CheckType, MVT::i32, ++/*460698*/ OPC_MoveParent, ++/*460699*/ OPC_MoveParent, ++/*460700*/ OPC_CheckChild1Same, 1, ++/*460702*/ OPC_MoveParent, ++/*460703*/ OPC_CheckChild1Same, 0, ++/*460705*/ OPC_MoveParent, ++/*460706*/ OPC_MoveParent, ++/*460707*/ OPC_MoveChild1, ++/*460708*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*460711*/ OPC_CheckChild0Integer, 1, ++/*460713*/ OPC_CheckChild0Type, MVT::i32, ++/*460715*/ OPC_CheckChild1Integer, 1, ++/*460717*/ OPC_CheckChild1Type, MVT::i32, ++/*460719*/ OPC_CheckChild2Integer, 1, ++/*460721*/ OPC_CheckChild2Type, MVT::i32, ++/*460723*/ OPC_CheckChild3Integer, 1, ++/*460725*/ OPC_CheckChild3Type, MVT::i32, ++/*460727*/ OPC_CheckChild4Integer, 1, ++/*460729*/ OPC_CheckChild4Type, MVT::i32, ++/*460731*/ OPC_MoveChild5, ++/*460732*/ OPC_CheckInteger, 1, ++/*460734*/ OPC_CheckType, MVT::i32, ++/*460736*/ OPC_MoveParent, ++/*460737*/ OPC_MoveChild6, ++/*460738*/ OPC_CheckInteger, 1, ++/*460740*/ OPC_CheckType, MVT::i32, ++/*460742*/ OPC_MoveParent, ++/*460743*/ OPC_MoveChild7, ++/*460744*/ OPC_CheckInteger, 1, ++/*460746*/ OPC_CheckType, MVT::i32, ++/*460748*/ OPC_MoveParent, ++/*460749*/ OPC_CheckType, MVT::v8i16, ++/*460751*/ OPC_MoveParent, ++/*460752*/ OPC_CheckType, MVT::v8i16, ++/*460754*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*460756*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b), LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*460764*/ /*Scope*/ 107, /*->460872*/ ++/*460765*/ OPC_CheckChild0Same, 1, ++/*460767*/ OPC_MoveChild1, ++/*460768*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*460771*/ OPC_CheckChild0Integer, 1, ++/*460773*/ OPC_CheckChild0Type, MVT::i32, ++/*460775*/ OPC_CheckChild1Integer, 1, ++/*460777*/ OPC_CheckChild1Type, MVT::i32, ++/*460779*/ OPC_CheckChild2Integer, 1, ++/*460781*/ OPC_CheckChild2Type, MVT::i32, ++/*460783*/ OPC_CheckChild3Integer, 1, ++/*460785*/ OPC_CheckChild3Type, MVT::i32, ++/*460787*/ OPC_CheckChild4Integer, 1, ++/*460789*/ OPC_CheckChild4Type, MVT::i32, ++/*460791*/ OPC_MoveChild5, ++/*460792*/ OPC_CheckInteger, 1, ++/*460794*/ OPC_CheckType, MVT::i32, ++/*460796*/ OPC_MoveParent, ++/*460797*/ OPC_MoveChild6, ++/*460798*/ OPC_CheckInteger, 1, ++/*460800*/ OPC_CheckType, MVT::i32, ++/*460802*/ OPC_MoveParent, ++/*460803*/ OPC_MoveChild7, ++/*460804*/ OPC_CheckInteger, 1, ++/*460806*/ OPC_CheckType, MVT::i32, ++/*460808*/ OPC_MoveParent, ++/*460809*/ OPC_MoveParent, ++/*460810*/ OPC_MoveParent, ++/*460811*/ OPC_CheckChild1Same, 0, ++/*460813*/ OPC_MoveParent, ++/*460814*/ OPC_MoveParent, ++/*460815*/ OPC_MoveChild1, ++/*460816*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*460819*/ OPC_CheckChild0Integer, 1, ++/*460821*/ OPC_CheckChild0Type, MVT::i32, ++/*460823*/ OPC_CheckChild1Integer, 1, ++/*460825*/ OPC_CheckChild1Type, MVT::i32, ++/*460827*/ OPC_CheckChild2Integer, 1, ++/*460829*/ OPC_CheckChild2Type, MVT::i32, ++/*460831*/ OPC_CheckChild3Integer, 1, ++/*460833*/ OPC_CheckChild3Type, MVT::i32, ++/*460835*/ OPC_CheckChild4Integer, 1, ++/*460837*/ OPC_CheckChild4Type, MVT::i32, ++/*460839*/ OPC_MoveChild5, ++/*460840*/ OPC_CheckInteger, 1, ++/*460842*/ OPC_CheckType, MVT::i32, ++/*460844*/ OPC_MoveParent, ++/*460845*/ OPC_MoveChild6, ++/*460846*/ OPC_CheckInteger, 1, ++/*460848*/ OPC_CheckType, MVT::i32, ++/*460850*/ OPC_MoveParent, ++/*460851*/ OPC_MoveChild7, ++/*460852*/ OPC_CheckInteger, 1, ++/*460854*/ OPC_CheckType, MVT::i32, ++/*460856*/ OPC_MoveParent, ++/*460857*/ OPC_CheckType, MVT::v8i16, ++/*460859*/ OPC_MoveParent, ++/*460860*/ OPC_CheckType, MVT::v8i16, ++/*460862*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*460864*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*460872*/ /*Scope*/ 107, /*->460980*/ ++/*460873*/ OPC_CheckChild0Same, 0, ++/*460875*/ OPC_CheckChild1Same, 1, ++/*460877*/ OPC_MoveParent, ++/*460878*/ OPC_MoveChild1, ++/*460879*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*460882*/ OPC_CheckChild0Integer, 1, ++/*460884*/ OPC_CheckChild0Type, MVT::i32, ++/*460886*/ OPC_CheckChild1Integer, 1, ++/*460888*/ OPC_CheckChild1Type, MVT::i32, ++/*460890*/ OPC_CheckChild2Integer, 1, ++/*460892*/ OPC_CheckChild2Type, MVT::i32, ++/*460894*/ OPC_CheckChild3Integer, 1, ++/*460896*/ OPC_CheckChild3Type, MVT::i32, ++/*460898*/ OPC_CheckChild4Integer, 1, ++/*460900*/ OPC_CheckChild4Type, MVT::i32, ++/*460902*/ OPC_MoveChild5, ++/*460903*/ OPC_CheckInteger, 1, ++/*460905*/ OPC_CheckType, MVT::i32, ++/*460907*/ OPC_MoveParent, ++/*460908*/ OPC_MoveChild6, ++/*460909*/ OPC_CheckInteger, 1, ++/*460911*/ OPC_CheckType, MVT::i32, ++/*460913*/ OPC_MoveParent, ++/*460914*/ OPC_MoveChild7, ++/*460915*/ OPC_CheckInteger, 1, ++/*460917*/ OPC_CheckType, MVT::i32, ++/*460919*/ OPC_MoveParent, ++/*460920*/ OPC_MoveParent, ++/*460921*/ OPC_MoveParent, ++/*460922*/ OPC_MoveParent, ++/*460923*/ OPC_MoveChild1, ++/*460924*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*460927*/ OPC_CheckChild0Integer, 1, ++/*460929*/ OPC_CheckChild0Type, MVT::i32, ++/*460931*/ OPC_CheckChild1Integer, 1, ++/*460933*/ OPC_CheckChild1Type, MVT::i32, ++/*460935*/ OPC_CheckChild2Integer, 1, ++/*460937*/ OPC_CheckChild2Type, MVT::i32, ++/*460939*/ OPC_CheckChild3Integer, 1, ++/*460941*/ OPC_CheckChild3Type, MVT::i32, ++/*460943*/ OPC_CheckChild4Integer, 1, ++/*460945*/ OPC_CheckChild4Type, MVT::i32, ++/*460947*/ OPC_MoveChild5, ++/*460948*/ OPC_CheckInteger, 1, ++/*460950*/ OPC_CheckType, MVT::i32, ++/*460952*/ OPC_MoveParent, ++/*460953*/ OPC_MoveChild6, ++/*460954*/ OPC_CheckInteger, 1, ++/*460956*/ OPC_CheckType, MVT::i32, ++/*460958*/ OPC_MoveParent, ++/*460959*/ OPC_MoveChild7, ++/*460960*/ OPC_CheckInteger, 1, ++/*460962*/ OPC_CheckType, MVT::i32, ++/*460964*/ OPC_MoveParent, ++/*460965*/ OPC_CheckType, MVT::v8i16, ++/*460967*/ OPC_MoveParent, ++/*460968*/ OPC_CheckType, MVT::v8i16, ++/*460970*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*460972*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*460980*/ /*Scope*/ 107, /*->461088*/ ++/*460981*/ OPC_CheckChild0Same, 1, ++/*460983*/ OPC_CheckChild1Same, 0, ++/*460985*/ OPC_MoveParent, ++/*460986*/ OPC_MoveChild1, ++/*460987*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*460990*/ OPC_CheckChild0Integer, 1, ++/*460992*/ OPC_CheckChild0Type, MVT::i32, ++/*460994*/ OPC_CheckChild1Integer, 1, ++/*460996*/ OPC_CheckChild1Type, MVT::i32, ++/*460998*/ OPC_CheckChild2Integer, 1, ++/*461000*/ OPC_CheckChild2Type, MVT::i32, ++/*461002*/ OPC_CheckChild3Integer, 1, ++/*461004*/ OPC_CheckChild3Type, MVT::i32, ++/*461006*/ OPC_CheckChild4Integer, 1, ++/*461008*/ OPC_CheckChild4Type, MVT::i32, ++/*461010*/ OPC_MoveChild5, ++/*461011*/ OPC_CheckInteger, 1, ++/*461013*/ OPC_CheckType, MVT::i32, ++/*461015*/ OPC_MoveParent, ++/*461016*/ OPC_MoveChild6, ++/*461017*/ OPC_CheckInteger, 1, ++/*461019*/ OPC_CheckType, MVT::i32, ++/*461021*/ OPC_MoveParent, ++/*461022*/ OPC_MoveChild7, ++/*461023*/ OPC_CheckInteger, 1, ++/*461025*/ OPC_CheckType, MVT::i32, ++/*461027*/ OPC_MoveParent, ++/*461028*/ OPC_MoveParent, ++/*461029*/ OPC_MoveParent, ++/*461030*/ OPC_MoveParent, ++/*461031*/ OPC_MoveChild1, ++/*461032*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*461035*/ OPC_CheckChild0Integer, 1, ++/*461037*/ OPC_CheckChild0Type, MVT::i32, ++/*461039*/ OPC_CheckChild1Integer, 1, ++/*461041*/ OPC_CheckChild1Type, MVT::i32, ++/*461043*/ OPC_CheckChild2Integer, 1, ++/*461045*/ OPC_CheckChild2Type, MVT::i32, ++/*461047*/ OPC_CheckChild3Integer, 1, ++/*461049*/ OPC_CheckChild3Type, MVT::i32, ++/*461051*/ OPC_CheckChild4Integer, 1, ++/*461053*/ OPC_CheckChild4Type, MVT::i32, ++/*461055*/ OPC_MoveChild5, ++/*461056*/ OPC_CheckInteger, 1, ++/*461058*/ OPC_CheckType, MVT::i32, ++/*461060*/ OPC_MoveParent, ++/*461061*/ OPC_MoveChild6, ++/*461062*/ OPC_CheckInteger, 1, ++/*461064*/ OPC_CheckType, MVT::i32, ++/*461066*/ OPC_MoveParent, ++/*461067*/ OPC_MoveChild7, ++/*461068*/ OPC_CheckInteger, 1, ++/*461070*/ OPC_CheckType, MVT::i32, ++/*461072*/ OPC_MoveParent, ++/*461073*/ OPC_CheckType, MVT::v8i16, ++/*461075*/ OPC_MoveParent, ++/*461076*/ OPC_CheckType, MVT::v8i16, ++/*461078*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*461080*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*461088*/ 0, /*End of Scope*/ ++/*461089*/ /*Scope*/ 92|128,1/*220*/, /*->461311*/ ++/*461091*/ OPC_CheckChild0Same, 1, ++/*461093*/ OPC_MoveChild1, ++/*461094*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*461097*/ OPC_Scope, 105, /*->461204*/ // 2 children in Scope ++/*461099*/ OPC_MoveChild0, ++/*461100*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*461103*/ OPC_CheckChild0Integer, 1, ++/*461105*/ OPC_CheckChild0Type, MVT::i32, ++/*461107*/ OPC_CheckChild1Integer, 1, ++/*461109*/ OPC_CheckChild1Type, MVT::i32, ++/*461111*/ OPC_CheckChild2Integer, 1, ++/*461113*/ OPC_CheckChild2Type, MVT::i32, ++/*461115*/ OPC_CheckChild3Integer, 1, ++/*461117*/ OPC_CheckChild3Type, MVT::i32, ++/*461119*/ OPC_CheckChild4Integer, 1, ++/*461121*/ OPC_CheckChild4Type, MVT::i32, ++/*461123*/ OPC_MoveChild5, ++/*461124*/ OPC_CheckInteger, 1, ++/*461126*/ OPC_CheckType, MVT::i32, ++/*461128*/ OPC_MoveParent, ++/*461129*/ OPC_MoveChild6, ++/*461130*/ OPC_CheckInteger, 1, ++/*461132*/ OPC_CheckType, MVT::i32, ++/*461134*/ OPC_MoveParent, ++/*461135*/ OPC_MoveChild7, ++/*461136*/ OPC_CheckInteger, 1, ++/*461138*/ OPC_CheckType, MVT::i32, ++/*461140*/ OPC_MoveParent, ++/*461141*/ OPC_MoveParent, ++/*461142*/ OPC_CheckChild1Same, 0, ++/*461144*/ OPC_MoveParent, ++/*461145*/ OPC_MoveParent, ++/*461146*/ OPC_MoveParent, ++/*461147*/ OPC_MoveChild1, ++/*461148*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*461151*/ OPC_CheckChild0Integer, 1, ++/*461153*/ OPC_CheckChild0Type, MVT::i32, ++/*461155*/ OPC_CheckChild1Integer, 1, ++/*461157*/ OPC_CheckChild1Type, MVT::i32, ++/*461159*/ OPC_CheckChild2Integer, 1, ++/*461161*/ OPC_CheckChild2Type, MVT::i32, ++/*461163*/ OPC_CheckChild3Integer, 1, ++/*461165*/ OPC_CheckChild3Type, MVT::i32, ++/*461167*/ OPC_CheckChild4Integer, 1, ++/*461169*/ OPC_CheckChild4Type, MVT::i32, ++/*461171*/ OPC_MoveChild5, ++/*461172*/ OPC_CheckInteger, 1, ++/*461174*/ OPC_CheckType, MVT::i32, ++/*461176*/ OPC_MoveParent, ++/*461177*/ OPC_MoveChild6, ++/*461178*/ OPC_CheckInteger, 1, ++/*461180*/ OPC_CheckType, MVT::i32, ++/*461182*/ OPC_MoveParent, ++/*461183*/ OPC_MoveChild7, ++/*461184*/ OPC_CheckInteger, 1, ++/*461186*/ OPC_CheckType, MVT::i32, ++/*461188*/ OPC_MoveParent, ++/*461189*/ OPC_CheckType, MVT::v8i16, ++/*461191*/ OPC_MoveParent, ++/*461192*/ OPC_CheckType, MVT::v8i16, ++/*461194*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*461196*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*461204*/ /*Scope*/ 105, /*->461310*/ ++/*461205*/ OPC_CheckChild0Same, 0, ++/*461207*/ OPC_MoveChild1, ++/*461208*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*461211*/ OPC_CheckChild0Integer, 1, ++/*461213*/ OPC_CheckChild0Type, MVT::i32, ++/*461215*/ OPC_CheckChild1Integer, 1, ++/*461217*/ OPC_CheckChild1Type, MVT::i32, ++/*461219*/ OPC_CheckChild2Integer, 1, ++/*461221*/ OPC_CheckChild2Type, MVT::i32, ++/*461223*/ OPC_CheckChild3Integer, 1, ++/*461225*/ OPC_CheckChild3Type, MVT::i32, ++/*461227*/ OPC_CheckChild4Integer, 1, ++/*461229*/ OPC_CheckChild4Type, MVT::i32, ++/*461231*/ OPC_MoveChild5, ++/*461232*/ OPC_CheckInteger, 1, ++/*461234*/ OPC_CheckType, MVT::i32, ++/*461236*/ OPC_MoveParent, ++/*461237*/ OPC_MoveChild6, ++/*461238*/ OPC_CheckInteger, 1, ++/*461240*/ OPC_CheckType, MVT::i32, ++/*461242*/ OPC_MoveParent, ++/*461243*/ OPC_MoveChild7, ++/*461244*/ OPC_CheckInteger, 1, ++/*461246*/ OPC_CheckType, MVT::i32, ++/*461248*/ OPC_MoveParent, ++/*461249*/ OPC_MoveParent, ++/*461250*/ OPC_MoveParent, ++/*461251*/ OPC_MoveParent, ++/*461252*/ OPC_MoveParent, ++/*461253*/ OPC_MoveChild1, ++/*461254*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*461257*/ OPC_CheckChild0Integer, 1, ++/*461259*/ OPC_CheckChild0Type, MVT::i32, ++/*461261*/ OPC_CheckChild1Integer, 1, ++/*461263*/ OPC_CheckChild1Type, MVT::i32, ++/*461265*/ OPC_CheckChild2Integer, 1, ++/*461267*/ OPC_CheckChild2Type, MVT::i32, ++/*461269*/ OPC_CheckChild3Integer, 1, ++/*461271*/ OPC_CheckChild3Type, MVT::i32, ++/*461273*/ OPC_CheckChild4Integer, 1, ++/*461275*/ OPC_CheckChild4Type, MVT::i32, ++/*461277*/ OPC_MoveChild5, ++/*461278*/ OPC_CheckInteger, 1, ++/*461280*/ OPC_CheckType, MVT::i32, ++/*461282*/ OPC_MoveParent, ++/*461283*/ OPC_MoveChild6, ++/*461284*/ OPC_CheckInteger, 1, ++/*461286*/ OPC_CheckType, MVT::i32, ++/*461288*/ OPC_MoveParent, ++/*461289*/ OPC_MoveChild7, ++/*461290*/ OPC_CheckInteger, 1, ++/*461292*/ OPC_CheckType, MVT::i32, ++/*461294*/ OPC_MoveParent, ++/*461295*/ OPC_CheckType, MVT::v8i16, ++/*461297*/ OPC_MoveParent, ++/*461298*/ OPC_CheckType, MVT::v8i16, ++/*461300*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*461302*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*461310*/ 0, /*End of Scope*/ ++/*461311*/ /*Scope*/ 92|128,1/*220*/, /*->461533*/ ++/*461313*/ OPC_CheckChild0Same, 0, ++/*461315*/ OPC_MoveChild1, ++/*461316*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*461319*/ OPC_Scope, 105, /*->461426*/ // 2 children in Scope ++/*461321*/ OPC_MoveChild0, ++/*461322*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*461325*/ OPC_CheckChild0Integer, 1, ++/*461327*/ OPC_CheckChild0Type, MVT::i32, ++/*461329*/ OPC_CheckChild1Integer, 1, ++/*461331*/ OPC_CheckChild1Type, MVT::i32, ++/*461333*/ OPC_CheckChild2Integer, 1, ++/*461335*/ OPC_CheckChild2Type, MVT::i32, ++/*461337*/ OPC_CheckChild3Integer, 1, ++/*461339*/ OPC_CheckChild3Type, MVT::i32, ++/*461341*/ OPC_CheckChild4Integer, 1, ++/*461343*/ OPC_CheckChild4Type, MVT::i32, ++/*461345*/ OPC_MoveChild5, ++/*461346*/ OPC_CheckInteger, 1, ++/*461348*/ OPC_CheckType, MVT::i32, ++/*461350*/ OPC_MoveParent, ++/*461351*/ OPC_MoveChild6, ++/*461352*/ OPC_CheckInteger, 1, ++/*461354*/ OPC_CheckType, MVT::i32, ++/*461356*/ OPC_MoveParent, ++/*461357*/ OPC_MoveChild7, ++/*461358*/ OPC_CheckInteger, 1, ++/*461360*/ OPC_CheckType, MVT::i32, ++/*461362*/ OPC_MoveParent, ++/*461363*/ OPC_MoveParent, ++/*461364*/ OPC_CheckChild1Same, 1, ++/*461366*/ OPC_MoveParent, ++/*461367*/ OPC_MoveParent, ++/*461368*/ OPC_MoveParent, ++/*461369*/ OPC_MoveChild1, ++/*461370*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*461373*/ OPC_CheckChild0Integer, 1, ++/*461375*/ OPC_CheckChild0Type, MVT::i32, ++/*461377*/ OPC_CheckChild1Integer, 1, ++/*461379*/ OPC_CheckChild1Type, MVT::i32, ++/*461381*/ OPC_CheckChild2Integer, 1, ++/*461383*/ OPC_CheckChild2Type, MVT::i32, ++/*461385*/ OPC_CheckChild3Integer, 1, ++/*461387*/ OPC_CheckChild3Type, MVT::i32, ++/*461389*/ OPC_CheckChild4Integer, 1, ++/*461391*/ OPC_CheckChild4Type, MVT::i32, ++/*461393*/ OPC_MoveChild5, ++/*461394*/ OPC_CheckInteger, 1, ++/*461396*/ OPC_CheckType, MVT::i32, ++/*461398*/ OPC_MoveParent, ++/*461399*/ OPC_MoveChild6, ++/*461400*/ OPC_CheckInteger, 1, ++/*461402*/ OPC_CheckType, MVT::i32, ++/*461404*/ OPC_MoveParent, ++/*461405*/ OPC_MoveChild7, ++/*461406*/ OPC_CheckInteger, 1, ++/*461408*/ OPC_CheckType, MVT::i32, ++/*461410*/ OPC_MoveParent, ++/*461411*/ OPC_CheckType, MVT::v8i16, ++/*461413*/ OPC_MoveParent, ++/*461414*/ OPC_CheckType, MVT::v8i16, ++/*461416*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*461418*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*461426*/ /*Scope*/ 105, /*->461532*/ ++/*461427*/ OPC_CheckChild0Same, 1, ++/*461429*/ OPC_MoveChild1, ++/*461430*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*461433*/ OPC_CheckChild0Integer, 1, ++/*461435*/ OPC_CheckChild0Type, MVT::i32, ++/*461437*/ OPC_CheckChild1Integer, 1, ++/*461439*/ OPC_CheckChild1Type, MVT::i32, ++/*461441*/ OPC_CheckChild2Integer, 1, ++/*461443*/ OPC_CheckChild2Type, MVT::i32, ++/*461445*/ OPC_CheckChild3Integer, 1, ++/*461447*/ OPC_CheckChild3Type, MVT::i32, ++/*461449*/ OPC_CheckChild4Integer, 1, ++/*461451*/ OPC_CheckChild4Type, MVT::i32, ++/*461453*/ OPC_MoveChild5, ++/*461454*/ OPC_CheckInteger, 1, ++/*461456*/ OPC_CheckType, MVT::i32, ++/*461458*/ OPC_MoveParent, ++/*461459*/ OPC_MoveChild6, ++/*461460*/ OPC_CheckInteger, 1, ++/*461462*/ OPC_CheckType, MVT::i32, ++/*461464*/ OPC_MoveParent, ++/*461465*/ OPC_MoveChild7, ++/*461466*/ OPC_CheckInteger, 1, ++/*461468*/ OPC_CheckType, MVT::i32, ++/*461470*/ OPC_MoveParent, ++/*461471*/ OPC_MoveParent, ++/*461472*/ OPC_MoveParent, ++/*461473*/ OPC_MoveParent, ++/*461474*/ OPC_MoveParent, ++/*461475*/ OPC_MoveChild1, ++/*461476*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*461479*/ OPC_CheckChild0Integer, 1, ++/*461481*/ OPC_CheckChild0Type, MVT::i32, ++/*461483*/ OPC_CheckChild1Integer, 1, ++/*461485*/ OPC_CheckChild1Type, MVT::i32, ++/*461487*/ OPC_CheckChild2Integer, 1, ++/*461489*/ OPC_CheckChild2Type, MVT::i32, ++/*461491*/ OPC_CheckChild3Integer, 1, ++/*461493*/ OPC_CheckChild3Type, MVT::i32, ++/*461495*/ OPC_CheckChild4Integer, 1, ++/*461497*/ OPC_CheckChild4Type, MVT::i32, ++/*461499*/ OPC_MoveChild5, ++/*461500*/ OPC_CheckInteger, 1, ++/*461502*/ OPC_CheckType, MVT::i32, ++/*461504*/ OPC_MoveParent, ++/*461505*/ OPC_MoveChild6, ++/*461506*/ OPC_CheckInteger, 1, ++/*461508*/ OPC_CheckType, MVT::i32, ++/*461510*/ OPC_MoveParent, ++/*461511*/ OPC_MoveChild7, ++/*461512*/ OPC_CheckInteger, 1, ++/*461514*/ OPC_CheckType, MVT::i32, ++/*461516*/ OPC_MoveParent, ++/*461517*/ OPC_CheckType, MVT::v8i16, ++/*461519*/ OPC_MoveParent, ++/*461520*/ OPC_CheckType, MVT::v8i16, ++/*461522*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*461524*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*461532*/ 0, /*End of Scope*/ ++/*461533*/ /*Scope*/ 51|128,1/*179*/, /*->461714*/ ++/*461535*/ OPC_MoveChild0, ++/*461536*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*461539*/ OPC_CheckChild0Integer, 1, ++/*461541*/ OPC_CheckChild0Type, MVT::i32, ++/*461543*/ OPC_CheckChild1Integer, 1, ++/*461545*/ OPC_CheckChild1Type, MVT::i32, ++/*461547*/ OPC_CheckChild2Integer, 1, ++/*461549*/ OPC_CheckChild2Type, MVT::i32, ++/*461551*/ OPC_CheckChild3Integer, 1, ++/*461553*/ OPC_CheckChild3Type, MVT::i32, ++/*461555*/ OPC_CheckChild4Integer, 1, ++/*461557*/ OPC_CheckChild4Type, MVT::i32, ++/*461559*/ OPC_MoveChild5, ++/*461560*/ OPC_CheckInteger, 1, ++/*461562*/ OPC_CheckType, MVT::i32, ++/*461564*/ OPC_MoveParent, ++/*461565*/ OPC_MoveChild6, ++/*461566*/ OPC_CheckInteger, 1, ++/*461568*/ OPC_CheckType, MVT::i32, ++/*461570*/ OPC_MoveParent, ++/*461571*/ OPC_MoveChild7, ++/*461572*/ OPC_CheckInteger, 1, ++/*461574*/ OPC_CheckType, MVT::i32, ++/*461576*/ OPC_MoveParent, ++/*461577*/ OPC_MoveParent, ++/*461578*/ OPC_MoveChild1, ++/*461579*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*461582*/ OPC_Scope, 64, /*->461648*/ // 2 children in Scope ++/*461584*/ OPC_CheckChild0Same, 0, ++/*461586*/ OPC_CheckChild1Same, 1, ++/*461588*/ OPC_MoveParent, ++/*461589*/ OPC_MoveParent, ++/*461590*/ OPC_MoveParent, ++/*461591*/ OPC_MoveChild1, ++/*461592*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*461595*/ OPC_CheckChild0Integer, 1, ++/*461597*/ OPC_CheckChild0Type, MVT::i32, ++/*461599*/ OPC_CheckChild1Integer, 1, ++/*461601*/ OPC_CheckChild1Type, MVT::i32, ++/*461603*/ OPC_CheckChild2Integer, 1, ++/*461605*/ OPC_CheckChild2Type, MVT::i32, ++/*461607*/ OPC_CheckChild3Integer, 1, ++/*461609*/ OPC_CheckChild3Type, MVT::i32, ++/*461611*/ OPC_CheckChild4Integer, 1, ++/*461613*/ OPC_CheckChild4Type, MVT::i32, ++/*461615*/ OPC_MoveChild5, ++/*461616*/ OPC_CheckInteger, 1, ++/*461618*/ OPC_CheckType, MVT::i32, ++/*461620*/ OPC_MoveParent, ++/*461621*/ OPC_MoveChild6, ++/*461622*/ OPC_CheckInteger, 1, ++/*461624*/ OPC_CheckType, MVT::i32, ++/*461626*/ OPC_MoveParent, ++/*461627*/ OPC_MoveChild7, ++/*461628*/ OPC_CheckInteger, 1, ++/*461630*/ OPC_CheckType, MVT::i32, ++/*461632*/ OPC_MoveParent, ++/*461633*/ OPC_CheckType, MVT::v8i16, ++/*461635*/ OPC_MoveParent, ++/*461636*/ OPC_CheckType, MVT::v8i16, ++/*461638*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*461640*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*461648*/ /*Scope*/ 64, /*->461713*/ ++/*461649*/ OPC_CheckChild0Same, 1, ++/*461651*/ OPC_CheckChild1Same, 0, ++/*461653*/ OPC_MoveParent, ++/*461654*/ OPC_MoveParent, ++/*461655*/ OPC_MoveParent, ++/*461656*/ OPC_MoveChild1, ++/*461657*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*461660*/ OPC_CheckChild0Integer, 1, ++/*461662*/ OPC_CheckChild0Type, MVT::i32, ++/*461664*/ OPC_CheckChild1Integer, 1, ++/*461666*/ OPC_CheckChild1Type, MVT::i32, ++/*461668*/ OPC_CheckChild2Integer, 1, ++/*461670*/ OPC_CheckChild2Type, MVT::i32, ++/*461672*/ OPC_CheckChild3Integer, 1, ++/*461674*/ OPC_CheckChild3Type, MVT::i32, ++/*461676*/ OPC_CheckChild4Integer, 1, ++/*461678*/ OPC_CheckChild4Type, MVT::i32, ++/*461680*/ OPC_MoveChild5, ++/*461681*/ OPC_CheckInteger, 1, ++/*461683*/ OPC_CheckType, MVT::i32, ++/*461685*/ OPC_MoveParent, ++/*461686*/ OPC_MoveChild6, ++/*461687*/ OPC_CheckInteger, 1, ++/*461689*/ OPC_CheckType, MVT::i32, ++/*461691*/ OPC_MoveParent, ++/*461692*/ OPC_MoveChild7, ++/*461693*/ OPC_CheckInteger, 1, ++/*461695*/ OPC_CheckType, MVT::i32, ++/*461697*/ OPC_MoveParent, ++/*461698*/ OPC_CheckType, MVT::v8i16, ++/*461700*/ OPC_MoveParent, ++/*461701*/ OPC_CheckType, MVT::v8i16, ++/*461703*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*461705*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*461713*/ 0, /*End of Scope*/ ++/*461714*/ 0, /*End of Scope*/ ++/*461715*/ /*Scope*/ 100|128,10/*1380*/, /*->463097*/ ++/*461717*/ OPC_MoveChild0, ++/*461718*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*461721*/ OPC_CheckChild0Integer, 1, ++/*461723*/ OPC_CheckChild0Type, MVT::i32, ++/*461725*/ OPC_CheckChild1Integer, 1, ++/*461727*/ OPC_CheckChild1Type, MVT::i32, ++/*461729*/ OPC_CheckChild2Integer, 1, ++/*461731*/ OPC_CheckChild2Type, MVT::i32, ++/*461733*/ OPC_CheckChild3Integer, 1, ++/*461735*/ OPC_CheckChild3Type, MVT::i32, ++/*461737*/ OPC_CheckChild4Integer, 1, ++/*461739*/ OPC_CheckChild4Type, MVT::i32, ++/*461741*/ OPC_MoveChild5, ++/*461742*/ OPC_CheckInteger, 1, ++/*461744*/ OPC_CheckType, MVT::i32, ++/*461746*/ OPC_MoveParent, ++/*461747*/ OPC_MoveChild6, ++/*461748*/ OPC_CheckInteger, 1, ++/*461750*/ OPC_CheckType, MVT::i32, ++/*461752*/ OPC_MoveParent, ++/*461753*/ OPC_MoveChild7, ++/*461754*/ OPC_CheckInteger, 1, ++/*461756*/ OPC_CheckType, MVT::i32, ++/*461758*/ OPC_MoveParent, ++/*461759*/ OPC_MoveParent, ++/*461760*/ OPC_RecordChild1, // #0 = $b ++/*461761*/ OPC_MoveParent, ++/*461762*/ OPC_RecordChild1, // #1 = $a ++/*461763*/ OPC_MoveParent, ++/*461764*/ OPC_MoveChild1, ++/*461765*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*461768*/ OPC_CheckChild0Integer, 15, ++/*461770*/ OPC_CheckChild0Type, MVT::i32, ++/*461772*/ OPC_CheckChild1Integer, 15, ++/*461774*/ OPC_CheckChild1Type, MVT::i32, ++/*461776*/ OPC_CheckChild2Integer, 15, ++/*461778*/ OPC_CheckChild2Type, MVT::i32, ++/*461780*/ OPC_CheckChild3Integer, 15, ++/*461782*/ OPC_CheckChild3Type, MVT::i32, ++/*461784*/ OPC_CheckChild4Integer, 15, ++/*461786*/ OPC_CheckChild4Type, MVT::i32, ++/*461788*/ OPC_MoveChild5, ++/*461789*/ OPC_CheckInteger, 15, ++/*461791*/ OPC_CheckType, MVT::i32, ++/*461793*/ OPC_MoveParent, ++/*461794*/ OPC_MoveChild6, ++/*461795*/ OPC_CheckInteger, 15, ++/*461797*/ OPC_CheckType, MVT::i32, ++/*461799*/ OPC_MoveParent, ++/*461800*/ OPC_MoveChild7, ++/*461801*/ OPC_CheckInteger, 15, ++/*461803*/ OPC_CheckType, MVT::i32, ++/*461805*/ OPC_MoveParent, ++/*461806*/ OPC_CheckType, MVT::v8i16, ++/*461808*/ OPC_MoveParent, ++/*461809*/ OPC_MoveParent, ++/*461810*/ OPC_MoveChild1, ++/*461811*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*461814*/ OPC_Scope, 14|128,5/*654*/, /*->462471*/ // 4 children in Scope ++/*461817*/ OPC_MoveChild0, ++/*461818*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*461821*/ OPC_Scope, 107, /*->461930*/ // 6 children in Scope ++/*461823*/ OPC_MoveChild0, ++/*461824*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*461827*/ OPC_CheckChild0Integer, 1, ++/*461829*/ OPC_CheckChild0Type, MVT::i32, ++/*461831*/ OPC_CheckChild1Integer, 1, ++/*461833*/ OPC_CheckChild1Type, MVT::i32, ++/*461835*/ OPC_CheckChild2Integer, 1, ++/*461837*/ OPC_CheckChild2Type, MVT::i32, ++/*461839*/ OPC_CheckChild3Integer, 1, ++/*461841*/ OPC_CheckChild3Type, MVT::i32, ++/*461843*/ OPC_CheckChild4Integer, 1, ++/*461845*/ OPC_CheckChild4Type, MVT::i32, ++/*461847*/ OPC_MoveChild5, ++/*461848*/ OPC_CheckInteger, 1, ++/*461850*/ OPC_CheckType, MVT::i32, ++/*461852*/ OPC_MoveParent, ++/*461853*/ OPC_MoveChild6, ++/*461854*/ OPC_CheckInteger, 1, ++/*461856*/ OPC_CheckType, MVT::i32, ++/*461858*/ OPC_MoveParent, ++/*461859*/ OPC_MoveChild7, ++/*461860*/ OPC_CheckInteger, 1, ++/*461862*/ OPC_CheckType, MVT::i32, ++/*461864*/ OPC_MoveParent, ++/*461865*/ OPC_MoveParent, ++/*461866*/ OPC_CheckChild1Same, 1, ++/*461868*/ OPC_MoveParent, ++/*461869*/ OPC_CheckChild1Same, 0, ++/*461871*/ OPC_MoveParent, ++/*461872*/ OPC_MoveParent, ++/*461873*/ OPC_MoveChild1, ++/*461874*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*461877*/ OPC_CheckChild0Integer, 1, ++/*461879*/ OPC_CheckChild0Type, MVT::i32, ++/*461881*/ OPC_CheckChild1Integer, 1, ++/*461883*/ OPC_CheckChild1Type, MVT::i32, ++/*461885*/ OPC_CheckChild2Integer, 1, ++/*461887*/ OPC_CheckChild2Type, MVT::i32, ++/*461889*/ OPC_CheckChild3Integer, 1, ++/*461891*/ OPC_CheckChild3Type, MVT::i32, ++/*461893*/ OPC_CheckChild4Integer, 1, ++/*461895*/ OPC_CheckChild4Type, MVT::i32, ++/*461897*/ OPC_MoveChild5, ++/*461898*/ OPC_CheckInteger, 1, ++/*461900*/ OPC_CheckType, MVT::i32, ++/*461902*/ OPC_MoveParent, ++/*461903*/ OPC_MoveChild6, ++/*461904*/ OPC_CheckInteger, 1, ++/*461906*/ OPC_CheckType, MVT::i32, ++/*461908*/ OPC_MoveParent, ++/*461909*/ OPC_MoveChild7, ++/*461910*/ OPC_CheckInteger, 1, ++/*461912*/ OPC_CheckType, MVT::i32, ++/*461914*/ OPC_MoveParent, ++/*461915*/ OPC_CheckType, MVT::v8i16, ++/*461917*/ OPC_MoveParent, ++/*461918*/ OPC_CheckType, MVT::v8i16, ++/*461920*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*461922*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b), LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a), LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*461930*/ /*Scope*/ 107, /*->462038*/ ++/*461931*/ OPC_CheckChild0Same, 1, ++/*461933*/ OPC_MoveChild1, ++/*461934*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*461937*/ OPC_CheckChild0Integer, 1, ++/*461939*/ OPC_CheckChild0Type, MVT::i32, ++/*461941*/ OPC_CheckChild1Integer, 1, ++/*461943*/ OPC_CheckChild1Type, MVT::i32, ++/*461945*/ OPC_CheckChild2Integer, 1, ++/*461947*/ OPC_CheckChild2Type, MVT::i32, ++/*461949*/ OPC_CheckChild3Integer, 1, ++/*461951*/ OPC_CheckChild3Type, MVT::i32, ++/*461953*/ OPC_CheckChild4Integer, 1, ++/*461955*/ OPC_CheckChild4Type, MVT::i32, ++/*461957*/ OPC_MoveChild5, ++/*461958*/ OPC_CheckInteger, 1, ++/*461960*/ OPC_CheckType, MVT::i32, ++/*461962*/ OPC_MoveParent, ++/*461963*/ OPC_MoveChild6, ++/*461964*/ OPC_CheckInteger, 1, ++/*461966*/ OPC_CheckType, MVT::i32, ++/*461968*/ OPC_MoveParent, ++/*461969*/ OPC_MoveChild7, ++/*461970*/ OPC_CheckInteger, 1, ++/*461972*/ OPC_CheckType, MVT::i32, ++/*461974*/ OPC_MoveParent, ++/*461975*/ OPC_MoveParent, ++/*461976*/ OPC_MoveParent, ++/*461977*/ OPC_CheckChild1Same, 0, ++/*461979*/ OPC_MoveParent, ++/*461980*/ OPC_MoveParent, ++/*461981*/ OPC_MoveChild1, ++/*461982*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*461985*/ OPC_CheckChild0Integer, 1, ++/*461987*/ OPC_CheckChild0Type, MVT::i32, ++/*461989*/ OPC_CheckChild1Integer, 1, ++/*461991*/ OPC_CheckChild1Type, MVT::i32, ++/*461993*/ OPC_CheckChild2Integer, 1, ++/*461995*/ OPC_CheckChild2Type, MVT::i32, ++/*461997*/ OPC_CheckChild3Integer, 1, ++/*461999*/ OPC_CheckChild3Type, MVT::i32, ++/*462001*/ OPC_CheckChild4Integer, 1, ++/*462003*/ OPC_CheckChild4Type, MVT::i32, ++/*462005*/ OPC_MoveChild5, ++/*462006*/ OPC_CheckInteger, 1, ++/*462008*/ OPC_CheckType, MVT::i32, ++/*462010*/ OPC_MoveParent, ++/*462011*/ OPC_MoveChild6, ++/*462012*/ OPC_CheckInteger, 1, ++/*462014*/ OPC_CheckType, MVT::i32, ++/*462016*/ OPC_MoveParent, ++/*462017*/ OPC_MoveChild7, ++/*462018*/ OPC_CheckInteger, 1, ++/*462020*/ OPC_CheckType, MVT::i32, ++/*462022*/ OPC_MoveParent, ++/*462023*/ OPC_CheckType, MVT::v8i16, ++/*462025*/ OPC_MoveParent, ++/*462026*/ OPC_CheckType, MVT::v8i16, ++/*462028*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*462030*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b), LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*462038*/ /*Scope*/ 107, /*->462146*/ ++/*462039*/ OPC_MoveChild0, ++/*462040*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*462043*/ OPC_CheckChild0Integer, 1, ++/*462045*/ OPC_CheckChild0Type, MVT::i32, ++/*462047*/ OPC_CheckChild1Integer, 1, ++/*462049*/ OPC_CheckChild1Type, MVT::i32, ++/*462051*/ OPC_CheckChild2Integer, 1, ++/*462053*/ OPC_CheckChild2Type, MVT::i32, ++/*462055*/ OPC_CheckChild3Integer, 1, ++/*462057*/ OPC_CheckChild3Type, MVT::i32, ++/*462059*/ OPC_CheckChild4Integer, 1, ++/*462061*/ OPC_CheckChild4Type, MVT::i32, ++/*462063*/ OPC_MoveChild5, ++/*462064*/ OPC_CheckInteger, 1, ++/*462066*/ OPC_CheckType, MVT::i32, ++/*462068*/ OPC_MoveParent, ++/*462069*/ OPC_MoveChild6, ++/*462070*/ OPC_CheckInteger, 1, ++/*462072*/ OPC_CheckType, MVT::i32, ++/*462074*/ OPC_MoveParent, ++/*462075*/ OPC_MoveChild7, ++/*462076*/ OPC_CheckInteger, 1, ++/*462078*/ OPC_CheckType, MVT::i32, ++/*462080*/ OPC_MoveParent, ++/*462081*/ OPC_MoveParent, ++/*462082*/ OPC_CheckChild1Same, 0, ++/*462084*/ OPC_MoveParent, ++/*462085*/ OPC_CheckChild1Same, 1, ++/*462087*/ OPC_MoveParent, ++/*462088*/ OPC_MoveParent, ++/*462089*/ OPC_MoveChild1, ++/*462090*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*462093*/ OPC_CheckChild0Integer, 1, ++/*462095*/ OPC_CheckChild0Type, MVT::i32, ++/*462097*/ OPC_CheckChild1Integer, 1, ++/*462099*/ OPC_CheckChild1Type, MVT::i32, ++/*462101*/ OPC_CheckChild2Integer, 1, ++/*462103*/ OPC_CheckChild2Type, MVT::i32, ++/*462105*/ OPC_CheckChild3Integer, 1, ++/*462107*/ OPC_CheckChild3Type, MVT::i32, ++/*462109*/ OPC_CheckChild4Integer, 1, ++/*462111*/ OPC_CheckChild4Type, MVT::i32, ++/*462113*/ OPC_MoveChild5, ++/*462114*/ OPC_CheckInteger, 1, ++/*462116*/ OPC_CheckType, MVT::i32, ++/*462118*/ OPC_MoveParent, ++/*462119*/ OPC_MoveChild6, ++/*462120*/ OPC_CheckInteger, 1, ++/*462122*/ OPC_CheckType, MVT::i32, ++/*462124*/ OPC_MoveParent, ++/*462125*/ OPC_MoveChild7, ++/*462126*/ OPC_CheckInteger, 1, ++/*462128*/ OPC_CheckType, MVT::i32, ++/*462130*/ OPC_MoveParent, ++/*462131*/ OPC_CheckType, MVT::v8i16, ++/*462133*/ OPC_MoveParent, ++/*462134*/ OPC_CheckType, MVT::v8i16, ++/*462136*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*462138*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b), LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b), LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*462146*/ /*Scope*/ 107, /*->462254*/ ++/*462147*/ OPC_CheckChild0Same, 0, ++/*462149*/ OPC_MoveChild1, ++/*462150*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*462153*/ OPC_CheckChild0Integer, 1, ++/*462155*/ OPC_CheckChild0Type, MVT::i32, ++/*462157*/ OPC_CheckChild1Integer, 1, ++/*462159*/ OPC_CheckChild1Type, MVT::i32, ++/*462161*/ OPC_CheckChild2Integer, 1, ++/*462163*/ OPC_CheckChild2Type, MVT::i32, ++/*462165*/ OPC_CheckChild3Integer, 1, ++/*462167*/ OPC_CheckChild3Type, MVT::i32, ++/*462169*/ OPC_CheckChild4Integer, 1, ++/*462171*/ OPC_CheckChild4Type, MVT::i32, ++/*462173*/ OPC_MoveChild5, ++/*462174*/ OPC_CheckInteger, 1, ++/*462176*/ OPC_CheckType, MVT::i32, ++/*462178*/ OPC_MoveParent, ++/*462179*/ OPC_MoveChild6, ++/*462180*/ OPC_CheckInteger, 1, ++/*462182*/ OPC_CheckType, MVT::i32, ++/*462184*/ OPC_MoveParent, ++/*462185*/ OPC_MoveChild7, ++/*462186*/ OPC_CheckInteger, 1, ++/*462188*/ OPC_CheckType, MVT::i32, ++/*462190*/ OPC_MoveParent, ++/*462191*/ OPC_MoveParent, ++/*462192*/ OPC_MoveParent, ++/*462193*/ OPC_CheckChild1Same, 1, ++/*462195*/ OPC_MoveParent, ++/*462196*/ OPC_MoveParent, ++/*462197*/ OPC_MoveChild1, ++/*462198*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*462201*/ OPC_CheckChild0Integer, 1, ++/*462203*/ OPC_CheckChild0Type, MVT::i32, ++/*462205*/ OPC_CheckChild1Integer, 1, ++/*462207*/ OPC_CheckChild1Type, MVT::i32, ++/*462209*/ OPC_CheckChild2Integer, 1, ++/*462211*/ OPC_CheckChild2Type, MVT::i32, ++/*462213*/ OPC_CheckChild3Integer, 1, ++/*462215*/ OPC_CheckChild3Type, MVT::i32, ++/*462217*/ OPC_CheckChild4Integer, 1, ++/*462219*/ OPC_CheckChild4Type, MVT::i32, ++/*462221*/ OPC_MoveChild5, ++/*462222*/ OPC_CheckInteger, 1, ++/*462224*/ OPC_CheckType, MVT::i32, ++/*462226*/ OPC_MoveParent, ++/*462227*/ OPC_MoveChild6, ++/*462228*/ OPC_CheckInteger, 1, ++/*462230*/ OPC_CheckType, MVT::i32, ++/*462232*/ OPC_MoveParent, ++/*462233*/ OPC_MoveChild7, ++/*462234*/ OPC_CheckInteger, 1, ++/*462236*/ OPC_CheckType, MVT::i32, ++/*462238*/ OPC_MoveParent, ++/*462239*/ OPC_CheckType, MVT::v8i16, ++/*462241*/ OPC_MoveParent, ++/*462242*/ OPC_CheckType, MVT::v8i16, ++/*462244*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*462246*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b), LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*462254*/ /*Scope*/ 107, /*->462362*/ ++/*462255*/ OPC_CheckChild0Same, 1, ++/*462257*/ OPC_CheckChild1Same, 0, ++/*462259*/ OPC_MoveParent, ++/*462260*/ OPC_MoveChild1, ++/*462261*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*462264*/ OPC_CheckChild0Integer, 1, ++/*462266*/ OPC_CheckChild0Type, MVT::i32, ++/*462268*/ OPC_CheckChild1Integer, 1, ++/*462270*/ OPC_CheckChild1Type, MVT::i32, ++/*462272*/ OPC_CheckChild2Integer, 1, ++/*462274*/ OPC_CheckChild2Type, MVT::i32, ++/*462276*/ OPC_CheckChild3Integer, 1, ++/*462278*/ OPC_CheckChild3Type, MVT::i32, ++/*462280*/ OPC_CheckChild4Integer, 1, ++/*462282*/ OPC_CheckChild4Type, MVT::i32, ++/*462284*/ OPC_MoveChild5, ++/*462285*/ OPC_CheckInteger, 1, ++/*462287*/ OPC_CheckType, MVT::i32, ++/*462289*/ OPC_MoveParent, ++/*462290*/ OPC_MoveChild6, ++/*462291*/ OPC_CheckInteger, 1, ++/*462293*/ OPC_CheckType, MVT::i32, ++/*462295*/ OPC_MoveParent, ++/*462296*/ OPC_MoveChild7, ++/*462297*/ OPC_CheckInteger, 1, ++/*462299*/ OPC_CheckType, MVT::i32, ++/*462301*/ OPC_MoveParent, ++/*462302*/ OPC_MoveParent, ++/*462303*/ OPC_MoveParent, ++/*462304*/ OPC_MoveParent, ++/*462305*/ OPC_MoveChild1, ++/*462306*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*462309*/ OPC_CheckChild0Integer, 1, ++/*462311*/ OPC_CheckChild0Type, MVT::i32, ++/*462313*/ OPC_CheckChild1Integer, 1, ++/*462315*/ OPC_CheckChild1Type, MVT::i32, ++/*462317*/ OPC_CheckChild2Integer, 1, ++/*462319*/ OPC_CheckChild2Type, MVT::i32, ++/*462321*/ OPC_CheckChild3Integer, 1, ++/*462323*/ OPC_CheckChild3Type, MVT::i32, ++/*462325*/ OPC_CheckChild4Integer, 1, ++/*462327*/ OPC_CheckChild4Type, MVT::i32, ++/*462329*/ OPC_MoveChild5, ++/*462330*/ OPC_CheckInteger, 1, ++/*462332*/ OPC_CheckType, MVT::i32, ++/*462334*/ OPC_MoveParent, ++/*462335*/ OPC_MoveChild6, ++/*462336*/ OPC_CheckInteger, 1, ++/*462338*/ OPC_CheckType, MVT::i32, ++/*462340*/ OPC_MoveParent, ++/*462341*/ OPC_MoveChild7, ++/*462342*/ OPC_CheckInteger, 1, ++/*462344*/ OPC_CheckType, MVT::i32, ++/*462346*/ OPC_MoveParent, ++/*462347*/ OPC_CheckType, MVT::v8i16, ++/*462349*/ OPC_MoveParent, ++/*462350*/ OPC_CheckType, MVT::v8i16, ++/*462352*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*462354*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b), LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*462362*/ /*Scope*/ 107, /*->462470*/ ++/*462363*/ OPC_CheckChild0Same, 0, ++/*462365*/ OPC_CheckChild1Same, 1, ++/*462367*/ OPC_MoveParent, ++/*462368*/ OPC_MoveChild1, ++/*462369*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*462372*/ OPC_CheckChild0Integer, 1, ++/*462374*/ OPC_CheckChild0Type, MVT::i32, ++/*462376*/ OPC_CheckChild1Integer, 1, ++/*462378*/ OPC_CheckChild1Type, MVT::i32, ++/*462380*/ OPC_CheckChild2Integer, 1, ++/*462382*/ OPC_CheckChild2Type, MVT::i32, ++/*462384*/ OPC_CheckChild3Integer, 1, ++/*462386*/ OPC_CheckChild3Type, MVT::i32, ++/*462388*/ OPC_CheckChild4Integer, 1, ++/*462390*/ OPC_CheckChild4Type, MVT::i32, ++/*462392*/ OPC_MoveChild5, ++/*462393*/ OPC_CheckInteger, 1, ++/*462395*/ OPC_CheckType, MVT::i32, ++/*462397*/ OPC_MoveParent, ++/*462398*/ OPC_MoveChild6, ++/*462399*/ OPC_CheckInteger, 1, ++/*462401*/ OPC_CheckType, MVT::i32, ++/*462403*/ OPC_MoveParent, ++/*462404*/ OPC_MoveChild7, ++/*462405*/ OPC_CheckInteger, 1, ++/*462407*/ OPC_CheckType, MVT::i32, ++/*462409*/ OPC_MoveParent, ++/*462410*/ OPC_MoveParent, ++/*462411*/ OPC_MoveParent, ++/*462412*/ OPC_MoveParent, ++/*462413*/ OPC_MoveChild1, ++/*462414*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*462417*/ OPC_CheckChild0Integer, 1, ++/*462419*/ OPC_CheckChild0Type, MVT::i32, ++/*462421*/ OPC_CheckChild1Integer, 1, ++/*462423*/ OPC_CheckChild1Type, MVT::i32, ++/*462425*/ OPC_CheckChild2Integer, 1, ++/*462427*/ OPC_CheckChild2Type, MVT::i32, ++/*462429*/ OPC_CheckChild3Integer, 1, ++/*462431*/ OPC_CheckChild3Type, MVT::i32, ++/*462433*/ OPC_CheckChild4Integer, 1, ++/*462435*/ OPC_CheckChild4Type, MVT::i32, ++/*462437*/ OPC_MoveChild5, ++/*462438*/ OPC_CheckInteger, 1, ++/*462440*/ OPC_CheckType, MVT::i32, ++/*462442*/ OPC_MoveParent, ++/*462443*/ OPC_MoveChild6, ++/*462444*/ OPC_CheckInteger, 1, ++/*462446*/ OPC_CheckType, MVT::i32, ++/*462448*/ OPC_MoveParent, ++/*462449*/ OPC_MoveChild7, ++/*462450*/ OPC_CheckInteger, 1, ++/*462452*/ OPC_CheckType, MVT::i32, ++/*462454*/ OPC_MoveParent, ++/*462455*/ OPC_CheckType, MVT::v8i16, ++/*462457*/ OPC_MoveParent, ++/*462458*/ OPC_CheckType, MVT::v8i16, ++/*462460*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*462462*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b), LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*462470*/ 0, /*End of Scope*/ ++/*462471*/ /*Scope*/ 92|128,1/*220*/, /*->462693*/ ++/*462473*/ OPC_CheckChild0Same, 0, ++/*462475*/ OPC_MoveChild1, ++/*462476*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*462479*/ OPC_Scope, 105, /*->462586*/ // 2 children in Scope ++/*462481*/ OPC_MoveChild0, ++/*462482*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*462485*/ OPC_CheckChild0Integer, 1, ++/*462487*/ OPC_CheckChild0Type, MVT::i32, ++/*462489*/ OPC_CheckChild1Integer, 1, ++/*462491*/ OPC_CheckChild1Type, MVT::i32, ++/*462493*/ OPC_CheckChild2Integer, 1, ++/*462495*/ OPC_CheckChild2Type, MVT::i32, ++/*462497*/ OPC_CheckChild3Integer, 1, ++/*462499*/ OPC_CheckChild3Type, MVT::i32, ++/*462501*/ OPC_CheckChild4Integer, 1, ++/*462503*/ OPC_CheckChild4Type, MVT::i32, ++/*462505*/ OPC_MoveChild5, ++/*462506*/ OPC_CheckInteger, 1, ++/*462508*/ OPC_CheckType, MVT::i32, ++/*462510*/ OPC_MoveParent, ++/*462511*/ OPC_MoveChild6, ++/*462512*/ OPC_CheckInteger, 1, ++/*462514*/ OPC_CheckType, MVT::i32, ++/*462516*/ OPC_MoveParent, ++/*462517*/ OPC_MoveChild7, ++/*462518*/ OPC_CheckInteger, 1, ++/*462520*/ OPC_CheckType, MVT::i32, ++/*462522*/ OPC_MoveParent, ++/*462523*/ OPC_MoveParent, ++/*462524*/ OPC_CheckChild1Same, 1, ++/*462526*/ OPC_MoveParent, ++/*462527*/ OPC_MoveParent, ++/*462528*/ OPC_MoveParent, ++/*462529*/ OPC_MoveChild1, ++/*462530*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*462533*/ OPC_CheckChild0Integer, 1, ++/*462535*/ OPC_CheckChild0Type, MVT::i32, ++/*462537*/ OPC_CheckChild1Integer, 1, ++/*462539*/ OPC_CheckChild1Type, MVT::i32, ++/*462541*/ OPC_CheckChild2Integer, 1, ++/*462543*/ OPC_CheckChild2Type, MVT::i32, ++/*462545*/ OPC_CheckChild3Integer, 1, ++/*462547*/ OPC_CheckChild3Type, MVT::i32, ++/*462549*/ OPC_CheckChild4Integer, 1, ++/*462551*/ OPC_CheckChild4Type, MVT::i32, ++/*462553*/ OPC_MoveChild5, ++/*462554*/ OPC_CheckInteger, 1, ++/*462556*/ OPC_CheckType, MVT::i32, ++/*462558*/ OPC_MoveParent, ++/*462559*/ OPC_MoveChild6, ++/*462560*/ OPC_CheckInteger, 1, ++/*462562*/ OPC_CheckType, MVT::i32, ++/*462564*/ OPC_MoveParent, ++/*462565*/ OPC_MoveChild7, ++/*462566*/ OPC_CheckInteger, 1, ++/*462568*/ OPC_CheckType, MVT::i32, ++/*462570*/ OPC_MoveParent, ++/*462571*/ OPC_CheckType, MVT::v8i16, ++/*462573*/ OPC_MoveParent, ++/*462574*/ OPC_CheckType, MVT::v8i16, ++/*462576*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*462578*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b), LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*462586*/ /*Scope*/ 105, /*->462692*/ ++/*462587*/ OPC_CheckChild0Same, 1, ++/*462589*/ OPC_MoveChild1, ++/*462590*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*462593*/ OPC_CheckChild0Integer, 1, ++/*462595*/ OPC_CheckChild0Type, MVT::i32, ++/*462597*/ OPC_CheckChild1Integer, 1, ++/*462599*/ OPC_CheckChild1Type, MVT::i32, ++/*462601*/ OPC_CheckChild2Integer, 1, ++/*462603*/ OPC_CheckChild2Type, MVT::i32, ++/*462605*/ OPC_CheckChild3Integer, 1, ++/*462607*/ OPC_CheckChild3Type, MVT::i32, ++/*462609*/ OPC_CheckChild4Integer, 1, ++/*462611*/ OPC_CheckChild4Type, MVT::i32, ++/*462613*/ OPC_MoveChild5, ++/*462614*/ OPC_CheckInteger, 1, ++/*462616*/ OPC_CheckType, MVT::i32, ++/*462618*/ OPC_MoveParent, ++/*462619*/ OPC_MoveChild6, ++/*462620*/ OPC_CheckInteger, 1, ++/*462622*/ OPC_CheckType, MVT::i32, ++/*462624*/ OPC_MoveParent, ++/*462625*/ OPC_MoveChild7, ++/*462626*/ OPC_CheckInteger, 1, ++/*462628*/ OPC_CheckType, MVT::i32, ++/*462630*/ OPC_MoveParent, ++/*462631*/ OPC_MoveParent, ++/*462632*/ OPC_MoveParent, ++/*462633*/ OPC_MoveParent, ++/*462634*/ OPC_MoveParent, ++/*462635*/ OPC_MoveChild1, ++/*462636*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*462639*/ OPC_CheckChild0Integer, 1, ++/*462641*/ OPC_CheckChild0Type, MVT::i32, ++/*462643*/ OPC_CheckChild1Integer, 1, ++/*462645*/ OPC_CheckChild1Type, MVT::i32, ++/*462647*/ OPC_CheckChild2Integer, 1, ++/*462649*/ OPC_CheckChild2Type, MVT::i32, ++/*462651*/ OPC_CheckChild3Integer, 1, ++/*462653*/ OPC_CheckChild3Type, MVT::i32, ++/*462655*/ OPC_CheckChild4Integer, 1, ++/*462657*/ OPC_CheckChild4Type, MVT::i32, ++/*462659*/ OPC_MoveChild5, ++/*462660*/ OPC_CheckInteger, 1, ++/*462662*/ OPC_CheckType, MVT::i32, ++/*462664*/ OPC_MoveParent, ++/*462665*/ OPC_MoveChild6, ++/*462666*/ OPC_CheckInteger, 1, ++/*462668*/ OPC_CheckType, MVT::i32, ++/*462670*/ OPC_MoveParent, ++/*462671*/ OPC_MoveChild7, ++/*462672*/ OPC_CheckInteger, 1, ++/*462674*/ OPC_CheckType, MVT::i32, ++/*462676*/ OPC_MoveParent, ++/*462677*/ OPC_CheckType, MVT::v8i16, ++/*462679*/ OPC_MoveParent, ++/*462680*/ OPC_CheckType, MVT::v8i16, ++/*462682*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*462684*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b), LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*462692*/ 0, /*End of Scope*/ ++/*462693*/ /*Scope*/ 92|128,1/*220*/, /*->462915*/ ++/*462695*/ OPC_CheckChild0Same, 1, ++/*462697*/ OPC_MoveChild1, ++/*462698*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*462701*/ OPC_Scope, 105, /*->462808*/ // 2 children in Scope ++/*462703*/ OPC_MoveChild0, ++/*462704*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*462707*/ OPC_CheckChild0Integer, 1, ++/*462709*/ OPC_CheckChild0Type, MVT::i32, ++/*462711*/ OPC_CheckChild1Integer, 1, ++/*462713*/ OPC_CheckChild1Type, MVT::i32, ++/*462715*/ OPC_CheckChild2Integer, 1, ++/*462717*/ OPC_CheckChild2Type, MVT::i32, ++/*462719*/ OPC_CheckChild3Integer, 1, ++/*462721*/ OPC_CheckChild3Type, MVT::i32, ++/*462723*/ OPC_CheckChild4Integer, 1, ++/*462725*/ OPC_CheckChild4Type, MVT::i32, ++/*462727*/ OPC_MoveChild5, ++/*462728*/ OPC_CheckInteger, 1, ++/*462730*/ OPC_CheckType, MVT::i32, ++/*462732*/ OPC_MoveParent, ++/*462733*/ OPC_MoveChild6, ++/*462734*/ OPC_CheckInteger, 1, ++/*462736*/ OPC_CheckType, MVT::i32, ++/*462738*/ OPC_MoveParent, ++/*462739*/ OPC_MoveChild7, ++/*462740*/ OPC_CheckInteger, 1, ++/*462742*/ OPC_CheckType, MVT::i32, ++/*462744*/ OPC_MoveParent, ++/*462745*/ OPC_MoveParent, ++/*462746*/ OPC_CheckChild1Same, 0, ++/*462748*/ OPC_MoveParent, ++/*462749*/ OPC_MoveParent, ++/*462750*/ OPC_MoveParent, ++/*462751*/ OPC_MoveChild1, ++/*462752*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*462755*/ OPC_CheckChild0Integer, 1, ++/*462757*/ OPC_CheckChild0Type, MVT::i32, ++/*462759*/ OPC_CheckChild1Integer, 1, ++/*462761*/ OPC_CheckChild1Type, MVT::i32, ++/*462763*/ OPC_CheckChild2Integer, 1, ++/*462765*/ OPC_CheckChild2Type, MVT::i32, ++/*462767*/ OPC_CheckChild3Integer, 1, ++/*462769*/ OPC_CheckChild3Type, MVT::i32, ++/*462771*/ OPC_CheckChild4Integer, 1, ++/*462773*/ OPC_CheckChild4Type, MVT::i32, ++/*462775*/ OPC_MoveChild5, ++/*462776*/ OPC_CheckInteger, 1, ++/*462778*/ OPC_CheckType, MVT::i32, ++/*462780*/ OPC_MoveParent, ++/*462781*/ OPC_MoveChild6, ++/*462782*/ OPC_CheckInteger, 1, ++/*462784*/ OPC_CheckType, MVT::i32, ++/*462786*/ OPC_MoveParent, ++/*462787*/ OPC_MoveChild7, ++/*462788*/ OPC_CheckInteger, 1, ++/*462790*/ OPC_CheckType, MVT::i32, ++/*462792*/ OPC_MoveParent, ++/*462793*/ OPC_CheckType, MVT::v8i16, ++/*462795*/ OPC_MoveParent, ++/*462796*/ OPC_CheckType, MVT::v8i16, ++/*462798*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*462800*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b), LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*462808*/ /*Scope*/ 105, /*->462914*/ ++/*462809*/ OPC_CheckChild0Same, 0, ++/*462811*/ OPC_MoveChild1, ++/*462812*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*462815*/ OPC_CheckChild0Integer, 1, ++/*462817*/ OPC_CheckChild0Type, MVT::i32, ++/*462819*/ OPC_CheckChild1Integer, 1, ++/*462821*/ OPC_CheckChild1Type, MVT::i32, ++/*462823*/ OPC_CheckChild2Integer, 1, ++/*462825*/ OPC_CheckChild2Type, MVT::i32, ++/*462827*/ OPC_CheckChild3Integer, 1, ++/*462829*/ OPC_CheckChild3Type, MVT::i32, ++/*462831*/ OPC_CheckChild4Integer, 1, ++/*462833*/ OPC_CheckChild4Type, MVT::i32, ++/*462835*/ OPC_MoveChild5, ++/*462836*/ OPC_CheckInteger, 1, ++/*462838*/ OPC_CheckType, MVT::i32, ++/*462840*/ OPC_MoveParent, ++/*462841*/ OPC_MoveChild6, ++/*462842*/ OPC_CheckInteger, 1, ++/*462844*/ OPC_CheckType, MVT::i32, ++/*462846*/ OPC_MoveParent, ++/*462847*/ OPC_MoveChild7, ++/*462848*/ OPC_CheckInteger, 1, ++/*462850*/ OPC_CheckType, MVT::i32, ++/*462852*/ OPC_MoveParent, ++/*462853*/ OPC_MoveParent, ++/*462854*/ OPC_MoveParent, ++/*462855*/ OPC_MoveParent, ++/*462856*/ OPC_MoveParent, ++/*462857*/ OPC_MoveChild1, ++/*462858*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*462861*/ OPC_CheckChild0Integer, 1, ++/*462863*/ OPC_CheckChild0Type, MVT::i32, ++/*462865*/ OPC_CheckChild1Integer, 1, ++/*462867*/ OPC_CheckChild1Type, MVT::i32, ++/*462869*/ OPC_CheckChild2Integer, 1, ++/*462871*/ OPC_CheckChild2Type, MVT::i32, ++/*462873*/ OPC_CheckChild3Integer, 1, ++/*462875*/ OPC_CheckChild3Type, MVT::i32, ++/*462877*/ OPC_CheckChild4Integer, 1, ++/*462879*/ OPC_CheckChild4Type, MVT::i32, ++/*462881*/ OPC_MoveChild5, ++/*462882*/ OPC_CheckInteger, 1, ++/*462884*/ OPC_CheckType, MVT::i32, ++/*462886*/ OPC_MoveParent, ++/*462887*/ OPC_MoveChild6, ++/*462888*/ OPC_CheckInteger, 1, ++/*462890*/ OPC_CheckType, MVT::i32, ++/*462892*/ OPC_MoveParent, ++/*462893*/ OPC_MoveChild7, ++/*462894*/ OPC_CheckInteger, 1, ++/*462896*/ OPC_CheckType, MVT::i32, ++/*462898*/ OPC_MoveParent, ++/*462899*/ OPC_CheckType, MVT::v8i16, ++/*462901*/ OPC_MoveParent, ++/*462902*/ OPC_CheckType, MVT::v8i16, ++/*462904*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*462906*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b), LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*462914*/ 0, /*End of Scope*/ ++/*462915*/ /*Scope*/ 51|128,1/*179*/, /*->463096*/ ++/*462917*/ OPC_MoveChild0, ++/*462918*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*462921*/ OPC_CheckChild0Integer, 1, ++/*462923*/ OPC_CheckChild0Type, MVT::i32, ++/*462925*/ OPC_CheckChild1Integer, 1, ++/*462927*/ OPC_CheckChild1Type, MVT::i32, ++/*462929*/ OPC_CheckChild2Integer, 1, ++/*462931*/ OPC_CheckChild2Type, MVT::i32, ++/*462933*/ OPC_CheckChild3Integer, 1, ++/*462935*/ OPC_CheckChild3Type, MVT::i32, ++/*462937*/ OPC_CheckChild4Integer, 1, ++/*462939*/ OPC_CheckChild4Type, MVT::i32, ++/*462941*/ OPC_MoveChild5, ++/*462942*/ OPC_CheckInteger, 1, ++/*462944*/ OPC_CheckType, MVT::i32, ++/*462946*/ OPC_MoveParent, ++/*462947*/ OPC_MoveChild6, ++/*462948*/ OPC_CheckInteger, 1, ++/*462950*/ OPC_CheckType, MVT::i32, ++/*462952*/ OPC_MoveParent, ++/*462953*/ OPC_MoveChild7, ++/*462954*/ OPC_CheckInteger, 1, ++/*462956*/ OPC_CheckType, MVT::i32, ++/*462958*/ OPC_MoveParent, ++/*462959*/ OPC_MoveParent, ++/*462960*/ OPC_MoveChild1, ++/*462961*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*462964*/ OPC_Scope, 64, /*->463030*/ // 2 children in Scope ++/*462966*/ OPC_CheckChild0Same, 1, ++/*462968*/ OPC_CheckChild1Same, 0, ++/*462970*/ OPC_MoveParent, ++/*462971*/ OPC_MoveParent, ++/*462972*/ OPC_MoveParent, ++/*462973*/ OPC_MoveChild1, ++/*462974*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*462977*/ OPC_CheckChild0Integer, 1, ++/*462979*/ OPC_CheckChild0Type, MVT::i32, ++/*462981*/ OPC_CheckChild1Integer, 1, ++/*462983*/ OPC_CheckChild1Type, MVT::i32, ++/*462985*/ OPC_CheckChild2Integer, 1, ++/*462987*/ OPC_CheckChild2Type, MVT::i32, ++/*462989*/ OPC_CheckChild3Integer, 1, ++/*462991*/ OPC_CheckChild3Type, MVT::i32, ++/*462993*/ OPC_CheckChild4Integer, 1, ++/*462995*/ OPC_CheckChild4Type, MVT::i32, ++/*462997*/ OPC_MoveChild5, ++/*462998*/ OPC_CheckInteger, 1, ++/*463000*/ OPC_CheckType, MVT::i32, ++/*463002*/ OPC_MoveParent, ++/*463003*/ OPC_MoveChild6, ++/*463004*/ OPC_CheckInteger, 1, ++/*463006*/ OPC_CheckType, MVT::i32, ++/*463008*/ OPC_MoveParent, ++/*463009*/ OPC_MoveChild7, ++/*463010*/ OPC_CheckInteger, 1, ++/*463012*/ OPC_CheckType, MVT::i32, ++/*463014*/ OPC_MoveParent, ++/*463015*/ OPC_CheckType, MVT::v8i16, ++/*463017*/ OPC_MoveParent, ++/*463018*/ OPC_CheckType, MVT::v8i16, ++/*463020*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*463022*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b), LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*463030*/ /*Scope*/ 64, /*->463095*/ ++/*463031*/ OPC_CheckChild0Same, 0, ++/*463033*/ OPC_CheckChild1Same, 1, ++/*463035*/ OPC_MoveParent, ++/*463036*/ OPC_MoveParent, ++/*463037*/ OPC_MoveParent, ++/*463038*/ OPC_MoveChild1, ++/*463039*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*463042*/ OPC_CheckChild0Integer, 1, ++/*463044*/ OPC_CheckChild0Type, MVT::i32, ++/*463046*/ OPC_CheckChild1Integer, 1, ++/*463048*/ OPC_CheckChild1Type, MVT::i32, ++/*463050*/ OPC_CheckChild2Integer, 1, ++/*463052*/ OPC_CheckChild2Type, MVT::i32, ++/*463054*/ OPC_CheckChild3Integer, 1, ++/*463056*/ OPC_CheckChild3Type, MVT::i32, ++/*463058*/ OPC_CheckChild4Integer, 1, ++/*463060*/ OPC_CheckChild4Type, MVT::i32, ++/*463062*/ OPC_MoveChild5, ++/*463063*/ OPC_CheckInteger, 1, ++/*463065*/ OPC_CheckType, MVT::i32, ++/*463067*/ OPC_MoveParent, ++/*463068*/ OPC_MoveChild6, ++/*463069*/ OPC_CheckInteger, 1, ++/*463071*/ OPC_CheckType, MVT::i32, ++/*463073*/ OPC_MoveParent, ++/*463074*/ OPC_MoveChild7, ++/*463075*/ OPC_CheckInteger, 1, ++/*463077*/ OPC_CheckType, MVT::i32, ++/*463079*/ OPC_MoveParent, ++/*463080*/ OPC_CheckType, MVT::v8i16, ++/*463082*/ OPC_MoveParent, ++/*463083*/ OPC_CheckType, MVT::v8i16, ++/*463085*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*463087*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b), LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*463095*/ 0, /*End of Scope*/ ++/*463096*/ 0, /*End of Scope*/ ++/*463097*/ /*Scope*/ 79|128,31/*4047*/, /*->467146*/ ++/*463099*/ OPC_RecordChild0, // #0 = $b ++/*463100*/ OPC_Scope, 99|128,10/*1379*/, /*->464482*/ // 2 children in Scope ++/*463103*/ OPC_MoveChild1, ++/*463104*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*463107*/ OPC_CheckChild0Integer, 1, ++/*463109*/ OPC_CheckChild0Type, MVT::i32, ++/*463111*/ OPC_CheckChild1Integer, 1, ++/*463113*/ OPC_CheckChild1Type, MVT::i32, ++/*463115*/ OPC_CheckChild2Integer, 1, ++/*463117*/ OPC_CheckChild2Type, MVT::i32, ++/*463119*/ OPC_CheckChild3Integer, 1, ++/*463121*/ OPC_CheckChild3Type, MVT::i32, ++/*463123*/ OPC_CheckChild4Integer, 1, ++/*463125*/ OPC_CheckChild4Type, MVT::i32, ++/*463127*/ OPC_MoveChild5, ++/*463128*/ OPC_CheckInteger, 1, ++/*463130*/ OPC_CheckType, MVT::i32, ++/*463132*/ OPC_MoveParent, ++/*463133*/ OPC_MoveChild6, ++/*463134*/ OPC_CheckInteger, 1, ++/*463136*/ OPC_CheckType, MVT::i32, ++/*463138*/ OPC_MoveParent, ++/*463139*/ OPC_MoveChild7, ++/*463140*/ OPC_CheckInteger, 1, ++/*463142*/ OPC_CheckType, MVT::i32, ++/*463144*/ OPC_MoveParent, ++/*463145*/ OPC_MoveParent, ++/*463146*/ OPC_MoveParent, ++/*463147*/ OPC_RecordChild1, // #1 = $a ++/*463148*/ OPC_MoveParent, ++/*463149*/ OPC_MoveChild1, ++/*463150*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*463153*/ OPC_CheckChild0Integer, 15, ++/*463155*/ OPC_CheckChild0Type, MVT::i32, ++/*463157*/ OPC_CheckChild1Integer, 15, ++/*463159*/ OPC_CheckChild1Type, MVT::i32, ++/*463161*/ OPC_CheckChild2Integer, 15, ++/*463163*/ OPC_CheckChild2Type, MVT::i32, ++/*463165*/ OPC_CheckChild3Integer, 15, ++/*463167*/ OPC_CheckChild3Type, MVT::i32, ++/*463169*/ OPC_CheckChild4Integer, 15, ++/*463171*/ OPC_CheckChild4Type, MVT::i32, ++/*463173*/ OPC_MoveChild5, ++/*463174*/ OPC_CheckInteger, 15, ++/*463176*/ OPC_CheckType, MVT::i32, ++/*463178*/ OPC_MoveParent, ++/*463179*/ OPC_MoveChild6, ++/*463180*/ OPC_CheckInteger, 15, ++/*463182*/ OPC_CheckType, MVT::i32, ++/*463184*/ OPC_MoveParent, ++/*463185*/ OPC_MoveChild7, ++/*463186*/ OPC_CheckInteger, 15, ++/*463188*/ OPC_CheckType, MVT::i32, ++/*463190*/ OPC_MoveParent, ++/*463191*/ OPC_CheckType, MVT::v8i16, ++/*463193*/ OPC_MoveParent, ++/*463194*/ OPC_MoveParent, ++/*463195*/ OPC_MoveChild1, ++/*463196*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*463199*/ OPC_Scope, 14|128,5/*654*/, /*->463856*/ // 4 children in Scope ++/*463202*/ OPC_MoveChild0, ++/*463203*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*463206*/ OPC_Scope, 107, /*->463315*/ // 6 children in Scope ++/*463208*/ OPC_MoveChild0, ++/*463209*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*463212*/ OPC_CheckChild0Integer, 1, ++/*463214*/ OPC_CheckChild0Type, MVT::i32, ++/*463216*/ OPC_CheckChild1Integer, 1, ++/*463218*/ OPC_CheckChild1Type, MVT::i32, ++/*463220*/ OPC_CheckChild2Integer, 1, ++/*463222*/ OPC_CheckChild2Type, MVT::i32, ++/*463224*/ OPC_CheckChild3Integer, 1, ++/*463226*/ OPC_CheckChild3Type, MVT::i32, ++/*463228*/ OPC_CheckChild4Integer, 1, ++/*463230*/ OPC_CheckChild4Type, MVT::i32, ++/*463232*/ OPC_MoveChild5, ++/*463233*/ OPC_CheckInteger, 1, ++/*463235*/ OPC_CheckType, MVT::i32, ++/*463237*/ OPC_MoveParent, ++/*463238*/ OPC_MoveChild6, ++/*463239*/ OPC_CheckInteger, 1, ++/*463241*/ OPC_CheckType, MVT::i32, ++/*463243*/ OPC_MoveParent, ++/*463244*/ OPC_MoveChild7, ++/*463245*/ OPC_CheckInteger, 1, ++/*463247*/ OPC_CheckType, MVT::i32, ++/*463249*/ OPC_MoveParent, ++/*463250*/ OPC_MoveParent, ++/*463251*/ OPC_CheckChild1Same, 1, ++/*463253*/ OPC_MoveParent, ++/*463254*/ OPC_CheckChild1Same, 0, ++/*463256*/ OPC_MoveParent, ++/*463257*/ OPC_MoveParent, ++/*463258*/ OPC_MoveChild1, ++/*463259*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*463262*/ OPC_CheckChild0Integer, 1, ++/*463264*/ OPC_CheckChild0Type, MVT::i32, ++/*463266*/ OPC_CheckChild1Integer, 1, ++/*463268*/ OPC_CheckChild1Type, MVT::i32, ++/*463270*/ OPC_CheckChild2Integer, 1, ++/*463272*/ OPC_CheckChild2Type, MVT::i32, ++/*463274*/ OPC_CheckChild3Integer, 1, ++/*463276*/ OPC_CheckChild3Type, MVT::i32, ++/*463278*/ OPC_CheckChild4Integer, 1, ++/*463280*/ OPC_CheckChild4Type, MVT::i32, ++/*463282*/ OPC_MoveChild5, ++/*463283*/ OPC_CheckInteger, 1, ++/*463285*/ OPC_CheckType, MVT::i32, ++/*463287*/ OPC_MoveParent, ++/*463288*/ OPC_MoveChild6, ++/*463289*/ OPC_CheckInteger, 1, ++/*463291*/ OPC_CheckType, MVT::i32, ++/*463293*/ OPC_MoveParent, ++/*463294*/ OPC_MoveChild7, ++/*463295*/ OPC_CheckInteger, 1, ++/*463297*/ OPC_CheckType, MVT::i32, ++/*463299*/ OPC_MoveParent, ++/*463300*/ OPC_CheckType, MVT::v8i16, ++/*463302*/ OPC_MoveParent, ++/*463303*/ OPC_CheckType, MVT::v8i16, ++/*463305*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*463307*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a), LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*463315*/ /*Scope*/ 107, /*->463423*/ ++/*463316*/ OPC_CheckChild0Same, 1, ++/*463318*/ OPC_MoveChild1, ++/*463319*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*463322*/ OPC_CheckChild0Integer, 1, ++/*463324*/ OPC_CheckChild0Type, MVT::i32, ++/*463326*/ OPC_CheckChild1Integer, 1, ++/*463328*/ OPC_CheckChild1Type, MVT::i32, ++/*463330*/ OPC_CheckChild2Integer, 1, ++/*463332*/ OPC_CheckChild2Type, MVT::i32, ++/*463334*/ OPC_CheckChild3Integer, 1, ++/*463336*/ OPC_CheckChild3Type, MVT::i32, ++/*463338*/ OPC_CheckChild4Integer, 1, ++/*463340*/ OPC_CheckChild4Type, MVT::i32, ++/*463342*/ OPC_MoveChild5, ++/*463343*/ OPC_CheckInteger, 1, ++/*463345*/ OPC_CheckType, MVT::i32, ++/*463347*/ OPC_MoveParent, ++/*463348*/ OPC_MoveChild6, ++/*463349*/ OPC_CheckInteger, 1, ++/*463351*/ OPC_CheckType, MVT::i32, ++/*463353*/ OPC_MoveParent, ++/*463354*/ OPC_MoveChild7, ++/*463355*/ OPC_CheckInteger, 1, ++/*463357*/ OPC_CheckType, MVT::i32, ++/*463359*/ OPC_MoveParent, ++/*463360*/ OPC_MoveParent, ++/*463361*/ OPC_MoveParent, ++/*463362*/ OPC_CheckChild1Same, 0, ++/*463364*/ OPC_MoveParent, ++/*463365*/ OPC_MoveParent, ++/*463366*/ OPC_MoveChild1, ++/*463367*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*463370*/ OPC_CheckChild0Integer, 1, ++/*463372*/ OPC_CheckChild0Type, MVT::i32, ++/*463374*/ OPC_CheckChild1Integer, 1, ++/*463376*/ OPC_CheckChild1Type, MVT::i32, ++/*463378*/ OPC_CheckChild2Integer, 1, ++/*463380*/ OPC_CheckChild2Type, MVT::i32, ++/*463382*/ OPC_CheckChild3Integer, 1, ++/*463384*/ OPC_CheckChild3Type, MVT::i32, ++/*463386*/ OPC_CheckChild4Integer, 1, ++/*463388*/ OPC_CheckChild4Type, MVT::i32, ++/*463390*/ OPC_MoveChild5, ++/*463391*/ OPC_CheckInteger, 1, ++/*463393*/ OPC_CheckType, MVT::i32, ++/*463395*/ OPC_MoveParent, ++/*463396*/ OPC_MoveChild6, ++/*463397*/ OPC_CheckInteger, 1, ++/*463399*/ OPC_CheckType, MVT::i32, ++/*463401*/ OPC_MoveParent, ++/*463402*/ OPC_MoveChild7, ++/*463403*/ OPC_CheckInteger, 1, ++/*463405*/ OPC_CheckType, MVT::i32, ++/*463407*/ OPC_MoveParent, ++/*463408*/ OPC_CheckType, MVT::v8i16, ++/*463410*/ OPC_MoveParent, ++/*463411*/ OPC_CheckType, MVT::v8i16, ++/*463413*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*463415*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*463423*/ /*Scope*/ 107, /*->463531*/ ++/*463424*/ OPC_MoveChild0, ++/*463425*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*463428*/ OPC_CheckChild0Integer, 1, ++/*463430*/ OPC_CheckChild0Type, MVT::i32, ++/*463432*/ OPC_CheckChild1Integer, 1, ++/*463434*/ OPC_CheckChild1Type, MVT::i32, ++/*463436*/ OPC_CheckChild2Integer, 1, ++/*463438*/ OPC_CheckChild2Type, MVT::i32, ++/*463440*/ OPC_CheckChild3Integer, 1, ++/*463442*/ OPC_CheckChild3Type, MVT::i32, ++/*463444*/ OPC_CheckChild4Integer, 1, ++/*463446*/ OPC_CheckChild4Type, MVT::i32, ++/*463448*/ OPC_MoveChild5, ++/*463449*/ OPC_CheckInteger, 1, ++/*463451*/ OPC_CheckType, MVT::i32, ++/*463453*/ OPC_MoveParent, ++/*463454*/ OPC_MoveChild6, ++/*463455*/ OPC_CheckInteger, 1, ++/*463457*/ OPC_CheckType, MVT::i32, ++/*463459*/ OPC_MoveParent, ++/*463460*/ OPC_MoveChild7, ++/*463461*/ OPC_CheckInteger, 1, ++/*463463*/ OPC_CheckType, MVT::i32, ++/*463465*/ OPC_MoveParent, ++/*463466*/ OPC_MoveParent, ++/*463467*/ OPC_CheckChild1Same, 0, ++/*463469*/ OPC_MoveParent, ++/*463470*/ OPC_CheckChild1Same, 1, ++/*463472*/ OPC_MoveParent, ++/*463473*/ OPC_MoveParent, ++/*463474*/ OPC_MoveChild1, ++/*463475*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*463478*/ OPC_CheckChild0Integer, 1, ++/*463480*/ OPC_CheckChild0Type, MVT::i32, ++/*463482*/ OPC_CheckChild1Integer, 1, ++/*463484*/ OPC_CheckChild1Type, MVT::i32, ++/*463486*/ OPC_CheckChild2Integer, 1, ++/*463488*/ OPC_CheckChild2Type, MVT::i32, ++/*463490*/ OPC_CheckChild3Integer, 1, ++/*463492*/ OPC_CheckChild3Type, MVT::i32, ++/*463494*/ OPC_CheckChild4Integer, 1, ++/*463496*/ OPC_CheckChild4Type, MVT::i32, ++/*463498*/ OPC_MoveChild5, ++/*463499*/ OPC_CheckInteger, 1, ++/*463501*/ OPC_CheckType, MVT::i32, ++/*463503*/ OPC_MoveParent, ++/*463504*/ OPC_MoveChild6, ++/*463505*/ OPC_CheckInteger, 1, ++/*463507*/ OPC_CheckType, MVT::i32, ++/*463509*/ OPC_MoveParent, ++/*463510*/ OPC_MoveChild7, ++/*463511*/ OPC_CheckInteger, 1, ++/*463513*/ OPC_CheckType, MVT::i32, ++/*463515*/ OPC_MoveParent, ++/*463516*/ OPC_CheckType, MVT::v8i16, ++/*463518*/ OPC_MoveParent, ++/*463519*/ OPC_CheckType, MVT::v8i16, ++/*463521*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*463523*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b), LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*463531*/ /*Scope*/ 107, /*->463639*/ ++/*463532*/ OPC_CheckChild0Same, 0, ++/*463534*/ OPC_MoveChild1, ++/*463535*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*463538*/ OPC_CheckChild0Integer, 1, ++/*463540*/ OPC_CheckChild0Type, MVT::i32, ++/*463542*/ OPC_CheckChild1Integer, 1, ++/*463544*/ OPC_CheckChild1Type, MVT::i32, ++/*463546*/ OPC_CheckChild2Integer, 1, ++/*463548*/ OPC_CheckChild2Type, MVT::i32, ++/*463550*/ OPC_CheckChild3Integer, 1, ++/*463552*/ OPC_CheckChild3Type, MVT::i32, ++/*463554*/ OPC_CheckChild4Integer, 1, ++/*463556*/ OPC_CheckChild4Type, MVT::i32, ++/*463558*/ OPC_MoveChild5, ++/*463559*/ OPC_CheckInteger, 1, ++/*463561*/ OPC_CheckType, MVT::i32, ++/*463563*/ OPC_MoveParent, ++/*463564*/ OPC_MoveChild6, ++/*463565*/ OPC_CheckInteger, 1, ++/*463567*/ OPC_CheckType, MVT::i32, ++/*463569*/ OPC_MoveParent, ++/*463570*/ OPC_MoveChild7, ++/*463571*/ OPC_CheckInteger, 1, ++/*463573*/ OPC_CheckType, MVT::i32, ++/*463575*/ OPC_MoveParent, ++/*463576*/ OPC_MoveParent, ++/*463577*/ OPC_MoveParent, ++/*463578*/ OPC_CheckChild1Same, 1, ++/*463580*/ OPC_MoveParent, ++/*463581*/ OPC_MoveParent, ++/*463582*/ OPC_MoveChild1, ++/*463583*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*463586*/ OPC_CheckChild0Integer, 1, ++/*463588*/ OPC_CheckChild0Type, MVT::i32, ++/*463590*/ OPC_CheckChild1Integer, 1, ++/*463592*/ OPC_CheckChild1Type, MVT::i32, ++/*463594*/ OPC_CheckChild2Integer, 1, ++/*463596*/ OPC_CheckChild2Type, MVT::i32, ++/*463598*/ OPC_CheckChild3Integer, 1, ++/*463600*/ OPC_CheckChild3Type, MVT::i32, ++/*463602*/ OPC_CheckChild4Integer, 1, ++/*463604*/ OPC_CheckChild4Type, MVT::i32, ++/*463606*/ OPC_MoveChild5, ++/*463607*/ OPC_CheckInteger, 1, ++/*463609*/ OPC_CheckType, MVT::i32, ++/*463611*/ OPC_MoveParent, ++/*463612*/ OPC_MoveChild6, ++/*463613*/ OPC_CheckInteger, 1, ++/*463615*/ OPC_CheckType, MVT::i32, ++/*463617*/ OPC_MoveParent, ++/*463618*/ OPC_MoveChild7, ++/*463619*/ OPC_CheckInteger, 1, ++/*463621*/ OPC_CheckType, MVT::i32, ++/*463623*/ OPC_MoveParent, ++/*463624*/ OPC_CheckType, MVT::v8i16, ++/*463626*/ OPC_MoveParent, ++/*463627*/ OPC_CheckType, MVT::v8i16, ++/*463629*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*463631*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*463639*/ /*Scope*/ 107, /*->463747*/ ++/*463640*/ OPC_CheckChild0Same, 1, ++/*463642*/ OPC_CheckChild1Same, 0, ++/*463644*/ OPC_MoveParent, ++/*463645*/ OPC_MoveChild1, ++/*463646*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*463649*/ OPC_CheckChild0Integer, 1, ++/*463651*/ OPC_CheckChild0Type, MVT::i32, ++/*463653*/ OPC_CheckChild1Integer, 1, ++/*463655*/ OPC_CheckChild1Type, MVT::i32, ++/*463657*/ OPC_CheckChild2Integer, 1, ++/*463659*/ OPC_CheckChild2Type, MVT::i32, ++/*463661*/ OPC_CheckChild3Integer, 1, ++/*463663*/ OPC_CheckChild3Type, MVT::i32, ++/*463665*/ OPC_CheckChild4Integer, 1, ++/*463667*/ OPC_CheckChild4Type, MVT::i32, ++/*463669*/ OPC_MoveChild5, ++/*463670*/ OPC_CheckInteger, 1, ++/*463672*/ OPC_CheckType, MVT::i32, ++/*463674*/ OPC_MoveParent, ++/*463675*/ OPC_MoveChild6, ++/*463676*/ OPC_CheckInteger, 1, ++/*463678*/ OPC_CheckType, MVT::i32, ++/*463680*/ OPC_MoveParent, ++/*463681*/ OPC_MoveChild7, ++/*463682*/ OPC_CheckInteger, 1, ++/*463684*/ OPC_CheckType, MVT::i32, ++/*463686*/ OPC_MoveParent, ++/*463687*/ OPC_MoveParent, ++/*463688*/ OPC_MoveParent, ++/*463689*/ OPC_MoveParent, ++/*463690*/ OPC_MoveChild1, ++/*463691*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*463694*/ OPC_CheckChild0Integer, 1, ++/*463696*/ OPC_CheckChild0Type, MVT::i32, ++/*463698*/ OPC_CheckChild1Integer, 1, ++/*463700*/ OPC_CheckChild1Type, MVT::i32, ++/*463702*/ OPC_CheckChild2Integer, 1, ++/*463704*/ OPC_CheckChild2Type, MVT::i32, ++/*463706*/ OPC_CheckChild3Integer, 1, ++/*463708*/ OPC_CheckChild3Type, MVT::i32, ++/*463710*/ OPC_CheckChild4Integer, 1, ++/*463712*/ OPC_CheckChild4Type, MVT::i32, ++/*463714*/ OPC_MoveChild5, ++/*463715*/ OPC_CheckInteger, 1, ++/*463717*/ OPC_CheckType, MVT::i32, ++/*463719*/ OPC_MoveParent, ++/*463720*/ OPC_MoveChild6, ++/*463721*/ OPC_CheckInteger, 1, ++/*463723*/ OPC_CheckType, MVT::i32, ++/*463725*/ OPC_MoveParent, ++/*463726*/ OPC_MoveChild7, ++/*463727*/ OPC_CheckInteger, 1, ++/*463729*/ OPC_CheckType, MVT::i32, ++/*463731*/ OPC_MoveParent, ++/*463732*/ OPC_CheckType, MVT::v8i16, ++/*463734*/ OPC_MoveParent, ++/*463735*/ OPC_CheckType, MVT::v8i16, ++/*463737*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*463739*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*463747*/ /*Scope*/ 107, /*->463855*/ ++/*463748*/ OPC_CheckChild0Same, 0, ++/*463750*/ OPC_CheckChild1Same, 1, ++/*463752*/ OPC_MoveParent, ++/*463753*/ OPC_MoveChild1, ++/*463754*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*463757*/ OPC_CheckChild0Integer, 1, ++/*463759*/ OPC_CheckChild0Type, MVT::i32, ++/*463761*/ OPC_CheckChild1Integer, 1, ++/*463763*/ OPC_CheckChild1Type, MVT::i32, ++/*463765*/ OPC_CheckChild2Integer, 1, ++/*463767*/ OPC_CheckChild2Type, MVT::i32, ++/*463769*/ OPC_CheckChild3Integer, 1, ++/*463771*/ OPC_CheckChild3Type, MVT::i32, ++/*463773*/ OPC_CheckChild4Integer, 1, ++/*463775*/ OPC_CheckChild4Type, MVT::i32, ++/*463777*/ OPC_MoveChild5, ++/*463778*/ OPC_CheckInteger, 1, ++/*463780*/ OPC_CheckType, MVT::i32, ++/*463782*/ OPC_MoveParent, ++/*463783*/ OPC_MoveChild6, ++/*463784*/ OPC_CheckInteger, 1, ++/*463786*/ OPC_CheckType, MVT::i32, ++/*463788*/ OPC_MoveParent, ++/*463789*/ OPC_MoveChild7, ++/*463790*/ OPC_CheckInteger, 1, ++/*463792*/ OPC_CheckType, MVT::i32, ++/*463794*/ OPC_MoveParent, ++/*463795*/ OPC_MoveParent, ++/*463796*/ OPC_MoveParent, ++/*463797*/ OPC_MoveParent, ++/*463798*/ OPC_MoveChild1, ++/*463799*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*463802*/ OPC_CheckChild0Integer, 1, ++/*463804*/ OPC_CheckChild0Type, MVT::i32, ++/*463806*/ OPC_CheckChild1Integer, 1, ++/*463808*/ OPC_CheckChild1Type, MVT::i32, ++/*463810*/ OPC_CheckChild2Integer, 1, ++/*463812*/ OPC_CheckChild2Type, MVT::i32, ++/*463814*/ OPC_CheckChild3Integer, 1, ++/*463816*/ OPC_CheckChild3Type, MVT::i32, ++/*463818*/ OPC_CheckChild4Integer, 1, ++/*463820*/ OPC_CheckChild4Type, MVT::i32, ++/*463822*/ OPC_MoveChild5, ++/*463823*/ OPC_CheckInteger, 1, ++/*463825*/ OPC_CheckType, MVT::i32, ++/*463827*/ OPC_MoveParent, ++/*463828*/ OPC_MoveChild6, ++/*463829*/ OPC_CheckInteger, 1, ++/*463831*/ OPC_CheckType, MVT::i32, ++/*463833*/ OPC_MoveParent, ++/*463834*/ OPC_MoveChild7, ++/*463835*/ OPC_CheckInteger, 1, ++/*463837*/ OPC_CheckType, MVT::i32, ++/*463839*/ OPC_MoveParent, ++/*463840*/ OPC_CheckType, MVT::v8i16, ++/*463842*/ OPC_MoveParent, ++/*463843*/ OPC_CheckType, MVT::v8i16, ++/*463845*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*463847*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*463855*/ 0, /*End of Scope*/ ++/*463856*/ /*Scope*/ 92|128,1/*220*/, /*->464078*/ ++/*463858*/ OPC_CheckChild0Same, 0, ++/*463860*/ OPC_MoveChild1, ++/*463861*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*463864*/ OPC_Scope, 105, /*->463971*/ // 2 children in Scope ++/*463866*/ OPC_MoveChild0, ++/*463867*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*463870*/ OPC_CheckChild0Integer, 1, ++/*463872*/ OPC_CheckChild0Type, MVT::i32, ++/*463874*/ OPC_CheckChild1Integer, 1, ++/*463876*/ OPC_CheckChild1Type, MVT::i32, ++/*463878*/ OPC_CheckChild2Integer, 1, ++/*463880*/ OPC_CheckChild2Type, MVT::i32, ++/*463882*/ OPC_CheckChild3Integer, 1, ++/*463884*/ OPC_CheckChild3Type, MVT::i32, ++/*463886*/ OPC_CheckChild4Integer, 1, ++/*463888*/ OPC_CheckChild4Type, MVT::i32, ++/*463890*/ OPC_MoveChild5, ++/*463891*/ OPC_CheckInteger, 1, ++/*463893*/ OPC_CheckType, MVT::i32, ++/*463895*/ OPC_MoveParent, ++/*463896*/ OPC_MoveChild6, ++/*463897*/ OPC_CheckInteger, 1, ++/*463899*/ OPC_CheckType, MVT::i32, ++/*463901*/ OPC_MoveParent, ++/*463902*/ OPC_MoveChild7, ++/*463903*/ OPC_CheckInteger, 1, ++/*463905*/ OPC_CheckType, MVT::i32, ++/*463907*/ OPC_MoveParent, ++/*463908*/ OPC_MoveParent, ++/*463909*/ OPC_CheckChild1Same, 1, ++/*463911*/ OPC_MoveParent, ++/*463912*/ OPC_MoveParent, ++/*463913*/ OPC_MoveParent, ++/*463914*/ OPC_MoveChild1, ++/*463915*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*463918*/ OPC_CheckChild0Integer, 1, ++/*463920*/ OPC_CheckChild0Type, MVT::i32, ++/*463922*/ OPC_CheckChild1Integer, 1, ++/*463924*/ OPC_CheckChild1Type, MVT::i32, ++/*463926*/ OPC_CheckChild2Integer, 1, ++/*463928*/ OPC_CheckChild2Type, MVT::i32, ++/*463930*/ OPC_CheckChild3Integer, 1, ++/*463932*/ OPC_CheckChild3Type, MVT::i32, ++/*463934*/ OPC_CheckChild4Integer, 1, ++/*463936*/ OPC_CheckChild4Type, MVT::i32, ++/*463938*/ OPC_MoveChild5, ++/*463939*/ OPC_CheckInteger, 1, ++/*463941*/ OPC_CheckType, MVT::i32, ++/*463943*/ OPC_MoveParent, ++/*463944*/ OPC_MoveChild6, ++/*463945*/ OPC_CheckInteger, 1, ++/*463947*/ OPC_CheckType, MVT::i32, ++/*463949*/ OPC_MoveParent, ++/*463950*/ OPC_MoveChild7, ++/*463951*/ OPC_CheckInteger, 1, ++/*463953*/ OPC_CheckType, MVT::i32, ++/*463955*/ OPC_MoveParent, ++/*463956*/ OPC_CheckType, MVT::v8i16, ++/*463958*/ OPC_MoveParent, ++/*463959*/ OPC_CheckType, MVT::v8i16, ++/*463961*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*463963*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*463971*/ /*Scope*/ 105, /*->464077*/ ++/*463972*/ OPC_CheckChild0Same, 1, ++/*463974*/ OPC_MoveChild1, ++/*463975*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*463978*/ OPC_CheckChild0Integer, 1, ++/*463980*/ OPC_CheckChild0Type, MVT::i32, ++/*463982*/ OPC_CheckChild1Integer, 1, ++/*463984*/ OPC_CheckChild1Type, MVT::i32, ++/*463986*/ OPC_CheckChild2Integer, 1, ++/*463988*/ OPC_CheckChild2Type, MVT::i32, ++/*463990*/ OPC_CheckChild3Integer, 1, ++/*463992*/ OPC_CheckChild3Type, MVT::i32, ++/*463994*/ OPC_CheckChild4Integer, 1, ++/*463996*/ OPC_CheckChild4Type, MVT::i32, ++/*463998*/ OPC_MoveChild5, ++/*463999*/ OPC_CheckInteger, 1, ++/*464001*/ OPC_CheckType, MVT::i32, ++/*464003*/ OPC_MoveParent, ++/*464004*/ OPC_MoveChild6, ++/*464005*/ OPC_CheckInteger, 1, ++/*464007*/ OPC_CheckType, MVT::i32, ++/*464009*/ OPC_MoveParent, ++/*464010*/ OPC_MoveChild7, ++/*464011*/ OPC_CheckInteger, 1, ++/*464013*/ OPC_CheckType, MVT::i32, ++/*464015*/ OPC_MoveParent, ++/*464016*/ OPC_MoveParent, ++/*464017*/ OPC_MoveParent, ++/*464018*/ OPC_MoveParent, ++/*464019*/ OPC_MoveParent, ++/*464020*/ OPC_MoveChild1, ++/*464021*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*464024*/ OPC_CheckChild0Integer, 1, ++/*464026*/ OPC_CheckChild0Type, MVT::i32, ++/*464028*/ OPC_CheckChild1Integer, 1, ++/*464030*/ OPC_CheckChild1Type, MVT::i32, ++/*464032*/ OPC_CheckChild2Integer, 1, ++/*464034*/ OPC_CheckChild2Type, MVT::i32, ++/*464036*/ OPC_CheckChild3Integer, 1, ++/*464038*/ OPC_CheckChild3Type, MVT::i32, ++/*464040*/ OPC_CheckChild4Integer, 1, ++/*464042*/ OPC_CheckChild4Type, MVT::i32, ++/*464044*/ OPC_MoveChild5, ++/*464045*/ OPC_CheckInteger, 1, ++/*464047*/ OPC_CheckType, MVT::i32, ++/*464049*/ OPC_MoveParent, ++/*464050*/ OPC_MoveChild6, ++/*464051*/ OPC_CheckInteger, 1, ++/*464053*/ OPC_CheckType, MVT::i32, ++/*464055*/ OPC_MoveParent, ++/*464056*/ OPC_MoveChild7, ++/*464057*/ OPC_CheckInteger, 1, ++/*464059*/ OPC_CheckType, MVT::i32, ++/*464061*/ OPC_MoveParent, ++/*464062*/ OPC_CheckType, MVT::v8i16, ++/*464064*/ OPC_MoveParent, ++/*464065*/ OPC_CheckType, MVT::v8i16, ++/*464067*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*464069*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*464077*/ 0, /*End of Scope*/ ++/*464078*/ /*Scope*/ 92|128,1/*220*/, /*->464300*/ ++/*464080*/ OPC_CheckChild0Same, 1, ++/*464082*/ OPC_MoveChild1, ++/*464083*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*464086*/ OPC_Scope, 105, /*->464193*/ // 2 children in Scope ++/*464088*/ OPC_MoveChild0, ++/*464089*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*464092*/ OPC_CheckChild0Integer, 1, ++/*464094*/ OPC_CheckChild0Type, MVT::i32, ++/*464096*/ OPC_CheckChild1Integer, 1, ++/*464098*/ OPC_CheckChild1Type, MVT::i32, ++/*464100*/ OPC_CheckChild2Integer, 1, ++/*464102*/ OPC_CheckChild2Type, MVT::i32, ++/*464104*/ OPC_CheckChild3Integer, 1, ++/*464106*/ OPC_CheckChild3Type, MVT::i32, ++/*464108*/ OPC_CheckChild4Integer, 1, ++/*464110*/ OPC_CheckChild4Type, MVT::i32, ++/*464112*/ OPC_MoveChild5, ++/*464113*/ OPC_CheckInteger, 1, ++/*464115*/ OPC_CheckType, MVT::i32, ++/*464117*/ OPC_MoveParent, ++/*464118*/ OPC_MoveChild6, ++/*464119*/ OPC_CheckInteger, 1, ++/*464121*/ OPC_CheckType, MVT::i32, ++/*464123*/ OPC_MoveParent, ++/*464124*/ OPC_MoveChild7, ++/*464125*/ OPC_CheckInteger, 1, ++/*464127*/ OPC_CheckType, MVT::i32, ++/*464129*/ OPC_MoveParent, ++/*464130*/ OPC_MoveParent, ++/*464131*/ OPC_CheckChild1Same, 0, ++/*464133*/ OPC_MoveParent, ++/*464134*/ OPC_MoveParent, ++/*464135*/ OPC_MoveParent, ++/*464136*/ OPC_MoveChild1, ++/*464137*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*464140*/ OPC_CheckChild0Integer, 1, ++/*464142*/ OPC_CheckChild0Type, MVT::i32, ++/*464144*/ OPC_CheckChild1Integer, 1, ++/*464146*/ OPC_CheckChild1Type, MVT::i32, ++/*464148*/ OPC_CheckChild2Integer, 1, ++/*464150*/ OPC_CheckChild2Type, MVT::i32, ++/*464152*/ OPC_CheckChild3Integer, 1, ++/*464154*/ OPC_CheckChild3Type, MVT::i32, ++/*464156*/ OPC_CheckChild4Integer, 1, ++/*464158*/ OPC_CheckChild4Type, MVT::i32, ++/*464160*/ OPC_MoveChild5, ++/*464161*/ OPC_CheckInteger, 1, ++/*464163*/ OPC_CheckType, MVT::i32, ++/*464165*/ OPC_MoveParent, ++/*464166*/ OPC_MoveChild6, ++/*464167*/ OPC_CheckInteger, 1, ++/*464169*/ OPC_CheckType, MVT::i32, ++/*464171*/ OPC_MoveParent, ++/*464172*/ OPC_MoveChild7, ++/*464173*/ OPC_CheckInteger, 1, ++/*464175*/ OPC_CheckType, MVT::i32, ++/*464177*/ OPC_MoveParent, ++/*464178*/ OPC_CheckType, MVT::v8i16, ++/*464180*/ OPC_MoveParent, ++/*464181*/ OPC_CheckType, MVT::v8i16, ++/*464183*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*464185*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*464193*/ /*Scope*/ 105, /*->464299*/ ++/*464194*/ OPC_CheckChild0Same, 0, ++/*464196*/ OPC_MoveChild1, ++/*464197*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*464200*/ OPC_CheckChild0Integer, 1, ++/*464202*/ OPC_CheckChild0Type, MVT::i32, ++/*464204*/ OPC_CheckChild1Integer, 1, ++/*464206*/ OPC_CheckChild1Type, MVT::i32, ++/*464208*/ OPC_CheckChild2Integer, 1, ++/*464210*/ OPC_CheckChild2Type, MVT::i32, ++/*464212*/ OPC_CheckChild3Integer, 1, ++/*464214*/ OPC_CheckChild3Type, MVT::i32, ++/*464216*/ OPC_CheckChild4Integer, 1, ++/*464218*/ OPC_CheckChild4Type, MVT::i32, ++/*464220*/ OPC_MoveChild5, ++/*464221*/ OPC_CheckInteger, 1, ++/*464223*/ OPC_CheckType, MVT::i32, ++/*464225*/ OPC_MoveParent, ++/*464226*/ OPC_MoveChild6, ++/*464227*/ OPC_CheckInteger, 1, ++/*464229*/ OPC_CheckType, MVT::i32, ++/*464231*/ OPC_MoveParent, ++/*464232*/ OPC_MoveChild7, ++/*464233*/ OPC_CheckInteger, 1, ++/*464235*/ OPC_CheckType, MVT::i32, ++/*464237*/ OPC_MoveParent, ++/*464238*/ OPC_MoveParent, ++/*464239*/ OPC_MoveParent, ++/*464240*/ OPC_MoveParent, ++/*464241*/ OPC_MoveParent, ++/*464242*/ OPC_MoveChild1, ++/*464243*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*464246*/ OPC_CheckChild0Integer, 1, ++/*464248*/ OPC_CheckChild0Type, MVT::i32, ++/*464250*/ OPC_CheckChild1Integer, 1, ++/*464252*/ OPC_CheckChild1Type, MVT::i32, ++/*464254*/ OPC_CheckChild2Integer, 1, ++/*464256*/ OPC_CheckChild2Type, MVT::i32, ++/*464258*/ OPC_CheckChild3Integer, 1, ++/*464260*/ OPC_CheckChild3Type, MVT::i32, ++/*464262*/ OPC_CheckChild4Integer, 1, ++/*464264*/ OPC_CheckChild4Type, MVT::i32, ++/*464266*/ OPC_MoveChild5, ++/*464267*/ OPC_CheckInteger, 1, ++/*464269*/ OPC_CheckType, MVT::i32, ++/*464271*/ OPC_MoveParent, ++/*464272*/ OPC_MoveChild6, ++/*464273*/ OPC_CheckInteger, 1, ++/*464275*/ OPC_CheckType, MVT::i32, ++/*464277*/ OPC_MoveParent, ++/*464278*/ OPC_MoveChild7, ++/*464279*/ OPC_CheckInteger, 1, ++/*464281*/ OPC_CheckType, MVT::i32, ++/*464283*/ OPC_MoveParent, ++/*464284*/ OPC_CheckType, MVT::v8i16, ++/*464286*/ OPC_MoveParent, ++/*464287*/ OPC_CheckType, MVT::v8i16, ++/*464289*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*464291*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*464299*/ 0, /*End of Scope*/ ++/*464300*/ /*Scope*/ 51|128,1/*179*/, /*->464481*/ ++/*464302*/ OPC_MoveChild0, ++/*464303*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*464306*/ OPC_CheckChild0Integer, 1, ++/*464308*/ OPC_CheckChild0Type, MVT::i32, ++/*464310*/ OPC_CheckChild1Integer, 1, ++/*464312*/ OPC_CheckChild1Type, MVT::i32, ++/*464314*/ OPC_CheckChild2Integer, 1, ++/*464316*/ OPC_CheckChild2Type, MVT::i32, ++/*464318*/ OPC_CheckChild3Integer, 1, ++/*464320*/ OPC_CheckChild3Type, MVT::i32, ++/*464322*/ OPC_CheckChild4Integer, 1, ++/*464324*/ OPC_CheckChild4Type, MVT::i32, ++/*464326*/ OPC_MoveChild5, ++/*464327*/ OPC_CheckInteger, 1, ++/*464329*/ OPC_CheckType, MVT::i32, ++/*464331*/ OPC_MoveParent, ++/*464332*/ OPC_MoveChild6, ++/*464333*/ OPC_CheckInteger, 1, ++/*464335*/ OPC_CheckType, MVT::i32, ++/*464337*/ OPC_MoveParent, ++/*464338*/ OPC_MoveChild7, ++/*464339*/ OPC_CheckInteger, 1, ++/*464341*/ OPC_CheckType, MVT::i32, ++/*464343*/ OPC_MoveParent, ++/*464344*/ OPC_MoveParent, ++/*464345*/ OPC_MoveChild1, ++/*464346*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*464349*/ OPC_Scope, 64, /*->464415*/ // 2 children in Scope ++/*464351*/ OPC_CheckChild0Same, 1, ++/*464353*/ OPC_CheckChild1Same, 0, ++/*464355*/ OPC_MoveParent, ++/*464356*/ OPC_MoveParent, ++/*464357*/ OPC_MoveParent, ++/*464358*/ OPC_MoveChild1, ++/*464359*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*464362*/ OPC_CheckChild0Integer, 1, ++/*464364*/ OPC_CheckChild0Type, MVT::i32, ++/*464366*/ OPC_CheckChild1Integer, 1, ++/*464368*/ OPC_CheckChild1Type, MVT::i32, ++/*464370*/ OPC_CheckChild2Integer, 1, ++/*464372*/ OPC_CheckChild2Type, MVT::i32, ++/*464374*/ OPC_CheckChild3Integer, 1, ++/*464376*/ OPC_CheckChild3Type, MVT::i32, ++/*464378*/ OPC_CheckChild4Integer, 1, ++/*464380*/ OPC_CheckChild4Type, MVT::i32, ++/*464382*/ OPC_MoveChild5, ++/*464383*/ OPC_CheckInteger, 1, ++/*464385*/ OPC_CheckType, MVT::i32, ++/*464387*/ OPC_MoveParent, ++/*464388*/ OPC_MoveChild6, ++/*464389*/ OPC_CheckInteger, 1, ++/*464391*/ OPC_CheckType, MVT::i32, ++/*464393*/ OPC_MoveParent, ++/*464394*/ OPC_MoveChild7, ++/*464395*/ OPC_CheckInteger, 1, ++/*464397*/ OPC_CheckType, MVT::i32, ++/*464399*/ OPC_MoveParent, ++/*464400*/ OPC_CheckType, MVT::v8i16, ++/*464402*/ OPC_MoveParent, ++/*464403*/ OPC_CheckType, MVT::v8i16, ++/*464405*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*464407*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*464415*/ /*Scope*/ 64, /*->464480*/ ++/*464416*/ OPC_CheckChild0Same, 0, ++/*464418*/ OPC_CheckChild1Same, 1, ++/*464420*/ OPC_MoveParent, ++/*464421*/ OPC_MoveParent, ++/*464422*/ OPC_MoveParent, ++/*464423*/ OPC_MoveChild1, ++/*464424*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*464427*/ OPC_CheckChild0Integer, 1, ++/*464429*/ OPC_CheckChild0Type, MVT::i32, ++/*464431*/ OPC_CheckChild1Integer, 1, ++/*464433*/ OPC_CheckChild1Type, MVT::i32, ++/*464435*/ OPC_CheckChild2Integer, 1, ++/*464437*/ OPC_CheckChild2Type, MVT::i32, ++/*464439*/ OPC_CheckChild3Integer, 1, ++/*464441*/ OPC_CheckChild3Type, MVT::i32, ++/*464443*/ OPC_CheckChild4Integer, 1, ++/*464445*/ OPC_CheckChild4Type, MVT::i32, ++/*464447*/ OPC_MoveChild5, ++/*464448*/ OPC_CheckInteger, 1, ++/*464450*/ OPC_CheckType, MVT::i32, ++/*464452*/ OPC_MoveParent, ++/*464453*/ OPC_MoveChild6, ++/*464454*/ OPC_CheckInteger, 1, ++/*464456*/ OPC_CheckType, MVT::i32, ++/*464458*/ OPC_MoveParent, ++/*464459*/ OPC_MoveChild7, ++/*464460*/ OPC_CheckInteger, 1, ++/*464462*/ OPC_CheckType, MVT::i32, ++/*464464*/ OPC_MoveParent, ++/*464465*/ OPC_CheckType, MVT::v8i16, ++/*464467*/ OPC_MoveParent, ++/*464468*/ OPC_CheckType, MVT::v8i16, ++/*464470*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*464472*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*464480*/ 0, /*End of Scope*/ ++/*464481*/ 0, /*End of Scope*/ ++/*464482*/ /*Scope*/ 101|128,20/*2661*/, /*->467145*/ ++/*464484*/ OPC_RecordChild1, // #1 = $b ++/*464485*/ OPC_MoveParent, ++/*464486*/ OPC_MoveChild1, ++/*464487*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*464490*/ OPC_CheckChild0Integer, 1, ++/*464492*/ OPC_CheckChild0Type, MVT::i32, ++/*464494*/ OPC_CheckChild1Integer, 1, ++/*464496*/ OPC_CheckChild1Type, MVT::i32, ++/*464498*/ OPC_CheckChild2Integer, 1, ++/*464500*/ OPC_CheckChild2Type, MVT::i32, ++/*464502*/ OPC_CheckChild3Integer, 1, ++/*464504*/ OPC_CheckChild3Type, MVT::i32, ++/*464506*/ OPC_CheckChild4Integer, 1, ++/*464508*/ OPC_CheckChild4Type, MVT::i32, ++/*464510*/ OPC_MoveChild5, ++/*464511*/ OPC_CheckInteger, 1, ++/*464513*/ OPC_CheckType, MVT::i32, ++/*464515*/ OPC_MoveParent, ++/*464516*/ OPC_MoveChild6, ++/*464517*/ OPC_CheckInteger, 1, ++/*464519*/ OPC_CheckType, MVT::i32, ++/*464521*/ OPC_MoveParent, ++/*464522*/ OPC_MoveChild7, ++/*464523*/ OPC_CheckInteger, 1, ++/*464525*/ OPC_CheckType, MVT::i32, ++/*464527*/ OPC_MoveParent, ++/*464528*/ OPC_MoveParent, ++/*464529*/ OPC_MoveParent, ++/*464530*/ OPC_MoveChild1, ++/*464531*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*464534*/ OPC_CheckChild0Integer, 15, ++/*464536*/ OPC_CheckChild0Type, MVT::i32, ++/*464538*/ OPC_CheckChild1Integer, 15, ++/*464540*/ OPC_CheckChild1Type, MVT::i32, ++/*464542*/ OPC_CheckChild2Integer, 15, ++/*464544*/ OPC_CheckChild2Type, MVT::i32, ++/*464546*/ OPC_CheckChild3Integer, 15, ++/*464548*/ OPC_CheckChild3Type, MVT::i32, ++/*464550*/ OPC_CheckChild4Integer, 15, ++/*464552*/ OPC_CheckChild4Type, MVT::i32, ++/*464554*/ OPC_MoveChild5, ++/*464555*/ OPC_CheckInteger, 15, ++/*464557*/ OPC_CheckType, MVT::i32, ++/*464559*/ OPC_MoveParent, ++/*464560*/ OPC_MoveChild6, ++/*464561*/ OPC_CheckInteger, 15, ++/*464563*/ OPC_CheckType, MVT::i32, ++/*464565*/ OPC_MoveParent, ++/*464566*/ OPC_MoveChild7, ++/*464567*/ OPC_CheckInteger, 15, ++/*464569*/ OPC_CheckType, MVT::i32, ++/*464571*/ OPC_MoveParent, ++/*464572*/ OPC_CheckType, MVT::v8i16, ++/*464574*/ OPC_MoveParent, ++/*464575*/ OPC_MoveParent, ++/*464576*/ OPC_MoveChild1, ++/*464577*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*464580*/ OPC_Scope, 14|128,5/*654*/, /*->465237*/ // 7 children in Scope ++/*464583*/ OPC_MoveChild0, ++/*464584*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*464587*/ OPC_Scope, 107, /*->464696*/ // 6 children in Scope ++/*464589*/ OPC_MoveChild0, ++/*464590*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*464593*/ OPC_CheckChild0Integer, 1, ++/*464595*/ OPC_CheckChild0Type, MVT::i32, ++/*464597*/ OPC_CheckChild1Integer, 1, ++/*464599*/ OPC_CheckChild1Type, MVT::i32, ++/*464601*/ OPC_CheckChild2Integer, 1, ++/*464603*/ OPC_CheckChild2Type, MVT::i32, ++/*464605*/ OPC_CheckChild3Integer, 1, ++/*464607*/ OPC_CheckChild3Type, MVT::i32, ++/*464609*/ OPC_CheckChild4Integer, 1, ++/*464611*/ OPC_CheckChild4Type, MVT::i32, ++/*464613*/ OPC_MoveChild5, ++/*464614*/ OPC_CheckInteger, 1, ++/*464616*/ OPC_CheckType, MVT::i32, ++/*464618*/ OPC_MoveParent, ++/*464619*/ OPC_MoveChild6, ++/*464620*/ OPC_CheckInteger, 1, ++/*464622*/ OPC_CheckType, MVT::i32, ++/*464624*/ OPC_MoveParent, ++/*464625*/ OPC_MoveChild7, ++/*464626*/ OPC_CheckInteger, 1, ++/*464628*/ OPC_CheckType, MVT::i32, ++/*464630*/ OPC_MoveParent, ++/*464631*/ OPC_MoveParent, ++/*464632*/ OPC_CheckChild1Same, 0, ++/*464634*/ OPC_MoveParent, ++/*464635*/ OPC_CheckChild1Same, 1, ++/*464637*/ OPC_MoveParent, ++/*464638*/ OPC_MoveParent, ++/*464639*/ OPC_MoveChild1, ++/*464640*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*464643*/ OPC_CheckChild0Integer, 1, ++/*464645*/ OPC_CheckChild0Type, MVT::i32, ++/*464647*/ OPC_CheckChild1Integer, 1, ++/*464649*/ OPC_CheckChild1Type, MVT::i32, ++/*464651*/ OPC_CheckChild2Integer, 1, ++/*464653*/ OPC_CheckChild2Type, MVT::i32, ++/*464655*/ OPC_CheckChild3Integer, 1, ++/*464657*/ OPC_CheckChild3Type, MVT::i32, ++/*464659*/ OPC_CheckChild4Integer, 1, ++/*464661*/ OPC_CheckChild4Type, MVT::i32, ++/*464663*/ OPC_MoveChild5, ++/*464664*/ OPC_CheckInteger, 1, ++/*464666*/ OPC_CheckType, MVT::i32, ++/*464668*/ OPC_MoveParent, ++/*464669*/ OPC_MoveChild6, ++/*464670*/ OPC_CheckInteger, 1, ++/*464672*/ OPC_CheckType, MVT::i32, ++/*464674*/ OPC_MoveParent, ++/*464675*/ OPC_MoveChild7, ++/*464676*/ OPC_CheckInteger, 1, ++/*464678*/ OPC_CheckType, MVT::i32, ++/*464680*/ OPC_MoveParent, ++/*464681*/ OPC_CheckType, MVT::v8i16, ++/*464683*/ OPC_MoveParent, ++/*464684*/ OPC_CheckType, MVT::v8i16, ++/*464686*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*464688*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a), LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*464696*/ /*Scope*/ 107, /*->464804*/ ++/*464697*/ OPC_CheckChild0Same, 0, ++/*464699*/ OPC_MoveChild1, ++/*464700*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*464703*/ OPC_CheckChild0Integer, 1, ++/*464705*/ OPC_CheckChild0Type, MVT::i32, ++/*464707*/ OPC_CheckChild1Integer, 1, ++/*464709*/ OPC_CheckChild1Type, MVT::i32, ++/*464711*/ OPC_CheckChild2Integer, 1, ++/*464713*/ OPC_CheckChild2Type, MVT::i32, ++/*464715*/ OPC_CheckChild3Integer, 1, ++/*464717*/ OPC_CheckChild3Type, MVT::i32, ++/*464719*/ OPC_CheckChild4Integer, 1, ++/*464721*/ OPC_CheckChild4Type, MVT::i32, ++/*464723*/ OPC_MoveChild5, ++/*464724*/ OPC_CheckInteger, 1, ++/*464726*/ OPC_CheckType, MVT::i32, ++/*464728*/ OPC_MoveParent, ++/*464729*/ OPC_MoveChild6, ++/*464730*/ OPC_CheckInteger, 1, ++/*464732*/ OPC_CheckType, MVT::i32, ++/*464734*/ OPC_MoveParent, ++/*464735*/ OPC_MoveChild7, ++/*464736*/ OPC_CheckInteger, 1, ++/*464738*/ OPC_CheckType, MVT::i32, ++/*464740*/ OPC_MoveParent, ++/*464741*/ OPC_MoveParent, ++/*464742*/ OPC_MoveParent, ++/*464743*/ OPC_CheckChild1Same, 1, ++/*464745*/ OPC_MoveParent, ++/*464746*/ OPC_MoveParent, ++/*464747*/ OPC_MoveChild1, ++/*464748*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*464751*/ OPC_CheckChild0Integer, 1, ++/*464753*/ OPC_CheckChild0Type, MVT::i32, ++/*464755*/ OPC_CheckChild1Integer, 1, ++/*464757*/ OPC_CheckChild1Type, MVT::i32, ++/*464759*/ OPC_CheckChild2Integer, 1, ++/*464761*/ OPC_CheckChild2Type, MVT::i32, ++/*464763*/ OPC_CheckChild3Integer, 1, ++/*464765*/ OPC_CheckChild3Type, MVT::i32, ++/*464767*/ OPC_CheckChild4Integer, 1, ++/*464769*/ OPC_CheckChild4Type, MVT::i32, ++/*464771*/ OPC_MoveChild5, ++/*464772*/ OPC_CheckInteger, 1, ++/*464774*/ OPC_CheckType, MVT::i32, ++/*464776*/ OPC_MoveParent, ++/*464777*/ OPC_MoveChild6, ++/*464778*/ OPC_CheckInteger, 1, ++/*464780*/ OPC_CheckType, MVT::i32, ++/*464782*/ OPC_MoveParent, ++/*464783*/ OPC_MoveChild7, ++/*464784*/ OPC_CheckInteger, 1, ++/*464786*/ OPC_CheckType, MVT::i32, ++/*464788*/ OPC_MoveParent, ++/*464789*/ OPC_CheckType, MVT::v8i16, ++/*464791*/ OPC_MoveParent, ++/*464792*/ OPC_CheckType, MVT::v8i16, ++/*464794*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*464796*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*464804*/ /*Scope*/ 107, /*->464912*/ ++/*464805*/ OPC_MoveChild0, ++/*464806*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*464809*/ OPC_CheckChild0Integer, 1, ++/*464811*/ OPC_CheckChild0Type, MVT::i32, ++/*464813*/ OPC_CheckChild1Integer, 1, ++/*464815*/ OPC_CheckChild1Type, MVT::i32, ++/*464817*/ OPC_CheckChild2Integer, 1, ++/*464819*/ OPC_CheckChild2Type, MVT::i32, ++/*464821*/ OPC_CheckChild3Integer, 1, ++/*464823*/ OPC_CheckChild3Type, MVT::i32, ++/*464825*/ OPC_CheckChild4Integer, 1, ++/*464827*/ OPC_CheckChild4Type, MVT::i32, ++/*464829*/ OPC_MoveChild5, ++/*464830*/ OPC_CheckInteger, 1, ++/*464832*/ OPC_CheckType, MVT::i32, ++/*464834*/ OPC_MoveParent, ++/*464835*/ OPC_MoveChild6, ++/*464836*/ OPC_CheckInteger, 1, ++/*464838*/ OPC_CheckType, MVT::i32, ++/*464840*/ OPC_MoveParent, ++/*464841*/ OPC_MoveChild7, ++/*464842*/ OPC_CheckInteger, 1, ++/*464844*/ OPC_CheckType, MVT::i32, ++/*464846*/ OPC_MoveParent, ++/*464847*/ OPC_MoveParent, ++/*464848*/ OPC_CheckChild1Same, 1, ++/*464850*/ OPC_MoveParent, ++/*464851*/ OPC_CheckChild1Same, 0, ++/*464853*/ OPC_MoveParent, ++/*464854*/ OPC_MoveParent, ++/*464855*/ OPC_MoveChild1, ++/*464856*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*464859*/ OPC_CheckChild0Integer, 1, ++/*464861*/ OPC_CheckChild0Type, MVT::i32, ++/*464863*/ OPC_CheckChild1Integer, 1, ++/*464865*/ OPC_CheckChild1Type, MVT::i32, ++/*464867*/ OPC_CheckChild2Integer, 1, ++/*464869*/ OPC_CheckChild2Type, MVT::i32, ++/*464871*/ OPC_CheckChild3Integer, 1, ++/*464873*/ OPC_CheckChild3Type, MVT::i32, ++/*464875*/ OPC_CheckChild4Integer, 1, ++/*464877*/ OPC_CheckChild4Type, MVT::i32, ++/*464879*/ OPC_MoveChild5, ++/*464880*/ OPC_CheckInteger, 1, ++/*464882*/ OPC_CheckType, MVT::i32, ++/*464884*/ OPC_MoveParent, ++/*464885*/ OPC_MoveChild6, ++/*464886*/ OPC_CheckInteger, 1, ++/*464888*/ OPC_CheckType, MVT::i32, ++/*464890*/ OPC_MoveParent, ++/*464891*/ OPC_MoveChild7, ++/*464892*/ OPC_CheckInteger, 1, ++/*464894*/ OPC_CheckType, MVT::i32, ++/*464896*/ OPC_MoveParent, ++/*464897*/ OPC_CheckType, MVT::v8i16, ++/*464899*/ OPC_MoveParent, ++/*464900*/ OPC_CheckType, MVT::v8i16, ++/*464902*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*464904*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b), LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*464912*/ /*Scope*/ 107, /*->465020*/ ++/*464913*/ OPC_CheckChild0Same, 1, ++/*464915*/ OPC_MoveChild1, ++/*464916*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*464919*/ OPC_CheckChild0Integer, 1, ++/*464921*/ OPC_CheckChild0Type, MVT::i32, ++/*464923*/ OPC_CheckChild1Integer, 1, ++/*464925*/ OPC_CheckChild1Type, MVT::i32, ++/*464927*/ OPC_CheckChild2Integer, 1, ++/*464929*/ OPC_CheckChild2Type, MVT::i32, ++/*464931*/ OPC_CheckChild3Integer, 1, ++/*464933*/ OPC_CheckChild3Type, MVT::i32, ++/*464935*/ OPC_CheckChild4Integer, 1, ++/*464937*/ OPC_CheckChild4Type, MVT::i32, ++/*464939*/ OPC_MoveChild5, ++/*464940*/ OPC_CheckInteger, 1, ++/*464942*/ OPC_CheckType, MVT::i32, ++/*464944*/ OPC_MoveParent, ++/*464945*/ OPC_MoveChild6, ++/*464946*/ OPC_CheckInteger, 1, ++/*464948*/ OPC_CheckType, MVT::i32, ++/*464950*/ OPC_MoveParent, ++/*464951*/ OPC_MoveChild7, ++/*464952*/ OPC_CheckInteger, 1, ++/*464954*/ OPC_CheckType, MVT::i32, ++/*464956*/ OPC_MoveParent, ++/*464957*/ OPC_MoveParent, ++/*464958*/ OPC_MoveParent, ++/*464959*/ OPC_CheckChild1Same, 0, ++/*464961*/ OPC_MoveParent, ++/*464962*/ OPC_MoveParent, ++/*464963*/ OPC_MoveChild1, ++/*464964*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*464967*/ OPC_CheckChild0Integer, 1, ++/*464969*/ OPC_CheckChild0Type, MVT::i32, ++/*464971*/ OPC_CheckChild1Integer, 1, ++/*464973*/ OPC_CheckChild1Type, MVT::i32, ++/*464975*/ OPC_CheckChild2Integer, 1, ++/*464977*/ OPC_CheckChild2Type, MVT::i32, ++/*464979*/ OPC_CheckChild3Integer, 1, ++/*464981*/ OPC_CheckChild3Type, MVT::i32, ++/*464983*/ OPC_CheckChild4Integer, 1, ++/*464985*/ OPC_CheckChild4Type, MVT::i32, ++/*464987*/ OPC_MoveChild5, ++/*464988*/ OPC_CheckInteger, 1, ++/*464990*/ OPC_CheckType, MVT::i32, ++/*464992*/ OPC_MoveParent, ++/*464993*/ OPC_MoveChild6, ++/*464994*/ OPC_CheckInteger, 1, ++/*464996*/ OPC_CheckType, MVT::i32, ++/*464998*/ OPC_MoveParent, ++/*464999*/ OPC_MoveChild7, ++/*465000*/ OPC_CheckInteger, 1, ++/*465002*/ OPC_CheckType, MVT::i32, ++/*465004*/ OPC_MoveParent, ++/*465005*/ OPC_CheckType, MVT::v8i16, ++/*465007*/ OPC_MoveParent, ++/*465008*/ OPC_CheckType, MVT::v8i16, ++/*465010*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*465012*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*465020*/ /*Scope*/ 107, /*->465128*/ ++/*465021*/ OPC_CheckChild0Same, 0, ++/*465023*/ OPC_CheckChild1Same, 1, ++/*465025*/ OPC_MoveParent, ++/*465026*/ OPC_MoveChild1, ++/*465027*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*465030*/ OPC_CheckChild0Integer, 1, ++/*465032*/ OPC_CheckChild0Type, MVT::i32, ++/*465034*/ OPC_CheckChild1Integer, 1, ++/*465036*/ OPC_CheckChild1Type, MVT::i32, ++/*465038*/ OPC_CheckChild2Integer, 1, ++/*465040*/ OPC_CheckChild2Type, MVT::i32, ++/*465042*/ OPC_CheckChild3Integer, 1, ++/*465044*/ OPC_CheckChild3Type, MVT::i32, ++/*465046*/ OPC_CheckChild4Integer, 1, ++/*465048*/ OPC_CheckChild4Type, MVT::i32, ++/*465050*/ OPC_MoveChild5, ++/*465051*/ OPC_CheckInteger, 1, ++/*465053*/ OPC_CheckType, MVT::i32, ++/*465055*/ OPC_MoveParent, ++/*465056*/ OPC_MoveChild6, ++/*465057*/ OPC_CheckInteger, 1, ++/*465059*/ OPC_CheckType, MVT::i32, ++/*465061*/ OPC_MoveParent, ++/*465062*/ OPC_MoveChild7, ++/*465063*/ OPC_CheckInteger, 1, ++/*465065*/ OPC_CheckType, MVT::i32, ++/*465067*/ OPC_MoveParent, ++/*465068*/ OPC_MoveParent, ++/*465069*/ OPC_MoveParent, ++/*465070*/ OPC_MoveParent, ++/*465071*/ OPC_MoveChild1, ++/*465072*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*465075*/ OPC_CheckChild0Integer, 1, ++/*465077*/ OPC_CheckChild0Type, MVT::i32, ++/*465079*/ OPC_CheckChild1Integer, 1, ++/*465081*/ OPC_CheckChild1Type, MVT::i32, ++/*465083*/ OPC_CheckChild2Integer, 1, ++/*465085*/ OPC_CheckChild2Type, MVT::i32, ++/*465087*/ OPC_CheckChild3Integer, 1, ++/*465089*/ OPC_CheckChild3Type, MVT::i32, ++/*465091*/ OPC_CheckChild4Integer, 1, ++/*465093*/ OPC_CheckChild4Type, MVT::i32, ++/*465095*/ OPC_MoveChild5, ++/*465096*/ OPC_CheckInteger, 1, ++/*465098*/ OPC_CheckType, MVT::i32, ++/*465100*/ OPC_MoveParent, ++/*465101*/ OPC_MoveChild6, ++/*465102*/ OPC_CheckInteger, 1, ++/*465104*/ OPC_CheckType, MVT::i32, ++/*465106*/ OPC_MoveParent, ++/*465107*/ OPC_MoveChild7, ++/*465108*/ OPC_CheckInteger, 1, ++/*465110*/ OPC_CheckType, MVT::i32, ++/*465112*/ OPC_MoveParent, ++/*465113*/ OPC_CheckType, MVT::v8i16, ++/*465115*/ OPC_MoveParent, ++/*465116*/ OPC_CheckType, MVT::v8i16, ++/*465118*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*465120*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*465128*/ /*Scope*/ 107, /*->465236*/ ++/*465129*/ OPC_CheckChild0Same, 1, ++/*465131*/ OPC_CheckChild1Same, 0, ++/*465133*/ OPC_MoveParent, ++/*465134*/ OPC_MoveChild1, ++/*465135*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*465138*/ OPC_CheckChild0Integer, 1, ++/*465140*/ OPC_CheckChild0Type, MVT::i32, ++/*465142*/ OPC_CheckChild1Integer, 1, ++/*465144*/ OPC_CheckChild1Type, MVT::i32, ++/*465146*/ OPC_CheckChild2Integer, 1, ++/*465148*/ OPC_CheckChild2Type, MVT::i32, ++/*465150*/ OPC_CheckChild3Integer, 1, ++/*465152*/ OPC_CheckChild3Type, MVT::i32, ++/*465154*/ OPC_CheckChild4Integer, 1, ++/*465156*/ OPC_CheckChild4Type, MVT::i32, ++/*465158*/ OPC_MoveChild5, ++/*465159*/ OPC_CheckInteger, 1, ++/*465161*/ OPC_CheckType, MVT::i32, ++/*465163*/ OPC_MoveParent, ++/*465164*/ OPC_MoveChild6, ++/*465165*/ OPC_CheckInteger, 1, ++/*465167*/ OPC_CheckType, MVT::i32, ++/*465169*/ OPC_MoveParent, ++/*465170*/ OPC_MoveChild7, ++/*465171*/ OPC_CheckInteger, 1, ++/*465173*/ OPC_CheckType, MVT::i32, ++/*465175*/ OPC_MoveParent, ++/*465176*/ OPC_MoveParent, ++/*465177*/ OPC_MoveParent, ++/*465178*/ OPC_MoveParent, ++/*465179*/ OPC_MoveChild1, ++/*465180*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*465183*/ OPC_CheckChild0Integer, 1, ++/*465185*/ OPC_CheckChild0Type, MVT::i32, ++/*465187*/ OPC_CheckChild1Integer, 1, ++/*465189*/ OPC_CheckChild1Type, MVT::i32, ++/*465191*/ OPC_CheckChild2Integer, 1, ++/*465193*/ OPC_CheckChild2Type, MVT::i32, ++/*465195*/ OPC_CheckChild3Integer, 1, ++/*465197*/ OPC_CheckChild3Type, MVT::i32, ++/*465199*/ OPC_CheckChild4Integer, 1, ++/*465201*/ OPC_CheckChild4Type, MVT::i32, ++/*465203*/ OPC_MoveChild5, ++/*465204*/ OPC_CheckInteger, 1, ++/*465206*/ OPC_CheckType, MVT::i32, ++/*465208*/ OPC_MoveParent, ++/*465209*/ OPC_MoveChild6, ++/*465210*/ OPC_CheckInteger, 1, ++/*465212*/ OPC_CheckType, MVT::i32, ++/*465214*/ OPC_MoveParent, ++/*465215*/ OPC_MoveChild7, ++/*465216*/ OPC_CheckInteger, 1, ++/*465218*/ OPC_CheckType, MVT::i32, ++/*465220*/ OPC_MoveParent, ++/*465221*/ OPC_CheckType, MVT::v8i16, ++/*465223*/ OPC_MoveParent, ++/*465224*/ OPC_CheckType, MVT::v8i16, ++/*465226*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*465228*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*465236*/ 0, /*End of Scope*/ ++/*465237*/ /*Scope*/ 92|128,1/*220*/, /*->465459*/ ++/*465239*/ OPC_CheckChild0Same, 1, ++/*465241*/ OPC_MoveChild1, ++/*465242*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*465245*/ OPC_Scope, 105, /*->465352*/ // 2 children in Scope ++/*465247*/ OPC_MoveChild0, ++/*465248*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*465251*/ OPC_CheckChild0Integer, 1, ++/*465253*/ OPC_CheckChild0Type, MVT::i32, ++/*465255*/ OPC_CheckChild1Integer, 1, ++/*465257*/ OPC_CheckChild1Type, MVT::i32, ++/*465259*/ OPC_CheckChild2Integer, 1, ++/*465261*/ OPC_CheckChild2Type, MVT::i32, ++/*465263*/ OPC_CheckChild3Integer, 1, ++/*465265*/ OPC_CheckChild3Type, MVT::i32, ++/*465267*/ OPC_CheckChild4Integer, 1, ++/*465269*/ OPC_CheckChild4Type, MVT::i32, ++/*465271*/ OPC_MoveChild5, ++/*465272*/ OPC_CheckInteger, 1, ++/*465274*/ OPC_CheckType, MVT::i32, ++/*465276*/ OPC_MoveParent, ++/*465277*/ OPC_MoveChild6, ++/*465278*/ OPC_CheckInteger, 1, ++/*465280*/ OPC_CheckType, MVT::i32, ++/*465282*/ OPC_MoveParent, ++/*465283*/ OPC_MoveChild7, ++/*465284*/ OPC_CheckInteger, 1, ++/*465286*/ OPC_CheckType, MVT::i32, ++/*465288*/ OPC_MoveParent, ++/*465289*/ OPC_MoveParent, ++/*465290*/ OPC_CheckChild1Same, 0, ++/*465292*/ OPC_MoveParent, ++/*465293*/ OPC_MoveParent, ++/*465294*/ OPC_MoveParent, ++/*465295*/ OPC_MoveChild1, ++/*465296*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*465299*/ OPC_CheckChild0Integer, 1, ++/*465301*/ OPC_CheckChild0Type, MVT::i32, ++/*465303*/ OPC_CheckChild1Integer, 1, ++/*465305*/ OPC_CheckChild1Type, MVT::i32, ++/*465307*/ OPC_CheckChild2Integer, 1, ++/*465309*/ OPC_CheckChild2Type, MVT::i32, ++/*465311*/ OPC_CheckChild3Integer, 1, ++/*465313*/ OPC_CheckChild3Type, MVT::i32, ++/*465315*/ OPC_CheckChild4Integer, 1, ++/*465317*/ OPC_CheckChild4Type, MVT::i32, ++/*465319*/ OPC_MoveChild5, ++/*465320*/ OPC_CheckInteger, 1, ++/*465322*/ OPC_CheckType, MVT::i32, ++/*465324*/ OPC_MoveParent, ++/*465325*/ OPC_MoveChild6, ++/*465326*/ OPC_CheckInteger, 1, ++/*465328*/ OPC_CheckType, MVT::i32, ++/*465330*/ OPC_MoveParent, ++/*465331*/ OPC_MoveChild7, ++/*465332*/ OPC_CheckInteger, 1, ++/*465334*/ OPC_CheckType, MVT::i32, ++/*465336*/ OPC_MoveParent, ++/*465337*/ OPC_CheckType, MVT::v8i16, ++/*465339*/ OPC_MoveParent, ++/*465340*/ OPC_CheckType, MVT::v8i16, ++/*465342*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*465344*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*465352*/ /*Scope*/ 105, /*->465458*/ ++/*465353*/ OPC_CheckChild0Same, 0, ++/*465355*/ OPC_MoveChild1, ++/*465356*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*465359*/ OPC_CheckChild0Integer, 1, ++/*465361*/ OPC_CheckChild0Type, MVT::i32, ++/*465363*/ OPC_CheckChild1Integer, 1, ++/*465365*/ OPC_CheckChild1Type, MVT::i32, ++/*465367*/ OPC_CheckChild2Integer, 1, ++/*465369*/ OPC_CheckChild2Type, MVT::i32, ++/*465371*/ OPC_CheckChild3Integer, 1, ++/*465373*/ OPC_CheckChild3Type, MVT::i32, ++/*465375*/ OPC_CheckChild4Integer, 1, ++/*465377*/ OPC_CheckChild4Type, MVT::i32, ++/*465379*/ OPC_MoveChild5, ++/*465380*/ OPC_CheckInteger, 1, ++/*465382*/ OPC_CheckType, MVT::i32, ++/*465384*/ OPC_MoveParent, ++/*465385*/ OPC_MoveChild6, ++/*465386*/ OPC_CheckInteger, 1, ++/*465388*/ OPC_CheckType, MVT::i32, ++/*465390*/ OPC_MoveParent, ++/*465391*/ OPC_MoveChild7, ++/*465392*/ OPC_CheckInteger, 1, ++/*465394*/ OPC_CheckType, MVT::i32, ++/*465396*/ OPC_MoveParent, ++/*465397*/ OPC_MoveParent, ++/*465398*/ OPC_MoveParent, ++/*465399*/ OPC_MoveParent, ++/*465400*/ OPC_MoveParent, ++/*465401*/ OPC_MoveChild1, ++/*465402*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*465405*/ OPC_CheckChild0Integer, 1, ++/*465407*/ OPC_CheckChild0Type, MVT::i32, ++/*465409*/ OPC_CheckChild1Integer, 1, ++/*465411*/ OPC_CheckChild1Type, MVT::i32, ++/*465413*/ OPC_CheckChild2Integer, 1, ++/*465415*/ OPC_CheckChild2Type, MVT::i32, ++/*465417*/ OPC_CheckChild3Integer, 1, ++/*465419*/ OPC_CheckChild3Type, MVT::i32, ++/*465421*/ OPC_CheckChild4Integer, 1, ++/*465423*/ OPC_CheckChild4Type, MVT::i32, ++/*465425*/ OPC_MoveChild5, ++/*465426*/ OPC_CheckInteger, 1, ++/*465428*/ OPC_CheckType, MVT::i32, ++/*465430*/ OPC_MoveParent, ++/*465431*/ OPC_MoveChild6, ++/*465432*/ OPC_CheckInteger, 1, ++/*465434*/ OPC_CheckType, MVT::i32, ++/*465436*/ OPC_MoveParent, ++/*465437*/ OPC_MoveChild7, ++/*465438*/ OPC_CheckInteger, 1, ++/*465440*/ OPC_CheckType, MVT::i32, ++/*465442*/ OPC_MoveParent, ++/*465443*/ OPC_CheckType, MVT::v8i16, ++/*465445*/ OPC_MoveParent, ++/*465446*/ OPC_CheckType, MVT::v8i16, ++/*465448*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*465450*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*465458*/ 0, /*End of Scope*/ ++/*465459*/ /*Scope*/ 92|128,1/*220*/, /*->465681*/ ++/*465461*/ OPC_CheckChild0Same, 0, ++/*465463*/ OPC_MoveChild1, ++/*465464*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*465467*/ OPC_Scope, 105, /*->465574*/ // 2 children in Scope ++/*465469*/ OPC_MoveChild0, ++/*465470*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*465473*/ OPC_CheckChild0Integer, 1, ++/*465475*/ OPC_CheckChild0Type, MVT::i32, ++/*465477*/ OPC_CheckChild1Integer, 1, ++/*465479*/ OPC_CheckChild1Type, MVT::i32, ++/*465481*/ OPC_CheckChild2Integer, 1, ++/*465483*/ OPC_CheckChild2Type, MVT::i32, ++/*465485*/ OPC_CheckChild3Integer, 1, ++/*465487*/ OPC_CheckChild3Type, MVT::i32, ++/*465489*/ OPC_CheckChild4Integer, 1, ++/*465491*/ OPC_CheckChild4Type, MVT::i32, ++/*465493*/ OPC_MoveChild5, ++/*465494*/ OPC_CheckInteger, 1, ++/*465496*/ OPC_CheckType, MVT::i32, ++/*465498*/ OPC_MoveParent, ++/*465499*/ OPC_MoveChild6, ++/*465500*/ OPC_CheckInteger, 1, ++/*465502*/ OPC_CheckType, MVT::i32, ++/*465504*/ OPC_MoveParent, ++/*465505*/ OPC_MoveChild7, ++/*465506*/ OPC_CheckInteger, 1, ++/*465508*/ OPC_CheckType, MVT::i32, ++/*465510*/ OPC_MoveParent, ++/*465511*/ OPC_MoveParent, ++/*465512*/ OPC_CheckChild1Same, 1, ++/*465514*/ OPC_MoveParent, ++/*465515*/ OPC_MoveParent, ++/*465516*/ OPC_MoveParent, ++/*465517*/ OPC_MoveChild1, ++/*465518*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*465521*/ OPC_CheckChild0Integer, 1, ++/*465523*/ OPC_CheckChild0Type, MVT::i32, ++/*465525*/ OPC_CheckChild1Integer, 1, ++/*465527*/ OPC_CheckChild1Type, MVT::i32, ++/*465529*/ OPC_CheckChild2Integer, 1, ++/*465531*/ OPC_CheckChild2Type, MVT::i32, ++/*465533*/ OPC_CheckChild3Integer, 1, ++/*465535*/ OPC_CheckChild3Type, MVT::i32, ++/*465537*/ OPC_CheckChild4Integer, 1, ++/*465539*/ OPC_CheckChild4Type, MVT::i32, ++/*465541*/ OPC_MoveChild5, ++/*465542*/ OPC_CheckInteger, 1, ++/*465544*/ OPC_CheckType, MVT::i32, ++/*465546*/ OPC_MoveParent, ++/*465547*/ OPC_MoveChild6, ++/*465548*/ OPC_CheckInteger, 1, ++/*465550*/ OPC_CheckType, MVT::i32, ++/*465552*/ OPC_MoveParent, ++/*465553*/ OPC_MoveChild7, ++/*465554*/ OPC_CheckInteger, 1, ++/*465556*/ OPC_CheckType, MVT::i32, ++/*465558*/ OPC_MoveParent, ++/*465559*/ OPC_CheckType, MVT::v8i16, ++/*465561*/ OPC_MoveParent, ++/*465562*/ OPC_CheckType, MVT::v8i16, ++/*465564*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*465566*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*465574*/ /*Scope*/ 105, /*->465680*/ ++/*465575*/ OPC_CheckChild0Same, 1, ++/*465577*/ OPC_MoveChild1, ++/*465578*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*465581*/ OPC_CheckChild0Integer, 1, ++/*465583*/ OPC_CheckChild0Type, MVT::i32, ++/*465585*/ OPC_CheckChild1Integer, 1, ++/*465587*/ OPC_CheckChild1Type, MVT::i32, ++/*465589*/ OPC_CheckChild2Integer, 1, ++/*465591*/ OPC_CheckChild2Type, MVT::i32, ++/*465593*/ OPC_CheckChild3Integer, 1, ++/*465595*/ OPC_CheckChild3Type, MVT::i32, ++/*465597*/ OPC_CheckChild4Integer, 1, ++/*465599*/ OPC_CheckChild4Type, MVT::i32, ++/*465601*/ OPC_MoveChild5, ++/*465602*/ OPC_CheckInteger, 1, ++/*465604*/ OPC_CheckType, MVT::i32, ++/*465606*/ OPC_MoveParent, ++/*465607*/ OPC_MoveChild6, ++/*465608*/ OPC_CheckInteger, 1, ++/*465610*/ OPC_CheckType, MVT::i32, ++/*465612*/ OPC_MoveParent, ++/*465613*/ OPC_MoveChild7, ++/*465614*/ OPC_CheckInteger, 1, ++/*465616*/ OPC_CheckType, MVT::i32, ++/*465618*/ OPC_MoveParent, ++/*465619*/ OPC_MoveParent, ++/*465620*/ OPC_MoveParent, ++/*465621*/ OPC_MoveParent, ++/*465622*/ OPC_MoveParent, ++/*465623*/ OPC_MoveChild1, ++/*465624*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*465627*/ OPC_CheckChild0Integer, 1, ++/*465629*/ OPC_CheckChild0Type, MVT::i32, ++/*465631*/ OPC_CheckChild1Integer, 1, ++/*465633*/ OPC_CheckChild1Type, MVT::i32, ++/*465635*/ OPC_CheckChild2Integer, 1, ++/*465637*/ OPC_CheckChild2Type, MVT::i32, ++/*465639*/ OPC_CheckChild3Integer, 1, ++/*465641*/ OPC_CheckChild3Type, MVT::i32, ++/*465643*/ OPC_CheckChild4Integer, 1, ++/*465645*/ OPC_CheckChild4Type, MVT::i32, ++/*465647*/ OPC_MoveChild5, ++/*465648*/ OPC_CheckInteger, 1, ++/*465650*/ OPC_CheckType, MVT::i32, ++/*465652*/ OPC_MoveParent, ++/*465653*/ OPC_MoveChild6, ++/*465654*/ OPC_CheckInteger, 1, ++/*465656*/ OPC_CheckType, MVT::i32, ++/*465658*/ OPC_MoveParent, ++/*465659*/ OPC_MoveChild7, ++/*465660*/ OPC_CheckInteger, 1, ++/*465662*/ OPC_CheckType, MVT::i32, ++/*465664*/ OPC_MoveParent, ++/*465665*/ OPC_CheckType, MVT::v8i16, ++/*465667*/ OPC_MoveParent, ++/*465668*/ OPC_CheckType, MVT::v8i16, ++/*465670*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*465672*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*465680*/ 0, /*End of Scope*/ ++/*465681*/ /*Scope*/ 68|128,6/*836*/, /*->466519*/ ++/*465683*/ OPC_MoveChild0, ++/*465684*/ OPC_SwitchOpcode /*2 cases */, 47|128,1/*175*/, TARGET_VAL(ISD::BUILD_VECTOR),// ->465864 ++/*465689*/ OPC_CheckChild0Integer, 1, ++/*465691*/ OPC_CheckChild0Type, MVT::i32, ++/*465693*/ OPC_CheckChild1Integer, 1, ++/*465695*/ OPC_CheckChild1Type, MVT::i32, ++/*465697*/ OPC_CheckChild2Integer, 1, ++/*465699*/ OPC_CheckChild2Type, MVT::i32, ++/*465701*/ OPC_CheckChild3Integer, 1, ++/*465703*/ OPC_CheckChild3Type, MVT::i32, ++/*465705*/ OPC_CheckChild4Integer, 1, ++/*465707*/ OPC_CheckChild4Type, MVT::i32, ++/*465709*/ OPC_MoveChild5, ++/*465710*/ OPC_CheckInteger, 1, ++/*465712*/ OPC_CheckType, MVT::i32, ++/*465714*/ OPC_MoveParent, ++/*465715*/ OPC_MoveChild6, ++/*465716*/ OPC_CheckInteger, 1, ++/*465718*/ OPC_CheckType, MVT::i32, ++/*465720*/ OPC_MoveParent, ++/*465721*/ OPC_MoveChild7, ++/*465722*/ OPC_CheckInteger, 1, ++/*465724*/ OPC_CheckType, MVT::i32, ++/*465726*/ OPC_MoveParent, ++/*465727*/ OPC_MoveParent, ++/*465728*/ OPC_MoveChild1, ++/*465729*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*465732*/ OPC_Scope, 64, /*->465798*/ // 2 children in Scope ++/*465734*/ OPC_CheckChild0Same, 0, ++/*465736*/ OPC_CheckChild1Same, 1, ++/*465738*/ OPC_MoveParent, ++/*465739*/ OPC_MoveParent, ++/*465740*/ OPC_MoveParent, ++/*465741*/ OPC_MoveChild1, ++/*465742*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*465745*/ OPC_CheckChild0Integer, 1, ++/*465747*/ OPC_CheckChild0Type, MVT::i32, ++/*465749*/ OPC_CheckChild1Integer, 1, ++/*465751*/ OPC_CheckChild1Type, MVT::i32, ++/*465753*/ OPC_CheckChild2Integer, 1, ++/*465755*/ OPC_CheckChild2Type, MVT::i32, ++/*465757*/ OPC_CheckChild3Integer, 1, ++/*465759*/ OPC_CheckChild3Type, MVT::i32, ++/*465761*/ OPC_CheckChild4Integer, 1, ++/*465763*/ OPC_CheckChild4Type, MVT::i32, ++/*465765*/ OPC_MoveChild5, ++/*465766*/ OPC_CheckInteger, 1, ++/*465768*/ OPC_CheckType, MVT::i32, ++/*465770*/ OPC_MoveParent, ++/*465771*/ OPC_MoveChild6, ++/*465772*/ OPC_CheckInteger, 1, ++/*465774*/ OPC_CheckType, MVT::i32, ++/*465776*/ OPC_MoveParent, ++/*465777*/ OPC_MoveChild7, ++/*465778*/ OPC_CheckInteger, 1, ++/*465780*/ OPC_CheckType, MVT::i32, ++/*465782*/ OPC_MoveParent, ++/*465783*/ OPC_CheckType, MVT::v8i16, ++/*465785*/ OPC_MoveParent, ++/*465786*/ OPC_CheckType, MVT::v8i16, ++/*465788*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*465790*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*465798*/ /*Scope*/ 64, /*->465863*/ ++/*465799*/ OPC_CheckChild0Same, 1, ++/*465801*/ OPC_CheckChild1Same, 0, ++/*465803*/ OPC_MoveParent, ++/*465804*/ OPC_MoveParent, ++/*465805*/ OPC_MoveParent, ++/*465806*/ OPC_MoveChild1, ++/*465807*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*465810*/ OPC_CheckChild0Integer, 1, ++/*465812*/ OPC_CheckChild0Type, MVT::i32, ++/*465814*/ OPC_CheckChild1Integer, 1, ++/*465816*/ OPC_CheckChild1Type, MVT::i32, ++/*465818*/ OPC_CheckChild2Integer, 1, ++/*465820*/ OPC_CheckChild2Type, MVT::i32, ++/*465822*/ OPC_CheckChild3Integer, 1, ++/*465824*/ OPC_CheckChild3Type, MVT::i32, ++/*465826*/ OPC_CheckChild4Integer, 1, ++/*465828*/ OPC_CheckChild4Type, MVT::i32, ++/*465830*/ OPC_MoveChild5, ++/*465831*/ OPC_CheckInteger, 1, ++/*465833*/ OPC_CheckType, MVT::i32, ++/*465835*/ OPC_MoveParent, ++/*465836*/ OPC_MoveChild6, ++/*465837*/ OPC_CheckInteger, 1, ++/*465839*/ OPC_CheckType, MVT::i32, ++/*465841*/ OPC_MoveParent, ++/*465842*/ OPC_MoveChild7, ++/*465843*/ OPC_CheckInteger, 1, ++/*465845*/ OPC_CheckType, MVT::i32, ++/*465847*/ OPC_MoveParent, ++/*465848*/ OPC_CheckType, MVT::v8i16, ++/*465850*/ OPC_MoveParent, ++/*465851*/ OPC_CheckType, MVT::v8i16, ++/*465853*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*465855*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*465863*/ 0, /*End of Scope*/ ++/*465864*/ /*SwitchOpcode*/ 10|128,5/*650*/, TARGET_VAL(ISD::ADD),// ->466518 ++/*465868*/ OPC_Scope, 107, /*->465977*/ // 6 children in Scope ++/*465870*/ OPC_MoveChild0, ++/*465871*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*465874*/ OPC_CheckChild0Integer, 1, ++/*465876*/ OPC_CheckChild0Type, MVT::i32, ++/*465878*/ OPC_CheckChild1Integer, 1, ++/*465880*/ OPC_CheckChild1Type, MVT::i32, ++/*465882*/ OPC_CheckChild2Integer, 1, ++/*465884*/ OPC_CheckChild2Type, MVT::i32, ++/*465886*/ OPC_CheckChild3Integer, 1, ++/*465888*/ OPC_CheckChild3Type, MVT::i32, ++/*465890*/ OPC_CheckChild4Integer, 1, ++/*465892*/ OPC_CheckChild4Type, MVT::i32, ++/*465894*/ OPC_MoveChild5, ++/*465895*/ OPC_CheckInteger, 1, ++/*465897*/ OPC_CheckType, MVT::i32, ++/*465899*/ OPC_MoveParent, ++/*465900*/ OPC_MoveChild6, ++/*465901*/ OPC_CheckInteger, 1, ++/*465903*/ OPC_CheckType, MVT::i32, ++/*465905*/ OPC_MoveParent, ++/*465906*/ OPC_MoveChild7, ++/*465907*/ OPC_CheckInteger, 1, ++/*465909*/ OPC_CheckType, MVT::i32, ++/*465911*/ OPC_MoveParent, ++/*465912*/ OPC_MoveParent, ++/*465913*/ OPC_CheckChild1Same, 1, ++/*465915*/ OPC_MoveParent, ++/*465916*/ OPC_CheckChild1Same, 0, ++/*465918*/ OPC_MoveParent, ++/*465919*/ OPC_MoveParent, ++/*465920*/ OPC_MoveChild1, ++/*465921*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*465924*/ OPC_CheckChild0Integer, 1, ++/*465926*/ OPC_CheckChild0Type, MVT::i32, ++/*465928*/ OPC_CheckChild1Integer, 1, ++/*465930*/ OPC_CheckChild1Type, MVT::i32, ++/*465932*/ OPC_CheckChild2Integer, 1, ++/*465934*/ OPC_CheckChild2Type, MVT::i32, ++/*465936*/ OPC_CheckChild3Integer, 1, ++/*465938*/ OPC_CheckChild3Type, MVT::i32, ++/*465940*/ OPC_CheckChild4Integer, 1, ++/*465942*/ OPC_CheckChild4Type, MVT::i32, ++/*465944*/ OPC_MoveChild5, ++/*465945*/ OPC_CheckInteger, 1, ++/*465947*/ OPC_CheckType, MVT::i32, ++/*465949*/ OPC_MoveParent, ++/*465950*/ OPC_MoveChild6, ++/*465951*/ OPC_CheckInteger, 1, ++/*465953*/ OPC_CheckType, MVT::i32, ++/*465955*/ OPC_MoveParent, ++/*465956*/ OPC_MoveChild7, ++/*465957*/ OPC_CheckInteger, 1, ++/*465959*/ OPC_CheckType, MVT::i32, ++/*465961*/ OPC_MoveParent, ++/*465962*/ OPC_CheckType, MVT::v8i16, ++/*465964*/ OPC_MoveParent, ++/*465965*/ OPC_CheckType, MVT::v8i16, ++/*465967*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*465969*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a), LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*465977*/ /*Scope*/ 107, /*->466085*/ ++/*465978*/ OPC_CheckChild0Same, 1, ++/*465980*/ OPC_MoveChild1, ++/*465981*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*465984*/ OPC_CheckChild0Integer, 1, ++/*465986*/ OPC_CheckChild0Type, MVT::i32, ++/*465988*/ OPC_CheckChild1Integer, 1, ++/*465990*/ OPC_CheckChild1Type, MVT::i32, ++/*465992*/ OPC_CheckChild2Integer, 1, ++/*465994*/ OPC_CheckChild2Type, MVT::i32, ++/*465996*/ OPC_CheckChild3Integer, 1, ++/*465998*/ OPC_CheckChild3Type, MVT::i32, ++/*466000*/ OPC_CheckChild4Integer, 1, ++/*466002*/ OPC_CheckChild4Type, MVT::i32, ++/*466004*/ OPC_MoveChild5, ++/*466005*/ OPC_CheckInteger, 1, ++/*466007*/ OPC_CheckType, MVT::i32, ++/*466009*/ OPC_MoveParent, ++/*466010*/ OPC_MoveChild6, ++/*466011*/ OPC_CheckInteger, 1, ++/*466013*/ OPC_CheckType, MVT::i32, ++/*466015*/ OPC_MoveParent, ++/*466016*/ OPC_MoveChild7, ++/*466017*/ OPC_CheckInteger, 1, ++/*466019*/ OPC_CheckType, MVT::i32, ++/*466021*/ OPC_MoveParent, ++/*466022*/ OPC_MoveParent, ++/*466023*/ OPC_MoveParent, ++/*466024*/ OPC_CheckChild1Same, 0, ++/*466026*/ OPC_MoveParent, ++/*466027*/ OPC_MoveParent, ++/*466028*/ OPC_MoveChild1, ++/*466029*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*466032*/ OPC_CheckChild0Integer, 1, ++/*466034*/ OPC_CheckChild0Type, MVT::i32, ++/*466036*/ OPC_CheckChild1Integer, 1, ++/*466038*/ OPC_CheckChild1Type, MVT::i32, ++/*466040*/ OPC_CheckChild2Integer, 1, ++/*466042*/ OPC_CheckChild2Type, MVT::i32, ++/*466044*/ OPC_CheckChild3Integer, 1, ++/*466046*/ OPC_CheckChild3Type, MVT::i32, ++/*466048*/ OPC_CheckChild4Integer, 1, ++/*466050*/ OPC_CheckChild4Type, MVT::i32, ++/*466052*/ OPC_MoveChild5, ++/*466053*/ OPC_CheckInteger, 1, ++/*466055*/ OPC_CheckType, MVT::i32, ++/*466057*/ OPC_MoveParent, ++/*466058*/ OPC_MoveChild6, ++/*466059*/ OPC_CheckInteger, 1, ++/*466061*/ OPC_CheckType, MVT::i32, ++/*466063*/ OPC_MoveParent, ++/*466064*/ OPC_MoveChild7, ++/*466065*/ OPC_CheckInteger, 1, ++/*466067*/ OPC_CheckType, MVT::i32, ++/*466069*/ OPC_MoveParent, ++/*466070*/ OPC_CheckType, MVT::v8i16, ++/*466072*/ OPC_MoveParent, ++/*466073*/ OPC_CheckType, MVT::v8i16, ++/*466075*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*466077*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*466085*/ /*Scope*/ 107, /*->466193*/ ++/*466086*/ OPC_MoveChild0, ++/*466087*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*466090*/ OPC_CheckChild0Integer, 1, ++/*466092*/ OPC_CheckChild0Type, MVT::i32, ++/*466094*/ OPC_CheckChild1Integer, 1, ++/*466096*/ OPC_CheckChild1Type, MVT::i32, ++/*466098*/ OPC_CheckChild2Integer, 1, ++/*466100*/ OPC_CheckChild2Type, MVT::i32, ++/*466102*/ OPC_CheckChild3Integer, 1, ++/*466104*/ OPC_CheckChild3Type, MVT::i32, ++/*466106*/ OPC_CheckChild4Integer, 1, ++/*466108*/ OPC_CheckChild4Type, MVT::i32, ++/*466110*/ OPC_MoveChild5, ++/*466111*/ OPC_CheckInteger, 1, ++/*466113*/ OPC_CheckType, MVT::i32, ++/*466115*/ OPC_MoveParent, ++/*466116*/ OPC_MoveChild6, ++/*466117*/ OPC_CheckInteger, 1, ++/*466119*/ OPC_CheckType, MVT::i32, ++/*466121*/ OPC_MoveParent, ++/*466122*/ OPC_MoveChild7, ++/*466123*/ OPC_CheckInteger, 1, ++/*466125*/ OPC_CheckType, MVT::i32, ++/*466127*/ OPC_MoveParent, ++/*466128*/ OPC_MoveParent, ++/*466129*/ OPC_CheckChild1Same, 0, ++/*466131*/ OPC_MoveParent, ++/*466132*/ OPC_CheckChild1Same, 1, ++/*466134*/ OPC_MoveParent, ++/*466135*/ OPC_MoveParent, ++/*466136*/ OPC_MoveChild1, ++/*466137*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*466140*/ OPC_CheckChild0Integer, 1, ++/*466142*/ OPC_CheckChild0Type, MVT::i32, ++/*466144*/ OPC_CheckChild1Integer, 1, ++/*466146*/ OPC_CheckChild1Type, MVT::i32, ++/*466148*/ OPC_CheckChild2Integer, 1, ++/*466150*/ OPC_CheckChild2Type, MVT::i32, ++/*466152*/ OPC_CheckChild3Integer, 1, ++/*466154*/ OPC_CheckChild3Type, MVT::i32, ++/*466156*/ OPC_CheckChild4Integer, 1, ++/*466158*/ OPC_CheckChild4Type, MVT::i32, ++/*466160*/ OPC_MoveChild5, ++/*466161*/ OPC_CheckInteger, 1, ++/*466163*/ OPC_CheckType, MVT::i32, ++/*466165*/ OPC_MoveParent, ++/*466166*/ OPC_MoveChild6, ++/*466167*/ OPC_CheckInteger, 1, ++/*466169*/ OPC_CheckType, MVT::i32, ++/*466171*/ OPC_MoveParent, ++/*466172*/ OPC_MoveChild7, ++/*466173*/ OPC_CheckInteger, 1, ++/*466175*/ OPC_CheckType, MVT::i32, ++/*466177*/ OPC_MoveParent, ++/*466178*/ OPC_CheckType, MVT::v8i16, ++/*466180*/ OPC_MoveParent, ++/*466181*/ OPC_CheckType, MVT::v8i16, ++/*466183*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*466185*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b), LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*466193*/ /*Scope*/ 107, /*->466301*/ ++/*466194*/ OPC_CheckChild0Same, 0, ++/*466196*/ OPC_MoveChild1, ++/*466197*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*466200*/ OPC_CheckChild0Integer, 1, ++/*466202*/ OPC_CheckChild0Type, MVT::i32, ++/*466204*/ OPC_CheckChild1Integer, 1, ++/*466206*/ OPC_CheckChild1Type, MVT::i32, ++/*466208*/ OPC_CheckChild2Integer, 1, ++/*466210*/ OPC_CheckChild2Type, MVT::i32, ++/*466212*/ OPC_CheckChild3Integer, 1, ++/*466214*/ OPC_CheckChild3Type, MVT::i32, ++/*466216*/ OPC_CheckChild4Integer, 1, ++/*466218*/ OPC_CheckChild4Type, MVT::i32, ++/*466220*/ OPC_MoveChild5, ++/*466221*/ OPC_CheckInteger, 1, ++/*466223*/ OPC_CheckType, MVT::i32, ++/*466225*/ OPC_MoveParent, ++/*466226*/ OPC_MoveChild6, ++/*466227*/ OPC_CheckInteger, 1, ++/*466229*/ OPC_CheckType, MVT::i32, ++/*466231*/ OPC_MoveParent, ++/*466232*/ OPC_MoveChild7, ++/*466233*/ OPC_CheckInteger, 1, ++/*466235*/ OPC_CheckType, MVT::i32, ++/*466237*/ OPC_MoveParent, ++/*466238*/ OPC_MoveParent, ++/*466239*/ OPC_MoveParent, ++/*466240*/ OPC_CheckChild1Same, 1, ++/*466242*/ OPC_MoveParent, ++/*466243*/ OPC_MoveParent, ++/*466244*/ OPC_MoveChild1, ++/*466245*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*466248*/ OPC_CheckChild0Integer, 1, ++/*466250*/ OPC_CheckChild0Type, MVT::i32, ++/*466252*/ OPC_CheckChild1Integer, 1, ++/*466254*/ OPC_CheckChild1Type, MVT::i32, ++/*466256*/ OPC_CheckChild2Integer, 1, ++/*466258*/ OPC_CheckChild2Type, MVT::i32, ++/*466260*/ OPC_CheckChild3Integer, 1, ++/*466262*/ OPC_CheckChild3Type, MVT::i32, ++/*466264*/ OPC_CheckChild4Integer, 1, ++/*466266*/ OPC_CheckChild4Type, MVT::i32, ++/*466268*/ OPC_MoveChild5, ++/*466269*/ OPC_CheckInteger, 1, ++/*466271*/ OPC_CheckType, MVT::i32, ++/*466273*/ OPC_MoveParent, ++/*466274*/ OPC_MoveChild6, ++/*466275*/ OPC_CheckInteger, 1, ++/*466277*/ OPC_CheckType, MVT::i32, ++/*466279*/ OPC_MoveParent, ++/*466280*/ OPC_MoveChild7, ++/*466281*/ OPC_CheckInteger, 1, ++/*466283*/ OPC_CheckType, MVT::i32, ++/*466285*/ OPC_MoveParent, ++/*466286*/ OPC_CheckType, MVT::v8i16, ++/*466288*/ OPC_MoveParent, ++/*466289*/ OPC_CheckType, MVT::v8i16, ++/*466291*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*466293*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*466301*/ /*Scope*/ 107, /*->466409*/ ++/*466302*/ OPC_CheckChild0Same, 1, ++/*466304*/ OPC_CheckChild1Same, 0, ++/*466306*/ OPC_MoveParent, ++/*466307*/ OPC_MoveChild1, ++/*466308*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*466311*/ OPC_CheckChild0Integer, 1, ++/*466313*/ OPC_CheckChild0Type, MVT::i32, ++/*466315*/ OPC_CheckChild1Integer, 1, ++/*466317*/ OPC_CheckChild1Type, MVT::i32, ++/*466319*/ OPC_CheckChild2Integer, 1, ++/*466321*/ OPC_CheckChild2Type, MVT::i32, ++/*466323*/ OPC_CheckChild3Integer, 1, ++/*466325*/ OPC_CheckChild3Type, MVT::i32, ++/*466327*/ OPC_CheckChild4Integer, 1, ++/*466329*/ OPC_CheckChild4Type, MVT::i32, ++/*466331*/ OPC_MoveChild5, ++/*466332*/ OPC_CheckInteger, 1, ++/*466334*/ OPC_CheckType, MVT::i32, ++/*466336*/ OPC_MoveParent, ++/*466337*/ OPC_MoveChild6, ++/*466338*/ OPC_CheckInteger, 1, ++/*466340*/ OPC_CheckType, MVT::i32, ++/*466342*/ OPC_MoveParent, ++/*466343*/ OPC_MoveChild7, ++/*466344*/ OPC_CheckInteger, 1, ++/*466346*/ OPC_CheckType, MVT::i32, ++/*466348*/ OPC_MoveParent, ++/*466349*/ OPC_MoveParent, ++/*466350*/ OPC_MoveParent, ++/*466351*/ OPC_MoveParent, ++/*466352*/ OPC_MoveChild1, ++/*466353*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*466356*/ OPC_CheckChild0Integer, 1, ++/*466358*/ OPC_CheckChild0Type, MVT::i32, ++/*466360*/ OPC_CheckChild1Integer, 1, ++/*466362*/ OPC_CheckChild1Type, MVT::i32, ++/*466364*/ OPC_CheckChild2Integer, 1, ++/*466366*/ OPC_CheckChild2Type, MVT::i32, ++/*466368*/ OPC_CheckChild3Integer, 1, ++/*466370*/ OPC_CheckChild3Type, MVT::i32, ++/*466372*/ OPC_CheckChild4Integer, 1, ++/*466374*/ OPC_CheckChild4Type, MVT::i32, ++/*466376*/ OPC_MoveChild5, ++/*466377*/ OPC_CheckInteger, 1, ++/*466379*/ OPC_CheckType, MVT::i32, ++/*466381*/ OPC_MoveParent, ++/*466382*/ OPC_MoveChild6, ++/*466383*/ OPC_CheckInteger, 1, ++/*466385*/ OPC_CheckType, MVT::i32, ++/*466387*/ OPC_MoveParent, ++/*466388*/ OPC_MoveChild7, ++/*466389*/ OPC_CheckInteger, 1, ++/*466391*/ OPC_CheckType, MVT::i32, ++/*466393*/ OPC_MoveParent, ++/*466394*/ OPC_CheckType, MVT::v8i16, ++/*466396*/ OPC_MoveParent, ++/*466397*/ OPC_CheckType, MVT::v8i16, ++/*466399*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*466401*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*466409*/ /*Scope*/ 107, /*->466517*/ ++/*466410*/ OPC_CheckChild0Same, 0, ++/*466412*/ OPC_CheckChild1Same, 1, ++/*466414*/ OPC_MoveParent, ++/*466415*/ OPC_MoveChild1, ++/*466416*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*466419*/ OPC_CheckChild0Integer, 1, ++/*466421*/ OPC_CheckChild0Type, MVT::i32, ++/*466423*/ OPC_CheckChild1Integer, 1, ++/*466425*/ OPC_CheckChild1Type, MVT::i32, ++/*466427*/ OPC_CheckChild2Integer, 1, ++/*466429*/ OPC_CheckChild2Type, MVT::i32, ++/*466431*/ OPC_CheckChild3Integer, 1, ++/*466433*/ OPC_CheckChild3Type, MVT::i32, ++/*466435*/ OPC_CheckChild4Integer, 1, ++/*466437*/ OPC_CheckChild4Type, MVT::i32, ++/*466439*/ OPC_MoveChild5, ++/*466440*/ OPC_CheckInteger, 1, ++/*466442*/ OPC_CheckType, MVT::i32, ++/*466444*/ OPC_MoveParent, ++/*466445*/ OPC_MoveChild6, ++/*466446*/ OPC_CheckInteger, 1, ++/*466448*/ OPC_CheckType, MVT::i32, ++/*466450*/ OPC_MoveParent, ++/*466451*/ OPC_MoveChild7, ++/*466452*/ OPC_CheckInteger, 1, ++/*466454*/ OPC_CheckType, MVT::i32, ++/*466456*/ OPC_MoveParent, ++/*466457*/ OPC_MoveParent, ++/*466458*/ OPC_MoveParent, ++/*466459*/ OPC_MoveParent, ++/*466460*/ OPC_MoveChild1, ++/*466461*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*466464*/ OPC_CheckChild0Integer, 1, ++/*466466*/ OPC_CheckChild0Type, MVT::i32, ++/*466468*/ OPC_CheckChild1Integer, 1, ++/*466470*/ OPC_CheckChild1Type, MVT::i32, ++/*466472*/ OPC_CheckChild2Integer, 1, ++/*466474*/ OPC_CheckChild2Type, MVT::i32, ++/*466476*/ OPC_CheckChild3Integer, 1, ++/*466478*/ OPC_CheckChild3Type, MVT::i32, ++/*466480*/ OPC_CheckChild4Integer, 1, ++/*466482*/ OPC_CheckChild4Type, MVT::i32, ++/*466484*/ OPC_MoveChild5, ++/*466485*/ OPC_CheckInteger, 1, ++/*466487*/ OPC_CheckType, MVT::i32, ++/*466489*/ OPC_MoveParent, ++/*466490*/ OPC_MoveChild6, ++/*466491*/ OPC_CheckInteger, 1, ++/*466493*/ OPC_CheckType, MVT::i32, ++/*466495*/ OPC_MoveParent, ++/*466496*/ OPC_MoveChild7, ++/*466497*/ OPC_CheckInteger, 1, ++/*466499*/ OPC_CheckType, MVT::i32, ++/*466501*/ OPC_MoveParent, ++/*466502*/ OPC_CheckType, MVT::v8i16, ++/*466504*/ OPC_MoveParent, ++/*466505*/ OPC_CheckType, MVT::v8i16, ++/*466507*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*466509*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*466517*/ 0, /*End of Scope*/ ++/*466518*/ 0, // EndSwitchOpcode ++/*466519*/ /*Scope*/ 92|128,1/*220*/, /*->466741*/ ++/*466521*/ OPC_CheckChild0Same, 0, ++/*466523*/ OPC_MoveChild1, ++/*466524*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*466527*/ OPC_Scope, 105, /*->466634*/ // 2 children in Scope ++/*466529*/ OPC_MoveChild0, ++/*466530*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*466533*/ OPC_CheckChild0Integer, 1, ++/*466535*/ OPC_CheckChild0Type, MVT::i32, ++/*466537*/ OPC_CheckChild1Integer, 1, ++/*466539*/ OPC_CheckChild1Type, MVT::i32, ++/*466541*/ OPC_CheckChild2Integer, 1, ++/*466543*/ OPC_CheckChild2Type, MVT::i32, ++/*466545*/ OPC_CheckChild3Integer, 1, ++/*466547*/ OPC_CheckChild3Type, MVT::i32, ++/*466549*/ OPC_CheckChild4Integer, 1, ++/*466551*/ OPC_CheckChild4Type, MVT::i32, ++/*466553*/ OPC_MoveChild5, ++/*466554*/ OPC_CheckInteger, 1, ++/*466556*/ OPC_CheckType, MVT::i32, ++/*466558*/ OPC_MoveParent, ++/*466559*/ OPC_MoveChild6, ++/*466560*/ OPC_CheckInteger, 1, ++/*466562*/ OPC_CheckType, MVT::i32, ++/*466564*/ OPC_MoveParent, ++/*466565*/ OPC_MoveChild7, ++/*466566*/ OPC_CheckInteger, 1, ++/*466568*/ OPC_CheckType, MVT::i32, ++/*466570*/ OPC_MoveParent, ++/*466571*/ OPC_MoveParent, ++/*466572*/ OPC_CheckChild1Same, 1, ++/*466574*/ OPC_MoveParent, ++/*466575*/ OPC_MoveParent, ++/*466576*/ OPC_MoveParent, ++/*466577*/ OPC_MoveChild1, ++/*466578*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*466581*/ OPC_CheckChild0Integer, 1, ++/*466583*/ OPC_CheckChild0Type, MVT::i32, ++/*466585*/ OPC_CheckChild1Integer, 1, ++/*466587*/ OPC_CheckChild1Type, MVT::i32, ++/*466589*/ OPC_CheckChild2Integer, 1, ++/*466591*/ OPC_CheckChild2Type, MVT::i32, ++/*466593*/ OPC_CheckChild3Integer, 1, ++/*466595*/ OPC_CheckChild3Type, MVT::i32, ++/*466597*/ OPC_CheckChild4Integer, 1, ++/*466599*/ OPC_CheckChild4Type, MVT::i32, ++/*466601*/ OPC_MoveChild5, ++/*466602*/ OPC_CheckInteger, 1, ++/*466604*/ OPC_CheckType, MVT::i32, ++/*466606*/ OPC_MoveParent, ++/*466607*/ OPC_MoveChild6, ++/*466608*/ OPC_CheckInteger, 1, ++/*466610*/ OPC_CheckType, MVT::i32, ++/*466612*/ OPC_MoveParent, ++/*466613*/ OPC_MoveChild7, ++/*466614*/ OPC_CheckInteger, 1, ++/*466616*/ OPC_CheckType, MVT::i32, ++/*466618*/ OPC_MoveParent, ++/*466619*/ OPC_CheckType, MVT::v8i16, ++/*466621*/ OPC_MoveParent, ++/*466622*/ OPC_CheckType, MVT::v8i16, ++/*466624*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*466626*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*466634*/ /*Scope*/ 105, /*->466740*/ ++/*466635*/ OPC_CheckChild0Same, 1, ++/*466637*/ OPC_MoveChild1, ++/*466638*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*466641*/ OPC_CheckChild0Integer, 1, ++/*466643*/ OPC_CheckChild0Type, MVT::i32, ++/*466645*/ OPC_CheckChild1Integer, 1, ++/*466647*/ OPC_CheckChild1Type, MVT::i32, ++/*466649*/ OPC_CheckChild2Integer, 1, ++/*466651*/ OPC_CheckChild2Type, MVT::i32, ++/*466653*/ OPC_CheckChild3Integer, 1, ++/*466655*/ OPC_CheckChild3Type, MVT::i32, ++/*466657*/ OPC_CheckChild4Integer, 1, ++/*466659*/ OPC_CheckChild4Type, MVT::i32, ++/*466661*/ OPC_MoveChild5, ++/*466662*/ OPC_CheckInteger, 1, ++/*466664*/ OPC_CheckType, MVT::i32, ++/*466666*/ OPC_MoveParent, ++/*466667*/ OPC_MoveChild6, ++/*466668*/ OPC_CheckInteger, 1, ++/*466670*/ OPC_CheckType, MVT::i32, ++/*466672*/ OPC_MoveParent, ++/*466673*/ OPC_MoveChild7, ++/*466674*/ OPC_CheckInteger, 1, ++/*466676*/ OPC_CheckType, MVT::i32, ++/*466678*/ OPC_MoveParent, ++/*466679*/ OPC_MoveParent, ++/*466680*/ OPC_MoveParent, ++/*466681*/ OPC_MoveParent, ++/*466682*/ OPC_MoveParent, ++/*466683*/ OPC_MoveChild1, ++/*466684*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*466687*/ OPC_CheckChild0Integer, 1, ++/*466689*/ OPC_CheckChild0Type, MVT::i32, ++/*466691*/ OPC_CheckChild1Integer, 1, ++/*466693*/ OPC_CheckChild1Type, MVT::i32, ++/*466695*/ OPC_CheckChild2Integer, 1, ++/*466697*/ OPC_CheckChild2Type, MVT::i32, ++/*466699*/ OPC_CheckChild3Integer, 1, ++/*466701*/ OPC_CheckChild3Type, MVT::i32, ++/*466703*/ OPC_CheckChild4Integer, 1, ++/*466705*/ OPC_CheckChild4Type, MVT::i32, ++/*466707*/ OPC_MoveChild5, ++/*466708*/ OPC_CheckInteger, 1, ++/*466710*/ OPC_CheckType, MVT::i32, ++/*466712*/ OPC_MoveParent, ++/*466713*/ OPC_MoveChild6, ++/*466714*/ OPC_CheckInteger, 1, ++/*466716*/ OPC_CheckType, MVT::i32, ++/*466718*/ OPC_MoveParent, ++/*466719*/ OPC_MoveChild7, ++/*466720*/ OPC_CheckInteger, 1, ++/*466722*/ OPC_CheckType, MVT::i32, ++/*466724*/ OPC_MoveParent, ++/*466725*/ OPC_CheckType, MVT::v8i16, ++/*466727*/ OPC_MoveParent, ++/*466728*/ OPC_CheckType, MVT::v8i16, ++/*466730*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*466732*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*466740*/ 0, /*End of Scope*/ ++/*466741*/ /*Scope*/ 92|128,1/*220*/, /*->466963*/ ++/*466743*/ OPC_CheckChild0Same, 1, ++/*466745*/ OPC_MoveChild1, ++/*466746*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*466749*/ OPC_Scope, 105, /*->466856*/ // 2 children in Scope ++/*466751*/ OPC_MoveChild0, ++/*466752*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*466755*/ OPC_CheckChild0Integer, 1, ++/*466757*/ OPC_CheckChild0Type, MVT::i32, ++/*466759*/ OPC_CheckChild1Integer, 1, ++/*466761*/ OPC_CheckChild1Type, MVT::i32, ++/*466763*/ OPC_CheckChild2Integer, 1, ++/*466765*/ OPC_CheckChild2Type, MVT::i32, ++/*466767*/ OPC_CheckChild3Integer, 1, ++/*466769*/ OPC_CheckChild3Type, MVT::i32, ++/*466771*/ OPC_CheckChild4Integer, 1, ++/*466773*/ OPC_CheckChild4Type, MVT::i32, ++/*466775*/ OPC_MoveChild5, ++/*466776*/ OPC_CheckInteger, 1, ++/*466778*/ OPC_CheckType, MVT::i32, ++/*466780*/ OPC_MoveParent, ++/*466781*/ OPC_MoveChild6, ++/*466782*/ OPC_CheckInteger, 1, ++/*466784*/ OPC_CheckType, MVT::i32, ++/*466786*/ OPC_MoveParent, ++/*466787*/ OPC_MoveChild7, ++/*466788*/ OPC_CheckInteger, 1, ++/*466790*/ OPC_CheckType, MVT::i32, ++/*466792*/ OPC_MoveParent, ++/*466793*/ OPC_MoveParent, ++/*466794*/ OPC_CheckChild1Same, 0, ++/*466796*/ OPC_MoveParent, ++/*466797*/ OPC_MoveParent, ++/*466798*/ OPC_MoveParent, ++/*466799*/ OPC_MoveChild1, ++/*466800*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*466803*/ OPC_CheckChild0Integer, 1, ++/*466805*/ OPC_CheckChild0Type, MVT::i32, ++/*466807*/ OPC_CheckChild1Integer, 1, ++/*466809*/ OPC_CheckChild1Type, MVT::i32, ++/*466811*/ OPC_CheckChild2Integer, 1, ++/*466813*/ OPC_CheckChild2Type, MVT::i32, ++/*466815*/ OPC_CheckChild3Integer, 1, ++/*466817*/ OPC_CheckChild3Type, MVT::i32, ++/*466819*/ OPC_CheckChild4Integer, 1, ++/*466821*/ OPC_CheckChild4Type, MVT::i32, ++/*466823*/ OPC_MoveChild5, ++/*466824*/ OPC_CheckInteger, 1, ++/*466826*/ OPC_CheckType, MVT::i32, ++/*466828*/ OPC_MoveParent, ++/*466829*/ OPC_MoveChild6, ++/*466830*/ OPC_CheckInteger, 1, ++/*466832*/ OPC_CheckType, MVT::i32, ++/*466834*/ OPC_MoveParent, ++/*466835*/ OPC_MoveChild7, ++/*466836*/ OPC_CheckInteger, 1, ++/*466838*/ OPC_CheckType, MVT::i32, ++/*466840*/ OPC_MoveParent, ++/*466841*/ OPC_CheckType, MVT::v8i16, ++/*466843*/ OPC_MoveParent, ++/*466844*/ OPC_CheckType, MVT::v8i16, ++/*466846*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*466848*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*466856*/ /*Scope*/ 105, /*->466962*/ ++/*466857*/ OPC_CheckChild0Same, 0, ++/*466859*/ OPC_MoveChild1, ++/*466860*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*466863*/ OPC_CheckChild0Integer, 1, ++/*466865*/ OPC_CheckChild0Type, MVT::i32, ++/*466867*/ OPC_CheckChild1Integer, 1, ++/*466869*/ OPC_CheckChild1Type, MVT::i32, ++/*466871*/ OPC_CheckChild2Integer, 1, ++/*466873*/ OPC_CheckChild2Type, MVT::i32, ++/*466875*/ OPC_CheckChild3Integer, 1, ++/*466877*/ OPC_CheckChild3Type, MVT::i32, ++/*466879*/ OPC_CheckChild4Integer, 1, ++/*466881*/ OPC_CheckChild4Type, MVT::i32, ++/*466883*/ OPC_MoveChild5, ++/*466884*/ OPC_CheckInteger, 1, ++/*466886*/ OPC_CheckType, MVT::i32, ++/*466888*/ OPC_MoveParent, ++/*466889*/ OPC_MoveChild6, ++/*466890*/ OPC_CheckInteger, 1, ++/*466892*/ OPC_CheckType, MVT::i32, ++/*466894*/ OPC_MoveParent, ++/*466895*/ OPC_MoveChild7, ++/*466896*/ OPC_CheckInteger, 1, ++/*466898*/ OPC_CheckType, MVT::i32, ++/*466900*/ OPC_MoveParent, ++/*466901*/ OPC_MoveParent, ++/*466902*/ OPC_MoveParent, ++/*466903*/ OPC_MoveParent, ++/*466904*/ OPC_MoveParent, ++/*466905*/ OPC_MoveChild1, ++/*466906*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*466909*/ OPC_CheckChild0Integer, 1, ++/*466911*/ OPC_CheckChild0Type, MVT::i32, ++/*466913*/ OPC_CheckChild1Integer, 1, ++/*466915*/ OPC_CheckChild1Type, MVT::i32, ++/*466917*/ OPC_CheckChild2Integer, 1, ++/*466919*/ OPC_CheckChild2Type, MVT::i32, ++/*466921*/ OPC_CheckChild3Integer, 1, ++/*466923*/ OPC_CheckChild3Type, MVT::i32, ++/*466925*/ OPC_CheckChild4Integer, 1, ++/*466927*/ OPC_CheckChild4Type, MVT::i32, ++/*466929*/ OPC_MoveChild5, ++/*466930*/ OPC_CheckInteger, 1, ++/*466932*/ OPC_CheckType, MVT::i32, ++/*466934*/ OPC_MoveParent, ++/*466935*/ OPC_MoveChild6, ++/*466936*/ OPC_CheckInteger, 1, ++/*466938*/ OPC_CheckType, MVT::i32, ++/*466940*/ OPC_MoveParent, ++/*466941*/ OPC_MoveChild7, ++/*466942*/ OPC_CheckInteger, 1, ++/*466944*/ OPC_CheckType, MVT::i32, ++/*466946*/ OPC_MoveParent, ++/*466947*/ OPC_CheckType, MVT::v8i16, ++/*466949*/ OPC_MoveParent, ++/*466950*/ OPC_CheckType, MVT::v8i16, ++/*466952*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*466954*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*466962*/ 0, /*End of Scope*/ ++/*466963*/ /*Scope*/ 51|128,1/*179*/, /*->467144*/ ++/*466965*/ OPC_MoveChild0, ++/*466966*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*466969*/ OPC_CheckChild0Integer, 1, ++/*466971*/ OPC_CheckChild0Type, MVT::i32, ++/*466973*/ OPC_CheckChild1Integer, 1, ++/*466975*/ OPC_CheckChild1Type, MVT::i32, ++/*466977*/ OPC_CheckChild2Integer, 1, ++/*466979*/ OPC_CheckChild2Type, MVT::i32, ++/*466981*/ OPC_CheckChild3Integer, 1, ++/*466983*/ OPC_CheckChild3Type, MVT::i32, ++/*466985*/ OPC_CheckChild4Integer, 1, ++/*466987*/ OPC_CheckChild4Type, MVT::i32, ++/*466989*/ OPC_MoveChild5, ++/*466990*/ OPC_CheckInteger, 1, ++/*466992*/ OPC_CheckType, MVT::i32, ++/*466994*/ OPC_MoveParent, ++/*466995*/ OPC_MoveChild6, ++/*466996*/ OPC_CheckInteger, 1, ++/*466998*/ OPC_CheckType, MVT::i32, ++/*467000*/ OPC_MoveParent, ++/*467001*/ OPC_MoveChild7, ++/*467002*/ OPC_CheckInteger, 1, ++/*467004*/ OPC_CheckType, MVT::i32, ++/*467006*/ OPC_MoveParent, ++/*467007*/ OPC_MoveParent, ++/*467008*/ OPC_MoveChild1, ++/*467009*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*467012*/ OPC_Scope, 64, /*->467078*/ // 2 children in Scope ++/*467014*/ OPC_CheckChild0Same, 1, ++/*467016*/ OPC_CheckChild1Same, 0, ++/*467018*/ OPC_MoveParent, ++/*467019*/ OPC_MoveParent, ++/*467020*/ OPC_MoveParent, ++/*467021*/ OPC_MoveChild1, ++/*467022*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*467025*/ OPC_CheckChild0Integer, 1, ++/*467027*/ OPC_CheckChild0Type, MVT::i32, ++/*467029*/ OPC_CheckChild1Integer, 1, ++/*467031*/ OPC_CheckChild1Type, MVT::i32, ++/*467033*/ OPC_CheckChild2Integer, 1, ++/*467035*/ OPC_CheckChild2Type, MVT::i32, ++/*467037*/ OPC_CheckChild3Integer, 1, ++/*467039*/ OPC_CheckChild3Type, MVT::i32, ++/*467041*/ OPC_CheckChild4Integer, 1, ++/*467043*/ OPC_CheckChild4Type, MVT::i32, ++/*467045*/ OPC_MoveChild5, ++/*467046*/ OPC_CheckInteger, 1, ++/*467048*/ OPC_CheckType, MVT::i32, ++/*467050*/ OPC_MoveParent, ++/*467051*/ OPC_MoveChild6, ++/*467052*/ OPC_CheckInteger, 1, ++/*467054*/ OPC_CheckType, MVT::i32, ++/*467056*/ OPC_MoveParent, ++/*467057*/ OPC_MoveChild7, ++/*467058*/ OPC_CheckInteger, 1, ++/*467060*/ OPC_CheckType, MVT::i32, ++/*467062*/ OPC_MoveParent, ++/*467063*/ OPC_CheckType, MVT::v8i16, ++/*467065*/ OPC_MoveParent, ++/*467066*/ OPC_CheckType, MVT::v8i16, ++/*467068*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*467070*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*467078*/ /*Scope*/ 64, /*->467143*/ ++/*467079*/ OPC_CheckChild0Same, 0, ++/*467081*/ OPC_CheckChild1Same, 1, ++/*467083*/ OPC_MoveParent, ++/*467084*/ OPC_MoveParent, ++/*467085*/ OPC_MoveParent, ++/*467086*/ OPC_MoveChild1, ++/*467087*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*467090*/ OPC_CheckChild0Integer, 1, ++/*467092*/ OPC_CheckChild0Type, MVT::i32, ++/*467094*/ OPC_CheckChild1Integer, 1, ++/*467096*/ OPC_CheckChild1Type, MVT::i32, ++/*467098*/ OPC_CheckChild2Integer, 1, ++/*467100*/ OPC_CheckChild2Type, MVT::i32, ++/*467102*/ OPC_CheckChild3Integer, 1, ++/*467104*/ OPC_CheckChild3Type, MVT::i32, ++/*467106*/ OPC_CheckChild4Integer, 1, ++/*467108*/ OPC_CheckChild4Type, MVT::i32, ++/*467110*/ OPC_MoveChild5, ++/*467111*/ OPC_CheckInteger, 1, ++/*467113*/ OPC_CheckType, MVT::i32, ++/*467115*/ OPC_MoveParent, ++/*467116*/ OPC_MoveChild6, ++/*467117*/ OPC_CheckInteger, 1, ++/*467119*/ OPC_CheckType, MVT::i32, ++/*467121*/ OPC_MoveParent, ++/*467122*/ OPC_MoveChild7, ++/*467123*/ OPC_CheckInteger, 1, ++/*467125*/ OPC_CheckType, MVT::i32, ++/*467127*/ OPC_MoveParent, ++/*467128*/ OPC_CheckType, MVT::v8i16, ++/*467130*/ OPC_MoveParent, ++/*467131*/ OPC_CheckType, MVT::v8i16, ++/*467133*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*467135*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*467143*/ 0, /*End of Scope*/ ++/*467144*/ 0, /*End of Scope*/ ++/*467145*/ 0, /*End of Scope*/ ++/*467146*/ 0, /*End of Scope*/ ++/*467147*/ /*Scope*/ 27|128,43/*5531*/, /*->472680*/ ++/*467149*/ OPC_RecordChild0, // #0 = $b ++/*467150*/ OPC_MoveChild1, ++/*467151*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*467154*/ OPC_Scope, 99|128,10/*1379*/, /*->468536*/ // 4 children in Scope ++/*467157*/ OPC_MoveChild0, ++/*467158*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*467161*/ OPC_CheckChild0Integer, 1, ++/*467163*/ OPC_CheckChild0Type, MVT::i32, ++/*467165*/ OPC_CheckChild1Integer, 1, ++/*467167*/ OPC_CheckChild1Type, MVT::i32, ++/*467169*/ OPC_CheckChild2Integer, 1, ++/*467171*/ OPC_CheckChild2Type, MVT::i32, ++/*467173*/ OPC_CheckChild3Integer, 1, ++/*467175*/ OPC_CheckChild3Type, MVT::i32, ++/*467177*/ OPC_CheckChild4Integer, 1, ++/*467179*/ OPC_CheckChild4Type, MVT::i32, ++/*467181*/ OPC_MoveChild5, ++/*467182*/ OPC_CheckInteger, 1, ++/*467184*/ OPC_CheckType, MVT::i32, ++/*467186*/ OPC_MoveParent, ++/*467187*/ OPC_MoveChild6, ++/*467188*/ OPC_CheckInteger, 1, ++/*467190*/ OPC_CheckType, MVT::i32, ++/*467192*/ OPC_MoveParent, ++/*467193*/ OPC_MoveChild7, ++/*467194*/ OPC_CheckInteger, 1, ++/*467196*/ OPC_CheckType, MVT::i32, ++/*467198*/ OPC_MoveParent, ++/*467199*/ OPC_MoveParent, ++/*467200*/ OPC_RecordChild1, // #1 = $a ++/*467201*/ OPC_MoveParent, ++/*467202*/ OPC_MoveParent, ++/*467203*/ OPC_MoveChild1, ++/*467204*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*467207*/ OPC_CheckChild0Integer, 15, ++/*467209*/ OPC_CheckChild0Type, MVT::i32, ++/*467211*/ OPC_CheckChild1Integer, 15, ++/*467213*/ OPC_CheckChild1Type, MVT::i32, ++/*467215*/ OPC_CheckChild2Integer, 15, ++/*467217*/ OPC_CheckChild2Type, MVT::i32, ++/*467219*/ OPC_CheckChild3Integer, 15, ++/*467221*/ OPC_CheckChild3Type, MVT::i32, ++/*467223*/ OPC_CheckChild4Integer, 15, ++/*467225*/ OPC_CheckChild4Type, MVT::i32, ++/*467227*/ OPC_MoveChild5, ++/*467228*/ OPC_CheckInteger, 15, ++/*467230*/ OPC_CheckType, MVT::i32, ++/*467232*/ OPC_MoveParent, ++/*467233*/ OPC_MoveChild6, ++/*467234*/ OPC_CheckInteger, 15, ++/*467236*/ OPC_CheckType, MVT::i32, ++/*467238*/ OPC_MoveParent, ++/*467239*/ OPC_MoveChild7, ++/*467240*/ OPC_CheckInteger, 15, ++/*467242*/ OPC_CheckType, MVT::i32, ++/*467244*/ OPC_MoveParent, ++/*467245*/ OPC_CheckType, MVT::v8i16, ++/*467247*/ OPC_MoveParent, ++/*467248*/ OPC_MoveParent, ++/*467249*/ OPC_MoveChild1, ++/*467250*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*467253*/ OPC_Scope, 14|128,5/*654*/, /*->467910*/ // 4 children in Scope ++/*467256*/ OPC_MoveChild0, ++/*467257*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*467260*/ OPC_Scope, 107, /*->467369*/ // 6 children in Scope ++/*467262*/ OPC_MoveChild0, ++/*467263*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*467266*/ OPC_CheckChild0Integer, 1, ++/*467268*/ OPC_CheckChild0Type, MVT::i32, ++/*467270*/ OPC_CheckChild1Integer, 1, ++/*467272*/ OPC_CheckChild1Type, MVT::i32, ++/*467274*/ OPC_CheckChild2Integer, 1, ++/*467276*/ OPC_CheckChild2Type, MVT::i32, ++/*467278*/ OPC_CheckChild3Integer, 1, ++/*467280*/ OPC_CheckChild3Type, MVT::i32, ++/*467282*/ OPC_CheckChild4Integer, 1, ++/*467284*/ OPC_CheckChild4Type, MVT::i32, ++/*467286*/ OPC_MoveChild5, ++/*467287*/ OPC_CheckInteger, 1, ++/*467289*/ OPC_CheckType, MVT::i32, ++/*467291*/ OPC_MoveParent, ++/*467292*/ OPC_MoveChild6, ++/*467293*/ OPC_CheckInteger, 1, ++/*467295*/ OPC_CheckType, MVT::i32, ++/*467297*/ OPC_MoveParent, ++/*467298*/ OPC_MoveChild7, ++/*467299*/ OPC_CheckInteger, 1, ++/*467301*/ OPC_CheckType, MVT::i32, ++/*467303*/ OPC_MoveParent, ++/*467304*/ OPC_MoveParent, ++/*467305*/ OPC_CheckChild1Same, 1, ++/*467307*/ OPC_MoveParent, ++/*467308*/ OPC_CheckChild1Same, 0, ++/*467310*/ OPC_MoveParent, ++/*467311*/ OPC_MoveParent, ++/*467312*/ OPC_MoveChild1, ++/*467313*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*467316*/ OPC_CheckChild0Integer, 1, ++/*467318*/ OPC_CheckChild0Type, MVT::i32, ++/*467320*/ OPC_CheckChild1Integer, 1, ++/*467322*/ OPC_CheckChild1Type, MVT::i32, ++/*467324*/ OPC_CheckChild2Integer, 1, ++/*467326*/ OPC_CheckChild2Type, MVT::i32, ++/*467328*/ OPC_CheckChild3Integer, 1, ++/*467330*/ OPC_CheckChild3Type, MVT::i32, ++/*467332*/ OPC_CheckChild4Integer, 1, ++/*467334*/ OPC_CheckChild4Type, MVT::i32, ++/*467336*/ OPC_MoveChild5, ++/*467337*/ OPC_CheckInteger, 1, ++/*467339*/ OPC_CheckType, MVT::i32, ++/*467341*/ OPC_MoveParent, ++/*467342*/ OPC_MoveChild6, ++/*467343*/ OPC_CheckInteger, 1, ++/*467345*/ OPC_CheckType, MVT::i32, ++/*467347*/ OPC_MoveParent, ++/*467348*/ OPC_MoveChild7, ++/*467349*/ OPC_CheckInteger, 1, ++/*467351*/ OPC_CheckType, MVT::i32, ++/*467353*/ OPC_MoveParent, ++/*467354*/ OPC_CheckType, MVT::v8i16, ++/*467356*/ OPC_MoveParent, ++/*467357*/ OPC_CheckType, MVT::v8i16, ++/*467359*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*467361*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a), LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*467369*/ /*Scope*/ 107, /*->467477*/ ++/*467370*/ OPC_CheckChild0Same, 1, ++/*467372*/ OPC_MoveChild1, ++/*467373*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*467376*/ OPC_CheckChild0Integer, 1, ++/*467378*/ OPC_CheckChild0Type, MVT::i32, ++/*467380*/ OPC_CheckChild1Integer, 1, ++/*467382*/ OPC_CheckChild1Type, MVT::i32, ++/*467384*/ OPC_CheckChild2Integer, 1, ++/*467386*/ OPC_CheckChild2Type, MVT::i32, ++/*467388*/ OPC_CheckChild3Integer, 1, ++/*467390*/ OPC_CheckChild3Type, MVT::i32, ++/*467392*/ OPC_CheckChild4Integer, 1, ++/*467394*/ OPC_CheckChild4Type, MVT::i32, ++/*467396*/ OPC_MoveChild5, ++/*467397*/ OPC_CheckInteger, 1, ++/*467399*/ OPC_CheckType, MVT::i32, ++/*467401*/ OPC_MoveParent, ++/*467402*/ OPC_MoveChild6, ++/*467403*/ OPC_CheckInteger, 1, ++/*467405*/ OPC_CheckType, MVT::i32, ++/*467407*/ OPC_MoveParent, ++/*467408*/ OPC_MoveChild7, ++/*467409*/ OPC_CheckInteger, 1, ++/*467411*/ OPC_CheckType, MVT::i32, ++/*467413*/ OPC_MoveParent, ++/*467414*/ OPC_MoveParent, ++/*467415*/ OPC_MoveParent, ++/*467416*/ OPC_CheckChild1Same, 0, ++/*467418*/ OPC_MoveParent, ++/*467419*/ OPC_MoveParent, ++/*467420*/ OPC_MoveChild1, ++/*467421*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*467424*/ OPC_CheckChild0Integer, 1, ++/*467426*/ OPC_CheckChild0Type, MVT::i32, ++/*467428*/ OPC_CheckChild1Integer, 1, ++/*467430*/ OPC_CheckChild1Type, MVT::i32, ++/*467432*/ OPC_CheckChild2Integer, 1, ++/*467434*/ OPC_CheckChild2Type, MVT::i32, ++/*467436*/ OPC_CheckChild3Integer, 1, ++/*467438*/ OPC_CheckChild3Type, MVT::i32, ++/*467440*/ OPC_CheckChild4Integer, 1, ++/*467442*/ OPC_CheckChild4Type, MVT::i32, ++/*467444*/ OPC_MoveChild5, ++/*467445*/ OPC_CheckInteger, 1, ++/*467447*/ OPC_CheckType, MVT::i32, ++/*467449*/ OPC_MoveParent, ++/*467450*/ OPC_MoveChild6, ++/*467451*/ OPC_CheckInteger, 1, ++/*467453*/ OPC_CheckType, MVT::i32, ++/*467455*/ OPC_MoveParent, ++/*467456*/ OPC_MoveChild7, ++/*467457*/ OPC_CheckInteger, 1, ++/*467459*/ OPC_CheckType, MVT::i32, ++/*467461*/ OPC_MoveParent, ++/*467462*/ OPC_CheckType, MVT::v8i16, ++/*467464*/ OPC_MoveParent, ++/*467465*/ OPC_CheckType, MVT::v8i16, ++/*467467*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*467469*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*467477*/ /*Scope*/ 107, /*->467585*/ ++/*467478*/ OPC_MoveChild0, ++/*467479*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*467482*/ OPC_CheckChild0Integer, 1, ++/*467484*/ OPC_CheckChild0Type, MVT::i32, ++/*467486*/ OPC_CheckChild1Integer, 1, ++/*467488*/ OPC_CheckChild1Type, MVT::i32, ++/*467490*/ OPC_CheckChild2Integer, 1, ++/*467492*/ OPC_CheckChild2Type, MVT::i32, ++/*467494*/ OPC_CheckChild3Integer, 1, ++/*467496*/ OPC_CheckChild3Type, MVT::i32, ++/*467498*/ OPC_CheckChild4Integer, 1, ++/*467500*/ OPC_CheckChild4Type, MVT::i32, ++/*467502*/ OPC_MoveChild5, ++/*467503*/ OPC_CheckInteger, 1, ++/*467505*/ OPC_CheckType, MVT::i32, ++/*467507*/ OPC_MoveParent, ++/*467508*/ OPC_MoveChild6, ++/*467509*/ OPC_CheckInteger, 1, ++/*467511*/ OPC_CheckType, MVT::i32, ++/*467513*/ OPC_MoveParent, ++/*467514*/ OPC_MoveChild7, ++/*467515*/ OPC_CheckInteger, 1, ++/*467517*/ OPC_CheckType, MVT::i32, ++/*467519*/ OPC_MoveParent, ++/*467520*/ OPC_MoveParent, ++/*467521*/ OPC_CheckChild1Same, 0, ++/*467523*/ OPC_MoveParent, ++/*467524*/ OPC_CheckChild1Same, 1, ++/*467526*/ OPC_MoveParent, ++/*467527*/ OPC_MoveParent, ++/*467528*/ OPC_MoveChild1, ++/*467529*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*467532*/ OPC_CheckChild0Integer, 1, ++/*467534*/ OPC_CheckChild0Type, MVT::i32, ++/*467536*/ OPC_CheckChild1Integer, 1, ++/*467538*/ OPC_CheckChild1Type, MVT::i32, ++/*467540*/ OPC_CheckChild2Integer, 1, ++/*467542*/ OPC_CheckChild2Type, MVT::i32, ++/*467544*/ OPC_CheckChild3Integer, 1, ++/*467546*/ OPC_CheckChild3Type, MVT::i32, ++/*467548*/ OPC_CheckChild4Integer, 1, ++/*467550*/ OPC_CheckChild4Type, MVT::i32, ++/*467552*/ OPC_MoveChild5, ++/*467553*/ OPC_CheckInteger, 1, ++/*467555*/ OPC_CheckType, MVT::i32, ++/*467557*/ OPC_MoveParent, ++/*467558*/ OPC_MoveChild6, ++/*467559*/ OPC_CheckInteger, 1, ++/*467561*/ OPC_CheckType, MVT::i32, ++/*467563*/ OPC_MoveParent, ++/*467564*/ OPC_MoveChild7, ++/*467565*/ OPC_CheckInteger, 1, ++/*467567*/ OPC_CheckType, MVT::i32, ++/*467569*/ OPC_MoveParent, ++/*467570*/ OPC_CheckType, MVT::v8i16, ++/*467572*/ OPC_MoveParent, ++/*467573*/ OPC_CheckType, MVT::v8i16, ++/*467575*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*467577*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b), LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*467585*/ /*Scope*/ 107, /*->467693*/ ++/*467586*/ OPC_CheckChild0Same, 0, ++/*467588*/ OPC_MoveChild1, ++/*467589*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*467592*/ OPC_CheckChild0Integer, 1, ++/*467594*/ OPC_CheckChild0Type, MVT::i32, ++/*467596*/ OPC_CheckChild1Integer, 1, ++/*467598*/ OPC_CheckChild1Type, MVT::i32, ++/*467600*/ OPC_CheckChild2Integer, 1, ++/*467602*/ OPC_CheckChild2Type, MVT::i32, ++/*467604*/ OPC_CheckChild3Integer, 1, ++/*467606*/ OPC_CheckChild3Type, MVT::i32, ++/*467608*/ OPC_CheckChild4Integer, 1, ++/*467610*/ OPC_CheckChild4Type, MVT::i32, ++/*467612*/ OPC_MoveChild5, ++/*467613*/ OPC_CheckInteger, 1, ++/*467615*/ OPC_CheckType, MVT::i32, ++/*467617*/ OPC_MoveParent, ++/*467618*/ OPC_MoveChild6, ++/*467619*/ OPC_CheckInteger, 1, ++/*467621*/ OPC_CheckType, MVT::i32, ++/*467623*/ OPC_MoveParent, ++/*467624*/ OPC_MoveChild7, ++/*467625*/ OPC_CheckInteger, 1, ++/*467627*/ OPC_CheckType, MVT::i32, ++/*467629*/ OPC_MoveParent, ++/*467630*/ OPC_MoveParent, ++/*467631*/ OPC_MoveParent, ++/*467632*/ OPC_CheckChild1Same, 1, ++/*467634*/ OPC_MoveParent, ++/*467635*/ OPC_MoveParent, ++/*467636*/ OPC_MoveChild1, ++/*467637*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*467640*/ OPC_CheckChild0Integer, 1, ++/*467642*/ OPC_CheckChild0Type, MVT::i32, ++/*467644*/ OPC_CheckChild1Integer, 1, ++/*467646*/ OPC_CheckChild1Type, MVT::i32, ++/*467648*/ OPC_CheckChild2Integer, 1, ++/*467650*/ OPC_CheckChild2Type, MVT::i32, ++/*467652*/ OPC_CheckChild3Integer, 1, ++/*467654*/ OPC_CheckChild3Type, MVT::i32, ++/*467656*/ OPC_CheckChild4Integer, 1, ++/*467658*/ OPC_CheckChild4Type, MVT::i32, ++/*467660*/ OPC_MoveChild5, ++/*467661*/ OPC_CheckInteger, 1, ++/*467663*/ OPC_CheckType, MVT::i32, ++/*467665*/ OPC_MoveParent, ++/*467666*/ OPC_MoveChild6, ++/*467667*/ OPC_CheckInteger, 1, ++/*467669*/ OPC_CheckType, MVT::i32, ++/*467671*/ OPC_MoveParent, ++/*467672*/ OPC_MoveChild7, ++/*467673*/ OPC_CheckInteger, 1, ++/*467675*/ OPC_CheckType, MVT::i32, ++/*467677*/ OPC_MoveParent, ++/*467678*/ OPC_CheckType, MVT::v8i16, ++/*467680*/ OPC_MoveParent, ++/*467681*/ OPC_CheckType, MVT::v8i16, ++/*467683*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*467685*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*467693*/ /*Scope*/ 107, /*->467801*/ ++/*467694*/ OPC_CheckChild0Same, 1, ++/*467696*/ OPC_CheckChild1Same, 0, ++/*467698*/ OPC_MoveParent, ++/*467699*/ OPC_MoveChild1, ++/*467700*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*467703*/ OPC_CheckChild0Integer, 1, ++/*467705*/ OPC_CheckChild0Type, MVT::i32, ++/*467707*/ OPC_CheckChild1Integer, 1, ++/*467709*/ OPC_CheckChild1Type, MVT::i32, ++/*467711*/ OPC_CheckChild2Integer, 1, ++/*467713*/ OPC_CheckChild2Type, MVT::i32, ++/*467715*/ OPC_CheckChild3Integer, 1, ++/*467717*/ OPC_CheckChild3Type, MVT::i32, ++/*467719*/ OPC_CheckChild4Integer, 1, ++/*467721*/ OPC_CheckChild4Type, MVT::i32, ++/*467723*/ OPC_MoveChild5, ++/*467724*/ OPC_CheckInteger, 1, ++/*467726*/ OPC_CheckType, MVT::i32, ++/*467728*/ OPC_MoveParent, ++/*467729*/ OPC_MoveChild6, ++/*467730*/ OPC_CheckInteger, 1, ++/*467732*/ OPC_CheckType, MVT::i32, ++/*467734*/ OPC_MoveParent, ++/*467735*/ OPC_MoveChild7, ++/*467736*/ OPC_CheckInteger, 1, ++/*467738*/ OPC_CheckType, MVT::i32, ++/*467740*/ OPC_MoveParent, ++/*467741*/ OPC_MoveParent, ++/*467742*/ OPC_MoveParent, ++/*467743*/ OPC_MoveParent, ++/*467744*/ OPC_MoveChild1, ++/*467745*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*467748*/ OPC_CheckChild0Integer, 1, ++/*467750*/ OPC_CheckChild0Type, MVT::i32, ++/*467752*/ OPC_CheckChild1Integer, 1, ++/*467754*/ OPC_CheckChild1Type, MVT::i32, ++/*467756*/ OPC_CheckChild2Integer, 1, ++/*467758*/ OPC_CheckChild2Type, MVT::i32, ++/*467760*/ OPC_CheckChild3Integer, 1, ++/*467762*/ OPC_CheckChild3Type, MVT::i32, ++/*467764*/ OPC_CheckChild4Integer, 1, ++/*467766*/ OPC_CheckChild4Type, MVT::i32, ++/*467768*/ OPC_MoveChild5, ++/*467769*/ OPC_CheckInteger, 1, ++/*467771*/ OPC_CheckType, MVT::i32, ++/*467773*/ OPC_MoveParent, ++/*467774*/ OPC_MoveChild6, ++/*467775*/ OPC_CheckInteger, 1, ++/*467777*/ OPC_CheckType, MVT::i32, ++/*467779*/ OPC_MoveParent, ++/*467780*/ OPC_MoveChild7, ++/*467781*/ OPC_CheckInteger, 1, ++/*467783*/ OPC_CheckType, MVT::i32, ++/*467785*/ OPC_MoveParent, ++/*467786*/ OPC_CheckType, MVT::v8i16, ++/*467788*/ OPC_MoveParent, ++/*467789*/ OPC_CheckType, MVT::v8i16, ++/*467791*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*467793*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*467801*/ /*Scope*/ 107, /*->467909*/ ++/*467802*/ OPC_CheckChild0Same, 0, ++/*467804*/ OPC_CheckChild1Same, 1, ++/*467806*/ OPC_MoveParent, ++/*467807*/ OPC_MoveChild1, ++/*467808*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*467811*/ OPC_CheckChild0Integer, 1, ++/*467813*/ OPC_CheckChild0Type, MVT::i32, ++/*467815*/ OPC_CheckChild1Integer, 1, ++/*467817*/ OPC_CheckChild1Type, MVT::i32, ++/*467819*/ OPC_CheckChild2Integer, 1, ++/*467821*/ OPC_CheckChild2Type, MVT::i32, ++/*467823*/ OPC_CheckChild3Integer, 1, ++/*467825*/ OPC_CheckChild3Type, MVT::i32, ++/*467827*/ OPC_CheckChild4Integer, 1, ++/*467829*/ OPC_CheckChild4Type, MVT::i32, ++/*467831*/ OPC_MoveChild5, ++/*467832*/ OPC_CheckInteger, 1, ++/*467834*/ OPC_CheckType, MVT::i32, ++/*467836*/ OPC_MoveParent, ++/*467837*/ OPC_MoveChild6, ++/*467838*/ OPC_CheckInteger, 1, ++/*467840*/ OPC_CheckType, MVT::i32, ++/*467842*/ OPC_MoveParent, ++/*467843*/ OPC_MoveChild7, ++/*467844*/ OPC_CheckInteger, 1, ++/*467846*/ OPC_CheckType, MVT::i32, ++/*467848*/ OPC_MoveParent, ++/*467849*/ OPC_MoveParent, ++/*467850*/ OPC_MoveParent, ++/*467851*/ OPC_MoveParent, ++/*467852*/ OPC_MoveChild1, ++/*467853*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*467856*/ OPC_CheckChild0Integer, 1, ++/*467858*/ OPC_CheckChild0Type, MVT::i32, ++/*467860*/ OPC_CheckChild1Integer, 1, ++/*467862*/ OPC_CheckChild1Type, MVT::i32, ++/*467864*/ OPC_CheckChild2Integer, 1, ++/*467866*/ OPC_CheckChild2Type, MVT::i32, ++/*467868*/ OPC_CheckChild3Integer, 1, ++/*467870*/ OPC_CheckChild3Type, MVT::i32, ++/*467872*/ OPC_CheckChild4Integer, 1, ++/*467874*/ OPC_CheckChild4Type, MVT::i32, ++/*467876*/ OPC_MoveChild5, ++/*467877*/ OPC_CheckInteger, 1, ++/*467879*/ OPC_CheckType, MVT::i32, ++/*467881*/ OPC_MoveParent, ++/*467882*/ OPC_MoveChild6, ++/*467883*/ OPC_CheckInteger, 1, ++/*467885*/ OPC_CheckType, MVT::i32, ++/*467887*/ OPC_MoveParent, ++/*467888*/ OPC_MoveChild7, ++/*467889*/ OPC_CheckInteger, 1, ++/*467891*/ OPC_CheckType, MVT::i32, ++/*467893*/ OPC_MoveParent, ++/*467894*/ OPC_CheckType, MVT::v8i16, ++/*467896*/ OPC_MoveParent, ++/*467897*/ OPC_CheckType, MVT::v8i16, ++/*467899*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*467901*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*467909*/ 0, /*End of Scope*/ ++/*467910*/ /*Scope*/ 92|128,1/*220*/, /*->468132*/ ++/*467912*/ OPC_CheckChild0Same, 0, ++/*467914*/ OPC_MoveChild1, ++/*467915*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*467918*/ OPC_Scope, 105, /*->468025*/ // 2 children in Scope ++/*467920*/ OPC_MoveChild0, ++/*467921*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*467924*/ OPC_CheckChild0Integer, 1, ++/*467926*/ OPC_CheckChild0Type, MVT::i32, ++/*467928*/ OPC_CheckChild1Integer, 1, ++/*467930*/ OPC_CheckChild1Type, MVT::i32, ++/*467932*/ OPC_CheckChild2Integer, 1, ++/*467934*/ OPC_CheckChild2Type, MVT::i32, ++/*467936*/ OPC_CheckChild3Integer, 1, ++/*467938*/ OPC_CheckChild3Type, MVT::i32, ++/*467940*/ OPC_CheckChild4Integer, 1, ++/*467942*/ OPC_CheckChild4Type, MVT::i32, ++/*467944*/ OPC_MoveChild5, ++/*467945*/ OPC_CheckInteger, 1, ++/*467947*/ OPC_CheckType, MVT::i32, ++/*467949*/ OPC_MoveParent, ++/*467950*/ OPC_MoveChild6, ++/*467951*/ OPC_CheckInteger, 1, ++/*467953*/ OPC_CheckType, MVT::i32, ++/*467955*/ OPC_MoveParent, ++/*467956*/ OPC_MoveChild7, ++/*467957*/ OPC_CheckInteger, 1, ++/*467959*/ OPC_CheckType, MVT::i32, ++/*467961*/ OPC_MoveParent, ++/*467962*/ OPC_MoveParent, ++/*467963*/ OPC_CheckChild1Same, 1, ++/*467965*/ OPC_MoveParent, ++/*467966*/ OPC_MoveParent, ++/*467967*/ OPC_MoveParent, ++/*467968*/ OPC_MoveChild1, ++/*467969*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*467972*/ OPC_CheckChild0Integer, 1, ++/*467974*/ OPC_CheckChild0Type, MVT::i32, ++/*467976*/ OPC_CheckChild1Integer, 1, ++/*467978*/ OPC_CheckChild1Type, MVT::i32, ++/*467980*/ OPC_CheckChild2Integer, 1, ++/*467982*/ OPC_CheckChild2Type, MVT::i32, ++/*467984*/ OPC_CheckChild3Integer, 1, ++/*467986*/ OPC_CheckChild3Type, MVT::i32, ++/*467988*/ OPC_CheckChild4Integer, 1, ++/*467990*/ OPC_CheckChild4Type, MVT::i32, ++/*467992*/ OPC_MoveChild5, ++/*467993*/ OPC_CheckInteger, 1, ++/*467995*/ OPC_CheckType, MVT::i32, ++/*467997*/ OPC_MoveParent, ++/*467998*/ OPC_MoveChild6, ++/*467999*/ OPC_CheckInteger, 1, ++/*468001*/ OPC_CheckType, MVT::i32, ++/*468003*/ OPC_MoveParent, ++/*468004*/ OPC_MoveChild7, ++/*468005*/ OPC_CheckInteger, 1, ++/*468007*/ OPC_CheckType, MVT::i32, ++/*468009*/ OPC_MoveParent, ++/*468010*/ OPC_CheckType, MVT::v8i16, ++/*468012*/ OPC_MoveParent, ++/*468013*/ OPC_CheckType, MVT::v8i16, ++/*468015*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*468017*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*468025*/ /*Scope*/ 105, /*->468131*/ ++/*468026*/ OPC_CheckChild0Same, 1, ++/*468028*/ OPC_MoveChild1, ++/*468029*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*468032*/ OPC_CheckChild0Integer, 1, ++/*468034*/ OPC_CheckChild0Type, MVT::i32, ++/*468036*/ OPC_CheckChild1Integer, 1, ++/*468038*/ OPC_CheckChild1Type, MVT::i32, ++/*468040*/ OPC_CheckChild2Integer, 1, ++/*468042*/ OPC_CheckChild2Type, MVT::i32, ++/*468044*/ OPC_CheckChild3Integer, 1, ++/*468046*/ OPC_CheckChild3Type, MVT::i32, ++/*468048*/ OPC_CheckChild4Integer, 1, ++/*468050*/ OPC_CheckChild4Type, MVT::i32, ++/*468052*/ OPC_MoveChild5, ++/*468053*/ OPC_CheckInteger, 1, ++/*468055*/ OPC_CheckType, MVT::i32, ++/*468057*/ OPC_MoveParent, ++/*468058*/ OPC_MoveChild6, ++/*468059*/ OPC_CheckInteger, 1, ++/*468061*/ OPC_CheckType, MVT::i32, ++/*468063*/ OPC_MoveParent, ++/*468064*/ OPC_MoveChild7, ++/*468065*/ OPC_CheckInteger, 1, ++/*468067*/ OPC_CheckType, MVT::i32, ++/*468069*/ OPC_MoveParent, ++/*468070*/ OPC_MoveParent, ++/*468071*/ OPC_MoveParent, ++/*468072*/ OPC_MoveParent, ++/*468073*/ OPC_MoveParent, ++/*468074*/ OPC_MoveChild1, ++/*468075*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*468078*/ OPC_CheckChild0Integer, 1, ++/*468080*/ OPC_CheckChild0Type, MVT::i32, ++/*468082*/ OPC_CheckChild1Integer, 1, ++/*468084*/ OPC_CheckChild1Type, MVT::i32, ++/*468086*/ OPC_CheckChild2Integer, 1, ++/*468088*/ OPC_CheckChild2Type, MVT::i32, ++/*468090*/ OPC_CheckChild3Integer, 1, ++/*468092*/ OPC_CheckChild3Type, MVT::i32, ++/*468094*/ OPC_CheckChild4Integer, 1, ++/*468096*/ OPC_CheckChild4Type, MVT::i32, ++/*468098*/ OPC_MoveChild5, ++/*468099*/ OPC_CheckInteger, 1, ++/*468101*/ OPC_CheckType, MVT::i32, ++/*468103*/ OPC_MoveParent, ++/*468104*/ OPC_MoveChild6, ++/*468105*/ OPC_CheckInteger, 1, ++/*468107*/ OPC_CheckType, MVT::i32, ++/*468109*/ OPC_MoveParent, ++/*468110*/ OPC_MoveChild7, ++/*468111*/ OPC_CheckInteger, 1, ++/*468113*/ OPC_CheckType, MVT::i32, ++/*468115*/ OPC_MoveParent, ++/*468116*/ OPC_CheckType, MVT::v8i16, ++/*468118*/ OPC_MoveParent, ++/*468119*/ OPC_CheckType, MVT::v8i16, ++/*468121*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*468123*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*468131*/ 0, /*End of Scope*/ ++/*468132*/ /*Scope*/ 92|128,1/*220*/, /*->468354*/ ++/*468134*/ OPC_CheckChild0Same, 1, ++/*468136*/ OPC_MoveChild1, ++/*468137*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*468140*/ OPC_Scope, 105, /*->468247*/ // 2 children in Scope ++/*468142*/ OPC_MoveChild0, ++/*468143*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*468146*/ OPC_CheckChild0Integer, 1, ++/*468148*/ OPC_CheckChild0Type, MVT::i32, ++/*468150*/ OPC_CheckChild1Integer, 1, ++/*468152*/ OPC_CheckChild1Type, MVT::i32, ++/*468154*/ OPC_CheckChild2Integer, 1, ++/*468156*/ OPC_CheckChild2Type, MVT::i32, ++/*468158*/ OPC_CheckChild3Integer, 1, ++/*468160*/ OPC_CheckChild3Type, MVT::i32, ++/*468162*/ OPC_CheckChild4Integer, 1, ++/*468164*/ OPC_CheckChild4Type, MVT::i32, ++/*468166*/ OPC_MoveChild5, ++/*468167*/ OPC_CheckInteger, 1, ++/*468169*/ OPC_CheckType, MVT::i32, ++/*468171*/ OPC_MoveParent, ++/*468172*/ OPC_MoveChild6, ++/*468173*/ OPC_CheckInteger, 1, ++/*468175*/ OPC_CheckType, MVT::i32, ++/*468177*/ OPC_MoveParent, ++/*468178*/ OPC_MoveChild7, ++/*468179*/ OPC_CheckInteger, 1, ++/*468181*/ OPC_CheckType, MVT::i32, ++/*468183*/ OPC_MoveParent, ++/*468184*/ OPC_MoveParent, ++/*468185*/ OPC_CheckChild1Same, 0, ++/*468187*/ OPC_MoveParent, ++/*468188*/ OPC_MoveParent, ++/*468189*/ OPC_MoveParent, ++/*468190*/ OPC_MoveChild1, ++/*468191*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*468194*/ OPC_CheckChild0Integer, 1, ++/*468196*/ OPC_CheckChild0Type, MVT::i32, ++/*468198*/ OPC_CheckChild1Integer, 1, ++/*468200*/ OPC_CheckChild1Type, MVT::i32, ++/*468202*/ OPC_CheckChild2Integer, 1, ++/*468204*/ OPC_CheckChild2Type, MVT::i32, ++/*468206*/ OPC_CheckChild3Integer, 1, ++/*468208*/ OPC_CheckChild3Type, MVT::i32, ++/*468210*/ OPC_CheckChild4Integer, 1, ++/*468212*/ OPC_CheckChild4Type, MVT::i32, ++/*468214*/ OPC_MoveChild5, ++/*468215*/ OPC_CheckInteger, 1, ++/*468217*/ OPC_CheckType, MVT::i32, ++/*468219*/ OPC_MoveParent, ++/*468220*/ OPC_MoveChild6, ++/*468221*/ OPC_CheckInteger, 1, ++/*468223*/ OPC_CheckType, MVT::i32, ++/*468225*/ OPC_MoveParent, ++/*468226*/ OPC_MoveChild7, ++/*468227*/ OPC_CheckInteger, 1, ++/*468229*/ OPC_CheckType, MVT::i32, ++/*468231*/ OPC_MoveParent, ++/*468232*/ OPC_CheckType, MVT::v8i16, ++/*468234*/ OPC_MoveParent, ++/*468235*/ OPC_CheckType, MVT::v8i16, ++/*468237*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*468239*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*468247*/ /*Scope*/ 105, /*->468353*/ ++/*468248*/ OPC_CheckChild0Same, 0, ++/*468250*/ OPC_MoveChild1, ++/*468251*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*468254*/ OPC_CheckChild0Integer, 1, ++/*468256*/ OPC_CheckChild0Type, MVT::i32, ++/*468258*/ OPC_CheckChild1Integer, 1, ++/*468260*/ OPC_CheckChild1Type, MVT::i32, ++/*468262*/ OPC_CheckChild2Integer, 1, ++/*468264*/ OPC_CheckChild2Type, MVT::i32, ++/*468266*/ OPC_CheckChild3Integer, 1, ++/*468268*/ OPC_CheckChild3Type, MVT::i32, ++/*468270*/ OPC_CheckChild4Integer, 1, ++/*468272*/ OPC_CheckChild4Type, MVT::i32, ++/*468274*/ OPC_MoveChild5, ++/*468275*/ OPC_CheckInteger, 1, ++/*468277*/ OPC_CheckType, MVT::i32, ++/*468279*/ OPC_MoveParent, ++/*468280*/ OPC_MoveChild6, ++/*468281*/ OPC_CheckInteger, 1, ++/*468283*/ OPC_CheckType, MVT::i32, ++/*468285*/ OPC_MoveParent, ++/*468286*/ OPC_MoveChild7, ++/*468287*/ OPC_CheckInteger, 1, ++/*468289*/ OPC_CheckType, MVT::i32, ++/*468291*/ OPC_MoveParent, ++/*468292*/ OPC_MoveParent, ++/*468293*/ OPC_MoveParent, ++/*468294*/ OPC_MoveParent, ++/*468295*/ OPC_MoveParent, ++/*468296*/ OPC_MoveChild1, ++/*468297*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*468300*/ OPC_CheckChild0Integer, 1, ++/*468302*/ OPC_CheckChild0Type, MVT::i32, ++/*468304*/ OPC_CheckChild1Integer, 1, ++/*468306*/ OPC_CheckChild1Type, MVT::i32, ++/*468308*/ OPC_CheckChild2Integer, 1, ++/*468310*/ OPC_CheckChild2Type, MVT::i32, ++/*468312*/ OPC_CheckChild3Integer, 1, ++/*468314*/ OPC_CheckChild3Type, MVT::i32, ++/*468316*/ OPC_CheckChild4Integer, 1, ++/*468318*/ OPC_CheckChild4Type, MVT::i32, ++/*468320*/ OPC_MoveChild5, ++/*468321*/ OPC_CheckInteger, 1, ++/*468323*/ OPC_CheckType, MVT::i32, ++/*468325*/ OPC_MoveParent, ++/*468326*/ OPC_MoveChild6, ++/*468327*/ OPC_CheckInteger, 1, ++/*468329*/ OPC_CheckType, MVT::i32, ++/*468331*/ OPC_MoveParent, ++/*468332*/ OPC_MoveChild7, ++/*468333*/ OPC_CheckInteger, 1, ++/*468335*/ OPC_CheckType, MVT::i32, ++/*468337*/ OPC_MoveParent, ++/*468338*/ OPC_CheckType, MVT::v8i16, ++/*468340*/ OPC_MoveParent, ++/*468341*/ OPC_CheckType, MVT::v8i16, ++/*468343*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*468345*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*468353*/ 0, /*End of Scope*/ ++/*468354*/ /*Scope*/ 51|128,1/*179*/, /*->468535*/ ++/*468356*/ OPC_MoveChild0, ++/*468357*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*468360*/ OPC_CheckChild0Integer, 1, ++/*468362*/ OPC_CheckChild0Type, MVT::i32, ++/*468364*/ OPC_CheckChild1Integer, 1, ++/*468366*/ OPC_CheckChild1Type, MVT::i32, ++/*468368*/ OPC_CheckChild2Integer, 1, ++/*468370*/ OPC_CheckChild2Type, MVT::i32, ++/*468372*/ OPC_CheckChild3Integer, 1, ++/*468374*/ OPC_CheckChild3Type, MVT::i32, ++/*468376*/ OPC_CheckChild4Integer, 1, ++/*468378*/ OPC_CheckChild4Type, MVT::i32, ++/*468380*/ OPC_MoveChild5, ++/*468381*/ OPC_CheckInteger, 1, ++/*468383*/ OPC_CheckType, MVT::i32, ++/*468385*/ OPC_MoveParent, ++/*468386*/ OPC_MoveChild6, ++/*468387*/ OPC_CheckInteger, 1, ++/*468389*/ OPC_CheckType, MVT::i32, ++/*468391*/ OPC_MoveParent, ++/*468392*/ OPC_MoveChild7, ++/*468393*/ OPC_CheckInteger, 1, ++/*468395*/ OPC_CheckType, MVT::i32, ++/*468397*/ OPC_MoveParent, ++/*468398*/ OPC_MoveParent, ++/*468399*/ OPC_MoveChild1, ++/*468400*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*468403*/ OPC_Scope, 64, /*->468469*/ // 2 children in Scope ++/*468405*/ OPC_CheckChild0Same, 1, ++/*468407*/ OPC_CheckChild1Same, 0, ++/*468409*/ OPC_MoveParent, ++/*468410*/ OPC_MoveParent, ++/*468411*/ OPC_MoveParent, ++/*468412*/ OPC_MoveChild1, ++/*468413*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*468416*/ OPC_CheckChild0Integer, 1, ++/*468418*/ OPC_CheckChild0Type, MVT::i32, ++/*468420*/ OPC_CheckChild1Integer, 1, ++/*468422*/ OPC_CheckChild1Type, MVT::i32, ++/*468424*/ OPC_CheckChild2Integer, 1, ++/*468426*/ OPC_CheckChild2Type, MVT::i32, ++/*468428*/ OPC_CheckChild3Integer, 1, ++/*468430*/ OPC_CheckChild3Type, MVT::i32, ++/*468432*/ OPC_CheckChild4Integer, 1, ++/*468434*/ OPC_CheckChild4Type, MVT::i32, ++/*468436*/ OPC_MoveChild5, ++/*468437*/ OPC_CheckInteger, 1, ++/*468439*/ OPC_CheckType, MVT::i32, ++/*468441*/ OPC_MoveParent, ++/*468442*/ OPC_MoveChild6, ++/*468443*/ OPC_CheckInteger, 1, ++/*468445*/ OPC_CheckType, MVT::i32, ++/*468447*/ OPC_MoveParent, ++/*468448*/ OPC_MoveChild7, ++/*468449*/ OPC_CheckInteger, 1, ++/*468451*/ OPC_CheckType, MVT::i32, ++/*468453*/ OPC_MoveParent, ++/*468454*/ OPC_CheckType, MVT::v8i16, ++/*468456*/ OPC_MoveParent, ++/*468457*/ OPC_CheckType, MVT::v8i16, ++/*468459*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*468461*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*468469*/ /*Scope*/ 64, /*->468534*/ ++/*468470*/ OPC_CheckChild0Same, 0, ++/*468472*/ OPC_CheckChild1Same, 1, ++/*468474*/ OPC_MoveParent, ++/*468475*/ OPC_MoveParent, ++/*468476*/ OPC_MoveParent, ++/*468477*/ OPC_MoveChild1, ++/*468478*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*468481*/ OPC_CheckChild0Integer, 1, ++/*468483*/ OPC_CheckChild0Type, MVT::i32, ++/*468485*/ OPC_CheckChild1Integer, 1, ++/*468487*/ OPC_CheckChild1Type, MVT::i32, ++/*468489*/ OPC_CheckChild2Integer, 1, ++/*468491*/ OPC_CheckChild2Type, MVT::i32, ++/*468493*/ OPC_CheckChild3Integer, 1, ++/*468495*/ OPC_CheckChild3Type, MVT::i32, ++/*468497*/ OPC_CheckChild4Integer, 1, ++/*468499*/ OPC_CheckChild4Type, MVT::i32, ++/*468501*/ OPC_MoveChild5, ++/*468502*/ OPC_CheckInteger, 1, ++/*468504*/ OPC_CheckType, MVT::i32, ++/*468506*/ OPC_MoveParent, ++/*468507*/ OPC_MoveChild6, ++/*468508*/ OPC_CheckInteger, 1, ++/*468510*/ OPC_CheckType, MVT::i32, ++/*468512*/ OPC_MoveParent, ++/*468513*/ OPC_MoveChild7, ++/*468514*/ OPC_CheckInteger, 1, ++/*468516*/ OPC_CheckType, MVT::i32, ++/*468518*/ OPC_MoveParent, ++/*468519*/ OPC_CheckType, MVT::v8i16, ++/*468521*/ OPC_MoveParent, ++/*468522*/ OPC_CheckType, MVT::v8i16, ++/*468524*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*468526*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*468534*/ 0, /*End of Scope*/ ++/*468535*/ 0, /*End of Scope*/ ++/*468536*/ /*Scope*/ 99|128,10/*1379*/, /*->469917*/ ++/*468538*/ OPC_RecordChild0, // #1 = $a ++/*468539*/ OPC_MoveChild1, ++/*468540*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*468543*/ OPC_CheckChild0Integer, 1, ++/*468545*/ OPC_CheckChild0Type, MVT::i32, ++/*468547*/ OPC_CheckChild1Integer, 1, ++/*468549*/ OPC_CheckChild1Type, MVT::i32, ++/*468551*/ OPC_CheckChild2Integer, 1, ++/*468553*/ OPC_CheckChild2Type, MVT::i32, ++/*468555*/ OPC_CheckChild3Integer, 1, ++/*468557*/ OPC_CheckChild3Type, MVT::i32, ++/*468559*/ OPC_CheckChild4Integer, 1, ++/*468561*/ OPC_CheckChild4Type, MVT::i32, ++/*468563*/ OPC_MoveChild5, ++/*468564*/ OPC_CheckInteger, 1, ++/*468566*/ OPC_CheckType, MVT::i32, ++/*468568*/ OPC_MoveParent, ++/*468569*/ OPC_MoveChild6, ++/*468570*/ OPC_CheckInteger, 1, ++/*468572*/ OPC_CheckType, MVT::i32, ++/*468574*/ OPC_MoveParent, ++/*468575*/ OPC_MoveChild7, ++/*468576*/ OPC_CheckInteger, 1, ++/*468578*/ OPC_CheckType, MVT::i32, ++/*468580*/ OPC_MoveParent, ++/*468581*/ OPC_MoveParent, ++/*468582*/ OPC_MoveParent, ++/*468583*/ OPC_MoveParent, ++/*468584*/ OPC_MoveChild1, ++/*468585*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*468588*/ OPC_CheckChild0Integer, 15, ++/*468590*/ OPC_CheckChild0Type, MVT::i32, ++/*468592*/ OPC_CheckChild1Integer, 15, ++/*468594*/ OPC_CheckChild1Type, MVT::i32, ++/*468596*/ OPC_CheckChild2Integer, 15, ++/*468598*/ OPC_CheckChild2Type, MVT::i32, ++/*468600*/ OPC_CheckChild3Integer, 15, ++/*468602*/ OPC_CheckChild3Type, MVT::i32, ++/*468604*/ OPC_CheckChild4Integer, 15, ++/*468606*/ OPC_CheckChild4Type, MVT::i32, ++/*468608*/ OPC_MoveChild5, ++/*468609*/ OPC_CheckInteger, 15, ++/*468611*/ OPC_CheckType, MVT::i32, ++/*468613*/ OPC_MoveParent, ++/*468614*/ OPC_MoveChild6, ++/*468615*/ OPC_CheckInteger, 15, ++/*468617*/ OPC_CheckType, MVT::i32, ++/*468619*/ OPC_MoveParent, ++/*468620*/ OPC_MoveChild7, ++/*468621*/ OPC_CheckInteger, 15, ++/*468623*/ OPC_CheckType, MVT::i32, ++/*468625*/ OPC_MoveParent, ++/*468626*/ OPC_CheckType, MVT::v8i16, ++/*468628*/ OPC_MoveParent, ++/*468629*/ OPC_MoveParent, ++/*468630*/ OPC_MoveChild1, ++/*468631*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*468634*/ OPC_Scope, 14|128,5/*654*/, /*->469291*/ // 4 children in Scope ++/*468637*/ OPC_MoveChild0, ++/*468638*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*468641*/ OPC_Scope, 107, /*->468750*/ // 6 children in Scope ++/*468643*/ OPC_MoveChild0, ++/*468644*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*468647*/ OPC_CheckChild0Integer, 1, ++/*468649*/ OPC_CheckChild0Type, MVT::i32, ++/*468651*/ OPC_CheckChild1Integer, 1, ++/*468653*/ OPC_CheckChild1Type, MVT::i32, ++/*468655*/ OPC_CheckChild2Integer, 1, ++/*468657*/ OPC_CheckChild2Type, MVT::i32, ++/*468659*/ OPC_CheckChild3Integer, 1, ++/*468661*/ OPC_CheckChild3Type, MVT::i32, ++/*468663*/ OPC_CheckChild4Integer, 1, ++/*468665*/ OPC_CheckChild4Type, MVT::i32, ++/*468667*/ OPC_MoveChild5, ++/*468668*/ OPC_CheckInteger, 1, ++/*468670*/ OPC_CheckType, MVT::i32, ++/*468672*/ OPC_MoveParent, ++/*468673*/ OPC_MoveChild6, ++/*468674*/ OPC_CheckInteger, 1, ++/*468676*/ OPC_CheckType, MVT::i32, ++/*468678*/ OPC_MoveParent, ++/*468679*/ OPC_MoveChild7, ++/*468680*/ OPC_CheckInteger, 1, ++/*468682*/ OPC_CheckType, MVT::i32, ++/*468684*/ OPC_MoveParent, ++/*468685*/ OPC_MoveParent, ++/*468686*/ OPC_CheckChild1Same, 1, ++/*468688*/ OPC_MoveParent, ++/*468689*/ OPC_CheckChild1Same, 0, ++/*468691*/ OPC_MoveParent, ++/*468692*/ OPC_MoveParent, ++/*468693*/ OPC_MoveChild1, ++/*468694*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*468697*/ OPC_CheckChild0Integer, 1, ++/*468699*/ OPC_CheckChild0Type, MVT::i32, ++/*468701*/ OPC_CheckChild1Integer, 1, ++/*468703*/ OPC_CheckChild1Type, MVT::i32, ++/*468705*/ OPC_CheckChild2Integer, 1, ++/*468707*/ OPC_CheckChild2Type, MVT::i32, ++/*468709*/ OPC_CheckChild3Integer, 1, ++/*468711*/ OPC_CheckChild3Type, MVT::i32, ++/*468713*/ OPC_CheckChild4Integer, 1, ++/*468715*/ OPC_CheckChild4Type, MVT::i32, ++/*468717*/ OPC_MoveChild5, ++/*468718*/ OPC_CheckInteger, 1, ++/*468720*/ OPC_CheckType, MVT::i32, ++/*468722*/ OPC_MoveParent, ++/*468723*/ OPC_MoveChild6, ++/*468724*/ OPC_CheckInteger, 1, ++/*468726*/ OPC_CheckType, MVT::i32, ++/*468728*/ OPC_MoveParent, ++/*468729*/ OPC_MoveChild7, ++/*468730*/ OPC_CheckInteger, 1, ++/*468732*/ OPC_CheckType, MVT::i32, ++/*468734*/ OPC_MoveParent, ++/*468735*/ OPC_CheckType, MVT::v8i16, ++/*468737*/ OPC_MoveParent, ++/*468738*/ OPC_CheckType, MVT::v8i16, ++/*468740*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*468742*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a), LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*468750*/ /*Scope*/ 107, /*->468858*/ ++/*468751*/ OPC_CheckChild0Same, 1, ++/*468753*/ OPC_MoveChild1, ++/*468754*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*468757*/ OPC_CheckChild0Integer, 1, ++/*468759*/ OPC_CheckChild0Type, MVT::i32, ++/*468761*/ OPC_CheckChild1Integer, 1, ++/*468763*/ OPC_CheckChild1Type, MVT::i32, ++/*468765*/ OPC_CheckChild2Integer, 1, ++/*468767*/ OPC_CheckChild2Type, MVT::i32, ++/*468769*/ OPC_CheckChild3Integer, 1, ++/*468771*/ OPC_CheckChild3Type, MVT::i32, ++/*468773*/ OPC_CheckChild4Integer, 1, ++/*468775*/ OPC_CheckChild4Type, MVT::i32, ++/*468777*/ OPC_MoveChild5, ++/*468778*/ OPC_CheckInteger, 1, ++/*468780*/ OPC_CheckType, MVT::i32, ++/*468782*/ OPC_MoveParent, ++/*468783*/ OPC_MoveChild6, ++/*468784*/ OPC_CheckInteger, 1, ++/*468786*/ OPC_CheckType, MVT::i32, ++/*468788*/ OPC_MoveParent, ++/*468789*/ OPC_MoveChild7, ++/*468790*/ OPC_CheckInteger, 1, ++/*468792*/ OPC_CheckType, MVT::i32, ++/*468794*/ OPC_MoveParent, ++/*468795*/ OPC_MoveParent, ++/*468796*/ OPC_MoveParent, ++/*468797*/ OPC_CheckChild1Same, 0, ++/*468799*/ OPC_MoveParent, ++/*468800*/ OPC_MoveParent, ++/*468801*/ OPC_MoveChild1, ++/*468802*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*468805*/ OPC_CheckChild0Integer, 1, ++/*468807*/ OPC_CheckChild0Type, MVT::i32, ++/*468809*/ OPC_CheckChild1Integer, 1, ++/*468811*/ OPC_CheckChild1Type, MVT::i32, ++/*468813*/ OPC_CheckChild2Integer, 1, ++/*468815*/ OPC_CheckChild2Type, MVT::i32, ++/*468817*/ OPC_CheckChild3Integer, 1, ++/*468819*/ OPC_CheckChild3Type, MVT::i32, ++/*468821*/ OPC_CheckChild4Integer, 1, ++/*468823*/ OPC_CheckChild4Type, MVT::i32, ++/*468825*/ OPC_MoveChild5, ++/*468826*/ OPC_CheckInteger, 1, ++/*468828*/ OPC_CheckType, MVT::i32, ++/*468830*/ OPC_MoveParent, ++/*468831*/ OPC_MoveChild6, ++/*468832*/ OPC_CheckInteger, 1, ++/*468834*/ OPC_CheckType, MVT::i32, ++/*468836*/ OPC_MoveParent, ++/*468837*/ OPC_MoveChild7, ++/*468838*/ OPC_CheckInteger, 1, ++/*468840*/ OPC_CheckType, MVT::i32, ++/*468842*/ OPC_MoveParent, ++/*468843*/ OPC_CheckType, MVT::v8i16, ++/*468845*/ OPC_MoveParent, ++/*468846*/ OPC_CheckType, MVT::v8i16, ++/*468848*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*468850*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*468858*/ /*Scope*/ 107, /*->468966*/ ++/*468859*/ OPC_MoveChild0, ++/*468860*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*468863*/ OPC_CheckChild0Integer, 1, ++/*468865*/ OPC_CheckChild0Type, MVT::i32, ++/*468867*/ OPC_CheckChild1Integer, 1, ++/*468869*/ OPC_CheckChild1Type, MVT::i32, ++/*468871*/ OPC_CheckChild2Integer, 1, ++/*468873*/ OPC_CheckChild2Type, MVT::i32, ++/*468875*/ OPC_CheckChild3Integer, 1, ++/*468877*/ OPC_CheckChild3Type, MVT::i32, ++/*468879*/ OPC_CheckChild4Integer, 1, ++/*468881*/ OPC_CheckChild4Type, MVT::i32, ++/*468883*/ OPC_MoveChild5, ++/*468884*/ OPC_CheckInteger, 1, ++/*468886*/ OPC_CheckType, MVT::i32, ++/*468888*/ OPC_MoveParent, ++/*468889*/ OPC_MoveChild6, ++/*468890*/ OPC_CheckInteger, 1, ++/*468892*/ OPC_CheckType, MVT::i32, ++/*468894*/ OPC_MoveParent, ++/*468895*/ OPC_MoveChild7, ++/*468896*/ OPC_CheckInteger, 1, ++/*468898*/ OPC_CheckType, MVT::i32, ++/*468900*/ OPC_MoveParent, ++/*468901*/ OPC_MoveParent, ++/*468902*/ OPC_CheckChild1Same, 0, ++/*468904*/ OPC_MoveParent, ++/*468905*/ OPC_CheckChild1Same, 1, ++/*468907*/ OPC_MoveParent, ++/*468908*/ OPC_MoveParent, ++/*468909*/ OPC_MoveChild1, ++/*468910*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*468913*/ OPC_CheckChild0Integer, 1, ++/*468915*/ OPC_CheckChild0Type, MVT::i32, ++/*468917*/ OPC_CheckChild1Integer, 1, ++/*468919*/ OPC_CheckChild1Type, MVT::i32, ++/*468921*/ OPC_CheckChild2Integer, 1, ++/*468923*/ OPC_CheckChild2Type, MVT::i32, ++/*468925*/ OPC_CheckChild3Integer, 1, ++/*468927*/ OPC_CheckChild3Type, MVT::i32, ++/*468929*/ OPC_CheckChild4Integer, 1, ++/*468931*/ OPC_CheckChild4Type, MVT::i32, ++/*468933*/ OPC_MoveChild5, ++/*468934*/ OPC_CheckInteger, 1, ++/*468936*/ OPC_CheckType, MVT::i32, ++/*468938*/ OPC_MoveParent, ++/*468939*/ OPC_MoveChild6, ++/*468940*/ OPC_CheckInteger, 1, ++/*468942*/ OPC_CheckType, MVT::i32, ++/*468944*/ OPC_MoveParent, ++/*468945*/ OPC_MoveChild7, ++/*468946*/ OPC_CheckInteger, 1, ++/*468948*/ OPC_CheckType, MVT::i32, ++/*468950*/ OPC_MoveParent, ++/*468951*/ OPC_CheckType, MVT::v8i16, ++/*468953*/ OPC_MoveParent, ++/*468954*/ OPC_CheckType, MVT::v8i16, ++/*468956*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*468958*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b), LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*468966*/ /*Scope*/ 107, /*->469074*/ ++/*468967*/ OPC_CheckChild0Same, 0, ++/*468969*/ OPC_MoveChild1, ++/*468970*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*468973*/ OPC_CheckChild0Integer, 1, ++/*468975*/ OPC_CheckChild0Type, MVT::i32, ++/*468977*/ OPC_CheckChild1Integer, 1, ++/*468979*/ OPC_CheckChild1Type, MVT::i32, ++/*468981*/ OPC_CheckChild2Integer, 1, ++/*468983*/ OPC_CheckChild2Type, MVT::i32, ++/*468985*/ OPC_CheckChild3Integer, 1, ++/*468987*/ OPC_CheckChild3Type, MVT::i32, ++/*468989*/ OPC_CheckChild4Integer, 1, ++/*468991*/ OPC_CheckChild4Type, MVT::i32, ++/*468993*/ OPC_MoveChild5, ++/*468994*/ OPC_CheckInteger, 1, ++/*468996*/ OPC_CheckType, MVT::i32, ++/*468998*/ OPC_MoveParent, ++/*468999*/ OPC_MoveChild6, ++/*469000*/ OPC_CheckInteger, 1, ++/*469002*/ OPC_CheckType, MVT::i32, ++/*469004*/ OPC_MoveParent, ++/*469005*/ OPC_MoveChild7, ++/*469006*/ OPC_CheckInteger, 1, ++/*469008*/ OPC_CheckType, MVT::i32, ++/*469010*/ OPC_MoveParent, ++/*469011*/ OPC_MoveParent, ++/*469012*/ OPC_MoveParent, ++/*469013*/ OPC_CheckChild1Same, 1, ++/*469015*/ OPC_MoveParent, ++/*469016*/ OPC_MoveParent, ++/*469017*/ OPC_MoveChild1, ++/*469018*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*469021*/ OPC_CheckChild0Integer, 1, ++/*469023*/ OPC_CheckChild0Type, MVT::i32, ++/*469025*/ OPC_CheckChild1Integer, 1, ++/*469027*/ OPC_CheckChild1Type, MVT::i32, ++/*469029*/ OPC_CheckChild2Integer, 1, ++/*469031*/ OPC_CheckChild2Type, MVT::i32, ++/*469033*/ OPC_CheckChild3Integer, 1, ++/*469035*/ OPC_CheckChild3Type, MVT::i32, ++/*469037*/ OPC_CheckChild4Integer, 1, ++/*469039*/ OPC_CheckChild4Type, MVT::i32, ++/*469041*/ OPC_MoveChild5, ++/*469042*/ OPC_CheckInteger, 1, ++/*469044*/ OPC_CheckType, MVT::i32, ++/*469046*/ OPC_MoveParent, ++/*469047*/ OPC_MoveChild6, ++/*469048*/ OPC_CheckInteger, 1, ++/*469050*/ OPC_CheckType, MVT::i32, ++/*469052*/ OPC_MoveParent, ++/*469053*/ OPC_MoveChild7, ++/*469054*/ OPC_CheckInteger, 1, ++/*469056*/ OPC_CheckType, MVT::i32, ++/*469058*/ OPC_MoveParent, ++/*469059*/ OPC_CheckType, MVT::v8i16, ++/*469061*/ OPC_MoveParent, ++/*469062*/ OPC_CheckType, MVT::v8i16, ++/*469064*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*469066*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*469074*/ /*Scope*/ 107, /*->469182*/ ++/*469075*/ OPC_CheckChild0Same, 1, ++/*469077*/ OPC_CheckChild1Same, 0, ++/*469079*/ OPC_MoveParent, ++/*469080*/ OPC_MoveChild1, ++/*469081*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*469084*/ OPC_CheckChild0Integer, 1, ++/*469086*/ OPC_CheckChild0Type, MVT::i32, ++/*469088*/ OPC_CheckChild1Integer, 1, ++/*469090*/ OPC_CheckChild1Type, MVT::i32, ++/*469092*/ OPC_CheckChild2Integer, 1, ++/*469094*/ OPC_CheckChild2Type, MVT::i32, ++/*469096*/ OPC_CheckChild3Integer, 1, ++/*469098*/ OPC_CheckChild3Type, MVT::i32, ++/*469100*/ OPC_CheckChild4Integer, 1, ++/*469102*/ OPC_CheckChild4Type, MVT::i32, ++/*469104*/ OPC_MoveChild5, ++/*469105*/ OPC_CheckInteger, 1, ++/*469107*/ OPC_CheckType, MVT::i32, ++/*469109*/ OPC_MoveParent, ++/*469110*/ OPC_MoveChild6, ++/*469111*/ OPC_CheckInteger, 1, ++/*469113*/ OPC_CheckType, MVT::i32, ++/*469115*/ OPC_MoveParent, ++/*469116*/ OPC_MoveChild7, ++/*469117*/ OPC_CheckInteger, 1, ++/*469119*/ OPC_CheckType, MVT::i32, ++/*469121*/ OPC_MoveParent, ++/*469122*/ OPC_MoveParent, ++/*469123*/ OPC_MoveParent, ++/*469124*/ OPC_MoveParent, ++/*469125*/ OPC_MoveChild1, ++/*469126*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*469129*/ OPC_CheckChild0Integer, 1, ++/*469131*/ OPC_CheckChild0Type, MVT::i32, ++/*469133*/ OPC_CheckChild1Integer, 1, ++/*469135*/ OPC_CheckChild1Type, MVT::i32, ++/*469137*/ OPC_CheckChild2Integer, 1, ++/*469139*/ OPC_CheckChild2Type, MVT::i32, ++/*469141*/ OPC_CheckChild3Integer, 1, ++/*469143*/ OPC_CheckChild3Type, MVT::i32, ++/*469145*/ OPC_CheckChild4Integer, 1, ++/*469147*/ OPC_CheckChild4Type, MVT::i32, ++/*469149*/ OPC_MoveChild5, ++/*469150*/ OPC_CheckInteger, 1, ++/*469152*/ OPC_CheckType, MVT::i32, ++/*469154*/ OPC_MoveParent, ++/*469155*/ OPC_MoveChild6, ++/*469156*/ OPC_CheckInteger, 1, ++/*469158*/ OPC_CheckType, MVT::i32, ++/*469160*/ OPC_MoveParent, ++/*469161*/ OPC_MoveChild7, ++/*469162*/ OPC_CheckInteger, 1, ++/*469164*/ OPC_CheckType, MVT::i32, ++/*469166*/ OPC_MoveParent, ++/*469167*/ OPC_CheckType, MVT::v8i16, ++/*469169*/ OPC_MoveParent, ++/*469170*/ OPC_CheckType, MVT::v8i16, ++/*469172*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*469174*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*469182*/ /*Scope*/ 107, /*->469290*/ ++/*469183*/ OPC_CheckChild0Same, 0, ++/*469185*/ OPC_CheckChild1Same, 1, ++/*469187*/ OPC_MoveParent, ++/*469188*/ OPC_MoveChild1, ++/*469189*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*469192*/ OPC_CheckChild0Integer, 1, ++/*469194*/ OPC_CheckChild0Type, MVT::i32, ++/*469196*/ OPC_CheckChild1Integer, 1, ++/*469198*/ OPC_CheckChild1Type, MVT::i32, ++/*469200*/ OPC_CheckChild2Integer, 1, ++/*469202*/ OPC_CheckChild2Type, MVT::i32, ++/*469204*/ OPC_CheckChild3Integer, 1, ++/*469206*/ OPC_CheckChild3Type, MVT::i32, ++/*469208*/ OPC_CheckChild4Integer, 1, ++/*469210*/ OPC_CheckChild4Type, MVT::i32, ++/*469212*/ OPC_MoveChild5, ++/*469213*/ OPC_CheckInteger, 1, ++/*469215*/ OPC_CheckType, MVT::i32, ++/*469217*/ OPC_MoveParent, ++/*469218*/ OPC_MoveChild6, ++/*469219*/ OPC_CheckInteger, 1, ++/*469221*/ OPC_CheckType, MVT::i32, ++/*469223*/ OPC_MoveParent, ++/*469224*/ OPC_MoveChild7, ++/*469225*/ OPC_CheckInteger, 1, ++/*469227*/ OPC_CheckType, MVT::i32, ++/*469229*/ OPC_MoveParent, ++/*469230*/ OPC_MoveParent, ++/*469231*/ OPC_MoveParent, ++/*469232*/ OPC_MoveParent, ++/*469233*/ OPC_MoveChild1, ++/*469234*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*469237*/ OPC_CheckChild0Integer, 1, ++/*469239*/ OPC_CheckChild0Type, MVT::i32, ++/*469241*/ OPC_CheckChild1Integer, 1, ++/*469243*/ OPC_CheckChild1Type, MVT::i32, ++/*469245*/ OPC_CheckChild2Integer, 1, ++/*469247*/ OPC_CheckChild2Type, MVT::i32, ++/*469249*/ OPC_CheckChild3Integer, 1, ++/*469251*/ OPC_CheckChild3Type, MVT::i32, ++/*469253*/ OPC_CheckChild4Integer, 1, ++/*469255*/ OPC_CheckChild4Type, MVT::i32, ++/*469257*/ OPC_MoveChild5, ++/*469258*/ OPC_CheckInteger, 1, ++/*469260*/ OPC_CheckType, MVT::i32, ++/*469262*/ OPC_MoveParent, ++/*469263*/ OPC_MoveChild6, ++/*469264*/ OPC_CheckInteger, 1, ++/*469266*/ OPC_CheckType, MVT::i32, ++/*469268*/ OPC_MoveParent, ++/*469269*/ OPC_MoveChild7, ++/*469270*/ OPC_CheckInteger, 1, ++/*469272*/ OPC_CheckType, MVT::i32, ++/*469274*/ OPC_MoveParent, ++/*469275*/ OPC_CheckType, MVT::v8i16, ++/*469277*/ OPC_MoveParent, ++/*469278*/ OPC_CheckType, MVT::v8i16, ++/*469280*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*469282*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*469290*/ 0, /*End of Scope*/ ++/*469291*/ /*Scope*/ 92|128,1/*220*/, /*->469513*/ ++/*469293*/ OPC_CheckChild0Same, 0, ++/*469295*/ OPC_MoveChild1, ++/*469296*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*469299*/ OPC_Scope, 105, /*->469406*/ // 2 children in Scope ++/*469301*/ OPC_MoveChild0, ++/*469302*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*469305*/ OPC_CheckChild0Integer, 1, ++/*469307*/ OPC_CheckChild0Type, MVT::i32, ++/*469309*/ OPC_CheckChild1Integer, 1, ++/*469311*/ OPC_CheckChild1Type, MVT::i32, ++/*469313*/ OPC_CheckChild2Integer, 1, ++/*469315*/ OPC_CheckChild2Type, MVT::i32, ++/*469317*/ OPC_CheckChild3Integer, 1, ++/*469319*/ OPC_CheckChild3Type, MVT::i32, ++/*469321*/ OPC_CheckChild4Integer, 1, ++/*469323*/ OPC_CheckChild4Type, MVT::i32, ++/*469325*/ OPC_MoveChild5, ++/*469326*/ OPC_CheckInteger, 1, ++/*469328*/ OPC_CheckType, MVT::i32, ++/*469330*/ OPC_MoveParent, ++/*469331*/ OPC_MoveChild6, ++/*469332*/ OPC_CheckInteger, 1, ++/*469334*/ OPC_CheckType, MVT::i32, ++/*469336*/ OPC_MoveParent, ++/*469337*/ OPC_MoveChild7, ++/*469338*/ OPC_CheckInteger, 1, ++/*469340*/ OPC_CheckType, MVT::i32, ++/*469342*/ OPC_MoveParent, ++/*469343*/ OPC_MoveParent, ++/*469344*/ OPC_CheckChild1Same, 1, ++/*469346*/ OPC_MoveParent, ++/*469347*/ OPC_MoveParent, ++/*469348*/ OPC_MoveParent, ++/*469349*/ OPC_MoveChild1, ++/*469350*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*469353*/ OPC_CheckChild0Integer, 1, ++/*469355*/ OPC_CheckChild0Type, MVT::i32, ++/*469357*/ OPC_CheckChild1Integer, 1, ++/*469359*/ OPC_CheckChild1Type, MVT::i32, ++/*469361*/ OPC_CheckChild2Integer, 1, ++/*469363*/ OPC_CheckChild2Type, MVT::i32, ++/*469365*/ OPC_CheckChild3Integer, 1, ++/*469367*/ OPC_CheckChild3Type, MVT::i32, ++/*469369*/ OPC_CheckChild4Integer, 1, ++/*469371*/ OPC_CheckChild4Type, MVT::i32, ++/*469373*/ OPC_MoveChild5, ++/*469374*/ OPC_CheckInteger, 1, ++/*469376*/ OPC_CheckType, MVT::i32, ++/*469378*/ OPC_MoveParent, ++/*469379*/ OPC_MoveChild6, ++/*469380*/ OPC_CheckInteger, 1, ++/*469382*/ OPC_CheckType, MVT::i32, ++/*469384*/ OPC_MoveParent, ++/*469385*/ OPC_MoveChild7, ++/*469386*/ OPC_CheckInteger, 1, ++/*469388*/ OPC_CheckType, MVT::i32, ++/*469390*/ OPC_MoveParent, ++/*469391*/ OPC_CheckType, MVT::v8i16, ++/*469393*/ OPC_MoveParent, ++/*469394*/ OPC_CheckType, MVT::v8i16, ++/*469396*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*469398*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*469406*/ /*Scope*/ 105, /*->469512*/ ++/*469407*/ OPC_CheckChild0Same, 1, ++/*469409*/ OPC_MoveChild1, ++/*469410*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*469413*/ OPC_CheckChild0Integer, 1, ++/*469415*/ OPC_CheckChild0Type, MVT::i32, ++/*469417*/ OPC_CheckChild1Integer, 1, ++/*469419*/ OPC_CheckChild1Type, MVT::i32, ++/*469421*/ OPC_CheckChild2Integer, 1, ++/*469423*/ OPC_CheckChild2Type, MVT::i32, ++/*469425*/ OPC_CheckChild3Integer, 1, ++/*469427*/ OPC_CheckChild3Type, MVT::i32, ++/*469429*/ OPC_CheckChild4Integer, 1, ++/*469431*/ OPC_CheckChild4Type, MVT::i32, ++/*469433*/ OPC_MoveChild5, ++/*469434*/ OPC_CheckInteger, 1, ++/*469436*/ OPC_CheckType, MVT::i32, ++/*469438*/ OPC_MoveParent, ++/*469439*/ OPC_MoveChild6, ++/*469440*/ OPC_CheckInteger, 1, ++/*469442*/ OPC_CheckType, MVT::i32, ++/*469444*/ OPC_MoveParent, ++/*469445*/ OPC_MoveChild7, ++/*469446*/ OPC_CheckInteger, 1, ++/*469448*/ OPC_CheckType, MVT::i32, ++/*469450*/ OPC_MoveParent, ++/*469451*/ OPC_MoveParent, ++/*469452*/ OPC_MoveParent, ++/*469453*/ OPC_MoveParent, ++/*469454*/ OPC_MoveParent, ++/*469455*/ OPC_MoveChild1, ++/*469456*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*469459*/ OPC_CheckChild0Integer, 1, ++/*469461*/ OPC_CheckChild0Type, MVT::i32, ++/*469463*/ OPC_CheckChild1Integer, 1, ++/*469465*/ OPC_CheckChild1Type, MVT::i32, ++/*469467*/ OPC_CheckChild2Integer, 1, ++/*469469*/ OPC_CheckChild2Type, MVT::i32, ++/*469471*/ OPC_CheckChild3Integer, 1, ++/*469473*/ OPC_CheckChild3Type, MVT::i32, ++/*469475*/ OPC_CheckChild4Integer, 1, ++/*469477*/ OPC_CheckChild4Type, MVT::i32, ++/*469479*/ OPC_MoveChild5, ++/*469480*/ OPC_CheckInteger, 1, ++/*469482*/ OPC_CheckType, MVT::i32, ++/*469484*/ OPC_MoveParent, ++/*469485*/ OPC_MoveChild6, ++/*469486*/ OPC_CheckInteger, 1, ++/*469488*/ OPC_CheckType, MVT::i32, ++/*469490*/ OPC_MoveParent, ++/*469491*/ OPC_MoveChild7, ++/*469492*/ OPC_CheckInteger, 1, ++/*469494*/ OPC_CheckType, MVT::i32, ++/*469496*/ OPC_MoveParent, ++/*469497*/ OPC_CheckType, MVT::v8i16, ++/*469499*/ OPC_MoveParent, ++/*469500*/ OPC_CheckType, MVT::v8i16, ++/*469502*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*469504*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*469512*/ 0, /*End of Scope*/ ++/*469513*/ /*Scope*/ 92|128,1/*220*/, /*->469735*/ ++/*469515*/ OPC_CheckChild0Same, 1, ++/*469517*/ OPC_MoveChild1, ++/*469518*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*469521*/ OPC_Scope, 105, /*->469628*/ // 2 children in Scope ++/*469523*/ OPC_MoveChild0, ++/*469524*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*469527*/ OPC_CheckChild0Integer, 1, ++/*469529*/ OPC_CheckChild0Type, MVT::i32, ++/*469531*/ OPC_CheckChild1Integer, 1, ++/*469533*/ OPC_CheckChild1Type, MVT::i32, ++/*469535*/ OPC_CheckChild2Integer, 1, ++/*469537*/ OPC_CheckChild2Type, MVT::i32, ++/*469539*/ OPC_CheckChild3Integer, 1, ++/*469541*/ OPC_CheckChild3Type, MVT::i32, ++/*469543*/ OPC_CheckChild4Integer, 1, ++/*469545*/ OPC_CheckChild4Type, MVT::i32, ++/*469547*/ OPC_MoveChild5, ++/*469548*/ OPC_CheckInteger, 1, ++/*469550*/ OPC_CheckType, MVT::i32, ++/*469552*/ OPC_MoveParent, ++/*469553*/ OPC_MoveChild6, ++/*469554*/ OPC_CheckInteger, 1, ++/*469556*/ OPC_CheckType, MVT::i32, ++/*469558*/ OPC_MoveParent, ++/*469559*/ OPC_MoveChild7, ++/*469560*/ OPC_CheckInteger, 1, ++/*469562*/ OPC_CheckType, MVT::i32, ++/*469564*/ OPC_MoveParent, ++/*469565*/ OPC_MoveParent, ++/*469566*/ OPC_CheckChild1Same, 0, ++/*469568*/ OPC_MoveParent, ++/*469569*/ OPC_MoveParent, ++/*469570*/ OPC_MoveParent, ++/*469571*/ OPC_MoveChild1, ++/*469572*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*469575*/ OPC_CheckChild0Integer, 1, ++/*469577*/ OPC_CheckChild0Type, MVT::i32, ++/*469579*/ OPC_CheckChild1Integer, 1, ++/*469581*/ OPC_CheckChild1Type, MVT::i32, ++/*469583*/ OPC_CheckChild2Integer, 1, ++/*469585*/ OPC_CheckChild2Type, MVT::i32, ++/*469587*/ OPC_CheckChild3Integer, 1, ++/*469589*/ OPC_CheckChild3Type, MVT::i32, ++/*469591*/ OPC_CheckChild4Integer, 1, ++/*469593*/ OPC_CheckChild4Type, MVT::i32, ++/*469595*/ OPC_MoveChild5, ++/*469596*/ OPC_CheckInteger, 1, ++/*469598*/ OPC_CheckType, MVT::i32, ++/*469600*/ OPC_MoveParent, ++/*469601*/ OPC_MoveChild6, ++/*469602*/ OPC_CheckInteger, 1, ++/*469604*/ OPC_CheckType, MVT::i32, ++/*469606*/ OPC_MoveParent, ++/*469607*/ OPC_MoveChild7, ++/*469608*/ OPC_CheckInteger, 1, ++/*469610*/ OPC_CheckType, MVT::i32, ++/*469612*/ OPC_MoveParent, ++/*469613*/ OPC_CheckType, MVT::v8i16, ++/*469615*/ OPC_MoveParent, ++/*469616*/ OPC_CheckType, MVT::v8i16, ++/*469618*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*469620*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*469628*/ /*Scope*/ 105, /*->469734*/ ++/*469629*/ OPC_CheckChild0Same, 0, ++/*469631*/ OPC_MoveChild1, ++/*469632*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*469635*/ OPC_CheckChild0Integer, 1, ++/*469637*/ OPC_CheckChild0Type, MVT::i32, ++/*469639*/ OPC_CheckChild1Integer, 1, ++/*469641*/ OPC_CheckChild1Type, MVT::i32, ++/*469643*/ OPC_CheckChild2Integer, 1, ++/*469645*/ OPC_CheckChild2Type, MVT::i32, ++/*469647*/ OPC_CheckChild3Integer, 1, ++/*469649*/ OPC_CheckChild3Type, MVT::i32, ++/*469651*/ OPC_CheckChild4Integer, 1, ++/*469653*/ OPC_CheckChild4Type, MVT::i32, ++/*469655*/ OPC_MoveChild5, ++/*469656*/ OPC_CheckInteger, 1, ++/*469658*/ OPC_CheckType, MVT::i32, ++/*469660*/ OPC_MoveParent, ++/*469661*/ OPC_MoveChild6, ++/*469662*/ OPC_CheckInteger, 1, ++/*469664*/ OPC_CheckType, MVT::i32, ++/*469666*/ OPC_MoveParent, ++/*469667*/ OPC_MoveChild7, ++/*469668*/ OPC_CheckInteger, 1, ++/*469670*/ OPC_CheckType, MVT::i32, ++/*469672*/ OPC_MoveParent, ++/*469673*/ OPC_MoveParent, ++/*469674*/ OPC_MoveParent, ++/*469675*/ OPC_MoveParent, ++/*469676*/ OPC_MoveParent, ++/*469677*/ OPC_MoveChild1, ++/*469678*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*469681*/ OPC_CheckChild0Integer, 1, ++/*469683*/ OPC_CheckChild0Type, MVT::i32, ++/*469685*/ OPC_CheckChild1Integer, 1, ++/*469687*/ OPC_CheckChild1Type, MVT::i32, ++/*469689*/ OPC_CheckChild2Integer, 1, ++/*469691*/ OPC_CheckChild2Type, MVT::i32, ++/*469693*/ OPC_CheckChild3Integer, 1, ++/*469695*/ OPC_CheckChild3Type, MVT::i32, ++/*469697*/ OPC_CheckChild4Integer, 1, ++/*469699*/ OPC_CheckChild4Type, MVT::i32, ++/*469701*/ OPC_MoveChild5, ++/*469702*/ OPC_CheckInteger, 1, ++/*469704*/ OPC_CheckType, MVT::i32, ++/*469706*/ OPC_MoveParent, ++/*469707*/ OPC_MoveChild6, ++/*469708*/ OPC_CheckInteger, 1, ++/*469710*/ OPC_CheckType, MVT::i32, ++/*469712*/ OPC_MoveParent, ++/*469713*/ OPC_MoveChild7, ++/*469714*/ OPC_CheckInteger, 1, ++/*469716*/ OPC_CheckType, MVT::i32, ++/*469718*/ OPC_MoveParent, ++/*469719*/ OPC_CheckType, MVT::v8i16, ++/*469721*/ OPC_MoveParent, ++/*469722*/ OPC_CheckType, MVT::v8i16, ++/*469724*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*469726*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*469734*/ 0, /*End of Scope*/ ++/*469735*/ /*Scope*/ 51|128,1/*179*/, /*->469916*/ ++/*469737*/ OPC_MoveChild0, ++/*469738*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*469741*/ OPC_CheckChild0Integer, 1, ++/*469743*/ OPC_CheckChild0Type, MVT::i32, ++/*469745*/ OPC_CheckChild1Integer, 1, ++/*469747*/ OPC_CheckChild1Type, MVT::i32, ++/*469749*/ OPC_CheckChild2Integer, 1, ++/*469751*/ OPC_CheckChild2Type, MVT::i32, ++/*469753*/ OPC_CheckChild3Integer, 1, ++/*469755*/ OPC_CheckChild3Type, MVT::i32, ++/*469757*/ OPC_CheckChild4Integer, 1, ++/*469759*/ OPC_CheckChild4Type, MVT::i32, ++/*469761*/ OPC_MoveChild5, ++/*469762*/ OPC_CheckInteger, 1, ++/*469764*/ OPC_CheckType, MVT::i32, ++/*469766*/ OPC_MoveParent, ++/*469767*/ OPC_MoveChild6, ++/*469768*/ OPC_CheckInteger, 1, ++/*469770*/ OPC_CheckType, MVT::i32, ++/*469772*/ OPC_MoveParent, ++/*469773*/ OPC_MoveChild7, ++/*469774*/ OPC_CheckInteger, 1, ++/*469776*/ OPC_CheckType, MVT::i32, ++/*469778*/ OPC_MoveParent, ++/*469779*/ OPC_MoveParent, ++/*469780*/ OPC_MoveChild1, ++/*469781*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*469784*/ OPC_Scope, 64, /*->469850*/ // 2 children in Scope ++/*469786*/ OPC_CheckChild0Same, 1, ++/*469788*/ OPC_CheckChild1Same, 0, ++/*469790*/ OPC_MoveParent, ++/*469791*/ OPC_MoveParent, ++/*469792*/ OPC_MoveParent, ++/*469793*/ OPC_MoveChild1, ++/*469794*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*469797*/ OPC_CheckChild0Integer, 1, ++/*469799*/ OPC_CheckChild0Type, MVT::i32, ++/*469801*/ OPC_CheckChild1Integer, 1, ++/*469803*/ OPC_CheckChild1Type, MVT::i32, ++/*469805*/ OPC_CheckChild2Integer, 1, ++/*469807*/ OPC_CheckChild2Type, MVT::i32, ++/*469809*/ OPC_CheckChild3Integer, 1, ++/*469811*/ OPC_CheckChild3Type, MVT::i32, ++/*469813*/ OPC_CheckChild4Integer, 1, ++/*469815*/ OPC_CheckChild4Type, MVT::i32, ++/*469817*/ OPC_MoveChild5, ++/*469818*/ OPC_CheckInteger, 1, ++/*469820*/ OPC_CheckType, MVT::i32, ++/*469822*/ OPC_MoveParent, ++/*469823*/ OPC_MoveChild6, ++/*469824*/ OPC_CheckInteger, 1, ++/*469826*/ OPC_CheckType, MVT::i32, ++/*469828*/ OPC_MoveParent, ++/*469829*/ OPC_MoveChild7, ++/*469830*/ OPC_CheckInteger, 1, ++/*469832*/ OPC_CheckType, MVT::i32, ++/*469834*/ OPC_MoveParent, ++/*469835*/ OPC_CheckType, MVT::v8i16, ++/*469837*/ OPC_MoveParent, ++/*469838*/ OPC_CheckType, MVT::v8i16, ++/*469840*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*469842*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*469850*/ /*Scope*/ 64, /*->469915*/ ++/*469851*/ OPC_CheckChild0Same, 0, ++/*469853*/ OPC_CheckChild1Same, 1, ++/*469855*/ OPC_MoveParent, ++/*469856*/ OPC_MoveParent, ++/*469857*/ OPC_MoveParent, ++/*469858*/ OPC_MoveChild1, ++/*469859*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*469862*/ OPC_CheckChild0Integer, 1, ++/*469864*/ OPC_CheckChild0Type, MVT::i32, ++/*469866*/ OPC_CheckChild1Integer, 1, ++/*469868*/ OPC_CheckChild1Type, MVT::i32, ++/*469870*/ OPC_CheckChild2Integer, 1, ++/*469872*/ OPC_CheckChild2Type, MVT::i32, ++/*469874*/ OPC_CheckChild3Integer, 1, ++/*469876*/ OPC_CheckChild3Type, MVT::i32, ++/*469878*/ OPC_CheckChild4Integer, 1, ++/*469880*/ OPC_CheckChild4Type, MVT::i32, ++/*469882*/ OPC_MoveChild5, ++/*469883*/ OPC_CheckInteger, 1, ++/*469885*/ OPC_CheckType, MVT::i32, ++/*469887*/ OPC_MoveParent, ++/*469888*/ OPC_MoveChild6, ++/*469889*/ OPC_CheckInteger, 1, ++/*469891*/ OPC_CheckType, MVT::i32, ++/*469893*/ OPC_MoveParent, ++/*469894*/ OPC_MoveChild7, ++/*469895*/ OPC_CheckInteger, 1, ++/*469897*/ OPC_CheckType, MVT::i32, ++/*469899*/ OPC_MoveParent, ++/*469900*/ OPC_CheckType, MVT::v8i16, ++/*469902*/ OPC_MoveParent, ++/*469903*/ OPC_CheckType, MVT::v8i16, ++/*469905*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*469907*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*469915*/ 0, /*End of Scope*/ ++/*469916*/ 0, /*End of Scope*/ ++/*469917*/ /*Scope*/ 99|128,10/*1379*/, /*->471298*/ ++/*469919*/ OPC_MoveChild0, ++/*469920*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*469923*/ OPC_CheckChild0Integer, 1, ++/*469925*/ OPC_CheckChild0Type, MVT::i32, ++/*469927*/ OPC_CheckChild1Integer, 1, ++/*469929*/ OPC_CheckChild1Type, MVT::i32, ++/*469931*/ OPC_CheckChild2Integer, 1, ++/*469933*/ OPC_CheckChild2Type, MVT::i32, ++/*469935*/ OPC_CheckChild3Integer, 1, ++/*469937*/ OPC_CheckChild3Type, MVT::i32, ++/*469939*/ OPC_CheckChild4Integer, 1, ++/*469941*/ OPC_CheckChild4Type, MVT::i32, ++/*469943*/ OPC_MoveChild5, ++/*469944*/ OPC_CheckInteger, 1, ++/*469946*/ OPC_CheckType, MVT::i32, ++/*469948*/ OPC_MoveParent, ++/*469949*/ OPC_MoveChild6, ++/*469950*/ OPC_CheckInteger, 1, ++/*469952*/ OPC_CheckType, MVT::i32, ++/*469954*/ OPC_MoveParent, ++/*469955*/ OPC_MoveChild7, ++/*469956*/ OPC_CheckInteger, 1, ++/*469958*/ OPC_CheckType, MVT::i32, ++/*469960*/ OPC_MoveParent, ++/*469961*/ OPC_MoveParent, ++/*469962*/ OPC_RecordChild1, // #1 = $b ++/*469963*/ OPC_MoveParent, ++/*469964*/ OPC_MoveParent, ++/*469965*/ OPC_MoveChild1, ++/*469966*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*469969*/ OPC_CheckChild0Integer, 15, ++/*469971*/ OPC_CheckChild0Type, MVT::i32, ++/*469973*/ OPC_CheckChild1Integer, 15, ++/*469975*/ OPC_CheckChild1Type, MVT::i32, ++/*469977*/ OPC_CheckChild2Integer, 15, ++/*469979*/ OPC_CheckChild2Type, MVT::i32, ++/*469981*/ OPC_CheckChild3Integer, 15, ++/*469983*/ OPC_CheckChild3Type, MVT::i32, ++/*469985*/ OPC_CheckChild4Integer, 15, ++/*469987*/ OPC_CheckChild4Type, MVT::i32, ++/*469989*/ OPC_MoveChild5, ++/*469990*/ OPC_CheckInteger, 15, ++/*469992*/ OPC_CheckType, MVT::i32, ++/*469994*/ OPC_MoveParent, ++/*469995*/ OPC_MoveChild6, ++/*469996*/ OPC_CheckInteger, 15, ++/*469998*/ OPC_CheckType, MVT::i32, ++/*470000*/ OPC_MoveParent, ++/*470001*/ OPC_MoveChild7, ++/*470002*/ OPC_CheckInteger, 15, ++/*470004*/ OPC_CheckType, MVT::i32, ++/*470006*/ OPC_MoveParent, ++/*470007*/ OPC_CheckType, MVT::v8i16, ++/*470009*/ OPC_MoveParent, ++/*470010*/ OPC_MoveParent, ++/*470011*/ OPC_MoveChild1, ++/*470012*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*470015*/ OPC_Scope, 14|128,5/*654*/, /*->470672*/ // 4 children in Scope ++/*470018*/ OPC_MoveChild0, ++/*470019*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*470022*/ OPC_Scope, 107, /*->470131*/ // 6 children in Scope ++/*470024*/ OPC_MoveChild0, ++/*470025*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*470028*/ OPC_CheckChild0Integer, 1, ++/*470030*/ OPC_CheckChild0Type, MVT::i32, ++/*470032*/ OPC_CheckChild1Integer, 1, ++/*470034*/ OPC_CheckChild1Type, MVT::i32, ++/*470036*/ OPC_CheckChild2Integer, 1, ++/*470038*/ OPC_CheckChild2Type, MVT::i32, ++/*470040*/ OPC_CheckChild3Integer, 1, ++/*470042*/ OPC_CheckChild3Type, MVT::i32, ++/*470044*/ OPC_CheckChild4Integer, 1, ++/*470046*/ OPC_CheckChild4Type, MVT::i32, ++/*470048*/ OPC_MoveChild5, ++/*470049*/ OPC_CheckInteger, 1, ++/*470051*/ OPC_CheckType, MVT::i32, ++/*470053*/ OPC_MoveParent, ++/*470054*/ OPC_MoveChild6, ++/*470055*/ OPC_CheckInteger, 1, ++/*470057*/ OPC_CheckType, MVT::i32, ++/*470059*/ OPC_MoveParent, ++/*470060*/ OPC_MoveChild7, ++/*470061*/ OPC_CheckInteger, 1, ++/*470063*/ OPC_CheckType, MVT::i32, ++/*470065*/ OPC_MoveParent, ++/*470066*/ OPC_MoveParent, ++/*470067*/ OPC_CheckChild1Same, 0, ++/*470069*/ OPC_MoveParent, ++/*470070*/ OPC_CheckChild1Same, 1, ++/*470072*/ OPC_MoveParent, ++/*470073*/ OPC_MoveParent, ++/*470074*/ OPC_MoveChild1, ++/*470075*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*470078*/ OPC_CheckChild0Integer, 1, ++/*470080*/ OPC_CheckChild0Type, MVT::i32, ++/*470082*/ OPC_CheckChild1Integer, 1, ++/*470084*/ OPC_CheckChild1Type, MVT::i32, ++/*470086*/ OPC_CheckChild2Integer, 1, ++/*470088*/ OPC_CheckChild2Type, MVT::i32, ++/*470090*/ OPC_CheckChild3Integer, 1, ++/*470092*/ OPC_CheckChild3Type, MVT::i32, ++/*470094*/ OPC_CheckChild4Integer, 1, ++/*470096*/ OPC_CheckChild4Type, MVT::i32, ++/*470098*/ OPC_MoveChild5, ++/*470099*/ OPC_CheckInteger, 1, ++/*470101*/ OPC_CheckType, MVT::i32, ++/*470103*/ OPC_MoveParent, ++/*470104*/ OPC_MoveChild6, ++/*470105*/ OPC_CheckInteger, 1, ++/*470107*/ OPC_CheckType, MVT::i32, ++/*470109*/ OPC_MoveParent, ++/*470110*/ OPC_MoveChild7, ++/*470111*/ OPC_CheckInteger, 1, ++/*470113*/ OPC_CheckType, MVT::i32, ++/*470115*/ OPC_MoveParent, ++/*470116*/ OPC_CheckType, MVT::v8i16, ++/*470118*/ OPC_MoveParent, ++/*470119*/ OPC_CheckType, MVT::v8i16, ++/*470121*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*470123*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a), LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*470131*/ /*Scope*/ 107, /*->470239*/ ++/*470132*/ OPC_CheckChild0Same, 0, ++/*470134*/ OPC_MoveChild1, ++/*470135*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*470138*/ OPC_CheckChild0Integer, 1, ++/*470140*/ OPC_CheckChild0Type, MVT::i32, ++/*470142*/ OPC_CheckChild1Integer, 1, ++/*470144*/ OPC_CheckChild1Type, MVT::i32, ++/*470146*/ OPC_CheckChild2Integer, 1, ++/*470148*/ OPC_CheckChild2Type, MVT::i32, ++/*470150*/ OPC_CheckChild3Integer, 1, ++/*470152*/ OPC_CheckChild3Type, MVT::i32, ++/*470154*/ OPC_CheckChild4Integer, 1, ++/*470156*/ OPC_CheckChild4Type, MVT::i32, ++/*470158*/ OPC_MoveChild5, ++/*470159*/ OPC_CheckInteger, 1, ++/*470161*/ OPC_CheckType, MVT::i32, ++/*470163*/ OPC_MoveParent, ++/*470164*/ OPC_MoveChild6, ++/*470165*/ OPC_CheckInteger, 1, ++/*470167*/ OPC_CheckType, MVT::i32, ++/*470169*/ OPC_MoveParent, ++/*470170*/ OPC_MoveChild7, ++/*470171*/ OPC_CheckInteger, 1, ++/*470173*/ OPC_CheckType, MVT::i32, ++/*470175*/ OPC_MoveParent, ++/*470176*/ OPC_MoveParent, ++/*470177*/ OPC_MoveParent, ++/*470178*/ OPC_CheckChild1Same, 1, ++/*470180*/ OPC_MoveParent, ++/*470181*/ OPC_MoveParent, ++/*470182*/ OPC_MoveChild1, ++/*470183*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*470186*/ OPC_CheckChild0Integer, 1, ++/*470188*/ OPC_CheckChild0Type, MVT::i32, ++/*470190*/ OPC_CheckChild1Integer, 1, ++/*470192*/ OPC_CheckChild1Type, MVT::i32, ++/*470194*/ OPC_CheckChild2Integer, 1, ++/*470196*/ OPC_CheckChild2Type, MVT::i32, ++/*470198*/ OPC_CheckChild3Integer, 1, ++/*470200*/ OPC_CheckChild3Type, MVT::i32, ++/*470202*/ OPC_CheckChild4Integer, 1, ++/*470204*/ OPC_CheckChild4Type, MVT::i32, ++/*470206*/ OPC_MoveChild5, ++/*470207*/ OPC_CheckInteger, 1, ++/*470209*/ OPC_CheckType, MVT::i32, ++/*470211*/ OPC_MoveParent, ++/*470212*/ OPC_MoveChild6, ++/*470213*/ OPC_CheckInteger, 1, ++/*470215*/ OPC_CheckType, MVT::i32, ++/*470217*/ OPC_MoveParent, ++/*470218*/ OPC_MoveChild7, ++/*470219*/ OPC_CheckInteger, 1, ++/*470221*/ OPC_CheckType, MVT::i32, ++/*470223*/ OPC_MoveParent, ++/*470224*/ OPC_CheckType, MVT::v8i16, ++/*470226*/ OPC_MoveParent, ++/*470227*/ OPC_CheckType, MVT::v8i16, ++/*470229*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*470231*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*470239*/ /*Scope*/ 107, /*->470347*/ ++/*470240*/ OPC_MoveChild0, ++/*470241*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*470244*/ OPC_CheckChild0Integer, 1, ++/*470246*/ OPC_CheckChild0Type, MVT::i32, ++/*470248*/ OPC_CheckChild1Integer, 1, ++/*470250*/ OPC_CheckChild1Type, MVT::i32, ++/*470252*/ OPC_CheckChild2Integer, 1, ++/*470254*/ OPC_CheckChild2Type, MVT::i32, ++/*470256*/ OPC_CheckChild3Integer, 1, ++/*470258*/ OPC_CheckChild3Type, MVT::i32, ++/*470260*/ OPC_CheckChild4Integer, 1, ++/*470262*/ OPC_CheckChild4Type, MVT::i32, ++/*470264*/ OPC_MoveChild5, ++/*470265*/ OPC_CheckInteger, 1, ++/*470267*/ OPC_CheckType, MVT::i32, ++/*470269*/ OPC_MoveParent, ++/*470270*/ OPC_MoveChild6, ++/*470271*/ OPC_CheckInteger, 1, ++/*470273*/ OPC_CheckType, MVT::i32, ++/*470275*/ OPC_MoveParent, ++/*470276*/ OPC_MoveChild7, ++/*470277*/ OPC_CheckInteger, 1, ++/*470279*/ OPC_CheckType, MVT::i32, ++/*470281*/ OPC_MoveParent, ++/*470282*/ OPC_MoveParent, ++/*470283*/ OPC_CheckChild1Same, 1, ++/*470285*/ OPC_MoveParent, ++/*470286*/ OPC_CheckChild1Same, 0, ++/*470288*/ OPC_MoveParent, ++/*470289*/ OPC_MoveParent, ++/*470290*/ OPC_MoveChild1, ++/*470291*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*470294*/ OPC_CheckChild0Integer, 1, ++/*470296*/ OPC_CheckChild0Type, MVT::i32, ++/*470298*/ OPC_CheckChild1Integer, 1, ++/*470300*/ OPC_CheckChild1Type, MVT::i32, ++/*470302*/ OPC_CheckChild2Integer, 1, ++/*470304*/ OPC_CheckChild2Type, MVT::i32, ++/*470306*/ OPC_CheckChild3Integer, 1, ++/*470308*/ OPC_CheckChild3Type, MVT::i32, ++/*470310*/ OPC_CheckChild4Integer, 1, ++/*470312*/ OPC_CheckChild4Type, MVT::i32, ++/*470314*/ OPC_MoveChild5, ++/*470315*/ OPC_CheckInteger, 1, ++/*470317*/ OPC_CheckType, MVT::i32, ++/*470319*/ OPC_MoveParent, ++/*470320*/ OPC_MoveChild6, ++/*470321*/ OPC_CheckInteger, 1, ++/*470323*/ OPC_CheckType, MVT::i32, ++/*470325*/ OPC_MoveParent, ++/*470326*/ OPC_MoveChild7, ++/*470327*/ OPC_CheckInteger, 1, ++/*470329*/ OPC_CheckType, MVT::i32, ++/*470331*/ OPC_MoveParent, ++/*470332*/ OPC_CheckType, MVT::v8i16, ++/*470334*/ OPC_MoveParent, ++/*470335*/ OPC_CheckType, MVT::v8i16, ++/*470337*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*470339*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b), LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*470347*/ /*Scope*/ 107, /*->470455*/ ++/*470348*/ OPC_CheckChild0Same, 1, ++/*470350*/ OPC_MoveChild1, ++/*470351*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*470354*/ OPC_CheckChild0Integer, 1, ++/*470356*/ OPC_CheckChild0Type, MVT::i32, ++/*470358*/ OPC_CheckChild1Integer, 1, ++/*470360*/ OPC_CheckChild1Type, MVT::i32, ++/*470362*/ OPC_CheckChild2Integer, 1, ++/*470364*/ OPC_CheckChild2Type, MVT::i32, ++/*470366*/ OPC_CheckChild3Integer, 1, ++/*470368*/ OPC_CheckChild3Type, MVT::i32, ++/*470370*/ OPC_CheckChild4Integer, 1, ++/*470372*/ OPC_CheckChild4Type, MVT::i32, ++/*470374*/ OPC_MoveChild5, ++/*470375*/ OPC_CheckInteger, 1, ++/*470377*/ OPC_CheckType, MVT::i32, ++/*470379*/ OPC_MoveParent, ++/*470380*/ OPC_MoveChild6, ++/*470381*/ OPC_CheckInteger, 1, ++/*470383*/ OPC_CheckType, MVT::i32, ++/*470385*/ OPC_MoveParent, ++/*470386*/ OPC_MoveChild7, ++/*470387*/ OPC_CheckInteger, 1, ++/*470389*/ OPC_CheckType, MVT::i32, ++/*470391*/ OPC_MoveParent, ++/*470392*/ OPC_MoveParent, ++/*470393*/ OPC_MoveParent, ++/*470394*/ OPC_CheckChild1Same, 0, ++/*470396*/ OPC_MoveParent, ++/*470397*/ OPC_MoveParent, ++/*470398*/ OPC_MoveChild1, ++/*470399*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*470402*/ OPC_CheckChild0Integer, 1, ++/*470404*/ OPC_CheckChild0Type, MVT::i32, ++/*470406*/ OPC_CheckChild1Integer, 1, ++/*470408*/ OPC_CheckChild1Type, MVT::i32, ++/*470410*/ OPC_CheckChild2Integer, 1, ++/*470412*/ OPC_CheckChild2Type, MVT::i32, ++/*470414*/ OPC_CheckChild3Integer, 1, ++/*470416*/ OPC_CheckChild3Type, MVT::i32, ++/*470418*/ OPC_CheckChild4Integer, 1, ++/*470420*/ OPC_CheckChild4Type, MVT::i32, ++/*470422*/ OPC_MoveChild5, ++/*470423*/ OPC_CheckInteger, 1, ++/*470425*/ OPC_CheckType, MVT::i32, ++/*470427*/ OPC_MoveParent, ++/*470428*/ OPC_MoveChild6, ++/*470429*/ OPC_CheckInteger, 1, ++/*470431*/ OPC_CheckType, MVT::i32, ++/*470433*/ OPC_MoveParent, ++/*470434*/ OPC_MoveChild7, ++/*470435*/ OPC_CheckInteger, 1, ++/*470437*/ OPC_CheckType, MVT::i32, ++/*470439*/ OPC_MoveParent, ++/*470440*/ OPC_CheckType, MVT::v8i16, ++/*470442*/ OPC_MoveParent, ++/*470443*/ OPC_CheckType, MVT::v8i16, ++/*470445*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*470447*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*470455*/ /*Scope*/ 107, /*->470563*/ ++/*470456*/ OPC_CheckChild0Same, 0, ++/*470458*/ OPC_CheckChild1Same, 1, ++/*470460*/ OPC_MoveParent, ++/*470461*/ OPC_MoveChild1, ++/*470462*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*470465*/ OPC_CheckChild0Integer, 1, ++/*470467*/ OPC_CheckChild0Type, MVT::i32, ++/*470469*/ OPC_CheckChild1Integer, 1, ++/*470471*/ OPC_CheckChild1Type, MVT::i32, ++/*470473*/ OPC_CheckChild2Integer, 1, ++/*470475*/ OPC_CheckChild2Type, MVT::i32, ++/*470477*/ OPC_CheckChild3Integer, 1, ++/*470479*/ OPC_CheckChild3Type, MVT::i32, ++/*470481*/ OPC_CheckChild4Integer, 1, ++/*470483*/ OPC_CheckChild4Type, MVT::i32, ++/*470485*/ OPC_MoveChild5, ++/*470486*/ OPC_CheckInteger, 1, ++/*470488*/ OPC_CheckType, MVT::i32, ++/*470490*/ OPC_MoveParent, ++/*470491*/ OPC_MoveChild6, ++/*470492*/ OPC_CheckInteger, 1, ++/*470494*/ OPC_CheckType, MVT::i32, ++/*470496*/ OPC_MoveParent, ++/*470497*/ OPC_MoveChild7, ++/*470498*/ OPC_CheckInteger, 1, ++/*470500*/ OPC_CheckType, MVT::i32, ++/*470502*/ OPC_MoveParent, ++/*470503*/ OPC_MoveParent, ++/*470504*/ OPC_MoveParent, ++/*470505*/ OPC_MoveParent, ++/*470506*/ OPC_MoveChild1, ++/*470507*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*470510*/ OPC_CheckChild0Integer, 1, ++/*470512*/ OPC_CheckChild0Type, MVT::i32, ++/*470514*/ OPC_CheckChild1Integer, 1, ++/*470516*/ OPC_CheckChild1Type, MVT::i32, ++/*470518*/ OPC_CheckChild2Integer, 1, ++/*470520*/ OPC_CheckChild2Type, MVT::i32, ++/*470522*/ OPC_CheckChild3Integer, 1, ++/*470524*/ OPC_CheckChild3Type, MVT::i32, ++/*470526*/ OPC_CheckChild4Integer, 1, ++/*470528*/ OPC_CheckChild4Type, MVT::i32, ++/*470530*/ OPC_MoveChild5, ++/*470531*/ OPC_CheckInteger, 1, ++/*470533*/ OPC_CheckType, MVT::i32, ++/*470535*/ OPC_MoveParent, ++/*470536*/ OPC_MoveChild6, ++/*470537*/ OPC_CheckInteger, 1, ++/*470539*/ OPC_CheckType, MVT::i32, ++/*470541*/ OPC_MoveParent, ++/*470542*/ OPC_MoveChild7, ++/*470543*/ OPC_CheckInteger, 1, ++/*470545*/ OPC_CheckType, MVT::i32, ++/*470547*/ OPC_MoveParent, ++/*470548*/ OPC_CheckType, MVT::v8i16, ++/*470550*/ OPC_MoveParent, ++/*470551*/ OPC_CheckType, MVT::v8i16, ++/*470553*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*470555*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*470563*/ /*Scope*/ 107, /*->470671*/ ++/*470564*/ OPC_CheckChild0Same, 1, ++/*470566*/ OPC_CheckChild1Same, 0, ++/*470568*/ OPC_MoveParent, ++/*470569*/ OPC_MoveChild1, ++/*470570*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*470573*/ OPC_CheckChild0Integer, 1, ++/*470575*/ OPC_CheckChild0Type, MVT::i32, ++/*470577*/ OPC_CheckChild1Integer, 1, ++/*470579*/ OPC_CheckChild1Type, MVT::i32, ++/*470581*/ OPC_CheckChild2Integer, 1, ++/*470583*/ OPC_CheckChild2Type, MVT::i32, ++/*470585*/ OPC_CheckChild3Integer, 1, ++/*470587*/ OPC_CheckChild3Type, MVT::i32, ++/*470589*/ OPC_CheckChild4Integer, 1, ++/*470591*/ OPC_CheckChild4Type, MVT::i32, ++/*470593*/ OPC_MoveChild5, ++/*470594*/ OPC_CheckInteger, 1, ++/*470596*/ OPC_CheckType, MVT::i32, ++/*470598*/ OPC_MoveParent, ++/*470599*/ OPC_MoveChild6, ++/*470600*/ OPC_CheckInteger, 1, ++/*470602*/ OPC_CheckType, MVT::i32, ++/*470604*/ OPC_MoveParent, ++/*470605*/ OPC_MoveChild7, ++/*470606*/ OPC_CheckInteger, 1, ++/*470608*/ OPC_CheckType, MVT::i32, ++/*470610*/ OPC_MoveParent, ++/*470611*/ OPC_MoveParent, ++/*470612*/ OPC_MoveParent, ++/*470613*/ OPC_MoveParent, ++/*470614*/ OPC_MoveChild1, ++/*470615*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*470618*/ OPC_CheckChild0Integer, 1, ++/*470620*/ OPC_CheckChild0Type, MVT::i32, ++/*470622*/ OPC_CheckChild1Integer, 1, ++/*470624*/ OPC_CheckChild1Type, MVT::i32, ++/*470626*/ OPC_CheckChild2Integer, 1, ++/*470628*/ OPC_CheckChild2Type, MVT::i32, ++/*470630*/ OPC_CheckChild3Integer, 1, ++/*470632*/ OPC_CheckChild3Type, MVT::i32, ++/*470634*/ OPC_CheckChild4Integer, 1, ++/*470636*/ OPC_CheckChild4Type, MVT::i32, ++/*470638*/ OPC_MoveChild5, ++/*470639*/ OPC_CheckInteger, 1, ++/*470641*/ OPC_CheckType, MVT::i32, ++/*470643*/ OPC_MoveParent, ++/*470644*/ OPC_MoveChild6, ++/*470645*/ OPC_CheckInteger, 1, ++/*470647*/ OPC_CheckType, MVT::i32, ++/*470649*/ OPC_MoveParent, ++/*470650*/ OPC_MoveChild7, ++/*470651*/ OPC_CheckInteger, 1, ++/*470653*/ OPC_CheckType, MVT::i32, ++/*470655*/ OPC_MoveParent, ++/*470656*/ OPC_CheckType, MVT::v8i16, ++/*470658*/ OPC_MoveParent, ++/*470659*/ OPC_CheckType, MVT::v8i16, ++/*470661*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*470663*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*470671*/ 0, /*End of Scope*/ ++/*470672*/ /*Scope*/ 92|128,1/*220*/, /*->470894*/ ++/*470674*/ OPC_CheckChild0Same, 1, ++/*470676*/ OPC_MoveChild1, ++/*470677*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*470680*/ OPC_Scope, 105, /*->470787*/ // 2 children in Scope ++/*470682*/ OPC_MoveChild0, ++/*470683*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*470686*/ OPC_CheckChild0Integer, 1, ++/*470688*/ OPC_CheckChild0Type, MVT::i32, ++/*470690*/ OPC_CheckChild1Integer, 1, ++/*470692*/ OPC_CheckChild1Type, MVT::i32, ++/*470694*/ OPC_CheckChild2Integer, 1, ++/*470696*/ OPC_CheckChild2Type, MVT::i32, ++/*470698*/ OPC_CheckChild3Integer, 1, ++/*470700*/ OPC_CheckChild3Type, MVT::i32, ++/*470702*/ OPC_CheckChild4Integer, 1, ++/*470704*/ OPC_CheckChild4Type, MVT::i32, ++/*470706*/ OPC_MoveChild5, ++/*470707*/ OPC_CheckInteger, 1, ++/*470709*/ OPC_CheckType, MVT::i32, ++/*470711*/ OPC_MoveParent, ++/*470712*/ OPC_MoveChild6, ++/*470713*/ OPC_CheckInteger, 1, ++/*470715*/ OPC_CheckType, MVT::i32, ++/*470717*/ OPC_MoveParent, ++/*470718*/ OPC_MoveChild7, ++/*470719*/ OPC_CheckInteger, 1, ++/*470721*/ OPC_CheckType, MVT::i32, ++/*470723*/ OPC_MoveParent, ++/*470724*/ OPC_MoveParent, ++/*470725*/ OPC_CheckChild1Same, 0, ++/*470727*/ OPC_MoveParent, ++/*470728*/ OPC_MoveParent, ++/*470729*/ OPC_MoveParent, ++/*470730*/ OPC_MoveChild1, ++/*470731*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*470734*/ OPC_CheckChild0Integer, 1, ++/*470736*/ OPC_CheckChild0Type, MVT::i32, ++/*470738*/ OPC_CheckChild1Integer, 1, ++/*470740*/ OPC_CheckChild1Type, MVT::i32, ++/*470742*/ OPC_CheckChild2Integer, 1, ++/*470744*/ OPC_CheckChild2Type, MVT::i32, ++/*470746*/ OPC_CheckChild3Integer, 1, ++/*470748*/ OPC_CheckChild3Type, MVT::i32, ++/*470750*/ OPC_CheckChild4Integer, 1, ++/*470752*/ OPC_CheckChild4Type, MVT::i32, ++/*470754*/ OPC_MoveChild5, ++/*470755*/ OPC_CheckInteger, 1, ++/*470757*/ OPC_CheckType, MVT::i32, ++/*470759*/ OPC_MoveParent, ++/*470760*/ OPC_MoveChild6, ++/*470761*/ OPC_CheckInteger, 1, ++/*470763*/ OPC_CheckType, MVT::i32, ++/*470765*/ OPC_MoveParent, ++/*470766*/ OPC_MoveChild7, ++/*470767*/ OPC_CheckInteger, 1, ++/*470769*/ OPC_CheckType, MVT::i32, ++/*470771*/ OPC_MoveParent, ++/*470772*/ OPC_CheckType, MVT::v8i16, ++/*470774*/ OPC_MoveParent, ++/*470775*/ OPC_CheckType, MVT::v8i16, ++/*470777*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*470779*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*470787*/ /*Scope*/ 105, /*->470893*/ ++/*470788*/ OPC_CheckChild0Same, 0, ++/*470790*/ OPC_MoveChild1, ++/*470791*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*470794*/ OPC_CheckChild0Integer, 1, ++/*470796*/ OPC_CheckChild0Type, MVT::i32, ++/*470798*/ OPC_CheckChild1Integer, 1, ++/*470800*/ OPC_CheckChild1Type, MVT::i32, ++/*470802*/ OPC_CheckChild2Integer, 1, ++/*470804*/ OPC_CheckChild2Type, MVT::i32, ++/*470806*/ OPC_CheckChild3Integer, 1, ++/*470808*/ OPC_CheckChild3Type, MVT::i32, ++/*470810*/ OPC_CheckChild4Integer, 1, ++/*470812*/ OPC_CheckChild4Type, MVT::i32, ++/*470814*/ OPC_MoveChild5, ++/*470815*/ OPC_CheckInteger, 1, ++/*470817*/ OPC_CheckType, MVT::i32, ++/*470819*/ OPC_MoveParent, ++/*470820*/ OPC_MoveChild6, ++/*470821*/ OPC_CheckInteger, 1, ++/*470823*/ OPC_CheckType, MVT::i32, ++/*470825*/ OPC_MoveParent, ++/*470826*/ OPC_MoveChild7, ++/*470827*/ OPC_CheckInteger, 1, ++/*470829*/ OPC_CheckType, MVT::i32, ++/*470831*/ OPC_MoveParent, ++/*470832*/ OPC_MoveParent, ++/*470833*/ OPC_MoveParent, ++/*470834*/ OPC_MoveParent, ++/*470835*/ OPC_MoveParent, ++/*470836*/ OPC_MoveChild1, ++/*470837*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*470840*/ OPC_CheckChild0Integer, 1, ++/*470842*/ OPC_CheckChild0Type, MVT::i32, ++/*470844*/ OPC_CheckChild1Integer, 1, ++/*470846*/ OPC_CheckChild1Type, MVT::i32, ++/*470848*/ OPC_CheckChild2Integer, 1, ++/*470850*/ OPC_CheckChild2Type, MVT::i32, ++/*470852*/ OPC_CheckChild3Integer, 1, ++/*470854*/ OPC_CheckChild3Type, MVT::i32, ++/*470856*/ OPC_CheckChild4Integer, 1, ++/*470858*/ OPC_CheckChild4Type, MVT::i32, ++/*470860*/ OPC_MoveChild5, ++/*470861*/ OPC_CheckInteger, 1, ++/*470863*/ OPC_CheckType, MVT::i32, ++/*470865*/ OPC_MoveParent, ++/*470866*/ OPC_MoveChild6, ++/*470867*/ OPC_CheckInteger, 1, ++/*470869*/ OPC_CheckType, MVT::i32, ++/*470871*/ OPC_MoveParent, ++/*470872*/ OPC_MoveChild7, ++/*470873*/ OPC_CheckInteger, 1, ++/*470875*/ OPC_CheckType, MVT::i32, ++/*470877*/ OPC_MoveParent, ++/*470878*/ OPC_CheckType, MVT::v8i16, ++/*470880*/ OPC_MoveParent, ++/*470881*/ OPC_CheckType, MVT::v8i16, ++/*470883*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*470885*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*470893*/ 0, /*End of Scope*/ ++/*470894*/ /*Scope*/ 92|128,1/*220*/, /*->471116*/ ++/*470896*/ OPC_CheckChild0Same, 0, ++/*470898*/ OPC_MoveChild1, ++/*470899*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*470902*/ OPC_Scope, 105, /*->471009*/ // 2 children in Scope ++/*470904*/ OPC_MoveChild0, ++/*470905*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*470908*/ OPC_CheckChild0Integer, 1, ++/*470910*/ OPC_CheckChild0Type, MVT::i32, ++/*470912*/ OPC_CheckChild1Integer, 1, ++/*470914*/ OPC_CheckChild1Type, MVT::i32, ++/*470916*/ OPC_CheckChild2Integer, 1, ++/*470918*/ OPC_CheckChild2Type, MVT::i32, ++/*470920*/ OPC_CheckChild3Integer, 1, ++/*470922*/ OPC_CheckChild3Type, MVT::i32, ++/*470924*/ OPC_CheckChild4Integer, 1, ++/*470926*/ OPC_CheckChild4Type, MVT::i32, ++/*470928*/ OPC_MoveChild5, ++/*470929*/ OPC_CheckInteger, 1, ++/*470931*/ OPC_CheckType, MVT::i32, ++/*470933*/ OPC_MoveParent, ++/*470934*/ OPC_MoveChild6, ++/*470935*/ OPC_CheckInteger, 1, ++/*470937*/ OPC_CheckType, MVT::i32, ++/*470939*/ OPC_MoveParent, ++/*470940*/ OPC_MoveChild7, ++/*470941*/ OPC_CheckInteger, 1, ++/*470943*/ OPC_CheckType, MVT::i32, ++/*470945*/ OPC_MoveParent, ++/*470946*/ OPC_MoveParent, ++/*470947*/ OPC_CheckChild1Same, 1, ++/*470949*/ OPC_MoveParent, ++/*470950*/ OPC_MoveParent, ++/*470951*/ OPC_MoveParent, ++/*470952*/ OPC_MoveChild1, ++/*470953*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*470956*/ OPC_CheckChild0Integer, 1, ++/*470958*/ OPC_CheckChild0Type, MVT::i32, ++/*470960*/ OPC_CheckChild1Integer, 1, ++/*470962*/ OPC_CheckChild1Type, MVT::i32, ++/*470964*/ OPC_CheckChild2Integer, 1, ++/*470966*/ OPC_CheckChild2Type, MVT::i32, ++/*470968*/ OPC_CheckChild3Integer, 1, ++/*470970*/ OPC_CheckChild3Type, MVT::i32, ++/*470972*/ OPC_CheckChild4Integer, 1, ++/*470974*/ OPC_CheckChild4Type, MVT::i32, ++/*470976*/ OPC_MoveChild5, ++/*470977*/ OPC_CheckInteger, 1, ++/*470979*/ OPC_CheckType, MVT::i32, ++/*470981*/ OPC_MoveParent, ++/*470982*/ OPC_MoveChild6, ++/*470983*/ OPC_CheckInteger, 1, ++/*470985*/ OPC_CheckType, MVT::i32, ++/*470987*/ OPC_MoveParent, ++/*470988*/ OPC_MoveChild7, ++/*470989*/ OPC_CheckInteger, 1, ++/*470991*/ OPC_CheckType, MVT::i32, ++/*470993*/ OPC_MoveParent, ++/*470994*/ OPC_CheckType, MVT::v8i16, ++/*470996*/ OPC_MoveParent, ++/*470997*/ OPC_CheckType, MVT::v8i16, ++/*470999*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*471001*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*471009*/ /*Scope*/ 105, /*->471115*/ ++/*471010*/ OPC_CheckChild0Same, 1, ++/*471012*/ OPC_MoveChild1, ++/*471013*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*471016*/ OPC_CheckChild0Integer, 1, ++/*471018*/ OPC_CheckChild0Type, MVT::i32, ++/*471020*/ OPC_CheckChild1Integer, 1, ++/*471022*/ OPC_CheckChild1Type, MVT::i32, ++/*471024*/ OPC_CheckChild2Integer, 1, ++/*471026*/ OPC_CheckChild2Type, MVT::i32, ++/*471028*/ OPC_CheckChild3Integer, 1, ++/*471030*/ OPC_CheckChild3Type, MVT::i32, ++/*471032*/ OPC_CheckChild4Integer, 1, ++/*471034*/ OPC_CheckChild4Type, MVT::i32, ++/*471036*/ OPC_MoveChild5, ++/*471037*/ OPC_CheckInteger, 1, ++/*471039*/ OPC_CheckType, MVT::i32, ++/*471041*/ OPC_MoveParent, ++/*471042*/ OPC_MoveChild6, ++/*471043*/ OPC_CheckInteger, 1, ++/*471045*/ OPC_CheckType, MVT::i32, ++/*471047*/ OPC_MoveParent, ++/*471048*/ OPC_MoveChild7, ++/*471049*/ OPC_CheckInteger, 1, ++/*471051*/ OPC_CheckType, MVT::i32, ++/*471053*/ OPC_MoveParent, ++/*471054*/ OPC_MoveParent, ++/*471055*/ OPC_MoveParent, ++/*471056*/ OPC_MoveParent, ++/*471057*/ OPC_MoveParent, ++/*471058*/ OPC_MoveChild1, ++/*471059*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*471062*/ OPC_CheckChild0Integer, 1, ++/*471064*/ OPC_CheckChild0Type, MVT::i32, ++/*471066*/ OPC_CheckChild1Integer, 1, ++/*471068*/ OPC_CheckChild1Type, MVT::i32, ++/*471070*/ OPC_CheckChild2Integer, 1, ++/*471072*/ OPC_CheckChild2Type, MVT::i32, ++/*471074*/ OPC_CheckChild3Integer, 1, ++/*471076*/ OPC_CheckChild3Type, MVT::i32, ++/*471078*/ OPC_CheckChild4Integer, 1, ++/*471080*/ OPC_CheckChild4Type, MVT::i32, ++/*471082*/ OPC_MoveChild5, ++/*471083*/ OPC_CheckInteger, 1, ++/*471085*/ OPC_CheckType, MVT::i32, ++/*471087*/ OPC_MoveParent, ++/*471088*/ OPC_MoveChild6, ++/*471089*/ OPC_CheckInteger, 1, ++/*471091*/ OPC_CheckType, MVT::i32, ++/*471093*/ OPC_MoveParent, ++/*471094*/ OPC_MoveChild7, ++/*471095*/ OPC_CheckInteger, 1, ++/*471097*/ OPC_CheckType, MVT::i32, ++/*471099*/ OPC_MoveParent, ++/*471100*/ OPC_CheckType, MVT::v8i16, ++/*471102*/ OPC_MoveParent, ++/*471103*/ OPC_CheckType, MVT::v8i16, ++/*471105*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*471107*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*471115*/ 0, /*End of Scope*/ ++/*471116*/ /*Scope*/ 51|128,1/*179*/, /*->471297*/ ++/*471118*/ OPC_MoveChild0, ++/*471119*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*471122*/ OPC_CheckChild0Integer, 1, ++/*471124*/ OPC_CheckChild0Type, MVT::i32, ++/*471126*/ OPC_CheckChild1Integer, 1, ++/*471128*/ OPC_CheckChild1Type, MVT::i32, ++/*471130*/ OPC_CheckChild2Integer, 1, ++/*471132*/ OPC_CheckChild2Type, MVT::i32, ++/*471134*/ OPC_CheckChild3Integer, 1, ++/*471136*/ OPC_CheckChild3Type, MVT::i32, ++/*471138*/ OPC_CheckChild4Integer, 1, ++/*471140*/ OPC_CheckChild4Type, MVT::i32, ++/*471142*/ OPC_MoveChild5, ++/*471143*/ OPC_CheckInteger, 1, ++/*471145*/ OPC_CheckType, MVT::i32, ++/*471147*/ OPC_MoveParent, ++/*471148*/ OPC_MoveChild6, ++/*471149*/ OPC_CheckInteger, 1, ++/*471151*/ OPC_CheckType, MVT::i32, ++/*471153*/ OPC_MoveParent, ++/*471154*/ OPC_MoveChild7, ++/*471155*/ OPC_CheckInteger, 1, ++/*471157*/ OPC_CheckType, MVT::i32, ++/*471159*/ OPC_MoveParent, ++/*471160*/ OPC_MoveParent, ++/*471161*/ OPC_MoveChild1, ++/*471162*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*471165*/ OPC_Scope, 64, /*->471231*/ // 2 children in Scope ++/*471167*/ OPC_CheckChild0Same, 0, ++/*471169*/ OPC_CheckChild1Same, 1, ++/*471171*/ OPC_MoveParent, ++/*471172*/ OPC_MoveParent, ++/*471173*/ OPC_MoveParent, ++/*471174*/ OPC_MoveChild1, ++/*471175*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*471178*/ OPC_CheckChild0Integer, 1, ++/*471180*/ OPC_CheckChild0Type, MVT::i32, ++/*471182*/ OPC_CheckChild1Integer, 1, ++/*471184*/ OPC_CheckChild1Type, MVT::i32, ++/*471186*/ OPC_CheckChild2Integer, 1, ++/*471188*/ OPC_CheckChild2Type, MVT::i32, ++/*471190*/ OPC_CheckChild3Integer, 1, ++/*471192*/ OPC_CheckChild3Type, MVT::i32, ++/*471194*/ OPC_CheckChild4Integer, 1, ++/*471196*/ OPC_CheckChild4Type, MVT::i32, ++/*471198*/ OPC_MoveChild5, ++/*471199*/ OPC_CheckInteger, 1, ++/*471201*/ OPC_CheckType, MVT::i32, ++/*471203*/ OPC_MoveParent, ++/*471204*/ OPC_MoveChild6, ++/*471205*/ OPC_CheckInteger, 1, ++/*471207*/ OPC_CheckType, MVT::i32, ++/*471209*/ OPC_MoveParent, ++/*471210*/ OPC_MoveChild7, ++/*471211*/ OPC_CheckInteger, 1, ++/*471213*/ OPC_CheckType, MVT::i32, ++/*471215*/ OPC_MoveParent, ++/*471216*/ OPC_CheckType, MVT::v8i16, ++/*471218*/ OPC_MoveParent, ++/*471219*/ OPC_CheckType, MVT::v8i16, ++/*471221*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*471223*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*471231*/ /*Scope*/ 64, /*->471296*/ ++/*471232*/ OPC_CheckChild0Same, 1, ++/*471234*/ OPC_CheckChild1Same, 0, ++/*471236*/ OPC_MoveParent, ++/*471237*/ OPC_MoveParent, ++/*471238*/ OPC_MoveParent, ++/*471239*/ OPC_MoveChild1, ++/*471240*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*471243*/ OPC_CheckChild0Integer, 1, ++/*471245*/ OPC_CheckChild0Type, MVT::i32, ++/*471247*/ OPC_CheckChild1Integer, 1, ++/*471249*/ OPC_CheckChild1Type, MVT::i32, ++/*471251*/ OPC_CheckChild2Integer, 1, ++/*471253*/ OPC_CheckChild2Type, MVT::i32, ++/*471255*/ OPC_CheckChild3Integer, 1, ++/*471257*/ OPC_CheckChild3Type, MVT::i32, ++/*471259*/ OPC_CheckChild4Integer, 1, ++/*471261*/ OPC_CheckChild4Type, MVT::i32, ++/*471263*/ OPC_MoveChild5, ++/*471264*/ OPC_CheckInteger, 1, ++/*471266*/ OPC_CheckType, MVT::i32, ++/*471268*/ OPC_MoveParent, ++/*471269*/ OPC_MoveChild6, ++/*471270*/ OPC_CheckInteger, 1, ++/*471272*/ OPC_CheckType, MVT::i32, ++/*471274*/ OPC_MoveParent, ++/*471275*/ OPC_MoveChild7, ++/*471276*/ OPC_CheckInteger, 1, ++/*471278*/ OPC_CheckType, MVT::i32, ++/*471280*/ OPC_MoveParent, ++/*471281*/ OPC_CheckType, MVT::v8i16, ++/*471283*/ OPC_MoveParent, ++/*471284*/ OPC_CheckType, MVT::v8i16, ++/*471286*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*471288*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*471296*/ 0, /*End of Scope*/ ++/*471297*/ 0, /*End of Scope*/ ++/*471298*/ /*Scope*/ 99|128,10/*1379*/, /*->472679*/ ++/*471300*/ OPC_RecordChild0, // #1 = $b ++/*471301*/ OPC_MoveChild1, ++/*471302*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*471305*/ OPC_CheckChild0Integer, 1, ++/*471307*/ OPC_CheckChild0Type, MVT::i32, ++/*471309*/ OPC_CheckChild1Integer, 1, ++/*471311*/ OPC_CheckChild1Type, MVT::i32, ++/*471313*/ OPC_CheckChild2Integer, 1, ++/*471315*/ OPC_CheckChild2Type, MVT::i32, ++/*471317*/ OPC_CheckChild3Integer, 1, ++/*471319*/ OPC_CheckChild3Type, MVT::i32, ++/*471321*/ OPC_CheckChild4Integer, 1, ++/*471323*/ OPC_CheckChild4Type, MVT::i32, ++/*471325*/ OPC_MoveChild5, ++/*471326*/ OPC_CheckInteger, 1, ++/*471328*/ OPC_CheckType, MVT::i32, ++/*471330*/ OPC_MoveParent, ++/*471331*/ OPC_MoveChild6, ++/*471332*/ OPC_CheckInteger, 1, ++/*471334*/ OPC_CheckType, MVT::i32, ++/*471336*/ OPC_MoveParent, ++/*471337*/ OPC_MoveChild7, ++/*471338*/ OPC_CheckInteger, 1, ++/*471340*/ OPC_CheckType, MVT::i32, ++/*471342*/ OPC_MoveParent, ++/*471343*/ OPC_MoveParent, ++/*471344*/ OPC_MoveParent, ++/*471345*/ OPC_MoveParent, ++/*471346*/ OPC_MoveChild1, ++/*471347*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*471350*/ OPC_CheckChild0Integer, 15, ++/*471352*/ OPC_CheckChild0Type, MVT::i32, ++/*471354*/ OPC_CheckChild1Integer, 15, ++/*471356*/ OPC_CheckChild1Type, MVT::i32, ++/*471358*/ OPC_CheckChild2Integer, 15, ++/*471360*/ OPC_CheckChild2Type, MVT::i32, ++/*471362*/ OPC_CheckChild3Integer, 15, ++/*471364*/ OPC_CheckChild3Type, MVT::i32, ++/*471366*/ OPC_CheckChild4Integer, 15, ++/*471368*/ OPC_CheckChild4Type, MVT::i32, ++/*471370*/ OPC_MoveChild5, ++/*471371*/ OPC_CheckInteger, 15, ++/*471373*/ OPC_CheckType, MVT::i32, ++/*471375*/ OPC_MoveParent, ++/*471376*/ OPC_MoveChild6, ++/*471377*/ OPC_CheckInteger, 15, ++/*471379*/ OPC_CheckType, MVT::i32, ++/*471381*/ OPC_MoveParent, ++/*471382*/ OPC_MoveChild7, ++/*471383*/ OPC_CheckInteger, 15, ++/*471385*/ OPC_CheckType, MVT::i32, ++/*471387*/ OPC_MoveParent, ++/*471388*/ OPC_CheckType, MVT::v8i16, ++/*471390*/ OPC_MoveParent, ++/*471391*/ OPC_MoveParent, ++/*471392*/ OPC_MoveChild1, ++/*471393*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*471396*/ OPC_Scope, 14|128,5/*654*/, /*->472053*/ // 4 children in Scope ++/*471399*/ OPC_MoveChild0, ++/*471400*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*471403*/ OPC_Scope, 107, /*->471512*/ // 6 children in Scope ++/*471405*/ OPC_MoveChild0, ++/*471406*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*471409*/ OPC_CheckChild0Integer, 1, ++/*471411*/ OPC_CheckChild0Type, MVT::i32, ++/*471413*/ OPC_CheckChild1Integer, 1, ++/*471415*/ OPC_CheckChild1Type, MVT::i32, ++/*471417*/ OPC_CheckChild2Integer, 1, ++/*471419*/ OPC_CheckChild2Type, MVT::i32, ++/*471421*/ OPC_CheckChild3Integer, 1, ++/*471423*/ OPC_CheckChild3Type, MVT::i32, ++/*471425*/ OPC_CheckChild4Integer, 1, ++/*471427*/ OPC_CheckChild4Type, MVT::i32, ++/*471429*/ OPC_MoveChild5, ++/*471430*/ OPC_CheckInteger, 1, ++/*471432*/ OPC_CheckType, MVT::i32, ++/*471434*/ OPC_MoveParent, ++/*471435*/ OPC_MoveChild6, ++/*471436*/ OPC_CheckInteger, 1, ++/*471438*/ OPC_CheckType, MVT::i32, ++/*471440*/ OPC_MoveParent, ++/*471441*/ OPC_MoveChild7, ++/*471442*/ OPC_CheckInteger, 1, ++/*471444*/ OPC_CheckType, MVT::i32, ++/*471446*/ OPC_MoveParent, ++/*471447*/ OPC_MoveParent, ++/*471448*/ OPC_CheckChild1Same, 0, ++/*471450*/ OPC_MoveParent, ++/*471451*/ OPC_CheckChild1Same, 1, ++/*471453*/ OPC_MoveParent, ++/*471454*/ OPC_MoveParent, ++/*471455*/ OPC_MoveChild1, ++/*471456*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*471459*/ OPC_CheckChild0Integer, 1, ++/*471461*/ OPC_CheckChild0Type, MVT::i32, ++/*471463*/ OPC_CheckChild1Integer, 1, ++/*471465*/ OPC_CheckChild1Type, MVT::i32, ++/*471467*/ OPC_CheckChild2Integer, 1, ++/*471469*/ OPC_CheckChild2Type, MVT::i32, ++/*471471*/ OPC_CheckChild3Integer, 1, ++/*471473*/ OPC_CheckChild3Type, MVT::i32, ++/*471475*/ OPC_CheckChild4Integer, 1, ++/*471477*/ OPC_CheckChild4Type, MVT::i32, ++/*471479*/ OPC_MoveChild5, ++/*471480*/ OPC_CheckInteger, 1, ++/*471482*/ OPC_CheckType, MVT::i32, ++/*471484*/ OPC_MoveParent, ++/*471485*/ OPC_MoveChild6, ++/*471486*/ OPC_CheckInteger, 1, ++/*471488*/ OPC_CheckType, MVT::i32, ++/*471490*/ OPC_MoveParent, ++/*471491*/ OPC_MoveChild7, ++/*471492*/ OPC_CheckInteger, 1, ++/*471494*/ OPC_CheckType, MVT::i32, ++/*471496*/ OPC_MoveParent, ++/*471497*/ OPC_CheckType, MVT::v8i16, ++/*471499*/ OPC_MoveParent, ++/*471500*/ OPC_CheckType, MVT::v8i16, ++/*471502*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*471504*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a), LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*471512*/ /*Scope*/ 107, /*->471620*/ ++/*471513*/ OPC_CheckChild0Same, 0, ++/*471515*/ OPC_MoveChild1, ++/*471516*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*471519*/ OPC_CheckChild0Integer, 1, ++/*471521*/ OPC_CheckChild0Type, MVT::i32, ++/*471523*/ OPC_CheckChild1Integer, 1, ++/*471525*/ OPC_CheckChild1Type, MVT::i32, ++/*471527*/ OPC_CheckChild2Integer, 1, ++/*471529*/ OPC_CheckChild2Type, MVT::i32, ++/*471531*/ OPC_CheckChild3Integer, 1, ++/*471533*/ OPC_CheckChild3Type, MVT::i32, ++/*471535*/ OPC_CheckChild4Integer, 1, ++/*471537*/ OPC_CheckChild4Type, MVT::i32, ++/*471539*/ OPC_MoveChild5, ++/*471540*/ OPC_CheckInteger, 1, ++/*471542*/ OPC_CheckType, MVT::i32, ++/*471544*/ OPC_MoveParent, ++/*471545*/ OPC_MoveChild6, ++/*471546*/ OPC_CheckInteger, 1, ++/*471548*/ OPC_CheckType, MVT::i32, ++/*471550*/ OPC_MoveParent, ++/*471551*/ OPC_MoveChild7, ++/*471552*/ OPC_CheckInteger, 1, ++/*471554*/ OPC_CheckType, MVT::i32, ++/*471556*/ OPC_MoveParent, ++/*471557*/ OPC_MoveParent, ++/*471558*/ OPC_MoveParent, ++/*471559*/ OPC_CheckChild1Same, 1, ++/*471561*/ OPC_MoveParent, ++/*471562*/ OPC_MoveParent, ++/*471563*/ OPC_MoveChild1, ++/*471564*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*471567*/ OPC_CheckChild0Integer, 1, ++/*471569*/ OPC_CheckChild0Type, MVT::i32, ++/*471571*/ OPC_CheckChild1Integer, 1, ++/*471573*/ OPC_CheckChild1Type, MVT::i32, ++/*471575*/ OPC_CheckChild2Integer, 1, ++/*471577*/ OPC_CheckChild2Type, MVT::i32, ++/*471579*/ OPC_CheckChild3Integer, 1, ++/*471581*/ OPC_CheckChild3Type, MVT::i32, ++/*471583*/ OPC_CheckChild4Integer, 1, ++/*471585*/ OPC_CheckChild4Type, MVT::i32, ++/*471587*/ OPC_MoveChild5, ++/*471588*/ OPC_CheckInteger, 1, ++/*471590*/ OPC_CheckType, MVT::i32, ++/*471592*/ OPC_MoveParent, ++/*471593*/ OPC_MoveChild6, ++/*471594*/ OPC_CheckInteger, 1, ++/*471596*/ OPC_CheckType, MVT::i32, ++/*471598*/ OPC_MoveParent, ++/*471599*/ OPC_MoveChild7, ++/*471600*/ OPC_CheckInteger, 1, ++/*471602*/ OPC_CheckType, MVT::i32, ++/*471604*/ OPC_MoveParent, ++/*471605*/ OPC_CheckType, MVT::v8i16, ++/*471607*/ OPC_MoveParent, ++/*471608*/ OPC_CheckType, MVT::v8i16, ++/*471610*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*471612*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*471620*/ /*Scope*/ 107, /*->471728*/ ++/*471621*/ OPC_MoveChild0, ++/*471622*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*471625*/ OPC_CheckChild0Integer, 1, ++/*471627*/ OPC_CheckChild0Type, MVT::i32, ++/*471629*/ OPC_CheckChild1Integer, 1, ++/*471631*/ OPC_CheckChild1Type, MVT::i32, ++/*471633*/ OPC_CheckChild2Integer, 1, ++/*471635*/ OPC_CheckChild2Type, MVT::i32, ++/*471637*/ OPC_CheckChild3Integer, 1, ++/*471639*/ OPC_CheckChild3Type, MVT::i32, ++/*471641*/ OPC_CheckChild4Integer, 1, ++/*471643*/ OPC_CheckChild4Type, MVT::i32, ++/*471645*/ OPC_MoveChild5, ++/*471646*/ OPC_CheckInteger, 1, ++/*471648*/ OPC_CheckType, MVT::i32, ++/*471650*/ OPC_MoveParent, ++/*471651*/ OPC_MoveChild6, ++/*471652*/ OPC_CheckInteger, 1, ++/*471654*/ OPC_CheckType, MVT::i32, ++/*471656*/ OPC_MoveParent, ++/*471657*/ OPC_MoveChild7, ++/*471658*/ OPC_CheckInteger, 1, ++/*471660*/ OPC_CheckType, MVT::i32, ++/*471662*/ OPC_MoveParent, ++/*471663*/ OPC_MoveParent, ++/*471664*/ OPC_CheckChild1Same, 1, ++/*471666*/ OPC_MoveParent, ++/*471667*/ OPC_CheckChild1Same, 0, ++/*471669*/ OPC_MoveParent, ++/*471670*/ OPC_MoveParent, ++/*471671*/ OPC_MoveChild1, ++/*471672*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*471675*/ OPC_CheckChild0Integer, 1, ++/*471677*/ OPC_CheckChild0Type, MVT::i32, ++/*471679*/ OPC_CheckChild1Integer, 1, ++/*471681*/ OPC_CheckChild1Type, MVT::i32, ++/*471683*/ OPC_CheckChild2Integer, 1, ++/*471685*/ OPC_CheckChild2Type, MVT::i32, ++/*471687*/ OPC_CheckChild3Integer, 1, ++/*471689*/ OPC_CheckChild3Type, MVT::i32, ++/*471691*/ OPC_CheckChild4Integer, 1, ++/*471693*/ OPC_CheckChild4Type, MVT::i32, ++/*471695*/ OPC_MoveChild5, ++/*471696*/ OPC_CheckInteger, 1, ++/*471698*/ OPC_CheckType, MVT::i32, ++/*471700*/ OPC_MoveParent, ++/*471701*/ OPC_MoveChild6, ++/*471702*/ OPC_CheckInteger, 1, ++/*471704*/ OPC_CheckType, MVT::i32, ++/*471706*/ OPC_MoveParent, ++/*471707*/ OPC_MoveChild7, ++/*471708*/ OPC_CheckInteger, 1, ++/*471710*/ OPC_CheckType, MVT::i32, ++/*471712*/ OPC_MoveParent, ++/*471713*/ OPC_CheckType, MVT::v8i16, ++/*471715*/ OPC_MoveParent, ++/*471716*/ OPC_CheckType, MVT::v8i16, ++/*471718*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*471720*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b), LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*471728*/ /*Scope*/ 107, /*->471836*/ ++/*471729*/ OPC_CheckChild0Same, 1, ++/*471731*/ OPC_MoveChild1, ++/*471732*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*471735*/ OPC_CheckChild0Integer, 1, ++/*471737*/ OPC_CheckChild0Type, MVT::i32, ++/*471739*/ OPC_CheckChild1Integer, 1, ++/*471741*/ OPC_CheckChild1Type, MVT::i32, ++/*471743*/ OPC_CheckChild2Integer, 1, ++/*471745*/ OPC_CheckChild2Type, MVT::i32, ++/*471747*/ OPC_CheckChild3Integer, 1, ++/*471749*/ OPC_CheckChild3Type, MVT::i32, ++/*471751*/ OPC_CheckChild4Integer, 1, ++/*471753*/ OPC_CheckChild4Type, MVT::i32, ++/*471755*/ OPC_MoveChild5, ++/*471756*/ OPC_CheckInteger, 1, ++/*471758*/ OPC_CheckType, MVT::i32, ++/*471760*/ OPC_MoveParent, ++/*471761*/ OPC_MoveChild6, ++/*471762*/ OPC_CheckInteger, 1, ++/*471764*/ OPC_CheckType, MVT::i32, ++/*471766*/ OPC_MoveParent, ++/*471767*/ OPC_MoveChild7, ++/*471768*/ OPC_CheckInteger, 1, ++/*471770*/ OPC_CheckType, MVT::i32, ++/*471772*/ OPC_MoveParent, ++/*471773*/ OPC_MoveParent, ++/*471774*/ OPC_MoveParent, ++/*471775*/ OPC_CheckChild1Same, 0, ++/*471777*/ OPC_MoveParent, ++/*471778*/ OPC_MoveParent, ++/*471779*/ OPC_MoveChild1, ++/*471780*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*471783*/ OPC_CheckChild0Integer, 1, ++/*471785*/ OPC_CheckChild0Type, MVT::i32, ++/*471787*/ OPC_CheckChild1Integer, 1, ++/*471789*/ OPC_CheckChild1Type, MVT::i32, ++/*471791*/ OPC_CheckChild2Integer, 1, ++/*471793*/ OPC_CheckChild2Type, MVT::i32, ++/*471795*/ OPC_CheckChild3Integer, 1, ++/*471797*/ OPC_CheckChild3Type, MVT::i32, ++/*471799*/ OPC_CheckChild4Integer, 1, ++/*471801*/ OPC_CheckChild4Type, MVT::i32, ++/*471803*/ OPC_MoveChild5, ++/*471804*/ OPC_CheckInteger, 1, ++/*471806*/ OPC_CheckType, MVT::i32, ++/*471808*/ OPC_MoveParent, ++/*471809*/ OPC_MoveChild6, ++/*471810*/ OPC_CheckInteger, 1, ++/*471812*/ OPC_CheckType, MVT::i32, ++/*471814*/ OPC_MoveParent, ++/*471815*/ OPC_MoveChild7, ++/*471816*/ OPC_CheckInteger, 1, ++/*471818*/ OPC_CheckType, MVT::i32, ++/*471820*/ OPC_MoveParent, ++/*471821*/ OPC_CheckType, MVT::v8i16, ++/*471823*/ OPC_MoveParent, ++/*471824*/ OPC_CheckType, MVT::v8i16, ++/*471826*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*471828*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*471836*/ /*Scope*/ 107, /*->471944*/ ++/*471837*/ OPC_CheckChild0Same, 0, ++/*471839*/ OPC_CheckChild1Same, 1, ++/*471841*/ OPC_MoveParent, ++/*471842*/ OPC_MoveChild1, ++/*471843*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*471846*/ OPC_CheckChild0Integer, 1, ++/*471848*/ OPC_CheckChild0Type, MVT::i32, ++/*471850*/ OPC_CheckChild1Integer, 1, ++/*471852*/ OPC_CheckChild1Type, MVT::i32, ++/*471854*/ OPC_CheckChild2Integer, 1, ++/*471856*/ OPC_CheckChild2Type, MVT::i32, ++/*471858*/ OPC_CheckChild3Integer, 1, ++/*471860*/ OPC_CheckChild3Type, MVT::i32, ++/*471862*/ OPC_CheckChild4Integer, 1, ++/*471864*/ OPC_CheckChild4Type, MVT::i32, ++/*471866*/ OPC_MoveChild5, ++/*471867*/ OPC_CheckInteger, 1, ++/*471869*/ OPC_CheckType, MVT::i32, ++/*471871*/ OPC_MoveParent, ++/*471872*/ OPC_MoveChild6, ++/*471873*/ OPC_CheckInteger, 1, ++/*471875*/ OPC_CheckType, MVT::i32, ++/*471877*/ OPC_MoveParent, ++/*471878*/ OPC_MoveChild7, ++/*471879*/ OPC_CheckInteger, 1, ++/*471881*/ OPC_CheckType, MVT::i32, ++/*471883*/ OPC_MoveParent, ++/*471884*/ OPC_MoveParent, ++/*471885*/ OPC_MoveParent, ++/*471886*/ OPC_MoveParent, ++/*471887*/ OPC_MoveChild1, ++/*471888*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*471891*/ OPC_CheckChild0Integer, 1, ++/*471893*/ OPC_CheckChild0Type, MVT::i32, ++/*471895*/ OPC_CheckChild1Integer, 1, ++/*471897*/ OPC_CheckChild1Type, MVT::i32, ++/*471899*/ OPC_CheckChild2Integer, 1, ++/*471901*/ OPC_CheckChild2Type, MVT::i32, ++/*471903*/ OPC_CheckChild3Integer, 1, ++/*471905*/ OPC_CheckChild3Type, MVT::i32, ++/*471907*/ OPC_CheckChild4Integer, 1, ++/*471909*/ OPC_CheckChild4Type, MVT::i32, ++/*471911*/ OPC_MoveChild5, ++/*471912*/ OPC_CheckInteger, 1, ++/*471914*/ OPC_CheckType, MVT::i32, ++/*471916*/ OPC_MoveParent, ++/*471917*/ OPC_MoveChild6, ++/*471918*/ OPC_CheckInteger, 1, ++/*471920*/ OPC_CheckType, MVT::i32, ++/*471922*/ OPC_MoveParent, ++/*471923*/ OPC_MoveChild7, ++/*471924*/ OPC_CheckInteger, 1, ++/*471926*/ OPC_CheckType, MVT::i32, ++/*471928*/ OPC_MoveParent, ++/*471929*/ OPC_CheckType, MVT::v8i16, ++/*471931*/ OPC_MoveParent, ++/*471932*/ OPC_CheckType, MVT::v8i16, ++/*471934*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*471936*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*471944*/ /*Scope*/ 107, /*->472052*/ ++/*471945*/ OPC_CheckChild0Same, 1, ++/*471947*/ OPC_CheckChild1Same, 0, ++/*471949*/ OPC_MoveParent, ++/*471950*/ OPC_MoveChild1, ++/*471951*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*471954*/ OPC_CheckChild0Integer, 1, ++/*471956*/ OPC_CheckChild0Type, MVT::i32, ++/*471958*/ OPC_CheckChild1Integer, 1, ++/*471960*/ OPC_CheckChild1Type, MVT::i32, ++/*471962*/ OPC_CheckChild2Integer, 1, ++/*471964*/ OPC_CheckChild2Type, MVT::i32, ++/*471966*/ OPC_CheckChild3Integer, 1, ++/*471968*/ OPC_CheckChild3Type, MVT::i32, ++/*471970*/ OPC_CheckChild4Integer, 1, ++/*471972*/ OPC_CheckChild4Type, MVT::i32, ++/*471974*/ OPC_MoveChild5, ++/*471975*/ OPC_CheckInteger, 1, ++/*471977*/ OPC_CheckType, MVT::i32, ++/*471979*/ OPC_MoveParent, ++/*471980*/ OPC_MoveChild6, ++/*471981*/ OPC_CheckInteger, 1, ++/*471983*/ OPC_CheckType, MVT::i32, ++/*471985*/ OPC_MoveParent, ++/*471986*/ OPC_MoveChild7, ++/*471987*/ OPC_CheckInteger, 1, ++/*471989*/ OPC_CheckType, MVT::i32, ++/*471991*/ OPC_MoveParent, ++/*471992*/ OPC_MoveParent, ++/*471993*/ OPC_MoveParent, ++/*471994*/ OPC_MoveParent, ++/*471995*/ OPC_MoveChild1, ++/*471996*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*471999*/ OPC_CheckChild0Integer, 1, ++/*472001*/ OPC_CheckChild0Type, MVT::i32, ++/*472003*/ OPC_CheckChild1Integer, 1, ++/*472005*/ OPC_CheckChild1Type, MVT::i32, ++/*472007*/ OPC_CheckChild2Integer, 1, ++/*472009*/ OPC_CheckChild2Type, MVT::i32, ++/*472011*/ OPC_CheckChild3Integer, 1, ++/*472013*/ OPC_CheckChild3Type, MVT::i32, ++/*472015*/ OPC_CheckChild4Integer, 1, ++/*472017*/ OPC_CheckChild4Type, MVT::i32, ++/*472019*/ OPC_MoveChild5, ++/*472020*/ OPC_CheckInteger, 1, ++/*472022*/ OPC_CheckType, MVT::i32, ++/*472024*/ OPC_MoveParent, ++/*472025*/ OPC_MoveChild6, ++/*472026*/ OPC_CheckInteger, 1, ++/*472028*/ OPC_CheckType, MVT::i32, ++/*472030*/ OPC_MoveParent, ++/*472031*/ OPC_MoveChild7, ++/*472032*/ OPC_CheckInteger, 1, ++/*472034*/ OPC_CheckType, MVT::i32, ++/*472036*/ OPC_MoveParent, ++/*472037*/ OPC_CheckType, MVT::v8i16, ++/*472039*/ OPC_MoveParent, ++/*472040*/ OPC_CheckType, MVT::v8i16, ++/*472042*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*472044*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*472052*/ 0, /*End of Scope*/ ++/*472053*/ /*Scope*/ 92|128,1/*220*/, /*->472275*/ ++/*472055*/ OPC_CheckChild0Same, 1, ++/*472057*/ OPC_MoveChild1, ++/*472058*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*472061*/ OPC_Scope, 105, /*->472168*/ // 2 children in Scope ++/*472063*/ OPC_MoveChild0, ++/*472064*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*472067*/ OPC_CheckChild0Integer, 1, ++/*472069*/ OPC_CheckChild0Type, MVT::i32, ++/*472071*/ OPC_CheckChild1Integer, 1, ++/*472073*/ OPC_CheckChild1Type, MVT::i32, ++/*472075*/ OPC_CheckChild2Integer, 1, ++/*472077*/ OPC_CheckChild2Type, MVT::i32, ++/*472079*/ OPC_CheckChild3Integer, 1, ++/*472081*/ OPC_CheckChild3Type, MVT::i32, ++/*472083*/ OPC_CheckChild4Integer, 1, ++/*472085*/ OPC_CheckChild4Type, MVT::i32, ++/*472087*/ OPC_MoveChild5, ++/*472088*/ OPC_CheckInteger, 1, ++/*472090*/ OPC_CheckType, MVT::i32, ++/*472092*/ OPC_MoveParent, ++/*472093*/ OPC_MoveChild6, ++/*472094*/ OPC_CheckInteger, 1, ++/*472096*/ OPC_CheckType, MVT::i32, ++/*472098*/ OPC_MoveParent, ++/*472099*/ OPC_MoveChild7, ++/*472100*/ OPC_CheckInteger, 1, ++/*472102*/ OPC_CheckType, MVT::i32, ++/*472104*/ OPC_MoveParent, ++/*472105*/ OPC_MoveParent, ++/*472106*/ OPC_CheckChild1Same, 0, ++/*472108*/ OPC_MoveParent, ++/*472109*/ OPC_MoveParent, ++/*472110*/ OPC_MoveParent, ++/*472111*/ OPC_MoveChild1, ++/*472112*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*472115*/ OPC_CheckChild0Integer, 1, ++/*472117*/ OPC_CheckChild0Type, MVT::i32, ++/*472119*/ OPC_CheckChild1Integer, 1, ++/*472121*/ OPC_CheckChild1Type, MVT::i32, ++/*472123*/ OPC_CheckChild2Integer, 1, ++/*472125*/ OPC_CheckChild2Type, MVT::i32, ++/*472127*/ OPC_CheckChild3Integer, 1, ++/*472129*/ OPC_CheckChild3Type, MVT::i32, ++/*472131*/ OPC_CheckChild4Integer, 1, ++/*472133*/ OPC_CheckChild4Type, MVT::i32, ++/*472135*/ OPC_MoveChild5, ++/*472136*/ OPC_CheckInteger, 1, ++/*472138*/ OPC_CheckType, MVT::i32, ++/*472140*/ OPC_MoveParent, ++/*472141*/ OPC_MoveChild6, ++/*472142*/ OPC_CheckInteger, 1, ++/*472144*/ OPC_CheckType, MVT::i32, ++/*472146*/ OPC_MoveParent, ++/*472147*/ OPC_MoveChild7, ++/*472148*/ OPC_CheckInteger, 1, ++/*472150*/ OPC_CheckType, MVT::i32, ++/*472152*/ OPC_MoveParent, ++/*472153*/ OPC_CheckType, MVT::v8i16, ++/*472155*/ OPC_MoveParent, ++/*472156*/ OPC_CheckType, MVT::v8i16, ++/*472158*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*472160*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*472168*/ /*Scope*/ 105, /*->472274*/ ++/*472169*/ OPC_CheckChild0Same, 0, ++/*472171*/ OPC_MoveChild1, ++/*472172*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*472175*/ OPC_CheckChild0Integer, 1, ++/*472177*/ OPC_CheckChild0Type, MVT::i32, ++/*472179*/ OPC_CheckChild1Integer, 1, ++/*472181*/ OPC_CheckChild1Type, MVT::i32, ++/*472183*/ OPC_CheckChild2Integer, 1, ++/*472185*/ OPC_CheckChild2Type, MVT::i32, ++/*472187*/ OPC_CheckChild3Integer, 1, ++/*472189*/ OPC_CheckChild3Type, MVT::i32, ++/*472191*/ OPC_CheckChild4Integer, 1, ++/*472193*/ OPC_CheckChild4Type, MVT::i32, ++/*472195*/ OPC_MoveChild5, ++/*472196*/ OPC_CheckInteger, 1, ++/*472198*/ OPC_CheckType, MVT::i32, ++/*472200*/ OPC_MoveParent, ++/*472201*/ OPC_MoveChild6, ++/*472202*/ OPC_CheckInteger, 1, ++/*472204*/ OPC_CheckType, MVT::i32, ++/*472206*/ OPC_MoveParent, ++/*472207*/ OPC_MoveChild7, ++/*472208*/ OPC_CheckInteger, 1, ++/*472210*/ OPC_CheckType, MVT::i32, ++/*472212*/ OPC_MoveParent, ++/*472213*/ OPC_MoveParent, ++/*472214*/ OPC_MoveParent, ++/*472215*/ OPC_MoveParent, ++/*472216*/ OPC_MoveParent, ++/*472217*/ OPC_MoveChild1, ++/*472218*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*472221*/ OPC_CheckChild0Integer, 1, ++/*472223*/ OPC_CheckChild0Type, MVT::i32, ++/*472225*/ OPC_CheckChild1Integer, 1, ++/*472227*/ OPC_CheckChild1Type, MVT::i32, ++/*472229*/ OPC_CheckChild2Integer, 1, ++/*472231*/ OPC_CheckChild2Type, MVT::i32, ++/*472233*/ OPC_CheckChild3Integer, 1, ++/*472235*/ OPC_CheckChild3Type, MVT::i32, ++/*472237*/ OPC_CheckChild4Integer, 1, ++/*472239*/ OPC_CheckChild4Type, MVT::i32, ++/*472241*/ OPC_MoveChild5, ++/*472242*/ OPC_CheckInteger, 1, ++/*472244*/ OPC_CheckType, MVT::i32, ++/*472246*/ OPC_MoveParent, ++/*472247*/ OPC_MoveChild6, ++/*472248*/ OPC_CheckInteger, 1, ++/*472250*/ OPC_CheckType, MVT::i32, ++/*472252*/ OPC_MoveParent, ++/*472253*/ OPC_MoveChild7, ++/*472254*/ OPC_CheckInteger, 1, ++/*472256*/ OPC_CheckType, MVT::i32, ++/*472258*/ OPC_MoveParent, ++/*472259*/ OPC_CheckType, MVT::v8i16, ++/*472261*/ OPC_MoveParent, ++/*472262*/ OPC_CheckType, MVT::v8i16, ++/*472264*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*472266*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*472274*/ 0, /*End of Scope*/ ++/*472275*/ /*Scope*/ 92|128,1/*220*/, /*->472497*/ ++/*472277*/ OPC_CheckChild0Same, 0, ++/*472279*/ OPC_MoveChild1, ++/*472280*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*472283*/ OPC_Scope, 105, /*->472390*/ // 2 children in Scope ++/*472285*/ OPC_MoveChild0, ++/*472286*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*472289*/ OPC_CheckChild0Integer, 1, ++/*472291*/ OPC_CheckChild0Type, MVT::i32, ++/*472293*/ OPC_CheckChild1Integer, 1, ++/*472295*/ OPC_CheckChild1Type, MVT::i32, ++/*472297*/ OPC_CheckChild2Integer, 1, ++/*472299*/ OPC_CheckChild2Type, MVT::i32, ++/*472301*/ OPC_CheckChild3Integer, 1, ++/*472303*/ OPC_CheckChild3Type, MVT::i32, ++/*472305*/ OPC_CheckChild4Integer, 1, ++/*472307*/ OPC_CheckChild4Type, MVT::i32, ++/*472309*/ OPC_MoveChild5, ++/*472310*/ OPC_CheckInteger, 1, ++/*472312*/ OPC_CheckType, MVT::i32, ++/*472314*/ OPC_MoveParent, ++/*472315*/ OPC_MoveChild6, ++/*472316*/ OPC_CheckInteger, 1, ++/*472318*/ OPC_CheckType, MVT::i32, ++/*472320*/ OPC_MoveParent, ++/*472321*/ OPC_MoveChild7, ++/*472322*/ OPC_CheckInteger, 1, ++/*472324*/ OPC_CheckType, MVT::i32, ++/*472326*/ OPC_MoveParent, ++/*472327*/ OPC_MoveParent, ++/*472328*/ OPC_CheckChild1Same, 1, ++/*472330*/ OPC_MoveParent, ++/*472331*/ OPC_MoveParent, ++/*472332*/ OPC_MoveParent, ++/*472333*/ OPC_MoveChild1, ++/*472334*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*472337*/ OPC_CheckChild0Integer, 1, ++/*472339*/ OPC_CheckChild0Type, MVT::i32, ++/*472341*/ OPC_CheckChild1Integer, 1, ++/*472343*/ OPC_CheckChild1Type, MVT::i32, ++/*472345*/ OPC_CheckChild2Integer, 1, ++/*472347*/ OPC_CheckChild2Type, MVT::i32, ++/*472349*/ OPC_CheckChild3Integer, 1, ++/*472351*/ OPC_CheckChild3Type, MVT::i32, ++/*472353*/ OPC_CheckChild4Integer, 1, ++/*472355*/ OPC_CheckChild4Type, MVT::i32, ++/*472357*/ OPC_MoveChild5, ++/*472358*/ OPC_CheckInteger, 1, ++/*472360*/ OPC_CheckType, MVT::i32, ++/*472362*/ OPC_MoveParent, ++/*472363*/ OPC_MoveChild6, ++/*472364*/ OPC_CheckInteger, 1, ++/*472366*/ OPC_CheckType, MVT::i32, ++/*472368*/ OPC_MoveParent, ++/*472369*/ OPC_MoveChild7, ++/*472370*/ OPC_CheckInteger, 1, ++/*472372*/ OPC_CheckType, MVT::i32, ++/*472374*/ OPC_MoveParent, ++/*472375*/ OPC_CheckType, MVT::v8i16, ++/*472377*/ OPC_MoveParent, ++/*472378*/ OPC_CheckType, MVT::v8i16, ++/*472380*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*472382*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*472390*/ /*Scope*/ 105, /*->472496*/ ++/*472391*/ OPC_CheckChild0Same, 1, ++/*472393*/ OPC_MoveChild1, ++/*472394*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*472397*/ OPC_CheckChild0Integer, 1, ++/*472399*/ OPC_CheckChild0Type, MVT::i32, ++/*472401*/ OPC_CheckChild1Integer, 1, ++/*472403*/ OPC_CheckChild1Type, MVT::i32, ++/*472405*/ OPC_CheckChild2Integer, 1, ++/*472407*/ OPC_CheckChild2Type, MVT::i32, ++/*472409*/ OPC_CheckChild3Integer, 1, ++/*472411*/ OPC_CheckChild3Type, MVT::i32, ++/*472413*/ OPC_CheckChild4Integer, 1, ++/*472415*/ OPC_CheckChild4Type, MVT::i32, ++/*472417*/ OPC_MoveChild5, ++/*472418*/ OPC_CheckInteger, 1, ++/*472420*/ OPC_CheckType, MVT::i32, ++/*472422*/ OPC_MoveParent, ++/*472423*/ OPC_MoveChild6, ++/*472424*/ OPC_CheckInteger, 1, ++/*472426*/ OPC_CheckType, MVT::i32, ++/*472428*/ OPC_MoveParent, ++/*472429*/ OPC_MoveChild7, ++/*472430*/ OPC_CheckInteger, 1, ++/*472432*/ OPC_CheckType, MVT::i32, ++/*472434*/ OPC_MoveParent, ++/*472435*/ OPC_MoveParent, ++/*472436*/ OPC_MoveParent, ++/*472437*/ OPC_MoveParent, ++/*472438*/ OPC_MoveParent, ++/*472439*/ OPC_MoveChild1, ++/*472440*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*472443*/ OPC_CheckChild0Integer, 1, ++/*472445*/ OPC_CheckChild0Type, MVT::i32, ++/*472447*/ OPC_CheckChild1Integer, 1, ++/*472449*/ OPC_CheckChild1Type, MVT::i32, ++/*472451*/ OPC_CheckChild2Integer, 1, ++/*472453*/ OPC_CheckChild2Type, MVT::i32, ++/*472455*/ OPC_CheckChild3Integer, 1, ++/*472457*/ OPC_CheckChild3Type, MVT::i32, ++/*472459*/ OPC_CheckChild4Integer, 1, ++/*472461*/ OPC_CheckChild4Type, MVT::i32, ++/*472463*/ OPC_MoveChild5, ++/*472464*/ OPC_CheckInteger, 1, ++/*472466*/ OPC_CheckType, MVT::i32, ++/*472468*/ OPC_MoveParent, ++/*472469*/ OPC_MoveChild6, ++/*472470*/ OPC_CheckInteger, 1, ++/*472472*/ OPC_CheckType, MVT::i32, ++/*472474*/ OPC_MoveParent, ++/*472475*/ OPC_MoveChild7, ++/*472476*/ OPC_CheckInteger, 1, ++/*472478*/ OPC_CheckType, MVT::i32, ++/*472480*/ OPC_MoveParent, ++/*472481*/ OPC_CheckType, MVT::v8i16, ++/*472483*/ OPC_MoveParent, ++/*472484*/ OPC_CheckType, MVT::v8i16, ++/*472486*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*472488*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*472496*/ 0, /*End of Scope*/ ++/*472497*/ /*Scope*/ 51|128,1/*179*/, /*->472678*/ ++/*472499*/ OPC_MoveChild0, ++/*472500*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*472503*/ OPC_CheckChild0Integer, 1, ++/*472505*/ OPC_CheckChild0Type, MVT::i32, ++/*472507*/ OPC_CheckChild1Integer, 1, ++/*472509*/ OPC_CheckChild1Type, MVT::i32, ++/*472511*/ OPC_CheckChild2Integer, 1, ++/*472513*/ OPC_CheckChild2Type, MVT::i32, ++/*472515*/ OPC_CheckChild3Integer, 1, ++/*472517*/ OPC_CheckChild3Type, MVT::i32, ++/*472519*/ OPC_CheckChild4Integer, 1, ++/*472521*/ OPC_CheckChild4Type, MVT::i32, ++/*472523*/ OPC_MoveChild5, ++/*472524*/ OPC_CheckInteger, 1, ++/*472526*/ OPC_CheckType, MVT::i32, ++/*472528*/ OPC_MoveParent, ++/*472529*/ OPC_MoveChild6, ++/*472530*/ OPC_CheckInteger, 1, ++/*472532*/ OPC_CheckType, MVT::i32, ++/*472534*/ OPC_MoveParent, ++/*472535*/ OPC_MoveChild7, ++/*472536*/ OPC_CheckInteger, 1, ++/*472538*/ OPC_CheckType, MVT::i32, ++/*472540*/ OPC_MoveParent, ++/*472541*/ OPC_MoveParent, ++/*472542*/ OPC_MoveChild1, ++/*472543*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*472546*/ OPC_Scope, 64, /*->472612*/ // 2 children in Scope ++/*472548*/ OPC_CheckChild0Same, 0, ++/*472550*/ OPC_CheckChild1Same, 1, ++/*472552*/ OPC_MoveParent, ++/*472553*/ OPC_MoveParent, ++/*472554*/ OPC_MoveParent, ++/*472555*/ OPC_MoveChild1, ++/*472556*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*472559*/ OPC_CheckChild0Integer, 1, ++/*472561*/ OPC_CheckChild0Type, MVT::i32, ++/*472563*/ OPC_CheckChild1Integer, 1, ++/*472565*/ OPC_CheckChild1Type, MVT::i32, ++/*472567*/ OPC_CheckChild2Integer, 1, ++/*472569*/ OPC_CheckChild2Type, MVT::i32, ++/*472571*/ OPC_CheckChild3Integer, 1, ++/*472573*/ OPC_CheckChild3Type, MVT::i32, ++/*472575*/ OPC_CheckChild4Integer, 1, ++/*472577*/ OPC_CheckChild4Type, MVT::i32, ++/*472579*/ OPC_MoveChild5, ++/*472580*/ OPC_CheckInteger, 1, ++/*472582*/ OPC_CheckType, MVT::i32, ++/*472584*/ OPC_MoveParent, ++/*472585*/ OPC_MoveChild6, ++/*472586*/ OPC_CheckInteger, 1, ++/*472588*/ OPC_CheckType, MVT::i32, ++/*472590*/ OPC_MoveParent, ++/*472591*/ OPC_MoveChild7, ++/*472592*/ OPC_CheckInteger, 1, ++/*472594*/ OPC_CheckType, MVT::i32, ++/*472596*/ OPC_MoveParent, ++/*472597*/ OPC_CheckType, MVT::v8i16, ++/*472599*/ OPC_MoveParent, ++/*472600*/ OPC_CheckType, MVT::v8i16, ++/*472602*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*472604*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*472612*/ /*Scope*/ 64, /*->472677*/ ++/*472613*/ OPC_CheckChild0Same, 1, ++/*472615*/ OPC_CheckChild1Same, 0, ++/*472617*/ OPC_MoveParent, ++/*472618*/ OPC_MoveParent, ++/*472619*/ OPC_MoveParent, ++/*472620*/ OPC_MoveChild1, ++/*472621*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*472624*/ OPC_CheckChild0Integer, 1, ++/*472626*/ OPC_CheckChild0Type, MVT::i32, ++/*472628*/ OPC_CheckChild1Integer, 1, ++/*472630*/ OPC_CheckChild1Type, MVT::i32, ++/*472632*/ OPC_CheckChild2Integer, 1, ++/*472634*/ OPC_CheckChild2Type, MVT::i32, ++/*472636*/ OPC_CheckChild3Integer, 1, ++/*472638*/ OPC_CheckChild3Type, MVT::i32, ++/*472640*/ OPC_CheckChild4Integer, 1, ++/*472642*/ OPC_CheckChild4Type, MVT::i32, ++/*472644*/ OPC_MoveChild5, ++/*472645*/ OPC_CheckInteger, 1, ++/*472647*/ OPC_CheckType, MVT::i32, ++/*472649*/ OPC_MoveParent, ++/*472650*/ OPC_MoveChild6, ++/*472651*/ OPC_CheckInteger, 1, ++/*472653*/ OPC_CheckType, MVT::i32, ++/*472655*/ OPC_MoveParent, ++/*472656*/ OPC_MoveChild7, ++/*472657*/ OPC_CheckInteger, 1, ++/*472659*/ OPC_CheckType, MVT::i32, ++/*472661*/ OPC_MoveParent, ++/*472662*/ OPC_CheckType, MVT::v8i16, ++/*472664*/ OPC_MoveParent, ++/*472665*/ OPC_CheckType, MVT::v8i16, ++/*472667*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*472669*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*472677*/ 0, /*End of Scope*/ ++/*472678*/ 0, /*End of Scope*/ ++/*472679*/ 0, /*End of Scope*/ ++/*472680*/ /*Scope*/ 118|128,84/*10870*/, /*->483552*/ ++/*472682*/ OPC_MoveChild0, ++/*472683*/ OPC_SwitchOpcode /*2 cases */, 102|128,20/*2662*/, TARGET_VAL(ISD::BUILD_VECTOR),// ->475350 ++/*472688*/ OPC_CheckChild0Integer, 1, ++/*472690*/ OPC_CheckChild0Type, MVT::i32, ++/*472692*/ OPC_CheckChild1Integer, 1, ++/*472694*/ OPC_CheckChild1Type, MVT::i32, ++/*472696*/ OPC_CheckChild2Integer, 1, ++/*472698*/ OPC_CheckChild2Type, MVT::i32, ++/*472700*/ OPC_CheckChild3Integer, 1, ++/*472702*/ OPC_CheckChild3Type, MVT::i32, ++/*472704*/ OPC_CheckChild4Integer, 1, ++/*472706*/ OPC_CheckChild4Type, MVT::i32, ++/*472708*/ OPC_MoveChild5, ++/*472709*/ OPC_CheckInteger, 1, ++/*472711*/ OPC_CheckType, MVT::i32, ++/*472713*/ OPC_MoveParent, ++/*472714*/ OPC_MoveChild6, ++/*472715*/ OPC_CheckInteger, 1, ++/*472717*/ OPC_CheckType, MVT::i32, ++/*472719*/ OPC_MoveParent, ++/*472720*/ OPC_MoveChild7, ++/*472721*/ OPC_CheckInteger, 1, ++/*472723*/ OPC_CheckType, MVT::i32, ++/*472725*/ OPC_MoveParent, ++/*472726*/ OPC_MoveParent, ++/*472727*/ OPC_MoveChild1, ++/*472728*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*472731*/ OPC_RecordChild0, // #0 = $a ++/*472732*/ OPC_RecordChild1, // #1 = $b ++/*472733*/ OPC_MoveParent, ++/*472734*/ OPC_MoveParent, ++/*472735*/ OPC_MoveChild1, ++/*472736*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*472739*/ OPC_CheckChild0Integer, 15, ++/*472741*/ OPC_CheckChild0Type, MVT::i32, ++/*472743*/ OPC_CheckChild1Integer, 15, ++/*472745*/ OPC_CheckChild1Type, MVT::i32, ++/*472747*/ OPC_CheckChild2Integer, 15, ++/*472749*/ OPC_CheckChild2Type, MVT::i32, ++/*472751*/ OPC_CheckChild3Integer, 15, ++/*472753*/ OPC_CheckChild3Type, MVT::i32, ++/*472755*/ OPC_CheckChild4Integer, 15, ++/*472757*/ OPC_CheckChild4Type, MVT::i32, ++/*472759*/ OPC_MoveChild5, ++/*472760*/ OPC_CheckInteger, 15, ++/*472762*/ OPC_CheckType, MVT::i32, ++/*472764*/ OPC_MoveParent, ++/*472765*/ OPC_MoveChild6, ++/*472766*/ OPC_CheckInteger, 15, ++/*472768*/ OPC_CheckType, MVT::i32, ++/*472770*/ OPC_MoveParent, ++/*472771*/ OPC_MoveChild7, ++/*472772*/ OPC_CheckInteger, 15, ++/*472774*/ OPC_CheckType, MVT::i32, ++/*472776*/ OPC_MoveParent, ++/*472777*/ OPC_CheckType, MVT::v8i16, ++/*472779*/ OPC_MoveParent, ++/*472780*/ OPC_MoveParent, ++/*472781*/ OPC_MoveChild1, ++/*472782*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*472785*/ OPC_Scope, 14|128,5/*654*/, /*->473442*/ // 7 children in Scope ++/*472788*/ OPC_MoveChild0, ++/*472789*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*472792*/ OPC_Scope, 107, /*->472901*/ // 6 children in Scope ++/*472794*/ OPC_MoveChild0, ++/*472795*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*472798*/ OPC_CheckChild0Integer, 1, ++/*472800*/ OPC_CheckChild0Type, MVT::i32, ++/*472802*/ OPC_CheckChild1Integer, 1, ++/*472804*/ OPC_CheckChild1Type, MVT::i32, ++/*472806*/ OPC_CheckChild2Integer, 1, ++/*472808*/ OPC_CheckChild2Type, MVT::i32, ++/*472810*/ OPC_CheckChild3Integer, 1, ++/*472812*/ OPC_CheckChild3Type, MVT::i32, ++/*472814*/ OPC_CheckChild4Integer, 1, ++/*472816*/ OPC_CheckChild4Type, MVT::i32, ++/*472818*/ OPC_MoveChild5, ++/*472819*/ OPC_CheckInteger, 1, ++/*472821*/ OPC_CheckType, MVT::i32, ++/*472823*/ OPC_MoveParent, ++/*472824*/ OPC_MoveChild6, ++/*472825*/ OPC_CheckInteger, 1, ++/*472827*/ OPC_CheckType, MVT::i32, ++/*472829*/ OPC_MoveParent, ++/*472830*/ OPC_MoveChild7, ++/*472831*/ OPC_CheckInteger, 1, ++/*472833*/ OPC_CheckType, MVT::i32, ++/*472835*/ OPC_MoveParent, ++/*472836*/ OPC_MoveParent, ++/*472837*/ OPC_CheckChild1Same, 0, ++/*472839*/ OPC_MoveParent, ++/*472840*/ OPC_CheckChild1Same, 1, ++/*472842*/ OPC_MoveParent, ++/*472843*/ OPC_MoveParent, ++/*472844*/ OPC_MoveChild1, ++/*472845*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*472848*/ OPC_CheckChild0Integer, 1, ++/*472850*/ OPC_CheckChild0Type, MVT::i32, ++/*472852*/ OPC_CheckChild1Integer, 1, ++/*472854*/ OPC_CheckChild1Type, MVT::i32, ++/*472856*/ OPC_CheckChild2Integer, 1, ++/*472858*/ OPC_CheckChild2Type, MVT::i32, ++/*472860*/ OPC_CheckChild3Integer, 1, ++/*472862*/ OPC_CheckChild3Type, MVT::i32, ++/*472864*/ OPC_CheckChild4Integer, 1, ++/*472866*/ OPC_CheckChild4Type, MVT::i32, ++/*472868*/ OPC_MoveChild5, ++/*472869*/ OPC_CheckInteger, 1, ++/*472871*/ OPC_CheckType, MVT::i32, ++/*472873*/ OPC_MoveParent, ++/*472874*/ OPC_MoveChild6, ++/*472875*/ OPC_CheckInteger, 1, ++/*472877*/ OPC_CheckType, MVT::i32, ++/*472879*/ OPC_MoveParent, ++/*472880*/ OPC_MoveChild7, ++/*472881*/ OPC_CheckInteger, 1, ++/*472883*/ OPC_CheckType, MVT::i32, ++/*472885*/ OPC_MoveParent, ++/*472886*/ OPC_CheckType, MVT::v8i16, ++/*472888*/ OPC_MoveParent, ++/*472889*/ OPC_CheckType, MVT::v8i16, ++/*472891*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*472893*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a), LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*472901*/ /*Scope*/ 107, /*->473009*/ ++/*472902*/ OPC_CheckChild0Same, 0, ++/*472904*/ OPC_MoveChild1, ++/*472905*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*472908*/ OPC_CheckChild0Integer, 1, ++/*472910*/ OPC_CheckChild0Type, MVT::i32, ++/*472912*/ OPC_CheckChild1Integer, 1, ++/*472914*/ OPC_CheckChild1Type, MVT::i32, ++/*472916*/ OPC_CheckChild2Integer, 1, ++/*472918*/ OPC_CheckChild2Type, MVT::i32, ++/*472920*/ OPC_CheckChild3Integer, 1, ++/*472922*/ OPC_CheckChild3Type, MVT::i32, ++/*472924*/ OPC_CheckChild4Integer, 1, ++/*472926*/ OPC_CheckChild4Type, MVT::i32, ++/*472928*/ OPC_MoveChild5, ++/*472929*/ OPC_CheckInteger, 1, ++/*472931*/ OPC_CheckType, MVT::i32, ++/*472933*/ OPC_MoveParent, ++/*472934*/ OPC_MoveChild6, ++/*472935*/ OPC_CheckInteger, 1, ++/*472937*/ OPC_CheckType, MVT::i32, ++/*472939*/ OPC_MoveParent, ++/*472940*/ OPC_MoveChild7, ++/*472941*/ OPC_CheckInteger, 1, ++/*472943*/ OPC_CheckType, MVT::i32, ++/*472945*/ OPC_MoveParent, ++/*472946*/ OPC_MoveParent, ++/*472947*/ OPC_MoveParent, ++/*472948*/ OPC_CheckChild1Same, 1, ++/*472950*/ OPC_MoveParent, ++/*472951*/ OPC_MoveParent, ++/*472952*/ OPC_MoveChild1, ++/*472953*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*472956*/ OPC_CheckChild0Integer, 1, ++/*472958*/ OPC_CheckChild0Type, MVT::i32, ++/*472960*/ OPC_CheckChild1Integer, 1, ++/*472962*/ OPC_CheckChild1Type, MVT::i32, ++/*472964*/ OPC_CheckChild2Integer, 1, ++/*472966*/ OPC_CheckChild2Type, MVT::i32, ++/*472968*/ OPC_CheckChild3Integer, 1, ++/*472970*/ OPC_CheckChild3Type, MVT::i32, ++/*472972*/ OPC_CheckChild4Integer, 1, ++/*472974*/ OPC_CheckChild4Type, MVT::i32, ++/*472976*/ OPC_MoveChild5, ++/*472977*/ OPC_CheckInteger, 1, ++/*472979*/ OPC_CheckType, MVT::i32, ++/*472981*/ OPC_MoveParent, ++/*472982*/ OPC_MoveChild6, ++/*472983*/ OPC_CheckInteger, 1, ++/*472985*/ OPC_CheckType, MVT::i32, ++/*472987*/ OPC_MoveParent, ++/*472988*/ OPC_MoveChild7, ++/*472989*/ OPC_CheckInteger, 1, ++/*472991*/ OPC_CheckType, MVT::i32, ++/*472993*/ OPC_MoveParent, ++/*472994*/ OPC_CheckType, MVT::v8i16, ++/*472996*/ OPC_MoveParent, ++/*472997*/ OPC_CheckType, MVT::v8i16, ++/*472999*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*473001*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*473009*/ /*Scope*/ 107, /*->473117*/ ++/*473010*/ OPC_MoveChild0, ++/*473011*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*473014*/ OPC_CheckChild0Integer, 1, ++/*473016*/ OPC_CheckChild0Type, MVT::i32, ++/*473018*/ OPC_CheckChild1Integer, 1, ++/*473020*/ OPC_CheckChild1Type, MVT::i32, ++/*473022*/ OPC_CheckChild2Integer, 1, ++/*473024*/ OPC_CheckChild2Type, MVT::i32, ++/*473026*/ OPC_CheckChild3Integer, 1, ++/*473028*/ OPC_CheckChild3Type, MVT::i32, ++/*473030*/ OPC_CheckChild4Integer, 1, ++/*473032*/ OPC_CheckChild4Type, MVT::i32, ++/*473034*/ OPC_MoveChild5, ++/*473035*/ OPC_CheckInteger, 1, ++/*473037*/ OPC_CheckType, MVT::i32, ++/*473039*/ OPC_MoveParent, ++/*473040*/ OPC_MoveChild6, ++/*473041*/ OPC_CheckInteger, 1, ++/*473043*/ OPC_CheckType, MVT::i32, ++/*473045*/ OPC_MoveParent, ++/*473046*/ OPC_MoveChild7, ++/*473047*/ OPC_CheckInteger, 1, ++/*473049*/ OPC_CheckType, MVT::i32, ++/*473051*/ OPC_MoveParent, ++/*473052*/ OPC_MoveParent, ++/*473053*/ OPC_CheckChild1Same, 1, ++/*473055*/ OPC_MoveParent, ++/*473056*/ OPC_CheckChild1Same, 0, ++/*473058*/ OPC_MoveParent, ++/*473059*/ OPC_MoveParent, ++/*473060*/ OPC_MoveChild1, ++/*473061*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*473064*/ OPC_CheckChild0Integer, 1, ++/*473066*/ OPC_CheckChild0Type, MVT::i32, ++/*473068*/ OPC_CheckChild1Integer, 1, ++/*473070*/ OPC_CheckChild1Type, MVT::i32, ++/*473072*/ OPC_CheckChild2Integer, 1, ++/*473074*/ OPC_CheckChild2Type, MVT::i32, ++/*473076*/ OPC_CheckChild3Integer, 1, ++/*473078*/ OPC_CheckChild3Type, MVT::i32, ++/*473080*/ OPC_CheckChild4Integer, 1, ++/*473082*/ OPC_CheckChild4Type, MVT::i32, ++/*473084*/ OPC_MoveChild5, ++/*473085*/ OPC_CheckInteger, 1, ++/*473087*/ OPC_CheckType, MVT::i32, ++/*473089*/ OPC_MoveParent, ++/*473090*/ OPC_MoveChild6, ++/*473091*/ OPC_CheckInteger, 1, ++/*473093*/ OPC_CheckType, MVT::i32, ++/*473095*/ OPC_MoveParent, ++/*473096*/ OPC_MoveChild7, ++/*473097*/ OPC_CheckInteger, 1, ++/*473099*/ OPC_CheckType, MVT::i32, ++/*473101*/ OPC_MoveParent, ++/*473102*/ OPC_CheckType, MVT::v8i16, ++/*473104*/ OPC_MoveParent, ++/*473105*/ OPC_CheckType, MVT::v8i16, ++/*473107*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*473109*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b), LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*473117*/ /*Scope*/ 107, /*->473225*/ ++/*473118*/ OPC_CheckChild0Same, 1, ++/*473120*/ OPC_MoveChild1, ++/*473121*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*473124*/ OPC_CheckChild0Integer, 1, ++/*473126*/ OPC_CheckChild0Type, MVT::i32, ++/*473128*/ OPC_CheckChild1Integer, 1, ++/*473130*/ OPC_CheckChild1Type, MVT::i32, ++/*473132*/ OPC_CheckChild2Integer, 1, ++/*473134*/ OPC_CheckChild2Type, MVT::i32, ++/*473136*/ OPC_CheckChild3Integer, 1, ++/*473138*/ OPC_CheckChild3Type, MVT::i32, ++/*473140*/ OPC_CheckChild4Integer, 1, ++/*473142*/ OPC_CheckChild4Type, MVT::i32, ++/*473144*/ OPC_MoveChild5, ++/*473145*/ OPC_CheckInteger, 1, ++/*473147*/ OPC_CheckType, MVT::i32, ++/*473149*/ OPC_MoveParent, ++/*473150*/ OPC_MoveChild6, ++/*473151*/ OPC_CheckInteger, 1, ++/*473153*/ OPC_CheckType, MVT::i32, ++/*473155*/ OPC_MoveParent, ++/*473156*/ OPC_MoveChild7, ++/*473157*/ OPC_CheckInteger, 1, ++/*473159*/ OPC_CheckType, MVT::i32, ++/*473161*/ OPC_MoveParent, ++/*473162*/ OPC_MoveParent, ++/*473163*/ OPC_MoveParent, ++/*473164*/ OPC_CheckChild1Same, 0, ++/*473166*/ OPC_MoveParent, ++/*473167*/ OPC_MoveParent, ++/*473168*/ OPC_MoveChild1, ++/*473169*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*473172*/ OPC_CheckChild0Integer, 1, ++/*473174*/ OPC_CheckChild0Type, MVT::i32, ++/*473176*/ OPC_CheckChild1Integer, 1, ++/*473178*/ OPC_CheckChild1Type, MVT::i32, ++/*473180*/ OPC_CheckChild2Integer, 1, ++/*473182*/ OPC_CheckChild2Type, MVT::i32, ++/*473184*/ OPC_CheckChild3Integer, 1, ++/*473186*/ OPC_CheckChild3Type, MVT::i32, ++/*473188*/ OPC_CheckChild4Integer, 1, ++/*473190*/ OPC_CheckChild4Type, MVT::i32, ++/*473192*/ OPC_MoveChild5, ++/*473193*/ OPC_CheckInteger, 1, ++/*473195*/ OPC_CheckType, MVT::i32, ++/*473197*/ OPC_MoveParent, ++/*473198*/ OPC_MoveChild6, ++/*473199*/ OPC_CheckInteger, 1, ++/*473201*/ OPC_CheckType, MVT::i32, ++/*473203*/ OPC_MoveParent, ++/*473204*/ OPC_MoveChild7, ++/*473205*/ OPC_CheckInteger, 1, ++/*473207*/ OPC_CheckType, MVT::i32, ++/*473209*/ OPC_MoveParent, ++/*473210*/ OPC_CheckType, MVT::v8i16, ++/*473212*/ OPC_MoveParent, ++/*473213*/ OPC_CheckType, MVT::v8i16, ++/*473215*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*473217*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*473225*/ /*Scope*/ 107, /*->473333*/ ++/*473226*/ OPC_CheckChild0Same, 0, ++/*473228*/ OPC_CheckChild1Same, 1, ++/*473230*/ OPC_MoveParent, ++/*473231*/ OPC_MoveChild1, ++/*473232*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*473235*/ OPC_CheckChild0Integer, 1, ++/*473237*/ OPC_CheckChild0Type, MVT::i32, ++/*473239*/ OPC_CheckChild1Integer, 1, ++/*473241*/ OPC_CheckChild1Type, MVT::i32, ++/*473243*/ OPC_CheckChild2Integer, 1, ++/*473245*/ OPC_CheckChild2Type, MVT::i32, ++/*473247*/ OPC_CheckChild3Integer, 1, ++/*473249*/ OPC_CheckChild3Type, MVT::i32, ++/*473251*/ OPC_CheckChild4Integer, 1, ++/*473253*/ OPC_CheckChild4Type, MVT::i32, ++/*473255*/ OPC_MoveChild5, ++/*473256*/ OPC_CheckInteger, 1, ++/*473258*/ OPC_CheckType, MVT::i32, ++/*473260*/ OPC_MoveParent, ++/*473261*/ OPC_MoveChild6, ++/*473262*/ OPC_CheckInteger, 1, ++/*473264*/ OPC_CheckType, MVT::i32, ++/*473266*/ OPC_MoveParent, ++/*473267*/ OPC_MoveChild7, ++/*473268*/ OPC_CheckInteger, 1, ++/*473270*/ OPC_CheckType, MVT::i32, ++/*473272*/ OPC_MoveParent, ++/*473273*/ OPC_MoveParent, ++/*473274*/ OPC_MoveParent, ++/*473275*/ OPC_MoveParent, ++/*473276*/ OPC_MoveChild1, ++/*473277*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*473280*/ OPC_CheckChild0Integer, 1, ++/*473282*/ OPC_CheckChild0Type, MVT::i32, ++/*473284*/ OPC_CheckChild1Integer, 1, ++/*473286*/ OPC_CheckChild1Type, MVT::i32, ++/*473288*/ OPC_CheckChild2Integer, 1, ++/*473290*/ OPC_CheckChild2Type, MVT::i32, ++/*473292*/ OPC_CheckChild3Integer, 1, ++/*473294*/ OPC_CheckChild3Type, MVT::i32, ++/*473296*/ OPC_CheckChild4Integer, 1, ++/*473298*/ OPC_CheckChild4Type, MVT::i32, ++/*473300*/ OPC_MoveChild5, ++/*473301*/ OPC_CheckInteger, 1, ++/*473303*/ OPC_CheckType, MVT::i32, ++/*473305*/ OPC_MoveParent, ++/*473306*/ OPC_MoveChild6, ++/*473307*/ OPC_CheckInteger, 1, ++/*473309*/ OPC_CheckType, MVT::i32, ++/*473311*/ OPC_MoveParent, ++/*473312*/ OPC_MoveChild7, ++/*473313*/ OPC_CheckInteger, 1, ++/*473315*/ OPC_CheckType, MVT::i32, ++/*473317*/ OPC_MoveParent, ++/*473318*/ OPC_CheckType, MVT::v8i16, ++/*473320*/ OPC_MoveParent, ++/*473321*/ OPC_CheckType, MVT::v8i16, ++/*473323*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*473325*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*473333*/ /*Scope*/ 107, /*->473441*/ ++/*473334*/ OPC_CheckChild0Same, 1, ++/*473336*/ OPC_CheckChild1Same, 0, ++/*473338*/ OPC_MoveParent, ++/*473339*/ OPC_MoveChild1, ++/*473340*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*473343*/ OPC_CheckChild0Integer, 1, ++/*473345*/ OPC_CheckChild0Type, MVT::i32, ++/*473347*/ OPC_CheckChild1Integer, 1, ++/*473349*/ OPC_CheckChild1Type, MVT::i32, ++/*473351*/ OPC_CheckChild2Integer, 1, ++/*473353*/ OPC_CheckChild2Type, MVT::i32, ++/*473355*/ OPC_CheckChild3Integer, 1, ++/*473357*/ OPC_CheckChild3Type, MVT::i32, ++/*473359*/ OPC_CheckChild4Integer, 1, ++/*473361*/ OPC_CheckChild4Type, MVT::i32, ++/*473363*/ OPC_MoveChild5, ++/*473364*/ OPC_CheckInteger, 1, ++/*473366*/ OPC_CheckType, MVT::i32, ++/*473368*/ OPC_MoveParent, ++/*473369*/ OPC_MoveChild6, ++/*473370*/ OPC_CheckInteger, 1, ++/*473372*/ OPC_CheckType, MVT::i32, ++/*473374*/ OPC_MoveParent, ++/*473375*/ OPC_MoveChild7, ++/*473376*/ OPC_CheckInteger, 1, ++/*473378*/ OPC_CheckType, MVT::i32, ++/*473380*/ OPC_MoveParent, ++/*473381*/ OPC_MoveParent, ++/*473382*/ OPC_MoveParent, ++/*473383*/ OPC_MoveParent, ++/*473384*/ OPC_MoveChild1, ++/*473385*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*473388*/ OPC_CheckChild0Integer, 1, ++/*473390*/ OPC_CheckChild0Type, MVT::i32, ++/*473392*/ OPC_CheckChild1Integer, 1, ++/*473394*/ OPC_CheckChild1Type, MVT::i32, ++/*473396*/ OPC_CheckChild2Integer, 1, ++/*473398*/ OPC_CheckChild2Type, MVT::i32, ++/*473400*/ OPC_CheckChild3Integer, 1, ++/*473402*/ OPC_CheckChild3Type, MVT::i32, ++/*473404*/ OPC_CheckChild4Integer, 1, ++/*473406*/ OPC_CheckChild4Type, MVT::i32, ++/*473408*/ OPC_MoveChild5, ++/*473409*/ OPC_CheckInteger, 1, ++/*473411*/ OPC_CheckType, MVT::i32, ++/*473413*/ OPC_MoveParent, ++/*473414*/ OPC_MoveChild6, ++/*473415*/ OPC_CheckInteger, 1, ++/*473417*/ OPC_CheckType, MVT::i32, ++/*473419*/ OPC_MoveParent, ++/*473420*/ OPC_MoveChild7, ++/*473421*/ OPC_CheckInteger, 1, ++/*473423*/ OPC_CheckType, MVT::i32, ++/*473425*/ OPC_MoveParent, ++/*473426*/ OPC_CheckType, MVT::v8i16, ++/*473428*/ OPC_MoveParent, ++/*473429*/ OPC_CheckType, MVT::v8i16, ++/*473431*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*473433*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*473441*/ 0, /*End of Scope*/ ++/*473442*/ /*Scope*/ 92|128,1/*220*/, /*->473664*/ ++/*473444*/ OPC_CheckChild0Same, 1, ++/*473446*/ OPC_MoveChild1, ++/*473447*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*473450*/ OPC_Scope, 105, /*->473557*/ // 2 children in Scope ++/*473452*/ OPC_MoveChild0, ++/*473453*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*473456*/ OPC_CheckChild0Integer, 1, ++/*473458*/ OPC_CheckChild0Type, MVT::i32, ++/*473460*/ OPC_CheckChild1Integer, 1, ++/*473462*/ OPC_CheckChild1Type, MVT::i32, ++/*473464*/ OPC_CheckChild2Integer, 1, ++/*473466*/ OPC_CheckChild2Type, MVT::i32, ++/*473468*/ OPC_CheckChild3Integer, 1, ++/*473470*/ OPC_CheckChild3Type, MVT::i32, ++/*473472*/ OPC_CheckChild4Integer, 1, ++/*473474*/ OPC_CheckChild4Type, MVT::i32, ++/*473476*/ OPC_MoveChild5, ++/*473477*/ OPC_CheckInteger, 1, ++/*473479*/ OPC_CheckType, MVT::i32, ++/*473481*/ OPC_MoveParent, ++/*473482*/ OPC_MoveChild6, ++/*473483*/ OPC_CheckInteger, 1, ++/*473485*/ OPC_CheckType, MVT::i32, ++/*473487*/ OPC_MoveParent, ++/*473488*/ OPC_MoveChild7, ++/*473489*/ OPC_CheckInteger, 1, ++/*473491*/ OPC_CheckType, MVT::i32, ++/*473493*/ OPC_MoveParent, ++/*473494*/ OPC_MoveParent, ++/*473495*/ OPC_CheckChild1Same, 0, ++/*473497*/ OPC_MoveParent, ++/*473498*/ OPC_MoveParent, ++/*473499*/ OPC_MoveParent, ++/*473500*/ OPC_MoveChild1, ++/*473501*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*473504*/ OPC_CheckChild0Integer, 1, ++/*473506*/ OPC_CheckChild0Type, MVT::i32, ++/*473508*/ OPC_CheckChild1Integer, 1, ++/*473510*/ OPC_CheckChild1Type, MVT::i32, ++/*473512*/ OPC_CheckChild2Integer, 1, ++/*473514*/ OPC_CheckChild2Type, MVT::i32, ++/*473516*/ OPC_CheckChild3Integer, 1, ++/*473518*/ OPC_CheckChild3Type, MVT::i32, ++/*473520*/ OPC_CheckChild4Integer, 1, ++/*473522*/ OPC_CheckChild4Type, MVT::i32, ++/*473524*/ OPC_MoveChild5, ++/*473525*/ OPC_CheckInteger, 1, ++/*473527*/ OPC_CheckType, MVT::i32, ++/*473529*/ OPC_MoveParent, ++/*473530*/ OPC_MoveChild6, ++/*473531*/ OPC_CheckInteger, 1, ++/*473533*/ OPC_CheckType, MVT::i32, ++/*473535*/ OPC_MoveParent, ++/*473536*/ OPC_MoveChild7, ++/*473537*/ OPC_CheckInteger, 1, ++/*473539*/ OPC_CheckType, MVT::i32, ++/*473541*/ OPC_MoveParent, ++/*473542*/ OPC_CheckType, MVT::v8i16, ++/*473544*/ OPC_MoveParent, ++/*473545*/ OPC_CheckType, MVT::v8i16, ++/*473547*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*473549*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*473557*/ /*Scope*/ 105, /*->473663*/ ++/*473558*/ OPC_CheckChild0Same, 0, ++/*473560*/ OPC_MoveChild1, ++/*473561*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*473564*/ OPC_CheckChild0Integer, 1, ++/*473566*/ OPC_CheckChild0Type, MVT::i32, ++/*473568*/ OPC_CheckChild1Integer, 1, ++/*473570*/ OPC_CheckChild1Type, MVT::i32, ++/*473572*/ OPC_CheckChild2Integer, 1, ++/*473574*/ OPC_CheckChild2Type, MVT::i32, ++/*473576*/ OPC_CheckChild3Integer, 1, ++/*473578*/ OPC_CheckChild3Type, MVT::i32, ++/*473580*/ OPC_CheckChild4Integer, 1, ++/*473582*/ OPC_CheckChild4Type, MVT::i32, ++/*473584*/ OPC_MoveChild5, ++/*473585*/ OPC_CheckInteger, 1, ++/*473587*/ OPC_CheckType, MVT::i32, ++/*473589*/ OPC_MoveParent, ++/*473590*/ OPC_MoveChild6, ++/*473591*/ OPC_CheckInteger, 1, ++/*473593*/ OPC_CheckType, MVT::i32, ++/*473595*/ OPC_MoveParent, ++/*473596*/ OPC_MoveChild7, ++/*473597*/ OPC_CheckInteger, 1, ++/*473599*/ OPC_CheckType, MVT::i32, ++/*473601*/ OPC_MoveParent, ++/*473602*/ OPC_MoveParent, ++/*473603*/ OPC_MoveParent, ++/*473604*/ OPC_MoveParent, ++/*473605*/ OPC_MoveParent, ++/*473606*/ OPC_MoveChild1, ++/*473607*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*473610*/ OPC_CheckChild0Integer, 1, ++/*473612*/ OPC_CheckChild0Type, MVT::i32, ++/*473614*/ OPC_CheckChild1Integer, 1, ++/*473616*/ OPC_CheckChild1Type, MVT::i32, ++/*473618*/ OPC_CheckChild2Integer, 1, ++/*473620*/ OPC_CheckChild2Type, MVT::i32, ++/*473622*/ OPC_CheckChild3Integer, 1, ++/*473624*/ OPC_CheckChild3Type, MVT::i32, ++/*473626*/ OPC_CheckChild4Integer, 1, ++/*473628*/ OPC_CheckChild4Type, MVT::i32, ++/*473630*/ OPC_MoveChild5, ++/*473631*/ OPC_CheckInteger, 1, ++/*473633*/ OPC_CheckType, MVT::i32, ++/*473635*/ OPC_MoveParent, ++/*473636*/ OPC_MoveChild6, ++/*473637*/ OPC_CheckInteger, 1, ++/*473639*/ OPC_CheckType, MVT::i32, ++/*473641*/ OPC_MoveParent, ++/*473642*/ OPC_MoveChild7, ++/*473643*/ OPC_CheckInteger, 1, ++/*473645*/ OPC_CheckType, MVT::i32, ++/*473647*/ OPC_MoveParent, ++/*473648*/ OPC_CheckType, MVT::v8i16, ++/*473650*/ OPC_MoveParent, ++/*473651*/ OPC_CheckType, MVT::v8i16, ++/*473653*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*473655*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*473663*/ 0, /*End of Scope*/ ++/*473664*/ /*Scope*/ 92|128,1/*220*/, /*->473886*/ ++/*473666*/ OPC_CheckChild0Same, 0, ++/*473668*/ OPC_MoveChild1, ++/*473669*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*473672*/ OPC_Scope, 105, /*->473779*/ // 2 children in Scope ++/*473674*/ OPC_MoveChild0, ++/*473675*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*473678*/ OPC_CheckChild0Integer, 1, ++/*473680*/ OPC_CheckChild0Type, MVT::i32, ++/*473682*/ OPC_CheckChild1Integer, 1, ++/*473684*/ OPC_CheckChild1Type, MVT::i32, ++/*473686*/ OPC_CheckChild2Integer, 1, ++/*473688*/ OPC_CheckChild2Type, MVT::i32, ++/*473690*/ OPC_CheckChild3Integer, 1, ++/*473692*/ OPC_CheckChild3Type, MVT::i32, ++/*473694*/ OPC_CheckChild4Integer, 1, ++/*473696*/ OPC_CheckChild4Type, MVT::i32, ++/*473698*/ OPC_MoveChild5, ++/*473699*/ OPC_CheckInteger, 1, ++/*473701*/ OPC_CheckType, MVT::i32, ++/*473703*/ OPC_MoveParent, ++/*473704*/ OPC_MoveChild6, ++/*473705*/ OPC_CheckInteger, 1, ++/*473707*/ OPC_CheckType, MVT::i32, ++/*473709*/ OPC_MoveParent, ++/*473710*/ OPC_MoveChild7, ++/*473711*/ OPC_CheckInteger, 1, ++/*473713*/ OPC_CheckType, MVT::i32, ++/*473715*/ OPC_MoveParent, ++/*473716*/ OPC_MoveParent, ++/*473717*/ OPC_CheckChild1Same, 1, ++/*473719*/ OPC_MoveParent, ++/*473720*/ OPC_MoveParent, ++/*473721*/ OPC_MoveParent, ++/*473722*/ OPC_MoveChild1, ++/*473723*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*473726*/ OPC_CheckChild0Integer, 1, ++/*473728*/ OPC_CheckChild0Type, MVT::i32, ++/*473730*/ OPC_CheckChild1Integer, 1, ++/*473732*/ OPC_CheckChild1Type, MVT::i32, ++/*473734*/ OPC_CheckChild2Integer, 1, ++/*473736*/ OPC_CheckChild2Type, MVT::i32, ++/*473738*/ OPC_CheckChild3Integer, 1, ++/*473740*/ OPC_CheckChild3Type, MVT::i32, ++/*473742*/ OPC_CheckChild4Integer, 1, ++/*473744*/ OPC_CheckChild4Type, MVT::i32, ++/*473746*/ OPC_MoveChild5, ++/*473747*/ OPC_CheckInteger, 1, ++/*473749*/ OPC_CheckType, MVT::i32, ++/*473751*/ OPC_MoveParent, ++/*473752*/ OPC_MoveChild6, ++/*473753*/ OPC_CheckInteger, 1, ++/*473755*/ OPC_CheckType, MVT::i32, ++/*473757*/ OPC_MoveParent, ++/*473758*/ OPC_MoveChild7, ++/*473759*/ OPC_CheckInteger, 1, ++/*473761*/ OPC_CheckType, MVT::i32, ++/*473763*/ OPC_MoveParent, ++/*473764*/ OPC_CheckType, MVT::v8i16, ++/*473766*/ OPC_MoveParent, ++/*473767*/ OPC_CheckType, MVT::v8i16, ++/*473769*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*473771*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*473779*/ /*Scope*/ 105, /*->473885*/ ++/*473780*/ OPC_CheckChild0Same, 1, ++/*473782*/ OPC_MoveChild1, ++/*473783*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*473786*/ OPC_CheckChild0Integer, 1, ++/*473788*/ OPC_CheckChild0Type, MVT::i32, ++/*473790*/ OPC_CheckChild1Integer, 1, ++/*473792*/ OPC_CheckChild1Type, MVT::i32, ++/*473794*/ OPC_CheckChild2Integer, 1, ++/*473796*/ OPC_CheckChild2Type, MVT::i32, ++/*473798*/ OPC_CheckChild3Integer, 1, ++/*473800*/ OPC_CheckChild3Type, MVT::i32, ++/*473802*/ OPC_CheckChild4Integer, 1, ++/*473804*/ OPC_CheckChild4Type, MVT::i32, ++/*473806*/ OPC_MoveChild5, ++/*473807*/ OPC_CheckInteger, 1, ++/*473809*/ OPC_CheckType, MVT::i32, ++/*473811*/ OPC_MoveParent, ++/*473812*/ OPC_MoveChild6, ++/*473813*/ OPC_CheckInteger, 1, ++/*473815*/ OPC_CheckType, MVT::i32, ++/*473817*/ OPC_MoveParent, ++/*473818*/ OPC_MoveChild7, ++/*473819*/ OPC_CheckInteger, 1, ++/*473821*/ OPC_CheckType, MVT::i32, ++/*473823*/ OPC_MoveParent, ++/*473824*/ OPC_MoveParent, ++/*473825*/ OPC_MoveParent, ++/*473826*/ OPC_MoveParent, ++/*473827*/ OPC_MoveParent, ++/*473828*/ OPC_MoveChild1, ++/*473829*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*473832*/ OPC_CheckChild0Integer, 1, ++/*473834*/ OPC_CheckChild0Type, MVT::i32, ++/*473836*/ OPC_CheckChild1Integer, 1, ++/*473838*/ OPC_CheckChild1Type, MVT::i32, ++/*473840*/ OPC_CheckChild2Integer, 1, ++/*473842*/ OPC_CheckChild2Type, MVT::i32, ++/*473844*/ OPC_CheckChild3Integer, 1, ++/*473846*/ OPC_CheckChild3Type, MVT::i32, ++/*473848*/ OPC_CheckChild4Integer, 1, ++/*473850*/ OPC_CheckChild4Type, MVT::i32, ++/*473852*/ OPC_MoveChild5, ++/*473853*/ OPC_CheckInteger, 1, ++/*473855*/ OPC_CheckType, MVT::i32, ++/*473857*/ OPC_MoveParent, ++/*473858*/ OPC_MoveChild6, ++/*473859*/ OPC_CheckInteger, 1, ++/*473861*/ OPC_CheckType, MVT::i32, ++/*473863*/ OPC_MoveParent, ++/*473864*/ OPC_MoveChild7, ++/*473865*/ OPC_CheckInteger, 1, ++/*473867*/ OPC_CheckType, MVT::i32, ++/*473869*/ OPC_MoveParent, ++/*473870*/ OPC_CheckType, MVT::v8i16, ++/*473872*/ OPC_MoveParent, ++/*473873*/ OPC_CheckType, MVT::v8i16, ++/*473875*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*473877*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*473885*/ 0, /*End of Scope*/ ++/*473886*/ /*Scope*/ 68|128,6/*836*/, /*->474724*/ ++/*473888*/ OPC_MoveChild0, ++/*473889*/ OPC_SwitchOpcode /*2 cases */, 47|128,1/*175*/, TARGET_VAL(ISD::BUILD_VECTOR),// ->474069 ++/*473894*/ OPC_CheckChild0Integer, 1, ++/*473896*/ OPC_CheckChild0Type, MVT::i32, ++/*473898*/ OPC_CheckChild1Integer, 1, ++/*473900*/ OPC_CheckChild1Type, MVT::i32, ++/*473902*/ OPC_CheckChild2Integer, 1, ++/*473904*/ OPC_CheckChild2Type, MVT::i32, ++/*473906*/ OPC_CheckChild3Integer, 1, ++/*473908*/ OPC_CheckChild3Type, MVT::i32, ++/*473910*/ OPC_CheckChild4Integer, 1, ++/*473912*/ OPC_CheckChild4Type, MVT::i32, ++/*473914*/ OPC_MoveChild5, ++/*473915*/ OPC_CheckInteger, 1, ++/*473917*/ OPC_CheckType, MVT::i32, ++/*473919*/ OPC_MoveParent, ++/*473920*/ OPC_MoveChild6, ++/*473921*/ OPC_CheckInteger, 1, ++/*473923*/ OPC_CheckType, MVT::i32, ++/*473925*/ OPC_MoveParent, ++/*473926*/ OPC_MoveChild7, ++/*473927*/ OPC_CheckInteger, 1, ++/*473929*/ OPC_CheckType, MVT::i32, ++/*473931*/ OPC_MoveParent, ++/*473932*/ OPC_MoveParent, ++/*473933*/ OPC_MoveChild1, ++/*473934*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*473937*/ OPC_Scope, 64, /*->474003*/ // 2 children in Scope ++/*473939*/ OPC_CheckChild0Same, 0, ++/*473941*/ OPC_CheckChild1Same, 1, ++/*473943*/ OPC_MoveParent, ++/*473944*/ OPC_MoveParent, ++/*473945*/ OPC_MoveParent, ++/*473946*/ OPC_MoveChild1, ++/*473947*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*473950*/ OPC_CheckChild0Integer, 1, ++/*473952*/ OPC_CheckChild0Type, MVT::i32, ++/*473954*/ OPC_CheckChild1Integer, 1, ++/*473956*/ OPC_CheckChild1Type, MVT::i32, ++/*473958*/ OPC_CheckChild2Integer, 1, ++/*473960*/ OPC_CheckChild2Type, MVT::i32, ++/*473962*/ OPC_CheckChild3Integer, 1, ++/*473964*/ OPC_CheckChild3Type, MVT::i32, ++/*473966*/ OPC_CheckChild4Integer, 1, ++/*473968*/ OPC_CheckChild4Type, MVT::i32, ++/*473970*/ OPC_MoveChild5, ++/*473971*/ OPC_CheckInteger, 1, ++/*473973*/ OPC_CheckType, MVT::i32, ++/*473975*/ OPC_MoveParent, ++/*473976*/ OPC_MoveChild6, ++/*473977*/ OPC_CheckInteger, 1, ++/*473979*/ OPC_CheckType, MVT::i32, ++/*473981*/ OPC_MoveParent, ++/*473982*/ OPC_MoveChild7, ++/*473983*/ OPC_CheckInteger, 1, ++/*473985*/ OPC_CheckType, MVT::i32, ++/*473987*/ OPC_MoveParent, ++/*473988*/ OPC_CheckType, MVT::v8i16, ++/*473990*/ OPC_MoveParent, ++/*473991*/ OPC_CheckType, MVT::v8i16, ++/*473993*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*473995*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*474003*/ /*Scope*/ 64, /*->474068*/ ++/*474004*/ OPC_CheckChild0Same, 1, ++/*474006*/ OPC_CheckChild1Same, 0, ++/*474008*/ OPC_MoveParent, ++/*474009*/ OPC_MoveParent, ++/*474010*/ OPC_MoveParent, ++/*474011*/ OPC_MoveChild1, ++/*474012*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*474015*/ OPC_CheckChild0Integer, 1, ++/*474017*/ OPC_CheckChild0Type, MVT::i32, ++/*474019*/ OPC_CheckChild1Integer, 1, ++/*474021*/ OPC_CheckChild1Type, MVT::i32, ++/*474023*/ OPC_CheckChild2Integer, 1, ++/*474025*/ OPC_CheckChild2Type, MVT::i32, ++/*474027*/ OPC_CheckChild3Integer, 1, ++/*474029*/ OPC_CheckChild3Type, MVT::i32, ++/*474031*/ OPC_CheckChild4Integer, 1, ++/*474033*/ OPC_CheckChild4Type, MVT::i32, ++/*474035*/ OPC_MoveChild5, ++/*474036*/ OPC_CheckInteger, 1, ++/*474038*/ OPC_CheckType, MVT::i32, ++/*474040*/ OPC_MoveParent, ++/*474041*/ OPC_MoveChild6, ++/*474042*/ OPC_CheckInteger, 1, ++/*474044*/ OPC_CheckType, MVT::i32, ++/*474046*/ OPC_MoveParent, ++/*474047*/ OPC_MoveChild7, ++/*474048*/ OPC_CheckInteger, 1, ++/*474050*/ OPC_CheckType, MVT::i32, ++/*474052*/ OPC_MoveParent, ++/*474053*/ OPC_CheckType, MVT::v8i16, ++/*474055*/ OPC_MoveParent, ++/*474056*/ OPC_CheckType, MVT::v8i16, ++/*474058*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*474060*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*474068*/ 0, /*End of Scope*/ ++/*474069*/ /*SwitchOpcode*/ 10|128,5/*650*/, TARGET_VAL(ISD::ADD),// ->474723 ++/*474073*/ OPC_Scope, 107, /*->474182*/ // 6 children in Scope ++/*474075*/ OPC_MoveChild0, ++/*474076*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*474079*/ OPC_CheckChild0Integer, 1, ++/*474081*/ OPC_CheckChild0Type, MVT::i32, ++/*474083*/ OPC_CheckChild1Integer, 1, ++/*474085*/ OPC_CheckChild1Type, MVT::i32, ++/*474087*/ OPC_CheckChild2Integer, 1, ++/*474089*/ OPC_CheckChild2Type, MVT::i32, ++/*474091*/ OPC_CheckChild3Integer, 1, ++/*474093*/ OPC_CheckChild3Type, MVT::i32, ++/*474095*/ OPC_CheckChild4Integer, 1, ++/*474097*/ OPC_CheckChild4Type, MVT::i32, ++/*474099*/ OPC_MoveChild5, ++/*474100*/ OPC_CheckInteger, 1, ++/*474102*/ OPC_CheckType, MVT::i32, ++/*474104*/ OPC_MoveParent, ++/*474105*/ OPC_MoveChild6, ++/*474106*/ OPC_CheckInteger, 1, ++/*474108*/ OPC_CheckType, MVT::i32, ++/*474110*/ OPC_MoveParent, ++/*474111*/ OPC_MoveChild7, ++/*474112*/ OPC_CheckInteger, 1, ++/*474114*/ OPC_CheckType, MVT::i32, ++/*474116*/ OPC_MoveParent, ++/*474117*/ OPC_MoveParent, ++/*474118*/ OPC_CheckChild1Same, 1, ++/*474120*/ OPC_MoveParent, ++/*474121*/ OPC_CheckChild1Same, 0, ++/*474123*/ OPC_MoveParent, ++/*474124*/ OPC_MoveParent, ++/*474125*/ OPC_MoveChild1, ++/*474126*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*474129*/ OPC_CheckChild0Integer, 1, ++/*474131*/ OPC_CheckChild0Type, MVT::i32, ++/*474133*/ OPC_CheckChild1Integer, 1, ++/*474135*/ OPC_CheckChild1Type, MVT::i32, ++/*474137*/ OPC_CheckChild2Integer, 1, ++/*474139*/ OPC_CheckChild2Type, MVT::i32, ++/*474141*/ OPC_CheckChild3Integer, 1, ++/*474143*/ OPC_CheckChild3Type, MVT::i32, ++/*474145*/ OPC_CheckChild4Integer, 1, ++/*474147*/ OPC_CheckChild4Type, MVT::i32, ++/*474149*/ OPC_MoveChild5, ++/*474150*/ OPC_CheckInteger, 1, ++/*474152*/ OPC_CheckType, MVT::i32, ++/*474154*/ OPC_MoveParent, ++/*474155*/ OPC_MoveChild6, ++/*474156*/ OPC_CheckInteger, 1, ++/*474158*/ OPC_CheckType, MVT::i32, ++/*474160*/ OPC_MoveParent, ++/*474161*/ OPC_MoveChild7, ++/*474162*/ OPC_CheckInteger, 1, ++/*474164*/ OPC_CheckType, MVT::i32, ++/*474166*/ OPC_MoveParent, ++/*474167*/ OPC_CheckType, MVT::v8i16, ++/*474169*/ OPC_MoveParent, ++/*474170*/ OPC_CheckType, MVT::v8i16, ++/*474172*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*474174*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a), LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*474182*/ /*Scope*/ 107, /*->474290*/ ++/*474183*/ OPC_CheckChild0Same, 1, ++/*474185*/ OPC_MoveChild1, ++/*474186*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*474189*/ OPC_CheckChild0Integer, 1, ++/*474191*/ OPC_CheckChild0Type, MVT::i32, ++/*474193*/ OPC_CheckChild1Integer, 1, ++/*474195*/ OPC_CheckChild1Type, MVT::i32, ++/*474197*/ OPC_CheckChild2Integer, 1, ++/*474199*/ OPC_CheckChild2Type, MVT::i32, ++/*474201*/ OPC_CheckChild3Integer, 1, ++/*474203*/ OPC_CheckChild3Type, MVT::i32, ++/*474205*/ OPC_CheckChild4Integer, 1, ++/*474207*/ OPC_CheckChild4Type, MVT::i32, ++/*474209*/ OPC_MoveChild5, ++/*474210*/ OPC_CheckInteger, 1, ++/*474212*/ OPC_CheckType, MVT::i32, ++/*474214*/ OPC_MoveParent, ++/*474215*/ OPC_MoveChild6, ++/*474216*/ OPC_CheckInteger, 1, ++/*474218*/ OPC_CheckType, MVT::i32, ++/*474220*/ OPC_MoveParent, ++/*474221*/ OPC_MoveChild7, ++/*474222*/ OPC_CheckInteger, 1, ++/*474224*/ OPC_CheckType, MVT::i32, ++/*474226*/ OPC_MoveParent, ++/*474227*/ OPC_MoveParent, ++/*474228*/ OPC_MoveParent, ++/*474229*/ OPC_CheckChild1Same, 0, ++/*474231*/ OPC_MoveParent, ++/*474232*/ OPC_MoveParent, ++/*474233*/ OPC_MoveChild1, ++/*474234*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*474237*/ OPC_CheckChild0Integer, 1, ++/*474239*/ OPC_CheckChild0Type, MVT::i32, ++/*474241*/ OPC_CheckChild1Integer, 1, ++/*474243*/ OPC_CheckChild1Type, MVT::i32, ++/*474245*/ OPC_CheckChild2Integer, 1, ++/*474247*/ OPC_CheckChild2Type, MVT::i32, ++/*474249*/ OPC_CheckChild3Integer, 1, ++/*474251*/ OPC_CheckChild3Type, MVT::i32, ++/*474253*/ OPC_CheckChild4Integer, 1, ++/*474255*/ OPC_CheckChild4Type, MVT::i32, ++/*474257*/ OPC_MoveChild5, ++/*474258*/ OPC_CheckInteger, 1, ++/*474260*/ OPC_CheckType, MVT::i32, ++/*474262*/ OPC_MoveParent, ++/*474263*/ OPC_MoveChild6, ++/*474264*/ OPC_CheckInteger, 1, ++/*474266*/ OPC_CheckType, MVT::i32, ++/*474268*/ OPC_MoveParent, ++/*474269*/ OPC_MoveChild7, ++/*474270*/ OPC_CheckInteger, 1, ++/*474272*/ OPC_CheckType, MVT::i32, ++/*474274*/ OPC_MoveParent, ++/*474275*/ OPC_CheckType, MVT::v8i16, ++/*474277*/ OPC_MoveParent, ++/*474278*/ OPC_CheckType, MVT::v8i16, ++/*474280*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*474282*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*474290*/ /*Scope*/ 107, /*->474398*/ ++/*474291*/ OPC_MoveChild0, ++/*474292*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*474295*/ OPC_CheckChild0Integer, 1, ++/*474297*/ OPC_CheckChild0Type, MVT::i32, ++/*474299*/ OPC_CheckChild1Integer, 1, ++/*474301*/ OPC_CheckChild1Type, MVT::i32, ++/*474303*/ OPC_CheckChild2Integer, 1, ++/*474305*/ OPC_CheckChild2Type, MVT::i32, ++/*474307*/ OPC_CheckChild3Integer, 1, ++/*474309*/ OPC_CheckChild3Type, MVT::i32, ++/*474311*/ OPC_CheckChild4Integer, 1, ++/*474313*/ OPC_CheckChild4Type, MVT::i32, ++/*474315*/ OPC_MoveChild5, ++/*474316*/ OPC_CheckInteger, 1, ++/*474318*/ OPC_CheckType, MVT::i32, ++/*474320*/ OPC_MoveParent, ++/*474321*/ OPC_MoveChild6, ++/*474322*/ OPC_CheckInteger, 1, ++/*474324*/ OPC_CheckType, MVT::i32, ++/*474326*/ OPC_MoveParent, ++/*474327*/ OPC_MoveChild7, ++/*474328*/ OPC_CheckInteger, 1, ++/*474330*/ OPC_CheckType, MVT::i32, ++/*474332*/ OPC_MoveParent, ++/*474333*/ OPC_MoveParent, ++/*474334*/ OPC_CheckChild1Same, 0, ++/*474336*/ OPC_MoveParent, ++/*474337*/ OPC_CheckChild1Same, 1, ++/*474339*/ OPC_MoveParent, ++/*474340*/ OPC_MoveParent, ++/*474341*/ OPC_MoveChild1, ++/*474342*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*474345*/ OPC_CheckChild0Integer, 1, ++/*474347*/ OPC_CheckChild0Type, MVT::i32, ++/*474349*/ OPC_CheckChild1Integer, 1, ++/*474351*/ OPC_CheckChild1Type, MVT::i32, ++/*474353*/ OPC_CheckChild2Integer, 1, ++/*474355*/ OPC_CheckChild2Type, MVT::i32, ++/*474357*/ OPC_CheckChild3Integer, 1, ++/*474359*/ OPC_CheckChild3Type, MVT::i32, ++/*474361*/ OPC_CheckChild4Integer, 1, ++/*474363*/ OPC_CheckChild4Type, MVT::i32, ++/*474365*/ OPC_MoveChild5, ++/*474366*/ OPC_CheckInteger, 1, ++/*474368*/ OPC_CheckType, MVT::i32, ++/*474370*/ OPC_MoveParent, ++/*474371*/ OPC_MoveChild6, ++/*474372*/ OPC_CheckInteger, 1, ++/*474374*/ OPC_CheckType, MVT::i32, ++/*474376*/ OPC_MoveParent, ++/*474377*/ OPC_MoveChild7, ++/*474378*/ OPC_CheckInteger, 1, ++/*474380*/ OPC_CheckType, MVT::i32, ++/*474382*/ OPC_MoveParent, ++/*474383*/ OPC_CheckType, MVT::v8i16, ++/*474385*/ OPC_MoveParent, ++/*474386*/ OPC_CheckType, MVT::v8i16, ++/*474388*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*474390*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b), LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*474398*/ /*Scope*/ 107, /*->474506*/ ++/*474399*/ OPC_CheckChild0Same, 0, ++/*474401*/ OPC_MoveChild1, ++/*474402*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*474405*/ OPC_CheckChild0Integer, 1, ++/*474407*/ OPC_CheckChild0Type, MVT::i32, ++/*474409*/ OPC_CheckChild1Integer, 1, ++/*474411*/ OPC_CheckChild1Type, MVT::i32, ++/*474413*/ OPC_CheckChild2Integer, 1, ++/*474415*/ OPC_CheckChild2Type, MVT::i32, ++/*474417*/ OPC_CheckChild3Integer, 1, ++/*474419*/ OPC_CheckChild3Type, MVT::i32, ++/*474421*/ OPC_CheckChild4Integer, 1, ++/*474423*/ OPC_CheckChild4Type, MVT::i32, ++/*474425*/ OPC_MoveChild5, ++/*474426*/ OPC_CheckInteger, 1, ++/*474428*/ OPC_CheckType, MVT::i32, ++/*474430*/ OPC_MoveParent, ++/*474431*/ OPC_MoveChild6, ++/*474432*/ OPC_CheckInteger, 1, ++/*474434*/ OPC_CheckType, MVT::i32, ++/*474436*/ OPC_MoveParent, ++/*474437*/ OPC_MoveChild7, ++/*474438*/ OPC_CheckInteger, 1, ++/*474440*/ OPC_CheckType, MVT::i32, ++/*474442*/ OPC_MoveParent, ++/*474443*/ OPC_MoveParent, ++/*474444*/ OPC_MoveParent, ++/*474445*/ OPC_CheckChild1Same, 1, ++/*474447*/ OPC_MoveParent, ++/*474448*/ OPC_MoveParent, ++/*474449*/ OPC_MoveChild1, ++/*474450*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*474453*/ OPC_CheckChild0Integer, 1, ++/*474455*/ OPC_CheckChild0Type, MVT::i32, ++/*474457*/ OPC_CheckChild1Integer, 1, ++/*474459*/ OPC_CheckChild1Type, MVT::i32, ++/*474461*/ OPC_CheckChild2Integer, 1, ++/*474463*/ OPC_CheckChild2Type, MVT::i32, ++/*474465*/ OPC_CheckChild3Integer, 1, ++/*474467*/ OPC_CheckChild3Type, MVT::i32, ++/*474469*/ OPC_CheckChild4Integer, 1, ++/*474471*/ OPC_CheckChild4Type, MVT::i32, ++/*474473*/ OPC_MoveChild5, ++/*474474*/ OPC_CheckInteger, 1, ++/*474476*/ OPC_CheckType, MVT::i32, ++/*474478*/ OPC_MoveParent, ++/*474479*/ OPC_MoveChild6, ++/*474480*/ OPC_CheckInteger, 1, ++/*474482*/ OPC_CheckType, MVT::i32, ++/*474484*/ OPC_MoveParent, ++/*474485*/ OPC_MoveChild7, ++/*474486*/ OPC_CheckInteger, 1, ++/*474488*/ OPC_CheckType, MVT::i32, ++/*474490*/ OPC_MoveParent, ++/*474491*/ OPC_CheckType, MVT::v8i16, ++/*474493*/ OPC_MoveParent, ++/*474494*/ OPC_CheckType, MVT::v8i16, ++/*474496*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*474498*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*474506*/ /*Scope*/ 107, /*->474614*/ ++/*474507*/ OPC_CheckChild0Same, 1, ++/*474509*/ OPC_CheckChild1Same, 0, ++/*474511*/ OPC_MoveParent, ++/*474512*/ OPC_MoveChild1, ++/*474513*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*474516*/ OPC_CheckChild0Integer, 1, ++/*474518*/ OPC_CheckChild0Type, MVT::i32, ++/*474520*/ OPC_CheckChild1Integer, 1, ++/*474522*/ OPC_CheckChild1Type, MVT::i32, ++/*474524*/ OPC_CheckChild2Integer, 1, ++/*474526*/ OPC_CheckChild2Type, MVT::i32, ++/*474528*/ OPC_CheckChild3Integer, 1, ++/*474530*/ OPC_CheckChild3Type, MVT::i32, ++/*474532*/ OPC_CheckChild4Integer, 1, ++/*474534*/ OPC_CheckChild4Type, MVT::i32, ++/*474536*/ OPC_MoveChild5, ++/*474537*/ OPC_CheckInteger, 1, ++/*474539*/ OPC_CheckType, MVT::i32, ++/*474541*/ OPC_MoveParent, ++/*474542*/ OPC_MoveChild6, ++/*474543*/ OPC_CheckInteger, 1, ++/*474545*/ OPC_CheckType, MVT::i32, ++/*474547*/ OPC_MoveParent, ++/*474548*/ OPC_MoveChild7, ++/*474549*/ OPC_CheckInteger, 1, ++/*474551*/ OPC_CheckType, MVT::i32, ++/*474553*/ OPC_MoveParent, ++/*474554*/ OPC_MoveParent, ++/*474555*/ OPC_MoveParent, ++/*474556*/ OPC_MoveParent, ++/*474557*/ OPC_MoveChild1, ++/*474558*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*474561*/ OPC_CheckChild0Integer, 1, ++/*474563*/ OPC_CheckChild0Type, MVT::i32, ++/*474565*/ OPC_CheckChild1Integer, 1, ++/*474567*/ OPC_CheckChild1Type, MVT::i32, ++/*474569*/ OPC_CheckChild2Integer, 1, ++/*474571*/ OPC_CheckChild2Type, MVT::i32, ++/*474573*/ OPC_CheckChild3Integer, 1, ++/*474575*/ OPC_CheckChild3Type, MVT::i32, ++/*474577*/ OPC_CheckChild4Integer, 1, ++/*474579*/ OPC_CheckChild4Type, MVT::i32, ++/*474581*/ OPC_MoveChild5, ++/*474582*/ OPC_CheckInteger, 1, ++/*474584*/ OPC_CheckType, MVT::i32, ++/*474586*/ OPC_MoveParent, ++/*474587*/ OPC_MoveChild6, ++/*474588*/ OPC_CheckInteger, 1, ++/*474590*/ OPC_CheckType, MVT::i32, ++/*474592*/ OPC_MoveParent, ++/*474593*/ OPC_MoveChild7, ++/*474594*/ OPC_CheckInteger, 1, ++/*474596*/ OPC_CheckType, MVT::i32, ++/*474598*/ OPC_MoveParent, ++/*474599*/ OPC_CheckType, MVT::v8i16, ++/*474601*/ OPC_MoveParent, ++/*474602*/ OPC_CheckType, MVT::v8i16, ++/*474604*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*474606*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*474614*/ /*Scope*/ 107, /*->474722*/ ++/*474615*/ OPC_CheckChild0Same, 0, ++/*474617*/ OPC_CheckChild1Same, 1, ++/*474619*/ OPC_MoveParent, ++/*474620*/ OPC_MoveChild1, ++/*474621*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*474624*/ OPC_CheckChild0Integer, 1, ++/*474626*/ OPC_CheckChild0Type, MVT::i32, ++/*474628*/ OPC_CheckChild1Integer, 1, ++/*474630*/ OPC_CheckChild1Type, MVT::i32, ++/*474632*/ OPC_CheckChild2Integer, 1, ++/*474634*/ OPC_CheckChild2Type, MVT::i32, ++/*474636*/ OPC_CheckChild3Integer, 1, ++/*474638*/ OPC_CheckChild3Type, MVT::i32, ++/*474640*/ OPC_CheckChild4Integer, 1, ++/*474642*/ OPC_CheckChild4Type, MVT::i32, ++/*474644*/ OPC_MoveChild5, ++/*474645*/ OPC_CheckInteger, 1, ++/*474647*/ OPC_CheckType, MVT::i32, ++/*474649*/ OPC_MoveParent, ++/*474650*/ OPC_MoveChild6, ++/*474651*/ OPC_CheckInteger, 1, ++/*474653*/ OPC_CheckType, MVT::i32, ++/*474655*/ OPC_MoveParent, ++/*474656*/ OPC_MoveChild7, ++/*474657*/ OPC_CheckInteger, 1, ++/*474659*/ OPC_CheckType, MVT::i32, ++/*474661*/ OPC_MoveParent, ++/*474662*/ OPC_MoveParent, ++/*474663*/ OPC_MoveParent, ++/*474664*/ OPC_MoveParent, ++/*474665*/ OPC_MoveChild1, ++/*474666*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*474669*/ OPC_CheckChild0Integer, 1, ++/*474671*/ OPC_CheckChild0Type, MVT::i32, ++/*474673*/ OPC_CheckChild1Integer, 1, ++/*474675*/ OPC_CheckChild1Type, MVT::i32, ++/*474677*/ OPC_CheckChild2Integer, 1, ++/*474679*/ OPC_CheckChild2Type, MVT::i32, ++/*474681*/ OPC_CheckChild3Integer, 1, ++/*474683*/ OPC_CheckChild3Type, MVT::i32, ++/*474685*/ OPC_CheckChild4Integer, 1, ++/*474687*/ OPC_CheckChild4Type, MVT::i32, ++/*474689*/ OPC_MoveChild5, ++/*474690*/ OPC_CheckInteger, 1, ++/*474692*/ OPC_CheckType, MVT::i32, ++/*474694*/ OPC_MoveParent, ++/*474695*/ OPC_MoveChild6, ++/*474696*/ OPC_CheckInteger, 1, ++/*474698*/ OPC_CheckType, MVT::i32, ++/*474700*/ OPC_MoveParent, ++/*474701*/ OPC_MoveChild7, ++/*474702*/ OPC_CheckInteger, 1, ++/*474704*/ OPC_CheckType, MVT::i32, ++/*474706*/ OPC_MoveParent, ++/*474707*/ OPC_CheckType, MVT::v8i16, ++/*474709*/ OPC_MoveParent, ++/*474710*/ OPC_CheckType, MVT::v8i16, ++/*474712*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*474714*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*474722*/ 0, /*End of Scope*/ ++/*474723*/ 0, // EndSwitchOpcode ++/*474724*/ /*Scope*/ 92|128,1/*220*/, /*->474946*/ ++/*474726*/ OPC_CheckChild0Same, 0, ++/*474728*/ OPC_MoveChild1, ++/*474729*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*474732*/ OPC_Scope, 105, /*->474839*/ // 2 children in Scope ++/*474734*/ OPC_MoveChild0, ++/*474735*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*474738*/ OPC_CheckChild0Integer, 1, ++/*474740*/ OPC_CheckChild0Type, MVT::i32, ++/*474742*/ OPC_CheckChild1Integer, 1, ++/*474744*/ OPC_CheckChild1Type, MVT::i32, ++/*474746*/ OPC_CheckChild2Integer, 1, ++/*474748*/ OPC_CheckChild2Type, MVT::i32, ++/*474750*/ OPC_CheckChild3Integer, 1, ++/*474752*/ OPC_CheckChild3Type, MVT::i32, ++/*474754*/ OPC_CheckChild4Integer, 1, ++/*474756*/ OPC_CheckChild4Type, MVT::i32, ++/*474758*/ OPC_MoveChild5, ++/*474759*/ OPC_CheckInteger, 1, ++/*474761*/ OPC_CheckType, MVT::i32, ++/*474763*/ OPC_MoveParent, ++/*474764*/ OPC_MoveChild6, ++/*474765*/ OPC_CheckInteger, 1, ++/*474767*/ OPC_CheckType, MVT::i32, ++/*474769*/ OPC_MoveParent, ++/*474770*/ OPC_MoveChild7, ++/*474771*/ OPC_CheckInteger, 1, ++/*474773*/ OPC_CheckType, MVT::i32, ++/*474775*/ OPC_MoveParent, ++/*474776*/ OPC_MoveParent, ++/*474777*/ OPC_CheckChild1Same, 1, ++/*474779*/ OPC_MoveParent, ++/*474780*/ OPC_MoveParent, ++/*474781*/ OPC_MoveParent, ++/*474782*/ OPC_MoveChild1, ++/*474783*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*474786*/ OPC_CheckChild0Integer, 1, ++/*474788*/ OPC_CheckChild0Type, MVT::i32, ++/*474790*/ OPC_CheckChild1Integer, 1, ++/*474792*/ OPC_CheckChild1Type, MVT::i32, ++/*474794*/ OPC_CheckChild2Integer, 1, ++/*474796*/ OPC_CheckChild2Type, MVT::i32, ++/*474798*/ OPC_CheckChild3Integer, 1, ++/*474800*/ OPC_CheckChild3Type, MVT::i32, ++/*474802*/ OPC_CheckChild4Integer, 1, ++/*474804*/ OPC_CheckChild4Type, MVT::i32, ++/*474806*/ OPC_MoveChild5, ++/*474807*/ OPC_CheckInteger, 1, ++/*474809*/ OPC_CheckType, MVT::i32, ++/*474811*/ OPC_MoveParent, ++/*474812*/ OPC_MoveChild6, ++/*474813*/ OPC_CheckInteger, 1, ++/*474815*/ OPC_CheckType, MVT::i32, ++/*474817*/ OPC_MoveParent, ++/*474818*/ OPC_MoveChild7, ++/*474819*/ OPC_CheckInteger, 1, ++/*474821*/ OPC_CheckType, MVT::i32, ++/*474823*/ OPC_MoveParent, ++/*474824*/ OPC_CheckType, MVT::v8i16, ++/*474826*/ OPC_MoveParent, ++/*474827*/ OPC_CheckType, MVT::v8i16, ++/*474829*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*474831*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$a))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*474839*/ /*Scope*/ 105, /*->474945*/ ++/*474840*/ OPC_CheckChild0Same, 1, ++/*474842*/ OPC_MoveChild1, ++/*474843*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*474846*/ OPC_CheckChild0Integer, 1, ++/*474848*/ OPC_CheckChild0Type, MVT::i32, ++/*474850*/ OPC_CheckChild1Integer, 1, ++/*474852*/ OPC_CheckChild1Type, MVT::i32, ++/*474854*/ OPC_CheckChild2Integer, 1, ++/*474856*/ OPC_CheckChild2Type, MVT::i32, ++/*474858*/ OPC_CheckChild3Integer, 1, ++/*474860*/ OPC_CheckChild3Type, MVT::i32, ++/*474862*/ OPC_CheckChild4Integer, 1, ++/*474864*/ OPC_CheckChild4Type, MVT::i32, ++/*474866*/ OPC_MoveChild5, ++/*474867*/ OPC_CheckInteger, 1, ++/*474869*/ OPC_CheckType, MVT::i32, ++/*474871*/ OPC_MoveParent, ++/*474872*/ OPC_MoveChild6, ++/*474873*/ OPC_CheckInteger, 1, ++/*474875*/ OPC_CheckType, MVT::i32, ++/*474877*/ OPC_MoveParent, ++/*474878*/ OPC_MoveChild7, ++/*474879*/ OPC_CheckInteger, 1, ++/*474881*/ OPC_CheckType, MVT::i32, ++/*474883*/ OPC_MoveParent, ++/*474884*/ OPC_MoveParent, ++/*474885*/ OPC_MoveParent, ++/*474886*/ OPC_MoveParent, ++/*474887*/ OPC_MoveParent, ++/*474888*/ OPC_MoveChild1, ++/*474889*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*474892*/ OPC_CheckChild0Integer, 1, ++/*474894*/ OPC_CheckChild0Type, MVT::i32, ++/*474896*/ OPC_CheckChild1Integer, 1, ++/*474898*/ OPC_CheckChild1Type, MVT::i32, ++/*474900*/ OPC_CheckChild2Integer, 1, ++/*474902*/ OPC_CheckChild2Type, MVT::i32, ++/*474904*/ OPC_CheckChild3Integer, 1, ++/*474906*/ OPC_CheckChild3Type, MVT::i32, ++/*474908*/ OPC_CheckChild4Integer, 1, ++/*474910*/ OPC_CheckChild4Type, MVT::i32, ++/*474912*/ OPC_MoveChild5, ++/*474913*/ OPC_CheckInteger, 1, ++/*474915*/ OPC_CheckType, MVT::i32, ++/*474917*/ OPC_MoveParent, ++/*474918*/ OPC_MoveChild6, ++/*474919*/ OPC_CheckInteger, 1, ++/*474921*/ OPC_CheckType, MVT::i32, ++/*474923*/ OPC_MoveParent, ++/*474924*/ OPC_MoveChild7, ++/*474925*/ OPC_CheckInteger, 1, ++/*474927*/ OPC_CheckType, MVT::i32, ++/*474929*/ OPC_MoveParent, ++/*474930*/ OPC_CheckType, MVT::v8i16, ++/*474932*/ OPC_MoveParent, ++/*474933*/ OPC_CheckType, MVT::v8i16, ++/*474935*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*474937*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*474945*/ 0, /*End of Scope*/ ++/*474946*/ /*Scope*/ 92|128,1/*220*/, /*->475168*/ ++/*474948*/ OPC_CheckChild0Same, 1, ++/*474950*/ OPC_MoveChild1, ++/*474951*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*474954*/ OPC_Scope, 105, /*->475061*/ // 2 children in Scope ++/*474956*/ OPC_MoveChild0, ++/*474957*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*474960*/ OPC_CheckChild0Integer, 1, ++/*474962*/ OPC_CheckChild0Type, MVT::i32, ++/*474964*/ OPC_CheckChild1Integer, 1, ++/*474966*/ OPC_CheckChild1Type, MVT::i32, ++/*474968*/ OPC_CheckChild2Integer, 1, ++/*474970*/ OPC_CheckChild2Type, MVT::i32, ++/*474972*/ OPC_CheckChild3Integer, 1, ++/*474974*/ OPC_CheckChild3Type, MVT::i32, ++/*474976*/ OPC_CheckChild4Integer, 1, ++/*474978*/ OPC_CheckChild4Type, MVT::i32, ++/*474980*/ OPC_MoveChild5, ++/*474981*/ OPC_CheckInteger, 1, ++/*474983*/ OPC_CheckType, MVT::i32, ++/*474985*/ OPC_MoveParent, ++/*474986*/ OPC_MoveChild6, ++/*474987*/ OPC_CheckInteger, 1, ++/*474989*/ OPC_CheckType, MVT::i32, ++/*474991*/ OPC_MoveParent, ++/*474992*/ OPC_MoveChild7, ++/*474993*/ OPC_CheckInteger, 1, ++/*474995*/ OPC_CheckType, MVT::i32, ++/*474997*/ OPC_MoveParent, ++/*474998*/ OPC_MoveParent, ++/*474999*/ OPC_CheckChild1Same, 0, ++/*475001*/ OPC_MoveParent, ++/*475002*/ OPC_MoveParent, ++/*475003*/ OPC_MoveParent, ++/*475004*/ OPC_MoveChild1, ++/*475005*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*475008*/ OPC_CheckChild0Integer, 1, ++/*475010*/ OPC_CheckChild0Type, MVT::i32, ++/*475012*/ OPC_CheckChild1Integer, 1, ++/*475014*/ OPC_CheckChild1Type, MVT::i32, ++/*475016*/ OPC_CheckChild2Integer, 1, ++/*475018*/ OPC_CheckChild2Type, MVT::i32, ++/*475020*/ OPC_CheckChild3Integer, 1, ++/*475022*/ OPC_CheckChild3Type, MVT::i32, ++/*475024*/ OPC_CheckChild4Integer, 1, ++/*475026*/ OPC_CheckChild4Type, MVT::i32, ++/*475028*/ OPC_MoveChild5, ++/*475029*/ OPC_CheckInteger, 1, ++/*475031*/ OPC_CheckType, MVT::i32, ++/*475033*/ OPC_MoveParent, ++/*475034*/ OPC_MoveChild6, ++/*475035*/ OPC_CheckInteger, 1, ++/*475037*/ OPC_CheckType, MVT::i32, ++/*475039*/ OPC_MoveParent, ++/*475040*/ OPC_MoveChild7, ++/*475041*/ OPC_CheckInteger, 1, ++/*475043*/ OPC_CheckType, MVT::i32, ++/*475045*/ OPC_MoveParent, ++/*475046*/ OPC_CheckType, MVT::v8i16, ++/*475048*/ OPC_MoveParent, ++/*475049*/ OPC_CheckType, MVT::v8i16, ++/*475051*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*475053*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128H:{ *:[v8i16] }:$b))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*475061*/ /*Scope*/ 105, /*->475167*/ ++/*475062*/ OPC_CheckChild0Same, 0, ++/*475064*/ OPC_MoveChild1, ++/*475065*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*475068*/ OPC_CheckChild0Integer, 1, ++/*475070*/ OPC_CheckChild0Type, MVT::i32, ++/*475072*/ OPC_CheckChild1Integer, 1, ++/*475074*/ OPC_CheckChild1Type, MVT::i32, ++/*475076*/ OPC_CheckChild2Integer, 1, ++/*475078*/ OPC_CheckChild2Type, MVT::i32, ++/*475080*/ OPC_CheckChild3Integer, 1, ++/*475082*/ OPC_CheckChild3Type, MVT::i32, ++/*475084*/ OPC_CheckChild4Integer, 1, ++/*475086*/ OPC_CheckChild4Type, MVT::i32, ++/*475088*/ OPC_MoveChild5, ++/*475089*/ OPC_CheckInteger, 1, ++/*475091*/ OPC_CheckType, MVT::i32, ++/*475093*/ OPC_MoveParent, ++/*475094*/ OPC_MoveChild6, ++/*475095*/ OPC_CheckInteger, 1, ++/*475097*/ OPC_CheckType, MVT::i32, ++/*475099*/ OPC_MoveParent, ++/*475100*/ OPC_MoveChild7, ++/*475101*/ OPC_CheckInteger, 1, ++/*475103*/ OPC_CheckType, MVT::i32, ++/*475105*/ OPC_MoveParent, ++/*475106*/ OPC_MoveParent, ++/*475107*/ OPC_MoveParent, ++/*475108*/ OPC_MoveParent, ++/*475109*/ OPC_MoveParent, ++/*475110*/ OPC_MoveChild1, ++/*475111*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*475114*/ OPC_CheckChild0Integer, 1, ++/*475116*/ OPC_CheckChild0Type, MVT::i32, ++/*475118*/ OPC_CheckChild1Integer, 1, ++/*475120*/ OPC_CheckChild1Type, MVT::i32, ++/*475122*/ OPC_CheckChild2Integer, 1, ++/*475124*/ OPC_CheckChild2Type, MVT::i32, ++/*475126*/ OPC_CheckChild3Integer, 1, ++/*475128*/ OPC_CheckChild3Type, MVT::i32, ++/*475130*/ OPC_CheckChild4Integer, 1, ++/*475132*/ OPC_CheckChild4Type, MVT::i32, ++/*475134*/ OPC_MoveChild5, ++/*475135*/ OPC_CheckInteger, 1, ++/*475137*/ OPC_CheckType, MVT::i32, ++/*475139*/ OPC_MoveParent, ++/*475140*/ OPC_MoveChild6, ++/*475141*/ OPC_CheckInteger, 1, ++/*475143*/ OPC_CheckType, MVT::i32, ++/*475145*/ OPC_MoveParent, ++/*475146*/ OPC_MoveChild7, ++/*475147*/ OPC_CheckInteger, 1, ++/*475149*/ OPC_CheckType, MVT::i32, ++/*475151*/ OPC_MoveParent, ++/*475152*/ OPC_CheckType, MVT::v8i16, ++/*475154*/ OPC_MoveParent, ++/*475155*/ OPC_CheckType, MVT::v8i16, ++/*475157*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*475159*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*475167*/ 0, /*End of Scope*/ ++/*475168*/ /*Scope*/ 51|128,1/*179*/, /*->475349*/ ++/*475170*/ OPC_MoveChild0, ++/*475171*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*475174*/ OPC_CheckChild0Integer, 1, ++/*475176*/ OPC_CheckChild0Type, MVT::i32, ++/*475178*/ OPC_CheckChild1Integer, 1, ++/*475180*/ OPC_CheckChild1Type, MVT::i32, ++/*475182*/ OPC_CheckChild2Integer, 1, ++/*475184*/ OPC_CheckChild2Type, MVT::i32, ++/*475186*/ OPC_CheckChild3Integer, 1, ++/*475188*/ OPC_CheckChild3Type, MVT::i32, ++/*475190*/ OPC_CheckChild4Integer, 1, ++/*475192*/ OPC_CheckChild4Type, MVT::i32, ++/*475194*/ OPC_MoveChild5, ++/*475195*/ OPC_CheckInteger, 1, ++/*475197*/ OPC_CheckType, MVT::i32, ++/*475199*/ OPC_MoveParent, ++/*475200*/ OPC_MoveChild6, ++/*475201*/ OPC_CheckInteger, 1, ++/*475203*/ OPC_CheckType, MVT::i32, ++/*475205*/ OPC_MoveParent, ++/*475206*/ OPC_MoveChild7, ++/*475207*/ OPC_CheckInteger, 1, ++/*475209*/ OPC_CheckType, MVT::i32, ++/*475211*/ OPC_MoveParent, ++/*475212*/ OPC_MoveParent, ++/*475213*/ OPC_MoveChild1, ++/*475214*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*475217*/ OPC_Scope, 64, /*->475283*/ // 2 children in Scope ++/*475219*/ OPC_CheckChild0Same, 1, ++/*475221*/ OPC_CheckChild1Same, 0, ++/*475223*/ OPC_MoveParent, ++/*475224*/ OPC_MoveParent, ++/*475225*/ OPC_MoveParent, ++/*475226*/ OPC_MoveChild1, ++/*475227*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*475230*/ OPC_CheckChild0Integer, 1, ++/*475232*/ OPC_CheckChild0Type, MVT::i32, ++/*475234*/ OPC_CheckChild1Integer, 1, ++/*475236*/ OPC_CheckChild1Type, MVT::i32, ++/*475238*/ OPC_CheckChild2Integer, 1, ++/*475240*/ OPC_CheckChild2Type, MVT::i32, ++/*475242*/ OPC_CheckChild3Integer, 1, ++/*475244*/ OPC_CheckChild3Type, MVT::i32, ++/*475246*/ OPC_CheckChild4Integer, 1, ++/*475248*/ OPC_CheckChild4Type, MVT::i32, ++/*475250*/ OPC_MoveChild5, ++/*475251*/ OPC_CheckInteger, 1, ++/*475253*/ OPC_CheckType, MVT::i32, ++/*475255*/ OPC_MoveParent, ++/*475256*/ OPC_MoveChild6, ++/*475257*/ OPC_CheckInteger, 1, ++/*475259*/ OPC_CheckType, MVT::i32, ++/*475261*/ OPC_MoveParent, ++/*475262*/ OPC_MoveChild7, ++/*475263*/ OPC_CheckInteger, 1, ++/*475265*/ OPC_CheckType, MVT::i32, ++/*475267*/ OPC_MoveParent, ++/*475268*/ OPC_CheckType, MVT::v8i16, ++/*475270*/ OPC_MoveParent, ++/*475271*/ OPC_CheckType, MVT::v8i16, ++/*475273*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*475275*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*475283*/ /*Scope*/ 64, /*->475348*/ ++/*475284*/ OPC_CheckChild0Same, 0, ++/*475286*/ OPC_CheckChild1Same, 1, ++/*475288*/ OPC_MoveParent, ++/*475289*/ OPC_MoveParent, ++/*475290*/ OPC_MoveParent, ++/*475291*/ OPC_MoveChild1, ++/*475292*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*475295*/ OPC_CheckChild0Integer, 1, ++/*475297*/ OPC_CheckChild0Type, MVT::i32, ++/*475299*/ OPC_CheckChild1Integer, 1, ++/*475301*/ OPC_CheckChild1Type, MVT::i32, ++/*475303*/ OPC_CheckChild2Integer, 1, ++/*475305*/ OPC_CheckChild2Type, MVT::i32, ++/*475307*/ OPC_CheckChild3Integer, 1, ++/*475309*/ OPC_CheckChild3Type, MVT::i32, ++/*475311*/ OPC_CheckChild4Integer, 1, ++/*475313*/ OPC_CheckChild4Type, MVT::i32, ++/*475315*/ OPC_MoveChild5, ++/*475316*/ OPC_CheckInteger, 1, ++/*475318*/ OPC_CheckType, MVT::i32, ++/*475320*/ OPC_MoveParent, ++/*475321*/ OPC_MoveChild6, ++/*475322*/ OPC_CheckInteger, 1, ++/*475324*/ OPC_CheckType, MVT::i32, ++/*475326*/ OPC_MoveParent, ++/*475327*/ OPC_MoveChild7, ++/*475328*/ OPC_CheckInteger, 1, ++/*475330*/ OPC_CheckType, MVT::i32, ++/*475332*/ OPC_MoveParent, ++/*475333*/ OPC_CheckType, MVT::v8i16, ++/*475335*/ OPC_MoveParent, ++/*475336*/ OPC_CheckType, MVT::v8i16, ++/*475338*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*475340*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (VAVGR_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*475348*/ 0, /*End of Scope*/ ++/*475349*/ 0, /*End of Scope*/ ++/*475350*/ /*SwitchOpcode*/ 5|128,64/*8197*/, TARGET_VAL(ISD::ADD),// ->483551 ++/*475354*/ OPC_Scope, 100|128,10/*1380*/, /*->476737*/ // 4 children in Scope ++/*475357*/ OPC_MoveChild0, ++/*475358*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*475361*/ OPC_CheckChild0Integer, 1, ++/*475363*/ OPC_CheckChild0Type, MVT::i32, ++/*475365*/ OPC_CheckChild1Integer, 1, ++/*475367*/ OPC_CheckChild1Type, MVT::i32, ++/*475369*/ OPC_CheckChild2Integer, 1, ++/*475371*/ OPC_CheckChild2Type, MVT::i32, ++/*475373*/ OPC_CheckChild3Integer, 1, ++/*475375*/ OPC_CheckChild3Type, MVT::i32, ++/*475377*/ OPC_CheckChild4Integer, 1, ++/*475379*/ OPC_CheckChild4Type, MVT::i32, ++/*475381*/ OPC_MoveChild5, ++/*475382*/ OPC_CheckInteger, 1, ++/*475384*/ OPC_CheckType, MVT::i32, ++/*475386*/ OPC_MoveParent, ++/*475387*/ OPC_MoveChild6, ++/*475388*/ OPC_CheckInteger, 1, ++/*475390*/ OPC_CheckType, MVT::i32, ++/*475392*/ OPC_MoveParent, ++/*475393*/ OPC_MoveChild7, ++/*475394*/ OPC_CheckInteger, 1, ++/*475396*/ OPC_CheckType, MVT::i32, ++/*475398*/ OPC_MoveParent, ++/*475399*/ OPC_MoveParent, ++/*475400*/ OPC_RecordChild1, // #0 = $a ++/*475401*/ OPC_MoveParent, ++/*475402*/ OPC_RecordChild1, // #1 = $b ++/*475403*/ OPC_MoveParent, ++/*475404*/ OPC_MoveChild1, ++/*475405*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*475408*/ OPC_CheckChild0Integer, 31, ++/*475410*/ OPC_CheckChild0Type, MVT::i32, ++/*475412*/ OPC_CheckChild1Integer, 31, ++/*475414*/ OPC_CheckChild1Type, MVT::i32, ++/*475416*/ OPC_CheckChild2Integer, 31, ++/*475418*/ OPC_CheckChild2Type, MVT::i32, ++/*475420*/ OPC_CheckChild3Integer, 31, ++/*475422*/ OPC_CheckChild3Type, MVT::i32, ++/*475424*/ OPC_CheckChild4Integer, 31, ++/*475426*/ OPC_CheckChild4Type, MVT::i32, ++/*475428*/ OPC_MoveChild5, ++/*475429*/ OPC_CheckInteger, 31, ++/*475431*/ OPC_CheckType, MVT::i32, ++/*475433*/ OPC_MoveParent, ++/*475434*/ OPC_MoveChild6, ++/*475435*/ OPC_CheckInteger, 31, ++/*475437*/ OPC_CheckType, MVT::i32, ++/*475439*/ OPC_MoveParent, ++/*475440*/ OPC_MoveChild7, ++/*475441*/ OPC_CheckInteger, 31, ++/*475443*/ OPC_CheckType, MVT::i32, ++/*475445*/ OPC_MoveParent, ++/*475446*/ OPC_CheckType, MVT::v8i32, ++/*475448*/ OPC_MoveParent, ++/*475449*/ OPC_MoveParent, ++/*475450*/ OPC_MoveChild1, ++/*475451*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*475454*/ OPC_Scope, 14|128,5/*654*/, /*->476111*/ // 4 children in Scope ++/*475457*/ OPC_MoveChild0, ++/*475458*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*475461*/ OPC_Scope, 107, /*->475570*/ // 6 children in Scope ++/*475463*/ OPC_MoveChild0, ++/*475464*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*475467*/ OPC_CheckChild0Integer, 1, ++/*475469*/ OPC_CheckChild0Type, MVT::i32, ++/*475471*/ OPC_CheckChild1Integer, 1, ++/*475473*/ OPC_CheckChild1Type, MVT::i32, ++/*475475*/ OPC_CheckChild2Integer, 1, ++/*475477*/ OPC_CheckChild2Type, MVT::i32, ++/*475479*/ OPC_CheckChild3Integer, 1, ++/*475481*/ OPC_CheckChild3Type, MVT::i32, ++/*475483*/ OPC_CheckChild4Integer, 1, ++/*475485*/ OPC_CheckChild4Type, MVT::i32, ++/*475487*/ OPC_MoveChild5, ++/*475488*/ OPC_CheckInteger, 1, ++/*475490*/ OPC_CheckType, MVT::i32, ++/*475492*/ OPC_MoveParent, ++/*475493*/ OPC_MoveChild6, ++/*475494*/ OPC_CheckInteger, 1, ++/*475496*/ OPC_CheckType, MVT::i32, ++/*475498*/ OPC_MoveParent, ++/*475499*/ OPC_MoveChild7, ++/*475500*/ OPC_CheckInteger, 1, ++/*475502*/ OPC_CheckType, MVT::i32, ++/*475504*/ OPC_MoveParent, ++/*475505*/ OPC_MoveParent, ++/*475506*/ OPC_CheckChild1Same, 0, ++/*475508*/ OPC_MoveParent, ++/*475509*/ OPC_CheckChild1Same, 1, ++/*475511*/ OPC_MoveParent, ++/*475512*/ OPC_MoveParent, ++/*475513*/ OPC_MoveChild1, ++/*475514*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*475517*/ OPC_CheckChild0Integer, 1, ++/*475519*/ OPC_CheckChild0Type, MVT::i32, ++/*475521*/ OPC_CheckChild1Integer, 1, ++/*475523*/ OPC_CheckChild1Type, MVT::i32, ++/*475525*/ OPC_CheckChild2Integer, 1, ++/*475527*/ OPC_CheckChild2Type, MVT::i32, ++/*475529*/ OPC_CheckChild3Integer, 1, ++/*475531*/ OPC_CheckChild3Type, MVT::i32, ++/*475533*/ OPC_CheckChild4Integer, 1, ++/*475535*/ OPC_CheckChild4Type, MVT::i32, ++/*475537*/ OPC_MoveChild5, ++/*475538*/ OPC_CheckInteger, 1, ++/*475540*/ OPC_CheckType, MVT::i32, ++/*475542*/ OPC_MoveParent, ++/*475543*/ OPC_MoveChild6, ++/*475544*/ OPC_CheckInteger, 1, ++/*475546*/ OPC_CheckType, MVT::i32, ++/*475548*/ OPC_MoveParent, ++/*475549*/ OPC_MoveChild7, ++/*475550*/ OPC_CheckInteger, 1, ++/*475552*/ OPC_CheckType, MVT::i32, ++/*475554*/ OPC_MoveParent, ++/*475555*/ OPC_CheckType, MVT::v8i32, ++/*475557*/ OPC_MoveParent, ++/*475558*/ OPC_CheckType, MVT::v8i32, ++/*475560*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*475562*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a), LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a), LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*475570*/ /*Scope*/ 107, /*->475678*/ ++/*475571*/ OPC_CheckChild0Same, 0, ++/*475573*/ OPC_MoveChild1, ++/*475574*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*475577*/ OPC_CheckChild0Integer, 1, ++/*475579*/ OPC_CheckChild0Type, MVT::i32, ++/*475581*/ OPC_CheckChild1Integer, 1, ++/*475583*/ OPC_CheckChild1Type, MVT::i32, ++/*475585*/ OPC_CheckChild2Integer, 1, ++/*475587*/ OPC_CheckChild2Type, MVT::i32, ++/*475589*/ OPC_CheckChild3Integer, 1, ++/*475591*/ OPC_CheckChild3Type, MVT::i32, ++/*475593*/ OPC_CheckChild4Integer, 1, ++/*475595*/ OPC_CheckChild4Type, MVT::i32, ++/*475597*/ OPC_MoveChild5, ++/*475598*/ OPC_CheckInteger, 1, ++/*475600*/ OPC_CheckType, MVT::i32, ++/*475602*/ OPC_MoveParent, ++/*475603*/ OPC_MoveChild6, ++/*475604*/ OPC_CheckInteger, 1, ++/*475606*/ OPC_CheckType, MVT::i32, ++/*475608*/ OPC_MoveParent, ++/*475609*/ OPC_MoveChild7, ++/*475610*/ OPC_CheckInteger, 1, ++/*475612*/ OPC_CheckType, MVT::i32, ++/*475614*/ OPC_MoveParent, ++/*475615*/ OPC_MoveParent, ++/*475616*/ OPC_MoveParent, ++/*475617*/ OPC_CheckChild1Same, 1, ++/*475619*/ OPC_MoveParent, ++/*475620*/ OPC_MoveParent, ++/*475621*/ OPC_MoveChild1, ++/*475622*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*475625*/ OPC_CheckChild0Integer, 1, ++/*475627*/ OPC_CheckChild0Type, MVT::i32, ++/*475629*/ OPC_CheckChild1Integer, 1, ++/*475631*/ OPC_CheckChild1Type, MVT::i32, ++/*475633*/ OPC_CheckChild2Integer, 1, ++/*475635*/ OPC_CheckChild2Type, MVT::i32, ++/*475637*/ OPC_CheckChild3Integer, 1, ++/*475639*/ OPC_CheckChild3Type, MVT::i32, ++/*475641*/ OPC_CheckChild4Integer, 1, ++/*475643*/ OPC_CheckChild4Type, MVT::i32, ++/*475645*/ OPC_MoveChild5, ++/*475646*/ OPC_CheckInteger, 1, ++/*475648*/ OPC_CheckType, MVT::i32, ++/*475650*/ OPC_MoveParent, ++/*475651*/ OPC_MoveChild6, ++/*475652*/ OPC_CheckInteger, 1, ++/*475654*/ OPC_CheckType, MVT::i32, ++/*475656*/ OPC_MoveParent, ++/*475657*/ OPC_MoveChild7, ++/*475658*/ OPC_CheckInteger, 1, ++/*475660*/ OPC_CheckType, MVT::i32, ++/*475662*/ OPC_MoveParent, ++/*475663*/ OPC_CheckType, MVT::v8i32, ++/*475665*/ OPC_MoveParent, ++/*475666*/ OPC_CheckType, MVT::v8i32, ++/*475668*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*475670*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a), LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*475678*/ /*Scope*/ 107, /*->475786*/ ++/*475679*/ OPC_MoveChild0, ++/*475680*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*475683*/ OPC_CheckChild0Integer, 1, ++/*475685*/ OPC_CheckChild0Type, MVT::i32, ++/*475687*/ OPC_CheckChild1Integer, 1, ++/*475689*/ OPC_CheckChild1Type, MVT::i32, ++/*475691*/ OPC_CheckChild2Integer, 1, ++/*475693*/ OPC_CheckChild2Type, MVT::i32, ++/*475695*/ OPC_CheckChild3Integer, 1, ++/*475697*/ OPC_CheckChild3Type, MVT::i32, ++/*475699*/ OPC_CheckChild4Integer, 1, ++/*475701*/ OPC_CheckChild4Type, MVT::i32, ++/*475703*/ OPC_MoveChild5, ++/*475704*/ OPC_CheckInteger, 1, ++/*475706*/ OPC_CheckType, MVT::i32, ++/*475708*/ OPC_MoveParent, ++/*475709*/ OPC_MoveChild6, ++/*475710*/ OPC_CheckInteger, 1, ++/*475712*/ OPC_CheckType, MVT::i32, ++/*475714*/ OPC_MoveParent, ++/*475715*/ OPC_MoveChild7, ++/*475716*/ OPC_CheckInteger, 1, ++/*475718*/ OPC_CheckType, MVT::i32, ++/*475720*/ OPC_MoveParent, ++/*475721*/ OPC_MoveParent, ++/*475722*/ OPC_CheckChild1Same, 1, ++/*475724*/ OPC_MoveParent, ++/*475725*/ OPC_CheckChild1Same, 0, ++/*475727*/ OPC_MoveParent, ++/*475728*/ OPC_MoveParent, ++/*475729*/ OPC_MoveChild1, ++/*475730*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*475733*/ OPC_CheckChild0Integer, 1, ++/*475735*/ OPC_CheckChild0Type, MVT::i32, ++/*475737*/ OPC_CheckChild1Integer, 1, ++/*475739*/ OPC_CheckChild1Type, MVT::i32, ++/*475741*/ OPC_CheckChild2Integer, 1, ++/*475743*/ OPC_CheckChild2Type, MVT::i32, ++/*475745*/ OPC_CheckChild3Integer, 1, ++/*475747*/ OPC_CheckChild3Type, MVT::i32, ++/*475749*/ OPC_CheckChild4Integer, 1, ++/*475751*/ OPC_CheckChild4Type, MVT::i32, ++/*475753*/ OPC_MoveChild5, ++/*475754*/ OPC_CheckInteger, 1, ++/*475756*/ OPC_CheckType, MVT::i32, ++/*475758*/ OPC_MoveParent, ++/*475759*/ OPC_MoveChild6, ++/*475760*/ OPC_CheckInteger, 1, ++/*475762*/ OPC_CheckType, MVT::i32, ++/*475764*/ OPC_MoveParent, ++/*475765*/ OPC_MoveChild7, ++/*475766*/ OPC_CheckInteger, 1, ++/*475768*/ OPC_CheckType, MVT::i32, ++/*475770*/ OPC_MoveParent, ++/*475771*/ OPC_CheckType, MVT::v8i32, ++/*475773*/ OPC_MoveParent, ++/*475774*/ OPC_CheckType, MVT::v8i32, ++/*475776*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*475778*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a), LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b), LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*475786*/ /*Scope*/ 107, /*->475894*/ ++/*475787*/ OPC_CheckChild0Same, 1, ++/*475789*/ OPC_MoveChild1, ++/*475790*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*475793*/ OPC_CheckChild0Integer, 1, ++/*475795*/ OPC_CheckChild0Type, MVT::i32, ++/*475797*/ OPC_CheckChild1Integer, 1, ++/*475799*/ OPC_CheckChild1Type, MVT::i32, ++/*475801*/ OPC_CheckChild2Integer, 1, ++/*475803*/ OPC_CheckChild2Type, MVT::i32, ++/*475805*/ OPC_CheckChild3Integer, 1, ++/*475807*/ OPC_CheckChild3Type, MVT::i32, ++/*475809*/ OPC_CheckChild4Integer, 1, ++/*475811*/ OPC_CheckChild4Type, MVT::i32, ++/*475813*/ OPC_MoveChild5, ++/*475814*/ OPC_CheckInteger, 1, ++/*475816*/ OPC_CheckType, MVT::i32, ++/*475818*/ OPC_MoveParent, ++/*475819*/ OPC_MoveChild6, ++/*475820*/ OPC_CheckInteger, 1, ++/*475822*/ OPC_CheckType, MVT::i32, ++/*475824*/ OPC_MoveParent, ++/*475825*/ OPC_MoveChild7, ++/*475826*/ OPC_CheckInteger, 1, ++/*475828*/ OPC_CheckType, MVT::i32, ++/*475830*/ OPC_MoveParent, ++/*475831*/ OPC_MoveParent, ++/*475832*/ OPC_MoveParent, ++/*475833*/ OPC_CheckChild1Same, 0, ++/*475835*/ OPC_MoveParent, ++/*475836*/ OPC_MoveParent, ++/*475837*/ OPC_MoveChild1, ++/*475838*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*475841*/ OPC_CheckChild0Integer, 1, ++/*475843*/ OPC_CheckChild0Type, MVT::i32, ++/*475845*/ OPC_CheckChild1Integer, 1, ++/*475847*/ OPC_CheckChild1Type, MVT::i32, ++/*475849*/ OPC_CheckChild2Integer, 1, ++/*475851*/ OPC_CheckChild2Type, MVT::i32, ++/*475853*/ OPC_CheckChild3Integer, 1, ++/*475855*/ OPC_CheckChild3Type, MVT::i32, ++/*475857*/ OPC_CheckChild4Integer, 1, ++/*475859*/ OPC_CheckChild4Type, MVT::i32, ++/*475861*/ OPC_MoveChild5, ++/*475862*/ OPC_CheckInteger, 1, ++/*475864*/ OPC_CheckType, MVT::i32, ++/*475866*/ OPC_MoveParent, ++/*475867*/ OPC_MoveChild6, ++/*475868*/ OPC_CheckInteger, 1, ++/*475870*/ OPC_CheckType, MVT::i32, ++/*475872*/ OPC_MoveParent, ++/*475873*/ OPC_MoveChild7, ++/*475874*/ OPC_CheckInteger, 1, ++/*475876*/ OPC_CheckType, MVT::i32, ++/*475878*/ OPC_MoveParent, ++/*475879*/ OPC_CheckType, MVT::v8i32, ++/*475881*/ OPC_MoveParent, ++/*475882*/ OPC_CheckType, MVT::v8i32, ++/*475884*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*475886*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a), LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*475894*/ /*Scope*/ 107, /*->476002*/ ++/*475895*/ OPC_CheckChild0Same, 0, ++/*475897*/ OPC_CheckChild1Same, 1, ++/*475899*/ OPC_MoveParent, ++/*475900*/ OPC_MoveChild1, ++/*475901*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*475904*/ OPC_CheckChild0Integer, 1, ++/*475906*/ OPC_CheckChild0Type, MVT::i32, ++/*475908*/ OPC_CheckChild1Integer, 1, ++/*475910*/ OPC_CheckChild1Type, MVT::i32, ++/*475912*/ OPC_CheckChild2Integer, 1, ++/*475914*/ OPC_CheckChild2Type, MVT::i32, ++/*475916*/ OPC_CheckChild3Integer, 1, ++/*475918*/ OPC_CheckChild3Type, MVT::i32, ++/*475920*/ OPC_CheckChild4Integer, 1, ++/*475922*/ OPC_CheckChild4Type, MVT::i32, ++/*475924*/ OPC_MoveChild5, ++/*475925*/ OPC_CheckInteger, 1, ++/*475927*/ OPC_CheckType, MVT::i32, ++/*475929*/ OPC_MoveParent, ++/*475930*/ OPC_MoveChild6, ++/*475931*/ OPC_CheckInteger, 1, ++/*475933*/ OPC_CheckType, MVT::i32, ++/*475935*/ OPC_MoveParent, ++/*475936*/ OPC_MoveChild7, ++/*475937*/ OPC_CheckInteger, 1, ++/*475939*/ OPC_CheckType, MVT::i32, ++/*475941*/ OPC_MoveParent, ++/*475942*/ OPC_MoveParent, ++/*475943*/ OPC_MoveParent, ++/*475944*/ OPC_MoveParent, ++/*475945*/ OPC_MoveChild1, ++/*475946*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*475949*/ OPC_CheckChild0Integer, 1, ++/*475951*/ OPC_CheckChild0Type, MVT::i32, ++/*475953*/ OPC_CheckChild1Integer, 1, ++/*475955*/ OPC_CheckChild1Type, MVT::i32, ++/*475957*/ OPC_CheckChild2Integer, 1, ++/*475959*/ OPC_CheckChild2Type, MVT::i32, ++/*475961*/ OPC_CheckChild3Integer, 1, ++/*475963*/ OPC_CheckChild3Type, MVT::i32, ++/*475965*/ OPC_CheckChild4Integer, 1, ++/*475967*/ OPC_CheckChild4Type, MVT::i32, ++/*475969*/ OPC_MoveChild5, ++/*475970*/ OPC_CheckInteger, 1, ++/*475972*/ OPC_CheckType, MVT::i32, ++/*475974*/ OPC_MoveParent, ++/*475975*/ OPC_MoveChild6, ++/*475976*/ OPC_CheckInteger, 1, ++/*475978*/ OPC_CheckType, MVT::i32, ++/*475980*/ OPC_MoveParent, ++/*475981*/ OPC_MoveChild7, ++/*475982*/ OPC_CheckInteger, 1, ++/*475984*/ OPC_CheckType, MVT::i32, ++/*475986*/ OPC_MoveParent, ++/*475987*/ OPC_CheckType, MVT::v8i32, ++/*475989*/ OPC_MoveParent, ++/*475990*/ OPC_CheckType, MVT::v8i32, ++/*475992*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*475994*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a), LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*476002*/ /*Scope*/ 107, /*->476110*/ ++/*476003*/ OPC_CheckChild0Same, 1, ++/*476005*/ OPC_CheckChild1Same, 0, ++/*476007*/ OPC_MoveParent, ++/*476008*/ OPC_MoveChild1, ++/*476009*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*476012*/ OPC_CheckChild0Integer, 1, ++/*476014*/ OPC_CheckChild0Type, MVT::i32, ++/*476016*/ OPC_CheckChild1Integer, 1, ++/*476018*/ OPC_CheckChild1Type, MVT::i32, ++/*476020*/ OPC_CheckChild2Integer, 1, ++/*476022*/ OPC_CheckChild2Type, MVT::i32, ++/*476024*/ OPC_CheckChild3Integer, 1, ++/*476026*/ OPC_CheckChild3Type, MVT::i32, ++/*476028*/ OPC_CheckChild4Integer, 1, ++/*476030*/ OPC_CheckChild4Type, MVT::i32, ++/*476032*/ OPC_MoveChild5, ++/*476033*/ OPC_CheckInteger, 1, ++/*476035*/ OPC_CheckType, MVT::i32, ++/*476037*/ OPC_MoveParent, ++/*476038*/ OPC_MoveChild6, ++/*476039*/ OPC_CheckInteger, 1, ++/*476041*/ OPC_CheckType, MVT::i32, ++/*476043*/ OPC_MoveParent, ++/*476044*/ OPC_MoveChild7, ++/*476045*/ OPC_CheckInteger, 1, ++/*476047*/ OPC_CheckType, MVT::i32, ++/*476049*/ OPC_MoveParent, ++/*476050*/ OPC_MoveParent, ++/*476051*/ OPC_MoveParent, ++/*476052*/ OPC_MoveParent, ++/*476053*/ OPC_MoveChild1, ++/*476054*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*476057*/ OPC_CheckChild0Integer, 1, ++/*476059*/ OPC_CheckChild0Type, MVT::i32, ++/*476061*/ OPC_CheckChild1Integer, 1, ++/*476063*/ OPC_CheckChild1Type, MVT::i32, ++/*476065*/ OPC_CheckChild2Integer, 1, ++/*476067*/ OPC_CheckChild2Type, MVT::i32, ++/*476069*/ OPC_CheckChild3Integer, 1, ++/*476071*/ OPC_CheckChild3Type, MVT::i32, ++/*476073*/ OPC_CheckChild4Integer, 1, ++/*476075*/ OPC_CheckChild4Type, MVT::i32, ++/*476077*/ OPC_MoveChild5, ++/*476078*/ OPC_CheckInteger, 1, ++/*476080*/ OPC_CheckType, MVT::i32, ++/*476082*/ OPC_MoveParent, ++/*476083*/ OPC_MoveChild6, ++/*476084*/ OPC_CheckInteger, 1, ++/*476086*/ OPC_CheckType, MVT::i32, ++/*476088*/ OPC_MoveParent, ++/*476089*/ OPC_MoveChild7, ++/*476090*/ OPC_CheckInteger, 1, ++/*476092*/ OPC_CheckType, MVT::i32, ++/*476094*/ OPC_MoveParent, ++/*476095*/ OPC_CheckType, MVT::v8i32, ++/*476097*/ OPC_MoveParent, ++/*476098*/ OPC_CheckType, MVT::v8i32, ++/*476100*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*476102*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a), LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*476110*/ 0, /*End of Scope*/ ++/*476111*/ /*Scope*/ 92|128,1/*220*/, /*->476333*/ ++/*476113*/ OPC_CheckChild0Same, 1, ++/*476115*/ OPC_MoveChild1, ++/*476116*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*476119*/ OPC_Scope, 105, /*->476226*/ // 2 children in Scope ++/*476121*/ OPC_MoveChild0, ++/*476122*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*476125*/ OPC_CheckChild0Integer, 1, ++/*476127*/ OPC_CheckChild0Type, MVT::i32, ++/*476129*/ OPC_CheckChild1Integer, 1, ++/*476131*/ OPC_CheckChild1Type, MVT::i32, ++/*476133*/ OPC_CheckChild2Integer, 1, ++/*476135*/ OPC_CheckChild2Type, MVT::i32, ++/*476137*/ OPC_CheckChild3Integer, 1, ++/*476139*/ OPC_CheckChild3Type, MVT::i32, ++/*476141*/ OPC_CheckChild4Integer, 1, ++/*476143*/ OPC_CheckChild4Type, MVT::i32, ++/*476145*/ OPC_MoveChild5, ++/*476146*/ OPC_CheckInteger, 1, ++/*476148*/ OPC_CheckType, MVT::i32, ++/*476150*/ OPC_MoveParent, ++/*476151*/ OPC_MoveChild6, ++/*476152*/ OPC_CheckInteger, 1, ++/*476154*/ OPC_CheckType, MVT::i32, ++/*476156*/ OPC_MoveParent, ++/*476157*/ OPC_MoveChild7, ++/*476158*/ OPC_CheckInteger, 1, ++/*476160*/ OPC_CheckType, MVT::i32, ++/*476162*/ OPC_MoveParent, ++/*476163*/ OPC_MoveParent, ++/*476164*/ OPC_CheckChild1Same, 0, ++/*476166*/ OPC_MoveParent, ++/*476167*/ OPC_MoveParent, ++/*476168*/ OPC_MoveParent, ++/*476169*/ OPC_MoveChild1, ++/*476170*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*476173*/ OPC_CheckChild0Integer, 1, ++/*476175*/ OPC_CheckChild0Type, MVT::i32, ++/*476177*/ OPC_CheckChild1Integer, 1, ++/*476179*/ OPC_CheckChild1Type, MVT::i32, ++/*476181*/ OPC_CheckChild2Integer, 1, ++/*476183*/ OPC_CheckChild2Type, MVT::i32, ++/*476185*/ OPC_CheckChild3Integer, 1, ++/*476187*/ OPC_CheckChild3Type, MVT::i32, ++/*476189*/ OPC_CheckChild4Integer, 1, ++/*476191*/ OPC_CheckChild4Type, MVT::i32, ++/*476193*/ OPC_MoveChild5, ++/*476194*/ OPC_CheckInteger, 1, ++/*476196*/ OPC_CheckType, MVT::i32, ++/*476198*/ OPC_MoveParent, ++/*476199*/ OPC_MoveChild6, ++/*476200*/ OPC_CheckInteger, 1, ++/*476202*/ OPC_CheckType, MVT::i32, ++/*476204*/ OPC_MoveParent, ++/*476205*/ OPC_MoveChild7, ++/*476206*/ OPC_CheckInteger, 1, ++/*476208*/ OPC_CheckType, MVT::i32, ++/*476210*/ OPC_MoveParent, ++/*476211*/ OPC_CheckType, MVT::v8i32, ++/*476213*/ OPC_MoveParent, ++/*476214*/ OPC_CheckType, MVT::v8i32, ++/*476216*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*476218*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a), LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*476226*/ /*Scope*/ 105, /*->476332*/ ++/*476227*/ OPC_CheckChild0Same, 0, ++/*476229*/ OPC_MoveChild1, ++/*476230*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*476233*/ OPC_CheckChild0Integer, 1, ++/*476235*/ OPC_CheckChild0Type, MVT::i32, ++/*476237*/ OPC_CheckChild1Integer, 1, ++/*476239*/ OPC_CheckChild1Type, MVT::i32, ++/*476241*/ OPC_CheckChild2Integer, 1, ++/*476243*/ OPC_CheckChild2Type, MVT::i32, ++/*476245*/ OPC_CheckChild3Integer, 1, ++/*476247*/ OPC_CheckChild3Type, MVT::i32, ++/*476249*/ OPC_CheckChild4Integer, 1, ++/*476251*/ OPC_CheckChild4Type, MVT::i32, ++/*476253*/ OPC_MoveChild5, ++/*476254*/ OPC_CheckInteger, 1, ++/*476256*/ OPC_CheckType, MVT::i32, ++/*476258*/ OPC_MoveParent, ++/*476259*/ OPC_MoveChild6, ++/*476260*/ OPC_CheckInteger, 1, ++/*476262*/ OPC_CheckType, MVT::i32, ++/*476264*/ OPC_MoveParent, ++/*476265*/ OPC_MoveChild7, ++/*476266*/ OPC_CheckInteger, 1, ++/*476268*/ OPC_CheckType, MVT::i32, ++/*476270*/ OPC_MoveParent, ++/*476271*/ OPC_MoveParent, ++/*476272*/ OPC_MoveParent, ++/*476273*/ OPC_MoveParent, ++/*476274*/ OPC_MoveParent, ++/*476275*/ OPC_MoveChild1, ++/*476276*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*476279*/ OPC_CheckChild0Integer, 1, ++/*476281*/ OPC_CheckChild0Type, MVT::i32, ++/*476283*/ OPC_CheckChild1Integer, 1, ++/*476285*/ OPC_CheckChild1Type, MVT::i32, ++/*476287*/ OPC_CheckChild2Integer, 1, ++/*476289*/ OPC_CheckChild2Type, MVT::i32, ++/*476291*/ OPC_CheckChild3Integer, 1, ++/*476293*/ OPC_CheckChild3Type, MVT::i32, ++/*476295*/ OPC_CheckChild4Integer, 1, ++/*476297*/ OPC_CheckChild4Type, MVT::i32, ++/*476299*/ OPC_MoveChild5, ++/*476300*/ OPC_CheckInteger, 1, ++/*476302*/ OPC_CheckType, MVT::i32, ++/*476304*/ OPC_MoveParent, ++/*476305*/ OPC_MoveChild6, ++/*476306*/ OPC_CheckInteger, 1, ++/*476308*/ OPC_CheckType, MVT::i32, ++/*476310*/ OPC_MoveParent, ++/*476311*/ OPC_MoveChild7, ++/*476312*/ OPC_CheckInteger, 1, ++/*476314*/ OPC_CheckType, MVT::i32, ++/*476316*/ OPC_MoveParent, ++/*476317*/ OPC_CheckType, MVT::v8i32, ++/*476319*/ OPC_MoveParent, ++/*476320*/ OPC_CheckType, MVT::v8i32, ++/*476322*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*476324*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a), LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*476332*/ 0, /*End of Scope*/ ++/*476333*/ /*Scope*/ 92|128,1/*220*/, /*->476555*/ ++/*476335*/ OPC_CheckChild0Same, 0, ++/*476337*/ OPC_MoveChild1, ++/*476338*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*476341*/ OPC_Scope, 105, /*->476448*/ // 2 children in Scope ++/*476343*/ OPC_MoveChild0, ++/*476344*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*476347*/ OPC_CheckChild0Integer, 1, ++/*476349*/ OPC_CheckChild0Type, MVT::i32, ++/*476351*/ OPC_CheckChild1Integer, 1, ++/*476353*/ OPC_CheckChild1Type, MVT::i32, ++/*476355*/ OPC_CheckChild2Integer, 1, ++/*476357*/ OPC_CheckChild2Type, MVT::i32, ++/*476359*/ OPC_CheckChild3Integer, 1, ++/*476361*/ OPC_CheckChild3Type, MVT::i32, ++/*476363*/ OPC_CheckChild4Integer, 1, ++/*476365*/ OPC_CheckChild4Type, MVT::i32, ++/*476367*/ OPC_MoveChild5, ++/*476368*/ OPC_CheckInteger, 1, ++/*476370*/ OPC_CheckType, MVT::i32, ++/*476372*/ OPC_MoveParent, ++/*476373*/ OPC_MoveChild6, ++/*476374*/ OPC_CheckInteger, 1, ++/*476376*/ OPC_CheckType, MVT::i32, ++/*476378*/ OPC_MoveParent, ++/*476379*/ OPC_MoveChild7, ++/*476380*/ OPC_CheckInteger, 1, ++/*476382*/ OPC_CheckType, MVT::i32, ++/*476384*/ OPC_MoveParent, ++/*476385*/ OPC_MoveParent, ++/*476386*/ OPC_CheckChild1Same, 1, ++/*476388*/ OPC_MoveParent, ++/*476389*/ OPC_MoveParent, ++/*476390*/ OPC_MoveParent, ++/*476391*/ OPC_MoveChild1, ++/*476392*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*476395*/ OPC_CheckChild0Integer, 1, ++/*476397*/ OPC_CheckChild0Type, MVT::i32, ++/*476399*/ OPC_CheckChild1Integer, 1, ++/*476401*/ OPC_CheckChild1Type, MVT::i32, ++/*476403*/ OPC_CheckChild2Integer, 1, ++/*476405*/ OPC_CheckChild2Type, MVT::i32, ++/*476407*/ OPC_CheckChild3Integer, 1, ++/*476409*/ OPC_CheckChild3Type, MVT::i32, ++/*476411*/ OPC_CheckChild4Integer, 1, ++/*476413*/ OPC_CheckChild4Type, MVT::i32, ++/*476415*/ OPC_MoveChild5, ++/*476416*/ OPC_CheckInteger, 1, ++/*476418*/ OPC_CheckType, MVT::i32, ++/*476420*/ OPC_MoveParent, ++/*476421*/ OPC_MoveChild6, ++/*476422*/ OPC_CheckInteger, 1, ++/*476424*/ OPC_CheckType, MVT::i32, ++/*476426*/ OPC_MoveParent, ++/*476427*/ OPC_MoveChild7, ++/*476428*/ OPC_CheckInteger, 1, ++/*476430*/ OPC_CheckType, MVT::i32, ++/*476432*/ OPC_MoveParent, ++/*476433*/ OPC_CheckType, MVT::v8i32, ++/*476435*/ OPC_MoveParent, ++/*476436*/ OPC_CheckType, MVT::v8i32, ++/*476438*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*476440*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a), LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*476448*/ /*Scope*/ 105, /*->476554*/ ++/*476449*/ OPC_CheckChild0Same, 1, ++/*476451*/ OPC_MoveChild1, ++/*476452*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*476455*/ OPC_CheckChild0Integer, 1, ++/*476457*/ OPC_CheckChild0Type, MVT::i32, ++/*476459*/ OPC_CheckChild1Integer, 1, ++/*476461*/ OPC_CheckChild1Type, MVT::i32, ++/*476463*/ OPC_CheckChild2Integer, 1, ++/*476465*/ OPC_CheckChild2Type, MVT::i32, ++/*476467*/ OPC_CheckChild3Integer, 1, ++/*476469*/ OPC_CheckChild3Type, MVT::i32, ++/*476471*/ OPC_CheckChild4Integer, 1, ++/*476473*/ OPC_CheckChild4Type, MVT::i32, ++/*476475*/ OPC_MoveChild5, ++/*476476*/ OPC_CheckInteger, 1, ++/*476478*/ OPC_CheckType, MVT::i32, ++/*476480*/ OPC_MoveParent, ++/*476481*/ OPC_MoveChild6, ++/*476482*/ OPC_CheckInteger, 1, ++/*476484*/ OPC_CheckType, MVT::i32, ++/*476486*/ OPC_MoveParent, ++/*476487*/ OPC_MoveChild7, ++/*476488*/ OPC_CheckInteger, 1, ++/*476490*/ OPC_CheckType, MVT::i32, ++/*476492*/ OPC_MoveParent, ++/*476493*/ OPC_MoveParent, ++/*476494*/ OPC_MoveParent, ++/*476495*/ OPC_MoveParent, ++/*476496*/ OPC_MoveParent, ++/*476497*/ OPC_MoveChild1, ++/*476498*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*476501*/ OPC_CheckChild0Integer, 1, ++/*476503*/ OPC_CheckChild0Type, MVT::i32, ++/*476505*/ OPC_CheckChild1Integer, 1, ++/*476507*/ OPC_CheckChild1Type, MVT::i32, ++/*476509*/ OPC_CheckChild2Integer, 1, ++/*476511*/ OPC_CheckChild2Type, MVT::i32, ++/*476513*/ OPC_CheckChild3Integer, 1, ++/*476515*/ OPC_CheckChild3Type, MVT::i32, ++/*476517*/ OPC_CheckChild4Integer, 1, ++/*476519*/ OPC_CheckChild4Type, MVT::i32, ++/*476521*/ OPC_MoveChild5, ++/*476522*/ OPC_CheckInteger, 1, ++/*476524*/ OPC_CheckType, MVT::i32, ++/*476526*/ OPC_MoveParent, ++/*476527*/ OPC_MoveChild6, ++/*476528*/ OPC_CheckInteger, 1, ++/*476530*/ OPC_CheckType, MVT::i32, ++/*476532*/ OPC_MoveParent, ++/*476533*/ OPC_MoveChild7, ++/*476534*/ OPC_CheckInteger, 1, ++/*476536*/ OPC_CheckType, MVT::i32, ++/*476538*/ OPC_MoveParent, ++/*476539*/ OPC_CheckType, MVT::v8i32, ++/*476541*/ OPC_MoveParent, ++/*476542*/ OPC_CheckType, MVT::v8i32, ++/*476544*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*476546*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a), LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*476554*/ 0, /*End of Scope*/ ++/*476555*/ /*Scope*/ 51|128,1/*179*/, /*->476736*/ ++/*476557*/ OPC_MoveChild0, ++/*476558*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*476561*/ OPC_CheckChild0Integer, 1, ++/*476563*/ OPC_CheckChild0Type, MVT::i32, ++/*476565*/ OPC_CheckChild1Integer, 1, ++/*476567*/ OPC_CheckChild1Type, MVT::i32, ++/*476569*/ OPC_CheckChild2Integer, 1, ++/*476571*/ OPC_CheckChild2Type, MVT::i32, ++/*476573*/ OPC_CheckChild3Integer, 1, ++/*476575*/ OPC_CheckChild3Type, MVT::i32, ++/*476577*/ OPC_CheckChild4Integer, 1, ++/*476579*/ OPC_CheckChild4Type, MVT::i32, ++/*476581*/ OPC_MoveChild5, ++/*476582*/ OPC_CheckInteger, 1, ++/*476584*/ OPC_CheckType, MVT::i32, ++/*476586*/ OPC_MoveParent, ++/*476587*/ OPC_MoveChild6, ++/*476588*/ OPC_CheckInteger, 1, ++/*476590*/ OPC_CheckType, MVT::i32, ++/*476592*/ OPC_MoveParent, ++/*476593*/ OPC_MoveChild7, ++/*476594*/ OPC_CheckInteger, 1, ++/*476596*/ OPC_CheckType, MVT::i32, ++/*476598*/ OPC_MoveParent, ++/*476599*/ OPC_MoveParent, ++/*476600*/ OPC_MoveChild1, ++/*476601*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*476604*/ OPC_Scope, 64, /*->476670*/ // 2 children in Scope ++/*476606*/ OPC_CheckChild0Same, 0, ++/*476608*/ OPC_CheckChild1Same, 1, ++/*476610*/ OPC_MoveParent, ++/*476611*/ OPC_MoveParent, ++/*476612*/ OPC_MoveParent, ++/*476613*/ OPC_MoveChild1, ++/*476614*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*476617*/ OPC_CheckChild0Integer, 1, ++/*476619*/ OPC_CheckChild0Type, MVT::i32, ++/*476621*/ OPC_CheckChild1Integer, 1, ++/*476623*/ OPC_CheckChild1Type, MVT::i32, ++/*476625*/ OPC_CheckChild2Integer, 1, ++/*476627*/ OPC_CheckChild2Type, MVT::i32, ++/*476629*/ OPC_CheckChild3Integer, 1, ++/*476631*/ OPC_CheckChild3Type, MVT::i32, ++/*476633*/ OPC_CheckChild4Integer, 1, ++/*476635*/ OPC_CheckChild4Type, MVT::i32, ++/*476637*/ OPC_MoveChild5, ++/*476638*/ OPC_CheckInteger, 1, ++/*476640*/ OPC_CheckType, MVT::i32, ++/*476642*/ OPC_MoveParent, ++/*476643*/ OPC_MoveChild6, ++/*476644*/ OPC_CheckInteger, 1, ++/*476646*/ OPC_CheckType, MVT::i32, ++/*476648*/ OPC_MoveParent, ++/*476649*/ OPC_MoveChild7, ++/*476650*/ OPC_CheckInteger, 1, ++/*476652*/ OPC_CheckType, MVT::i32, ++/*476654*/ OPC_MoveParent, ++/*476655*/ OPC_CheckType, MVT::v8i32, ++/*476657*/ OPC_MoveParent, ++/*476658*/ OPC_CheckType, MVT::v8i32, ++/*476660*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*476662*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a), LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*476670*/ /*Scope*/ 64, /*->476735*/ ++/*476671*/ OPC_CheckChild0Same, 1, ++/*476673*/ OPC_CheckChild1Same, 0, ++/*476675*/ OPC_MoveParent, ++/*476676*/ OPC_MoveParent, ++/*476677*/ OPC_MoveParent, ++/*476678*/ OPC_MoveChild1, ++/*476679*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*476682*/ OPC_CheckChild0Integer, 1, ++/*476684*/ OPC_CheckChild0Type, MVT::i32, ++/*476686*/ OPC_CheckChild1Integer, 1, ++/*476688*/ OPC_CheckChild1Type, MVT::i32, ++/*476690*/ OPC_CheckChild2Integer, 1, ++/*476692*/ OPC_CheckChild2Type, MVT::i32, ++/*476694*/ OPC_CheckChild3Integer, 1, ++/*476696*/ OPC_CheckChild3Type, MVT::i32, ++/*476698*/ OPC_CheckChild4Integer, 1, ++/*476700*/ OPC_CheckChild4Type, MVT::i32, ++/*476702*/ OPC_MoveChild5, ++/*476703*/ OPC_CheckInteger, 1, ++/*476705*/ OPC_CheckType, MVT::i32, ++/*476707*/ OPC_MoveParent, ++/*476708*/ OPC_MoveChild6, ++/*476709*/ OPC_CheckInteger, 1, ++/*476711*/ OPC_CheckType, MVT::i32, ++/*476713*/ OPC_MoveParent, ++/*476714*/ OPC_MoveChild7, ++/*476715*/ OPC_CheckInteger, 1, ++/*476717*/ OPC_CheckType, MVT::i32, ++/*476719*/ OPC_MoveParent, ++/*476720*/ OPC_CheckType, MVT::v8i32, ++/*476722*/ OPC_MoveParent, ++/*476723*/ OPC_CheckType, MVT::v8i32, ++/*476725*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*476727*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a), LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*476735*/ 0, /*End of Scope*/ ++/*476736*/ 0, /*End of Scope*/ ++/*476737*/ /*Scope*/ 100|128,10/*1380*/, /*->478119*/ ++/*476739*/ OPC_RecordChild0, // #0 = $a ++/*476740*/ OPC_MoveChild1, ++/*476741*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*476744*/ OPC_CheckChild0Integer, 1, ++/*476746*/ OPC_CheckChild0Type, MVT::i32, ++/*476748*/ OPC_CheckChild1Integer, 1, ++/*476750*/ OPC_CheckChild1Type, MVT::i32, ++/*476752*/ OPC_CheckChild2Integer, 1, ++/*476754*/ OPC_CheckChild2Type, MVT::i32, ++/*476756*/ OPC_CheckChild3Integer, 1, ++/*476758*/ OPC_CheckChild3Type, MVT::i32, ++/*476760*/ OPC_CheckChild4Integer, 1, ++/*476762*/ OPC_CheckChild4Type, MVT::i32, ++/*476764*/ OPC_MoveChild5, ++/*476765*/ OPC_CheckInteger, 1, ++/*476767*/ OPC_CheckType, MVT::i32, ++/*476769*/ OPC_MoveParent, ++/*476770*/ OPC_MoveChild6, ++/*476771*/ OPC_CheckInteger, 1, ++/*476773*/ OPC_CheckType, MVT::i32, ++/*476775*/ OPC_MoveParent, ++/*476776*/ OPC_MoveChild7, ++/*476777*/ OPC_CheckInteger, 1, ++/*476779*/ OPC_CheckType, MVT::i32, ++/*476781*/ OPC_MoveParent, ++/*476782*/ OPC_MoveParent, ++/*476783*/ OPC_MoveParent, ++/*476784*/ OPC_RecordChild1, // #1 = $b ++/*476785*/ OPC_MoveParent, ++/*476786*/ OPC_MoveChild1, ++/*476787*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*476790*/ OPC_CheckChild0Integer, 31, ++/*476792*/ OPC_CheckChild0Type, MVT::i32, ++/*476794*/ OPC_CheckChild1Integer, 31, ++/*476796*/ OPC_CheckChild1Type, MVT::i32, ++/*476798*/ OPC_CheckChild2Integer, 31, ++/*476800*/ OPC_CheckChild2Type, MVT::i32, ++/*476802*/ OPC_CheckChild3Integer, 31, ++/*476804*/ OPC_CheckChild3Type, MVT::i32, ++/*476806*/ OPC_CheckChild4Integer, 31, ++/*476808*/ OPC_CheckChild4Type, MVT::i32, ++/*476810*/ OPC_MoveChild5, ++/*476811*/ OPC_CheckInteger, 31, ++/*476813*/ OPC_CheckType, MVT::i32, ++/*476815*/ OPC_MoveParent, ++/*476816*/ OPC_MoveChild6, ++/*476817*/ OPC_CheckInteger, 31, ++/*476819*/ OPC_CheckType, MVT::i32, ++/*476821*/ OPC_MoveParent, ++/*476822*/ OPC_MoveChild7, ++/*476823*/ OPC_CheckInteger, 31, ++/*476825*/ OPC_CheckType, MVT::i32, ++/*476827*/ OPC_MoveParent, ++/*476828*/ OPC_CheckType, MVT::v8i32, ++/*476830*/ OPC_MoveParent, ++/*476831*/ OPC_MoveParent, ++/*476832*/ OPC_MoveChild1, ++/*476833*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*476836*/ OPC_Scope, 14|128,5/*654*/, /*->477493*/ // 4 children in Scope ++/*476839*/ OPC_MoveChild0, ++/*476840*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*476843*/ OPC_Scope, 107, /*->476952*/ // 6 children in Scope ++/*476845*/ OPC_MoveChild0, ++/*476846*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*476849*/ OPC_CheckChild0Integer, 1, ++/*476851*/ OPC_CheckChild0Type, MVT::i32, ++/*476853*/ OPC_CheckChild1Integer, 1, ++/*476855*/ OPC_CheckChild1Type, MVT::i32, ++/*476857*/ OPC_CheckChild2Integer, 1, ++/*476859*/ OPC_CheckChild2Type, MVT::i32, ++/*476861*/ OPC_CheckChild3Integer, 1, ++/*476863*/ OPC_CheckChild3Type, MVT::i32, ++/*476865*/ OPC_CheckChild4Integer, 1, ++/*476867*/ OPC_CheckChild4Type, MVT::i32, ++/*476869*/ OPC_MoveChild5, ++/*476870*/ OPC_CheckInteger, 1, ++/*476872*/ OPC_CheckType, MVT::i32, ++/*476874*/ OPC_MoveParent, ++/*476875*/ OPC_MoveChild6, ++/*476876*/ OPC_CheckInteger, 1, ++/*476878*/ OPC_CheckType, MVT::i32, ++/*476880*/ OPC_MoveParent, ++/*476881*/ OPC_MoveChild7, ++/*476882*/ OPC_CheckInteger, 1, ++/*476884*/ OPC_CheckType, MVT::i32, ++/*476886*/ OPC_MoveParent, ++/*476887*/ OPC_MoveParent, ++/*476888*/ OPC_CheckChild1Same, 0, ++/*476890*/ OPC_MoveParent, ++/*476891*/ OPC_CheckChild1Same, 1, ++/*476893*/ OPC_MoveParent, ++/*476894*/ OPC_MoveParent, ++/*476895*/ OPC_MoveChild1, ++/*476896*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*476899*/ OPC_CheckChild0Integer, 1, ++/*476901*/ OPC_CheckChild0Type, MVT::i32, ++/*476903*/ OPC_CheckChild1Integer, 1, ++/*476905*/ OPC_CheckChild1Type, MVT::i32, ++/*476907*/ OPC_CheckChild2Integer, 1, ++/*476909*/ OPC_CheckChild2Type, MVT::i32, ++/*476911*/ OPC_CheckChild3Integer, 1, ++/*476913*/ OPC_CheckChild3Type, MVT::i32, ++/*476915*/ OPC_CheckChild4Integer, 1, ++/*476917*/ OPC_CheckChild4Type, MVT::i32, ++/*476919*/ OPC_MoveChild5, ++/*476920*/ OPC_CheckInteger, 1, ++/*476922*/ OPC_CheckType, MVT::i32, ++/*476924*/ OPC_MoveParent, ++/*476925*/ OPC_MoveChild6, ++/*476926*/ OPC_CheckInteger, 1, ++/*476928*/ OPC_CheckType, MVT::i32, ++/*476930*/ OPC_MoveParent, ++/*476931*/ OPC_MoveChild7, ++/*476932*/ OPC_CheckInteger, 1, ++/*476934*/ OPC_CheckType, MVT::i32, ++/*476936*/ OPC_MoveParent, ++/*476937*/ OPC_CheckType, MVT::v8i32, ++/*476939*/ OPC_MoveParent, ++/*476940*/ OPC_CheckType, MVT::v8i32, ++/*476942*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*476944*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a), LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*476952*/ /*Scope*/ 107, /*->477060*/ ++/*476953*/ OPC_CheckChild0Same, 0, ++/*476955*/ OPC_MoveChild1, ++/*476956*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*476959*/ OPC_CheckChild0Integer, 1, ++/*476961*/ OPC_CheckChild0Type, MVT::i32, ++/*476963*/ OPC_CheckChild1Integer, 1, ++/*476965*/ OPC_CheckChild1Type, MVT::i32, ++/*476967*/ OPC_CheckChild2Integer, 1, ++/*476969*/ OPC_CheckChild2Type, MVT::i32, ++/*476971*/ OPC_CheckChild3Integer, 1, ++/*476973*/ OPC_CheckChild3Type, MVT::i32, ++/*476975*/ OPC_CheckChild4Integer, 1, ++/*476977*/ OPC_CheckChild4Type, MVT::i32, ++/*476979*/ OPC_MoveChild5, ++/*476980*/ OPC_CheckInteger, 1, ++/*476982*/ OPC_CheckType, MVT::i32, ++/*476984*/ OPC_MoveParent, ++/*476985*/ OPC_MoveChild6, ++/*476986*/ OPC_CheckInteger, 1, ++/*476988*/ OPC_CheckType, MVT::i32, ++/*476990*/ OPC_MoveParent, ++/*476991*/ OPC_MoveChild7, ++/*476992*/ OPC_CheckInteger, 1, ++/*476994*/ OPC_CheckType, MVT::i32, ++/*476996*/ OPC_MoveParent, ++/*476997*/ OPC_MoveParent, ++/*476998*/ OPC_MoveParent, ++/*476999*/ OPC_CheckChild1Same, 1, ++/*477001*/ OPC_MoveParent, ++/*477002*/ OPC_MoveParent, ++/*477003*/ OPC_MoveChild1, ++/*477004*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*477007*/ OPC_CheckChild0Integer, 1, ++/*477009*/ OPC_CheckChild0Type, MVT::i32, ++/*477011*/ OPC_CheckChild1Integer, 1, ++/*477013*/ OPC_CheckChild1Type, MVT::i32, ++/*477015*/ OPC_CheckChild2Integer, 1, ++/*477017*/ OPC_CheckChild2Type, MVT::i32, ++/*477019*/ OPC_CheckChild3Integer, 1, ++/*477021*/ OPC_CheckChild3Type, MVT::i32, ++/*477023*/ OPC_CheckChild4Integer, 1, ++/*477025*/ OPC_CheckChild4Type, MVT::i32, ++/*477027*/ OPC_MoveChild5, ++/*477028*/ OPC_CheckInteger, 1, ++/*477030*/ OPC_CheckType, MVT::i32, ++/*477032*/ OPC_MoveParent, ++/*477033*/ OPC_MoveChild6, ++/*477034*/ OPC_CheckInteger, 1, ++/*477036*/ OPC_CheckType, MVT::i32, ++/*477038*/ OPC_MoveParent, ++/*477039*/ OPC_MoveChild7, ++/*477040*/ OPC_CheckInteger, 1, ++/*477042*/ OPC_CheckType, MVT::i32, ++/*477044*/ OPC_MoveParent, ++/*477045*/ OPC_CheckType, MVT::v8i32, ++/*477047*/ OPC_MoveParent, ++/*477048*/ OPC_CheckType, MVT::v8i32, ++/*477050*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*477052*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*477060*/ /*Scope*/ 107, /*->477168*/ ++/*477061*/ OPC_MoveChild0, ++/*477062*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*477065*/ OPC_CheckChild0Integer, 1, ++/*477067*/ OPC_CheckChild0Type, MVT::i32, ++/*477069*/ OPC_CheckChild1Integer, 1, ++/*477071*/ OPC_CheckChild1Type, MVT::i32, ++/*477073*/ OPC_CheckChild2Integer, 1, ++/*477075*/ OPC_CheckChild2Type, MVT::i32, ++/*477077*/ OPC_CheckChild3Integer, 1, ++/*477079*/ OPC_CheckChild3Type, MVT::i32, ++/*477081*/ OPC_CheckChild4Integer, 1, ++/*477083*/ OPC_CheckChild4Type, MVT::i32, ++/*477085*/ OPC_MoveChild5, ++/*477086*/ OPC_CheckInteger, 1, ++/*477088*/ OPC_CheckType, MVT::i32, ++/*477090*/ OPC_MoveParent, ++/*477091*/ OPC_MoveChild6, ++/*477092*/ OPC_CheckInteger, 1, ++/*477094*/ OPC_CheckType, MVT::i32, ++/*477096*/ OPC_MoveParent, ++/*477097*/ OPC_MoveChild7, ++/*477098*/ OPC_CheckInteger, 1, ++/*477100*/ OPC_CheckType, MVT::i32, ++/*477102*/ OPC_MoveParent, ++/*477103*/ OPC_MoveParent, ++/*477104*/ OPC_CheckChild1Same, 1, ++/*477106*/ OPC_MoveParent, ++/*477107*/ OPC_CheckChild1Same, 0, ++/*477109*/ OPC_MoveParent, ++/*477110*/ OPC_MoveParent, ++/*477111*/ OPC_MoveChild1, ++/*477112*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*477115*/ OPC_CheckChild0Integer, 1, ++/*477117*/ OPC_CheckChild0Type, MVT::i32, ++/*477119*/ OPC_CheckChild1Integer, 1, ++/*477121*/ OPC_CheckChild1Type, MVT::i32, ++/*477123*/ OPC_CheckChild2Integer, 1, ++/*477125*/ OPC_CheckChild2Type, MVT::i32, ++/*477127*/ OPC_CheckChild3Integer, 1, ++/*477129*/ OPC_CheckChild3Type, MVT::i32, ++/*477131*/ OPC_CheckChild4Integer, 1, ++/*477133*/ OPC_CheckChild4Type, MVT::i32, ++/*477135*/ OPC_MoveChild5, ++/*477136*/ OPC_CheckInteger, 1, ++/*477138*/ OPC_CheckType, MVT::i32, ++/*477140*/ OPC_MoveParent, ++/*477141*/ OPC_MoveChild6, ++/*477142*/ OPC_CheckInteger, 1, ++/*477144*/ OPC_CheckType, MVT::i32, ++/*477146*/ OPC_MoveParent, ++/*477147*/ OPC_MoveChild7, ++/*477148*/ OPC_CheckInteger, 1, ++/*477150*/ OPC_CheckType, MVT::i32, ++/*477152*/ OPC_MoveParent, ++/*477153*/ OPC_CheckType, MVT::v8i32, ++/*477155*/ OPC_MoveParent, ++/*477156*/ OPC_CheckType, MVT::v8i32, ++/*477158*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*477160*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b), LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*477168*/ /*Scope*/ 107, /*->477276*/ ++/*477169*/ OPC_CheckChild0Same, 1, ++/*477171*/ OPC_MoveChild1, ++/*477172*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*477175*/ OPC_CheckChild0Integer, 1, ++/*477177*/ OPC_CheckChild0Type, MVT::i32, ++/*477179*/ OPC_CheckChild1Integer, 1, ++/*477181*/ OPC_CheckChild1Type, MVT::i32, ++/*477183*/ OPC_CheckChild2Integer, 1, ++/*477185*/ OPC_CheckChild2Type, MVT::i32, ++/*477187*/ OPC_CheckChild3Integer, 1, ++/*477189*/ OPC_CheckChild3Type, MVT::i32, ++/*477191*/ OPC_CheckChild4Integer, 1, ++/*477193*/ OPC_CheckChild4Type, MVT::i32, ++/*477195*/ OPC_MoveChild5, ++/*477196*/ OPC_CheckInteger, 1, ++/*477198*/ OPC_CheckType, MVT::i32, ++/*477200*/ OPC_MoveParent, ++/*477201*/ OPC_MoveChild6, ++/*477202*/ OPC_CheckInteger, 1, ++/*477204*/ OPC_CheckType, MVT::i32, ++/*477206*/ OPC_MoveParent, ++/*477207*/ OPC_MoveChild7, ++/*477208*/ OPC_CheckInteger, 1, ++/*477210*/ OPC_CheckType, MVT::i32, ++/*477212*/ OPC_MoveParent, ++/*477213*/ OPC_MoveParent, ++/*477214*/ OPC_MoveParent, ++/*477215*/ OPC_CheckChild1Same, 0, ++/*477217*/ OPC_MoveParent, ++/*477218*/ OPC_MoveParent, ++/*477219*/ OPC_MoveChild1, ++/*477220*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*477223*/ OPC_CheckChild0Integer, 1, ++/*477225*/ OPC_CheckChild0Type, MVT::i32, ++/*477227*/ OPC_CheckChild1Integer, 1, ++/*477229*/ OPC_CheckChild1Type, MVT::i32, ++/*477231*/ OPC_CheckChild2Integer, 1, ++/*477233*/ OPC_CheckChild2Type, MVT::i32, ++/*477235*/ OPC_CheckChild3Integer, 1, ++/*477237*/ OPC_CheckChild3Type, MVT::i32, ++/*477239*/ OPC_CheckChild4Integer, 1, ++/*477241*/ OPC_CheckChild4Type, MVT::i32, ++/*477243*/ OPC_MoveChild5, ++/*477244*/ OPC_CheckInteger, 1, ++/*477246*/ OPC_CheckType, MVT::i32, ++/*477248*/ OPC_MoveParent, ++/*477249*/ OPC_MoveChild6, ++/*477250*/ OPC_CheckInteger, 1, ++/*477252*/ OPC_CheckType, MVT::i32, ++/*477254*/ OPC_MoveParent, ++/*477255*/ OPC_MoveChild7, ++/*477256*/ OPC_CheckInteger, 1, ++/*477258*/ OPC_CheckType, MVT::i32, ++/*477260*/ OPC_MoveParent, ++/*477261*/ OPC_CheckType, MVT::v8i32, ++/*477263*/ OPC_MoveParent, ++/*477264*/ OPC_CheckType, MVT::v8i32, ++/*477266*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*477268*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*477276*/ /*Scope*/ 107, /*->477384*/ ++/*477277*/ OPC_CheckChild0Same, 0, ++/*477279*/ OPC_CheckChild1Same, 1, ++/*477281*/ OPC_MoveParent, ++/*477282*/ OPC_MoveChild1, ++/*477283*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*477286*/ OPC_CheckChild0Integer, 1, ++/*477288*/ OPC_CheckChild0Type, MVT::i32, ++/*477290*/ OPC_CheckChild1Integer, 1, ++/*477292*/ OPC_CheckChild1Type, MVT::i32, ++/*477294*/ OPC_CheckChild2Integer, 1, ++/*477296*/ OPC_CheckChild2Type, MVT::i32, ++/*477298*/ OPC_CheckChild3Integer, 1, ++/*477300*/ OPC_CheckChild3Type, MVT::i32, ++/*477302*/ OPC_CheckChild4Integer, 1, ++/*477304*/ OPC_CheckChild4Type, MVT::i32, ++/*477306*/ OPC_MoveChild5, ++/*477307*/ OPC_CheckInteger, 1, ++/*477309*/ OPC_CheckType, MVT::i32, ++/*477311*/ OPC_MoveParent, ++/*477312*/ OPC_MoveChild6, ++/*477313*/ OPC_CheckInteger, 1, ++/*477315*/ OPC_CheckType, MVT::i32, ++/*477317*/ OPC_MoveParent, ++/*477318*/ OPC_MoveChild7, ++/*477319*/ OPC_CheckInteger, 1, ++/*477321*/ OPC_CheckType, MVT::i32, ++/*477323*/ OPC_MoveParent, ++/*477324*/ OPC_MoveParent, ++/*477325*/ OPC_MoveParent, ++/*477326*/ OPC_MoveParent, ++/*477327*/ OPC_MoveChild1, ++/*477328*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*477331*/ OPC_CheckChild0Integer, 1, ++/*477333*/ OPC_CheckChild0Type, MVT::i32, ++/*477335*/ OPC_CheckChild1Integer, 1, ++/*477337*/ OPC_CheckChild1Type, MVT::i32, ++/*477339*/ OPC_CheckChild2Integer, 1, ++/*477341*/ OPC_CheckChild2Type, MVT::i32, ++/*477343*/ OPC_CheckChild3Integer, 1, ++/*477345*/ OPC_CheckChild3Type, MVT::i32, ++/*477347*/ OPC_CheckChild4Integer, 1, ++/*477349*/ OPC_CheckChild4Type, MVT::i32, ++/*477351*/ OPC_MoveChild5, ++/*477352*/ OPC_CheckInteger, 1, ++/*477354*/ OPC_CheckType, MVT::i32, ++/*477356*/ OPC_MoveParent, ++/*477357*/ OPC_MoveChild6, ++/*477358*/ OPC_CheckInteger, 1, ++/*477360*/ OPC_CheckType, MVT::i32, ++/*477362*/ OPC_MoveParent, ++/*477363*/ OPC_MoveChild7, ++/*477364*/ OPC_CheckInteger, 1, ++/*477366*/ OPC_CheckType, MVT::i32, ++/*477368*/ OPC_MoveParent, ++/*477369*/ OPC_CheckType, MVT::v8i32, ++/*477371*/ OPC_MoveParent, ++/*477372*/ OPC_CheckType, MVT::v8i32, ++/*477374*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*477376*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*477384*/ /*Scope*/ 107, /*->477492*/ ++/*477385*/ OPC_CheckChild0Same, 1, ++/*477387*/ OPC_CheckChild1Same, 0, ++/*477389*/ OPC_MoveParent, ++/*477390*/ OPC_MoveChild1, ++/*477391*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*477394*/ OPC_CheckChild0Integer, 1, ++/*477396*/ OPC_CheckChild0Type, MVT::i32, ++/*477398*/ OPC_CheckChild1Integer, 1, ++/*477400*/ OPC_CheckChild1Type, MVT::i32, ++/*477402*/ OPC_CheckChild2Integer, 1, ++/*477404*/ OPC_CheckChild2Type, MVT::i32, ++/*477406*/ OPC_CheckChild3Integer, 1, ++/*477408*/ OPC_CheckChild3Type, MVT::i32, ++/*477410*/ OPC_CheckChild4Integer, 1, ++/*477412*/ OPC_CheckChild4Type, MVT::i32, ++/*477414*/ OPC_MoveChild5, ++/*477415*/ OPC_CheckInteger, 1, ++/*477417*/ OPC_CheckType, MVT::i32, ++/*477419*/ OPC_MoveParent, ++/*477420*/ OPC_MoveChild6, ++/*477421*/ OPC_CheckInteger, 1, ++/*477423*/ OPC_CheckType, MVT::i32, ++/*477425*/ OPC_MoveParent, ++/*477426*/ OPC_MoveChild7, ++/*477427*/ OPC_CheckInteger, 1, ++/*477429*/ OPC_CheckType, MVT::i32, ++/*477431*/ OPC_MoveParent, ++/*477432*/ OPC_MoveParent, ++/*477433*/ OPC_MoveParent, ++/*477434*/ OPC_MoveParent, ++/*477435*/ OPC_MoveChild1, ++/*477436*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*477439*/ OPC_CheckChild0Integer, 1, ++/*477441*/ OPC_CheckChild0Type, MVT::i32, ++/*477443*/ OPC_CheckChild1Integer, 1, ++/*477445*/ OPC_CheckChild1Type, MVT::i32, ++/*477447*/ OPC_CheckChild2Integer, 1, ++/*477449*/ OPC_CheckChild2Type, MVT::i32, ++/*477451*/ OPC_CheckChild3Integer, 1, ++/*477453*/ OPC_CheckChild3Type, MVT::i32, ++/*477455*/ OPC_CheckChild4Integer, 1, ++/*477457*/ OPC_CheckChild4Type, MVT::i32, ++/*477459*/ OPC_MoveChild5, ++/*477460*/ OPC_CheckInteger, 1, ++/*477462*/ OPC_CheckType, MVT::i32, ++/*477464*/ OPC_MoveParent, ++/*477465*/ OPC_MoveChild6, ++/*477466*/ OPC_CheckInteger, 1, ++/*477468*/ OPC_CheckType, MVT::i32, ++/*477470*/ OPC_MoveParent, ++/*477471*/ OPC_MoveChild7, ++/*477472*/ OPC_CheckInteger, 1, ++/*477474*/ OPC_CheckType, MVT::i32, ++/*477476*/ OPC_MoveParent, ++/*477477*/ OPC_CheckType, MVT::v8i32, ++/*477479*/ OPC_MoveParent, ++/*477480*/ OPC_CheckType, MVT::v8i32, ++/*477482*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*477484*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*477492*/ 0, /*End of Scope*/ ++/*477493*/ /*Scope*/ 92|128,1/*220*/, /*->477715*/ ++/*477495*/ OPC_CheckChild0Same, 1, ++/*477497*/ OPC_MoveChild1, ++/*477498*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*477501*/ OPC_Scope, 105, /*->477608*/ // 2 children in Scope ++/*477503*/ OPC_MoveChild0, ++/*477504*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*477507*/ OPC_CheckChild0Integer, 1, ++/*477509*/ OPC_CheckChild0Type, MVT::i32, ++/*477511*/ OPC_CheckChild1Integer, 1, ++/*477513*/ OPC_CheckChild1Type, MVT::i32, ++/*477515*/ OPC_CheckChild2Integer, 1, ++/*477517*/ OPC_CheckChild2Type, MVT::i32, ++/*477519*/ OPC_CheckChild3Integer, 1, ++/*477521*/ OPC_CheckChild3Type, MVT::i32, ++/*477523*/ OPC_CheckChild4Integer, 1, ++/*477525*/ OPC_CheckChild4Type, MVT::i32, ++/*477527*/ OPC_MoveChild5, ++/*477528*/ OPC_CheckInteger, 1, ++/*477530*/ OPC_CheckType, MVT::i32, ++/*477532*/ OPC_MoveParent, ++/*477533*/ OPC_MoveChild6, ++/*477534*/ OPC_CheckInteger, 1, ++/*477536*/ OPC_CheckType, MVT::i32, ++/*477538*/ OPC_MoveParent, ++/*477539*/ OPC_MoveChild7, ++/*477540*/ OPC_CheckInteger, 1, ++/*477542*/ OPC_CheckType, MVT::i32, ++/*477544*/ OPC_MoveParent, ++/*477545*/ OPC_MoveParent, ++/*477546*/ OPC_CheckChild1Same, 0, ++/*477548*/ OPC_MoveParent, ++/*477549*/ OPC_MoveParent, ++/*477550*/ OPC_MoveParent, ++/*477551*/ OPC_MoveChild1, ++/*477552*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*477555*/ OPC_CheckChild0Integer, 1, ++/*477557*/ OPC_CheckChild0Type, MVT::i32, ++/*477559*/ OPC_CheckChild1Integer, 1, ++/*477561*/ OPC_CheckChild1Type, MVT::i32, ++/*477563*/ OPC_CheckChild2Integer, 1, ++/*477565*/ OPC_CheckChild2Type, MVT::i32, ++/*477567*/ OPC_CheckChild3Integer, 1, ++/*477569*/ OPC_CheckChild3Type, MVT::i32, ++/*477571*/ OPC_CheckChild4Integer, 1, ++/*477573*/ OPC_CheckChild4Type, MVT::i32, ++/*477575*/ OPC_MoveChild5, ++/*477576*/ OPC_CheckInteger, 1, ++/*477578*/ OPC_CheckType, MVT::i32, ++/*477580*/ OPC_MoveParent, ++/*477581*/ OPC_MoveChild6, ++/*477582*/ OPC_CheckInteger, 1, ++/*477584*/ OPC_CheckType, MVT::i32, ++/*477586*/ OPC_MoveParent, ++/*477587*/ OPC_MoveChild7, ++/*477588*/ OPC_CheckInteger, 1, ++/*477590*/ OPC_CheckType, MVT::i32, ++/*477592*/ OPC_MoveParent, ++/*477593*/ OPC_CheckType, MVT::v8i32, ++/*477595*/ OPC_MoveParent, ++/*477596*/ OPC_CheckType, MVT::v8i32, ++/*477598*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*477600*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*477608*/ /*Scope*/ 105, /*->477714*/ ++/*477609*/ OPC_CheckChild0Same, 0, ++/*477611*/ OPC_MoveChild1, ++/*477612*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*477615*/ OPC_CheckChild0Integer, 1, ++/*477617*/ OPC_CheckChild0Type, MVT::i32, ++/*477619*/ OPC_CheckChild1Integer, 1, ++/*477621*/ OPC_CheckChild1Type, MVT::i32, ++/*477623*/ OPC_CheckChild2Integer, 1, ++/*477625*/ OPC_CheckChild2Type, MVT::i32, ++/*477627*/ OPC_CheckChild3Integer, 1, ++/*477629*/ OPC_CheckChild3Type, MVT::i32, ++/*477631*/ OPC_CheckChild4Integer, 1, ++/*477633*/ OPC_CheckChild4Type, MVT::i32, ++/*477635*/ OPC_MoveChild5, ++/*477636*/ OPC_CheckInteger, 1, ++/*477638*/ OPC_CheckType, MVT::i32, ++/*477640*/ OPC_MoveParent, ++/*477641*/ OPC_MoveChild6, ++/*477642*/ OPC_CheckInteger, 1, ++/*477644*/ OPC_CheckType, MVT::i32, ++/*477646*/ OPC_MoveParent, ++/*477647*/ OPC_MoveChild7, ++/*477648*/ OPC_CheckInteger, 1, ++/*477650*/ OPC_CheckType, MVT::i32, ++/*477652*/ OPC_MoveParent, ++/*477653*/ OPC_MoveParent, ++/*477654*/ OPC_MoveParent, ++/*477655*/ OPC_MoveParent, ++/*477656*/ OPC_MoveParent, ++/*477657*/ OPC_MoveChild1, ++/*477658*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*477661*/ OPC_CheckChild0Integer, 1, ++/*477663*/ OPC_CheckChild0Type, MVT::i32, ++/*477665*/ OPC_CheckChild1Integer, 1, ++/*477667*/ OPC_CheckChild1Type, MVT::i32, ++/*477669*/ OPC_CheckChild2Integer, 1, ++/*477671*/ OPC_CheckChild2Type, MVT::i32, ++/*477673*/ OPC_CheckChild3Integer, 1, ++/*477675*/ OPC_CheckChild3Type, MVT::i32, ++/*477677*/ OPC_CheckChild4Integer, 1, ++/*477679*/ OPC_CheckChild4Type, MVT::i32, ++/*477681*/ OPC_MoveChild5, ++/*477682*/ OPC_CheckInteger, 1, ++/*477684*/ OPC_CheckType, MVT::i32, ++/*477686*/ OPC_MoveParent, ++/*477687*/ OPC_MoveChild6, ++/*477688*/ OPC_CheckInteger, 1, ++/*477690*/ OPC_CheckType, MVT::i32, ++/*477692*/ OPC_MoveParent, ++/*477693*/ OPC_MoveChild7, ++/*477694*/ OPC_CheckInteger, 1, ++/*477696*/ OPC_CheckType, MVT::i32, ++/*477698*/ OPC_MoveParent, ++/*477699*/ OPC_CheckType, MVT::v8i32, ++/*477701*/ OPC_MoveParent, ++/*477702*/ OPC_CheckType, MVT::v8i32, ++/*477704*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*477706*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*477714*/ 0, /*End of Scope*/ ++/*477715*/ /*Scope*/ 92|128,1/*220*/, /*->477937*/ ++/*477717*/ OPC_CheckChild0Same, 0, ++/*477719*/ OPC_MoveChild1, ++/*477720*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*477723*/ OPC_Scope, 105, /*->477830*/ // 2 children in Scope ++/*477725*/ OPC_MoveChild0, ++/*477726*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*477729*/ OPC_CheckChild0Integer, 1, ++/*477731*/ OPC_CheckChild0Type, MVT::i32, ++/*477733*/ OPC_CheckChild1Integer, 1, ++/*477735*/ OPC_CheckChild1Type, MVT::i32, ++/*477737*/ OPC_CheckChild2Integer, 1, ++/*477739*/ OPC_CheckChild2Type, MVT::i32, ++/*477741*/ OPC_CheckChild3Integer, 1, ++/*477743*/ OPC_CheckChild3Type, MVT::i32, ++/*477745*/ OPC_CheckChild4Integer, 1, ++/*477747*/ OPC_CheckChild4Type, MVT::i32, ++/*477749*/ OPC_MoveChild5, ++/*477750*/ OPC_CheckInteger, 1, ++/*477752*/ OPC_CheckType, MVT::i32, ++/*477754*/ OPC_MoveParent, ++/*477755*/ OPC_MoveChild6, ++/*477756*/ OPC_CheckInteger, 1, ++/*477758*/ OPC_CheckType, MVT::i32, ++/*477760*/ OPC_MoveParent, ++/*477761*/ OPC_MoveChild7, ++/*477762*/ OPC_CheckInteger, 1, ++/*477764*/ OPC_CheckType, MVT::i32, ++/*477766*/ OPC_MoveParent, ++/*477767*/ OPC_MoveParent, ++/*477768*/ OPC_CheckChild1Same, 1, ++/*477770*/ OPC_MoveParent, ++/*477771*/ OPC_MoveParent, ++/*477772*/ OPC_MoveParent, ++/*477773*/ OPC_MoveChild1, ++/*477774*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*477777*/ OPC_CheckChild0Integer, 1, ++/*477779*/ OPC_CheckChild0Type, MVT::i32, ++/*477781*/ OPC_CheckChild1Integer, 1, ++/*477783*/ OPC_CheckChild1Type, MVT::i32, ++/*477785*/ OPC_CheckChild2Integer, 1, ++/*477787*/ OPC_CheckChild2Type, MVT::i32, ++/*477789*/ OPC_CheckChild3Integer, 1, ++/*477791*/ OPC_CheckChild3Type, MVT::i32, ++/*477793*/ OPC_CheckChild4Integer, 1, ++/*477795*/ OPC_CheckChild4Type, MVT::i32, ++/*477797*/ OPC_MoveChild5, ++/*477798*/ OPC_CheckInteger, 1, ++/*477800*/ OPC_CheckType, MVT::i32, ++/*477802*/ OPC_MoveParent, ++/*477803*/ OPC_MoveChild6, ++/*477804*/ OPC_CheckInteger, 1, ++/*477806*/ OPC_CheckType, MVT::i32, ++/*477808*/ OPC_MoveParent, ++/*477809*/ OPC_MoveChild7, ++/*477810*/ OPC_CheckInteger, 1, ++/*477812*/ OPC_CheckType, MVT::i32, ++/*477814*/ OPC_MoveParent, ++/*477815*/ OPC_CheckType, MVT::v8i32, ++/*477817*/ OPC_MoveParent, ++/*477818*/ OPC_CheckType, MVT::v8i32, ++/*477820*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*477822*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*477830*/ /*Scope*/ 105, /*->477936*/ ++/*477831*/ OPC_CheckChild0Same, 1, ++/*477833*/ OPC_MoveChild1, ++/*477834*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*477837*/ OPC_CheckChild0Integer, 1, ++/*477839*/ OPC_CheckChild0Type, MVT::i32, ++/*477841*/ OPC_CheckChild1Integer, 1, ++/*477843*/ OPC_CheckChild1Type, MVT::i32, ++/*477845*/ OPC_CheckChild2Integer, 1, ++/*477847*/ OPC_CheckChild2Type, MVT::i32, ++/*477849*/ OPC_CheckChild3Integer, 1, ++/*477851*/ OPC_CheckChild3Type, MVT::i32, ++/*477853*/ OPC_CheckChild4Integer, 1, ++/*477855*/ OPC_CheckChild4Type, MVT::i32, ++/*477857*/ OPC_MoveChild5, ++/*477858*/ OPC_CheckInteger, 1, ++/*477860*/ OPC_CheckType, MVT::i32, ++/*477862*/ OPC_MoveParent, ++/*477863*/ OPC_MoveChild6, ++/*477864*/ OPC_CheckInteger, 1, ++/*477866*/ OPC_CheckType, MVT::i32, ++/*477868*/ OPC_MoveParent, ++/*477869*/ OPC_MoveChild7, ++/*477870*/ OPC_CheckInteger, 1, ++/*477872*/ OPC_CheckType, MVT::i32, ++/*477874*/ OPC_MoveParent, ++/*477875*/ OPC_MoveParent, ++/*477876*/ OPC_MoveParent, ++/*477877*/ OPC_MoveParent, ++/*477878*/ OPC_MoveParent, ++/*477879*/ OPC_MoveChild1, ++/*477880*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*477883*/ OPC_CheckChild0Integer, 1, ++/*477885*/ OPC_CheckChild0Type, MVT::i32, ++/*477887*/ OPC_CheckChild1Integer, 1, ++/*477889*/ OPC_CheckChild1Type, MVT::i32, ++/*477891*/ OPC_CheckChild2Integer, 1, ++/*477893*/ OPC_CheckChild2Type, MVT::i32, ++/*477895*/ OPC_CheckChild3Integer, 1, ++/*477897*/ OPC_CheckChild3Type, MVT::i32, ++/*477899*/ OPC_CheckChild4Integer, 1, ++/*477901*/ OPC_CheckChild4Type, MVT::i32, ++/*477903*/ OPC_MoveChild5, ++/*477904*/ OPC_CheckInteger, 1, ++/*477906*/ OPC_CheckType, MVT::i32, ++/*477908*/ OPC_MoveParent, ++/*477909*/ OPC_MoveChild6, ++/*477910*/ OPC_CheckInteger, 1, ++/*477912*/ OPC_CheckType, MVT::i32, ++/*477914*/ OPC_MoveParent, ++/*477915*/ OPC_MoveChild7, ++/*477916*/ OPC_CheckInteger, 1, ++/*477918*/ OPC_CheckType, MVT::i32, ++/*477920*/ OPC_MoveParent, ++/*477921*/ OPC_CheckType, MVT::v8i32, ++/*477923*/ OPC_MoveParent, ++/*477924*/ OPC_CheckType, MVT::v8i32, ++/*477926*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*477928*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*477936*/ 0, /*End of Scope*/ ++/*477937*/ /*Scope*/ 51|128,1/*179*/, /*->478118*/ ++/*477939*/ OPC_MoveChild0, ++/*477940*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*477943*/ OPC_CheckChild0Integer, 1, ++/*477945*/ OPC_CheckChild0Type, MVT::i32, ++/*477947*/ OPC_CheckChild1Integer, 1, ++/*477949*/ OPC_CheckChild1Type, MVT::i32, ++/*477951*/ OPC_CheckChild2Integer, 1, ++/*477953*/ OPC_CheckChild2Type, MVT::i32, ++/*477955*/ OPC_CheckChild3Integer, 1, ++/*477957*/ OPC_CheckChild3Type, MVT::i32, ++/*477959*/ OPC_CheckChild4Integer, 1, ++/*477961*/ OPC_CheckChild4Type, MVT::i32, ++/*477963*/ OPC_MoveChild5, ++/*477964*/ OPC_CheckInteger, 1, ++/*477966*/ OPC_CheckType, MVT::i32, ++/*477968*/ OPC_MoveParent, ++/*477969*/ OPC_MoveChild6, ++/*477970*/ OPC_CheckInteger, 1, ++/*477972*/ OPC_CheckType, MVT::i32, ++/*477974*/ OPC_MoveParent, ++/*477975*/ OPC_MoveChild7, ++/*477976*/ OPC_CheckInteger, 1, ++/*477978*/ OPC_CheckType, MVT::i32, ++/*477980*/ OPC_MoveParent, ++/*477981*/ OPC_MoveParent, ++/*477982*/ OPC_MoveChild1, ++/*477983*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*477986*/ OPC_Scope, 64, /*->478052*/ // 2 children in Scope ++/*477988*/ OPC_CheckChild0Same, 0, ++/*477990*/ OPC_CheckChild1Same, 1, ++/*477992*/ OPC_MoveParent, ++/*477993*/ OPC_MoveParent, ++/*477994*/ OPC_MoveParent, ++/*477995*/ OPC_MoveChild1, ++/*477996*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*477999*/ OPC_CheckChild0Integer, 1, ++/*478001*/ OPC_CheckChild0Type, MVT::i32, ++/*478003*/ OPC_CheckChild1Integer, 1, ++/*478005*/ OPC_CheckChild1Type, MVT::i32, ++/*478007*/ OPC_CheckChild2Integer, 1, ++/*478009*/ OPC_CheckChild2Type, MVT::i32, ++/*478011*/ OPC_CheckChild3Integer, 1, ++/*478013*/ OPC_CheckChild3Type, MVT::i32, ++/*478015*/ OPC_CheckChild4Integer, 1, ++/*478017*/ OPC_CheckChild4Type, MVT::i32, ++/*478019*/ OPC_MoveChild5, ++/*478020*/ OPC_CheckInteger, 1, ++/*478022*/ OPC_CheckType, MVT::i32, ++/*478024*/ OPC_MoveParent, ++/*478025*/ OPC_MoveChild6, ++/*478026*/ OPC_CheckInteger, 1, ++/*478028*/ OPC_CheckType, MVT::i32, ++/*478030*/ OPC_MoveParent, ++/*478031*/ OPC_MoveChild7, ++/*478032*/ OPC_CheckInteger, 1, ++/*478034*/ OPC_CheckType, MVT::i32, ++/*478036*/ OPC_MoveParent, ++/*478037*/ OPC_CheckType, MVT::v8i32, ++/*478039*/ OPC_MoveParent, ++/*478040*/ OPC_CheckType, MVT::v8i32, ++/*478042*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*478044*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*478052*/ /*Scope*/ 64, /*->478117*/ ++/*478053*/ OPC_CheckChild0Same, 1, ++/*478055*/ OPC_CheckChild1Same, 0, ++/*478057*/ OPC_MoveParent, ++/*478058*/ OPC_MoveParent, ++/*478059*/ OPC_MoveParent, ++/*478060*/ OPC_MoveChild1, ++/*478061*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*478064*/ OPC_CheckChild0Integer, 1, ++/*478066*/ OPC_CheckChild0Type, MVT::i32, ++/*478068*/ OPC_CheckChild1Integer, 1, ++/*478070*/ OPC_CheckChild1Type, MVT::i32, ++/*478072*/ OPC_CheckChild2Integer, 1, ++/*478074*/ OPC_CheckChild2Type, MVT::i32, ++/*478076*/ OPC_CheckChild3Integer, 1, ++/*478078*/ OPC_CheckChild3Type, MVT::i32, ++/*478080*/ OPC_CheckChild4Integer, 1, ++/*478082*/ OPC_CheckChild4Type, MVT::i32, ++/*478084*/ OPC_MoveChild5, ++/*478085*/ OPC_CheckInteger, 1, ++/*478087*/ OPC_CheckType, MVT::i32, ++/*478089*/ OPC_MoveParent, ++/*478090*/ OPC_MoveChild6, ++/*478091*/ OPC_CheckInteger, 1, ++/*478093*/ OPC_CheckType, MVT::i32, ++/*478095*/ OPC_MoveParent, ++/*478096*/ OPC_MoveChild7, ++/*478097*/ OPC_CheckInteger, 1, ++/*478099*/ OPC_CheckType, MVT::i32, ++/*478101*/ OPC_MoveParent, ++/*478102*/ OPC_CheckType, MVT::v8i32, ++/*478104*/ OPC_MoveParent, ++/*478105*/ OPC_CheckType, MVT::v8i32, ++/*478107*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*478109*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*478117*/ 0, /*End of Scope*/ ++/*478118*/ 0, /*End of Scope*/ ++/*478119*/ /*Scope*/ 100|128,10/*1380*/, /*->479501*/ ++/*478121*/ OPC_MoveChild0, ++/*478122*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*478125*/ OPC_CheckChild0Integer, 1, ++/*478127*/ OPC_CheckChild0Type, MVT::i32, ++/*478129*/ OPC_CheckChild1Integer, 1, ++/*478131*/ OPC_CheckChild1Type, MVT::i32, ++/*478133*/ OPC_CheckChild2Integer, 1, ++/*478135*/ OPC_CheckChild2Type, MVT::i32, ++/*478137*/ OPC_CheckChild3Integer, 1, ++/*478139*/ OPC_CheckChild3Type, MVT::i32, ++/*478141*/ OPC_CheckChild4Integer, 1, ++/*478143*/ OPC_CheckChild4Type, MVT::i32, ++/*478145*/ OPC_MoveChild5, ++/*478146*/ OPC_CheckInteger, 1, ++/*478148*/ OPC_CheckType, MVT::i32, ++/*478150*/ OPC_MoveParent, ++/*478151*/ OPC_MoveChild6, ++/*478152*/ OPC_CheckInteger, 1, ++/*478154*/ OPC_CheckType, MVT::i32, ++/*478156*/ OPC_MoveParent, ++/*478157*/ OPC_MoveChild7, ++/*478158*/ OPC_CheckInteger, 1, ++/*478160*/ OPC_CheckType, MVT::i32, ++/*478162*/ OPC_MoveParent, ++/*478163*/ OPC_MoveParent, ++/*478164*/ OPC_RecordChild1, // #0 = $b ++/*478165*/ OPC_MoveParent, ++/*478166*/ OPC_RecordChild1, // #1 = $a ++/*478167*/ OPC_MoveParent, ++/*478168*/ OPC_MoveChild1, ++/*478169*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*478172*/ OPC_CheckChild0Integer, 31, ++/*478174*/ OPC_CheckChild0Type, MVT::i32, ++/*478176*/ OPC_CheckChild1Integer, 31, ++/*478178*/ OPC_CheckChild1Type, MVT::i32, ++/*478180*/ OPC_CheckChild2Integer, 31, ++/*478182*/ OPC_CheckChild2Type, MVT::i32, ++/*478184*/ OPC_CheckChild3Integer, 31, ++/*478186*/ OPC_CheckChild3Type, MVT::i32, ++/*478188*/ OPC_CheckChild4Integer, 31, ++/*478190*/ OPC_CheckChild4Type, MVT::i32, ++/*478192*/ OPC_MoveChild5, ++/*478193*/ OPC_CheckInteger, 31, ++/*478195*/ OPC_CheckType, MVT::i32, ++/*478197*/ OPC_MoveParent, ++/*478198*/ OPC_MoveChild6, ++/*478199*/ OPC_CheckInteger, 31, ++/*478201*/ OPC_CheckType, MVT::i32, ++/*478203*/ OPC_MoveParent, ++/*478204*/ OPC_MoveChild7, ++/*478205*/ OPC_CheckInteger, 31, ++/*478207*/ OPC_CheckType, MVT::i32, ++/*478209*/ OPC_MoveParent, ++/*478210*/ OPC_CheckType, MVT::v8i32, ++/*478212*/ OPC_MoveParent, ++/*478213*/ OPC_MoveParent, ++/*478214*/ OPC_MoveChild1, ++/*478215*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*478218*/ OPC_Scope, 14|128,5/*654*/, /*->478875*/ // 4 children in Scope ++/*478221*/ OPC_MoveChild0, ++/*478222*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*478225*/ OPC_Scope, 107, /*->478334*/ // 6 children in Scope ++/*478227*/ OPC_MoveChild0, ++/*478228*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*478231*/ OPC_CheckChild0Integer, 1, ++/*478233*/ OPC_CheckChild0Type, MVT::i32, ++/*478235*/ OPC_CheckChild1Integer, 1, ++/*478237*/ OPC_CheckChild1Type, MVT::i32, ++/*478239*/ OPC_CheckChild2Integer, 1, ++/*478241*/ OPC_CheckChild2Type, MVT::i32, ++/*478243*/ OPC_CheckChild3Integer, 1, ++/*478245*/ OPC_CheckChild3Type, MVT::i32, ++/*478247*/ OPC_CheckChild4Integer, 1, ++/*478249*/ OPC_CheckChild4Type, MVT::i32, ++/*478251*/ OPC_MoveChild5, ++/*478252*/ OPC_CheckInteger, 1, ++/*478254*/ OPC_CheckType, MVT::i32, ++/*478256*/ OPC_MoveParent, ++/*478257*/ OPC_MoveChild6, ++/*478258*/ OPC_CheckInteger, 1, ++/*478260*/ OPC_CheckType, MVT::i32, ++/*478262*/ OPC_MoveParent, ++/*478263*/ OPC_MoveChild7, ++/*478264*/ OPC_CheckInteger, 1, ++/*478266*/ OPC_CheckType, MVT::i32, ++/*478268*/ OPC_MoveParent, ++/*478269*/ OPC_MoveParent, ++/*478270*/ OPC_CheckChild1Same, 1, ++/*478272*/ OPC_MoveParent, ++/*478273*/ OPC_CheckChild1Same, 0, ++/*478275*/ OPC_MoveParent, ++/*478276*/ OPC_MoveParent, ++/*478277*/ OPC_MoveChild1, ++/*478278*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*478281*/ OPC_CheckChild0Integer, 1, ++/*478283*/ OPC_CheckChild0Type, MVT::i32, ++/*478285*/ OPC_CheckChild1Integer, 1, ++/*478287*/ OPC_CheckChild1Type, MVT::i32, ++/*478289*/ OPC_CheckChild2Integer, 1, ++/*478291*/ OPC_CheckChild2Type, MVT::i32, ++/*478293*/ OPC_CheckChild3Integer, 1, ++/*478295*/ OPC_CheckChild3Type, MVT::i32, ++/*478297*/ OPC_CheckChild4Integer, 1, ++/*478299*/ OPC_CheckChild4Type, MVT::i32, ++/*478301*/ OPC_MoveChild5, ++/*478302*/ OPC_CheckInteger, 1, ++/*478304*/ OPC_CheckType, MVT::i32, ++/*478306*/ OPC_MoveParent, ++/*478307*/ OPC_MoveChild6, ++/*478308*/ OPC_CheckInteger, 1, ++/*478310*/ OPC_CheckType, MVT::i32, ++/*478312*/ OPC_MoveParent, ++/*478313*/ OPC_MoveChild7, ++/*478314*/ OPC_CheckInteger, 1, ++/*478316*/ OPC_CheckType, MVT::i32, ++/*478318*/ OPC_MoveParent, ++/*478319*/ OPC_CheckType, MVT::v8i32, ++/*478321*/ OPC_MoveParent, ++/*478322*/ OPC_CheckType, MVT::v8i32, ++/*478324*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*478326*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b), LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a), LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*478334*/ /*Scope*/ 107, /*->478442*/ ++/*478335*/ OPC_CheckChild0Same, 1, ++/*478337*/ OPC_MoveChild1, ++/*478338*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*478341*/ OPC_CheckChild0Integer, 1, ++/*478343*/ OPC_CheckChild0Type, MVT::i32, ++/*478345*/ OPC_CheckChild1Integer, 1, ++/*478347*/ OPC_CheckChild1Type, MVT::i32, ++/*478349*/ OPC_CheckChild2Integer, 1, ++/*478351*/ OPC_CheckChild2Type, MVT::i32, ++/*478353*/ OPC_CheckChild3Integer, 1, ++/*478355*/ OPC_CheckChild3Type, MVT::i32, ++/*478357*/ OPC_CheckChild4Integer, 1, ++/*478359*/ OPC_CheckChild4Type, MVT::i32, ++/*478361*/ OPC_MoveChild5, ++/*478362*/ OPC_CheckInteger, 1, ++/*478364*/ OPC_CheckType, MVT::i32, ++/*478366*/ OPC_MoveParent, ++/*478367*/ OPC_MoveChild6, ++/*478368*/ OPC_CheckInteger, 1, ++/*478370*/ OPC_CheckType, MVT::i32, ++/*478372*/ OPC_MoveParent, ++/*478373*/ OPC_MoveChild7, ++/*478374*/ OPC_CheckInteger, 1, ++/*478376*/ OPC_CheckType, MVT::i32, ++/*478378*/ OPC_MoveParent, ++/*478379*/ OPC_MoveParent, ++/*478380*/ OPC_MoveParent, ++/*478381*/ OPC_CheckChild1Same, 0, ++/*478383*/ OPC_MoveParent, ++/*478384*/ OPC_MoveParent, ++/*478385*/ OPC_MoveChild1, ++/*478386*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*478389*/ OPC_CheckChild0Integer, 1, ++/*478391*/ OPC_CheckChild0Type, MVT::i32, ++/*478393*/ OPC_CheckChild1Integer, 1, ++/*478395*/ OPC_CheckChild1Type, MVT::i32, ++/*478397*/ OPC_CheckChild2Integer, 1, ++/*478399*/ OPC_CheckChild2Type, MVT::i32, ++/*478401*/ OPC_CheckChild3Integer, 1, ++/*478403*/ OPC_CheckChild3Type, MVT::i32, ++/*478405*/ OPC_CheckChild4Integer, 1, ++/*478407*/ OPC_CheckChild4Type, MVT::i32, ++/*478409*/ OPC_MoveChild5, ++/*478410*/ OPC_CheckInteger, 1, ++/*478412*/ OPC_CheckType, MVT::i32, ++/*478414*/ OPC_MoveParent, ++/*478415*/ OPC_MoveChild6, ++/*478416*/ OPC_CheckInteger, 1, ++/*478418*/ OPC_CheckType, MVT::i32, ++/*478420*/ OPC_MoveParent, ++/*478421*/ OPC_MoveChild7, ++/*478422*/ OPC_CheckInteger, 1, ++/*478424*/ OPC_CheckType, MVT::i32, ++/*478426*/ OPC_MoveParent, ++/*478427*/ OPC_CheckType, MVT::v8i32, ++/*478429*/ OPC_MoveParent, ++/*478430*/ OPC_CheckType, MVT::v8i32, ++/*478432*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*478434*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b), LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*478442*/ /*Scope*/ 107, /*->478550*/ ++/*478443*/ OPC_MoveChild0, ++/*478444*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*478447*/ OPC_CheckChild0Integer, 1, ++/*478449*/ OPC_CheckChild0Type, MVT::i32, ++/*478451*/ OPC_CheckChild1Integer, 1, ++/*478453*/ OPC_CheckChild1Type, MVT::i32, ++/*478455*/ OPC_CheckChild2Integer, 1, ++/*478457*/ OPC_CheckChild2Type, MVT::i32, ++/*478459*/ OPC_CheckChild3Integer, 1, ++/*478461*/ OPC_CheckChild3Type, MVT::i32, ++/*478463*/ OPC_CheckChild4Integer, 1, ++/*478465*/ OPC_CheckChild4Type, MVT::i32, ++/*478467*/ OPC_MoveChild5, ++/*478468*/ OPC_CheckInteger, 1, ++/*478470*/ OPC_CheckType, MVT::i32, ++/*478472*/ OPC_MoveParent, ++/*478473*/ OPC_MoveChild6, ++/*478474*/ OPC_CheckInteger, 1, ++/*478476*/ OPC_CheckType, MVT::i32, ++/*478478*/ OPC_MoveParent, ++/*478479*/ OPC_MoveChild7, ++/*478480*/ OPC_CheckInteger, 1, ++/*478482*/ OPC_CheckType, MVT::i32, ++/*478484*/ OPC_MoveParent, ++/*478485*/ OPC_MoveParent, ++/*478486*/ OPC_CheckChild1Same, 0, ++/*478488*/ OPC_MoveParent, ++/*478489*/ OPC_CheckChild1Same, 1, ++/*478491*/ OPC_MoveParent, ++/*478492*/ OPC_MoveParent, ++/*478493*/ OPC_MoveChild1, ++/*478494*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*478497*/ OPC_CheckChild0Integer, 1, ++/*478499*/ OPC_CheckChild0Type, MVT::i32, ++/*478501*/ OPC_CheckChild1Integer, 1, ++/*478503*/ OPC_CheckChild1Type, MVT::i32, ++/*478505*/ OPC_CheckChild2Integer, 1, ++/*478507*/ OPC_CheckChild2Type, MVT::i32, ++/*478509*/ OPC_CheckChild3Integer, 1, ++/*478511*/ OPC_CheckChild3Type, MVT::i32, ++/*478513*/ OPC_CheckChild4Integer, 1, ++/*478515*/ OPC_CheckChild4Type, MVT::i32, ++/*478517*/ OPC_MoveChild5, ++/*478518*/ OPC_CheckInteger, 1, ++/*478520*/ OPC_CheckType, MVT::i32, ++/*478522*/ OPC_MoveParent, ++/*478523*/ OPC_MoveChild6, ++/*478524*/ OPC_CheckInteger, 1, ++/*478526*/ OPC_CheckType, MVT::i32, ++/*478528*/ OPC_MoveParent, ++/*478529*/ OPC_MoveChild7, ++/*478530*/ OPC_CheckInteger, 1, ++/*478532*/ OPC_CheckType, MVT::i32, ++/*478534*/ OPC_MoveParent, ++/*478535*/ OPC_CheckType, MVT::v8i32, ++/*478537*/ OPC_MoveParent, ++/*478538*/ OPC_CheckType, MVT::v8i32, ++/*478540*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*478542*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b), LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b), LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*478550*/ /*Scope*/ 107, /*->478658*/ ++/*478551*/ OPC_CheckChild0Same, 0, ++/*478553*/ OPC_MoveChild1, ++/*478554*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*478557*/ OPC_CheckChild0Integer, 1, ++/*478559*/ OPC_CheckChild0Type, MVT::i32, ++/*478561*/ OPC_CheckChild1Integer, 1, ++/*478563*/ OPC_CheckChild1Type, MVT::i32, ++/*478565*/ OPC_CheckChild2Integer, 1, ++/*478567*/ OPC_CheckChild2Type, MVT::i32, ++/*478569*/ OPC_CheckChild3Integer, 1, ++/*478571*/ OPC_CheckChild3Type, MVT::i32, ++/*478573*/ OPC_CheckChild4Integer, 1, ++/*478575*/ OPC_CheckChild4Type, MVT::i32, ++/*478577*/ OPC_MoveChild5, ++/*478578*/ OPC_CheckInteger, 1, ++/*478580*/ OPC_CheckType, MVT::i32, ++/*478582*/ OPC_MoveParent, ++/*478583*/ OPC_MoveChild6, ++/*478584*/ OPC_CheckInteger, 1, ++/*478586*/ OPC_CheckType, MVT::i32, ++/*478588*/ OPC_MoveParent, ++/*478589*/ OPC_MoveChild7, ++/*478590*/ OPC_CheckInteger, 1, ++/*478592*/ OPC_CheckType, MVT::i32, ++/*478594*/ OPC_MoveParent, ++/*478595*/ OPC_MoveParent, ++/*478596*/ OPC_MoveParent, ++/*478597*/ OPC_CheckChild1Same, 1, ++/*478599*/ OPC_MoveParent, ++/*478600*/ OPC_MoveParent, ++/*478601*/ OPC_MoveChild1, ++/*478602*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*478605*/ OPC_CheckChild0Integer, 1, ++/*478607*/ OPC_CheckChild0Type, MVT::i32, ++/*478609*/ OPC_CheckChild1Integer, 1, ++/*478611*/ OPC_CheckChild1Type, MVT::i32, ++/*478613*/ OPC_CheckChild2Integer, 1, ++/*478615*/ OPC_CheckChild2Type, MVT::i32, ++/*478617*/ OPC_CheckChild3Integer, 1, ++/*478619*/ OPC_CheckChild3Type, MVT::i32, ++/*478621*/ OPC_CheckChild4Integer, 1, ++/*478623*/ OPC_CheckChild4Type, MVT::i32, ++/*478625*/ OPC_MoveChild5, ++/*478626*/ OPC_CheckInteger, 1, ++/*478628*/ OPC_CheckType, MVT::i32, ++/*478630*/ OPC_MoveParent, ++/*478631*/ OPC_MoveChild6, ++/*478632*/ OPC_CheckInteger, 1, ++/*478634*/ OPC_CheckType, MVT::i32, ++/*478636*/ OPC_MoveParent, ++/*478637*/ OPC_MoveChild7, ++/*478638*/ OPC_CheckInteger, 1, ++/*478640*/ OPC_CheckType, MVT::i32, ++/*478642*/ OPC_MoveParent, ++/*478643*/ OPC_CheckType, MVT::v8i32, ++/*478645*/ OPC_MoveParent, ++/*478646*/ OPC_CheckType, MVT::v8i32, ++/*478648*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*478650*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b), LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*478658*/ /*Scope*/ 107, /*->478766*/ ++/*478659*/ OPC_CheckChild0Same, 1, ++/*478661*/ OPC_CheckChild1Same, 0, ++/*478663*/ OPC_MoveParent, ++/*478664*/ OPC_MoveChild1, ++/*478665*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*478668*/ OPC_CheckChild0Integer, 1, ++/*478670*/ OPC_CheckChild0Type, MVT::i32, ++/*478672*/ OPC_CheckChild1Integer, 1, ++/*478674*/ OPC_CheckChild1Type, MVT::i32, ++/*478676*/ OPC_CheckChild2Integer, 1, ++/*478678*/ OPC_CheckChild2Type, MVT::i32, ++/*478680*/ OPC_CheckChild3Integer, 1, ++/*478682*/ OPC_CheckChild3Type, MVT::i32, ++/*478684*/ OPC_CheckChild4Integer, 1, ++/*478686*/ OPC_CheckChild4Type, MVT::i32, ++/*478688*/ OPC_MoveChild5, ++/*478689*/ OPC_CheckInteger, 1, ++/*478691*/ OPC_CheckType, MVT::i32, ++/*478693*/ OPC_MoveParent, ++/*478694*/ OPC_MoveChild6, ++/*478695*/ OPC_CheckInteger, 1, ++/*478697*/ OPC_CheckType, MVT::i32, ++/*478699*/ OPC_MoveParent, ++/*478700*/ OPC_MoveChild7, ++/*478701*/ OPC_CheckInteger, 1, ++/*478703*/ OPC_CheckType, MVT::i32, ++/*478705*/ OPC_MoveParent, ++/*478706*/ OPC_MoveParent, ++/*478707*/ OPC_MoveParent, ++/*478708*/ OPC_MoveParent, ++/*478709*/ OPC_MoveChild1, ++/*478710*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*478713*/ OPC_CheckChild0Integer, 1, ++/*478715*/ OPC_CheckChild0Type, MVT::i32, ++/*478717*/ OPC_CheckChild1Integer, 1, ++/*478719*/ OPC_CheckChild1Type, MVT::i32, ++/*478721*/ OPC_CheckChild2Integer, 1, ++/*478723*/ OPC_CheckChild2Type, MVT::i32, ++/*478725*/ OPC_CheckChild3Integer, 1, ++/*478727*/ OPC_CheckChild3Type, MVT::i32, ++/*478729*/ OPC_CheckChild4Integer, 1, ++/*478731*/ OPC_CheckChild4Type, MVT::i32, ++/*478733*/ OPC_MoveChild5, ++/*478734*/ OPC_CheckInteger, 1, ++/*478736*/ OPC_CheckType, MVT::i32, ++/*478738*/ OPC_MoveParent, ++/*478739*/ OPC_MoveChild6, ++/*478740*/ OPC_CheckInteger, 1, ++/*478742*/ OPC_CheckType, MVT::i32, ++/*478744*/ OPC_MoveParent, ++/*478745*/ OPC_MoveChild7, ++/*478746*/ OPC_CheckInteger, 1, ++/*478748*/ OPC_CheckType, MVT::i32, ++/*478750*/ OPC_MoveParent, ++/*478751*/ OPC_CheckType, MVT::v8i32, ++/*478753*/ OPC_MoveParent, ++/*478754*/ OPC_CheckType, MVT::v8i32, ++/*478756*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*478758*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b), LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*478766*/ /*Scope*/ 107, /*->478874*/ ++/*478767*/ OPC_CheckChild0Same, 0, ++/*478769*/ OPC_CheckChild1Same, 1, ++/*478771*/ OPC_MoveParent, ++/*478772*/ OPC_MoveChild1, ++/*478773*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*478776*/ OPC_CheckChild0Integer, 1, ++/*478778*/ OPC_CheckChild0Type, MVT::i32, ++/*478780*/ OPC_CheckChild1Integer, 1, ++/*478782*/ OPC_CheckChild1Type, MVT::i32, ++/*478784*/ OPC_CheckChild2Integer, 1, ++/*478786*/ OPC_CheckChild2Type, MVT::i32, ++/*478788*/ OPC_CheckChild3Integer, 1, ++/*478790*/ OPC_CheckChild3Type, MVT::i32, ++/*478792*/ OPC_CheckChild4Integer, 1, ++/*478794*/ OPC_CheckChild4Type, MVT::i32, ++/*478796*/ OPC_MoveChild5, ++/*478797*/ OPC_CheckInteger, 1, ++/*478799*/ OPC_CheckType, MVT::i32, ++/*478801*/ OPC_MoveParent, ++/*478802*/ OPC_MoveChild6, ++/*478803*/ OPC_CheckInteger, 1, ++/*478805*/ OPC_CheckType, MVT::i32, ++/*478807*/ OPC_MoveParent, ++/*478808*/ OPC_MoveChild7, ++/*478809*/ OPC_CheckInteger, 1, ++/*478811*/ OPC_CheckType, MVT::i32, ++/*478813*/ OPC_MoveParent, ++/*478814*/ OPC_MoveParent, ++/*478815*/ OPC_MoveParent, ++/*478816*/ OPC_MoveParent, ++/*478817*/ OPC_MoveChild1, ++/*478818*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*478821*/ OPC_CheckChild0Integer, 1, ++/*478823*/ OPC_CheckChild0Type, MVT::i32, ++/*478825*/ OPC_CheckChild1Integer, 1, ++/*478827*/ OPC_CheckChild1Type, MVT::i32, ++/*478829*/ OPC_CheckChild2Integer, 1, ++/*478831*/ OPC_CheckChild2Type, MVT::i32, ++/*478833*/ OPC_CheckChild3Integer, 1, ++/*478835*/ OPC_CheckChild3Type, MVT::i32, ++/*478837*/ OPC_CheckChild4Integer, 1, ++/*478839*/ OPC_CheckChild4Type, MVT::i32, ++/*478841*/ OPC_MoveChild5, ++/*478842*/ OPC_CheckInteger, 1, ++/*478844*/ OPC_CheckType, MVT::i32, ++/*478846*/ OPC_MoveParent, ++/*478847*/ OPC_MoveChild6, ++/*478848*/ OPC_CheckInteger, 1, ++/*478850*/ OPC_CheckType, MVT::i32, ++/*478852*/ OPC_MoveParent, ++/*478853*/ OPC_MoveChild7, ++/*478854*/ OPC_CheckInteger, 1, ++/*478856*/ OPC_CheckType, MVT::i32, ++/*478858*/ OPC_MoveParent, ++/*478859*/ OPC_CheckType, MVT::v8i32, ++/*478861*/ OPC_MoveParent, ++/*478862*/ OPC_CheckType, MVT::v8i32, ++/*478864*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*478866*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b), LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*478874*/ 0, /*End of Scope*/ ++/*478875*/ /*Scope*/ 92|128,1/*220*/, /*->479097*/ ++/*478877*/ OPC_CheckChild0Same, 0, ++/*478879*/ OPC_MoveChild1, ++/*478880*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*478883*/ OPC_Scope, 105, /*->478990*/ // 2 children in Scope ++/*478885*/ OPC_MoveChild0, ++/*478886*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*478889*/ OPC_CheckChild0Integer, 1, ++/*478891*/ OPC_CheckChild0Type, MVT::i32, ++/*478893*/ OPC_CheckChild1Integer, 1, ++/*478895*/ OPC_CheckChild1Type, MVT::i32, ++/*478897*/ OPC_CheckChild2Integer, 1, ++/*478899*/ OPC_CheckChild2Type, MVT::i32, ++/*478901*/ OPC_CheckChild3Integer, 1, ++/*478903*/ OPC_CheckChild3Type, MVT::i32, ++/*478905*/ OPC_CheckChild4Integer, 1, ++/*478907*/ OPC_CheckChild4Type, MVT::i32, ++/*478909*/ OPC_MoveChild5, ++/*478910*/ OPC_CheckInteger, 1, ++/*478912*/ OPC_CheckType, MVT::i32, ++/*478914*/ OPC_MoveParent, ++/*478915*/ OPC_MoveChild6, ++/*478916*/ OPC_CheckInteger, 1, ++/*478918*/ OPC_CheckType, MVT::i32, ++/*478920*/ OPC_MoveParent, ++/*478921*/ OPC_MoveChild7, ++/*478922*/ OPC_CheckInteger, 1, ++/*478924*/ OPC_CheckType, MVT::i32, ++/*478926*/ OPC_MoveParent, ++/*478927*/ OPC_MoveParent, ++/*478928*/ OPC_CheckChild1Same, 1, ++/*478930*/ OPC_MoveParent, ++/*478931*/ OPC_MoveParent, ++/*478932*/ OPC_MoveParent, ++/*478933*/ OPC_MoveChild1, ++/*478934*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*478937*/ OPC_CheckChild0Integer, 1, ++/*478939*/ OPC_CheckChild0Type, MVT::i32, ++/*478941*/ OPC_CheckChild1Integer, 1, ++/*478943*/ OPC_CheckChild1Type, MVT::i32, ++/*478945*/ OPC_CheckChild2Integer, 1, ++/*478947*/ OPC_CheckChild2Type, MVT::i32, ++/*478949*/ OPC_CheckChild3Integer, 1, ++/*478951*/ OPC_CheckChild3Type, MVT::i32, ++/*478953*/ OPC_CheckChild4Integer, 1, ++/*478955*/ OPC_CheckChild4Type, MVT::i32, ++/*478957*/ OPC_MoveChild5, ++/*478958*/ OPC_CheckInteger, 1, ++/*478960*/ OPC_CheckType, MVT::i32, ++/*478962*/ OPC_MoveParent, ++/*478963*/ OPC_MoveChild6, ++/*478964*/ OPC_CheckInteger, 1, ++/*478966*/ OPC_CheckType, MVT::i32, ++/*478968*/ OPC_MoveParent, ++/*478969*/ OPC_MoveChild7, ++/*478970*/ OPC_CheckInteger, 1, ++/*478972*/ OPC_CheckType, MVT::i32, ++/*478974*/ OPC_MoveParent, ++/*478975*/ OPC_CheckType, MVT::v8i32, ++/*478977*/ OPC_MoveParent, ++/*478978*/ OPC_CheckType, MVT::v8i32, ++/*478980*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*478982*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b), LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*478990*/ /*Scope*/ 105, /*->479096*/ ++/*478991*/ OPC_CheckChild0Same, 1, ++/*478993*/ OPC_MoveChild1, ++/*478994*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*478997*/ OPC_CheckChild0Integer, 1, ++/*478999*/ OPC_CheckChild0Type, MVT::i32, ++/*479001*/ OPC_CheckChild1Integer, 1, ++/*479003*/ OPC_CheckChild1Type, MVT::i32, ++/*479005*/ OPC_CheckChild2Integer, 1, ++/*479007*/ OPC_CheckChild2Type, MVT::i32, ++/*479009*/ OPC_CheckChild3Integer, 1, ++/*479011*/ OPC_CheckChild3Type, MVT::i32, ++/*479013*/ OPC_CheckChild4Integer, 1, ++/*479015*/ OPC_CheckChild4Type, MVT::i32, ++/*479017*/ OPC_MoveChild5, ++/*479018*/ OPC_CheckInteger, 1, ++/*479020*/ OPC_CheckType, MVT::i32, ++/*479022*/ OPC_MoveParent, ++/*479023*/ OPC_MoveChild6, ++/*479024*/ OPC_CheckInteger, 1, ++/*479026*/ OPC_CheckType, MVT::i32, ++/*479028*/ OPC_MoveParent, ++/*479029*/ OPC_MoveChild7, ++/*479030*/ OPC_CheckInteger, 1, ++/*479032*/ OPC_CheckType, MVT::i32, ++/*479034*/ OPC_MoveParent, ++/*479035*/ OPC_MoveParent, ++/*479036*/ OPC_MoveParent, ++/*479037*/ OPC_MoveParent, ++/*479038*/ OPC_MoveParent, ++/*479039*/ OPC_MoveChild1, ++/*479040*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*479043*/ OPC_CheckChild0Integer, 1, ++/*479045*/ OPC_CheckChild0Type, MVT::i32, ++/*479047*/ OPC_CheckChild1Integer, 1, ++/*479049*/ OPC_CheckChild1Type, MVT::i32, ++/*479051*/ OPC_CheckChild2Integer, 1, ++/*479053*/ OPC_CheckChild2Type, MVT::i32, ++/*479055*/ OPC_CheckChild3Integer, 1, ++/*479057*/ OPC_CheckChild3Type, MVT::i32, ++/*479059*/ OPC_CheckChild4Integer, 1, ++/*479061*/ OPC_CheckChild4Type, MVT::i32, ++/*479063*/ OPC_MoveChild5, ++/*479064*/ OPC_CheckInteger, 1, ++/*479066*/ OPC_CheckType, MVT::i32, ++/*479068*/ OPC_MoveParent, ++/*479069*/ OPC_MoveChild6, ++/*479070*/ OPC_CheckInteger, 1, ++/*479072*/ OPC_CheckType, MVT::i32, ++/*479074*/ OPC_MoveParent, ++/*479075*/ OPC_MoveChild7, ++/*479076*/ OPC_CheckInteger, 1, ++/*479078*/ OPC_CheckType, MVT::i32, ++/*479080*/ OPC_MoveParent, ++/*479081*/ OPC_CheckType, MVT::v8i32, ++/*479083*/ OPC_MoveParent, ++/*479084*/ OPC_CheckType, MVT::v8i32, ++/*479086*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*479088*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b), LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*479096*/ 0, /*End of Scope*/ ++/*479097*/ /*Scope*/ 92|128,1/*220*/, /*->479319*/ ++/*479099*/ OPC_CheckChild0Same, 1, ++/*479101*/ OPC_MoveChild1, ++/*479102*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*479105*/ OPC_Scope, 105, /*->479212*/ // 2 children in Scope ++/*479107*/ OPC_MoveChild0, ++/*479108*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*479111*/ OPC_CheckChild0Integer, 1, ++/*479113*/ OPC_CheckChild0Type, MVT::i32, ++/*479115*/ OPC_CheckChild1Integer, 1, ++/*479117*/ OPC_CheckChild1Type, MVT::i32, ++/*479119*/ OPC_CheckChild2Integer, 1, ++/*479121*/ OPC_CheckChild2Type, MVT::i32, ++/*479123*/ OPC_CheckChild3Integer, 1, ++/*479125*/ OPC_CheckChild3Type, MVT::i32, ++/*479127*/ OPC_CheckChild4Integer, 1, ++/*479129*/ OPC_CheckChild4Type, MVT::i32, ++/*479131*/ OPC_MoveChild5, ++/*479132*/ OPC_CheckInteger, 1, ++/*479134*/ OPC_CheckType, MVT::i32, ++/*479136*/ OPC_MoveParent, ++/*479137*/ OPC_MoveChild6, ++/*479138*/ OPC_CheckInteger, 1, ++/*479140*/ OPC_CheckType, MVT::i32, ++/*479142*/ OPC_MoveParent, ++/*479143*/ OPC_MoveChild7, ++/*479144*/ OPC_CheckInteger, 1, ++/*479146*/ OPC_CheckType, MVT::i32, ++/*479148*/ OPC_MoveParent, ++/*479149*/ OPC_MoveParent, ++/*479150*/ OPC_CheckChild1Same, 0, ++/*479152*/ OPC_MoveParent, ++/*479153*/ OPC_MoveParent, ++/*479154*/ OPC_MoveParent, ++/*479155*/ OPC_MoveChild1, ++/*479156*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*479159*/ OPC_CheckChild0Integer, 1, ++/*479161*/ OPC_CheckChild0Type, MVT::i32, ++/*479163*/ OPC_CheckChild1Integer, 1, ++/*479165*/ OPC_CheckChild1Type, MVT::i32, ++/*479167*/ OPC_CheckChild2Integer, 1, ++/*479169*/ OPC_CheckChild2Type, MVT::i32, ++/*479171*/ OPC_CheckChild3Integer, 1, ++/*479173*/ OPC_CheckChild3Type, MVT::i32, ++/*479175*/ OPC_CheckChild4Integer, 1, ++/*479177*/ OPC_CheckChild4Type, MVT::i32, ++/*479179*/ OPC_MoveChild5, ++/*479180*/ OPC_CheckInteger, 1, ++/*479182*/ OPC_CheckType, MVT::i32, ++/*479184*/ OPC_MoveParent, ++/*479185*/ OPC_MoveChild6, ++/*479186*/ OPC_CheckInteger, 1, ++/*479188*/ OPC_CheckType, MVT::i32, ++/*479190*/ OPC_MoveParent, ++/*479191*/ OPC_MoveChild7, ++/*479192*/ OPC_CheckInteger, 1, ++/*479194*/ OPC_CheckType, MVT::i32, ++/*479196*/ OPC_MoveParent, ++/*479197*/ OPC_CheckType, MVT::v8i32, ++/*479199*/ OPC_MoveParent, ++/*479200*/ OPC_CheckType, MVT::v8i32, ++/*479202*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*479204*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b), LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*479212*/ /*Scope*/ 105, /*->479318*/ ++/*479213*/ OPC_CheckChild0Same, 0, ++/*479215*/ OPC_MoveChild1, ++/*479216*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*479219*/ OPC_CheckChild0Integer, 1, ++/*479221*/ OPC_CheckChild0Type, MVT::i32, ++/*479223*/ OPC_CheckChild1Integer, 1, ++/*479225*/ OPC_CheckChild1Type, MVT::i32, ++/*479227*/ OPC_CheckChild2Integer, 1, ++/*479229*/ OPC_CheckChild2Type, MVT::i32, ++/*479231*/ OPC_CheckChild3Integer, 1, ++/*479233*/ OPC_CheckChild3Type, MVT::i32, ++/*479235*/ OPC_CheckChild4Integer, 1, ++/*479237*/ OPC_CheckChild4Type, MVT::i32, ++/*479239*/ OPC_MoveChild5, ++/*479240*/ OPC_CheckInteger, 1, ++/*479242*/ OPC_CheckType, MVT::i32, ++/*479244*/ OPC_MoveParent, ++/*479245*/ OPC_MoveChild6, ++/*479246*/ OPC_CheckInteger, 1, ++/*479248*/ OPC_CheckType, MVT::i32, ++/*479250*/ OPC_MoveParent, ++/*479251*/ OPC_MoveChild7, ++/*479252*/ OPC_CheckInteger, 1, ++/*479254*/ OPC_CheckType, MVT::i32, ++/*479256*/ OPC_MoveParent, ++/*479257*/ OPC_MoveParent, ++/*479258*/ OPC_MoveParent, ++/*479259*/ OPC_MoveParent, ++/*479260*/ OPC_MoveParent, ++/*479261*/ OPC_MoveChild1, ++/*479262*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*479265*/ OPC_CheckChild0Integer, 1, ++/*479267*/ OPC_CheckChild0Type, MVT::i32, ++/*479269*/ OPC_CheckChild1Integer, 1, ++/*479271*/ OPC_CheckChild1Type, MVT::i32, ++/*479273*/ OPC_CheckChild2Integer, 1, ++/*479275*/ OPC_CheckChild2Type, MVT::i32, ++/*479277*/ OPC_CheckChild3Integer, 1, ++/*479279*/ OPC_CheckChild3Type, MVT::i32, ++/*479281*/ OPC_CheckChild4Integer, 1, ++/*479283*/ OPC_CheckChild4Type, MVT::i32, ++/*479285*/ OPC_MoveChild5, ++/*479286*/ OPC_CheckInteger, 1, ++/*479288*/ OPC_CheckType, MVT::i32, ++/*479290*/ OPC_MoveParent, ++/*479291*/ OPC_MoveChild6, ++/*479292*/ OPC_CheckInteger, 1, ++/*479294*/ OPC_CheckType, MVT::i32, ++/*479296*/ OPC_MoveParent, ++/*479297*/ OPC_MoveChild7, ++/*479298*/ OPC_CheckInteger, 1, ++/*479300*/ OPC_CheckType, MVT::i32, ++/*479302*/ OPC_MoveParent, ++/*479303*/ OPC_CheckType, MVT::v8i32, ++/*479305*/ OPC_MoveParent, ++/*479306*/ OPC_CheckType, MVT::v8i32, ++/*479308*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*479310*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b), LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*479318*/ 0, /*End of Scope*/ ++/*479319*/ /*Scope*/ 51|128,1/*179*/, /*->479500*/ ++/*479321*/ OPC_MoveChild0, ++/*479322*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*479325*/ OPC_CheckChild0Integer, 1, ++/*479327*/ OPC_CheckChild0Type, MVT::i32, ++/*479329*/ OPC_CheckChild1Integer, 1, ++/*479331*/ OPC_CheckChild1Type, MVT::i32, ++/*479333*/ OPC_CheckChild2Integer, 1, ++/*479335*/ OPC_CheckChild2Type, MVT::i32, ++/*479337*/ OPC_CheckChild3Integer, 1, ++/*479339*/ OPC_CheckChild3Type, MVT::i32, ++/*479341*/ OPC_CheckChild4Integer, 1, ++/*479343*/ OPC_CheckChild4Type, MVT::i32, ++/*479345*/ OPC_MoveChild5, ++/*479346*/ OPC_CheckInteger, 1, ++/*479348*/ OPC_CheckType, MVT::i32, ++/*479350*/ OPC_MoveParent, ++/*479351*/ OPC_MoveChild6, ++/*479352*/ OPC_CheckInteger, 1, ++/*479354*/ OPC_CheckType, MVT::i32, ++/*479356*/ OPC_MoveParent, ++/*479357*/ OPC_MoveChild7, ++/*479358*/ OPC_CheckInteger, 1, ++/*479360*/ OPC_CheckType, MVT::i32, ++/*479362*/ OPC_MoveParent, ++/*479363*/ OPC_MoveParent, ++/*479364*/ OPC_MoveChild1, ++/*479365*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*479368*/ OPC_Scope, 64, /*->479434*/ // 2 children in Scope ++/*479370*/ OPC_CheckChild0Same, 1, ++/*479372*/ OPC_CheckChild1Same, 0, ++/*479374*/ OPC_MoveParent, ++/*479375*/ OPC_MoveParent, ++/*479376*/ OPC_MoveParent, ++/*479377*/ OPC_MoveChild1, ++/*479378*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*479381*/ OPC_CheckChild0Integer, 1, ++/*479383*/ OPC_CheckChild0Type, MVT::i32, ++/*479385*/ OPC_CheckChild1Integer, 1, ++/*479387*/ OPC_CheckChild1Type, MVT::i32, ++/*479389*/ OPC_CheckChild2Integer, 1, ++/*479391*/ OPC_CheckChild2Type, MVT::i32, ++/*479393*/ OPC_CheckChild3Integer, 1, ++/*479395*/ OPC_CheckChild3Type, MVT::i32, ++/*479397*/ OPC_CheckChild4Integer, 1, ++/*479399*/ OPC_CheckChild4Type, MVT::i32, ++/*479401*/ OPC_MoveChild5, ++/*479402*/ OPC_CheckInteger, 1, ++/*479404*/ OPC_CheckType, MVT::i32, ++/*479406*/ OPC_MoveParent, ++/*479407*/ OPC_MoveChild6, ++/*479408*/ OPC_CheckInteger, 1, ++/*479410*/ OPC_CheckType, MVT::i32, ++/*479412*/ OPC_MoveParent, ++/*479413*/ OPC_MoveChild7, ++/*479414*/ OPC_CheckInteger, 1, ++/*479416*/ OPC_CheckType, MVT::i32, ++/*479418*/ OPC_MoveParent, ++/*479419*/ OPC_CheckType, MVT::v8i32, ++/*479421*/ OPC_MoveParent, ++/*479422*/ OPC_CheckType, MVT::v8i32, ++/*479424*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*479426*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b), LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*479434*/ /*Scope*/ 64, /*->479499*/ ++/*479435*/ OPC_CheckChild0Same, 0, ++/*479437*/ OPC_CheckChild1Same, 1, ++/*479439*/ OPC_MoveParent, ++/*479440*/ OPC_MoveParent, ++/*479441*/ OPC_MoveParent, ++/*479442*/ OPC_MoveChild1, ++/*479443*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*479446*/ OPC_CheckChild0Integer, 1, ++/*479448*/ OPC_CheckChild0Type, MVT::i32, ++/*479450*/ OPC_CheckChild1Integer, 1, ++/*479452*/ OPC_CheckChild1Type, MVT::i32, ++/*479454*/ OPC_CheckChild2Integer, 1, ++/*479456*/ OPC_CheckChild2Type, MVT::i32, ++/*479458*/ OPC_CheckChild3Integer, 1, ++/*479460*/ OPC_CheckChild3Type, MVT::i32, ++/*479462*/ OPC_CheckChild4Integer, 1, ++/*479464*/ OPC_CheckChild4Type, MVT::i32, ++/*479466*/ OPC_MoveChild5, ++/*479467*/ OPC_CheckInteger, 1, ++/*479469*/ OPC_CheckType, MVT::i32, ++/*479471*/ OPC_MoveParent, ++/*479472*/ OPC_MoveChild6, ++/*479473*/ OPC_CheckInteger, 1, ++/*479475*/ OPC_CheckType, MVT::i32, ++/*479477*/ OPC_MoveParent, ++/*479478*/ OPC_MoveChild7, ++/*479479*/ OPC_CheckInteger, 1, ++/*479481*/ OPC_CheckType, MVT::i32, ++/*479483*/ OPC_MoveParent, ++/*479484*/ OPC_CheckType, MVT::v8i32, ++/*479486*/ OPC_MoveParent, ++/*479487*/ OPC_CheckType, MVT::v8i32, ++/*479489*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*479491*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b), LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*479499*/ 0, /*End of Scope*/ ++/*479500*/ 0, /*End of Scope*/ ++/*479501*/ /*Scope*/ 79|128,31/*4047*/, /*->483550*/ ++/*479503*/ OPC_RecordChild0, // #0 = $b ++/*479504*/ OPC_Scope, 99|128,10/*1379*/, /*->480886*/ // 2 children in Scope ++/*479507*/ OPC_MoveChild1, ++/*479508*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*479511*/ OPC_CheckChild0Integer, 1, ++/*479513*/ OPC_CheckChild0Type, MVT::i32, ++/*479515*/ OPC_CheckChild1Integer, 1, ++/*479517*/ OPC_CheckChild1Type, MVT::i32, ++/*479519*/ OPC_CheckChild2Integer, 1, ++/*479521*/ OPC_CheckChild2Type, MVT::i32, ++/*479523*/ OPC_CheckChild3Integer, 1, ++/*479525*/ OPC_CheckChild3Type, MVT::i32, ++/*479527*/ OPC_CheckChild4Integer, 1, ++/*479529*/ OPC_CheckChild4Type, MVT::i32, ++/*479531*/ OPC_MoveChild5, ++/*479532*/ OPC_CheckInteger, 1, ++/*479534*/ OPC_CheckType, MVT::i32, ++/*479536*/ OPC_MoveParent, ++/*479537*/ OPC_MoveChild6, ++/*479538*/ OPC_CheckInteger, 1, ++/*479540*/ OPC_CheckType, MVT::i32, ++/*479542*/ OPC_MoveParent, ++/*479543*/ OPC_MoveChild7, ++/*479544*/ OPC_CheckInteger, 1, ++/*479546*/ OPC_CheckType, MVT::i32, ++/*479548*/ OPC_MoveParent, ++/*479549*/ OPC_MoveParent, ++/*479550*/ OPC_MoveParent, ++/*479551*/ OPC_RecordChild1, // #1 = $a ++/*479552*/ OPC_MoveParent, ++/*479553*/ OPC_MoveChild1, ++/*479554*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*479557*/ OPC_CheckChild0Integer, 31, ++/*479559*/ OPC_CheckChild0Type, MVT::i32, ++/*479561*/ OPC_CheckChild1Integer, 31, ++/*479563*/ OPC_CheckChild1Type, MVT::i32, ++/*479565*/ OPC_CheckChild2Integer, 31, ++/*479567*/ OPC_CheckChild2Type, MVT::i32, ++/*479569*/ OPC_CheckChild3Integer, 31, ++/*479571*/ OPC_CheckChild3Type, MVT::i32, ++/*479573*/ OPC_CheckChild4Integer, 31, ++/*479575*/ OPC_CheckChild4Type, MVT::i32, ++/*479577*/ OPC_MoveChild5, ++/*479578*/ OPC_CheckInteger, 31, ++/*479580*/ OPC_CheckType, MVT::i32, ++/*479582*/ OPC_MoveParent, ++/*479583*/ OPC_MoveChild6, ++/*479584*/ OPC_CheckInteger, 31, ++/*479586*/ OPC_CheckType, MVT::i32, ++/*479588*/ OPC_MoveParent, ++/*479589*/ OPC_MoveChild7, ++/*479590*/ OPC_CheckInteger, 31, ++/*479592*/ OPC_CheckType, MVT::i32, ++/*479594*/ OPC_MoveParent, ++/*479595*/ OPC_CheckType, MVT::v8i32, ++/*479597*/ OPC_MoveParent, ++/*479598*/ OPC_MoveParent, ++/*479599*/ OPC_MoveChild1, ++/*479600*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*479603*/ OPC_Scope, 14|128,5/*654*/, /*->480260*/ // 4 children in Scope ++/*479606*/ OPC_MoveChild0, ++/*479607*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*479610*/ OPC_Scope, 107, /*->479719*/ // 6 children in Scope ++/*479612*/ OPC_MoveChild0, ++/*479613*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*479616*/ OPC_CheckChild0Integer, 1, ++/*479618*/ OPC_CheckChild0Type, MVT::i32, ++/*479620*/ OPC_CheckChild1Integer, 1, ++/*479622*/ OPC_CheckChild1Type, MVT::i32, ++/*479624*/ OPC_CheckChild2Integer, 1, ++/*479626*/ OPC_CheckChild2Type, MVT::i32, ++/*479628*/ OPC_CheckChild3Integer, 1, ++/*479630*/ OPC_CheckChild3Type, MVT::i32, ++/*479632*/ OPC_CheckChild4Integer, 1, ++/*479634*/ OPC_CheckChild4Type, MVT::i32, ++/*479636*/ OPC_MoveChild5, ++/*479637*/ OPC_CheckInteger, 1, ++/*479639*/ OPC_CheckType, MVT::i32, ++/*479641*/ OPC_MoveParent, ++/*479642*/ OPC_MoveChild6, ++/*479643*/ OPC_CheckInteger, 1, ++/*479645*/ OPC_CheckType, MVT::i32, ++/*479647*/ OPC_MoveParent, ++/*479648*/ OPC_MoveChild7, ++/*479649*/ OPC_CheckInteger, 1, ++/*479651*/ OPC_CheckType, MVT::i32, ++/*479653*/ OPC_MoveParent, ++/*479654*/ OPC_MoveParent, ++/*479655*/ OPC_CheckChild1Same, 1, ++/*479657*/ OPC_MoveParent, ++/*479658*/ OPC_CheckChild1Same, 0, ++/*479660*/ OPC_MoveParent, ++/*479661*/ OPC_MoveParent, ++/*479662*/ OPC_MoveChild1, ++/*479663*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*479666*/ OPC_CheckChild0Integer, 1, ++/*479668*/ OPC_CheckChild0Type, MVT::i32, ++/*479670*/ OPC_CheckChild1Integer, 1, ++/*479672*/ OPC_CheckChild1Type, MVT::i32, ++/*479674*/ OPC_CheckChild2Integer, 1, ++/*479676*/ OPC_CheckChild2Type, MVT::i32, ++/*479678*/ OPC_CheckChild3Integer, 1, ++/*479680*/ OPC_CheckChild3Type, MVT::i32, ++/*479682*/ OPC_CheckChild4Integer, 1, ++/*479684*/ OPC_CheckChild4Type, MVT::i32, ++/*479686*/ OPC_MoveChild5, ++/*479687*/ OPC_CheckInteger, 1, ++/*479689*/ OPC_CheckType, MVT::i32, ++/*479691*/ OPC_MoveParent, ++/*479692*/ OPC_MoveChild6, ++/*479693*/ OPC_CheckInteger, 1, ++/*479695*/ OPC_CheckType, MVT::i32, ++/*479697*/ OPC_MoveParent, ++/*479698*/ OPC_MoveChild7, ++/*479699*/ OPC_CheckInteger, 1, ++/*479701*/ OPC_CheckType, MVT::i32, ++/*479703*/ OPC_MoveParent, ++/*479704*/ OPC_CheckType, MVT::v8i32, ++/*479706*/ OPC_MoveParent, ++/*479707*/ OPC_CheckType, MVT::v8i32, ++/*479709*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*479711*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a), LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*479719*/ /*Scope*/ 107, /*->479827*/ ++/*479720*/ OPC_CheckChild0Same, 1, ++/*479722*/ OPC_MoveChild1, ++/*479723*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*479726*/ OPC_CheckChild0Integer, 1, ++/*479728*/ OPC_CheckChild0Type, MVT::i32, ++/*479730*/ OPC_CheckChild1Integer, 1, ++/*479732*/ OPC_CheckChild1Type, MVT::i32, ++/*479734*/ OPC_CheckChild2Integer, 1, ++/*479736*/ OPC_CheckChild2Type, MVT::i32, ++/*479738*/ OPC_CheckChild3Integer, 1, ++/*479740*/ OPC_CheckChild3Type, MVT::i32, ++/*479742*/ OPC_CheckChild4Integer, 1, ++/*479744*/ OPC_CheckChild4Type, MVT::i32, ++/*479746*/ OPC_MoveChild5, ++/*479747*/ OPC_CheckInteger, 1, ++/*479749*/ OPC_CheckType, MVT::i32, ++/*479751*/ OPC_MoveParent, ++/*479752*/ OPC_MoveChild6, ++/*479753*/ OPC_CheckInteger, 1, ++/*479755*/ OPC_CheckType, MVT::i32, ++/*479757*/ OPC_MoveParent, ++/*479758*/ OPC_MoveChild7, ++/*479759*/ OPC_CheckInteger, 1, ++/*479761*/ OPC_CheckType, MVT::i32, ++/*479763*/ OPC_MoveParent, ++/*479764*/ OPC_MoveParent, ++/*479765*/ OPC_MoveParent, ++/*479766*/ OPC_CheckChild1Same, 0, ++/*479768*/ OPC_MoveParent, ++/*479769*/ OPC_MoveParent, ++/*479770*/ OPC_MoveChild1, ++/*479771*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*479774*/ OPC_CheckChild0Integer, 1, ++/*479776*/ OPC_CheckChild0Type, MVT::i32, ++/*479778*/ OPC_CheckChild1Integer, 1, ++/*479780*/ OPC_CheckChild1Type, MVT::i32, ++/*479782*/ OPC_CheckChild2Integer, 1, ++/*479784*/ OPC_CheckChild2Type, MVT::i32, ++/*479786*/ OPC_CheckChild3Integer, 1, ++/*479788*/ OPC_CheckChild3Type, MVT::i32, ++/*479790*/ OPC_CheckChild4Integer, 1, ++/*479792*/ OPC_CheckChild4Type, MVT::i32, ++/*479794*/ OPC_MoveChild5, ++/*479795*/ OPC_CheckInteger, 1, ++/*479797*/ OPC_CheckType, MVT::i32, ++/*479799*/ OPC_MoveParent, ++/*479800*/ OPC_MoveChild6, ++/*479801*/ OPC_CheckInteger, 1, ++/*479803*/ OPC_CheckType, MVT::i32, ++/*479805*/ OPC_MoveParent, ++/*479806*/ OPC_MoveChild7, ++/*479807*/ OPC_CheckInteger, 1, ++/*479809*/ OPC_CheckType, MVT::i32, ++/*479811*/ OPC_MoveParent, ++/*479812*/ OPC_CheckType, MVT::v8i32, ++/*479814*/ OPC_MoveParent, ++/*479815*/ OPC_CheckType, MVT::v8i32, ++/*479817*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*479819*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*479827*/ /*Scope*/ 107, /*->479935*/ ++/*479828*/ OPC_MoveChild0, ++/*479829*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*479832*/ OPC_CheckChild0Integer, 1, ++/*479834*/ OPC_CheckChild0Type, MVT::i32, ++/*479836*/ OPC_CheckChild1Integer, 1, ++/*479838*/ OPC_CheckChild1Type, MVT::i32, ++/*479840*/ OPC_CheckChild2Integer, 1, ++/*479842*/ OPC_CheckChild2Type, MVT::i32, ++/*479844*/ OPC_CheckChild3Integer, 1, ++/*479846*/ OPC_CheckChild3Type, MVT::i32, ++/*479848*/ OPC_CheckChild4Integer, 1, ++/*479850*/ OPC_CheckChild4Type, MVT::i32, ++/*479852*/ OPC_MoveChild5, ++/*479853*/ OPC_CheckInteger, 1, ++/*479855*/ OPC_CheckType, MVT::i32, ++/*479857*/ OPC_MoveParent, ++/*479858*/ OPC_MoveChild6, ++/*479859*/ OPC_CheckInteger, 1, ++/*479861*/ OPC_CheckType, MVT::i32, ++/*479863*/ OPC_MoveParent, ++/*479864*/ OPC_MoveChild7, ++/*479865*/ OPC_CheckInteger, 1, ++/*479867*/ OPC_CheckType, MVT::i32, ++/*479869*/ OPC_MoveParent, ++/*479870*/ OPC_MoveParent, ++/*479871*/ OPC_CheckChild1Same, 0, ++/*479873*/ OPC_MoveParent, ++/*479874*/ OPC_CheckChild1Same, 1, ++/*479876*/ OPC_MoveParent, ++/*479877*/ OPC_MoveParent, ++/*479878*/ OPC_MoveChild1, ++/*479879*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*479882*/ OPC_CheckChild0Integer, 1, ++/*479884*/ OPC_CheckChild0Type, MVT::i32, ++/*479886*/ OPC_CheckChild1Integer, 1, ++/*479888*/ OPC_CheckChild1Type, MVT::i32, ++/*479890*/ OPC_CheckChild2Integer, 1, ++/*479892*/ OPC_CheckChild2Type, MVT::i32, ++/*479894*/ OPC_CheckChild3Integer, 1, ++/*479896*/ OPC_CheckChild3Type, MVT::i32, ++/*479898*/ OPC_CheckChild4Integer, 1, ++/*479900*/ OPC_CheckChild4Type, MVT::i32, ++/*479902*/ OPC_MoveChild5, ++/*479903*/ OPC_CheckInteger, 1, ++/*479905*/ OPC_CheckType, MVT::i32, ++/*479907*/ OPC_MoveParent, ++/*479908*/ OPC_MoveChild6, ++/*479909*/ OPC_CheckInteger, 1, ++/*479911*/ OPC_CheckType, MVT::i32, ++/*479913*/ OPC_MoveParent, ++/*479914*/ OPC_MoveChild7, ++/*479915*/ OPC_CheckInteger, 1, ++/*479917*/ OPC_CheckType, MVT::i32, ++/*479919*/ OPC_MoveParent, ++/*479920*/ OPC_CheckType, MVT::v8i32, ++/*479922*/ OPC_MoveParent, ++/*479923*/ OPC_CheckType, MVT::v8i32, ++/*479925*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*479927*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b), LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*479935*/ /*Scope*/ 107, /*->480043*/ ++/*479936*/ OPC_CheckChild0Same, 0, ++/*479938*/ OPC_MoveChild1, ++/*479939*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*479942*/ OPC_CheckChild0Integer, 1, ++/*479944*/ OPC_CheckChild0Type, MVT::i32, ++/*479946*/ OPC_CheckChild1Integer, 1, ++/*479948*/ OPC_CheckChild1Type, MVT::i32, ++/*479950*/ OPC_CheckChild2Integer, 1, ++/*479952*/ OPC_CheckChild2Type, MVT::i32, ++/*479954*/ OPC_CheckChild3Integer, 1, ++/*479956*/ OPC_CheckChild3Type, MVT::i32, ++/*479958*/ OPC_CheckChild4Integer, 1, ++/*479960*/ OPC_CheckChild4Type, MVT::i32, ++/*479962*/ OPC_MoveChild5, ++/*479963*/ OPC_CheckInteger, 1, ++/*479965*/ OPC_CheckType, MVT::i32, ++/*479967*/ OPC_MoveParent, ++/*479968*/ OPC_MoveChild6, ++/*479969*/ OPC_CheckInteger, 1, ++/*479971*/ OPC_CheckType, MVT::i32, ++/*479973*/ OPC_MoveParent, ++/*479974*/ OPC_MoveChild7, ++/*479975*/ OPC_CheckInteger, 1, ++/*479977*/ OPC_CheckType, MVT::i32, ++/*479979*/ OPC_MoveParent, ++/*479980*/ OPC_MoveParent, ++/*479981*/ OPC_MoveParent, ++/*479982*/ OPC_CheckChild1Same, 1, ++/*479984*/ OPC_MoveParent, ++/*479985*/ OPC_MoveParent, ++/*479986*/ OPC_MoveChild1, ++/*479987*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*479990*/ OPC_CheckChild0Integer, 1, ++/*479992*/ OPC_CheckChild0Type, MVT::i32, ++/*479994*/ OPC_CheckChild1Integer, 1, ++/*479996*/ OPC_CheckChild1Type, MVT::i32, ++/*479998*/ OPC_CheckChild2Integer, 1, ++/*480000*/ OPC_CheckChild2Type, MVT::i32, ++/*480002*/ OPC_CheckChild3Integer, 1, ++/*480004*/ OPC_CheckChild3Type, MVT::i32, ++/*480006*/ OPC_CheckChild4Integer, 1, ++/*480008*/ OPC_CheckChild4Type, MVT::i32, ++/*480010*/ OPC_MoveChild5, ++/*480011*/ OPC_CheckInteger, 1, ++/*480013*/ OPC_CheckType, MVT::i32, ++/*480015*/ OPC_MoveParent, ++/*480016*/ OPC_MoveChild6, ++/*480017*/ OPC_CheckInteger, 1, ++/*480019*/ OPC_CheckType, MVT::i32, ++/*480021*/ OPC_MoveParent, ++/*480022*/ OPC_MoveChild7, ++/*480023*/ OPC_CheckInteger, 1, ++/*480025*/ OPC_CheckType, MVT::i32, ++/*480027*/ OPC_MoveParent, ++/*480028*/ OPC_CheckType, MVT::v8i32, ++/*480030*/ OPC_MoveParent, ++/*480031*/ OPC_CheckType, MVT::v8i32, ++/*480033*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*480035*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*480043*/ /*Scope*/ 107, /*->480151*/ ++/*480044*/ OPC_CheckChild0Same, 1, ++/*480046*/ OPC_CheckChild1Same, 0, ++/*480048*/ OPC_MoveParent, ++/*480049*/ OPC_MoveChild1, ++/*480050*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*480053*/ OPC_CheckChild0Integer, 1, ++/*480055*/ OPC_CheckChild0Type, MVT::i32, ++/*480057*/ OPC_CheckChild1Integer, 1, ++/*480059*/ OPC_CheckChild1Type, MVT::i32, ++/*480061*/ OPC_CheckChild2Integer, 1, ++/*480063*/ OPC_CheckChild2Type, MVT::i32, ++/*480065*/ OPC_CheckChild3Integer, 1, ++/*480067*/ OPC_CheckChild3Type, MVT::i32, ++/*480069*/ OPC_CheckChild4Integer, 1, ++/*480071*/ OPC_CheckChild4Type, MVT::i32, ++/*480073*/ OPC_MoveChild5, ++/*480074*/ OPC_CheckInteger, 1, ++/*480076*/ OPC_CheckType, MVT::i32, ++/*480078*/ OPC_MoveParent, ++/*480079*/ OPC_MoveChild6, ++/*480080*/ OPC_CheckInteger, 1, ++/*480082*/ OPC_CheckType, MVT::i32, ++/*480084*/ OPC_MoveParent, ++/*480085*/ OPC_MoveChild7, ++/*480086*/ OPC_CheckInteger, 1, ++/*480088*/ OPC_CheckType, MVT::i32, ++/*480090*/ OPC_MoveParent, ++/*480091*/ OPC_MoveParent, ++/*480092*/ OPC_MoveParent, ++/*480093*/ OPC_MoveParent, ++/*480094*/ OPC_MoveChild1, ++/*480095*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*480098*/ OPC_CheckChild0Integer, 1, ++/*480100*/ OPC_CheckChild0Type, MVT::i32, ++/*480102*/ OPC_CheckChild1Integer, 1, ++/*480104*/ OPC_CheckChild1Type, MVT::i32, ++/*480106*/ OPC_CheckChild2Integer, 1, ++/*480108*/ OPC_CheckChild2Type, MVT::i32, ++/*480110*/ OPC_CheckChild3Integer, 1, ++/*480112*/ OPC_CheckChild3Type, MVT::i32, ++/*480114*/ OPC_CheckChild4Integer, 1, ++/*480116*/ OPC_CheckChild4Type, MVT::i32, ++/*480118*/ OPC_MoveChild5, ++/*480119*/ OPC_CheckInteger, 1, ++/*480121*/ OPC_CheckType, MVT::i32, ++/*480123*/ OPC_MoveParent, ++/*480124*/ OPC_MoveChild6, ++/*480125*/ OPC_CheckInteger, 1, ++/*480127*/ OPC_CheckType, MVT::i32, ++/*480129*/ OPC_MoveParent, ++/*480130*/ OPC_MoveChild7, ++/*480131*/ OPC_CheckInteger, 1, ++/*480133*/ OPC_CheckType, MVT::i32, ++/*480135*/ OPC_MoveParent, ++/*480136*/ OPC_CheckType, MVT::v8i32, ++/*480138*/ OPC_MoveParent, ++/*480139*/ OPC_CheckType, MVT::v8i32, ++/*480141*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*480143*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*480151*/ /*Scope*/ 107, /*->480259*/ ++/*480152*/ OPC_CheckChild0Same, 0, ++/*480154*/ OPC_CheckChild1Same, 1, ++/*480156*/ OPC_MoveParent, ++/*480157*/ OPC_MoveChild1, ++/*480158*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*480161*/ OPC_CheckChild0Integer, 1, ++/*480163*/ OPC_CheckChild0Type, MVT::i32, ++/*480165*/ OPC_CheckChild1Integer, 1, ++/*480167*/ OPC_CheckChild1Type, MVT::i32, ++/*480169*/ OPC_CheckChild2Integer, 1, ++/*480171*/ OPC_CheckChild2Type, MVT::i32, ++/*480173*/ OPC_CheckChild3Integer, 1, ++/*480175*/ OPC_CheckChild3Type, MVT::i32, ++/*480177*/ OPC_CheckChild4Integer, 1, ++/*480179*/ OPC_CheckChild4Type, MVT::i32, ++/*480181*/ OPC_MoveChild5, ++/*480182*/ OPC_CheckInteger, 1, ++/*480184*/ OPC_CheckType, MVT::i32, ++/*480186*/ OPC_MoveParent, ++/*480187*/ OPC_MoveChild6, ++/*480188*/ OPC_CheckInteger, 1, ++/*480190*/ OPC_CheckType, MVT::i32, ++/*480192*/ OPC_MoveParent, ++/*480193*/ OPC_MoveChild7, ++/*480194*/ OPC_CheckInteger, 1, ++/*480196*/ OPC_CheckType, MVT::i32, ++/*480198*/ OPC_MoveParent, ++/*480199*/ OPC_MoveParent, ++/*480200*/ OPC_MoveParent, ++/*480201*/ OPC_MoveParent, ++/*480202*/ OPC_MoveChild1, ++/*480203*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*480206*/ OPC_CheckChild0Integer, 1, ++/*480208*/ OPC_CheckChild0Type, MVT::i32, ++/*480210*/ OPC_CheckChild1Integer, 1, ++/*480212*/ OPC_CheckChild1Type, MVT::i32, ++/*480214*/ OPC_CheckChild2Integer, 1, ++/*480216*/ OPC_CheckChild2Type, MVT::i32, ++/*480218*/ OPC_CheckChild3Integer, 1, ++/*480220*/ OPC_CheckChild3Type, MVT::i32, ++/*480222*/ OPC_CheckChild4Integer, 1, ++/*480224*/ OPC_CheckChild4Type, MVT::i32, ++/*480226*/ OPC_MoveChild5, ++/*480227*/ OPC_CheckInteger, 1, ++/*480229*/ OPC_CheckType, MVT::i32, ++/*480231*/ OPC_MoveParent, ++/*480232*/ OPC_MoveChild6, ++/*480233*/ OPC_CheckInteger, 1, ++/*480235*/ OPC_CheckType, MVT::i32, ++/*480237*/ OPC_MoveParent, ++/*480238*/ OPC_MoveChild7, ++/*480239*/ OPC_CheckInteger, 1, ++/*480241*/ OPC_CheckType, MVT::i32, ++/*480243*/ OPC_MoveParent, ++/*480244*/ OPC_CheckType, MVT::v8i32, ++/*480246*/ OPC_MoveParent, ++/*480247*/ OPC_CheckType, MVT::v8i32, ++/*480249*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*480251*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*480259*/ 0, /*End of Scope*/ ++/*480260*/ /*Scope*/ 92|128,1/*220*/, /*->480482*/ ++/*480262*/ OPC_CheckChild0Same, 0, ++/*480264*/ OPC_MoveChild1, ++/*480265*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*480268*/ OPC_Scope, 105, /*->480375*/ // 2 children in Scope ++/*480270*/ OPC_MoveChild0, ++/*480271*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*480274*/ OPC_CheckChild0Integer, 1, ++/*480276*/ OPC_CheckChild0Type, MVT::i32, ++/*480278*/ OPC_CheckChild1Integer, 1, ++/*480280*/ OPC_CheckChild1Type, MVT::i32, ++/*480282*/ OPC_CheckChild2Integer, 1, ++/*480284*/ OPC_CheckChild2Type, MVT::i32, ++/*480286*/ OPC_CheckChild3Integer, 1, ++/*480288*/ OPC_CheckChild3Type, MVT::i32, ++/*480290*/ OPC_CheckChild4Integer, 1, ++/*480292*/ OPC_CheckChild4Type, MVT::i32, ++/*480294*/ OPC_MoveChild5, ++/*480295*/ OPC_CheckInteger, 1, ++/*480297*/ OPC_CheckType, MVT::i32, ++/*480299*/ OPC_MoveParent, ++/*480300*/ OPC_MoveChild6, ++/*480301*/ OPC_CheckInteger, 1, ++/*480303*/ OPC_CheckType, MVT::i32, ++/*480305*/ OPC_MoveParent, ++/*480306*/ OPC_MoveChild7, ++/*480307*/ OPC_CheckInteger, 1, ++/*480309*/ OPC_CheckType, MVT::i32, ++/*480311*/ OPC_MoveParent, ++/*480312*/ OPC_MoveParent, ++/*480313*/ OPC_CheckChild1Same, 1, ++/*480315*/ OPC_MoveParent, ++/*480316*/ OPC_MoveParent, ++/*480317*/ OPC_MoveParent, ++/*480318*/ OPC_MoveChild1, ++/*480319*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*480322*/ OPC_CheckChild0Integer, 1, ++/*480324*/ OPC_CheckChild0Type, MVT::i32, ++/*480326*/ OPC_CheckChild1Integer, 1, ++/*480328*/ OPC_CheckChild1Type, MVT::i32, ++/*480330*/ OPC_CheckChild2Integer, 1, ++/*480332*/ OPC_CheckChild2Type, MVT::i32, ++/*480334*/ OPC_CheckChild3Integer, 1, ++/*480336*/ OPC_CheckChild3Type, MVT::i32, ++/*480338*/ OPC_CheckChild4Integer, 1, ++/*480340*/ OPC_CheckChild4Type, MVT::i32, ++/*480342*/ OPC_MoveChild5, ++/*480343*/ OPC_CheckInteger, 1, ++/*480345*/ OPC_CheckType, MVT::i32, ++/*480347*/ OPC_MoveParent, ++/*480348*/ OPC_MoveChild6, ++/*480349*/ OPC_CheckInteger, 1, ++/*480351*/ OPC_CheckType, MVT::i32, ++/*480353*/ OPC_MoveParent, ++/*480354*/ OPC_MoveChild7, ++/*480355*/ OPC_CheckInteger, 1, ++/*480357*/ OPC_CheckType, MVT::i32, ++/*480359*/ OPC_MoveParent, ++/*480360*/ OPC_CheckType, MVT::v8i32, ++/*480362*/ OPC_MoveParent, ++/*480363*/ OPC_CheckType, MVT::v8i32, ++/*480365*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*480367*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*480375*/ /*Scope*/ 105, /*->480481*/ ++/*480376*/ OPC_CheckChild0Same, 1, ++/*480378*/ OPC_MoveChild1, ++/*480379*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*480382*/ OPC_CheckChild0Integer, 1, ++/*480384*/ OPC_CheckChild0Type, MVT::i32, ++/*480386*/ OPC_CheckChild1Integer, 1, ++/*480388*/ OPC_CheckChild1Type, MVT::i32, ++/*480390*/ OPC_CheckChild2Integer, 1, ++/*480392*/ OPC_CheckChild2Type, MVT::i32, ++/*480394*/ OPC_CheckChild3Integer, 1, ++/*480396*/ OPC_CheckChild3Type, MVT::i32, ++/*480398*/ OPC_CheckChild4Integer, 1, ++/*480400*/ OPC_CheckChild4Type, MVT::i32, ++/*480402*/ OPC_MoveChild5, ++/*480403*/ OPC_CheckInteger, 1, ++/*480405*/ OPC_CheckType, MVT::i32, ++/*480407*/ OPC_MoveParent, ++/*480408*/ OPC_MoveChild6, ++/*480409*/ OPC_CheckInteger, 1, ++/*480411*/ OPC_CheckType, MVT::i32, ++/*480413*/ OPC_MoveParent, ++/*480414*/ OPC_MoveChild7, ++/*480415*/ OPC_CheckInteger, 1, ++/*480417*/ OPC_CheckType, MVT::i32, ++/*480419*/ OPC_MoveParent, ++/*480420*/ OPC_MoveParent, ++/*480421*/ OPC_MoveParent, ++/*480422*/ OPC_MoveParent, ++/*480423*/ OPC_MoveParent, ++/*480424*/ OPC_MoveChild1, ++/*480425*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*480428*/ OPC_CheckChild0Integer, 1, ++/*480430*/ OPC_CheckChild0Type, MVT::i32, ++/*480432*/ OPC_CheckChild1Integer, 1, ++/*480434*/ OPC_CheckChild1Type, MVT::i32, ++/*480436*/ OPC_CheckChild2Integer, 1, ++/*480438*/ OPC_CheckChild2Type, MVT::i32, ++/*480440*/ OPC_CheckChild3Integer, 1, ++/*480442*/ OPC_CheckChild3Type, MVT::i32, ++/*480444*/ OPC_CheckChild4Integer, 1, ++/*480446*/ OPC_CheckChild4Type, MVT::i32, ++/*480448*/ OPC_MoveChild5, ++/*480449*/ OPC_CheckInteger, 1, ++/*480451*/ OPC_CheckType, MVT::i32, ++/*480453*/ OPC_MoveParent, ++/*480454*/ OPC_MoveChild6, ++/*480455*/ OPC_CheckInteger, 1, ++/*480457*/ OPC_CheckType, MVT::i32, ++/*480459*/ OPC_MoveParent, ++/*480460*/ OPC_MoveChild7, ++/*480461*/ OPC_CheckInteger, 1, ++/*480463*/ OPC_CheckType, MVT::i32, ++/*480465*/ OPC_MoveParent, ++/*480466*/ OPC_CheckType, MVT::v8i32, ++/*480468*/ OPC_MoveParent, ++/*480469*/ OPC_CheckType, MVT::v8i32, ++/*480471*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*480473*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*480481*/ 0, /*End of Scope*/ ++/*480482*/ /*Scope*/ 92|128,1/*220*/, /*->480704*/ ++/*480484*/ OPC_CheckChild0Same, 1, ++/*480486*/ OPC_MoveChild1, ++/*480487*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*480490*/ OPC_Scope, 105, /*->480597*/ // 2 children in Scope ++/*480492*/ OPC_MoveChild0, ++/*480493*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*480496*/ OPC_CheckChild0Integer, 1, ++/*480498*/ OPC_CheckChild0Type, MVT::i32, ++/*480500*/ OPC_CheckChild1Integer, 1, ++/*480502*/ OPC_CheckChild1Type, MVT::i32, ++/*480504*/ OPC_CheckChild2Integer, 1, ++/*480506*/ OPC_CheckChild2Type, MVT::i32, ++/*480508*/ OPC_CheckChild3Integer, 1, ++/*480510*/ OPC_CheckChild3Type, MVT::i32, ++/*480512*/ OPC_CheckChild4Integer, 1, ++/*480514*/ OPC_CheckChild4Type, MVT::i32, ++/*480516*/ OPC_MoveChild5, ++/*480517*/ OPC_CheckInteger, 1, ++/*480519*/ OPC_CheckType, MVT::i32, ++/*480521*/ OPC_MoveParent, ++/*480522*/ OPC_MoveChild6, ++/*480523*/ OPC_CheckInteger, 1, ++/*480525*/ OPC_CheckType, MVT::i32, ++/*480527*/ OPC_MoveParent, ++/*480528*/ OPC_MoveChild7, ++/*480529*/ OPC_CheckInteger, 1, ++/*480531*/ OPC_CheckType, MVT::i32, ++/*480533*/ OPC_MoveParent, ++/*480534*/ OPC_MoveParent, ++/*480535*/ OPC_CheckChild1Same, 0, ++/*480537*/ OPC_MoveParent, ++/*480538*/ OPC_MoveParent, ++/*480539*/ OPC_MoveParent, ++/*480540*/ OPC_MoveChild1, ++/*480541*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*480544*/ OPC_CheckChild0Integer, 1, ++/*480546*/ OPC_CheckChild0Type, MVT::i32, ++/*480548*/ OPC_CheckChild1Integer, 1, ++/*480550*/ OPC_CheckChild1Type, MVT::i32, ++/*480552*/ OPC_CheckChild2Integer, 1, ++/*480554*/ OPC_CheckChild2Type, MVT::i32, ++/*480556*/ OPC_CheckChild3Integer, 1, ++/*480558*/ OPC_CheckChild3Type, MVT::i32, ++/*480560*/ OPC_CheckChild4Integer, 1, ++/*480562*/ OPC_CheckChild4Type, MVT::i32, ++/*480564*/ OPC_MoveChild5, ++/*480565*/ OPC_CheckInteger, 1, ++/*480567*/ OPC_CheckType, MVT::i32, ++/*480569*/ OPC_MoveParent, ++/*480570*/ OPC_MoveChild6, ++/*480571*/ OPC_CheckInteger, 1, ++/*480573*/ OPC_CheckType, MVT::i32, ++/*480575*/ OPC_MoveParent, ++/*480576*/ OPC_MoveChild7, ++/*480577*/ OPC_CheckInteger, 1, ++/*480579*/ OPC_CheckType, MVT::i32, ++/*480581*/ OPC_MoveParent, ++/*480582*/ OPC_CheckType, MVT::v8i32, ++/*480584*/ OPC_MoveParent, ++/*480585*/ OPC_CheckType, MVT::v8i32, ++/*480587*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*480589*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*480597*/ /*Scope*/ 105, /*->480703*/ ++/*480598*/ OPC_CheckChild0Same, 0, ++/*480600*/ OPC_MoveChild1, ++/*480601*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*480604*/ OPC_CheckChild0Integer, 1, ++/*480606*/ OPC_CheckChild0Type, MVT::i32, ++/*480608*/ OPC_CheckChild1Integer, 1, ++/*480610*/ OPC_CheckChild1Type, MVT::i32, ++/*480612*/ OPC_CheckChild2Integer, 1, ++/*480614*/ OPC_CheckChild2Type, MVT::i32, ++/*480616*/ OPC_CheckChild3Integer, 1, ++/*480618*/ OPC_CheckChild3Type, MVT::i32, ++/*480620*/ OPC_CheckChild4Integer, 1, ++/*480622*/ OPC_CheckChild4Type, MVT::i32, ++/*480624*/ OPC_MoveChild5, ++/*480625*/ OPC_CheckInteger, 1, ++/*480627*/ OPC_CheckType, MVT::i32, ++/*480629*/ OPC_MoveParent, ++/*480630*/ OPC_MoveChild6, ++/*480631*/ OPC_CheckInteger, 1, ++/*480633*/ OPC_CheckType, MVT::i32, ++/*480635*/ OPC_MoveParent, ++/*480636*/ OPC_MoveChild7, ++/*480637*/ OPC_CheckInteger, 1, ++/*480639*/ OPC_CheckType, MVT::i32, ++/*480641*/ OPC_MoveParent, ++/*480642*/ OPC_MoveParent, ++/*480643*/ OPC_MoveParent, ++/*480644*/ OPC_MoveParent, ++/*480645*/ OPC_MoveParent, ++/*480646*/ OPC_MoveChild1, ++/*480647*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*480650*/ OPC_CheckChild0Integer, 1, ++/*480652*/ OPC_CheckChild0Type, MVT::i32, ++/*480654*/ OPC_CheckChild1Integer, 1, ++/*480656*/ OPC_CheckChild1Type, MVT::i32, ++/*480658*/ OPC_CheckChild2Integer, 1, ++/*480660*/ OPC_CheckChild2Type, MVT::i32, ++/*480662*/ OPC_CheckChild3Integer, 1, ++/*480664*/ OPC_CheckChild3Type, MVT::i32, ++/*480666*/ OPC_CheckChild4Integer, 1, ++/*480668*/ OPC_CheckChild4Type, MVT::i32, ++/*480670*/ OPC_MoveChild5, ++/*480671*/ OPC_CheckInteger, 1, ++/*480673*/ OPC_CheckType, MVT::i32, ++/*480675*/ OPC_MoveParent, ++/*480676*/ OPC_MoveChild6, ++/*480677*/ OPC_CheckInteger, 1, ++/*480679*/ OPC_CheckType, MVT::i32, ++/*480681*/ OPC_MoveParent, ++/*480682*/ OPC_MoveChild7, ++/*480683*/ OPC_CheckInteger, 1, ++/*480685*/ OPC_CheckType, MVT::i32, ++/*480687*/ OPC_MoveParent, ++/*480688*/ OPC_CheckType, MVT::v8i32, ++/*480690*/ OPC_MoveParent, ++/*480691*/ OPC_CheckType, MVT::v8i32, ++/*480693*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*480695*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*480703*/ 0, /*End of Scope*/ ++/*480704*/ /*Scope*/ 51|128,1/*179*/, /*->480885*/ ++/*480706*/ OPC_MoveChild0, ++/*480707*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*480710*/ OPC_CheckChild0Integer, 1, ++/*480712*/ OPC_CheckChild0Type, MVT::i32, ++/*480714*/ OPC_CheckChild1Integer, 1, ++/*480716*/ OPC_CheckChild1Type, MVT::i32, ++/*480718*/ OPC_CheckChild2Integer, 1, ++/*480720*/ OPC_CheckChild2Type, MVT::i32, ++/*480722*/ OPC_CheckChild3Integer, 1, ++/*480724*/ OPC_CheckChild3Type, MVT::i32, ++/*480726*/ OPC_CheckChild4Integer, 1, ++/*480728*/ OPC_CheckChild4Type, MVT::i32, ++/*480730*/ OPC_MoveChild5, ++/*480731*/ OPC_CheckInteger, 1, ++/*480733*/ OPC_CheckType, MVT::i32, ++/*480735*/ OPC_MoveParent, ++/*480736*/ OPC_MoveChild6, ++/*480737*/ OPC_CheckInteger, 1, ++/*480739*/ OPC_CheckType, MVT::i32, ++/*480741*/ OPC_MoveParent, ++/*480742*/ OPC_MoveChild7, ++/*480743*/ OPC_CheckInteger, 1, ++/*480745*/ OPC_CheckType, MVT::i32, ++/*480747*/ OPC_MoveParent, ++/*480748*/ OPC_MoveParent, ++/*480749*/ OPC_MoveChild1, ++/*480750*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*480753*/ OPC_Scope, 64, /*->480819*/ // 2 children in Scope ++/*480755*/ OPC_CheckChild0Same, 1, ++/*480757*/ OPC_CheckChild1Same, 0, ++/*480759*/ OPC_MoveParent, ++/*480760*/ OPC_MoveParent, ++/*480761*/ OPC_MoveParent, ++/*480762*/ OPC_MoveChild1, ++/*480763*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*480766*/ OPC_CheckChild0Integer, 1, ++/*480768*/ OPC_CheckChild0Type, MVT::i32, ++/*480770*/ OPC_CheckChild1Integer, 1, ++/*480772*/ OPC_CheckChild1Type, MVT::i32, ++/*480774*/ OPC_CheckChild2Integer, 1, ++/*480776*/ OPC_CheckChild2Type, MVT::i32, ++/*480778*/ OPC_CheckChild3Integer, 1, ++/*480780*/ OPC_CheckChild3Type, MVT::i32, ++/*480782*/ OPC_CheckChild4Integer, 1, ++/*480784*/ OPC_CheckChild4Type, MVT::i32, ++/*480786*/ OPC_MoveChild5, ++/*480787*/ OPC_CheckInteger, 1, ++/*480789*/ OPC_CheckType, MVT::i32, ++/*480791*/ OPC_MoveParent, ++/*480792*/ OPC_MoveChild6, ++/*480793*/ OPC_CheckInteger, 1, ++/*480795*/ OPC_CheckType, MVT::i32, ++/*480797*/ OPC_MoveParent, ++/*480798*/ OPC_MoveChild7, ++/*480799*/ OPC_CheckInteger, 1, ++/*480801*/ OPC_CheckType, MVT::i32, ++/*480803*/ OPC_MoveParent, ++/*480804*/ OPC_CheckType, MVT::v8i32, ++/*480806*/ OPC_MoveParent, ++/*480807*/ OPC_CheckType, MVT::v8i32, ++/*480809*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*480811*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*480819*/ /*Scope*/ 64, /*->480884*/ ++/*480820*/ OPC_CheckChild0Same, 0, ++/*480822*/ OPC_CheckChild1Same, 1, ++/*480824*/ OPC_MoveParent, ++/*480825*/ OPC_MoveParent, ++/*480826*/ OPC_MoveParent, ++/*480827*/ OPC_MoveChild1, ++/*480828*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*480831*/ OPC_CheckChild0Integer, 1, ++/*480833*/ OPC_CheckChild0Type, MVT::i32, ++/*480835*/ OPC_CheckChild1Integer, 1, ++/*480837*/ OPC_CheckChild1Type, MVT::i32, ++/*480839*/ OPC_CheckChild2Integer, 1, ++/*480841*/ OPC_CheckChild2Type, MVT::i32, ++/*480843*/ OPC_CheckChild3Integer, 1, ++/*480845*/ OPC_CheckChild3Type, MVT::i32, ++/*480847*/ OPC_CheckChild4Integer, 1, ++/*480849*/ OPC_CheckChild4Type, MVT::i32, ++/*480851*/ OPC_MoveChild5, ++/*480852*/ OPC_CheckInteger, 1, ++/*480854*/ OPC_CheckType, MVT::i32, ++/*480856*/ OPC_MoveParent, ++/*480857*/ OPC_MoveChild6, ++/*480858*/ OPC_CheckInteger, 1, ++/*480860*/ OPC_CheckType, MVT::i32, ++/*480862*/ OPC_MoveParent, ++/*480863*/ OPC_MoveChild7, ++/*480864*/ OPC_CheckInteger, 1, ++/*480866*/ OPC_CheckType, MVT::i32, ++/*480868*/ OPC_MoveParent, ++/*480869*/ OPC_CheckType, MVT::v8i32, ++/*480871*/ OPC_MoveParent, ++/*480872*/ OPC_CheckType, MVT::v8i32, ++/*480874*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*480876*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*480884*/ 0, /*End of Scope*/ ++/*480885*/ 0, /*End of Scope*/ ++/*480886*/ /*Scope*/ 101|128,20/*2661*/, /*->483549*/ ++/*480888*/ OPC_RecordChild1, // #1 = $b ++/*480889*/ OPC_MoveParent, ++/*480890*/ OPC_MoveChild1, ++/*480891*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*480894*/ OPC_CheckChild0Integer, 1, ++/*480896*/ OPC_CheckChild0Type, MVT::i32, ++/*480898*/ OPC_CheckChild1Integer, 1, ++/*480900*/ OPC_CheckChild1Type, MVT::i32, ++/*480902*/ OPC_CheckChild2Integer, 1, ++/*480904*/ OPC_CheckChild2Type, MVT::i32, ++/*480906*/ OPC_CheckChild3Integer, 1, ++/*480908*/ OPC_CheckChild3Type, MVT::i32, ++/*480910*/ OPC_CheckChild4Integer, 1, ++/*480912*/ OPC_CheckChild4Type, MVT::i32, ++/*480914*/ OPC_MoveChild5, ++/*480915*/ OPC_CheckInteger, 1, ++/*480917*/ OPC_CheckType, MVT::i32, ++/*480919*/ OPC_MoveParent, ++/*480920*/ OPC_MoveChild6, ++/*480921*/ OPC_CheckInteger, 1, ++/*480923*/ OPC_CheckType, MVT::i32, ++/*480925*/ OPC_MoveParent, ++/*480926*/ OPC_MoveChild7, ++/*480927*/ OPC_CheckInteger, 1, ++/*480929*/ OPC_CheckType, MVT::i32, ++/*480931*/ OPC_MoveParent, ++/*480932*/ OPC_MoveParent, ++/*480933*/ OPC_MoveParent, ++/*480934*/ OPC_MoveChild1, ++/*480935*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*480938*/ OPC_CheckChild0Integer, 31, ++/*480940*/ OPC_CheckChild0Type, MVT::i32, ++/*480942*/ OPC_CheckChild1Integer, 31, ++/*480944*/ OPC_CheckChild1Type, MVT::i32, ++/*480946*/ OPC_CheckChild2Integer, 31, ++/*480948*/ OPC_CheckChild2Type, MVT::i32, ++/*480950*/ OPC_CheckChild3Integer, 31, ++/*480952*/ OPC_CheckChild3Type, MVT::i32, ++/*480954*/ OPC_CheckChild4Integer, 31, ++/*480956*/ OPC_CheckChild4Type, MVT::i32, ++/*480958*/ OPC_MoveChild5, ++/*480959*/ OPC_CheckInteger, 31, ++/*480961*/ OPC_CheckType, MVT::i32, ++/*480963*/ OPC_MoveParent, ++/*480964*/ OPC_MoveChild6, ++/*480965*/ OPC_CheckInteger, 31, ++/*480967*/ OPC_CheckType, MVT::i32, ++/*480969*/ OPC_MoveParent, ++/*480970*/ OPC_MoveChild7, ++/*480971*/ OPC_CheckInteger, 31, ++/*480973*/ OPC_CheckType, MVT::i32, ++/*480975*/ OPC_MoveParent, ++/*480976*/ OPC_CheckType, MVT::v8i32, ++/*480978*/ OPC_MoveParent, ++/*480979*/ OPC_MoveParent, ++/*480980*/ OPC_MoveChild1, ++/*480981*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*480984*/ OPC_Scope, 14|128,5/*654*/, /*->481641*/ // 7 children in Scope ++/*480987*/ OPC_MoveChild0, ++/*480988*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*480991*/ OPC_Scope, 107, /*->481100*/ // 6 children in Scope ++/*480993*/ OPC_MoveChild0, ++/*480994*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*480997*/ OPC_CheckChild0Integer, 1, ++/*480999*/ OPC_CheckChild0Type, MVT::i32, ++/*481001*/ OPC_CheckChild1Integer, 1, ++/*481003*/ OPC_CheckChild1Type, MVT::i32, ++/*481005*/ OPC_CheckChild2Integer, 1, ++/*481007*/ OPC_CheckChild2Type, MVT::i32, ++/*481009*/ OPC_CheckChild3Integer, 1, ++/*481011*/ OPC_CheckChild3Type, MVT::i32, ++/*481013*/ OPC_CheckChild4Integer, 1, ++/*481015*/ OPC_CheckChild4Type, MVT::i32, ++/*481017*/ OPC_MoveChild5, ++/*481018*/ OPC_CheckInteger, 1, ++/*481020*/ OPC_CheckType, MVT::i32, ++/*481022*/ OPC_MoveParent, ++/*481023*/ OPC_MoveChild6, ++/*481024*/ OPC_CheckInteger, 1, ++/*481026*/ OPC_CheckType, MVT::i32, ++/*481028*/ OPC_MoveParent, ++/*481029*/ OPC_MoveChild7, ++/*481030*/ OPC_CheckInteger, 1, ++/*481032*/ OPC_CheckType, MVT::i32, ++/*481034*/ OPC_MoveParent, ++/*481035*/ OPC_MoveParent, ++/*481036*/ OPC_CheckChild1Same, 0, ++/*481038*/ OPC_MoveParent, ++/*481039*/ OPC_CheckChild1Same, 1, ++/*481041*/ OPC_MoveParent, ++/*481042*/ OPC_MoveParent, ++/*481043*/ OPC_MoveChild1, ++/*481044*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*481047*/ OPC_CheckChild0Integer, 1, ++/*481049*/ OPC_CheckChild0Type, MVT::i32, ++/*481051*/ OPC_CheckChild1Integer, 1, ++/*481053*/ OPC_CheckChild1Type, MVT::i32, ++/*481055*/ OPC_CheckChild2Integer, 1, ++/*481057*/ OPC_CheckChild2Type, MVT::i32, ++/*481059*/ OPC_CheckChild3Integer, 1, ++/*481061*/ OPC_CheckChild3Type, MVT::i32, ++/*481063*/ OPC_CheckChild4Integer, 1, ++/*481065*/ OPC_CheckChild4Type, MVT::i32, ++/*481067*/ OPC_MoveChild5, ++/*481068*/ OPC_CheckInteger, 1, ++/*481070*/ OPC_CheckType, MVT::i32, ++/*481072*/ OPC_MoveParent, ++/*481073*/ OPC_MoveChild6, ++/*481074*/ OPC_CheckInteger, 1, ++/*481076*/ OPC_CheckType, MVT::i32, ++/*481078*/ OPC_MoveParent, ++/*481079*/ OPC_MoveChild7, ++/*481080*/ OPC_CheckInteger, 1, ++/*481082*/ OPC_CheckType, MVT::i32, ++/*481084*/ OPC_MoveParent, ++/*481085*/ OPC_CheckType, MVT::v8i32, ++/*481087*/ OPC_MoveParent, ++/*481088*/ OPC_CheckType, MVT::v8i32, ++/*481090*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*481092*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a), LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*481100*/ /*Scope*/ 107, /*->481208*/ ++/*481101*/ OPC_CheckChild0Same, 0, ++/*481103*/ OPC_MoveChild1, ++/*481104*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*481107*/ OPC_CheckChild0Integer, 1, ++/*481109*/ OPC_CheckChild0Type, MVT::i32, ++/*481111*/ OPC_CheckChild1Integer, 1, ++/*481113*/ OPC_CheckChild1Type, MVT::i32, ++/*481115*/ OPC_CheckChild2Integer, 1, ++/*481117*/ OPC_CheckChild2Type, MVT::i32, ++/*481119*/ OPC_CheckChild3Integer, 1, ++/*481121*/ OPC_CheckChild3Type, MVT::i32, ++/*481123*/ OPC_CheckChild4Integer, 1, ++/*481125*/ OPC_CheckChild4Type, MVT::i32, ++/*481127*/ OPC_MoveChild5, ++/*481128*/ OPC_CheckInteger, 1, ++/*481130*/ OPC_CheckType, MVT::i32, ++/*481132*/ OPC_MoveParent, ++/*481133*/ OPC_MoveChild6, ++/*481134*/ OPC_CheckInteger, 1, ++/*481136*/ OPC_CheckType, MVT::i32, ++/*481138*/ OPC_MoveParent, ++/*481139*/ OPC_MoveChild7, ++/*481140*/ OPC_CheckInteger, 1, ++/*481142*/ OPC_CheckType, MVT::i32, ++/*481144*/ OPC_MoveParent, ++/*481145*/ OPC_MoveParent, ++/*481146*/ OPC_MoveParent, ++/*481147*/ OPC_CheckChild1Same, 1, ++/*481149*/ OPC_MoveParent, ++/*481150*/ OPC_MoveParent, ++/*481151*/ OPC_MoveChild1, ++/*481152*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*481155*/ OPC_CheckChild0Integer, 1, ++/*481157*/ OPC_CheckChild0Type, MVT::i32, ++/*481159*/ OPC_CheckChild1Integer, 1, ++/*481161*/ OPC_CheckChild1Type, MVT::i32, ++/*481163*/ OPC_CheckChild2Integer, 1, ++/*481165*/ OPC_CheckChild2Type, MVT::i32, ++/*481167*/ OPC_CheckChild3Integer, 1, ++/*481169*/ OPC_CheckChild3Type, MVT::i32, ++/*481171*/ OPC_CheckChild4Integer, 1, ++/*481173*/ OPC_CheckChild4Type, MVT::i32, ++/*481175*/ OPC_MoveChild5, ++/*481176*/ OPC_CheckInteger, 1, ++/*481178*/ OPC_CheckType, MVT::i32, ++/*481180*/ OPC_MoveParent, ++/*481181*/ OPC_MoveChild6, ++/*481182*/ OPC_CheckInteger, 1, ++/*481184*/ OPC_CheckType, MVT::i32, ++/*481186*/ OPC_MoveParent, ++/*481187*/ OPC_MoveChild7, ++/*481188*/ OPC_CheckInteger, 1, ++/*481190*/ OPC_CheckType, MVT::i32, ++/*481192*/ OPC_MoveParent, ++/*481193*/ OPC_CheckType, MVT::v8i32, ++/*481195*/ OPC_MoveParent, ++/*481196*/ OPC_CheckType, MVT::v8i32, ++/*481198*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*481200*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*481208*/ /*Scope*/ 107, /*->481316*/ ++/*481209*/ OPC_MoveChild0, ++/*481210*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*481213*/ OPC_CheckChild0Integer, 1, ++/*481215*/ OPC_CheckChild0Type, MVT::i32, ++/*481217*/ OPC_CheckChild1Integer, 1, ++/*481219*/ OPC_CheckChild1Type, MVT::i32, ++/*481221*/ OPC_CheckChild2Integer, 1, ++/*481223*/ OPC_CheckChild2Type, MVT::i32, ++/*481225*/ OPC_CheckChild3Integer, 1, ++/*481227*/ OPC_CheckChild3Type, MVT::i32, ++/*481229*/ OPC_CheckChild4Integer, 1, ++/*481231*/ OPC_CheckChild4Type, MVT::i32, ++/*481233*/ OPC_MoveChild5, ++/*481234*/ OPC_CheckInteger, 1, ++/*481236*/ OPC_CheckType, MVT::i32, ++/*481238*/ OPC_MoveParent, ++/*481239*/ OPC_MoveChild6, ++/*481240*/ OPC_CheckInteger, 1, ++/*481242*/ OPC_CheckType, MVT::i32, ++/*481244*/ OPC_MoveParent, ++/*481245*/ OPC_MoveChild7, ++/*481246*/ OPC_CheckInteger, 1, ++/*481248*/ OPC_CheckType, MVT::i32, ++/*481250*/ OPC_MoveParent, ++/*481251*/ OPC_MoveParent, ++/*481252*/ OPC_CheckChild1Same, 1, ++/*481254*/ OPC_MoveParent, ++/*481255*/ OPC_CheckChild1Same, 0, ++/*481257*/ OPC_MoveParent, ++/*481258*/ OPC_MoveParent, ++/*481259*/ OPC_MoveChild1, ++/*481260*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*481263*/ OPC_CheckChild0Integer, 1, ++/*481265*/ OPC_CheckChild0Type, MVT::i32, ++/*481267*/ OPC_CheckChild1Integer, 1, ++/*481269*/ OPC_CheckChild1Type, MVT::i32, ++/*481271*/ OPC_CheckChild2Integer, 1, ++/*481273*/ OPC_CheckChild2Type, MVT::i32, ++/*481275*/ OPC_CheckChild3Integer, 1, ++/*481277*/ OPC_CheckChild3Type, MVT::i32, ++/*481279*/ OPC_CheckChild4Integer, 1, ++/*481281*/ OPC_CheckChild4Type, MVT::i32, ++/*481283*/ OPC_MoveChild5, ++/*481284*/ OPC_CheckInteger, 1, ++/*481286*/ OPC_CheckType, MVT::i32, ++/*481288*/ OPC_MoveParent, ++/*481289*/ OPC_MoveChild6, ++/*481290*/ OPC_CheckInteger, 1, ++/*481292*/ OPC_CheckType, MVT::i32, ++/*481294*/ OPC_MoveParent, ++/*481295*/ OPC_MoveChild7, ++/*481296*/ OPC_CheckInteger, 1, ++/*481298*/ OPC_CheckType, MVT::i32, ++/*481300*/ OPC_MoveParent, ++/*481301*/ OPC_CheckType, MVT::v8i32, ++/*481303*/ OPC_MoveParent, ++/*481304*/ OPC_CheckType, MVT::v8i32, ++/*481306*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*481308*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b), LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*481316*/ /*Scope*/ 107, /*->481424*/ ++/*481317*/ OPC_CheckChild0Same, 1, ++/*481319*/ OPC_MoveChild1, ++/*481320*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*481323*/ OPC_CheckChild0Integer, 1, ++/*481325*/ OPC_CheckChild0Type, MVT::i32, ++/*481327*/ OPC_CheckChild1Integer, 1, ++/*481329*/ OPC_CheckChild1Type, MVT::i32, ++/*481331*/ OPC_CheckChild2Integer, 1, ++/*481333*/ OPC_CheckChild2Type, MVT::i32, ++/*481335*/ OPC_CheckChild3Integer, 1, ++/*481337*/ OPC_CheckChild3Type, MVT::i32, ++/*481339*/ OPC_CheckChild4Integer, 1, ++/*481341*/ OPC_CheckChild4Type, MVT::i32, ++/*481343*/ OPC_MoveChild5, ++/*481344*/ OPC_CheckInteger, 1, ++/*481346*/ OPC_CheckType, MVT::i32, ++/*481348*/ OPC_MoveParent, ++/*481349*/ OPC_MoveChild6, ++/*481350*/ OPC_CheckInteger, 1, ++/*481352*/ OPC_CheckType, MVT::i32, ++/*481354*/ OPC_MoveParent, ++/*481355*/ OPC_MoveChild7, ++/*481356*/ OPC_CheckInteger, 1, ++/*481358*/ OPC_CheckType, MVT::i32, ++/*481360*/ OPC_MoveParent, ++/*481361*/ OPC_MoveParent, ++/*481362*/ OPC_MoveParent, ++/*481363*/ OPC_CheckChild1Same, 0, ++/*481365*/ OPC_MoveParent, ++/*481366*/ OPC_MoveParent, ++/*481367*/ OPC_MoveChild1, ++/*481368*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*481371*/ OPC_CheckChild0Integer, 1, ++/*481373*/ OPC_CheckChild0Type, MVT::i32, ++/*481375*/ OPC_CheckChild1Integer, 1, ++/*481377*/ OPC_CheckChild1Type, MVT::i32, ++/*481379*/ OPC_CheckChild2Integer, 1, ++/*481381*/ OPC_CheckChild2Type, MVT::i32, ++/*481383*/ OPC_CheckChild3Integer, 1, ++/*481385*/ OPC_CheckChild3Type, MVT::i32, ++/*481387*/ OPC_CheckChild4Integer, 1, ++/*481389*/ OPC_CheckChild4Type, MVT::i32, ++/*481391*/ OPC_MoveChild5, ++/*481392*/ OPC_CheckInteger, 1, ++/*481394*/ OPC_CheckType, MVT::i32, ++/*481396*/ OPC_MoveParent, ++/*481397*/ OPC_MoveChild6, ++/*481398*/ OPC_CheckInteger, 1, ++/*481400*/ OPC_CheckType, MVT::i32, ++/*481402*/ OPC_MoveParent, ++/*481403*/ OPC_MoveChild7, ++/*481404*/ OPC_CheckInteger, 1, ++/*481406*/ OPC_CheckType, MVT::i32, ++/*481408*/ OPC_MoveParent, ++/*481409*/ OPC_CheckType, MVT::v8i32, ++/*481411*/ OPC_MoveParent, ++/*481412*/ OPC_CheckType, MVT::v8i32, ++/*481414*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*481416*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*481424*/ /*Scope*/ 107, /*->481532*/ ++/*481425*/ OPC_CheckChild0Same, 0, ++/*481427*/ OPC_CheckChild1Same, 1, ++/*481429*/ OPC_MoveParent, ++/*481430*/ OPC_MoveChild1, ++/*481431*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*481434*/ OPC_CheckChild0Integer, 1, ++/*481436*/ OPC_CheckChild0Type, MVT::i32, ++/*481438*/ OPC_CheckChild1Integer, 1, ++/*481440*/ OPC_CheckChild1Type, MVT::i32, ++/*481442*/ OPC_CheckChild2Integer, 1, ++/*481444*/ OPC_CheckChild2Type, MVT::i32, ++/*481446*/ OPC_CheckChild3Integer, 1, ++/*481448*/ OPC_CheckChild3Type, MVT::i32, ++/*481450*/ OPC_CheckChild4Integer, 1, ++/*481452*/ OPC_CheckChild4Type, MVT::i32, ++/*481454*/ OPC_MoveChild5, ++/*481455*/ OPC_CheckInteger, 1, ++/*481457*/ OPC_CheckType, MVT::i32, ++/*481459*/ OPC_MoveParent, ++/*481460*/ OPC_MoveChild6, ++/*481461*/ OPC_CheckInteger, 1, ++/*481463*/ OPC_CheckType, MVT::i32, ++/*481465*/ OPC_MoveParent, ++/*481466*/ OPC_MoveChild7, ++/*481467*/ OPC_CheckInteger, 1, ++/*481469*/ OPC_CheckType, MVT::i32, ++/*481471*/ OPC_MoveParent, ++/*481472*/ OPC_MoveParent, ++/*481473*/ OPC_MoveParent, ++/*481474*/ OPC_MoveParent, ++/*481475*/ OPC_MoveChild1, ++/*481476*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*481479*/ OPC_CheckChild0Integer, 1, ++/*481481*/ OPC_CheckChild0Type, MVT::i32, ++/*481483*/ OPC_CheckChild1Integer, 1, ++/*481485*/ OPC_CheckChild1Type, MVT::i32, ++/*481487*/ OPC_CheckChild2Integer, 1, ++/*481489*/ OPC_CheckChild2Type, MVT::i32, ++/*481491*/ OPC_CheckChild3Integer, 1, ++/*481493*/ OPC_CheckChild3Type, MVT::i32, ++/*481495*/ OPC_CheckChild4Integer, 1, ++/*481497*/ OPC_CheckChild4Type, MVT::i32, ++/*481499*/ OPC_MoveChild5, ++/*481500*/ OPC_CheckInteger, 1, ++/*481502*/ OPC_CheckType, MVT::i32, ++/*481504*/ OPC_MoveParent, ++/*481505*/ OPC_MoveChild6, ++/*481506*/ OPC_CheckInteger, 1, ++/*481508*/ OPC_CheckType, MVT::i32, ++/*481510*/ OPC_MoveParent, ++/*481511*/ OPC_MoveChild7, ++/*481512*/ OPC_CheckInteger, 1, ++/*481514*/ OPC_CheckType, MVT::i32, ++/*481516*/ OPC_MoveParent, ++/*481517*/ OPC_CheckType, MVT::v8i32, ++/*481519*/ OPC_MoveParent, ++/*481520*/ OPC_CheckType, MVT::v8i32, ++/*481522*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*481524*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*481532*/ /*Scope*/ 107, /*->481640*/ ++/*481533*/ OPC_CheckChild0Same, 1, ++/*481535*/ OPC_CheckChild1Same, 0, ++/*481537*/ OPC_MoveParent, ++/*481538*/ OPC_MoveChild1, ++/*481539*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*481542*/ OPC_CheckChild0Integer, 1, ++/*481544*/ OPC_CheckChild0Type, MVT::i32, ++/*481546*/ OPC_CheckChild1Integer, 1, ++/*481548*/ OPC_CheckChild1Type, MVT::i32, ++/*481550*/ OPC_CheckChild2Integer, 1, ++/*481552*/ OPC_CheckChild2Type, MVT::i32, ++/*481554*/ OPC_CheckChild3Integer, 1, ++/*481556*/ OPC_CheckChild3Type, MVT::i32, ++/*481558*/ OPC_CheckChild4Integer, 1, ++/*481560*/ OPC_CheckChild4Type, MVT::i32, ++/*481562*/ OPC_MoveChild5, ++/*481563*/ OPC_CheckInteger, 1, ++/*481565*/ OPC_CheckType, MVT::i32, ++/*481567*/ OPC_MoveParent, ++/*481568*/ OPC_MoveChild6, ++/*481569*/ OPC_CheckInteger, 1, ++/*481571*/ OPC_CheckType, MVT::i32, ++/*481573*/ OPC_MoveParent, ++/*481574*/ OPC_MoveChild7, ++/*481575*/ OPC_CheckInteger, 1, ++/*481577*/ OPC_CheckType, MVT::i32, ++/*481579*/ OPC_MoveParent, ++/*481580*/ OPC_MoveParent, ++/*481581*/ OPC_MoveParent, ++/*481582*/ OPC_MoveParent, ++/*481583*/ OPC_MoveChild1, ++/*481584*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*481587*/ OPC_CheckChild0Integer, 1, ++/*481589*/ OPC_CheckChild0Type, MVT::i32, ++/*481591*/ OPC_CheckChild1Integer, 1, ++/*481593*/ OPC_CheckChild1Type, MVT::i32, ++/*481595*/ OPC_CheckChild2Integer, 1, ++/*481597*/ OPC_CheckChild2Type, MVT::i32, ++/*481599*/ OPC_CheckChild3Integer, 1, ++/*481601*/ OPC_CheckChild3Type, MVT::i32, ++/*481603*/ OPC_CheckChild4Integer, 1, ++/*481605*/ OPC_CheckChild4Type, MVT::i32, ++/*481607*/ OPC_MoveChild5, ++/*481608*/ OPC_CheckInteger, 1, ++/*481610*/ OPC_CheckType, MVT::i32, ++/*481612*/ OPC_MoveParent, ++/*481613*/ OPC_MoveChild6, ++/*481614*/ OPC_CheckInteger, 1, ++/*481616*/ OPC_CheckType, MVT::i32, ++/*481618*/ OPC_MoveParent, ++/*481619*/ OPC_MoveChild7, ++/*481620*/ OPC_CheckInteger, 1, ++/*481622*/ OPC_CheckType, MVT::i32, ++/*481624*/ OPC_MoveParent, ++/*481625*/ OPC_CheckType, MVT::v8i32, ++/*481627*/ OPC_MoveParent, ++/*481628*/ OPC_CheckType, MVT::v8i32, ++/*481630*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*481632*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*481640*/ 0, /*End of Scope*/ ++/*481641*/ /*Scope*/ 92|128,1/*220*/, /*->481863*/ ++/*481643*/ OPC_CheckChild0Same, 1, ++/*481645*/ OPC_MoveChild1, ++/*481646*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*481649*/ OPC_Scope, 105, /*->481756*/ // 2 children in Scope ++/*481651*/ OPC_MoveChild0, ++/*481652*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*481655*/ OPC_CheckChild0Integer, 1, ++/*481657*/ OPC_CheckChild0Type, MVT::i32, ++/*481659*/ OPC_CheckChild1Integer, 1, ++/*481661*/ OPC_CheckChild1Type, MVT::i32, ++/*481663*/ OPC_CheckChild2Integer, 1, ++/*481665*/ OPC_CheckChild2Type, MVT::i32, ++/*481667*/ OPC_CheckChild3Integer, 1, ++/*481669*/ OPC_CheckChild3Type, MVT::i32, ++/*481671*/ OPC_CheckChild4Integer, 1, ++/*481673*/ OPC_CheckChild4Type, MVT::i32, ++/*481675*/ OPC_MoveChild5, ++/*481676*/ OPC_CheckInteger, 1, ++/*481678*/ OPC_CheckType, MVT::i32, ++/*481680*/ OPC_MoveParent, ++/*481681*/ OPC_MoveChild6, ++/*481682*/ OPC_CheckInteger, 1, ++/*481684*/ OPC_CheckType, MVT::i32, ++/*481686*/ OPC_MoveParent, ++/*481687*/ OPC_MoveChild7, ++/*481688*/ OPC_CheckInteger, 1, ++/*481690*/ OPC_CheckType, MVT::i32, ++/*481692*/ OPC_MoveParent, ++/*481693*/ OPC_MoveParent, ++/*481694*/ OPC_CheckChild1Same, 0, ++/*481696*/ OPC_MoveParent, ++/*481697*/ OPC_MoveParent, ++/*481698*/ OPC_MoveParent, ++/*481699*/ OPC_MoveChild1, ++/*481700*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*481703*/ OPC_CheckChild0Integer, 1, ++/*481705*/ OPC_CheckChild0Type, MVT::i32, ++/*481707*/ OPC_CheckChild1Integer, 1, ++/*481709*/ OPC_CheckChild1Type, MVT::i32, ++/*481711*/ OPC_CheckChild2Integer, 1, ++/*481713*/ OPC_CheckChild2Type, MVT::i32, ++/*481715*/ OPC_CheckChild3Integer, 1, ++/*481717*/ OPC_CheckChild3Type, MVT::i32, ++/*481719*/ OPC_CheckChild4Integer, 1, ++/*481721*/ OPC_CheckChild4Type, MVT::i32, ++/*481723*/ OPC_MoveChild5, ++/*481724*/ OPC_CheckInteger, 1, ++/*481726*/ OPC_CheckType, MVT::i32, ++/*481728*/ OPC_MoveParent, ++/*481729*/ OPC_MoveChild6, ++/*481730*/ OPC_CheckInteger, 1, ++/*481732*/ OPC_CheckType, MVT::i32, ++/*481734*/ OPC_MoveParent, ++/*481735*/ OPC_MoveChild7, ++/*481736*/ OPC_CheckInteger, 1, ++/*481738*/ OPC_CheckType, MVT::i32, ++/*481740*/ OPC_MoveParent, ++/*481741*/ OPC_CheckType, MVT::v8i32, ++/*481743*/ OPC_MoveParent, ++/*481744*/ OPC_CheckType, MVT::v8i32, ++/*481746*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*481748*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*481756*/ /*Scope*/ 105, /*->481862*/ ++/*481757*/ OPC_CheckChild0Same, 0, ++/*481759*/ OPC_MoveChild1, ++/*481760*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*481763*/ OPC_CheckChild0Integer, 1, ++/*481765*/ OPC_CheckChild0Type, MVT::i32, ++/*481767*/ OPC_CheckChild1Integer, 1, ++/*481769*/ OPC_CheckChild1Type, MVT::i32, ++/*481771*/ OPC_CheckChild2Integer, 1, ++/*481773*/ OPC_CheckChild2Type, MVT::i32, ++/*481775*/ OPC_CheckChild3Integer, 1, ++/*481777*/ OPC_CheckChild3Type, MVT::i32, ++/*481779*/ OPC_CheckChild4Integer, 1, ++/*481781*/ OPC_CheckChild4Type, MVT::i32, ++/*481783*/ OPC_MoveChild5, ++/*481784*/ OPC_CheckInteger, 1, ++/*481786*/ OPC_CheckType, MVT::i32, ++/*481788*/ OPC_MoveParent, ++/*481789*/ OPC_MoveChild6, ++/*481790*/ OPC_CheckInteger, 1, ++/*481792*/ OPC_CheckType, MVT::i32, ++/*481794*/ OPC_MoveParent, ++/*481795*/ OPC_MoveChild7, ++/*481796*/ OPC_CheckInteger, 1, ++/*481798*/ OPC_CheckType, MVT::i32, ++/*481800*/ OPC_MoveParent, ++/*481801*/ OPC_MoveParent, ++/*481802*/ OPC_MoveParent, ++/*481803*/ OPC_MoveParent, ++/*481804*/ OPC_MoveParent, ++/*481805*/ OPC_MoveChild1, ++/*481806*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*481809*/ OPC_CheckChild0Integer, 1, ++/*481811*/ OPC_CheckChild0Type, MVT::i32, ++/*481813*/ OPC_CheckChild1Integer, 1, ++/*481815*/ OPC_CheckChild1Type, MVT::i32, ++/*481817*/ OPC_CheckChild2Integer, 1, ++/*481819*/ OPC_CheckChild2Type, MVT::i32, ++/*481821*/ OPC_CheckChild3Integer, 1, ++/*481823*/ OPC_CheckChild3Type, MVT::i32, ++/*481825*/ OPC_CheckChild4Integer, 1, ++/*481827*/ OPC_CheckChild4Type, MVT::i32, ++/*481829*/ OPC_MoveChild5, ++/*481830*/ OPC_CheckInteger, 1, ++/*481832*/ OPC_CheckType, MVT::i32, ++/*481834*/ OPC_MoveParent, ++/*481835*/ OPC_MoveChild6, ++/*481836*/ OPC_CheckInteger, 1, ++/*481838*/ OPC_CheckType, MVT::i32, ++/*481840*/ OPC_MoveParent, ++/*481841*/ OPC_MoveChild7, ++/*481842*/ OPC_CheckInteger, 1, ++/*481844*/ OPC_CheckType, MVT::i32, ++/*481846*/ OPC_MoveParent, ++/*481847*/ OPC_CheckType, MVT::v8i32, ++/*481849*/ OPC_MoveParent, ++/*481850*/ OPC_CheckType, MVT::v8i32, ++/*481852*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*481854*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*481862*/ 0, /*End of Scope*/ ++/*481863*/ /*Scope*/ 92|128,1/*220*/, /*->482085*/ ++/*481865*/ OPC_CheckChild0Same, 0, ++/*481867*/ OPC_MoveChild1, ++/*481868*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*481871*/ OPC_Scope, 105, /*->481978*/ // 2 children in Scope ++/*481873*/ OPC_MoveChild0, ++/*481874*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*481877*/ OPC_CheckChild0Integer, 1, ++/*481879*/ OPC_CheckChild0Type, MVT::i32, ++/*481881*/ OPC_CheckChild1Integer, 1, ++/*481883*/ OPC_CheckChild1Type, MVT::i32, ++/*481885*/ OPC_CheckChild2Integer, 1, ++/*481887*/ OPC_CheckChild2Type, MVT::i32, ++/*481889*/ OPC_CheckChild3Integer, 1, ++/*481891*/ OPC_CheckChild3Type, MVT::i32, ++/*481893*/ OPC_CheckChild4Integer, 1, ++/*481895*/ OPC_CheckChild4Type, MVT::i32, ++/*481897*/ OPC_MoveChild5, ++/*481898*/ OPC_CheckInteger, 1, ++/*481900*/ OPC_CheckType, MVT::i32, ++/*481902*/ OPC_MoveParent, ++/*481903*/ OPC_MoveChild6, ++/*481904*/ OPC_CheckInteger, 1, ++/*481906*/ OPC_CheckType, MVT::i32, ++/*481908*/ OPC_MoveParent, ++/*481909*/ OPC_MoveChild7, ++/*481910*/ OPC_CheckInteger, 1, ++/*481912*/ OPC_CheckType, MVT::i32, ++/*481914*/ OPC_MoveParent, ++/*481915*/ OPC_MoveParent, ++/*481916*/ OPC_CheckChild1Same, 1, ++/*481918*/ OPC_MoveParent, ++/*481919*/ OPC_MoveParent, ++/*481920*/ OPC_MoveParent, ++/*481921*/ OPC_MoveChild1, ++/*481922*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*481925*/ OPC_CheckChild0Integer, 1, ++/*481927*/ OPC_CheckChild0Type, MVT::i32, ++/*481929*/ OPC_CheckChild1Integer, 1, ++/*481931*/ OPC_CheckChild1Type, MVT::i32, ++/*481933*/ OPC_CheckChild2Integer, 1, ++/*481935*/ OPC_CheckChild2Type, MVT::i32, ++/*481937*/ OPC_CheckChild3Integer, 1, ++/*481939*/ OPC_CheckChild3Type, MVT::i32, ++/*481941*/ OPC_CheckChild4Integer, 1, ++/*481943*/ OPC_CheckChild4Type, MVT::i32, ++/*481945*/ OPC_MoveChild5, ++/*481946*/ OPC_CheckInteger, 1, ++/*481948*/ OPC_CheckType, MVT::i32, ++/*481950*/ OPC_MoveParent, ++/*481951*/ OPC_MoveChild6, ++/*481952*/ OPC_CheckInteger, 1, ++/*481954*/ OPC_CheckType, MVT::i32, ++/*481956*/ OPC_MoveParent, ++/*481957*/ OPC_MoveChild7, ++/*481958*/ OPC_CheckInteger, 1, ++/*481960*/ OPC_CheckType, MVT::i32, ++/*481962*/ OPC_MoveParent, ++/*481963*/ OPC_CheckType, MVT::v8i32, ++/*481965*/ OPC_MoveParent, ++/*481966*/ OPC_CheckType, MVT::v8i32, ++/*481968*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*481970*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*481978*/ /*Scope*/ 105, /*->482084*/ ++/*481979*/ OPC_CheckChild0Same, 1, ++/*481981*/ OPC_MoveChild1, ++/*481982*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*481985*/ OPC_CheckChild0Integer, 1, ++/*481987*/ OPC_CheckChild0Type, MVT::i32, ++/*481989*/ OPC_CheckChild1Integer, 1, ++/*481991*/ OPC_CheckChild1Type, MVT::i32, ++/*481993*/ OPC_CheckChild2Integer, 1, ++/*481995*/ OPC_CheckChild2Type, MVT::i32, ++/*481997*/ OPC_CheckChild3Integer, 1, ++/*481999*/ OPC_CheckChild3Type, MVT::i32, ++/*482001*/ OPC_CheckChild4Integer, 1, ++/*482003*/ OPC_CheckChild4Type, MVT::i32, ++/*482005*/ OPC_MoveChild5, ++/*482006*/ OPC_CheckInteger, 1, ++/*482008*/ OPC_CheckType, MVT::i32, ++/*482010*/ OPC_MoveParent, ++/*482011*/ OPC_MoveChild6, ++/*482012*/ OPC_CheckInteger, 1, ++/*482014*/ OPC_CheckType, MVT::i32, ++/*482016*/ OPC_MoveParent, ++/*482017*/ OPC_MoveChild7, ++/*482018*/ OPC_CheckInteger, 1, ++/*482020*/ OPC_CheckType, MVT::i32, ++/*482022*/ OPC_MoveParent, ++/*482023*/ OPC_MoveParent, ++/*482024*/ OPC_MoveParent, ++/*482025*/ OPC_MoveParent, ++/*482026*/ OPC_MoveParent, ++/*482027*/ OPC_MoveChild1, ++/*482028*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*482031*/ OPC_CheckChild0Integer, 1, ++/*482033*/ OPC_CheckChild0Type, MVT::i32, ++/*482035*/ OPC_CheckChild1Integer, 1, ++/*482037*/ OPC_CheckChild1Type, MVT::i32, ++/*482039*/ OPC_CheckChild2Integer, 1, ++/*482041*/ OPC_CheckChild2Type, MVT::i32, ++/*482043*/ OPC_CheckChild3Integer, 1, ++/*482045*/ OPC_CheckChild3Type, MVT::i32, ++/*482047*/ OPC_CheckChild4Integer, 1, ++/*482049*/ OPC_CheckChild4Type, MVT::i32, ++/*482051*/ OPC_MoveChild5, ++/*482052*/ OPC_CheckInteger, 1, ++/*482054*/ OPC_CheckType, MVT::i32, ++/*482056*/ OPC_MoveParent, ++/*482057*/ OPC_MoveChild6, ++/*482058*/ OPC_CheckInteger, 1, ++/*482060*/ OPC_CheckType, MVT::i32, ++/*482062*/ OPC_MoveParent, ++/*482063*/ OPC_MoveChild7, ++/*482064*/ OPC_CheckInteger, 1, ++/*482066*/ OPC_CheckType, MVT::i32, ++/*482068*/ OPC_MoveParent, ++/*482069*/ OPC_CheckType, MVT::v8i32, ++/*482071*/ OPC_MoveParent, ++/*482072*/ OPC_CheckType, MVT::v8i32, ++/*482074*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*482076*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*482084*/ 0, /*End of Scope*/ ++/*482085*/ /*Scope*/ 68|128,6/*836*/, /*->482923*/ ++/*482087*/ OPC_MoveChild0, ++/*482088*/ OPC_SwitchOpcode /*2 cases */, 47|128,1/*175*/, TARGET_VAL(ISD::BUILD_VECTOR),// ->482268 ++/*482093*/ OPC_CheckChild0Integer, 1, ++/*482095*/ OPC_CheckChild0Type, MVT::i32, ++/*482097*/ OPC_CheckChild1Integer, 1, ++/*482099*/ OPC_CheckChild1Type, MVT::i32, ++/*482101*/ OPC_CheckChild2Integer, 1, ++/*482103*/ OPC_CheckChild2Type, MVT::i32, ++/*482105*/ OPC_CheckChild3Integer, 1, ++/*482107*/ OPC_CheckChild3Type, MVT::i32, ++/*482109*/ OPC_CheckChild4Integer, 1, ++/*482111*/ OPC_CheckChild4Type, MVT::i32, ++/*482113*/ OPC_MoveChild5, ++/*482114*/ OPC_CheckInteger, 1, ++/*482116*/ OPC_CheckType, MVT::i32, ++/*482118*/ OPC_MoveParent, ++/*482119*/ OPC_MoveChild6, ++/*482120*/ OPC_CheckInteger, 1, ++/*482122*/ OPC_CheckType, MVT::i32, ++/*482124*/ OPC_MoveParent, ++/*482125*/ OPC_MoveChild7, ++/*482126*/ OPC_CheckInteger, 1, ++/*482128*/ OPC_CheckType, MVT::i32, ++/*482130*/ OPC_MoveParent, ++/*482131*/ OPC_MoveParent, ++/*482132*/ OPC_MoveChild1, ++/*482133*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*482136*/ OPC_Scope, 64, /*->482202*/ // 2 children in Scope ++/*482138*/ OPC_CheckChild0Same, 0, ++/*482140*/ OPC_CheckChild1Same, 1, ++/*482142*/ OPC_MoveParent, ++/*482143*/ OPC_MoveParent, ++/*482144*/ OPC_MoveParent, ++/*482145*/ OPC_MoveChild1, ++/*482146*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*482149*/ OPC_CheckChild0Integer, 1, ++/*482151*/ OPC_CheckChild0Type, MVT::i32, ++/*482153*/ OPC_CheckChild1Integer, 1, ++/*482155*/ OPC_CheckChild1Type, MVT::i32, ++/*482157*/ OPC_CheckChild2Integer, 1, ++/*482159*/ OPC_CheckChild2Type, MVT::i32, ++/*482161*/ OPC_CheckChild3Integer, 1, ++/*482163*/ OPC_CheckChild3Type, MVT::i32, ++/*482165*/ OPC_CheckChild4Integer, 1, ++/*482167*/ OPC_CheckChild4Type, MVT::i32, ++/*482169*/ OPC_MoveChild5, ++/*482170*/ OPC_CheckInteger, 1, ++/*482172*/ OPC_CheckType, MVT::i32, ++/*482174*/ OPC_MoveParent, ++/*482175*/ OPC_MoveChild6, ++/*482176*/ OPC_CheckInteger, 1, ++/*482178*/ OPC_CheckType, MVT::i32, ++/*482180*/ OPC_MoveParent, ++/*482181*/ OPC_MoveChild7, ++/*482182*/ OPC_CheckInteger, 1, ++/*482184*/ OPC_CheckType, MVT::i32, ++/*482186*/ OPC_MoveParent, ++/*482187*/ OPC_CheckType, MVT::v8i32, ++/*482189*/ OPC_MoveParent, ++/*482190*/ OPC_CheckType, MVT::v8i32, ++/*482192*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*482194*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*482202*/ /*Scope*/ 64, /*->482267*/ ++/*482203*/ OPC_CheckChild0Same, 1, ++/*482205*/ OPC_CheckChild1Same, 0, ++/*482207*/ OPC_MoveParent, ++/*482208*/ OPC_MoveParent, ++/*482209*/ OPC_MoveParent, ++/*482210*/ OPC_MoveChild1, ++/*482211*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*482214*/ OPC_CheckChild0Integer, 1, ++/*482216*/ OPC_CheckChild0Type, MVT::i32, ++/*482218*/ OPC_CheckChild1Integer, 1, ++/*482220*/ OPC_CheckChild1Type, MVT::i32, ++/*482222*/ OPC_CheckChild2Integer, 1, ++/*482224*/ OPC_CheckChild2Type, MVT::i32, ++/*482226*/ OPC_CheckChild3Integer, 1, ++/*482228*/ OPC_CheckChild3Type, MVT::i32, ++/*482230*/ OPC_CheckChild4Integer, 1, ++/*482232*/ OPC_CheckChild4Type, MVT::i32, ++/*482234*/ OPC_MoveChild5, ++/*482235*/ OPC_CheckInteger, 1, ++/*482237*/ OPC_CheckType, MVT::i32, ++/*482239*/ OPC_MoveParent, ++/*482240*/ OPC_MoveChild6, ++/*482241*/ OPC_CheckInteger, 1, ++/*482243*/ OPC_CheckType, MVT::i32, ++/*482245*/ OPC_MoveParent, ++/*482246*/ OPC_MoveChild7, ++/*482247*/ OPC_CheckInteger, 1, ++/*482249*/ OPC_CheckType, MVT::i32, ++/*482251*/ OPC_MoveParent, ++/*482252*/ OPC_CheckType, MVT::v8i32, ++/*482254*/ OPC_MoveParent, ++/*482255*/ OPC_CheckType, MVT::v8i32, ++/*482257*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*482259*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*482267*/ 0, /*End of Scope*/ ++/*482268*/ /*SwitchOpcode*/ 10|128,5/*650*/, TARGET_VAL(ISD::ADD),// ->482922 ++/*482272*/ OPC_Scope, 107, /*->482381*/ // 6 children in Scope ++/*482274*/ OPC_MoveChild0, ++/*482275*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*482278*/ OPC_CheckChild0Integer, 1, ++/*482280*/ OPC_CheckChild0Type, MVT::i32, ++/*482282*/ OPC_CheckChild1Integer, 1, ++/*482284*/ OPC_CheckChild1Type, MVT::i32, ++/*482286*/ OPC_CheckChild2Integer, 1, ++/*482288*/ OPC_CheckChild2Type, MVT::i32, ++/*482290*/ OPC_CheckChild3Integer, 1, ++/*482292*/ OPC_CheckChild3Type, MVT::i32, ++/*482294*/ OPC_CheckChild4Integer, 1, ++/*482296*/ OPC_CheckChild4Type, MVT::i32, ++/*482298*/ OPC_MoveChild5, ++/*482299*/ OPC_CheckInteger, 1, ++/*482301*/ OPC_CheckType, MVT::i32, ++/*482303*/ OPC_MoveParent, ++/*482304*/ OPC_MoveChild6, ++/*482305*/ OPC_CheckInteger, 1, ++/*482307*/ OPC_CheckType, MVT::i32, ++/*482309*/ OPC_MoveParent, ++/*482310*/ OPC_MoveChild7, ++/*482311*/ OPC_CheckInteger, 1, ++/*482313*/ OPC_CheckType, MVT::i32, ++/*482315*/ OPC_MoveParent, ++/*482316*/ OPC_MoveParent, ++/*482317*/ OPC_CheckChild1Same, 1, ++/*482319*/ OPC_MoveParent, ++/*482320*/ OPC_CheckChild1Same, 0, ++/*482322*/ OPC_MoveParent, ++/*482323*/ OPC_MoveParent, ++/*482324*/ OPC_MoveChild1, ++/*482325*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*482328*/ OPC_CheckChild0Integer, 1, ++/*482330*/ OPC_CheckChild0Type, MVT::i32, ++/*482332*/ OPC_CheckChild1Integer, 1, ++/*482334*/ OPC_CheckChild1Type, MVT::i32, ++/*482336*/ OPC_CheckChild2Integer, 1, ++/*482338*/ OPC_CheckChild2Type, MVT::i32, ++/*482340*/ OPC_CheckChild3Integer, 1, ++/*482342*/ OPC_CheckChild3Type, MVT::i32, ++/*482344*/ OPC_CheckChild4Integer, 1, ++/*482346*/ OPC_CheckChild4Type, MVT::i32, ++/*482348*/ OPC_MoveChild5, ++/*482349*/ OPC_CheckInteger, 1, ++/*482351*/ OPC_CheckType, MVT::i32, ++/*482353*/ OPC_MoveParent, ++/*482354*/ OPC_MoveChild6, ++/*482355*/ OPC_CheckInteger, 1, ++/*482357*/ OPC_CheckType, MVT::i32, ++/*482359*/ OPC_MoveParent, ++/*482360*/ OPC_MoveChild7, ++/*482361*/ OPC_CheckInteger, 1, ++/*482363*/ OPC_CheckType, MVT::i32, ++/*482365*/ OPC_MoveParent, ++/*482366*/ OPC_CheckType, MVT::v8i32, ++/*482368*/ OPC_MoveParent, ++/*482369*/ OPC_CheckType, MVT::v8i32, ++/*482371*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*482373*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a), LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*482381*/ /*Scope*/ 107, /*->482489*/ ++/*482382*/ OPC_CheckChild0Same, 1, ++/*482384*/ OPC_MoveChild1, ++/*482385*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*482388*/ OPC_CheckChild0Integer, 1, ++/*482390*/ OPC_CheckChild0Type, MVT::i32, ++/*482392*/ OPC_CheckChild1Integer, 1, ++/*482394*/ OPC_CheckChild1Type, MVT::i32, ++/*482396*/ OPC_CheckChild2Integer, 1, ++/*482398*/ OPC_CheckChild2Type, MVT::i32, ++/*482400*/ OPC_CheckChild3Integer, 1, ++/*482402*/ OPC_CheckChild3Type, MVT::i32, ++/*482404*/ OPC_CheckChild4Integer, 1, ++/*482406*/ OPC_CheckChild4Type, MVT::i32, ++/*482408*/ OPC_MoveChild5, ++/*482409*/ OPC_CheckInteger, 1, ++/*482411*/ OPC_CheckType, MVT::i32, ++/*482413*/ OPC_MoveParent, ++/*482414*/ OPC_MoveChild6, ++/*482415*/ OPC_CheckInteger, 1, ++/*482417*/ OPC_CheckType, MVT::i32, ++/*482419*/ OPC_MoveParent, ++/*482420*/ OPC_MoveChild7, ++/*482421*/ OPC_CheckInteger, 1, ++/*482423*/ OPC_CheckType, MVT::i32, ++/*482425*/ OPC_MoveParent, ++/*482426*/ OPC_MoveParent, ++/*482427*/ OPC_MoveParent, ++/*482428*/ OPC_CheckChild1Same, 0, ++/*482430*/ OPC_MoveParent, ++/*482431*/ OPC_MoveParent, ++/*482432*/ OPC_MoveChild1, ++/*482433*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*482436*/ OPC_CheckChild0Integer, 1, ++/*482438*/ OPC_CheckChild0Type, MVT::i32, ++/*482440*/ OPC_CheckChild1Integer, 1, ++/*482442*/ OPC_CheckChild1Type, MVT::i32, ++/*482444*/ OPC_CheckChild2Integer, 1, ++/*482446*/ OPC_CheckChild2Type, MVT::i32, ++/*482448*/ OPC_CheckChild3Integer, 1, ++/*482450*/ OPC_CheckChild3Type, MVT::i32, ++/*482452*/ OPC_CheckChild4Integer, 1, ++/*482454*/ OPC_CheckChild4Type, MVT::i32, ++/*482456*/ OPC_MoveChild5, ++/*482457*/ OPC_CheckInteger, 1, ++/*482459*/ OPC_CheckType, MVT::i32, ++/*482461*/ OPC_MoveParent, ++/*482462*/ OPC_MoveChild6, ++/*482463*/ OPC_CheckInteger, 1, ++/*482465*/ OPC_CheckType, MVT::i32, ++/*482467*/ OPC_MoveParent, ++/*482468*/ OPC_MoveChild7, ++/*482469*/ OPC_CheckInteger, 1, ++/*482471*/ OPC_CheckType, MVT::i32, ++/*482473*/ OPC_MoveParent, ++/*482474*/ OPC_CheckType, MVT::v8i32, ++/*482476*/ OPC_MoveParent, ++/*482477*/ OPC_CheckType, MVT::v8i32, ++/*482479*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*482481*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*482489*/ /*Scope*/ 107, /*->482597*/ ++/*482490*/ OPC_MoveChild0, ++/*482491*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*482494*/ OPC_CheckChild0Integer, 1, ++/*482496*/ OPC_CheckChild0Type, MVT::i32, ++/*482498*/ OPC_CheckChild1Integer, 1, ++/*482500*/ OPC_CheckChild1Type, MVT::i32, ++/*482502*/ OPC_CheckChild2Integer, 1, ++/*482504*/ OPC_CheckChild2Type, MVT::i32, ++/*482506*/ OPC_CheckChild3Integer, 1, ++/*482508*/ OPC_CheckChild3Type, MVT::i32, ++/*482510*/ OPC_CheckChild4Integer, 1, ++/*482512*/ OPC_CheckChild4Type, MVT::i32, ++/*482514*/ OPC_MoveChild5, ++/*482515*/ OPC_CheckInteger, 1, ++/*482517*/ OPC_CheckType, MVT::i32, ++/*482519*/ OPC_MoveParent, ++/*482520*/ OPC_MoveChild6, ++/*482521*/ OPC_CheckInteger, 1, ++/*482523*/ OPC_CheckType, MVT::i32, ++/*482525*/ OPC_MoveParent, ++/*482526*/ OPC_MoveChild7, ++/*482527*/ OPC_CheckInteger, 1, ++/*482529*/ OPC_CheckType, MVT::i32, ++/*482531*/ OPC_MoveParent, ++/*482532*/ OPC_MoveParent, ++/*482533*/ OPC_CheckChild1Same, 0, ++/*482535*/ OPC_MoveParent, ++/*482536*/ OPC_CheckChild1Same, 1, ++/*482538*/ OPC_MoveParent, ++/*482539*/ OPC_MoveParent, ++/*482540*/ OPC_MoveChild1, ++/*482541*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*482544*/ OPC_CheckChild0Integer, 1, ++/*482546*/ OPC_CheckChild0Type, MVT::i32, ++/*482548*/ OPC_CheckChild1Integer, 1, ++/*482550*/ OPC_CheckChild1Type, MVT::i32, ++/*482552*/ OPC_CheckChild2Integer, 1, ++/*482554*/ OPC_CheckChild2Type, MVT::i32, ++/*482556*/ OPC_CheckChild3Integer, 1, ++/*482558*/ OPC_CheckChild3Type, MVT::i32, ++/*482560*/ OPC_CheckChild4Integer, 1, ++/*482562*/ OPC_CheckChild4Type, MVT::i32, ++/*482564*/ OPC_MoveChild5, ++/*482565*/ OPC_CheckInteger, 1, ++/*482567*/ OPC_CheckType, MVT::i32, ++/*482569*/ OPC_MoveParent, ++/*482570*/ OPC_MoveChild6, ++/*482571*/ OPC_CheckInteger, 1, ++/*482573*/ OPC_CheckType, MVT::i32, ++/*482575*/ OPC_MoveParent, ++/*482576*/ OPC_MoveChild7, ++/*482577*/ OPC_CheckInteger, 1, ++/*482579*/ OPC_CheckType, MVT::i32, ++/*482581*/ OPC_MoveParent, ++/*482582*/ OPC_CheckType, MVT::v8i32, ++/*482584*/ OPC_MoveParent, ++/*482585*/ OPC_CheckType, MVT::v8i32, ++/*482587*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*482589*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b), LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*482597*/ /*Scope*/ 107, /*->482705*/ ++/*482598*/ OPC_CheckChild0Same, 0, ++/*482600*/ OPC_MoveChild1, ++/*482601*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*482604*/ OPC_CheckChild0Integer, 1, ++/*482606*/ OPC_CheckChild0Type, MVT::i32, ++/*482608*/ OPC_CheckChild1Integer, 1, ++/*482610*/ OPC_CheckChild1Type, MVT::i32, ++/*482612*/ OPC_CheckChild2Integer, 1, ++/*482614*/ OPC_CheckChild2Type, MVT::i32, ++/*482616*/ OPC_CheckChild3Integer, 1, ++/*482618*/ OPC_CheckChild3Type, MVT::i32, ++/*482620*/ OPC_CheckChild4Integer, 1, ++/*482622*/ OPC_CheckChild4Type, MVT::i32, ++/*482624*/ OPC_MoveChild5, ++/*482625*/ OPC_CheckInteger, 1, ++/*482627*/ OPC_CheckType, MVT::i32, ++/*482629*/ OPC_MoveParent, ++/*482630*/ OPC_MoveChild6, ++/*482631*/ OPC_CheckInteger, 1, ++/*482633*/ OPC_CheckType, MVT::i32, ++/*482635*/ OPC_MoveParent, ++/*482636*/ OPC_MoveChild7, ++/*482637*/ OPC_CheckInteger, 1, ++/*482639*/ OPC_CheckType, MVT::i32, ++/*482641*/ OPC_MoveParent, ++/*482642*/ OPC_MoveParent, ++/*482643*/ OPC_MoveParent, ++/*482644*/ OPC_CheckChild1Same, 1, ++/*482646*/ OPC_MoveParent, ++/*482647*/ OPC_MoveParent, ++/*482648*/ OPC_MoveChild1, ++/*482649*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*482652*/ OPC_CheckChild0Integer, 1, ++/*482654*/ OPC_CheckChild0Type, MVT::i32, ++/*482656*/ OPC_CheckChild1Integer, 1, ++/*482658*/ OPC_CheckChild1Type, MVT::i32, ++/*482660*/ OPC_CheckChild2Integer, 1, ++/*482662*/ OPC_CheckChild2Type, MVT::i32, ++/*482664*/ OPC_CheckChild3Integer, 1, ++/*482666*/ OPC_CheckChild3Type, MVT::i32, ++/*482668*/ OPC_CheckChild4Integer, 1, ++/*482670*/ OPC_CheckChild4Type, MVT::i32, ++/*482672*/ OPC_MoveChild5, ++/*482673*/ OPC_CheckInteger, 1, ++/*482675*/ OPC_CheckType, MVT::i32, ++/*482677*/ OPC_MoveParent, ++/*482678*/ OPC_MoveChild6, ++/*482679*/ OPC_CheckInteger, 1, ++/*482681*/ OPC_CheckType, MVT::i32, ++/*482683*/ OPC_MoveParent, ++/*482684*/ OPC_MoveChild7, ++/*482685*/ OPC_CheckInteger, 1, ++/*482687*/ OPC_CheckType, MVT::i32, ++/*482689*/ OPC_MoveParent, ++/*482690*/ OPC_CheckType, MVT::v8i32, ++/*482692*/ OPC_MoveParent, ++/*482693*/ OPC_CheckType, MVT::v8i32, ++/*482695*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*482697*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*482705*/ /*Scope*/ 107, /*->482813*/ ++/*482706*/ OPC_CheckChild0Same, 1, ++/*482708*/ OPC_CheckChild1Same, 0, ++/*482710*/ OPC_MoveParent, ++/*482711*/ OPC_MoveChild1, ++/*482712*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*482715*/ OPC_CheckChild0Integer, 1, ++/*482717*/ OPC_CheckChild0Type, MVT::i32, ++/*482719*/ OPC_CheckChild1Integer, 1, ++/*482721*/ OPC_CheckChild1Type, MVT::i32, ++/*482723*/ OPC_CheckChild2Integer, 1, ++/*482725*/ OPC_CheckChild2Type, MVT::i32, ++/*482727*/ OPC_CheckChild3Integer, 1, ++/*482729*/ OPC_CheckChild3Type, MVT::i32, ++/*482731*/ OPC_CheckChild4Integer, 1, ++/*482733*/ OPC_CheckChild4Type, MVT::i32, ++/*482735*/ OPC_MoveChild5, ++/*482736*/ OPC_CheckInteger, 1, ++/*482738*/ OPC_CheckType, MVT::i32, ++/*482740*/ OPC_MoveParent, ++/*482741*/ OPC_MoveChild6, ++/*482742*/ OPC_CheckInteger, 1, ++/*482744*/ OPC_CheckType, MVT::i32, ++/*482746*/ OPC_MoveParent, ++/*482747*/ OPC_MoveChild7, ++/*482748*/ OPC_CheckInteger, 1, ++/*482750*/ OPC_CheckType, MVT::i32, ++/*482752*/ OPC_MoveParent, ++/*482753*/ OPC_MoveParent, ++/*482754*/ OPC_MoveParent, ++/*482755*/ OPC_MoveParent, ++/*482756*/ OPC_MoveChild1, ++/*482757*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*482760*/ OPC_CheckChild0Integer, 1, ++/*482762*/ OPC_CheckChild0Type, MVT::i32, ++/*482764*/ OPC_CheckChild1Integer, 1, ++/*482766*/ OPC_CheckChild1Type, MVT::i32, ++/*482768*/ OPC_CheckChild2Integer, 1, ++/*482770*/ OPC_CheckChild2Type, MVT::i32, ++/*482772*/ OPC_CheckChild3Integer, 1, ++/*482774*/ OPC_CheckChild3Type, MVT::i32, ++/*482776*/ OPC_CheckChild4Integer, 1, ++/*482778*/ OPC_CheckChild4Type, MVT::i32, ++/*482780*/ OPC_MoveChild5, ++/*482781*/ OPC_CheckInteger, 1, ++/*482783*/ OPC_CheckType, MVT::i32, ++/*482785*/ OPC_MoveParent, ++/*482786*/ OPC_MoveChild6, ++/*482787*/ OPC_CheckInteger, 1, ++/*482789*/ OPC_CheckType, MVT::i32, ++/*482791*/ OPC_MoveParent, ++/*482792*/ OPC_MoveChild7, ++/*482793*/ OPC_CheckInteger, 1, ++/*482795*/ OPC_CheckType, MVT::i32, ++/*482797*/ OPC_MoveParent, ++/*482798*/ OPC_CheckType, MVT::v8i32, ++/*482800*/ OPC_MoveParent, ++/*482801*/ OPC_CheckType, MVT::v8i32, ++/*482803*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*482805*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*482813*/ /*Scope*/ 107, /*->482921*/ ++/*482814*/ OPC_CheckChild0Same, 0, ++/*482816*/ OPC_CheckChild1Same, 1, ++/*482818*/ OPC_MoveParent, ++/*482819*/ OPC_MoveChild1, ++/*482820*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*482823*/ OPC_CheckChild0Integer, 1, ++/*482825*/ OPC_CheckChild0Type, MVT::i32, ++/*482827*/ OPC_CheckChild1Integer, 1, ++/*482829*/ OPC_CheckChild1Type, MVT::i32, ++/*482831*/ OPC_CheckChild2Integer, 1, ++/*482833*/ OPC_CheckChild2Type, MVT::i32, ++/*482835*/ OPC_CheckChild3Integer, 1, ++/*482837*/ OPC_CheckChild3Type, MVT::i32, ++/*482839*/ OPC_CheckChild4Integer, 1, ++/*482841*/ OPC_CheckChild4Type, MVT::i32, ++/*482843*/ OPC_MoveChild5, ++/*482844*/ OPC_CheckInteger, 1, ++/*482846*/ OPC_CheckType, MVT::i32, ++/*482848*/ OPC_MoveParent, ++/*482849*/ OPC_MoveChild6, ++/*482850*/ OPC_CheckInteger, 1, ++/*482852*/ OPC_CheckType, MVT::i32, ++/*482854*/ OPC_MoveParent, ++/*482855*/ OPC_MoveChild7, ++/*482856*/ OPC_CheckInteger, 1, ++/*482858*/ OPC_CheckType, MVT::i32, ++/*482860*/ OPC_MoveParent, ++/*482861*/ OPC_MoveParent, ++/*482862*/ OPC_MoveParent, ++/*482863*/ OPC_MoveParent, ++/*482864*/ OPC_MoveChild1, ++/*482865*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*482868*/ OPC_CheckChild0Integer, 1, ++/*482870*/ OPC_CheckChild0Type, MVT::i32, ++/*482872*/ OPC_CheckChild1Integer, 1, ++/*482874*/ OPC_CheckChild1Type, MVT::i32, ++/*482876*/ OPC_CheckChild2Integer, 1, ++/*482878*/ OPC_CheckChild2Type, MVT::i32, ++/*482880*/ OPC_CheckChild3Integer, 1, ++/*482882*/ OPC_CheckChild3Type, MVT::i32, ++/*482884*/ OPC_CheckChild4Integer, 1, ++/*482886*/ OPC_CheckChild4Type, MVT::i32, ++/*482888*/ OPC_MoveChild5, ++/*482889*/ OPC_CheckInteger, 1, ++/*482891*/ OPC_CheckType, MVT::i32, ++/*482893*/ OPC_MoveParent, ++/*482894*/ OPC_MoveChild6, ++/*482895*/ OPC_CheckInteger, 1, ++/*482897*/ OPC_CheckType, MVT::i32, ++/*482899*/ OPC_MoveParent, ++/*482900*/ OPC_MoveChild7, ++/*482901*/ OPC_CheckInteger, 1, ++/*482903*/ OPC_CheckType, MVT::i32, ++/*482905*/ OPC_MoveParent, ++/*482906*/ OPC_CheckType, MVT::v8i32, ++/*482908*/ OPC_MoveParent, ++/*482909*/ OPC_CheckType, MVT::v8i32, ++/*482911*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*482913*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*482921*/ 0, /*End of Scope*/ ++/*482922*/ 0, // EndSwitchOpcode ++/*482923*/ /*Scope*/ 92|128,1/*220*/, /*->483145*/ ++/*482925*/ OPC_CheckChild0Same, 0, ++/*482927*/ OPC_MoveChild1, ++/*482928*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*482931*/ OPC_Scope, 105, /*->483038*/ // 2 children in Scope ++/*482933*/ OPC_MoveChild0, ++/*482934*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*482937*/ OPC_CheckChild0Integer, 1, ++/*482939*/ OPC_CheckChild0Type, MVT::i32, ++/*482941*/ OPC_CheckChild1Integer, 1, ++/*482943*/ OPC_CheckChild1Type, MVT::i32, ++/*482945*/ OPC_CheckChild2Integer, 1, ++/*482947*/ OPC_CheckChild2Type, MVT::i32, ++/*482949*/ OPC_CheckChild3Integer, 1, ++/*482951*/ OPC_CheckChild3Type, MVT::i32, ++/*482953*/ OPC_CheckChild4Integer, 1, ++/*482955*/ OPC_CheckChild4Type, MVT::i32, ++/*482957*/ OPC_MoveChild5, ++/*482958*/ OPC_CheckInteger, 1, ++/*482960*/ OPC_CheckType, MVT::i32, ++/*482962*/ OPC_MoveParent, ++/*482963*/ OPC_MoveChild6, ++/*482964*/ OPC_CheckInteger, 1, ++/*482966*/ OPC_CheckType, MVT::i32, ++/*482968*/ OPC_MoveParent, ++/*482969*/ OPC_MoveChild7, ++/*482970*/ OPC_CheckInteger, 1, ++/*482972*/ OPC_CheckType, MVT::i32, ++/*482974*/ OPC_MoveParent, ++/*482975*/ OPC_MoveParent, ++/*482976*/ OPC_CheckChild1Same, 1, ++/*482978*/ OPC_MoveParent, ++/*482979*/ OPC_MoveParent, ++/*482980*/ OPC_MoveParent, ++/*482981*/ OPC_MoveChild1, ++/*482982*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*482985*/ OPC_CheckChild0Integer, 1, ++/*482987*/ OPC_CheckChild0Type, MVT::i32, ++/*482989*/ OPC_CheckChild1Integer, 1, ++/*482991*/ OPC_CheckChild1Type, MVT::i32, ++/*482993*/ OPC_CheckChild2Integer, 1, ++/*482995*/ OPC_CheckChild2Type, MVT::i32, ++/*482997*/ OPC_CheckChild3Integer, 1, ++/*482999*/ OPC_CheckChild3Type, MVT::i32, ++/*483001*/ OPC_CheckChild4Integer, 1, ++/*483003*/ OPC_CheckChild4Type, MVT::i32, ++/*483005*/ OPC_MoveChild5, ++/*483006*/ OPC_CheckInteger, 1, ++/*483008*/ OPC_CheckType, MVT::i32, ++/*483010*/ OPC_MoveParent, ++/*483011*/ OPC_MoveChild6, ++/*483012*/ OPC_CheckInteger, 1, ++/*483014*/ OPC_CheckType, MVT::i32, ++/*483016*/ OPC_MoveParent, ++/*483017*/ OPC_MoveChild7, ++/*483018*/ OPC_CheckInteger, 1, ++/*483020*/ OPC_CheckType, MVT::i32, ++/*483022*/ OPC_MoveParent, ++/*483023*/ OPC_CheckType, MVT::v8i32, ++/*483025*/ OPC_MoveParent, ++/*483026*/ OPC_CheckType, MVT::v8i32, ++/*483028*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*483030*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*483038*/ /*Scope*/ 105, /*->483144*/ ++/*483039*/ OPC_CheckChild0Same, 1, ++/*483041*/ OPC_MoveChild1, ++/*483042*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*483045*/ OPC_CheckChild0Integer, 1, ++/*483047*/ OPC_CheckChild0Type, MVT::i32, ++/*483049*/ OPC_CheckChild1Integer, 1, ++/*483051*/ OPC_CheckChild1Type, MVT::i32, ++/*483053*/ OPC_CheckChild2Integer, 1, ++/*483055*/ OPC_CheckChild2Type, MVT::i32, ++/*483057*/ OPC_CheckChild3Integer, 1, ++/*483059*/ OPC_CheckChild3Type, MVT::i32, ++/*483061*/ OPC_CheckChild4Integer, 1, ++/*483063*/ OPC_CheckChild4Type, MVT::i32, ++/*483065*/ OPC_MoveChild5, ++/*483066*/ OPC_CheckInteger, 1, ++/*483068*/ OPC_CheckType, MVT::i32, ++/*483070*/ OPC_MoveParent, ++/*483071*/ OPC_MoveChild6, ++/*483072*/ OPC_CheckInteger, 1, ++/*483074*/ OPC_CheckType, MVT::i32, ++/*483076*/ OPC_MoveParent, ++/*483077*/ OPC_MoveChild7, ++/*483078*/ OPC_CheckInteger, 1, ++/*483080*/ OPC_CheckType, MVT::i32, ++/*483082*/ OPC_MoveParent, ++/*483083*/ OPC_MoveParent, ++/*483084*/ OPC_MoveParent, ++/*483085*/ OPC_MoveParent, ++/*483086*/ OPC_MoveParent, ++/*483087*/ OPC_MoveChild1, ++/*483088*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*483091*/ OPC_CheckChild0Integer, 1, ++/*483093*/ OPC_CheckChild0Type, MVT::i32, ++/*483095*/ OPC_CheckChild1Integer, 1, ++/*483097*/ OPC_CheckChild1Type, MVT::i32, ++/*483099*/ OPC_CheckChild2Integer, 1, ++/*483101*/ OPC_CheckChild2Type, MVT::i32, ++/*483103*/ OPC_CheckChild3Integer, 1, ++/*483105*/ OPC_CheckChild3Type, MVT::i32, ++/*483107*/ OPC_CheckChild4Integer, 1, ++/*483109*/ OPC_CheckChild4Type, MVT::i32, ++/*483111*/ OPC_MoveChild5, ++/*483112*/ OPC_CheckInteger, 1, ++/*483114*/ OPC_CheckType, MVT::i32, ++/*483116*/ OPC_MoveParent, ++/*483117*/ OPC_MoveChild6, ++/*483118*/ OPC_CheckInteger, 1, ++/*483120*/ OPC_CheckType, MVT::i32, ++/*483122*/ OPC_MoveParent, ++/*483123*/ OPC_MoveChild7, ++/*483124*/ OPC_CheckInteger, 1, ++/*483126*/ OPC_CheckType, MVT::i32, ++/*483128*/ OPC_MoveParent, ++/*483129*/ OPC_CheckType, MVT::v8i32, ++/*483131*/ OPC_MoveParent, ++/*483132*/ OPC_CheckType, MVT::v8i32, ++/*483134*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*483136*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*483144*/ 0, /*End of Scope*/ ++/*483145*/ /*Scope*/ 92|128,1/*220*/, /*->483367*/ ++/*483147*/ OPC_CheckChild0Same, 1, ++/*483149*/ OPC_MoveChild1, ++/*483150*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*483153*/ OPC_Scope, 105, /*->483260*/ // 2 children in Scope ++/*483155*/ OPC_MoveChild0, ++/*483156*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*483159*/ OPC_CheckChild0Integer, 1, ++/*483161*/ OPC_CheckChild0Type, MVT::i32, ++/*483163*/ OPC_CheckChild1Integer, 1, ++/*483165*/ OPC_CheckChild1Type, MVT::i32, ++/*483167*/ OPC_CheckChild2Integer, 1, ++/*483169*/ OPC_CheckChild2Type, MVT::i32, ++/*483171*/ OPC_CheckChild3Integer, 1, ++/*483173*/ OPC_CheckChild3Type, MVT::i32, ++/*483175*/ OPC_CheckChild4Integer, 1, ++/*483177*/ OPC_CheckChild4Type, MVT::i32, ++/*483179*/ OPC_MoveChild5, ++/*483180*/ OPC_CheckInteger, 1, ++/*483182*/ OPC_CheckType, MVT::i32, ++/*483184*/ OPC_MoveParent, ++/*483185*/ OPC_MoveChild6, ++/*483186*/ OPC_CheckInteger, 1, ++/*483188*/ OPC_CheckType, MVT::i32, ++/*483190*/ OPC_MoveParent, ++/*483191*/ OPC_MoveChild7, ++/*483192*/ OPC_CheckInteger, 1, ++/*483194*/ OPC_CheckType, MVT::i32, ++/*483196*/ OPC_MoveParent, ++/*483197*/ OPC_MoveParent, ++/*483198*/ OPC_CheckChild1Same, 0, ++/*483200*/ OPC_MoveParent, ++/*483201*/ OPC_MoveParent, ++/*483202*/ OPC_MoveParent, ++/*483203*/ OPC_MoveChild1, ++/*483204*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*483207*/ OPC_CheckChild0Integer, 1, ++/*483209*/ OPC_CheckChild0Type, MVT::i32, ++/*483211*/ OPC_CheckChild1Integer, 1, ++/*483213*/ OPC_CheckChild1Type, MVT::i32, ++/*483215*/ OPC_CheckChild2Integer, 1, ++/*483217*/ OPC_CheckChild2Type, MVT::i32, ++/*483219*/ OPC_CheckChild3Integer, 1, ++/*483221*/ OPC_CheckChild3Type, MVT::i32, ++/*483223*/ OPC_CheckChild4Integer, 1, ++/*483225*/ OPC_CheckChild4Type, MVT::i32, ++/*483227*/ OPC_MoveChild5, ++/*483228*/ OPC_CheckInteger, 1, ++/*483230*/ OPC_CheckType, MVT::i32, ++/*483232*/ OPC_MoveParent, ++/*483233*/ OPC_MoveChild6, ++/*483234*/ OPC_CheckInteger, 1, ++/*483236*/ OPC_CheckType, MVT::i32, ++/*483238*/ OPC_MoveParent, ++/*483239*/ OPC_MoveChild7, ++/*483240*/ OPC_CheckInteger, 1, ++/*483242*/ OPC_CheckType, MVT::i32, ++/*483244*/ OPC_MoveParent, ++/*483245*/ OPC_CheckType, MVT::v8i32, ++/*483247*/ OPC_MoveParent, ++/*483248*/ OPC_CheckType, MVT::v8i32, ++/*483250*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*483252*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*483260*/ /*Scope*/ 105, /*->483366*/ ++/*483261*/ OPC_CheckChild0Same, 0, ++/*483263*/ OPC_MoveChild1, ++/*483264*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*483267*/ OPC_CheckChild0Integer, 1, ++/*483269*/ OPC_CheckChild0Type, MVT::i32, ++/*483271*/ OPC_CheckChild1Integer, 1, ++/*483273*/ OPC_CheckChild1Type, MVT::i32, ++/*483275*/ OPC_CheckChild2Integer, 1, ++/*483277*/ OPC_CheckChild2Type, MVT::i32, ++/*483279*/ OPC_CheckChild3Integer, 1, ++/*483281*/ OPC_CheckChild3Type, MVT::i32, ++/*483283*/ OPC_CheckChild4Integer, 1, ++/*483285*/ OPC_CheckChild4Type, MVT::i32, ++/*483287*/ OPC_MoveChild5, ++/*483288*/ OPC_CheckInteger, 1, ++/*483290*/ OPC_CheckType, MVT::i32, ++/*483292*/ OPC_MoveParent, ++/*483293*/ OPC_MoveChild6, ++/*483294*/ OPC_CheckInteger, 1, ++/*483296*/ OPC_CheckType, MVT::i32, ++/*483298*/ OPC_MoveParent, ++/*483299*/ OPC_MoveChild7, ++/*483300*/ OPC_CheckInteger, 1, ++/*483302*/ OPC_CheckType, MVT::i32, ++/*483304*/ OPC_MoveParent, ++/*483305*/ OPC_MoveParent, ++/*483306*/ OPC_MoveParent, ++/*483307*/ OPC_MoveParent, ++/*483308*/ OPC_MoveParent, ++/*483309*/ OPC_MoveChild1, ++/*483310*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*483313*/ OPC_CheckChild0Integer, 1, ++/*483315*/ OPC_CheckChild0Type, MVT::i32, ++/*483317*/ OPC_CheckChild1Integer, 1, ++/*483319*/ OPC_CheckChild1Type, MVT::i32, ++/*483321*/ OPC_CheckChild2Integer, 1, ++/*483323*/ OPC_CheckChild2Type, MVT::i32, ++/*483325*/ OPC_CheckChild3Integer, 1, ++/*483327*/ OPC_CheckChild3Type, MVT::i32, ++/*483329*/ OPC_CheckChild4Integer, 1, ++/*483331*/ OPC_CheckChild4Type, MVT::i32, ++/*483333*/ OPC_MoveChild5, ++/*483334*/ OPC_CheckInteger, 1, ++/*483336*/ OPC_CheckType, MVT::i32, ++/*483338*/ OPC_MoveParent, ++/*483339*/ OPC_MoveChild6, ++/*483340*/ OPC_CheckInteger, 1, ++/*483342*/ OPC_CheckType, MVT::i32, ++/*483344*/ OPC_MoveParent, ++/*483345*/ OPC_MoveChild7, ++/*483346*/ OPC_CheckInteger, 1, ++/*483348*/ OPC_CheckType, MVT::i32, ++/*483350*/ OPC_MoveParent, ++/*483351*/ OPC_CheckType, MVT::v8i32, ++/*483353*/ OPC_MoveParent, ++/*483354*/ OPC_CheckType, MVT::v8i32, ++/*483356*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*483358*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*483366*/ 0, /*End of Scope*/ ++/*483367*/ /*Scope*/ 51|128,1/*179*/, /*->483548*/ ++/*483369*/ OPC_MoveChild0, ++/*483370*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*483373*/ OPC_CheckChild0Integer, 1, ++/*483375*/ OPC_CheckChild0Type, MVT::i32, ++/*483377*/ OPC_CheckChild1Integer, 1, ++/*483379*/ OPC_CheckChild1Type, MVT::i32, ++/*483381*/ OPC_CheckChild2Integer, 1, ++/*483383*/ OPC_CheckChild2Type, MVT::i32, ++/*483385*/ OPC_CheckChild3Integer, 1, ++/*483387*/ OPC_CheckChild3Type, MVT::i32, ++/*483389*/ OPC_CheckChild4Integer, 1, ++/*483391*/ OPC_CheckChild4Type, MVT::i32, ++/*483393*/ OPC_MoveChild5, ++/*483394*/ OPC_CheckInteger, 1, ++/*483396*/ OPC_CheckType, MVT::i32, ++/*483398*/ OPC_MoveParent, ++/*483399*/ OPC_MoveChild6, ++/*483400*/ OPC_CheckInteger, 1, ++/*483402*/ OPC_CheckType, MVT::i32, ++/*483404*/ OPC_MoveParent, ++/*483405*/ OPC_MoveChild7, ++/*483406*/ OPC_CheckInteger, 1, ++/*483408*/ OPC_CheckType, MVT::i32, ++/*483410*/ OPC_MoveParent, ++/*483411*/ OPC_MoveParent, ++/*483412*/ OPC_MoveChild1, ++/*483413*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*483416*/ OPC_Scope, 64, /*->483482*/ // 2 children in Scope ++/*483418*/ OPC_CheckChild0Same, 1, ++/*483420*/ OPC_CheckChild1Same, 0, ++/*483422*/ OPC_MoveParent, ++/*483423*/ OPC_MoveParent, ++/*483424*/ OPC_MoveParent, ++/*483425*/ OPC_MoveChild1, ++/*483426*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*483429*/ OPC_CheckChild0Integer, 1, ++/*483431*/ OPC_CheckChild0Type, MVT::i32, ++/*483433*/ OPC_CheckChild1Integer, 1, ++/*483435*/ OPC_CheckChild1Type, MVT::i32, ++/*483437*/ OPC_CheckChild2Integer, 1, ++/*483439*/ OPC_CheckChild2Type, MVT::i32, ++/*483441*/ OPC_CheckChild3Integer, 1, ++/*483443*/ OPC_CheckChild3Type, MVT::i32, ++/*483445*/ OPC_CheckChild4Integer, 1, ++/*483447*/ OPC_CheckChild4Type, MVT::i32, ++/*483449*/ OPC_MoveChild5, ++/*483450*/ OPC_CheckInteger, 1, ++/*483452*/ OPC_CheckType, MVT::i32, ++/*483454*/ OPC_MoveParent, ++/*483455*/ OPC_MoveChild6, ++/*483456*/ OPC_CheckInteger, 1, ++/*483458*/ OPC_CheckType, MVT::i32, ++/*483460*/ OPC_MoveParent, ++/*483461*/ OPC_MoveChild7, ++/*483462*/ OPC_CheckInteger, 1, ++/*483464*/ OPC_CheckType, MVT::i32, ++/*483466*/ OPC_MoveParent, ++/*483467*/ OPC_CheckType, MVT::v8i32, ++/*483469*/ OPC_MoveParent, ++/*483470*/ OPC_CheckType, MVT::v8i32, ++/*483472*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*483474*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*483482*/ /*Scope*/ 64, /*->483547*/ ++/*483483*/ OPC_CheckChild0Same, 0, ++/*483485*/ OPC_CheckChild1Same, 1, ++/*483487*/ OPC_MoveParent, ++/*483488*/ OPC_MoveParent, ++/*483489*/ OPC_MoveParent, ++/*483490*/ OPC_MoveChild1, ++/*483491*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*483494*/ OPC_CheckChild0Integer, 1, ++/*483496*/ OPC_CheckChild0Type, MVT::i32, ++/*483498*/ OPC_CheckChild1Integer, 1, ++/*483500*/ OPC_CheckChild1Type, MVT::i32, ++/*483502*/ OPC_CheckChild2Integer, 1, ++/*483504*/ OPC_CheckChild2Type, MVT::i32, ++/*483506*/ OPC_CheckChild3Integer, 1, ++/*483508*/ OPC_CheckChild3Type, MVT::i32, ++/*483510*/ OPC_CheckChild4Integer, 1, ++/*483512*/ OPC_CheckChild4Type, MVT::i32, ++/*483514*/ OPC_MoveChild5, ++/*483515*/ OPC_CheckInteger, 1, ++/*483517*/ OPC_CheckType, MVT::i32, ++/*483519*/ OPC_MoveParent, ++/*483520*/ OPC_MoveChild6, ++/*483521*/ OPC_CheckInteger, 1, ++/*483523*/ OPC_CheckType, MVT::i32, ++/*483525*/ OPC_MoveParent, ++/*483526*/ OPC_MoveChild7, ++/*483527*/ OPC_CheckInteger, 1, ++/*483529*/ OPC_CheckType, MVT::i32, ++/*483531*/ OPC_MoveParent, ++/*483532*/ OPC_CheckType, MVT::v8i32, ++/*483534*/ OPC_MoveParent, ++/*483535*/ OPC_CheckType, MVT::v8i32, ++/*483537*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*483539*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*483547*/ 0, /*End of Scope*/ ++/*483548*/ 0, /*End of Scope*/ ++/*483549*/ 0, /*End of Scope*/ ++/*483550*/ 0, /*End of Scope*/ ++/*483551*/ 0, // EndSwitchOpcode ++/*483552*/ /*Scope*/ 27|128,43/*5531*/, /*->489085*/ ++/*483554*/ OPC_RecordChild0, // #0 = $b ++/*483555*/ OPC_MoveChild1, ++/*483556*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*483559*/ OPC_Scope, 99|128,10/*1379*/, /*->484941*/ // 4 children in Scope ++/*483562*/ OPC_MoveChild0, ++/*483563*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*483566*/ OPC_CheckChild0Integer, 1, ++/*483568*/ OPC_CheckChild0Type, MVT::i32, ++/*483570*/ OPC_CheckChild1Integer, 1, ++/*483572*/ OPC_CheckChild1Type, MVT::i32, ++/*483574*/ OPC_CheckChild2Integer, 1, ++/*483576*/ OPC_CheckChild2Type, MVT::i32, ++/*483578*/ OPC_CheckChild3Integer, 1, ++/*483580*/ OPC_CheckChild3Type, MVT::i32, ++/*483582*/ OPC_CheckChild4Integer, 1, ++/*483584*/ OPC_CheckChild4Type, MVT::i32, ++/*483586*/ OPC_MoveChild5, ++/*483587*/ OPC_CheckInteger, 1, ++/*483589*/ OPC_CheckType, MVT::i32, ++/*483591*/ OPC_MoveParent, ++/*483592*/ OPC_MoveChild6, ++/*483593*/ OPC_CheckInteger, 1, ++/*483595*/ OPC_CheckType, MVT::i32, ++/*483597*/ OPC_MoveParent, ++/*483598*/ OPC_MoveChild7, ++/*483599*/ OPC_CheckInteger, 1, ++/*483601*/ OPC_CheckType, MVT::i32, ++/*483603*/ OPC_MoveParent, ++/*483604*/ OPC_MoveParent, ++/*483605*/ OPC_RecordChild1, // #1 = $a ++/*483606*/ OPC_MoveParent, ++/*483607*/ OPC_MoveParent, ++/*483608*/ OPC_MoveChild1, ++/*483609*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*483612*/ OPC_CheckChild0Integer, 31, ++/*483614*/ OPC_CheckChild0Type, MVT::i32, ++/*483616*/ OPC_CheckChild1Integer, 31, ++/*483618*/ OPC_CheckChild1Type, MVT::i32, ++/*483620*/ OPC_CheckChild2Integer, 31, ++/*483622*/ OPC_CheckChild2Type, MVT::i32, ++/*483624*/ OPC_CheckChild3Integer, 31, ++/*483626*/ OPC_CheckChild3Type, MVT::i32, ++/*483628*/ OPC_CheckChild4Integer, 31, ++/*483630*/ OPC_CheckChild4Type, MVT::i32, ++/*483632*/ OPC_MoveChild5, ++/*483633*/ OPC_CheckInteger, 31, ++/*483635*/ OPC_CheckType, MVT::i32, ++/*483637*/ OPC_MoveParent, ++/*483638*/ OPC_MoveChild6, ++/*483639*/ OPC_CheckInteger, 31, ++/*483641*/ OPC_CheckType, MVT::i32, ++/*483643*/ OPC_MoveParent, ++/*483644*/ OPC_MoveChild7, ++/*483645*/ OPC_CheckInteger, 31, ++/*483647*/ OPC_CheckType, MVT::i32, ++/*483649*/ OPC_MoveParent, ++/*483650*/ OPC_CheckType, MVT::v8i32, ++/*483652*/ OPC_MoveParent, ++/*483653*/ OPC_MoveParent, ++/*483654*/ OPC_MoveChild1, ++/*483655*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*483658*/ OPC_Scope, 14|128,5/*654*/, /*->484315*/ // 4 children in Scope ++/*483661*/ OPC_MoveChild0, ++/*483662*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*483665*/ OPC_Scope, 107, /*->483774*/ // 6 children in Scope ++/*483667*/ OPC_MoveChild0, ++/*483668*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*483671*/ OPC_CheckChild0Integer, 1, ++/*483673*/ OPC_CheckChild0Type, MVT::i32, ++/*483675*/ OPC_CheckChild1Integer, 1, ++/*483677*/ OPC_CheckChild1Type, MVT::i32, ++/*483679*/ OPC_CheckChild2Integer, 1, ++/*483681*/ OPC_CheckChild2Type, MVT::i32, ++/*483683*/ OPC_CheckChild3Integer, 1, ++/*483685*/ OPC_CheckChild3Type, MVT::i32, ++/*483687*/ OPC_CheckChild4Integer, 1, ++/*483689*/ OPC_CheckChild4Type, MVT::i32, ++/*483691*/ OPC_MoveChild5, ++/*483692*/ OPC_CheckInteger, 1, ++/*483694*/ OPC_CheckType, MVT::i32, ++/*483696*/ OPC_MoveParent, ++/*483697*/ OPC_MoveChild6, ++/*483698*/ OPC_CheckInteger, 1, ++/*483700*/ OPC_CheckType, MVT::i32, ++/*483702*/ OPC_MoveParent, ++/*483703*/ OPC_MoveChild7, ++/*483704*/ OPC_CheckInteger, 1, ++/*483706*/ OPC_CheckType, MVT::i32, ++/*483708*/ OPC_MoveParent, ++/*483709*/ OPC_MoveParent, ++/*483710*/ OPC_CheckChild1Same, 1, ++/*483712*/ OPC_MoveParent, ++/*483713*/ OPC_CheckChild1Same, 0, ++/*483715*/ OPC_MoveParent, ++/*483716*/ OPC_MoveParent, ++/*483717*/ OPC_MoveChild1, ++/*483718*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*483721*/ OPC_CheckChild0Integer, 1, ++/*483723*/ OPC_CheckChild0Type, MVT::i32, ++/*483725*/ OPC_CheckChild1Integer, 1, ++/*483727*/ OPC_CheckChild1Type, MVT::i32, ++/*483729*/ OPC_CheckChild2Integer, 1, ++/*483731*/ OPC_CheckChild2Type, MVT::i32, ++/*483733*/ OPC_CheckChild3Integer, 1, ++/*483735*/ OPC_CheckChild3Type, MVT::i32, ++/*483737*/ OPC_CheckChild4Integer, 1, ++/*483739*/ OPC_CheckChild4Type, MVT::i32, ++/*483741*/ OPC_MoveChild5, ++/*483742*/ OPC_CheckInteger, 1, ++/*483744*/ OPC_CheckType, MVT::i32, ++/*483746*/ OPC_MoveParent, ++/*483747*/ OPC_MoveChild6, ++/*483748*/ OPC_CheckInteger, 1, ++/*483750*/ OPC_CheckType, MVT::i32, ++/*483752*/ OPC_MoveParent, ++/*483753*/ OPC_MoveChild7, ++/*483754*/ OPC_CheckInteger, 1, ++/*483756*/ OPC_CheckType, MVT::i32, ++/*483758*/ OPC_MoveParent, ++/*483759*/ OPC_CheckType, MVT::v8i32, ++/*483761*/ OPC_MoveParent, ++/*483762*/ OPC_CheckType, MVT::v8i32, ++/*483764*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*483766*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a), LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*483774*/ /*Scope*/ 107, /*->483882*/ ++/*483775*/ OPC_CheckChild0Same, 1, ++/*483777*/ OPC_MoveChild1, ++/*483778*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*483781*/ OPC_CheckChild0Integer, 1, ++/*483783*/ OPC_CheckChild0Type, MVT::i32, ++/*483785*/ OPC_CheckChild1Integer, 1, ++/*483787*/ OPC_CheckChild1Type, MVT::i32, ++/*483789*/ OPC_CheckChild2Integer, 1, ++/*483791*/ OPC_CheckChild2Type, MVT::i32, ++/*483793*/ OPC_CheckChild3Integer, 1, ++/*483795*/ OPC_CheckChild3Type, MVT::i32, ++/*483797*/ OPC_CheckChild4Integer, 1, ++/*483799*/ OPC_CheckChild4Type, MVT::i32, ++/*483801*/ OPC_MoveChild5, ++/*483802*/ OPC_CheckInteger, 1, ++/*483804*/ OPC_CheckType, MVT::i32, ++/*483806*/ OPC_MoveParent, ++/*483807*/ OPC_MoveChild6, ++/*483808*/ OPC_CheckInteger, 1, ++/*483810*/ OPC_CheckType, MVT::i32, ++/*483812*/ OPC_MoveParent, ++/*483813*/ OPC_MoveChild7, ++/*483814*/ OPC_CheckInteger, 1, ++/*483816*/ OPC_CheckType, MVT::i32, ++/*483818*/ OPC_MoveParent, ++/*483819*/ OPC_MoveParent, ++/*483820*/ OPC_MoveParent, ++/*483821*/ OPC_CheckChild1Same, 0, ++/*483823*/ OPC_MoveParent, ++/*483824*/ OPC_MoveParent, ++/*483825*/ OPC_MoveChild1, ++/*483826*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*483829*/ OPC_CheckChild0Integer, 1, ++/*483831*/ OPC_CheckChild0Type, MVT::i32, ++/*483833*/ OPC_CheckChild1Integer, 1, ++/*483835*/ OPC_CheckChild1Type, MVT::i32, ++/*483837*/ OPC_CheckChild2Integer, 1, ++/*483839*/ OPC_CheckChild2Type, MVT::i32, ++/*483841*/ OPC_CheckChild3Integer, 1, ++/*483843*/ OPC_CheckChild3Type, MVT::i32, ++/*483845*/ OPC_CheckChild4Integer, 1, ++/*483847*/ OPC_CheckChild4Type, MVT::i32, ++/*483849*/ OPC_MoveChild5, ++/*483850*/ OPC_CheckInteger, 1, ++/*483852*/ OPC_CheckType, MVT::i32, ++/*483854*/ OPC_MoveParent, ++/*483855*/ OPC_MoveChild6, ++/*483856*/ OPC_CheckInteger, 1, ++/*483858*/ OPC_CheckType, MVT::i32, ++/*483860*/ OPC_MoveParent, ++/*483861*/ OPC_MoveChild7, ++/*483862*/ OPC_CheckInteger, 1, ++/*483864*/ OPC_CheckType, MVT::i32, ++/*483866*/ OPC_MoveParent, ++/*483867*/ OPC_CheckType, MVT::v8i32, ++/*483869*/ OPC_MoveParent, ++/*483870*/ OPC_CheckType, MVT::v8i32, ++/*483872*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*483874*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*483882*/ /*Scope*/ 107, /*->483990*/ ++/*483883*/ OPC_MoveChild0, ++/*483884*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*483887*/ OPC_CheckChild0Integer, 1, ++/*483889*/ OPC_CheckChild0Type, MVT::i32, ++/*483891*/ OPC_CheckChild1Integer, 1, ++/*483893*/ OPC_CheckChild1Type, MVT::i32, ++/*483895*/ OPC_CheckChild2Integer, 1, ++/*483897*/ OPC_CheckChild2Type, MVT::i32, ++/*483899*/ OPC_CheckChild3Integer, 1, ++/*483901*/ OPC_CheckChild3Type, MVT::i32, ++/*483903*/ OPC_CheckChild4Integer, 1, ++/*483905*/ OPC_CheckChild4Type, MVT::i32, ++/*483907*/ OPC_MoveChild5, ++/*483908*/ OPC_CheckInteger, 1, ++/*483910*/ OPC_CheckType, MVT::i32, ++/*483912*/ OPC_MoveParent, ++/*483913*/ OPC_MoveChild6, ++/*483914*/ OPC_CheckInteger, 1, ++/*483916*/ OPC_CheckType, MVT::i32, ++/*483918*/ OPC_MoveParent, ++/*483919*/ OPC_MoveChild7, ++/*483920*/ OPC_CheckInteger, 1, ++/*483922*/ OPC_CheckType, MVT::i32, ++/*483924*/ OPC_MoveParent, ++/*483925*/ OPC_MoveParent, ++/*483926*/ OPC_CheckChild1Same, 0, ++/*483928*/ OPC_MoveParent, ++/*483929*/ OPC_CheckChild1Same, 1, ++/*483931*/ OPC_MoveParent, ++/*483932*/ OPC_MoveParent, ++/*483933*/ OPC_MoveChild1, ++/*483934*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*483937*/ OPC_CheckChild0Integer, 1, ++/*483939*/ OPC_CheckChild0Type, MVT::i32, ++/*483941*/ OPC_CheckChild1Integer, 1, ++/*483943*/ OPC_CheckChild1Type, MVT::i32, ++/*483945*/ OPC_CheckChild2Integer, 1, ++/*483947*/ OPC_CheckChild2Type, MVT::i32, ++/*483949*/ OPC_CheckChild3Integer, 1, ++/*483951*/ OPC_CheckChild3Type, MVT::i32, ++/*483953*/ OPC_CheckChild4Integer, 1, ++/*483955*/ OPC_CheckChild4Type, MVT::i32, ++/*483957*/ OPC_MoveChild5, ++/*483958*/ OPC_CheckInteger, 1, ++/*483960*/ OPC_CheckType, MVT::i32, ++/*483962*/ OPC_MoveParent, ++/*483963*/ OPC_MoveChild6, ++/*483964*/ OPC_CheckInteger, 1, ++/*483966*/ OPC_CheckType, MVT::i32, ++/*483968*/ OPC_MoveParent, ++/*483969*/ OPC_MoveChild7, ++/*483970*/ OPC_CheckInteger, 1, ++/*483972*/ OPC_CheckType, MVT::i32, ++/*483974*/ OPC_MoveParent, ++/*483975*/ OPC_CheckType, MVT::v8i32, ++/*483977*/ OPC_MoveParent, ++/*483978*/ OPC_CheckType, MVT::v8i32, ++/*483980*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*483982*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b), LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*483990*/ /*Scope*/ 107, /*->484098*/ ++/*483991*/ OPC_CheckChild0Same, 0, ++/*483993*/ OPC_MoveChild1, ++/*483994*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*483997*/ OPC_CheckChild0Integer, 1, ++/*483999*/ OPC_CheckChild0Type, MVT::i32, ++/*484001*/ OPC_CheckChild1Integer, 1, ++/*484003*/ OPC_CheckChild1Type, MVT::i32, ++/*484005*/ OPC_CheckChild2Integer, 1, ++/*484007*/ OPC_CheckChild2Type, MVT::i32, ++/*484009*/ OPC_CheckChild3Integer, 1, ++/*484011*/ OPC_CheckChild3Type, MVT::i32, ++/*484013*/ OPC_CheckChild4Integer, 1, ++/*484015*/ OPC_CheckChild4Type, MVT::i32, ++/*484017*/ OPC_MoveChild5, ++/*484018*/ OPC_CheckInteger, 1, ++/*484020*/ OPC_CheckType, MVT::i32, ++/*484022*/ OPC_MoveParent, ++/*484023*/ OPC_MoveChild6, ++/*484024*/ OPC_CheckInteger, 1, ++/*484026*/ OPC_CheckType, MVT::i32, ++/*484028*/ OPC_MoveParent, ++/*484029*/ OPC_MoveChild7, ++/*484030*/ OPC_CheckInteger, 1, ++/*484032*/ OPC_CheckType, MVT::i32, ++/*484034*/ OPC_MoveParent, ++/*484035*/ OPC_MoveParent, ++/*484036*/ OPC_MoveParent, ++/*484037*/ OPC_CheckChild1Same, 1, ++/*484039*/ OPC_MoveParent, ++/*484040*/ OPC_MoveParent, ++/*484041*/ OPC_MoveChild1, ++/*484042*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*484045*/ OPC_CheckChild0Integer, 1, ++/*484047*/ OPC_CheckChild0Type, MVT::i32, ++/*484049*/ OPC_CheckChild1Integer, 1, ++/*484051*/ OPC_CheckChild1Type, MVT::i32, ++/*484053*/ OPC_CheckChild2Integer, 1, ++/*484055*/ OPC_CheckChild2Type, MVT::i32, ++/*484057*/ OPC_CheckChild3Integer, 1, ++/*484059*/ OPC_CheckChild3Type, MVT::i32, ++/*484061*/ OPC_CheckChild4Integer, 1, ++/*484063*/ OPC_CheckChild4Type, MVT::i32, ++/*484065*/ OPC_MoveChild5, ++/*484066*/ OPC_CheckInteger, 1, ++/*484068*/ OPC_CheckType, MVT::i32, ++/*484070*/ OPC_MoveParent, ++/*484071*/ OPC_MoveChild6, ++/*484072*/ OPC_CheckInteger, 1, ++/*484074*/ OPC_CheckType, MVT::i32, ++/*484076*/ OPC_MoveParent, ++/*484077*/ OPC_MoveChild7, ++/*484078*/ OPC_CheckInteger, 1, ++/*484080*/ OPC_CheckType, MVT::i32, ++/*484082*/ OPC_MoveParent, ++/*484083*/ OPC_CheckType, MVT::v8i32, ++/*484085*/ OPC_MoveParent, ++/*484086*/ OPC_CheckType, MVT::v8i32, ++/*484088*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*484090*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*484098*/ /*Scope*/ 107, /*->484206*/ ++/*484099*/ OPC_CheckChild0Same, 1, ++/*484101*/ OPC_CheckChild1Same, 0, ++/*484103*/ OPC_MoveParent, ++/*484104*/ OPC_MoveChild1, ++/*484105*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*484108*/ OPC_CheckChild0Integer, 1, ++/*484110*/ OPC_CheckChild0Type, MVT::i32, ++/*484112*/ OPC_CheckChild1Integer, 1, ++/*484114*/ OPC_CheckChild1Type, MVT::i32, ++/*484116*/ OPC_CheckChild2Integer, 1, ++/*484118*/ OPC_CheckChild2Type, MVT::i32, ++/*484120*/ OPC_CheckChild3Integer, 1, ++/*484122*/ OPC_CheckChild3Type, MVT::i32, ++/*484124*/ OPC_CheckChild4Integer, 1, ++/*484126*/ OPC_CheckChild4Type, MVT::i32, ++/*484128*/ OPC_MoveChild5, ++/*484129*/ OPC_CheckInteger, 1, ++/*484131*/ OPC_CheckType, MVT::i32, ++/*484133*/ OPC_MoveParent, ++/*484134*/ OPC_MoveChild6, ++/*484135*/ OPC_CheckInteger, 1, ++/*484137*/ OPC_CheckType, MVT::i32, ++/*484139*/ OPC_MoveParent, ++/*484140*/ OPC_MoveChild7, ++/*484141*/ OPC_CheckInteger, 1, ++/*484143*/ OPC_CheckType, MVT::i32, ++/*484145*/ OPC_MoveParent, ++/*484146*/ OPC_MoveParent, ++/*484147*/ OPC_MoveParent, ++/*484148*/ OPC_MoveParent, ++/*484149*/ OPC_MoveChild1, ++/*484150*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*484153*/ OPC_CheckChild0Integer, 1, ++/*484155*/ OPC_CheckChild0Type, MVT::i32, ++/*484157*/ OPC_CheckChild1Integer, 1, ++/*484159*/ OPC_CheckChild1Type, MVT::i32, ++/*484161*/ OPC_CheckChild2Integer, 1, ++/*484163*/ OPC_CheckChild2Type, MVT::i32, ++/*484165*/ OPC_CheckChild3Integer, 1, ++/*484167*/ OPC_CheckChild3Type, MVT::i32, ++/*484169*/ OPC_CheckChild4Integer, 1, ++/*484171*/ OPC_CheckChild4Type, MVT::i32, ++/*484173*/ OPC_MoveChild5, ++/*484174*/ OPC_CheckInteger, 1, ++/*484176*/ OPC_CheckType, MVT::i32, ++/*484178*/ OPC_MoveParent, ++/*484179*/ OPC_MoveChild6, ++/*484180*/ OPC_CheckInteger, 1, ++/*484182*/ OPC_CheckType, MVT::i32, ++/*484184*/ OPC_MoveParent, ++/*484185*/ OPC_MoveChild7, ++/*484186*/ OPC_CheckInteger, 1, ++/*484188*/ OPC_CheckType, MVT::i32, ++/*484190*/ OPC_MoveParent, ++/*484191*/ OPC_CheckType, MVT::v8i32, ++/*484193*/ OPC_MoveParent, ++/*484194*/ OPC_CheckType, MVT::v8i32, ++/*484196*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*484198*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*484206*/ /*Scope*/ 107, /*->484314*/ ++/*484207*/ OPC_CheckChild0Same, 0, ++/*484209*/ OPC_CheckChild1Same, 1, ++/*484211*/ OPC_MoveParent, ++/*484212*/ OPC_MoveChild1, ++/*484213*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*484216*/ OPC_CheckChild0Integer, 1, ++/*484218*/ OPC_CheckChild0Type, MVT::i32, ++/*484220*/ OPC_CheckChild1Integer, 1, ++/*484222*/ OPC_CheckChild1Type, MVT::i32, ++/*484224*/ OPC_CheckChild2Integer, 1, ++/*484226*/ OPC_CheckChild2Type, MVT::i32, ++/*484228*/ OPC_CheckChild3Integer, 1, ++/*484230*/ OPC_CheckChild3Type, MVT::i32, ++/*484232*/ OPC_CheckChild4Integer, 1, ++/*484234*/ OPC_CheckChild4Type, MVT::i32, ++/*484236*/ OPC_MoveChild5, ++/*484237*/ OPC_CheckInteger, 1, ++/*484239*/ OPC_CheckType, MVT::i32, ++/*484241*/ OPC_MoveParent, ++/*484242*/ OPC_MoveChild6, ++/*484243*/ OPC_CheckInteger, 1, ++/*484245*/ OPC_CheckType, MVT::i32, ++/*484247*/ OPC_MoveParent, ++/*484248*/ OPC_MoveChild7, ++/*484249*/ OPC_CheckInteger, 1, ++/*484251*/ OPC_CheckType, MVT::i32, ++/*484253*/ OPC_MoveParent, ++/*484254*/ OPC_MoveParent, ++/*484255*/ OPC_MoveParent, ++/*484256*/ OPC_MoveParent, ++/*484257*/ OPC_MoveChild1, ++/*484258*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*484261*/ OPC_CheckChild0Integer, 1, ++/*484263*/ OPC_CheckChild0Type, MVT::i32, ++/*484265*/ OPC_CheckChild1Integer, 1, ++/*484267*/ OPC_CheckChild1Type, MVT::i32, ++/*484269*/ OPC_CheckChild2Integer, 1, ++/*484271*/ OPC_CheckChild2Type, MVT::i32, ++/*484273*/ OPC_CheckChild3Integer, 1, ++/*484275*/ OPC_CheckChild3Type, MVT::i32, ++/*484277*/ OPC_CheckChild4Integer, 1, ++/*484279*/ OPC_CheckChild4Type, MVT::i32, ++/*484281*/ OPC_MoveChild5, ++/*484282*/ OPC_CheckInteger, 1, ++/*484284*/ OPC_CheckType, MVT::i32, ++/*484286*/ OPC_MoveParent, ++/*484287*/ OPC_MoveChild6, ++/*484288*/ OPC_CheckInteger, 1, ++/*484290*/ OPC_CheckType, MVT::i32, ++/*484292*/ OPC_MoveParent, ++/*484293*/ OPC_MoveChild7, ++/*484294*/ OPC_CheckInteger, 1, ++/*484296*/ OPC_CheckType, MVT::i32, ++/*484298*/ OPC_MoveParent, ++/*484299*/ OPC_CheckType, MVT::v8i32, ++/*484301*/ OPC_MoveParent, ++/*484302*/ OPC_CheckType, MVT::v8i32, ++/*484304*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*484306*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*484314*/ 0, /*End of Scope*/ ++/*484315*/ /*Scope*/ 92|128,1/*220*/, /*->484537*/ ++/*484317*/ OPC_CheckChild0Same, 0, ++/*484319*/ OPC_MoveChild1, ++/*484320*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*484323*/ OPC_Scope, 105, /*->484430*/ // 2 children in Scope ++/*484325*/ OPC_MoveChild0, ++/*484326*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*484329*/ OPC_CheckChild0Integer, 1, ++/*484331*/ OPC_CheckChild0Type, MVT::i32, ++/*484333*/ OPC_CheckChild1Integer, 1, ++/*484335*/ OPC_CheckChild1Type, MVT::i32, ++/*484337*/ OPC_CheckChild2Integer, 1, ++/*484339*/ OPC_CheckChild2Type, MVT::i32, ++/*484341*/ OPC_CheckChild3Integer, 1, ++/*484343*/ OPC_CheckChild3Type, MVT::i32, ++/*484345*/ OPC_CheckChild4Integer, 1, ++/*484347*/ OPC_CheckChild4Type, MVT::i32, ++/*484349*/ OPC_MoveChild5, ++/*484350*/ OPC_CheckInteger, 1, ++/*484352*/ OPC_CheckType, MVT::i32, ++/*484354*/ OPC_MoveParent, ++/*484355*/ OPC_MoveChild6, ++/*484356*/ OPC_CheckInteger, 1, ++/*484358*/ OPC_CheckType, MVT::i32, ++/*484360*/ OPC_MoveParent, ++/*484361*/ OPC_MoveChild7, ++/*484362*/ OPC_CheckInteger, 1, ++/*484364*/ OPC_CheckType, MVT::i32, ++/*484366*/ OPC_MoveParent, ++/*484367*/ OPC_MoveParent, ++/*484368*/ OPC_CheckChild1Same, 1, ++/*484370*/ OPC_MoveParent, ++/*484371*/ OPC_MoveParent, ++/*484372*/ OPC_MoveParent, ++/*484373*/ OPC_MoveChild1, ++/*484374*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*484377*/ OPC_CheckChild0Integer, 1, ++/*484379*/ OPC_CheckChild0Type, MVT::i32, ++/*484381*/ OPC_CheckChild1Integer, 1, ++/*484383*/ OPC_CheckChild1Type, MVT::i32, ++/*484385*/ OPC_CheckChild2Integer, 1, ++/*484387*/ OPC_CheckChild2Type, MVT::i32, ++/*484389*/ OPC_CheckChild3Integer, 1, ++/*484391*/ OPC_CheckChild3Type, MVT::i32, ++/*484393*/ OPC_CheckChild4Integer, 1, ++/*484395*/ OPC_CheckChild4Type, MVT::i32, ++/*484397*/ OPC_MoveChild5, ++/*484398*/ OPC_CheckInteger, 1, ++/*484400*/ OPC_CheckType, MVT::i32, ++/*484402*/ OPC_MoveParent, ++/*484403*/ OPC_MoveChild6, ++/*484404*/ OPC_CheckInteger, 1, ++/*484406*/ OPC_CheckType, MVT::i32, ++/*484408*/ OPC_MoveParent, ++/*484409*/ OPC_MoveChild7, ++/*484410*/ OPC_CheckInteger, 1, ++/*484412*/ OPC_CheckType, MVT::i32, ++/*484414*/ OPC_MoveParent, ++/*484415*/ OPC_CheckType, MVT::v8i32, ++/*484417*/ OPC_MoveParent, ++/*484418*/ OPC_CheckType, MVT::v8i32, ++/*484420*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*484422*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*484430*/ /*Scope*/ 105, /*->484536*/ ++/*484431*/ OPC_CheckChild0Same, 1, ++/*484433*/ OPC_MoveChild1, ++/*484434*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*484437*/ OPC_CheckChild0Integer, 1, ++/*484439*/ OPC_CheckChild0Type, MVT::i32, ++/*484441*/ OPC_CheckChild1Integer, 1, ++/*484443*/ OPC_CheckChild1Type, MVT::i32, ++/*484445*/ OPC_CheckChild2Integer, 1, ++/*484447*/ OPC_CheckChild2Type, MVT::i32, ++/*484449*/ OPC_CheckChild3Integer, 1, ++/*484451*/ OPC_CheckChild3Type, MVT::i32, ++/*484453*/ OPC_CheckChild4Integer, 1, ++/*484455*/ OPC_CheckChild4Type, MVT::i32, ++/*484457*/ OPC_MoveChild5, ++/*484458*/ OPC_CheckInteger, 1, ++/*484460*/ OPC_CheckType, MVT::i32, ++/*484462*/ OPC_MoveParent, ++/*484463*/ OPC_MoveChild6, ++/*484464*/ OPC_CheckInteger, 1, ++/*484466*/ OPC_CheckType, MVT::i32, ++/*484468*/ OPC_MoveParent, ++/*484469*/ OPC_MoveChild7, ++/*484470*/ OPC_CheckInteger, 1, ++/*484472*/ OPC_CheckType, MVT::i32, ++/*484474*/ OPC_MoveParent, ++/*484475*/ OPC_MoveParent, ++/*484476*/ OPC_MoveParent, ++/*484477*/ OPC_MoveParent, ++/*484478*/ OPC_MoveParent, ++/*484479*/ OPC_MoveChild1, ++/*484480*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*484483*/ OPC_CheckChild0Integer, 1, ++/*484485*/ OPC_CheckChild0Type, MVT::i32, ++/*484487*/ OPC_CheckChild1Integer, 1, ++/*484489*/ OPC_CheckChild1Type, MVT::i32, ++/*484491*/ OPC_CheckChild2Integer, 1, ++/*484493*/ OPC_CheckChild2Type, MVT::i32, ++/*484495*/ OPC_CheckChild3Integer, 1, ++/*484497*/ OPC_CheckChild3Type, MVT::i32, ++/*484499*/ OPC_CheckChild4Integer, 1, ++/*484501*/ OPC_CheckChild4Type, MVT::i32, ++/*484503*/ OPC_MoveChild5, ++/*484504*/ OPC_CheckInteger, 1, ++/*484506*/ OPC_CheckType, MVT::i32, ++/*484508*/ OPC_MoveParent, ++/*484509*/ OPC_MoveChild6, ++/*484510*/ OPC_CheckInteger, 1, ++/*484512*/ OPC_CheckType, MVT::i32, ++/*484514*/ OPC_MoveParent, ++/*484515*/ OPC_MoveChild7, ++/*484516*/ OPC_CheckInteger, 1, ++/*484518*/ OPC_CheckType, MVT::i32, ++/*484520*/ OPC_MoveParent, ++/*484521*/ OPC_CheckType, MVT::v8i32, ++/*484523*/ OPC_MoveParent, ++/*484524*/ OPC_CheckType, MVT::v8i32, ++/*484526*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*484528*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*484536*/ 0, /*End of Scope*/ ++/*484537*/ /*Scope*/ 92|128,1/*220*/, /*->484759*/ ++/*484539*/ OPC_CheckChild0Same, 1, ++/*484541*/ OPC_MoveChild1, ++/*484542*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*484545*/ OPC_Scope, 105, /*->484652*/ // 2 children in Scope ++/*484547*/ OPC_MoveChild0, ++/*484548*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*484551*/ OPC_CheckChild0Integer, 1, ++/*484553*/ OPC_CheckChild0Type, MVT::i32, ++/*484555*/ OPC_CheckChild1Integer, 1, ++/*484557*/ OPC_CheckChild1Type, MVT::i32, ++/*484559*/ OPC_CheckChild2Integer, 1, ++/*484561*/ OPC_CheckChild2Type, MVT::i32, ++/*484563*/ OPC_CheckChild3Integer, 1, ++/*484565*/ OPC_CheckChild3Type, MVT::i32, ++/*484567*/ OPC_CheckChild4Integer, 1, ++/*484569*/ OPC_CheckChild4Type, MVT::i32, ++/*484571*/ OPC_MoveChild5, ++/*484572*/ OPC_CheckInteger, 1, ++/*484574*/ OPC_CheckType, MVT::i32, ++/*484576*/ OPC_MoveParent, ++/*484577*/ OPC_MoveChild6, ++/*484578*/ OPC_CheckInteger, 1, ++/*484580*/ OPC_CheckType, MVT::i32, ++/*484582*/ OPC_MoveParent, ++/*484583*/ OPC_MoveChild7, ++/*484584*/ OPC_CheckInteger, 1, ++/*484586*/ OPC_CheckType, MVT::i32, ++/*484588*/ OPC_MoveParent, ++/*484589*/ OPC_MoveParent, ++/*484590*/ OPC_CheckChild1Same, 0, ++/*484592*/ OPC_MoveParent, ++/*484593*/ OPC_MoveParent, ++/*484594*/ OPC_MoveParent, ++/*484595*/ OPC_MoveChild1, ++/*484596*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*484599*/ OPC_CheckChild0Integer, 1, ++/*484601*/ OPC_CheckChild0Type, MVT::i32, ++/*484603*/ OPC_CheckChild1Integer, 1, ++/*484605*/ OPC_CheckChild1Type, MVT::i32, ++/*484607*/ OPC_CheckChild2Integer, 1, ++/*484609*/ OPC_CheckChild2Type, MVT::i32, ++/*484611*/ OPC_CheckChild3Integer, 1, ++/*484613*/ OPC_CheckChild3Type, MVT::i32, ++/*484615*/ OPC_CheckChild4Integer, 1, ++/*484617*/ OPC_CheckChild4Type, MVT::i32, ++/*484619*/ OPC_MoveChild5, ++/*484620*/ OPC_CheckInteger, 1, ++/*484622*/ OPC_CheckType, MVT::i32, ++/*484624*/ OPC_MoveParent, ++/*484625*/ OPC_MoveChild6, ++/*484626*/ OPC_CheckInteger, 1, ++/*484628*/ OPC_CheckType, MVT::i32, ++/*484630*/ OPC_MoveParent, ++/*484631*/ OPC_MoveChild7, ++/*484632*/ OPC_CheckInteger, 1, ++/*484634*/ OPC_CheckType, MVT::i32, ++/*484636*/ OPC_MoveParent, ++/*484637*/ OPC_CheckType, MVT::v8i32, ++/*484639*/ OPC_MoveParent, ++/*484640*/ OPC_CheckType, MVT::v8i32, ++/*484642*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*484644*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*484652*/ /*Scope*/ 105, /*->484758*/ ++/*484653*/ OPC_CheckChild0Same, 0, ++/*484655*/ OPC_MoveChild1, ++/*484656*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*484659*/ OPC_CheckChild0Integer, 1, ++/*484661*/ OPC_CheckChild0Type, MVT::i32, ++/*484663*/ OPC_CheckChild1Integer, 1, ++/*484665*/ OPC_CheckChild1Type, MVT::i32, ++/*484667*/ OPC_CheckChild2Integer, 1, ++/*484669*/ OPC_CheckChild2Type, MVT::i32, ++/*484671*/ OPC_CheckChild3Integer, 1, ++/*484673*/ OPC_CheckChild3Type, MVT::i32, ++/*484675*/ OPC_CheckChild4Integer, 1, ++/*484677*/ OPC_CheckChild4Type, MVT::i32, ++/*484679*/ OPC_MoveChild5, ++/*484680*/ OPC_CheckInteger, 1, ++/*484682*/ OPC_CheckType, MVT::i32, ++/*484684*/ OPC_MoveParent, ++/*484685*/ OPC_MoveChild6, ++/*484686*/ OPC_CheckInteger, 1, ++/*484688*/ OPC_CheckType, MVT::i32, ++/*484690*/ OPC_MoveParent, ++/*484691*/ OPC_MoveChild7, ++/*484692*/ OPC_CheckInteger, 1, ++/*484694*/ OPC_CheckType, MVT::i32, ++/*484696*/ OPC_MoveParent, ++/*484697*/ OPC_MoveParent, ++/*484698*/ OPC_MoveParent, ++/*484699*/ OPC_MoveParent, ++/*484700*/ OPC_MoveParent, ++/*484701*/ OPC_MoveChild1, ++/*484702*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*484705*/ OPC_CheckChild0Integer, 1, ++/*484707*/ OPC_CheckChild0Type, MVT::i32, ++/*484709*/ OPC_CheckChild1Integer, 1, ++/*484711*/ OPC_CheckChild1Type, MVT::i32, ++/*484713*/ OPC_CheckChild2Integer, 1, ++/*484715*/ OPC_CheckChild2Type, MVT::i32, ++/*484717*/ OPC_CheckChild3Integer, 1, ++/*484719*/ OPC_CheckChild3Type, MVT::i32, ++/*484721*/ OPC_CheckChild4Integer, 1, ++/*484723*/ OPC_CheckChild4Type, MVT::i32, ++/*484725*/ OPC_MoveChild5, ++/*484726*/ OPC_CheckInteger, 1, ++/*484728*/ OPC_CheckType, MVT::i32, ++/*484730*/ OPC_MoveParent, ++/*484731*/ OPC_MoveChild6, ++/*484732*/ OPC_CheckInteger, 1, ++/*484734*/ OPC_CheckType, MVT::i32, ++/*484736*/ OPC_MoveParent, ++/*484737*/ OPC_MoveChild7, ++/*484738*/ OPC_CheckInteger, 1, ++/*484740*/ OPC_CheckType, MVT::i32, ++/*484742*/ OPC_MoveParent, ++/*484743*/ OPC_CheckType, MVT::v8i32, ++/*484745*/ OPC_MoveParent, ++/*484746*/ OPC_CheckType, MVT::v8i32, ++/*484748*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*484750*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*484758*/ 0, /*End of Scope*/ ++/*484759*/ /*Scope*/ 51|128,1/*179*/, /*->484940*/ ++/*484761*/ OPC_MoveChild0, ++/*484762*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*484765*/ OPC_CheckChild0Integer, 1, ++/*484767*/ OPC_CheckChild0Type, MVT::i32, ++/*484769*/ OPC_CheckChild1Integer, 1, ++/*484771*/ OPC_CheckChild1Type, MVT::i32, ++/*484773*/ OPC_CheckChild2Integer, 1, ++/*484775*/ OPC_CheckChild2Type, MVT::i32, ++/*484777*/ OPC_CheckChild3Integer, 1, ++/*484779*/ OPC_CheckChild3Type, MVT::i32, ++/*484781*/ OPC_CheckChild4Integer, 1, ++/*484783*/ OPC_CheckChild4Type, MVT::i32, ++/*484785*/ OPC_MoveChild5, ++/*484786*/ OPC_CheckInteger, 1, ++/*484788*/ OPC_CheckType, MVT::i32, ++/*484790*/ OPC_MoveParent, ++/*484791*/ OPC_MoveChild6, ++/*484792*/ OPC_CheckInteger, 1, ++/*484794*/ OPC_CheckType, MVT::i32, ++/*484796*/ OPC_MoveParent, ++/*484797*/ OPC_MoveChild7, ++/*484798*/ OPC_CheckInteger, 1, ++/*484800*/ OPC_CheckType, MVT::i32, ++/*484802*/ OPC_MoveParent, ++/*484803*/ OPC_MoveParent, ++/*484804*/ OPC_MoveChild1, ++/*484805*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*484808*/ OPC_Scope, 64, /*->484874*/ // 2 children in Scope ++/*484810*/ OPC_CheckChild0Same, 1, ++/*484812*/ OPC_CheckChild1Same, 0, ++/*484814*/ OPC_MoveParent, ++/*484815*/ OPC_MoveParent, ++/*484816*/ OPC_MoveParent, ++/*484817*/ OPC_MoveChild1, ++/*484818*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*484821*/ OPC_CheckChild0Integer, 1, ++/*484823*/ OPC_CheckChild0Type, MVT::i32, ++/*484825*/ OPC_CheckChild1Integer, 1, ++/*484827*/ OPC_CheckChild1Type, MVT::i32, ++/*484829*/ OPC_CheckChild2Integer, 1, ++/*484831*/ OPC_CheckChild2Type, MVT::i32, ++/*484833*/ OPC_CheckChild3Integer, 1, ++/*484835*/ OPC_CheckChild3Type, MVT::i32, ++/*484837*/ OPC_CheckChild4Integer, 1, ++/*484839*/ OPC_CheckChild4Type, MVT::i32, ++/*484841*/ OPC_MoveChild5, ++/*484842*/ OPC_CheckInteger, 1, ++/*484844*/ OPC_CheckType, MVT::i32, ++/*484846*/ OPC_MoveParent, ++/*484847*/ OPC_MoveChild6, ++/*484848*/ OPC_CheckInteger, 1, ++/*484850*/ OPC_CheckType, MVT::i32, ++/*484852*/ OPC_MoveParent, ++/*484853*/ OPC_MoveChild7, ++/*484854*/ OPC_CheckInteger, 1, ++/*484856*/ OPC_CheckType, MVT::i32, ++/*484858*/ OPC_MoveParent, ++/*484859*/ OPC_CheckType, MVT::v8i32, ++/*484861*/ OPC_MoveParent, ++/*484862*/ OPC_CheckType, MVT::v8i32, ++/*484864*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*484866*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*484874*/ /*Scope*/ 64, /*->484939*/ ++/*484875*/ OPC_CheckChild0Same, 0, ++/*484877*/ OPC_CheckChild1Same, 1, ++/*484879*/ OPC_MoveParent, ++/*484880*/ OPC_MoveParent, ++/*484881*/ OPC_MoveParent, ++/*484882*/ OPC_MoveChild1, ++/*484883*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*484886*/ OPC_CheckChild0Integer, 1, ++/*484888*/ OPC_CheckChild0Type, MVT::i32, ++/*484890*/ OPC_CheckChild1Integer, 1, ++/*484892*/ OPC_CheckChild1Type, MVT::i32, ++/*484894*/ OPC_CheckChild2Integer, 1, ++/*484896*/ OPC_CheckChild2Type, MVT::i32, ++/*484898*/ OPC_CheckChild3Integer, 1, ++/*484900*/ OPC_CheckChild3Type, MVT::i32, ++/*484902*/ OPC_CheckChild4Integer, 1, ++/*484904*/ OPC_CheckChild4Type, MVT::i32, ++/*484906*/ OPC_MoveChild5, ++/*484907*/ OPC_CheckInteger, 1, ++/*484909*/ OPC_CheckType, MVT::i32, ++/*484911*/ OPC_MoveParent, ++/*484912*/ OPC_MoveChild6, ++/*484913*/ OPC_CheckInteger, 1, ++/*484915*/ OPC_CheckType, MVT::i32, ++/*484917*/ OPC_MoveParent, ++/*484918*/ OPC_MoveChild7, ++/*484919*/ OPC_CheckInteger, 1, ++/*484921*/ OPC_CheckType, MVT::i32, ++/*484923*/ OPC_MoveParent, ++/*484924*/ OPC_CheckType, MVT::v8i32, ++/*484926*/ OPC_MoveParent, ++/*484927*/ OPC_CheckType, MVT::v8i32, ++/*484929*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*484931*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*484939*/ 0, /*End of Scope*/ ++/*484940*/ 0, /*End of Scope*/ ++/*484941*/ /*Scope*/ 99|128,10/*1379*/, /*->486322*/ ++/*484943*/ OPC_RecordChild0, // #1 = $a ++/*484944*/ OPC_MoveChild1, ++/*484945*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*484948*/ OPC_CheckChild0Integer, 1, ++/*484950*/ OPC_CheckChild0Type, MVT::i32, ++/*484952*/ OPC_CheckChild1Integer, 1, ++/*484954*/ OPC_CheckChild1Type, MVT::i32, ++/*484956*/ OPC_CheckChild2Integer, 1, ++/*484958*/ OPC_CheckChild2Type, MVT::i32, ++/*484960*/ OPC_CheckChild3Integer, 1, ++/*484962*/ OPC_CheckChild3Type, MVT::i32, ++/*484964*/ OPC_CheckChild4Integer, 1, ++/*484966*/ OPC_CheckChild4Type, MVT::i32, ++/*484968*/ OPC_MoveChild5, ++/*484969*/ OPC_CheckInteger, 1, ++/*484971*/ OPC_CheckType, MVT::i32, ++/*484973*/ OPC_MoveParent, ++/*484974*/ OPC_MoveChild6, ++/*484975*/ OPC_CheckInteger, 1, ++/*484977*/ OPC_CheckType, MVT::i32, ++/*484979*/ OPC_MoveParent, ++/*484980*/ OPC_MoveChild7, ++/*484981*/ OPC_CheckInteger, 1, ++/*484983*/ OPC_CheckType, MVT::i32, ++/*484985*/ OPC_MoveParent, ++/*484986*/ OPC_MoveParent, ++/*484987*/ OPC_MoveParent, ++/*484988*/ OPC_MoveParent, ++/*484989*/ OPC_MoveChild1, ++/*484990*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*484993*/ OPC_CheckChild0Integer, 31, ++/*484995*/ OPC_CheckChild0Type, MVT::i32, ++/*484997*/ OPC_CheckChild1Integer, 31, ++/*484999*/ OPC_CheckChild1Type, MVT::i32, ++/*485001*/ OPC_CheckChild2Integer, 31, ++/*485003*/ OPC_CheckChild2Type, MVT::i32, ++/*485005*/ OPC_CheckChild3Integer, 31, ++/*485007*/ OPC_CheckChild3Type, MVT::i32, ++/*485009*/ OPC_CheckChild4Integer, 31, ++/*485011*/ OPC_CheckChild4Type, MVT::i32, ++/*485013*/ OPC_MoveChild5, ++/*485014*/ OPC_CheckInteger, 31, ++/*485016*/ OPC_CheckType, MVT::i32, ++/*485018*/ OPC_MoveParent, ++/*485019*/ OPC_MoveChild6, ++/*485020*/ OPC_CheckInteger, 31, ++/*485022*/ OPC_CheckType, MVT::i32, ++/*485024*/ OPC_MoveParent, ++/*485025*/ OPC_MoveChild7, ++/*485026*/ OPC_CheckInteger, 31, ++/*485028*/ OPC_CheckType, MVT::i32, ++/*485030*/ OPC_MoveParent, ++/*485031*/ OPC_CheckType, MVT::v8i32, ++/*485033*/ OPC_MoveParent, ++/*485034*/ OPC_MoveParent, ++/*485035*/ OPC_MoveChild1, ++/*485036*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*485039*/ OPC_Scope, 14|128,5/*654*/, /*->485696*/ // 4 children in Scope ++/*485042*/ OPC_MoveChild0, ++/*485043*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*485046*/ OPC_Scope, 107, /*->485155*/ // 6 children in Scope ++/*485048*/ OPC_MoveChild0, ++/*485049*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*485052*/ OPC_CheckChild0Integer, 1, ++/*485054*/ OPC_CheckChild0Type, MVT::i32, ++/*485056*/ OPC_CheckChild1Integer, 1, ++/*485058*/ OPC_CheckChild1Type, MVT::i32, ++/*485060*/ OPC_CheckChild2Integer, 1, ++/*485062*/ OPC_CheckChild2Type, MVT::i32, ++/*485064*/ OPC_CheckChild3Integer, 1, ++/*485066*/ OPC_CheckChild3Type, MVT::i32, ++/*485068*/ OPC_CheckChild4Integer, 1, ++/*485070*/ OPC_CheckChild4Type, MVT::i32, ++/*485072*/ OPC_MoveChild5, ++/*485073*/ OPC_CheckInteger, 1, ++/*485075*/ OPC_CheckType, MVT::i32, ++/*485077*/ OPC_MoveParent, ++/*485078*/ OPC_MoveChild6, ++/*485079*/ OPC_CheckInteger, 1, ++/*485081*/ OPC_CheckType, MVT::i32, ++/*485083*/ OPC_MoveParent, ++/*485084*/ OPC_MoveChild7, ++/*485085*/ OPC_CheckInteger, 1, ++/*485087*/ OPC_CheckType, MVT::i32, ++/*485089*/ OPC_MoveParent, ++/*485090*/ OPC_MoveParent, ++/*485091*/ OPC_CheckChild1Same, 1, ++/*485093*/ OPC_MoveParent, ++/*485094*/ OPC_CheckChild1Same, 0, ++/*485096*/ OPC_MoveParent, ++/*485097*/ OPC_MoveParent, ++/*485098*/ OPC_MoveChild1, ++/*485099*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*485102*/ OPC_CheckChild0Integer, 1, ++/*485104*/ OPC_CheckChild0Type, MVT::i32, ++/*485106*/ OPC_CheckChild1Integer, 1, ++/*485108*/ OPC_CheckChild1Type, MVT::i32, ++/*485110*/ OPC_CheckChild2Integer, 1, ++/*485112*/ OPC_CheckChild2Type, MVT::i32, ++/*485114*/ OPC_CheckChild3Integer, 1, ++/*485116*/ OPC_CheckChild3Type, MVT::i32, ++/*485118*/ OPC_CheckChild4Integer, 1, ++/*485120*/ OPC_CheckChild4Type, MVT::i32, ++/*485122*/ OPC_MoveChild5, ++/*485123*/ OPC_CheckInteger, 1, ++/*485125*/ OPC_CheckType, MVT::i32, ++/*485127*/ OPC_MoveParent, ++/*485128*/ OPC_MoveChild6, ++/*485129*/ OPC_CheckInteger, 1, ++/*485131*/ OPC_CheckType, MVT::i32, ++/*485133*/ OPC_MoveParent, ++/*485134*/ OPC_MoveChild7, ++/*485135*/ OPC_CheckInteger, 1, ++/*485137*/ OPC_CheckType, MVT::i32, ++/*485139*/ OPC_MoveParent, ++/*485140*/ OPC_CheckType, MVT::v8i32, ++/*485142*/ OPC_MoveParent, ++/*485143*/ OPC_CheckType, MVT::v8i32, ++/*485145*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*485147*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a), LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*485155*/ /*Scope*/ 107, /*->485263*/ ++/*485156*/ OPC_CheckChild0Same, 1, ++/*485158*/ OPC_MoveChild1, ++/*485159*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*485162*/ OPC_CheckChild0Integer, 1, ++/*485164*/ OPC_CheckChild0Type, MVT::i32, ++/*485166*/ OPC_CheckChild1Integer, 1, ++/*485168*/ OPC_CheckChild1Type, MVT::i32, ++/*485170*/ OPC_CheckChild2Integer, 1, ++/*485172*/ OPC_CheckChild2Type, MVT::i32, ++/*485174*/ OPC_CheckChild3Integer, 1, ++/*485176*/ OPC_CheckChild3Type, MVT::i32, ++/*485178*/ OPC_CheckChild4Integer, 1, ++/*485180*/ OPC_CheckChild4Type, MVT::i32, ++/*485182*/ OPC_MoveChild5, ++/*485183*/ OPC_CheckInteger, 1, ++/*485185*/ OPC_CheckType, MVT::i32, ++/*485187*/ OPC_MoveParent, ++/*485188*/ OPC_MoveChild6, ++/*485189*/ OPC_CheckInteger, 1, ++/*485191*/ OPC_CheckType, MVT::i32, ++/*485193*/ OPC_MoveParent, ++/*485194*/ OPC_MoveChild7, ++/*485195*/ OPC_CheckInteger, 1, ++/*485197*/ OPC_CheckType, MVT::i32, ++/*485199*/ OPC_MoveParent, ++/*485200*/ OPC_MoveParent, ++/*485201*/ OPC_MoveParent, ++/*485202*/ OPC_CheckChild1Same, 0, ++/*485204*/ OPC_MoveParent, ++/*485205*/ OPC_MoveParent, ++/*485206*/ OPC_MoveChild1, ++/*485207*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*485210*/ OPC_CheckChild0Integer, 1, ++/*485212*/ OPC_CheckChild0Type, MVT::i32, ++/*485214*/ OPC_CheckChild1Integer, 1, ++/*485216*/ OPC_CheckChild1Type, MVT::i32, ++/*485218*/ OPC_CheckChild2Integer, 1, ++/*485220*/ OPC_CheckChild2Type, MVT::i32, ++/*485222*/ OPC_CheckChild3Integer, 1, ++/*485224*/ OPC_CheckChild3Type, MVT::i32, ++/*485226*/ OPC_CheckChild4Integer, 1, ++/*485228*/ OPC_CheckChild4Type, MVT::i32, ++/*485230*/ OPC_MoveChild5, ++/*485231*/ OPC_CheckInteger, 1, ++/*485233*/ OPC_CheckType, MVT::i32, ++/*485235*/ OPC_MoveParent, ++/*485236*/ OPC_MoveChild6, ++/*485237*/ OPC_CheckInteger, 1, ++/*485239*/ OPC_CheckType, MVT::i32, ++/*485241*/ OPC_MoveParent, ++/*485242*/ OPC_MoveChild7, ++/*485243*/ OPC_CheckInteger, 1, ++/*485245*/ OPC_CheckType, MVT::i32, ++/*485247*/ OPC_MoveParent, ++/*485248*/ OPC_CheckType, MVT::v8i32, ++/*485250*/ OPC_MoveParent, ++/*485251*/ OPC_CheckType, MVT::v8i32, ++/*485253*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*485255*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*485263*/ /*Scope*/ 107, /*->485371*/ ++/*485264*/ OPC_MoveChild0, ++/*485265*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*485268*/ OPC_CheckChild0Integer, 1, ++/*485270*/ OPC_CheckChild0Type, MVT::i32, ++/*485272*/ OPC_CheckChild1Integer, 1, ++/*485274*/ OPC_CheckChild1Type, MVT::i32, ++/*485276*/ OPC_CheckChild2Integer, 1, ++/*485278*/ OPC_CheckChild2Type, MVT::i32, ++/*485280*/ OPC_CheckChild3Integer, 1, ++/*485282*/ OPC_CheckChild3Type, MVT::i32, ++/*485284*/ OPC_CheckChild4Integer, 1, ++/*485286*/ OPC_CheckChild4Type, MVT::i32, ++/*485288*/ OPC_MoveChild5, ++/*485289*/ OPC_CheckInteger, 1, ++/*485291*/ OPC_CheckType, MVT::i32, ++/*485293*/ OPC_MoveParent, ++/*485294*/ OPC_MoveChild6, ++/*485295*/ OPC_CheckInteger, 1, ++/*485297*/ OPC_CheckType, MVT::i32, ++/*485299*/ OPC_MoveParent, ++/*485300*/ OPC_MoveChild7, ++/*485301*/ OPC_CheckInteger, 1, ++/*485303*/ OPC_CheckType, MVT::i32, ++/*485305*/ OPC_MoveParent, ++/*485306*/ OPC_MoveParent, ++/*485307*/ OPC_CheckChild1Same, 0, ++/*485309*/ OPC_MoveParent, ++/*485310*/ OPC_CheckChild1Same, 1, ++/*485312*/ OPC_MoveParent, ++/*485313*/ OPC_MoveParent, ++/*485314*/ OPC_MoveChild1, ++/*485315*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*485318*/ OPC_CheckChild0Integer, 1, ++/*485320*/ OPC_CheckChild0Type, MVT::i32, ++/*485322*/ OPC_CheckChild1Integer, 1, ++/*485324*/ OPC_CheckChild1Type, MVT::i32, ++/*485326*/ OPC_CheckChild2Integer, 1, ++/*485328*/ OPC_CheckChild2Type, MVT::i32, ++/*485330*/ OPC_CheckChild3Integer, 1, ++/*485332*/ OPC_CheckChild3Type, MVT::i32, ++/*485334*/ OPC_CheckChild4Integer, 1, ++/*485336*/ OPC_CheckChild4Type, MVT::i32, ++/*485338*/ OPC_MoveChild5, ++/*485339*/ OPC_CheckInteger, 1, ++/*485341*/ OPC_CheckType, MVT::i32, ++/*485343*/ OPC_MoveParent, ++/*485344*/ OPC_MoveChild6, ++/*485345*/ OPC_CheckInteger, 1, ++/*485347*/ OPC_CheckType, MVT::i32, ++/*485349*/ OPC_MoveParent, ++/*485350*/ OPC_MoveChild7, ++/*485351*/ OPC_CheckInteger, 1, ++/*485353*/ OPC_CheckType, MVT::i32, ++/*485355*/ OPC_MoveParent, ++/*485356*/ OPC_CheckType, MVT::v8i32, ++/*485358*/ OPC_MoveParent, ++/*485359*/ OPC_CheckType, MVT::v8i32, ++/*485361*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*485363*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b), LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*485371*/ /*Scope*/ 107, /*->485479*/ ++/*485372*/ OPC_CheckChild0Same, 0, ++/*485374*/ OPC_MoveChild1, ++/*485375*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*485378*/ OPC_CheckChild0Integer, 1, ++/*485380*/ OPC_CheckChild0Type, MVT::i32, ++/*485382*/ OPC_CheckChild1Integer, 1, ++/*485384*/ OPC_CheckChild1Type, MVT::i32, ++/*485386*/ OPC_CheckChild2Integer, 1, ++/*485388*/ OPC_CheckChild2Type, MVT::i32, ++/*485390*/ OPC_CheckChild3Integer, 1, ++/*485392*/ OPC_CheckChild3Type, MVT::i32, ++/*485394*/ OPC_CheckChild4Integer, 1, ++/*485396*/ OPC_CheckChild4Type, MVT::i32, ++/*485398*/ OPC_MoveChild5, ++/*485399*/ OPC_CheckInteger, 1, ++/*485401*/ OPC_CheckType, MVT::i32, ++/*485403*/ OPC_MoveParent, ++/*485404*/ OPC_MoveChild6, ++/*485405*/ OPC_CheckInteger, 1, ++/*485407*/ OPC_CheckType, MVT::i32, ++/*485409*/ OPC_MoveParent, ++/*485410*/ OPC_MoveChild7, ++/*485411*/ OPC_CheckInteger, 1, ++/*485413*/ OPC_CheckType, MVT::i32, ++/*485415*/ OPC_MoveParent, ++/*485416*/ OPC_MoveParent, ++/*485417*/ OPC_MoveParent, ++/*485418*/ OPC_CheckChild1Same, 1, ++/*485420*/ OPC_MoveParent, ++/*485421*/ OPC_MoveParent, ++/*485422*/ OPC_MoveChild1, ++/*485423*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*485426*/ OPC_CheckChild0Integer, 1, ++/*485428*/ OPC_CheckChild0Type, MVT::i32, ++/*485430*/ OPC_CheckChild1Integer, 1, ++/*485432*/ OPC_CheckChild1Type, MVT::i32, ++/*485434*/ OPC_CheckChild2Integer, 1, ++/*485436*/ OPC_CheckChild2Type, MVT::i32, ++/*485438*/ OPC_CheckChild3Integer, 1, ++/*485440*/ OPC_CheckChild3Type, MVT::i32, ++/*485442*/ OPC_CheckChild4Integer, 1, ++/*485444*/ OPC_CheckChild4Type, MVT::i32, ++/*485446*/ OPC_MoveChild5, ++/*485447*/ OPC_CheckInteger, 1, ++/*485449*/ OPC_CheckType, MVT::i32, ++/*485451*/ OPC_MoveParent, ++/*485452*/ OPC_MoveChild6, ++/*485453*/ OPC_CheckInteger, 1, ++/*485455*/ OPC_CheckType, MVT::i32, ++/*485457*/ OPC_MoveParent, ++/*485458*/ OPC_MoveChild7, ++/*485459*/ OPC_CheckInteger, 1, ++/*485461*/ OPC_CheckType, MVT::i32, ++/*485463*/ OPC_MoveParent, ++/*485464*/ OPC_CheckType, MVT::v8i32, ++/*485466*/ OPC_MoveParent, ++/*485467*/ OPC_CheckType, MVT::v8i32, ++/*485469*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*485471*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*485479*/ /*Scope*/ 107, /*->485587*/ ++/*485480*/ OPC_CheckChild0Same, 1, ++/*485482*/ OPC_CheckChild1Same, 0, ++/*485484*/ OPC_MoveParent, ++/*485485*/ OPC_MoveChild1, ++/*485486*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*485489*/ OPC_CheckChild0Integer, 1, ++/*485491*/ OPC_CheckChild0Type, MVT::i32, ++/*485493*/ OPC_CheckChild1Integer, 1, ++/*485495*/ OPC_CheckChild1Type, MVT::i32, ++/*485497*/ OPC_CheckChild2Integer, 1, ++/*485499*/ OPC_CheckChild2Type, MVT::i32, ++/*485501*/ OPC_CheckChild3Integer, 1, ++/*485503*/ OPC_CheckChild3Type, MVT::i32, ++/*485505*/ OPC_CheckChild4Integer, 1, ++/*485507*/ OPC_CheckChild4Type, MVT::i32, ++/*485509*/ OPC_MoveChild5, ++/*485510*/ OPC_CheckInteger, 1, ++/*485512*/ OPC_CheckType, MVT::i32, ++/*485514*/ OPC_MoveParent, ++/*485515*/ OPC_MoveChild6, ++/*485516*/ OPC_CheckInteger, 1, ++/*485518*/ OPC_CheckType, MVT::i32, ++/*485520*/ OPC_MoveParent, ++/*485521*/ OPC_MoveChild7, ++/*485522*/ OPC_CheckInteger, 1, ++/*485524*/ OPC_CheckType, MVT::i32, ++/*485526*/ OPC_MoveParent, ++/*485527*/ OPC_MoveParent, ++/*485528*/ OPC_MoveParent, ++/*485529*/ OPC_MoveParent, ++/*485530*/ OPC_MoveChild1, ++/*485531*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*485534*/ OPC_CheckChild0Integer, 1, ++/*485536*/ OPC_CheckChild0Type, MVT::i32, ++/*485538*/ OPC_CheckChild1Integer, 1, ++/*485540*/ OPC_CheckChild1Type, MVT::i32, ++/*485542*/ OPC_CheckChild2Integer, 1, ++/*485544*/ OPC_CheckChild2Type, MVT::i32, ++/*485546*/ OPC_CheckChild3Integer, 1, ++/*485548*/ OPC_CheckChild3Type, MVT::i32, ++/*485550*/ OPC_CheckChild4Integer, 1, ++/*485552*/ OPC_CheckChild4Type, MVT::i32, ++/*485554*/ OPC_MoveChild5, ++/*485555*/ OPC_CheckInteger, 1, ++/*485557*/ OPC_CheckType, MVT::i32, ++/*485559*/ OPC_MoveParent, ++/*485560*/ OPC_MoveChild6, ++/*485561*/ OPC_CheckInteger, 1, ++/*485563*/ OPC_CheckType, MVT::i32, ++/*485565*/ OPC_MoveParent, ++/*485566*/ OPC_MoveChild7, ++/*485567*/ OPC_CheckInteger, 1, ++/*485569*/ OPC_CheckType, MVT::i32, ++/*485571*/ OPC_MoveParent, ++/*485572*/ OPC_CheckType, MVT::v8i32, ++/*485574*/ OPC_MoveParent, ++/*485575*/ OPC_CheckType, MVT::v8i32, ++/*485577*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*485579*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*485587*/ /*Scope*/ 107, /*->485695*/ ++/*485588*/ OPC_CheckChild0Same, 0, ++/*485590*/ OPC_CheckChild1Same, 1, ++/*485592*/ OPC_MoveParent, ++/*485593*/ OPC_MoveChild1, ++/*485594*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*485597*/ OPC_CheckChild0Integer, 1, ++/*485599*/ OPC_CheckChild0Type, MVT::i32, ++/*485601*/ OPC_CheckChild1Integer, 1, ++/*485603*/ OPC_CheckChild1Type, MVT::i32, ++/*485605*/ OPC_CheckChild2Integer, 1, ++/*485607*/ OPC_CheckChild2Type, MVT::i32, ++/*485609*/ OPC_CheckChild3Integer, 1, ++/*485611*/ OPC_CheckChild3Type, MVT::i32, ++/*485613*/ OPC_CheckChild4Integer, 1, ++/*485615*/ OPC_CheckChild4Type, MVT::i32, ++/*485617*/ OPC_MoveChild5, ++/*485618*/ OPC_CheckInteger, 1, ++/*485620*/ OPC_CheckType, MVT::i32, ++/*485622*/ OPC_MoveParent, ++/*485623*/ OPC_MoveChild6, ++/*485624*/ OPC_CheckInteger, 1, ++/*485626*/ OPC_CheckType, MVT::i32, ++/*485628*/ OPC_MoveParent, ++/*485629*/ OPC_MoveChild7, ++/*485630*/ OPC_CheckInteger, 1, ++/*485632*/ OPC_CheckType, MVT::i32, ++/*485634*/ OPC_MoveParent, ++/*485635*/ OPC_MoveParent, ++/*485636*/ OPC_MoveParent, ++/*485637*/ OPC_MoveParent, ++/*485638*/ OPC_MoveChild1, ++/*485639*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*485642*/ OPC_CheckChild0Integer, 1, ++/*485644*/ OPC_CheckChild0Type, MVT::i32, ++/*485646*/ OPC_CheckChild1Integer, 1, ++/*485648*/ OPC_CheckChild1Type, MVT::i32, ++/*485650*/ OPC_CheckChild2Integer, 1, ++/*485652*/ OPC_CheckChild2Type, MVT::i32, ++/*485654*/ OPC_CheckChild3Integer, 1, ++/*485656*/ OPC_CheckChild3Type, MVT::i32, ++/*485658*/ OPC_CheckChild4Integer, 1, ++/*485660*/ OPC_CheckChild4Type, MVT::i32, ++/*485662*/ OPC_MoveChild5, ++/*485663*/ OPC_CheckInteger, 1, ++/*485665*/ OPC_CheckType, MVT::i32, ++/*485667*/ OPC_MoveParent, ++/*485668*/ OPC_MoveChild6, ++/*485669*/ OPC_CheckInteger, 1, ++/*485671*/ OPC_CheckType, MVT::i32, ++/*485673*/ OPC_MoveParent, ++/*485674*/ OPC_MoveChild7, ++/*485675*/ OPC_CheckInteger, 1, ++/*485677*/ OPC_CheckType, MVT::i32, ++/*485679*/ OPC_MoveParent, ++/*485680*/ OPC_CheckType, MVT::v8i32, ++/*485682*/ OPC_MoveParent, ++/*485683*/ OPC_CheckType, MVT::v8i32, ++/*485685*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*485687*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*485695*/ 0, /*End of Scope*/ ++/*485696*/ /*Scope*/ 92|128,1/*220*/, /*->485918*/ ++/*485698*/ OPC_CheckChild0Same, 0, ++/*485700*/ OPC_MoveChild1, ++/*485701*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*485704*/ OPC_Scope, 105, /*->485811*/ // 2 children in Scope ++/*485706*/ OPC_MoveChild0, ++/*485707*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*485710*/ OPC_CheckChild0Integer, 1, ++/*485712*/ OPC_CheckChild0Type, MVT::i32, ++/*485714*/ OPC_CheckChild1Integer, 1, ++/*485716*/ OPC_CheckChild1Type, MVT::i32, ++/*485718*/ OPC_CheckChild2Integer, 1, ++/*485720*/ OPC_CheckChild2Type, MVT::i32, ++/*485722*/ OPC_CheckChild3Integer, 1, ++/*485724*/ OPC_CheckChild3Type, MVT::i32, ++/*485726*/ OPC_CheckChild4Integer, 1, ++/*485728*/ OPC_CheckChild4Type, MVT::i32, ++/*485730*/ OPC_MoveChild5, ++/*485731*/ OPC_CheckInteger, 1, ++/*485733*/ OPC_CheckType, MVT::i32, ++/*485735*/ OPC_MoveParent, ++/*485736*/ OPC_MoveChild6, ++/*485737*/ OPC_CheckInteger, 1, ++/*485739*/ OPC_CheckType, MVT::i32, ++/*485741*/ OPC_MoveParent, ++/*485742*/ OPC_MoveChild7, ++/*485743*/ OPC_CheckInteger, 1, ++/*485745*/ OPC_CheckType, MVT::i32, ++/*485747*/ OPC_MoveParent, ++/*485748*/ OPC_MoveParent, ++/*485749*/ OPC_CheckChild1Same, 1, ++/*485751*/ OPC_MoveParent, ++/*485752*/ OPC_MoveParent, ++/*485753*/ OPC_MoveParent, ++/*485754*/ OPC_MoveChild1, ++/*485755*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*485758*/ OPC_CheckChild0Integer, 1, ++/*485760*/ OPC_CheckChild0Type, MVT::i32, ++/*485762*/ OPC_CheckChild1Integer, 1, ++/*485764*/ OPC_CheckChild1Type, MVT::i32, ++/*485766*/ OPC_CheckChild2Integer, 1, ++/*485768*/ OPC_CheckChild2Type, MVT::i32, ++/*485770*/ OPC_CheckChild3Integer, 1, ++/*485772*/ OPC_CheckChild3Type, MVT::i32, ++/*485774*/ OPC_CheckChild4Integer, 1, ++/*485776*/ OPC_CheckChild4Type, MVT::i32, ++/*485778*/ OPC_MoveChild5, ++/*485779*/ OPC_CheckInteger, 1, ++/*485781*/ OPC_CheckType, MVT::i32, ++/*485783*/ OPC_MoveParent, ++/*485784*/ OPC_MoveChild6, ++/*485785*/ OPC_CheckInteger, 1, ++/*485787*/ OPC_CheckType, MVT::i32, ++/*485789*/ OPC_MoveParent, ++/*485790*/ OPC_MoveChild7, ++/*485791*/ OPC_CheckInteger, 1, ++/*485793*/ OPC_CheckType, MVT::i32, ++/*485795*/ OPC_MoveParent, ++/*485796*/ OPC_CheckType, MVT::v8i32, ++/*485798*/ OPC_MoveParent, ++/*485799*/ OPC_CheckType, MVT::v8i32, ++/*485801*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*485803*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*485811*/ /*Scope*/ 105, /*->485917*/ ++/*485812*/ OPC_CheckChild0Same, 1, ++/*485814*/ OPC_MoveChild1, ++/*485815*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*485818*/ OPC_CheckChild0Integer, 1, ++/*485820*/ OPC_CheckChild0Type, MVT::i32, ++/*485822*/ OPC_CheckChild1Integer, 1, ++/*485824*/ OPC_CheckChild1Type, MVT::i32, ++/*485826*/ OPC_CheckChild2Integer, 1, ++/*485828*/ OPC_CheckChild2Type, MVT::i32, ++/*485830*/ OPC_CheckChild3Integer, 1, ++/*485832*/ OPC_CheckChild3Type, MVT::i32, ++/*485834*/ OPC_CheckChild4Integer, 1, ++/*485836*/ OPC_CheckChild4Type, MVT::i32, ++/*485838*/ OPC_MoveChild5, ++/*485839*/ OPC_CheckInteger, 1, ++/*485841*/ OPC_CheckType, MVT::i32, ++/*485843*/ OPC_MoveParent, ++/*485844*/ OPC_MoveChild6, ++/*485845*/ OPC_CheckInteger, 1, ++/*485847*/ OPC_CheckType, MVT::i32, ++/*485849*/ OPC_MoveParent, ++/*485850*/ OPC_MoveChild7, ++/*485851*/ OPC_CheckInteger, 1, ++/*485853*/ OPC_CheckType, MVT::i32, ++/*485855*/ OPC_MoveParent, ++/*485856*/ OPC_MoveParent, ++/*485857*/ OPC_MoveParent, ++/*485858*/ OPC_MoveParent, ++/*485859*/ OPC_MoveParent, ++/*485860*/ OPC_MoveChild1, ++/*485861*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*485864*/ OPC_CheckChild0Integer, 1, ++/*485866*/ OPC_CheckChild0Type, MVT::i32, ++/*485868*/ OPC_CheckChild1Integer, 1, ++/*485870*/ OPC_CheckChild1Type, MVT::i32, ++/*485872*/ OPC_CheckChild2Integer, 1, ++/*485874*/ OPC_CheckChild2Type, MVT::i32, ++/*485876*/ OPC_CheckChild3Integer, 1, ++/*485878*/ OPC_CheckChild3Type, MVT::i32, ++/*485880*/ OPC_CheckChild4Integer, 1, ++/*485882*/ OPC_CheckChild4Type, MVT::i32, ++/*485884*/ OPC_MoveChild5, ++/*485885*/ OPC_CheckInteger, 1, ++/*485887*/ OPC_CheckType, MVT::i32, ++/*485889*/ OPC_MoveParent, ++/*485890*/ OPC_MoveChild6, ++/*485891*/ OPC_CheckInteger, 1, ++/*485893*/ OPC_CheckType, MVT::i32, ++/*485895*/ OPC_MoveParent, ++/*485896*/ OPC_MoveChild7, ++/*485897*/ OPC_CheckInteger, 1, ++/*485899*/ OPC_CheckType, MVT::i32, ++/*485901*/ OPC_MoveParent, ++/*485902*/ OPC_CheckType, MVT::v8i32, ++/*485904*/ OPC_MoveParent, ++/*485905*/ OPC_CheckType, MVT::v8i32, ++/*485907*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*485909*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*485917*/ 0, /*End of Scope*/ ++/*485918*/ /*Scope*/ 92|128,1/*220*/, /*->486140*/ ++/*485920*/ OPC_CheckChild0Same, 1, ++/*485922*/ OPC_MoveChild1, ++/*485923*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*485926*/ OPC_Scope, 105, /*->486033*/ // 2 children in Scope ++/*485928*/ OPC_MoveChild0, ++/*485929*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*485932*/ OPC_CheckChild0Integer, 1, ++/*485934*/ OPC_CheckChild0Type, MVT::i32, ++/*485936*/ OPC_CheckChild1Integer, 1, ++/*485938*/ OPC_CheckChild1Type, MVT::i32, ++/*485940*/ OPC_CheckChild2Integer, 1, ++/*485942*/ OPC_CheckChild2Type, MVT::i32, ++/*485944*/ OPC_CheckChild3Integer, 1, ++/*485946*/ OPC_CheckChild3Type, MVT::i32, ++/*485948*/ OPC_CheckChild4Integer, 1, ++/*485950*/ OPC_CheckChild4Type, MVT::i32, ++/*485952*/ OPC_MoveChild5, ++/*485953*/ OPC_CheckInteger, 1, ++/*485955*/ OPC_CheckType, MVT::i32, ++/*485957*/ OPC_MoveParent, ++/*485958*/ OPC_MoveChild6, ++/*485959*/ OPC_CheckInteger, 1, ++/*485961*/ OPC_CheckType, MVT::i32, ++/*485963*/ OPC_MoveParent, ++/*485964*/ OPC_MoveChild7, ++/*485965*/ OPC_CheckInteger, 1, ++/*485967*/ OPC_CheckType, MVT::i32, ++/*485969*/ OPC_MoveParent, ++/*485970*/ OPC_MoveParent, ++/*485971*/ OPC_CheckChild1Same, 0, ++/*485973*/ OPC_MoveParent, ++/*485974*/ OPC_MoveParent, ++/*485975*/ OPC_MoveParent, ++/*485976*/ OPC_MoveChild1, ++/*485977*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*485980*/ OPC_CheckChild0Integer, 1, ++/*485982*/ OPC_CheckChild0Type, MVT::i32, ++/*485984*/ OPC_CheckChild1Integer, 1, ++/*485986*/ OPC_CheckChild1Type, MVT::i32, ++/*485988*/ OPC_CheckChild2Integer, 1, ++/*485990*/ OPC_CheckChild2Type, MVT::i32, ++/*485992*/ OPC_CheckChild3Integer, 1, ++/*485994*/ OPC_CheckChild3Type, MVT::i32, ++/*485996*/ OPC_CheckChild4Integer, 1, ++/*485998*/ OPC_CheckChild4Type, MVT::i32, ++/*486000*/ OPC_MoveChild5, ++/*486001*/ OPC_CheckInteger, 1, ++/*486003*/ OPC_CheckType, MVT::i32, ++/*486005*/ OPC_MoveParent, ++/*486006*/ OPC_MoveChild6, ++/*486007*/ OPC_CheckInteger, 1, ++/*486009*/ OPC_CheckType, MVT::i32, ++/*486011*/ OPC_MoveParent, ++/*486012*/ OPC_MoveChild7, ++/*486013*/ OPC_CheckInteger, 1, ++/*486015*/ OPC_CheckType, MVT::i32, ++/*486017*/ OPC_MoveParent, ++/*486018*/ OPC_CheckType, MVT::v8i32, ++/*486020*/ OPC_MoveParent, ++/*486021*/ OPC_CheckType, MVT::v8i32, ++/*486023*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*486025*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*486033*/ /*Scope*/ 105, /*->486139*/ ++/*486034*/ OPC_CheckChild0Same, 0, ++/*486036*/ OPC_MoveChild1, ++/*486037*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*486040*/ OPC_CheckChild0Integer, 1, ++/*486042*/ OPC_CheckChild0Type, MVT::i32, ++/*486044*/ OPC_CheckChild1Integer, 1, ++/*486046*/ OPC_CheckChild1Type, MVT::i32, ++/*486048*/ OPC_CheckChild2Integer, 1, ++/*486050*/ OPC_CheckChild2Type, MVT::i32, ++/*486052*/ OPC_CheckChild3Integer, 1, ++/*486054*/ OPC_CheckChild3Type, MVT::i32, ++/*486056*/ OPC_CheckChild4Integer, 1, ++/*486058*/ OPC_CheckChild4Type, MVT::i32, ++/*486060*/ OPC_MoveChild5, ++/*486061*/ OPC_CheckInteger, 1, ++/*486063*/ OPC_CheckType, MVT::i32, ++/*486065*/ OPC_MoveParent, ++/*486066*/ OPC_MoveChild6, ++/*486067*/ OPC_CheckInteger, 1, ++/*486069*/ OPC_CheckType, MVT::i32, ++/*486071*/ OPC_MoveParent, ++/*486072*/ OPC_MoveChild7, ++/*486073*/ OPC_CheckInteger, 1, ++/*486075*/ OPC_CheckType, MVT::i32, ++/*486077*/ OPC_MoveParent, ++/*486078*/ OPC_MoveParent, ++/*486079*/ OPC_MoveParent, ++/*486080*/ OPC_MoveParent, ++/*486081*/ OPC_MoveParent, ++/*486082*/ OPC_MoveChild1, ++/*486083*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*486086*/ OPC_CheckChild0Integer, 1, ++/*486088*/ OPC_CheckChild0Type, MVT::i32, ++/*486090*/ OPC_CheckChild1Integer, 1, ++/*486092*/ OPC_CheckChild1Type, MVT::i32, ++/*486094*/ OPC_CheckChild2Integer, 1, ++/*486096*/ OPC_CheckChild2Type, MVT::i32, ++/*486098*/ OPC_CheckChild3Integer, 1, ++/*486100*/ OPC_CheckChild3Type, MVT::i32, ++/*486102*/ OPC_CheckChild4Integer, 1, ++/*486104*/ OPC_CheckChild4Type, MVT::i32, ++/*486106*/ OPC_MoveChild5, ++/*486107*/ OPC_CheckInteger, 1, ++/*486109*/ OPC_CheckType, MVT::i32, ++/*486111*/ OPC_MoveParent, ++/*486112*/ OPC_MoveChild6, ++/*486113*/ OPC_CheckInteger, 1, ++/*486115*/ OPC_CheckType, MVT::i32, ++/*486117*/ OPC_MoveParent, ++/*486118*/ OPC_MoveChild7, ++/*486119*/ OPC_CheckInteger, 1, ++/*486121*/ OPC_CheckType, MVT::i32, ++/*486123*/ OPC_MoveParent, ++/*486124*/ OPC_CheckType, MVT::v8i32, ++/*486126*/ OPC_MoveParent, ++/*486127*/ OPC_CheckType, MVT::v8i32, ++/*486129*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*486131*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*486139*/ 0, /*End of Scope*/ ++/*486140*/ /*Scope*/ 51|128,1/*179*/, /*->486321*/ ++/*486142*/ OPC_MoveChild0, ++/*486143*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*486146*/ OPC_CheckChild0Integer, 1, ++/*486148*/ OPC_CheckChild0Type, MVT::i32, ++/*486150*/ OPC_CheckChild1Integer, 1, ++/*486152*/ OPC_CheckChild1Type, MVT::i32, ++/*486154*/ OPC_CheckChild2Integer, 1, ++/*486156*/ OPC_CheckChild2Type, MVT::i32, ++/*486158*/ OPC_CheckChild3Integer, 1, ++/*486160*/ OPC_CheckChild3Type, MVT::i32, ++/*486162*/ OPC_CheckChild4Integer, 1, ++/*486164*/ OPC_CheckChild4Type, MVT::i32, ++/*486166*/ OPC_MoveChild5, ++/*486167*/ OPC_CheckInteger, 1, ++/*486169*/ OPC_CheckType, MVT::i32, ++/*486171*/ OPC_MoveParent, ++/*486172*/ OPC_MoveChild6, ++/*486173*/ OPC_CheckInteger, 1, ++/*486175*/ OPC_CheckType, MVT::i32, ++/*486177*/ OPC_MoveParent, ++/*486178*/ OPC_MoveChild7, ++/*486179*/ OPC_CheckInteger, 1, ++/*486181*/ OPC_CheckType, MVT::i32, ++/*486183*/ OPC_MoveParent, ++/*486184*/ OPC_MoveParent, ++/*486185*/ OPC_MoveChild1, ++/*486186*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*486189*/ OPC_Scope, 64, /*->486255*/ // 2 children in Scope ++/*486191*/ OPC_CheckChild0Same, 1, ++/*486193*/ OPC_CheckChild1Same, 0, ++/*486195*/ OPC_MoveParent, ++/*486196*/ OPC_MoveParent, ++/*486197*/ OPC_MoveParent, ++/*486198*/ OPC_MoveChild1, ++/*486199*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*486202*/ OPC_CheckChild0Integer, 1, ++/*486204*/ OPC_CheckChild0Type, MVT::i32, ++/*486206*/ OPC_CheckChild1Integer, 1, ++/*486208*/ OPC_CheckChild1Type, MVT::i32, ++/*486210*/ OPC_CheckChild2Integer, 1, ++/*486212*/ OPC_CheckChild2Type, MVT::i32, ++/*486214*/ OPC_CheckChild3Integer, 1, ++/*486216*/ OPC_CheckChild3Type, MVT::i32, ++/*486218*/ OPC_CheckChild4Integer, 1, ++/*486220*/ OPC_CheckChild4Type, MVT::i32, ++/*486222*/ OPC_MoveChild5, ++/*486223*/ OPC_CheckInteger, 1, ++/*486225*/ OPC_CheckType, MVT::i32, ++/*486227*/ OPC_MoveParent, ++/*486228*/ OPC_MoveChild6, ++/*486229*/ OPC_CheckInteger, 1, ++/*486231*/ OPC_CheckType, MVT::i32, ++/*486233*/ OPC_MoveParent, ++/*486234*/ OPC_MoveChild7, ++/*486235*/ OPC_CheckInteger, 1, ++/*486237*/ OPC_CheckType, MVT::i32, ++/*486239*/ OPC_MoveParent, ++/*486240*/ OPC_CheckType, MVT::v8i32, ++/*486242*/ OPC_MoveParent, ++/*486243*/ OPC_CheckType, MVT::v8i32, ++/*486245*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*486247*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*486255*/ /*Scope*/ 64, /*->486320*/ ++/*486256*/ OPC_CheckChild0Same, 0, ++/*486258*/ OPC_CheckChild1Same, 1, ++/*486260*/ OPC_MoveParent, ++/*486261*/ OPC_MoveParent, ++/*486262*/ OPC_MoveParent, ++/*486263*/ OPC_MoveChild1, ++/*486264*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*486267*/ OPC_CheckChild0Integer, 1, ++/*486269*/ OPC_CheckChild0Type, MVT::i32, ++/*486271*/ OPC_CheckChild1Integer, 1, ++/*486273*/ OPC_CheckChild1Type, MVT::i32, ++/*486275*/ OPC_CheckChild2Integer, 1, ++/*486277*/ OPC_CheckChild2Type, MVT::i32, ++/*486279*/ OPC_CheckChild3Integer, 1, ++/*486281*/ OPC_CheckChild3Type, MVT::i32, ++/*486283*/ OPC_CheckChild4Integer, 1, ++/*486285*/ OPC_CheckChild4Type, MVT::i32, ++/*486287*/ OPC_MoveChild5, ++/*486288*/ OPC_CheckInteger, 1, ++/*486290*/ OPC_CheckType, MVT::i32, ++/*486292*/ OPC_MoveParent, ++/*486293*/ OPC_MoveChild6, ++/*486294*/ OPC_CheckInteger, 1, ++/*486296*/ OPC_CheckType, MVT::i32, ++/*486298*/ OPC_MoveParent, ++/*486299*/ OPC_MoveChild7, ++/*486300*/ OPC_CheckInteger, 1, ++/*486302*/ OPC_CheckType, MVT::i32, ++/*486304*/ OPC_MoveParent, ++/*486305*/ OPC_CheckType, MVT::v8i32, ++/*486307*/ OPC_MoveParent, ++/*486308*/ OPC_CheckType, MVT::v8i32, ++/*486310*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*486312*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*486320*/ 0, /*End of Scope*/ ++/*486321*/ 0, /*End of Scope*/ ++/*486322*/ /*Scope*/ 99|128,10/*1379*/, /*->487703*/ ++/*486324*/ OPC_MoveChild0, ++/*486325*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*486328*/ OPC_CheckChild0Integer, 1, ++/*486330*/ OPC_CheckChild0Type, MVT::i32, ++/*486332*/ OPC_CheckChild1Integer, 1, ++/*486334*/ OPC_CheckChild1Type, MVT::i32, ++/*486336*/ OPC_CheckChild2Integer, 1, ++/*486338*/ OPC_CheckChild2Type, MVT::i32, ++/*486340*/ OPC_CheckChild3Integer, 1, ++/*486342*/ OPC_CheckChild3Type, MVT::i32, ++/*486344*/ OPC_CheckChild4Integer, 1, ++/*486346*/ OPC_CheckChild4Type, MVT::i32, ++/*486348*/ OPC_MoveChild5, ++/*486349*/ OPC_CheckInteger, 1, ++/*486351*/ OPC_CheckType, MVT::i32, ++/*486353*/ OPC_MoveParent, ++/*486354*/ OPC_MoveChild6, ++/*486355*/ OPC_CheckInteger, 1, ++/*486357*/ OPC_CheckType, MVT::i32, ++/*486359*/ OPC_MoveParent, ++/*486360*/ OPC_MoveChild7, ++/*486361*/ OPC_CheckInteger, 1, ++/*486363*/ OPC_CheckType, MVT::i32, ++/*486365*/ OPC_MoveParent, ++/*486366*/ OPC_MoveParent, ++/*486367*/ OPC_RecordChild1, // #1 = $b ++/*486368*/ OPC_MoveParent, ++/*486369*/ OPC_MoveParent, ++/*486370*/ OPC_MoveChild1, ++/*486371*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*486374*/ OPC_CheckChild0Integer, 31, ++/*486376*/ OPC_CheckChild0Type, MVT::i32, ++/*486378*/ OPC_CheckChild1Integer, 31, ++/*486380*/ OPC_CheckChild1Type, MVT::i32, ++/*486382*/ OPC_CheckChild2Integer, 31, ++/*486384*/ OPC_CheckChild2Type, MVT::i32, ++/*486386*/ OPC_CheckChild3Integer, 31, ++/*486388*/ OPC_CheckChild3Type, MVT::i32, ++/*486390*/ OPC_CheckChild4Integer, 31, ++/*486392*/ OPC_CheckChild4Type, MVT::i32, ++/*486394*/ OPC_MoveChild5, ++/*486395*/ OPC_CheckInteger, 31, ++/*486397*/ OPC_CheckType, MVT::i32, ++/*486399*/ OPC_MoveParent, ++/*486400*/ OPC_MoveChild6, ++/*486401*/ OPC_CheckInteger, 31, ++/*486403*/ OPC_CheckType, MVT::i32, ++/*486405*/ OPC_MoveParent, ++/*486406*/ OPC_MoveChild7, ++/*486407*/ OPC_CheckInteger, 31, ++/*486409*/ OPC_CheckType, MVT::i32, ++/*486411*/ OPC_MoveParent, ++/*486412*/ OPC_CheckType, MVT::v8i32, ++/*486414*/ OPC_MoveParent, ++/*486415*/ OPC_MoveParent, ++/*486416*/ OPC_MoveChild1, ++/*486417*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*486420*/ OPC_Scope, 14|128,5/*654*/, /*->487077*/ // 4 children in Scope ++/*486423*/ OPC_MoveChild0, ++/*486424*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*486427*/ OPC_Scope, 107, /*->486536*/ // 6 children in Scope ++/*486429*/ OPC_MoveChild0, ++/*486430*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*486433*/ OPC_CheckChild0Integer, 1, ++/*486435*/ OPC_CheckChild0Type, MVT::i32, ++/*486437*/ OPC_CheckChild1Integer, 1, ++/*486439*/ OPC_CheckChild1Type, MVT::i32, ++/*486441*/ OPC_CheckChild2Integer, 1, ++/*486443*/ OPC_CheckChild2Type, MVT::i32, ++/*486445*/ OPC_CheckChild3Integer, 1, ++/*486447*/ OPC_CheckChild3Type, MVT::i32, ++/*486449*/ OPC_CheckChild4Integer, 1, ++/*486451*/ OPC_CheckChild4Type, MVT::i32, ++/*486453*/ OPC_MoveChild5, ++/*486454*/ OPC_CheckInteger, 1, ++/*486456*/ OPC_CheckType, MVT::i32, ++/*486458*/ OPC_MoveParent, ++/*486459*/ OPC_MoveChild6, ++/*486460*/ OPC_CheckInteger, 1, ++/*486462*/ OPC_CheckType, MVT::i32, ++/*486464*/ OPC_MoveParent, ++/*486465*/ OPC_MoveChild7, ++/*486466*/ OPC_CheckInteger, 1, ++/*486468*/ OPC_CheckType, MVT::i32, ++/*486470*/ OPC_MoveParent, ++/*486471*/ OPC_MoveParent, ++/*486472*/ OPC_CheckChild1Same, 0, ++/*486474*/ OPC_MoveParent, ++/*486475*/ OPC_CheckChild1Same, 1, ++/*486477*/ OPC_MoveParent, ++/*486478*/ OPC_MoveParent, ++/*486479*/ OPC_MoveChild1, ++/*486480*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*486483*/ OPC_CheckChild0Integer, 1, ++/*486485*/ OPC_CheckChild0Type, MVT::i32, ++/*486487*/ OPC_CheckChild1Integer, 1, ++/*486489*/ OPC_CheckChild1Type, MVT::i32, ++/*486491*/ OPC_CheckChild2Integer, 1, ++/*486493*/ OPC_CheckChild2Type, MVT::i32, ++/*486495*/ OPC_CheckChild3Integer, 1, ++/*486497*/ OPC_CheckChild3Type, MVT::i32, ++/*486499*/ OPC_CheckChild4Integer, 1, ++/*486501*/ OPC_CheckChild4Type, MVT::i32, ++/*486503*/ OPC_MoveChild5, ++/*486504*/ OPC_CheckInteger, 1, ++/*486506*/ OPC_CheckType, MVT::i32, ++/*486508*/ OPC_MoveParent, ++/*486509*/ OPC_MoveChild6, ++/*486510*/ OPC_CheckInteger, 1, ++/*486512*/ OPC_CheckType, MVT::i32, ++/*486514*/ OPC_MoveParent, ++/*486515*/ OPC_MoveChild7, ++/*486516*/ OPC_CheckInteger, 1, ++/*486518*/ OPC_CheckType, MVT::i32, ++/*486520*/ OPC_MoveParent, ++/*486521*/ OPC_CheckType, MVT::v8i32, ++/*486523*/ OPC_MoveParent, ++/*486524*/ OPC_CheckType, MVT::v8i32, ++/*486526*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*486528*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a), LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*486536*/ /*Scope*/ 107, /*->486644*/ ++/*486537*/ OPC_CheckChild0Same, 0, ++/*486539*/ OPC_MoveChild1, ++/*486540*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*486543*/ OPC_CheckChild0Integer, 1, ++/*486545*/ OPC_CheckChild0Type, MVT::i32, ++/*486547*/ OPC_CheckChild1Integer, 1, ++/*486549*/ OPC_CheckChild1Type, MVT::i32, ++/*486551*/ OPC_CheckChild2Integer, 1, ++/*486553*/ OPC_CheckChild2Type, MVT::i32, ++/*486555*/ OPC_CheckChild3Integer, 1, ++/*486557*/ OPC_CheckChild3Type, MVT::i32, ++/*486559*/ OPC_CheckChild4Integer, 1, ++/*486561*/ OPC_CheckChild4Type, MVT::i32, ++/*486563*/ OPC_MoveChild5, ++/*486564*/ OPC_CheckInteger, 1, ++/*486566*/ OPC_CheckType, MVT::i32, ++/*486568*/ OPC_MoveParent, ++/*486569*/ OPC_MoveChild6, ++/*486570*/ OPC_CheckInteger, 1, ++/*486572*/ OPC_CheckType, MVT::i32, ++/*486574*/ OPC_MoveParent, ++/*486575*/ OPC_MoveChild7, ++/*486576*/ OPC_CheckInteger, 1, ++/*486578*/ OPC_CheckType, MVT::i32, ++/*486580*/ OPC_MoveParent, ++/*486581*/ OPC_MoveParent, ++/*486582*/ OPC_MoveParent, ++/*486583*/ OPC_CheckChild1Same, 1, ++/*486585*/ OPC_MoveParent, ++/*486586*/ OPC_MoveParent, ++/*486587*/ OPC_MoveChild1, ++/*486588*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*486591*/ OPC_CheckChild0Integer, 1, ++/*486593*/ OPC_CheckChild0Type, MVT::i32, ++/*486595*/ OPC_CheckChild1Integer, 1, ++/*486597*/ OPC_CheckChild1Type, MVT::i32, ++/*486599*/ OPC_CheckChild2Integer, 1, ++/*486601*/ OPC_CheckChild2Type, MVT::i32, ++/*486603*/ OPC_CheckChild3Integer, 1, ++/*486605*/ OPC_CheckChild3Type, MVT::i32, ++/*486607*/ OPC_CheckChild4Integer, 1, ++/*486609*/ OPC_CheckChild4Type, MVT::i32, ++/*486611*/ OPC_MoveChild5, ++/*486612*/ OPC_CheckInteger, 1, ++/*486614*/ OPC_CheckType, MVT::i32, ++/*486616*/ OPC_MoveParent, ++/*486617*/ OPC_MoveChild6, ++/*486618*/ OPC_CheckInteger, 1, ++/*486620*/ OPC_CheckType, MVT::i32, ++/*486622*/ OPC_MoveParent, ++/*486623*/ OPC_MoveChild7, ++/*486624*/ OPC_CheckInteger, 1, ++/*486626*/ OPC_CheckType, MVT::i32, ++/*486628*/ OPC_MoveParent, ++/*486629*/ OPC_CheckType, MVT::v8i32, ++/*486631*/ OPC_MoveParent, ++/*486632*/ OPC_CheckType, MVT::v8i32, ++/*486634*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*486636*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*486644*/ /*Scope*/ 107, /*->486752*/ ++/*486645*/ OPC_MoveChild0, ++/*486646*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*486649*/ OPC_CheckChild0Integer, 1, ++/*486651*/ OPC_CheckChild0Type, MVT::i32, ++/*486653*/ OPC_CheckChild1Integer, 1, ++/*486655*/ OPC_CheckChild1Type, MVT::i32, ++/*486657*/ OPC_CheckChild2Integer, 1, ++/*486659*/ OPC_CheckChild2Type, MVT::i32, ++/*486661*/ OPC_CheckChild3Integer, 1, ++/*486663*/ OPC_CheckChild3Type, MVT::i32, ++/*486665*/ OPC_CheckChild4Integer, 1, ++/*486667*/ OPC_CheckChild4Type, MVT::i32, ++/*486669*/ OPC_MoveChild5, ++/*486670*/ OPC_CheckInteger, 1, ++/*486672*/ OPC_CheckType, MVT::i32, ++/*486674*/ OPC_MoveParent, ++/*486675*/ OPC_MoveChild6, ++/*486676*/ OPC_CheckInteger, 1, ++/*486678*/ OPC_CheckType, MVT::i32, ++/*486680*/ OPC_MoveParent, ++/*486681*/ OPC_MoveChild7, ++/*486682*/ OPC_CheckInteger, 1, ++/*486684*/ OPC_CheckType, MVT::i32, ++/*486686*/ OPC_MoveParent, ++/*486687*/ OPC_MoveParent, ++/*486688*/ OPC_CheckChild1Same, 1, ++/*486690*/ OPC_MoveParent, ++/*486691*/ OPC_CheckChild1Same, 0, ++/*486693*/ OPC_MoveParent, ++/*486694*/ OPC_MoveParent, ++/*486695*/ OPC_MoveChild1, ++/*486696*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*486699*/ OPC_CheckChild0Integer, 1, ++/*486701*/ OPC_CheckChild0Type, MVT::i32, ++/*486703*/ OPC_CheckChild1Integer, 1, ++/*486705*/ OPC_CheckChild1Type, MVT::i32, ++/*486707*/ OPC_CheckChild2Integer, 1, ++/*486709*/ OPC_CheckChild2Type, MVT::i32, ++/*486711*/ OPC_CheckChild3Integer, 1, ++/*486713*/ OPC_CheckChild3Type, MVT::i32, ++/*486715*/ OPC_CheckChild4Integer, 1, ++/*486717*/ OPC_CheckChild4Type, MVT::i32, ++/*486719*/ OPC_MoveChild5, ++/*486720*/ OPC_CheckInteger, 1, ++/*486722*/ OPC_CheckType, MVT::i32, ++/*486724*/ OPC_MoveParent, ++/*486725*/ OPC_MoveChild6, ++/*486726*/ OPC_CheckInteger, 1, ++/*486728*/ OPC_CheckType, MVT::i32, ++/*486730*/ OPC_MoveParent, ++/*486731*/ OPC_MoveChild7, ++/*486732*/ OPC_CheckInteger, 1, ++/*486734*/ OPC_CheckType, MVT::i32, ++/*486736*/ OPC_MoveParent, ++/*486737*/ OPC_CheckType, MVT::v8i32, ++/*486739*/ OPC_MoveParent, ++/*486740*/ OPC_CheckType, MVT::v8i32, ++/*486742*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*486744*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b), LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*486752*/ /*Scope*/ 107, /*->486860*/ ++/*486753*/ OPC_CheckChild0Same, 1, ++/*486755*/ OPC_MoveChild1, ++/*486756*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*486759*/ OPC_CheckChild0Integer, 1, ++/*486761*/ OPC_CheckChild0Type, MVT::i32, ++/*486763*/ OPC_CheckChild1Integer, 1, ++/*486765*/ OPC_CheckChild1Type, MVT::i32, ++/*486767*/ OPC_CheckChild2Integer, 1, ++/*486769*/ OPC_CheckChild2Type, MVT::i32, ++/*486771*/ OPC_CheckChild3Integer, 1, ++/*486773*/ OPC_CheckChild3Type, MVT::i32, ++/*486775*/ OPC_CheckChild4Integer, 1, ++/*486777*/ OPC_CheckChild4Type, MVT::i32, ++/*486779*/ OPC_MoveChild5, ++/*486780*/ OPC_CheckInteger, 1, ++/*486782*/ OPC_CheckType, MVT::i32, ++/*486784*/ OPC_MoveParent, ++/*486785*/ OPC_MoveChild6, ++/*486786*/ OPC_CheckInteger, 1, ++/*486788*/ OPC_CheckType, MVT::i32, ++/*486790*/ OPC_MoveParent, ++/*486791*/ OPC_MoveChild7, ++/*486792*/ OPC_CheckInteger, 1, ++/*486794*/ OPC_CheckType, MVT::i32, ++/*486796*/ OPC_MoveParent, ++/*486797*/ OPC_MoveParent, ++/*486798*/ OPC_MoveParent, ++/*486799*/ OPC_CheckChild1Same, 0, ++/*486801*/ OPC_MoveParent, ++/*486802*/ OPC_MoveParent, ++/*486803*/ OPC_MoveChild1, ++/*486804*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*486807*/ OPC_CheckChild0Integer, 1, ++/*486809*/ OPC_CheckChild0Type, MVT::i32, ++/*486811*/ OPC_CheckChild1Integer, 1, ++/*486813*/ OPC_CheckChild1Type, MVT::i32, ++/*486815*/ OPC_CheckChild2Integer, 1, ++/*486817*/ OPC_CheckChild2Type, MVT::i32, ++/*486819*/ OPC_CheckChild3Integer, 1, ++/*486821*/ OPC_CheckChild3Type, MVT::i32, ++/*486823*/ OPC_CheckChild4Integer, 1, ++/*486825*/ OPC_CheckChild4Type, MVT::i32, ++/*486827*/ OPC_MoveChild5, ++/*486828*/ OPC_CheckInteger, 1, ++/*486830*/ OPC_CheckType, MVT::i32, ++/*486832*/ OPC_MoveParent, ++/*486833*/ OPC_MoveChild6, ++/*486834*/ OPC_CheckInteger, 1, ++/*486836*/ OPC_CheckType, MVT::i32, ++/*486838*/ OPC_MoveParent, ++/*486839*/ OPC_MoveChild7, ++/*486840*/ OPC_CheckInteger, 1, ++/*486842*/ OPC_CheckType, MVT::i32, ++/*486844*/ OPC_MoveParent, ++/*486845*/ OPC_CheckType, MVT::v8i32, ++/*486847*/ OPC_MoveParent, ++/*486848*/ OPC_CheckType, MVT::v8i32, ++/*486850*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*486852*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*486860*/ /*Scope*/ 107, /*->486968*/ ++/*486861*/ OPC_CheckChild0Same, 0, ++/*486863*/ OPC_CheckChild1Same, 1, ++/*486865*/ OPC_MoveParent, ++/*486866*/ OPC_MoveChild1, ++/*486867*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*486870*/ OPC_CheckChild0Integer, 1, ++/*486872*/ OPC_CheckChild0Type, MVT::i32, ++/*486874*/ OPC_CheckChild1Integer, 1, ++/*486876*/ OPC_CheckChild1Type, MVT::i32, ++/*486878*/ OPC_CheckChild2Integer, 1, ++/*486880*/ OPC_CheckChild2Type, MVT::i32, ++/*486882*/ OPC_CheckChild3Integer, 1, ++/*486884*/ OPC_CheckChild3Type, MVT::i32, ++/*486886*/ OPC_CheckChild4Integer, 1, ++/*486888*/ OPC_CheckChild4Type, MVT::i32, ++/*486890*/ OPC_MoveChild5, ++/*486891*/ OPC_CheckInteger, 1, ++/*486893*/ OPC_CheckType, MVT::i32, ++/*486895*/ OPC_MoveParent, ++/*486896*/ OPC_MoveChild6, ++/*486897*/ OPC_CheckInteger, 1, ++/*486899*/ OPC_CheckType, MVT::i32, ++/*486901*/ OPC_MoveParent, ++/*486902*/ OPC_MoveChild7, ++/*486903*/ OPC_CheckInteger, 1, ++/*486905*/ OPC_CheckType, MVT::i32, ++/*486907*/ OPC_MoveParent, ++/*486908*/ OPC_MoveParent, ++/*486909*/ OPC_MoveParent, ++/*486910*/ OPC_MoveParent, ++/*486911*/ OPC_MoveChild1, ++/*486912*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*486915*/ OPC_CheckChild0Integer, 1, ++/*486917*/ OPC_CheckChild0Type, MVT::i32, ++/*486919*/ OPC_CheckChild1Integer, 1, ++/*486921*/ OPC_CheckChild1Type, MVT::i32, ++/*486923*/ OPC_CheckChild2Integer, 1, ++/*486925*/ OPC_CheckChild2Type, MVT::i32, ++/*486927*/ OPC_CheckChild3Integer, 1, ++/*486929*/ OPC_CheckChild3Type, MVT::i32, ++/*486931*/ OPC_CheckChild4Integer, 1, ++/*486933*/ OPC_CheckChild4Type, MVT::i32, ++/*486935*/ OPC_MoveChild5, ++/*486936*/ OPC_CheckInteger, 1, ++/*486938*/ OPC_CheckType, MVT::i32, ++/*486940*/ OPC_MoveParent, ++/*486941*/ OPC_MoveChild6, ++/*486942*/ OPC_CheckInteger, 1, ++/*486944*/ OPC_CheckType, MVT::i32, ++/*486946*/ OPC_MoveParent, ++/*486947*/ OPC_MoveChild7, ++/*486948*/ OPC_CheckInteger, 1, ++/*486950*/ OPC_CheckType, MVT::i32, ++/*486952*/ OPC_MoveParent, ++/*486953*/ OPC_CheckType, MVT::v8i32, ++/*486955*/ OPC_MoveParent, ++/*486956*/ OPC_CheckType, MVT::v8i32, ++/*486958*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*486960*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*486968*/ /*Scope*/ 107, /*->487076*/ ++/*486969*/ OPC_CheckChild0Same, 1, ++/*486971*/ OPC_CheckChild1Same, 0, ++/*486973*/ OPC_MoveParent, ++/*486974*/ OPC_MoveChild1, ++/*486975*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*486978*/ OPC_CheckChild0Integer, 1, ++/*486980*/ OPC_CheckChild0Type, MVT::i32, ++/*486982*/ OPC_CheckChild1Integer, 1, ++/*486984*/ OPC_CheckChild1Type, MVT::i32, ++/*486986*/ OPC_CheckChild2Integer, 1, ++/*486988*/ OPC_CheckChild2Type, MVT::i32, ++/*486990*/ OPC_CheckChild3Integer, 1, ++/*486992*/ OPC_CheckChild3Type, MVT::i32, ++/*486994*/ OPC_CheckChild4Integer, 1, ++/*486996*/ OPC_CheckChild4Type, MVT::i32, ++/*486998*/ OPC_MoveChild5, ++/*486999*/ OPC_CheckInteger, 1, ++/*487001*/ OPC_CheckType, MVT::i32, ++/*487003*/ OPC_MoveParent, ++/*487004*/ OPC_MoveChild6, ++/*487005*/ OPC_CheckInteger, 1, ++/*487007*/ OPC_CheckType, MVT::i32, ++/*487009*/ OPC_MoveParent, ++/*487010*/ OPC_MoveChild7, ++/*487011*/ OPC_CheckInteger, 1, ++/*487013*/ OPC_CheckType, MVT::i32, ++/*487015*/ OPC_MoveParent, ++/*487016*/ OPC_MoveParent, ++/*487017*/ OPC_MoveParent, ++/*487018*/ OPC_MoveParent, ++/*487019*/ OPC_MoveChild1, ++/*487020*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*487023*/ OPC_CheckChild0Integer, 1, ++/*487025*/ OPC_CheckChild0Type, MVT::i32, ++/*487027*/ OPC_CheckChild1Integer, 1, ++/*487029*/ OPC_CheckChild1Type, MVT::i32, ++/*487031*/ OPC_CheckChild2Integer, 1, ++/*487033*/ OPC_CheckChild2Type, MVT::i32, ++/*487035*/ OPC_CheckChild3Integer, 1, ++/*487037*/ OPC_CheckChild3Type, MVT::i32, ++/*487039*/ OPC_CheckChild4Integer, 1, ++/*487041*/ OPC_CheckChild4Type, MVT::i32, ++/*487043*/ OPC_MoveChild5, ++/*487044*/ OPC_CheckInteger, 1, ++/*487046*/ OPC_CheckType, MVT::i32, ++/*487048*/ OPC_MoveParent, ++/*487049*/ OPC_MoveChild6, ++/*487050*/ OPC_CheckInteger, 1, ++/*487052*/ OPC_CheckType, MVT::i32, ++/*487054*/ OPC_MoveParent, ++/*487055*/ OPC_MoveChild7, ++/*487056*/ OPC_CheckInteger, 1, ++/*487058*/ OPC_CheckType, MVT::i32, ++/*487060*/ OPC_MoveParent, ++/*487061*/ OPC_CheckType, MVT::v8i32, ++/*487063*/ OPC_MoveParent, ++/*487064*/ OPC_CheckType, MVT::v8i32, ++/*487066*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*487068*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*487076*/ 0, /*End of Scope*/ ++/*487077*/ /*Scope*/ 92|128,1/*220*/, /*->487299*/ ++/*487079*/ OPC_CheckChild0Same, 1, ++/*487081*/ OPC_MoveChild1, ++/*487082*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*487085*/ OPC_Scope, 105, /*->487192*/ // 2 children in Scope ++/*487087*/ OPC_MoveChild0, ++/*487088*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*487091*/ OPC_CheckChild0Integer, 1, ++/*487093*/ OPC_CheckChild0Type, MVT::i32, ++/*487095*/ OPC_CheckChild1Integer, 1, ++/*487097*/ OPC_CheckChild1Type, MVT::i32, ++/*487099*/ OPC_CheckChild2Integer, 1, ++/*487101*/ OPC_CheckChild2Type, MVT::i32, ++/*487103*/ OPC_CheckChild3Integer, 1, ++/*487105*/ OPC_CheckChild3Type, MVT::i32, ++/*487107*/ OPC_CheckChild4Integer, 1, ++/*487109*/ OPC_CheckChild4Type, MVT::i32, ++/*487111*/ OPC_MoveChild5, ++/*487112*/ OPC_CheckInteger, 1, ++/*487114*/ OPC_CheckType, MVT::i32, ++/*487116*/ OPC_MoveParent, ++/*487117*/ OPC_MoveChild6, ++/*487118*/ OPC_CheckInteger, 1, ++/*487120*/ OPC_CheckType, MVT::i32, ++/*487122*/ OPC_MoveParent, ++/*487123*/ OPC_MoveChild7, ++/*487124*/ OPC_CheckInteger, 1, ++/*487126*/ OPC_CheckType, MVT::i32, ++/*487128*/ OPC_MoveParent, ++/*487129*/ OPC_MoveParent, ++/*487130*/ OPC_CheckChild1Same, 0, ++/*487132*/ OPC_MoveParent, ++/*487133*/ OPC_MoveParent, ++/*487134*/ OPC_MoveParent, ++/*487135*/ OPC_MoveChild1, ++/*487136*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*487139*/ OPC_CheckChild0Integer, 1, ++/*487141*/ OPC_CheckChild0Type, MVT::i32, ++/*487143*/ OPC_CheckChild1Integer, 1, ++/*487145*/ OPC_CheckChild1Type, MVT::i32, ++/*487147*/ OPC_CheckChild2Integer, 1, ++/*487149*/ OPC_CheckChild2Type, MVT::i32, ++/*487151*/ OPC_CheckChild3Integer, 1, ++/*487153*/ OPC_CheckChild3Type, MVT::i32, ++/*487155*/ OPC_CheckChild4Integer, 1, ++/*487157*/ OPC_CheckChild4Type, MVT::i32, ++/*487159*/ OPC_MoveChild5, ++/*487160*/ OPC_CheckInteger, 1, ++/*487162*/ OPC_CheckType, MVT::i32, ++/*487164*/ OPC_MoveParent, ++/*487165*/ OPC_MoveChild6, ++/*487166*/ OPC_CheckInteger, 1, ++/*487168*/ OPC_CheckType, MVT::i32, ++/*487170*/ OPC_MoveParent, ++/*487171*/ OPC_MoveChild7, ++/*487172*/ OPC_CheckInteger, 1, ++/*487174*/ OPC_CheckType, MVT::i32, ++/*487176*/ OPC_MoveParent, ++/*487177*/ OPC_CheckType, MVT::v8i32, ++/*487179*/ OPC_MoveParent, ++/*487180*/ OPC_CheckType, MVT::v8i32, ++/*487182*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*487184*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*487192*/ /*Scope*/ 105, /*->487298*/ ++/*487193*/ OPC_CheckChild0Same, 0, ++/*487195*/ OPC_MoveChild1, ++/*487196*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*487199*/ OPC_CheckChild0Integer, 1, ++/*487201*/ OPC_CheckChild0Type, MVT::i32, ++/*487203*/ OPC_CheckChild1Integer, 1, ++/*487205*/ OPC_CheckChild1Type, MVT::i32, ++/*487207*/ OPC_CheckChild2Integer, 1, ++/*487209*/ OPC_CheckChild2Type, MVT::i32, ++/*487211*/ OPC_CheckChild3Integer, 1, ++/*487213*/ OPC_CheckChild3Type, MVT::i32, ++/*487215*/ OPC_CheckChild4Integer, 1, ++/*487217*/ OPC_CheckChild4Type, MVT::i32, ++/*487219*/ OPC_MoveChild5, ++/*487220*/ OPC_CheckInteger, 1, ++/*487222*/ OPC_CheckType, MVT::i32, ++/*487224*/ OPC_MoveParent, ++/*487225*/ OPC_MoveChild6, ++/*487226*/ OPC_CheckInteger, 1, ++/*487228*/ OPC_CheckType, MVT::i32, ++/*487230*/ OPC_MoveParent, ++/*487231*/ OPC_MoveChild7, ++/*487232*/ OPC_CheckInteger, 1, ++/*487234*/ OPC_CheckType, MVT::i32, ++/*487236*/ OPC_MoveParent, ++/*487237*/ OPC_MoveParent, ++/*487238*/ OPC_MoveParent, ++/*487239*/ OPC_MoveParent, ++/*487240*/ OPC_MoveParent, ++/*487241*/ OPC_MoveChild1, ++/*487242*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*487245*/ OPC_CheckChild0Integer, 1, ++/*487247*/ OPC_CheckChild0Type, MVT::i32, ++/*487249*/ OPC_CheckChild1Integer, 1, ++/*487251*/ OPC_CheckChild1Type, MVT::i32, ++/*487253*/ OPC_CheckChild2Integer, 1, ++/*487255*/ OPC_CheckChild2Type, MVT::i32, ++/*487257*/ OPC_CheckChild3Integer, 1, ++/*487259*/ OPC_CheckChild3Type, MVT::i32, ++/*487261*/ OPC_CheckChild4Integer, 1, ++/*487263*/ OPC_CheckChild4Type, MVT::i32, ++/*487265*/ OPC_MoveChild5, ++/*487266*/ OPC_CheckInteger, 1, ++/*487268*/ OPC_CheckType, MVT::i32, ++/*487270*/ OPC_MoveParent, ++/*487271*/ OPC_MoveChild6, ++/*487272*/ OPC_CheckInteger, 1, ++/*487274*/ OPC_CheckType, MVT::i32, ++/*487276*/ OPC_MoveParent, ++/*487277*/ OPC_MoveChild7, ++/*487278*/ OPC_CheckInteger, 1, ++/*487280*/ OPC_CheckType, MVT::i32, ++/*487282*/ OPC_MoveParent, ++/*487283*/ OPC_CheckType, MVT::v8i32, ++/*487285*/ OPC_MoveParent, ++/*487286*/ OPC_CheckType, MVT::v8i32, ++/*487288*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*487290*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*487298*/ 0, /*End of Scope*/ ++/*487299*/ /*Scope*/ 92|128,1/*220*/, /*->487521*/ ++/*487301*/ OPC_CheckChild0Same, 0, ++/*487303*/ OPC_MoveChild1, ++/*487304*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*487307*/ OPC_Scope, 105, /*->487414*/ // 2 children in Scope ++/*487309*/ OPC_MoveChild0, ++/*487310*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*487313*/ OPC_CheckChild0Integer, 1, ++/*487315*/ OPC_CheckChild0Type, MVT::i32, ++/*487317*/ OPC_CheckChild1Integer, 1, ++/*487319*/ OPC_CheckChild1Type, MVT::i32, ++/*487321*/ OPC_CheckChild2Integer, 1, ++/*487323*/ OPC_CheckChild2Type, MVT::i32, ++/*487325*/ OPC_CheckChild3Integer, 1, ++/*487327*/ OPC_CheckChild3Type, MVT::i32, ++/*487329*/ OPC_CheckChild4Integer, 1, ++/*487331*/ OPC_CheckChild4Type, MVT::i32, ++/*487333*/ OPC_MoveChild5, ++/*487334*/ OPC_CheckInteger, 1, ++/*487336*/ OPC_CheckType, MVT::i32, ++/*487338*/ OPC_MoveParent, ++/*487339*/ OPC_MoveChild6, ++/*487340*/ OPC_CheckInteger, 1, ++/*487342*/ OPC_CheckType, MVT::i32, ++/*487344*/ OPC_MoveParent, ++/*487345*/ OPC_MoveChild7, ++/*487346*/ OPC_CheckInteger, 1, ++/*487348*/ OPC_CheckType, MVT::i32, ++/*487350*/ OPC_MoveParent, ++/*487351*/ OPC_MoveParent, ++/*487352*/ OPC_CheckChild1Same, 1, ++/*487354*/ OPC_MoveParent, ++/*487355*/ OPC_MoveParent, ++/*487356*/ OPC_MoveParent, ++/*487357*/ OPC_MoveChild1, ++/*487358*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*487361*/ OPC_CheckChild0Integer, 1, ++/*487363*/ OPC_CheckChild0Type, MVT::i32, ++/*487365*/ OPC_CheckChild1Integer, 1, ++/*487367*/ OPC_CheckChild1Type, MVT::i32, ++/*487369*/ OPC_CheckChild2Integer, 1, ++/*487371*/ OPC_CheckChild2Type, MVT::i32, ++/*487373*/ OPC_CheckChild3Integer, 1, ++/*487375*/ OPC_CheckChild3Type, MVT::i32, ++/*487377*/ OPC_CheckChild4Integer, 1, ++/*487379*/ OPC_CheckChild4Type, MVT::i32, ++/*487381*/ OPC_MoveChild5, ++/*487382*/ OPC_CheckInteger, 1, ++/*487384*/ OPC_CheckType, MVT::i32, ++/*487386*/ OPC_MoveParent, ++/*487387*/ OPC_MoveChild6, ++/*487388*/ OPC_CheckInteger, 1, ++/*487390*/ OPC_CheckType, MVT::i32, ++/*487392*/ OPC_MoveParent, ++/*487393*/ OPC_MoveChild7, ++/*487394*/ OPC_CheckInteger, 1, ++/*487396*/ OPC_CheckType, MVT::i32, ++/*487398*/ OPC_MoveParent, ++/*487399*/ OPC_CheckType, MVT::v8i32, ++/*487401*/ OPC_MoveParent, ++/*487402*/ OPC_CheckType, MVT::v8i32, ++/*487404*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*487406*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*487414*/ /*Scope*/ 105, /*->487520*/ ++/*487415*/ OPC_CheckChild0Same, 1, ++/*487417*/ OPC_MoveChild1, ++/*487418*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*487421*/ OPC_CheckChild0Integer, 1, ++/*487423*/ OPC_CheckChild0Type, MVT::i32, ++/*487425*/ OPC_CheckChild1Integer, 1, ++/*487427*/ OPC_CheckChild1Type, MVT::i32, ++/*487429*/ OPC_CheckChild2Integer, 1, ++/*487431*/ OPC_CheckChild2Type, MVT::i32, ++/*487433*/ OPC_CheckChild3Integer, 1, ++/*487435*/ OPC_CheckChild3Type, MVT::i32, ++/*487437*/ OPC_CheckChild4Integer, 1, ++/*487439*/ OPC_CheckChild4Type, MVT::i32, ++/*487441*/ OPC_MoveChild5, ++/*487442*/ OPC_CheckInteger, 1, ++/*487444*/ OPC_CheckType, MVT::i32, ++/*487446*/ OPC_MoveParent, ++/*487447*/ OPC_MoveChild6, ++/*487448*/ OPC_CheckInteger, 1, ++/*487450*/ OPC_CheckType, MVT::i32, ++/*487452*/ OPC_MoveParent, ++/*487453*/ OPC_MoveChild7, ++/*487454*/ OPC_CheckInteger, 1, ++/*487456*/ OPC_CheckType, MVT::i32, ++/*487458*/ OPC_MoveParent, ++/*487459*/ OPC_MoveParent, ++/*487460*/ OPC_MoveParent, ++/*487461*/ OPC_MoveParent, ++/*487462*/ OPC_MoveParent, ++/*487463*/ OPC_MoveChild1, ++/*487464*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*487467*/ OPC_CheckChild0Integer, 1, ++/*487469*/ OPC_CheckChild0Type, MVT::i32, ++/*487471*/ OPC_CheckChild1Integer, 1, ++/*487473*/ OPC_CheckChild1Type, MVT::i32, ++/*487475*/ OPC_CheckChild2Integer, 1, ++/*487477*/ OPC_CheckChild2Type, MVT::i32, ++/*487479*/ OPC_CheckChild3Integer, 1, ++/*487481*/ OPC_CheckChild3Type, MVT::i32, ++/*487483*/ OPC_CheckChild4Integer, 1, ++/*487485*/ OPC_CheckChild4Type, MVT::i32, ++/*487487*/ OPC_MoveChild5, ++/*487488*/ OPC_CheckInteger, 1, ++/*487490*/ OPC_CheckType, MVT::i32, ++/*487492*/ OPC_MoveParent, ++/*487493*/ OPC_MoveChild6, ++/*487494*/ OPC_CheckInteger, 1, ++/*487496*/ OPC_CheckType, MVT::i32, ++/*487498*/ OPC_MoveParent, ++/*487499*/ OPC_MoveChild7, ++/*487500*/ OPC_CheckInteger, 1, ++/*487502*/ OPC_CheckType, MVT::i32, ++/*487504*/ OPC_MoveParent, ++/*487505*/ OPC_CheckType, MVT::v8i32, ++/*487507*/ OPC_MoveParent, ++/*487508*/ OPC_CheckType, MVT::v8i32, ++/*487510*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*487512*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*487520*/ 0, /*End of Scope*/ ++/*487521*/ /*Scope*/ 51|128,1/*179*/, /*->487702*/ ++/*487523*/ OPC_MoveChild0, ++/*487524*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*487527*/ OPC_CheckChild0Integer, 1, ++/*487529*/ OPC_CheckChild0Type, MVT::i32, ++/*487531*/ OPC_CheckChild1Integer, 1, ++/*487533*/ OPC_CheckChild1Type, MVT::i32, ++/*487535*/ OPC_CheckChild2Integer, 1, ++/*487537*/ OPC_CheckChild2Type, MVT::i32, ++/*487539*/ OPC_CheckChild3Integer, 1, ++/*487541*/ OPC_CheckChild3Type, MVT::i32, ++/*487543*/ OPC_CheckChild4Integer, 1, ++/*487545*/ OPC_CheckChild4Type, MVT::i32, ++/*487547*/ OPC_MoveChild5, ++/*487548*/ OPC_CheckInteger, 1, ++/*487550*/ OPC_CheckType, MVT::i32, ++/*487552*/ OPC_MoveParent, ++/*487553*/ OPC_MoveChild6, ++/*487554*/ OPC_CheckInteger, 1, ++/*487556*/ OPC_CheckType, MVT::i32, ++/*487558*/ OPC_MoveParent, ++/*487559*/ OPC_MoveChild7, ++/*487560*/ OPC_CheckInteger, 1, ++/*487562*/ OPC_CheckType, MVT::i32, ++/*487564*/ OPC_MoveParent, ++/*487565*/ OPC_MoveParent, ++/*487566*/ OPC_MoveChild1, ++/*487567*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*487570*/ OPC_Scope, 64, /*->487636*/ // 2 children in Scope ++/*487572*/ OPC_CheckChild0Same, 0, ++/*487574*/ OPC_CheckChild1Same, 1, ++/*487576*/ OPC_MoveParent, ++/*487577*/ OPC_MoveParent, ++/*487578*/ OPC_MoveParent, ++/*487579*/ OPC_MoveChild1, ++/*487580*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*487583*/ OPC_CheckChild0Integer, 1, ++/*487585*/ OPC_CheckChild0Type, MVT::i32, ++/*487587*/ OPC_CheckChild1Integer, 1, ++/*487589*/ OPC_CheckChild1Type, MVT::i32, ++/*487591*/ OPC_CheckChild2Integer, 1, ++/*487593*/ OPC_CheckChild2Type, MVT::i32, ++/*487595*/ OPC_CheckChild3Integer, 1, ++/*487597*/ OPC_CheckChild3Type, MVT::i32, ++/*487599*/ OPC_CheckChild4Integer, 1, ++/*487601*/ OPC_CheckChild4Type, MVT::i32, ++/*487603*/ OPC_MoveChild5, ++/*487604*/ OPC_CheckInteger, 1, ++/*487606*/ OPC_CheckType, MVT::i32, ++/*487608*/ OPC_MoveParent, ++/*487609*/ OPC_MoveChild6, ++/*487610*/ OPC_CheckInteger, 1, ++/*487612*/ OPC_CheckType, MVT::i32, ++/*487614*/ OPC_MoveParent, ++/*487615*/ OPC_MoveChild7, ++/*487616*/ OPC_CheckInteger, 1, ++/*487618*/ OPC_CheckType, MVT::i32, ++/*487620*/ OPC_MoveParent, ++/*487621*/ OPC_CheckType, MVT::v8i32, ++/*487623*/ OPC_MoveParent, ++/*487624*/ OPC_CheckType, MVT::v8i32, ++/*487626*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*487628*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*487636*/ /*Scope*/ 64, /*->487701*/ ++/*487637*/ OPC_CheckChild0Same, 1, ++/*487639*/ OPC_CheckChild1Same, 0, ++/*487641*/ OPC_MoveParent, ++/*487642*/ OPC_MoveParent, ++/*487643*/ OPC_MoveParent, ++/*487644*/ OPC_MoveChild1, ++/*487645*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*487648*/ OPC_CheckChild0Integer, 1, ++/*487650*/ OPC_CheckChild0Type, MVT::i32, ++/*487652*/ OPC_CheckChild1Integer, 1, ++/*487654*/ OPC_CheckChild1Type, MVT::i32, ++/*487656*/ OPC_CheckChild2Integer, 1, ++/*487658*/ OPC_CheckChild2Type, MVT::i32, ++/*487660*/ OPC_CheckChild3Integer, 1, ++/*487662*/ OPC_CheckChild3Type, MVT::i32, ++/*487664*/ OPC_CheckChild4Integer, 1, ++/*487666*/ OPC_CheckChild4Type, MVT::i32, ++/*487668*/ OPC_MoveChild5, ++/*487669*/ OPC_CheckInteger, 1, ++/*487671*/ OPC_CheckType, MVT::i32, ++/*487673*/ OPC_MoveParent, ++/*487674*/ OPC_MoveChild6, ++/*487675*/ OPC_CheckInteger, 1, ++/*487677*/ OPC_CheckType, MVT::i32, ++/*487679*/ OPC_MoveParent, ++/*487680*/ OPC_MoveChild7, ++/*487681*/ OPC_CheckInteger, 1, ++/*487683*/ OPC_CheckType, MVT::i32, ++/*487685*/ OPC_MoveParent, ++/*487686*/ OPC_CheckType, MVT::v8i32, ++/*487688*/ OPC_MoveParent, ++/*487689*/ OPC_CheckType, MVT::v8i32, ++/*487691*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*487693*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*487701*/ 0, /*End of Scope*/ ++/*487702*/ 0, /*End of Scope*/ ++/*487703*/ /*Scope*/ 99|128,10/*1379*/, /*->489084*/ ++/*487705*/ OPC_RecordChild0, // #1 = $b ++/*487706*/ OPC_MoveChild1, ++/*487707*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*487710*/ OPC_CheckChild0Integer, 1, ++/*487712*/ OPC_CheckChild0Type, MVT::i32, ++/*487714*/ OPC_CheckChild1Integer, 1, ++/*487716*/ OPC_CheckChild1Type, MVT::i32, ++/*487718*/ OPC_CheckChild2Integer, 1, ++/*487720*/ OPC_CheckChild2Type, MVT::i32, ++/*487722*/ OPC_CheckChild3Integer, 1, ++/*487724*/ OPC_CheckChild3Type, MVT::i32, ++/*487726*/ OPC_CheckChild4Integer, 1, ++/*487728*/ OPC_CheckChild4Type, MVT::i32, ++/*487730*/ OPC_MoveChild5, ++/*487731*/ OPC_CheckInteger, 1, ++/*487733*/ OPC_CheckType, MVT::i32, ++/*487735*/ OPC_MoveParent, ++/*487736*/ OPC_MoveChild6, ++/*487737*/ OPC_CheckInteger, 1, ++/*487739*/ OPC_CheckType, MVT::i32, ++/*487741*/ OPC_MoveParent, ++/*487742*/ OPC_MoveChild7, ++/*487743*/ OPC_CheckInteger, 1, ++/*487745*/ OPC_CheckType, MVT::i32, ++/*487747*/ OPC_MoveParent, ++/*487748*/ OPC_MoveParent, ++/*487749*/ OPC_MoveParent, ++/*487750*/ OPC_MoveParent, ++/*487751*/ OPC_MoveChild1, ++/*487752*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*487755*/ OPC_CheckChild0Integer, 31, ++/*487757*/ OPC_CheckChild0Type, MVT::i32, ++/*487759*/ OPC_CheckChild1Integer, 31, ++/*487761*/ OPC_CheckChild1Type, MVT::i32, ++/*487763*/ OPC_CheckChild2Integer, 31, ++/*487765*/ OPC_CheckChild2Type, MVT::i32, ++/*487767*/ OPC_CheckChild3Integer, 31, ++/*487769*/ OPC_CheckChild3Type, MVT::i32, ++/*487771*/ OPC_CheckChild4Integer, 31, ++/*487773*/ OPC_CheckChild4Type, MVT::i32, ++/*487775*/ OPC_MoveChild5, ++/*487776*/ OPC_CheckInteger, 31, ++/*487778*/ OPC_CheckType, MVT::i32, ++/*487780*/ OPC_MoveParent, ++/*487781*/ OPC_MoveChild6, ++/*487782*/ OPC_CheckInteger, 31, ++/*487784*/ OPC_CheckType, MVT::i32, ++/*487786*/ OPC_MoveParent, ++/*487787*/ OPC_MoveChild7, ++/*487788*/ OPC_CheckInteger, 31, ++/*487790*/ OPC_CheckType, MVT::i32, ++/*487792*/ OPC_MoveParent, ++/*487793*/ OPC_CheckType, MVT::v8i32, ++/*487795*/ OPC_MoveParent, ++/*487796*/ OPC_MoveParent, ++/*487797*/ OPC_MoveChild1, ++/*487798*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*487801*/ OPC_Scope, 14|128,5/*654*/, /*->488458*/ // 4 children in Scope ++/*487804*/ OPC_MoveChild0, ++/*487805*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*487808*/ OPC_Scope, 107, /*->487917*/ // 6 children in Scope ++/*487810*/ OPC_MoveChild0, ++/*487811*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*487814*/ OPC_CheckChild0Integer, 1, ++/*487816*/ OPC_CheckChild0Type, MVT::i32, ++/*487818*/ OPC_CheckChild1Integer, 1, ++/*487820*/ OPC_CheckChild1Type, MVT::i32, ++/*487822*/ OPC_CheckChild2Integer, 1, ++/*487824*/ OPC_CheckChild2Type, MVT::i32, ++/*487826*/ OPC_CheckChild3Integer, 1, ++/*487828*/ OPC_CheckChild3Type, MVT::i32, ++/*487830*/ OPC_CheckChild4Integer, 1, ++/*487832*/ OPC_CheckChild4Type, MVT::i32, ++/*487834*/ OPC_MoveChild5, ++/*487835*/ OPC_CheckInteger, 1, ++/*487837*/ OPC_CheckType, MVT::i32, ++/*487839*/ OPC_MoveParent, ++/*487840*/ OPC_MoveChild6, ++/*487841*/ OPC_CheckInteger, 1, ++/*487843*/ OPC_CheckType, MVT::i32, ++/*487845*/ OPC_MoveParent, ++/*487846*/ OPC_MoveChild7, ++/*487847*/ OPC_CheckInteger, 1, ++/*487849*/ OPC_CheckType, MVT::i32, ++/*487851*/ OPC_MoveParent, ++/*487852*/ OPC_MoveParent, ++/*487853*/ OPC_CheckChild1Same, 0, ++/*487855*/ OPC_MoveParent, ++/*487856*/ OPC_CheckChild1Same, 1, ++/*487858*/ OPC_MoveParent, ++/*487859*/ OPC_MoveParent, ++/*487860*/ OPC_MoveChild1, ++/*487861*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*487864*/ OPC_CheckChild0Integer, 1, ++/*487866*/ OPC_CheckChild0Type, MVT::i32, ++/*487868*/ OPC_CheckChild1Integer, 1, ++/*487870*/ OPC_CheckChild1Type, MVT::i32, ++/*487872*/ OPC_CheckChild2Integer, 1, ++/*487874*/ OPC_CheckChild2Type, MVT::i32, ++/*487876*/ OPC_CheckChild3Integer, 1, ++/*487878*/ OPC_CheckChild3Type, MVT::i32, ++/*487880*/ OPC_CheckChild4Integer, 1, ++/*487882*/ OPC_CheckChild4Type, MVT::i32, ++/*487884*/ OPC_MoveChild5, ++/*487885*/ OPC_CheckInteger, 1, ++/*487887*/ OPC_CheckType, MVT::i32, ++/*487889*/ OPC_MoveParent, ++/*487890*/ OPC_MoveChild6, ++/*487891*/ OPC_CheckInteger, 1, ++/*487893*/ OPC_CheckType, MVT::i32, ++/*487895*/ OPC_MoveParent, ++/*487896*/ OPC_MoveChild7, ++/*487897*/ OPC_CheckInteger, 1, ++/*487899*/ OPC_CheckType, MVT::i32, ++/*487901*/ OPC_MoveParent, ++/*487902*/ OPC_CheckType, MVT::v8i32, ++/*487904*/ OPC_MoveParent, ++/*487905*/ OPC_CheckType, MVT::v8i32, ++/*487907*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*487909*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a), LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*487917*/ /*Scope*/ 107, /*->488025*/ ++/*487918*/ OPC_CheckChild0Same, 0, ++/*487920*/ OPC_MoveChild1, ++/*487921*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*487924*/ OPC_CheckChild0Integer, 1, ++/*487926*/ OPC_CheckChild0Type, MVT::i32, ++/*487928*/ OPC_CheckChild1Integer, 1, ++/*487930*/ OPC_CheckChild1Type, MVT::i32, ++/*487932*/ OPC_CheckChild2Integer, 1, ++/*487934*/ OPC_CheckChild2Type, MVT::i32, ++/*487936*/ OPC_CheckChild3Integer, 1, ++/*487938*/ OPC_CheckChild3Type, MVT::i32, ++/*487940*/ OPC_CheckChild4Integer, 1, ++/*487942*/ OPC_CheckChild4Type, MVT::i32, ++/*487944*/ OPC_MoveChild5, ++/*487945*/ OPC_CheckInteger, 1, ++/*487947*/ OPC_CheckType, MVT::i32, ++/*487949*/ OPC_MoveParent, ++/*487950*/ OPC_MoveChild6, ++/*487951*/ OPC_CheckInteger, 1, ++/*487953*/ OPC_CheckType, MVT::i32, ++/*487955*/ OPC_MoveParent, ++/*487956*/ OPC_MoveChild7, ++/*487957*/ OPC_CheckInteger, 1, ++/*487959*/ OPC_CheckType, MVT::i32, ++/*487961*/ OPC_MoveParent, ++/*487962*/ OPC_MoveParent, ++/*487963*/ OPC_MoveParent, ++/*487964*/ OPC_CheckChild1Same, 1, ++/*487966*/ OPC_MoveParent, ++/*487967*/ OPC_MoveParent, ++/*487968*/ OPC_MoveChild1, ++/*487969*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*487972*/ OPC_CheckChild0Integer, 1, ++/*487974*/ OPC_CheckChild0Type, MVT::i32, ++/*487976*/ OPC_CheckChild1Integer, 1, ++/*487978*/ OPC_CheckChild1Type, MVT::i32, ++/*487980*/ OPC_CheckChild2Integer, 1, ++/*487982*/ OPC_CheckChild2Type, MVT::i32, ++/*487984*/ OPC_CheckChild3Integer, 1, ++/*487986*/ OPC_CheckChild3Type, MVT::i32, ++/*487988*/ OPC_CheckChild4Integer, 1, ++/*487990*/ OPC_CheckChild4Type, MVT::i32, ++/*487992*/ OPC_MoveChild5, ++/*487993*/ OPC_CheckInteger, 1, ++/*487995*/ OPC_CheckType, MVT::i32, ++/*487997*/ OPC_MoveParent, ++/*487998*/ OPC_MoveChild6, ++/*487999*/ OPC_CheckInteger, 1, ++/*488001*/ OPC_CheckType, MVT::i32, ++/*488003*/ OPC_MoveParent, ++/*488004*/ OPC_MoveChild7, ++/*488005*/ OPC_CheckInteger, 1, ++/*488007*/ OPC_CheckType, MVT::i32, ++/*488009*/ OPC_MoveParent, ++/*488010*/ OPC_CheckType, MVT::v8i32, ++/*488012*/ OPC_MoveParent, ++/*488013*/ OPC_CheckType, MVT::v8i32, ++/*488015*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*488017*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*488025*/ /*Scope*/ 107, /*->488133*/ ++/*488026*/ OPC_MoveChild0, ++/*488027*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*488030*/ OPC_CheckChild0Integer, 1, ++/*488032*/ OPC_CheckChild0Type, MVT::i32, ++/*488034*/ OPC_CheckChild1Integer, 1, ++/*488036*/ OPC_CheckChild1Type, MVT::i32, ++/*488038*/ OPC_CheckChild2Integer, 1, ++/*488040*/ OPC_CheckChild2Type, MVT::i32, ++/*488042*/ OPC_CheckChild3Integer, 1, ++/*488044*/ OPC_CheckChild3Type, MVT::i32, ++/*488046*/ OPC_CheckChild4Integer, 1, ++/*488048*/ OPC_CheckChild4Type, MVT::i32, ++/*488050*/ OPC_MoveChild5, ++/*488051*/ OPC_CheckInteger, 1, ++/*488053*/ OPC_CheckType, MVT::i32, ++/*488055*/ OPC_MoveParent, ++/*488056*/ OPC_MoveChild6, ++/*488057*/ OPC_CheckInteger, 1, ++/*488059*/ OPC_CheckType, MVT::i32, ++/*488061*/ OPC_MoveParent, ++/*488062*/ OPC_MoveChild7, ++/*488063*/ OPC_CheckInteger, 1, ++/*488065*/ OPC_CheckType, MVT::i32, ++/*488067*/ OPC_MoveParent, ++/*488068*/ OPC_MoveParent, ++/*488069*/ OPC_CheckChild1Same, 1, ++/*488071*/ OPC_MoveParent, ++/*488072*/ OPC_CheckChild1Same, 0, ++/*488074*/ OPC_MoveParent, ++/*488075*/ OPC_MoveParent, ++/*488076*/ OPC_MoveChild1, ++/*488077*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*488080*/ OPC_CheckChild0Integer, 1, ++/*488082*/ OPC_CheckChild0Type, MVT::i32, ++/*488084*/ OPC_CheckChild1Integer, 1, ++/*488086*/ OPC_CheckChild1Type, MVT::i32, ++/*488088*/ OPC_CheckChild2Integer, 1, ++/*488090*/ OPC_CheckChild2Type, MVT::i32, ++/*488092*/ OPC_CheckChild3Integer, 1, ++/*488094*/ OPC_CheckChild3Type, MVT::i32, ++/*488096*/ OPC_CheckChild4Integer, 1, ++/*488098*/ OPC_CheckChild4Type, MVT::i32, ++/*488100*/ OPC_MoveChild5, ++/*488101*/ OPC_CheckInteger, 1, ++/*488103*/ OPC_CheckType, MVT::i32, ++/*488105*/ OPC_MoveParent, ++/*488106*/ OPC_MoveChild6, ++/*488107*/ OPC_CheckInteger, 1, ++/*488109*/ OPC_CheckType, MVT::i32, ++/*488111*/ OPC_MoveParent, ++/*488112*/ OPC_MoveChild7, ++/*488113*/ OPC_CheckInteger, 1, ++/*488115*/ OPC_CheckType, MVT::i32, ++/*488117*/ OPC_MoveParent, ++/*488118*/ OPC_CheckType, MVT::v8i32, ++/*488120*/ OPC_MoveParent, ++/*488121*/ OPC_CheckType, MVT::v8i32, ++/*488123*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*488125*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b), LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*488133*/ /*Scope*/ 107, /*->488241*/ ++/*488134*/ OPC_CheckChild0Same, 1, ++/*488136*/ OPC_MoveChild1, ++/*488137*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*488140*/ OPC_CheckChild0Integer, 1, ++/*488142*/ OPC_CheckChild0Type, MVT::i32, ++/*488144*/ OPC_CheckChild1Integer, 1, ++/*488146*/ OPC_CheckChild1Type, MVT::i32, ++/*488148*/ OPC_CheckChild2Integer, 1, ++/*488150*/ OPC_CheckChild2Type, MVT::i32, ++/*488152*/ OPC_CheckChild3Integer, 1, ++/*488154*/ OPC_CheckChild3Type, MVT::i32, ++/*488156*/ OPC_CheckChild4Integer, 1, ++/*488158*/ OPC_CheckChild4Type, MVT::i32, ++/*488160*/ OPC_MoveChild5, ++/*488161*/ OPC_CheckInteger, 1, ++/*488163*/ OPC_CheckType, MVT::i32, ++/*488165*/ OPC_MoveParent, ++/*488166*/ OPC_MoveChild6, ++/*488167*/ OPC_CheckInteger, 1, ++/*488169*/ OPC_CheckType, MVT::i32, ++/*488171*/ OPC_MoveParent, ++/*488172*/ OPC_MoveChild7, ++/*488173*/ OPC_CheckInteger, 1, ++/*488175*/ OPC_CheckType, MVT::i32, ++/*488177*/ OPC_MoveParent, ++/*488178*/ OPC_MoveParent, ++/*488179*/ OPC_MoveParent, ++/*488180*/ OPC_CheckChild1Same, 0, ++/*488182*/ OPC_MoveParent, ++/*488183*/ OPC_MoveParent, ++/*488184*/ OPC_MoveChild1, ++/*488185*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*488188*/ OPC_CheckChild0Integer, 1, ++/*488190*/ OPC_CheckChild0Type, MVT::i32, ++/*488192*/ OPC_CheckChild1Integer, 1, ++/*488194*/ OPC_CheckChild1Type, MVT::i32, ++/*488196*/ OPC_CheckChild2Integer, 1, ++/*488198*/ OPC_CheckChild2Type, MVT::i32, ++/*488200*/ OPC_CheckChild3Integer, 1, ++/*488202*/ OPC_CheckChild3Type, MVT::i32, ++/*488204*/ OPC_CheckChild4Integer, 1, ++/*488206*/ OPC_CheckChild4Type, MVT::i32, ++/*488208*/ OPC_MoveChild5, ++/*488209*/ OPC_CheckInteger, 1, ++/*488211*/ OPC_CheckType, MVT::i32, ++/*488213*/ OPC_MoveParent, ++/*488214*/ OPC_MoveChild6, ++/*488215*/ OPC_CheckInteger, 1, ++/*488217*/ OPC_CheckType, MVT::i32, ++/*488219*/ OPC_MoveParent, ++/*488220*/ OPC_MoveChild7, ++/*488221*/ OPC_CheckInteger, 1, ++/*488223*/ OPC_CheckType, MVT::i32, ++/*488225*/ OPC_MoveParent, ++/*488226*/ OPC_CheckType, MVT::v8i32, ++/*488228*/ OPC_MoveParent, ++/*488229*/ OPC_CheckType, MVT::v8i32, ++/*488231*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*488233*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*488241*/ /*Scope*/ 107, /*->488349*/ ++/*488242*/ OPC_CheckChild0Same, 0, ++/*488244*/ OPC_CheckChild1Same, 1, ++/*488246*/ OPC_MoveParent, ++/*488247*/ OPC_MoveChild1, ++/*488248*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*488251*/ OPC_CheckChild0Integer, 1, ++/*488253*/ OPC_CheckChild0Type, MVT::i32, ++/*488255*/ OPC_CheckChild1Integer, 1, ++/*488257*/ OPC_CheckChild1Type, MVT::i32, ++/*488259*/ OPC_CheckChild2Integer, 1, ++/*488261*/ OPC_CheckChild2Type, MVT::i32, ++/*488263*/ OPC_CheckChild3Integer, 1, ++/*488265*/ OPC_CheckChild3Type, MVT::i32, ++/*488267*/ OPC_CheckChild4Integer, 1, ++/*488269*/ OPC_CheckChild4Type, MVT::i32, ++/*488271*/ OPC_MoveChild5, ++/*488272*/ OPC_CheckInteger, 1, ++/*488274*/ OPC_CheckType, MVT::i32, ++/*488276*/ OPC_MoveParent, ++/*488277*/ OPC_MoveChild6, ++/*488278*/ OPC_CheckInteger, 1, ++/*488280*/ OPC_CheckType, MVT::i32, ++/*488282*/ OPC_MoveParent, ++/*488283*/ OPC_MoveChild7, ++/*488284*/ OPC_CheckInteger, 1, ++/*488286*/ OPC_CheckType, MVT::i32, ++/*488288*/ OPC_MoveParent, ++/*488289*/ OPC_MoveParent, ++/*488290*/ OPC_MoveParent, ++/*488291*/ OPC_MoveParent, ++/*488292*/ OPC_MoveChild1, ++/*488293*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*488296*/ OPC_CheckChild0Integer, 1, ++/*488298*/ OPC_CheckChild0Type, MVT::i32, ++/*488300*/ OPC_CheckChild1Integer, 1, ++/*488302*/ OPC_CheckChild1Type, MVT::i32, ++/*488304*/ OPC_CheckChild2Integer, 1, ++/*488306*/ OPC_CheckChild2Type, MVT::i32, ++/*488308*/ OPC_CheckChild3Integer, 1, ++/*488310*/ OPC_CheckChild3Type, MVT::i32, ++/*488312*/ OPC_CheckChild4Integer, 1, ++/*488314*/ OPC_CheckChild4Type, MVT::i32, ++/*488316*/ OPC_MoveChild5, ++/*488317*/ OPC_CheckInteger, 1, ++/*488319*/ OPC_CheckType, MVT::i32, ++/*488321*/ OPC_MoveParent, ++/*488322*/ OPC_MoveChild6, ++/*488323*/ OPC_CheckInteger, 1, ++/*488325*/ OPC_CheckType, MVT::i32, ++/*488327*/ OPC_MoveParent, ++/*488328*/ OPC_MoveChild7, ++/*488329*/ OPC_CheckInteger, 1, ++/*488331*/ OPC_CheckType, MVT::i32, ++/*488333*/ OPC_MoveParent, ++/*488334*/ OPC_CheckType, MVT::v8i32, ++/*488336*/ OPC_MoveParent, ++/*488337*/ OPC_CheckType, MVT::v8i32, ++/*488339*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*488341*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*488349*/ /*Scope*/ 107, /*->488457*/ ++/*488350*/ OPC_CheckChild0Same, 1, ++/*488352*/ OPC_CheckChild1Same, 0, ++/*488354*/ OPC_MoveParent, ++/*488355*/ OPC_MoveChild1, ++/*488356*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*488359*/ OPC_CheckChild0Integer, 1, ++/*488361*/ OPC_CheckChild0Type, MVT::i32, ++/*488363*/ OPC_CheckChild1Integer, 1, ++/*488365*/ OPC_CheckChild1Type, MVT::i32, ++/*488367*/ OPC_CheckChild2Integer, 1, ++/*488369*/ OPC_CheckChild2Type, MVT::i32, ++/*488371*/ OPC_CheckChild3Integer, 1, ++/*488373*/ OPC_CheckChild3Type, MVT::i32, ++/*488375*/ OPC_CheckChild4Integer, 1, ++/*488377*/ OPC_CheckChild4Type, MVT::i32, ++/*488379*/ OPC_MoveChild5, ++/*488380*/ OPC_CheckInteger, 1, ++/*488382*/ OPC_CheckType, MVT::i32, ++/*488384*/ OPC_MoveParent, ++/*488385*/ OPC_MoveChild6, ++/*488386*/ OPC_CheckInteger, 1, ++/*488388*/ OPC_CheckType, MVT::i32, ++/*488390*/ OPC_MoveParent, ++/*488391*/ OPC_MoveChild7, ++/*488392*/ OPC_CheckInteger, 1, ++/*488394*/ OPC_CheckType, MVT::i32, ++/*488396*/ OPC_MoveParent, ++/*488397*/ OPC_MoveParent, ++/*488398*/ OPC_MoveParent, ++/*488399*/ OPC_MoveParent, ++/*488400*/ OPC_MoveChild1, ++/*488401*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*488404*/ OPC_CheckChild0Integer, 1, ++/*488406*/ OPC_CheckChild0Type, MVT::i32, ++/*488408*/ OPC_CheckChild1Integer, 1, ++/*488410*/ OPC_CheckChild1Type, MVT::i32, ++/*488412*/ OPC_CheckChild2Integer, 1, ++/*488414*/ OPC_CheckChild2Type, MVT::i32, ++/*488416*/ OPC_CheckChild3Integer, 1, ++/*488418*/ OPC_CheckChild3Type, MVT::i32, ++/*488420*/ OPC_CheckChild4Integer, 1, ++/*488422*/ OPC_CheckChild4Type, MVT::i32, ++/*488424*/ OPC_MoveChild5, ++/*488425*/ OPC_CheckInteger, 1, ++/*488427*/ OPC_CheckType, MVT::i32, ++/*488429*/ OPC_MoveParent, ++/*488430*/ OPC_MoveChild6, ++/*488431*/ OPC_CheckInteger, 1, ++/*488433*/ OPC_CheckType, MVT::i32, ++/*488435*/ OPC_MoveParent, ++/*488436*/ OPC_MoveChild7, ++/*488437*/ OPC_CheckInteger, 1, ++/*488439*/ OPC_CheckType, MVT::i32, ++/*488441*/ OPC_MoveParent, ++/*488442*/ OPC_CheckType, MVT::v8i32, ++/*488444*/ OPC_MoveParent, ++/*488445*/ OPC_CheckType, MVT::v8i32, ++/*488447*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*488449*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*488457*/ 0, /*End of Scope*/ ++/*488458*/ /*Scope*/ 92|128,1/*220*/, /*->488680*/ ++/*488460*/ OPC_CheckChild0Same, 1, ++/*488462*/ OPC_MoveChild1, ++/*488463*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*488466*/ OPC_Scope, 105, /*->488573*/ // 2 children in Scope ++/*488468*/ OPC_MoveChild0, ++/*488469*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*488472*/ OPC_CheckChild0Integer, 1, ++/*488474*/ OPC_CheckChild0Type, MVT::i32, ++/*488476*/ OPC_CheckChild1Integer, 1, ++/*488478*/ OPC_CheckChild1Type, MVT::i32, ++/*488480*/ OPC_CheckChild2Integer, 1, ++/*488482*/ OPC_CheckChild2Type, MVT::i32, ++/*488484*/ OPC_CheckChild3Integer, 1, ++/*488486*/ OPC_CheckChild3Type, MVT::i32, ++/*488488*/ OPC_CheckChild4Integer, 1, ++/*488490*/ OPC_CheckChild4Type, MVT::i32, ++/*488492*/ OPC_MoveChild5, ++/*488493*/ OPC_CheckInteger, 1, ++/*488495*/ OPC_CheckType, MVT::i32, ++/*488497*/ OPC_MoveParent, ++/*488498*/ OPC_MoveChild6, ++/*488499*/ OPC_CheckInteger, 1, ++/*488501*/ OPC_CheckType, MVT::i32, ++/*488503*/ OPC_MoveParent, ++/*488504*/ OPC_MoveChild7, ++/*488505*/ OPC_CheckInteger, 1, ++/*488507*/ OPC_CheckType, MVT::i32, ++/*488509*/ OPC_MoveParent, ++/*488510*/ OPC_MoveParent, ++/*488511*/ OPC_CheckChild1Same, 0, ++/*488513*/ OPC_MoveParent, ++/*488514*/ OPC_MoveParent, ++/*488515*/ OPC_MoveParent, ++/*488516*/ OPC_MoveChild1, ++/*488517*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*488520*/ OPC_CheckChild0Integer, 1, ++/*488522*/ OPC_CheckChild0Type, MVT::i32, ++/*488524*/ OPC_CheckChild1Integer, 1, ++/*488526*/ OPC_CheckChild1Type, MVT::i32, ++/*488528*/ OPC_CheckChild2Integer, 1, ++/*488530*/ OPC_CheckChild2Type, MVT::i32, ++/*488532*/ OPC_CheckChild3Integer, 1, ++/*488534*/ OPC_CheckChild3Type, MVT::i32, ++/*488536*/ OPC_CheckChild4Integer, 1, ++/*488538*/ OPC_CheckChild4Type, MVT::i32, ++/*488540*/ OPC_MoveChild5, ++/*488541*/ OPC_CheckInteger, 1, ++/*488543*/ OPC_CheckType, MVT::i32, ++/*488545*/ OPC_MoveParent, ++/*488546*/ OPC_MoveChild6, ++/*488547*/ OPC_CheckInteger, 1, ++/*488549*/ OPC_CheckType, MVT::i32, ++/*488551*/ OPC_MoveParent, ++/*488552*/ OPC_MoveChild7, ++/*488553*/ OPC_CheckInteger, 1, ++/*488555*/ OPC_CheckType, MVT::i32, ++/*488557*/ OPC_MoveParent, ++/*488558*/ OPC_CheckType, MVT::v8i32, ++/*488560*/ OPC_MoveParent, ++/*488561*/ OPC_CheckType, MVT::v8i32, ++/*488563*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*488565*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*488573*/ /*Scope*/ 105, /*->488679*/ ++/*488574*/ OPC_CheckChild0Same, 0, ++/*488576*/ OPC_MoveChild1, ++/*488577*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*488580*/ OPC_CheckChild0Integer, 1, ++/*488582*/ OPC_CheckChild0Type, MVT::i32, ++/*488584*/ OPC_CheckChild1Integer, 1, ++/*488586*/ OPC_CheckChild1Type, MVT::i32, ++/*488588*/ OPC_CheckChild2Integer, 1, ++/*488590*/ OPC_CheckChild2Type, MVT::i32, ++/*488592*/ OPC_CheckChild3Integer, 1, ++/*488594*/ OPC_CheckChild3Type, MVT::i32, ++/*488596*/ OPC_CheckChild4Integer, 1, ++/*488598*/ OPC_CheckChild4Type, MVT::i32, ++/*488600*/ OPC_MoveChild5, ++/*488601*/ OPC_CheckInteger, 1, ++/*488603*/ OPC_CheckType, MVT::i32, ++/*488605*/ OPC_MoveParent, ++/*488606*/ OPC_MoveChild6, ++/*488607*/ OPC_CheckInteger, 1, ++/*488609*/ OPC_CheckType, MVT::i32, ++/*488611*/ OPC_MoveParent, ++/*488612*/ OPC_MoveChild7, ++/*488613*/ OPC_CheckInteger, 1, ++/*488615*/ OPC_CheckType, MVT::i32, ++/*488617*/ OPC_MoveParent, ++/*488618*/ OPC_MoveParent, ++/*488619*/ OPC_MoveParent, ++/*488620*/ OPC_MoveParent, ++/*488621*/ OPC_MoveParent, ++/*488622*/ OPC_MoveChild1, ++/*488623*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*488626*/ OPC_CheckChild0Integer, 1, ++/*488628*/ OPC_CheckChild0Type, MVT::i32, ++/*488630*/ OPC_CheckChild1Integer, 1, ++/*488632*/ OPC_CheckChild1Type, MVT::i32, ++/*488634*/ OPC_CheckChild2Integer, 1, ++/*488636*/ OPC_CheckChild2Type, MVT::i32, ++/*488638*/ OPC_CheckChild3Integer, 1, ++/*488640*/ OPC_CheckChild3Type, MVT::i32, ++/*488642*/ OPC_CheckChild4Integer, 1, ++/*488644*/ OPC_CheckChild4Type, MVT::i32, ++/*488646*/ OPC_MoveChild5, ++/*488647*/ OPC_CheckInteger, 1, ++/*488649*/ OPC_CheckType, MVT::i32, ++/*488651*/ OPC_MoveParent, ++/*488652*/ OPC_MoveChild6, ++/*488653*/ OPC_CheckInteger, 1, ++/*488655*/ OPC_CheckType, MVT::i32, ++/*488657*/ OPC_MoveParent, ++/*488658*/ OPC_MoveChild7, ++/*488659*/ OPC_CheckInteger, 1, ++/*488661*/ OPC_CheckType, MVT::i32, ++/*488663*/ OPC_MoveParent, ++/*488664*/ OPC_CheckType, MVT::v8i32, ++/*488666*/ OPC_MoveParent, ++/*488667*/ OPC_CheckType, MVT::v8i32, ++/*488669*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*488671*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*488679*/ 0, /*End of Scope*/ ++/*488680*/ /*Scope*/ 92|128,1/*220*/, /*->488902*/ ++/*488682*/ OPC_CheckChild0Same, 0, ++/*488684*/ OPC_MoveChild1, ++/*488685*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*488688*/ OPC_Scope, 105, /*->488795*/ // 2 children in Scope ++/*488690*/ OPC_MoveChild0, ++/*488691*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*488694*/ OPC_CheckChild0Integer, 1, ++/*488696*/ OPC_CheckChild0Type, MVT::i32, ++/*488698*/ OPC_CheckChild1Integer, 1, ++/*488700*/ OPC_CheckChild1Type, MVT::i32, ++/*488702*/ OPC_CheckChild2Integer, 1, ++/*488704*/ OPC_CheckChild2Type, MVT::i32, ++/*488706*/ OPC_CheckChild3Integer, 1, ++/*488708*/ OPC_CheckChild3Type, MVT::i32, ++/*488710*/ OPC_CheckChild4Integer, 1, ++/*488712*/ OPC_CheckChild4Type, MVT::i32, ++/*488714*/ OPC_MoveChild5, ++/*488715*/ OPC_CheckInteger, 1, ++/*488717*/ OPC_CheckType, MVT::i32, ++/*488719*/ OPC_MoveParent, ++/*488720*/ OPC_MoveChild6, ++/*488721*/ OPC_CheckInteger, 1, ++/*488723*/ OPC_CheckType, MVT::i32, ++/*488725*/ OPC_MoveParent, ++/*488726*/ OPC_MoveChild7, ++/*488727*/ OPC_CheckInteger, 1, ++/*488729*/ OPC_CheckType, MVT::i32, ++/*488731*/ OPC_MoveParent, ++/*488732*/ OPC_MoveParent, ++/*488733*/ OPC_CheckChild1Same, 1, ++/*488735*/ OPC_MoveParent, ++/*488736*/ OPC_MoveParent, ++/*488737*/ OPC_MoveParent, ++/*488738*/ OPC_MoveChild1, ++/*488739*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*488742*/ OPC_CheckChild0Integer, 1, ++/*488744*/ OPC_CheckChild0Type, MVT::i32, ++/*488746*/ OPC_CheckChild1Integer, 1, ++/*488748*/ OPC_CheckChild1Type, MVT::i32, ++/*488750*/ OPC_CheckChild2Integer, 1, ++/*488752*/ OPC_CheckChild2Type, MVT::i32, ++/*488754*/ OPC_CheckChild3Integer, 1, ++/*488756*/ OPC_CheckChild3Type, MVT::i32, ++/*488758*/ OPC_CheckChild4Integer, 1, ++/*488760*/ OPC_CheckChild4Type, MVT::i32, ++/*488762*/ OPC_MoveChild5, ++/*488763*/ OPC_CheckInteger, 1, ++/*488765*/ OPC_CheckType, MVT::i32, ++/*488767*/ OPC_MoveParent, ++/*488768*/ OPC_MoveChild6, ++/*488769*/ OPC_CheckInteger, 1, ++/*488771*/ OPC_CheckType, MVT::i32, ++/*488773*/ OPC_MoveParent, ++/*488774*/ OPC_MoveChild7, ++/*488775*/ OPC_CheckInteger, 1, ++/*488777*/ OPC_CheckType, MVT::i32, ++/*488779*/ OPC_MoveParent, ++/*488780*/ OPC_CheckType, MVT::v8i32, ++/*488782*/ OPC_MoveParent, ++/*488783*/ OPC_CheckType, MVT::v8i32, ++/*488785*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*488787*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*488795*/ /*Scope*/ 105, /*->488901*/ ++/*488796*/ OPC_CheckChild0Same, 1, ++/*488798*/ OPC_MoveChild1, ++/*488799*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*488802*/ OPC_CheckChild0Integer, 1, ++/*488804*/ OPC_CheckChild0Type, MVT::i32, ++/*488806*/ OPC_CheckChild1Integer, 1, ++/*488808*/ OPC_CheckChild1Type, MVT::i32, ++/*488810*/ OPC_CheckChild2Integer, 1, ++/*488812*/ OPC_CheckChild2Type, MVT::i32, ++/*488814*/ OPC_CheckChild3Integer, 1, ++/*488816*/ OPC_CheckChild3Type, MVT::i32, ++/*488818*/ OPC_CheckChild4Integer, 1, ++/*488820*/ OPC_CheckChild4Type, MVT::i32, ++/*488822*/ OPC_MoveChild5, ++/*488823*/ OPC_CheckInteger, 1, ++/*488825*/ OPC_CheckType, MVT::i32, ++/*488827*/ OPC_MoveParent, ++/*488828*/ OPC_MoveChild6, ++/*488829*/ OPC_CheckInteger, 1, ++/*488831*/ OPC_CheckType, MVT::i32, ++/*488833*/ OPC_MoveParent, ++/*488834*/ OPC_MoveChild7, ++/*488835*/ OPC_CheckInteger, 1, ++/*488837*/ OPC_CheckType, MVT::i32, ++/*488839*/ OPC_MoveParent, ++/*488840*/ OPC_MoveParent, ++/*488841*/ OPC_MoveParent, ++/*488842*/ OPC_MoveParent, ++/*488843*/ OPC_MoveParent, ++/*488844*/ OPC_MoveChild1, ++/*488845*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*488848*/ OPC_CheckChild0Integer, 1, ++/*488850*/ OPC_CheckChild0Type, MVT::i32, ++/*488852*/ OPC_CheckChild1Integer, 1, ++/*488854*/ OPC_CheckChild1Type, MVT::i32, ++/*488856*/ OPC_CheckChild2Integer, 1, ++/*488858*/ OPC_CheckChild2Type, MVT::i32, ++/*488860*/ OPC_CheckChild3Integer, 1, ++/*488862*/ OPC_CheckChild3Type, MVT::i32, ++/*488864*/ OPC_CheckChild4Integer, 1, ++/*488866*/ OPC_CheckChild4Type, MVT::i32, ++/*488868*/ OPC_MoveChild5, ++/*488869*/ OPC_CheckInteger, 1, ++/*488871*/ OPC_CheckType, MVT::i32, ++/*488873*/ OPC_MoveParent, ++/*488874*/ OPC_MoveChild6, ++/*488875*/ OPC_CheckInteger, 1, ++/*488877*/ OPC_CheckType, MVT::i32, ++/*488879*/ OPC_MoveParent, ++/*488880*/ OPC_MoveChild7, ++/*488881*/ OPC_CheckInteger, 1, ++/*488883*/ OPC_CheckType, MVT::i32, ++/*488885*/ OPC_MoveParent, ++/*488886*/ OPC_CheckType, MVT::v8i32, ++/*488888*/ OPC_MoveParent, ++/*488889*/ OPC_CheckType, MVT::v8i32, ++/*488891*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*488893*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*488901*/ 0, /*End of Scope*/ ++/*488902*/ /*Scope*/ 51|128,1/*179*/, /*->489083*/ ++/*488904*/ OPC_MoveChild0, ++/*488905*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*488908*/ OPC_CheckChild0Integer, 1, ++/*488910*/ OPC_CheckChild0Type, MVT::i32, ++/*488912*/ OPC_CheckChild1Integer, 1, ++/*488914*/ OPC_CheckChild1Type, MVT::i32, ++/*488916*/ OPC_CheckChild2Integer, 1, ++/*488918*/ OPC_CheckChild2Type, MVT::i32, ++/*488920*/ OPC_CheckChild3Integer, 1, ++/*488922*/ OPC_CheckChild3Type, MVT::i32, ++/*488924*/ OPC_CheckChild4Integer, 1, ++/*488926*/ OPC_CheckChild4Type, MVT::i32, ++/*488928*/ OPC_MoveChild5, ++/*488929*/ OPC_CheckInteger, 1, ++/*488931*/ OPC_CheckType, MVT::i32, ++/*488933*/ OPC_MoveParent, ++/*488934*/ OPC_MoveChild6, ++/*488935*/ OPC_CheckInteger, 1, ++/*488937*/ OPC_CheckType, MVT::i32, ++/*488939*/ OPC_MoveParent, ++/*488940*/ OPC_MoveChild7, ++/*488941*/ OPC_CheckInteger, 1, ++/*488943*/ OPC_CheckType, MVT::i32, ++/*488945*/ OPC_MoveParent, ++/*488946*/ OPC_MoveParent, ++/*488947*/ OPC_MoveChild1, ++/*488948*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*488951*/ OPC_Scope, 64, /*->489017*/ // 2 children in Scope ++/*488953*/ OPC_CheckChild0Same, 0, ++/*488955*/ OPC_CheckChild1Same, 1, ++/*488957*/ OPC_MoveParent, ++/*488958*/ OPC_MoveParent, ++/*488959*/ OPC_MoveParent, ++/*488960*/ OPC_MoveChild1, ++/*488961*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*488964*/ OPC_CheckChild0Integer, 1, ++/*488966*/ OPC_CheckChild0Type, MVT::i32, ++/*488968*/ OPC_CheckChild1Integer, 1, ++/*488970*/ OPC_CheckChild1Type, MVT::i32, ++/*488972*/ OPC_CheckChild2Integer, 1, ++/*488974*/ OPC_CheckChild2Type, MVT::i32, ++/*488976*/ OPC_CheckChild3Integer, 1, ++/*488978*/ OPC_CheckChild3Type, MVT::i32, ++/*488980*/ OPC_CheckChild4Integer, 1, ++/*488982*/ OPC_CheckChild4Type, MVT::i32, ++/*488984*/ OPC_MoveChild5, ++/*488985*/ OPC_CheckInteger, 1, ++/*488987*/ OPC_CheckType, MVT::i32, ++/*488989*/ OPC_MoveParent, ++/*488990*/ OPC_MoveChild6, ++/*488991*/ OPC_CheckInteger, 1, ++/*488993*/ OPC_CheckType, MVT::i32, ++/*488995*/ OPC_MoveParent, ++/*488996*/ OPC_MoveChild7, ++/*488997*/ OPC_CheckInteger, 1, ++/*488999*/ OPC_CheckType, MVT::i32, ++/*489001*/ OPC_MoveParent, ++/*489002*/ OPC_CheckType, MVT::v8i32, ++/*489004*/ OPC_MoveParent, ++/*489005*/ OPC_CheckType, MVT::v8i32, ++/*489007*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*489009*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*489017*/ /*Scope*/ 64, /*->489082*/ ++/*489018*/ OPC_CheckChild0Same, 1, ++/*489020*/ OPC_CheckChild1Same, 0, ++/*489022*/ OPC_MoveParent, ++/*489023*/ OPC_MoveParent, ++/*489024*/ OPC_MoveParent, ++/*489025*/ OPC_MoveChild1, ++/*489026*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*489029*/ OPC_CheckChild0Integer, 1, ++/*489031*/ OPC_CheckChild0Type, MVT::i32, ++/*489033*/ OPC_CheckChild1Integer, 1, ++/*489035*/ OPC_CheckChild1Type, MVT::i32, ++/*489037*/ OPC_CheckChild2Integer, 1, ++/*489039*/ OPC_CheckChild2Type, MVT::i32, ++/*489041*/ OPC_CheckChild3Integer, 1, ++/*489043*/ OPC_CheckChild3Type, MVT::i32, ++/*489045*/ OPC_CheckChild4Integer, 1, ++/*489047*/ OPC_CheckChild4Type, MVT::i32, ++/*489049*/ OPC_MoveChild5, ++/*489050*/ OPC_CheckInteger, 1, ++/*489052*/ OPC_CheckType, MVT::i32, ++/*489054*/ OPC_MoveParent, ++/*489055*/ OPC_MoveChild6, ++/*489056*/ OPC_CheckInteger, 1, ++/*489058*/ OPC_CheckType, MVT::i32, ++/*489060*/ OPC_MoveParent, ++/*489061*/ OPC_MoveChild7, ++/*489062*/ OPC_CheckInteger, 1, ++/*489064*/ OPC_CheckType, MVT::i32, ++/*489066*/ OPC_MoveParent, ++/*489067*/ OPC_CheckType, MVT::v8i32, ++/*489069*/ OPC_MoveParent, ++/*489070*/ OPC_CheckType, MVT::v8i32, ++/*489072*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*489074*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*489082*/ 0, /*End of Scope*/ ++/*489083*/ 0, /*End of Scope*/ ++/*489084*/ 0, /*End of Scope*/ ++/*489085*/ /*Scope*/ 106|128,20/*2666*/, /*->491753*/ ++/*489087*/ OPC_MoveChild0, ++/*489088*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*489091*/ OPC_CheckChild0Integer, 1, ++/*489093*/ OPC_CheckChild0Type, MVT::i32, ++/*489095*/ OPC_CheckChild1Integer, 1, ++/*489097*/ OPC_CheckChild1Type, MVT::i32, ++/*489099*/ OPC_CheckChild2Integer, 1, ++/*489101*/ OPC_CheckChild2Type, MVT::i32, ++/*489103*/ OPC_CheckChild3Integer, 1, ++/*489105*/ OPC_CheckChild3Type, MVT::i32, ++/*489107*/ OPC_CheckChild4Integer, 1, ++/*489109*/ OPC_CheckChild4Type, MVT::i32, ++/*489111*/ OPC_MoveChild5, ++/*489112*/ OPC_CheckInteger, 1, ++/*489114*/ OPC_CheckType, MVT::i32, ++/*489116*/ OPC_MoveParent, ++/*489117*/ OPC_MoveChild6, ++/*489118*/ OPC_CheckInteger, 1, ++/*489120*/ OPC_CheckType, MVT::i32, ++/*489122*/ OPC_MoveParent, ++/*489123*/ OPC_MoveChild7, ++/*489124*/ OPC_CheckInteger, 1, ++/*489126*/ OPC_CheckType, MVT::i32, ++/*489128*/ OPC_MoveParent, ++/*489129*/ OPC_MoveParent, ++/*489130*/ OPC_MoveChild1, ++/*489131*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*489134*/ OPC_RecordChild0, // #0 = $a ++/*489135*/ OPC_RecordChild1, // #1 = $b ++/*489136*/ OPC_MoveParent, ++/*489137*/ OPC_MoveParent, ++/*489138*/ OPC_MoveChild1, ++/*489139*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*489142*/ OPC_CheckChild0Integer, 31, ++/*489144*/ OPC_CheckChild0Type, MVT::i32, ++/*489146*/ OPC_CheckChild1Integer, 31, ++/*489148*/ OPC_CheckChild1Type, MVT::i32, ++/*489150*/ OPC_CheckChild2Integer, 31, ++/*489152*/ OPC_CheckChild2Type, MVT::i32, ++/*489154*/ OPC_CheckChild3Integer, 31, ++/*489156*/ OPC_CheckChild3Type, MVT::i32, ++/*489158*/ OPC_CheckChild4Integer, 31, ++/*489160*/ OPC_CheckChild4Type, MVT::i32, ++/*489162*/ OPC_MoveChild5, ++/*489163*/ OPC_CheckInteger, 31, ++/*489165*/ OPC_CheckType, MVT::i32, ++/*489167*/ OPC_MoveParent, ++/*489168*/ OPC_MoveChild6, ++/*489169*/ OPC_CheckInteger, 31, ++/*489171*/ OPC_CheckType, MVT::i32, ++/*489173*/ OPC_MoveParent, ++/*489174*/ OPC_MoveChild7, ++/*489175*/ OPC_CheckInteger, 31, ++/*489177*/ OPC_CheckType, MVT::i32, ++/*489179*/ OPC_MoveParent, ++/*489180*/ OPC_CheckType, MVT::v8i32, ++/*489182*/ OPC_MoveParent, ++/*489183*/ OPC_MoveParent, ++/*489184*/ OPC_MoveChild1, ++/*489185*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*489188*/ OPC_Scope, 14|128,5/*654*/, /*->489845*/ // 7 children in Scope ++/*489191*/ OPC_MoveChild0, ++/*489192*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*489195*/ OPC_Scope, 107, /*->489304*/ // 6 children in Scope ++/*489197*/ OPC_MoveChild0, ++/*489198*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*489201*/ OPC_CheckChild0Integer, 1, ++/*489203*/ OPC_CheckChild0Type, MVT::i32, ++/*489205*/ OPC_CheckChild1Integer, 1, ++/*489207*/ OPC_CheckChild1Type, MVT::i32, ++/*489209*/ OPC_CheckChild2Integer, 1, ++/*489211*/ OPC_CheckChild2Type, MVT::i32, ++/*489213*/ OPC_CheckChild3Integer, 1, ++/*489215*/ OPC_CheckChild3Type, MVT::i32, ++/*489217*/ OPC_CheckChild4Integer, 1, ++/*489219*/ OPC_CheckChild4Type, MVT::i32, ++/*489221*/ OPC_MoveChild5, ++/*489222*/ OPC_CheckInteger, 1, ++/*489224*/ OPC_CheckType, MVT::i32, ++/*489226*/ OPC_MoveParent, ++/*489227*/ OPC_MoveChild6, ++/*489228*/ OPC_CheckInteger, 1, ++/*489230*/ OPC_CheckType, MVT::i32, ++/*489232*/ OPC_MoveParent, ++/*489233*/ OPC_MoveChild7, ++/*489234*/ OPC_CheckInteger, 1, ++/*489236*/ OPC_CheckType, MVT::i32, ++/*489238*/ OPC_MoveParent, ++/*489239*/ OPC_MoveParent, ++/*489240*/ OPC_CheckChild1Same, 0, ++/*489242*/ OPC_MoveParent, ++/*489243*/ OPC_CheckChild1Same, 1, ++/*489245*/ OPC_MoveParent, ++/*489246*/ OPC_MoveParent, ++/*489247*/ OPC_MoveChild1, ++/*489248*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*489251*/ OPC_CheckChild0Integer, 1, ++/*489253*/ OPC_CheckChild0Type, MVT::i32, ++/*489255*/ OPC_CheckChild1Integer, 1, ++/*489257*/ OPC_CheckChild1Type, MVT::i32, ++/*489259*/ OPC_CheckChild2Integer, 1, ++/*489261*/ OPC_CheckChild2Type, MVT::i32, ++/*489263*/ OPC_CheckChild3Integer, 1, ++/*489265*/ OPC_CheckChild3Type, MVT::i32, ++/*489267*/ OPC_CheckChild4Integer, 1, ++/*489269*/ OPC_CheckChild4Type, MVT::i32, ++/*489271*/ OPC_MoveChild5, ++/*489272*/ OPC_CheckInteger, 1, ++/*489274*/ OPC_CheckType, MVT::i32, ++/*489276*/ OPC_MoveParent, ++/*489277*/ OPC_MoveChild6, ++/*489278*/ OPC_CheckInteger, 1, ++/*489280*/ OPC_CheckType, MVT::i32, ++/*489282*/ OPC_MoveParent, ++/*489283*/ OPC_MoveChild7, ++/*489284*/ OPC_CheckInteger, 1, ++/*489286*/ OPC_CheckType, MVT::i32, ++/*489288*/ OPC_MoveParent, ++/*489289*/ OPC_CheckType, MVT::v8i32, ++/*489291*/ OPC_MoveParent, ++/*489292*/ OPC_CheckType, MVT::v8i32, ++/*489294*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*489296*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a), LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*489304*/ /*Scope*/ 107, /*->489412*/ ++/*489305*/ OPC_CheckChild0Same, 0, ++/*489307*/ OPC_MoveChild1, ++/*489308*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*489311*/ OPC_CheckChild0Integer, 1, ++/*489313*/ OPC_CheckChild0Type, MVT::i32, ++/*489315*/ OPC_CheckChild1Integer, 1, ++/*489317*/ OPC_CheckChild1Type, MVT::i32, ++/*489319*/ OPC_CheckChild2Integer, 1, ++/*489321*/ OPC_CheckChild2Type, MVT::i32, ++/*489323*/ OPC_CheckChild3Integer, 1, ++/*489325*/ OPC_CheckChild3Type, MVT::i32, ++/*489327*/ OPC_CheckChild4Integer, 1, ++/*489329*/ OPC_CheckChild4Type, MVT::i32, ++/*489331*/ OPC_MoveChild5, ++/*489332*/ OPC_CheckInteger, 1, ++/*489334*/ OPC_CheckType, MVT::i32, ++/*489336*/ OPC_MoveParent, ++/*489337*/ OPC_MoveChild6, ++/*489338*/ OPC_CheckInteger, 1, ++/*489340*/ OPC_CheckType, MVT::i32, ++/*489342*/ OPC_MoveParent, ++/*489343*/ OPC_MoveChild7, ++/*489344*/ OPC_CheckInteger, 1, ++/*489346*/ OPC_CheckType, MVT::i32, ++/*489348*/ OPC_MoveParent, ++/*489349*/ OPC_MoveParent, ++/*489350*/ OPC_MoveParent, ++/*489351*/ OPC_CheckChild1Same, 1, ++/*489353*/ OPC_MoveParent, ++/*489354*/ OPC_MoveParent, ++/*489355*/ OPC_MoveChild1, ++/*489356*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*489359*/ OPC_CheckChild0Integer, 1, ++/*489361*/ OPC_CheckChild0Type, MVT::i32, ++/*489363*/ OPC_CheckChild1Integer, 1, ++/*489365*/ OPC_CheckChild1Type, MVT::i32, ++/*489367*/ OPC_CheckChild2Integer, 1, ++/*489369*/ OPC_CheckChild2Type, MVT::i32, ++/*489371*/ OPC_CheckChild3Integer, 1, ++/*489373*/ OPC_CheckChild3Type, MVT::i32, ++/*489375*/ OPC_CheckChild4Integer, 1, ++/*489377*/ OPC_CheckChild4Type, MVT::i32, ++/*489379*/ OPC_MoveChild5, ++/*489380*/ OPC_CheckInteger, 1, ++/*489382*/ OPC_CheckType, MVT::i32, ++/*489384*/ OPC_MoveParent, ++/*489385*/ OPC_MoveChild6, ++/*489386*/ OPC_CheckInteger, 1, ++/*489388*/ OPC_CheckType, MVT::i32, ++/*489390*/ OPC_MoveParent, ++/*489391*/ OPC_MoveChild7, ++/*489392*/ OPC_CheckInteger, 1, ++/*489394*/ OPC_CheckType, MVT::i32, ++/*489396*/ OPC_MoveParent, ++/*489397*/ OPC_CheckType, MVT::v8i32, ++/*489399*/ OPC_MoveParent, ++/*489400*/ OPC_CheckType, MVT::v8i32, ++/*489402*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*489404*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*489412*/ /*Scope*/ 107, /*->489520*/ ++/*489413*/ OPC_MoveChild0, ++/*489414*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*489417*/ OPC_CheckChild0Integer, 1, ++/*489419*/ OPC_CheckChild0Type, MVT::i32, ++/*489421*/ OPC_CheckChild1Integer, 1, ++/*489423*/ OPC_CheckChild1Type, MVT::i32, ++/*489425*/ OPC_CheckChild2Integer, 1, ++/*489427*/ OPC_CheckChild2Type, MVT::i32, ++/*489429*/ OPC_CheckChild3Integer, 1, ++/*489431*/ OPC_CheckChild3Type, MVT::i32, ++/*489433*/ OPC_CheckChild4Integer, 1, ++/*489435*/ OPC_CheckChild4Type, MVT::i32, ++/*489437*/ OPC_MoveChild5, ++/*489438*/ OPC_CheckInteger, 1, ++/*489440*/ OPC_CheckType, MVT::i32, ++/*489442*/ OPC_MoveParent, ++/*489443*/ OPC_MoveChild6, ++/*489444*/ OPC_CheckInteger, 1, ++/*489446*/ OPC_CheckType, MVT::i32, ++/*489448*/ OPC_MoveParent, ++/*489449*/ OPC_MoveChild7, ++/*489450*/ OPC_CheckInteger, 1, ++/*489452*/ OPC_CheckType, MVT::i32, ++/*489454*/ OPC_MoveParent, ++/*489455*/ OPC_MoveParent, ++/*489456*/ OPC_CheckChild1Same, 1, ++/*489458*/ OPC_MoveParent, ++/*489459*/ OPC_CheckChild1Same, 0, ++/*489461*/ OPC_MoveParent, ++/*489462*/ OPC_MoveParent, ++/*489463*/ OPC_MoveChild1, ++/*489464*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*489467*/ OPC_CheckChild0Integer, 1, ++/*489469*/ OPC_CheckChild0Type, MVT::i32, ++/*489471*/ OPC_CheckChild1Integer, 1, ++/*489473*/ OPC_CheckChild1Type, MVT::i32, ++/*489475*/ OPC_CheckChild2Integer, 1, ++/*489477*/ OPC_CheckChild2Type, MVT::i32, ++/*489479*/ OPC_CheckChild3Integer, 1, ++/*489481*/ OPC_CheckChild3Type, MVT::i32, ++/*489483*/ OPC_CheckChild4Integer, 1, ++/*489485*/ OPC_CheckChild4Type, MVT::i32, ++/*489487*/ OPC_MoveChild5, ++/*489488*/ OPC_CheckInteger, 1, ++/*489490*/ OPC_CheckType, MVT::i32, ++/*489492*/ OPC_MoveParent, ++/*489493*/ OPC_MoveChild6, ++/*489494*/ OPC_CheckInteger, 1, ++/*489496*/ OPC_CheckType, MVT::i32, ++/*489498*/ OPC_MoveParent, ++/*489499*/ OPC_MoveChild7, ++/*489500*/ OPC_CheckInteger, 1, ++/*489502*/ OPC_CheckType, MVT::i32, ++/*489504*/ OPC_MoveParent, ++/*489505*/ OPC_CheckType, MVT::v8i32, ++/*489507*/ OPC_MoveParent, ++/*489508*/ OPC_CheckType, MVT::v8i32, ++/*489510*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*489512*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b), LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*489520*/ /*Scope*/ 107, /*->489628*/ ++/*489521*/ OPC_CheckChild0Same, 1, ++/*489523*/ OPC_MoveChild1, ++/*489524*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*489527*/ OPC_CheckChild0Integer, 1, ++/*489529*/ OPC_CheckChild0Type, MVT::i32, ++/*489531*/ OPC_CheckChild1Integer, 1, ++/*489533*/ OPC_CheckChild1Type, MVT::i32, ++/*489535*/ OPC_CheckChild2Integer, 1, ++/*489537*/ OPC_CheckChild2Type, MVT::i32, ++/*489539*/ OPC_CheckChild3Integer, 1, ++/*489541*/ OPC_CheckChild3Type, MVT::i32, ++/*489543*/ OPC_CheckChild4Integer, 1, ++/*489545*/ OPC_CheckChild4Type, MVT::i32, ++/*489547*/ OPC_MoveChild5, ++/*489548*/ OPC_CheckInteger, 1, ++/*489550*/ OPC_CheckType, MVT::i32, ++/*489552*/ OPC_MoveParent, ++/*489553*/ OPC_MoveChild6, ++/*489554*/ OPC_CheckInteger, 1, ++/*489556*/ OPC_CheckType, MVT::i32, ++/*489558*/ OPC_MoveParent, ++/*489559*/ OPC_MoveChild7, ++/*489560*/ OPC_CheckInteger, 1, ++/*489562*/ OPC_CheckType, MVT::i32, ++/*489564*/ OPC_MoveParent, ++/*489565*/ OPC_MoveParent, ++/*489566*/ OPC_MoveParent, ++/*489567*/ OPC_CheckChild1Same, 0, ++/*489569*/ OPC_MoveParent, ++/*489570*/ OPC_MoveParent, ++/*489571*/ OPC_MoveChild1, ++/*489572*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*489575*/ OPC_CheckChild0Integer, 1, ++/*489577*/ OPC_CheckChild0Type, MVT::i32, ++/*489579*/ OPC_CheckChild1Integer, 1, ++/*489581*/ OPC_CheckChild1Type, MVT::i32, ++/*489583*/ OPC_CheckChild2Integer, 1, ++/*489585*/ OPC_CheckChild2Type, MVT::i32, ++/*489587*/ OPC_CheckChild3Integer, 1, ++/*489589*/ OPC_CheckChild3Type, MVT::i32, ++/*489591*/ OPC_CheckChild4Integer, 1, ++/*489593*/ OPC_CheckChild4Type, MVT::i32, ++/*489595*/ OPC_MoveChild5, ++/*489596*/ OPC_CheckInteger, 1, ++/*489598*/ OPC_CheckType, MVT::i32, ++/*489600*/ OPC_MoveParent, ++/*489601*/ OPC_MoveChild6, ++/*489602*/ OPC_CheckInteger, 1, ++/*489604*/ OPC_CheckType, MVT::i32, ++/*489606*/ OPC_MoveParent, ++/*489607*/ OPC_MoveChild7, ++/*489608*/ OPC_CheckInteger, 1, ++/*489610*/ OPC_CheckType, MVT::i32, ++/*489612*/ OPC_MoveParent, ++/*489613*/ OPC_CheckType, MVT::v8i32, ++/*489615*/ OPC_MoveParent, ++/*489616*/ OPC_CheckType, MVT::v8i32, ++/*489618*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*489620*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*489628*/ /*Scope*/ 107, /*->489736*/ ++/*489629*/ OPC_CheckChild0Same, 0, ++/*489631*/ OPC_CheckChild1Same, 1, ++/*489633*/ OPC_MoveParent, ++/*489634*/ OPC_MoveChild1, ++/*489635*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*489638*/ OPC_CheckChild0Integer, 1, ++/*489640*/ OPC_CheckChild0Type, MVT::i32, ++/*489642*/ OPC_CheckChild1Integer, 1, ++/*489644*/ OPC_CheckChild1Type, MVT::i32, ++/*489646*/ OPC_CheckChild2Integer, 1, ++/*489648*/ OPC_CheckChild2Type, MVT::i32, ++/*489650*/ OPC_CheckChild3Integer, 1, ++/*489652*/ OPC_CheckChild3Type, MVT::i32, ++/*489654*/ OPC_CheckChild4Integer, 1, ++/*489656*/ OPC_CheckChild4Type, MVT::i32, ++/*489658*/ OPC_MoveChild5, ++/*489659*/ OPC_CheckInteger, 1, ++/*489661*/ OPC_CheckType, MVT::i32, ++/*489663*/ OPC_MoveParent, ++/*489664*/ OPC_MoveChild6, ++/*489665*/ OPC_CheckInteger, 1, ++/*489667*/ OPC_CheckType, MVT::i32, ++/*489669*/ OPC_MoveParent, ++/*489670*/ OPC_MoveChild7, ++/*489671*/ OPC_CheckInteger, 1, ++/*489673*/ OPC_CheckType, MVT::i32, ++/*489675*/ OPC_MoveParent, ++/*489676*/ OPC_MoveParent, ++/*489677*/ OPC_MoveParent, ++/*489678*/ OPC_MoveParent, ++/*489679*/ OPC_MoveChild1, ++/*489680*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*489683*/ OPC_CheckChild0Integer, 1, ++/*489685*/ OPC_CheckChild0Type, MVT::i32, ++/*489687*/ OPC_CheckChild1Integer, 1, ++/*489689*/ OPC_CheckChild1Type, MVT::i32, ++/*489691*/ OPC_CheckChild2Integer, 1, ++/*489693*/ OPC_CheckChild2Type, MVT::i32, ++/*489695*/ OPC_CheckChild3Integer, 1, ++/*489697*/ OPC_CheckChild3Type, MVT::i32, ++/*489699*/ OPC_CheckChild4Integer, 1, ++/*489701*/ OPC_CheckChild4Type, MVT::i32, ++/*489703*/ OPC_MoveChild5, ++/*489704*/ OPC_CheckInteger, 1, ++/*489706*/ OPC_CheckType, MVT::i32, ++/*489708*/ OPC_MoveParent, ++/*489709*/ OPC_MoveChild6, ++/*489710*/ OPC_CheckInteger, 1, ++/*489712*/ OPC_CheckType, MVT::i32, ++/*489714*/ OPC_MoveParent, ++/*489715*/ OPC_MoveChild7, ++/*489716*/ OPC_CheckInteger, 1, ++/*489718*/ OPC_CheckType, MVT::i32, ++/*489720*/ OPC_MoveParent, ++/*489721*/ OPC_CheckType, MVT::v8i32, ++/*489723*/ OPC_MoveParent, ++/*489724*/ OPC_CheckType, MVT::v8i32, ++/*489726*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*489728*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*489736*/ /*Scope*/ 107, /*->489844*/ ++/*489737*/ OPC_CheckChild0Same, 1, ++/*489739*/ OPC_CheckChild1Same, 0, ++/*489741*/ OPC_MoveParent, ++/*489742*/ OPC_MoveChild1, ++/*489743*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*489746*/ OPC_CheckChild0Integer, 1, ++/*489748*/ OPC_CheckChild0Type, MVT::i32, ++/*489750*/ OPC_CheckChild1Integer, 1, ++/*489752*/ OPC_CheckChild1Type, MVT::i32, ++/*489754*/ OPC_CheckChild2Integer, 1, ++/*489756*/ OPC_CheckChild2Type, MVT::i32, ++/*489758*/ OPC_CheckChild3Integer, 1, ++/*489760*/ OPC_CheckChild3Type, MVT::i32, ++/*489762*/ OPC_CheckChild4Integer, 1, ++/*489764*/ OPC_CheckChild4Type, MVT::i32, ++/*489766*/ OPC_MoveChild5, ++/*489767*/ OPC_CheckInteger, 1, ++/*489769*/ OPC_CheckType, MVT::i32, ++/*489771*/ OPC_MoveParent, ++/*489772*/ OPC_MoveChild6, ++/*489773*/ OPC_CheckInteger, 1, ++/*489775*/ OPC_CheckType, MVT::i32, ++/*489777*/ OPC_MoveParent, ++/*489778*/ OPC_MoveChild7, ++/*489779*/ OPC_CheckInteger, 1, ++/*489781*/ OPC_CheckType, MVT::i32, ++/*489783*/ OPC_MoveParent, ++/*489784*/ OPC_MoveParent, ++/*489785*/ OPC_MoveParent, ++/*489786*/ OPC_MoveParent, ++/*489787*/ OPC_MoveChild1, ++/*489788*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*489791*/ OPC_CheckChild0Integer, 1, ++/*489793*/ OPC_CheckChild0Type, MVT::i32, ++/*489795*/ OPC_CheckChild1Integer, 1, ++/*489797*/ OPC_CheckChild1Type, MVT::i32, ++/*489799*/ OPC_CheckChild2Integer, 1, ++/*489801*/ OPC_CheckChild2Type, MVT::i32, ++/*489803*/ OPC_CheckChild3Integer, 1, ++/*489805*/ OPC_CheckChild3Type, MVT::i32, ++/*489807*/ OPC_CheckChild4Integer, 1, ++/*489809*/ OPC_CheckChild4Type, MVT::i32, ++/*489811*/ OPC_MoveChild5, ++/*489812*/ OPC_CheckInteger, 1, ++/*489814*/ OPC_CheckType, MVT::i32, ++/*489816*/ OPC_MoveParent, ++/*489817*/ OPC_MoveChild6, ++/*489818*/ OPC_CheckInteger, 1, ++/*489820*/ OPC_CheckType, MVT::i32, ++/*489822*/ OPC_MoveParent, ++/*489823*/ OPC_MoveChild7, ++/*489824*/ OPC_CheckInteger, 1, ++/*489826*/ OPC_CheckType, MVT::i32, ++/*489828*/ OPC_MoveParent, ++/*489829*/ OPC_CheckType, MVT::v8i32, ++/*489831*/ OPC_MoveParent, ++/*489832*/ OPC_CheckType, MVT::v8i32, ++/*489834*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*489836*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*489844*/ 0, /*End of Scope*/ ++/*489845*/ /*Scope*/ 92|128,1/*220*/, /*->490067*/ ++/*489847*/ OPC_CheckChild0Same, 1, ++/*489849*/ OPC_MoveChild1, ++/*489850*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*489853*/ OPC_Scope, 105, /*->489960*/ // 2 children in Scope ++/*489855*/ OPC_MoveChild0, ++/*489856*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*489859*/ OPC_CheckChild0Integer, 1, ++/*489861*/ OPC_CheckChild0Type, MVT::i32, ++/*489863*/ OPC_CheckChild1Integer, 1, ++/*489865*/ OPC_CheckChild1Type, MVT::i32, ++/*489867*/ OPC_CheckChild2Integer, 1, ++/*489869*/ OPC_CheckChild2Type, MVT::i32, ++/*489871*/ OPC_CheckChild3Integer, 1, ++/*489873*/ OPC_CheckChild3Type, MVT::i32, ++/*489875*/ OPC_CheckChild4Integer, 1, ++/*489877*/ OPC_CheckChild4Type, MVT::i32, ++/*489879*/ OPC_MoveChild5, ++/*489880*/ OPC_CheckInteger, 1, ++/*489882*/ OPC_CheckType, MVT::i32, ++/*489884*/ OPC_MoveParent, ++/*489885*/ OPC_MoveChild6, ++/*489886*/ OPC_CheckInteger, 1, ++/*489888*/ OPC_CheckType, MVT::i32, ++/*489890*/ OPC_MoveParent, ++/*489891*/ OPC_MoveChild7, ++/*489892*/ OPC_CheckInteger, 1, ++/*489894*/ OPC_CheckType, MVT::i32, ++/*489896*/ OPC_MoveParent, ++/*489897*/ OPC_MoveParent, ++/*489898*/ OPC_CheckChild1Same, 0, ++/*489900*/ OPC_MoveParent, ++/*489901*/ OPC_MoveParent, ++/*489902*/ OPC_MoveParent, ++/*489903*/ OPC_MoveChild1, ++/*489904*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*489907*/ OPC_CheckChild0Integer, 1, ++/*489909*/ OPC_CheckChild0Type, MVT::i32, ++/*489911*/ OPC_CheckChild1Integer, 1, ++/*489913*/ OPC_CheckChild1Type, MVT::i32, ++/*489915*/ OPC_CheckChild2Integer, 1, ++/*489917*/ OPC_CheckChild2Type, MVT::i32, ++/*489919*/ OPC_CheckChild3Integer, 1, ++/*489921*/ OPC_CheckChild3Type, MVT::i32, ++/*489923*/ OPC_CheckChild4Integer, 1, ++/*489925*/ OPC_CheckChild4Type, MVT::i32, ++/*489927*/ OPC_MoveChild5, ++/*489928*/ OPC_CheckInteger, 1, ++/*489930*/ OPC_CheckType, MVT::i32, ++/*489932*/ OPC_MoveParent, ++/*489933*/ OPC_MoveChild6, ++/*489934*/ OPC_CheckInteger, 1, ++/*489936*/ OPC_CheckType, MVT::i32, ++/*489938*/ OPC_MoveParent, ++/*489939*/ OPC_MoveChild7, ++/*489940*/ OPC_CheckInteger, 1, ++/*489942*/ OPC_CheckType, MVT::i32, ++/*489944*/ OPC_MoveParent, ++/*489945*/ OPC_CheckType, MVT::v8i32, ++/*489947*/ OPC_MoveParent, ++/*489948*/ OPC_CheckType, MVT::v8i32, ++/*489950*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*489952*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*489960*/ /*Scope*/ 105, /*->490066*/ ++/*489961*/ OPC_CheckChild0Same, 0, ++/*489963*/ OPC_MoveChild1, ++/*489964*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*489967*/ OPC_CheckChild0Integer, 1, ++/*489969*/ OPC_CheckChild0Type, MVT::i32, ++/*489971*/ OPC_CheckChild1Integer, 1, ++/*489973*/ OPC_CheckChild1Type, MVT::i32, ++/*489975*/ OPC_CheckChild2Integer, 1, ++/*489977*/ OPC_CheckChild2Type, MVT::i32, ++/*489979*/ OPC_CheckChild3Integer, 1, ++/*489981*/ OPC_CheckChild3Type, MVT::i32, ++/*489983*/ OPC_CheckChild4Integer, 1, ++/*489985*/ OPC_CheckChild4Type, MVT::i32, ++/*489987*/ OPC_MoveChild5, ++/*489988*/ OPC_CheckInteger, 1, ++/*489990*/ OPC_CheckType, MVT::i32, ++/*489992*/ OPC_MoveParent, ++/*489993*/ OPC_MoveChild6, ++/*489994*/ OPC_CheckInteger, 1, ++/*489996*/ OPC_CheckType, MVT::i32, ++/*489998*/ OPC_MoveParent, ++/*489999*/ OPC_MoveChild7, ++/*490000*/ OPC_CheckInteger, 1, ++/*490002*/ OPC_CheckType, MVT::i32, ++/*490004*/ OPC_MoveParent, ++/*490005*/ OPC_MoveParent, ++/*490006*/ OPC_MoveParent, ++/*490007*/ OPC_MoveParent, ++/*490008*/ OPC_MoveParent, ++/*490009*/ OPC_MoveChild1, ++/*490010*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*490013*/ OPC_CheckChild0Integer, 1, ++/*490015*/ OPC_CheckChild0Type, MVT::i32, ++/*490017*/ OPC_CheckChild1Integer, 1, ++/*490019*/ OPC_CheckChild1Type, MVT::i32, ++/*490021*/ OPC_CheckChild2Integer, 1, ++/*490023*/ OPC_CheckChild2Type, MVT::i32, ++/*490025*/ OPC_CheckChild3Integer, 1, ++/*490027*/ OPC_CheckChild3Type, MVT::i32, ++/*490029*/ OPC_CheckChild4Integer, 1, ++/*490031*/ OPC_CheckChild4Type, MVT::i32, ++/*490033*/ OPC_MoveChild5, ++/*490034*/ OPC_CheckInteger, 1, ++/*490036*/ OPC_CheckType, MVT::i32, ++/*490038*/ OPC_MoveParent, ++/*490039*/ OPC_MoveChild6, ++/*490040*/ OPC_CheckInteger, 1, ++/*490042*/ OPC_CheckType, MVT::i32, ++/*490044*/ OPC_MoveParent, ++/*490045*/ OPC_MoveChild7, ++/*490046*/ OPC_CheckInteger, 1, ++/*490048*/ OPC_CheckType, MVT::i32, ++/*490050*/ OPC_MoveParent, ++/*490051*/ OPC_CheckType, MVT::v8i32, ++/*490053*/ OPC_MoveParent, ++/*490054*/ OPC_CheckType, MVT::v8i32, ++/*490056*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*490058*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*490066*/ 0, /*End of Scope*/ ++/*490067*/ /*Scope*/ 92|128,1/*220*/, /*->490289*/ ++/*490069*/ OPC_CheckChild0Same, 0, ++/*490071*/ OPC_MoveChild1, ++/*490072*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*490075*/ OPC_Scope, 105, /*->490182*/ // 2 children in Scope ++/*490077*/ OPC_MoveChild0, ++/*490078*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*490081*/ OPC_CheckChild0Integer, 1, ++/*490083*/ OPC_CheckChild0Type, MVT::i32, ++/*490085*/ OPC_CheckChild1Integer, 1, ++/*490087*/ OPC_CheckChild1Type, MVT::i32, ++/*490089*/ OPC_CheckChild2Integer, 1, ++/*490091*/ OPC_CheckChild2Type, MVT::i32, ++/*490093*/ OPC_CheckChild3Integer, 1, ++/*490095*/ OPC_CheckChild3Type, MVT::i32, ++/*490097*/ OPC_CheckChild4Integer, 1, ++/*490099*/ OPC_CheckChild4Type, MVT::i32, ++/*490101*/ OPC_MoveChild5, ++/*490102*/ OPC_CheckInteger, 1, ++/*490104*/ OPC_CheckType, MVT::i32, ++/*490106*/ OPC_MoveParent, ++/*490107*/ OPC_MoveChild6, ++/*490108*/ OPC_CheckInteger, 1, ++/*490110*/ OPC_CheckType, MVT::i32, ++/*490112*/ OPC_MoveParent, ++/*490113*/ OPC_MoveChild7, ++/*490114*/ OPC_CheckInteger, 1, ++/*490116*/ OPC_CheckType, MVT::i32, ++/*490118*/ OPC_MoveParent, ++/*490119*/ OPC_MoveParent, ++/*490120*/ OPC_CheckChild1Same, 1, ++/*490122*/ OPC_MoveParent, ++/*490123*/ OPC_MoveParent, ++/*490124*/ OPC_MoveParent, ++/*490125*/ OPC_MoveChild1, ++/*490126*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*490129*/ OPC_CheckChild0Integer, 1, ++/*490131*/ OPC_CheckChild0Type, MVT::i32, ++/*490133*/ OPC_CheckChild1Integer, 1, ++/*490135*/ OPC_CheckChild1Type, MVT::i32, ++/*490137*/ OPC_CheckChild2Integer, 1, ++/*490139*/ OPC_CheckChild2Type, MVT::i32, ++/*490141*/ OPC_CheckChild3Integer, 1, ++/*490143*/ OPC_CheckChild3Type, MVT::i32, ++/*490145*/ OPC_CheckChild4Integer, 1, ++/*490147*/ OPC_CheckChild4Type, MVT::i32, ++/*490149*/ OPC_MoveChild5, ++/*490150*/ OPC_CheckInteger, 1, ++/*490152*/ OPC_CheckType, MVT::i32, ++/*490154*/ OPC_MoveParent, ++/*490155*/ OPC_MoveChild6, ++/*490156*/ OPC_CheckInteger, 1, ++/*490158*/ OPC_CheckType, MVT::i32, ++/*490160*/ OPC_MoveParent, ++/*490161*/ OPC_MoveChild7, ++/*490162*/ OPC_CheckInteger, 1, ++/*490164*/ OPC_CheckType, MVT::i32, ++/*490166*/ OPC_MoveParent, ++/*490167*/ OPC_CheckType, MVT::v8i32, ++/*490169*/ OPC_MoveParent, ++/*490170*/ OPC_CheckType, MVT::v8i32, ++/*490172*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*490174*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*490182*/ /*Scope*/ 105, /*->490288*/ ++/*490183*/ OPC_CheckChild0Same, 1, ++/*490185*/ OPC_MoveChild1, ++/*490186*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*490189*/ OPC_CheckChild0Integer, 1, ++/*490191*/ OPC_CheckChild0Type, MVT::i32, ++/*490193*/ OPC_CheckChild1Integer, 1, ++/*490195*/ OPC_CheckChild1Type, MVT::i32, ++/*490197*/ OPC_CheckChild2Integer, 1, ++/*490199*/ OPC_CheckChild2Type, MVT::i32, ++/*490201*/ OPC_CheckChild3Integer, 1, ++/*490203*/ OPC_CheckChild3Type, MVT::i32, ++/*490205*/ OPC_CheckChild4Integer, 1, ++/*490207*/ OPC_CheckChild4Type, MVT::i32, ++/*490209*/ OPC_MoveChild5, ++/*490210*/ OPC_CheckInteger, 1, ++/*490212*/ OPC_CheckType, MVT::i32, ++/*490214*/ OPC_MoveParent, ++/*490215*/ OPC_MoveChild6, ++/*490216*/ OPC_CheckInteger, 1, ++/*490218*/ OPC_CheckType, MVT::i32, ++/*490220*/ OPC_MoveParent, ++/*490221*/ OPC_MoveChild7, ++/*490222*/ OPC_CheckInteger, 1, ++/*490224*/ OPC_CheckType, MVT::i32, ++/*490226*/ OPC_MoveParent, ++/*490227*/ OPC_MoveParent, ++/*490228*/ OPC_MoveParent, ++/*490229*/ OPC_MoveParent, ++/*490230*/ OPC_MoveParent, ++/*490231*/ OPC_MoveChild1, ++/*490232*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*490235*/ OPC_CheckChild0Integer, 1, ++/*490237*/ OPC_CheckChild0Type, MVT::i32, ++/*490239*/ OPC_CheckChild1Integer, 1, ++/*490241*/ OPC_CheckChild1Type, MVT::i32, ++/*490243*/ OPC_CheckChild2Integer, 1, ++/*490245*/ OPC_CheckChild2Type, MVT::i32, ++/*490247*/ OPC_CheckChild3Integer, 1, ++/*490249*/ OPC_CheckChild3Type, MVT::i32, ++/*490251*/ OPC_CheckChild4Integer, 1, ++/*490253*/ OPC_CheckChild4Type, MVT::i32, ++/*490255*/ OPC_MoveChild5, ++/*490256*/ OPC_CheckInteger, 1, ++/*490258*/ OPC_CheckType, MVT::i32, ++/*490260*/ OPC_MoveParent, ++/*490261*/ OPC_MoveChild6, ++/*490262*/ OPC_CheckInteger, 1, ++/*490264*/ OPC_CheckType, MVT::i32, ++/*490266*/ OPC_MoveParent, ++/*490267*/ OPC_MoveChild7, ++/*490268*/ OPC_CheckInteger, 1, ++/*490270*/ OPC_CheckType, MVT::i32, ++/*490272*/ OPC_MoveParent, ++/*490273*/ OPC_CheckType, MVT::v8i32, ++/*490275*/ OPC_MoveParent, ++/*490276*/ OPC_CheckType, MVT::v8i32, ++/*490278*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*490280*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*490288*/ 0, /*End of Scope*/ ++/*490289*/ /*Scope*/ 68|128,6/*836*/, /*->491127*/ ++/*490291*/ OPC_MoveChild0, ++/*490292*/ OPC_SwitchOpcode /*2 cases */, 47|128,1/*175*/, TARGET_VAL(ISD::BUILD_VECTOR),// ->490472 ++/*490297*/ OPC_CheckChild0Integer, 1, ++/*490299*/ OPC_CheckChild0Type, MVT::i32, ++/*490301*/ OPC_CheckChild1Integer, 1, ++/*490303*/ OPC_CheckChild1Type, MVT::i32, ++/*490305*/ OPC_CheckChild2Integer, 1, ++/*490307*/ OPC_CheckChild2Type, MVT::i32, ++/*490309*/ OPC_CheckChild3Integer, 1, ++/*490311*/ OPC_CheckChild3Type, MVT::i32, ++/*490313*/ OPC_CheckChild4Integer, 1, ++/*490315*/ OPC_CheckChild4Type, MVT::i32, ++/*490317*/ OPC_MoveChild5, ++/*490318*/ OPC_CheckInteger, 1, ++/*490320*/ OPC_CheckType, MVT::i32, ++/*490322*/ OPC_MoveParent, ++/*490323*/ OPC_MoveChild6, ++/*490324*/ OPC_CheckInteger, 1, ++/*490326*/ OPC_CheckType, MVT::i32, ++/*490328*/ OPC_MoveParent, ++/*490329*/ OPC_MoveChild7, ++/*490330*/ OPC_CheckInteger, 1, ++/*490332*/ OPC_CheckType, MVT::i32, ++/*490334*/ OPC_MoveParent, ++/*490335*/ OPC_MoveParent, ++/*490336*/ OPC_MoveChild1, ++/*490337*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*490340*/ OPC_Scope, 64, /*->490406*/ // 2 children in Scope ++/*490342*/ OPC_CheckChild0Same, 0, ++/*490344*/ OPC_CheckChild1Same, 1, ++/*490346*/ OPC_MoveParent, ++/*490347*/ OPC_MoveParent, ++/*490348*/ OPC_MoveParent, ++/*490349*/ OPC_MoveChild1, ++/*490350*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*490353*/ OPC_CheckChild0Integer, 1, ++/*490355*/ OPC_CheckChild0Type, MVT::i32, ++/*490357*/ OPC_CheckChild1Integer, 1, ++/*490359*/ OPC_CheckChild1Type, MVT::i32, ++/*490361*/ OPC_CheckChild2Integer, 1, ++/*490363*/ OPC_CheckChild2Type, MVT::i32, ++/*490365*/ OPC_CheckChild3Integer, 1, ++/*490367*/ OPC_CheckChild3Type, MVT::i32, ++/*490369*/ OPC_CheckChild4Integer, 1, ++/*490371*/ OPC_CheckChild4Type, MVT::i32, ++/*490373*/ OPC_MoveChild5, ++/*490374*/ OPC_CheckInteger, 1, ++/*490376*/ OPC_CheckType, MVT::i32, ++/*490378*/ OPC_MoveParent, ++/*490379*/ OPC_MoveChild6, ++/*490380*/ OPC_CheckInteger, 1, ++/*490382*/ OPC_CheckType, MVT::i32, ++/*490384*/ OPC_MoveParent, ++/*490385*/ OPC_MoveChild7, ++/*490386*/ OPC_CheckInteger, 1, ++/*490388*/ OPC_CheckType, MVT::i32, ++/*490390*/ OPC_MoveParent, ++/*490391*/ OPC_CheckType, MVT::v8i32, ++/*490393*/ OPC_MoveParent, ++/*490394*/ OPC_CheckType, MVT::v8i32, ++/*490396*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*490398*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*490406*/ /*Scope*/ 64, /*->490471*/ ++/*490407*/ OPC_CheckChild0Same, 1, ++/*490409*/ OPC_CheckChild1Same, 0, ++/*490411*/ OPC_MoveParent, ++/*490412*/ OPC_MoveParent, ++/*490413*/ OPC_MoveParent, ++/*490414*/ OPC_MoveChild1, ++/*490415*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*490418*/ OPC_CheckChild0Integer, 1, ++/*490420*/ OPC_CheckChild0Type, MVT::i32, ++/*490422*/ OPC_CheckChild1Integer, 1, ++/*490424*/ OPC_CheckChild1Type, MVT::i32, ++/*490426*/ OPC_CheckChild2Integer, 1, ++/*490428*/ OPC_CheckChild2Type, MVT::i32, ++/*490430*/ OPC_CheckChild3Integer, 1, ++/*490432*/ OPC_CheckChild3Type, MVT::i32, ++/*490434*/ OPC_CheckChild4Integer, 1, ++/*490436*/ OPC_CheckChild4Type, MVT::i32, ++/*490438*/ OPC_MoveChild5, ++/*490439*/ OPC_CheckInteger, 1, ++/*490441*/ OPC_CheckType, MVT::i32, ++/*490443*/ OPC_MoveParent, ++/*490444*/ OPC_MoveChild6, ++/*490445*/ OPC_CheckInteger, 1, ++/*490447*/ OPC_CheckType, MVT::i32, ++/*490449*/ OPC_MoveParent, ++/*490450*/ OPC_MoveChild7, ++/*490451*/ OPC_CheckInteger, 1, ++/*490453*/ OPC_CheckType, MVT::i32, ++/*490455*/ OPC_MoveParent, ++/*490456*/ OPC_CheckType, MVT::v8i32, ++/*490458*/ OPC_MoveParent, ++/*490459*/ OPC_CheckType, MVT::v8i32, ++/*490461*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*490463*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*490471*/ 0, /*End of Scope*/ ++/*490472*/ /*SwitchOpcode*/ 10|128,5/*650*/, TARGET_VAL(ISD::ADD),// ->491126 ++/*490476*/ OPC_Scope, 107, /*->490585*/ // 6 children in Scope ++/*490478*/ OPC_MoveChild0, ++/*490479*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*490482*/ OPC_CheckChild0Integer, 1, ++/*490484*/ OPC_CheckChild0Type, MVT::i32, ++/*490486*/ OPC_CheckChild1Integer, 1, ++/*490488*/ OPC_CheckChild1Type, MVT::i32, ++/*490490*/ OPC_CheckChild2Integer, 1, ++/*490492*/ OPC_CheckChild2Type, MVT::i32, ++/*490494*/ OPC_CheckChild3Integer, 1, ++/*490496*/ OPC_CheckChild3Type, MVT::i32, ++/*490498*/ OPC_CheckChild4Integer, 1, ++/*490500*/ OPC_CheckChild4Type, MVT::i32, ++/*490502*/ OPC_MoveChild5, ++/*490503*/ OPC_CheckInteger, 1, ++/*490505*/ OPC_CheckType, MVT::i32, ++/*490507*/ OPC_MoveParent, ++/*490508*/ OPC_MoveChild6, ++/*490509*/ OPC_CheckInteger, 1, ++/*490511*/ OPC_CheckType, MVT::i32, ++/*490513*/ OPC_MoveParent, ++/*490514*/ OPC_MoveChild7, ++/*490515*/ OPC_CheckInteger, 1, ++/*490517*/ OPC_CheckType, MVT::i32, ++/*490519*/ OPC_MoveParent, ++/*490520*/ OPC_MoveParent, ++/*490521*/ OPC_CheckChild1Same, 1, ++/*490523*/ OPC_MoveParent, ++/*490524*/ OPC_CheckChild1Same, 0, ++/*490526*/ OPC_MoveParent, ++/*490527*/ OPC_MoveParent, ++/*490528*/ OPC_MoveChild1, ++/*490529*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*490532*/ OPC_CheckChild0Integer, 1, ++/*490534*/ OPC_CheckChild0Type, MVT::i32, ++/*490536*/ OPC_CheckChild1Integer, 1, ++/*490538*/ OPC_CheckChild1Type, MVT::i32, ++/*490540*/ OPC_CheckChild2Integer, 1, ++/*490542*/ OPC_CheckChild2Type, MVT::i32, ++/*490544*/ OPC_CheckChild3Integer, 1, ++/*490546*/ OPC_CheckChild3Type, MVT::i32, ++/*490548*/ OPC_CheckChild4Integer, 1, ++/*490550*/ OPC_CheckChild4Type, MVT::i32, ++/*490552*/ OPC_MoveChild5, ++/*490553*/ OPC_CheckInteger, 1, ++/*490555*/ OPC_CheckType, MVT::i32, ++/*490557*/ OPC_MoveParent, ++/*490558*/ OPC_MoveChild6, ++/*490559*/ OPC_CheckInteger, 1, ++/*490561*/ OPC_CheckType, MVT::i32, ++/*490563*/ OPC_MoveParent, ++/*490564*/ OPC_MoveChild7, ++/*490565*/ OPC_CheckInteger, 1, ++/*490567*/ OPC_CheckType, MVT::i32, ++/*490569*/ OPC_MoveParent, ++/*490570*/ OPC_CheckType, MVT::v8i32, ++/*490572*/ OPC_MoveParent, ++/*490573*/ OPC_CheckType, MVT::v8i32, ++/*490575*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*490577*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a), LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*490585*/ /*Scope*/ 107, /*->490693*/ ++/*490586*/ OPC_CheckChild0Same, 1, ++/*490588*/ OPC_MoveChild1, ++/*490589*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*490592*/ OPC_CheckChild0Integer, 1, ++/*490594*/ OPC_CheckChild0Type, MVT::i32, ++/*490596*/ OPC_CheckChild1Integer, 1, ++/*490598*/ OPC_CheckChild1Type, MVT::i32, ++/*490600*/ OPC_CheckChild2Integer, 1, ++/*490602*/ OPC_CheckChild2Type, MVT::i32, ++/*490604*/ OPC_CheckChild3Integer, 1, ++/*490606*/ OPC_CheckChild3Type, MVT::i32, ++/*490608*/ OPC_CheckChild4Integer, 1, ++/*490610*/ OPC_CheckChild4Type, MVT::i32, ++/*490612*/ OPC_MoveChild5, ++/*490613*/ OPC_CheckInteger, 1, ++/*490615*/ OPC_CheckType, MVT::i32, ++/*490617*/ OPC_MoveParent, ++/*490618*/ OPC_MoveChild6, ++/*490619*/ OPC_CheckInteger, 1, ++/*490621*/ OPC_CheckType, MVT::i32, ++/*490623*/ OPC_MoveParent, ++/*490624*/ OPC_MoveChild7, ++/*490625*/ OPC_CheckInteger, 1, ++/*490627*/ OPC_CheckType, MVT::i32, ++/*490629*/ OPC_MoveParent, ++/*490630*/ OPC_MoveParent, ++/*490631*/ OPC_MoveParent, ++/*490632*/ OPC_CheckChild1Same, 0, ++/*490634*/ OPC_MoveParent, ++/*490635*/ OPC_MoveParent, ++/*490636*/ OPC_MoveChild1, ++/*490637*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*490640*/ OPC_CheckChild0Integer, 1, ++/*490642*/ OPC_CheckChild0Type, MVT::i32, ++/*490644*/ OPC_CheckChild1Integer, 1, ++/*490646*/ OPC_CheckChild1Type, MVT::i32, ++/*490648*/ OPC_CheckChild2Integer, 1, ++/*490650*/ OPC_CheckChild2Type, MVT::i32, ++/*490652*/ OPC_CheckChild3Integer, 1, ++/*490654*/ OPC_CheckChild3Type, MVT::i32, ++/*490656*/ OPC_CheckChild4Integer, 1, ++/*490658*/ OPC_CheckChild4Type, MVT::i32, ++/*490660*/ OPC_MoveChild5, ++/*490661*/ OPC_CheckInteger, 1, ++/*490663*/ OPC_CheckType, MVT::i32, ++/*490665*/ OPC_MoveParent, ++/*490666*/ OPC_MoveChild6, ++/*490667*/ OPC_CheckInteger, 1, ++/*490669*/ OPC_CheckType, MVT::i32, ++/*490671*/ OPC_MoveParent, ++/*490672*/ OPC_MoveChild7, ++/*490673*/ OPC_CheckInteger, 1, ++/*490675*/ OPC_CheckType, MVT::i32, ++/*490677*/ OPC_MoveParent, ++/*490678*/ OPC_CheckType, MVT::v8i32, ++/*490680*/ OPC_MoveParent, ++/*490681*/ OPC_CheckType, MVT::v8i32, ++/*490683*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*490685*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*490693*/ /*Scope*/ 107, /*->490801*/ ++/*490694*/ OPC_MoveChild0, ++/*490695*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*490698*/ OPC_CheckChild0Integer, 1, ++/*490700*/ OPC_CheckChild0Type, MVT::i32, ++/*490702*/ OPC_CheckChild1Integer, 1, ++/*490704*/ OPC_CheckChild1Type, MVT::i32, ++/*490706*/ OPC_CheckChild2Integer, 1, ++/*490708*/ OPC_CheckChild2Type, MVT::i32, ++/*490710*/ OPC_CheckChild3Integer, 1, ++/*490712*/ OPC_CheckChild3Type, MVT::i32, ++/*490714*/ OPC_CheckChild4Integer, 1, ++/*490716*/ OPC_CheckChild4Type, MVT::i32, ++/*490718*/ OPC_MoveChild5, ++/*490719*/ OPC_CheckInteger, 1, ++/*490721*/ OPC_CheckType, MVT::i32, ++/*490723*/ OPC_MoveParent, ++/*490724*/ OPC_MoveChild6, ++/*490725*/ OPC_CheckInteger, 1, ++/*490727*/ OPC_CheckType, MVT::i32, ++/*490729*/ OPC_MoveParent, ++/*490730*/ OPC_MoveChild7, ++/*490731*/ OPC_CheckInteger, 1, ++/*490733*/ OPC_CheckType, MVT::i32, ++/*490735*/ OPC_MoveParent, ++/*490736*/ OPC_MoveParent, ++/*490737*/ OPC_CheckChild1Same, 0, ++/*490739*/ OPC_MoveParent, ++/*490740*/ OPC_CheckChild1Same, 1, ++/*490742*/ OPC_MoveParent, ++/*490743*/ OPC_MoveParent, ++/*490744*/ OPC_MoveChild1, ++/*490745*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*490748*/ OPC_CheckChild0Integer, 1, ++/*490750*/ OPC_CheckChild0Type, MVT::i32, ++/*490752*/ OPC_CheckChild1Integer, 1, ++/*490754*/ OPC_CheckChild1Type, MVT::i32, ++/*490756*/ OPC_CheckChild2Integer, 1, ++/*490758*/ OPC_CheckChild2Type, MVT::i32, ++/*490760*/ OPC_CheckChild3Integer, 1, ++/*490762*/ OPC_CheckChild3Type, MVT::i32, ++/*490764*/ OPC_CheckChild4Integer, 1, ++/*490766*/ OPC_CheckChild4Type, MVT::i32, ++/*490768*/ OPC_MoveChild5, ++/*490769*/ OPC_CheckInteger, 1, ++/*490771*/ OPC_CheckType, MVT::i32, ++/*490773*/ OPC_MoveParent, ++/*490774*/ OPC_MoveChild6, ++/*490775*/ OPC_CheckInteger, 1, ++/*490777*/ OPC_CheckType, MVT::i32, ++/*490779*/ OPC_MoveParent, ++/*490780*/ OPC_MoveChild7, ++/*490781*/ OPC_CheckInteger, 1, ++/*490783*/ OPC_CheckType, MVT::i32, ++/*490785*/ OPC_MoveParent, ++/*490786*/ OPC_CheckType, MVT::v8i32, ++/*490788*/ OPC_MoveParent, ++/*490789*/ OPC_CheckType, MVT::v8i32, ++/*490791*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*490793*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b), LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*490801*/ /*Scope*/ 107, /*->490909*/ ++/*490802*/ OPC_CheckChild0Same, 0, ++/*490804*/ OPC_MoveChild1, ++/*490805*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*490808*/ OPC_CheckChild0Integer, 1, ++/*490810*/ OPC_CheckChild0Type, MVT::i32, ++/*490812*/ OPC_CheckChild1Integer, 1, ++/*490814*/ OPC_CheckChild1Type, MVT::i32, ++/*490816*/ OPC_CheckChild2Integer, 1, ++/*490818*/ OPC_CheckChild2Type, MVT::i32, ++/*490820*/ OPC_CheckChild3Integer, 1, ++/*490822*/ OPC_CheckChild3Type, MVT::i32, ++/*490824*/ OPC_CheckChild4Integer, 1, ++/*490826*/ OPC_CheckChild4Type, MVT::i32, ++/*490828*/ OPC_MoveChild5, ++/*490829*/ OPC_CheckInteger, 1, ++/*490831*/ OPC_CheckType, MVT::i32, ++/*490833*/ OPC_MoveParent, ++/*490834*/ OPC_MoveChild6, ++/*490835*/ OPC_CheckInteger, 1, ++/*490837*/ OPC_CheckType, MVT::i32, ++/*490839*/ OPC_MoveParent, ++/*490840*/ OPC_MoveChild7, ++/*490841*/ OPC_CheckInteger, 1, ++/*490843*/ OPC_CheckType, MVT::i32, ++/*490845*/ OPC_MoveParent, ++/*490846*/ OPC_MoveParent, ++/*490847*/ OPC_MoveParent, ++/*490848*/ OPC_CheckChild1Same, 1, ++/*490850*/ OPC_MoveParent, ++/*490851*/ OPC_MoveParent, ++/*490852*/ OPC_MoveChild1, ++/*490853*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*490856*/ OPC_CheckChild0Integer, 1, ++/*490858*/ OPC_CheckChild0Type, MVT::i32, ++/*490860*/ OPC_CheckChild1Integer, 1, ++/*490862*/ OPC_CheckChild1Type, MVT::i32, ++/*490864*/ OPC_CheckChild2Integer, 1, ++/*490866*/ OPC_CheckChild2Type, MVT::i32, ++/*490868*/ OPC_CheckChild3Integer, 1, ++/*490870*/ OPC_CheckChild3Type, MVT::i32, ++/*490872*/ OPC_CheckChild4Integer, 1, ++/*490874*/ OPC_CheckChild4Type, MVT::i32, ++/*490876*/ OPC_MoveChild5, ++/*490877*/ OPC_CheckInteger, 1, ++/*490879*/ OPC_CheckType, MVT::i32, ++/*490881*/ OPC_MoveParent, ++/*490882*/ OPC_MoveChild6, ++/*490883*/ OPC_CheckInteger, 1, ++/*490885*/ OPC_CheckType, MVT::i32, ++/*490887*/ OPC_MoveParent, ++/*490888*/ OPC_MoveChild7, ++/*490889*/ OPC_CheckInteger, 1, ++/*490891*/ OPC_CheckType, MVT::i32, ++/*490893*/ OPC_MoveParent, ++/*490894*/ OPC_CheckType, MVT::v8i32, ++/*490896*/ OPC_MoveParent, ++/*490897*/ OPC_CheckType, MVT::v8i32, ++/*490899*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*490901*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*490909*/ /*Scope*/ 107, /*->491017*/ ++/*490910*/ OPC_CheckChild0Same, 1, ++/*490912*/ OPC_CheckChild1Same, 0, ++/*490914*/ OPC_MoveParent, ++/*490915*/ OPC_MoveChild1, ++/*490916*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*490919*/ OPC_CheckChild0Integer, 1, ++/*490921*/ OPC_CheckChild0Type, MVT::i32, ++/*490923*/ OPC_CheckChild1Integer, 1, ++/*490925*/ OPC_CheckChild1Type, MVT::i32, ++/*490927*/ OPC_CheckChild2Integer, 1, ++/*490929*/ OPC_CheckChild2Type, MVT::i32, ++/*490931*/ OPC_CheckChild3Integer, 1, ++/*490933*/ OPC_CheckChild3Type, MVT::i32, ++/*490935*/ OPC_CheckChild4Integer, 1, ++/*490937*/ OPC_CheckChild4Type, MVT::i32, ++/*490939*/ OPC_MoveChild5, ++/*490940*/ OPC_CheckInteger, 1, ++/*490942*/ OPC_CheckType, MVT::i32, ++/*490944*/ OPC_MoveParent, ++/*490945*/ OPC_MoveChild6, ++/*490946*/ OPC_CheckInteger, 1, ++/*490948*/ OPC_CheckType, MVT::i32, ++/*490950*/ OPC_MoveParent, ++/*490951*/ OPC_MoveChild7, ++/*490952*/ OPC_CheckInteger, 1, ++/*490954*/ OPC_CheckType, MVT::i32, ++/*490956*/ OPC_MoveParent, ++/*490957*/ OPC_MoveParent, ++/*490958*/ OPC_MoveParent, ++/*490959*/ OPC_MoveParent, ++/*490960*/ OPC_MoveChild1, ++/*490961*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*490964*/ OPC_CheckChild0Integer, 1, ++/*490966*/ OPC_CheckChild0Type, MVT::i32, ++/*490968*/ OPC_CheckChild1Integer, 1, ++/*490970*/ OPC_CheckChild1Type, MVT::i32, ++/*490972*/ OPC_CheckChild2Integer, 1, ++/*490974*/ OPC_CheckChild2Type, MVT::i32, ++/*490976*/ OPC_CheckChild3Integer, 1, ++/*490978*/ OPC_CheckChild3Type, MVT::i32, ++/*490980*/ OPC_CheckChild4Integer, 1, ++/*490982*/ OPC_CheckChild4Type, MVT::i32, ++/*490984*/ OPC_MoveChild5, ++/*490985*/ OPC_CheckInteger, 1, ++/*490987*/ OPC_CheckType, MVT::i32, ++/*490989*/ OPC_MoveParent, ++/*490990*/ OPC_MoveChild6, ++/*490991*/ OPC_CheckInteger, 1, ++/*490993*/ OPC_CheckType, MVT::i32, ++/*490995*/ OPC_MoveParent, ++/*490996*/ OPC_MoveChild7, ++/*490997*/ OPC_CheckInteger, 1, ++/*490999*/ OPC_CheckType, MVT::i32, ++/*491001*/ OPC_MoveParent, ++/*491002*/ OPC_CheckType, MVT::v8i32, ++/*491004*/ OPC_MoveParent, ++/*491005*/ OPC_CheckType, MVT::v8i32, ++/*491007*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*491009*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*491017*/ /*Scope*/ 107, /*->491125*/ ++/*491018*/ OPC_CheckChild0Same, 0, ++/*491020*/ OPC_CheckChild1Same, 1, ++/*491022*/ OPC_MoveParent, ++/*491023*/ OPC_MoveChild1, ++/*491024*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*491027*/ OPC_CheckChild0Integer, 1, ++/*491029*/ OPC_CheckChild0Type, MVT::i32, ++/*491031*/ OPC_CheckChild1Integer, 1, ++/*491033*/ OPC_CheckChild1Type, MVT::i32, ++/*491035*/ OPC_CheckChild2Integer, 1, ++/*491037*/ OPC_CheckChild2Type, MVT::i32, ++/*491039*/ OPC_CheckChild3Integer, 1, ++/*491041*/ OPC_CheckChild3Type, MVT::i32, ++/*491043*/ OPC_CheckChild4Integer, 1, ++/*491045*/ OPC_CheckChild4Type, MVT::i32, ++/*491047*/ OPC_MoveChild5, ++/*491048*/ OPC_CheckInteger, 1, ++/*491050*/ OPC_CheckType, MVT::i32, ++/*491052*/ OPC_MoveParent, ++/*491053*/ OPC_MoveChild6, ++/*491054*/ OPC_CheckInteger, 1, ++/*491056*/ OPC_CheckType, MVT::i32, ++/*491058*/ OPC_MoveParent, ++/*491059*/ OPC_MoveChild7, ++/*491060*/ OPC_CheckInteger, 1, ++/*491062*/ OPC_CheckType, MVT::i32, ++/*491064*/ OPC_MoveParent, ++/*491065*/ OPC_MoveParent, ++/*491066*/ OPC_MoveParent, ++/*491067*/ OPC_MoveParent, ++/*491068*/ OPC_MoveChild1, ++/*491069*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*491072*/ OPC_CheckChild0Integer, 1, ++/*491074*/ OPC_CheckChild0Type, MVT::i32, ++/*491076*/ OPC_CheckChild1Integer, 1, ++/*491078*/ OPC_CheckChild1Type, MVT::i32, ++/*491080*/ OPC_CheckChild2Integer, 1, ++/*491082*/ OPC_CheckChild2Type, MVT::i32, ++/*491084*/ OPC_CheckChild3Integer, 1, ++/*491086*/ OPC_CheckChild3Type, MVT::i32, ++/*491088*/ OPC_CheckChild4Integer, 1, ++/*491090*/ OPC_CheckChild4Type, MVT::i32, ++/*491092*/ OPC_MoveChild5, ++/*491093*/ OPC_CheckInteger, 1, ++/*491095*/ OPC_CheckType, MVT::i32, ++/*491097*/ OPC_MoveParent, ++/*491098*/ OPC_MoveChild6, ++/*491099*/ OPC_CheckInteger, 1, ++/*491101*/ OPC_CheckType, MVT::i32, ++/*491103*/ OPC_MoveParent, ++/*491104*/ OPC_MoveChild7, ++/*491105*/ OPC_CheckInteger, 1, ++/*491107*/ OPC_CheckType, MVT::i32, ++/*491109*/ OPC_MoveParent, ++/*491110*/ OPC_CheckType, MVT::v8i32, ++/*491112*/ OPC_MoveParent, ++/*491113*/ OPC_CheckType, MVT::v8i32, ++/*491115*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*491117*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*491125*/ 0, /*End of Scope*/ ++/*491126*/ 0, // EndSwitchOpcode ++/*491127*/ /*Scope*/ 92|128,1/*220*/, /*->491349*/ ++/*491129*/ OPC_CheckChild0Same, 0, ++/*491131*/ OPC_MoveChild1, ++/*491132*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*491135*/ OPC_Scope, 105, /*->491242*/ // 2 children in Scope ++/*491137*/ OPC_MoveChild0, ++/*491138*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*491141*/ OPC_CheckChild0Integer, 1, ++/*491143*/ OPC_CheckChild0Type, MVT::i32, ++/*491145*/ OPC_CheckChild1Integer, 1, ++/*491147*/ OPC_CheckChild1Type, MVT::i32, ++/*491149*/ OPC_CheckChild2Integer, 1, ++/*491151*/ OPC_CheckChild2Type, MVT::i32, ++/*491153*/ OPC_CheckChild3Integer, 1, ++/*491155*/ OPC_CheckChild3Type, MVT::i32, ++/*491157*/ OPC_CheckChild4Integer, 1, ++/*491159*/ OPC_CheckChild4Type, MVT::i32, ++/*491161*/ OPC_MoveChild5, ++/*491162*/ OPC_CheckInteger, 1, ++/*491164*/ OPC_CheckType, MVT::i32, ++/*491166*/ OPC_MoveParent, ++/*491167*/ OPC_MoveChild6, ++/*491168*/ OPC_CheckInteger, 1, ++/*491170*/ OPC_CheckType, MVT::i32, ++/*491172*/ OPC_MoveParent, ++/*491173*/ OPC_MoveChild7, ++/*491174*/ OPC_CheckInteger, 1, ++/*491176*/ OPC_CheckType, MVT::i32, ++/*491178*/ OPC_MoveParent, ++/*491179*/ OPC_MoveParent, ++/*491180*/ OPC_CheckChild1Same, 1, ++/*491182*/ OPC_MoveParent, ++/*491183*/ OPC_MoveParent, ++/*491184*/ OPC_MoveParent, ++/*491185*/ OPC_MoveChild1, ++/*491186*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*491189*/ OPC_CheckChild0Integer, 1, ++/*491191*/ OPC_CheckChild0Type, MVT::i32, ++/*491193*/ OPC_CheckChild1Integer, 1, ++/*491195*/ OPC_CheckChild1Type, MVT::i32, ++/*491197*/ OPC_CheckChild2Integer, 1, ++/*491199*/ OPC_CheckChild2Type, MVT::i32, ++/*491201*/ OPC_CheckChild3Integer, 1, ++/*491203*/ OPC_CheckChild3Type, MVT::i32, ++/*491205*/ OPC_CheckChild4Integer, 1, ++/*491207*/ OPC_CheckChild4Type, MVT::i32, ++/*491209*/ OPC_MoveChild5, ++/*491210*/ OPC_CheckInteger, 1, ++/*491212*/ OPC_CheckType, MVT::i32, ++/*491214*/ OPC_MoveParent, ++/*491215*/ OPC_MoveChild6, ++/*491216*/ OPC_CheckInteger, 1, ++/*491218*/ OPC_CheckType, MVT::i32, ++/*491220*/ OPC_MoveParent, ++/*491221*/ OPC_MoveChild7, ++/*491222*/ OPC_CheckInteger, 1, ++/*491224*/ OPC_CheckType, MVT::i32, ++/*491226*/ OPC_MoveParent, ++/*491227*/ OPC_CheckType, MVT::v8i32, ++/*491229*/ OPC_MoveParent, ++/*491230*/ OPC_CheckType, MVT::v8i32, ++/*491232*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*491234*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$a))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*491242*/ /*Scope*/ 105, /*->491348*/ ++/*491243*/ OPC_CheckChild0Same, 1, ++/*491245*/ OPC_MoveChild1, ++/*491246*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*491249*/ OPC_CheckChild0Integer, 1, ++/*491251*/ OPC_CheckChild0Type, MVT::i32, ++/*491253*/ OPC_CheckChild1Integer, 1, ++/*491255*/ OPC_CheckChild1Type, MVT::i32, ++/*491257*/ OPC_CheckChild2Integer, 1, ++/*491259*/ OPC_CheckChild2Type, MVT::i32, ++/*491261*/ OPC_CheckChild3Integer, 1, ++/*491263*/ OPC_CheckChild3Type, MVT::i32, ++/*491265*/ OPC_CheckChild4Integer, 1, ++/*491267*/ OPC_CheckChild4Type, MVT::i32, ++/*491269*/ OPC_MoveChild5, ++/*491270*/ OPC_CheckInteger, 1, ++/*491272*/ OPC_CheckType, MVT::i32, ++/*491274*/ OPC_MoveParent, ++/*491275*/ OPC_MoveChild6, ++/*491276*/ OPC_CheckInteger, 1, ++/*491278*/ OPC_CheckType, MVT::i32, ++/*491280*/ OPC_MoveParent, ++/*491281*/ OPC_MoveChild7, ++/*491282*/ OPC_CheckInteger, 1, ++/*491284*/ OPC_CheckType, MVT::i32, ++/*491286*/ OPC_MoveParent, ++/*491287*/ OPC_MoveParent, ++/*491288*/ OPC_MoveParent, ++/*491289*/ OPC_MoveParent, ++/*491290*/ OPC_MoveParent, ++/*491291*/ OPC_MoveChild1, ++/*491292*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*491295*/ OPC_CheckChild0Integer, 1, ++/*491297*/ OPC_CheckChild0Type, MVT::i32, ++/*491299*/ OPC_CheckChild1Integer, 1, ++/*491301*/ OPC_CheckChild1Type, MVT::i32, ++/*491303*/ OPC_CheckChild2Integer, 1, ++/*491305*/ OPC_CheckChild2Type, MVT::i32, ++/*491307*/ OPC_CheckChild3Integer, 1, ++/*491309*/ OPC_CheckChild3Type, MVT::i32, ++/*491311*/ OPC_CheckChild4Integer, 1, ++/*491313*/ OPC_CheckChild4Type, MVT::i32, ++/*491315*/ OPC_MoveChild5, ++/*491316*/ OPC_CheckInteger, 1, ++/*491318*/ OPC_CheckType, MVT::i32, ++/*491320*/ OPC_MoveParent, ++/*491321*/ OPC_MoveChild6, ++/*491322*/ OPC_CheckInteger, 1, ++/*491324*/ OPC_CheckType, MVT::i32, ++/*491326*/ OPC_MoveParent, ++/*491327*/ OPC_MoveChild7, ++/*491328*/ OPC_CheckInteger, 1, ++/*491330*/ OPC_CheckType, MVT::i32, ++/*491332*/ OPC_MoveParent, ++/*491333*/ OPC_CheckType, MVT::v8i32, ++/*491335*/ OPC_MoveParent, ++/*491336*/ OPC_CheckType, MVT::v8i32, ++/*491338*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*491340*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*491348*/ 0, /*End of Scope*/ ++/*491349*/ /*Scope*/ 92|128,1/*220*/, /*->491571*/ ++/*491351*/ OPC_CheckChild0Same, 1, ++/*491353*/ OPC_MoveChild1, ++/*491354*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*491357*/ OPC_Scope, 105, /*->491464*/ // 2 children in Scope ++/*491359*/ OPC_MoveChild0, ++/*491360*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*491363*/ OPC_CheckChild0Integer, 1, ++/*491365*/ OPC_CheckChild0Type, MVT::i32, ++/*491367*/ OPC_CheckChild1Integer, 1, ++/*491369*/ OPC_CheckChild1Type, MVT::i32, ++/*491371*/ OPC_CheckChild2Integer, 1, ++/*491373*/ OPC_CheckChild2Type, MVT::i32, ++/*491375*/ OPC_CheckChild3Integer, 1, ++/*491377*/ OPC_CheckChild3Type, MVT::i32, ++/*491379*/ OPC_CheckChild4Integer, 1, ++/*491381*/ OPC_CheckChild4Type, MVT::i32, ++/*491383*/ OPC_MoveChild5, ++/*491384*/ OPC_CheckInteger, 1, ++/*491386*/ OPC_CheckType, MVT::i32, ++/*491388*/ OPC_MoveParent, ++/*491389*/ OPC_MoveChild6, ++/*491390*/ OPC_CheckInteger, 1, ++/*491392*/ OPC_CheckType, MVT::i32, ++/*491394*/ OPC_MoveParent, ++/*491395*/ OPC_MoveChild7, ++/*491396*/ OPC_CheckInteger, 1, ++/*491398*/ OPC_CheckType, MVT::i32, ++/*491400*/ OPC_MoveParent, ++/*491401*/ OPC_MoveParent, ++/*491402*/ OPC_CheckChild1Same, 0, ++/*491404*/ OPC_MoveParent, ++/*491405*/ OPC_MoveParent, ++/*491406*/ OPC_MoveParent, ++/*491407*/ OPC_MoveChild1, ++/*491408*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*491411*/ OPC_CheckChild0Integer, 1, ++/*491413*/ OPC_CheckChild0Type, MVT::i32, ++/*491415*/ OPC_CheckChild1Integer, 1, ++/*491417*/ OPC_CheckChild1Type, MVT::i32, ++/*491419*/ OPC_CheckChild2Integer, 1, ++/*491421*/ OPC_CheckChild2Type, MVT::i32, ++/*491423*/ OPC_CheckChild3Integer, 1, ++/*491425*/ OPC_CheckChild3Type, MVT::i32, ++/*491427*/ OPC_CheckChild4Integer, 1, ++/*491429*/ OPC_CheckChild4Type, MVT::i32, ++/*491431*/ OPC_MoveChild5, ++/*491432*/ OPC_CheckInteger, 1, ++/*491434*/ OPC_CheckType, MVT::i32, ++/*491436*/ OPC_MoveParent, ++/*491437*/ OPC_MoveChild6, ++/*491438*/ OPC_CheckInteger, 1, ++/*491440*/ OPC_CheckType, MVT::i32, ++/*491442*/ OPC_MoveParent, ++/*491443*/ OPC_MoveChild7, ++/*491444*/ OPC_CheckInteger, 1, ++/*491446*/ OPC_CheckType, MVT::i32, ++/*491448*/ OPC_MoveParent, ++/*491449*/ OPC_CheckType, MVT::v8i32, ++/*491451*/ OPC_MoveParent, ++/*491452*/ OPC_CheckType, MVT::v8i32, ++/*491454*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*491456*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*491464*/ /*Scope*/ 105, /*->491570*/ ++/*491465*/ OPC_CheckChild0Same, 0, ++/*491467*/ OPC_MoveChild1, ++/*491468*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*491471*/ OPC_CheckChild0Integer, 1, ++/*491473*/ OPC_CheckChild0Type, MVT::i32, ++/*491475*/ OPC_CheckChild1Integer, 1, ++/*491477*/ OPC_CheckChild1Type, MVT::i32, ++/*491479*/ OPC_CheckChild2Integer, 1, ++/*491481*/ OPC_CheckChild2Type, MVT::i32, ++/*491483*/ OPC_CheckChild3Integer, 1, ++/*491485*/ OPC_CheckChild3Type, MVT::i32, ++/*491487*/ OPC_CheckChild4Integer, 1, ++/*491489*/ OPC_CheckChild4Type, MVT::i32, ++/*491491*/ OPC_MoveChild5, ++/*491492*/ OPC_CheckInteger, 1, ++/*491494*/ OPC_CheckType, MVT::i32, ++/*491496*/ OPC_MoveParent, ++/*491497*/ OPC_MoveChild6, ++/*491498*/ OPC_CheckInteger, 1, ++/*491500*/ OPC_CheckType, MVT::i32, ++/*491502*/ OPC_MoveParent, ++/*491503*/ OPC_MoveChild7, ++/*491504*/ OPC_CheckInteger, 1, ++/*491506*/ OPC_CheckType, MVT::i32, ++/*491508*/ OPC_MoveParent, ++/*491509*/ OPC_MoveParent, ++/*491510*/ OPC_MoveParent, ++/*491511*/ OPC_MoveParent, ++/*491512*/ OPC_MoveParent, ++/*491513*/ OPC_MoveChild1, ++/*491514*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*491517*/ OPC_CheckChild0Integer, 1, ++/*491519*/ OPC_CheckChild0Type, MVT::i32, ++/*491521*/ OPC_CheckChild1Integer, 1, ++/*491523*/ OPC_CheckChild1Type, MVT::i32, ++/*491525*/ OPC_CheckChild2Integer, 1, ++/*491527*/ OPC_CheckChild2Type, MVT::i32, ++/*491529*/ OPC_CheckChild3Integer, 1, ++/*491531*/ OPC_CheckChild3Type, MVT::i32, ++/*491533*/ OPC_CheckChild4Integer, 1, ++/*491535*/ OPC_CheckChild4Type, MVT::i32, ++/*491537*/ OPC_MoveChild5, ++/*491538*/ OPC_CheckInteger, 1, ++/*491540*/ OPC_CheckType, MVT::i32, ++/*491542*/ OPC_MoveParent, ++/*491543*/ OPC_MoveChild6, ++/*491544*/ OPC_CheckInteger, 1, ++/*491546*/ OPC_CheckType, MVT::i32, ++/*491548*/ OPC_MoveParent, ++/*491549*/ OPC_MoveChild7, ++/*491550*/ OPC_CheckInteger, 1, ++/*491552*/ OPC_CheckType, MVT::i32, ++/*491554*/ OPC_MoveParent, ++/*491555*/ OPC_CheckType, MVT::v8i32, ++/*491557*/ OPC_MoveParent, ++/*491558*/ OPC_CheckType, MVT::v8i32, ++/*491560*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*491562*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*491570*/ 0, /*End of Scope*/ ++/*491571*/ /*Scope*/ 51|128,1/*179*/, /*->491752*/ ++/*491573*/ OPC_MoveChild0, ++/*491574*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*491577*/ OPC_CheckChild0Integer, 1, ++/*491579*/ OPC_CheckChild0Type, MVT::i32, ++/*491581*/ OPC_CheckChild1Integer, 1, ++/*491583*/ OPC_CheckChild1Type, MVT::i32, ++/*491585*/ OPC_CheckChild2Integer, 1, ++/*491587*/ OPC_CheckChild2Type, MVT::i32, ++/*491589*/ OPC_CheckChild3Integer, 1, ++/*491591*/ OPC_CheckChild3Type, MVT::i32, ++/*491593*/ OPC_CheckChild4Integer, 1, ++/*491595*/ OPC_CheckChild4Type, MVT::i32, ++/*491597*/ OPC_MoveChild5, ++/*491598*/ OPC_CheckInteger, 1, ++/*491600*/ OPC_CheckType, MVT::i32, ++/*491602*/ OPC_MoveParent, ++/*491603*/ OPC_MoveChild6, ++/*491604*/ OPC_CheckInteger, 1, ++/*491606*/ OPC_CheckType, MVT::i32, ++/*491608*/ OPC_MoveParent, ++/*491609*/ OPC_MoveChild7, ++/*491610*/ OPC_CheckInteger, 1, ++/*491612*/ OPC_CheckType, MVT::i32, ++/*491614*/ OPC_MoveParent, ++/*491615*/ OPC_MoveParent, ++/*491616*/ OPC_MoveChild1, ++/*491617*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*491620*/ OPC_Scope, 64, /*->491686*/ // 2 children in Scope ++/*491622*/ OPC_CheckChild0Same, 1, ++/*491624*/ OPC_CheckChild1Same, 0, ++/*491626*/ OPC_MoveParent, ++/*491627*/ OPC_MoveParent, ++/*491628*/ OPC_MoveParent, ++/*491629*/ OPC_MoveChild1, ++/*491630*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*491633*/ OPC_CheckChild0Integer, 1, ++/*491635*/ OPC_CheckChild0Type, MVT::i32, ++/*491637*/ OPC_CheckChild1Integer, 1, ++/*491639*/ OPC_CheckChild1Type, MVT::i32, ++/*491641*/ OPC_CheckChild2Integer, 1, ++/*491643*/ OPC_CheckChild2Type, MVT::i32, ++/*491645*/ OPC_CheckChild3Integer, 1, ++/*491647*/ OPC_CheckChild3Type, MVT::i32, ++/*491649*/ OPC_CheckChild4Integer, 1, ++/*491651*/ OPC_CheckChild4Type, MVT::i32, ++/*491653*/ OPC_MoveChild5, ++/*491654*/ OPC_CheckInteger, 1, ++/*491656*/ OPC_CheckType, MVT::i32, ++/*491658*/ OPC_MoveParent, ++/*491659*/ OPC_MoveChild6, ++/*491660*/ OPC_CheckInteger, 1, ++/*491662*/ OPC_CheckType, MVT::i32, ++/*491664*/ OPC_MoveParent, ++/*491665*/ OPC_MoveChild7, ++/*491666*/ OPC_CheckInteger, 1, ++/*491668*/ OPC_CheckType, MVT::i32, ++/*491670*/ OPC_MoveParent, ++/*491671*/ OPC_CheckType, MVT::v8i32, ++/*491673*/ OPC_MoveParent, ++/*491674*/ OPC_CheckType, MVT::v8i32, ++/*491676*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*491678*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*491686*/ /*Scope*/ 64, /*->491751*/ ++/*491687*/ OPC_CheckChild0Same, 0, ++/*491689*/ OPC_CheckChild1Same, 1, ++/*491691*/ OPC_MoveParent, ++/*491692*/ OPC_MoveParent, ++/*491693*/ OPC_MoveParent, ++/*491694*/ OPC_MoveChild1, ++/*491695*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*491698*/ OPC_CheckChild0Integer, 1, ++/*491700*/ OPC_CheckChild0Type, MVT::i32, ++/*491702*/ OPC_CheckChild1Integer, 1, ++/*491704*/ OPC_CheckChild1Type, MVT::i32, ++/*491706*/ OPC_CheckChild2Integer, 1, ++/*491708*/ OPC_CheckChild2Type, MVT::i32, ++/*491710*/ OPC_CheckChild3Integer, 1, ++/*491712*/ OPC_CheckChild3Type, MVT::i32, ++/*491714*/ OPC_CheckChild4Integer, 1, ++/*491716*/ OPC_CheckChild4Type, MVT::i32, ++/*491718*/ OPC_MoveChild5, ++/*491719*/ OPC_CheckInteger, 1, ++/*491721*/ OPC_CheckType, MVT::i32, ++/*491723*/ OPC_MoveParent, ++/*491724*/ OPC_MoveChild6, ++/*491725*/ OPC_CheckInteger, 1, ++/*491727*/ OPC_CheckType, MVT::i32, ++/*491729*/ OPC_MoveParent, ++/*491730*/ OPC_MoveChild7, ++/*491731*/ OPC_CheckInteger, 1, ++/*491733*/ OPC_CheckType, MVT::i32, ++/*491735*/ OPC_MoveParent, ++/*491736*/ OPC_CheckType, MVT::v8i32, ++/*491738*/ OPC_MoveParent, ++/*491739*/ OPC_CheckType, MVT::v8i32, ++/*491741*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*491743*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 193 ++ // Dst: (XVAVGR_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*491751*/ 0, /*End of Scope*/ ++/*491752*/ 0, /*End of Scope*/ ++/*491753*/ /*Scope*/ 100|128,3/*484*/, /*->492239*/ ++/*491755*/ OPC_RecordChild0, // #0 = $a ++/*491756*/ OPC_RecordChild1, // #1 = $b ++/*491757*/ OPC_MoveParent, ++/*491758*/ OPC_MoveChild1, ++/*491759*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*491762*/ OPC_CheckChild0Integer, 7, ++/*491764*/ OPC_CheckChild0Type, MVT::i32, ++/*491766*/ OPC_CheckChild1Integer, 7, ++/*491768*/ OPC_CheckChild1Type, MVT::i32, ++/*491770*/ OPC_CheckChild2Integer, 7, ++/*491772*/ OPC_CheckChild2Type, MVT::i32, ++/*491774*/ OPC_CheckChild3Integer, 7, ++/*491776*/ OPC_CheckChild3Type, MVT::i32, ++/*491778*/ OPC_CheckChild4Integer, 7, ++/*491780*/ OPC_CheckChild4Type, MVT::i32, ++/*491782*/ OPC_MoveChild5, ++/*491783*/ OPC_CheckInteger, 7, ++/*491785*/ OPC_CheckType, MVT::i32, ++/*491787*/ OPC_MoveParent, ++/*491788*/ OPC_MoveChild6, ++/*491789*/ OPC_CheckInteger, 7, ++/*491791*/ OPC_CheckType, MVT::i32, ++/*491793*/ OPC_MoveParent, ++/*491794*/ OPC_MoveChild7, ++/*491795*/ OPC_CheckInteger, 7, ++/*491797*/ OPC_CheckType, MVT::i32, ++/*491799*/ OPC_MoveParent, ++/*491800*/ OPC_MoveChild, 8, ++/*491802*/ OPC_CheckInteger, 7, ++/*491804*/ OPC_CheckType, MVT::i32, ++/*491806*/ OPC_MoveParent, ++/*491807*/ OPC_MoveChild, 9, ++/*491809*/ OPC_CheckInteger, 7, ++/*491811*/ OPC_CheckType, MVT::i32, ++/*491813*/ OPC_MoveParent, ++/*491814*/ OPC_MoveChild, 10, ++/*491816*/ OPC_CheckInteger, 7, ++/*491818*/ OPC_CheckType, MVT::i32, ++/*491820*/ OPC_MoveParent, ++/*491821*/ OPC_MoveChild, 11, ++/*491823*/ OPC_CheckInteger, 7, ++/*491825*/ OPC_CheckType, MVT::i32, ++/*491827*/ OPC_MoveParent, ++/*491828*/ OPC_MoveChild, 12, ++/*491830*/ OPC_CheckInteger, 7, ++/*491832*/ OPC_CheckType, MVT::i32, ++/*491834*/ OPC_MoveParent, ++/*491835*/ OPC_MoveChild, 13, ++/*491837*/ OPC_CheckInteger, 7, ++/*491839*/ OPC_CheckType, MVT::i32, ++/*491841*/ OPC_MoveParent, ++/*491842*/ OPC_MoveChild, 14, ++/*491844*/ OPC_CheckInteger, 7, ++/*491846*/ OPC_CheckType, MVT::i32, ++/*491848*/ OPC_MoveParent, ++/*491849*/ OPC_MoveChild, 15, ++/*491851*/ OPC_CheckInteger, 7, ++/*491853*/ OPC_CheckType, MVT::i32, ++/*491855*/ OPC_MoveParent, ++/*491856*/ OPC_CheckType, MVT::v16i8, ++/*491858*/ OPC_MoveParent, ++/*491859*/ OPC_MoveParent, ++/*491860*/ OPC_MoveChild1, ++/*491861*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*491864*/ OPC_Scope, 119, /*->491985*/ // 3 children in Scope ++/*491866*/ OPC_CheckChild0Same, 0, ++/*491868*/ OPC_CheckChild1Same, 1, ++/*491870*/ OPC_MoveParent, ++/*491871*/ OPC_MoveParent, ++/*491872*/ OPC_MoveChild1, ++/*491873*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*491876*/ OPC_CheckChild0Integer, 1, ++/*491878*/ OPC_CheckChild0Type, MVT::i32, ++/*491880*/ OPC_CheckChild1Integer, 1, ++/*491882*/ OPC_CheckChild1Type, MVT::i32, ++/*491884*/ OPC_CheckChild2Integer, 1, ++/*491886*/ OPC_CheckChild2Type, MVT::i32, ++/*491888*/ OPC_CheckChild3Integer, 1, ++/*491890*/ OPC_CheckChild3Type, MVT::i32, ++/*491892*/ OPC_CheckChild4Integer, 1, ++/*491894*/ OPC_CheckChild4Type, MVT::i32, ++/*491896*/ OPC_MoveChild5, ++/*491897*/ OPC_CheckInteger, 1, ++/*491899*/ OPC_CheckType, MVT::i32, ++/*491901*/ OPC_MoveParent, ++/*491902*/ OPC_MoveChild6, ++/*491903*/ OPC_CheckInteger, 1, ++/*491905*/ OPC_CheckType, MVT::i32, ++/*491907*/ OPC_MoveParent, ++/*491908*/ OPC_MoveChild7, ++/*491909*/ OPC_CheckInteger, 1, ++/*491911*/ OPC_CheckType, MVT::i32, ++/*491913*/ OPC_MoveParent, ++/*491914*/ OPC_MoveChild, 8, ++/*491916*/ OPC_CheckInteger, 1, ++/*491918*/ OPC_CheckType, MVT::i32, ++/*491920*/ OPC_MoveParent, ++/*491921*/ OPC_MoveChild, 9, ++/*491923*/ OPC_CheckInteger, 1, ++/*491925*/ OPC_CheckType, MVT::i32, ++/*491927*/ OPC_MoveParent, ++/*491928*/ OPC_MoveChild, 10, ++/*491930*/ OPC_CheckInteger, 1, ++/*491932*/ OPC_CheckType, MVT::i32, ++/*491934*/ OPC_MoveParent, ++/*491935*/ OPC_MoveChild, 11, ++/*491937*/ OPC_CheckInteger, 1, ++/*491939*/ OPC_CheckType, MVT::i32, ++/*491941*/ OPC_MoveParent, ++/*491942*/ OPC_MoveChild, 12, ++/*491944*/ OPC_CheckInteger, 1, ++/*491946*/ OPC_CheckType, MVT::i32, ++/*491948*/ OPC_MoveParent, ++/*491949*/ OPC_MoveChild, 13, ++/*491951*/ OPC_CheckInteger, 1, ++/*491953*/ OPC_CheckType, MVT::i32, ++/*491955*/ OPC_MoveParent, ++/*491956*/ OPC_MoveChild, 14, ++/*491958*/ OPC_CheckInteger, 1, ++/*491960*/ OPC_CheckType, MVT::i32, ++/*491962*/ OPC_MoveParent, ++/*491963*/ OPC_MoveChild, 15, ++/*491965*/ OPC_CheckInteger, 1, ++/*491967*/ OPC_CheckType, MVT::i32, ++/*491969*/ OPC_MoveParent, ++/*491970*/ OPC_CheckType, MVT::v16i8, ++/*491972*/ OPC_MoveParent, ++/*491973*/ OPC_CheckType, MVT::v16i8, ++/*491975*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*491977*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 181 ++ // Dst: (VAVG_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*491985*/ /*Scope*/ 3|128,1/*131*/, /*->492118*/ ++/*491987*/ OPC_CheckChild0Same, 1, ++/*491989*/ OPC_CheckChild1Same, 0, ++/*491991*/ OPC_MoveParent, ++/*491992*/ OPC_MoveParent, ++/*491993*/ OPC_MoveChild1, ++/*491994*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*491997*/ OPC_CheckChild0Integer, 1, ++/*491999*/ OPC_CheckChild0Type, MVT::i32, ++/*492001*/ OPC_CheckChild1Integer, 1, ++/*492003*/ OPC_CheckChild1Type, MVT::i32, ++/*492005*/ OPC_CheckChild2Integer, 1, ++/*492007*/ OPC_CheckChild2Type, MVT::i32, ++/*492009*/ OPC_CheckChild3Integer, 1, ++/*492011*/ OPC_CheckChild3Type, MVT::i32, ++/*492013*/ OPC_CheckChild4Integer, 1, ++/*492015*/ OPC_CheckChild4Type, MVT::i32, ++/*492017*/ OPC_MoveChild5, ++/*492018*/ OPC_CheckInteger, 1, ++/*492020*/ OPC_CheckType, MVT::i32, ++/*492022*/ OPC_MoveParent, ++/*492023*/ OPC_MoveChild6, ++/*492024*/ OPC_CheckInteger, 1, ++/*492026*/ OPC_CheckType, MVT::i32, ++/*492028*/ OPC_MoveParent, ++/*492029*/ OPC_MoveChild7, ++/*492030*/ OPC_CheckInteger, 1, ++/*492032*/ OPC_CheckType, MVT::i32, ++/*492034*/ OPC_MoveParent, ++/*492035*/ OPC_MoveChild, 8, ++/*492037*/ OPC_CheckInteger, 1, ++/*492039*/ OPC_CheckType, MVT::i32, ++/*492041*/ OPC_MoveParent, ++/*492042*/ OPC_MoveChild, 9, ++/*492044*/ OPC_CheckInteger, 1, ++/*492046*/ OPC_CheckType, MVT::i32, ++/*492048*/ OPC_MoveParent, ++/*492049*/ OPC_MoveChild, 10, ++/*492051*/ OPC_CheckInteger, 1, ++/*492053*/ OPC_CheckType, MVT::i32, ++/*492055*/ OPC_MoveParent, ++/*492056*/ OPC_MoveChild, 11, ++/*492058*/ OPC_CheckInteger, 1, ++/*492060*/ OPC_CheckType, MVT::i32, ++/*492062*/ OPC_MoveParent, ++/*492063*/ OPC_MoveChild, 12, ++/*492065*/ OPC_CheckInteger, 1, ++/*492067*/ OPC_CheckType, MVT::i32, ++/*492069*/ OPC_MoveParent, ++/*492070*/ OPC_MoveChild, 13, ++/*492072*/ OPC_CheckInteger, 1, ++/*492074*/ OPC_CheckType, MVT::i32, ++/*492076*/ OPC_MoveParent, ++/*492077*/ OPC_MoveChild, 14, ++/*492079*/ OPC_CheckInteger, 1, ++/*492081*/ OPC_CheckType, MVT::i32, ++/*492083*/ OPC_MoveParent, ++/*492084*/ OPC_MoveChild, 15, ++/*492086*/ OPC_CheckInteger, 1, ++/*492088*/ OPC_CheckType, MVT::i32, ++/*492090*/ OPC_MoveParent, ++/*492091*/ OPC_CheckType, MVT::v16i8, ++/*492093*/ OPC_MoveParent, ++/*492094*/ OPC_CheckType, MVT::v16i8, ++/*492096*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*492098*/ OPC_Scope, 8, /*->492108*/ // 2 children in Scope ++/*492100*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 181 ++ // Dst: (VAVG_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*492108*/ /*Scope*/ 8, /*->492117*/ ++/*492109*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 181 ++ // Dst: (VAVG_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*492117*/ 0, /*End of Scope*/ ++/*492118*/ /*Scope*/ 119, /*->492238*/ ++/*492119*/ OPC_CheckChild0Same, 0, ++/*492121*/ OPC_CheckChild1Same, 1, ++/*492123*/ OPC_MoveParent, ++/*492124*/ OPC_MoveParent, ++/*492125*/ OPC_MoveChild1, ++/*492126*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*492129*/ OPC_CheckChild0Integer, 1, ++/*492131*/ OPC_CheckChild0Type, MVT::i32, ++/*492133*/ OPC_CheckChild1Integer, 1, ++/*492135*/ OPC_CheckChild1Type, MVT::i32, ++/*492137*/ OPC_CheckChild2Integer, 1, ++/*492139*/ OPC_CheckChild2Type, MVT::i32, ++/*492141*/ OPC_CheckChild3Integer, 1, ++/*492143*/ OPC_CheckChild3Type, MVT::i32, ++/*492145*/ OPC_CheckChild4Integer, 1, ++/*492147*/ OPC_CheckChild4Type, MVT::i32, ++/*492149*/ OPC_MoveChild5, ++/*492150*/ OPC_CheckInteger, 1, ++/*492152*/ OPC_CheckType, MVT::i32, ++/*492154*/ OPC_MoveParent, ++/*492155*/ OPC_MoveChild6, ++/*492156*/ OPC_CheckInteger, 1, ++/*492158*/ OPC_CheckType, MVT::i32, ++/*492160*/ OPC_MoveParent, ++/*492161*/ OPC_MoveChild7, ++/*492162*/ OPC_CheckInteger, 1, ++/*492164*/ OPC_CheckType, MVT::i32, ++/*492166*/ OPC_MoveParent, ++/*492167*/ OPC_MoveChild, 8, ++/*492169*/ OPC_CheckInteger, 1, ++/*492171*/ OPC_CheckType, MVT::i32, ++/*492173*/ OPC_MoveParent, ++/*492174*/ OPC_MoveChild, 9, ++/*492176*/ OPC_CheckInteger, 1, ++/*492178*/ OPC_CheckType, MVT::i32, ++/*492180*/ OPC_MoveParent, ++/*492181*/ OPC_MoveChild, 10, ++/*492183*/ OPC_CheckInteger, 1, ++/*492185*/ OPC_CheckType, MVT::i32, ++/*492187*/ OPC_MoveParent, ++/*492188*/ OPC_MoveChild, 11, ++/*492190*/ OPC_CheckInteger, 1, ++/*492192*/ OPC_CheckType, MVT::i32, ++/*492194*/ OPC_MoveParent, ++/*492195*/ OPC_MoveChild, 12, ++/*492197*/ OPC_CheckInteger, 1, ++/*492199*/ OPC_CheckType, MVT::i32, ++/*492201*/ OPC_MoveParent, ++/*492202*/ OPC_MoveChild, 13, ++/*492204*/ OPC_CheckInteger, 1, ++/*492206*/ OPC_CheckType, MVT::i32, ++/*492208*/ OPC_MoveParent, ++/*492209*/ OPC_MoveChild, 14, ++/*492211*/ OPC_CheckInteger, 1, ++/*492213*/ OPC_CheckType, MVT::i32, ++/*492215*/ OPC_MoveParent, ++/*492216*/ OPC_MoveChild, 15, ++/*492218*/ OPC_CheckInteger, 1, ++/*492220*/ OPC_CheckType, MVT::i32, ++/*492222*/ OPC_MoveParent, ++/*492223*/ OPC_CheckType, MVT::v16i8, ++/*492225*/ OPC_MoveParent, ++/*492226*/ OPC_CheckType, MVT::v16i8, ++/*492228*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*492230*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 181 ++ // Dst: (VAVG_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*492238*/ 0, /*End of Scope*/ ++/*492239*/ 0, /*End of Scope*/ ++/*492240*/ 0, // EndSwitchOpcode ++/*492241*/ /*Scope*/ 61|128,14/*1853*/, /*->494096*/ ++/*492243*/ OPC_RecordChild0, // #0 = $b ++/*492244*/ OPC_MoveChild1, ++/*492245*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*492248*/ OPC_Scope, 75|128,3/*459*/, /*->492710*/ // 4 children in Scope ++/*492251*/ OPC_RecordChild0, // #1 = $a ++/*492252*/ OPC_MoveChild1, ++/*492253*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*492256*/ OPC_MoveChild0, ++/*492257*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*492260*/ OPC_Scope, 94|128,1/*222*/, /*->492485*/ // 2 children in Scope ++/*492263*/ OPC_CheckChild0Same, 1, ++/*492265*/ OPC_CheckChild1Same, 0, ++/*492267*/ OPC_MoveParent, ++/*492268*/ OPC_MoveChild1, ++/*492269*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*492272*/ OPC_CheckChild0Integer, 7, ++/*492274*/ OPC_CheckChild0Type, MVT::i32, ++/*492276*/ OPC_CheckChild1Integer, 7, ++/*492278*/ OPC_CheckChild1Type, MVT::i32, ++/*492280*/ OPC_CheckChild2Integer, 7, ++/*492282*/ OPC_CheckChild2Type, MVT::i32, ++/*492284*/ OPC_CheckChild3Integer, 7, ++/*492286*/ OPC_CheckChild3Type, MVT::i32, ++/*492288*/ OPC_CheckChild4Integer, 7, ++/*492290*/ OPC_CheckChild4Type, MVT::i32, ++/*492292*/ OPC_MoveChild5, ++/*492293*/ OPC_CheckInteger, 7, ++/*492295*/ OPC_CheckType, MVT::i32, ++/*492297*/ OPC_MoveParent, ++/*492298*/ OPC_MoveChild6, ++/*492299*/ OPC_CheckInteger, 7, ++/*492301*/ OPC_CheckType, MVT::i32, ++/*492303*/ OPC_MoveParent, ++/*492304*/ OPC_MoveChild7, ++/*492305*/ OPC_CheckInteger, 7, ++/*492307*/ OPC_CheckType, MVT::i32, ++/*492309*/ OPC_MoveParent, ++/*492310*/ OPC_MoveChild, 8, ++/*492312*/ OPC_CheckInteger, 7, ++/*492314*/ OPC_CheckType, MVT::i32, ++/*492316*/ OPC_MoveParent, ++/*492317*/ OPC_MoveChild, 9, ++/*492319*/ OPC_CheckInteger, 7, ++/*492321*/ OPC_CheckType, MVT::i32, ++/*492323*/ OPC_MoveParent, ++/*492324*/ OPC_MoveChild, 10, ++/*492326*/ OPC_CheckInteger, 7, ++/*492328*/ OPC_CheckType, MVT::i32, ++/*492330*/ OPC_MoveParent, ++/*492331*/ OPC_MoveChild, 11, ++/*492333*/ OPC_CheckInteger, 7, ++/*492335*/ OPC_CheckType, MVT::i32, ++/*492337*/ OPC_MoveParent, ++/*492338*/ OPC_MoveChild, 12, ++/*492340*/ OPC_CheckInteger, 7, ++/*492342*/ OPC_CheckType, MVT::i32, ++/*492344*/ OPC_MoveParent, ++/*492345*/ OPC_MoveChild, 13, ++/*492347*/ OPC_CheckInteger, 7, ++/*492349*/ OPC_CheckType, MVT::i32, ++/*492351*/ OPC_MoveParent, ++/*492352*/ OPC_MoveChild, 14, ++/*492354*/ OPC_CheckInteger, 7, ++/*492356*/ OPC_CheckType, MVT::i32, ++/*492358*/ OPC_MoveParent, ++/*492359*/ OPC_MoveChild, 15, ++/*492361*/ OPC_CheckInteger, 7, ++/*492363*/ OPC_CheckType, MVT::i32, ++/*492365*/ OPC_MoveParent, ++/*492366*/ OPC_CheckType, MVT::v16i8, ++/*492368*/ OPC_MoveParent, ++/*492369*/ OPC_MoveParent, ++/*492370*/ OPC_MoveParent, ++/*492371*/ OPC_MoveParent, ++/*492372*/ OPC_MoveChild1, ++/*492373*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*492376*/ OPC_CheckChild0Integer, 1, ++/*492378*/ OPC_CheckChild0Type, MVT::i32, ++/*492380*/ OPC_CheckChild1Integer, 1, ++/*492382*/ OPC_CheckChild1Type, MVT::i32, ++/*492384*/ OPC_CheckChild2Integer, 1, ++/*492386*/ OPC_CheckChild2Type, MVT::i32, ++/*492388*/ OPC_CheckChild3Integer, 1, ++/*492390*/ OPC_CheckChild3Type, MVT::i32, ++/*492392*/ OPC_CheckChild4Integer, 1, ++/*492394*/ OPC_CheckChild4Type, MVT::i32, ++/*492396*/ OPC_MoveChild5, ++/*492397*/ OPC_CheckInteger, 1, ++/*492399*/ OPC_CheckType, MVT::i32, ++/*492401*/ OPC_MoveParent, ++/*492402*/ OPC_MoveChild6, ++/*492403*/ OPC_CheckInteger, 1, ++/*492405*/ OPC_CheckType, MVT::i32, ++/*492407*/ OPC_MoveParent, ++/*492408*/ OPC_MoveChild7, ++/*492409*/ OPC_CheckInteger, 1, ++/*492411*/ OPC_CheckType, MVT::i32, ++/*492413*/ OPC_MoveParent, ++/*492414*/ OPC_MoveChild, 8, ++/*492416*/ OPC_CheckInteger, 1, ++/*492418*/ OPC_CheckType, MVT::i32, ++/*492420*/ OPC_MoveParent, ++/*492421*/ OPC_MoveChild, 9, ++/*492423*/ OPC_CheckInteger, 1, ++/*492425*/ OPC_CheckType, MVT::i32, ++/*492427*/ OPC_MoveParent, ++/*492428*/ OPC_MoveChild, 10, ++/*492430*/ OPC_CheckInteger, 1, ++/*492432*/ OPC_CheckType, MVT::i32, ++/*492434*/ OPC_MoveParent, ++/*492435*/ OPC_MoveChild, 11, ++/*492437*/ OPC_CheckInteger, 1, ++/*492439*/ OPC_CheckType, MVT::i32, ++/*492441*/ OPC_MoveParent, ++/*492442*/ OPC_MoveChild, 12, ++/*492444*/ OPC_CheckInteger, 1, ++/*492446*/ OPC_CheckType, MVT::i32, ++/*492448*/ OPC_MoveParent, ++/*492449*/ OPC_MoveChild, 13, ++/*492451*/ OPC_CheckInteger, 1, ++/*492453*/ OPC_CheckType, MVT::i32, ++/*492455*/ OPC_MoveParent, ++/*492456*/ OPC_MoveChild, 14, ++/*492458*/ OPC_CheckInteger, 1, ++/*492460*/ OPC_CheckType, MVT::i32, ++/*492462*/ OPC_MoveParent, ++/*492463*/ OPC_MoveChild, 15, ++/*492465*/ OPC_CheckInteger, 1, ++/*492467*/ OPC_CheckType, MVT::i32, ++/*492469*/ OPC_MoveParent, ++/*492470*/ OPC_CheckType, MVT::v16i8, ++/*492472*/ OPC_MoveParent, ++/*492473*/ OPC_CheckType, MVT::v16i8, ++/*492475*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*492477*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 181 ++ // Dst: (VAVG_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*492485*/ /*Scope*/ 94|128,1/*222*/, /*->492709*/ ++/*492487*/ OPC_CheckChild0Same, 0, ++/*492489*/ OPC_CheckChild1Same, 1, ++/*492491*/ OPC_MoveParent, ++/*492492*/ OPC_MoveChild1, ++/*492493*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*492496*/ OPC_CheckChild0Integer, 7, ++/*492498*/ OPC_CheckChild0Type, MVT::i32, ++/*492500*/ OPC_CheckChild1Integer, 7, ++/*492502*/ OPC_CheckChild1Type, MVT::i32, ++/*492504*/ OPC_CheckChild2Integer, 7, ++/*492506*/ OPC_CheckChild2Type, MVT::i32, ++/*492508*/ OPC_CheckChild3Integer, 7, ++/*492510*/ OPC_CheckChild3Type, MVT::i32, ++/*492512*/ OPC_CheckChild4Integer, 7, ++/*492514*/ OPC_CheckChild4Type, MVT::i32, ++/*492516*/ OPC_MoveChild5, ++/*492517*/ OPC_CheckInteger, 7, ++/*492519*/ OPC_CheckType, MVT::i32, ++/*492521*/ OPC_MoveParent, ++/*492522*/ OPC_MoveChild6, ++/*492523*/ OPC_CheckInteger, 7, ++/*492525*/ OPC_CheckType, MVT::i32, ++/*492527*/ OPC_MoveParent, ++/*492528*/ OPC_MoveChild7, ++/*492529*/ OPC_CheckInteger, 7, ++/*492531*/ OPC_CheckType, MVT::i32, ++/*492533*/ OPC_MoveParent, ++/*492534*/ OPC_MoveChild, 8, ++/*492536*/ OPC_CheckInteger, 7, ++/*492538*/ OPC_CheckType, MVT::i32, ++/*492540*/ OPC_MoveParent, ++/*492541*/ OPC_MoveChild, 9, ++/*492543*/ OPC_CheckInteger, 7, ++/*492545*/ OPC_CheckType, MVT::i32, ++/*492547*/ OPC_MoveParent, ++/*492548*/ OPC_MoveChild, 10, ++/*492550*/ OPC_CheckInteger, 7, ++/*492552*/ OPC_CheckType, MVT::i32, ++/*492554*/ OPC_MoveParent, ++/*492555*/ OPC_MoveChild, 11, ++/*492557*/ OPC_CheckInteger, 7, ++/*492559*/ OPC_CheckType, MVT::i32, ++/*492561*/ OPC_MoveParent, ++/*492562*/ OPC_MoveChild, 12, ++/*492564*/ OPC_CheckInteger, 7, ++/*492566*/ OPC_CheckType, MVT::i32, ++/*492568*/ OPC_MoveParent, ++/*492569*/ OPC_MoveChild, 13, ++/*492571*/ OPC_CheckInteger, 7, ++/*492573*/ OPC_CheckType, MVT::i32, ++/*492575*/ OPC_MoveParent, ++/*492576*/ OPC_MoveChild, 14, ++/*492578*/ OPC_CheckInteger, 7, ++/*492580*/ OPC_CheckType, MVT::i32, ++/*492582*/ OPC_MoveParent, ++/*492583*/ OPC_MoveChild, 15, ++/*492585*/ OPC_CheckInteger, 7, ++/*492587*/ OPC_CheckType, MVT::i32, ++/*492589*/ OPC_MoveParent, ++/*492590*/ OPC_CheckType, MVT::v16i8, ++/*492592*/ OPC_MoveParent, ++/*492593*/ OPC_MoveParent, ++/*492594*/ OPC_MoveParent, ++/*492595*/ OPC_MoveParent, ++/*492596*/ OPC_MoveChild1, ++/*492597*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*492600*/ OPC_CheckChild0Integer, 1, ++/*492602*/ OPC_CheckChild0Type, MVT::i32, ++/*492604*/ OPC_CheckChild1Integer, 1, ++/*492606*/ OPC_CheckChild1Type, MVT::i32, ++/*492608*/ OPC_CheckChild2Integer, 1, ++/*492610*/ OPC_CheckChild2Type, MVT::i32, ++/*492612*/ OPC_CheckChild3Integer, 1, ++/*492614*/ OPC_CheckChild3Type, MVT::i32, ++/*492616*/ OPC_CheckChild4Integer, 1, ++/*492618*/ OPC_CheckChild4Type, MVT::i32, ++/*492620*/ OPC_MoveChild5, ++/*492621*/ OPC_CheckInteger, 1, ++/*492623*/ OPC_CheckType, MVT::i32, ++/*492625*/ OPC_MoveParent, ++/*492626*/ OPC_MoveChild6, ++/*492627*/ OPC_CheckInteger, 1, ++/*492629*/ OPC_CheckType, MVT::i32, ++/*492631*/ OPC_MoveParent, ++/*492632*/ OPC_MoveChild7, ++/*492633*/ OPC_CheckInteger, 1, ++/*492635*/ OPC_CheckType, MVT::i32, ++/*492637*/ OPC_MoveParent, ++/*492638*/ OPC_MoveChild, 8, ++/*492640*/ OPC_CheckInteger, 1, ++/*492642*/ OPC_CheckType, MVT::i32, ++/*492644*/ OPC_MoveParent, ++/*492645*/ OPC_MoveChild, 9, ++/*492647*/ OPC_CheckInteger, 1, ++/*492649*/ OPC_CheckType, MVT::i32, ++/*492651*/ OPC_MoveParent, ++/*492652*/ OPC_MoveChild, 10, ++/*492654*/ OPC_CheckInteger, 1, ++/*492656*/ OPC_CheckType, MVT::i32, ++/*492658*/ OPC_MoveParent, ++/*492659*/ OPC_MoveChild, 11, ++/*492661*/ OPC_CheckInteger, 1, ++/*492663*/ OPC_CheckType, MVT::i32, ++/*492665*/ OPC_MoveParent, ++/*492666*/ OPC_MoveChild, 12, ++/*492668*/ OPC_CheckInteger, 1, ++/*492670*/ OPC_CheckType, MVT::i32, ++/*492672*/ OPC_MoveParent, ++/*492673*/ OPC_MoveChild, 13, ++/*492675*/ OPC_CheckInteger, 1, ++/*492677*/ OPC_CheckType, MVT::i32, ++/*492679*/ OPC_MoveParent, ++/*492680*/ OPC_MoveChild, 14, ++/*492682*/ OPC_CheckInteger, 1, ++/*492684*/ OPC_CheckType, MVT::i32, ++/*492686*/ OPC_MoveParent, ++/*492687*/ OPC_MoveChild, 15, ++/*492689*/ OPC_CheckInteger, 1, ++/*492691*/ OPC_CheckType, MVT::i32, ++/*492693*/ OPC_MoveParent, ++/*492694*/ OPC_CheckType, MVT::v16i8, ++/*492696*/ OPC_MoveParent, ++/*492697*/ OPC_CheckType, MVT::v16i8, ++/*492699*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*492701*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 181 ++ // Dst: (VAVG_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*492709*/ 0, /*End of Scope*/ ++/*492710*/ /*Scope*/ 76|128,3/*460*/, /*->493172*/ ++/*492712*/ OPC_MoveChild0, ++/*492713*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*492716*/ OPC_MoveChild0, ++/*492717*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*492720*/ OPC_Scope, 95|128,1/*223*/, /*->492946*/ // 2 children in Scope ++/*492723*/ OPC_RecordChild0, // #1 = $a ++/*492724*/ OPC_CheckChild1Same, 0, ++/*492726*/ OPC_MoveParent, ++/*492727*/ OPC_MoveChild1, ++/*492728*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*492731*/ OPC_CheckChild0Integer, 7, ++/*492733*/ OPC_CheckChild0Type, MVT::i32, ++/*492735*/ OPC_CheckChild1Integer, 7, ++/*492737*/ OPC_CheckChild1Type, MVT::i32, ++/*492739*/ OPC_CheckChild2Integer, 7, ++/*492741*/ OPC_CheckChild2Type, MVT::i32, ++/*492743*/ OPC_CheckChild3Integer, 7, ++/*492745*/ OPC_CheckChild3Type, MVT::i32, ++/*492747*/ OPC_CheckChild4Integer, 7, ++/*492749*/ OPC_CheckChild4Type, MVT::i32, ++/*492751*/ OPC_MoveChild5, ++/*492752*/ OPC_CheckInteger, 7, ++/*492754*/ OPC_CheckType, MVT::i32, ++/*492756*/ OPC_MoveParent, ++/*492757*/ OPC_MoveChild6, ++/*492758*/ OPC_CheckInteger, 7, ++/*492760*/ OPC_CheckType, MVT::i32, ++/*492762*/ OPC_MoveParent, ++/*492763*/ OPC_MoveChild7, ++/*492764*/ OPC_CheckInteger, 7, ++/*492766*/ OPC_CheckType, MVT::i32, ++/*492768*/ OPC_MoveParent, ++/*492769*/ OPC_MoveChild, 8, ++/*492771*/ OPC_CheckInteger, 7, ++/*492773*/ OPC_CheckType, MVT::i32, ++/*492775*/ OPC_MoveParent, ++/*492776*/ OPC_MoveChild, 9, ++/*492778*/ OPC_CheckInteger, 7, ++/*492780*/ OPC_CheckType, MVT::i32, ++/*492782*/ OPC_MoveParent, ++/*492783*/ OPC_MoveChild, 10, ++/*492785*/ OPC_CheckInteger, 7, ++/*492787*/ OPC_CheckType, MVT::i32, ++/*492789*/ OPC_MoveParent, ++/*492790*/ OPC_MoveChild, 11, ++/*492792*/ OPC_CheckInteger, 7, ++/*492794*/ OPC_CheckType, MVT::i32, ++/*492796*/ OPC_MoveParent, ++/*492797*/ OPC_MoveChild, 12, ++/*492799*/ OPC_CheckInteger, 7, ++/*492801*/ OPC_CheckType, MVT::i32, ++/*492803*/ OPC_MoveParent, ++/*492804*/ OPC_MoveChild, 13, ++/*492806*/ OPC_CheckInteger, 7, ++/*492808*/ OPC_CheckType, MVT::i32, ++/*492810*/ OPC_MoveParent, ++/*492811*/ OPC_MoveChild, 14, ++/*492813*/ OPC_CheckInteger, 7, ++/*492815*/ OPC_CheckType, MVT::i32, ++/*492817*/ OPC_MoveParent, ++/*492818*/ OPC_MoveChild, 15, ++/*492820*/ OPC_CheckInteger, 7, ++/*492822*/ OPC_CheckType, MVT::i32, ++/*492824*/ OPC_MoveParent, ++/*492825*/ OPC_CheckType, MVT::v16i8, ++/*492827*/ OPC_MoveParent, ++/*492828*/ OPC_MoveParent, ++/*492829*/ OPC_CheckChild1Same, 1, ++/*492831*/ OPC_MoveParent, ++/*492832*/ OPC_MoveParent, ++/*492833*/ OPC_MoveChild1, ++/*492834*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*492837*/ OPC_CheckChild0Integer, 1, ++/*492839*/ OPC_CheckChild0Type, MVT::i32, ++/*492841*/ OPC_CheckChild1Integer, 1, ++/*492843*/ OPC_CheckChild1Type, MVT::i32, ++/*492845*/ OPC_CheckChild2Integer, 1, ++/*492847*/ OPC_CheckChild2Type, MVT::i32, ++/*492849*/ OPC_CheckChild3Integer, 1, ++/*492851*/ OPC_CheckChild3Type, MVT::i32, ++/*492853*/ OPC_CheckChild4Integer, 1, ++/*492855*/ OPC_CheckChild4Type, MVT::i32, ++/*492857*/ OPC_MoveChild5, ++/*492858*/ OPC_CheckInteger, 1, ++/*492860*/ OPC_CheckType, MVT::i32, ++/*492862*/ OPC_MoveParent, ++/*492863*/ OPC_MoveChild6, ++/*492864*/ OPC_CheckInteger, 1, ++/*492866*/ OPC_CheckType, MVT::i32, ++/*492868*/ OPC_MoveParent, ++/*492869*/ OPC_MoveChild7, ++/*492870*/ OPC_CheckInteger, 1, ++/*492872*/ OPC_CheckType, MVT::i32, ++/*492874*/ OPC_MoveParent, ++/*492875*/ OPC_MoveChild, 8, ++/*492877*/ OPC_CheckInteger, 1, ++/*492879*/ OPC_CheckType, MVT::i32, ++/*492881*/ OPC_MoveParent, ++/*492882*/ OPC_MoveChild, 9, ++/*492884*/ OPC_CheckInteger, 1, ++/*492886*/ OPC_CheckType, MVT::i32, ++/*492888*/ OPC_MoveParent, ++/*492889*/ OPC_MoveChild, 10, ++/*492891*/ OPC_CheckInteger, 1, ++/*492893*/ OPC_CheckType, MVT::i32, ++/*492895*/ OPC_MoveParent, ++/*492896*/ OPC_MoveChild, 11, ++/*492898*/ OPC_CheckInteger, 1, ++/*492900*/ OPC_CheckType, MVT::i32, ++/*492902*/ OPC_MoveParent, ++/*492903*/ OPC_MoveChild, 12, ++/*492905*/ OPC_CheckInteger, 1, ++/*492907*/ OPC_CheckType, MVT::i32, ++/*492909*/ OPC_MoveParent, ++/*492910*/ OPC_MoveChild, 13, ++/*492912*/ OPC_CheckInteger, 1, ++/*492914*/ OPC_CheckType, MVT::i32, ++/*492916*/ OPC_MoveParent, ++/*492917*/ OPC_MoveChild, 14, ++/*492919*/ OPC_CheckInteger, 1, ++/*492921*/ OPC_CheckType, MVT::i32, ++/*492923*/ OPC_MoveParent, ++/*492924*/ OPC_MoveChild, 15, ++/*492926*/ OPC_CheckInteger, 1, ++/*492928*/ OPC_CheckType, MVT::i32, ++/*492930*/ OPC_MoveParent, ++/*492931*/ OPC_CheckType, MVT::v16i8, ++/*492933*/ OPC_MoveParent, ++/*492934*/ OPC_CheckType, MVT::v16i8, ++/*492936*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*492938*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 181 ++ // Dst: (VAVG_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*492946*/ /*Scope*/ 95|128,1/*223*/, /*->493171*/ ++/*492948*/ OPC_CheckChild0Same, 0, ++/*492950*/ OPC_RecordChild1, // #1 = $a ++/*492951*/ OPC_MoveParent, ++/*492952*/ OPC_MoveChild1, ++/*492953*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*492956*/ OPC_CheckChild0Integer, 7, ++/*492958*/ OPC_CheckChild0Type, MVT::i32, ++/*492960*/ OPC_CheckChild1Integer, 7, ++/*492962*/ OPC_CheckChild1Type, MVT::i32, ++/*492964*/ OPC_CheckChild2Integer, 7, ++/*492966*/ OPC_CheckChild2Type, MVT::i32, ++/*492968*/ OPC_CheckChild3Integer, 7, ++/*492970*/ OPC_CheckChild3Type, MVT::i32, ++/*492972*/ OPC_CheckChild4Integer, 7, ++/*492974*/ OPC_CheckChild4Type, MVT::i32, ++/*492976*/ OPC_MoveChild5, ++/*492977*/ OPC_CheckInteger, 7, ++/*492979*/ OPC_CheckType, MVT::i32, ++/*492981*/ OPC_MoveParent, ++/*492982*/ OPC_MoveChild6, ++/*492983*/ OPC_CheckInteger, 7, ++/*492985*/ OPC_CheckType, MVT::i32, ++/*492987*/ OPC_MoveParent, ++/*492988*/ OPC_MoveChild7, ++/*492989*/ OPC_CheckInteger, 7, ++/*492991*/ OPC_CheckType, MVT::i32, ++/*492993*/ OPC_MoveParent, ++/*492994*/ OPC_MoveChild, 8, ++/*492996*/ OPC_CheckInteger, 7, ++/*492998*/ OPC_CheckType, MVT::i32, ++/*493000*/ OPC_MoveParent, ++/*493001*/ OPC_MoveChild, 9, ++/*493003*/ OPC_CheckInteger, 7, ++/*493005*/ OPC_CheckType, MVT::i32, ++/*493007*/ OPC_MoveParent, ++/*493008*/ OPC_MoveChild, 10, ++/*493010*/ OPC_CheckInteger, 7, ++/*493012*/ OPC_CheckType, MVT::i32, ++/*493014*/ OPC_MoveParent, ++/*493015*/ OPC_MoveChild, 11, ++/*493017*/ OPC_CheckInteger, 7, ++/*493019*/ OPC_CheckType, MVT::i32, ++/*493021*/ OPC_MoveParent, ++/*493022*/ OPC_MoveChild, 12, ++/*493024*/ OPC_CheckInteger, 7, ++/*493026*/ OPC_CheckType, MVT::i32, ++/*493028*/ OPC_MoveParent, ++/*493029*/ OPC_MoveChild, 13, ++/*493031*/ OPC_CheckInteger, 7, ++/*493033*/ OPC_CheckType, MVT::i32, ++/*493035*/ OPC_MoveParent, ++/*493036*/ OPC_MoveChild, 14, ++/*493038*/ OPC_CheckInteger, 7, ++/*493040*/ OPC_CheckType, MVT::i32, ++/*493042*/ OPC_MoveParent, ++/*493043*/ OPC_MoveChild, 15, ++/*493045*/ OPC_CheckInteger, 7, ++/*493047*/ OPC_CheckType, MVT::i32, ++/*493049*/ OPC_MoveParent, ++/*493050*/ OPC_CheckType, MVT::v16i8, ++/*493052*/ OPC_MoveParent, ++/*493053*/ OPC_MoveParent, ++/*493054*/ OPC_CheckChild1Same, 1, ++/*493056*/ OPC_MoveParent, ++/*493057*/ OPC_MoveParent, ++/*493058*/ OPC_MoveChild1, ++/*493059*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*493062*/ OPC_CheckChild0Integer, 1, ++/*493064*/ OPC_CheckChild0Type, MVT::i32, ++/*493066*/ OPC_CheckChild1Integer, 1, ++/*493068*/ OPC_CheckChild1Type, MVT::i32, ++/*493070*/ OPC_CheckChild2Integer, 1, ++/*493072*/ OPC_CheckChild2Type, MVT::i32, ++/*493074*/ OPC_CheckChild3Integer, 1, ++/*493076*/ OPC_CheckChild3Type, MVT::i32, ++/*493078*/ OPC_CheckChild4Integer, 1, ++/*493080*/ OPC_CheckChild4Type, MVT::i32, ++/*493082*/ OPC_MoveChild5, ++/*493083*/ OPC_CheckInteger, 1, ++/*493085*/ OPC_CheckType, MVT::i32, ++/*493087*/ OPC_MoveParent, ++/*493088*/ OPC_MoveChild6, ++/*493089*/ OPC_CheckInteger, 1, ++/*493091*/ OPC_CheckType, MVT::i32, ++/*493093*/ OPC_MoveParent, ++/*493094*/ OPC_MoveChild7, ++/*493095*/ OPC_CheckInteger, 1, ++/*493097*/ OPC_CheckType, MVT::i32, ++/*493099*/ OPC_MoveParent, ++/*493100*/ OPC_MoveChild, 8, ++/*493102*/ OPC_CheckInteger, 1, ++/*493104*/ OPC_CheckType, MVT::i32, ++/*493106*/ OPC_MoveParent, ++/*493107*/ OPC_MoveChild, 9, ++/*493109*/ OPC_CheckInteger, 1, ++/*493111*/ OPC_CheckType, MVT::i32, ++/*493113*/ OPC_MoveParent, ++/*493114*/ OPC_MoveChild, 10, ++/*493116*/ OPC_CheckInteger, 1, ++/*493118*/ OPC_CheckType, MVT::i32, ++/*493120*/ OPC_MoveParent, ++/*493121*/ OPC_MoveChild, 11, ++/*493123*/ OPC_CheckInteger, 1, ++/*493125*/ OPC_CheckType, MVT::i32, ++/*493127*/ OPC_MoveParent, ++/*493128*/ OPC_MoveChild, 12, ++/*493130*/ OPC_CheckInteger, 1, ++/*493132*/ OPC_CheckType, MVT::i32, ++/*493134*/ OPC_MoveParent, ++/*493135*/ OPC_MoveChild, 13, ++/*493137*/ OPC_CheckInteger, 1, ++/*493139*/ OPC_CheckType, MVT::i32, ++/*493141*/ OPC_MoveParent, ++/*493142*/ OPC_MoveChild, 14, ++/*493144*/ OPC_CheckInteger, 1, ++/*493146*/ OPC_CheckType, MVT::i32, ++/*493148*/ OPC_MoveParent, ++/*493149*/ OPC_MoveChild, 15, ++/*493151*/ OPC_CheckInteger, 1, ++/*493153*/ OPC_CheckType, MVT::i32, ++/*493155*/ OPC_MoveParent, ++/*493156*/ OPC_CheckType, MVT::v16i8, ++/*493158*/ OPC_MoveParent, ++/*493159*/ OPC_CheckType, MVT::v16i8, ++/*493161*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*493163*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$a)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 181 ++ // Dst: (VAVG_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*493171*/ 0, /*End of Scope*/ ++/*493172*/ /*Scope*/ 75|128,3/*459*/, /*->493633*/ ++/*493174*/ OPC_RecordChild0, // #1 = $b ++/*493175*/ OPC_MoveChild1, ++/*493176*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*493179*/ OPC_MoveChild0, ++/*493180*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*493183*/ OPC_Scope, 94|128,1/*222*/, /*->493408*/ // 2 children in Scope ++/*493186*/ OPC_CheckChild0Same, 0, ++/*493188*/ OPC_CheckChild1Same, 1, ++/*493190*/ OPC_MoveParent, ++/*493191*/ OPC_MoveChild1, ++/*493192*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*493195*/ OPC_CheckChild0Integer, 7, ++/*493197*/ OPC_CheckChild0Type, MVT::i32, ++/*493199*/ OPC_CheckChild1Integer, 7, ++/*493201*/ OPC_CheckChild1Type, MVT::i32, ++/*493203*/ OPC_CheckChild2Integer, 7, ++/*493205*/ OPC_CheckChild2Type, MVT::i32, ++/*493207*/ OPC_CheckChild3Integer, 7, ++/*493209*/ OPC_CheckChild3Type, MVT::i32, ++/*493211*/ OPC_CheckChild4Integer, 7, ++/*493213*/ OPC_CheckChild4Type, MVT::i32, ++/*493215*/ OPC_MoveChild5, ++/*493216*/ OPC_CheckInteger, 7, ++/*493218*/ OPC_CheckType, MVT::i32, ++/*493220*/ OPC_MoveParent, ++/*493221*/ OPC_MoveChild6, ++/*493222*/ OPC_CheckInteger, 7, ++/*493224*/ OPC_CheckType, MVT::i32, ++/*493226*/ OPC_MoveParent, ++/*493227*/ OPC_MoveChild7, ++/*493228*/ OPC_CheckInteger, 7, ++/*493230*/ OPC_CheckType, MVT::i32, ++/*493232*/ OPC_MoveParent, ++/*493233*/ OPC_MoveChild, 8, ++/*493235*/ OPC_CheckInteger, 7, ++/*493237*/ OPC_CheckType, MVT::i32, ++/*493239*/ OPC_MoveParent, ++/*493240*/ OPC_MoveChild, 9, ++/*493242*/ OPC_CheckInteger, 7, ++/*493244*/ OPC_CheckType, MVT::i32, ++/*493246*/ OPC_MoveParent, ++/*493247*/ OPC_MoveChild, 10, ++/*493249*/ OPC_CheckInteger, 7, ++/*493251*/ OPC_CheckType, MVT::i32, ++/*493253*/ OPC_MoveParent, ++/*493254*/ OPC_MoveChild, 11, ++/*493256*/ OPC_CheckInteger, 7, ++/*493258*/ OPC_CheckType, MVT::i32, ++/*493260*/ OPC_MoveParent, ++/*493261*/ OPC_MoveChild, 12, ++/*493263*/ OPC_CheckInteger, 7, ++/*493265*/ OPC_CheckType, MVT::i32, ++/*493267*/ OPC_MoveParent, ++/*493268*/ OPC_MoveChild, 13, ++/*493270*/ OPC_CheckInteger, 7, ++/*493272*/ OPC_CheckType, MVT::i32, ++/*493274*/ OPC_MoveParent, ++/*493275*/ OPC_MoveChild, 14, ++/*493277*/ OPC_CheckInteger, 7, ++/*493279*/ OPC_CheckType, MVT::i32, ++/*493281*/ OPC_MoveParent, ++/*493282*/ OPC_MoveChild, 15, ++/*493284*/ OPC_CheckInteger, 7, ++/*493286*/ OPC_CheckType, MVT::i32, ++/*493288*/ OPC_MoveParent, ++/*493289*/ OPC_CheckType, MVT::v16i8, ++/*493291*/ OPC_MoveParent, ++/*493292*/ OPC_MoveParent, ++/*493293*/ OPC_MoveParent, ++/*493294*/ OPC_MoveParent, ++/*493295*/ OPC_MoveChild1, ++/*493296*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*493299*/ OPC_CheckChild0Integer, 1, ++/*493301*/ OPC_CheckChild0Type, MVT::i32, ++/*493303*/ OPC_CheckChild1Integer, 1, ++/*493305*/ OPC_CheckChild1Type, MVT::i32, ++/*493307*/ OPC_CheckChild2Integer, 1, ++/*493309*/ OPC_CheckChild2Type, MVT::i32, ++/*493311*/ OPC_CheckChild3Integer, 1, ++/*493313*/ OPC_CheckChild3Type, MVT::i32, ++/*493315*/ OPC_CheckChild4Integer, 1, ++/*493317*/ OPC_CheckChild4Type, MVT::i32, ++/*493319*/ OPC_MoveChild5, ++/*493320*/ OPC_CheckInteger, 1, ++/*493322*/ OPC_CheckType, MVT::i32, ++/*493324*/ OPC_MoveParent, ++/*493325*/ OPC_MoveChild6, ++/*493326*/ OPC_CheckInteger, 1, ++/*493328*/ OPC_CheckType, MVT::i32, ++/*493330*/ OPC_MoveParent, ++/*493331*/ OPC_MoveChild7, ++/*493332*/ OPC_CheckInteger, 1, ++/*493334*/ OPC_CheckType, MVT::i32, ++/*493336*/ OPC_MoveParent, ++/*493337*/ OPC_MoveChild, 8, ++/*493339*/ OPC_CheckInteger, 1, ++/*493341*/ OPC_CheckType, MVT::i32, ++/*493343*/ OPC_MoveParent, ++/*493344*/ OPC_MoveChild, 9, ++/*493346*/ OPC_CheckInteger, 1, ++/*493348*/ OPC_CheckType, MVT::i32, ++/*493350*/ OPC_MoveParent, ++/*493351*/ OPC_MoveChild, 10, ++/*493353*/ OPC_CheckInteger, 1, ++/*493355*/ OPC_CheckType, MVT::i32, ++/*493357*/ OPC_MoveParent, ++/*493358*/ OPC_MoveChild, 11, ++/*493360*/ OPC_CheckInteger, 1, ++/*493362*/ OPC_CheckType, MVT::i32, ++/*493364*/ OPC_MoveParent, ++/*493365*/ OPC_MoveChild, 12, ++/*493367*/ OPC_CheckInteger, 1, ++/*493369*/ OPC_CheckType, MVT::i32, ++/*493371*/ OPC_MoveParent, ++/*493372*/ OPC_MoveChild, 13, ++/*493374*/ OPC_CheckInteger, 1, ++/*493376*/ OPC_CheckType, MVT::i32, ++/*493378*/ OPC_MoveParent, ++/*493379*/ OPC_MoveChild, 14, ++/*493381*/ OPC_CheckInteger, 1, ++/*493383*/ OPC_CheckType, MVT::i32, ++/*493385*/ OPC_MoveParent, ++/*493386*/ OPC_MoveChild, 15, ++/*493388*/ OPC_CheckInteger, 1, ++/*493390*/ OPC_CheckType, MVT::i32, ++/*493392*/ OPC_MoveParent, ++/*493393*/ OPC_CheckType, MVT::v16i8, ++/*493395*/ OPC_MoveParent, ++/*493396*/ OPC_CheckType, MVT::v16i8, ++/*493398*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*493400*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 181 ++ // Dst: (VAVG_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*493408*/ /*Scope*/ 94|128,1/*222*/, /*->493632*/ ++/*493410*/ OPC_CheckChild0Same, 1, ++/*493412*/ OPC_CheckChild1Same, 0, ++/*493414*/ OPC_MoveParent, ++/*493415*/ OPC_MoveChild1, ++/*493416*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*493419*/ OPC_CheckChild0Integer, 7, ++/*493421*/ OPC_CheckChild0Type, MVT::i32, ++/*493423*/ OPC_CheckChild1Integer, 7, ++/*493425*/ OPC_CheckChild1Type, MVT::i32, ++/*493427*/ OPC_CheckChild2Integer, 7, ++/*493429*/ OPC_CheckChild2Type, MVT::i32, ++/*493431*/ OPC_CheckChild3Integer, 7, ++/*493433*/ OPC_CheckChild3Type, MVT::i32, ++/*493435*/ OPC_CheckChild4Integer, 7, ++/*493437*/ OPC_CheckChild4Type, MVT::i32, ++/*493439*/ OPC_MoveChild5, ++/*493440*/ OPC_CheckInteger, 7, ++/*493442*/ OPC_CheckType, MVT::i32, ++/*493444*/ OPC_MoveParent, ++/*493445*/ OPC_MoveChild6, ++/*493446*/ OPC_CheckInteger, 7, ++/*493448*/ OPC_CheckType, MVT::i32, ++/*493450*/ OPC_MoveParent, ++/*493451*/ OPC_MoveChild7, ++/*493452*/ OPC_CheckInteger, 7, ++/*493454*/ OPC_CheckType, MVT::i32, ++/*493456*/ OPC_MoveParent, ++/*493457*/ OPC_MoveChild, 8, ++/*493459*/ OPC_CheckInteger, 7, ++/*493461*/ OPC_CheckType, MVT::i32, ++/*493463*/ OPC_MoveParent, ++/*493464*/ OPC_MoveChild, 9, ++/*493466*/ OPC_CheckInteger, 7, ++/*493468*/ OPC_CheckType, MVT::i32, ++/*493470*/ OPC_MoveParent, ++/*493471*/ OPC_MoveChild, 10, ++/*493473*/ OPC_CheckInteger, 7, ++/*493475*/ OPC_CheckType, MVT::i32, ++/*493477*/ OPC_MoveParent, ++/*493478*/ OPC_MoveChild, 11, ++/*493480*/ OPC_CheckInteger, 7, ++/*493482*/ OPC_CheckType, MVT::i32, ++/*493484*/ OPC_MoveParent, ++/*493485*/ OPC_MoveChild, 12, ++/*493487*/ OPC_CheckInteger, 7, ++/*493489*/ OPC_CheckType, MVT::i32, ++/*493491*/ OPC_MoveParent, ++/*493492*/ OPC_MoveChild, 13, ++/*493494*/ OPC_CheckInteger, 7, ++/*493496*/ OPC_CheckType, MVT::i32, ++/*493498*/ OPC_MoveParent, ++/*493499*/ OPC_MoveChild, 14, ++/*493501*/ OPC_CheckInteger, 7, ++/*493503*/ OPC_CheckType, MVT::i32, ++/*493505*/ OPC_MoveParent, ++/*493506*/ OPC_MoveChild, 15, ++/*493508*/ OPC_CheckInteger, 7, ++/*493510*/ OPC_CheckType, MVT::i32, ++/*493512*/ OPC_MoveParent, ++/*493513*/ OPC_CheckType, MVT::v16i8, ++/*493515*/ OPC_MoveParent, ++/*493516*/ OPC_MoveParent, ++/*493517*/ OPC_MoveParent, ++/*493518*/ OPC_MoveParent, ++/*493519*/ OPC_MoveChild1, ++/*493520*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*493523*/ OPC_CheckChild0Integer, 1, ++/*493525*/ OPC_CheckChild0Type, MVT::i32, ++/*493527*/ OPC_CheckChild1Integer, 1, ++/*493529*/ OPC_CheckChild1Type, MVT::i32, ++/*493531*/ OPC_CheckChild2Integer, 1, ++/*493533*/ OPC_CheckChild2Type, MVT::i32, ++/*493535*/ OPC_CheckChild3Integer, 1, ++/*493537*/ OPC_CheckChild3Type, MVT::i32, ++/*493539*/ OPC_CheckChild4Integer, 1, ++/*493541*/ OPC_CheckChild4Type, MVT::i32, ++/*493543*/ OPC_MoveChild5, ++/*493544*/ OPC_CheckInteger, 1, ++/*493546*/ OPC_CheckType, MVT::i32, ++/*493548*/ OPC_MoveParent, ++/*493549*/ OPC_MoveChild6, ++/*493550*/ OPC_CheckInteger, 1, ++/*493552*/ OPC_CheckType, MVT::i32, ++/*493554*/ OPC_MoveParent, ++/*493555*/ OPC_MoveChild7, ++/*493556*/ OPC_CheckInteger, 1, ++/*493558*/ OPC_CheckType, MVT::i32, ++/*493560*/ OPC_MoveParent, ++/*493561*/ OPC_MoveChild, 8, ++/*493563*/ OPC_CheckInteger, 1, ++/*493565*/ OPC_CheckType, MVT::i32, ++/*493567*/ OPC_MoveParent, ++/*493568*/ OPC_MoveChild, 9, ++/*493570*/ OPC_CheckInteger, 1, ++/*493572*/ OPC_CheckType, MVT::i32, ++/*493574*/ OPC_MoveParent, ++/*493575*/ OPC_MoveChild, 10, ++/*493577*/ OPC_CheckInteger, 1, ++/*493579*/ OPC_CheckType, MVT::i32, ++/*493581*/ OPC_MoveParent, ++/*493582*/ OPC_MoveChild, 11, ++/*493584*/ OPC_CheckInteger, 1, ++/*493586*/ OPC_CheckType, MVT::i32, ++/*493588*/ OPC_MoveParent, ++/*493589*/ OPC_MoveChild, 12, ++/*493591*/ OPC_CheckInteger, 1, ++/*493593*/ OPC_CheckType, MVT::i32, ++/*493595*/ OPC_MoveParent, ++/*493596*/ OPC_MoveChild, 13, ++/*493598*/ OPC_CheckInteger, 1, ++/*493600*/ OPC_CheckType, MVT::i32, ++/*493602*/ OPC_MoveParent, ++/*493603*/ OPC_MoveChild, 14, ++/*493605*/ OPC_CheckInteger, 1, ++/*493607*/ OPC_CheckType, MVT::i32, ++/*493609*/ OPC_MoveParent, ++/*493610*/ OPC_MoveChild, 15, ++/*493612*/ OPC_CheckInteger, 1, ++/*493614*/ OPC_CheckType, MVT::i32, ++/*493616*/ OPC_MoveParent, ++/*493617*/ OPC_CheckType, MVT::v16i8, ++/*493619*/ OPC_MoveParent, ++/*493620*/ OPC_CheckType, MVT::v16i8, ++/*493622*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*493624*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })))), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 181 ++ // Dst: (VAVG_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*493632*/ 0, /*End of Scope*/ ++/*493633*/ /*Scope*/ 76|128,3/*460*/, /*->494095*/ ++/*493635*/ OPC_MoveChild0, ++/*493636*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*493639*/ OPC_MoveChild0, ++/*493640*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*493643*/ OPC_Scope, 95|128,1/*223*/, /*->493869*/ // 2 children in Scope ++/*493646*/ OPC_CheckChild0Same, 0, ++/*493648*/ OPC_RecordChild1, // #1 = $b ++/*493649*/ OPC_MoveParent, ++/*493650*/ OPC_MoveChild1, ++/*493651*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*493654*/ OPC_CheckChild0Integer, 7, ++/*493656*/ OPC_CheckChild0Type, MVT::i32, ++/*493658*/ OPC_CheckChild1Integer, 7, ++/*493660*/ OPC_CheckChild1Type, MVT::i32, ++/*493662*/ OPC_CheckChild2Integer, 7, ++/*493664*/ OPC_CheckChild2Type, MVT::i32, ++/*493666*/ OPC_CheckChild3Integer, 7, ++/*493668*/ OPC_CheckChild3Type, MVT::i32, ++/*493670*/ OPC_CheckChild4Integer, 7, ++/*493672*/ OPC_CheckChild4Type, MVT::i32, ++/*493674*/ OPC_MoveChild5, ++/*493675*/ OPC_CheckInteger, 7, ++/*493677*/ OPC_CheckType, MVT::i32, ++/*493679*/ OPC_MoveParent, ++/*493680*/ OPC_MoveChild6, ++/*493681*/ OPC_CheckInteger, 7, ++/*493683*/ OPC_CheckType, MVT::i32, ++/*493685*/ OPC_MoveParent, ++/*493686*/ OPC_MoveChild7, ++/*493687*/ OPC_CheckInteger, 7, ++/*493689*/ OPC_CheckType, MVT::i32, ++/*493691*/ OPC_MoveParent, ++/*493692*/ OPC_MoveChild, 8, ++/*493694*/ OPC_CheckInteger, 7, ++/*493696*/ OPC_CheckType, MVT::i32, ++/*493698*/ OPC_MoveParent, ++/*493699*/ OPC_MoveChild, 9, ++/*493701*/ OPC_CheckInteger, 7, ++/*493703*/ OPC_CheckType, MVT::i32, ++/*493705*/ OPC_MoveParent, ++/*493706*/ OPC_MoveChild, 10, ++/*493708*/ OPC_CheckInteger, 7, ++/*493710*/ OPC_CheckType, MVT::i32, ++/*493712*/ OPC_MoveParent, ++/*493713*/ OPC_MoveChild, 11, ++/*493715*/ OPC_CheckInteger, 7, ++/*493717*/ OPC_CheckType, MVT::i32, ++/*493719*/ OPC_MoveParent, ++/*493720*/ OPC_MoveChild, 12, ++/*493722*/ OPC_CheckInteger, 7, ++/*493724*/ OPC_CheckType, MVT::i32, ++/*493726*/ OPC_MoveParent, ++/*493727*/ OPC_MoveChild, 13, ++/*493729*/ OPC_CheckInteger, 7, ++/*493731*/ OPC_CheckType, MVT::i32, ++/*493733*/ OPC_MoveParent, ++/*493734*/ OPC_MoveChild, 14, ++/*493736*/ OPC_CheckInteger, 7, ++/*493738*/ OPC_CheckType, MVT::i32, ++/*493740*/ OPC_MoveParent, ++/*493741*/ OPC_MoveChild, 15, ++/*493743*/ OPC_CheckInteger, 7, ++/*493745*/ OPC_CheckType, MVT::i32, ++/*493747*/ OPC_MoveParent, ++/*493748*/ OPC_CheckType, MVT::v16i8, ++/*493750*/ OPC_MoveParent, ++/*493751*/ OPC_MoveParent, ++/*493752*/ OPC_CheckChild1Same, 1, ++/*493754*/ OPC_MoveParent, ++/*493755*/ OPC_MoveParent, ++/*493756*/ OPC_MoveChild1, ++/*493757*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*493760*/ OPC_CheckChild0Integer, 1, ++/*493762*/ OPC_CheckChild0Type, MVT::i32, ++/*493764*/ OPC_CheckChild1Integer, 1, ++/*493766*/ OPC_CheckChild1Type, MVT::i32, ++/*493768*/ OPC_CheckChild2Integer, 1, ++/*493770*/ OPC_CheckChild2Type, MVT::i32, ++/*493772*/ OPC_CheckChild3Integer, 1, ++/*493774*/ OPC_CheckChild3Type, MVT::i32, ++/*493776*/ OPC_CheckChild4Integer, 1, ++/*493778*/ OPC_CheckChild4Type, MVT::i32, ++/*493780*/ OPC_MoveChild5, ++/*493781*/ OPC_CheckInteger, 1, ++/*493783*/ OPC_CheckType, MVT::i32, ++/*493785*/ OPC_MoveParent, ++/*493786*/ OPC_MoveChild6, ++/*493787*/ OPC_CheckInteger, 1, ++/*493789*/ OPC_CheckType, MVT::i32, ++/*493791*/ OPC_MoveParent, ++/*493792*/ OPC_MoveChild7, ++/*493793*/ OPC_CheckInteger, 1, ++/*493795*/ OPC_CheckType, MVT::i32, ++/*493797*/ OPC_MoveParent, ++/*493798*/ OPC_MoveChild, 8, ++/*493800*/ OPC_CheckInteger, 1, ++/*493802*/ OPC_CheckType, MVT::i32, ++/*493804*/ OPC_MoveParent, ++/*493805*/ OPC_MoveChild, 9, ++/*493807*/ OPC_CheckInteger, 1, ++/*493809*/ OPC_CheckType, MVT::i32, ++/*493811*/ OPC_MoveParent, ++/*493812*/ OPC_MoveChild, 10, ++/*493814*/ OPC_CheckInteger, 1, ++/*493816*/ OPC_CheckType, MVT::i32, ++/*493818*/ OPC_MoveParent, ++/*493819*/ OPC_MoveChild, 11, ++/*493821*/ OPC_CheckInteger, 1, ++/*493823*/ OPC_CheckType, MVT::i32, ++/*493825*/ OPC_MoveParent, ++/*493826*/ OPC_MoveChild, 12, ++/*493828*/ OPC_CheckInteger, 1, ++/*493830*/ OPC_CheckType, MVT::i32, ++/*493832*/ OPC_MoveParent, ++/*493833*/ OPC_MoveChild, 13, ++/*493835*/ OPC_CheckInteger, 1, ++/*493837*/ OPC_CheckType, MVT::i32, ++/*493839*/ OPC_MoveParent, ++/*493840*/ OPC_MoveChild, 14, ++/*493842*/ OPC_CheckInteger, 1, ++/*493844*/ OPC_CheckType, MVT::i32, ++/*493846*/ OPC_MoveParent, ++/*493847*/ OPC_MoveChild, 15, ++/*493849*/ OPC_CheckInteger, 1, ++/*493851*/ OPC_CheckType, MVT::i32, ++/*493853*/ OPC_MoveParent, ++/*493854*/ OPC_CheckType, MVT::v16i8, ++/*493856*/ OPC_MoveParent, ++/*493857*/ OPC_CheckType, MVT::v16i8, ++/*493859*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*493861*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 181 ++ // Dst: (VAVG_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*493869*/ /*Scope*/ 95|128,1/*223*/, /*->494094*/ ++/*493871*/ OPC_RecordChild0, // #1 = $b ++/*493872*/ OPC_CheckChild1Same, 0, ++/*493874*/ OPC_MoveParent, ++/*493875*/ OPC_MoveChild1, ++/*493876*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*493879*/ OPC_CheckChild0Integer, 7, ++/*493881*/ OPC_CheckChild0Type, MVT::i32, ++/*493883*/ OPC_CheckChild1Integer, 7, ++/*493885*/ OPC_CheckChild1Type, MVT::i32, ++/*493887*/ OPC_CheckChild2Integer, 7, ++/*493889*/ OPC_CheckChild2Type, MVT::i32, ++/*493891*/ OPC_CheckChild3Integer, 7, ++/*493893*/ OPC_CheckChild3Type, MVT::i32, ++/*493895*/ OPC_CheckChild4Integer, 7, ++/*493897*/ OPC_CheckChild4Type, MVT::i32, ++/*493899*/ OPC_MoveChild5, ++/*493900*/ OPC_CheckInteger, 7, ++/*493902*/ OPC_CheckType, MVT::i32, ++/*493904*/ OPC_MoveParent, ++/*493905*/ OPC_MoveChild6, ++/*493906*/ OPC_CheckInteger, 7, ++/*493908*/ OPC_CheckType, MVT::i32, ++/*493910*/ OPC_MoveParent, ++/*493911*/ OPC_MoveChild7, ++/*493912*/ OPC_CheckInteger, 7, ++/*493914*/ OPC_CheckType, MVT::i32, ++/*493916*/ OPC_MoveParent, ++/*493917*/ OPC_MoveChild, 8, ++/*493919*/ OPC_CheckInteger, 7, ++/*493921*/ OPC_CheckType, MVT::i32, ++/*493923*/ OPC_MoveParent, ++/*493924*/ OPC_MoveChild, 9, ++/*493926*/ OPC_CheckInteger, 7, ++/*493928*/ OPC_CheckType, MVT::i32, ++/*493930*/ OPC_MoveParent, ++/*493931*/ OPC_MoveChild, 10, ++/*493933*/ OPC_CheckInteger, 7, ++/*493935*/ OPC_CheckType, MVT::i32, ++/*493937*/ OPC_MoveParent, ++/*493938*/ OPC_MoveChild, 11, ++/*493940*/ OPC_CheckInteger, 7, ++/*493942*/ OPC_CheckType, MVT::i32, ++/*493944*/ OPC_MoveParent, ++/*493945*/ OPC_MoveChild, 12, ++/*493947*/ OPC_CheckInteger, 7, ++/*493949*/ OPC_CheckType, MVT::i32, ++/*493951*/ OPC_MoveParent, ++/*493952*/ OPC_MoveChild, 13, ++/*493954*/ OPC_CheckInteger, 7, ++/*493956*/ OPC_CheckType, MVT::i32, ++/*493958*/ OPC_MoveParent, ++/*493959*/ OPC_MoveChild, 14, ++/*493961*/ OPC_CheckInteger, 7, ++/*493963*/ OPC_CheckType, MVT::i32, ++/*493965*/ OPC_MoveParent, ++/*493966*/ OPC_MoveChild, 15, ++/*493968*/ OPC_CheckInteger, 7, ++/*493970*/ OPC_CheckType, MVT::i32, ++/*493972*/ OPC_MoveParent, ++/*493973*/ OPC_CheckType, MVT::v16i8, ++/*493975*/ OPC_MoveParent, ++/*493976*/ OPC_MoveParent, ++/*493977*/ OPC_CheckChild1Same, 1, ++/*493979*/ OPC_MoveParent, ++/*493980*/ OPC_MoveParent, ++/*493981*/ OPC_MoveChild1, ++/*493982*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*493985*/ OPC_CheckChild0Integer, 1, ++/*493987*/ OPC_CheckChild0Type, MVT::i32, ++/*493989*/ OPC_CheckChild1Integer, 1, ++/*493991*/ OPC_CheckChild1Type, MVT::i32, ++/*493993*/ OPC_CheckChild2Integer, 1, ++/*493995*/ OPC_CheckChild2Type, MVT::i32, ++/*493997*/ OPC_CheckChild3Integer, 1, ++/*493999*/ OPC_CheckChild3Type, MVT::i32, ++/*494001*/ OPC_CheckChild4Integer, 1, ++/*494003*/ OPC_CheckChild4Type, MVT::i32, ++/*494005*/ OPC_MoveChild5, ++/*494006*/ OPC_CheckInteger, 1, ++/*494008*/ OPC_CheckType, MVT::i32, ++/*494010*/ OPC_MoveParent, ++/*494011*/ OPC_MoveChild6, ++/*494012*/ OPC_CheckInteger, 1, ++/*494014*/ OPC_CheckType, MVT::i32, ++/*494016*/ OPC_MoveParent, ++/*494017*/ OPC_MoveChild7, ++/*494018*/ OPC_CheckInteger, 1, ++/*494020*/ OPC_CheckType, MVT::i32, ++/*494022*/ OPC_MoveParent, ++/*494023*/ OPC_MoveChild, 8, ++/*494025*/ OPC_CheckInteger, 1, ++/*494027*/ OPC_CheckType, MVT::i32, ++/*494029*/ OPC_MoveParent, ++/*494030*/ OPC_MoveChild, 9, ++/*494032*/ OPC_CheckInteger, 1, ++/*494034*/ OPC_CheckType, MVT::i32, ++/*494036*/ OPC_MoveParent, ++/*494037*/ OPC_MoveChild, 10, ++/*494039*/ OPC_CheckInteger, 1, ++/*494041*/ OPC_CheckType, MVT::i32, ++/*494043*/ OPC_MoveParent, ++/*494044*/ OPC_MoveChild, 11, ++/*494046*/ OPC_CheckInteger, 1, ++/*494048*/ OPC_CheckType, MVT::i32, ++/*494050*/ OPC_MoveParent, ++/*494051*/ OPC_MoveChild, 12, ++/*494053*/ OPC_CheckInteger, 1, ++/*494055*/ OPC_CheckType, MVT::i32, ++/*494057*/ OPC_MoveParent, ++/*494058*/ OPC_MoveChild, 13, ++/*494060*/ OPC_CheckInteger, 1, ++/*494062*/ OPC_CheckType, MVT::i32, ++/*494064*/ OPC_MoveParent, ++/*494065*/ OPC_MoveChild, 14, ++/*494067*/ OPC_CheckInteger, 1, ++/*494069*/ OPC_CheckType, MVT::i32, ++/*494071*/ OPC_MoveParent, ++/*494072*/ OPC_MoveChild, 15, ++/*494074*/ OPC_CheckInteger, 1, ++/*494076*/ OPC_CheckType, MVT::i32, ++/*494078*/ OPC_MoveParent, ++/*494079*/ OPC_CheckType, MVT::v16i8, ++/*494081*/ OPC_MoveParent, ++/*494082*/ OPC_CheckType, MVT::v16i8, ++/*494084*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*494086*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, (add:{ *:[v16i8] } (srl:{ *:[v16i8] } (add:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$b, LSX128B:{ *:[v16i8] }:$a), (build_vector:{ *:[v16i8] } 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] }, 7:{ *:[i32] })), LSX128B:{ *:[v16i8] }:$b)), (build_vector:{ *:[v16i8] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 181 ++ // Dst: (VAVG_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*494094*/ 0, /*End of Scope*/ ++/*494095*/ 0, /*End of Scope*/ ++/*494096*/ /*Scope*/ 57|128,20/*2617*/, /*->496715*/ ++/*494098*/ OPC_MoveChild0, ++/*494099*/ OPC_SwitchOpcode /*2 cases */, 70|128,16/*2118*/, TARGET_VAL(ISD::ADD),// ->496222 ++/*494104*/ OPC_Scope, 41|128,7/*937*/, /*->495044*/ // 4 children in Scope ++/*494107*/ OPC_RecordChild0, // #0 = $a ++/*494108*/ OPC_Scope, 86|128,3/*470*/, /*->494581*/ // 2 children in Scope ++/*494111*/ OPC_RecordChild1, // #1 = $b ++/*494112*/ OPC_MoveParent, ++/*494113*/ OPC_MoveChild1, ++/*494114*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*494117*/ OPC_MoveChild0, ++/*494118*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*494121*/ OPC_Scope, 105|128,1/*233*/, /*->494357*/ // 2 children in Scope ++/*494124*/ OPC_CheckChild0Same, 1, ++/*494126*/ OPC_CheckChild1Same, 0, ++/*494128*/ OPC_MoveParent, ++/*494129*/ OPC_MoveChild1, ++/*494130*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*494133*/ OPC_CheckChild0Integer, 15, ++/*494135*/ OPC_CheckChild0Type, MVT::i32, ++/*494137*/ OPC_CheckChild1Integer, 15, ++/*494139*/ OPC_CheckChild1Type, MVT::i32, ++/*494141*/ OPC_CheckChild2Integer, 15, ++/*494143*/ OPC_CheckChild2Type, MVT::i32, ++/*494145*/ OPC_CheckChild3Integer, 15, ++/*494147*/ OPC_CheckChild3Type, MVT::i32, ++/*494149*/ OPC_CheckChild4Integer, 15, ++/*494151*/ OPC_CheckChild4Type, MVT::i32, ++/*494153*/ OPC_MoveChild5, ++/*494154*/ OPC_CheckInteger, 15, ++/*494156*/ OPC_CheckType, MVT::i32, ++/*494158*/ OPC_MoveParent, ++/*494159*/ OPC_MoveChild6, ++/*494160*/ OPC_CheckInteger, 15, ++/*494162*/ OPC_CheckType, MVT::i32, ++/*494164*/ OPC_MoveParent, ++/*494165*/ OPC_MoveChild7, ++/*494166*/ OPC_CheckInteger, 15, ++/*494168*/ OPC_CheckType, MVT::i32, ++/*494170*/ OPC_MoveParent, ++/*494171*/ OPC_MoveChild, 8, ++/*494173*/ OPC_CheckInteger, 15, ++/*494175*/ OPC_CheckType, MVT::i32, ++/*494177*/ OPC_MoveParent, ++/*494178*/ OPC_MoveChild, 9, ++/*494180*/ OPC_CheckInteger, 15, ++/*494182*/ OPC_CheckType, MVT::i32, ++/*494184*/ OPC_MoveParent, ++/*494185*/ OPC_MoveChild, 10, ++/*494187*/ OPC_CheckInteger, 15, ++/*494189*/ OPC_CheckType, MVT::i32, ++/*494191*/ OPC_MoveParent, ++/*494192*/ OPC_MoveChild, 11, ++/*494194*/ OPC_CheckInteger, 15, ++/*494196*/ OPC_CheckType, MVT::i32, ++/*494198*/ OPC_MoveParent, ++/*494199*/ OPC_MoveChild, 12, ++/*494201*/ OPC_CheckInteger, 15, ++/*494203*/ OPC_CheckType, MVT::i32, ++/*494205*/ OPC_MoveParent, ++/*494206*/ OPC_MoveChild, 13, ++/*494208*/ OPC_CheckInteger, 15, ++/*494210*/ OPC_CheckType, MVT::i32, ++/*494212*/ OPC_MoveParent, ++/*494213*/ OPC_MoveChild, 14, ++/*494215*/ OPC_CheckInteger, 15, ++/*494217*/ OPC_CheckType, MVT::i32, ++/*494219*/ OPC_MoveParent, ++/*494220*/ OPC_MoveChild, 15, ++/*494222*/ OPC_CheckInteger, 15, ++/*494224*/ OPC_CheckType, MVT::i32, ++/*494226*/ OPC_MoveParent, ++/*494227*/ OPC_CheckType, MVT::v16i16, ++/*494229*/ OPC_MoveParent, ++/*494230*/ OPC_MoveParent, ++/*494231*/ OPC_MoveParent, ++/*494232*/ OPC_MoveChild1, ++/*494233*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*494236*/ OPC_CheckChild0Integer, 1, ++/*494238*/ OPC_CheckChild0Type, MVT::i32, ++/*494240*/ OPC_CheckChild1Integer, 1, ++/*494242*/ OPC_CheckChild1Type, MVT::i32, ++/*494244*/ OPC_CheckChild2Integer, 1, ++/*494246*/ OPC_CheckChild2Type, MVT::i32, ++/*494248*/ OPC_CheckChild3Integer, 1, ++/*494250*/ OPC_CheckChild3Type, MVT::i32, ++/*494252*/ OPC_CheckChild4Integer, 1, ++/*494254*/ OPC_CheckChild4Type, MVT::i32, ++/*494256*/ OPC_MoveChild5, ++/*494257*/ OPC_CheckInteger, 1, ++/*494259*/ OPC_CheckType, MVT::i32, ++/*494261*/ OPC_MoveParent, ++/*494262*/ OPC_MoveChild6, ++/*494263*/ OPC_CheckInteger, 1, ++/*494265*/ OPC_CheckType, MVT::i32, ++/*494267*/ OPC_MoveParent, ++/*494268*/ OPC_MoveChild7, ++/*494269*/ OPC_CheckInteger, 1, ++/*494271*/ OPC_CheckType, MVT::i32, ++/*494273*/ OPC_MoveParent, ++/*494274*/ OPC_MoveChild, 8, ++/*494276*/ OPC_CheckInteger, 1, ++/*494278*/ OPC_CheckType, MVT::i32, ++/*494280*/ OPC_MoveParent, ++/*494281*/ OPC_MoveChild, 9, ++/*494283*/ OPC_CheckInteger, 1, ++/*494285*/ OPC_CheckType, MVT::i32, ++/*494287*/ OPC_MoveParent, ++/*494288*/ OPC_MoveChild, 10, ++/*494290*/ OPC_CheckInteger, 1, ++/*494292*/ OPC_CheckType, MVT::i32, ++/*494294*/ OPC_MoveParent, ++/*494295*/ OPC_MoveChild, 11, ++/*494297*/ OPC_CheckInteger, 1, ++/*494299*/ OPC_CheckType, MVT::i32, ++/*494301*/ OPC_MoveParent, ++/*494302*/ OPC_MoveChild, 12, ++/*494304*/ OPC_CheckInteger, 1, ++/*494306*/ OPC_CheckType, MVT::i32, ++/*494308*/ OPC_MoveParent, ++/*494309*/ OPC_MoveChild, 13, ++/*494311*/ OPC_CheckInteger, 1, ++/*494313*/ OPC_CheckType, MVT::i32, ++/*494315*/ OPC_MoveParent, ++/*494316*/ OPC_MoveChild, 14, ++/*494318*/ OPC_CheckInteger, 1, ++/*494320*/ OPC_CheckType, MVT::i32, ++/*494322*/ OPC_MoveParent, ++/*494323*/ OPC_MoveChild, 15, ++/*494325*/ OPC_CheckInteger, 1, ++/*494327*/ OPC_CheckType, MVT::i32, ++/*494329*/ OPC_MoveParent, ++/*494330*/ OPC_CheckType, MVT::v16i16, ++/*494332*/ OPC_MoveParent, ++/*494333*/ OPC_CheckType, MVT::v16i16, ++/*494335*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*494337*/ OPC_Scope, 8, /*->494347*/ // 2 children in Scope ++/*494339*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 181 ++ // Dst: (XVAVG_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*494347*/ /*Scope*/ 8, /*->494356*/ ++/*494348*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 181 ++ // Dst: (XVAVG_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*494356*/ 0, /*End of Scope*/ ++/*494357*/ /*Scope*/ 93|128,1/*221*/, /*->494580*/ ++/*494359*/ OPC_CheckChild0Same, 0, ++/*494361*/ OPC_CheckChild1Same, 1, ++/*494363*/ OPC_MoveParent, ++/*494364*/ OPC_MoveChild1, ++/*494365*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*494368*/ OPC_CheckChild0Integer, 15, ++/*494370*/ OPC_CheckChild0Type, MVT::i32, ++/*494372*/ OPC_CheckChild1Integer, 15, ++/*494374*/ OPC_CheckChild1Type, MVT::i32, ++/*494376*/ OPC_CheckChild2Integer, 15, ++/*494378*/ OPC_CheckChild2Type, MVT::i32, ++/*494380*/ OPC_CheckChild3Integer, 15, ++/*494382*/ OPC_CheckChild3Type, MVT::i32, ++/*494384*/ OPC_CheckChild4Integer, 15, ++/*494386*/ OPC_CheckChild4Type, MVT::i32, ++/*494388*/ OPC_MoveChild5, ++/*494389*/ OPC_CheckInteger, 15, ++/*494391*/ OPC_CheckType, MVT::i32, ++/*494393*/ OPC_MoveParent, ++/*494394*/ OPC_MoveChild6, ++/*494395*/ OPC_CheckInteger, 15, ++/*494397*/ OPC_CheckType, MVT::i32, ++/*494399*/ OPC_MoveParent, ++/*494400*/ OPC_MoveChild7, ++/*494401*/ OPC_CheckInteger, 15, ++/*494403*/ OPC_CheckType, MVT::i32, ++/*494405*/ OPC_MoveParent, ++/*494406*/ OPC_MoveChild, 8, ++/*494408*/ OPC_CheckInteger, 15, ++/*494410*/ OPC_CheckType, MVT::i32, ++/*494412*/ OPC_MoveParent, ++/*494413*/ OPC_MoveChild, 9, ++/*494415*/ OPC_CheckInteger, 15, ++/*494417*/ OPC_CheckType, MVT::i32, ++/*494419*/ OPC_MoveParent, ++/*494420*/ OPC_MoveChild, 10, ++/*494422*/ OPC_CheckInteger, 15, ++/*494424*/ OPC_CheckType, MVT::i32, ++/*494426*/ OPC_MoveParent, ++/*494427*/ OPC_MoveChild, 11, ++/*494429*/ OPC_CheckInteger, 15, ++/*494431*/ OPC_CheckType, MVT::i32, ++/*494433*/ OPC_MoveParent, ++/*494434*/ OPC_MoveChild, 12, ++/*494436*/ OPC_CheckInteger, 15, ++/*494438*/ OPC_CheckType, MVT::i32, ++/*494440*/ OPC_MoveParent, ++/*494441*/ OPC_MoveChild, 13, ++/*494443*/ OPC_CheckInteger, 15, ++/*494445*/ OPC_CheckType, MVT::i32, ++/*494447*/ OPC_MoveParent, ++/*494448*/ OPC_MoveChild, 14, ++/*494450*/ OPC_CheckInteger, 15, ++/*494452*/ OPC_CheckType, MVT::i32, ++/*494454*/ OPC_MoveParent, ++/*494455*/ OPC_MoveChild, 15, ++/*494457*/ OPC_CheckInteger, 15, ++/*494459*/ OPC_CheckType, MVT::i32, ++/*494461*/ OPC_MoveParent, ++/*494462*/ OPC_CheckType, MVT::v16i16, ++/*494464*/ OPC_MoveParent, ++/*494465*/ OPC_MoveParent, ++/*494466*/ OPC_MoveParent, ++/*494467*/ OPC_MoveChild1, ++/*494468*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*494471*/ OPC_CheckChild0Integer, 1, ++/*494473*/ OPC_CheckChild0Type, MVT::i32, ++/*494475*/ OPC_CheckChild1Integer, 1, ++/*494477*/ OPC_CheckChild1Type, MVT::i32, ++/*494479*/ OPC_CheckChild2Integer, 1, ++/*494481*/ OPC_CheckChild2Type, MVT::i32, ++/*494483*/ OPC_CheckChild3Integer, 1, ++/*494485*/ OPC_CheckChild3Type, MVT::i32, ++/*494487*/ OPC_CheckChild4Integer, 1, ++/*494489*/ OPC_CheckChild4Type, MVT::i32, ++/*494491*/ OPC_MoveChild5, ++/*494492*/ OPC_CheckInteger, 1, ++/*494494*/ OPC_CheckType, MVT::i32, ++/*494496*/ OPC_MoveParent, ++/*494497*/ OPC_MoveChild6, ++/*494498*/ OPC_CheckInteger, 1, ++/*494500*/ OPC_CheckType, MVT::i32, ++/*494502*/ OPC_MoveParent, ++/*494503*/ OPC_MoveChild7, ++/*494504*/ OPC_CheckInteger, 1, ++/*494506*/ OPC_CheckType, MVT::i32, ++/*494508*/ OPC_MoveParent, ++/*494509*/ OPC_MoveChild, 8, ++/*494511*/ OPC_CheckInteger, 1, ++/*494513*/ OPC_CheckType, MVT::i32, ++/*494515*/ OPC_MoveParent, ++/*494516*/ OPC_MoveChild, 9, ++/*494518*/ OPC_CheckInteger, 1, ++/*494520*/ OPC_CheckType, MVT::i32, ++/*494522*/ OPC_MoveParent, ++/*494523*/ OPC_MoveChild, 10, ++/*494525*/ OPC_CheckInteger, 1, ++/*494527*/ OPC_CheckType, MVT::i32, ++/*494529*/ OPC_MoveParent, ++/*494530*/ OPC_MoveChild, 11, ++/*494532*/ OPC_CheckInteger, 1, ++/*494534*/ OPC_CheckType, MVT::i32, ++/*494536*/ OPC_MoveParent, ++/*494537*/ OPC_MoveChild, 12, ++/*494539*/ OPC_CheckInteger, 1, ++/*494541*/ OPC_CheckType, MVT::i32, ++/*494543*/ OPC_MoveParent, ++/*494544*/ OPC_MoveChild, 13, ++/*494546*/ OPC_CheckInteger, 1, ++/*494548*/ OPC_CheckType, MVT::i32, ++/*494550*/ OPC_MoveParent, ++/*494551*/ OPC_MoveChild, 14, ++/*494553*/ OPC_CheckInteger, 1, ++/*494555*/ OPC_CheckType, MVT::i32, ++/*494557*/ OPC_MoveParent, ++/*494558*/ OPC_MoveChild, 15, ++/*494560*/ OPC_CheckInteger, 1, ++/*494562*/ OPC_CheckType, MVT::i32, ++/*494564*/ OPC_MoveParent, ++/*494565*/ OPC_CheckType, MVT::v16i16, ++/*494567*/ OPC_MoveParent, ++/*494568*/ OPC_CheckType, MVT::v16i16, ++/*494570*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*494572*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 181 ++ // Dst: (XVAVG_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*494580*/ 0, /*End of Scope*/ ++/*494581*/ /*Scope*/ 76|128,3/*460*/, /*->495043*/ ++/*494583*/ OPC_MoveChild1, ++/*494584*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*494587*/ OPC_MoveChild0, ++/*494588*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*494591*/ OPC_Scope, 95|128,1/*223*/, /*->494817*/ // 2 children in Scope ++/*494594*/ OPC_CheckChild0Same, 0, ++/*494596*/ OPC_RecordChild1, // #1 = $b ++/*494597*/ OPC_MoveParent, ++/*494598*/ OPC_MoveChild1, ++/*494599*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*494602*/ OPC_CheckChild0Integer, 15, ++/*494604*/ OPC_CheckChild0Type, MVT::i32, ++/*494606*/ OPC_CheckChild1Integer, 15, ++/*494608*/ OPC_CheckChild1Type, MVT::i32, ++/*494610*/ OPC_CheckChild2Integer, 15, ++/*494612*/ OPC_CheckChild2Type, MVT::i32, ++/*494614*/ OPC_CheckChild3Integer, 15, ++/*494616*/ OPC_CheckChild3Type, MVT::i32, ++/*494618*/ OPC_CheckChild4Integer, 15, ++/*494620*/ OPC_CheckChild4Type, MVT::i32, ++/*494622*/ OPC_MoveChild5, ++/*494623*/ OPC_CheckInteger, 15, ++/*494625*/ OPC_CheckType, MVT::i32, ++/*494627*/ OPC_MoveParent, ++/*494628*/ OPC_MoveChild6, ++/*494629*/ OPC_CheckInteger, 15, ++/*494631*/ OPC_CheckType, MVT::i32, ++/*494633*/ OPC_MoveParent, ++/*494634*/ OPC_MoveChild7, ++/*494635*/ OPC_CheckInteger, 15, ++/*494637*/ OPC_CheckType, MVT::i32, ++/*494639*/ OPC_MoveParent, ++/*494640*/ OPC_MoveChild, 8, ++/*494642*/ OPC_CheckInteger, 15, ++/*494644*/ OPC_CheckType, MVT::i32, ++/*494646*/ OPC_MoveParent, ++/*494647*/ OPC_MoveChild, 9, ++/*494649*/ OPC_CheckInteger, 15, ++/*494651*/ OPC_CheckType, MVT::i32, ++/*494653*/ OPC_MoveParent, ++/*494654*/ OPC_MoveChild, 10, ++/*494656*/ OPC_CheckInteger, 15, ++/*494658*/ OPC_CheckType, MVT::i32, ++/*494660*/ OPC_MoveParent, ++/*494661*/ OPC_MoveChild, 11, ++/*494663*/ OPC_CheckInteger, 15, ++/*494665*/ OPC_CheckType, MVT::i32, ++/*494667*/ OPC_MoveParent, ++/*494668*/ OPC_MoveChild, 12, ++/*494670*/ OPC_CheckInteger, 15, ++/*494672*/ OPC_CheckType, MVT::i32, ++/*494674*/ OPC_MoveParent, ++/*494675*/ OPC_MoveChild, 13, ++/*494677*/ OPC_CheckInteger, 15, ++/*494679*/ OPC_CheckType, MVT::i32, ++/*494681*/ OPC_MoveParent, ++/*494682*/ OPC_MoveChild, 14, ++/*494684*/ OPC_CheckInteger, 15, ++/*494686*/ OPC_CheckType, MVT::i32, ++/*494688*/ OPC_MoveParent, ++/*494689*/ OPC_MoveChild, 15, ++/*494691*/ OPC_CheckInteger, 15, ++/*494693*/ OPC_CheckType, MVT::i32, ++/*494695*/ OPC_MoveParent, ++/*494696*/ OPC_CheckType, MVT::v16i16, ++/*494698*/ OPC_MoveParent, ++/*494699*/ OPC_MoveParent, ++/*494700*/ OPC_MoveParent, ++/*494701*/ OPC_CheckChild1Same, 1, ++/*494703*/ OPC_MoveParent, ++/*494704*/ OPC_MoveChild1, ++/*494705*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*494708*/ OPC_CheckChild0Integer, 1, ++/*494710*/ OPC_CheckChild0Type, MVT::i32, ++/*494712*/ OPC_CheckChild1Integer, 1, ++/*494714*/ OPC_CheckChild1Type, MVT::i32, ++/*494716*/ OPC_CheckChild2Integer, 1, ++/*494718*/ OPC_CheckChild2Type, MVT::i32, ++/*494720*/ OPC_CheckChild3Integer, 1, ++/*494722*/ OPC_CheckChild3Type, MVT::i32, ++/*494724*/ OPC_CheckChild4Integer, 1, ++/*494726*/ OPC_CheckChild4Type, MVT::i32, ++/*494728*/ OPC_MoveChild5, ++/*494729*/ OPC_CheckInteger, 1, ++/*494731*/ OPC_CheckType, MVT::i32, ++/*494733*/ OPC_MoveParent, ++/*494734*/ OPC_MoveChild6, ++/*494735*/ OPC_CheckInteger, 1, ++/*494737*/ OPC_CheckType, MVT::i32, ++/*494739*/ OPC_MoveParent, ++/*494740*/ OPC_MoveChild7, ++/*494741*/ OPC_CheckInteger, 1, ++/*494743*/ OPC_CheckType, MVT::i32, ++/*494745*/ OPC_MoveParent, ++/*494746*/ OPC_MoveChild, 8, ++/*494748*/ OPC_CheckInteger, 1, ++/*494750*/ OPC_CheckType, MVT::i32, ++/*494752*/ OPC_MoveParent, ++/*494753*/ OPC_MoveChild, 9, ++/*494755*/ OPC_CheckInteger, 1, ++/*494757*/ OPC_CheckType, MVT::i32, ++/*494759*/ OPC_MoveParent, ++/*494760*/ OPC_MoveChild, 10, ++/*494762*/ OPC_CheckInteger, 1, ++/*494764*/ OPC_CheckType, MVT::i32, ++/*494766*/ OPC_MoveParent, ++/*494767*/ OPC_MoveChild, 11, ++/*494769*/ OPC_CheckInteger, 1, ++/*494771*/ OPC_CheckType, MVT::i32, ++/*494773*/ OPC_MoveParent, ++/*494774*/ OPC_MoveChild, 12, ++/*494776*/ OPC_CheckInteger, 1, ++/*494778*/ OPC_CheckType, MVT::i32, ++/*494780*/ OPC_MoveParent, ++/*494781*/ OPC_MoveChild, 13, ++/*494783*/ OPC_CheckInteger, 1, ++/*494785*/ OPC_CheckType, MVT::i32, ++/*494787*/ OPC_MoveParent, ++/*494788*/ OPC_MoveChild, 14, ++/*494790*/ OPC_CheckInteger, 1, ++/*494792*/ OPC_CheckType, MVT::i32, ++/*494794*/ OPC_MoveParent, ++/*494795*/ OPC_MoveChild, 15, ++/*494797*/ OPC_CheckInteger, 1, ++/*494799*/ OPC_CheckType, MVT::i32, ++/*494801*/ OPC_MoveParent, ++/*494802*/ OPC_CheckType, MVT::v16i16, ++/*494804*/ OPC_MoveParent, ++/*494805*/ OPC_CheckType, MVT::v16i16, ++/*494807*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*494809*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 181 ++ // Dst: (XVAVG_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*494817*/ /*Scope*/ 95|128,1/*223*/, /*->495042*/ ++/*494819*/ OPC_RecordChild0, // #1 = $b ++/*494820*/ OPC_CheckChild1Same, 0, ++/*494822*/ OPC_MoveParent, ++/*494823*/ OPC_MoveChild1, ++/*494824*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*494827*/ OPC_CheckChild0Integer, 15, ++/*494829*/ OPC_CheckChild0Type, MVT::i32, ++/*494831*/ OPC_CheckChild1Integer, 15, ++/*494833*/ OPC_CheckChild1Type, MVT::i32, ++/*494835*/ OPC_CheckChild2Integer, 15, ++/*494837*/ OPC_CheckChild2Type, MVT::i32, ++/*494839*/ OPC_CheckChild3Integer, 15, ++/*494841*/ OPC_CheckChild3Type, MVT::i32, ++/*494843*/ OPC_CheckChild4Integer, 15, ++/*494845*/ OPC_CheckChild4Type, MVT::i32, ++/*494847*/ OPC_MoveChild5, ++/*494848*/ OPC_CheckInteger, 15, ++/*494850*/ OPC_CheckType, MVT::i32, ++/*494852*/ OPC_MoveParent, ++/*494853*/ OPC_MoveChild6, ++/*494854*/ OPC_CheckInteger, 15, ++/*494856*/ OPC_CheckType, MVT::i32, ++/*494858*/ OPC_MoveParent, ++/*494859*/ OPC_MoveChild7, ++/*494860*/ OPC_CheckInteger, 15, ++/*494862*/ OPC_CheckType, MVT::i32, ++/*494864*/ OPC_MoveParent, ++/*494865*/ OPC_MoveChild, 8, ++/*494867*/ OPC_CheckInteger, 15, ++/*494869*/ OPC_CheckType, MVT::i32, ++/*494871*/ OPC_MoveParent, ++/*494872*/ OPC_MoveChild, 9, ++/*494874*/ OPC_CheckInteger, 15, ++/*494876*/ OPC_CheckType, MVT::i32, ++/*494878*/ OPC_MoveParent, ++/*494879*/ OPC_MoveChild, 10, ++/*494881*/ OPC_CheckInteger, 15, ++/*494883*/ OPC_CheckType, MVT::i32, ++/*494885*/ OPC_MoveParent, ++/*494886*/ OPC_MoveChild, 11, ++/*494888*/ OPC_CheckInteger, 15, ++/*494890*/ OPC_CheckType, MVT::i32, ++/*494892*/ OPC_MoveParent, ++/*494893*/ OPC_MoveChild, 12, ++/*494895*/ OPC_CheckInteger, 15, ++/*494897*/ OPC_CheckType, MVT::i32, ++/*494899*/ OPC_MoveParent, ++/*494900*/ OPC_MoveChild, 13, ++/*494902*/ OPC_CheckInteger, 15, ++/*494904*/ OPC_CheckType, MVT::i32, ++/*494906*/ OPC_MoveParent, ++/*494907*/ OPC_MoveChild, 14, ++/*494909*/ OPC_CheckInteger, 15, ++/*494911*/ OPC_CheckType, MVT::i32, ++/*494913*/ OPC_MoveParent, ++/*494914*/ OPC_MoveChild, 15, ++/*494916*/ OPC_CheckInteger, 15, ++/*494918*/ OPC_CheckType, MVT::i32, ++/*494920*/ OPC_MoveParent, ++/*494921*/ OPC_CheckType, MVT::v16i16, ++/*494923*/ OPC_MoveParent, ++/*494924*/ OPC_MoveParent, ++/*494925*/ OPC_MoveParent, ++/*494926*/ OPC_CheckChild1Same, 1, ++/*494928*/ OPC_MoveParent, ++/*494929*/ OPC_MoveChild1, ++/*494930*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*494933*/ OPC_CheckChild0Integer, 1, ++/*494935*/ OPC_CheckChild0Type, MVT::i32, ++/*494937*/ OPC_CheckChild1Integer, 1, ++/*494939*/ OPC_CheckChild1Type, MVT::i32, ++/*494941*/ OPC_CheckChild2Integer, 1, ++/*494943*/ OPC_CheckChild2Type, MVT::i32, ++/*494945*/ OPC_CheckChild3Integer, 1, ++/*494947*/ OPC_CheckChild3Type, MVT::i32, ++/*494949*/ OPC_CheckChild4Integer, 1, ++/*494951*/ OPC_CheckChild4Type, MVT::i32, ++/*494953*/ OPC_MoveChild5, ++/*494954*/ OPC_CheckInteger, 1, ++/*494956*/ OPC_CheckType, MVT::i32, ++/*494958*/ OPC_MoveParent, ++/*494959*/ OPC_MoveChild6, ++/*494960*/ OPC_CheckInteger, 1, ++/*494962*/ OPC_CheckType, MVT::i32, ++/*494964*/ OPC_MoveParent, ++/*494965*/ OPC_MoveChild7, ++/*494966*/ OPC_CheckInteger, 1, ++/*494968*/ OPC_CheckType, MVT::i32, ++/*494970*/ OPC_MoveParent, ++/*494971*/ OPC_MoveChild, 8, ++/*494973*/ OPC_CheckInteger, 1, ++/*494975*/ OPC_CheckType, MVT::i32, ++/*494977*/ OPC_MoveParent, ++/*494978*/ OPC_MoveChild, 9, ++/*494980*/ OPC_CheckInteger, 1, ++/*494982*/ OPC_CheckType, MVT::i32, ++/*494984*/ OPC_MoveParent, ++/*494985*/ OPC_MoveChild, 10, ++/*494987*/ OPC_CheckInteger, 1, ++/*494989*/ OPC_CheckType, MVT::i32, ++/*494991*/ OPC_MoveParent, ++/*494992*/ OPC_MoveChild, 11, ++/*494994*/ OPC_CheckInteger, 1, ++/*494996*/ OPC_CheckType, MVT::i32, ++/*494998*/ OPC_MoveParent, ++/*494999*/ OPC_MoveChild, 12, ++/*495001*/ OPC_CheckInteger, 1, ++/*495003*/ OPC_CheckType, MVT::i32, ++/*495005*/ OPC_MoveParent, ++/*495006*/ OPC_MoveChild, 13, ++/*495008*/ OPC_CheckInteger, 1, ++/*495010*/ OPC_CheckType, MVT::i32, ++/*495012*/ OPC_MoveParent, ++/*495013*/ OPC_MoveChild, 14, ++/*495015*/ OPC_CheckInteger, 1, ++/*495017*/ OPC_CheckType, MVT::i32, ++/*495019*/ OPC_MoveParent, ++/*495020*/ OPC_MoveChild, 15, ++/*495022*/ OPC_CheckInteger, 1, ++/*495024*/ OPC_CheckType, MVT::i32, ++/*495026*/ OPC_MoveParent, ++/*495027*/ OPC_CheckType, MVT::v16i16, ++/*495029*/ OPC_MoveParent, ++/*495030*/ OPC_CheckType, MVT::v16i16, ++/*495032*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*495034*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 181 ++ // Dst: (XVAVG_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*495042*/ 0, /*End of Scope*/ ++/*495043*/ 0, /*End of Scope*/ ++/*495044*/ /*Scope*/ 99|128,2/*355*/, /*->495401*/ ++/*495046*/ OPC_MoveChild0, ++/*495047*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*495050*/ OPC_MoveChild0, ++/*495051*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*495054*/ OPC_RecordChild0, // #0 = $a ++/*495055*/ OPC_RecordChild1, // #1 = $b ++/*495056*/ OPC_MoveParent, ++/*495057*/ OPC_MoveChild1, ++/*495058*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*495061*/ OPC_CheckChild0Integer, 15, ++/*495063*/ OPC_CheckChild0Type, MVT::i32, ++/*495065*/ OPC_CheckChild1Integer, 15, ++/*495067*/ OPC_CheckChild1Type, MVT::i32, ++/*495069*/ OPC_CheckChild2Integer, 15, ++/*495071*/ OPC_CheckChild2Type, MVT::i32, ++/*495073*/ OPC_CheckChild3Integer, 15, ++/*495075*/ OPC_CheckChild3Type, MVT::i32, ++/*495077*/ OPC_CheckChild4Integer, 15, ++/*495079*/ OPC_CheckChild4Type, MVT::i32, ++/*495081*/ OPC_MoveChild5, ++/*495082*/ OPC_CheckInteger, 15, ++/*495084*/ OPC_CheckType, MVT::i32, ++/*495086*/ OPC_MoveParent, ++/*495087*/ OPC_MoveChild6, ++/*495088*/ OPC_CheckInteger, 15, ++/*495090*/ OPC_CheckType, MVT::i32, ++/*495092*/ OPC_MoveParent, ++/*495093*/ OPC_MoveChild7, ++/*495094*/ OPC_CheckInteger, 15, ++/*495096*/ OPC_CheckType, MVT::i32, ++/*495098*/ OPC_MoveParent, ++/*495099*/ OPC_MoveChild, 8, ++/*495101*/ OPC_CheckInteger, 15, ++/*495103*/ OPC_CheckType, MVT::i32, ++/*495105*/ OPC_MoveParent, ++/*495106*/ OPC_MoveChild, 9, ++/*495108*/ OPC_CheckInteger, 15, ++/*495110*/ OPC_CheckType, MVT::i32, ++/*495112*/ OPC_MoveParent, ++/*495113*/ OPC_MoveChild, 10, ++/*495115*/ OPC_CheckInteger, 15, ++/*495117*/ OPC_CheckType, MVT::i32, ++/*495119*/ OPC_MoveParent, ++/*495120*/ OPC_MoveChild, 11, ++/*495122*/ OPC_CheckInteger, 15, ++/*495124*/ OPC_CheckType, MVT::i32, ++/*495126*/ OPC_MoveParent, ++/*495127*/ OPC_MoveChild, 12, ++/*495129*/ OPC_CheckInteger, 15, ++/*495131*/ OPC_CheckType, MVT::i32, ++/*495133*/ OPC_MoveParent, ++/*495134*/ OPC_MoveChild, 13, ++/*495136*/ OPC_CheckInteger, 15, ++/*495138*/ OPC_CheckType, MVT::i32, ++/*495140*/ OPC_MoveParent, ++/*495141*/ OPC_MoveChild, 14, ++/*495143*/ OPC_CheckInteger, 15, ++/*495145*/ OPC_CheckType, MVT::i32, ++/*495147*/ OPC_MoveParent, ++/*495148*/ OPC_MoveChild, 15, ++/*495150*/ OPC_CheckInteger, 15, ++/*495152*/ OPC_CheckType, MVT::i32, ++/*495154*/ OPC_MoveParent, ++/*495155*/ OPC_CheckType, MVT::v16i16, ++/*495157*/ OPC_MoveParent, ++/*495158*/ OPC_MoveParent, ++/*495159*/ OPC_Scope, 119, /*->495280*/ // 2 children in Scope ++/*495161*/ OPC_CheckChild1Same, 0, ++/*495163*/ OPC_MoveParent, ++/*495164*/ OPC_CheckChild1Same, 1, ++/*495166*/ OPC_MoveParent, ++/*495167*/ OPC_MoveChild1, ++/*495168*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*495171*/ OPC_CheckChild0Integer, 1, ++/*495173*/ OPC_CheckChild0Type, MVT::i32, ++/*495175*/ OPC_CheckChild1Integer, 1, ++/*495177*/ OPC_CheckChild1Type, MVT::i32, ++/*495179*/ OPC_CheckChild2Integer, 1, ++/*495181*/ OPC_CheckChild2Type, MVT::i32, ++/*495183*/ OPC_CheckChild3Integer, 1, ++/*495185*/ OPC_CheckChild3Type, MVT::i32, ++/*495187*/ OPC_CheckChild4Integer, 1, ++/*495189*/ OPC_CheckChild4Type, MVT::i32, ++/*495191*/ OPC_MoveChild5, ++/*495192*/ OPC_CheckInteger, 1, ++/*495194*/ OPC_CheckType, MVT::i32, ++/*495196*/ OPC_MoveParent, ++/*495197*/ OPC_MoveChild6, ++/*495198*/ OPC_CheckInteger, 1, ++/*495200*/ OPC_CheckType, MVT::i32, ++/*495202*/ OPC_MoveParent, ++/*495203*/ OPC_MoveChild7, ++/*495204*/ OPC_CheckInteger, 1, ++/*495206*/ OPC_CheckType, MVT::i32, ++/*495208*/ OPC_MoveParent, ++/*495209*/ OPC_MoveChild, 8, ++/*495211*/ OPC_CheckInteger, 1, ++/*495213*/ OPC_CheckType, MVT::i32, ++/*495215*/ OPC_MoveParent, ++/*495216*/ OPC_MoveChild, 9, ++/*495218*/ OPC_CheckInteger, 1, ++/*495220*/ OPC_CheckType, MVT::i32, ++/*495222*/ OPC_MoveParent, ++/*495223*/ OPC_MoveChild, 10, ++/*495225*/ OPC_CheckInteger, 1, ++/*495227*/ OPC_CheckType, MVT::i32, ++/*495229*/ OPC_MoveParent, ++/*495230*/ OPC_MoveChild, 11, ++/*495232*/ OPC_CheckInteger, 1, ++/*495234*/ OPC_CheckType, MVT::i32, ++/*495236*/ OPC_MoveParent, ++/*495237*/ OPC_MoveChild, 12, ++/*495239*/ OPC_CheckInteger, 1, ++/*495241*/ OPC_CheckType, MVT::i32, ++/*495243*/ OPC_MoveParent, ++/*495244*/ OPC_MoveChild, 13, ++/*495246*/ OPC_CheckInteger, 1, ++/*495248*/ OPC_CheckType, MVT::i32, ++/*495250*/ OPC_MoveParent, ++/*495251*/ OPC_MoveChild, 14, ++/*495253*/ OPC_CheckInteger, 1, ++/*495255*/ OPC_CheckType, MVT::i32, ++/*495257*/ OPC_MoveParent, ++/*495258*/ OPC_MoveChild, 15, ++/*495260*/ OPC_CheckInteger, 1, ++/*495262*/ OPC_CheckType, MVT::i32, ++/*495264*/ OPC_MoveParent, ++/*495265*/ OPC_CheckType, MVT::v16i16, ++/*495267*/ OPC_MoveParent, ++/*495268*/ OPC_CheckType, MVT::v16i16, ++/*495270*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*495272*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$a), LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 181 ++ // Dst: (XVAVG_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*495280*/ /*Scope*/ 119, /*->495400*/ ++/*495281*/ OPC_CheckChild1Same, 1, ++/*495283*/ OPC_MoveParent, ++/*495284*/ OPC_CheckChild1Same, 0, ++/*495286*/ OPC_MoveParent, ++/*495287*/ OPC_MoveChild1, ++/*495288*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*495291*/ OPC_CheckChild0Integer, 1, ++/*495293*/ OPC_CheckChild0Type, MVT::i32, ++/*495295*/ OPC_CheckChild1Integer, 1, ++/*495297*/ OPC_CheckChild1Type, MVT::i32, ++/*495299*/ OPC_CheckChild2Integer, 1, ++/*495301*/ OPC_CheckChild2Type, MVT::i32, ++/*495303*/ OPC_CheckChild3Integer, 1, ++/*495305*/ OPC_CheckChild3Type, MVT::i32, ++/*495307*/ OPC_CheckChild4Integer, 1, ++/*495309*/ OPC_CheckChild4Type, MVT::i32, ++/*495311*/ OPC_MoveChild5, ++/*495312*/ OPC_CheckInteger, 1, ++/*495314*/ OPC_CheckType, MVT::i32, ++/*495316*/ OPC_MoveParent, ++/*495317*/ OPC_MoveChild6, ++/*495318*/ OPC_CheckInteger, 1, ++/*495320*/ OPC_CheckType, MVT::i32, ++/*495322*/ OPC_MoveParent, ++/*495323*/ OPC_MoveChild7, ++/*495324*/ OPC_CheckInteger, 1, ++/*495326*/ OPC_CheckType, MVT::i32, ++/*495328*/ OPC_MoveParent, ++/*495329*/ OPC_MoveChild, 8, ++/*495331*/ OPC_CheckInteger, 1, ++/*495333*/ OPC_CheckType, MVT::i32, ++/*495335*/ OPC_MoveParent, ++/*495336*/ OPC_MoveChild, 9, ++/*495338*/ OPC_CheckInteger, 1, ++/*495340*/ OPC_CheckType, MVT::i32, ++/*495342*/ OPC_MoveParent, ++/*495343*/ OPC_MoveChild, 10, ++/*495345*/ OPC_CheckInteger, 1, ++/*495347*/ OPC_CheckType, MVT::i32, ++/*495349*/ OPC_MoveParent, ++/*495350*/ OPC_MoveChild, 11, ++/*495352*/ OPC_CheckInteger, 1, ++/*495354*/ OPC_CheckType, MVT::i32, ++/*495356*/ OPC_MoveParent, ++/*495357*/ OPC_MoveChild, 12, ++/*495359*/ OPC_CheckInteger, 1, ++/*495361*/ OPC_CheckType, MVT::i32, ++/*495363*/ OPC_MoveParent, ++/*495364*/ OPC_MoveChild, 13, ++/*495366*/ OPC_CheckInteger, 1, ++/*495368*/ OPC_CheckType, MVT::i32, ++/*495370*/ OPC_MoveParent, ++/*495371*/ OPC_MoveChild, 14, ++/*495373*/ OPC_CheckInteger, 1, ++/*495375*/ OPC_CheckType, MVT::i32, ++/*495377*/ OPC_MoveParent, ++/*495378*/ OPC_MoveChild, 15, ++/*495380*/ OPC_CheckInteger, 1, ++/*495382*/ OPC_CheckType, MVT::i32, ++/*495384*/ OPC_MoveParent, ++/*495385*/ OPC_CheckType, MVT::v16i16, ++/*495387*/ OPC_MoveParent, ++/*495388*/ OPC_CheckType, MVT::v16i16, ++/*495390*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*495392*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$a), LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 181 ++ // Dst: (XVAVG_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*495400*/ 0, /*End of Scope*/ ++/*495401*/ /*Scope*/ 77|128,3/*461*/, /*->495864*/ ++/*495403*/ OPC_RecordChild0, // #0 = $b ++/*495404*/ OPC_MoveChild1, ++/*495405*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*495408*/ OPC_MoveChild0, ++/*495409*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*495412*/ OPC_Scope, 95|128,1/*223*/, /*->495638*/ // 2 children in Scope ++/*495415*/ OPC_RecordChild0, // #1 = $a ++/*495416*/ OPC_CheckChild1Same, 0, ++/*495418*/ OPC_MoveParent, ++/*495419*/ OPC_MoveChild1, ++/*495420*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*495423*/ OPC_CheckChild0Integer, 15, ++/*495425*/ OPC_CheckChild0Type, MVT::i32, ++/*495427*/ OPC_CheckChild1Integer, 15, ++/*495429*/ OPC_CheckChild1Type, MVT::i32, ++/*495431*/ OPC_CheckChild2Integer, 15, ++/*495433*/ OPC_CheckChild2Type, MVT::i32, ++/*495435*/ OPC_CheckChild3Integer, 15, ++/*495437*/ OPC_CheckChild3Type, MVT::i32, ++/*495439*/ OPC_CheckChild4Integer, 15, ++/*495441*/ OPC_CheckChild4Type, MVT::i32, ++/*495443*/ OPC_MoveChild5, ++/*495444*/ OPC_CheckInteger, 15, ++/*495446*/ OPC_CheckType, MVT::i32, ++/*495448*/ OPC_MoveParent, ++/*495449*/ OPC_MoveChild6, ++/*495450*/ OPC_CheckInteger, 15, ++/*495452*/ OPC_CheckType, MVT::i32, ++/*495454*/ OPC_MoveParent, ++/*495455*/ OPC_MoveChild7, ++/*495456*/ OPC_CheckInteger, 15, ++/*495458*/ OPC_CheckType, MVT::i32, ++/*495460*/ OPC_MoveParent, ++/*495461*/ OPC_MoveChild, 8, ++/*495463*/ OPC_CheckInteger, 15, ++/*495465*/ OPC_CheckType, MVT::i32, ++/*495467*/ OPC_MoveParent, ++/*495468*/ OPC_MoveChild, 9, ++/*495470*/ OPC_CheckInteger, 15, ++/*495472*/ OPC_CheckType, MVT::i32, ++/*495474*/ OPC_MoveParent, ++/*495475*/ OPC_MoveChild, 10, ++/*495477*/ OPC_CheckInteger, 15, ++/*495479*/ OPC_CheckType, MVT::i32, ++/*495481*/ OPC_MoveParent, ++/*495482*/ OPC_MoveChild, 11, ++/*495484*/ OPC_CheckInteger, 15, ++/*495486*/ OPC_CheckType, MVT::i32, ++/*495488*/ OPC_MoveParent, ++/*495489*/ OPC_MoveChild, 12, ++/*495491*/ OPC_CheckInteger, 15, ++/*495493*/ OPC_CheckType, MVT::i32, ++/*495495*/ OPC_MoveParent, ++/*495496*/ OPC_MoveChild, 13, ++/*495498*/ OPC_CheckInteger, 15, ++/*495500*/ OPC_CheckType, MVT::i32, ++/*495502*/ OPC_MoveParent, ++/*495503*/ OPC_MoveChild, 14, ++/*495505*/ OPC_CheckInteger, 15, ++/*495507*/ OPC_CheckType, MVT::i32, ++/*495509*/ OPC_MoveParent, ++/*495510*/ OPC_MoveChild, 15, ++/*495512*/ OPC_CheckInteger, 15, ++/*495514*/ OPC_CheckType, MVT::i32, ++/*495516*/ OPC_MoveParent, ++/*495517*/ OPC_CheckType, MVT::v16i16, ++/*495519*/ OPC_MoveParent, ++/*495520*/ OPC_MoveParent, ++/*495521*/ OPC_MoveParent, ++/*495522*/ OPC_CheckChild1Same, 1, ++/*495524*/ OPC_MoveParent, ++/*495525*/ OPC_MoveChild1, ++/*495526*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*495529*/ OPC_CheckChild0Integer, 1, ++/*495531*/ OPC_CheckChild0Type, MVT::i32, ++/*495533*/ OPC_CheckChild1Integer, 1, ++/*495535*/ OPC_CheckChild1Type, MVT::i32, ++/*495537*/ OPC_CheckChild2Integer, 1, ++/*495539*/ OPC_CheckChild2Type, MVT::i32, ++/*495541*/ OPC_CheckChild3Integer, 1, ++/*495543*/ OPC_CheckChild3Type, MVT::i32, ++/*495545*/ OPC_CheckChild4Integer, 1, ++/*495547*/ OPC_CheckChild4Type, MVT::i32, ++/*495549*/ OPC_MoveChild5, ++/*495550*/ OPC_CheckInteger, 1, ++/*495552*/ OPC_CheckType, MVT::i32, ++/*495554*/ OPC_MoveParent, ++/*495555*/ OPC_MoveChild6, ++/*495556*/ OPC_CheckInteger, 1, ++/*495558*/ OPC_CheckType, MVT::i32, ++/*495560*/ OPC_MoveParent, ++/*495561*/ OPC_MoveChild7, ++/*495562*/ OPC_CheckInteger, 1, ++/*495564*/ OPC_CheckType, MVT::i32, ++/*495566*/ OPC_MoveParent, ++/*495567*/ OPC_MoveChild, 8, ++/*495569*/ OPC_CheckInteger, 1, ++/*495571*/ OPC_CheckType, MVT::i32, ++/*495573*/ OPC_MoveParent, ++/*495574*/ OPC_MoveChild, 9, ++/*495576*/ OPC_CheckInteger, 1, ++/*495578*/ OPC_CheckType, MVT::i32, ++/*495580*/ OPC_MoveParent, ++/*495581*/ OPC_MoveChild, 10, ++/*495583*/ OPC_CheckInteger, 1, ++/*495585*/ OPC_CheckType, MVT::i32, ++/*495587*/ OPC_MoveParent, ++/*495588*/ OPC_MoveChild, 11, ++/*495590*/ OPC_CheckInteger, 1, ++/*495592*/ OPC_CheckType, MVT::i32, ++/*495594*/ OPC_MoveParent, ++/*495595*/ OPC_MoveChild, 12, ++/*495597*/ OPC_CheckInteger, 1, ++/*495599*/ OPC_CheckType, MVT::i32, ++/*495601*/ OPC_MoveParent, ++/*495602*/ OPC_MoveChild, 13, ++/*495604*/ OPC_CheckInteger, 1, ++/*495606*/ OPC_CheckType, MVT::i32, ++/*495608*/ OPC_MoveParent, ++/*495609*/ OPC_MoveChild, 14, ++/*495611*/ OPC_CheckInteger, 1, ++/*495613*/ OPC_CheckType, MVT::i32, ++/*495615*/ OPC_MoveParent, ++/*495616*/ OPC_MoveChild, 15, ++/*495618*/ OPC_CheckInteger, 1, ++/*495620*/ OPC_CheckType, MVT::i32, ++/*495622*/ OPC_MoveParent, ++/*495623*/ OPC_CheckType, MVT::v16i16, ++/*495625*/ OPC_MoveParent, ++/*495626*/ OPC_CheckType, MVT::v16i16, ++/*495628*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*495630*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 181 ++ // Dst: (XVAVG_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*495638*/ /*Scope*/ 95|128,1/*223*/, /*->495863*/ ++/*495640*/ OPC_CheckChild0Same, 0, ++/*495642*/ OPC_RecordChild1, // #1 = $a ++/*495643*/ OPC_MoveParent, ++/*495644*/ OPC_MoveChild1, ++/*495645*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*495648*/ OPC_CheckChild0Integer, 15, ++/*495650*/ OPC_CheckChild0Type, MVT::i32, ++/*495652*/ OPC_CheckChild1Integer, 15, ++/*495654*/ OPC_CheckChild1Type, MVT::i32, ++/*495656*/ OPC_CheckChild2Integer, 15, ++/*495658*/ OPC_CheckChild2Type, MVT::i32, ++/*495660*/ OPC_CheckChild3Integer, 15, ++/*495662*/ OPC_CheckChild3Type, MVT::i32, ++/*495664*/ OPC_CheckChild4Integer, 15, ++/*495666*/ OPC_CheckChild4Type, MVT::i32, ++/*495668*/ OPC_MoveChild5, ++/*495669*/ OPC_CheckInteger, 15, ++/*495671*/ OPC_CheckType, MVT::i32, ++/*495673*/ OPC_MoveParent, ++/*495674*/ OPC_MoveChild6, ++/*495675*/ OPC_CheckInteger, 15, ++/*495677*/ OPC_CheckType, MVT::i32, ++/*495679*/ OPC_MoveParent, ++/*495680*/ OPC_MoveChild7, ++/*495681*/ OPC_CheckInteger, 15, ++/*495683*/ OPC_CheckType, MVT::i32, ++/*495685*/ OPC_MoveParent, ++/*495686*/ OPC_MoveChild, 8, ++/*495688*/ OPC_CheckInteger, 15, ++/*495690*/ OPC_CheckType, MVT::i32, ++/*495692*/ OPC_MoveParent, ++/*495693*/ OPC_MoveChild, 9, ++/*495695*/ OPC_CheckInteger, 15, ++/*495697*/ OPC_CheckType, MVT::i32, ++/*495699*/ OPC_MoveParent, ++/*495700*/ OPC_MoveChild, 10, ++/*495702*/ OPC_CheckInteger, 15, ++/*495704*/ OPC_CheckType, MVT::i32, ++/*495706*/ OPC_MoveParent, ++/*495707*/ OPC_MoveChild, 11, ++/*495709*/ OPC_CheckInteger, 15, ++/*495711*/ OPC_CheckType, MVT::i32, ++/*495713*/ OPC_MoveParent, ++/*495714*/ OPC_MoveChild, 12, ++/*495716*/ OPC_CheckInteger, 15, ++/*495718*/ OPC_CheckType, MVT::i32, ++/*495720*/ OPC_MoveParent, ++/*495721*/ OPC_MoveChild, 13, ++/*495723*/ OPC_CheckInteger, 15, ++/*495725*/ OPC_CheckType, MVT::i32, ++/*495727*/ OPC_MoveParent, ++/*495728*/ OPC_MoveChild, 14, ++/*495730*/ OPC_CheckInteger, 15, ++/*495732*/ OPC_CheckType, MVT::i32, ++/*495734*/ OPC_MoveParent, ++/*495735*/ OPC_MoveChild, 15, ++/*495737*/ OPC_CheckInteger, 15, ++/*495739*/ OPC_CheckType, MVT::i32, ++/*495741*/ OPC_MoveParent, ++/*495742*/ OPC_CheckType, MVT::v16i16, ++/*495744*/ OPC_MoveParent, ++/*495745*/ OPC_MoveParent, ++/*495746*/ OPC_MoveParent, ++/*495747*/ OPC_CheckChild1Same, 1, ++/*495749*/ OPC_MoveParent, ++/*495750*/ OPC_MoveChild1, ++/*495751*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*495754*/ OPC_CheckChild0Integer, 1, ++/*495756*/ OPC_CheckChild0Type, MVT::i32, ++/*495758*/ OPC_CheckChild1Integer, 1, ++/*495760*/ OPC_CheckChild1Type, MVT::i32, ++/*495762*/ OPC_CheckChild2Integer, 1, ++/*495764*/ OPC_CheckChild2Type, MVT::i32, ++/*495766*/ OPC_CheckChild3Integer, 1, ++/*495768*/ OPC_CheckChild3Type, MVT::i32, ++/*495770*/ OPC_CheckChild4Integer, 1, ++/*495772*/ OPC_CheckChild4Type, MVT::i32, ++/*495774*/ OPC_MoveChild5, ++/*495775*/ OPC_CheckInteger, 1, ++/*495777*/ OPC_CheckType, MVT::i32, ++/*495779*/ OPC_MoveParent, ++/*495780*/ OPC_MoveChild6, ++/*495781*/ OPC_CheckInteger, 1, ++/*495783*/ OPC_CheckType, MVT::i32, ++/*495785*/ OPC_MoveParent, ++/*495786*/ OPC_MoveChild7, ++/*495787*/ OPC_CheckInteger, 1, ++/*495789*/ OPC_CheckType, MVT::i32, ++/*495791*/ OPC_MoveParent, ++/*495792*/ OPC_MoveChild, 8, ++/*495794*/ OPC_CheckInteger, 1, ++/*495796*/ OPC_CheckType, MVT::i32, ++/*495798*/ OPC_MoveParent, ++/*495799*/ OPC_MoveChild, 9, ++/*495801*/ OPC_CheckInteger, 1, ++/*495803*/ OPC_CheckType, MVT::i32, ++/*495805*/ OPC_MoveParent, ++/*495806*/ OPC_MoveChild, 10, ++/*495808*/ OPC_CheckInteger, 1, ++/*495810*/ OPC_CheckType, MVT::i32, ++/*495812*/ OPC_MoveParent, ++/*495813*/ OPC_MoveChild, 11, ++/*495815*/ OPC_CheckInteger, 1, ++/*495817*/ OPC_CheckType, MVT::i32, ++/*495819*/ OPC_MoveParent, ++/*495820*/ OPC_MoveChild, 12, ++/*495822*/ OPC_CheckInteger, 1, ++/*495824*/ OPC_CheckType, MVT::i32, ++/*495826*/ OPC_MoveParent, ++/*495827*/ OPC_MoveChild, 13, ++/*495829*/ OPC_CheckInteger, 1, ++/*495831*/ OPC_CheckType, MVT::i32, ++/*495833*/ OPC_MoveParent, ++/*495834*/ OPC_MoveChild, 14, ++/*495836*/ OPC_CheckInteger, 1, ++/*495838*/ OPC_CheckType, MVT::i32, ++/*495840*/ OPC_MoveParent, ++/*495841*/ OPC_MoveChild, 15, ++/*495843*/ OPC_CheckInteger, 1, ++/*495845*/ OPC_CheckType, MVT::i32, ++/*495847*/ OPC_MoveParent, ++/*495848*/ OPC_CheckType, MVT::v16i16, ++/*495850*/ OPC_MoveParent, ++/*495851*/ OPC_CheckType, MVT::v16i16, ++/*495853*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*495855*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 181 ++ // Dst: (XVAVG_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*495863*/ 0, /*End of Scope*/ ++/*495864*/ /*Scope*/ 99|128,2/*355*/, /*->496221*/ ++/*495866*/ OPC_MoveChild0, ++/*495867*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*495870*/ OPC_MoveChild0, ++/*495871*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*495874*/ OPC_RecordChild0, // #0 = $a ++/*495875*/ OPC_RecordChild1, // #1 = $b ++/*495876*/ OPC_MoveParent, ++/*495877*/ OPC_MoveChild1, ++/*495878*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*495881*/ OPC_CheckChild0Integer, 15, ++/*495883*/ OPC_CheckChild0Type, MVT::i32, ++/*495885*/ OPC_CheckChild1Integer, 15, ++/*495887*/ OPC_CheckChild1Type, MVT::i32, ++/*495889*/ OPC_CheckChild2Integer, 15, ++/*495891*/ OPC_CheckChild2Type, MVT::i32, ++/*495893*/ OPC_CheckChild3Integer, 15, ++/*495895*/ OPC_CheckChild3Type, MVT::i32, ++/*495897*/ OPC_CheckChild4Integer, 15, ++/*495899*/ OPC_CheckChild4Type, MVT::i32, ++/*495901*/ OPC_MoveChild5, ++/*495902*/ OPC_CheckInteger, 15, ++/*495904*/ OPC_CheckType, MVT::i32, ++/*495906*/ OPC_MoveParent, ++/*495907*/ OPC_MoveChild6, ++/*495908*/ OPC_CheckInteger, 15, ++/*495910*/ OPC_CheckType, MVT::i32, ++/*495912*/ OPC_MoveParent, ++/*495913*/ OPC_MoveChild7, ++/*495914*/ OPC_CheckInteger, 15, ++/*495916*/ OPC_CheckType, MVT::i32, ++/*495918*/ OPC_MoveParent, ++/*495919*/ OPC_MoveChild, 8, ++/*495921*/ OPC_CheckInteger, 15, ++/*495923*/ OPC_CheckType, MVT::i32, ++/*495925*/ OPC_MoveParent, ++/*495926*/ OPC_MoveChild, 9, ++/*495928*/ OPC_CheckInteger, 15, ++/*495930*/ OPC_CheckType, MVT::i32, ++/*495932*/ OPC_MoveParent, ++/*495933*/ OPC_MoveChild, 10, ++/*495935*/ OPC_CheckInteger, 15, ++/*495937*/ OPC_CheckType, MVT::i32, ++/*495939*/ OPC_MoveParent, ++/*495940*/ OPC_MoveChild, 11, ++/*495942*/ OPC_CheckInteger, 15, ++/*495944*/ OPC_CheckType, MVT::i32, ++/*495946*/ OPC_MoveParent, ++/*495947*/ OPC_MoveChild, 12, ++/*495949*/ OPC_CheckInteger, 15, ++/*495951*/ OPC_CheckType, MVT::i32, ++/*495953*/ OPC_MoveParent, ++/*495954*/ OPC_MoveChild, 13, ++/*495956*/ OPC_CheckInteger, 15, ++/*495958*/ OPC_CheckType, MVT::i32, ++/*495960*/ OPC_MoveParent, ++/*495961*/ OPC_MoveChild, 14, ++/*495963*/ OPC_CheckInteger, 15, ++/*495965*/ OPC_CheckType, MVT::i32, ++/*495967*/ OPC_MoveParent, ++/*495968*/ OPC_MoveChild, 15, ++/*495970*/ OPC_CheckInteger, 15, ++/*495972*/ OPC_CheckType, MVT::i32, ++/*495974*/ OPC_MoveParent, ++/*495975*/ OPC_CheckType, MVT::v16i16, ++/*495977*/ OPC_MoveParent, ++/*495978*/ OPC_MoveParent, ++/*495979*/ OPC_Scope, 119, /*->496100*/ // 2 children in Scope ++/*495981*/ OPC_CheckChild1Same, 1, ++/*495983*/ OPC_MoveParent, ++/*495984*/ OPC_CheckChild1Same, 0, ++/*495986*/ OPC_MoveParent, ++/*495987*/ OPC_MoveChild1, ++/*495988*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*495991*/ OPC_CheckChild0Integer, 1, ++/*495993*/ OPC_CheckChild0Type, MVT::i32, ++/*495995*/ OPC_CheckChild1Integer, 1, ++/*495997*/ OPC_CheckChild1Type, MVT::i32, ++/*495999*/ OPC_CheckChild2Integer, 1, ++/*496001*/ OPC_CheckChild2Type, MVT::i32, ++/*496003*/ OPC_CheckChild3Integer, 1, ++/*496005*/ OPC_CheckChild3Type, MVT::i32, ++/*496007*/ OPC_CheckChild4Integer, 1, ++/*496009*/ OPC_CheckChild4Type, MVT::i32, ++/*496011*/ OPC_MoveChild5, ++/*496012*/ OPC_CheckInteger, 1, ++/*496014*/ OPC_CheckType, MVT::i32, ++/*496016*/ OPC_MoveParent, ++/*496017*/ OPC_MoveChild6, ++/*496018*/ OPC_CheckInteger, 1, ++/*496020*/ OPC_CheckType, MVT::i32, ++/*496022*/ OPC_MoveParent, ++/*496023*/ OPC_MoveChild7, ++/*496024*/ OPC_CheckInteger, 1, ++/*496026*/ OPC_CheckType, MVT::i32, ++/*496028*/ OPC_MoveParent, ++/*496029*/ OPC_MoveChild, 8, ++/*496031*/ OPC_CheckInteger, 1, ++/*496033*/ OPC_CheckType, MVT::i32, ++/*496035*/ OPC_MoveParent, ++/*496036*/ OPC_MoveChild, 9, ++/*496038*/ OPC_CheckInteger, 1, ++/*496040*/ OPC_CheckType, MVT::i32, ++/*496042*/ OPC_MoveParent, ++/*496043*/ OPC_MoveChild, 10, ++/*496045*/ OPC_CheckInteger, 1, ++/*496047*/ OPC_CheckType, MVT::i32, ++/*496049*/ OPC_MoveParent, ++/*496050*/ OPC_MoveChild, 11, ++/*496052*/ OPC_CheckInteger, 1, ++/*496054*/ OPC_CheckType, MVT::i32, ++/*496056*/ OPC_MoveParent, ++/*496057*/ OPC_MoveChild, 12, ++/*496059*/ OPC_CheckInteger, 1, ++/*496061*/ OPC_CheckType, MVT::i32, ++/*496063*/ OPC_MoveParent, ++/*496064*/ OPC_MoveChild, 13, ++/*496066*/ OPC_CheckInteger, 1, ++/*496068*/ OPC_CheckType, MVT::i32, ++/*496070*/ OPC_MoveParent, ++/*496071*/ OPC_MoveChild, 14, ++/*496073*/ OPC_CheckInteger, 1, ++/*496075*/ OPC_CheckType, MVT::i32, ++/*496077*/ OPC_MoveParent, ++/*496078*/ OPC_MoveChild, 15, ++/*496080*/ OPC_CheckInteger, 1, ++/*496082*/ OPC_CheckType, MVT::i32, ++/*496084*/ OPC_MoveParent, ++/*496085*/ OPC_CheckType, MVT::v16i16, ++/*496087*/ OPC_MoveParent, ++/*496088*/ OPC_CheckType, MVT::v16i16, ++/*496090*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*496092*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$b), LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 181 ++ // Dst: (XVAVG_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*496100*/ /*Scope*/ 119, /*->496220*/ ++/*496101*/ OPC_CheckChild1Same, 0, ++/*496103*/ OPC_MoveParent, ++/*496104*/ OPC_CheckChild1Same, 1, ++/*496106*/ OPC_MoveParent, ++/*496107*/ OPC_MoveChild1, ++/*496108*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*496111*/ OPC_CheckChild0Integer, 1, ++/*496113*/ OPC_CheckChild0Type, MVT::i32, ++/*496115*/ OPC_CheckChild1Integer, 1, ++/*496117*/ OPC_CheckChild1Type, MVT::i32, ++/*496119*/ OPC_CheckChild2Integer, 1, ++/*496121*/ OPC_CheckChild2Type, MVT::i32, ++/*496123*/ OPC_CheckChild3Integer, 1, ++/*496125*/ OPC_CheckChild3Type, MVT::i32, ++/*496127*/ OPC_CheckChild4Integer, 1, ++/*496129*/ OPC_CheckChild4Type, MVT::i32, ++/*496131*/ OPC_MoveChild5, ++/*496132*/ OPC_CheckInteger, 1, ++/*496134*/ OPC_CheckType, MVT::i32, ++/*496136*/ OPC_MoveParent, ++/*496137*/ OPC_MoveChild6, ++/*496138*/ OPC_CheckInteger, 1, ++/*496140*/ OPC_CheckType, MVT::i32, ++/*496142*/ OPC_MoveParent, ++/*496143*/ OPC_MoveChild7, ++/*496144*/ OPC_CheckInteger, 1, ++/*496146*/ OPC_CheckType, MVT::i32, ++/*496148*/ OPC_MoveParent, ++/*496149*/ OPC_MoveChild, 8, ++/*496151*/ OPC_CheckInteger, 1, ++/*496153*/ OPC_CheckType, MVT::i32, ++/*496155*/ OPC_MoveParent, ++/*496156*/ OPC_MoveChild, 9, ++/*496158*/ OPC_CheckInteger, 1, ++/*496160*/ OPC_CheckType, MVT::i32, ++/*496162*/ OPC_MoveParent, ++/*496163*/ OPC_MoveChild, 10, ++/*496165*/ OPC_CheckInteger, 1, ++/*496167*/ OPC_CheckType, MVT::i32, ++/*496169*/ OPC_MoveParent, ++/*496170*/ OPC_MoveChild, 11, ++/*496172*/ OPC_CheckInteger, 1, ++/*496174*/ OPC_CheckType, MVT::i32, ++/*496176*/ OPC_MoveParent, ++/*496177*/ OPC_MoveChild, 12, ++/*496179*/ OPC_CheckInteger, 1, ++/*496181*/ OPC_CheckType, MVT::i32, ++/*496183*/ OPC_MoveParent, ++/*496184*/ OPC_MoveChild, 13, ++/*496186*/ OPC_CheckInteger, 1, ++/*496188*/ OPC_CheckType, MVT::i32, ++/*496190*/ OPC_MoveParent, ++/*496191*/ OPC_MoveChild, 14, ++/*496193*/ OPC_CheckInteger, 1, ++/*496195*/ OPC_CheckType, MVT::i32, ++/*496197*/ OPC_MoveParent, ++/*496198*/ OPC_MoveChild, 15, ++/*496200*/ OPC_CheckInteger, 1, ++/*496202*/ OPC_CheckType, MVT::i32, ++/*496204*/ OPC_MoveParent, ++/*496205*/ OPC_CheckType, MVT::v16i16, ++/*496207*/ OPC_MoveParent, ++/*496208*/ OPC_CheckType, MVT::v16i16, ++/*496210*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*496212*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$b), LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 181 ++ // Dst: (XVAVG_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*496220*/ 0, /*End of Scope*/ ++/*496221*/ 0, /*End of Scope*/ ++/*496222*/ /*SwitchOpcode*/ 104|128,3/*488*/, TARGET_VAL(ISD::SRL),// ->496714 ++/*496226*/ OPC_MoveChild0, ++/*496227*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*496230*/ OPC_RecordChild0, // #0 = $a ++/*496231*/ OPC_RecordChild1, // #1 = $b ++/*496232*/ OPC_MoveParent, ++/*496233*/ OPC_MoveChild1, ++/*496234*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*496237*/ OPC_CheckChild0Integer, 15, ++/*496239*/ OPC_CheckChild0Type, MVT::i32, ++/*496241*/ OPC_CheckChild1Integer, 15, ++/*496243*/ OPC_CheckChild1Type, MVT::i32, ++/*496245*/ OPC_CheckChild2Integer, 15, ++/*496247*/ OPC_CheckChild2Type, MVT::i32, ++/*496249*/ OPC_CheckChild3Integer, 15, ++/*496251*/ OPC_CheckChild3Type, MVT::i32, ++/*496253*/ OPC_CheckChild4Integer, 15, ++/*496255*/ OPC_CheckChild4Type, MVT::i32, ++/*496257*/ OPC_MoveChild5, ++/*496258*/ OPC_CheckInteger, 15, ++/*496260*/ OPC_CheckType, MVT::i32, ++/*496262*/ OPC_MoveParent, ++/*496263*/ OPC_MoveChild6, ++/*496264*/ OPC_CheckInteger, 15, ++/*496266*/ OPC_CheckType, MVT::i32, ++/*496268*/ OPC_MoveParent, ++/*496269*/ OPC_MoveChild7, ++/*496270*/ OPC_CheckInteger, 15, ++/*496272*/ OPC_CheckType, MVT::i32, ++/*496274*/ OPC_MoveParent, ++/*496275*/ OPC_MoveChild, 8, ++/*496277*/ OPC_CheckInteger, 15, ++/*496279*/ OPC_CheckType, MVT::i32, ++/*496281*/ OPC_MoveParent, ++/*496282*/ OPC_MoveChild, 9, ++/*496284*/ OPC_CheckInteger, 15, ++/*496286*/ OPC_CheckType, MVT::i32, ++/*496288*/ OPC_MoveParent, ++/*496289*/ OPC_MoveChild, 10, ++/*496291*/ OPC_CheckInteger, 15, ++/*496293*/ OPC_CheckType, MVT::i32, ++/*496295*/ OPC_MoveParent, ++/*496296*/ OPC_MoveChild, 11, ++/*496298*/ OPC_CheckInteger, 15, ++/*496300*/ OPC_CheckType, MVT::i32, ++/*496302*/ OPC_MoveParent, ++/*496303*/ OPC_MoveChild, 12, ++/*496305*/ OPC_CheckInteger, 15, ++/*496307*/ OPC_CheckType, MVT::i32, ++/*496309*/ OPC_MoveParent, ++/*496310*/ OPC_MoveChild, 13, ++/*496312*/ OPC_CheckInteger, 15, ++/*496314*/ OPC_CheckType, MVT::i32, ++/*496316*/ OPC_MoveParent, ++/*496317*/ OPC_MoveChild, 14, ++/*496319*/ OPC_CheckInteger, 15, ++/*496321*/ OPC_CheckType, MVT::i32, ++/*496323*/ OPC_MoveParent, ++/*496324*/ OPC_MoveChild, 15, ++/*496326*/ OPC_CheckInteger, 15, ++/*496328*/ OPC_CheckType, MVT::i32, ++/*496330*/ OPC_MoveParent, ++/*496331*/ OPC_CheckType, MVT::v16i16, ++/*496333*/ OPC_MoveParent, ++/*496334*/ OPC_MoveParent, ++/*496335*/ OPC_MoveChild1, ++/*496336*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*496339*/ OPC_Scope, 119, /*->496460*/ // 3 children in Scope ++/*496341*/ OPC_CheckChild0Same, 0, ++/*496343*/ OPC_CheckChild1Same, 1, ++/*496345*/ OPC_MoveParent, ++/*496346*/ OPC_MoveParent, ++/*496347*/ OPC_MoveChild1, ++/*496348*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*496351*/ OPC_CheckChild0Integer, 1, ++/*496353*/ OPC_CheckChild0Type, MVT::i32, ++/*496355*/ OPC_CheckChild1Integer, 1, ++/*496357*/ OPC_CheckChild1Type, MVT::i32, ++/*496359*/ OPC_CheckChild2Integer, 1, ++/*496361*/ OPC_CheckChild2Type, MVT::i32, ++/*496363*/ OPC_CheckChild3Integer, 1, ++/*496365*/ OPC_CheckChild3Type, MVT::i32, ++/*496367*/ OPC_CheckChild4Integer, 1, ++/*496369*/ OPC_CheckChild4Type, MVT::i32, ++/*496371*/ OPC_MoveChild5, ++/*496372*/ OPC_CheckInteger, 1, ++/*496374*/ OPC_CheckType, MVT::i32, ++/*496376*/ OPC_MoveParent, ++/*496377*/ OPC_MoveChild6, ++/*496378*/ OPC_CheckInteger, 1, ++/*496380*/ OPC_CheckType, MVT::i32, ++/*496382*/ OPC_MoveParent, ++/*496383*/ OPC_MoveChild7, ++/*496384*/ OPC_CheckInteger, 1, ++/*496386*/ OPC_CheckType, MVT::i32, ++/*496388*/ OPC_MoveParent, ++/*496389*/ OPC_MoveChild, 8, ++/*496391*/ OPC_CheckInteger, 1, ++/*496393*/ OPC_CheckType, MVT::i32, ++/*496395*/ OPC_MoveParent, ++/*496396*/ OPC_MoveChild, 9, ++/*496398*/ OPC_CheckInteger, 1, ++/*496400*/ OPC_CheckType, MVT::i32, ++/*496402*/ OPC_MoveParent, ++/*496403*/ OPC_MoveChild, 10, ++/*496405*/ OPC_CheckInteger, 1, ++/*496407*/ OPC_CheckType, MVT::i32, ++/*496409*/ OPC_MoveParent, ++/*496410*/ OPC_MoveChild, 11, ++/*496412*/ OPC_CheckInteger, 1, ++/*496414*/ OPC_CheckType, MVT::i32, ++/*496416*/ OPC_MoveParent, ++/*496417*/ OPC_MoveChild, 12, ++/*496419*/ OPC_CheckInteger, 1, ++/*496421*/ OPC_CheckType, MVT::i32, ++/*496423*/ OPC_MoveParent, ++/*496424*/ OPC_MoveChild, 13, ++/*496426*/ OPC_CheckInteger, 1, ++/*496428*/ OPC_CheckType, MVT::i32, ++/*496430*/ OPC_MoveParent, ++/*496431*/ OPC_MoveChild, 14, ++/*496433*/ OPC_CheckInteger, 1, ++/*496435*/ OPC_CheckType, MVT::i32, ++/*496437*/ OPC_MoveParent, ++/*496438*/ OPC_MoveChild, 15, ++/*496440*/ OPC_CheckInteger, 1, ++/*496442*/ OPC_CheckType, MVT::i32, ++/*496444*/ OPC_MoveParent, ++/*496445*/ OPC_CheckType, MVT::v16i16, ++/*496447*/ OPC_MoveParent, ++/*496448*/ OPC_CheckType, MVT::v16i16, ++/*496450*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*496452*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 181 ++ // Dst: (XVAVG_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*496460*/ /*Scope*/ 3|128,1/*131*/, /*->496593*/ ++/*496462*/ OPC_CheckChild0Same, 1, ++/*496464*/ OPC_CheckChild1Same, 0, ++/*496466*/ OPC_MoveParent, ++/*496467*/ OPC_MoveParent, ++/*496468*/ OPC_MoveChild1, ++/*496469*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*496472*/ OPC_CheckChild0Integer, 1, ++/*496474*/ OPC_CheckChild0Type, MVT::i32, ++/*496476*/ OPC_CheckChild1Integer, 1, ++/*496478*/ OPC_CheckChild1Type, MVT::i32, ++/*496480*/ OPC_CheckChild2Integer, 1, ++/*496482*/ OPC_CheckChild2Type, MVT::i32, ++/*496484*/ OPC_CheckChild3Integer, 1, ++/*496486*/ OPC_CheckChild3Type, MVT::i32, ++/*496488*/ OPC_CheckChild4Integer, 1, ++/*496490*/ OPC_CheckChild4Type, MVT::i32, ++/*496492*/ OPC_MoveChild5, ++/*496493*/ OPC_CheckInteger, 1, ++/*496495*/ OPC_CheckType, MVT::i32, ++/*496497*/ OPC_MoveParent, ++/*496498*/ OPC_MoveChild6, ++/*496499*/ OPC_CheckInteger, 1, ++/*496501*/ OPC_CheckType, MVT::i32, ++/*496503*/ OPC_MoveParent, ++/*496504*/ OPC_MoveChild7, ++/*496505*/ OPC_CheckInteger, 1, ++/*496507*/ OPC_CheckType, MVT::i32, ++/*496509*/ OPC_MoveParent, ++/*496510*/ OPC_MoveChild, 8, ++/*496512*/ OPC_CheckInteger, 1, ++/*496514*/ OPC_CheckType, MVT::i32, ++/*496516*/ OPC_MoveParent, ++/*496517*/ OPC_MoveChild, 9, ++/*496519*/ OPC_CheckInteger, 1, ++/*496521*/ OPC_CheckType, MVT::i32, ++/*496523*/ OPC_MoveParent, ++/*496524*/ OPC_MoveChild, 10, ++/*496526*/ OPC_CheckInteger, 1, ++/*496528*/ OPC_CheckType, MVT::i32, ++/*496530*/ OPC_MoveParent, ++/*496531*/ OPC_MoveChild, 11, ++/*496533*/ OPC_CheckInteger, 1, ++/*496535*/ OPC_CheckType, MVT::i32, ++/*496537*/ OPC_MoveParent, ++/*496538*/ OPC_MoveChild, 12, ++/*496540*/ OPC_CheckInteger, 1, ++/*496542*/ OPC_CheckType, MVT::i32, ++/*496544*/ OPC_MoveParent, ++/*496545*/ OPC_MoveChild, 13, ++/*496547*/ OPC_CheckInteger, 1, ++/*496549*/ OPC_CheckType, MVT::i32, ++/*496551*/ OPC_MoveParent, ++/*496552*/ OPC_MoveChild, 14, ++/*496554*/ OPC_CheckInteger, 1, ++/*496556*/ OPC_CheckType, MVT::i32, ++/*496558*/ OPC_MoveParent, ++/*496559*/ OPC_MoveChild, 15, ++/*496561*/ OPC_CheckInteger, 1, ++/*496563*/ OPC_CheckType, MVT::i32, ++/*496565*/ OPC_MoveParent, ++/*496566*/ OPC_CheckType, MVT::v16i16, ++/*496568*/ OPC_MoveParent, ++/*496569*/ OPC_CheckType, MVT::v16i16, ++/*496571*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*496573*/ OPC_Scope, 8, /*->496583*/ // 2 children in Scope ++/*496575*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 181 ++ // Dst: (XVAVG_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*496583*/ /*Scope*/ 8, /*->496592*/ ++/*496584*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 181 ++ // Dst: (XVAVG_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*496592*/ 0, /*End of Scope*/ ++/*496593*/ /*Scope*/ 119, /*->496713*/ ++/*496594*/ OPC_CheckChild0Same, 0, ++/*496596*/ OPC_CheckChild1Same, 1, ++/*496598*/ OPC_MoveParent, ++/*496599*/ OPC_MoveParent, ++/*496600*/ OPC_MoveChild1, ++/*496601*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*496604*/ OPC_CheckChild0Integer, 1, ++/*496606*/ OPC_CheckChild0Type, MVT::i32, ++/*496608*/ OPC_CheckChild1Integer, 1, ++/*496610*/ OPC_CheckChild1Type, MVT::i32, ++/*496612*/ OPC_CheckChild2Integer, 1, ++/*496614*/ OPC_CheckChild2Type, MVT::i32, ++/*496616*/ OPC_CheckChild3Integer, 1, ++/*496618*/ OPC_CheckChild3Type, MVT::i32, ++/*496620*/ OPC_CheckChild4Integer, 1, ++/*496622*/ OPC_CheckChild4Type, MVT::i32, ++/*496624*/ OPC_MoveChild5, ++/*496625*/ OPC_CheckInteger, 1, ++/*496627*/ OPC_CheckType, MVT::i32, ++/*496629*/ OPC_MoveParent, ++/*496630*/ OPC_MoveChild6, ++/*496631*/ OPC_CheckInteger, 1, ++/*496633*/ OPC_CheckType, MVT::i32, ++/*496635*/ OPC_MoveParent, ++/*496636*/ OPC_MoveChild7, ++/*496637*/ OPC_CheckInteger, 1, ++/*496639*/ OPC_CheckType, MVT::i32, ++/*496641*/ OPC_MoveParent, ++/*496642*/ OPC_MoveChild, 8, ++/*496644*/ OPC_CheckInteger, 1, ++/*496646*/ OPC_CheckType, MVT::i32, ++/*496648*/ OPC_MoveParent, ++/*496649*/ OPC_MoveChild, 9, ++/*496651*/ OPC_CheckInteger, 1, ++/*496653*/ OPC_CheckType, MVT::i32, ++/*496655*/ OPC_MoveParent, ++/*496656*/ OPC_MoveChild, 10, ++/*496658*/ OPC_CheckInteger, 1, ++/*496660*/ OPC_CheckType, MVT::i32, ++/*496662*/ OPC_MoveParent, ++/*496663*/ OPC_MoveChild, 11, ++/*496665*/ OPC_CheckInteger, 1, ++/*496667*/ OPC_CheckType, MVT::i32, ++/*496669*/ OPC_MoveParent, ++/*496670*/ OPC_MoveChild, 12, ++/*496672*/ OPC_CheckInteger, 1, ++/*496674*/ OPC_CheckType, MVT::i32, ++/*496676*/ OPC_MoveParent, ++/*496677*/ OPC_MoveChild, 13, ++/*496679*/ OPC_CheckInteger, 1, ++/*496681*/ OPC_CheckType, MVT::i32, ++/*496683*/ OPC_MoveParent, ++/*496684*/ OPC_MoveChild, 14, ++/*496686*/ OPC_CheckInteger, 1, ++/*496688*/ OPC_CheckType, MVT::i32, ++/*496690*/ OPC_MoveParent, ++/*496691*/ OPC_MoveChild, 15, ++/*496693*/ OPC_CheckInteger, 1, ++/*496695*/ OPC_CheckType, MVT::i32, ++/*496697*/ OPC_MoveParent, ++/*496698*/ OPC_CheckType, MVT::v16i16, ++/*496700*/ OPC_MoveParent, ++/*496701*/ OPC_CheckType, MVT::v16i16, ++/*496703*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*496705*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 181 ++ // Dst: (XVAVG_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*496713*/ 0, /*End of Scope*/ ++/*496714*/ 0, // EndSwitchOpcode ++/*496715*/ /*Scope*/ 61|128,14/*1853*/, /*->498570*/ ++/*496717*/ OPC_RecordChild0, // #0 = $b ++/*496718*/ OPC_MoveChild1, ++/*496719*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*496722*/ OPC_Scope, 75|128,3/*459*/, /*->497184*/ // 4 children in Scope ++/*496725*/ OPC_RecordChild0, // #1 = $a ++/*496726*/ OPC_MoveChild1, ++/*496727*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*496730*/ OPC_MoveChild0, ++/*496731*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*496734*/ OPC_Scope, 94|128,1/*222*/, /*->496959*/ // 2 children in Scope ++/*496737*/ OPC_CheckChild0Same, 1, ++/*496739*/ OPC_CheckChild1Same, 0, ++/*496741*/ OPC_MoveParent, ++/*496742*/ OPC_MoveChild1, ++/*496743*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*496746*/ OPC_CheckChild0Integer, 15, ++/*496748*/ OPC_CheckChild0Type, MVT::i32, ++/*496750*/ OPC_CheckChild1Integer, 15, ++/*496752*/ OPC_CheckChild1Type, MVT::i32, ++/*496754*/ OPC_CheckChild2Integer, 15, ++/*496756*/ OPC_CheckChild2Type, MVT::i32, ++/*496758*/ OPC_CheckChild3Integer, 15, ++/*496760*/ OPC_CheckChild3Type, MVT::i32, ++/*496762*/ OPC_CheckChild4Integer, 15, ++/*496764*/ OPC_CheckChild4Type, MVT::i32, ++/*496766*/ OPC_MoveChild5, ++/*496767*/ OPC_CheckInteger, 15, ++/*496769*/ OPC_CheckType, MVT::i32, ++/*496771*/ OPC_MoveParent, ++/*496772*/ OPC_MoveChild6, ++/*496773*/ OPC_CheckInteger, 15, ++/*496775*/ OPC_CheckType, MVT::i32, ++/*496777*/ OPC_MoveParent, ++/*496778*/ OPC_MoveChild7, ++/*496779*/ OPC_CheckInteger, 15, ++/*496781*/ OPC_CheckType, MVT::i32, ++/*496783*/ OPC_MoveParent, ++/*496784*/ OPC_MoveChild, 8, ++/*496786*/ OPC_CheckInteger, 15, ++/*496788*/ OPC_CheckType, MVT::i32, ++/*496790*/ OPC_MoveParent, ++/*496791*/ OPC_MoveChild, 9, ++/*496793*/ OPC_CheckInteger, 15, ++/*496795*/ OPC_CheckType, MVT::i32, ++/*496797*/ OPC_MoveParent, ++/*496798*/ OPC_MoveChild, 10, ++/*496800*/ OPC_CheckInteger, 15, ++/*496802*/ OPC_CheckType, MVT::i32, ++/*496804*/ OPC_MoveParent, ++/*496805*/ OPC_MoveChild, 11, ++/*496807*/ OPC_CheckInteger, 15, ++/*496809*/ OPC_CheckType, MVT::i32, ++/*496811*/ OPC_MoveParent, ++/*496812*/ OPC_MoveChild, 12, ++/*496814*/ OPC_CheckInteger, 15, ++/*496816*/ OPC_CheckType, MVT::i32, ++/*496818*/ OPC_MoveParent, ++/*496819*/ OPC_MoveChild, 13, ++/*496821*/ OPC_CheckInteger, 15, ++/*496823*/ OPC_CheckType, MVT::i32, ++/*496825*/ OPC_MoveParent, ++/*496826*/ OPC_MoveChild, 14, ++/*496828*/ OPC_CheckInteger, 15, ++/*496830*/ OPC_CheckType, MVT::i32, ++/*496832*/ OPC_MoveParent, ++/*496833*/ OPC_MoveChild, 15, ++/*496835*/ OPC_CheckInteger, 15, ++/*496837*/ OPC_CheckType, MVT::i32, ++/*496839*/ OPC_MoveParent, ++/*496840*/ OPC_CheckType, MVT::v16i16, ++/*496842*/ OPC_MoveParent, ++/*496843*/ OPC_MoveParent, ++/*496844*/ OPC_MoveParent, ++/*496845*/ OPC_MoveParent, ++/*496846*/ OPC_MoveChild1, ++/*496847*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*496850*/ OPC_CheckChild0Integer, 1, ++/*496852*/ OPC_CheckChild0Type, MVT::i32, ++/*496854*/ OPC_CheckChild1Integer, 1, ++/*496856*/ OPC_CheckChild1Type, MVT::i32, ++/*496858*/ OPC_CheckChild2Integer, 1, ++/*496860*/ OPC_CheckChild2Type, MVT::i32, ++/*496862*/ OPC_CheckChild3Integer, 1, ++/*496864*/ OPC_CheckChild3Type, MVT::i32, ++/*496866*/ OPC_CheckChild4Integer, 1, ++/*496868*/ OPC_CheckChild4Type, MVT::i32, ++/*496870*/ OPC_MoveChild5, ++/*496871*/ OPC_CheckInteger, 1, ++/*496873*/ OPC_CheckType, MVT::i32, ++/*496875*/ OPC_MoveParent, ++/*496876*/ OPC_MoveChild6, ++/*496877*/ OPC_CheckInteger, 1, ++/*496879*/ OPC_CheckType, MVT::i32, ++/*496881*/ OPC_MoveParent, ++/*496882*/ OPC_MoveChild7, ++/*496883*/ OPC_CheckInteger, 1, ++/*496885*/ OPC_CheckType, MVT::i32, ++/*496887*/ OPC_MoveParent, ++/*496888*/ OPC_MoveChild, 8, ++/*496890*/ OPC_CheckInteger, 1, ++/*496892*/ OPC_CheckType, MVT::i32, ++/*496894*/ OPC_MoveParent, ++/*496895*/ OPC_MoveChild, 9, ++/*496897*/ OPC_CheckInteger, 1, ++/*496899*/ OPC_CheckType, MVT::i32, ++/*496901*/ OPC_MoveParent, ++/*496902*/ OPC_MoveChild, 10, ++/*496904*/ OPC_CheckInteger, 1, ++/*496906*/ OPC_CheckType, MVT::i32, ++/*496908*/ OPC_MoveParent, ++/*496909*/ OPC_MoveChild, 11, ++/*496911*/ OPC_CheckInteger, 1, ++/*496913*/ OPC_CheckType, MVT::i32, ++/*496915*/ OPC_MoveParent, ++/*496916*/ OPC_MoveChild, 12, ++/*496918*/ OPC_CheckInteger, 1, ++/*496920*/ OPC_CheckType, MVT::i32, ++/*496922*/ OPC_MoveParent, ++/*496923*/ OPC_MoveChild, 13, ++/*496925*/ OPC_CheckInteger, 1, ++/*496927*/ OPC_CheckType, MVT::i32, ++/*496929*/ OPC_MoveParent, ++/*496930*/ OPC_MoveChild, 14, ++/*496932*/ OPC_CheckInteger, 1, ++/*496934*/ OPC_CheckType, MVT::i32, ++/*496936*/ OPC_MoveParent, ++/*496937*/ OPC_MoveChild, 15, ++/*496939*/ OPC_CheckInteger, 1, ++/*496941*/ OPC_CheckType, MVT::i32, ++/*496943*/ OPC_MoveParent, ++/*496944*/ OPC_CheckType, MVT::v16i16, ++/*496946*/ OPC_MoveParent, ++/*496947*/ OPC_CheckType, MVT::v16i16, ++/*496949*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*496951*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 181 ++ // Dst: (XVAVG_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*496959*/ /*Scope*/ 94|128,1/*222*/, /*->497183*/ ++/*496961*/ OPC_CheckChild0Same, 0, ++/*496963*/ OPC_CheckChild1Same, 1, ++/*496965*/ OPC_MoveParent, ++/*496966*/ OPC_MoveChild1, ++/*496967*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*496970*/ OPC_CheckChild0Integer, 15, ++/*496972*/ OPC_CheckChild0Type, MVT::i32, ++/*496974*/ OPC_CheckChild1Integer, 15, ++/*496976*/ OPC_CheckChild1Type, MVT::i32, ++/*496978*/ OPC_CheckChild2Integer, 15, ++/*496980*/ OPC_CheckChild2Type, MVT::i32, ++/*496982*/ OPC_CheckChild3Integer, 15, ++/*496984*/ OPC_CheckChild3Type, MVT::i32, ++/*496986*/ OPC_CheckChild4Integer, 15, ++/*496988*/ OPC_CheckChild4Type, MVT::i32, ++/*496990*/ OPC_MoveChild5, ++/*496991*/ OPC_CheckInteger, 15, ++/*496993*/ OPC_CheckType, MVT::i32, ++/*496995*/ OPC_MoveParent, ++/*496996*/ OPC_MoveChild6, ++/*496997*/ OPC_CheckInteger, 15, ++/*496999*/ OPC_CheckType, MVT::i32, ++/*497001*/ OPC_MoveParent, ++/*497002*/ OPC_MoveChild7, ++/*497003*/ OPC_CheckInteger, 15, ++/*497005*/ OPC_CheckType, MVT::i32, ++/*497007*/ OPC_MoveParent, ++/*497008*/ OPC_MoveChild, 8, ++/*497010*/ OPC_CheckInteger, 15, ++/*497012*/ OPC_CheckType, MVT::i32, ++/*497014*/ OPC_MoveParent, ++/*497015*/ OPC_MoveChild, 9, ++/*497017*/ OPC_CheckInteger, 15, ++/*497019*/ OPC_CheckType, MVT::i32, ++/*497021*/ OPC_MoveParent, ++/*497022*/ OPC_MoveChild, 10, ++/*497024*/ OPC_CheckInteger, 15, ++/*497026*/ OPC_CheckType, MVT::i32, ++/*497028*/ OPC_MoveParent, ++/*497029*/ OPC_MoveChild, 11, ++/*497031*/ OPC_CheckInteger, 15, ++/*497033*/ OPC_CheckType, MVT::i32, ++/*497035*/ OPC_MoveParent, ++/*497036*/ OPC_MoveChild, 12, ++/*497038*/ OPC_CheckInteger, 15, ++/*497040*/ OPC_CheckType, MVT::i32, ++/*497042*/ OPC_MoveParent, ++/*497043*/ OPC_MoveChild, 13, ++/*497045*/ OPC_CheckInteger, 15, ++/*497047*/ OPC_CheckType, MVT::i32, ++/*497049*/ OPC_MoveParent, ++/*497050*/ OPC_MoveChild, 14, ++/*497052*/ OPC_CheckInteger, 15, ++/*497054*/ OPC_CheckType, MVT::i32, ++/*497056*/ OPC_MoveParent, ++/*497057*/ OPC_MoveChild, 15, ++/*497059*/ OPC_CheckInteger, 15, ++/*497061*/ OPC_CheckType, MVT::i32, ++/*497063*/ OPC_MoveParent, ++/*497064*/ OPC_CheckType, MVT::v16i16, ++/*497066*/ OPC_MoveParent, ++/*497067*/ OPC_MoveParent, ++/*497068*/ OPC_MoveParent, ++/*497069*/ OPC_MoveParent, ++/*497070*/ OPC_MoveChild1, ++/*497071*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*497074*/ OPC_CheckChild0Integer, 1, ++/*497076*/ OPC_CheckChild0Type, MVT::i32, ++/*497078*/ OPC_CheckChild1Integer, 1, ++/*497080*/ OPC_CheckChild1Type, MVT::i32, ++/*497082*/ OPC_CheckChild2Integer, 1, ++/*497084*/ OPC_CheckChild2Type, MVT::i32, ++/*497086*/ OPC_CheckChild3Integer, 1, ++/*497088*/ OPC_CheckChild3Type, MVT::i32, ++/*497090*/ OPC_CheckChild4Integer, 1, ++/*497092*/ OPC_CheckChild4Type, MVT::i32, ++/*497094*/ OPC_MoveChild5, ++/*497095*/ OPC_CheckInteger, 1, ++/*497097*/ OPC_CheckType, MVT::i32, ++/*497099*/ OPC_MoveParent, ++/*497100*/ OPC_MoveChild6, ++/*497101*/ OPC_CheckInteger, 1, ++/*497103*/ OPC_CheckType, MVT::i32, ++/*497105*/ OPC_MoveParent, ++/*497106*/ OPC_MoveChild7, ++/*497107*/ OPC_CheckInteger, 1, ++/*497109*/ OPC_CheckType, MVT::i32, ++/*497111*/ OPC_MoveParent, ++/*497112*/ OPC_MoveChild, 8, ++/*497114*/ OPC_CheckInteger, 1, ++/*497116*/ OPC_CheckType, MVT::i32, ++/*497118*/ OPC_MoveParent, ++/*497119*/ OPC_MoveChild, 9, ++/*497121*/ OPC_CheckInteger, 1, ++/*497123*/ OPC_CheckType, MVT::i32, ++/*497125*/ OPC_MoveParent, ++/*497126*/ OPC_MoveChild, 10, ++/*497128*/ OPC_CheckInteger, 1, ++/*497130*/ OPC_CheckType, MVT::i32, ++/*497132*/ OPC_MoveParent, ++/*497133*/ OPC_MoveChild, 11, ++/*497135*/ OPC_CheckInteger, 1, ++/*497137*/ OPC_CheckType, MVT::i32, ++/*497139*/ OPC_MoveParent, ++/*497140*/ OPC_MoveChild, 12, ++/*497142*/ OPC_CheckInteger, 1, ++/*497144*/ OPC_CheckType, MVT::i32, ++/*497146*/ OPC_MoveParent, ++/*497147*/ OPC_MoveChild, 13, ++/*497149*/ OPC_CheckInteger, 1, ++/*497151*/ OPC_CheckType, MVT::i32, ++/*497153*/ OPC_MoveParent, ++/*497154*/ OPC_MoveChild, 14, ++/*497156*/ OPC_CheckInteger, 1, ++/*497158*/ OPC_CheckType, MVT::i32, ++/*497160*/ OPC_MoveParent, ++/*497161*/ OPC_MoveChild, 15, ++/*497163*/ OPC_CheckInteger, 1, ++/*497165*/ OPC_CheckType, MVT::i32, ++/*497167*/ OPC_MoveParent, ++/*497168*/ OPC_CheckType, MVT::v16i16, ++/*497170*/ OPC_MoveParent, ++/*497171*/ OPC_CheckType, MVT::v16i16, ++/*497173*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*497175*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 181 ++ // Dst: (XVAVG_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*497183*/ 0, /*End of Scope*/ ++/*497184*/ /*Scope*/ 76|128,3/*460*/, /*->497646*/ ++/*497186*/ OPC_MoveChild0, ++/*497187*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*497190*/ OPC_MoveChild0, ++/*497191*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*497194*/ OPC_Scope, 95|128,1/*223*/, /*->497420*/ // 2 children in Scope ++/*497197*/ OPC_RecordChild0, // #1 = $a ++/*497198*/ OPC_CheckChild1Same, 0, ++/*497200*/ OPC_MoveParent, ++/*497201*/ OPC_MoveChild1, ++/*497202*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*497205*/ OPC_CheckChild0Integer, 15, ++/*497207*/ OPC_CheckChild0Type, MVT::i32, ++/*497209*/ OPC_CheckChild1Integer, 15, ++/*497211*/ OPC_CheckChild1Type, MVT::i32, ++/*497213*/ OPC_CheckChild2Integer, 15, ++/*497215*/ OPC_CheckChild2Type, MVT::i32, ++/*497217*/ OPC_CheckChild3Integer, 15, ++/*497219*/ OPC_CheckChild3Type, MVT::i32, ++/*497221*/ OPC_CheckChild4Integer, 15, ++/*497223*/ OPC_CheckChild4Type, MVT::i32, ++/*497225*/ OPC_MoveChild5, ++/*497226*/ OPC_CheckInteger, 15, ++/*497228*/ OPC_CheckType, MVT::i32, ++/*497230*/ OPC_MoveParent, ++/*497231*/ OPC_MoveChild6, ++/*497232*/ OPC_CheckInteger, 15, ++/*497234*/ OPC_CheckType, MVT::i32, ++/*497236*/ OPC_MoveParent, ++/*497237*/ OPC_MoveChild7, ++/*497238*/ OPC_CheckInteger, 15, ++/*497240*/ OPC_CheckType, MVT::i32, ++/*497242*/ OPC_MoveParent, ++/*497243*/ OPC_MoveChild, 8, ++/*497245*/ OPC_CheckInteger, 15, ++/*497247*/ OPC_CheckType, MVT::i32, ++/*497249*/ OPC_MoveParent, ++/*497250*/ OPC_MoveChild, 9, ++/*497252*/ OPC_CheckInteger, 15, ++/*497254*/ OPC_CheckType, MVT::i32, ++/*497256*/ OPC_MoveParent, ++/*497257*/ OPC_MoveChild, 10, ++/*497259*/ OPC_CheckInteger, 15, ++/*497261*/ OPC_CheckType, MVT::i32, ++/*497263*/ OPC_MoveParent, ++/*497264*/ OPC_MoveChild, 11, ++/*497266*/ OPC_CheckInteger, 15, ++/*497268*/ OPC_CheckType, MVT::i32, ++/*497270*/ OPC_MoveParent, ++/*497271*/ OPC_MoveChild, 12, ++/*497273*/ OPC_CheckInteger, 15, ++/*497275*/ OPC_CheckType, MVT::i32, ++/*497277*/ OPC_MoveParent, ++/*497278*/ OPC_MoveChild, 13, ++/*497280*/ OPC_CheckInteger, 15, ++/*497282*/ OPC_CheckType, MVT::i32, ++/*497284*/ OPC_MoveParent, ++/*497285*/ OPC_MoveChild, 14, ++/*497287*/ OPC_CheckInteger, 15, ++/*497289*/ OPC_CheckType, MVT::i32, ++/*497291*/ OPC_MoveParent, ++/*497292*/ OPC_MoveChild, 15, ++/*497294*/ OPC_CheckInteger, 15, ++/*497296*/ OPC_CheckType, MVT::i32, ++/*497298*/ OPC_MoveParent, ++/*497299*/ OPC_CheckType, MVT::v16i16, ++/*497301*/ OPC_MoveParent, ++/*497302*/ OPC_MoveParent, ++/*497303*/ OPC_CheckChild1Same, 1, ++/*497305*/ OPC_MoveParent, ++/*497306*/ OPC_MoveParent, ++/*497307*/ OPC_MoveChild1, ++/*497308*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*497311*/ OPC_CheckChild0Integer, 1, ++/*497313*/ OPC_CheckChild0Type, MVT::i32, ++/*497315*/ OPC_CheckChild1Integer, 1, ++/*497317*/ OPC_CheckChild1Type, MVT::i32, ++/*497319*/ OPC_CheckChild2Integer, 1, ++/*497321*/ OPC_CheckChild2Type, MVT::i32, ++/*497323*/ OPC_CheckChild3Integer, 1, ++/*497325*/ OPC_CheckChild3Type, MVT::i32, ++/*497327*/ OPC_CheckChild4Integer, 1, ++/*497329*/ OPC_CheckChild4Type, MVT::i32, ++/*497331*/ OPC_MoveChild5, ++/*497332*/ OPC_CheckInteger, 1, ++/*497334*/ OPC_CheckType, MVT::i32, ++/*497336*/ OPC_MoveParent, ++/*497337*/ OPC_MoveChild6, ++/*497338*/ OPC_CheckInteger, 1, ++/*497340*/ OPC_CheckType, MVT::i32, ++/*497342*/ OPC_MoveParent, ++/*497343*/ OPC_MoveChild7, ++/*497344*/ OPC_CheckInteger, 1, ++/*497346*/ OPC_CheckType, MVT::i32, ++/*497348*/ OPC_MoveParent, ++/*497349*/ OPC_MoveChild, 8, ++/*497351*/ OPC_CheckInteger, 1, ++/*497353*/ OPC_CheckType, MVT::i32, ++/*497355*/ OPC_MoveParent, ++/*497356*/ OPC_MoveChild, 9, ++/*497358*/ OPC_CheckInteger, 1, ++/*497360*/ OPC_CheckType, MVT::i32, ++/*497362*/ OPC_MoveParent, ++/*497363*/ OPC_MoveChild, 10, ++/*497365*/ OPC_CheckInteger, 1, ++/*497367*/ OPC_CheckType, MVT::i32, ++/*497369*/ OPC_MoveParent, ++/*497370*/ OPC_MoveChild, 11, ++/*497372*/ OPC_CheckInteger, 1, ++/*497374*/ OPC_CheckType, MVT::i32, ++/*497376*/ OPC_MoveParent, ++/*497377*/ OPC_MoveChild, 12, ++/*497379*/ OPC_CheckInteger, 1, ++/*497381*/ OPC_CheckType, MVT::i32, ++/*497383*/ OPC_MoveParent, ++/*497384*/ OPC_MoveChild, 13, ++/*497386*/ OPC_CheckInteger, 1, ++/*497388*/ OPC_CheckType, MVT::i32, ++/*497390*/ OPC_MoveParent, ++/*497391*/ OPC_MoveChild, 14, ++/*497393*/ OPC_CheckInteger, 1, ++/*497395*/ OPC_CheckType, MVT::i32, ++/*497397*/ OPC_MoveParent, ++/*497398*/ OPC_MoveChild, 15, ++/*497400*/ OPC_CheckInteger, 1, ++/*497402*/ OPC_CheckType, MVT::i32, ++/*497404*/ OPC_MoveParent, ++/*497405*/ OPC_CheckType, MVT::v16i16, ++/*497407*/ OPC_MoveParent, ++/*497408*/ OPC_CheckType, MVT::v16i16, ++/*497410*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*497412*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 181 ++ // Dst: (XVAVG_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*497420*/ /*Scope*/ 95|128,1/*223*/, /*->497645*/ ++/*497422*/ OPC_CheckChild0Same, 0, ++/*497424*/ OPC_RecordChild1, // #1 = $a ++/*497425*/ OPC_MoveParent, ++/*497426*/ OPC_MoveChild1, ++/*497427*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*497430*/ OPC_CheckChild0Integer, 15, ++/*497432*/ OPC_CheckChild0Type, MVT::i32, ++/*497434*/ OPC_CheckChild1Integer, 15, ++/*497436*/ OPC_CheckChild1Type, MVT::i32, ++/*497438*/ OPC_CheckChild2Integer, 15, ++/*497440*/ OPC_CheckChild2Type, MVT::i32, ++/*497442*/ OPC_CheckChild3Integer, 15, ++/*497444*/ OPC_CheckChild3Type, MVT::i32, ++/*497446*/ OPC_CheckChild4Integer, 15, ++/*497448*/ OPC_CheckChild4Type, MVT::i32, ++/*497450*/ OPC_MoveChild5, ++/*497451*/ OPC_CheckInteger, 15, ++/*497453*/ OPC_CheckType, MVT::i32, ++/*497455*/ OPC_MoveParent, ++/*497456*/ OPC_MoveChild6, ++/*497457*/ OPC_CheckInteger, 15, ++/*497459*/ OPC_CheckType, MVT::i32, ++/*497461*/ OPC_MoveParent, ++/*497462*/ OPC_MoveChild7, ++/*497463*/ OPC_CheckInteger, 15, ++/*497465*/ OPC_CheckType, MVT::i32, ++/*497467*/ OPC_MoveParent, ++/*497468*/ OPC_MoveChild, 8, ++/*497470*/ OPC_CheckInteger, 15, ++/*497472*/ OPC_CheckType, MVT::i32, ++/*497474*/ OPC_MoveParent, ++/*497475*/ OPC_MoveChild, 9, ++/*497477*/ OPC_CheckInteger, 15, ++/*497479*/ OPC_CheckType, MVT::i32, ++/*497481*/ OPC_MoveParent, ++/*497482*/ OPC_MoveChild, 10, ++/*497484*/ OPC_CheckInteger, 15, ++/*497486*/ OPC_CheckType, MVT::i32, ++/*497488*/ OPC_MoveParent, ++/*497489*/ OPC_MoveChild, 11, ++/*497491*/ OPC_CheckInteger, 15, ++/*497493*/ OPC_CheckType, MVT::i32, ++/*497495*/ OPC_MoveParent, ++/*497496*/ OPC_MoveChild, 12, ++/*497498*/ OPC_CheckInteger, 15, ++/*497500*/ OPC_CheckType, MVT::i32, ++/*497502*/ OPC_MoveParent, ++/*497503*/ OPC_MoveChild, 13, ++/*497505*/ OPC_CheckInteger, 15, ++/*497507*/ OPC_CheckType, MVT::i32, ++/*497509*/ OPC_MoveParent, ++/*497510*/ OPC_MoveChild, 14, ++/*497512*/ OPC_CheckInteger, 15, ++/*497514*/ OPC_CheckType, MVT::i32, ++/*497516*/ OPC_MoveParent, ++/*497517*/ OPC_MoveChild, 15, ++/*497519*/ OPC_CheckInteger, 15, ++/*497521*/ OPC_CheckType, MVT::i32, ++/*497523*/ OPC_MoveParent, ++/*497524*/ OPC_CheckType, MVT::v16i16, ++/*497526*/ OPC_MoveParent, ++/*497527*/ OPC_MoveParent, ++/*497528*/ OPC_CheckChild1Same, 1, ++/*497530*/ OPC_MoveParent, ++/*497531*/ OPC_MoveParent, ++/*497532*/ OPC_MoveChild1, ++/*497533*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*497536*/ OPC_CheckChild0Integer, 1, ++/*497538*/ OPC_CheckChild0Type, MVT::i32, ++/*497540*/ OPC_CheckChild1Integer, 1, ++/*497542*/ OPC_CheckChild1Type, MVT::i32, ++/*497544*/ OPC_CheckChild2Integer, 1, ++/*497546*/ OPC_CheckChild2Type, MVT::i32, ++/*497548*/ OPC_CheckChild3Integer, 1, ++/*497550*/ OPC_CheckChild3Type, MVT::i32, ++/*497552*/ OPC_CheckChild4Integer, 1, ++/*497554*/ OPC_CheckChild4Type, MVT::i32, ++/*497556*/ OPC_MoveChild5, ++/*497557*/ OPC_CheckInteger, 1, ++/*497559*/ OPC_CheckType, MVT::i32, ++/*497561*/ OPC_MoveParent, ++/*497562*/ OPC_MoveChild6, ++/*497563*/ OPC_CheckInteger, 1, ++/*497565*/ OPC_CheckType, MVT::i32, ++/*497567*/ OPC_MoveParent, ++/*497568*/ OPC_MoveChild7, ++/*497569*/ OPC_CheckInteger, 1, ++/*497571*/ OPC_CheckType, MVT::i32, ++/*497573*/ OPC_MoveParent, ++/*497574*/ OPC_MoveChild, 8, ++/*497576*/ OPC_CheckInteger, 1, ++/*497578*/ OPC_CheckType, MVT::i32, ++/*497580*/ OPC_MoveParent, ++/*497581*/ OPC_MoveChild, 9, ++/*497583*/ OPC_CheckInteger, 1, ++/*497585*/ OPC_CheckType, MVT::i32, ++/*497587*/ OPC_MoveParent, ++/*497588*/ OPC_MoveChild, 10, ++/*497590*/ OPC_CheckInteger, 1, ++/*497592*/ OPC_CheckType, MVT::i32, ++/*497594*/ OPC_MoveParent, ++/*497595*/ OPC_MoveChild, 11, ++/*497597*/ OPC_CheckInteger, 1, ++/*497599*/ OPC_CheckType, MVT::i32, ++/*497601*/ OPC_MoveParent, ++/*497602*/ OPC_MoveChild, 12, ++/*497604*/ OPC_CheckInteger, 1, ++/*497606*/ OPC_CheckType, MVT::i32, ++/*497608*/ OPC_MoveParent, ++/*497609*/ OPC_MoveChild, 13, ++/*497611*/ OPC_CheckInteger, 1, ++/*497613*/ OPC_CheckType, MVT::i32, ++/*497615*/ OPC_MoveParent, ++/*497616*/ OPC_MoveChild, 14, ++/*497618*/ OPC_CheckInteger, 1, ++/*497620*/ OPC_CheckType, MVT::i32, ++/*497622*/ OPC_MoveParent, ++/*497623*/ OPC_MoveChild, 15, ++/*497625*/ OPC_CheckInteger, 1, ++/*497627*/ OPC_CheckType, MVT::i32, ++/*497629*/ OPC_MoveParent, ++/*497630*/ OPC_CheckType, MVT::v16i16, ++/*497632*/ OPC_MoveParent, ++/*497633*/ OPC_CheckType, MVT::v16i16, ++/*497635*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*497637*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$a)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 181 ++ // Dst: (XVAVG_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*497645*/ 0, /*End of Scope*/ ++/*497646*/ /*Scope*/ 75|128,3/*459*/, /*->498107*/ ++/*497648*/ OPC_RecordChild0, // #1 = $b ++/*497649*/ OPC_MoveChild1, ++/*497650*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*497653*/ OPC_MoveChild0, ++/*497654*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*497657*/ OPC_Scope, 94|128,1/*222*/, /*->497882*/ // 2 children in Scope ++/*497660*/ OPC_CheckChild0Same, 0, ++/*497662*/ OPC_CheckChild1Same, 1, ++/*497664*/ OPC_MoveParent, ++/*497665*/ OPC_MoveChild1, ++/*497666*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*497669*/ OPC_CheckChild0Integer, 15, ++/*497671*/ OPC_CheckChild0Type, MVT::i32, ++/*497673*/ OPC_CheckChild1Integer, 15, ++/*497675*/ OPC_CheckChild1Type, MVT::i32, ++/*497677*/ OPC_CheckChild2Integer, 15, ++/*497679*/ OPC_CheckChild2Type, MVT::i32, ++/*497681*/ OPC_CheckChild3Integer, 15, ++/*497683*/ OPC_CheckChild3Type, MVT::i32, ++/*497685*/ OPC_CheckChild4Integer, 15, ++/*497687*/ OPC_CheckChild4Type, MVT::i32, ++/*497689*/ OPC_MoveChild5, ++/*497690*/ OPC_CheckInteger, 15, ++/*497692*/ OPC_CheckType, MVT::i32, ++/*497694*/ OPC_MoveParent, ++/*497695*/ OPC_MoveChild6, ++/*497696*/ OPC_CheckInteger, 15, ++/*497698*/ OPC_CheckType, MVT::i32, ++/*497700*/ OPC_MoveParent, ++/*497701*/ OPC_MoveChild7, ++/*497702*/ OPC_CheckInteger, 15, ++/*497704*/ OPC_CheckType, MVT::i32, ++/*497706*/ OPC_MoveParent, ++/*497707*/ OPC_MoveChild, 8, ++/*497709*/ OPC_CheckInteger, 15, ++/*497711*/ OPC_CheckType, MVT::i32, ++/*497713*/ OPC_MoveParent, ++/*497714*/ OPC_MoveChild, 9, ++/*497716*/ OPC_CheckInteger, 15, ++/*497718*/ OPC_CheckType, MVT::i32, ++/*497720*/ OPC_MoveParent, ++/*497721*/ OPC_MoveChild, 10, ++/*497723*/ OPC_CheckInteger, 15, ++/*497725*/ OPC_CheckType, MVT::i32, ++/*497727*/ OPC_MoveParent, ++/*497728*/ OPC_MoveChild, 11, ++/*497730*/ OPC_CheckInteger, 15, ++/*497732*/ OPC_CheckType, MVT::i32, ++/*497734*/ OPC_MoveParent, ++/*497735*/ OPC_MoveChild, 12, ++/*497737*/ OPC_CheckInteger, 15, ++/*497739*/ OPC_CheckType, MVT::i32, ++/*497741*/ OPC_MoveParent, ++/*497742*/ OPC_MoveChild, 13, ++/*497744*/ OPC_CheckInteger, 15, ++/*497746*/ OPC_CheckType, MVT::i32, ++/*497748*/ OPC_MoveParent, ++/*497749*/ OPC_MoveChild, 14, ++/*497751*/ OPC_CheckInteger, 15, ++/*497753*/ OPC_CheckType, MVT::i32, ++/*497755*/ OPC_MoveParent, ++/*497756*/ OPC_MoveChild, 15, ++/*497758*/ OPC_CheckInteger, 15, ++/*497760*/ OPC_CheckType, MVT::i32, ++/*497762*/ OPC_MoveParent, ++/*497763*/ OPC_CheckType, MVT::v16i16, ++/*497765*/ OPC_MoveParent, ++/*497766*/ OPC_MoveParent, ++/*497767*/ OPC_MoveParent, ++/*497768*/ OPC_MoveParent, ++/*497769*/ OPC_MoveChild1, ++/*497770*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*497773*/ OPC_CheckChild0Integer, 1, ++/*497775*/ OPC_CheckChild0Type, MVT::i32, ++/*497777*/ OPC_CheckChild1Integer, 1, ++/*497779*/ OPC_CheckChild1Type, MVT::i32, ++/*497781*/ OPC_CheckChild2Integer, 1, ++/*497783*/ OPC_CheckChild2Type, MVT::i32, ++/*497785*/ OPC_CheckChild3Integer, 1, ++/*497787*/ OPC_CheckChild3Type, MVT::i32, ++/*497789*/ OPC_CheckChild4Integer, 1, ++/*497791*/ OPC_CheckChild4Type, MVT::i32, ++/*497793*/ OPC_MoveChild5, ++/*497794*/ OPC_CheckInteger, 1, ++/*497796*/ OPC_CheckType, MVT::i32, ++/*497798*/ OPC_MoveParent, ++/*497799*/ OPC_MoveChild6, ++/*497800*/ OPC_CheckInteger, 1, ++/*497802*/ OPC_CheckType, MVT::i32, ++/*497804*/ OPC_MoveParent, ++/*497805*/ OPC_MoveChild7, ++/*497806*/ OPC_CheckInteger, 1, ++/*497808*/ OPC_CheckType, MVT::i32, ++/*497810*/ OPC_MoveParent, ++/*497811*/ OPC_MoveChild, 8, ++/*497813*/ OPC_CheckInteger, 1, ++/*497815*/ OPC_CheckType, MVT::i32, ++/*497817*/ OPC_MoveParent, ++/*497818*/ OPC_MoveChild, 9, ++/*497820*/ OPC_CheckInteger, 1, ++/*497822*/ OPC_CheckType, MVT::i32, ++/*497824*/ OPC_MoveParent, ++/*497825*/ OPC_MoveChild, 10, ++/*497827*/ OPC_CheckInteger, 1, ++/*497829*/ OPC_CheckType, MVT::i32, ++/*497831*/ OPC_MoveParent, ++/*497832*/ OPC_MoveChild, 11, ++/*497834*/ OPC_CheckInteger, 1, ++/*497836*/ OPC_CheckType, MVT::i32, ++/*497838*/ OPC_MoveParent, ++/*497839*/ OPC_MoveChild, 12, ++/*497841*/ OPC_CheckInteger, 1, ++/*497843*/ OPC_CheckType, MVT::i32, ++/*497845*/ OPC_MoveParent, ++/*497846*/ OPC_MoveChild, 13, ++/*497848*/ OPC_CheckInteger, 1, ++/*497850*/ OPC_CheckType, MVT::i32, ++/*497852*/ OPC_MoveParent, ++/*497853*/ OPC_MoveChild, 14, ++/*497855*/ OPC_CheckInteger, 1, ++/*497857*/ OPC_CheckType, MVT::i32, ++/*497859*/ OPC_MoveParent, ++/*497860*/ OPC_MoveChild, 15, ++/*497862*/ OPC_CheckInteger, 1, ++/*497864*/ OPC_CheckType, MVT::i32, ++/*497866*/ OPC_MoveParent, ++/*497867*/ OPC_CheckType, MVT::v16i16, ++/*497869*/ OPC_MoveParent, ++/*497870*/ OPC_CheckType, MVT::v16i16, ++/*497872*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*497874*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 181 ++ // Dst: (XVAVG_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*497882*/ /*Scope*/ 94|128,1/*222*/, /*->498106*/ ++/*497884*/ OPC_CheckChild0Same, 1, ++/*497886*/ OPC_CheckChild1Same, 0, ++/*497888*/ OPC_MoveParent, ++/*497889*/ OPC_MoveChild1, ++/*497890*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*497893*/ OPC_CheckChild0Integer, 15, ++/*497895*/ OPC_CheckChild0Type, MVT::i32, ++/*497897*/ OPC_CheckChild1Integer, 15, ++/*497899*/ OPC_CheckChild1Type, MVT::i32, ++/*497901*/ OPC_CheckChild2Integer, 15, ++/*497903*/ OPC_CheckChild2Type, MVT::i32, ++/*497905*/ OPC_CheckChild3Integer, 15, ++/*497907*/ OPC_CheckChild3Type, MVT::i32, ++/*497909*/ OPC_CheckChild4Integer, 15, ++/*497911*/ OPC_CheckChild4Type, MVT::i32, ++/*497913*/ OPC_MoveChild5, ++/*497914*/ OPC_CheckInteger, 15, ++/*497916*/ OPC_CheckType, MVT::i32, ++/*497918*/ OPC_MoveParent, ++/*497919*/ OPC_MoveChild6, ++/*497920*/ OPC_CheckInteger, 15, ++/*497922*/ OPC_CheckType, MVT::i32, ++/*497924*/ OPC_MoveParent, ++/*497925*/ OPC_MoveChild7, ++/*497926*/ OPC_CheckInteger, 15, ++/*497928*/ OPC_CheckType, MVT::i32, ++/*497930*/ OPC_MoveParent, ++/*497931*/ OPC_MoveChild, 8, ++/*497933*/ OPC_CheckInteger, 15, ++/*497935*/ OPC_CheckType, MVT::i32, ++/*497937*/ OPC_MoveParent, ++/*497938*/ OPC_MoveChild, 9, ++/*497940*/ OPC_CheckInteger, 15, ++/*497942*/ OPC_CheckType, MVT::i32, ++/*497944*/ OPC_MoveParent, ++/*497945*/ OPC_MoveChild, 10, ++/*497947*/ OPC_CheckInteger, 15, ++/*497949*/ OPC_CheckType, MVT::i32, ++/*497951*/ OPC_MoveParent, ++/*497952*/ OPC_MoveChild, 11, ++/*497954*/ OPC_CheckInteger, 15, ++/*497956*/ OPC_CheckType, MVT::i32, ++/*497958*/ OPC_MoveParent, ++/*497959*/ OPC_MoveChild, 12, ++/*497961*/ OPC_CheckInteger, 15, ++/*497963*/ OPC_CheckType, MVT::i32, ++/*497965*/ OPC_MoveParent, ++/*497966*/ OPC_MoveChild, 13, ++/*497968*/ OPC_CheckInteger, 15, ++/*497970*/ OPC_CheckType, MVT::i32, ++/*497972*/ OPC_MoveParent, ++/*497973*/ OPC_MoveChild, 14, ++/*497975*/ OPC_CheckInteger, 15, ++/*497977*/ OPC_CheckType, MVT::i32, ++/*497979*/ OPC_MoveParent, ++/*497980*/ OPC_MoveChild, 15, ++/*497982*/ OPC_CheckInteger, 15, ++/*497984*/ OPC_CheckType, MVT::i32, ++/*497986*/ OPC_MoveParent, ++/*497987*/ OPC_CheckType, MVT::v16i16, ++/*497989*/ OPC_MoveParent, ++/*497990*/ OPC_MoveParent, ++/*497991*/ OPC_MoveParent, ++/*497992*/ OPC_MoveParent, ++/*497993*/ OPC_MoveChild1, ++/*497994*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*497997*/ OPC_CheckChild0Integer, 1, ++/*497999*/ OPC_CheckChild0Type, MVT::i32, ++/*498001*/ OPC_CheckChild1Integer, 1, ++/*498003*/ OPC_CheckChild1Type, MVT::i32, ++/*498005*/ OPC_CheckChild2Integer, 1, ++/*498007*/ OPC_CheckChild2Type, MVT::i32, ++/*498009*/ OPC_CheckChild3Integer, 1, ++/*498011*/ OPC_CheckChild3Type, MVT::i32, ++/*498013*/ OPC_CheckChild4Integer, 1, ++/*498015*/ OPC_CheckChild4Type, MVT::i32, ++/*498017*/ OPC_MoveChild5, ++/*498018*/ OPC_CheckInteger, 1, ++/*498020*/ OPC_CheckType, MVT::i32, ++/*498022*/ OPC_MoveParent, ++/*498023*/ OPC_MoveChild6, ++/*498024*/ OPC_CheckInteger, 1, ++/*498026*/ OPC_CheckType, MVT::i32, ++/*498028*/ OPC_MoveParent, ++/*498029*/ OPC_MoveChild7, ++/*498030*/ OPC_CheckInteger, 1, ++/*498032*/ OPC_CheckType, MVT::i32, ++/*498034*/ OPC_MoveParent, ++/*498035*/ OPC_MoveChild, 8, ++/*498037*/ OPC_CheckInteger, 1, ++/*498039*/ OPC_CheckType, MVT::i32, ++/*498041*/ OPC_MoveParent, ++/*498042*/ OPC_MoveChild, 9, ++/*498044*/ OPC_CheckInteger, 1, ++/*498046*/ OPC_CheckType, MVT::i32, ++/*498048*/ OPC_MoveParent, ++/*498049*/ OPC_MoveChild, 10, ++/*498051*/ OPC_CheckInteger, 1, ++/*498053*/ OPC_CheckType, MVT::i32, ++/*498055*/ OPC_MoveParent, ++/*498056*/ OPC_MoveChild, 11, ++/*498058*/ OPC_CheckInteger, 1, ++/*498060*/ OPC_CheckType, MVT::i32, ++/*498062*/ OPC_MoveParent, ++/*498063*/ OPC_MoveChild, 12, ++/*498065*/ OPC_CheckInteger, 1, ++/*498067*/ OPC_CheckType, MVT::i32, ++/*498069*/ OPC_MoveParent, ++/*498070*/ OPC_MoveChild, 13, ++/*498072*/ OPC_CheckInteger, 1, ++/*498074*/ OPC_CheckType, MVT::i32, ++/*498076*/ OPC_MoveParent, ++/*498077*/ OPC_MoveChild, 14, ++/*498079*/ OPC_CheckInteger, 1, ++/*498081*/ OPC_CheckType, MVT::i32, ++/*498083*/ OPC_MoveParent, ++/*498084*/ OPC_MoveChild, 15, ++/*498086*/ OPC_CheckInteger, 1, ++/*498088*/ OPC_CheckType, MVT::i32, ++/*498090*/ OPC_MoveParent, ++/*498091*/ OPC_CheckType, MVT::v16i16, ++/*498093*/ OPC_MoveParent, ++/*498094*/ OPC_CheckType, MVT::v16i16, ++/*498096*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*498098*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })))), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 181 ++ // Dst: (XVAVG_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*498106*/ 0, /*End of Scope*/ ++/*498107*/ /*Scope*/ 76|128,3/*460*/, /*->498569*/ ++/*498109*/ OPC_MoveChild0, ++/*498110*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*498113*/ OPC_MoveChild0, ++/*498114*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*498117*/ OPC_Scope, 95|128,1/*223*/, /*->498343*/ // 2 children in Scope ++/*498120*/ OPC_CheckChild0Same, 0, ++/*498122*/ OPC_RecordChild1, // #1 = $b ++/*498123*/ OPC_MoveParent, ++/*498124*/ OPC_MoveChild1, ++/*498125*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*498128*/ OPC_CheckChild0Integer, 15, ++/*498130*/ OPC_CheckChild0Type, MVT::i32, ++/*498132*/ OPC_CheckChild1Integer, 15, ++/*498134*/ OPC_CheckChild1Type, MVT::i32, ++/*498136*/ OPC_CheckChild2Integer, 15, ++/*498138*/ OPC_CheckChild2Type, MVT::i32, ++/*498140*/ OPC_CheckChild3Integer, 15, ++/*498142*/ OPC_CheckChild3Type, MVT::i32, ++/*498144*/ OPC_CheckChild4Integer, 15, ++/*498146*/ OPC_CheckChild4Type, MVT::i32, ++/*498148*/ OPC_MoveChild5, ++/*498149*/ OPC_CheckInteger, 15, ++/*498151*/ OPC_CheckType, MVT::i32, ++/*498153*/ OPC_MoveParent, ++/*498154*/ OPC_MoveChild6, ++/*498155*/ OPC_CheckInteger, 15, ++/*498157*/ OPC_CheckType, MVT::i32, ++/*498159*/ OPC_MoveParent, ++/*498160*/ OPC_MoveChild7, ++/*498161*/ OPC_CheckInteger, 15, ++/*498163*/ OPC_CheckType, MVT::i32, ++/*498165*/ OPC_MoveParent, ++/*498166*/ OPC_MoveChild, 8, ++/*498168*/ OPC_CheckInteger, 15, ++/*498170*/ OPC_CheckType, MVT::i32, ++/*498172*/ OPC_MoveParent, ++/*498173*/ OPC_MoveChild, 9, ++/*498175*/ OPC_CheckInteger, 15, ++/*498177*/ OPC_CheckType, MVT::i32, ++/*498179*/ OPC_MoveParent, ++/*498180*/ OPC_MoveChild, 10, ++/*498182*/ OPC_CheckInteger, 15, ++/*498184*/ OPC_CheckType, MVT::i32, ++/*498186*/ OPC_MoveParent, ++/*498187*/ OPC_MoveChild, 11, ++/*498189*/ OPC_CheckInteger, 15, ++/*498191*/ OPC_CheckType, MVT::i32, ++/*498193*/ OPC_MoveParent, ++/*498194*/ OPC_MoveChild, 12, ++/*498196*/ OPC_CheckInteger, 15, ++/*498198*/ OPC_CheckType, MVT::i32, ++/*498200*/ OPC_MoveParent, ++/*498201*/ OPC_MoveChild, 13, ++/*498203*/ OPC_CheckInteger, 15, ++/*498205*/ OPC_CheckType, MVT::i32, ++/*498207*/ OPC_MoveParent, ++/*498208*/ OPC_MoveChild, 14, ++/*498210*/ OPC_CheckInteger, 15, ++/*498212*/ OPC_CheckType, MVT::i32, ++/*498214*/ OPC_MoveParent, ++/*498215*/ OPC_MoveChild, 15, ++/*498217*/ OPC_CheckInteger, 15, ++/*498219*/ OPC_CheckType, MVT::i32, ++/*498221*/ OPC_MoveParent, ++/*498222*/ OPC_CheckType, MVT::v16i16, ++/*498224*/ OPC_MoveParent, ++/*498225*/ OPC_MoveParent, ++/*498226*/ OPC_CheckChild1Same, 1, ++/*498228*/ OPC_MoveParent, ++/*498229*/ OPC_MoveParent, ++/*498230*/ OPC_MoveChild1, ++/*498231*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*498234*/ OPC_CheckChild0Integer, 1, ++/*498236*/ OPC_CheckChild0Type, MVT::i32, ++/*498238*/ OPC_CheckChild1Integer, 1, ++/*498240*/ OPC_CheckChild1Type, MVT::i32, ++/*498242*/ OPC_CheckChild2Integer, 1, ++/*498244*/ OPC_CheckChild2Type, MVT::i32, ++/*498246*/ OPC_CheckChild3Integer, 1, ++/*498248*/ OPC_CheckChild3Type, MVT::i32, ++/*498250*/ OPC_CheckChild4Integer, 1, ++/*498252*/ OPC_CheckChild4Type, MVT::i32, ++/*498254*/ OPC_MoveChild5, ++/*498255*/ OPC_CheckInteger, 1, ++/*498257*/ OPC_CheckType, MVT::i32, ++/*498259*/ OPC_MoveParent, ++/*498260*/ OPC_MoveChild6, ++/*498261*/ OPC_CheckInteger, 1, ++/*498263*/ OPC_CheckType, MVT::i32, ++/*498265*/ OPC_MoveParent, ++/*498266*/ OPC_MoveChild7, ++/*498267*/ OPC_CheckInteger, 1, ++/*498269*/ OPC_CheckType, MVT::i32, ++/*498271*/ OPC_MoveParent, ++/*498272*/ OPC_MoveChild, 8, ++/*498274*/ OPC_CheckInteger, 1, ++/*498276*/ OPC_CheckType, MVT::i32, ++/*498278*/ OPC_MoveParent, ++/*498279*/ OPC_MoveChild, 9, ++/*498281*/ OPC_CheckInteger, 1, ++/*498283*/ OPC_CheckType, MVT::i32, ++/*498285*/ OPC_MoveParent, ++/*498286*/ OPC_MoveChild, 10, ++/*498288*/ OPC_CheckInteger, 1, ++/*498290*/ OPC_CheckType, MVT::i32, ++/*498292*/ OPC_MoveParent, ++/*498293*/ OPC_MoveChild, 11, ++/*498295*/ OPC_CheckInteger, 1, ++/*498297*/ OPC_CheckType, MVT::i32, ++/*498299*/ OPC_MoveParent, ++/*498300*/ OPC_MoveChild, 12, ++/*498302*/ OPC_CheckInteger, 1, ++/*498304*/ OPC_CheckType, MVT::i32, ++/*498306*/ OPC_MoveParent, ++/*498307*/ OPC_MoveChild, 13, ++/*498309*/ OPC_CheckInteger, 1, ++/*498311*/ OPC_CheckType, MVT::i32, ++/*498313*/ OPC_MoveParent, ++/*498314*/ OPC_MoveChild, 14, ++/*498316*/ OPC_CheckInteger, 1, ++/*498318*/ OPC_CheckType, MVT::i32, ++/*498320*/ OPC_MoveParent, ++/*498321*/ OPC_MoveChild, 15, ++/*498323*/ OPC_CheckInteger, 1, ++/*498325*/ OPC_CheckType, MVT::i32, ++/*498327*/ OPC_MoveParent, ++/*498328*/ OPC_CheckType, MVT::v16i16, ++/*498330*/ OPC_MoveParent, ++/*498331*/ OPC_CheckType, MVT::v16i16, ++/*498333*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*498335*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 181 ++ // Dst: (XVAVG_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*498343*/ /*Scope*/ 95|128,1/*223*/, /*->498568*/ ++/*498345*/ OPC_RecordChild0, // #1 = $b ++/*498346*/ OPC_CheckChild1Same, 0, ++/*498348*/ OPC_MoveParent, ++/*498349*/ OPC_MoveChild1, ++/*498350*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*498353*/ OPC_CheckChild0Integer, 15, ++/*498355*/ OPC_CheckChild0Type, MVT::i32, ++/*498357*/ OPC_CheckChild1Integer, 15, ++/*498359*/ OPC_CheckChild1Type, MVT::i32, ++/*498361*/ OPC_CheckChild2Integer, 15, ++/*498363*/ OPC_CheckChild2Type, MVT::i32, ++/*498365*/ OPC_CheckChild3Integer, 15, ++/*498367*/ OPC_CheckChild3Type, MVT::i32, ++/*498369*/ OPC_CheckChild4Integer, 15, ++/*498371*/ OPC_CheckChild4Type, MVT::i32, ++/*498373*/ OPC_MoveChild5, ++/*498374*/ OPC_CheckInteger, 15, ++/*498376*/ OPC_CheckType, MVT::i32, ++/*498378*/ OPC_MoveParent, ++/*498379*/ OPC_MoveChild6, ++/*498380*/ OPC_CheckInteger, 15, ++/*498382*/ OPC_CheckType, MVT::i32, ++/*498384*/ OPC_MoveParent, ++/*498385*/ OPC_MoveChild7, ++/*498386*/ OPC_CheckInteger, 15, ++/*498388*/ OPC_CheckType, MVT::i32, ++/*498390*/ OPC_MoveParent, ++/*498391*/ OPC_MoveChild, 8, ++/*498393*/ OPC_CheckInteger, 15, ++/*498395*/ OPC_CheckType, MVT::i32, ++/*498397*/ OPC_MoveParent, ++/*498398*/ OPC_MoveChild, 9, ++/*498400*/ OPC_CheckInteger, 15, ++/*498402*/ OPC_CheckType, MVT::i32, ++/*498404*/ OPC_MoveParent, ++/*498405*/ OPC_MoveChild, 10, ++/*498407*/ OPC_CheckInteger, 15, ++/*498409*/ OPC_CheckType, MVT::i32, ++/*498411*/ OPC_MoveParent, ++/*498412*/ OPC_MoveChild, 11, ++/*498414*/ OPC_CheckInteger, 15, ++/*498416*/ OPC_CheckType, MVT::i32, ++/*498418*/ OPC_MoveParent, ++/*498419*/ OPC_MoveChild, 12, ++/*498421*/ OPC_CheckInteger, 15, ++/*498423*/ OPC_CheckType, MVT::i32, ++/*498425*/ OPC_MoveParent, ++/*498426*/ OPC_MoveChild, 13, ++/*498428*/ OPC_CheckInteger, 15, ++/*498430*/ OPC_CheckType, MVT::i32, ++/*498432*/ OPC_MoveParent, ++/*498433*/ OPC_MoveChild, 14, ++/*498435*/ OPC_CheckInteger, 15, ++/*498437*/ OPC_CheckType, MVT::i32, ++/*498439*/ OPC_MoveParent, ++/*498440*/ OPC_MoveChild, 15, ++/*498442*/ OPC_CheckInteger, 15, ++/*498444*/ OPC_CheckType, MVT::i32, ++/*498446*/ OPC_MoveParent, ++/*498447*/ OPC_CheckType, MVT::v16i16, ++/*498449*/ OPC_MoveParent, ++/*498450*/ OPC_MoveParent, ++/*498451*/ OPC_CheckChild1Same, 1, ++/*498453*/ OPC_MoveParent, ++/*498454*/ OPC_MoveParent, ++/*498455*/ OPC_MoveChild1, ++/*498456*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*498459*/ OPC_CheckChild0Integer, 1, ++/*498461*/ OPC_CheckChild0Type, MVT::i32, ++/*498463*/ OPC_CheckChild1Integer, 1, ++/*498465*/ OPC_CheckChild1Type, MVT::i32, ++/*498467*/ OPC_CheckChild2Integer, 1, ++/*498469*/ OPC_CheckChild2Type, MVT::i32, ++/*498471*/ OPC_CheckChild3Integer, 1, ++/*498473*/ OPC_CheckChild3Type, MVT::i32, ++/*498475*/ OPC_CheckChild4Integer, 1, ++/*498477*/ OPC_CheckChild4Type, MVT::i32, ++/*498479*/ OPC_MoveChild5, ++/*498480*/ OPC_CheckInteger, 1, ++/*498482*/ OPC_CheckType, MVT::i32, ++/*498484*/ OPC_MoveParent, ++/*498485*/ OPC_MoveChild6, ++/*498486*/ OPC_CheckInteger, 1, ++/*498488*/ OPC_CheckType, MVT::i32, ++/*498490*/ OPC_MoveParent, ++/*498491*/ OPC_MoveChild7, ++/*498492*/ OPC_CheckInteger, 1, ++/*498494*/ OPC_CheckType, MVT::i32, ++/*498496*/ OPC_MoveParent, ++/*498497*/ OPC_MoveChild, 8, ++/*498499*/ OPC_CheckInteger, 1, ++/*498501*/ OPC_CheckType, MVT::i32, ++/*498503*/ OPC_MoveParent, ++/*498504*/ OPC_MoveChild, 9, ++/*498506*/ OPC_CheckInteger, 1, ++/*498508*/ OPC_CheckType, MVT::i32, ++/*498510*/ OPC_MoveParent, ++/*498511*/ OPC_MoveChild, 10, ++/*498513*/ OPC_CheckInteger, 1, ++/*498515*/ OPC_CheckType, MVT::i32, ++/*498517*/ OPC_MoveParent, ++/*498518*/ OPC_MoveChild, 11, ++/*498520*/ OPC_CheckInteger, 1, ++/*498522*/ OPC_CheckType, MVT::i32, ++/*498524*/ OPC_MoveParent, ++/*498525*/ OPC_MoveChild, 12, ++/*498527*/ OPC_CheckInteger, 1, ++/*498529*/ OPC_CheckType, MVT::i32, ++/*498531*/ OPC_MoveParent, ++/*498532*/ OPC_MoveChild, 13, ++/*498534*/ OPC_CheckInteger, 1, ++/*498536*/ OPC_CheckType, MVT::i32, ++/*498538*/ OPC_MoveParent, ++/*498539*/ OPC_MoveChild, 14, ++/*498541*/ OPC_CheckInteger, 1, ++/*498543*/ OPC_CheckType, MVT::i32, ++/*498545*/ OPC_MoveParent, ++/*498546*/ OPC_MoveChild, 15, ++/*498548*/ OPC_CheckInteger, 1, ++/*498550*/ OPC_CheckType, MVT::i32, ++/*498552*/ OPC_MoveParent, ++/*498553*/ OPC_CheckType, MVT::v16i16, ++/*498555*/ OPC_MoveParent, ++/*498556*/ OPC_CheckType, MVT::v16i16, ++/*498558*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*498560*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, (add:{ *:[v16i16] } (srl:{ *:[v16i16] } (add:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$b, LASX256H:{ *:[v16i16] }:$a), (build_vector:{ *:[v16i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), LASX256H:{ *:[v16i16] }:$b)), (build_vector:{ *:[v16i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 181 ++ // Dst: (XVAVG_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*498568*/ 0, /*End of Scope*/ ++/*498569*/ 0, /*End of Scope*/ ++/*498570*/ 0, /*End of Scope*/ ++/*498571*/ /*Scope*/ 37|128,5/*677*/, /*->499250*/ ++/*498573*/ OPC_RecordChild0, // #0 = $vs ++/*498574*/ OPC_MoveChild1, ++/*498575*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/*498578*/ OPC_Scope, 77|128,2/*333*/, /*->498914*/ // 2 children in Scope ++/*498581*/ OPC_RecordChild0, // #1 = $vt ++/*498582*/ OPC_MoveChild1, ++/*498583*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*498586*/ OPC_MoveChild0, ++/*498587*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*498590*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*498592*/ OPC_CheckType, MVT::i32, ++/*498594*/ OPC_MoveParent, ++/*498595*/ OPC_MoveChild1, ++/*498596*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*498599*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*498601*/ OPC_CheckType, MVT::i32, ++/*498603*/ OPC_MoveParent, ++/*498604*/ OPC_MoveChild2, ++/*498605*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*498608*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*498610*/ OPC_CheckType, MVT::i32, ++/*498612*/ OPC_MoveParent, ++/*498613*/ OPC_MoveChild3, ++/*498614*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*498617*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*498619*/ OPC_CheckType, MVT::i32, ++/*498621*/ OPC_MoveParent, ++/*498622*/ OPC_MoveChild4, ++/*498623*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*498626*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*498628*/ OPC_CheckType, MVT::i32, ++/*498630*/ OPC_MoveParent, ++/*498631*/ OPC_MoveChild5, ++/*498632*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*498635*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*498637*/ OPC_CheckType, MVT::i32, ++/*498639*/ OPC_MoveParent, ++/*498640*/ OPC_MoveChild6, ++/*498641*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*498644*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*498646*/ OPC_CheckType, MVT::i32, ++/*498648*/ OPC_MoveParent, ++/*498649*/ OPC_MoveChild7, ++/*498650*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*498653*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*498655*/ OPC_CheckType, MVT::i32, ++/*498657*/ OPC_MoveParent, ++/*498658*/ OPC_MoveChild, 8, ++/*498660*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*498663*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*498665*/ OPC_CheckType, MVT::i32, ++/*498667*/ OPC_MoveParent, ++/*498668*/ OPC_MoveChild, 9, ++/*498670*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*498673*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*498675*/ OPC_CheckType, MVT::i32, ++/*498677*/ OPC_MoveParent, ++/*498678*/ OPC_MoveChild, 10, ++/*498680*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*498683*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*498685*/ OPC_CheckType, MVT::i32, ++/*498687*/ OPC_MoveParent, ++/*498688*/ OPC_MoveChild, 11, ++/*498690*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*498693*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*498695*/ OPC_CheckType, MVT::i32, ++/*498697*/ OPC_MoveParent, ++/*498698*/ OPC_MoveChild, 12, ++/*498700*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*498703*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*498705*/ OPC_CheckType, MVT::i32, ++/*498707*/ OPC_MoveParent, ++/*498708*/ OPC_MoveChild, 13, ++/*498710*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*498713*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*498715*/ OPC_CheckType, MVT::i32, ++/*498717*/ OPC_MoveParent, ++/*498718*/ OPC_MoveChild, 14, ++/*498720*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*498723*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*498725*/ OPC_CheckType, MVT::i32, ++/*498727*/ OPC_MoveParent, ++/*498728*/ OPC_MoveChild, 15, ++/*498730*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*498733*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*498735*/ OPC_CheckType, MVT::i32, ++/*498737*/ OPC_MoveParent, ++/*498738*/ OPC_MoveChild, 16, ++/*498740*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*498743*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*498745*/ OPC_CheckType, MVT::i32, ++/*498747*/ OPC_MoveParent, ++/*498748*/ OPC_MoveChild, 17, ++/*498750*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*498753*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*498755*/ OPC_CheckType, MVT::i32, ++/*498757*/ OPC_MoveParent, ++/*498758*/ OPC_MoveChild, 18, ++/*498760*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*498763*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*498765*/ OPC_CheckType, MVT::i32, ++/*498767*/ OPC_MoveParent, ++/*498768*/ OPC_MoveChild, 19, ++/*498770*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*498773*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*498775*/ OPC_CheckType, MVT::i32, ++/*498777*/ OPC_MoveParent, ++/*498778*/ OPC_MoveChild, 20, ++/*498780*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*498783*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*498785*/ OPC_CheckType, MVT::i32, ++/*498787*/ OPC_MoveParent, ++/*498788*/ OPC_MoveChild, 21, ++/*498790*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*498793*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*498795*/ OPC_CheckType, MVT::i32, ++/*498797*/ OPC_MoveParent, ++/*498798*/ OPC_MoveChild, 22, ++/*498800*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*498803*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*498805*/ OPC_CheckType, MVT::i32, ++/*498807*/ OPC_MoveParent, ++/*498808*/ OPC_MoveChild, 23, ++/*498810*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*498813*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*498815*/ OPC_CheckType, MVT::i32, ++/*498817*/ OPC_MoveParent, ++/*498818*/ OPC_MoveChild, 24, ++/*498820*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*498823*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*498825*/ OPC_CheckType, MVT::i32, ++/*498827*/ OPC_MoveParent, ++/*498828*/ OPC_MoveChild, 25, ++/*498830*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*498833*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*498835*/ OPC_CheckType, MVT::i32, ++/*498837*/ OPC_MoveParent, ++/*498838*/ OPC_MoveChild, 26, ++/*498840*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*498843*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*498845*/ OPC_CheckType, MVT::i32, ++/*498847*/ OPC_MoveParent, ++/*498848*/ OPC_MoveChild, 27, ++/*498850*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*498853*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*498855*/ OPC_CheckType, MVT::i32, ++/*498857*/ OPC_MoveParent, ++/*498858*/ OPC_MoveChild, 28, ++/*498860*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*498863*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*498865*/ OPC_CheckType, MVT::i32, ++/*498867*/ OPC_MoveParent, ++/*498868*/ OPC_MoveChild, 29, ++/*498870*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*498873*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*498875*/ OPC_CheckType, MVT::i32, ++/*498877*/ OPC_MoveParent, ++/*498878*/ OPC_MoveChild, 30, ++/*498880*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*498883*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*498885*/ OPC_CheckType, MVT::i32, ++/*498887*/ OPC_MoveParent, ++/*498888*/ OPC_MoveChild, 31, ++/*498890*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*498893*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*498895*/ OPC_CheckType, MVT::i32, ++/*498897*/ OPC_MoveParent, ++/*498898*/ OPC_MoveParent, ++/*498899*/ OPC_CheckType, MVT::v32i8, ++/*498901*/ OPC_MoveParent, ++/*498902*/ OPC_CheckType, MVT::v32i8, ++/*498904*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*498906*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRA_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vs, (and:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vt, (build_vector:{ *:[v32i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))) - Complexity = 137 ++ // Dst: (XVSRA_B:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vs, v32i8:{ *:[v32i8] }:$vt) ++/*498914*/ /*Scope*/ 77|128,2/*333*/, /*->499249*/ ++/*498916*/ OPC_MoveChild0, ++/*498917*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*498920*/ OPC_MoveChild0, ++/*498921*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*498924*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*498926*/ OPC_CheckType, MVT::i32, ++/*498928*/ OPC_MoveParent, ++/*498929*/ OPC_MoveChild1, ++/*498930*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*498933*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*498935*/ OPC_CheckType, MVT::i32, ++/*498937*/ OPC_MoveParent, ++/*498938*/ OPC_MoveChild2, ++/*498939*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*498942*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*498944*/ OPC_CheckType, MVT::i32, ++/*498946*/ OPC_MoveParent, ++/*498947*/ OPC_MoveChild3, ++/*498948*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*498951*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*498953*/ OPC_CheckType, MVT::i32, ++/*498955*/ OPC_MoveParent, ++/*498956*/ OPC_MoveChild4, ++/*498957*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*498960*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*498962*/ OPC_CheckType, MVT::i32, ++/*498964*/ OPC_MoveParent, ++/*498965*/ OPC_MoveChild5, ++/*498966*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*498969*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*498971*/ OPC_CheckType, MVT::i32, ++/*498973*/ OPC_MoveParent, ++/*498974*/ OPC_MoveChild6, ++/*498975*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*498978*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*498980*/ OPC_CheckType, MVT::i32, ++/*498982*/ OPC_MoveParent, ++/*498983*/ OPC_MoveChild7, ++/*498984*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*498987*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*498989*/ OPC_CheckType, MVT::i32, ++/*498991*/ OPC_MoveParent, ++/*498992*/ OPC_MoveChild, 8, ++/*498994*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*498997*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*498999*/ OPC_CheckType, MVT::i32, ++/*499001*/ OPC_MoveParent, ++/*499002*/ OPC_MoveChild, 9, ++/*499004*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*499007*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*499009*/ OPC_CheckType, MVT::i32, ++/*499011*/ OPC_MoveParent, ++/*499012*/ OPC_MoveChild, 10, ++/*499014*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*499017*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*499019*/ OPC_CheckType, MVT::i32, ++/*499021*/ OPC_MoveParent, ++/*499022*/ OPC_MoveChild, 11, ++/*499024*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*499027*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*499029*/ OPC_CheckType, MVT::i32, ++/*499031*/ OPC_MoveParent, ++/*499032*/ OPC_MoveChild, 12, ++/*499034*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*499037*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*499039*/ OPC_CheckType, MVT::i32, ++/*499041*/ OPC_MoveParent, ++/*499042*/ OPC_MoveChild, 13, ++/*499044*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*499047*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*499049*/ OPC_CheckType, MVT::i32, ++/*499051*/ OPC_MoveParent, ++/*499052*/ OPC_MoveChild, 14, ++/*499054*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*499057*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*499059*/ OPC_CheckType, MVT::i32, ++/*499061*/ OPC_MoveParent, ++/*499062*/ OPC_MoveChild, 15, ++/*499064*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*499067*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*499069*/ OPC_CheckType, MVT::i32, ++/*499071*/ OPC_MoveParent, ++/*499072*/ OPC_MoveChild, 16, ++/*499074*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*499077*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*499079*/ OPC_CheckType, MVT::i32, ++/*499081*/ OPC_MoveParent, ++/*499082*/ OPC_MoveChild, 17, ++/*499084*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*499087*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*499089*/ OPC_CheckType, MVT::i32, ++/*499091*/ OPC_MoveParent, ++/*499092*/ OPC_MoveChild, 18, ++/*499094*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*499097*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*499099*/ OPC_CheckType, MVT::i32, ++/*499101*/ OPC_MoveParent, ++/*499102*/ OPC_MoveChild, 19, ++/*499104*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*499107*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*499109*/ OPC_CheckType, MVT::i32, ++/*499111*/ OPC_MoveParent, ++/*499112*/ OPC_MoveChild, 20, ++/*499114*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*499117*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*499119*/ OPC_CheckType, MVT::i32, ++/*499121*/ OPC_MoveParent, ++/*499122*/ OPC_MoveChild, 21, ++/*499124*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*499127*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*499129*/ OPC_CheckType, MVT::i32, ++/*499131*/ OPC_MoveParent, ++/*499132*/ OPC_MoveChild, 22, ++/*499134*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*499137*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*499139*/ OPC_CheckType, MVT::i32, ++/*499141*/ OPC_MoveParent, ++/*499142*/ OPC_MoveChild, 23, ++/*499144*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*499147*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*499149*/ OPC_CheckType, MVT::i32, ++/*499151*/ OPC_MoveParent, ++/*499152*/ OPC_MoveChild, 24, ++/*499154*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*499157*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*499159*/ OPC_CheckType, MVT::i32, ++/*499161*/ OPC_MoveParent, ++/*499162*/ OPC_MoveChild, 25, ++/*499164*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*499167*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*499169*/ OPC_CheckType, MVT::i32, ++/*499171*/ OPC_MoveParent, ++/*499172*/ OPC_MoveChild, 26, ++/*499174*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*499177*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*499179*/ OPC_CheckType, MVT::i32, ++/*499181*/ OPC_MoveParent, ++/*499182*/ OPC_MoveChild, 27, ++/*499184*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*499187*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*499189*/ OPC_CheckType, MVT::i32, ++/*499191*/ OPC_MoveParent, ++/*499192*/ OPC_MoveChild, 28, ++/*499194*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*499197*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*499199*/ OPC_CheckType, MVT::i32, ++/*499201*/ OPC_MoveParent, ++/*499202*/ OPC_MoveChild, 29, ++/*499204*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*499207*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*499209*/ OPC_CheckType, MVT::i32, ++/*499211*/ OPC_MoveParent, ++/*499212*/ OPC_MoveChild, 30, ++/*499214*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*499217*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*499219*/ OPC_CheckType, MVT::i32, ++/*499221*/ OPC_MoveParent, ++/*499222*/ OPC_MoveChild, 31, ++/*499224*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*499227*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*499229*/ OPC_CheckType, MVT::i32, ++/*499231*/ OPC_MoveParent, ++/*499232*/ OPC_MoveParent, ++/*499233*/ OPC_RecordChild1, // #1 = $vt ++/*499234*/ OPC_CheckType, MVT::v32i8, ++/*499236*/ OPC_MoveParent, ++/*499237*/ OPC_CheckType, MVT::v32i8, ++/*499239*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*499241*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRA_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vs, (and:{ *:[v32i8] } (build_vector:{ *:[v32i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v32i8:{ *:[v32i8] }:$vt)) - Complexity = 137 ++ // Dst: (XVSRA_B:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vs, v32i8:{ *:[v32i8] }:$vt) ++/*499249*/ 0, /*End of Scope*/ ++/*499250*/ /*Scope*/ 119|128,14|128,3/*51063*/, /*->550316*/ ++/*499253*/ OPC_MoveChild0, ++/*499254*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*499257*/ OPC_Scope, 28|128,117|128,2/*47772*/, /*->547033*/ // 4 children in Scope ++/*499261*/ OPC_MoveChild0, ++/*499262*/ OPC_SwitchOpcode /*2 cases */, 83|128,88|128,1/*27731*/, TARGET_VAL(ISD::ADD),// ->526999 ++/*499268*/ OPC_Scope, 46|128,53/*6830*/, /*->506101*/ // 9 children in Scope ++/*499271*/ OPC_MoveChild0, ++/*499272*/ OPC_SwitchOpcode /*2 cases */, 122|128,1/*250*/, TARGET_VAL(ISD::BUILD_VECTOR),// ->499527 ++/*499277*/ OPC_CheckChild0Integer, 1, ++/*499279*/ OPC_Scope, 122, /*->499403*/ // 2 children in Scope ++/*499281*/ OPC_CheckChild0Type, MVT::i32, ++/*499283*/ OPC_CheckChild1Integer, 1, ++/*499285*/ OPC_CheckChild1Type, MVT::i32, ++/*499287*/ OPC_CheckChild2Integer, 1, ++/*499289*/ OPC_CheckChild2Type, MVT::i32, ++/*499291*/ OPC_CheckChild3Integer, 1, ++/*499293*/ OPC_CheckChild3Type, MVT::i32, ++/*499295*/ OPC_MoveParent, ++/*499296*/ OPC_MoveChild1, ++/*499297*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*499300*/ OPC_RecordChild0, // #0 = $a ++/*499301*/ OPC_RecordChild1, // #1 = $b ++/*499302*/ OPC_MoveParent, ++/*499303*/ OPC_MoveParent, ++/*499304*/ OPC_MoveChild1, ++/*499305*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*499308*/ OPC_MoveChild0, ++/*499309*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*499312*/ OPC_MoveChild0, ++/*499313*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*499316*/ OPC_CheckChild0Integer, 1, ++/*499318*/ OPC_CheckChild0Type, MVT::i32, ++/*499320*/ OPC_CheckChild1Integer, 1, ++/*499322*/ OPC_CheckChild1Type, MVT::i32, ++/*499324*/ OPC_CheckChild2Integer, 1, ++/*499326*/ OPC_CheckChild2Type, MVT::i32, ++/*499328*/ OPC_CheckChild3Integer, 1, ++/*499330*/ OPC_CheckChild3Type, MVT::i32, ++/*499332*/ OPC_MoveParent, ++/*499333*/ OPC_MoveChild1, ++/*499334*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*499337*/ OPC_CheckChild0Same, 0, ++/*499339*/ OPC_CheckChild1Same, 1, ++/*499341*/ OPC_MoveParent, ++/*499342*/ OPC_MoveParent, ++/*499343*/ OPC_MoveChild1, ++/*499344*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*499347*/ OPC_CheckChild0Integer, 31, ++/*499349*/ OPC_CheckChild0Type, MVT::i32, ++/*499351*/ OPC_CheckChild1Integer, 31, ++/*499353*/ OPC_CheckChild1Type, MVT::i32, ++/*499355*/ OPC_CheckChild2Integer, 31, ++/*499357*/ OPC_CheckChild2Type, MVT::i32, ++/*499359*/ OPC_CheckChild3Integer, 31, ++/*499361*/ OPC_CheckChild3Type, MVT::i32, ++/*499363*/ OPC_CheckType, MVT::v4i32, ++/*499365*/ OPC_MoveParent, ++/*499366*/ OPC_MoveParent, ++/*499367*/ OPC_MoveParent, ++/*499368*/ OPC_MoveChild1, ++/*499369*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*499372*/ OPC_CheckChild0Integer, 1, ++/*499374*/ OPC_CheckChild0Type, MVT::i32, ++/*499376*/ OPC_CheckChild1Integer, 1, ++/*499378*/ OPC_CheckChild1Type, MVT::i32, ++/*499380*/ OPC_CheckChild2Integer, 1, ++/*499382*/ OPC_CheckChild2Type, MVT::i32, ++/*499384*/ OPC_CheckChild3Integer, 1, ++/*499386*/ OPC_CheckChild3Type, MVT::i32, ++/*499388*/ OPC_CheckType, MVT::v4i32, ++/*499390*/ OPC_MoveParent, ++/*499391*/ OPC_CheckType, MVT::v4i32, ++/*499393*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*499395*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b)), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*499403*/ /*Scope*/ 122, /*->499526*/ ++/*499404*/ OPC_CheckChild0Type, MVT::i64, ++/*499406*/ OPC_CheckChild1Integer, 1, ++/*499408*/ OPC_CheckChild1Type, MVT::i64, ++/*499410*/ OPC_CheckChild2Integer, 1, ++/*499412*/ OPC_CheckChild2Type, MVT::i64, ++/*499414*/ OPC_CheckChild3Integer, 1, ++/*499416*/ OPC_CheckChild3Type, MVT::i64, ++/*499418*/ OPC_MoveParent, ++/*499419*/ OPC_MoveChild1, ++/*499420*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*499423*/ OPC_RecordChild0, // #0 = $a ++/*499424*/ OPC_RecordChild1, // #1 = $b ++/*499425*/ OPC_MoveParent, ++/*499426*/ OPC_MoveParent, ++/*499427*/ OPC_MoveChild1, ++/*499428*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*499431*/ OPC_MoveChild0, ++/*499432*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*499435*/ OPC_MoveChild0, ++/*499436*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*499439*/ OPC_CheckChild0Integer, 1, ++/*499441*/ OPC_CheckChild0Type, MVT::i64, ++/*499443*/ OPC_CheckChild1Integer, 1, ++/*499445*/ OPC_CheckChild1Type, MVT::i64, ++/*499447*/ OPC_CheckChild2Integer, 1, ++/*499449*/ OPC_CheckChild2Type, MVT::i64, ++/*499451*/ OPC_CheckChild3Integer, 1, ++/*499453*/ OPC_CheckChild3Type, MVT::i64, ++/*499455*/ OPC_MoveParent, ++/*499456*/ OPC_MoveChild1, ++/*499457*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*499460*/ OPC_CheckChild0Same, 0, ++/*499462*/ OPC_CheckChild1Same, 1, ++/*499464*/ OPC_MoveParent, ++/*499465*/ OPC_MoveParent, ++/*499466*/ OPC_MoveChild1, ++/*499467*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*499470*/ OPC_CheckChild0Integer, 63, ++/*499472*/ OPC_CheckChild0Type, MVT::i64, ++/*499474*/ OPC_CheckChild1Integer, 63, ++/*499476*/ OPC_CheckChild1Type, MVT::i64, ++/*499478*/ OPC_CheckChild2Integer, 63, ++/*499480*/ OPC_CheckChild2Type, MVT::i64, ++/*499482*/ OPC_CheckChild3Integer, 63, ++/*499484*/ OPC_CheckChild3Type, MVT::i64, ++/*499486*/ OPC_CheckType, MVT::v4i64, ++/*499488*/ OPC_MoveParent, ++/*499489*/ OPC_MoveParent, ++/*499490*/ OPC_MoveParent, ++/*499491*/ OPC_MoveChild1, ++/*499492*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*499495*/ OPC_CheckChild0Integer, 1, ++/*499497*/ OPC_CheckChild0Type, MVT::i64, ++/*499499*/ OPC_CheckChild1Integer, 1, ++/*499501*/ OPC_CheckChild1Type, MVT::i64, ++/*499503*/ OPC_CheckChild2Integer, 1, ++/*499505*/ OPC_CheckChild2Type, MVT::i64, ++/*499507*/ OPC_CheckChild3Integer, 1, ++/*499509*/ OPC_CheckChild3Type, MVT::i64, ++/*499511*/ OPC_CheckType, MVT::v4i64, ++/*499513*/ OPC_MoveParent, ++/*499514*/ OPC_CheckType, MVT::v4i64, ++/*499516*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*499518*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b)), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*499526*/ 0, /*End of Scope*/ ++/*499527*/ /*SwitchOpcode*/ 41|128,51/*6569*/, TARGET_VAL(ISD::ADD),// ->506100 ++/*499531*/ OPC_Scope, 74|128,8/*1098*/, /*->500632*/ // 4 children in Scope ++/*499534*/ OPC_MoveChild0, ++/*499535*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*499538*/ OPC_CheckChild0Integer, 1, ++/*499540*/ OPC_CheckChild0Type, MVT::i32, ++/*499542*/ OPC_CheckChild1Integer, 1, ++/*499544*/ OPC_CheckChild1Type, MVT::i32, ++/*499546*/ OPC_CheckChild2Integer, 1, ++/*499548*/ OPC_CheckChild2Type, MVT::i32, ++/*499550*/ OPC_CheckChild3Integer, 1, ++/*499552*/ OPC_CheckChild3Type, MVT::i32, ++/*499554*/ OPC_MoveParent, ++/*499555*/ OPC_RecordChild1, // #0 = $a ++/*499556*/ OPC_MoveParent, ++/*499557*/ OPC_RecordChild1, // #1 = $b ++/*499558*/ OPC_MoveParent, ++/*499559*/ OPC_MoveChild1, ++/*499560*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*499563*/ OPC_MoveChild0, ++/*499564*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*499567*/ OPC_Scope, 22|128,4/*534*/, /*->500104*/ // 4 children in Scope ++/*499570*/ OPC_MoveChild0, ++/*499571*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*499574*/ OPC_Scope, 87, /*->499663*/ // 6 children in Scope ++/*499576*/ OPC_MoveChild0, ++/*499577*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*499580*/ OPC_CheckChild0Integer, 1, ++/*499582*/ OPC_CheckChild0Type, MVT::i32, ++/*499584*/ OPC_CheckChild1Integer, 1, ++/*499586*/ OPC_CheckChild1Type, MVT::i32, ++/*499588*/ OPC_CheckChild2Integer, 1, ++/*499590*/ OPC_CheckChild2Type, MVT::i32, ++/*499592*/ OPC_CheckChild3Integer, 1, ++/*499594*/ OPC_CheckChild3Type, MVT::i32, ++/*499596*/ OPC_MoveParent, ++/*499597*/ OPC_CheckChild1Same, 0, ++/*499599*/ OPC_MoveParent, ++/*499600*/ OPC_CheckChild1Same, 1, ++/*499602*/ OPC_MoveParent, ++/*499603*/ OPC_MoveChild1, ++/*499604*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*499607*/ OPC_CheckChild0Integer, 31, ++/*499609*/ OPC_CheckChild0Type, MVT::i32, ++/*499611*/ OPC_CheckChild1Integer, 31, ++/*499613*/ OPC_CheckChild1Type, MVT::i32, ++/*499615*/ OPC_CheckChild2Integer, 31, ++/*499617*/ OPC_CheckChild2Type, MVT::i32, ++/*499619*/ OPC_CheckChild3Integer, 31, ++/*499621*/ OPC_CheckChild3Type, MVT::i32, ++/*499623*/ OPC_CheckType, MVT::v4i32, ++/*499625*/ OPC_MoveParent, ++/*499626*/ OPC_MoveParent, ++/*499627*/ OPC_MoveParent, ++/*499628*/ OPC_MoveChild1, ++/*499629*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*499632*/ OPC_CheckChild0Integer, 1, ++/*499634*/ OPC_CheckChild0Type, MVT::i32, ++/*499636*/ OPC_CheckChild1Integer, 1, ++/*499638*/ OPC_CheckChild1Type, MVT::i32, ++/*499640*/ OPC_CheckChild2Integer, 1, ++/*499642*/ OPC_CheckChild2Type, MVT::i32, ++/*499644*/ OPC_CheckChild3Integer, 1, ++/*499646*/ OPC_CheckChild3Type, MVT::i32, ++/*499648*/ OPC_CheckType, MVT::v4i32, ++/*499650*/ OPC_MoveParent, ++/*499651*/ OPC_CheckType, MVT::v4i32, ++/*499653*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*499655*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a), LSX128W:{ *:[v4i32] }:$b), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a), LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*499663*/ /*Scope*/ 87, /*->499751*/ ++/*499664*/ OPC_CheckChild0Same, 0, ++/*499666*/ OPC_MoveChild1, ++/*499667*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*499670*/ OPC_CheckChild0Integer, 1, ++/*499672*/ OPC_CheckChild0Type, MVT::i32, ++/*499674*/ OPC_CheckChild1Integer, 1, ++/*499676*/ OPC_CheckChild1Type, MVT::i32, ++/*499678*/ OPC_CheckChild2Integer, 1, ++/*499680*/ OPC_CheckChild2Type, MVT::i32, ++/*499682*/ OPC_CheckChild3Integer, 1, ++/*499684*/ OPC_CheckChild3Type, MVT::i32, ++/*499686*/ OPC_MoveParent, ++/*499687*/ OPC_MoveParent, ++/*499688*/ OPC_CheckChild1Same, 1, ++/*499690*/ OPC_MoveParent, ++/*499691*/ OPC_MoveChild1, ++/*499692*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*499695*/ OPC_CheckChild0Integer, 31, ++/*499697*/ OPC_CheckChild0Type, MVT::i32, ++/*499699*/ OPC_CheckChild1Integer, 31, ++/*499701*/ OPC_CheckChild1Type, MVT::i32, ++/*499703*/ OPC_CheckChild2Integer, 31, ++/*499705*/ OPC_CheckChild2Type, MVT::i32, ++/*499707*/ OPC_CheckChild3Integer, 31, ++/*499709*/ OPC_CheckChild3Type, MVT::i32, ++/*499711*/ OPC_CheckType, MVT::v4i32, ++/*499713*/ OPC_MoveParent, ++/*499714*/ OPC_MoveParent, ++/*499715*/ OPC_MoveParent, ++/*499716*/ OPC_MoveChild1, ++/*499717*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*499720*/ OPC_CheckChild0Integer, 1, ++/*499722*/ OPC_CheckChild0Type, MVT::i32, ++/*499724*/ OPC_CheckChild1Integer, 1, ++/*499726*/ OPC_CheckChild1Type, MVT::i32, ++/*499728*/ OPC_CheckChild2Integer, 1, ++/*499730*/ OPC_CheckChild2Type, MVT::i32, ++/*499732*/ OPC_CheckChild3Integer, 1, ++/*499734*/ OPC_CheckChild3Type, MVT::i32, ++/*499736*/ OPC_CheckType, MVT::v4i32, ++/*499738*/ OPC_MoveParent, ++/*499739*/ OPC_CheckType, MVT::v4i32, ++/*499741*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*499743*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a), LSX128W:{ *:[v4i32] }:$b), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*499751*/ /*Scope*/ 87, /*->499839*/ ++/*499752*/ OPC_MoveChild0, ++/*499753*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*499756*/ OPC_CheckChild0Integer, 1, ++/*499758*/ OPC_CheckChild0Type, MVT::i32, ++/*499760*/ OPC_CheckChild1Integer, 1, ++/*499762*/ OPC_CheckChild1Type, MVT::i32, ++/*499764*/ OPC_CheckChild2Integer, 1, ++/*499766*/ OPC_CheckChild2Type, MVT::i32, ++/*499768*/ OPC_CheckChild3Integer, 1, ++/*499770*/ OPC_CheckChild3Type, MVT::i32, ++/*499772*/ OPC_MoveParent, ++/*499773*/ OPC_CheckChild1Same, 1, ++/*499775*/ OPC_MoveParent, ++/*499776*/ OPC_CheckChild1Same, 0, ++/*499778*/ OPC_MoveParent, ++/*499779*/ OPC_MoveChild1, ++/*499780*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*499783*/ OPC_CheckChild0Integer, 31, ++/*499785*/ OPC_CheckChild0Type, MVT::i32, ++/*499787*/ OPC_CheckChild1Integer, 31, ++/*499789*/ OPC_CheckChild1Type, MVT::i32, ++/*499791*/ OPC_CheckChild2Integer, 31, ++/*499793*/ OPC_CheckChild2Type, MVT::i32, ++/*499795*/ OPC_CheckChild3Integer, 31, ++/*499797*/ OPC_CheckChild3Type, MVT::i32, ++/*499799*/ OPC_CheckType, MVT::v4i32, ++/*499801*/ OPC_MoveParent, ++/*499802*/ OPC_MoveParent, ++/*499803*/ OPC_MoveParent, ++/*499804*/ OPC_MoveChild1, ++/*499805*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*499808*/ OPC_CheckChild0Integer, 1, ++/*499810*/ OPC_CheckChild0Type, MVT::i32, ++/*499812*/ OPC_CheckChild1Integer, 1, ++/*499814*/ OPC_CheckChild1Type, MVT::i32, ++/*499816*/ OPC_CheckChild2Integer, 1, ++/*499818*/ OPC_CheckChild2Type, MVT::i32, ++/*499820*/ OPC_CheckChild3Integer, 1, ++/*499822*/ OPC_CheckChild3Type, MVT::i32, ++/*499824*/ OPC_CheckType, MVT::v4i32, ++/*499826*/ OPC_MoveParent, ++/*499827*/ OPC_CheckType, MVT::v4i32, ++/*499829*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*499831*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a), LSX128W:{ *:[v4i32] }:$b), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b), LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*499839*/ /*Scope*/ 87, /*->499927*/ ++/*499840*/ OPC_CheckChild0Same, 1, ++/*499842*/ OPC_MoveChild1, ++/*499843*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*499846*/ OPC_CheckChild0Integer, 1, ++/*499848*/ OPC_CheckChild0Type, MVT::i32, ++/*499850*/ OPC_CheckChild1Integer, 1, ++/*499852*/ OPC_CheckChild1Type, MVT::i32, ++/*499854*/ OPC_CheckChild2Integer, 1, ++/*499856*/ OPC_CheckChild2Type, MVT::i32, ++/*499858*/ OPC_CheckChild3Integer, 1, ++/*499860*/ OPC_CheckChild3Type, MVT::i32, ++/*499862*/ OPC_MoveParent, ++/*499863*/ OPC_MoveParent, ++/*499864*/ OPC_CheckChild1Same, 0, ++/*499866*/ OPC_MoveParent, ++/*499867*/ OPC_MoveChild1, ++/*499868*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*499871*/ OPC_CheckChild0Integer, 31, ++/*499873*/ OPC_CheckChild0Type, MVT::i32, ++/*499875*/ OPC_CheckChild1Integer, 31, ++/*499877*/ OPC_CheckChild1Type, MVT::i32, ++/*499879*/ OPC_CheckChild2Integer, 31, ++/*499881*/ OPC_CheckChild2Type, MVT::i32, ++/*499883*/ OPC_CheckChild3Integer, 31, ++/*499885*/ OPC_CheckChild3Type, MVT::i32, ++/*499887*/ OPC_CheckType, MVT::v4i32, ++/*499889*/ OPC_MoveParent, ++/*499890*/ OPC_MoveParent, ++/*499891*/ OPC_MoveParent, ++/*499892*/ OPC_MoveChild1, ++/*499893*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*499896*/ OPC_CheckChild0Integer, 1, ++/*499898*/ OPC_CheckChild0Type, MVT::i32, ++/*499900*/ OPC_CheckChild1Integer, 1, ++/*499902*/ OPC_CheckChild1Type, MVT::i32, ++/*499904*/ OPC_CheckChild2Integer, 1, ++/*499906*/ OPC_CheckChild2Type, MVT::i32, ++/*499908*/ OPC_CheckChild3Integer, 1, ++/*499910*/ OPC_CheckChild3Type, MVT::i32, ++/*499912*/ OPC_CheckType, MVT::v4i32, ++/*499914*/ OPC_MoveParent, ++/*499915*/ OPC_CheckType, MVT::v4i32, ++/*499917*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*499919*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a), LSX128W:{ *:[v4i32] }:$b), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*499927*/ /*Scope*/ 87, /*->500015*/ ++/*499928*/ OPC_CheckChild0Same, 0, ++/*499930*/ OPC_CheckChild1Same, 1, ++/*499932*/ OPC_MoveParent, ++/*499933*/ OPC_MoveChild1, ++/*499934*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*499937*/ OPC_CheckChild0Integer, 1, ++/*499939*/ OPC_CheckChild0Type, MVT::i32, ++/*499941*/ OPC_CheckChild1Integer, 1, ++/*499943*/ OPC_CheckChild1Type, MVT::i32, ++/*499945*/ OPC_CheckChild2Integer, 1, ++/*499947*/ OPC_CheckChild2Type, MVT::i32, ++/*499949*/ OPC_CheckChild3Integer, 1, ++/*499951*/ OPC_CheckChild3Type, MVT::i32, ++/*499953*/ OPC_MoveParent, ++/*499954*/ OPC_MoveParent, ++/*499955*/ OPC_MoveChild1, ++/*499956*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*499959*/ OPC_CheckChild0Integer, 31, ++/*499961*/ OPC_CheckChild0Type, MVT::i32, ++/*499963*/ OPC_CheckChild1Integer, 31, ++/*499965*/ OPC_CheckChild1Type, MVT::i32, ++/*499967*/ OPC_CheckChild2Integer, 31, ++/*499969*/ OPC_CheckChild2Type, MVT::i32, ++/*499971*/ OPC_CheckChild3Integer, 31, ++/*499973*/ OPC_CheckChild3Type, MVT::i32, ++/*499975*/ OPC_CheckType, MVT::v4i32, ++/*499977*/ OPC_MoveParent, ++/*499978*/ OPC_MoveParent, ++/*499979*/ OPC_MoveParent, ++/*499980*/ OPC_MoveChild1, ++/*499981*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*499984*/ OPC_CheckChild0Integer, 1, ++/*499986*/ OPC_CheckChild0Type, MVT::i32, ++/*499988*/ OPC_CheckChild1Integer, 1, ++/*499990*/ OPC_CheckChild1Type, MVT::i32, ++/*499992*/ OPC_CheckChild2Integer, 1, ++/*499994*/ OPC_CheckChild2Type, MVT::i32, ++/*499996*/ OPC_CheckChild3Integer, 1, ++/*499998*/ OPC_CheckChild3Type, MVT::i32, ++/*500000*/ OPC_CheckType, MVT::v4i32, ++/*500002*/ OPC_MoveParent, ++/*500003*/ OPC_CheckType, MVT::v4i32, ++/*500005*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*500007*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a), LSX128W:{ *:[v4i32] }:$b), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*500015*/ /*Scope*/ 87, /*->500103*/ ++/*500016*/ OPC_CheckChild0Same, 1, ++/*500018*/ OPC_CheckChild1Same, 0, ++/*500020*/ OPC_MoveParent, ++/*500021*/ OPC_MoveChild1, ++/*500022*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*500025*/ OPC_CheckChild0Integer, 1, ++/*500027*/ OPC_CheckChild0Type, MVT::i32, ++/*500029*/ OPC_CheckChild1Integer, 1, ++/*500031*/ OPC_CheckChild1Type, MVT::i32, ++/*500033*/ OPC_CheckChild2Integer, 1, ++/*500035*/ OPC_CheckChild2Type, MVT::i32, ++/*500037*/ OPC_CheckChild3Integer, 1, ++/*500039*/ OPC_CheckChild3Type, MVT::i32, ++/*500041*/ OPC_MoveParent, ++/*500042*/ OPC_MoveParent, ++/*500043*/ OPC_MoveChild1, ++/*500044*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*500047*/ OPC_CheckChild0Integer, 31, ++/*500049*/ OPC_CheckChild0Type, MVT::i32, ++/*500051*/ OPC_CheckChild1Integer, 31, ++/*500053*/ OPC_CheckChild1Type, MVT::i32, ++/*500055*/ OPC_CheckChild2Integer, 31, ++/*500057*/ OPC_CheckChild2Type, MVT::i32, ++/*500059*/ OPC_CheckChild3Integer, 31, ++/*500061*/ OPC_CheckChild3Type, MVT::i32, ++/*500063*/ OPC_CheckType, MVT::v4i32, ++/*500065*/ OPC_MoveParent, ++/*500066*/ OPC_MoveParent, ++/*500067*/ OPC_MoveParent, ++/*500068*/ OPC_MoveChild1, ++/*500069*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*500072*/ OPC_CheckChild0Integer, 1, ++/*500074*/ OPC_CheckChild0Type, MVT::i32, ++/*500076*/ OPC_CheckChild1Integer, 1, ++/*500078*/ OPC_CheckChild1Type, MVT::i32, ++/*500080*/ OPC_CheckChild2Integer, 1, ++/*500082*/ OPC_CheckChild2Type, MVT::i32, ++/*500084*/ OPC_CheckChild3Integer, 1, ++/*500086*/ OPC_CheckChild3Type, MVT::i32, ++/*500088*/ OPC_CheckType, MVT::v4i32, ++/*500090*/ OPC_MoveParent, ++/*500091*/ OPC_CheckType, MVT::v4i32, ++/*500093*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*500095*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a), LSX128W:{ *:[v4i32] }:$b), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*500103*/ 0, /*End of Scope*/ ++/*500104*/ /*Scope*/ 52|128,1/*180*/, /*->500286*/ ++/*500106*/ OPC_CheckChild0Same, 1, ++/*500108*/ OPC_MoveChild1, ++/*500109*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*500112*/ OPC_Scope, 85, /*->500199*/ // 2 children in Scope ++/*500114*/ OPC_MoveChild0, ++/*500115*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*500118*/ OPC_CheckChild0Integer, 1, ++/*500120*/ OPC_CheckChild0Type, MVT::i32, ++/*500122*/ OPC_CheckChild1Integer, 1, ++/*500124*/ OPC_CheckChild1Type, MVT::i32, ++/*500126*/ OPC_CheckChild2Integer, 1, ++/*500128*/ OPC_CheckChild2Type, MVT::i32, ++/*500130*/ OPC_CheckChild3Integer, 1, ++/*500132*/ OPC_CheckChild3Type, MVT::i32, ++/*500134*/ OPC_MoveParent, ++/*500135*/ OPC_CheckChild1Same, 0, ++/*500137*/ OPC_MoveParent, ++/*500138*/ OPC_MoveParent, ++/*500139*/ OPC_MoveChild1, ++/*500140*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*500143*/ OPC_CheckChild0Integer, 31, ++/*500145*/ OPC_CheckChild0Type, MVT::i32, ++/*500147*/ OPC_CheckChild1Integer, 31, ++/*500149*/ OPC_CheckChild1Type, MVT::i32, ++/*500151*/ OPC_CheckChild2Integer, 31, ++/*500153*/ OPC_CheckChild2Type, MVT::i32, ++/*500155*/ OPC_CheckChild3Integer, 31, ++/*500157*/ OPC_CheckChild3Type, MVT::i32, ++/*500159*/ OPC_CheckType, MVT::v4i32, ++/*500161*/ OPC_MoveParent, ++/*500162*/ OPC_MoveParent, ++/*500163*/ OPC_MoveParent, ++/*500164*/ OPC_MoveChild1, ++/*500165*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*500168*/ OPC_CheckChild0Integer, 1, ++/*500170*/ OPC_CheckChild0Type, MVT::i32, ++/*500172*/ OPC_CheckChild1Integer, 1, ++/*500174*/ OPC_CheckChild1Type, MVT::i32, ++/*500176*/ OPC_CheckChild2Integer, 1, ++/*500178*/ OPC_CheckChild2Type, MVT::i32, ++/*500180*/ OPC_CheckChild3Integer, 1, ++/*500182*/ OPC_CheckChild3Type, MVT::i32, ++/*500184*/ OPC_CheckType, MVT::v4i32, ++/*500186*/ OPC_MoveParent, ++/*500187*/ OPC_CheckType, MVT::v4i32, ++/*500189*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*500191*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a), LSX128W:{ *:[v4i32] }:$b), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*500199*/ /*Scope*/ 85, /*->500285*/ ++/*500200*/ OPC_CheckChild0Same, 0, ++/*500202*/ OPC_MoveChild1, ++/*500203*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*500206*/ OPC_CheckChild0Integer, 1, ++/*500208*/ OPC_CheckChild0Type, MVT::i32, ++/*500210*/ OPC_CheckChild1Integer, 1, ++/*500212*/ OPC_CheckChild1Type, MVT::i32, ++/*500214*/ OPC_CheckChild2Integer, 1, ++/*500216*/ OPC_CheckChild2Type, MVT::i32, ++/*500218*/ OPC_CheckChild3Integer, 1, ++/*500220*/ OPC_CheckChild3Type, MVT::i32, ++/*500222*/ OPC_MoveParent, ++/*500223*/ OPC_MoveParent, ++/*500224*/ OPC_MoveParent, ++/*500225*/ OPC_MoveChild1, ++/*500226*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*500229*/ OPC_CheckChild0Integer, 31, ++/*500231*/ OPC_CheckChild0Type, MVT::i32, ++/*500233*/ OPC_CheckChild1Integer, 31, ++/*500235*/ OPC_CheckChild1Type, MVT::i32, ++/*500237*/ OPC_CheckChild2Integer, 31, ++/*500239*/ OPC_CheckChild2Type, MVT::i32, ++/*500241*/ OPC_CheckChild3Integer, 31, ++/*500243*/ OPC_CheckChild3Type, MVT::i32, ++/*500245*/ OPC_CheckType, MVT::v4i32, ++/*500247*/ OPC_MoveParent, ++/*500248*/ OPC_MoveParent, ++/*500249*/ OPC_MoveParent, ++/*500250*/ OPC_MoveChild1, ++/*500251*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*500254*/ OPC_CheckChild0Integer, 1, ++/*500256*/ OPC_CheckChild0Type, MVT::i32, ++/*500258*/ OPC_CheckChild1Integer, 1, ++/*500260*/ OPC_CheckChild1Type, MVT::i32, ++/*500262*/ OPC_CheckChild2Integer, 1, ++/*500264*/ OPC_CheckChild2Type, MVT::i32, ++/*500266*/ OPC_CheckChild3Integer, 1, ++/*500268*/ OPC_CheckChild3Type, MVT::i32, ++/*500270*/ OPC_CheckType, MVT::v4i32, ++/*500272*/ OPC_MoveParent, ++/*500273*/ OPC_CheckType, MVT::v4i32, ++/*500275*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*500277*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a), LSX128W:{ *:[v4i32] }:$b), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*500285*/ 0, /*End of Scope*/ ++/*500286*/ /*Scope*/ 52|128,1/*180*/, /*->500468*/ ++/*500288*/ OPC_CheckChild0Same, 0, ++/*500290*/ OPC_MoveChild1, ++/*500291*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*500294*/ OPC_Scope, 85, /*->500381*/ // 2 children in Scope ++/*500296*/ OPC_MoveChild0, ++/*500297*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*500300*/ OPC_CheckChild0Integer, 1, ++/*500302*/ OPC_CheckChild0Type, MVT::i32, ++/*500304*/ OPC_CheckChild1Integer, 1, ++/*500306*/ OPC_CheckChild1Type, MVT::i32, ++/*500308*/ OPC_CheckChild2Integer, 1, ++/*500310*/ OPC_CheckChild2Type, MVT::i32, ++/*500312*/ OPC_CheckChild3Integer, 1, ++/*500314*/ OPC_CheckChild3Type, MVT::i32, ++/*500316*/ OPC_MoveParent, ++/*500317*/ OPC_CheckChild1Same, 1, ++/*500319*/ OPC_MoveParent, ++/*500320*/ OPC_MoveParent, ++/*500321*/ OPC_MoveChild1, ++/*500322*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*500325*/ OPC_CheckChild0Integer, 31, ++/*500327*/ OPC_CheckChild0Type, MVT::i32, ++/*500329*/ OPC_CheckChild1Integer, 31, ++/*500331*/ OPC_CheckChild1Type, MVT::i32, ++/*500333*/ OPC_CheckChild2Integer, 31, ++/*500335*/ OPC_CheckChild2Type, MVT::i32, ++/*500337*/ OPC_CheckChild3Integer, 31, ++/*500339*/ OPC_CheckChild3Type, MVT::i32, ++/*500341*/ OPC_CheckType, MVT::v4i32, ++/*500343*/ OPC_MoveParent, ++/*500344*/ OPC_MoveParent, ++/*500345*/ OPC_MoveParent, ++/*500346*/ OPC_MoveChild1, ++/*500347*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*500350*/ OPC_CheckChild0Integer, 1, ++/*500352*/ OPC_CheckChild0Type, MVT::i32, ++/*500354*/ OPC_CheckChild1Integer, 1, ++/*500356*/ OPC_CheckChild1Type, MVT::i32, ++/*500358*/ OPC_CheckChild2Integer, 1, ++/*500360*/ OPC_CheckChild2Type, MVT::i32, ++/*500362*/ OPC_CheckChild3Integer, 1, ++/*500364*/ OPC_CheckChild3Type, MVT::i32, ++/*500366*/ OPC_CheckType, MVT::v4i32, ++/*500368*/ OPC_MoveParent, ++/*500369*/ OPC_CheckType, MVT::v4i32, ++/*500371*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*500373*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a), LSX128W:{ *:[v4i32] }:$b), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*500381*/ /*Scope*/ 85, /*->500467*/ ++/*500382*/ OPC_CheckChild0Same, 1, ++/*500384*/ OPC_MoveChild1, ++/*500385*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*500388*/ OPC_CheckChild0Integer, 1, ++/*500390*/ OPC_CheckChild0Type, MVT::i32, ++/*500392*/ OPC_CheckChild1Integer, 1, ++/*500394*/ OPC_CheckChild1Type, MVT::i32, ++/*500396*/ OPC_CheckChild2Integer, 1, ++/*500398*/ OPC_CheckChild2Type, MVT::i32, ++/*500400*/ OPC_CheckChild3Integer, 1, ++/*500402*/ OPC_CheckChild3Type, MVT::i32, ++/*500404*/ OPC_MoveParent, ++/*500405*/ OPC_MoveParent, ++/*500406*/ OPC_MoveParent, ++/*500407*/ OPC_MoveChild1, ++/*500408*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*500411*/ OPC_CheckChild0Integer, 31, ++/*500413*/ OPC_CheckChild0Type, MVT::i32, ++/*500415*/ OPC_CheckChild1Integer, 31, ++/*500417*/ OPC_CheckChild1Type, MVT::i32, ++/*500419*/ OPC_CheckChild2Integer, 31, ++/*500421*/ OPC_CheckChild2Type, MVT::i32, ++/*500423*/ OPC_CheckChild3Integer, 31, ++/*500425*/ OPC_CheckChild3Type, MVT::i32, ++/*500427*/ OPC_CheckType, MVT::v4i32, ++/*500429*/ OPC_MoveParent, ++/*500430*/ OPC_MoveParent, ++/*500431*/ OPC_MoveParent, ++/*500432*/ OPC_MoveChild1, ++/*500433*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*500436*/ OPC_CheckChild0Integer, 1, ++/*500438*/ OPC_CheckChild0Type, MVT::i32, ++/*500440*/ OPC_CheckChild1Integer, 1, ++/*500442*/ OPC_CheckChild1Type, MVT::i32, ++/*500444*/ OPC_CheckChild2Integer, 1, ++/*500446*/ OPC_CheckChild2Type, MVT::i32, ++/*500448*/ OPC_CheckChild3Integer, 1, ++/*500450*/ OPC_CheckChild3Type, MVT::i32, ++/*500452*/ OPC_CheckType, MVT::v4i32, ++/*500454*/ OPC_MoveParent, ++/*500455*/ OPC_CheckType, MVT::v4i32, ++/*500457*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*500459*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a), LSX128W:{ *:[v4i32] }:$b), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*500467*/ 0, /*End of Scope*/ ++/*500468*/ /*Scope*/ 33|128,1/*161*/, /*->500631*/ ++/*500470*/ OPC_MoveChild0, ++/*500471*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*500474*/ OPC_CheckChild0Integer, 1, ++/*500476*/ OPC_CheckChild0Type, MVT::i32, ++/*500478*/ OPC_CheckChild1Integer, 1, ++/*500480*/ OPC_CheckChild1Type, MVT::i32, ++/*500482*/ OPC_CheckChild2Integer, 1, ++/*500484*/ OPC_CheckChild2Type, MVT::i32, ++/*500486*/ OPC_CheckChild3Integer, 1, ++/*500488*/ OPC_CheckChild3Type, MVT::i32, ++/*500490*/ OPC_MoveParent, ++/*500491*/ OPC_MoveChild1, ++/*500492*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*500495*/ OPC_Scope, 66, /*->500563*/ // 2 children in Scope ++/*500497*/ OPC_CheckChild0Same, 0, ++/*500499*/ OPC_CheckChild1Same, 1, ++/*500501*/ OPC_MoveParent, ++/*500502*/ OPC_MoveParent, ++/*500503*/ OPC_MoveChild1, ++/*500504*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*500507*/ OPC_CheckChild0Integer, 31, ++/*500509*/ OPC_CheckChild0Type, MVT::i32, ++/*500511*/ OPC_CheckChild1Integer, 31, ++/*500513*/ OPC_CheckChild1Type, MVT::i32, ++/*500515*/ OPC_CheckChild2Integer, 31, ++/*500517*/ OPC_CheckChild2Type, MVT::i32, ++/*500519*/ OPC_CheckChild3Integer, 31, ++/*500521*/ OPC_CheckChild3Type, MVT::i32, ++/*500523*/ OPC_CheckType, MVT::v4i32, ++/*500525*/ OPC_MoveParent, ++/*500526*/ OPC_MoveParent, ++/*500527*/ OPC_MoveParent, ++/*500528*/ OPC_MoveChild1, ++/*500529*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*500532*/ OPC_CheckChild0Integer, 1, ++/*500534*/ OPC_CheckChild0Type, MVT::i32, ++/*500536*/ OPC_CheckChild1Integer, 1, ++/*500538*/ OPC_CheckChild1Type, MVT::i32, ++/*500540*/ OPC_CheckChild2Integer, 1, ++/*500542*/ OPC_CheckChild2Type, MVT::i32, ++/*500544*/ OPC_CheckChild3Integer, 1, ++/*500546*/ OPC_CheckChild3Type, MVT::i32, ++/*500548*/ OPC_CheckType, MVT::v4i32, ++/*500550*/ OPC_MoveParent, ++/*500551*/ OPC_CheckType, MVT::v4i32, ++/*500553*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*500555*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a), LSX128W:{ *:[v4i32] }:$b), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*500563*/ /*Scope*/ 66, /*->500630*/ ++/*500564*/ OPC_CheckChild0Same, 1, ++/*500566*/ OPC_CheckChild1Same, 0, ++/*500568*/ OPC_MoveParent, ++/*500569*/ OPC_MoveParent, ++/*500570*/ OPC_MoveChild1, ++/*500571*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*500574*/ OPC_CheckChild0Integer, 31, ++/*500576*/ OPC_CheckChild0Type, MVT::i32, ++/*500578*/ OPC_CheckChild1Integer, 31, ++/*500580*/ OPC_CheckChild1Type, MVT::i32, ++/*500582*/ OPC_CheckChild2Integer, 31, ++/*500584*/ OPC_CheckChild2Type, MVT::i32, ++/*500586*/ OPC_CheckChild3Integer, 31, ++/*500588*/ OPC_CheckChild3Type, MVT::i32, ++/*500590*/ OPC_CheckType, MVT::v4i32, ++/*500592*/ OPC_MoveParent, ++/*500593*/ OPC_MoveParent, ++/*500594*/ OPC_MoveParent, ++/*500595*/ OPC_MoveChild1, ++/*500596*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*500599*/ OPC_CheckChild0Integer, 1, ++/*500601*/ OPC_CheckChild0Type, MVT::i32, ++/*500603*/ OPC_CheckChild1Integer, 1, ++/*500605*/ OPC_CheckChild1Type, MVT::i32, ++/*500607*/ OPC_CheckChild2Integer, 1, ++/*500609*/ OPC_CheckChild2Type, MVT::i32, ++/*500611*/ OPC_CheckChild3Integer, 1, ++/*500613*/ OPC_CheckChild3Type, MVT::i32, ++/*500615*/ OPC_CheckType, MVT::v4i32, ++/*500617*/ OPC_MoveParent, ++/*500618*/ OPC_CheckType, MVT::v4i32, ++/*500620*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*500622*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a), LSX128W:{ *:[v4i32] }:$b), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*500630*/ 0, /*End of Scope*/ ++/*500631*/ 0, /*End of Scope*/ ++/*500632*/ /*Scope*/ 74|128,8/*1098*/, /*->501732*/ ++/*500634*/ OPC_RecordChild0, // #0 = $a ++/*500635*/ OPC_MoveChild1, ++/*500636*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*500639*/ OPC_CheckChild0Integer, 1, ++/*500641*/ OPC_CheckChild0Type, MVT::i32, ++/*500643*/ OPC_CheckChild1Integer, 1, ++/*500645*/ OPC_CheckChild1Type, MVT::i32, ++/*500647*/ OPC_CheckChild2Integer, 1, ++/*500649*/ OPC_CheckChild2Type, MVT::i32, ++/*500651*/ OPC_CheckChild3Integer, 1, ++/*500653*/ OPC_CheckChild3Type, MVT::i32, ++/*500655*/ OPC_MoveParent, ++/*500656*/ OPC_MoveParent, ++/*500657*/ OPC_RecordChild1, // #1 = $b ++/*500658*/ OPC_MoveParent, ++/*500659*/ OPC_MoveChild1, ++/*500660*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*500663*/ OPC_MoveChild0, ++/*500664*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*500667*/ OPC_Scope, 22|128,4/*534*/, /*->501204*/ // 4 children in Scope ++/*500670*/ OPC_MoveChild0, ++/*500671*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*500674*/ OPC_Scope, 87, /*->500763*/ // 6 children in Scope ++/*500676*/ OPC_MoveChild0, ++/*500677*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*500680*/ OPC_CheckChild0Integer, 1, ++/*500682*/ OPC_CheckChild0Type, MVT::i32, ++/*500684*/ OPC_CheckChild1Integer, 1, ++/*500686*/ OPC_CheckChild1Type, MVT::i32, ++/*500688*/ OPC_CheckChild2Integer, 1, ++/*500690*/ OPC_CheckChild2Type, MVT::i32, ++/*500692*/ OPC_CheckChild3Integer, 1, ++/*500694*/ OPC_CheckChild3Type, MVT::i32, ++/*500696*/ OPC_MoveParent, ++/*500697*/ OPC_CheckChild1Same, 0, ++/*500699*/ OPC_MoveParent, ++/*500700*/ OPC_CheckChild1Same, 1, ++/*500702*/ OPC_MoveParent, ++/*500703*/ OPC_MoveChild1, ++/*500704*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*500707*/ OPC_CheckChild0Integer, 31, ++/*500709*/ OPC_CheckChild0Type, MVT::i32, ++/*500711*/ OPC_CheckChild1Integer, 31, ++/*500713*/ OPC_CheckChild1Type, MVT::i32, ++/*500715*/ OPC_CheckChild2Integer, 31, ++/*500717*/ OPC_CheckChild2Type, MVT::i32, ++/*500719*/ OPC_CheckChild3Integer, 31, ++/*500721*/ OPC_CheckChild3Type, MVT::i32, ++/*500723*/ OPC_CheckType, MVT::v4i32, ++/*500725*/ OPC_MoveParent, ++/*500726*/ OPC_MoveParent, ++/*500727*/ OPC_MoveParent, ++/*500728*/ OPC_MoveChild1, ++/*500729*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*500732*/ OPC_CheckChild0Integer, 1, ++/*500734*/ OPC_CheckChild0Type, MVT::i32, ++/*500736*/ OPC_CheckChild1Integer, 1, ++/*500738*/ OPC_CheckChild1Type, MVT::i32, ++/*500740*/ OPC_CheckChild2Integer, 1, ++/*500742*/ OPC_CheckChild2Type, MVT::i32, ++/*500744*/ OPC_CheckChild3Integer, 1, ++/*500746*/ OPC_CheckChild3Type, MVT::i32, ++/*500748*/ OPC_CheckType, MVT::v4i32, ++/*500750*/ OPC_MoveParent, ++/*500751*/ OPC_CheckType, MVT::v4i32, ++/*500753*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*500755*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$b), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a), LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*500763*/ /*Scope*/ 87, /*->500851*/ ++/*500764*/ OPC_CheckChild0Same, 0, ++/*500766*/ OPC_MoveChild1, ++/*500767*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*500770*/ OPC_CheckChild0Integer, 1, ++/*500772*/ OPC_CheckChild0Type, MVT::i32, ++/*500774*/ OPC_CheckChild1Integer, 1, ++/*500776*/ OPC_CheckChild1Type, MVT::i32, ++/*500778*/ OPC_CheckChild2Integer, 1, ++/*500780*/ OPC_CheckChild2Type, MVT::i32, ++/*500782*/ OPC_CheckChild3Integer, 1, ++/*500784*/ OPC_CheckChild3Type, MVT::i32, ++/*500786*/ OPC_MoveParent, ++/*500787*/ OPC_MoveParent, ++/*500788*/ OPC_CheckChild1Same, 1, ++/*500790*/ OPC_MoveParent, ++/*500791*/ OPC_MoveChild1, ++/*500792*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*500795*/ OPC_CheckChild0Integer, 31, ++/*500797*/ OPC_CheckChild0Type, MVT::i32, ++/*500799*/ OPC_CheckChild1Integer, 31, ++/*500801*/ OPC_CheckChild1Type, MVT::i32, ++/*500803*/ OPC_CheckChild2Integer, 31, ++/*500805*/ OPC_CheckChild2Type, MVT::i32, ++/*500807*/ OPC_CheckChild3Integer, 31, ++/*500809*/ OPC_CheckChild3Type, MVT::i32, ++/*500811*/ OPC_CheckType, MVT::v4i32, ++/*500813*/ OPC_MoveParent, ++/*500814*/ OPC_MoveParent, ++/*500815*/ OPC_MoveParent, ++/*500816*/ OPC_MoveChild1, ++/*500817*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*500820*/ OPC_CheckChild0Integer, 1, ++/*500822*/ OPC_CheckChild0Type, MVT::i32, ++/*500824*/ OPC_CheckChild1Integer, 1, ++/*500826*/ OPC_CheckChild1Type, MVT::i32, ++/*500828*/ OPC_CheckChild2Integer, 1, ++/*500830*/ OPC_CheckChild2Type, MVT::i32, ++/*500832*/ OPC_CheckChild3Integer, 1, ++/*500834*/ OPC_CheckChild3Type, MVT::i32, ++/*500836*/ OPC_CheckType, MVT::v4i32, ++/*500838*/ OPC_MoveParent, ++/*500839*/ OPC_CheckType, MVT::v4i32, ++/*500841*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*500843*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$b), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*500851*/ /*Scope*/ 87, /*->500939*/ ++/*500852*/ OPC_MoveChild0, ++/*500853*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*500856*/ OPC_CheckChild0Integer, 1, ++/*500858*/ OPC_CheckChild0Type, MVT::i32, ++/*500860*/ OPC_CheckChild1Integer, 1, ++/*500862*/ OPC_CheckChild1Type, MVT::i32, ++/*500864*/ OPC_CheckChild2Integer, 1, ++/*500866*/ OPC_CheckChild2Type, MVT::i32, ++/*500868*/ OPC_CheckChild3Integer, 1, ++/*500870*/ OPC_CheckChild3Type, MVT::i32, ++/*500872*/ OPC_MoveParent, ++/*500873*/ OPC_CheckChild1Same, 1, ++/*500875*/ OPC_MoveParent, ++/*500876*/ OPC_CheckChild1Same, 0, ++/*500878*/ OPC_MoveParent, ++/*500879*/ OPC_MoveChild1, ++/*500880*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*500883*/ OPC_CheckChild0Integer, 31, ++/*500885*/ OPC_CheckChild0Type, MVT::i32, ++/*500887*/ OPC_CheckChild1Integer, 31, ++/*500889*/ OPC_CheckChild1Type, MVT::i32, ++/*500891*/ OPC_CheckChild2Integer, 31, ++/*500893*/ OPC_CheckChild2Type, MVT::i32, ++/*500895*/ OPC_CheckChild3Integer, 31, ++/*500897*/ OPC_CheckChild3Type, MVT::i32, ++/*500899*/ OPC_CheckType, MVT::v4i32, ++/*500901*/ OPC_MoveParent, ++/*500902*/ OPC_MoveParent, ++/*500903*/ OPC_MoveParent, ++/*500904*/ OPC_MoveChild1, ++/*500905*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*500908*/ OPC_CheckChild0Integer, 1, ++/*500910*/ OPC_CheckChild0Type, MVT::i32, ++/*500912*/ OPC_CheckChild1Integer, 1, ++/*500914*/ OPC_CheckChild1Type, MVT::i32, ++/*500916*/ OPC_CheckChild2Integer, 1, ++/*500918*/ OPC_CheckChild2Type, MVT::i32, ++/*500920*/ OPC_CheckChild3Integer, 1, ++/*500922*/ OPC_CheckChild3Type, MVT::i32, ++/*500924*/ OPC_CheckType, MVT::v4i32, ++/*500926*/ OPC_MoveParent, ++/*500927*/ OPC_CheckType, MVT::v4i32, ++/*500929*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*500931*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$b), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b), LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*500939*/ /*Scope*/ 87, /*->501027*/ ++/*500940*/ OPC_CheckChild0Same, 1, ++/*500942*/ OPC_MoveChild1, ++/*500943*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*500946*/ OPC_CheckChild0Integer, 1, ++/*500948*/ OPC_CheckChild0Type, MVT::i32, ++/*500950*/ OPC_CheckChild1Integer, 1, ++/*500952*/ OPC_CheckChild1Type, MVT::i32, ++/*500954*/ OPC_CheckChild2Integer, 1, ++/*500956*/ OPC_CheckChild2Type, MVT::i32, ++/*500958*/ OPC_CheckChild3Integer, 1, ++/*500960*/ OPC_CheckChild3Type, MVT::i32, ++/*500962*/ OPC_MoveParent, ++/*500963*/ OPC_MoveParent, ++/*500964*/ OPC_CheckChild1Same, 0, ++/*500966*/ OPC_MoveParent, ++/*500967*/ OPC_MoveChild1, ++/*500968*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*500971*/ OPC_CheckChild0Integer, 31, ++/*500973*/ OPC_CheckChild0Type, MVT::i32, ++/*500975*/ OPC_CheckChild1Integer, 31, ++/*500977*/ OPC_CheckChild1Type, MVT::i32, ++/*500979*/ OPC_CheckChild2Integer, 31, ++/*500981*/ OPC_CheckChild2Type, MVT::i32, ++/*500983*/ OPC_CheckChild3Integer, 31, ++/*500985*/ OPC_CheckChild3Type, MVT::i32, ++/*500987*/ OPC_CheckType, MVT::v4i32, ++/*500989*/ OPC_MoveParent, ++/*500990*/ OPC_MoveParent, ++/*500991*/ OPC_MoveParent, ++/*500992*/ OPC_MoveChild1, ++/*500993*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*500996*/ OPC_CheckChild0Integer, 1, ++/*500998*/ OPC_CheckChild0Type, MVT::i32, ++/*501000*/ OPC_CheckChild1Integer, 1, ++/*501002*/ OPC_CheckChild1Type, MVT::i32, ++/*501004*/ OPC_CheckChild2Integer, 1, ++/*501006*/ OPC_CheckChild2Type, MVT::i32, ++/*501008*/ OPC_CheckChild3Integer, 1, ++/*501010*/ OPC_CheckChild3Type, MVT::i32, ++/*501012*/ OPC_CheckType, MVT::v4i32, ++/*501014*/ OPC_MoveParent, ++/*501015*/ OPC_CheckType, MVT::v4i32, ++/*501017*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*501019*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$b), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*501027*/ /*Scope*/ 87, /*->501115*/ ++/*501028*/ OPC_CheckChild0Same, 0, ++/*501030*/ OPC_CheckChild1Same, 1, ++/*501032*/ OPC_MoveParent, ++/*501033*/ OPC_MoveChild1, ++/*501034*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*501037*/ OPC_CheckChild0Integer, 1, ++/*501039*/ OPC_CheckChild0Type, MVT::i32, ++/*501041*/ OPC_CheckChild1Integer, 1, ++/*501043*/ OPC_CheckChild1Type, MVT::i32, ++/*501045*/ OPC_CheckChild2Integer, 1, ++/*501047*/ OPC_CheckChild2Type, MVT::i32, ++/*501049*/ OPC_CheckChild3Integer, 1, ++/*501051*/ OPC_CheckChild3Type, MVT::i32, ++/*501053*/ OPC_MoveParent, ++/*501054*/ OPC_MoveParent, ++/*501055*/ OPC_MoveChild1, ++/*501056*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*501059*/ OPC_CheckChild0Integer, 31, ++/*501061*/ OPC_CheckChild0Type, MVT::i32, ++/*501063*/ OPC_CheckChild1Integer, 31, ++/*501065*/ OPC_CheckChild1Type, MVT::i32, ++/*501067*/ OPC_CheckChild2Integer, 31, ++/*501069*/ OPC_CheckChild2Type, MVT::i32, ++/*501071*/ OPC_CheckChild3Integer, 31, ++/*501073*/ OPC_CheckChild3Type, MVT::i32, ++/*501075*/ OPC_CheckType, MVT::v4i32, ++/*501077*/ OPC_MoveParent, ++/*501078*/ OPC_MoveParent, ++/*501079*/ OPC_MoveParent, ++/*501080*/ OPC_MoveChild1, ++/*501081*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*501084*/ OPC_CheckChild0Integer, 1, ++/*501086*/ OPC_CheckChild0Type, MVT::i32, ++/*501088*/ OPC_CheckChild1Integer, 1, ++/*501090*/ OPC_CheckChild1Type, MVT::i32, ++/*501092*/ OPC_CheckChild2Integer, 1, ++/*501094*/ OPC_CheckChild2Type, MVT::i32, ++/*501096*/ OPC_CheckChild3Integer, 1, ++/*501098*/ OPC_CheckChild3Type, MVT::i32, ++/*501100*/ OPC_CheckType, MVT::v4i32, ++/*501102*/ OPC_MoveParent, ++/*501103*/ OPC_CheckType, MVT::v4i32, ++/*501105*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*501107*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$b), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*501115*/ /*Scope*/ 87, /*->501203*/ ++/*501116*/ OPC_CheckChild0Same, 1, ++/*501118*/ OPC_CheckChild1Same, 0, ++/*501120*/ OPC_MoveParent, ++/*501121*/ OPC_MoveChild1, ++/*501122*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*501125*/ OPC_CheckChild0Integer, 1, ++/*501127*/ OPC_CheckChild0Type, MVT::i32, ++/*501129*/ OPC_CheckChild1Integer, 1, ++/*501131*/ OPC_CheckChild1Type, MVT::i32, ++/*501133*/ OPC_CheckChild2Integer, 1, ++/*501135*/ OPC_CheckChild2Type, MVT::i32, ++/*501137*/ OPC_CheckChild3Integer, 1, ++/*501139*/ OPC_CheckChild3Type, MVT::i32, ++/*501141*/ OPC_MoveParent, ++/*501142*/ OPC_MoveParent, ++/*501143*/ OPC_MoveChild1, ++/*501144*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*501147*/ OPC_CheckChild0Integer, 31, ++/*501149*/ OPC_CheckChild0Type, MVT::i32, ++/*501151*/ OPC_CheckChild1Integer, 31, ++/*501153*/ OPC_CheckChild1Type, MVT::i32, ++/*501155*/ OPC_CheckChild2Integer, 31, ++/*501157*/ OPC_CheckChild2Type, MVT::i32, ++/*501159*/ OPC_CheckChild3Integer, 31, ++/*501161*/ OPC_CheckChild3Type, MVT::i32, ++/*501163*/ OPC_CheckType, MVT::v4i32, ++/*501165*/ OPC_MoveParent, ++/*501166*/ OPC_MoveParent, ++/*501167*/ OPC_MoveParent, ++/*501168*/ OPC_MoveChild1, ++/*501169*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*501172*/ OPC_CheckChild0Integer, 1, ++/*501174*/ OPC_CheckChild0Type, MVT::i32, ++/*501176*/ OPC_CheckChild1Integer, 1, ++/*501178*/ OPC_CheckChild1Type, MVT::i32, ++/*501180*/ OPC_CheckChild2Integer, 1, ++/*501182*/ OPC_CheckChild2Type, MVT::i32, ++/*501184*/ OPC_CheckChild3Integer, 1, ++/*501186*/ OPC_CheckChild3Type, MVT::i32, ++/*501188*/ OPC_CheckType, MVT::v4i32, ++/*501190*/ OPC_MoveParent, ++/*501191*/ OPC_CheckType, MVT::v4i32, ++/*501193*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*501195*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$b), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*501203*/ 0, /*End of Scope*/ ++/*501204*/ /*Scope*/ 52|128,1/*180*/, /*->501386*/ ++/*501206*/ OPC_CheckChild0Same, 1, ++/*501208*/ OPC_MoveChild1, ++/*501209*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*501212*/ OPC_Scope, 85, /*->501299*/ // 2 children in Scope ++/*501214*/ OPC_MoveChild0, ++/*501215*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*501218*/ OPC_CheckChild0Integer, 1, ++/*501220*/ OPC_CheckChild0Type, MVT::i32, ++/*501222*/ OPC_CheckChild1Integer, 1, ++/*501224*/ OPC_CheckChild1Type, MVT::i32, ++/*501226*/ OPC_CheckChild2Integer, 1, ++/*501228*/ OPC_CheckChild2Type, MVT::i32, ++/*501230*/ OPC_CheckChild3Integer, 1, ++/*501232*/ OPC_CheckChild3Type, MVT::i32, ++/*501234*/ OPC_MoveParent, ++/*501235*/ OPC_CheckChild1Same, 0, ++/*501237*/ OPC_MoveParent, ++/*501238*/ OPC_MoveParent, ++/*501239*/ OPC_MoveChild1, ++/*501240*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*501243*/ OPC_CheckChild0Integer, 31, ++/*501245*/ OPC_CheckChild0Type, MVT::i32, ++/*501247*/ OPC_CheckChild1Integer, 31, ++/*501249*/ OPC_CheckChild1Type, MVT::i32, ++/*501251*/ OPC_CheckChild2Integer, 31, ++/*501253*/ OPC_CheckChild2Type, MVT::i32, ++/*501255*/ OPC_CheckChild3Integer, 31, ++/*501257*/ OPC_CheckChild3Type, MVT::i32, ++/*501259*/ OPC_CheckType, MVT::v4i32, ++/*501261*/ OPC_MoveParent, ++/*501262*/ OPC_MoveParent, ++/*501263*/ OPC_MoveParent, ++/*501264*/ OPC_MoveChild1, ++/*501265*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*501268*/ OPC_CheckChild0Integer, 1, ++/*501270*/ OPC_CheckChild0Type, MVT::i32, ++/*501272*/ OPC_CheckChild1Integer, 1, ++/*501274*/ OPC_CheckChild1Type, MVT::i32, ++/*501276*/ OPC_CheckChild2Integer, 1, ++/*501278*/ OPC_CheckChild2Type, MVT::i32, ++/*501280*/ OPC_CheckChild3Integer, 1, ++/*501282*/ OPC_CheckChild3Type, MVT::i32, ++/*501284*/ OPC_CheckType, MVT::v4i32, ++/*501286*/ OPC_MoveParent, ++/*501287*/ OPC_CheckType, MVT::v4i32, ++/*501289*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*501291*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$b), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*501299*/ /*Scope*/ 85, /*->501385*/ ++/*501300*/ OPC_CheckChild0Same, 0, ++/*501302*/ OPC_MoveChild1, ++/*501303*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*501306*/ OPC_CheckChild0Integer, 1, ++/*501308*/ OPC_CheckChild0Type, MVT::i32, ++/*501310*/ OPC_CheckChild1Integer, 1, ++/*501312*/ OPC_CheckChild1Type, MVT::i32, ++/*501314*/ OPC_CheckChild2Integer, 1, ++/*501316*/ OPC_CheckChild2Type, MVT::i32, ++/*501318*/ OPC_CheckChild3Integer, 1, ++/*501320*/ OPC_CheckChild3Type, MVT::i32, ++/*501322*/ OPC_MoveParent, ++/*501323*/ OPC_MoveParent, ++/*501324*/ OPC_MoveParent, ++/*501325*/ OPC_MoveChild1, ++/*501326*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*501329*/ OPC_CheckChild0Integer, 31, ++/*501331*/ OPC_CheckChild0Type, MVT::i32, ++/*501333*/ OPC_CheckChild1Integer, 31, ++/*501335*/ OPC_CheckChild1Type, MVT::i32, ++/*501337*/ OPC_CheckChild2Integer, 31, ++/*501339*/ OPC_CheckChild2Type, MVT::i32, ++/*501341*/ OPC_CheckChild3Integer, 31, ++/*501343*/ OPC_CheckChild3Type, MVT::i32, ++/*501345*/ OPC_CheckType, MVT::v4i32, ++/*501347*/ OPC_MoveParent, ++/*501348*/ OPC_MoveParent, ++/*501349*/ OPC_MoveParent, ++/*501350*/ OPC_MoveChild1, ++/*501351*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*501354*/ OPC_CheckChild0Integer, 1, ++/*501356*/ OPC_CheckChild0Type, MVT::i32, ++/*501358*/ OPC_CheckChild1Integer, 1, ++/*501360*/ OPC_CheckChild1Type, MVT::i32, ++/*501362*/ OPC_CheckChild2Integer, 1, ++/*501364*/ OPC_CheckChild2Type, MVT::i32, ++/*501366*/ OPC_CheckChild3Integer, 1, ++/*501368*/ OPC_CheckChild3Type, MVT::i32, ++/*501370*/ OPC_CheckType, MVT::v4i32, ++/*501372*/ OPC_MoveParent, ++/*501373*/ OPC_CheckType, MVT::v4i32, ++/*501375*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*501377*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$b), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*501385*/ 0, /*End of Scope*/ ++/*501386*/ /*Scope*/ 52|128,1/*180*/, /*->501568*/ ++/*501388*/ OPC_CheckChild0Same, 0, ++/*501390*/ OPC_MoveChild1, ++/*501391*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*501394*/ OPC_Scope, 85, /*->501481*/ // 2 children in Scope ++/*501396*/ OPC_MoveChild0, ++/*501397*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*501400*/ OPC_CheckChild0Integer, 1, ++/*501402*/ OPC_CheckChild0Type, MVT::i32, ++/*501404*/ OPC_CheckChild1Integer, 1, ++/*501406*/ OPC_CheckChild1Type, MVT::i32, ++/*501408*/ OPC_CheckChild2Integer, 1, ++/*501410*/ OPC_CheckChild2Type, MVT::i32, ++/*501412*/ OPC_CheckChild3Integer, 1, ++/*501414*/ OPC_CheckChild3Type, MVT::i32, ++/*501416*/ OPC_MoveParent, ++/*501417*/ OPC_CheckChild1Same, 1, ++/*501419*/ OPC_MoveParent, ++/*501420*/ OPC_MoveParent, ++/*501421*/ OPC_MoveChild1, ++/*501422*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*501425*/ OPC_CheckChild0Integer, 31, ++/*501427*/ OPC_CheckChild0Type, MVT::i32, ++/*501429*/ OPC_CheckChild1Integer, 31, ++/*501431*/ OPC_CheckChild1Type, MVT::i32, ++/*501433*/ OPC_CheckChild2Integer, 31, ++/*501435*/ OPC_CheckChild2Type, MVT::i32, ++/*501437*/ OPC_CheckChild3Integer, 31, ++/*501439*/ OPC_CheckChild3Type, MVT::i32, ++/*501441*/ OPC_CheckType, MVT::v4i32, ++/*501443*/ OPC_MoveParent, ++/*501444*/ OPC_MoveParent, ++/*501445*/ OPC_MoveParent, ++/*501446*/ OPC_MoveChild1, ++/*501447*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*501450*/ OPC_CheckChild0Integer, 1, ++/*501452*/ OPC_CheckChild0Type, MVT::i32, ++/*501454*/ OPC_CheckChild1Integer, 1, ++/*501456*/ OPC_CheckChild1Type, MVT::i32, ++/*501458*/ OPC_CheckChild2Integer, 1, ++/*501460*/ OPC_CheckChild2Type, MVT::i32, ++/*501462*/ OPC_CheckChild3Integer, 1, ++/*501464*/ OPC_CheckChild3Type, MVT::i32, ++/*501466*/ OPC_CheckType, MVT::v4i32, ++/*501468*/ OPC_MoveParent, ++/*501469*/ OPC_CheckType, MVT::v4i32, ++/*501471*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*501473*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$b), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*501481*/ /*Scope*/ 85, /*->501567*/ ++/*501482*/ OPC_CheckChild0Same, 1, ++/*501484*/ OPC_MoveChild1, ++/*501485*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*501488*/ OPC_CheckChild0Integer, 1, ++/*501490*/ OPC_CheckChild0Type, MVT::i32, ++/*501492*/ OPC_CheckChild1Integer, 1, ++/*501494*/ OPC_CheckChild1Type, MVT::i32, ++/*501496*/ OPC_CheckChild2Integer, 1, ++/*501498*/ OPC_CheckChild2Type, MVT::i32, ++/*501500*/ OPC_CheckChild3Integer, 1, ++/*501502*/ OPC_CheckChild3Type, MVT::i32, ++/*501504*/ OPC_MoveParent, ++/*501505*/ OPC_MoveParent, ++/*501506*/ OPC_MoveParent, ++/*501507*/ OPC_MoveChild1, ++/*501508*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*501511*/ OPC_CheckChild0Integer, 31, ++/*501513*/ OPC_CheckChild0Type, MVT::i32, ++/*501515*/ OPC_CheckChild1Integer, 31, ++/*501517*/ OPC_CheckChild1Type, MVT::i32, ++/*501519*/ OPC_CheckChild2Integer, 31, ++/*501521*/ OPC_CheckChild2Type, MVT::i32, ++/*501523*/ OPC_CheckChild3Integer, 31, ++/*501525*/ OPC_CheckChild3Type, MVT::i32, ++/*501527*/ OPC_CheckType, MVT::v4i32, ++/*501529*/ OPC_MoveParent, ++/*501530*/ OPC_MoveParent, ++/*501531*/ OPC_MoveParent, ++/*501532*/ OPC_MoveChild1, ++/*501533*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*501536*/ OPC_CheckChild0Integer, 1, ++/*501538*/ OPC_CheckChild0Type, MVT::i32, ++/*501540*/ OPC_CheckChild1Integer, 1, ++/*501542*/ OPC_CheckChild1Type, MVT::i32, ++/*501544*/ OPC_CheckChild2Integer, 1, ++/*501546*/ OPC_CheckChild2Type, MVT::i32, ++/*501548*/ OPC_CheckChild3Integer, 1, ++/*501550*/ OPC_CheckChild3Type, MVT::i32, ++/*501552*/ OPC_CheckType, MVT::v4i32, ++/*501554*/ OPC_MoveParent, ++/*501555*/ OPC_CheckType, MVT::v4i32, ++/*501557*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*501559*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$b), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*501567*/ 0, /*End of Scope*/ ++/*501568*/ /*Scope*/ 33|128,1/*161*/, /*->501731*/ ++/*501570*/ OPC_MoveChild0, ++/*501571*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*501574*/ OPC_CheckChild0Integer, 1, ++/*501576*/ OPC_CheckChild0Type, MVT::i32, ++/*501578*/ OPC_CheckChild1Integer, 1, ++/*501580*/ OPC_CheckChild1Type, MVT::i32, ++/*501582*/ OPC_CheckChild2Integer, 1, ++/*501584*/ OPC_CheckChild2Type, MVT::i32, ++/*501586*/ OPC_CheckChild3Integer, 1, ++/*501588*/ OPC_CheckChild3Type, MVT::i32, ++/*501590*/ OPC_MoveParent, ++/*501591*/ OPC_MoveChild1, ++/*501592*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*501595*/ OPC_Scope, 66, /*->501663*/ // 2 children in Scope ++/*501597*/ OPC_CheckChild0Same, 0, ++/*501599*/ OPC_CheckChild1Same, 1, ++/*501601*/ OPC_MoveParent, ++/*501602*/ OPC_MoveParent, ++/*501603*/ OPC_MoveChild1, ++/*501604*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*501607*/ OPC_CheckChild0Integer, 31, ++/*501609*/ OPC_CheckChild0Type, MVT::i32, ++/*501611*/ OPC_CheckChild1Integer, 31, ++/*501613*/ OPC_CheckChild1Type, MVT::i32, ++/*501615*/ OPC_CheckChild2Integer, 31, ++/*501617*/ OPC_CheckChild2Type, MVT::i32, ++/*501619*/ OPC_CheckChild3Integer, 31, ++/*501621*/ OPC_CheckChild3Type, MVT::i32, ++/*501623*/ OPC_CheckType, MVT::v4i32, ++/*501625*/ OPC_MoveParent, ++/*501626*/ OPC_MoveParent, ++/*501627*/ OPC_MoveParent, ++/*501628*/ OPC_MoveChild1, ++/*501629*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*501632*/ OPC_CheckChild0Integer, 1, ++/*501634*/ OPC_CheckChild0Type, MVT::i32, ++/*501636*/ OPC_CheckChild1Integer, 1, ++/*501638*/ OPC_CheckChild1Type, MVT::i32, ++/*501640*/ OPC_CheckChild2Integer, 1, ++/*501642*/ OPC_CheckChild2Type, MVT::i32, ++/*501644*/ OPC_CheckChild3Integer, 1, ++/*501646*/ OPC_CheckChild3Type, MVT::i32, ++/*501648*/ OPC_CheckType, MVT::v4i32, ++/*501650*/ OPC_MoveParent, ++/*501651*/ OPC_CheckType, MVT::v4i32, ++/*501653*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*501655*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$b), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*501663*/ /*Scope*/ 66, /*->501730*/ ++/*501664*/ OPC_CheckChild0Same, 1, ++/*501666*/ OPC_CheckChild1Same, 0, ++/*501668*/ OPC_MoveParent, ++/*501669*/ OPC_MoveParent, ++/*501670*/ OPC_MoveChild1, ++/*501671*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*501674*/ OPC_CheckChild0Integer, 31, ++/*501676*/ OPC_CheckChild0Type, MVT::i32, ++/*501678*/ OPC_CheckChild1Integer, 31, ++/*501680*/ OPC_CheckChild1Type, MVT::i32, ++/*501682*/ OPC_CheckChild2Integer, 31, ++/*501684*/ OPC_CheckChild2Type, MVT::i32, ++/*501686*/ OPC_CheckChild3Integer, 31, ++/*501688*/ OPC_CheckChild3Type, MVT::i32, ++/*501690*/ OPC_CheckType, MVT::v4i32, ++/*501692*/ OPC_MoveParent, ++/*501693*/ OPC_MoveParent, ++/*501694*/ OPC_MoveParent, ++/*501695*/ OPC_MoveChild1, ++/*501696*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*501699*/ OPC_CheckChild0Integer, 1, ++/*501701*/ OPC_CheckChild0Type, MVT::i32, ++/*501703*/ OPC_CheckChild1Integer, 1, ++/*501705*/ OPC_CheckChild1Type, MVT::i32, ++/*501707*/ OPC_CheckChild2Integer, 1, ++/*501709*/ OPC_CheckChild2Type, MVT::i32, ++/*501711*/ OPC_CheckChild3Integer, 1, ++/*501713*/ OPC_CheckChild3Type, MVT::i32, ++/*501715*/ OPC_CheckType, MVT::v4i32, ++/*501717*/ OPC_MoveParent, ++/*501718*/ OPC_CheckType, MVT::v4i32, ++/*501720*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*501722*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$b), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*501730*/ 0, /*End of Scope*/ ++/*501731*/ 0, /*End of Scope*/ ++/*501732*/ /*Scope*/ 74|128,8/*1098*/, /*->502832*/ ++/*501734*/ OPC_MoveChild0, ++/*501735*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*501738*/ OPC_CheckChild0Integer, 1, ++/*501740*/ OPC_CheckChild0Type, MVT::i32, ++/*501742*/ OPC_CheckChild1Integer, 1, ++/*501744*/ OPC_CheckChild1Type, MVT::i32, ++/*501746*/ OPC_CheckChild2Integer, 1, ++/*501748*/ OPC_CheckChild2Type, MVT::i32, ++/*501750*/ OPC_CheckChild3Integer, 1, ++/*501752*/ OPC_CheckChild3Type, MVT::i32, ++/*501754*/ OPC_MoveParent, ++/*501755*/ OPC_RecordChild1, // #0 = $b ++/*501756*/ OPC_MoveParent, ++/*501757*/ OPC_RecordChild1, // #1 = $a ++/*501758*/ OPC_MoveParent, ++/*501759*/ OPC_MoveChild1, ++/*501760*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*501763*/ OPC_MoveChild0, ++/*501764*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*501767*/ OPC_Scope, 22|128,4/*534*/, /*->502304*/ // 4 children in Scope ++/*501770*/ OPC_MoveChild0, ++/*501771*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*501774*/ OPC_Scope, 87, /*->501863*/ // 6 children in Scope ++/*501776*/ OPC_MoveChild0, ++/*501777*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*501780*/ OPC_CheckChild0Integer, 1, ++/*501782*/ OPC_CheckChild0Type, MVT::i32, ++/*501784*/ OPC_CheckChild1Integer, 1, ++/*501786*/ OPC_CheckChild1Type, MVT::i32, ++/*501788*/ OPC_CheckChild2Integer, 1, ++/*501790*/ OPC_CheckChild2Type, MVT::i32, ++/*501792*/ OPC_CheckChild3Integer, 1, ++/*501794*/ OPC_CheckChild3Type, MVT::i32, ++/*501796*/ OPC_MoveParent, ++/*501797*/ OPC_CheckChild1Same, 1, ++/*501799*/ OPC_MoveParent, ++/*501800*/ OPC_CheckChild1Same, 0, ++/*501802*/ OPC_MoveParent, ++/*501803*/ OPC_MoveChild1, ++/*501804*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*501807*/ OPC_CheckChild0Integer, 31, ++/*501809*/ OPC_CheckChild0Type, MVT::i32, ++/*501811*/ OPC_CheckChild1Integer, 31, ++/*501813*/ OPC_CheckChild1Type, MVT::i32, ++/*501815*/ OPC_CheckChild2Integer, 31, ++/*501817*/ OPC_CheckChild2Type, MVT::i32, ++/*501819*/ OPC_CheckChild3Integer, 31, ++/*501821*/ OPC_CheckChild3Type, MVT::i32, ++/*501823*/ OPC_CheckType, MVT::v4i32, ++/*501825*/ OPC_MoveParent, ++/*501826*/ OPC_MoveParent, ++/*501827*/ OPC_MoveParent, ++/*501828*/ OPC_MoveChild1, ++/*501829*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*501832*/ OPC_CheckChild0Integer, 1, ++/*501834*/ OPC_CheckChild0Type, MVT::i32, ++/*501836*/ OPC_CheckChild1Integer, 1, ++/*501838*/ OPC_CheckChild1Type, MVT::i32, ++/*501840*/ OPC_CheckChild2Integer, 1, ++/*501842*/ OPC_CheckChild2Type, MVT::i32, ++/*501844*/ OPC_CheckChild3Integer, 1, ++/*501846*/ OPC_CheckChild3Type, MVT::i32, ++/*501848*/ OPC_CheckType, MVT::v4i32, ++/*501850*/ OPC_MoveParent, ++/*501851*/ OPC_CheckType, MVT::v4i32, ++/*501853*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*501855*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b), LSX128W:{ *:[v4i32] }:$a), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a), LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*501863*/ /*Scope*/ 87, /*->501951*/ ++/*501864*/ OPC_CheckChild0Same, 1, ++/*501866*/ OPC_MoveChild1, ++/*501867*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*501870*/ OPC_CheckChild0Integer, 1, ++/*501872*/ OPC_CheckChild0Type, MVT::i32, ++/*501874*/ OPC_CheckChild1Integer, 1, ++/*501876*/ OPC_CheckChild1Type, MVT::i32, ++/*501878*/ OPC_CheckChild2Integer, 1, ++/*501880*/ OPC_CheckChild2Type, MVT::i32, ++/*501882*/ OPC_CheckChild3Integer, 1, ++/*501884*/ OPC_CheckChild3Type, MVT::i32, ++/*501886*/ OPC_MoveParent, ++/*501887*/ OPC_MoveParent, ++/*501888*/ OPC_CheckChild1Same, 0, ++/*501890*/ OPC_MoveParent, ++/*501891*/ OPC_MoveChild1, ++/*501892*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*501895*/ OPC_CheckChild0Integer, 31, ++/*501897*/ OPC_CheckChild0Type, MVT::i32, ++/*501899*/ OPC_CheckChild1Integer, 31, ++/*501901*/ OPC_CheckChild1Type, MVT::i32, ++/*501903*/ OPC_CheckChild2Integer, 31, ++/*501905*/ OPC_CheckChild2Type, MVT::i32, ++/*501907*/ OPC_CheckChild3Integer, 31, ++/*501909*/ OPC_CheckChild3Type, MVT::i32, ++/*501911*/ OPC_CheckType, MVT::v4i32, ++/*501913*/ OPC_MoveParent, ++/*501914*/ OPC_MoveParent, ++/*501915*/ OPC_MoveParent, ++/*501916*/ OPC_MoveChild1, ++/*501917*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*501920*/ OPC_CheckChild0Integer, 1, ++/*501922*/ OPC_CheckChild0Type, MVT::i32, ++/*501924*/ OPC_CheckChild1Integer, 1, ++/*501926*/ OPC_CheckChild1Type, MVT::i32, ++/*501928*/ OPC_CheckChild2Integer, 1, ++/*501930*/ OPC_CheckChild2Type, MVT::i32, ++/*501932*/ OPC_CheckChild3Integer, 1, ++/*501934*/ OPC_CheckChild3Type, MVT::i32, ++/*501936*/ OPC_CheckType, MVT::v4i32, ++/*501938*/ OPC_MoveParent, ++/*501939*/ OPC_CheckType, MVT::v4i32, ++/*501941*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*501943*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b), LSX128W:{ *:[v4i32] }:$a), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*501951*/ /*Scope*/ 87, /*->502039*/ ++/*501952*/ OPC_MoveChild0, ++/*501953*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*501956*/ OPC_CheckChild0Integer, 1, ++/*501958*/ OPC_CheckChild0Type, MVT::i32, ++/*501960*/ OPC_CheckChild1Integer, 1, ++/*501962*/ OPC_CheckChild1Type, MVT::i32, ++/*501964*/ OPC_CheckChild2Integer, 1, ++/*501966*/ OPC_CheckChild2Type, MVT::i32, ++/*501968*/ OPC_CheckChild3Integer, 1, ++/*501970*/ OPC_CheckChild3Type, MVT::i32, ++/*501972*/ OPC_MoveParent, ++/*501973*/ OPC_CheckChild1Same, 0, ++/*501975*/ OPC_MoveParent, ++/*501976*/ OPC_CheckChild1Same, 1, ++/*501978*/ OPC_MoveParent, ++/*501979*/ OPC_MoveChild1, ++/*501980*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*501983*/ OPC_CheckChild0Integer, 31, ++/*501985*/ OPC_CheckChild0Type, MVT::i32, ++/*501987*/ OPC_CheckChild1Integer, 31, ++/*501989*/ OPC_CheckChild1Type, MVT::i32, ++/*501991*/ OPC_CheckChild2Integer, 31, ++/*501993*/ OPC_CheckChild2Type, MVT::i32, ++/*501995*/ OPC_CheckChild3Integer, 31, ++/*501997*/ OPC_CheckChild3Type, MVT::i32, ++/*501999*/ OPC_CheckType, MVT::v4i32, ++/*502001*/ OPC_MoveParent, ++/*502002*/ OPC_MoveParent, ++/*502003*/ OPC_MoveParent, ++/*502004*/ OPC_MoveChild1, ++/*502005*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*502008*/ OPC_CheckChild0Integer, 1, ++/*502010*/ OPC_CheckChild0Type, MVT::i32, ++/*502012*/ OPC_CheckChild1Integer, 1, ++/*502014*/ OPC_CheckChild1Type, MVT::i32, ++/*502016*/ OPC_CheckChild2Integer, 1, ++/*502018*/ OPC_CheckChild2Type, MVT::i32, ++/*502020*/ OPC_CheckChild3Integer, 1, ++/*502022*/ OPC_CheckChild3Type, MVT::i32, ++/*502024*/ OPC_CheckType, MVT::v4i32, ++/*502026*/ OPC_MoveParent, ++/*502027*/ OPC_CheckType, MVT::v4i32, ++/*502029*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*502031*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b), LSX128W:{ *:[v4i32] }:$a), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b), LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*502039*/ /*Scope*/ 87, /*->502127*/ ++/*502040*/ OPC_CheckChild0Same, 0, ++/*502042*/ OPC_MoveChild1, ++/*502043*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*502046*/ OPC_CheckChild0Integer, 1, ++/*502048*/ OPC_CheckChild0Type, MVT::i32, ++/*502050*/ OPC_CheckChild1Integer, 1, ++/*502052*/ OPC_CheckChild1Type, MVT::i32, ++/*502054*/ OPC_CheckChild2Integer, 1, ++/*502056*/ OPC_CheckChild2Type, MVT::i32, ++/*502058*/ OPC_CheckChild3Integer, 1, ++/*502060*/ OPC_CheckChild3Type, MVT::i32, ++/*502062*/ OPC_MoveParent, ++/*502063*/ OPC_MoveParent, ++/*502064*/ OPC_CheckChild1Same, 1, ++/*502066*/ OPC_MoveParent, ++/*502067*/ OPC_MoveChild1, ++/*502068*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*502071*/ OPC_CheckChild0Integer, 31, ++/*502073*/ OPC_CheckChild0Type, MVT::i32, ++/*502075*/ OPC_CheckChild1Integer, 31, ++/*502077*/ OPC_CheckChild1Type, MVT::i32, ++/*502079*/ OPC_CheckChild2Integer, 31, ++/*502081*/ OPC_CheckChild2Type, MVT::i32, ++/*502083*/ OPC_CheckChild3Integer, 31, ++/*502085*/ OPC_CheckChild3Type, MVT::i32, ++/*502087*/ OPC_CheckType, MVT::v4i32, ++/*502089*/ OPC_MoveParent, ++/*502090*/ OPC_MoveParent, ++/*502091*/ OPC_MoveParent, ++/*502092*/ OPC_MoveChild1, ++/*502093*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*502096*/ OPC_CheckChild0Integer, 1, ++/*502098*/ OPC_CheckChild0Type, MVT::i32, ++/*502100*/ OPC_CheckChild1Integer, 1, ++/*502102*/ OPC_CheckChild1Type, MVT::i32, ++/*502104*/ OPC_CheckChild2Integer, 1, ++/*502106*/ OPC_CheckChild2Type, MVT::i32, ++/*502108*/ OPC_CheckChild3Integer, 1, ++/*502110*/ OPC_CheckChild3Type, MVT::i32, ++/*502112*/ OPC_CheckType, MVT::v4i32, ++/*502114*/ OPC_MoveParent, ++/*502115*/ OPC_CheckType, MVT::v4i32, ++/*502117*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*502119*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b), LSX128W:{ *:[v4i32] }:$a), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*502127*/ /*Scope*/ 87, /*->502215*/ ++/*502128*/ OPC_CheckChild0Same, 1, ++/*502130*/ OPC_CheckChild1Same, 0, ++/*502132*/ OPC_MoveParent, ++/*502133*/ OPC_MoveChild1, ++/*502134*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*502137*/ OPC_CheckChild0Integer, 1, ++/*502139*/ OPC_CheckChild0Type, MVT::i32, ++/*502141*/ OPC_CheckChild1Integer, 1, ++/*502143*/ OPC_CheckChild1Type, MVT::i32, ++/*502145*/ OPC_CheckChild2Integer, 1, ++/*502147*/ OPC_CheckChild2Type, MVT::i32, ++/*502149*/ OPC_CheckChild3Integer, 1, ++/*502151*/ OPC_CheckChild3Type, MVT::i32, ++/*502153*/ OPC_MoveParent, ++/*502154*/ OPC_MoveParent, ++/*502155*/ OPC_MoveChild1, ++/*502156*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*502159*/ OPC_CheckChild0Integer, 31, ++/*502161*/ OPC_CheckChild0Type, MVT::i32, ++/*502163*/ OPC_CheckChild1Integer, 31, ++/*502165*/ OPC_CheckChild1Type, MVT::i32, ++/*502167*/ OPC_CheckChild2Integer, 31, ++/*502169*/ OPC_CheckChild2Type, MVT::i32, ++/*502171*/ OPC_CheckChild3Integer, 31, ++/*502173*/ OPC_CheckChild3Type, MVT::i32, ++/*502175*/ OPC_CheckType, MVT::v4i32, ++/*502177*/ OPC_MoveParent, ++/*502178*/ OPC_MoveParent, ++/*502179*/ OPC_MoveParent, ++/*502180*/ OPC_MoveChild1, ++/*502181*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*502184*/ OPC_CheckChild0Integer, 1, ++/*502186*/ OPC_CheckChild0Type, MVT::i32, ++/*502188*/ OPC_CheckChild1Integer, 1, ++/*502190*/ OPC_CheckChild1Type, MVT::i32, ++/*502192*/ OPC_CheckChild2Integer, 1, ++/*502194*/ OPC_CheckChild2Type, MVT::i32, ++/*502196*/ OPC_CheckChild3Integer, 1, ++/*502198*/ OPC_CheckChild3Type, MVT::i32, ++/*502200*/ OPC_CheckType, MVT::v4i32, ++/*502202*/ OPC_MoveParent, ++/*502203*/ OPC_CheckType, MVT::v4i32, ++/*502205*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*502207*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b), LSX128W:{ *:[v4i32] }:$a), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*502215*/ /*Scope*/ 87, /*->502303*/ ++/*502216*/ OPC_CheckChild0Same, 0, ++/*502218*/ OPC_CheckChild1Same, 1, ++/*502220*/ OPC_MoveParent, ++/*502221*/ OPC_MoveChild1, ++/*502222*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*502225*/ OPC_CheckChild0Integer, 1, ++/*502227*/ OPC_CheckChild0Type, MVT::i32, ++/*502229*/ OPC_CheckChild1Integer, 1, ++/*502231*/ OPC_CheckChild1Type, MVT::i32, ++/*502233*/ OPC_CheckChild2Integer, 1, ++/*502235*/ OPC_CheckChild2Type, MVT::i32, ++/*502237*/ OPC_CheckChild3Integer, 1, ++/*502239*/ OPC_CheckChild3Type, MVT::i32, ++/*502241*/ OPC_MoveParent, ++/*502242*/ OPC_MoveParent, ++/*502243*/ OPC_MoveChild1, ++/*502244*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*502247*/ OPC_CheckChild0Integer, 31, ++/*502249*/ OPC_CheckChild0Type, MVT::i32, ++/*502251*/ OPC_CheckChild1Integer, 31, ++/*502253*/ OPC_CheckChild1Type, MVT::i32, ++/*502255*/ OPC_CheckChild2Integer, 31, ++/*502257*/ OPC_CheckChild2Type, MVT::i32, ++/*502259*/ OPC_CheckChild3Integer, 31, ++/*502261*/ OPC_CheckChild3Type, MVT::i32, ++/*502263*/ OPC_CheckType, MVT::v4i32, ++/*502265*/ OPC_MoveParent, ++/*502266*/ OPC_MoveParent, ++/*502267*/ OPC_MoveParent, ++/*502268*/ OPC_MoveChild1, ++/*502269*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*502272*/ OPC_CheckChild0Integer, 1, ++/*502274*/ OPC_CheckChild0Type, MVT::i32, ++/*502276*/ OPC_CheckChild1Integer, 1, ++/*502278*/ OPC_CheckChild1Type, MVT::i32, ++/*502280*/ OPC_CheckChild2Integer, 1, ++/*502282*/ OPC_CheckChild2Type, MVT::i32, ++/*502284*/ OPC_CheckChild3Integer, 1, ++/*502286*/ OPC_CheckChild3Type, MVT::i32, ++/*502288*/ OPC_CheckType, MVT::v4i32, ++/*502290*/ OPC_MoveParent, ++/*502291*/ OPC_CheckType, MVT::v4i32, ++/*502293*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*502295*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b), LSX128W:{ *:[v4i32] }:$a), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*502303*/ 0, /*End of Scope*/ ++/*502304*/ /*Scope*/ 52|128,1/*180*/, /*->502486*/ ++/*502306*/ OPC_CheckChild0Same, 0, ++/*502308*/ OPC_MoveChild1, ++/*502309*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*502312*/ OPC_Scope, 85, /*->502399*/ // 2 children in Scope ++/*502314*/ OPC_MoveChild0, ++/*502315*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*502318*/ OPC_CheckChild0Integer, 1, ++/*502320*/ OPC_CheckChild0Type, MVT::i32, ++/*502322*/ OPC_CheckChild1Integer, 1, ++/*502324*/ OPC_CheckChild1Type, MVT::i32, ++/*502326*/ OPC_CheckChild2Integer, 1, ++/*502328*/ OPC_CheckChild2Type, MVT::i32, ++/*502330*/ OPC_CheckChild3Integer, 1, ++/*502332*/ OPC_CheckChild3Type, MVT::i32, ++/*502334*/ OPC_MoveParent, ++/*502335*/ OPC_CheckChild1Same, 1, ++/*502337*/ OPC_MoveParent, ++/*502338*/ OPC_MoveParent, ++/*502339*/ OPC_MoveChild1, ++/*502340*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*502343*/ OPC_CheckChild0Integer, 31, ++/*502345*/ OPC_CheckChild0Type, MVT::i32, ++/*502347*/ OPC_CheckChild1Integer, 31, ++/*502349*/ OPC_CheckChild1Type, MVT::i32, ++/*502351*/ OPC_CheckChild2Integer, 31, ++/*502353*/ OPC_CheckChild2Type, MVT::i32, ++/*502355*/ OPC_CheckChild3Integer, 31, ++/*502357*/ OPC_CheckChild3Type, MVT::i32, ++/*502359*/ OPC_CheckType, MVT::v4i32, ++/*502361*/ OPC_MoveParent, ++/*502362*/ OPC_MoveParent, ++/*502363*/ OPC_MoveParent, ++/*502364*/ OPC_MoveChild1, ++/*502365*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*502368*/ OPC_CheckChild0Integer, 1, ++/*502370*/ OPC_CheckChild0Type, MVT::i32, ++/*502372*/ OPC_CheckChild1Integer, 1, ++/*502374*/ OPC_CheckChild1Type, MVT::i32, ++/*502376*/ OPC_CheckChild2Integer, 1, ++/*502378*/ OPC_CheckChild2Type, MVT::i32, ++/*502380*/ OPC_CheckChild3Integer, 1, ++/*502382*/ OPC_CheckChild3Type, MVT::i32, ++/*502384*/ OPC_CheckType, MVT::v4i32, ++/*502386*/ OPC_MoveParent, ++/*502387*/ OPC_CheckType, MVT::v4i32, ++/*502389*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*502391*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b), LSX128W:{ *:[v4i32] }:$a), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*502399*/ /*Scope*/ 85, /*->502485*/ ++/*502400*/ OPC_CheckChild0Same, 1, ++/*502402*/ OPC_MoveChild1, ++/*502403*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*502406*/ OPC_CheckChild0Integer, 1, ++/*502408*/ OPC_CheckChild0Type, MVT::i32, ++/*502410*/ OPC_CheckChild1Integer, 1, ++/*502412*/ OPC_CheckChild1Type, MVT::i32, ++/*502414*/ OPC_CheckChild2Integer, 1, ++/*502416*/ OPC_CheckChild2Type, MVT::i32, ++/*502418*/ OPC_CheckChild3Integer, 1, ++/*502420*/ OPC_CheckChild3Type, MVT::i32, ++/*502422*/ OPC_MoveParent, ++/*502423*/ OPC_MoveParent, ++/*502424*/ OPC_MoveParent, ++/*502425*/ OPC_MoveChild1, ++/*502426*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*502429*/ OPC_CheckChild0Integer, 31, ++/*502431*/ OPC_CheckChild0Type, MVT::i32, ++/*502433*/ OPC_CheckChild1Integer, 31, ++/*502435*/ OPC_CheckChild1Type, MVT::i32, ++/*502437*/ OPC_CheckChild2Integer, 31, ++/*502439*/ OPC_CheckChild2Type, MVT::i32, ++/*502441*/ OPC_CheckChild3Integer, 31, ++/*502443*/ OPC_CheckChild3Type, MVT::i32, ++/*502445*/ OPC_CheckType, MVT::v4i32, ++/*502447*/ OPC_MoveParent, ++/*502448*/ OPC_MoveParent, ++/*502449*/ OPC_MoveParent, ++/*502450*/ OPC_MoveChild1, ++/*502451*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*502454*/ OPC_CheckChild0Integer, 1, ++/*502456*/ OPC_CheckChild0Type, MVT::i32, ++/*502458*/ OPC_CheckChild1Integer, 1, ++/*502460*/ OPC_CheckChild1Type, MVT::i32, ++/*502462*/ OPC_CheckChild2Integer, 1, ++/*502464*/ OPC_CheckChild2Type, MVT::i32, ++/*502466*/ OPC_CheckChild3Integer, 1, ++/*502468*/ OPC_CheckChild3Type, MVT::i32, ++/*502470*/ OPC_CheckType, MVT::v4i32, ++/*502472*/ OPC_MoveParent, ++/*502473*/ OPC_CheckType, MVT::v4i32, ++/*502475*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*502477*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b), LSX128W:{ *:[v4i32] }:$a), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*502485*/ 0, /*End of Scope*/ ++/*502486*/ /*Scope*/ 52|128,1/*180*/, /*->502668*/ ++/*502488*/ OPC_CheckChild0Same, 1, ++/*502490*/ OPC_MoveChild1, ++/*502491*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*502494*/ OPC_Scope, 85, /*->502581*/ // 2 children in Scope ++/*502496*/ OPC_MoveChild0, ++/*502497*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*502500*/ OPC_CheckChild0Integer, 1, ++/*502502*/ OPC_CheckChild0Type, MVT::i32, ++/*502504*/ OPC_CheckChild1Integer, 1, ++/*502506*/ OPC_CheckChild1Type, MVT::i32, ++/*502508*/ OPC_CheckChild2Integer, 1, ++/*502510*/ OPC_CheckChild2Type, MVT::i32, ++/*502512*/ OPC_CheckChild3Integer, 1, ++/*502514*/ OPC_CheckChild3Type, MVT::i32, ++/*502516*/ OPC_MoveParent, ++/*502517*/ OPC_CheckChild1Same, 0, ++/*502519*/ OPC_MoveParent, ++/*502520*/ OPC_MoveParent, ++/*502521*/ OPC_MoveChild1, ++/*502522*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*502525*/ OPC_CheckChild0Integer, 31, ++/*502527*/ OPC_CheckChild0Type, MVT::i32, ++/*502529*/ OPC_CheckChild1Integer, 31, ++/*502531*/ OPC_CheckChild1Type, MVT::i32, ++/*502533*/ OPC_CheckChild2Integer, 31, ++/*502535*/ OPC_CheckChild2Type, MVT::i32, ++/*502537*/ OPC_CheckChild3Integer, 31, ++/*502539*/ OPC_CheckChild3Type, MVT::i32, ++/*502541*/ OPC_CheckType, MVT::v4i32, ++/*502543*/ OPC_MoveParent, ++/*502544*/ OPC_MoveParent, ++/*502545*/ OPC_MoveParent, ++/*502546*/ OPC_MoveChild1, ++/*502547*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*502550*/ OPC_CheckChild0Integer, 1, ++/*502552*/ OPC_CheckChild0Type, MVT::i32, ++/*502554*/ OPC_CheckChild1Integer, 1, ++/*502556*/ OPC_CheckChild1Type, MVT::i32, ++/*502558*/ OPC_CheckChild2Integer, 1, ++/*502560*/ OPC_CheckChild2Type, MVT::i32, ++/*502562*/ OPC_CheckChild3Integer, 1, ++/*502564*/ OPC_CheckChild3Type, MVT::i32, ++/*502566*/ OPC_CheckType, MVT::v4i32, ++/*502568*/ OPC_MoveParent, ++/*502569*/ OPC_CheckType, MVT::v4i32, ++/*502571*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*502573*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b), LSX128W:{ *:[v4i32] }:$a), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*502581*/ /*Scope*/ 85, /*->502667*/ ++/*502582*/ OPC_CheckChild0Same, 0, ++/*502584*/ OPC_MoveChild1, ++/*502585*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*502588*/ OPC_CheckChild0Integer, 1, ++/*502590*/ OPC_CheckChild0Type, MVT::i32, ++/*502592*/ OPC_CheckChild1Integer, 1, ++/*502594*/ OPC_CheckChild1Type, MVT::i32, ++/*502596*/ OPC_CheckChild2Integer, 1, ++/*502598*/ OPC_CheckChild2Type, MVT::i32, ++/*502600*/ OPC_CheckChild3Integer, 1, ++/*502602*/ OPC_CheckChild3Type, MVT::i32, ++/*502604*/ OPC_MoveParent, ++/*502605*/ OPC_MoveParent, ++/*502606*/ OPC_MoveParent, ++/*502607*/ OPC_MoveChild1, ++/*502608*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*502611*/ OPC_CheckChild0Integer, 31, ++/*502613*/ OPC_CheckChild0Type, MVT::i32, ++/*502615*/ OPC_CheckChild1Integer, 31, ++/*502617*/ OPC_CheckChild1Type, MVT::i32, ++/*502619*/ OPC_CheckChild2Integer, 31, ++/*502621*/ OPC_CheckChild2Type, MVT::i32, ++/*502623*/ OPC_CheckChild3Integer, 31, ++/*502625*/ OPC_CheckChild3Type, MVT::i32, ++/*502627*/ OPC_CheckType, MVT::v4i32, ++/*502629*/ OPC_MoveParent, ++/*502630*/ OPC_MoveParent, ++/*502631*/ OPC_MoveParent, ++/*502632*/ OPC_MoveChild1, ++/*502633*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*502636*/ OPC_CheckChild0Integer, 1, ++/*502638*/ OPC_CheckChild0Type, MVT::i32, ++/*502640*/ OPC_CheckChild1Integer, 1, ++/*502642*/ OPC_CheckChild1Type, MVT::i32, ++/*502644*/ OPC_CheckChild2Integer, 1, ++/*502646*/ OPC_CheckChild2Type, MVT::i32, ++/*502648*/ OPC_CheckChild3Integer, 1, ++/*502650*/ OPC_CheckChild3Type, MVT::i32, ++/*502652*/ OPC_CheckType, MVT::v4i32, ++/*502654*/ OPC_MoveParent, ++/*502655*/ OPC_CheckType, MVT::v4i32, ++/*502657*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*502659*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b), LSX128W:{ *:[v4i32] }:$a), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*502667*/ 0, /*End of Scope*/ ++/*502668*/ /*Scope*/ 33|128,1/*161*/, /*->502831*/ ++/*502670*/ OPC_MoveChild0, ++/*502671*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*502674*/ OPC_CheckChild0Integer, 1, ++/*502676*/ OPC_CheckChild0Type, MVT::i32, ++/*502678*/ OPC_CheckChild1Integer, 1, ++/*502680*/ OPC_CheckChild1Type, MVT::i32, ++/*502682*/ OPC_CheckChild2Integer, 1, ++/*502684*/ OPC_CheckChild2Type, MVT::i32, ++/*502686*/ OPC_CheckChild3Integer, 1, ++/*502688*/ OPC_CheckChild3Type, MVT::i32, ++/*502690*/ OPC_MoveParent, ++/*502691*/ OPC_MoveChild1, ++/*502692*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*502695*/ OPC_Scope, 66, /*->502763*/ // 2 children in Scope ++/*502697*/ OPC_CheckChild0Same, 1, ++/*502699*/ OPC_CheckChild1Same, 0, ++/*502701*/ OPC_MoveParent, ++/*502702*/ OPC_MoveParent, ++/*502703*/ OPC_MoveChild1, ++/*502704*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*502707*/ OPC_CheckChild0Integer, 31, ++/*502709*/ OPC_CheckChild0Type, MVT::i32, ++/*502711*/ OPC_CheckChild1Integer, 31, ++/*502713*/ OPC_CheckChild1Type, MVT::i32, ++/*502715*/ OPC_CheckChild2Integer, 31, ++/*502717*/ OPC_CheckChild2Type, MVT::i32, ++/*502719*/ OPC_CheckChild3Integer, 31, ++/*502721*/ OPC_CheckChild3Type, MVT::i32, ++/*502723*/ OPC_CheckType, MVT::v4i32, ++/*502725*/ OPC_MoveParent, ++/*502726*/ OPC_MoveParent, ++/*502727*/ OPC_MoveParent, ++/*502728*/ OPC_MoveChild1, ++/*502729*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*502732*/ OPC_CheckChild0Integer, 1, ++/*502734*/ OPC_CheckChild0Type, MVT::i32, ++/*502736*/ OPC_CheckChild1Integer, 1, ++/*502738*/ OPC_CheckChild1Type, MVT::i32, ++/*502740*/ OPC_CheckChild2Integer, 1, ++/*502742*/ OPC_CheckChild2Type, MVT::i32, ++/*502744*/ OPC_CheckChild3Integer, 1, ++/*502746*/ OPC_CheckChild3Type, MVT::i32, ++/*502748*/ OPC_CheckType, MVT::v4i32, ++/*502750*/ OPC_MoveParent, ++/*502751*/ OPC_CheckType, MVT::v4i32, ++/*502753*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*502755*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b), LSX128W:{ *:[v4i32] }:$a), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*502763*/ /*Scope*/ 66, /*->502830*/ ++/*502764*/ OPC_CheckChild0Same, 0, ++/*502766*/ OPC_CheckChild1Same, 1, ++/*502768*/ OPC_MoveParent, ++/*502769*/ OPC_MoveParent, ++/*502770*/ OPC_MoveChild1, ++/*502771*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*502774*/ OPC_CheckChild0Integer, 31, ++/*502776*/ OPC_CheckChild0Type, MVT::i32, ++/*502778*/ OPC_CheckChild1Integer, 31, ++/*502780*/ OPC_CheckChild1Type, MVT::i32, ++/*502782*/ OPC_CheckChild2Integer, 31, ++/*502784*/ OPC_CheckChild2Type, MVT::i32, ++/*502786*/ OPC_CheckChild3Integer, 31, ++/*502788*/ OPC_CheckChild3Type, MVT::i32, ++/*502790*/ OPC_CheckType, MVT::v4i32, ++/*502792*/ OPC_MoveParent, ++/*502793*/ OPC_MoveParent, ++/*502794*/ OPC_MoveParent, ++/*502795*/ OPC_MoveChild1, ++/*502796*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*502799*/ OPC_CheckChild0Integer, 1, ++/*502801*/ OPC_CheckChild0Type, MVT::i32, ++/*502803*/ OPC_CheckChild1Integer, 1, ++/*502805*/ OPC_CheckChild1Type, MVT::i32, ++/*502807*/ OPC_CheckChild2Integer, 1, ++/*502809*/ OPC_CheckChild2Type, MVT::i32, ++/*502811*/ OPC_CheckChild3Integer, 1, ++/*502813*/ OPC_CheckChild3Type, MVT::i32, ++/*502815*/ OPC_CheckType, MVT::v4i32, ++/*502817*/ OPC_MoveParent, ++/*502818*/ OPC_CheckType, MVT::v4i32, ++/*502820*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*502822*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b), LSX128W:{ *:[v4i32] }:$a), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*502830*/ 0, /*End of Scope*/ ++/*502831*/ 0, /*End of Scope*/ ++/*502832*/ /*Scope*/ 65|128,25/*3265*/, /*->506099*/ ++/*502834*/ OPC_RecordChild0, // #0 = $b ++/*502835*/ OPC_Scope, 73|128,8/*1097*/, /*->503935*/ // 2 children in Scope ++/*502838*/ OPC_MoveChild1, ++/*502839*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*502842*/ OPC_CheckChild0Integer, 1, ++/*502844*/ OPC_CheckChild0Type, MVT::i32, ++/*502846*/ OPC_CheckChild1Integer, 1, ++/*502848*/ OPC_CheckChild1Type, MVT::i32, ++/*502850*/ OPC_CheckChild2Integer, 1, ++/*502852*/ OPC_CheckChild2Type, MVT::i32, ++/*502854*/ OPC_CheckChild3Integer, 1, ++/*502856*/ OPC_CheckChild3Type, MVT::i32, ++/*502858*/ OPC_MoveParent, ++/*502859*/ OPC_MoveParent, ++/*502860*/ OPC_RecordChild1, // #1 = $a ++/*502861*/ OPC_MoveParent, ++/*502862*/ OPC_MoveChild1, ++/*502863*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*502866*/ OPC_MoveChild0, ++/*502867*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*502870*/ OPC_Scope, 22|128,4/*534*/, /*->503407*/ // 4 children in Scope ++/*502873*/ OPC_MoveChild0, ++/*502874*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*502877*/ OPC_Scope, 87, /*->502966*/ // 6 children in Scope ++/*502879*/ OPC_MoveChild0, ++/*502880*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*502883*/ OPC_CheckChild0Integer, 1, ++/*502885*/ OPC_CheckChild0Type, MVT::i32, ++/*502887*/ OPC_CheckChild1Integer, 1, ++/*502889*/ OPC_CheckChild1Type, MVT::i32, ++/*502891*/ OPC_CheckChild2Integer, 1, ++/*502893*/ OPC_CheckChild2Type, MVT::i32, ++/*502895*/ OPC_CheckChild3Integer, 1, ++/*502897*/ OPC_CheckChild3Type, MVT::i32, ++/*502899*/ OPC_MoveParent, ++/*502900*/ OPC_CheckChild1Same, 1, ++/*502902*/ OPC_MoveParent, ++/*502903*/ OPC_CheckChild1Same, 0, ++/*502905*/ OPC_MoveParent, ++/*502906*/ OPC_MoveChild1, ++/*502907*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*502910*/ OPC_CheckChild0Integer, 31, ++/*502912*/ OPC_CheckChild0Type, MVT::i32, ++/*502914*/ OPC_CheckChild1Integer, 31, ++/*502916*/ OPC_CheckChild1Type, MVT::i32, ++/*502918*/ OPC_CheckChild2Integer, 31, ++/*502920*/ OPC_CheckChild2Type, MVT::i32, ++/*502922*/ OPC_CheckChild3Integer, 31, ++/*502924*/ OPC_CheckChild3Type, MVT::i32, ++/*502926*/ OPC_CheckType, MVT::v4i32, ++/*502928*/ OPC_MoveParent, ++/*502929*/ OPC_MoveParent, ++/*502930*/ OPC_MoveParent, ++/*502931*/ OPC_MoveChild1, ++/*502932*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*502935*/ OPC_CheckChild0Integer, 1, ++/*502937*/ OPC_CheckChild0Type, MVT::i32, ++/*502939*/ OPC_CheckChild1Integer, 1, ++/*502941*/ OPC_CheckChild1Type, MVT::i32, ++/*502943*/ OPC_CheckChild2Integer, 1, ++/*502945*/ OPC_CheckChild2Type, MVT::i32, ++/*502947*/ OPC_CheckChild3Integer, 1, ++/*502949*/ OPC_CheckChild3Type, MVT::i32, ++/*502951*/ OPC_CheckType, MVT::v4i32, ++/*502953*/ OPC_MoveParent, ++/*502954*/ OPC_CheckType, MVT::v4i32, ++/*502956*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*502958*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$a), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a), LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*502966*/ /*Scope*/ 87, /*->503054*/ ++/*502967*/ OPC_CheckChild0Same, 1, ++/*502969*/ OPC_MoveChild1, ++/*502970*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*502973*/ OPC_CheckChild0Integer, 1, ++/*502975*/ OPC_CheckChild0Type, MVT::i32, ++/*502977*/ OPC_CheckChild1Integer, 1, ++/*502979*/ OPC_CheckChild1Type, MVT::i32, ++/*502981*/ OPC_CheckChild2Integer, 1, ++/*502983*/ OPC_CheckChild2Type, MVT::i32, ++/*502985*/ OPC_CheckChild3Integer, 1, ++/*502987*/ OPC_CheckChild3Type, MVT::i32, ++/*502989*/ OPC_MoveParent, ++/*502990*/ OPC_MoveParent, ++/*502991*/ OPC_CheckChild1Same, 0, ++/*502993*/ OPC_MoveParent, ++/*502994*/ OPC_MoveChild1, ++/*502995*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*502998*/ OPC_CheckChild0Integer, 31, ++/*503000*/ OPC_CheckChild0Type, MVT::i32, ++/*503002*/ OPC_CheckChild1Integer, 31, ++/*503004*/ OPC_CheckChild1Type, MVT::i32, ++/*503006*/ OPC_CheckChild2Integer, 31, ++/*503008*/ OPC_CheckChild2Type, MVT::i32, ++/*503010*/ OPC_CheckChild3Integer, 31, ++/*503012*/ OPC_CheckChild3Type, MVT::i32, ++/*503014*/ OPC_CheckType, MVT::v4i32, ++/*503016*/ OPC_MoveParent, ++/*503017*/ OPC_MoveParent, ++/*503018*/ OPC_MoveParent, ++/*503019*/ OPC_MoveChild1, ++/*503020*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*503023*/ OPC_CheckChild0Integer, 1, ++/*503025*/ OPC_CheckChild0Type, MVT::i32, ++/*503027*/ OPC_CheckChild1Integer, 1, ++/*503029*/ OPC_CheckChild1Type, MVT::i32, ++/*503031*/ OPC_CheckChild2Integer, 1, ++/*503033*/ OPC_CheckChild2Type, MVT::i32, ++/*503035*/ OPC_CheckChild3Integer, 1, ++/*503037*/ OPC_CheckChild3Type, MVT::i32, ++/*503039*/ OPC_CheckType, MVT::v4i32, ++/*503041*/ OPC_MoveParent, ++/*503042*/ OPC_CheckType, MVT::v4i32, ++/*503044*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*503046*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$a), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*503054*/ /*Scope*/ 87, /*->503142*/ ++/*503055*/ OPC_MoveChild0, ++/*503056*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*503059*/ OPC_CheckChild0Integer, 1, ++/*503061*/ OPC_CheckChild0Type, MVT::i32, ++/*503063*/ OPC_CheckChild1Integer, 1, ++/*503065*/ OPC_CheckChild1Type, MVT::i32, ++/*503067*/ OPC_CheckChild2Integer, 1, ++/*503069*/ OPC_CheckChild2Type, MVT::i32, ++/*503071*/ OPC_CheckChild3Integer, 1, ++/*503073*/ OPC_CheckChild3Type, MVT::i32, ++/*503075*/ OPC_MoveParent, ++/*503076*/ OPC_CheckChild1Same, 0, ++/*503078*/ OPC_MoveParent, ++/*503079*/ OPC_CheckChild1Same, 1, ++/*503081*/ OPC_MoveParent, ++/*503082*/ OPC_MoveChild1, ++/*503083*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*503086*/ OPC_CheckChild0Integer, 31, ++/*503088*/ OPC_CheckChild0Type, MVT::i32, ++/*503090*/ OPC_CheckChild1Integer, 31, ++/*503092*/ OPC_CheckChild1Type, MVT::i32, ++/*503094*/ OPC_CheckChild2Integer, 31, ++/*503096*/ OPC_CheckChild2Type, MVT::i32, ++/*503098*/ OPC_CheckChild3Integer, 31, ++/*503100*/ OPC_CheckChild3Type, MVT::i32, ++/*503102*/ OPC_CheckType, MVT::v4i32, ++/*503104*/ OPC_MoveParent, ++/*503105*/ OPC_MoveParent, ++/*503106*/ OPC_MoveParent, ++/*503107*/ OPC_MoveChild1, ++/*503108*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*503111*/ OPC_CheckChild0Integer, 1, ++/*503113*/ OPC_CheckChild0Type, MVT::i32, ++/*503115*/ OPC_CheckChild1Integer, 1, ++/*503117*/ OPC_CheckChild1Type, MVT::i32, ++/*503119*/ OPC_CheckChild2Integer, 1, ++/*503121*/ OPC_CheckChild2Type, MVT::i32, ++/*503123*/ OPC_CheckChild3Integer, 1, ++/*503125*/ OPC_CheckChild3Type, MVT::i32, ++/*503127*/ OPC_CheckType, MVT::v4i32, ++/*503129*/ OPC_MoveParent, ++/*503130*/ OPC_CheckType, MVT::v4i32, ++/*503132*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*503134*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$a), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b), LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*503142*/ /*Scope*/ 87, /*->503230*/ ++/*503143*/ OPC_CheckChild0Same, 0, ++/*503145*/ OPC_MoveChild1, ++/*503146*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*503149*/ OPC_CheckChild0Integer, 1, ++/*503151*/ OPC_CheckChild0Type, MVT::i32, ++/*503153*/ OPC_CheckChild1Integer, 1, ++/*503155*/ OPC_CheckChild1Type, MVT::i32, ++/*503157*/ OPC_CheckChild2Integer, 1, ++/*503159*/ OPC_CheckChild2Type, MVT::i32, ++/*503161*/ OPC_CheckChild3Integer, 1, ++/*503163*/ OPC_CheckChild3Type, MVT::i32, ++/*503165*/ OPC_MoveParent, ++/*503166*/ OPC_MoveParent, ++/*503167*/ OPC_CheckChild1Same, 1, ++/*503169*/ OPC_MoveParent, ++/*503170*/ OPC_MoveChild1, ++/*503171*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*503174*/ OPC_CheckChild0Integer, 31, ++/*503176*/ OPC_CheckChild0Type, MVT::i32, ++/*503178*/ OPC_CheckChild1Integer, 31, ++/*503180*/ OPC_CheckChild1Type, MVT::i32, ++/*503182*/ OPC_CheckChild2Integer, 31, ++/*503184*/ OPC_CheckChild2Type, MVT::i32, ++/*503186*/ OPC_CheckChild3Integer, 31, ++/*503188*/ OPC_CheckChild3Type, MVT::i32, ++/*503190*/ OPC_CheckType, MVT::v4i32, ++/*503192*/ OPC_MoveParent, ++/*503193*/ OPC_MoveParent, ++/*503194*/ OPC_MoveParent, ++/*503195*/ OPC_MoveChild1, ++/*503196*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*503199*/ OPC_CheckChild0Integer, 1, ++/*503201*/ OPC_CheckChild0Type, MVT::i32, ++/*503203*/ OPC_CheckChild1Integer, 1, ++/*503205*/ OPC_CheckChild1Type, MVT::i32, ++/*503207*/ OPC_CheckChild2Integer, 1, ++/*503209*/ OPC_CheckChild2Type, MVT::i32, ++/*503211*/ OPC_CheckChild3Integer, 1, ++/*503213*/ OPC_CheckChild3Type, MVT::i32, ++/*503215*/ OPC_CheckType, MVT::v4i32, ++/*503217*/ OPC_MoveParent, ++/*503218*/ OPC_CheckType, MVT::v4i32, ++/*503220*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*503222*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$a), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*503230*/ /*Scope*/ 87, /*->503318*/ ++/*503231*/ OPC_CheckChild0Same, 1, ++/*503233*/ OPC_CheckChild1Same, 0, ++/*503235*/ OPC_MoveParent, ++/*503236*/ OPC_MoveChild1, ++/*503237*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*503240*/ OPC_CheckChild0Integer, 1, ++/*503242*/ OPC_CheckChild0Type, MVT::i32, ++/*503244*/ OPC_CheckChild1Integer, 1, ++/*503246*/ OPC_CheckChild1Type, MVT::i32, ++/*503248*/ OPC_CheckChild2Integer, 1, ++/*503250*/ OPC_CheckChild2Type, MVT::i32, ++/*503252*/ OPC_CheckChild3Integer, 1, ++/*503254*/ OPC_CheckChild3Type, MVT::i32, ++/*503256*/ OPC_MoveParent, ++/*503257*/ OPC_MoveParent, ++/*503258*/ OPC_MoveChild1, ++/*503259*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*503262*/ OPC_CheckChild0Integer, 31, ++/*503264*/ OPC_CheckChild0Type, MVT::i32, ++/*503266*/ OPC_CheckChild1Integer, 31, ++/*503268*/ OPC_CheckChild1Type, MVT::i32, ++/*503270*/ OPC_CheckChild2Integer, 31, ++/*503272*/ OPC_CheckChild2Type, MVT::i32, ++/*503274*/ OPC_CheckChild3Integer, 31, ++/*503276*/ OPC_CheckChild3Type, MVT::i32, ++/*503278*/ OPC_CheckType, MVT::v4i32, ++/*503280*/ OPC_MoveParent, ++/*503281*/ OPC_MoveParent, ++/*503282*/ OPC_MoveParent, ++/*503283*/ OPC_MoveChild1, ++/*503284*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*503287*/ OPC_CheckChild0Integer, 1, ++/*503289*/ OPC_CheckChild0Type, MVT::i32, ++/*503291*/ OPC_CheckChild1Integer, 1, ++/*503293*/ OPC_CheckChild1Type, MVT::i32, ++/*503295*/ OPC_CheckChild2Integer, 1, ++/*503297*/ OPC_CheckChild2Type, MVT::i32, ++/*503299*/ OPC_CheckChild3Integer, 1, ++/*503301*/ OPC_CheckChild3Type, MVT::i32, ++/*503303*/ OPC_CheckType, MVT::v4i32, ++/*503305*/ OPC_MoveParent, ++/*503306*/ OPC_CheckType, MVT::v4i32, ++/*503308*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*503310*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$a), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*503318*/ /*Scope*/ 87, /*->503406*/ ++/*503319*/ OPC_CheckChild0Same, 0, ++/*503321*/ OPC_CheckChild1Same, 1, ++/*503323*/ OPC_MoveParent, ++/*503324*/ OPC_MoveChild1, ++/*503325*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*503328*/ OPC_CheckChild0Integer, 1, ++/*503330*/ OPC_CheckChild0Type, MVT::i32, ++/*503332*/ OPC_CheckChild1Integer, 1, ++/*503334*/ OPC_CheckChild1Type, MVT::i32, ++/*503336*/ OPC_CheckChild2Integer, 1, ++/*503338*/ OPC_CheckChild2Type, MVT::i32, ++/*503340*/ OPC_CheckChild3Integer, 1, ++/*503342*/ OPC_CheckChild3Type, MVT::i32, ++/*503344*/ OPC_MoveParent, ++/*503345*/ OPC_MoveParent, ++/*503346*/ OPC_MoveChild1, ++/*503347*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*503350*/ OPC_CheckChild0Integer, 31, ++/*503352*/ OPC_CheckChild0Type, MVT::i32, ++/*503354*/ OPC_CheckChild1Integer, 31, ++/*503356*/ OPC_CheckChild1Type, MVT::i32, ++/*503358*/ OPC_CheckChild2Integer, 31, ++/*503360*/ OPC_CheckChild2Type, MVT::i32, ++/*503362*/ OPC_CheckChild3Integer, 31, ++/*503364*/ OPC_CheckChild3Type, MVT::i32, ++/*503366*/ OPC_CheckType, MVT::v4i32, ++/*503368*/ OPC_MoveParent, ++/*503369*/ OPC_MoveParent, ++/*503370*/ OPC_MoveParent, ++/*503371*/ OPC_MoveChild1, ++/*503372*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*503375*/ OPC_CheckChild0Integer, 1, ++/*503377*/ OPC_CheckChild0Type, MVT::i32, ++/*503379*/ OPC_CheckChild1Integer, 1, ++/*503381*/ OPC_CheckChild1Type, MVT::i32, ++/*503383*/ OPC_CheckChild2Integer, 1, ++/*503385*/ OPC_CheckChild2Type, MVT::i32, ++/*503387*/ OPC_CheckChild3Integer, 1, ++/*503389*/ OPC_CheckChild3Type, MVT::i32, ++/*503391*/ OPC_CheckType, MVT::v4i32, ++/*503393*/ OPC_MoveParent, ++/*503394*/ OPC_CheckType, MVT::v4i32, ++/*503396*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*503398*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$a), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*503406*/ 0, /*End of Scope*/ ++/*503407*/ /*Scope*/ 52|128,1/*180*/, /*->503589*/ ++/*503409*/ OPC_CheckChild0Same, 0, ++/*503411*/ OPC_MoveChild1, ++/*503412*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*503415*/ OPC_Scope, 85, /*->503502*/ // 2 children in Scope ++/*503417*/ OPC_MoveChild0, ++/*503418*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*503421*/ OPC_CheckChild0Integer, 1, ++/*503423*/ OPC_CheckChild0Type, MVT::i32, ++/*503425*/ OPC_CheckChild1Integer, 1, ++/*503427*/ OPC_CheckChild1Type, MVT::i32, ++/*503429*/ OPC_CheckChild2Integer, 1, ++/*503431*/ OPC_CheckChild2Type, MVT::i32, ++/*503433*/ OPC_CheckChild3Integer, 1, ++/*503435*/ OPC_CheckChild3Type, MVT::i32, ++/*503437*/ OPC_MoveParent, ++/*503438*/ OPC_CheckChild1Same, 1, ++/*503440*/ OPC_MoveParent, ++/*503441*/ OPC_MoveParent, ++/*503442*/ OPC_MoveChild1, ++/*503443*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*503446*/ OPC_CheckChild0Integer, 31, ++/*503448*/ OPC_CheckChild0Type, MVT::i32, ++/*503450*/ OPC_CheckChild1Integer, 31, ++/*503452*/ OPC_CheckChild1Type, MVT::i32, ++/*503454*/ OPC_CheckChild2Integer, 31, ++/*503456*/ OPC_CheckChild2Type, MVT::i32, ++/*503458*/ OPC_CheckChild3Integer, 31, ++/*503460*/ OPC_CheckChild3Type, MVT::i32, ++/*503462*/ OPC_CheckType, MVT::v4i32, ++/*503464*/ OPC_MoveParent, ++/*503465*/ OPC_MoveParent, ++/*503466*/ OPC_MoveParent, ++/*503467*/ OPC_MoveChild1, ++/*503468*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*503471*/ OPC_CheckChild0Integer, 1, ++/*503473*/ OPC_CheckChild0Type, MVT::i32, ++/*503475*/ OPC_CheckChild1Integer, 1, ++/*503477*/ OPC_CheckChild1Type, MVT::i32, ++/*503479*/ OPC_CheckChild2Integer, 1, ++/*503481*/ OPC_CheckChild2Type, MVT::i32, ++/*503483*/ OPC_CheckChild3Integer, 1, ++/*503485*/ OPC_CheckChild3Type, MVT::i32, ++/*503487*/ OPC_CheckType, MVT::v4i32, ++/*503489*/ OPC_MoveParent, ++/*503490*/ OPC_CheckType, MVT::v4i32, ++/*503492*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*503494*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$a), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*503502*/ /*Scope*/ 85, /*->503588*/ ++/*503503*/ OPC_CheckChild0Same, 1, ++/*503505*/ OPC_MoveChild1, ++/*503506*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*503509*/ OPC_CheckChild0Integer, 1, ++/*503511*/ OPC_CheckChild0Type, MVT::i32, ++/*503513*/ OPC_CheckChild1Integer, 1, ++/*503515*/ OPC_CheckChild1Type, MVT::i32, ++/*503517*/ OPC_CheckChild2Integer, 1, ++/*503519*/ OPC_CheckChild2Type, MVT::i32, ++/*503521*/ OPC_CheckChild3Integer, 1, ++/*503523*/ OPC_CheckChild3Type, MVT::i32, ++/*503525*/ OPC_MoveParent, ++/*503526*/ OPC_MoveParent, ++/*503527*/ OPC_MoveParent, ++/*503528*/ OPC_MoveChild1, ++/*503529*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*503532*/ OPC_CheckChild0Integer, 31, ++/*503534*/ OPC_CheckChild0Type, MVT::i32, ++/*503536*/ OPC_CheckChild1Integer, 31, ++/*503538*/ OPC_CheckChild1Type, MVT::i32, ++/*503540*/ OPC_CheckChild2Integer, 31, ++/*503542*/ OPC_CheckChild2Type, MVT::i32, ++/*503544*/ OPC_CheckChild3Integer, 31, ++/*503546*/ OPC_CheckChild3Type, MVT::i32, ++/*503548*/ OPC_CheckType, MVT::v4i32, ++/*503550*/ OPC_MoveParent, ++/*503551*/ OPC_MoveParent, ++/*503552*/ OPC_MoveParent, ++/*503553*/ OPC_MoveChild1, ++/*503554*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*503557*/ OPC_CheckChild0Integer, 1, ++/*503559*/ OPC_CheckChild0Type, MVT::i32, ++/*503561*/ OPC_CheckChild1Integer, 1, ++/*503563*/ OPC_CheckChild1Type, MVT::i32, ++/*503565*/ OPC_CheckChild2Integer, 1, ++/*503567*/ OPC_CheckChild2Type, MVT::i32, ++/*503569*/ OPC_CheckChild3Integer, 1, ++/*503571*/ OPC_CheckChild3Type, MVT::i32, ++/*503573*/ OPC_CheckType, MVT::v4i32, ++/*503575*/ OPC_MoveParent, ++/*503576*/ OPC_CheckType, MVT::v4i32, ++/*503578*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*503580*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$a), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*503588*/ 0, /*End of Scope*/ ++/*503589*/ /*Scope*/ 52|128,1/*180*/, /*->503771*/ ++/*503591*/ OPC_CheckChild0Same, 1, ++/*503593*/ OPC_MoveChild1, ++/*503594*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*503597*/ OPC_Scope, 85, /*->503684*/ // 2 children in Scope ++/*503599*/ OPC_MoveChild0, ++/*503600*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*503603*/ OPC_CheckChild0Integer, 1, ++/*503605*/ OPC_CheckChild0Type, MVT::i32, ++/*503607*/ OPC_CheckChild1Integer, 1, ++/*503609*/ OPC_CheckChild1Type, MVT::i32, ++/*503611*/ OPC_CheckChild2Integer, 1, ++/*503613*/ OPC_CheckChild2Type, MVT::i32, ++/*503615*/ OPC_CheckChild3Integer, 1, ++/*503617*/ OPC_CheckChild3Type, MVT::i32, ++/*503619*/ OPC_MoveParent, ++/*503620*/ OPC_CheckChild1Same, 0, ++/*503622*/ OPC_MoveParent, ++/*503623*/ OPC_MoveParent, ++/*503624*/ OPC_MoveChild1, ++/*503625*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*503628*/ OPC_CheckChild0Integer, 31, ++/*503630*/ OPC_CheckChild0Type, MVT::i32, ++/*503632*/ OPC_CheckChild1Integer, 31, ++/*503634*/ OPC_CheckChild1Type, MVT::i32, ++/*503636*/ OPC_CheckChild2Integer, 31, ++/*503638*/ OPC_CheckChild2Type, MVT::i32, ++/*503640*/ OPC_CheckChild3Integer, 31, ++/*503642*/ OPC_CheckChild3Type, MVT::i32, ++/*503644*/ OPC_CheckType, MVT::v4i32, ++/*503646*/ OPC_MoveParent, ++/*503647*/ OPC_MoveParent, ++/*503648*/ OPC_MoveParent, ++/*503649*/ OPC_MoveChild1, ++/*503650*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*503653*/ OPC_CheckChild0Integer, 1, ++/*503655*/ OPC_CheckChild0Type, MVT::i32, ++/*503657*/ OPC_CheckChild1Integer, 1, ++/*503659*/ OPC_CheckChild1Type, MVT::i32, ++/*503661*/ OPC_CheckChild2Integer, 1, ++/*503663*/ OPC_CheckChild2Type, MVT::i32, ++/*503665*/ OPC_CheckChild3Integer, 1, ++/*503667*/ OPC_CheckChild3Type, MVT::i32, ++/*503669*/ OPC_CheckType, MVT::v4i32, ++/*503671*/ OPC_MoveParent, ++/*503672*/ OPC_CheckType, MVT::v4i32, ++/*503674*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*503676*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$a), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*503684*/ /*Scope*/ 85, /*->503770*/ ++/*503685*/ OPC_CheckChild0Same, 0, ++/*503687*/ OPC_MoveChild1, ++/*503688*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*503691*/ OPC_CheckChild0Integer, 1, ++/*503693*/ OPC_CheckChild0Type, MVT::i32, ++/*503695*/ OPC_CheckChild1Integer, 1, ++/*503697*/ OPC_CheckChild1Type, MVT::i32, ++/*503699*/ OPC_CheckChild2Integer, 1, ++/*503701*/ OPC_CheckChild2Type, MVT::i32, ++/*503703*/ OPC_CheckChild3Integer, 1, ++/*503705*/ OPC_CheckChild3Type, MVT::i32, ++/*503707*/ OPC_MoveParent, ++/*503708*/ OPC_MoveParent, ++/*503709*/ OPC_MoveParent, ++/*503710*/ OPC_MoveChild1, ++/*503711*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*503714*/ OPC_CheckChild0Integer, 31, ++/*503716*/ OPC_CheckChild0Type, MVT::i32, ++/*503718*/ OPC_CheckChild1Integer, 31, ++/*503720*/ OPC_CheckChild1Type, MVT::i32, ++/*503722*/ OPC_CheckChild2Integer, 31, ++/*503724*/ OPC_CheckChild2Type, MVT::i32, ++/*503726*/ OPC_CheckChild3Integer, 31, ++/*503728*/ OPC_CheckChild3Type, MVT::i32, ++/*503730*/ OPC_CheckType, MVT::v4i32, ++/*503732*/ OPC_MoveParent, ++/*503733*/ OPC_MoveParent, ++/*503734*/ OPC_MoveParent, ++/*503735*/ OPC_MoveChild1, ++/*503736*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*503739*/ OPC_CheckChild0Integer, 1, ++/*503741*/ OPC_CheckChild0Type, MVT::i32, ++/*503743*/ OPC_CheckChild1Integer, 1, ++/*503745*/ OPC_CheckChild1Type, MVT::i32, ++/*503747*/ OPC_CheckChild2Integer, 1, ++/*503749*/ OPC_CheckChild2Type, MVT::i32, ++/*503751*/ OPC_CheckChild3Integer, 1, ++/*503753*/ OPC_CheckChild3Type, MVT::i32, ++/*503755*/ OPC_CheckType, MVT::v4i32, ++/*503757*/ OPC_MoveParent, ++/*503758*/ OPC_CheckType, MVT::v4i32, ++/*503760*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*503762*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$a), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*503770*/ 0, /*End of Scope*/ ++/*503771*/ /*Scope*/ 33|128,1/*161*/, /*->503934*/ ++/*503773*/ OPC_MoveChild0, ++/*503774*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*503777*/ OPC_CheckChild0Integer, 1, ++/*503779*/ OPC_CheckChild0Type, MVT::i32, ++/*503781*/ OPC_CheckChild1Integer, 1, ++/*503783*/ OPC_CheckChild1Type, MVT::i32, ++/*503785*/ OPC_CheckChild2Integer, 1, ++/*503787*/ OPC_CheckChild2Type, MVT::i32, ++/*503789*/ OPC_CheckChild3Integer, 1, ++/*503791*/ OPC_CheckChild3Type, MVT::i32, ++/*503793*/ OPC_MoveParent, ++/*503794*/ OPC_MoveChild1, ++/*503795*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*503798*/ OPC_Scope, 66, /*->503866*/ // 2 children in Scope ++/*503800*/ OPC_CheckChild0Same, 1, ++/*503802*/ OPC_CheckChild1Same, 0, ++/*503804*/ OPC_MoveParent, ++/*503805*/ OPC_MoveParent, ++/*503806*/ OPC_MoveChild1, ++/*503807*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*503810*/ OPC_CheckChild0Integer, 31, ++/*503812*/ OPC_CheckChild0Type, MVT::i32, ++/*503814*/ OPC_CheckChild1Integer, 31, ++/*503816*/ OPC_CheckChild1Type, MVT::i32, ++/*503818*/ OPC_CheckChild2Integer, 31, ++/*503820*/ OPC_CheckChild2Type, MVT::i32, ++/*503822*/ OPC_CheckChild3Integer, 31, ++/*503824*/ OPC_CheckChild3Type, MVT::i32, ++/*503826*/ OPC_CheckType, MVT::v4i32, ++/*503828*/ OPC_MoveParent, ++/*503829*/ OPC_MoveParent, ++/*503830*/ OPC_MoveParent, ++/*503831*/ OPC_MoveChild1, ++/*503832*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*503835*/ OPC_CheckChild0Integer, 1, ++/*503837*/ OPC_CheckChild0Type, MVT::i32, ++/*503839*/ OPC_CheckChild1Integer, 1, ++/*503841*/ OPC_CheckChild1Type, MVT::i32, ++/*503843*/ OPC_CheckChild2Integer, 1, ++/*503845*/ OPC_CheckChild2Type, MVT::i32, ++/*503847*/ OPC_CheckChild3Integer, 1, ++/*503849*/ OPC_CheckChild3Type, MVT::i32, ++/*503851*/ OPC_CheckType, MVT::v4i32, ++/*503853*/ OPC_MoveParent, ++/*503854*/ OPC_CheckType, MVT::v4i32, ++/*503856*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*503858*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$a), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*503866*/ /*Scope*/ 66, /*->503933*/ ++/*503867*/ OPC_CheckChild0Same, 0, ++/*503869*/ OPC_CheckChild1Same, 1, ++/*503871*/ OPC_MoveParent, ++/*503872*/ OPC_MoveParent, ++/*503873*/ OPC_MoveChild1, ++/*503874*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*503877*/ OPC_CheckChild0Integer, 31, ++/*503879*/ OPC_CheckChild0Type, MVT::i32, ++/*503881*/ OPC_CheckChild1Integer, 31, ++/*503883*/ OPC_CheckChild1Type, MVT::i32, ++/*503885*/ OPC_CheckChild2Integer, 31, ++/*503887*/ OPC_CheckChild2Type, MVT::i32, ++/*503889*/ OPC_CheckChild3Integer, 31, ++/*503891*/ OPC_CheckChild3Type, MVT::i32, ++/*503893*/ OPC_CheckType, MVT::v4i32, ++/*503895*/ OPC_MoveParent, ++/*503896*/ OPC_MoveParent, ++/*503897*/ OPC_MoveParent, ++/*503898*/ OPC_MoveChild1, ++/*503899*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*503902*/ OPC_CheckChild0Integer, 1, ++/*503904*/ OPC_CheckChild0Type, MVT::i32, ++/*503906*/ OPC_CheckChild1Integer, 1, ++/*503908*/ OPC_CheckChild1Type, MVT::i32, ++/*503910*/ OPC_CheckChild2Integer, 1, ++/*503912*/ OPC_CheckChild2Type, MVT::i32, ++/*503914*/ OPC_CheckChild3Integer, 1, ++/*503916*/ OPC_CheckChild3Type, MVT::i32, ++/*503918*/ OPC_CheckType, MVT::v4i32, ++/*503920*/ OPC_MoveParent, ++/*503921*/ OPC_CheckType, MVT::v4i32, ++/*503923*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*503925*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$a), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*503933*/ 0, /*End of Scope*/ ++/*503934*/ 0, /*End of Scope*/ ++/*503935*/ /*Scope*/ 113|128,16/*2161*/, /*->506098*/ ++/*503937*/ OPC_RecordChild1, // #1 = $b ++/*503938*/ OPC_MoveParent, ++/*503939*/ OPC_MoveChild1, ++/*503940*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*503943*/ OPC_CheckChild0Integer, 1, ++/*503945*/ OPC_CheckChild0Type, MVT::i32, ++/*503947*/ OPC_CheckChild1Integer, 1, ++/*503949*/ OPC_CheckChild1Type, MVT::i32, ++/*503951*/ OPC_CheckChild2Integer, 1, ++/*503953*/ OPC_CheckChild2Type, MVT::i32, ++/*503955*/ OPC_CheckChild3Integer, 1, ++/*503957*/ OPC_CheckChild3Type, MVT::i32, ++/*503959*/ OPC_MoveParent, ++/*503960*/ OPC_MoveParent, ++/*503961*/ OPC_MoveChild1, ++/*503962*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*503965*/ OPC_MoveChild0, ++/*503966*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*503969*/ OPC_Scope, 22|128,4/*534*/, /*->504506*/ // 7 children in Scope ++/*503972*/ OPC_MoveChild0, ++/*503973*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*503976*/ OPC_Scope, 87, /*->504065*/ // 6 children in Scope ++/*503978*/ OPC_MoveChild0, ++/*503979*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*503982*/ OPC_CheckChild0Integer, 1, ++/*503984*/ OPC_CheckChild0Type, MVT::i32, ++/*503986*/ OPC_CheckChild1Integer, 1, ++/*503988*/ OPC_CheckChild1Type, MVT::i32, ++/*503990*/ OPC_CheckChild2Integer, 1, ++/*503992*/ OPC_CheckChild2Type, MVT::i32, ++/*503994*/ OPC_CheckChild3Integer, 1, ++/*503996*/ OPC_CheckChild3Type, MVT::i32, ++/*503998*/ OPC_MoveParent, ++/*503999*/ OPC_CheckChild1Same, 0, ++/*504001*/ OPC_MoveParent, ++/*504002*/ OPC_CheckChild1Same, 1, ++/*504004*/ OPC_MoveParent, ++/*504005*/ OPC_MoveChild1, ++/*504006*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*504009*/ OPC_CheckChild0Integer, 31, ++/*504011*/ OPC_CheckChild0Type, MVT::i32, ++/*504013*/ OPC_CheckChild1Integer, 31, ++/*504015*/ OPC_CheckChild1Type, MVT::i32, ++/*504017*/ OPC_CheckChild2Integer, 31, ++/*504019*/ OPC_CheckChild2Type, MVT::i32, ++/*504021*/ OPC_CheckChild3Integer, 31, ++/*504023*/ OPC_CheckChild3Type, MVT::i32, ++/*504025*/ OPC_CheckType, MVT::v4i32, ++/*504027*/ OPC_MoveParent, ++/*504028*/ OPC_MoveParent, ++/*504029*/ OPC_MoveParent, ++/*504030*/ OPC_MoveChild1, ++/*504031*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*504034*/ OPC_CheckChild0Integer, 1, ++/*504036*/ OPC_CheckChild0Type, MVT::i32, ++/*504038*/ OPC_CheckChild1Integer, 1, ++/*504040*/ OPC_CheckChild1Type, MVT::i32, ++/*504042*/ OPC_CheckChild2Integer, 1, ++/*504044*/ OPC_CheckChild2Type, MVT::i32, ++/*504046*/ OPC_CheckChild3Integer, 1, ++/*504048*/ OPC_CheckChild3Type, MVT::i32, ++/*504050*/ OPC_CheckType, MVT::v4i32, ++/*504052*/ OPC_MoveParent, ++/*504053*/ OPC_CheckType, MVT::v4i32, ++/*504055*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*504057*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a), LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*504065*/ /*Scope*/ 87, /*->504153*/ ++/*504066*/ OPC_CheckChild0Same, 0, ++/*504068*/ OPC_MoveChild1, ++/*504069*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*504072*/ OPC_CheckChild0Integer, 1, ++/*504074*/ OPC_CheckChild0Type, MVT::i32, ++/*504076*/ OPC_CheckChild1Integer, 1, ++/*504078*/ OPC_CheckChild1Type, MVT::i32, ++/*504080*/ OPC_CheckChild2Integer, 1, ++/*504082*/ OPC_CheckChild2Type, MVT::i32, ++/*504084*/ OPC_CheckChild3Integer, 1, ++/*504086*/ OPC_CheckChild3Type, MVT::i32, ++/*504088*/ OPC_MoveParent, ++/*504089*/ OPC_MoveParent, ++/*504090*/ OPC_CheckChild1Same, 1, ++/*504092*/ OPC_MoveParent, ++/*504093*/ OPC_MoveChild1, ++/*504094*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*504097*/ OPC_CheckChild0Integer, 31, ++/*504099*/ OPC_CheckChild0Type, MVT::i32, ++/*504101*/ OPC_CheckChild1Integer, 31, ++/*504103*/ OPC_CheckChild1Type, MVT::i32, ++/*504105*/ OPC_CheckChild2Integer, 31, ++/*504107*/ OPC_CheckChild2Type, MVT::i32, ++/*504109*/ OPC_CheckChild3Integer, 31, ++/*504111*/ OPC_CheckChild3Type, MVT::i32, ++/*504113*/ OPC_CheckType, MVT::v4i32, ++/*504115*/ OPC_MoveParent, ++/*504116*/ OPC_MoveParent, ++/*504117*/ OPC_MoveParent, ++/*504118*/ OPC_MoveChild1, ++/*504119*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*504122*/ OPC_CheckChild0Integer, 1, ++/*504124*/ OPC_CheckChild0Type, MVT::i32, ++/*504126*/ OPC_CheckChild1Integer, 1, ++/*504128*/ OPC_CheckChild1Type, MVT::i32, ++/*504130*/ OPC_CheckChild2Integer, 1, ++/*504132*/ OPC_CheckChild2Type, MVT::i32, ++/*504134*/ OPC_CheckChild3Integer, 1, ++/*504136*/ OPC_CheckChild3Type, MVT::i32, ++/*504138*/ OPC_CheckType, MVT::v4i32, ++/*504140*/ OPC_MoveParent, ++/*504141*/ OPC_CheckType, MVT::v4i32, ++/*504143*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*504145*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*504153*/ /*Scope*/ 87, /*->504241*/ ++/*504154*/ OPC_MoveChild0, ++/*504155*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*504158*/ OPC_CheckChild0Integer, 1, ++/*504160*/ OPC_CheckChild0Type, MVT::i32, ++/*504162*/ OPC_CheckChild1Integer, 1, ++/*504164*/ OPC_CheckChild1Type, MVT::i32, ++/*504166*/ OPC_CheckChild2Integer, 1, ++/*504168*/ OPC_CheckChild2Type, MVT::i32, ++/*504170*/ OPC_CheckChild3Integer, 1, ++/*504172*/ OPC_CheckChild3Type, MVT::i32, ++/*504174*/ OPC_MoveParent, ++/*504175*/ OPC_CheckChild1Same, 1, ++/*504177*/ OPC_MoveParent, ++/*504178*/ OPC_CheckChild1Same, 0, ++/*504180*/ OPC_MoveParent, ++/*504181*/ OPC_MoveChild1, ++/*504182*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*504185*/ OPC_CheckChild0Integer, 31, ++/*504187*/ OPC_CheckChild0Type, MVT::i32, ++/*504189*/ OPC_CheckChild1Integer, 31, ++/*504191*/ OPC_CheckChild1Type, MVT::i32, ++/*504193*/ OPC_CheckChild2Integer, 31, ++/*504195*/ OPC_CheckChild2Type, MVT::i32, ++/*504197*/ OPC_CheckChild3Integer, 31, ++/*504199*/ OPC_CheckChild3Type, MVT::i32, ++/*504201*/ OPC_CheckType, MVT::v4i32, ++/*504203*/ OPC_MoveParent, ++/*504204*/ OPC_MoveParent, ++/*504205*/ OPC_MoveParent, ++/*504206*/ OPC_MoveChild1, ++/*504207*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*504210*/ OPC_CheckChild0Integer, 1, ++/*504212*/ OPC_CheckChild0Type, MVT::i32, ++/*504214*/ OPC_CheckChild1Integer, 1, ++/*504216*/ OPC_CheckChild1Type, MVT::i32, ++/*504218*/ OPC_CheckChild2Integer, 1, ++/*504220*/ OPC_CheckChild2Type, MVT::i32, ++/*504222*/ OPC_CheckChild3Integer, 1, ++/*504224*/ OPC_CheckChild3Type, MVT::i32, ++/*504226*/ OPC_CheckType, MVT::v4i32, ++/*504228*/ OPC_MoveParent, ++/*504229*/ OPC_CheckType, MVT::v4i32, ++/*504231*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*504233*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b), LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*504241*/ /*Scope*/ 87, /*->504329*/ ++/*504242*/ OPC_CheckChild0Same, 1, ++/*504244*/ OPC_MoveChild1, ++/*504245*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*504248*/ OPC_CheckChild0Integer, 1, ++/*504250*/ OPC_CheckChild0Type, MVT::i32, ++/*504252*/ OPC_CheckChild1Integer, 1, ++/*504254*/ OPC_CheckChild1Type, MVT::i32, ++/*504256*/ OPC_CheckChild2Integer, 1, ++/*504258*/ OPC_CheckChild2Type, MVT::i32, ++/*504260*/ OPC_CheckChild3Integer, 1, ++/*504262*/ OPC_CheckChild3Type, MVT::i32, ++/*504264*/ OPC_MoveParent, ++/*504265*/ OPC_MoveParent, ++/*504266*/ OPC_CheckChild1Same, 0, ++/*504268*/ OPC_MoveParent, ++/*504269*/ OPC_MoveChild1, ++/*504270*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*504273*/ OPC_CheckChild0Integer, 31, ++/*504275*/ OPC_CheckChild0Type, MVT::i32, ++/*504277*/ OPC_CheckChild1Integer, 31, ++/*504279*/ OPC_CheckChild1Type, MVT::i32, ++/*504281*/ OPC_CheckChild2Integer, 31, ++/*504283*/ OPC_CheckChild2Type, MVT::i32, ++/*504285*/ OPC_CheckChild3Integer, 31, ++/*504287*/ OPC_CheckChild3Type, MVT::i32, ++/*504289*/ OPC_CheckType, MVT::v4i32, ++/*504291*/ OPC_MoveParent, ++/*504292*/ OPC_MoveParent, ++/*504293*/ OPC_MoveParent, ++/*504294*/ OPC_MoveChild1, ++/*504295*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*504298*/ OPC_CheckChild0Integer, 1, ++/*504300*/ OPC_CheckChild0Type, MVT::i32, ++/*504302*/ OPC_CheckChild1Integer, 1, ++/*504304*/ OPC_CheckChild1Type, MVT::i32, ++/*504306*/ OPC_CheckChild2Integer, 1, ++/*504308*/ OPC_CheckChild2Type, MVT::i32, ++/*504310*/ OPC_CheckChild3Integer, 1, ++/*504312*/ OPC_CheckChild3Type, MVT::i32, ++/*504314*/ OPC_CheckType, MVT::v4i32, ++/*504316*/ OPC_MoveParent, ++/*504317*/ OPC_CheckType, MVT::v4i32, ++/*504319*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*504321*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*504329*/ /*Scope*/ 87, /*->504417*/ ++/*504330*/ OPC_CheckChild0Same, 0, ++/*504332*/ OPC_CheckChild1Same, 1, ++/*504334*/ OPC_MoveParent, ++/*504335*/ OPC_MoveChild1, ++/*504336*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*504339*/ OPC_CheckChild0Integer, 1, ++/*504341*/ OPC_CheckChild0Type, MVT::i32, ++/*504343*/ OPC_CheckChild1Integer, 1, ++/*504345*/ OPC_CheckChild1Type, MVT::i32, ++/*504347*/ OPC_CheckChild2Integer, 1, ++/*504349*/ OPC_CheckChild2Type, MVT::i32, ++/*504351*/ OPC_CheckChild3Integer, 1, ++/*504353*/ OPC_CheckChild3Type, MVT::i32, ++/*504355*/ OPC_MoveParent, ++/*504356*/ OPC_MoveParent, ++/*504357*/ OPC_MoveChild1, ++/*504358*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*504361*/ OPC_CheckChild0Integer, 31, ++/*504363*/ OPC_CheckChild0Type, MVT::i32, ++/*504365*/ OPC_CheckChild1Integer, 31, ++/*504367*/ OPC_CheckChild1Type, MVT::i32, ++/*504369*/ OPC_CheckChild2Integer, 31, ++/*504371*/ OPC_CheckChild2Type, MVT::i32, ++/*504373*/ OPC_CheckChild3Integer, 31, ++/*504375*/ OPC_CheckChild3Type, MVT::i32, ++/*504377*/ OPC_CheckType, MVT::v4i32, ++/*504379*/ OPC_MoveParent, ++/*504380*/ OPC_MoveParent, ++/*504381*/ OPC_MoveParent, ++/*504382*/ OPC_MoveChild1, ++/*504383*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*504386*/ OPC_CheckChild0Integer, 1, ++/*504388*/ OPC_CheckChild0Type, MVT::i32, ++/*504390*/ OPC_CheckChild1Integer, 1, ++/*504392*/ OPC_CheckChild1Type, MVT::i32, ++/*504394*/ OPC_CheckChild2Integer, 1, ++/*504396*/ OPC_CheckChild2Type, MVT::i32, ++/*504398*/ OPC_CheckChild3Integer, 1, ++/*504400*/ OPC_CheckChild3Type, MVT::i32, ++/*504402*/ OPC_CheckType, MVT::v4i32, ++/*504404*/ OPC_MoveParent, ++/*504405*/ OPC_CheckType, MVT::v4i32, ++/*504407*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*504409*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*504417*/ /*Scope*/ 87, /*->504505*/ ++/*504418*/ OPC_CheckChild0Same, 1, ++/*504420*/ OPC_CheckChild1Same, 0, ++/*504422*/ OPC_MoveParent, ++/*504423*/ OPC_MoveChild1, ++/*504424*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*504427*/ OPC_CheckChild0Integer, 1, ++/*504429*/ OPC_CheckChild0Type, MVT::i32, ++/*504431*/ OPC_CheckChild1Integer, 1, ++/*504433*/ OPC_CheckChild1Type, MVT::i32, ++/*504435*/ OPC_CheckChild2Integer, 1, ++/*504437*/ OPC_CheckChild2Type, MVT::i32, ++/*504439*/ OPC_CheckChild3Integer, 1, ++/*504441*/ OPC_CheckChild3Type, MVT::i32, ++/*504443*/ OPC_MoveParent, ++/*504444*/ OPC_MoveParent, ++/*504445*/ OPC_MoveChild1, ++/*504446*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*504449*/ OPC_CheckChild0Integer, 31, ++/*504451*/ OPC_CheckChild0Type, MVT::i32, ++/*504453*/ OPC_CheckChild1Integer, 31, ++/*504455*/ OPC_CheckChild1Type, MVT::i32, ++/*504457*/ OPC_CheckChild2Integer, 31, ++/*504459*/ OPC_CheckChild2Type, MVT::i32, ++/*504461*/ OPC_CheckChild3Integer, 31, ++/*504463*/ OPC_CheckChild3Type, MVT::i32, ++/*504465*/ OPC_CheckType, MVT::v4i32, ++/*504467*/ OPC_MoveParent, ++/*504468*/ OPC_MoveParent, ++/*504469*/ OPC_MoveParent, ++/*504470*/ OPC_MoveChild1, ++/*504471*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*504474*/ OPC_CheckChild0Integer, 1, ++/*504476*/ OPC_CheckChild0Type, MVT::i32, ++/*504478*/ OPC_CheckChild1Integer, 1, ++/*504480*/ OPC_CheckChild1Type, MVT::i32, ++/*504482*/ OPC_CheckChild2Integer, 1, ++/*504484*/ OPC_CheckChild2Type, MVT::i32, ++/*504486*/ OPC_CheckChild3Integer, 1, ++/*504488*/ OPC_CheckChild3Type, MVT::i32, ++/*504490*/ OPC_CheckType, MVT::v4i32, ++/*504492*/ OPC_MoveParent, ++/*504493*/ OPC_CheckType, MVT::v4i32, ++/*504495*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*504497*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*504505*/ 0, /*End of Scope*/ ++/*504506*/ /*Scope*/ 52|128,1/*180*/, /*->504688*/ ++/*504508*/ OPC_CheckChild0Same, 1, ++/*504510*/ OPC_MoveChild1, ++/*504511*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*504514*/ OPC_Scope, 85, /*->504601*/ // 2 children in Scope ++/*504516*/ OPC_MoveChild0, ++/*504517*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*504520*/ OPC_CheckChild0Integer, 1, ++/*504522*/ OPC_CheckChild0Type, MVT::i32, ++/*504524*/ OPC_CheckChild1Integer, 1, ++/*504526*/ OPC_CheckChild1Type, MVT::i32, ++/*504528*/ OPC_CheckChild2Integer, 1, ++/*504530*/ OPC_CheckChild2Type, MVT::i32, ++/*504532*/ OPC_CheckChild3Integer, 1, ++/*504534*/ OPC_CheckChild3Type, MVT::i32, ++/*504536*/ OPC_MoveParent, ++/*504537*/ OPC_CheckChild1Same, 0, ++/*504539*/ OPC_MoveParent, ++/*504540*/ OPC_MoveParent, ++/*504541*/ OPC_MoveChild1, ++/*504542*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*504545*/ OPC_CheckChild0Integer, 31, ++/*504547*/ OPC_CheckChild0Type, MVT::i32, ++/*504549*/ OPC_CheckChild1Integer, 31, ++/*504551*/ OPC_CheckChild1Type, MVT::i32, ++/*504553*/ OPC_CheckChild2Integer, 31, ++/*504555*/ OPC_CheckChild2Type, MVT::i32, ++/*504557*/ OPC_CheckChild3Integer, 31, ++/*504559*/ OPC_CheckChild3Type, MVT::i32, ++/*504561*/ OPC_CheckType, MVT::v4i32, ++/*504563*/ OPC_MoveParent, ++/*504564*/ OPC_MoveParent, ++/*504565*/ OPC_MoveParent, ++/*504566*/ OPC_MoveChild1, ++/*504567*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*504570*/ OPC_CheckChild0Integer, 1, ++/*504572*/ OPC_CheckChild0Type, MVT::i32, ++/*504574*/ OPC_CheckChild1Integer, 1, ++/*504576*/ OPC_CheckChild1Type, MVT::i32, ++/*504578*/ OPC_CheckChild2Integer, 1, ++/*504580*/ OPC_CheckChild2Type, MVT::i32, ++/*504582*/ OPC_CheckChild3Integer, 1, ++/*504584*/ OPC_CheckChild3Type, MVT::i32, ++/*504586*/ OPC_CheckType, MVT::v4i32, ++/*504588*/ OPC_MoveParent, ++/*504589*/ OPC_CheckType, MVT::v4i32, ++/*504591*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*504593*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*504601*/ /*Scope*/ 85, /*->504687*/ ++/*504602*/ OPC_CheckChild0Same, 0, ++/*504604*/ OPC_MoveChild1, ++/*504605*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*504608*/ OPC_CheckChild0Integer, 1, ++/*504610*/ OPC_CheckChild0Type, MVT::i32, ++/*504612*/ OPC_CheckChild1Integer, 1, ++/*504614*/ OPC_CheckChild1Type, MVT::i32, ++/*504616*/ OPC_CheckChild2Integer, 1, ++/*504618*/ OPC_CheckChild2Type, MVT::i32, ++/*504620*/ OPC_CheckChild3Integer, 1, ++/*504622*/ OPC_CheckChild3Type, MVT::i32, ++/*504624*/ OPC_MoveParent, ++/*504625*/ OPC_MoveParent, ++/*504626*/ OPC_MoveParent, ++/*504627*/ OPC_MoveChild1, ++/*504628*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*504631*/ OPC_CheckChild0Integer, 31, ++/*504633*/ OPC_CheckChild0Type, MVT::i32, ++/*504635*/ OPC_CheckChild1Integer, 31, ++/*504637*/ OPC_CheckChild1Type, MVT::i32, ++/*504639*/ OPC_CheckChild2Integer, 31, ++/*504641*/ OPC_CheckChild2Type, MVT::i32, ++/*504643*/ OPC_CheckChild3Integer, 31, ++/*504645*/ OPC_CheckChild3Type, MVT::i32, ++/*504647*/ OPC_CheckType, MVT::v4i32, ++/*504649*/ OPC_MoveParent, ++/*504650*/ OPC_MoveParent, ++/*504651*/ OPC_MoveParent, ++/*504652*/ OPC_MoveChild1, ++/*504653*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*504656*/ OPC_CheckChild0Integer, 1, ++/*504658*/ OPC_CheckChild0Type, MVT::i32, ++/*504660*/ OPC_CheckChild1Integer, 1, ++/*504662*/ OPC_CheckChild1Type, MVT::i32, ++/*504664*/ OPC_CheckChild2Integer, 1, ++/*504666*/ OPC_CheckChild2Type, MVT::i32, ++/*504668*/ OPC_CheckChild3Integer, 1, ++/*504670*/ OPC_CheckChild3Type, MVT::i32, ++/*504672*/ OPC_CheckType, MVT::v4i32, ++/*504674*/ OPC_MoveParent, ++/*504675*/ OPC_CheckType, MVT::v4i32, ++/*504677*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*504679*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*504687*/ 0, /*End of Scope*/ ++/*504688*/ /*Scope*/ 52|128,1/*180*/, /*->504870*/ ++/*504690*/ OPC_CheckChild0Same, 0, ++/*504692*/ OPC_MoveChild1, ++/*504693*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*504696*/ OPC_Scope, 85, /*->504783*/ // 2 children in Scope ++/*504698*/ OPC_MoveChild0, ++/*504699*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*504702*/ OPC_CheckChild0Integer, 1, ++/*504704*/ OPC_CheckChild0Type, MVT::i32, ++/*504706*/ OPC_CheckChild1Integer, 1, ++/*504708*/ OPC_CheckChild1Type, MVT::i32, ++/*504710*/ OPC_CheckChild2Integer, 1, ++/*504712*/ OPC_CheckChild2Type, MVT::i32, ++/*504714*/ OPC_CheckChild3Integer, 1, ++/*504716*/ OPC_CheckChild3Type, MVT::i32, ++/*504718*/ OPC_MoveParent, ++/*504719*/ OPC_CheckChild1Same, 1, ++/*504721*/ OPC_MoveParent, ++/*504722*/ OPC_MoveParent, ++/*504723*/ OPC_MoveChild1, ++/*504724*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*504727*/ OPC_CheckChild0Integer, 31, ++/*504729*/ OPC_CheckChild0Type, MVT::i32, ++/*504731*/ OPC_CheckChild1Integer, 31, ++/*504733*/ OPC_CheckChild1Type, MVT::i32, ++/*504735*/ OPC_CheckChild2Integer, 31, ++/*504737*/ OPC_CheckChild2Type, MVT::i32, ++/*504739*/ OPC_CheckChild3Integer, 31, ++/*504741*/ OPC_CheckChild3Type, MVT::i32, ++/*504743*/ OPC_CheckType, MVT::v4i32, ++/*504745*/ OPC_MoveParent, ++/*504746*/ OPC_MoveParent, ++/*504747*/ OPC_MoveParent, ++/*504748*/ OPC_MoveChild1, ++/*504749*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*504752*/ OPC_CheckChild0Integer, 1, ++/*504754*/ OPC_CheckChild0Type, MVT::i32, ++/*504756*/ OPC_CheckChild1Integer, 1, ++/*504758*/ OPC_CheckChild1Type, MVT::i32, ++/*504760*/ OPC_CheckChild2Integer, 1, ++/*504762*/ OPC_CheckChild2Type, MVT::i32, ++/*504764*/ OPC_CheckChild3Integer, 1, ++/*504766*/ OPC_CheckChild3Type, MVT::i32, ++/*504768*/ OPC_CheckType, MVT::v4i32, ++/*504770*/ OPC_MoveParent, ++/*504771*/ OPC_CheckType, MVT::v4i32, ++/*504773*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*504775*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*504783*/ /*Scope*/ 85, /*->504869*/ ++/*504784*/ OPC_CheckChild0Same, 1, ++/*504786*/ OPC_MoveChild1, ++/*504787*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*504790*/ OPC_CheckChild0Integer, 1, ++/*504792*/ OPC_CheckChild0Type, MVT::i32, ++/*504794*/ OPC_CheckChild1Integer, 1, ++/*504796*/ OPC_CheckChild1Type, MVT::i32, ++/*504798*/ OPC_CheckChild2Integer, 1, ++/*504800*/ OPC_CheckChild2Type, MVT::i32, ++/*504802*/ OPC_CheckChild3Integer, 1, ++/*504804*/ OPC_CheckChild3Type, MVT::i32, ++/*504806*/ OPC_MoveParent, ++/*504807*/ OPC_MoveParent, ++/*504808*/ OPC_MoveParent, ++/*504809*/ OPC_MoveChild1, ++/*504810*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*504813*/ OPC_CheckChild0Integer, 31, ++/*504815*/ OPC_CheckChild0Type, MVT::i32, ++/*504817*/ OPC_CheckChild1Integer, 31, ++/*504819*/ OPC_CheckChild1Type, MVT::i32, ++/*504821*/ OPC_CheckChild2Integer, 31, ++/*504823*/ OPC_CheckChild2Type, MVT::i32, ++/*504825*/ OPC_CheckChild3Integer, 31, ++/*504827*/ OPC_CheckChild3Type, MVT::i32, ++/*504829*/ OPC_CheckType, MVT::v4i32, ++/*504831*/ OPC_MoveParent, ++/*504832*/ OPC_MoveParent, ++/*504833*/ OPC_MoveParent, ++/*504834*/ OPC_MoveChild1, ++/*504835*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*504838*/ OPC_CheckChild0Integer, 1, ++/*504840*/ OPC_CheckChild0Type, MVT::i32, ++/*504842*/ OPC_CheckChild1Integer, 1, ++/*504844*/ OPC_CheckChild1Type, MVT::i32, ++/*504846*/ OPC_CheckChild2Integer, 1, ++/*504848*/ OPC_CheckChild2Type, MVT::i32, ++/*504850*/ OPC_CheckChild3Integer, 1, ++/*504852*/ OPC_CheckChild3Type, MVT::i32, ++/*504854*/ OPC_CheckType, MVT::v4i32, ++/*504856*/ OPC_MoveParent, ++/*504857*/ OPC_CheckType, MVT::v4i32, ++/*504859*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*504861*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*504869*/ 0, /*End of Scope*/ ++/*504870*/ /*Scope*/ 58|128,5/*698*/, /*->505570*/ ++/*504872*/ OPC_MoveChild0, ++/*504873*/ OPC_SwitchOpcode /*2 cases */, 29|128,1/*157*/, TARGET_VAL(ISD::BUILD_VECTOR),// ->505035 ++/*504878*/ OPC_CheckChild0Integer, 1, ++/*504880*/ OPC_CheckChild0Type, MVT::i32, ++/*504882*/ OPC_CheckChild1Integer, 1, ++/*504884*/ OPC_CheckChild1Type, MVT::i32, ++/*504886*/ OPC_CheckChild2Integer, 1, ++/*504888*/ OPC_CheckChild2Type, MVT::i32, ++/*504890*/ OPC_CheckChild3Integer, 1, ++/*504892*/ OPC_CheckChild3Type, MVT::i32, ++/*504894*/ OPC_MoveParent, ++/*504895*/ OPC_MoveChild1, ++/*504896*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*504899*/ OPC_Scope, 66, /*->504967*/ // 2 children in Scope ++/*504901*/ OPC_CheckChild0Same, 0, ++/*504903*/ OPC_CheckChild1Same, 1, ++/*504905*/ OPC_MoveParent, ++/*504906*/ OPC_MoveParent, ++/*504907*/ OPC_MoveChild1, ++/*504908*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*504911*/ OPC_CheckChild0Integer, 31, ++/*504913*/ OPC_CheckChild0Type, MVT::i32, ++/*504915*/ OPC_CheckChild1Integer, 31, ++/*504917*/ OPC_CheckChild1Type, MVT::i32, ++/*504919*/ OPC_CheckChild2Integer, 31, ++/*504921*/ OPC_CheckChild2Type, MVT::i32, ++/*504923*/ OPC_CheckChild3Integer, 31, ++/*504925*/ OPC_CheckChild3Type, MVT::i32, ++/*504927*/ OPC_CheckType, MVT::v4i32, ++/*504929*/ OPC_MoveParent, ++/*504930*/ OPC_MoveParent, ++/*504931*/ OPC_MoveParent, ++/*504932*/ OPC_MoveChild1, ++/*504933*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*504936*/ OPC_CheckChild0Integer, 1, ++/*504938*/ OPC_CheckChild0Type, MVT::i32, ++/*504940*/ OPC_CheckChild1Integer, 1, ++/*504942*/ OPC_CheckChild1Type, MVT::i32, ++/*504944*/ OPC_CheckChild2Integer, 1, ++/*504946*/ OPC_CheckChild2Type, MVT::i32, ++/*504948*/ OPC_CheckChild3Integer, 1, ++/*504950*/ OPC_CheckChild3Type, MVT::i32, ++/*504952*/ OPC_CheckType, MVT::v4i32, ++/*504954*/ OPC_MoveParent, ++/*504955*/ OPC_CheckType, MVT::v4i32, ++/*504957*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*504959*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*504967*/ /*Scope*/ 66, /*->505034*/ ++/*504968*/ OPC_CheckChild0Same, 1, ++/*504970*/ OPC_CheckChild1Same, 0, ++/*504972*/ OPC_MoveParent, ++/*504973*/ OPC_MoveParent, ++/*504974*/ OPC_MoveChild1, ++/*504975*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*504978*/ OPC_CheckChild0Integer, 31, ++/*504980*/ OPC_CheckChild0Type, MVT::i32, ++/*504982*/ OPC_CheckChild1Integer, 31, ++/*504984*/ OPC_CheckChild1Type, MVT::i32, ++/*504986*/ OPC_CheckChild2Integer, 31, ++/*504988*/ OPC_CheckChild2Type, MVT::i32, ++/*504990*/ OPC_CheckChild3Integer, 31, ++/*504992*/ OPC_CheckChild3Type, MVT::i32, ++/*504994*/ OPC_CheckType, MVT::v4i32, ++/*504996*/ OPC_MoveParent, ++/*504997*/ OPC_MoveParent, ++/*504998*/ OPC_MoveParent, ++/*504999*/ OPC_MoveChild1, ++/*505000*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*505003*/ OPC_CheckChild0Integer, 1, ++/*505005*/ OPC_CheckChild0Type, MVT::i32, ++/*505007*/ OPC_CheckChild1Integer, 1, ++/*505009*/ OPC_CheckChild1Type, MVT::i32, ++/*505011*/ OPC_CheckChild2Integer, 1, ++/*505013*/ OPC_CheckChild2Type, MVT::i32, ++/*505015*/ OPC_CheckChild3Integer, 1, ++/*505017*/ OPC_CheckChild3Type, MVT::i32, ++/*505019*/ OPC_CheckType, MVT::v4i32, ++/*505021*/ OPC_MoveParent, ++/*505022*/ OPC_CheckType, MVT::v4i32, ++/*505024*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*505026*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*505034*/ 0, /*End of Scope*/ ++/*505035*/ /*SwitchOpcode*/ 18|128,4/*530*/, TARGET_VAL(ISD::ADD),// ->505569 ++/*505039*/ OPC_Scope, 87, /*->505128*/ // 6 children in Scope ++/*505041*/ OPC_MoveChild0, ++/*505042*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*505045*/ OPC_CheckChild0Integer, 1, ++/*505047*/ OPC_CheckChild0Type, MVT::i32, ++/*505049*/ OPC_CheckChild1Integer, 1, ++/*505051*/ OPC_CheckChild1Type, MVT::i32, ++/*505053*/ OPC_CheckChild2Integer, 1, ++/*505055*/ OPC_CheckChild2Type, MVT::i32, ++/*505057*/ OPC_CheckChild3Integer, 1, ++/*505059*/ OPC_CheckChild3Type, MVT::i32, ++/*505061*/ OPC_MoveParent, ++/*505062*/ OPC_CheckChild1Same, 1, ++/*505064*/ OPC_MoveParent, ++/*505065*/ OPC_CheckChild1Same, 0, ++/*505067*/ OPC_MoveParent, ++/*505068*/ OPC_MoveChild1, ++/*505069*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*505072*/ OPC_CheckChild0Integer, 31, ++/*505074*/ OPC_CheckChild0Type, MVT::i32, ++/*505076*/ OPC_CheckChild1Integer, 31, ++/*505078*/ OPC_CheckChild1Type, MVT::i32, ++/*505080*/ OPC_CheckChild2Integer, 31, ++/*505082*/ OPC_CheckChild2Type, MVT::i32, ++/*505084*/ OPC_CheckChild3Integer, 31, ++/*505086*/ OPC_CheckChild3Type, MVT::i32, ++/*505088*/ OPC_CheckType, MVT::v4i32, ++/*505090*/ OPC_MoveParent, ++/*505091*/ OPC_MoveParent, ++/*505092*/ OPC_MoveParent, ++/*505093*/ OPC_MoveChild1, ++/*505094*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*505097*/ OPC_CheckChild0Integer, 1, ++/*505099*/ OPC_CheckChild0Type, MVT::i32, ++/*505101*/ OPC_CheckChild1Integer, 1, ++/*505103*/ OPC_CheckChild1Type, MVT::i32, ++/*505105*/ OPC_CheckChild2Integer, 1, ++/*505107*/ OPC_CheckChild2Type, MVT::i32, ++/*505109*/ OPC_CheckChild3Integer, 1, ++/*505111*/ OPC_CheckChild3Type, MVT::i32, ++/*505113*/ OPC_CheckType, MVT::v4i32, ++/*505115*/ OPC_MoveParent, ++/*505116*/ OPC_CheckType, MVT::v4i32, ++/*505118*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*505120*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a), LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*505128*/ /*Scope*/ 87, /*->505216*/ ++/*505129*/ OPC_CheckChild0Same, 1, ++/*505131*/ OPC_MoveChild1, ++/*505132*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*505135*/ OPC_CheckChild0Integer, 1, ++/*505137*/ OPC_CheckChild0Type, MVT::i32, ++/*505139*/ OPC_CheckChild1Integer, 1, ++/*505141*/ OPC_CheckChild1Type, MVT::i32, ++/*505143*/ OPC_CheckChild2Integer, 1, ++/*505145*/ OPC_CheckChild2Type, MVT::i32, ++/*505147*/ OPC_CheckChild3Integer, 1, ++/*505149*/ OPC_CheckChild3Type, MVT::i32, ++/*505151*/ OPC_MoveParent, ++/*505152*/ OPC_MoveParent, ++/*505153*/ OPC_CheckChild1Same, 0, ++/*505155*/ OPC_MoveParent, ++/*505156*/ OPC_MoveChild1, ++/*505157*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*505160*/ OPC_CheckChild0Integer, 31, ++/*505162*/ OPC_CheckChild0Type, MVT::i32, ++/*505164*/ OPC_CheckChild1Integer, 31, ++/*505166*/ OPC_CheckChild1Type, MVT::i32, ++/*505168*/ OPC_CheckChild2Integer, 31, ++/*505170*/ OPC_CheckChild2Type, MVT::i32, ++/*505172*/ OPC_CheckChild3Integer, 31, ++/*505174*/ OPC_CheckChild3Type, MVT::i32, ++/*505176*/ OPC_CheckType, MVT::v4i32, ++/*505178*/ OPC_MoveParent, ++/*505179*/ OPC_MoveParent, ++/*505180*/ OPC_MoveParent, ++/*505181*/ OPC_MoveChild1, ++/*505182*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*505185*/ OPC_CheckChild0Integer, 1, ++/*505187*/ OPC_CheckChild0Type, MVT::i32, ++/*505189*/ OPC_CheckChild1Integer, 1, ++/*505191*/ OPC_CheckChild1Type, MVT::i32, ++/*505193*/ OPC_CheckChild2Integer, 1, ++/*505195*/ OPC_CheckChild2Type, MVT::i32, ++/*505197*/ OPC_CheckChild3Integer, 1, ++/*505199*/ OPC_CheckChild3Type, MVT::i32, ++/*505201*/ OPC_CheckType, MVT::v4i32, ++/*505203*/ OPC_MoveParent, ++/*505204*/ OPC_CheckType, MVT::v4i32, ++/*505206*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*505208*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*505216*/ /*Scope*/ 87, /*->505304*/ ++/*505217*/ OPC_MoveChild0, ++/*505218*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*505221*/ OPC_CheckChild0Integer, 1, ++/*505223*/ OPC_CheckChild0Type, MVT::i32, ++/*505225*/ OPC_CheckChild1Integer, 1, ++/*505227*/ OPC_CheckChild1Type, MVT::i32, ++/*505229*/ OPC_CheckChild2Integer, 1, ++/*505231*/ OPC_CheckChild2Type, MVT::i32, ++/*505233*/ OPC_CheckChild3Integer, 1, ++/*505235*/ OPC_CheckChild3Type, MVT::i32, ++/*505237*/ OPC_MoveParent, ++/*505238*/ OPC_CheckChild1Same, 0, ++/*505240*/ OPC_MoveParent, ++/*505241*/ OPC_CheckChild1Same, 1, ++/*505243*/ OPC_MoveParent, ++/*505244*/ OPC_MoveChild1, ++/*505245*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*505248*/ OPC_CheckChild0Integer, 31, ++/*505250*/ OPC_CheckChild0Type, MVT::i32, ++/*505252*/ OPC_CheckChild1Integer, 31, ++/*505254*/ OPC_CheckChild1Type, MVT::i32, ++/*505256*/ OPC_CheckChild2Integer, 31, ++/*505258*/ OPC_CheckChild2Type, MVT::i32, ++/*505260*/ OPC_CheckChild3Integer, 31, ++/*505262*/ OPC_CheckChild3Type, MVT::i32, ++/*505264*/ OPC_CheckType, MVT::v4i32, ++/*505266*/ OPC_MoveParent, ++/*505267*/ OPC_MoveParent, ++/*505268*/ OPC_MoveParent, ++/*505269*/ OPC_MoveChild1, ++/*505270*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*505273*/ OPC_CheckChild0Integer, 1, ++/*505275*/ OPC_CheckChild0Type, MVT::i32, ++/*505277*/ OPC_CheckChild1Integer, 1, ++/*505279*/ OPC_CheckChild1Type, MVT::i32, ++/*505281*/ OPC_CheckChild2Integer, 1, ++/*505283*/ OPC_CheckChild2Type, MVT::i32, ++/*505285*/ OPC_CheckChild3Integer, 1, ++/*505287*/ OPC_CheckChild3Type, MVT::i32, ++/*505289*/ OPC_CheckType, MVT::v4i32, ++/*505291*/ OPC_MoveParent, ++/*505292*/ OPC_CheckType, MVT::v4i32, ++/*505294*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*505296*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b), LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*505304*/ /*Scope*/ 87, /*->505392*/ ++/*505305*/ OPC_CheckChild0Same, 0, ++/*505307*/ OPC_MoveChild1, ++/*505308*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*505311*/ OPC_CheckChild0Integer, 1, ++/*505313*/ OPC_CheckChild0Type, MVT::i32, ++/*505315*/ OPC_CheckChild1Integer, 1, ++/*505317*/ OPC_CheckChild1Type, MVT::i32, ++/*505319*/ OPC_CheckChild2Integer, 1, ++/*505321*/ OPC_CheckChild2Type, MVT::i32, ++/*505323*/ OPC_CheckChild3Integer, 1, ++/*505325*/ OPC_CheckChild3Type, MVT::i32, ++/*505327*/ OPC_MoveParent, ++/*505328*/ OPC_MoveParent, ++/*505329*/ OPC_CheckChild1Same, 1, ++/*505331*/ OPC_MoveParent, ++/*505332*/ OPC_MoveChild1, ++/*505333*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*505336*/ OPC_CheckChild0Integer, 31, ++/*505338*/ OPC_CheckChild0Type, MVT::i32, ++/*505340*/ OPC_CheckChild1Integer, 31, ++/*505342*/ OPC_CheckChild1Type, MVT::i32, ++/*505344*/ OPC_CheckChild2Integer, 31, ++/*505346*/ OPC_CheckChild2Type, MVT::i32, ++/*505348*/ OPC_CheckChild3Integer, 31, ++/*505350*/ OPC_CheckChild3Type, MVT::i32, ++/*505352*/ OPC_CheckType, MVT::v4i32, ++/*505354*/ OPC_MoveParent, ++/*505355*/ OPC_MoveParent, ++/*505356*/ OPC_MoveParent, ++/*505357*/ OPC_MoveChild1, ++/*505358*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*505361*/ OPC_CheckChild0Integer, 1, ++/*505363*/ OPC_CheckChild0Type, MVT::i32, ++/*505365*/ OPC_CheckChild1Integer, 1, ++/*505367*/ OPC_CheckChild1Type, MVT::i32, ++/*505369*/ OPC_CheckChild2Integer, 1, ++/*505371*/ OPC_CheckChild2Type, MVT::i32, ++/*505373*/ OPC_CheckChild3Integer, 1, ++/*505375*/ OPC_CheckChild3Type, MVT::i32, ++/*505377*/ OPC_CheckType, MVT::v4i32, ++/*505379*/ OPC_MoveParent, ++/*505380*/ OPC_CheckType, MVT::v4i32, ++/*505382*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*505384*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*505392*/ /*Scope*/ 87, /*->505480*/ ++/*505393*/ OPC_CheckChild0Same, 1, ++/*505395*/ OPC_CheckChild1Same, 0, ++/*505397*/ OPC_MoveParent, ++/*505398*/ OPC_MoveChild1, ++/*505399*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*505402*/ OPC_CheckChild0Integer, 1, ++/*505404*/ OPC_CheckChild0Type, MVT::i32, ++/*505406*/ OPC_CheckChild1Integer, 1, ++/*505408*/ OPC_CheckChild1Type, MVT::i32, ++/*505410*/ OPC_CheckChild2Integer, 1, ++/*505412*/ OPC_CheckChild2Type, MVT::i32, ++/*505414*/ OPC_CheckChild3Integer, 1, ++/*505416*/ OPC_CheckChild3Type, MVT::i32, ++/*505418*/ OPC_MoveParent, ++/*505419*/ OPC_MoveParent, ++/*505420*/ OPC_MoveChild1, ++/*505421*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*505424*/ OPC_CheckChild0Integer, 31, ++/*505426*/ OPC_CheckChild0Type, MVT::i32, ++/*505428*/ OPC_CheckChild1Integer, 31, ++/*505430*/ OPC_CheckChild1Type, MVT::i32, ++/*505432*/ OPC_CheckChild2Integer, 31, ++/*505434*/ OPC_CheckChild2Type, MVT::i32, ++/*505436*/ OPC_CheckChild3Integer, 31, ++/*505438*/ OPC_CheckChild3Type, MVT::i32, ++/*505440*/ OPC_CheckType, MVT::v4i32, ++/*505442*/ OPC_MoveParent, ++/*505443*/ OPC_MoveParent, ++/*505444*/ OPC_MoveParent, ++/*505445*/ OPC_MoveChild1, ++/*505446*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*505449*/ OPC_CheckChild0Integer, 1, ++/*505451*/ OPC_CheckChild0Type, MVT::i32, ++/*505453*/ OPC_CheckChild1Integer, 1, ++/*505455*/ OPC_CheckChild1Type, MVT::i32, ++/*505457*/ OPC_CheckChild2Integer, 1, ++/*505459*/ OPC_CheckChild2Type, MVT::i32, ++/*505461*/ OPC_CheckChild3Integer, 1, ++/*505463*/ OPC_CheckChild3Type, MVT::i32, ++/*505465*/ OPC_CheckType, MVT::v4i32, ++/*505467*/ OPC_MoveParent, ++/*505468*/ OPC_CheckType, MVT::v4i32, ++/*505470*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*505472*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*505480*/ /*Scope*/ 87, /*->505568*/ ++/*505481*/ OPC_CheckChild0Same, 0, ++/*505483*/ OPC_CheckChild1Same, 1, ++/*505485*/ OPC_MoveParent, ++/*505486*/ OPC_MoveChild1, ++/*505487*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*505490*/ OPC_CheckChild0Integer, 1, ++/*505492*/ OPC_CheckChild0Type, MVT::i32, ++/*505494*/ OPC_CheckChild1Integer, 1, ++/*505496*/ OPC_CheckChild1Type, MVT::i32, ++/*505498*/ OPC_CheckChild2Integer, 1, ++/*505500*/ OPC_CheckChild2Type, MVT::i32, ++/*505502*/ OPC_CheckChild3Integer, 1, ++/*505504*/ OPC_CheckChild3Type, MVT::i32, ++/*505506*/ OPC_MoveParent, ++/*505507*/ OPC_MoveParent, ++/*505508*/ OPC_MoveChild1, ++/*505509*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*505512*/ OPC_CheckChild0Integer, 31, ++/*505514*/ OPC_CheckChild0Type, MVT::i32, ++/*505516*/ OPC_CheckChild1Integer, 31, ++/*505518*/ OPC_CheckChild1Type, MVT::i32, ++/*505520*/ OPC_CheckChild2Integer, 31, ++/*505522*/ OPC_CheckChild2Type, MVT::i32, ++/*505524*/ OPC_CheckChild3Integer, 31, ++/*505526*/ OPC_CheckChild3Type, MVT::i32, ++/*505528*/ OPC_CheckType, MVT::v4i32, ++/*505530*/ OPC_MoveParent, ++/*505531*/ OPC_MoveParent, ++/*505532*/ OPC_MoveParent, ++/*505533*/ OPC_MoveChild1, ++/*505534*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*505537*/ OPC_CheckChild0Integer, 1, ++/*505539*/ OPC_CheckChild0Type, MVT::i32, ++/*505541*/ OPC_CheckChild1Integer, 1, ++/*505543*/ OPC_CheckChild1Type, MVT::i32, ++/*505545*/ OPC_CheckChild2Integer, 1, ++/*505547*/ OPC_CheckChild2Type, MVT::i32, ++/*505549*/ OPC_CheckChild3Integer, 1, ++/*505551*/ OPC_CheckChild3Type, MVT::i32, ++/*505553*/ OPC_CheckType, MVT::v4i32, ++/*505555*/ OPC_MoveParent, ++/*505556*/ OPC_CheckType, MVT::v4i32, ++/*505558*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*505560*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*505568*/ 0, /*End of Scope*/ ++/*505569*/ 0, // EndSwitchOpcode ++/*505570*/ /*Scope*/ 52|128,1/*180*/, /*->505752*/ ++/*505572*/ OPC_CheckChild0Same, 0, ++/*505574*/ OPC_MoveChild1, ++/*505575*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*505578*/ OPC_Scope, 85, /*->505665*/ // 2 children in Scope ++/*505580*/ OPC_MoveChild0, ++/*505581*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*505584*/ OPC_CheckChild0Integer, 1, ++/*505586*/ OPC_CheckChild0Type, MVT::i32, ++/*505588*/ OPC_CheckChild1Integer, 1, ++/*505590*/ OPC_CheckChild1Type, MVT::i32, ++/*505592*/ OPC_CheckChild2Integer, 1, ++/*505594*/ OPC_CheckChild2Type, MVT::i32, ++/*505596*/ OPC_CheckChild3Integer, 1, ++/*505598*/ OPC_CheckChild3Type, MVT::i32, ++/*505600*/ OPC_MoveParent, ++/*505601*/ OPC_CheckChild1Same, 1, ++/*505603*/ OPC_MoveParent, ++/*505604*/ OPC_MoveParent, ++/*505605*/ OPC_MoveChild1, ++/*505606*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*505609*/ OPC_CheckChild0Integer, 31, ++/*505611*/ OPC_CheckChild0Type, MVT::i32, ++/*505613*/ OPC_CheckChild1Integer, 31, ++/*505615*/ OPC_CheckChild1Type, MVT::i32, ++/*505617*/ OPC_CheckChild2Integer, 31, ++/*505619*/ OPC_CheckChild2Type, MVT::i32, ++/*505621*/ OPC_CheckChild3Integer, 31, ++/*505623*/ OPC_CheckChild3Type, MVT::i32, ++/*505625*/ OPC_CheckType, MVT::v4i32, ++/*505627*/ OPC_MoveParent, ++/*505628*/ OPC_MoveParent, ++/*505629*/ OPC_MoveParent, ++/*505630*/ OPC_MoveChild1, ++/*505631*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*505634*/ OPC_CheckChild0Integer, 1, ++/*505636*/ OPC_CheckChild0Type, MVT::i32, ++/*505638*/ OPC_CheckChild1Integer, 1, ++/*505640*/ OPC_CheckChild1Type, MVT::i32, ++/*505642*/ OPC_CheckChild2Integer, 1, ++/*505644*/ OPC_CheckChild2Type, MVT::i32, ++/*505646*/ OPC_CheckChild3Integer, 1, ++/*505648*/ OPC_CheckChild3Type, MVT::i32, ++/*505650*/ OPC_CheckType, MVT::v4i32, ++/*505652*/ OPC_MoveParent, ++/*505653*/ OPC_CheckType, MVT::v4i32, ++/*505655*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*505657*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*505665*/ /*Scope*/ 85, /*->505751*/ ++/*505666*/ OPC_CheckChild0Same, 1, ++/*505668*/ OPC_MoveChild1, ++/*505669*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*505672*/ OPC_CheckChild0Integer, 1, ++/*505674*/ OPC_CheckChild0Type, MVT::i32, ++/*505676*/ OPC_CheckChild1Integer, 1, ++/*505678*/ OPC_CheckChild1Type, MVT::i32, ++/*505680*/ OPC_CheckChild2Integer, 1, ++/*505682*/ OPC_CheckChild2Type, MVT::i32, ++/*505684*/ OPC_CheckChild3Integer, 1, ++/*505686*/ OPC_CheckChild3Type, MVT::i32, ++/*505688*/ OPC_MoveParent, ++/*505689*/ OPC_MoveParent, ++/*505690*/ OPC_MoveParent, ++/*505691*/ OPC_MoveChild1, ++/*505692*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*505695*/ OPC_CheckChild0Integer, 31, ++/*505697*/ OPC_CheckChild0Type, MVT::i32, ++/*505699*/ OPC_CheckChild1Integer, 31, ++/*505701*/ OPC_CheckChild1Type, MVT::i32, ++/*505703*/ OPC_CheckChild2Integer, 31, ++/*505705*/ OPC_CheckChild2Type, MVT::i32, ++/*505707*/ OPC_CheckChild3Integer, 31, ++/*505709*/ OPC_CheckChild3Type, MVT::i32, ++/*505711*/ OPC_CheckType, MVT::v4i32, ++/*505713*/ OPC_MoveParent, ++/*505714*/ OPC_MoveParent, ++/*505715*/ OPC_MoveParent, ++/*505716*/ OPC_MoveChild1, ++/*505717*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*505720*/ OPC_CheckChild0Integer, 1, ++/*505722*/ OPC_CheckChild0Type, MVT::i32, ++/*505724*/ OPC_CheckChild1Integer, 1, ++/*505726*/ OPC_CheckChild1Type, MVT::i32, ++/*505728*/ OPC_CheckChild2Integer, 1, ++/*505730*/ OPC_CheckChild2Type, MVT::i32, ++/*505732*/ OPC_CheckChild3Integer, 1, ++/*505734*/ OPC_CheckChild3Type, MVT::i32, ++/*505736*/ OPC_CheckType, MVT::v4i32, ++/*505738*/ OPC_MoveParent, ++/*505739*/ OPC_CheckType, MVT::v4i32, ++/*505741*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*505743*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*505751*/ 0, /*End of Scope*/ ++/*505752*/ /*Scope*/ 52|128,1/*180*/, /*->505934*/ ++/*505754*/ OPC_CheckChild0Same, 1, ++/*505756*/ OPC_MoveChild1, ++/*505757*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*505760*/ OPC_Scope, 85, /*->505847*/ // 2 children in Scope ++/*505762*/ OPC_MoveChild0, ++/*505763*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*505766*/ OPC_CheckChild0Integer, 1, ++/*505768*/ OPC_CheckChild0Type, MVT::i32, ++/*505770*/ OPC_CheckChild1Integer, 1, ++/*505772*/ OPC_CheckChild1Type, MVT::i32, ++/*505774*/ OPC_CheckChild2Integer, 1, ++/*505776*/ OPC_CheckChild2Type, MVT::i32, ++/*505778*/ OPC_CheckChild3Integer, 1, ++/*505780*/ OPC_CheckChild3Type, MVT::i32, ++/*505782*/ OPC_MoveParent, ++/*505783*/ OPC_CheckChild1Same, 0, ++/*505785*/ OPC_MoveParent, ++/*505786*/ OPC_MoveParent, ++/*505787*/ OPC_MoveChild1, ++/*505788*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*505791*/ OPC_CheckChild0Integer, 31, ++/*505793*/ OPC_CheckChild0Type, MVT::i32, ++/*505795*/ OPC_CheckChild1Integer, 31, ++/*505797*/ OPC_CheckChild1Type, MVT::i32, ++/*505799*/ OPC_CheckChild2Integer, 31, ++/*505801*/ OPC_CheckChild2Type, MVT::i32, ++/*505803*/ OPC_CheckChild3Integer, 31, ++/*505805*/ OPC_CheckChild3Type, MVT::i32, ++/*505807*/ OPC_CheckType, MVT::v4i32, ++/*505809*/ OPC_MoveParent, ++/*505810*/ OPC_MoveParent, ++/*505811*/ OPC_MoveParent, ++/*505812*/ OPC_MoveChild1, ++/*505813*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*505816*/ OPC_CheckChild0Integer, 1, ++/*505818*/ OPC_CheckChild0Type, MVT::i32, ++/*505820*/ OPC_CheckChild1Integer, 1, ++/*505822*/ OPC_CheckChild1Type, MVT::i32, ++/*505824*/ OPC_CheckChild2Integer, 1, ++/*505826*/ OPC_CheckChild2Type, MVT::i32, ++/*505828*/ OPC_CheckChild3Integer, 1, ++/*505830*/ OPC_CheckChild3Type, MVT::i32, ++/*505832*/ OPC_CheckType, MVT::v4i32, ++/*505834*/ OPC_MoveParent, ++/*505835*/ OPC_CheckType, MVT::v4i32, ++/*505837*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*505839*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*505847*/ /*Scope*/ 85, /*->505933*/ ++/*505848*/ OPC_CheckChild0Same, 0, ++/*505850*/ OPC_MoveChild1, ++/*505851*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*505854*/ OPC_CheckChild0Integer, 1, ++/*505856*/ OPC_CheckChild0Type, MVT::i32, ++/*505858*/ OPC_CheckChild1Integer, 1, ++/*505860*/ OPC_CheckChild1Type, MVT::i32, ++/*505862*/ OPC_CheckChild2Integer, 1, ++/*505864*/ OPC_CheckChild2Type, MVT::i32, ++/*505866*/ OPC_CheckChild3Integer, 1, ++/*505868*/ OPC_CheckChild3Type, MVT::i32, ++/*505870*/ OPC_MoveParent, ++/*505871*/ OPC_MoveParent, ++/*505872*/ OPC_MoveParent, ++/*505873*/ OPC_MoveChild1, ++/*505874*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*505877*/ OPC_CheckChild0Integer, 31, ++/*505879*/ OPC_CheckChild0Type, MVT::i32, ++/*505881*/ OPC_CheckChild1Integer, 31, ++/*505883*/ OPC_CheckChild1Type, MVT::i32, ++/*505885*/ OPC_CheckChild2Integer, 31, ++/*505887*/ OPC_CheckChild2Type, MVT::i32, ++/*505889*/ OPC_CheckChild3Integer, 31, ++/*505891*/ OPC_CheckChild3Type, MVT::i32, ++/*505893*/ OPC_CheckType, MVT::v4i32, ++/*505895*/ OPC_MoveParent, ++/*505896*/ OPC_MoveParent, ++/*505897*/ OPC_MoveParent, ++/*505898*/ OPC_MoveChild1, ++/*505899*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*505902*/ OPC_CheckChild0Integer, 1, ++/*505904*/ OPC_CheckChild0Type, MVT::i32, ++/*505906*/ OPC_CheckChild1Integer, 1, ++/*505908*/ OPC_CheckChild1Type, MVT::i32, ++/*505910*/ OPC_CheckChild2Integer, 1, ++/*505912*/ OPC_CheckChild2Type, MVT::i32, ++/*505914*/ OPC_CheckChild3Integer, 1, ++/*505916*/ OPC_CheckChild3Type, MVT::i32, ++/*505918*/ OPC_CheckType, MVT::v4i32, ++/*505920*/ OPC_MoveParent, ++/*505921*/ OPC_CheckType, MVT::v4i32, ++/*505923*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*505925*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*505933*/ 0, /*End of Scope*/ ++/*505934*/ /*Scope*/ 33|128,1/*161*/, /*->506097*/ ++/*505936*/ OPC_MoveChild0, ++/*505937*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*505940*/ OPC_CheckChild0Integer, 1, ++/*505942*/ OPC_CheckChild0Type, MVT::i32, ++/*505944*/ OPC_CheckChild1Integer, 1, ++/*505946*/ OPC_CheckChild1Type, MVT::i32, ++/*505948*/ OPC_CheckChild2Integer, 1, ++/*505950*/ OPC_CheckChild2Type, MVT::i32, ++/*505952*/ OPC_CheckChild3Integer, 1, ++/*505954*/ OPC_CheckChild3Type, MVT::i32, ++/*505956*/ OPC_MoveParent, ++/*505957*/ OPC_MoveChild1, ++/*505958*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*505961*/ OPC_Scope, 66, /*->506029*/ // 2 children in Scope ++/*505963*/ OPC_CheckChild0Same, 1, ++/*505965*/ OPC_CheckChild1Same, 0, ++/*505967*/ OPC_MoveParent, ++/*505968*/ OPC_MoveParent, ++/*505969*/ OPC_MoveChild1, ++/*505970*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*505973*/ OPC_CheckChild0Integer, 31, ++/*505975*/ OPC_CheckChild0Type, MVT::i32, ++/*505977*/ OPC_CheckChild1Integer, 31, ++/*505979*/ OPC_CheckChild1Type, MVT::i32, ++/*505981*/ OPC_CheckChild2Integer, 31, ++/*505983*/ OPC_CheckChild2Type, MVT::i32, ++/*505985*/ OPC_CheckChild3Integer, 31, ++/*505987*/ OPC_CheckChild3Type, MVT::i32, ++/*505989*/ OPC_CheckType, MVT::v4i32, ++/*505991*/ OPC_MoveParent, ++/*505992*/ OPC_MoveParent, ++/*505993*/ OPC_MoveParent, ++/*505994*/ OPC_MoveChild1, ++/*505995*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*505998*/ OPC_CheckChild0Integer, 1, ++/*506000*/ OPC_CheckChild0Type, MVT::i32, ++/*506002*/ OPC_CheckChild1Integer, 1, ++/*506004*/ OPC_CheckChild1Type, MVT::i32, ++/*506006*/ OPC_CheckChild2Integer, 1, ++/*506008*/ OPC_CheckChild2Type, MVT::i32, ++/*506010*/ OPC_CheckChild3Integer, 1, ++/*506012*/ OPC_CheckChild3Type, MVT::i32, ++/*506014*/ OPC_CheckType, MVT::v4i32, ++/*506016*/ OPC_MoveParent, ++/*506017*/ OPC_CheckType, MVT::v4i32, ++/*506019*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*506021*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*506029*/ /*Scope*/ 66, /*->506096*/ ++/*506030*/ OPC_CheckChild0Same, 0, ++/*506032*/ OPC_CheckChild1Same, 1, ++/*506034*/ OPC_MoveParent, ++/*506035*/ OPC_MoveParent, ++/*506036*/ OPC_MoveChild1, ++/*506037*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*506040*/ OPC_CheckChild0Integer, 31, ++/*506042*/ OPC_CheckChild0Type, MVT::i32, ++/*506044*/ OPC_CheckChild1Integer, 31, ++/*506046*/ OPC_CheckChild1Type, MVT::i32, ++/*506048*/ OPC_CheckChild2Integer, 31, ++/*506050*/ OPC_CheckChild2Type, MVT::i32, ++/*506052*/ OPC_CheckChild3Integer, 31, ++/*506054*/ OPC_CheckChild3Type, MVT::i32, ++/*506056*/ OPC_CheckType, MVT::v4i32, ++/*506058*/ OPC_MoveParent, ++/*506059*/ OPC_MoveParent, ++/*506060*/ OPC_MoveParent, ++/*506061*/ OPC_MoveChild1, ++/*506062*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*506065*/ OPC_CheckChild0Integer, 1, ++/*506067*/ OPC_CheckChild0Type, MVT::i32, ++/*506069*/ OPC_CheckChild1Integer, 1, ++/*506071*/ OPC_CheckChild1Type, MVT::i32, ++/*506073*/ OPC_CheckChild2Integer, 1, ++/*506075*/ OPC_CheckChild2Type, MVT::i32, ++/*506077*/ OPC_CheckChild3Integer, 1, ++/*506079*/ OPC_CheckChild3Type, MVT::i32, ++/*506081*/ OPC_CheckType, MVT::v4i32, ++/*506083*/ OPC_MoveParent, ++/*506084*/ OPC_CheckType, MVT::v4i32, ++/*506086*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*506088*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*506096*/ 0, /*End of Scope*/ ++/*506097*/ 0, /*End of Scope*/ ++/*506098*/ 0, /*End of Scope*/ ++/*506099*/ 0, /*End of Scope*/ ++/*506100*/ 0, // EndSwitchOpcode ++/*506101*/ /*Scope*/ 51|128,34/*4403*/, /*->510506*/ ++/*506103*/ OPC_RecordChild0, // #0 = $b ++/*506104*/ OPC_MoveChild1, ++/*506105*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*506108*/ OPC_Scope, 73|128,8/*1097*/, /*->507208*/ // 4 children in Scope ++/*506111*/ OPC_MoveChild0, ++/*506112*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*506115*/ OPC_CheckChild0Integer, 1, ++/*506117*/ OPC_CheckChild0Type, MVT::i32, ++/*506119*/ OPC_CheckChild1Integer, 1, ++/*506121*/ OPC_CheckChild1Type, MVT::i32, ++/*506123*/ OPC_CheckChild2Integer, 1, ++/*506125*/ OPC_CheckChild2Type, MVT::i32, ++/*506127*/ OPC_CheckChild3Integer, 1, ++/*506129*/ OPC_CheckChild3Type, MVT::i32, ++/*506131*/ OPC_MoveParent, ++/*506132*/ OPC_RecordChild1, // #1 = $a ++/*506133*/ OPC_MoveParent, ++/*506134*/ OPC_MoveParent, ++/*506135*/ OPC_MoveChild1, ++/*506136*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*506139*/ OPC_MoveChild0, ++/*506140*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*506143*/ OPC_Scope, 22|128,4/*534*/, /*->506680*/ // 4 children in Scope ++/*506146*/ OPC_MoveChild0, ++/*506147*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*506150*/ OPC_Scope, 87, /*->506239*/ // 6 children in Scope ++/*506152*/ OPC_MoveChild0, ++/*506153*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*506156*/ OPC_CheckChild0Integer, 1, ++/*506158*/ OPC_CheckChild0Type, MVT::i32, ++/*506160*/ OPC_CheckChild1Integer, 1, ++/*506162*/ OPC_CheckChild1Type, MVT::i32, ++/*506164*/ OPC_CheckChild2Integer, 1, ++/*506166*/ OPC_CheckChild2Type, MVT::i32, ++/*506168*/ OPC_CheckChild3Integer, 1, ++/*506170*/ OPC_CheckChild3Type, MVT::i32, ++/*506172*/ OPC_MoveParent, ++/*506173*/ OPC_CheckChild1Same, 1, ++/*506175*/ OPC_MoveParent, ++/*506176*/ OPC_CheckChild1Same, 0, ++/*506178*/ OPC_MoveParent, ++/*506179*/ OPC_MoveChild1, ++/*506180*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*506183*/ OPC_CheckChild0Integer, 31, ++/*506185*/ OPC_CheckChild0Type, MVT::i32, ++/*506187*/ OPC_CheckChild1Integer, 31, ++/*506189*/ OPC_CheckChild1Type, MVT::i32, ++/*506191*/ OPC_CheckChild2Integer, 31, ++/*506193*/ OPC_CheckChild2Type, MVT::i32, ++/*506195*/ OPC_CheckChild3Integer, 31, ++/*506197*/ OPC_CheckChild3Type, MVT::i32, ++/*506199*/ OPC_CheckType, MVT::v4i32, ++/*506201*/ OPC_MoveParent, ++/*506202*/ OPC_MoveParent, ++/*506203*/ OPC_MoveParent, ++/*506204*/ OPC_MoveChild1, ++/*506205*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*506208*/ OPC_CheckChild0Integer, 1, ++/*506210*/ OPC_CheckChild0Type, MVT::i32, ++/*506212*/ OPC_CheckChild1Integer, 1, ++/*506214*/ OPC_CheckChild1Type, MVT::i32, ++/*506216*/ OPC_CheckChild2Integer, 1, ++/*506218*/ OPC_CheckChild2Type, MVT::i32, ++/*506220*/ OPC_CheckChild3Integer, 1, ++/*506222*/ OPC_CheckChild3Type, MVT::i32, ++/*506224*/ OPC_CheckType, MVT::v4i32, ++/*506226*/ OPC_MoveParent, ++/*506227*/ OPC_CheckType, MVT::v4i32, ++/*506229*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*506231*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a)), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a), LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*506239*/ /*Scope*/ 87, /*->506327*/ ++/*506240*/ OPC_CheckChild0Same, 1, ++/*506242*/ OPC_MoveChild1, ++/*506243*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*506246*/ OPC_CheckChild0Integer, 1, ++/*506248*/ OPC_CheckChild0Type, MVT::i32, ++/*506250*/ OPC_CheckChild1Integer, 1, ++/*506252*/ OPC_CheckChild1Type, MVT::i32, ++/*506254*/ OPC_CheckChild2Integer, 1, ++/*506256*/ OPC_CheckChild2Type, MVT::i32, ++/*506258*/ OPC_CheckChild3Integer, 1, ++/*506260*/ OPC_CheckChild3Type, MVT::i32, ++/*506262*/ OPC_MoveParent, ++/*506263*/ OPC_MoveParent, ++/*506264*/ OPC_CheckChild1Same, 0, ++/*506266*/ OPC_MoveParent, ++/*506267*/ OPC_MoveChild1, ++/*506268*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*506271*/ OPC_CheckChild0Integer, 31, ++/*506273*/ OPC_CheckChild0Type, MVT::i32, ++/*506275*/ OPC_CheckChild1Integer, 31, ++/*506277*/ OPC_CheckChild1Type, MVT::i32, ++/*506279*/ OPC_CheckChild2Integer, 31, ++/*506281*/ OPC_CheckChild2Type, MVT::i32, ++/*506283*/ OPC_CheckChild3Integer, 31, ++/*506285*/ OPC_CheckChild3Type, MVT::i32, ++/*506287*/ OPC_CheckType, MVT::v4i32, ++/*506289*/ OPC_MoveParent, ++/*506290*/ OPC_MoveParent, ++/*506291*/ OPC_MoveParent, ++/*506292*/ OPC_MoveChild1, ++/*506293*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*506296*/ OPC_CheckChild0Integer, 1, ++/*506298*/ OPC_CheckChild0Type, MVT::i32, ++/*506300*/ OPC_CheckChild1Integer, 1, ++/*506302*/ OPC_CheckChild1Type, MVT::i32, ++/*506304*/ OPC_CheckChild2Integer, 1, ++/*506306*/ OPC_CheckChild2Type, MVT::i32, ++/*506308*/ OPC_CheckChild3Integer, 1, ++/*506310*/ OPC_CheckChild3Type, MVT::i32, ++/*506312*/ OPC_CheckType, MVT::v4i32, ++/*506314*/ OPC_MoveParent, ++/*506315*/ OPC_CheckType, MVT::v4i32, ++/*506317*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*506319*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a)), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*506327*/ /*Scope*/ 87, /*->506415*/ ++/*506328*/ OPC_MoveChild0, ++/*506329*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*506332*/ OPC_CheckChild0Integer, 1, ++/*506334*/ OPC_CheckChild0Type, MVT::i32, ++/*506336*/ OPC_CheckChild1Integer, 1, ++/*506338*/ OPC_CheckChild1Type, MVT::i32, ++/*506340*/ OPC_CheckChild2Integer, 1, ++/*506342*/ OPC_CheckChild2Type, MVT::i32, ++/*506344*/ OPC_CheckChild3Integer, 1, ++/*506346*/ OPC_CheckChild3Type, MVT::i32, ++/*506348*/ OPC_MoveParent, ++/*506349*/ OPC_CheckChild1Same, 0, ++/*506351*/ OPC_MoveParent, ++/*506352*/ OPC_CheckChild1Same, 1, ++/*506354*/ OPC_MoveParent, ++/*506355*/ OPC_MoveChild1, ++/*506356*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*506359*/ OPC_CheckChild0Integer, 31, ++/*506361*/ OPC_CheckChild0Type, MVT::i32, ++/*506363*/ OPC_CheckChild1Integer, 31, ++/*506365*/ OPC_CheckChild1Type, MVT::i32, ++/*506367*/ OPC_CheckChild2Integer, 31, ++/*506369*/ OPC_CheckChild2Type, MVT::i32, ++/*506371*/ OPC_CheckChild3Integer, 31, ++/*506373*/ OPC_CheckChild3Type, MVT::i32, ++/*506375*/ OPC_CheckType, MVT::v4i32, ++/*506377*/ OPC_MoveParent, ++/*506378*/ OPC_MoveParent, ++/*506379*/ OPC_MoveParent, ++/*506380*/ OPC_MoveChild1, ++/*506381*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*506384*/ OPC_CheckChild0Integer, 1, ++/*506386*/ OPC_CheckChild0Type, MVT::i32, ++/*506388*/ OPC_CheckChild1Integer, 1, ++/*506390*/ OPC_CheckChild1Type, MVT::i32, ++/*506392*/ OPC_CheckChild2Integer, 1, ++/*506394*/ OPC_CheckChild2Type, MVT::i32, ++/*506396*/ OPC_CheckChild3Integer, 1, ++/*506398*/ OPC_CheckChild3Type, MVT::i32, ++/*506400*/ OPC_CheckType, MVT::v4i32, ++/*506402*/ OPC_MoveParent, ++/*506403*/ OPC_CheckType, MVT::v4i32, ++/*506405*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*506407*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a)), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b), LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*506415*/ /*Scope*/ 87, /*->506503*/ ++/*506416*/ OPC_CheckChild0Same, 0, ++/*506418*/ OPC_MoveChild1, ++/*506419*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*506422*/ OPC_CheckChild0Integer, 1, ++/*506424*/ OPC_CheckChild0Type, MVT::i32, ++/*506426*/ OPC_CheckChild1Integer, 1, ++/*506428*/ OPC_CheckChild1Type, MVT::i32, ++/*506430*/ OPC_CheckChild2Integer, 1, ++/*506432*/ OPC_CheckChild2Type, MVT::i32, ++/*506434*/ OPC_CheckChild3Integer, 1, ++/*506436*/ OPC_CheckChild3Type, MVT::i32, ++/*506438*/ OPC_MoveParent, ++/*506439*/ OPC_MoveParent, ++/*506440*/ OPC_CheckChild1Same, 1, ++/*506442*/ OPC_MoveParent, ++/*506443*/ OPC_MoveChild1, ++/*506444*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*506447*/ OPC_CheckChild0Integer, 31, ++/*506449*/ OPC_CheckChild0Type, MVT::i32, ++/*506451*/ OPC_CheckChild1Integer, 31, ++/*506453*/ OPC_CheckChild1Type, MVT::i32, ++/*506455*/ OPC_CheckChild2Integer, 31, ++/*506457*/ OPC_CheckChild2Type, MVT::i32, ++/*506459*/ OPC_CheckChild3Integer, 31, ++/*506461*/ OPC_CheckChild3Type, MVT::i32, ++/*506463*/ OPC_CheckType, MVT::v4i32, ++/*506465*/ OPC_MoveParent, ++/*506466*/ OPC_MoveParent, ++/*506467*/ OPC_MoveParent, ++/*506468*/ OPC_MoveChild1, ++/*506469*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*506472*/ OPC_CheckChild0Integer, 1, ++/*506474*/ OPC_CheckChild0Type, MVT::i32, ++/*506476*/ OPC_CheckChild1Integer, 1, ++/*506478*/ OPC_CheckChild1Type, MVT::i32, ++/*506480*/ OPC_CheckChild2Integer, 1, ++/*506482*/ OPC_CheckChild2Type, MVT::i32, ++/*506484*/ OPC_CheckChild3Integer, 1, ++/*506486*/ OPC_CheckChild3Type, MVT::i32, ++/*506488*/ OPC_CheckType, MVT::v4i32, ++/*506490*/ OPC_MoveParent, ++/*506491*/ OPC_CheckType, MVT::v4i32, ++/*506493*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*506495*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a)), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*506503*/ /*Scope*/ 87, /*->506591*/ ++/*506504*/ OPC_CheckChild0Same, 1, ++/*506506*/ OPC_CheckChild1Same, 0, ++/*506508*/ OPC_MoveParent, ++/*506509*/ OPC_MoveChild1, ++/*506510*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*506513*/ OPC_CheckChild0Integer, 1, ++/*506515*/ OPC_CheckChild0Type, MVT::i32, ++/*506517*/ OPC_CheckChild1Integer, 1, ++/*506519*/ OPC_CheckChild1Type, MVT::i32, ++/*506521*/ OPC_CheckChild2Integer, 1, ++/*506523*/ OPC_CheckChild2Type, MVT::i32, ++/*506525*/ OPC_CheckChild3Integer, 1, ++/*506527*/ OPC_CheckChild3Type, MVT::i32, ++/*506529*/ OPC_MoveParent, ++/*506530*/ OPC_MoveParent, ++/*506531*/ OPC_MoveChild1, ++/*506532*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*506535*/ OPC_CheckChild0Integer, 31, ++/*506537*/ OPC_CheckChild0Type, MVT::i32, ++/*506539*/ OPC_CheckChild1Integer, 31, ++/*506541*/ OPC_CheckChild1Type, MVT::i32, ++/*506543*/ OPC_CheckChild2Integer, 31, ++/*506545*/ OPC_CheckChild2Type, MVT::i32, ++/*506547*/ OPC_CheckChild3Integer, 31, ++/*506549*/ OPC_CheckChild3Type, MVT::i32, ++/*506551*/ OPC_CheckType, MVT::v4i32, ++/*506553*/ OPC_MoveParent, ++/*506554*/ OPC_MoveParent, ++/*506555*/ OPC_MoveParent, ++/*506556*/ OPC_MoveChild1, ++/*506557*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*506560*/ OPC_CheckChild0Integer, 1, ++/*506562*/ OPC_CheckChild0Type, MVT::i32, ++/*506564*/ OPC_CheckChild1Integer, 1, ++/*506566*/ OPC_CheckChild1Type, MVT::i32, ++/*506568*/ OPC_CheckChild2Integer, 1, ++/*506570*/ OPC_CheckChild2Type, MVT::i32, ++/*506572*/ OPC_CheckChild3Integer, 1, ++/*506574*/ OPC_CheckChild3Type, MVT::i32, ++/*506576*/ OPC_CheckType, MVT::v4i32, ++/*506578*/ OPC_MoveParent, ++/*506579*/ OPC_CheckType, MVT::v4i32, ++/*506581*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*506583*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a)), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*506591*/ /*Scope*/ 87, /*->506679*/ ++/*506592*/ OPC_CheckChild0Same, 0, ++/*506594*/ OPC_CheckChild1Same, 1, ++/*506596*/ OPC_MoveParent, ++/*506597*/ OPC_MoveChild1, ++/*506598*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*506601*/ OPC_CheckChild0Integer, 1, ++/*506603*/ OPC_CheckChild0Type, MVT::i32, ++/*506605*/ OPC_CheckChild1Integer, 1, ++/*506607*/ OPC_CheckChild1Type, MVT::i32, ++/*506609*/ OPC_CheckChild2Integer, 1, ++/*506611*/ OPC_CheckChild2Type, MVT::i32, ++/*506613*/ OPC_CheckChild3Integer, 1, ++/*506615*/ OPC_CheckChild3Type, MVT::i32, ++/*506617*/ OPC_MoveParent, ++/*506618*/ OPC_MoveParent, ++/*506619*/ OPC_MoveChild1, ++/*506620*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*506623*/ OPC_CheckChild0Integer, 31, ++/*506625*/ OPC_CheckChild0Type, MVT::i32, ++/*506627*/ OPC_CheckChild1Integer, 31, ++/*506629*/ OPC_CheckChild1Type, MVT::i32, ++/*506631*/ OPC_CheckChild2Integer, 31, ++/*506633*/ OPC_CheckChild2Type, MVT::i32, ++/*506635*/ OPC_CheckChild3Integer, 31, ++/*506637*/ OPC_CheckChild3Type, MVT::i32, ++/*506639*/ OPC_CheckType, MVT::v4i32, ++/*506641*/ OPC_MoveParent, ++/*506642*/ OPC_MoveParent, ++/*506643*/ OPC_MoveParent, ++/*506644*/ OPC_MoveChild1, ++/*506645*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*506648*/ OPC_CheckChild0Integer, 1, ++/*506650*/ OPC_CheckChild0Type, MVT::i32, ++/*506652*/ OPC_CheckChild1Integer, 1, ++/*506654*/ OPC_CheckChild1Type, MVT::i32, ++/*506656*/ OPC_CheckChild2Integer, 1, ++/*506658*/ OPC_CheckChild2Type, MVT::i32, ++/*506660*/ OPC_CheckChild3Integer, 1, ++/*506662*/ OPC_CheckChild3Type, MVT::i32, ++/*506664*/ OPC_CheckType, MVT::v4i32, ++/*506666*/ OPC_MoveParent, ++/*506667*/ OPC_CheckType, MVT::v4i32, ++/*506669*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*506671*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a)), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*506679*/ 0, /*End of Scope*/ ++/*506680*/ /*Scope*/ 52|128,1/*180*/, /*->506862*/ ++/*506682*/ OPC_CheckChild0Same, 0, ++/*506684*/ OPC_MoveChild1, ++/*506685*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*506688*/ OPC_Scope, 85, /*->506775*/ // 2 children in Scope ++/*506690*/ OPC_MoveChild0, ++/*506691*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*506694*/ OPC_CheckChild0Integer, 1, ++/*506696*/ OPC_CheckChild0Type, MVT::i32, ++/*506698*/ OPC_CheckChild1Integer, 1, ++/*506700*/ OPC_CheckChild1Type, MVT::i32, ++/*506702*/ OPC_CheckChild2Integer, 1, ++/*506704*/ OPC_CheckChild2Type, MVT::i32, ++/*506706*/ OPC_CheckChild3Integer, 1, ++/*506708*/ OPC_CheckChild3Type, MVT::i32, ++/*506710*/ OPC_MoveParent, ++/*506711*/ OPC_CheckChild1Same, 1, ++/*506713*/ OPC_MoveParent, ++/*506714*/ OPC_MoveParent, ++/*506715*/ OPC_MoveChild1, ++/*506716*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*506719*/ OPC_CheckChild0Integer, 31, ++/*506721*/ OPC_CheckChild0Type, MVT::i32, ++/*506723*/ OPC_CheckChild1Integer, 31, ++/*506725*/ OPC_CheckChild1Type, MVT::i32, ++/*506727*/ OPC_CheckChild2Integer, 31, ++/*506729*/ OPC_CheckChild2Type, MVT::i32, ++/*506731*/ OPC_CheckChild3Integer, 31, ++/*506733*/ OPC_CheckChild3Type, MVT::i32, ++/*506735*/ OPC_CheckType, MVT::v4i32, ++/*506737*/ OPC_MoveParent, ++/*506738*/ OPC_MoveParent, ++/*506739*/ OPC_MoveParent, ++/*506740*/ OPC_MoveChild1, ++/*506741*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*506744*/ OPC_CheckChild0Integer, 1, ++/*506746*/ OPC_CheckChild0Type, MVT::i32, ++/*506748*/ OPC_CheckChild1Integer, 1, ++/*506750*/ OPC_CheckChild1Type, MVT::i32, ++/*506752*/ OPC_CheckChild2Integer, 1, ++/*506754*/ OPC_CheckChild2Type, MVT::i32, ++/*506756*/ OPC_CheckChild3Integer, 1, ++/*506758*/ OPC_CheckChild3Type, MVT::i32, ++/*506760*/ OPC_CheckType, MVT::v4i32, ++/*506762*/ OPC_MoveParent, ++/*506763*/ OPC_CheckType, MVT::v4i32, ++/*506765*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*506767*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a)), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*506775*/ /*Scope*/ 85, /*->506861*/ ++/*506776*/ OPC_CheckChild0Same, 1, ++/*506778*/ OPC_MoveChild1, ++/*506779*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*506782*/ OPC_CheckChild0Integer, 1, ++/*506784*/ OPC_CheckChild0Type, MVT::i32, ++/*506786*/ OPC_CheckChild1Integer, 1, ++/*506788*/ OPC_CheckChild1Type, MVT::i32, ++/*506790*/ OPC_CheckChild2Integer, 1, ++/*506792*/ OPC_CheckChild2Type, MVT::i32, ++/*506794*/ OPC_CheckChild3Integer, 1, ++/*506796*/ OPC_CheckChild3Type, MVT::i32, ++/*506798*/ OPC_MoveParent, ++/*506799*/ OPC_MoveParent, ++/*506800*/ OPC_MoveParent, ++/*506801*/ OPC_MoveChild1, ++/*506802*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*506805*/ OPC_CheckChild0Integer, 31, ++/*506807*/ OPC_CheckChild0Type, MVT::i32, ++/*506809*/ OPC_CheckChild1Integer, 31, ++/*506811*/ OPC_CheckChild1Type, MVT::i32, ++/*506813*/ OPC_CheckChild2Integer, 31, ++/*506815*/ OPC_CheckChild2Type, MVT::i32, ++/*506817*/ OPC_CheckChild3Integer, 31, ++/*506819*/ OPC_CheckChild3Type, MVT::i32, ++/*506821*/ OPC_CheckType, MVT::v4i32, ++/*506823*/ OPC_MoveParent, ++/*506824*/ OPC_MoveParent, ++/*506825*/ OPC_MoveParent, ++/*506826*/ OPC_MoveChild1, ++/*506827*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*506830*/ OPC_CheckChild0Integer, 1, ++/*506832*/ OPC_CheckChild0Type, MVT::i32, ++/*506834*/ OPC_CheckChild1Integer, 1, ++/*506836*/ OPC_CheckChild1Type, MVT::i32, ++/*506838*/ OPC_CheckChild2Integer, 1, ++/*506840*/ OPC_CheckChild2Type, MVT::i32, ++/*506842*/ OPC_CheckChild3Integer, 1, ++/*506844*/ OPC_CheckChild3Type, MVT::i32, ++/*506846*/ OPC_CheckType, MVT::v4i32, ++/*506848*/ OPC_MoveParent, ++/*506849*/ OPC_CheckType, MVT::v4i32, ++/*506851*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*506853*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a)), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*506861*/ 0, /*End of Scope*/ ++/*506862*/ /*Scope*/ 52|128,1/*180*/, /*->507044*/ ++/*506864*/ OPC_CheckChild0Same, 1, ++/*506866*/ OPC_MoveChild1, ++/*506867*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*506870*/ OPC_Scope, 85, /*->506957*/ // 2 children in Scope ++/*506872*/ OPC_MoveChild0, ++/*506873*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*506876*/ OPC_CheckChild0Integer, 1, ++/*506878*/ OPC_CheckChild0Type, MVT::i32, ++/*506880*/ OPC_CheckChild1Integer, 1, ++/*506882*/ OPC_CheckChild1Type, MVT::i32, ++/*506884*/ OPC_CheckChild2Integer, 1, ++/*506886*/ OPC_CheckChild2Type, MVT::i32, ++/*506888*/ OPC_CheckChild3Integer, 1, ++/*506890*/ OPC_CheckChild3Type, MVT::i32, ++/*506892*/ OPC_MoveParent, ++/*506893*/ OPC_CheckChild1Same, 0, ++/*506895*/ OPC_MoveParent, ++/*506896*/ OPC_MoveParent, ++/*506897*/ OPC_MoveChild1, ++/*506898*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*506901*/ OPC_CheckChild0Integer, 31, ++/*506903*/ OPC_CheckChild0Type, MVT::i32, ++/*506905*/ OPC_CheckChild1Integer, 31, ++/*506907*/ OPC_CheckChild1Type, MVT::i32, ++/*506909*/ OPC_CheckChild2Integer, 31, ++/*506911*/ OPC_CheckChild2Type, MVT::i32, ++/*506913*/ OPC_CheckChild3Integer, 31, ++/*506915*/ OPC_CheckChild3Type, MVT::i32, ++/*506917*/ OPC_CheckType, MVT::v4i32, ++/*506919*/ OPC_MoveParent, ++/*506920*/ OPC_MoveParent, ++/*506921*/ OPC_MoveParent, ++/*506922*/ OPC_MoveChild1, ++/*506923*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*506926*/ OPC_CheckChild0Integer, 1, ++/*506928*/ OPC_CheckChild0Type, MVT::i32, ++/*506930*/ OPC_CheckChild1Integer, 1, ++/*506932*/ OPC_CheckChild1Type, MVT::i32, ++/*506934*/ OPC_CheckChild2Integer, 1, ++/*506936*/ OPC_CheckChild2Type, MVT::i32, ++/*506938*/ OPC_CheckChild3Integer, 1, ++/*506940*/ OPC_CheckChild3Type, MVT::i32, ++/*506942*/ OPC_CheckType, MVT::v4i32, ++/*506944*/ OPC_MoveParent, ++/*506945*/ OPC_CheckType, MVT::v4i32, ++/*506947*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*506949*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a)), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*506957*/ /*Scope*/ 85, /*->507043*/ ++/*506958*/ OPC_CheckChild0Same, 0, ++/*506960*/ OPC_MoveChild1, ++/*506961*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*506964*/ OPC_CheckChild0Integer, 1, ++/*506966*/ OPC_CheckChild0Type, MVT::i32, ++/*506968*/ OPC_CheckChild1Integer, 1, ++/*506970*/ OPC_CheckChild1Type, MVT::i32, ++/*506972*/ OPC_CheckChild2Integer, 1, ++/*506974*/ OPC_CheckChild2Type, MVT::i32, ++/*506976*/ OPC_CheckChild3Integer, 1, ++/*506978*/ OPC_CheckChild3Type, MVT::i32, ++/*506980*/ OPC_MoveParent, ++/*506981*/ OPC_MoveParent, ++/*506982*/ OPC_MoveParent, ++/*506983*/ OPC_MoveChild1, ++/*506984*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*506987*/ OPC_CheckChild0Integer, 31, ++/*506989*/ OPC_CheckChild0Type, MVT::i32, ++/*506991*/ OPC_CheckChild1Integer, 31, ++/*506993*/ OPC_CheckChild1Type, MVT::i32, ++/*506995*/ OPC_CheckChild2Integer, 31, ++/*506997*/ OPC_CheckChild2Type, MVT::i32, ++/*506999*/ OPC_CheckChild3Integer, 31, ++/*507001*/ OPC_CheckChild3Type, MVT::i32, ++/*507003*/ OPC_CheckType, MVT::v4i32, ++/*507005*/ OPC_MoveParent, ++/*507006*/ OPC_MoveParent, ++/*507007*/ OPC_MoveParent, ++/*507008*/ OPC_MoveChild1, ++/*507009*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*507012*/ OPC_CheckChild0Integer, 1, ++/*507014*/ OPC_CheckChild0Type, MVT::i32, ++/*507016*/ OPC_CheckChild1Integer, 1, ++/*507018*/ OPC_CheckChild1Type, MVT::i32, ++/*507020*/ OPC_CheckChild2Integer, 1, ++/*507022*/ OPC_CheckChild2Type, MVT::i32, ++/*507024*/ OPC_CheckChild3Integer, 1, ++/*507026*/ OPC_CheckChild3Type, MVT::i32, ++/*507028*/ OPC_CheckType, MVT::v4i32, ++/*507030*/ OPC_MoveParent, ++/*507031*/ OPC_CheckType, MVT::v4i32, ++/*507033*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*507035*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a)), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*507043*/ 0, /*End of Scope*/ ++/*507044*/ /*Scope*/ 33|128,1/*161*/, /*->507207*/ ++/*507046*/ OPC_MoveChild0, ++/*507047*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*507050*/ OPC_CheckChild0Integer, 1, ++/*507052*/ OPC_CheckChild0Type, MVT::i32, ++/*507054*/ OPC_CheckChild1Integer, 1, ++/*507056*/ OPC_CheckChild1Type, MVT::i32, ++/*507058*/ OPC_CheckChild2Integer, 1, ++/*507060*/ OPC_CheckChild2Type, MVT::i32, ++/*507062*/ OPC_CheckChild3Integer, 1, ++/*507064*/ OPC_CheckChild3Type, MVT::i32, ++/*507066*/ OPC_MoveParent, ++/*507067*/ OPC_MoveChild1, ++/*507068*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*507071*/ OPC_Scope, 66, /*->507139*/ // 2 children in Scope ++/*507073*/ OPC_CheckChild0Same, 1, ++/*507075*/ OPC_CheckChild1Same, 0, ++/*507077*/ OPC_MoveParent, ++/*507078*/ OPC_MoveParent, ++/*507079*/ OPC_MoveChild1, ++/*507080*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*507083*/ OPC_CheckChild0Integer, 31, ++/*507085*/ OPC_CheckChild0Type, MVT::i32, ++/*507087*/ OPC_CheckChild1Integer, 31, ++/*507089*/ OPC_CheckChild1Type, MVT::i32, ++/*507091*/ OPC_CheckChild2Integer, 31, ++/*507093*/ OPC_CheckChild2Type, MVT::i32, ++/*507095*/ OPC_CheckChild3Integer, 31, ++/*507097*/ OPC_CheckChild3Type, MVT::i32, ++/*507099*/ OPC_CheckType, MVT::v4i32, ++/*507101*/ OPC_MoveParent, ++/*507102*/ OPC_MoveParent, ++/*507103*/ OPC_MoveParent, ++/*507104*/ OPC_MoveChild1, ++/*507105*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*507108*/ OPC_CheckChild0Integer, 1, ++/*507110*/ OPC_CheckChild0Type, MVT::i32, ++/*507112*/ OPC_CheckChild1Integer, 1, ++/*507114*/ OPC_CheckChild1Type, MVT::i32, ++/*507116*/ OPC_CheckChild2Integer, 1, ++/*507118*/ OPC_CheckChild2Type, MVT::i32, ++/*507120*/ OPC_CheckChild3Integer, 1, ++/*507122*/ OPC_CheckChild3Type, MVT::i32, ++/*507124*/ OPC_CheckType, MVT::v4i32, ++/*507126*/ OPC_MoveParent, ++/*507127*/ OPC_CheckType, MVT::v4i32, ++/*507129*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*507131*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a)), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*507139*/ /*Scope*/ 66, /*->507206*/ ++/*507140*/ OPC_CheckChild0Same, 0, ++/*507142*/ OPC_CheckChild1Same, 1, ++/*507144*/ OPC_MoveParent, ++/*507145*/ OPC_MoveParent, ++/*507146*/ OPC_MoveChild1, ++/*507147*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*507150*/ OPC_CheckChild0Integer, 31, ++/*507152*/ OPC_CheckChild0Type, MVT::i32, ++/*507154*/ OPC_CheckChild1Integer, 31, ++/*507156*/ OPC_CheckChild1Type, MVT::i32, ++/*507158*/ OPC_CheckChild2Integer, 31, ++/*507160*/ OPC_CheckChild2Type, MVT::i32, ++/*507162*/ OPC_CheckChild3Integer, 31, ++/*507164*/ OPC_CheckChild3Type, MVT::i32, ++/*507166*/ OPC_CheckType, MVT::v4i32, ++/*507168*/ OPC_MoveParent, ++/*507169*/ OPC_MoveParent, ++/*507170*/ OPC_MoveParent, ++/*507171*/ OPC_MoveChild1, ++/*507172*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*507175*/ OPC_CheckChild0Integer, 1, ++/*507177*/ OPC_CheckChild0Type, MVT::i32, ++/*507179*/ OPC_CheckChild1Integer, 1, ++/*507181*/ OPC_CheckChild1Type, MVT::i32, ++/*507183*/ OPC_CheckChild2Integer, 1, ++/*507185*/ OPC_CheckChild2Type, MVT::i32, ++/*507187*/ OPC_CheckChild3Integer, 1, ++/*507189*/ OPC_CheckChild3Type, MVT::i32, ++/*507191*/ OPC_CheckType, MVT::v4i32, ++/*507193*/ OPC_MoveParent, ++/*507194*/ OPC_CheckType, MVT::v4i32, ++/*507196*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*507198*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a)), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*507206*/ 0, /*End of Scope*/ ++/*507207*/ 0, /*End of Scope*/ ++/*507208*/ /*Scope*/ 73|128,8/*1097*/, /*->508307*/ ++/*507210*/ OPC_RecordChild0, // #1 = $a ++/*507211*/ OPC_MoveChild1, ++/*507212*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*507215*/ OPC_CheckChild0Integer, 1, ++/*507217*/ OPC_CheckChild0Type, MVT::i32, ++/*507219*/ OPC_CheckChild1Integer, 1, ++/*507221*/ OPC_CheckChild1Type, MVT::i32, ++/*507223*/ OPC_CheckChild2Integer, 1, ++/*507225*/ OPC_CheckChild2Type, MVT::i32, ++/*507227*/ OPC_CheckChild3Integer, 1, ++/*507229*/ OPC_CheckChild3Type, MVT::i32, ++/*507231*/ OPC_MoveParent, ++/*507232*/ OPC_MoveParent, ++/*507233*/ OPC_MoveParent, ++/*507234*/ OPC_MoveChild1, ++/*507235*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*507238*/ OPC_MoveChild0, ++/*507239*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*507242*/ OPC_Scope, 22|128,4/*534*/, /*->507779*/ // 4 children in Scope ++/*507245*/ OPC_MoveChild0, ++/*507246*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*507249*/ OPC_Scope, 87, /*->507338*/ // 6 children in Scope ++/*507251*/ OPC_MoveChild0, ++/*507252*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*507255*/ OPC_CheckChild0Integer, 1, ++/*507257*/ OPC_CheckChild0Type, MVT::i32, ++/*507259*/ OPC_CheckChild1Integer, 1, ++/*507261*/ OPC_CheckChild1Type, MVT::i32, ++/*507263*/ OPC_CheckChild2Integer, 1, ++/*507265*/ OPC_CheckChild2Type, MVT::i32, ++/*507267*/ OPC_CheckChild3Integer, 1, ++/*507269*/ OPC_CheckChild3Type, MVT::i32, ++/*507271*/ OPC_MoveParent, ++/*507272*/ OPC_CheckChild1Same, 1, ++/*507274*/ OPC_MoveParent, ++/*507275*/ OPC_CheckChild1Same, 0, ++/*507277*/ OPC_MoveParent, ++/*507278*/ OPC_MoveChild1, ++/*507279*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*507282*/ OPC_CheckChild0Integer, 31, ++/*507284*/ OPC_CheckChild0Type, MVT::i32, ++/*507286*/ OPC_CheckChild1Integer, 31, ++/*507288*/ OPC_CheckChild1Type, MVT::i32, ++/*507290*/ OPC_CheckChild2Integer, 31, ++/*507292*/ OPC_CheckChild2Type, MVT::i32, ++/*507294*/ OPC_CheckChild3Integer, 31, ++/*507296*/ OPC_CheckChild3Type, MVT::i32, ++/*507298*/ OPC_CheckType, MVT::v4i32, ++/*507300*/ OPC_MoveParent, ++/*507301*/ OPC_MoveParent, ++/*507302*/ OPC_MoveParent, ++/*507303*/ OPC_MoveChild1, ++/*507304*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*507307*/ OPC_CheckChild0Integer, 1, ++/*507309*/ OPC_CheckChild0Type, MVT::i32, ++/*507311*/ OPC_CheckChild1Integer, 1, ++/*507313*/ OPC_CheckChild1Type, MVT::i32, ++/*507315*/ OPC_CheckChild2Integer, 1, ++/*507317*/ OPC_CheckChild2Type, MVT::i32, ++/*507319*/ OPC_CheckChild3Integer, 1, ++/*507321*/ OPC_CheckChild3Type, MVT::i32, ++/*507323*/ OPC_CheckType, MVT::v4i32, ++/*507325*/ OPC_MoveParent, ++/*507326*/ OPC_CheckType, MVT::v4i32, ++/*507328*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*507330*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a), LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*507338*/ /*Scope*/ 87, /*->507426*/ ++/*507339*/ OPC_CheckChild0Same, 1, ++/*507341*/ OPC_MoveChild1, ++/*507342*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*507345*/ OPC_CheckChild0Integer, 1, ++/*507347*/ OPC_CheckChild0Type, MVT::i32, ++/*507349*/ OPC_CheckChild1Integer, 1, ++/*507351*/ OPC_CheckChild1Type, MVT::i32, ++/*507353*/ OPC_CheckChild2Integer, 1, ++/*507355*/ OPC_CheckChild2Type, MVT::i32, ++/*507357*/ OPC_CheckChild3Integer, 1, ++/*507359*/ OPC_CheckChild3Type, MVT::i32, ++/*507361*/ OPC_MoveParent, ++/*507362*/ OPC_MoveParent, ++/*507363*/ OPC_CheckChild1Same, 0, ++/*507365*/ OPC_MoveParent, ++/*507366*/ OPC_MoveChild1, ++/*507367*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*507370*/ OPC_CheckChild0Integer, 31, ++/*507372*/ OPC_CheckChild0Type, MVT::i32, ++/*507374*/ OPC_CheckChild1Integer, 31, ++/*507376*/ OPC_CheckChild1Type, MVT::i32, ++/*507378*/ OPC_CheckChild2Integer, 31, ++/*507380*/ OPC_CheckChild2Type, MVT::i32, ++/*507382*/ OPC_CheckChild3Integer, 31, ++/*507384*/ OPC_CheckChild3Type, MVT::i32, ++/*507386*/ OPC_CheckType, MVT::v4i32, ++/*507388*/ OPC_MoveParent, ++/*507389*/ OPC_MoveParent, ++/*507390*/ OPC_MoveParent, ++/*507391*/ OPC_MoveChild1, ++/*507392*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*507395*/ OPC_CheckChild0Integer, 1, ++/*507397*/ OPC_CheckChild0Type, MVT::i32, ++/*507399*/ OPC_CheckChild1Integer, 1, ++/*507401*/ OPC_CheckChild1Type, MVT::i32, ++/*507403*/ OPC_CheckChild2Integer, 1, ++/*507405*/ OPC_CheckChild2Type, MVT::i32, ++/*507407*/ OPC_CheckChild3Integer, 1, ++/*507409*/ OPC_CheckChild3Type, MVT::i32, ++/*507411*/ OPC_CheckType, MVT::v4i32, ++/*507413*/ OPC_MoveParent, ++/*507414*/ OPC_CheckType, MVT::v4i32, ++/*507416*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*507418*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*507426*/ /*Scope*/ 87, /*->507514*/ ++/*507427*/ OPC_MoveChild0, ++/*507428*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*507431*/ OPC_CheckChild0Integer, 1, ++/*507433*/ OPC_CheckChild0Type, MVT::i32, ++/*507435*/ OPC_CheckChild1Integer, 1, ++/*507437*/ OPC_CheckChild1Type, MVT::i32, ++/*507439*/ OPC_CheckChild2Integer, 1, ++/*507441*/ OPC_CheckChild2Type, MVT::i32, ++/*507443*/ OPC_CheckChild3Integer, 1, ++/*507445*/ OPC_CheckChild3Type, MVT::i32, ++/*507447*/ OPC_MoveParent, ++/*507448*/ OPC_CheckChild1Same, 0, ++/*507450*/ OPC_MoveParent, ++/*507451*/ OPC_CheckChild1Same, 1, ++/*507453*/ OPC_MoveParent, ++/*507454*/ OPC_MoveChild1, ++/*507455*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*507458*/ OPC_CheckChild0Integer, 31, ++/*507460*/ OPC_CheckChild0Type, MVT::i32, ++/*507462*/ OPC_CheckChild1Integer, 31, ++/*507464*/ OPC_CheckChild1Type, MVT::i32, ++/*507466*/ OPC_CheckChild2Integer, 31, ++/*507468*/ OPC_CheckChild2Type, MVT::i32, ++/*507470*/ OPC_CheckChild3Integer, 31, ++/*507472*/ OPC_CheckChild3Type, MVT::i32, ++/*507474*/ OPC_CheckType, MVT::v4i32, ++/*507476*/ OPC_MoveParent, ++/*507477*/ OPC_MoveParent, ++/*507478*/ OPC_MoveParent, ++/*507479*/ OPC_MoveChild1, ++/*507480*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*507483*/ OPC_CheckChild0Integer, 1, ++/*507485*/ OPC_CheckChild0Type, MVT::i32, ++/*507487*/ OPC_CheckChild1Integer, 1, ++/*507489*/ OPC_CheckChild1Type, MVT::i32, ++/*507491*/ OPC_CheckChild2Integer, 1, ++/*507493*/ OPC_CheckChild2Type, MVT::i32, ++/*507495*/ OPC_CheckChild3Integer, 1, ++/*507497*/ OPC_CheckChild3Type, MVT::i32, ++/*507499*/ OPC_CheckType, MVT::v4i32, ++/*507501*/ OPC_MoveParent, ++/*507502*/ OPC_CheckType, MVT::v4i32, ++/*507504*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*507506*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b), LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*507514*/ /*Scope*/ 87, /*->507602*/ ++/*507515*/ OPC_CheckChild0Same, 0, ++/*507517*/ OPC_MoveChild1, ++/*507518*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*507521*/ OPC_CheckChild0Integer, 1, ++/*507523*/ OPC_CheckChild0Type, MVT::i32, ++/*507525*/ OPC_CheckChild1Integer, 1, ++/*507527*/ OPC_CheckChild1Type, MVT::i32, ++/*507529*/ OPC_CheckChild2Integer, 1, ++/*507531*/ OPC_CheckChild2Type, MVT::i32, ++/*507533*/ OPC_CheckChild3Integer, 1, ++/*507535*/ OPC_CheckChild3Type, MVT::i32, ++/*507537*/ OPC_MoveParent, ++/*507538*/ OPC_MoveParent, ++/*507539*/ OPC_CheckChild1Same, 1, ++/*507541*/ OPC_MoveParent, ++/*507542*/ OPC_MoveChild1, ++/*507543*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*507546*/ OPC_CheckChild0Integer, 31, ++/*507548*/ OPC_CheckChild0Type, MVT::i32, ++/*507550*/ OPC_CheckChild1Integer, 31, ++/*507552*/ OPC_CheckChild1Type, MVT::i32, ++/*507554*/ OPC_CheckChild2Integer, 31, ++/*507556*/ OPC_CheckChild2Type, MVT::i32, ++/*507558*/ OPC_CheckChild3Integer, 31, ++/*507560*/ OPC_CheckChild3Type, MVT::i32, ++/*507562*/ OPC_CheckType, MVT::v4i32, ++/*507564*/ OPC_MoveParent, ++/*507565*/ OPC_MoveParent, ++/*507566*/ OPC_MoveParent, ++/*507567*/ OPC_MoveChild1, ++/*507568*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*507571*/ OPC_CheckChild0Integer, 1, ++/*507573*/ OPC_CheckChild0Type, MVT::i32, ++/*507575*/ OPC_CheckChild1Integer, 1, ++/*507577*/ OPC_CheckChild1Type, MVT::i32, ++/*507579*/ OPC_CheckChild2Integer, 1, ++/*507581*/ OPC_CheckChild2Type, MVT::i32, ++/*507583*/ OPC_CheckChild3Integer, 1, ++/*507585*/ OPC_CheckChild3Type, MVT::i32, ++/*507587*/ OPC_CheckType, MVT::v4i32, ++/*507589*/ OPC_MoveParent, ++/*507590*/ OPC_CheckType, MVT::v4i32, ++/*507592*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*507594*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*507602*/ /*Scope*/ 87, /*->507690*/ ++/*507603*/ OPC_CheckChild0Same, 1, ++/*507605*/ OPC_CheckChild1Same, 0, ++/*507607*/ OPC_MoveParent, ++/*507608*/ OPC_MoveChild1, ++/*507609*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*507612*/ OPC_CheckChild0Integer, 1, ++/*507614*/ OPC_CheckChild0Type, MVT::i32, ++/*507616*/ OPC_CheckChild1Integer, 1, ++/*507618*/ OPC_CheckChild1Type, MVT::i32, ++/*507620*/ OPC_CheckChild2Integer, 1, ++/*507622*/ OPC_CheckChild2Type, MVT::i32, ++/*507624*/ OPC_CheckChild3Integer, 1, ++/*507626*/ OPC_CheckChild3Type, MVT::i32, ++/*507628*/ OPC_MoveParent, ++/*507629*/ OPC_MoveParent, ++/*507630*/ OPC_MoveChild1, ++/*507631*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*507634*/ OPC_CheckChild0Integer, 31, ++/*507636*/ OPC_CheckChild0Type, MVT::i32, ++/*507638*/ OPC_CheckChild1Integer, 31, ++/*507640*/ OPC_CheckChild1Type, MVT::i32, ++/*507642*/ OPC_CheckChild2Integer, 31, ++/*507644*/ OPC_CheckChild2Type, MVT::i32, ++/*507646*/ OPC_CheckChild3Integer, 31, ++/*507648*/ OPC_CheckChild3Type, MVT::i32, ++/*507650*/ OPC_CheckType, MVT::v4i32, ++/*507652*/ OPC_MoveParent, ++/*507653*/ OPC_MoveParent, ++/*507654*/ OPC_MoveParent, ++/*507655*/ OPC_MoveChild1, ++/*507656*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*507659*/ OPC_CheckChild0Integer, 1, ++/*507661*/ OPC_CheckChild0Type, MVT::i32, ++/*507663*/ OPC_CheckChild1Integer, 1, ++/*507665*/ OPC_CheckChild1Type, MVT::i32, ++/*507667*/ OPC_CheckChild2Integer, 1, ++/*507669*/ OPC_CheckChild2Type, MVT::i32, ++/*507671*/ OPC_CheckChild3Integer, 1, ++/*507673*/ OPC_CheckChild3Type, MVT::i32, ++/*507675*/ OPC_CheckType, MVT::v4i32, ++/*507677*/ OPC_MoveParent, ++/*507678*/ OPC_CheckType, MVT::v4i32, ++/*507680*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*507682*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*507690*/ /*Scope*/ 87, /*->507778*/ ++/*507691*/ OPC_CheckChild0Same, 0, ++/*507693*/ OPC_CheckChild1Same, 1, ++/*507695*/ OPC_MoveParent, ++/*507696*/ OPC_MoveChild1, ++/*507697*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*507700*/ OPC_CheckChild0Integer, 1, ++/*507702*/ OPC_CheckChild0Type, MVT::i32, ++/*507704*/ OPC_CheckChild1Integer, 1, ++/*507706*/ OPC_CheckChild1Type, MVT::i32, ++/*507708*/ OPC_CheckChild2Integer, 1, ++/*507710*/ OPC_CheckChild2Type, MVT::i32, ++/*507712*/ OPC_CheckChild3Integer, 1, ++/*507714*/ OPC_CheckChild3Type, MVT::i32, ++/*507716*/ OPC_MoveParent, ++/*507717*/ OPC_MoveParent, ++/*507718*/ OPC_MoveChild1, ++/*507719*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*507722*/ OPC_CheckChild0Integer, 31, ++/*507724*/ OPC_CheckChild0Type, MVT::i32, ++/*507726*/ OPC_CheckChild1Integer, 31, ++/*507728*/ OPC_CheckChild1Type, MVT::i32, ++/*507730*/ OPC_CheckChild2Integer, 31, ++/*507732*/ OPC_CheckChild2Type, MVT::i32, ++/*507734*/ OPC_CheckChild3Integer, 31, ++/*507736*/ OPC_CheckChild3Type, MVT::i32, ++/*507738*/ OPC_CheckType, MVT::v4i32, ++/*507740*/ OPC_MoveParent, ++/*507741*/ OPC_MoveParent, ++/*507742*/ OPC_MoveParent, ++/*507743*/ OPC_MoveChild1, ++/*507744*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*507747*/ OPC_CheckChild0Integer, 1, ++/*507749*/ OPC_CheckChild0Type, MVT::i32, ++/*507751*/ OPC_CheckChild1Integer, 1, ++/*507753*/ OPC_CheckChild1Type, MVT::i32, ++/*507755*/ OPC_CheckChild2Integer, 1, ++/*507757*/ OPC_CheckChild2Type, MVT::i32, ++/*507759*/ OPC_CheckChild3Integer, 1, ++/*507761*/ OPC_CheckChild3Type, MVT::i32, ++/*507763*/ OPC_CheckType, MVT::v4i32, ++/*507765*/ OPC_MoveParent, ++/*507766*/ OPC_CheckType, MVT::v4i32, ++/*507768*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*507770*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*507778*/ 0, /*End of Scope*/ ++/*507779*/ /*Scope*/ 52|128,1/*180*/, /*->507961*/ ++/*507781*/ OPC_CheckChild0Same, 0, ++/*507783*/ OPC_MoveChild1, ++/*507784*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*507787*/ OPC_Scope, 85, /*->507874*/ // 2 children in Scope ++/*507789*/ OPC_MoveChild0, ++/*507790*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*507793*/ OPC_CheckChild0Integer, 1, ++/*507795*/ OPC_CheckChild0Type, MVT::i32, ++/*507797*/ OPC_CheckChild1Integer, 1, ++/*507799*/ OPC_CheckChild1Type, MVT::i32, ++/*507801*/ OPC_CheckChild2Integer, 1, ++/*507803*/ OPC_CheckChild2Type, MVT::i32, ++/*507805*/ OPC_CheckChild3Integer, 1, ++/*507807*/ OPC_CheckChild3Type, MVT::i32, ++/*507809*/ OPC_MoveParent, ++/*507810*/ OPC_CheckChild1Same, 1, ++/*507812*/ OPC_MoveParent, ++/*507813*/ OPC_MoveParent, ++/*507814*/ OPC_MoveChild1, ++/*507815*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*507818*/ OPC_CheckChild0Integer, 31, ++/*507820*/ OPC_CheckChild0Type, MVT::i32, ++/*507822*/ OPC_CheckChild1Integer, 31, ++/*507824*/ OPC_CheckChild1Type, MVT::i32, ++/*507826*/ OPC_CheckChild2Integer, 31, ++/*507828*/ OPC_CheckChild2Type, MVT::i32, ++/*507830*/ OPC_CheckChild3Integer, 31, ++/*507832*/ OPC_CheckChild3Type, MVT::i32, ++/*507834*/ OPC_CheckType, MVT::v4i32, ++/*507836*/ OPC_MoveParent, ++/*507837*/ OPC_MoveParent, ++/*507838*/ OPC_MoveParent, ++/*507839*/ OPC_MoveChild1, ++/*507840*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*507843*/ OPC_CheckChild0Integer, 1, ++/*507845*/ OPC_CheckChild0Type, MVT::i32, ++/*507847*/ OPC_CheckChild1Integer, 1, ++/*507849*/ OPC_CheckChild1Type, MVT::i32, ++/*507851*/ OPC_CheckChild2Integer, 1, ++/*507853*/ OPC_CheckChild2Type, MVT::i32, ++/*507855*/ OPC_CheckChild3Integer, 1, ++/*507857*/ OPC_CheckChild3Type, MVT::i32, ++/*507859*/ OPC_CheckType, MVT::v4i32, ++/*507861*/ OPC_MoveParent, ++/*507862*/ OPC_CheckType, MVT::v4i32, ++/*507864*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*507866*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*507874*/ /*Scope*/ 85, /*->507960*/ ++/*507875*/ OPC_CheckChild0Same, 1, ++/*507877*/ OPC_MoveChild1, ++/*507878*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*507881*/ OPC_CheckChild0Integer, 1, ++/*507883*/ OPC_CheckChild0Type, MVT::i32, ++/*507885*/ OPC_CheckChild1Integer, 1, ++/*507887*/ OPC_CheckChild1Type, MVT::i32, ++/*507889*/ OPC_CheckChild2Integer, 1, ++/*507891*/ OPC_CheckChild2Type, MVT::i32, ++/*507893*/ OPC_CheckChild3Integer, 1, ++/*507895*/ OPC_CheckChild3Type, MVT::i32, ++/*507897*/ OPC_MoveParent, ++/*507898*/ OPC_MoveParent, ++/*507899*/ OPC_MoveParent, ++/*507900*/ OPC_MoveChild1, ++/*507901*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*507904*/ OPC_CheckChild0Integer, 31, ++/*507906*/ OPC_CheckChild0Type, MVT::i32, ++/*507908*/ OPC_CheckChild1Integer, 31, ++/*507910*/ OPC_CheckChild1Type, MVT::i32, ++/*507912*/ OPC_CheckChild2Integer, 31, ++/*507914*/ OPC_CheckChild2Type, MVT::i32, ++/*507916*/ OPC_CheckChild3Integer, 31, ++/*507918*/ OPC_CheckChild3Type, MVT::i32, ++/*507920*/ OPC_CheckType, MVT::v4i32, ++/*507922*/ OPC_MoveParent, ++/*507923*/ OPC_MoveParent, ++/*507924*/ OPC_MoveParent, ++/*507925*/ OPC_MoveChild1, ++/*507926*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*507929*/ OPC_CheckChild0Integer, 1, ++/*507931*/ OPC_CheckChild0Type, MVT::i32, ++/*507933*/ OPC_CheckChild1Integer, 1, ++/*507935*/ OPC_CheckChild1Type, MVT::i32, ++/*507937*/ OPC_CheckChild2Integer, 1, ++/*507939*/ OPC_CheckChild2Type, MVT::i32, ++/*507941*/ OPC_CheckChild3Integer, 1, ++/*507943*/ OPC_CheckChild3Type, MVT::i32, ++/*507945*/ OPC_CheckType, MVT::v4i32, ++/*507947*/ OPC_MoveParent, ++/*507948*/ OPC_CheckType, MVT::v4i32, ++/*507950*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*507952*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*507960*/ 0, /*End of Scope*/ ++/*507961*/ /*Scope*/ 52|128,1/*180*/, /*->508143*/ ++/*507963*/ OPC_CheckChild0Same, 1, ++/*507965*/ OPC_MoveChild1, ++/*507966*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*507969*/ OPC_Scope, 85, /*->508056*/ // 2 children in Scope ++/*507971*/ OPC_MoveChild0, ++/*507972*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*507975*/ OPC_CheckChild0Integer, 1, ++/*507977*/ OPC_CheckChild0Type, MVT::i32, ++/*507979*/ OPC_CheckChild1Integer, 1, ++/*507981*/ OPC_CheckChild1Type, MVT::i32, ++/*507983*/ OPC_CheckChild2Integer, 1, ++/*507985*/ OPC_CheckChild2Type, MVT::i32, ++/*507987*/ OPC_CheckChild3Integer, 1, ++/*507989*/ OPC_CheckChild3Type, MVT::i32, ++/*507991*/ OPC_MoveParent, ++/*507992*/ OPC_CheckChild1Same, 0, ++/*507994*/ OPC_MoveParent, ++/*507995*/ OPC_MoveParent, ++/*507996*/ OPC_MoveChild1, ++/*507997*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*508000*/ OPC_CheckChild0Integer, 31, ++/*508002*/ OPC_CheckChild0Type, MVT::i32, ++/*508004*/ OPC_CheckChild1Integer, 31, ++/*508006*/ OPC_CheckChild1Type, MVT::i32, ++/*508008*/ OPC_CheckChild2Integer, 31, ++/*508010*/ OPC_CheckChild2Type, MVT::i32, ++/*508012*/ OPC_CheckChild3Integer, 31, ++/*508014*/ OPC_CheckChild3Type, MVT::i32, ++/*508016*/ OPC_CheckType, MVT::v4i32, ++/*508018*/ OPC_MoveParent, ++/*508019*/ OPC_MoveParent, ++/*508020*/ OPC_MoveParent, ++/*508021*/ OPC_MoveChild1, ++/*508022*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*508025*/ OPC_CheckChild0Integer, 1, ++/*508027*/ OPC_CheckChild0Type, MVT::i32, ++/*508029*/ OPC_CheckChild1Integer, 1, ++/*508031*/ OPC_CheckChild1Type, MVT::i32, ++/*508033*/ OPC_CheckChild2Integer, 1, ++/*508035*/ OPC_CheckChild2Type, MVT::i32, ++/*508037*/ OPC_CheckChild3Integer, 1, ++/*508039*/ OPC_CheckChild3Type, MVT::i32, ++/*508041*/ OPC_CheckType, MVT::v4i32, ++/*508043*/ OPC_MoveParent, ++/*508044*/ OPC_CheckType, MVT::v4i32, ++/*508046*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*508048*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*508056*/ /*Scope*/ 85, /*->508142*/ ++/*508057*/ OPC_CheckChild0Same, 0, ++/*508059*/ OPC_MoveChild1, ++/*508060*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*508063*/ OPC_CheckChild0Integer, 1, ++/*508065*/ OPC_CheckChild0Type, MVT::i32, ++/*508067*/ OPC_CheckChild1Integer, 1, ++/*508069*/ OPC_CheckChild1Type, MVT::i32, ++/*508071*/ OPC_CheckChild2Integer, 1, ++/*508073*/ OPC_CheckChild2Type, MVT::i32, ++/*508075*/ OPC_CheckChild3Integer, 1, ++/*508077*/ OPC_CheckChild3Type, MVT::i32, ++/*508079*/ OPC_MoveParent, ++/*508080*/ OPC_MoveParent, ++/*508081*/ OPC_MoveParent, ++/*508082*/ OPC_MoveChild1, ++/*508083*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*508086*/ OPC_CheckChild0Integer, 31, ++/*508088*/ OPC_CheckChild0Type, MVT::i32, ++/*508090*/ OPC_CheckChild1Integer, 31, ++/*508092*/ OPC_CheckChild1Type, MVT::i32, ++/*508094*/ OPC_CheckChild2Integer, 31, ++/*508096*/ OPC_CheckChild2Type, MVT::i32, ++/*508098*/ OPC_CheckChild3Integer, 31, ++/*508100*/ OPC_CheckChild3Type, MVT::i32, ++/*508102*/ OPC_CheckType, MVT::v4i32, ++/*508104*/ OPC_MoveParent, ++/*508105*/ OPC_MoveParent, ++/*508106*/ OPC_MoveParent, ++/*508107*/ OPC_MoveChild1, ++/*508108*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*508111*/ OPC_CheckChild0Integer, 1, ++/*508113*/ OPC_CheckChild0Type, MVT::i32, ++/*508115*/ OPC_CheckChild1Integer, 1, ++/*508117*/ OPC_CheckChild1Type, MVT::i32, ++/*508119*/ OPC_CheckChild2Integer, 1, ++/*508121*/ OPC_CheckChild2Type, MVT::i32, ++/*508123*/ OPC_CheckChild3Integer, 1, ++/*508125*/ OPC_CheckChild3Type, MVT::i32, ++/*508127*/ OPC_CheckType, MVT::v4i32, ++/*508129*/ OPC_MoveParent, ++/*508130*/ OPC_CheckType, MVT::v4i32, ++/*508132*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*508134*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*508142*/ 0, /*End of Scope*/ ++/*508143*/ /*Scope*/ 33|128,1/*161*/, /*->508306*/ ++/*508145*/ OPC_MoveChild0, ++/*508146*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*508149*/ OPC_CheckChild0Integer, 1, ++/*508151*/ OPC_CheckChild0Type, MVT::i32, ++/*508153*/ OPC_CheckChild1Integer, 1, ++/*508155*/ OPC_CheckChild1Type, MVT::i32, ++/*508157*/ OPC_CheckChild2Integer, 1, ++/*508159*/ OPC_CheckChild2Type, MVT::i32, ++/*508161*/ OPC_CheckChild3Integer, 1, ++/*508163*/ OPC_CheckChild3Type, MVT::i32, ++/*508165*/ OPC_MoveParent, ++/*508166*/ OPC_MoveChild1, ++/*508167*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*508170*/ OPC_Scope, 66, /*->508238*/ // 2 children in Scope ++/*508172*/ OPC_CheckChild0Same, 1, ++/*508174*/ OPC_CheckChild1Same, 0, ++/*508176*/ OPC_MoveParent, ++/*508177*/ OPC_MoveParent, ++/*508178*/ OPC_MoveChild1, ++/*508179*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*508182*/ OPC_CheckChild0Integer, 31, ++/*508184*/ OPC_CheckChild0Type, MVT::i32, ++/*508186*/ OPC_CheckChild1Integer, 31, ++/*508188*/ OPC_CheckChild1Type, MVT::i32, ++/*508190*/ OPC_CheckChild2Integer, 31, ++/*508192*/ OPC_CheckChild2Type, MVT::i32, ++/*508194*/ OPC_CheckChild3Integer, 31, ++/*508196*/ OPC_CheckChild3Type, MVT::i32, ++/*508198*/ OPC_CheckType, MVT::v4i32, ++/*508200*/ OPC_MoveParent, ++/*508201*/ OPC_MoveParent, ++/*508202*/ OPC_MoveParent, ++/*508203*/ OPC_MoveChild1, ++/*508204*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*508207*/ OPC_CheckChild0Integer, 1, ++/*508209*/ OPC_CheckChild0Type, MVT::i32, ++/*508211*/ OPC_CheckChild1Integer, 1, ++/*508213*/ OPC_CheckChild1Type, MVT::i32, ++/*508215*/ OPC_CheckChild2Integer, 1, ++/*508217*/ OPC_CheckChild2Type, MVT::i32, ++/*508219*/ OPC_CheckChild3Integer, 1, ++/*508221*/ OPC_CheckChild3Type, MVT::i32, ++/*508223*/ OPC_CheckType, MVT::v4i32, ++/*508225*/ OPC_MoveParent, ++/*508226*/ OPC_CheckType, MVT::v4i32, ++/*508228*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*508230*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*508238*/ /*Scope*/ 66, /*->508305*/ ++/*508239*/ OPC_CheckChild0Same, 0, ++/*508241*/ OPC_CheckChild1Same, 1, ++/*508243*/ OPC_MoveParent, ++/*508244*/ OPC_MoveParent, ++/*508245*/ OPC_MoveChild1, ++/*508246*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*508249*/ OPC_CheckChild0Integer, 31, ++/*508251*/ OPC_CheckChild0Type, MVT::i32, ++/*508253*/ OPC_CheckChild1Integer, 31, ++/*508255*/ OPC_CheckChild1Type, MVT::i32, ++/*508257*/ OPC_CheckChild2Integer, 31, ++/*508259*/ OPC_CheckChild2Type, MVT::i32, ++/*508261*/ OPC_CheckChild3Integer, 31, ++/*508263*/ OPC_CheckChild3Type, MVT::i32, ++/*508265*/ OPC_CheckType, MVT::v4i32, ++/*508267*/ OPC_MoveParent, ++/*508268*/ OPC_MoveParent, ++/*508269*/ OPC_MoveParent, ++/*508270*/ OPC_MoveChild1, ++/*508271*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*508274*/ OPC_CheckChild0Integer, 1, ++/*508276*/ OPC_CheckChild0Type, MVT::i32, ++/*508278*/ OPC_CheckChild1Integer, 1, ++/*508280*/ OPC_CheckChild1Type, MVT::i32, ++/*508282*/ OPC_CheckChild2Integer, 1, ++/*508284*/ OPC_CheckChild2Type, MVT::i32, ++/*508286*/ OPC_CheckChild3Integer, 1, ++/*508288*/ OPC_CheckChild3Type, MVT::i32, ++/*508290*/ OPC_CheckType, MVT::v4i32, ++/*508292*/ OPC_MoveParent, ++/*508293*/ OPC_CheckType, MVT::v4i32, ++/*508295*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*508297*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*508305*/ 0, /*End of Scope*/ ++/*508306*/ 0, /*End of Scope*/ ++/*508307*/ /*Scope*/ 73|128,8/*1097*/, /*->509406*/ ++/*508309*/ OPC_MoveChild0, ++/*508310*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*508313*/ OPC_CheckChild0Integer, 1, ++/*508315*/ OPC_CheckChild0Type, MVT::i32, ++/*508317*/ OPC_CheckChild1Integer, 1, ++/*508319*/ OPC_CheckChild1Type, MVT::i32, ++/*508321*/ OPC_CheckChild2Integer, 1, ++/*508323*/ OPC_CheckChild2Type, MVT::i32, ++/*508325*/ OPC_CheckChild3Integer, 1, ++/*508327*/ OPC_CheckChild3Type, MVT::i32, ++/*508329*/ OPC_MoveParent, ++/*508330*/ OPC_RecordChild1, // #1 = $b ++/*508331*/ OPC_MoveParent, ++/*508332*/ OPC_MoveParent, ++/*508333*/ OPC_MoveChild1, ++/*508334*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*508337*/ OPC_MoveChild0, ++/*508338*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*508341*/ OPC_Scope, 22|128,4/*534*/, /*->508878*/ // 4 children in Scope ++/*508344*/ OPC_MoveChild0, ++/*508345*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*508348*/ OPC_Scope, 87, /*->508437*/ // 6 children in Scope ++/*508350*/ OPC_MoveChild0, ++/*508351*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*508354*/ OPC_CheckChild0Integer, 1, ++/*508356*/ OPC_CheckChild0Type, MVT::i32, ++/*508358*/ OPC_CheckChild1Integer, 1, ++/*508360*/ OPC_CheckChild1Type, MVT::i32, ++/*508362*/ OPC_CheckChild2Integer, 1, ++/*508364*/ OPC_CheckChild2Type, MVT::i32, ++/*508366*/ OPC_CheckChild3Integer, 1, ++/*508368*/ OPC_CheckChild3Type, MVT::i32, ++/*508370*/ OPC_MoveParent, ++/*508371*/ OPC_CheckChild1Same, 0, ++/*508373*/ OPC_MoveParent, ++/*508374*/ OPC_CheckChild1Same, 1, ++/*508376*/ OPC_MoveParent, ++/*508377*/ OPC_MoveChild1, ++/*508378*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*508381*/ OPC_CheckChild0Integer, 31, ++/*508383*/ OPC_CheckChild0Type, MVT::i32, ++/*508385*/ OPC_CheckChild1Integer, 31, ++/*508387*/ OPC_CheckChild1Type, MVT::i32, ++/*508389*/ OPC_CheckChild2Integer, 31, ++/*508391*/ OPC_CheckChild2Type, MVT::i32, ++/*508393*/ OPC_CheckChild3Integer, 31, ++/*508395*/ OPC_CheckChild3Type, MVT::i32, ++/*508397*/ OPC_CheckType, MVT::v4i32, ++/*508399*/ OPC_MoveParent, ++/*508400*/ OPC_MoveParent, ++/*508401*/ OPC_MoveParent, ++/*508402*/ OPC_MoveChild1, ++/*508403*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*508406*/ OPC_CheckChild0Integer, 1, ++/*508408*/ OPC_CheckChild0Type, MVT::i32, ++/*508410*/ OPC_CheckChild1Integer, 1, ++/*508412*/ OPC_CheckChild1Type, MVT::i32, ++/*508414*/ OPC_CheckChild2Integer, 1, ++/*508416*/ OPC_CheckChild2Type, MVT::i32, ++/*508418*/ OPC_CheckChild3Integer, 1, ++/*508420*/ OPC_CheckChild3Type, MVT::i32, ++/*508422*/ OPC_CheckType, MVT::v4i32, ++/*508424*/ OPC_MoveParent, ++/*508425*/ OPC_CheckType, MVT::v4i32, ++/*508427*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*508429*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b)), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a), LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*508437*/ /*Scope*/ 87, /*->508525*/ ++/*508438*/ OPC_CheckChild0Same, 0, ++/*508440*/ OPC_MoveChild1, ++/*508441*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*508444*/ OPC_CheckChild0Integer, 1, ++/*508446*/ OPC_CheckChild0Type, MVT::i32, ++/*508448*/ OPC_CheckChild1Integer, 1, ++/*508450*/ OPC_CheckChild1Type, MVT::i32, ++/*508452*/ OPC_CheckChild2Integer, 1, ++/*508454*/ OPC_CheckChild2Type, MVT::i32, ++/*508456*/ OPC_CheckChild3Integer, 1, ++/*508458*/ OPC_CheckChild3Type, MVT::i32, ++/*508460*/ OPC_MoveParent, ++/*508461*/ OPC_MoveParent, ++/*508462*/ OPC_CheckChild1Same, 1, ++/*508464*/ OPC_MoveParent, ++/*508465*/ OPC_MoveChild1, ++/*508466*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*508469*/ OPC_CheckChild0Integer, 31, ++/*508471*/ OPC_CheckChild0Type, MVT::i32, ++/*508473*/ OPC_CheckChild1Integer, 31, ++/*508475*/ OPC_CheckChild1Type, MVT::i32, ++/*508477*/ OPC_CheckChild2Integer, 31, ++/*508479*/ OPC_CheckChild2Type, MVT::i32, ++/*508481*/ OPC_CheckChild3Integer, 31, ++/*508483*/ OPC_CheckChild3Type, MVT::i32, ++/*508485*/ OPC_CheckType, MVT::v4i32, ++/*508487*/ OPC_MoveParent, ++/*508488*/ OPC_MoveParent, ++/*508489*/ OPC_MoveParent, ++/*508490*/ OPC_MoveChild1, ++/*508491*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*508494*/ OPC_CheckChild0Integer, 1, ++/*508496*/ OPC_CheckChild0Type, MVT::i32, ++/*508498*/ OPC_CheckChild1Integer, 1, ++/*508500*/ OPC_CheckChild1Type, MVT::i32, ++/*508502*/ OPC_CheckChild2Integer, 1, ++/*508504*/ OPC_CheckChild2Type, MVT::i32, ++/*508506*/ OPC_CheckChild3Integer, 1, ++/*508508*/ OPC_CheckChild3Type, MVT::i32, ++/*508510*/ OPC_CheckType, MVT::v4i32, ++/*508512*/ OPC_MoveParent, ++/*508513*/ OPC_CheckType, MVT::v4i32, ++/*508515*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*508517*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b)), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*508525*/ /*Scope*/ 87, /*->508613*/ ++/*508526*/ OPC_MoveChild0, ++/*508527*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*508530*/ OPC_CheckChild0Integer, 1, ++/*508532*/ OPC_CheckChild0Type, MVT::i32, ++/*508534*/ OPC_CheckChild1Integer, 1, ++/*508536*/ OPC_CheckChild1Type, MVT::i32, ++/*508538*/ OPC_CheckChild2Integer, 1, ++/*508540*/ OPC_CheckChild2Type, MVT::i32, ++/*508542*/ OPC_CheckChild3Integer, 1, ++/*508544*/ OPC_CheckChild3Type, MVT::i32, ++/*508546*/ OPC_MoveParent, ++/*508547*/ OPC_CheckChild1Same, 1, ++/*508549*/ OPC_MoveParent, ++/*508550*/ OPC_CheckChild1Same, 0, ++/*508552*/ OPC_MoveParent, ++/*508553*/ OPC_MoveChild1, ++/*508554*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*508557*/ OPC_CheckChild0Integer, 31, ++/*508559*/ OPC_CheckChild0Type, MVT::i32, ++/*508561*/ OPC_CheckChild1Integer, 31, ++/*508563*/ OPC_CheckChild1Type, MVT::i32, ++/*508565*/ OPC_CheckChild2Integer, 31, ++/*508567*/ OPC_CheckChild2Type, MVT::i32, ++/*508569*/ OPC_CheckChild3Integer, 31, ++/*508571*/ OPC_CheckChild3Type, MVT::i32, ++/*508573*/ OPC_CheckType, MVT::v4i32, ++/*508575*/ OPC_MoveParent, ++/*508576*/ OPC_MoveParent, ++/*508577*/ OPC_MoveParent, ++/*508578*/ OPC_MoveChild1, ++/*508579*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*508582*/ OPC_CheckChild0Integer, 1, ++/*508584*/ OPC_CheckChild0Type, MVT::i32, ++/*508586*/ OPC_CheckChild1Integer, 1, ++/*508588*/ OPC_CheckChild1Type, MVT::i32, ++/*508590*/ OPC_CheckChild2Integer, 1, ++/*508592*/ OPC_CheckChild2Type, MVT::i32, ++/*508594*/ OPC_CheckChild3Integer, 1, ++/*508596*/ OPC_CheckChild3Type, MVT::i32, ++/*508598*/ OPC_CheckType, MVT::v4i32, ++/*508600*/ OPC_MoveParent, ++/*508601*/ OPC_CheckType, MVT::v4i32, ++/*508603*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*508605*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b)), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b), LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*508613*/ /*Scope*/ 87, /*->508701*/ ++/*508614*/ OPC_CheckChild0Same, 1, ++/*508616*/ OPC_MoveChild1, ++/*508617*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*508620*/ OPC_CheckChild0Integer, 1, ++/*508622*/ OPC_CheckChild0Type, MVT::i32, ++/*508624*/ OPC_CheckChild1Integer, 1, ++/*508626*/ OPC_CheckChild1Type, MVT::i32, ++/*508628*/ OPC_CheckChild2Integer, 1, ++/*508630*/ OPC_CheckChild2Type, MVT::i32, ++/*508632*/ OPC_CheckChild3Integer, 1, ++/*508634*/ OPC_CheckChild3Type, MVT::i32, ++/*508636*/ OPC_MoveParent, ++/*508637*/ OPC_MoveParent, ++/*508638*/ OPC_CheckChild1Same, 0, ++/*508640*/ OPC_MoveParent, ++/*508641*/ OPC_MoveChild1, ++/*508642*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*508645*/ OPC_CheckChild0Integer, 31, ++/*508647*/ OPC_CheckChild0Type, MVT::i32, ++/*508649*/ OPC_CheckChild1Integer, 31, ++/*508651*/ OPC_CheckChild1Type, MVT::i32, ++/*508653*/ OPC_CheckChild2Integer, 31, ++/*508655*/ OPC_CheckChild2Type, MVT::i32, ++/*508657*/ OPC_CheckChild3Integer, 31, ++/*508659*/ OPC_CheckChild3Type, MVT::i32, ++/*508661*/ OPC_CheckType, MVT::v4i32, ++/*508663*/ OPC_MoveParent, ++/*508664*/ OPC_MoveParent, ++/*508665*/ OPC_MoveParent, ++/*508666*/ OPC_MoveChild1, ++/*508667*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*508670*/ OPC_CheckChild0Integer, 1, ++/*508672*/ OPC_CheckChild0Type, MVT::i32, ++/*508674*/ OPC_CheckChild1Integer, 1, ++/*508676*/ OPC_CheckChild1Type, MVT::i32, ++/*508678*/ OPC_CheckChild2Integer, 1, ++/*508680*/ OPC_CheckChild2Type, MVT::i32, ++/*508682*/ OPC_CheckChild3Integer, 1, ++/*508684*/ OPC_CheckChild3Type, MVT::i32, ++/*508686*/ OPC_CheckType, MVT::v4i32, ++/*508688*/ OPC_MoveParent, ++/*508689*/ OPC_CheckType, MVT::v4i32, ++/*508691*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*508693*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b)), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*508701*/ /*Scope*/ 87, /*->508789*/ ++/*508702*/ OPC_CheckChild0Same, 0, ++/*508704*/ OPC_CheckChild1Same, 1, ++/*508706*/ OPC_MoveParent, ++/*508707*/ OPC_MoveChild1, ++/*508708*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*508711*/ OPC_CheckChild0Integer, 1, ++/*508713*/ OPC_CheckChild0Type, MVT::i32, ++/*508715*/ OPC_CheckChild1Integer, 1, ++/*508717*/ OPC_CheckChild1Type, MVT::i32, ++/*508719*/ OPC_CheckChild2Integer, 1, ++/*508721*/ OPC_CheckChild2Type, MVT::i32, ++/*508723*/ OPC_CheckChild3Integer, 1, ++/*508725*/ OPC_CheckChild3Type, MVT::i32, ++/*508727*/ OPC_MoveParent, ++/*508728*/ OPC_MoveParent, ++/*508729*/ OPC_MoveChild1, ++/*508730*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*508733*/ OPC_CheckChild0Integer, 31, ++/*508735*/ OPC_CheckChild0Type, MVT::i32, ++/*508737*/ OPC_CheckChild1Integer, 31, ++/*508739*/ OPC_CheckChild1Type, MVT::i32, ++/*508741*/ OPC_CheckChild2Integer, 31, ++/*508743*/ OPC_CheckChild2Type, MVT::i32, ++/*508745*/ OPC_CheckChild3Integer, 31, ++/*508747*/ OPC_CheckChild3Type, MVT::i32, ++/*508749*/ OPC_CheckType, MVT::v4i32, ++/*508751*/ OPC_MoveParent, ++/*508752*/ OPC_MoveParent, ++/*508753*/ OPC_MoveParent, ++/*508754*/ OPC_MoveChild1, ++/*508755*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*508758*/ OPC_CheckChild0Integer, 1, ++/*508760*/ OPC_CheckChild0Type, MVT::i32, ++/*508762*/ OPC_CheckChild1Integer, 1, ++/*508764*/ OPC_CheckChild1Type, MVT::i32, ++/*508766*/ OPC_CheckChild2Integer, 1, ++/*508768*/ OPC_CheckChild2Type, MVT::i32, ++/*508770*/ OPC_CheckChild3Integer, 1, ++/*508772*/ OPC_CheckChild3Type, MVT::i32, ++/*508774*/ OPC_CheckType, MVT::v4i32, ++/*508776*/ OPC_MoveParent, ++/*508777*/ OPC_CheckType, MVT::v4i32, ++/*508779*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*508781*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b)), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*508789*/ /*Scope*/ 87, /*->508877*/ ++/*508790*/ OPC_CheckChild0Same, 1, ++/*508792*/ OPC_CheckChild1Same, 0, ++/*508794*/ OPC_MoveParent, ++/*508795*/ OPC_MoveChild1, ++/*508796*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*508799*/ OPC_CheckChild0Integer, 1, ++/*508801*/ OPC_CheckChild0Type, MVT::i32, ++/*508803*/ OPC_CheckChild1Integer, 1, ++/*508805*/ OPC_CheckChild1Type, MVT::i32, ++/*508807*/ OPC_CheckChild2Integer, 1, ++/*508809*/ OPC_CheckChild2Type, MVT::i32, ++/*508811*/ OPC_CheckChild3Integer, 1, ++/*508813*/ OPC_CheckChild3Type, MVT::i32, ++/*508815*/ OPC_MoveParent, ++/*508816*/ OPC_MoveParent, ++/*508817*/ OPC_MoveChild1, ++/*508818*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*508821*/ OPC_CheckChild0Integer, 31, ++/*508823*/ OPC_CheckChild0Type, MVT::i32, ++/*508825*/ OPC_CheckChild1Integer, 31, ++/*508827*/ OPC_CheckChild1Type, MVT::i32, ++/*508829*/ OPC_CheckChild2Integer, 31, ++/*508831*/ OPC_CheckChild2Type, MVT::i32, ++/*508833*/ OPC_CheckChild3Integer, 31, ++/*508835*/ OPC_CheckChild3Type, MVT::i32, ++/*508837*/ OPC_CheckType, MVT::v4i32, ++/*508839*/ OPC_MoveParent, ++/*508840*/ OPC_MoveParent, ++/*508841*/ OPC_MoveParent, ++/*508842*/ OPC_MoveChild1, ++/*508843*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*508846*/ OPC_CheckChild0Integer, 1, ++/*508848*/ OPC_CheckChild0Type, MVT::i32, ++/*508850*/ OPC_CheckChild1Integer, 1, ++/*508852*/ OPC_CheckChild1Type, MVT::i32, ++/*508854*/ OPC_CheckChild2Integer, 1, ++/*508856*/ OPC_CheckChild2Type, MVT::i32, ++/*508858*/ OPC_CheckChild3Integer, 1, ++/*508860*/ OPC_CheckChild3Type, MVT::i32, ++/*508862*/ OPC_CheckType, MVT::v4i32, ++/*508864*/ OPC_MoveParent, ++/*508865*/ OPC_CheckType, MVT::v4i32, ++/*508867*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*508869*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b)), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*508877*/ 0, /*End of Scope*/ ++/*508878*/ /*Scope*/ 52|128,1/*180*/, /*->509060*/ ++/*508880*/ OPC_CheckChild0Same, 1, ++/*508882*/ OPC_MoveChild1, ++/*508883*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*508886*/ OPC_Scope, 85, /*->508973*/ // 2 children in Scope ++/*508888*/ OPC_MoveChild0, ++/*508889*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*508892*/ OPC_CheckChild0Integer, 1, ++/*508894*/ OPC_CheckChild0Type, MVT::i32, ++/*508896*/ OPC_CheckChild1Integer, 1, ++/*508898*/ OPC_CheckChild1Type, MVT::i32, ++/*508900*/ OPC_CheckChild2Integer, 1, ++/*508902*/ OPC_CheckChild2Type, MVT::i32, ++/*508904*/ OPC_CheckChild3Integer, 1, ++/*508906*/ OPC_CheckChild3Type, MVT::i32, ++/*508908*/ OPC_MoveParent, ++/*508909*/ OPC_CheckChild1Same, 0, ++/*508911*/ OPC_MoveParent, ++/*508912*/ OPC_MoveParent, ++/*508913*/ OPC_MoveChild1, ++/*508914*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*508917*/ OPC_CheckChild0Integer, 31, ++/*508919*/ OPC_CheckChild0Type, MVT::i32, ++/*508921*/ OPC_CheckChild1Integer, 31, ++/*508923*/ OPC_CheckChild1Type, MVT::i32, ++/*508925*/ OPC_CheckChild2Integer, 31, ++/*508927*/ OPC_CheckChild2Type, MVT::i32, ++/*508929*/ OPC_CheckChild3Integer, 31, ++/*508931*/ OPC_CheckChild3Type, MVT::i32, ++/*508933*/ OPC_CheckType, MVT::v4i32, ++/*508935*/ OPC_MoveParent, ++/*508936*/ OPC_MoveParent, ++/*508937*/ OPC_MoveParent, ++/*508938*/ OPC_MoveChild1, ++/*508939*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*508942*/ OPC_CheckChild0Integer, 1, ++/*508944*/ OPC_CheckChild0Type, MVT::i32, ++/*508946*/ OPC_CheckChild1Integer, 1, ++/*508948*/ OPC_CheckChild1Type, MVT::i32, ++/*508950*/ OPC_CheckChild2Integer, 1, ++/*508952*/ OPC_CheckChild2Type, MVT::i32, ++/*508954*/ OPC_CheckChild3Integer, 1, ++/*508956*/ OPC_CheckChild3Type, MVT::i32, ++/*508958*/ OPC_CheckType, MVT::v4i32, ++/*508960*/ OPC_MoveParent, ++/*508961*/ OPC_CheckType, MVT::v4i32, ++/*508963*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*508965*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b)), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*508973*/ /*Scope*/ 85, /*->509059*/ ++/*508974*/ OPC_CheckChild0Same, 0, ++/*508976*/ OPC_MoveChild1, ++/*508977*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*508980*/ OPC_CheckChild0Integer, 1, ++/*508982*/ OPC_CheckChild0Type, MVT::i32, ++/*508984*/ OPC_CheckChild1Integer, 1, ++/*508986*/ OPC_CheckChild1Type, MVT::i32, ++/*508988*/ OPC_CheckChild2Integer, 1, ++/*508990*/ OPC_CheckChild2Type, MVT::i32, ++/*508992*/ OPC_CheckChild3Integer, 1, ++/*508994*/ OPC_CheckChild3Type, MVT::i32, ++/*508996*/ OPC_MoveParent, ++/*508997*/ OPC_MoveParent, ++/*508998*/ OPC_MoveParent, ++/*508999*/ OPC_MoveChild1, ++/*509000*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*509003*/ OPC_CheckChild0Integer, 31, ++/*509005*/ OPC_CheckChild0Type, MVT::i32, ++/*509007*/ OPC_CheckChild1Integer, 31, ++/*509009*/ OPC_CheckChild1Type, MVT::i32, ++/*509011*/ OPC_CheckChild2Integer, 31, ++/*509013*/ OPC_CheckChild2Type, MVT::i32, ++/*509015*/ OPC_CheckChild3Integer, 31, ++/*509017*/ OPC_CheckChild3Type, MVT::i32, ++/*509019*/ OPC_CheckType, MVT::v4i32, ++/*509021*/ OPC_MoveParent, ++/*509022*/ OPC_MoveParent, ++/*509023*/ OPC_MoveParent, ++/*509024*/ OPC_MoveChild1, ++/*509025*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*509028*/ OPC_CheckChild0Integer, 1, ++/*509030*/ OPC_CheckChild0Type, MVT::i32, ++/*509032*/ OPC_CheckChild1Integer, 1, ++/*509034*/ OPC_CheckChild1Type, MVT::i32, ++/*509036*/ OPC_CheckChild2Integer, 1, ++/*509038*/ OPC_CheckChild2Type, MVT::i32, ++/*509040*/ OPC_CheckChild3Integer, 1, ++/*509042*/ OPC_CheckChild3Type, MVT::i32, ++/*509044*/ OPC_CheckType, MVT::v4i32, ++/*509046*/ OPC_MoveParent, ++/*509047*/ OPC_CheckType, MVT::v4i32, ++/*509049*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*509051*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b)), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*509059*/ 0, /*End of Scope*/ ++/*509060*/ /*Scope*/ 52|128,1/*180*/, /*->509242*/ ++/*509062*/ OPC_CheckChild0Same, 0, ++/*509064*/ OPC_MoveChild1, ++/*509065*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*509068*/ OPC_Scope, 85, /*->509155*/ // 2 children in Scope ++/*509070*/ OPC_MoveChild0, ++/*509071*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*509074*/ OPC_CheckChild0Integer, 1, ++/*509076*/ OPC_CheckChild0Type, MVT::i32, ++/*509078*/ OPC_CheckChild1Integer, 1, ++/*509080*/ OPC_CheckChild1Type, MVT::i32, ++/*509082*/ OPC_CheckChild2Integer, 1, ++/*509084*/ OPC_CheckChild2Type, MVT::i32, ++/*509086*/ OPC_CheckChild3Integer, 1, ++/*509088*/ OPC_CheckChild3Type, MVT::i32, ++/*509090*/ OPC_MoveParent, ++/*509091*/ OPC_CheckChild1Same, 1, ++/*509093*/ OPC_MoveParent, ++/*509094*/ OPC_MoveParent, ++/*509095*/ OPC_MoveChild1, ++/*509096*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*509099*/ OPC_CheckChild0Integer, 31, ++/*509101*/ OPC_CheckChild0Type, MVT::i32, ++/*509103*/ OPC_CheckChild1Integer, 31, ++/*509105*/ OPC_CheckChild1Type, MVT::i32, ++/*509107*/ OPC_CheckChild2Integer, 31, ++/*509109*/ OPC_CheckChild2Type, MVT::i32, ++/*509111*/ OPC_CheckChild3Integer, 31, ++/*509113*/ OPC_CheckChild3Type, MVT::i32, ++/*509115*/ OPC_CheckType, MVT::v4i32, ++/*509117*/ OPC_MoveParent, ++/*509118*/ OPC_MoveParent, ++/*509119*/ OPC_MoveParent, ++/*509120*/ OPC_MoveChild1, ++/*509121*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*509124*/ OPC_CheckChild0Integer, 1, ++/*509126*/ OPC_CheckChild0Type, MVT::i32, ++/*509128*/ OPC_CheckChild1Integer, 1, ++/*509130*/ OPC_CheckChild1Type, MVT::i32, ++/*509132*/ OPC_CheckChild2Integer, 1, ++/*509134*/ OPC_CheckChild2Type, MVT::i32, ++/*509136*/ OPC_CheckChild3Integer, 1, ++/*509138*/ OPC_CheckChild3Type, MVT::i32, ++/*509140*/ OPC_CheckType, MVT::v4i32, ++/*509142*/ OPC_MoveParent, ++/*509143*/ OPC_CheckType, MVT::v4i32, ++/*509145*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*509147*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b)), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*509155*/ /*Scope*/ 85, /*->509241*/ ++/*509156*/ OPC_CheckChild0Same, 1, ++/*509158*/ OPC_MoveChild1, ++/*509159*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*509162*/ OPC_CheckChild0Integer, 1, ++/*509164*/ OPC_CheckChild0Type, MVT::i32, ++/*509166*/ OPC_CheckChild1Integer, 1, ++/*509168*/ OPC_CheckChild1Type, MVT::i32, ++/*509170*/ OPC_CheckChild2Integer, 1, ++/*509172*/ OPC_CheckChild2Type, MVT::i32, ++/*509174*/ OPC_CheckChild3Integer, 1, ++/*509176*/ OPC_CheckChild3Type, MVT::i32, ++/*509178*/ OPC_MoveParent, ++/*509179*/ OPC_MoveParent, ++/*509180*/ OPC_MoveParent, ++/*509181*/ OPC_MoveChild1, ++/*509182*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*509185*/ OPC_CheckChild0Integer, 31, ++/*509187*/ OPC_CheckChild0Type, MVT::i32, ++/*509189*/ OPC_CheckChild1Integer, 31, ++/*509191*/ OPC_CheckChild1Type, MVT::i32, ++/*509193*/ OPC_CheckChild2Integer, 31, ++/*509195*/ OPC_CheckChild2Type, MVT::i32, ++/*509197*/ OPC_CheckChild3Integer, 31, ++/*509199*/ OPC_CheckChild3Type, MVT::i32, ++/*509201*/ OPC_CheckType, MVT::v4i32, ++/*509203*/ OPC_MoveParent, ++/*509204*/ OPC_MoveParent, ++/*509205*/ OPC_MoveParent, ++/*509206*/ OPC_MoveChild1, ++/*509207*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*509210*/ OPC_CheckChild0Integer, 1, ++/*509212*/ OPC_CheckChild0Type, MVT::i32, ++/*509214*/ OPC_CheckChild1Integer, 1, ++/*509216*/ OPC_CheckChild1Type, MVT::i32, ++/*509218*/ OPC_CheckChild2Integer, 1, ++/*509220*/ OPC_CheckChild2Type, MVT::i32, ++/*509222*/ OPC_CheckChild3Integer, 1, ++/*509224*/ OPC_CheckChild3Type, MVT::i32, ++/*509226*/ OPC_CheckType, MVT::v4i32, ++/*509228*/ OPC_MoveParent, ++/*509229*/ OPC_CheckType, MVT::v4i32, ++/*509231*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*509233*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b)), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*509241*/ 0, /*End of Scope*/ ++/*509242*/ /*Scope*/ 33|128,1/*161*/, /*->509405*/ ++/*509244*/ OPC_MoveChild0, ++/*509245*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*509248*/ OPC_CheckChild0Integer, 1, ++/*509250*/ OPC_CheckChild0Type, MVT::i32, ++/*509252*/ OPC_CheckChild1Integer, 1, ++/*509254*/ OPC_CheckChild1Type, MVT::i32, ++/*509256*/ OPC_CheckChild2Integer, 1, ++/*509258*/ OPC_CheckChild2Type, MVT::i32, ++/*509260*/ OPC_CheckChild3Integer, 1, ++/*509262*/ OPC_CheckChild3Type, MVT::i32, ++/*509264*/ OPC_MoveParent, ++/*509265*/ OPC_MoveChild1, ++/*509266*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*509269*/ OPC_Scope, 66, /*->509337*/ // 2 children in Scope ++/*509271*/ OPC_CheckChild0Same, 0, ++/*509273*/ OPC_CheckChild1Same, 1, ++/*509275*/ OPC_MoveParent, ++/*509276*/ OPC_MoveParent, ++/*509277*/ OPC_MoveChild1, ++/*509278*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*509281*/ OPC_CheckChild0Integer, 31, ++/*509283*/ OPC_CheckChild0Type, MVT::i32, ++/*509285*/ OPC_CheckChild1Integer, 31, ++/*509287*/ OPC_CheckChild1Type, MVT::i32, ++/*509289*/ OPC_CheckChild2Integer, 31, ++/*509291*/ OPC_CheckChild2Type, MVT::i32, ++/*509293*/ OPC_CheckChild3Integer, 31, ++/*509295*/ OPC_CheckChild3Type, MVT::i32, ++/*509297*/ OPC_CheckType, MVT::v4i32, ++/*509299*/ OPC_MoveParent, ++/*509300*/ OPC_MoveParent, ++/*509301*/ OPC_MoveParent, ++/*509302*/ OPC_MoveChild1, ++/*509303*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*509306*/ OPC_CheckChild0Integer, 1, ++/*509308*/ OPC_CheckChild0Type, MVT::i32, ++/*509310*/ OPC_CheckChild1Integer, 1, ++/*509312*/ OPC_CheckChild1Type, MVT::i32, ++/*509314*/ OPC_CheckChild2Integer, 1, ++/*509316*/ OPC_CheckChild2Type, MVT::i32, ++/*509318*/ OPC_CheckChild3Integer, 1, ++/*509320*/ OPC_CheckChild3Type, MVT::i32, ++/*509322*/ OPC_CheckType, MVT::v4i32, ++/*509324*/ OPC_MoveParent, ++/*509325*/ OPC_CheckType, MVT::v4i32, ++/*509327*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*509329*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b)), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*509337*/ /*Scope*/ 66, /*->509404*/ ++/*509338*/ OPC_CheckChild0Same, 1, ++/*509340*/ OPC_CheckChild1Same, 0, ++/*509342*/ OPC_MoveParent, ++/*509343*/ OPC_MoveParent, ++/*509344*/ OPC_MoveChild1, ++/*509345*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*509348*/ OPC_CheckChild0Integer, 31, ++/*509350*/ OPC_CheckChild0Type, MVT::i32, ++/*509352*/ OPC_CheckChild1Integer, 31, ++/*509354*/ OPC_CheckChild1Type, MVT::i32, ++/*509356*/ OPC_CheckChild2Integer, 31, ++/*509358*/ OPC_CheckChild2Type, MVT::i32, ++/*509360*/ OPC_CheckChild3Integer, 31, ++/*509362*/ OPC_CheckChild3Type, MVT::i32, ++/*509364*/ OPC_CheckType, MVT::v4i32, ++/*509366*/ OPC_MoveParent, ++/*509367*/ OPC_MoveParent, ++/*509368*/ OPC_MoveParent, ++/*509369*/ OPC_MoveChild1, ++/*509370*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*509373*/ OPC_CheckChild0Integer, 1, ++/*509375*/ OPC_CheckChild0Type, MVT::i32, ++/*509377*/ OPC_CheckChild1Integer, 1, ++/*509379*/ OPC_CheckChild1Type, MVT::i32, ++/*509381*/ OPC_CheckChild2Integer, 1, ++/*509383*/ OPC_CheckChild2Type, MVT::i32, ++/*509385*/ OPC_CheckChild3Integer, 1, ++/*509387*/ OPC_CheckChild3Type, MVT::i32, ++/*509389*/ OPC_CheckType, MVT::v4i32, ++/*509391*/ OPC_MoveParent, ++/*509392*/ OPC_CheckType, MVT::v4i32, ++/*509394*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*509396*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b)), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*509404*/ 0, /*End of Scope*/ ++/*509405*/ 0, /*End of Scope*/ ++/*509406*/ /*Scope*/ 73|128,8/*1097*/, /*->510505*/ ++/*509408*/ OPC_RecordChild0, // #1 = $b ++/*509409*/ OPC_MoveChild1, ++/*509410*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*509413*/ OPC_CheckChild0Integer, 1, ++/*509415*/ OPC_CheckChild0Type, MVT::i32, ++/*509417*/ OPC_CheckChild1Integer, 1, ++/*509419*/ OPC_CheckChild1Type, MVT::i32, ++/*509421*/ OPC_CheckChild2Integer, 1, ++/*509423*/ OPC_CheckChild2Type, MVT::i32, ++/*509425*/ OPC_CheckChild3Integer, 1, ++/*509427*/ OPC_CheckChild3Type, MVT::i32, ++/*509429*/ OPC_MoveParent, ++/*509430*/ OPC_MoveParent, ++/*509431*/ OPC_MoveParent, ++/*509432*/ OPC_MoveChild1, ++/*509433*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*509436*/ OPC_MoveChild0, ++/*509437*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*509440*/ OPC_Scope, 22|128,4/*534*/, /*->509977*/ // 4 children in Scope ++/*509443*/ OPC_MoveChild0, ++/*509444*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*509447*/ OPC_Scope, 87, /*->509536*/ // 6 children in Scope ++/*509449*/ OPC_MoveChild0, ++/*509450*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*509453*/ OPC_CheckChild0Integer, 1, ++/*509455*/ OPC_CheckChild0Type, MVT::i32, ++/*509457*/ OPC_CheckChild1Integer, 1, ++/*509459*/ OPC_CheckChild1Type, MVT::i32, ++/*509461*/ OPC_CheckChild2Integer, 1, ++/*509463*/ OPC_CheckChild2Type, MVT::i32, ++/*509465*/ OPC_CheckChild3Integer, 1, ++/*509467*/ OPC_CheckChild3Type, MVT::i32, ++/*509469*/ OPC_MoveParent, ++/*509470*/ OPC_CheckChild1Same, 0, ++/*509472*/ OPC_MoveParent, ++/*509473*/ OPC_CheckChild1Same, 1, ++/*509475*/ OPC_MoveParent, ++/*509476*/ OPC_MoveChild1, ++/*509477*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*509480*/ OPC_CheckChild0Integer, 31, ++/*509482*/ OPC_CheckChild0Type, MVT::i32, ++/*509484*/ OPC_CheckChild1Integer, 31, ++/*509486*/ OPC_CheckChild1Type, MVT::i32, ++/*509488*/ OPC_CheckChild2Integer, 31, ++/*509490*/ OPC_CheckChild2Type, MVT::i32, ++/*509492*/ OPC_CheckChild3Integer, 31, ++/*509494*/ OPC_CheckChild3Type, MVT::i32, ++/*509496*/ OPC_CheckType, MVT::v4i32, ++/*509498*/ OPC_MoveParent, ++/*509499*/ OPC_MoveParent, ++/*509500*/ OPC_MoveParent, ++/*509501*/ OPC_MoveChild1, ++/*509502*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*509505*/ OPC_CheckChild0Integer, 1, ++/*509507*/ OPC_CheckChild0Type, MVT::i32, ++/*509509*/ OPC_CheckChild1Integer, 1, ++/*509511*/ OPC_CheckChild1Type, MVT::i32, ++/*509513*/ OPC_CheckChild2Integer, 1, ++/*509515*/ OPC_CheckChild2Type, MVT::i32, ++/*509517*/ OPC_CheckChild3Integer, 1, ++/*509519*/ OPC_CheckChild3Type, MVT::i32, ++/*509521*/ OPC_CheckType, MVT::v4i32, ++/*509523*/ OPC_MoveParent, ++/*509524*/ OPC_CheckType, MVT::v4i32, ++/*509526*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*509528*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a), LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*509536*/ /*Scope*/ 87, /*->509624*/ ++/*509537*/ OPC_CheckChild0Same, 0, ++/*509539*/ OPC_MoveChild1, ++/*509540*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*509543*/ OPC_CheckChild0Integer, 1, ++/*509545*/ OPC_CheckChild0Type, MVT::i32, ++/*509547*/ OPC_CheckChild1Integer, 1, ++/*509549*/ OPC_CheckChild1Type, MVT::i32, ++/*509551*/ OPC_CheckChild2Integer, 1, ++/*509553*/ OPC_CheckChild2Type, MVT::i32, ++/*509555*/ OPC_CheckChild3Integer, 1, ++/*509557*/ OPC_CheckChild3Type, MVT::i32, ++/*509559*/ OPC_MoveParent, ++/*509560*/ OPC_MoveParent, ++/*509561*/ OPC_CheckChild1Same, 1, ++/*509563*/ OPC_MoveParent, ++/*509564*/ OPC_MoveChild1, ++/*509565*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*509568*/ OPC_CheckChild0Integer, 31, ++/*509570*/ OPC_CheckChild0Type, MVT::i32, ++/*509572*/ OPC_CheckChild1Integer, 31, ++/*509574*/ OPC_CheckChild1Type, MVT::i32, ++/*509576*/ OPC_CheckChild2Integer, 31, ++/*509578*/ OPC_CheckChild2Type, MVT::i32, ++/*509580*/ OPC_CheckChild3Integer, 31, ++/*509582*/ OPC_CheckChild3Type, MVT::i32, ++/*509584*/ OPC_CheckType, MVT::v4i32, ++/*509586*/ OPC_MoveParent, ++/*509587*/ OPC_MoveParent, ++/*509588*/ OPC_MoveParent, ++/*509589*/ OPC_MoveChild1, ++/*509590*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*509593*/ OPC_CheckChild0Integer, 1, ++/*509595*/ OPC_CheckChild0Type, MVT::i32, ++/*509597*/ OPC_CheckChild1Integer, 1, ++/*509599*/ OPC_CheckChild1Type, MVT::i32, ++/*509601*/ OPC_CheckChild2Integer, 1, ++/*509603*/ OPC_CheckChild2Type, MVT::i32, ++/*509605*/ OPC_CheckChild3Integer, 1, ++/*509607*/ OPC_CheckChild3Type, MVT::i32, ++/*509609*/ OPC_CheckType, MVT::v4i32, ++/*509611*/ OPC_MoveParent, ++/*509612*/ OPC_CheckType, MVT::v4i32, ++/*509614*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*509616*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*509624*/ /*Scope*/ 87, /*->509712*/ ++/*509625*/ OPC_MoveChild0, ++/*509626*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*509629*/ OPC_CheckChild0Integer, 1, ++/*509631*/ OPC_CheckChild0Type, MVT::i32, ++/*509633*/ OPC_CheckChild1Integer, 1, ++/*509635*/ OPC_CheckChild1Type, MVT::i32, ++/*509637*/ OPC_CheckChild2Integer, 1, ++/*509639*/ OPC_CheckChild2Type, MVT::i32, ++/*509641*/ OPC_CheckChild3Integer, 1, ++/*509643*/ OPC_CheckChild3Type, MVT::i32, ++/*509645*/ OPC_MoveParent, ++/*509646*/ OPC_CheckChild1Same, 1, ++/*509648*/ OPC_MoveParent, ++/*509649*/ OPC_CheckChild1Same, 0, ++/*509651*/ OPC_MoveParent, ++/*509652*/ OPC_MoveChild1, ++/*509653*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*509656*/ OPC_CheckChild0Integer, 31, ++/*509658*/ OPC_CheckChild0Type, MVT::i32, ++/*509660*/ OPC_CheckChild1Integer, 31, ++/*509662*/ OPC_CheckChild1Type, MVT::i32, ++/*509664*/ OPC_CheckChild2Integer, 31, ++/*509666*/ OPC_CheckChild2Type, MVT::i32, ++/*509668*/ OPC_CheckChild3Integer, 31, ++/*509670*/ OPC_CheckChild3Type, MVT::i32, ++/*509672*/ OPC_CheckType, MVT::v4i32, ++/*509674*/ OPC_MoveParent, ++/*509675*/ OPC_MoveParent, ++/*509676*/ OPC_MoveParent, ++/*509677*/ OPC_MoveChild1, ++/*509678*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*509681*/ OPC_CheckChild0Integer, 1, ++/*509683*/ OPC_CheckChild0Type, MVT::i32, ++/*509685*/ OPC_CheckChild1Integer, 1, ++/*509687*/ OPC_CheckChild1Type, MVT::i32, ++/*509689*/ OPC_CheckChild2Integer, 1, ++/*509691*/ OPC_CheckChild2Type, MVT::i32, ++/*509693*/ OPC_CheckChild3Integer, 1, ++/*509695*/ OPC_CheckChild3Type, MVT::i32, ++/*509697*/ OPC_CheckType, MVT::v4i32, ++/*509699*/ OPC_MoveParent, ++/*509700*/ OPC_CheckType, MVT::v4i32, ++/*509702*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*509704*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b), LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*509712*/ /*Scope*/ 87, /*->509800*/ ++/*509713*/ OPC_CheckChild0Same, 1, ++/*509715*/ OPC_MoveChild1, ++/*509716*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*509719*/ OPC_CheckChild0Integer, 1, ++/*509721*/ OPC_CheckChild0Type, MVT::i32, ++/*509723*/ OPC_CheckChild1Integer, 1, ++/*509725*/ OPC_CheckChild1Type, MVT::i32, ++/*509727*/ OPC_CheckChild2Integer, 1, ++/*509729*/ OPC_CheckChild2Type, MVT::i32, ++/*509731*/ OPC_CheckChild3Integer, 1, ++/*509733*/ OPC_CheckChild3Type, MVT::i32, ++/*509735*/ OPC_MoveParent, ++/*509736*/ OPC_MoveParent, ++/*509737*/ OPC_CheckChild1Same, 0, ++/*509739*/ OPC_MoveParent, ++/*509740*/ OPC_MoveChild1, ++/*509741*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*509744*/ OPC_CheckChild0Integer, 31, ++/*509746*/ OPC_CheckChild0Type, MVT::i32, ++/*509748*/ OPC_CheckChild1Integer, 31, ++/*509750*/ OPC_CheckChild1Type, MVT::i32, ++/*509752*/ OPC_CheckChild2Integer, 31, ++/*509754*/ OPC_CheckChild2Type, MVT::i32, ++/*509756*/ OPC_CheckChild3Integer, 31, ++/*509758*/ OPC_CheckChild3Type, MVT::i32, ++/*509760*/ OPC_CheckType, MVT::v4i32, ++/*509762*/ OPC_MoveParent, ++/*509763*/ OPC_MoveParent, ++/*509764*/ OPC_MoveParent, ++/*509765*/ OPC_MoveChild1, ++/*509766*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*509769*/ OPC_CheckChild0Integer, 1, ++/*509771*/ OPC_CheckChild0Type, MVT::i32, ++/*509773*/ OPC_CheckChild1Integer, 1, ++/*509775*/ OPC_CheckChild1Type, MVT::i32, ++/*509777*/ OPC_CheckChild2Integer, 1, ++/*509779*/ OPC_CheckChild2Type, MVT::i32, ++/*509781*/ OPC_CheckChild3Integer, 1, ++/*509783*/ OPC_CheckChild3Type, MVT::i32, ++/*509785*/ OPC_CheckType, MVT::v4i32, ++/*509787*/ OPC_MoveParent, ++/*509788*/ OPC_CheckType, MVT::v4i32, ++/*509790*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*509792*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*509800*/ /*Scope*/ 87, /*->509888*/ ++/*509801*/ OPC_CheckChild0Same, 0, ++/*509803*/ OPC_CheckChild1Same, 1, ++/*509805*/ OPC_MoveParent, ++/*509806*/ OPC_MoveChild1, ++/*509807*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*509810*/ OPC_CheckChild0Integer, 1, ++/*509812*/ OPC_CheckChild0Type, MVT::i32, ++/*509814*/ OPC_CheckChild1Integer, 1, ++/*509816*/ OPC_CheckChild1Type, MVT::i32, ++/*509818*/ OPC_CheckChild2Integer, 1, ++/*509820*/ OPC_CheckChild2Type, MVT::i32, ++/*509822*/ OPC_CheckChild3Integer, 1, ++/*509824*/ OPC_CheckChild3Type, MVT::i32, ++/*509826*/ OPC_MoveParent, ++/*509827*/ OPC_MoveParent, ++/*509828*/ OPC_MoveChild1, ++/*509829*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*509832*/ OPC_CheckChild0Integer, 31, ++/*509834*/ OPC_CheckChild0Type, MVT::i32, ++/*509836*/ OPC_CheckChild1Integer, 31, ++/*509838*/ OPC_CheckChild1Type, MVT::i32, ++/*509840*/ OPC_CheckChild2Integer, 31, ++/*509842*/ OPC_CheckChild2Type, MVT::i32, ++/*509844*/ OPC_CheckChild3Integer, 31, ++/*509846*/ OPC_CheckChild3Type, MVT::i32, ++/*509848*/ OPC_CheckType, MVT::v4i32, ++/*509850*/ OPC_MoveParent, ++/*509851*/ OPC_MoveParent, ++/*509852*/ OPC_MoveParent, ++/*509853*/ OPC_MoveChild1, ++/*509854*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*509857*/ OPC_CheckChild0Integer, 1, ++/*509859*/ OPC_CheckChild0Type, MVT::i32, ++/*509861*/ OPC_CheckChild1Integer, 1, ++/*509863*/ OPC_CheckChild1Type, MVT::i32, ++/*509865*/ OPC_CheckChild2Integer, 1, ++/*509867*/ OPC_CheckChild2Type, MVT::i32, ++/*509869*/ OPC_CheckChild3Integer, 1, ++/*509871*/ OPC_CheckChild3Type, MVT::i32, ++/*509873*/ OPC_CheckType, MVT::v4i32, ++/*509875*/ OPC_MoveParent, ++/*509876*/ OPC_CheckType, MVT::v4i32, ++/*509878*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*509880*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*509888*/ /*Scope*/ 87, /*->509976*/ ++/*509889*/ OPC_CheckChild0Same, 1, ++/*509891*/ OPC_CheckChild1Same, 0, ++/*509893*/ OPC_MoveParent, ++/*509894*/ OPC_MoveChild1, ++/*509895*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*509898*/ OPC_CheckChild0Integer, 1, ++/*509900*/ OPC_CheckChild0Type, MVT::i32, ++/*509902*/ OPC_CheckChild1Integer, 1, ++/*509904*/ OPC_CheckChild1Type, MVT::i32, ++/*509906*/ OPC_CheckChild2Integer, 1, ++/*509908*/ OPC_CheckChild2Type, MVT::i32, ++/*509910*/ OPC_CheckChild3Integer, 1, ++/*509912*/ OPC_CheckChild3Type, MVT::i32, ++/*509914*/ OPC_MoveParent, ++/*509915*/ OPC_MoveParent, ++/*509916*/ OPC_MoveChild1, ++/*509917*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*509920*/ OPC_CheckChild0Integer, 31, ++/*509922*/ OPC_CheckChild0Type, MVT::i32, ++/*509924*/ OPC_CheckChild1Integer, 31, ++/*509926*/ OPC_CheckChild1Type, MVT::i32, ++/*509928*/ OPC_CheckChild2Integer, 31, ++/*509930*/ OPC_CheckChild2Type, MVT::i32, ++/*509932*/ OPC_CheckChild3Integer, 31, ++/*509934*/ OPC_CheckChild3Type, MVT::i32, ++/*509936*/ OPC_CheckType, MVT::v4i32, ++/*509938*/ OPC_MoveParent, ++/*509939*/ OPC_MoveParent, ++/*509940*/ OPC_MoveParent, ++/*509941*/ OPC_MoveChild1, ++/*509942*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*509945*/ OPC_CheckChild0Integer, 1, ++/*509947*/ OPC_CheckChild0Type, MVT::i32, ++/*509949*/ OPC_CheckChild1Integer, 1, ++/*509951*/ OPC_CheckChild1Type, MVT::i32, ++/*509953*/ OPC_CheckChild2Integer, 1, ++/*509955*/ OPC_CheckChild2Type, MVT::i32, ++/*509957*/ OPC_CheckChild3Integer, 1, ++/*509959*/ OPC_CheckChild3Type, MVT::i32, ++/*509961*/ OPC_CheckType, MVT::v4i32, ++/*509963*/ OPC_MoveParent, ++/*509964*/ OPC_CheckType, MVT::v4i32, ++/*509966*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*509968*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*509976*/ 0, /*End of Scope*/ ++/*509977*/ /*Scope*/ 52|128,1/*180*/, /*->510159*/ ++/*509979*/ OPC_CheckChild0Same, 1, ++/*509981*/ OPC_MoveChild1, ++/*509982*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*509985*/ OPC_Scope, 85, /*->510072*/ // 2 children in Scope ++/*509987*/ OPC_MoveChild0, ++/*509988*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*509991*/ OPC_CheckChild0Integer, 1, ++/*509993*/ OPC_CheckChild0Type, MVT::i32, ++/*509995*/ OPC_CheckChild1Integer, 1, ++/*509997*/ OPC_CheckChild1Type, MVT::i32, ++/*509999*/ OPC_CheckChild2Integer, 1, ++/*510001*/ OPC_CheckChild2Type, MVT::i32, ++/*510003*/ OPC_CheckChild3Integer, 1, ++/*510005*/ OPC_CheckChild3Type, MVT::i32, ++/*510007*/ OPC_MoveParent, ++/*510008*/ OPC_CheckChild1Same, 0, ++/*510010*/ OPC_MoveParent, ++/*510011*/ OPC_MoveParent, ++/*510012*/ OPC_MoveChild1, ++/*510013*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*510016*/ OPC_CheckChild0Integer, 31, ++/*510018*/ OPC_CheckChild0Type, MVT::i32, ++/*510020*/ OPC_CheckChild1Integer, 31, ++/*510022*/ OPC_CheckChild1Type, MVT::i32, ++/*510024*/ OPC_CheckChild2Integer, 31, ++/*510026*/ OPC_CheckChild2Type, MVT::i32, ++/*510028*/ OPC_CheckChild3Integer, 31, ++/*510030*/ OPC_CheckChild3Type, MVT::i32, ++/*510032*/ OPC_CheckType, MVT::v4i32, ++/*510034*/ OPC_MoveParent, ++/*510035*/ OPC_MoveParent, ++/*510036*/ OPC_MoveParent, ++/*510037*/ OPC_MoveChild1, ++/*510038*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*510041*/ OPC_CheckChild0Integer, 1, ++/*510043*/ OPC_CheckChild0Type, MVT::i32, ++/*510045*/ OPC_CheckChild1Integer, 1, ++/*510047*/ OPC_CheckChild1Type, MVT::i32, ++/*510049*/ OPC_CheckChild2Integer, 1, ++/*510051*/ OPC_CheckChild2Type, MVT::i32, ++/*510053*/ OPC_CheckChild3Integer, 1, ++/*510055*/ OPC_CheckChild3Type, MVT::i32, ++/*510057*/ OPC_CheckType, MVT::v4i32, ++/*510059*/ OPC_MoveParent, ++/*510060*/ OPC_CheckType, MVT::v4i32, ++/*510062*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*510064*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*510072*/ /*Scope*/ 85, /*->510158*/ ++/*510073*/ OPC_CheckChild0Same, 0, ++/*510075*/ OPC_MoveChild1, ++/*510076*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*510079*/ OPC_CheckChild0Integer, 1, ++/*510081*/ OPC_CheckChild0Type, MVT::i32, ++/*510083*/ OPC_CheckChild1Integer, 1, ++/*510085*/ OPC_CheckChild1Type, MVT::i32, ++/*510087*/ OPC_CheckChild2Integer, 1, ++/*510089*/ OPC_CheckChild2Type, MVT::i32, ++/*510091*/ OPC_CheckChild3Integer, 1, ++/*510093*/ OPC_CheckChild3Type, MVT::i32, ++/*510095*/ OPC_MoveParent, ++/*510096*/ OPC_MoveParent, ++/*510097*/ OPC_MoveParent, ++/*510098*/ OPC_MoveChild1, ++/*510099*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*510102*/ OPC_CheckChild0Integer, 31, ++/*510104*/ OPC_CheckChild0Type, MVT::i32, ++/*510106*/ OPC_CheckChild1Integer, 31, ++/*510108*/ OPC_CheckChild1Type, MVT::i32, ++/*510110*/ OPC_CheckChild2Integer, 31, ++/*510112*/ OPC_CheckChild2Type, MVT::i32, ++/*510114*/ OPC_CheckChild3Integer, 31, ++/*510116*/ OPC_CheckChild3Type, MVT::i32, ++/*510118*/ OPC_CheckType, MVT::v4i32, ++/*510120*/ OPC_MoveParent, ++/*510121*/ OPC_MoveParent, ++/*510122*/ OPC_MoveParent, ++/*510123*/ OPC_MoveChild1, ++/*510124*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*510127*/ OPC_CheckChild0Integer, 1, ++/*510129*/ OPC_CheckChild0Type, MVT::i32, ++/*510131*/ OPC_CheckChild1Integer, 1, ++/*510133*/ OPC_CheckChild1Type, MVT::i32, ++/*510135*/ OPC_CheckChild2Integer, 1, ++/*510137*/ OPC_CheckChild2Type, MVT::i32, ++/*510139*/ OPC_CheckChild3Integer, 1, ++/*510141*/ OPC_CheckChild3Type, MVT::i32, ++/*510143*/ OPC_CheckType, MVT::v4i32, ++/*510145*/ OPC_MoveParent, ++/*510146*/ OPC_CheckType, MVT::v4i32, ++/*510148*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*510150*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*510158*/ 0, /*End of Scope*/ ++/*510159*/ /*Scope*/ 52|128,1/*180*/, /*->510341*/ ++/*510161*/ OPC_CheckChild0Same, 0, ++/*510163*/ OPC_MoveChild1, ++/*510164*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*510167*/ OPC_Scope, 85, /*->510254*/ // 2 children in Scope ++/*510169*/ OPC_MoveChild0, ++/*510170*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*510173*/ OPC_CheckChild0Integer, 1, ++/*510175*/ OPC_CheckChild0Type, MVT::i32, ++/*510177*/ OPC_CheckChild1Integer, 1, ++/*510179*/ OPC_CheckChild1Type, MVT::i32, ++/*510181*/ OPC_CheckChild2Integer, 1, ++/*510183*/ OPC_CheckChild2Type, MVT::i32, ++/*510185*/ OPC_CheckChild3Integer, 1, ++/*510187*/ OPC_CheckChild3Type, MVT::i32, ++/*510189*/ OPC_MoveParent, ++/*510190*/ OPC_CheckChild1Same, 1, ++/*510192*/ OPC_MoveParent, ++/*510193*/ OPC_MoveParent, ++/*510194*/ OPC_MoveChild1, ++/*510195*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*510198*/ OPC_CheckChild0Integer, 31, ++/*510200*/ OPC_CheckChild0Type, MVT::i32, ++/*510202*/ OPC_CheckChild1Integer, 31, ++/*510204*/ OPC_CheckChild1Type, MVT::i32, ++/*510206*/ OPC_CheckChild2Integer, 31, ++/*510208*/ OPC_CheckChild2Type, MVT::i32, ++/*510210*/ OPC_CheckChild3Integer, 31, ++/*510212*/ OPC_CheckChild3Type, MVT::i32, ++/*510214*/ OPC_CheckType, MVT::v4i32, ++/*510216*/ OPC_MoveParent, ++/*510217*/ OPC_MoveParent, ++/*510218*/ OPC_MoveParent, ++/*510219*/ OPC_MoveChild1, ++/*510220*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*510223*/ OPC_CheckChild0Integer, 1, ++/*510225*/ OPC_CheckChild0Type, MVT::i32, ++/*510227*/ OPC_CheckChild1Integer, 1, ++/*510229*/ OPC_CheckChild1Type, MVT::i32, ++/*510231*/ OPC_CheckChild2Integer, 1, ++/*510233*/ OPC_CheckChild2Type, MVT::i32, ++/*510235*/ OPC_CheckChild3Integer, 1, ++/*510237*/ OPC_CheckChild3Type, MVT::i32, ++/*510239*/ OPC_CheckType, MVT::v4i32, ++/*510241*/ OPC_MoveParent, ++/*510242*/ OPC_CheckType, MVT::v4i32, ++/*510244*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*510246*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*510254*/ /*Scope*/ 85, /*->510340*/ ++/*510255*/ OPC_CheckChild0Same, 1, ++/*510257*/ OPC_MoveChild1, ++/*510258*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*510261*/ OPC_CheckChild0Integer, 1, ++/*510263*/ OPC_CheckChild0Type, MVT::i32, ++/*510265*/ OPC_CheckChild1Integer, 1, ++/*510267*/ OPC_CheckChild1Type, MVT::i32, ++/*510269*/ OPC_CheckChild2Integer, 1, ++/*510271*/ OPC_CheckChild2Type, MVT::i32, ++/*510273*/ OPC_CheckChild3Integer, 1, ++/*510275*/ OPC_CheckChild3Type, MVT::i32, ++/*510277*/ OPC_MoveParent, ++/*510278*/ OPC_MoveParent, ++/*510279*/ OPC_MoveParent, ++/*510280*/ OPC_MoveChild1, ++/*510281*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*510284*/ OPC_CheckChild0Integer, 31, ++/*510286*/ OPC_CheckChild0Type, MVT::i32, ++/*510288*/ OPC_CheckChild1Integer, 31, ++/*510290*/ OPC_CheckChild1Type, MVT::i32, ++/*510292*/ OPC_CheckChild2Integer, 31, ++/*510294*/ OPC_CheckChild2Type, MVT::i32, ++/*510296*/ OPC_CheckChild3Integer, 31, ++/*510298*/ OPC_CheckChild3Type, MVT::i32, ++/*510300*/ OPC_CheckType, MVT::v4i32, ++/*510302*/ OPC_MoveParent, ++/*510303*/ OPC_MoveParent, ++/*510304*/ OPC_MoveParent, ++/*510305*/ OPC_MoveChild1, ++/*510306*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*510309*/ OPC_CheckChild0Integer, 1, ++/*510311*/ OPC_CheckChild0Type, MVT::i32, ++/*510313*/ OPC_CheckChild1Integer, 1, ++/*510315*/ OPC_CheckChild1Type, MVT::i32, ++/*510317*/ OPC_CheckChild2Integer, 1, ++/*510319*/ OPC_CheckChild2Type, MVT::i32, ++/*510321*/ OPC_CheckChild3Integer, 1, ++/*510323*/ OPC_CheckChild3Type, MVT::i32, ++/*510325*/ OPC_CheckType, MVT::v4i32, ++/*510327*/ OPC_MoveParent, ++/*510328*/ OPC_CheckType, MVT::v4i32, ++/*510330*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*510332*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*510340*/ 0, /*End of Scope*/ ++/*510341*/ /*Scope*/ 33|128,1/*161*/, /*->510504*/ ++/*510343*/ OPC_MoveChild0, ++/*510344*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*510347*/ OPC_CheckChild0Integer, 1, ++/*510349*/ OPC_CheckChild0Type, MVT::i32, ++/*510351*/ OPC_CheckChild1Integer, 1, ++/*510353*/ OPC_CheckChild1Type, MVT::i32, ++/*510355*/ OPC_CheckChild2Integer, 1, ++/*510357*/ OPC_CheckChild2Type, MVT::i32, ++/*510359*/ OPC_CheckChild3Integer, 1, ++/*510361*/ OPC_CheckChild3Type, MVT::i32, ++/*510363*/ OPC_MoveParent, ++/*510364*/ OPC_MoveChild1, ++/*510365*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*510368*/ OPC_Scope, 66, /*->510436*/ // 2 children in Scope ++/*510370*/ OPC_CheckChild0Same, 0, ++/*510372*/ OPC_CheckChild1Same, 1, ++/*510374*/ OPC_MoveParent, ++/*510375*/ OPC_MoveParent, ++/*510376*/ OPC_MoveChild1, ++/*510377*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*510380*/ OPC_CheckChild0Integer, 31, ++/*510382*/ OPC_CheckChild0Type, MVT::i32, ++/*510384*/ OPC_CheckChild1Integer, 31, ++/*510386*/ OPC_CheckChild1Type, MVT::i32, ++/*510388*/ OPC_CheckChild2Integer, 31, ++/*510390*/ OPC_CheckChild2Type, MVT::i32, ++/*510392*/ OPC_CheckChild3Integer, 31, ++/*510394*/ OPC_CheckChild3Type, MVT::i32, ++/*510396*/ OPC_CheckType, MVT::v4i32, ++/*510398*/ OPC_MoveParent, ++/*510399*/ OPC_MoveParent, ++/*510400*/ OPC_MoveParent, ++/*510401*/ OPC_MoveChild1, ++/*510402*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*510405*/ OPC_CheckChild0Integer, 1, ++/*510407*/ OPC_CheckChild0Type, MVT::i32, ++/*510409*/ OPC_CheckChild1Integer, 1, ++/*510411*/ OPC_CheckChild1Type, MVT::i32, ++/*510413*/ OPC_CheckChild2Integer, 1, ++/*510415*/ OPC_CheckChild2Type, MVT::i32, ++/*510417*/ OPC_CheckChild3Integer, 1, ++/*510419*/ OPC_CheckChild3Type, MVT::i32, ++/*510421*/ OPC_CheckType, MVT::v4i32, ++/*510423*/ OPC_MoveParent, ++/*510424*/ OPC_CheckType, MVT::v4i32, ++/*510426*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*510428*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*510436*/ /*Scope*/ 66, /*->510503*/ ++/*510437*/ OPC_CheckChild0Same, 1, ++/*510439*/ OPC_CheckChild1Same, 0, ++/*510441*/ OPC_MoveParent, ++/*510442*/ OPC_MoveParent, ++/*510443*/ OPC_MoveChild1, ++/*510444*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*510447*/ OPC_CheckChild0Integer, 31, ++/*510449*/ OPC_CheckChild0Type, MVT::i32, ++/*510451*/ OPC_CheckChild1Integer, 31, ++/*510453*/ OPC_CheckChild1Type, MVT::i32, ++/*510455*/ OPC_CheckChild2Integer, 31, ++/*510457*/ OPC_CheckChild2Type, MVT::i32, ++/*510459*/ OPC_CheckChild3Integer, 31, ++/*510461*/ OPC_CheckChild3Type, MVT::i32, ++/*510463*/ OPC_CheckType, MVT::v4i32, ++/*510465*/ OPC_MoveParent, ++/*510466*/ OPC_MoveParent, ++/*510467*/ OPC_MoveParent, ++/*510468*/ OPC_MoveChild1, ++/*510469*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*510472*/ OPC_CheckChild0Integer, 1, ++/*510474*/ OPC_CheckChild0Type, MVT::i32, ++/*510476*/ OPC_CheckChild1Integer, 1, ++/*510478*/ OPC_CheckChild1Type, MVT::i32, ++/*510480*/ OPC_CheckChild2Integer, 1, ++/*510482*/ OPC_CheckChild2Type, MVT::i32, ++/*510484*/ OPC_CheckChild3Integer, 1, ++/*510486*/ OPC_CheckChild3Type, MVT::i32, ++/*510488*/ OPC_CheckType, MVT::v4i32, ++/*510490*/ OPC_MoveParent, ++/*510491*/ OPC_CheckType, MVT::v4i32, ++/*510493*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*510495*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*510503*/ 0, /*End of Scope*/ ++/*510504*/ 0, /*End of Scope*/ ++/*510505*/ 0, /*End of Scope*/ ++/*510506*/ /*Scope*/ 95|128,67/*8671*/, /*->519179*/ ++/*510508*/ OPC_MoveChild0, ++/*510509*/ OPC_SwitchOpcode /*2 cases */, 43|128,16/*2091*/, TARGET_VAL(ISD::BUILD_VECTOR),// ->512605 ++/*510514*/ OPC_CheckChild0Integer, 1, ++/*510516*/ OPC_CheckChild0Type, MVT::i32, ++/*510518*/ OPC_CheckChild1Integer, 1, ++/*510520*/ OPC_CheckChild1Type, MVT::i32, ++/*510522*/ OPC_CheckChild2Integer, 1, ++/*510524*/ OPC_CheckChild2Type, MVT::i32, ++/*510526*/ OPC_CheckChild3Integer, 1, ++/*510528*/ OPC_CheckChild3Type, MVT::i32, ++/*510530*/ OPC_MoveParent, ++/*510531*/ OPC_MoveChild1, ++/*510532*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*510535*/ OPC_RecordChild0, // #0 = $a ++/*510536*/ OPC_RecordChild1, // #1 = $b ++/*510537*/ OPC_MoveParent, ++/*510538*/ OPC_MoveParent, ++/*510539*/ OPC_MoveChild1, ++/*510540*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*510543*/ OPC_MoveChild0, ++/*510544*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*510547*/ OPC_Scope, 22|128,4/*534*/, /*->511084*/ // 7 children in Scope ++/*510550*/ OPC_MoveChild0, ++/*510551*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*510554*/ OPC_Scope, 87, /*->510643*/ // 6 children in Scope ++/*510556*/ OPC_MoveChild0, ++/*510557*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*510560*/ OPC_CheckChild0Integer, 1, ++/*510562*/ OPC_CheckChild0Type, MVT::i32, ++/*510564*/ OPC_CheckChild1Integer, 1, ++/*510566*/ OPC_CheckChild1Type, MVT::i32, ++/*510568*/ OPC_CheckChild2Integer, 1, ++/*510570*/ OPC_CheckChild2Type, MVT::i32, ++/*510572*/ OPC_CheckChild3Integer, 1, ++/*510574*/ OPC_CheckChild3Type, MVT::i32, ++/*510576*/ OPC_MoveParent, ++/*510577*/ OPC_CheckChild1Same, 0, ++/*510579*/ OPC_MoveParent, ++/*510580*/ OPC_CheckChild1Same, 1, ++/*510582*/ OPC_MoveParent, ++/*510583*/ OPC_MoveChild1, ++/*510584*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*510587*/ OPC_CheckChild0Integer, 31, ++/*510589*/ OPC_CheckChild0Type, MVT::i32, ++/*510591*/ OPC_CheckChild1Integer, 31, ++/*510593*/ OPC_CheckChild1Type, MVT::i32, ++/*510595*/ OPC_CheckChild2Integer, 31, ++/*510597*/ OPC_CheckChild2Type, MVT::i32, ++/*510599*/ OPC_CheckChild3Integer, 31, ++/*510601*/ OPC_CheckChild3Type, MVT::i32, ++/*510603*/ OPC_CheckType, MVT::v4i32, ++/*510605*/ OPC_MoveParent, ++/*510606*/ OPC_MoveParent, ++/*510607*/ OPC_MoveParent, ++/*510608*/ OPC_MoveChild1, ++/*510609*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*510612*/ OPC_CheckChild0Integer, 1, ++/*510614*/ OPC_CheckChild0Type, MVT::i32, ++/*510616*/ OPC_CheckChild1Integer, 1, ++/*510618*/ OPC_CheckChild1Type, MVT::i32, ++/*510620*/ OPC_CheckChild2Integer, 1, ++/*510622*/ OPC_CheckChild2Type, MVT::i32, ++/*510624*/ OPC_CheckChild3Integer, 1, ++/*510626*/ OPC_CheckChild3Type, MVT::i32, ++/*510628*/ OPC_CheckType, MVT::v4i32, ++/*510630*/ OPC_MoveParent, ++/*510631*/ OPC_CheckType, MVT::v4i32, ++/*510633*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*510635*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b)), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a), LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*510643*/ /*Scope*/ 87, /*->510731*/ ++/*510644*/ OPC_CheckChild0Same, 0, ++/*510646*/ OPC_MoveChild1, ++/*510647*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*510650*/ OPC_CheckChild0Integer, 1, ++/*510652*/ OPC_CheckChild0Type, MVT::i32, ++/*510654*/ OPC_CheckChild1Integer, 1, ++/*510656*/ OPC_CheckChild1Type, MVT::i32, ++/*510658*/ OPC_CheckChild2Integer, 1, ++/*510660*/ OPC_CheckChild2Type, MVT::i32, ++/*510662*/ OPC_CheckChild3Integer, 1, ++/*510664*/ OPC_CheckChild3Type, MVT::i32, ++/*510666*/ OPC_MoveParent, ++/*510667*/ OPC_MoveParent, ++/*510668*/ OPC_CheckChild1Same, 1, ++/*510670*/ OPC_MoveParent, ++/*510671*/ OPC_MoveChild1, ++/*510672*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*510675*/ OPC_CheckChild0Integer, 31, ++/*510677*/ OPC_CheckChild0Type, MVT::i32, ++/*510679*/ OPC_CheckChild1Integer, 31, ++/*510681*/ OPC_CheckChild1Type, MVT::i32, ++/*510683*/ OPC_CheckChild2Integer, 31, ++/*510685*/ OPC_CheckChild2Type, MVT::i32, ++/*510687*/ OPC_CheckChild3Integer, 31, ++/*510689*/ OPC_CheckChild3Type, MVT::i32, ++/*510691*/ OPC_CheckType, MVT::v4i32, ++/*510693*/ OPC_MoveParent, ++/*510694*/ OPC_MoveParent, ++/*510695*/ OPC_MoveParent, ++/*510696*/ OPC_MoveChild1, ++/*510697*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*510700*/ OPC_CheckChild0Integer, 1, ++/*510702*/ OPC_CheckChild0Type, MVT::i32, ++/*510704*/ OPC_CheckChild1Integer, 1, ++/*510706*/ OPC_CheckChild1Type, MVT::i32, ++/*510708*/ OPC_CheckChild2Integer, 1, ++/*510710*/ OPC_CheckChild2Type, MVT::i32, ++/*510712*/ OPC_CheckChild3Integer, 1, ++/*510714*/ OPC_CheckChild3Type, MVT::i32, ++/*510716*/ OPC_CheckType, MVT::v4i32, ++/*510718*/ OPC_MoveParent, ++/*510719*/ OPC_CheckType, MVT::v4i32, ++/*510721*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*510723*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b)), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*510731*/ /*Scope*/ 87, /*->510819*/ ++/*510732*/ OPC_MoveChild0, ++/*510733*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*510736*/ OPC_CheckChild0Integer, 1, ++/*510738*/ OPC_CheckChild0Type, MVT::i32, ++/*510740*/ OPC_CheckChild1Integer, 1, ++/*510742*/ OPC_CheckChild1Type, MVT::i32, ++/*510744*/ OPC_CheckChild2Integer, 1, ++/*510746*/ OPC_CheckChild2Type, MVT::i32, ++/*510748*/ OPC_CheckChild3Integer, 1, ++/*510750*/ OPC_CheckChild3Type, MVT::i32, ++/*510752*/ OPC_MoveParent, ++/*510753*/ OPC_CheckChild1Same, 1, ++/*510755*/ OPC_MoveParent, ++/*510756*/ OPC_CheckChild1Same, 0, ++/*510758*/ OPC_MoveParent, ++/*510759*/ OPC_MoveChild1, ++/*510760*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*510763*/ OPC_CheckChild0Integer, 31, ++/*510765*/ OPC_CheckChild0Type, MVT::i32, ++/*510767*/ OPC_CheckChild1Integer, 31, ++/*510769*/ OPC_CheckChild1Type, MVT::i32, ++/*510771*/ OPC_CheckChild2Integer, 31, ++/*510773*/ OPC_CheckChild2Type, MVT::i32, ++/*510775*/ OPC_CheckChild3Integer, 31, ++/*510777*/ OPC_CheckChild3Type, MVT::i32, ++/*510779*/ OPC_CheckType, MVT::v4i32, ++/*510781*/ OPC_MoveParent, ++/*510782*/ OPC_MoveParent, ++/*510783*/ OPC_MoveParent, ++/*510784*/ OPC_MoveChild1, ++/*510785*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*510788*/ OPC_CheckChild0Integer, 1, ++/*510790*/ OPC_CheckChild0Type, MVT::i32, ++/*510792*/ OPC_CheckChild1Integer, 1, ++/*510794*/ OPC_CheckChild1Type, MVT::i32, ++/*510796*/ OPC_CheckChild2Integer, 1, ++/*510798*/ OPC_CheckChild2Type, MVT::i32, ++/*510800*/ OPC_CheckChild3Integer, 1, ++/*510802*/ OPC_CheckChild3Type, MVT::i32, ++/*510804*/ OPC_CheckType, MVT::v4i32, ++/*510806*/ OPC_MoveParent, ++/*510807*/ OPC_CheckType, MVT::v4i32, ++/*510809*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*510811*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b)), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b), LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*510819*/ /*Scope*/ 87, /*->510907*/ ++/*510820*/ OPC_CheckChild0Same, 1, ++/*510822*/ OPC_MoveChild1, ++/*510823*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*510826*/ OPC_CheckChild0Integer, 1, ++/*510828*/ OPC_CheckChild0Type, MVT::i32, ++/*510830*/ OPC_CheckChild1Integer, 1, ++/*510832*/ OPC_CheckChild1Type, MVT::i32, ++/*510834*/ OPC_CheckChild2Integer, 1, ++/*510836*/ OPC_CheckChild2Type, MVT::i32, ++/*510838*/ OPC_CheckChild3Integer, 1, ++/*510840*/ OPC_CheckChild3Type, MVT::i32, ++/*510842*/ OPC_MoveParent, ++/*510843*/ OPC_MoveParent, ++/*510844*/ OPC_CheckChild1Same, 0, ++/*510846*/ OPC_MoveParent, ++/*510847*/ OPC_MoveChild1, ++/*510848*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*510851*/ OPC_CheckChild0Integer, 31, ++/*510853*/ OPC_CheckChild0Type, MVT::i32, ++/*510855*/ OPC_CheckChild1Integer, 31, ++/*510857*/ OPC_CheckChild1Type, MVT::i32, ++/*510859*/ OPC_CheckChild2Integer, 31, ++/*510861*/ OPC_CheckChild2Type, MVT::i32, ++/*510863*/ OPC_CheckChild3Integer, 31, ++/*510865*/ OPC_CheckChild3Type, MVT::i32, ++/*510867*/ OPC_CheckType, MVT::v4i32, ++/*510869*/ OPC_MoveParent, ++/*510870*/ OPC_MoveParent, ++/*510871*/ OPC_MoveParent, ++/*510872*/ OPC_MoveChild1, ++/*510873*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*510876*/ OPC_CheckChild0Integer, 1, ++/*510878*/ OPC_CheckChild0Type, MVT::i32, ++/*510880*/ OPC_CheckChild1Integer, 1, ++/*510882*/ OPC_CheckChild1Type, MVT::i32, ++/*510884*/ OPC_CheckChild2Integer, 1, ++/*510886*/ OPC_CheckChild2Type, MVT::i32, ++/*510888*/ OPC_CheckChild3Integer, 1, ++/*510890*/ OPC_CheckChild3Type, MVT::i32, ++/*510892*/ OPC_CheckType, MVT::v4i32, ++/*510894*/ OPC_MoveParent, ++/*510895*/ OPC_CheckType, MVT::v4i32, ++/*510897*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*510899*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b)), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*510907*/ /*Scope*/ 87, /*->510995*/ ++/*510908*/ OPC_CheckChild0Same, 0, ++/*510910*/ OPC_CheckChild1Same, 1, ++/*510912*/ OPC_MoveParent, ++/*510913*/ OPC_MoveChild1, ++/*510914*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*510917*/ OPC_CheckChild0Integer, 1, ++/*510919*/ OPC_CheckChild0Type, MVT::i32, ++/*510921*/ OPC_CheckChild1Integer, 1, ++/*510923*/ OPC_CheckChild1Type, MVT::i32, ++/*510925*/ OPC_CheckChild2Integer, 1, ++/*510927*/ OPC_CheckChild2Type, MVT::i32, ++/*510929*/ OPC_CheckChild3Integer, 1, ++/*510931*/ OPC_CheckChild3Type, MVT::i32, ++/*510933*/ OPC_MoveParent, ++/*510934*/ OPC_MoveParent, ++/*510935*/ OPC_MoveChild1, ++/*510936*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*510939*/ OPC_CheckChild0Integer, 31, ++/*510941*/ OPC_CheckChild0Type, MVT::i32, ++/*510943*/ OPC_CheckChild1Integer, 31, ++/*510945*/ OPC_CheckChild1Type, MVT::i32, ++/*510947*/ OPC_CheckChild2Integer, 31, ++/*510949*/ OPC_CheckChild2Type, MVT::i32, ++/*510951*/ OPC_CheckChild3Integer, 31, ++/*510953*/ OPC_CheckChild3Type, MVT::i32, ++/*510955*/ OPC_CheckType, MVT::v4i32, ++/*510957*/ OPC_MoveParent, ++/*510958*/ OPC_MoveParent, ++/*510959*/ OPC_MoveParent, ++/*510960*/ OPC_MoveChild1, ++/*510961*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*510964*/ OPC_CheckChild0Integer, 1, ++/*510966*/ OPC_CheckChild0Type, MVT::i32, ++/*510968*/ OPC_CheckChild1Integer, 1, ++/*510970*/ OPC_CheckChild1Type, MVT::i32, ++/*510972*/ OPC_CheckChild2Integer, 1, ++/*510974*/ OPC_CheckChild2Type, MVT::i32, ++/*510976*/ OPC_CheckChild3Integer, 1, ++/*510978*/ OPC_CheckChild3Type, MVT::i32, ++/*510980*/ OPC_CheckType, MVT::v4i32, ++/*510982*/ OPC_MoveParent, ++/*510983*/ OPC_CheckType, MVT::v4i32, ++/*510985*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*510987*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b)), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*510995*/ /*Scope*/ 87, /*->511083*/ ++/*510996*/ OPC_CheckChild0Same, 1, ++/*510998*/ OPC_CheckChild1Same, 0, ++/*511000*/ OPC_MoveParent, ++/*511001*/ OPC_MoveChild1, ++/*511002*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*511005*/ OPC_CheckChild0Integer, 1, ++/*511007*/ OPC_CheckChild0Type, MVT::i32, ++/*511009*/ OPC_CheckChild1Integer, 1, ++/*511011*/ OPC_CheckChild1Type, MVT::i32, ++/*511013*/ OPC_CheckChild2Integer, 1, ++/*511015*/ OPC_CheckChild2Type, MVT::i32, ++/*511017*/ OPC_CheckChild3Integer, 1, ++/*511019*/ OPC_CheckChild3Type, MVT::i32, ++/*511021*/ OPC_MoveParent, ++/*511022*/ OPC_MoveParent, ++/*511023*/ OPC_MoveChild1, ++/*511024*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*511027*/ OPC_CheckChild0Integer, 31, ++/*511029*/ OPC_CheckChild0Type, MVT::i32, ++/*511031*/ OPC_CheckChild1Integer, 31, ++/*511033*/ OPC_CheckChild1Type, MVT::i32, ++/*511035*/ OPC_CheckChild2Integer, 31, ++/*511037*/ OPC_CheckChild2Type, MVT::i32, ++/*511039*/ OPC_CheckChild3Integer, 31, ++/*511041*/ OPC_CheckChild3Type, MVT::i32, ++/*511043*/ OPC_CheckType, MVT::v4i32, ++/*511045*/ OPC_MoveParent, ++/*511046*/ OPC_MoveParent, ++/*511047*/ OPC_MoveParent, ++/*511048*/ OPC_MoveChild1, ++/*511049*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*511052*/ OPC_CheckChild0Integer, 1, ++/*511054*/ OPC_CheckChild0Type, MVT::i32, ++/*511056*/ OPC_CheckChild1Integer, 1, ++/*511058*/ OPC_CheckChild1Type, MVT::i32, ++/*511060*/ OPC_CheckChild2Integer, 1, ++/*511062*/ OPC_CheckChild2Type, MVT::i32, ++/*511064*/ OPC_CheckChild3Integer, 1, ++/*511066*/ OPC_CheckChild3Type, MVT::i32, ++/*511068*/ OPC_CheckType, MVT::v4i32, ++/*511070*/ OPC_MoveParent, ++/*511071*/ OPC_CheckType, MVT::v4i32, ++/*511073*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*511075*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b)), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*511083*/ 0, /*End of Scope*/ ++/*511084*/ /*Scope*/ 52|128,1/*180*/, /*->511266*/ ++/*511086*/ OPC_CheckChild0Same, 1, ++/*511088*/ OPC_MoveChild1, ++/*511089*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*511092*/ OPC_Scope, 85, /*->511179*/ // 2 children in Scope ++/*511094*/ OPC_MoveChild0, ++/*511095*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*511098*/ OPC_CheckChild0Integer, 1, ++/*511100*/ OPC_CheckChild0Type, MVT::i32, ++/*511102*/ OPC_CheckChild1Integer, 1, ++/*511104*/ OPC_CheckChild1Type, MVT::i32, ++/*511106*/ OPC_CheckChild2Integer, 1, ++/*511108*/ OPC_CheckChild2Type, MVT::i32, ++/*511110*/ OPC_CheckChild3Integer, 1, ++/*511112*/ OPC_CheckChild3Type, MVT::i32, ++/*511114*/ OPC_MoveParent, ++/*511115*/ OPC_CheckChild1Same, 0, ++/*511117*/ OPC_MoveParent, ++/*511118*/ OPC_MoveParent, ++/*511119*/ OPC_MoveChild1, ++/*511120*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*511123*/ OPC_CheckChild0Integer, 31, ++/*511125*/ OPC_CheckChild0Type, MVT::i32, ++/*511127*/ OPC_CheckChild1Integer, 31, ++/*511129*/ OPC_CheckChild1Type, MVT::i32, ++/*511131*/ OPC_CheckChild2Integer, 31, ++/*511133*/ OPC_CheckChild2Type, MVT::i32, ++/*511135*/ OPC_CheckChild3Integer, 31, ++/*511137*/ OPC_CheckChild3Type, MVT::i32, ++/*511139*/ OPC_CheckType, MVT::v4i32, ++/*511141*/ OPC_MoveParent, ++/*511142*/ OPC_MoveParent, ++/*511143*/ OPC_MoveParent, ++/*511144*/ OPC_MoveChild1, ++/*511145*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*511148*/ OPC_CheckChild0Integer, 1, ++/*511150*/ OPC_CheckChild0Type, MVT::i32, ++/*511152*/ OPC_CheckChild1Integer, 1, ++/*511154*/ OPC_CheckChild1Type, MVT::i32, ++/*511156*/ OPC_CheckChild2Integer, 1, ++/*511158*/ OPC_CheckChild2Type, MVT::i32, ++/*511160*/ OPC_CheckChild3Integer, 1, ++/*511162*/ OPC_CheckChild3Type, MVT::i32, ++/*511164*/ OPC_CheckType, MVT::v4i32, ++/*511166*/ OPC_MoveParent, ++/*511167*/ OPC_CheckType, MVT::v4i32, ++/*511169*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*511171*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b)), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*511179*/ /*Scope*/ 85, /*->511265*/ ++/*511180*/ OPC_CheckChild0Same, 0, ++/*511182*/ OPC_MoveChild1, ++/*511183*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*511186*/ OPC_CheckChild0Integer, 1, ++/*511188*/ OPC_CheckChild0Type, MVT::i32, ++/*511190*/ OPC_CheckChild1Integer, 1, ++/*511192*/ OPC_CheckChild1Type, MVT::i32, ++/*511194*/ OPC_CheckChild2Integer, 1, ++/*511196*/ OPC_CheckChild2Type, MVT::i32, ++/*511198*/ OPC_CheckChild3Integer, 1, ++/*511200*/ OPC_CheckChild3Type, MVT::i32, ++/*511202*/ OPC_MoveParent, ++/*511203*/ OPC_MoveParent, ++/*511204*/ OPC_MoveParent, ++/*511205*/ OPC_MoveChild1, ++/*511206*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*511209*/ OPC_CheckChild0Integer, 31, ++/*511211*/ OPC_CheckChild0Type, MVT::i32, ++/*511213*/ OPC_CheckChild1Integer, 31, ++/*511215*/ OPC_CheckChild1Type, MVT::i32, ++/*511217*/ OPC_CheckChild2Integer, 31, ++/*511219*/ OPC_CheckChild2Type, MVT::i32, ++/*511221*/ OPC_CheckChild3Integer, 31, ++/*511223*/ OPC_CheckChild3Type, MVT::i32, ++/*511225*/ OPC_CheckType, MVT::v4i32, ++/*511227*/ OPC_MoveParent, ++/*511228*/ OPC_MoveParent, ++/*511229*/ OPC_MoveParent, ++/*511230*/ OPC_MoveChild1, ++/*511231*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*511234*/ OPC_CheckChild0Integer, 1, ++/*511236*/ OPC_CheckChild0Type, MVT::i32, ++/*511238*/ OPC_CheckChild1Integer, 1, ++/*511240*/ OPC_CheckChild1Type, MVT::i32, ++/*511242*/ OPC_CheckChild2Integer, 1, ++/*511244*/ OPC_CheckChild2Type, MVT::i32, ++/*511246*/ OPC_CheckChild3Integer, 1, ++/*511248*/ OPC_CheckChild3Type, MVT::i32, ++/*511250*/ OPC_CheckType, MVT::v4i32, ++/*511252*/ OPC_MoveParent, ++/*511253*/ OPC_CheckType, MVT::v4i32, ++/*511255*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*511257*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b)), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*511265*/ 0, /*End of Scope*/ ++/*511266*/ /*Scope*/ 52|128,1/*180*/, /*->511448*/ ++/*511268*/ OPC_CheckChild0Same, 0, ++/*511270*/ OPC_MoveChild1, ++/*511271*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*511274*/ OPC_Scope, 85, /*->511361*/ // 2 children in Scope ++/*511276*/ OPC_MoveChild0, ++/*511277*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*511280*/ OPC_CheckChild0Integer, 1, ++/*511282*/ OPC_CheckChild0Type, MVT::i32, ++/*511284*/ OPC_CheckChild1Integer, 1, ++/*511286*/ OPC_CheckChild1Type, MVT::i32, ++/*511288*/ OPC_CheckChild2Integer, 1, ++/*511290*/ OPC_CheckChild2Type, MVT::i32, ++/*511292*/ OPC_CheckChild3Integer, 1, ++/*511294*/ OPC_CheckChild3Type, MVT::i32, ++/*511296*/ OPC_MoveParent, ++/*511297*/ OPC_CheckChild1Same, 1, ++/*511299*/ OPC_MoveParent, ++/*511300*/ OPC_MoveParent, ++/*511301*/ OPC_MoveChild1, ++/*511302*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*511305*/ OPC_CheckChild0Integer, 31, ++/*511307*/ OPC_CheckChild0Type, MVT::i32, ++/*511309*/ OPC_CheckChild1Integer, 31, ++/*511311*/ OPC_CheckChild1Type, MVT::i32, ++/*511313*/ OPC_CheckChild2Integer, 31, ++/*511315*/ OPC_CheckChild2Type, MVT::i32, ++/*511317*/ OPC_CheckChild3Integer, 31, ++/*511319*/ OPC_CheckChild3Type, MVT::i32, ++/*511321*/ OPC_CheckType, MVT::v4i32, ++/*511323*/ OPC_MoveParent, ++/*511324*/ OPC_MoveParent, ++/*511325*/ OPC_MoveParent, ++/*511326*/ OPC_MoveChild1, ++/*511327*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*511330*/ OPC_CheckChild0Integer, 1, ++/*511332*/ OPC_CheckChild0Type, MVT::i32, ++/*511334*/ OPC_CheckChild1Integer, 1, ++/*511336*/ OPC_CheckChild1Type, MVT::i32, ++/*511338*/ OPC_CheckChild2Integer, 1, ++/*511340*/ OPC_CheckChild2Type, MVT::i32, ++/*511342*/ OPC_CheckChild3Integer, 1, ++/*511344*/ OPC_CheckChild3Type, MVT::i32, ++/*511346*/ OPC_CheckType, MVT::v4i32, ++/*511348*/ OPC_MoveParent, ++/*511349*/ OPC_CheckType, MVT::v4i32, ++/*511351*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*511353*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b)), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*511361*/ /*Scope*/ 85, /*->511447*/ ++/*511362*/ OPC_CheckChild0Same, 1, ++/*511364*/ OPC_MoveChild1, ++/*511365*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*511368*/ OPC_CheckChild0Integer, 1, ++/*511370*/ OPC_CheckChild0Type, MVT::i32, ++/*511372*/ OPC_CheckChild1Integer, 1, ++/*511374*/ OPC_CheckChild1Type, MVT::i32, ++/*511376*/ OPC_CheckChild2Integer, 1, ++/*511378*/ OPC_CheckChild2Type, MVT::i32, ++/*511380*/ OPC_CheckChild3Integer, 1, ++/*511382*/ OPC_CheckChild3Type, MVT::i32, ++/*511384*/ OPC_MoveParent, ++/*511385*/ OPC_MoveParent, ++/*511386*/ OPC_MoveParent, ++/*511387*/ OPC_MoveChild1, ++/*511388*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*511391*/ OPC_CheckChild0Integer, 31, ++/*511393*/ OPC_CheckChild0Type, MVT::i32, ++/*511395*/ OPC_CheckChild1Integer, 31, ++/*511397*/ OPC_CheckChild1Type, MVT::i32, ++/*511399*/ OPC_CheckChild2Integer, 31, ++/*511401*/ OPC_CheckChild2Type, MVT::i32, ++/*511403*/ OPC_CheckChild3Integer, 31, ++/*511405*/ OPC_CheckChild3Type, MVT::i32, ++/*511407*/ OPC_CheckType, MVT::v4i32, ++/*511409*/ OPC_MoveParent, ++/*511410*/ OPC_MoveParent, ++/*511411*/ OPC_MoveParent, ++/*511412*/ OPC_MoveChild1, ++/*511413*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*511416*/ OPC_CheckChild0Integer, 1, ++/*511418*/ OPC_CheckChild0Type, MVT::i32, ++/*511420*/ OPC_CheckChild1Integer, 1, ++/*511422*/ OPC_CheckChild1Type, MVT::i32, ++/*511424*/ OPC_CheckChild2Integer, 1, ++/*511426*/ OPC_CheckChild2Type, MVT::i32, ++/*511428*/ OPC_CheckChild3Integer, 1, ++/*511430*/ OPC_CheckChild3Type, MVT::i32, ++/*511432*/ OPC_CheckType, MVT::v4i32, ++/*511434*/ OPC_MoveParent, ++/*511435*/ OPC_CheckType, MVT::v4i32, ++/*511437*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*511439*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b)), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*511447*/ 0, /*End of Scope*/ ++/*511448*/ /*Scope*/ 115|128,4/*627*/, /*->512077*/ ++/*511450*/ OPC_MoveChild0, ++/*511451*/ OPC_SwitchOpcode /*2 cases */, 87, TARGET_VAL(ISD::BUILD_VECTOR),// ->511542 ++/*511455*/ OPC_CheckChild0Integer, 1, ++/*511457*/ OPC_CheckChild0Type, MVT::i32, ++/*511459*/ OPC_CheckChild1Integer, 1, ++/*511461*/ OPC_CheckChild1Type, MVT::i32, ++/*511463*/ OPC_CheckChild2Integer, 1, ++/*511465*/ OPC_CheckChild2Type, MVT::i32, ++/*511467*/ OPC_CheckChild3Integer, 1, ++/*511469*/ OPC_CheckChild3Type, MVT::i32, ++/*511471*/ OPC_MoveParent, ++/*511472*/ OPC_MoveChild1, ++/*511473*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*511476*/ OPC_CheckChild0Same, 1, ++/*511478*/ OPC_CheckChild1Same, 0, ++/*511480*/ OPC_MoveParent, ++/*511481*/ OPC_MoveParent, ++/*511482*/ OPC_MoveChild1, ++/*511483*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*511486*/ OPC_CheckChild0Integer, 31, ++/*511488*/ OPC_CheckChild0Type, MVT::i32, ++/*511490*/ OPC_CheckChild1Integer, 31, ++/*511492*/ OPC_CheckChild1Type, MVT::i32, ++/*511494*/ OPC_CheckChild2Integer, 31, ++/*511496*/ OPC_CheckChild2Type, MVT::i32, ++/*511498*/ OPC_CheckChild3Integer, 31, ++/*511500*/ OPC_CheckChild3Type, MVT::i32, ++/*511502*/ OPC_CheckType, MVT::v4i32, ++/*511504*/ OPC_MoveParent, ++/*511505*/ OPC_MoveParent, ++/*511506*/ OPC_MoveParent, ++/*511507*/ OPC_MoveChild1, ++/*511508*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*511511*/ OPC_CheckChild0Integer, 1, ++/*511513*/ OPC_CheckChild0Type, MVT::i32, ++/*511515*/ OPC_CheckChild1Integer, 1, ++/*511517*/ OPC_CheckChild1Type, MVT::i32, ++/*511519*/ OPC_CheckChild2Integer, 1, ++/*511521*/ OPC_CheckChild2Type, MVT::i32, ++/*511523*/ OPC_CheckChild3Integer, 1, ++/*511525*/ OPC_CheckChild3Type, MVT::i32, ++/*511527*/ OPC_CheckType, MVT::v4i32, ++/*511529*/ OPC_MoveParent, ++/*511530*/ OPC_CheckType, MVT::v4i32, ++/*511532*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*511534*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b)), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*511542*/ /*SwitchOpcode*/ 18|128,4/*530*/, TARGET_VAL(ISD::ADD),// ->512076 ++/*511546*/ OPC_Scope, 87, /*->511635*/ // 6 children in Scope ++/*511548*/ OPC_MoveChild0, ++/*511549*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*511552*/ OPC_CheckChild0Integer, 1, ++/*511554*/ OPC_CheckChild0Type, MVT::i32, ++/*511556*/ OPC_CheckChild1Integer, 1, ++/*511558*/ OPC_CheckChild1Type, MVT::i32, ++/*511560*/ OPC_CheckChild2Integer, 1, ++/*511562*/ OPC_CheckChild2Type, MVT::i32, ++/*511564*/ OPC_CheckChild3Integer, 1, ++/*511566*/ OPC_CheckChild3Type, MVT::i32, ++/*511568*/ OPC_MoveParent, ++/*511569*/ OPC_CheckChild1Same, 1, ++/*511571*/ OPC_MoveParent, ++/*511572*/ OPC_CheckChild1Same, 0, ++/*511574*/ OPC_MoveParent, ++/*511575*/ OPC_MoveChild1, ++/*511576*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*511579*/ OPC_CheckChild0Integer, 31, ++/*511581*/ OPC_CheckChild0Type, MVT::i32, ++/*511583*/ OPC_CheckChild1Integer, 31, ++/*511585*/ OPC_CheckChild1Type, MVT::i32, ++/*511587*/ OPC_CheckChild2Integer, 31, ++/*511589*/ OPC_CheckChild2Type, MVT::i32, ++/*511591*/ OPC_CheckChild3Integer, 31, ++/*511593*/ OPC_CheckChild3Type, MVT::i32, ++/*511595*/ OPC_CheckType, MVT::v4i32, ++/*511597*/ OPC_MoveParent, ++/*511598*/ OPC_MoveParent, ++/*511599*/ OPC_MoveParent, ++/*511600*/ OPC_MoveChild1, ++/*511601*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*511604*/ OPC_CheckChild0Integer, 1, ++/*511606*/ OPC_CheckChild0Type, MVT::i32, ++/*511608*/ OPC_CheckChild1Integer, 1, ++/*511610*/ OPC_CheckChild1Type, MVT::i32, ++/*511612*/ OPC_CheckChild2Integer, 1, ++/*511614*/ OPC_CheckChild2Type, MVT::i32, ++/*511616*/ OPC_CheckChild3Integer, 1, ++/*511618*/ OPC_CheckChild3Type, MVT::i32, ++/*511620*/ OPC_CheckType, MVT::v4i32, ++/*511622*/ OPC_MoveParent, ++/*511623*/ OPC_CheckType, MVT::v4i32, ++/*511625*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*511627*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a)), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a), LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*511635*/ /*Scope*/ 87, /*->511723*/ ++/*511636*/ OPC_CheckChild0Same, 1, ++/*511638*/ OPC_MoveChild1, ++/*511639*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*511642*/ OPC_CheckChild0Integer, 1, ++/*511644*/ OPC_CheckChild0Type, MVT::i32, ++/*511646*/ OPC_CheckChild1Integer, 1, ++/*511648*/ OPC_CheckChild1Type, MVT::i32, ++/*511650*/ OPC_CheckChild2Integer, 1, ++/*511652*/ OPC_CheckChild2Type, MVT::i32, ++/*511654*/ OPC_CheckChild3Integer, 1, ++/*511656*/ OPC_CheckChild3Type, MVT::i32, ++/*511658*/ OPC_MoveParent, ++/*511659*/ OPC_MoveParent, ++/*511660*/ OPC_CheckChild1Same, 0, ++/*511662*/ OPC_MoveParent, ++/*511663*/ OPC_MoveChild1, ++/*511664*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*511667*/ OPC_CheckChild0Integer, 31, ++/*511669*/ OPC_CheckChild0Type, MVT::i32, ++/*511671*/ OPC_CheckChild1Integer, 31, ++/*511673*/ OPC_CheckChild1Type, MVT::i32, ++/*511675*/ OPC_CheckChild2Integer, 31, ++/*511677*/ OPC_CheckChild2Type, MVT::i32, ++/*511679*/ OPC_CheckChild3Integer, 31, ++/*511681*/ OPC_CheckChild3Type, MVT::i32, ++/*511683*/ OPC_CheckType, MVT::v4i32, ++/*511685*/ OPC_MoveParent, ++/*511686*/ OPC_MoveParent, ++/*511687*/ OPC_MoveParent, ++/*511688*/ OPC_MoveChild1, ++/*511689*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*511692*/ OPC_CheckChild0Integer, 1, ++/*511694*/ OPC_CheckChild0Type, MVT::i32, ++/*511696*/ OPC_CheckChild1Integer, 1, ++/*511698*/ OPC_CheckChild1Type, MVT::i32, ++/*511700*/ OPC_CheckChild2Integer, 1, ++/*511702*/ OPC_CheckChild2Type, MVT::i32, ++/*511704*/ OPC_CheckChild3Integer, 1, ++/*511706*/ OPC_CheckChild3Type, MVT::i32, ++/*511708*/ OPC_CheckType, MVT::v4i32, ++/*511710*/ OPC_MoveParent, ++/*511711*/ OPC_CheckType, MVT::v4i32, ++/*511713*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*511715*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a)), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*511723*/ /*Scope*/ 87, /*->511811*/ ++/*511724*/ OPC_MoveChild0, ++/*511725*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*511728*/ OPC_CheckChild0Integer, 1, ++/*511730*/ OPC_CheckChild0Type, MVT::i32, ++/*511732*/ OPC_CheckChild1Integer, 1, ++/*511734*/ OPC_CheckChild1Type, MVT::i32, ++/*511736*/ OPC_CheckChild2Integer, 1, ++/*511738*/ OPC_CheckChild2Type, MVT::i32, ++/*511740*/ OPC_CheckChild3Integer, 1, ++/*511742*/ OPC_CheckChild3Type, MVT::i32, ++/*511744*/ OPC_MoveParent, ++/*511745*/ OPC_CheckChild1Same, 0, ++/*511747*/ OPC_MoveParent, ++/*511748*/ OPC_CheckChild1Same, 1, ++/*511750*/ OPC_MoveParent, ++/*511751*/ OPC_MoveChild1, ++/*511752*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*511755*/ OPC_CheckChild0Integer, 31, ++/*511757*/ OPC_CheckChild0Type, MVT::i32, ++/*511759*/ OPC_CheckChild1Integer, 31, ++/*511761*/ OPC_CheckChild1Type, MVT::i32, ++/*511763*/ OPC_CheckChild2Integer, 31, ++/*511765*/ OPC_CheckChild2Type, MVT::i32, ++/*511767*/ OPC_CheckChild3Integer, 31, ++/*511769*/ OPC_CheckChild3Type, MVT::i32, ++/*511771*/ OPC_CheckType, MVT::v4i32, ++/*511773*/ OPC_MoveParent, ++/*511774*/ OPC_MoveParent, ++/*511775*/ OPC_MoveParent, ++/*511776*/ OPC_MoveChild1, ++/*511777*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*511780*/ OPC_CheckChild0Integer, 1, ++/*511782*/ OPC_CheckChild0Type, MVT::i32, ++/*511784*/ OPC_CheckChild1Integer, 1, ++/*511786*/ OPC_CheckChild1Type, MVT::i32, ++/*511788*/ OPC_CheckChild2Integer, 1, ++/*511790*/ OPC_CheckChild2Type, MVT::i32, ++/*511792*/ OPC_CheckChild3Integer, 1, ++/*511794*/ OPC_CheckChild3Type, MVT::i32, ++/*511796*/ OPC_CheckType, MVT::v4i32, ++/*511798*/ OPC_MoveParent, ++/*511799*/ OPC_CheckType, MVT::v4i32, ++/*511801*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*511803*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a)), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b), LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*511811*/ /*Scope*/ 87, /*->511899*/ ++/*511812*/ OPC_CheckChild0Same, 0, ++/*511814*/ OPC_MoveChild1, ++/*511815*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*511818*/ OPC_CheckChild0Integer, 1, ++/*511820*/ OPC_CheckChild0Type, MVT::i32, ++/*511822*/ OPC_CheckChild1Integer, 1, ++/*511824*/ OPC_CheckChild1Type, MVT::i32, ++/*511826*/ OPC_CheckChild2Integer, 1, ++/*511828*/ OPC_CheckChild2Type, MVT::i32, ++/*511830*/ OPC_CheckChild3Integer, 1, ++/*511832*/ OPC_CheckChild3Type, MVT::i32, ++/*511834*/ OPC_MoveParent, ++/*511835*/ OPC_MoveParent, ++/*511836*/ OPC_CheckChild1Same, 1, ++/*511838*/ OPC_MoveParent, ++/*511839*/ OPC_MoveChild1, ++/*511840*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*511843*/ OPC_CheckChild0Integer, 31, ++/*511845*/ OPC_CheckChild0Type, MVT::i32, ++/*511847*/ OPC_CheckChild1Integer, 31, ++/*511849*/ OPC_CheckChild1Type, MVT::i32, ++/*511851*/ OPC_CheckChild2Integer, 31, ++/*511853*/ OPC_CheckChild2Type, MVT::i32, ++/*511855*/ OPC_CheckChild3Integer, 31, ++/*511857*/ OPC_CheckChild3Type, MVT::i32, ++/*511859*/ OPC_CheckType, MVT::v4i32, ++/*511861*/ OPC_MoveParent, ++/*511862*/ OPC_MoveParent, ++/*511863*/ OPC_MoveParent, ++/*511864*/ OPC_MoveChild1, ++/*511865*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*511868*/ OPC_CheckChild0Integer, 1, ++/*511870*/ OPC_CheckChild0Type, MVT::i32, ++/*511872*/ OPC_CheckChild1Integer, 1, ++/*511874*/ OPC_CheckChild1Type, MVT::i32, ++/*511876*/ OPC_CheckChild2Integer, 1, ++/*511878*/ OPC_CheckChild2Type, MVT::i32, ++/*511880*/ OPC_CheckChild3Integer, 1, ++/*511882*/ OPC_CheckChild3Type, MVT::i32, ++/*511884*/ OPC_CheckType, MVT::v4i32, ++/*511886*/ OPC_MoveParent, ++/*511887*/ OPC_CheckType, MVT::v4i32, ++/*511889*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*511891*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a)), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*511899*/ /*Scope*/ 87, /*->511987*/ ++/*511900*/ OPC_CheckChild0Same, 1, ++/*511902*/ OPC_CheckChild1Same, 0, ++/*511904*/ OPC_MoveParent, ++/*511905*/ OPC_MoveChild1, ++/*511906*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*511909*/ OPC_CheckChild0Integer, 1, ++/*511911*/ OPC_CheckChild0Type, MVT::i32, ++/*511913*/ OPC_CheckChild1Integer, 1, ++/*511915*/ OPC_CheckChild1Type, MVT::i32, ++/*511917*/ OPC_CheckChild2Integer, 1, ++/*511919*/ OPC_CheckChild2Type, MVT::i32, ++/*511921*/ OPC_CheckChild3Integer, 1, ++/*511923*/ OPC_CheckChild3Type, MVT::i32, ++/*511925*/ OPC_MoveParent, ++/*511926*/ OPC_MoveParent, ++/*511927*/ OPC_MoveChild1, ++/*511928*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*511931*/ OPC_CheckChild0Integer, 31, ++/*511933*/ OPC_CheckChild0Type, MVT::i32, ++/*511935*/ OPC_CheckChild1Integer, 31, ++/*511937*/ OPC_CheckChild1Type, MVT::i32, ++/*511939*/ OPC_CheckChild2Integer, 31, ++/*511941*/ OPC_CheckChild2Type, MVT::i32, ++/*511943*/ OPC_CheckChild3Integer, 31, ++/*511945*/ OPC_CheckChild3Type, MVT::i32, ++/*511947*/ OPC_CheckType, MVT::v4i32, ++/*511949*/ OPC_MoveParent, ++/*511950*/ OPC_MoveParent, ++/*511951*/ OPC_MoveParent, ++/*511952*/ OPC_MoveChild1, ++/*511953*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*511956*/ OPC_CheckChild0Integer, 1, ++/*511958*/ OPC_CheckChild0Type, MVT::i32, ++/*511960*/ OPC_CheckChild1Integer, 1, ++/*511962*/ OPC_CheckChild1Type, MVT::i32, ++/*511964*/ OPC_CheckChild2Integer, 1, ++/*511966*/ OPC_CheckChild2Type, MVT::i32, ++/*511968*/ OPC_CheckChild3Integer, 1, ++/*511970*/ OPC_CheckChild3Type, MVT::i32, ++/*511972*/ OPC_CheckType, MVT::v4i32, ++/*511974*/ OPC_MoveParent, ++/*511975*/ OPC_CheckType, MVT::v4i32, ++/*511977*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*511979*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a)), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*511987*/ /*Scope*/ 87, /*->512075*/ ++/*511988*/ OPC_CheckChild0Same, 0, ++/*511990*/ OPC_CheckChild1Same, 1, ++/*511992*/ OPC_MoveParent, ++/*511993*/ OPC_MoveChild1, ++/*511994*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*511997*/ OPC_CheckChild0Integer, 1, ++/*511999*/ OPC_CheckChild0Type, MVT::i32, ++/*512001*/ OPC_CheckChild1Integer, 1, ++/*512003*/ OPC_CheckChild1Type, MVT::i32, ++/*512005*/ OPC_CheckChild2Integer, 1, ++/*512007*/ OPC_CheckChild2Type, MVT::i32, ++/*512009*/ OPC_CheckChild3Integer, 1, ++/*512011*/ OPC_CheckChild3Type, MVT::i32, ++/*512013*/ OPC_MoveParent, ++/*512014*/ OPC_MoveParent, ++/*512015*/ OPC_MoveChild1, ++/*512016*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*512019*/ OPC_CheckChild0Integer, 31, ++/*512021*/ OPC_CheckChild0Type, MVT::i32, ++/*512023*/ OPC_CheckChild1Integer, 31, ++/*512025*/ OPC_CheckChild1Type, MVT::i32, ++/*512027*/ OPC_CheckChild2Integer, 31, ++/*512029*/ OPC_CheckChild2Type, MVT::i32, ++/*512031*/ OPC_CheckChild3Integer, 31, ++/*512033*/ OPC_CheckChild3Type, MVT::i32, ++/*512035*/ OPC_CheckType, MVT::v4i32, ++/*512037*/ OPC_MoveParent, ++/*512038*/ OPC_MoveParent, ++/*512039*/ OPC_MoveParent, ++/*512040*/ OPC_MoveChild1, ++/*512041*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*512044*/ OPC_CheckChild0Integer, 1, ++/*512046*/ OPC_CheckChild0Type, MVT::i32, ++/*512048*/ OPC_CheckChild1Integer, 1, ++/*512050*/ OPC_CheckChild1Type, MVT::i32, ++/*512052*/ OPC_CheckChild2Integer, 1, ++/*512054*/ OPC_CheckChild2Type, MVT::i32, ++/*512056*/ OPC_CheckChild3Integer, 1, ++/*512058*/ OPC_CheckChild3Type, MVT::i32, ++/*512060*/ OPC_CheckType, MVT::v4i32, ++/*512062*/ OPC_MoveParent, ++/*512063*/ OPC_CheckType, MVT::v4i32, ++/*512065*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*512067*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a)), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*512075*/ 0, /*End of Scope*/ ++/*512076*/ 0, // EndSwitchOpcode ++/*512077*/ /*Scope*/ 52|128,1/*180*/, /*->512259*/ ++/*512079*/ OPC_CheckChild0Same, 0, ++/*512081*/ OPC_MoveChild1, ++/*512082*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*512085*/ OPC_Scope, 85, /*->512172*/ // 2 children in Scope ++/*512087*/ OPC_MoveChild0, ++/*512088*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*512091*/ OPC_CheckChild0Integer, 1, ++/*512093*/ OPC_CheckChild0Type, MVT::i32, ++/*512095*/ OPC_CheckChild1Integer, 1, ++/*512097*/ OPC_CheckChild1Type, MVT::i32, ++/*512099*/ OPC_CheckChild2Integer, 1, ++/*512101*/ OPC_CheckChild2Type, MVT::i32, ++/*512103*/ OPC_CheckChild3Integer, 1, ++/*512105*/ OPC_CheckChild3Type, MVT::i32, ++/*512107*/ OPC_MoveParent, ++/*512108*/ OPC_CheckChild1Same, 1, ++/*512110*/ OPC_MoveParent, ++/*512111*/ OPC_MoveParent, ++/*512112*/ OPC_MoveChild1, ++/*512113*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*512116*/ OPC_CheckChild0Integer, 31, ++/*512118*/ OPC_CheckChild0Type, MVT::i32, ++/*512120*/ OPC_CheckChild1Integer, 31, ++/*512122*/ OPC_CheckChild1Type, MVT::i32, ++/*512124*/ OPC_CheckChild2Integer, 31, ++/*512126*/ OPC_CheckChild2Type, MVT::i32, ++/*512128*/ OPC_CheckChild3Integer, 31, ++/*512130*/ OPC_CheckChild3Type, MVT::i32, ++/*512132*/ OPC_CheckType, MVT::v4i32, ++/*512134*/ OPC_MoveParent, ++/*512135*/ OPC_MoveParent, ++/*512136*/ OPC_MoveParent, ++/*512137*/ OPC_MoveChild1, ++/*512138*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*512141*/ OPC_CheckChild0Integer, 1, ++/*512143*/ OPC_CheckChild0Type, MVT::i32, ++/*512145*/ OPC_CheckChild1Integer, 1, ++/*512147*/ OPC_CheckChild1Type, MVT::i32, ++/*512149*/ OPC_CheckChild2Integer, 1, ++/*512151*/ OPC_CheckChild2Type, MVT::i32, ++/*512153*/ OPC_CheckChild3Integer, 1, ++/*512155*/ OPC_CheckChild3Type, MVT::i32, ++/*512157*/ OPC_CheckType, MVT::v4i32, ++/*512159*/ OPC_MoveParent, ++/*512160*/ OPC_CheckType, MVT::v4i32, ++/*512162*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*512164*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a)), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*512172*/ /*Scope*/ 85, /*->512258*/ ++/*512173*/ OPC_CheckChild0Same, 1, ++/*512175*/ OPC_MoveChild1, ++/*512176*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*512179*/ OPC_CheckChild0Integer, 1, ++/*512181*/ OPC_CheckChild0Type, MVT::i32, ++/*512183*/ OPC_CheckChild1Integer, 1, ++/*512185*/ OPC_CheckChild1Type, MVT::i32, ++/*512187*/ OPC_CheckChild2Integer, 1, ++/*512189*/ OPC_CheckChild2Type, MVT::i32, ++/*512191*/ OPC_CheckChild3Integer, 1, ++/*512193*/ OPC_CheckChild3Type, MVT::i32, ++/*512195*/ OPC_MoveParent, ++/*512196*/ OPC_MoveParent, ++/*512197*/ OPC_MoveParent, ++/*512198*/ OPC_MoveChild1, ++/*512199*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*512202*/ OPC_CheckChild0Integer, 31, ++/*512204*/ OPC_CheckChild0Type, MVT::i32, ++/*512206*/ OPC_CheckChild1Integer, 31, ++/*512208*/ OPC_CheckChild1Type, MVT::i32, ++/*512210*/ OPC_CheckChild2Integer, 31, ++/*512212*/ OPC_CheckChild2Type, MVT::i32, ++/*512214*/ OPC_CheckChild3Integer, 31, ++/*512216*/ OPC_CheckChild3Type, MVT::i32, ++/*512218*/ OPC_CheckType, MVT::v4i32, ++/*512220*/ OPC_MoveParent, ++/*512221*/ OPC_MoveParent, ++/*512222*/ OPC_MoveParent, ++/*512223*/ OPC_MoveChild1, ++/*512224*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*512227*/ OPC_CheckChild0Integer, 1, ++/*512229*/ OPC_CheckChild0Type, MVT::i32, ++/*512231*/ OPC_CheckChild1Integer, 1, ++/*512233*/ OPC_CheckChild1Type, MVT::i32, ++/*512235*/ OPC_CheckChild2Integer, 1, ++/*512237*/ OPC_CheckChild2Type, MVT::i32, ++/*512239*/ OPC_CheckChild3Integer, 1, ++/*512241*/ OPC_CheckChild3Type, MVT::i32, ++/*512243*/ OPC_CheckType, MVT::v4i32, ++/*512245*/ OPC_MoveParent, ++/*512246*/ OPC_CheckType, MVT::v4i32, ++/*512248*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*512250*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a)), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*512258*/ 0, /*End of Scope*/ ++/*512259*/ /*Scope*/ 52|128,1/*180*/, /*->512441*/ ++/*512261*/ OPC_CheckChild0Same, 1, ++/*512263*/ OPC_MoveChild1, ++/*512264*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*512267*/ OPC_Scope, 85, /*->512354*/ // 2 children in Scope ++/*512269*/ OPC_MoveChild0, ++/*512270*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*512273*/ OPC_CheckChild0Integer, 1, ++/*512275*/ OPC_CheckChild0Type, MVT::i32, ++/*512277*/ OPC_CheckChild1Integer, 1, ++/*512279*/ OPC_CheckChild1Type, MVT::i32, ++/*512281*/ OPC_CheckChild2Integer, 1, ++/*512283*/ OPC_CheckChild2Type, MVT::i32, ++/*512285*/ OPC_CheckChild3Integer, 1, ++/*512287*/ OPC_CheckChild3Type, MVT::i32, ++/*512289*/ OPC_MoveParent, ++/*512290*/ OPC_CheckChild1Same, 0, ++/*512292*/ OPC_MoveParent, ++/*512293*/ OPC_MoveParent, ++/*512294*/ OPC_MoveChild1, ++/*512295*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*512298*/ OPC_CheckChild0Integer, 31, ++/*512300*/ OPC_CheckChild0Type, MVT::i32, ++/*512302*/ OPC_CheckChild1Integer, 31, ++/*512304*/ OPC_CheckChild1Type, MVT::i32, ++/*512306*/ OPC_CheckChild2Integer, 31, ++/*512308*/ OPC_CheckChild2Type, MVT::i32, ++/*512310*/ OPC_CheckChild3Integer, 31, ++/*512312*/ OPC_CheckChild3Type, MVT::i32, ++/*512314*/ OPC_CheckType, MVT::v4i32, ++/*512316*/ OPC_MoveParent, ++/*512317*/ OPC_MoveParent, ++/*512318*/ OPC_MoveParent, ++/*512319*/ OPC_MoveChild1, ++/*512320*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*512323*/ OPC_CheckChild0Integer, 1, ++/*512325*/ OPC_CheckChild0Type, MVT::i32, ++/*512327*/ OPC_CheckChild1Integer, 1, ++/*512329*/ OPC_CheckChild1Type, MVT::i32, ++/*512331*/ OPC_CheckChild2Integer, 1, ++/*512333*/ OPC_CheckChild2Type, MVT::i32, ++/*512335*/ OPC_CheckChild3Integer, 1, ++/*512337*/ OPC_CheckChild3Type, MVT::i32, ++/*512339*/ OPC_CheckType, MVT::v4i32, ++/*512341*/ OPC_MoveParent, ++/*512342*/ OPC_CheckType, MVT::v4i32, ++/*512344*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*512346*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a)), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*512354*/ /*Scope*/ 85, /*->512440*/ ++/*512355*/ OPC_CheckChild0Same, 0, ++/*512357*/ OPC_MoveChild1, ++/*512358*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*512361*/ OPC_CheckChild0Integer, 1, ++/*512363*/ OPC_CheckChild0Type, MVT::i32, ++/*512365*/ OPC_CheckChild1Integer, 1, ++/*512367*/ OPC_CheckChild1Type, MVT::i32, ++/*512369*/ OPC_CheckChild2Integer, 1, ++/*512371*/ OPC_CheckChild2Type, MVT::i32, ++/*512373*/ OPC_CheckChild3Integer, 1, ++/*512375*/ OPC_CheckChild3Type, MVT::i32, ++/*512377*/ OPC_MoveParent, ++/*512378*/ OPC_MoveParent, ++/*512379*/ OPC_MoveParent, ++/*512380*/ OPC_MoveChild1, ++/*512381*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*512384*/ OPC_CheckChild0Integer, 31, ++/*512386*/ OPC_CheckChild0Type, MVT::i32, ++/*512388*/ OPC_CheckChild1Integer, 31, ++/*512390*/ OPC_CheckChild1Type, MVT::i32, ++/*512392*/ OPC_CheckChild2Integer, 31, ++/*512394*/ OPC_CheckChild2Type, MVT::i32, ++/*512396*/ OPC_CheckChild3Integer, 31, ++/*512398*/ OPC_CheckChild3Type, MVT::i32, ++/*512400*/ OPC_CheckType, MVT::v4i32, ++/*512402*/ OPC_MoveParent, ++/*512403*/ OPC_MoveParent, ++/*512404*/ OPC_MoveParent, ++/*512405*/ OPC_MoveChild1, ++/*512406*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*512409*/ OPC_CheckChild0Integer, 1, ++/*512411*/ OPC_CheckChild0Type, MVT::i32, ++/*512413*/ OPC_CheckChild1Integer, 1, ++/*512415*/ OPC_CheckChild1Type, MVT::i32, ++/*512417*/ OPC_CheckChild2Integer, 1, ++/*512419*/ OPC_CheckChild2Type, MVT::i32, ++/*512421*/ OPC_CheckChild3Integer, 1, ++/*512423*/ OPC_CheckChild3Type, MVT::i32, ++/*512425*/ OPC_CheckType, MVT::v4i32, ++/*512427*/ OPC_MoveParent, ++/*512428*/ OPC_CheckType, MVT::v4i32, ++/*512430*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*512432*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a)), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*512440*/ 0, /*End of Scope*/ ++/*512441*/ /*Scope*/ 33|128,1/*161*/, /*->512604*/ ++/*512443*/ OPC_MoveChild0, ++/*512444*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*512447*/ OPC_CheckChild0Integer, 1, ++/*512449*/ OPC_CheckChild0Type, MVT::i32, ++/*512451*/ OPC_CheckChild1Integer, 1, ++/*512453*/ OPC_CheckChild1Type, MVT::i32, ++/*512455*/ OPC_CheckChild2Integer, 1, ++/*512457*/ OPC_CheckChild2Type, MVT::i32, ++/*512459*/ OPC_CheckChild3Integer, 1, ++/*512461*/ OPC_CheckChild3Type, MVT::i32, ++/*512463*/ OPC_MoveParent, ++/*512464*/ OPC_MoveChild1, ++/*512465*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*512468*/ OPC_Scope, 66, /*->512536*/ // 2 children in Scope ++/*512470*/ OPC_CheckChild0Same, 1, ++/*512472*/ OPC_CheckChild1Same, 0, ++/*512474*/ OPC_MoveParent, ++/*512475*/ OPC_MoveParent, ++/*512476*/ OPC_MoveChild1, ++/*512477*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*512480*/ OPC_CheckChild0Integer, 31, ++/*512482*/ OPC_CheckChild0Type, MVT::i32, ++/*512484*/ OPC_CheckChild1Integer, 31, ++/*512486*/ OPC_CheckChild1Type, MVT::i32, ++/*512488*/ OPC_CheckChild2Integer, 31, ++/*512490*/ OPC_CheckChild2Type, MVT::i32, ++/*512492*/ OPC_CheckChild3Integer, 31, ++/*512494*/ OPC_CheckChild3Type, MVT::i32, ++/*512496*/ OPC_CheckType, MVT::v4i32, ++/*512498*/ OPC_MoveParent, ++/*512499*/ OPC_MoveParent, ++/*512500*/ OPC_MoveParent, ++/*512501*/ OPC_MoveChild1, ++/*512502*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*512505*/ OPC_CheckChild0Integer, 1, ++/*512507*/ OPC_CheckChild0Type, MVT::i32, ++/*512509*/ OPC_CheckChild1Integer, 1, ++/*512511*/ OPC_CheckChild1Type, MVT::i32, ++/*512513*/ OPC_CheckChild2Integer, 1, ++/*512515*/ OPC_CheckChild2Type, MVT::i32, ++/*512517*/ OPC_CheckChild3Integer, 1, ++/*512519*/ OPC_CheckChild3Type, MVT::i32, ++/*512521*/ OPC_CheckType, MVT::v4i32, ++/*512523*/ OPC_MoveParent, ++/*512524*/ OPC_CheckType, MVT::v4i32, ++/*512526*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*512528*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a)), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*512536*/ /*Scope*/ 66, /*->512603*/ ++/*512537*/ OPC_CheckChild0Same, 0, ++/*512539*/ OPC_CheckChild1Same, 1, ++/*512541*/ OPC_MoveParent, ++/*512542*/ OPC_MoveParent, ++/*512543*/ OPC_MoveChild1, ++/*512544*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*512547*/ OPC_CheckChild0Integer, 31, ++/*512549*/ OPC_CheckChild0Type, MVT::i32, ++/*512551*/ OPC_CheckChild1Integer, 31, ++/*512553*/ OPC_CheckChild1Type, MVT::i32, ++/*512555*/ OPC_CheckChild2Integer, 31, ++/*512557*/ OPC_CheckChild2Type, MVT::i32, ++/*512559*/ OPC_CheckChild3Integer, 31, ++/*512561*/ OPC_CheckChild3Type, MVT::i32, ++/*512563*/ OPC_CheckType, MVT::v4i32, ++/*512565*/ OPC_MoveParent, ++/*512566*/ OPC_MoveParent, ++/*512567*/ OPC_MoveParent, ++/*512568*/ OPC_MoveChild1, ++/*512569*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*512572*/ OPC_CheckChild0Integer, 1, ++/*512574*/ OPC_CheckChild0Type, MVT::i32, ++/*512576*/ OPC_CheckChild1Integer, 1, ++/*512578*/ OPC_CheckChild1Type, MVT::i32, ++/*512580*/ OPC_CheckChild2Integer, 1, ++/*512582*/ OPC_CheckChild2Type, MVT::i32, ++/*512584*/ OPC_CheckChild3Integer, 1, ++/*512586*/ OPC_CheckChild3Type, MVT::i32, ++/*512588*/ OPC_CheckType, MVT::v4i32, ++/*512590*/ OPC_MoveParent, ++/*512591*/ OPC_CheckType, MVT::v4i32, ++/*512593*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*512595*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a)), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*512603*/ 0, /*End of Scope*/ ++/*512604*/ 0, /*End of Scope*/ ++/*512605*/ /*SwitchOpcode*/ 41|128,51/*6569*/, TARGET_VAL(ISD::ADD),// ->519178 ++/*512609*/ OPC_Scope, 74|128,8/*1098*/, /*->513710*/ // 4 children in Scope ++/*512612*/ OPC_MoveChild0, ++/*512613*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*512616*/ OPC_CheckChild0Integer, 1, ++/*512618*/ OPC_CheckChild0Type, MVT::i64, ++/*512620*/ OPC_CheckChild1Integer, 1, ++/*512622*/ OPC_CheckChild1Type, MVT::i64, ++/*512624*/ OPC_CheckChild2Integer, 1, ++/*512626*/ OPC_CheckChild2Type, MVT::i64, ++/*512628*/ OPC_CheckChild3Integer, 1, ++/*512630*/ OPC_CheckChild3Type, MVT::i64, ++/*512632*/ OPC_MoveParent, ++/*512633*/ OPC_RecordChild1, // #0 = $a ++/*512634*/ OPC_MoveParent, ++/*512635*/ OPC_RecordChild1, // #1 = $b ++/*512636*/ OPC_MoveParent, ++/*512637*/ OPC_MoveChild1, ++/*512638*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*512641*/ OPC_MoveChild0, ++/*512642*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*512645*/ OPC_Scope, 22|128,4/*534*/, /*->513182*/ // 4 children in Scope ++/*512648*/ OPC_MoveChild0, ++/*512649*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*512652*/ OPC_Scope, 87, /*->512741*/ // 6 children in Scope ++/*512654*/ OPC_MoveChild0, ++/*512655*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*512658*/ OPC_CheckChild0Integer, 1, ++/*512660*/ OPC_CheckChild0Type, MVT::i64, ++/*512662*/ OPC_CheckChild1Integer, 1, ++/*512664*/ OPC_CheckChild1Type, MVT::i64, ++/*512666*/ OPC_CheckChild2Integer, 1, ++/*512668*/ OPC_CheckChild2Type, MVT::i64, ++/*512670*/ OPC_CheckChild3Integer, 1, ++/*512672*/ OPC_CheckChild3Type, MVT::i64, ++/*512674*/ OPC_MoveParent, ++/*512675*/ OPC_CheckChild1Same, 0, ++/*512677*/ OPC_MoveParent, ++/*512678*/ OPC_CheckChild1Same, 1, ++/*512680*/ OPC_MoveParent, ++/*512681*/ OPC_MoveChild1, ++/*512682*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*512685*/ OPC_CheckChild0Integer, 63, ++/*512687*/ OPC_CheckChild0Type, MVT::i64, ++/*512689*/ OPC_CheckChild1Integer, 63, ++/*512691*/ OPC_CheckChild1Type, MVT::i64, ++/*512693*/ OPC_CheckChild2Integer, 63, ++/*512695*/ OPC_CheckChild2Type, MVT::i64, ++/*512697*/ OPC_CheckChild3Integer, 63, ++/*512699*/ OPC_CheckChild3Type, MVT::i64, ++/*512701*/ OPC_CheckType, MVT::v4i64, ++/*512703*/ OPC_MoveParent, ++/*512704*/ OPC_MoveParent, ++/*512705*/ OPC_MoveParent, ++/*512706*/ OPC_MoveChild1, ++/*512707*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*512710*/ OPC_CheckChild0Integer, 1, ++/*512712*/ OPC_CheckChild0Type, MVT::i64, ++/*512714*/ OPC_CheckChild1Integer, 1, ++/*512716*/ OPC_CheckChild1Type, MVT::i64, ++/*512718*/ OPC_CheckChild2Integer, 1, ++/*512720*/ OPC_CheckChild2Type, MVT::i64, ++/*512722*/ OPC_CheckChild3Integer, 1, ++/*512724*/ OPC_CheckChild3Type, MVT::i64, ++/*512726*/ OPC_CheckType, MVT::v4i64, ++/*512728*/ OPC_MoveParent, ++/*512729*/ OPC_CheckType, MVT::v4i64, ++/*512731*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*512733*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a), LASX256D:{ *:[v4i64] }:$b), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a), LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*512741*/ /*Scope*/ 87, /*->512829*/ ++/*512742*/ OPC_CheckChild0Same, 0, ++/*512744*/ OPC_MoveChild1, ++/*512745*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*512748*/ OPC_CheckChild0Integer, 1, ++/*512750*/ OPC_CheckChild0Type, MVT::i64, ++/*512752*/ OPC_CheckChild1Integer, 1, ++/*512754*/ OPC_CheckChild1Type, MVT::i64, ++/*512756*/ OPC_CheckChild2Integer, 1, ++/*512758*/ OPC_CheckChild2Type, MVT::i64, ++/*512760*/ OPC_CheckChild3Integer, 1, ++/*512762*/ OPC_CheckChild3Type, MVT::i64, ++/*512764*/ OPC_MoveParent, ++/*512765*/ OPC_MoveParent, ++/*512766*/ OPC_CheckChild1Same, 1, ++/*512768*/ OPC_MoveParent, ++/*512769*/ OPC_MoveChild1, ++/*512770*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*512773*/ OPC_CheckChild0Integer, 63, ++/*512775*/ OPC_CheckChild0Type, MVT::i64, ++/*512777*/ OPC_CheckChild1Integer, 63, ++/*512779*/ OPC_CheckChild1Type, MVT::i64, ++/*512781*/ OPC_CheckChild2Integer, 63, ++/*512783*/ OPC_CheckChild2Type, MVT::i64, ++/*512785*/ OPC_CheckChild3Integer, 63, ++/*512787*/ OPC_CheckChild3Type, MVT::i64, ++/*512789*/ OPC_CheckType, MVT::v4i64, ++/*512791*/ OPC_MoveParent, ++/*512792*/ OPC_MoveParent, ++/*512793*/ OPC_MoveParent, ++/*512794*/ OPC_MoveChild1, ++/*512795*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*512798*/ OPC_CheckChild0Integer, 1, ++/*512800*/ OPC_CheckChild0Type, MVT::i64, ++/*512802*/ OPC_CheckChild1Integer, 1, ++/*512804*/ OPC_CheckChild1Type, MVT::i64, ++/*512806*/ OPC_CheckChild2Integer, 1, ++/*512808*/ OPC_CheckChild2Type, MVT::i64, ++/*512810*/ OPC_CheckChild3Integer, 1, ++/*512812*/ OPC_CheckChild3Type, MVT::i64, ++/*512814*/ OPC_CheckType, MVT::v4i64, ++/*512816*/ OPC_MoveParent, ++/*512817*/ OPC_CheckType, MVT::v4i64, ++/*512819*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*512821*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a), LASX256D:{ *:[v4i64] }:$b), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*512829*/ /*Scope*/ 87, /*->512917*/ ++/*512830*/ OPC_MoveChild0, ++/*512831*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*512834*/ OPC_CheckChild0Integer, 1, ++/*512836*/ OPC_CheckChild0Type, MVT::i64, ++/*512838*/ OPC_CheckChild1Integer, 1, ++/*512840*/ OPC_CheckChild1Type, MVT::i64, ++/*512842*/ OPC_CheckChild2Integer, 1, ++/*512844*/ OPC_CheckChild2Type, MVT::i64, ++/*512846*/ OPC_CheckChild3Integer, 1, ++/*512848*/ OPC_CheckChild3Type, MVT::i64, ++/*512850*/ OPC_MoveParent, ++/*512851*/ OPC_CheckChild1Same, 1, ++/*512853*/ OPC_MoveParent, ++/*512854*/ OPC_CheckChild1Same, 0, ++/*512856*/ OPC_MoveParent, ++/*512857*/ OPC_MoveChild1, ++/*512858*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*512861*/ OPC_CheckChild0Integer, 63, ++/*512863*/ OPC_CheckChild0Type, MVT::i64, ++/*512865*/ OPC_CheckChild1Integer, 63, ++/*512867*/ OPC_CheckChild1Type, MVT::i64, ++/*512869*/ OPC_CheckChild2Integer, 63, ++/*512871*/ OPC_CheckChild2Type, MVT::i64, ++/*512873*/ OPC_CheckChild3Integer, 63, ++/*512875*/ OPC_CheckChild3Type, MVT::i64, ++/*512877*/ OPC_CheckType, MVT::v4i64, ++/*512879*/ OPC_MoveParent, ++/*512880*/ OPC_MoveParent, ++/*512881*/ OPC_MoveParent, ++/*512882*/ OPC_MoveChild1, ++/*512883*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*512886*/ OPC_CheckChild0Integer, 1, ++/*512888*/ OPC_CheckChild0Type, MVT::i64, ++/*512890*/ OPC_CheckChild1Integer, 1, ++/*512892*/ OPC_CheckChild1Type, MVT::i64, ++/*512894*/ OPC_CheckChild2Integer, 1, ++/*512896*/ OPC_CheckChild2Type, MVT::i64, ++/*512898*/ OPC_CheckChild3Integer, 1, ++/*512900*/ OPC_CheckChild3Type, MVT::i64, ++/*512902*/ OPC_CheckType, MVT::v4i64, ++/*512904*/ OPC_MoveParent, ++/*512905*/ OPC_CheckType, MVT::v4i64, ++/*512907*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*512909*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a), LASX256D:{ *:[v4i64] }:$b), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b), LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*512917*/ /*Scope*/ 87, /*->513005*/ ++/*512918*/ OPC_CheckChild0Same, 1, ++/*512920*/ OPC_MoveChild1, ++/*512921*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*512924*/ OPC_CheckChild0Integer, 1, ++/*512926*/ OPC_CheckChild0Type, MVT::i64, ++/*512928*/ OPC_CheckChild1Integer, 1, ++/*512930*/ OPC_CheckChild1Type, MVT::i64, ++/*512932*/ OPC_CheckChild2Integer, 1, ++/*512934*/ OPC_CheckChild2Type, MVT::i64, ++/*512936*/ OPC_CheckChild3Integer, 1, ++/*512938*/ OPC_CheckChild3Type, MVT::i64, ++/*512940*/ OPC_MoveParent, ++/*512941*/ OPC_MoveParent, ++/*512942*/ OPC_CheckChild1Same, 0, ++/*512944*/ OPC_MoveParent, ++/*512945*/ OPC_MoveChild1, ++/*512946*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*512949*/ OPC_CheckChild0Integer, 63, ++/*512951*/ OPC_CheckChild0Type, MVT::i64, ++/*512953*/ OPC_CheckChild1Integer, 63, ++/*512955*/ OPC_CheckChild1Type, MVT::i64, ++/*512957*/ OPC_CheckChild2Integer, 63, ++/*512959*/ OPC_CheckChild2Type, MVT::i64, ++/*512961*/ OPC_CheckChild3Integer, 63, ++/*512963*/ OPC_CheckChild3Type, MVT::i64, ++/*512965*/ OPC_CheckType, MVT::v4i64, ++/*512967*/ OPC_MoveParent, ++/*512968*/ OPC_MoveParent, ++/*512969*/ OPC_MoveParent, ++/*512970*/ OPC_MoveChild1, ++/*512971*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*512974*/ OPC_CheckChild0Integer, 1, ++/*512976*/ OPC_CheckChild0Type, MVT::i64, ++/*512978*/ OPC_CheckChild1Integer, 1, ++/*512980*/ OPC_CheckChild1Type, MVT::i64, ++/*512982*/ OPC_CheckChild2Integer, 1, ++/*512984*/ OPC_CheckChild2Type, MVT::i64, ++/*512986*/ OPC_CheckChild3Integer, 1, ++/*512988*/ OPC_CheckChild3Type, MVT::i64, ++/*512990*/ OPC_CheckType, MVT::v4i64, ++/*512992*/ OPC_MoveParent, ++/*512993*/ OPC_CheckType, MVT::v4i64, ++/*512995*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*512997*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a), LASX256D:{ *:[v4i64] }:$b), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*513005*/ /*Scope*/ 87, /*->513093*/ ++/*513006*/ OPC_CheckChild0Same, 0, ++/*513008*/ OPC_CheckChild1Same, 1, ++/*513010*/ OPC_MoveParent, ++/*513011*/ OPC_MoveChild1, ++/*513012*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*513015*/ OPC_CheckChild0Integer, 1, ++/*513017*/ OPC_CheckChild0Type, MVT::i64, ++/*513019*/ OPC_CheckChild1Integer, 1, ++/*513021*/ OPC_CheckChild1Type, MVT::i64, ++/*513023*/ OPC_CheckChild2Integer, 1, ++/*513025*/ OPC_CheckChild2Type, MVT::i64, ++/*513027*/ OPC_CheckChild3Integer, 1, ++/*513029*/ OPC_CheckChild3Type, MVT::i64, ++/*513031*/ OPC_MoveParent, ++/*513032*/ OPC_MoveParent, ++/*513033*/ OPC_MoveChild1, ++/*513034*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*513037*/ OPC_CheckChild0Integer, 63, ++/*513039*/ OPC_CheckChild0Type, MVT::i64, ++/*513041*/ OPC_CheckChild1Integer, 63, ++/*513043*/ OPC_CheckChild1Type, MVT::i64, ++/*513045*/ OPC_CheckChild2Integer, 63, ++/*513047*/ OPC_CheckChild2Type, MVT::i64, ++/*513049*/ OPC_CheckChild3Integer, 63, ++/*513051*/ OPC_CheckChild3Type, MVT::i64, ++/*513053*/ OPC_CheckType, MVT::v4i64, ++/*513055*/ OPC_MoveParent, ++/*513056*/ OPC_MoveParent, ++/*513057*/ OPC_MoveParent, ++/*513058*/ OPC_MoveChild1, ++/*513059*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*513062*/ OPC_CheckChild0Integer, 1, ++/*513064*/ OPC_CheckChild0Type, MVT::i64, ++/*513066*/ OPC_CheckChild1Integer, 1, ++/*513068*/ OPC_CheckChild1Type, MVT::i64, ++/*513070*/ OPC_CheckChild2Integer, 1, ++/*513072*/ OPC_CheckChild2Type, MVT::i64, ++/*513074*/ OPC_CheckChild3Integer, 1, ++/*513076*/ OPC_CheckChild3Type, MVT::i64, ++/*513078*/ OPC_CheckType, MVT::v4i64, ++/*513080*/ OPC_MoveParent, ++/*513081*/ OPC_CheckType, MVT::v4i64, ++/*513083*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*513085*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a), LASX256D:{ *:[v4i64] }:$b), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*513093*/ /*Scope*/ 87, /*->513181*/ ++/*513094*/ OPC_CheckChild0Same, 1, ++/*513096*/ OPC_CheckChild1Same, 0, ++/*513098*/ OPC_MoveParent, ++/*513099*/ OPC_MoveChild1, ++/*513100*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*513103*/ OPC_CheckChild0Integer, 1, ++/*513105*/ OPC_CheckChild0Type, MVT::i64, ++/*513107*/ OPC_CheckChild1Integer, 1, ++/*513109*/ OPC_CheckChild1Type, MVT::i64, ++/*513111*/ OPC_CheckChild2Integer, 1, ++/*513113*/ OPC_CheckChild2Type, MVT::i64, ++/*513115*/ OPC_CheckChild3Integer, 1, ++/*513117*/ OPC_CheckChild3Type, MVT::i64, ++/*513119*/ OPC_MoveParent, ++/*513120*/ OPC_MoveParent, ++/*513121*/ OPC_MoveChild1, ++/*513122*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*513125*/ OPC_CheckChild0Integer, 63, ++/*513127*/ OPC_CheckChild0Type, MVT::i64, ++/*513129*/ OPC_CheckChild1Integer, 63, ++/*513131*/ OPC_CheckChild1Type, MVT::i64, ++/*513133*/ OPC_CheckChild2Integer, 63, ++/*513135*/ OPC_CheckChild2Type, MVT::i64, ++/*513137*/ OPC_CheckChild3Integer, 63, ++/*513139*/ OPC_CheckChild3Type, MVT::i64, ++/*513141*/ OPC_CheckType, MVT::v4i64, ++/*513143*/ OPC_MoveParent, ++/*513144*/ OPC_MoveParent, ++/*513145*/ OPC_MoveParent, ++/*513146*/ OPC_MoveChild1, ++/*513147*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*513150*/ OPC_CheckChild0Integer, 1, ++/*513152*/ OPC_CheckChild0Type, MVT::i64, ++/*513154*/ OPC_CheckChild1Integer, 1, ++/*513156*/ OPC_CheckChild1Type, MVT::i64, ++/*513158*/ OPC_CheckChild2Integer, 1, ++/*513160*/ OPC_CheckChild2Type, MVT::i64, ++/*513162*/ OPC_CheckChild3Integer, 1, ++/*513164*/ OPC_CheckChild3Type, MVT::i64, ++/*513166*/ OPC_CheckType, MVT::v4i64, ++/*513168*/ OPC_MoveParent, ++/*513169*/ OPC_CheckType, MVT::v4i64, ++/*513171*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*513173*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a), LASX256D:{ *:[v4i64] }:$b), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*513181*/ 0, /*End of Scope*/ ++/*513182*/ /*Scope*/ 52|128,1/*180*/, /*->513364*/ ++/*513184*/ OPC_CheckChild0Same, 1, ++/*513186*/ OPC_MoveChild1, ++/*513187*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*513190*/ OPC_Scope, 85, /*->513277*/ // 2 children in Scope ++/*513192*/ OPC_MoveChild0, ++/*513193*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*513196*/ OPC_CheckChild0Integer, 1, ++/*513198*/ OPC_CheckChild0Type, MVT::i64, ++/*513200*/ OPC_CheckChild1Integer, 1, ++/*513202*/ OPC_CheckChild1Type, MVT::i64, ++/*513204*/ OPC_CheckChild2Integer, 1, ++/*513206*/ OPC_CheckChild2Type, MVT::i64, ++/*513208*/ OPC_CheckChild3Integer, 1, ++/*513210*/ OPC_CheckChild3Type, MVT::i64, ++/*513212*/ OPC_MoveParent, ++/*513213*/ OPC_CheckChild1Same, 0, ++/*513215*/ OPC_MoveParent, ++/*513216*/ OPC_MoveParent, ++/*513217*/ OPC_MoveChild1, ++/*513218*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*513221*/ OPC_CheckChild0Integer, 63, ++/*513223*/ OPC_CheckChild0Type, MVT::i64, ++/*513225*/ OPC_CheckChild1Integer, 63, ++/*513227*/ OPC_CheckChild1Type, MVT::i64, ++/*513229*/ OPC_CheckChild2Integer, 63, ++/*513231*/ OPC_CheckChild2Type, MVT::i64, ++/*513233*/ OPC_CheckChild3Integer, 63, ++/*513235*/ OPC_CheckChild3Type, MVT::i64, ++/*513237*/ OPC_CheckType, MVT::v4i64, ++/*513239*/ OPC_MoveParent, ++/*513240*/ OPC_MoveParent, ++/*513241*/ OPC_MoveParent, ++/*513242*/ OPC_MoveChild1, ++/*513243*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*513246*/ OPC_CheckChild0Integer, 1, ++/*513248*/ OPC_CheckChild0Type, MVT::i64, ++/*513250*/ OPC_CheckChild1Integer, 1, ++/*513252*/ OPC_CheckChild1Type, MVT::i64, ++/*513254*/ OPC_CheckChild2Integer, 1, ++/*513256*/ OPC_CheckChild2Type, MVT::i64, ++/*513258*/ OPC_CheckChild3Integer, 1, ++/*513260*/ OPC_CheckChild3Type, MVT::i64, ++/*513262*/ OPC_CheckType, MVT::v4i64, ++/*513264*/ OPC_MoveParent, ++/*513265*/ OPC_CheckType, MVT::v4i64, ++/*513267*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*513269*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a), LASX256D:{ *:[v4i64] }:$b), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*513277*/ /*Scope*/ 85, /*->513363*/ ++/*513278*/ OPC_CheckChild0Same, 0, ++/*513280*/ OPC_MoveChild1, ++/*513281*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*513284*/ OPC_CheckChild0Integer, 1, ++/*513286*/ OPC_CheckChild0Type, MVT::i64, ++/*513288*/ OPC_CheckChild1Integer, 1, ++/*513290*/ OPC_CheckChild1Type, MVT::i64, ++/*513292*/ OPC_CheckChild2Integer, 1, ++/*513294*/ OPC_CheckChild2Type, MVT::i64, ++/*513296*/ OPC_CheckChild3Integer, 1, ++/*513298*/ OPC_CheckChild3Type, MVT::i64, ++/*513300*/ OPC_MoveParent, ++/*513301*/ OPC_MoveParent, ++/*513302*/ OPC_MoveParent, ++/*513303*/ OPC_MoveChild1, ++/*513304*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*513307*/ OPC_CheckChild0Integer, 63, ++/*513309*/ OPC_CheckChild0Type, MVT::i64, ++/*513311*/ OPC_CheckChild1Integer, 63, ++/*513313*/ OPC_CheckChild1Type, MVT::i64, ++/*513315*/ OPC_CheckChild2Integer, 63, ++/*513317*/ OPC_CheckChild2Type, MVT::i64, ++/*513319*/ OPC_CheckChild3Integer, 63, ++/*513321*/ OPC_CheckChild3Type, MVT::i64, ++/*513323*/ OPC_CheckType, MVT::v4i64, ++/*513325*/ OPC_MoveParent, ++/*513326*/ OPC_MoveParent, ++/*513327*/ OPC_MoveParent, ++/*513328*/ OPC_MoveChild1, ++/*513329*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*513332*/ OPC_CheckChild0Integer, 1, ++/*513334*/ OPC_CheckChild0Type, MVT::i64, ++/*513336*/ OPC_CheckChild1Integer, 1, ++/*513338*/ OPC_CheckChild1Type, MVT::i64, ++/*513340*/ OPC_CheckChild2Integer, 1, ++/*513342*/ OPC_CheckChild2Type, MVT::i64, ++/*513344*/ OPC_CheckChild3Integer, 1, ++/*513346*/ OPC_CheckChild3Type, MVT::i64, ++/*513348*/ OPC_CheckType, MVT::v4i64, ++/*513350*/ OPC_MoveParent, ++/*513351*/ OPC_CheckType, MVT::v4i64, ++/*513353*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*513355*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a), LASX256D:{ *:[v4i64] }:$b), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*513363*/ 0, /*End of Scope*/ ++/*513364*/ /*Scope*/ 52|128,1/*180*/, /*->513546*/ ++/*513366*/ OPC_CheckChild0Same, 0, ++/*513368*/ OPC_MoveChild1, ++/*513369*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*513372*/ OPC_Scope, 85, /*->513459*/ // 2 children in Scope ++/*513374*/ OPC_MoveChild0, ++/*513375*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*513378*/ OPC_CheckChild0Integer, 1, ++/*513380*/ OPC_CheckChild0Type, MVT::i64, ++/*513382*/ OPC_CheckChild1Integer, 1, ++/*513384*/ OPC_CheckChild1Type, MVT::i64, ++/*513386*/ OPC_CheckChild2Integer, 1, ++/*513388*/ OPC_CheckChild2Type, MVT::i64, ++/*513390*/ OPC_CheckChild3Integer, 1, ++/*513392*/ OPC_CheckChild3Type, MVT::i64, ++/*513394*/ OPC_MoveParent, ++/*513395*/ OPC_CheckChild1Same, 1, ++/*513397*/ OPC_MoveParent, ++/*513398*/ OPC_MoveParent, ++/*513399*/ OPC_MoveChild1, ++/*513400*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*513403*/ OPC_CheckChild0Integer, 63, ++/*513405*/ OPC_CheckChild0Type, MVT::i64, ++/*513407*/ OPC_CheckChild1Integer, 63, ++/*513409*/ OPC_CheckChild1Type, MVT::i64, ++/*513411*/ OPC_CheckChild2Integer, 63, ++/*513413*/ OPC_CheckChild2Type, MVT::i64, ++/*513415*/ OPC_CheckChild3Integer, 63, ++/*513417*/ OPC_CheckChild3Type, MVT::i64, ++/*513419*/ OPC_CheckType, MVT::v4i64, ++/*513421*/ OPC_MoveParent, ++/*513422*/ OPC_MoveParent, ++/*513423*/ OPC_MoveParent, ++/*513424*/ OPC_MoveChild1, ++/*513425*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*513428*/ OPC_CheckChild0Integer, 1, ++/*513430*/ OPC_CheckChild0Type, MVT::i64, ++/*513432*/ OPC_CheckChild1Integer, 1, ++/*513434*/ OPC_CheckChild1Type, MVT::i64, ++/*513436*/ OPC_CheckChild2Integer, 1, ++/*513438*/ OPC_CheckChild2Type, MVT::i64, ++/*513440*/ OPC_CheckChild3Integer, 1, ++/*513442*/ OPC_CheckChild3Type, MVT::i64, ++/*513444*/ OPC_CheckType, MVT::v4i64, ++/*513446*/ OPC_MoveParent, ++/*513447*/ OPC_CheckType, MVT::v4i64, ++/*513449*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*513451*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a), LASX256D:{ *:[v4i64] }:$b), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*513459*/ /*Scope*/ 85, /*->513545*/ ++/*513460*/ OPC_CheckChild0Same, 1, ++/*513462*/ OPC_MoveChild1, ++/*513463*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*513466*/ OPC_CheckChild0Integer, 1, ++/*513468*/ OPC_CheckChild0Type, MVT::i64, ++/*513470*/ OPC_CheckChild1Integer, 1, ++/*513472*/ OPC_CheckChild1Type, MVT::i64, ++/*513474*/ OPC_CheckChild2Integer, 1, ++/*513476*/ OPC_CheckChild2Type, MVT::i64, ++/*513478*/ OPC_CheckChild3Integer, 1, ++/*513480*/ OPC_CheckChild3Type, MVT::i64, ++/*513482*/ OPC_MoveParent, ++/*513483*/ OPC_MoveParent, ++/*513484*/ OPC_MoveParent, ++/*513485*/ OPC_MoveChild1, ++/*513486*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*513489*/ OPC_CheckChild0Integer, 63, ++/*513491*/ OPC_CheckChild0Type, MVT::i64, ++/*513493*/ OPC_CheckChild1Integer, 63, ++/*513495*/ OPC_CheckChild1Type, MVT::i64, ++/*513497*/ OPC_CheckChild2Integer, 63, ++/*513499*/ OPC_CheckChild2Type, MVT::i64, ++/*513501*/ OPC_CheckChild3Integer, 63, ++/*513503*/ OPC_CheckChild3Type, MVT::i64, ++/*513505*/ OPC_CheckType, MVT::v4i64, ++/*513507*/ OPC_MoveParent, ++/*513508*/ OPC_MoveParent, ++/*513509*/ OPC_MoveParent, ++/*513510*/ OPC_MoveChild1, ++/*513511*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*513514*/ OPC_CheckChild0Integer, 1, ++/*513516*/ OPC_CheckChild0Type, MVT::i64, ++/*513518*/ OPC_CheckChild1Integer, 1, ++/*513520*/ OPC_CheckChild1Type, MVT::i64, ++/*513522*/ OPC_CheckChild2Integer, 1, ++/*513524*/ OPC_CheckChild2Type, MVT::i64, ++/*513526*/ OPC_CheckChild3Integer, 1, ++/*513528*/ OPC_CheckChild3Type, MVT::i64, ++/*513530*/ OPC_CheckType, MVT::v4i64, ++/*513532*/ OPC_MoveParent, ++/*513533*/ OPC_CheckType, MVT::v4i64, ++/*513535*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*513537*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a), LASX256D:{ *:[v4i64] }:$b), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*513545*/ 0, /*End of Scope*/ ++/*513546*/ /*Scope*/ 33|128,1/*161*/, /*->513709*/ ++/*513548*/ OPC_MoveChild0, ++/*513549*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*513552*/ OPC_CheckChild0Integer, 1, ++/*513554*/ OPC_CheckChild0Type, MVT::i64, ++/*513556*/ OPC_CheckChild1Integer, 1, ++/*513558*/ OPC_CheckChild1Type, MVT::i64, ++/*513560*/ OPC_CheckChild2Integer, 1, ++/*513562*/ OPC_CheckChild2Type, MVT::i64, ++/*513564*/ OPC_CheckChild3Integer, 1, ++/*513566*/ OPC_CheckChild3Type, MVT::i64, ++/*513568*/ OPC_MoveParent, ++/*513569*/ OPC_MoveChild1, ++/*513570*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*513573*/ OPC_Scope, 66, /*->513641*/ // 2 children in Scope ++/*513575*/ OPC_CheckChild0Same, 0, ++/*513577*/ OPC_CheckChild1Same, 1, ++/*513579*/ OPC_MoveParent, ++/*513580*/ OPC_MoveParent, ++/*513581*/ OPC_MoveChild1, ++/*513582*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*513585*/ OPC_CheckChild0Integer, 63, ++/*513587*/ OPC_CheckChild0Type, MVT::i64, ++/*513589*/ OPC_CheckChild1Integer, 63, ++/*513591*/ OPC_CheckChild1Type, MVT::i64, ++/*513593*/ OPC_CheckChild2Integer, 63, ++/*513595*/ OPC_CheckChild2Type, MVT::i64, ++/*513597*/ OPC_CheckChild3Integer, 63, ++/*513599*/ OPC_CheckChild3Type, MVT::i64, ++/*513601*/ OPC_CheckType, MVT::v4i64, ++/*513603*/ OPC_MoveParent, ++/*513604*/ OPC_MoveParent, ++/*513605*/ OPC_MoveParent, ++/*513606*/ OPC_MoveChild1, ++/*513607*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*513610*/ OPC_CheckChild0Integer, 1, ++/*513612*/ OPC_CheckChild0Type, MVT::i64, ++/*513614*/ OPC_CheckChild1Integer, 1, ++/*513616*/ OPC_CheckChild1Type, MVT::i64, ++/*513618*/ OPC_CheckChild2Integer, 1, ++/*513620*/ OPC_CheckChild2Type, MVT::i64, ++/*513622*/ OPC_CheckChild3Integer, 1, ++/*513624*/ OPC_CheckChild3Type, MVT::i64, ++/*513626*/ OPC_CheckType, MVT::v4i64, ++/*513628*/ OPC_MoveParent, ++/*513629*/ OPC_CheckType, MVT::v4i64, ++/*513631*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*513633*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a), LASX256D:{ *:[v4i64] }:$b), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*513641*/ /*Scope*/ 66, /*->513708*/ ++/*513642*/ OPC_CheckChild0Same, 1, ++/*513644*/ OPC_CheckChild1Same, 0, ++/*513646*/ OPC_MoveParent, ++/*513647*/ OPC_MoveParent, ++/*513648*/ OPC_MoveChild1, ++/*513649*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*513652*/ OPC_CheckChild0Integer, 63, ++/*513654*/ OPC_CheckChild0Type, MVT::i64, ++/*513656*/ OPC_CheckChild1Integer, 63, ++/*513658*/ OPC_CheckChild1Type, MVT::i64, ++/*513660*/ OPC_CheckChild2Integer, 63, ++/*513662*/ OPC_CheckChild2Type, MVT::i64, ++/*513664*/ OPC_CheckChild3Integer, 63, ++/*513666*/ OPC_CheckChild3Type, MVT::i64, ++/*513668*/ OPC_CheckType, MVT::v4i64, ++/*513670*/ OPC_MoveParent, ++/*513671*/ OPC_MoveParent, ++/*513672*/ OPC_MoveParent, ++/*513673*/ OPC_MoveChild1, ++/*513674*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*513677*/ OPC_CheckChild0Integer, 1, ++/*513679*/ OPC_CheckChild0Type, MVT::i64, ++/*513681*/ OPC_CheckChild1Integer, 1, ++/*513683*/ OPC_CheckChild1Type, MVT::i64, ++/*513685*/ OPC_CheckChild2Integer, 1, ++/*513687*/ OPC_CheckChild2Type, MVT::i64, ++/*513689*/ OPC_CheckChild3Integer, 1, ++/*513691*/ OPC_CheckChild3Type, MVT::i64, ++/*513693*/ OPC_CheckType, MVT::v4i64, ++/*513695*/ OPC_MoveParent, ++/*513696*/ OPC_CheckType, MVT::v4i64, ++/*513698*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*513700*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a), LASX256D:{ *:[v4i64] }:$b), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*513708*/ 0, /*End of Scope*/ ++/*513709*/ 0, /*End of Scope*/ ++/*513710*/ /*Scope*/ 74|128,8/*1098*/, /*->514810*/ ++/*513712*/ OPC_RecordChild0, // #0 = $a ++/*513713*/ OPC_MoveChild1, ++/*513714*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*513717*/ OPC_CheckChild0Integer, 1, ++/*513719*/ OPC_CheckChild0Type, MVT::i64, ++/*513721*/ OPC_CheckChild1Integer, 1, ++/*513723*/ OPC_CheckChild1Type, MVT::i64, ++/*513725*/ OPC_CheckChild2Integer, 1, ++/*513727*/ OPC_CheckChild2Type, MVT::i64, ++/*513729*/ OPC_CheckChild3Integer, 1, ++/*513731*/ OPC_CheckChild3Type, MVT::i64, ++/*513733*/ OPC_MoveParent, ++/*513734*/ OPC_MoveParent, ++/*513735*/ OPC_RecordChild1, // #1 = $b ++/*513736*/ OPC_MoveParent, ++/*513737*/ OPC_MoveChild1, ++/*513738*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*513741*/ OPC_MoveChild0, ++/*513742*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*513745*/ OPC_Scope, 22|128,4/*534*/, /*->514282*/ // 4 children in Scope ++/*513748*/ OPC_MoveChild0, ++/*513749*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*513752*/ OPC_Scope, 87, /*->513841*/ // 6 children in Scope ++/*513754*/ OPC_MoveChild0, ++/*513755*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*513758*/ OPC_CheckChild0Integer, 1, ++/*513760*/ OPC_CheckChild0Type, MVT::i64, ++/*513762*/ OPC_CheckChild1Integer, 1, ++/*513764*/ OPC_CheckChild1Type, MVT::i64, ++/*513766*/ OPC_CheckChild2Integer, 1, ++/*513768*/ OPC_CheckChild2Type, MVT::i64, ++/*513770*/ OPC_CheckChild3Integer, 1, ++/*513772*/ OPC_CheckChild3Type, MVT::i64, ++/*513774*/ OPC_MoveParent, ++/*513775*/ OPC_CheckChild1Same, 0, ++/*513777*/ OPC_MoveParent, ++/*513778*/ OPC_CheckChild1Same, 1, ++/*513780*/ OPC_MoveParent, ++/*513781*/ OPC_MoveChild1, ++/*513782*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*513785*/ OPC_CheckChild0Integer, 63, ++/*513787*/ OPC_CheckChild0Type, MVT::i64, ++/*513789*/ OPC_CheckChild1Integer, 63, ++/*513791*/ OPC_CheckChild1Type, MVT::i64, ++/*513793*/ OPC_CheckChild2Integer, 63, ++/*513795*/ OPC_CheckChild2Type, MVT::i64, ++/*513797*/ OPC_CheckChild3Integer, 63, ++/*513799*/ OPC_CheckChild3Type, MVT::i64, ++/*513801*/ OPC_CheckType, MVT::v4i64, ++/*513803*/ OPC_MoveParent, ++/*513804*/ OPC_MoveParent, ++/*513805*/ OPC_MoveParent, ++/*513806*/ OPC_MoveChild1, ++/*513807*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*513810*/ OPC_CheckChild0Integer, 1, ++/*513812*/ OPC_CheckChild0Type, MVT::i64, ++/*513814*/ OPC_CheckChild1Integer, 1, ++/*513816*/ OPC_CheckChild1Type, MVT::i64, ++/*513818*/ OPC_CheckChild2Integer, 1, ++/*513820*/ OPC_CheckChild2Type, MVT::i64, ++/*513822*/ OPC_CheckChild3Integer, 1, ++/*513824*/ OPC_CheckChild3Type, MVT::i64, ++/*513826*/ OPC_CheckType, MVT::v4i64, ++/*513828*/ OPC_MoveParent, ++/*513829*/ OPC_CheckType, MVT::v4i64, ++/*513831*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*513833*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$b), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a), LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*513841*/ /*Scope*/ 87, /*->513929*/ ++/*513842*/ OPC_CheckChild0Same, 0, ++/*513844*/ OPC_MoveChild1, ++/*513845*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*513848*/ OPC_CheckChild0Integer, 1, ++/*513850*/ OPC_CheckChild0Type, MVT::i64, ++/*513852*/ OPC_CheckChild1Integer, 1, ++/*513854*/ OPC_CheckChild1Type, MVT::i64, ++/*513856*/ OPC_CheckChild2Integer, 1, ++/*513858*/ OPC_CheckChild2Type, MVT::i64, ++/*513860*/ OPC_CheckChild3Integer, 1, ++/*513862*/ OPC_CheckChild3Type, MVT::i64, ++/*513864*/ OPC_MoveParent, ++/*513865*/ OPC_MoveParent, ++/*513866*/ OPC_CheckChild1Same, 1, ++/*513868*/ OPC_MoveParent, ++/*513869*/ OPC_MoveChild1, ++/*513870*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*513873*/ OPC_CheckChild0Integer, 63, ++/*513875*/ OPC_CheckChild0Type, MVT::i64, ++/*513877*/ OPC_CheckChild1Integer, 63, ++/*513879*/ OPC_CheckChild1Type, MVT::i64, ++/*513881*/ OPC_CheckChild2Integer, 63, ++/*513883*/ OPC_CheckChild2Type, MVT::i64, ++/*513885*/ OPC_CheckChild3Integer, 63, ++/*513887*/ OPC_CheckChild3Type, MVT::i64, ++/*513889*/ OPC_CheckType, MVT::v4i64, ++/*513891*/ OPC_MoveParent, ++/*513892*/ OPC_MoveParent, ++/*513893*/ OPC_MoveParent, ++/*513894*/ OPC_MoveChild1, ++/*513895*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*513898*/ OPC_CheckChild0Integer, 1, ++/*513900*/ OPC_CheckChild0Type, MVT::i64, ++/*513902*/ OPC_CheckChild1Integer, 1, ++/*513904*/ OPC_CheckChild1Type, MVT::i64, ++/*513906*/ OPC_CheckChild2Integer, 1, ++/*513908*/ OPC_CheckChild2Type, MVT::i64, ++/*513910*/ OPC_CheckChild3Integer, 1, ++/*513912*/ OPC_CheckChild3Type, MVT::i64, ++/*513914*/ OPC_CheckType, MVT::v4i64, ++/*513916*/ OPC_MoveParent, ++/*513917*/ OPC_CheckType, MVT::v4i64, ++/*513919*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*513921*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$b), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*513929*/ /*Scope*/ 87, /*->514017*/ ++/*513930*/ OPC_MoveChild0, ++/*513931*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*513934*/ OPC_CheckChild0Integer, 1, ++/*513936*/ OPC_CheckChild0Type, MVT::i64, ++/*513938*/ OPC_CheckChild1Integer, 1, ++/*513940*/ OPC_CheckChild1Type, MVT::i64, ++/*513942*/ OPC_CheckChild2Integer, 1, ++/*513944*/ OPC_CheckChild2Type, MVT::i64, ++/*513946*/ OPC_CheckChild3Integer, 1, ++/*513948*/ OPC_CheckChild3Type, MVT::i64, ++/*513950*/ OPC_MoveParent, ++/*513951*/ OPC_CheckChild1Same, 1, ++/*513953*/ OPC_MoveParent, ++/*513954*/ OPC_CheckChild1Same, 0, ++/*513956*/ OPC_MoveParent, ++/*513957*/ OPC_MoveChild1, ++/*513958*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*513961*/ OPC_CheckChild0Integer, 63, ++/*513963*/ OPC_CheckChild0Type, MVT::i64, ++/*513965*/ OPC_CheckChild1Integer, 63, ++/*513967*/ OPC_CheckChild1Type, MVT::i64, ++/*513969*/ OPC_CheckChild2Integer, 63, ++/*513971*/ OPC_CheckChild2Type, MVT::i64, ++/*513973*/ OPC_CheckChild3Integer, 63, ++/*513975*/ OPC_CheckChild3Type, MVT::i64, ++/*513977*/ OPC_CheckType, MVT::v4i64, ++/*513979*/ OPC_MoveParent, ++/*513980*/ OPC_MoveParent, ++/*513981*/ OPC_MoveParent, ++/*513982*/ OPC_MoveChild1, ++/*513983*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*513986*/ OPC_CheckChild0Integer, 1, ++/*513988*/ OPC_CheckChild0Type, MVT::i64, ++/*513990*/ OPC_CheckChild1Integer, 1, ++/*513992*/ OPC_CheckChild1Type, MVT::i64, ++/*513994*/ OPC_CheckChild2Integer, 1, ++/*513996*/ OPC_CheckChild2Type, MVT::i64, ++/*513998*/ OPC_CheckChild3Integer, 1, ++/*514000*/ OPC_CheckChild3Type, MVT::i64, ++/*514002*/ OPC_CheckType, MVT::v4i64, ++/*514004*/ OPC_MoveParent, ++/*514005*/ OPC_CheckType, MVT::v4i64, ++/*514007*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*514009*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$b), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b), LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*514017*/ /*Scope*/ 87, /*->514105*/ ++/*514018*/ OPC_CheckChild0Same, 1, ++/*514020*/ OPC_MoveChild1, ++/*514021*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*514024*/ OPC_CheckChild0Integer, 1, ++/*514026*/ OPC_CheckChild0Type, MVT::i64, ++/*514028*/ OPC_CheckChild1Integer, 1, ++/*514030*/ OPC_CheckChild1Type, MVT::i64, ++/*514032*/ OPC_CheckChild2Integer, 1, ++/*514034*/ OPC_CheckChild2Type, MVT::i64, ++/*514036*/ OPC_CheckChild3Integer, 1, ++/*514038*/ OPC_CheckChild3Type, MVT::i64, ++/*514040*/ OPC_MoveParent, ++/*514041*/ OPC_MoveParent, ++/*514042*/ OPC_CheckChild1Same, 0, ++/*514044*/ OPC_MoveParent, ++/*514045*/ OPC_MoveChild1, ++/*514046*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*514049*/ OPC_CheckChild0Integer, 63, ++/*514051*/ OPC_CheckChild0Type, MVT::i64, ++/*514053*/ OPC_CheckChild1Integer, 63, ++/*514055*/ OPC_CheckChild1Type, MVT::i64, ++/*514057*/ OPC_CheckChild2Integer, 63, ++/*514059*/ OPC_CheckChild2Type, MVT::i64, ++/*514061*/ OPC_CheckChild3Integer, 63, ++/*514063*/ OPC_CheckChild3Type, MVT::i64, ++/*514065*/ OPC_CheckType, MVT::v4i64, ++/*514067*/ OPC_MoveParent, ++/*514068*/ OPC_MoveParent, ++/*514069*/ OPC_MoveParent, ++/*514070*/ OPC_MoveChild1, ++/*514071*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*514074*/ OPC_CheckChild0Integer, 1, ++/*514076*/ OPC_CheckChild0Type, MVT::i64, ++/*514078*/ OPC_CheckChild1Integer, 1, ++/*514080*/ OPC_CheckChild1Type, MVT::i64, ++/*514082*/ OPC_CheckChild2Integer, 1, ++/*514084*/ OPC_CheckChild2Type, MVT::i64, ++/*514086*/ OPC_CheckChild3Integer, 1, ++/*514088*/ OPC_CheckChild3Type, MVT::i64, ++/*514090*/ OPC_CheckType, MVT::v4i64, ++/*514092*/ OPC_MoveParent, ++/*514093*/ OPC_CheckType, MVT::v4i64, ++/*514095*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*514097*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$b), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*514105*/ /*Scope*/ 87, /*->514193*/ ++/*514106*/ OPC_CheckChild0Same, 0, ++/*514108*/ OPC_CheckChild1Same, 1, ++/*514110*/ OPC_MoveParent, ++/*514111*/ OPC_MoveChild1, ++/*514112*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*514115*/ OPC_CheckChild0Integer, 1, ++/*514117*/ OPC_CheckChild0Type, MVT::i64, ++/*514119*/ OPC_CheckChild1Integer, 1, ++/*514121*/ OPC_CheckChild1Type, MVT::i64, ++/*514123*/ OPC_CheckChild2Integer, 1, ++/*514125*/ OPC_CheckChild2Type, MVT::i64, ++/*514127*/ OPC_CheckChild3Integer, 1, ++/*514129*/ OPC_CheckChild3Type, MVT::i64, ++/*514131*/ OPC_MoveParent, ++/*514132*/ OPC_MoveParent, ++/*514133*/ OPC_MoveChild1, ++/*514134*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*514137*/ OPC_CheckChild0Integer, 63, ++/*514139*/ OPC_CheckChild0Type, MVT::i64, ++/*514141*/ OPC_CheckChild1Integer, 63, ++/*514143*/ OPC_CheckChild1Type, MVT::i64, ++/*514145*/ OPC_CheckChild2Integer, 63, ++/*514147*/ OPC_CheckChild2Type, MVT::i64, ++/*514149*/ OPC_CheckChild3Integer, 63, ++/*514151*/ OPC_CheckChild3Type, MVT::i64, ++/*514153*/ OPC_CheckType, MVT::v4i64, ++/*514155*/ OPC_MoveParent, ++/*514156*/ OPC_MoveParent, ++/*514157*/ OPC_MoveParent, ++/*514158*/ OPC_MoveChild1, ++/*514159*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*514162*/ OPC_CheckChild0Integer, 1, ++/*514164*/ OPC_CheckChild0Type, MVT::i64, ++/*514166*/ OPC_CheckChild1Integer, 1, ++/*514168*/ OPC_CheckChild1Type, MVT::i64, ++/*514170*/ OPC_CheckChild2Integer, 1, ++/*514172*/ OPC_CheckChild2Type, MVT::i64, ++/*514174*/ OPC_CheckChild3Integer, 1, ++/*514176*/ OPC_CheckChild3Type, MVT::i64, ++/*514178*/ OPC_CheckType, MVT::v4i64, ++/*514180*/ OPC_MoveParent, ++/*514181*/ OPC_CheckType, MVT::v4i64, ++/*514183*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*514185*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$b), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*514193*/ /*Scope*/ 87, /*->514281*/ ++/*514194*/ OPC_CheckChild0Same, 1, ++/*514196*/ OPC_CheckChild1Same, 0, ++/*514198*/ OPC_MoveParent, ++/*514199*/ OPC_MoveChild1, ++/*514200*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*514203*/ OPC_CheckChild0Integer, 1, ++/*514205*/ OPC_CheckChild0Type, MVT::i64, ++/*514207*/ OPC_CheckChild1Integer, 1, ++/*514209*/ OPC_CheckChild1Type, MVT::i64, ++/*514211*/ OPC_CheckChild2Integer, 1, ++/*514213*/ OPC_CheckChild2Type, MVT::i64, ++/*514215*/ OPC_CheckChild3Integer, 1, ++/*514217*/ OPC_CheckChild3Type, MVT::i64, ++/*514219*/ OPC_MoveParent, ++/*514220*/ OPC_MoveParent, ++/*514221*/ OPC_MoveChild1, ++/*514222*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*514225*/ OPC_CheckChild0Integer, 63, ++/*514227*/ OPC_CheckChild0Type, MVT::i64, ++/*514229*/ OPC_CheckChild1Integer, 63, ++/*514231*/ OPC_CheckChild1Type, MVT::i64, ++/*514233*/ OPC_CheckChild2Integer, 63, ++/*514235*/ OPC_CheckChild2Type, MVT::i64, ++/*514237*/ OPC_CheckChild3Integer, 63, ++/*514239*/ OPC_CheckChild3Type, MVT::i64, ++/*514241*/ OPC_CheckType, MVT::v4i64, ++/*514243*/ OPC_MoveParent, ++/*514244*/ OPC_MoveParent, ++/*514245*/ OPC_MoveParent, ++/*514246*/ OPC_MoveChild1, ++/*514247*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*514250*/ OPC_CheckChild0Integer, 1, ++/*514252*/ OPC_CheckChild0Type, MVT::i64, ++/*514254*/ OPC_CheckChild1Integer, 1, ++/*514256*/ OPC_CheckChild1Type, MVT::i64, ++/*514258*/ OPC_CheckChild2Integer, 1, ++/*514260*/ OPC_CheckChild2Type, MVT::i64, ++/*514262*/ OPC_CheckChild3Integer, 1, ++/*514264*/ OPC_CheckChild3Type, MVT::i64, ++/*514266*/ OPC_CheckType, MVT::v4i64, ++/*514268*/ OPC_MoveParent, ++/*514269*/ OPC_CheckType, MVT::v4i64, ++/*514271*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*514273*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$b), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*514281*/ 0, /*End of Scope*/ ++/*514282*/ /*Scope*/ 52|128,1/*180*/, /*->514464*/ ++/*514284*/ OPC_CheckChild0Same, 1, ++/*514286*/ OPC_MoveChild1, ++/*514287*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*514290*/ OPC_Scope, 85, /*->514377*/ // 2 children in Scope ++/*514292*/ OPC_MoveChild0, ++/*514293*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*514296*/ OPC_CheckChild0Integer, 1, ++/*514298*/ OPC_CheckChild0Type, MVT::i64, ++/*514300*/ OPC_CheckChild1Integer, 1, ++/*514302*/ OPC_CheckChild1Type, MVT::i64, ++/*514304*/ OPC_CheckChild2Integer, 1, ++/*514306*/ OPC_CheckChild2Type, MVT::i64, ++/*514308*/ OPC_CheckChild3Integer, 1, ++/*514310*/ OPC_CheckChild3Type, MVT::i64, ++/*514312*/ OPC_MoveParent, ++/*514313*/ OPC_CheckChild1Same, 0, ++/*514315*/ OPC_MoveParent, ++/*514316*/ OPC_MoveParent, ++/*514317*/ OPC_MoveChild1, ++/*514318*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*514321*/ OPC_CheckChild0Integer, 63, ++/*514323*/ OPC_CheckChild0Type, MVT::i64, ++/*514325*/ OPC_CheckChild1Integer, 63, ++/*514327*/ OPC_CheckChild1Type, MVT::i64, ++/*514329*/ OPC_CheckChild2Integer, 63, ++/*514331*/ OPC_CheckChild2Type, MVT::i64, ++/*514333*/ OPC_CheckChild3Integer, 63, ++/*514335*/ OPC_CheckChild3Type, MVT::i64, ++/*514337*/ OPC_CheckType, MVT::v4i64, ++/*514339*/ OPC_MoveParent, ++/*514340*/ OPC_MoveParent, ++/*514341*/ OPC_MoveParent, ++/*514342*/ OPC_MoveChild1, ++/*514343*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*514346*/ OPC_CheckChild0Integer, 1, ++/*514348*/ OPC_CheckChild0Type, MVT::i64, ++/*514350*/ OPC_CheckChild1Integer, 1, ++/*514352*/ OPC_CheckChild1Type, MVT::i64, ++/*514354*/ OPC_CheckChild2Integer, 1, ++/*514356*/ OPC_CheckChild2Type, MVT::i64, ++/*514358*/ OPC_CheckChild3Integer, 1, ++/*514360*/ OPC_CheckChild3Type, MVT::i64, ++/*514362*/ OPC_CheckType, MVT::v4i64, ++/*514364*/ OPC_MoveParent, ++/*514365*/ OPC_CheckType, MVT::v4i64, ++/*514367*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*514369*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$b), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*514377*/ /*Scope*/ 85, /*->514463*/ ++/*514378*/ OPC_CheckChild0Same, 0, ++/*514380*/ OPC_MoveChild1, ++/*514381*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*514384*/ OPC_CheckChild0Integer, 1, ++/*514386*/ OPC_CheckChild0Type, MVT::i64, ++/*514388*/ OPC_CheckChild1Integer, 1, ++/*514390*/ OPC_CheckChild1Type, MVT::i64, ++/*514392*/ OPC_CheckChild2Integer, 1, ++/*514394*/ OPC_CheckChild2Type, MVT::i64, ++/*514396*/ OPC_CheckChild3Integer, 1, ++/*514398*/ OPC_CheckChild3Type, MVT::i64, ++/*514400*/ OPC_MoveParent, ++/*514401*/ OPC_MoveParent, ++/*514402*/ OPC_MoveParent, ++/*514403*/ OPC_MoveChild1, ++/*514404*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*514407*/ OPC_CheckChild0Integer, 63, ++/*514409*/ OPC_CheckChild0Type, MVT::i64, ++/*514411*/ OPC_CheckChild1Integer, 63, ++/*514413*/ OPC_CheckChild1Type, MVT::i64, ++/*514415*/ OPC_CheckChild2Integer, 63, ++/*514417*/ OPC_CheckChild2Type, MVT::i64, ++/*514419*/ OPC_CheckChild3Integer, 63, ++/*514421*/ OPC_CheckChild3Type, MVT::i64, ++/*514423*/ OPC_CheckType, MVT::v4i64, ++/*514425*/ OPC_MoveParent, ++/*514426*/ OPC_MoveParent, ++/*514427*/ OPC_MoveParent, ++/*514428*/ OPC_MoveChild1, ++/*514429*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*514432*/ OPC_CheckChild0Integer, 1, ++/*514434*/ OPC_CheckChild0Type, MVT::i64, ++/*514436*/ OPC_CheckChild1Integer, 1, ++/*514438*/ OPC_CheckChild1Type, MVT::i64, ++/*514440*/ OPC_CheckChild2Integer, 1, ++/*514442*/ OPC_CheckChild2Type, MVT::i64, ++/*514444*/ OPC_CheckChild3Integer, 1, ++/*514446*/ OPC_CheckChild3Type, MVT::i64, ++/*514448*/ OPC_CheckType, MVT::v4i64, ++/*514450*/ OPC_MoveParent, ++/*514451*/ OPC_CheckType, MVT::v4i64, ++/*514453*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*514455*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$b), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*514463*/ 0, /*End of Scope*/ ++/*514464*/ /*Scope*/ 52|128,1/*180*/, /*->514646*/ ++/*514466*/ OPC_CheckChild0Same, 0, ++/*514468*/ OPC_MoveChild1, ++/*514469*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*514472*/ OPC_Scope, 85, /*->514559*/ // 2 children in Scope ++/*514474*/ OPC_MoveChild0, ++/*514475*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*514478*/ OPC_CheckChild0Integer, 1, ++/*514480*/ OPC_CheckChild0Type, MVT::i64, ++/*514482*/ OPC_CheckChild1Integer, 1, ++/*514484*/ OPC_CheckChild1Type, MVT::i64, ++/*514486*/ OPC_CheckChild2Integer, 1, ++/*514488*/ OPC_CheckChild2Type, MVT::i64, ++/*514490*/ OPC_CheckChild3Integer, 1, ++/*514492*/ OPC_CheckChild3Type, MVT::i64, ++/*514494*/ OPC_MoveParent, ++/*514495*/ OPC_CheckChild1Same, 1, ++/*514497*/ OPC_MoveParent, ++/*514498*/ OPC_MoveParent, ++/*514499*/ OPC_MoveChild1, ++/*514500*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*514503*/ OPC_CheckChild0Integer, 63, ++/*514505*/ OPC_CheckChild0Type, MVT::i64, ++/*514507*/ OPC_CheckChild1Integer, 63, ++/*514509*/ OPC_CheckChild1Type, MVT::i64, ++/*514511*/ OPC_CheckChild2Integer, 63, ++/*514513*/ OPC_CheckChild2Type, MVT::i64, ++/*514515*/ OPC_CheckChild3Integer, 63, ++/*514517*/ OPC_CheckChild3Type, MVT::i64, ++/*514519*/ OPC_CheckType, MVT::v4i64, ++/*514521*/ OPC_MoveParent, ++/*514522*/ OPC_MoveParent, ++/*514523*/ OPC_MoveParent, ++/*514524*/ OPC_MoveChild1, ++/*514525*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*514528*/ OPC_CheckChild0Integer, 1, ++/*514530*/ OPC_CheckChild0Type, MVT::i64, ++/*514532*/ OPC_CheckChild1Integer, 1, ++/*514534*/ OPC_CheckChild1Type, MVT::i64, ++/*514536*/ OPC_CheckChild2Integer, 1, ++/*514538*/ OPC_CheckChild2Type, MVT::i64, ++/*514540*/ OPC_CheckChild3Integer, 1, ++/*514542*/ OPC_CheckChild3Type, MVT::i64, ++/*514544*/ OPC_CheckType, MVT::v4i64, ++/*514546*/ OPC_MoveParent, ++/*514547*/ OPC_CheckType, MVT::v4i64, ++/*514549*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*514551*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$b), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*514559*/ /*Scope*/ 85, /*->514645*/ ++/*514560*/ OPC_CheckChild0Same, 1, ++/*514562*/ OPC_MoveChild1, ++/*514563*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*514566*/ OPC_CheckChild0Integer, 1, ++/*514568*/ OPC_CheckChild0Type, MVT::i64, ++/*514570*/ OPC_CheckChild1Integer, 1, ++/*514572*/ OPC_CheckChild1Type, MVT::i64, ++/*514574*/ OPC_CheckChild2Integer, 1, ++/*514576*/ OPC_CheckChild2Type, MVT::i64, ++/*514578*/ OPC_CheckChild3Integer, 1, ++/*514580*/ OPC_CheckChild3Type, MVT::i64, ++/*514582*/ OPC_MoveParent, ++/*514583*/ OPC_MoveParent, ++/*514584*/ OPC_MoveParent, ++/*514585*/ OPC_MoveChild1, ++/*514586*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*514589*/ OPC_CheckChild0Integer, 63, ++/*514591*/ OPC_CheckChild0Type, MVT::i64, ++/*514593*/ OPC_CheckChild1Integer, 63, ++/*514595*/ OPC_CheckChild1Type, MVT::i64, ++/*514597*/ OPC_CheckChild2Integer, 63, ++/*514599*/ OPC_CheckChild2Type, MVT::i64, ++/*514601*/ OPC_CheckChild3Integer, 63, ++/*514603*/ OPC_CheckChild3Type, MVT::i64, ++/*514605*/ OPC_CheckType, MVT::v4i64, ++/*514607*/ OPC_MoveParent, ++/*514608*/ OPC_MoveParent, ++/*514609*/ OPC_MoveParent, ++/*514610*/ OPC_MoveChild1, ++/*514611*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*514614*/ OPC_CheckChild0Integer, 1, ++/*514616*/ OPC_CheckChild0Type, MVT::i64, ++/*514618*/ OPC_CheckChild1Integer, 1, ++/*514620*/ OPC_CheckChild1Type, MVT::i64, ++/*514622*/ OPC_CheckChild2Integer, 1, ++/*514624*/ OPC_CheckChild2Type, MVT::i64, ++/*514626*/ OPC_CheckChild3Integer, 1, ++/*514628*/ OPC_CheckChild3Type, MVT::i64, ++/*514630*/ OPC_CheckType, MVT::v4i64, ++/*514632*/ OPC_MoveParent, ++/*514633*/ OPC_CheckType, MVT::v4i64, ++/*514635*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*514637*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$b), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*514645*/ 0, /*End of Scope*/ ++/*514646*/ /*Scope*/ 33|128,1/*161*/, /*->514809*/ ++/*514648*/ OPC_MoveChild0, ++/*514649*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*514652*/ OPC_CheckChild0Integer, 1, ++/*514654*/ OPC_CheckChild0Type, MVT::i64, ++/*514656*/ OPC_CheckChild1Integer, 1, ++/*514658*/ OPC_CheckChild1Type, MVT::i64, ++/*514660*/ OPC_CheckChild2Integer, 1, ++/*514662*/ OPC_CheckChild2Type, MVT::i64, ++/*514664*/ OPC_CheckChild3Integer, 1, ++/*514666*/ OPC_CheckChild3Type, MVT::i64, ++/*514668*/ OPC_MoveParent, ++/*514669*/ OPC_MoveChild1, ++/*514670*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*514673*/ OPC_Scope, 66, /*->514741*/ // 2 children in Scope ++/*514675*/ OPC_CheckChild0Same, 0, ++/*514677*/ OPC_CheckChild1Same, 1, ++/*514679*/ OPC_MoveParent, ++/*514680*/ OPC_MoveParent, ++/*514681*/ OPC_MoveChild1, ++/*514682*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*514685*/ OPC_CheckChild0Integer, 63, ++/*514687*/ OPC_CheckChild0Type, MVT::i64, ++/*514689*/ OPC_CheckChild1Integer, 63, ++/*514691*/ OPC_CheckChild1Type, MVT::i64, ++/*514693*/ OPC_CheckChild2Integer, 63, ++/*514695*/ OPC_CheckChild2Type, MVT::i64, ++/*514697*/ OPC_CheckChild3Integer, 63, ++/*514699*/ OPC_CheckChild3Type, MVT::i64, ++/*514701*/ OPC_CheckType, MVT::v4i64, ++/*514703*/ OPC_MoveParent, ++/*514704*/ OPC_MoveParent, ++/*514705*/ OPC_MoveParent, ++/*514706*/ OPC_MoveChild1, ++/*514707*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*514710*/ OPC_CheckChild0Integer, 1, ++/*514712*/ OPC_CheckChild0Type, MVT::i64, ++/*514714*/ OPC_CheckChild1Integer, 1, ++/*514716*/ OPC_CheckChild1Type, MVT::i64, ++/*514718*/ OPC_CheckChild2Integer, 1, ++/*514720*/ OPC_CheckChild2Type, MVT::i64, ++/*514722*/ OPC_CheckChild3Integer, 1, ++/*514724*/ OPC_CheckChild3Type, MVT::i64, ++/*514726*/ OPC_CheckType, MVT::v4i64, ++/*514728*/ OPC_MoveParent, ++/*514729*/ OPC_CheckType, MVT::v4i64, ++/*514731*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*514733*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$b), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*514741*/ /*Scope*/ 66, /*->514808*/ ++/*514742*/ OPC_CheckChild0Same, 1, ++/*514744*/ OPC_CheckChild1Same, 0, ++/*514746*/ OPC_MoveParent, ++/*514747*/ OPC_MoveParent, ++/*514748*/ OPC_MoveChild1, ++/*514749*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*514752*/ OPC_CheckChild0Integer, 63, ++/*514754*/ OPC_CheckChild0Type, MVT::i64, ++/*514756*/ OPC_CheckChild1Integer, 63, ++/*514758*/ OPC_CheckChild1Type, MVT::i64, ++/*514760*/ OPC_CheckChild2Integer, 63, ++/*514762*/ OPC_CheckChild2Type, MVT::i64, ++/*514764*/ OPC_CheckChild3Integer, 63, ++/*514766*/ OPC_CheckChild3Type, MVT::i64, ++/*514768*/ OPC_CheckType, MVT::v4i64, ++/*514770*/ OPC_MoveParent, ++/*514771*/ OPC_MoveParent, ++/*514772*/ OPC_MoveParent, ++/*514773*/ OPC_MoveChild1, ++/*514774*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*514777*/ OPC_CheckChild0Integer, 1, ++/*514779*/ OPC_CheckChild0Type, MVT::i64, ++/*514781*/ OPC_CheckChild1Integer, 1, ++/*514783*/ OPC_CheckChild1Type, MVT::i64, ++/*514785*/ OPC_CheckChild2Integer, 1, ++/*514787*/ OPC_CheckChild2Type, MVT::i64, ++/*514789*/ OPC_CheckChild3Integer, 1, ++/*514791*/ OPC_CheckChild3Type, MVT::i64, ++/*514793*/ OPC_CheckType, MVT::v4i64, ++/*514795*/ OPC_MoveParent, ++/*514796*/ OPC_CheckType, MVT::v4i64, ++/*514798*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*514800*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$b), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*514808*/ 0, /*End of Scope*/ ++/*514809*/ 0, /*End of Scope*/ ++/*514810*/ /*Scope*/ 74|128,8/*1098*/, /*->515910*/ ++/*514812*/ OPC_MoveChild0, ++/*514813*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*514816*/ OPC_CheckChild0Integer, 1, ++/*514818*/ OPC_CheckChild0Type, MVT::i64, ++/*514820*/ OPC_CheckChild1Integer, 1, ++/*514822*/ OPC_CheckChild1Type, MVT::i64, ++/*514824*/ OPC_CheckChild2Integer, 1, ++/*514826*/ OPC_CheckChild2Type, MVT::i64, ++/*514828*/ OPC_CheckChild3Integer, 1, ++/*514830*/ OPC_CheckChild3Type, MVT::i64, ++/*514832*/ OPC_MoveParent, ++/*514833*/ OPC_RecordChild1, // #0 = $b ++/*514834*/ OPC_MoveParent, ++/*514835*/ OPC_RecordChild1, // #1 = $a ++/*514836*/ OPC_MoveParent, ++/*514837*/ OPC_MoveChild1, ++/*514838*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*514841*/ OPC_MoveChild0, ++/*514842*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*514845*/ OPC_Scope, 22|128,4/*534*/, /*->515382*/ // 4 children in Scope ++/*514848*/ OPC_MoveChild0, ++/*514849*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*514852*/ OPC_Scope, 87, /*->514941*/ // 6 children in Scope ++/*514854*/ OPC_MoveChild0, ++/*514855*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*514858*/ OPC_CheckChild0Integer, 1, ++/*514860*/ OPC_CheckChild0Type, MVT::i64, ++/*514862*/ OPC_CheckChild1Integer, 1, ++/*514864*/ OPC_CheckChild1Type, MVT::i64, ++/*514866*/ OPC_CheckChild2Integer, 1, ++/*514868*/ OPC_CheckChild2Type, MVT::i64, ++/*514870*/ OPC_CheckChild3Integer, 1, ++/*514872*/ OPC_CheckChild3Type, MVT::i64, ++/*514874*/ OPC_MoveParent, ++/*514875*/ OPC_CheckChild1Same, 1, ++/*514877*/ OPC_MoveParent, ++/*514878*/ OPC_CheckChild1Same, 0, ++/*514880*/ OPC_MoveParent, ++/*514881*/ OPC_MoveChild1, ++/*514882*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*514885*/ OPC_CheckChild0Integer, 63, ++/*514887*/ OPC_CheckChild0Type, MVT::i64, ++/*514889*/ OPC_CheckChild1Integer, 63, ++/*514891*/ OPC_CheckChild1Type, MVT::i64, ++/*514893*/ OPC_CheckChild2Integer, 63, ++/*514895*/ OPC_CheckChild2Type, MVT::i64, ++/*514897*/ OPC_CheckChild3Integer, 63, ++/*514899*/ OPC_CheckChild3Type, MVT::i64, ++/*514901*/ OPC_CheckType, MVT::v4i64, ++/*514903*/ OPC_MoveParent, ++/*514904*/ OPC_MoveParent, ++/*514905*/ OPC_MoveParent, ++/*514906*/ OPC_MoveChild1, ++/*514907*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*514910*/ OPC_CheckChild0Integer, 1, ++/*514912*/ OPC_CheckChild0Type, MVT::i64, ++/*514914*/ OPC_CheckChild1Integer, 1, ++/*514916*/ OPC_CheckChild1Type, MVT::i64, ++/*514918*/ OPC_CheckChild2Integer, 1, ++/*514920*/ OPC_CheckChild2Type, MVT::i64, ++/*514922*/ OPC_CheckChild3Integer, 1, ++/*514924*/ OPC_CheckChild3Type, MVT::i64, ++/*514926*/ OPC_CheckType, MVT::v4i64, ++/*514928*/ OPC_MoveParent, ++/*514929*/ OPC_CheckType, MVT::v4i64, ++/*514931*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*514933*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b), LASX256D:{ *:[v4i64] }:$a), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a), LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*514941*/ /*Scope*/ 87, /*->515029*/ ++/*514942*/ OPC_CheckChild0Same, 1, ++/*514944*/ OPC_MoveChild1, ++/*514945*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*514948*/ OPC_CheckChild0Integer, 1, ++/*514950*/ OPC_CheckChild0Type, MVT::i64, ++/*514952*/ OPC_CheckChild1Integer, 1, ++/*514954*/ OPC_CheckChild1Type, MVT::i64, ++/*514956*/ OPC_CheckChild2Integer, 1, ++/*514958*/ OPC_CheckChild2Type, MVT::i64, ++/*514960*/ OPC_CheckChild3Integer, 1, ++/*514962*/ OPC_CheckChild3Type, MVT::i64, ++/*514964*/ OPC_MoveParent, ++/*514965*/ OPC_MoveParent, ++/*514966*/ OPC_CheckChild1Same, 0, ++/*514968*/ OPC_MoveParent, ++/*514969*/ OPC_MoveChild1, ++/*514970*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*514973*/ OPC_CheckChild0Integer, 63, ++/*514975*/ OPC_CheckChild0Type, MVT::i64, ++/*514977*/ OPC_CheckChild1Integer, 63, ++/*514979*/ OPC_CheckChild1Type, MVT::i64, ++/*514981*/ OPC_CheckChild2Integer, 63, ++/*514983*/ OPC_CheckChild2Type, MVT::i64, ++/*514985*/ OPC_CheckChild3Integer, 63, ++/*514987*/ OPC_CheckChild3Type, MVT::i64, ++/*514989*/ OPC_CheckType, MVT::v4i64, ++/*514991*/ OPC_MoveParent, ++/*514992*/ OPC_MoveParent, ++/*514993*/ OPC_MoveParent, ++/*514994*/ OPC_MoveChild1, ++/*514995*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*514998*/ OPC_CheckChild0Integer, 1, ++/*515000*/ OPC_CheckChild0Type, MVT::i64, ++/*515002*/ OPC_CheckChild1Integer, 1, ++/*515004*/ OPC_CheckChild1Type, MVT::i64, ++/*515006*/ OPC_CheckChild2Integer, 1, ++/*515008*/ OPC_CheckChild2Type, MVT::i64, ++/*515010*/ OPC_CheckChild3Integer, 1, ++/*515012*/ OPC_CheckChild3Type, MVT::i64, ++/*515014*/ OPC_CheckType, MVT::v4i64, ++/*515016*/ OPC_MoveParent, ++/*515017*/ OPC_CheckType, MVT::v4i64, ++/*515019*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*515021*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b), LASX256D:{ *:[v4i64] }:$a), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*515029*/ /*Scope*/ 87, /*->515117*/ ++/*515030*/ OPC_MoveChild0, ++/*515031*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*515034*/ OPC_CheckChild0Integer, 1, ++/*515036*/ OPC_CheckChild0Type, MVT::i64, ++/*515038*/ OPC_CheckChild1Integer, 1, ++/*515040*/ OPC_CheckChild1Type, MVT::i64, ++/*515042*/ OPC_CheckChild2Integer, 1, ++/*515044*/ OPC_CheckChild2Type, MVT::i64, ++/*515046*/ OPC_CheckChild3Integer, 1, ++/*515048*/ OPC_CheckChild3Type, MVT::i64, ++/*515050*/ OPC_MoveParent, ++/*515051*/ OPC_CheckChild1Same, 0, ++/*515053*/ OPC_MoveParent, ++/*515054*/ OPC_CheckChild1Same, 1, ++/*515056*/ OPC_MoveParent, ++/*515057*/ OPC_MoveChild1, ++/*515058*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*515061*/ OPC_CheckChild0Integer, 63, ++/*515063*/ OPC_CheckChild0Type, MVT::i64, ++/*515065*/ OPC_CheckChild1Integer, 63, ++/*515067*/ OPC_CheckChild1Type, MVT::i64, ++/*515069*/ OPC_CheckChild2Integer, 63, ++/*515071*/ OPC_CheckChild2Type, MVT::i64, ++/*515073*/ OPC_CheckChild3Integer, 63, ++/*515075*/ OPC_CheckChild3Type, MVT::i64, ++/*515077*/ OPC_CheckType, MVT::v4i64, ++/*515079*/ OPC_MoveParent, ++/*515080*/ OPC_MoveParent, ++/*515081*/ OPC_MoveParent, ++/*515082*/ OPC_MoveChild1, ++/*515083*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*515086*/ OPC_CheckChild0Integer, 1, ++/*515088*/ OPC_CheckChild0Type, MVT::i64, ++/*515090*/ OPC_CheckChild1Integer, 1, ++/*515092*/ OPC_CheckChild1Type, MVT::i64, ++/*515094*/ OPC_CheckChild2Integer, 1, ++/*515096*/ OPC_CheckChild2Type, MVT::i64, ++/*515098*/ OPC_CheckChild3Integer, 1, ++/*515100*/ OPC_CheckChild3Type, MVT::i64, ++/*515102*/ OPC_CheckType, MVT::v4i64, ++/*515104*/ OPC_MoveParent, ++/*515105*/ OPC_CheckType, MVT::v4i64, ++/*515107*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*515109*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b), LASX256D:{ *:[v4i64] }:$a), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b), LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*515117*/ /*Scope*/ 87, /*->515205*/ ++/*515118*/ OPC_CheckChild0Same, 0, ++/*515120*/ OPC_MoveChild1, ++/*515121*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*515124*/ OPC_CheckChild0Integer, 1, ++/*515126*/ OPC_CheckChild0Type, MVT::i64, ++/*515128*/ OPC_CheckChild1Integer, 1, ++/*515130*/ OPC_CheckChild1Type, MVT::i64, ++/*515132*/ OPC_CheckChild2Integer, 1, ++/*515134*/ OPC_CheckChild2Type, MVT::i64, ++/*515136*/ OPC_CheckChild3Integer, 1, ++/*515138*/ OPC_CheckChild3Type, MVT::i64, ++/*515140*/ OPC_MoveParent, ++/*515141*/ OPC_MoveParent, ++/*515142*/ OPC_CheckChild1Same, 1, ++/*515144*/ OPC_MoveParent, ++/*515145*/ OPC_MoveChild1, ++/*515146*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*515149*/ OPC_CheckChild0Integer, 63, ++/*515151*/ OPC_CheckChild0Type, MVT::i64, ++/*515153*/ OPC_CheckChild1Integer, 63, ++/*515155*/ OPC_CheckChild1Type, MVT::i64, ++/*515157*/ OPC_CheckChild2Integer, 63, ++/*515159*/ OPC_CheckChild2Type, MVT::i64, ++/*515161*/ OPC_CheckChild3Integer, 63, ++/*515163*/ OPC_CheckChild3Type, MVT::i64, ++/*515165*/ OPC_CheckType, MVT::v4i64, ++/*515167*/ OPC_MoveParent, ++/*515168*/ OPC_MoveParent, ++/*515169*/ OPC_MoveParent, ++/*515170*/ OPC_MoveChild1, ++/*515171*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*515174*/ OPC_CheckChild0Integer, 1, ++/*515176*/ OPC_CheckChild0Type, MVT::i64, ++/*515178*/ OPC_CheckChild1Integer, 1, ++/*515180*/ OPC_CheckChild1Type, MVT::i64, ++/*515182*/ OPC_CheckChild2Integer, 1, ++/*515184*/ OPC_CheckChild2Type, MVT::i64, ++/*515186*/ OPC_CheckChild3Integer, 1, ++/*515188*/ OPC_CheckChild3Type, MVT::i64, ++/*515190*/ OPC_CheckType, MVT::v4i64, ++/*515192*/ OPC_MoveParent, ++/*515193*/ OPC_CheckType, MVT::v4i64, ++/*515195*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*515197*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b), LASX256D:{ *:[v4i64] }:$a), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*515205*/ /*Scope*/ 87, /*->515293*/ ++/*515206*/ OPC_CheckChild0Same, 1, ++/*515208*/ OPC_CheckChild1Same, 0, ++/*515210*/ OPC_MoveParent, ++/*515211*/ OPC_MoveChild1, ++/*515212*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*515215*/ OPC_CheckChild0Integer, 1, ++/*515217*/ OPC_CheckChild0Type, MVT::i64, ++/*515219*/ OPC_CheckChild1Integer, 1, ++/*515221*/ OPC_CheckChild1Type, MVT::i64, ++/*515223*/ OPC_CheckChild2Integer, 1, ++/*515225*/ OPC_CheckChild2Type, MVT::i64, ++/*515227*/ OPC_CheckChild3Integer, 1, ++/*515229*/ OPC_CheckChild3Type, MVT::i64, ++/*515231*/ OPC_MoveParent, ++/*515232*/ OPC_MoveParent, ++/*515233*/ OPC_MoveChild1, ++/*515234*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*515237*/ OPC_CheckChild0Integer, 63, ++/*515239*/ OPC_CheckChild0Type, MVT::i64, ++/*515241*/ OPC_CheckChild1Integer, 63, ++/*515243*/ OPC_CheckChild1Type, MVT::i64, ++/*515245*/ OPC_CheckChild2Integer, 63, ++/*515247*/ OPC_CheckChild2Type, MVT::i64, ++/*515249*/ OPC_CheckChild3Integer, 63, ++/*515251*/ OPC_CheckChild3Type, MVT::i64, ++/*515253*/ OPC_CheckType, MVT::v4i64, ++/*515255*/ OPC_MoveParent, ++/*515256*/ OPC_MoveParent, ++/*515257*/ OPC_MoveParent, ++/*515258*/ OPC_MoveChild1, ++/*515259*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*515262*/ OPC_CheckChild0Integer, 1, ++/*515264*/ OPC_CheckChild0Type, MVT::i64, ++/*515266*/ OPC_CheckChild1Integer, 1, ++/*515268*/ OPC_CheckChild1Type, MVT::i64, ++/*515270*/ OPC_CheckChild2Integer, 1, ++/*515272*/ OPC_CheckChild2Type, MVT::i64, ++/*515274*/ OPC_CheckChild3Integer, 1, ++/*515276*/ OPC_CheckChild3Type, MVT::i64, ++/*515278*/ OPC_CheckType, MVT::v4i64, ++/*515280*/ OPC_MoveParent, ++/*515281*/ OPC_CheckType, MVT::v4i64, ++/*515283*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*515285*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b), LASX256D:{ *:[v4i64] }:$a), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*515293*/ /*Scope*/ 87, /*->515381*/ ++/*515294*/ OPC_CheckChild0Same, 0, ++/*515296*/ OPC_CheckChild1Same, 1, ++/*515298*/ OPC_MoveParent, ++/*515299*/ OPC_MoveChild1, ++/*515300*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*515303*/ OPC_CheckChild0Integer, 1, ++/*515305*/ OPC_CheckChild0Type, MVT::i64, ++/*515307*/ OPC_CheckChild1Integer, 1, ++/*515309*/ OPC_CheckChild1Type, MVT::i64, ++/*515311*/ OPC_CheckChild2Integer, 1, ++/*515313*/ OPC_CheckChild2Type, MVT::i64, ++/*515315*/ OPC_CheckChild3Integer, 1, ++/*515317*/ OPC_CheckChild3Type, MVT::i64, ++/*515319*/ OPC_MoveParent, ++/*515320*/ OPC_MoveParent, ++/*515321*/ OPC_MoveChild1, ++/*515322*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*515325*/ OPC_CheckChild0Integer, 63, ++/*515327*/ OPC_CheckChild0Type, MVT::i64, ++/*515329*/ OPC_CheckChild1Integer, 63, ++/*515331*/ OPC_CheckChild1Type, MVT::i64, ++/*515333*/ OPC_CheckChild2Integer, 63, ++/*515335*/ OPC_CheckChild2Type, MVT::i64, ++/*515337*/ OPC_CheckChild3Integer, 63, ++/*515339*/ OPC_CheckChild3Type, MVT::i64, ++/*515341*/ OPC_CheckType, MVT::v4i64, ++/*515343*/ OPC_MoveParent, ++/*515344*/ OPC_MoveParent, ++/*515345*/ OPC_MoveParent, ++/*515346*/ OPC_MoveChild1, ++/*515347*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*515350*/ OPC_CheckChild0Integer, 1, ++/*515352*/ OPC_CheckChild0Type, MVT::i64, ++/*515354*/ OPC_CheckChild1Integer, 1, ++/*515356*/ OPC_CheckChild1Type, MVT::i64, ++/*515358*/ OPC_CheckChild2Integer, 1, ++/*515360*/ OPC_CheckChild2Type, MVT::i64, ++/*515362*/ OPC_CheckChild3Integer, 1, ++/*515364*/ OPC_CheckChild3Type, MVT::i64, ++/*515366*/ OPC_CheckType, MVT::v4i64, ++/*515368*/ OPC_MoveParent, ++/*515369*/ OPC_CheckType, MVT::v4i64, ++/*515371*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*515373*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b), LASX256D:{ *:[v4i64] }:$a), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*515381*/ 0, /*End of Scope*/ ++/*515382*/ /*Scope*/ 52|128,1/*180*/, /*->515564*/ ++/*515384*/ OPC_CheckChild0Same, 0, ++/*515386*/ OPC_MoveChild1, ++/*515387*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*515390*/ OPC_Scope, 85, /*->515477*/ // 2 children in Scope ++/*515392*/ OPC_MoveChild0, ++/*515393*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*515396*/ OPC_CheckChild0Integer, 1, ++/*515398*/ OPC_CheckChild0Type, MVT::i64, ++/*515400*/ OPC_CheckChild1Integer, 1, ++/*515402*/ OPC_CheckChild1Type, MVT::i64, ++/*515404*/ OPC_CheckChild2Integer, 1, ++/*515406*/ OPC_CheckChild2Type, MVT::i64, ++/*515408*/ OPC_CheckChild3Integer, 1, ++/*515410*/ OPC_CheckChild3Type, MVT::i64, ++/*515412*/ OPC_MoveParent, ++/*515413*/ OPC_CheckChild1Same, 1, ++/*515415*/ OPC_MoveParent, ++/*515416*/ OPC_MoveParent, ++/*515417*/ OPC_MoveChild1, ++/*515418*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*515421*/ OPC_CheckChild0Integer, 63, ++/*515423*/ OPC_CheckChild0Type, MVT::i64, ++/*515425*/ OPC_CheckChild1Integer, 63, ++/*515427*/ OPC_CheckChild1Type, MVT::i64, ++/*515429*/ OPC_CheckChild2Integer, 63, ++/*515431*/ OPC_CheckChild2Type, MVT::i64, ++/*515433*/ OPC_CheckChild3Integer, 63, ++/*515435*/ OPC_CheckChild3Type, MVT::i64, ++/*515437*/ OPC_CheckType, MVT::v4i64, ++/*515439*/ OPC_MoveParent, ++/*515440*/ OPC_MoveParent, ++/*515441*/ OPC_MoveParent, ++/*515442*/ OPC_MoveChild1, ++/*515443*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*515446*/ OPC_CheckChild0Integer, 1, ++/*515448*/ OPC_CheckChild0Type, MVT::i64, ++/*515450*/ OPC_CheckChild1Integer, 1, ++/*515452*/ OPC_CheckChild1Type, MVT::i64, ++/*515454*/ OPC_CheckChild2Integer, 1, ++/*515456*/ OPC_CheckChild2Type, MVT::i64, ++/*515458*/ OPC_CheckChild3Integer, 1, ++/*515460*/ OPC_CheckChild3Type, MVT::i64, ++/*515462*/ OPC_CheckType, MVT::v4i64, ++/*515464*/ OPC_MoveParent, ++/*515465*/ OPC_CheckType, MVT::v4i64, ++/*515467*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*515469*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b), LASX256D:{ *:[v4i64] }:$a), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*515477*/ /*Scope*/ 85, /*->515563*/ ++/*515478*/ OPC_CheckChild0Same, 1, ++/*515480*/ OPC_MoveChild1, ++/*515481*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*515484*/ OPC_CheckChild0Integer, 1, ++/*515486*/ OPC_CheckChild0Type, MVT::i64, ++/*515488*/ OPC_CheckChild1Integer, 1, ++/*515490*/ OPC_CheckChild1Type, MVT::i64, ++/*515492*/ OPC_CheckChild2Integer, 1, ++/*515494*/ OPC_CheckChild2Type, MVT::i64, ++/*515496*/ OPC_CheckChild3Integer, 1, ++/*515498*/ OPC_CheckChild3Type, MVT::i64, ++/*515500*/ OPC_MoveParent, ++/*515501*/ OPC_MoveParent, ++/*515502*/ OPC_MoveParent, ++/*515503*/ OPC_MoveChild1, ++/*515504*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*515507*/ OPC_CheckChild0Integer, 63, ++/*515509*/ OPC_CheckChild0Type, MVT::i64, ++/*515511*/ OPC_CheckChild1Integer, 63, ++/*515513*/ OPC_CheckChild1Type, MVT::i64, ++/*515515*/ OPC_CheckChild2Integer, 63, ++/*515517*/ OPC_CheckChild2Type, MVT::i64, ++/*515519*/ OPC_CheckChild3Integer, 63, ++/*515521*/ OPC_CheckChild3Type, MVT::i64, ++/*515523*/ OPC_CheckType, MVT::v4i64, ++/*515525*/ OPC_MoveParent, ++/*515526*/ OPC_MoveParent, ++/*515527*/ OPC_MoveParent, ++/*515528*/ OPC_MoveChild1, ++/*515529*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*515532*/ OPC_CheckChild0Integer, 1, ++/*515534*/ OPC_CheckChild0Type, MVT::i64, ++/*515536*/ OPC_CheckChild1Integer, 1, ++/*515538*/ OPC_CheckChild1Type, MVT::i64, ++/*515540*/ OPC_CheckChild2Integer, 1, ++/*515542*/ OPC_CheckChild2Type, MVT::i64, ++/*515544*/ OPC_CheckChild3Integer, 1, ++/*515546*/ OPC_CheckChild3Type, MVT::i64, ++/*515548*/ OPC_CheckType, MVT::v4i64, ++/*515550*/ OPC_MoveParent, ++/*515551*/ OPC_CheckType, MVT::v4i64, ++/*515553*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*515555*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b), LASX256D:{ *:[v4i64] }:$a), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*515563*/ 0, /*End of Scope*/ ++/*515564*/ /*Scope*/ 52|128,1/*180*/, /*->515746*/ ++/*515566*/ OPC_CheckChild0Same, 1, ++/*515568*/ OPC_MoveChild1, ++/*515569*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*515572*/ OPC_Scope, 85, /*->515659*/ // 2 children in Scope ++/*515574*/ OPC_MoveChild0, ++/*515575*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*515578*/ OPC_CheckChild0Integer, 1, ++/*515580*/ OPC_CheckChild0Type, MVT::i64, ++/*515582*/ OPC_CheckChild1Integer, 1, ++/*515584*/ OPC_CheckChild1Type, MVT::i64, ++/*515586*/ OPC_CheckChild2Integer, 1, ++/*515588*/ OPC_CheckChild2Type, MVT::i64, ++/*515590*/ OPC_CheckChild3Integer, 1, ++/*515592*/ OPC_CheckChild3Type, MVT::i64, ++/*515594*/ OPC_MoveParent, ++/*515595*/ OPC_CheckChild1Same, 0, ++/*515597*/ OPC_MoveParent, ++/*515598*/ OPC_MoveParent, ++/*515599*/ OPC_MoveChild1, ++/*515600*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*515603*/ OPC_CheckChild0Integer, 63, ++/*515605*/ OPC_CheckChild0Type, MVT::i64, ++/*515607*/ OPC_CheckChild1Integer, 63, ++/*515609*/ OPC_CheckChild1Type, MVT::i64, ++/*515611*/ OPC_CheckChild2Integer, 63, ++/*515613*/ OPC_CheckChild2Type, MVT::i64, ++/*515615*/ OPC_CheckChild3Integer, 63, ++/*515617*/ OPC_CheckChild3Type, MVT::i64, ++/*515619*/ OPC_CheckType, MVT::v4i64, ++/*515621*/ OPC_MoveParent, ++/*515622*/ OPC_MoveParent, ++/*515623*/ OPC_MoveParent, ++/*515624*/ OPC_MoveChild1, ++/*515625*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*515628*/ OPC_CheckChild0Integer, 1, ++/*515630*/ OPC_CheckChild0Type, MVT::i64, ++/*515632*/ OPC_CheckChild1Integer, 1, ++/*515634*/ OPC_CheckChild1Type, MVT::i64, ++/*515636*/ OPC_CheckChild2Integer, 1, ++/*515638*/ OPC_CheckChild2Type, MVT::i64, ++/*515640*/ OPC_CheckChild3Integer, 1, ++/*515642*/ OPC_CheckChild3Type, MVT::i64, ++/*515644*/ OPC_CheckType, MVT::v4i64, ++/*515646*/ OPC_MoveParent, ++/*515647*/ OPC_CheckType, MVT::v4i64, ++/*515649*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*515651*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b), LASX256D:{ *:[v4i64] }:$a), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*515659*/ /*Scope*/ 85, /*->515745*/ ++/*515660*/ OPC_CheckChild0Same, 0, ++/*515662*/ OPC_MoveChild1, ++/*515663*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*515666*/ OPC_CheckChild0Integer, 1, ++/*515668*/ OPC_CheckChild0Type, MVT::i64, ++/*515670*/ OPC_CheckChild1Integer, 1, ++/*515672*/ OPC_CheckChild1Type, MVT::i64, ++/*515674*/ OPC_CheckChild2Integer, 1, ++/*515676*/ OPC_CheckChild2Type, MVT::i64, ++/*515678*/ OPC_CheckChild3Integer, 1, ++/*515680*/ OPC_CheckChild3Type, MVT::i64, ++/*515682*/ OPC_MoveParent, ++/*515683*/ OPC_MoveParent, ++/*515684*/ OPC_MoveParent, ++/*515685*/ OPC_MoveChild1, ++/*515686*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*515689*/ OPC_CheckChild0Integer, 63, ++/*515691*/ OPC_CheckChild0Type, MVT::i64, ++/*515693*/ OPC_CheckChild1Integer, 63, ++/*515695*/ OPC_CheckChild1Type, MVT::i64, ++/*515697*/ OPC_CheckChild2Integer, 63, ++/*515699*/ OPC_CheckChild2Type, MVT::i64, ++/*515701*/ OPC_CheckChild3Integer, 63, ++/*515703*/ OPC_CheckChild3Type, MVT::i64, ++/*515705*/ OPC_CheckType, MVT::v4i64, ++/*515707*/ OPC_MoveParent, ++/*515708*/ OPC_MoveParent, ++/*515709*/ OPC_MoveParent, ++/*515710*/ OPC_MoveChild1, ++/*515711*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*515714*/ OPC_CheckChild0Integer, 1, ++/*515716*/ OPC_CheckChild0Type, MVT::i64, ++/*515718*/ OPC_CheckChild1Integer, 1, ++/*515720*/ OPC_CheckChild1Type, MVT::i64, ++/*515722*/ OPC_CheckChild2Integer, 1, ++/*515724*/ OPC_CheckChild2Type, MVT::i64, ++/*515726*/ OPC_CheckChild3Integer, 1, ++/*515728*/ OPC_CheckChild3Type, MVT::i64, ++/*515730*/ OPC_CheckType, MVT::v4i64, ++/*515732*/ OPC_MoveParent, ++/*515733*/ OPC_CheckType, MVT::v4i64, ++/*515735*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*515737*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b), LASX256D:{ *:[v4i64] }:$a), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*515745*/ 0, /*End of Scope*/ ++/*515746*/ /*Scope*/ 33|128,1/*161*/, /*->515909*/ ++/*515748*/ OPC_MoveChild0, ++/*515749*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*515752*/ OPC_CheckChild0Integer, 1, ++/*515754*/ OPC_CheckChild0Type, MVT::i64, ++/*515756*/ OPC_CheckChild1Integer, 1, ++/*515758*/ OPC_CheckChild1Type, MVT::i64, ++/*515760*/ OPC_CheckChild2Integer, 1, ++/*515762*/ OPC_CheckChild2Type, MVT::i64, ++/*515764*/ OPC_CheckChild3Integer, 1, ++/*515766*/ OPC_CheckChild3Type, MVT::i64, ++/*515768*/ OPC_MoveParent, ++/*515769*/ OPC_MoveChild1, ++/*515770*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*515773*/ OPC_Scope, 66, /*->515841*/ // 2 children in Scope ++/*515775*/ OPC_CheckChild0Same, 1, ++/*515777*/ OPC_CheckChild1Same, 0, ++/*515779*/ OPC_MoveParent, ++/*515780*/ OPC_MoveParent, ++/*515781*/ OPC_MoveChild1, ++/*515782*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*515785*/ OPC_CheckChild0Integer, 63, ++/*515787*/ OPC_CheckChild0Type, MVT::i64, ++/*515789*/ OPC_CheckChild1Integer, 63, ++/*515791*/ OPC_CheckChild1Type, MVT::i64, ++/*515793*/ OPC_CheckChild2Integer, 63, ++/*515795*/ OPC_CheckChild2Type, MVT::i64, ++/*515797*/ OPC_CheckChild3Integer, 63, ++/*515799*/ OPC_CheckChild3Type, MVT::i64, ++/*515801*/ OPC_CheckType, MVT::v4i64, ++/*515803*/ OPC_MoveParent, ++/*515804*/ OPC_MoveParent, ++/*515805*/ OPC_MoveParent, ++/*515806*/ OPC_MoveChild1, ++/*515807*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*515810*/ OPC_CheckChild0Integer, 1, ++/*515812*/ OPC_CheckChild0Type, MVT::i64, ++/*515814*/ OPC_CheckChild1Integer, 1, ++/*515816*/ OPC_CheckChild1Type, MVT::i64, ++/*515818*/ OPC_CheckChild2Integer, 1, ++/*515820*/ OPC_CheckChild2Type, MVT::i64, ++/*515822*/ OPC_CheckChild3Integer, 1, ++/*515824*/ OPC_CheckChild3Type, MVT::i64, ++/*515826*/ OPC_CheckType, MVT::v4i64, ++/*515828*/ OPC_MoveParent, ++/*515829*/ OPC_CheckType, MVT::v4i64, ++/*515831*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*515833*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b), LASX256D:{ *:[v4i64] }:$a), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*515841*/ /*Scope*/ 66, /*->515908*/ ++/*515842*/ OPC_CheckChild0Same, 0, ++/*515844*/ OPC_CheckChild1Same, 1, ++/*515846*/ OPC_MoveParent, ++/*515847*/ OPC_MoveParent, ++/*515848*/ OPC_MoveChild1, ++/*515849*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*515852*/ OPC_CheckChild0Integer, 63, ++/*515854*/ OPC_CheckChild0Type, MVT::i64, ++/*515856*/ OPC_CheckChild1Integer, 63, ++/*515858*/ OPC_CheckChild1Type, MVT::i64, ++/*515860*/ OPC_CheckChild2Integer, 63, ++/*515862*/ OPC_CheckChild2Type, MVT::i64, ++/*515864*/ OPC_CheckChild3Integer, 63, ++/*515866*/ OPC_CheckChild3Type, MVT::i64, ++/*515868*/ OPC_CheckType, MVT::v4i64, ++/*515870*/ OPC_MoveParent, ++/*515871*/ OPC_MoveParent, ++/*515872*/ OPC_MoveParent, ++/*515873*/ OPC_MoveChild1, ++/*515874*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*515877*/ OPC_CheckChild0Integer, 1, ++/*515879*/ OPC_CheckChild0Type, MVT::i64, ++/*515881*/ OPC_CheckChild1Integer, 1, ++/*515883*/ OPC_CheckChild1Type, MVT::i64, ++/*515885*/ OPC_CheckChild2Integer, 1, ++/*515887*/ OPC_CheckChild2Type, MVT::i64, ++/*515889*/ OPC_CheckChild3Integer, 1, ++/*515891*/ OPC_CheckChild3Type, MVT::i64, ++/*515893*/ OPC_CheckType, MVT::v4i64, ++/*515895*/ OPC_MoveParent, ++/*515896*/ OPC_CheckType, MVT::v4i64, ++/*515898*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*515900*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b), LASX256D:{ *:[v4i64] }:$a), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*515908*/ 0, /*End of Scope*/ ++/*515909*/ 0, /*End of Scope*/ ++/*515910*/ /*Scope*/ 65|128,25/*3265*/, /*->519177*/ ++/*515912*/ OPC_RecordChild0, // #0 = $b ++/*515913*/ OPC_Scope, 73|128,8/*1097*/, /*->517013*/ // 2 children in Scope ++/*515916*/ OPC_MoveChild1, ++/*515917*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*515920*/ OPC_CheckChild0Integer, 1, ++/*515922*/ OPC_CheckChild0Type, MVT::i64, ++/*515924*/ OPC_CheckChild1Integer, 1, ++/*515926*/ OPC_CheckChild1Type, MVT::i64, ++/*515928*/ OPC_CheckChild2Integer, 1, ++/*515930*/ OPC_CheckChild2Type, MVT::i64, ++/*515932*/ OPC_CheckChild3Integer, 1, ++/*515934*/ OPC_CheckChild3Type, MVT::i64, ++/*515936*/ OPC_MoveParent, ++/*515937*/ OPC_MoveParent, ++/*515938*/ OPC_RecordChild1, // #1 = $a ++/*515939*/ OPC_MoveParent, ++/*515940*/ OPC_MoveChild1, ++/*515941*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*515944*/ OPC_MoveChild0, ++/*515945*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*515948*/ OPC_Scope, 22|128,4/*534*/, /*->516485*/ // 4 children in Scope ++/*515951*/ OPC_MoveChild0, ++/*515952*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*515955*/ OPC_Scope, 87, /*->516044*/ // 6 children in Scope ++/*515957*/ OPC_MoveChild0, ++/*515958*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*515961*/ OPC_CheckChild0Integer, 1, ++/*515963*/ OPC_CheckChild0Type, MVT::i64, ++/*515965*/ OPC_CheckChild1Integer, 1, ++/*515967*/ OPC_CheckChild1Type, MVT::i64, ++/*515969*/ OPC_CheckChild2Integer, 1, ++/*515971*/ OPC_CheckChild2Type, MVT::i64, ++/*515973*/ OPC_CheckChild3Integer, 1, ++/*515975*/ OPC_CheckChild3Type, MVT::i64, ++/*515977*/ OPC_MoveParent, ++/*515978*/ OPC_CheckChild1Same, 1, ++/*515980*/ OPC_MoveParent, ++/*515981*/ OPC_CheckChild1Same, 0, ++/*515983*/ OPC_MoveParent, ++/*515984*/ OPC_MoveChild1, ++/*515985*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*515988*/ OPC_CheckChild0Integer, 63, ++/*515990*/ OPC_CheckChild0Type, MVT::i64, ++/*515992*/ OPC_CheckChild1Integer, 63, ++/*515994*/ OPC_CheckChild1Type, MVT::i64, ++/*515996*/ OPC_CheckChild2Integer, 63, ++/*515998*/ OPC_CheckChild2Type, MVT::i64, ++/*516000*/ OPC_CheckChild3Integer, 63, ++/*516002*/ OPC_CheckChild3Type, MVT::i64, ++/*516004*/ OPC_CheckType, MVT::v4i64, ++/*516006*/ OPC_MoveParent, ++/*516007*/ OPC_MoveParent, ++/*516008*/ OPC_MoveParent, ++/*516009*/ OPC_MoveChild1, ++/*516010*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*516013*/ OPC_CheckChild0Integer, 1, ++/*516015*/ OPC_CheckChild0Type, MVT::i64, ++/*516017*/ OPC_CheckChild1Integer, 1, ++/*516019*/ OPC_CheckChild1Type, MVT::i64, ++/*516021*/ OPC_CheckChild2Integer, 1, ++/*516023*/ OPC_CheckChild2Type, MVT::i64, ++/*516025*/ OPC_CheckChild3Integer, 1, ++/*516027*/ OPC_CheckChild3Type, MVT::i64, ++/*516029*/ OPC_CheckType, MVT::v4i64, ++/*516031*/ OPC_MoveParent, ++/*516032*/ OPC_CheckType, MVT::v4i64, ++/*516034*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*516036*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$a), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a), LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*516044*/ /*Scope*/ 87, /*->516132*/ ++/*516045*/ OPC_CheckChild0Same, 1, ++/*516047*/ OPC_MoveChild1, ++/*516048*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*516051*/ OPC_CheckChild0Integer, 1, ++/*516053*/ OPC_CheckChild0Type, MVT::i64, ++/*516055*/ OPC_CheckChild1Integer, 1, ++/*516057*/ OPC_CheckChild1Type, MVT::i64, ++/*516059*/ OPC_CheckChild2Integer, 1, ++/*516061*/ OPC_CheckChild2Type, MVT::i64, ++/*516063*/ OPC_CheckChild3Integer, 1, ++/*516065*/ OPC_CheckChild3Type, MVT::i64, ++/*516067*/ OPC_MoveParent, ++/*516068*/ OPC_MoveParent, ++/*516069*/ OPC_CheckChild1Same, 0, ++/*516071*/ OPC_MoveParent, ++/*516072*/ OPC_MoveChild1, ++/*516073*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*516076*/ OPC_CheckChild0Integer, 63, ++/*516078*/ OPC_CheckChild0Type, MVT::i64, ++/*516080*/ OPC_CheckChild1Integer, 63, ++/*516082*/ OPC_CheckChild1Type, MVT::i64, ++/*516084*/ OPC_CheckChild2Integer, 63, ++/*516086*/ OPC_CheckChild2Type, MVT::i64, ++/*516088*/ OPC_CheckChild3Integer, 63, ++/*516090*/ OPC_CheckChild3Type, MVT::i64, ++/*516092*/ OPC_CheckType, MVT::v4i64, ++/*516094*/ OPC_MoveParent, ++/*516095*/ OPC_MoveParent, ++/*516096*/ OPC_MoveParent, ++/*516097*/ OPC_MoveChild1, ++/*516098*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*516101*/ OPC_CheckChild0Integer, 1, ++/*516103*/ OPC_CheckChild0Type, MVT::i64, ++/*516105*/ OPC_CheckChild1Integer, 1, ++/*516107*/ OPC_CheckChild1Type, MVT::i64, ++/*516109*/ OPC_CheckChild2Integer, 1, ++/*516111*/ OPC_CheckChild2Type, MVT::i64, ++/*516113*/ OPC_CheckChild3Integer, 1, ++/*516115*/ OPC_CheckChild3Type, MVT::i64, ++/*516117*/ OPC_CheckType, MVT::v4i64, ++/*516119*/ OPC_MoveParent, ++/*516120*/ OPC_CheckType, MVT::v4i64, ++/*516122*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*516124*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$a), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*516132*/ /*Scope*/ 87, /*->516220*/ ++/*516133*/ OPC_MoveChild0, ++/*516134*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*516137*/ OPC_CheckChild0Integer, 1, ++/*516139*/ OPC_CheckChild0Type, MVT::i64, ++/*516141*/ OPC_CheckChild1Integer, 1, ++/*516143*/ OPC_CheckChild1Type, MVT::i64, ++/*516145*/ OPC_CheckChild2Integer, 1, ++/*516147*/ OPC_CheckChild2Type, MVT::i64, ++/*516149*/ OPC_CheckChild3Integer, 1, ++/*516151*/ OPC_CheckChild3Type, MVT::i64, ++/*516153*/ OPC_MoveParent, ++/*516154*/ OPC_CheckChild1Same, 0, ++/*516156*/ OPC_MoveParent, ++/*516157*/ OPC_CheckChild1Same, 1, ++/*516159*/ OPC_MoveParent, ++/*516160*/ OPC_MoveChild1, ++/*516161*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*516164*/ OPC_CheckChild0Integer, 63, ++/*516166*/ OPC_CheckChild0Type, MVT::i64, ++/*516168*/ OPC_CheckChild1Integer, 63, ++/*516170*/ OPC_CheckChild1Type, MVT::i64, ++/*516172*/ OPC_CheckChild2Integer, 63, ++/*516174*/ OPC_CheckChild2Type, MVT::i64, ++/*516176*/ OPC_CheckChild3Integer, 63, ++/*516178*/ OPC_CheckChild3Type, MVT::i64, ++/*516180*/ OPC_CheckType, MVT::v4i64, ++/*516182*/ OPC_MoveParent, ++/*516183*/ OPC_MoveParent, ++/*516184*/ OPC_MoveParent, ++/*516185*/ OPC_MoveChild1, ++/*516186*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*516189*/ OPC_CheckChild0Integer, 1, ++/*516191*/ OPC_CheckChild0Type, MVT::i64, ++/*516193*/ OPC_CheckChild1Integer, 1, ++/*516195*/ OPC_CheckChild1Type, MVT::i64, ++/*516197*/ OPC_CheckChild2Integer, 1, ++/*516199*/ OPC_CheckChild2Type, MVT::i64, ++/*516201*/ OPC_CheckChild3Integer, 1, ++/*516203*/ OPC_CheckChild3Type, MVT::i64, ++/*516205*/ OPC_CheckType, MVT::v4i64, ++/*516207*/ OPC_MoveParent, ++/*516208*/ OPC_CheckType, MVT::v4i64, ++/*516210*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*516212*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$a), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b), LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*516220*/ /*Scope*/ 87, /*->516308*/ ++/*516221*/ OPC_CheckChild0Same, 0, ++/*516223*/ OPC_MoveChild1, ++/*516224*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*516227*/ OPC_CheckChild0Integer, 1, ++/*516229*/ OPC_CheckChild0Type, MVT::i64, ++/*516231*/ OPC_CheckChild1Integer, 1, ++/*516233*/ OPC_CheckChild1Type, MVT::i64, ++/*516235*/ OPC_CheckChild2Integer, 1, ++/*516237*/ OPC_CheckChild2Type, MVT::i64, ++/*516239*/ OPC_CheckChild3Integer, 1, ++/*516241*/ OPC_CheckChild3Type, MVT::i64, ++/*516243*/ OPC_MoveParent, ++/*516244*/ OPC_MoveParent, ++/*516245*/ OPC_CheckChild1Same, 1, ++/*516247*/ OPC_MoveParent, ++/*516248*/ OPC_MoveChild1, ++/*516249*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*516252*/ OPC_CheckChild0Integer, 63, ++/*516254*/ OPC_CheckChild0Type, MVT::i64, ++/*516256*/ OPC_CheckChild1Integer, 63, ++/*516258*/ OPC_CheckChild1Type, MVT::i64, ++/*516260*/ OPC_CheckChild2Integer, 63, ++/*516262*/ OPC_CheckChild2Type, MVT::i64, ++/*516264*/ OPC_CheckChild3Integer, 63, ++/*516266*/ OPC_CheckChild3Type, MVT::i64, ++/*516268*/ OPC_CheckType, MVT::v4i64, ++/*516270*/ OPC_MoveParent, ++/*516271*/ OPC_MoveParent, ++/*516272*/ OPC_MoveParent, ++/*516273*/ OPC_MoveChild1, ++/*516274*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*516277*/ OPC_CheckChild0Integer, 1, ++/*516279*/ OPC_CheckChild0Type, MVT::i64, ++/*516281*/ OPC_CheckChild1Integer, 1, ++/*516283*/ OPC_CheckChild1Type, MVT::i64, ++/*516285*/ OPC_CheckChild2Integer, 1, ++/*516287*/ OPC_CheckChild2Type, MVT::i64, ++/*516289*/ OPC_CheckChild3Integer, 1, ++/*516291*/ OPC_CheckChild3Type, MVT::i64, ++/*516293*/ OPC_CheckType, MVT::v4i64, ++/*516295*/ OPC_MoveParent, ++/*516296*/ OPC_CheckType, MVT::v4i64, ++/*516298*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*516300*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$a), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*516308*/ /*Scope*/ 87, /*->516396*/ ++/*516309*/ OPC_CheckChild0Same, 1, ++/*516311*/ OPC_CheckChild1Same, 0, ++/*516313*/ OPC_MoveParent, ++/*516314*/ OPC_MoveChild1, ++/*516315*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*516318*/ OPC_CheckChild0Integer, 1, ++/*516320*/ OPC_CheckChild0Type, MVT::i64, ++/*516322*/ OPC_CheckChild1Integer, 1, ++/*516324*/ OPC_CheckChild1Type, MVT::i64, ++/*516326*/ OPC_CheckChild2Integer, 1, ++/*516328*/ OPC_CheckChild2Type, MVT::i64, ++/*516330*/ OPC_CheckChild3Integer, 1, ++/*516332*/ OPC_CheckChild3Type, MVT::i64, ++/*516334*/ OPC_MoveParent, ++/*516335*/ OPC_MoveParent, ++/*516336*/ OPC_MoveChild1, ++/*516337*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*516340*/ OPC_CheckChild0Integer, 63, ++/*516342*/ OPC_CheckChild0Type, MVT::i64, ++/*516344*/ OPC_CheckChild1Integer, 63, ++/*516346*/ OPC_CheckChild1Type, MVT::i64, ++/*516348*/ OPC_CheckChild2Integer, 63, ++/*516350*/ OPC_CheckChild2Type, MVT::i64, ++/*516352*/ OPC_CheckChild3Integer, 63, ++/*516354*/ OPC_CheckChild3Type, MVT::i64, ++/*516356*/ OPC_CheckType, MVT::v4i64, ++/*516358*/ OPC_MoveParent, ++/*516359*/ OPC_MoveParent, ++/*516360*/ OPC_MoveParent, ++/*516361*/ OPC_MoveChild1, ++/*516362*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*516365*/ OPC_CheckChild0Integer, 1, ++/*516367*/ OPC_CheckChild0Type, MVT::i64, ++/*516369*/ OPC_CheckChild1Integer, 1, ++/*516371*/ OPC_CheckChild1Type, MVT::i64, ++/*516373*/ OPC_CheckChild2Integer, 1, ++/*516375*/ OPC_CheckChild2Type, MVT::i64, ++/*516377*/ OPC_CheckChild3Integer, 1, ++/*516379*/ OPC_CheckChild3Type, MVT::i64, ++/*516381*/ OPC_CheckType, MVT::v4i64, ++/*516383*/ OPC_MoveParent, ++/*516384*/ OPC_CheckType, MVT::v4i64, ++/*516386*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*516388*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$a), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*516396*/ /*Scope*/ 87, /*->516484*/ ++/*516397*/ OPC_CheckChild0Same, 0, ++/*516399*/ OPC_CheckChild1Same, 1, ++/*516401*/ OPC_MoveParent, ++/*516402*/ OPC_MoveChild1, ++/*516403*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*516406*/ OPC_CheckChild0Integer, 1, ++/*516408*/ OPC_CheckChild0Type, MVT::i64, ++/*516410*/ OPC_CheckChild1Integer, 1, ++/*516412*/ OPC_CheckChild1Type, MVT::i64, ++/*516414*/ OPC_CheckChild2Integer, 1, ++/*516416*/ OPC_CheckChild2Type, MVT::i64, ++/*516418*/ OPC_CheckChild3Integer, 1, ++/*516420*/ OPC_CheckChild3Type, MVT::i64, ++/*516422*/ OPC_MoveParent, ++/*516423*/ OPC_MoveParent, ++/*516424*/ OPC_MoveChild1, ++/*516425*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*516428*/ OPC_CheckChild0Integer, 63, ++/*516430*/ OPC_CheckChild0Type, MVT::i64, ++/*516432*/ OPC_CheckChild1Integer, 63, ++/*516434*/ OPC_CheckChild1Type, MVT::i64, ++/*516436*/ OPC_CheckChild2Integer, 63, ++/*516438*/ OPC_CheckChild2Type, MVT::i64, ++/*516440*/ OPC_CheckChild3Integer, 63, ++/*516442*/ OPC_CheckChild3Type, MVT::i64, ++/*516444*/ OPC_CheckType, MVT::v4i64, ++/*516446*/ OPC_MoveParent, ++/*516447*/ OPC_MoveParent, ++/*516448*/ OPC_MoveParent, ++/*516449*/ OPC_MoveChild1, ++/*516450*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*516453*/ OPC_CheckChild0Integer, 1, ++/*516455*/ OPC_CheckChild0Type, MVT::i64, ++/*516457*/ OPC_CheckChild1Integer, 1, ++/*516459*/ OPC_CheckChild1Type, MVT::i64, ++/*516461*/ OPC_CheckChild2Integer, 1, ++/*516463*/ OPC_CheckChild2Type, MVT::i64, ++/*516465*/ OPC_CheckChild3Integer, 1, ++/*516467*/ OPC_CheckChild3Type, MVT::i64, ++/*516469*/ OPC_CheckType, MVT::v4i64, ++/*516471*/ OPC_MoveParent, ++/*516472*/ OPC_CheckType, MVT::v4i64, ++/*516474*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*516476*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$a), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*516484*/ 0, /*End of Scope*/ ++/*516485*/ /*Scope*/ 52|128,1/*180*/, /*->516667*/ ++/*516487*/ OPC_CheckChild0Same, 0, ++/*516489*/ OPC_MoveChild1, ++/*516490*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*516493*/ OPC_Scope, 85, /*->516580*/ // 2 children in Scope ++/*516495*/ OPC_MoveChild0, ++/*516496*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*516499*/ OPC_CheckChild0Integer, 1, ++/*516501*/ OPC_CheckChild0Type, MVT::i64, ++/*516503*/ OPC_CheckChild1Integer, 1, ++/*516505*/ OPC_CheckChild1Type, MVT::i64, ++/*516507*/ OPC_CheckChild2Integer, 1, ++/*516509*/ OPC_CheckChild2Type, MVT::i64, ++/*516511*/ OPC_CheckChild3Integer, 1, ++/*516513*/ OPC_CheckChild3Type, MVT::i64, ++/*516515*/ OPC_MoveParent, ++/*516516*/ OPC_CheckChild1Same, 1, ++/*516518*/ OPC_MoveParent, ++/*516519*/ OPC_MoveParent, ++/*516520*/ OPC_MoveChild1, ++/*516521*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*516524*/ OPC_CheckChild0Integer, 63, ++/*516526*/ OPC_CheckChild0Type, MVT::i64, ++/*516528*/ OPC_CheckChild1Integer, 63, ++/*516530*/ OPC_CheckChild1Type, MVT::i64, ++/*516532*/ OPC_CheckChild2Integer, 63, ++/*516534*/ OPC_CheckChild2Type, MVT::i64, ++/*516536*/ OPC_CheckChild3Integer, 63, ++/*516538*/ OPC_CheckChild3Type, MVT::i64, ++/*516540*/ OPC_CheckType, MVT::v4i64, ++/*516542*/ OPC_MoveParent, ++/*516543*/ OPC_MoveParent, ++/*516544*/ OPC_MoveParent, ++/*516545*/ OPC_MoveChild1, ++/*516546*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*516549*/ OPC_CheckChild0Integer, 1, ++/*516551*/ OPC_CheckChild0Type, MVT::i64, ++/*516553*/ OPC_CheckChild1Integer, 1, ++/*516555*/ OPC_CheckChild1Type, MVT::i64, ++/*516557*/ OPC_CheckChild2Integer, 1, ++/*516559*/ OPC_CheckChild2Type, MVT::i64, ++/*516561*/ OPC_CheckChild3Integer, 1, ++/*516563*/ OPC_CheckChild3Type, MVT::i64, ++/*516565*/ OPC_CheckType, MVT::v4i64, ++/*516567*/ OPC_MoveParent, ++/*516568*/ OPC_CheckType, MVT::v4i64, ++/*516570*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*516572*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$a), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*516580*/ /*Scope*/ 85, /*->516666*/ ++/*516581*/ OPC_CheckChild0Same, 1, ++/*516583*/ OPC_MoveChild1, ++/*516584*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*516587*/ OPC_CheckChild0Integer, 1, ++/*516589*/ OPC_CheckChild0Type, MVT::i64, ++/*516591*/ OPC_CheckChild1Integer, 1, ++/*516593*/ OPC_CheckChild1Type, MVT::i64, ++/*516595*/ OPC_CheckChild2Integer, 1, ++/*516597*/ OPC_CheckChild2Type, MVT::i64, ++/*516599*/ OPC_CheckChild3Integer, 1, ++/*516601*/ OPC_CheckChild3Type, MVT::i64, ++/*516603*/ OPC_MoveParent, ++/*516604*/ OPC_MoveParent, ++/*516605*/ OPC_MoveParent, ++/*516606*/ OPC_MoveChild1, ++/*516607*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*516610*/ OPC_CheckChild0Integer, 63, ++/*516612*/ OPC_CheckChild0Type, MVT::i64, ++/*516614*/ OPC_CheckChild1Integer, 63, ++/*516616*/ OPC_CheckChild1Type, MVT::i64, ++/*516618*/ OPC_CheckChild2Integer, 63, ++/*516620*/ OPC_CheckChild2Type, MVT::i64, ++/*516622*/ OPC_CheckChild3Integer, 63, ++/*516624*/ OPC_CheckChild3Type, MVT::i64, ++/*516626*/ OPC_CheckType, MVT::v4i64, ++/*516628*/ OPC_MoveParent, ++/*516629*/ OPC_MoveParent, ++/*516630*/ OPC_MoveParent, ++/*516631*/ OPC_MoveChild1, ++/*516632*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*516635*/ OPC_CheckChild0Integer, 1, ++/*516637*/ OPC_CheckChild0Type, MVT::i64, ++/*516639*/ OPC_CheckChild1Integer, 1, ++/*516641*/ OPC_CheckChild1Type, MVT::i64, ++/*516643*/ OPC_CheckChild2Integer, 1, ++/*516645*/ OPC_CheckChild2Type, MVT::i64, ++/*516647*/ OPC_CheckChild3Integer, 1, ++/*516649*/ OPC_CheckChild3Type, MVT::i64, ++/*516651*/ OPC_CheckType, MVT::v4i64, ++/*516653*/ OPC_MoveParent, ++/*516654*/ OPC_CheckType, MVT::v4i64, ++/*516656*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*516658*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$a), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*516666*/ 0, /*End of Scope*/ ++/*516667*/ /*Scope*/ 52|128,1/*180*/, /*->516849*/ ++/*516669*/ OPC_CheckChild0Same, 1, ++/*516671*/ OPC_MoveChild1, ++/*516672*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*516675*/ OPC_Scope, 85, /*->516762*/ // 2 children in Scope ++/*516677*/ OPC_MoveChild0, ++/*516678*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*516681*/ OPC_CheckChild0Integer, 1, ++/*516683*/ OPC_CheckChild0Type, MVT::i64, ++/*516685*/ OPC_CheckChild1Integer, 1, ++/*516687*/ OPC_CheckChild1Type, MVT::i64, ++/*516689*/ OPC_CheckChild2Integer, 1, ++/*516691*/ OPC_CheckChild2Type, MVT::i64, ++/*516693*/ OPC_CheckChild3Integer, 1, ++/*516695*/ OPC_CheckChild3Type, MVT::i64, ++/*516697*/ OPC_MoveParent, ++/*516698*/ OPC_CheckChild1Same, 0, ++/*516700*/ OPC_MoveParent, ++/*516701*/ OPC_MoveParent, ++/*516702*/ OPC_MoveChild1, ++/*516703*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*516706*/ OPC_CheckChild0Integer, 63, ++/*516708*/ OPC_CheckChild0Type, MVT::i64, ++/*516710*/ OPC_CheckChild1Integer, 63, ++/*516712*/ OPC_CheckChild1Type, MVT::i64, ++/*516714*/ OPC_CheckChild2Integer, 63, ++/*516716*/ OPC_CheckChild2Type, MVT::i64, ++/*516718*/ OPC_CheckChild3Integer, 63, ++/*516720*/ OPC_CheckChild3Type, MVT::i64, ++/*516722*/ OPC_CheckType, MVT::v4i64, ++/*516724*/ OPC_MoveParent, ++/*516725*/ OPC_MoveParent, ++/*516726*/ OPC_MoveParent, ++/*516727*/ OPC_MoveChild1, ++/*516728*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*516731*/ OPC_CheckChild0Integer, 1, ++/*516733*/ OPC_CheckChild0Type, MVT::i64, ++/*516735*/ OPC_CheckChild1Integer, 1, ++/*516737*/ OPC_CheckChild1Type, MVT::i64, ++/*516739*/ OPC_CheckChild2Integer, 1, ++/*516741*/ OPC_CheckChild2Type, MVT::i64, ++/*516743*/ OPC_CheckChild3Integer, 1, ++/*516745*/ OPC_CheckChild3Type, MVT::i64, ++/*516747*/ OPC_CheckType, MVT::v4i64, ++/*516749*/ OPC_MoveParent, ++/*516750*/ OPC_CheckType, MVT::v4i64, ++/*516752*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*516754*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$a), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*516762*/ /*Scope*/ 85, /*->516848*/ ++/*516763*/ OPC_CheckChild0Same, 0, ++/*516765*/ OPC_MoveChild1, ++/*516766*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*516769*/ OPC_CheckChild0Integer, 1, ++/*516771*/ OPC_CheckChild0Type, MVT::i64, ++/*516773*/ OPC_CheckChild1Integer, 1, ++/*516775*/ OPC_CheckChild1Type, MVT::i64, ++/*516777*/ OPC_CheckChild2Integer, 1, ++/*516779*/ OPC_CheckChild2Type, MVT::i64, ++/*516781*/ OPC_CheckChild3Integer, 1, ++/*516783*/ OPC_CheckChild3Type, MVT::i64, ++/*516785*/ OPC_MoveParent, ++/*516786*/ OPC_MoveParent, ++/*516787*/ OPC_MoveParent, ++/*516788*/ OPC_MoveChild1, ++/*516789*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*516792*/ OPC_CheckChild0Integer, 63, ++/*516794*/ OPC_CheckChild0Type, MVT::i64, ++/*516796*/ OPC_CheckChild1Integer, 63, ++/*516798*/ OPC_CheckChild1Type, MVT::i64, ++/*516800*/ OPC_CheckChild2Integer, 63, ++/*516802*/ OPC_CheckChild2Type, MVT::i64, ++/*516804*/ OPC_CheckChild3Integer, 63, ++/*516806*/ OPC_CheckChild3Type, MVT::i64, ++/*516808*/ OPC_CheckType, MVT::v4i64, ++/*516810*/ OPC_MoveParent, ++/*516811*/ OPC_MoveParent, ++/*516812*/ OPC_MoveParent, ++/*516813*/ OPC_MoveChild1, ++/*516814*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*516817*/ OPC_CheckChild0Integer, 1, ++/*516819*/ OPC_CheckChild0Type, MVT::i64, ++/*516821*/ OPC_CheckChild1Integer, 1, ++/*516823*/ OPC_CheckChild1Type, MVT::i64, ++/*516825*/ OPC_CheckChild2Integer, 1, ++/*516827*/ OPC_CheckChild2Type, MVT::i64, ++/*516829*/ OPC_CheckChild3Integer, 1, ++/*516831*/ OPC_CheckChild3Type, MVT::i64, ++/*516833*/ OPC_CheckType, MVT::v4i64, ++/*516835*/ OPC_MoveParent, ++/*516836*/ OPC_CheckType, MVT::v4i64, ++/*516838*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*516840*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$a), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*516848*/ 0, /*End of Scope*/ ++/*516849*/ /*Scope*/ 33|128,1/*161*/, /*->517012*/ ++/*516851*/ OPC_MoveChild0, ++/*516852*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*516855*/ OPC_CheckChild0Integer, 1, ++/*516857*/ OPC_CheckChild0Type, MVT::i64, ++/*516859*/ OPC_CheckChild1Integer, 1, ++/*516861*/ OPC_CheckChild1Type, MVT::i64, ++/*516863*/ OPC_CheckChild2Integer, 1, ++/*516865*/ OPC_CheckChild2Type, MVT::i64, ++/*516867*/ OPC_CheckChild3Integer, 1, ++/*516869*/ OPC_CheckChild3Type, MVT::i64, ++/*516871*/ OPC_MoveParent, ++/*516872*/ OPC_MoveChild1, ++/*516873*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*516876*/ OPC_Scope, 66, /*->516944*/ // 2 children in Scope ++/*516878*/ OPC_CheckChild0Same, 1, ++/*516880*/ OPC_CheckChild1Same, 0, ++/*516882*/ OPC_MoveParent, ++/*516883*/ OPC_MoveParent, ++/*516884*/ OPC_MoveChild1, ++/*516885*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*516888*/ OPC_CheckChild0Integer, 63, ++/*516890*/ OPC_CheckChild0Type, MVT::i64, ++/*516892*/ OPC_CheckChild1Integer, 63, ++/*516894*/ OPC_CheckChild1Type, MVT::i64, ++/*516896*/ OPC_CheckChild2Integer, 63, ++/*516898*/ OPC_CheckChild2Type, MVT::i64, ++/*516900*/ OPC_CheckChild3Integer, 63, ++/*516902*/ OPC_CheckChild3Type, MVT::i64, ++/*516904*/ OPC_CheckType, MVT::v4i64, ++/*516906*/ OPC_MoveParent, ++/*516907*/ OPC_MoveParent, ++/*516908*/ OPC_MoveParent, ++/*516909*/ OPC_MoveChild1, ++/*516910*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*516913*/ OPC_CheckChild0Integer, 1, ++/*516915*/ OPC_CheckChild0Type, MVT::i64, ++/*516917*/ OPC_CheckChild1Integer, 1, ++/*516919*/ OPC_CheckChild1Type, MVT::i64, ++/*516921*/ OPC_CheckChild2Integer, 1, ++/*516923*/ OPC_CheckChild2Type, MVT::i64, ++/*516925*/ OPC_CheckChild3Integer, 1, ++/*516927*/ OPC_CheckChild3Type, MVT::i64, ++/*516929*/ OPC_CheckType, MVT::v4i64, ++/*516931*/ OPC_MoveParent, ++/*516932*/ OPC_CheckType, MVT::v4i64, ++/*516934*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*516936*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$a), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*516944*/ /*Scope*/ 66, /*->517011*/ ++/*516945*/ OPC_CheckChild0Same, 0, ++/*516947*/ OPC_CheckChild1Same, 1, ++/*516949*/ OPC_MoveParent, ++/*516950*/ OPC_MoveParent, ++/*516951*/ OPC_MoveChild1, ++/*516952*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*516955*/ OPC_CheckChild0Integer, 63, ++/*516957*/ OPC_CheckChild0Type, MVT::i64, ++/*516959*/ OPC_CheckChild1Integer, 63, ++/*516961*/ OPC_CheckChild1Type, MVT::i64, ++/*516963*/ OPC_CheckChild2Integer, 63, ++/*516965*/ OPC_CheckChild2Type, MVT::i64, ++/*516967*/ OPC_CheckChild3Integer, 63, ++/*516969*/ OPC_CheckChild3Type, MVT::i64, ++/*516971*/ OPC_CheckType, MVT::v4i64, ++/*516973*/ OPC_MoveParent, ++/*516974*/ OPC_MoveParent, ++/*516975*/ OPC_MoveParent, ++/*516976*/ OPC_MoveChild1, ++/*516977*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*516980*/ OPC_CheckChild0Integer, 1, ++/*516982*/ OPC_CheckChild0Type, MVT::i64, ++/*516984*/ OPC_CheckChild1Integer, 1, ++/*516986*/ OPC_CheckChild1Type, MVT::i64, ++/*516988*/ OPC_CheckChild2Integer, 1, ++/*516990*/ OPC_CheckChild2Type, MVT::i64, ++/*516992*/ OPC_CheckChild3Integer, 1, ++/*516994*/ OPC_CheckChild3Type, MVT::i64, ++/*516996*/ OPC_CheckType, MVT::v4i64, ++/*516998*/ OPC_MoveParent, ++/*516999*/ OPC_CheckType, MVT::v4i64, ++/*517001*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*517003*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$a), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*517011*/ 0, /*End of Scope*/ ++/*517012*/ 0, /*End of Scope*/ ++/*517013*/ /*Scope*/ 113|128,16/*2161*/, /*->519176*/ ++/*517015*/ OPC_RecordChild1, // #1 = $b ++/*517016*/ OPC_MoveParent, ++/*517017*/ OPC_MoveChild1, ++/*517018*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*517021*/ OPC_CheckChild0Integer, 1, ++/*517023*/ OPC_CheckChild0Type, MVT::i64, ++/*517025*/ OPC_CheckChild1Integer, 1, ++/*517027*/ OPC_CheckChild1Type, MVT::i64, ++/*517029*/ OPC_CheckChild2Integer, 1, ++/*517031*/ OPC_CheckChild2Type, MVT::i64, ++/*517033*/ OPC_CheckChild3Integer, 1, ++/*517035*/ OPC_CheckChild3Type, MVT::i64, ++/*517037*/ OPC_MoveParent, ++/*517038*/ OPC_MoveParent, ++/*517039*/ OPC_MoveChild1, ++/*517040*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*517043*/ OPC_MoveChild0, ++/*517044*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*517047*/ OPC_Scope, 22|128,4/*534*/, /*->517584*/ // 7 children in Scope ++/*517050*/ OPC_MoveChild0, ++/*517051*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*517054*/ OPC_Scope, 87, /*->517143*/ // 6 children in Scope ++/*517056*/ OPC_MoveChild0, ++/*517057*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*517060*/ OPC_CheckChild0Integer, 1, ++/*517062*/ OPC_CheckChild0Type, MVT::i64, ++/*517064*/ OPC_CheckChild1Integer, 1, ++/*517066*/ OPC_CheckChild1Type, MVT::i64, ++/*517068*/ OPC_CheckChild2Integer, 1, ++/*517070*/ OPC_CheckChild2Type, MVT::i64, ++/*517072*/ OPC_CheckChild3Integer, 1, ++/*517074*/ OPC_CheckChild3Type, MVT::i64, ++/*517076*/ OPC_MoveParent, ++/*517077*/ OPC_CheckChild1Same, 0, ++/*517079*/ OPC_MoveParent, ++/*517080*/ OPC_CheckChild1Same, 1, ++/*517082*/ OPC_MoveParent, ++/*517083*/ OPC_MoveChild1, ++/*517084*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*517087*/ OPC_CheckChild0Integer, 63, ++/*517089*/ OPC_CheckChild0Type, MVT::i64, ++/*517091*/ OPC_CheckChild1Integer, 63, ++/*517093*/ OPC_CheckChild1Type, MVT::i64, ++/*517095*/ OPC_CheckChild2Integer, 63, ++/*517097*/ OPC_CheckChild2Type, MVT::i64, ++/*517099*/ OPC_CheckChild3Integer, 63, ++/*517101*/ OPC_CheckChild3Type, MVT::i64, ++/*517103*/ OPC_CheckType, MVT::v4i64, ++/*517105*/ OPC_MoveParent, ++/*517106*/ OPC_MoveParent, ++/*517107*/ OPC_MoveParent, ++/*517108*/ OPC_MoveChild1, ++/*517109*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*517112*/ OPC_CheckChild0Integer, 1, ++/*517114*/ OPC_CheckChild0Type, MVT::i64, ++/*517116*/ OPC_CheckChild1Integer, 1, ++/*517118*/ OPC_CheckChild1Type, MVT::i64, ++/*517120*/ OPC_CheckChild2Integer, 1, ++/*517122*/ OPC_CheckChild2Type, MVT::i64, ++/*517124*/ OPC_CheckChild3Integer, 1, ++/*517126*/ OPC_CheckChild3Type, MVT::i64, ++/*517128*/ OPC_CheckType, MVT::v4i64, ++/*517130*/ OPC_MoveParent, ++/*517131*/ OPC_CheckType, MVT::v4i64, ++/*517133*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*517135*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a), LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*517143*/ /*Scope*/ 87, /*->517231*/ ++/*517144*/ OPC_CheckChild0Same, 0, ++/*517146*/ OPC_MoveChild1, ++/*517147*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*517150*/ OPC_CheckChild0Integer, 1, ++/*517152*/ OPC_CheckChild0Type, MVT::i64, ++/*517154*/ OPC_CheckChild1Integer, 1, ++/*517156*/ OPC_CheckChild1Type, MVT::i64, ++/*517158*/ OPC_CheckChild2Integer, 1, ++/*517160*/ OPC_CheckChild2Type, MVT::i64, ++/*517162*/ OPC_CheckChild3Integer, 1, ++/*517164*/ OPC_CheckChild3Type, MVT::i64, ++/*517166*/ OPC_MoveParent, ++/*517167*/ OPC_MoveParent, ++/*517168*/ OPC_CheckChild1Same, 1, ++/*517170*/ OPC_MoveParent, ++/*517171*/ OPC_MoveChild1, ++/*517172*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*517175*/ OPC_CheckChild0Integer, 63, ++/*517177*/ OPC_CheckChild0Type, MVT::i64, ++/*517179*/ OPC_CheckChild1Integer, 63, ++/*517181*/ OPC_CheckChild1Type, MVT::i64, ++/*517183*/ OPC_CheckChild2Integer, 63, ++/*517185*/ OPC_CheckChild2Type, MVT::i64, ++/*517187*/ OPC_CheckChild3Integer, 63, ++/*517189*/ OPC_CheckChild3Type, MVT::i64, ++/*517191*/ OPC_CheckType, MVT::v4i64, ++/*517193*/ OPC_MoveParent, ++/*517194*/ OPC_MoveParent, ++/*517195*/ OPC_MoveParent, ++/*517196*/ OPC_MoveChild1, ++/*517197*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*517200*/ OPC_CheckChild0Integer, 1, ++/*517202*/ OPC_CheckChild0Type, MVT::i64, ++/*517204*/ OPC_CheckChild1Integer, 1, ++/*517206*/ OPC_CheckChild1Type, MVT::i64, ++/*517208*/ OPC_CheckChild2Integer, 1, ++/*517210*/ OPC_CheckChild2Type, MVT::i64, ++/*517212*/ OPC_CheckChild3Integer, 1, ++/*517214*/ OPC_CheckChild3Type, MVT::i64, ++/*517216*/ OPC_CheckType, MVT::v4i64, ++/*517218*/ OPC_MoveParent, ++/*517219*/ OPC_CheckType, MVT::v4i64, ++/*517221*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*517223*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*517231*/ /*Scope*/ 87, /*->517319*/ ++/*517232*/ OPC_MoveChild0, ++/*517233*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*517236*/ OPC_CheckChild0Integer, 1, ++/*517238*/ OPC_CheckChild0Type, MVT::i64, ++/*517240*/ OPC_CheckChild1Integer, 1, ++/*517242*/ OPC_CheckChild1Type, MVT::i64, ++/*517244*/ OPC_CheckChild2Integer, 1, ++/*517246*/ OPC_CheckChild2Type, MVT::i64, ++/*517248*/ OPC_CheckChild3Integer, 1, ++/*517250*/ OPC_CheckChild3Type, MVT::i64, ++/*517252*/ OPC_MoveParent, ++/*517253*/ OPC_CheckChild1Same, 1, ++/*517255*/ OPC_MoveParent, ++/*517256*/ OPC_CheckChild1Same, 0, ++/*517258*/ OPC_MoveParent, ++/*517259*/ OPC_MoveChild1, ++/*517260*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*517263*/ OPC_CheckChild0Integer, 63, ++/*517265*/ OPC_CheckChild0Type, MVT::i64, ++/*517267*/ OPC_CheckChild1Integer, 63, ++/*517269*/ OPC_CheckChild1Type, MVT::i64, ++/*517271*/ OPC_CheckChild2Integer, 63, ++/*517273*/ OPC_CheckChild2Type, MVT::i64, ++/*517275*/ OPC_CheckChild3Integer, 63, ++/*517277*/ OPC_CheckChild3Type, MVT::i64, ++/*517279*/ OPC_CheckType, MVT::v4i64, ++/*517281*/ OPC_MoveParent, ++/*517282*/ OPC_MoveParent, ++/*517283*/ OPC_MoveParent, ++/*517284*/ OPC_MoveChild1, ++/*517285*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*517288*/ OPC_CheckChild0Integer, 1, ++/*517290*/ OPC_CheckChild0Type, MVT::i64, ++/*517292*/ OPC_CheckChild1Integer, 1, ++/*517294*/ OPC_CheckChild1Type, MVT::i64, ++/*517296*/ OPC_CheckChild2Integer, 1, ++/*517298*/ OPC_CheckChild2Type, MVT::i64, ++/*517300*/ OPC_CheckChild3Integer, 1, ++/*517302*/ OPC_CheckChild3Type, MVT::i64, ++/*517304*/ OPC_CheckType, MVT::v4i64, ++/*517306*/ OPC_MoveParent, ++/*517307*/ OPC_CheckType, MVT::v4i64, ++/*517309*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*517311*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b), LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*517319*/ /*Scope*/ 87, /*->517407*/ ++/*517320*/ OPC_CheckChild0Same, 1, ++/*517322*/ OPC_MoveChild1, ++/*517323*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*517326*/ OPC_CheckChild0Integer, 1, ++/*517328*/ OPC_CheckChild0Type, MVT::i64, ++/*517330*/ OPC_CheckChild1Integer, 1, ++/*517332*/ OPC_CheckChild1Type, MVT::i64, ++/*517334*/ OPC_CheckChild2Integer, 1, ++/*517336*/ OPC_CheckChild2Type, MVT::i64, ++/*517338*/ OPC_CheckChild3Integer, 1, ++/*517340*/ OPC_CheckChild3Type, MVT::i64, ++/*517342*/ OPC_MoveParent, ++/*517343*/ OPC_MoveParent, ++/*517344*/ OPC_CheckChild1Same, 0, ++/*517346*/ OPC_MoveParent, ++/*517347*/ OPC_MoveChild1, ++/*517348*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*517351*/ OPC_CheckChild0Integer, 63, ++/*517353*/ OPC_CheckChild0Type, MVT::i64, ++/*517355*/ OPC_CheckChild1Integer, 63, ++/*517357*/ OPC_CheckChild1Type, MVT::i64, ++/*517359*/ OPC_CheckChild2Integer, 63, ++/*517361*/ OPC_CheckChild2Type, MVT::i64, ++/*517363*/ OPC_CheckChild3Integer, 63, ++/*517365*/ OPC_CheckChild3Type, MVT::i64, ++/*517367*/ OPC_CheckType, MVT::v4i64, ++/*517369*/ OPC_MoveParent, ++/*517370*/ OPC_MoveParent, ++/*517371*/ OPC_MoveParent, ++/*517372*/ OPC_MoveChild1, ++/*517373*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*517376*/ OPC_CheckChild0Integer, 1, ++/*517378*/ OPC_CheckChild0Type, MVT::i64, ++/*517380*/ OPC_CheckChild1Integer, 1, ++/*517382*/ OPC_CheckChild1Type, MVT::i64, ++/*517384*/ OPC_CheckChild2Integer, 1, ++/*517386*/ OPC_CheckChild2Type, MVT::i64, ++/*517388*/ OPC_CheckChild3Integer, 1, ++/*517390*/ OPC_CheckChild3Type, MVT::i64, ++/*517392*/ OPC_CheckType, MVT::v4i64, ++/*517394*/ OPC_MoveParent, ++/*517395*/ OPC_CheckType, MVT::v4i64, ++/*517397*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*517399*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*517407*/ /*Scope*/ 87, /*->517495*/ ++/*517408*/ OPC_CheckChild0Same, 0, ++/*517410*/ OPC_CheckChild1Same, 1, ++/*517412*/ OPC_MoveParent, ++/*517413*/ OPC_MoveChild1, ++/*517414*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*517417*/ OPC_CheckChild0Integer, 1, ++/*517419*/ OPC_CheckChild0Type, MVT::i64, ++/*517421*/ OPC_CheckChild1Integer, 1, ++/*517423*/ OPC_CheckChild1Type, MVT::i64, ++/*517425*/ OPC_CheckChild2Integer, 1, ++/*517427*/ OPC_CheckChild2Type, MVT::i64, ++/*517429*/ OPC_CheckChild3Integer, 1, ++/*517431*/ OPC_CheckChild3Type, MVT::i64, ++/*517433*/ OPC_MoveParent, ++/*517434*/ OPC_MoveParent, ++/*517435*/ OPC_MoveChild1, ++/*517436*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*517439*/ OPC_CheckChild0Integer, 63, ++/*517441*/ OPC_CheckChild0Type, MVT::i64, ++/*517443*/ OPC_CheckChild1Integer, 63, ++/*517445*/ OPC_CheckChild1Type, MVT::i64, ++/*517447*/ OPC_CheckChild2Integer, 63, ++/*517449*/ OPC_CheckChild2Type, MVT::i64, ++/*517451*/ OPC_CheckChild3Integer, 63, ++/*517453*/ OPC_CheckChild3Type, MVT::i64, ++/*517455*/ OPC_CheckType, MVT::v4i64, ++/*517457*/ OPC_MoveParent, ++/*517458*/ OPC_MoveParent, ++/*517459*/ OPC_MoveParent, ++/*517460*/ OPC_MoveChild1, ++/*517461*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*517464*/ OPC_CheckChild0Integer, 1, ++/*517466*/ OPC_CheckChild0Type, MVT::i64, ++/*517468*/ OPC_CheckChild1Integer, 1, ++/*517470*/ OPC_CheckChild1Type, MVT::i64, ++/*517472*/ OPC_CheckChild2Integer, 1, ++/*517474*/ OPC_CheckChild2Type, MVT::i64, ++/*517476*/ OPC_CheckChild3Integer, 1, ++/*517478*/ OPC_CheckChild3Type, MVT::i64, ++/*517480*/ OPC_CheckType, MVT::v4i64, ++/*517482*/ OPC_MoveParent, ++/*517483*/ OPC_CheckType, MVT::v4i64, ++/*517485*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*517487*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*517495*/ /*Scope*/ 87, /*->517583*/ ++/*517496*/ OPC_CheckChild0Same, 1, ++/*517498*/ OPC_CheckChild1Same, 0, ++/*517500*/ OPC_MoveParent, ++/*517501*/ OPC_MoveChild1, ++/*517502*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*517505*/ OPC_CheckChild0Integer, 1, ++/*517507*/ OPC_CheckChild0Type, MVT::i64, ++/*517509*/ OPC_CheckChild1Integer, 1, ++/*517511*/ OPC_CheckChild1Type, MVT::i64, ++/*517513*/ OPC_CheckChild2Integer, 1, ++/*517515*/ OPC_CheckChild2Type, MVT::i64, ++/*517517*/ OPC_CheckChild3Integer, 1, ++/*517519*/ OPC_CheckChild3Type, MVT::i64, ++/*517521*/ OPC_MoveParent, ++/*517522*/ OPC_MoveParent, ++/*517523*/ OPC_MoveChild1, ++/*517524*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*517527*/ OPC_CheckChild0Integer, 63, ++/*517529*/ OPC_CheckChild0Type, MVT::i64, ++/*517531*/ OPC_CheckChild1Integer, 63, ++/*517533*/ OPC_CheckChild1Type, MVT::i64, ++/*517535*/ OPC_CheckChild2Integer, 63, ++/*517537*/ OPC_CheckChild2Type, MVT::i64, ++/*517539*/ OPC_CheckChild3Integer, 63, ++/*517541*/ OPC_CheckChild3Type, MVT::i64, ++/*517543*/ OPC_CheckType, MVT::v4i64, ++/*517545*/ OPC_MoveParent, ++/*517546*/ OPC_MoveParent, ++/*517547*/ OPC_MoveParent, ++/*517548*/ OPC_MoveChild1, ++/*517549*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*517552*/ OPC_CheckChild0Integer, 1, ++/*517554*/ OPC_CheckChild0Type, MVT::i64, ++/*517556*/ OPC_CheckChild1Integer, 1, ++/*517558*/ OPC_CheckChild1Type, MVT::i64, ++/*517560*/ OPC_CheckChild2Integer, 1, ++/*517562*/ OPC_CheckChild2Type, MVT::i64, ++/*517564*/ OPC_CheckChild3Integer, 1, ++/*517566*/ OPC_CheckChild3Type, MVT::i64, ++/*517568*/ OPC_CheckType, MVT::v4i64, ++/*517570*/ OPC_MoveParent, ++/*517571*/ OPC_CheckType, MVT::v4i64, ++/*517573*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*517575*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*517583*/ 0, /*End of Scope*/ ++/*517584*/ /*Scope*/ 52|128,1/*180*/, /*->517766*/ ++/*517586*/ OPC_CheckChild0Same, 1, ++/*517588*/ OPC_MoveChild1, ++/*517589*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*517592*/ OPC_Scope, 85, /*->517679*/ // 2 children in Scope ++/*517594*/ OPC_MoveChild0, ++/*517595*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*517598*/ OPC_CheckChild0Integer, 1, ++/*517600*/ OPC_CheckChild0Type, MVT::i64, ++/*517602*/ OPC_CheckChild1Integer, 1, ++/*517604*/ OPC_CheckChild1Type, MVT::i64, ++/*517606*/ OPC_CheckChild2Integer, 1, ++/*517608*/ OPC_CheckChild2Type, MVT::i64, ++/*517610*/ OPC_CheckChild3Integer, 1, ++/*517612*/ OPC_CheckChild3Type, MVT::i64, ++/*517614*/ OPC_MoveParent, ++/*517615*/ OPC_CheckChild1Same, 0, ++/*517617*/ OPC_MoveParent, ++/*517618*/ OPC_MoveParent, ++/*517619*/ OPC_MoveChild1, ++/*517620*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*517623*/ OPC_CheckChild0Integer, 63, ++/*517625*/ OPC_CheckChild0Type, MVT::i64, ++/*517627*/ OPC_CheckChild1Integer, 63, ++/*517629*/ OPC_CheckChild1Type, MVT::i64, ++/*517631*/ OPC_CheckChild2Integer, 63, ++/*517633*/ OPC_CheckChild2Type, MVT::i64, ++/*517635*/ OPC_CheckChild3Integer, 63, ++/*517637*/ OPC_CheckChild3Type, MVT::i64, ++/*517639*/ OPC_CheckType, MVT::v4i64, ++/*517641*/ OPC_MoveParent, ++/*517642*/ OPC_MoveParent, ++/*517643*/ OPC_MoveParent, ++/*517644*/ OPC_MoveChild1, ++/*517645*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*517648*/ OPC_CheckChild0Integer, 1, ++/*517650*/ OPC_CheckChild0Type, MVT::i64, ++/*517652*/ OPC_CheckChild1Integer, 1, ++/*517654*/ OPC_CheckChild1Type, MVT::i64, ++/*517656*/ OPC_CheckChild2Integer, 1, ++/*517658*/ OPC_CheckChild2Type, MVT::i64, ++/*517660*/ OPC_CheckChild3Integer, 1, ++/*517662*/ OPC_CheckChild3Type, MVT::i64, ++/*517664*/ OPC_CheckType, MVT::v4i64, ++/*517666*/ OPC_MoveParent, ++/*517667*/ OPC_CheckType, MVT::v4i64, ++/*517669*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*517671*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*517679*/ /*Scope*/ 85, /*->517765*/ ++/*517680*/ OPC_CheckChild0Same, 0, ++/*517682*/ OPC_MoveChild1, ++/*517683*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*517686*/ OPC_CheckChild0Integer, 1, ++/*517688*/ OPC_CheckChild0Type, MVT::i64, ++/*517690*/ OPC_CheckChild1Integer, 1, ++/*517692*/ OPC_CheckChild1Type, MVT::i64, ++/*517694*/ OPC_CheckChild2Integer, 1, ++/*517696*/ OPC_CheckChild2Type, MVT::i64, ++/*517698*/ OPC_CheckChild3Integer, 1, ++/*517700*/ OPC_CheckChild3Type, MVT::i64, ++/*517702*/ OPC_MoveParent, ++/*517703*/ OPC_MoveParent, ++/*517704*/ OPC_MoveParent, ++/*517705*/ OPC_MoveChild1, ++/*517706*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*517709*/ OPC_CheckChild0Integer, 63, ++/*517711*/ OPC_CheckChild0Type, MVT::i64, ++/*517713*/ OPC_CheckChild1Integer, 63, ++/*517715*/ OPC_CheckChild1Type, MVT::i64, ++/*517717*/ OPC_CheckChild2Integer, 63, ++/*517719*/ OPC_CheckChild2Type, MVT::i64, ++/*517721*/ OPC_CheckChild3Integer, 63, ++/*517723*/ OPC_CheckChild3Type, MVT::i64, ++/*517725*/ OPC_CheckType, MVT::v4i64, ++/*517727*/ OPC_MoveParent, ++/*517728*/ OPC_MoveParent, ++/*517729*/ OPC_MoveParent, ++/*517730*/ OPC_MoveChild1, ++/*517731*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*517734*/ OPC_CheckChild0Integer, 1, ++/*517736*/ OPC_CheckChild0Type, MVT::i64, ++/*517738*/ OPC_CheckChild1Integer, 1, ++/*517740*/ OPC_CheckChild1Type, MVT::i64, ++/*517742*/ OPC_CheckChild2Integer, 1, ++/*517744*/ OPC_CheckChild2Type, MVT::i64, ++/*517746*/ OPC_CheckChild3Integer, 1, ++/*517748*/ OPC_CheckChild3Type, MVT::i64, ++/*517750*/ OPC_CheckType, MVT::v4i64, ++/*517752*/ OPC_MoveParent, ++/*517753*/ OPC_CheckType, MVT::v4i64, ++/*517755*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*517757*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*517765*/ 0, /*End of Scope*/ ++/*517766*/ /*Scope*/ 52|128,1/*180*/, /*->517948*/ ++/*517768*/ OPC_CheckChild0Same, 0, ++/*517770*/ OPC_MoveChild1, ++/*517771*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*517774*/ OPC_Scope, 85, /*->517861*/ // 2 children in Scope ++/*517776*/ OPC_MoveChild0, ++/*517777*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*517780*/ OPC_CheckChild0Integer, 1, ++/*517782*/ OPC_CheckChild0Type, MVT::i64, ++/*517784*/ OPC_CheckChild1Integer, 1, ++/*517786*/ OPC_CheckChild1Type, MVT::i64, ++/*517788*/ OPC_CheckChild2Integer, 1, ++/*517790*/ OPC_CheckChild2Type, MVT::i64, ++/*517792*/ OPC_CheckChild3Integer, 1, ++/*517794*/ OPC_CheckChild3Type, MVT::i64, ++/*517796*/ OPC_MoveParent, ++/*517797*/ OPC_CheckChild1Same, 1, ++/*517799*/ OPC_MoveParent, ++/*517800*/ OPC_MoveParent, ++/*517801*/ OPC_MoveChild1, ++/*517802*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*517805*/ OPC_CheckChild0Integer, 63, ++/*517807*/ OPC_CheckChild0Type, MVT::i64, ++/*517809*/ OPC_CheckChild1Integer, 63, ++/*517811*/ OPC_CheckChild1Type, MVT::i64, ++/*517813*/ OPC_CheckChild2Integer, 63, ++/*517815*/ OPC_CheckChild2Type, MVT::i64, ++/*517817*/ OPC_CheckChild3Integer, 63, ++/*517819*/ OPC_CheckChild3Type, MVT::i64, ++/*517821*/ OPC_CheckType, MVT::v4i64, ++/*517823*/ OPC_MoveParent, ++/*517824*/ OPC_MoveParent, ++/*517825*/ OPC_MoveParent, ++/*517826*/ OPC_MoveChild1, ++/*517827*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*517830*/ OPC_CheckChild0Integer, 1, ++/*517832*/ OPC_CheckChild0Type, MVT::i64, ++/*517834*/ OPC_CheckChild1Integer, 1, ++/*517836*/ OPC_CheckChild1Type, MVT::i64, ++/*517838*/ OPC_CheckChild2Integer, 1, ++/*517840*/ OPC_CheckChild2Type, MVT::i64, ++/*517842*/ OPC_CheckChild3Integer, 1, ++/*517844*/ OPC_CheckChild3Type, MVT::i64, ++/*517846*/ OPC_CheckType, MVT::v4i64, ++/*517848*/ OPC_MoveParent, ++/*517849*/ OPC_CheckType, MVT::v4i64, ++/*517851*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*517853*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*517861*/ /*Scope*/ 85, /*->517947*/ ++/*517862*/ OPC_CheckChild0Same, 1, ++/*517864*/ OPC_MoveChild1, ++/*517865*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*517868*/ OPC_CheckChild0Integer, 1, ++/*517870*/ OPC_CheckChild0Type, MVT::i64, ++/*517872*/ OPC_CheckChild1Integer, 1, ++/*517874*/ OPC_CheckChild1Type, MVT::i64, ++/*517876*/ OPC_CheckChild2Integer, 1, ++/*517878*/ OPC_CheckChild2Type, MVT::i64, ++/*517880*/ OPC_CheckChild3Integer, 1, ++/*517882*/ OPC_CheckChild3Type, MVT::i64, ++/*517884*/ OPC_MoveParent, ++/*517885*/ OPC_MoveParent, ++/*517886*/ OPC_MoveParent, ++/*517887*/ OPC_MoveChild1, ++/*517888*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*517891*/ OPC_CheckChild0Integer, 63, ++/*517893*/ OPC_CheckChild0Type, MVT::i64, ++/*517895*/ OPC_CheckChild1Integer, 63, ++/*517897*/ OPC_CheckChild1Type, MVT::i64, ++/*517899*/ OPC_CheckChild2Integer, 63, ++/*517901*/ OPC_CheckChild2Type, MVT::i64, ++/*517903*/ OPC_CheckChild3Integer, 63, ++/*517905*/ OPC_CheckChild3Type, MVT::i64, ++/*517907*/ OPC_CheckType, MVT::v4i64, ++/*517909*/ OPC_MoveParent, ++/*517910*/ OPC_MoveParent, ++/*517911*/ OPC_MoveParent, ++/*517912*/ OPC_MoveChild1, ++/*517913*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*517916*/ OPC_CheckChild0Integer, 1, ++/*517918*/ OPC_CheckChild0Type, MVT::i64, ++/*517920*/ OPC_CheckChild1Integer, 1, ++/*517922*/ OPC_CheckChild1Type, MVT::i64, ++/*517924*/ OPC_CheckChild2Integer, 1, ++/*517926*/ OPC_CheckChild2Type, MVT::i64, ++/*517928*/ OPC_CheckChild3Integer, 1, ++/*517930*/ OPC_CheckChild3Type, MVT::i64, ++/*517932*/ OPC_CheckType, MVT::v4i64, ++/*517934*/ OPC_MoveParent, ++/*517935*/ OPC_CheckType, MVT::v4i64, ++/*517937*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*517939*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*517947*/ 0, /*End of Scope*/ ++/*517948*/ /*Scope*/ 58|128,5/*698*/, /*->518648*/ ++/*517950*/ OPC_MoveChild0, ++/*517951*/ OPC_SwitchOpcode /*2 cases */, 29|128,1/*157*/, TARGET_VAL(ISD::BUILD_VECTOR),// ->518113 ++/*517956*/ OPC_CheckChild0Integer, 1, ++/*517958*/ OPC_CheckChild0Type, MVT::i64, ++/*517960*/ OPC_CheckChild1Integer, 1, ++/*517962*/ OPC_CheckChild1Type, MVT::i64, ++/*517964*/ OPC_CheckChild2Integer, 1, ++/*517966*/ OPC_CheckChild2Type, MVT::i64, ++/*517968*/ OPC_CheckChild3Integer, 1, ++/*517970*/ OPC_CheckChild3Type, MVT::i64, ++/*517972*/ OPC_MoveParent, ++/*517973*/ OPC_MoveChild1, ++/*517974*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*517977*/ OPC_Scope, 66, /*->518045*/ // 2 children in Scope ++/*517979*/ OPC_CheckChild0Same, 0, ++/*517981*/ OPC_CheckChild1Same, 1, ++/*517983*/ OPC_MoveParent, ++/*517984*/ OPC_MoveParent, ++/*517985*/ OPC_MoveChild1, ++/*517986*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*517989*/ OPC_CheckChild0Integer, 63, ++/*517991*/ OPC_CheckChild0Type, MVT::i64, ++/*517993*/ OPC_CheckChild1Integer, 63, ++/*517995*/ OPC_CheckChild1Type, MVT::i64, ++/*517997*/ OPC_CheckChild2Integer, 63, ++/*517999*/ OPC_CheckChild2Type, MVT::i64, ++/*518001*/ OPC_CheckChild3Integer, 63, ++/*518003*/ OPC_CheckChild3Type, MVT::i64, ++/*518005*/ OPC_CheckType, MVT::v4i64, ++/*518007*/ OPC_MoveParent, ++/*518008*/ OPC_MoveParent, ++/*518009*/ OPC_MoveParent, ++/*518010*/ OPC_MoveChild1, ++/*518011*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*518014*/ OPC_CheckChild0Integer, 1, ++/*518016*/ OPC_CheckChild0Type, MVT::i64, ++/*518018*/ OPC_CheckChild1Integer, 1, ++/*518020*/ OPC_CheckChild1Type, MVT::i64, ++/*518022*/ OPC_CheckChild2Integer, 1, ++/*518024*/ OPC_CheckChild2Type, MVT::i64, ++/*518026*/ OPC_CheckChild3Integer, 1, ++/*518028*/ OPC_CheckChild3Type, MVT::i64, ++/*518030*/ OPC_CheckType, MVT::v4i64, ++/*518032*/ OPC_MoveParent, ++/*518033*/ OPC_CheckType, MVT::v4i64, ++/*518035*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*518037*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*518045*/ /*Scope*/ 66, /*->518112*/ ++/*518046*/ OPC_CheckChild0Same, 1, ++/*518048*/ OPC_CheckChild1Same, 0, ++/*518050*/ OPC_MoveParent, ++/*518051*/ OPC_MoveParent, ++/*518052*/ OPC_MoveChild1, ++/*518053*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*518056*/ OPC_CheckChild0Integer, 63, ++/*518058*/ OPC_CheckChild0Type, MVT::i64, ++/*518060*/ OPC_CheckChild1Integer, 63, ++/*518062*/ OPC_CheckChild1Type, MVT::i64, ++/*518064*/ OPC_CheckChild2Integer, 63, ++/*518066*/ OPC_CheckChild2Type, MVT::i64, ++/*518068*/ OPC_CheckChild3Integer, 63, ++/*518070*/ OPC_CheckChild3Type, MVT::i64, ++/*518072*/ OPC_CheckType, MVT::v4i64, ++/*518074*/ OPC_MoveParent, ++/*518075*/ OPC_MoveParent, ++/*518076*/ OPC_MoveParent, ++/*518077*/ OPC_MoveChild1, ++/*518078*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*518081*/ OPC_CheckChild0Integer, 1, ++/*518083*/ OPC_CheckChild0Type, MVT::i64, ++/*518085*/ OPC_CheckChild1Integer, 1, ++/*518087*/ OPC_CheckChild1Type, MVT::i64, ++/*518089*/ OPC_CheckChild2Integer, 1, ++/*518091*/ OPC_CheckChild2Type, MVT::i64, ++/*518093*/ OPC_CheckChild3Integer, 1, ++/*518095*/ OPC_CheckChild3Type, MVT::i64, ++/*518097*/ OPC_CheckType, MVT::v4i64, ++/*518099*/ OPC_MoveParent, ++/*518100*/ OPC_CheckType, MVT::v4i64, ++/*518102*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*518104*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*518112*/ 0, /*End of Scope*/ ++/*518113*/ /*SwitchOpcode*/ 18|128,4/*530*/, TARGET_VAL(ISD::ADD),// ->518647 ++/*518117*/ OPC_Scope, 87, /*->518206*/ // 6 children in Scope ++/*518119*/ OPC_MoveChild0, ++/*518120*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*518123*/ OPC_CheckChild0Integer, 1, ++/*518125*/ OPC_CheckChild0Type, MVT::i64, ++/*518127*/ OPC_CheckChild1Integer, 1, ++/*518129*/ OPC_CheckChild1Type, MVT::i64, ++/*518131*/ OPC_CheckChild2Integer, 1, ++/*518133*/ OPC_CheckChild2Type, MVT::i64, ++/*518135*/ OPC_CheckChild3Integer, 1, ++/*518137*/ OPC_CheckChild3Type, MVT::i64, ++/*518139*/ OPC_MoveParent, ++/*518140*/ OPC_CheckChild1Same, 1, ++/*518142*/ OPC_MoveParent, ++/*518143*/ OPC_CheckChild1Same, 0, ++/*518145*/ OPC_MoveParent, ++/*518146*/ OPC_MoveChild1, ++/*518147*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*518150*/ OPC_CheckChild0Integer, 63, ++/*518152*/ OPC_CheckChild0Type, MVT::i64, ++/*518154*/ OPC_CheckChild1Integer, 63, ++/*518156*/ OPC_CheckChild1Type, MVT::i64, ++/*518158*/ OPC_CheckChild2Integer, 63, ++/*518160*/ OPC_CheckChild2Type, MVT::i64, ++/*518162*/ OPC_CheckChild3Integer, 63, ++/*518164*/ OPC_CheckChild3Type, MVT::i64, ++/*518166*/ OPC_CheckType, MVT::v4i64, ++/*518168*/ OPC_MoveParent, ++/*518169*/ OPC_MoveParent, ++/*518170*/ OPC_MoveParent, ++/*518171*/ OPC_MoveChild1, ++/*518172*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*518175*/ OPC_CheckChild0Integer, 1, ++/*518177*/ OPC_CheckChild0Type, MVT::i64, ++/*518179*/ OPC_CheckChild1Integer, 1, ++/*518181*/ OPC_CheckChild1Type, MVT::i64, ++/*518183*/ OPC_CheckChild2Integer, 1, ++/*518185*/ OPC_CheckChild2Type, MVT::i64, ++/*518187*/ OPC_CheckChild3Integer, 1, ++/*518189*/ OPC_CheckChild3Type, MVT::i64, ++/*518191*/ OPC_CheckType, MVT::v4i64, ++/*518193*/ OPC_MoveParent, ++/*518194*/ OPC_CheckType, MVT::v4i64, ++/*518196*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*518198*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a), LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*518206*/ /*Scope*/ 87, /*->518294*/ ++/*518207*/ OPC_CheckChild0Same, 1, ++/*518209*/ OPC_MoveChild1, ++/*518210*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*518213*/ OPC_CheckChild0Integer, 1, ++/*518215*/ OPC_CheckChild0Type, MVT::i64, ++/*518217*/ OPC_CheckChild1Integer, 1, ++/*518219*/ OPC_CheckChild1Type, MVT::i64, ++/*518221*/ OPC_CheckChild2Integer, 1, ++/*518223*/ OPC_CheckChild2Type, MVT::i64, ++/*518225*/ OPC_CheckChild3Integer, 1, ++/*518227*/ OPC_CheckChild3Type, MVT::i64, ++/*518229*/ OPC_MoveParent, ++/*518230*/ OPC_MoveParent, ++/*518231*/ OPC_CheckChild1Same, 0, ++/*518233*/ OPC_MoveParent, ++/*518234*/ OPC_MoveChild1, ++/*518235*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*518238*/ OPC_CheckChild0Integer, 63, ++/*518240*/ OPC_CheckChild0Type, MVT::i64, ++/*518242*/ OPC_CheckChild1Integer, 63, ++/*518244*/ OPC_CheckChild1Type, MVT::i64, ++/*518246*/ OPC_CheckChild2Integer, 63, ++/*518248*/ OPC_CheckChild2Type, MVT::i64, ++/*518250*/ OPC_CheckChild3Integer, 63, ++/*518252*/ OPC_CheckChild3Type, MVT::i64, ++/*518254*/ OPC_CheckType, MVT::v4i64, ++/*518256*/ OPC_MoveParent, ++/*518257*/ OPC_MoveParent, ++/*518258*/ OPC_MoveParent, ++/*518259*/ OPC_MoveChild1, ++/*518260*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*518263*/ OPC_CheckChild0Integer, 1, ++/*518265*/ OPC_CheckChild0Type, MVT::i64, ++/*518267*/ OPC_CheckChild1Integer, 1, ++/*518269*/ OPC_CheckChild1Type, MVT::i64, ++/*518271*/ OPC_CheckChild2Integer, 1, ++/*518273*/ OPC_CheckChild2Type, MVT::i64, ++/*518275*/ OPC_CheckChild3Integer, 1, ++/*518277*/ OPC_CheckChild3Type, MVT::i64, ++/*518279*/ OPC_CheckType, MVT::v4i64, ++/*518281*/ OPC_MoveParent, ++/*518282*/ OPC_CheckType, MVT::v4i64, ++/*518284*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*518286*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*518294*/ /*Scope*/ 87, /*->518382*/ ++/*518295*/ OPC_MoveChild0, ++/*518296*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*518299*/ OPC_CheckChild0Integer, 1, ++/*518301*/ OPC_CheckChild0Type, MVT::i64, ++/*518303*/ OPC_CheckChild1Integer, 1, ++/*518305*/ OPC_CheckChild1Type, MVT::i64, ++/*518307*/ OPC_CheckChild2Integer, 1, ++/*518309*/ OPC_CheckChild2Type, MVT::i64, ++/*518311*/ OPC_CheckChild3Integer, 1, ++/*518313*/ OPC_CheckChild3Type, MVT::i64, ++/*518315*/ OPC_MoveParent, ++/*518316*/ OPC_CheckChild1Same, 0, ++/*518318*/ OPC_MoveParent, ++/*518319*/ OPC_CheckChild1Same, 1, ++/*518321*/ OPC_MoveParent, ++/*518322*/ OPC_MoveChild1, ++/*518323*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*518326*/ OPC_CheckChild0Integer, 63, ++/*518328*/ OPC_CheckChild0Type, MVT::i64, ++/*518330*/ OPC_CheckChild1Integer, 63, ++/*518332*/ OPC_CheckChild1Type, MVT::i64, ++/*518334*/ OPC_CheckChild2Integer, 63, ++/*518336*/ OPC_CheckChild2Type, MVT::i64, ++/*518338*/ OPC_CheckChild3Integer, 63, ++/*518340*/ OPC_CheckChild3Type, MVT::i64, ++/*518342*/ OPC_CheckType, MVT::v4i64, ++/*518344*/ OPC_MoveParent, ++/*518345*/ OPC_MoveParent, ++/*518346*/ OPC_MoveParent, ++/*518347*/ OPC_MoveChild1, ++/*518348*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*518351*/ OPC_CheckChild0Integer, 1, ++/*518353*/ OPC_CheckChild0Type, MVT::i64, ++/*518355*/ OPC_CheckChild1Integer, 1, ++/*518357*/ OPC_CheckChild1Type, MVT::i64, ++/*518359*/ OPC_CheckChild2Integer, 1, ++/*518361*/ OPC_CheckChild2Type, MVT::i64, ++/*518363*/ OPC_CheckChild3Integer, 1, ++/*518365*/ OPC_CheckChild3Type, MVT::i64, ++/*518367*/ OPC_CheckType, MVT::v4i64, ++/*518369*/ OPC_MoveParent, ++/*518370*/ OPC_CheckType, MVT::v4i64, ++/*518372*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*518374*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b), LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*518382*/ /*Scope*/ 87, /*->518470*/ ++/*518383*/ OPC_CheckChild0Same, 0, ++/*518385*/ OPC_MoveChild1, ++/*518386*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*518389*/ OPC_CheckChild0Integer, 1, ++/*518391*/ OPC_CheckChild0Type, MVT::i64, ++/*518393*/ OPC_CheckChild1Integer, 1, ++/*518395*/ OPC_CheckChild1Type, MVT::i64, ++/*518397*/ OPC_CheckChild2Integer, 1, ++/*518399*/ OPC_CheckChild2Type, MVT::i64, ++/*518401*/ OPC_CheckChild3Integer, 1, ++/*518403*/ OPC_CheckChild3Type, MVT::i64, ++/*518405*/ OPC_MoveParent, ++/*518406*/ OPC_MoveParent, ++/*518407*/ OPC_CheckChild1Same, 1, ++/*518409*/ OPC_MoveParent, ++/*518410*/ OPC_MoveChild1, ++/*518411*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*518414*/ OPC_CheckChild0Integer, 63, ++/*518416*/ OPC_CheckChild0Type, MVT::i64, ++/*518418*/ OPC_CheckChild1Integer, 63, ++/*518420*/ OPC_CheckChild1Type, MVT::i64, ++/*518422*/ OPC_CheckChild2Integer, 63, ++/*518424*/ OPC_CheckChild2Type, MVT::i64, ++/*518426*/ OPC_CheckChild3Integer, 63, ++/*518428*/ OPC_CheckChild3Type, MVT::i64, ++/*518430*/ OPC_CheckType, MVT::v4i64, ++/*518432*/ OPC_MoveParent, ++/*518433*/ OPC_MoveParent, ++/*518434*/ OPC_MoveParent, ++/*518435*/ OPC_MoveChild1, ++/*518436*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*518439*/ OPC_CheckChild0Integer, 1, ++/*518441*/ OPC_CheckChild0Type, MVT::i64, ++/*518443*/ OPC_CheckChild1Integer, 1, ++/*518445*/ OPC_CheckChild1Type, MVT::i64, ++/*518447*/ OPC_CheckChild2Integer, 1, ++/*518449*/ OPC_CheckChild2Type, MVT::i64, ++/*518451*/ OPC_CheckChild3Integer, 1, ++/*518453*/ OPC_CheckChild3Type, MVT::i64, ++/*518455*/ OPC_CheckType, MVT::v4i64, ++/*518457*/ OPC_MoveParent, ++/*518458*/ OPC_CheckType, MVT::v4i64, ++/*518460*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*518462*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*518470*/ /*Scope*/ 87, /*->518558*/ ++/*518471*/ OPC_CheckChild0Same, 1, ++/*518473*/ OPC_CheckChild1Same, 0, ++/*518475*/ OPC_MoveParent, ++/*518476*/ OPC_MoveChild1, ++/*518477*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*518480*/ OPC_CheckChild0Integer, 1, ++/*518482*/ OPC_CheckChild0Type, MVT::i64, ++/*518484*/ OPC_CheckChild1Integer, 1, ++/*518486*/ OPC_CheckChild1Type, MVT::i64, ++/*518488*/ OPC_CheckChild2Integer, 1, ++/*518490*/ OPC_CheckChild2Type, MVT::i64, ++/*518492*/ OPC_CheckChild3Integer, 1, ++/*518494*/ OPC_CheckChild3Type, MVT::i64, ++/*518496*/ OPC_MoveParent, ++/*518497*/ OPC_MoveParent, ++/*518498*/ OPC_MoveChild1, ++/*518499*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*518502*/ OPC_CheckChild0Integer, 63, ++/*518504*/ OPC_CheckChild0Type, MVT::i64, ++/*518506*/ OPC_CheckChild1Integer, 63, ++/*518508*/ OPC_CheckChild1Type, MVT::i64, ++/*518510*/ OPC_CheckChild2Integer, 63, ++/*518512*/ OPC_CheckChild2Type, MVT::i64, ++/*518514*/ OPC_CheckChild3Integer, 63, ++/*518516*/ OPC_CheckChild3Type, MVT::i64, ++/*518518*/ OPC_CheckType, MVT::v4i64, ++/*518520*/ OPC_MoveParent, ++/*518521*/ OPC_MoveParent, ++/*518522*/ OPC_MoveParent, ++/*518523*/ OPC_MoveChild1, ++/*518524*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*518527*/ OPC_CheckChild0Integer, 1, ++/*518529*/ OPC_CheckChild0Type, MVT::i64, ++/*518531*/ OPC_CheckChild1Integer, 1, ++/*518533*/ OPC_CheckChild1Type, MVT::i64, ++/*518535*/ OPC_CheckChild2Integer, 1, ++/*518537*/ OPC_CheckChild2Type, MVT::i64, ++/*518539*/ OPC_CheckChild3Integer, 1, ++/*518541*/ OPC_CheckChild3Type, MVT::i64, ++/*518543*/ OPC_CheckType, MVT::v4i64, ++/*518545*/ OPC_MoveParent, ++/*518546*/ OPC_CheckType, MVT::v4i64, ++/*518548*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*518550*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*518558*/ /*Scope*/ 87, /*->518646*/ ++/*518559*/ OPC_CheckChild0Same, 0, ++/*518561*/ OPC_CheckChild1Same, 1, ++/*518563*/ OPC_MoveParent, ++/*518564*/ OPC_MoveChild1, ++/*518565*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*518568*/ OPC_CheckChild0Integer, 1, ++/*518570*/ OPC_CheckChild0Type, MVT::i64, ++/*518572*/ OPC_CheckChild1Integer, 1, ++/*518574*/ OPC_CheckChild1Type, MVT::i64, ++/*518576*/ OPC_CheckChild2Integer, 1, ++/*518578*/ OPC_CheckChild2Type, MVT::i64, ++/*518580*/ OPC_CheckChild3Integer, 1, ++/*518582*/ OPC_CheckChild3Type, MVT::i64, ++/*518584*/ OPC_MoveParent, ++/*518585*/ OPC_MoveParent, ++/*518586*/ OPC_MoveChild1, ++/*518587*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*518590*/ OPC_CheckChild0Integer, 63, ++/*518592*/ OPC_CheckChild0Type, MVT::i64, ++/*518594*/ OPC_CheckChild1Integer, 63, ++/*518596*/ OPC_CheckChild1Type, MVT::i64, ++/*518598*/ OPC_CheckChild2Integer, 63, ++/*518600*/ OPC_CheckChild2Type, MVT::i64, ++/*518602*/ OPC_CheckChild3Integer, 63, ++/*518604*/ OPC_CheckChild3Type, MVT::i64, ++/*518606*/ OPC_CheckType, MVT::v4i64, ++/*518608*/ OPC_MoveParent, ++/*518609*/ OPC_MoveParent, ++/*518610*/ OPC_MoveParent, ++/*518611*/ OPC_MoveChild1, ++/*518612*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*518615*/ OPC_CheckChild0Integer, 1, ++/*518617*/ OPC_CheckChild0Type, MVT::i64, ++/*518619*/ OPC_CheckChild1Integer, 1, ++/*518621*/ OPC_CheckChild1Type, MVT::i64, ++/*518623*/ OPC_CheckChild2Integer, 1, ++/*518625*/ OPC_CheckChild2Type, MVT::i64, ++/*518627*/ OPC_CheckChild3Integer, 1, ++/*518629*/ OPC_CheckChild3Type, MVT::i64, ++/*518631*/ OPC_CheckType, MVT::v4i64, ++/*518633*/ OPC_MoveParent, ++/*518634*/ OPC_CheckType, MVT::v4i64, ++/*518636*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*518638*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*518646*/ 0, /*End of Scope*/ ++/*518647*/ 0, // EndSwitchOpcode ++/*518648*/ /*Scope*/ 52|128,1/*180*/, /*->518830*/ ++/*518650*/ OPC_CheckChild0Same, 0, ++/*518652*/ OPC_MoveChild1, ++/*518653*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*518656*/ OPC_Scope, 85, /*->518743*/ // 2 children in Scope ++/*518658*/ OPC_MoveChild0, ++/*518659*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*518662*/ OPC_CheckChild0Integer, 1, ++/*518664*/ OPC_CheckChild0Type, MVT::i64, ++/*518666*/ OPC_CheckChild1Integer, 1, ++/*518668*/ OPC_CheckChild1Type, MVT::i64, ++/*518670*/ OPC_CheckChild2Integer, 1, ++/*518672*/ OPC_CheckChild2Type, MVT::i64, ++/*518674*/ OPC_CheckChild3Integer, 1, ++/*518676*/ OPC_CheckChild3Type, MVT::i64, ++/*518678*/ OPC_MoveParent, ++/*518679*/ OPC_CheckChild1Same, 1, ++/*518681*/ OPC_MoveParent, ++/*518682*/ OPC_MoveParent, ++/*518683*/ OPC_MoveChild1, ++/*518684*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*518687*/ OPC_CheckChild0Integer, 63, ++/*518689*/ OPC_CheckChild0Type, MVT::i64, ++/*518691*/ OPC_CheckChild1Integer, 63, ++/*518693*/ OPC_CheckChild1Type, MVT::i64, ++/*518695*/ OPC_CheckChild2Integer, 63, ++/*518697*/ OPC_CheckChild2Type, MVT::i64, ++/*518699*/ OPC_CheckChild3Integer, 63, ++/*518701*/ OPC_CheckChild3Type, MVT::i64, ++/*518703*/ OPC_CheckType, MVT::v4i64, ++/*518705*/ OPC_MoveParent, ++/*518706*/ OPC_MoveParent, ++/*518707*/ OPC_MoveParent, ++/*518708*/ OPC_MoveChild1, ++/*518709*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*518712*/ OPC_CheckChild0Integer, 1, ++/*518714*/ OPC_CheckChild0Type, MVT::i64, ++/*518716*/ OPC_CheckChild1Integer, 1, ++/*518718*/ OPC_CheckChild1Type, MVT::i64, ++/*518720*/ OPC_CheckChild2Integer, 1, ++/*518722*/ OPC_CheckChild2Type, MVT::i64, ++/*518724*/ OPC_CheckChild3Integer, 1, ++/*518726*/ OPC_CheckChild3Type, MVT::i64, ++/*518728*/ OPC_CheckType, MVT::v4i64, ++/*518730*/ OPC_MoveParent, ++/*518731*/ OPC_CheckType, MVT::v4i64, ++/*518733*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*518735*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*518743*/ /*Scope*/ 85, /*->518829*/ ++/*518744*/ OPC_CheckChild0Same, 1, ++/*518746*/ OPC_MoveChild1, ++/*518747*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*518750*/ OPC_CheckChild0Integer, 1, ++/*518752*/ OPC_CheckChild0Type, MVT::i64, ++/*518754*/ OPC_CheckChild1Integer, 1, ++/*518756*/ OPC_CheckChild1Type, MVT::i64, ++/*518758*/ OPC_CheckChild2Integer, 1, ++/*518760*/ OPC_CheckChild2Type, MVT::i64, ++/*518762*/ OPC_CheckChild3Integer, 1, ++/*518764*/ OPC_CheckChild3Type, MVT::i64, ++/*518766*/ OPC_MoveParent, ++/*518767*/ OPC_MoveParent, ++/*518768*/ OPC_MoveParent, ++/*518769*/ OPC_MoveChild1, ++/*518770*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*518773*/ OPC_CheckChild0Integer, 63, ++/*518775*/ OPC_CheckChild0Type, MVT::i64, ++/*518777*/ OPC_CheckChild1Integer, 63, ++/*518779*/ OPC_CheckChild1Type, MVT::i64, ++/*518781*/ OPC_CheckChild2Integer, 63, ++/*518783*/ OPC_CheckChild2Type, MVT::i64, ++/*518785*/ OPC_CheckChild3Integer, 63, ++/*518787*/ OPC_CheckChild3Type, MVT::i64, ++/*518789*/ OPC_CheckType, MVT::v4i64, ++/*518791*/ OPC_MoveParent, ++/*518792*/ OPC_MoveParent, ++/*518793*/ OPC_MoveParent, ++/*518794*/ OPC_MoveChild1, ++/*518795*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*518798*/ OPC_CheckChild0Integer, 1, ++/*518800*/ OPC_CheckChild0Type, MVT::i64, ++/*518802*/ OPC_CheckChild1Integer, 1, ++/*518804*/ OPC_CheckChild1Type, MVT::i64, ++/*518806*/ OPC_CheckChild2Integer, 1, ++/*518808*/ OPC_CheckChild2Type, MVT::i64, ++/*518810*/ OPC_CheckChild3Integer, 1, ++/*518812*/ OPC_CheckChild3Type, MVT::i64, ++/*518814*/ OPC_CheckType, MVT::v4i64, ++/*518816*/ OPC_MoveParent, ++/*518817*/ OPC_CheckType, MVT::v4i64, ++/*518819*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*518821*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*518829*/ 0, /*End of Scope*/ ++/*518830*/ /*Scope*/ 52|128,1/*180*/, /*->519012*/ ++/*518832*/ OPC_CheckChild0Same, 1, ++/*518834*/ OPC_MoveChild1, ++/*518835*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*518838*/ OPC_Scope, 85, /*->518925*/ // 2 children in Scope ++/*518840*/ OPC_MoveChild0, ++/*518841*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*518844*/ OPC_CheckChild0Integer, 1, ++/*518846*/ OPC_CheckChild0Type, MVT::i64, ++/*518848*/ OPC_CheckChild1Integer, 1, ++/*518850*/ OPC_CheckChild1Type, MVT::i64, ++/*518852*/ OPC_CheckChild2Integer, 1, ++/*518854*/ OPC_CheckChild2Type, MVT::i64, ++/*518856*/ OPC_CheckChild3Integer, 1, ++/*518858*/ OPC_CheckChild3Type, MVT::i64, ++/*518860*/ OPC_MoveParent, ++/*518861*/ OPC_CheckChild1Same, 0, ++/*518863*/ OPC_MoveParent, ++/*518864*/ OPC_MoveParent, ++/*518865*/ OPC_MoveChild1, ++/*518866*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*518869*/ OPC_CheckChild0Integer, 63, ++/*518871*/ OPC_CheckChild0Type, MVT::i64, ++/*518873*/ OPC_CheckChild1Integer, 63, ++/*518875*/ OPC_CheckChild1Type, MVT::i64, ++/*518877*/ OPC_CheckChild2Integer, 63, ++/*518879*/ OPC_CheckChild2Type, MVT::i64, ++/*518881*/ OPC_CheckChild3Integer, 63, ++/*518883*/ OPC_CheckChild3Type, MVT::i64, ++/*518885*/ OPC_CheckType, MVT::v4i64, ++/*518887*/ OPC_MoveParent, ++/*518888*/ OPC_MoveParent, ++/*518889*/ OPC_MoveParent, ++/*518890*/ OPC_MoveChild1, ++/*518891*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*518894*/ OPC_CheckChild0Integer, 1, ++/*518896*/ OPC_CheckChild0Type, MVT::i64, ++/*518898*/ OPC_CheckChild1Integer, 1, ++/*518900*/ OPC_CheckChild1Type, MVT::i64, ++/*518902*/ OPC_CheckChild2Integer, 1, ++/*518904*/ OPC_CheckChild2Type, MVT::i64, ++/*518906*/ OPC_CheckChild3Integer, 1, ++/*518908*/ OPC_CheckChild3Type, MVT::i64, ++/*518910*/ OPC_CheckType, MVT::v4i64, ++/*518912*/ OPC_MoveParent, ++/*518913*/ OPC_CheckType, MVT::v4i64, ++/*518915*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*518917*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*518925*/ /*Scope*/ 85, /*->519011*/ ++/*518926*/ OPC_CheckChild0Same, 0, ++/*518928*/ OPC_MoveChild1, ++/*518929*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*518932*/ OPC_CheckChild0Integer, 1, ++/*518934*/ OPC_CheckChild0Type, MVT::i64, ++/*518936*/ OPC_CheckChild1Integer, 1, ++/*518938*/ OPC_CheckChild1Type, MVT::i64, ++/*518940*/ OPC_CheckChild2Integer, 1, ++/*518942*/ OPC_CheckChild2Type, MVT::i64, ++/*518944*/ OPC_CheckChild3Integer, 1, ++/*518946*/ OPC_CheckChild3Type, MVT::i64, ++/*518948*/ OPC_MoveParent, ++/*518949*/ OPC_MoveParent, ++/*518950*/ OPC_MoveParent, ++/*518951*/ OPC_MoveChild1, ++/*518952*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*518955*/ OPC_CheckChild0Integer, 63, ++/*518957*/ OPC_CheckChild0Type, MVT::i64, ++/*518959*/ OPC_CheckChild1Integer, 63, ++/*518961*/ OPC_CheckChild1Type, MVT::i64, ++/*518963*/ OPC_CheckChild2Integer, 63, ++/*518965*/ OPC_CheckChild2Type, MVT::i64, ++/*518967*/ OPC_CheckChild3Integer, 63, ++/*518969*/ OPC_CheckChild3Type, MVT::i64, ++/*518971*/ OPC_CheckType, MVT::v4i64, ++/*518973*/ OPC_MoveParent, ++/*518974*/ OPC_MoveParent, ++/*518975*/ OPC_MoveParent, ++/*518976*/ OPC_MoveChild1, ++/*518977*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*518980*/ OPC_CheckChild0Integer, 1, ++/*518982*/ OPC_CheckChild0Type, MVT::i64, ++/*518984*/ OPC_CheckChild1Integer, 1, ++/*518986*/ OPC_CheckChild1Type, MVT::i64, ++/*518988*/ OPC_CheckChild2Integer, 1, ++/*518990*/ OPC_CheckChild2Type, MVT::i64, ++/*518992*/ OPC_CheckChild3Integer, 1, ++/*518994*/ OPC_CheckChild3Type, MVT::i64, ++/*518996*/ OPC_CheckType, MVT::v4i64, ++/*518998*/ OPC_MoveParent, ++/*518999*/ OPC_CheckType, MVT::v4i64, ++/*519001*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*519003*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*519011*/ 0, /*End of Scope*/ ++/*519012*/ /*Scope*/ 33|128,1/*161*/, /*->519175*/ ++/*519014*/ OPC_MoveChild0, ++/*519015*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*519018*/ OPC_CheckChild0Integer, 1, ++/*519020*/ OPC_CheckChild0Type, MVT::i64, ++/*519022*/ OPC_CheckChild1Integer, 1, ++/*519024*/ OPC_CheckChild1Type, MVT::i64, ++/*519026*/ OPC_CheckChild2Integer, 1, ++/*519028*/ OPC_CheckChild2Type, MVT::i64, ++/*519030*/ OPC_CheckChild3Integer, 1, ++/*519032*/ OPC_CheckChild3Type, MVT::i64, ++/*519034*/ OPC_MoveParent, ++/*519035*/ OPC_MoveChild1, ++/*519036*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*519039*/ OPC_Scope, 66, /*->519107*/ // 2 children in Scope ++/*519041*/ OPC_CheckChild0Same, 1, ++/*519043*/ OPC_CheckChild1Same, 0, ++/*519045*/ OPC_MoveParent, ++/*519046*/ OPC_MoveParent, ++/*519047*/ OPC_MoveChild1, ++/*519048*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*519051*/ OPC_CheckChild0Integer, 63, ++/*519053*/ OPC_CheckChild0Type, MVT::i64, ++/*519055*/ OPC_CheckChild1Integer, 63, ++/*519057*/ OPC_CheckChild1Type, MVT::i64, ++/*519059*/ OPC_CheckChild2Integer, 63, ++/*519061*/ OPC_CheckChild2Type, MVT::i64, ++/*519063*/ OPC_CheckChild3Integer, 63, ++/*519065*/ OPC_CheckChild3Type, MVT::i64, ++/*519067*/ OPC_CheckType, MVT::v4i64, ++/*519069*/ OPC_MoveParent, ++/*519070*/ OPC_MoveParent, ++/*519071*/ OPC_MoveParent, ++/*519072*/ OPC_MoveChild1, ++/*519073*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*519076*/ OPC_CheckChild0Integer, 1, ++/*519078*/ OPC_CheckChild0Type, MVT::i64, ++/*519080*/ OPC_CheckChild1Integer, 1, ++/*519082*/ OPC_CheckChild1Type, MVT::i64, ++/*519084*/ OPC_CheckChild2Integer, 1, ++/*519086*/ OPC_CheckChild2Type, MVT::i64, ++/*519088*/ OPC_CheckChild3Integer, 1, ++/*519090*/ OPC_CheckChild3Type, MVT::i64, ++/*519092*/ OPC_CheckType, MVT::v4i64, ++/*519094*/ OPC_MoveParent, ++/*519095*/ OPC_CheckType, MVT::v4i64, ++/*519097*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*519099*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*519107*/ /*Scope*/ 66, /*->519174*/ ++/*519108*/ OPC_CheckChild0Same, 0, ++/*519110*/ OPC_CheckChild1Same, 1, ++/*519112*/ OPC_MoveParent, ++/*519113*/ OPC_MoveParent, ++/*519114*/ OPC_MoveChild1, ++/*519115*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*519118*/ OPC_CheckChild0Integer, 63, ++/*519120*/ OPC_CheckChild0Type, MVT::i64, ++/*519122*/ OPC_CheckChild1Integer, 63, ++/*519124*/ OPC_CheckChild1Type, MVT::i64, ++/*519126*/ OPC_CheckChild2Integer, 63, ++/*519128*/ OPC_CheckChild2Type, MVT::i64, ++/*519130*/ OPC_CheckChild3Integer, 63, ++/*519132*/ OPC_CheckChild3Type, MVT::i64, ++/*519134*/ OPC_CheckType, MVT::v4i64, ++/*519136*/ OPC_MoveParent, ++/*519137*/ OPC_MoveParent, ++/*519138*/ OPC_MoveParent, ++/*519139*/ OPC_MoveChild1, ++/*519140*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*519143*/ OPC_CheckChild0Integer, 1, ++/*519145*/ OPC_CheckChild0Type, MVT::i64, ++/*519147*/ OPC_CheckChild1Integer, 1, ++/*519149*/ OPC_CheckChild1Type, MVT::i64, ++/*519151*/ OPC_CheckChild2Integer, 1, ++/*519153*/ OPC_CheckChild2Type, MVT::i64, ++/*519155*/ OPC_CheckChild3Integer, 1, ++/*519157*/ OPC_CheckChild3Type, MVT::i64, ++/*519159*/ OPC_CheckType, MVT::v4i64, ++/*519161*/ OPC_MoveParent, ++/*519162*/ OPC_CheckType, MVT::v4i64, ++/*519164*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*519166*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*519174*/ 0, /*End of Scope*/ ++/*519175*/ 0, /*End of Scope*/ ++/*519176*/ 0, /*End of Scope*/ ++/*519177*/ 0, /*End of Scope*/ ++/*519178*/ 0, // EndSwitchOpcode ++/*519179*/ /*Scope*/ 51|128,34/*4403*/, /*->523584*/ ++/*519181*/ OPC_RecordChild0, // #0 = $b ++/*519182*/ OPC_MoveChild1, ++/*519183*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*519186*/ OPC_Scope, 73|128,8/*1097*/, /*->520286*/ // 4 children in Scope ++/*519189*/ OPC_MoveChild0, ++/*519190*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*519193*/ OPC_CheckChild0Integer, 1, ++/*519195*/ OPC_CheckChild0Type, MVT::i64, ++/*519197*/ OPC_CheckChild1Integer, 1, ++/*519199*/ OPC_CheckChild1Type, MVT::i64, ++/*519201*/ OPC_CheckChild2Integer, 1, ++/*519203*/ OPC_CheckChild2Type, MVT::i64, ++/*519205*/ OPC_CheckChild3Integer, 1, ++/*519207*/ OPC_CheckChild3Type, MVT::i64, ++/*519209*/ OPC_MoveParent, ++/*519210*/ OPC_RecordChild1, // #1 = $a ++/*519211*/ OPC_MoveParent, ++/*519212*/ OPC_MoveParent, ++/*519213*/ OPC_MoveChild1, ++/*519214*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*519217*/ OPC_MoveChild0, ++/*519218*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*519221*/ OPC_Scope, 22|128,4/*534*/, /*->519758*/ // 4 children in Scope ++/*519224*/ OPC_MoveChild0, ++/*519225*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*519228*/ OPC_Scope, 87, /*->519317*/ // 6 children in Scope ++/*519230*/ OPC_MoveChild0, ++/*519231*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*519234*/ OPC_CheckChild0Integer, 1, ++/*519236*/ OPC_CheckChild0Type, MVT::i64, ++/*519238*/ OPC_CheckChild1Integer, 1, ++/*519240*/ OPC_CheckChild1Type, MVT::i64, ++/*519242*/ OPC_CheckChild2Integer, 1, ++/*519244*/ OPC_CheckChild2Type, MVT::i64, ++/*519246*/ OPC_CheckChild3Integer, 1, ++/*519248*/ OPC_CheckChild3Type, MVT::i64, ++/*519250*/ OPC_MoveParent, ++/*519251*/ OPC_CheckChild1Same, 1, ++/*519253*/ OPC_MoveParent, ++/*519254*/ OPC_CheckChild1Same, 0, ++/*519256*/ OPC_MoveParent, ++/*519257*/ OPC_MoveChild1, ++/*519258*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*519261*/ OPC_CheckChild0Integer, 63, ++/*519263*/ OPC_CheckChild0Type, MVT::i64, ++/*519265*/ OPC_CheckChild1Integer, 63, ++/*519267*/ OPC_CheckChild1Type, MVT::i64, ++/*519269*/ OPC_CheckChild2Integer, 63, ++/*519271*/ OPC_CheckChild2Type, MVT::i64, ++/*519273*/ OPC_CheckChild3Integer, 63, ++/*519275*/ OPC_CheckChild3Type, MVT::i64, ++/*519277*/ OPC_CheckType, MVT::v4i64, ++/*519279*/ OPC_MoveParent, ++/*519280*/ OPC_MoveParent, ++/*519281*/ OPC_MoveParent, ++/*519282*/ OPC_MoveChild1, ++/*519283*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*519286*/ OPC_CheckChild0Integer, 1, ++/*519288*/ OPC_CheckChild0Type, MVT::i64, ++/*519290*/ OPC_CheckChild1Integer, 1, ++/*519292*/ OPC_CheckChild1Type, MVT::i64, ++/*519294*/ OPC_CheckChild2Integer, 1, ++/*519296*/ OPC_CheckChild2Type, MVT::i64, ++/*519298*/ OPC_CheckChild3Integer, 1, ++/*519300*/ OPC_CheckChild3Type, MVT::i64, ++/*519302*/ OPC_CheckType, MVT::v4i64, ++/*519304*/ OPC_MoveParent, ++/*519305*/ OPC_CheckType, MVT::v4i64, ++/*519307*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*519309*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a)), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a), LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*519317*/ /*Scope*/ 87, /*->519405*/ ++/*519318*/ OPC_CheckChild0Same, 1, ++/*519320*/ OPC_MoveChild1, ++/*519321*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*519324*/ OPC_CheckChild0Integer, 1, ++/*519326*/ OPC_CheckChild0Type, MVT::i64, ++/*519328*/ OPC_CheckChild1Integer, 1, ++/*519330*/ OPC_CheckChild1Type, MVT::i64, ++/*519332*/ OPC_CheckChild2Integer, 1, ++/*519334*/ OPC_CheckChild2Type, MVT::i64, ++/*519336*/ OPC_CheckChild3Integer, 1, ++/*519338*/ OPC_CheckChild3Type, MVT::i64, ++/*519340*/ OPC_MoveParent, ++/*519341*/ OPC_MoveParent, ++/*519342*/ OPC_CheckChild1Same, 0, ++/*519344*/ OPC_MoveParent, ++/*519345*/ OPC_MoveChild1, ++/*519346*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*519349*/ OPC_CheckChild0Integer, 63, ++/*519351*/ OPC_CheckChild0Type, MVT::i64, ++/*519353*/ OPC_CheckChild1Integer, 63, ++/*519355*/ OPC_CheckChild1Type, MVT::i64, ++/*519357*/ OPC_CheckChild2Integer, 63, ++/*519359*/ OPC_CheckChild2Type, MVT::i64, ++/*519361*/ OPC_CheckChild3Integer, 63, ++/*519363*/ OPC_CheckChild3Type, MVT::i64, ++/*519365*/ OPC_CheckType, MVT::v4i64, ++/*519367*/ OPC_MoveParent, ++/*519368*/ OPC_MoveParent, ++/*519369*/ OPC_MoveParent, ++/*519370*/ OPC_MoveChild1, ++/*519371*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*519374*/ OPC_CheckChild0Integer, 1, ++/*519376*/ OPC_CheckChild0Type, MVT::i64, ++/*519378*/ OPC_CheckChild1Integer, 1, ++/*519380*/ OPC_CheckChild1Type, MVT::i64, ++/*519382*/ OPC_CheckChild2Integer, 1, ++/*519384*/ OPC_CheckChild2Type, MVT::i64, ++/*519386*/ OPC_CheckChild3Integer, 1, ++/*519388*/ OPC_CheckChild3Type, MVT::i64, ++/*519390*/ OPC_CheckType, MVT::v4i64, ++/*519392*/ OPC_MoveParent, ++/*519393*/ OPC_CheckType, MVT::v4i64, ++/*519395*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*519397*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a)), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*519405*/ /*Scope*/ 87, /*->519493*/ ++/*519406*/ OPC_MoveChild0, ++/*519407*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*519410*/ OPC_CheckChild0Integer, 1, ++/*519412*/ OPC_CheckChild0Type, MVT::i64, ++/*519414*/ OPC_CheckChild1Integer, 1, ++/*519416*/ OPC_CheckChild1Type, MVT::i64, ++/*519418*/ OPC_CheckChild2Integer, 1, ++/*519420*/ OPC_CheckChild2Type, MVT::i64, ++/*519422*/ OPC_CheckChild3Integer, 1, ++/*519424*/ OPC_CheckChild3Type, MVT::i64, ++/*519426*/ OPC_MoveParent, ++/*519427*/ OPC_CheckChild1Same, 0, ++/*519429*/ OPC_MoveParent, ++/*519430*/ OPC_CheckChild1Same, 1, ++/*519432*/ OPC_MoveParent, ++/*519433*/ OPC_MoveChild1, ++/*519434*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*519437*/ OPC_CheckChild0Integer, 63, ++/*519439*/ OPC_CheckChild0Type, MVT::i64, ++/*519441*/ OPC_CheckChild1Integer, 63, ++/*519443*/ OPC_CheckChild1Type, MVT::i64, ++/*519445*/ OPC_CheckChild2Integer, 63, ++/*519447*/ OPC_CheckChild2Type, MVT::i64, ++/*519449*/ OPC_CheckChild3Integer, 63, ++/*519451*/ OPC_CheckChild3Type, MVT::i64, ++/*519453*/ OPC_CheckType, MVT::v4i64, ++/*519455*/ OPC_MoveParent, ++/*519456*/ OPC_MoveParent, ++/*519457*/ OPC_MoveParent, ++/*519458*/ OPC_MoveChild1, ++/*519459*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*519462*/ OPC_CheckChild0Integer, 1, ++/*519464*/ OPC_CheckChild0Type, MVT::i64, ++/*519466*/ OPC_CheckChild1Integer, 1, ++/*519468*/ OPC_CheckChild1Type, MVT::i64, ++/*519470*/ OPC_CheckChild2Integer, 1, ++/*519472*/ OPC_CheckChild2Type, MVT::i64, ++/*519474*/ OPC_CheckChild3Integer, 1, ++/*519476*/ OPC_CheckChild3Type, MVT::i64, ++/*519478*/ OPC_CheckType, MVT::v4i64, ++/*519480*/ OPC_MoveParent, ++/*519481*/ OPC_CheckType, MVT::v4i64, ++/*519483*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*519485*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a)), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b), LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*519493*/ /*Scope*/ 87, /*->519581*/ ++/*519494*/ OPC_CheckChild0Same, 0, ++/*519496*/ OPC_MoveChild1, ++/*519497*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*519500*/ OPC_CheckChild0Integer, 1, ++/*519502*/ OPC_CheckChild0Type, MVT::i64, ++/*519504*/ OPC_CheckChild1Integer, 1, ++/*519506*/ OPC_CheckChild1Type, MVT::i64, ++/*519508*/ OPC_CheckChild2Integer, 1, ++/*519510*/ OPC_CheckChild2Type, MVT::i64, ++/*519512*/ OPC_CheckChild3Integer, 1, ++/*519514*/ OPC_CheckChild3Type, MVT::i64, ++/*519516*/ OPC_MoveParent, ++/*519517*/ OPC_MoveParent, ++/*519518*/ OPC_CheckChild1Same, 1, ++/*519520*/ OPC_MoveParent, ++/*519521*/ OPC_MoveChild1, ++/*519522*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*519525*/ OPC_CheckChild0Integer, 63, ++/*519527*/ OPC_CheckChild0Type, MVT::i64, ++/*519529*/ OPC_CheckChild1Integer, 63, ++/*519531*/ OPC_CheckChild1Type, MVT::i64, ++/*519533*/ OPC_CheckChild2Integer, 63, ++/*519535*/ OPC_CheckChild2Type, MVT::i64, ++/*519537*/ OPC_CheckChild3Integer, 63, ++/*519539*/ OPC_CheckChild3Type, MVT::i64, ++/*519541*/ OPC_CheckType, MVT::v4i64, ++/*519543*/ OPC_MoveParent, ++/*519544*/ OPC_MoveParent, ++/*519545*/ OPC_MoveParent, ++/*519546*/ OPC_MoveChild1, ++/*519547*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*519550*/ OPC_CheckChild0Integer, 1, ++/*519552*/ OPC_CheckChild0Type, MVT::i64, ++/*519554*/ OPC_CheckChild1Integer, 1, ++/*519556*/ OPC_CheckChild1Type, MVT::i64, ++/*519558*/ OPC_CheckChild2Integer, 1, ++/*519560*/ OPC_CheckChild2Type, MVT::i64, ++/*519562*/ OPC_CheckChild3Integer, 1, ++/*519564*/ OPC_CheckChild3Type, MVT::i64, ++/*519566*/ OPC_CheckType, MVT::v4i64, ++/*519568*/ OPC_MoveParent, ++/*519569*/ OPC_CheckType, MVT::v4i64, ++/*519571*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*519573*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a)), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*519581*/ /*Scope*/ 87, /*->519669*/ ++/*519582*/ OPC_CheckChild0Same, 1, ++/*519584*/ OPC_CheckChild1Same, 0, ++/*519586*/ OPC_MoveParent, ++/*519587*/ OPC_MoveChild1, ++/*519588*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*519591*/ OPC_CheckChild0Integer, 1, ++/*519593*/ OPC_CheckChild0Type, MVT::i64, ++/*519595*/ OPC_CheckChild1Integer, 1, ++/*519597*/ OPC_CheckChild1Type, MVT::i64, ++/*519599*/ OPC_CheckChild2Integer, 1, ++/*519601*/ OPC_CheckChild2Type, MVT::i64, ++/*519603*/ OPC_CheckChild3Integer, 1, ++/*519605*/ OPC_CheckChild3Type, MVT::i64, ++/*519607*/ OPC_MoveParent, ++/*519608*/ OPC_MoveParent, ++/*519609*/ OPC_MoveChild1, ++/*519610*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*519613*/ OPC_CheckChild0Integer, 63, ++/*519615*/ OPC_CheckChild0Type, MVT::i64, ++/*519617*/ OPC_CheckChild1Integer, 63, ++/*519619*/ OPC_CheckChild1Type, MVT::i64, ++/*519621*/ OPC_CheckChild2Integer, 63, ++/*519623*/ OPC_CheckChild2Type, MVT::i64, ++/*519625*/ OPC_CheckChild3Integer, 63, ++/*519627*/ OPC_CheckChild3Type, MVT::i64, ++/*519629*/ OPC_CheckType, MVT::v4i64, ++/*519631*/ OPC_MoveParent, ++/*519632*/ OPC_MoveParent, ++/*519633*/ OPC_MoveParent, ++/*519634*/ OPC_MoveChild1, ++/*519635*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*519638*/ OPC_CheckChild0Integer, 1, ++/*519640*/ OPC_CheckChild0Type, MVT::i64, ++/*519642*/ OPC_CheckChild1Integer, 1, ++/*519644*/ OPC_CheckChild1Type, MVT::i64, ++/*519646*/ OPC_CheckChild2Integer, 1, ++/*519648*/ OPC_CheckChild2Type, MVT::i64, ++/*519650*/ OPC_CheckChild3Integer, 1, ++/*519652*/ OPC_CheckChild3Type, MVT::i64, ++/*519654*/ OPC_CheckType, MVT::v4i64, ++/*519656*/ OPC_MoveParent, ++/*519657*/ OPC_CheckType, MVT::v4i64, ++/*519659*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*519661*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a)), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*519669*/ /*Scope*/ 87, /*->519757*/ ++/*519670*/ OPC_CheckChild0Same, 0, ++/*519672*/ OPC_CheckChild1Same, 1, ++/*519674*/ OPC_MoveParent, ++/*519675*/ OPC_MoveChild1, ++/*519676*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*519679*/ OPC_CheckChild0Integer, 1, ++/*519681*/ OPC_CheckChild0Type, MVT::i64, ++/*519683*/ OPC_CheckChild1Integer, 1, ++/*519685*/ OPC_CheckChild1Type, MVT::i64, ++/*519687*/ OPC_CheckChild2Integer, 1, ++/*519689*/ OPC_CheckChild2Type, MVT::i64, ++/*519691*/ OPC_CheckChild3Integer, 1, ++/*519693*/ OPC_CheckChild3Type, MVT::i64, ++/*519695*/ OPC_MoveParent, ++/*519696*/ OPC_MoveParent, ++/*519697*/ OPC_MoveChild1, ++/*519698*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*519701*/ OPC_CheckChild0Integer, 63, ++/*519703*/ OPC_CheckChild0Type, MVT::i64, ++/*519705*/ OPC_CheckChild1Integer, 63, ++/*519707*/ OPC_CheckChild1Type, MVT::i64, ++/*519709*/ OPC_CheckChild2Integer, 63, ++/*519711*/ OPC_CheckChild2Type, MVT::i64, ++/*519713*/ OPC_CheckChild3Integer, 63, ++/*519715*/ OPC_CheckChild3Type, MVT::i64, ++/*519717*/ OPC_CheckType, MVT::v4i64, ++/*519719*/ OPC_MoveParent, ++/*519720*/ OPC_MoveParent, ++/*519721*/ OPC_MoveParent, ++/*519722*/ OPC_MoveChild1, ++/*519723*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*519726*/ OPC_CheckChild0Integer, 1, ++/*519728*/ OPC_CheckChild0Type, MVT::i64, ++/*519730*/ OPC_CheckChild1Integer, 1, ++/*519732*/ OPC_CheckChild1Type, MVT::i64, ++/*519734*/ OPC_CheckChild2Integer, 1, ++/*519736*/ OPC_CheckChild2Type, MVT::i64, ++/*519738*/ OPC_CheckChild3Integer, 1, ++/*519740*/ OPC_CheckChild3Type, MVT::i64, ++/*519742*/ OPC_CheckType, MVT::v4i64, ++/*519744*/ OPC_MoveParent, ++/*519745*/ OPC_CheckType, MVT::v4i64, ++/*519747*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*519749*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a)), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*519757*/ 0, /*End of Scope*/ ++/*519758*/ /*Scope*/ 52|128,1/*180*/, /*->519940*/ ++/*519760*/ OPC_CheckChild0Same, 0, ++/*519762*/ OPC_MoveChild1, ++/*519763*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*519766*/ OPC_Scope, 85, /*->519853*/ // 2 children in Scope ++/*519768*/ OPC_MoveChild0, ++/*519769*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*519772*/ OPC_CheckChild0Integer, 1, ++/*519774*/ OPC_CheckChild0Type, MVT::i64, ++/*519776*/ OPC_CheckChild1Integer, 1, ++/*519778*/ OPC_CheckChild1Type, MVT::i64, ++/*519780*/ OPC_CheckChild2Integer, 1, ++/*519782*/ OPC_CheckChild2Type, MVT::i64, ++/*519784*/ OPC_CheckChild3Integer, 1, ++/*519786*/ OPC_CheckChild3Type, MVT::i64, ++/*519788*/ OPC_MoveParent, ++/*519789*/ OPC_CheckChild1Same, 1, ++/*519791*/ OPC_MoveParent, ++/*519792*/ OPC_MoveParent, ++/*519793*/ OPC_MoveChild1, ++/*519794*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*519797*/ OPC_CheckChild0Integer, 63, ++/*519799*/ OPC_CheckChild0Type, MVT::i64, ++/*519801*/ OPC_CheckChild1Integer, 63, ++/*519803*/ OPC_CheckChild1Type, MVT::i64, ++/*519805*/ OPC_CheckChild2Integer, 63, ++/*519807*/ OPC_CheckChild2Type, MVT::i64, ++/*519809*/ OPC_CheckChild3Integer, 63, ++/*519811*/ OPC_CheckChild3Type, MVT::i64, ++/*519813*/ OPC_CheckType, MVT::v4i64, ++/*519815*/ OPC_MoveParent, ++/*519816*/ OPC_MoveParent, ++/*519817*/ OPC_MoveParent, ++/*519818*/ OPC_MoveChild1, ++/*519819*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*519822*/ OPC_CheckChild0Integer, 1, ++/*519824*/ OPC_CheckChild0Type, MVT::i64, ++/*519826*/ OPC_CheckChild1Integer, 1, ++/*519828*/ OPC_CheckChild1Type, MVT::i64, ++/*519830*/ OPC_CheckChild2Integer, 1, ++/*519832*/ OPC_CheckChild2Type, MVT::i64, ++/*519834*/ OPC_CheckChild3Integer, 1, ++/*519836*/ OPC_CheckChild3Type, MVT::i64, ++/*519838*/ OPC_CheckType, MVT::v4i64, ++/*519840*/ OPC_MoveParent, ++/*519841*/ OPC_CheckType, MVT::v4i64, ++/*519843*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*519845*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a)), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*519853*/ /*Scope*/ 85, /*->519939*/ ++/*519854*/ OPC_CheckChild0Same, 1, ++/*519856*/ OPC_MoveChild1, ++/*519857*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*519860*/ OPC_CheckChild0Integer, 1, ++/*519862*/ OPC_CheckChild0Type, MVT::i64, ++/*519864*/ OPC_CheckChild1Integer, 1, ++/*519866*/ OPC_CheckChild1Type, MVT::i64, ++/*519868*/ OPC_CheckChild2Integer, 1, ++/*519870*/ OPC_CheckChild2Type, MVT::i64, ++/*519872*/ OPC_CheckChild3Integer, 1, ++/*519874*/ OPC_CheckChild3Type, MVT::i64, ++/*519876*/ OPC_MoveParent, ++/*519877*/ OPC_MoveParent, ++/*519878*/ OPC_MoveParent, ++/*519879*/ OPC_MoveChild1, ++/*519880*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*519883*/ OPC_CheckChild0Integer, 63, ++/*519885*/ OPC_CheckChild0Type, MVT::i64, ++/*519887*/ OPC_CheckChild1Integer, 63, ++/*519889*/ OPC_CheckChild1Type, MVT::i64, ++/*519891*/ OPC_CheckChild2Integer, 63, ++/*519893*/ OPC_CheckChild2Type, MVT::i64, ++/*519895*/ OPC_CheckChild3Integer, 63, ++/*519897*/ OPC_CheckChild3Type, MVT::i64, ++/*519899*/ OPC_CheckType, MVT::v4i64, ++/*519901*/ OPC_MoveParent, ++/*519902*/ OPC_MoveParent, ++/*519903*/ OPC_MoveParent, ++/*519904*/ OPC_MoveChild1, ++/*519905*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*519908*/ OPC_CheckChild0Integer, 1, ++/*519910*/ OPC_CheckChild0Type, MVT::i64, ++/*519912*/ OPC_CheckChild1Integer, 1, ++/*519914*/ OPC_CheckChild1Type, MVT::i64, ++/*519916*/ OPC_CheckChild2Integer, 1, ++/*519918*/ OPC_CheckChild2Type, MVT::i64, ++/*519920*/ OPC_CheckChild3Integer, 1, ++/*519922*/ OPC_CheckChild3Type, MVT::i64, ++/*519924*/ OPC_CheckType, MVT::v4i64, ++/*519926*/ OPC_MoveParent, ++/*519927*/ OPC_CheckType, MVT::v4i64, ++/*519929*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*519931*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a)), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*519939*/ 0, /*End of Scope*/ ++/*519940*/ /*Scope*/ 52|128,1/*180*/, /*->520122*/ ++/*519942*/ OPC_CheckChild0Same, 1, ++/*519944*/ OPC_MoveChild1, ++/*519945*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*519948*/ OPC_Scope, 85, /*->520035*/ // 2 children in Scope ++/*519950*/ OPC_MoveChild0, ++/*519951*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*519954*/ OPC_CheckChild0Integer, 1, ++/*519956*/ OPC_CheckChild0Type, MVT::i64, ++/*519958*/ OPC_CheckChild1Integer, 1, ++/*519960*/ OPC_CheckChild1Type, MVT::i64, ++/*519962*/ OPC_CheckChild2Integer, 1, ++/*519964*/ OPC_CheckChild2Type, MVT::i64, ++/*519966*/ OPC_CheckChild3Integer, 1, ++/*519968*/ OPC_CheckChild3Type, MVT::i64, ++/*519970*/ OPC_MoveParent, ++/*519971*/ OPC_CheckChild1Same, 0, ++/*519973*/ OPC_MoveParent, ++/*519974*/ OPC_MoveParent, ++/*519975*/ OPC_MoveChild1, ++/*519976*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*519979*/ OPC_CheckChild0Integer, 63, ++/*519981*/ OPC_CheckChild0Type, MVT::i64, ++/*519983*/ OPC_CheckChild1Integer, 63, ++/*519985*/ OPC_CheckChild1Type, MVT::i64, ++/*519987*/ OPC_CheckChild2Integer, 63, ++/*519989*/ OPC_CheckChild2Type, MVT::i64, ++/*519991*/ OPC_CheckChild3Integer, 63, ++/*519993*/ OPC_CheckChild3Type, MVT::i64, ++/*519995*/ OPC_CheckType, MVT::v4i64, ++/*519997*/ OPC_MoveParent, ++/*519998*/ OPC_MoveParent, ++/*519999*/ OPC_MoveParent, ++/*520000*/ OPC_MoveChild1, ++/*520001*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*520004*/ OPC_CheckChild0Integer, 1, ++/*520006*/ OPC_CheckChild0Type, MVT::i64, ++/*520008*/ OPC_CheckChild1Integer, 1, ++/*520010*/ OPC_CheckChild1Type, MVT::i64, ++/*520012*/ OPC_CheckChild2Integer, 1, ++/*520014*/ OPC_CheckChild2Type, MVT::i64, ++/*520016*/ OPC_CheckChild3Integer, 1, ++/*520018*/ OPC_CheckChild3Type, MVT::i64, ++/*520020*/ OPC_CheckType, MVT::v4i64, ++/*520022*/ OPC_MoveParent, ++/*520023*/ OPC_CheckType, MVT::v4i64, ++/*520025*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*520027*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a)), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*520035*/ /*Scope*/ 85, /*->520121*/ ++/*520036*/ OPC_CheckChild0Same, 0, ++/*520038*/ OPC_MoveChild1, ++/*520039*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*520042*/ OPC_CheckChild0Integer, 1, ++/*520044*/ OPC_CheckChild0Type, MVT::i64, ++/*520046*/ OPC_CheckChild1Integer, 1, ++/*520048*/ OPC_CheckChild1Type, MVT::i64, ++/*520050*/ OPC_CheckChild2Integer, 1, ++/*520052*/ OPC_CheckChild2Type, MVT::i64, ++/*520054*/ OPC_CheckChild3Integer, 1, ++/*520056*/ OPC_CheckChild3Type, MVT::i64, ++/*520058*/ OPC_MoveParent, ++/*520059*/ OPC_MoveParent, ++/*520060*/ OPC_MoveParent, ++/*520061*/ OPC_MoveChild1, ++/*520062*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*520065*/ OPC_CheckChild0Integer, 63, ++/*520067*/ OPC_CheckChild0Type, MVT::i64, ++/*520069*/ OPC_CheckChild1Integer, 63, ++/*520071*/ OPC_CheckChild1Type, MVT::i64, ++/*520073*/ OPC_CheckChild2Integer, 63, ++/*520075*/ OPC_CheckChild2Type, MVT::i64, ++/*520077*/ OPC_CheckChild3Integer, 63, ++/*520079*/ OPC_CheckChild3Type, MVT::i64, ++/*520081*/ OPC_CheckType, MVT::v4i64, ++/*520083*/ OPC_MoveParent, ++/*520084*/ OPC_MoveParent, ++/*520085*/ OPC_MoveParent, ++/*520086*/ OPC_MoveChild1, ++/*520087*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*520090*/ OPC_CheckChild0Integer, 1, ++/*520092*/ OPC_CheckChild0Type, MVT::i64, ++/*520094*/ OPC_CheckChild1Integer, 1, ++/*520096*/ OPC_CheckChild1Type, MVT::i64, ++/*520098*/ OPC_CheckChild2Integer, 1, ++/*520100*/ OPC_CheckChild2Type, MVT::i64, ++/*520102*/ OPC_CheckChild3Integer, 1, ++/*520104*/ OPC_CheckChild3Type, MVT::i64, ++/*520106*/ OPC_CheckType, MVT::v4i64, ++/*520108*/ OPC_MoveParent, ++/*520109*/ OPC_CheckType, MVT::v4i64, ++/*520111*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*520113*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a)), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*520121*/ 0, /*End of Scope*/ ++/*520122*/ /*Scope*/ 33|128,1/*161*/, /*->520285*/ ++/*520124*/ OPC_MoveChild0, ++/*520125*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*520128*/ OPC_CheckChild0Integer, 1, ++/*520130*/ OPC_CheckChild0Type, MVT::i64, ++/*520132*/ OPC_CheckChild1Integer, 1, ++/*520134*/ OPC_CheckChild1Type, MVT::i64, ++/*520136*/ OPC_CheckChild2Integer, 1, ++/*520138*/ OPC_CheckChild2Type, MVT::i64, ++/*520140*/ OPC_CheckChild3Integer, 1, ++/*520142*/ OPC_CheckChild3Type, MVT::i64, ++/*520144*/ OPC_MoveParent, ++/*520145*/ OPC_MoveChild1, ++/*520146*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*520149*/ OPC_Scope, 66, /*->520217*/ // 2 children in Scope ++/*520151*/ OPC_CheckChild0Same, 1, ++/*520153*/ OPC_CheckChild1Same, 0, ++/*520155*/ OPC_MoveParent, ++/*520156*/ OPC_MoveParent, ++/*520157*/ OPC_MoveChild1, ++/*520158*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*520161*/ OPC_CheckChild0Integer, 63, ++/*520163*/ OPC_CheckChild0Type, MVT::i64, ++/*520165*/ OPC_CheckChild1Integer, 63, ++/*520167*/ OPC_CheckChild1Type, MVT::i64, ++/*520169*/ OPC_CheckChild2Integer, 63, ++/*520171*/ OPC_CheckChild2Type, MVT::i64, ++/*520173*/ OPC_CheckChild3Integer, 63, ++/*520175*/ OPC_CheckChild3Type, MVT::i64, ++/*520177*/ OPC_CheckType, MVT::v4i64, ++/*520179*/ OPC_MoveParent, ++/*520180*/ OPC_MoveParent, ++/*520181*/ OPC_MoveParent, ++/*520182*/ OPC_MoveChild1, ++/*520183*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*520186*/ OPC_CheckChild0Integer, 1, ++/*520188*/ OPC_CheckChild0Type, MVT::i64, ++/*520190*/ OPC_CheckChild1Integer, 1, ++/*520192*/ OPC_CheckChild1Type, MVT::i64, ++/*520194*/ OPC_CheckChild2Integer, 1, ++/*520196*/ OPC_CheckChild2Type, MVT::i64, ++/*520198*/ OPC_CheckChild3Integer, 1, ++/*520200*/ OPC_CheckChild3Type, MVT::i64, ++/*520202*/ OPC_CheckType, MVT::v4i64, ++/*520204*/ OPC_MoveParent, ++/*520205*/ OPC_CheckType, MVT::v4i64, ++/*520207*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*520209*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a)), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*520217*/ /*Scope*/ 66, /*->520284*/ ++/*520218*/ OPC_CheckChild0Same, 0, ++/*520220*/ OPC_CheckChild1Same, 1, ++/*520222*/ OPC_MoveParent, ++/*520223*/ OPC_MoveParent, ++/*520224*/ OPC_MoveChild1, ++/*520225*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*520228*/ OPC_CheckChild0Integer, 63, ++/*520230*/ OPC_CheckChild0Type, MVT::i64, ++/*520232*/ OPC_CheckChild1Integer, 63, ++/*520234*/ OPC_CheckChild1Type, MVT::i64, ++/*520236*/ OPC_CheckChild2Integer, 63, ++/*520238*/ OPC_CheckChild2Type, MVT::i64, ++/*520240*/ OPC_CheckChild3Integer, 63, ++/*520242*/ OPC_CheckChild3Type, MVT::i64, ++/*520244*/ OPC_CheckType, MVT::v4i64, ++/*520246*/ OPC_MoveParent, ++/*520247*/ OPC_MoveParent, ++/*520248*/ OPC_MoveParent, ++/*520249*/ OPC_MoveChild1, ++/*520250*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*520253*/ OPC_CheckChild0Integer, 1, ++/*520255*/ OPC_CheckChild0Type, MVT::i64, ++/*520257*/ OPC_CheckChild1Integer, 1, ++/*520259*/ OPC_CheckChild1Type, MVT::i64, ++/*520261*/ OPC_CheckChild2Integer, 1, ++/*520263*/ OPC_CheckChild2Type, MVT::i64, ++/*520265*/ OPC_CheckChild3Integer, 1, ++/*520267*/ OPC_CheckChild3Type, MVT::i64, ++/*520269*/ OPC_CheckType, MVT::v4i64, ++/*520271*/ OPC_MoveParent, ++/*520272*/ OPC_CheckType, MVT::v4i64, ++/*520274*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*520276*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a)), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*520284*/ 0, /*End of Scope*/ ++/*520285*/ 0, /*End of Scope*/ ++/*520286*/ /*Scope*/ 73|128,8/*1097*/, /*->521385*/ ++/*520288*/ OPC_RecordChild0, // #1 = $a ++/*520289*/ OPC_MoveChild1, ++/*520290*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*520293*/ OPC_CheckChild0Integer, 1, ++/*520295*/ OPC_CheckChild0Type, MVT::i64, ++/*520297*/ OPC_CheckChild1Integer, 1, ++/*520299*/ OPC_CheckChild1Type, MVT::i64, ++/*520301*/ OPC_CheckChild2Integer, 1, ++/*520303*/ OPC_CheckChild2Type, MVT::i64, ++/*520305*/ OPC_CheckChild3Integer, 1, ++/*520307*/ OPC_CheckChild3Type, MVT::i64, ++/*520309*/ OPC_MoveParent, ++/*520310*/ OPC_MoveParent, ++/*520311*/ OPC_MoveParent, ++/*520312*/ OPC_MoveChild1, ++/*520313*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*520316*/ OPC_MoveChild0, ++/*520317*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*520320*/ OPC_Scope, 22|128,4/*534*/, /*->520857*/ // 4 children in Scope ++/*520323*/ OPC_MoveChild0, ++/*520324*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*520327*/ OPC_Scope, 87, /*->520416*/ // 6 children in Scope ++/*520329*/ OPC_MoveChild0, ++/*520330*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*520333*/ OPC_CheckChild0Integer, 1, ++/*520335*/ OPC_CheckChild0Type, MVT::i64, ++/*520337*/ OPC_CheckChild1Integer, 1, ++/*520339*/ OPC_CheckChild1Type, MVT::i64, ++/*520341*/ OPC_CheckChild2Integer, 1, ++/*520343*/ OPC_CheckChild2Type, MVT::i64, ++/*520345*/ OPC_CheckChild3Integer, 1, ++/*520347*/ OPC_CheckChild3Type, MVT::i64, ++/*520349*/ OPC_MoveParent, ++/*520350*/ OPC_CheckChild1Same, 1, ++/*520352*/ OPC_MoveParent, ++/*520353*/ OPC_CheckChild1Same, 0, ++/*520355*/ OPC_MoveParent, ++/*520356*/ OPC_MoveChild1, ++/*520357*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*520360*/ OPC_CheckChild0Integer, 63, ++/*520362*/ OPC_CheckChild0Type, MVT::i64, ++/*520364*/ OPC_CheckChild1Integer, 63, ++/*520366*/ OPC_CheckChild1Type, MVT::i64, ++/*520368*/ OPC_CheckChild2Integer, 63, ++/*520370*/ OPC_CheckChild2Type, MVT::i64, ++/*520372*/ OPC_CheckChild3Integer, 63, ++/*520374*/ OPC_CheckChild3Type, MVT::i64, ++/*520376*/ OPC_CheckType, MVT::v4i64, ++/*520378*/ OPC_MoveParent, ++/*520379*/ OPC_MoveParent, ++/*520380*/ OPC_MoveParent, ++/*520381*/ OPC_MoveChild1, ++/*520382*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*520385*/ OPC_CheckChild0Integer, 1, ++/*520387*/ OPC_CheckChild0Type, MVT::i64, ++/*520389*/ OPC_CheckChild1Integer, 1, ++/*520391*/ OPC_CheckChild1Type, MVT::i64, ++/*520393*/ OPC_CheckChild2Integer, 1, ++/*520395*/ OPC_CheckChild2Type, MVT::i64, ++/*520397*/ OPC_CheckChild3Integer, 1, ++/*520399*/ OPC_CheckChild3Type, MVT::i64, ++/*520401*/ OPC_CheckType, MVT::v4i64, ++/*520403*/ OPC_MoveParent, ++/*520404*/ OPC_CheckType, MVT::v4i64, ++/*520406*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*520408*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a), LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*520416*/ /*Scope*/ 87, /*->520504*/ ++/*520417*/ OPC_CheckChild0Same, 1, ++/*520419*/ OPC_MoveChild1, ++/*520420*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*520423*/ OPC_CheckChild0Integer, 1, ++/*520425*/ OPC_CheckChild0Type, MVT::i64, ++/*520427*/ OPC_CheckChild1Integer, 1, ++/*520429*/ OPC_CheckChild1Type, MVT::i64, ++/*520431*/ OPC_CheckChild2Integer, 1, ++/*520433*/ OPC_CheckChild2Type, MVT::i64, ++/*520435*/ OPC_CheckChild3Integer, 1, ++/*520437*/ OPC_CheckChild3Type, MVT::i64, ++/*520439*/ OPC_MoveParent, ++/*520440*/ OPC_MoveParent, ++/*520441*/ OPC_CheckChild1Same, 0, ++/*520443*/ OPC_MoveParent, ++/*520444*/ OPC_MoveChild1, ++/*520445*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*520448*/ OPC_CheckChild0Integer, 63, ++/*520450*/ OPC_CheckChild0Type, MVT::i64, ++/*520452*/ OPC_CheckChild1Integer, 63, ++/*520454*/ OPC_CheckChild1Type, MVT::i64, ++/*520456*/ OPC_CheckChild2Integer, 63, ++/*520458*/ OPC_CheckChild2Type, MVT::i64, ++/*520460*/ OPC_CheckChild3Integer, 63, ++/*520462*/ OPC_CheckChild3Type, MVT::i64, ++/*520464*/ OPC_CheckType, MVT::v4i64, ++/*520466*/ OPC_MoveParent, ++/*520467*/ OPC_MoveParent, ++/*520468*/ OPC_MoveParent, ++/*520469*/ OPC_MoveChild1, ++/*520470*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*520473*/ OPC_CheckChild0Integer, 1, ++/*520475*/ OPC_CheckChild0Type, MVT::i64, ++/*520477*/ OPC_CheckChild1Integer, 1, ++/*520479*/ OPC_CheckChild1Type, MVT::i64, ++/*520481*/ OPC_CheckChild2Integer, 1, ++/*520483*/ OPC_CheckChild2Type, MVT::i64, ++/*520485*/ OPC_CheckChild3Integer, 1, ++/*520487*/ OPC_CheckChild3Type, MVT::i64, ++/*520489*/ OPC_CheckType, MVT::v4i64, ++/*520491*/ OPC_MoveParent, ++/*520492*/ OPC_CheckType, MVT::v4i64, ++/*520494*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*520496*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*520504*/ /*Scope*/ 87, /*->520592*/ ++/*520505*/ OPC_MoveChild0, ++/*520506*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*520509*/ OPC_CheckChild0Integer, 1, ++/*520511*/ OPC_CheckChild0Type, MVT::i64, ++/*520513*/ OPC_CheckChild1Integer, 1, ++/*520515*/ OPC_CheckChild1Type, MVT::i64, ++/*520517*/ OPC_CheckChild2Integer, 1, ++/*520519*/ OPC_CheckChild2Type, MVT::i64, ++/*520521*/ OPC_CheckChild3Integer, 1, ++/*520523*/ OPC_CheckChild3Type, MVT::i64, ++/*520525*/ OPC_MoveParent, ++/*520526*/ OPC_CheckChild1Same, 0, ++/*520528*/ OPC_MoveParent, ++/*520529*/ OPC_CheckChild1Same, 1, ++/*520531*/ OPC_MoveParent, ++/*520532*/ OPC_MoveChild1, ++/*520533*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*520536*/ OPC_CheckChild0Integer, 63, ++/*520538*/ OPC_CheckChild0Type, MVT::i64, ++/*520540*/ OPC_CheckChild1Integer, 63, ++/*520542*/ OPC_CheckChild1Type, MVT::i64, ++/*520544*/ OPC_CheckChild2Integer, 63, ++/*520546*/ OPC_CheckChild2Type, MVT::i64, ++/*520548*/ OPC_CheckChild3Integer, 63, ++/*520550*/ OPC_CheckChild3Type, MVT::i64, ++/*520552*/ OPC_CheckType, MVT::v4i64, ++/*520554*/ OPC_MoveParent, ++/*520555*/ OPC_MoveParent, ++/*520556*/ OPC_MoveParent, ++/*520557*/ OPC_MoveChild1, ++/*520558*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*520561*/ OPC_CheckChild0Integer, 1, ++/*520563*/ OPC_CheckChild0Type, MVT::i64, ++/*520565*/ OPC_CheckChild1Integer, 1, ++/*520567*/ OPC_CheckChild1Type, MVT::i64, ++/*520569*/ OPC_CheckChild2Integer, 1, ++/*520571*/ OPC_CheckChild2Type, MVT::i64, ++/*520573*/ OPC_CheckChild3Integer, 1, ++/*520575*/ OPC_CheckChild3Type, MVT::i64, ++/*520577*/ OPC_CheckType, MVT::v4i64, ++/*520579*/ OPC_MoveParent, ++/*520580*/ OPC_CheckType, MVT::v4i64, ++/*520582*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*520584*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b), LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*520592*/ /*Scope*/ 87, /*->520680*/ ++/*520593*/ OPC_CheckChild0Same, 0, ++/*520595*/ OPC_MoveChild1, ++/*520596*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*520599*/ OPC_CheckChild0Integer, 1, ++/*520601*/ OPC_CheckChild0Type, MVT::i64, ++/*520603*/ OPC_CheckChild1Integer, 1, ++/*520605*/ OPC_CheckChild1Type, MVT::i64, ++/*520607*/ OPC_CheckChild2Integer, 1, ++/*520609*/ OPC_CheckChild2Type, MVT::i64, ++/*520611*/ OPC_CheckChild3Integer, 1, ++/*520613*/ OPC_CheckChild3Type, MVT::i64, ++/*520615*/ OPC_MoveParent, ++/*520616*/ OPC_MoveParent, ++/*520617*/ OPC_CheckChild1Same, 1, ++/*520619*/ OPC_MoveParent, ++/*520620*/ OPC_MoveChild1, ++/*520621*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*520624*/ OPC_CheckChild0Integer, 63, ++/*520626*/ OPC_CheckChild0Type, MVT::i64, ++/*520628*/ OPC_CheckChild1Integer, 63, ++/*520630*/ OPC_CheckChild1Type, MVT::i64, ++/*520632*/ OPC_CheckChild2Integer, 63, ++/*520634*/ OPC_CheckChild2Type, MVT::i64, ++/*520636*/ OPC_CheckChild3Integer, 63, ++/*520638*/ OPC_CheckChild3Type, MVT::i64, ++/*520640*/ OPC_CheckType, MVT::v4i64, ++/*520642*/ OPC_MoveParent, ++/*520643*/ OPC_MoveParent, ++/*520644*/ OPC_MoveParent, ++/*520645*/ OPC_MoveChild1, ++/*520646*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*520649*/ OPC_CheckChild0Integer, 1, ++/*520651*/ OPC_CheckChild0Type, MVT::i64, ++/*520653*/ OPC_CheckChild1Integer, 1, ++/*520655*/ OPC_CheckChild1Type, MVT::i64, ++/*520657*/ OPC_CheckChild2Integer, 1, ++/*520659*/ OPC_CheckChild2Type, MVT::i64, ++/*520661*/ OPC_CheckChild3Integer, 1, ++/*520663*/ OPC_CheckChild3Type, MVT::i64, ++/*520665*/ OPC_CheckType, MVT::v4i64, ++/*520667*/ OPC_MoveParent, ++/*520668*/ OPC_CheckType, MVT::v4i64, ++/*520670*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*520672*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*520680*/ /*Scope*/ 87, /*->520768*/ ++/*520681*/ OPC_CheckChild0Same, 1, ++/*520683*/ OPC_CheckChild1Same, 0, ++/*520685*/ OPC_MoveParent, ++/*520686*/ OPC_MoveChild1, ++/*520687*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*520690*/ OPC_CheckChild0Integer, 1, ++/*520692*/ OPC_CheckChild0Type, MVT::i64, ++/*520694*/ OPC_CheckChild1Integer, 1, ++/*520696*/ OPC_CheckChild1Type, MVT::i64, ++/*520698*/ OPC_CheckChild2Integer, 1, ++/*520700*/ OPC_CheckChild2Type, MVT::i64, ++/*520702*/ OPC_CheckChild3Integer, 1, ++/*520704*/ OPC_CheckChild3Type, MVT::i64, ++/*520706*/ OPC_MoveParent, ++/*520707*/ OPC_MoveParent, ++/*520708*/ OPC_MoveChild1, ++/*520709*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*520712*/ OPC_CheckChild0Integer, 63, ++/*520714*/ OPC_CheckChild0Type, MVT::i64, ++/*520716*/ OPC_CheckChild1Integer, 63, ++/*520718*/ OPC_CheckChild1Type, MVT::i64, ++/*520720*/ OPC_CheckChild2Integer, 63, ++/*520722*/ OPC_CheckChild2Type, MVT::i64, ++/*520724*/ OPC_CheckChild3Integer, 63, ++/*520726*/ OPC_CheckChild3Type, MVT::i64, ++/*520728*/ OPC_CheckType, MVT::v4i64, ++/*520730*/ OPC_MoveParent, ++/*520731*/ OPC_MoveParent, ++/*520732*/ OPC_MoveParent, ++/*520733*/ OPC_MoveChild1, ++/*520734*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*520737*/ OPC_CheckChild0Integer, 1, ++/*520739*/ OPC_CheckChild0Type, MVT::i64, ++/*520741*/ OPC_CheckChild1Integer, 1, ++/*520743*/ OPC_CheckChild1Type, MVT::i64, ++/*520745*/ OPC_CheckChild2Integer, 1, ++/*520747*/ OPC_CheckChild2Type, MVT::i64, ++/*520749*/ OPC_CheckChild3Integer, 1, ++/*520751*/ OPC_CheckChild3Type, MVT::i64, ++/*520753*/ OPC_CheckType, MVT::v4i64, ++/*520755*/ OPC_MoveParent, ++/*520756*/ OPC_CheckType, MVT::v4i64, ++/*520758*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*520760*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*520768*/ /*Scope*/ 87, /*->520856*/ ++/*520769*/ OPC_CheckChild0Same, 0, ++/*520771*/ OPC_CheckChild1Same, 1, ++/*520773*/ OPC_MoveParent, ++/*520774*/ OPC_MoveChild1, ++/*520775*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*520778*/ OPC_CheckChild0Integer, 1, ++/*520780*/ OPC_CheckChild0Type, MVT::i64, ++/*520782*/ OPC_CheckChild1Integer, 1, ++/*520784*/ OPC_CheckChild1Type, MVT::i64, ++/*520786*/ OPC_CheckChild2Integer, 1, ++/*520788*/ OPC_CheckChild2Type, MVT::i64, ++/*520790*/ OPC_CheckChild3Integer, 1, ++/*520792*/ OPC_CheckChild3Type, MVT::i64, ++/*520794*/ OPC_MoveParent, ++/*520795*/ OPC_MoveParent, ++/*520796*/ OPC_MoveChild1, ++/*520797*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*520800*/ OPC_CheckChild0Integer, 63, ++/*520802*/ OPC_CheckChild0Type, MVT::i64, ++/*520804*/ OPC_CheckChild1Integer, 63, ++/*520806*/ OPC_CheckChild1Type, MVT::i64, ++/*520808*/ OPC_CheckChild2Integer, 63, ++/*520810*/ OPC_CheckChild2Type, MVT::i64, ++/*520812*/ OPC_CheckChild3Integer, 63, ++/*520814*/ OPC_CheckChild3Type, MVT::i64, ++/*520816*/ OPC_CheckType, MVT::v4i64, ++/*520818*/ OPC_MoveParent, ++/*520819*/ OPC_MoveParent, ++/*520820*/ OPC_MoveParent, ++/*520821*/ OPC_MoveChild1, ++/*520822*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*520825*/ OPC_CheckChild0Integer, 1, ++/*520827*/ OPC_CheckChild0Type, MVT::i64, ++/*520829*/ OPC_CheckChild1Integer, 1, ++/*520831*/ OPC_CheckChild1Type, MVT::i64, ++/*520833*/ OPC_CheckChild2Integer, 1, ++/*520835*/ OPC_CheckChild2Type, MVT::i64, ++/*520837*/ OPC_CheckChild3Integer, 1, ++/*520839*/ OPC_CheckChild3Type, MVT::i64, ++/*520841*/ OPC_CheckType, MVT::v4i64, ++/*520843*/ OPC_MoveParent, ++/*520844*/ OPC_CheckType, MVT::v4i64, ++/*520846*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*520848*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*520856*/ 0, /*End of Scope*/ ++/*520857*/ /*Scope*/ 52|128,1/*180*/, /*->521039*/ ++/*520859*/ OPC_CheckChild0Same, 0, ++/*520861*/ OPC_MoveChild1, ++/*520862*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*520865*/ OPC_Scope, 85, /*->520952*/ // 2 children in Scope ++/*520867*/ OPC_MoveChild0, ++/*520868*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*520871*/ OPC_CheckChild0Integer, 1, ++/*520873*/ OPC_CheckChild0Type, MVT::i64, ++/*520875*/ OPC_CheckChild1Integer, 1, ++/*520877*/ OPC_CheckChild1Type, MVT::i64, ++/*520879*/ OPC_CheckChild2Integer, 1, ++/*520881*/ OPC_CheckChild2Type, MVT::i64, ++/*520883*/ OPC_CheckChild3Integer, 1, ++/*520885*/ OPC_CheckChild3Type, MVT::i64, ++/*520887*/ OPC_MoveParent, ++/*520888*/ OPC_CheckChild1Same, 1, ++/*520890*/ OPC_MoveParent, ++/*520891*/ OPC_MoveParent, ++/*520892*/ OPC_MoveChild1, ++/*520893*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*520896*/ OPC_CheckChild0Integer, 63, ++/*520898*/ OPC_CheckChild0Type, MVT::i64, ++/*520900*/ OPC_CheckChild1Integer, 63, ++/*520902*/ OPC_CheckChild1Type, MVT::i64, ++/*520904*/ OPC_CheckChild2Integer, 63, ++/*520906*/ OPC_CheckChild2Type, MVT::i64, ++/*520908*/ OPC_CheckChild3Integer, 63, ++/*520910*/ OPC_CheckChild3Type, MVT::i64, ++/*520912*/ OPC_CheckType, MVT::v4i64, ++/*520914*/ OPC_MoveParent, ++/*520915*/ OPC_MoveParent, ++/*520916*/ OPC_MoveParent, ++/*520917*/ OPC_MoveChild1, ++/*520918*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*520921*/ OPC_CheckChild0Integer, 1, ++/*520923*/ OPC_CheckChild0Type, MVT::i64, ++/*520925*/ OPC_CheckChild1Integer, 1, ++/*520927*/ OPC_CheckChild1Type, MVT::i64, ++/*520929*/ OPC_CheckChild2Integer, 1, ++/*520931*/ OPC_CheckChild2Type, MVT::i64, ++/*520933*/ OPC_CheckChild3Integer, 1, ++/*520935*/ OPC_CheckChild3Type, MVT::i64, ++/*520937*/ OPC_CheckType, MVT::v4i64, ++/*520939*/ OPC_MoveParent, ++/*520940*/ OPC_CheckType, MVT::v4i64, ++/*520942*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*520944*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*520952*/ /*Scope*/ 85, /*->521038*/ ++/*520953*/ OPC_CheckChild0Same, 1, ++/*520955*/ OPC_MoveChild1, ++/*520956*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*520959*/ OPC_CheckChild0Integer, 1, ++/*520961*/ OPC_CheckChild0Type, MVT::i64, ++/*520963*/ OPC_CheckChild1Integer, 1, ++/*520965*/ OPC_CheckChild1Type, MVT::i64, ++/*520967*/ OPC_CheckChild2Integer, 1, ++/*520969*/ OPC_CheckChild2Type, MVT::i64, ++/*520971*/ OPC_CheckChild3Integer, 1, ++/*520973*/ OPC_CheckChild3Type, MVT::i64, ++/*520975*/ OPC_MoveParent, ++/*520976*/ OPC_MoveParent, ++/*520977*/ OPC_MoveParent, ++/*520978*/ OPC_MoveChild1, ++/*520979*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*520982*/ OPC_CheckChild0Integer, 63, ++/*520984*/ OPC_CheckChild0Type, MVT::i64, ++/*520986*/ OPC_CheckChild1Integer, 63, ++/*520988*/ OPC_CheckChild1Type, MVT::i64, ++/*520990*/ OPC_CheckChild2Integer, 63, ++/*520992*/ OPC_CheckChild2Type, MVT::i64, ++/*520994*/ OPC_CheckChild3Integer, 63, ++/*520996*/ OPC_CheckChild3Type, MVT::i64, ++/*520998*/ OPC_CheckType, MVT::v4i64, ++/*521000*/ OPC_MoveParent, ++/*521001*/ OPC_MoveParent, ++/*521002*/ OPC_MoveParent, ++/*521003*/ OPC_MoveChild1, ++/*521004*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*521007*/ OPC_CheckChild0Integer, 1, ++/*521009*/ OPC_CheckChild0Type, MVT::i64, ++/*521011*/ OPC_CheckChild1Integer, 1, ++/*521013*/ OPC_CheckChild1Type, MVT::i64, ++/*521015*/ OPC_CheckChild2Integer, 1, ++/*521017*/ OPC_CheckChild2Type, MVT::i64, ++/*521019*/ OPC_CheckChild3Integer, 1, ++/*521021*/ OPC_CheckChild3Type, MVT::i64, ++/*521023*/ OPC_CheckType, MVT::v4i64, ++/*521025*/ OPC_MoveParent, ++/*521026*/ OPC_CheckType, MVT::v4i64, ++/*521028*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*521030*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*521038*/ 0, /*End of Scope*/ ++/*521039*/ /*Scope*/ 52|128,1/*180*/, /*->521221*/ ++/*521041*/ OPC_CheckChild0Same, 1, ++/*521043*/ OPC_MoveChild1, ++/*521044*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*521047*/ OPC_Scope, 85, /*->521134*/ // 2 children in Scope ++/*521049*/ OPC_MoveChild0, ++/*521050*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*521053*/ OPC_CheckChild0Integer, 1, ++/*521055*/ OPC_CheckChild0Type, MVT::i64, ++/*521057*/ OPC_CheckChild1Integer, 1, ++/*521059*/ OPC_CheckChild1Type, MVT::i64, ++/*521061*/ OPC_CheckChild2Integer, 1, ++/*521063*/ OPC_CheckChild2Type, MVT::i64, ++/*521065*/ OPC_CheckChild3Integer, 1, ++/*521067*/ OPC_CheckChild3Type, MVT::i64, ++/*521069*/ OPC_MoveParent, ++/*521070*/ OPC_CheckChild1Same, 0, ++/*521072*/ OPC_MoveParent, ++/*521073*/ OPC_MoveParent, ++/*521074*/ OPC_MoveChild1, ++/*521075*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*521078*/ OPC_CheckChild0Integer, 63, ++/*521080*/ OPC_CheckChild0Type, MVT::i64, ++/*521082*/ OPC_CheckChild1Integer, 63, ++/*521084*/ OPC_CheckChild1Type, MVT::i64, ++/*521086*/ OPC_CheckChild2Integer, 63, ++/*521088*/ OPC_CheckChild2Type, MVT::i64, ++/*521090*/ OPC_CheckChild3Integer, 63, ++/*521092*/ OPC_CheckChild3Type, MVT::i64, ++/*521094*/ OPC_CheckType, MVT::v4i64, ++/*521096*/ OPC_MoveParent, ++/*521097*/ OPC_MoveParent, ++/*521098*/ OPC_MoveParent, ++/*521099*/ OPC_MoveChild1, ++/*521100*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*521103*/ OPC_CheckChild0Integer, 1, ++/*521105*/ OPC_CheckChild0Type, MVT::i64, ++/*521107*/ OPC_CheckChild1Integer, 1, ++/*521109*/ OPC_CheckChild1Type, MVT::i64, ++/*521111*/ OPC_CheckChild2Integer, 1, ++/*521113*/ OPC_CheckChild2Type, MVT::i64, ++/*521115*/ OPC_CheckChild3Integer, 1, ++/*521117*/ OPC_CheckChild3Type, MVT::i64, ++/*521119*/ OPC_CheckType, MVT::v4i64, ++/*521121*/ OPC_MoveParent, ++/*521122*/ OPC_CheckType, MVT::v4i64, ++/*521124*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*521126*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*521134*/ /*Scope*/ 85, /*->521220*/ ++/*521135*/ OPC_CheckChild0Same, 0, ++/*521137*/ OPC_MoveChild1, ++/*521138*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*521141*/ OPC_CheckChild0Integer, 1, ++/*521143*/ OPC_CheckChild0Type, MVT::i64, ++/*521145*/ OPC_CheckChild1Integer, 1, ++/*521147*/ OPC_CheckChild1Type, MVT::i64, ++/*521149*/ OPC_CheckChild2Integer, 1, ++/*521151*/ OPC_CheckChild2Type, MVT::i64, ++/*521153*/ OPC_CheckChild3Integer, 1, ++/*521155*/ OPC_CheckChild3Type, MVT::i64, ++/*521157*/ OPC_MoveParent, ++/*521158*/ OPC_MoveParent, ++/*521159*/ OPC_MoveParent, ++/*521160*/ OPC_MoveChild1, ++/*521161*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*521164*/ OPC_CheckChild0Integer, 63, ++/*521166*/ OPC_CheckChild0Type, MVT::i64, ++/*521168*/ OPC_CheckChild1Integer, 63, ++/*521170*/ OPC_CheckChild1Type, MVT::i64, ++/*521172*/ OPC_CheckChild2Integer, 63, ++/*521174*/ OPC_CheckChild2Type, MVT::i64, ++/*521176*/ OPC_CheckChild3Integer, 63, ++/*521178*/ OPC_CheckChild3Type, MVT::i64, ++/*521180*/ OPC_CheckType, MVT::v4i64, ++/*521182*/ OPC_MoveParent, ++/*521183*/ OPC_MoveParent, ++/*521184*/ OPC_MoveParent, ++/*521185*/ OPC_MoveChild1, ++/*521186*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*521189*/ OPC_CheckChild0Integer, 1, ++/*521191*/ OPC_CheckChild0Type, MVT::i64, ++/*521193*/ OPC_CheckChild1Integer, 1, ++/*521195*/ OPC_CheckChild1Type, MVT::i64, ++/*521197*/ OPC_CheckChild2Integer, 1, ++/*521199*/ OPC_CheckChild2Type, MVT::i64, ++/*521201*/ OPC_CheckChild3Integer, 1, ++/*521203*/ OPC_CheckChild3Type, MVT::i64, ++/*521205*/ OPC_CheckType, MVT::v4i64, ++/*521207*/ OPC_MoveParent, ++/*521208*/ OPC_CheckType, MVT::v4i64, ++/*521210*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*521212*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*521220*/ 0, /*End of Scope*/ ++/*521221*/ /*Scope*/ 33|128,1/*161*/, /*->521384*/ ++/*521223*/ OPC_MoveChild0, ++/*521224*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*521227*/ OPC_CheckChild0Integer, 1, ++/*521229*/ OPC_CheckChild0Type, MVT::i64, ++/*521231*/ OPC_CheckChild1Integer, 1, ++/*521233*/ OPC_CheckChild1Type, MVT::i64, ++/*521235*/ OPC_CheckChild2Integer, 1, ++/*521237*/ OPC_CheckChild2Type, MVT::i64, ++/*521239*/ OPC_CheckChild3Integer, 1, ++/*521241*/ OPC_CheckChild3Type, MVT::i64, ++/*521243*/ OPC_MoveParent, ++/*521244*/ OPC_MoveChild1, ++/*521245*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*521248*/ OPC_Scope, 66, /*->521316*/ // 2 children in Scope ++/*521250*/ OPC_CheckChild0Same, 1, ++/*521252*/ OPC_CheckChild1Same, 0, ++/*521254*/ OPC_MoveParent, ++/*521255*/ OPC_MoveParent, ++/*521256*/ OPC_MoveChild1, ++/*521257*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*521260*/ OPC_CheckChild0Integer, 63, ++/*521262*/ OPC_CheckChild0Type, MVT::i64, ++/*521264*/ OPC_CheckChild1Integer, 63, ++/*521266*/ OPC_CheckChild1Type, MVT::i64, ++/*521268*/ OPC_CheckChild2Integer, 63, ++/*521270*/ OPC_CheckChild2Type, MVT::i64, ++/*521272*/ OPC_CheckChild3Integer, 63, ++/*521274*/ OPC_CheckChild3Type, MVT::i64, ++/*521276*/ OPC_CheckType, MVT::v4i64, ++/*521278*/ OPC_MoveParent, ++/*521279*/ OPC_MoveParent, ++/*521280*/ OPC_MoveParent, ++/*521281*/ OPC_MoveChild1, ++/*521282*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*521285*/ OPC_CheckChild0Integer, 1, ++/*521287*/ OPC_CheckChild0Type, MVT::i64, ++/*521289*/ OPC_CheckChild1Integer, 1, ++/*521291*/ OPC_CheckChild1Type, MVT::i64, ++/*521293*/ OPC_CheckChild2Integer, 1, ++/*521295*/ OPC_CheckChild2Type, MVT::i64, ++/*521297*/ OPC_CheckChild3Integer, 1, ++/*521299*/ OPC_CheckChild3Type, MVT::i64, ++/*521301*/ OPC_CheckType, MVT::v4i64, ++/*521303*/ OPC_MoveParent, ++/*521304*/ OPC_CheckType, MVT::v4i64, ++/*521306*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*521308*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*521316*/ /*Scope*/ 66, /*->521383*/ ++/*521317*/ OPC_CheckChild0Same, 0, ++/*521319*/ OPC_CheckChild1Same, 1, ++/*521321*/ OPC_MoveParent, ++/*521322*/ OPC_MoveParent, ++/*521323*/ OPC_MoveChild1, ++/*521324*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*521327*/ OPC_CheckChild0Integer, 63, ++/*521329*/ OPC_CheckChild0Type, MVT::i64, ++/*521331*/ OPC_CheckChild1Integer, 63, ++/*521333*/ OPC_CheckChild1Type, MVT::i64, ++/*521335*/ OPC_CheckChild2Integer, 63, ++/*521337*/ OPC_CheckChild2Type, MVT::i64, ++/*521339*/ OPC_CheckChild3Integer, 63, ++/*521341*/ OPC_CheckChild3Type, MVT::i64, ++/*521343*/ OPC_CheckType, MVT::v4i64, ++/*521345*/ OPC_MoveParent, ++/*521346*/ OPC_MoveParent, ++/*521347*/ OPC_MoveParent, ++/*521348*/ OPC_MoveChild1, ++/*521349*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*521352*/ OPC_CheckChild0Integer, 1, ++/*521354*/ OPC_CheckChild0Type, MVT::i64, ++/*521356*/ OPC_CheckChild1Integer, 1, ++/*521358*/ OPC_CheckChild1Type, MVT::i64, ++/*521360*/ OPC_CheckChild2Integer, 1, ++/*521362*/ OPC_CheckChild2Type, MVT::i64, ++/*521364*/ OPC_CheckChild3Integer, 1, ++/*521366*/ OPC_CheckChild3Type, MVT::i64, ++/*521368*/ OPC_CheckType, MVT::v4i64, ++/*521370*/ OPC_MoveParent, ++/*521371*/ OPC_CheckType, MVT::v4i64, ++/*521373*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*521375*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*521383*/ 0, /*End of Scope*/ ++/*521384*/ 0, /*End of Scope*/ ++/*521385*/ /*Scope*/ 73|128,8/*1097*/, /*->522484*/ ++/*521387*/ OPC_MoveChild0, ++/*521388*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*521391*/ OPC_CheckChild0Integer, 1, ++/*521393*/ OPC_CheckChild0Type, MVT::i64, ++/*521395*/ OPC_CheckChild1Integer, 1, ++/*521397*/ OPC_CheckChild1Type, MVT::i64, ++/*521399*/ OPC_CheckChild2Integer, 1, ++/*521401*/ OPC_CheckChild2Type, MVT::i64, ++/*521403*/ OPC_CheckChild3Integer, 1, ++/*521405*/ OPC_CheckChild3Type, MVT::i64, ++/*521407*/ OPC_MoveParent, ++/*521408*/ OPC_RecordChild1, // #1 = $b ++/*521409*/ OPC_MoveParent, ++/*521410*/ OPC_MoveParent, ++/*521411*/ OPC_MoveChild1, ++/*521412*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*521415*/ OPC_MoveChild0, ++/*521416*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*521419*/ OPC_Scope, 22|128,4/*534*/, /*->521956*/ // 4 children in Scope ++/*521422*/ OPC_MoveChild0, ++/*521423*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*521426*/ OPC_Scope, 87, /*->521515*/ // 6 children in Scope ++/*521428*/ OPC_MoveChild0, ++/*521429*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*521432*/ OPC_CheckChild0Integer, 1, ++/*521434*/ OPC_CheckChild0Type, MVT::i64, ++/*521436*/ OPC_CheckChild1Integer, 1, ++/*521438*/ OPC_CheckChild1Type, MVT::i64, ++/*521440*/ OPC_CheckChild2Integer, 1, ++/*521442*/ OPC_CheckChild2Type, MVT::i64, ++/*521444*/ OPC_CheckChild3Integer, 1, ++/*521446*/ OPC_CheckChild3Type, MVT::i64, ++/*521448*/ OPC_MoveParent, ++/*521449*/ OPC_CheckChild1Same, 0, ++/*521451*/ OPC_MoveParent, ++/*521452*/ OPC_CheckChild1Same, 1, ++/*521454*/ OPC_MoveParent, ++/*521455*/ OPC_MoveChild1, ++/*521456*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*521459*/ OPC_CheckChild0Integer, 63, ++/*521461*/ OPC_CheckChild0Type, MVT::i64, ++/*521463*/ OPC_CheckChild1Integer, 63, ++/*521465*/ OPC_CheckChild1Type, MVT::i64, ++/*521467*/ OPC_CheckChild2Integer, 63, ++/*521469*/ OPC_CheckChild2Type, MVT::i64, ++/*521471*/ OPC_CheckChild3Integer, 63, ++/*521473*/ OPC_CheckChild3Type, MVT::i64, ++/*521475*/ OPC_CheckType, MVT::v4i64, ++/*521477*/ OPC_MoveParent, ++/*521478*/ OPC_MoveParent, ++/*521479*/ OPC_MoveParent, ++/*521480*/ OPC_MoveChild1, ++/*521481*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*521484*/ OPC_CheckChild0Integer, 1, ++/*521486*/ OPC_CheckChild0Type, MVT::i64, ++/*521488*/ OPC_CheckChild1Integer, 1, ++/*521490*/ OPC_CheckChild1Type, MVT::i64, ++/*521492*/ OPC_CheckChild2Integer, 1, ++/*521494*/ OPC_CheckChild2Type, MVT::i64, ++/*521496*/ OPC_CheckChild3Integer, 1, ++/*521498*/ OPC_CheckChild3Type, MVT::i64, ++/*521500*/ OPC_CheckType, MVT::v4i64, ++/*521502*/ OPC_MoveParent, ++/*521503*/ OPC_CheckType, MVT::v4i64, ++/*521505*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*521507*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b)), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a), LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*521515*/ /*Scope*/ 87, /*->521603*/ ++/*521516*/ OPC_CheckChild0Same, 0, ++/*521518*/ OPC_MoveChild1, ++/*521519*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*521522*/ OPC_CheckChild0Integer, 1, ++/*521524*/ OPC_CheckChild0Type, MVT::i64, ++/*521526*/ OPC_CheckChild1Integer, 1, ++/*521528*/ OPC_CheckChild1Type, MVT::i64, ++/*521530*/ OPC_CheckChild2Integer, 1, ++/*521532*/ OPC_CheckChild2Type, MVT::i64, ++/*521534*/ OPC_CheckChild3Integer, 1, ++/*521536*/ OPC_CheckChild3Type, MVT::i64, ++/*521538*/ OPC_MoveParent, ++/*521539*/ OPC_MoveParent, ++/*521540*/ OPC_CheckChild1Same, 1, ++/*521542*/ OPC_MoveParent, ++/*521543*/ OPC_MoveChild1, ++/*521544*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*521547*/ OPC_CheckChild0Integer, 63, ++/*521549*/ OPC_CheckChild0Type, MVT::i64, ++/*521551*/ OPC_CheckChild1Integer, 63, ++/*521553*/ OPC_CheckChild1Type, MVT::i64, ++/*521555*/ OPC_CheckChild2Integer, 63, ++/*521557*/ OPC_CheckChild2Type, MVT::i64, ++/*521559*/ OPC_CheckChild3Integer, 63, ++/*521561*/ OPC_CheckChild3Type, MVT::i64, ++/*521563*/ OPC_CheckType, MVT::v4i64, ++/*521565*/ OPC_MoveParent, ++/*521566*/ OPC_MoveParent, ++/*521567*/ OPC_MoveParent, ++/*521568*/ OPC_MoveChild1, ++/*521569*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*521572*/ OPC_CheckChild0Integer, 1, ++/*521574*/ OPC_CheckChild0Type, MVT::i64, ++/*521576*/ OPC_CheckChild1Integer, 1, ++/*521578*/ OPC_CheckChild1Type, MVT::i64, ++/*521580*/ OPC_CheckChild2Integer, 1, ++/*521582*/ OPC_CheckChild2Type, MVT::i64, ++/*521584*/ OPC_CheckChild3Integer, 1, ++/*521586*/ OPC_CheckChild3Type, MVT::i64, ++/*521588*/ OPC_CheckType, MVT::v4i64, ++/*521590*/ OPC_MoveParent, ++/*521591*/ OPC_CheckType, MVT::v4i64, ++/*521593*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*521595*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b)), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*521603*/ /*Scope*/ 87, /*->521691*/ ++/*521604*/ OPC_MoveChild0, ++/*521605*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*521608*/ OPC_CheckChild0Integer, 1, ++/*521610*/ OPC_CheckChild0Type, MVT::i64, ++/*521612*/ OPC_CheckChild1Integer, 1, ++/*521614*/ OPC_CheckChild1Type, MVT::i64, ++/*521616*/ OPC_CheckChild2Integer, 1, ++/*521618*/ OPC_CheckChild2Type, MVT::i64, ++/*521620*/ OPC_CheckChild3Integer, 1, ++/*521622*/ OPC_CheckChild3Type, MVT::i64, ++/*521624*/ OPC_MoveParent, ++/*521625*/ OPC_CheckChild1Same, 1, ++/*521627*/ OPC_MoveParent, ++/*521628*/ OPC_CheckChild1Same, 0, ++/*521630*/ OPC_MoveParent, ++/*521631*/ OPC_MoveChild1, ++/*521632*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*521635*/ OPC_CheckChild0Integer, 63, ++/*521637*/ OPC_CheckChild0Type, MVT::i64, ++/*521639*/ OPC_CheckChild1Integer, 63, ++/*521641*/ OPC_CheckChild1Type, MVT::i64, ++/*521643*/ OPC_CheckChild2Integer, 63, ++/*521645*/ OPC_CheckChild2Type, MVT::i64, ++/*521647*/ OPC_CheckChild3Integer, 63, ++/*521649*/ OPC_CheckChild3Type, MVT::i64, ++/*521651*/ OPC_CheckType, MVT::v4i64, ++/*521653*/ OPC_MoveParent, ++/*521654*/ OPC_MoveParent, ++/*521655*/ OPC_MoveParent, ++/*521656*/ OPC_MoveChild1, ++/*521657*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*521660*/ OPC_CheckChild0Integer, 1, ++/*521662*/ OPC_CheckChild0Type, MVT::i64, ++/*521664*/ OPC_CheckChild1Integer, 1, ++/*521666*/ OPC_CheckChild1Type, MVT::i64, ++/*521668*/ OPC_CheckChild2Integer, 1, ++/*521670*/ OPC_CheckChild2Type, MVT::i64, ++/*521672*/ OPC_CheckChild3Integer, 1, ++/*521674*/ OPC_CheckChild3Type, MVT::i64, ++/*521676*/ OPC_CheckType, MVT::v4i64, ++/*521678*/ OPC_MoveParent, ++/*521679*/ OPC_CheckType, MVT::v4i64, ++/*521681*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*521683*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b)), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b), LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*521691*/ /*Scope*/ 87, /*->521779*/ ++/*521692*/ OPC_CheckChild0Same, 1, ++/*521694*/ OPC_MoveChild1, ++/*521695*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*521698*/ OPC_CheckChild0Integer, 1, ++/*521700*/ OPC_CheckChild0Type, MVT::i64, ++/*521702*/ OPC_CheckChild1Integer, 1, ++/*521704*/ OPC_CheckChild1Type, MVT::i64, ++/*521706*/ OPC_CheckChild2Integer, 1, ++/*521708*/ OPC_CheckChild2Type, MVT::i64, ++/*521710*/ OPC_CheckChild3Integer, 1, ++/*521712*/ OPC_CheckChild3Type, MVT::i64, ++/*521714*/ OPC_MoveParent, ++/*521715*/ OPC_MoveParent, ++/*521716*/ OPC_CheckChild1Same, 0, ++/*521718*/ OPC_MoveParent, ++/*521719*/ OPC_MoveChild1, ++/*521720*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*521723*/ OPC_CheckChild0Integer, 63, ++/*521725*/ OPC_CheckChild0Type, MVT::i64, ++/*521727*/ OPC_CheckChild1Integer, 63, ++/*521729*/ OPC_CheckChild1Type, MVT::i64, ++/*521731*/ OPC_CheckChild2Integer, 63, ++/*521733*/ OPC_CheckChild2Type, MVT::i64, ++/*521735*/ OPC_CheckChild3Integer, 63, ++/*521737*/ OPC_CheckChild3Type, MVT::i64, ++/*521739*/ OPC_CheckType, MVT::v4i64, ++/*521741*/ OPC_MoveParent, ++/*521742*/ OPC_MoveParent, ++/*521743*/ OPC_MoveParent, ++/*521744*/ OPC_MoveChild1, ++/*521745*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*521748*/ OPC_CheckChild0Integer, 1, ++/*521750*/ OPC_CheckChild0Type, MVT::i64, ++/*521752*/ OPC_CheckChild1Integer, 1, ++/*521754*/ OPC_CheckChild1Type, MVT::i64, ++/*521756*/ OPC_CheckChild2Integer, 1, ++/*521758*/ OPC_CheckChild2Type, MVT::i64, ++/*521760*/ OPC_CheckChild3Integer, 1, ++/*521762*/ OPC_CheckChild3Type, MVT::i64, ++/*521764*/ OPC_CheckType, MVT::v4i64, ++/*521766*/ OPC_MoveParent, ++/*521767*/ OPC_CheckType, MVT::v4i64, ++/*521769*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*521771*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b)), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*521779*/ /*Scope*/ 87, /*->521867*/ ++/*521780*/ OPC_CheckChild0Same, 0, ++/*521782*/ OPC_CheckChild1Same, 1, ++/*521784*/ OPC_MoveParent, ++/*521785*/ OPC_MoveChild1, ++/*521786*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*521789*/ OPC_CheckChild0Integer, 1, ++/*521791*/ OPC_CheckChild0Type, MVT::i64, ++/*521793*/ OPC_CheckChild1Integer, 1, ++/*521795*/ OPC_CheckChild1Type, MVT::i64, ++/*521797*/ OPC_CheckChild2Integer, 1, ++/*521799*/ OPC_CheckChild2Type, MVT::i64, ++/*521801*/ OPC_CheckChild3Integer, 1, ++/*521803*/ OPC_CheckChild3Type, MVT::i64, ++/*521805*/ OPC_MoveParent, ++/*521806*/ OPC_MoveParent, ++/*521807*/ OPC_MoveChild1, ++/*521808*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*521811*/ OPC_CheckChild0Integer, 63, ++/*521813*/ OPC_CheckChild0Type, MVT::i64, ++/*521815*/ OPC_CheckChild1Integer, 63, ++/*521817*/ OPC_CheckChild1Type, MVT::i64, ++/*521819*/ OPC_CheckChild2Integer, 63, ++/*521821*/ OPC_CheckChild2Type, MVT::i64, ++/*521823*/ OPC_CheckChild3Integer, 63, ++/*521825*/ OPC_CheckChild3Type, MVT::i64, ++/*521827*/ OPC_CheckType, MVT::v4i64, ++/*521829*/ OPC_MoveParent, ++/*521830*/ OPC_MoveParent, ++/*521831*/ OPC_MoveParent, ++/*521832*/ OPC_MoveChild1, ++/*521833*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*521836*/ OPC_CheckChild0Integer, 1, ++/*521838*/ OPC_CheckChild0Type, MVT::i64, ++/*521840*/ OPC_CheckChild1Integer, 1, ++/*521842*/ OPC_CheckChild1Type, MVT::i64, ++/*521844*/ OPC_CheckChild2Integer, 1, ++/*521846*/ OPC_CheckChild2Type, MVT::i64, ++/*521848*/ OPC_CheckChild3Integer, 1, ++/*521850*/ OPC_CheckChild3Type, MVT::i64, ++/*521852*/ OPC_CheckType, MVT::v4i64, ++/*521854*/ OPC_MoveParent, ++/*521855*/ OPC_CheckType, MVT::v4i64, ++/*521857*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*521859*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b)), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*521867*/ /*Scope*/ 87, /*->521955*/ ++/*521868*/ OPC_CheckChild0Same, 1, ++/*521870*/ OPC_CheckChild1Same, 0, ++/*521872*/ OPC_MoveParent, ++/*521873*/ OPC_MoveChild1, ++/*521874*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*521877*/ OPC_CheckChild0Integer, 1, ++/*521879*/ OPC_CheckChild0Type, MVT::i64, ++/*521881*/ OPC_CheckChild1Integer, 1, ++/*521883*/ OPC_CheckChild1Type, MVT::i64, ++/*521885*/ OPC_CheckChild2Integer, 1, ++/*521887*/ OPC_CheckChild2Type, MVT::i64, ++/*521889*/ OPC_CheckChild3Integer, 1, ++/*521891*/ OPC_CheckChild3Type, MVT::i64, ++/*521893*/ OPC_MoveParent, ++/*521894*/ OPC_MoveParent, ++/*521895*/ OPC_MoveChild1, ++/*521896*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*521899*/ OPC_CheckChild0Integer, 63, ++/*521901*/ OPC_CheckChild0Type, MVT::i64, ++/*521903*/ OPC_CheckChild1Integer, 63, ++/*521905*/ OPC_CheckChild1Type, MVT::i64, ++/*521907*/ OPC_CheckChild2Integer, 63, ++/*521909*/ OPC_CheckChild2Type, MVT::i64, ++/*521911*/ OPC_CheckChild3Integer, 63, ++/*521913*/ OPC_CheckChild3Type, MVT::i64, ++/*521915*/ OPC_CheckType, MVT::v4i64, ++/*521917*/ OPC_MoveParent, ++/*521918*/ OPC_MoveParent, ++/*521919*/ OPC_MoveParent, ++/*521920*/ OPC_MoveChild1, ++/*521921*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*521924*/ OPC_CheckChild0Integer, 1, ++/*521926*/ OPC_CheckChild0Type, MVT::i64, ++/*521928*/ OPC_CheckChild1Integer, 1, ++/*521930*/ OPC_CheckChild1Type, MVT::i64, ++/*521932*/ OPC_CheckChild2Integer, 1, ++/*521934*/ OPC_CheckChild2Type, MVT::i64, ++/*521936*/ OPC_CheckChild3Integer, 1, ++/*521938*/ OPC_CheckChild3Type, MVT::i64, ++/*521940*/ OPC_CheckType, MVT::v4i64, ++/*521942*/ OPC_MoveParent, ++/*521943*/ OPC_CheckType, MVT::v4i64, ++/*521945*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*521947*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b)), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*521955*/ 0, /*End of Scope*/ ++/*521956*/ /*Scope*/ 52|128,1/*180*/, /*->522138*/ ++/*521958*/ OPC_CheckChild0Same, 1, ++/*521960*/ OPC_MoveChild1, ++/*521961*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*521964*/ OPC_Scope, 85, /*->522051*/ // 2 children in Scope ++/*521966*/ OPC_MoveChild0, ++/*521967*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*521970*/ OPC_CheckChild0Integer, 1, ++/*521972*/ OPC_CheckChild0Type, MVT::i64, ++/*521974*/ OPC_CheckChild1Integer, 1, ++/*521976*/ OPC_CheckChild1Type, MVT::i64, ++/*521978*/ OPC_CheckChild2Integer, 1, ++/*521980*/ OPC_CheckChild2Type, MVT::i64, ++/*521982*/ OPC_CheckChild3Integer, 1, ++/*521984*/ OPC_CheckChild3Type, MVT::i64, ++/*521986*/ OPC_MoveParent, ++/*521987*/ OPC_CheckChild1Same, 0, ++/*521989*/ OPC_MoveParent, ++/*521990*/ OPC_MoveParent, ++/*521991*/ OPC_MoveChild1, ++/*521992*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*521995*/ OPC_CheckChild0Integer, 63, ++/*521997*/ OPC_CheckChild0Type, MVT::i64, ++/*521999*/ OPC_CheckChild1Integer, 63, ++/*522001*/ OPC_CheckChild1Type, MVT::i64, ++/*522003*/ OPC_CheckChild2Integer, 63, ++/*522005*/ OPC_CheckChild2Type, MVT::i64, ++/*522007*/ OPC_CheckChild3Integer, 63, ++/*522009*/ OPC_CheckChild3Type, MVT::i64, ++/*522011*/ OPC_CheckType, MVT::v4i64, ++/*522013*/ OPC_MoveParent, ++/*522014*/ OPC_MoveParent, ++/*522015*/ OPC_MoveParent, ++/*522016*/ OPC_MoveChild1, ++/*522017*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*522020*/ OPC_CheckChild0Integer, 1, ++/*522022*/ OPC_CheckChild0Type, MVT::i64, ++/*522024*/ OPC_CheckChild1Integer, 1, ++/*522026*/ OPC_CheckChild1Type, MVT::i64, ++/*522028*/ OPC_CheckChild2Integer, 1, ++/*522030*/ OPC_CheckChild2Type, MVT::i64, ++/*522032*/ OPC_CheckChild3Integer, 1, ++/*522034*/ OPC_CheckChild3Type, MVT::i64, ++/*522036*/ OPC_CheckType, MVT::v4i64, ++/*522038*/ OPC_MoveParent, ++/*522039*/ OPC_CheckType, MVT::v4i64, ++/*522041*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*522043*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b)), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*522051*/ /*Scope*/ 85, /*->522137*/ ++/*522052*/ OPC_CheckChild0Same, 0, ++/*522054*/ OPC_MoveChild1, ++/*522055*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*522058*/ OPC_CheckChild0Integer, 1, ++/*522060*/ OPC_CheckChild0Type, MVT::i64, ++/*522062*/ OPC_CheckChild1Integer, 1, ++/*522064*/ OPC_CheckChild1Type, MVT::i64, ++/*522066*/ OPC_CheckChild2Integer, 1, ++/*522068*/ OPC_CheckChild2Type, MVT::i64, ++/*522070*/ OPC_CheckChild3Integer, 1, ++/*522072*/ OPC_CheckChild3Type, MVT::i64, ++/*522074*/ OPC_MoveParent, ++/*522075*/ OPC_MoveParent, ++/*522076*/ OPC_MoveParent, ++/*522077*/ OPC_MoveChild1, ++/*522078*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*522081*/ OPC_CheckChild0Integer, 63, ++/*522083*/ OPC_CheckChild0Type, MVT::i64, ++/*522085*/ OPC_CheckChild1Integer, 63, ++/*522087*/ OPC_CheckChild1Type, MVT::i64, ++/*522089*/ OPC_CheckChild2Integer, 63, ++/*522091*/ OPC_CheckChild2Type, MVT::i64, ++/*522093*/ OPC_CheckChild3Integer, 63, ++/*522095*/ OPC_CheckChild3Type, MVT::i64, ++/*522097*/ OPC_CheckType, MVT::v4i64, ++/*522099*/ OPC_MoveParent, ++/*522100*/ OPC_MoveParent, ++/*522101*/ OPC_MoveParent, ++/*522102*/ OPC_MoveChild1, ++/*522103*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*522106*/ OPC_CheckChild0Integer, 1, ++/*522108*/ OPC_CheckChild0Type, MVT::i64, ++/*522110*/ OPC_CheckChild1Integer, 1, ++/*522112*/ OPC_CheckChild1Type, MVT::i64, ++/*522114*/ OPC_CheckChild2Integer, 1, ++/*522116*/ OPC_CheckChild2Type, MVT::i64, ++/*522118*/ OPC_CheckChild3Integer, 1, ++/*522120*/ OPC_CheckChild3Type, MVT::i64, ++/*522122*/ OPC_CheckType, MVT::v4i64, ++/*522124*/ OPC_MoveParent, ++/*522125*/ OPC_CheckType, MVT::v4i64, ++/*522127*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*522129*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b)), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*522137*/ 0, /*End of Scope*/ ++/*522138*/ /*Scope*/ 52|128,1/*180*/, /*->522320*/ ++/*522140*/ OPC_CheckChild0Same, 0, ++/*522142*/ OPC_MoveChild1, ++/*522143*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*522146*/ OPC_Scope, 85, /*->522233*/ // 2 children in Scope ++/*522148*/ OPC_MoveChild0, ++/*522149*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*522152*/ OPC_CheckChild0Integer, 1, ++/*522154*/ OPC_CheckChild0Type, MVT::i64, ++/*522156*/ OPC_CheckChild1Integer, 1, ++/*522158*/ OPC_CheckChild1Type, MVT::i64, ++/*522160*/ OPC_CheckChild2Integer, 1, ++/*522162*/ OPC_CheckChild2Type, MVT::i64, ++/*522164*/ OPC_CheckChild3Integer, 1, ++/*522166*/ OPC_CheckChild3Type, MVT::i64, ++/*522168*/ OPC_MoveParent, ++/*522169*/ OPC_CheckChild1Same, 1, ++/*522171*/ OPC_MoveParent, ++/*522172*/ OPC_MoveParent, ++/*522173*/ OPC_MoveChild1, ++/*522174*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*522177*/ OPC_CheckChild0Integer, 63, ++/*522179*/ OPC_CheckChild0Type, MVT::i64, ++/*522181*/ OPC_CheckChild1Integer, 63, ++/*522183*/ OPC_CheckChild1Type, MVT::i64, ++/*522185*/ OPC_CheckChild2Integer, 63, ++/*522187*/ OPC_CheckChild2Type, MVT::i64, ++/*522189*/ OPC_CheckChild3Integer, 63, ++/*522191*/ OPC_CheckChild3Type, MVT::i64, ++/*522193*/ OPC_CheckType, MVT::v4i64, ++/*522195*/ OPC_MoveParent, ++/*522196*/ OPC_MoveParent, ++/*522197*/ OPC_MoveParent, ++/*522198*/ OPC_MoveChild1, ++/*522199*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*522202*/ OPC_CheckChild0Integer, 1, ++/*522204*/ OPC_CheckChild0Type, MVT::i64, ++/*522206*/ OPC_CheckChild1Integer, 1, ++/*522208*/ OPC_CheckChild1Type, MVT::i64, ++/*522210*/ OPC_CheckChild2Integer, 1, ++/*522212*/ OPC_CheckChild2Type, MVT::i64, ++/*522214*/ OPC_CheckChild3Integer, 1, ++/*522216*/ OPC_CheckChild3Type, MVT::i64, ++/*522218*/ OPC_CheckType, MVT::v4i64, ++/*522220*/ OPC_MoveParent, ++/*522221*/ OPC_CheckType, MVT::v4i64, ++/*522223*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*522225*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b)), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*522233*/ /*Scope*/ 85, /*->522319*/ ++/*522234*/ OPC_CheckChild0Same, 1, ++/*522236*/ OPC_MoveChild1, ++/*522237*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*522240*/ OPC_CheckChild0Integer, 1, ++/*522242*/ OPC_CheckChild0Type, MVT::i64, ++/*522244*/ OPC_CheckChild1Integer, 1, ++/*522246*/ OPC_CheckChild1Type, MVT::i64, ++/*522248*/ OPC_CheckChild2Integer, 1, ++/*522250*/ OPC_CheckChild2Type, MVT::i64, ++/*522252*/ OPC_CheckChild3Integer, 1, ++/*522254*/ OPC_CheckChild3Type, MVT::i64, ++/*522256*/ OPC_MoveParent, ++/*522257*/ OPC_MoveParent, ++/*522258*/ OPC_MoveParent, ++/*522259*/ OPC_MoveChild1, ++/*522260*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*522263*/ OPC_CheckChild0Integer, 63, ++/*522265*/ OPC_CheckChild0Type, MVT::i64, ++/*522267*/ OPC_CheckChild1Integer, 63, ++/*522269*/ OPC_CheckChild1Type, MVT::i64, ++/*522271*/ OPC_CheckChild2Integer, 63, ++/*522273*/ OPC_CheckChild2Type, MVT::i64, ++/*522275*/ OPC_CheckChild3Integer, 63, ++/*522277*/ OPC_CheckChild3Type, MVT::i64, ++/*522279*/ OPC_CheckType, MVT::v4i64, ++/*522281*/ OPC_MoveParent, ++/*522282*/ OPC_MoveParent, ++/*522283*/ OPC_MoveParent, ++/*522284*/ OPC_MoveChild1, ++/*522285*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*522288*/ OPC_CheckChild0Integer, 1, ++/*522290*/ OPC_CheckChild0Type, MVT::i64, ++/*522292*/ OPC_CheckChild1Integer, 1, ++/*522294*/ OPC_CheckChild1Type, MVT::i64, ++/*522296*/ OPC_CheckChild2Integer, 1, ++/*522298*/ OPC_CheckChild2Type, MVT::i64, ++/*522300*/ OPC_CheckChild3Integer, 1, ++/*522302*/ OPC_CheckChild3Type, MVT::i64, ++/*522304*/ OPC_CheckType, MVT::v4i64, ++/*522306*/ OPC_MoveParent, ++/*522307*/ OPC_CheckType, MVT::v4i64, ++/*522309*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*522311*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b)), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*522319*/ 0, /*End of Scope*/ ++/*522320*/ /*Scope*/ 33|128,1/*161*/, /*->522483*/ ++/*522322*/ OPC_MoveChild0, ++/*522323*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*522326*/ OPC_CheckChild0Integer, 1, ++/*522328*/ OPC_CheckChild0Type, MVT::i64, ++/*522330*/ OPC_CheckChild1Integer, 1, ++/*522332*/ OPC_CheckChild1Type, MVT::i64, ++/*522334*/ OPC_CheckChild2Integer, 1, ++/*522336*/ OPC_CheckChild2Type, MVT::i64, ++/*522338*/ OPC_CheckChild3Integer, 1, ++/*522340*/ OPC_CheckChild3Type, MVT::i64, ++/*522342*/ OPC_MoveParent, ++/*522343*/ OPC_MoveChild1, ++/*522344*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*522347*/ OPC_Scope, 66, /*->522415*/ // 2 children in Scope ++/*522349*/ OPC_CheckChild0Same, 0, ++/*522351*/ OPC_CheckChild1Same, 1, ++/*522353*/ OPC_MoveParent, ++/*522354*/ OPC_MoveParent, ++/*522355*/ OPC_MoveChild1, ++/*522356*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*522359*/ OPC_CheckChild0Integer, 63, ++/*522361*/ OPC_CheckChild0Type, MVT::i64, ++/*522363*/ OPC_CheckChild1Integer, 63, ++/*522365*/ OPC_CheckChild1Type, MVT::i64, ++/*522367*/ OPC_CheckChild2Integer, 63, ++/*522369*/ OPC_CheckChild2Type, MVT::i64, ++/*522371*/ OPC_CheckChild3Integer, 63, ++/*522373*/ OPC_CheckChild3Type, MVT::i64, ++/*522375*/ OPC_CheckType, MVT::v4i64, ++/*522377*/ OPC_MoveParent, ++/*522378*/ OPC_MoveParent, ++/*522379*/ OPC_MoveParent, ++/*522380*/ OPC_MoveChild1, ++/*522381*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*522384*/ OPC_CheckChild0Integer, 1, ++/*522386*/ OPC_CheckChild0Type, MVT::i64, ++/*522388*/ OPC_CheckChild1Integer, 1, ++/*522390*/ OPC_CheckChild1Type, MVT::i64, ++/*522392*/ OPC_CheckChild2Integer, 1, ++/*522394*/ OPC_CheckChild2Type, MVT::i64, ++/*522396*/ OPC_CheckChild3Integer, 1, ++/*522398*/ OPC_CheckChild3Type, MVT::i64, ++/*522400*/ OPC_CheckType, MVT::v4i64, ++/*522402*/ OPC_MoveParent, ++/*522403*/ OPC_CheckType, MVT::v4i64, ++/*522405*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*522407*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b)), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*522415*/ /*Scope*/ 66, /*->522482*/ ++/*522416*/ OPC_CheckChild0Same, 1, ++/*522418*/ OPC_CheckChild1Same, 0, ++/*522420*/ OPC_MoveParent, ++/*522421*/ OPC_MoveParent, ++/*522422*/ OPC_MoveChild1, ++/*522423*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*522426*/ OPC_CheckChild0Integer, 63, ++/*522428*/ OPC_CheckChild0Type, MVT::i64, ++/*522430*/ OPC_CheckChild1Integer, 63, ++/*522432*/ OPC_CheckChild1Type, MVT::i64, ++/*522434*/ OPC_CheckChild2Integer, 63, ++/*522436*/ OPC_CheckChild2Type, MVT::i64, ++/*522438*/ OPC_CheckChild3Integer, 63, ++/*522440*/ OPC_CheckChild3Type, MVT::i64, ++/*522442*/ OPC_CheckType, MVT::v4i64, ++/*522444*/ OPC_MoveParent, ++/*522445*/ OPC_MoveParent, ++/*522446*/ OPC_MoveParent, ++/*522447*/ OPC_MoveChild1, ++/*522448*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*522451*/ OPC_CheckChild0Integer, 1, ++/*522453*/ OPC_CheckChild0Type, MVT::i64, ++/*522455*/ OPC_CheckChild1Integer, 1, ++/*522457*/ OPC_CheckChild1Type, MVT::i64, ++/*522459*/ OPC_CheckChild2Integer, 1, ++/*522461*/ OPC_CheckChild2Type, MVT::i64, ++/*522463*/ OPC_CheckChild3Integer, 1, ++/*522465*/ OPC_CheckChild3Type, MVT::i64, ++/*522467*/ OPC_CheckType, MVT::v4i64, ++/*522469*/ OPC_MoveParent, ++/*522470*/ OPC_CheckType, MVT::v4i64, ++/*522472*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*522474*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b)), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*522482*/ 0, /*End of Scope*/ ++/*522483*/ 0, /*End of Scope*/ ++/*522484*/ /*Scope*/ 73|128,8/*1097*/, /*->523583*/ ++/*522486*/ OPC_RecordChild0, // #1 = $b ++/*522487*/ OPC_MoveChild1, ++/*522488*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*522491*/ OPC_CheckChild0Integer, 1, ++/*522493*/ OPC_CheckChild0Type, MVT::i64, ++/*522495*/ OPC_CheckChild1Integer, 1, ++/*522497*/ OPC_CheckChild1Type, MVT::i64, ++/*522499*/ OPC_CheckChild2Integer, 1, ++/*522501*/ OPC_CheckChild2Type, MVT::i64, ++/*522503*/ OPC_CheckChild3Integer, 1, ++/*522505*/ OPC_CheckChild3Type, MVT::i64, ++/*522507*/ OPC_MoveParent, ++/*522508*/ OPC_MoveParent, ++/*522509*/ OPC_MoveParent, ++/*522510*/ OPC_MoveChild1, ++/*522511*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*522514*/ OPC_MoveChild0, ++/*522515*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*522518*/ OPC_Scope, 22|128,4/*534*/, /*->523055*/ // 4 children in Scope ++/*522521*/ OPC_MoveChild0, ++/*522522*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*522525*/ OPC_Scope, 87, /*->522614*/ // 6 children in Scope ++/*522527*/ OPC_MoveChild0, ++/*522528*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*522531*/ OPC_CheckChild0Integer, 1, ++/*522533*/ OPC_CheckChild0Type, MVT::i64, ++/*522535*/ OPC_CheckChild1Integer, 1, ++/*522537*/ OPC_CheckChild1Type, MVT::i64, ++/*522539*/ OPC_CheckChild2Integer, 1, ++/*522541*/ OPC_CheckChild2Type, MVT::i64, ++/*522543*/ OPC_CheckChild3Integer, 1, ++/*522545*/ OPC_CheckChild3Type, MVT::i64, ++/*522547*/ OPC_MoveParent, ++/*522548*/ OPC_CheckChild1Same, 0, ++/*522550*/ OPC_MoveParent, ++/*522551*/ OPC_CheckChild1Same, 1, ++/*522553*/ OPC_MoveParent, ++/*522554*/ OPC_MoveChild1, ++/*522555*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*522558*/ OPC_CheckChild0Integer, 63, ++/*522560*/ OPC_CheckChild0Type, MVT::i64, ++/*522562*/ OPC_CheckChild1Integer, 63, ++/*522564*/ OPC_CheckChild1Type, MVT::i64, ++/*522566*/ OPC_CheckChild2Integer, 63, ++/*522568*/ OPC_CheckChild2Type, MVT::i64, ++/*522570*/ OPC_CheckChild3Integer, 63, ++/*522572*/ OPC_CheckChild3Type, MVT::i64, ++/*522574*/ OPC_CheckType, MVT::v4i64, ++/*522576*/ OPC_MoveParent, ++/*522577*/ OPC_MoveParent, ++/*522578*/ OPC_MoveParent, ++/*522579*/ OPC_MoveChild1, ++/*522580*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*522583*/ OPC_CheckChild0Integer, 1, ++/*522585*/ OPC_CheckChild0Type, MVT::i64, ++/*522587*/ OPC_CheckChild1Integer, 1, ++/*522589*/ OPC_CheckChild1Type, MVT::i64, ++/*522591*/ OPC_CheckChild2Integer, 1, ++/*522593*/ OPC_CheckChild2Type, MVT::i64, ++/*522595*/ OPC_CheckChild3Integer, 1, ++/*522597*/ OPC_CheckChild3Type, MVT::i64, ++/*522599*/ OPC_CheckType, MVT::v4i64, ++/*522601*/ OPC_MoveParent, ++/*522602*/ OPC_CheckType, MVT::v4i64, ++/*522604*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*522606*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a), LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*522614*/ /*Scope*/ 87, /*->522702*/ ++/*522615*/ OPC_CheckChild0Same, 0, ++/*522617*/ OPC_MoveChild1, ++/*522618*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*522621*/ OPC_CheckChild0Integer, 1, ++/*522623*/ OPC_CheckChild0Type, MVT::i64, ++/*522625*/ OPC_CheckChild1Integer, 1, ++/*522627*/ OPC_CheckChild1Type, MVT::i64, ++/*522629*/ OPC_CheckChild2Integer, 1, ++/*522631*/ OPC_CheckChild2Type, MVT::i64, ++/*522633*/ OPC_CheckChild3Integer, 1, ++/*522635*/ OPC_CheckChild3Type, MVT::i64, ++/*522637*/ OPC_MoveParent, ++/*522638*/ OPC_MoveParent, ++/*522639*/ OPC_CheckChild1Same, 1, ++/*522641*/ OPC_MoveParent, ++/*522642*/ OPC_MoveChild1, ++/*522643*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*522646*/ OPC_CheckChild0Integer, 63, ++/*522648*/ OPC_CheckChild0Type, MVT::i64, ++/*522650*/ OPC_CheckChild1Integer, 63, ++/*522652*/ OPC_CheckChild1Type, MVT::i64, ++/*522654*/ OPC_CheckChild2Integer, 63, ++/*522656*/ OPC_CheckChild2Type, MVT::i64, ++/*522658*/ OPC_CheckChild3Integer, 63, ++/*522660*/ OPC_CheckChild3Type, MVT::i64, ++/*522662*/ OPC_CheckType, MVT::v4i64, ++/*522664*/ OPC_MoveParent, ++/*522665*/ OPC_MoveParent, ++/*522666*/ OPC_MoveParent, ++/*522667*/ OPC_MoveChild1, ++/*522668*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*522671*/ OPC_CheckChild0Integer, 1, ++/*522673*/ OPC_CheckChild0Type, MVT::i64, ++/*522675*/ OPC_CheckChild1Integer, 1, ++/*522677*/ OPC_CheckChild1Type, MVT::i64, ++/*522679*/ OPC_CheckChild2Integer, 1, ++/*522681*/ OPC_CheckChild2Type, MVT::i64, ++/*522683*/ OPC_CheckChild3Integer, 1, ++/*522685*/ OPC_CheckChild3Type, MVT::i64, ++/*522687*/ OPC_CheckType, MVT::v4i64, ++/*522689*/ OPC_MoveParent, ++/*522690*/ OPC_CheckType, MVT::v4i64, ++/*522692*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*522694*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*522702*/ /*Scope*/ 87, /*->522790*/ ++/*522703*/ OPC_MoveChild0, ++/*522704*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*522707*/ OPC_CheckChild0Integer, 1, ++/*522709*/ OPC_CheckChild0Type, MVT::i64, ++/*522711*/ OPC_CheckChild1Integer, 1, ++/*522713*/ OPC_CheckChild1Type, MVT::i64, ++/*522715*/ OPC_CheckChild2Integer, 1, ++/*522717*/ OPC_CheckChild2Type, MVT::i64, ++/*522719*/ OPC_CheckChild3Integer, 1, ++/*522721*/ OPC_CheckChild3Type, MVT::i64, ++/*522723*/ OPC_MoveParent, ++/*522724*/ OPC_CheckChild1Same, 1, ++/*522726*/ OPC_MoveParent, ++/*522727*/ OPC_CheckChild1Same, 0, ++/*522729*/ OPC_MoveParent, ++/*522730*/ OPC_MoveChild1, ++/*522731*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*522734*/ OPC_CheckChild0Integer, 63, ++/*522736*/ OPC_CheckChild0Type, MVT::i64, ++/*522738*/ OPC_CheckChild1Integer, 63, ++/*522740*/ OPC_CheckChild1Type, MVT::i64, ++/*522742*/ OPC_CheckChild2Integer, 63, ++/*522744*/ OPC_CheckChild2Type, MVT::i64, ++/*522746*/ OPC_CheckChild3Integer, 63, ++/*522748*/ OPC_CheckChild3Type, MVT::i64, ++/*522750*/ OPC_CheckType, MVT::v4i64, ++/*522752*/ OPC_MoveParent, ++/*522753*/ OPC_MoveParent, ++/*522754*/ OPC_MoveParent, ++/*522755*/ OPC_MoveChild1, ++/*522756*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*522759*/ OPC_CheckChild0Integer, 1, ++/*522761*/ OPC_CheckChild0Type, MVT::i64, ++/*522763*/ OPC_CheckChild1Integer, 1, ++/*522765*/ OPC_CheckChild1Type, MVT::i64, ++/*522767*/ OPC_CheckChild2Integer, 1, ++/*522769*/ OPC_CheckChild2Type, MVT::i64, ++/*522771*/ OPC_CheckChild3Integer, 1, ++/*522773*/ OPC_CheckChild3Type, MVT::i64, ++/*522775*/ OPC_CheckType, MVT::v4i64, ++/*522777*/ OPC_MoveParent, ++/*522778*/ OPC_CheckType, MVT::v4i64, ++/*522780*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*522782*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b), LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*522790*/ /*Scope*/ 87, /*->522878*/ ++/*522791*/ OPC_CheckChild0Same, 1, ++/*522793*/ OPC_MoveChild1, ++/*522794*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*522797*/ OPC_CheckChild0Integer, 1, ++/*522799*/ OPC_CheckChild0Type, MVT::i64, ++/*522801*/ OPC_CheckChild1Integer, 1, ++/*522803*/ OPC_CheckChild1Type, MVT::i64, ++/*522805*/ OPC_CheckChild2Integer, 1, ++/*522807*/ OPC_CheckChild2Type, MVT::i64, ++/*522809*/ OPC_CheckChild3Integer, 1, ++/*522811*/ OPC_CheckChild3Type, MVT::i64, ++/*522813*/ OPC_MoveParent, ++/*522814*/ OPC_MoveParent, ++/*522815*/ OPC_CheckChild1Same, 0, ++/*522817*/ OPC_MoveParent, ++/*522818*/ OPC_MoveChild1, ++/*522819*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*522822*/ OPC_CheckChild0Integer, 63, ++/*522824*/ OPC_CheckChild0Type, MVT::i64, ++/*522826*/ OPC_CheckChild1Integer, 63, ++/*522828*/ OPC_CheckChild1Type, MVT::i64, ++/*522830*/ OPC_CheckChild2Integer, 63, ++/*522832*/ OPC_CheckChild2Type, MVT::i64, ++/*522834*/ OPC_CheckChild3Integer, 63, ++/*522836*/ OPC_CheckChild3Type, MVT::i64, ++/*522838*/ OPC_CheckType, MVT::v4i64, ++/*522840*/ OPC_MoveParent, ++/*522841*/ OPC_MoveParent, ++/*522842*/ OPC_MoveParent, ++/*522843*/ OPC_MoveChild1, ++/*522844*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*522847*/ OPC_CheckChild0Integer, 1, ++/*522849*/ OPC_CheckChild0Type, MVT::i64, ++/*522851*/ OPC_CheckChild1Integer, 1, ++/*522853*/ OPC_CheckChild1Type, MVT::i64, ++/*522855*/ OPC_CheckChild2Integer, 1, ++/*522857*/ OPC_CheckChild2Type, MVT::i64, ++/*522859*/ OPC_CheckChild3Integer, 1, ++/*522861*/ OPC_CheckChild3Type, MVT::i64, ++/*522863*/ OPC_CheckType, MVT::v4i64, ++/*522865*/ OPC_MoveParent, ++/*522866*/ OPC_CheckType, MVT::v4i64, ++/*522868*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*522870*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*522878*/ /*Scope*/ 87, /*->522966*/ ++/*522879*/ OPC_CheckChild0Same, 0, ++/*522881*/ OPC_CheckChild1Same, 1, ++/*522883*/ OPC_MoveParent, ++/*522884*/ OPC_MoveChild1, ++/*522885*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*522888*/ OPC_CheckChild0Integer, 1, ++/*522890*/ OPC_CheckChild0Type, MVT::i64, ++/*522892*/ OPC_CheckChild1Integer, 1, ++/*522894*/ OPC_CheckChild1Type, MVT::i64, ++/*522896*/ OPC_CheckChild2Integer, 1, ++/*522898*/ OPC_CheckChild2Type, MVT::i64, ++/*522900*/ OPC_CheckChild3Integer, 1, ++/*522902*/ OPC_CheckChild3Type, MVT::i64, ++/*522904*/ OPC_MoveParent, ++/*522905*/ OPC_MoveParent, ++/*522906*/ OPC_MoveChild1, ++/*522907*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*522910*/ OPC_CheckChild0Integer, 63, ++/*522912*/ OPC_CheckChild0Type, MVT::i64, ++/*522914*/ OPC_CheckChild1Integer, 63, ++/*522916*/ OPC_CheckChild1Type, MVT::i64, ++/*522918*/ OPC_CheckChild2Integer, 63, ++/*522920*/ OPC_CheckChild2Type, MVT::i64, ++/*522922*/ OPC_CheckChild3Integer, 63, ++/*522924*/ OPC_CheckChild3Type, MVT::i64, ++/*522926*/ OPC_CheckType, MVT::v4i64, ++/*522928*/ OPC_MoveParent, ++/*522929*/ OPC_MoveParent, ++/*522930*/ OPC_MoveParent, ++/*522931*/ OPC_MoveChild1, ++/*522932*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*522935*/ OPC_CheckChild0Integer, 1, ++/*522937*/ OPC_CheckChild0Type, MVT::i64, ++/*522939*/ OPC_CheckChild1Integer, 1, ++/*522941*/ OPC_CheckChild1Type, MVT::i64, ++/*522943*/ OPC_CheckChild2Integer, 1, ++/*522945*/ OPC_CheckChild2Type, MVT::i64, ++/*522947*/ OPC_CheckChild3Integer, 1, ++/*522949*/ OPC_CheckChild3Type, MVT::i64, ++/*522951*/ OPC_CheckType, MVT::v4i64, ++/*522953*/ OPC_MoveParent, ++/*522954*/ OPC_CheckType, MVT::v4i64, ++/*522956*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*522958*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*522966*/ /*Scope*/ 87, /*->523054*/ ++/*522967*/ OPC_CheckChild0Same, 1, ++/*522969*/ OPC_CheckChild1Same, 0, ++/*522971*/ OPC_MoveParent, ++/*522972*/ OPC_MoveChild1, ++/*522973*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*522976*/ OPC_CheckChild0Integer, 1, ++/*522978*/ OPC_CheckChild0Type, MVT::i64, ++/*522980*/ OPC_CheckChild1Integer, 1, ++/*522982*/ OPC_CheckChild1Type, MVT::i64, ++/*522984*/ OPC_CheckChild2Integer, 1, ++/*522986*/ OPC_CheckChild2Type, MVT::i64, ++/*522988*/ OPC_CheckChild3Integer, 1, ++/*522990*/ OPC_CheckChild3Type, MVT::i64, ++/*522992*/ OPC_MoveParent, ++/*522993*/ OPC_MoveParent, ++/*522994*/ OPC_MoveChild1, ++/*522995*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*522998*/ OPC_CheckChild0Integer, 63, ++/*523000*/ OPC_CheckChild0Type, MVT::i64, ++/*523002*/ OPC_CheckChild1Integer, 63, ++/*523004*/ OPC_CheckChild1Type, MVT::i64, ++/*523006*/ OPC_CheckChild2Integer, 63, ++/*523008*/ OPC_CheckChild2Type, MVT::i64, ++/*523010*/ OPC_CheckChild3Integer, 63, ++/*523012*/ OPC_CheckChild3Type, MVT::i64, ++/*523014*/ OPC_CheckType, MVT::v4i64, ++/*523016*/ OPC_MoveParent, ++/*523017*/ OPC_MoveParent, ++/*523018*/ OPC_MoveParent, ++/*523019*/ OPC_MoveChild1, ++/*523020*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*523023*/ OPC_CheckChild0Integer, 1, ++/*523025*/ OPC_CheckChild0Type, MVT::i64, ++/*523027*/ OPC_CheckChild1Integer, 1, ++/*523029*/ OPC_CheckChild1Type, MVT::i64, ++/*523031*/ OPC_CheckChild2Integer, 1, ++/*523033*/ OPC_CheckChild2Type, MVT::i64, ++/*523035*/ OPC_CheckChild3Integer, 1, ++/*523037*/ OPC_CheckChild3Type, MVT::i64, ++/*523039*/ OPC_CheckType, MVT::v4i64, ++/*523041*/ OPC_MoveParent, ++/*523042*/ OPC_CheckType, MVT::v4i64, ++/*523044*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*523046*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*523054*/ 0, /*End of Scope*/ ++/*523055*/ /*Scope*/ 52|128,1/*180*/, /*->523237*/ ++/*523057*/ OPC_CheckChild0Same, 1, ++/*523059*/ OPC_MoveChild1, ++/*523060*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*523063*/ OPC_Scope, 85, /*->523150*/ // 2 children in Scope ++/*523065*/ OPC_MoveChild0, ++/*523066*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*523069*/ OPC_CheckChild0Integer, 1, ++/*523071*/ OPC_CheckChild0Type, MVT::i64, ++/*523073*/ OPC_CheckChild1Integer, 1, ++/*523075*/ OPC_CheckChild1Type, MVT::i64, ++/*523077*/ OPC_CheckChild2Integer, 1, ++/*523079*/ OPC_CheckChild2Type, MVT::i64, ++/*523081*/ OPC_CheckChild3Integer, 1, ++/*523083*/ OPC_CheckChild3Type, MVT::i64, ++/*523085*/ OPC_MoveParent, ++/*523086*/ OPC_CheckChild1Same, 0, ++/*523088*/ OPC_MoveParent, ++/*523089*/ OPC_MoveParent, ++/*523090*/ OPC_MoveChild1, ++/*523091*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*523094*/ OPC_CheckChild0Integer, 63, ++/*523096*/ OPC_CheckChild0Type, MVT::i64, ++/*523098*/ OPC_CheckChild1Integer, 63, ++/*523100*/ OPC_CheckChild1Type, MVT::i64, ++/*523102*/ OPC_CheckChild2Integer, 63, ++/*523104*/ OPC_CheckChild2Type, MVT::i64, ++/*523106*/ OPC_CheckChild3Integer, 63, ++/*523108*/ OPC_CheckChild3Type, MVT::i64, ++/*523110*/ OPC_CheckType, MVT::v4i64, ++/*523112*/ OPC_MoveParent, ++/*523113*/ OPC_MoveParent, ++/*523114*/ OPC_MoveParent, ++/*523115*/ OPC_MoveChild1, ++/*523116*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*523119*/ OPC_CheckChild0Integer, 1, ++/*523121*/ OPC_CheckChild0Type, MVT::i64, ++/*523123*/ OPC_CheckChild1Integer, 1, ++/*523125*/ OPC_CheckChild1Type, MVT::i64, ++/*523127*/ OPC_CheckChild2Integer, 1, ++/*523129*/ OPC_CheckChild2Type, MVT::i64, ++/*523131*/ OPC_CheckChild3Integer, 1, ++/*523133*/ OPC_CheckChild3Type, MVT::i64, ++/*523135*/ OPC_CheckType, MVT::v4i64, ++/*523137*/ OPC_MoveParent, ++/*523138*/ OPC_CheckType, MVT::v4i64, ++/*523140*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*523142*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*523150*/ /*Scope*/ 85, /*->523236*/ ++/*523151*/ OPC_CheckChild0Same, 0, ++/*523153*/ OPC_MoveChild1, ++/*523154*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*523157*/ OPC_CheckChild0Integer, 1, ++/*523159*/ OPC_CheckChild0Type, MVT::i64, ++/*523161*/ OPC_CheckChild1Integer, 1, ++/*523163*/ OPC_CheckChild1Type, MVT::i64, ++/*523165*/ OPC_CheckChild2Integer, 1, ++/*523167*/ OPC_CheckChild2Type, MVT::i64, ++/*523169*/ OPC_CheckChild3Integer, 1, ++/*523171*/ OPC_CheckChild3Type, MVT::i64, ++/*523173*/ OPC_MoveParent, ++/*523174*/ OPC_MoveParent, ++/*523175*/ OPC_MoveParent, ++/*523176*/ OPC_MoveChild1, ++/*523177*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*523180*/ OPC_CheckChild0Integer, 63, ++/*523182*/ OPC_CheckChild0Type, MVT::i64, ++/*523184*/ OPC_CheckChild1Integer, 63, ++/*523186*/ OPC_CheckChild1Type, MVT::i64, ++/*523188*/ OPC_CheckChild2Integer, 63, ++/*523190*/ OPC_CheckChild2Type, MVT::i64, ++/*523192*/ OPC_CheckChild3Integer, 63, ++/*523194*/ OPC_CheckChild3Type, MVT::i64, ++/*523196*/ OPC_CheckType, MVT::v4i64, ++/*523198*/ OPC_MoveParent, ++/*523199*/ OPC_MoveParent, ++/*523200*/ OPC_MoveParent, ++/*523201*/ OPC_MoveChild1, ++/*523202*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*523205*/ OPC_CheckChild0Integer, 1, ++/*523207*/ OPC_CheckChild0Type, MVT::i64, ++/*523209*/ OPC_CheckChild1Integer, 1, ++/*523211*/ OPC_CheckChild1Type, MVT::i64, ++/*523213*/ OPC_CheckChild2Integer, 1, ++/*523215*/ OPC_CheckChild2Type, MVT::i64, ++/*523217*/ OPC_CheckChild3Integer, 1, ++/*523219*/ OPC_CheckChild3Type, MVT::i64, ++/*523221*/ OPC_CheckType, MVT::v4i64, ++/*523223*/ OPC_MoveParent, ++/*523224*/ OPC_CheckType, MVT::v4i64, ++/*523226*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*523228*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*523236*/ 0, /*End of Scope*/ ++/*523237*/ /*Scope*/ 52|128,1/*180*/, /*->523419*/ ++/*523239*/ OPC_CheckChild0Same, 0, ++/*523241*/ OPC_MoveChild1, ++/*523242*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*523245*/ OPC_Scope, 85, /*->523332*/ // 2 children in Scope ++/*523247*/ OPC_MoveChild0, ++/*523248*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*523251*/ OPC_CheckChild0Integer, 1, ++/*523253*/ OPC_CheckChild0Type, MVT::i64, ++/*523255*/ OPC_CheckChild1Integer, 1, ++/*523257*/ OPC_CheckChild1Type, MVT::i64, ++/*523259*/ OPC_CheckChild2Integer, 1, ++/*523261*/ OPC_CheckChild2Type, MVT::i64, ++/*523263*/ OPC_CheckChild3Integer, 1, ++/*523265*/ OPC_CheckChild3Type, MVT::i64, ++/*523267*/ OPC_MoveParent, ++/*523268*/ OPC_CheckChild1Same, 1, ++/*523270*/ OPC_MoveParent, ++/*523271*/ OPC_MoveParent, ++/*523272*/ OPC_MoveChild1, ++/*523273*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*523276*/ OPC_CheckChild0Integer, 63, ++/*523278*/ OPC_CheckChild0Type, MVT::i64, ++/*523280*/ OPC_CheckChild1Integer, 63, ++/*523282*/ OPC_CheckChild1Type, MVT::i64, ++/*523284*/ OPC_CheckChild2Integer, 63, ++/*523286*/ OPC_CheckChild2Type, MVT::i64, ++/*523288*/ OPC_CheckChild3Integer, 63, ++/*523290*/ OPC_CheckChild3Type, MVT::i64, ++/*523292*/ OPC_CheckType, MVT::v4i64, ++/*523294*/ OPC_MoveParent, ++/*523295*/ OPC_MoveParent, ++/*523296*/ OPC_MoveParent, ++/*523297*/ OPC_MoveChild1, ++/*523298*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*523301*/ OPC_CheckChild0Integer, 1, ++/*523303*/ OPC_CheckChild0Type, MVT::i64, ++/*523305*/ OPC_CheckChild1Integer, 1, ++/*523307*/ OPC_CheckChild1Type, MVT::i64, ++/*523309*/ OPC_CheckChild2Integer, 1, ++/*523311*/ OPC_CheckChild2Type, MVT::i64, ++/*523313*/ OPC_CheckChild3Integer, 1, ++/*523315*/ OPC_CheckChild3Type, MVT::i64, ++/*523317*/ OPC_CheckType, MVT::v4i64, ++/*523319*/ OPC_MoveParent, ++/*523320*/ OPC_CheckType, MVT::v4i64, ++/*523322*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*523324*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*523332*/ /*Scope*/ 85, /*->523418*/ ++/*523333*/ OPC_CheckChild0Same, 1, ++/*523335*/ OPC_MoveChild1, ++/*523336*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*523339*/ OPC_CheckChild0Integer, 1, ++/*523341*/ OPC_CheckChild0Type, MVT::i64, ++/*523343*/ OPC_CheckChild1Integer, 1, ++/*523345*/ OPC_CheckChild1Type, MVT::i64, ++/*523347*/ OPC_CheckChild2Integer, 1, ++/*523349*/ OPC_CheckChild2Type, MVT::i64, ++/*523351*/ OPC_CheckChild3Integer, 1, ++/*523353*/ OPC_CheckChild3Type, MVT::i64, ++/*523355*/ OPC_MoveParent, ++/*523356*/ OPC_MoveParent, ++/*523357*/ OPC_MoveParent, ++/*523358*/ OPC_MoveChild1, ++/*523359*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*523362*/ OPC_CheckChild0Integer, 63, ++/*523364*/ OPC_CheckChild0Type, MVT::i64, ++/*523366*/ OPC_CheckChild1Integer, 63, ++/*523368*/ OPC_CheckChild1Type, MVT::i64, ++/*523370*/ OPC_CheckChild2Integer, 63, ++/*523372*/ OPC_CheckChild2Type, MVT::i64, ++/*523374*/ OPC_CheckChild3Integer, 63, ++/*523376*/ OPC_CheckChild3Type, MVT::i64, ++/*523378*/ OPC_CheckType, MVT::v4i64, ++/*523380*/ OPC_MoveParent, ++/*523381*/ OPC_MoveParent, ++/*523382*/ OPC_MoveParent, ++/*523383*/ OPC_MoveChild1, ++/*523384*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*523387*/ OPC_CheckChild0Integer, 1, ++/*523389*/ OPC_CheckChild0Type, MVT::i64, ++/*523391*/ OPC_CheckChild1Integer, 1, ++/*523393*/ OPC_CheckChild1Type, MVT::i64, ++/*523395*/ OPC_CheckChild2Integer, 1, ++/*523397*/ OPC_CheckChild2Type, MVT::i64, ++/*523399*/ OPC_CheckChild3Integer, 1, ++/*523401*/ OPC_CheckChild3Type, MVT::i64, ++/*523403*/ OPC_CheckType, MVT::v4i64, ++/*523405*/ OPC_MoveParent, ++/*523406*/ OPC_CheckType, MVT::v4i64, ++/*523408*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*523410*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*523418*/ 0, /*End of Scope*/ ++/*523419*/ /*Scope*/ 33|128,1/*161*/, /*->523582*/ ++/*523421*/ OPC_MoveChild0, ++/*523422*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*523425*/ OPC_CheckChild0Integer, 1, ++/*523427*/ OPC_CheckChild0Type, MVT::i64, ++/*523429*/ OPC_CheckChild1Integer, 1, ++/*523431*/ OPC_CheckChild1Type, MVT::i64, ++/*523433*/ OPC_CheckChild2Integer, 1, ++/*523435*/ OPC_CheckChild2Type, MVT::i64, ++/*523437*/ OPC_CheckChild3Integer, 1, ++/*523439*/ OPC_CheckChild3Type, MVT::i64, ++/*523441*/ OPC_MoveParent, ++/*523442*/ OPC_MoveChild1, ++/*523443*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*523446*/ OPC_Scope, 66, /*->523514*/ // 2 children in Scope ++/*523448*/ OPC_CheckChild0Same, 0, ++/*523450*/ OPC_CheckChild1Same, 1, ++/*523452*/ OPC_MoveParent, ++/*523453*/ OPC_MoveParent, ++/*523454*/ OPC_MoveChild1, ++/*523455*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*523458*/ OPC_CheckChild0Integer, 63, ++/*523460*/ OPC_CheckChild0Type, MVT::i64, ++/*523462*/ OPC_CheckChild1Integer, 63, ++/*523464*/ OPC_CheckChild1Type, MVT::i64, ++/*523466*/ OPC_CheckChild2Integer, 63, ++/*523468*/ OPC_CheckChild2Type, MVT::i64, ++/*523470*/ OPC_CheckChild3Integer, 63, ++/*523472*/ OPC_CheckChild3Type, MVT::i64, ++/*523474*/ OPC_CheckType, MVT::v4i64, ++/*523476*/ OPC_MoveParent, ++/*523477*/ OPC_MoveParent, ++/*523478*/ OPC_MoveParent, ++/*523479*/ OPC_MoveChild1, ++/*523480*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*523483*/ OPC_CheckChild0Integer, 1, ++/*523485*/ OPC_CheckChild0Type, MVT::i64, ++/*523487*/ OPC_CheckChild1Integer, 1, ++/*523489*/ OPC_CheckChild1Type, MVT::i64, ++/*523491*/ OPC_CheckChild2Integer, 1, ++/*523493*/ OPC_CheckChild2Type, MVT::i64, ++/*523495*/ OPC_CheckChild3Integer, 1, ++/*523497*/ OPC_CheckChild3Type, MVT::i64, ++/*523499*/ OPC_CheckType, MVT::v4i64, ++/*523501*/ OPC_MoveParent, ++/*523502*/ OPC_CheckType, MVT::v4i64, ++/*523504*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*523506*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*523514*/ /*Scope*/ 66, /*->523581*/ ++/*523515*/ OPC_CheckChild0Same, 1, ++/*523517*/ OPC_CheckChild1Same, 0, ++/*523519*/ OPC_MoveParent, ++/*523520*/ OPC_MoveParent, ++/*523521*/ OPC_MoveChild1, ++/*523522*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*523525*/ OPC_CheckChild0Integer, 63, ++/*523527*/ OPC_CheckChild0Type, MVT::i64, ++/*523529*/ OPC_CheckChild1Integer, 63, ++/*523531*/ OPC_CheckChild1Type, MVT::i64, ++/*523533*/ OPC_CheckChild2Integer, 63, ++/*523535*/ OPC_CheckChild2Type, MVT::i64, ++/*523537*/ OPC_CheckChild3Integer, 63, ++/*523539*/ OPC_CheckChild3Type, MVT::i64, ++/*523541*/ OPC_CheckType, MVT::v4i64, ++/*523543*/ OPC_MoveParent, ++/*523544*/ OPC_MoveParent, ++/*523545*/ OPC_MoveParent, ++/*523546*/ OPC_MoveChild1, ++/*523547*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*523550*/ OPC_CheckChild0Integer, 1, ++/*523552*/ OPC_CheckChild0Type, MVT::i64, ++/*523554*/ OPC_CheckChild1Integer, 1, ++/*523556*/ OPC_CheckChild1Type, MVT::i64, ++/*523558*/ OPC_CheckChild2Integer, 1, ++/*523560*/ OPC_CheckChild2Type, MVT::i64, ++/*523562*/ OPC_CheckChild3Integer, 1, ++/*523564*/ OPC_CheckChild3Type, MVT::i64, ++/*523566*/ OPC_CheckType, MVT::v4i64, ++/*523568*/ OPC_MoveParent, ++/*523569*/ OPC_CheckType, MVT::v4i64, ++/*523571*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*523573*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*523581*/ 0, /*End of Scope*/ ++/*523582*/ 0, /*End of Scope*/ ++/*523583*/ 0, /*End of Scope*/ ++/*523584*/ /*Scope*/ 47|128,16/*2095*/, /*->525681*/ ++/*523586*/ OPC_MoveChild0, ++/*523587*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*523590*/ OPC_CheckChild0Integer, 1, ++/*523592*/ OPC_CheckChild0Type, MVT::i64, ++/*523594*/ OPC_CheckChild1Integer, 1, ++/*523596*/ OPC_CheckChild1Type, MVT::i64, ++/*523598*/ OPC_CheckChild2Integer, 1, ++/*523600*/ OPC_CheckChild2Type, MVT::i64, ++/*523602*/ OPC_CheckChild3Integer, 1, ++/*523604*/ OPC_CheckChild3Type, MVT::i64, ++/*523606*/ OPC_MoveParent, ++/*523607*/ OPC_MoveChild1, ++/*523608*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*523611*/ OPC_RecordChild0, // #0 = $a ++/*523612*/ OPC_RecordChild1, // #1 = $b ++/*523613*/ OPC_MoveParent, ++/*523614*/ OPC_MoveParent, ++/*523615*/ OPC_MoveChild1, ++/*523616*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*523619*/ OPC_MoveChild0, ++/*523620*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*523623*/ OPC_Scope, 22|128,4/*534*/, /*->524160*/ // 7 children in Scope ++/*523626*/ OPC_MoveChild0, ++/*523627*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*523630*/ OPC_Scope, 87, /*->523719*/ // 6 children in Scope ++/*523632*/ OPC_MoveChild0, ++/*523633*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*523636*/ OPC_CheckChild0Integer, 1, ++/*523638*/ OPC_CheckChild0Type, MVT::i64, ++/*523640*/ OPC_CheckChild1Integer, 1, ++/*523642*/ OPC_CheckChild1Type, MVT::i64, ++/*523644*/ OPC_CheckChild2Integer, 1, ++/*523646*/ OPC_CheckChild2Type, MVT::i64, ++/*523648*/ OPC_CheckChild3Integer, 1, ++/*523650*/ OPC_CheckChild3Type, MVT::i64, ++/*523652*/ OPC_MoveParent, ++/*523653*/ OPC_CheckChild1Same, 0, ++/*523655*/ OPC_MoveParent, ++/*523656*/ OPC_CheckChild1Same, 1, ++/*523658*/ OPC_MoveParent, ++/*523659*/ OPC_MoveChild1, ++/*523660*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*523663*/ OPC_CheckChild0Integer, 63, ++/*523665*/ OPC_CheckChild0Type, MVT::i64, ++/*523667*/ OPC_CheckChild1Integer, 63, ++/*523669*/ OPC_CheckChild1Type, MVT::i64, ++/*523671*/ OPC_CheckChild2Integer, 63, ++/*523673*/ OPC_CheckChild2Type, MVT::i64, ++/*523675*/ OPC_CheckChild3Integer, 63, ++/*523677*/ OPC_CheckChild3Type, MVT::i64, ++/*523679*/ OPC_CheckType, MVT::v4i64, ++/*523681*/ OPC_MoveParent, ++/*523682*/ OPC_MoveParent, ++/*523683*/ OPC_MoveParent, ++/*523684*/ OPC_MoveChild1, ++/*523685*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*523688*/ OPC_CheckChild0Integer, 1, ++/*523690*/ OPC_CheckChild0Type, MVT::i64, ++/*523692*/ OPC_CheckChild1Integer, 1, ++/*523694*/ OPC_CheckChild1Type, MVT::i64, ++/*523696*/ OPC_CheckChild2Integer, 1, ++/*523698*/ OPC_CheckChild2Type, MVT::i64, ++/*523700*/ OPC_CheckChild3Integer, 1, ++/*523702*/ OPC_CheckChild3Type, MVT::i64, ++/*523704*/ OPC_CheckType, MVT::v4i64, ++/*523706*/ OPC_MoveParent, ++/*523707*/ OPC_CheckType, MVT::v4i64, ++/*523709*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*523711*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b)), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a), LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*523719*/ /*Scope*/ 87, /*->523807*/ ++/*523720*/ OPC_CheckChild0Same, 0, ++/*523722*/ OPC_MoveChild1, ++/*523723*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*523726*/ OPC_CheckChild0Integer, 1, ++/*523728*/ OPC_CheckChild0Type, MVT::i64, ++/*523730*/ OPC_CheckChild1Integer, 1, ++/*523732*/ OPC_CheckChild1Type, MVT::i64, ++/*523734*/ OPC_CheckChild2Integer, 1, ++/*523736*/ OPC_CheckChild2Type, MVT::i64, ++/*523738*/ OPC_CheckChild3Integer, 1, ++/*523740*/ OPC_CheckChild3Type, MVT::i64, ++/*523742*/ OPC_MoveParent, ++/*523743*/ OPC_MoveParent, ++/*523744*/ OPC_CheckChild1Same, 1, ++/*523746*/ OPC_MoveParent, ++/*523747*/ OPC_MoveChild1, ++/*523748*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*523751*/ OPC_CheckChild0Integer, 63, ++/*523753*/ OPC_CheckChild0Type, MVT::i64, ++/*523755*/ OPC_CheckChild1Integer, 63, ++/*523757*/ OPC_CheckChild1Type, MVT::i64, ++/*523759*/ OPC_CheckChild2Integer, 63, ++/*523761*/ OPC_CheckChild2Type, MVT::i64, ++/*523763*/ OPC_CheckChild3Integer, 63, ++/*523765*/ OPC_CheckChild3Type, MVT::i64, ++/*523767*/ OPC_CheckType, MVT::v4i64, ++/*523769*/ OPC_MoveParent, ++/*523770*/ OPC_MoveParent, ++/*523771*/ OPC_MoveParent, ++/*523772*/ OPC_MoveChild1, ++/*523773*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*523776*/ OPC_CheckChild0Integer, 1, ++/*523778*/ OPC_CheckChild0Type, MVT::i64, ++/*523780*/ OPC_CheckChild1Integer, 1, ++/*523782*/ OPC_CheckChild1Type, MVT::i64, ++/*523784*/ OPC_CheckChild2Integer, 1, ++/*523786*/ OPC_CheckChild2Type, MVT::i64, ++/*523788*/ OPC_CheckChild3Integer, 1, ++/*523790*/ OPC_CheckChild3Type, MVT::i64, ++/*523792*/ OPC_CheckType, MVT::v4i64, ++/*523794*/ OPC_MoveParent, ++/*523795*/ OPC_CheckType, MVT::v4i64, ++/*523797*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*523799*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b)), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*523807*/ /*Scope*/ 87, /*->523895*/ ++/*523808*/ OPC_MoveChild0, ++/*523809*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*523812*/ OPC_CheckChild0Integer, 1, ++/*523814*/ OPC_CheckChild0Type, MVT::i64, ++/*523816*/ OPC_CheckChild1Integer, 1, ++/*523818*/ OPC_CheckChild1Type, MVT::i64, ++/*523820*/ OPC_CheckChild2Integer, 1, ++/*523822*/ OPC_CheckChild2Type, MVT::i64, ++/*523824*/ OPC_CheckChild3Integer, 1, ++/*523826*/ OPC_CheckChild3Type, MVT::i64, ++/*523828*/ OPC_MoveParent, ++/*523829*/ OPC_CheckChild1Same, 1, ++/*523831*/ OPC_MoveParent, ++/*523832*/ OPC_CheckChild1Same, 0, ++/*523834*/ OPC_MoveParent, ++/*523835*/ OPC_MoveChild1, ++/*523836*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*523839*/ OPC_CheckChild0Integer, 63, ++/*523841*/ OPC_CheckChild0Type, MVT::i64, ++/*523843*/ OPC_CheckChild1Integer, 63, ++/*523845*/ OPC_CheckChild1Type, MVT::i64, ++/*523847*/ OPC_CheckChild2Integer, 63, ++/*523849*/ OPC_CheckChild2Type, MVT::i64, ++/*523851*/ OPC_CheckChild3Integer, 63, ++/*523853*/ OPC_CheckChild3Type, MVT::i64, ++/*523855*/ OPC_CheckType, MVT::v4i64, ++/*523857*/ OPC_MoveParent, ++/*523858*/ OPC_MoveParent, ++/*523859*/ OPC_MoveParent, ++/*523860*/ OPC_MoveChild1, ++/*523861*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*523864*/ OPC_CheckChild0Integer, 1, ++/*523866*/ OPC_CheckChild0Type, MVT::i64, ++/*523868*/ OPC_CheckChild1Integer, 1, ++/*523870*/ OPC_CheckChild1Type, MVT::i64, ++/*523872*/ OPC_CheckChild2Integer, 1, ++/*523874*/ OPC_CheckChild2Type, MVT::i64, ++/*523876*/ OPC_CheckChild3Integer, 1, ++/*523878*/ OPC_CheckChild3Type, MVT::i64, ++/*523880*/ OPC_CheckType, MVT::v4i64, ++/*523882*/ OPC_MoveParent, ++/*523883*/ OPC_CheckType, MVT::v4i64, ++/*523885*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*523887*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b)), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b), LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*523895*/ /*Scope*/ 87, /*->523983*/ ++/*523896*/ OPC_CheckChild0Same, 1, ++/*523898*/ OPC_MoveChild1, ++/*523899*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*523902*/ OPC_CheckChild0Integer, 1, ++/*523904*/ OPC_CheckChild0Type, MVT::i64, ++/*523906*/ OPC_CheckChild1Integer, 1, ++/*523908*/ OPC_CheckChild1Type, MVT::i64, ++/*523910*/ OPC_CheckChild2Integer, 1, ++/*523912*/ OPC_CheckChild2Type, MVT::i64, ++/*523914*/ OPC_CheckChild3Integer, 1, ++/*523916*/ OPC_CheckChild3Type, MVT::i64, ++/*523918*/ OPC_MoveParent, ++/*523919*/ OPC_MoveParent, ++/*523920*/ OPC_CheckChild1Same, 0, ++/*523922*/ OPC_MoveParent, ++/*523923*/ OPC_MoveChild1, ++/*523924*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*523927*/ OPC_CheckChild0Integer, 63, ++/*523929*/ OPC_CheckChild0Type, MVT::i64, ++/*523931*/ OPC_CheckChild1Integer, 63, ++/*523933*/ OPC_CheckChild1Type, MVT::i64, ++/*523935*/ OPC_CheckChild2Integer, 63, ++/*523937*/ OPC_CheckChild2Type, MVT::i64, ++/*523939*/ OPC_CheckChild3Integer, 63, ++/*523941*/ OPC_CheckChild3Type, MVT::i64, ++/*523943*/ OPC_CheckType, MVT::v4i64, ++/*523945*/ OPC_MoveParent, ++/*523946*/ OPC_MoveParent, ++/*523947*/ OPC_MoveParent, ++/*523948*/ OPC_MoveChild1, ++/*523949*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*523952*/ OPC_CheckChild0Integer, 1, ++/*523954*/ OPC_CheckChild0Type, MVT::i64, ++/*523956*/ OPC_CheckChild1Integer, 1, ++/*523958*/ OPC_CheckChild1Type, MVT::i64, ++/*523960*/ OPC_CheckChild2Integer, 1, ++/*523962*/ OPC_CheckChild2Type, MVT::i64, ++/*523964*/ OPC_CheckChild3Integer, 1, ++/*523966*/ OPC_CheckChild3Type, MVT::i64, ++/*523968*/ OPC_CheckType, MVT::v4i64, ++/*523970*/ OPC_MoveParent, ++/*523971*/ OPC_CheckType, MVT::v4i64, ++/*523973*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*523975*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b)), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*523983*/ /*Scope*/ 87, /*->524071*/ ++/*523984*/ OPC_CheckChild0Same, 0, ++/*523986*/ OPC_CheckChild1Same, 1, ++/*523988*/ OPC_MoveParent, ++/*523989*/ OPC_MoveChild1, ++/*523990*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*523993*/ OPC_CheckChild0Integer, 1, ++/*523995*/ OPC_CheckChild0Type, MVT::i64, ++/*523997*/ OPC_CheckChild1Integer, 1, ++/*523999*/ OPC_CheckChild1Type, MVT::i64, ++/*524001*/ OPC_CheckChild2Integer, 1, ++/*524003*/ OPC_CheckChild2Type, MVT::i64, ++/*524005*/ OPC_CheckChild3Integer, 1, ++/*524007*/ OPC_CheckChild3Type, MVT::i64, ++/*524009*/ OPC_MoveParent, ++/*524010*/ OPC_MoveParent, ++/*524011*/ OPC_MoveChild1, ++/*524012*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*524015*/ OPC_CheckChild0Integer, 63, ++/*524017*/ OPC_CheckChild0Type, MVT::i64, ++/*524019*/ OPC_CheckChild1Integer, 63, ++/*524021*/ OPC_CheckChild1Type, MVT::i64, ++/*524023*/ OPC_CheckChild2Integer, 63, ++/*524025*/ OPC_CheckChild2Type, MVT::i64, ++/*524027*/ OPC_CheckChild3Integer, 63, ++/*524029*/ OPC_CheckChild3Type, MVT::i64, ++/*524031*/ OPC_CheckType, MVT::v4i64, ++/*524033*/ OPC_MoveParent, ++/*524034*/ OPC_MoveParent, ++/*524035*/ OPC_MoveParent, ++/*524036*/ OPC_MoveChild1, ++/*524037*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*524040*/ OPC_CheckChild0Integer, 1, ++/*524042*/ OPC_CheckChild0Type, MVT::i64, ++/*524044*/ OPC_CheckChild1Integer, 1, ++/*524046*/ OPC_CheckChild1Type, MVT::i64, ++/*524048*/ OPC_CheckChild2Integer, 1, ++/*524050*/ OPC_CheckChild2Type, MVT::i64, ++/*524052*/ OPC_CheckChild3Integer, 1, ++/*524054*/ OPC_CheckChild3Type, MVT::i64, ++/*524056*/ OPC_CheckType, MVT::v4i64, ++/*524058*/ OPC_MoveParent, ++/*524059*/ OPC_CheckType, MVT::v4i64, ++/*524061*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*524063*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b)), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*524071*/ /*Scope*/ 87, /*->524159*/ ++/*524072*/ OPC_CheckChild0Same, 1, ++/*524074*/ OPC_CheckChild1Same, 0, ++/*524076*/ OPC_MoveParent, ++/*524077*/ OPC_MoveChild1, ++/*524078*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*524081*/ OPC_CheckChild0Integer, 1, ++/*524083*/ OPC_CheckChild0Type, MVT::i64, ++/*524085*/ OPC_CheckChild1Integer, 1, ++/*524087*/ OPC_CheckChild1Type, MVT::i64, ++/*524089*/ OPC_CheckChild2Integer, 1, ++/*524091*/ OPC_CheckChild2Type, MVT::i64, ++/*524093*/ OPC_CheckChild3Integer, 1, ++/*524095*/ OPC_CheckChild3Type, MVT::i64, ++/*524097*/ OPC_MoveParent, ++/*524098*/ OPC_MoveParent, ++/*524099*/ OPC_MoveChild1, ++/*524100*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*524103*/ OPC_CheckChild0Integer, 63, ++/*524105*/ OPC_CheckChild0Type, MVT::i64, ++/*524107*/ OPC_CheckChild1Integer, 63, ++/*524109*/ OPC_CheckChild1Type, MVT::i64, ++/*524111*/ OPC_CheckChild2Integer, 63, ++/*524113*/ OPC_CheckChild2Type, MVT::i64, ++/*524115*/ OPC_CheckChild3Integer, 63, ++/*524117*/ OPC_CheckChild3Type, MVT::i64, ++/*524119*/ OPC_CheckType, MVT::v4i64, ++/*524121*/ OPC_MoveParent, ++/*524122*/ OPC_MoveParent, ++/*524123*/ OPC_MoveParent, ++/*524124*/ OPC_MoveChild1, ++/*524125*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*524128*/ OPC_CheckChild0Integer, 1, ++/*524130*/ OPC_CheckChild0Type, MVT::i64, ++/*524132*/ OPC_CheckChild1Integer, 1, ++/*524134*/ OPC_CheckChild1Type, MVT::i64, ++/*524136*/ OPC_CheckChild2Integer, 1, ++/*524138*/ OPC_CheckChild2Type, MVT::i64, ++/*524140*/ OPC_CheckChild3Integer, 1, ++/*524142*/ OPC_CheckChild3Type, MVT::i64, ++/*524144*/ OPC_CheckType, MVT::v4i64, ++/*524146*/ OPC_MoveParent, ++/*524147*/ OPC_CheckType, MVT::v4i64, ++/*524149*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*524151*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b)), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*524159*/ 0, /*End of Scope*/ ++/*524160*/ /*Scope*/ 52|128,1/*180*/, /*->524342*/ ++/*524162*/ OPC_CheckChild0Same, 1, ++/*524164*/ OPC_MoveChild1, ++/*524165*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*524168*/ OPC_Scope, 85, /*->524255*/ // 2 children in Scope ++/*524170*/ OPC_MoveChild0, ++/*524171*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*524174*/ OPC_CheckChild0Integer, 1, ++/*524176*/ OPC_CheckChild0Type, MVT::i64, ++/*524178*/ OPC_CheckChild1Integer, 1, ++/*524180*/ OPC_CheckChild1Type, MVT::i64, ++/*524182*/ OPC_CheckChild2Integer, 1, ++/*524184*/ OPC_CheckChild2Type, MVT::i64, ++/*524186*/ OPC_CheckChild3Integer, 1, ++/*524188*/ OPC_CheckChild3Type, MVT::i64, ++/*524190*/ OPC_MoveParent, ++/*524191*/ OPC_CheckChild1Same, 0, ++/*524193*/ OPC_MoveParent, ++/*524194*/ OPC_MoveParent, ++/*524195*/ OPC_MoveChild1, ++/*524196*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*524199*/ OPC_CheckChild0Integer, 63, ++/*524201*/ OPC_CheckChild0Type, MVT::i64, ++/*524203*/ OPC_CheckChild1Integer, 63, ++/*524205*/ OPC_CheckChild1Type, MVT::i64, ++/*524207*/ OPC_CheckChild2Integer, 63, ++/*524209*/ OPC_CheckChild2Type, MVT::i64, ++/*524211*/ OPC_CheckChild3Integer, 63, ++/*524213*/ OPC_CheckChild3Type, MVT::i64, ++/*524215*/ OPC_CheckType, MVT::v4i64, ++/*524217*/ OPC_MoveParent, ++/*524218*/ OPC_MoveParent, ++/*524219*/ OPC_MoveParent, ++/*524220*/ OPC_MoveChild1, ++/*524221*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*524224*/ OPC_CheckChild0Integer, 1, ++/*524226*/ OPC_CheckChild0Type, MVT::i64, ++/*524228*/ OPC_CheckChild1Integer, 1, ++/*524230*/ OPC_CheckChild1Type, MVT::i64, ++/*524232*/ OPC_CheckChild2Integer, 1, ++/*524234*/ OPC_CheckChild2Type, MVT::i64, ++/*524236*/ OPC_CheckChild3Integer, 1, ++/*524238*/ OPC_CheckChild3Type, MVT::i64, ++/*524240*/ OPC_CheckType, MVT::v4i64, ++/*524242*/ OPC_MoveParent, ++/*524243*/ OPC_CheckType, MVT::v4i64, ++/*524245*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*524247*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b)), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*524255*/ /*Scope*/ 85, /*->524341*/ ++/*524256*/ OPC_CheckChild0Same, 0, ++/*524258*/ OPC_MoveChild1, ++/*524259*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*524262*/ OPC_CheckChild0Integer, 1, ++/*524264*/ OPC_CheckChild0Type, MVT::i64, ++/*524266*/ OPC_CheckChild1Integer, 1, ++/*524268*/ OPC_CheckChild1Type, MVT::i64, ++/*524270*/ OPC_CheckChild2Integer, 1, ++/*524272*/ OPC_CheckChild2Type, MVT::i64, ++/*524274*/ OPC_CheckChild3Integer, 1, ++/*524276*/ OPC_CheckChild3Type, MVT::i64, ++/*524278*/ OPC_MoveParent, ++/*524279*/ OPC_MoveParent, ++/*524280*/ OPC_MoveParent, ++/*524281*/ OPC_MoveChild1, ++/*524282*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*524285*/ OPC_CheckChild0Integer, 63, ++/*524287*/ OPC_CheckChild0Type, MVT::i64, ++/*524289*/ OPC_CheckChild1Integer, 63, ++/*524291*/ OPC_CheckChild1Type, MVT::i64, ++/*524293*/ OPC_CheckChild2Integer, 63, ++/*524295*/ OPC_CheckChild2Type, MVT::i64, ++/*524297*/ OPC_CheckChild3Integer, 63, ++/*524299*/ OPC_CheckChild3Type, MVT::i64, ++/*524301*/ OPC_CheckType, MVT::v4i64, ++/*524303*/ OPC_MoveParent, ++/*524304*/ OPC_MoveParent, ++/*524305*/ OPC_MoveParent, ++/*524306*/ OPC_MoveChild1, ++/*524307*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*524310*/ OPC_CheckChild0Integer, 1, ++/*524312*/ OPC_CheckChild0Type, MVT::i64, ++/*524314*/ OPC_CheckChild1Integer, 1, ++/*524316*/ OPC_CheckChild1Type, MVT::i64, ++/*524318*/ OPC_CheckChild2Integer, 1, ++/*524320*/ OPC_CheckChild2Type, MVT::i64, ++/*524322*/ OPC_CheckChild3Integer, 1, ++/*524324*/ OPC_CheckChild3Type, MVT::i64, ++/*524326*/ OPC_CheckType, MVT::v4i64, ++/*524328*/ OPC_MoveParent, ++/*524329*/ OPC_CheckType, MVT::v4i64, ++/*524331*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*524333*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b)), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*524341*/ 0, /*End of Scope*/ ++/*524342*/ /*Scope*/ 52|128,1/*180*/, /*->524524*/ ++/*524344*/ OPC_CheckChild0Same, 0, ++/*524346*/ OPC_MoveChild1, ++/*524347*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*524350*/ OPC_Scope, 85, /*->524437*/ // 2 children in Scope ++/*524352*/ OPC_MoveChild0, ++/*524353*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*524356*/ OPC_CheckChild0Integer, 1, ++/*524358*/ OPC_CheckChild0Type, MVT::i64, ++/*524360*/ OPC_CheckChild1Integer, 1, ++/*524362*/ OPC_CheckChild1Type, MVT::i64, ++/*524364*/ OPC_CheckChild2Integer, 1, ++/*524366*/ OPC_CheckChild2Type, MVT::i64, ++/*524368*/ OPC_CheckChild3Integer, 1, ++/*524370*/ OPC_CheckChild3Type, MVT::i64, ++/*524372*/ OPC_MoveParent, ++/*524373*/ OPC_CheckChild1Same, 1, ++/*524375*/ OPC_MoveParent, ++/*524376*/ OPC_MoveParent, ++/*524377*/ OPC_MoveChild1, ++/*524378*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*524381*/ OPC_CheckChild0Integer, 63, ++/*524383*/ OPC_CheckChild0Type, MVT::i64, ++/*524385*/ OPC_CheckChild1Integer, 63, ++/*524387*/ OPC_CheckChild1Type, MVT::i64, ++/*524389*/ OPC_CheckChild2Integer, 63, ++/*524391*/ OPC_CheckChild2Type, MVT::i64, ++/*524393*/ OPC_CheckChild3Integer, 63, ++/*524395*/ OPC_CheckChild3Type, MVT::i64, ++/*524397*/ OPC_CheckType, MVT::v4i64, ++/*524399*/ OPC_MoveParent, ++/*524400*/ OPC_MoveParent, ++/*524401*/ OPC_MoveParent, ++/*524402*/ OPC_MoveChild1, ++/*524403*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*524406*/ OPC_CheckChild0Integer, 1, ++/*524408*/ OPC_CheckChild0Type, MVT::i64, ++/*524410*/ OPC_CheckChild1Integer, 1, ++/*524412*/ OPC_CheckChild1Type, MVT::i64, ++/*524414*/ OPC_CheckChild2Integer, 1, ++/*524416*/ OPC_CheckChild2Type, MVT::i64, ++/*524418*/ OPC_CheckChild3Integer, 1, ++/*524420*/ OPC_CheckChild3Type, MVT::i64, ++/*524422*/ OPC_CheckType, MVT::v4i64, ++/*524424*/ OPC_MoveParent, ++/*524425*/ OPC_CheckType, MVT::v4i64, ++/*524427*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*524429*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b)), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*524437*/ /*Scope*/ 85, /*->524523*/ ++/*524438*/ OPC_CheckChild0Same, 1, ++/*524440*/ OPC_MoveChild1, ++/*524441*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*524444*/ OPC_CheckChild0Integer, 1, ++/*524446*/ OPC_CheckChild0Type, MVT::i64, ++/*524448*/ OPC_CheckChild1Integer, 1, ++/*524450*/ OPC_CheckChild1Type, MVT::i64, ++/*524452*/ OPC_CheckChild2Integer, 1, ++/*524454*/ OPC_CheckChild2Type, MVT::i64, ++/*524456*/ OPC_CheckChild3Integer, 1, ++/*524458*/ OPC_CheckChild3Type, MVT::i64, ++/*524460*/ OPC_MoveParent, ++/*524461*/ OPC_MoveParent, ++/*524462*/ OPC_MoveParent, ++/*524463*/ OPC_MoveChild1, ++/*524464*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*524467*/ OPC_CheckChild0Integer, 63, ++/*524469*/ OPC_CheckChild0Type, MVT::i64, ++/*524471*/ OPC_CheckChild1Integer, 63, ++/*524473*/ OPC_CheckChild1Type, MVT::i64, ++/*524475*/ OPC_CheckChild2Integer, 63, ++/*524477*/ OPC_CheckChild2Type, MVT::i64, ++/*524479*/ OPC_CheckChild3Integer, 63, ++/*524481*/ OPC_CheckChild3Type, MVT::i64, ++/*524483*/ OPC_CheckType, MVT::v4i64, ++/*524485*/ OPC_MoveParent, ++/*524486*/ OPC_MoveParent, ++/*524487*/ OPC_MoveParent, ++/*524488*/ OPC_MoveChild1, ++/*524489*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*524492*/ OPC_CheckChild0Integer, 1, ++/*524494*/ OPC_CheckChild0Type, MVT::i64, ++/*524496*/ OPC_CheckChild1Integer, 1, ++/*524498*/ OPC_CheckChild1Type, MVT::i64, ++/*524500*/ OPC_CheckChild2Integer, 1, ++/*524502*/ OPC_CheckChild2Type, MVT::i64, ++/*524504*/ OPC_CheckChild3Integer, 1, ++/*524506*/ OPC_CheckChild3Type, MVT::i64, ++/*524508*/ OPC_CheckType, MVT::v4i64, ++/*524510*/ OPC_MoveParent, ++/*524511*/ OPC_CheckType, MVT::v4i64, ++/*524513*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*524515*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b)), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*524523*/ 0, /*End of Scope*/ ++/*524524*/ /*Scope*/ 115|128,4/*627*/, /*->525153*/ ++/*524526*/ OPC_MoveChild0, ++/*524527*/ OPC_SwitchOpcode /*2 cases */, 87, TARGET_VAL(ISD::BUILD_VECTOR),// ->524618 ++/*524531*/ OPC_CheckChild0Integer, 1, ++/*524533*/ OPC_CheckChild0Type, MVT::i64, ++/*524535*/ OPC_CheckChild1Integer, 1, ++/*524537*/ OPC_CheckChild1Type, MVT::i64, ++/*524539*/ OPC_CheckChild2Integer, 1, ++/*524541*/ OPC_CheckChild2Type, MVT::i64, ++/*524543*/ OPC_CheckChild3Integer, 1, ++/*524545*/ OPC_CheckChild3Type, MVT::i64, ++/*524547*/ OPC_MoveParent, ++/*524548*/ OPC_MoveChild1, ++/*524549*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*524552*/ OPC_CheckChild0Same, 1, ++/*524554*/ OPC_CheckChild1Same, 0, ++/*524556*/ OPC_MoveParent, ++/*524557*/ OPC_MoveParent, ++/*524558*/ OPC_MoveChild1, ++/*524559*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*524562*/ OPC_CheckChild0Integer, 63, ++/*524564*/ OPC_CheckChild0Type, MVT::i64, ++/*524566*/ OPC_CheckChild1Integer, 63, ++/*524568*/ OPC_CheckChild1Type, MVT::i64, ++/*524570*/ OPC_CheckChild2Integer, 63, ++/*524572*/ OPC_CheckChild2Type, MVT::i64, ++/*524574*/ OPC_CheckChild3Integer, 63, ++/*524576*/ OPC_CheckChild3Type, MVT::i64, ++/*524578*/ OPC_CheckType, MVT::v4i64, ++/*524580*/ OPC_MoveParent, ++/*524581*/ OPC_MoveParent, ++/*524582*/ OPC_MoveParent, ++/*524583*/ OPC_MoveChild1, ++/*524584*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*524587*/ OPC_CheckChild0Integer, 1, ++/*524589*/ OPC_CheckChild0Type, MVT::i64, ++/*524591*/ OPC_CheckChild1Integer, 1, ++/*524593*/ OPC_CheckChild1Type, MVT::i64, ++/*524595*/ OPC_CheckChild2Integer, 1, ++/*524597*/ OPC_CheckChild2Type, MVT::i64, ++/*524599*/ OPC_CheckChild3Integer, 1, ++/*524601*/ OPC_CheckChild3Type, MVT::i64, ++/*524603*/ OPC_CheckType, MVT::v4i64, ++/*524605*/ OPC_MoveParent, ++/*524606*/ OPC_CheckType, MVT::v4i64, ++/*524608*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*524610*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b)), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*524618*/ /*SwitchOpcode*/ 18|128,4/*530*/, TARGET_VAL(ISD::ADD),// ->525152 ++/*524622*/ OPC_Scope, 87, /*->524711*/ // 6 children in Scope ++/*524624*/ OPC_MoveChild0, ++/*524625*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*524628*/ OPC_CheckChild0Integer, 1, ++/*524630*/ OPC_CheckChild0Type, MVT::i64, ++/*524632*/ OPC_CheckChild1Integer, 1, ++/*524634*/ OPC_CheckChild1Type, MVT::i64, ++/*524636*/ OPC_CheckChild2Integer, 1, ++/*524638*/ OPC_CheckChild2Type, MVT::i64, ++/*524640*/ OPC_CheckChild3Integer, 1, ++/*524642*/ OPC_CheckChild3Type, MVT::i64, ++/*524644*/ OPC_MoveParent, ++/*524645*/ OPC_CheckChild1Same, 1, ++/*524647*/ OPC_MoveParent, ++/*524648*/ OPC_CheckChild1Same, 0, ++/*524650*/ OPC_MoveParent, ++/*524651*/ OPC_MoveChild1, ++/*524652*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*524655*/ OPC_CheckChild0Integer, 63, ++/*524657*/ OPC_CheckChild0Type, MVT::i64, ++/*524659*/ OPC_CheckChild1Integer, 63, ++/*524661*/ OPC_CheckChild1Type, MVT::i64, ++/*524663*/ OPC_CheckChild2Integer, 63, ++/*524665*/ OPC_CheckChild2Type, MVT::i64, ++/*524667*/ OPC_CheckChild3Integer, 63, ++/*524669*/ OPC_CheckChild3Type, MVT::i64, ++/*524671*/ OPC_CheckType, MVT::v4i64, ++/*524673*/ OPC_MoveParent, ++/*524674*/ OPC_MoveParent, ++/*524675*/ OPC_MoveParent, ++/*524676*/ OPC_MoveChild1, ++/*524677*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*524680*/ OPC_CheckChild0Integer, 1, ++/*524682*/ OPC_CheckChild0Type, MVT::i64, ++/*524684*/ OPC_CheckChild1Integer, 1, ++/*524686*/ OPC_CheckChild1Type, MVT::i64, ++/*524688*/ OPC_CheckChild2Integer, 1, ++/*524690*/ OPC_CheckChild2Type, MVT::i64, ++/*524692*/ OPC_CheckChild3Integer, 1, ++/*524694*/ OPC_CheckChild3Type, MVT::i64, ++/*524696*/ OPC_CheckType, MVT::v4i64, ++/*524698*/ OPC_MoveParent, ++/*524699*/ OPC_CheckType, MVT::v4i64, ++/*524701*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*524703*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a)), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a), LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*524711*/ /*Scope*/ 87, /*->524799*/ ++/*524712*/ OPC_CheckChild0Same, 1, ++/*524714*/ OPC_MoveChild1, ++/*524715*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*524718*/ OPC_CheckChild0Integer, 1, ++/*524720*/ OPC_CheckChild0Type, MVT::i64, ++/*524722*/ OPC_CheckChild1Integer, 1, ++/*524724*/ OPC_CheckChild1Type, MVT::i64, ++/*524726*/ OPC_CheckChild2Integer, 1, ++/*524728*/ OPC_CheckChild2Type, MVT::i64, ++/*524730*/ OPC_CheckChild3Integer, 1, ++/*524732*/ OPC_CheckChild3Type, MVT::i64, ++/*524734*/ OPC_MoveParent, ++/*524735*/ OPC_MoveParent, ++/*524736*/ OPC_CheckChild1Same, 0, ++/*524738*/ OPC_MoveParent, ++/*524739*/ OPC_MoveChild1, ++/*524740*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*524743*/ OPC_CheckChild0Integer, 63, ++/*524745*/ OPC_CheckChild0Type, MVT::i64, ++/*524747*/ OPC_CheckChild1Integer, 63, ++/*524749*/ OPC_CheckChild1Type, MVT::i64, ++/*524751*/ OPC_CheckChild2Integer, 63, ++/*524753*/ OPC_CheckChild2Type, MVT::i64, ++/*524755*/ OPC_CheckChild3Integer, 63, ++/*524757*/ OPC_CheckChild3Type, MVT::i64, ++/*524759*/ OPC_CheckType, MVT::v4i64, ++/*524761*/ OPC_MoveParent, ++/*524762*/ OPC_MoveParent, ++/*524763*/ OPC_MoveParent, ++/*524764*/ OPC_MoveChild1, ++/*524765*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*524768*/ OPC_CheckChild0Integer, 1, ++/*524770*/ OPC_CheckChild0Type, MVT::i64, ++/*524772*/ OPC_CheckChild1Integer, 1, ++/*524774*/ OPC_CheckChild1Type, MVT::i64, ++/*524776*/ OPC_CheckChild2Integer, 1, ++/*524778*/ OPC_CheckChild2Type, MVT::i64, ++/*524780*/ OPC_CheckChild3Integer, 1, ++/*524782*/ OPC_CheckChild3Type, MVT::i64, ++/*524784*/ OPC_CheckType, MVT::v4i64, ++/*524786*/ OPC_MoveParent, ++/*524787*/ OPC_CheckType, MVT::v4i64, ++/*524789*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*524791*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a)), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*524799*/ /*Scope*/ 87, /*->524887*/ ++/*524800*/ OPC_MoveChild0, ++/*524801*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*524804*/ OPC_CheckChild0Integer, 1, ++/*524806*/ OPC_CheckChild0Type, MVT::i64, ++/*524808*/ OPC_CheckChild1Integer, 1, ++/*524810*/ OPC_CheckChild1Type, MVT::i64, ++/*524812*/ OPC_CheckChild2Integer, 1, ++/*524814*/ OPC_CheckChild2Type, MVT::i64, ++/*524816*/ OPC_CheckChild3Integer, 1, ++/*524818*/ OPC_CheckChild3Type, MVT::i64, ++/*524820*/ OPC_MoveParent, ++/*524821*/ OPC_CheckChild1Same, 0, ++/*524823*/ OPC_MoveParent, ++/*524824*/ OPC_CheckChild1Same, 1, ++/*524826*/ OPC_MoveParent, ++/*524827*/ OPC_MoveChild1, ++/*524828*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*524831*/ OPC_CheckChild0Integer, 63, ++/*524833*/ OPC_CheckChild0Type, MVT::i64, ++/*524835*/ OPC_CheckChild1Integer, 63, ++/*524837*/ OPC_CheckChild1Type, MVT::i64, ++/*524839*/ OPC_CheckChild2Integer, 63, ++/*524841*/ OPC_CheckChild2Type, MVT::i64, ++/*524843*/ OPC_CheckChild3Integer, 63, ++/*524845*/ OPC_CheckChild3Type, MVT::i64, ++/*524847*/ OPC_CheckType, MVT::v4i64, ++/*524849*/ OPC_MoveParent, ++/*524850*/ OPC_MoveParent, ++/*524851*/ OPC_MoveParent, ++/*524852*/ OPC_MoveChild1, ++/*524853*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*524856*/ OPC_CheckChild0Integer, 1, ++/*524858*/ OPC_CheckChild0Type, MVT::i64, ++/*524860*/ OPC_CheckChild1Integer, 1, ++/*524862*/ OPC_CheckChild1Type, MVT::i64, ++/*524864*/ OPC_CheckChild2Integer, 1, ++/*524866*/ OPC_CheckChild2Type, MVT::i64, ++/*524868*/ OPC_CheckChild3Integer, 1, ++/*524870*/ OPC_CheckChild3Type, MVT::i64, ++/*524872*/ OPC_CheckType, MVT::v4i64, ++/*524874*/ OPC_MoveParent, ++/*524875*/ OPC_CheckType, MVT::v4i64, ++/*524877*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*524879*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a)), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b), LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*524887*/ /*Scope*/ 87, /*->524975*/ ++/*524888*/ OPC_CheckChild0Same, 0, ++/*524890*/ OPC_MoveChild1, ++/*524891*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*524894*/ OPC_CheckChild0Integer, 1, ++/*524896*/ OPC_CheckChild0Type, MVT::i64, ++/*524898*/ OPC_CheckChild1Integer, 1, ++/*524900*/ OPC_CheckChild1Type, MVT::i64, ++/*524902*/ OPC_CheckChild2Integer, 1, ++/*524904*/ OPC_CheckChild2Type, MVT::i64, ++/*524906*/ OPC_CheckChild3Integer, 1, ++/*524908*/ OPC_CheckChild3Type, MVT::i64, ++/*524910*/ OPC_MoveParent, ++/*524911*/ OPC_MoveParent, ++/*524912*/ OPC_CheckChild1Same, 1, ++/*524914*/ OPC_MoveParent, ++/*524915*/ OPC_MoveChild1, ++/*524916*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*524919*/ OPC_CheckChild0Integer, 63, ++/*524921*/ OPC_CheckChild0Type, MVT::i64, ++/*524923*/ OPC_CheckChild1Integer, 63, ++/*524925*/ OPC_CheckChild1Type, MVT::i64, ++/*524927*/ OPC_CheckChild2Integer, 63, ++/*524929*/ OPC_CheckChild2Type, MVT::i64, ++/*524931*/ OPC_CheckChild3Integer, 63, ++/*524933*/ OPC_CheckChild3Type, MVT::i64, ++/*524935*/ OPC_CheckType, MVT::v4i64, ++/*524937*/ OPC_MoveParent, ++/*524938*/ OPC_MoveParent, ++/*524939*/ OPC_MoveParent, ++/*524940*/ OPC_MoveChild1, ++/*524941*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*524944*/ OPC_CheckChild0Integer, 1, ++/*524946*/ OPC_CheckChild0Type, MVT::i64, ++/*524948*/ OPC_CheckChild1Integer, 1, ++/*524950*/ OPC_CheckChild1Type, MVT::i64, ++/*524952*/ OPC_CheckChild2Integer, 1, ++/*524954*/ OPC_CheckChild2Type, MVT::i64, ++/*524956*/ OPC_CheckChild3Integer, 1, ++/*524958*/ OPC_CheckChild3Type, MVT::i64, ++/*524960*/ OPC_CheckType, MVT::v4i64, ++/*524962*/ OPC_MoveParent, ++/*524963*/ OPC_CheckType, MVT::v4i64, ++/*524965*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*524967*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a)), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*524975*/ /*Scope*/ 87, /*->525063*/ ++/*524976*/ OPC_CheckChild0Same, 1, ++/*524978*/ OPC_CheckChild1Same, 0, ++/*524980*/ OPC_MoveParent, ++/*524981*/ OPC_MoveChild1, ++/*524982*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*524985*/ OPC_CheckChild0Integer, 1, ++/*524987*/ OPC_CheckChild0Type, MVT::i64, ++/*524989*/ OPC_CheckChild1Integer, 1, ++/*524991*/ OPC_CheckChild1Type, MVT::i64, ++/*524993*/ OPC_CheckChild2Integer, 1, ++/*524995*/ OPC_CheckChild2Type, MVT::i64, ++/*524997*/ OPC_CheckChild3Integer, 1, ++/*524999*/ OPC_CheckChild3Type, MVT::i64, ++/*525001*/ OPC_MoveParent, ++/*525002*/ OPC_MoveParent, ++/*525003*/ OPC_MoveChild1, ++/*525004*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*525007*/ OPC_CheckChild0Integer, 63, ++/*525009*/ OPC_CheckChild0Type, MVT::i64, ++/*525011*/ OPC_CheckChild1Integer, 63, ++/*525013*/ OPC_CheckChild1Type, MVT::i64, ++/*525015*/ OPC_CheckChild2Integer, 63, ++/*525017*/ OPC_CheckChild2Type, MVT::i64, ++/*525019*/ OPC_CheckChild3Integer, 63, ++/*525021*/ OPC_CheckChild3Type, MVT::i64, ++/*525023*/ OPC_CheckType, MVT::v4i64, ++/*525025*/ OPC_MoveParent, ++/*525026*/ OPC_MoveParent, ++/*525027*/ OPC_MoveParent, ++/*525028*/ OPC_MoveChild1, ++/*525029*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*525032*/ OPC_CheckChild0Integer, 1, ++/*525034*/ OPC_CheckChild0Type, MVT::i64, ++/*525036*/ OPC_CheckChild1Integer, 1, ++/*525038*/ OPC_CheckChild1Type, MVT::i64, ++/*525040*/ OPC_CheckChild2Integer, 1, ++/*525042*/ OPC_CheckChild2Type, MVT::i64, ++/*525044*/ OPC_CheckChild3Integer, 1, ++/*525046*/ OPC_CheckChild3Type, MVT::i64, ++/*525048*/ OPC_CheckType, MVT::v4i64, ++/*525050*/ OPC_MoveParent, ++/*525051*/ OPC_CheckType, MVT::v4i64, ++/*525053*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*525055*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a)), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*525063*/ /*Scope*/ 87, /*->525151*/ ++/*525064*/ OPC_CheckChild0Same, 0, ++/*525066*/ OPC_CheckChild1Same, 1, ++/*525068*/ OPC_MoveParent, ++/*525069*/ OPC_MoveChild1, ++/*525070*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*525073*/ OPC_CheckChild0Integer, 1, ++/*525075*/ OPC_CheckChild0Type, MVT::i64, ++/*525077*/ OPC_CheckChild1Integer, 1, ++/*525079*/ OPC_CheckChild1Type, MVT::i64, ++/*525081*/ OPC_CheckChild2Integer, 1, ++/*525083*/ OPC_CheckChild2Type, MVT::i64, ++/*525085*/ OPC_CheckChild3Integer, 1, ++/*525087*/ OPC_CheckChild3Type, MVT::i64, ++/*525089*/ OPC_MoveParent, ++/*525090*/ OPC_MoveParent, ++/*525091*/ OPC_MoveChild1, ++/*525092*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*525095*/ OPC_CheckChild0Integer, 63, ++/*525097*/ OPC_CheckChild0Type, MVT::i64, ++/*525099*/ OPC_CheckChild1Integer, 63, ++/*525101*/ OPC_CheckChild1Type, MVT::i64, ++/*525103*/ OPC_CheckChild2Integer, 63, ++/*525105*/ OPC_CheckChild2Type, MVT::i64, ++/*525107*/ OPC_CheckChild3Integer, 63, ++/*525109*/ OPC_CheckChild3Type, MVT::i64, ++/*525111*/ OPC_CheckType, MVT::v4i64, ++/*525113*/ OPC_MoveParent, ++/*525114*/ OPC_MoveParent, ++/*525115*/ OPC_MoveParent, ++/*525116*/ OPC_MoveChild1, ++/*525117*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*525120*/ OPC_CheckChild0Integer, 1, ++/*525122*/ OPC_CheckChild0Type, MVT::i64, ++/*525124*/ OPC_CheckChild1Integer, 1, ++/*525126*/ OPC_CheckChild1Type, MVT::i64, ++/*525128*/ OPC_CheckChild2Integer, 1, ++/*525130*/ OPC_CheckChild2Type, MVT::i64, ++/*525132*/ OPC_CheckChild3Integer, 1, ++/*525134*/ OPC_CheckChild3Type, MVT::i64, ++/*525136*/ OPC_CheckType, MVT::v4i64, ++/*525138*/ OPC_MoveParent, ++/*525139*/ OPC_CheckType, MVT::v4i64, ++/*525141*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*525143*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a)), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*525151*/ 0, /*End of Scope*/ ++/*525152*/ 0, // EndSwitchOpcode ++/*525153*/ /*Scope*/ 52|128,1/*180*/, /*->525335*/ ++/*525155*/ OPC_CheckChild0Same, 0, ++/*525157*/ OPC_MoveChild1, ++/*525158*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*525161*/ OPC_Scope, 85, /*->525248*/ // 2 children in Scope ++/*525163*/ OPC_MoveChild0, ++/*525164*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*525167*/ OPC_CheckChild0Integer, 1, ++/*525169*/ OPC_CheckChild0Type, MVT::i64, ++/*525171*/ OPC_CheckChild1Integer, 1, ++/*525173*/ OPC_CheckChild1Type, MVT::i64, ++/*525175*/ OPC_CheckChild2Integer, 1, ++/*525177*/ OPC_CheckChild2Type, MVT::i64, ++/*525179*/ OPC_CheckChild3Integer, 1, ++/*525181*/ OPC_CheckChild3Type, MVT::i64, ++/*525183*/ OPC_MoveParent, ++/*525184*/ OPC_CheckChild1Same, 1, ++/*525186*/ OPC_MoveParent, ++/*525187*/ OPC_MoveParent, ++/*525188*/ OPC_MoveChild1, ++/*525189*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*525192*/ OPC_CheckChild0Integer, 63, ++/*525194*/ OPC_CheckChild0Type, MVT::i64, ++/*525196*/ OPC_CheckChild1Integer, 63, ++/*525198*/ OPC_CheckChild1Type, MVT::i64, ++/*525200*/ OPC_CheckChild2Integer, 63, ++/*525202*/ OPC_CheckChild2Type, MVT::i64, ++/*525204*/ OPC_CheckChild3Integer, 63, ++/*525206*/ OPC_CheckChild3Type, MVT::i64, ++/*525208*/ OPC_CheckType, MVT::v4i64, ++/*525210*/ OPC_MoveParent, ++/*525211*/ OPC_MoveParent, ++/*525212*/ OPC_MoveParent, ++/*525213*/ OPC_MoveChild1, ++/*525214*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*525217*/ OPC_CheckChild0Integer, 1, ++/*525219*/ OPC_CheckChild0Type, MVT::i64, ++/*525221*/ OPC_CheckChild1Integer, 1, ++/*525223*/ OPC_CheckChild1Type, MVT::i64, ++/*525225*/ OPC_CheckChild2Integer, 1, ++/*525227*/ OPC_CheckChild2Type, MVT::i64, ++/*525229*/ OPC_CheckChild3Integer, 1, ++/*525231*/ OPC_CheckChild3Type, MVT::i64, ++/*525233*/ OPC_CheckType, MVT::v4i64, ++/*525235*/ OPC_MoveParent, ++/*525236*/ OPC_CheckType, MVT::v4i64, ++/*525238*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*525240*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a)), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*525248*/ /*Scope*/ 85, /*->525334*/ ++/*525249*/ OPC_CheckChild0Same, 1, ++/*525251*/ OPC_MoveChild1, ++/*525252*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*525255*/ OPC_CheckChild0Integer, 1, ++/*525257*/ OPC_CheckChild0Type, MVT::i64, ++/*525259*/ OPC_CheckChild1Integer, 1, ++/*525261*/ OPC_CheckChild1Type, MVT::i64, ++/*525263*/ OPC_CheckChild2Integer, 1, ++/*525265*/ OPC_CheckChild2Type, MVT::i64, ++/*525267*/ OPC_CheckChild3Integer, 1, ++/*525269*/ OPC_CheckChild3Type, MVT::i64, ++/*525271*/ OPC_MoveParent, ++/*525272*/ OPC_MoveParent, ++/*525273*/ OPC_MoveParent, ++/*525274*/ OPC_MoveChild1, ++/*525275*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*525278*/ OPC_CheckChild0Integer, 63, ++/*525280*/ OPC_CheckChild0Type, MVT::i64, ++/*525282*/ OPC_CheckChild1Integer, 63, ++/*525284*/ OPC_CheckChild1Type, MVT::i64, ++/*525286*/ OPC_CheckChild2Integer, 63, ++/*525288*/ OPC_CheckChild2Type, MVT::i64, ++/*525290*/ OPC_CheckChild3Integer, 63, ++/*525292*/ OPC_CheckChild3Type, MVT::i64, ++/*525294*/ OPC_CheckType, MVT::v4i64, ++/*525296*/ OPC_MoveParent, ++/*525297*/ OPC_MoveParent, ++/*525298*/ OPC_MoveParent, ++/*525299*/ OPC_MoveChild1, ++/*525300*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*525303*/ OPC_CheckChild0Integer, 1, ++/*525305*/ OPC_CheckChild0Type, MVT::i64, ++/*525307*/ OPC_CheckChild1Integer, 1, ++/*525309*/ OPC_CheckChild1Type, MVT::i64, ++/*525311*/ OPC_CheckChild2Integer, 1, ++/*525313*/ OPC_CheckChild2Type, MVT::i64, ++/*525315*/ OPC_CheckChild3Integer, 1, ++/*525317*/ OPC_CheckChild3Type, MVT::i64, ++/*525319*/ OPC_CheckType, MVT::v4i64, ++/*525321*/ OPC_MoveParent, ++/*525322*/ OPC_CheckType, MVT::v4i64, ++/*525324*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*525326*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a)), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*525334*/ 0, /*End of Scope*/ ++/*525335*/ /*Scope*/ 52|128,1/*180*/, /*->525517*/ ++/*525337*/ OPC_CheckChild0Same, 1, ++/*525339*/ OPC_MoveChild1, ++/*525340*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*525343*/ OPC_Scope, 85, /*->525430*/ // 2 children in Scope ++/*525345*/ OPC_MoveChild0, ++/*525346*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*525349*/ OPC_CheckChild0Integer, 1, ++/*525351*/ OPC_CheckChild0Type, MVT::i64, ++/*525353*/ OPC_CheckChild1Integer, 1, ++/*525355*/ OPC_CheckChild1Type, MVT::i64, ++/*525357*/ OPC_CheckChild2Integer, 1, ++/*525359*/ OPC_CheckChild2Type, MVT::i64, ++/*525361*/ OPC_CheckChild3Integer, 1, ++/*525363*/ OPC_CheckChild3Type, MVT::i64, ++/*525365*/ OPC_MoveParent, ++/*525366*/ OPC_CheckChild1Same, 0, ++/*525368*/ OPC_MoveParent, ++/*525369*/ OPC_MoveParent, ++/*525370*/ OPC_MoveChild1, ++/*525371*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*525374*/ OPC_CheckChild0Integer, 63, ++/*525376*/ OPC_CheckChild0Type, MVT::i64, ++/*525378*/ OPC_CheckChild1Integer, 63, ++/*525380*/ OPC_CheckChild1Type, MVT::i64, ++/*525382*/ OPC_CheckChild2Integer, 63, ++/*525384*/ OPC_CheckChild2Type, MVT::i64, ++/*525386*/ OPC_CheckChild3Integer, 63, ++/*525388*/ OPC_CheckChild3Type, MVT::i64, ++/*525390*/ OPC_CheckType, MVT::v4i64, ++/*525392*/ OPC_MoveParent, ++/*525393*/ OPC_MoveParent, ++/*525394*/ OPC_MoveParent, ++/*525395*/ OPC_MoveChild1, ++/*525396*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*525399*/ OPC_CheckChild0Integer, 1, ++/*525401*/ OPC_CheckChild0Type, MVT::i64, ++/*525403*/ OPC_CheckChild1Integer, 1, ++/*525405*/ OPC_CheckChild1Type, MVT::i64, ++/*525407*/ OPC_CheckChild2Integer, 1, ++/*525409*/ OPC_CheckChild2Type, MVT::i64, ++/*525411*/ OPC_CheckChild3Integer, 1, ++/*525413*/ OPC_CheckChild3Type, MVT::i64, ++/*525415*/ OPC_CheckType, MVT::v4i64, ++/*525417*/ OPC_MoveParent, ++/*525418*/ OPC_CheckType, MVT::v4i64, ++/*525420*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*525422*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a)), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*525430*/ /*Scope*/ 85, /*->525516*/ ++/*525431*/ OPC_CheckChild0Same, 0, ++/*525433*/ OPC_MoveChild1, ++/*525434*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*525437*/ OPC_CheckChild0Integer, 1, ++/*525439*/ OPC_CheckChild0Type, MVT::i64, ++/*525441*/ OPC_CheckChild1Integer, 1, ++/*525443*/ OPC_CheckChild1Type, MVT::i64, ++/*525445*/ OPC_CheckChild2Integer, 1, ++/*525447*/ OPC_CheckChild2Type, MVT::i64, ++/*525449*/ OPC_CheckChild3Integer, 1, ++/*525451*/ OPC_CheckChild3Type, MVT::i64, ++/*525453*/ OPC_MoveParent, ++/*525454*/ OPC_MoveParent, ++/*525455*/ OPC_MoveParent, ++/*525456*/ OPC_MoveChild1, ++/*525457*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*525460*/ OPC_CheckChild0Integer, 63, ++/*525462*/ OPC_CheckChild0Type, MVT::i64, ++/*525464*/ OPC_CheckChild1Integer, 63, ++/*525466*/ OPC_CheckChild1Type, MVT::i64, ++/*525468*/ OPC_CheckChild2Integer, 63, ++/*525470*/ OPC_CheckChild2Type, MVT::i64, ++/*525472*/ OPC_CheckChild3Integer, 63, ++/*525474*/ OPC_CheckChild3Type, MVT::i64, ++/*525476*/ OPC_CheckType, MVT::v4i64, ++/*525478*/ OPC_MoveParent, ++/*525479*/ OPC_MoveParent, ++/*525480*/ OPC_MoveParent, ++/*525481*/ OPC_MoveChild1, ++/*525482*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*525485*/ OPC_CheckChild0Integer, 1, ++/*525487*/ OPC_CheckChild0Type, MVT::i64, ++/*525489*/ OPC_CheckChild1Integer, 1, ++/*525491*/ OPC_CheckChild1Type, MVT::i64, ++/*525493*/ OPC_CheckChild2Integer, 1, ++/*525495*/ OPC_CheckChild2Type, MVT::i64, ++/*525497*/ OPC_CheckChild3Integer, 1, ++/*525499*/ OPC_CheckChild3Type, MVT::i64, ++/*525501*/ OPC_CheckType, MVT::v4i64, ++/*525503*/ OPC_MoveParent, ++/*525504*/ OPC_CheckType, MVT::v4i64, ++/*525506*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*525508*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a)), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*525516*/ 0, /*End of Scope*/ ++/*525517*/ /*Scope*/ 33|128,1/*161*/, /*->525680*/ ++/*525519*/ OPC_MoveChild0, ++/*525520*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*525523*/ OPC_CheckChild0Integer, 1, ++/*525525*/ OPC_CheckChild0Type, MVT::i64, ++/*525527*/ OPC_CheckChild1Integer, 1, ++/*525529*/ OPC_CheckChild1Type, MVT::i64, ++/*525531*/ OPC_CheckChild2Integer, 1, ++/*525533*/ OPC_CheckChild2Type, MVT::i64, ++/*525535*/ OPC_CheckChild3Integer, 1, ++/*525537*/ OPC_CheckChild3Type, MVT::i64, ++/*525539*/ OPC_MoveParent, ++/*525540*/ OPC_MoveChild1, ++/*525541*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*525544*/ OPC_Scope, 66, /*->525612*/ // 2 children in Scope ++/*525546*/ OPC_CheckChild0Same, 1, ++/*525548*/ OPC_CheckChild1Same, 0, ++/*525550*/ OPC_MoveParent, ++/*525551*/ OPC_MoveParent, ++/*525552*/ OPC_MoveChild1, ++/*525553*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*525556*/ OPC_CheckChild0Integer, 63, ++/*525558*/ OPC_CheckChild0Type, MVT::i64, ++/*525560*/ OPC_CheckChild1Integer, 63, ++/*525562*/ OPC_CheckChild1Type, MVT::i64, ++/*525564*/ OPC_CheckChild2Integer, 63, ++/*525566*/ OPC_CheckChild2Type, MVT::i64, ++/*525568*/ OPC_CheckChild3Integer, 63, ++/*525570*/ OPC_CheckChild3Type, MVT::i64, ++/*525572*/ OPC_CheckType, MVT::v4i64, ++/*525574*/ OPC_MoveParent, ++/*525575*/ OPC_MoveParent, ++/*525576*/ OPC_MoveParent, ++/*525577*/ OPC_MoveChild1, ++/*525578*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*525581*/ OPC_CheckChild0Integer, 1, ++/*525583*/ OPC_CheckChild0Type, MVT::i64, ++/*525585*/ OPC_CheckChild1Integer, 1, ++/*525587*/ OPC_CheckChild1Type, MVT::i64, ++/*525589*/ OPC_CheckChild2Integer, 1, ++/*525591*/ OPC_CheckChild2Type, MVT::i64, ++/*525593*/ OPC_CheckChild3Integer, 1, ++/*525595*/ OPC_CheckChild3Type, MVT::i64, ++/*525597*/ OPC_CheckType, MVT::v4i64, ++/*525599*/ OPC_MoveParent, ++/*525600*/ OPC_CheckType, MVT::v4i64, ++/*525602*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*525604*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a)), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*525612*/ /*Scope*/ 66, /*->525679*/ ++/*525613*/ OPC_CheckChild0Same, 0, ++/*525615*/ OPC_CheckChild1Same, 1, ++/*525617*/ OPC_MoveParent, ++/*525618*/ OPC_MoveParent, ++/*525619*/ OPC_MoveChild1, ++/*525620*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*525623*/ OPC_CheckChild0Integer, 63, ++/*525625*/ OPC_CheckChild0Type, MVT::i64, ++/*525627*/ OPC_CheckChild1Integer, 63, ++/*525629*/ OPC_CheckChild1Type, MVT::i64, ++/*525631*/ OPC_CheckChild2Integer, 63, ++/*525633*/ OPC_CheckChild2Type, MVT::i64, ++/*525635*/ OPC_CheckChild3Integer, 63, ++/*525637*/ OPC_CheckChild3Type, MVT::i64, ++/*525639*/ OPC_CheckType, MVT::v4i64, ++/*525641*/ OPC_MoveParent, ++/*525642*/ OPC_MoveParent, ++/*525643*/ OPC_MoveParent, ++/*525644*/ OPC_MoveChild1, ++/*525645*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*525648*/ OPC_CheckChild0Integer, 1, ++/*525650*/ OPC_CheckChild0Type, MVT::i64, ++/*525652*/ OPC_CheckChild1Integer, 1, ++/*525654*/ OPC_CheckChild1Type, MVT::i64, ++/*525656*/ OPC_CheckChild2Integer, 1, ++/*525658*/ OPC_CheckChild2Type, MVT::i64, ++/*525660*/ OPC_CheckChild3Integer, 1, ++/*525662*/ OPC_CheckChild3Type, MVT::i64, ++/*525664*/ OPC_CheckType, MVT::v4i64, ++/*525666*/ OPC_MoveParent, ++/*525667*/ OPC_CheckType, MVT::v4i64, ++/*525669*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*525671*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a)), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*525679*/ 0, /*End of Scope*/ ++/*525680*/ 0, /*End of Scope*/ ++/*525681*/ /*Scope*/ 60|128,5/*700*/, /*->526383*/ ++/*525683*/ OPC_RecordChild0, // #0 = $a ++/*525684*/ OPC_Scope, 75|128,3/*459*/, /*->526146*/ // 2 children in Scope ++/*525687*/ OPC_RecordChild1, // #1 = $b ++/*525688*/ OPC_MoveParent, ++/*525689*/ OPC_MoveChild1, ++/*525690*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*525693*/ OPC_MoveChild0, ++/*525694*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*525697*/ OPC_Scope, 85|128,1/*213*/, /*->525913*/ // 3 children in Scope ++/*525700*/ OPC_CheckChild0Same, 0, ++/*525702*/ OPC_CheckChild1Same, 1, ++/*525704*/ OPC_MoveParent, ++/*525705*/ OPC_MoveChild1, ++/*525706*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*525709*/ OPC_Scope, 100, /*->525811*/ // 2 children in Scope ++/*525711*/ OPC_CheckChild0Integer, 15, ++/*525713*/ OPC_CheckChild0Type, MVT::i32, ++/*525715*/ OPC_CheckChild1Integer, 15, ++/*525717*/ OPC_CheckChild1Type, MVT::i32, ++/*525719*/ OPC_CheckChild2Integer, 15, ++/*525721*/ OPC_CheckChild2Type, MVT::i32, ++/*525723*/ OPC_CheckChild3Integer, 15, ++/*525725*/ OPC_CheckChild3Type, MVT::i32, ++/*525727*/ OPC_CheckChild4Integer, 15, ++/*525729*/ OPC_CheckChild4Type, MVT::i32, ++/*525731*/ OPC_MoveChild5, ++/*525732*/ OPC_CheckInteger, 15, ++/*525734*/ OPC_CheckType, MVT::i32, ++/*525736*/ OPC_MoveParent, ++/*525737*/ OPC_MoveChild6, ++/*525738*/ OPC_CheckInteger, 15, ++/*525740*/ OPC_CheckType, MVT::i32, ++/*525742*/ OPC_MoveParent, ++/*525743*/ OPC_MoveChild7, ++/*525744*/ OPC_CheckInteger, 15, ++/*525746*/ OPC_CheckType, MVT::i32, ++/*525748*/ OPC_MoveParent, ++/*525749*/ OPC_CheckType, MVT::v8i16, ++/*525751*/ OPC_MoveParent, ++/*525752*/ OPC_MoveParent, ++/*525753*/ OPC_MoveParent, ++/*525754*/ OPC_MoveChild1, ++/*525755*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*525758*/ OPC_CheckChild0Integer, 1, ++/*525760*/ OPC_CheckChild0Type, MVT::i32, ++/*525762*/ OPC_CheckChild1Integer, 1, ++/*525764*/ OPC_CheckChild1Type, MVT::i32, ++/*525766*/ OPC_CheckChild2Integer, 1, ++/*525768*/ OPC_CheckChild2Type, MVT::i32, ++/*525770*/ OPC_CheckChild3Integer, 1, ++/*525772*/ OPC_CheckChild3Type, MVT::i32, ++/*525774*/ OPC_CheckChild4Integer, 1, ++/*525776*/ OPC_CheckChild4Type, MVT::i32, ++/*525778*/ OPC_MoveChild5, ++/*525779*/ OPC_CheckInteger, 1, ++/*525781*/ OPC_CheckType, MVT::i32, ++/*525783*/ OPC_MoveParent, ++/*525784*/ OPC_MoveChild6, ++/*525785*/ OPC_CheckInteger, 1, ++/*525787*/ OPC_CheckType, MVT::i32, ++/*525789*/ OPC_MoveParent, ++/*525790*/ OPC_MoveChild7, ++/*525791*/ OPC_CheckInteger, 1, ++/*525793*/ OPC_CheckType, MVT::i32, ++/*525795*/ OPC_MoveParent, ++/*525796*/ OPC_CheckType, MVT::v8i16, ++/*525798*/ OPC_MoveParent, ++/*525799*/ OPC_CheckType, MVT::v8i16, ++/*525801*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*525803*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 101 ++ // Dst: (VAVG_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*525811*/ /*Scope*/ 100, /*->525912*/ ++/*525812*/ OPC_CheckChild0Integer, 31, ++/*525814*/ OPC_CheckChild0Type, MVT::i32, ++/*525816*/ OPC_CheckChild1Integer, 31, ++/*525818*/ OPC_CheckChild1Type, MVT::i32, ++/*525820*/ OPC_CheckChild2Integer, 31, ++/*525822*/ OPC_CheckChild2Type, MVT::i32, ++/*525824*/ OPC_CheckChild3Integer, 31, ++/*525826*/ OPC_CheckChild3Type, MVT::i32, ++/*525828*/ OPC_CheckChild4Integer, 31, ++/*525830*/ OPC_CheckChild4Type, MVT::i32, ++/*525832*/ OPC_MoveChild5, ++/*525833*/ OPC_CheckInteger, 31, ++/*525835*/ OPC_CheckType, MVT::i32, ++/*525837*/ OPC_MoveParent, ++/*525838*/ OPC_MoveChild6, ++/*525839*/ OPC_CheckInteger, 31, ++/*525841*/ OPC_CheckType, MVT::i32, ++/*525843*/ OPC_MoveParent, ++/*525844*/ OPC_MoveChild7, ++/*525845*/ OPC_CheckInteger, 31, ++/*525847*/ OPC_CheckType, MVT::i32, ++/*525849*/ OPC_MoveParent, ++/*525850*/ OPC_CheckType, MVT::v8i32, ++/*525852*/ OPC_MoveParent, ++/*525853*/ OPC_MoveParent, ++/*525854*/ OPC_MoveParent, ++/*525855*/ OPC_MoveChild1, ++/*525856*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*525859*/ OPC_CheckChild0Integer, 1, ++/*525861*/ OPC_CheckChild0Type, MVT::i32, ++/*525863*/ OPC_CheckChild1Integer, 1, ++/*525865*/ OPC_CheckChild1Type, MVT::i32, ++/*525867*/ OPC_CheckChild2Integer, 1, ++/*525869*/ OPC_CheckChild2Type, MVT::i32, ++/*525871*/ OPC_CheckChild3Integer, 1, ++/*525873*/ OPC_CheckChild3Type, MVT::i32, ++/*525875*/ OPC_CheckChild4Integer, 1, ++/*525877*/ OPC_CheckChild4Type, MVT::i32, ++/*525879*/ OPC_MoveChild5, ++/*525880*/ OPC_CheckInteger, 1, ++/*525882*/ OPC_CheckType, MVT::i32, ++/*525884*/ OPC_MoveParent, ++/*525885*/ OPC_MoveChild6, ++/*525886*/ OPC_CheckInteger, 1, ++/*525888*/ OPC_CheckType, MVT::i32, ++/*525890*/ OPC_MoveParent, ++/*525891*/ OPC_MoveChild7, ++/*525892*/ OPC_CheckInteger, 1, ++/*525894*/ OPC_CheckType, MVT::i32, ++/*525896*/ OPC_MoveParent, ++/*525897*/ OPC_CheckType, MVT::v8i32, ++/*525899*/ OPC_MoveParent, ++/*525900*/ OPC_CheckType, MVT::v8i32, ++/*525902*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*525904*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 101 ++ // Dst: (XVAVG_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*525912*/ 0, /*End of Scope*/ ++/*525913*/ /*Scope*/ 121, /*->526035*/ ++/*525914*/ OPC_CheckChild0Same, 1, ++/*525916*/ OPC_CheckChild1Same, 0, ++/*525918*/ OPC_MoveParent, ++/*525919*/ OPC_MoveChild1, ++/*525920*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*525923*/ OPC_CheckChild0Integer, 15, ++/*525925*/ OPC_CheckChild0Type, MVT::i32, ++/*525927*/ OPC_CheckChild1Integer, 15, ++/*525929*/ OPC_CheckChild1Type, MVT::i32, ++/*525931*/ OPC_CheckChild2Integer, 15, ++/*525933*/ OPC_CheckChild2Type, MVT::i32, ++/*525935*/ OPC_CheckChild3Integer, 15, ++/*525937*/ OPC_CheckChild3Type, MVT::i32, ++/*525939*/ OPC_CheckChild4Integer, 15, ++/*525941*/ OPC_CheckChild4Type, MVT::i32, ++/*525943*/ OPC_MoveChild5, ++/*525944*/ OPC_CheckInteger, 15, ++/*525946*/ OPC_CheckType, MVT::i32, ++/*525948*/ OPC_MoveParent, ++/*525949*/ OPC_MoveChild6, ++/*525950*/ OPC_CheckInteger, 15, ++/*525952*/ OPC_CheckType, MVT::i32, ++/*525954*/ OPC_MoveParent, ++/*525955*/ OPC_MoveChild7, ++/*525956*/ OPC_CheckInteger, 15, ++/*525958*/ OPC_CheckType, MVT::i32, ++/*525960*/ OPC_MoveParent, ++/*525961*/ OPC_CheckType, MVT::v8i16, ++/*525963*/ OPC_MoveParent, ++/*525964*/ OPC_MoveParent, ++/*525965*/ OPC_MoveParent, ++/*525966*/ OPC_MoveChild1, ++/*525967*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*525970*/ OPC_CheckChild0Integer, 1, ++/*525972*/ OPC_CheckChild0Type, MVT::i32, ++/*525974*/ OPC_CheckChild1Integer, 1, ++/*525976*/ OPC_CheckChild1Type, MVT::i32, ++/*525978*/ OPC_CheckChild2Integer, 1, ++/*525980*/ OPC_CheckChild2Type, MVT::i32, ++/*525982*/ OPC_CheckChild3Integer, 1, ++/*525984*/ OPC_CheckChild3Type, MVT::i32, ++/*525986*/ OPC_CheckChild4Integer, 1, ++/*525988*/ OPC_CheckChild4Type, MVT::i32, ++/*525990*/ OPC_MoveChild5, ++/*525991*/ OPC_CheckInteger, 1, ++/*525993*/ OPC_CheckType, MVT::i32, ++/*525995*/ OPC_MoveParent, ++/*525996*/ OPC_MoveChild6, ++/*525997*/ OPC_CheckInteger, 1, ++/*525999*/ OPC_CheckType, MVT::i32, ++/*526001*/ OPC_MoveParent, ++/*526002*/ OPC_MoveChild7, ++/*526003*/ OPC_CheckInteger, 1, ++/*526005*/ OPC_CheckType, MVT::i32, ++/*526007*/ OPC_MoveParent, ++/*526008*/ OPC_CheckType, MVT::v8i16, ++/*526010*/ OPC_MoveParent, ++/*526011*/ OPC_CheckType, MVT::v8i16, ++/*526013*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*526015*/ OPC_Scope, 8, /*->526025*/ // 2 children in Scope ++/*526017*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 101 ++ // Dst: (VAVG_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*526025*/ /*Scope*/ 8, /*->526034*/ ++/*526026*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 101 ++ // Dst: (VAVG_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*526034*/ 0, /*End of Scope*/ ++/*526035*/ /*Scope*/ 109, /*->526145*/ ++/*526036*/ OPC_CheckChild0Same, 0, ++/*526038*/ OPC_CheckChild1Same, 1, ++/*526040*/ OPC_MoveParent, ++/*526041*/ OPC_MoveChild1, ++/*526042*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*526045*/ OPC_CheckChild0Integer, 15, ++/*526047*/ OPC_CheckChild0Type, MVT::i32, ++/*526049*/ OPC_CheckChild1Integer, 15, ++/*526051*/ OPC_CheckChild1Type, MVT::i32, ++/*526053*/ OPC_CheckChild2Integer, 15, ++/*526055*/ OPC_CheckChild2Type, MVT::i32, ++/*526057*/ OPC_CheckChild3Integer, 15, ++/*526059*/ OPC_CheckChild3Type, MVT::i32, ++/*526061*/ OPC_CheckChild4Integer, 15, ++/*526063*/ OPC_CheckChild4Type, MVT::i32, ++/*526065*/ OPC_MoveChild5, ++/*526066*/ OPC_CheckInteger, 15, ++/*526068*/ OPC_CheckType, MVT::i32, ++/*526070*/ OPC_MoveParent, ++/*526071*/ OPC_MoveChild6, ++/*526072*/ OPC_CheckInteger, 15, ++/*526074*/ OPC_CheckType, MVT::i32, ++/*526076*/ OPC_MoveParent, ++/*526077*/ OPC_MoveChild7, ++/*526078*/ OPC_CheckInteger, 15, ++/*526080*/ OPC_CheckType, MVT::i32, ++/*526082*/ OPC_MoveParent, ++/*526083*/ OPC_CheckType, MVT::v8i16, ++/*526085*/ OPC_MoveParent, ++/*526086*/ OPC_MoveParent, ++/*526087*/ OPC_MoveParent, ++/*526088*/ OPC_MoveChild1, ++/*526089*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*526092*/ OPC_CheckChild0Integer, 1, ++/*526094*/ OPC_CheckChild0Type, MVT::i32, ++/*526096*/ OPC_CheckChild1Integer, 1, ++/*526098*/ OPC_CheckChild1Type, MVT::i32, ++/*526100*/ OPC_CheckChild2Integer, 1, ++/*526102*/ OPC_CheckChild2Type, MVT::i32, ++/*526104*/ OPC_CheckChild3Integer, 1, ++/*526106*/ OPC_CheckChild3Type, MVT::i32, ++/*526108*/ OPC_CheckChild4Integer, 1, ++/*526110*/ OPC_CheckChild4Type, MVT::i32, ++/*526112*/ OPC_MoveChild5, ++/*526113*/ OPC_CheckInteger, 1, ++/*526115*/ OPC_CheckType, MVT::i32, ++/*526117*/ OPC_MoveParent, ++/*526118*/ OPC_MoveChild6, ++/*526119*/ OPC_CheckInteger, 1, ++/*526121*/ OPC_CheckType, MVT::i32, ++/*526123*/ OPC_MoveParent, ++/*526124*/ OPC_MoveChild7, ++/*526125*/ OPC_CheckInteger, 1, ++/*526127*/ OPC_CheckType, MVT::i32, ++/*526129*/ OPC_MoveParent, ++/*526130*/ OPC_CheckType, MVT::v8i16, ++/*526132*/ OPC_MoveParent, ++/*526133*/ OPC_CheckType, MVT::v8i16, ++/*526135*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*526137*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 101 ++ // Dst: (VAVG_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*526145*/ 0, /*End of Scope*/ ++/*526146*/ /*Scope*/ 106|128,1/*234*/, /*->526382*/ ++/*526148*/ OPC_MoveChild1, ++/*526149*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*526152*/ OPC_MoveChild0, ++/*526153*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*526156*/ OPC_Scope, 111, /*->526269*/ // 2 children in Scope ++/*526158*/ OPC_CheckChild0Same, 0, ++/*526160*/ OPC_RecordChild1, // #1 = $b ++/*526161*/ OPC_MoveParent, ++/*526162*/ OPC_MoveChild1, ++/*526163*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*526166*/ OPC_CheckChild0Integer, 15, ++/*526168*/ OPC_CheckChild0Type, MVT::i32, ++/*526170*/ OPC_CheckChild1Integer, 15, ++/*526172*/ OPC_CheckChild1Type, MVT::i32, ++/*526174*/ OPC_CheckChild2Integer, 15, ++/*526176*/ OPC_CheckChild2Type, MVT::i32, ++/*526178*/ OPC_CheckChild3Integer, 15, ++/*526180*/ OPC_CheckChild3Type, MVT::i32, ++/*526182*/ OPC_CheckChild4Integer, 15, ++/*526184*/ OPC_CheckChild4Type, MVT::i32, ++/*526186*/ OPC_MoveChild5, ++/*526187*/ OPC_CheckInteger, 15, ++/*526189*/ OPC_CheckType, MVT::i32, ++/*526191*/ OPC_MoveParent, ++/*526192*/ OPC_MoveChild6, ++/*526193*/ OPC_CheckInteger, 15, ++/*526195*/ OPC_CheckType, MVT::i32, ++/*526197*/ OPC_MoveParent, ++/*526198*/ OPC_MoveChild7, ++/*526199*/ OPC_CheckInteger, 15, ++/*526201*/ OPC_CheckType, MVT::i32, ++/*526203*/ OPC_MoveParent, ++/*526204*/ OPC_CheckType, MVT::v8i16, ++/*526206*/ OPC_MoveParent, ++/*526207*/ OPC_MoveParent, ++/*526208*/ OPC_MoveParent, ++/*526209*/ OPC_CheckChild1Same, 1, ++/*526211*/ OPC_MoveParent, ++/*526212*/ OPC_MoveChild1, ++/*526213*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*526216*/ OPC_CheckChild0Integer, 1, ++/*526218*/ OPC_CheckChild0Type, MVT::i32, ++/*526220*/ OPC_CheckChild1Integer, 1, ++/*526222*/ OPC_CheckChild1Type, MVT::i32, ++/*526224*/ OPC_CheckChild2Integer, 1, ++/*526226*/ OPC_CheckChild2Type, MVT::i32, ++/*526228*/ OPC_CheckChild3Integer, 1, ++/*526230*/ OPC_CheckChild3Type, MVT::i32, ++/*526232*/ OPC_CheckChild4Integer, 1, ++/*526234*/ OPC_CheckChild4Type, MVT::i32, ++/*526236*/ OPC_MoveChild5, ++/*526237*/ OPC_CheckInteger, 1, ++/*526239*/ OPC_CheckType, MVT::i32, ++/*526241*/ OPC_MoveParent, ++/*526242*/ OPC_MoveChild6, ++/*526243*/ OPC_CheckInteger, 1, ++/*526245*/ OPC_CheckType, MVT::i32, ++/*526247*/ OPC_MoveParent, ++/*526248*/ OPC_MoveChild7, ++/*526249*/ OPC_CheckInteger, 1, ++/*526251*/ OPC_CheckType, MVT::i32, ++/*526253*/ OPC_MoveParent, ++/*526254*/ OPC_CheckType, MVT::v8i16, ++/*526256*/ OPC_MoveParent, ++/*526257*/ OPC_CheckType, MVT::v8i16, ++/*526259*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*526261*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 101 ++ // Dst: (VAVG_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*526269*/ /*Scope*/ 111, /*->526381*/ ++/*526270*/ OPC_RecordChild0, // #1 = $b ++/*526271*/ OPC_CheckChild1Same, 0, ++/*526273*/ OPC_MoveParent, ++/*526274*/ OPC_MoveChild1, ++/*526275*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*526278*/ OPC_CheckChild0Integer, 15, ++/*526280*/ OPC_CheckChild0Type, MVT::i32, ++/*526282*/ OPC_CheckChild1Integer, 15, ++/*526284*/ OPC_CheckChild1Type, MVT::i32, ++/*526286*/ OPC_CheckChild2Integer, 15, ++/*526288*/ OPC_CheckChild2Type, MVT::i32, ++/*526290*/ OPC_CheckChild3Integer, 15, ++/*526292*/ OPC_CheckChild3Type, MVT::i32, ++/*526294*/ OPC_CheckChild4Integer, 15, ++/*526296*/ OPC_CheckChild4Type, MVT::i32, ++/*526298*/ OPC_MoveChild5, ++/*526299*/ OPC_CheckInteger, 15, ++/*526301*/ OPC_CheckType, MVT::i32, ++/*526303*/ OPC_MoveParent, ++/*526304*/ OPC_MoveChild6, ++/*526305*/ OPC_CheckInteger, 15, ++/*526307*/ OPC_CheckType, MVT::i32, ++/*526309*/ OPC_MoveParent, ++/*526310*/ OPC_MoveChild7, ++/*526311*/ OPC_CheckInteger, 15, ++/*526313*/ OPC_CheckType, MVT::i32, ++/*526315*/ OPC_MoveParent, ++/*526316*/ OPC_CheckType, MVT::v8i16, ++/*526318*/ OPC_MoveParent, ++/*526319*/ OPC_MoveParent, ++/*526320*/ OPC_MoveParent, ++/*526321*/ OPC_CheckChild1Same, 1, ++/*526323*/ OPC_MoveParent, ++/*526324*/ OPC_MoveChild1, ++/*526325*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*526328*/ OPC_CheckChild0Integer, 1, ++/*526330*/ OPC_CheckChild0Type, MVT::i32, ++/*526332*/ OPC_CheckChild1Integer, 1, ++/*526334*/ OPC_CheckChild1Type, MVT::i32, ++/*526336*/ OPC_CheckChild2Integer, 1, ++/*526338*/ OPC_CheckChild2Type, MVT::i32, ++/*526340*/ OPC_CheckChild3Integer, 1, ++/*526342*/ OPC_CheckChild3Type, MVT::i32, ++/*526344*/ OPC_CheckChild4Integer, 1, ++/*526346*/ OPC_CheckChild4Type, MVT::i32, ++/*526348*/ OPC_MoveChild5, ++/*526349*/ OPC_CheckInteger, 1, ++/*526351*/ OPC_CheckType, MVT::i32, ++/*526353*/ OPC_MoveParent, ++/*526354*/ OPC_MoveChild6, ++/*526355*/ OPC_CheckInteger, 1, ++/*526357*/ OPC_CheckType, MVT::i32, ++/*526359*/ OPC_MoveParent, ++/*526360*/ OPC_MoveChild7, ++/*526361*/ OPC_CheckInteger, 1, ++/*526363*/ OPC_CheckType, MVT::i32, ++/*526365*/ OPC_MoveParent, ++/*526366*/ OPC_CheckType, MVT::v8i16, ++/*526368*/ OPC_MoveParent, ++/*526369*/ OPC_CheckType, MVT::v8i16, ++/*526371*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*526373*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 101 ++ // Dst: (VAVG_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*526381*/ 0, /*End of Scope*/ ++/*526382*/ 0, /*End of Scope*/ ++/*526383*/ /*Scope*/ 59|128,1/*187*/, /*->526572*/ ++/*526385*/ OPC_MoveChild0, ++/*526386*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*526389*/ OPC_MoveChild0, ++/*526390*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*526393*/ OPC_RecordChild0, // #0 = $a ++/*526394*/ OPC_RecordChild1, // #1 = $b ++/*526395*/ OPC_MoveParent, ++/*526396*/ OPC_MoveChild1, ++/*526397*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*526400*/ OPC_CheckChild0Integer, 15, ++/*526402*/ OPC_CheckChild0Type, MVT::i32, ++/*526404*/ OPC_CheckChild1Integer, 15, ++/*526406*/ OPC_CheckChild1Type, MVT::i32, ++/*526408*/ OPC_CheckChild2Integer, 15, ++/*526410*/ OPC_CheckChild2Type, MVT::i32, ++/*526412*/ OPC_CheckChild3Integer, 15, ++/*526414*/ OPC_CheckChild3Type, MVT::i32, ++/*526416*/ OPC_CheckChild4Integer, 15, ++/*526418*/ OPC_CheckChild4Type, MVT::i32, ++/*526420*/ OPC_MoveChild5, ++/*526421*/ OPC_CheckInteger, 15, ++/*526423*/ OPC_CheckType, MVT::i32, ++/*526425*/ OPC_MoveParent, ++/*526426*/ OPC_MoveChild6, ++/*526427*/ OPC_CheckInteger, 15, ++/*526429*/ OPC_CheckType, MVT::i32, ++/*526431*/ OPC_MoveParent, ++/*526432*/ OPC_MoveChild7, ++/*526433*/ OPC_CheckInteger, 15, ++/*526435*/ OPC_CheckType, MVT::i32, ++/*526437*/ OPC_MoveParent, ++/*526438*/ OPC_CheckType, MVT::v8i16, ++/*526440*/ OPC_MoveParent, ++/*526441*/ OPC_MoveParent, ++/*526442*/ OPC_Scope, 63, /*->526507*/ // 2 children in Scope ++/*526444*/ OPC_CheckChild1Same, 0, ++/*526446*/ OPC_MoveParent, ++/*526447*/ OPC_CheckChild1Same, 1, ++/*526449*/ OPC_MoveParent, ++/*526450*/ OPC_MoveChild1, ++/*526451*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*526454*/ OPC_CheckChild0Integer, 1, ++/*526456*/ OPC_CheckChild0Type, MVT::i32, ++/*526458*/ OPC_CheckChild1Integer, 1, ++/*526460*/ OPC_CheckChild1Type, MVT::i32, ++/*526462*/ OPC_CheckChild2Integer, 1, ++/*526464*/ OPC_CheckChild2Type, MVT::i32, ++/*526466*/ OPC_CheckChild3Integer, 1, ++/*526468*/ OPC_CheckChild3Type, MVT::i32, ++/*526470*/ OPC_CheckChild4Integer, 1, ++/*526472*/ OPC_CheckChild4Type, MVT::i32, ++/*526474*/ OPC_MoveChild5, ++/*526475*/ OPC_CheckInteger, 1, ++/*526477*/ OPC_CheckType, MVT::i32, ++/*526479*/ OPC_MoveParent, ++/*526480*/ OPC_MoveChild6, ++/*526481*/ OPC_CheckInteger, 1, ++/*526483*/ OPC_CheckType, MVT::i32, ++/*526485*/ OPC_MoveParent, ++/*526486*/ OPC_MoveChild7, ++/*526487*/ OPC_CheckInteger, 1, ++/*526489*/ OPC_CheckType, MVT::i32, ++/*526491*/ OPC_MoveParent, ++/*526492*/ OPC_CheckType, MVT::v8i16, ++/*526494*/ OPC_MoveParent, ++/*526495*/ OPC_CheckType, MVT::v8i16, ++/*526497*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*526499*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$a), LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 101 ++ // Dst: (VAVG_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*526507*/ /*Scope*/ 63, /*->526571*/ ++/*526508*/ OPC_CheckChild1Same, 1, ++/*526510*/ OPC_MoveParent, ++/*526511*/ OPC_CheckChild1Same, 0, ++/*526513*/ OPC_MoveParent, ++/*526514*/ OPC_MoveChild1, ++/*526515*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*526518*/ OPC_CheckChild0Integer, 1, ++/*526520*/ OPC_CheckChild0Type, MVT::i32, ++/*526522*/ OPC_CheckChild1Integer, 1, ++/*526524*/ OPC_CheckChild1Type, MVT::i32, ++/*526526*/ OPC_CheckChild2Integer, 1, ++/*526528*/ OPC_CheckChild2Type, MVT::i32, ++/*526530*/ OPC_CheckChild3Integer, 1, ++/*526532*/ OPC_CheckChild3Type, MVT::i32, ++/*526534*/ OPC_CheckChild4Integer, 1, ++/*526536*/ OPC_CheckChild4Type, MVT::i32, ++/*526538*/ OPC_MoveChild5, ++/*526539*/ OPC_CheckInteger, 1, ++/*526541*/ OPC_CheckType, MVT::i32, ++/*526543*/ OPC_MoveParent, ++/*526544*/ OPC_MoveChild6, ++/*526545*/ OPC_CheckInteger, 1, ++/*526547*/ OPC_CheckType, MVT::i32, ++/*526549*/ OPC_MoveParent, ++/*526550*/ OPC_MoveChild7, ++/*526551*/ OPC_CheckInteger, 1, ++/*526553*/ OPC_CheckType, MVT::i32, ++/*526555*/ OPC_MoveParent, ++/*526556*/ OPC_CheckType, MVT::v8i16, ++/*526558*/ OPC_MoveParent, ++/*526559*/ OPC_CheckType, MVT::v8i16, ++/*526561*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*526563*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$a), LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 101 ++ // Dst: (VAVG_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*526571*/ 0, /*End of Scope*/ ++/*526572*/ /*Scope*/ 107|128,1/*235*/, /*->526809*/ ++/*526574*/ OPC_RecordChild0, // #0 = $b ++/*526575*/ OPC_MoveChild1, ++/*526576*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*526579*/ OPC_MoveChild0, ++/*526580*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*526583*/ OPC_Scope, 111, /*->526696*/ // 2 children in Scope ++/*526585*/ OPC_RecordChild0, // #1 = $a ++/*526586*/ OPC_CheckChild1Same, 0, ++/*526588*/ OPC_MoveParent, ++/*526589*/ OPC_MoveChild1, ++/*526590*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*526593*/ OPC_CheckChild0Integer, 15, ++/*526595*/ OPC_CheckChild0Type, MVT::i32, ++/*526597*/ OPC_CheckChild1Integer, 15, ++/*526599*/ OPC_CheckChild1Type, MVT::i32, ++/*526601*/ OPC_CheckChild2Integer, 15, ++/*526603*/ OPC_CheckChild2Type, MVT::i32, ++/*526605*/ OPC_CheckChild3Integer, 15, ++/*526607*/ OPC_CheckChild3Type, MVT::i32, ++/*526609*/ OPC_CheckChild4Integer, 15, ++/*526611*/ OPC_CheckChild4Type, MVT::i32, ++/*526613*/ OPC_MoveChild5, ++/*526614*/ OPC_CheckInteger, 15, ++/*526616*/ OPC_CheckType, MVT::i32, ++/*526618*/ OPC_MoveParent, ++/*526619*/ OPC_MoveChild6, ++/*526620*/ OPC_CheckInteger, 15, ++/*526622*/ OPC_CheckType, MVT::i32, ++/*526624*/ OPC_MoveParent, ++/*526625*/ OPC_MoveChild7, ++/*526626*/ OPC_CheckInteger, 15, ++/*526628*/ OPC_CheckType, MVT::i32, ++/*526630*/ OPC_MoveParent, ++/*526631*/ OPC_CheckType, MVT::v8i16, ++/*526633*/ OPC_MoveParent, ++/*526634*/ OPC_MoveParent, ++/*526635*/ OPC_MoveParent, ++/*526636*/ OPC_CheckChild1Same, 1, ++/*526638*/ OPC_MoveParent, ++/*526639*/ OPC_MoveChild1, ++/*526640*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*526643*/ OPC_CheckChild0Integer, 1, ++/*526645*/ OPC_CheckChild0Type, MVT::i32, ++/*526647*/ OPC_CheckChild1Integer, 1, ++/*526649*/ OPC_CheckChild1Type, MVT::i32, ++/*526651*/ OPC_CheckChild2Integer, 1, ++/*526653*/ OPC_CheckChild2Type, MVT::i32, ++/*526655*/ OPC_CheckChild3Integer, 1, ++/*526657*/ OPC_CheckChild3Type, MVT::i32, ++/*526659*/ OPC_CheckChild4Integer, 1, ++/*526661*/ OPC_CheckChild4Type, MVT::i32, ++/*526663*/ OPC_MoveChild5, ++/*526664*/ OPC_CheckInteger, 1, ++/*526666*/ OPC_CheckType, MVT::i32, ++/*526668*/ OPC_MoveParent, ++/*526669*/ OPC_MoveChild6, ++/*526670*/ OPC_CheckInteger, 1, ++/*526672*/ OPC_CheckType, MVT::i32, ++/*526674*/ OPC_MoveParent, ++/*526675*/ OPC_MoveChild7, ++/*526676*/ OPC_CheckInteger, 1, ++/*526678*/ OPC_CheckType, MVT::i32, ++/*526680*/ OPC_MoveParent, ++/*526681*/ OPC_CheckType, MVT::v8i16, ++/*526683*/ OPC_MoveParent, ++/*526684*/ OPC_CheckType, MVT::v8i16, ++/*526686*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*526688*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 101 ++ // Dst: (VAVG_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*526696*/ /*Scope*/ 111, /*->526808*/ ++/*526697*/ OPC_CheckChild0Same, 0, ++/*526699*/ OPC_RecordChild1, // #1 = $a ++/*526700*/ OPC_MoveParent, ++/*526701*/ OPC_MoveChild1, ++/*526702*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*526705*/ OPC_CheckChild0Integer, 15, ++/*526707*/ OPC_CheckChild0Type, MVT::i32, ++/*526709*/ OPC_CheckChild1Integer, 15, ++/*526711*/ OPC_CheckChild1Type, MVT::i32, ++/*526713*/ OPC_CheckChild2Integer, 15, ++/*526715*/ OPC_CheckChild2Type, MVT::i32, ++/*526717*/ OPC_CheckChild3Integer, 15, ++/*526719*/ OPC_CheckChild3Type, MVT::i32, ++/*526721*/ OPC_CheckChild4Integer, 15, ++/*526723*/ OPC_CheckChild4Type, MVT::i32, ++/*526725*/ OPC_MoveChild5, ++/*526726*/ OPC_CheckInteger, 15, ++/*526728*/ OPC_CheckType, MVT::i32, ++/*526730*/ OPC_MoveParent, ++/*526731*/ OPC_MoveChild6, ++/*526732*/ OPC_CheckInteger, 15, ++/*526734*/ OPC_CheckType, MVT::i32, ++/*526736*/ OPC_MoveParent, ++/*526737*/ OPC_MoveChild7, ++/*526738*/ OPC_CheckInteger, 15, ++/*526740*/ OPC_CheckType, MVT::i32, ++/*526742*/ OPC_MoveParent, ++/*526743*/ OPC_CheckType, MVT::v8i16, ++/*526745*/ OPC_MoveParent, ++/*526746*/ OPC_MoveParent, ++/*526747*/ OPC_MoveParent, ++/*526748*/ OPC_CheckChild1Same, 1, ++/*526750*/ OPC_MoveParent, ++/*526751*/ OPC_MoveChild1, ++/*526752*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*526755*/ OPC_CheckChild0Integer, 1, ++/*526757*/ OPC_CheckChild0Type, MVT::i32, ++/*526759*/ OPC_CheckChild1Integer, 1, ++/*526761*/ OPC_CheckChild1Type, MVT::i32, ++/*526763*/ OPC_CheckChild2Integer, 1, ++/*526765*/ OPC_CheckChild2Type, MVT::i32, ++/*526767*/ OPC_CheckChild3Integer, 1, ++/*526769*/ OPC_CheckChild3Type, MVT::i32, ++/*526771*/ OPC_CheckChild4Integer, 1, ++/*526773*/ OPC_CheckChild4Type, MVT::i32, ++/*526775*/ OPC_MoveChild5, ++/*526776*/ OPC_CheckInteger, 1, ++/*526778*/ OPC_CheckType, MVT::i32, ++/*526780*/ OPC_MoveParent, ++/*526781*/ OPC_MoveChild6, ++/*526782*/ OPC_CheckInteger, 1, ++/*526784*/ OPC_CheckType, MVT::i32, ++/*526786*/ OPC_MoveParent, ++/*526787*/ OPC_MoveChild7, ++/*526788*/ OPC_CheckInteger, 1, ++/*526790*/ OPC_CheckType, MVT::i32, ++/*526792*/ OPC_MoveParent, ++/*526793*/ OPC_CheckType, MVT::v8i16, ++/*526795*/ OPC_MoveParent, ++/*526796*/ OPC_CheckType, MVT::v8i16, ++/*526798*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*526800*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }))), LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 101 ++ // Dst: (VAVG_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*526808*/ 0, /*End of Scope*/ ++/*526809*/ /*Scope*/ 59|128,1/*187*/, /*->526998*/ ++/*526811*/ OPC_MoveChild0, ++/*526812*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*526815*/ OPC_MoveChild0, ++/*526816*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*526819*/ OPC_RecordChild0, // #0 = $a ++/*526820*/ OPC_RecordChild1, // #1 = $b ++/*526821*/ OPC_MoveParent, ++/*526822*/ OPC_MoveChild1, ++/*526823*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*526826*/ OPC_CheckChild0Integer, 15, ++/*526828*/ OPC_CheckChild0Type, MVT::i32, ++/*526830*/ OPC_CheckChild1Integer, 15, ++/*526832*/ OPC_CheckChild1Type, MVT::i32, ++/*526834*/ OPC_CheckChild2Integer, 15, ++/*526836*/ OPC_CheckChild2Type, MVT::i32, ++/*526838*/ OPC_CheckChild3Integer, 15, ++/*526840*/ OPC_CheckChild3Type, MVT::i32, ++/*526842*/ OPC_CheckChild4Integer, 15, ++/*526844*/ OPC_CheckChild4Type, MVT::i32, ++/*526846*/ OPC_MoveChild5, ++/*526847*/ OPC_CheckInteger, 15, ++/*526849*/ OPC_CheckType, MVT::i32, ++/*526851*/ OPC_MoveParent, ++/*526852*/ OPC_MoveChild6, ++/*526853*/ OPC_CheckInteger, 15, ++/*526855*/ OPC_CheckType, MVT::i32, ++/*526857*/ OPC_MoveParent, ++/*526858*/ OPC_MoveChild7, ++/*526859*/ OPC_CheckInteger, 15, ++/*526861*/ OPC_CheckType, MVT::i32, ++/*526863*/ OPC_MoveParent, ++/*526864*/ OPC_CheckType, MVT::v8i16, ++/*526866*/ OPC_MoveParent, ++/*526867*/ OPC_MoveParent, ++/*526868*/ OPC_Scope, 63, /*->526933*/ // 2 children in Scope ++/*526870*/ OPC_CheckChild1Same, 1, ++/*526872*/ OPC_MoveParent, ++/*526873*/ OPC_CheckChild1Same, 0, ++/*526875*/ OPC_MoveParent, ++/*526876*/ OPC_MoveChild1, ++/*526877*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*526880*/ OPC_CheckChild0Integer, 1, ++/*526882*/ OPC_CheckChild0Type, MVT::i32, ++/*526884*/ OPC_CheckChild1Integer, 1, ++/*526886*/ OPC_CheckChild1Type, MVT::i32, ++/*526888*/ OPC_CheckChild2Integer, 1, ++/*526890*/ OPC_CheckChild2Type, MVT::i32, ++/*526892*/ OPC_CheckChild3Integer, 1, ++/*526894*/ OPC_CheckChild3Type, MVT::i32, ++/*526896*/ OPC_CheckChild4Integer, 1, ++/*526898*/ OPC_CheckChild4Type, MVT::i32, ++/*526900*/ OPC_MoveChild5, ++/*526901*/ OPC_CheckInteger, 1, ++/*526903*/ OPC_CheckType, MVT::i32, ++/*526905*/ OPC_MoveParent, ++/*526906*/ OPC_MoveChild6, ++/*526907*/ OPC_CheckInteger, 1, ++/*526909*/ OPC_CheckType, MVT::i32, ++/*526911*/ OPC_MoveParent, ++/*526912*/ OPC_MoveChild7, ++/*526913*/ OPC_CheckInteger, 1, ++/*526915*/ OPC_CheckType, MVT::i32, ++/*526917*/ OPC_MoveParent, ++/*526918*/ OPC_CheckType, MVT::v8i16, ++/*526920*/ OPC_MoveParent, ++/*526921*/ OPC_CheckType, MVT::v8i16, ++/*526923*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*526925*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$b), LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 101 ++ // Dst: (VAVG_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*526933*/ /*Scope*/ 63, /*->526997*/ ++/*526934*/ OPC_CheckChild1Same, 0, ++/*526936*/ OPC_MoveParent, ++/*526937*/ OPC_CheckChild1Same, 1, ++/*526939*/ OPC_MoveParent, ++/*526940*/ OPC_MoveChild1, ++/*526941*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*526944*/ OPC_CheckChild0Integer, 1, ++/*526946*/ OPC_CheckChild0Type, MVT::i32, ++/*526948*/ OPC_CheckChild1Integer, 1, ++/*526950*/ OPC_CheckChild1Type, MVT::i32, ++/*526952*/ OPC_CheckChild2Integer, 1, ++/*526954*/ OPC_CheckChild2Type, MVT::i32, ++/*526956*/ OPC_CheckChild3Integer, 1, ++/*526958*/ OPC_CheckChild3Type, MVT::i32, ++/*526960*/ OPC_CheckChild4Integer, 1, ++/*526962*/ OPC_CheckChild4Type, MVT::i32, ++/*526964*/ OPC_MoveChild5, ++/*526965*/ OPC_CheckInteger, 1, ++/*526967*/ OPC_CheckType, MVT::i32, ++/*526969*/ OPC_MoveParent, ++/*526970*/ OPC_MoveChild6, ++/*526971*/ OPC_CheckInteger, 1, ++/*526973*/ OPC_CheckType, MVT::i32, ++/*526975*/ OPC_MoveParent, ++/*526976*/ OPC_MoveChild7, ++/*526977*/ OPC_CheckInteger, 1, ++/*526979*/ OPC_CheckType, MVT::i32, ++/*526981*/ OPC_MoveParent, ++/*526982*/ OPC_CheckType, MVT::v8i16, ++/*526984*/ OPC_MoveParent, ++/*526985*/ OPC_CheckType, MVT::v8i16, ++/*526987*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*526989*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$b), LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 101 ++ // Dst: (VAVG_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*526997*/ 0, /*End of Scope*/ ++/*526998*/ 0, /*End of Scope*/ ++/*526999*/ /*SwitchOpcode*/ 60|128,28|128,1/*20028*/, TARGET_VAL(ISD::SRL),// ->547032 ++/*527004*/ OPC_MoveChild0, ++/*527005*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*527008*/ OPC_Scope, 75|128,38/*4939*/, /*->531950*/ // 6 children in Scope ++/*527011*/ OPC_MoveChild0, ++/*527012*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*527015*/ OPC_Scope, 61|128,6/*829*/, /*->527847*/ // 4 children in Scope ++/*527018*/ OPC_MoveChild0, ++/*527019*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*527022*/ OPC_CheckChild0Integer, 1, ++/*527024*/ OPC_CheckChild0Type, MVT::i32, ++/*527026*/ OPC_CheckChild1Integer, 1, ++/*527028*/ OPC_CheckChild1Type, MVT::i32, ++/*527030*/ OPC_CheckChild2Integer, 1, ++/*527032*/ OPC_CheckChild2Type, MVT::i32, ++/*527034*/ OPC_CheckChild3Integer, 1, ++/*527036*/ OPC_CheckChild3Type, MVT::i32, ++/*527038*/ OPC_MoveParent, ++/*527039*/ OPC_RecordChild1, // #0 = $a ++/*527040*/ OPC_MoveParent, ++/*527041*/ OPC_RecordChild1, // #1 = $b ++/*527042*/ OPC_MoveParent, ++/*527043*/ OPC_MoveChild1, ++/*527044*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*527047*/ OPC_CheckChild0Integer, 31, ++/*527049*/ OPC_CheckChild0Type, MVT::i32, ++/*527051*/ OPC_CheckChild1Integer, 31, ++/*527053*/ OPC_CheckChild1Type, MVT::i32, ++/*527055*/ OPC_CheckChild2Integer, 31, ++/*527057*/ OPC_CheckChild2Type, MVT::i32, ++/*527059*/ OPC_CheckChild3Integer, 31, ++/*527061*/ OPC_CheckChild3Type, MVT::i32, ++/*527063*/ OPC_CheckType, MVT::v4i32, ++/*527065*/ OPC_MoveParent, ++/*527066*/ OPC_MoveParent, ++/*527067*/ OPC_MoveChild1, ++/*527068*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*527071*/ OPC_Scope, 6|128,3/*390*/, /*->527464*/ // 4 children in Scope ++/*527074*/ OPC_MoveChild0, ++/*527075*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*527078*/ OPC_Scope, 63, /*->527143*/ // 6 children in Scope ++/*527080*/ OPC_MoveChild0, ++/*527081*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*527084*/ OPC_CheckChild0Integer, 1, ++/*527086*/ OPC_CheckChild0Type, MVT::i32, ++/*527088*/ OPC_CheckChild1Integer, 1, ++/*527090*/ OPC_CheckChild1Type, MVT::i32, ++/*527092*/ OPC_CheckChild2Integer, 1, ++/*527094*/ OPC_CheckChild2Type, MVT::i32, ++/*527096*/ OPC_CheckChild3Integer, 1, ++/*527098*/ OPC_CheckChild3Type, MVT::i32, ++/*527100*/ OPC_MoveParent, ++/*527101*/ OPC_CheckChild1Same, 0, ++/*527103*/ OPC_MoveParent, ++/*527104*/ OPC_CheckChild1Same, 1, ++/*527106*/ OPC_MoveParent, ++/*527107*/ OPC_MoveParent, ++/*527108*/ OPC_MoveChild1, ++/*527109*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*527112*/ OPC_CheckChild0Integer, 1, ++/*527114*/ OPC_CheckChild0Type, MVT::i32, ++/*527116*/ OPC_CheckChild1Integer, 1, ++/*527118*/ OPC_CheckChild1Type, MVT::i32, ++/*527120*/ OPC_CheckChild2Integer, 1, ++/*527122*/ OPC_CheckChild2Type, MVT::i32, ++/*527124*/ OPC_CheckChild3Integer, 1, ++/*527126*/ OPC_CheckChild3Type, MVT::i32, ++/*527128*/ OPC_CheckType, MVT::v4i32, ++/*527130*/ OPC_MoveParent, ++/*527131*/ OPC_CheckType, MVT::v4i32, ++/*527133*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*527135*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a), LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a), LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*527143*/ /*Scope*/ 63, /*->527207*/ ++/*527144*/ OPC_CheckChild0Same, 0, ++/*527146*/ OPC_MoveChild1, ++/*527147*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*527150*/ OPC_CheckChild0Integer, 1, ++/*527152*/ OPC_CheckChild0Type, MVT::i32, ++/*527154*/ OPC_CheckChild1Integer, 1, ++/*527156*/ OPC_CheckChild1Type, MVT::i32, ++/*527158*/ OPC_CheckChild2Integer, 1, ++/*527160*/ OPC_CheckChild2Type, MVT::i32, ++/*527162*/ OPC_CheckChild3Integer, 1, ++/*527164*/ OPC_CheckChild3Type, MVT::i32, ++/*527166*/ OPC_MoveParent, ++/*527167*/ OPC_MoveParent, ++/*527168*/ OPC_CheckChild1Same, 1, ++/*527170*/ OPC_MoveParent, ++/*527171*/ OPC_MoveParent, ++/*527172*/ OPC_MoveChild1, ++/*527173*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*527176*/ OPC_CheckChild0Integer, 1, ++/*527178*/ OPC_CheckChild0Type, MVT::i32, ++/*527180*/ OPC_CheckChild1Integer, 1, ++/*527182*/ OPC_CheckChild1Type, MVT::i32, ++/*527184*/ OPC_CheckChild2Integer, 1, ++/*527186*/ OPC_CheckChild2Type, MVT::i32, ++/*527188*/ OPC_CheckChild3Integer, 1, ++/*527190*/ OPC_CheckChild3Type, MVT::i32, ++/*527192*/ OPC_CheckType, MVT::v4i32, ++/*527194*/ OPC_MoveParent, ++/*527195*/ OPC_CheckType, MVT::v4i32, ++/*527197*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*527199*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a), LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*527207*/ /*Scope*/ 63, /*->527271*/ ++/*527208*/ OPC_MoveChild0, ++/*527209*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*527212*/ OPC_CheckChild0Integer, 1, ++/*527214*/ OPC_CheckChild0Type, MVT::i32, ++/*527216*/ OPC_CheckChild1Integer, 1, ++/*527218*/ OPC_CheckChild1Type, MVT::i32, ++/*527220*/ OPC_CheckChild2Integer, 1, ++/*527222*/ OPC_CheckChild2Type, MVT::i32, ++/*527224*/ OPC_CheckChild3Integer, 1, ++/*527226*/ OPC_CheckChild3Type, MVT::i32, ++/*527228*/ OPC_MoveParent, ++/*527229*/ OPC_CheckChild1Same, 1, ++/*527231*/ OPC_MoveParent, ++/*527232*/ OPC_CheckChild1Same, 0, ++/*527234*/ OPC_MoveParent, ++/*527235*/ OPC_MoveParent, ++/*527236*/ OPC_MoveChild1, ++/*527237*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*527240*/ OPC_CheckChild0Integer, 1, ++/*527242*/ OPC_CheckChild0Type, MVT::i32, ++/*527244*/ OPC_CheckChild1Integer, 1, ++/*527246*/ OPC_CheckChild1Type, MVT::i32, ++/*527248*/ OPC_CheckChild2Integer, 1, ++/*527250*/ OPC_CheckChild2Type, MVT::i32, ++/*527252*/ OPC_CheckChild3Integer, 1, ++/*527254*/ OPC_CheckChild3Type, MVT::i32, ++/*527256*/ OPC_CheckType, MVT::v4i32, ++/*527258*/ OPC_MoveParent, ++/*527259*/ OPC_CheckType, MVT::v4i32, ++/*527261*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*527263*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a), LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b), LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*527271*/ /*Scope*/ 63, /*->527335*/ ++/*527272*/ OPC_CheckChild0Same, 1, ++/*527274*/ OPC_MoveChild1, ++/*527275*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*527278*/ OPC_CheckChild0Integer, 1, ++/*527280*/ OPC_CheckChild0Type, MVT::i32, ++/*527282*/ OPC_CheckChild1Integer, 1, ++/*527284*/ OPC_CheckChild1Type, MVT::i32, ++/*527286*/ OPC_CheckChild2Integer, 1, ++/*527288*/ OPC_CheckChild2Type, MVT::i32, ++/*527290*/ OPC_CheckChild3Integer, 1, ++/*527292*/ OPC_CheckChild3Type, MVT::i32, ++/*527294*/ OPC_MoveParent, ++/*527295*/ OPC_MoveParent, ++/*527296*/ OPC_CheckChild1Same, 0, ++/*527298*/ OPC_MoveParent, ++/*527299*/ OPC_MoveParent, ++/*527300*/ OPC_MoveChild1, ++/*527301*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*527304*/ OPC_CheckChild0Integer, 1, ++/*527306*/ OPC_CheckChild0Type, MVT::i32, ++/*527308*/ OPC_CheckChild1Integer, 1, ++/*527310*/ OPC_CheckChild1Type, MVT::i32, ++/*527312*/ OPC_CheckChild2Integer, 1, ++/*527314*/ OPC_CheckChild2Type, MVT::i32, ++/*527316*/ OPC_CheckChild3Integer, 1, ++/*527318*/ OPC_CheckChild3Type, MVT::i32, ++/*527320*/ OPC_CheckType, MVT::v4i32, ++/*527322*/ OPC_MoveParent, ++/*527323*/ OPC_CheckType, MVT::v4i32, ++/*527325*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*527327*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a), LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*527335*/ /*Scope*/ 63, /*->527399*/ ++/*527336*/ OPC_CheckChild0Same, 0, ++/*527338*/ OPC_CheckChild1Same, 1, ++/*527340*/ OPC_MoveParent, ++/*527341*/ OPC_MoveChild1, ++/*527342*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*527345*/ OPC_CheckChild0Integer, 1, ++/*527347*/ OPC_CheckChild0Type, MVT::i32, ++/*527349*/ OPC_CheckChild1Integer, 1, ++/*527351*/ OPC_CheckChild1Type, MVT::i32, ++/*527353*/ OPC_CheckChild2Integer, 1, ++/*527355*/ OPC_CheckChild2Type, MVT::i32, ++/*527357*/ OPC_CheckChild3Integer, 1, ++/*527359*/ OPC_CheckChild3Type, MVT::i32, ++/*527361*/ OPC_MoveParent, ++/*527362*/ OPC_MoveParent, ++/*527363*/ OPC_MoveParent, ++/*527364*/ OPC_MoveChild1, ++/*527365*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*527368*/ OPC_CheckChild0Integer, 1, ++/*527370*/ OPC_CheckChild0Type, MVT::i32, ++/*527372*/ OPC_CheckChild1Integer, 1, ++/*527374*/ OPC_CheckChild1Type, MVT::i32, ++/*527376*/ OPC_CheckChild2Integer, 1, ++/*527378*/ OPC_CheckChild2Type, MVT::i32, ++/*527380*/ OPC_CheckChild3Integer, 1, ++/*527382*/ OPC_CheckChild3Type, MVT::i32, ++/*527384*/ OPC_CheckType, MVT::v4i32, ++/*527386*/ OPC_MoveParent, ++/*527387*/ OPC_CheckType, MVT::v4i32, ++/*527389*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*527391*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a), LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*527399*/ /*Scope*/ 63, /*->527463*/ ++/*527400*/ OPC_CheckChild0Same, 1, ++/*527402*/ OPC_CheckChild1Same, 0, ++/*527404*/ OPC_MoveParent, ++/*527405*/ OPC_MoveChild1, ++/*527406*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*527409*/ OPC_CheckChild0Integer, 1, ++/*527411*/ OPC_CheckChild0Type, MVT::i32, ++/*527413*/ OPC_CheckChild1Integer, 1, ++/*527415*/ OPC_CheckChild1Type, MVT::i32, ++/*527417*/ OPC_CheckChild2Integer, 1, ++/*527419*/ OPC_CheckChild2Type, MVT::i32, ++/*527421*/ OPC_CheckChild3Integer, 1, ++/*527423*/ OPC_CheckChild3Type, MVT::i32, ++/*527425*/ OPC_MoveParent, ++/*527426*/ OPC_MoveParent, ++/*527427*/ OPC_MoveParent, ++/*527428*/ OPC_MoveChild1, ++/*527429*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*527432*/ OPC_CheckChild0Integer, 1, ++/*527434*/ OPC_CheckChild0Type, MVT::i32, ++/*527436*/ OPC_CheckChild1Integer, 1, ++/*527438*/ OPC_CheckChild1Type, MVT::i32, ++/*527440*/ OPC_CheckChild2Integer, 1, ++/*527442*/ OPC_CheckChild2Type, MVT::i32, ++/*527444*/ OPC_CheckChild3Integer, 1, ++/*527446*/ OPC_CheckChild3Type, MVT::i32, ++/*527448*/ OPC_CheckType, MVT::v4i32, ++/*527450*/ OPC_MoveParent, ++/*527451*/ OPC_CheckType, MVT::v4i32, ++/*527453*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*527455*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a), LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*527463*/ 0, /*End of Scope*/ ++/*527464*/ /*Scope*/ 4|128,1/*132*/, /*->527598*/ ++/*527466*/ OPC_CheckChild0Same, 1, ++/*527468*/ OPC_MoveChild1, ++/*527469*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*527472*/ OPC_Scope, 61, /*->527535*/ // 2 children in Scope ++/*527474*/ OPC_MoveChild0, ++/*527475*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*527478*/ OPC_CheckChild0Integer, 1, ++/*527480*/ OPC_CheckChild0Type, MVT::i32, ++/*527482*/ OPC_CheckChild1Integer, 1, ++/*527484*/ OPC_CheckChild1Type, MVT::i32, ++/*527486*/ OPC_CheckChild2Integer, 1, ++/*527488*/ OPC_CheckChild2Type, MVT::i32, ++/*527490*/ OPC_CheckChild3Integer, 1, ++/*527492*/ OPC_CheckChild3Type, MVT::i32, ++/*527494*/ OPC_MoveParent, ++/*527495*/ OPC_CheckChild1Same, 0, ++/*527497*/ OPC_MoveParent, ++/*527498*/ OPC_MoveParent, ++/*527499*/ OPC_MoveParent, ++/*527500*/ OPC_MoveChild1, ++/*527501*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*527504*/ OPC_CheckChild0Integer, 1, ++/*527506*/ OPC_CheckChild0Type, MVT::i32, ++/*527508*/ OPC_CheckChild1Integer, 1, ++/*527510*/ OPC_CheckChild1Type, MVT::i32, ++/*527512*/ OPC_CheckChild2Integer, 1, ++/*527514*/ OPC_CheckChild2Type, MVT::i32, ++/*527516*/ OPC_CheckChild3Integer, 1, ++/*527518*/ OPC_CheckChild3Type, MVT::i32, ++/*527520*/ OPC_CheckType, MVT::v4i32, ++/*527522*/ OPC_MoveParent, ++/*527523*/ OPC_CheckType, MVT::v4i32, ++/*527525*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*527527*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a), LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*527535*/ /*Scope*/ 61, /*->527597*/ ++/*527536*/ OPC_CheckChild0Same, 0, ++/*527538*/ OPC_MoveChild1, ++/*527539*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*527542*/ OPC_CheckChild0Integer, 1, ++/*527544*/ OPC_CheckChild0Type, MVT::i32, ++/*527546*/ OPC_CheckChild1Integer, 1, ++/*527548*/ OPC_CheckChild1Type, MVT::i32, ++/*527550*/ OPC_CheckChild2Integer, 1, ++/*527552*/ OPC_CheckChild2Type, MVT::i32, ++/*527554*/ OPC_CheckChild3Integer, 1, ++/*527556*/ OPC_CheckChild3Type, MVT::i32, ++/*527558*/ OPC_MoveParent, ++/*527559*/ OPC_MoveParent, ++/*527560*/ OPC_MoveParent, ++/*527561*/ OPC_MoveParent, ++/*527562*/ OPC_MoveChild1, ++/*527563*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*527566*/ OPC_CheckChild0Integer, 1, ++/*527568*/ OPC_CheckChild0Type, MVT::i32, ++/*527570*/ OPC_CheckChild1Integer, 1, ++/*527572*/ OPC_CheckChild1Type, MVT::i32, ++/*527574*/ OPC_CheckChild2Integer, 1, ++/*527576*/ OPC_CheckChild2Type, MVT::i32, ++/*527578*/ OPC_CheckChild3Integer, 1, ++/*527580*/ OPC_CheckChild3Type, MVT::i32, ++/*527582*/ OPC_CheckType, MVT::v4i32, ++/*527584*/ OPC_MoveParent, ++/*527585*/ OPC_CheckType, MVT::v4i32, ++/*527587*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*527589*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a), LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*527597*/ 0, /*End of Scope*/ ++/*527598*/ /*Scope*/ 4|128,1/*132*/, /*->527732*/ ++/*527600*/ OPC_CheckChild0Same, 0, ++/*527602*/ OPC_MoveChild1, ++/*527603*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*527606*/ OPC_Scope, 61, /*->527669*/ // 2 children in Scope ++/*527608*/ OPC_MoveChild0, ++/*527609*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*527612*/ OPC_CheckChild0Integer, 1, ++/*527614*/ OPC_CheckChild0Type, MVT::i32, ++/*527616*/ OPC_CheckChild1Integer, 1, ++/*527618*/ OPC_CheckChild1Type, MVT::i32, ++/*527620*/ OPC_CheckChild2Integer, 1, ++/*527622*/ OPC_CheckChild2Type, MVT::i32, ++/*527624*/ OPC_CheckChild3Integer, 1, ++/*527626*/ OPC_CheckChild3Type, MVT::i32, ++/*527628*/ OPC_MoveParent, ++/*527629*/ OPC_CheckChild1Same, 1, ++/*527631*/ OPC_MoveParent, ++/*527632*/ OPC_MoveParent, ++/*527633*/ OPC_MoveParent, ++/*527634*/ OPC_MoveChild1, ++/*527635*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*527638*/ OPC_CheckChild0Integer, 1, ++/*527640*/ OPC_CheckChild0Type, MVT::i32, ++/*527642*/ OPC_CheckChild1Integer, 1, ++/*527644*/ OPC_CheckChild1Type, MVT::i32, ++/*527646*/ OPC_CheckChild2Integer, 1, ++/*527648*/ OPC_CheckChild2Type, MVT::i32, ++/*527650*/ OPC_CheckChild3Integer, 1, ++/*527652*/ OPC_CheckChild3Type, MVT::i32, ++/*527654*/ OPC_CheckType, MVT::v4i32, ++/*527656*/ OPC_MoveParent, ++/*527657*/ OPC_CheckType, MVT::v4i32, ++/*527659*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*527661*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a), LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*527669*/ /*Scope*/ 61, /*->527731*/ ++/*527670*/ OPC_CheckChild0Same, 1, ++/*527672*/ OPC_MoveChild1, ++/*527673*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*527676*/ OPC_CheckChild0Integer, 1, ++/*527678*/ OPC_CheckChild0Type, MVT::i32, ++/*527680*/ OPC_CheckChild1Integer, 1, ++/*527682*/ OPC_CheckChild1Type, MVT::i32, ++/*527684*/ OPC_CheckChild2Integer, 1, ++/*527686*/ OPC_CheckChild2Type, MVT::i32, ++/*527688*/ OPC_CheckChild3Integer, 1, ++/*527690*/ OPC_CheckChild3Type, MVT::i32, ++/*527692*/ OPC_MoveParent, ++/*527693*/ OPC_MoveParent, ++/*527694*/ OPC_MoveParent, ++/*527695*/ OPC_MoveParent, ++/*527696*/ OPC_MoveChild1, ++/*527697*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*527700*/ OPC_CheckChild0Integer, 1, ++/*527702*/ OPC_CheckChild0Type, MVT::i32, ++/*527704*/ OPC_CheckChild1Integer, 1, ++/*527706*/ OPC_CheckChild1Type, MVT::i32, ++/*527708*/ OPC_CheckChild2Integer, 1, ++/*527710*/ OPC_CheckChild2Type, MVT::i32, ++/*527712*/ OPC_CheckChild3Integer, 1, ++/*527714*/ OPC_CheckChild3Type, MVT::i32, ++/*527716*/ OPC_CheckType, MVT::v4i32, ++/*527718*/ OPC_MoveParent, ++/*527719*/ OPC_CheckType, MVT::v4i32, ++/*527721*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*527723*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a), LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*527731*/ 0, /*End of Scope*/ ++/*527732*/ /*Scope*/ 113, /*->527846*/ ++/*527733*/ OPC_MoveChild0, ++/*527734*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*527737*/ OPC_CheckChild0Integer, 1, ++/*527739*/ OPC_CheckChild0Type, MVT::i32, ++/*527741*/ OPC_CheckChild1Integer, 1, ++/*527743*/ OPC_CheckChild1Type, MVT::i32, ++/*527745*/ OPC_CheckChild2Integer, 1, ++/*527747*/ OPC_CheckChild2Type, MVT::i32, ++/*527749*/ OPC_CheckChild3Integer, 1, ++/*527751*/ OPC_CheckChild3Type, MVT::i32, ++/*527753*/ OPC_MoveParent, ++/*527754*/ OPC_MoveChild1, ++/*527755*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*527758*/ OPC_Scope, 42, /*->527802*/ // 2 children in Scope ++/*527760*/ OPC_CheckChild0Same, 0, ++/*527762*/ OPC_CheckChild1Same, 1, ++/*527764*/ OPC_MoveParent, ++/*527765*/ OPC_MoveParent, ++/*527766*/ OPC_MoveParent, ++/*527767*/ OPC_MoveChild1, ++/*527768*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*527771*/ OPC_CheckChild0Integer, 1, ++/*527773*/ OPC_CheckChild0Type, MVT::i32, ++/*527775*/ OPC_CheckChild1Integer, 1, ++/*527777*/ OPC_CheckChild1Type, MVT::i32, ++/*527779*/ OPC_CheckChild2Integer, 1, ++/*527781*/ OPC_CheckChild2Type, MVT::i32, ++/*527783*/ OPC_CheckChild3Integer, 1, ++/*527785*/ OPC_CheckChild3Type, MVT::i32, ++/*527787*/ OPC_CheckType, MVT::v4i32, ++/*527789*/ OPC_MoveParent, ++/*527790*/ OPC_CheckType, MVT::v4i32, ++/*527792*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*527794*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a), LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*527802*/ /*Scope*/ 42, /*->527845*/ ++/*527803*/ OPC_CheckChild0Same, 1, ++/*527805*/ OPC_CheckChild1Same, 0, ++/*527807*/ OPC_MoveParent, ++/*527808*/ OPC_MoveParent, ++/*527809*/ OPC_MoveParent, ++/*527810*/ OPC_MoveChild1, ++/*527811*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*527814*/ OPC_CheckChild0Integer, 1, ++/*527816*/ OPC_CheckChild0Type, MVT::i32, ++/*527818*/ OPC_CheckChild1Integer, 1, ++/*527820*/ OPC_CheckChild1Type, MVT::i32, ++/*527822*/ OPC_CheckChild2Integer, 1, ++/*527824*/ OPC_CheckChild2Type, MVT::i32, ++/*527826*/ OPC_CheckChild3Integer, 1, ++/*527828*/ OPC_CheckChild3Type, MVT::i32, ++/*527830*/ OPC_CheckType, MVT::v4i32, ++/*527832*/ OPC_MoveParent, ++/*527833*/ OPC_CheckType, MVT::v4i32, ++/*527835*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*527837*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a), LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*527845*/ 0, /*End of Scope*/ ++/*527846*/ 0, /*End of Scope*/ ++/*527847*/ /*Scope*/ 61|128,6/*829*/, /*->528678*/ ++/*527849*/ OPC_RecordChild0, // #0 = $a ++/*527850*/ OPC_MoveChild1, ++/*527851*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*527854*/ OPC_CheckChild0Integer, 1, ++/*527856*/ OPC_CheckChild0Type, MVT::i32, ++/*527858*/ OPC_CheckChild1Integer, 1, ++/*527860*/ OPC_CheckChild1Type, MVT::i32, ++/*527862*/ OPC_CheckChild2Integer, 1, ++/*527864*/ OPC_CheckChild2Type, MVT::i32, ++/*527866*/ OPC_CheckChild3Integer, 1, ++/*527868*/ OPC_CheckChild3Type, MVT::i32, ++/*527870*/ OPC_MoveParent, ++/*527871*/ OPC_MoveParent, ++/*527872*/ OPC_RecordChild1, // #1 = $b ++/*527873*/ OPC_MoveParent, ++/*527874*/ OPC_MoveChild1, ++/*527875*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*527878*/ OPC_CheckChild0Integer, 31, ++/*527880*/ OPC_CheckChild0Type, MVT::i32, ++/*527882*/ OPC_CheckChild1Integer, 31, ++/*527884*/ OPC_CheckChild1Type, MVT::i32, ++/*527886*/ OPC_CheckChild2Integer, 31, ++/*527888*/ OPC_CheckChild2Type, MVT::i32, ++/*527890*/ OPC_CheckChild3Integer, 31, ++/*527892*/ OPC_CheckChild3Type, MVT::i32, ++/*527894*/ OPC_CheckType, MVT::v4i32, ++/*527896*/ OPC_MoveParent, ++/*527897*/ OPC_MoveParent, ++/*527898*/ OPC_MoveChild1, ++/*527899*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*527902*/ OPC_Scope, 6|128,3/*390*/, /*->528295*/ // 4 children in Scope ++/*527905*/ OPC_MoveChild0, ++/*527906*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*527909*/ OPC_Scope, 63, /*->527974*/ // 6 children in Scope ++/*527911*/ OPC_MoveChild0, ++/*527912*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*527915*/ OPC_CheckChild0Integer, 1, ++/*527917*/ OPC_CheckChild0Type, MVT::i32, ++/*527919*/ OPC_CheckChild1Integer, 1, ++/*527921*/ OPC_CheckChild1Type, MVT::i32, ++/*527923*/ OPC_CheckChild2Integer, 1, ++/*527925*/ OPC_CheckChild2Type, MVT::i32, ++/*527927*/ OPC_CheckChild3Integer, 1, ++/*527929*/ OPC_CheckChild3Type, MVT::i32, ++/*527931*/ OPC_MoveParent, ++/*527932*/ OPC_CheckChild1Same, 0, ++/*527934*/ OPC_MoveParent, ++/*527935*/ OPC_CheckChild1Same, 1, ++/*527937*/ OPC_MoveParent, ++/*527938*/ OPC_MoveParent, ++/*527939*/ OPC_MoveChild1, ++/*527940*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*527943*/ OPC_CheckChild0Integer, 1, ++/*527945*/ OPC_CheckChild0Type, MVT::i32, ++/*527947*/ OPC_CheckChild1Integer, 1, ++/*527949*/ OPC_CheckChild1Type, MVT::i32, ++/*527951*/ OPC_CheckChild2Integer, 1, ++/*527953*/ OPC_CheckChild2Type, MVT::i32, ++/*527955*/ OPC_CheckChild3Integer, 1, ++/*527957*/ OPC_CheckChild3Type, MVT::i32, ++/*527959*/ OPC_CheckType, MVT::v4i32, ++/*527961*/ OPC_MoveParent, ++/*527962*/ OPC_CheckType, MVT::v4i32, ++/*527964*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*527966*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a), LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*527974*/ /*Scope*/ 63, /*->528038*/ ++/*527975*/ OPC_CheckChild0Same, 0, ++/*527977*/ OPC_MoveChild1, ++/*527978*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*527981*/ OPC_CheckChild0Integer, 1, ++/*527983*/ OPC_CheckChild0Type, MVT::i32, ++/*527985*/ OPC_CheckChild1Integer, 1, ++/*527987*/ OPC_CheckChild1Type, MVT::i32, ++/*527989*/ OPC_CheckChild2Integer, 1, ++/*527991*/ OPC_CheckChild2Type, MVT::i32, ++/*527993*/ OPC_CheckChild3Integer, 1, ++/*527995*/ OPC_CheckChild3Type, MVT::i32, ++/*527997*/ OPC_MoveParent, ++/*527998*/ OPC_MoveParent, ++/*527999*/ OPC_CheckChild1Same, 1, ++/*528001*/ OPC_MoveParent, ++/*528002*/ OPC_MoveParent, ++/*528003*/ OPC_MoveChild1, ++/*528004*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*528007*/ OPC_CheckChild0Integer, 1, ++/*528009*/ OPC_CheckChild0Type, MVT::i32, ++/*528011*/ OPC_CheckChild1Integer, 1, ++/*528013*/ OPC_CheckChild1Type, MVT::i32, ++/*528015*/ OPC_CheckChild2Integer, 1, ++/*528017*/ OPC_CheckChild2Type, MVT::i32, ++/*528019*/ OPC_CheckChild3Integer, 1, ++/*528021*/ OPC_CheckChild3Type, MVT::i32, ++/*528023*/ OPC_CheckType, MVT::v4i32, ++/*528025*/ OPC_MoveParent, ++/*528026*/ OPC_CheckType, MVT::v4i32, ++/*528028*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*528030*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*528038*/ /*Scope*/ 63, /*->528102*/ ++/*528039*/ OPC_MoveChild0, ++/*528040*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*528043*/ OPC_CheckChild0Integer, 1, ++/*528045*/ OPC_CheckChild0Type, MVT::i32, ++/*528047*/ OPC_CheckChild1Integer, 1, ++/*528049*/ OPC_CheckChild1Type, MVT::i32, ++/*528051*/ OPC_CheckChild2Integer, 1, ++/*528053*/ OPC_CheckChild2Type, MVT::i32, ++/*528055*/ OPC_CheckChild3Integer, 1, ++/*528057*/ OPC_CheckChild3Type, MVT::i32, ++/*528059*/ OPC_MoveParent, ++/*528060*/ OPC_CheckChild1Same, 1, ++/*528062*/ OPC_MoveParent, ++/*528063*/ OPC_CheckChild1Same, 0, ++/*528065*/ OPC_MoveParent, ++/*528066*/ OPC_MoveParent, ++/*528067*/ OPC_MoveChild1, ++/*528068*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*528071*/ OPC_CheckChild0Integer, 1, ++/*528073*/ OPC_CheckChild0Type, MVT::i32, ++/*528075*/ OPC_CheckChild1Integer, 1, ++/*528077*/ OPC_CheckChild1Type, MVT::i32, ++/*528079*/ OPC_CheckChild2Integer, 1, ++/*528081*/ OPC_CheckChild2Type, MVT::i32, ++/*528083*/ OPC_CheckChild3Integer, 1, ++/*528085*/ OPC_CheckChild3Type, MVT::i32, ++/*528087*/ OPC_CheckType, MVT::v4i32, ++/*528089*/ OPC_MoveParent, ++/*528090*/ OPC_CheckType, MVT::v4i32, ++/*528092*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*528094*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b), LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*528102*/ /*Scope*/ 63, /*->528166*/ ++/*528103*/ OPC_CheckChild0Same, 1, ++/*528105*/ OPC_MoveChild1, ++/*528106*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*528109*/ OPC_CheckChild0Integer, 1, ++/*528111*/ OPC_CheckChild0Type, MVT::i32, ++/*528113*/ OPC_CheckChild1Integer, 1, ++/*528115*/ OPC_CheckChild1Type, MVT::i32, ++/*528117*/ OPC_CheckChild2Integer, 1, ++/*528119*/ OPC_CheckChild2Type, MVT::i32, ++/*528121*/ OPC_CheckChild3Integer, 1, ++/*528123*/ OPC_CheckChild3Type, MVT::i32, ++/*528125*/ OPC_MoveParent, ++/*528126*/ OPC_MoveParent, ++/*528127*/ OPC_CheckChild1Same, 0, ++/*528129*/ OPC_MoveParent, ++/*528130*/ OPC_MoveParent, ++/*528131*/ OPC_MoveChild1, ++/*528132*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*528135*/ OPC_CheckChild0Integer, 1, ++/*528137*/ OPC_CheckChild0Type, MVT::i32, ++/*528139*/ OPC_CheckChild1Integer, 1, ++/*528141*/ OPC_CheckChild1Type, MVT::i32, ++/*528143*/ OPC_CheckChild2Integer, 1, ++/*528145*/ OPC_CheckChild2Type, MVT::i32, ++/*528147*/ OPC_CheckChild3Integer, 1, ++/*528149*/ OPC_CheckChild3Type, MVT::i32, ++/*528151*/ OPC_CheckType, MVT::v4i32, ++/*528153*/ OPC_MoveParent, ++/*528154*/ OPC_CheckType, MVT::v4i32, ++/*528156*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*528158*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*528166*/ /*Scope*/ 63, /*->528230*/ ++/*528167*/ OPC_CheckChild0Same, 0, ++/*528169*/ OPC_CheckChild1Same, 1, ++/*528171*/ OPC_MoveParent, ++/*528172*/ OPC_MoveChild1, ++/*528173*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*528176*/ OPC_CheckChild0Integer, 1, ++/*528178*/ OPC_CheckChild0Type, MVT::i32, ++/*528180*/ OPC_CheckChild1Integer, 1, ++/*528182*/ OPC_CheckChild1Type, MVT::i32, ++/*528184*/ OPC_CheckChild2Integer, 1, ++/*528186*/ OPC_CheckChild2Type, MVT::i32, ++/*528188*/ OPC_CheckChild3Integer, 1, ++/*528190*/ OPC_CheckChild3Type, MVT::i32, ++/*528192*/ OPC_MoveParent, ++/*528193*/ OPC_MoveParent, ++/*528194*/ OPC_MoveParent, ++/*528195*/ OPC_MoveChild1, ++/*528196*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*528199*/ OPC_CheckChild0Integer, 1, ++/*528201*/ OPC_CheckChild0Type, MVT::i32, ++/*528203*/ OPC_CheckChild1Integer, 1, ++/*528205*/ OPC_CheckChild1Type, MVT::i32, ++/*528207*/ OPC_CheckChild2Integer, 1, ++/*528209*/ OPC_CheckChild2Type, MVT::i32, ++/*528211*/ OPC_CheckChild3Integer, 1, ++/*528213*/ OPC_CheckChild3Type, MVT::i32, ++/*528215*/ OPC_CheckType, MVT::v4i32, ++/*528217*/ OPC_MoveParent, ++/*528218*/ OPC_CheckType, MVT::v4i32, ++/*528220*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*528222*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*528230*/ /*Scope*/ 63, /*->528294*/ ++/*528231*/ OPC_CheckChild0Same, 1, ++/*528233*/ OPC_CheckChild1Same, 0, ++/*528235*/ OPC_MoveParent, ++/*528236*/ OPC_MoveChild1, ++/*528237*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*528240*/ OPC_CheckChild0Integer, 1, ++/*528242*/ OPC_CheckChild0Type, MVT::i32, ++/*528244*/ OPC_CheckChild1Integer, 1, ++/*528246*/ OPC_CheckChild1Type, MVT::i32, ++/*528248*/ OPC_CheckChild2Integer, 1, ++/*528250*/ OPC_CheckChild2Type, MVT::i32, ++/*528252*/ OPC_CheckChild3Integer, 1, ++/*528254*/ OPC_CheckChild3Type, MVT::i32, ++/*528256*/ OPC_MoveParent, ++/*528257*/ OPC_MoveParent, ++/*528258*/ OPC_MoveParent, ++/*528259*/ OPC_MoveChild1, ++/*528260*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*528263*/ OPC_CheckChild0Integer, 1, ++/*528265*/ OPC_CheckChild0Type, MVT::i32, ++/*528267*/ OPC_CheckChild1Integer, 1, ++/*528269*/ OPC_CheckChild1Type, MVT::i32, ++/*528271*/ OPC_CheckChild2Integer, 1, ++/*528273*/ OPC_CheckChild2Type, MVT::i32, ++/*528275*/ OPC_CheckChild3Integer, 1, ++/*528277*/ OPC_CheckChild3Type, MVT::i32, ++/*528279*/ OPC_CheckType, MVT::v4i32, ++/*528281*/ OPC_MoveParent, ++/*528282*/ OPC_CheckType, MVT::v4i32, ++/*528284*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*528286*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*528294*/ 0, /*End of Scope*/ ++/*528295*/ /*Scope*/ 4|128,1/*132*/, /*->528429*/ ++/*528297*/ OPC_CheckChild0Same, 1, ++/*528299*/ OPC_MoveChild1, ++/*528300*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*528303*/ OPC_Scope, 61, /*->528366*/ // 2 children in Scope ++/*528305*/ OPC_MoveChild0, ++/*528306*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*528309*/ OPC_CheckChild0Integer, 1, ++/*528311*/ OPC_CheckChild0Type, MVT::i32, ++/*528313*/ OPC_CheckChild1Integer, 1, ++/*528315*/ OPC_CheckChild1Type, MVT::i32, ++/*528317*/ OPC_CheckChild2Integer, 1, ++/*528319*/ OPC_CheckChild2Type, MVT::i32, ++/*528321*/ OPC_CheckChild3Integer, 1, ++/*528323*/ OPC_CheckChild3Type, MVT::i32, ++/*528325*/ OPC_MoveParent, ++/*528326*/ OPC_CheckChild1Same, 0, ++/*528328*/ OPC_MoveParent, ++/*528329*/ OPC_MoveParent, ++/*528330*/ OPC_MoveParent, ++/*528331*/ OPC_MoveChild1, ++/*528332*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*528335*/ OPC_CheckChild0Integer, 1, ++/*528337*/ OPC_CheckChild0Type, MVT::i32, ++/*528339*/ OPC_CheckChild1Integer, 1, ++/*528341*/ OPC_CheckChild1Type, MVT::i32, ++/*528343*/ OPC_CheckChild2Integer, 1, ++/*528345*/ OPC_CheckChild2Type, MVT::i32, ++/*528347*/ OPC_CheckChild3Integer, 1, ++/*528349*/ OPC_CheckChild3Type, MVT::i32, ++/*528351*/ OPC_CheckType, MVT::v4i32, ++/*528353*/ OPC_MoveParent, ++/*528354*/ OPC_CheckType, MVT::v4i32, ++/*528356*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*528358*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*528366*/ /*Scope*/ 61, /*->528428*/ ++/*528367*/ OPC_CheckChild0Same, 0, ++/*528369*/ OPC_MoveChild1, ++/*528370*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*528373*/ OPC_CheckChild0Integer, 1, ++/*528375*/ OPC_CheckChild0Type, MVT::i32, ++/*528377*/ OPC_CheckChild1Integer, 1, ++/*528379*/ OPC_CheckChild1Type, MVT::i32, ++/*528381*/ OPC_CheckChild2Integer, 1, ++/*528383*/ OPC_CheckChild2Type, MVT::i32, ++/*528385*/ OPC_CheckChild3Integer, 1, ++/*528387*/ OPC_CheckChild3Type, MVT::i32, ++/*528389*/ OPC_MoveParent, ++/*528390*/ OPC_MoveParent, ++/*528391*/ OPC_MoveParent, ++/*528392*/ OPC_MoveParent, ++/*528393*/ OPC_MoveChild1, ++/*528394*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*528397*/ OPC_CheckChild0Integer, 1, ++/*528399*/ OPC_CheckChild0Type, MVT::i32, ++/*528401*/ OPC_CheckChild1Integer, 1, ++/*528403*/ OPC_CheckChild1Type, MVT::i32, ++/*528405*/ OPC_CheckChild2Integer, 1, ++/*528407*/ OPC_CheckChild2Type, MVT::i32, ++/*528409*/ OPC_CheckChild3Integer, 1, ++/*528411*/ OPC_CheckChild3Type, MVT::i32, ++/*528413*/ OPC_CheckType, MVT::v4i32, ++/*528415*/ OPC_MoveParent, ++/*528416*/ OPC_CheckType, MVT::v4i32, ++/*528418*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*528420*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*528428*/ 0, /*End of Scope*/ ++/*528429*/ /*Scope*/ 4|128,1/*132*/, /*->528563*/ ++/*528431*/ OPC_CheckChild0Same, 0, ++/*528433*/ OPC_MoveChild1, ++/*528434*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*528437*/ OPC_Scope, 61, /*->528500*/ // 2 children in Scope ++/*528439*/ OPC_MoveChild0, ++/*528440*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*528443*/ OPC_CheckChild0Integer, 1, ++/*528445*/ OPC_CheckChild0Type, MVT::i32, ++/*528447*/ OPC_CheckChild1Integer, 1, ++/*528449*/ OPC_CheckChild1Type, MVT::i32, ++/*528451*/ OPC_CheckChild2Integer, 1, ++/*528453*/ OPC_CheckChild2Type, MVT::i32, ++/*528455*/ OPC_CheckChild3Integer, 1, ++/*528457*/ OPC_CheckChild3Type, MVT::i32, ++/*528459*/ OPC_MoveParent, ++/*528460*/ OPC_CheckChild1Same, 1, ++/*528462*/ OPC_MoveParent, ++/*528463*/ OPC_MoveParent, ++/*528464*/ OPC_MoveParent, ++/*528465*/ OPC_MoveChild1, ++/*528466*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*528469*/ OPC_CheckChild0Integer, 1, ++/*528471*/ OPC_CheckChild0Type, MVT::i32, ++/*528473*/ OPC_CheckChild1Integer, 1, ++/*528475*/ OPC_CheckChild1Type, MVT::i32, ++/*528477*/ OPC_CheckChild2Integer, 1, ++/*528479*/ OPC_CheckChild2Type, MVT::i32, ++/*528481*/ OPC_CheckChild3Integer, 1, ++/*528483*/ OPC_CheckChild3Type, MVT::i32, ++/*528485*/ OPC_CheckType, MVT::v4i32, ++/*528487*/ OPC_MoveParent, ++/*528488*/ OPC_CheckType, MVT::v4i32, ++/*528490*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*528492*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*528500*/ /*Scope*/ 61, /*->528562*/ ++/*528501*/ OPC_CheckChild0Same, 1, ++/*528503*/ OPC_MoveChild1, ++/*528504*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*528507*/ OPC_CheckChild0Integer, 1, ++/*528509*/ OPC_CheckChild0Type, MVT::i32, ++/*528511*/ OPC_CheckChild1Integer, 1, ++/*528513*/ OPC_CheckChild1Type, MVT::i32, ++/*528515*/ OPC_CheckChild2Integer, 1, ++/*528517*/ OPC_CheckChild2Type, MVT::i32, ++/*528519*/ OPC_CheckChild3Integer, 1, ++/*528521*/ OPC_CheckChild3Type, MVT::i32, ++/*528523*/ OPC_MoveParent, ++/*528524*/ OPC_MoveParent, ++/*528525*/ OPC_MoveParent, ++/*528526*/ OPC_MoveParent, ++/*528527*/ OPC_MoveChild1, ++/*528528*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*528531*/ OPC_CheckChild0Integer, 1, ++/*528533*/ OPC_CheckChild0Type, MVT::i32, ++/*528535*/ OPC_CheckChild1Integer, 1, ++/*528537*/ OPC_CheckChild1Type, MVT::i32, ++/*528539*/ OPC_CheckChild2Integer, 1, ++/*528541*/ OPC_CheckChild2Type, MVT::i32, ++/*528543*/ OPC_CheckChild3Integer, 1, ++/*528545*/ OPC_CheckChild3Type, MVT::i32, ++/*528547*/ OPC_CheckType, MVT::v4i32, ++/*528549*/ OPC_MoveParent, ++/*528550*/ OPC_CheckType, MVT::v4i32, ++/*528552*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*528554*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*528562*/ 0, /*End of Scope*/ ++/*528563*/ /*Scope*/ 113, /*->528677*/ ++/*528564*/ OPC_MoveChild0, ++/*528565*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*528568*/ OPC_CheckChild0Integer, 1, ++/*528570*/ OPC_CheckChild0Type, MVT::i32, ++/*528572*/ OPC_CheckChild1Integer, 1, ++/*528574*/ OPC_CheckChild1Type, MVT::i32, ++/*528576*/ OPC_CheckChild2Integer, 1, ++/*528578*/ OPC_CheckChild2Type, MVT::i32, ++/*528580*/ OPC_CheckChild3Integer, 1, ++/*528582*/ OPC_CheckChild3Type, MVT::i32, ++/*528584*/ OPC_MoveParent, ++/*528585*/ OPC_MoveChild1, ++/*528586*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*528589*/ OPC_Scope, 42, /*->528633*/ // 2 children in Scope ++/*528591*/ OPC_CheckChild0Same, 0, ++/*528593*/ OPC_CheckChild1Same, 1, ++/*528595*/ OPC_MoveParent, ++/*528596*/ OPC_MoveParent, ++/*528597*/ OPC_MoveParent, ++/*528598*/ OPC_MoveChild1, ++/*528599*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*528602*/ OPC_CheckChild0Integer, 1, ++/*528604*/ OPC_CheckChild0Type, MVT::i32, ++/*528606*/ OPC_CheckChild1Integer, 1, ++/*528608*/ OPC_CheckChild1Type, MVT::i32, ++/*528610*/ OPC_CheckChild2Integer, 1, ++/*528612*/ OPC_CheckChild2Type, MVT::i32, ++/*528614*/ OPC_CheckChild3Integer, 1, ++/*528616*/ OPC_CheckChild3Type, MVT::i32, ++/*528618*/ OPC_CheckType, MVT::v4i32, ++/*528620*/ OPC_MoveParent, ++/*528621*/ OPC_CheckType, MVT::v4i32, ++/*528623*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*528625*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*528633*/ /*Scope*/ 42, /*->528676*/ ++/*528634*/ OPC_CheckChild0Same, 1, ++/*528636*/ OPC_CheckChild1Same, 0, ++/*528638*/ OPC_MoveParent, ++/*528639*/ OPC_MoveParent, ++/*528640*/ OPC_MoveParent, ++/*528641*/ OPC_MoveChild1, ++/*528642*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*528645*/ OPC_CheckChild0Integer, 1, ++/*528647*/ OPC_CheckChild0Type, MVT::i32, ++/*528649*/ OPC_CheckChild1Integer, 1, ++/*528651*/ OPC_CheckChild1Type, MVT::i32, ++/*528653*/ OPC_CheckChild2Integer, 1, ++/*528655*/ OPC_CheckChild2Type, MVT::i32, ++/*528657*/ OPC_CheckChild3Integer, 1, ++/*528659*/ OPC_CheckChild3Type, MVT::i32, ++/*528661*/ OPC_CheckType, MVT::v4i32, ++/*528663*/ OPC_MoveParent, ++/*528664*/ OPC_CheckType, MVT::v4i32, ++/*528666*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*528668*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*528676*/ 0, /*End of Scope*/ ++/*528677*/ 0, /*End of Scope*/ ++/*528678*/ /*Scope*/ 61|128,6/*829*/, /*->529509*/ ++/*528680*/ OPC_MoveChild0, ++/*528681*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*528684*/ OPC_CheckChild0Integer, 1, ++/*528686*/ OPC_CheckChild0Type, MVT::i32, ++/*528688*/ OPC_CheckChild1Integer, 1, ++/*528690*/ OPC_CheckChild1Type, MVT::i32, ++/*528692*/ OPC_CheckChild2Integer, 1, ++/*528694*/ OPC_CheckChild2Type, MVT::i32, ++/*528696*/ OPC_CheckChild3Integer, 1, ++/*528698*/ OPC_CheckChild3Type, MVT::i32, ++/*528700*/ OPC_MoveParent, ++/*528701*/ OPC_RecordChild1, // #0 = $b ++/*528702*/ OPC_MoveParent, ++/*528703*/ OPC_RecordChild1, // #1 = $a ++/*528704*/ OPC_MoveParent, ++/*528705*/ OPC_MoveChild1, ++/*528706*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*528709*/ OPC_CheckChild0Integer, 31, ++/*528711*/ OPC_CheckChild0Type, MVT::i32, ++/*528713*/ OPC_CheckChild1Integer, 31, ++/*528715*/ OPC_CheckChild1Type, MVT::i32, ++/*528717*/ OPC_CheckChild2Integer, 31, ++/*528719*/ OPC_CheckChild2Type, MVT::i32, ++/*528721*/ OPC_CheckChild3Integer, 31, ++/*528723*/ OPC_CheckChild3Type, MVT::i32, ++/*528725*/ OPC_CheckType, MVT::v4i32, ++/*528727*/ OPC_MoveParent, ++/*528728*/ OPC_MoveParent, ++/*528729*/ OPC_MoveChild1, ++/*528730*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*528733*/ OPC_Scope, 6|128,3/*390*/, /*->529126*/ // 4 children in Scope ++/*528736*/ OPC_MoveChild0, ++/*528737*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*528740*/ OPC_Scope, 63, /*->528805*/ // 6 children in Scope ++/*528742*/ OPC_MoveChild0, ++/*528743*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*528746*/ OPC_CheckChild0Integer, 1, ++/*528748*/ OPC_CheckChild0Type, MVT::i32, ++/*528750*/ OPC_CheckChild1Integer, 1, ++/*528752*/ OPC_CheckChild1Type, MVT::i32, ++/*528754*/ OPC_CheckChild2Integer, 1, ++/*528756*/ OPC_CheckChild2Type, MVT::i32, ++/*528758*/ OPC_CheckChild3Integer, 1, ++/*528760*/ OPC_CheckChild3Type, MVT::i32, ++/*528762*/ OPC_MoveParent, ++/*528763*/ OPC_CheckChild1Same, 1, ++/*528765*/ OPC_MoveParent, ++/*528766*/ OPC_CheckChild1Same, 0, ++/*528768*/ OPC_MoveParent, ++/*528769*/ OPC_MoveParent, ++/*528770*/ OPC_MoveChild1, ++/*528771*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*528774*/ OPC_CheckChild0Integer, 1, ++/*528776*/ OPC_CheckChild0Type, MVT::i32, ++/*528778*/ OPC_CheckChild1Integer, 1, ++/*528780*/ OPC_CheckChild1Type, MVT::i32, ++/*528782*/ OPC_CheckChild2Integer, 1, ++/*528784*/ OPC_CheckChild2Type, MVT::i32, ++/*528786*/ OPC_CheckChild3Integer, 1, ++/*528788*/ OPC_CheckChild3Type, MVT::i32, ++/*528790*/ OPC_CheckType, MVT::v4i32, ++/*528792*/ OPC_MoveParent, ++/*528793*/ OPC_CheckType, MVT::v4i32, ++/*528795*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*528797*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b), LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a), LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*528805*/ /*Scope*/ 63, /*->528869*/ ++/*528806*/ OPC_CheckChild0Same, 1, ++/*528808*/ OPC_MoveChild1, ++/*528809*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*528812*/ OPC_CheckChild0Integer, 1, ++/*528814*/ OPC_CheckChild0Type, MVT::i32, ++/*528816*/ OPC_CheckChild1Integer, 1, ++/*528818*/ OPC_CheckChild1Type, MVT::i32, ++/*528820*/ OPC_CheckChild2Integer, 1, ++/*528822*/ OPC_CheckChild2Type, MVT::i32, ++/*528824*/ OPC_CheckChild3Integer, 1, ++/*528826*/ OPC_CheckChild3Type, MVT::i32, ++/*528828*/ OPC_MoveParent, ++/*528829*/ OPC_MoveParent, ++/*528830*/ OPC_CheckChild1Same, 0, ++/*528832*/ OPC_MoveParent, ++/*528833*/ OPC_MoveParent, ++/*528834*/ OPC_MoveChild1, ++/*528835*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*528838*/ OPC_CheckChild0Integer, 1, ++/*528840*/ OPC_CheckChild0Type, MVT::i32, ++/*528842*/ OPC_CheckChild1Integer, 1, ++/*528844*/ OPC_CheckChild1Type, MVT::i32, ++/*528846*/ OPC_CheckChild2Integer, 1, ++/*528848*/ OPC_CheckChild2Type, MVT::i32, ++/*528850*/ OPC_CheckChild3Integer, 1, ++/*528852*/ OPC_CheckChild3Type, MVT::i32, ++/*528854*/ OPC_CheckType, MVT::v4i32, ++/*528856*/ OPC_MoveParent, ++/*528857*/ OPC_CheckType, MVT::v4i32, ++/*528859*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*528861*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b), LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*528869*/ /*Scope*/ 63, /*->528933*/ ++/*528870*/ OPC_MoveChild0, ++/*528871*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*528874*/ OPC_CheckChild0Integer, 1, ++/*528876*/ OPC_CheckChild0Type, MVT::i32, ++/*528878*/ OPC_CheckChild1Integer, 1, ++/*528880*/ OPC_CheckChild1Type, MVT::i32, ++/*528882*/ OPC_CheckChild2Integer, 1, ++/*528884*/ OPC_CheckChild2Type, MVT::i32, ++/*528886*/ OPC_CheckChild3Integer, 1, ++/*528888*/ OPC_CheckChild3Type, MVT::i32, ++/*528890*/ OPC_MoveParent, ++/*528891*/ OPC_CheckChild1Same, 0, ++/*528893*/ OPC_MoveParent, ++/*528894*/ OPC_CheckChild1Same, 1, ++/*528896*/ OPC_MoveParent, ++/*528897*/ OPC_MoveParent, ++/*528898*/ OPC_MoveChild1, ++/*528899*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*528902*/ OPC_CheckChild0Integer, 1, ++/*528904*/ OPC_CheckChild0Type, MVT::i32, ++/*528906*/ OPC_CheckChild1Integer, 1, ++/*528908*/ OPC_CheckChild1Type, MVT::i32, ++/*528910*/ OPC_CheckChild2Integer, 1, ++/*528912*/ OPC_CheckChild2Type, MVT::i32, ++/*528914*/ OPC_CheckChild3Integer, 1, ++/*528916*/ OPC_CheckChild3Type, MVT::i32, ++/*528918*/ OPC_CheckType, MVT::v4i32, ++/*528920*/ OPC_MoveParent, ++/*528921*/ OPC_CheckType, MVT::v4i32, ++/*528923*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*528925*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b), LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b), LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*528933*/ /*Scope*/ 63, /*->528997*/ ++/*528934*/ OPC_CheckChild0Same, 0, ++/*528936*/ OPC_MoveChild1, ++/*528937*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*528940*/ OPC_CheckChild0Integer, 1, ++/*528942*/ OPC_CheckChild0Type, MVT::i32, ++/*528944*/ OPC_CheckChild1Integer, 1, ++/*528946*/ OPC_CheckChild1Type, MVT::i32, ++/*528948*/ OPC_CheckChild2Integer, 1, ++/*528950*/ OPC_CheckChild2Type, MVT::i32, ++/*528952*/ OPC_CheckChild3Integer, 1, ++/*528954*/ OPC_CheckChild3Type, MVT::i32, ++/*528956*/ OPC_MoveParent, ++/*528957*/ OPC_MoveParent, ++/*528958*/ OPC_CheckChild1Same, 1, ++/*528960*/ OPC_MoveParent, ++/*528961*/ OPC_MoveParent, ++/*528962*/ OPC_MoveChild1, ++/*528963*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*528966*/ OPC_CheckChild0Integer, 1, ++/*528968*/ OPC_CheckChild0Type, MVT::i32, ++/*528970*/ OPC_CheckChild1Integer, 1, ++/*528972*/ OPC_CheckChild1Type, MVT::i32, ++/*528974*/ OPC_CheckChild2Integer, 1, ++/*528976*/ OPC_CheckChild2Type, MVT::i32, ++/*528978*/ OPC_CheckChild3Integer, 1, ++/*528980*/ OPC_CheckChild3Type, MVT::i32, ++/*528982*/ OPC_CheckType, MVT::v4i32, ++/*528984*/ OPC_MoveParent, ++/*528985*/ OPC_CheckType, MVT::v4i32, ++/*528987*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*528989*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b), LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*528997*/ /*Scope*/ 63, /*->529061*/ ++/*528998*/ OPC_CheckChild0Same, 1, ++/*529000*/ OPC_CheckChild1Same, 0, ++/*529002*/ OPC_MoveParent, ++/*529003*/ OPC_MoveChild1, ++/*529004*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*529007*/ OPC_CheckChild0Integer, 1, ++/*529009*/ OPC_CheckChild0Type, MVT::i32, ++/*529011*/ OPC_CheckChild1Integer, 1, ++/*529013*/ OPC_CheckChild1Type, MVT::i32, ++/*529015*/ OPC_CheckChild2Integer, 1, ++/*529017*/ OPC_CheckChild2Type, MVT::i32, ++/*529019*/ OPC_CheckChild3Integer, 1, ++/*529021*/ OPC_CheckChild3Type, MVT::i32, ++/*529023*/ OPC_MoveParent, ++/*529024*/ OPC_MoveParent, ++/*529025*/ OPC_MoveParent, ++/*529026*/ OPC_MoveChild1, ++/*529027*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*529030*/ OPC_CheckChild0Integer, 1, ++/*529032*/ OPC_CheckChild0Type, MVT::i32, ++/*529034*/ OPC_CheckChild1Integer, 1, ++/*529036*/ OPC_CheckChild1Type, MVT::i32, ++/*529038*/ OPC_CheckChild2Integer, 1, ++/*529040*/ OPC_CheckChild2Type, MVT::i32, ++/*529042*/ OPC_CheckChild3Integer, 1, ++/*529044*/ OPC_CheckChild3Type, MVT::i32, ++/*529046*/ OPC_CheckType, MVT::v4i32, ++/*529048*/ OPC_MoveParent, ++/*529049*/ OPC_CheckType, MVT::v4i32, ++/*529051*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*529053*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b), LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*529061*/ /*Scope*/ 63, /*->529125*/ ++/*529062*/ OPC_CheckChild0Same, 0, ++/*529064*/ OPC_CheckChild1Same, 1, ++/*529066*/ OPC_MoveParent, ++/*529067*/ OPC_MoveChild1, ++/*529068*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*529071*/ OPC_CheckChild0Integer, 1, ++/*529073*/ OPC_CheckChild0Type, MVT::i32, ++/*529075*/ OPC_CheckChild1Integer, 1, ++/*529077*/ OPC_CheckChild1Type, MVT::i32, ++/*529079*/ OPC_CheckChild2Integer, 1, ++/*529081*/ OPC_CheckChild2Type, MVT::i32, ++/*529083*/ OPC_CheckChild3Integer, 1, ++/*529085*/ OPC_CheckChild3Type, MVT::i32, ++/*529087*/ OPC_MoveParent, ++/*529088*/ OPC_MoveParent, ++/*529089*/ OPC_MoveParent, ++/*529090*/ OPC_MoveChild1, ++/*529091*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*529094*/ OPC_CheckChild0Integer, 1, ++/*529096*/ OPC_CheckChild0Type, MVT::i32, ++/*529098*/ OPC_CheckChild1Integer, 1, ++/*529100*/ OPC_CheckChild1Type, MVT::i32, ++/*529102*/ OPC_CheckChild2Integer, 1, ++/*529104*/ OPC_CheckChild2Type, MVT::i32, ++/*529106*/ OPC_CheckChild3Integer, 1, ++/*529108*/ OPC_CheckChild3Type, MVT::i32, ++/*529110*/ OPC_CheckType, MVT::v4i32, ++/*529112*/ OPC_MoveParent, ++/*529113*/ OPC_CheckType, MVT::v4i32, ++/*529115*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*529117*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b), LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*529125*/ 0, /*End of Scope*/ ++/*529126*/ /*Scope*/ 4|128,1/*132*/, /*->529260*/ ++/*529128*/ OPC_CheckChild0Same, 0, ++/*529130*/ OPC_MoveChild1, ++/*529131*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*529134*/ OPC_Scope, 61, /*->529197*/ // 2 children in Scope ++/*529136*/ OPC_MoveChild0, ++/*529137*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*529140*/ OPC_CheckChild0Integer, 1, ++/*529142*/ OPC_CheckChild0Type, MVT::i32, ++/*529144*/ OPC_CheckChild1Integer, 1, ++/*529146*/ OPC_CheckChild1Type, MVT::i32, ++/*529148*/ OPC_CheckChild2Integer, 1, ++/*529150*/ OPC_CheckChild2Type, MVT::i32, ++/*529152*/ OPC_CheckChild3Integer, 1, ++/*529154*/ OPC_CheckChild3Type, MVT::i32, ++/*529156*/ OPC_MoveParent, ++/*529157*/ OPC_CheckChild1Same, 1, ++/*529159*/ OPC_MoveParent, ++/*529160*/ OPC_MoveParent, ++/*529161*/ OPC_MoveParent, ++/*529162*/ OPC_MoveChild1, ++/*529163*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*529166*/ OPC_CheckChild0Integer, 1, ++/*529168*/ OPC_CheckChild0Type, MVT::i32, ++/*529170*/ OPC_CheckChild1Integer, 1, ++/*529172*/ OPC_CheckChild1Type, MVT::i32, ++/*529174*/ OPC_CheckChild2Integer, 1, ++/*529176*/ OPC_CheckChild2Type, MVT::i32, ++/*529178*/ OPC_CheckChild3Integer, 1, ++/*529180*/ OPC_CheckChild3Type, MVT::i32, ++/*529182*/ OPC_CheckType, MVT::v4i32, ++/*529184*/ OPC_MoveParent, ++/*529185*/ OPC_CheckType, MVT::v4i32, ++/*529187*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*529189*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b), LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*529197*/ /*Scope*/ 61, /*->529259*/ ++/*529198*/ OPC_CheckChild0Same, 1, ++/*529200*/ OPC_MoveChild1, ++/*529201*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*529204*/ OPC_CheckChild0Integer, 1, ++/*529206*/ OPC_CheckChild0Type, MVT::i32, ++/*529208*/ OPC_CheckChild1Integer, 1, ++/*529210*/ OPC_CheckChild1Type, MVT::i32, ++/*529212*/ OPC_CheckChild2Integer, 1, ++/*529214*/ OPC_CheckChild2Type, MVT::i32, ++/*529216*/ OPC_CheckChild3Integer, 1, ++/*529218*/ OPC_CheckChild3Type, MVT::i32, ++/*529220*/ OPC_MoveParent, ++/*529221*/ OPC_MoveParent, ++/*529222*/ OPC_MoveParent, ++/*529223*/ OPC_MoveParent, ++/*529224*/ OPC_MoveChild1, ++/*529225*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*529228*/ OPC_CheckChild0Integer, 1, ++/*529230*/ OPC_CheckChild0Type, MVT::i32, ++/*529232*/ OPC_CheckChild1Integer, 1, ++/*529234*/ OPC_CheckChild1Type, MVT::i32, ++/*529236*/ OPC_CheckChild2Integer, 1, ++/*529238*/ OPC_CheckChild2Type, MVT::i32, ++/*529240*/ OPC_CheckChild3Integer, 1, ++/*529242*/ OPC_CheckChild3Type, MVT::i32, ++/*529244*/ OPC_CheckType, MVT::v4i32, ++/*529246*/ OPC_MoveParent, ++/*529247*/ OPC_CheckType, MVT::v4i32, ++/*529249*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*529251*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b), LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*529259*/ 0, /*End of Scope*/ ++/*529260*/ /*Scope*/ 4|128,1/*132*/, /*->529394*/ ++/*529262*/ OPC_CheckChild0Same, 1, ++/*529264*/ OPC_MoveChild1, ++/*529265*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*529268*/ OPC_Scope, 61, /*->529331*/ // 2 children in Scope ++/*529270*/ OPC_MoveChild0, ++/*529271*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*529274*/ OPC_CheckChild0Integer, 1, ++/*529276*/ OPC_CheckChild0Type, MVT::i32, ++/*529278*/ OPC_CheckChild1Integer, 1, ++/*529280*/ OPC_CheckChild1Type, MVT::i32, ++/*529282*/ OPC_CheckChild2Integer, 1, ++/*529284*/ OPC_CheckChild2Type, MVT::i32, ++/*529286*/ OPC_CheckChild3Integer, 1, ++/*529288*/ OPC_CheckChild3Type, MVT::i32, ++/*529290*/ OPC_MoveParent, ++/*529291*/ OPC_CheckChild1Same, 0, ++/*529293*/ OPC_MoveParent, ++/*529294*/ OPC_MoveParent, ++/*529295*/ OPC_MoveParent, ++/*529296*/ OPC_MoveChild1, ++/*529297*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*529300*/ OPC_CheckChild0Integer, 1, ++/*529302*/ OPC_CheckChild0Type, MVT::i32, ++/*529304*/ OPC_CheckChild1Integer, 1, ++/*529306*/ OPC_CheckChild1Type, MVT::i32, ++/*529308*/ OPC_CheckChild2Integer, 1, ++/*529310*/ OPC_CheckChild2Type, MVT::i32, ++/*529312*/ OPC_CheckChild3Integer, 1, ++/*529314*/ OPC_CheckChild3Type, MVT::i32, ++/*529316*/ OPC_CheckType, MVT::v4i32, ++/*529318*/ OPC_MoveParent, ++/*529319*/ OPC_CheckType, MVT::v4i32, ++/*529321*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*529323*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b), LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*529331*/ /*Scope*/ 61, /*->529393*/ ++/*529332*/ OPC_CheckChild0Same, 0, ++/*529334*/ OPC_MoveChild1, ++/*529335*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*529338*/ OPC_CheckChild0Integer, 1, ++/*529340*/ OPC_CheckChild0Type, MVT::i32, ++/*529342*/ OPC_CheckChild1Integer, 1, ++/*529344*/ OPC_CheckChild1Type, MVT::i32, ++/*529346*/ OPC_CheckChild2Integer, 1, ++/*529348*/ OPC_CheckChild2Type, MVT::i32, ++/*529350*/ OPC_CheckChild3Integer, 1, ++/*529352*/ OPC_CheckChild3Type, MVT::i32, ++/*529354*/ OPC_MoveParent, ++/*529355*/ OPC_MoveParent, ++/*529356*/ OPC_MoveParent, ++/*529357*/ OPC_MoveParent, ++/*529358*/ OPC_MoveChild1, ++/*529359*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*529362*/ OPC_CheckChild0Integer, 1, ++/*529364*/ OPC_CheckChild0Type, MVT::i32, ++/*529366*/ OPC_CheckChild1Integer, 1, ++/*529368*/ OPC_CheckChild1Type, MVT::i32, ++/*529370*/ OPC_CheckChild2Integer, 1, ++/*529372*/ OPC_CheckChild2Type, MVT::i32, ++/*529374*/ OPC_CheckChild3Integer, 1, ++/*529376*/ OPC_CheckChild3Type, MVT::i32, ++/*529378*/ OPC_CheckType, MVT::v4i32, ++/*529380*/ OPC_MoveParent, ++/*529381*/ OPC_CheckType, MVT::v4i32, ++/*529383*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*529385*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b), LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*529393*/ 0, /*End of Scope*/ ++/*529394*/ /*Scope*/ 113, /*->529508*/ ++/*529395*/ OPC_MoveChild0, ++/*529396*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*529399*/ OPC_CheckChild0Integer, 1, ++/*529401*/ OPC_CheckChild0Type, MVT::i32, ++/*529403*/ OPC_CheckChild1Integer, 1, ++/*529405*/ OPC_CheckChild1Type, MVT::i32, ++/*529407*/ OPC_CheckChild2Integer, 1, ++/*529409*/ OPC_CheckChild2Type, MVT::i32, ++/*529411*/ OPC_CheckChild3Integer, 1, ++/*529413*/ OPC_CheckChild3Type, MVT::i32, ++/*529415*/ OPC_MoveParent, ++/*529416*/ OPC_MoveChild1, ++/*529417*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*529420*/ OPC_Scope, 42, /*->529464*/ // 2 children in Scope ++/*529422*/ OPC_CheckChild0Same, 1, ++/*529424*/ OPC_CheckChild1Same, 0, ++/*529426*/ OPC_MoveParent, ++/*529427*/ OPC_MoveParent, ++/*529428*/ OPC_MoveParent, ++/*529429*/ OPC_MoveChild1, ++/*529430*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*529433*/ OPC_CheckChild0Integer, 1, ++/*529435*/ OPC_CheckChild0Type, MVT::i32, ++/*529437*/ OPC_CheckChild1Integer, 1, ++/*529439*/ OPC_CheckChild1Type, MVT::i32, ++/*529441*/ OPC_CheckChild2Integer, 1, ++/*529443*/ OPC_CheckChild2Type, MVT::i32, ++/*529445*/ OPC_CheckChild3Integer, 1, ++/*529447*/ OPC_CheckChild3Type, MVT::i32, ++/*529449*/ OPC_CheckType, MVT::v4i32, ++/*529451*/ OPC_MoveParent, ++/*529452*/ OPC_CheckType, MVT::v4i32, ++/*529454*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*529456*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b), LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*529464*/ /*Scope*/ 42, /*->529507*/ ++/*529465*/ OPC_CheckChild0Same, 0, ++/*529467*/ OPC_CheckChild1Same, 1, ++/*529469*/ OPC_MoveParent, ++/*529470*/ OPC_MoveParent, ++/*529471*/ OPC_MoveParent, ++/*529472*/ OPC_MoveChild1, ++/*529473*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*529476*/ OPC_CheckChild0Integer, 1, ++/*529478*/ OPC_CheckChild0Type, MVT::i32, ++/*529480*/ OPC_CheckChild1Integer, 1, ++/*529482*/ OPC_CheckChild1Type, MVT::i32, ++/*529484*/ OPC_CheckChild2Integer, 1, ++/*529486*/ OPC_CheckChild2Type, MVT::i32, ++/*529488*/ OPC_CheckChild3Integer, 1, ++/*529490*/ OPC_CheckChild3Type, MVT::i32, ++/*529492*/ OPC_CheckType, MVT::v4i32, ++/*529494*/ OPC_MoveParent, ++/*529495*/ OPC_CheckType, MVT::v4i32, ++/*529497*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*529499*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b), LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*529507*/ 0, /*End of Scope*/ ++/*529508*/ 0, /*End of Scope*/ ++/*529509*/ /*Scope*/ 6|128,19/*2438*/, /*->531949*/ ++/*529511*/ OPC_RecordChild0, // #0 = $b ++/*529512*/ OPC_Scope, 60|128,6/*828*/, /*->530343*/ // 2 children in Scope ++/*529515*/ OPC_MoveChild1, ++/*529516*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*529519*/ OPC_CheckChild0Integer, 1, ++/*529521*/ OPC_CheckChild0Type, MVT::i32, ++/*529523*/ OPC_CheckChild1Integer, 1, ++/*529525*/ OPC_CheckChild1Type, MVT::i32, ++/*529527*/ OPC_CheckChild2Integer, 1, ++/*529529*/ OPC_CheckChild2Type, MVT::i32, ++/*529531*/ OPC_CheckChild3Integer, 1, ++/*529533*/ OPC_CheckChild3Type, MVT::i32, ++/*529535*/ OPC_MoveParent, ++/*529536*/ OPC_MoveParent, ++/*529537*/ OPC_RecordChild1, // #1 = $a ++/*529538*/ OPC_MoveParent, ++/*529539*/ OPC_MoveChild1, ++/*529540*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*529543*/ OPC_CheckChild0Integer, 31, ++/*529545*/ OPC_CheckChild0Type, MVT::i32, ++/*529547*/ OPC_CheckChild1Integer, 31, ++/*529549*/ OPC_CheckChild1Type, MVT::i32, ++/*529551*/ OPC_CheckChild2Integer, 31, ++/*529553*/ OPC_CheckChild2Type, MVT::i32, ++/*529555*/ OPC_CheckChild3Integer, 31, ++/*529557*/ OPC_CheckChild3Type, MVT::i32, ++/*529559*/ OPC_CheckType, MVT::v4i32, ++/*529561*/ OPC_MoveParent, ++/*529562*/ OPC_MoveParent, ++/*529563*/ OPC_MoveChild1, ++/*529564*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*529567*/ OPC_Scope, 6|128,3/*390*/, /*->529960*/ // 4 children in Scope ++/*529570*/ OPC_MoveChild0, ++/*529571*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*529574*/ OPC_Scope, 63, /*->529639*/ // 6 children in Scope ++/*529576*/ OPC_MoveChild0, ++/*529577*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*529580*/ OPC_CheckChild0Integer, 1, ++/*529582*/ OPC_CheckChild0Type, MVT::i32, ++/*529584*/ OPC_CheckChild1Integer, 1, ++/*529586*/ OPC_CheckChild1Type, MVT::i32, ++/*529588*/ OPC_CheckChild2Integer, 1, ++/*529590*/ OPC_CheckChild2Type, MVT::i32, ++/*529592*/ OPC_CheckChild3Integer, 1, ++/*529594*/ OPC_CheckChild3Type, MVT::i32, ++/*529596*/ OPC_MoveParent, ++/*529597*/ OPC_CheckChild1Same, 1, ++/*529599*/ OPC_MoveParent, ++/*529600*/ OPC_CheckChild1Same, 0, ++/*529602*/ OPC_MoveParent, ++/*529603*/ OPC_MoveParent, ++/*529604*/ OPC_MoveChild1, ++/*529605*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*529608*/ OPC_CheckChild0Integer, 1, ++/*529610*/ OPC_CheckChild0Type, MVT::i32, ++/*529612*/ OPC_CheckChild1Integer, 1, ++/*529614*/ OPC_CheckChild1Type, MVT::i32, ++/*529616*/ OPC_CheckChild2Integer, 1, ++/*529618*/ OPC_CheckChild2Type, MVT::i32, ++/*529620*/ OPC_CheckChild3Integer, 1, ++/*529622*/ OPC_CheckChild3Type, MVT::i32, ++/*529624*/ OPC_CheckType, MVT::v4i32, ++/*529626*/ OPC_MoveParent, ++/*529627*/ OPC_CheckType, MVT::v4i32, ++/*529629*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*529631*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a), LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*529639*/ /*Scope*/ 63, /*->529703*/ ++/*529640*/ OPC_CheckChild0Same, 1, ++/*529642*/ OPC_MoveChild1, ++/*529643*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*529646*/ OPC_CheckChild0Integer, 1, ++/*529648*/ OPC_CheckChild0Type, MVT::i32, ++/*529650*/ OPC_CheckChild1Integer, 1, ++/*529652*/ OPC_CheckChild1Type, MVT::i32, ++/*529654*/ OPC_CheckChild2Integer, 1, ++/*529656*/ OPC_CheckChild2Type, MVT::i32, ++/*529658*/ OPC_CheckChild3Integer, 1, ++/*529660*/ OPC_CheckChild3Type, MVT::i32, ++/*529662*/ OPC_MoveParent, ++/*529663*/ OPC_MoveParent, ++/*529664*/ OPC_CheckChild1Same, 0, ++/*529666*/ OPC_MoveParent, ++/*529667*/ OPC_MoveParent, ++/*529668*/ OPC_MoveChild1, ++/*529669*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*529672*/ OPC_CheckChild0Integer, 1, ++/*529674*/ OPC_CheckChild0Type, MVT::i32, ++/*529676*/ OPC_CheckChild1Integer, 1, ++/*529678*/ OPC_CheckChild1Type, MVT::i32, ++/*529680*/ OPC_CheckChild2Integer, 1, ++/*529682*/ OPC_CheckChild2Type, MVT::i32, ++/*529684*/ OPC_CheckChild3Integer, 1, ++/*529686*/ OPC_CheckChild3Type, MVT::i32, ++/*529688*/ OPC_CheckType, MVT::v4i32, ++/*529690*/ OPC_MoveParent, ++/*529691*/ OPC_CheckType, MVT::v4i32, ++/*529693*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*529695*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*529703*/ /*Scope*/ 63, /*->529767*/ ++/*529704*/ OPC_MoveChild0, ++/*529705*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*529708*/ OPC_CheckChild0Integer, 1, ++/*529710*/ OPC_CheckChild0Type, MVT::i32, ++/*529712*/ OPC_CheckChild1Integer, 1, ++/*529714*/ OPC_CheckChild1Type, MVT::i32, ++/*529716*/ OPC_CheckChild2Integer, 1, ++/*529718*/ OPC_CheckChild2Type, MVT::i32, ++/*529720*/ OPC_CheckChild3Integer, 1, ++/*529722*/ OPC_CheckChild3Type, MVT::i32, ++/*529724*/ OPC_MoveParent, ++/*529725*/ OPC_CheckChild1Same, 0, ++/*529727*/ OPC_MoveParent, ++/*529728*/ OPC_CheckChild1Same, 1, ++/*529730*/ OPC_MoveParent, ++/*529731*/ OPC_MoveParent, ++/*529732*/ OPC_MoveChild1, ++/*529733*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*529736*/ OPC_CheckChild0Integer, 1, ++/*529738*/ OPC_CheckChild0Type, MVT::i32, ++/*529740*/ OPC_CheckChild1Integer, 1, ++/*529742*/ OPC_CheckChild1Type, MVT::i32, ++/*529744*/ OPC_CheckChild2Integer, 1, ++/*529746*/ OPC_CheckChild2Type, MVT::i32, ++/*529748*/ OPC_CheckChild3Integer, 1, ++/*529750*/ OPC_CheckChild3Type, MVT::i32, ++/*529752*/ OPC_CheckType, MVT::v4i32, ++/*529754*/ OPC_MoveParent, ++/*529755*/ OPC_CheckType, MVT::v4i32, ++/*529757*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*529759*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b), LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*529767*/ /*Scope*/ 63, /*->529831*/ ++/*529768*/ OPC_CheckChild0Same, 0, ++/*529770*/ OPC_MoveChild1, ++/*529771*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*529774*/ OPC_CheckChild0Integer, 1, ++/*529776*/ OPC_CheckChild0Type, MVT::i32, ++/*529778*/ OPC_CheckChild1Integer, 1, ++/*529780*/ OPC_CheckChild1Type, MVT::i32, ++/*529782*/ OPC_CheckChild2Integer, 1, ++/*529784*/ OPC_CheckChild2Type, MVT::i32, ++/*529786*/ OPC_CheckChild3Integer, 1, ++/*529788*/ OPC_CheckChild3Type, MVT::i32, ++/*529790*/ OPC_MoveParent, ++/*529791*/ OPC_MoveParent, ++/*529792*/ OPC_CheckChild1Same, 1, ++/*529794*/ OPC_MoveParent, ++/*529795*/ OPC_MoveParent, ++/*529796*/ OPC_MoveChild1, ++/*529797*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*529800*/ OPC_CheckChild0Integer, 1, ++/*529802*/ OPC_CheckChild0Type, MVT::i32, ++/*529804*/ OPC_CheckChild1Integer, 1, ++/*529806*/ OPC_CheckChild1Type, MVT::i32, ++/*529808*/ OPC_CheckChild2Integer, 1, ++/*529810*/ OPC_CheckChild2Type, MVT::i32, ++/*529812*/ OPC_CheckChild3Integer, 1, ++/*529814*/ OPC_CheckChild3Type, MVT::i32, ++/*529816*/ OPC_CheckType, MVT::v4i32, ++/*529818*/ OPC_MoveParent, ++/*529819*/ OPC_CheckType, MVT::v4i32, ++/*529821*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*529823*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*529831*/ /*Scope*/ 63, /*->529895*/ ++/*529832*/ OPC_CheckChild0Same, 1, ++/*529834*/ OPC_CheckChild1Same, 0, ++/*529836*/ OPC_MoveParent, ++/*529837*/ OPC_MoveChild1, ++/*529838*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*529841*/ OPC_CheckChild0Integer, 1, ++/*529843*/ OPC_CheckChild0Type, MVT::i32, ++/*529845*/ OPC_CheckChild1Integer, 1, ++/*529847*/ OPC_CheckChild1Type, MVT::i32, ++/*529849*/ OPC_CheckChild2Integer, 1, ++/*529851*/ OPC_CheckChild2Type, MVT::i32, ++/*529853*/ OPC_CheckChild3Integer, 1, ++/*529855*/ OPC_CheckChild3Type, MVT::i32, ++/*529857*/ OPC_MoveParent, ++/*529858*/ OPC_MoveParent, ++/*529859*/ OPC_MoveParent, ++/*529860*/ OPC_MoveChild1, ++/*529861*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*529864*/ OPC_CheckChild0Integer, 1, ++/*529866*/ OPC_CheckChild0Type, MVT::i32, ++/*529868*/ OPC_CheckChild1Integer, 1, ++/*529870*/ OPC_CheckChild1Type, MVT::i32, ++/*529872*/ OPC_CheckChild2Integer, 1, ++/*529874*/ OPC_CheckChild2Type, MVT::i32, ++/*529876*/ OPC_CheckChild3Integer, 1, ++/*529878*/ OPC_CheckChild3Type, MVT::i32, ++/*529880*/ OPC_CheckType, MVT::v4i32, ++/*529882*/ OPC_MoveParent, ++/*529883*/ OPC_CheckType, MVT::v4i32, ++/*529885*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*529887*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*529895*/ /*Scope*/ 63, /*->529959*/ ++/*529896*/ OPC_CheckChild0Same, 0, ++/*529898*/ OPC_CheckChild1Same, 1, ++/*529900*/ OPC_MoveParent, ++/*529901*/ OPC_MoveChild1, ++/*529902*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*529905*/ OPC_CheckChild0Integer, 1, ++/*529907*/ OPC_CheckChild0Type, MVT::i32, ++/*529909*/ OPC_CheckChild1Integer, 1, ++/*529911*/ OPC_CheckChild1Type, MVT::i32, ++/*529913*/ OPC_CheckChild2Integer, 1, ++/*529915*/ OPC_CheckChild2Type, MVT::i32, ++/*529917*/ OPC_CheckChild3Integer, 1, ++/*529919*/ OPC_CheckChild3Type, MVT::i32, ++/*529921*/ OPC_MoveParent, ++/*529922*/ OPC_MoveParent, ++/*529923*/ OPC_MoveParent, ++/*529924*/ OPC_MoveChild1, ++/*529925*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*529928*/ OPC_CheckChild0Integer, 1, ++/*529930*/ OPC_CheckChild0Type, MVT::i32, ++/*529932*/ OPC_CheckChild1Integer, 1, ++/*529934*/ OPC_CheckChild1Type, MVT::i32, ++/*529936*/ OPC_CheckChild2Integer, 1, ++/*529938*/ OPC_CheckChild2Type, MVT::i32, ++/*529940*/ OPC_CheckChild3Integer, 1, ++/*529942*/ OPC_CheckChild3Type, MVT::i32, ++/*529944*/ OPC_CheckType, MVT::v4i32, ++/*529946*/ OPC_MoveParent, ++/*529947*/ OPC_CheckType, MVT::v4i32, ++/*529949*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*529951*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*529959*/ 0, /*End of Scope*/ ++/*529960*/ /*Scope*/ 4|128,1/*132*/, /*->530094*/ ++/*529962*/ OPC_CheckChild0Same, 0, ++/*529964*/ OPC_MoveChild1, ++/*529965*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*529968*/ OPC_Scope, 61, /*->530031*/ // 2 children in Scope ++/*529970*/ OPC_MoveChild0, ++/*529971*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*529974*/ OPC_CheckChild0Integer, 1, ++/*529976*/ OPC_CheckChild0Type, MVT::i32, ++/*529978*/ OPC_CheckChild1Integer, 1, ++/*529980*/ OPC_CheckChild1Type, MVT::i32, ++/*529982*/ OPC_CheckChild2Integer, 1, ++/*529984*/ OPC_CheckChild2Type, MVT::i32, ++/*529986*/ OPC_CheckChild3Integer, 1, ++/*529988*/ OPC_CheckChild3Type, MVT::i32, ++/*529990*/ OPC_MoveParent, ++/*529991*/ OPC_CheckChild1Same, 1, ++/*529993*/ OPC_MoveParent, ++/*529994*/ OPC_MoveParent, ++/*529995*/ OPC_MoveParent, ++/*529996*/ OPC_MoveChild1, ++/*529997*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*530000*/ OPC_CheckChild0Integer, 1, ++/*530002*/ OPC_CheckChild0Type, MVT::i32, ++/*530004*/ OPC_CheckChild1Integer, 1, ++/*530006*/ OPC_CheckChild1Type, MVT::i32, ++/*530008*/ OPC_CheckChild2Integer, 1, ++/*530010*/ OPC_CheckChild2Type, MVT::i32, ++/*530012*/ OPC_CheckChild3Integer, 1, ++/*530014*/ OPC_CheckChild3Type, MVT::i32, ++/*530016*/ OPC_CheckType, MVT::v4i32, ++/*530018*/ OPC_MoveParent, ++/*530019*/ OPC_CheckType, MVT::v4i32, ++/*530021*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*530023*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*530031*/ /*Scope*/ 61, /*->530093*/ ++/*530032*/ OPC_CheckChild0Same, 1, ++/*530034*/ OPC_MoveChild1, ++/*530035*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*530038*/ OPC_CheckChild0Integer, 1, ++/*530040*/ OPC_CheckChild0Type, MVT::i32, ++/*530042*/ OPC_CheckChild1Integer, 1, ++/*530044*/ OPC_CheckChild1Type, MVT::i32, ++/*530046*/ OPC_CheckChild2Integer, 1, ++/*530048*/ OPC_CheckChild2Type, MVT::i32, ++/*530050*/ OPC_CheckChild3Integer, 1, ++/*530052*/ OPC_CheckChild3Type, MVT::i32, ++/*530054*/ OPC_MoveParent, ++/*530055*/ OPC_MoveParent, ++/*530056*/ OPC_MoveParent, ++/*530057*/ OPC_MoveParent, ++/*530058*/ OPC_MoveChild1, ++/*530059*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*530062*/ OPC_CheckChild0Integer, 1, ++/*530064*/ OPC_CheckChild0Type, MVT::i32, ++/*530066*/ OPC_CheckChild1Integer, 1, ++/*530068*/ OPC_CheckChild1Type, MVT::i32, ++/*530070*/ OPC_CheckChild2Integer, 1, ++/*530072*/ OPC_CheckChild2Type, MVT::i32, ++/*530074*/ OPC_CheckChild3Integer, 1, ++/*530076*/ OPC_CheckChild3Type, MVT::i32, ++/*530078*/ OPC_CheckType, MVT::v4i32, ++/*530080*/ OPC_MoveParent, ++/*530081*/ OPC_CheckType, MVT::v4i32, ++/*530083*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*530085*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*530093*/ 0, /*End of Scope*/ ++/*530094*/ /*Scope*/ 4|128,1/*132*/, /*->530228*/ ++/*530096*/ OPC_CheckChild0Same, 1, ++/*530098*/ OPC_MoveChild1, ++/*530099*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*530102*/ OPC_Scope, 61, /*->530165*/ // 2 children in Scope ++/*530104*/ OPC_MoveChild0, ++/*530105*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*530108*/ OPC_CheckChild0Integer, 1, ++/*530110*/ OPC_CheckChild0Type, MVT::i32, ++/*530112*/ OPC_CheckChild1Integer, 1, ++/*530114*/ OPC_CheckChild1Type, MVT::i32, ++/*530116*/ OPC_CheckChild2Integer, 1, ++/*530118*/ OPC_CheckChild2Type, MVT::i32, ++/*530120*/ OPC_CheckChild3Integer, 1, ++/*530122*/ OPC_CheckChild3Type, MVT::i32, ++/*530124*/ OPC_MoveParent, ++/*530125*/ OPC_CheckChild1Same, 0, ++/*530127*/ OPC_MoveParent, ++/*530128*/ OPC_MoveParent, ++/*530129*/ OPC_MoveParent, ++/*530130*/ OPC_MoveChild1, ++/*530131*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*530134*/ OPC_CheckChild0Integer, 1, ++/*530136*/ OPC_CheckChild0Type, MVT::i32, ++/*530138*/ OPC_CheckChild1Integer, 1, ++/*530140*/ OPC_CheckChild1Type, MVT::i32, ++/*530142*/ OPC_CheckChild2Integer, 1, ++/*530144*/ OPC_CheckChild2Type, MVT::i32, ++/*530146*/ OPC_CheckChild3Integer, 1, ++/*530148*/ OPC_CheckChild3Type, MVT::i32, ++/*530150*/ OPC_CheckType, MVT::v4i32, ++/*530152*/ OPC_MoveParent, ++/*530153*/ OPC_CheckType, MVT::v4i32, ++/*530155*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*530157*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*530165*/ /*Scope*/ 61, /*->530227*/ ++/*530166*/ OPC_CheckChild0Same, 0, ++/*530168*/ OPC_MoveChild1, ++/*530169*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*530172*/ OPC_CheckChild0Integer, 1, ++/*530174*/ OPC_CheckChild0Type, MVT::i32, ++/*530176*/ OPC_CheckChild1Integer, 1, ++/*530178*/ OPC_CheckChild1Type, MVT::i32, ++/*530180*/ OPC_CheckChild2Integer, 1, ++/*530182*/ OPC_CheckChild2Type, MVT::i32, ++/*530184*/ OPC_CheckChild3Integer, 1, ++/*530186*/ OPC_CheckChild3Type, MVT::i32, ++/*530188*/ OPC_MoveParent, ++/*530189*/ OPC_MoveParent, ++/*530190*/ OPC_MoveParent, ++/*530191*/ OPC_MoveParent, ++/*530192*/ OPC_MoveChild1, ++/*530193*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*530196*/ OPC_CheckChild0Integer, 1, ++/*530198*/ OPC_CheckChild0Type, MVT::i32, ++/*530200*/ OPC_CheckChild1Integer, 1, ++/*530202*/ OPC_CheckChild1Type, MVT::i32, ++/*530204*/ OPC_CheckChild2Integer, 1, ++/*530206*/ OPC_CheckChild2Type, MVT::i32, ++/*530208*/ OPC_CheckChild3Integer, 1, ++/*530210*/ OPC_CheckChild3Type, MVT::i32, ++/*530212*/ OPC_CheckType, MVT::v4i32, ++/*530214*/ OPC_MoveParent, ++/*530215*/ OPC_CheckType, MVT::v4i32, ++/*530217*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*530219*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*530227*/ 0, /*End of Scope*/ ++/*530228*/ /*Scope*/ 113, /*->530342*/ ++/*530229*/ OPC_MoveChild0, ++/*530230*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*530233*/ OPC_CheckChild0Integer, 1, ++/*530235*/ OPC_CheckChild0Type, MVT::i32, ++/*530237*/ OPC_CheckChild1Integer, 1, ++/*530239*/ OPC_CheckChild1Type, MVT::i32, ++/*530241*/ OPC_CheckChild2Integer, 1, ++/*530243*/ OPC_CheckChild2Type, MVT::i32, ++/*530245*/ OPC_CheckChild3Integer, 1, ++/*530247*/ OPC_CheckChild3Type, MVT::i32, ++/*530249*/ OPC_MoveParent, ++/*530250*/ OPC_MoveChild1, ++/*530251*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*530254*/ OPC_Scope, 42, /*->530298*/ // 2 children in Scope ++/*530256*/ OPC_CheckChild0Same, 1, ++/*530258*/ OPC_CheckChild1Same, 0, ++/*530260*/ OPC_MoveParent, ++/*530261*/ OPC_MoveParent, ++/*530262*/ OPC_MoveParent, ++/*530263*/ OPC_MoveChild1, ++/*530264*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*530267*/ OPC_CheckChild0Integer, 1, ++/*530269*/ OPC_CheckChild0Type, MVT::i32, ++/*530271*/ OPC_CheckChild1Integer, 1, ++/*530273*/ OPC_CheckChild1Type, MVT::i32, ++/*530275*/ OPC_CheckChild2Integer, 1, ++/*530277*/ OPC_CheckChild2Type, MVT::i32, ++/*530279*/ OPC_CheckChild3Integer, 1, ++/*530281*/ OPC_CheckChild3Type, MVT::i32, ++/*530283*/ OPC_CheckType, MVT::v4i32, ++/*530285*/ OPC_MoveParent, ++/*530286*/ OPC_CheckType, MVT::v4i32, ++/*530288*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*530290*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*530298*/ /*Scope*/ 42, /*->530341*/ ++/*530299*/ OPC_CheckChild0Same, 0, ++/*530301*/ OPC_CheckChild1Same, 1, ++/*530303*/ OPC_MoveParent, ++/*530304*/ OPC_MoveParent, ++/*530305*/ OPC_MoveParent, ++/*530306*/ OPC_MoveChild1, ++/*530307*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*530310*/ OPC_CheckChild0Integer, 1, ++/*530312*/ OPC_CheckChild0Type, MVT::i32, ++/*530314*/ OPC_CheckChild1Integer, 1, ++/*530316*/ OPC_CheckChild1Type, MVT::i32, ++/*530318*/ OPC_CheckChild2Integer, 1, ++/*530320*/ OPC_CheckChild2Type, MVT::i32, ++/*530322*/ OPC_CheckChild3Integer, 1, ++/*530324*/ OPC_CheckChild3Type, MVT::i32, ++/*530326*/ OPC_CheckType, MVT::v4i32, ++/*530328*/ OPC_MoveParent, ++/*530329*/ OPC_CheckType, MVT::v4i32, ++/*530331*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*530333*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*530341*/ 0, /*End of Scope*/ ++/*530342*/ 0, /*End of Scope*/ ++/*530343*/ /*Scope*/ 67|128,12/*1603*/, /*->531948*/ ++/*530345*/ OPC_RecordChild1, // #1 = $b ++/*530346*/ OPC_MoveParent, ++/*530347*/ OPC_MoveChild1, ++/*530348*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*530351*/ OPC_CheckChild0Integer, 1, ++/*530353*/ OPC_CheckChild0Type, MVT::i32, ++/*530355*/ OPC_CheckChild1Integer, 1, ++/*530357*/ OPC_CheckChild1Type, MVT::i32, ++/*530359*/ OPC_CheckChild2Integer, 1, ++/*530361*/ OPC_CheckChild2Type, MVT::i32, ++/*530363*/ OPC_CheckChild3Integer, 1, ++/*530365*/ OPC_CheckChild3Type, MVT::i32, ++/*530367*/ OPC_MoveParent, ++/*530368*/ OPC_MoveParent, ++/*530369*/ OPC_MoveChild1, ++/*530370*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*530373*/ OPC_CheckChild0Integer, 31, ++/*530375*/ OPC_CheckChild0Type, MVT::i32, ++/*530377*/ OPC_CheckChild1Integer, 31, ++/*530379*/ OPC_CheckChild1Type, MVT::i32, ++/*530381*/ OPC_CheckChild2Integer, 31, ++/*530383*/ OPC_CheckChild2Type, MVT::i32, ++/*530385*/ OPC_CheckChild3Integer, 31, ++/*530387*/ OPC_CheckChild3Type, MVT::i32, ++/*530389*/ OPC_CheckType, MVT::v4i32, ++/*530391*/ OPC_MoveParent, ++/*530392*/ OPC_MoveParent, ++/*530393*/ OPC_MoveChild1, ++/*530394*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*530397*/ OPC_Scope, 6|128,3/*390*/, /*->530790*/ // 7 children in Scope ++/*530400*/ OPC_MoveChild0, ++/*530401*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*530404*/ OPC_Scope, 63, /*->530469*/ // 6 children in Scope ++/*530406*/ OPC_MoveChild0, ++/*530407*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*530410*/ OPC_CheckChild0Integer, 1, ++/*530412*/ OPC_CheckChild0Type, MVT::i32, ++/*530414*/ OPC_CheckChild1Integer, 1, ++/*530416*/ OPC_CheckChild1Type, MVT::i32, ++/*530418*/ OPC_CheckChild2Integer, 1, ++/*530420*/ OPC_CheckChild2Type, MVT::i32, ++/*530422*/ OPC_CheckChild3Integer, 1, ++/*530424*/ OPC_CheckChild3Type, MVT::i32, ++/*530426*/ OPC_MoveParent, ++/*530427*/ OPC_CheckChild1Same, 0, ++/*530429*/ OPC_MoveParent, ++/*530430*/ OPC_CheckChild1Same, 1, ++/*530432*/ OPC_MoveParent, ++/*530433*/ OPC_MoveParent, ++/*530434*/ OPC_MoveChild1, ++/*530435*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*530438*/ OPC_CheckChild0Integer, 1, ++/*530440*/ OPC_CheckChild0Type, MVT::i32, ++/*530442*/ OPC_CheckChild1Integer, 1, ++/*530444*/ OPC_CheckChild1Type, MVT::i32, ++/*530446*/ OPC_CheckChild2Integer, 1, ++/*530448*/ OPC_CheckChild2Type, MVT::i32, ++/*530450*/ OPC_CheckChild3Integer, 1, ++/*530452*/ OPC_CheckChild3Type, MVT::i32, ++/*530454*/ OPC_CheckType, MVT::v4i32, ++/*530456*/ OPC_MoveParent, ++/*530457*/ OPC_CheckType, MVT::v4i32, ++/*530459*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*530461*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a), LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*530469*/ /*Scope*/ 63, /*->530533*/ ++/*530470*/ OPC_CheckChild0Same, 0, ++/*530472*/ OPC_MoveChild1, ++/*530473*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*530476*/ OPC_CheckChild0Integer, 1, ++/*530478*/ OPC_CheckChild0Type, MVT::i32, ++/*530480*/ OPC_CheckChild1Integer, 1, ++/*530482*/ OPC_CheckChild1Type, MVT::i32, ++/*530484*/ OPC_CheckChild2Integer, 1, ++/*530486*/ OPC_CheckChild2Type, MVT::i32, ++/*530488*/ OPC_CheckChild3Integer, 1, ++/*530490*/ OPC_CheckChild3Type, MVT::i32, ++/*530492*/ OPC_MoveParent, ++/*530493*/ OPC_MoveParent, ++/*530494*/ OPC_CheckChild1Same, 1, ++/*530496*/ OPC_MoveParent, ++/*530497*/ OPC_MoveParent, ++/*530498*/ OPC_MoveChild1, ++/*530499*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*530502*/ OPC_CheckChild0Integer, 1, ++/*530504*/ OPC_CheckChild0Type, MVT::i32, ++/*530506*/ OPC_CheckChild1Integer, 1, ++/*530508*/ OPC_CheckChild1Type, MVT::i32, ++/*530510*/ OPC_CheckChild2Integer, 1, ++/*530512*/ OPC_CheckChild2Type, MVT::i32, ++/*530514*/ OPC_CheckChild3Integer, 1, ++/*530516*/ OPC_CheckChild3Type, MVT::i32, ++/*530518*/ OPC_CheckType, MVT::v4i32, ++/*530520*/ OPC_MoveParent, ++/*530521*/ OPC_CheckType, MVT::v4i32, ++/*530523*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*530525*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*530533*/ /*Scope*/ 63, /*->530597*/ ++/*530534*/ OPC_MoveChild0, ++/*530535*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*530538*/ OPC_CheckChild0Integer, 1, ++/*530540*/ OPC_CheckChild0Type, MVT::i32, ++/*530542*/ OPC_CheckChild1Integer, 1, ++/*530544*/ OPC_CheckChild1Type, MVT::i32, ++/*530546*/ OPC_CheckChild2Integer, 1, ++/*530548*/ OPC_CheckChild2Type, MVT::i32, ++/*530550*/ OPC_CheckChild3Integer, 1, ++/*530552*/ OPC_CheckChild3Type, MVT::i32, ++/*530554*/ OPC_MoveParent, ++/*530555*/ OPC_CheckChild1Same, 1, ++/*530557*/ OPC_MoveParent, ++/*530558*/ OPC_CheckChild1Same, 0, ++/*530560*/ OPC_MoveParent, ++/*530561*/ OPC_MoveParent, ++/*530562*/ OPC_MoveChild1, ++/*530563*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*530566*/ OPC_CheckChild0Integer, 1, ++/*530568*/ OPC_CheckChild0Type, MVT::i32, ++/*530570*/ OPC_CheckChild1Integer, 1, ++/*530572*/ OPC_CheckChild1Type, MVT::i32, ++/*530574*/ OPC_CheckChild2Integer, 1, ++/*530576*/ OPC_CheckChild2Type, MVT::i32, ++/*530578*/ OPC_CheckChild3Integer, 1, ++/*530580*/ OPC_CheckChild3Type, MVT::i32, ++/*530582*/ OPC_CheckType, MVT::v4i32, ++/*530584*/ OPC_MoveParent, ++/*530585*/ OPC_CheckType, MVT::v4i32, ++/*530587*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*530589*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b), LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*530597*/ /*Scope*/ 63, /*->530661*/ ++/*530598*/ OPC_CheckChild0Same, 1, ++/*530600*/ OPC_MoveChild1, ++/*530601*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*530604*/ OPC_CheckChild0Integer, 1, ++/*530606*/ OPC_CheckChild0Type, MVT::i32, ++/*530608*/ OPC_CheckChild1Integer, 1, ++/*530610*/ OPC_CheckChild1Type, MVT::i32, ++/*530612*/ OPC_CheckChild2Integer, 1, ++/*530614*/ OPC_CheckChild2Type, MVT::i32, ++/*530616*/ OPC_CheckChild3Integer, 1, ++/*530618*/ OPC_CheckChild3Type, MVT::i32, ++/*530620*/ OPC_MoveParent, ++/*530621*/ OPC_MoveParent, ++/*530622*/ OPC_CheckChild1Same, 0, ++/*530624*/ OPC_MoveParent, ++/*530625*/ OPC_MoveParent, ++/*530626*/ OPC_MoveChild1, ++/*530627*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*530630*/ OPC_CheckChild0Integer, 1, ++/*530632*/ OPC_CheckChild0Type, MVT::i32, ++/*530634*/ OPC_CheckChild1Integer, 1, ++/*530636*/ OPC_CheckChild1Type, MVT::i32, ++/*530638*/ OPC_CheckChild2Integer, 1, ++/*530640*/ OPC_CheckChild2Type, MVT::i32, ++/*530642*/ OPC_CheckChild3Integer, 1, ++/*530644*/ OPC_CheckChild3Type, MVT::i32, ++/*530646*/ OPC_CheckType, MVT::v4i32, ++/*530648*/ OPC_MoveParent, ++/*530649*/ OPC_CheckType, MVT::v4i32, ++/*530651*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*530653*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*530661*/ /*Scope*/ 63, /*->530725*/ ++/*530662*/ OPC_CheckChild0Same, 0, ++/*530664*/ OPC_CheckChild1Same, 1, ++/*530666*/ OPC_MoveParent, ++/*530667*/ OPC_MoveChild1, ++/*530668*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*530671*/ OPC_CheckChild0Integer, 1, ++/*530673*/ OPC_CheckChild0Type, MVT::i32, ++/*530675*/ OPC_CheckChild1Integer, 1, ++/*530677*/ OPC_CheckChild1Type, MVT::i32, ++/*530679*/ OPC_CheckChild2Integer, 1, ++/*530681*/ OPC_CheckChild2Type, MVT::i32, ++/*530683*/ OPC_CheckChild3Integer, 1, ++/*530685*/ OPC_CheckChild3Type, MVT::i32, ++/*530687*/ OPC_MoveParent, ++/*530688*/ OPC_MoveParent, ++/*530689*/ OPC_MoveParent, ++/*530690*/ OPC_MoveChild1, ++/*530691*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*530694*/ OPC_CheckChild0Integer, 1, ++/*530696*/ OPC_CheckChild0Type, MVT::i32, ++/*530698*/ OPC_CheckChild1Integer, 1, ++/*530700*/ OPC_CheckChild1Type, MVT::i32, ++/*530702*/ OPC_CheckChild2Integer, 1, ++/*530704*/ OPC_CheckChild2Type, MVT::i32, ++/*530706*/ OPC_CheckChild3Integer, 1, ++/*530708*/ OPC_CheckChild3Type, MVT::i32, ++/*530710*/ OPC_CheckType, MVT::v4i32, ++/*530712*/ OPC_MoveParent, ++/*530713*/ OPC_CheckType, MVT::v4i32, ++/*530715*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*530717*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*530725*/ /*Scope*/ 63, /*->530789*/ ++/*530726*/ OPC_CheckChild0Same, 1, ++/*530728*/ OPC_CheckChild1Same, 0, ++/*530730*/ OPC_MoveParent, ++/*530731*/ OPC_MoveChild1, ++/*530732*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*530735*/ OPC_CheckChild0Integer, 1, ++/*530737*/ OPC_CheckChild0Type, MVT::i32, ++/*530739*/ OPC_CheckChild1Integer, 1, ++/*530741*/ OPC_CheckChild1Type, MVT::i32, ++/*530743*/ OPC_CheckChild2Integer, 1, ++/*530745*/ OPC_CheckChild2Type, MVT::i32, ++/*530747*/ OPC_CheckChild3Integer, 1, ++/*530749*/ OPC_CheckChild3Type, MVT::i32, ++/*530751*/ OPC_MoveParent, ++/*530752*/ OPC_MoveParent, ++/*530753*/ OPC_MoveParent, ++/*530754*/ OPC_MoveChild1, ++/*530755*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*530758*/ OPC_CheckChild0Integer, 1, ++/*530760*/ OPC_CheckChild0Type, MVT::i32, ++/*530762*/ OPC_CheckChild1Integer, 1, ++/*530764*/ OPC_CheckChild1Type, MVT::i32, ++/*530766*/ OPC_CheckChild2Integer, 1, ++/*530768*/ OPC_CheckChild2Type, MVT::i32, ++/*530770*/ OPC_CheckChild3Integer, 1, ++/*530772*/ OPC_CheckChild3Type, MVT::i32, ++/*530774*/ OPC_CheckType, MVT::v4i32, ++/*530776*/ OPC_MoveParent, ++/*530777*/ OPC_CheckType, MVT::v4i32, ++/*530779*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*530781*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*530789*/ 0, /*End of Scope*/ ++/*530790*/ /*Scope*/ 4|128,1/*132*/, /*->530924*/ ++/*530792*/ OPC_CheckChild0Same, 1, ++/*530794*/ OPC_MoveChild1, ++/*530795*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*530798*/ OPC_Scope, 61, /*->530861*/ // 2 children in Scope ++/*530800*/ OPC_MoveChild0, ++/*530801*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*530804*/ OPC_CheckChild0Integer, 1, ++/*530806*/ OPC_CheckChild0Type, MVT::i32, ++/*530808*/ OPC_CheckChild1Integer, 1, ++/*530810*/ OPC_CheckChild1Type, MVT::i32, ++/*530812*/ OPC_CheckChild2Integer, 1, ++/*530814*/ OPC_CheckChild2Type, MVT::i32, ++/*530816*/ OPC_CheckChild3Integer, 1, ++/*530818*/ OPC_CheckChild3Type, MVT::i32, ++/*530820*/ OPC_MoveParent, ++/*530821*/ OPC_CheckChild1Same, 0, ++/*530823*/ OPC_MoveParent, ++/*530824*/ OPC_MoveParent, ++/*530825*/ OPC_MoveParent, ++/*530826*/ OPC_MoveChild1, ++/*530827*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*530830*/ OPC_CheckChild0Integer, 1, ++/*530832*/ OPC_CheckChild0Type, MVT::i32, ++/*530834*/ OPC_CheckChild1Integer, 1, ++/*530836*/ OPC_CheckChild1Type, MVT::i32, ++/*530838*/ OPC_CheckChild2Integer, 1, ++/*530840*/ OPC_CheckChild2Type, MVT::i32, ++/*530842*/ OPC_CheckChild3Integer, 1, ++/*530844*/ OPC_CheckChild3Type, MVT::i32, ++/*530846*/ OPC_CheckType, MVT::v4i32, ++/*530848*/ OPC_MoveParent, ++/*530849*/ OPC_CheckType, MVT::v4i32, ++/*530851*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*530853*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*530861*/ /*Scope*/ 61, /*->530923*/ ++/*530862*/ OPC_CheckChild0Same, 0, ++/*530864*/ OPC_MoveChild1, ++/*530865*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*530868*/ OPC_CheckChild0Integer, 1, ++/*530870*/ OPC_CheckChild0Type, MVT::i32, ++/*530872*/ OPC_CheckChild1Integer, 1, ++/*530874*/ OPC_CheckChild1Type, MVT::i32, ++/*530876*/ OPC_CheckChild2Integer, 1, ++/*530878*/ OPC_CheckChild2Type, MVT::i32, ++/*530880*/ OPC_CheckChild3Integer, 1, ++/*530882*/ OPC_CheckChild3Type, MVT::i32, ++/*530884*/ OPC_MoveParent, ++/*530885*/ OPC_MoveParent, ++/*530886*/ OPC_MoveParent, ++/*530887*/ OPC_MoveParent, ++/*530888*/ OPC_MoveChild1, ++/*530889*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*530892*/ OPC_CheckChild0Integer, 1, ++/*530894*/ OPC_CheckChild0Type, MVT::i32, ++/*530896*/ OPC_CheckChild1Integer, 1, ++/*530898*/ OPC_CheckChild1Type, MVT::i32, ++/*530900*/ OPC_CheckChild2Integer, 1, ++/*530902*/ OPC_CheckChild2Type, MVT::i32, ++/*530904*/ OPC_CheckChild3Integer, 1, ++/*530906*/ OPC_CheckChild3Type, MVT::i32, ++/*530908*/ OPC_CheckType, MVT::v4i32, ++/*530910*/ OPC_MoveParent, ++/*530911*/ OPC_CheckType, MVT::v4i32, ++/*530913*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*530915*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*530923*/ 0, /*End of Scope*/ ++/*530924*/ /*Scope*/ 4|128,1/*132*/, /*->531058*/ ++/*530926*/ OPC_CheckChild0Same, 0, ++/*530928*/ OPC_MoveChild1, ++/*530929*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*530932*/ OPC_Scope, 61, /*->530995*/ // 2 children in Scope ++/*530934*/ OPC_MoveChild0, ++/*530935*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*530938*/ OPC_CheckChild0Integer, 1, ++/*530940*/ OPC_CheckChild0Type, MVT::i32, ++/*530942*/ OPC_CheckChild1Integer, 1, ++/*530944*/ OPC_CheckChild1Type, MVT::i32, ++/*530946*/ OPC_CheckChild2Integer, 1, ++/*530948*/ OPC_CheckChild2Type, MVT::i32, ++/*530950*/ OPC_CheckChild3Integer, 1, ++/*530952*/ OPC_CheckChild3Type, MVT::i32, ++/*530954*/ OPC_MoveParent, ++/*530955*/ OPC_CheckChild1Same, 1, ++/*530957*/ OPC_MoveParent, ++/*530958*/ OPC_MoveParent, ++/*530959*/ OPC_MoveParent, ++/*530960*/ OPC_MoveChild1, ++/*530961*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*530964*/ OPC_CheckChild0Integer, 1, ++/*530966*/ OPC_CheckChild0Type, MVT::i32, ++/*530968*/ OPC_CheckChild1Integer, 1, ++/*530970*/ OPC_CheckChild1Type, MVT::i32, ++/*530972*/ OPC_CheckChild2Integer, 1, ++/*530974*/ OPC_CheckChild2Type, MVT::i32, ++/*530976*/ OPC_CheckChild3Integer, 1, ++/*530978*/ OPC_CheckChild3Type, MVT::i32, ++/*530980*/ OPC_CheckType, MVT::v4i32, ++/*530982*/ OPC_MoveParent, ++/*530983*/ OPC_CheckType, MVT::v4i32, ++/*530985*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*530987*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*530995*/ /*Scope*/ 61, /*->531057*/ ++/*530996*/ OPC_CheckChild0Same, 1, ++/*530998*/ OPC_MoveChild1, ++/*530999*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*531002*/ OPC_CheckChild0Integer, 1, ++/*531004*/ OPC_CheckChild0Type, MVT::i32, ++/*531006*/ OPC_CheckChild1Integer, 1, ++/*531008*/ OPC_CheckChild1Type, MVT::i32, ++/*531010*/ OPC_CheckChild2Integer, 1, ++/*531012*/ OPC_CheckChild2Type, MVT::i32, ++/*531014*/ OPC_CheckChild3Integer, 1, ++/*531016*/ OPC_CheckChild3Type, MVT::i32, ++/*531018*/ OPC_MoveParent, ++/*531019*/ OPC_MoveParent, ++/*531020*/ OPC_MoveParent, ++/*531021*/ OPC_MoveParent, ++/*531022*/ OPC_MoveChild1, ++/*531023*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*531026*/ OPC_CheckChild0Integer, 1, ++/*531028*/ OPC_CheckChild0Type, MVT::i32, ++/*531030*/ OPC_CheckChild1Integer, 1, ++/*531032*/ OPC_CheckChild1Type, MVT::i32, ++/*531034*/ OPC_CheckChild2Integer, 1, ++/*531036*/ OPC_CheckChild2Type, MVT::i32, ++/*531038*/ OPC_CheckChild3Integer, 1, ++/*531040*/ OPC_CheckChild3Type, MVT::i32, ++/*531042*/ OPC_CheckType, MVT::v4i32, ++/*531044*/ OPC_MoveParent, ++/*531045*/ OPC_CheckType, MVT::v4i32, ++/*531047*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*531049*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*531057*/ 0, /*End of Scope*/ ++/*531058*/ /*Scope*/ 121|128,3/*505*/, /*->531565*/ ++/*531060*/ OPC_MoveChild0, ++/*531061*/ OPC_SwitchOpcode /*2 cases */, 109, TARGET_VAL(ISD::BUILD_VECTOR),// ->531174 ++/*531065*/ OPC_CheckChild0Integer, 1, ++/*531067*/ OPC_CheckChild0Type, MVT::i32, ++/*531069*/ OPC_CheckChild1Integer, 1, ++/*531071*/ OPC_CheckChild1Type, MVT::i32, ++/*531073*/ OPC_CheckChild2Integer, 1, ++/*531075*/ OPC_CheckChild2Type, MVT::i32, ++/*531077*/ OPC_CheckChild3Integer, 1, ++/*531079*/ OPC_CheckChild3Type, MVT::i32, ++/*531081*/ OPC_MoveParent, ++/*531082*/ OPC_MoveChild1, ++/*531083*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*531086*/ OPC_Scope, 42, /*->531130*/ // 2 children in Scope ++/*531088*/ OPC_CheckChild0Same, 0, ++/*531090*/ OPC_CheckChild1Same, 1, ++/*531092*/ OPC_MoveParent, ++/*531093*/ OPC_MoveParent, ++/*531094*/ OPC_MoveParent, ++/*531095*/ OPC_MoveChild1, ++/*531096*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*531099*/ OPC_CheckChild0Integer, 1, ++/*531101*/ OPC_CheckChild0Type, MVT::i32, ++/*531103*/ OPC_CheckChild1Integer, 1, ++/*531105*/ OPC_CheckChild1Type, MVT::i32, ++/*531107*/ OPC_CheckChild2Integer, 1, ++/*531109*/ OPC_CheckChild2Type, MVT::i32, ++/*531111*/ OPC_CheckChild3Integer, 1, ++/*531113*/ OPC_CheckChild3Type, MVT::i32, ++/*531115*/ OPC_CheckType, MVT::v4i32, ++/*531117*/ OPC_MoveParent, ++/*531118*/ OPC_CheckType, MVT::v4i32, ++/*531120*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*531122*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*531130*/ /*Scope*/ 42, /*->531173*/ ++/*531131*/ OPC_CheckChild0Same, 1, ++/*531133*/ OPC_CheckChild1Same, 0, ++/*531135*/ OPC_MoveParent, ++/*531136*/ OPC_MoveParent, ++/*531137*/ OPC_MoveParent, ++/*531138*/ OPC_MoveChild1, ++/*531139*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*531142*/ OPC_CheckChild0Integer, 1, ++/*531144*/ OPC_CheckChild0Type, MVT::i32, ++/*531146*/ OPC_CheckChild1Integer, 1, ++/*531148*/ OPC_CheckChild1Type, MVT::i32, ++/*531150*/ OPC_CheckChild2Integer, 1, ++/*531152*/ OPC_CheckChild2Type, MVT::i32, ++/*531154*/ OPC_CheckChild3Integer, 1, ++/*531156*/ OPC_CheckChild3Type, MVT::i32, ++/*531158*/ OPC_CheckType, MVT::v4i32, ++/*531160*/ OPC_MoveParent, ++/*531161*/ OPC_CheckType, MVT::v4i32, ++/*531163*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*531165*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*531173*/ 0, /*End of Scope*/ ++/*531174*/ /*SwitchOpcode*/ 2|128,3/*386*/, TARGET_VAL(ISD::ADD),// ->531564 ++/*531178*/ OPC_Scope, 63, /*->531243*/ // 6 children in Scope ++/*531180*/ OPC_MoveChild0, ++/*531181*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*531184*/ OPC_CheckChild0Integer, 1, ++/*531186*/ OPC_CheckChild0Type, MVT::i32, ++/*531188*/ OPC_CheckChild1Integer, 1, ++/*531190*/ OPC_CheckChild1Type, MVT::i32, ++/*531192*/ OPC_CheckChild2Integer, 1, ++/*531194*/ OPC_CheckChild2Type, MVT::i32, ++/*531196*/ OPC_CheckChild3Integer, 1, ++/*531198*/ OPC_CheckChild3Type, MVT::i32, ++/*531200*/ OPC_MoveParent, ++/*531201*/ OPC_CheckChild1Same, 1, ++/*531203*/ OPC_MoveParent, ++/*531204*/ OPC_CheckChild1Same, 0, ++/*531206*/ OPC_MoveParent, ++/*531207*/ OPC_MoveParent, ++/*531208*/ OPC_MoveChild1, ++/*531209*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*531212*/ OPC_CheckChild0Integer, 1, ++/*531214*/ OPC_CheckChild0Type, MVT::i32, ++/*531216*/ OPC_CheckChild1Integer, 1, ++/*531218*/ OPC_CheckChild1Type, MVT::i32, ++/*531220*/ OPC_CheckChild2Integer, 1, ++/*531222*/ OPC_CheckChild2Type, MVT::i32, ++/*531224*/ OPC_CheckChild3Integer, 1, ++/*531226*/ OPC_CheckChild3Type, MVT::i32, ++/*531228*/ OPC_CheckType, MVT::v4i32, ++/*531230*/ OPC_MoveParent, ++/*531231*/ OPC_CheckType, MVT::v4i32, ++/*531233*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*531235*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a), LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*531243*/ /*Scope*/ 63, /*->531307*/ ++/*531244*/ OPC_CheckChild0Same, 1, ++/*531246*/ OPC_MoveChild1, ++/*531247*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*531250*/ OPC_CheckChild0Integer, 1, ++/*531252*/ OPC_CheckChild0Type, MVT::i32, ++/*531254*/ OPC_CheckChild1Integer, 1, ++/*531256*/ OPC_CheckChild1Type, MVT::i32, ++/*531258*/ OPC_CheckChild2Integer, 1, ++/*531260*/ OPC_CheckChild2Type, MVT::i32, ++/*531262*/ OPC_CheckChild3Integer, 1, ++/*531264*/ OPC_CheckChild3Type, MVT::i32, ++/*531266*/ OPC_MoveParent, ++/*531267*/ OPC_MoveParent, ++/*531268*/ OPC_CheckChild1Same, 0, ++/*531270*/ OPC_MoveParent, ++/*531271*/ OPC_MoveParent, ++/*531272*/ OPC_MoveChild1, ++/*531273*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*531276*/ OPC_CheckChild0Integer, 1, ++/*531278*/ OPC_CheckChild0Type, MVT::i32, ++/*531280*/ OPC_CheckChild1Integer, 1, ++/*531282*/ OPC_CheckChild1Type, MVT::i32, ++/*531284*/ OPC_CheckChild2Integer, 1, ++/*531286*/ OPC_CheckChild2Type, MVT::i32, ++/*531288*/ OPC_CheckChild3Integer, 1, ++/*531290*/ OPC_CheckChild3Type, MVT::i32, ++/*531292*/ OPC_CheckType, MVT::v4i32, ++/*531294*/ OPC_MoveParent, ++/*531295*/ OPC_CheckType, MVT::v4i32, ++/*531297*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*531299*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*531307*/ /*Scope*/ 63, /*->531371*/ ++/*531308*/ OPC_MoveChild0, ++/*531309*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*531312*/ OPC_CheckChild0Integer, 1, ++/*531314*/ OPC_CheckChild0Type, MVT::i32, ++/*531316*/ OPC_CheckChild1Integer, 1, ++/*531318*/ OPC_CheckChild1Type, MVT::i32, ++/*531320*/ OPC_CheckChild2Integer, 1, ++/*531322*/ OPC_CheckChild2Type, MVT::i32, ++/*531324*/ OPC_CheckChild3Integer, 1, ++/*531326*/ OPC_CheckChild3Type, MVT::i32, ++/*531328*/ OPC_MoveParent, ++/*531329*/ OPC_CheckChild1Same, 0, ++/*531331*/ OPC_MoveParent, ++/*531332*/ OPC_CheckChild1Same, 1, ++/*531334*/ OPC_MoveParent, ++/*531335*/ OPC_MoveParent, ++/*531336*/ OPC_MoveChild1, ++/*531337*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*531340*/ OPC_CheckChild0Integer, 1, ++/*531342*/ OPC_CheckChild0Type, MVT::i32, ++/*531344*/ OPC_CheckChild1Integer, 1, ++/*531346*/ OPC_CheckChild1Type, MVT::i32, ++/*531348*/ OPC_CheckChild2Integer, 1, ++/*531350*/ OPC_CheckChild2Type, MVT::i32, ++/*531352*/ OPC_CheckChild3Integer, 1, ++/*531354*/ OPC_CheckChild3Type, MVT::i32, ++/*531356*/ OPC_CheckType, MVT::v4i32, ++/*531358*/ OPC_MoveParent, ++/*531359*/ OPC_CheckType, MVT::v4i32, ++/*531361*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*531363*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b), LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*531371*/ /*Scope*/ 63, /*->531435*/ ++/*531372*/ OPC_CheckChild0Same, 0, ++/*531374*/ OPC_MoveChild1, ++/*531375*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*531378*/ OPC_CheckChild0Integer, 1, ++/*531380*/ OPC_CheckChild0Type, MVT::i32, ++/*531382*/ OPC_CheckChild1Integer, 1, ++/*531384*/ OPC_CheckChild1Type, MVT::i32, ++/*531386*/ OPC_CheckChild2Integer, 1, ++/*531388*/ OPC_CheckChild2Type, MVT::i32, ++/*531390*/ OPC_CheckChild3Integer, 1, ++/*531392*/ OPC_CheckChild3Type, MVT::i32, ++/*531394*/ OPC_MoveParent, ++/*531395*/ OPC_MoveParent, ++/*531396*/ OPC_CheckChild1Same, 1, ++/*531398*/ OPC_MoveParent, ++/*531399*/ OPC_MoveParent, ++/*531400*/ OPC_MoveChild1, ++/*531401*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*531404*/ OPC_CheckChild0Integer, 1, ++/*531406*/ OPC_CheckChild0Type, MVT::i32, ++/*531408*/ OPC_CheckChild1Integer, 1, ++/*531410*/ OPC_CheckChild1Type, MVT::i32, ++/*531412*/ OPC_CheckChild2Integer, 1, ++/*531414*/ OPC_CheckChild2Type, MVT::i32, ++/*531416*/ OPC_CheckChild3Integer, 1, ++/*531418*/ OPC_CheckChild3Type, MVT::i32, ++/*531420*/ OPC_CheckType, MVT::v4i32, ++/*531422*/ OPC_MoveParent, ++/*531423*/ OPC_CheckType, MVT::v4i32, ++/*531425*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*531427*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*531435*/ /*Scope*/ 63, /*->531499*/ ++/*531436*/ OPC_CheckChild0Same, 1, ++/*531438*/ OPC_CheckChild1Same, 0, ++/*531440*/ OPC_MoveParent, ++/*531441*/ OPC_MoveChild1, ++/*531442*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*531445*/ OPC_CheckChild0Integer, 1, ++/*531447*/ OPC_CheckChild0Type, MVT::i32, ++/*531449*/ OPC_CheckChild1Integer, 1, ++/*531451*/ OPC_CheckChild1Type, MVT::i32, ++/*531453*/ OPC_CheckChild2Integer, 1, ++/*531455*/ OPC_CheckChild2Type, MVT::i32, ++/*531457*/ OPC_CheckChild3Integer, 1, ++/*531459*/ OPC_CheckChild3Type, MVT::i32, ++/*531461*/ OPC_MoveParent, ++/*531462*/ OPC_MoveParent, ++/*531463*/ OPC_MoveParent, ++/*531464*/ OPC_MoveChild1, ++/*531465*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*531468*/ OPC_CheckChild0Integer, 1, ++/*531470*/ OPC_CheckChild0Type, MVT::i32, ++/*531472*/ OPC_CheckChild1Integer, 1, ++/*531474*/ OPC_CheckChild1Type, MVT::i32, ++/*531476*/ OPC_CheckChild2Integer, 1, ++/*531478*/ OPC_CheckChild2Type, MVT::i32, ++/*531480*/ OPC_CheckChild3Integer, 1, ++/*531482*/ OPC_CheckChild3Type, MVT::i32, ++/*531484*/ OPC_CheckType, MVT::v4i32, ++/*531486*/ OPC_MoveParent, ++/*531487*/ OPC_CheckType, MVT::v4i32, ++/*531489*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*531491*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*531499*/ /*Scope*/ 63, /*->531563*/ ++/*531500*/ OPC_CheckChild0Same, 0, ++/*531502*/ OPC_CheckChild1Same, 1, ++/*531504*/ OPC_MoveParent, ++/*531505*/ OPC_MoveChild1, ++/*531506*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*531509*/ OPC_CheckChild0Integer, 1, ++/*531511*/ OPC_CheckChild0Type, MVT::i32, ++/*531513*/ OPC_CheckChild1Integer, 1, ++/*531515*/ OPC_CheckChild1Type, MVT::i32, ++/*531517*/ OPC_CheckChild2Integer, 1, ++/*531519*/ OPC_CheckChild2Type, MVT::i32, ++/*531521*/ OPC_CheckChild3Integer, 1, ++/*531523*/ OPC_CheckChild3Type, MVT::i32, ++/*531525*/ OPC_MoveParent, ++/*531526*/ OPC_MoveParent, ++/*531527*/ OPC_MoveParent, ++/*531528*/ OPC_MoveChild1, ++/*531529*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*531532*/ OPC_CheckChild0Integer, 1, ++/*531534*/ OPC_CheckChild0Type, MVT::i32, ++/*531536*/ OPC_CheckChild1Integer, 1, ++/*531538*/ OPC_CheckChild1Type, MVT::i32, ++/*531540*/ OPC_CheckChild2Integer, 1, ++/*531542*/ OPC_CheckChild2Type, MVT::i32, ++/*531544*/ OPC_CheckChild3Integer, 1, ++/*531546*/ OPC_CheckChild3Type, MVT::i32, ++/*531548*/ OPC_CheckType, MVT::v4i32, ++/*531550*/ OPC_MoveParent, ++/*531551*/ OPC_CheckType, MVT::v4i32, ++/*531553*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*531555*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*531563*/ 0, /*End of Scope*/ ++/*531564*/ 0, // EndSwitchOpcode ++/*531565*/ /*Scope*/ 4|128,1/*132*/, /*->531699*/ ++/*531567*/ OPC_CheckChild0Same, 0, ++/*531569*/ OPC_MoveChild1, ++/*531570*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*531573*/ OPC_Scope, 61, /*->531636*/ // 2 children in Scope ++/*531575*/ OPC_MoveChild0, ++/*531576*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*531579*/ OPC_CheckChild0Integer, 1, ++/*531581*/ OPC_CheckChild0Type, MVT::i32, ++/*531583*/ OPC_CheckChild1Integer, 1, ++/*531585*/ OPC_CheckChild1Type, MVT::i32, ++/*531587*/ OPC_CheckChild2Integer, 1, ++/*531589*/ OPC_CheckChild2Type, MVT::i32, ++/*531591*/ OPC_CheckChild3Integer, 1, ++/*531593*/ OPC_CheckChild3Type, MVT::i32, ++/*531595*/ OPC_MoveParent, ++/*531596*/ OPC_CheckChild1Same, 1, ++/*531598*/ OPC_MoveParent, ++/*531599*/ OPC_MoveParent, ++/*531600*/ OPC_MoveParent, ++/*531601*/ OPC_MoveChild1, ++/*531602*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*531605*/ OPC_CheckChild0Integer, 1, ++/*531607*/ OPC_CheckChild0Type, MVT::i32, ++/*531609*/ OPC_CheckChild1Integer, 1, ++/*531611*/ OPC_CheckChild1Type, MVT::i32, ++/*531613*/ OPC_CheckChild2Integer, 1, ++/*531615*/ OPC_CheckChild2Type, MVT::i32, ++/*531617*/ OPC_CheckChild3Integer, 1, ++/*531619*/ OPC_CheckChild3Type, MVT::i32, ++/*531621*/ OPC_CheckType, MVT::v4i32, ++/*531623*/ OPC_MoveParent, ++/*531624*/ OPC_CheckType, MVT::v4i32, ++/*531626*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*531628*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*531636*/ /*Scope*/ 61, /*->531698*/ ++/*531637*/ OPC_CheckChild0Same, 1, ++/*531639*/ OPC_MoveChild1, ++/*531640*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*531643*/ OPC_CheckChild0Integer, 1, ++/*531645*/ OPC_CheckChild0Type, MVT::i32, ++/*531647*/ OPC_CheckChild1Integer, 1, ++/*531649*/ OPC_CheckChild1Type, MVT::i32, ++/*531651*/ OPC_CheckChild2Integer, 1, ++/*531653*/ OPC_CheckChild2Type, MVT::i32, ++/*531655*/ OPC_CheckChild3Integer, 1, ++/*531657*/ OPC_CheckChild3Type, MVT::i32, ++/*531659*/ OPC_MoveParent, ++/*531660*/ OPC_MoveParent, ++/*531661*/ OPC_MoveParent, ++/*531662*/ OPC_MoveParent, ++/*531663*/ OPC_MoveChild1, ++/*531664*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*531667*/ OPC_CheckChild0Integer, 1, ++/*531669*/ OPC_CheckChild0Type, MVT::i32, ++/*531671*/ OPC_CheckChild1Integer, 1, ++/*531673*/ OPC_CheckChild1Type, MVT::i32, ++/*531675*/ OPC_CheckChild2Integer, 1, ++/*531677*/ OPC_CheckChild2Type, MVT::i32, ++/*531679*/ OPC_CheckChild3Integer, 1, ++/*531681*/ OPC_CheckChild3Type, MVT::i32, ++/*531683*/ OPC_CheckType, MVT::v4i32, ++/*531685*/ OPC_MoveParent, ++/*531686*/ OPC_CheckType, MVT::v4i32, ++/*531688*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*531690*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*531698*/ 0, /*End of Scope*/ ++/*531699*/ /*Scope*/ 4|128,1/*132*/, /*->531833*/ ++/*531701*/ OPC_CheckChild0Same, 1, ++/*531703*/ OPC_MoveChild1, ++/*531704*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*531707*/ OPC_Scope, 61, /*->531770*/ // 2 children in Scope ++/*531709*/ OPC_MoveChild0, ++/*531710*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*531713*/ OPC_CheckChild0Integer, 1, ++/*531715*/ OPC_CheckChild0Type, MVT::i32, ++/*531717*/ OPC_CheckChild1Integer, 1, ++/*531719*/ OPC_CheckChild1Type, MVT::i32, ++/*531721*/ OPC_CheckChild2Integer, 1, ++/*531723*/ OPC_CheckChild2Type, MVT::i32, ++/*531725*/ OPC_CheckChild3Integer, 1, ++/*531727*/ OPC_CheckChild3Type, MVT::i32, ++/*531729*/ OPC_MoveParent, ++/*531730*/ OPC_CheckChild1Same, 0, ++/*531732*/ OPC_MoveParent, ++/*531733*/ OPC_MoveParent, ++/*531734*/ OPC_MoveParent, ++/*531735*/ OPC_MoveChild1, ++/*531736*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*531739*/ OPC_CheckChild0Integer, 1, ++/*531741*/ OPC_CheckChild0Type, MVT::i32, ++/*531743*/ OPC_CheckChild1Integer, 1, ++/*531745*/ OPC_CheckChild1Type, MVT::i32, ++/*531747*/ OPC_CheckChild2Integer, 1, ++/*531749*/ OPC_CheckChild2Type, MVT::i32, ++/*531751*/ OPC_CheckChild3Integer, 1, ++/*531753*/ OPC_CheckChild3Type, MVT::i32, ++/*531755*/ OPC_CheckType, MVT::v4i32, ++/*531757*/ OPC_MoveParent, ++/*531758*/ OPC_CheckType, MVT::v4i32, ++/*531760*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*531762*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*531770*/ /*Scope*/ 61, /*->531832*/ ++/*531771*/ OPC_CheckChild0Same, 0, ++/*531773*/ OPC_MoveChild1, ++/*531774*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*531777*/ OPC_CheckChild0Integer, 1, ++/*531779*/ OPC_CheckChild0Type, MVT::i32, ++/*531781*/ OPC_CheckChild1Integer, 1, ++/*531783*/ OPC_CheckChild1Type, MVT::i32, ++/*531785*/ OPC_CheckChild2Integer, 1, ++/*531787*/ OPC_CheckChild2Type, MVT::i32, ++/*531789*/ OPC_CheckChild3Integer, 1, ++/*531791*/ OPC_CheckChild3Type, MVT::i32, ++/*531793*/ OPC_MoveParent, ++/*531794*/ OPC_MoveParent, ++/*531795*/ OPC_MoveParent, ++/*531796*/ OPC_MoveParent, ++/*531797*/ OPC_MoveChild1, ++/*531798*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*531801*/ OPC_CheckChild0Integer, 1, ++/*531803*/ OPC_CheckChild0Type, MVT::i32, ++/*531805*/ OPC_CheckChild1Integer, 1, ++/*531807*/ OPC_CheckChild1Type, MVT::i32, ++/*531809*/ OPC_CheckChild2Integer, 1, ++/*531811*/ OPC_CheckChild2Type, MVT::i32, ++/*531813*/ OPC_CheckChild3Integer, 1, ++/*531815*/ OPC_CheckChild3Type, MVT::i32, ++/*531817*/ OPC_CheckType, MVT::v4i32, ++/*531819*/ OPC_MoveParent, ++/*531820*/ OPC_CheckType, MVT::v4i32, ++/*531822*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*531824*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*531832*/ 0, /*End of Scope*/ ++/*531833*/ /*Scope*/ 113, /*->531947*/ ++/*531834*/ OPC_MoveChild0, ++/*531835*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*531838*/ OPC_CheckChild0Integer, 1, ++/*531840*/ OPC_CheckChild0Type, MVT::i32, ++/*531842*/ OPC_CheckChild1Integer, 1, ++/*531844*/ OPC_CheckChild1Type, MVT::i32, ++/*531846*/ OPC_CheckChild2Integer, 1, ++/*531848*/ OPC_CheckChild2Type, MVT::i32, ++/*531850*/ OPC_CheckChild3Integer, 1, ++/*531852*/ OPC_CheckChild3Type, MVT::i32, ++/*531854*/ OPC_MoveParent, ++/*531855*/ OPC_MoveChild1, ++/*531856*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*531859*/ OPC_Scope, 42, /*->531903*/ // 2 children in Scope ++/*531861*/ OPC_CheckChild0Same, 1, ++/*531863*/ OPC_CheckChild1Same, 0, ++/*531865*/ OPC_MoveParent, ++/*531866*/ OPC_MoveParent, ++/*531867*/ OPC_MoveParent, ++/*531868*/ OPC_MoveChild1, ++/*531869*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*531872*/ OPC_CheckChild0Integer, 1, ++/*531874*/ OPC_CheckChild0Type, MVT::i32, ++/*531876*/ OPC_CheckChild1Integer, 1, ++/*531878*/ OPC_CheckChild1Type, MVT::i32, ++/*531880*/ OPC_CheckChild2Integer, 1, ++/*531882*/ OPC_CheckChild2Type, MVT::i32, ++/*531884*/ OPC_CheckChild3Integer, 1, ++/*531886*/ OPC_CheckChild3Type, MVT::i32, ++/*531888*/ OPC_CheckType, MVT::v4i32, ++/*531890*/ OPC_MoveParent, ++/*531891*/ OPC_CheckType, MVT::v4i32, ++/*531893*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*531895*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*531903*/ /*Scope*/ 42, /*->531946*/ ++/*531904*/ OPC_CheckChild0Same, 0, ++/*531906*/ OPC_CheckChild1Same, 1, ++/*531908*/ OPC_MoveParent, ++/*531909*/ OPC_MoveParent, ++/*531910*/ OPC_MoveParent, ++/*531911*/ OPC_MoveChild1, ++/*531912*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*531915*/ OPC_CheckChild0Integer, 1, ++/*531917*/ OPC_CheckChild0Type, MVT::i32, ++/*531919*/ OPC_CheckChild1Integer, 1, ++/*531921*/ OPC_CheckChild1Type, MVT::i32, ++/*531923*/ OPC_CheckChild2Integer, 1, ++/*531925*/ OPC_CheckChild2Type, MVT::i32, ++/*531927*/ OPC_CheckChild3Integer, 1, ++/*531929*/ OPC_CheckChild3Type, MVT::i32, ++/*531931*/ OPC_CheckType, MVT::v4i32, ++/*531933*/ OPC_MoveParent, ++/*531934*/ OPC_CheckType, MVT::v4i32, ++/*531936*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*531938*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*531946*/ 0, /*End of Scope*/ ++/*531947*/ 0, /*End of Scope*/ ++/*531948*/ 0, /*End of Scope*/ ++/*531949*/ 0, /*End of Scope*/ ++/*531950*/ /*Scope*/ 127|128,25/*3327*/, /*->535279*/ ++/*531952*/ OPC_RecordChild0, // #0 = $b ++/*531953*/ OPC_MoveChild1, ++/*531954*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*531957*/ OPC_Scope, 60|128,6/*828*/, /*->532788*/ // 4 children in Scope ++/*531960*/ OPC_MoveChild0, ++/*531961*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*531964*/ OPC_CheckChild0Integer, 1, ++/*531966*/ OPC_CheckChild0Type, MVT::i32, ++/*531968*/ OPC_CheckChild1Integer, 1, ++/*531970*/ OPC_CheckChild1Type, MVT::i32, ++/*531972*/ OPC_CheckChild2Integer, 1, ++/*531974*/ OPC_CheckChild2Type, MVT::i32, ++/*531976*/ OPC_CheckChild3Integer, 1, ++/*531978*/ OPC_CheckChild3Type, MVT::i32, ++/*531980*/ OPC_MoveParent, ++/*531981*/ OPC_RecordChild1, // #1 = $a ++/*531982*/ OPC_MoveParent, ++/*531983*/ OPC_MoveParent, ++/*531984*/ OPC_MoveChild1, ++/*531985*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*531988*/ OPC_CheckChild0Integer, 31, ++/*531990*/ OPC_CheckChild0Type, MVT::i32, ++/*531992*/ OPC_CheckChild1Integer, 31, ++/*531994*/ OPC_CheckChild1Type, MVT::i32, ++/*531996*/ OPC_CheckChild2Integer, 31, ++/*531998*/ OPC_CheckChild2Type, MVT::i32, ++/*532000*/ OPC_CheckChild3Integer, 31, ++/*532002*/ OPC_CheckChild3Type, MVT::i32, ++/*532004*/ OPC_CheckType, MVT::v4i32, ++/*532006*/ OPC_MoveParent, ++/*532007*/ OPC_MoveParent, ++/*532008*/ OPC_MoveChild1, ++/*532009*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*532012*/ OPC_Scope, 6|128,3/*390*/, /*->532405*/ // 4 children in Scope ++/*532015*/ OPC_MoveChild0, ++/*532016*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*532019*/ OPC_Scope, 63, /*->532084*/ // 6 children in Scope ++/*532021*/ OPC_MoveChild0, ++/*532022*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*532025*/ OPC_CheckChild0Integer, 1, ++/*532027*/ OPC_CheckChild0Type, MVT::i32, ++/*532029*/ OPC_CheckChild1Integer, 1, ++/*532031*/ OPC_CheckChild1Type, MVT::i32, ++/*532033*/ OPC_CheckChild2Integer, 1, ++/*532035*/ OPC_CheckChild2Type, MVT::i32, ++/*532037*/ OPC_CheckChild3Integer, 1, ++/*532039*/ OPC_CheckChild3Type, MVT::i32, ++/*532041*/ OPC_MoveParent, ++/*532042*/ OPC_CheckChild1Same, 1, ++/*532044*/ OPC_MoveParent, ++/*532045*/ OPC_CheckChild1Same, 0, ++/*532047*/ OPC_MoveParent, ++/*532048*/ OPC_MoveParent, ++/*532049*/ OPC_MoveChild1, ++/*532050*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*532053*/ OPC_CheckChild0Integer, 1, ++/*532055*/ OPC_CheckChild0Type, MVT::i32, ++/*532057*/ OPC_CheckChild1Integer, 1, ++/*532059*/ OPC_CheckChild1Type, MVT::i32, ++/*532061*/ OPC_CheckChild2Integer, 1, ++/*532063*/ OPC_CheckChild2Type, MVT::i32, ++/*532065*/ OPC_CheckChild3Integer, 1, ++/*532067*/ OPC_CheckChild3Type, MVT::i32, ++/*532069*/ OPC_CheckType, MVT::v4i32, ++/*532071*/ OPC_MoveParent, ++/*532072*/ OPC_CheckType, MVT::v4i32, ++/*532074*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*532076*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a), LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*532084*/ /*Scope*/ 63, /*->532148*/ ++/*532085*/ OPC_CheckChild0Same, 1, ++/*532087*/ OPC_MoveChild1, ++/*532088*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*532091*/ OPC_CheckChild0Integer, 1, ++/*532093*/ OPC_CheckChild0Type, MVT::i32, ++/*532095*/ OPC_CheckChild1Integer, 1, ++/*532097*/ OPC_CheckChild1Type, MVT::i32, ++/*532099*/ OPC_CheckChild2Integer, 1, ++/*532101*/ OPC_CheckChild2Type, MVT::i32, ++/*532103*/ OPC_CheckChild3Integer, 1, ++/*532105*/ OPC_CheckChild3Type, MVT::i32, ++/*532107*/ OPC_MoveParent, ++/*532108*/ OPC_MoveParent, ++/*532109*/ OPC_CheckChild1Same, 0, ++/*532111*/ OPC_MoveParent, ++/*532112*/ OPC_MoveParent, ++/*532113*/ OPC_MoveChild1, ++/*532114*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*532117*/ OPC_CheckChild0Integer, 1, ++/*532119*/ OPC_CheckChild0Type, MVT::i32, ++/*532121*/ OPC_CheckChild1Integer, 1, ++/*532123*/ OPC_CheckChild1Type, MVT::i32, ++/*532125*/ OPC_CheckChild2Integer, 1, ++/*532127*/ OPC_CheckChild2Type, MVT::i32, ++/*532129*/ OPC_CheckChild3Integer, 1, ++/*532131*/ OPC_CheckChild3Type, MVT::i32, ++/*532133*/ OPC_CheckType, MVT::v4i32, ++/*532135*/ OPC_MoveParent, ++/*532136*/ OPC_CheckType, MVT::v4i32, ++/*532138*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*532140*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*532148*/ /*Scope*/ 63, /*->532212*/ ++/*532149*/ OPC_MoveChild0, ++/*532150*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*532153*/ OPC_CheckChild0Integer, 1, ++/*532155*/ OPC_CheckChild0Type, MVT::i32, ++/*532157*/ OPC_CheckChild1Integer, 1, ++/*532159*/ OPC_CheckChild1Type, MVT::i32, ++/*532161*/ OPC_CheckChild2Integer, 1, ++/*532163*/ OPC_CheckChild2Type, MVT::i32, ++/*532165*/ OPC_CheckChild3Integer, 1, ++/*532167*/ OPC_CheckChild3Type, MVT::i32, ++/*532169*/ OPC_MoveParent, ++/*532170*/ OPC_CheckChild1Same, 0, ++/*532172*/ OPC_MoveParent, ++/*532173*/ OPC_CheckChild1Same, 1, ++/*532175*/ OPC_MoveParent, ++/*532176*/ OPC_MoveParent, ++/*532177*/ OPC_MoveChild1, ++/*532178*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*532181*/ OPC_CheckChild0Integer, 1, ++/*532183*/ OPC_CheckChild0Type, MVT::i32, ++/*532185*/ OPC_CheckChild1Integer, 1, ++/*532187*/ OPC_CheckChild1Type, MVT::i32, ++/*532189*/ OPC_CheckChild2Integer, 1, ++/*532191*/ OPC_CheckChild2Type, MVT::i32, ++/*532193*/ OPC_CheckChild3Integer, 1, ++/*532195*/ OPC_CheckChild3Type, MVT::i32, ++/*532197*/ OPC_CheckType, MVT::v4i32, ++/*532199*/ OPC_MoveParent, ++/*532200*/ OPC_CheckType, MVT::v4i32, ++/*532202*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*532204*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b), LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*532212*/ /*Scope*/ 63, /*->532276*/ ++/*532213*/ OPC_CheckChild0Same, 0, ++/*532215*/ OPC_MoveChild1, ++/*532216*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*532219*/ OPC_CheckChild0Integer, 1, ++/*532221*/ OPC_CheckChild0Type, MVT::i32, ++/*532223*/ OPC_CheckChild1Integer, 1, ++/*532225*/ OPC_CheckChild1Type, MVT::i32, ++/*532227*/ OPC_CheckChild2Integer, 1, ++/*532229*/ OPC_CheckChild2Type, MVT::i32, ++/*532231*/ OPC_CheckChild3Integer, 1, ++/*532233*/ OPC_CheckChild3Type, MVT::i32, ++/*532235*/ OPC_MoveParent, ++/*532236*/ OPC_MoveParent, ++/*532237*/ OPC_CheckChild1Same, 1, ++/*532239*/ OPC_MoveParent, ++/*532240*/ OPC_MoveParent, ++/*532241*/ OPC_MoveChild1, ++/*532242*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*532245*/ OPC_CheckChild0Integer, 1, ++/*532247*/ OPC_CheckChild0Type, MVT::i32, ++/*532249*/ OPC_CheckChild1Integer, 1, ++/*532251*/ OPC_CheckChild1Type, MVT::i32, ++/*532253*/ OPC_CheckChild2Integer, 1, ++/*532255*/ OPC_CheckChild2Type, MVT::i32, ++/*532257*/ OPC_CheckChild3Integer, 1, ++/*532259*/ OPC_CheckChild3Type, MVT::i32, ++/*532261*/ OPC_CheckType, MVT::v4i32, ++/*532263*/ OPC_MoveParent, ++/*532264*/ OPC_CheckType, MVT::v4i32, ++/*532266*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*532268*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*532276*/ /*Scope*/ 63, /*->532340*/ ++/*532277*/ OPC_CheckChild0Same, 1, ++/*532279*/ OPC_CheckChild1Same, 0, ++/*532281*/ OPC_MoveParent, ++/*532282*/ OPC_MoveChild1, ++/*532283*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*532286*/ OPC_CheckChild0Integer, 1, ++/*532288*/ OPC_CheckChild0Type, MVT::i32, ++/*532290*/ OPC_CheckChild1Integer, 1, ++/*532292*/ OPC_CheckChild1Type, MVT::i32, ++/*532294*/ OPC_CheckChild2Integer, 1, ++/*532296*/ OPC_CheckChild2Type, MVT::i32, ++/*532298*/ OPC_CheckChild3Integer, 1, ++/*532300*/ OPC_CheckChild3Type, MVT::i32, ++/*532302*/ OPC_MoveParent, ++/*532303*/ OPC_MoveParent, ++/*532304*/ OPC_MoveParent, ++/*532305*/ OPC_MoveChild1, ++/*532306*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*532309*/ OPC_CheckChild0Integer, 1, ++/*532311*/ OPC_CheckChild0Type, MVT::i32, ++/*532313*/ OPC_CheckChild1Integer, 1, ++/*532315*/ OPC_CheckChild1Type, MVT::i32, ++/*532317*/ OPC_CheckChild2Integer, 1, ++/*532319*/ OPC_CheckChild2Type, MVT::i32, ++/*532321*/ OPC_CheckChild3Integer, 1, ++/*532323*/ OPC_CheckChild3Type, MVT::i32, ++/*532325*/ OPC_CheckType, MVT::v4i32, ++/*532327*/ OPC_MoveParent, ++/*532328*/ OPC_CheckType, MVT::v4i32, ++/*532330*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*532332*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*532340*/ /*Scope*/ 63, /*->532404*/ ++/*532341*/ OPC_CheckChild0Same, 0, ++/*532343*/ OPC_CheckChild1Same, 1, ++/*532345*/ OPC_MoveParent, ++/*532346*/ OPC_MoveChild1, ++/*532347*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*532350*/ OPC_CheckChild0Integer, 1, ++/*532352*/ OPC_CheckChild0Type, MVT::i32, ++/*532354*/ OPC_CheckChild1Integer, 1, ++/*532356*/ OPC_CheckChild1Type, MVT::i32, ++/*532358*/ OPC_CheckChild2Integer, 1, ++/*532360*/ OPC_CheckChild2Type, MVT::i32, ++/*532362*/ OPC_CheckChild3Integer, 1, ++/*532364*/ OPC_CheckChild3Type, MVT::i32, ++/*532366*/ OPC_MoveParent, ++/*532367*/ OPC_MoveParent, ++/*532368*/ OPC_MoveParent, ++/*532369*/ OPC_MoveChild1, ++/*532370*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*532373*/ OPC_CheckChild0Integer, 1, ++/*532375*/ OPC_CheckChild0Type, MVT::i32, ++/*532377*/ OPC_CheckChild1Integer, 1, ++/*532379*/ OPC_CheckChild1Type, MVT::i32, ++/*532381*/ OPC_CheckChild2Integer, 1, ++/*532383*/ OPC_CheckChild2Type, MVT::i32, ++/*532385*/ OPC_CheckChild3Integer, 1, ++/*532387*/ OPC_CheckChild3Type, MVT::i32, ++/*532389*/ OPC_CheckType, MVT::v4i32, ++/*532391*/ OPC_MoveParent, ++/*532392*/ OPC_CheckType, MVT::v4i32, ++/*532394*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*532396*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*532404*/ 0, /*End of Scope*/ ++/*532405*/ /*Scope*/ 4|128,1/*132*/, /*->532539*/ ++/*532407*/ OPC_CheckChild0Same, 0, ++/*532409*/ OPC_MoveChild1, ++/*532410*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*532413*/ OPC_Scope, 61, /*->532476*/ // 2 children in Scope ++/*532415*/ OPC_MoveChild0, ++/*532416*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*532419*/ OPC_CheckChild0Integer, 1, ++/*532421*/ OPC_CheckChild0Type, MVT::i32, ++/*532423*/ OPC_CheckChild1Integer, 1, ++/*532425*/ OPC_CheckChild1Type, MVT::i32, ++/*532427*/ OPC_CheckChild2Integer, 1, ++/*532429*/ OPC_CheckChild2Type, MVT::i32, ++/*532431*/ OPC_CheckChild3Integer, 1, ++/*532433*/ OPC_CheckChild3Type, MVT::i32, ++/*532435*/ OPC_MoveParent, ++/*532436*/ OPC_CheckChild1Same, 1, ++/*532438*/ OPC_MoveParent, ++/*532439*/ OPC_MoveParent, ++/*532440*/ OPC_MoveParent, ++/*532441*/ OPC_MoveChild1, ++/*532442*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*532445*/ OPC_CheckChild0Integer, 1, ++/*532447*/ OPC_CheckChild0Type, MVT::i32, ++/*532449*/ OPC_CheckChild1Integer, 1, ++/*532451*/ OPC_CheckChild1Type, MVT::i32, ++/*532453*/ OPC_CheckChild2Integer, 1, ++/*532455*/ OPC_CheckChild2Type, MVT::i32, ++/*532457*/ OPC_CheckChild3Integer, 1, ++/*532459*/ OPC_CheckChild3Type, MVT::i32, ++/*532461*/ OPC_CheckType, MVT::v4i32, ++/*532463*/ OPC_MoveParent, ++/*532464*/ OPC_CheckType, MVT::v4i32, ++/*532466*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*532468*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*532476*/ /*Scope*/ 61, /*->532538*/ ++/*532477*/ OPC_CheckChild0Same, 1, ++/*532479*/ OPC_MoveChild1, ++/*532480*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*532483*/ OPC_CheckChild0Integer, 1, ++/*532485*/ OPC_CheckChild0Type, MVT::i32, ++/*532487*/ OPC_CheckChild1Integer, 1, ++/*532489*/ OPC_CheckChild1Type, MVT::i32, ++/*532491*/ OPC_CheckChild2Integer, 1, ++/*532493*/ OPC_CheckChild2Type, MVT::i32, ++/*532495*/ OPC_CheckChild3Integer, 1, ++/*532497*/ OPC_CheckChild3Type, MVT::i32, ++/*532499*/ OPC_MoveParent, ++/*532500*/ OPC_MoveParent, ++/*532501*/ OPC_MoveParent, ++/*532502*/ OPC_MoveParent, ++/*532503*/ OPC_MoveChild1, ++/*532504*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*532507*/ OPC_CheckChild0Integer, 1, ++/*532509*/ OPC_CheckChild0Type, MVT::i32, ++/*532511*/ OPC_CheckChild1Integer, 1, ++/*532513*/ OPC_CheckChild1Type, MVT::i32, ++/*532515*/ OPC_CheckChild2Integer, 1, ++/*532517*/ OPC_CheckChild2Type, MVT::i32, ++/*532519*/ OPC_CheckChild3Integer, 1, ++/*532521*/ OPC_CheckChild3Type, MVT::i32, ++/*532523*/ OPC_CheckType, MVT::v4i32, ++/*532525*/ OPC_MoveParent, ++/*532526*/ OPC_CheckType, MVT::v4i32, ++/*532528*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*532530*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*532538*/ 0, /*End of Scope*/ ++/*532539*/ /*Scope*/ 4|128,1/*132*/, /*->532673*/ ++/*532541*/ OPC_CheckChild0Same, 1, ++/*532543*/ OPC_MoveChild1, ++/*532544*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*532547*/ OPC_Scope, 61, /*->532610*/ // 2 children in Scope ++/*532549*/ OPC_MoveChild0, ++/*532550*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*532553*/ OPC_CheckChild0Integer, 1, ++/*532555*/ OPC_CheckChild0Type, MVT::i32, ++/*532557*/ OPC_CheckChild1Integer, 1, ++/*532559*/ OPC_CheckChild1Type, MVT::i32, ++/*532561*/ OPC_CheckChild2Integer, 1, ++/*532563*/ OPC_CheckChild2Type, MVT::i32, ++/*532565*/ OPC_CheckChild3Integer, 1, ++/*532567*/ OPC_CheckChild3Type, MVT::i32, ++/*532569*/ OPC_MoveParent, ++/*532570*/ OPC_CheckChild1Same, 0, ++/*532572*/ OPC_MoveParent, ++/*532573*/ OPC_MoveParent, ++/*532574*/ OPC_MoveParent, ++/*532575*/ OPC_MoveChild1, ++/*532576*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*532579*/ OPC_CheckChild0Integer, 1, ++/*532581*/ OPC_CheckChild0Type, MVT::i32, ++/*532583*/ OPC_CheckChild1Integer, 1, ++/*532585*/ OPC_CheckChild1Type, MVT::i32, ++/*532587*/ OPC_CheckChild2Integer, 1, ++/*532589*/ OPC_CheckChild2Type, MVT::i32, ++/*532591*/ OPC_CheckChild3Integer, 1, ++/*532593*/ OPC_CheckChild3Type, MVT::i32, ++/*532595*/ OPC_CheckType, MVT::v4i32, ++/*532597*/ OPC_MoveParent, ++/*532598*/ OPC_CheckType, MVT::v4i32, ++/*532600*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*532602*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*532610*/ /*Scope*/ 61, /*->532672*/ ++/*532611*/ OPC_CheckChild0Same, 0, ++/*532613*/ OPC_MoveChild1, ++/*532614*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*532617*/ OPC_CheckChild0Integer, 1, ++/*532619*/ OPC_CheckChild0Type, MVT::i32, ++/*532621*/ OPC_CheckChild1Integer, 1, ++/*532623*/ OPC_CheckChild1Type, MVT::i32, ++/*532625*/ OPC_CheckChild2Integer, 1, ++/*532627*/ OPC_CheckChild2Type, MVT::i32, ++/*532629*/ OPC_CheckChild3Integer, 1, ++/*532631*/ OPC_CheckChild3Type, MVT::i32, ++/*532633*/ OPC_MoveParent, ++/*532634*/ OPC_MoveParent, ++/*532635*/ OPC_MoveParent, ++/*532636*/ OPC_MoveParent, ++/*532637*/ OPC_MoveChild1, ++/*532638*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*532641*/ OPC_CheckChild0Integer, 1, ++/*532643*/ OPC_CheckChild0Type, MVT::i32, ++/*532645*/ OPC_CheckChild1Integer, 1, ++/*532647*/ OPC_CheckChild1Type, MVT::i32, ++/*532649*/ OPC_CheckChild2Integer, 1, ++/*532651*/ OPC_CheckChild2Type, MVT::i32, ++/*532653*/ OPC_CheckChild3Integer, 1, ++/*532655*/ OPC_CheckChild3Type, MVT::i32, ++/*532657*/ OPC_CheckType, MVT::v4i32, ++/*532659*/ OPC_MoveParent, ++/*532660*/ OPC_CheckType, MVT::v4i32, ++/*532662*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*532664*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*532672*/ 0, /*End of Scope*/ ++/*532673*/ /*Scope*/ 113, /*->532787*/ ++/*532674*/ OPC_MoveChild0, ++/*532675*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*532678*/ OPC_CheckChild0Integer, 1, ++/*532680*/ OPC_CheckChild0Type, MVT::i32, ++/*532682*/ OPC_CheckChild1Integer, 1, ++/*532684*/ OPC_CheckChild1Type, MVT::i32, ++/*532686*/ OPC_CheckChild2Integer, 1, ++/*532688*/ OPC_CheckChild2Type, MVT::i32, ++/*532690*/ OPC_CheckChild3Integer, 1, ++/*532692*/ OPC_CheckChild3Type, MVT::i32, ++/*532694*/ OPC_MoveParent, ++/*532695*/ OPC_MoveChild1, ++/*532696*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*532699*/ OPC_Scope, 42, /*->532743*/ // 2 children in Scope ++/*532701*/ OPC_CheckChild0Same, 1, ++/*532703*/ OPC_CheckChild1Same, 0, ++/*532705*/ OPC_MoveParent, ++/*532706*/ OPC_MoveParent, ++/*532707*/ OPC_MoveParent, ++/*532708*/ OPC_MoveChild1, ++/*532709*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*532712*/ OPC_CheckChild0Integer, 1, ++/*532714*/ OPC_CheckChild0Type, MVT::i32, ++/*532716*/ OPC_CheckChild1Integer, 1, ++/*532718*/ OPC_CheckChild1Type, MVT::i32, ++/*532720*/ OPC_CheckChild2Integer, 1, ++/*532722*/ OPC_CheckChild2Type, MVT::i32, ++/*532724*/ OPC_CheckChild3Integer, 1, ++/*532726*/ OPC_CheckChild3Type, MVT::i32, ++/*532728*/ OPC_CheckType, MVT::v4i32, ++/*532730*/ OPC_MoveParent, ++/*532731*/ OPC_CheckType, MVT::v4i32, ++/*532733*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*532735*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*532743*/ /*Scope*/ 42, /*->532786*/ ++/*532744*/ OPC_CheckChild0Same, 0, ++/*532746*/ OPC_CheckChild1Same, 1, ++/*532748*/ OPC_MoveParent, ++/*532749*/ OPC_MoveParent, ++/*532750*/ OPC_MoveParent, ++/*532751*/ OPC_MoveChild1, ++/*532752*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*532755*/ OPC_CheckChild0Integer, 1, ++/*532757*/ OPC_CheckChild0Type, MVT::i32, ++/*532759*/ OPC_CheckChild1Integer, 1, ++/*532761*/ OPC_CheckChild1Type, MVT::i32, ++/*532763*/ OPC_CheckChild2Integer, 1, ++/*532765*/ OPC_CheckChild2Type, MVT::i32, ++/*532767*/ OPC_CheckChild3Integer, 1, ++/*532769*/ OPC_CheckChild3Type, MVT::i32, ++/*532771*/ OPC_CheckType, MVT::v4i32, ++/*532773*/ OPC_MoveParent, ++/*532774*/ OPC_CheckType, MVT::v4i32, ++/*532776*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*532778*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*532786*/ 0, /*End of Scope*/ ++/*532787*/ 0, /*End of Scope*/ ++/*532788*/ /*Scope*/ 60|128,6/*828*/, /*->533618*/ ++/*532790*/ OPC_RecordChild0, // #1 = $a ++/*532791*/ OPC_MoveChild1, ++/*532792*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*532795*/ OPC_CheckChild0Integer, 1, ++/*532797*/ OPC_CheckChild0Type, MVT::i32, ++/*532799*/ OPC_CheckChild1Integer, 1, ++/*532801*/ OPC_CheckChild1Type, MVT::i32, ++/*532803*/ OPC_CheckChild2Integer, 1, ++/*532805*/ OPC_CheckChild2Type, MVT::i32, ++/*532807*/ OPC_CheckChild3Integer, 1, ++/*532809*/ OPC_CheckChild3Type, MVT::i32, ++/*532811*/ OPC_MoveParent, ++/*532812*/ OPC_MoveParent, ++/*532813*/ OPC_MoveParent, ++/*532814*/ OPC_MoveChild1, ++/*532815*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*532818*/ OPC_CheckChild0Integer, 31, ++/*532820*/ OPC_CheckChild0Type, MVT::i32, ++/*532822*/ OPC_CheckChild1Integer, 31, ++/*532824*/ OPC_CheckChild1Type, MVT::i32, ++/*532826*/ OPC_CheckChild2Integer, 31, ++/*532828*/ OPC_CheckChild2Type, MVT::i32, ++/*532830*/ OPC_CheckChild3Integer, 31, ++/*532832*/ OPC_CheckChild3Type, MVT::i32, ++/*532834*/ OPC_CheckType, MVT::v4i32, ++/*532836*/ OPC_MoveParent, ++/*532837*/ OPC_MoveParent, ++/*532838*/ OPC_MoveChild1, ++/*532839*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*532842*/ OPC_Scope, 6|128,3/*390*/, /*->533235*/ // 4 children in Scope ++/*532845*/ OPC_MoveChild0, ++/*532846*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*532849*/ OPC_Scope, 63, /*->532914*/ // 6 children in Scope ++/*532851*/ OPC_MoveChild0, ++/*532852*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*532855*/ OPC_CheckChild0Integer, 1, ++/*532857*/ OPC_CheckChild0Type, MVT::i32, ++/*532859*/ OPC_CheckChild1Integer, 1, ++/*532861*/ OPC_CheckChild1Type, MVT::i32, ++/*532863*/ OPC_CheckChild2Integer, 1, ++/*532865*/ OPC_CheckChild2Type, MVT::i32, ++/*532867*/ OPC_CheckChild3Integer, 1, ++/*532869*/ OPC_CheckChild3Type, MVT::i32, ++/*532871*/ OPC_MoveParent, ++/*532872*/ OPC_CheckChild1Same, 1, ++/*532874*/ OPC_MoveParent, ++/*532875*/ OPC_CheckChild1Same, 0, ++/*532877*/ OPC_MoveParent, ++/*532878*/ OPC_MoveParent, ++/*532879*/ OPC_MoveChild1, ++/*532880*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*532883*/ OPC_CheckChild0Integer, 1, ++/*532885*/ OPC_CheckChild0Type, MVT::i32, ++/*532887*/ OPC_CheckChild1Integer, 1, ++/*532889*/ OPC_CheckChild1Type, MVT::i32, ++/*532891*/ OPC_CheckChild2Integer, 1, ++/*532893*/ OPC_CheckChild2Type, MVT::i32, ++/*532895*/ OPC_CheckChild3Integer, 1, ++/*532897*/ OPC_CheckChild3Type, MVT::i32, ++/*532899*/ OPC_CheckType, MVT::v4i32, ++/*532901*/ OPC_MoveParent, ++/*532902*/ OPC_CheckType, MVT::v4i32, ++/*532904*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*532906*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a), LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*532914*/ /*Scope*/ 63, /*->532978*/ ++/*532915*/ OPC_CheckChild0Same, 1, ++/*532917*/ OPC_MoveChild1, ++/*532918*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*532921*/ OPC_CheckChild0Integer, 1, ++/*532923*/ OPC_CheckChild0Type, MVT::i32, ++/*532925*/ OPC_CheckChild1Integer, 1, ++/*532927*/ OPC_CheckChild1Type, MVT::i32, ++/*532929*/ OPC_CheckChild2Integer, 1, ++/*532931*/ OPC_CheckChild2Type, MVT::i32, ++/*532933*/ OPC_CheckChild3Integer, 1, ++/*532935*/ OPC_CheckChild3Type, MVT::i32, ++/*532937*/ OPC_MoveParent, ++/*532938*/ OPC_MoveParent, ++/*532939*/ OPC_CheckChild1Same, 0, ++/*532941*/ OPC_MoveParent, ++/*532942*/ OPC_MoveParent, ++/*532943*/ OPC_MoveChild1, ++/*532944*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*532947*/ OPC_CheckChild0Integer, 1, ++/*532949*/ OPC_CheckChild0Type, MVT::i32, ++/*532951*/ OPC_CheckChild1Integer, 1, ++/*532953*/ OPC_CheckChild1Type, MVT::i32, ++/*532955*/ OPC_CheckChild2Integer, 1, ++/*532957*/ OPC_CheckChild2Type, MVT::i32, ++/*532959*/ OPC_CheckChild3Integer, 1, ++/*532961*/ OPC_CheckChild3Type, MVT::i32, ++/*532963*/ OPC_CheckType, MVT::v4i32, ++/*532965*/ OPC_MoveParent, ++/*532966*/ OPC_CheckType, MVT::v4i32, ++/*532968*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*532970*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*532978*/ /*Scope*/ 63, /*->533042*/ ++/*532979*/ OPC_MoveChild0, ++/*532980*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*532983*/ OPC_CheckChild0Integer, 1, ++/*532985*/ OPC_CheckChild0Type, MVT::i32, ++/*532987*/ OPC_CheckChild1Integer, 1, ++/*532989*/ OPC_CheckChild1Type, MVT::i32, ++/*532991*/ OPC_CheckChild2Integer, 1, ++/*532993*/ OPC_CheckChild2Type, MVT::i32, ++/*532995*/ OPC_CheckChild3Integer, 1, ++/*532997*/ OPC_CheckChild3Type, MVT::i32, ++/*532999*/ OPC_MoveParent, ++/*533000*/ OPC_CheckChild1Same, 0, ++/*533002*/ OPC_MoveParent, ++/*533003*/ OPC_CheckChild1Same, 1, ++/*533005*/ OPC_MoveParent, ++/*533006*/ OPC_MoveParent, ++/*533007*/ OPC_MoveChild1, ++/*533008*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*533011*/ OPC_CheckChild0Integer, 1, ++/*533013*/ OPC_CheckChild0Type, MVT::i32, ++/*533015*/ OPC_CheckChild1Integer, 1, ++/*533017*/ OPC_CheckChild1Type, MVT::i32, ++/*533019*/ OPC_CheckChild2Integer, 1, ++/*533021*/ OPC_CheckChild2Type, MVT::i32, ++/*533023*/ OPC_CheckChild3Integer, 1, ++/*533025*/ OPC_CheckChild3Type, MVT::i32, ++/*533027*/ OPC_CheckType, MVT::v4i32, ++/*533029*/ OPC_MoveParent, ++/*533030*/ OPC_CheckType, MVT::v4i32, ++/*533032*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*533034*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b), LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*533042*/ /*Scope*/ 63, /*->533106*/ ++/*533043*/ OPC_CheckChild0Same, 0, ++/*533045*/ OPC_MoveChild1, ++/*533046*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*533049*/ OPC_CheckChild0Integer, 1, ++/*533051*/ OPC_CheckChild0Type, MVT::i32, ++/*533053*/ OPC_CheckChild1Integer, 1, ++/*533055*/ OPC_CheckChild1Type, MVT::i32, ++/*533057*/ OPC_CheckChild2Integer, 1, ++/*533059*/ OPC_CheckChild2Type, MVT::i32, ++/*533061*/ OPC_CheckChild3Integer, 1, ++/*533063*/ OPC_CheckChild3Type, MVT::i32, ++/*533065*/ OPC_MoveParent, ++/*533066*/ OPC_MoveParent, ++/*533067*/ OPC_CheckChild1Same, 1, ++/*533069*/ OPC_MoveParent, ++/*533070*/ OPC_MoveParent, ++/*533071*/ OPC_MoveChild1, ++/*533072*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*533075*/ OPC_CheckChild0Integer, 1, ++/*533077*/ OPC_CheckChild0Type, MVT::i32, ++/*533079*/ OPC_CheckChild1Integer, 1, ++/*533081*/ OPC_CheckChild1Type, MVT::i32, ++/*533083*/ OPC_CheckChild2Integer, 1, ++/*533085*/ OPC_CheckChild2Type, MVT::i32, ++/*533087*/ OPC_CheckChild3Integer, 1, ++/*533089*/ OPC_CheckChild3Type, MVT::i32, ++/*533091*/ OPC_CheckType, MVT::v4i32, ++/*533093*/ OPC_MoveParent, ++/*533094*/ OPC_CheckType, MVT::v4i32, ++/*533096*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*533098*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*533106*/ /*Scope*/ 63, /*->533170*/ ++/*533107*/ OPC_CheckChild0Same, 1, ++/*533109*/ OPC_CheckChild1Same, 0, ++/*533111*/ OPC_MoveParent, ++/*533112*/ OPC_MoveChild1, ++/*533113*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*533116*/ OPC_CheckChild0Integer, 1, ++/*533118*/ OPC_CheckChild0Type, MVT::i32, ++/*533120*/ OPC_CheckChild1Integer, 1, ++/*533122*/ OPC_CheckChild1Type, MVT::i32, ++/*533124*/ OPC_CheckChild2Integer, 1, ++/*533126*/ OPC_CheckChild2Type, MVT::i32, ++/*533128*/ OPC_CheckChild3Integer, 1, ++/*533130*/ OPC_CheckChild3Type, MVT::i32, ++/*533132*/ OPC_MoveParent, ++/*533133*/ OPC_MoveParent, ++/*533134*/ OPC_MoveParent, ++/*533135*/ OPC_MoveChild1, ++/*533136*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*533139*/ OPC_CheckChild0Integer, 1, ++/*533141*/ OPC_CheckChild0Type, MVT::i32, ++/*533143*/ OPC_CheckChild1Integer, 1, ++/*533145*/ OPC_CheckChild1Type, MVT::i32, ++/*533147*/ OPC_CheckChild2Integer, 1, ++/*533149*/ OPC_CheckChild2Type, MVT::i32, ++/*533151*/ OPC_CheckChild3Integer, 1, ++/*533153*/ OPC_CheckChild3Type, MVT::i32, ++/*533155*/ OPC_CheckType, MVT::v4i32, ++/*533157*/ OPC_MoveParent, ++/*533158*/ OPC_CheckType, MVT::v4i32, ++/*533160*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*533162*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*533170*/ /*Scope*/ 63, /*->533234*/ ++/*533171*/ OPC_CheckChild0Same, 0, ++/*533173*/ OPC_CheckChild1Same, 1, ++/*533175*/ OPC_MoveParent, ++/*533176*/ OPC_MoveChild1, ++/*533177*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*533180*/ OPC_CheckChild0Integer, 1, ++/*533182*/ OPC_CheckChild0Type, MVT::i32, ++/*533184*/ OPC_CheckChild1Integer, 1, ++/*533186*/ OPC_CheckChild1Type, MVT::i32, ++/*533188*/ OPC_CheckChild2Integer, 1, ++/*533190*/ OPC_CheckChild2Type, MVT::i32, ++/*533192*/ OPC_CheckChild3Integer, 1, ++/*533194*/ OPC_CheckChild3Type, MVT::i32, ++/*533196*/ OPC_MoveParent, ++/*533197*/ OPC_MoveParent, ++/*533198*/ OPC_MoveParent, ++/*533199*/ OPC_MoveChild1, ++/*533200*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*533203*/ OPC_CheckChild0Integer, 1, ++/*533205*/ OPC_CheckChild0Type, MVT::i32, ++/*533207*/ OPC_CheckChild1Integer, 1, ++/*533209*/ OPC_CheckChild1Type, MVT::i32, ++/*533211*/ OPC_CheckChild2Integer, 1, ++/*533213*/ OPC_CheckChild2Type, MVT::i32, ++/*533215*/ OPC_CheckChild3Integer, 1, ++/*533217*/ OPC_CheckChild3Type, MVT::i32, ++/*533219*/ OPC_CheckType, MVT::v4i32, ++/*533221*/ OPC_MoveParent, ++/*533222*/ OPC_CheckType, MVT::v4i32, ++/*533224*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*533226*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*533234*/ 0, /*End of Scope*/ ++/*533235*/ /*Scope*/ 4|128,1/*132*/, /*->533369*/ ++/*533237*/ OPC_CheckChild0Same, 0, ++/*533239*/ OPC_MoveChild1, ++/*533240*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*533243*/ OPC_Scope, 61, /*->533306*/ // 2 children in Scope ++/*533245*/ OPC_MoveChild0, ++/*533246*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*533249*/ OPC_CheckChild0Integer, 1, ++/*533251*/ OPC_CheckChild0Type, MVT::i32, ++/*533253*/ OPC_CheckChild1Integer, 1, ++/*533255*/ OPC_CheckChild1Type, MVT::i32, ++/*533257*/ OPC_CheckChild2Integer, 1, ++/*533259*/ OPC_CheckChild2Type, MVT::i32, ++/*533261*/ OPC_CheckChild3Integer, 1, ++/*533263*/ OPC_CheckChild3Type, MVT::i32, ++/*533265*/ OPC_MoveParent, ++/*533266*/ OPC_CheckChild1Same, 1, ++/*533268*/ OPC_MoveParent, ++/*533269*/ OPC_MoveParent, ++/*533270*/ OPC_MoveParent, ++/*533271*/ OPC_MoveChild1, ++/*533272*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*533275*/ OPC_CheckChild0Integer, 1, ++/*533277*/ OPC_CheckChild0Type, MVT::i32, ++/*533279*/ OPC_CheckChild1Integer, 1, ++/*533281*/ OPC_CheckChild1Type, MVT::i32, ++/*533283*/ OPC_CheckChild2Integer, 1, ++/*533285*/ OPC_CheckChild2Type, MVT::i32, ++/*533287*/ OPC_CheckChild3Integer, 1, ++/*533289*/ OPC_CheckChild3Type, MVT::i32, ++/*533291*/ OPC_CheckType, MVT::v4i32, ++/*533293*/ OPC_MoveParent, ++/*533294*/ OPC_CheckType, MVT::v4i32, ++/*533296*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*533298*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*533306*/ /*Scope*/ 61, /*->533368*/ ++/*533307*/ OPC_CheckChild0Same, 1, ++/*533309*/ OPC_MoveChild1, ++/*533310*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*533313*/ OPC_CheckChild0Integer, 1, ++/*533315*/ OPC_CheckChild0Type, MVT::i32, ++/*533317*/ OPC_CheckChild1Integer, 1, ++/*533319*/ OPC_CheckChild1Type, MVT::i32, ++/*533321*/ OPC_CheckChild2Integer, 1, ++/*533323*/ OPC_CheckChild2Type, MVT::i32, ++/*533325*/ OPC_CheckChild3Integer, 1, ++/*533327*/ OPC_CheckChild3Type, MVT::i32, ++/*533329*/ OPC_MoveParent, ++/*533330*/ OPC_MoveParent, ++/*533331*/ OPC_MoveParent, ++/*533332*/ OPC_MoveParent, ++/*533333*/ OPC_MoveChild1, ++/*533334*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*533337*/ OPC_CheckChild0Integer, 1, ++/*533339*/ OPC_CheckChild0Type, MVT::i32, ++/*533341*/ OPC_CheckChild1Integer, 1, ++/*533343*/ OPC_CheckChild1Type, MVT::i32, ++/*533345*/ OPC_CheckChild2Integer, 1, ++/*533347*/ OPC_CheckChild2Type, MVT::i32, ++/*533349*/ OPC_CheckChild3Integer, 1, ++/*533351*/ OPC_CheckChild3Type, MVT::i32, ++/*533353*/ OPC_CheckType, MVT::v4i32, ++/*533355*/ OPC_MoveParent, ++/*533356*/ OPC_CheckType, MVT::v4i32, ++/*533358*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*533360*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*533368*/ 0, /*End of Scope*/ ++/*533369*/ /*Scope*/ 4|128,1/*132*/, /*->533503*/ ++/*533371*/ OPC_CheckChild0Same, 1, ++/*533373*/ OPC_MoveChild1, ++/*533374*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*533377*/ OPC_Scope, 61, /*->533440*/ // 2 children in Scope ++/*533379*/ OPC_MoveChild0, ++/*533380*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*533383*/ OPC_CheckChild0Integer, 1, ++/*533385*/ OPC_CheckChild0Type, MVT::i32, ++/*533387*/ OPC_CheckChild1Integer, 1, ++/*533389*/ OPC_CheckChild1Type, MVT::i32, ++/*533391*/ OPC_CheckChild2Integer, 1, ++/*533393*/ OPC_CheckChild2Type, MVT::i32, ++/*533395*/ OPC_CheckChild3Integer, 1, ++/*533397*/ OPC_CheckChild3Type, MVT::i32, ++/*533399*/ OPC_MoveParent, ++/*533400*/ OPC_CheckChild1Same, 0, ++/*533402*/ OPC_MoveParent, ++/*533403*/ OPC_MoveParent, ++/*533404*/ OPC_MoveParent, ++/*533405*/ OPC_MoveChild1, ++/*533406*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*533409*/ OPC_CheckChild0Integer, 1, ++/*533411*/ OPC_CheckChild0Type, MVT::i32, ++/*533413*/ OPC_CheckChild1Integer, 1, ++/*533415*/ OPC_CheckChild1Type, MVT::i32, ++/*533417*/ OPC_CheckChild2Integer, 1, ++/*533419*/ OPC_CheckChild2Type, MVT::i32, ++/*533421*/ OPC_CheckChild3Integer, 1, ++/*533423*/ OPC_CheckChild3Type, MVT::i32, ++/*533425*/ OPC_CheckType, MVT::v4i32, ++/*533427*/ OPC_MoveParent, ++/*533428*/ OPC_CheckType, MVT::v4i32, ++/*533430*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*533432*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*533440*/ /*Scope*/ 61, /*->533502*/ ++/*533441*/ OPC_CheckChild0Same, 0, ++/*533443*/ OPC_MoveChild1, ++/*533444*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*533447*/ OPC_CheckChild0Integer, 1, ++/*533449*/ OPC_CheckChild0Type, MVT::i32, ++/*533451*/ OPC_CheckChild1Integer, 1, ++/*533453*/ OPC_CheckChild1Type, MVT::i32, ++/*533455*/ OPC_CheckChild2Integer, 1, ++/*533457*/ OPC_CheckChild2Type, MVT::i32, ++/*533459*/ OPC_CheckChild3Integer, 1, ++/*533461*/ OPC_CheckChild3Type, MVT::i32, ++/*533463*/ OPC_MoveParent, ++/*533464*/ OPC_MoveParent, ++/*533465*/ OPC_MoveParent, ++/*533466*/ OPC_MoveParent, ++/*533467*/ OPC_MoveChild1, ++/*533468*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*533471*/ OPC_CheckChild0Integer, 1, ++/*533473*/ OPC_CheckChild0Type, MVT::i32, ++/*533475*/ OPC_CheckChild1Integer, 1, ++/*533477*/ OPC_CheckChild1Type, MVT::i32, ++/*533479*/ OPC_CheckChild2Integer, 1, ++/*533481*/ OPC_CheckChild2Type, MVT::i32, ++/*533483*/ OPC_CheckChild3Integer, 1, ++/*533485*/ OPC_CheckChild3Type, MVT::i32, ++/*533487*/ OPC_CheckType, MVT::v4i32, ++/*533489*/ OPC_MoveParent, ++/*533490*/ OPC_CheckType, MVT::v4i32, ++/*533492*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*533494*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*533502*/ 0, /*End of Scope*/ ++/*533503*/ /*Scope*/ 113, /*->533617*/ ++/*533504*/ OPC_MoveChild0, ++/*533505*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*533508*/ OPC_CheckChild0Integer, 1, ++/*533510*/ OPC_CheckChild0Type, MVT::i32, ++/*533512*/ OPC_CheckChild1Integer, 1, ++/*533514*/ OPC_CheckChild1Type, MVT::i32, ++/*533516*/ OPC_CheckChild2Integer, 1, ++/*533518*/ OPC_CheckChild2Type, MVT::i32, ++/*533520*/ OPC_CheckChild3Integer, 1, ++/*533522*/ OPC_CheckChild3Type, MVT::i32, ++/*533524*/ OPC_MoveParent, ++/*533525*/ OPC_MoveChild1, ++/*533526*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*533529*/ OPC_Scope, 42, /*->533573*/ // 2 children in Scope ++/*533531*/ OPC_CheckChild0Same, 1, ++/*533533*/ OPC_CheckChild1Same, 0, ++/*533535*/ OPC_MoveParent, ++/*533536*/ OPC_MoveParent, ++/*533537*/ OPC_MoveParent, ++/*533538*/ OPC_MoveChild1, ++/*533539*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*533542*/ OPC_CheckChild0Integer, 1, ++/*533544*/ OPC_CheckChild0Type, MVT::i32, ++/*533546*/ OPC_CheckChild1Integer, 1, ++/*533548*/ OPC_CheckChild1Type, MVT::i32, ++/*533550*/ OPC_CheckChild2Integer, 1, ++/*533552*/ OPC_CheckChild2Type, MVT::i32, ++/*533554*/ OPC_CheckChild3Integer, 1, ++/*533556*/ OPC_CheckChild3Type, MVT::i32, ++/*533558*/ OPC_CheckType, MVT::v4i32, ++/*533560*/ OPC_MoveParent, ++/*533561*/ OPC_CheckType, MVT::v4i32, ++/*533563*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*533565*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*533573*/ /*Scope*/ 42, /*->533616*/ ++/*533574*/ OPC_CheckChild0Same, 0, ++/*533576*/ OPC_CheckChild1Same, 1, ++/*533578*/ OPC_MoveParent, ++/*533579*/ OPC_MoveParent, ++/*533580*/ OPC_MoveParent, ++/*533581*/ OPC_MoveChild1, ++/*533582*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*533585*/ OPC_CheckChild0Integer, 1, ++/*533587*/ OPC_CheckChild0Type, MVT::i32, ++/*533589*/ OPC_CheckChild1Integer, 1, ++/*533591*/ OPC_CheckChild1Type, MVT::i32, ++/*533593*/ OPC_CheckChild2Integer, 1, ++/*533595*/ OPC_CheckChild2Type, MVT::i32, ++/*533597*/ OPC_CheckChild3Integer, 1, ++/*533599*/ OPC_CheckChild3Type, MVT::i32, ++/*533601*/ OPC_CheckType, MVT::v4i32, ++/*533603*/ OPC_MoveParent, ++/*533604*/ OPC_CheckType, MVT::v4i32, ++/*533606*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*533608*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*533616*/ 0, /*End of Scope*/ ++/*533617*/ 0, /*End of Scope*/ ++/*533618*/ /*Scope*/ 60|128,6/*828*/, /*->534448*/ ++/*533620*/ OPC_MoveChild0, ++/*533621*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*533624*/ OPC_CheckChild0Integer, 1, ++/*533626*/ OPC_CheckChild0Type, MVT::i32, ++/*533628*/ OPC_CheckChild1Integer, 1, ++/*533630*/ OPC_CheckChild1Type, MVT::i32, ++/*533632*/ OPC_CheckChild2Integer, 1, ++/*533634*/ OPC_CheckChild2Type, MVT::i32, ++/*533636*/ OPC_CheckChild3Integer, 1, ++/*533638*/ OPC_CheckChild3Type, MVT::i32, ++/*533640*/ OPC_MoveParent, ++/*533641*/ OPC_RecordChild1, // #1 = $b ++/*533642*/ OPC_MoveParent, ++/*533643*/ OPC_MoveParent, ++/*533644*/ OPC_MoveChild1, ++/*533645*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*533648*/ OPC_CheckChild0Integer, 31, ++/*533650*/ OPC_CheckChild0Type, MVT::i32, ++/*533652*/ OPC_CheckChild1Integer, 31, ++/*533654*/ OPC_CheckChild1Type, MVT::i32, ++/*533656*/ OPC_CheckChild2Integer, 31, ++/*533658*/ OPC_CheckChild2Type, MVT::i32, ++/*533660*/ OPC_CheckChild3Integer, 31, ++/*533662*/ OPC_CheckChild3Type, MVT::i32, ++/*533664*/ OPC_CheckType, MVT::v4i32, ++/*533666*/ OPC_MoveParent, ++/*533667*/ OPC_MoveParent, ++/*533668*/ OPC_MoveChild1, ++/*533669*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*533672*/ OPC_Scope, 6|128,3/*390*/, /*->534065*/ // 4 children in Scope ++/*533675*/ OPC_MoveChild0, ++/*533676*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*533679*/ OPC_Scope, 63, /*->533744*/ // 6 children in Scope ++/*533681*/ OPC_MoveChild0, ++/*533682*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*533685*/ OPC_CheckChild0Integer, 1, ++/*533687*/ OPC_CheckChild0Type, MVT::i32, ++/*533689*/ OPC_CheckChild1Integer, 1, ++/*533691*/ OPC_CheckChild1Type, MVT::i32, ++/*533693*/ OPC_CheckChild2Integer, 1, ++/*533695*/ OPC_CheckChild2Type, MVT::i32, ++/*533697*/ OPC_CheckChild3Integer, 1, ++/*533699*/ OPC_CheckChild3Type, MVT::i32, ++/*533701*/ OPC_MoveParent, ++/*533702*/ OPC_CheckChild1Same, 0, ++/*533704*/ OPC_MoveParent, ++/*533705*/ OPC_CheckChild1Same, 1, ++/*533707*/ OPC_MoveParent, ++/*533708*/ OPC_MoveParent, ++/*533709*/ OPC_MoveChild1, ++/*533710*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*533713*/ OPC_CheckChild0Integer, 1, ++/*533715*/ OPC_CheckChild0Type, MVT::i32, ++/*533717*/ OPC_CheckChild1Integer, 1, ++/*533719*/ OPC_CheckChild1Type, MVT::i32, ++/*533721*/ OPC_CheckChild2Integer, 1, ++/*533723*/ OPC_CheckChild2Type, MVT::i32, ++/*533725*/ OPC_CheckChild3Integer, 1, ++/*533727*/ OPC_CheckChild3Type, MVT::i32, ++/*533729*/ OPC_CheckType, MVT::v4i32, ++/*533731*/ OPC_MoveParent, ++/*533732*/ OPC_CheckType, MVT::v4i32, ++/*533734*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*533736*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a), LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*533744*/ /*Scope*/ 63, /*->533808*/ ++/*533745*/ OPC_CheckChild0Same, 0, ++/*533747*/ OPC_MoveChild1, ++/*533748*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*533751*/ OPC_CheckChild0Integer, 1, ++/*533753*/ OPC_CheckChild0Type, MVT::i32, ++/*533755*/ OPC_CheckChild1Integer, 1, ++/*533757*/ OPC_CheckChild1Type, MVT::i32, ++/*533759*/ OPC_CheckChild2Integer, 1, ++/*533761*/ OPC_CheckChild2Type, MVT::i32, ++/*533763*/ OPC_CheckChild3Integer, 1, ++/*533765*/ OPC_CheckChild3Type, MVT::i32, ++/*533767*/ OPC_MoveParent, ++/*533768*/ OPC_MoveParent, ++/*533769*/ OPC_CheckChild1Same, 1, ++/*533771*/ OPC_MoveParent, ++/*533772*/ OPC_MoveParent, ++/*533773*/ OPC_MoveChild1, ++/*533774*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*533777*/ OPC_CheckChild0Integer, 1, ++/*533779*/ OPC_CheckChild0Type, MVT::i32, ++/*533781*/ OPC_CheckChild1Integer, 1, ++/*533783*/ OPC_CheckChild1Type, MVT::i32, ++/*533785*/ OPC_CheckChild2Integer, 1, ++/*533787*/ OPC_CheckChild2Type, MVT::i32, ++/*533789*/ OPC_CheckChild3Integer, 1, ++/*533791*/ OPC_CheckChild3Type, MVT::i32, ++/*533793*/ OPC_CheckType, MVT::v4i32, ++/*533795*/ OPC_MoveParent, ++/*533796*/ OPC_CheckType, MVT::v4i32, ++/*533798*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*533800*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*533808*/ /*Scope*/ 63, /*->533872*/ ++/*533809*/ OPC_MoveChild0, ++/*533810*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*533813*/ OPC_CheckChild0Integer, 1, ++/*533815*/ OPC_CheckChild0Type, MVT::i32, ++/*533817*/ OPC_CheckChild1Integer, 1, ++/*533819*/ OPC_CheckChild1Type, MVT::i32, ++/*533821*/ OPC_CheckChild2Integer, 1, ++/*533823*/ OPC_CheckChild2Type, MVT::i32, ++/*533825*/ OPC_CheckChild3Integer, 1, ++/*533827*/ OPC_CheckChild3Type, MVT::i32, ++/*533829*/ OPC_MoveParent, ++/*533830*/ OPC_CheckChild1Same, 1, ++/*533832*/ OPC_MoveParent, ++/*533833*/ OPC_CheckChild1Same, 0, ++/*533835*/ OPC_MoveParent, ++/*533836*/ OPC_MoveParent, ++/*533837*/ OPC_MoveChild1, ++/*533838*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*533841*/ OPC_CheckChild0Integer, 1, ++/*533843*/ OPC_CheckChild0Type, MVT::i32, ++/*533845*/ OPC_CheckChild1Integer, 1, ++/*533847*/ OPC_CheckChild1Type, MVT::i32, ++/*533849*/ OPC_CheckChild2Integer, 1, ++/*533851*/ OPC_CheckChild2Type, MVT::i32, ++/*533853*/ OPC_CheckChild3Integer, 1, ++/*533855*/ OPC_CheckChild3Type, MVT::i32, ++/*533857*/ OPC_CheckType, MVT::v4i32, ++/*533859*/ OPC_MoveParent, ++/*533860*/ OPC_CheckType, MVT::v4i32, ++/*533862*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*533864*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b), LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*533872*/ /*Scope*/ 63, /*->533936*/ ++/*533873*/ OPC_CheckChild0Same, 1, ++/*533875*/ OPC_MoveChild1, ++/*533876*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*533879*/ OPC_CheckChild0Integer, 1, ++/*533881*/ OPC_CheckChild0Type, MVT::i32, ++/*533883*/ OPC_CheckChild1Integer, 1, ++/*533885*/ OPC_CheckChild1Type, MVT::i32, ++/*533887*/ OPC_CheckChild2Integer, 1, ++/*533889*/ OPC_CheckChild2Type, MVT::i32, ++/*533891*/ OPC_CheckChild3Integer, 1, ++/*533893*/ OPC_CheckChild3Type, MVT::i32, ++/*533895*/ OPC_MoveParent, ++/*533896*/ OPC_MoveParent, ++/*533897*/ OPC_CheckChild1Same, 0, ++/*533899*/ OPC_MoveParent, ++/*533900*/ OPC_MoveParent, ++/*533901*/ OPC_MoveChild1, ++/*533902*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*533905*/ OPC_CheckChild0Integer, 1, ++/*533907*/ OPC_CheckChild0Type, MVT::i32, ++/*533909*/ OPC_CheckChild1Integer, 1, ++/*533911*/ OPC_CheckChild1Type, MVT::i32, ++/*533913*/ OPC_CheckChild2Integer, 1, ++/*533915*/ OPC_CheckChild2Type, MVT::i32, ++/*533917*/ OPC_CheckChild3Integer, 1, ++/*533919*/ OPC_CheckChild3Type, MVT::i32, ++/*533921*/ OPC_CheckType, MVT::v4i32, ++/*533923*/ OPC_MoveParent, ++/*533924*/ OPC_CheckType, MVT::v4i32, ++/*533926*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*533928*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*533936*/ /*Scope*/ 63, /*->534000*/ ++/*533937*/ OPC_CheckChild0Same, 0, ++/*533939*/ OPC_CheckChild1Same, 1, ++/*533941*/ OPC_MoveParent, ++/*533942*/ OPC_MoveChild1, ++/*533943*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*533946*/ OPC_CheckChild0Integer, 1, ++/*533948*/ OPC_CheckChild0Type, MVT::i32, ++/*533950*/ OPC_CheckChild1Integer, 1, ++/*533952*/ OPC_CheckChild1Type, MVT::i32, ++/*533954*/ OPC_CheckChild2Integer, 1, ++/*533956*/ OPC_CheckChild2Type, MVT::i32, ++/*533958*/ OPC_CheckChild3Integer, 1, ++/*533960*/ OPC_CheckChild3Type, MVT::i32, ++/*533962*/ OPC_MoveParent, ++/*533963*/ OPC_MoveParent, ++/*533964*/ OPC_MoveParent, ++/*533965*/ OPC_MoveChild1, ++/*533966*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*533969*/ OPC_CheckChild0Integer, 1, ++/*533971*/ OPC_CheckChild0Type, MVT::i32, ++/*533973*/ OPC_CheckChild1Integer, 1, ++/*533975*/ OPC_CheckChild1Type, MVT::i32, ++/*533977*/ OPC_CheckChild2Integer, 1, ++/*533979*/ OPC_CheckChild2Type, MVT::i32, ++/*533981*/ OPC_CheckChild3Integer, 1, ++/*533983*/ OPC_CheckChild3Type, MVT::i32, ++/*533985*/ OPC_CheckType, MVT::v4i32, ++/*533987*/ OPC_MoveParent, ++/*533988*/ OPC_CheckType, MVT::v4i32, ++/*533990*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*533992*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*534000*/ /*Scope*/ 63, /*->534064*/ ++/*534001*/ OPC_CheckChild0Same, 1, ++/*534003*/ OPC_CheckChild1Same, 0, ++/*534005*/ OPC_MoveParent, ++/*534006*/ OPC_MoveChild1, ++/*534007*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*534010*/ OPC_CheckChild0Integer, 1, ++/*534012*/ OPC_CheckChild0Type, MVT::i32, ++/*534014*/ OPC_CheckChild1Integer, 1, ++/*534016*/ OPC_CheckChild1Type, MVT::i32, ++/*534018*/ OPC_CheckChild2Integer, 1, ++/*534020*/ OPC_CheckChild2Type, MVT::i32, ++/*534022*/ OPC_CheckChild3Integer, 1, ++/*534024*/ OPC_CheckChild3Type, MVT::i32, ++/*534026*/ OPC_MoveParent, ++/*534027*/ OPC_MoveParent, ++/*534028*/ OPC_MoveParent, ++/*534029*/ OPC_MoveChild1, ++/*534030*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*534033*/ OPC_CheckChild0Integer, 1, ++/*534035*/ OPC_CheckChild0Type, MVT::i32, ++/*534037*/ OPC_CheckChild1Integer, 1, ++/*534039*/ OPC_CheckChild1Type, MVT::i32, ++/*534041*/ OPC_CheckChild2Integer, 1, ++/*534043*/ OPC_CheckChild2Type, MVT::i32, ++/*534045*/ OPC_CheckChild3Integer, 1, ++/*534047*/ OPC_CheckChild3Type, MVT::i32, ++/*534049*/ OPC_CheckType, MVT::v4i32, ++/*534051*/ OPC_MoveParent, ++/*534052*/ OPC_CheckType, MVT::v4i32, ++/*534054*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*534056*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*534064*/ 0, /*End of Scope*/ ++/*534065*/ /*Scope*/ 4|128,1/*132*/, /*->534199*/ ++/*534067*/ OPC_CheckChild0Same, 1, ++/*534069*/ OPC_MoveChild1, ++/*534070*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*534073*/ OPC_Scope, 61, /*->534136*/ // 2 children in Scope ++/*534075*/ OPC_MoveChild0, ++/*534076*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*534079*/ OPC_CheckChild0Integer, 1, ++/*534081*/ OPC_CheckChild0Type, MVT::i32, ++/*534083*/ OPC_CheckChild1Integer, 1, ++/*534085*/ OPC_CheckChild1Type, MVT::i32, ++/*534087*/ OPC_CheckChild2Integer, 1, ++/*534089*/ OPC_CheckChild2Type, MVT::i32, ++/*534091*/ OPC_CheckChild3Integer, 1, ++/*534093*/ OPC_CheckChild3Type, MVT::i32, ++/*534095*/ OPC_MoveParent, ++/*534096*/ OPC_CheckChild1Same, 0, ++/*534098*/ OPC_MoveParent, ++/*534099*/ OPC_MoveParent, ++/*534100*/ OPC_MoveParent, ++/*534101*/ OPC_MoveChild1, ++/*534102*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*534105*/ OPC_CheckChild0Integer, 1, ++/*534107*/ OPC_CheckChild0Type, MVT::i32, ++/*534109*/ OPC_CheckChild1Integer, 1, ++/*534111*/ OPC_CheckChild1Type, MVT::i32, ++/*534113*/ OPC_CheckChild2Integer, 1, ++/*534115*/ OPC_CheckChild2Type, MVT::i32, ++/*534117*/ OPC_CheckChild3Integer, 1, ++/*534119*/ OPC_CheckChild3Type, MVT::i32, ++/*534121*/ OPC_CheckType, MVT::v4i32, ++/*534123*/ OPC_MoveParent, ++/*534124*/ OPC_CheckType, MVT::v4i32, ++/*534126*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*534128*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*534136*/ /*Scope*/ 61, /*->534198*/ ++/*534137*/ OPC_CheckChild0Same, 0, ++/*534139*/ OPC_MoveChild1, ++/*534140*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*534143*/ OPC_CheckChild0Integer, 1, ++/*534145*/ OPC_CheckChild0Type, MVT::i32, ++/*534147*/ OPC_CheckChild1Integer, 1, ++/*534149*/ OPC_CheckChild1Type, MVT::i32, ++/*534151*/ OPC_CheckChild2Integer, 1, ++/*534153*/ OPC_CheckChild2Type, MVT::i32, ++/*534155*/ OPC_CheckChild3Integer, 1, ++/*534157*/ OPC_CheckChild3Type, MVT::i32, ++/*534159*/ OPC_MoveParent, ++/*534160*/ OPC_MoveParent, ++/*534161*/ OPC_MoveParent, ++/*534162*/ OPC_MoveParent, ++/*534163*/ OPC_MoveChild1, ++/*534164*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*534167*/ OPC_CheckChild0Integer, 1, ++/*534169*/ OPC_CheckChild0Type, MVT::i32, ++/*534171*/ OPC_CheckChild1Integer, 1, ++/*534173*/ OPC_CheckChild1Type, MVT::i32, ++/*534175*/ OPC_CheckChild2Integer, 1, ++/*534177*/ OPC_CheckChild2Type, MVT::i32, ++/*534179*/ OPC_CheckChild3Integer, 1, ++/*534181*/ OPC_CheckChild3Type, MVT::i32, ++/*534183*/ OPC_CheckType, MVT::v4i32, ++/*534185*/ OPC_MoveParent, ++/*534186*/ OPC_CheckType, MVT::v4i32, ++/*534188*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*534190*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*534198*/ 0, /*End of Scope*/ ++/*534199*/ /*Scope*/ 4|128,1/*132*/, /*->534333*/ ++/*534201*/ OPC_CheckChild0Same, 0, ++/*534203*/ OPC_MoveChild1, ++/*534204*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*534207*/ OPC_Scope, 61, /*->534270*/ // 2 children in Scope ++/*534209*/ OPC_MoveChild0, ++/*534210*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*534213*/ OPC_CheckChild0Integer, 1, ++/*534215*/ OPC_CheckChild0Type, MVT::i32, ++/*534217*/ OPC_CheckChild1Integer, 1, ++/*534219*/ OPC_CheckChild1Type, MVT::i32, ++/*534221*/ OPC_CheckChild2Integer, 1, ++/*534223*/ OPC_CheckChild2Type, MVT::i32, ++/*534225*/ OPC_CheckChild3Integer, 1, ++/*534227*/ OPC_CheckChild3Type, MVT::i32, ++/*534229*/ OPC_MoveParent, ++/*534230*/ OPC_CheckChild1Same, 1, ++/*534232*/ OPC_MoveParent, ++/*534233*/ OPC_MoveParent, ++/*534234*/ OPC_MoveParent, ++/*534235*/ OPC_MoveChild1, ++/*534236*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*534239*/ OPC_CheckChild0Integer, 1, ++/*534241*/ OPC_CheckChild0Type, MVT::i32, ++/*534243*/ OPC_CheckChild1Integer, 1, ++/*534245*/ OPC_CheckChild1Type, MVT::i32, ++/*534247*/ OPC_CheckChild2Integer, 1, ++/*534249*/ OPC_CheckChild2Type, MVT::i32, ++/*534251*/ OPC_CheckChild3Integer, 1, ++/*534253*/ OPC_CheckChild3Type, MVT::i32, ++/*534255*/ OPC_CheckType, MVT::v4i32, ++/*534257*/ OPC_MoveParent, ++/*534258*/ OPC_CheckType, MVT::v4i32, ++/*534260*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*534262*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*534270*/ /*Scope*/ 61, /*->534332*/ ++/*534271*/ OPC_CheckChild0Same, 1, ++/*534273*/ OPC_MoveChild1, ++/*534274*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*534277*/ OPC_CheckChild0Integer, 1, ++/*534279*/ OPC_CheckChild0Type, MVT::i32, ++/*534281*/ OPC_CheckChild1Integer, 1, ++/*534283*/ OPC_CheckChild1Type, MVT::i32, ++/*534285*/ OPC_CheckChild2Integer, 1, ++/*534287*/ OPC_CheckChild2Type, MVT::i32, ++/*534289*/ OPC_CheckChild3Integer, 1, ++/*534291*/ OPC_CheckChild3Type, MVT::i32, ++/*534293*/ OPC_MoveParent, ++/*534294*/ OPC_MoveParent, ++/*534295*/ OPC_MoveParent, ++/*534296*/ OPC_MoveParent, ++/*534297*/ OPC_MoveChild1, ++/*534298*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*534301*/ OPC_CheckChild0Integer, 1, ++/*534303*/ OPC_CheckChild0Type, MVT::i32, ++/*534305*/ OPC_CheckChild1Integer, 1, ++/*534307*/ OPC_CheckChild1Type, MVT::i32, ++/*534309*/ OPC_CheckChild2Integer, 1, ++/*534311*/ OPC_CheckChild2Type, MVT::i32, ++/*534313*/ OPC_CheckChild3Integer, 1, ++/*534315*/ OPC_CheckChild3Type, MVT::i32, ++/*534317*/ OPC_CheckType, MVT::v4i32, ++/*534319*/ OPC_MoveParent, ++/*534320*/ OPC_CheckType, MVT::v4i32, ++/*534322*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*534324*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*534332*/ 0, /*End of Scope*/ ++/*534333*/ /*Scope*/ 113, /*->534447*/ ++/*534334*/ OPC_MoveChild0, ++/*534335*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*534338*/ OPC_CheckChild0Integer, 1, ++/*534340*/ OPC_CheckChild0Type, MVT::i32, ++/*534342*/ OPC_CheckChild1Integer, 1, ++/*534344*/ OPC_CheckChild1Type, MVT::i32, ++/*534346*/ OPC_CheckChild2Integer, 1, ++/*534348*/ OPC_CheckChild2Type, MVT::i32, ++/*534350*/ OPC_CheckChild3Integer, 1, ++/*534352*/ OPC_CheckChild3Type, MVT::i32, ++/*534354*/ OPC_MoveParent, ++/*534355*/ OPC_MoveChild1, ++/*534356*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*534359*/ OPC_Scope, 42, /*->534403*/ // 2 children in Scope ++/*534361*/ OPC_CheckChild0Same, 0, ++/*534363*/ OPC_CheckChild1Same, 1, ++/*534365*/ OPC_MoveParent, ++/*534366*/ OPC_MoveParent, ++/*534367*/ OPC_MoveParent, ++/*534368*/ OPC_MoveChild1, ++/*534369*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*534372*/ OPC_CheckChild0Integer, 1, ++/*534374*/ OPC_CheckChild0Type, MVT::i32, ++/*534376*/ OPC_CheckChild1Integer, 1, ++/*534378*/ OPC_CheckChild1Type, MVT::i32, ++/*534380*/ OPC_CheckChild2Integer, 1, ++/*534382*/ OPC_CheckChild2Type, MVT::i32, ++/*534384*/ OPC_CheckChild3Integer, 1, ++/*534386*/ OPC_CheckChild3Type, MVT::i32, ++/*534388*/ OPC_CheckType, MVT::v4i32, ++/*534390*/ OPC_MoveParent, ++/*534391*/ OPC_CheckType, MVT::v4i32, ++/*534393*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*534395*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*534403*/ /*Scope*/ 42, /*->534446*/ ++/*534404*/ OPC_CheckChild0Same, 1, ++/*534406*/ OPC_CheckChild1Same, 0, ++/*534408*/ OPC_MoveParent, ++/*534409*/ OPC_MoveParent, ++/*534410*/ OPC_MoveParent, ++/*534411*/ OPC_MoveChild1, ++/*534412*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*534415*/ OPC_CheckChild0Integer, 1, ++/*534417*/ OPC_CheckChild0Type, MVT::i32, ++/*534419*/ OPC_CheckChild1Integer, 1, ++/*534421*/ OPC_CheckChild1Type, MVT::i32, ++/*534423*/ OPC_CheckChild2Integer, 1, ++/*534425*/ OPC_CheckChild2Type, MVT::i32, ++/*534427*/ OPC_CheckChild3Integer, 1, ++/*534429*/ OPC_CheckChild3Type, MVT::i32, ++/*534431*/ OPC_CheckType, MVT::v4i32, ++/*534433*/ OPC_MoveParent, ++/*534434*/ OPC_CheckType, MVT::v4i32, ++/*534436*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*534438*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*534446*/ 0, /*End of Scope*/ ++/*534447*/ 0, /*End of Scope*/ ++/*534448*/ /*Scope*/ 60|128,6/*828*/, /*->535278*/ ++/*534450*/ OPC_RecordChild0, // #1 = $b ++/*534451*/ OPC_MoveChild1, ++/*534452*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*534455*/ OPC_CheckChild0Integer, 1, ++/*534457*/ OPC_CheckChild0Type, MVT::i32, ++/*534459*/ OPC_CheckChild1Integer, 1, ++/*534461*/ OPC_CheckChild1Type, MVT::i32, ++/*534463*/ OPC_CheckChild2Integer, 1, ++/*534465*/ OPC_CheckChild2Type, MVT::i32, ++/*534467*/ OPC_CheckChild3Integer, 1, ++/*534469*/ OPC_CheckChild3Type, MVT::i32, ++/*534471*/ OPC_MoveParent, ++/*534472*/ OPC_MoveParent, ++/*534473*/ OPC_MoveParent, ++/*534474*/ OPC_MoveChild1, ++/*534475*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*534478*/ OPC_CheckChild0Integer, 31, ++/*534480*/ OPC_CheckChild0Type, MVT::i32, ++/*534482*/ OPC_CheckChild1Integer, 31, ++/*534484*/ OPC_CheckChild1Type, MVT::i32, ++/*534486*/ OPC_CheckChild2Integer, 31, ++/*534488*/ OPC_CheckChild2Type, MVT::i32, ++/*534490*/ OPC_CheckChild3Integer, 31, ++/*534492*/ OPC_CheckChild3Type, MVT::i32, ++/*534494*/ OPC_CheckType, MVT::v4i32, ++/*534496*/ OPC_MoveParent, ++/*534497*/ OPC_MoveParent, ++/*534498*/ OPC_MoveChild1, ++/*534499*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*534502*/ OPC_Scope, 6|128,3/*390*/, /*->534895*/ // 4 children in Scope ++/*534505*/ OPC_MoveChild0, ++/*534506*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*534509*/ OPC_Scope, 63, /*->534574*/ // 6 children in Scope ++/*534511*/ OPC_MoveChild0, ++/*534512*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*534515*/ OPC_CheckChild0Integer, 1, ++/*534517*/ OPC_CheckChild0Type, MVT::i32, ++/*534519*/ OPC_CheckChild1Integer, 1, ++/*534521*/ OPC_CheckChild1Type, MVT::i32, ++/*534523*/ OPC_CheckChild2Integer, 1, ++/*534525*/ OPC_CheckChild2Type, MVT::i32, ++/*534527*/ OPC_CheckChild3Integer, 1, ++/*534529*/ OPC_CheckChild3Type, MVT::i32, ++/*534531*/ OPC_MoveParent, ++/*534532*/ OPC_CheckChild1Same, 0, ++/*534534*/ OPC_MoveParent, ++/*534535*/ OPC_CheckChild1Same, 1, ++/*534537*/ OPC_MoveParent, ++/*534538*/ OPC_MoveParent, ++/*534539*/ OPC_MoveChild1, ++/*534540*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*534543*/ OPC_CheckChild0Integer, 1, ++/*534545*/ OPC_CheckChild0Type, MVT::i32, ++/*534547*/ OPC_CheckChild1Integer, 1, ++/*534549*/ OPC_CheckChild1Type, MVT::i32, ++/*534551*/ OPC_CheckChild2Integer, 1, ++/*534553*/ OPC_CheckChild2Type, MVT::i32, ++/*534555*/ OPC_CheckChild3Integer, 1, ++/*534557*/ OPC_CheckChild3Type, MVT::i32, ++/*534559*/ OPC_CheckType, MVT::v4i32, ++/*534561*/ OPC_MoveParent, ++/*534562*/ OPC_CheckType, MVT::v4i32, ++/*534564*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*534566*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a), LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*534574*/ /*Scope*/ 63, /*->534638*/ ++/*534575*/ OPC_CheckChild0Same, 0, ++/*534577*/ OPC_MoveChild1, ++/*534578*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*534581*/ OPC_CheckChild0Integer, 1, ++/*534583*/ OPC_CheckChild0Type, MVT::i32, ++/*534585*/ OPC_CheckChild1Integer, 1, ++/*534587*/ OPC_CheckChild1Type, MVT::i32, ++/*534589*/ OPC_CheckChild2Integer, 1, ++/*534591*/ OPC_CheckChild2Type, MVT::i32, ++/*534593*/ OPC_CheckChild3Integer, 1, ++/*534595*/ OPC_CheckChild3Type, MVT::i32, ++/*534597*/ OPC_MoveParent, ++/*534598*/ OPC_MoveParent, ++/*534599*/ OPC_CheckChild1Same, 1, ++/*534601*/ OPC_MoveParent, ++/*534602*/ OPC_MoveParent, ++/*534603*/ OPC_MoveChild1, ++/*534604*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*534607*/ OPC_CheckChild0Integer, 1, ++/*534609*/ OPC_CheckChild0Type, MVT::i32, ++/*534611*/ OPC_CheckChild1Integer, 1, ++/*534613*/ OPC_CheckChild1Type, MVT::i32, ++/*534615*/ OPC_CheckChild2Integer, 1, ++/*534617*/ OPC_CheckChild2Type, MVT::i32, ++/*534619*/ OPC_CheckChild3Integer, 1, ++/*534621*/ OPC_CheckChild3Type, MVT::i32, ++/*534623*/ OPC_CheckType, MVT::v4i32, ++/*534625*/ OPC_MoveParent, ++/*534626*/ OPC_CheckType, MVT::v4i32, ++/*534628*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*534630*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*534638*/ /*Scope*/ 63, /*->534702*/ ++/*534639*/ OPC_MoveChild0, ++/*534640*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*534643*/ OPC_CheckChild0Integer, 1, ++/*534645*/ OPC_CheckChild0Type, MVT::i32, ++/*534647*/ OPC_CheckChild1Integer, 1, ++/*534649*/ OPC_CheckChild1Type, MVT::i32, ++/*534651*/ OPC_CheckChild2Integer, 1, ++/*534653*/ OPC_CheckChild2Type, MVT::i32, ++/*534655*/ OPC_CheckChild3Integer, 1, ++/*534657*/ OPC_CheckChild3Type, MVT::i32, ++/*534659*/ OPC_MoveParent, ++/*534660*/ OPC_CheckChild1Same, 1, ++/*534662*/ OPC_MoveParent, ++/*534663*/ OPC_CheckChild1Same, 0, ++/*534665*/ OPC_MoveParent, ++/*534666*/ OPC_MoveParent, ++/*534667*/ OPC_MoveChild1, ++/*534668*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*534671*/ OPC_CheckChild0Integer, 1, ++/*534673*/ OPC_CheckChild0Type, MVT::i32, ++/*534675*/ OPC_CheckChild1Integer, 1, ++/*534677*/ OPC_CheckChild1Type, MVT::i32, ++/*534679*/ OPC_CheckChild2Integer, 1, ++/*534681*/ OPC_CheckChild2Type, MVT::i32, ++/*534683*/ OPC_CheckChild3Integer, 1, ++/*534685*/ OPC_CheckChild3Type, MVT::i32, ++/*534687*/ OPC_CheckType, MVT::v4i32, ++/*534689*/ OPC_MoveParent, ++/*534690*/ OPC_CheckType, MVT::v4i32, ++/*534692*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*534694*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b), LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*534702*/ /*Scope*/ 63, /*->534766*/ ++/*534703*/ OPC_CheckChild0Same, 1, ++/*534705*/ OPC_MoveChild1, ++/*534706*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*534709*/ OPC_CheckChild0Integer, 1, ++/*534711*/ OPC_CheckChild0Type, MVT::i32, ++/*534713*/ OPC_CheckChild1Integer, 1, ++/*534715*/ OPC_CheckChild1Type, MVT::i32, ++/*534717*/ OPC_CheckChild2Integer, 1, ++/*534719*/ OPC_CheckChild2Type, MVT::i32, ++/*534721*/ OPC_CheckChild3Integer, 1, ++/*534723*/ OPC_CheckChild3Type, MVT::i32, ++/*534725*/ OPC_MoveParent, ++/*534726*/ OPC_MoveParent, ++/*534727*/ OPC_CheckChild1Same, 0, ++/*534729*/ OPC_MoveParent, ++/*534730*/ OPC_MoveParent, ++/*534731*/ OPC_MoveChild1, ++/*534732*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*534735*/ OPC_CheckChild0Integer, 1, ++/*534737*/ OPC_CheckChild0Type, MVT::i32, ++/*534739*/ OPC_CheckChild1Integer, 1, ++/*534741*/ OPC_CheckChild1Type, MVT::i32, ++/*534743*/ OPC_CheckChild2Integer, 1, ++/*534745*/ OPC_CheckChild2Type, MVT::i32, ++/*534747*/ OPC_CheckChild3Integer, 1, ++/*534749*/ OPC_CheckChild3Type, MVT::i32, ++/*534751*/ OPC_CheckType, MVT::v4i32, ++/*534753*/ OPC_MoveParent, ++/*534754*/ OPC_CheckType, MVT::v4i32, ++/*534756*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*534758*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*534766*/ /*Scope*/ 63, /*->534830*/ ++/*534767*/ OPC_CheckChild0Same, 0, ++/*534769*/ OPC_CheckChild1Same, 1, ++/*534771*/ OPC_MoveParent, ++/*534772*/ OPC_MoveChild1, ++/*534773*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*534776*/ OPC_CheckChild0Integer, 1, ++/*534778*/ OPC_CheckChild0Type, MVT::i32, ++/*534780*/ OPC_CheckChild1Integer, 1, ++/*534782*/ OPC_CheckChild1Type, MVT::i32, ++/*534784*/ OPC_CheckChild2Integer, 1, ++/*534786*/ OPC_CheckChild2Type, MVT::i32, ++/*534788*/ OPC_CheckChild3Integer, 1, ++/*534790*/ OPC_CheckChild3Type, MVT::i32, ++/*534792*/ OPC_MoveParent, ++/*534793*/ OPC_MoveParent, ++/*534794*/ OPC_MoveParent, ++/*534795*/ OPC_MoveChild1, ++/*534796*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*534799*/ OPC_CheckChild0Integer, 1, ++/*534801*/ OPC_CheckChild0Type, MVT::i32, ++/*534803*/ OPC_CheckChild1Integer, 1, ++/*534805*/ OPC_CheckChild1Type, MVT::i32, ++/*534807*/ OPC_CheckChild2Integer, 1, ++/*534809*/ OPC_CheckChild2Type, MVT::i32, ++/*534811*/ OPC_CheckChild3Integer, 1, ++/*534813*/ OPC_CheckChild3Type, MVT::i32, ++/*534815*/ OPC_CheckType, MVT::v4i32, ++/*534817*/ OPC_MoveParent, ++/*534818*/ OPC_CheckType, MVT::v4i32, ++/*534820*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*534822*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*534830*/ /*Scope*/ 63, /*->534894*/ ++/*534831*/ OPC_CheckChild0Same, 1, ++/*534833*/ OPC_CheckChild1Same, 0, ++/*534835*/ OPC_MoveParent, ++/*534836*/ OPC_MoveChild1, ++/*534837*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*534840*/ OPC_CheckChild0Integer, 1, ++/*534842*/ OPC_CheckChild0Type, MVT::i32, ++/*534844*/ OPC_CheckChild1Integer, 1, ++/*534846*/ OPC_CheckChild1Type, MVT::i32, ++/*534848*/ OPC_CheckChild2Integer, 1, ++/*534850*/ OPC_CheckChild2Type, MVT::i32, ++/*534852*/ OPC_CheckChild3Integer, 1, ++/*534854*/ OPC_CheckChild3Type, MVT::i32, ++/*534856*/ OPC_MoveParent, ++/*534857*/ OPC_MoveParent, ++/*534858*/ OPC_MoveParent, ++/*534859*/ OPC_MoveChild1, ++/*534860*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*534863*/ OPC_CheckChild0Integer, 1, ++/*534865*/ OPC_CheckChild0Type, MVT::i32, ++/*534867*/ OPC_CheckChild1Integer, 1, ++/*534869*/ OPC_CheckChild1Type, MVT::i32, ++/*534871*/ OPC_CheckChild2Integer, 1, ++/*534873*/ OPC_CheckChild2Type, MVT::i32, ++/*534875*/ OPC_CheckChild3Integer, 1, ++/*534877*/ OPC_CheckChild3Type, MVT::i32, ++/*534879*/ OPC_CheckType, MVT::v4i32, ++/*534881*/ OPC_MoveParent, ++/*534882*/ OPC_CheckType, MVT::v4i32, ++/*534884*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*534886*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*534894*/ 0, /*End of Scope*/ ++/*534895*/ /*Scope*/ 4|128,1/*132*/, /*->535029*/ ++/*534897*/ OPC_CheckChild0Same, 1, ++/*534899*/ OPC_MoveChild1, ++/*534900*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*534903*/ OPC_Scope, 61, /*->534966*/ // 2 children in Scope ++/*534905*/ OPC_MoveChild0, ++/*534906*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*534909*/ OPC_CheckChild0Integer, 1, ++/*534911*/ OPC_CheckChild0Type, MVT::i32, ++/*534913*/ OPC_CheckChild1Integer, 1, ++/*534915*/ OPC_CheckChild1Type, MVT::i32, ++/*534917*/ OPC_CheckChild2Integer, 1, ++/*534919*/ OPC_CheckChild2Type, MVT::i32, ++/*534921*/ OPC_CheckChild3Integer, 1, ++/*534923*/ OPC_CheckChild3Type, MVT::i32, ++/*534925*/ OPC_MoveParent, ++/*534926*/ OPC_CheckChild1Same, 0, ++/*534928*/ OPC_MoveParent, ++/*534929*/ OPC_MoveParent, ++/*534930*/ OPC_MoveParent, ++/*534931*/ OPC_MoveChild1, ++/*534932*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*534935*/ OPC_CheckChild0Integer, 1, ++/*534937*/ OPC_CheckChild0Type, MVT::i32, ++/*534939*/ OPC_CheckChild1Integer, 1, ++/*534941*/ OPC_CheckChild1Type, MVT::i32, ++/*534943*/ OPC_CheckChild2Integer, 1, ++/*534945*/ OPC_CheckChild2Type, MVT::i32, ++/*534947*/ OPC_CheckChild3Integer, 1, ++/*534949*/ OPC_CheckChild3Type, MVT::i32, ++/*534951*/ OPC_CheckType, MVT::v4i32, ++/*534953*/ OPC_MoveParent, ++/*534954*/ OPC_CheckType, MVT::v4i32, ++/*534956*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*534958*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*534966*/ /*Scope*/ 61, /*->535028*/ ++/*534967*/ OPC_CheckChild0Same, 0, ++/*534969*/ OPC_MoveChild1, ++/*534970*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*534973*/ OPC_CheckChild0Integer, 1, ++/*534975*/ OPC_CheckChild0Type, MVT::i32, ++/*534977*/ OPC_CheckChild1Integer, 1, ++/*534979*/ OPC_CheckChild1Type, MVT::i32, ++/*534981*/ OPC_CheckChild2Integer, 1, ++/*534983*/ OPC_CheckChild2Type, MVT::i32, ++/*534985*/ OPC_CheckChild3Integer, 1, ++/*534987*/ OPC_CheckChild3Type, MVT::i32, ++/*534989*/ OPC_MoveParent, ++/*534990*/ OPC_MoveParent, ++/*534991*/ OPC_MoveParent, ++/*534992*/ OPC_MoveParent, ++/*534993*/ OPC_MoveChild1, ++/*534994*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*534997*/ OPC_CheckChild0Integer, 1, ++/*534999*/ OPC_CheckChild0Type, MVT::i32, ++/*535001*/ OPC_CheckChild1Integer, 1, ++/*535003*/ OPC_CheckChild1Type, MVT::i32, ++/*535005*/ OPC_CheckChild2Integer, 1, ++/*535007*/ OPC_CheckChild2Type, MVT::i32, ++/*535009*/ OPC_CheckChild3Integer, 1, ++/*535011*/ OPC_CheckChild3Type, MVT::i32, ++/*535013*/ OPC_CheckType, MVT::v4i32, ++/*535015*/ OPC_MoveParent, ++/*535016*/ OPC_CheckType, MVT::v4i32, ++/*535018*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*535020*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*535028*/ 0, /*End of Scope*/ ++/*535029*/ /*Scope*/ 4|128,1/*132*/, /*->535163*/ ++/*535031*/ OPC_CheckChild0Same, 0, ++/*535033*/ OPC_MoveChild1, ++/*535034*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*535037*/ OPC_Scope, 61, /*->535100*/ // 2 children in Scope ++/*535039*/ OPC_MoveChild0, ++/*535040*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*535043*/ OPC_CheckChild0Integer, 1, ++/*535045*/ OPC_CheckChild0Type, MVT::i32, ++/*535047*/ OPC_CheckChild1Integer, 1, ++/*535049*/ OPC_CheckChild1Type, MVT::i32, ++/*535051*/ OPC_CheckChild2Integer, 1, ++/*535053*/ OPC_CheckChild2Type, MVT::i32, ++/*535055*/ OPC_CheckChild3Integer, 1, ++/*535057*/ OPC_CheckChild3Type, MVT::i32, ++/*535059*/ OPC_MoveParent, ++/*535060*/ OPC_CheckChild1Same, 1, ++/*535062*/ OPC_MoveParent, ++/*535063*/ OPC_MoveParent, ++/*535064*/ OPC_MoveParent, ++/*535065*/ OPC_MoveChild1, ++/*535066*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*535069*/ OPC_CheckChild0Integer, 1, ++/*535071*/ OPC_CheckChild0Type, MVT::i32, ++/*535073*/ OPC_CheckChild1Integer, 1, ++/*535075*/ OPC_CheckChild1Type, MVT::i32, ++/*535077*/ OPC_CheckChild2Integer, 1, ++/*535079*/ OPC_CheckChild2Type, MVT::i32, ++/*535081*/ OPC_CheckChild3Integer, 1, ++/*535083*/ OPC_CheckChild3Type, MVT::i32, ++/*535085*/ OPC_CheckType, MVT::v4i32, ++/*535087*/ OPC_MoveParent, ++/*535088*/ OPC_CheckType, MVT::v4i32, ++/*535090*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*535092*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*535100*/ /*Scope*/ 61, /*->535162*/ ++/*535101*/ OPC_CheckChild0Same, 1, ++/*535103*/ OPC_MoveChild1, ++/*535104*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*535107*/ OPC_CheckChild0Integer, 1, ++/*535109*/ OPC_CheckChild0Type, MVT::i32, ++/*535111*/ OPC_CheckChild1Integer, 1, ++/*535113*/ OPC_CheckChild1Type, MVT::i32, ++/*535115*/ OPC_CheckChild2Integer, 1, ++/*535117*/ OPC_CheckChild2Type, MVT::i32, ++/*535119*/ OPC_CheckChild3Integer, 1, ++/*535121*/ OPC_CheckChild3Type, MVT::i32, ++/*535123*/ OPC_MoveParent, ++/*535124*/ OPC_MoveParent, ++/*535125*/ OPC_MoveParent, ++/*535126*/ OPC_MoveParent, ++/*535127*/ OPC_MoveChild1, ++/*535128*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*535131*/ OPC_CheckChild0Integer, 1, ++/*535133*/ OPC_CheckChild0Type, MVT::i32, ++/*535135*/ OPC_CheckChild1Integer, 1, ++/*535137*/ OPC_CheckChild1Type, MVT::i32, ++/*535139*/ OPC_CheckChild2Integer, 1, ++/*535141*/ OPC_CheckChild2Type, MVT::i32, ++/*535143*/ OPC_CheckChild3Integer, 1, ++/*535145*/ OPC_CheckChild3Type, MVT::i32, ++/*535147*/ OPC_CheckType, MVT::v4i32, ++/*535149*/ OPC_MoveParent, ++/*535150*/ OPC_CheckType, MVT::v4i32, ++/*535152*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*535154*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*535162*/ 0, /*End of Scope*/ ++/*535163*/ /*Scope*/ 113, /*->535277*/ ++/*535164*/ OPC_MoveChild0, ++/*535165*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*535168*/ OPC_CheckChild0Integer, 1, ++/*535170*/ OPC_CheckChild0Type, MVT::i32, ++/*535172*/ OPC_CheckChild1Integer, 1, ++/*535174*/ OPC_CheckChild1Type, MVT::i32, ++/*535176*/ OPC_CheckChild2Integer, 1, ++/*535178*/ OPC_CheckChild2Type, MVT::i32, ++/*535180*/ OPC_CheckChild3Integer, 1, ++/*535182*/ OPC_CheckChild3Type, MVT::i32, ++/*535184*/ OPC_MoveParent, ++/*535185*/ OPC_MoveChild1, ++/*535186*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*535189*/ OPC_Scope, 42, /*->535233*/ // 2 children in Scope ++/*535191*/ OPC_CheckChild0Same, 0, ++/*535193*/ OPC_CheckChild1Same, 1, ++/*535195*/ OPC_MoveParent, ++/*535196*/ OPC_MoveParent, ++/*535197*/ OPC_MoveParent, ++/*535198*/ OPC_MoveChild1, ++/*535199*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*535202*/ OPC_CheckChild0Integer, 1, ++/*535204*/ OPC_CheckChild0Type, MVT::i32, ++/*535206*/ OPC_CheckChild1Integer, 1, ++/*535208*/ OPC_CheckChild1Type, MVT::i32, ++/*535210*/ OPC_CheckChild2Integer, 1, ++/*535212*/ OPC_CheckChild2Type, MVT::i32, ++/*535214*/ OPC_CheckChild3Integer, 1, ++/*535216*/ OPC_CheckChild3Type, MVT::i32, ++/*535218*/ OPC_CheckType, MVT::v4i32, ++/*535220*/ OPC_MoveParent, ++/*535221*/ OPC_CheckType, MVT::v4i32, ++/*535223*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*535225*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*535233*/ /*Scope*/ 42, /*->535276*/ ++/*535234*/ OPC_CheckChild0Same, 1, ++/*535236*/ OPC_CheckChild1Same, 0, ++/*535238*/ OPC_MoveParent, ++/*535239*/ OPC_MoveParent, ++/*535240*/ OPC_MoveParent, ++/*535241*/ OPC_MoveChild1, ++/*535242*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*535245*/ OPC_CheckChild0Integer, 1, ++/*535247*/ OPC_CheckChild0Type, MVT::i32, ++/*535249*/ OPC_CheckChild1Integer, 1, ++/*535251*/ OPC_CheckChild1Type, MVT::i32, ++/*535253*/ OPC_CheckChild2Integer, 1, ++/*535255*/ OPC_CheckChild2Type, MVT::i32, ++/*535257*/ OPC_CheckChild3Integer, 1, ++/*535259*/ OPC_CheckChild3Type, MVT::i32, ++/*535261*/ OPC_CheckType, MVT::v4i32, ++/*535263*/ OPC_MoveParent, ++/*535264*/ OPC_CheckType, MVT::v4i32, ++/*535266*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*535268*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*535276*/ 0, /*End of Scope*/ ++/*535277*/ 0, /*End of Scope*/ ++/*535278*/ 0, /*End of Scope*/ ++/*535279*/ /*Scope*/ 22|128,51/*6550*/, /*->541831*/ ++/*535281*/ OPC_MoveChild0, ++/*535282*/ OPC_SwitchOpcode /*2 cases */, 68|128,12/*1604*/, TARGET_VAL(ISD::BUILD_VECTOR),// ->536891 ++/*535287*/ OPC_CheckChild0Integer, 1, ++/*535289*/ OPC_CheckChild0Type, MVT::i32, ++/*535291*/ OPC_CheckChild1Integer, 1, ++/*535293*/ OPC_CheckChild1Type, MVT::i32, ++/*535295*/ OPC_CheckChild2Integer, 1, ++/*535297*/ OPC_CheckChild2Type, MVT::i32, ++/*535299*/ OPC_CheckChild3Integer, 1, ++/*535301*/ OPC_CheckChild3Type, MVT::i32, ++/*535303*/ OPC_MoveParent, ++/*535304*/ OPC_MoveChild1, ++/*535305*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*535308*/ OPC_RecordChild0, // #0 = $a ++/*535309*/ OPC_RecordChild1, // #1 = $b ++/*535310*/ OPC_MoveParent, ++/*535311*/ OPC_MoveParent, ++/*535312*/ OPC_MoveChild1, ++/*535313*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*535316*/ OPC_CheckChild0Integer, 31, ++/*535318*/ OPC_CheckChild0Type, MVT::i32, ++/*535320*/ OPC_CheckChild1Integer, 31, ++/*535322*/ OPC_CheckChild1Type, MVT::i32, ++/*535324*/ OPC_CheckChild2Integer, 31, ++/*535326*/ OPC_CheckChild2Type, MVT::i32, ++/*535328*/ OPC_CheckChild3Integer, 31, ++/*535330*/ OPC_CheckChild3Type, MVT::i32, ++/*535332*/ OPC_CheckType, MVT::v4i32, ++/*535334*/ OPC_MoveParent, ++/*535335*/ OPC_MoveParent, ++/*535336*/ OPC_MoveChild1, ++/*535337*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*535340*/ OPC_Scope, 6|128,3/*390*/, /*->535733*/ // 7 children in Scope ++/*535343*/ OPC_MoveChild0, ++/*535344*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*535347*/ OPC_Scope, 63, /*->535412*/ // 6 children in Scope ++/*535349*/ OPC_MoveChild0, ++/*535350*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*535353*/ OPC_CheckChild0Integer, 1, ++/*535355*/ OPC_CheckChild0Type, MVT::i32, ++/*535357*/ OPC_CheckChild1Integer, 1, ++/*535359*/ OPC_CheckChild1Type, MVT::i32, ++/*535361*/ OPC_CheckChild2Integer, 1, ++/*535363*/ OPC_CheckChild2Type, MVT::i32, ++/*535365*/ OPC_CheckChild3Integer, 1, ++/*535367*/ OPC_CheckChild3Type, MVT::i32, ++/*535369*/ OPC_MoveParent, ++/*535370*/ OPC_CheckChild1Same, 0, ++/*535372*/ OPC_MoveParent, ++/*535373*/ OPC_CheckChild1Same, 1, ++/*535375*/ OPC_MoveParent, ++/*535376*/ OPC_MoveParent, ++/*535377*/ OPC_MoveChild1, ++/*535378*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*535381*/ OPC_CheckChild0Integer, 1, ++/*535383*/ OPC_CheckChild0Type, MVT::i32, ++/*535385*/ OPC_CheckChild1Integer, 1, ++/*535387*/ OPC_CheckChild1Type, MVT::i32, ++/*535389*/ OPC_CheckChild2Integer, 1, ++/*535391*/ OPC_CheckChild2Type, MVT::i32, ++/*535393*/ OPC_CheckChild3Integer, 1, ++/*535395*/ OPC_CheckChild3Type, MVT::i32, ++/*535397*/ OPC_CheckType, MVT::v4i32, ++/*535399*/ OPC_MoveParent, ++/*535400*/ OPC_CheckType, MVT::v4i32, ++/*535402*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*535404*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a), LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*535412*/ /*Scope*/ 63, /*->535476*/ ++/*535413*/ OPC_CheckChild0Same, 0, ++/*535415*/ OPC_MoveChild1, ++/*535416*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*535419*/ OPC_CheckChild0Integer, 1, ++/*535421*/ OPC_CheckChild0Type, MVT::i32, ++/*535423*/ OPC_CheckChild1Integer, 1, ++/*535425*/ OPC_CheckChild1Type, MVT::i32, ++/*535427*/ OPC_CheckChild2Integer, 1, ++/*535429*/ OPC_CheckChild2Type, MVT::i32, ++/*535431*/ OPC_CheckChild3Integer, 1, ++/*535433*/ OPC_CheckChild3Type, MVT::i32, ++/*535435*/ OPC_MoveParent, ++/*535436*/ OPC_MoveParent, ++/*535437*/ OPC_CheckChild1Same, 1, ++/*535439*/ OPC_MoveParent, ++/*535440*/ OPC_MoveParent, ++/*535441*/ OPC_MoveChild1, ++/*535442*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*535445*/ OPC_CheckChild0Integer, 1, ++/*535447*/ OPC_CheckChild0Type, MVT::i32, ++/*535449*/ OPC_CheckChild1Integer, 1, ++/*535451*/ OPC_CheckChild1Type, MVT::i32, ++/*535453*/ OPC_CheckChild2Integer, 1, ++/*535455*/ OPC_CheckChild2Type, MVT::i32, ++/*535457*/ OPC_CheckChild3Integer, 1, ++/*535459*/ OPC_CheckChild3Type, MVT::i32, ++/*535461*/ OPC_CheckType, MVT::v4i32, ++/*535463*/ OPC_MoveParent, ++/*535464*/ OPC_CheckType, MVT::v4i32, ++/*535466*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*535468*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*535476*/ /*Scope*/ 63, /*->535540*/ ++/*535477*/ OPC_MoveChild0, ++/*535478*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*535481*/ OPC_CheckChild0Integer, 1, ++/*535483*/ OPC_CheckChild0Type, MVT::i32, ++/*535485*/ OPC_CheckChild1Integer, 1, ++/*535487*/ OPC_CheckChild1Type, MVT::i32, ++/*535489*/ OPC_CheckChild2Integer, 1, ++/*535491*/ OPC_CheckChild2Type, MVT::i32, ++/*535493*/ OPC_CheckChild3Integer, 1, ++/*535495*/ OPC_CheckChild3Type, MVT::i32, ++/*535497*/ OPC_MoveParent, ++/*535498*/ OPC_CheckChild1Same, 1, ++/*535500*/ OPC_MoveParent, ++/*535501*/ OPC_CheckChild1Same, 0, ++/*535503*/ OPC_MoveParent, ++/*535504*/ OPC_MoveParent, ++/*535505*/ OPC_MoveChild1, ++/*535506*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*535509*/ OPC_CheckChild0Integer, 1, ++/*535511*/ OPC_CheckChild0Type, MVT::i32, ++/*535513*/ OPC_CheckChild1Integer, 1, ++/*535515*/ OPC_CheckChild1Type, MVT::i32, ++/*535517*/ OPC_CheckChild2Integer, 1, ++/*535519*/ OPC_CheckChild2Type, MVT::i32, ++/*535521*/ OPC_CheckChild3Integer, 1, ++/*535523*/ OPC_CheckChild3Type, MVT::i32, ++/*535525*/ OPC_CheckType, MVT::v4i32, ++/*535527*/ OPC_MoveParent, ++/*535528*/ OPC_CheckType, MVT::v4i32, ++/*535530*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*535532*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b), LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*535540*/ /*Scope*/ 63, /*->535604*/ ++/*535541*/ OPC_CheckChild0Same, 1, ++/*535543*/ OPC_MoveChild1, ++/*535544*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*535547*/ OPC_CheckChild0Integer, 1, ++/*535549*/ OPC_CheckChild0Type, MVT::i32, ++/*535551*/ OPC_CheckChild1Integer, 1, ++/*535553*/ OPC_CheckChild1Type, MVT::i32, ++/*535555*/ OPC_CheckChild2Integer, 1, ++/*535557*/ OPC_CheckChild2Type, MVT::i32, ++/*535559*/ OPC_CheckChild3Integer, 1, ++/*535561*/ OPC_CheckChild3Type, MVT::i32, ++/*535563*/ OPC_MoveParent, ++/*535564*/ OPC_MoveParent, ++/*535565*/ OPC_CheckChild1Same, 0, ++/*535567*/ OPC_MoveParent, ++/*535568*/ OPC_MoveParent, ++/*535569*/ OPC_MoveChild1, ++/*535570*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*535573*/ OPC_CheckChild0Integer, 1, ++/*535575*/ OPC_CheckChild0Type, MVT::i32, ++/*535577*/ OPC_CheckChild1Integer, 1, ++/*535579*/ OPC_CheckChild1Type, MVT::i32, ++/*535581*/ OPC_CheckChild2Integer, 1, ++/*535583*/ OPC_CheckChild2Type, MVT::i32, ++/*535585*/ OPC_CheckChild3Integer, 1, ++/*535587*/ OPC_CheckChild3Type, MVT::i32, ++/*535589*/ OPC_CheckType, MVT::v4i32, ++/*535591*/ OPC_MoveParent, ++/*535592*/ OPC_CheckType, MVT::v4i32, ++/*535594*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*535596*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*535604*/ /*Scope*/ 63, /*->535668*/ ++/*535605*/ OPC_CheckChild0Same, 0, ++/*535607*/ OPC_CheckChild1Same, 1, ++/*535609*/ OPC_MoveParent, ++/*535610*/ OPC_MoveChild1, ++/*535611*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*535614*/ OPC_CheckChild0Integer, 1, ++/*535616*/ OPC_CheckChild0Type, MVT::i32, ++/*535618*/ OPC_CheckChild1Integer, 1, ++/*535620*/ OPC_CheckChild1Type, MVT::i32, ++/*535622*/ OPC_CheckChild2Integer, 1, ++/*535624*/ OPC_CheckChild2Type, MVT::i32, ++/*535626*/ OPC_CheckChild3Integer, 1, ++/*535628*/ OPC_CheckChild3Type, MVT::i32, ++/*535630*/ OPC_MoveParent, ++/*535631*/ OPC_MoveParent, ++/*535632*/ OPC_MoveParent, ++/*535633*/ OPC_MoveChild1, ++/*535634*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*535637*/ OPC_CheckChild0Integer, 1, ++/*535639*/ OPC_CheckChild0Type, MVT::i32, ++/*535641*/ OPC_CheckChild1Integer, 1, ++/*535643*/ OPC_CheckChild1Type, MVT::i32, ++/*535645*/ OPC_CheckChild2Integer, 1, ++/*535647*/ OPC_CheckChild2Type, MVT::i32, ++/*535649*/ OPC_CheckChild3Integer, 1, ++/*535651*/ OPC_CheckChild3Type, MVT::i32, ++/*535653*/ OPC_CheckType, MVT::v4i32, ++/*535655*/ OPC_MoveParent, ++/*535656*/ OPC_CheckType, MVT::v4i32, ++/*535658*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*535660*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*535668*/ /*Scope*/ 63, /*->535732*/ ++/*535669*/ OPC_CheckChild0Same, 1, ++/*535671*/ OPC_CheckChild1Same, 0, ++/*535673*/ OPC_MoveParent, ++/*535674*/ OPC_MoveChild1, ++/*535675*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*535678*/ OPC_CheckChild0Integer, 1, ++/*535680*/ OPC_CheckChild0Type, MVT::i32, ++/*535682*/ OPC_CheckChild1Integer, 1, ++/*535684*/ OPC_CheckChild1Type, MVT::i32, ++/*535686*/ OPC_CheckChild2Integer, 1, ++/*535688*/ OPC_CheckChild2Type, MVT::i32, ++/*535690*/ OPC_CheckChild3Integer, 1, ++/*535692*/ OPC_CheckChild3Type, MVT::i32, ++/*535694*/ OPC_MoveParent, ++/*535695*/ OPC_MoveParent, ++/*535696*/ OPC_MoveParent, ++/*535697*/ OPC_MoveChild1, ++/*535698*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*535701*/ OPC_CheckChild0Integer, 1, ++/*535703*/ OPC_CheckChild0Type, MVT::i32, ++/*535705*/ OPC_CheckChild1Integer, 1, ++/*535707*/ OPC_CheckChild1Type, MVT::i32, ++/*535709*/ OPC_CheckChild2Integer, 1, ++/*535711*/ OPC_CheckChild2Type, MVT::i32, ++/*535713*/ OPC_CheckChild3Integer, 1, ++/*535715*/ OPC_CheckChild3Type, MVT::i32, ++/*535717*/ OPC_CheckType, MVT::v4i32, ++/*535719*/ OPC_MoveParent, ++/*535720*/ OPC_CheckType, MVT::v4i32, ++/*535722*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*535724*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*535732*/ 0, /*End of Scope*/ ++/*535733*/ /*Scope*/ 4|128,1/*132*/, /*->535867*/ ++/*535735*/ OPC_CheckChild0Same, 1, ++/*535737*/ OPC_MoveChild1, ++/*535738*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*535741*/ OPC_Scope, 61, /*->535804*/ // 2 children in Scope ++/*535743*/ OPC_MoveChild0, ++/*535744*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*535747*/ OPC_CheckChild0Integer, 1, ++/*535749*/ OPC_CheckChild0Type, MVT::i32, ++/*535751*/ OPC_CheckChild1Integer, 1, ++/*535753*/ OPC_CheckChild1Type, MVT::i32, ++/*535755*/ OPC_CheckChild2Integer, 1, ++/*535757*/ OPC_CheckChild2Type, MVT::i32, ++/*535759*/ OPC_CheckChild3Integer, 1, ++/*535761*/ OPC_CheckChild3Type, MVT::i32, ++/*535763*/ OPC_MoveParent, ++/*535764*/ OPC_CheckChild1Same, 0, ++/*535766*/ OPC_MoveParent, ++/*535767*/ OPC_MoveParent, ++/*535768*/ OPC_MoveParent, ++/*535769*/ OPC_MoveChild1, ++/*535770*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*535773*/ OPC_CheckChild0Integer, 1, ++/*535775*/ OPC_CheckChild0Type, MVT::i32, ++/*535777*/ OPC_CheckChild1Integer, 1, ++/*535779*/ OPC_CheckChild1Type, MVT::i32, ++/*535781*/ OPC_CheckChild2Integer, 1, ++/*535783*/ OPC_CheckChild2Type, MVT::i32, ++/*535785*/ OPC_CheckChild3Integer, 1, ++/*535787*/ OPC_CheckChild3Type, MVT::i32, ++/*535789*/ OPC_CheckType, MVT::v4i32, ++/*535791*/ OPC_MoveParent, ++/*535792*/ OPC_CheckType, MVT::v4i32, ++/*535794*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*535796*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*535804*/ /*Scope*/ 61, /*->535866*/ ++/*535805*/ OPC_CheckChild0Same, 0, ++/*535807*/ OPC_MoveChild1, ++/*535808*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*535811*/ OPC_CheckChild0Integer, 1, ++/*535813*/ OPC_CheckChild0Type, MVT::i32, ++/*535815*/ OPC_CheckChild1Integer, 1, ++/*535817*/ OPC_CheckChild1Type, MVT::i32, ++/*535819*/ OPC_CheckChild2Integer, 1, ++/*535821*/ OPC_CheckChild2Type, MVT::i32, ++/*535823*/ OPC_CheckChild3Integer, 1, ++/*535825*/ OPC_CheckChild3Type, MVT::i32, ++/*535827*/ OPC_MoveParent, ++/*535828*/ OPC_MoveParent, ++/*535829*/ OPC_MoveParent, ++/*535830*/ OPC_MoveParent, ++/*535831*/ OPC_MoveChild1, ++/*535832*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*535835*/ OPC_CheckChild0Integer, 1, ++/*535837*/ OPC_CheckChild0Type, MVT::i32, ++/*535839*/ OPC_CheckChild1Integer, 1, ++/*535841*/ OPC_CheckChild1Type, MVT::i32, ++/*535843*/ OPC_CheckChild2Integer, 1, ++/*535845*/ OPC_CheckChild2Type, MVT::i32, ++/*535847*/ OPC_CheckChild3Integer, 1, ++/*535849*/ OPC_CheckChild3Type, MVT::i32, ++/*535851*/ OPC_CheckType, MVT::v4i32, ++/*535853*/ OPC_MoveParent, ++/*535854*/ OPC_CheckType, MVT::v4i32, ++/*535856*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*535858*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*535866*/ 0, /*End of Scope*/ ++/*535867*/ /*Scope*/ 4|128,1/*132*/, /*->536001*/ ++/*535869*/ OPC_CheckChild0Same, 0, ++/*535871*/ OPC_MoveChild1, ++/*535872*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*535875*/ OPC_Scope, 61, /*->535938*/ // 2 children in Scope ++/*535877*/ OPC_MoveChild0, ++/*535878*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*535881*/ OPC_CheckChild0Integer, 1, ++/*535883*/ OPC_CheckChild0Type, MVT::i32, ++/*535885*/ OPC_CheckChild1Integer, 1, ++/*535887*/ OPC_CheckChild1Type, MVT::i32, ++/*535889*/ OPC_CheckChild2Integer, 1, ++/*535891*/ OPC_CheckChild2Type, MVT::i32, ++/*535893*/ OPC_CheckChild3Integer, 1, ++/*535895*/ OPC_CheckChild3Type, MVT::i32, ++/*535897*/ OPC_MoveParent, ++/*535898*/ OPC_CheckChild1Same, 1, ++/*535900*/ OPC_MoveParent, ++/*535901*/ OPC_MoveParent, ++/*535902*/ OPC_MoveParent, ++/*535903*/ OPC_MoveChild1, ++/*535904*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*535907*/ OPC_CheckChild0Integer, 1, ++/*535909*/ OPC_CheckChild0Type, MVT::i32, ++/*535911*/ OPC_CheckChild1Integer, 1, ++/*535913*/ OPC_CheckChild1Type, MVT::i32, ++/*535915*/ OPC_CheckChild2Integer, 1, ++/*535917*/ OPC_CheckChild2Type, MVT::i32, ++/*535919*/ OPC_CheckChild3Integer, 1, ++/*535921*/ OPC_CheckChild3Type, MVT::i32, ++/*535923*/ OPC_CheckType, MVT::v4i32, ++/*535925*/ OPC_MoveParent, ++/*535926*/ OPC_CheckType, MVT::v4i32, ++/*535928*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*535930*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*535938*/ /*Scope*/ 61, /*->536000*/ ++/*535939*/ OPC_CheckChild0Same, 1, ++/*535941*/ OPC_MoveChild1, ++/*535942*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*535945*/ OPC_CheckChild0Integer, 1, ++/*535947*/ OPC_CheckChild0Type, MVT::i32, ++/*535949*/ OPC_CheckChild1Integer, 1, ++/*535951*/ OPC_CheckChild1Type, MVT::i32, ++/*535953*/ OPC_CheckChild2Integer, 1, ++/*535955*/ OPC_CheckChild2Type, MVT::i32, ++/*535957*/ OPC_CheckChild3Integer, 1, ++/*535959*/ OPC_CheckChild3Type, MVT::i32, ++/*535961*/ OPC_MoveParent, ++/*535962*/ OPC_MoveParent, ++/*535963*/ OPC_MoveParent, ++/*535964*/ OPC_MoveParent, ++/*535965*/ OPC_MoveChild1, ++/*535966*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*535969*/ OPC_CheckChild0Integer, 1, ++/*535971*/ OPC_CheckChild0Type, MVT::i32, ++/*535973*/ OPC_CheckChild1Integer, 1, ++/*535975*/ OPC_CheckChild1Type, MVT::i32, ++/*535977*/ OPC_CheckChild2Integer, 1, ++/*535979*/ OPC_CheckChild2Type, MVT::i32, ++/*535981*/ OPC_CheckChild3Integer, 1, ++/*535983*/ OPC_CheckChild3Type, MVT::i32, ++/*535985*/ OPC_CheckType, MVT::v4i32, ++/*535987*/ OPC_MoveParent, ++/*535988*/ OPC_CheckType, MVT::v4i32, ++/*535990*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*535992*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*536000*/ 0, /*End of Scope*/ ++/*536001*/ /*Scope*/ 121|128,3/*505*/, /*->536508*/ ++/*536003*/ OPC_MoveChild0, ++/*536004*/ OPC_SwitchOpcode /*2 cases */, 109, TARGET_VAL(ISD::BUILD_VECTOR),// ->536117 ++/*536008*/ OPC_CheckChild0Integer, 1, ++/*536010*/ OPC_CheckChild0Type, MVT::i32, ++/*536012*/ OPC_CheckChild1Integer, 1, ++/*536014*/ OPC_CheckChild1Type, MVT::i32, ++/*536016*/ OPC_CheckChild2Integer, 1, ++/*536018*/ OPC_CheckChild2Type, MVT::i32, ++/*536020*/ OPC_CheckChild3Integer, 1, ++/*536022*/ OPC_CheckChild3Type, MVT::i32, ++/*536024*/ OPC_MoveParent, ++/*536025*/ OPC_MoveChild1, ++/*536026*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*536029*/ OPC_Scope, 42, /*->536073*/ // 2 children in Scope ++/*536031*/ OPC_CheckChild0Same, 0, ++/*536033*/ OPC_CheckChild1Same, 1, ++/*536035*/ OPC_MoveParent, ++/*536036*/ OPC_MoveParent, ++/*536037*/ OPC_MoveParent, ++/*536038*/ OPC_MoveChild1, ++/*536039*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*536042*/ OPC_CheckChild0Integer, 1, ++/*536044*/ OPC_CheckChild0Type, MVT::i32, ++/*536046*/ OPC_CheckChild1Integer, 1, ++/*536048*/ OPC_CheckChild1Type, MVT::i32, ++/*536050*/ OPC_CheckChild2Integer, 1, ++/*536052*/ OPC_CheckChild2Type, MVT::i32, ++/*536054*/ OPC_CheckChild3Integer, 1, ++/*536056*/ OPC_CheckChild3Type, MVT::i32, ++/*536058*/ OPC_CheckType, MVT::v4i32, ++/*536060*/ OPC_MoveParent, ++/*536061*/ OPC_CheckType, MVT::v4i32, ++/*536063*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*536065*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*536073*/ /*Scope*/ 42, /*->536116*/ ++/*536074*/ OPC_CheckChild0Same, 1, ++/*536076*/ OPC_CheckChild1Same, 0, ++/*536078*/ OPC_MoveParent, ++/*536079*/ OPC_MoveParent, ++/*536080*/ OPC_MoveParent, ++/*536081*/ OPC_MoveChild1, ++/*536082*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*536085*/ OPC_CheckChild0Integer, 1, ++/*536087*/ OPC_CheckChild0Type, MVT::i32, ++/*536089*/ OPC_CheckChild1Integer, 1, ++/*536091*/ OPC_CheckChild1Type, MVT::i32, ++/*536093*/ OPC_CheckChild2Integer, 1, ++/*536095*/ OPC_CheckChild2Type, MVT::i32, ++/*536097*/ OPC_CheckChild3Integer, 1, ++/*536099*/ OPC_CheckChild3Type, MVT::i32, ++/*536101*/ OPC_CheckType, MVT::v4i32, ++/*536103*/ OPC_MoveParent, ++/*536104*/ OPC_CheckType, MVT::v4i32, ++/*536106*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*536108*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*536116*/ 0, /*End of Scope*/ ++/*536117*/ /*SwitchOpcode*/ 2|128,3/*386*/, TARGET_VAL(ISD::ADD),// ->536507 ++/*536121*/ OPC_Scope, 63, /*->536186*/ // 6 children in Scope ++/*536123*/ OPC_MoveChild0, ++/*536124*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*536127*/ OPC_CheckChild0Integer, 1, ++/*536129*/ OPC_CheckChild0Type, MVT::i32, ++/*536131*/ OPC_CheckChild1Integer, 1, ++/*536133*/ OPC_CheckChild1Type, MVT::i32, ++/*536135*/ OPC_CheckChild2Integer, 1, ++/*536137*/ OPC_CheckChild2Type, MVT::i32, ++/*536139*/ OPC_CheckChild3Integer, 1, ++/*536141*/ OPC_CheckChild3Type, MVT::i32, ++/*536143*/ OPC_MoveParent, ++/*536144*/ OPC_CheckChild1Same, 1, ++/*536146*/ OPC_MoveParent, ++/*536147*/ OPC_CheckChild1Same, 0, ++/*536149*/ OPC_MoveParent, ++/*536150*/ OPC_MoveParent, ++/*536151*/ OPC_MoveChild1, ++/*536152*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*536155*/ OPC_CheckChild0Integer, 1, ++/*536157*/ OPC_CheckChild0Type, MVT::i32, ++/*536159*/ OPC_CheckChild1Integer, 1, ++/*536161*/ OPC_CheckChild1Type, MVT::i32, ++/*536163*/ OPC_CheckChild2Integer, 1, ++/*536165*/ OPC_CheckChild2Type, MVT::i32, ++/*536167*/ OPC_CheckChild3Integer, 1, ++/*536169*/ OPC_CheckChild3Type, MVT::i32, ++/*536171*/ OPC_CheckType, MVT::v4i32, ++/*536173*/ OPC_MoveParent, ++/*536174*/ OPC_CheckType, MVT::v4i32, ++/*536176*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*536178*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a), LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*536186*/ /*Scope*/ 63, /*->536250*/ ++/*536187*/ OPC_CheckChild0Same, 1, ++/*536189*/ OPC_MoveChild1, ++/*536190*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*536193*/ OPC_CheckChild0Integer, 1, ++/*536195*/ OPC_CheckChild0Type, MVT::i32, ++/*536197*/ OPC_CheckChild1Integer, 1, ++/*536199*/ OPC_CheckChild1Type, MVT::i32, ++/*536201*/ OPC_CheckChild2Integer, 1, ++/*536203*/ OPC_CheckChild2Type, MVT::i32, ++/*536205*/ OPC_CheckChild3Integer, 1, ++/*536207*/ OPC_CheckChild3Type, MVT::i32, ++/*536209*/ OPC_MoveParent, ++/*536210*/ OPC_MoveParent, ++/*536211*/ OPC_CheckChild1Same, 0, ++/*536213*/ OPC_MoveParent, ++/*536214*/ OPC_MoveParent, ++/*536215*/ OPC_MoveChild1, ++/*536216*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*536219*/ OPC_CheckChild0Integer, 1, ++/*536221*/ OPC_CheckChild0Type, MVT::i32, ++/*536223*/ OPC_CheckChild1Integer, 1, ++/*536225*/ OPC_CheckChild1Type, MVT::i32, ++/*536227*/ OPC_CheckChild2Integer, 1, ++/*536229*/ OPC_CheckChild2Type, MVT::i32, ++/*536231*/ OPC_CheckChild3Integer, 1, ++/*536233*/ OPC_CheckChild3Type, MVT::i32, ++/*536235*/ OPC_CheckType, MVT::v4i32, ++/*536237*/ OPC_MoveParent, ++/*536238*/ OPC_CheckType, MVT::v4i32, ++/*536240*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*536242*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*536250*/ /*Scope*/ 63, /*->536314*/ ++/*536251*/ OPC_MoveChild0, ++/*536252*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*536255*/ OPC_CheckChild0Integer, 1, ++/*536257*/ OPC_CheckChild0Type, MVT::i32, ++/*536259*/ OPC_CheckChild1Integer, 1, ++/*536261*/ OPC_CheckChild1Type, MVT::i32, ++/*536263*/ OPC_CheckChild2Integer, 1, ++/*536265*/ OPC_CheckChild2Type, MVT::i32, ++/*536267*/ OPC_CheckChild3Integer, 1, ++/*536269*/ OPC_CheckChild3Type, MVT::i32, ++/*536271*/ OPC_MoveParent, ++/*536272*/ OPC_CheckChild1Same, 0, ++/*536274*/ OPC_MoveParent, ++/*536275*/ OPC_CheckChild1Same, 1, ++/*536277*/ OPC_MoveParent, ++/*536278*/ OPC_MoveParent, ++/*536279*/ OPC_MoveChild1, ++/*536280*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*536283*/ OPC_CheckChild0Integer, 1, ++/*536285*/ OPC_CheckChild0Type, MVT::i32, ++/*536287*/ OPC_CheckChild1Integer, 1, ++/*536289*/ OPC_CheckChild1Type, MVT::i32, ++/*536291*/ OPC_CheckChild2Integer, 1, ++/*536293*/ OPC_CheckChild2Type, MVT::i32, ++/*536295*/ OPC_CheckChild3Integer, 1, ++/*536297*/ OPC_CheckChild3Type, MVT::i32, ++/*536299*/ OPC_CheckType, MVT::v4i32, ++/*536301*/ OPC_MoveParent, ++/*536302*/ OPC_CheckType, MVT::v4i32, ++/*536304*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*536306*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b), LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*536314*/ /*Scope*/ 63, /*->536378*/ ++/*536315*/ OPC_CheckChild0Same, 0, ++/*536317*/ OPC_MoveChild1, ++/*536318*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*536321*/ OPC_CheckChild0Integer, 1, ++/*536323*/ OPC_CheckChild0Type, MVT::i32, ++/*536325*/ OPC_CheckChild1Integer, 1, ++/*536327*/ OPC_CheckChild1Type, MVT::i32, ++/*536329*/ OPC_CheckChild2Integer, 1, ++/*536331*/ OPC_CheckChild2Type, MVT::i32, ++/*536333*/ OPC_CheckChild3Integer, 1, ++/*536335*/ OPC_CheckChild3Type, MVT::i32, ++/*536337*/ OPC_MoveParent, ++/*536338*/ OPC_MoveParent, ++/*536339*/ OPC_CheckChild1Same, 1, ++/*536341*/ OPC_MoveParent, ++/*536342*/ OPC_MoveParent, ++/*536343*/ OPC_MoveChild1, ++/*536344*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*536347*/ OPC_CheckChild0Integer, 1, ++/*536349*/ OPC_CheckChild0Type, MVT::i32, ++/*536351*/ OPC_CheckChild1Integer, 1, ++/*536353*/ OPC_CheckChild1Type, MVT::i32, ++/*536355*/ OPC_CheckChild2Integer, 1, ++/*536357*/ OPC_CheckChild2Type, MVT::i32, ++/*536359*/ OPC_CheckChild3Integer, 1, ++/*536361*/ OPC_CheckChild3Type, MVT::i32, ++/*536363*/ OPC_CheckType, MVT::v4i32, ++/*536365*/ OPC_MoveParent, ++/*536366*/ OPC_CheckType, MVT::v4i32, ++/*536368*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*536370*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*536378*/ /*Scope*/ 63, /*->536442*/ ++/*536379*/ OPC_CheckChild0Same, 1, ++/*536381*/ OPC_CheckChild1Same, 0, ++/*536383*/ OPC_MoveParent, ++/*536384*/ OPC_MoveChild1, ++/*536385*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*536388*/ OPC_CheckChild0Integer, 1, ++/*536390*/ OPC_CheckChild0Type, MVT::i32, ++/*536392*/ OPC_CheckChild1Integer, 1, ++/*536394*/ OPC_CheckChild1Type, MVT::i32, ++/*536396*/ OPC_CheckChild2Integer, 1, ++/*536398*/ OPC_CheckChild2Type, MVT::i32, ++/*536400*/ OPC_CheckChild3Integer, 1, ++/*536402*/ OPC_CheckChild3Type, MVT::i32, ++/*536404*/ OPC_MoveParent, ++/*536405*/ OPC_MoveParent, ++/*536406*/ OPC_MoveParent, ++/*536407*/ OPC_MoveChild1, ++/*536408*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*536411*/ OPC_CheckChild0Integer, 1, ++/*536413*/ OPC_CheckChild0Type, MVT::i32, ++/*536415*/ OPC_CheckChild1Integer, 1, ++/*536417*/ OPC_CheckChild1Type, MVT::i32, ++/*536419*/ OPC_CheckChild2Integer, 1, ++/*536421*/ OPC_CheckChild2Type, MVT::i32, ++/*536423*/ OPC_CheckChild3Integer, 1, ++/*536425*/ OPC_CheckChild3Type, MVT::i32, ++/*536427*/ OPC_CheckType, MVT::v4i32, ++/*536429*/ OPC_MoveParent, ++/*536430*/ OPC_CheckType, MVT::v4i32, ++/*536432*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*536434*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*536442*/ /*Scope*/ 63, /*->536506*/ ++/*536443*/ OPC_CheckChild0Same, 0, ++/*536445*/ OPC_CheckChild1Same, 1, ++/*536447*/ OPC_MoveParent, ++/*536448*/ OPC_MoveChild1, ++/*536449*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*536452*/ OPC_CheckChild0Integer, 1, ++/*536454*/ OPC_CheckChild0Type, MVT::i32, ++/*536456*/ OPC_CheckChild1Integer, 1, ++/*536458*/ OPC_CheckChild1Type, MVT::i32, ++/*536460*/ OPC_CheckChild2Integer, 1, ++/*536462*/ OPC_CheckChild2Type, MVT::i32, ++/*536464*/ OPC_CheckChild3Integer, 1, ++/*536466*/ OPC_CheckChild3Type, MVT::i32, ++/*536468*/ OPC_MoveParent, ++/*536469*/ OPC_MoveParent, ++/*536470*/ OPC_MoveParent, ++/*536471*/ OPC_MoveChild1, ++/*536472*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*536475*/ OPC_CheckChild0Integer, 1, ++/*536477*/ OPC_CheckChild0Type, MVT::i32, ++/*536479*/ OPC_CheckChild1Integer, 1, ++/*536481*/ OPC_CheckChild1Type, MVT::i32, ++/*536483*/ OPC_CheckChild2Integer, 1, ++/*536485*/ OPC_CheckChild2Type, MVT::i32, ++/*536487*/ OPC_CheckChild3Integer, 1, ++/*536489*/ OPC_CheckChild3Type, MVT::i32, ++/*536491*/ OPC_CheckType, MVT::v4i32, ++/*536493*/ OPC_MoveParent, ++/*536494*/ OPC_CheckType, MVT::v4i32, ++/*536496*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*536498*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*536506*/ 0, /*End of Scope*/ ++/*536507*/ 0, // EndSwitchOpcode ++/*536508*/ /*Scope*/ 4|128,1/*132*/, /*->536642*/ ++/*536510*/ OPC_CheckChild0Same, 0, ++/*536512*/ OPC_MoveChild1, ++/*536513*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*536516*/ OPC_Scope, 61, /*->536579*/ // 2 children in Scope ++/*536518*/ OPC_MoveChild0, ++/*536519*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*536522*/ OPC_CheckChild0Integer, 1, ++/*536524*/ OPC_CheckChild0Type, MVT::i32, ++/*536526*/ OPC_CheckChild1Integer, 1, ++/*536528*/ OPC_CheckChild1Type, MVT::i32, ++/*536530*/ OPC_CheckChild2Integer, 1, ++/*536532*/ OPC_CheckChild2Type, MVT::i32, ++/*536534*/ OPC_CheckChild3Integer, 1, ++/*536536*/ OPC_CheckChild3Type, MVT::i32, ++/*536538*/ OPC_MoveParent, ++/*536539*/ OPC_CheckChild1Same, 1, ++/*536541*/ OPC_MoveParent, ++/*536542*/ OPC_MoveParent, ++/*536543*/ OPC_MoveParent, ++/*536544*/ OPC_MoveChild1, ++/*536545*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*536548*/ OPC_CheckChild0Integer, 1, ++/*536550*/ OPC_CheckChild0Type, MVT::i32, ++/*536552*/ OPC_CheckChild1Integer, 1, ++/*536554*/ OPC_CheckChild1Type, MVT::i32, ++/*536556*/ OPC_CheckChild2Integer, 1, ++/*536558*/ OPC_CheckChild2Type, MVT::i32, ++/*536560*/ OPC_CheckChild3Integer, 1, ++/*536562*/ OPC_CheckChild3Type, MVT::i32, ++/*536564*/ OPC_CheckType, MVT::v4i32, ++/*536566*/ OPC_MoveParent, ++/*536567*/ OPC_CheckType, MVT::v4i32, ++/*536569*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*536571*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$a))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*536579*/ /*Scope*/ 61, /*->536641*/ ++/*536580*/ OPC_CheckChild0Same, 1, ++/*536582*/ OPC_MoveChild1, ++/*536583*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*536586*/ OPC_CheckChild0Integer, 1, ++/*536588*/ OPC_CheckChild0Type, MVT::i32, ++/*536590*/ OPC_CheckChild1Integer, 1, ++/*536592*/ OPC_CheckChild1Type, MVT::i32, ++/*536594*/ OPC_CheckChild2Integer, 1, ++/*536596*/ OPC_CheckChild2Type, MVT::i32, ++/*536598*/ OPC_CheckChild3Integer, 1, ++/*536600*/ OPC_CheckChild3Type, MVT::i32, ++/*536602*/ OPC_MoveParent, ++/*536603*/ OPC_MoveParent, ++/*536604*/ OPC_MoveParent, ++/*536605*/ OPC_MoveParent, ++/*536606*/ OPC_MoveChild1, ++/*536607*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*536610*/ OPC_CheckChild0Integer, 1, ++/*536612*/ OPC_CheckChild0Type, MVT::i32, ++/*536614*/ OPC_CheckChild1Integer, 1, ++/*536616*/ OPC_CheckChild1Type, MVT::i32, ++/*536618*/ OPC_CheckChild2Integer, 1, ++/*536620*/ OPC_CheckChild2Type, MVT::i32, ++/*536622*/ OPC_CheckChild3Integer, 1, ++/*536624*/ OPC_CheckChild3Type, MVT::i32, ++/*536626*/ OPC_CheckType, MVT::v4i32, ++/*536628*/ OPC_MoveParent, ++/*536629*/ OPC_CheckType, MVT::v4i32, ++/*536631*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*536633*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*536641*/ 0, /*End of Scope*/ ++/*536642*/ /*Scope*/ 4|128,1/*132*/, /*->536776*/ ++/*536644*/ OPC_CheckChild0Same, 1, ++/*536646*/ OPC_MoveChild1, ++/*536647*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*536650*/ OPC_Scope, 61, /*->536713*/ // 2 children in Scope ++/*536652*/ OPC_MoveChild0, ++/*536653*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*536656*/ OPC_CheckChild0Integer, 1, ++/*536658*/ OPC_CheckChild0Type, MVT::i32, ++/*536660*/ OPC_CheckChild1Integer, 1, ++/*536662*/ OPC_CheckChild1Type, MVT::i32, ++/*536664*/ OPC_CheckChild2Integer, 1, ++/*536666*/ OPC_CheckChild2Type, MVT::i32, ++/*536668*/ OPC_CheckChild3Integer, 1, ++/*536670*/ OPC_CheckChild3Type, MVT::i32, ++/*536672*/ OPC_MoveParent, ++/*536673*/ OPC_CheckChild1Same, 0, ++/*536675*/ OPC_MoveParent, ++/*536676*/ OPC_MoveParent, ++/*536677*/ OPC_MoveParent, ++/*536678*/ OPC_MoveChild1, ++/*536679*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*536682*/ OPC_CheckChild0Integer, 1, ++/*536684*/ OPC_CheckChild0Type, MVT::i32, ++/*536686*/ OPC_CheckChild1Integer, 1, ++/*536688*/ OPC_CheckChild1Type, MVT::i32, ++/*536690*/ OPC_CheckChild2Integer, 1, ++/*536692*/ OPC_CheckChild2Type, MVT::i32, ++/*536694*/ OPC_CheckChild3Integer, 1, ++/*536696*/ OPC_CheckChild3Type, MVT::i32, ++/*536698*/ OPC_CheckType, MVT::v4i32, ++/*536700*/ OPC_MoveParent, ++/*536701*/ OPC_CheckType, MVT::v4i32, ++/*536703*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*536705*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), LSX128W:{ *:[v4i32] }:$b))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*536713*/ /*Scope*/ 61, /*->536775*/ ++/*536714*/ OPC_CheckChild0Same, 0, ++/*536716*/ OPC_MoveChild1, ++/*536717*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*536720*/ OPC_CheckChild0Integer, 1, ++/*536722*/ OPC_CheckChild0Type, MVT::i32, ++/*536724*/ OPC_CheckChild1Integer, 1, ++/*536726*/ OPC_CheckChild1Type, MVT::i32, ++/*536728*/ OPC_CheckChild2Integer, 1, ++/*536730*/ OPC_CheckChild2Type, MVT::i32, ++/*536732*/ OPC_CheckChild3Integer, 1, ++/*536734*/ OPC_CheckChild3Type, MVT::i32, ++/*536736*/ OPC_MoveParent, ++/*536737*/ OPC_MoveParent, ++/*536738*/ OPC_MoveParent, ++/*536739*/ OPC_MoveParent, ++/*536740*/ OPC_MoveChild1, ++/*536741*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*536744*/ OPC_CheckChild0Integer, 1, ++/*536746*/ OPC_CheckChild0Type, MVT::i32, ++/*536748*/ OPC_CheckChild1Integer, 1, ++/*536750*/ OPC_CheckChild1Type, MVT::i32, ++/*536752*/ OPC_CheckChild2Integer, 1, ++/*536754*/ OPC_CheckChild2Type, MVT::i32, ++/*536756*/ OPC_CheckChild3Integer, 1, ++/*536758*/ OPC_CheckChild3Type, MVT::i32, ++/*536760*/ OPC_CheckType, MVT::v4i32, ++/*536762*/ OPC_MoveParent, ++/*536763*/ OPC_CheckType, MVT::v4i32, ++/*536765*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*536767*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*536775*/ 0, /*End of Scope*/ ++/*536776*/ /*Scope*/ 113, /*->536890*/ ++/*536777*/ OPC_MoveChild0, ++/*536778*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*536781*/ OPC_CheckChild0Integer, 1, ++/*536783*/ OPC_CheckChild0Type, MVT::i32, ++/*536785*/ OPC_CheckChild1Integer, 1, ++/*536787*/ OPC_CheckChild1Type, MVT::i32, ++/*536789*/ OPC_CheckChild2Integer, 1, ++/*536791*/ OPC_CheckChild2Type, MVT::i32, ++/*536793*/ OPC_CheckChild3Integer, 1, ++/*536795*/ OPC_CheckChild3Type, MVT::i32, ++/*536797*/ OPC_MoveParent, ++/*536798*/ OPC_MoveChild1, ++/*536799*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*536802*/ OPC_Scope, 42, /*->536846*/ // 2 children in Scope ++/*536804*/ OPC_CheckChild0Same, 1, ++/*536806*/ OPC_CheckChild1Same, 0, ++/*536808*/ OPC_MoveParent, ++/*536809*/ OPC_MoveParent, ++/*536810*/ OPC_MoveParent, ++/*536811*/ OPC_MoveChild1, ++/*536812*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*536815*/ OPC_CheckChild0Integer, 1, ++/*536817*/ OPC_CheckChild0Type, MVT::i32, ++/*536819*/ OPC_CheckChild1Integer, 1, ++/*536821*/ OPC_CheckChild1Type, MVT::i32, ++/*536823*/ OPC_CheckChild2Integer, 1, ++/*536825*/ OPC_CheckChild2Type, MVT::i32, ++/*536827*/ OPC_CheckChild3Integer, 1, ++/*536829*/ OPC_CheckChild3Type, MVT::i32, ++/*536831*/ OPC_CheckType, MVT::v4i32, ++/*536833*/ OPC_MoveParent, ++/*536834*/ OPC_CheckType, MVT::v4i32, ++/*536836*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*536838*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*536846*/ /*Scope*/ 42, /*->536889*/ ++/*536847*/ OPC_CheckChild0Same, 0, ++/*536849*/ OPC_CheckChild1Same, 1, ++/*536851*/ OPC_MoveParent, ++/*536852*/ OPC_MoveParent, ++/*536853*/ OPC_MoveParent, ++/*536854*/ OPC_MoveChild1, ++/*536855*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*536858*/ OPC_CheckChild0Integer, 1, ++/*536860*/ OPC_CheckChild0Type, MVT::i32, ++/*536862*/ OPC_CheckChild1Integer, 1, ++/*536864*/ OPC_CheckChild1Type, MVT::i32, ++/*536866*/ OPC_CheckChild2Integer, 1, ++/*536868*/ OPC_CheckChild2Type, MVT::i32, ++/*536870*/ OPC_CheckChild3Integer, 1, ++/*536872*/ OPC_CheckChild3Type, MVT::i32, ++/*536874*/ OPC_CheckType, MVT::v4i32, ++/*536876*/ OPC_MoveParent, ++/*536877*/ OPC_CheckType, MVT::v4i32, ++/*536879*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*536881*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 113 ++ // Dst: (VAVGR_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*536889*/ 0, /*End of Scope*/ ++/*536890*/ 0, /*End of Scope*/ ++/*536891*/ /*SwitchOpcode*/ 71|128,38/*4935*/, TARGET_VAL(ISD::ADD),// ->541830 ++/*536895*/ OPC_Scope, 61|128,6/*829*/, /*->537727*/ // 4 children in Scope ++/*536898*/ OPC_MoveChild0, ++/*536899*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*536902*/ OPC_CheckChild0Integer, 1, ++/*536904*/ OPC_CheckChild0Type, MVT::i64, ++/*536906*/ OPC_CheckChild1Integer, 1, ++/*536908*/ OPC_CheckChild1Type, MVT::i64, ++/*536910*/ OPC_CheckChild2Integer, 1, ++/*536912*/ OPC_CheckChild2Type, MVT::i64, ++/*536914*/ OPC_CheckChild3Integer, 1, ++/*536916*/ OPC_CheckChild3Type, MVT::i64, ++/*536918*/ OPC_MoveParent, ++/*536919*/ OPC_RecordChild1, // #0 = $a ++/*536920*/ OPC_MoveParent, ++/*536921*/ OPC_RecordChild1, // #1 = $b ++/*536922*/ OPC_MoveParent, ++/*536923*/ OPC_MoveChild1, ++/*536924*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*536927*/ OPC_CheckChild0Integer, 63, ++/*536929*/ OPC_CheckChild0Type, MVT::i64, ++/*536931*/ OPC_CheckChild1Integer, 63, ++/*536933*/ OPC_CheckChild1Type, MVT::i64, ++/*536935*/ OPC_CheckChild2Integer, 63, ++/*536937*/ OPC_CheckChild2Type, MVT::i64, ++/*536939*/ OPC_CheckChild3Integer, 63, ++/*536941*/ OPC_CheckChild3Type, MVT::i64, ++/*536943*/ OPC_CheckType, MVT::v4i64, ++/*536945*/ OPC_MoveParent, ++/*536946*/ OPC_MoveParent, ++/*536947*/ OPC_MoveChild1, ++/*536948*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*536951*/ OPC_Scope, 6|128,3/*390*/, /*->537344*/ // 4 children in Scope ++/*536954*/ OPC_MoveChild0, ++/*536955*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*536958*/ OPC_Scope, 63, /*->537023*/ // 6 children in Scope ++/*536960*/ OPC_MoveChild0, ++/*536961*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*536964*/ OPC_CheckChild0Integer, 1, ++/*536966*/ OPC_CheckChild0Type, MVT::i64, ++/*536968*/ OPC_CheckChild1Integer, 1, ++/*536970*/ OPC_CheckChild1Type, MVT::i64, ++/*536972*/ OPC_CheckChild2Integer, 1, ++/*536974*/ OPC_CheckChild2Type, MVT::i64, ++/*536976*/ OPC_CheckChild3Integer, 1, ++/*536978*/ OPC_CheckChild3Type, MVT::i64, ++/*536980*/ OPC_MoveParent, ++/*536981*/ OPC_CheckChild1Same, 0, ++/*536983*/ OPC_MoveParent, ++/*536984*/ OPC_CheckChild1Same, 1, ++/*536986*/ OPC_MoveParent, ++/*536987*/ OPC_MoveParent, ++/*536988*/ OPC_MoveChild1, ++/*536989*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*536992*/ OPC_CheckChild0Integer, 1, ++/*536994*/ OPC_CheckChild0Type, MVT::i64, ++/*536996*/ OPC_CheckChild1Integer, 1, ++/*536998*/ OPC_CheckChild1Type, MVT::i64, ++/*537000*/ OPC_CheckChild2Integer, 1, ++/*537002*/ OPC_CheckChild2Type, MVT::i64, ++/*537004*/ OPC_CheckChild3Integer, 1, ++/*537006*/ OPC_CheckChild3Type, MVT::i64, ++/*537008*/ OPC_CheckType, MVT::v4i64, ++/*537010*/ OPC_MoveParent, ++/*537011*/ OPC_CheckType, MVT::v4i64, ++/*537013*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*537015*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a), LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a), LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*537023*/ /*Scope*/ 63, /*->537087*/ ++/*537024*/ OPC_CheckChild0Same, 0, ++/*537026*/ OPC_MoveChild1, ++/*537027*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*537030*/ OPC_CheckChild0Integer, 1, ++/*537032*/ OPC_CheckChild0Type, MVT::i64, ++/*537034*/ OPC_CheckChild1Integer, 1, ++/*537036*/ OPC_CheckChild1Type, MVT::i64, ++/*537038*/ OPC_CheckChild2Integer, 1, ++/*537040*/ OPC_CheckChild2Type, MVT::i64, ++/*537042*/ OPC_CheckChild3Integer, 1, ++/*537044*/ OPC_CheckChild3Type, MVT::i64, ++/*537046*/ OPC_MoveParent, ++/*537047*/ OPC_MoveParent, ++/*537048*/ OPC_CheckChild1Same, 1, ++/*537050*/ OPC_MoveParent, ++/*537051*/ OPC_MoveParent, ++/*537052*/ OPC_MoveChild1, ++/*537053*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*537056*/ OPC_CheckChild0Integer, 1, ++/*537058*/ OPC_CheckChild0Type, MVT::i64, ++/*537060*/ OPC_CheckChild1Integer, 1, ++/*537062*/ OPC_CheckChild1Type, MVT::i64, ++/*537064*/ OPC_CheckChild2Integer, 1, ++/*537066*/ OPC_CheckChild2Type, MVT::i64, ++/*537068*/ OPC_CheckChild3Integer, 1, ++/*537070*/ OPC_CheckChild3Type, MVT::i64, ++/*537072*/ OPC_CheckType, MVT::v4i64, ++/*537074*/ OPC_MoveParent, ++/*537075*/ OPC_CheckType, MVT::v4i64, ++/*537077*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*537079*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a), LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*537087*/ /*Scope*/ 63, /*->537151*/ ++/*537088*/ OPC_MoveChild0, ++/*537089*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*537092*/ OPC_CheckChild0Integer, 1, ++/*537094*/ OPC_CheckChild0Type, MVT::i64, ++/*537096*/ OPC_CheckChild1Integer, 1, ++/*537098*/ OPC_CheckChild1Type, MVT::i64, ++/*537100*/ OPC_CheckChild2Integer, 1, ++/*537102*/ OPC_CheckChild2Type, MVT::i64, ++/*537104*/ OPC_CheckChild3Integer, 1, ++/*537106*/ OPC_CheckChild3Type, MVT::i64, ++/*537108*/ OPC_MoveParent, ++/*537109*/ OPC_CheckChild1Same, 1, ++/*537111*/ OPC_MoveParent, ++/*537112*/ OPC_CheckChild1Same, 0, ++/*537114*/ OPC_MoveParent, ++/*537115*/ OPC_MoveParent, ++/*537116*/ OPC_MoveChild1, ++/*537117*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*537120*/ OPC_CheckChild0Integer, 1, ++/*537122*/ OPC_CheckChild0Type, MVT::i64, ++/*537124*/ OPC_CheckChild1Integer, 1, ++/*537126*/ OPC_CheckChild1Type, MVT::i64, ++/*537128*/ OPC_CheckChild2Integer, 1, ++/*537130*/ OPC_CheckChild2Type, MVT::i64, ++/*537132*/ OPC_CheckChild3Integer, 1, ++/*537134*/ OPC_CheckChild3Type, MVT::i64, ++/*537136*/ OPC_CheckType, MVT::v4i64, ++/*537138*/ OPC_MoveParent, ++/*537139*/ OPC_CheckType, MVT::v4i64, ++/*537141*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*537143*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a), LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b), LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*537151*/ /*Scope*/ 63, /*->537215*/ ++/*537152*/ OPC_CheckChild0Same, 1, ++/*537154*/ OPC_MoveChild1, ++/*537155*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*537158*/ OPC_CheckChild0Integer, 1, ++/*537160*/ OPC_CheckChild0Type, MVT::i64, ++/*537162*/ OPC_CheckChild1Integer, 1, ++/*537164*/ OPC_CheckChild1Type, MVT::i64, ++/*537166*/ OPC_CheckChild2Integer, 1, ++/*537168*/ OPC_CheckChild2Type, MVT::i64, ++/*537170*/ OPC_CheckChild3Integer, 1, ++/*537172*/ OPC_CheckChild3Type, MVT::i64, ++/*537174*/ OPC_MoveParent, ++/*537175*/ OPC_MoveParent, ++/*537176*/ OPC_CheckChild1Same, 0, ++/*537178*/ OPC_MoveParent, ++/*537179*/ OPC_MoveParent, ++/*537180*/ OPC_MoveChild1, ++/*537181*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*537184*/ OPC_CheckChild0Integer, 1, ++/*537186*/ OPC_CheckChild0Type, MVT::i64, ++/*537188*/ OPC_CheckChild1Integer, 1, ++/*537190*/ OPC_CheckChild1Type, MVT::i64, ++/*537192*/ OPC_CheckChild2Integer, 1, ++/*537194*/ OPC_CheckChild2Type, MVT::i64, ++/*537196*/ OPC_CheckChild3Integer, 1, ++/*537198*/ OPC_CheckChild3Type, MVT::i64, ++/*537200*/ OPC_CheckType, MVT::v4i64, ++/*537202*/ OPC_MoveParent, ++/*537203*/ OPC_CheckType, MVT::v4i64, ++/*537205*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*537207*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a), LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*537215*/ /*Scope*/ 63, /*->537279*/ ++/*537216*/ OPC_CheckChild0Same, 0, ++/*537218*/ OPC_CheckChild1Same, 1, ++/*537220*/ OPC_MoveParent, ++/*537221*/ OPC_MoveChild1, ++/*537222*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*537225*/ OPC_CheckChild0Integer, 1, ++/*537227*/ OPC_CheckChild0Type, MVT::i64, ++/*537229*/ OPC_CheckChild1Integer, 1, ++/*537231*/ OPC_CheckChild1Type, MVT::i64, ++/*537233*/ OPC_CheckChild2Integer, 1, ++/*537235*/ OPC_CheckChild2Type, MVT::i64, ++/*537237*/ OPC_CheckChild3Integer, 1, ++/*537239*/ OPC_CheckChild3Type, MVT::i64, ++/*537241*/ OPC_MoveParent, ++/*537242*/ OPC_MoveParent, ++/*537243*/ OPC_MoveParent, ++/*537244*/ OPC_MoveChild1, ++/*537245*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*537248*/ OPC_CheckChild0Integer, 1, ++/*537250*/ OPC_CheckChild0Type, MVT::i64, ++/*537252*/ OPC_CheckChild1Integer, 1, ++/*537254*/ OPC_CheckChild1Type, MVT::i64, ++/*537256*/ OPC_CheckChild2Integer, 1, ++/*537258*/ OPC_CheckChild2Type, MVT::i64, ++/*537260*/ OPC_CheckChild3Integer, 1, ++/*537262*/ OPC_CheckChild3Type, MVT::i64, ++/*537264*/ OPC_CheckType, MVT::v4i64, ++/*537266*/ OPC_MoveParent, ++/*537267*/ OPC_CheckType, MVT::v4i64, ++/*537269*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*537271*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a), LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*537279*/ /*Scope*/ 63, /*->537343*/ ++/*537280*/ OPC_CheckChild0Same, 1, ++/*537282*/ OPC_CheckChild1Same, 0, ++/*537284*/ OPC_MoveParent, ++/*537285*/ OPC_MoveChild1, ++/*537286*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*537289*/ OPC_CheckChild0Integer, 1, ++/*537291*/ OPC_CheckChild0Type, MVT::i64, ++/*537293*/ OPC_CheckChild1Integer, 1, ++/*537295*/ OPC_CheckChild1Type, MVT::i64, ++/*537297*/ OPC_CheckChild2Integer, 1, ++/*537299*/ OPC_CheckChild2Type, MVT::i64, ++/*537301*/ OPC_CheckChild3Integer, 1, ++/*537303*/ OPC_CheckChild3Type, MVT::i64, ++/*537305*/ OPC_MoveParent, ++/*537306*/ OPC_MoveParent, ++/*537307*/ OPC_MoveParent, ++/*537308*/ OPC_MoveChild1, ++/*537309*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*537312*/ OPC_CheckChild0Integer, 1, ++/*537314*/ OPC_CheckChild0Type, MVT::i64, ++/*537316*/ OPC_CheckChild1Integer, 1, ++/*537318*/ OPC_CheckChild1Type, MVT::i64, ++/*537320*/ OPC_CheckChild2Integer, 1, ++/*537322*/ OPC_CheckChild2Type, MVT::i64, ++/*537324*/ OPC_CheckChild3Integer, 1, ++/*537326*/ OPC_CheckChild3Type, MVT::i64, ++/*537328*/ OPC_CheckType, MVT::v4i64, ++/*537330*/ OPC_MoveParent, ++/*537331*/ OPC_CheckType, MVT::v4i64, ++/*537333*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*537335*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a), LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*537343*/ 0, /*End of Scope*/ ++/*537344*/ /*Scope*/ 4|128,1/*132*/, /*->537478*/ ++/*537346*/ OPC_CheckChild0Same, 1, ++/*537348*/ OPC_MoveChild1, ++/*537349*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*537352*/ OPC_Scope, 61, /*->537415*/ // 2 children in Scope ++/*537354*/ OPC_MoveChild0, ++/*537355*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*537358*/ OPC_CheckChild0Integer, 1, ++/*537360*/ OPC_CheckChild0Type, MVT::i64, ++/*537362*/ OPC_CheckChild1Integer, 1, ++/*537364*/ OPC_CheckChild1Type, MVT::i64, ++/*537366*/ OPC_CheckChild2Integer, 1, ++/*537368*/ OPC_CheckChild2Type, MVT::i64, ++/*537370*/ OPC_CheckChild3Integer, 1, ++/*537372*/ OPC_CheckChild3Type, MVT::i64, ++/*537374*/ OPC_MoveParent, ++/*537375*/ OPC_CheckChild1Same, 0, ++/*537377*/ OPC_MoveParent, ++/*537378*/ OPC_MoveParent, ++/*537379*/ OPC_MoveParent, ++/*537380*/ OPC_MoveChild1, ++/*537381*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*537384*/ OPC_CheckChild0Integer, 1, ++/*537386*/ OPC_CheckChild0Type, MVT::i64, ++/*537388*/ OPC_CheckChild1Integer, 1, ++/*537390*/ OPC_CheckChild1Type, MVT::i64, ++/*537392*/ OPC_CheckChild2Integer, 1, ++/*537394*/ OPC_CheckChild2Type, MVT::i64, ++/*537396*/ OPC_CheckChild3Integer, 1, ++/*537398*/ OPC_CheckChild3Type, MVT::i64, ++/*537400*/ OPC_CheckType, MVT::v4i64, ++/*537402*/ OPC_MoveParent, ++/*537403*/ OPC_CheckType, MVT::v4i64, ++/*537405*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*537407*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a), LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*537415*/ /*Scope*/ 61, /*->537477*/ ++/*537416*/ OPC_CheckChild0Same, 0, ++/*537418*/ OPC_MoveChild1, ++/*537419*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*537422*/ OPC_CheckChild0Integer, 1, ++/*537424*/ OPC_CheckChild0Type, MVT::i64, ++/*537426*/ OPC_CheckChild1Integer, 1, ++/*537428*/ OPC_CheckChild1Type, MVT::i64, ++/*537430*/ OPC_CheckChild2Integer, 1, ++/*537432*/ OPC_CheckChild2Type, MVT::i64, ++/*537434*/ OPC_CheckChild3Integer, 1, ++/*537436*/ OPC_CheckChild3Type, MVT::i64, ++/*537438*/ OPC_MoveParent, ++/*537439*/ OPC_MoveParent, ++/*537440*/ OPC_MoveParent, ++/*537441*/ OPC_MoveParent, ++/*537442*/ OPC_MoveChild1, ++/*537443*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*537446*/ OPC_CheckChild0Integer, 1, ++/*537448*/ OPC_CheckChild0Type, MVT::i64, ++/*537450*/ OPC_CheckChild1Integer, 1, ++/*537452*/ OPC_CheckChild1Type, MVT::i64, ++/*537454*/ OPC_CheckChild2Integer, 1, ++/*537456*/ OPC_CheckChild2Type, MVT::i64, ++/*537458*/ OPC_CheckChild3Integer, 1, ++/*537460*/ OPC_CheckChild3Type, MVT::i64, ++/*537462*/ OPC_CheckType, MVT::v4i64, ++/*537464*/ OPC_MoveParent, ++/*537465*/ OPC_CheckType, MVT::v4i64, ++/*537467*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*537469*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a), LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*537477*/ 0, /*End of Scope*/ ++/*537478*/ /*Scope*/ 4|128,1/*132*/, /*->537612*/ ++/*537480*/ OPC_CheckChild0Same, 0, ++/*537482*/ OPC_MoveChild1, ++/*537483*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*537486*/ OPC_Scope, 61, /*->537549*/ // 2 children in Scope ++/*537488*/ OPC_MoveChild0, ++/*537489*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*537492*/ OPC_CheckChild0Integer, 1, ++/*537494*/ OPC_CheckChild0Type, MVT::i64, ++/*537496*/ OPC_CheckChild1Integer, 1, ++/*537498*/ OPC_CheckChild1Type, MVT::i64, ++/*537500*/ OPC_CheckChild2Integer, 1, ++/*537502*/ OPC_CheckChild2Type, MVT::i64, ++/*537504*/ OPC_CheckChild3Integer, 1, ++/*537506*/ OPC_CheckChild3Type, MVT::i64, ++/*537508*/ OPC_MoveParent, ++/*537509*/ OPC_CheckChild1Same, 1, ++/*537511*/ OPC_MoveParent, ++/*537512*/ OPC_MoveParent, ++/*537513*/ OPC_MoveParent, ++/*537514*/ OPC_MoveChild1, ++/*537515*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*537518*/ OPC_CheckChild0Integer, 1, ++/*537520*/ OPC_CheckChild0Type, MVT::i64, ++/*537522*/ OPC_CheckChild1Integer, 1, ++/*537524*/ OPC_CheckChild1Type, MVT::i64, ++/*537526*/ OPC_CheckChild2Integer, 1, ++/*537528*/ OPC_CheckChild2Type, MVT::i64, ++/*537530*/ OPC_CheckChild3Integer, 1, ++/*537532*/ OPC_CheckChild3Type, MVT::i64, ++/*537534*/ OPC_CheckType, MVT::v4i64, ++/*537536*/ OPC_MoveParent, ++/*537537*/ OPC_CheckType, MVT::v4i64, ++/*537539*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*537541*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a), LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*537549*/ /*Scope*/ 61, /*->537611*/ ++/*537550*/ OPC_CheckChild0Same, 1, ++/*537552*/ OPC_MoveChild1, ++/*537553*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*537556*/ OPC_CheckChild0Integer, 1, ++/*537558*/ OPC_CheckChild0Type, MVT::i64, ++/*537560*/ OPC_CheckChild1Integer, 1, ++/*537562*/ OPC_CheckChild1Type, MVT::i64, ++/*537564*/ OPC_CheckChild2Integer, 1, ++/*537566*/ OPC_CheckChild2Type, MVT::i64, ++/*537568*/ OPC_CheckChild3Integer, 1, ++/*537570*/ OPC_CheckChild3Type, MVT::i64, ++/*537572*/ OPC_MoveParent, ++/*537573*/ OPC_MoveParent, ++/*537574*/ OPC_MoveParent, ++/*537575*/ OPC_MoveParent, ++/*537576*/ OPC_MoveChild1, ++/*537577*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*537580*/ OPC_CheckChild0Integer, 1, ++/*537582*/ OPC_CheckChild0Type, MVT::i64, ++/*537584*/ OPC_CheckChild1Integer, 1, ++/*537586*/ OPC_CheckChild1Type, MVT::i64, ++/*537588*/ OPC_CheckChild2Integer, 1, ++/*537590*/ OPC_CheckChild2Type, MVT::i64, ++/*537592*/ OPC_CheckChild3Integer, 1, ++/*537594*/ OPC_CheckChild3Type, MVT::i64, ++/*537596*/ OPC_CheckType, MVT::v4i64, ++/*537598*/ OPC_MoveParent, ++/*537599*/ OPC_CheckType, MVT::v4i64, ++/*537601*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*537603*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a), LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*537611*/ 0, /*End of Scope*/ ++/*537612*/ /*Scope*/ 113, /*->537726*/ ++/*537613*/ OPC_MoveChild0, ++/*537614*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*537617*/ OPC_CheckChild0Integer, 1, ++/*537619*/ OPC_CheckChild0Type, MVT::i64, ++/*537621*/ OPC_CheckChild1Integer, 1, ++/*537623*/ OPC_CheckChild1Type, MVT::i64, ++/*537625*/ OPC_CheckChild2Integer, 1, ++/*537627*/ OPC_CheckChild2Type, MVT::i64, ++/*537629*/ OPC_CheckChild3Integer, 1, ++/*537631*/ OPC_CheckChild3Type, MVT::i64, ++/*537633*/ OPC_MoveParent, ++/*537634*/ OPC_MoveChild1, ++/*537635*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*537638*/ OPC_Scope, 42, /*->537682*/ // 2 children in Scope ++/*537640*/ OPC_CheckChild0Same, 0, ++/*537642*/ OPC_CheckChild1Same, 1, ++/*537644*/ OPC_MoveParent, ++/*537645*/ OPC_MoveParent, ++/*537646*/ OPC_MoveParent, ++/*537647*/ OPC_MoveChild1, ++/*537648*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*537651*/ OPC_CheckChild0Integer, 1, ++/*537653*/ OPC_CheckChild0Type, MVT::i64, ++/*537655*/ OPC_CheckChild1Integer, 1, ++/*537657*/ OPC_CheckChild1Type, MVT::i64, ++/*537659*/ OPC_CheckChild2Integer, 1, ++/*537661*/ OPC_CheckChild2Type, MVT::i64, ++/*537663*/ OPC_CheckChild3Integer, 1, ++/*537665*/ OPC_CheckChild3Type, MVT::i64, ++/*537667*/ OPC_CheckType, MVT::v4i64, ++/*537669*/ OPC_MoveParent, ++/*537670*/ OPC_CheckType, MVT::v4i64, ++/*537672*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*537674*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a), LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*537682*/ /*Scope*/ 42, /*->537725*/ ++/*537683*/ OPC_CheckChild0Same, 1, ++/*537685*/ OPC_CheckChild1Same, 0, ++/*537687*/ OPC_MoveParent, ++/*537688*/ OPC_MoveParent, ++/*537689*/ OPC_MoveParent, ++/*537690*/ OPC_MoveChild1, ++/*537691*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*537694*/ OPC_CheckChild0Integer, 1, ++/*537696*/ OPC_CheckChild0Type, MVT::i64, ++/*537698*/ OPC_CheckChild1Integer, 1, ++/*537700*/ OPC_CheckChild1Type, MVT::i64, ++/*537702*/ OPC_CheckChild2Integer, 1, ++/*537704*/ OPC_CheckChild2Type, MVT::i64, ++/*537706*/ OPC_CheckChild3Integer, 1, ++/*537708*/ OPC_CheckChild3Type, MVT::i64, ++/*537710*/ OPC_CheckType, MVT::v4i64, ++/*537712*/ OPC_MoveParent, ++/*537713*/ OPC_CheckType, MVT::v4i64, ++/*537715*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*537717*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a), LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*537725*/ 0, /*End of Scope*/ ++/*537726*/ 0, /*End of Scope*/ ++/*537727*/ /*Scope*/ 61|128,6/*829*/, /*->538558*/ ++/*537729*/ OPC_RecordChild0, // #0 = $a ++/*537730*/ OPC_MoveChild1, ++/*537731*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*537734*/ OPC_CheckChild0Integer, 1, ++/*537736*/ OPC_CheckChild0Type, MVT::i64, ++/*537738*/ OPC_CheckChild1Integer, 1, ++/*537740*/ OPC_CheckChild1Type, MVT::i64, ++/*537742*/ OPC_CheckChild2Integer, 1, ++/*537744*/ OPC_CheckChild2Type, MVT::i64, ++/*537746*/ OPC_CheckChild3Integer, 1, ++/*537748*/ OPC_CheckChild3Type, MVT::i64, ++/*537750*/ OPC_MoveParent, ++/*537751*/ OPC_MoveParent, ++/*537752*/ OPC_RecordChild1, // #1 = $b ++/*537753*/ OPC_MoveParent, ++/*537754*/ OPC_MoveChild1, ++/*537755*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*537758*/ OPC_CheckChild0Integer, 63, ++/*537760*/ OPC_CheckChild0Type, MVT::i64, ++/*537762*/ OPC_CheckChild1Integer, 63, ++/*537764*/ OPC_CheckChild1Type, MVT::i64, ++/*537766*/ OPC_CheckChild2Integer, 63, ++/*537768*/ OPC_CheckChild2Type, MVT::i64, ++/*537770*/ OPC_CheckChild3Integer, 63, ++/*537772*/ OPC_CheckChild3Type, MVT::i64, ++/*537774*/ OPC_CheckType, MVT::v4i64, ++/*537776*/ OPC_MoveParent, ++/*537777*/ OPC_MoveParent, ++/*537778*/ OPC_MoveChild1, ++/*537779*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*537782*/ OPC_Scope, 6|128,3/*390*/, /*->538175*/ // 4 children in Scope ++/*537785*/ OPC_MoveChild0, ++/*537786*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*537789*/ OPC_Scope, 63, /*->537854*/ // 6 children in Scope ++/*537791*/ OPC_MoveChild0, ++/*537792*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*537795*/ OPC_CheckChild0Integer, 1, ++/*537797*/ OPC_CheckChild0Type, MVT::i64, ++/*537799*/ OPC_CheckChild1Integer, 1, ++/*537801*/ OPC_CheckChild1Type, MVT::i64, ++/*537803*/ OPC_CheckChild2Integer, 1, ++/*537805*/ OPC_CheckChild2Type, MVT::i64, ++/*537807*/ OPC_CheckChild3Integer, 1, ++/*537809*/ OPC_CheckChild3Type, MVT::i64, ++/*537811*/ OPC_MoveParent, ++/*537812*/ OPC_CheckChild1Same, 0, ++/*537814*/ OPC_MoveParent, ++/*537815*/ OPC_CheckChild1Same, 1, ++/*537817*/ OPC_MoveParent, ++/*537818*/ OPC_MoveParent, ++/*537819*/ OPC_MoveChild1, ++/*537820*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*537823*/ OPC_CheckChild0Integer, 1, ++/*537825*/ OPC_CheckChild0Type, MVT::i64, ++/*537827*/ OPC_CheckChild1Integer, 1, ++/*537829*/ OPC_CheckChild1Type, MVT::i64, ++/*537831*/ OPC_CheckChild2Integer, 1, ++/*537833*/ OPC_CheckChild2Type, MVT::i64, ++/*537835*/ OPC_CheckChild3Integer, 1, ++/*537837*/ OPC_CheckChild3Type, MVT::i64, ++/*537839*/ OPC_CheckType, MVT::v4i64, ++/*537841*/ OPC_MoveParent, ++/*537842*/ OPC_CheckType, MVT::v4i64, ++/*537844*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*537846*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a), LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*537854*/ /*Scope*/ 63, /*->537918*/ ++/*537855*/ OPC_CheckChild0Same, 0, ++/*537857*/ OPC_MoveChild1, ++/*537858*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*537861*/ OPC_CheckChild0Integer, 1, ++/*537863*/ OPC_CheckChild0Type, MVT::i64, ++/*537865*/ OPC_CheckChild1Integer, 1, ++/*537867*/ OPC_CheckChild1Type, MVT::i64, ++/*537869*/ OPC_CheckChild2Integer, 1, ++/*537871*/ OPC_CheckChild2Type, MVT::i64, ++/*537873*/ OPC_CheckChild3Integer, 1, ++/*537875*/ OPC_CheckChild3Type, MVT::i64, ++/*537877*/ OPC_MoveParent, ++/*537878*/ OPC_MoveParent, ++/*537879*/ OPC_CheckChild1Same, 1, ++/*537881*/ OPC_MoveParent, ++/*537882*/ OPC_MoveParent, ++/*537883*/ OPC_MoveChild1, ++/*537884*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*537887*/ OPC_CheckChild0Integer, 1, ++/*537889*/ OPC_CheckChild0Type, MVT::i64, ++/*537891*/ OPC_CheckChild1Integer, 1, ++/*537893*/ OPC_CheckChild1Type, MVT::i64, ++/*537895*/ OPC_CheckChild2Integer, 1, ++/*537897*/ OPC_CheckChild2Type, MVT::i64, ++/*537899*/ OPC_CheckChild3Integer, 1, ++/*537901*/ OPC_CheckChild3Type, MVT::i64, ++/*537903*/ OPC_CheckType, MVT::v4i64, ++/*537905*/ OPC_MoveParent, ++/*537906*/ OPC_CheckType, MVT::v4i64, ++/*537908*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*537910*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*537918*/ /*Scope*/ 63, /*->537982*/ ++/*537919*/ OPC_MoveChild0, ++/*537920*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*537923*/ OPC_CheckChild0Integer, 1, ++/*537925*/ OPC_CheckChild0Type, MVT::i64, ++/*537927*/ OPC_CheckChild1Integer, 1, ++/*537929*/ OPC_CheckChild1Type, MVT::i64, ++/*537931*/ OPC_CheckChild2Integer, 1, ++/*537933*/ OPC_CheckChild2Type, MVT::i64, ++/*537935*/ OPC_CheckChild3Integer, 1, ++/*537937*/ OPC_CheckChild3Type, MVT::i64, ++/*537939*/ OPC_MoveParent, ++/*537940*/ OPC_CheckChild1Same, 1, ++/*537942*/ OPC_MoveParent, ++/*537943*/ OPC_CheckChild1Same, 0, ++/*537945*/ OPC_MoveParent, ++/*537946*/ OPC_MoveParent, ++/*537947*/ OPC_MoveChild1, ++/*537948*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*537951*/ OPC_CheckChild0Integer, 1, ++/*537953*/ OPC_CheckChild0Type, MVT::i64, ++/*537955*/ OPC_CheckChild1Integer, 1, ++/*537957*/ OPC_CheckChild1Type, MVT::i64, ++/*537959*/ OPC_CheckChild2Integer, 1, ++/*537961*/ OPC_CheckChild2Type, MVT::i64, ++/*537963*/ OPC_CheckChild3Integer, 1, ++/*537965*/ OPC_CheckChild3Type, MVT::i64, ++/*537967*/ OPC_CheckType, MVT::v4i64, ++/*537969*/ OPC_MoveParent, ++/*537970*/ OPC_CheckType, MVT::v4i64, ++/*537972*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*537974*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b), LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*537982*/ /*Scope*/ 63, /*->538046*/ ++/*537983*/ OPC_CheckChild0Same, 1, ++/*537985*/ OPC_MoveChild1, ++/*537986*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*537989*/ OPC_CheckChild0Integer, 1, ++/*537991*/ OPC_CheckChild0Type, MVT::i64, ++/*537993*/ OPC_CheckChild1Integer, 1, ++/*537995*/ OPC_CheckChild1Type, MVT::i64, ++/*537997*/ OPC_CheckChild2Integer, 1, ++/*537999*/ OPC_CheckChild2Type, MVT::i64, ++/*538001*/ OPC_CheckChild3Integer, 1, ++/*538003*/ OPC_CheckChild3Type, MVT::i64, ++/*538005*/ OPC_MoveParent, ++/*538006*/ OPC_MoveParent, ++/*538007*/ OPC_CheckChild1Same, 0, ++/*538009*/ OPC_MoveParent, ++/*538010*/ OPC_MoveParent, ++/*538011*/ OPC_MoveChild1, ++/*538012*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*538015*/ OPC_CheckChild0Integer, 1, ++/*538017*/ OPC_CheckChild0Type, MVT::i64, ++/*538019*/ OPC_CheckChild1Integer, 1, ++/*538021*/ OPC_CheckChild1Type, MVT::i64, ++/*538023*/ OPC_CheckChild2Integer, 1, ++/*538025*/ OPC_CheckChild2Type, MVT::i64, ++/*538027*/ OPC_CheckChild3Integer, 1, ++/*538029*/ OPC_CheckChild3Type, MVT::i64, ++/*538031*/ OPC_CheckType, MVT::v4i64, ++/*538033*/ OPC_MoveParent, ++/*538034*/ OPC_CheckType, MVT::v4i64, ++/*538036*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*538038*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*538046*/ /*Scope*/ 63, /*->538110*/ ++/*538047*/ OPC_CheckChild0Same, 0, ++/*538049*/ OPC_CheckChild1Same, 1, ++/*538051*/ OPC_MoveParent, ++/*538052*/ OPC_MoveChild1, ++/*538053*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*538056*/ OPC_CheckChild0Integer, 1, ++/*538058*/ OPC_CheckChild0Type, MVT::i64, ++/*538060*/ OPC_CheckChild1Integer, 1, ++/*538062*/ OPC_CheckChild1Type, MVT::i64, ++/*538064*/ OPC_CheckChild2Integer, 1, ++/*538066*/ OPC_CheckChild2Type, MVT::i64, ++/*538068*/ OPC_CheckChild3Integer, 1, ++/*538070*/ OPC_CheckChild3Type, MVT::i64, ++/*538072*/ OPC_MoveParent, ++/*538073*/ OPC_MoveParent, ++/*538074*/ OPC_MoveParent, ++/*538075*/ OPC_MoveChild1, ++/*538076*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*538079*/ OPC_CheckChild0Integer, 1, ++/*538081*/ OPC_CheckChild0Type, MVT::i64, ++/*538083*/ OPC_CheckChild1Integer, 1, ++/*538085*/ OPC_CheckChild1Type, MVT::i64, ++/*538087*/ OPC_CheckChild2Integer, 1, ++/*538089*/ OPC_CheckChild2Type, MVT::i64, ++/*538091*/ OPC_CheckChild3Integer, 1, ++/*538093*/ OPC_CheckChild3Type, MVT::i64, ++/*538095*/ OPC_CheckType, MVT::v4i64, ++/*538097*/ OPC_MoveParent, ++/*538098*/ OPC_CheckType, MVT::v4i64, ++/*538100*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*538102*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*538110*/ /*Scope*/ 63, /*->538174*/ ++/*538111*/ OPC_CheckChild0Same, 1, ++/*538113*/ OPC_CheckChild1Same, 0, ++/*538115*/ OPC_MoveParent, ++/*538116*/ OPC_MoveChild1, ++/*538117*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*538120*/ OPC_CheckChild0Integer, 1, ++/*538122*/ OPC_CheckChild0Type, MVT::i64, ++/*538124*/ OPC_CheckChild1Integer, 1, ++/*538126*/ OPC_CheckChild1Type, MVT::i64, ++/*538128*/ OPC_CheckChild2Integer, 1, ++/*538130*/ OPC_CheckChild2Type, MVT::i64, ++/*538132*/ OPC_CheckChild3Integer, 1, ++/*538134*/ OPC_CheckChild3Type, MVT::i64, ++/*538136*/ OPC_MoveParent, ++/*538137*/ OPC_MoveParent, ++/*538138*/ OPC_MoveParent, ++/*538139*/ OPC_MoveChild1, ++/*538140*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*538143*/ OPC_CheckChild0Integer, 1, ++/*538145*/ OPC_CheckChild0Type, MVT::i64, ++/*538147*/ OPC_CheckChild1Integer, 1, ++/*538149*/ OPC_CheckChild1Type, MVT::i64, ++/*538151*/ OPC_CheckChild2Integer, 1, ++/*538153*/ OPC_CheckChild2Type, MVT::i64, ++/*538155*/ OPC_CheckChild3Integer, 1, ++/*538157*/ OPC_CheckChild3Type, MVT::i64, ++/*538159*/ OPC_CheckType, MVT::v4i64, ++/*538161*/ OPC_MoveParent, ++/*538162*/ OPC_CheckType, MVT::v4i64, ++/*538164*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*538166*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*538174*/ 0, /*End of Scope*/ ++/*538175*/ /*Scope*/ 4|128,1/*132*/, /*->538309*/ ++/*538177*/ OPC_CheckChild0Same, 1, ++/*538179*/ OPC_MoveChild1, ++/*538180*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*538183*/ OPC_Scope, 61, /*->538246*/ // 2 children in Scope ++/*538185*/ OPC_MoveChild0, ++/*538186*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*538189*/ OPC_CheckChild0Integer, 1, ++/*538191*/ OPC_CheckChild0Type, MVT::i64, ++/*538193*/ OPC_CheckChild1Integer, 1, ++/*538195*/ OPC_CheckChild1Type, MVT::i64, ++/*538197*/ OPC_CheckChild2Integer, 1, ++/*538199*/ OPC_CheckChild2Type, MVT::i64, ++/*538201*/ OPC_CheckChild3Integer, 1, ++/*538203*/ OPC_CheckChild3Type, MVT::i64, ++/*538205*/ OPC_MoveParent, ++/*538206*/ OPC_CheckChild1Same, 0, ++/*538208*/ OPC_MoveParent, ++/*538209*/ OPC_MoveParent, ++/*538210*/ OPC_MoveParent, ++/*538211*/ OPC_MoveChild1, ++/*538212*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*538215*/ OPC_CheckChild0Integer, 1, ++/*538217*/ OPC_CheckChild0Type, MVT::i64, ++/*538219*/ OPC_CheckChild1Integer, 1, ++/*538221*/ OPC_CheckChild1Type, MVT::i64, ++/*538223*/ OPC_CheckChild2Integer, 1, ++/*538225*/ OPC_CheckChild2Type, MVT::i64, ++/*538227*/ OPC_CheckChild3Integer, 1, ++/*538229*/ OPC_CheckChild3Type, MVT::i64, ++/*538231*/ OPC_CheckType, MVT::v4i64, ++/*538233*/ OPC_MoveParent, ++/*538234*/ OPC_CheckType, MVT::v4i64, ++/*538236*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*538238*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*538246*/ /*Scope*/ 61, /*->538308*/ ++/*538247*/ OPC_CheckChild0Same, 0, ++/*538249*/ OPC_MoveChild1, ++/*538250*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*538253*/ OPC_CheckChild0Integer, 1, ++/*538255*/ OPC_CheckChild0Type, MVT::i64, ++/*538257*/ OPC_CheckChild1Integer, 1, ++/*538259*/ OPC_CheckChild1Type, MVT::i64, ++/*538261*/ OPC_CheckChild2Integer, 1, ++/*538263*/ OPC_CheckChild2Type, MVT::i64, ++/*538265*/ OPC_CheckChild3Integer, 1, ++/*538267*/ OPC_CheckChild3Type, MVT::i64, ++/*538269*/ OPC_MoveParent, ++/*538270*/ OPC_MoveParent, ++/*538271*/ OPC_MoveParent, ++/*538272*/ OPC_MoveParent, ++/*538273*/ OPC_MoveChild1, ++/*538274*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*538277*/ OPC_CheckChild0Integer, 1, ++/*538279*/ OPC_CheckChild0Type, MVT::i64, ++/*538281*/ OPC_CheckChild1Integer, 1, ++/*538283*/ OPC_CheckChild1Type, MVT::i64, ++/*538285*/ OPC_CheckChild2Integer, 1, ++/*538287*/ OPC_CheckChild2Type, MVT::i64, ++/*538289*/ OPC_CheckChild3Integer, 1, ++/*538291*/ OPC_CheckChild3Type, MVT::i64, ++/*538293*/ OPC_CheckType, MVT::v4i64, ++/*538295*/ OPC_MoveParent, ++/*538296*/ OPC_CheckType, MVT::v4i64, ++/*538298*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*538300*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*538308*/ 0, /*End of Scope*/ ++/*538309*/ /*Scope*/ 4|128,1/*132*/, /*->538443*/ ++/*538311*/ OPC_CheckChild0Same, 0, ++/*538313*/ OPC_MoveChild1, ++/*538314*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*538317*/ OPC_Scope, 61, /*->538380*/ // 2 children in Scope ++/*538319*/ OPC_MoveChild0, ++/*538320*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*538323*/ OPC_CheckChild0Integer, 1, ++/*538325*/ OPC_CheckChild0Type, MVT::i64, ++/*538327*/ OPC_CheckChild1Integer, 1, ++/*538329*/ OPC_CheckChild1Type, MVT::i64, ++/*538331*/ OPC_CheckChild2Integer, 1, ++/*538333*/ OPC_CheckChild2Type, MVT::i64, ++/*538335*/ OPC_CheckChild3Integer, 1, ++/*538337*/ OPC_CheckChild3Type, MVT::i64, ++/*538339*/ OPC_MoveParent, ++/*538340*/ OPC_CheckChild1Same, 1, ++/*538342*/ OPC_MoveParent, ++/*538343*/ OPC_MoveParent, ++/*538344*/ OPC_MoveParent, ++/*538345*/ OPC_MoveChild1, ++/*538346*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*538349*/ OPC_CheckChild0Integer, 1, ++/*538351*/ OPC_CheckChild0Type, MVT::i64, ++/*538353*/ OPC_CheckChild1Integer, 1, ++/*538355*/ OPC_CheckChild1Type, MVT::i64, ++/*538357*/ OPC_CheckChild2Integer, 1, ++/*538359*/ OPC_CheckChild2Type, MVT::i64, ++/*538361*/ OPC_CheckChild3Integer, 1, ++/*538363*/ OPC_CheckChild3Type, MVT::i64, ++/*538365*/ OPC_CheckType, MVT::v4i64, ++/*538367*/ OPC_MoveParent, ++/*538368*/ OPC_CheckType, MVT::v4i64, ++/*538370*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*538372*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*538380*/ /*Scope*/ 61, /*->538442*/ ++/*538381*/ OPC_CheckChild0Same, 1, ++/*538383*/ OPC_MoveChild1, ++/*538384*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*538387*/ OPC_CheckChild0Integer, 1, ++/*538389*/ OPC_CheckChild0Type, MVT::i64, ++/*538391*/ OPC_CheckChild1Integer, 1, ++/*538393*/ OPC_CheckChild1Type, MVT::i64, ++/*538395*/ OPC_CheckChild2Integer, 1, ++/*538397*/ OPC_CheckChild2Type, MVT::i64, ++/*538399*/ OPC_CheckChild3Integer, 1, ++/*538401*/ OPC_CheckChild3Type, MVT::i64, ++/*538403*/ OPC_MoveParent, ++/*538404*/ OPC_MoveParent, ++/*538405*/ OPC_MoveParent, ++/*538406*/ OPC_MoveParent, ++/*538407*/ OPC_MoveChild1, ++/*538408*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*538411*/ OPC_CheckChild0Integer, 1, ++/*538413*/ OPC_CheckChild0Type, MVT::i64, ++/*538415*/ OPC_CheckChild1Integer, 1, ++/*538417*/ OPC_CheckChild1Type, MVT::i64, ++/*538419*/ OPC_CheckChild2Integer, 1, ++/*538421*/ OPC_CheckChild2Type, MVT::i64, ++/*538423*/ OPC_CheckChild3Integer, 1, ++/*538425*/ OPC_CheckChild3Type, MVT::i64, ++/*538427*/ OPC_CheckType, MVT::v4i64, ++/*538429*/ OPC_MoveParent, ++/*538430*/ OPC_CheckType, MVT::v4i64, ++/*538432*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*538434*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*538442*/ 0, /*End of Scope*/ ++/*538443*/ /*Scope*/ 113, /*->538557*/ ++/*538444*/ OPC_MoveChild0, ++/*538445*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*538448*/ OPC_CheckChild0Integer, 1, ++/*538450*/ OPC_CheckChild0Type, MVT::i64, ++/*538452*/ OPC_CheckChild1Integer, 1, ++/*538454*/ OPC_CheckChild1Type, MVT::i64, ++/*538456*/ OPC_CheckChild2Integer, 1, ++/*538458*/ OPC_CheckChild2Type, MVT::i64, ++/*538460*/ OPC_CheckChild3Integer, 1, ++/*538462*/ OPC_CheckChild3Type, MVT::i64, ++/*538464*/ OPC_MoveParent, ++/*538465*/ OPC_MoveChild1, ++/*538466*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*538469*/ OPC_Scope, 42, /*->538513*/ // 2 children in Scope ++/*538471*/ OPC_CheckChild0Same, 0, ++/*538473*/ OPC_CheckChild1Same, 1, ++/*538475*/ OPC_MoveParent, ++/*538476*/ OPC_MoveParent, ++/*538477*/ OPC_MoveParent, ++/*538478*/ OPC_MoveChild1, ++/*538479*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*538482*/ OPC_CheckChild0Integer, 1, ++/*538484*/ OPC_CheckChild0Type, MVT::i64, ++/*538486*/ OPC_CheckChild1Integer, 1, ++/*538488*/ OPC_CheckChild1Type, MVT::i64, ++/*538490*/ OPC_CheckChild2Integer, 1, ++/*538492*/ OPC_CheckChild2Type, MVT::i64, ++/*538494*/ OPC_CheckChild3Integer, 1, ++/*538496*/ OPC_CheckChild3Type, MVT::i64, ++/*538498*/ OPC_CheckType, MVT::v4i64, ++/*538500*/ OPC_MoveParent, ++/*538501*/ OPC_CheckType, MVT::v4i64, ++/*538503*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*538505*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*538513*/ /*Scope*/ 42, /*->538556*/ ++/*538514*/ OPC_CheckChild0Same, 1, ++/*538516*/ OPC_CheckChild1Same, 0, ++/*538518*/ OPC_MoveParent, ++/*538519*/ OPC_MoveParent, ++/*538520*/ OPC_MoveParent, ++/*538521*/ OPC_MoveChild1, ++/*538522*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*538525*/ OPC_CheckChild0Integer, 1, ++/*538527*/ OPC_CheckChild0Type, MVT::i64, ++/*538529*/ OPC_CheckChild1Integer, 1, ++/*538531*/ OPC_CheckChild1Type, MVT::i64, ++/*538533*/ OPC_CheckChild2Integer, 1, ++/*538535*/ OPC_CheckChild2Type, MVT::i64, ++/*538537*/ OPC_CheckChild3Integer, 1, ++/*538539*/ OPC_CheckChild3Type, MVT::i64, ++/*538541*/ OPC_CheckType, MVT::v4i64, ++/*538543*/ OPC_MoveParent, ++/*538544*/ OPC_CheckType, MVT::v4i64, ++/*538546*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*538548*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*538556*/ 0, /*End of Scope*/ ++/*538557*/ 0, /*End of Scope*/ ++/*538558*/ /*Scope*/ 61|128,6/*829*/, /*->539389*/ ++/*538560*/ OPC_MoveChild0, ++/*538561*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*538564*/ OPC_CheckChild0Integer, 1, ++/*538566*/ OPC_CheckChild0Type, MVT::i64, ++/*538568*/ OPC_CheckChild1Integer, 1, ++/*538570*/ OPC_CheckChild1Type, MVT::i64, ++/*538572*/ OPC_CheckChild2Integer, 1, ++/*538574*/ OPC_CheckChild2Type, MVT::i64, ++/*538576*/ OPC_CheckChild3Integer, 1, ++/*538578*/ OPC_CheckChild3Type, MVT::i64, ++/*538580*/ OPC_MoveParent, ++/*538581*/ OPC_RecordChild1, // #0 = $b ++/*538582*/ OPC_MoveParent, ++/*538583*/ OPC_RecordChild1, // #1 = $a ++/*538584*/ OPC_MoveParent, ++/*538585*/ OPC_MoveChild1, ++/*538586*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*538589*/ OPC_CheckChild0Integer, 63, ++/*538591*/ OPC_CheckChild0Type, MVT::i64, ++/*538593*/ OPC_CheckChild1Integer, 63, ++/*538595*/ OPC_CheckChild1Type, MVT::i64, ++/*538597*/ OPC_CheckChild2Integer, 63, ++/*538599*/ OPC_CheckChild2Type, MVT::i64, ++/*538601*/ OPC_CheckChild3Integer, 63, ++/*538603*/ OPC_CheckChild3Type, MVT::i64, ++/*538605*/ OPC_CheckType, MVT::v4i64, ++/*538607*/ OPC_MoveParent, ++/*538608*/ OPC_MoveParent, ++/*538609*/ OPC_MoveChild1, ++/*538610*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*538613*/ OPC_Scope, 6|128,3/*390*/, /*->539006*/ // 4 children in Scope ++/*538616*/ OPC_MoveChild0, ++/*538617*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*538620*/ OPC_Scope, 63, /*->538685*/ // 6 children in Scope ++/*538622*/ OPC_MoveChild0, ++/*538623*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*538626*/ OPC_CheckChild0Integer, 1, ++/*538628*/ OPC_CheckChild0Type, MVT::i64, ++/*538630*/ OPC_CheckChild1Integer, 1, ++/*538632*/ OPC_CheckChild1Type, MVT::i64, ++/*538634*/ OPC_CheckChild2Integer, 1, ++/*538636*/ OPC_CheckChild2Type, MVT::i64, ++/*538638*/ OPC_CheckChild3Integer, 1, ++/*538640*/ OPC_CheckChild3Type, MVT::i64, ++/*538642*/ OPC_MoveParent, ++/*538643*/ OPC_CheckChild1Same, 1, ++/*538645*/ OPC_MoveParent, ++/*538646*/ OPC_CheckChild1Same, 0, ++/*538648*/ OPC_MoveParent, ++/*538649*/ OPC_MoveParent, ++/*538650*/ OPC_MoveChild1, ++/*538651*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*538654*/ OPC_CheckChild0Integer, 1, ++/*538656*/ OPC_CheckChild0Type, MVT::i64, ++/*538658*/ OPC_CheckChild1Integer, 1, ++/*538660*/ OPC_CheckChild1Type, MVT::i64, ++/*538662*/ OPC_CheckChild2Integer, 1, ++/*538664*/ OPC_CheckChild2Type, MVT::i64, ++/*538666*/ OPC_CheckChild3Integer, 1, ++/*538668*/ OPC_CheckChild3Type, MVT::i64, ++/*538670*/ OPC_CheckType, MVT::v4i64, ++/*538672*/ OPC_MoveParent, ++/*538673*/ OPC_CheckType, MVT::v4i64, ++/*538675*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*538677*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b), LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a), LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*538685*/ /*Scope*/ 63, /*->538749*/ ++/*538686*/ OPC_CheckChild0Same, 1, ++/*538688*/ OPC_MoveChild1, ++/*538689*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*538692*/ OPC_CheckChild0Integer, 1, ++/*538694*/ OPC_CheckChild0Type, MVT::i64, ++/*538696*/ OPC_CheckChild1Integer, 1, ++/*538698*/ OPC_CheckChild1Type, MVT::i64, ++/*538700*/ OPC_CheckChild2Integer, 1, ++/*538702*/ OPC_CheckChild2Type, MVT::i64, ++/*538704*/ OPC_CheckChild3Integer, 1, ++/*538706*/ OPC_CheckChild3Type, MVT::i64, ++/*538708*/ OPC_MoveParent, ++/*538709*/ OPC_MoveParent, ++/*538710*/ OPC_CheckChild1Same, 0, ++/*538712*/ OPC_MoveParent, ++/*538713*/ OPC_MoveParent, ++/*538714*/ OPC_MoveChild1, ++/*538715*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*538718*/ OPC_CheckChild0Integer, 1, ++/*538720*/ OPC_CheckChild0Type, MVT::i64, ++/*538722*/ OPC_CheckChild1Integer, 1, ++/*538724*/ OPC_CheckChild1Type, MVT::i64, ++/*538726*/ OPC_CheckChild2Integer, 1, ++/*538728*/ OPC_CheckChild2Type, MVT::i64, ++/*538730*/ OPC_CheckChild3Integer, 1, ++/*538732*/ OPC_CheckChild3Type, MVT::i64, ++/*538734*/ OPC_CheckType, MVT::v4i64, ++/*538736*/ OPC_MoveParent, ++/*538737*/ OPC_CheckType, MVT::v4i64, ++/*538739*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*538741*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b), LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*538749*/ /*Scope*/ 63, /*->538813*/ ++/*538750*/ OPC_MoveChild0, ++/*538751*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*538754*/ OPC_CheckChild0Integer, 1, ++/*538756*/ OPC_CheckChild0Type, MVT::i64, ++/*538758*/ OPC_CheckChild1Integer, 1, ++/*538760*/ OPC_CheckChild1Type, MVT::i64, ++/*538762*/ OPC_CheckChild2Integer, 1, ++/*538764*/ OPC_CheckChild2Type, MVT::i64, ++/*538766*/ OPC_CheckChild3Integer, 1, ++/*538768*/ OPC_CheckChild3Type, MVT::i64, ++/*538770*/ OPC_MoveParent, ++/*538771*/ OPC_CheckChild1Same, 0, ++/*538773*/ OPC_MoveParent, ++/*538774*/ OPC_CheckChild1Same, 1, ++/*538776*/ OPC_MoveParent, ++/*538777*/ OPC_MoveParent, ++/*538778*/ OPC_MoveChild1, ++/*538779*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*538782*/ OPC_CheckChild0Integer, 1, ++/*538784*/ OPC_CheckChild0Type, MVT::i64, ++/*538786*/ OPC_CheckChild1Integer, 1, ++/*538788*/ OPC_CheckChild1Type, MVT::i64, ++/*538790*/ OPC_CheckChild2Integer, 1, ++/*538792*/ OPC_CheckChild2Type, MVT::i64, ++/*538794*/ OPC_CheckChild3Integer, 1, ++/*538796*/ OPC_CheckChild3Type, MVT::i64, ++/*538798*/ OPC_CheckType, MVT::v4i64, ++/*538800*/ OPC_MoveParent, ++/*538801*/ OPC_CheckType, MVT::v4i64, ++/*538803*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*538805*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b), LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b), LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*538813*/ /*Scope*/ 63, /*->538877*/ ++/*538814*/ OPC_CheckChild0Same, 0, ++/*538816*/ OPC_MoveChild1, ++/*538817*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*538820*/ OPC_CheckChild0Integer, 1, ++/*538822*/ OPC_CheckChild0Type, MVT::i64, ++/*538824*/ OPC_CheckChild1Integer, 1, ++/*538826*/ OPC_CheckChild1Type, MVT::i64, ++/*538828*/ OPC_CheckChild2Integer, 1, ++/*538830*/ OPC_CheckChild2Type, MVT::i64, ++/*538832*/ OPC_CheckChild3Integer, 1, ++/*538834*/ OPC_CheckChild3Type, MVT::i64, ++/*538836*/ OPC_MoveParent, ++/*538837*/ OPC_MoveParent, ++/*538838*/ OPC_CheckChild1Same, 1, ++/*538840*/ OPC_MoveParent, ++/*538841*/ OPC_MoveParent, ++/*538842*/ OPC_MoveChild1, ++/*538843*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*538846*/ OPC_CheckChild0Integer, 1, ++/*538848*/ OPC_CheckChild0Type, MVT::i64, ++/*538850*/ OPC_CheckChild1Integer, 1, ++/*538852*/ OPC_CheckChild1Type, MVT::i64, ++/*538854*/ OPC_CheckChild2Integer, 1, ++/*538856*/ OPC_CheckChild2Type, MVT::i64, ++/*538858*/ OPC_CheckChild3Integer, 1, ++/*538860*/ OPC_CheckChild3Type, MVT::i64, ++/*538862*/ OPC_CheckType, MVT::v4i64, ++/*538864*/ OPC_MoveParent, ++/*538865*/ OPC_CheckType, MVT::v4i64, ++/*538867*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*538869*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b), LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*538877*/ /*Scope*/ 63, /*->538941*/ ++/*538878*/ OPC_CheckChild0Same, 1, ++/*538880*/ OPC_CheckChild1Same, 0, ++/*538882*/ OPC_MoveParent, ++/*538883*/ OPC_MoveChild1, ++/*538884*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*538887*/ OPC_CheckChild0Integer, 1, ++/*538889*/ OPC_CheckChild0Type, MVT::i64, ++/*538891*/ OPC_CheckChild1Integer, 1, ++/*538893*/ OPC_CheckChild1Type, MVT::i64, ++/*538895*/ OPC_CheckChild2Integer, 1, ++/*538897*/ OPC_CheckChild2Type, MVT::i64, ++/*538899*/ OPC_CheckChild3Integer, 1, ++/*538901*/ OPC_CheckChild3Type, MVT::i64, ++/*538903*/ OPC_MoveParent, ++/*538904*/ OPC_MoveParent, ++/*538905*/ OPC_MoveParent, ++/*538906*/ OPC_MoveChild1, ++/*538907*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*538910*/ OPC_CheckChild0Integer, 1, ++/*538912*/ OPC_CheckChild0Type, MVT::i64, ++/*538914*/ OPC_CheckChild1Integer, 1, ++/*538916*/ OPC_CheckChild1Type, MVT::i64, ++/*538918*/ OPC_CheckChild2Integer, 1, ++/*538920*/ OPC_CheckChild2Type, MVT::i64, ++/*538922*/ OPC_CheckChild3Integer, 1, ++/*538924*/ OPC_CheckChild3Type, MVT::i64, ++/*538926*/ OPC_CheckType, MVT::v4i64, ++/*538928*/ OPC_MoveParent, ++/*538929*/ OPC_CheckType, MVT::v4i64, ++/*538931*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*538933*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b), LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*538941*/ /*Scope*/ 63, /*->539005*/ ++/*538942*/ OPC_CheckChild0Same, 0, ++/*538944*/ OPC_CheckChild1Same, 1, ++/*538946*/ OPC_MoveParent, ++/*538947*/ OPC_MoveChild1, ++/*538948*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*538951*/ OPC_CheckChild0Integer, 1, ++/*538953*/ OPC_CheckChild0Type, MVT::i64, ++/*538955*/ OPC_CheckChild1Integer, 1, ++/*538957*/ OPC_CheckChild1Type, MVT::i64, ++/*538959*/ OPC_CheckChild2Integer, 1, ++/*538961*/ OPC_CheckChild2Type, MVT::i64, ++/*538963*/ OPC_CheckChild3Integer, 1, ++/*538965*/ OPC_CheckChild3Type, MVT::i64, ++/*538967*/ OPC_MoveParent, ++/*538968*/ OPC_MoveParent, ++/*538969*/ OPC_MoveParent, ++/*538970*/ OPC_MoveChild1, ++/*538971*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*538974*/ OPC_CheckChild0Integer, 1, ++/*538976*/ OPC_CheckChild0Type, MVT::i64, ++/*538978*/ OPC_CheckChild1Integer, 1, ++/*538980*/ OPC_CheckChild1Type, MVT::i64, ++/*538982*/ OPC_CheckChild2Integer, 1, ++/*538984*/ OPC_CheckChild2Type, MVT::i64, ++/*538986*/ OPC_CheckChild3Integer, 1, ++/*538988*/ OPC_CheckChild3Type, MVT::i64, ++/*538990*/ OPC_CheckType, MVT::v4i64, ++/*538992*/ OPC_MoveParent, ++/*538993*/ OPC_CheckType, MVT::v4i64, ++/*538995*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*538997*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b), LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*539005*/ 0, /*End of Scope*/ ++/*539006*/ /*Scope*/ 4|128,1/*132*/, /*->539140*/ ++/*539008*/ OPC_CheckChild0Same, 0, ++/*539010*/ OPC_MoveChild1, ++/*539011*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*539014*/ OPC_Scope, 61, /*->539077*/ // 2 children in Scope ++/*539016*/ OPC_MoveChild0, ++/*539017*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*539020*/ OPC_CheckChild0Integer, 1, ++/*539022*/ OPC_CheckChild0Type, MVT::i64, ++/*539024*/ OPC_CheckChild1Integer, 1, ++/*539026*/ OPC_CheckChild1Type, MVT::i64, ++/*539028*/ OPC_CheckChild2Integer, 1, ++/*539030*/ OPC_CheckChild2Type, MVT::i64, ++/*539032*/ OPC_CheckChild3Integer, 1, ++/*539034*/ OPC_CheckChild3Type, MVT::i64, ++/*539036*/ OPC_MoveParent, ++/*539037*/ OPC_CheckChild1Same, 1, ++/*539039*/ OPC_MoveParent, ++/*539040*/ OPC_MoveParent, ++/*539041*/ OPC_MoveParent, ++/*539042*/ OPC_MoveChild1, ++/*539043*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*539046*/ OPC_CheckChild0Integer, 1, ++/*539048*/ OPC_CheckChild0Type, MVT::i64, ++/*539050*/ OPC_CheckChild1Integer, 1, ++/*539052*/ OPC_CheckChild1Type, MVT::i64, ++/*539054*/ OPC_CheckChild2Integer, 1, ++/*539056*/ OPC_CheckChild2Type, MVT::i64, ++/*539058*/ OPC_CheckChild3Integer, 1, ++/*539060*/ OPC_CheckChild3Type, MVT::i64, ++/*539062*/ OPC_CheckType, MVT::v4i64, ++/*539064*/ OPC_MoveParent, ++/*539065*/ OPC_CheckType, MVT::v4i64, ++/*539067*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*539069*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b), LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*539077*/ /*Scope*/ 61, /*->539139*/ ++/*539078*/ OPC_CheckChild0Same, 1, ++/*539080*/ OPC_MoveChild1, ++/*539081*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*539084*/ OPC_CheckChild0Integer, 1, ++/*539086*/ OPC_CheckChild0Type, MVT::i64, ++/*539088*/ OPC_CheckChild1Integer, 1, ++/*539090*/ OPC_CheckChild1Type, MVT::i64, ++/*539092*/ OPC_CheckChild2Integer, 1, ++/*539094*/ OPC_CheckChild2Type, MVT::i64, ++/*539096*/ OPC_CheckChild3Integer, 1, ++/*539098*/ OPC_CheckChild3Type, MVT::i64, ++/*539100*/ OPC_MoveParent, ++/*539101*/ OPC_MoveParent, ++/*539102*/ OPC_MoveParent, ++/*539103*/ OPC_MoveParent, ++/*539104*/ OPC_MoveChild1, ++/*539105*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*539108*/ OPC_CheckChild0Integer, 1, ++/*539110*/ OPC_CheckChild0Type, MVT::i64, ++/*539112*/ OPC_CheckChild1Integer, 1, ++/*539114*/ OPC_CheckChild1Type, MVT::i64, ++/*539116*/ OPC_CheckChild2Integer, 1, ++/*539118*/ OPC_CheckChild2Type, MVT::i64, ++/*539120*/ OPC_CheckChild3Integer, 1, ++/*539122*/ OPC_CheckChild3Type, MVT::i64, ++/*539124*/ OPC_CheckType, MVT::v4i64, ++/*539126*/ OPC_MoveParent, ++/*539127*/ OPC_CheckType, MVT::v4i64, ++/*539129*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*539131*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b), LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*539139*/ 0, /*End of Scope*/ ++/*539140*/ /*Scope*/ 4|128,1/*132*/, /*->539274*/ ++/*539142*/ OPC_CheckChild0Same, 1, ++/*539144*/ OPC_MoveChild1, ++/*539145*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*539148*/ OPC_Scope, 61, /*->539211*/ // 2 children in Scope ++/*539150*/ OPC_MoveChild0, ++/*539151*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*539154*/ OPC_CheckChild0Integer, 1, ++/*539156*/ OPC_CheckChild0Type, MVT::i64, ++/*539158*/ OPC_CheckChild1Integer, 1, ++/*539160*/ OPC_CheckChild1Type, MVT::i64, ++/*539162*/ OPC_CheckChild2Integer, 1, ++/*539164*/ OPC_CheckChild2Type, MVT::i64, ++/*539166*/ OPC_CheckChild3Integer, 1, ++/*539168*/ OPC_CheckChild3Type, MVT::i64, ++/*539170*/ OPC_MoveParent, ++/*539171*/ OPC_CheckChild1Same, 0, ++/*539173*/ OPC_MoveParent, ++/*539174*/ OPC_MoveParent, ++/*539175*/ OPC_MoveParent, ++/*539176*/ OPC_MoveChild1, ++/*539177*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*539180*/ OPC_CheckChild0Integer, 1, ++/*539182*/ OPC_CheckChild0Type, MVT::i64, ++/*539184*/ OPC_CheckChild1Integer, 1, ++/*539186*/ OPC_CheckChild1Type, MVT::i64, ++/*539188*/ OPC_CheckChild2Integer, 1, ++/*539190*/ OPC_CheckChild2Type, MVT::i64, ++/*539192*/ OPC_CheckChild3Integer, 1, ++/*539194*/ OPC_CheckChild3Type, MVT::i64, ++/*539196*/ OPC_CheckType, MVT::v4i64, ++/*539198*/ OPC_MoveParent, ++/*539199*/ OPC_CheckType, MVT::v4i64, ++/*539201*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*539203*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b), LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*539211*/ /*Scope*/ 61, /*->539273*/ ++/*539212*/ OPC_CheckChild0Same, 0, ++/*539214*/ OPC_MoveChild1, ++/*539215*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*539218*/ OPC_CheckChild0Integer, 1, ++/*539220*/ OPC_CheckChild0Type, MVT::i64, ++/*539222*/ OPC_CheckChild1Integer, 1, ++/*539224*/ OPC_CheckChild1Type, MVT::i64, ++/*539226*/ OPC_CheckChild2Integer, 1, ++/*539228*/ OPC_CheckChild2Type, MVT::i64, ++/*539230*/ OPC_CheckChild3Integer, 1, ++/*539232*/ OPC_CheckChild3Type, MVT::i64, ++/*539234*/ OPC_MoveParent, ++/*539235*/ OPC_MoveParent, ++/*539236*/ OPC_MoveParent, ++/*539237*/ OPC_MoveParent, ++/*539238*/ OPC_MoveChild1, ++/*539239*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*539242*/ OPC_CheckChild0Integer, 1, ++/*539244*/ OPC_CheckChild0Type, MVT::i64, ++/*539246*/ OPC_CheckChild1Integer, 1, ++/*539248*/ OPC_CheckChild1Type, MVT::i64, ++/*539250*/ OPC_CheckChild2Integer, 1, ++/*539252*/ OPC_CheckChild2Type, MVT::i64, ++/*539254*/ OPC_CheckChild3Integer, 1, ++/*539256*/ OPC_CheckChild3Type, MVT::i64, ++/*539258*/ OPC_CheckType, MVT::v4i64, ++/*539260*/ OPC_MoveParent, ++/*539261*/ OPC_CheckType, MVT::v4i64, ++/*539263*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*539265*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b), LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*539273*/ 0, /*End of Scope*/ ++/*539274*/ /*Scope*/ 113, /*->539388*/ ++/*539275*/ OPC_MoveChild0, ++/*539276*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*539279*/ OPC_CheckChild0Integer, 1, ++/*539281*/ OPC_CheckChild0Type, MVT::i64, ++/*539283*/ OPC_CheckChild1Integer, 1, ++/*539285*/ OPC_CheckChild1Type, MVT::i64, ++/*539287*/ OPC_CheckChild2Integer, 1, ++/*539289*/ OPC_CheckChild2Type, MVT::i64, ++/*539291*/ OPC_CheckChild3Integer, 1, ++/*539293*/ OPC_CheckChild3Type, MVT::i64, ++/*539295*/ OPC_MoveParent, ++/*539296*/ OPC_MoveChild1, ++/*539297*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*539300*/ OPC_Scope, 42, /*->539344*/ // 2 children in Scope ++/*539302*/ OPC_CheckChild0Same, 1, ++/*539304*/ OPC_CheckChild1Same, 0, ++/*539306*/ OPC_MoveParent, ++/*539307*/ OPC_MoveParent, ++/*539308*/ OPC_MoveParent, ++/*539309*/ OPC_MoveChild1, ++/*539310*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*539313*/ OPC_CheckChild0Integer, 1, ++/*539315*/ OPC_CheckChild0Type, MVT::i64, ++/*539317*/ OPC_CheckChild1Integer, 1, ++/*539319*/ OPC_CheckChild1Type, MVT::i64, ++/*539321*/ OPC_CheckChild2Integer, 1, ++/*539323*/ OPC_CheckChild2Type, MVT::i64, ++/*539325*/ OPC_CheckChild3Integer, 1, ++/*539327*/ OPC_CheckChild3Type, MVT::i64, ++/*539329*/ OPC_CheckType, MVT::v4i64, ++/*539331*/ OPC_MoveParent, ++/*539332*/ OPC_CheckType, MVT::v4i64, ++/*539334*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*539336*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b), LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*539344*/ /*Scope*/ 42, /*->539387*/ ++/*539345*/ OPC_CheckChild0Same, 0, ++/*539347*/ OPC_CheckChild1Same, 1, ++/*539349*/ OPC_MoveParent, ++/*539350*/ OPC_MoveParent, ++/*539351*/ OPC_MoveParent, ++/*539352*/ OPC_MoveChild1, ++/*539353*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*539356*/ OPC_CheckChild0Integer, 1, ++/*539358*/ OPC_CheckChild0Type, MVT::i64, ++/*539360*/ OPC_CheckChild1Integer, 1, ++/*539362*/ OPC_CheckChild1Type, MVT::i64, ++/*539364*/ OPC_CheckChild2Integer, 1, ++/*539366*/ OPC_CheckChild2Type, MVT::i64, ++/*539368*/ OPC_CheckChild3Integer, 1, ++/*539370*/ OPC_CheckChild3Type, MVT::i64, ++/*539372*/ OPC_CheckType, MVT::v4i64, ++/*539374*/ OPC_MoveParent, ++/*539375*/ OPC_CheckType, MVT::v4i64, ++/*539377*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*539379*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b), LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*539387*/ 0, /*End of Scope*/ ++/*539388*/ 0, /*End of Scope*/ ++/*539389*/ /*Scope*/ 6|128,19/*2438*/, /*->541829*/ ++/*539391*/ OPC_RecordChild0, // #0 = $b ++/*539392*/ OPC_Scope, 60|128,6/*828*/, /*->540223*/ // 2 children in Scope ++/*539395*/ OPC_MoveChild1, ++/*539396*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*539399*/ OPC_CheckChild0Integer, 1, ++/*539401*/ OPC_CheckChild0Type, MVT::i64, ++/*539403*/ OPC_CheckChild1Integer, 1, ++/*539405*/ OPC_CheckChild1Type, MVT::i64, ++/*539407*/ OPC_CheckChild2Integer, 1, ++/*539409*/ OPC_CheckChild2Type, MVT::i64, ++/*539411*/ OPC_CheckChild3Integer, 1, ++/*539413*/ OPC_CheckChild3Type, MVT::i64, ++/*539415*/ OPC_MoveParent, ++/*539416*/ OPC_MoveParent, ++/*539417*/ OPC_RecordChild1, // #1 = $a ++/*539418*/ OPC_MoveParent, ++/*539419*/ OPC_MoveChild1, ++/*539420*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*539423*/ OPC_CheckChild0Integer, 63, ++/*539425*/ OPC_CheckChild0Type, MVT::i64, ++/*539427*/ OPC_CheckChild1Integer, 63, ++/*539429*/ OPC_CheckChild1Type, MVT::i64, ++/*539431*/ OPC_CheckChild2Integer, 63, ++/*539433*/ OPC_CheckChild2Type, MVT::i64, ++/*539435*/ OPC_CheckChild3Integer, 63, ++/*539437*/ OPC_CheckChild3Type, MVT::i64, ++/*539439*/ OPC_CheckType, MVT::v4i64, ++/*539441*/ OPC_MoveParent, ++/*539442*/ OPC_MoveParent, ++/*539443*/ OPC_MoveChild1, ++/*539444*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*539447*/ OPC_Scope, 6|128,3/*390*/, /*->539840*/ // 4 children in Scope ++/*539450*/ OPC_MoveChild0, ++/*539451*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*539454*/ OPC_Scope, 63, /*->539519*/ // 6 children in Scope ++/*539456*/ OPC_MoveChild0, ++/*539457*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*539460*/ OPC_CheckChild0Integer, 1, ++/*539462*/ OPC_CheckChild0Type, MVT::i64, ++/*539464*/ OPC_CheckChild1Integer, 1, ++/*539466*/ OPC_CheckChild1Type, MVT::i64, ++/*539468*/ OPC_CheckChild2Integer, 1, ++/*539470*/ OPC_CheckChild2Type, MVT::i64, ++/*539472*/ OPC_CheckChild3Integer, 1, ++/*539474*/ OPC_CheckChild3Type, MVT::i64, ++/*539476*/ OPC_MoveParent, ++/*539477*/ OPC_CheckChild1Same, 1, ++/*539479*/ OPC_MoveParent, ++/*539480*/ OPC_CheckChild1Same, 0, ++/*539482*/ OPC_MoveParent, ++/*539483*/ OPC_MoveParent, ++/*539484*/ OPC_MoveChild1, ++/*539485*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*539488*/ OPC_CheckChild0Integer, 1, ++/*539490*/ OPC_CheckChild0Type, MVT::i64, ++/*539492*/ OPC_CheckChild1Integer, 1, ++/*539494*/ OPC_CheckChild1Type, MVT::i64, ++/*539496*/ OPC_CheckChild2Integer, 1, ++/*539498*/ OPC_CheckChild2Type, MVT::i64, ++/*539500*/ OPC_CheckChild3Integer, 1, ++/*539502*/ OPC_CheckChild3Type, MVT::i64, ++/*539504*/ OPC_CheckType, MVT::v4i64, ++/*539506*/ OPC_MoveParent, ++/*539507*/ OPC_CheckType, MVT::v4i64, ++/*539509*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*539511*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a), LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*539519*/ /*Scope*/ 63, /*->539583*/ ++/*539520*/ OPC_CheckChild0Same, 1, ++/*539522*/ OPC_MoveChild1, ++/*539523*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*539526*/ OPC_CheckChild0Integer, 1, ++/*539528*/ OPC_CheckChild0Type, MVT::i64, ++/*539530*/ OPC_CheckChild1Integer, 1, ++/*539532*/ OPC_CheckChild1Type, MVT::i64, ++/*539534*/ OPC_CheckChild2Integer, 1, ++/*539536*/ OPC_CheckChild2Type, MVT::i64, ++/*539538*/ OPC_CheckChild3Integer, 1, ++/*539540*/ OPC_CheckChild3Type, MVT::i64, ++/*539542*/ OPC_MoveParent, ++/*539543*/ OPC_MoveParent, ++/*539544*/ OPC_CheckChild1Same, 0, ++/*539546*/ OPC_MoveParent, ++/*539547*/ OPC_MoveParent, ++/*539548*/ OPC_MoveChild1, ++/*539549*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*539552*/ OPC_CheckChild0Integer, 1, ++/*539554*/ OPC_CheckChild0Type, MVT::i64, ++/*539556*/ OPC_CheckChild1Integer, 1, ++/*539558*/ OPC_CheckChild1Type, MVT::i64, ++/*539560*/ OPC_CheckChild2Integer, 1, ++/*539562*/ OPC_CheckChild2Type, MVT::i64, ++/*539564*/ OPC_CheckChild3Integer, 1, ++/*539566*/ OPC_CheckChild3Type, MVT::i64, ++/*539568*/ OPC_CheckType, MVT::v4i64, ++/*539570*/ OPC_MoveParent, ++/*539571*/ OPC_CheckType, MVT::v4i64, ++/*539573*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*539575*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*539583*/ /*Scope*/ 63, /*->539647*/ ++/*539584*/ OPC_MoveChild0, ++/*539585*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*539588*/ OPC_CheckChild0Integer, 1, ++/*539590*/ OPC_CheckChild0Type, MVT::i64, ++/*539592*/ OPC_CheckChild1Integer, 1, ++/*539594*/ OPC_CheckChild1Type, MVT::i64, ++/*539596*/ OPC_CheckChild2Integer, 1, ++/*539598*/ OPC_CheckChild2Type, MVT::i64, ++/*539600*/ OPC_CheckChild3Integer, 1, ++/*539602*/ OPC_CheckChild3Type, MVT::i64, ++/*539604*/ OPC_MoveParent, ++/*539605*/ OPC_CheckChild1Same, 0, ++/*539607*/ OPC_MoveParent, ++/*539608*/ OPC_CheckChild1Same, 1, ++/*539610*/ OPC_MoveParent, ++/*539611*/ OPC_MoveParent, ++/*539612*/ OPC_MoveChild1, ++/*539613*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*539616*/ OPC_CheckChild0Integer, 1, ++/*539618*/ OPC_CheckChild0Type, MVT::i64, ++/*539620*/ OPC_CheckChild1Integer, 1, ++/*539622*/ OPC_CheckChild1Type, MVT::i64, ++/*539624*/ OPC_CheckChild2Integer, 1, ++/*539626*/ OPC_CheckChild2Type, MVT::i64, ++/*539628*/ OPC_CheckChild3Integer, 1, ++/*539630*/ OPC_CheckChild3Type, MVT::i64, ++/*539632*/ OPC_CheckType, MVT::v4i64, ++/*539634*/ OPC_MoveParent, ++/*539635*/ OPC_CheckType, MVT::v4i64, ++/*539637*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*539639*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b), LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*539647*/ /*Scope*/ 63, /*->539711*/ ++/*539648*/ OPC_CheckChild0Same, 0, ++/*539650*/ OPC_MoveChild1, ++/*539651*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*539654*/ OPC_CheckChild0Integer, 1, ++/*539656*/ OPC_CheckChild0Type, MVT::i64, ++/*539658*/ OPC_CheckChild1Integer, 1, ++/*539660*/ OPC_CheckChild1Type, MVT::i64, ++/*539662*/ OPC_CheckChild2Integer, 1, ++/*539664*/ OPC_CheckChild2Type, MVT::i64, ++/*539666*/ OPC_CheckChild3Integer, 1, ++/*539668*/ OPC_CheckChild3Type, MVT::i64, ++/*539670*/ OPC_MoveParent, ++/*539671*/ OPC_MoveParent, ++/*539672*/ OPC_CheckChild1Same, 1, ++/*539674*/ OPC_MoveParent, ++/*539675*/ OPC_MoveParent, ++/*539676*/ OPC_MoveChild1, ++/*539677*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*539680*/ OPC_CheckChild0Integer, 1, ++/*539682*/ OPC_CheckChild0Type, MVT::i64, ++/*539684*/ OPC_CheckChild1Integer, 1, ++/*539686*/ OPC_CheckChild1Type, MVT::i64, ++/*539688*/ OPC_CheckChild2Integer, 1, ++/*539690*/ OPC_CheckChild2Type, MVT::i64, ++/*539692*/ OPC_CheckChild3Integer, 1, ++/*539694*/ OPC_CheckChild3Type, MVT::i64, ++/*539696*/ OPC_CheckType, MVT::v4i64, ++/*539698*/ OPC_MoveParent, ++/*539699*/ OPC_CheckType, MVT::v4i64, ++/*539701*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*539703*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*539711*/ /*Scope*/ 63, /*->539775*/ ++/*539712*/ OPC_CheckChild0Same, 1, ++/*539714*/ OPC_CheckChild1Same, 0, ++/*539716*/ OPC_MoveParent, ++/*539717*/ OPC_MoveChild1, ++/*539718*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*539721*/ OPC_CheckChild0Integer, 1, ++/*539723*/ OPC_CheckChild0Type, MVT::i64, ++/*539725*/ OPC_CheckChild1Integer, 1, ++/*539727*/ OPC_CheckChild1Type, MVT::i64, ++/*539729*/ OPC_CheckChild2Integer, 1, ++/*539731*/ OPC_CheckChild2Type, MVT::i64, ++/*539733*/ OPC_CheckChild3Integer, 1, ++/*539735*/ OPC_CheckChild3Type, MVT::i64, ++/*539737*/ OPC_MoveParent, ++/*539738*/ OPC_MoveParent, ++/*539739*/ OPC_MoveParent, ++/*539740*/ OPC_MoveChild1, ++/*539741*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*539744*/ OPC_CheckChild0Integer, 1, ++/*539746*/ OPC_CheckChild0Type, MVT::i64, ++/*539748*/ OPC_CheckChild1Integer, 1, ++/*539750*/ OPC_CheckChild1Type, MVT::i64, ++/*539752*/ OPC_CheckChild2Integer, 1, ++/*539754*/ OPC_CheckChild2Type, MVT::i64, ++/*539756*/ OPC_CheckChild3Integer, 1, ++/*539758*/ OPC_CheckChild3Type, MVT::i64, ++/*539760*/ OPC_CheckType, MVT::v4i64, ++/*539762*/ OPC_MoveParent, ++/*539763*/ OPC_CheckType, MVT::v4i64, ++/*539765*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*539767*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*539775*/ /*Scope*/ 63, /*->539839*/ ++/*539776*/ OPC_CheckChild0Same, 0, ++/*539778*/ OPC_CheckChild1Same, 1, ++/*539780*/ OPC_MoveParent, ++/*539781*/ OPC_MoveChild1, ++/*539782*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*539785*/ OPC_CheckChild0Integer, 1, ++/*539787*/ OPC_CheckChild0Type, MVT::i64, ++/*539789*/ OPC_CheckChild1Integer, 1, ++/*539791*/ OPC_CheckChild1Type, MVT::i64, ++/*539793*/ OPC_CheckChild2Integer, 1, ++/*539795*/ OPC_CheckChild2Type, MVT::i64, ++/*539797*/ OPC_CheckChild3Integer, 1, ++/*539799*/ OPC_CheckChild3Type, MVT::i64, ++/*539801*/ OPC_MoveParent, ++/*539802*/ OPC_MoveParent, ++/*539803*/ OPC_MoveParent, ++/*539804*/ OPC_MoveChild1, ++/*539805*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*539808*/ OPC_CheckChild0Integer, 1, ++/*539810*/ OPC_CheckChild0Type, MVT::i64, ++/*539812*/ OPC_CheckChild1Integer, 1, ++/*539814*/ OPC_CheckChild1Type, MVT::i64, ++/*539816*/ OPC_CheckChild2Integer, 1, ++/*539818*/ OPC_CheckChild2Type, MVT::i64, ++/*539820*/ OPC_CheckChild3Integer, 1, ++/*539822*/ OPC_CheckChild3Type, MVT::i64, ++/*539824*/ OPC_CheckType, MVT::v4i64, ++/*539826*/ OPC_MoveParent, ++/*539827*/ OPC_CheckType, MVT::v4i64, ++/*539829*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*539831*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*539839*/ 0, /*End of Scope*/ ++/*539840*/ /*Scope*/ 4|128,1/*132*/, /*->539974*/ ++/*539842*/ OPC_CheckChild0Same, 0, ++/*539844*/ OPC_MoveChild1, ++/*539845*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*539848*/ OPC_Scope, 61, /*->539911*/ // 2 children in Scope ++/*539850*/ OPC_MoveChild0, ++/*539851*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*539854*/ OPC_CheckChild0Integer, 1, ++/*539856*/ OPC_CheckChild0Type, MVT::i64, ++/*539858*/ OPC_CheckChild1Integer, 1, ++/*539860*/ OPC_CheckChild1Type, MVT::i64, ++/*539862*/ OPC_CheckChild2Integer, 1, ++/*539864*/ OPC_CheckChild2Type, MVT::i64, ++/*539866*/ OPC_CheckChild3Integer, 1, ++/*539868*/ OPC_CheckChild3Type, MVT::i64, ++/*539870*/ OPC_MoveParent, ++/*539871*/ OPC_CheckChild1Same, 1, ++/*539873*/ OPC_MoveParent, ++/*539874*/ OPC_MoveParent, ++/*539875*/ OPC_MoveParent, ++/*539876*/ OPC_MoveChild1, ++/*539877*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*539880*/ OPC_CheckChild0Integer, 1, ++/*539882*/ OPC_CheckChild0Type, MVT::i64, ++/*539884*/ OPC_CheckChild1Integer, 1, ++/*539886*/ OPC_CheckChild1Type, MVT::i64, ++/*539888*/ OPC_CheckChild2Integer, 1, ++/*539890*/ OPC_CheckChild2Type, MVT::i64, ++/*539892*/ OPC_CheckChild3Integer, 1, ++/*539894*/ OPC_CheckChild3Type, MVT::i64, ++/*539896*/ OPC_CheckType, MVT::v4i64, ++/*539898*/ OPC_MoveParent, ++/*539899*/ OPC_CheckType, MVT::v4i64, ++/*539901*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*539903*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*539911*/ /*Scope*/ 61, /*->539973*/ ++/*539912*/ OPC_CheckChild0Same, 1, ++/*539914*/ OPC_MoveChild1, ++/*539915*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*539918*/ OPC_CheckChild0Integer, 1, ++/*539920*/ OPC_CheckChild0Type, MVT::i64, ++/*539922*/ OPC_CheckChild1Integer, 1, ++/*539924*/ OPC_CheckChild1Type, MVT::i64, ++/*539926*/ OPC_CheckChild2Integer, 1, ++/*539928*/ OPC_CheckChild2Type, MVT::i64, ++/*539930*/ OPC_CheckChild3Integer, 1, ++/*539932*/ OPC_CheckChild3Type, MVT::i64, ++/*539934*/ OPC_MoveParent, ++/*539935*/ OPC_MoveParent, ++/*539936*/ OPC_MoveParent, ++/*539937*/ OPC_MoveParent, ++/*539938*/ OPC_MoveChild1, ++/*539939*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*539942*/ OPC_CheckChild0Integer, 1, ++/*539944*/ OPC_CheckChild0Type, MVT::i64, ++/*539946*/ OPC_CheckChild1Integer, 1, ++/*539948*/ OPC_CheckChild1Type, MVT::i64, ++/*539950*/ OPC_CheckChild2Integer, 1, ++/*539952*/ OPC_CheckChild2Type, MVT::i64, ++/*539954*/ OPC_CheckChild3Integer, 1, ++/*539956*/ OPC_CheckChild3Type, MVT::i64, ++/*539958*/ OPC_CheckType, MVT::v4i64, ++/*539960*/ OPC_MoveParent, ++/*539961*/ OPC_CheckType, MVT::v4i64, ++/*539963*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*539965*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*539973*/ 0, /*End of Scope*/ ++/*539974*/ /*Scope*/ 4|128,1/*132*/, /*->540108*/ ++/*539976*/ OPC_CheckChild0Same, 1, ++/*539978*/ OPC_MoveChild1, ++/*539979*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*539982*/ OPC_Scope, 61, /*->540045*/ // 2 children in Scope ++/*539984*/ OPC_MoveChild0, ++/*539985*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*539988*/ OPC_CheckChild0Integer, 1, ++/*539990*/ OPC_CheckChild0Type, MVT::i64, ++/*539992*/ OPC_CheckChild1Integer, 1, ++/*539994*/ OPC_CheckChild1Type, MVT::i64, ++/*539996*/ OPC_CheckChild2Integer, 1, ++/*539998*/ OPC_CheckChild2Type, MVT::i64, ++/*540000*/ OPC_CheckChild3Integer, 1, ++/*540002*/ OPC_CheckChild3Type, MVT::i64, ++/*540004*/ OPC_MoveParent, ++/*540005*/ OPC_CheckChild1Same, 0, ++/*540007*/ OPC_MoveParent, ++/*540008*/ OPC_MoveParent, ++/*540009*/ OPC_MoveParent, ++/*540010*/ OPC_MoveChild1, ++/*540011*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*540014*/ OPC_CheckChild0Integer, 1, ++/*540016*/ OPC_CheckChild0Type, MVT::i64, ++/*540018*/ OPC_CheckChild1Integer, 1, ++/*540020*/ OPC_CheckChild1Type, MVT::i64, ++/*540022*/ OPC_CheckChild2Integer, 1, ++/*540024*/ OPC_CheckChild2Type, MVT::i64, ++/*540026*/ OPC_CheckChild3Integer, 1, ++/*540028*/ OPC_CheckChild3Type, MVT::i64, ++/*540030*/ OPC_CheckType, MVT::v4i64, ++/*540032*/ OPC_MoveParent, ++/*540033*/ OPC_CheckType, MVT::v4i64, ++/*540035*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*540037*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*540045*/ /*Scope*/ 61, /*->540107*/ ++/*540046*/ OPC_CheckChild0Same, 0, ++/*540048*/ OPC_MoveChild1, ++/*540049*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*540052*/ OPC_CheckChild0Integer, 1, ++/*540054*/ OPC_CheckChild0Type, MVT::i64, ++/*540056*/ OPC_CheckChild1Integer, 1, ++/*540058*/ OPC_CheckChild1Type, MVT::i64, ++/*540060*/ OPC_CheckChild2Integer, 1, ++/*540062*/ OPC_CheckChild2Type, MVT::i64, ++/*540064*/ OPC_CheckChild3Integer, 1, ++/*540066*/ OPC_CheckChild3Type, MVT::i64, ++/*540068*/ OPC_MoveParent, ++/*540069*/ OPC_MoveParent, ++/*540070*/ OPC_MoveParent, ++/*540071*/ OPC_MoveParent, ++/*540072*/ OPC_MoveChild1, ++/*540073*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*540076*/ OPC_CheckChild0Integer, 1, ++/*540078*/ OPC_CheckChild0Type, MVT::i64, ++/*540080*/ OPC_CheckChild1Integer, 1, ++/*540082*/ OPC_CheckChild1Type, MVT::i64, ++/*540084*/ OPC_CheckChild2Integer, 1, ++/*540086*/ OPC_CheckChild2Type, MVT::i64, ++/*540088*/ OPC_CheckChild3Integer, 1, ++/*540090*/ OPC_CheckChild3Type, MVT::i64, ++/*540092*/ OPC_CheckType, MVT::v4i64, ++/*540094*/ OPC_MoveParent, ++/*540095*/ OPC_CheckType, MVT::v4i64, ++/*540097*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*540099*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*540107*/ 0, /*End of Scope*/ ++/*540108*/ /*Scope*/ 113, /*->540222*/ ++/*540109*/ OPC_MoveChild0, ++/*540110*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*540113*/ OPC_CheckChild0Integer, 1, ++/*540115*/ OPC_CheckChild0Type, MVT::i64, ++/*540117*/ OPC_CheckChild1Integer, 1, ++/*540119*/ OPC_CheckChild1Type, MVT::i64, ++/*540121*/ OPC_CheckChild2Integer, 1, ++/*540123*/ OPC_CheckChild2Type, MVT::i64, ++/*540125*/ OPC_CheckChild3Integer, 1, ++/*540127*/ OPC_CheckChild3Type, MVT::i64, ++/*540129*/ OPC_MoveParent, ++/*540130*/ OPC_MoveChild1, ++/*540131*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*540134*/ OPC_Scope, 42, /*->540178*/ // 2 children in Scope ++/*540136*/ OPC_CheckChild0Same, 1, ++/*540138*/ OPC_CheckChild1Same, 0, ++/*540140*/ OPC_MoveParent, ++/*540141*/ OPC_MoveParent, ++/*540142*/ OPC_MoveParent, ++/*540143*/ OPC_MoveChild1, ++/*540144*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*540147*/ OPC_CheckChild0Integer, 1, ++/*540149*/ OPC_CheckChild0Type, MVT::i64, ++/*540151*/ OPC_CheckChild1Integer, 1, ++/*540153*/ OPC_CheckChild1Type, MVT::i64, ++/*540155*/ OPC_CheckChild2Integer, 1, ++/*540157*/ OPC_CheckChild2Type, MVT::i64, ++/*540159*/ OPC_CheckChild3Integer, 1, ++/*540161*/ OPC_CheckChild3Type, MVT::i64, ++/*540163*/ OPC_CheckType, MVT::v4i64, ++/*540165*/ OPC_MoveParent, ++/*540166*/ OPC_CheckType, MVT::v4i64, ++/*540168*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*540170*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*540178*/ /*Scope*/ 42, /*->540221*/ ++/*540179*/ OPC_CheckChild0Same, 0, ++/*540181*/ OPC_CheckChild1Same, 1, ++/*540183*/ OPC_MoveParent, ++/*540184*/ OPC_MoveParent, ++/*540185*/ OPC_MoveParent, ++/*540186*/ OPC_MoveChild1, ++/*540187*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*540190*/ OPC_CheckChild0Integer, 1, ++/*540192*/ OPC_CheckChild0Type, MVT::i64, ++/*540194*/ OPC_CheckChild1Integer, 1, ++/*540196*/ OPC_CheckChild1Type, MVT::i64, ++/*540198*/ OPC_CheckChild2Integer, 1, ++/*540200*/ OPC_CheckChild2Type, MVT::i64, ++/*540202*/ OPC_CheckChild3Integer, 1, ++/*540204*/ OPC_CheckChild3Type, MVT::i64, ++/*540206*/ OPC_CheckType, MVT::v4i64, ++/*540208*/ OPC_MoveParent, ++/*540209*/ OPC_CheckType, MVT::v4i64, ++/*540211*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*540213*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*540221*/ 0, /*End of Scope*/ ++/*540222*/ 0, /*End of Scope*/ ++/*540223*/ /*Scope*/ 67|128,12/*1603*/, /*->541828*/ ++/*540225*/ OPC_RecordChild1, // #1 = $b ++/*540226*/ OPC_MoveParent, ++/*540227*/ OPC_MoveChild1, ++/*540228*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*540231*/ OPC_CheckChild0Integer, 1, ++/*540233*/ OPC_CheckChild0Type, MVT::i64, ++/*540235*/ OPC_CheckChild1Integer, 1, ++/*540237*/ OPC_CheckChild1Type, MVT::i64, ++/*540239*/ OPC_CheckChild2Integer, 1, ++/*540241*/ OPC_CheckChild2Type, MVT::i64, ++/*540243*/ OPC_CheckChild3Integer, 1, ++/*540245*/ OPC_CheckChild3Type, MVT::i64, ++/*540247*/ OPC_MoveParent, ++/*540248*/ OPC_MoveParent, ++/*540249*/ OPC_MoveChild1, ++/*540250*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*540253*/ OPC_CheckChild0Integer, 63, ++/*540255*/ OPC_CheckChild0Type, MVT::i64, ++/*540257*/ OPC_CheckChild1Integer, 63, ++/*540259*/ OPC_CheckChild1Type, MVT::i64, ++/*540261*/ OPC_CheckChild2Integer, 63, ++/*540263*/ OPC_CheckChild2Type, MVT::i64, ++/*540265*/ OPC_CheckChild3Integer, 63, ++/*540267*/ OPC_CheckChild3Type, MVT::i64, ++/*540269*/ OPC_CheckType, MVT::v4i64, ++/*540271*/ OPC_MoveParent, ++/*540272*/ OPC_MoveParent, ++/*540273*/ OPC_MoveChild1, ++/*540274*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*540277*/ OPC_Scope, 6|128,3/*390*/, /*->540670*/ // 7 children in Scope ++/*540280*/ OPC_MoveChild0, ++/*540281*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*540284*/ OPC_Scope, 63, /*->540349*/ // 6 children in Scope ++/*540286*/ OPC_MoveChild0, ++/*540287*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*540290*/ OPC_CheckChild0Integer, 1, ++/*540292*/ OPC_CheckChild0Type, MVT::i64, ++/*540294*/ OPC_CheckChild1Integer, 1, ++/*540296*/ OPC_CheckChild1Type, MVT::i64, ++/*540298*/ OPC_CheckChild2Integer, 1, ++/*540300*/ OPC_CheckChild2Type, MVT::i64, ++/*540302*/ OPC_CheckChild3Integer, 1, ++/*540304*/ OPC_CheckChild3Type, MVT::i64, ++/*540306*/ OPC_MoveParent, ++/*540307*/ OPC_CheckChild1Same, 0, ++/*540309*/ OPC_MoveParent, ++/*540310*/ OPC_CheckChild1Same, 1, ++/*540312*/ OPC_MoveParent, ++/*540313*/ OPC_MoveParent, ++/*540314*/ OPC_MoveChild1, ++/*540315*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*540318*/ OPC_CheckChild0Integer, 1, ++/*540320*/ OPC_CheckChild0Type, MVT::i64, ++/*540322*/ OPC_CheckChild1Integer, 1, ++/*540324*/ OPC_CheckChild1Type, MVT::i64, ++/*540326*/ OPC_CheckChild2Integer, 1, ++/*540328*/ OPC_CheckChild2Type, MVT::i64, ++/*540330*/ OPC_CheckChild3Integer, 1, ++/*540332*/ OPC_CheckChild3Type, MVT::i64, ++/*540334*/ OPC_CheckType, MVT::v4i64, ++/*540336*/ OPC_MoveParent, ++/*540337*/ OPC_CheckType, MVT::v4i64, ++/*540339*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*540341*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a), LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*540349*/ /*Scope*/ 63, /*->540413*/ ++/*540350*/ OPC_CheckChild0Same, 0, ++/*540352*/ OPC_MoveChild1, ++/*540353*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*540356*/ OPC_CheckChild0Integer, 1, ++/*540358*/ OPC_CheckChild0Type, MVT::i64, ++/*540360*/ OPC_CheckChild1Integer, 1, ++/*540362*/ OPC_CheckChild1Type, MVT::i64, ++/*540364*/ OPC_CheckChild2Integer, 1, ++/*540366*/ OPC_CheckChild2Type, MVT::i64, ++/*540368*/ OPC_CheckChild3Integer, 1, ++/*540370*/ OPC_CheckChild3Type, MVT::i64, ++/*540372*/ OPC_MoveParent, ++/*540373*/ OPC_MoveParent, ++/*540374*/ OPC_CheckChild1Same, 1, ++/*540376*/ OPC_MoveParent, ++/*540377*/ OPC_MoveParent, ++/*540378*/ OPC_MoveChild1, ++/*540379*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*540382*/ OPC_CheckChild0Integer, 1, ++/*540384*/ OPC_CheckChild0Type, MVT::i64, ++/*540386*/ OPC_CheckChild1Integer, 1, ++/*540388*/ OPC_CheckChild1Type, MVT::i64, ++/*540390*/ OPC_CheckChild2Integer, 1, ++/*540392*/ OPC_CheckChild2Type, MVT::i64, ++/*540394*/ OPC_CheckChild3Integer, 1, ++/*540396*/ OPC_CheckChild3Type, MVT::i64, ++/*540398*/ OPC_CheckType, MVT::v4i64, ++/*540400*/ OPC_MoveParent, ++/*540401*/ OPC_CheckType, MVT::v4i64, ++/*540403*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*540405*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*540413*/ /*Scope*/ 63, /*->540477*/ ++/*540414*/ OPC_MoveChild0, ++/*540415*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*540418*/ OPC_CheckChild0Integer, 1, ++/*540420*/ OPC_CheckChild0Type, MVT::i64, ++/*540422*/ OPC_CheckChild1Integer, 1, ++/*540424*/ OPC_CheckChild1Type, MVT::i64, ++/*540426*/ OPC_CheckChild2Integer, 1, ++/*540428*/ OPC_CheckChild2Type, MVT::i64, ++/*540430*/ OPC_CheckChild3Integer, 1, ++/*540432*/ OPC_CheckChild3Type, MVT::i64, ++/*540434*/ OPC_MoveParent, ++/*540435*/ OPC_CheckChild1Same, 1, ++/*540437*/ OPC_MoveParent, ++/*540438*/ OPC_CheckChild1Same, 0, ++/*540440*/ OPC_MoveParent, ++/*540441*/ OPC_MoveParent, ++/*540442*/ OPC_MoveChild1, ++/*540443*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*540446*/ OPC_CheckChild0Integer, 1, ++/*540448*/ OPC_CheckChild0Type, MVT::i64, ++/*540450*/ OPC_CheckChild1Integer, 1, ++/*540452*/ OPC_CheckChild1Type, MVT::i64, ++/*540454*/ OPC_CheckChild2Integer, 1, ++/*540456*/ OPC_CheckChild2Type, MVT::i64, ++/*540458*/ OPC_CheckChild3Integer, 1, ++/*540460*/ OPC_CheckChild3Type, MVT::i64, ++/*540462*/ OPC_CheckType, MVT::v4i64, ++/*540464*/ OPC_MoveParent, ++/*540465*/ OPC_CheckType, MVT::v4i64, ++/*540467*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*540469*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b), LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*540477*/ /*Scope*/ 63, /*->540541*/ ++/*540478*/ OPC_CheckChild0Same, 1, ++/*540480*/ OPC_MoveChild1, ++/*540481*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*540484*/ OPC_CheckChild0Integer, 1, ++/*540486*/ OPC_CheckChild0Type, MVT::i64, ++/*540488*/ OPC_CheckChild1Integer, 1, ++/*540490*/ OPC_CheckChild1Type, MVT::i64, ++/*540492*/ OPC_CheckChild2Integer, 1, ++/*540494*/ OPC_CheckChild2Type, MVT::i64, ++/*540496*/ OPC_CheckChild3Integer, 1, ++/*540498*/ OPC_CheckChild3Type, MVT::i64, ++/*540500*/ OPC_MoveParent, ++/*540501*/ OPC_MoveParent, ++/*540502*/ OPC_CheckChild1Same, 0, ++/*540504*/ OPC_MoveParent, ++/*540505*/ OPC_MoveParent, ++/*540506*/ OPC_MoveChild1, ++/*540507*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*540510*/ OPC_CheckChild0Integer, 1, ++/*540512*/ OPC_CheckChild0Type, MVT::i64, ++/*540514*/ OPC_CheckChild1Integer, 1, ++/*540516*/ OPC_CheckChild1Type, MVT::i64, ++/*540518*/ OPC_CheckChild2Integer, 1, ++/*540520*/ OPC_CheckChild2Type, MVT::i64, ++/*540522*/ OPC_CheckChild3Integer, 1, ++/*540524*/ OPC_CheckChild3Type, MVT::i64, ++/*540526*/ OPC_CheckType, MVT::v4i64, ++/*540528*/ OPC_MoveParent, ++/*540529*/ OPC_CheckType, MVT::v4i64, ++/*540531*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*540533*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*540541*/ /*Scope*/ 63, /*->540605*/ ++/*540542*/ OPC_CheckChild0Same, 0, ++/*540544*/ OPC_CheckChild1Same, 1, ++/*540546*/ OPC_MoveParent, ++/*540547*/ OPC_MoveChild1, ++/*540548*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*540551*/ OPC_CheckChild0Integer, 1, ++/*540553*/ OPC_CheckChild0Type, MVT::i64, ++/*540555*/ OPC_CheckChild1Integer, 1, ++/*540557*/ OPC_CheckChild1Type, MVT::i64, ++/*540559*/ OPC_CheckChild2Integer, 1, ++/*540561*/ OPC_CheckChild2Type, MVT::i64, ++/*540563*/ OPC_CheckChild3Integer, 1, ++/*540565*/ OPC_CheckChild3Type, MVT::i64, ++/*540567*/ OPC_MoveParent, ++/*540568*/ OPC_MoveParent, ++/*540569*/ OPC_MoveParent, ++/*540570*/ OPC_MoveChild1, ++/*540571*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*540574*/ OPC_CheckChild0Integer, 1, ++/*540576*/ OPC_CheckChild0Type, MVT::i64, ++/*540578*/ OPC_CheckChild1Integer, 1, ++/*540580*/ OPC_CheckChild1Type, MVT::i64, ++/*540582*/ OPC_CheckChild2Integer, 1, ++/*540584*/ OPC_CheckChild2Type, MVT::i64, ++/*540586*/ OPC_CheckChild3Integer, 1, ++/*540588*/ OPC_CheckChild3Type, MVT::i64, ++/*540590*/ OPC_CheckType, MVT::v4i64, ++/*540592*/ OPC_MoveParent, ++/*540593*/ OPC_CheckType, MVT::v4i64, ++/*540595*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*540597*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*540605*/ /*Scope*/ 63, /*->540669*/ ++/*540606*/ OPC_CheckChild0Same, 1, ++/*540608*/ OPC_CheckChild1Same, 0, ++/*540610*/ OPC_MoveParent, ++/*540611*/ OPC_MoveChild1, ++/*540612*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*540615*/ OPC_CheckChild0Integer, 1, ++/*540617*/ OPC_CheckChild0Type, MVT::i64, ++/*540619*/ OPC_CheckChild1Integer, 1, ++/*540621*/ OPC_CheckChild1Type, MVT::i64, ++/*540623*/ OPC_CheckChild2Integer, 1, ++/*540625*/ OPC_CheckChild2Type, MVT::i64, ++/*540627*/ OPC_CheckChild3Integer, 1, ++/*540629*/ OPC_CheckChild3Type, MVT::i64, ++/*540631*/ OPC_MoveParent, ++/*540632*/ OPC_MoveParent, ++/*540633*/ OPC_MoveParent, ++/*540634*/ OPC_MoveChild1, ++/*540635*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*540638*/ OPC_CheckChild0Integer, 1, ++/*540640*/ OPC_CheckChild0Type, MVT::i64, ++/*540642*/ OPC_CheckChild1Integer, 1, ++/*540644*/ OPC_CheckChild1Type, MVT::i64, ++/*540646*/ OPC_CheckChild2Integer, 1, ++/*540648*/ OPC_CheckChild2Type, MVT::i64, ++/*540650*/ OPC_CheckChild3Integer, 1, ++/*540652*/ OPC_CheckChild3Type, MVT::i64, ++/*540654*/ OPC_CheckType, MVT::v4i64, ++/*540656*/ OPC_MoveParent, ++/*540657*/ OPC_CheckType, MVT::v4i64, ++/*540659*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*540661*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*540669*/ 0, /*End of Scope*/ ++/*540670*/ /*Scope*/ 4|128,1/*132*/, /*->540804*/ ++/*540672*/ OPC_CheckChild0Same, 1, ++/*540674*/ OPC_MoveChild1, ++/*540675*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*540678*/ OPC_Scope, 61, /*->540741*/ // 2 children in Scope ++/*540680*/ OPC_MoveChild0, ++/*540681*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*540684*/ OPC_CheckChild0Integer, 1, ++/*540686*/ OPC_CheckChild0Type, MVT::i64, ++/*540688*/ OPC_CheckChild1Integer, 1, ++/*540690*/ OPC_CheckChild1Type, MVT::i64, ++/*540692*/ OPC_CheckChild2Integer, 1, ++/*540694*/ OPC_CheckChild2Type, MVT::i64, ++/*540696*/ OPC_CheckChild3Integer, 1, ++/*540698*/ OPC_CheckChild3Type, MVT::i64, ++/*540700*/ OPC_MoveParent, ++/*540701*/ OPC_CheckChild1Same, 0, ++/*540703*/ OPC_MoveParent, ++/*540704*/ OPC_MoveParent, ++/*540705*/ OPC_MoveParent, ++/*540706*/ OPC_MoveChild1, ++/*540707*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*540710*/ OPC_CheckChild0Integer, 1, ++/*540712*/ OPC_CheckChild0Type, MVT::i64, ++/*540714*/ OPC_CheckChild1Integer, 1, ++/*540716*/ OPC_CheckChild1Type, MVT::i64, ++/*540718*/ OPC_CheckChild2Integer, 1, ++/*540720*/ OPC_CheckChild2Type, MVT::i64, ++/*540722*/ OPC_CheckChild3Integer, 1, ++/*540724*/ OPC_CheckChild3Type, MVT::i64, ++/*540726*/ OPC_CheckType, MVT::v4i64, ++/*540728*/ OPC_MoveParent, ++/*540729*/ OPC_CheckType, MVT::v4i64, ++/*540731*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*540733*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*540741*/ /*Scope*/ 61, /*->540803*/ ++/*540742*/ OPC_CheckChild0Same, 0, ++/*540744*/ OPC_MoveChild1, ++/*540745*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*540748*/ OPC_CheckChild0Integer, 1, ++/*540750*/ OPC_CheckChild0Type, MVT::i64, ++/*540752*/ OPC_CheckChild1Integer, 1, ++/*540754*/ OPC_CheckChild1Type, MVT::i64, ++/*540756*/ OPC_CheckChild2Integer, 1, ++/*540758*/ OPC_CheckChild2Type, MVT::i64, ++/*540760*/ OPC_CheckChild3Integer, 1, ++/*540762*/ OPC_CheckChild3Type, MVT::i64, ++/*540764*/ OPC_MoveParent, ++/*540765*/ OPC_MoveParent, ++/*540766*/ OPC_MoveParent, ++/*540767*/ OPC_MoveParent, ++/*540768*/ OPC_MoveChild1, ++/*540769*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*540772*/ OPC_CheckChild0Integer, 1, ++/*540774*/ OPC_CheckChild0Type, MVT::i64, ++/*540776*/ OPC_CheckChild1Integer, 1, ++/*540778*/ OPC_CheckChild1Type, MVT::i64, ++/*540780*/ OPC_CheckChild2Integer, 1, ++/*540782*/ OPC_CheckChild2Type, MVT::i64, ++/*540784*/ OPC_CheckChild3Integer, 1, ++/*540786*/ OPC_CheckChild3Type, MVT::i64, ++/*540788*/ OPC_CheckType, MVT::v4i64, ++/*540790*/ OPC_MoveParent, ++/*540791*/ OPC_CheckType, MVT::v4i64, ++/*540793*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*540795*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*540803*/ 0, /*End of Scope*/ ++/*540804*/ /*Scope*/ 4|128,1/*132*/, /*->540938*/ ++/*540806*/ OPC_CheckChild0Same, 0, ++/*540808*/ OPC_MoveChild1, ++/*540809*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*540812*/ OPC_Scope, 61, /*->540875*/ // 2 children in Scope ++/*540814*/ OPC_MoveChild0, ++/*540815*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*540818*/ OPC_CheckChild0Integer, 1, ++/*540820*/ OPC_CheckChild0Type, MVT::i64, ++/*540822*/ OPC_CheckChild1Integer, 1, ++/*540824*/ OPC_CheckChild1Type, MVT::i64, ++/*540826*/ OPC_CheckChild2Integer, 1, ++/*540828*/ OPC_CheckChild2Type, MVT::i64, ++/*540830*/ OPC_CheckChild3Integer, 1, ++/*540832*/ OPC_CheckChild3Type, MVT::i64, ++/*540834*/ OPC_MoveParent, ++/*540835*/ OPC_CheckChild1Same, 1, ++/*540837*/ OPC_MoveParent, ++/*540838*/ OPC_MoveParent, ++/*540839*/ OPC_MoveParent, ++/*540840*/ OPC_MoveChild1, ++/*540841*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*540844*/ OPC_CheckChild0Integer, 1, ++/*540846*/ OPC_CheckChild0Type, MVT::i64, ++/*540848*/ OPC_CheckChild1Integer, 1, ++/*540850*/ OPC_CheckChild1Type, MVT::i64, ++/*540852*/ OPC_CheckChild2Integer, 1, ++/*540854*/ OPC_CheckChild2Type, MVT::i64, ++/*540856*/ OPC_CheckChild3Integer, 1, ++/*540858*/ OPC_CheckChild3Type, MVT::i64, ++/*540860*/ OPC_CheckType, MVT::v4i64, ++/*540862*/ OPC_MoveParent, ++/*540863*/ OPC_CheckType, MVT::v4i64, ++/*540865*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*540867*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*540875*/ /*Scope*/ 61, /*->540937*/ ++/*540876*/ OPC_CheckChild0Same, 1, ++/*540878*/ OPC_MoveChild1, ++/*540879*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*540882*/ OPC_CheckChild0Integer, 1, ++/*540884*/ OPC_CheckChild0Type, MVT::i64, ++/*540886*/ OPC_CheckChild1Integer, 1, ++/*540888*/ OPC_CheckChild1Type, MVT::i64, ++/*540890*/ OPC_CheckChild2Integer, 1, ++/*540892*/ OPC_CheckChild2Type, MVT::i64, ++/*540894*/ OPC_CheckChild3Integer, 1, ++/*540896*/ OPC_CheckChild3Type, MVT::i64, ++/*540898*/ OPC_MoveParent, ++/*540899*/ OPC_MoveParent, ++/*540900*/ OPC_MoveParent, ++/*540901*/ OPC_MoveParent, ++/*540902*/ OPC_MoveChild1, ++/*540903*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*540906*/ OPC_CheckChild0Integer, 1, ++/*540908*/ OPC_CheckChild0Type, MVT::i64, ++/*540910*/ OPC_CheckChild1Integer, 1, ++/*540912*/ OPC_CheckChild1Type, MVT::i64, ++/*540914*/ OPC_CheckChild2Integer, 1, ++/*540916*/ OPC_CheckChild2Type, MVT::i64, ++/*540918*/ OPC_CheckChild3Integer, 1, ++/*540920*/ OPC_CheckChild3Type, MVT::i64, ++/*540922*/ OPC_CheckType, MVT::v4i64, ++/*540924*/ OPC_MoveParent, ++/*540925*/ OPC_CheckType, MVT::v4i64, ++/*540927*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*540929*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*540937*/ 0, /*End of Scope*/ ++/*540938*/ /*Scope*/ 121|128,3/*505*/, /*->541445*/ ++/*540940*/ OPC_MoveChild0, ++/*540941*/ OPC_SwitchOpcode /*2 cases */, 109, TARGET_VAL(ISD::BUILD_VECTOR),// ->541054 ++/*540945*/ OPC_CheckChild0Integer, 1, ++/*540947*/ OPC_CheckChild0Type, MVT::i64, ++/*540949*/ OPC_CheckChild1Integer, 1, ++/*540951*/ OPC_CheckChild1Type, MVT::i64, ++/*540953*/ OPC_CheckChild2Integer, 1, ++/*540955*/ OPC_CheckChild2Type, MVT::i64, ++/*540957*/ OPC_CheckChild3Integer, 1, ++/*540959*/ OPC_CheckChild3Type, MVT::i64, ++/*540961*/ OPC_MoveParent, ++/*540962*/ OPC_MoveChild1, ++/*540963*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*540966*/ OPC_Scope, 42, /*->541010*/ // 2 children in Scope ++/*540968*/ OPC_CheckChild0Same, 0, ++/*540970*/ OPC_CheckChild1Same, 1, ++/*540972*/ OPC_MoveParent, ++/*540973*/ OPC_MoveParent, ++/*540974*/ OPC_MoveParent, ++/*540975*/ OPC_MoveChild1, ++/*540976*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*540979*/ OPC_CheckChild0Integer, 1, ++/*540981*/ OPC_CheckChild0Type, MVT::i64, ++/*540983*/ OPC_CheckChild1Integer, 1, ++/*540985*/ OPC_CheckChild1Type, MVT::i64, ++/*540987*/ OPC_CheckChild2Integer, 1, ++/*540989*/ OPC_CheckChild2Type, MVT::i64, ++/*540991*/ OPC_CheckChild3Integer, 1, ++/*540993*/ OPC_CheckChild3Type, MVT::i64, ++/*540995*/ OPC_CheckType, MVT::v4i64, ++/*540997*/ OPC_MoveParent, ++/*540998*/ OPC_CheckType, MVT::v4i64, ++/*541000*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*541002*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*541010*/ /*Scope*/ 42, /*->541053*/ ++/*541011*/ OPC_CheckChild0Same, 1, ++/*541013*/ OPC_CheckChild1Same, 0, ++/*541015*/ OPC_MoveParent, ++/*541016*/ OPC_MoveParent, ++/*541017*/ OPC_MoveParent, ++/*541018*/ OPC_MoveChild1, ++/*541019*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*541022*/ OPC_CheckChild0Integer, 1, ++/*541024*/ OPC_CheckChild0Type, MVT::i64, ++/*541026*/ OPC_CheckChild1Integer, 1, ++/*541028*/ OPC_CheckChild1Type, MVT::i64, ++/*541030*/ OPC_CheckChild2Integer, 1, ++/*541032*/ OPC_CheckChild2Type, MVT::i64, ++/*541034*/ OPC_CheckChild3Integer, 1, ++/*541036*/ OPC_CheckChild3Type, MVT::i64, ++/*541038*/ OPC_CheckType, MVT::v4i64, ++/*541040*/ OPC_MoveParent, ++/*541041*/ OPC_CheckType, MVT::v4i64, ++/*541043*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*541045*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*541053*/ 0, /*End of Scope*/ ++/*541054*/ /*SwitchOpcode*/ 2|128,3/*386*/, TARGET_VAL(ISD::ADD),// ->541444 ++/*541058*/ OPC_Scope, 63, /*->541123*/ // 6 children in Scope ++/*541060*/ OPC_MoveChild0, ++/*541061*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*541064*/ OPC_CheckChild0Integer, 1, ++/*541066*/ OPC_CheckChild0Type, MVT::i64, ++/*541068*/ OPC_CheckChild1Integer, 1, ++/*541070*/ OPC_CheckChild1Type, MVT::i64, ++/*541072*/ OPC_CheckChild2Integer, 1, ++/*541074*/ OPC_CheckChild2Type, MVT::i64, ++/*541076*/ OPC_CheckChild3Integer, 1, ++/*541078*/ OPC_CheckChild3Type, MVT::i64, ++/*541080*/ OPC_MoveParent, ++/*541081*/ OPC_CheckChild1Same, 1, ++/*541083*/ OPC_MoveParent, ++/*541084*/ OPC_CheckChild1Same, 0, ++/*541086*/ OPC_MoveParent, ++/*541087*/ OPC_MoveParent, ++/*541088*/ OPC_MoveChild1, ++/*541089*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*541092*/ OPC_CheckChild0Integer, 1, ++/*541094*/ OPC_CheckChild0Type, MVT::i64, ++/*541096*/ OPC_CheckChild1Integer, 1, ++/*541098*/ OPC_CheckChild1Type, MVT::i64, ++/*541100*/ OPC_CheckChild2Integer, 1, ++/*541102*/ OPC_CheckChild2Type, MVT::i64, ++/*541104*/ OPC_CheckChild3Integer, 1, ++/*541106*/ OPC_CheckChild3Type, MVT::i64, ++/*541108*/ OPC_CheckType, MVT::v4i64, ++/*541110*/ OPC_MoveParent, ++/*541111*/ OPC_CheckType, MVT::v4i64, ++/*541113*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*541115*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a), LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*541123*/ /*Scope*/ 63, /*->541187*/ ++/*541124*/ OPC_CheckChild0Same, 1, ++/*541126*/ OPC_MoveChild1, ++/*541127*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*541130*/ OPC_CheckChild0Integer, 1, ++/*541132*/ OPC_CheckChild0Type, MVT::i64, ++/*541134*/ OPC_CheckChild1Integer, 1, ++/*541136*/ OPC_CheckChild1Type, MVT::i64, ++/*541138*/ OPC_CheckChild2Integer, 1, ++/*541140*/ OPC_CheckChild2Type, MVT::i64, ++/*541142*/ OPC_CheckChild3Integer, 1, ++/*541144*/ OPC_CheckChild3Type, MVT::i64, ++/*541146*/ OPC_MoveParent, ++/*541147*/ OPC_MoveParent, ++/*541148*/ OPC_CheckChild1Same, 0, ++/*541150*/ OPC_MoveParent, ++/*541151*/ OPC_MoveParent, ++/*541152*/ OPC_MoveChild1, ++/*541153*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*541156*/ OPC_CheckChild0Integer, 1, ++/*541158*/ OPC_CheckChild0Type, MVT::i64, ++/*541160*/ OPC_CheckChild1Integer, 1, ++/*541162*/ OPC_CheckChild1Type, MVT::i64, ++/*541164*/ OPC_CheckChild2Integer, 1, ++/*541166*/ OPC_CheckChild2Type, MVT::i64, ++/*541168*/ OPC_CheckChild3Integer, 1, ++/*541170*/ OPC_CheckChild3Type, MVT::i64, ++/*541172*/ OPC_CheckType, MVT::v4i64, ++/*541174*/ OPC_MoveParent, ++/*541175*/ OPC_CheckType, MVT::v4i64, ++/*541177*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*541179*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*541187*/ /*Scope*/ 63, /*->541251*/ ++/*541188*/ OPC_MoveChild0, ++/*541189*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*541192*/ OPC_CheckChild0Integer, 1, ++/*541194*/ OPC_CheckChild0Type, MVT::i64, ++/*541196*/ OPC_CheckChild1Integer, 1, ++/*541198*/ OPC_CheckChild1Type, MVT::i64, ++/*541200*/ OPC_CheckChild2Integer, 1, ++/*541202*/ OPC_CheckChild2Type, MVT::i64, ++/*541204*/ OPC_CheckChild3Integer, 1, ++/*541206*/ OPC_CheckChild3Type, MVT::i64, ++/*541208*/ OPC_MoveParent, ++/*541209*/ OPC_CheckChild1Same, 0, ++/*541211*/ OPC_MoveParent, ++/*541212*/ OPC_CheckChild1Same, 1, ++/*541214*/ OPC_MoveParent, ++/*541215*/ OPC_MoveParent, ++/*541216*/ OPC_MoveChild1, ++/*541217*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*541220*/ OPC_CheckChild0Integer, 1, ++/*541222*/ OPC_CheckChild0Type, MVT::i64, ++/*541224*/ OPC_CheckChild1Integer, 1, ++/*541226*/ OPC_CheckChild1Type, MVT::i64, ++/*541228*/ OPC_CheckChild2Integer, 1, ++/*541230*/ OPC_CheckChild2Type, MVT::i64, ++/*541232*/ OPC_CheckChild3Integer, 1, ++/*541234*/ OPC_CheckChild3Type, MVT::i64, ++/*541236*/ OPC_CheckType, MVT::v4i64, ++/*541238*/ OPC_MoveParent, ++/*541239*/ OPC_CheckType, MVT::v4i64, ++/*541241*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*541243*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b), LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*541251*/ /*Scope*/ 63, /*->541315*/ ++/*541252*/ OPC_CheckChild0Same, 0, ++/*541254*/ OPC_MoveChild1, ++/*541255*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*541258*/ OPC_CheckChild0Integer, 1, ++/*541260*/ OPC_CheckChild0Type, MVT::i64, ++/*541262*/ OPC_CheckChild1Integer, 1, ++/*541264*/ OPC_CheckChild1Type, MVT::i64, ++/*541266*/ OPC_CheckChild2Integer, 1, ++/*541268*/ OPC_CheckChild2Type, MVT::i64, ++/*541270*/ OPC_CheckChild3Integer, 1, ++/*541272*/ OPC_CheckChild3Type, MVT::i64, ++/*541274*/ OPC_MoveParent, ++/*541275*/ OPC_MoveParent, ++/*541276*/ OPC_CheckChild1Same, 1, ++/*541278*/ OPC_MoveParent, ++/*541279*/ OPC_MoveParent, ++/*541280*/ OPC_MoveChild1, ++/*541281*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*541284*/ OPC_CheckChild0Integer, 1, ++/*541286*/ OPC_CheckChild0Type, MVT::i64, ++/*541288*/ OPC_CheckChild1Integer, 1, ++/*541290*/ OPC_CheckChild1Type, MVT::i64, ++/*541292*/ OPC_CheckChild2Integer, 1, ++/*541294*/ OPC_CheckChild2Type, MVT::i64, ++/*541296*/ OPC_CheckChild3Integer, 1, ++/*541298*/ OPC_CheckChild3Type, MVT::i64, ++/*541300*/ OPC_CheckType, MVT::v4i64, ++/*541302*/ OPC_MoveParent, ++/*541303*/ OPC_CheckType, MVT::v4i64, ++/*541305*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*541307*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*541315*/ /*Scope*/ 63, /*->541379*/ ++/*541316*/ OPC_CheckChild0Same, 1, ++/*541318*/ OPC_CheckChild1Same, 0, ++/*541320*/ OPC_MoveParent, ++/*541321*/ OPC_MoveChild1, ++/*541322*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*541325*/ OPC_CheckChild0Integer, 1, ++/*541327*/ OPC_CheckChild0Type, MVT::i64, ++/*541329*/ OPC_CheckChild1Integer, 1, ++/*541331*/ OPC_CheckChild1Type, MVT::i64, ++/*541333*/ OPC_CheckChild2Integer, 1, ++/*541335*/ OPC_CheckChild2Type, MVT::i64, ++/*541337*/ OPC_CheckChild3Integer, 1, ++/*541339*/ OPC_CheckChild3Type, MVT::i64, ++/*541341*/ OPC_MoveParent, ++/*541342*/ OPC_MoveParent, ++/*541343*/ OPC_MoveParent, ++/*541344*/ OPC_MoveChild1, ++/*541345*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*541348*/ OPC_CheckChild0Integer, 1, ++/*541350*/ OPC_CheckChild0Type, MVT::i64, ++/*541352*/ OPC_CheckChild1Integer, 1, ++/*541354*/ OPC_CheckChild1Type, MVT::i64, ++/*541356*/ OPC_CheckChild2Integer, 1, ++/*541358*/ OPC_CheckChild2Type, MVT::i64, ++/*541360*/ OPC_CheckChild3Integer, 1, ++/*541362*/ OPC_CheckChild3Type, MVT::i64, ++/*541364*/ OPC_CheckType, MVT::v4i64, ++/*541366*/ OPC_MoveParent, ++/*541367*/ OPC_CheckType, MVT::v4i64, ++/*541369*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*541371*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*541379*/ /*Scope*/ 63, /*->541443*/ ++/*541380*/ OPC_CheckChild0Same, 0, ++/*541382*/ OPC_CheckChild1Same, 1, ++/*541384*/ OPC_MoveParent, ++/*541385*/ OPC_MoveChild1, ++/*541386*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*541389*/ OPC_CheckChild0Integer, 1, ++/*541391*/ OPC_CheckChild0Type, MVT::i64, ++/*541393*/ OPC_CheckChild1Integer, 1, ++/*541395*/ OPC_CheckChild1Type, MVT::i64, ++/*541397*/ OPC_CheckChild2Integer, 1, ++/*541399*/ OPC_CheckChild2Type, MVT::i64, ++/*541401*/ OPC_CheckChild3Integer, 1, ++/*541403*/ OPC_CheckChild3Type, MVT::i64, ++/*541405*/ OPC_MoveParent, ++/*541406*/ OPC_MoveParent, ++/*541407*/ OPC_MoveParent, ++/*541408*/ OPC_MoveChild1, ++/*541409*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*541412*/ OPC_CheckChild0Integer, 1, ++/*541414*/ OPC_CheckChild0Type, MVT::i64, ++/*541416*/ OPC_CheckChild1Integer, 1, ++/*541418*/ OPC_CheckChild1Type, MVT::i64, ++/*541420*/ OPC_CheckChild2Integer, 1, ++/*541422*/ OPC_CheckChild2Type, MVT::i64, ++/*541424*/ OPC_CheckChild3Integer, 1, ++/*541426*/ OPC_CheckChild3Type, MVT::i64, ++/*541428*/ OPC_CheckType, MVT::v4i64, ++/*541430*/ OPC_MoveParent, ++/*541431*/ OPC_CheckType, MVT::v4i64, ++/*541433*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*541435*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*541443*/ 0, /*End of Scope*/ ++/*541444*/ 0, // EndSwitchOpcode ++/*541445*/ /*Scope*/ 4|128,1/*132*/, /*->541579*/ ++/*541447*/ OPC_CheckChild0Same, 0, ++/*541449*/ OPC_MoveChild1, ++/*541450*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*541453*/ OPC_Scope, 61, /*->541516*/ // 2 children in Scope ++/*541455*/ OPC_MoveChild0, ++/*541456*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*541459*/ OPC_CheckChild0Integer, 1, ++/*541461*/ OPC_CheckChild0Type, MVT::i64, ++/*541463*/ OPC_CheckChild1Integer, 1, ++/*541465*/ OPC_CheckChild1Type, MVT::i64, ++/*541467*/ OPC_CheckChild2Integer, 1, ++/*541469*/ OPC_CheckChild2Type, MVT::i64, ++/*541471*/ OPC_CheckChild3Integer, 1, ++/*541473*/ OPC_CheckChild3Type, MVT::i64, ++/*541475*/ OPC_MoveParent, ++/*541476*/ OPC_CheckChild1Same, 1, ++/*541478*/ OPC_MoveParent, ++/*541479*/ OPC_MoveParent, ++/*541480*/ OPC_MoveParent, ++/*541481*/ OPC_MoveChild1, ++/*541482*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*541485*/ OPC_CheckChild0Integer, 1, ++/*541487*/ OPC_CheckChild0Type, MVT::i64, ++/*541489*/ OPC_CheckChild1Integer, 1, ++/*541491*/ OPC_CheckChild1Type, MVT::i64, ++/*541493*/ OPC_CheckChild2Integer, 1, ++/*541495*/ OPC_CheckChild2Type, MVT::i64, ++/*541497*/ OPC_CheckChild3Integer, 1, ++/*541499*/ OPC_CheckChild3Type, MVT::i64, ++/*541501*/ OPC_CheckType, MVT::v4i64, ++/*541503*/ OPC_MoveParent, ++/*541504*/ OPC_CheckType, MVT::v4i64, ++/*541506*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*541508*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*541516*/ /*Scope*/ 61, /*->541578*/ ++/*541517*/ OPC_CheckChild0Same, 1, ++/*541519*/ OPC_MoveChild1, ++/*541520*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*541523*/ OPC_CheckChild0Integer, 1, ++/*541525*/ OPC_CheckChild0Type, MVT::i64, ++/*541527*/ OPC_CheckChild1Integer, 1, ++/*541529*/ OPC_CheckChild1Type, MVT::i64, ++/*541531*/ OPC_CheckChild2Integer, 1, ++/*541533*/ OPC_CheckChild2Type, MVT::i64, ++/*541535*/ OPC_CheckChild3Integer, 1, ++/*541537*/ OPC_CheckChild3Type, MVT::i64, ++/*541539*/ OPC_MoveParent, ++/*541540*/ OPC_MoveParent, ++/*541541*/ OPC_MoveParent, ++/*541542*/ OPC_MoveParent, ++/*541543*/ OPC_MoveChild1, ++/*541544*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*541547*/ OPC_CheckChild0Integer, 1, ++/*541549*/ OPC_CheckChild0Type, MVT::i64, ++/*541551*/ OPC_CheckChild1Integer, 1, ++/*541553*/ OPC_CheckChild1Type, MVT::i64, ++/*541555*/ OPC_CheckChild2Integer, 1, ++/*541557*/ OPC_CheckChild2Type, MVT::i64, ++/*541559*/ OPC_CheckChild3Integer, 1, ++/*541561*/ OPC_CheckChild3Type, MVT::i64, ++/*541563*/ OPC_CheckType, MVT::v4i64, ++/*541565*/ OPC_MoveParent, ++/*541566*/ OPC_CheckType, MVT::v4i64, ++/*541568*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*541570*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*541578*/ 0, /*End of Scope*/ ++/*541579*/ /*Scope*/ 4|128,1/*132*/, /*->541713*/ ++/*541581*/ OPC_CheckChild0Same, 1, ++/*541583*/ OPC_MoveChild1, ++/*541584*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*541587*/ OPC_Scope, 61, /*->541650*/ // 2 children in Scope ++/*541589*/ OPC_MoveChild0, ++/*541590*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*541593*/ OPC_CheckChild0Integer, 1, ++/*541595*/ OPC_CheckChild0Type, MVT::i64, ++/*541597*/ OPC_CheckChild1Integer, 1, ++/*541599*/ OPC_CheckChild1Type, MVT::i64, ++/*541601*/ OPC_CheckChild2Integer, 1, ++/*541603*/ OPC_CheckChild2Type, MVT::i64, ++/*541605*/ OPC_CheckChild3Integer, 1, ++/*541607*/ OPC_CheckChild3Type, MVT::i64, ++/*541609*/ OPC_MoveParent, ++/*541610*/ OPC_CheckChild1Same, 0, ++/*541612*/ OPC_MoveParent, ++/*541613*/ OPC_MoveParent, ++/*541614*/ OPC_MoveParent, ++/*541615*/ OPC_MoveChild1, ++/*541616*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*541619*/ OPC_CheckChild0Integer, 1, ++/*541621*/ OPC_CheckChild0Type, MVT::i64, ++/*541623*/ OPC_CheckChild1Integer, 1, ++/*541625*/ OPC_CheckChild1Type, MVT::i64, ++/*541627*/ OPC_CheckChild2Integer, 1, ++/*541629*/ OPC_CheckChild2Type, MVT::i64, ++/*541631*/ OPC_CheckChild3Integer, 1, ++/*541633*/ OPC_CheckChild3Type, MVT::i64, ++/*541635*/ OPC_CheckType, MVT::v4i64, ++/*541637*/ OPC_MoveParent, ++/*541638*/ OPC_CheckType, MVT::v4i64, ++/*541640*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*541642*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*541650*/ /*Scope*/ 61, /*->541712*/ ++/*541651*/ OPC_CheckChild0Same, 0, ++/*541653*/ OPC_MoveChild1, ++/*541654*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*541657*/ OPC_CheckChild0Integer, 1, ++/*541659*/ OPC_CheckChild0Type, MVT::i64, ++/*541661*/ OPC_CheckChild1Integer, 1, ++/*541663*/ OPC_CheckChild1Type, MVT::i64, ++/*541665*/ OPC_CheckChild2Integer, 1, ++/*541667*/ OPC_CheckChild2Type, MVT::i64, ++/*541669*/ OPC_CheckChild3Integer, 1, ++/*541671*/ OPC_CheckChild3Type, MVT::i64, ++/*541673*/ OPC_MoveParent, ++/*541674*/ OPC_MoveParent, ++/*541675*/ OPC_MoveParent, ++/*541676*/ OPC_MoveParent, ++/*541677*/ OPC_MoveChild1, ++/*541678*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*541681*/ OPC_CheckChild0Integer, 1, ++/*541683*/ OPC_CheckChild0Type, MVT::i64, ++/*541685*/ OPC_CheckChild1Integer, 1, ++/*541687*/ OPC_CheckChild1Type, MVT::i64, ++/*541689*/ OPC_CheckChild2Integer, 1, ++/*541691*/ OPC_CheckChild2Type, MVT::i64, ++/*541693*/ OPC_CheckChild3Integer, 1, ++/*541695*/ OPC_CheckChild3Type, MVT::i64, ++/*541697*/ OPC_CheckType, MVT::v4i64, ++/*541699*/ OPC_MoveParent, ++/*541700*/ OPC_CheckType, MVT::v4i64, ++/*541702*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*541704*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*541712*/ 0, /*End of Scope*/ ++/*541713*/ /*Scope*/ 113, /*->541827*/ ++/*541714*/ OPC_MoveChild0, ++/*541715*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*541718*/ OPC_CheckChild0Integer, 1, ++/*541720*/ OPC_CheckChild0Type, MVT::i64, ++/*541722*/ OPC_CheckChild1Integer, 1, ++/*541724*/ OPC_CheckChild1Type, MVT::i64, ++/*541726*/ OPC_CheckChild2Integer, 1, ++/*541728*/ OPC_CheckChild2Type, MVT::i64, ++/*541730*/ OPC_CheckChild3Integer, 1, ++/*541732*/ OPC_CheckChild3Type, MVT::i64, ++/*541734*/ OPC_MoveParent, ++/*541735*/ OPC_MoveChild1, ++/*541736*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*541739*/ OPC_Scope, 42, /*->541783*/ // 2 children in Scope ++/*541741*/ OPC_CheckChild0Same, 1, ++/*541743*/ OPC_CheckChild1Same, 0, ++/*541745*/ OPC_MoveParent, ++/*541746*/ OPC_MoveParent, ++/*541747*/ OPC_MoveParent, ++/*541748*/ OPC_MoveChild1, ++/*541749*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*541752*/ OPC_CheckChild0Integer, 1, ++/*541754*/ OPC_CheckChild0Type, MVT::i64, ++/*541756*/ OPC_CheckChild1Integer, 1, ++/*541758*/ OPC_CheckChild1Type, MVT::i64, ++/*541760*/ OPC_CheckChild2Integer, 1, ++/*541762*/ OPC_CheckChild2Type, MVT::i64, ++/*541764*/ OPC_CheckChild3Integer, 1, ++/*541766*/ OPC_CheckChild3Type, MVT::i64, ++/*541768*/ OPC_CheckType, MVT::v4i64, ++/*541770*/ OPC_MoveParent, ++/*541771*/ OPC_CheckType, MVT::v4i64, ++/*541773*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*541775*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*541783*/ /*Scope*/ 42, /*->541826*/ ++/*541784*/ OPC_CheckChild0Same, 0, ++/*541786*/ OPC_CheckChild1Same, 1, ++/*541788*/ OPC_MoveParent, ++/*541789*/ OPC_MoveParent, ++/*541790*/ OPC_MoveParent, ++/*541791*/ OPC_MoveChild1, ++/*541792*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*541795*/ OPC_CheckChild0Integer, 1, ++/*541797*/ OPC_CheckChild0Type, MVT::i64, ++/*541799*/ OPC_CheckChild1Integer, 1, ++/*541801*/ OPC_CheckChild1Type, MVT::i64, ++/*541803*/ OPC_CheckChild2Integer, 1, ++/*541805*/ OPC_CheckChild2Type, MVT::i64, ++/*541807*/ OPC_CheckChild3Integer, 1, ++/*541809*/ OPC_CheckChild3Type, MVT::i64, ++/*541811*/ OPC_CheckType, MVT::v4i64, ++/*541813*/ OPC_MoveParent, ++/*541814*/ OPC_CheckType, MVT::v4i64, ++/*541816*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*541818*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*541826*/ 0, /*End of Scope*/ ++/*541827*/ 0, /*End of Scope*/ ++/*541828*/ 0, /*End of Scope*/ ++/*541829*/ 0, /*End of Scope*/ ++/*541830*/ 0, // EndSwitchOpcode ++/*541831*/ /*Scope*/ 127|128,25/*3327*/, /*->545160*/ ++/*541833*/ OPC_RecordChild0, // #0 = $b ++/*541834*/ OPC_MoveChild1, ++/*541835*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*541838*/ OPC_Scope, 60|128,6/*828*/, /*->542669*/ // 4 children in Scope ++/*541841*/ OPC_MoveChild0, ++/*541842*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*541845*/ OPC_CheckChild0Integer, 1, ++/*541847*/ OPC_CheckChild0Type, MVT::i64, ++/*541849*/ OPC_CheckChild1Integer, 1, ++/*541851*/ OPC_CheckChild1Type, MVT::i64, ++/*541853*/ OPC_CheckChild2Integer, 1, ++/*541855*/ OPC_CheckChild2Type, MVT::i64, ++/*541857*/ OPC_CheckChild3Integer, 1, ++/*541859*/ OPC_CheckChild3Type, MVT::i64, ++/*541861*/ OPC_MoveParent, ++/*541862*/ OPC_RecordChild1, // #1 = $a ++/*541863*/ OPC_MoveParent, ++/*541864*/ OPC_MoveParent, ++/*541865*/ OPC_MoveChild1, ++/*541866*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*541869*/ OPC_CheckChild0Integer, 63, ++/*541871*/ OPC_CheckChild0Type, MVT::i64, ++/*541873*/ OPC_CheckChild1Integer, 63, ++/*541875*/ OPC_CheckChild1Type, MVT::i64, ++/*541877*/ OPC_CheckChild2Integer, 63, ++/*541879*/ OPC_CheckChild2Type, MVT::i64, ++/*541881*/ OPC_CheckChild3Integer, 63, ++/*541883*/ OPC_CheckChild3Type, MVT::i64, ++/*541885*/ OPC_CheckType, MVT::v4i64, ++/*541887*/ OPC_MoveParent, ++/*541888*/ OPC_MoveParent, ++/*541889*/ OPC_MoveChild1, ++/*541890*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*541893*/ OPC_Scope, 6|128,3/*390*/, /*->542286*/ // 4 children in Scope ++/*541896*/ OPC_MoveChild0, ++/*541897*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*541900*/ OPC_Scope, 63, /*->541965*/ // 6 children in Scope ++/*541902*/ OPC_MoveChild0, ++/*541903*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*541906*/ OPC_CheckChild0Integer, 1, ++/*541908*/ OPC_CheckChild0Type, MVT::i64, ++/*541910*/ OPC_CheckChild1Integer, 1, ++/*541912*/ OPC_CheckChild1Type, MVT::i64, ++/*541914*/ OPC_CheckChild2Integer, 1, ++/*541916*/ OPC_CheckChild2Type, MVT::i64, ++/*541918*/ OPC_CheckChild3Integer, 1, ++/*541920*/ OPC_CheckChild3Type, MVT::i64, ++/*541922*/ OPC_MoveParent, ++/*541923*/ OPC_CheckChild1Same, 1, ++/*541925*/ OPC_MoveParent, ++/*541926*/ OPC_CheckChild1Same, 0, ++/*541928*/ OPC_MoveParent, ++/*541929*/ OPC_MoveParent, ++/*541930*/ OPC_MoveChild1, ++/*541931*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*541934*/ OPC_CheckChild0Integer, 1, ++/*541936*/ OPC_CheckChild0Type, MVT::i64, ++/*541938*/ OPC_CheckChild1Integer, 1, ++/*541940*/ OPC_CheckChild1Type, MVT::i64, ++/*541942*/ OPC_CheckChild2Integer, 1, ++/*541944*/ OPC_CheckChild2Type, MVT::i64, ++/*541946*/ OPC_CheckChild3Integer, 1, ++/*541948*/ OPC_CheckChild3Type, MVT::i64, ++/*541950*/ OPC_CheckType, MVT::v4i64, ++/*541952*/ OPC_MoveParent, ++/*541953*/ OPC_CheckType, MVT::v4i64, ++/*541955*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*541957*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a), LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*541965*/ /*Scope*/ 63, /*->542029*/ ++/*541966*/ OPC_CheckChild0Same, 1, ++/*541968*/ OPC_MoveChild1, ++/*541969*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*541972*/ OPC_CheckChild0Integer, 1, ++/*541974*/ OPC_CheckChild0Type, MVT::i64, ++/*541976*/ OPC_CheckChild1Integer, 1, ++/*541978*/ OPC_CheckChild1Type, MVT::i64, ++/*541980*/ OPC_CheckChild2Integer, 1, ++/*541982*/ OPC_CheckChild2Type, MVT::i64, ++/*541984*/ OPC_CheckChild3Integer, 1, ++/*541986*/ OPC_CheckChild3Type, MVT::i64, ++/*541988*/ OPC_MoveParent, ++/*541989*/ OPC_MoveParent, ++/*541990*/ OPC_CheckChild1Same, 0, ++/*541992*/ OPC_MoveParent, ++/*541993*/ OPC_MoveParent, ++/*541994*/ OPC_MoveChild1, ++/*541995*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*541998*/ OPC_CheckChild0Integer, 1, ++/*542000*/ OPC_CheckChild0Type, MVT::i64, ++/*542002*/ OPC_CheckChild1Integer, 1, ++/*542004*/ OPC_CheckChild1Type, MVT::i64, ++/*542006*/ OPC_CheckChild2Integer, 1, ++/*542008*/ OPC_CheckChild2Type, MVT::i64, ++/*542010*/ OPC_CheckChild3Integer, 1, ++/*542012*/ OPC_CheckChild3Type, MVT::i64, ++/*542014*/ OPC_CheckType, MVT::v4i64, ++/*542016*/ OPC_MoveParent, ++/*542017*/ OPC_CheckType, MVT::v4i64, ++/*542019*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*542021*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*542029*/ /*Scope*/ 63, /*->542093*/ ++/*542030*/ OPC_MoveChild0, ++/*542031*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*542034*/ OPC_CheckChild0Integer, 1, ++/*542036*/ OPC_CheckChild0Type, MVT::i64, ++/*542038*/ OPC_CheckChild1Integer, 1, ++/*542040*/ OPC_CheckChild1Type, MVT::i64, ++/*542042*/ OPC_CheckChild2Integer, 1, ++/*542044*/ OPC_CheckChild2Type, MVT::i64, ++/*542046*/ OPC_CheckChild3Integer, 1, ++/*542048*/ OPC_CheckChild3Type, MVT::i64, ++/*542050*/ OPC_MoveParent, ++/*542051*/ OPC_CheckChild1Same, 0, ++/*542053*/ OPC_MoveParent, ++/*542054*/ OPC_CheckChild1Same, 1, ++/*542056*/ OPC_MoveParent, ++/*542057*/ OPC_MoveParent, ++/*542058*/ OPC_MoveChild1, ++/*542059*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*542062*/ OPC_CheckChild0Integer, 1, ++/*542064*/ OPC_CheckChild0Type, MVT::i64, ++/*542066*/ OPC_CheckChild1Integer, 1, ++/*542068*/ OPC_CheckChild1Type, MVT::i64, ++/*542070*/ OPC_CheckChild2Integer, 1, ++/*542072*/ OPC_CheckChild2Type, MVT::i64, ++/*542074*/ OPC_CheckChild3Integer, 1, ++/*542076*/ OPC_CheckChild3Type, MVT::i64, ++/*542078*/ OPC_CheckType, MVT::v4i64, ++/*542080*/ OPC_MoveParent, ++/*542081*/ OPC_CheckType, MVT::v4i64, ++/*542083*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*542085*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b), LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*542093*/ /*Scope*/ 63, /*->542157*/ ++/*542094*/ OPC_CheckChild0Same, 0, ++/*542096*/ OPC_MoveChild1, ++/*542097*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*542100*/ OPC_CheckChild0Integer, 1, ++/*542102*/ OPC_CheckChild0Type, MVT::i64, ++/*542104*/ OPC_CheckChild1Integer, 1, ++/*542106*/ OPC_CheckChild1Type, MVT::i64, ++/*542108*/ OPC_CheckChild2Integer, 1, ++/*542110*/ OPC_CheckChild2Type, MVT::i64, ++/*542112*/ OPC_CheckChild3Integer, 1, ++/*542114*/ OPC_CheckChild3Type, MVT::i64, ++/*542116*/ OPC_MoveParent, ++/*542117*/ OPC_MoveParent, ++/*542118*/ OPC_CheckChild1Same, 1, ++/*542120*/ OPC_MoveParent, ++/*542121*/ OPC_MoveParent, ++/*542122*/ OPC_MoveChild1, ++/*542123*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*542126*/ OPC_CheckChild0Integer, 1, ++/*542128*/ OPC_CheckChild0Type, MVT::i64, ++/*542130*/ OPC_CheckChild1Integer, 1, ++/*542132*/ OPC_CheckChild1Type, MVT::i64, ++/*542134*/ OPC_CheckChild2Integer, 1, ++/*542136*/ OPC_CheckChild2Type, MVT::i64, ++/*542138*/ OPC_CheckChild3Integer, 1, ++/*542140*/ OPC_CheckChild3Type, MVT::i64, ++/*542142*/ OPC_CheckType, MVT::v4i64, ++/*542144*/ OPC_MoveParent, ++/*542145*/ OPC_CheckType, MVT::v4i64, ++/*542147*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*542149*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*542157*/ /*Scope*/ 63, /*->542221*/ ++/*542158*/ OPC_CheckChild0Same, 1, ++/*542160*/ OPC_CheckChild1Same, 0, ++/*542162*/ OPC_MoveParent, ++/*542163*/ OPC_MoveChild1, ++/*542164*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*542167*/ OPC_CheckChild0Integer, 1, ++/*542169*/ OPC_CheckChild0Type, MVT::i64, ++/*542171*/ OPC_CheckChild1Integer, 1, ++/*542173*/ OPC_CheckChild1Type, MVT::i64, ++/*542175*/ OPC_CheckChild2Integer, 1, ++/*542177*/ OPC_CheckChild2Type, MVT::i64, ++/*542179*/ OPC_CheckChild3Integer, 1, ++/*542181*/ OPC_CheckChild3Type, MVT::i64, ++/*542183*/ OPC_MoveParent, ++/*542184*/ OPC_MoveParent, ++/*542185*/ OPC_MoveParent, ++/*542186*/ OPC_MoveChild1, ++/*542187*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*542190*/ OPC_CheckChild0Integer, 1, ++/*542192*/ OPC_CheckChild0Type, MVT::i64, ++/*542194*/ OPC_CheckChild1Integer, 1, ++/*542196*/ OPC_CheckChild1Type, MVT::i64, ++/*542198*/ OPC_CheckChild2Integer, 1, ++/*542200*/ OPC_CheckChild2Type, MVT::i64, ++/*542202*/ OPC_CheckChild3Integer, 1, ++/*542204*/ OPC_CheckChild3Type, MVT::i64, ++/*542206*/ OPC_CheckType, MVT::v4i64, ++/*542208*/ OPC_MoveParent, ++/*542209*/ OPC_CheckType, MVT::v4i64, ++/*542211*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*542213*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*542221*/ /*Scope*/ 63, /*->542285*/ ++/*542222*/ OPC_CheckChild0Same, 0, ++/*542224*/ OPC_CheckChild1Same, 1, ++/*542226*/ OPC_MoveParent, ++/*542227*/ OPC_MoveChild1, ++/*542228*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*542231*/ OPC_CheckChild0Integer, 1, ++/*542233*/ OPC_CheckChild0Type, MVT::i64, ++/*542235*/ OPC_CheckChild1Integer, 1, ++/*542237*/ OPC_CheckChild1Type, MVT::i64, ++/*542239*/ OPC_CheckChild2Integer, 1, ++/*542241*/ OPC_CheckChild2Type, MVT::i64, ++/*542243*/ OPC_CheckChild3Integer, 1, ++/*542245*/ OPC_CheckChild3Type, MVT::i64, ++/*542247*/ OPC_MoveParent, ++/*542248*/ OPC_MoveParent, ++/*542249*/ OPC_MoveParent, ++/*542250*/ OPC_MoveChild1, ++/*542251*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*542254*/ OPC_CheckChild0Integer, 1, ++/*542256*/ OPC_CheckChild0Type, MVT::i64, ++/*542258*/ OPC_CheckChild1Integer, 1, ++/*542260*/ OPC_CheckChild1Type, MVT::i64, ++/*542262*/ OPC_CheckChild2Integer, 1, ++/*542264*/ OPC_CheckChild2Type, MVT::i64, ++/*542266*/ OPC_CheckChild3Integer, 1, ++/*542268*/ OPC_CheckChild3Type, MVT::i64, ++/*542270*/ OPC_CheckType, MVT::v4i64, ++/*542272*/ OPC_MoveParent, ++/*542273*/ OPC_CheckType, MVT::v4i64, ++/*542275*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*542277*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*542285*/ 0, /*End of Scope*/ ++/*542286*/ /*Scope*/ 4|128,1/*132*/, /*->542420*/ ++/*542288*/ OPC_CheckChild0Same, 0, ++/*542290*/ OPC_MoveChild1, ++/*542291*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*542294*/ OPC_Scope, 61, /*->542357*/ // 2 children in Scope ++/*542296*/ OPC_MoveChild0, ++/*542297*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*542300*/ OPC_CheckChild0Integer, 1, ++/*542302*/ OPC_CheckChild0Type, MVT::i64, ++/*542304*/ OPC_CheckChild1Integer, 1, ++/*542306*/ OPC_CheckChild1Type, MVT::i64, ++/*542308*/ OPC_CheckChild2Integer, 1, ++/*542310*/ OPC_CheckChild2Type, MVT::i64, ++/*542312*/ OPC_CheckChild3Integer, 1, ++/*542314*/ OPC_CheckChild3Type, MVT::i64, ++/*542316*/ OPC_MoveParent, ++/*542317*/ OPC_CheckChild1Same, 1, ++/*542319*/ OPC_MoveParent, ++/*542320*/ OPC_MoveParent, ++/*542321*/ OPC_MoveParent, ++/*542322*/ OPC_MoveChild1, ++/*542323*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*542326*/ OPC_CheckChild0Integer, 1, ++/*542328*/ OPC_CheckChild0Type, MVT::i64, ++/*542330*/ OPC_CheckChild1Integer, 1, ++/*542332*/ OPC_CheckChild1Type, MVT::i64, ++/*542334*/ OPC_CheckChild2Integer, 1, ++/*542336*/ OPC_CheckChild2Type, MVT::i64, ++/*542338*/ OPC_CheckChild3Integer, 1, ++/*542340*/ OPC_CheckChild3Type, MVT::i64, ++/*542342*/ OPC_CheckType, MVT::v4i64, ++/*542344*/ OPC_MoveParent, ++/*542345*/ OPC_CheckType, MVT::v4i64, ++/*542347*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*542349*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*542357*/ /*Scope*/ 61, /*->542419*/ ++/*542358*/ OPC_CheckChild0Same, 1, ++/*542360*/ OPC_MoveChild1, ++/*542361*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*542364*/ OPC_CheckChild0Integer, 1, ++/*542366*/ OPC_CheckChild0Type, MVT::i64, ++/*542368*/ OPC_CheckChild1Integer, 1, ++/*542370*/ OPC_CheckChild1Type, MVT::i64, ++/*542372*/ OPC_CheckChild2Integer, 1, ++/*542374*/ OPC_CheckChild2Type, MVT::i64, ++/*542376*/ OPC_CheckChild3Integer, 1, ++/*542378*/ OPC_CheckChild3Type, MVT::i64, ++/*542380*/ OPC_MoveParent, ++/*542381*/ OPC_MoveParent, ++/*542382*/ OPC_MoveParent, ++/*542383*/ OPC_MoveParent, ++/*542384*/ OPC_MoveChild1, ++/*542385*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*542388*/ OPC_CheckChild0Integer, 1, ++/*542390*/ OPC_CheckChild0Type, MVT::i64, ++/*542392*/ OPC_CheckChild1Integer, 1, ++/*542394*/ OPC_CheckChild1Type, MVT::i64, ++/*542396*/ OPC_CheckChild2Integer, 1, ++/*542398*/ OPC_CheckChild2Type, MVT::i64, ++/*542400*/ OPC_CheckChild3Integer, 1, ++/*542402*/ OPC_CheckChild3Type, MVT::i64, ++/*542404*/ OPC_CheckType, MVT::v4i64, ++/*542406*/ OPC_MoveParent, ++/*542407*/ OPC_CheckType, MVT::v4i64, ++/*542409*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*542411*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*542419*/ 0, /*End of Scope*/ ++/*542420*/ /*Scope*/ 4|128,1/*132*/, /*->542554*/ ++/*542422*/ OPC_CheckChild0Same, 1, ++/*542424*/ OPC_MoveChild1, ++/*542425*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*542428*/ OPC_Scope, 61, /*->542491*/ // 2 children in Scope ++/*542430*/ OPC_MoveChild0, ++/*542431*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*542434*/ OPC_CheckChild0Integer, 1, ++/*542436*/ OPC_CheckChild0Type, MVT::i64, ++/*542438*/ OPC_CheckChild1Integer, 1, ++/*542440*/ OPC_CheckChild1Type, MVT::i64, ++/*542442*/ OPC_CheckChild2Integer, 1, ++/*542444*/ OPC_CheckChild2Type, MVT::i64, ++/*542446*/ OPC_CheckChild3Integer, 1, ++/*542448*/ OPC_CheckChild3Type, MVT::i64, ++/*542450*/ OPC_MoveParent, ++/*542451*/ OPC_CheckChild1Same, 0, ++/*542453*/ OPC_MoveParent, ++/*542454*/ OPC_MoveParent, ++/*542455*/ OPC_MoveParent, ++/*542456*/ OPC_MoveChild1, ++/*542457*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*542460*/ OPC_CheckChild0Integer, 1, ++/*542462*/ OPC_CheckChild0Type, MVT::i64, ++/*542464*/ OPC_CheckChild1Integer, 1, ++/*542466*/ OPC_CheckChild1Type, MVT::i64, ++/*542468*/ OPC_CheckChild2Integer, 1, ++/*542470*/ OPC_CheckChild2Type, MVT::i64, ++/*542472*/ OPC_CheckChild3Integer, 1, ++/*542474*/ OPC_CheckChild3Type, MVT::i64, ++/*542476*/ OPC_CheckType, MVT::v4i64, ++/*542478*/ OPC_MoveParent, ++/*542479*/ OPC_CheckType, MVT::v4i64, ++/*542481*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*542483*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*542491*/ /*Scope*/ 61, /*->542553*/ ++/*542492*/ OPC_CheckChild0Same, 0, ++/*542494*/ OPC_MoveChild1, ++/*542495*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*542498*/ OPC_CheckChild0Integer, 1, ++/*542500*/ OPC_CheckChild0Type, MVT::i64, ++/*542502*/ OPC_CheckChild1Integer, 1, ++/*542504*/ OPC_CheckChild1Type, MVT::i64, ++/*542506*/ OPC_CheckChild2Integer, 1, ++/*542508*/ OPC_CheckChild2Type, MVT::i64, ++/*542510*/ OPC_CheckChild3Integer, 1, ++/*542512*/ OPC_CheckChild3Type, MVT::i64, ++/*542514*/ OPC_MoveParent, ++/*542515*/ OPC_MoveParent, ++/*542516*/ OPC_MoveParent, ++/*542517*/ OPC_MoveParent, ++/*542518*/ OPC_MoveChild1, ++/*542519*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*542522*/ OPC_CheckChild0Integer, 1, ++/*542524*/ OPC_CheckChild0Type, MVT::i64, ++/*542526*/ OPC_CheckChild1Integer, 1, ++/*542528*/ OPC_CheckChild1Type, MVT::i64, ++/*542530*/ OPC_CheckChild2Integer, 1, ++/*542532*/ OPC_CheckChild2Type, MVT::i64, ++/*542534*/ OPC_CheckChild3Integer, 1, ++/*542536*/ OPC_CheckChild3Type, MVT::i64, ++/*542538*/ OPC_CheckType, MVT::v4i64, ++/*542540*/ OPC_MoveParent, ++/*542541*/ OPC_CheckType, MVT::v4i64, ++/*542543*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*542545*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*542553*/ 0, /*End of Scope*/ ++/*542554*/ /*Scope*/ 113, /*->542668*/ ++/*542555*/ OPC_MoveChild0, ++/*542556*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*542559*/ OPC_CheckChild0Integer, 1, ++/*542561*/ OPC_CheckChild0Type, MVT::i64, ++/*542563*/ OPC_CheckChild1Integer, 1, ++/*542565*/ OPC_CheckChild1Type, MVT::i64, ++/*542567*/ OPC_CheckChild2Integer, 1, ++/*542569*/ OPC_CheckChild2Type, MVT::i64, ++/*542571*/ OPC_CheckChild3Integer, 1, ++/*542573*/ OPC_CheckChild3Type, MVT::i64, ++/*542575*/ OPC_MoveParent, ++/*542576*/ OPC_MoveChild1, ++/*542577*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*542580*/ OPC_Scope, 42, /*->542624*/ // 2 children in Scope ++/*542582*/ OPC_CheckChild0Same, 1, ++/*542584*/ OPC_CheckChild1Same, 0, ++/*542586*/ OPC_MoveParent, ++/*542587*/ OPC_MoveParent, ++/*542588*/ OPC_MoveParent, ++/*542589*/ OPC_MoveChild1, ++/*542590*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*542593*/ OPC_CheckChild0Integer, 1, ++/*542595*/ OPC_CheckChild0Type, MVT::i64, ++/*542597*/ OPC_CheckChild1Integer, 1, ++/*542599*/ OPC_CheckChild1Type, MVT::i64, ++/*542601*/ OPC_CheckChild2Integer, 1, ++/*542603*/ OPC_CheckChild2Type, MVT::i64, ++/*542605*/ OPC_CheckChild3Integer, 1, ++/*542607*/ OPC_CheckChild3Type, MVT::i64, ++/*542609*/ OPC_CheckType, MVT::v4i64, ++/*542611*/ OPC_MoveParent, ++/*542612*/ OPC_CheckType, MVT::v4i64, ++/*542614*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*542616*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*542624*/ /*Scope*/ 42, /*->542667*/ ++/*542625*/ OPC_CheckChild0Same, 0, ++/*542627*/ OPC_CheckChild1Same, 1, ++/*542629*/ OPC_MoveParent, ++/*542630*/ OPC_MoveParent, ++/*542631*/ OPC_MoveParent, ++/*542632*/ OPC_MoveChild1, ++/*542633*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*542636*/ OPC_CheckChild0Integer, 1, ++/*542638*/ OPC_CheckChild0Type, MVT::i64, ++/*542640*/ OPC_CheckChild1Integer, 1, ++/*542642*/ OPC_CheckChild1Type, MVT::i64, ++/*542644*/ OPC_CheckChild2Integer, 1, ++/*542646*/ OPC_CheckChild2Type, MVT::i64, ++/*542648*/ OPC_CheckChild3Integer, 1, ++/*542650*/ OPC_CheckChild3Type, MVT::i64, ++/*542652*/ OPC_CheckType, MVT::v4i64, ++/*542654*/ OPC_MoveParent, ++/*542655*/ OPC_CheckType, MVT::v4i64, ++/*542657*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*542659*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*542667*/ 0, /*End of Scope*/ ++/*542668*/ 0, /*End of Scope*/ ++/*542669*/ /*Scope*/ 60|128,6/*828*/, /*->543499*/ ++/*542671*/ OPC_RecordChild0, // #1 = $a ++/*542672*/ OPC_MoveChild1, ++/*542673*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*542676*/ OPC_CheckChild0Integer, 1, ++/*542678*/ OPC_CheckChild0Type, MVT::i64, ++/*542680*/ OPC_CheckChild1Integer, 1, ++/*542682*/ OPC_CheckChild1Type, MVT::i64, ++/*542684*/ OPC_CheckChild2Integer, 1, ++/*542686*/ OPC_CheckChild2Type, MVT::i64, ++/*542688*/ OPC_CheckChild3Integer, 1, ++/*542690*/ OPC_CheckChild3Type, MVT::i64, ++/*542692*/ OPC_MoveParent, ++/*542693*/ OPC_MoveParent, ++/*542694*/ OPC_MoveParent, ++/*542695*/ OPC_MoveChild1, ++/*542696*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*542699*/ OPC_CheckChild0Integer, 63, ++/*542701*/ OPC_CheckChild0Type, MVT::i64, ++/*542703*/ OPC_CheckChild1Integer, 63, ++/*542705*/ OPC_CheckChild1Type, MVT::i64, ++/*542707*/ OPC_CheckChild2Integer, 63, ++/*542709*/ OPC_CheckChild2Type, MVT::i64, ++/*542711*/ OPC_CheckChild3Integer, 63, ++/*542713*/ OPC_CheckChild3Type, MVT::i64, ++/*542715*/ OPC_CheckType, MVT::v4i64, ++/*542717*/ OPC_MoveParent, ++/*542718*/ OPC_MoveParent, ++/*542719*/ OPC_MoveChild1, ++/*542720*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*542723*/ OPC_Scope, 6|128,3/*390*/, /*->543116*/ // 4 children in Scope ++/*542726*/ OPC_MoveChild0, ++/*542727*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*542730*/ OPC_Scope, 63, /*->542795*/ // 6 children in Scope ++/*542732*/ OPC_MoveChild0, ++/*542733*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*542736*/ OPC_CheckChild0Integer, 1, ++/*542738*/ OPC_CheckChild0Type, MVT::i64, ++/*542740*/ OPC_CheckChild1Integer, 1, ++/*542742*/ OPC_CheckChild1Type, MVT::i64, ++/*542744*/ OPC_CheckChild2Integer, 1, ++/*542746*/ OPC_CheckChild2Type, MVT::i64, ++/*542748*/ OPC_CheckChild3Integer, 1, ++/*542750*/ OPC_CheckChild3Type, MVT::i64, ++/*542752*/ OPC_MoveParent, ++/*542753*/ OPC_CheckChild1Same, 1, ++/*542755*/ OPC_MoveParent, ++/*542756*/ OPC_CheckChild1Same, 0, ++/*542758*/ OPC_MoveParent, ++/*542759*/ OPC_MoveParent, ++/*542760*/ OPC_MoveChild1, ++/*542761*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*542764*/ OPC_CheckChild0Integer, 1, ++/*542766*/ OPC_CheckChild0Type, MVT::i64, ++/*542768*/ OPC_CheckChild1Integer, 1, ++/*542770*/ OPC_CheckChild1Type, MVT::i64, ++/*542772*/ OPC_CheckChild2Integer, 1, ++/*542774*/ OPC_CheckChild2Type, MVT::i64, ++/*542776*/ OPC_CheckChild3Integer, 1, ++/*542778*/ OPC_CheckChild3Type, MVT::i64, ++/*542780*/ OPC_CheckType, MVT::v4i64, ++/*542782*/ OPC_MoveParent, ++/*542783*/ OPC_CheckType, MVT::v4i64, ++/*542785*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*542787*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a), LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*542795*/ /*Scope*/ 63, /*->542859*/ ++/*542796*/ OPC_CheckChild0Same, 1, ++/*542798*/ OPC_MoveChild1, ++/*542799*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*542802*/ OPC_CheckChild0Integer, 1, ++/*542804*/ OPC_CheckChild0Type, MVT::i64, ++/*542806*/ OPC_CheckChild1Integer, 1, ++/*542808*/ OPC_CheckChild1Type, MVT::i64, ++/*542810*/ OPC_CheckChild2Integer, 1, ++/*542812*/ OPC_CheckChild2Type, MVT::i64, ++/*542814*/ OPC_CheckChild3Integer, 1, ++/*542816*/ OPC_CheckChild3Type, MVT::i64, ++/*542818*/ OPC_MoveParent, ++/*542819*/ OPC_MoveParent, ++/*542820*/ OPC_CheckChild1Same, 0, ++/*542822*/ OPC_MoveParent, ++/*542823*/ OPC_MoveParent, ++/*542824*/ OPC_MoveChild1, ++/*542825*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*542828*/ OPC_CheckChild0Integer, 1, ++/*542830*/ OPC_CheckChild0Type, MVT::i64, ++/*542832*/ OPC_CheckChild1Integer, 1, ++/*542834*/ OPC_CheckChild1Type, MVT::i64, ++/*542836*/ OPC_CheckChild2Integer, 1, ++/*542838*/ OPC_CheckChild2Type, MVT::i64, ++/*542840*/ OPC_CheckChild3Integer, 1, ++/*542842*/ OPC_CheckChild3Type, MVT::i64, ++/*542844*/ OPC_CheckType, MVT::v4i64, ++/*542846*/ OPC_MoveParent, ++/*542847*/ OPC_CheckType, MVT::v4i64, ++/*542849*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*542851*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*542859*/ /*Scope*/ 63, /*->542923*/ ++/*542860*/ OPC_MoveChild0, ++/*542861*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*542864*/ OPC_CheckChild0Integer, 1, ++/*542866*/ OPC_CheckChild0Type, MVT::i64, ++/*542868*/ OPC_CheckChild1Integer, 1, ++/*542870*/ OPC_CheckChild1Type, MVT::i64, ++/*542872*/ OPC_CheckChild2Integer, 1, ++/*542874*/ OPC_CheckChild2Type, MVT::i64, ++/*542876*/ OPC_CheckChild3Integer, 1, ++/*542878*/ OPC_CheckChild3Type, MVT::i64, ++/*542880*/ OPC_MoveParent, ++/*542881*/ OPC_CheckChild1Same, 0, ++/*542883*/ OPC_MoveParent, ++/*542884*/ OPC_CheckChild1Same, 1, ++/*542886*/ OPC_MoveParent, ++/*542887*/ OPC_MoveParent, ++/*542888*/ OPC_MoveChild1, ++/*542889*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*542892*/ OPC_CheckChild0Integer, 1, ++/*542894*/ OPC_CheckChild0Type, MVT::i64, ++/*542896*/ OPC_CheckChild1Integer, 1, ++/*542898*/ OPC_CheckChild1Type, MVT::i64, ++/*542900*/ OPC_CheckChild2Integer, 1, ++/*542902*/ OPC_CheckChild2Type, MVT::i64, ++/*542904*/ OPC_CheckChild3Integer, 1, ++/*542906*/ OPC_CheckChild3Type, MVT::i64, ++/*542908*/ OPC_CheckType, MVT::v4i64, ++/*542910*/ OPC_MoveParent, ++/*542911*/ OPC_CheckType, MVT::v4i64, ++/*542913*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*542915*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b), LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*542923*/ /*Scope*/ 63, /*->542987*/ ++/*542924*/ OPC_CheckChild0Same, 0, ++/*542926*/ OPC_MoveChild1, ++/*542927*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*542930*/ OPC_CheckChild0Integer, 1, ++/*542932*/ OPC_CheckChild0Type, MVT::i64, ++/*542934*/ OPC_CheckChild1Integer, 1, ++/*542936*/ OPC_CheckChild1Type, MVT::i64, ++/*542938*/ OPC_CheckChild2Integer, 1, ++/*542940*/ OPC_CheckChild2Type, MVT::i64, ++/*542942*/ OPC_CheckChild3Integer, 1, ++/*542944*/ OPC_CheckChild3Type, MVT::i64, ++/*542946*/ OPC_MoveParent, ++/*542947*/ OPC_MoveParent, ++/*542948*/ OPC_CheckChild1Same, 1, ++/*542950*/ OPC_MoveParent, ++/*542951*/ OPC_MoveParent, ++/*542952*/ OPC_MoveChild1, ++/*542953*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*542956*/ OPC_CheckChild0Integer, 1, ++/*542958*/ OPC_CheckChild0Type, MVT::i64, ++/*542960*/ OPC_CheckChild1Integer, 1, ++/*542962*/ OPC_CheckChild1Type, MVT::i64, ++/*542964*/ OPC_CheckChild2Integer, 1, ++/*542966*/ OPC_CheckChild2Type, MVT::i64, ++/*542968*/ OPC_CheckChild3Integer, 1, ++/*542970*/ OPC_CheckChild3Type, MVT::i64, ++/*542972*/ OPC_CheckType, MVT::v4i64, ++/*542974*/ OPC_MoveParent, ++/*542975*/ OPC_CheckType, MVT::v4i64, ++/*542977*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*542979*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*542987*/ /*Scope*/ 63, /*->543051*/ ++/*542988*/ OPC_CheckChild0Same, 1, ++/*542990*/ OPC_CheckChild1Same, 0, ++/*542992*/ OPC_MoveParent, ++/*542993*/ OPC_MoveChild1, ++/*542994*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*542997*/ OPC_CheckChild0Integer, 1, ++/*542999*/ OPC_CheckChild0Type, MVT::i64, ++/*543001*/ OPC_CheckChild1Integer, 1, ++/*543003*/ OPC_CheckChild1Type, MVT::i64, ++/*543005*/ OPC_CheckChild2Integer, 1, ++/*543007*/ OPC_CheckChild2Type, MVT::i64, ++/*543009*/ OPC_CheckChild3Integer, 1, ++/*543011*/ OPC_CheckChild3Type, MVT::i64, ++/*543013*/ OPC_MoveParent, ++/*543014*/ OPC_MoveParent, ++/*543015*/ OPC_MoveParent, ++/*543016*/ OPC_MoveChild1, ++/*543017*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*543020*/ OPC_CheckChild0Integer, 1, ++/*543022*/ OPC_CheckChild0Type, MVT::i64, ++/*543024*/ OPC_CheckChild1Integer, 1, ++/*543026*/ OPC_CheckChild1Type, MVT::i64, ++/*543028*/ OPC_CheckChild2Integer, 1, ++/*543030*/ OPC_CheckChild2Type, MVT::i64, ++/*543032*/ OPC_CheckChild3Integer, 1, ++/*543034*/ OPC_CheckChild3Type, MVT::i64, ++/*543036*/ OPC_CheckType, MVT::v4i64, ++/*543038*/ OPC_MoveParent, ++/*543039*/ OPC_CheckType, MVT::v4i64, ++/*543041*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*543043*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*543051*/ /*Scope*/ 63, /*->543115*/ ++/*543052*/ OPC_CheckChild0Same, 0, ++/*543054*/ OPC_CheckChild1Same, 1, ++/*543056*/ OPC_MoveParent, ++/*543057*/ OPC_MoveChild1, ++/*543058*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*543061*/ OPC_CheckChild0Integer, 1, ++/*543063*/ OPC_CheckChild0Type, MVT::i64, ++/*543065*/ OPC_CheckChild1Integer, 1, ++/*543067*/ OPC_CheckChild1Type, MVT::i64, ++/*543069*/ OPC_CheckChild2Integer, 1, ++/*543071*/ OPC_CheckChild2Type, MVT::i64, ++/*543073*/ OPC_CheckChild3Integer, 1, ++/*543075*/ OPC_CheckChild3Type, MVT::i64, ++/*543077*/ OPC_MoveParent, ++/*543078*/ OPC_MoveParent, ++/*543079*/ OPC_MoveParent, ++/*543080*/ OPC_MoveChild1, ++/*543081*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*543084*/ OPC_CheckChild0Integer, 1, ++/*543086*/ OPC_CheckChild0Type, MVT::i64, ++/*543088*/ OPC_CheckChild1Integer, 1, ++/*543090*/ OPC_CheckChild1Type, MVT::i64, ++/*543092*/ OPC_CheckChild2Integer, 1, ++/*543094*/ OPC_CheckChild2Type, MVT::i64, ++/*543096*/ OPC_CheckChild3Integer, 1, ++/*543098*/ OPC_CheckChild3Type, MVT::i64, ++/*543100*/ OPC_CheckType, MVT::v4i64, ++/*543102*/ OPC_MoveParent, ++/*543103*/ OPC_CheckType, MVT::v4i64, ++/*543105*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*543107*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*543115*/ 0, /*End of Scope*/ ++/*543116*/ /*Scope*/ 4|128,1/*132*/, /*->543250*/ ++/*543118*/ OPC_CheckChild0Same, 0, ++/*543120*/ OPC_MoveChild1, ++/*543121*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*543124*/ OPC_Scope, 61, /*->543187*/ // 2 children in Scope ++/*543126*/ OPC_MoveChild0, ++/*543127*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*543130*/ OPC_CheckChild0Integer, 1, ++/*543132*/ OPC_CheckChild0Type, MVT::i64, ++/*543134*/ OPC_CheckChild1Integer, 1, ++/*543136*/ OPC_CheckChild1Type, MVT::i64, ++/*543138*/ OPC_CheckChild2Integer, 1, ++/*543140*/ OPC_CheckChild2Type, MVT::i64, ++/*543142*/ OPC_CheckChild3Integer, 1, ++/*543144*/ OPC_CheckChild3Type, MVT::i64, ++/*543146*/ OPC_MoveParent, ++/*543147*/ OPC_CheckChild1Same, 1, ++/*543149*/ OPC_MoveParent, ++/*543150*/ OPC_MoveParent, ++/*543151*/ OPC_MoveParent, ++/*543152*/ OPC_MoveChild1, ++/*543153*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*543156*/ OPC_CheckChild0Integer, 1, ++/*543158*/ OPC_CheckChild0Type, MVT::i64, ++/*543160*/ OPC_CheckChild1Integer, 1, ++/*543162*/ OPC_CheckChild1Type, MVT::i64, ++/*543164*/ OPC_CheckChild2Integer, 1, ++/*543166*/ OPC_CheckChild2Type, MVT::i64, ++/*543168*/ OPC_CheckChild3Integer, 1, ++/*543170*/ OPC_CheckChild3Type, MVT::i64, ++/*543172*/ OPC_CheckType, MVT::v4i64, ++/*543174*/ OPC_MoveParent, ++/*543175*/ OPC_CheckType, MVT::v4i64, ++/*543177*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*543179*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*543187*/ /*Scope*/ 61, /*->543249*/ ++/*543188*/ OPC_CheckChild0Same, 1, ++/*543190*/ OPC_MoveChild1, ++/*543191*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*543194*/ OPC_CheckChild0Integer, 1, ++/*543196*/ OPC_CheckChild0Type, MVT::i64, ++/*543198*/ OPC_CheckChild1Integer, 1, ++/*543200*/ OPC_CheckChild1Type, MVT::i64, ++/*543202*/ OPC_CheckChild2Integer, 1, ++/*543204*/ OPC_CheckChild2Type, MVT::i64, ++/*543206*/ OPC_CheckChild3Integer, 1, ++/*543208*/ OPC_CheckChild3Type, MVT::i64, ++/*543210*/ OPC_MoveParent, ++/*543211*/ OPC_MoveParent, ++/*543212*/ OPC_MoveParent, ++/*543213*/ OPC_MoveParent, ++/*543214*/ OPC_MoveChild1, ++/*543215*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*543218*/ OPC_CheckChild0Integer, 1, ++/*543220*/ OPC_CheckChild0Type, MVT::i64, ++/*543222*/ OPC_CheckChild1Integer, 1, ++/*543224*/ OPC_CheckChild1Type, MVT::i64, ++/*543226*/ OPC_CheckChild2Integer, 1, ++/*543228*/ OPC_CheckChild2Type, MVT::i64, ++/*543230*/ OPC_CheckChild3Integer, 1, ++/*543232*/ OPC_CheckChild3Type, MVT::i64, ++/*543234*/ OPC_CheckType, MVT::v4i64, ++/*543236*/ OPC_MoveParent, ++/*543237*/ OPC_CheckType, MVT::v4i64, ++/*543239*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*543241*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*543249*/ 0, /*End of Scope*/ ++/*543250*/ /*Scope*/ 4|128,1/*132*/, /*->543384*/ ++/*543252*/ OPC_CheckChild0Same, 1, ++/*543254*/ OPC_MoveChild1, ++/*543255*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*543258*/ OPC_Scope, 61, /*->543321*/ // 2 children in Scope ++/*543260*/ OPC_MoveChild0, ++/*543261*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*543264*/ OPC_CheckChild0Integer, 1, ++/*543266*/ OPC_CheckChild0Type, MVT::i64, ++/*543268*/ OPC_CheckChild1Integer, 1, ++/*543270*/ OPC_CheckChild1Type, MVT::i64, ++/*543272*/ OPC_CheckChild2Integer, 1, ++/*543274*/ OPC_CheckChild2Type, MVT::i64, ++/*543276*/ OPC_CheckChild3Integer, 1, ++/*543278*/ OPC_CheckChild3Type, MVT::i64, ++/*543280*/ OPC_MoveParent, ++/*543281*/ OPC_CheckChild1Same, 0, ++/*543283*/ OPC_MoveParent, ++/*543284*/ OPC_MoveParent, ++/*543285*/ OPC_MoveParent, ++/*543286*/ OPC_MoveChild1, ++/*543287*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*543290*/ OPC_CheckChild0Integer, 1, ++/*543292*/ OPC_CheckChild0Type, MVT::i64, ++/*543294*/ OPC_CheckChild1Integer, 1, ++/*543296*/ OPC_CheckChild1Type, MVT::i64, ++/*543298*/ OPC_CheckChild2Integer, 1, ++/*543300*/ OPC_CheckChild2Type, MVT::i64, ++/*543302*/ OPC_CheckChild3Integer, 1, ++/*543304*/ OPC_CheckChild3Type, MVT::i64, ++/*543306*/ OPC_CheckType, MVT::v4i64, ++/*543308*/ OPC_MoveParent, ++/*543309*/ OPC_CheckType, MVT::v4i64, ++/*543311*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*543313*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*543321*/ /*Scope*/ 61, /*->543383*/ ++/*543322*/ OPC_CheckChild0Same, 0, ++/*543324*/ OPC_MoveChild1, ++/*543325*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*543328*/ OPC_CheckChild0Integer, 1, ++/*543330*/ OPC_CheckChild0Type, MVT::i64, ++/*543332*/ OPC_CheckChild1Integer, 1, ++/*543334*/ OPC_CheckChild1Type, MVT::i64, ++/*543336*/ OPC_CheckChild2Integer, 1, ++/*543338*/ OPC_CheckChild2Type, MVT::i64, ++/*543340*/ OPC_CheckChild3Integer, 1, ++/*543342*/ OPC_CheckChild3Type, MVT::i64, ++/*543344*/ OPC_MoveParent, ++/*543345*/ OPC_MoveParent, ++/*543346*/ OPC_MoveParent, ++/*543347*/ OPC_MoveParent, ++/*543348*/ OPC_MoveChild1, ++/*543349*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*543352*/ OPC_CheckChild0Integer, 1, ++/*543354*/ OPC_CheckChild0Type, MVT::i64, ++/*543356*/ OPC_CheckChild1Integer, 1, ++/*543358*/ OPC_CheckChild1Type, MVT::i64, ++/*543360*/ OPC_CheckChild2Integer, 1, ++/*543362*/ OPC_CheckChild2Type, MVT::i64, ++/*543364*/ OPC_CheckChild3Integer, 1, ++/*543366*/ OPC_CheckChild3Type, MVT::i64, ++/*543368*/ OPC_CheckType, MVT::v4i64, ++/*543370*/ OPC_MoveParent, ++/*543371*/ OPC_CheckType, MVT::v4i64, ++/*543373*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*543375*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*543383*/ 0, /*End of Scope*/ ++/*543384*/ /*Scope*/ 113, /*->543498*/ ++/*543385*/ OPC_MoveChild0, ++/*543386*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*543389*/ OPC_CheckChild0Integer, 1, ++/*543391*/ OPC_CheckChild0Type, MVT::i64, ++/*543393*/ OPC_CheckChild1Integer, 1, ++/*543395*/ OPC_CheckChild1Type, MVT::i64, ++/*543397*/ OPC_CheckChild2Integer, 1, ++/*543399*/ OPC_CheckChild2Type, MVT::i64, ++/*543401*/ OPC_CheckChild3Integer, 1, ++/*543403*/ OPC_CheckChild3Type, MVT::i64, ++/*543405*/ OPC_MoveParent, ++/*543406*/ OPC_MoveChild1, ++/*543407*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*543410*/ OPC_Scope, 42, /*->543454*/ // 2 children in Scope ++/*543412*/ OPC_CheckChild0Same, 1, ++/*543414*/ OPC_CheckChild1Same, 0, ++/*543416*/ OPC_MoveParent, ++/*543417*/ OPC_MoveParent, ++/*543418*/ OPC_MoveParent, ++/*543419*/ OPC_MoveChild1, ++/*543420*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*543423*/ OPC_CheckChild0Integer, 1, ++/*543425*/ OPC_CheckChild0Type, MVT::i64, ++/*543427*/ OPC_CheckChild1Integer, 1, ++/*543429*/ OPC_CheckChild1Type, MVT::i64, ++/*543431*/ OPC_CheckChild2Integer, 1, ++/*543433*/ OPC_CheckChild2Type, MVT::i64, ++/*543435*/ OPC_CheckChild3Integer, 1, ++/*543437*/ OPC_CheckChild3Type, MVT::i64, ++/*543439*/ OPC_CheckType, MVT::v4i64, ++/*543441*/ OPC_MoveParent, ++/*543442*/ OPC_CheckType, MVT::v4i64, ++/*543444*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*543446*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*543454*/ /*Scope*/ 42, /*->543497*/ ++/*543455*/ OPC_CheckChild0Same, 0, ++/*543457*/ OPC_CheckChild1Same, 1, ++/*543459*/ OPC_MoveParent, ++/*543460*/ OPC_MoveParent, ++/*543461*/ OPC_MoveParent, ++/*543462*/ OPC_MoveChild1, ++/*543463*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*543466*/ OPC_CheckChild0Integer, 1, ++/*543468*/ OPC_CheckChild0Type, MVT::i64, ++/*543470*/ OPC_CheckChild1Integer, 1, ++/*543472*/ OPC_CheckChild1Type, MVT::i64, ++/*543474*/ OPC_CheckChild2Integer, 1, ++/*543476*/ OPC_CheckChild2Type, MVT::i64, ++/*543478*/ OPC_CheckChild3Integer, 1, ++/*543480*/ OPC_CheckChild3Type, MVT::i64, ++/*543482*/ OPC_CheckType, MVT::v4i64, ++/*543484*/ OPC_MoveParent, ++/*543485*/ OPC_CheckType, MVT::v4i64, ++/*543487*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*543489*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*543497*/ 0, /*End of Scope*/ ++/*543498*/ 0, /*End of Scope*/ ++/*543499*/ /*Scope*/ 60|128,6/*828*/, /*->544329*/ ++/*543501*/ OPC_MoveChild0, ++/*543502*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*543505*/ OPC_CheckChild0Integer, 1, ++/*543507*/ OPC_CheckChild0Type, MVT::i64, ++/*543509*/ OPC_CheckChild1Integer, 1, ++/*543511*/ OPC_CheckChild1Type, MVT::i64, ++/*543513*/ OPC_CheckChild2Integer, 1, ++/*543515*/ OPC_CheckChild2Type, MVT::i64, ++/*543517*/ OPC_CheckChild3Integer, 1, ++/*543519*/ OPC_CheckChild3Type, MVT::i64, ++/*543521*/ OPC_MoveParent, ++/*543522*/ OPC_RecordChild1, // #1 = $b ++/*543523*/ OPC_MoveParent, ++/*543524*/ OPC_MoveParent, ++/*543525*/ OPC_MoveChild1, ++/*543526*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*543529*/ OPC_CheckChild0Integer, 63, ++/*543531*/ OPC_CheckChild0Type, MVT::i64, ++/*543533*/ OPC_CheckChild1Integer, 63, ++/*543535*/ OPC_CheckChild1Type, MVT::i64, ++/*543537*/ OPC_CheckChild2Integer, 63, ++/*543539*/ OPC_CheckChild2Type, MVT::i64, ++/*543541*/ OPC_CheckChild3Integer, 63, ++/*543543*/ OPC_CheckChild3Type, MVT::i64, ++/*543545*/ OPC_CheckType, MVT::v4i64, ++/*543547*/ OPC_MoveParent, ++/*543548*/ OPC_MoveParent, ++/*543549*/ OPC_MoveChild1, ++/*543550*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*543553*/ OPC_Scope, 6|128,3/*390*/, /*->543946*/ // 4 children in Scope ++/*543556*/ OPC_MoveChild0, ++/*543557*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*543560*/ OPC_Scope, 63, /*->543625*/ // 6 children in Scope ++/*543562*/ OPC_MoveChild0, ++/*543563*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*543566*/ OPC_CheckChild0Integer, 1, ++/*543568*/ OPC_CheckChild0Type, MVT::i64, ++/*543570*/ OPC_CheckChild1Integer, 1, ++/*543572*/ OPC_CheckChild1Type, MVT::i64, ++/*543574*/ OPC_CheckChild2Integer, 1, ++/*543576*/ OPC_CheckChild2Type, MVT::i64, ++/*543578*/ OPC_CheckChild3Integer, 1, ++/*543580*/ OPC_CheckChild3Type, MVT::i64, ++/*543582*/ OPC_MoveParent, ++/*543583*/ OPC_CheckChild1Same, 0, ++/*543585*/ OPC_MoveParent, ++/*543586*/ OPC_CheckChild1Same, 1, ++/*543588*/ OPC_MoveParent, ++/*543589*/ OPC_MoveParent, ++/*543590*/ OPC_MoveChild1, ++/*543591*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*543594*/ OPC_CheckChild0Integer, 1, ++/*543596*/ OPC_CheckChild0Type, MVT::i64, ++/*543598*/ OPC_CheckChild1Integer, 1, ++/*543600*/ OPC_CheckChild1Type, MVT::i64, ++/*543602*/ OPC_CheckChild2Integer, 1, ++/*543604*/ OPC_CheckChild2Type, MVT::i64, ++/*543606*/ OPC_CheckChild3Integer, 1, ++/*543608*/ OPC_CheckChild3Type, MVT::i64, ++/*543610*/ OPC_CheckType, MVT::v4i64, ++/*543612*/ OPC_MoveParent, ++/*543613*/ OPC_CheckType, MVT::v4i64, ++/*543615*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*543617*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a), LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*543625*/ /*Scope*/ 63, /*->543689*/ ++/*543626*/ OPC_CheckChild0Same, 0, ++/*543628*/ OPC_MoveChild1, ++/*543629*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*543632*/ OPC_CheckChild0Integer, 1, ++/*543634*/ OPC_CheckChild0Type, MVT::i64, ++/*543636*/ OPC_CheckChild1Integer, 1, ++/*543638*/ OPC_CheckChild1Type, MVT::i64, ++/*543640*/ OPC_CheckChild2Integer, 1, ++/*543642*/ OPC_CheckChild2Type, MVT::i64, ++/*543644*/ OPC_CheckChild3Integer, 1, ++/*543646*/ OPC_CheckChild3Type, MVT::i64, ++/*543648*/ OPC_MoveParent, ++/*543649*/ OPC_MoveParent, ++/*543650*/ OPC_CheckChild1Same, 1, ++/*543652*/ OPC_MoveParent, ++/*543653*/ OPC_MoveParent, ++/*543654*/ OPC_MoveChild1, ++/*543655*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*543658*/ OPC_CheckChild0Integer, 1, ++/*543660*/ OPC_CheckChild0Type, MVT::i64, ++/*543662*/ OPC_CheckChild1Integer, 1, ++/*543664*/ OPC_CheckChild1Type, MVT::i64, ++/*543666*/ OPC_CheckChild2Integer, 1, ++/*543668*/ OPC_CheckChild2Type, MVT::i64, ++/*543670*/ OPC_CheckChild3Integer, 1, ++/*543672*/ OPC_CheckChild3Type, MVT::i64, ++/*543674*/ OPC_CheckType, MVT::v4i64, ++/*543676*/ OPC_MoveParent, ++/*543677*/ OPC_CheckType, MVT::v4i64, ++/*543679*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*543681*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*543689*/ /*Scope*/ 63, /*->543753*/ ++/*543690*/ OPC_MoveChild0, ++/*543691*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*543694*/ OPC_CheckChild0Integer, 1, ++/*543696*/ OPC_CheckChild0Type, MVT::i64, ++/*543698*/ OPC_CheckChild1Integer, 1, ++/*543700*/ OPC_CheckChild1Type, MVT::i64, ++/*543702*/ OPC_CheckChild2Integer, 1, ++/*543704*/ OPC_CheckChild2Type, MVT::i64, ++/*543706*/ OPC_CheckChild3Integer, 1, ++/*543708*/ OPC_CheckChild3Type, MVT::i64, ++/*543710*/ OPC_MoveParent, ++/*543711*/ OPC_CheckChild1Same, 1, ++/*543713*/ OPC_MoveParent, ++/*543714*/ OPC_CheckChild1Same, 0, ++/*543716*/ OPC_MoveParent, ++/*543717*/ OPC_MoveParent, ++/*543718*/ OPC_MoveChild1, ++/*543719*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*543722*/ OPC_CheckChild0Integer, 1, ++/*543724*/ OPC_CheckChild0Type, MVT::i64, ++/*543726*/ OPC_CheckChild1Integer, 1, ++/*543728*/ OPC_CheckChild1Type, MVT::i64, ++/*543730*/ OPC_CheckChild2Integer, 1, ++/*543732*/ OPC_CheckChild2Type, MVT::i64, ++/*543734*/ OPC_CheckChild3Integer, 1, ++/*543736*/ OPC_CheckChild3Type, MVT::i64, ++/*543738*/ OPC_CheckType, MVT::v4i64, ++/*543740*/ OPC_MoveParent, ++/*543741*/ OPC_CheckType, MVT::v4i64, ++/*543743*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*543745*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b), LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*543753*/ /*Scope*/ 63, /*->543817*/ ++/*543754*/ OPC_CheckChild0Same, 1, ++/*543756*/ OPC_MoveChild1, ++/*543757*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*543760*/ OPC_CheckChild0Integer, 1, ++/*543762*/ OPC_CheckChild0Type, MVT::i64, ++/*543764*/ OPC_CheckChild1Integer, 1, ++/*543766*/ OPC_CheckChild1Type, MVT::i64, ++/*543768*/ OPC_CheckChild2Integer, 1, ++/*543770*/ OPC_CheckChild2Type, MVT::i64, ++/*543772*/ OPC_CheckChild3Integer, 1, ++/*543774*/ OPC_CheckChild3Type, MVT::i64, ++/*543776*/ OPC_MoveParent, ++/*543777*/ OPC_MoveParent, ++/*543778*/ OPC_CheckChild1Same, 0, ++/*543780*/ OPC_MoveParent, ++/*543781*/ OPC_MoveParent, ++/*543782*/ OPC_MoveChild1, ++/*543783*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*543786*/ OPC_CheckChild0Integer, 1, ++/*543788*/ OPC_CheckChild0Type, MVT::i64, ++/*543790*/ OPC_CheckChild1Integer, 1, ++/*543792*/ OPC_CheckChild1Type, MVT::i64, ++/*543794*/ OPC_CheckChild2Integer, 1, ++/*543796*/ OPC_CheckChild2Type, MVT::i64, ++/*543798*/ OPC_CheckChild3Integer, 1, ++/*543800*/ OPC_CheckChild3Type, MVT::i64, ++/*543802*/ OPC_CheckType, MVT::v4i64, ++/*543804*/ OPC_MoveParent, ++/*543805*/ OPC_CheckType, MVT::v4i64, ++/*543807*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*543809*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*543817*/ /*Scope*/ 63, /*->543881*/ ++/*543818*/ OPC_CheckChild0Same, 0, ++/*543820*/ OPC_CheckChild1Same, 1, ++/*543822*/ OPC_MoveParent, ++/*543823*/ OPC_MoveChild1, ++/*543824*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*543827*/ OPC_CheckChild0Integer, 1, ++/*543829*/ OPC_CheckChild0Type, MVT::i64, ++/*543831*/ OPC_CheckChild1Integer, 1, ++/*543833*/ OPC_CheckChild1Type, MVT::i64, ++/*543835*/ OPC_CheckChild2Integer, 1, ++/*543837*/ OPC_CheckChild2Type, MVT::i64, ++/*543839*/ OPC_CheckChild3Integer, 1, ++/*543841*/ OPC_CheckChild3Type, MVT::i64, ++/*543843*/ OPC_MoveParent, ++/*543844*/ OPC_MoveParent, ++/*543845*/ OPC_MoveParent, ++/*543846*/ OPC_MoveChild1, ++/*543847*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*543850*/ OPC_CheckChild0Integer, 1, ++/*543852*/ OPC_CheckChild0Type, MVT::i64, ++/*543854*/ OPC_CheckChild1Integer, 1, ++/*543856*/ OPC_CheckChild1Type, MVT::i64, ++/*543858*/ OPC_CheckChild2Integer, 1, ++/*543860*/ OPC_CheckChild2Type, MVT::i64, ++/*543862*/ OPC_CheckChild3Integer, 1, ++/*543864*/ OPC_CheckChild3Type, MVT::i64, ++/*543866*/ OPC_CheckType, MVT::v4i64, ++/*543868*/ OPC_MoveParent, ++/*543869*/ OPC_CheckType, MVT::v4i64, ++/*543871*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*543873*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*543881*/ /*Scope*/ 63, /*->543945*/ ++/*543882*/ OPC_CheckChild0Same, 1, ++/*543884*/ OPC_CheckChild1Same, 0, ++/*543886*/ OPC_MoveParent, ++/*543887*/ OPC_MoveChild1, ++/*543888*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*543891*/ OPC_CheckChild0Integer, 1, ++/*543893*/ OPC_CheckChild0Type, MVT::i64, ++/*543895*/ OPC_CheckChild1Integer, 1, ++/*543897*/ OPC_CheckChild1Type, MVT::i64, ++/*543899*/ OPC_CheckChild2Integer, 1, ++/*543901*/ OPC_CheckChild2Type, MVT::i64, ++/*543903*/ OPC_CheckChild3Integer, 1, ++/*543905*/ OPC_CheckChild3Type, MVT::i64, ++/*543907*/ OPC_MoveParent, ++/*543908*/ OPC_MoveParent, ++/*543909*/ OPC_MoveParent, ++/*543910*/ OPC_MoveChild1, ++/*543911*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*543914*/ OPC_CheckChild0Integer, 1, ++/*543916*/ OPC_CheckChild0Type, MVT::i64, ++/*543918*/ OPC_CheckChild1Integer, 1, ++/*543920*/ OPC_CheckChild1Type, MVT::i64, ++/*543922*/ OPC_CheckChild2Integer, 1, ++/*543924*/ OPC_CheckChild2Type, MVT::i64, ++/*543926*/ OPC_CheckChild3Integer, 1, ++/*543928*/ OPC_CheckChild3Type, MVT::i64, ++/*543930*/ OPC_CheckType, MVT::v4i64, ++/*543932*/ OPC_MoveParent, ++/*543933*/ OPC_CheckType, MVT::v4i64, ++/*543935*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*543937*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*543945*/ 0, /*End of Scope*/ ++/*543946*/ /*Scope*/ 4|128,1/*132*/, /*->544080*/ ++/*543948*/ OPC_CheckChild0Same, 1, ++/*543950*/ OPC_MoveChild1, ++/*543951*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*543954*/ OPC_Scope, 61, /*->544017*/ // 2 children in Scope ++/*543956*/ OPC_MoveChild0, ++/*543957*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*543960*/ OPC_CheckChild0Integer, 1, ++/*543962*/ OPC_CheckChild0Type, MVT::i64, ++/*543964*/ OPC_CheckChild1Integer, 1, ++/*543966*/ OPC_CheckChild1Type, MVT::i64, ++/*543968*/ OPC_CheckChild2Integer, 1, ++/*543970*/ OPC_CheckChild2Type, MVT::i64, ++/*543972*/ OPC_CheckChild3Integer, 1, ++/*543974*/ OPC_CheckChild3Type, MVT::i64, ++/*543976*/ OPC_MoveParent, ++/*543977*/ OPC_CheckChild1Same, 0, ++/*543979*/ OPC_MoveParent, ++/*543980*/ OPC_MoveParent, ++/*543981*/ OPC_MoveParent, ++/*543982*/ OPC_MoveChild1, ++/*543983*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*543986*/ OPC_CheckChild0Integer, 1, ++/*543988*/ OPC_CheckChild0Type, MVT::i64, ++/*543990*/ OPC_CheckChild1Integer, 1, ++/*543992*/ OPC_CheckChild1Type, MVT::i64, ++/*543994*/ OPC_CheckChild2Integer, 1, ++/*543996*/ OPC_CheckChild2Type, MVT::i64, ++/*543998*/ OPC_CheckChild3Integer, 1, ++/*544000*/ OPC_CheckChild3Type, MVT::i64, ++/*544002*/ OPC_CheckType, MVT::v4i64, ++/*544004*/ OPC_MoveParent, ++/*544005*/ OPC_CheckType, MVT::v4i64, ++/*544007*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*544009*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*544017*/ /*Scope*/ 61, /*->544079*/ ++/*544018*/ OPC_CheckChild0Same, 0, ++/*544020*/ OPC_MoveChild1, ++/*544021*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*544024*/ OPC_CheckChild0Integer, 1, ++/*544026*/ OPC_CheckChild0Type, MVT::i64, ++/*544028*/ OPC_CheckChild1Integer, 1, ++/*544030*/ OPC_CheckChild1Type, MVT::i64, ++/*544032*/ OPC_CheckChild2Integer, 1, ++/*544034*/ OPC_CheckChild2Type, MVT::i64, ++/*544036*/ OPC_CheckChild3Integer, 1, ++/*544038*/ OPC_CheckChild3Type, MVT::i64, ++/*544040*/ OPC_MoveParent, ++/*544041*/ OPC_MoveParent, ++/*544042*/ OPC_MoveParent, ++/*544043*/ OPC_MoveParent, ++/*544044*/ OPC_MoveChild1, ++/*544045*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*544048*/ OPC_CheckChild0Integer, 1, ++/*544050*/ OPC_CheckChild0Type, MVT::i64, ++/*544052*/ OPC_CheckChild1Integer, 1, ++/*544054*/ OPC_CheckChild1Type, MVT::i64, ++/*544056*/ OPC_CheckChild2Integer, 1, ++/*544058*/ OPC_CheckChild2Type, MVT::i64, ++/*544060*/ OPC_CheckChild3Integer, 1, ++/*544062*/ OPC_CheckChild3Type, MVT::i64, ++/*544064*/ OPC_CheckType, MVT::v4i64, ++/*544066*/ OPC_MoveParent, ++/*544067*/ OPC_CheckType, MVT::v4i64, ++/*544069*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*544071*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*544079*/ 0, /*End of Scope*/ ++/*544080*/ /*Scope*/ 4|128,1/*132*/, /*->544214*/ ++/*544082*/ OPC_CheckChild0Same, 0, ++/*544084*/ OPC_MoveChild1, ++/*544085*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*544088*/ OPC_Scope, 61, /*->544151*/ // 2 children in Scope ++/*544090*/ OPC_MoveChild0, ++/*544091*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*544094*/ OPC_CheckChild0Integer, 1, ++/*544096*/ OPC_CheckChild0Type, MVT::i64, ++/*544098*/ OPC_CheckChild1Integer, 1, ++/*544100*/ OPC_CheckChild1Type, MVT::i64, ++/*544102*/ OPC_CheckChild2Integer, 1, ++/*544104*/ OPC_CheckChild2Type, MVT::i64, ++/*544106*/ OPC_CheckChild3Integer, 1, ++/*544108*/ OPC_CheckChild3Type, MVT::i64, ++/*544110*/ OPC_MoveParent, ++/*544111*/ OPC_CheckChild1Same, 1, ++/*544113*/ OPC_MoveParent, ++/*544114*/ OPC_MoveParent, ++/*544115*/ OPC_MoveParent, ++/*544116*/ OPC_MoveChild1, ++/*544117*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*544120*/ OPC_CheckChild0Integer, 1, ++/*544122*/ OPC_CheckChild0Type, MVT::i64, ++/*544124*/ OPC_CheckChild1Integer, 1, ++/*544126*/ OPC_CheckChild1Type, MVT::i64, ++/*544128*/ OPC_CheckChild2Integer, 1, ++/*544130*/ OPC_CheckChild2Type, MVT::i64, ++/*544132*/ OPC_CheckChild3Integer, 1, ++/*544134*/ OPC_CheckChild3Type, MVT::i64, ++/*544136*/ OPC_CheckType, MVT::v4i64, ++/*544138*/ OPC_MoveParent, ++/*544139*/ OPC_CheckType, MVT::v4i64, ++/*544141*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*544143*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*544151*/ /*Scope*/ 61, /*->544213*/ ++/*544152*/ OPC_CheckChild0Same, 1, ++/*544154*/ OPC_MoveChild1, ++/*544155*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*544158*/ OPC_CheckChild0Integer, 1, ++/*544160*/ OPC_CheckChild0Type, MVT::i64, ++/*544162*/ OPC_CheckChild1Integer, 1, ++/*544164*/ OPC_CheckChild1Type, MVT::i64, ++/*544166*/ OPC_CheckChild2Integer, 1, ++/*544168*/ OPC_CheckChild2Type, MVT::i64, ++/*544170*/ OPC_CheckChild3Integer, 1, ++/*544172*/ OPC_CheckChild3Type, MVT::i64, ++/*544174*/ OPC_MoveParent, ++/*544175*/ OPC_MoveParent, ++/*544176*/ OPC_MoveParent, ++/*544177*/ OPC_MoveParent, ++/*544178*/ OPC_MoveChild1, ++/*544179*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*544182*/ OPC_CheckChild0Integer, 1, ++/*544184*/ OPC_CheckChild0Type, MVT::i64, ++/*544186*/ OPC_CheckChild1Integer, 1, ++/*544188*/ OPC_CheckChild1Type, MVT::i64, ++/*544190*/ OPC_CheckChild2Integer, 1, ++/*544192*/ OPC_CheckChild2Type, MVT::i64, ++/*544194*/ OPC_CheckChild3Integer, 1, ++/*544196*/ OPC_CheckChild3Type, MVT::i64, ++/*544198*/ OPC_CheckType, MVT::v4i64, ++/*544200*/ OPC_MoveParent, ++/*544201*/ OPC_CheckType, MVT::v4i64, ++/*544203*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*544205*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*544213*/ 0, /*End of Scope*/ ++/*544214*/ /*Scope*/ 113, /*->544328*/ ++/*544215*/ OPC_MoveChild0, ++/*544216*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*544219*/ OPC_CheckChild0Integer, 1, ++/*544221*/ OPC_CheckChild0Type, MVT::i64, ++/*544223*/ OPC_CheckChild1Integer, 1, ++/*544225*/ OPC_CheckChild1Type, MVT::i64, ++/*544227*/ OPC_CheckChild2Integer, 1, ++/*544229*/ OPC_CheckChild2Type, MVT::i64, ++/*544231*/ OPC_CheckChild3Integer, 1, ++/*544233*/ OPC_CheckChild3Type, MVT::i64, ++/*544235*/ OPC_MoveParent, ++/*544236*/ OPC_MoveChild1, ++/*544237*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*544240*/ OPC_Scope, 42, /*->544284*/ // 2 children in Scope ++/*544242*/ OPC_CheckChild0Same, 0, ++/*544244*/ OPC_CheckChild1Same, 1, ++/*544246*/ OPC_MoveParent, ++/*544247*/ OPC_MoveParent, ++/*544248*/ OPC_MoveParent, ++/*544249*/ OPC_MoveChild1, ++/*544250*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*544253*/ OPC_CheckChild0Integer, 1, ++/*544255*/ OPC_CheckChild0Type, MVT::i64, ++/*544257*/ OPC_CheckChild1Integer, 1, ++/*544259*/ OPC_CheckChild1Type, MVT::i64, ++/*544261*/ OPC_CheckChild2Integer, 1, ++/*544263*/ OPC_CheckChild2Type, MVT::i64, ++/*544265*/ OPC_CheckChild3Integer, 1, ++/*544267*/ OPC_CheckChild3Type, MVT::i64, ++/*544269*/ OPC_CheckType, MVT::v4i64, ++/*544271*/ OPC_MoveParent, ++/*544272*/ OPC_CheckType, MVT::v4i64, ++/*544274*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*544276*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*544284*/ /*Scope*/ 42, /*->544327*/ ++/*544285*/ OPC_CheckChild0Same, 1, ++/*544287*/ OPC_CheckChild1Same, 0, ++/*544289*/ OPC_MoveParent, ++/*544290*/ OPC_MoveParent, ++/*544291*/ OPC_MoveParent, ++/*544292*/ OPC_MoveChild1, ++/*544293*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*544296*/ OPC_CheckChild0Integer, 1, ++/*544298*/ OPC_CheckChild0Type, MVT::i64, ++/*544300*/ OPC_CheckChild1Integer, 1, ++/*544302*/ OPC_CheckChild1Type, MVT::i64, ++/*544304*/ OPC_CheckChild2Integer, 1, ++/*544306*/ OPC_CheckChild2Type, MVT::i64, ++/*544308*/ OPC_CheckChild3Integer, 1, ++/*544310*/ OPC_CheckChild3Type, MVT::i64, ++/*544312*/ OPC_CheckType, MVT::v4i64, ++/*544314*/ OPC_MoveParent, ++/*544315*/ OPC_CheckType, MVT::v4i64, ++/*544317*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*544319*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*544327*/ 0, /*End of Scope*/ ++/*544328*/ 0, /*End of Scope*/ ++/*544329*/ /*Scope*/ 60|128,6/*828*/, /*->545159*/ ++/*544331*/ OPC_RecordChild0, // #1 = $b ++/*544332*/ OPC_MoveChild1, ++/*544333*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*544336*/ OPC_CheckChild0Integer, 1, ++/*544338*/ OPC_CheckChild0Type, MVT::i64, ++/*544340*/ OPC_CheckChild1Integer, 1, ++/*544342*/ OPC_CheckChild1Type, MVT::i64, ++/*544344*/ OPC_CheckChild2Integer, 1, ++/*544346*/ OPC_CheckChild2Type, MVT::i64, ++/*544348*/ OPC_CheckChild3Integer, 1, ++/*544350*/ OPC_CheckChild3Type, MVT::i64, ++/*544352*/ OPC_MoveParent, ++/*544353*/ OPC_MoveParent, ++/*544354*/ OPC_MoveParent, ++/*544355*/ OPC_MoveChild1, ++/*544356*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*544359*/ OPC_CheckChild0Integer, 63, ++/*544361*/ OPC_CheckChild0Type, MVT::i64, ++/*544363*/ OPC_CheckChild1Integer, 63, ++/*544365*/ OPC_CheckChild1Type, MVT::i64, ++/*544367*/ OPC_CheckChild2Integer, 63, ++/*544369*/ OPC_CheckChild2Type, MVT::i64, ++/*544371*/ OPC_CheckChild3Integer, 63, ++/*544373*/ OPC_CheckChild3Type, MVT::i64, ++/*544375*/ OPC_CheckType, MVT::v4i64, ++/*544377*/ OPC_MoveParent, ++/*544378*/ OPC_MoveParent, ++/*544379*/ OPC_MoveChild1, ++/*544380*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*544383*/ OPC_Scope, 6|128,3/*390*/, /*->544776*/ // 4 children in Scope ++/*544386*/ OPC_MoveChild0, ++/*544387*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*544390*/ OPC_Scope, 63, /*->544455*/ // 6 children in Scope ++/*544392*/ OPC_MoveChild0, ++/*544393*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*544396*/ OPC_CheckChild0Integer, 1, ++/*544398*/ OPC_CheckChild0Type, MVT::i64, ++/*544400*/ OPC_CheckChild1Integer, 1, ++/*544402*/ OPC_CheckChild1Type, MVT::i64, ++/*544404*/ OPC_CheckChild2Integer, 1, ++/*544406*/ OPC_CheckChild2Type, MVT::i64, ++/*544408*/ OPC_CheckChild3Integer, 1, ++/*544410*/ OPC_CheckChild3Type, MVT::i64, ++/*544412*/ OPC_MoveParent, ++/*544413*/ OPC_CheckChild1Same, 0, ++/*544415*/ OPC_MoveParent, ++/*544416*/ OPC_CheckChild1Same, 1, ++/*544418*/ OPC_MoveParent, ++/*544419*/ OPC_MoveParent, ++/*544420*/ OPC_MoveChild1, ++/*544421*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*544424*/ OPC_CheckChild0Integer, 1, ++/*544426*/ OPC_CheckChild0Type, MVT::i64, ++/*544428*/ OPC_CheckChild1Integer, 1, ++/*544430*/ OPC_CheckChild1Type, MVT::i64, ++/*544432*/ OPC_CheckChild2Integer, 1, ++/*544434*/ OPC_CheckChild2Type, MVT::i64, ++/*544436*/ OPC_CheckChild3Integer, 1, ++/*544438*/ OPC_CheckChild3Type, MVT::i64, ++/*544440*/ OPC_CheckType, MVT::v4i64, ++/*544442*/ OPC_MoveParent, ++/*544443*/ OPC_CheckType, MVT::v4i64, ++/*544445*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*544447*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a), LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*544455*/ /*Scope*/ 63, /*->544519*/ ++/*544456*/ OPC_CheckChild0Same, 0, ++/*544458*/ OPC_MoveChild1, ++/*544459*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*544462*/ OPC_CheckChild0Integer, 1, ++/*544464*/ OPC_CheckChild0Type, MVT::i64, ++/*544466*/ OPC_CheckChild1Integer, 1, ++/*544468*/ OPC_CheckChild1Type, MVT::i64, ++/*544470*/ OPC_CheckChild2Integer, 1, ++/*544472*/ OPC_CheckChild2Type, MVT::i64, ++/*544474*/ OPC_CheckChild3Integer, 1, ++/*544476*/ OPC_CheckChild3Type, MVT::i64, ++/*544478*/ OPC_MoveParent, ++/*544479*/ OPC_MoveParent, ++/*544480*/ OPC_CheckChild1Same, 1, ++/*544482*/ OPC_MoveParent, ++/*544483*/ OPC_MoveParent, ++/*544484*/ OPC_MoveChild1, ++/*544485*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*544488*/ OPC_CheckChild0Integer, 1, ++/*544490*/ OPC_CheckChild0Type, MVT::i64, ++/*544492*/ OPC_CheckChild1Integer, 1, ++/*544494*/ OPC_CheckChild1Type, MVT::i64, ++/*544496*/ OPC_CheckChild2Integer, 1, ++/*544498*/ OPC_CheckChild2Type, MVT::i64, ++/*544500*/ OPC_CheckChild3Integer, 1, ++/*544502*/ OPC_CheckChild3Type, MVT::i64, ++/*544504*/ OPC_CheckType, MVT::v4i64, ++/*544506*/ OPC_MoveParent, ++/*544507*/ OPC_CheckType, MVT::v4i64, ++/*544509*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*544511*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*544519*/ /*Scope*/ 63, /*->544583*/ ++/*544520*/ OPC_MoveChild0, ++/*544521*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*544524*/ OPC_CheckChild0Integer, 1, ++/*544526*/ OPC_CheckChild0Type, MVT::i64, ++/*544528*/ OPC_CheckChild1Integer, 1, ++/*544530*/ OPC_CheckChild1Type, MVT::i64, ++/*544532*/ OPC_CheckChild2Integer, 1, ++/*544534*/ OPC_CheckChild2Type, MVT::i64, ++/*544536*/ OPC_CheckChild3Integer, 1, ++/*544538*/ OPC_CheckChild3Type, MVT::i64, ++/*544540*/ OPC_MoveParent, ++/*544541*/ OPC_CheckChild1Same, 1, ++/*544543*/ OPC_MoveParent, ++/*544544*/ OPC_CheckChild1Same, 0, ++/*544546*/ OPC_MoveParent, ++/*544547*/ OPC_MoveParent, ++/*544548*/ OPC_MoveChild1, ++/*544549*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*544552*/ OPC_CheckChild0Integer, 1, ++/*544554*/ OPC_CheckChild0Type, MVT::i64, ++/*544556*/ OPC_CheckChild1Integer, 1, ++/*544558*/ OPC_CheckChild1Type, MVT::i64, ++/*544560*/ OPC_CheckChild2Integer, 1, ++/*544562*/ OPC_CheckChild2Type, MVT::i64, ++/*544564*/ OPC_CheckChild3Integer, 1, ++/*544566*/ OPC_CheckChild3Type, MVT::i64, ++/*544568*/ OPC_CheckType, MVT::v4i64, ++/*544570*/ OPC_MoveParent, ++/*544571*/ OPC_CheckType, MVT::v4i64, ++/*544573*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*544575*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b), LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*544583*/ /*Scope*/ 63, /*->544647*/ ++/*544584*/ OPC_CheckChild0Same, 1, ++/*544586*/ OPC_MoveChild1, ++/*544587*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*544590*/ OPC_CheckChild0Integer, 1, ++/*544592*/ OPC_CheckChild0Type, MVT::i64, ++/*544594*/ OPC_CheckChild1Integer, 1, ++/*544596*/ OPC_CheckChild1Type, MVT::i64, ++/*544598*/ OPC_CheckChild2Integer, 1, ++/*544600*/ OPC_CheckChild2Type, MVT::i64, ++/*544602*/ OPC_CheckChild3Integer, 1, ++/*544604*/ OPC_CheckChild3Type, MVT::i64, ++/*544606*/ OPC_MoveParent, ++/*544607*/ OPC_MoveParent, ++/*544608*/ OPC_CheckChild1Same, 0, ++/*544610*/ OPC_MoveParent, ++/*544611*/ OPC_MoveParent, ++/*544612*/ OPC_MoveChild1, ++/*544613*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*544616*/ OPC_CheckChild0Integer, 1, ++/*544618*/ OPC_CheckChild0Type, MVT::i64, ++/*544620*/ OPC_CheckChild1Integer, 1, ++/*544622*/ OPC_CheckChild1Type, MVT::i64, ++/*544624*/ OPC_CheckChild2Integer, 1, ++/*544626*/ OPC_CheckChild2Type, MVT::i64, ++/*544628*/ OPC_CheckChild3Integer, 1, ++/*544630*/ OPC_CheckChild3Type, MVT::i64, ++/*544632*/ OPC_CheckType, MVT::v4i64, ++/*544634*/ OPC_MoveParent, ++/*544635*/ OPC_CheckType, MVT::v4i64, ++/*544637*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*544639*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*544647*/ /*Scope*/ 63, /*->544711*/ ++/*544648*/ OPC_CheckChild0Same, 0, ++/*544650*/ OPC_CheckChild1Same, 1, ++/*544652*/ OPC_MoveParent, ++/*544653*/ OPC_MoveChild1, ++/*544654*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*544657*/ OPC_CheckChild0Integer, 1, ++/*544659*/ OPC_CheckChild0Type, MVT::i64, ++/*544661*/ OPC_CheckChild1Integer, 1, ++/*544663*/ OPC_CheckChild1Type, MVT::i64, ++/*544665*/ OPC_CheckChild2Integer, 1, ++/*544667*/ OPC_CheckChild2Type, MVT::i64, ++/*544669*/ OPC_CheckChild3Integer, 1, ++/*544671*/ OPC_CheckChild3Type, MVT::i64, ++/*544673*/ OPC_MoveParent, ++/*544674*/ OPC_MoveParent, ++/*544675*/ OPC_MoveParent, ++/*544676*/ OPC_MoveChild1, ++/*544677*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*544680*/ OPC_CheckChild0Integer, 1, ++/*544682*/ OPC_CheckChild0Type, MVT::i64, ++/*544684*/ OPC_CheckChild1Integer, 1, ++/*544686*/ OPC_CheckChild1Type, MVT::i64, ++/*544688*/ OPC_CheckChild2Integer, 1, ++/*544690*/ OPC_CheckChild2Type, MVT::i64, ++/*544692*/ OPC_CheckChild3Integer, 1, ++/*544694*/ OPC_CheckChild3Type, MVT::i64, ++/*544696*/ OPC_CheckType, MVT::v4i64, ++/*544698*/ OPC_MoveParent, ++/*544699*/ OPC_CheckType, MVT::v4i64, ++/*544701*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*544703*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*544711*/ /*Scope*/ 63, /*->544775*/ ++/*544712*/ OPC_CheckChild0Same, 1, ++/*544714*/ OPC_CheckChild1Same, 0, ++/*544716*/ OPC_MoveParent, ++/*544717*/ OPC_MoveChild1, ++/*544718*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*544721*/ OPC_CheckChild0Integer, 1, ++/*544723*/ OPC_CheckChild0Type, MVT::i64, ++/*544725*/ OPC_CheckChild1Integer, 1, ++/*544727*/ OPC_CheckChild1Type, MVT::i64, ++/*544729*/ OPC_CheckChild2Integer, 1, ++/*544731*/ OPC_CheckChild2Type, MVT::i64, ++/*544733*/ OPC_CheckChild3Integer, 1, ++/*544735*/ OPC_CheckChild3Type, MVT::i64, ++/*544737*/ OPC_MoveParent, ++/*544738*/ OPC_MoveParent, ++/*544739*/ OPC_MoveParent, ++/*544740*/ OPC_MoveChild1, ++/*544741*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*544744*/ OPC_CheckChild0Integer, 1, ++/*544746*/ OPC_CheckChild0Type, MVT::i64, ++/*544748*/ OPC_CheckChild1Integer, 1, ++/*544750*/ OPC_CheckChild1Type, MVT::i64, ++/*544752*/ OPC_CheckChild2Integer, 1, ++/*544754*/ OPC_CheckChild2Type, MVT::i64, ++/*544756*/ OPC_CheckChild3Integer, 1, ++/*544758*/ OPC_CheckChild3Type, MVT::i64, ++/*544760*/ OPC_CheckType, MVT::v4i64, ++/*544762*/ OPC_MoveParent, ++/*544763*/ OPC_CheckType, MVT::v4i64, ++/*544765*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*544767*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*544775*/ 0, /*End of Scope*/ ++/*544776*/ /*Scope*/ 4|128,1/*132*/, /*->544910*/ ++/*544778*/ OPC_CheckChild0Same, 1, ++/*544780*/ OPC_MoveChild1, ++/*544781*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*544784*/ OPC_Scope, 61, /*->544847*/ // 2 children in Scope ++/*544786*/ OPC_MoveChild0, ++/*544787*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*544790*/ OPC_CheckChild0Integer, 1, ++/*544792*/ OPC_CheckChild0Type, MVT::i64, ++/*544794*/ OPC_CheckChild1Integer, 1, ++/*544796*/ OPC_CheckChild1Type, MVT::i64, ++/*544798*/ OPC_CheckChild2Integer, 1, ++/*544800*/ OPC_CheckChild2Type, MVT::i64, ++/*544802*/ OPC_CheckChild3Integer, 1, ++/*544804*/ OPC_CheckChild3Type, MVT::i64, ++/*544806*/ OPC_MoveParent, ++/*544807*/ OPC_CheckChild1Same, 0, ++/*544809*/ OPC_MoveParent, ++/*544810*/ OPC_MoveParent, ++/*544811*/ OPC_MoveParent, ++/*544812*/ OPC_MoveChild1, ++/*544813*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*544816*/ OPC_CheckChild0Integer, 1, ++/*544818*/ OPC_CheckChild0Type, MVT::i64, ++/*544820*/ OPC_CheckChild1Integer, 1, ++/*544822*/ OPC_CheckChild1Type, MVT::i64, ++/*544824*/ OPC_CheckChild2Integer, 1, ++/*544826*/ OPC_CheckChild2Type, MVT::i64, ++/*544828*/ OPC_CheckChild3Integer, 1, ++/*544830*/ OPC_CheckChild3Type, MVT::i64, ++/*544832*/ OPC_CheckType, MVT::v4i64, ++/*544834*/ OPC_MoveParent, ++/*544835*/ OPC_CheckType, MVT::v4i64, ++/*544837*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*544839*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*544847*/ /*Scope*/ 61, /*->544909*/ ++/*544848*/ OPC_CheckChild0Same, 0, ++/*544850*/ OPC_MoveChild1, ++/*544851*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*544854*/ OPC_CheckChild0Integer, 1, ++/*544856*/ OPC_CheckChild0Type, MVT::i64, ++/*544858*/ OPC_CheckChild1Integer, 1, ++/*544860*/ OPC_CheckChild1Type, MVT::i64, ++/*544862*/ OPC_CheckChild2Integer, 1, ++/*544864*/ OPC_CheckChild2Type, MVT::i64, ++/*544866*/ OPC_CheckChild3Integer, 1, ++/*544868*/ OPC_CheckChild3Type, MVT::i64, ++/*544870*/ OPC_MoveParent, ++/*544871*/ OPC_MoveParent, ++/*544872*/ OPC_MoveParent, ++/*544873*/ OPC_MoveParent, ++/*544874*/ OPC_MoveChild1, ++/*544875*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*544878*/ OPC_CheckChild0Integer, 1, ++/*544880*/ OPC_CheckChild0Type, MVT::i64, ++/*544882*/ OPC_CheckChild1Integer, 1, ++/*544884*/ OPC_CheckChild1Type, MVT::i64, ++/*544886*/ OPC_CheckChild2Integer, 1, ++/*544888*/ OPC_CheckChild2Type, MVT::i64, ++/*544890*/ OPC_CheckChild3Integer, 1, ++/*544892*/ OPC_CheckChild3Type, MVT::i64, ++/*544894*/ OPC_CheckType, MVT::v4i64, ++/*544896*/ OPC_MoveParent, ++/*544897*/ OPC_CheckType, MVT::v4i64, ++/*544899*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*544901*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*544909*/ 0, /*End of Scope*/ ++/*544910*/ /*Scope*/ 4|128,1/*132*/, /*->545044*/ ++/*544912*/ OPC_CheckChild0Same, 0, ++/*544914*/ OPC_MoveChild1, ++/*544915*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*544918*/ OPC_Scope, 61, /*->544981*/ // 2 children in Scope ++/*544920*/ OPC_MoveChild0, ++/*544921*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*544924*/ OPC_CheckChild0Integer, 1, ++/*544926*/ OPC_CheckChild0Type, MVT::i64, ++/*544928*/ OPC_CheckChild1Integer, 1, ++/*544930*/ OPC_CheckChild1Type, MVT::i64, ++/*544932*/ OPC_CheckChild2Integer, 1, ++/*544934*/ OPC_CheckChild2Type, MVT::i64, ++/*544936*/ OPC_CheckChild3Integer, 1, ++/*544938*/ OPC_CheckChild3Type, MVT::i64, ++/*544940*/ OPC_MoveParent, ++/*544941*/ OPC_CheckChild1Same, 1, ++/*544943*/ OPC_MoveParent, ++/*544944*/ OPC_MoveParent, ++/*544945*/ OPC_MoveParent, ++/*544946*/ OPC_MoveChild1, ++/*544947*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*544950*/ OPC_CheckChild0Integer, 1, ++/*544952*/ OPC_CheckChild0Type, MVT::i64, ++/*544954*/ OPC_CheckChild1Integer, 1, ++/*544956*/ OPC_CheckChild1Type, MVT::i64, ++/*544958*/ OPC_CheckChild2Integer, 1, ++/*544960*/ OPC_CheckChild2Type, MVT::i64, ++/*544962*/ OPC_CheckChild3Integer, 1, ++/*544964*/ OPC_CheckChild3Type, MVT::i64, ++/*544966*/ OPC_CheckType, MVT::v4i64, ++/*544968*/ OPC_MoveParent, ++/*544969*/ OPC_CheckType, MVT::v4i64, ++/*544971*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*544973*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*544981*/ /*Scope*/ 61, /*->545043*/ ++/*544982*/ OPC_CheckChild0Same, 1, ++/*544984*/ OPC_MoveChild1, ++/*544985*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*544988*/ OPC_CheckChild0Integer, 1, ++/*544990*/ OPC_CheckChild0Type, MVT::i64, ++/*544992*/ OPC_CheckChild1Integer, 1, ++/*544994*/ OPC_CheckChild1Type, MVT::i64, ++/*544996*/ OPC_CheckChild2Integer, 1, ++/*544998*/ OPC_CheckChild2Type, MVT::i64, ++/*545000*/ OPC_CheckChild3Integer, 1, ++/*545002*/ OPC_CheckChild3Type, MVT::i64, ++/*545004*/ OPC_MoveParent, ++/*545005*/ OPC_MoveParent, ++/*545006*/ OPC_MoveParent, ++/*545007*/ OPC_MoveParent, ++/*545008*/ OPC_MoveChild1, ++/*545009*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*545012*/ OPC_CheckChild0Integer, 1, ++/*545014*/ OPC_CheckChild0Type, MVT::i64, ++/*545016*/ OPC_CheckChild1Integer, 1, ++/*545018*/ OPC_CheckChild1Type, MVT::i64, ++/*545020*/ OPC_CheckChild2Integer, 1, ++/*545022*/ OPC_CheckChild2Type, MVT::i64, ++/*545024*/ OPC_CheckChild3Integer, 1, ++/*545026*/ OPC_CheckChild3Type, MVT::i64, ++/*545028*/ OPC_CheckType, MVT::v4i64, ++/*545030*/ OPC_MoveParent, ++/*545031*/ OPC_CheckType, MVT::v4i64, ++/*545033*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*545035*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*545043*/ 0, /*End of Scope*/ ++/*545044*/ /*Scope*/ 113, /*->545158*/ ++/*545045*/ OPC_MoveChild0, ++/*545046*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*545049*/ OPC_CheckChild0Integer, 1, ++/*545051*/ OPC_CheckChild0Type, MVT::i64, ++/*545053*/ OPC_CheckChild1Integer, 1, ++/*545055*/ OPC_CheckChild1Type, MVT::i64, ++/*545057*/ OPC_CheckChild2Integer, 1, ++/*545059*/ OPC_CheckChild2Type, MVT::i64, ++/*545061*/ OPC_CheckChild3Integer, 1, ++/*545063*/ OPC_CheckChild3Type, MVT::i64, ++/*545065*/ OPC_MoveParent, ++/*545066*/ OPC_MoveChild1, ++/*545067*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*545070*/ OPC_Scope, 42, /*->545114*/ // 2 children in Scope ++/*545072*/ OPC_CheckChild0Same, 0, ++/*545074*/ OPC_CheckChild1Same, 1, ++/*545076*/ OPC_MoveParent, ++/*545077*/ OPC_MoveParent, ++/*545078*/ OPC_MoveParent, ++/*545079*/ OPC_MoveChild1, ++/*545080*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*545083*/ OPC_CheckChild0Integer, 1, ++/*545085*/ OPC_CheckChild0Type, MVT::i64, ++/*545087*/ OPC_CheckChild1Integer, 1, ++/*545089*/ OPC_CheckChild1Type, MVT::i64, ++/*545091*/ OPC_CheckChild2Integer, 1, ++/*545093*/ OPC_CheckChild2Type, MVT::i64, ++/*545095*/ OPC_CheckChild3Integer, 1, ++/*545097*/ OPC_CheckChild3Type, MVT::i64, ++/*545099*/ OPC_CheckType, MVT::v4i64, ++/*545101*/ OPC_MoveParent, ++/*545102*/ OPC_CheckType, MVT::v4i64, ++/*545104*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*545106*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*545114*/ /*Scope*/ 42, /*->545157*/ ++/*545115*/ OPC_CheckChild0Same, 1, ++/*545117*/ OPC_CheckChild1Same, 0, ++/*545119*/ OPC_MoveParent, ++/*545120*/ OPC_MoveParent, ++/*545121*/ OPC_MoveParent, ++/*545122*/ OPC_MoveChild1, ++/*545123*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*545126*/ OPC_CheckChild0Integer, 1, ++/*545128*/ OPC_CheckChild0Type, MVT::i64, ++/*545130*/ OPC_CheckChild1Integer, 1, ++/*545132*/ OPC_CheckChild1Type, MVT::i64, ++/*545134*/ OPC_CheckChild2Integer, 1, ++/*545136*/ OPC_CheckChild2Type, MVT::i64, ++/*545138*/ OPC_CheckChild3Integer, 1, ++/*545140*/ OPC_CheckChild3Type, MVT::i64, ++/*545142*/ OPC_CheckType, MVT::v4i64, ++/*545144*/ OPC_MoveParent, ++/*545145*/ OPC_CheckType, MVT::v4i64, ++/*545147*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*545149*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*545157*/ 0, /*End of Scope*/ ++/*545158*/ 0, /*End of Scope*/ ++/*545159*/ 0, /*End of Scope*/ ++/*545160*/ /*Scope*/ 72|128,12/*1608*/, /*->546770*/ ++/*545162*/ OPC_MoveChild0, ++/*545163*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*545166*/ OPC_CheckChild0Integer, 1, ++/*545168*/ OPC_CheckChild0Type, MVT::i64, ++/*545170*/ OPC_CheckChild1Integer, 1, ++/*545172*/ OPC_CheckChild1Type, MVT::i64, ++/*545174*/ OPC_CheckChild2Integer, 1, ++/*545176*/ OPC_CheckChild2Type, MVT::i64, ++/*545178*/ OPC_CheckChild3Integer, 1, ++/*545180*/ OPC_CheckChild3Type, MVT::i64, ++/*545182*/ OPC_MoveParent, ++/*545183*/ OPC_MoveChild1, ++/*545184*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*545187*/ OPC_RecordChild0, // #0 = $a ++/*545188*/ OPC_RecordChild1, // #1 = $b ++/*545189*/ OPC_MoveParent, ++/*545190*/ OPC_MoveParent, ++/*545191*/ OPC_MoveChild1, ++/*545192*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*545195*/ OPC_CheckChild0Integer, 63, ++/*545197*/ OPC_CheckChild0Type, MVT::i64, ++/*545199*/ OPC_CheckChild1Integer, 63, ++/*545201*/ OPC_CheckChild1Type, MVT::i64, ++/*545203*/ OPC_CheckChild2Integer, 63, ++/*545205*/ OPC_CheckChild2Type, MVT::i64, ++/*545207*/ OPC_CheckChild3Integer, 63, ++/*545209*/ OPC_CheckChild3Type, MVT::i64, ++/*545211*/ OPC_CheckType, MVT::v4i64, ++/*545213*/ OPC_MoveParent, ++/*545214*/ OPC_MoveParent, ++/*545215*/ OPC_MoveChild1, ++/*545216*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*545219*/ OPC_Scope, 6|128,3/*390*/, /*->545612*/ // 7 children in Scope ++/*545222*/ OPC_MoveChild0, ++/*545223*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*545226*/ OPC_Scope, 63, /*->545291*/ // 6 children in Scope ++/*545228*/ OPC_MoveChild0, ++/*545229*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*545232*/ OPC_CheckChild0Integer, 1, ++/*545234*/ OPC_CheckChild0Type, MVT::i64, ++/*545236*/ OPC_CheckChild1Integer, 1, ++/*545238*/ OPC_CheckChild1Type, MVT::i64, ++/*545240*/ OPC_CheckChild2Integer, 1, ++/*545242*/ OPC_CheckChild2Type, MVT::i64, ++/*545244*/ OPC_CheckChild3Integer, 1, ++/*545246*/ OPC_CheckChild3Type, MVT::i64, ++/*545248*/ OPC_MoveParent, ++/*545249*/ OPC_CheckChild1Same, 0, ++/*545251*/ OPC_MoveParent, ++/*545252*/ OPC_CheckChild1Same, 1, ++/*545254*/ OPC_MoveParent, ++/*545255*/ OPC_MoveParent, ++/*545256*/ OPC_MoveChild1, ++/*545257*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*545260*/ OPC_CheckChild0Integer, 1, ++/*545262*/ OPC_CheckChild0Type, MVT::i64, ++/*545264*/ OPC_CheckChild1Integer, 1, ++/*545266*/ OPC_CheckChild1Type, MVT::i64, ++/*545268*/ OPC_CheckChild2Integer, 1, ++/*545270*/ OPC_CheckChild2Type, MVT::i64, ++/*545272*/ OPC_CheckChild3Integer, 1, ++/*545274*/ OPC_CheckChild3Type, MVT::i64, ++/*545276*/ OPC_CheckType, MVT::v4i64, ++/*545278*/ OPC_MoveParent, ++/*545279*/ OPC_CheckType, MVT::v4i64, ++/*545281*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*545283*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a), LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*545291*/ /*Scope*/ 63, /*->545355*/ ++/*545292*/ OPC_CheckChild0Same, 0, ++/*545294*/ OPC_MoveChild1, ++/*545295*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*545298*/ OPC_CheckChild0Integer, 1, ++/*545300*/ OPC_CheckChild0Type, MVT::i64, ++/*545302*/ OPC_CheckChild1Integer, 1, ++/*545304*/ OPC_CheckChild1Type, MVT::i64, ++/*545306*/ OPC_CheckChild2Integer, 1, ++/*545308*/ OPC_CheckChild2Type, MVT::i64, ++/*545310*/ OPC_CheckChild3Integer, 1, ++/*545312*/ OPC_CheckChild3Type, MVT::i64, ++/*545314*/ OPC_MoveParent, ++/*545315*/ OPC_MoveParent, ++/*545316*/ OPC_CheckChild1Same, 1, ++/*545318*/ OPC_MoveParent, ++/*545319*/ OPC_MoveParent, ++/*545320*/ OPC_MoveChild1, ++/*545321*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*545324*/ OPC_CheckChild0Integer, 1, ++/*545326*/ OPC_CheckChild0Type, MVT::i64, ++/*545328*/ OPC_CheckChild1Integer, 1, ++/*545330*/ OPC_CheckChild1Type, MVT::i64, ++/*545332*/ OPC_CheckChild2Integer, 1, ++/*545334*/ OPC_CheckChild2Type, MVT::i64, ++/*545336*/ OPC_CheckChild3Integer, 1, ++/*545338*/ OPC_CheckChild3Type, MVT::i64, ++/*545340*/ OPC_CheckType, MVT::v4i64, ++/*545342*/ OPC_MoveParent, ++/*545343*/ OPC_CheckType, MVT::v4i64, ++/*545345*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*545347*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*545355*/ /*Scope*/ 63, /*->545419*/ ++/*545356*/ OPC_MoveChild0, ++/*545357*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*545360*/ OPC_CheckChild0Integer, 1, ++/*545362*/ OPC_CheckChild0Type, MVT::i64, ++/*545364*/ OPC_CheckChild1Integer, 1, ++/*545366*/ OPC_CheckChild1Type, MVT::i64, ++/*545368*/ OPC_CheckChild2Integer, 1, ++/*545370*/ OPC_CheckChild2Type, MVT::i64, ++/*545372*/ OPC_CheckChild3Integer, 1, ++/*545374*/ OPC_CheckChild3Type, MVT::i64, ++/*545376*/ OPC_MoveParent, ++/*545377*/ OPC_CheckChild1Same, 1, ++/*545379*/ OPC_MoveParent, ++/*545380*/ OPC_CheckChild1Same, 0, ++/*545382*/ OPC_MoveParent, ++/*545383*/ OPC_MoveParent, ++/*545384*/ OPC_MoveChild1, ++/*545385*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*545388*/ OPC_CheckChild0Integer, 1, ++/*545390*/ OPC_CheckChild0Type, MVT::i64, ++/*545392*/ OPC_CheckChild1Integer, 1, ++/*545394*/ OPC_CheckChild1Type, MVT::i64, ++/*545396*/ OPC_CheckChild2Integer, 1, ++/*545398*/ OPC_CheckChild2Type, MVT::i64, ++/*545400*/ OPC_CheckChild3Integer, 1, ++/*545402*/ OPC_CheckChild3Type, MVT::i64, ++/*545404*/ OPC_CheckType, MVT::v4i64, ++/*545406*/ OPC_MoveParent, ++/*545407*/ OPC_CheckType, MVT::v4i64, ++/*545409*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*545411*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b), LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*545419*/ /*Scope*/ 63, /*->545483*/ ++/*545420*/ OPC_CheckChild0Same, 1, ++/*545422*/ OPC_MoveChild1, ++/*545423*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*545426*/ OPC_CheckChild0Integer, 1, ++/*545428*/ OPC_CheckChild0Type, MVT::i64, ++/*545430*/ OPC_CheckChild1Integer, 1, ++/*545432*/ OPC_CheckChild1Type, MVT::i64, ++/*545434*/ OPC_CheckChild2Integer, 1, ++/*545436*/ OPC_CheckChild2Type, MVT::i64, ++/*545438*/ OPC_CheckChild3Integer, 1, ++/*545440*/ OPC_CheckChild3Type, MVT::i64, ++/*545442*/ OPC_MoveParent, ++/*545443*/ OPC_MoveParent, ++/*545444*/ OPC_CheckChild1Same, 0, ++/*545446*/ OPC_MoveParent, ++/*545447*/ OPC_MoveParent, ++/*545448*/ OPC_MoveChild1, ++/*545449*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*545452*/ OPC_CheckChild0Integer, 1, ++/*545454*/ OPC_CheckChild0Type, MVT::i64, ++/*545456*/ OPC_CheckChild1Integer, 1, ++/*545458*/ OPC_CheckChild1Type, MVT::i64, ++/*545460*/ OPC_CheckChild2Integer, 1, ++/*545462*/ OPC_CheckChild2Type, MVT::i64, ++/*545464*/ OPC_CheckChild3Integer, 1, ++/*545466*/ OPC_CheckChild3Type, MVT::i64, ++/*545468*/ OPC_CheckType, MVT::v4i64, ++/*545470*/ OPC_MoveParent, ++/*545471*/ OPC_CheckType, MVT::v4i64, ++/*545473*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*545475*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*545483*/ /*Scope*/ 63, /*->545547*/ ++/*545484*/ OPC_CheckChild0Same, 0, ++/*545486*/ OPC_CheckChild1Same, 1, ++/*545488*/ OPC_MoveParent, ++/*545489*/ OPC_MoveChild1, ++/*545490*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*545493*/ OPC_CheckChild0Integer, 1, ++/*545495*/ OPC_CheckChild0Type, MVT::i64, ++/*545497*/ OPC_CheckChild1Integer, 1, ++/*545499*/ OPC_CheckChild1Type, MVT::i64, ++/*545501*/ OPC_CheckChild2Integer, 1, ++/*545503*/ OPC_CheckChild2Type, MVT::i64, ++/*545505*/ OPC_CheckChild3Integer, 1, ++/*545507*/ OPC_CheckChild3Type, MVT::i64, ++/*545509*/ OPC_MoveParent, ++/*545510*/ OPC_MoveParent, ++/*545511*/ OPC_MoveParent, ++/*545512*/ OPC_MoveChild1, ++/*545513*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*545516*/ OPC_CheckChild0Integer, 1, ++/*545518*/ OPC_CheckChild0Type, MVT::i64, ++/*545520*/ OPC_CheckChild1Integer, 1, ++/*545522*/ OPC_CheckChild1Type, MVT::i64, ++/*545524*/ OPC_CheckChild2Integer, 1, ++/*545526*/ OPC_CheckChild2Type, MVT::i64, ++/*545528*/ OPC_CheckChild3Integer, 1, ++/*545530*/ OPC_CheckChild3Type, MVT::i64, ++/*545532*/ OPC_CheckType, MVT::v4i64, ++/*545534*/ OPC_MoveParent, ++/*545535*/ OPC_CheckType, MVT::v4i64, ++/*545537*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*545539*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*545547*/ /*Scope*/ 63, /*->545611*/ ++/*545548*/ OPC_CheckChild0Same, 1, ++/*545550*/ OPC_CheckChild1Same, 0, ++/*545552*/ OPC_MoveParent, ++/*545553*/ OPC_MoveChild1, ++/*545554*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*545557*/ OPC_CheckChild0Integer, 1, ++/*545559*/ OPC_CheckChild0Type, MVT::i64, ++/*545561*/ OPC_CheckChild1Integer, 1, ++/*545563*/ OPC_CheckChild1Type, MVT::i64, ++/*545565*/ OPC_CheckChild2Integer, 1, ++/*545567*/ OPC_CheckChild2Type, MVT::i64, ++/*545569*/ OPC_CheckChild3Integer, 1, ++/*545571*/ OPC_CheckChild3Type, MVT::i64, ++/*545573*/ OPC_MoveParent, ++/*545574*/ OPC_MoveParent, ++/*545575*/ OPC_MoveParent, ++/*545576*/ OPC_MoveChild1, ++/*545577*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*545580*/ OPC_CheckChild0Integer, 1, ++/*545582*/ OPC_CheckChild0Type, MVT::i64, ++/*545584*/ OPC_CheckChild1Integer, 1, ++/*545586*/ OPC_CheckChild1Type, MVT::i64, ++/*545588*/ OPC_CheckChild2Integer, 1, ++/*545590*/ OPC_CheckChild2Type, MVT::i64, ++/*545592*/ OPC_CheckChild3Integer, 1, ++/*545594*/ OPC_CheckChild3Type, MVT::i64, ++/*545596*/ OPC_CheckType, MVT::v4i64, ++/*545598*/ OPC_MoveParent, ++/*545599*/ OPC_CheckType, MVT::v4i64, ++/*545601*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*545603*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*545611*/ 0, /*End of Scope*/ ++/*545612*/ /*Scope*/ 4|128,1/*132*/, /*->545746*/ ++/*545614*/ OPC_CheckChild0Same, 1, ++/*545616*/ OPC_MoveChild1, ++/*545617*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*545620*/ OPC_Scope, 61, /*->545683*/ // 2 children in Scope ++/*545622*/ OPC_MoveChild0, ++/*545623*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*545626*/ OPC_CheckChild0Integer, 1, ++/*545628*/ OPC_CheckChild0Type, MVT::i64, ++/*545630*/ OPC_CheckChild1Integer, 1, ++/*545632*/ OPC_CheckChild1Type, MVT::i64, ++/*545634*/ OPC_CheckChild2Integer, 1, ++/*545636*/ OPC_CheckChild2Type, MVT::i64, ++/*545638*/ OPC_CheckChild3Integer, 1, ++/*545640*/ OPC_CheckChild3Type, MVT::i64, ++/*545642*/ OPC_MoveParent, ++/*545643*/ OPC_CheckChild1Same, 0, ++/*545645*/ OPC_MoveParent, ++/*545646*/ OPC_MoveParent, ++/*545647*/ OPC_MoveParent, ++/*545648*/ OPC_MoveChild1, ++/*545649*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*545652*/ OPC_CheckChild0Integer, 1, ++/*545654*/ OPC_CheckChild0Type, MVT::i64, ++/*545656*/ OPC_CheckChild1Integer, 1, ++/*545658*/ OPC_CheckChild1Type, MVT::i64, ++/*545660*/ OPC_CheckChild2Integer, 1, ++/*545662*/ OPC_CheckChild2Type, MVT::i64, ++/*545664*/ OPC_CheckChild3Integer, 1, ++/*545666*/ OPC_CheckChild3Type, MVT::i64, ++/*545668*/ OPC_CheckType, MVT::v4i64, ++/*545670*/ OPC_MoveParent, ++/*545671*/ OPC_CheckType, MVT::v4i64, ++/*545673*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*545675*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*545683*/ /*Scope*/ 61, /*->545745*/ ++/*545684*/ OPC_CheckChild0Same, 0, ++/*545686*/ OPC_MoveChild1, ++/*545687*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*545690*/ OPC_CheckChild0Integer, 1, ++/*545692*/ OPC_CheckChild0Type, MVT::i64, ++/*545694*/ OPC_CheckChild1Integer, 1, ++/*545696*/ OPC_CheckChild1Type, MVT::i64, ++/*545698*/ OPC_CheckChild2Integer, 1, ++/*545700*/ OPC_CheckChild2Type, MVT::i64, ++/*545702*/ OPC_CheckChild3Integer, 1, ++/*545704*/ OPC_CheckChild3Type, MVT::i64, ++/*545706*/ OPC_MoveParent, ++/*545707*/ OPC_MoveParent, ++/*545708*/ OPC_MoveParent, ++/*545709*/ OPC_MoveParent, ++/*545710*/ OPC_MoveChild1, ++/*545711*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*545714*/ OPC_CheckChild0Integer, 1, ++/*545716*/ OPC_CheckChild0Type, MVT::i64, ++/*545718*/ OPC_CheckChild1Integer, 1, ++/*545720*/ OPC_CheckChild1Type, MVT::i64, ++/*545722*/ OPC_CheckChild2Integer, 1, ++/*545724*/ OPC_CheckChild2Type, MVT::i64, ++/*545726*/ OPC_CheckChild3Integer, 1, ++/*545728*/ OPC_CheckChild3Type, MVT::i64, ++/*545730*/ OPC_CheckType, MVT::v4i64, ++/*545732*/ OPC_MoveParent, ++/*545733*/ OPC_CheckType, MVT::v4i64, ++/*545735*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*545737*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*545745*/ 0, /*End of Scope*/ ++/*545746*/ /*Scope*/ 4|128,1/*132*/, /*->545880*/ ++/*545748*/ OPC_CheckChild0Same, 0, ++/*545750*/ OPC_MoveChild1, ++/*545751*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*545754*/ OPC_Scope, 61, /*->545817*/ // 2 children in Scope ++/*545756*/ OPC_MoveChild0, ++/*545757*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*545760*/ OPC_CheckChild0Integer, 1, ++/*545762*/ OPC_CheckChild0Type, MVT::i64, ++/*545764*/ OPC_CheckChild1Integer, 1, ++/*545766*/ OPC_CheckChild1Type, MVT::i64, ++/*545768*/ OPC_CheckChild2Integer, 1, ++/*545770*/ OPC_CheckChild2Type, MVT::i64, ++/*545772*/ OPC_CheckChild3Integer, 1, ++/*545774*/ OPC_CheckChild3Type, MVT::i64, ++/*545776*/ OPC_MoveParent, ++/*545777*/ OPC_CheckChild1Same, 1, ++/*545779*/ OPC_MoveParent, ++/*545780*/ OPC_MoveParent, ++/*545781*/ OPC_MoveParent, ++/*545782*/ OPC_MoveChild1, ++/*545783*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*545786*/ OPC_CheckChild0Integer, 1, ++/*545788*/ OPC_CheckChild0Type, MVT::i64, ++/*545790*/ OPC_CheckChild1Integer, 1, ++/*545792*/ OPC_CheckChild1Type, MVT::i64, ++/*545794*/ OPC_CheckChild2Integer, 1, ++/*545796*/ OPC_CheckChild2Type, MVT::i64, ++/*545798*/ OPC_CheckChild3Integer, 1, ++/*545800*/ OPC_CheckChild3Type, MVT::i64, ++/*545802*/ OPC_CheckType, MVT::v4i64, ++/*545804*/ OPC_MoveParent, ++/*545805*/ OPC_CheckType, MVT::v4i64, ++/*545807*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*545809*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*545817*/ /*Scope*/ 61, /*->545879*/ ++/*545818*/ OPC_CheckChild0Same, 1, ++/*545820*/ OPC_MoveChild1, ++/*545821*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*545824*/ OPC_CheckChild0Integer, 1, ++/*545826*/ OPC_CheckChild0Type, MVT::i64, ++/*545828*/ OPC_CheckChild1Integer, 1, ++/*545830*/ OPC_CheckChild1Type, MVT::i64, ++/*545832*/ OPC_CheckChild2Integer, 1, ++/*545834*/ OPC_CheckChild2Type, MVT::i64, ++/*545836*/ OPC_CheckChild3Integer, 1, ++/*545838*/ OPC_CheckChild3Type, MVT::i64, ++/*545840*/ OPC_MoveParent, ++/*545841*/ OPC_MoveParent, ++/*545842*/ OPC_MoveParent, ++/*545843*/ OPC_MoveParent, ++/*545844*/ OPC_MoveChild1, ++/*545845*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*545848*/ OPC_CheckChild0Integer, 1, ++/*545850*/ OPC_CheckChild0Type, MVT::i64, ++/*545852*/ OPC_CheckChild1Integer, 1, ++/*545854*/ OPC_CheckChild1Type, MVT::i64, ++/*545856*/ OPC_CheckChild2Integer, 1, ++/*545858*/ OPC_CheckChild2Type, MVT::i64, ++/*545860*/ OPC_CheckChild3Integer, 1, ++/*545862*/ OPC_CheckChild3Type, MVT::i64, ++/*545864*/ OPC_CheckType, MVT::v4i64, ++/*545866*/ OPC_MoveParent, ++/*545867*/ OPC_CheckType, MVT::v4i64, ++/*545869*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*545871*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*545879*/ 0, /*End of Scope*/ ++/*545880*/ /*Scope*/ 121|128,3/*505*/, /*->546387*/ ++/*545882*/ OPC_MoveChild0, ++/*545883*/ OPC_SwitchOpcode /*2 cases */, 109, TARGET_VAL(ISD::BUILD_VECTOR),// ->545996 ++/*545887*/ OPC_CheckChild0Integer, 1, ++/*545889*/ OPC_CheckChild0Type, MVT::i64, ++/*545891*/ OPC_CheckChild1Integer, 1, ++/*545893*/ OPC_CheckChild1Type, MVT::i64, ++/*545895*/ OPC_CheckChild2Integer, 1, ++/*545897*/ OPC_CheckChild2Type, MVT::i64, ++/*545899*/ OPC_CheckChild3Integer, 1, ++/*545901*/ OPC_CheckChild3Type, MVT::i64, ++/*545903*/ OPC_MoveParent, ++/*545904*/ OPC_MoveChild1, ++/*545905*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*545908*/ OPC_Scope, 42, /*->545952*/ // 2 children in Scope ++/*545910*/ OPC_CheckChild0Same, 0, ++/*545912*/ OPC_CheckChild1Same, 1, ++/*545914*/ OPC_MoveParent, ++/*545915*/ OPC_MoveParent, ++/*545916*/ OPC_MoveParent, ++/*545917*/ OPC_MoveChild1, ++/*545918*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*545921*/ OPC_CheckChild0Integer, 1, ++/*545923*/ OPC_CheckChild0Type, MVT::i64, ++/*545925*/ OPC_CheckChild1Integer, 1, ++/*545927*/ OPC_CheckChild1Type, MVT::i64, ++/*545929*/ OPC_CheckChild2Integer, 1, ++/*545931*/ OPC_CheckChild2Type, MVT::i64, ++/*545933*/ OPC_CheckChild3Integer, 1, ++/*545935*/ OPC_CheckChild3Type, MVT::i64, ++/*545937*/ OPC_CheckType, MVT::v4i64, ++/*545939*/ OPC_MoveParent, ++/*545940*/ OPC_CheckType, MVT::v4i64, ++/*545942*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*545944*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*545952*/ /*Scope*/ 42, /*->545995*/ ++/*545953*/ OPC_CheckChild0Same, 1, ++/*545955*/ OPC_CheckChild1Same, 0, ++/*545957*/ OPC_MoveParent, ++/*545958*/ OPC_MoveParent, ++/*545959*/ OPC_MoveParent, ++/*545960*/ OPC_MoveChild1, ++/*545961*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*545964*/ OPC_CheckChild0Integer, 1, ++/*545966*/ OPC_CheckChild0Type, MVT::i64, ++/*545968*/ OPC_CheckChild1Integer, 1, ++/*545970*/ OPC_CheckChild1Type, MVT::i64, ++/*545972*/ OPC_CheckChild2Integer, 1, ++/*545974*/ OPC_CheckChild2Type, MVT::i64, ++/*545976*/ OPC_CheckChild3Integer, 1, ++/*545978*/ OPC_CheckChild3Type, MVT::i64, ++/*545980*/ OPC_CheckType, MVT::v4i64, ++/*545982*/ OPC_MoveParent, ++/*545983*/ OPC_CheckType, MVT::v4i64, ++/*545985*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*545987*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*545995*/ 0, /*End of Scope*/ ++/*545996*/ /*SwitchOpcode*/ 2|128,3/*386*/, TARGET_VAL(ISD::ADD),// ->546386 ++/*546000*/ OPC_Scope, 63, /*->546065*/ // 6 children in Scope ++/*546002*/ OPC_MoveChild0, ++/*546003*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*546006*/ OPC_CheckChild0Integer, 1, ++/*546008*/ OPC_CheckChild0Type, MVT::i64, ++/*546010*/ OPC_CheckChild1Integer, 1, ++/*546012*/ OPC_CheckChild1Type, MVT::i64, ++/*546014*/ OPC_CheckChild2Integer, 1, ++/*546016*/ OPC_CheckChild2Type, MVT::i64, ++/*546018*/ OPC_CheckChild3Integer, 1, ++/*546020*/ OPC_CheckChild3Type, MVT::i64, ++/*546022*/ OPC_MoveParent, ++/*546023*/ OPC_CheckChild1Same, 1, ++/*546025*/ OPC_MoveParent, ++/*546026*/ OPC_CheckChild1Same, 0, ++/*546028*/ OPC_MoveParent, ++/*546029*/ OPC_MoveParent, ++/*546030*/ OPC_MoveChild1, ++/*546031*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*546034*/ OPC_CheckChild0Integer, 1, ++/*546036*/ OPC_CheckChild0Type, MVT::i64, ++/*546038*/ OPC_CheckChild1Integer, 1, ++/*546040*/ OPC_CheckChild1Type, MVT::i64, ++/*546042*/ OPC_CheckChild2Integer, 1, ++/*546044*/ OPC_CheckChild2Type, MVT::i64, ++/*546046*/ OPC_CheckChild3Integer, 1, ++/*546048*/ OPC_CheckChild3Type, MVT::i64, ++/*546050*/ OPC_CheckType, MVT::v4i64, ++/*546052*/ OPC_MoveParent, ++/*546053*/ OPC_CheckType, MVT::v4i64, ++/*546055*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*546057*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a), LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*546065*/ /*Scope*/ 63, /*->546129*/ ++/*546066*/ OPC_CheckChild0Same, 1, ++/*546068*/ OPC_MoveChild1, ++/*546069*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*546072*/ OPC_CheckChild0Integer, 1, ++/*546074*/ OPC_CheckChild0Type, MVT::i64, ++/*546076*/ OPC_CheckChild1Integer, 1, ++/*546078*/ OPC_CheckChild1Type, MVT::i64, ++/*546080*/ OPC_CheckChild2Integer, 1, ++/*546082*/ OPC_CheckChild2Type, MVT::i64, ++/*546084*/ OPC_CheckChild3Integer, 1, ++/*546086*/ OPC_CheckChild3Type, MVT::i64, ++/*546088*/ OPC_MoveParent, ++/*546089*/ OPC_MoveParent, ++/*546090*/ OPC_CheckChild1Same, 0, ++/*546092*/ OPC_MoveParent, ++/*546093*/ OPC_MoveParent, ++/*546094*/ OPC_MoveChild1, ++/*546095*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*546098*/ OPC_CheckChild0Integer, 1, ++/*546100*/ OPC_CheckChild0Type, MVT::i64, ++/*546102*/ OPC_CheckChild1Integer, 1, ++/*546104*/ OPC_CheckChild1Type, MVT::i64, ++/*546106*/ OPC_CheckChild2Integer, 1, ++/*546108*/ OPC_CheckChild2Type, MVT::i64, ++/*546110*/ OPC_CheckChild3Integer, 1, ++/*546112*/ OPC_CheckChild3Type, MVT::i64, ++/*546114*/ OPC_CheckType, MVT::v4i64, ++/*546116*/ OPC_MoveParent, ++/*546117*/ OPC_CheckType, MVT::v4i64, ++/*546119*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*546121*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*546129*/ /*Scope*/ 63, /*->546193*/ ++/*546130*/ OPC_MoveChild0, ++/*546131*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*546134*/ OPC_CheckChild0Integer, 1, ++/*546136*/ OPC_CheckChild0Type, MVT::i64, ++/*546138*/ OPC_CheckChild1Integer, 1, ++/*546140*/ OPC_CheckChild1Type, MVT::i64, ++/*546142*/ OPC_CheckChild2Integer, 1, ++/*546144*/ OPC_CheckChild2Type, MVT::i64, ++/*546146*/ OPC_CheckChild3Integer, 1, ++/*546148*/ OPC_CheckChild3Type, MVT::i64, ++/*546150*/ OPC_MoveParent, ++/*546151*/ OPC_CheckChild1Same, 0, ++/*546153*/ OPC_MoveParent, ++/*546154*/ OPC_CheckChild1Same, 1, ++/*546156*/ OPC_MoveParent, ++/*546157*/ OPC_MoveParent, ++/*546158*/ OPC_MoveChild1, ++/*546159*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*546162*/ OPC_CheckChild0Integer, 1, ++/*546164*/ OPC_CheckChild0Type, MVT::i64, ++/*546166*/ OPC_CheckChild1Integer, 1, ++/*546168*/ OPC_CheckChild1Type, MVT::i64, ++/*546170*/ OPC_CheckChild2Integer, 1, ++/*546172*/ OPC_CheckChild2Type, MVT::i64, ++/*546174*/ OPC_CheckChild3Integer, 1, ++/*546176*/ OPC_CheckChild3Type, MVT::i64, ++/*546178*/ OPC_CheckType, MVT::v4i64, ++/*546180*/ OPC_MoveParent, ++/*546181*/ OPC_CheckType, MVT::v4i64, ++/*546183*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*546185*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b), LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*546193*/ /*Scope*/ 63, /*->546257*/ ++/*546194*/ OPC_CheckChild0Same, 0, ++/*546196*/ OPC_MoveChild1, ++/*546197*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*546200*/ OPC_CheckChild0Integer, 1, ++/*546202*/ OPC_CheckChild0Type, MVT::i64, ++/*546204*/ OPC_CheckChild1Integer, 1, ++/*546206*/ OPC_CheckChild1Type, MVT::i64, ++/*546208*/ OPC_CheckChild2Integer, 1, ++/*546210*/ OPC_CheckChild2Type, MVT::i64, ++/*546212*/ OPC_CheckChild3Integer, 1, ++/*546214*/ OPC_CheckChild3Type, MVT::i64, ++/*546216*/ OPC_MoveParent, ++/*546217*/ OPC_MoveParent, ++/*546218*/ OPC_CheckChild1Same, 1, ++/*546220*/ OPC_MoveParent, ++/*546221*/ OPC_MoveParent, ++/*546222*/ OPC_MoveChild1, ++/*546223*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*546226*/ OPC_CheckChild0Integer, 1, ++/*546228*/ OPC_CheckChild0Type, MVT::i64, ++/*546230*/ OPC_CheckChild1Integer, 1, ++/*546232*/ OPC_CheckChild1Type, MVT::i64, ++/*546234*/ OPC_CheckChild2Integer, 1, ++/*546236*/ OPC_CheckChild2Type, MVT::i64, ++/*546238*/ OPC_CheckChild3Integer, 1, ++/*546240*/ OPC_CheckChild3Type, MVT::i64, ++/*546242*/ OPC_CheckType, MVT::v4i64, ++/*546244*/ OPC_MoveParent, ++/*546245*/ OPC_CheckType, MVT::v4i64, ++/*546247*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*546249*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*546257*/ /*Scope*/ 63, /*->546321*/ ++/*546258*/ OPC_CheckChild0Same, 1, ++/*546260*/ OPC_CheckChild1Same, 0, ++/*546262*/ OPC_MoveParent, ++/*546263*/ OPC_MoveChild1, ++/*546264*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*546267*/ OPC_CheckChild0Integer, 1, ++/*546269*/ OPC_CheckChild0Type, MVT::i64, ++/*546271*/ OPC_CheckChild1Integer, 1, ++/*546273*/ OPC_CheckChild1Type, MVT::i64, ++/*546275*/ OPC_CheckChild2Integer, 1, ++/*546277*/ OPC_CheckChild2Type, MVT::i64, ++/*546279*/ OPC_CheckChild3Integer, 1, ++/*546281*/ OPC_CheckChild3Type, MVT::i64, ++/*546283*/ OPC_MoveParent, ++/*546284*/ OPC_MoveParent, ++/*546285*/ OPC_MoveParent, ++/*546286*/ OPC_MoveChild1, ++/*546287*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*546290*/ OPC_CheckChild0Integer, 1, ++/*546292*/ OPC_CheckChild0Type, MVT::i64, ++/*546294*/ OPC_CheckChild1Integer, 1, ++/*546296*/ OPC_CheckChild1Type, MVT::i64, ++/*546298*/ OPC_CheckChild2Integer, 1, ++/*546300*/ OPC_CheckChild2Type, MVT::i64, ++/*546302*/ OPC_CheckChild3Integer, 1, ++/*546304*/ OPC_CheckChild3Type, MVT::i64, ++/*546306*/ OPC_CheckType, MVT::v4i64, ++/*546308*/ OPC_MoveParent, ++/*546309*/ OPC_CheckType, MVT::v4i64, ++/*546311*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*546313*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*546321*/ /*Scope*/ 63, /*->546385*/ ++/*546322*/ OPC_CheckChild0Same, 0, ++/*546324*/ OPC_CheckChild1Same, 1, ++/*546326*/ OPC_MoveParent, ++/*546327*/ OPC_MoveChild1, ++/*546328*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*546331*/ OPC_CheckChild0Integer, 1, ++/*546333*/ OPC_CheckChild0Type, MVT::i64, ++/*546335*/ OPC_CheckChild1Integer, 1, ++/*546337*/ OPC_CheckChild1Type, MVT::i64, ++/*546339*/ OPC_CheckChild2Integer, 1, ++/*546341*/ OPC_CheckChild2Type, MVT::i64, ++/*546343*/ OPC_CheckChild3Integer, 1, ++/*546345*/ OPC_CheckChild3Type, MVT::i64, ++/*546347*/ OPC_MoveParent, ++/*546348*/ OPC_MoveParent, ++/*546349*/ OPC_MoveParent, ++/*546350*/ OPC_MoveChild1, ++/*546351*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*546354*/ OPC_CheckChild0Integer, 1, ++/*546356*/ OPC_CheckChild0Type, MVT::i64, ++/*546358*/ OPC_CheckChild1Integer, 1, ++/*546360*/ OPC_CheckChild1Type, MVT::i64, ++/*546362*/ OPC_CheckChild2Integer, 1, ++/*546364*/ OPC_CheckChild2Type, MVT::i64, ++/*546366*/ OPC_CheckChild3Integer, 1, ++/*546368*/ OPC_CheckChild3Type, MVT::i64, ++/*546370*/ OPC_CheckType, MVT::v4i64, ++/*546372*/ OPC_MoveParent, ++/*546373*/ OPC_CheckType, MVT::v4i64, ++/*546375*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*546377*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*546385*/ 0, /*End of Scope*/ ++/*546386*/ 0, // EndSwitchOpcode ++/*546387*/ /*Scope*/ 4|128,1/*132*/, /*->546521*/ ++/*546389*/ OPC_CheckChild0Same, 0, ++/*546391*/ OPC_MoveChild1, ++/*546392*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*546395*/ OPC_Scope, 61, /*->546458*/ // 2 children in Scope ++/*546397*/ OPC_MoveChild0, ++/*546398*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*546401*/ OPC_CheckChild0Integer, 1, ++/*546403*/ OPC_CheckChild0Type, MVT::i64, ++/*546405*/ OPC_CheckChild1Integer, 1, ++/*546407*/ OPC_CheckChild1Type, MVT::i64, ++/*546409*/ OPC_CheckChild2Integer, 1, ++/*546411*/ OPC_CheckChild2Type, MVT::i64, ++/*546413*/ OPC_CheckChild3Integer, 1, ++/*546415*/ OPC_CheckChild3Type, MVT::i64, ++/*546417*/ OPC_MoveParent, ++/*546418*/ OPC_CheckChild1Same, 1, ++/*546420*/ OPC_MoveParent, ++/*546421*/ OPC_MoveParent, ++/*546422*/ OPC_MoveParent, ++/*546423*/ OPC_MoveChild1, ++/*546424*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*546427*/ OPC_CheckChild0Integer, 1, ++/*546429*/ OPC_CheckChild0Type, MVT::i64, ++/*546431*/ OPC_CheckChild1Integer, 1, ++/*546433*/ OPC_CheckChild1Type, MVT::i64, ++/*546435*/ OPC_CheckChild2Integer, 1, ++/*546437*/ OPC_CheckChild2Type, MVT::i64, ++/*546439*/ OPC_CheckChild3Integer, 1, ++/*546441*/ OPC_CheckChild3Type, MVT::i64, ++/*546443*/ OPC_CheckType, MVT::v4i64, ++/*546445*/ OPC_MoveParent, ++/*546446*/ OPC_CheckType, MVT::v4i64, ++/*546448*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*546450*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$a))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*546458*/ /*Scope*/ 61, /*->546520*/ ++/*546459*/ OPC_CheckChild0Same, 1, ++/*546461*/ OPC_MoveChild1, ++/*546462*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*546465*/ OPC_CheckChild0Integer, 1, ++/*546467*/ OPC_CheckChild0Type, MVT::i64, ++/*546469*/ OPC_CheckChild1Integer, 1, ++/*546471*/ OPC_CheckChild1Type, MVT::i64, ++/*546473*/ OPC_CheckChild2Integer, 1, ++/*546475*/ OPC_CheckChild2Type, MVT::i64, ++/*546477*/ OPC_CheckChild3Integer, 1, ++/*546479*/ OPC_CheckChild3Type, MVT::i64, ++/*546481*/ OPC_MoveParent, ++/*546482*/ OPC_MoveParent, ++/*546483*/ OPC_MoveParent, ++/*546484*/ OPC_MoveParent, ++/*546485*/ OPC_MoveChild1, ++/*546486*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*546489*/ OPC_CheckChild0Integer, 1, ++/*546491*/ OPC_CheckChild0Type, MVT::i64, ++/*546493*/ OPC_CheckChild1Integer, 1, ++/*546495*/ OPC_CheckChild1Type, MVT::i64, ++/*546497*/ OPC_CheckChild2Integer, 1, ++/*546499*/ OPC_CheckChild2Type, MVT::i64, ++/*546501*/ OPC_CheckChild3Integer, 1, ++/*546503*/ OPC_CheckChild3Type, MVT::i64, ++/*546505*/ OPC_CheckType, MVT::v4i64, ++/*546507*/ OPC_MoveParent, ++/*546508*/ OPC_CheckType, MVT::v4i64, ++/*546510*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*546512*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*546520*/ 0, /*End of Scope*/ ++/*546521*/ /*Scope*/ 4|128,1/*132*/, /*->546655*/ ++/*546523*/ OPC_CheckChild0Same, 1, ++/*546525*/ OPC_MoveChild1, ++/*546526*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*546529*/ OPC_Scope, 61, /*->546592*/ // 2 children in Scope ++/*546531*/ OPC_MoveChild0, ++/*546532*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*546535*/ OPC_CheckChild0Integer, 1, ++/*546537*/ OPC_CheckChild0Type, MVT::i64, ++/*546539*/ OPC_CheckChild1Integer, 1, ++/*546541*/ OPC_CheckChild1Type, MVT::i64, ++/*546543*/ OPC_CheckChild2Integer, 1, ++/*546545*/ OPC_CheckChild2Type, MVT::i64, ++/*546547*/ OPC_CheckChild3Integer, 1, ++/*546549*/ OPC_CheckChild3Type, MVT::i64, ++/*546551*/ OPC_MoveParent, ++/*546552*/ OPC_CheckChild1Same, 0, ++/*546554*/ OPC_MoveParent, ++/*546555*/ OPC_MoveParent, ++/*546556*/ OPC_MoveParent, ++/*546557*/ OPC_MoveChild1, ++/*546558*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*546561*/ OPC_CheckChild0Integer, 1, ++/*546563*/ OPC_CheckChild0Type, MVT::i64, ++/*546565*/ OPC_CheckChild1Integer, 1, ++/*546567*/ OPC_CheckChild1Type, MVT::i64, ++/*546569*/ OPC_CheckChild2Integer, 1, ++/*546571*/ OPC_CheckChild2Type, MVT::i64, ++/*546573*/ OPC_CheckChild3Integer, 1, ++/*546575*/ OPC_CheckChild3Type, MVT::i64, ++/*546577*/ OPC_CheckType, MVT::v4i64, ++/*546579*/ OPC_MoveParent, ++/*546580*/ OPC_CheckType, MVT::v4i64, ++/*546582*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*546584*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*546592*/ /*Scope*/ 61, /*->546654*/ ++/*546593*/ OPC_CheckChild0Same, 0, ++/*546595*/ OPC_MoveChild1, ++/*546596*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*546599*/ OPC_CheckChild0Integer, 1, ++/*546601*/ OPC_CheckChild0Type, MVT::i64, ++/*546603*/ OPC_CheckChild1Integer, 1, ++/*546605*/ OPC_CheckChild1Type, MVT::i64, ++/*546607*/ OPC_CheckChild2Integer, 1, ++/*546609*/ OPC_CheckChild2Type, MVT::i64, ++/*546611*/ OPC_CheckChild3Integer, 1, ++/*546613*/ OPC_CheckChild3Type, MVT::i64, ++/*546615*/ OPC_MoveParent, ++/*546616*/ OPC_MoveParent, ++/*546617*/ OPC_MoveParent, ++/*546618*/ OPC_MoveParent, ++/*546619*/ OPC_MoveChild1, ++/*546620*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*546623*/ OPC_CheckChild0Integer, 1, ++/*546625*/ OPC_CheckChild0Type, MVT::i64, ++/*546627*/ OPC_CheckChild1Integer, 1, ++/*546629*/ OPC_CheckChild1Type, MVT::i64, ++/*546631*/ OPC_CheckChild2Integer, 1, ++/*546633*/ OPC_CheckChild2Type, MVT::i64, ++/*546635*/ OPC_CheckChild3Integer, 1, ++/*546637*/ OPC_CheckChild3Type, MVT::i64, ++/*546639*/ OPC_CheckType, MVT::v4i64, ++/*546641*/ OPC_MoveParent, ++/*546642*/ OPC_CheckType, MVT::v4i64, ++/*546644*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*546646*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*546654*/ 0, /*End of Scope*/ ++/*546655*/ /*Scope*/ 113, /*->546769*/ ++/*546656*/ OPC_MoveChild0, ++/*546657*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*546660*/ OPC_CheckChild0Integer, 1, ++/*546662*/ OPC_CheckChild0Type, MVT::i64, ++/*546664*/ OPC_CheckChild1Integer, 1, ++/*546666*/ OPC_CheckChild1Type, MVT::i64, ++/*546668*/ OPC_CheckChild2Integer, 1, ++/*546670*/ OPC_CheckChild2Type, MVT::i64, ++/*546672*/ OPC_CheckChild3Integer, 1, ++/*546674*/ OPC_CheckChild3Type, MVT::i64, ++/*546676*/ OPC_MoveParent, ++/*546677*/ OPC_MoveChild1, ++/*546678*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*546681*/ OPC_Scope, 42, /*->546725*/ // 2 children in Scope ++/*546683*/ OPC_CheckChild0Same, 1, ++/*546685*/ OPC_CheckChild1Same, 0, ++/*546687*/ OPC_MoveParent, ++/*546688*/ OPC_MoveParent, ++/*546689*/ OPC_MoveParent, ++/*546690*/ OPC_MoveChild1, ++/*546691*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*546694*/ OPC_CheckChild0Integer, 1, ++/*546696*/ OPC_CheckChild0Type, MVT::i64, ++/*546698*/ OPC_CheckChild1Integer, 1, ++/*546700*/ OPC_CheckChild1Type, MVT::i64, ++/*546702*/ OPC_CheckChild2Integer, 1, ++/*546704*/ OPC_CheckChild2Type, MVT::i64, ++/*546706*/ OPC_CheckChild3Integer, 1, ++/*546708*/ OPC_CheckChild3Type, MVT::i64, ++/*546710*/ OPC_CheckType, MVT::v4i64, ++/*546712*/ OPC_MoveParent, ++/*546713*/ OPC_CheckType, MVT::v4i64, ++/*546715*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*546717*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*546725*/ /*Scope*/ 42, /*->546768*/ ++/*546726*/ OPC_CheckChild0Same, 0, ++/*546728*/ OPC_CheckChild1Same, 1, ++/*546730*/ OPC_MoveParent, ++/*546731*/ OPC_MoveParent, ++/*546732*/ OPC_MoveParent, ++/*546733*/ OPC_MoveChild1, ++/*546734*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*546737*/ OPC_CheckChild0Integer, 1, ++/*546739*/ OPC_CheckChild0Type, MVT::i64, ++/*546741*/ OPC_CheckChild1Integer, 1, ++/*546743*/ OPC_CheckChild1Type, MVT::i64, ++/*546745*/ OPC_CheckChild2Integer, 1, ++/*546747*/ OPC_CheckChild2Type, MVT::i64, ++/*546749*/ OPC_CheckChild3Integer, 1, ++/*546751*/ OPC_CheckChild3Type, MVT::i64, ++/*546753*/ OPC_CheckType, MVT::v4i64, ++/*546755*/ OPC_MoveParent, ++/*546756*/ OPC_CheckType, MVT::v4i64, ++/*546758*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*546760*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVGR_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 113 ++ // Dst: (XVAVGR_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*546768*/ 0, /*End of Scope*/ ++/*546769*/ 0, /*End of Scope*/ ++/*546770*/ /*Scope*/ 3|128,2/*259*/, /*->547031*/ ++/*546772*/ OPC_RecordChild0, // #0 = $a ++/*546773*/ OPC_RecordChild1, // #1 = $b ++/*546774*/ OPC_MoveParent, ++/*546775*/ OPC_MoveChild1, ++/*546776*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*546779*/ OPC_CheckChild0Integer, 15, ++/*546781*/ OPC_CheckChild0Type, MVT::i32, ++/*546783*/ OPC_CheckChild1Integer, 15, ++/*546785*/ OPC_CheckChild1Type, MVT::i32, ++/*546787*/ OPC_CheckChild2Integer, 15, ++/*546789*/ OPC_CheckChild2Type, MVT::i32, ++/*546791*/ OPC_CheckChild3Integer, 15, ++/*546793*/ OPC_CheckChild3Type, MVT::i32, ++/*546795*/ OPC_CheckChild4Integer, 15, ++/*546797*/ OPC_CheckChild4Type, MVT::i32, ++/*546799*/ OPC_MoveChild5, ++/*546800*/ OPC_CheckInteger, 15, ++/*546802*/ OPC_CheckType, MVT::i32, ++/*546804*/ OPC_MoveParent, ++/*546805*/ OPC_MoveChild6, ++/*546806*/ OPC_CheckInteger, 15, ++/*546808*/ OPC_CheckType, MVT::i32, ++/*546810*/ OPC_MoveParent, ++/*546811*/ OPC_MoveChild7, ++/*546812*/ OPC_CheckInteger, 15, ++/*546814*/ OPC_CheckType, MVT::i32, ++/*546816*/ OPC_MoveParent, ++/*546817*/ OPC_CheckType, MVT::v8i16, ++/*546819*/ OPC_MoveParent, ++/*546820*/ OPC_MoveParent, ++/*546821*/ OPC_MoveChild1, ++/*546822*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*546825*/ OPC_Scope, 63, /*->546890*/ // 3 children in Scope ++/*546827*/ OPC_CheckChild0Same, 0, ++/*546829*/ OPC_CheckChild1Same, 1, ++/*546831*/ OPC_MoveParent, ++/*546832*/ OPC_MoveParent, ++/*546833*/ OPC_MoveChild1, ++/*546834*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*546837*/ OPC_CheckChild0Integer, 1, ++/*546839*/ OPC_CheckChild0Type, MVT::i32, ++/*546841*/ OPC_CheckChild1Integer, 1, ++/*546843*/ OPC_CheckChild1Type, MVT::i32, ++/*546845*/ OPC_CheckChild2Integer, 1, ++/*546847*/ OPC_CheckChild2Type, MVT::i32, ++/*546849*/ OPC_CheckChild3Integer, 1, ++/*546851*/ OPC_CheckChild3Type, MVT::i32, ++/*546853*/ OPC_CheckChild4Integer, 1, ++/*546855*/ OPC_CheckChild4Type, MVT::i32, ++/*546857*/ OPC_MoveChild5, ++/*546858*/ OPC_CheckInteger, 1, ++/*546860*/ OPC_CheckType, MVT::i32, ++/*546862*/ OPC_MoveParent, ++/*546863*/ OPC_MoveChild6, ++/*546864*/ OPC_CheckInteger, 1, ++/*546866*/ OPC_CheckType, MVT::i32, ++/*546868*/ OPC_MoveParent, ++/*546869*/ OPC_MoveChild7, ++/*546870*/ OPC_CheckInteger, 1, ++/*546872*/ OPC_CheckType, MVT::i32, ++/*546874*/ OPC_MoveParent, ++/*546875*/ OPC_CheckType, MVT::v8i16, ++/*546877*/ OPC_MoveParent, ++/*546878*/ OPC_CheckType, MVT::v8i16, ++/*546880*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*546882*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 101 ++ // Dst: (VAVG_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*546890*/ /*Scope*/ 75, /*->546966*/ ++/*546891*/ OPC_CheckChild0Same, 1, ++/*546893*/ OPC_CheckChild1Same, 0, ++/*546895*/ OPC_MoveParent, ++/*546896*/ OPC_MoveParent, ++/*546897*/ OPC_MoveChild1, ++/*546898*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*546901*/ OPC_CheckChild0Integer, 1, ++/*546903*/ OPC_CheckChild0Type, MVT::i32, ++/*546905*/ OPC_CheckChild1Integer, 1, ++/*546907*/ OPC_CheckChild1Type, MVT::i32, ++/*546909*/ OPC_CheckChild2Integer, 1, ++/*546911*/ OPC_CheckChild2Type, MVT::i32, ++/*546913*/ OPC_CheckChild3Integer, 1, ++/*546915*/ OPC_CheckChild3Type, MVT::i32, ++/*546917*/ OPC_CheckChild4Integer, 1, ++/*546919*/ OPC_CheckChild4Type, MVT::i32, ++/*546921*/ OPC_MoveChild5, ++/*546922*/ OPC_CheckInteger, 1, ++/*546924*/ OPC_CheckType, MVT::i32, ++/*546926*/ OPC_MoveParent, ++/*546927*/ OPC_MoveChild6, ++/*546928*/ OPC_CheckInteger, 1, ++/*546930*/ OPC_CheckType, MVT::i32, ++/*546932*/ OPC_MoveParent, ++/*546933*/ OPC_MoveChild7, ++/*546934*/ OPC_CheckInteger, 1, ++/*546936*/ OPC_CheckType, MVT::i32, ++/*546938*/ OPC_MoveParent, ++/*546939*/ OPC_CheckType, MVT::v8i16, ++/*546941*/ OPC_MoveParent, ++/*546942*/ OPC_CheckType, MVT::v8i16, ++/*546944*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*546946*/ OPC_Scope, 8, /*->546956*/ // 2 children in Scope ++/*546948*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 101 ++ // Dst: (VAVG_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*546956*/ /*Scope*/ 8, /*->546965*/ ++/*546957*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 101 ++ // Dst: (VAVG_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*546965*/ 0, /*End of Scope*/ ++/*546966*/ /*Scope*/ 63, /*->547030*/ ++/*546967*/ OPC_CheckChild0Same, 0, ++/*546969*/ OPC_CheckChild1Same, 1, ++/*546971*/ OPC_MoveParent, ++/*546972*/ OPC_MoveParent, ++/*546973*/ OPC_MoveChild1, ++/*546974*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*546977*/ OPC_CheckChild0Integer, 1, ++/*546979*/ OPC_CheckChild0Type, MVT::i32, ++/*546981*/ OPC_CheckChild1Integer, 1, ++/*546983*/ OPC_CheckChild1Type, MVT::i32, ++/*546985*/ OPC_CheckChild2Integer, 1, ++/*546987*/ OPC_CheckChild2Type, MVT::i32, ++/*546989*/ OPC_CheckChild3Integer, 1, ++/*546991*/ OPC_CheckChild3Type, MVT::i32, ++/*546993*/ OPC_CheckChild4Integer, 1, ++/*546995*/ OPC_CheckChild4Type, MVT::i32, ++/*546997*/ OPC_MoveChild5, ++/*546998*/ OPC_CheckInteger, 1, ++/*547000*/ OPC_CheckType, MVT::i32, ++/*547002*/ OPC_MoveParent, ++/*547003*/ OPC_MoveChild6, ++/*547004*/ OPC_CheckInteger, 1, ++/*547006*/ OPC_CheckType, MVT::i32, ++/*547008*/ OPC_MoveParent, ++/*547009*/ OPC_MoveChild7, ++/*547010*/ OPC_CheckInteger, 1, ++/*547012*/ OPC_CheckType, MVT::i32, ++/*547014*/ OPC_MoveParent, ++/*547015*/ OPC_CheckType, MVT::v8i16, ++/*547017*/ OPC_MoveParent, ++/*547018*/ OPC_CheckType, MVT::v8i16, ++/*547020*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*547022*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 101 ++ // Dst: (VAVG_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*547030*/ 0, /*End of Scope*/ ++/*547031*/ 0, /*End of Scope*/ ++/*547032*/ 0, // EndSwitchOpcode ++/*547033*/ /*Scope*/ 53|128,7/*949*/, /*->547984*/ ++/*547035*/ OPC_RecordChild0, // #0 = $b ++/*547036*/ OPC_MoveChild1, ++/*547037*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*547040*/ OPC_Scope, 105|128,1/*233*/, /*->547276*/ // 4 children in Scope ++/*547043*/ OPC_RecordChild0, // #1 = $a ++/*547044*/ OPC_MoveChild1, ++/*547045*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*547048*/ OPC_MoveChild0, ++/*547049*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*547052*/ OPC_Scope, 110, /*->547164*/ // 2 children in Scope ++/*547054*/ OPC_CheckChild0Same, 1, ++/*547056*/ OPC_CheckChild1Same, 0, ++/*547058*/ OPC_MoveParent, ++/*547059*/ OPC_MoveChild1, ++/*547060*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*547063*/ OPC_CheckChild0Integer, 15, ++/*547065*/ OPC_CheckChild0Type, MVT::i32, ++/*547067*/ OPC_CheckChild1Integer, 15, ++/*547069*/ OPC_CheckChild1Type, MVT::i32, ++/*547071*/ OPC_CheckChild2Integer, 15, ++/*547073*/ OPC_CheckChild2Type, MVT::i32, ++/*547075*/ OPC_CheckChild3Integer, 15, ++/*547077*/ OPC_CheckChild3Type, MVT::i32, ++/*547079*/ OPC_CheckChild4Integer, 15, ++/*547081*/ OPC_CheckChild4Type, MVT::i32, ++/*547083*/ OPC_MoveChild5, ++/*547084*/ OPC_CheckInteger, 15, ++/*547086*/ OPC_CheckType, MVT::i32, ++/*547088*/ OPC_MoveParent, ++/*547089*/ OPC_MoveChild6, ++/*547090*/ OPC_CheckInteger, 15, ++/*547092*/ OPC_CheckType, MVT::i32, ++/*547094*/ OPC_MoveParent, ++/*547095*/ OPC_MoveChild7, ++/*547096*/ OPC_CheckInteger, 15, ++/*547098*/ OPC_CheckType, MVT::i32, ++/*547100*/ OPC_MoveParent, ++/*547101*/ OPC_CheckType, MVT::v8i16, ++/*547103*/ OPC_MoveParent, ++/*547104*/ OPC_MoveParent, ++/*547105*/ OPC_MoveParent, ++/*547106*/ OPC_MoveParent, ++/*547107*/ OPC_MoveChild1, ++/*547108*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*547111*/ OPC_CheckChild0Integer, 1, ++/*547113*/ OPC_CheckChild0Type, MVT::i32, ++/*547115*/ OPC_CheckChild1Integer, 1, ++/*547117*/ OPC_CheckChild1Type, MVT::i32, ++/*547119*/ OPC_CheckChild2Integer, 1, ++/*547121*/ OPC_CheckChild2Type, MVT::i32, ++/*547123*/ OPC_CheckChild3Integer, 1, ++/*547125*/ OPC_CheckChild3Type, MVT::i32, ++/*547127*/ OPC_CheckChild4Integer, 1, ++/*547129*/ OPC_CheckChild4Type, MVT::i32, ++/*547131*/ OPC_MoveChild5, ++/*547132*/ OPC_CheckInteger, 1, ++/*547134*/ OPC_CheckType, MVT::i32, ++/*547136*/ OPC_MoveParent, ++/*547137*/ OPC_MoveChild6, ++/*547138*/ OPC_CheckInteger, 1, ++/*547140*/ OPC_CheckType, MVT::i32, ++/*547142*/ OPC_MoveParent, ++/*547143*/ OPC_MoveChild7, ++/*547144*/ OPC_CheckInteger, 1, ++/*547146*/ OPC_CheckType, MVT::i32, ++/*547148*/ OPC_MoveParent, ++/*547149*/ OPC_CheckType, MVT::v8i16, ++/*547151*/ OPC_MoveParent, ++/*547152*/ OPC_CheckType, MVT::v8i16, ++/*547154*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*547156*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 101 ++ // Dst: (VAVG_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*547164*/ /*Scope*/ 110, /*->547275*/ ++/*547165*/ OPC_CheckChild0Same, 0, ++/*547167*/ OPC_CheckChild1Same, 1, ++/*547169*/ OPC_MoveParent, ++/*547170*/ OPC_MoveChild1, ++/*547171*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*547174*/ OPC_CheckChild0Integer, 15, ++/*547176*/ OPC_CheckChild0Type, MVT::i32, ++/*547178*/ OPC_CheckChild1Integer, 15, ++/*547180*/ OPC_CheckChild1Type, MVT::i32, ++/*547182*/ OPC_CheckChild2Integer, 15, ++/*547184*/ OPC_CheckChild2Type, MVT::i32, ++/*547186*/ OPC_CheckChild3Integer, 15, ++/*547188*/ OPC_CheckChild3Type, MVT::i32, ++/*547190*/ OPC_CheckChild4Integer, 15, ++/*547192*/ OPC_CheckChild4Type, MVT::i32, ++/*547194*/ OPC_MoveChild5, ++/*547195*/ OPC_CheckInteger, 15, ++/*547197*/ OPC_CheckType, MVT::i32, ++/*547199*/ OPC_MoveParent, ++/*547200*/ OPC_MoveChild6, ++/*547201*/ OPC_CheckInteger, 15, ++/*547203*/ OPC_CheckType, MVT::i32, ++/*547205*/ OPC_MoveParent, ++/*547206*/ OPC_MoveChild7, ++/*547207*/ OPC_CheckInteger, 15, ++/*547209*/ OPC_CheckType, MVT::i32, ++/*547211*/ OPC_MoveParent, ++/*547212*/ OPC_CheckType, MVT::v8i16, ++/*547214*/ OPC_MoveParent, ++/*547215*/ OPC_MoveParent, ++/*547216*/ OPC_MoveParent, ++/*547217*/ OPC_MoveParent, ++/*547218*/ OPC_MoveChild1, ++/*547219*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*547222*/ OPC_CheckChild0Integer, 1, ++/*547224*/ OPC_CheckChild0Type, MVT::i32, ++/*547226*/ OPC_CheckChild1Integer, 1, ++/*547228*/ OPC_CheckChild1Type, MVT::i32, ++/*547230*/ OPC_CheckChild2Integer, 1, ++/*547232*/ OPC_CheckChild2Type, MVT::i32, ++/*547234*/ OPC_CheckChild3Integer, 1, ++/*547236*/ OPC_CheckChild3Type, MVT::i32, ++/*547238*/ OPC_CheckChild4Integer, 1, ++/*547240*/ OPC_CheckChild4Type, MVT::i32, ++/*547242*/ OPC_MoveChild5, ++/*547243*/ OPC_CheckInteger, 1, ++/*547245*/ OPC_CheckType, MVT::i32, ++/*547247*/ OPC_MoveParent, ++/*547248*/ OPC_MoveChild6, ++/*547249*/ OPC_CheckInteger, 1, ++/*547251*/ OPC_CheckType, MVT::i32, ++/*547253*/ OPC_MoveParent, ++/*547254*/ OPC_MoveChild7, ++/*547255*/ OPC_CheckInteger, 1, ++/*547257*/ OPC_CheckType, MVT::i32, ++/*547259*/ OPC_MoveParent, ++/*547260*/ OPC_CheckType, MVT::v8i16, ++/*547262*/ OPC_MoveParent, ++/*547263*/ OPC_CheckType, MVT::v8i16, ++/*547265*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*547267*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 101 ++ // Dst: (VAVG_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*547275*/ 0, /*End of Scope*/ ++/*547276*/ /*Scope*/ 106|128,1/*234*/, /*->547512*/ ++/*547278*/ OPC_MoveChild0, ++/*547279*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*547282*/ OPC_MoveChild0, ++/*547283*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*547286*/ OPC_Scope, 111, /*->547399*/ // 2 children in Scope ++/*547288*/ OPC_RecordChild0, // #1 = $a ++/*547289*/ OPC_CheckChild1Same, 0, ++/*547291*/ OPC_MoveParent, ++/*547292*/ OPC_MoveChild1, ++/*547293*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*547296*/ OPC_CheckChild0Integer, 15, ++/*547298*/ OPC_CheckChild0Type, MVT::i32, ++/*547300*/ OPC_CheckChild1Integer, 15, ++/*547302*/ OPC_CheckChild1Type, MVT::i32, ++/*547304*/ OPC_CheckChild2Integer, 15, ++/*547306*/ OPC_CheckChild2Type, MVT::i32, ++/*547308*/ OPC_CheckChild3Integer, 15, ++/*547310*/ OPC_CheckChild3Type, MVT::i32, ++/*547312*/ OPC_CheckChild4Integer, 15, ++/*547314*/ OPC_CheckChild4Type, MVT::i32, ++/*547316*/ OPC_MoveChild5, ++/*547317*/ OPC_CheckInteger, 15, ++/*547319*/ OPC_CheckType, MVT::i32, ++/*547321*/ OPC_MoveParent, ++/*547322*/ OPC_MoveChild6, ++/*547323*/ OPC_CheckInteger, 15, ++/*547325*/ OPC_CheckType, MVT::i32, ++/*547327*/ OPC_MoveParent, ++/*547328*/ OPC_MoveChild7, ++/*547329*/ OPC_CheckInteger, 15, ++/*547331*/ OPC_CheckType, MVT::i32, ++/*547333*/ OPC_MoveParent, ++/*547334*/ OPC_CheckType, MVT::v8i16, ++/*547336*/ OPC_MoveParent, ++/*547337*/ OPC_MoveParent, ++/*547338*/ OPC_CheckChild1Same, 1, ++/*547340*/ OPC_MoveParent, ++/*547341*/ OPC_MoveParent, ++/*547342*/ OPC_MoveChild1, ++/*547343*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*547346*/ OPC_CheckChild0Integer, 1, ++/*547348*/ OPC_CheckChild0Type, MVT::i32, ++/*547350*/ OPC_CheckChild1Integer, 1, ++/*547352*/ OPC_CheckChild1Type, MVT::i32, ++/*547354*/ OPC_CheckChild2Integer, 1, ++/*547356*/ OPC_CheckChild2Type, MVT::i32, ++/*547358*/ OPC_CheckChild3Integer, 1, ++/*547360*/ OPC_CheckChild3Type, MVT::i32, ++/*547362*/ OPC_CheckChild4Integer, 1, ++/*547364*/ OPC_CheckChild4Type, MVT::i32, ++/*547366*/ OPC_MoveChild5, ++/*547367*/ OPC_CheckInteger, 1, ++/*547369*/ OPC_CheckType, MVT::i32, ++/*547371*/ OPC_MoveParent, ++/*547372*/ OPC_MoveChild6, ++/*547373*/ OPC_CheckInteger, 1, ++/*547375*/ OPC_CheckType, MVT::i32, ++/*547377*/ OPC_MoveParent, ++/*547378*/ OPC_MoveChild7, ++/*547379*/ OPC_CheckInteger, 1, ++/*547381*/ OPC_CheckType, MVT::i32, ++/*547383*/ OPC_MoveParent, ++/*547384*/ OPC_CheckType, MVT::v8i16, ++/*547386*/ OPC_MoveParent, ++/*547387*/ OPC_CheckType, MVT::v8i16, ++/*547389*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*547391*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 101 ++ // Dst: (VAVG_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*547399*/ /*Scope*/ 111, /*->547511*/ ++/*547400*/ OPC_CheckChild0Same, 0, ++/*547402*/ OPC_RecordChild1, // #1 = $a ++/*547403*/ OPC_MoveParent, ++/*547404*/ OPC_MoveChild1, ++/*547405*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*547408*/ OPC_CheckChild0Integer, 15, ++/*547410*/ OPC_CheckChild0Type, MVT::i32, ++/*547412*/ OPC_CheckChild1Integer, 15, ++/*547414*/ OPC_CheckChild1Type, MVT::i32, ++/*547416*/ OPC_CheckChild2Integer, 15, ++/*547418*/ OPC_CheckChild2Type, MVT::i32, ++/*547420*/ OPC_CheckChild3Integer, 15, ++/*547422*/ OPC_CheckChild3Type, MVT::i32, ++/*547424*/ OPC_CheckChild4Integer, 15, ++/*547426*/ OPC_CheckChild4Type, MVT::i32, ++/*547428*/ OPC_MoveChild5, ++/*547429*/ OPC_CheckInteger, 15, ++/*547431*/ OPC_CheckType, MVT::i32, ++/*547433*/ OPC_MoveParent, ++/*547434*/ OPC_MoveChild6, ++/*547435*/ OPC_CheckInteger, 15, ++/*547437*/ OPC_CheckType, MVT::i32, ++/*547439*/ OPC_MoveParent, ++/*547440*/ OPC_MoveChild7, ++/*547441*/ OPC_CheckInteger, 15, ++/*547443*/ OPC_CheckType, MVT::i32, ++/*547445*/ OPC_MoveParent, ++/*547446*/ OPC_CheckType, MVT::v8i16, ++/*547448*/ OPC_MoveParent, ++/*547449*/ OPC_MoveParent, ++/*547450*/ OPC_CheckChild1Same, 1, ++/*547452*/ OPC_MoveParent, ++/*547453*/ OPC_MoveParent, ++/*547454*/ OPC_MoveChild1, ++/*547455*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*547458*/ OPC_CheckChild0Integer, 1, ++/*547460*/ OPC_CheckChild0Type, MVT::i32, ++/*547462*/ OPC_CheckChild1Integer, 1, ++/*547464*/ OPC_CheckChild1Type, MVT::i32, ++/*547466*/ OPC_CheckChild2Integer, 1, ++/*547468*/ OPC_CheckChild2Type, MVT::i32, ++/*547470*/ OPC_CheckChild3Integer, 1, ++/*547472*/ OPC_CheckChild3Type, MVT::i32, ++/*547474*/ OPC_CheckChild4Integer, 1, ++/*547476*/ OPC_CheckChild4Type, MVT::i32, ++/*547478*/ OPC_MoveChild5, ++/*547479*/ OPC_CheckInteger, 1, ++/*547481*/ OPC_CheckType, MVT::i32, ++/*547483*/ OPC_MoveParent, ++/*547484*/ OPC_MoveChild6, ++/*547485*/ OPC_CheckInteger, 1, ++/*547487*/ OPC_CheckType, MVT::i32, ++/*547489*/ OPC_MoveParent, ++/*547490*/ OPC_MoveChild7, ++/*547491*/ OPC_CheckInteger, 1, ++/*547493*/ OPC_CheckType, MVT::i32, ++/*547495*/ OPC_MoveParent, ++/*547496*/ OPC_CheckType, MVT::v8i16, ++/*547498*/ OPC_MoveParent, ++/*547499*/ OPC_CheckType, MVT::v8i16, ++/*547501*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*547503*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$a)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 101 ++ // Dst: (VAVG_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*547511*/ 0, /*End of Scope*/ ++/*547512*/ /*Scope*/ 105|128,1/*233*/, /*->547747*/ ++/*547514*/ OPC_RecordChild0, // #1 = $b ++/*547515*/ OPC_MoveChild1, ++/*547516*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*547519*/ OPC_MoveChild0, ++/*547520*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*547523*/ OPC_Scope, 110, /*->547635*/ // 2 children in Scope ++/*547525*/ OPC_CheckChild0Same, 0, ++/*547527*/ OPC_CheckChild1Same, 1, ++/*547529*/ OPC_MoveParent, ++/*547530*/ OPC_MoveChild1, ++/*547531*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*547534*/ OPC_CheckChild0Integer, 15, ++/*547536*/ OPC_CheckChild0Type, MVT::i32, ++/*547538*/ OPC_CheckChild1Integer, 15, ++/*547540*/ OPC_CheckChild1Type, MVT::i32, ++/*547542*/ OPC_CheckChild2Integer, 15, ++/*547544*/ OPC_CheckChild2Type, MVT::i32, ++/*547546*/ OPC_CheckChild3Integer, 15, ++/*547548*/ OPC_CheckChild3Type, MVT::i32, ++/*547550*/ OPC_CheckChild4Integer, 15, ++/*547552*/ OPC_CheckChild4Type, MVT::i32, ++/*547554*/ OPC_MoveChild5, ++/*547555*/ OPC_CheckInteger, 15, ++/*547557*/ OPC_CheckType, MVT::i32, ++/*547559*/ OPC_MoveParent, ++/*547560*/ OPC_MoveChild6, ++/*547561*/ OPC_CheckInteger, 15, ++/*547563*/ OPC_CheckType, MVT::i32, ++/*547565*/ OPC_MoveParent, ++/*547566*/ OPC_MoveChild7, ++/*547567*/ OPC_CheckInteger, 15, ++/*547569*/ OPC_CheckType, MVT::i32, ++/*547571*/ OPC_MoveParent, ++/*547572*/ OPC_CheckType, MVT::v8i16, ++/*547574*/ OPC_MoveParent, ++/*547575*/ OPC_MoveParent, ++/*547576*/ OPC_MoveParent, ++/*547577*/ OPC_MoveParent, ++/*547578*/ OPC_MoveChild1, ++/*547579*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*547582*/ OPC_CheckChild0Integer, 1, ++/*547584*/ OPC_CheckChild0Type, MVT::i32, ++/*547586*/ OPC_CheckChild1Integer, 1, ++/*547588*/ OPC_CheckChild1Type, MVT::i32, ++/*547590*/ OPC_CheckChild2Integer, 1, ++/*547592*/ OPC_CheckChild2Type, MVT::i32, ++/*547594*/ OPC_CheckChild3Integer, 1, ++/*547596*/ OPC_CheckChild3Type, MVT::i32, ++/*547598*/ OPC_CheckChild4Integer, 1, ++/*547600*/ OPC_CheckChild4Type, MVT::i32, ++/*547602*/ OPC_MoveChild5, ++/*547603*/ OPC_CheckInteger, 1, ++/*547605*/ OPC_CheckType, MVT::i32, ++/*547607*/ OPC_MoveParent, ++/*547608*/ OPC_MoveChild6, ++/*547609*/ OPC_CheckInteger, 1, ++/*547611*/ OPC_CheckType, MVT::i32, ++/*547613*/ OPC_MoveParent, ++/*547614*/ OPC_MoveChild7, ++/*547615*/ OPC_CheckInteger, 1, ++/*547617*/ OPC_CheckType, MVT::i32, ++/*547619*/ OPC_MoveParent, ++/*547620*/ OPC_CheckType, MVT::v8i16, ++/*547622*/ OPC_MoveParent, ++/*547623*/ OPC_CheckType, MVT::v8i16, ++/*547625*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*547627*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 101 ++ // Dst: (VAVG_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*547635*/ /*Scope*/ 110, /*->547746*/ ++/*547636*/ OPC_CheckChild0Same, 1, ++/*547638*/ OPC_CheckChild1Same, 0, ++/*547640*/ OPC_MoveParent, ++/*547641*/ OPC_MoveChild1, ++/*547642*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*547645*/ OPC_CheckChild0Integer, 15, ++/*547647*/ OPC_CheckChild0Type, MVT::i32, ++/*547649*/ OPC_CheckChild1Integer, 15, ++/*547651*/ OPC_CheckChild1Type, MVT::i32, ++/*547653*/ OPC_CheckChild2Integer, 15, ++/*547655*/ OPC_CheckChild2Type, MVT::i32, ++/*547657*/ OPC_CheckChild3Integer, 15, ++/*547659*/ OPC_CheckChild3Type, MVT::i32, ++/*547661*/ OPC_CheckChild4Integer, 15, ++/*547663*/ OPC_CheckChild4Type, MVT::i32, ++/*547665*/ OPC_MoveChild5, ++/*547666*/ OPC_CheckInteger, 15, ++/*547668*/ OPC_CheckType, MVT::i32, ++/*547670*/ OPC_MoveParent, ++/*547671*/ OPC_MoveChild6, ++/*547672*/ OPC_CheckInteger, 15, ++/*547674*/ OPC_CheckType, MVT::i32, ++/*547676*/ OPC_MoveParent, ++/*547677*/ OPC_MoveChild7, ++/*547678*/ OPC_CheckInteger, 15, ++/*547680*/ OPC_CheckType, MVT::i32, ++/*547682*/ OPC_MoveParent, ++/*547683*/ OPC_CheckType, MVT::v8i16, ++/*547685*/ OPC_MoveParent, ++/*547686*/ OPC_MoveParent, ++/*547687*/ OPC_MoveParent, ++/*547688*/ OPC_MoveParent, ++/*547689*/ OPC_MoveChild1, ++/*547690*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*547693*/ OPC_CheckChild0Integer, 1, ++/*547695*/ OPC_CheckChild0Type, MVT::i32, ++/*547697*/ OPC_CheckChild1Integer, 1, ++/*547699*/ OPC_CheckChild1Type, MVT::i32, ++/*547701*/ OPC_CheckChild2Integer, 1, ++/*547703*/ OPC_CheckChild2Type, MVT::i32, ++/*547705*/ OPC_CheckChild3Integer, 1, ++/*547707*/ OPC_CheckChild3Type, MVT::i32, ++/*547709*/ OPC_CheckChild4Integer, 1, ++/*547711*/ OPC_CheckChild4Type, MVT::i32, ++/*547713*/ OPC_MoveChild5, ++/*547714*/ OPC_CheckInteger, 1, ++/*547716*/ OPC_CheckType, MVT::i32, ++/*547718*/ OPC_MoveParent, ++/*547719*/ OPC_MoveChild6, ++/*547720*/ OPC_CheckInteger, 1, ++/*547722*/ OPC_CheckType, MVT::i32, ++/*547724*/ OPC_MoveParent, ++/*547725*/ OPC_MoveChild7, ++/*547726*/ OPC_CheckInteger, 1, ++/*547728*/ OPC_CheckType, MVT::i32, ++/*547730*/ OPC_MoveParent, ++/*547731*/ OPC_CheckType, MVT::v8i16, ++/*547733*/ OPC_MoveParent, ++/*547734*/ OPC_CheckType, MVT::v8i16, ++/*547736*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*547738*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })))), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 101 ++ // Dst: (VAVG_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*547746*/ 0, /*End of Scope*/ ++/*547747*/ /*Scope*/ 106|128,1/*234*/, /*->547983*/ ++/*547749*/ OPC_MoveChild0, ++/*547750*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*547753*/ OPC_MoveChild0, ++/*547754*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*547757*/ OPC_Scope, 111, /*->547870*/ // 2 children in Scope ++/*547759*/ OPC_CheckChild0Same, 0, ++/*547761*/ OPC_RecordChild1, // #1 = $b ++/*547762*/ OPC_MoveParent, ++/*547763*/ OPC_MoveChild1, ++/*547764*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*547767*/ OPC_CheckChild0Integer, 15, ++/*547769*/ OPC_CheckChild0Type, MVT::i32, ++/*547771*/ OPC_CheckChild1Integer, 15, ++/*547773*/ OPC_CheckChild1Type, MVT::i32, ++/*547775*/ OPC_CheckChild2Integer, 15, ++/*547777*/ OPC_CheckChild2Type, MVT::i32, ++/*547779*/ OPC_CheckChild3Integer, 15, ++/*547781*/ OPC_CheckChild3Type, MVT::i32, ++/*547783*/ OPC_CheckChild4Integer, 15, ++/*547785*/ OPC_CheckChild4Type, MVT::i32, ++/*547787*/ OPC_MoveChild5, ++/*547788*/ OPC_CheckInteger, 15, ++/*547790*/ OPC_CheckType, MVT::i32, ++/*547792*/ OPC_MoveParent, ++/*547793*/ OPC_MoveChild6, ++/*547794*/ OPC_CheckInteger, 15, ++/*547796*/ OPC_CheckType, MVT::i32, ++/*547798*/ OPC_MoveParent, ++/*547799*/ OPC_MoveChild7, ++/*547800*/ OPC_CheckInteger, 15, ++/*547802*/ OPC_CheckType, MVT::i32, ++/*547804*/ OPC_MoveParent, ++/*547805*/ OPC_CheckType, MVT::v8i16, ++/*547807*/ OPC_MoveParent, ++/*547808*/ OPC_MoveParent, ++/*547809*/ OPC_CheckChild1Same, 1, ++/*547811*/ OPC_MoveParent, ++/*547812*/ OPC_MoveParent, ++/*547813*/ OPC_MoveChild1, ++/*547814*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*547817*/ OPC_CheckChild0Integer, 1, ++/*547819*/ OPC_CheckChild0Type, MVT::i32, ++/*547821*/ OPC_CheckChild1Integer, 1, ++/*547823*/ OPC_CheckChild1Type, MVT::i32, ++/*547825*/ OPC_CheckChild2Integer, 1, ++/*547827*/ OPC_CheckChild2Type, MVT::i32, ++/*547829*/ OPC_CheckChild3Integer, 1, ++/*547831*/ OPC_CheckChild3Type, MVT::i32, ++/*547833*/ OPC_CheckChild4Integer, 1, ++/*547835*/ OPC_CheckChild4Type, MVT::i32, ++/*547837*/ OPC_MoveChild5, ++/*547838*/ OPC_CheckInteger, 1, ++/*547840*/ OPC_CheckType, MVT::i32, ++/*547842*/ OPC_MoveParent, ++/*547843*/ OPC_MoveChild6, ++/*547844*/ OPC_CheckInteger, 1, ++/*547846*/ OPC_CheckType, MVT::i32, ++/*547848*/ OPC_MoveParent, ++/*547849*/ OPC_MoveChild7, ++/*547850*/ OPC_CheckInteger, 1, ++/*547852*/ OPC_CheckType, MVT::i32, ++/*547854*/ OPC_MoveParent, ++/*547855*/ OPC_CheckType, MVT::v8i16, ++/*547857*/ OPC_MoveParent, ++/*547858*/ OPC_CheckType, MVT::v8i16, ++/*547860*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*547862*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 101 ++ // Dst: (VAVG_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*547870*/ /*Scope*/ 111, /*->547982*/ ++/*547871*/ OPC_RecordChild0, // #1 = $b ++/*547872*/ OPC_CheckChild1Same, 0, ++/*547874*/ OPC_MoveParent, ++/*547875*/ OPC_MoveChild1, ++/*547876*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*547879*/ OPC_CheckChild0Integer, 15, ++/*547881*/ OPC_CheckChild0Type, MVT::i32, ++/*547883*/ OPC_CheckChild1Integer, 15, ++/*547885*/ OPC_CheckChild1Type, MVT::i32, ++/*547887*/ OPC_CheckChild2Integer, 15, ++/*547889*/ OPC_CheckChild2Type, MVT::i32, ++/*547891*/ OPC_CheckChild3Integer, 15, ++/*547893*/ OPC_CheckChild3Type, MVT::i32, ++/*547895*/ OPC_CheckChild4Integer, 15, ++/*547897*/ OPC_CheckChild4Type, MVT::i32, ++/*547899*/ OPC_MoveChild5, ++/*547900*/ OPC_CheckInteger, 15, ++/*547902*/ OPC_CheckType, MVT::i32, ++/*547904*/ OPC_MoveParent, ++/*547905*/ OPC_MoveChild6, ++/*547906*/ OPC_CheckInteger, 15, ++/*547908*/ OPC_CheckType, MVT::i32, ++/*547910*/ OPC_MoveParent, ++/*547911*/ OPC_MoveChild7, ++/*547912*/ OPC_CheckInteger, 15, ++/*547914*/ OPC_CheckType, MVT::i32, ++/*547916*/ OPC_MoveParent, ++/*547917*/ OPC_CheckType, MVT::v8i16, ++/*547919*/ OPC_MoveParent, ++/*547920*/ OPC_MoveParent, ++/*547921*/ OPC_CheckChild1Same, 1, ++/*547923*/ OPC_MoveParent, ++/*547924*/ OPC_MoveParent, ++/*547925*/ OPC_MoveChild1, ++/*547926*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*547929*/ OPC_CheckChild0Integer, 1, ++/*547931*/ OPC_CheckChild0Type, MVT::i32, ++/*547933*/ OPC_CheckChild1Integer, 1, ++/*547935*/ OPC_CheckChild1Type, MVT::i32, ++/*547937*/ OPC_CheckChild2Integer, 1, ++/*547939*/ OPC_CheckChild2Type, MVT::i32, ++/*547941*/ OPC_CheckChild3Integer, 1, ++/*547943*/ OPC_CheckChild3Type, MVT::i32, ++/*547945*/ OPC_CheckChild4Integer, 1, ++/*547947*/ OPC_CheckChild4Type, MVT::i32, ++/*547949*/ OPC_MoveChild5, ++/*547950*/ OPC_CheckInteger, 1, ++/*547952*/ OPC_CheckType, MVT::i32, ++/*547954*/ OPC_MoveParent, ++/*547955*/ OPC_MoveChild6, ++/*547956*/ OPC_CheckInteger, 1, ++/*547958*/ OPC_CheckType, MVT::i32, ++/*547960*/ OPC_MoveParent, ++/*547961*/ OPC_MoveChild7, ++/*547962*/ OPC_CheckInteger, 1, ++/*547964*/ OPC_CheckType, MVT::i32, ++/*547966*/ OPC_MoveParent, ++/*547967*/ OPC_CheckType, MVT::v8i16, ++/*547969*/ OPC_MoveParent, ++/*547970*/ OPC_CheckType, MVT::v8i16, ++/*547972*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*547974*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, (add:{ *:[v8i16] } (srl:{ *:[v8i16] } (add:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$b, LSX128H:{ *:[v8i16] }:$a), (build_vector:{ *:[v8i16] } 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] }, 15:{ *:[i32] })), LSX128H:{ *:[v8i16] }:$b)), (build_vector:{ *:[v8i16] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 101 ++ // Dst: (VAVG_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*547982*/ 0, /*End of Scope*/ ++/*547983*/ 0, /*End of Scope*/ ++/*547984*/ /*Scope*/ 98|128,10/*1378*/, /*->549364*/ ++/*547986*/ OPC_MoveChild0, ++/*547987*/ OPC_SwitchOpcode /*2 cases */, 80|128,8/*1104*/, TARGET_VAL(ISD::ADD),// ->549096 ++/*547992*/ OPC_Scope, 101|128,3/*485*/, /*->548480*/ // 4 children in Scope ++/*547995*/ OPC_RecordChild0, // #0 = $a ++/*547996*/ OPC_Scope, 116|128,1/*244*/, /*->548243*/ // 2 children in Scope ++/*547999*/ OPC_RecordChild1, // #1 = $b ++/*548000*/ OPC_MoveParent, ++/*548001*/ OPC_MoveChild1, ++/*548002*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*548005*/ OPC_MoveChild0, ++/*548006*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*548009*/ OPC_Scope, 121, /*->548132*/ // 2 children in Scope ++/*548011*/ OPC_CheckChild0Same, 1, ++/*548013*/ OPC_CheckChild1Same, 0, ++/*548015*/ OPC_MoveParent, ++/*548016*/ OPC_MoveChild1, ++/*548017*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*548020*/ OPC_CheckChild0Integer, 31, ++/*548022*/ OPC_CheckChild0Type, MVT::i32, ++/*548024*/ OPC_CheckChild1Integer, 31, ++/*548026*/ OPC_CheckChild1Type, MVT::i32, ++/*548028*/ OPC_CheckChild2Integer, 31, ++/*548030*/ OPC_CheckChild2Type, MVT::i32, ++/*548032*/ OPC_CheckChild3Integer, 31, ++/*548034*/ OPC_CheckChild3Type, MVT::i32, ++/*548036*/ OPC_CheckChild4Integer, 31, ++/*548038*/ OPC_CheckChild4Type, MVT::i32, ++/*548040*/ OPC_MoveChild5, ++/*548041*/ OPC_CheckInteger, 31, ++/*548043*/ OPC_CheckType, MVT::i32, ++/*548045*/ OPC_MoveParent, ++/*548046*/ OPC_MoveChild6, ++/*548047*/ OPC_CheckInteger, 31, ++/*548049*/ OPC_CheckType, MVT::i32, ++/*548051*/ OPC_MoveParent, ++/*548052*/ OPC_MoveChild7, ++/*548053*/ OPC_CheckInteger, 31, ++/*548055*/ OPC_CheckType, MVT::i32, ++/*548057*/ OPC_MoveParent, ++/*548058*/ OPC_CheckType, MVT::v8i32, ++/*548060*/ OPC_MoveParent, ++/*548061*/ OPC_MoveParent, ++/*548062*/ OPC_MoveParent, ++/*548063*/ OPC_MoveChild1, ++/*548064*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*548067*/ OPC_CheckChild0Integer, 1, ++/*548069*/ OPC_CheckChild0Type, MVT::i32, ++/*548071*/ OPC_CheckChild1Integer, 1, ++/*548073*/ OPC_CheckChild1Type, MVT::i32, ++/*548075*/ OPC_CheckChild2Integer, 1, ++/*548077*/ OPC_CheckChild2Type, MVT::i32, ++/*548079*/ OPC_CheckChild3Integer, 1, ++/*548081*/ OPC_CheckChild3Type, MVT::i32, ++/*548083*/ OPC_CheckChild4Integer, 1, ++/*548085*/ OPC_CheckChild4Type, MVT::i32, ++/*548087*/ OPC_MoveChild5, ++/*548088*/ OPC_CheckInteger, 1, ++/*548090*/ OPC_CheckType, MVT::i32, ++/*548092*/ OPC_MoveParent, ++/*548093*/ OPC_MoveChild6, ++/*548094*/ OPC_CheckInteger, 1, ++/*548096*/ OPC_CheckType, MVT::i32, ++/*548098*/ OPC_MoveParent, ++/*548099*/ OPC_MoveChild7, ++/*548100*/ OPC_CheckInteger, 1, ++/*548102*/ OPC_CheckType, MVT::i32, ++/*548104*/ OPC_MoveParent, ++/*548105*/ OPC_CheckType, MVT::v8i32, ++/*548107*/ OPC_MoveParent, ++/*548108*/ OPC_CheckType, MVT::v8i32, ++/*548110*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*548112*/ OPC_Scope, 8, /*->548122*/ // 2 children in Scope ++/*548114*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 101 ++ // Dst: (XVAVG_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*548122*/ /*Scope*/ 8, /*->548131*/ ++/*548123*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 101 ++ // Dst: (XVAVG_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*548131*/ 0, /*End of Scope*/ ++/*548132*/ /*Scope*/ 109, /*->548242*/ ++/*548133*/ OPC_CheckChild0Same, 0, ++/*548135*/ OPC_CheckChild1Same, 1, ++/*548137*/ OPC_MoveParent, ++/*548138*/ OPC_MoveChild1, ++/*548139*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*548142*/ OPC_CheckChild0Integer, 31, ++/*548144*/ OPC_CheckChild0Type, MVT::i32, ++/*548146*/ OPC_CheckChild1Integer, 31, ++/*548148*/ OPC_CheckChild1Type, MVT::i32, ++/*548150*/ OPC_CheckChild2Integer, 31, ++/*548152*/ OPC_CheckChild2Type, MVT::i32, ++/*548154*/ OPC_CheckChild3Integer, 31, ++/*548156*/ OPC_CheckChild3Type, MVT::i32, ++/*548158*/ OPC_CheckChild4Integer, 31, ++/*548160*/ OPC_CheckChild4Type, MVT::i32, ++/*548162*/ OPC_MoveChild5, ++/*548163*/ OPC_CheckInteger, 31, ++/*548165*/ OPC_CheckType, MVT::i32, ++/*548167*/ OPC_MoveParent, ++/*548168*/ OPC_MoveChild6, ++/*548169*/ OPC_CheckInteger, 31, ++/*548171*/ OPC_CheckType, MVT::i32, ++/*548173*/ OPC_MoveParent, ++/*548174*/ OPC_MoveChild7, ++/*548175*/ OPC_CheckInteger, 31, ++/*548177*/ OPC_CheckType, MVT::i32, ++/*548179*/ OPC_MoveParent, ++/*548180*/ OPC_CheckType, MVT::v8i32, ++/*548182*/ OPC_MoveParent, ++/*548183*/ OPC_MoveParent, ++/*548184*/ OPC_MoveParent, ++/*548185*/ OPC_MoveChild1, ++/*548186*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*548189*/ OPC_CheckChild0Integer, 1, ++/*548191*/ OPC_CheckChild0Type, MVT::i32, ++/*548193*/ OPC_CheckChild1Integer, 1, ++/*548195*/ OPC_CheckChild1Type, MVT::i32, ++/*548197*/ OPC_CheckChild2Integer, 1, ++/*548199*/ OPC_CheckChild2Type, MVT::i32, ++/*548201*/ OPC_CheckChild3Integer, 1, ++/*548203*/ OPC_CheckChild3Type, MVT::i32, ++/*548205*/ OPC_CheckChild4Integer, 1, ++/*548207*/ OPC_CheckChild4Type, MVT::i32, ++/*548209*/ OPC_MoveChild5, ++/*548210*/ OPC_CheckInteger, 1, ++/*548212*/ OPC_CheckType, MVT::i32, ++/*548214*/ OPC_MoveParent, ++/*548215*/ OPC_MoveChild6, ++/*548216*/ OPC_CheckInteger, 1, ++/*548218*/ OPC_CheckType, MVT::i32, ++/*548220*/ OPC_MoveParent, ++/*548221*/ OPC_MoveChild7, ++/*548222*/ OPC_CheckInteger, 1, ++/*548224*/ OPC_CheckType, MVT::i32, ++/*548226*/ OPC_MoveParent, ++/*548227*/ OPC_CheckType, MVT::v8i32, ++/*548229*/ OPC_MoveParent, ++/*548230*/ OPC_CheckType, MVT::v8i32, ++/*548232*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*548234*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 101 ++ // Dst: (XVAVG_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*548242*/ 0, /*End of Scope*/ ++/*548243*/ /*Scope*/ 106|128,1/*234*/, /*->548479*/ ++/*548245*/ OPC_MoveChild1, ++/*548246*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*548249*/ OPC_MoveChild0, ++/*548250*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*548253*/ OPC_Scope, 111, /*->548366*/ // 2 children in Scope ++/*548255*/ OPC_CheckChild0Same, 0, ++/*548257*/ OPC_RecordChild1, // #1 = $b ++/*548258*/ OPC_MoveParent, ++/*548259*/ OPC_MoveChild1, ++/*548260*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*548263*/ OPC_CheckChild0Integer, 31, ++/*548265*/ OPC_CheckChild0Type, MVT::i32, ++/*548267*/ OPC_CheckChild1Integer, 31, ++/*548269*/ OPC_CheckChild1Type, MVT::i32, ++/*548271*/ OPC_CheckChild2Integer, 31, ++/*548273*/ OPC_CheckChild2Type, MVT::i32, ++/*548275*/ OPC_CheckChild3Integer, 31, ++/*548277*/ OPC_CheckChild3Type, MVT::i32, ++/*548279*/ OPC_CheckChild4Integer, 31, ++/*548281*/ OPC_CheckChild4Type, MVT::i32, ++/*548283*/ OPC_MoveChild5, ++/*548284*/ OPC_CheckInteger, 31, ++/*548286*/ OPC_CheckType, MVT::i32, ++/*548288*/ OPC_MoveParent, ++/*548289*/ OPC_MoveChild6, ++/*548290*/ OPC_CheckInteger, 31, ++/*548292*/ OPC_CheckType, MVT::i32, ++/*548294*/ OPC_MoveParent, ++/*548295*/ OPC_MoveChild7, ++/*548296*/ OPC_CheckInteger, 31, ++/*548298*/ OPC_CheckType, MVT::i32, ++/*548300*/ OPC_MoveParent, ++/*548301*/ OPC_CheckType, MVT::v8i32, ++/*548303*/ OPC_MoveParent, ++/*548304*/ OPC_MoveParent, ++/*548305*/ OPC_MoveParent, ++/*548306*/ OPC_CheckChild1Same, 1, ++/*548308*/ OPC_MoveParent, ++/*548309*/ OPC_MoveChild1, ++/*548310*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*548313*/ OPC_CheckChild0Integer, 1, ++/*548315*/ OPC_CheckChild0Type, MVT::i32, ++/*548317*/ OPC_CheckChild1Integer, 1, ++/*548319*/ OPC_CheckChild1Type, MVT::i32, ++/*548321*/ OPC_CheckChild2Integer, 1, ++/*548323*/ OPC_CheckChild2Type, MVT::i32, ++/*548325*/ OPC_CheckChild3Integer, 1, ++/*548327*/ OPC_CheckChild3Type, MVT::i32, ++/*548329*/ OPC_CheckChild4Integer, 1, ++/*548331*/ OPC_CheckChild4Type, MVT::i32, ++/*548333*/ OPC_MoveChild5, ++/*548334*/ OPC_CheckInteger, 1, ++/*548336*/ OPC_CheckType, MVT::i32, ++/*548338*/ OPC_MoveParent, ++/*548339*/ OPC_MoveChild6, ++/*548340*/ OPC_CheckInteger, 1, ++/*548342*/ OPC_CheckType, MVT::i32, ++/*548344*/ OPC_MoveParent, ++/*548345*/ OPC_MoveChild7, ++/*548346*/ OPC_CheckInteger, 1, ++/*548348*/ OPC_CheckType, MVT::i32, ++/*548350*/ OPC_MoveParent, ++/*548351*/ OPC_CheckType, MVT::v8i32, ++/*548353*/ OPC_MoveParent, ++/*548354*/ OPC_CheckType, MVT::v8i32, ++/*548356*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*548358*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 101 ++ // Dst: (XVAVG_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*548366*/ /*Scope*/ 111, /*->548478*/ ++/*548367*/ OPC_RecordChild0, // #1 = $b ++/*548368*/ OPC_CheckChild1Same, 0, ++/*548370*/ OPC_MoveParent, ++/*548371*/ OPC_MoveChild1, ++/*548372*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*548375*/ OPC_CheckChild0Integer, 31, ++/*548377*/ OPC_CheckChild0Type, MVT::i32, ++/*548379*/ OPC_CheckChild1Integer, 31, ++/*548381*/ OPC_CheckChild1Type, MVT::i32, ++/*548383*/ OPC_CheckChild2Integer, 31, ++/*548385*/ OPC_CheckChild2Type, MVT::i32, ++/*548387*/ OPC_CheckChild3Integer, 31, ++/*548389*/ OPC_CheckChild3Type, MVT::i32, ++/*548391*/ OPC_CheckChild4Integer, 31, ++/*548393*/ OPC_CheckChild4Type, MVT::i32, ++/*548395*/ OPC_MoveChild5, ++/*548396*/ OPC_CheckInteger, 31, ++/*548398*/ OPC_CheckType, MVT::i32, ++/*548400*/ OPC_MoveParent, ++/*548401*/ OPC_MoveChild6, ++/*548402*/ OPC_CheckInteger, 31, ++/*548404*/ OPC_CheckType, MVT::i32, ++/*548406*/ OPC_MoveParent, ++/*548407*/ OPC_MoveChild7, ++/*548408*/ OPC_CheckInteger, 31, ++/*548410*/ OPC_CheckType, MVT::i32, ++/*548412*/ OPC_MoveParent, ++/*548413*/ OPC_CheckType, MVT::v8i32, ++/*548415*/ OPC_MoveParent, ++/*548416*/ OPC_MoveParent, ++/*548417*/ OPC_MoveParent, ++/*548418*/ OPC_CheckChild1Same, 1, ++/*548420*/ OPC_MoveParent, ++/*548421*/ OPC_MoveChild1, ++/*548422*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*548425*/ OPC_CheckChild0Integer, 1, ++/*548427*/ OPC_CheckChild0Type, MVT::i32, ++/*548429*/ OPC_CheckChild1Integer, 1, ++/*548431*/ OPC_CheckChild1Type, MVT::i32, ++/*548433*/ OPC_CheckChild2Integer, 1, ++/*548435*/ OPC_CheckChild2Type, MVT::i32, ++/*548437*/ OPC_CheckChild3Integer, 1, ++/*548439*/ OPC_CheckChild3Type, MVT::i32, ++/*548441*/ OPC_CheckChild4Integer, 1, ++/*548443*/ OPC_CheckChild4Type, MVT::i32, ++/*548445*/ OPC_MoveChild5, ++/*548446*/ OPC_CheckInteger, 1, ++/*548448*/ OPC_CheckType, MVT::i32, ++/*548450*/ OPC_MoveParent, ++/*548451*/ OPC_MoveChild6, ++/*548452*/ OPC_CheckInteger, 1, ++/*548454*/ OPC_CheckType, MVT::i32, ++/*548456*/ OPC_MoveParent, ++/*548457*/ OPC_MoveChild7, ++/*548458*/ OPC_CheckInteger, 1, ++/*548460*/ OPC_CheckType, MVT::i32, ++/*548462*/ OPC_MoveParent, ++/*548463*/ OPC_CheckType, MVT::v8i32, ++/*548465*/ OPC_MoveParent, ++/*548466*/ OPC_CheckType, MVT::v8i32, ++/*548468*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*548470*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 101 ++ // Dst: (XVAVG_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*548478*/ 0, /*End of Scope*/ ++/*548479*/ 0, /*End of Scope*/ ++/*548480*/ /*Scope*/ 59|128,1/*187*/, /*->548669*/ ++/*548482*/ OPC_MoveChild0, ++/*548483*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*548486*/ OPC_MoveChild0, ++/*548487*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*548490*/ OPC_RecordChild0, // #0 = $a ++/*548491*/ OPC_RecordChild1, // #1 = $b ++/*548492*/ OPC_MoveParent, ++/*548493*/ OPC_MoveChild1, ++/*548494*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*548497*/ OPC_CheckChild0Integer, 31, ++/*548499*/ OPC_CheckChild0Type, MVT::i32, ++/*548501*/ OPC_CheckChild1Integer, 31, ++/*548503*/ OPC_CheckChild1Type, MVT::i32, ++/*548505*/ OPC_CheckChild2Integer, 31, ++/*548507*/ OPC_CheckChild2Type, MVT::i32, ++/*548509*/ OPC_CheckChild3Integer, 31, ++/*548511*/ OPC_CheckChild3Type, MVT::i32, ++/*548513*/ OPC_CheckChild4Integer, 31, ++/*548515*/ OPC_CheckChild4Type, MVT::i32, ++/*548517*/ OPC_MoveChild5, ++/*548518*/ OPC_CheckInteger, 31, ++/*548520*/ OPC_CheckType, MVT::i32, ++/*548522*/ OPC_MoveParent, ++/*548523*/ OPC_MoveChild6, ++/*548524*/ OPC_CheckInteger, 31, ++/*548526*/ OPC_CheckType, MVT::i32, ++/*548528*/ OPC_MoveParent, ++/*548529*/ OPC_MoveChild7, ++/*548530*/ OPC_CheckInteger, 31, ++/*548532*/ OPC_CheckType, MVT::i32, ++/*548534*/ OPC_MoveParent, ++/*548535*/ OPC_CheckType, MVT::v8i32, ++/*548537*/ OPC_MoveParent, ++/*548538*/ OPC_MoveParent, ++/*548539*/ OPC_Scope, 63, /*->548604*/ // 2 children in Scope ++/*548541*/ OPC_CheckChild1Same, 0, ++/*548543*/ OPC_MoveParent, ++/*548544*/ OPC_CheckChild1Same, 1, ++/*548546*/ OPC_MoveParent, ++/*548547*/ OPC_MoveChild1, ++/*548548*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*548551*/ OPC_CheckChild0Integer, 1, ++/*548553*/ OPC_CheckChild0Type, MVT::i32, ++/*548555*/ OPC_CheckChild1Integer, 1, ++/*548557*/ OPC_CheckChild1Type, MVT::i32, ++/*548559*/ OPC_CheckChild2Integer, 1, ++/*548561*/ OPC_CheckChild2Type, MVT::i32, ++/*548563*/ OPC_CheckChild3Integer, 1, ++/*548565*/ OPC_CheckChild3Type, MVT::i32, ++/*548567*/ OPC_CheckChild4Integer, 1, ++/*548569*/ OPC_CheckChild4Type, MVT::i32, ++/*548571*/ OPC_MoveChild5, ++/*548572*/ OPC_CheckInteger, 1, ++/*548574*/ OPC_CheckType, MVT::i32, ++/*548576*/ OPC_MoveParent, ++/*548577*/ OPC_MoveChild6, ++/*548578*/ OPC_CheckInteger, 1, ++/*548580*/ OPC_CheckType, MVT::i32, ++/*548582*/ OPC_MoveParent, ++/*548583*/ OPC_MoveChild7, ++/*548584*/ OPC_CheckInteger, 1, ++/*548586*/ OPC_CheckType, MVT::i32, ++/*548588*/ OPC_MoveParent, ++/*548589*/ OPC_CheckType, MVT::v8i32, ++/*548591*/ OPC_MoveParent, ++/*548592*/ OPC_CheckType, MVT::v8i32, ++/*548594*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*548596*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$a), LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 101 ++ // Dst: (XVAVG_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*548604*/ /*Scope*/ 63, /*->548668*/ ++/*548605*/ OPC_CheckChild1Same, 1, ++/*548607*/ OPC_MoveParent, ++/*548608*/ OPC_CheckChild1Same, 0, ++/*548610*/ OPC_MoveParent, ++/*548611*/ OPC_MoveChild1, ++/*548612*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*548615*/ OPC_CheckChild0Integer, 1, ++/*548617*/ OPC_CheckChild0Type, MVT::i32, ++/*548619*/ OPC_CheckChild1Integer, 1, ++/*548621*/ OPC_CheckChild1Type, MVT::i32, ++/*548623*/ OPC_CheckChild2Integer, 1, ++/*548625*/ OPC_CheckChild2Type, MVT::i32, ++/*548627*/ OPC_CheckChild3Integer, 1, ++/*548629*/ OPC_CheckChild3Type, MVT::i32, ++/*548631*/ OPC_CheckChild4Integer, 1, ++/*548633*/ OPC_CheckChild4Type, MVT::i32, ++/*548635*/ OPC_MoveChild5, ++/*548636*/ OPC_CheckInteger, 1, ++/*548638*/ OPC_CheckType, MVT::i32, ++/*548640*/ OPC_MoveParent, ++/*548641*/ OPC_MoveChild6, ++/*548642*/ OPC_CheckInteger, 1, ++/*548644*/ OPC_CheckType, MVT::i32, ++/*548646*/ OPC_MoveParent, ++/*548647*/ OPC_MoveChild7, ++/*548648*/ OPC_CheckInteger, 1, ++/*548650*/ OPC_CheckType, MVT::i32, ++/*548652*/ OPC_MoveParent, ++/*548653*/ OPC_CheckType, MVT::v8i32, ++/*548655*/ OPC_MoveParent, ++/*548656*/ OPC_CheckType, MVT::v8i32, ++/*548658*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*548660*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$a), LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 101 ++ // Dst: (XVAVG_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*548668*/ 0, /*End of Scope*/ ++/*548669*/ /*Scope*/ 107|128,1/*235*/, /*->548906*/ ++/*548671*/ OPC_RecordChild0, // #0 = $b ++/*548672*/ OPC_MoveChild1, ++/*548673*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*548676*/ OPC_MoveChild0, ++/*548677*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*548680*/ OPC_Scope, 111, /*->548793*/ // 2 children in Scope ++/*548682*/ OPC_RecordChild0, // #1 = $a ++/*548683*/ OPC_CheckChild1Same, 0, ++/*548685*/ OPC_MoveParent, ++/*548686*/ OPC_MoveChild1, ++/*548687*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*548690*/ OPC_CheckChild0Integer, 31, ++/*548692*/ OPC_CheckChild0Type, MVT::i32, ++/*548694*/ OPC_CheckChild1Integer, 31, ++/*548696*/ OPC_CheckChild1Type, MVT::i32, ++/*548698*/ OPC_CheckChild2Integer, 31, ++/*548700*/ OPC_CheckChild2Type, MVT::i32, ++/*548702*/ OPC_CheckChild3Integer, 31, ++/*548704*/ OPC_CheckChild3Type, MVT::i32, ++/*548706*/ OPC_CheckChild4Integer, 31, ++/*548708*/ OPC_CheckChild4Type, MVT::i32, ++/*548710*/ OPC_MoveChild5, ++/*548711*/ OPC_CheckInteger, 31, ++/*548713*/ OPC_CheckType, MVT::i32, ++/*548715*/ OPC_MoveParent, ++/*548716*/ OPC_MoveChild6, ++/*548717*/ OPC_CheckInteger, 31, ++/*548719*/ OPC_CheckType, MVT::i32, ++/*548721*/ OPC_MoveParent, ++/*548722*/ OPC_MoveChild7, ++/*548723*/ OPC_CheckInteger, 31, ++/*548725*/ OPC_CheckType, MVT::i32, ++/*548727*/ OPC_MoveParent, ++/*548728*/ OPC_CheckType, MVT::v8i32, ++/*548730*/ OPC_MoveParent, ++/*548731*/ OPC_MoveParent, ++/*548732*/ OPC_MoveParent, ++/*548733*/ OPC_CheckChild1Same, 1, ++/*548735*/ OPC_MoveParent, ++/*548736*/ OPC_MoveChild1, ++/*548737*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*548740*/ OPC_CheckChild0Integer, 1, ++/*548742*/ OPC_CheckChild0Type, MVT::i32, ++/*548744*/ OPC_CheckChild1Integer, 1, ++/*548746*/ OPC_CheckChild1Type, MVT::i32, ++/*548748*/ OPC_CheckChild2Integer, 1, ++/*548750*/ OPC_CheckChild2Type, MVT::i32, ++/*548752*/ OPC_CheckChild3Integer, 1, ++/*548754*/ OPC_CheckChild3Type, MVT::i32, ++/*548756*/ OPC_CheckChild4Integer, 1, ++/*548758*/ OPC_CheckChild4Type, MVT::i32, ++/*548760*/ OPC_MoveChild5, ++/*548761*/ OPC_CheckInteger, 1, ++/*548763*/ OPC_CheckType, MVT::i32, ++/*548765*/ OPC_MoveParent, ++/*548766*/ OPC_MoveChild6, ++/*548767*/ OPC_CheckInteger, 1, ++/*548769*/ OPC_CheckType, MVT::i32, ++/*548771*/ OPC_MoveParent, ++/*548772*/ OPC_MoveChild7, ++/*548773*/ OPC_CheckInteger, 1, ++/*548775*/ OPC_CheckType, MVT::i32, ++/*548777*/ OPC_MoveParent, ++/*548778*/ OPC_CheckType, MVT::v8i32, ++/*548780*/ OPC_MoveParent, ++/*548781*/ OPC_CheckType, MVT::v8i32, ++/*548783*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*548785*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 101 ++ // Dst: (XVAVG_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*548793*/ /*Scope*/ 111, /*->548905*/ ++/*548794*/ OPC_CheckChild0Same, 0, ++/*548796*/ OPC_RecordChild1, // #1 = $a ++/*548797*/ OPC_MoveParent, ++/*548798*/ OPC_MoveChild1, ++/*548799*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*548802*/ OPC_CheckChild0Integer, 31, ++/*548804*/ OPC_CheckChild0Type, MVT::i32, ++/*548806*/ OPC_CheckChild1Integer, 31, ++/*548808*/ OPC_CheckChild1Type, MVT::i32, ++/*548810*/ OPC_CheckChild2Integer, 31, ++/*548812*/ OPC_CheckChild2Type, MVT::i32, ++/*548814*/ OPC_CheckChild3Integer, 31, ++/*548816*/ OPC_CheckChild3Type, MVT::i32, ++/*548818*/ OPC_CheckChild4Integer, 31, ++/*548820*/ OPC_CheckChild4Type, MVT::i32, ++/*548822*/ OPC_MoveChild5, ++/*548823*/ OPC_CheckInteger, 31, ++/*548825*/ OPC_CheckType, MVT::i32, ++/*548827*/ OPC_MoveParent, ++/*548828*/ OPC_MoveChild6, ++/*548829*/ OPC_CheckInteger, 31, ++/*548831*/ OPC_CheckType, MVT::i32, ++/*548833*/ OPC_MoveParent, ++/*548834*/ OPC_MoveChild7, ++/*548835*/ OPC_CheckInteger, 31, ++/*548837*/ OPC_CheckType, MVT::i32, ++/*548839*/ OPC_MoveParent, ++/*548840*/ OPC_CheckType, MVT::v8i32, ++/*548842*/ OPC_MoveParent, ++/*548843*/ OPC_MoveParent, ++/*548844*/ OPC_MoveParent, ++/*548845*/ OPC_CheckChild1Same, 1, ++/*548847*/ OPC_MoveParent, ++/*548848*/ OPC_MoveChild1, ++/*548849*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*548852*/ OPC_CheckChild0Integer, 1, ++/*548854*/ OPC_CheckChild0Type, MVT::i32, ++/*548856*/ OPC_CheckChild1Integer, 1, ++/*548858*/ OPC_CheckChild1Type, MVT::i32, ++/*548860*/ OPC_CheckChild2Integer, 1, ++/*548862*/ OPC_CheckChild2Type, MVT::i32, ++/*548864*/ OPC_CheckChild3Integer, 1, ++/*548866*/ OPC_CheckChild3Type, MVT::i32, ++/*548868*/ OPC_CheckChild4Integer, 1, ++/*548870*/ OPC_CheckChild4Type, MVT::i32, ++/*548872*/ OPC_MoveChild5, ++/*548873*/ OPC_CheckInteger, 1, ++/*548875*/ OPC_CheckType, MVT::i32, ++/*548877*/ OPC_MoveParent, ++/*548878*/ OPC_MoveChild6, ++/*548879*/ OPC_CheckInteger, 1, ++/*548881*/ OPC_CheckType, MVT::i32, ++/*548883*/ OPC_MoveParent, ++/*548884*/ OPC_MoveChild7, ++/*548885*/ OPC_CheckInteger, 1, ++/*548887*/ OPC_CheckType, MVT::i32, ++/*548889*/ OPC_MoveParent, ++/*548890*/ OPC_CheckType, MVT::v8i32, ++/*548892*/ OPC_MoveParent, ++/*548893*/ OPC_CheckType, MVT::v8i32, ++/*548895*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*548897*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 101 ++ // Dst: (XVAVG_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*548905*/ 0, /*End of Scope*/ ++/*548906*/ /*Scope*/ 59|128,1/*187*/, /*->549095*/ ++/*548908*/ OPC_MoveChild0, ++/*548909*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*548912*/ OPC_MoveChild0, ++/*548913*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*548916*/ OPC_RecordChild0, // #0 = $a ++/*548917*/ OPC_RecordChild1, // #1 = $b ++/*548918*/ OPC_MoveParent, ++/*548919*/ OPC_MoveChild1, ++/*548920*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*548923*/ OPC_CheckChild0Integer, 31, ++/*548925*/ OPC_CheckChild0Type, MVT::i32, ++/*548927*/ OPC_CheckChild1Integer, 31, ++/*548929*/ OPC_CheckChild1Type, MVT::i32, ++/*548931*/ OPC_CheckChild2Integer, 31, ++/*548933*/ OPC_CheckChild2Type, MVT::i32, ++/*548935*/ OPC_CheckChild3Integer, 31, ++/*548937*/ OPC_CheckChild3Type, MVT::i32, ++/*548939*/ OPC_CheckChild4Integer, 31, ++/*548941*/ OPC_CheckChild4Type, MVT::i32, ++/*548943*/ OPC_MoveChild5, ++/*548944*/ OPC_CheckInteger, 31, ++/*548946*/ OPC_CheckType, MVT::i32, ++/*548948*/ OPC_MoveParent, ++/*548949*/ OPC_MoveChild6, ++/*548950*/ OPC_CheckInteger, 31, ++/*548952*/ OPC_CheckType, MVT::i32, ++/*548954*/ OPC_MoveParent, ++/*548955*/ OPC_MoveChild7, ++/*548956*/ OPC_CheckInteger, 31, ++/*548958*/ OPC_CheckType, MVT::i32, ++/*548960*/ OPC_MoveParent, ++/*548961*/ OPC_CheckType, MVT::v8i32, ++/*548963*/ OPC_MoveParent, ++/*548964*/ OPC_MoveParent, ++/*548965*/ OPC_Scope, 63, /*->549030*/ // 2 children in Scope ++/*548967*/ OPC_CheckChild1Same, 1, ++/*548969*/ OPC_MoveParent, ++/*548970*/ OPC_CheckChild1Same, 0, ++/*548972*/ OPC_MoveParent, ++/*548973*/ OPC_MoveChild1, ++/*548974*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*548977*/ OPC_CheckChild0Integer, 1, ++/*548979*/ OPC_CheckChild0Type, MVT::i32, ++/*548981*/ OPC_CheckChild1Integer, 1, ++/*548983*/ OPC_CheckChild1Type, MVT::i32, ++/*548985*/ OPC_CheckChild2Integer, 1, ++/*548987*/ OPC_CheckChild2Type, MVT::i32, ++/*548989*/ OPC_CheckChild3Integer, 1, ++/*548991*/ OPC_CheckChild3Type, MVT::i32, ++/*548993*/ OPC_CheckChild4Integer, 1, ++/*548995*/ OPC_CheckChild4Type, MVT::i32, ++/*548997*/ OPC_MoveChild5, ++/*548998*/ OPC_CheckInteger, 1, ++/*549000*/ OPC_CheckType, MVT::i32, ++/*549002*/ OPC_MoveParent, ++/*549003*/ OPC_MoveChild6, ++/*549004*/ OPC_CheckInteger, 1, ++/*549006*/ OPC_CheckType, MVT::i32, ++/*549008*/ OPC_MoveParent, ++/*549009*/ OPC_MoveChild7, ++/*549010*/ OPC_CheckInteger, 1, ++/*549012*/ OPC_CheckType, MVT::i32, ++/*549014*/ OPC_MoveParent, ++/*549015*/ OPC_CheckType, MVT::v8i32, ++/*549017*/ OPC_MoveParent, ++/*549018*/ OPC_CheckType, MVT::v8i32, ++/*549020*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*549022*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$b), LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 101 ++ // Dst: (XVAVG_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*549030*/ /*Scope*/ 63, /*->549094*/ ++/*549031*/ OPC_CheckChild1Same, 0, ++/*549033*/ OPC_MoveParent, ++/*549034*/ OPC_CheckChild1Same, 1, ++/*549036*/ OPC_MoveParent, ++/*549037*/ OPC_MoveChild1, ++/*549038*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*549041*/ OPC_CheckChild0Integer, 1, ++/*549043*/ OPC_CheckChild0Type, MVT::i32, ++/*549045*/ OPC_CheckChild1Integer, 1, ++/*549047*/ OPC_CheckChild1Type, MVT::i32, ++/*549049*/ OPC_CheckChild2Integer, 1, ++/*549051*/ OPC_CheckChild2Type, MVT::i32, ++/*549053*/ OPC_CheckChild3Integer, 1, ++/*549055*/ OPC_CheckChild3Type, MVT::i32, ++/*549057*/ OPC_CheckChild4Integer, 1, ++/*549059*/ OPC_CheckChild4Type, MVT::i32, ++/*549061*/ OPC_MoveChild5, ++/*549062*/ OPC_CheckInteger, 1, ++/*549064*/ OPC_CheckType, MVT::i32, ++/*549066*/ OPC_MoveParent, ++/*549067*/ OPC_MoveChild6, ++/*549068*/ OPC_CheckInteger, 1, ++/*549070*/ OPC_CheckType, MVT::i32, ++/*549072*/ OPC_MoveParent, ++/*549073*/ OPC_MoveChild7, ++/*549074*/ OPC_CheckInteger, 1, ++/*549076*/ OPC_CheckType, MVT::i32, ++/*549078*/ OPC_MoveParent, ++/*549079*/ OPC_CheckType, MVT::v8i32, ++/*549081*/ OPC_MoveParent, ++/*549082*/ OPC_CheckType, MVT::v8i32, ++/*549084*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*549086*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$b), LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 101 ++ // Dst: (XVAVG_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*549094*/ 0, /*End of Scope*/ ++/*549095*/ 0, /*End of Scope*/ ++/*549096*/ /*SwitchOpcode*/ 7|128,2/*263*/, TARGET_VAL(ISD::SRL),// ->549363 ++/*549100*/ OPC_MoveChild0, ++/*549101*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*549104*/ OPC_RecordChild0, // #0 = $a ++/*549105*/ OPC_RecordChild1, // #1 = $b ++/*549106*/ OPC_MoveParent, ++/*549107*/ OPC_MoveChild1, ++/*549108*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*549111*/ OPC_CheckChild0Integer, 31, ++/*549113*/ OPC_CheckChild0Type, MVT::i32, ++/*549115*/ OPC_CheckChild1Integer, 31, ++/*549117*/ OPC_CheckChild1Type, MVT::i32, ++/*549119*/ OPC_CheckChild2Integer, 31, ++/*549121*/ OPC_CheckChild2Type, MVT::i32, ++/*549123*/ OPC_CheckChild3Integer, 31, ++/*549125*/ OPC_CheckChild3Type, MVT::i32, ++/*549127*/ OPC_CheckChild4Integer, 31, ++/*549129*/ OPC_CheckChild4Type, MVT::i32, ++/*549131*/ OPC_MoveChild5, ++/*549132*/ OPC_CheckInteger, 31, ++/*549134*/ OPC_CheckType, MVT::i32, ++/*549136*/ OPC_MoveParent, ++/*549137*/ OPC_MoveChild6, ++/*549138*/ OPC_CheckInteger, 31, ++/*549140*/ OPC_CheckType, MVT::i32, ++/*549142*/ OPC_MoveParent, ++/*549143*/ OPC_MoveChild7, ++/*549144*/ OPC_CheckInteger, 31, ++/*549146*/ OPC_CheckType, MVT::i32, ++/*549148*/ OPC_MoveParent, ++/*549149*/ OPC_CheckType, MVT::v8i32, ++/*549151*/ OPC_MoveParent, ++/*549152*/ OPC_MoveParent, ++/*549153*/ OPC_MoveChild1, ++/*549154*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*549157*/ OPC_Scope, 63, /*->549222*/ // 3 children in Scope ++/*549159*/ OPC_CheckChild0Same, 0, ++/*549161*/ OPC_CheckChild1Same, 1, ++/*549163*/ OPC_MoveParent, ++/*549164*/ OPC_MoveParent, ++/*549165*/ OPC_MoveChild1, ++/*549166*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*549169*/ OPC_CheckChild0Integer, 1, ++/*549171*/ OPC_CheckChild0Type, MVT::i32, ++/*549173*/ OPC_CheckChild1Integer, 1, ++/*549175*/ OPC_CheckChild1Type, MVT::i32, ++/*549177*/ OPC_CheckChild2Integer, 1, ++/*549179*/ OPC_CheckChild2Type, MVT::i32, ++/*549181*/ OPC_CheckChild3Integer, 1, ++/*549183*/ OPC_CheckChild3Type, MVT::i32, ++/*549185*/ OPC_CheckChild4Integer, 1, ++/*549187*/ OPC_CheckChild4Type, MVT::i32, ++/*549189*/ OPC_MoveChild5, ++/*549190*/ OPC_CheckInteger, 1, ++/*549192*/ OPC_CheckType, MVT::i32, ++/*549194*/ OPC_MoveParent, ++/*549195*/ OPC_MoveChild6, ++/*549196*/ OPC_CheckInteger, 1, ++/*549198*/ OPC_CheckType, MVT::i32, ++/*549200*/ OPC_MoveParent, ++/*549201*/ OPC_MoveChild7, ++/*549202*/ OPC_CheckInteger, 1, ++/*549204*/ OPC_CheckType, MVT::i32, ++/*549206*/ OPC_MoveParent, ++/*549207*/ OPC_CheckType, MVT::v8i32, ++/*549209*/ OPC_MoveParent, ++/*549210*/ OPC_CheckType, MVT::v8i32, ++/*549212*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*549214*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 101 ++ // Dst: (XVAVG_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*549222*/ /*Scope*/ 75, /*->549298*/ ++/*549223*/ OPC_CheckChild0Same, 1, ++/*549225*/ OPC_CheckChild1Same, 0, ++/*549227*/ OPC_MoveParent, ++/*549228*/ OPC_MoveParent, ++/*549229*/ OPC_MoveChild1, ++/*549230*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*549233*/ OPC_CheckChild0Integer, 1, ++/*549235*/ OPC_CheckChild0Type, MVT::i32, ++/*549237*/ OPC_CheckChild1Integer, 1, ++/*549239*/ OPC_CheckChild1Type, MVT::i32, ++/*549241*/ OPC_CheckChild2Integer, 1, ++/*549243*/ OPC_CheckChild2Type, MVT::i32, ++/*549245*/ OPC_CheckChild3Integer, 1, ++/*549247*/ OPC_CheckChild3Type, MVT::i32, ++/*549249*/ OPC_CheckChild4Integer, 1, ++/*549251*/ OPC_CheckChild4Type, MVT::i32, ++/*549253*/ OPC_MoveChild5, ++/*549254*/ OPC_CheckInteger, 1, ++/*549256*/ OPC_CheckType, MVT::i32, ++/*549258*/ OPC_MoveParent, ++/*549259*/ OPC_MoveChild6, ++/*549260*/ OPC_CheckInteger, 1, ++/*549262*/ OPC_CheckType, MVT::i32, ++/*549264*/ OPC_MoveParent, ++/*549265*/ OPC_MoveChild7, ++/*549266*/ OPC_CheckInteger, 1, ++/*549268*/ OPC_CheckType, MVT::i32, ++/*549270*/ OPC_MoveParent, ++/*549271*/ OPC_CheckType, MVT::v8i32, ++/*549273*/ OPC_MoveParent, ++/*549274*/ OPC_CheckType, MVT::v8i32, ++/*549276*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*549278*/ OPC_Scope, 8, /*->549288*/ // 2 children in Scope ++/*549280*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 101 ++ // Dst: (XVAVG_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*549288*/ /*Scope*/ 8, /*->549297*/ ++/*549289*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 101 ++ // Dst: (XVAVG_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*549297*/ 0, /*End of Scope*/ ++/*549298*/ /*Scope*/ 63, /*->549362*/ ++/*549299*/ OPC_CheckChild0Same, 0, ++/*549301*/ OPC_CheckChild1Same, 1, ++/*549303*/ OPC_MoveParent, ++/*549304*/ OPC_MoveParent, ++/*549305*/ OPC_MoveChild1, ++/*549306*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*549309*/ OPC_CheckChild0Integer, 1, ++/*549311*/ OPC_CheckChild0Type, MVT::i32, ++/*549313*/ OPC_CheckChild1Integer, 1, ++/*549315*/ OPC_CheckChild1Type, MVT::i32, ++/*549317*/ OPC_CheckChild2Integer, 1, ++/*549319*/ OPC_CheckChild2Type, MVT::i32, ++/*549321*/ OPC_CheckChild3Integer, 1, ++/*549323*/ OPC_CheckChild3Type, MVT::i32, ++/*549325*/ OPC_CheckChild4Integer, 1, ++/*549327*/ OPC_CheckChild4Type, MVT::i32, ++/*549329*/ OPC_MoveChild5, ++/*549330*/ OPC_CheckInteger, 1, ++/*549332*/ OPC_CheckType, MVT::i32, ++/*549334*/ OPC_MoveParent, ++/*549335*/ OPC_MoveChild6, ++/*549336*/ OPC_CheckInteger, 1, ++/*549338*/ OPC_CheckType, MVT::i32, ++/*549340*/ OPC_MoveParent, ++/*549341*/ OPC_MoveChild7, ++/*549342*/ OPC_CheckInteger, 1, ++/*549344*/ OPC_CheckType, MVT::i32, ++/*549346*/ OPC_MoveParent, ++/*549347*/ OPC_CheckType, MVT::v8i32, ++/*549349*/ OPC_MoveParent, ++/*549350*/ OPC_CheckType, MVT::v8i32, ++/*549352*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*549354*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 101 ++ // Dst: (XVAVG_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*549362*/ 0, /*End of Scope*/ ++/*549363*/ 0, // EndSwitchOpcode ++/*549364*/ /*Scope*/ 53|128,7/*949*/, /*->550315*/ ++/*549366*/ OPC_RecordChild0, // #0 = $b ++/*549367*/ OPC_MoveChild1, ++/*549368*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*549371*/ OPC_Scope, 105|128,1/*233*/, /*->549607*/ // 4 children in Scope ++/*549374*/ OPC_RecordChild0, // #1 = $a ++/*549375*/ OPC_MoveChild1, ++/*549376*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*549379*/ OPC_MoveChild0, ++/*549380*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*549383*/ OPC_Scope, 110, /*->549495*/ // 2 children in Scope ++/*549385*/ OPC_CheckChild0Same, 1, ++/*549387*/ OPC_CheckChild1Same, 0, ++/*549389*/ OPC_MoveParent, ++/*549390*/ OPC_MoveChild1, ++/*549391*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*549394*/ OPC_CheckChild0Integer, 31, ++/*549396*/ OPC_CheckChild0Type, MVT::i32, ++/*549398*/ OPC_CheckChild1Integer, 31, ++/*549400*/ OPC_CheckChild1Type, MVT::i32, ++/*549402*/ OPC_CheckChild2Integer, 31, ++/*549404*/ OPC_CheckChild2Type, MVT::i32, ++/*549406*/ OPC_CheckChild3Integer, 31, ++/*549408*/ OPC_CheckChild3Type, MVT::i32, ++/*549410*/ OPC_CheckChild4Integer, 31, ++/*549412*/ OPC_CheckChild4Type, MVT::i32, ++/*549414*/ OPC_MoveChild5, ++/*549415*/ OPC_CheckInteger, 31, ++/*549417*/ OPC_CheckType, MVT::i32, ++/*549419*/ OPC_MoveParent, ++/*549420*/ OPC_MoveChild6, ++/*549421*/ OPC_CheckInteger, 31, ++/*549423*/ OPC_CheckType, MVT::i32, ++/*549425*/ OPC_MoveParent, ++/*549426*/ OPC_MoveChild7, ++/*549427*/ OPC_CheckInteger, 31, ++/*549429*/ OPC_CheckType, MVT::i32, ++/*549431*/ OPC_MoveParent, ++/*549432*/ OPC_CheckType, MVT::v8i32, ++/*549434*/ OPC_MoveParent, ++/*549435*/ OPC_MoveParent, ++/*549436*/ OPC_MoveParent, ++/*549437*/ OPC_MoveParent, ++/*549438*/ OPC_MoveChild1, ++/*549439*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*549442*/ OPC_CheckChild0Integer, 1, ++/*549444*/ OPC_CheckChild0Type, MVT::i32, ++/*549446*/ OPC_CheckChild1Integer, 1, ++/*549448*/ OPC_CheckChild1Type, MVT::i32, ++/*549450*/ OPC_CheckChild2Integer, 1, ++/*549452*/ OPC_CheckChild2Type, MVT::i32, ++/*549454*/ OPC_CheckChild3Integer, 1, ++/*549456*/ OPC_CheckChild3Type, MVT::i32, ++/*549458*/ OPC_CheckChild4Integer, 1, ++/*549460*/ OPC_CheckChild4Type, MVT::i32, ++/*549462*/ OPC_MoveChild5, ++/*549463*/ OPC_CheckInteger, 1, ++/*549465*/ OPC_CheckType, MVT::i32, ++/*549467*/ OPC_MoveParent, ++/*549468*/ OPC_MoveChild6, ++/*549469*/ OPC_CheckInteger, 1, ++/*549471*/ OPC_CheckType, MVT::i32, ++/*549473*/ OPC_MoveParent, ++/*549474*/ OPC_MoveChild7, ++/*549475*/ OPC_CheckInteger, 1, ++/*549477*/ OPC_CheckType, MVT::i32, ++/*549479*/ OPC_MoveParent, ++/*549480*/ OPC_CheckType, MVT::v8i32, ++/*549482*/ OPC_MoveParent, ++/*549483*/ OPC_CheckType, MVT::v8i32, ++/*549485*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*549487*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 101 ++ // Dst: (XVAVG_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*549495*/ /*Scope*/ 110, /*->549606*/ ++/*549496*/ OPC_CheckChild0Same, 0, ++/*549498*/ OPC_CheckChild1Same, 1, ++/*549500*/ OPC_MoveParent, ++/*549501*/ OPC_MoveChild1, ++/*549502*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*549505*/ OPC_CheckChild0Integer, 31, ++/*549507*/ OPC_CheckChild0Type, MVT::i32, ++/*549509*/ OPC_CheckChild1Integer, 31, ++/*549511*/ OPC_CheckChild1Type, MVT::i32, ++/*549513*/ OPC_CheckChild2Integer, 31, ++/*549515*/ OPC_CheckChild2Type, MVT::i32, ++/*549517*/ OPC_CheckChild3Integer, 31, ++/*549519*/ OPC_CheckChild3Type, MVT::i32, ++/*549521*/ OPC_CheckChild4Integer, 31, ++/*549523*/ OPC_CheckChild4Type, MVT::i32, ++/*549525*/ OPC_MoveChild5, ++/*549526*/ OPC_CheckInteger, 31, ++/*549528*/ OPC_CheckType, MVT::i32, ++/*549530*/ OPC_MoveParent, ++/*549531*/ OPC_MoveChild6, ++/*549532*/ OPC_CheckInteger, 31, ++/*549534*/ OPC_CheckType, MVT::i32, ++/*549536*/ OPC_MoveParent, ++/*549537*/ OPC_MoveChild7, ++/*549538*/ OPC_CheckInteger, 31, ++/*549540*/ OPC_CheckType, MVT::i32, ++/*549542*/ OPC_MoveParent, ++/*549543*/ OPC_CheckType, MVT::v8i32, ++/*549545*/ OPC_MoveParent, ++/*549546*/ OPC_MoveParent, ++/*549547*/ OPC_MoveParent, ++/*549548*/ OPC_MoveParent, ++/*549549*/ OPC_MoveChild1, ++/*549550*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*549553*/ OPC_CheckChild0Integer, 1, ++/*549555*/ OPC_CheckChild0Type, MVT::i32, ++/*549557*/ OPC_CheckChild1Integer, 1, ++/*549559*/ OPC_CheckChild1Type, MVT::i32, ++/*549561*/ OPC_CheckChild2Integer, 1, ++/*549563*/ OPC_CheckChild2Type, MVT::i32, ++/*549565*/ OPC_CheckChild3Integer, 1, ++/*549567*/ OPC_CheckChild3Type, MVT::i32, ++/*549569*/ OPC_CheckChild4Integer, 1, ++/*549571*/ OPC_CheckChild4Type, MVT::i32, ++/*549573*/ OPC_MoveChild5, ++/*549574*/ OPC_CheckInteger, 1, ++/*549576*/ OPC_CheckType, MVT::i32, ++/*549578*/ OPC_MoveParent, ++/*549579*/ OPC_MoveChild6, ++/*549580*/ OPC_CheckInteger, 1, ++/*549582*/ OPC_CheckType, MVT::i32, ++/*549584*/ OPC_MoveParent, ++/*549585*/ OPC_MoveChild7, ++/*549586*/ OPC_CheckInteger, 1, ++/*549588*/ OPC_CheckType, MVT::i32, ++/*549590*/ OPC_MoveParent, ++/*549591*/ OPC_CheckType, MVT::v8i32, ++/*549593*/ OPC_MoveParent, ++/*549594*/ OPC_CheckType, MVT::v8i32, ++/*549596*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*549598*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 101 ++ // Dst: (XVAVG_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*549606*/ 0, /*End of Scope*/ ++/*549607*/ /*Scope*/ 106|128,1/*234*/, /*->549843*/ ++/*549609*/ OPC_MoveChild0, ++/*549610*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*549613*/ OPC_MoveChild0, ++/*549614*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*549617*/ OPC_Scope, 111, /*->549730*/ // 2 children in Scope ++/*549619*/ OPC_RecordChild0, // #1 = $a ++/*549620*/ OPC_CheckChild1Same, 0, ++/*549622*/ OPC_MoveParent, ++/*549623*/ OPC_MoveChild1, ++/*549624*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*549627*/ OPC_CheckChild0Integer, 31, ++/*549629*/ OPC_CheckChild0Type, MVT::i32, ++/*549631*/ OPC_CheckChild1Integer, 31, ++/*549633*/ OPC_CheckChild1Type, MVT::i32, ++/*549635*/ OPC_CheckChild2Integer, 31, ++/*549637*/ OPC_CheckChild2Type, MVT::i32, ++/*549639*/ OPC_CheckChild3Integer, 31, ++/*549641*/ OPC_CheckChild3Type, MVT::i32, ++/*549643*/ OPC_CheckChild4Integer, 31, ++/*549645*/ OPC_CheckChild4Type, MVT::i32, ++/*549647*/ OPC_MoveChild5, ++/*549648*/ OPC_CheckInteger, 31, ++/*549650*/ OPC_CheckType, MVT::i32, ++/*549652*/ OPC_MoveParent, ++/*549653*/ OPC_MoveChild6, ++/*549654*/ OPC_CheckInteger, 31, ++/*549656*/ OPC_CheckType, MVT::i32, ++/*549658*/ OPC_MoveParent, ++/*549659*/ OPC_MoveChild7, ++/*549660*/ OPC_CheckInteger, 31, ++/*549662*/ OPC_CheckType, MVT::i32, ++/*549664*/ OPC_MoveParent, ++/*549665*/ OPC_CheckType, MVT::v8i32, ++/*549667*/ OPC_MoveParent, ++/*549668*/ OPC_MoveParent, ++/*549669*/ OPC_CheckChild1Same, 1, ++/*549671*/ OPC_MoveParent, ++/*549672*/ OPC_MoveParent, ++/*549673*/ OPC_MoveChild1, ++/*549674*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*549677*/ OPC_CheckChild0Integer, 1, ++/*549679*/ OPC_CheckChild0Type, MVT::i32, ++/*549681*/ OPC_CheckChild1Integer, 1, ++/*549683*/ OPC_CheckChild1Type, MVT::i32, ++/*549685*/ OPC_CheckChild2Integer, 1, ++/*549687*/ OPC_CheckChild2Type, MVT::i32, ++/*549689*/ OPC_CheckChild3Integer, 1, ++/*549691*/ OPC_CheckChild3Type, MVT::i32, ++/*549693*/ OPC_CheckChild4Integer, 1, ++/*549695*/ OPC_CheckChild4Type, MVT::i32, ++/*549697*/ OPC_MoveChild5, ++/*549698*/ OPC_CheckInteger, 1, ++/*549700*/ OPC_CheckType, MVT::i32, ++/*549702*/ OPC_MoveParent, ++/*549703*/ OPC_MoveChild6, ++/*549704*/ OPC_CheckInteger, 1, ++/*549706*/ OPC_CheckType, MVT::i32, ++/*549708*/ OPC_MoveParent, ++/*549709*/ OPC_MoveChild7, ++/*549710*/ OPC_CheckInteger, 1, ++/*549712*/ OPC_CheckType, MVT::i32, ++/*549714*/ OPC_MoveParent, ++/*549715*/ OPC_CheckType, MVT::v8i32, ++/*549717*/ OPC_MoveParent, ++/*549718*/ OPC_CheckType, MVT::v8i32, ++/*549720*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*549722*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 101 ++ // Dst: (XVAVG_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*549730*/ /*Scope*/ 111, /*->549842*/ ++/*549731*/ OPC_CheckChild0Same, 0, ++/*549733*/ OPC_RecordChild1, // #1 = $a ++/*549734*/ OPC_MoveParent, ++/*549735*/ OPC_MoveChild1, ++/*549736*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*549739*/ OPC_CheckChild0Integer, 31, ++/*549741*/ OPC_CheckChild0Type, MVT::i32, ++/*549743*/ OPC_CheckChild1Integer, 31, ++/*549745*/ OPC_CheckChild1Type, MVT::i32, ++/*549747*/ OPC_CheckChild2Integer, 31, ++/*549749*/ OPC_CheckChild2Type, MVT::i32, ++/*549751*/ OPC_CheckChild3Integer, 31, ++/*549753*/ OPC_CheckChild3Type, MVT::i32, ++/*549755*/ OPC_CheckChild4Integer, 31, ++/*549757*/ OPC_CheckChild4Type, MVT::i32, ++/*549759*/ OPC_MoveChild5, ++/*549760*/ OPC_CheckInteger, 31, ++/*549762*/ OPC_CheckType, MVT::i32, ++/*549764*/ OPC_MoveParent, ++/*549765*/ OPC_MoveChild6, ++/*549766*/ OPC_CheckInteger, 31, ++/*549768*/ OPC_CheckType, MVT::i32, ++/*549770*/ OPC_MoveParent, ++/*549771*/ OPC_MoveChild7, ++/*549772*/ OPC_CheckInteger, 31, ++/*549774*/ OPC_CheckType, MVT::i32, ++/*549776*/ OPC_MoveParent, ++/*549777*/ OPC_CheckType, MVT::v8i32, ++/*549779*/ OPC_MoveParent, ++/*549780*/ OPC_MoveParent, ++/*549781*/ OPC_CheckChild1Same, 1, ++/*549783*/ OPC_MoveParent, ++/*549784*/ OPC_MoveParent, ++/*549785*/ OPC_MoveChild1, ++/*549786*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*549789*/ OPC_CheckChild0Integer, 1, ++/*549791*/ OPC_CheckChild0Type, MVT::i32, ++/*549793*/ OPC_CheckChild1Integer, 1, ++/*549795*/ OPC_CheckChild1Type, MVT::i32, ++/*549797*/ OPC_CheckChild2Integer, 1, ++/*549799*/ OPC_CheckChild2Type, MVT::i32, ++/*549801*/ OPC_CheckChild3Integer, 1, ++/*549803*/ OPC_CheckChild3Type, MVT::i32, ++/*549805*/ OPC_CheckChild4Integer, 1, ++/*549807*/ OPC_CheckChild4Type, MVT::i32, ++/*549809*/ OPC_MoveChild5, ++/*549810*/ OPC_CheckInteger, 1, ++/*549812*/ OPC_CheckType, MVT::i32, ++/*549814*/ OPC_MoveParent, ++/*549815*/ OPC_MoveChild6, ++/*549816*/ OPC_CheckInteger, 1, ++/*549818*/ OPC_CheckType, MVT::i32, ++/*549820*/ OPC_MoveParent, ++/*549821*/ OPC_MoveChild7, ++/*549822*/ OPC_CheckInteger, 1, ++/*549824*/ OPC_CheckType, MVT::i32, ++/*549826*/ OPC_MoveParent, ++/*549827*/ OPC_CheckType, MVT::v8i32, ++/*549829*/ OPC_MoveParent, ++/*549830*/ OPC_CheckType, MVT::v8i32, ++/*549832*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*549834*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$a)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 101 ++ // Dst: (XVAVG_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*549842*/ 0, /*End of Scope*/ ++/*549843*/ /*Scope*/ 105|128,1/*233*/, /*->550078*/ ++/*549845*/ OPC_RecordChild0, // #1 = $b ++/*549846*/ OPC_MoveChild1, ++/*549847*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*549850*/ OPC_MoveChild0, ++/*549851*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*549854*/ OPC_Scope, 110, /*->549966*/ // 2 children in Scope ++/*549856*/ OPC_CheckChild0Same, 0, ++/*549858*/ OPC_CheckChild1Same, 1, ++/*549860*/ OPC_MoveParent, ++/*549861*/ OPC_MoveChild1, ++/*549862*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*549865*/ OPC_CheckChild0Integer, 31, ++/*549867*/ OPC_CheckChild0Type, MVT::i32, ++/*549869*/ OPC_CheckChild1Integer, 31, ++/*549871*/ OPC_CheckChild1Type, MVT::i32, ++/*549873*/ OPC_CheckChild2Integer, 31, ++/*549875*/ OPC_CheckChild2Type, MVT::i32, ++/*549877*/ OPC_CheckChild3Integer, 31, ++/*549879*/ OPC_CheckChild3Type, MVT::i32, ++/*549881*/ OPC_CheckChild4Integer, 31, ++/*549883*/ OPC_CheckChild4Type, MVT::i32, ++/*549885*/ OPC_MoveChild5, ++/*549886*/ OPC_CheckInteger, 31, ++/*549888*/ OPC_CheckType, MVT::i32, ++/*549890*/ OPC_MoveParent, ++/*549891*/ OPC_MoveChild6, ++/*549892*/ OPC_CheckInteger, 31, ++/*549894*/ OPC_CheckType, MVT::i32, ++/*549896*/ OPC_MoveParent, ++/*549897*/ OPC_MoveChild7, ++/*549898*/ OPC_CheckInteger, 31, ++/*549900*/ OPC_CheckType, MVT::i32, ++/*549902*/ OPC_MoveParent, ++/*549903*/ OPC_CheckType, MVT::v8i32, ++/*549905*/ OPC_MoveParent, ++/*549906*/ OPC_MoveParent, ++/*549907*/ OPC_MoveParent, ++/*549908*/ OPC_MoveParent, ++/*549909*/ OPC_MoveChild1, ++/*549910*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*549913*/ OPC_CheckChild0Integer, 1, ++/*549915*/ OPC_CheckChild0Type, MVT::i32, ++/*549917*/ OPC_CheckChild1Integer, 1, ++/*549919*/ OPC_CheckChild1Type, MVT::i32, ++/*549921*/ OPC_CheckChild2Integer, 1, ++/*549923*/ OPC_CheckChild2Type, MVT::i32, ++/*549925*/ OPC_CheckChild3Integer, 1, ++/*549927*/ OPC_CheckChild3Type, MVT::i32, ++/*549929*/ OPC_CheckChild4Integer, 1, ++/*549931*/ OPC_CheckChild4Type, MVT::i32, ++/*549933*/ OPC_MoveChild5, ++/*549934*/ OPC_CheckInteger, 1, ++/*549936*/ OPC_CheckType, MVT::i32, ++/*549938*/ OPC_MoveParent, ++/*549939*/ OPC_MoveChild6, ++/*549940*/ OPC_CheckInteger, 1, ++/*549942*/ OPC_CheckType, MVT::i32, ++/*549944*/ OPC_MoveParent, ++/*549945*/ OPC_MoveChild7, ++/*549946*/ OPC_CheckInteger, 1, ++/*549948*/ OPC_CheckType, MVT::i32, ++/*549950*/ OPC_MoveParent, ++/*549951*/ OPC_CheckType, MVT::v8i32, ++/*549953*/ OPC_MoveParent, ++/*549954*/ OPC_CheckType, MVT::v8i32, ++/*549956*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*549958*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 101 ++ // Dst: (XVAVG_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*549966*/ /*Scope*/ 110, /*->550077*/ ++/*549967*/ OPC_CheckChild0Same, 1, ++/*549969*/ OPC_CheckChild1Same, 0, ++/*549971*/ OPC_MoveParent, ++/*549972*/ OPC_MoveChild1, ++/*549973*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*549976*/ OPC_CheckChild0Integer, 31, ++/*549978*/ OPC_CheckChild0Type, MVT::i32, ++/*549980*/ OPC_CheckChild1Integer, 31, ++/*549982*/ OPC_CheckChild1Type, MVT::i32, ++/*549984*/ OPC_CheckChild2Integer, 31, ++/*549986*/ OPC_CheckChild2Type, MVT::i32, ++/*549988*/ OPC_CheckChild3Integer, 31, ++/*549990*/ OPC_CheckChild3Type, MVT::i32, ++/*549992*/ OPC_CheckChild4Integer, 31, ++/*549994*/ OPC_CheckChild4Type, MVT::i32, ++/*549996*/ OPC_MoveChild5, ++/*549997*/ OPC_CheckInteger, 31, ++/*549999*/ OPC_CheckType, MVT::i32, ++/*550001*/ OPC_MoveParent, ++/*550002*/ OPC_MoveChild6, ++/*550003*/ OPC_CheckInteger, 31, ++/*550005*/ OPC_CheckType, MVT::i32, ++/*550007*/ OPC_MoveParent, ++/*550008*/ OPC_MoveChild7, ++/*550009*/ OPC_CheckInteger, 31, ++/*550011*/ OPC_CheckType, MVT::i32, ++/*550013*/ OPC_MoveParent, ++/*550014*/ OPC_CheckType, MVT::v8i32, ++/*550016*/ OPC_MoveParent, ++/*550017*/ OPC_MoveParent, ++/*550018*/ OPC_MoveParent, ++/*550019*/ OPC_MoveParent, ++/*550020*/ OPC_MoveChild1, ++/*550021*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*550024*/ OPC_CheckChild0Integer, 1, ++/*550026*/ OPC_CheckChild0Type, MVT::i32, ++/*550028*/ OPC_CheckChild1Integer, 1, ++/*550030*/ OPC_CheckChild1Type, MVT::i32, ++/*550032*/ OPC_CheckChild2Integer, 1, ++/*550034*/ OPC_CheckChild2Type, MVT::i32, ++/*550036*/ OPC_CheckChild3Integer, 1, ++/*550038*/ OPC_CheckChild3Type, MVT::i32, ++/*550040*/ OPC_CheckChild4Integer, 1, ++/*550042*/ OPC_CheckChild4Type, MVT::i32, ++/*550044*/ OPC_MoveChild5, ++/*550045*/ OPC_CheckInteger, 1, ++/*550047*/ OPC_CheckType, MVT::i32, ++/*550049*/ OPC_MoveParent, ++/*550050*/ OPC_MoveChild6, ++/*550051*/ OPC_CheckInteger, 1, ++/*550053*/ OPC_CheckType, MVT::i32, ++/*550055*/ OPC_MoveParent, ++/*550056*/ OPC_MoveChild7, ++/*550057*/ OPC_CheckInteger, 1, ++/*550059*/ OPC_CheckType, MVT::i32, ++/*550061*/ OPC_MoveParent, ++/*550062*/ OPC_CheckType, MVT::v8i32, ++/*550064*/ OPC_MoveParent, ++/*550065*/ OPC_CheckType, MVT::v8i32, ++/*550067*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*550069*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })))), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 101 ++ // Dst: (XVAVG_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*550077*/ 0, /*End of Scope*/ ++/*550078*/ /*Scope*/ 106|128,1/*234*/, /*->550314*/ ++/*550080*/ OPC_MoveChild0, ++/*550081*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*550084*/ OPC_MoveChild0, ++/*550085*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*550088*/ OPC_Scope, 111, /*->550201*/ // 2 children in Scope ++/*550090*/ OPC_CheckChild0Same, 0, ++/*550092*/ OPC_RecordChild1, // #1 = $b ++/*550093*/ OPC_MoveParent, ++/*550094*/ OPC_MoveChild1, ++/*550095*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*550098*/ OPC_CheckChild0Integer, 31, ++/*550100*/ OPC_CheckChild0Type, MVT::i32, ++/*550102*/ OPC_CheckChild1Integer, 31, ++/*550104*/ OPC_CheckChild1Type, MVT::i32, ++/*550106*/ OPC_CheckChild2Integer, 31, ++/*550108*/ OPC_CheckChild2Type, MVT::i32, ++/*550110*/ OPC_CheckChild3Integer, 31, ++/*550112*/ OPC_CheckChild3Type, MVT::i32, ++/*550114*/ OPC_CheckChild4Integer, 31, ++/*550116*/ OPC_CheckChild4Type, MVT::i32, ++/*550118*/ OPC_MoveChild5, ++/*550119*/ OPC_CheckInteger, 31, ++/*550121*/ OPC_CheckType, MVT::i32, ++/*550123*/ OPC_MoveParent, ++/*550124*/ OPC_MoveChild6, ++/*550125*/ OPC_CheckInteger, 31, ++/*550127*/ OPC_CheckType, MVT::i32, ++/*550129*/ OPC_MoveParent, ++/*550130*/ OPC_MoveChild7, ++/*550131*/ OPC_CheckInteger, 31, ++/*550133*/ OPC_CheckType, MVT::i32, ++/*550135*/ OPC_MoveParent, ++/*550136*/ OPC_CheckType, MVT::v8i32, ++/*550138*/ OPC_MoveParent, ++/*550139*/ OPC_MoveParent, ++/*550140*/ OPC_CheckChild1Same, 1, ++/*550142*/ OPC_MoveParent, ++/*550143*/ OPC_MoveParent, ++/*550144*/ OPC_MoveChild1, ++/*550145*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*550148*/ OPC_CheckChild0Integer, 1, ++/*550150*/ OPC_CheckChild0Type, MVT::i32, ++/*550152*/ OPC_CheckChild1Integer, 1, ++/*550154*/ OPC_CheckChild1Type, MVT::i32, ++/*550156*/ OPC_CheckChild2Integer, 1, ++/*550158*/ OPC_CheckChild2Type, MVT::i32, ++/*550160*/ OPC_CheckChild3Integer, 1, ++/*550162*/ OPC_CheckChild3Type, MVT::i32, ++/*550164*/ OPC_CheckChild4Integer, 1, ++/*550166*/ OPC_CheckChild4Type, MVT::i32, ++/*550168*/ OPC_MoveChild5, ++/*550169*/ OPC_CheckInteger, 1, ++/*550171*/ OPC_CheckType, MVT::i32, ++/*550173*/ OPC_MoveParent, ++/*550174*/ OPC_MoveChild6, ++/*550175*/ OPC_CheckInteger, 1, ++/*550177*/ OPC_CheckType, MVT::i32, ++/*550179*/ OPC_MoveParent, ++/*550180*/ OPC_MoveChild7, ++/*550181*/ OPC_CheckInteger, 1, ++/*550183*/ OPC_CheckType, MVT::i32, ++/*550185*/ OPC_MoveParent, ++/*550186*/ OPC_CheckType, MVT::v8i32, ++/*550188*/ OPC_MoveParent, ++/*550189*/ OPC_CheckType, MVT::v8i32, ++/*550191*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*550193*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 101 ++ // Dst: (XVAVG_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*550201*/ /*Scope*/ 111, /*->550313*/ ++/*550202*/ OPC_RecordChild0, // #1 = $b ++/*550203*/ OPC_CheckChild1Same, 0, ++/*550205*/ OPC_MoveParent, ++/*550206*/ OPC_MoveChild1, ++/*550207*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*550210*/ OPC_CheckChild0Integer, 31, ++/*550212*/ OPC_CheckChild0Type, MVT::i32, ++/*550214*/ OPC_CheckChild1Integer, 31, ++/*550216*/ OPC_CheckChild1Type, MVT::i32, ++/*550218*/ OPC_CheckChild2Integer, 31, ++/*550220*/ OPC_CheckChild2Type, MVT::i32, ++/*550222*/ OPC_CheckChild3Integer, 31, ++/*550224*/ OPC_CheckChild3Type, MVT::i32, ++/*550226*/ OPC_CheckChild4Integer, 31, ++/*550228*/ OPC_CheckChild4Type, MVT::i32, ++/*550230*/ OPC_MoveChild5, ++/*550231*/ OPC_CheckInteger, 31, ++/*550233*/ OPC_CheckType, MVT::i32, ++/*550235*/ OPC_MoveParent, ++/*550236*/ OPC_MoveChild6, ++/*550237*/ OPC_CheckInteger, 31, ++/*550239*/ OPC_CheckType, MVT::i32, ++/*550241*/ OPC_MoveParent, ++/*550242*/ OPC_MoveChild7, ++/*550243*/ OPC_CheckInteger, 31, ++/*550245*/ OPC_CheckType, MVT::i32, ++/*550247*/ OPC_MoveParent, ++/*550248*/ OPC_CheckType, MVT::v8i32, ++/*550250*/ OPC_MoveParent, ++/*550251*/ OPC_MoveParent, ++/*550252*/ OPC_CheckChild1Same, 1, ++/*550254*/ OPC_MoveParent, ++/*550255*/ OPC_MoveParent, ++/*550256*/ OPC_MoveChild1, ++/*550257*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*550260*/ OPC_CheckChild0Integer, 1, ++/*550262*/ OPC_CheckChild0Type, MVT::i32, ++/*550264*/ OPC_CheckChild1Integer, 1, ++/*550266*/ OPC_CheckChild1Type, MVT::i32, ++/*550268*/ OPC_CheckChild2Integer, 1, ++/*550270*/ OPC_CheckChild2Type, MVT::i32, ++/*550272*/ OPC_CheckChild3Integer, 1, ++/*550274*/ OPC_CheckChild3Type, MVT::i32, ++/*550276*/ OPC_CheckChild4Integer, 1, ++/*550278*/ OPC_CheckChild4Type, MVT::i32, ++/*550280*/ OPC_MoveChild5, ++/*550281*/ OPC_CheckInteger, 1, ++/*550283*/ OPC_CheckType, MVT::i32, ++/*550285*/ OPC_MoveParent, ++/*550286*/ OPC_MoveChild6, ++/*550287*/ OPC_CheckInteger, 1, ++/*550289*/ OPC_CheckType, MVT::i32, ++/*550291*/ OPC_MoveParent, ++/*550292*/ OPC_MoveChild7, ++/*550293*/ OPC_CheckInteger, 1, ++/*550295*/ OPC_CheckType, MVT::i32, ++/*550297*/ OPC_MoveParent, ++/*550298*/ OPC_CheckType, MVT::v8i32, ++/*550300*/ OPC_MoveParent, ++/*550301*/ OPC_CheckType, MVT::v8i32, ++/*550303*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*550305*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, (add:{ *:[v8i32] } (srl:{ *:[v8i32] } (add:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$b, LASX256W:{ *:[v8i32] }:$a), (build_vector:{ *:[v8i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$b)), (build_vector:{ *:[v8i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 101 ++ // Dst: (XVAVG_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*550313*/ 0, /*End of Scope*/ ++/*550314*/ 0, /*End of Scope*/ ++/*550315*/ 0, /*End of Scope*/ ++/*550316*/ /*Scope*/ 50|128,1/*178*/, /*->550496*/ ++/*550318*/ OPC_RecordChild0, // #0 = $vs ++/*550319*/ OPC_MoveChild1, ++/*550320*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/*550323*/ OPC_RecordChild0, // #1 = $vt ++/*550324*/ OPC_MoveChild1, ++/*550325*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*550328*/ OPC_MoveChild0, ++/*550329*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*550332*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*550334*/ OPC_CheckType, MVT::i32, ++/*550336*/ OPC_MoveParent, ++/*550337*/ OPC_MoveChild1, ++/*550338*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*550341*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*550343*/ OPC_CheckType, MVT::i32, ++/*550345*/ OPC_MoveParent, ++/*550346*/ OPC_MoveChild2, ++/*550347*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*550350*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*550352*/ OPC_CheckType, MVT::i32, ++/*550354*/ OPC_MoveParent, ++/*550355*/ OPC_MoveChild3, ++/*550356*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*550359*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*550361*/ OPC_CheckType, MVT::i32, ++/*550363*/ OPC_MoveParent, ++/*550364*/ OPC_MoveChild4, ++/*550365*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*550368*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*550370*/ OPC_CheckType, MVT::i32, ++/*550372*/ OPC_MoveParent, ++/*550373*/ OPC_MoveChild5, ++/*550374*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*550377*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*550379*/ OPC_CheckType, MVT::i32, ++/*550381*/ OPC_MoveParent, ++/*550382*/ OPC_MoveChild6, ++/*550383*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*550386*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*550388*/ OPC_CheckType, MVT::i32, ++/*550390*/ OPC_MoveParent, ++/*550391*/ OPC_MoveChild7, ++/*550392*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*550395*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*550397*/ OPC_CheckType, MVT::i32, ++/*550399*/ OPC_MoveParent, ++/*550400*/ OPC_MoveChild, 8, ++/*550402*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*550405*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*550407*/ OPC_CheckType, MVT::i32, ++/*550409*/ OPC_MoveParent, ++/*550410*/ OPC_MoveChild, 9, ++/*550412*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*550415*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*550417*/ OPC_CheckType, MVT::i32, ++/*550419*/ OPC_MoveParent, ++/*550420*/ OPC_MoveChild, 10, ++/*550422*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*550425*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*550427*/ OPC_CheckType, MVT::i32, ++/*550429*/ OPC_MoveParent, ++/*550430*/ OPC_MoveChild, 11, ++/*550432*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*550435*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*550437*/ OPC_CheckType, MVT::i32, ++/*550439*/ OPC_MoveParent, ++/*550440*/ OPC_MoveChild, 12, ++/*550442*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*550445*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*550447*/ OPC_CheckType, MVT::i32, ++/*550449*/ OPC_MoveParent, ++/*550450*/ OPC_MoveChild, 13, ++/*550452*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*550455*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*550457*/ OPC_CheckType, MVT::i32, ++/*550459*/ OPC_MoveParent, ++/*550460*/ OPC_MoveChild, 14, ++/*550462*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*550465*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*550467*/ OPC_CheckType, MVT::i32, ++/*550469*/ OPC_MoveParent, ++/*550470*/ OPC_MoveChild, 15, ++/*550472*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*550475*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*550477*/ OPC_CheckType, MVT::i32, ++/*550479*/ OPC_MoveParent, ++/*550480*/ OPC_MoveParent, ++/*550481*/ OPC_CheckType, MVT::v16i8, ++/*550483*/ OPC_MoveParent, ++/*550484*/ OPC_CheckType, MVT::v16i8, ++/*550486*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*550488*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRA_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vs, (and:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vt, (build_vector:{ *:[v16i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))) - Complexity = 73 ++ // Dst: (VSRA_B:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vs, v16i8:{ *:[v16i8] }:$vt) ++/*550496*/ /*Scope*/ 104, /*->550601*/ ++/*550497*/ OPC_MoveChild0, ++/*550498*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*550501*/ OPC_MoveChild0, ++/*550502*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*550505*/ OPC_MoveChild0, ++/*550506*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*550509*/ OPC_CheckChild0Integer, 1, ++/*550511*/ OPC_CheckChild0Type, MVT::i64, ++/*550513*/ OPC_CheckChild1Integer, 1, ++/*550515*/ OPC_CheckChild1Type, MVT::i64, ++/*550517*/ OPC_MoveParent, ++/*550518*/ OPC_MoveChild1, ++/*550519*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*550522*/ OPC_RecordChild0, // #0 = $a ++/*550523*/ OPC_RecordChild1, // #1 = $b ++/*550524*/ OPC_MoveParent, ++/*550525*/ OPC_MoveParent, ++/*550526*/ OPC_MoveChild1, ++/*550527*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*550530*/ OPC_MoveChild0, ++/*550531*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*550534*/ OPC_MoveChild0, ++/*550535*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*550538*/ OPC_CheckChild0Integer, 1, ++/*550540*/ OPC_CheckChild0Type, MVT::i64, ++/*550542*/ OPC_CheckChild1Integer, 1, ++/*550544*/ OPC_CheckChild1Type, MVT::i64, ++/*550546*/ OPC_MoveParent, ++/*550547*/ OPC_MoveChild1, ++/*550548*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*550551*/ OPC_CheckChild0Same, 0, ++/*550553*/ OPC_CheckChild1Same, 1, ++/*550555*/ OPC_MoveParent, ++/*550556*/ OPC_MoveParent, ++/*550557*/ OPC_MoveChild1, ++/*550558*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*550561*/ OPC_CheckChild0Integer, 63, ++/*550563*/ OPC_CheckChild0Type, MVT::i64, ++/*550565*/ OPC_CheckChild1Integer, 63, ++/*550567*/ OPC_CheckChild1Type, MVT::i64, ++/*550569*/ OPC_CheckType, MVT::v2i64, ++/*550571*/ OPC_MoveParent, ++/*550572*/ OPC_MoveParent, ++/*550573*/ OPC_MoveParent, ++/*550574*/ OPC_MoveChild1, ++/*550575*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*550578*/ OPC_CheckChild0Integer, 1, ++/*550580*/ OPC_CheckChild0Type, MVT::i64, ++/*550582*/ OPC_CheckChild1Integer, 1, ++/*550584*/ OPC_CheckChild1Type, MVT::i64, ++/*550586*/ OPC_CheckType, MVT::v2i64, ++/*550588*/ OPC_MoveParent, ++/*550589*/ OPC_CheckType, MVT::v2i64, ++/*550591*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*550593*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b)), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*550601*/ /*Scope*/ 101|128,2/*357*/, /*->550960*/ ++/*550603*/ OPC_RecordChild0, // #0 = $vs ++/*550604*/ OPC_MoveChild1, ++/*550605*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/*550608*/ OPC_Scope, 45|128,1/*173*/, /*->550784*/ // 2 children in Scope ++/*550611*/ OPC_RecordChild0, // #1 = $vt ++/*550612*/ OPC_MoveChild1, ++/*550613*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*550616*/ OPC_MoveChild0, ++/*550617*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*550620*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/*550622*/ OPC_CheckType, MVT::i32, ++/*550624*/ OPC_MoveParent, ++/*550625*/ OPC_MoveChild1, ++/*550626*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*550629*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/*550631*/ OPC_CheckType, MVT::i32, ++/*550633*/ OPC_MoveParent, ++/*550634*/ OPC_MoveChild2, ++/*550635*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*550638*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/*550640*/ OPC_CheckType, MVT::i32, ++/*550642*/ OPC_MoveParent, ++/*550643*/ OPC_MoveChild3, ++/*550644*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*550647*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/*550649*/ OPC_CheckType, MVT::i32, ++/*550651*/ OPC_MoveParent, ++/*550652*/ OPC_MoveChild4, ++/*550653*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*550656*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/*550658*/ OPC_CheckType, MVT::i32, ++/*550660*/ OPC_MoveParent, ++/*550661*/ OPC_MoveChild5, ++/*550662*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*550665*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/*550667*/ OPC_CheckType, MVT::i32, ++/*550669*/ OPC_MoveParent, ++/*550670*/ OPC_MoveChild6, ++/*550671*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*550674*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/*550676*/ OPC_CheckType, MVT::i32, ++/*550678*/ OPC_MoveParent, ++/*550679*/ OPC_MoveChild7, ++/*550680*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*550683*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/*550685*/ OPC_CheckType, MVT::i32, ++/*550687*/ OPC_MoveParent, ++/*550688*/ OPC_MoveChild, 8, ++/*550690*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*550693*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/*550695*/ OPC_CheckType, MVT::i32, ++/*550697*/ OPC_MoveParent, ++/*550698*/ OPC_MoveChild, 9, ++/*550700*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*550703*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/*550705*/ OPC_CheckType, MVT::i32, ++/*550707*/ OPC_MoveParent, ++/*550708*/ OPC_MoveChild, 10, ++/*550710*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*550713*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/*550715*/ OPC_CheckType, MVT::i32, ++/*550717*/ OPC_MoveParent, ++/*550718*/ OPC_MoveChild, 11, ++/*550720*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*550723*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/*550725*/ OPC_CheckType, MVT::i32, ++/*550727*/ OPC_MoveParent, ++/*550728*/ OPC_MoveChild, 12, ++/*550730*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*550733*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/*550735*/ OPC_CheckType, MVT::i32, ++/*550737*/ OPC_MoveParent, ++/*550738*/ OPC_MoveChild, 13, ++/*550740*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*550743*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/*550745*/ OPC_CheckType, MVT::i32, ++/*550747*/ OPC_MoveParent, ++/*550748*/ OPC_MoveChild, 14, ++/*550750*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*550753*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/*550755*/ OPC_CheckType, MVT::i32, ++/*550757*/ OPC_MoveParent, ++/*550758*/ OPC_MoveChild, 15, ++/*550760*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*550763*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/*550765*/ OPC_CheckType, MVT::i32, ++/*550767*/ OPC_MoveParent, ++/*550768*/ OPC_MoveParent, ++/*550769*/ OPC_CheckType, MVT::v16i16, ++/*550771*/ OPC_MoveParent, ++/*550772*/ OPC_CheckType, MVT::v16i16, ++/*550774*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*550776*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRA_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vs, (and:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vt, (build_vector:{ *:[v16i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))) - Complexity = 73 ++ // Dst: (XVSRA_H:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vs, v16i16:{ *:[v16i16] }:$vt) ++/*550784*/ /*Scope*/ 45|128,1/*173*/, /*->550959*/ ++/*550786*/ OPC_MoveChild0, ++/*550787*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*550790*/ OPC_MoveChild0, ++/*550791*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*550794*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*550796*/ OPC_CheckType, MVT::i32, ++/*550798*/ OPC_MoveParent, ++/*550799*/ OPC_MoveChild1, ++/*550800*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*550803*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*550805*/ OPC_CheckType, MVT::i32, ++/*550807*/ OPC_MoveParent, ++/*550808*/ OPC_MoveChild2, ++/*550809*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*550812*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*550814*/ OPC_CheckType, MVT::i32, ++/*550816*/ OPC_MoveParent, ++/*550817*/ OPC_MoveChild3, ++/*550818*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*550821*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*550823*/ OPC_CheckType, MVT::i32, ++/*550825*/ OPC_MoveParent, ++/*550826*/ OPC_MoveChild4, ++/*550827*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*550830*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*550832*/ OPC_CheckType, MVT::i32, ++/*550834*/ OPC_MoveParent, ++/*550835*/ OPC_MoveChild5, ++/*550836*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*550839*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*550841*/ OPC_CheckType, MVT::i32, ++/*550843*/ OPC_MoveParent, ++/*550844*/ OPC_MoveChild6, ++/*550845*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*550848*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*550850*/ OPC_CheckType, MVT::i32, ++/*550852*/ OPC_MoveParent, ++/*550853*/ OPC_MoveChild7, ++/*550854*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*550857*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*550859*/ OPC_CheckType, MVT::i32, ++/*550861*/ OPC_MoveParent, ++/*550862*/ OPC_MoveChild, 8, ++/*550864*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*550867*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*550869*/ OPC_CheckType, MVT::i32, ++/*550871*/ OPC_MoveParent, ++/*550872*/ OPC_MoveChild, 9, ++/*550874*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*550877*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*550879*/ OPC_CheckType, MVT::i32, ++/*550881*/ OPC_MoveParent, ++/*550882*/ OPC_MoveChild, 10, ++/*550884*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*550887*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*550889*/ OPC_CheckType, MVT::i32, ++/*550891*/ OPC_MoveParent, ++/*550892*/ OPC_MoveChild, 11, ++/*550894*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*550897*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*550899*/ OPC_CheckType, MVT::i32, ++/*550901*/ OPC_MoveParent, ++/*550902*/ OPC_MoveChild, 12, ++/*550904*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*550907*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*550909*/ OPC_CheckType, MVT::i32, ++/*550911*/ OPC_MoveParent, ++/*550912*/ OPC_MoveChild, 13, ++/*550914*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*550917*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*550919*/ OPC_CheckType, MVT::i32, ++/*550921*/ OPC_MoveParent, ++/*550922*/ OPC_MoveChild, 14, ++/*550924*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*550927*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*550929*/ OPC_CheckType, MVT::i32, ++/*550931*/ OPC_MoveParent, ++/*550932*/ OPC_MoveChild, 15, ++/*550934*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*550937*/ OPC_CheckPredicate, 35, // Predicate_immi32Cst7 ++/*550939*/ OPC_CheckType, MVT::i32, ++/*550941*/ OPC_MoveParent, ++/*550942*/ OPC_MoveParent, ++/*550943*/ OPC_RecordChild1, // #1 = $vt ++/*550944*/ OPC_CheckType, MVT::v16i8, ++/*550946*/ OPC_MoveParent, ++/*550947*/ OPC_CheckType, MVT::v16i8, ++/*550949*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*550951*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRA_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vs, (and:{ *:[v16i8] } (build_vector:{ *:[v16i8] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v16i8:{ *:[v16i8] }:$vt)) - Complexity = 73 ++ // Dst: (VSRA_B:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vs, v16i8:{ *:[v16i8] }:$vt) ++/*550959*/ 0, /*End of Scope*/ ++/*550960*/ /*Scope*/ 1|128,6|128,1/*17153*/, /*->568116*/ ++/*550963*/ OPC_MoveChild0, ++/*550964*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*550967*/ OPC_MoveChild0, ++/*550968*/ OPC_SwitchOpcode /*2 cases */, 44|128,75/*9644*/, TARGET_VAL(ISD::ADD),// ->560617 ++/*550973*/ OPC_Scope, 111|128,37/*4847*/, /*->555823*/ // 3 children in Scope ++/*550976*/ OPC_MoveChild0, ++/*550977*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*550980*/ OPC_Scope, 41|128,6/*809*/, /*->551792*/ // 4 children in Scope ++/*550983*/ OPC_MoveChild0, ++/*550984*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*550987*/ OPC_CheckChild0Integer, 1, ++/*550989*/ OPC_CheckChild0Type, MVT::i64, ++/*550991*/ OPC_CheckChild1Integer, 1, ++/*550993*/ OPC_CheckChild1Type, MVT::i64, ++/*550995*/ OPC_MoveParent, ++/*550996*/ OPC_RecordChild1, // #0 = $a ++/*550997*/ OPC_MoveParent, ++/*550998*/ OPC_RecordChild1, // #1 = $b ++/*550999*/ OPC_MoveParent, ++/*551000*/ OPC_MoveChild1, ++/*551001*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*551004*/ OPC_MoveChild0, ++/*551005*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*551008*/ OPC_Scope, 6|128,3/*390*/, /*->551401*/ // 4 children in Scope ++/*551011*/ OPC_MoveChild0, ++/*551012*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*551015*/ OPC_Scope, 63, /*->551080*/ // 6 children in Scope ++/*551017*/ OPC_MoveChild0, ++/*551018*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*551021*/ OPC_CheckChild0Integer, 1, ++/*551023*/ OPC_CheckChild0Type, MVT::i64, ++/*551025*/ OPC_CheckChild1Integer, 1, ++/*551027*/ OPC_CheckChild1Type, MVT::i64, ++/*551029*/ OPC_MoveParent, ++/*551030*/ OPC_CheckChild1Same, 0, ++/*551032*/ OPC_MoveParent, ++/*551033*/ OPC_CheckChild1Same, 1, ++/*551035*/ OPC_MoveParent, ++/*551036*/ OPC_MoveChild1, ++/*551037*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*551040*/ OPC_CheckChild0Integer, 63, ++/*551042*/ OPC_CheckChild0Type, MVT::i64, ++/*551044*/ OPC_CheckChild1Integer, 63, ++/*551046*/ OPC_CheckChild1Type, MVT::i64, ++/*551048*/ OPC_CheckType, MVT::v2i64, ++/*551050*/ OPC_MoveParent, ++/*551051*/ OPC_MoveParent, ++/*551052*/ OPC_MoveParent, ++/*551053*/ OPC_MoveChild1, ++/*551054*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*551057*/ OPC_CheckChild0Integer, 1, ++/*551059*/ OPC_CheckChild0Type, MVT::i64, ++/*551061*/ OPC_CheckChild1Integer, 1, ++/*551063*/ OPC_CheckChild1Type, MVT::i64, ++/*551065*/ OPC_CheckType, MVT::v2i64, ++/*551067*/ OPC_MoveParent, ++/*551068*/ OPC_CheckType, MVT::v2i64, ++/*551070*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*551072*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a), LSX128D:{ *:[v2i64] }:$b), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a), LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*551080*/ /*Scope*/ 63, /*->551144*/ ++/*551081*/ OPC_CheckChild0Same, 0, ++/*551083*/ OPC_MoveChild1, ++/*551084*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*551087*/ OPC_CheckChild0Integer, 1, ++/*551089*/ OPC_CheckChild0Type, MVT::i64, ++/*551091*/ OPC_CheckChild1Integer, 1, ++/*551093*/ OPC_CheckChild1Type, MVT::i64, ++/*551095*/ OPC_MoveParent, ++/*551096*/ OPC_MoveParent, ++/*551097*/ OPC_CheckChild1Same, 1, ++/*551099*/ OPC_MoveParent, ++/*551100*/ OPC_MoveChild1, ++/*551101*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*551104*/ OPC_CheckChild0Integer, 63, ++/*551106*/ OPC_CheckChild0Type, MVT::i64, ++/*551108*/ OPC_CheckChild1Integer, 63, ++/*551110*/ OPC_CheckChild1Type, MVT::i64, ++/*551112*/ OPC_CheckType, MVT::v2i64, ++/*551114*/ OPC_MoveParent, ++/*551115*/ OPC_MoveParent, ++/*551116*/ OPC_MoveParent, ++/*551117*/ OPC_MoveChild1, ++/*551118*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*551121*/ OPC_CheckChild0Integer, 1, ++/*551123*/ OPC_CheckChild0Type, MVT::i64, ++/*551125*/ OPC_CheckChild1Integer, 1, ++/*551127*/ OPC_CheckChild1Type, MVT::i64, ++/*551129*/ OPC_CheckType, MVT::v2i64, ++/*551131*/ OPC_MoveParent, ++/*551132*/ OPC_CheckType, MVT::v2i64, ++/*551134*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*551136*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a), LSX128D:{ *:[v2i64] }:$b), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*551144*/ /*Scope*/ 63, /*->551208*/ ++/*551145*/ OPC_MoveChild0, ++/*551146*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*551149*/ OPC_CheckChild0Integer, 1, ++/*551151*/ OPC_CheckChild0Type, MVT::i64, ++/*551153*/ OPC_CheckChild1Integer, 1, ++/*551155*/ OPC_CheckChild1Type, MVT::i64, ++/*551157*/ OPC_MoveParent, ++/*551158*/ OPC_CheckChild1Same, 1, ++/*551160*/ OPC_MoveParent, ++/*551161*/ OPC_CheckChild1Same, 0, ++/*551163*/ OPC_MoveParent, ++/*551164*/ OPC_MoveChild1, ++/*551165*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*551168*/ OPC_CheckChild0Integer, 63, ++/*551170*/ OPC_CheckChild0Type, MVT::i64, ++/*551172*/ OPC_CheckChild1Integer, 63, ++/*551174*/ OPC_CheckChild1Type, MVT::i64, ++/*551176*/ OPC_CheckType, MVT::v2i64, ++/*551178*/ OPC_MoveParent, ++/*551179*/ OPC_MoveParent, ++/*551180*/ OPC_MoveParent, ++/*551181*/ OPC_MoveChild1, ++/*551182*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*551185*/ OPC_CheckChild0Integer, 1, ++/*551187*/ OPC_CheckChild0Type, MVT::i64, ++/*551189*/ OPC_CheckChild1Integer, 1, ++/*551191*/ OPC_CheckChild1Type, MVT::i64, ++/*551193*/ OPC_CheckType, MVT::v2i64, ++/*551195*/ OPC_MoveParent, ++/*551196*/ OPC_CheckType, MVT::v2i64, ++/*551198*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*551200*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a), LSX128D:{ *:[v2i64] }:$b), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b), LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*551208*/ /*Scope*/ 63, /*->551272*/ ++/*551209*/ OPC_CheckChild0Same, 1, ++/*551211*/ OPC_MoveChild1, ++/*551212*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*551215*/ OPC_CheckChild0Integer, 1, ++/*551217*/ OPC_CheckChild0Type, MVT::i64, ++/*551219*/ OPC_CheckChild1Integer, 1, ++/*551221*/ OPC_CheckChild1Type, MVT::i64, ++/*551223*/ OPC_MoveParent, ++/*551224*/ OPC_MoveParent, ++/*551225*/ OPC_CheckChild1Same, 0, ++/*551227*/ OPC_MoveParent, ++/*551228*/ OPC_MoveChild1, ++/*551229*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*551232*/ OPC_CheckChild0Integer, 63, ++/*551234*/ OPC_CheckChild0Type, MVT::i64, ++/*551236*/ OPC_CheckChild1Integer, 63, ++/*551238*/ OPC_CheckChild1Type, MVT::i64, ++/*551240*/ OPC_CheckType, MVT::v2i64, ++/*551242*/ OPC_MoveParent, ++/*551243*/ OPC_MoveParent, ++/*551244*/ OPC_MoveParent, ++/*551245*/ OPC_MoveChild1, ++/*551246*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*551249*/ OPC_CheckChild0Integer, 1, ++/*551251*/ OPC_CheckChild0Type, MVT::i64, ++/*551253*/ OPC_CheckChild1Integer, 1, ++/*551255*/ OPC_CheckChild1Type, MVT::i64, ++/*551257*/ OPC_CheckType, MVT::v2i64, ++/*551259*/ OPC_MoveParent, ++/*551260*/ OPC_CheckType, MVT::v2i64, ++/*551262*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*551264*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a), LSX128D:{ *:[v2i64] }:$b), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*551272*/ /*Scope*/ 63, /*->551336*/ ++/*551273*/ OPC_CheckChild0Same, 0, ++/*551275*/ OPC_CheckChild1Same, 1, ++/*551277*/ OPC_MoveParent, ++/*551278*/ OPC_MoveChild1, ++/*551279*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*551282*/ OPC_CheckChild0Integer, 1, ++/*551284*/ OPC_CheckChild0Type, MVT::i64, ++/*551286*/ OPC_CheckChild1Integer, 1, ++/*551288*/ OPC_CheckChild1Type, MVT::i64, ++/*551290*/ OPC_MoveParent, ++/*551291*/ OPC_MoveParent, ++/*551292*/ OPC_MoveChild1, ++/*551293*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*551296*/ OPC_CheckChild0Integer, 63, ++/*551298*/ OPC_CheckChild0Type, MVT::i64, ++/*551300*/ OPC_CheckChild1Integer, 63, ++/*551302*/ OPC_CheckChild1Type, MVT::i64, ++/*551304*/ OPC_CheckType, MVT::v2i64, ++/*551306*/ OPC_MoveParent, ++/*551307*/ OPC_MoveParent, ++/*551308*/ OPC_MoveParent, ++/*551309*/ OPC_MoveChild1, ++/*551310*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*551313*/ OPC_CheckChild0Integer, 1, ++/*551315*/ OPC_CheckChild0Type, MVT::i64, ++/*551317*/ OPC_CheckChild1Integer, 1, ++/*551319*/ OPC_CheckChild1Type, MVT::i64, ++/*551321*/ OPC_CheckType, MVT::v2i64, ++/*551323*/ OPC_MoveParent, ++/*551324*/ OPC_CheckType, MVT::v2i64, ++/*551326*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*551328*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a), LSX128D:{ *:[v2i64] }:$b), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*551336*/ /*Scope*/ 63, /*->551400*/ ++/*551337*/ OPC_CheckChild0Same, 1, ++/*551339*/ OPC_CheckChild1Same, 0, ++/*551341*/ OPC_MoveParent, ++/*551342*/ OPC_MoveChild1, ++/*551343*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*551346*/ OPC_CheckChild0Integer, 1, ++/*551348*/ OPC_CheckChild0Type, MVT::i64, ++/*551350*/ OPC_CheckChild1Integer, 1, ++/*551352*/ OPC_CheckChild1Type, MVT::i64, ++/*551354*/ OPC_MoveParent, ++/*551355*/ OPC_MoveParent, ++/*551356*/ OPC_MoveChild1, ++/*551357*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*551360*/ OPC_CheckChild0Integer, 63, ++/*551362*/ OPC_CheckChild0Type, MVT::i64, ++/*551364*/ OPC_CheckChild1Integer, 63, ++/*551366*/ OPC_CheckChild1Type, MVT::i64, ++/*551368*/ OPC_CheckType, MVT::v2i64, ++/*551370*/ OPC_MoveParent, ++/*551371*/ OPC_MoveParent, ++/*551372*/ OPC_MoveParent, ++/*551373*/ OPC_MoveChild1, ++/*551374*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*551377*/ OPC_CheckChild0Integer, 1, ++/*551379*/ OPC_CheckChild0Type, MVT::i64, ++/*551381*/ OPC_CheckChild1Integer, 1, ++/*551383*/ OPC_CheckChild1Type, MVT::i64, ++/*551385*/ OPC_CheckType, MVT::v2i64, ++/*551387*/ OPC_MoveParent, ++/*551388*/ OPC_CheckType, MVT::v2i64, ++/*551390*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*551392*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a), LSX128D:{ *:[v2i64] }:$b), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*551400*/ 0, /*End of Scope*/ ++/*551401*/ /*Scope*/ 4|128,1/*132*/, /*->551535*/ ++/*551403*/ OPC_CheckChild0Same, 1, ++/*551405*/ OPC_MoveChild1, ++/*551406*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*551409*/ OPC_Scope, 61, /*->551472*/ // 2 children in Scope ++/*551411*/ OPC_MoveChild0, ++/*551412*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*551415*/ OPC_CheckChild0Integer, 1, ++/*551417*/ OPC_CheckChild0Type, MVT::i64, ++/*551419*/ OPC_CheckChild1Integer, 1, ++/*551421*/ OPC_CheckChild1Type, MVT::i64, ++/*551423*/ OPC_MoveParent, ++/*551424*/ OPC_CheckChild1Same, 0, ++/*551426*/ OPC_MoveParent, ++/*551427*/ OPC_MoveParent, ++/*551428*/ OPC_MoveChild1, ++/*551429*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*551432*/ OPC_CheckChild0Integer, 63, ++/*551434*/ OPC_CheckChild0Type, MVT::i64, ++/*551436*/ OPC_CheckChild1Integer, 63, ++/*551438*/ OPC_CheckChild1Type, MVT::i64, ++/*551440*/ OPC_CheckType, MVT::v2i64, ++/*551442*/ OPC_MoveParent, ++/*551443*/ OPC_MoveParent, ++/*551444*/ OPC_MoveParent, ++/*551445*/ OPC_MoveChild1, ++/*551446*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*551449*/ OPC_CheckChild0Integer, 1, ++/*551451*/ OPC_CheckChild0Type, MVT::i64, ++/*551453*/ OPC_CheckChild1Integer, 1, ++/*551455*/ OPC_CheckChild1Type, MVT::i64, ++/*551457*/ OPC_CheckType, MVT::v2i64, ++/*551459*/ OPC_MoveParent, ++/*551460*/ OPC_CheckType, MVT::v2i64, ++/*551462*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*551464*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a), LSX128D:{ *:[v2i64] }:$b), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*551472*/ /*Scope*/ 61, /*->551534*/ ++/*551473*/ OPC_CheckChild0Same, 0, ++/*551475*/ OPC_MoveChild1, ++/*551476*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*551479*/ OPC_CheckChild0Integer, 1, ++/*551481*/ OPC_CheckChild0Type, MVT::i64, ++/*551483*/ OPC_CheckChild1Integer, 1, ++/*551485*/ OPC_CheckChild1Type, MVT::i64, ++/*551487*/ OPC_MoveParent, ++/*551488*/ OPC_MoveParent, ++/*551489*/ OPC_MoveParent, ++/*551490*/ OPC_MoveChild1, ++/*551491*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*551494*/ OPC_CheckChild0Integer, 63, ++/*551496*/ OPC_CheckChild0Type, MVT::i64, ++/*551498*/ OPC_CheckChild1Integer, 63, ++/*551500*/ OPC_CheckChild1Type, MVT::i64, ++/*551502*/ OPC_CheckType, MVT::v2i64, ++/*551504*/ OPC_MoveParent, ++/*551505*/ OPC_MoveParent, ++/*551506*/ OPC_MoveParent, ++/*551507*/ OPC_MoveChild1, ++/*551508*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*551511*/ OPC_CheckChild0Integer, 1, ++/*551513*/ OPC_CheckChild0Type, MVT::i64, ++/*551515*/ OPC_CheckChild1Integer, 1, ++/*551517*/ OPC_CheckChild1Type, MVT::i64, ++/*551519*/ OPC_CheckType, MVT::v2i64, ++/*551521*/ OPC_MoveParent, ++/*551522*/ OPC_CheckType, MVT::v2i64, ++/*551524*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*551526*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a), LSX128D:{ *:[v2i64] }:$b), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*551534*/ 0, /*End of Scope*/ ++/*551535*/ /*Scope*/ 4|128,1/*132*/, /*->551669*/ ++/*551537*/ OPC_CheckChild0Same, 0, ++/*551539*/ OPC_MoveChild1, ++/*551540*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*551543*/ OPC_Scope, 61, /*->551606*/ // 2 children in Scope ++/*551545*/ OPC_MoveChild0, ++/*551546*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*551549*/ OPC_CheckChild0Integer, 1, ++/*551551*/ OPC_CheckChild0Type, MVT::i64, ++/*551553*/ OPC_CheckChild1Integer, 1, ++/*551555*/ OPC_CheckChild1Type, MVT::i64, ++/*551557*/ OPC_MoveParent, ++/*551558*/ OPC_CheckChild1Same, 1, ++/*551560*/ OPC_MoveParent, ++/*551561*/ OPC_MoveParent, ++/*551562*/ OPC_MoveChild1, ++/*551563*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*551566*/ OPC_CheckChild0Integer, 63, ++/*551568*/ OPC_CheckChild0Type, MVT::i64, ++/*551570*/ OPC_CheckChild1Integer, 63, ++/*551572*/ OPC_CheckChild1Type, MVT::i64, ++/*551574*/ OPC_CheckType, MVT::v2i64, ++/*551576*/ OPC_MoveParent, ++/*551577*/ OPC_MoveParent, ++/*551578*/ OPC_MoveParent, ++/*551579*/ OPC_MoveChild1, ++/*551580*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*551583*/ OPC_CheckChild0Integer, 1, ++/*551585*/ OPC_CheckChild0Type, MVT::i64, ++/*551587*/ OPC_CheckChild1Integer, 1, ++/*551589*/ OPC_CheckChild1Type, MVT::i64, ++/*551591*/ OPC_CheckType, MVT::v2i64, ++/*551593*/ OPC_MoveParent, ++/*551594*/ OPC_CheckType, MVT::v2i64, ++/*551596*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*551598*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a), LSX128D:{ *:[v2i64] }:$b), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*551606*/ /*Scope*/ 61, /*->551668*/ ++/*551607*/ OPC_CheckChild0Same, 1, ++/*551609*/ OPC_MoveChild1, ++/*551610*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*551613*/ OPC_CheckChild0Integer, 1, ++/*551615*/ OPC_CheckChild0Type, MVT::i64, ++/*551617*/ OPC_CheckChild1Integer, 1, ++/*551619*/ OPC_CheckChild1Type, MVT::i64, ++/*551621*/ OPC_MoveParent, ++/*551622*/ OPC_MoveParent, ++/*551623*/ OPC_MoveParent, ++/*551624*/ OPC_MoveChild1, ++/*551625*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*551628*/ OPC_CheckChild0Integer, 63, ++/*551630*/ OPC_CheckChild0Type, MVT::i64, ++/*551632*/ OPC_CheckChild1Integer, 63, ++/*551634*/ OPC_CheckChild1Type, MVT::i64, ++/*551636*/ OPC_CheckType, MVT::v2i64, ++/*551638*/ OPC_MoveParent, ++/*551639*/ OPC_MoveParent, ++/*551640*/ OPC_MoveParent, ++/*551641*/ OPC_MoveChild1, ++/*551642*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*551645*/ OPC_CheckChild0Integer, 1, ++/*551647*/ OPC_CheckChild0Type, MVT::i64, ++/*551649*/ OPC_CheckChild1Integer, 1, ++/*551651*/ OPC_CheckChild1Type, MVT::i64, ++/*551653*/ OPC_CheckType, MVT::v2i64, ++/*551655*/ OPC_MoveParent, ++/*551656*/ OPC_CheckType, MVT::v2i64, ++/*551658*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*551660*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a), LSX128D:{ *:[v2i64] }:$b), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*551668*/ 0, /*End of Scope*/ ++/*551669*/ /*Scope*/ 121, /*->551791*/ ++/*551670*/ OPC_MoveChild0, ++/*551671*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*551674*/ OPC_CheckChild0Integer, 1, ++/*551676*/ OPC_CheckChild0Type, MVT::i64, ++/*551678*/ OPC_CheckChild1Integer, 1, ++/*551680*/ OPC_CheckChild1Type, MVT::i64, ++/*551682*/ OPC_MoveParent, ++/*551683*/ OPC_MoveChild1, ++/*551684*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*551687*/ OPC_Scope, 50, /*->551739*/ // 2 children in Scope ++/*551689*/ OPC_CheckChild0Same, 0, ++/*551691*/ OPC_CheckChild1Same, 1, ++/*551693*/ OPC_MoveParent, ++/*551694*/ OPC_MoveParent, ++/*551695*/ OPC_MoveChild1, ++/*551696*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*551699*/ OPC_CheckChild0Integer, 63, ++/*551701*/ OPC_CheckChild0Type, MVT::i64, ++/*551703*/ OPC_CheckChild1Integer, 63, ++/*551705*/ OPC_CheckChild1Type, MVT::i64, ++/*551707*/ OPC_CheckType, MVT::v2i64, ++/*551709*/ OPC_MoveParent, ++/*551710*/ OPC_MoveParent, ++/*551711*/ OPC_MoveParent, ++/*551712*/ OPC_MoveChild1, ++/*551713*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*551716*/ OPC_CheckChild0Integer, 1, ++/*551718*/ OPC_CheckChild0Type, MVT::i64, ++/*551720*/ OPC_CheckChild1Integer, 1, ++/*551722*/ OPC_CheckChild1Type, MVT::i64, ++/*551724*/ OPC_CheckType, MVT::v2i64, ++/*551726*/ OPC_MoveParent, ++/*551727*/ OPC_CheckType, MVT::v2i64, ++/*551729*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*551731*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a), LSX128D:{ *:[v2i64] }:$b), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*551739*/ /*Scope*/ 50, /*->551790*/ ++/*551740*/ OPC_CheckChild0Same, 1, ++/*551742*/ OPC_CheckChild1Same, 0, ++/*551744*/ OPC_MoveParent, ++/*551745*/ OPC_MoveParent, ++/*551746*/ OPC_MoveChild1, ++/*551747*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*551750*/ OPC_CheckChild0Integer, 63, ++/*551752*/ OPC_CheckChild0Type, MVT::i64, ++/*551754*/ OPC_CheckChild1Integer, 63, ++/*551756*/ OPC_CheckChild1Type, MVT::i64, ++/*551758*/ OPC_CheckType, MVT::v2i64, ++/*551760*/ OPC_MoveParent, ++/*551761*/ OPC_MoveParent, ++/*551762*/ OPC_MoveParent, ++/*551763*/ OPC_MoveChild1, ++/*551764*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*551767*/ OPC_CheckChild0Integer, 1, ++/*551769*/ OPC_CheckChild0Type, MVT::i64, ++/*551771*/ OPC_CheckChild1Integer, 1, ++/*551773*/ OPC_CheckChild1Type, MVT::i64, ++/*551775*/ OPC_CheckType, MVT::v2i64, ++/*551777*/ OPC_MoveParent, ++/*551778*/ OPC_CheckType, MVT::v2i64, ++/*551780*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*551782*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a), LSX128D:{ *:[v2i64] }:$b), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*551790*/ 0, /*End of Scope*/ ++/*551791*/ 0, /*End of Scope*/ ++/*551792*/ /*Scope*/ 41|128,6/*809*/, /*->552603*/ ++/*551794*/ OPC_RecordChild0, // #0 = $a ++/*551795*/ OPC_MoveChild1, ++/*551796*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*551799*/ OPC_CheckChild0Integer, 1, ++/*551801*/ OPC_CheckChild0Type, MVT::i64, ++/*551803*/ OPC_CheckChild1Integer, 1, ++/*551805*/ OPC_CheckChild1Type, MVT::i64, ++/*551807*/ OPC_MoveParent, ++/*551808*/ OPC_MoveParent, ++/*551809*/ OPC_RecordChild1, // #1 = $b ++/*551810*/ OPC_MoveParent, ++/*551811*/ OPC_MoveChild1, ++/*551812*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*551815*/ OPC_MoveChild0, ++/*551816*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*551819*/ OPC_Scope, 6|128,3/*390*/, /*->552212*/ // 4 children in Scope ++/*551822*/ OPC_MoveChild0, ++/*551823*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*551826*/ OPC_Scope, 63, /*->551891*/ // 6 children in Scope ++/*551828*/ OPC_MoveChild0, ++/*551829*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*551832*/ OPC_CheckChild0Integer, 1, ++/*551834*/ OPC_CheckChild0Type, MVT::i64, ++/*551836*/ OPC_CheckChild1Integer, 1, ++/*551838*/ OPC_CheckChild1Type, MVT::i64, ++/*551840*/ OPC_MoveParent, ++/*551841*/ OPC_CheckChild1Same, 0, ++/*551843*/ OPC_MoveParent, ++/*551844*/ OPC_CheckChild1Same, 1, ++/*551846*/ OPC_MoveParent, ++/*551847*/ OPC_MoveChild1, ++/*551848*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*551851*/ OPC_CheckChild0Integer, 63, ++/*551853*/ OPC_CheckChild0Type, MVT::i64, ++/*551855*/ OPC_CheckChild1Integer, 63, ++/*551857*/ OPC_CheckChild1Type, MVT::i64, ++/*551859*/ OPC_CheckType, MVT::v2i64, ++/*551861*/ OPC_MoveParent, ++/*551862*/ OPC_MoveParent, ++/*551863*/ OPC_MoveParent, ++/*551864*/ OPC_MoveChild1, ++/*551865*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*551868*/ OPC_CheckChild0Integer, 1, ++/*551870*/ OPC_CheckChild0Type, MVT::i64, ++/*551872*/ OPC_CheckChild1Integer, 1, ++/*551874*/ OPC_CheckChild1Type, MVT::i64, ++/*551876*/ OPC_CheckType, MVT::v2i64, ++/*551878*/ OPC_MoveParent, ++/*551879*/ OPC_CheckType, MVT::v2i64, ++/*551881*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*551883*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$b), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a), LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*551891*/ /*Scope*/ 63, /*->551955*/ ++/*551892*/ OPC_CheckChild0Same, 0, ++/*551894*/ OPC_MoveChild1, ++/*551895*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*551898*/ OPC_CheckChild0Integer, 1, ++/*551900*/ OPC_CheckChild0Type, MVT::i64, ++/*551902*/ OPC_CheckChild1Integer, 1, ++/*551904*/ OPC_CheckChild1Type, MVT::i64, ++/*551906*/ OPC_MoveParent, ++/*551907*/ OPC_MoveParent, ++/*551908*/ OPC_CheckChild1Same, 1, ++/*551910*/ OPC_MoveParent, ++/*551911*/ OPC_MoveChild1, ++/*551912*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*551915*/ OPC_CheckChild0Integer, 63, ++/*551917*/ OPC_CheckChild0Type, MVT::i64, ++/*551919*/ OPC_CheckChild1Integer, 63, ++/*551921*/ OPC_CheckChild1Type, MVT::i64, ++/*551923*/ OPC_CheckType, MVT::v2i64, ++/*551925*/ OPC_MoveParent, ++/*551926*/ OPC_MoveParent, ++/*551927*/ OPC_MoveParent, ++/*551928*/ OPC_MoveChild1, ++/*551929*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*551932*/ OPC_CheckChild0Integer, 1, ++/*551934*/ OPC_CheckChild0Type, MVT::i64, ++/*551936*/ OPC_CheckChild1Integer, 1, ++/*551938*/ OPC_CheckChild1Type, MVT::i64, ++/*551940*/ OPC_CheckType, MVT::v2i64, ++/*551942*/ OPC_MoveParent, ++/*551943*/ OPC_CheckType, MVT::v2i64, ++/*551945*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*551947*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$b), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*551955*/ /*Scope*/ 63, /*->552019*/ ++/*551956*/ OPC_MoveChild0, ++/*551957*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*551960*/ OPC_CheckChild0Integer, 1, ++/*551962*/ OPC_CheckChild0Type, MVT::i64, ++/*551964*/ OPC_CheckChild1Integer, 1, ++/*551966*/ OPC_CheckChild1Type, MVT::i64, ++/*551968*/ OPC_MoveParent, ++/*551969*/ OPC_CheckChild1Same, 1, ++/*551971*/ OPC_MoveParent, ++/*551972*/ OPC_CheckChild1Same, 0, ++/*551974*/ OPC_MoveParent, ++/*551975*/ OPC_MoveChild1, ++/*551976*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*551979*/ OPC_CheckChild0Integer, 63, ++/*551981*/ OPC_CheckChild0Type, MVT::i64, ++/*551983*/ OPC_CheckChild1Integer, 63, ++/*551985*/ OPC_CheckChild1Type, MVT::i64, ++/*551987*/ OPC_CheckType, MVT::v2i64, ++/*551989*/ OPC_MoveParent, ++/*551990*/ OPC_MoveParent, ++/*551991*/ OPC_MoveParent, ++/*551992*/ OPC_MoveChild1, ++/*551993*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*551996*/ OPC_CheckChild0Integer, 1, ++/*551998*/ OPC_CheckChild0Type, MVT::i64, ++/*552000*/ OPC_CheckChild1Integer, 1, ++/*552002*/ OPC_CheckChild1Type, MVT::i64, ++/*552004*/ OPC_CheckType, MVT::v2i64, ++/*552006*/ OPC_MoveParent, ++/*552007*/ OPC_CheckType, MVT::v2i64, ++/*552009*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*552011*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$b), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b), LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*552019*/ /*Scope*/ 63, /*->552083*/ ++/*552020*/ OPC_CheckChild0Same, 1, ++/*552022*/ OPC_MoveChild1, ++/*552023*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*552026*/ OPC_CheckChild0Integer, 1, ++/*552028*/ OPC_CheckChild0Type, MVT::i64, ++/*552030*/ OPC_CheckChild1Integer, 1, ++/*552032*/ OPC_CheckChild1Type, MVT::i64, ++/*552034*/ OPC_MoveParent, ++/*552035*/ OPC_MoveParent, ++/*552036*/ OPC_CheckChild1Same, 0, ++/*552038*/ OPC_MoveParent, ++/*552039*/ OPC_MoveChild1, ++/*552040*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*552043*/ OPC_CheckChild0Integer, 63, ++/*552045*/ OPC_CheckChild0Type, MVT::i64, ++/*552047*/ OPC_CheckChild1Integer, 63, ++/*552049*/ OPC_CheckChild1Type, MVT::i64, ++/*552051*/ OPC_CheckType, MVT::v2i64, ++/*552053*/ OPC_MoveParent, ++/*552054*/ OPC_MoveParent, ++/*552055*/ OPC_MoveParent, ++/*552056*/ OPC_MoveChild1, ++/*552057*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*552060*/ OPC_CheckChild0Integer, 1, ++/*552062*/ OPC_CheckChild0Type, MVT::i64, ++/*552064*/ OPC_CheckChild1Integer, 1, ++/*552066*/ OPC_CheckChild1Type, MVT::i64, ++/*552068*/ OPC_CheckType, MVT::v2i64, ++/*552070*/ OPC_MoveParent, ++/*552071*/ OPC_CheckType, MVT::v2i64, ++/*552073*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*552075*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$b), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*552083*/ /*Scope*/ 63, /*->552147*/ ++/*552084*/ OPC_CheckChild0Same, 0, ++/*552086*/ OPC_CheckChild1Same, 1, ++/*552088*/ OPC_MoveParent, ++/*552089*/ OPC_MoveChild1, ++/*552090*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*552093*/ OPC_CheckChild0Integer, 1, ++/*552095*/ OPC_CheckChild0Type, MVT::i64, ++/*552097*/ OPC_CheckChild1Integer, 1, ++/*552099*/ OPC_CheckChild1Type, MVT::i64, ++/*552101*/ OPC_MoveParent, ++/*552102*/ OPC_MoveParent, ++/*552103*/ OPC_MoveChild1, ++/*552104*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*552107*/ OPC_CheckChild0Integer, 63, ++/*552109*/ OPC_CheckChild0Type, MVT::i64, ++/*552111*/ OPC_CheckChild1Integer, 63, ++/*552113*/ OPC_CheckChild1Type, MVT::i64, ++/*552115*/ OPC_CheckType, MVT::v2i64, ++/*552117*/ OPC_MoveParent, ++/*552118*/ OPC_MoveParent, ++/*552119*/ OPC_MoveParent, ++/*552120*/ OPC_MoveChild1, ++/*552121*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*552124*/ OPC_CheckChild0Integer, 1, ++/*552126*/ OPC_CheckChild0Type, MVT::i64, ++/*552128*/ OPC_CheckChild1Integer, 1, ++/*552130*/ OPC_CheckChild1Type, MVT::i64, ++/*552132*/ OPC_CheckType, MVT::v2i64, ++/*552134*/ OPC_MoveParent, ++/*552135*/ OPC_CheckType, MVT::v2i64, ++/*552137*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*552139*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$b), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*552147*/ /*Scope*/ 63, /*->552211*/ ++/*552148*/ OPC_CheckChild0Same, 1, ++/*552150*/ OPC_CheckChild1Same, 0, ++/*552152*/ OPC_MoveParent, ++/*552153*/ OPC_MoveChild1, ++/*552154*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*552157*/ OPC_CheckChild0Integer, 1, ++/*552159*/ OPC_CheckChild0Type, MVT::i64, ++/*552161*/ OPC_CheckChild1Integer, 1, ++/*552163*/ OPC_CheckChild1Type, MVT::i64, ++/*552165*/ OPC_MoveParent, ++/*552166*/ OPC_MoveParent, ++/*552167*/ OPC_MoveChild1, ++/*552168*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*552171*/ OPC_CheckChild0Integer, 63, ++/*552173*/ OPC_CheckChild0Type, MVT::i64, ++/*552175*/ OPC_CheckChild1Integer, 63, ++/*552177*/ OPC_CheckChild1Type, MVT::i64, ++/*552179*/ OPC_CheckType, MVT::v2i64, ++/*552181*/ OPC_MoveParent, ++/*552182*/ OPC_MoveParent, ++/*552183*/ OPC_MoveParent, ++/*552184*/ OPC_MoveChild1, ++/*552185*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*552188*/ OPC_CheckChild0Integer, 1, ++/*552190*/ OPC_CheckChild0Type, MVT::i64, ++/*552192*/ OPC_CheckChild1Integer, 1, ++/*552194*/ OPC_CheckChild1Type, MVT::i64, ++/*552196*/ OPC_CheckType, MVT::v2i64, ++/*552198*/ OPC_MoveParent, ++/*552199*/ OPC_CheckType, MVT::v2i64, ++/*552201*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*552203*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$b), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*552211*/ 0, /*End of Scope*/ ++/*552212*/ /*Scope*/ 4|128,1/*132*/, /*->552346*/ ++/*552214*/ OPC_CheckChild0Same, 1, ++/*552216*/ OPC_MoveChild1, ++/*552217*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*552220*/ OPC_Scope, 61, /*->552283*/ // 2 children in Scope ++/*552222*/ OPC_MoveChild0, ++/*552223*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*552226*/ OPC_CheckChild0Integer, 1, ++/*552228*/ OPC_CheckChild0Type, MVT::i64, ++/*552230*/ OPC_CheckChild1Integer, 1, ++/*552232*/ OPC_CheckChild1Type, MVT::i64, ++/*552234*/ OPC_MoveParent, ++/*552235*/ OPC_CheckChild1Same, 0, ++/*552237*/ OPC_MoveParent, ++/*552238*/ OPC_MoveParent, ++/*552239*/ OPC_MoveChild1, ++/*552240*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*552243*/ OPC_CheckChild0Integer, 63, ++/*552245*/ OPC_CheckChild0Type, MVT::i64, ++/*552247*/ OPC_CheckChild1Integer, 63, ++/*552249*/ OPC_CheckChild1Type, MVT::i64, ++/*552251*/ OPC_CheckType, MVT::v2i64, ++/*552253*/ OPC_MoveParent, ++/*552254*/ OPC_MoveParent, ++/*552255*/ OPC_MoveParent, ++/*552256*/ OPC_MoveChild1, ++/*552257*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*552260*/ OPC_CheckChild0Integer, 1, ++/*552262*/ OPC_CheckChild0Type, MVT::i64, ++/*552264*/ OPC_CheckChild1Integer, 1, ++/*552266*/ OPC_CheckChild1Type, MVT::i64, ++/*552268*/ OPC_CheckType, MVT::v2i64, ++/*552270*/ OPC_MoveParent, ++/*552271*/ OPC_CheckType, MVT::v2i64, ++/*552273*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*552275*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$b), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*552283*/ /*Scope*/ 61, /*->552345*/ ++/*552284*/ OPC_CheckChild0Same, 0, ++/*552286*/ OPC_MoveChild1, ++/*552287*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*552290*/ OPC_CheckChild0Integer, 1, ++/*552292*/ OPC_CheckChild0Type, MVT::i64, ++/*552294*/ OPC_CheckChild1Integer, 1, ++/*552296*/ OPC_CheckChild1Type, MVT::i64, ++/*552298*/ OPC_MoveParent, ++/*552299*/ OPC_MoveParent, ++/*552300*/ OPC_MoveParent, ++/*552301*/ OPC_MoveChild1, ++/*552302*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*552305*/ OPC_CheckChild0Integer, 63, ++/*552307*/ OPC_CheckChild0Type, MVT::i64, ++/*552309*/ OPC_CheckChild1Integer, 63, ++/*552311*/ OPC_CheckChild1Type, MVT::i64, ++/*552313*/ OPC_CheckType, MVT::v2i64, ++/*552315*/ OPC_MoveParent, ++/*552316*/ OPC_MoveParent, ++/*552317*/ OPC_MoveParent, ++/*552318*/ OPC_MoveChild1, ++/*552319*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*552322*/ OPC_CheckChild0Integer, 1, ++/*552324*/ OPC_CheckChild0Type, MVT::i64, ++/*552326*/ OPC_CheckChild1Integer, 1, ++/*552328*/ OPC_CheckChild1Type, MVT::i64, ++/*552330*/ OPC_CheckType, MVT::v2i64, ++/*552332*/ OPC_MoveParent, ++/*552333*/ OPC_CheckType, MVT::v2i64, ++/*552335*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*552337*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$b), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*552345*/ 0, /*End of Scope*/ ++/*552346*/ /*Scope*/ 4|128,1/*132*/, /*->552480*/ ++/*552348*/ OPC_CheckChild0Same, 0, ++/*552350*/ OPC_MoveChild1, ++/*552351*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*552354*/ OPC_Scope, 61, /*->552417*/ // 2 children in Scope ++/*552356*/ OPC_MoveChild0, ++/*552357*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*552360*/ OPC_CheckChild0Integer, 1, ++/*552362*/ OPC_CheckChild0Type, MVT::i64, ++/*552364*/ OPC_CheckChild1Integer, 1, ++/*552366*/ OPC_CheckChild1Type, MVT::i64, ++/*552368*/ OPC_MoveParent, ++/*552369*/ OPC_CheckChild1Same, 1, ++/*552371*/ OPC_MoveParent, ++/*552372*/ OPC_MoveParent, ++/*552373*/ OPC_MoveChild1, ++/*552374*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*552377*/ OPC_CheckChild0Integer, 63, ++/*552379*/ OPC_CheckChild0Type, MVT::i64, ++/*552381*/ OPC_CheckChild1Integer, 63, ++/*552383*/ OPC_CheckChild1Type, MVT::i64, ++/*552385*/ OPC_CheckType, MVT::v2i64, ++/*552387*/ OPC_MoveParent, ++/*552388*/ OPC_MoveParent, ++/*552389*/ OPC_MoveParent, ++/*552390*/ OPC_MoveChild1, ++/*552391*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*552394*/ OPC_CheckChild0Integer, 1, ++/*552396*/ OPC_CheckChild0Type, MVT::i64, ++/*552398*/ OPC_CheckChild1Integer, 1, ++/*552400*/ OPC_CheckChild1Type, MVT::i64, ++/*552402*/ OPC_CheckType, MVT::v2i64, ++/*552404*/ OPC_MoveParent, ++/*552405*/ OPC_CheckType, MVT::v2i64, ++/*552407*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*552409*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$b), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*552417*/ /*Scope*/ 61, /*->552479*/ ++/*552418*/ OPC_CheckChild0Same, 1, ++/*552420*/ OPC_MoveChild1, ++/*552421*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*552424*/ OPC_CheckChild0Integer, 1, ++/*552426*/ OPC_CheckChild0Type, MVT::i64, ++/*552428*/ OPC_CheckChild1Integer, 1, ++/*552430*/ OPC_CheckChild1Type, MVT::i64, ++/*552432*/ OPC_MoveParent, ++/*552433*/ OPC_MoveParent, ++/*552434*/ OPC_MoveParent, ++/*552435*/ OPC_MoveChild1, ++/*552436*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*552439*/ OPC_CheckChild0Integer, 63, ++/*552441*/ OPC_CheckChild0Type, MVT::i64, ++/*552443*/ OPC_CheckChild1Integer, 63, ++/*552445*/ OPC_CheckChild1Type, MVT::i64, ++/*552447*/ OPC_CheckType, MVT::v2i64, ++/*552449*/ OPC_MoveParent, ++/*552450*/ OPC_MoveParent, ++/*552451*/ OPC_MoveParent, ++/*552452*/ OPC_MoveChild1, ++/*552453*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*552456*/ OPC_CheckChild0Integer, 1, ++/*552458*/ OPC_CheckChild0Type, MVT::i64, ++/*552460*/ OPC_CheckChild1Integer, 1, ++/*552462*/ OPC_CheckChild1Type, MVT::i64, ++/*552464*/ OPC_CheckType, MVT::v2i64, ++/*552466*/ OPC_MoveParent, ++/*552467*/ OPC_CheckType, MVT::v2i64, ++/*552469*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*552471*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$b), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*552479*/ 0, /*End of Scope*/ ++/*552480*/ /*Scope*/ 121, /*->552602*/ ++/*552481*/ OPC_MoveChild0, ++/*552482*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*552485*/ OPC_CheckChild0Integer, 1, ++/*552487*/ OPC_CheckChild0Type, MVT::i64, ++/*552489*/ OPC_CheckChild1Integer, 1, ++/*552491*/ OPC_CheckChild1Type, MVT::i64, ++/*552493*/ OPC_MoveParent, ++/*552494*/ OPC_MoveChild1, ++/*552495*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*552498*/ OPC_Scope, 50, /*->552550*/ // 2 children in Scope ++/*552500*/ OPC_CheckChild0Same, 0, ++/*552502*/ OPC_CheckChild1Same, 1, ++/*552504*/ OPC_MoveParent, ++/*552505*/ OPC_MoveParent, ++/*552506*/ OPC_MoveChild1, ++/*552507*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*552510*/ OPC_CheckChild0Integer, 63, ++/*552512*/ OPC_CheckChild0Type, MVT::i64, ++/*552514*/ OPC_CheckChild1Integer, 63, ++/*552516*/ OPC_CheckChild1Type, MVT::i64, ++/*552518*/ OPC_CheckType, MVT::v2i64, ++/*552520*/ OPC_MoveParent, ++/*552521*/ OPC_MoveParent, ++/*552522*/ OPC_MoveParent, ++/*552523*/ OPC_MoveChild1, ++/*552524*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*552527*/ OPC_CheckChild0Integer, 1, ++/*552529*/ OPC_CheckChild0Type, MVT::i64, ++/*552531*/ OPC_CheckChild1Integer, 1, ++/*552533*/ OPC_CheckChild1Type, MVT::i64, ++/*552535*/ OPC_CheckType, MVT::v2i64, ++/*552537*/ OPC_MoveParent, ++/*552538*/ OPC_CheckType, MVT::v2i64, ++/*552540*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*552542*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$b), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*552550*/ /*Scope*/ 50, /*->552601*/ ++/*552551*/ OPC_CheckChild0Same, 1, ++/*552553*/ OPC_CheckChild1Same, 0, ++/*552555*/ OPC_MoveParent, ++/*552556*/ OPC_MoveParent, ++/*552557*/ OPC_MoveChild1, ++/*552558*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*552561*/ OPC_CheckChild0Integer, 63, ++/*552563*/ OPC_CheckChild0Type, MVT::i64, ++/*552565*/ OPC_CheckChild1Integer, 63, ++/*552567*/ OPC_CheckChild1Type, MVT::i64, ++/*552569*/ OPC_CheckType, MVT::v2i64, ++/*552571*/ OPC_MoveParent, ++/*552572*/ OPC_MoveParent, ++/*552573*/ OPC_MoveParent, ++/*552574*/ OPC_MoveChild1, ++/*552575*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*552578*/ OPC_CheckChild0Integer, 1, ++/*552580*/ OPC_CheckChild0Type, MVT::i64, ++/*552582*/ OPC_CheckChild1Integer, 1, ++/*552584*/ OPC_CheckChild1Type, MVT::i64, ++/*552586*/ OPC_CheckType, MVT::v2i64, ++/*552588*/ OPC_MoveParent, ++/*552589*/ OPC_CheckType, MVT::v2i64, ++/*552591*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*552593*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$b), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*552601*/ 0, /*End of Scope*/ ++/*552602*/ 0, /*End of Scope*/ ++/*552603*/ /*Scope*/ 41|128,6/*809*/, /*->553414*/ ++/*552605*/ OPC_MoveChild0, ++/*552606*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*552609*/ OPC_CheckChild0Integer, 1, ++/*552611*/ OPC_CheckChild0Type, MVT::i64, ++/*552613*/ OPC_CheckChild1Integer, 1, ++/*552615*/ OPC_CheckChild1Type, MVT::i64, ++/*552617*/ OPC_MoveParent, ++/*552618*/ OPC_RecordChild1, // #0 = $b ++/*552619*/ OPC_MoveParent, ++/*552620*/ OPC_RecordChild1, // #1 = $a ++/*552621*/ OPC_MoveParent, ++/*552622*/ OPC_MoveChild1, ++/*552623*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*552626*/ OPC_MoveChild0, ++/*552627*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*552630*/ OPC_Scope, 6|128,3/*390*/, /*->553023*/ // 4 children in Scope ++/*552633*/ OPC_MoveChild0, ++/*552634*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*552637*/ OPC_Scope, 63, /*->552702*/ // 6 children in Scope ++/*552639*/ OPC_MoveChild0, ++/*552640*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*552643*/ OPC_CheckChild0Integer, 1, ++/*552645*/ OPC_CheckChild0Type, MVT::i64, ++/*552647*/ OPC_CheckChild1Integer, 1, ++/*552649*/ OPC_CheckChild1Type, MVT::i64, ++/*552651*/ OPC_MoveParent, ++/*552652*/ OPC_CheckChild1Same, 1, ++/*552654*/ OPC_MoveParent, ++/*552655*/ OPC_CheckChild1Same, 0, ++/*552657*/ OPC_MoveParent, ++/*552658*/ OPC_MoveChild1, ++/*552659*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*552662*/ OPC_CheckChild0Integer, 63, ++/*552664*/ OPC_CheckChild0Type, MVT::i64, ++/*552666*/ OPC_CheckChild1Integer, 63, ++/*552668*/ OPC_CheckChild1Type, MVT::i64, ++/*552670*/ OPC_CheckType, MVT::v2i64, ++/*552672*/ OPC_MoveParent, ++/*552673*/ OPC_MoveParent, ++/*552674*/ OPC_MoveParent, ++/*552675*/ OPC_MoveChild1, ++/*552676*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*552679*/ OPC_CheckChild0Integer, 1, ++/*552681*/ OPC_CheckChild0Type, MVT::i64, ++/*552683*/ OPC_CheckChild1Integer, 1, ++/*552685*/ OPC_CheckChild1Type, MVT::i64, ++/*552687*/ OPC_CheckType, MVT::v2i64, ++/*552689*/ OPC_MoveParent, ++/*552690*/ OPC_CheckType, MVT::v2i64, ++/*552692*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*552694*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b), LSX128D:{ *:[v2i64] }:$a), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a), LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*552702*/ /*Scope*/ 63, /*->552766*/ ++/*552703*/ OPC_CheckChild0Same, 1, ++/*552705*/ OPC_MoveChild1, ++/*552706*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*552709*/ OPC_CheckChild0Integer, 1, ++/*552711*/ OPC_CheckChild0Type, MVT::i64, ++/*552713*/ OPC_CheckChild1Integer, 1, ++/*552715*/ OPC_CheckChild1Type, MVT::i64, ++/*552717*/ OPC_MoveParent, ++/*552718*/ OPC_MoveParent, ++/*552719*/ OPC_CheckChild1Same, 0, ++/*552721*/ OPC_MoveParent, ++/*552722*/ OPC_MoveChild1, ++/*552723*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*552726*/ OPC_CheckChild0Integer, 63, ++/*552728*/ OPC_CheckChild0Type, MVT::i64, ++/*552730*/ OPC_CheckChild1Integer, 63, ++/*552732*/ OPC_CheckChild1Type, MVT::i64, ++/*552734*/ OPC_CheckType, MVT::v2i64, ++/*552736*/ OPC_MoveParent, ++/*552737*/ OPC_MoveParent, ++/*552738*/ OPC_MoveParent, ++/*552739*/ OPC_MoveChild1, ++/*552740*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*552743*/ OPC_CheckChild0Integer, 1, ++/*552745*/ OPC_CheckChild0Type, MVT::i64, ++/*552747*/ OPC_CheckChild1Integer, 1, ++/*552749*/ OPC_CheckChild1Type, MVT::i64, ++/*552751*/ OPC_CheckType, MVT::v2i64, ++/*552753*/ OPC_MoveParent, ++/*552754*/ OPC_CheckType, MVT::v2i64, ++/*552756*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*552758*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b), LSX128D:{ *:[v2i64] }:$a), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*552766*/ /*Scope*/ 63, /*->552830*/ ++/*552767*/ OPC_MoveChild0, ++/*552768*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*552771*/ OPC_CheckChild0Integer, 1, ++/*552773*/ OPC_CheckChild0Type, MVT::i64, ++/*552775*/ OPC_CheckChild1Integer, 1, ++/*552777*/ OPC_CheckChild1Type, MVT::i64, ++/*552779*/ OPC_MoveParent, ++/*552780*/ OPC_CheckChild1Same, 0, ++/*552782*/ OPC_MoveParent, ++/*552783*/ OPC_CheckChild1Same, 1, ++/*552785*/ OPC_MoveParent, ++/*552786*/ OPC_MoveChild1, ++/*552787*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*552790*/ OPC_CheckChild0Integer, 63, ++/*552792*/ OPC_CheckChild0Type, MVT::i64, ++/*552794*/ OPC_CheckChild1Integer, 63, ++/*552796*/ OPC_CheckChild1Type, MVT::i64, ++/*552798*/ OPC_CheckType, MVT::v2i64, ++/*552800*/ OPC_MoveParent, ++/*552801*/ OPC_MoveParent, ++/*552802*/ OPC_MoveParent, ++/*552803*/ OPC_MoveChild1, ++/*552804*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*552807*/ OPC_CheckChild0Integer, 1, ++/*552809*/ OPC_CheckChild0Type, MVT::i64, ++/*552811*/ OPC_CheckChild1Integer, 1, ++/*552813*/ OPC_CheckChild1Type, MVT::i64, ++/*552815*/ OPC_CheckType, MVT::v2i64, ++/*552817*/ OPC_MoveParent, ++/*552818*/ OPC_CheckType, MVT::v2i64, ++/*552820*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*552822*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b), LSX128D:{ *:[v2i64] }:$a), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b), LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*552830*/ /*Scope*/ 63, /*->552894*/ ++/*552831*/ OPC_CheckChild0Same, 0, ++/*552833*/ OPC_MoveChild1, ++/*552834*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*552837*/ OPC_CheckChild0Integer, 1, ++/*552839*/ OPC_CheckChild0Type, MVT::i64, ++/*552841*/ OPC_CheckChild1Integer, 1, ++/*552843*/ OPC_CheckChild1Type, MVT::i64, ++/*552845*/ OPC_MoveParent, ++/*552846*/ OPC_MoveParent, ++/*552847*/ OPC_CheckChild1Same, 1, ++/*552849*/ OPC_MoveParent, ++/*552850*/ OPC_MoveChild1, ++/*552851*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*552854*/ OPC_CheckChild0Integer, 63, ++/*552856*/ OPC_CheckChild0Type, MVT::i64, ++/*552858*/ OPC_CheckChild1Integer, 63, ++/*552860*/ OPC_CheckChild1Type, MVT::i64, ++/*552862*/ OPC_CheckType, MVT::v2i64, ++/*552864*/ OPC_MoveParent, ++/*552865*/ OPC_MoveParent, ++/*552866*/ OPC_MoveParent, ++/*552867*/ OPC_MoveChild1, ++/*552868*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*552871*/ OPC_CheckChild0Integer, 1, ++/*552873*/ OPC_CheckChild0Type, MVT::i64, ++/*552875*/ OPC_CheckChild1Integer, 1, ++/*552877*/ OPC_CheckChild1Type, MVT::i64, ++/*552879*/ OPC_CheckType, MVT::v2i64, ++/*552881*/ OPC_MoveParent, ++/*552882*/ OPC_CheckType, MVT::v2i64, ++/*552884*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*552886*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b), LSX128D:{ *:[v2i64] }:$a), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*552894*/ /*Scope*/ 63, /*->552958*/ ++/*552895*/ OPC_CheckChild0Same, 1, ++/*552897*/ OPC_CheckChild1Same, 0, ++/*552899*/ OPC_MoveParent, ++/*552900*/ OPC_MoveChild1, ++/*552901*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*552904*/ OPC_CheckChild0Integer, 1, ++/*552906*/ OPC_CheckChild0Type, MVT::i64, ++/*552908*/ OPC_CheckChild1Integer, 1, ++/*552910*/ OPC_CheckChild1Type, MVT::i64, ++/*552912*/ OPC_MoveParent, ++/*552913*/ OPC_MoveParent, ++/*552914*/ OPC_MoveChild1, ++/*552915*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*552918*/ OPC_CheckChild0Integer, 63, ++/*552920*/ OPC_CheckChild0Type, MVT::i64, ++/*552922*/ OPC_CheckChild1Integer, 63, ++/*552924*/ OPC_CheckChild1Type, MVT::i64, ++/*552926*/ OPC_CheckType, MVT::v2i64, ++/*552928*/ OPC_MoveParent, ++/*552929*/ OPC_MoveParent, ++/*552930*/ OPC_MoveParent, ++/*552931*/ OPC_MoveChild1, ++/*552932*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*552935*/ OPC_CheckChild0Integer, 1, ++/*552937*/ OPC_CheckChild0Type, MVT::i64, ++/*552939*/ OPC_CheckChild1Integer, 1, ++/*552941*/ OPC_CheckChild1Type, MVT::i64, ++/*552943*/ OPC_CheckType, MVT::v2i64, ++/*552945*/ OPC_MoveParent, ++/*552946*/ OPC_CheckType, MVT::v2i64, ++/*552948*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*552950*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b), LSX128D:{ *:[v2i64] }:$a), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*552958*/ /*Scope*/ 63, /*->553022*/ ++/*552959*/ OPC_CheckChild0Same, 0, ++/*552961*/ OPC_CheckChild1Same, 1, ++/*552963*/ OPC_MoveParent, ++/*552964*/ OPC_MoveChild1, ++/*552965*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*552968*/ OPC_CheckChild0Integer, 1, ++/*552970*/ OPC_CheckChild0Type, MVT::i64, ++/*552972*/ OPC_CheckChild1Integer, 1, ++/*552974*/ OPC_CheckChild1Type, MVT::i64, ++/*552976*/ OPC_MoveParent, ++/*552977*/ OPC_MoveParent, ++/*552978*/ OPC_MoveChild1, ++/*552979*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*552982*/ OPC_CheckChild0Integer, 63, ++/*552984*/ OPC_CheckChild0Type, MVT::i64, ++/*552986*/ OPC_CheckChild1Integer, 63, ++/*552988*/ OPC_CheckChild1Type, MVT::i64, ++/*552990*/ OPC_CheckType, MVT::v2i64, ++/*552992*/ OPC_MoveParent, ++/*552993*/ OPC_MoveParent, ++/*552994*/ OPC_MoveParent, ++/*552995*/ OPC_MoveChild1, ++/*552996*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*552999*/ OPC_CheckChild0Integer, 1, ++/*553001*/ OPC_CheckChild0Type, MVT::i64, ++/*553003*/ OPC_CheckChild1Integer, 1, ++/*553005*/ OPC_CheckChild1Type, MVT::i64, ++/*553007*/ OPC_CheckType, MVT::v2i64, ++/*553009*/ OPC_MoveParent, ++/*553010*/ OPC_CheckType, MVT::v2i64, ++/*553012*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*553014*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b), LSX128D:{ *:[v2i64] }:$a), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*553022*/ 0, /*End of Scope*/ ++/*553023*/ /*Scope*/ 4|128,1/*132*/, /*->553157*/ ++/*553025*/ OPC_CheckChild0Same, 0, ++/*553027*/ OPC_MoveChild1, ++/*553028*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*553031*/ OPC_Scope, 61, /*->553094*/ // 2 children in Scope ++/*553033*/ OPC_MoveChild0, ++/*553034*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*553037*/ OPC_CheckChild0Integer, 1, ++/*553039*/ OPC_CheckChild0Type, MVT::i64, ++/*553041*/ OPC_CheckChild1Integer, 1, ++/*553043*/ OPC_CheckChild1Type, MVT::i64, ++/*553045*/ OPC_MoveParent, ++/*553046*/ OPC_CheckChild1Same, 1, ++/*553048*/ OPC_MoveParent, ++/*553049*/ OPC_MoveParent, ++/*553050*/ OPC_MoveChild1, ++/*553051*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*553054*/ OPC_CheckChild0Integer, 63, ++/*553056*/ OPC_CheckChild0Type, MVT::i64, ++/*553058*/ OPC_CheckChild1Integer, 63, ++/*553060*/ OPC_CheckChild1Type, MVT::i64, ++/*553062*/ OPC_CheckType, MVT::v2i64, ++/*553064*/ OPC_MoveParent, ++/*553065*/ OPC_MoveParent, ++/*553066*/ OPC_MoveParent, ++/*553067*/ OPC_MoveChild1, ++/*553068*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*553071*/ OPC_CheckChild0Integer, 1, ++/*553073*/ OPC_CheckChild0Type, MVT::i64, ++/*553075*/ OPC_CheckChild1Integer, 1, ++/*553077*/ OPC_CheckChild1Type, MVT::i64, ++/*553079*/ OPC_CheckType, MVT::v2i64, ++/*553081*/ OPC_MoveParent, ++/*553082*/ OPC_CheckType, MVT::v2i64, ++/*553084*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*553086*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b), LSX128D:{ *:[v2i64] }:$a), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*553094*/ /*Scope*/ 61, /*->553156*/ ++/*553095*/ OPC_CheckChild0Same, 1, ++/*553097*/ OPC_MoveChild1, ++/*553098*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*553101*/ OPC_CheckChild0Integer, 1, ++/*553103*/ OPC_CheckChild0Type, MVT::i64, ++/*553105*/ OPC_CheckChild1Integer, 1, ++/*553107*/ OPC_CheckChild1Type, MVT::i64, ++/*553109*/ OPC_MoveParent, ++/*553110*/ OPC_MoveParent, ++/*553111*/ OPC_MoveParent, ++/*553112*/ OPC_MoveChild1, ++/*553113*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*553116*/ OPC_CheckChild0Integer, 63, ++/*553118*/ OPC_CheckChild0Type, MVT::i64, ++/*553120*/ OPC_CheckChild1Integer, 63, ++/*553122*/ OPC_CheckChild1Type, MVT::i64, ++/*553124*/ OPC_CheckType, MVT::v2i64, ++/*553126*/ OPC_MoveParent, ++/*553127*/ OPC_MoveParent, ++/*553128*/ OPC_MoveParent, ++/*553129*/ OPC_MoveChild1, ++/*553130*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*553133*/ OPC_CheckChild0Integer, 1, ++/*553135*/ OPC_CheckChild0Type, MVT::i64, ++/*553137*/ OPC_CheckChild1Integer, 1, ++/*553139*/ OPC_CheckChild1Type, MVT::i64, ++/*553141*/ OPC_CheckType, MVT::v2i64, ++/*553143*/ OPC_MoveParent, ++/*553144*/ OPC_CheckType, MVT::v2i64, ++/*553146*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*553148*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b), LSX128D:{ *:[v2i64] }:$a), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*553156*/ 0, /*End of Scope*/ ++/*553157*/ /*Scope*/ 4|128,1/*132*/, /*->553291*/ ++/*553159*/ OPC_CheckChild0Same, 1, ++/*553161*/ OPC_MoveChild1, ++/*553162*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*553165*/ OPC_Scope, 61, /*->553228*/ // 2 children in Scope ++/*553167*/ OPC_MoveChild0, ++/*553168*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*553171*/ OPC_CheckChild0Integer, 1, ++/*553173*/ OPC_CheckChild0Type, MVT::i64, ++/*553175*/ OPC_CheckChild1Integer, 1, ++/*553177*/ OPC_CheckChild1Type, MVT::i64, ++/*553179*/ OPC_MoveParent, ++/*553180*/ OPC_CheckChild1Same, 0, ++/*553182*/ OPC_MoveParent, ++/*553183*/ OPC_MoveParent, ++/*553184*/ OPC_MoveChild1, ++/*553185*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*553188*/ OPC_CheckChild0Integer, 63, ++/*553190*/ OPC_CheckChild0Type, MVT::i64, ++/*553192*/ OPC_CheckChild1Integer, 63, ++/*553194*/ OPC_CheckChild1Type, MVT::i64, ++/*553196*/ OPC_CheckType, MVT::v2i64, ++/*553198*/ OPC_MoveParent, ++/*553199*/ OPC_MoveParent, ++/*553200*/ OPC_MoveParent, ++/*553201*/ OPC_MoveChild1, ++/*553202*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*553205*/ OPC_CheckChild0Integer, 1, ++/*553207*/ OPC_CheckChild0Type, MVT::i64, ++/*553209*/ OPC_CheckChild1Integer, 1, ++/*553211*/ OPC_CheckChild1Type, MVT::i64, ++/*553213*/ OPC_CheckType, MVT::v2i64, ++/*553215*/ OPC_MoveParent, ++/*553216*/ OPC_CheckType, MVT::v2i64, ++/*553218*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*553220*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b), LSX128D:{ *:[v2i64] }:$a), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*553228*/ /*Scope*/ 61, /*->553290*/ ++/*553229*/ OPC_CheckChild0Same, 0, ++/*553231*/ OPC_MoveChild1, ++/*553232*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*553235*/ OPC_CheckChild0Integer, 1, ++/*553237*/ OPC_CheckChild0Type, MVT::i64, ++/*553239*/ OPC_CheckChild1Integer, 1, ++/*553241*/ OPC_CheckChild1Type, MVT::i64, ++/*553243*/ OPC_MoveParent, ++/*553244*/ OPC_MoveParent, ++/*553245*/ OPC_MoveParent, ++/*553246*/ OPC_MoveChild1, ++/*553247*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*553250*/ OPC_CheckChild0Integer, 63, ++/*553252*/ OPC_CheckChild0Type, MVT::i64, ++/*553254*/ OPC_CheckChild1Integer, 63, ++/*553256*/ OPC_CheckChild1Type, MVT::i64, ++/*553258*/ OPC_CheckType, MVT::v2i64, ++/*553260*/ OPC_MoveParent, ++/*553261*/ OPC_MoveParent, ++/*553262*/ OPC_MoveParent, ++/*553263*/ OPC_MoveChild1, ++/*553264*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*553267*/ OPC_CheckChild0Integer, 1, ++/*553269*/ OPC_CheckChild0Type, MVT::i64, ++/*553271*/ OPC_CheckChild1Integer, 1, ++/*553273*/ OPC_CheckChild1Type, MVT::i64, ++/*553275*/ OPC_CheckType, MVT::v2i64, ++/*553277*/ OPC_MoveParent, ++/*553278*/ OPC_CheckType, MVT::v2i64, ++/*553280*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*553282*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b), LSX128D:{ *:[v2i64] }:$a), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*553290*/ 0, /*End of Scope*/ ++/*553291*/ /*Scope*/ 121, /*->553413*/ ++/*553292*/ OPC_MoveChild0, ++/*553293*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*553296*/ OPC_CheckChild0Integer, 1, ++/*553298*/ OPC_CheckChild0Type, MVT::i64, ++/*553300*/ OPC_CheckChild1Integer, 1, ++/*553302*/ OPC_CheckChild1Type, MVT::i64, ++/*553304*/ OPC_MoveParent, ++/*553305*/ OPC_MoveChild1, ++/*553306*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*553309*/ OPC_Scope, 50, /*->553361*/ // 2 children in Scope ++/*553311*/ OPC_CheckChild0Same, 1, ++/*553313*/ OPC_CheckChild1Same, 0, ++/*553315*/ OPC_MoveParent, ++/*553316*/ OPC_MoveParent, ++/*553317*/ OPC_MoveChild1, ++/*553318*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*553321*/ OPC_CheckChild0Integer, 63, ++/*553323*/ OPC_CheckChild0Type, MVT::i64, ++/*553325*/ OPC_CheckChild1Integer, 63, ++/*553327*/ OPC_CheckChild1Type, MVT::i64, ++/*553329*/ OPC_CheckType, MVT::v2i64, ++/*553331*/ OPC_MoveParent, ++/*553332*/ OPC_MoveParent, ++/*553333*/ OPC_MoveParent, ++/*553334*/ OPC_MoveChild1, ++/*553335*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*553338*/ OPC_CheckChild0Integer, 1, ++/*553340*/ OPC_CheckChild0Type, MVT::i64, ++/*553342*/ OPC_CheckChild1Integer, 1, ++/*553344*/ OPC_CheckChild1Type, MVT::i64, ++/*553346*/ OPC_CheckType, MVT::v2i64, ++/*553348*/ OPC_MoveParent, ++/*553349*/ OPC_CheckType, MVT::v2i64, ++/*553351*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*553353*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b), LSX128D:{ *:[v2i64] }:$a), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*553361*/ /*Scope*/ 50, /*->553412*/ ++/*553362*/ OPC_CheckChild0Same, 0, ++/*553364*/ OPC_CheckChild1Same, 1, ++/*553366*/ OPC_MoveParent, ++/*553367*/ OPC_MoveParent, ++/*553368*/ OPC_MoveChild1, ++/*553369*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*553372*/ OPC_CheckChild0Integer, 63, ++/*553374*/ OPC_CheckChild0Type, MVT::i64, ++/*553376*/ OPC_CheckChild1Integer, 63, ++/*553378*/ OPC_CheckChild1Type, MVT::i64, ++/*553380*/ OPC_CheckType, MVT::v2i64, ++/*553382*/ OPC_MoveParent, ++/*553383*/ OPC_MoveParent, ++/*553384*/ OPC_MoveParent, ++/*553385*/ OPC_MoveChild1, ++/*553386*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*553389*/ OPC_CheckChild0Integer, 1, ++/*553391*/ OPC_CheckChild0Type, MVT::i64, ++/*553393*/ OPC_CheckChild1Integer, 1, ++/*553395*/ OPC_CheckChild1Type, MVT::i64, ++/*553397*/ OPC_CheckType, MVT::v2i64, ++/*553399*/ OPC_MoveParent, ++/*553400*/ OPC_CheckType, MVT::v2i64, ++/*553402*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*553404*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b), LSX128D:{ *:[v2i64] }:$a), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*553412*/ 0, /*End of Scope*/ ++/*553413*/ 0, /*End of Scope*/ ++/*553414*/ /*Scope*/ 102|128,18/*2406*/, /*->555822*/ ++/*553416*/ OPC_RecordChild0, // #0 = $b ++/*553417*/ OPC_Scope, 40|128,6/*808*/, /*->554228*/ // 2 children in Scope ++/*553420*/ OPC_MoveChild1, ++/*553421*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*553424*/ OPC_CheckChild0Integer, 1, ++/*553426*/ OPC_CheckChild0Type, MVT::i64, ++/*553428*/ OPC_CheckChild1Integer, 1, ++/*553430*/ OPC_CheckChild1Type, MVT::i64, ++/*553432*/ OPC_MoveParent, ++/*553433*/ OPC_MoveParent, ++/*553434*/ OPC_RecordChild1, // #1 = $a ++/*553435*/ OPC_MoveParent, ++/*553436*/ OPC_MoveChild1, ++/*553437*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*553440*/ OPC_MoveChild0, ++/*553441*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*553444*/ OPC_Scope, 6|128,3/*390*/, /*->553837*/ // 4 children in Scope ++/*553447*/ OPC_MoveChild0, ++/*553448*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*553451*/ OPC_Scope, 63, /*->553516*/ // 6 children in Scope ++/*553453*/ OPC_MoveChild0, ++/*553454*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*553457*/ OPC_CheckChild0Integer, 1, ++/*553459*/ OPC_CheckChild0Type, MVT::i64, ++/*553461*/ OPC_CheckChild1Integer, 1, ++/*553463*/ OPC_CheckChild1Type, MVT::i64, ++/*553465*/ OPC_MoveParent, ++/*553466*/ OPC_CheckChild1Same, 1, ++/*553468*/ OPC_MoveParent, ++/*553469*/ OPC_CheckChild1Same, 0, ++/*553471*/ OPC_MoveParent, ++/*553472*/ OPC_MoveChild1, ++/*553473*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*553476*/ OPC_CheckChild0Integer, 63, ++/*553478*/ OPC_CheckChild0Type, MVT::i64, ++/*553480*/ OPC_CheckChild1Integer, 63, ++/*553482*/ OPC_CheckChild1Type, MVT::i64, ++/*553484*/ OPC_CheckType, MVT::v2i64, ++/*553486*/ OPC_MoveParent, ++/*553487*/ OPC_MoveParent, ++/*553488*/ OPC_MoveParent, ++/*553489*/ OPC_MoveChild1, ++/*553490*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*553493*/ OPC_CheckChild0Integer, 1, ++/*553495*/ OPC_CheckChild0Type, MVT::i64, ++/*553497*/ OPC_CheckChild1Integer, 1, ++/*553499*/ OPC_CheckChild1Type, MVT::i64, ++/*553501*/ OPC_CheckType, MVT::v2i64, ++/*553503*/ OPC_MoveParent, ++/*553504*/ OPC_CheckType, MVT::v2i64, ++/*553506*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*553508*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$a), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a), LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*553516*/ /*Scope*/ 63, /*->553580*/ ++/*553517*/ OPC_CheckChild0Same, 1, ++/*553519*/ OPC_MoveChild1, ++/*553520*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*553523*/ OPC_CheckChild0Integer, 1, ++/*553525*/ OPC_CheckChild0Type, MVT::i64, ++/*553527*/ OPC_CheckChild1Integer, 1, ++/*553529*/ OPC_CheckChild1Type, MVT::i64, ++/*553531*/ OPC_MoveParent, ++/*553532*/ OPC_MoveParent, ++/*553533*/ OPC_CheckChild1Same, 0, ++/*553535*/ OPC_MoveParent, ++/*553536*/ OPC_MoveChild1, ++/*553537*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*553540*/ OPC_CheckChild0Integer, 63, ++/*553542*/ OPC_CheckChild0Type, MVT::i64, ++/*553544*/ OPC_CheckChild1Integer, 63, ++/*553546*/ OPC_CheckChild1Type, MVT::i64, ++/*553548*/ OPC_CheckType, MVT::v2i64, ++/*553550*/ OPC_MoveParent, ++/*553551*/ OPC_MoveParent, ++/*553552*/ OPC_MoveParent, ++/*553553*/ OPC_MoveChild1, ++/*553554*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*553557*/ OPC_CheckChild0Integer, 1, ++/*553559*/ OPC_CheckChild0Type, MVT::i64, ++/*553561*/ OPC_CheckChild1Integer, 1, ++/*553563*/ OPC_CheckChild1Type, MVT::i64, ++/*553565*/ OPC_CheckType, MVT::v2i64, ++/*553567*/ OPC_MoveParent, ++/*553568*/ OPC_CheckType, MVT::v2i64, ++/*553570*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*553572*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$a), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*553580*/ /*Scope*/ 63, /*->553644*/ ++/*553581*/ OPC_MoveChild0, ++/*553582*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*553585*/ OPC_CheckChild0Integer, 1, ++/*553587*/ OPC_CheckChild0Type, MVT::i64, ++/*553589*/ OPC_CheckChild1Integer, 1, ++/*553591*/ OPC_CheckChild1Type, MVT::i64, ++/*553593*/ OPC_MoveParent, ++/*553594*/ OPC_CheckChild1Same, 0, ++/*553596*/ OPC_MoveParent, ++/*553597*/ OPC_CheckChild1Same, 1, ++/*553599*/ OPC_MoveParent, ++/*553600*/ OPC_MoveChild1, ++/*553601*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*553604*/ OPC_CheckChild0Integer, 63, ++/*553606*/ OPC_CheckChild0Type, MVT::i64, ++/*553608*/ OPC_CheckChild1Integer, 63, ++/*553610*/ OPC_CheckChild1Type, MVT::i64, ++/*553612*/ OPC_CheckType, MVT::v2i64, ++/*553614*/ OPC_MoveParent, ++/*553615*/ OPC_MoveParent, ++/*553616*/ OPC_MoveParent, ++/*553617*/ OPC_MoveChild1, ++/*553618*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*553621*/ OPC_CheckChild0Integer, 1, ++/*553623*/ OPC_CheckChild0Type, MVT::i64, ++/*553625*/ OPC_CheckChild1Integer, 1, ++/*553627*/ OPC_CheckChild1Type, MVT::i64, ++/*553629*/ OPC_CheckType, MVT::v2i64, ++/*553631*/ OPC_MoveParent, ++/*553632*/ OPC_CheckType, MVT::v2i64, ++/*553634*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*553636*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$a), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b), LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*553644*/ /*Scope*/ 63, /*->553708*/ ++/*553645*/ OPC_CheckChild0Same, 0, ++/*553647*/ OPC_MoveChild1, ++/*553648*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*553651*/ OPC_CheckChild0Integer, 1, ++/*553653*/ OPC_CheckChild0Type, MVT::i64, ++/*553655*/ OPC_CheckChild1Integer, 1, ++/*553657*/ OPC_CheckChild1Type, MVT::i64, ++/*553659*/ OPC_MoveParent, ++/*553660*/ OPC_MoveParent, ++/*553661*/ OPC_CheckChild1Same, 1, ++/*553663*/ OPC_MoveParent, ++/*553664*/ OPC_MoveChild1, ++/*553665*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*553668*/ OPC_CheckChild0Integer, 63, ++/*553670*/ OPC_CheckChild0Type, MVT::i64, ++/*553672*/ OPC_CheckChild1Integer, 63, ++/*553674*/ OPC_CheckChild1Type, MVT::i64, ++/*553676*/ OPC_CheckType, MVT::v2i64, ++/*553678*/ OPC_MoveParent, ++/*553679*/ OPC_MoveParent, ++/*553680*/ OPC_MoveParent, ++/*553681*/ OPC_MoveChild1, ++/*553682*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*553685*/ OPC_CheckChild0Integer, 1, ++/*553687*/ OPC_CheckChild0Type, MVT::i64, ++/*553689*/ OPC_CheckChild1Integer, 1, ++/*553691*/ OPC_CheckChild1Type, MVT::i64, ++/*553693*/ OPC_CheckType, MVT::v2i64, ++/*553695*/ OPC_MoveParent, ++/*553696*/ OPC_CheckType, MVT::v2i64, ++/*553698*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*553700*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$a), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*553708*/ /*Scope*/ 63, /*->553772*/ ++/*553709*/ OPC_CheckChild0Same, 1, ++/*553711*/ OPC_CheckChild1Same, 0, ++/*553713*/ OPC_MoveParent, ++/*553714*/ OPC_MoveChild1, ++/*553715*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*553718*/ OPC_CheckChild0Integer, 1, ++/*553720*/ OPC_CheckChild0Type, MVT::i64, ++/*553722*/ OPC_CheckChild1Integer, 1, ++/*553724*/ OPC_CheckChild1Type, MVT::i64, ++/*553726*/ OPC_MoveParent, ++/*553727*/ OPC_MoveParent, ++/*553728*/ OPC_MoveChild1, ++/*553729*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*553732*/ OPC_CheckChild0Integer, 63, ++/*553734*/ OPC_CheckChild0Type, MVT::i64, ++/*553736*/ OPC_CheckChild1Integer, 63, ++/*553738*/ OPC_CheckChild1Type, MVT::i64, ++/*553740*/ OPC_CheckType, MVT::v2i64, ++/*553742*/ OPC_MoveParent, ++/*553743*/ OPC_MoveParent, ++/*553744*/ OPC_MoveParent, ++/*553745*/ OPC_MoveChild1, ++/*553746*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*553749*/ OPC_CheckChild0Integer, 1, ++/*553751*/ OPC_CheckChild0Type, MVT::i64, ++/*553753*/ OPC_CheckChild1Integer, 1, ++/*553755*/ OPC_CheckChild1Type, MVT::i64, ++/*553757*/ OPC_CheckType, MVT::v2i64, ++/*553759*/ OPC_MoveParent, ++/*553760*/ OPC_CheckType, MVT::v2i64, ++/*553762*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*553764*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$a), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*553772*/ /*Scope*/ 63, /*->553836*/ ++/*553773*/ OPC_CheckChild0Same, 0, ++/*553775*/ OPC_CheckChild1Same, 1, ++/*553777*/ OPC_MoveParent, ++/*553778*/ OPC_MoveChild1, ++/*553779*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*553782*/ OPC_CheckChild0Integer, 1, ++/*553784*/ OPC_CheckChild0Type, MVT::i64, ++/*553786*/ OPC_CheckChild1Integer, 1, ++/*553788*/ OPC_CheckChild1Type, MVT::i64, ++/*553790*/ OPC_MoveParent, ++/*553791*/ OPC_MoveParent, ++/*553792*/ OPC_MoveChild1, ++/*553793*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*553796*/ OPC_CheckChild0Integer, 63, ++/*553798*/ OPC_CheckChild0Type, MVT::i64, ++/*553800*/ OPC_CheckChild1Integer, 63, ++/*553802*/ OPC_CheckChild1Type, MVT::i64, ++/*553804*/ OPC_CheckType, MVT::v2i64, ++/*553806*/ OPC_MoveParent, ++/*553807*/ OPC_MoveParent, ++/*553808*/ OPC_MoveParent, ++/*553809*/ OPC_MoveChild1, ++/*553810*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*553813*/ OPC_CheckChild0Integer, 1, ++/*553815*/ OPC_CheckChild0Type, MVT::i64, ++/*553817*/ OPC_CheckChild1Integer, 1, ++/*553819*/ OPC_CheckChild1Type, MVT::i64, ++/*553821*/ OPC_CheckType, MVT::v2i64, ++/*553823*/ OPC_MoveParent, ++/*553824*/ OPC_CheckType, MVT::v2i64, ++/*553826*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*553828*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$a), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*553836*/ 0, /*End of Scope*/ ++/*553837*/ /*Scope*/ 4|128,1/*132*/, /*->553971*/ ++/*553839*/ OPC_CheckChild0Same, 0, ++/*553841*/ OPC_MoveChild1, ++/*553842*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*553845*/ OPC_Scope, 61, /*->553908*/ // 2 children in Scope ++/*553847*/ OPC_MoveChild0, ++/*553848*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*553851*/ OPC_CheckChild0Integer, 1, ++/*553853*/ OPC_CheckChild0Type, MVT::i64, ++/*553855*/ OPC_CheckChild1Integer, 1, ++/*553857*/ OPC_CheckChild1Type, MVT::i64, ++/*553859*/ OPC_MoveParent, ++/*553860*/ OPC_CheckChild1Same, 1, ++/*553862*/ OPC_MoveParent, ++/*553863*/ OPC_MoveParent, ++/*553864*/ OPC_MoveChild1, ++/*553865*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*553868*/ OPC_CheckChild0Integer, 63, ++/*553870*/ OPC_CheckChild0Type, MVT::i64, ++/*553872*/ OPC_CheckChild1Integer, 63, ++/*553874*/ OPC_CheckChild1Type, MVT::i64, ++/*553876*/ OPC_CheckType, MVT::v2i64, ++/*553878*/ OPC_MoveParent, ++/*553879*/ OPC_MoveParent, ++/*553880*/ OPC_MoveParent, ++/*553881*/ OPC_MoveChild1, ++/*553882*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*553885*/ OPC_CheckChild0Integer, 1, ++/*553887*/ OPC_CheckChild0Type, MVT::i64, ++/*553889*/ OPC_CheckChild1Integer, 1, ++/*553891*/ OPC_CheckChild1Type, MVT::i64, ++/*553893*/ OPC_CheckType, MVT::v2i64, ++/*553895*/ OPC_MoveParent, ++/*553896*/ OPC_CheckType, MVT::v2i64, ++/*553898*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*553900*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$a), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*553908*/ /*Scope*/ 61, /*->553970*/ ++/*553909*/ OPC_CheckChild0Same, 1, ++/*553911*/ OPC_MoveChild1, ++/*553912*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*553915*/ OPC_CheckChild0Integer, 1, ++/*553917*/ OPC_CheckChild0Type, MVT::i64, ++/*553919*/ OPC_CheckChild1Integer, 1, ++/*553921*/ OPC_CheckChild1Type, MVT::i64, ++/*553923*/ OPC_MoveParent, ++/*553924*/ OPC_MoveParent, ++/*553925*/ OPC_MoveParent, ++/*553926*/ OPC_MoveChild1, ++/*553927*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*553930*/ OPC_CheckChild0Integer, 63, ++/*553932*/ OPC_CheckChild0Type, MVT::i64, ++/*553934*/ OPC_CheckChild1Integer, 63, ++/*553936*/ OPC_CheckChild1Type, MVT::i64, ++/*553938*/ OPC_CheckType, MVT::v2i64, ++/*553940*/ OPC_MoveParent, ++/*553941*/ OPC_MoveParent, ++/*553942*/ OPC_MoveParent, ++/*553943*/ OPC_MoveChild1, ++/*553944*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*553947*/ OPC_CheckChild0Integer, 1, ++/*553949*/ OPC_CheckChild0Type, MVT::i64, ++/*553951*/ OPC_CheckChild1Integer, 1, ++/*553953*/ OPC_CheckChild1Type, MVT::i64, ++/*553955*/ OPC_CheckType, MVT::v2i64, ++/*553957*/ OPC_MoveParent, ++/*553958*/ OPC_CheckType, MVT::v2i64, ++/*553960*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*553962*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$a), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*553970*/ 0, /*End of Scope*/ ++/*553971*/ /*Scope*/ 4|128,1/*132*/, /*->554105*/ ++/*553973*/ OPC_CheckChild0Same, 1, ++/*553975*/ OPC_MoveChild1, ++/*553976*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*553979*/ OPC_Scope, 61, /*->554042*/ // 2 children in Scope ++/*553981*/ OPC_MoveChild0, ++/*553982*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*553985*/ OPC_CheckChild0Integer, 1, ++/*553987*/ OPC_CheckChild0Type, MVT::i64, ++/*553989*/ OPC_CheckChild1Integer, 1, ++/*553991*/ OPC_CheckChild1Type, MVT::i64, ++/*553993*/ OPC_MoveParent, ++/*553994*/ OPC_CheckChild1Same, 0, ++/*553996*/ OPC_MoveParent, ++/*553997*/ OPC_MoveParent, ++/*553998*/ OPC_MoveChild1, ++/*553999*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*554002*/ OPC_CheckChild0Integer, 63, ++/*554004*/ OPC_CheckChild0Type, MVT::i64, ++/*554006*/ OPC_CheckChild1Integer, 63, ++/*554008*/ OPC_CheckChild1Type, MVT::i64, ++/*554010*/ OPC_CheckType, MVT::v2i64, ++/*554012*/ OPC_MoveParent, ++/*554013*/ OPC_MoveParent, ++/*554014*/ OPC_MoveParent, ++/*554015*/ OPC_MoveChild1, ++/*554016*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*554019*/ OPC_CheckChild0Integer, 1, ++/*554021*/ OPC_CheckChild0Type, MVT::i64, ++/*554023*/ OPC_CheckChild1Integer, 1, ++/*554025*/ OPC_CheckChild1Type, MVT::i64, ++/*554027*/ OPC_CheckType, MVT::v2i64, ++/*554029*/ OPC_MoveParent, ++/*554030*/ OPC_CheckType, MVT::v2i64, ++/*554032*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*554034*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$a), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*554042*/ /*Scope*/ 61, /*->554104*/ ++/*554043*/ OPC_CheckChild0Same, 0, ++/*554045*/ OPC_MoveChild1, ++/*554046*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*554049*/ OPC_CheckChild0Integer, 1, ++/*554051*/ OPC_CheckChild0Type, MVT::i64, ++/*554053*/ OPC_CheckChild1Integer, 1, ++/*554055*/ OPC_CheckChild1Type, MVT::i64, ++/*554057*/ OPC_MoveParent, ++/*554058*/ OPC_MoveParent, ++/*554059*/ OPC_MoveParent, ++/*554060*/ OPC_MoveChild1, ++/*554061*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*554064*/ OPC_CheckChild0Integer, 63, ++/*554066*/ OPC_CheckChild0Type, MVT::i64, ++/*554068*/ OPC_CheckChild1Integer, 63, ++/*554070*/ OPC_CheckChild1Type, MVT::i64, ++/*554072*/ OPC_CheckType, MVT::v2i64, ++/*554074*/ OPC_MoveParent, ++/*554075*/ OPC_MoveParent, ++/*554076*/ OPC_MoveParent, ++/*554077*/ OPC_MoveChild1, ++/*554078*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*554081*/ OPC_CheckChild0Integer, 1, ++/*554083*/ OPC_CheckChild0Type, MVT::i64, ++/*554085*/ OPC_CheckChild1Integer, 1, ++/*554087*/ OPC_CheckChild1Type, MVT::i64, ++/*554089*/ OPC_CheckType, MVT::v2i64, ++/*554091*/ OPC_MoveParent, ++/*554092*/ OPC_CheckType, MVT::v2i64, ++/*554094*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*554096*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$a), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*554104*/ 0, /*End of Scope*/ ++/*554105*/ /*Scope*/ 121, /*->554227*/ ++/*554106*/ OPC_MoveChild0, ++/*554107*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*554110*/ OPC_CheckChild0Integer, 1, ++/*554112*/ OPC_CheckChild0Type, MVT::i64, ++/*554114*/ OPC_CheckChild1Integer, 1, ++/*554116*/ OPC_CheckChild1Type, MVT::i64, ++/*554118*/ OPC_MoveParent, ++/*554119*/ OPC_MoveChild1, ++/*554120*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*554123*/ OPC_Scope, 50, /*->554175*/ // 2 children in Scope ++/*554125*/ OPC_CheckChild0Same, 1, ++/*554127*/ OPC_CheckChild1Same, 0, ++/*554129*/ OPC_MoveParent, ++/*554130*/ OPC_MoveParent, ++/*554131*/ OPC_MoveChild1, ++/*554132*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*554135*/ OPC_CheckChild0Integer, 63, ++/*554137*/ OPC_CheckChild0Type, MVT::i64, ++/*554139*/ OPC_CheckChild1Integer, 63, ++/*554141*/ OPC_CheckChild1Type, MVT::i64, ++/*554143*/ OPC_CheckType, MVT::v2i64, ++/*554145*/ OPC_MoveParent, ++/*554146*/ OPC_MoveParent, ++/*554147*/ OPC_MoveParent, ++/*554148*/ OPC_MoveChild1, ++/*554149*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*554152*/ OPC_CheckChild0Integer, 1, ++/*554154*/ OPC_CheckChild0Type, MVT::i64, ++/*554156*/ OPC_CheckChild1Integer, 1, ++/*554158*/ OPC_CheckChild1Type, MVT::i64, ++/*554160*/ OPC_CheckType, MVT::v2i64, ++/*554162*/ OPC_MoveParent, ++/*554163*/ OPC_CheckType, MVT::v2i64, ++/*554165*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*554167*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$a), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*554175*/ /*Scope*/ 50, /*->554226*/ ++/*554176*/ OPC_CheckChild0Same, 0, ++/*554178*/ OPC_CheckChild1Same, 1, ++/*554180*/ OPC_MoveParent, ++/*554181*/ OPC_MoveParent, ++/*554182*/ OPC_MoveChild1, ++/*554183*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*554186*/ OPC_CheckChild0Integer, 63, ++/*554188*/ OPC_CheckChild0Type, MVT::i64, ++/*554190*/ OPC_CheckChild1Integer, 63, ++/*554192*/ OPC_CheckChild1Type, MVT::i64, ++/*554194*/ OPC_CheckType, MVT::v2i64, ++/*554196*/ OPC_MoveParent, ++/*554197*/ OPC_MoveParent, ++/*554198*/ OPC_MoveParent, ++/*554199*/ OPC_MoveChild1, ++/*554200*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*554203*/ OPC_CheckChild0Integer, 1, ++/*554205*/ OPC_CheckChild0Type, MVT::i64, ++/*554207*/ OPC_CheckChild1Integer, 1, ++/*554209*/ OPC_CheckChild1Type, MVT::i64, ++/*554211*/ OPC_CheckType, MVT::v2i64, ++/*554213*/ OPC_MoveParent, ++/*554214*/ OPC_CheckType, MVT::v2i64, ++/*554216*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*554218*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$a), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*554226*/ 0, /*End of Scope*/ ++/*554227*/ 0, /*End of Scope*/ ++/*554228*/ /*Scope*/ 55|128,12/*1591*/, /*->555821*/ ++/*554230*/ OPC_RecordChild1, // #1 = $b ++/*554231*/ OPC_MoveParent, ++/*554232*/ OPC_MoveChild1, ++/*554233*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*554236*/ OPC_CheckChild0Integer, 1, ++/*554238*/ OPC_CheckChild0Type, MVT::i64, ++/*554240*/ OPC_CheckChild1Integer, 1, ++/*554242*/ OPC_CheckChild1Type, MVT::i64, ++/*554244*/ OPC_MoveParent, ++/*554245*/ OPC_MoveParent, ++/*554246*/ OPC_MoveChild1, ++/*554247*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*554250*/ OPC_MoveChild0, ++/*554251*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*554254*/ OPC_Scope, 6|128,3/*390*/, /*->554647*/ // 7 children in Scope ++/*554257*/ OPC_MoveChild0, ++/*554258*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*554261*/ OPC_Scope, 63, /*->554326*/ // 6 children in Scope ++/*554263*/ OPC_MoveChild0, ++/*554264*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*554267*/ OPC_CheckChild0Integer, 1, ++/*554269*/ OPC_CheckChild0Type, MVT::i64, ++/*554271*/ OPC_CheckChild1Integer, 1, ++/*554273*/ OPC_CheckChild1Type, MVT::i64, ++/*554275*/ OPC_MoveParent, ++/*554276*/ OPC_CheckChild1Same, 0, ++/*554278*/ OPC_MoveParent, ++/*554279*/ OPC_CheckChild1Same, 1, ++/*554281*/ OPC_MoveParent, ++/*554282*/ OPC_MoveChild1, ++/*554283*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*554286*/ OPC_CheckChild0Integer, 63, ++/*554288*/ OPC_CheckChild0Type, MVT::i64, ++/*554290*/ OPC_CheckChild1Integer, 63, ++/*554292*/ OPC_CheckChild1Type, MVT::i64, ++/*554294*/ OPC_CheckType, MVT::v2i64, ++/*554296*/ OPC_MoveParent, ++/*554297*/ OPC_MoveParent, ++/*554298*/ OPC_MoveParent, ++/*554299*/ OPC_MoveChild1, ++/*554300*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*554303*/ OPC_CheckChild0Integer, 1, ++/*554305*/ OPC_CheckChild0Type, MVT::i64, ++/*554307*/ OPC_CheckChild1Integer, 1, ++/*554309*/ OPC_CheckChild1Type, MVT::i64, ++/*554311*/ OPC_CheckType, MVT::v2i64, ++/*554313*/ OPC_MoveParent, ++/*554314*/ OPC_CheckType, MVT::v2i64, ++/*554316*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*554318*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a), LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*554326*/ /*Scope*/ 63, /*->554390*/ ++/*554327*/ OPC_CheckChild0Same, 0, ++/*554329*/ OPC_MoveChild1, ++/*554330*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*554333*/ OPC_CheckChild0Integer, 1, ++/*554335*/ OPC_CheckChild0Type, MVT::i64, ++/*554337*/ OPC_CheckChild1Integer, 1, ++/*554339*/ OPC_CheckChild1Type, MVT::i64, ++/*554341*/ OPC_MoveParent, ++/*554342*/ OPC_MoveParent, ++/*554343*/ OPC_CheckChild1Same, 1, ++/*554345*/ OPC_MoveParent, ++/*554346*/ OPC_MoveChild1, ++/*554347*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*554350*/ OPC_CheckChild0Integer, 63, ++/*554352*/ OPC_CheckChild0Type, MVT::i64, ++/*554354*/ OPC_CheckChild1Integer, 63, ++/*554356*/ OPC_CheckChild1Type, MVT::i64, ++/*554358*/ OPC_CheckType, MVT::v2i64, ++/*554360*/ OPC_MoveParent, ++/*554361*/ OPC_MoveParent, ++/*554362*/ OPC_MoveParent, ++/*554363*/ OPC_MoveChild1, ++/*554364*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*554367*/ OPC_CheckChild0Integer, 1, ++/*554369*/ OPC_CheckChild0Type, MVT::i64, ++/*554371*/ OPC_CheckChild1Integer, 1, ++/*554373*/ OPC_CheckChild1Type, MVT::i64, ++/*554375*/ OPC_CheckType, MVT::v2i64, ++/*554377*/ OPC_MoveParent, ++/*554378*/ OPC_CheckType, MVT::v2i64, ++/*554380*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*554382*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*554390*/ /*Scope*/ 63, /*->554454*/ ++/*554391*/ OPC_MoveChild0, ++/*554392*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*554395*/ OPC_CheckChild0Integer, 1, ++/*554397*/ OPC_CheckChild0Type, MVT::i64, ++/*554399*/ OPC_CheckChild1Integer, 1, ++/*554401*/ OPC_CheckChild1Type, MVT::i64, ++/*554403*/ OPC_MoveParent, ++/*554404*/ OPC_CheckChild1Same, 1, ++/*554406*/ OPC_MoveParent, ++/*554407*/ OPC_CheckChild1Same, 0, ++/*554409*/ OPC_MoveParent, ++/*554410*/ OPC_MoveChild1, ++/*554411*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*554414*/ OPC_CheckChild0Integer, 63, ++/*554416*/ OPC_CheckChild0Type, MVT::i64, ++/*554418*/ OPC_CheckChild1Integer, 63, ++/*554420*/ OPC_CheckChild1Type, MVT::i64, ++/*554422*/ OPC_CheckType, MVT::v2i64, ++/*554424*/ OPC_MoveParent, ++/*554425*/ OPC_MoveParent, ++/*554426*/ OPC_MoveParent, ++/*554427*/ OPC_MoveChild1, ++/*554428*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*554431*/ OPC_CheckChild0Integer, 1, ++/*554433*/ OPC_CheckChild0Type, MVT::i64, ++/*554435*/ OPC_CheckChild1Integer, 1, ++/*554437*/ OPC_CheckChild1Type, MVT::i64, ++/*554439*/ OPC_CheckType, MVT::v2i64, ++/*554441*/ OPC_MoveParent, ++/*554442*/ OPC_CheckType, MVT::v2i64, ++/*554444*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*554446*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b), LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*554454*/ /*Scope*/ 63, /*->554518*/ ++/*554455*/ OPC_CheckChild0Same, 1, ++/*554457*/ OPC_MoveChild1, ++/*554458*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*554461*/ OPC_CheckChild0Integer, 1, ++/*554463*/ OPC_CheckChild0Type, MVT::i64, ++/*554465*/ OPC_CheckChild1Integer, 1, ++/*554467*/ OPC_CheckChild1Type, MVT::i64, ++/*554469*/ OPC_MoveParent, ++/*554470*/ OPC_MoveParent, ++/*554471*/ OPC_CheckChild1Same, 0, ++/*554473*/ OPC_MoveParent, ++/*554474*/ OPC_MoveChild1, ++/*554475*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*554478*/ OPC_CheckChild0Integer, 63, ++/*554480*/ OPC_CheckChild0Type, MVT::i64, ++/*554482*/ OPC_CheckChild1Integer, 63, ++/*554484*/ OPC_CheckChild1Type, MVT::i64, ++/*554486*/ OPC_CheckType, MVT::v2i64, ++/*554488*/ OPC_MoveParent, ++/*554489*/ OPC_MoveParent, ++/*554490*/ OPC_MoveParent, ++/*554491*/ OPC_MoveChild1, ++/*554492*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*554495*/ OPC_CheckChild0Integer, 1, ++/*554497*/ OPC_CheckChild0Type, MVT::i64, ++/*554499*/ OPC_CheckChild1Integer, 1, ++/*554501*/ OPC_CheckChild1Type, MVT::i64, ++/*554503*/ OPC_CheckType, MVT::v2i64, ++/*554505*/ OPC_MoveParent, ++/*554506*/ OPC_CheckType, MVT::v2i64, ++/*554508*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*554510*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*554518*/ /*Scope*/ 63, /*->554582*/ ++/*554519*/ OPC_CheckChild0Same, 0, ++/*554521*/ OPC_CheckChild1Same, 1, ++/*554523*/ OPC_MoveParent, ++/*554524*/ OPC_MoveChild1, ++/*554525*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*554528*/ OPC_CheckChild0Integer, 1, ++/*554530*/ OPC_CheckChild0Type, MVT::i64, ++/*554532*/ OPC_CheckChild1Integer, 1, ++/*554534*/ OPC_CheckChild1Type, MVT::i64, ++/*554536*/ OPC_MoveParent, ++/*554537*/ OPC_MoveParent, ++/*554538*/ OPC_MoveChild1, ++/*554539*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*554542*/ OPC_CheckChild0Integer, 63, ++/*554544*/ OPC_CheckChild0Type, MVT::i64, ++/*554546*/ OPC_CheckChild1Integer, 63, ++/*554548*/ OPC_CheckChild1Type, MVT::i64, ++/*554550*/ OPC_CheckType, MVT::v2i64, ++/*554552*/ OPC_MoveParent, ++/*554553*/ OPC_MoveParent, ++/*554554*/ OPC_MoveParent, ++/*554555*/ OPC_MoveChild1, ++/*554556*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*554559*/ OPC_CheckChild0Integer, 1, ++/*554561*/ OPC_CheckChild0Type, MVT::i64, ++/*554563*/ OPC_CheckChild1Integer, 1, ++/*554565*/ OPC_CheckChild1Type, MVT::i64, ++/*554567*/ OPC_CheckType, MVT::v2i64, ++/*554569*/ OPC_MoveParent, ++/*554570*/ OPC_CheckType, MVT::v2i64, ++/*554572*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*554574*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*554582*/ /*Scope*/ 63, /*->554646*/ ++/*554583*/ OPC_CheckChild0Same, 1, ++/*554585*/ OPC_CheckChild1Same, 0, ++/*554587*/ OPC_MoveParent, ++/*554588*/ OPC_MoveChild1, ++/*554589*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*554592*/ OPC_CheckChild0Integer, 1, ++/*554594*/ OPC_CheckChild0Type, MVT::i64, ++/*554596*/ OPC_CheckChild1Integer, 1, ++/*554598*/ OPC_CheckChild1Type, MVT::i64, ++/*554600*/ OPC_MoveParent, ++/*554601*/ OPC_MoveParent, ++/*554602*/ OPC_MoveChild1, ++/*554603*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*554606*/ OPC_CheckChild0Integer, 63, ++/*554608*/ OPC_CheckChild0Type, MVT::i64, ++/*554610*/ OPC_CheckChild1Integer, 63, ++/*554612*/ OPC_CheckChild1Type, MVT::i64, ++/*554614*/ OPC_CheckType, MVT::v2i64, ++/*554616*/ OPC_MoveParent, ++/*554617*/ OPC_MoveParent, ++/*554618*/ OPC_MoveParent, ++/*554619*/ OPC_MoveChild1, ++/*554620*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*554623*/ OPC_CheckChild0Integer, 1, ++/*554625*/ OPC_CheckChild0Type, MVT::i64, ++/*554627*/ OPC_CheckChild1Integer, 1, ++/*554629*/ OPC_CheckChild1Type, MVT::i64, ++/*554631*/ OPC_CheckType, MVT::v2i64, ++/*554633*/ OPC_MoveParent, ++/*554634*/ OPC_CheckType, MVT::v2i64, ++/*554636*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*554638*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*554646*/ 0, /*End of Scope*/ ++/*554647*/ /*Scope*/ 4|128,1/*132*/, /*->554781*/ ++/*554649*/ OPC_CheckChild0Same, 1, ++/*554651*/ OPC_MoveChild1, ++/*554652*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*554655*/ OPC_Scope, 61, /*->554718*/ // 2 children in Scope ++/*554657*/ OPC_MoveChild0, ++/*554658*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*554661*/ OPC_CheckChild0Integer, 1, ++/*554663*/ OPC_CheckChild0Type, MVT::i64, ++/*554665*/ OPC_CheckChild1Integer, 1, ++/*554667*/ OPC_CheckChild1Type, MVT::i64, ++/*554669*/ OPC_MoveParent, ++/*554670*/ OPC_CheckChild1Same, 0, ++/*554672*/ OPC_MoveParent, ++/*554673*/ OPC_MoveParent, ++/*554674*/ OPC_MoveChild1, ++/*554675*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*554678*/ OPC_CheckChild0Integer, 63, ++/*554680*/ OPC_CheckChild0Type, MVT::i64, ++/*554682*/ OPC_CheckChild1Integer, 63, ++/*554684*/ OPC_CheckChild1Type, MVT::i64, ++/*554686*/ OPC_CheckType, MVT::v2i64, ++/*554688*/ OPC_MoveParent, ++/*554689*/ OPC_MoveParent, ++/*554690*/ OPC_MoveParent, ++/*554691*/ OPC_MoveChild1, ++/*554692*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*554695*/ OPC_CheckChild0Integer, 1, ++/*554697*/ OPC_CheckChild0Type, MVT::i64, ++/*554699*/ OPC_CheckChild1Integer, 1, ++/*554701*/ OPC_CheckChild1Type, MVT::i64, ++/*554703*/ OPC_CheckType, MVT::v2i64, ++/*554705*/ OPC_MoveParent, ++/*554706*/ OPC_CheckType, MVT::v2i64, ++/*554708*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*554710*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*554718*/ /*Scope*/ 61, /*->554780*/ ++/*554719*/ OPC_CheckChild0Same, 0, ++/*554721*/ OPC_MoveChild1, ++/*554722*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*554725*/ OPC_CheckChild0Integer, 1, ++/*554727*/ OPC_CheckChild0Type, MVT::i64, ++/*554729*/ OPC_CheckChild1Integer, 1, ++/*554731*/ OPC_CheckChild1Type, MVT::i64, ++/*554733*/ OPC_MoveParent, ++/*554734*/ OPC_MoveParent, ++/*554735*/ OPC_MoveParent, ++/*554736*/ OPC_MoveChild1, ++/*554737*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*554740*/ OPC_CheckChild0Integer, 63, ++/*554742*/ OPC_CheckChild0Type, MVT::i64, ++/*554744*/ OPC_CheckChild1Integer, 63, ++/*554746*/ OPC_CheckChild1Type, MVT::i64, ++/*554748*/ OPC_CheckType, MVT::v2i64, ++/*554750*/ OPC_MoveParent, ++/*554751*/ OPC_MoveParent, ++/*554752*/ OPC_MoveParent, ++/*554753*/ OPC_MoveChild1, ++/*554754*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*554757*/ OPC_CheckChild0Integer, 1, ++/*554759*/ OPC_CheckChild0Type, MVT::i64, ++/*554761*/ OPC_CheckChild1Integer, 1, ++/*554763*/ OPC_CheckChild1Type, MVT::i64, ++/*554765*/ OPC_CheckType, MVT::v2i64, ++/*554767*/ OPC_MoveParent, ++/*554768*/ OPC_CheckType, MVT::v2i64, ++/*554770*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*554772*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*554780*/ 0, /*End of Scope*/ ++/*554781*/ /*Scope*/ 4|128,1/*132*/, /*->554915*/ ++/*554783*/ OPC_CheckChild0Same, 0, ++/*554785*/ OPC_MoveChild1, ++/*554786*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*554789*/ OPC_Scope, 61, /*->554852*/ // 2 children in Scope ++/*554791*/ OPC_MoveChild0, ++/*554792*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*554795*/ OPC_CheckChild0Integer, 1, ++/*554797*/ OPC_CheckChild0Type, MVT::i64, ++/*554799*/ OPC_CheckChild1Integer, 1, ++/*554801*/ OPC_CheckChild1Type, MVT::i64, ++/*554803*/ OPC_MoveParent, ++/*554804*/ OPC_CheckChild1Same, 1, ++/*554806*/ OPC_MoveParent, ++/*554807*/ OPC_MoveParent, ++/*554808*/ OPC_MoveChild1, ++/*554809*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*554812*/ OPC_CheckChild0Integer, 63, ++/*554814*/ OPC_CheckChild0Type, MVT::i64, ++/*554816*/ OPC_CheckChild1Integer, 63, ++/*554818*/ OPC_CheckChild1Type, MVT::i64, ++/*554820*/ OPC_CheckType, MVT::v2i64, ++/*554822*/ OPC_MoveParent, ++/*554823*/ OPC_MoveParent, ++/*554824*/ OPC_MoveParent, ++/*554825*/ OPC_MoveChild1, ++/*554826*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*554829*/ OPC_CheckChild0Integer, 1, ++/*554831*/ OPC_CheckChild0Type, MVT::i64, ++/*554833*/ OPC_CheckChild1Integer, 1, ++/*554835*/ OPC_CheckChild1Type, MVT::i64, ++/*554837*/ OPC_CheckType, MVT::v2i64, ++/*554839*/ OPC_MoveParent, ++/*554840*/ OPC_CheckType, MVT::v2i64, ++/*554842*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*554844*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*554852*/ /*Scope*/ 61, /*->554914*/ ++/*554853*/ OPC_CheckChild0Same, 1, ++/*554855*/ OPC_MoveChild1, ++/*554856*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*554859*/ OPC_CheckChild0Integer, 1, ++/*554861*/ OPC_CheckChild0Type, MVT::i64, ++/*554863*/ OPC_CheckChild1Integer, 1, ++/*554865*/ OPC_CheckChild1Type, MVT::i64, ++/*554867*/ OPC_MoveParent, ++/*554868*/ OPC_MoveParent, ++/*554869*/ OPC_MoveParent, ++/*554870*/ OPC_MoveChild1, ++/*554871*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*554874*/ OPC_CheckChild0Integer, 63, ++/*554876*/ OPC_CheckChild0Type, MVT::i64, ++/*554878*/ OPC_CheckChild1Integer, 63, ++/*554880*/ OPC_CheckChild1Type, MVT::i64, ++/*554882*/ OPC_CheckType, MVT::v2i64, ++/*554884*/ OPC_MoveParent, ++/*554885*/ OPC_MoveParent, ++/*554886*/ OPC_MoveParent, ++/*554887*/ OPC_MoveChild1, ++/*554888*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*554891*/ OPC_CheckChild0Integer, 1, ++/*554893*/ OPC_CheckChild0Type, MVT::i64, ++/*554895*/ OPC_CheckChild1Integer, 1, ++/*554897*/ OPC_CheckChild1Type, MVT::i64, ++/*554899*/ OPC_CheckType, MVT::v2i64, ++/*554901*/ OPC_MoveParent, ++/*554902*/ OPC_CheckType, MVT::v2i64, ++/*554904*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*554906*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*554914*/ 0, /*End of Scope*/ ++/*554915*/ /*Scope*/ 1|128,4/*513*/, /*->555430*/ ++/*554917*/ OPC_MoveChild0, ++/*554918*/ OPC_SwitchOpcode /*2 cases */, 117, TARGET_VAL(ISD::BUILD_VECTOR),// ->555039 ++/*554922*/ OPC_CheckChild0Integer, 1, ++/*554924*/ OPC_CheckChild0Type, MVT::i64, ++/*554926*/ OPC_CheckChild1Integer, 1, ++/*554928*/ OPC_CheckChild1Type, MVT::i64, ++/*554930*/ OPC_MoveParent, ++/*554931*/ OPC_MoveChild1, ++/*554932*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*554935*/ OPC_Scope, 50, /*->554987*/ // 2 children in Scope ++/*554937*/ OPC_CheckChild0Same, 0, ++/*554939*/ OPC_CheckChild1Same, 1, ++/*554941*/ OPC_MoveParent, ++/*554942*/ OPC_MoveParent, ++/*554943*/ OPC_MoveChild1, ++/*554944*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*554947*/ OPC_CheckChild0Integer, 63, ++/*554949*/ OPC_CheckChild0Type, MVT::i64, ++/*554951*/ OPC_CheckChild1Integer, 63, ++/*554953*/ OPC_CheckChild1Type, MVT::i64, ++/*554955*/ OPC_CheckType, MVT::v2i64, ++/*554957*/ OPC_MoveParent, ++/*554958*/ OPC_MoveParent, ++/*554959*/ OPC_MoveParent, ++/*554960*/ OPC_MoveChild1, ++/*554961*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*554964*/ OPC_CheckChild0Integer, 1, ++/*554966*/ OPC_CheckChild0Type, MVT::i64, ++/*554968*/ OPC_CheckChild1Integer, 1, ++/*554970*/ OPC_CheckChild1Type, MVT::i64, ++/*554972*/ OPC_CheckType, MVT::v2i64, ++/*554974*/ OPC_MoveParent, ++/*554975*/ OPC_CheckType, MVT::v2i64, ++/*554977*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*554979*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*554987*/ /*Scope*/ 50, /*->555038*/ ++/*554988*/ OPC_CheckChild0Same, 1, ++/*554990*/ OPC_CheckChild1Same, 0, ++/*554992*/ OPC_MoveParent, ++/*554993*/ OPC_MoveParent, ++/*554994*/ OPC_MoveChild1, ++/*554995*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*554998*/ OPC_CheckChild0Integer, 63, ++/*555000*/ OPC_CheckChild0Type, MVT::i64, ++/*555002*/ OPC_CheckChild1Integer, 63, ++/*555004*/ OPC_CheckChild1Type, MVT::i64, ++/*555006*/ OPC_CheckType, MVT::v2i64, ++/*555008*/ OPC_MoveParent, ++/*555009*/ OPC_MoveParent, ++/*555010*/ OPC_MoveParent, ++/*555011*/ OPC_MoveChild1, ++/*555012*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*555015*/ OPC_CheckChild0Integer, 1, ++/*555017*/ OPC_CheckChild0Type, MVT::i64, ++/*555019*/ OPC_CheckChild1Integer, 1, ++/*555021*/ OPC_CheckChild1Type, MVT::i64, ++/*555023*/ OPC_CheckType, MVT::v2i64, ++/*555025*/ OPC_MoveParent, ++/*555026*/ OPC_CheckType, MVT::v2i64, ++/*555028*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*555030*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*555038*/ 0, /*End of Scope*/ ++/*555039*/ /*SwitchOpcode*/ 2|128,3/*386*/, TARGET_VAL(ISD::ADD),// ->555429 ++/*555043*/ OPC_Scope, 63, /*->555108*/ // 6 children in Scope ++/*555045*/ OPC_MoveChild0, ++/*555046*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*555049*/ OPC_CheckChild0Integer, 1, ++/*555051*/ OPC_CheckChild0Type, MVT::i64, ++/*555053*/ OPC_CheckChild1Integer, 1, ++/*555055*/ OPC_CheckChild1Type, MVT::i64, ++/*555057*/ OPC_MoveParent, ++/*555058*/ OPC_CheckChild1Same, 1, ++/*555060*/ OPC_MoveParent, ++/*555061*/ OPC_CheckChild1Same, 0, ++/*555063*/ OPC_MoveParent, ++/*555064*/ OPC_MoveChild1, ++/*555065*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*555068*/ OPC_CheckChild0Integer, 63, ++/*555070*/ OPC_CheckChild0Type, MVT::i64, ++/*555072*/ OPC_CheckChild1Integer, 63, ++/*555074*/ OPC_CheckChild1Type, MVT::i64, ++/*555076*/ OPC_CheckType, MVT::v2i64, ++/*555078*/ OPC_MoveParent, ++/*555079*/ OPC_MoveParent, ++/*555080*/ OPC_MoveParent, ++/*555081*/ OPC_MoveChild1, ++/*555082*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*555085*/ OPC_CheckChild0Integer, 1, ++/*555087*/ OPC_CheckChild0Type, MVT::i64, ++/*555089*/ OPC_CheckChild1Integer, 1, ++/*555091*/ OPC_CheckChild1Type, MVT::i64, ++/*555093*/ OPC_CheckType, MVT::v2i64, ++/*555095*/ OPC_MoveParent, ++/*555096*/ OPC_CheckType, MVT::v2i64, ++/*555098*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*555100*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a), LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*555108*/ /*Scope*/ 63, /*->555172*/ ++/*555109*/ OPC_CheckChild0Same, 1, ++/*555111*/ OPC_MoveChild1, ++/*555112*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*555115*/ OPC_CheckChild0Integer, 1, ++/*555117*/ OPC_CheckChild0Type, MVT::i64, ++/*555119*/ OPC_CheckChild1Integer, 1, ++/*555121*/ OPC_CheckChild1Type, MVT::i64, ++/*555123*/ OPC_MoveParent, ++/*555124*/ OPC_MoveParent, ++/*555125*/ OPC_CheckChild1Same, 0, ++/*555127*/ OPC_MoveParent, ++/*555128*/ OPC_MoveChild1, ++/*555129*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*555132*/ OPC_CheckChild0Integer, 63, ++/*555134*/ OPC_CheckChild0Type, MVT::i64, ++/*555136*/ OPC_CheckChild1Integer, 63, ++/*555138*/ OPC_CheckChild1Type, MVT::i64, ++/*555140*/ OPC_CheckType, MVT::v2i64, ++/*555142*/ OPC_MoveParent, ++/*555143*/ OPC_MoveParent, ++/*555144*/ OPC_MoveParent, ++/*555145*/ OPC_MoveChild1, ++/*555146*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*555149*/ OPC_CheckChild0Integer, 1, ++/*555151*/ OPC_CheckChild0Type, MVT::i64, ++/*555153*/ OPC_CheckChild1Integer, 1, ++/*555155*/ OPC_CheckChild1Type, MVT::i64, ++/*555157*/ OPC_CheckType, MVT::v2i64, ++/*555159*/ OPC_MoveParent, ++/*555160*/ OPC_CheckType, MVT::v2i64, ++/*555162*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*555164*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*555172*/ /*Scope*/ 63, /*->555236*/ ++/*555173*/ OPC_MoveChild0, ++/*555174*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*555177*/ OPC_CheckChild0Integer, 1, ++/*555179*/ OPC_CheckChild0Type, MVT::i64, ++/*555181*/ OPC_CheckChild1Integer, 1, ++/*555183*/ OPC_CheckChild1Type, MVT::i64, ++/*555185*/ OPC_MoveParent, ++/*555186*/ OPC_CheckChild1Same, 0, ++/*555188*/ OPC_MoveParent, ++/*555189*/ OPC_CheckChild1Same, 1, ++/*555191*/ OPC_MoveParent, ++/*555192*/ OPC_MoveChild1, ++/*555193*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*555196*/ OPC_CheckChild0Integer, 63, ++/*555198*/ OPC_CheckChild0Type, MVT::i64, ++/*555200*/ OPC_CheckChild1Integer, 63, ++/*555202*/ OPC_CheckChild1Type, MVT::i64, ++/*555204*/ OPC_CheckType, MVT::v2i64, ++/*555206*/ OPC_MoveParent, ++/*555207*/ OPC_MoveParent, ++/*555208*/ OPC_MoveParent, ++/*555209*/ OPC_MoveChild1, ++/*555210*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*555213*/ OPC_CheckChild0Integer, 1, ++/*555215*/ OPC_CheckChild0Type, MVT::i64, ++/*555217*/ OPC_CheckChild1Integer, 1, ++/*555219*/ OPC_CheckChild1Type, MVT::i64, ++/*555221*/ OPC_CheckType, MVT::v2i64, ++/*555223*/ OPC_MoveParent, ++/*555224*/ OPC_CheckType, MVT::v2i64, ++/*555226*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*555228*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b), LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*555236*/ /*Scope*/ 63, /*->555300*/ ++/*555237*/ OPC_CheckChild0Same, 0, ++/*555239*/ OPC_MoveChild1, ++/*555240*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*555243*/ OPC_CheckChild0Integer, 1, ++/*555245*/ OPC_CheckChild0Type, MVT::i64, ++/*555247*/ OPC_CheckChild1Integer, 1, ++/*555249*/ OPC_CheckChild1Type, MVT::i64, ++/*555251*/ OPC_MoveParent, ++/*555252*/ OPC_MoveParent, ++/*555253*/ OPC_CheckChild1Same, 1, ++/*555255*/ OPC_MoveParent, ++/*555256*/ OPC_MoveChild1, ++/*555257*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*555260*/ OPC_CheckChild0Integer, 63, ++/*555262*/ OPC_CheckChild0Type, MVT::i64, ++/*555264*/ OPC_CheckChild1Integer, 63, ++/*555266*/ OPC_CheckChild1Type, MVT::i64, ++/*555268*/ OPC_CheckType, MVT::v2i64, ++/*555270*/ OPC_MoveParent, ++/*555271*/ OPC_MoveParent, ++/*555272*/ OPC_MoveParent, ++/*555273*/ OPC_MoveChild1, ++/*555274*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*555277*/ OPC_CheckChild0Integer, 1, ++/*555279*/ OPC_CheckChild0Type, MVT::i64, ++/*555281*/ OPC_CheckChild1Integer, 1, ++/*555283*/ OPC_CheckChild1Type, MVT::i64, ++/*555285*/ OPC_CheckType, MVT::v2i64, ++/*555287*/ OPC_MoveParent, ++/*555288*/ OPC_CheckType, MVT::v2i64, ++/*555290*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*555292*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*555300*/ /*Scope*/ 63, /*->555364*/ ++/*555301*/ OPC_CheckChild0Same, 1, ++/*555303*/ OPC_CheckChild1Same, 0, ++/*555305*/ OPC_MoveParent, ++/*555306*/ OPC_MoveChild1, ++/*555307*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*555310*/ OPC_CheckChild0Integer, 1, ++/*555312*/ OPC_CheckChild0Type, MVT::i64, ++/*555314*/ OPC_CheckChild1Integer, 1, ++/*555316*/ OPC_CheckChild1Type, MVT::i64, ++/*555318*/ OPC_MoveParent, ++/*555319*/ OPC_MoveParent, ++/*555320*/ OPC_MoveChild1, ++/*555321*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*555324*/ OPC_CheckChild0Integer, 63, ++/*555326*/ OPC_CheckChild0Type, MVT::i64, ++/*555328*/ OPC_CheckChild1Integer, 63, ++/*555330*/ OPC_CheckChild1Type, MVT::i64, ++/*555332*/ OPC_CheckType, MVT::v2i64, ++/*555334*/ OPC_MoveParent, ++/*555335*/ OPC_MoveParent, ++/*555336*/ OPC_MoveParent, ++/*555337*/ OPC_MoveChild1, ++/*555338*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*555341*/ OPC_CheckChild0Integer, 1, ++/*555343*/ OPC_CheckChild0Type, MVT::i64, ++/*555345*/ OPC_CheckChild1Integer, 1, ++/*555347*/ OPC_CheckChild1Type, MVT::i64, ++/*555349*/ OPC_CheckType, MVT::v2i64, ++/*555351*/ OPC_MoveParent, ++/*555352*/ OPC_CheckType, MVT::v2i64, ++/*555354*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*555356*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*555364*/ /*Scope*/ 63, /*->555428*/ ++/*555365*/ OPC_CheckChild0Same, 0, ++/*555367*/ OPC_CheckChild1Same, 1, ++/*555369*/ OPC_MoveParent, ++/*555370*/ OPC_MoveChild1, ++/*555371*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*555374*/ OPC_CheckChild0Integer, 1, ++/*555376*/ OPC_CheckChild0Type, MVT::i64, ++/*555378*/ OPC_CheckChild1Integer, 1, ++/*555380*/ OPC_CheckChild1Type, MVT::i64, ++/*555382*/ OPC_MoveParent, ++/*555383*/ OPC_MoveParent, ++/*555384*/ OPC_MoveChild1, ++/*555385*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*555388*/ OPC_CheckChild0Integer, 63, ++/*555390*/ OPC_CheckChild0Type, MVT::i64, ++/*555392*/ OPC_CheckChild1Integer, 63, ++/*555394*/ OPC_CheckChild1Type, MVT::i64, ++/*555396*/ OPC_CheckType, MVT::v2i64, ++/*555398*/ OPC_MoveParent, ++/*555399*/ OPC_MoveParent, ++/*555400*/ OPC_MoveParent, ++/*555401*/ OPC_MoveChild1, ++/*555402*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*555405*/ OPC_CheckChild0Integer, 1, ++/*555407*/ OPC_CheckChild0Type, MVT::i64, ++/*555409*/ OPC_CheckChild1Integer, 1, ++/*555411*/ OPC_CheckChild1Type, MVT::i64, ++/*555413*/ OPC_CheckType, MVT::v2i64, ++/*555415*/ OPC_MoveParent, ++/*555416*/ OPC_CheckType, MVT::v2i64, ++/*555418*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*555420*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*555428*/ 0, /*End of Scope*/ ++/*555429*/ 0, // EndSwitchOpcode ++/*555430*/ /*Scope*/ 4|128,1/*132*/, /*->555564*/ ++/*555432*/ OPC_CheckChild0Same, 0, ++/*555434*/ OPC_MoveChild1, ++/*555435*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*555438*/ OPC_Scope, 61, /*->555501*/ // 2 children in Scope ++/*555440*/ OPC_MoveChild0, ++/*555441*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*555444*/ OPC_CheckChild0Integer, 1, ++/*555446*/ OPC_CheckChild0Type, MVT::i64, ++/*555448*/ OPC_CheckChild1Integer, 1, ++/*555450*/ OPC_CheckChild1Type, MVT::i64, ++/*555452*/ OPC_MoveParent, ++/*555453*/ OPC_CheckChild1Same, 1, ++/*555455*/ OPC_MoveParent, ++/*555456*/ OPC_MoveParent, ++/*555457*/ OPC_MoveChild1, ++/*555458*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*555461*/ OPC_CheckChild0Integer, 63, ++/*555463*/ OPC_CheckChild0Type, MVT::i64, ++/*555465*/ OPC_CheckChild1Integer, 63, ++/*555467*/ OPC_CheckChild1Type, MVT::i64, ++/*555469*/ OPC_CheckType, MVT::v2i64, ++/*555471*/ OPC_MoveParent, ++/*555472*/ OPC_MoveParent, ++/*555473*/ OPC_MoveParent, ++/*555474*/ OPC_MoveChild1, ++/*555475*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*555478*/ OPC_CheckChild0Integer, 1, ++/*555480*/ OPC_CheckChild0Type, MVT::i64, ++/*555482*/ OPC_CheckChild1Integer, 1, ++/*555484*/ OPC_CheckChild1Type, MVT::i64, ++/*555486*/ OPC_CheckType, MVT::v2i64, ++/*555488*/ OPC_MoveParent, ++/*555489*/ OPC_CheckType, MVT::v2i64, ++/*555491*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*555493*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*555501*/ /*Scope*/ 61, /*->555563*/ ++/*555502*/ OPC_CheckChild0Same, 1, ++/*555504*/ OPC_MoveChild1, ++/*555505*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*555508*/ OPC_CheckChild0Integer, 1, ++/*555510*/ OPC_CheckChild0Type, MVT::i64, ++/*555512*/ OPC_CheckChild1Integer, 1, ++/*555514*/ OPC_CheckChild1Type, MVT::i64, ++/*555516*/ OPC_MoveParent, ++/*555517*/ OPC_MoveParent, ++/*555518*/ OPC_MoveParent, ++/*555519*/ OPC_MoveChild1, ++/*555520*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*555523*/ OPC_CheckChild0Integer, 63, ++/*555525*/ OPC_CheckChild0Type, MVT::i64, ++/*555527*/ OPC_CheckChild1Integer, 63, ++/*555529*/ OPC_CheckChild1Type, MVT::i64, ++/*555531*/ OPC_CheckType, MVT::v2i64, ++/*555533*/ OPC_MoveParent, ++/*555534*/ OPC_MoveParent, ++/*555535*/ OPC_MoveParent, ++/*555536*/ OPC_MoveChild1, ++/*555537*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*555540*/ OPC_CheckChild0Integer, 1, ++/*555542*/ OPC_CheckChild0Type, MVT::i64, ++/*555544*/ OPC_CheckChild1Integer, 1, ++/*555546*/ OPC_CheckChild1Type, MVT::i64, ++/*555548*/ OPC_CheckType, MVT::v2i64, ++/*555550*/ OPC_MoveParent, ++/*555551*/ OPC_CheckType, MVT::v2i64, ++/*555553*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*555555*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*555563*/ 0, /*End of Scope*/ ++/*555564*/ /*Scope*/ 4|128,1/*132*/, /*->555698*/ ++/*555566*/ OPC_CheckChild0Same, 1, ++/*555568*/ OPC_MoveChild1, ++/*555569*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*555572*/ OPC_Scope, 61, /*->555635*/ // 2 children in Scope ++/*555574*/ OPC_MoveChild0, ++/*555575*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*555578*/ OPC_CheckChild0Integer, 1, ++/*555580*/ OPC_CheckChild0Type, MVT::i64, ++/*555582*/ OPC_CheckChild1Integer, 1, ++/*555584*/ OPC_CheckChild1Type, MVT::i64, ++/*555586*/ OPC_MoveParent, ++/*555587*/ OPC_CheckChild1Same, 0, ++/*555589*/ OPC_MoveParent, ++/*555590*/ OPC_MoveParent, ++/*555591*/ OPC_MoveChild1, ++/*555592*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*555595*/ OPC_CheckChild0Integer, 63, ++/*555597*/ OPC_CheckChild0Type, MVT::i64, ++/*555599*/ OPC_CheckChild1Integer, 63, ++/*555601*/ OPC_CheckChild1Type, MVT::i64, ++/*555603*/ OPC_CheckType, MVT::v2i64, ++/*555605*/ OPC_MoveParent, ++/*555606*/ OPC_MoveParent, ++/*555607*/ OPC_MoveParent, ++/*555608*/ OPC_MoveChild1, ++/*555609*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*555612*/ OPC_CheckChild0Integer, 1, ++/*555614*/ OPC_CheckChild0Type, MVT::i64, ++/*555616*/ OPC_CheckChild1Integer, 1, ++/*555618*/ OPC_CheckChild1Type, MVT::i64, ++/*555620*/ OPC_CheckType, MVT::v2i64, ++/*555622*/ OPC_MoveParent, ++/*555623*/ OPC_CheckType, MVT::v2i64, ++/*555625*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*555627*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*555635*/ /*Scope*/ 61, /*->555697*/ ++/*555636*/ OPC_CheckChild0Same, 0, ++/*555638*/ OPC_MoveChild1, ++/*555639*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*555642*/ OPC_CheckChild0Integer, 1, ++/*555644*/ OPC_CheckChild0Type, MVT::i64, ++/*555646*/ OPC_CheckChild1Integer, 1, ++/*555648*/ OPC_CheckChild1Type, MVT::i64, ++/*555650*/ OPC_MoveParent, ++/*555651*/ OPC_MoveParent, ++/*555652*/ OPC_MoveParent, ++/*555653*/ OPC_MoveChild1, ++/*555654*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*555657*/ OPC_CheckChild0Integer, 63, ++/*555659*/ OPC_CheckChild0Type, MVT::i64, ++/*555661*/ OPC_CheckChild1Integer, 63, ++/*555663*/ OPC_CheckChild1Type, MVT::i64, ++/*555665*/ OPC_CheckType, MVT::v2i64, ++/*555667*/ OPC_MoveParent, ++/*555668*/ OPC_MoveParent, ++/*555669*/ OPC_MoveParent, ++/*555670*/ OPC_MoveChild1, ++/*555671*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*555674*/ OPC_CheckChild0Integer, 1, ++/*555676*/ OPC_CheckChild0Type, MVT::i64, ++/*555678*/ OPC_CheckChild1Integer, 1, ++/*555680*/ OPC_CheckChild1Type, MVT::i64, ++/*555682*/ OPC_CheckType, MVT::v2i64, ++/*555684*/ OPC_MoveParent, ++/*555685*/ OPC_CheckType, MVT::v2i64, ++/*555687*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*555689*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*555697*/ 0, /*End of Scope*/ ++/*555698*/ /*Scope*/ 121, /*->555820*/ ++/*555699*/ OPC_MoveChild0, ++/*555700*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*555703*/ OPC_CheckChild0Integer, 1, ++/*555705*/ OPC_CheckChild0Type, MVT::i64, ++/*555707*/ OPC_CheckChild1Integer, 1, ++/*555709*/ OPC_CheckChild1Type, MVT::i64, ++/*555711*/ OPC_MoveParent, ++/*555712*/ OPC_MoveChild1, ++/*555713*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*555716*/ OPC_Scope, 50, /*->555768*/ // 2 children in Scope ++/*555718*/ OPC_CheckChild0Same, 1, ++/*555720*/ OPC_CheckChild1Same, 0, ++/*555722*/ OPC_MoveParent, ++/*555723*/ OPC_MoveParent, ++/*555724*/ OPC_MoveChild1, ++/*555725*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*555728*/ OPC_CheckChild0Integer, 63, ++/*555730*/ OPC_CheckChild0Type, MVT::i64, ++/*555732*/ OPC_CheckChild1Integer, 63, ++/*555734*/ OPC_CheckChild1Type, MVT::i64, ++/*555736*/ OPC_CheckType, MVT::v2i64, ++/*555738*/ OPC_MoveParent, ++/*555739*/ OPC_MoveParent, ++/*555740*/ OPC_MoveParent, ++/*555741*/ OPC_MoveChild1, ++/*555742*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*555745*/ OPC_CheckChild0Integer, 1, ++/*555747*/ OPC_CheckChild0Type, MVT::i64, ++/*555749*/ OPC_CheckChild1Integer, 1, ++/*555751*/ OPC_CheckChild1Type, MVT::i64, ++/*555753*/ OPC_CheckType, MVT::v2i64, ++/*555755*/ OPC_MoveParent, ++/*555756*/ OPC_CheckType, MVT::v2i64, ++/*555758*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*555760*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*555768*/ /*Scope*/ 50, /*->555819*/ ++/*555769*/ OPC_CheckChild0Same, 0, ++/*555771*/ OPC_CheckChild1Same, 1, ++/*555773*/ OPC_MoveParent, ++/*555774*/ OPC_MoveParent, ++/*555775*/ OPC_MoveChild1, ++/*555776*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*555779*/ OPC_CheckChild0Integer, 63, ++/*555781*/ OPC_CheckChild0Type, MVT::i64, ++/*555783*/ OPC_CheckChild1Integer, 63, ++/*555785*/ OPC_CheckChild1Type, MVT::i64, ++/*555787*/ OPC_CheckType, MVT::v2i64, ++/*555789*/ OPC_MoveParent, ++/*555790*/ OPC_MoveParent, ++/*555791*/ OPC_MoveParent, ++/*555792*/ OPC_MoveChild1, ++/*555793*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*555796*/ OPC_CheckChild0Integer, 1, ++/*555798*/ OPC_CheckChild0Type, MVT::i64, ++/*555800*/ OPC_CheckChild1Integer, 1, ++/*555802*/ OPC_CheckChild1Type, MVT::i64, ++/*555804*/ OPC_CheckType, MVT::v2i64, ++/*555806*/ OPC_MoveParent, ++/*555807*/ OPC_CheckType, MVT::v2i64, ++/*555809*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*555811*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*555819*/ 0, /*End of Scope*/ ++/*555820*/ 0, /*End of Scope*/ ++/*555821*/ 0, /*End of Scope*/ ++/*555822*/ 0, /*End of Scope*/ ++/*555823*/ /*Scope*/ 47|128,25/*3247*/, /*->559072*/ ++/*555825*/ OPC_RecordChild0, // #0 = $b ++/*555826*/ OPC_MoveChild1, ++/*555827*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*555830*/ OPC_Scope, 40|128,6/*808*/, /*->556641*/ // 4 children in Scope ++/*555833*/ OPC_MoveChild0, ++/*555834*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*555837*/ OPC_CheckChild0Integer, 1, ++/*555839*/ OPC_CheckChild0Type, MVT::i64, ++/*555841*/ OPC_CheckChild1Integer, 1, ++/*555843*/ OPC_CheckChild1Type, MVT::i64, ++/*555845*/ OPC_MoveParent, ++/*555846*/ OPC_RecordChild1, // #1 = $a ++/*555847*/ OPC_MoveParent, ++/*555848*/ OPC_MoveParent, ++/*555849*/ OPC_MoveChild1, ++/*555850*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*555853*/ OPC_MoveChild0, ++/*555854*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*555857*/ OPC_Scope, 6|128,3/*390*/, /*->556250*/ // 4 children in Scope ++/*555860*/ OPC_MoveChild0, ++/*555861*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*555864*/ OPC_Scope, 63, /*->555929*/ // 6 children in Scope ++/*555866*/ OPC_MoveChild0, ++/*555867*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*555870*/ OPC_CheckChild0Integer, 1, ++/*555872*/ OPC_CheckChild0Type, MVT::i64, ++/*555874*/ OPC_CheckChild1Integer, 1, ++/*555876*/ OPC_CheckChild1Type, MVT::i64, ++/*555878*/ OPC_MoveParent, ++/*555879*/ OPC_CheckChild1Same, 1, ++/*555881*/ OPC_MoveParent, ++/*555882*/ OPC_CheckChild1Same, 0, ++/*555884*/ OPC_MoveParent, ++/*555885*/ OPC_MoveChild1, ++/*555886*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*555889*/ OPC_CheckChild0Integer, 63, ++/*555891*/ OPC_CheckChild0Type, MVT::i64, ++/*555893*/ OPC_CheckChild1Integer, 63, ++/*555895*/ OPC_CheckChild1Type, MVT::i64, ++/*555897*/ OPC_CheckType, MVT::v2i64, ++/*555899*/ OPC_MoveParent, ++/*555900*/ OPC_MoveParent, ++/*555901*/ OPC_MoveParent, ++/*555902*/ OPC_MoveChild1, ++/*555903*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*555906*/ OPC_CheckChild0Integer, 1, ++/*555908*/ OPC_CheckChild0Type, MVT::i64, ++/*555910*/ OPC_CheckChild1Integer, 1, ++/*555912*/ OPC_CheckChild1Type, MVT::i64, ++/*555914*/ OPC_CheckType, MVT::v2i64, ++/*555916*/ OPC_MoveParent, ++/*555917*/ OPC_CheckType, MVT::v2i64, ++/*555919*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*555921*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a)), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a), LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*555929*/ /*Scope*/ 63, /*->555993*/ ++/*555930*/ OPC_CheckChild0Same, 1, ++/*555932*/ OPC_MoveChild1, ++/*555933*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*555936*/ OPC_CheckChild0Integer, 1, ++/*555938*/ OPC_CheckChild0Type, MVT::i64, ++/*555940*/ OPC_CheckChild1Integer, 1, ++/*555942*/ OPC_CheckChild1Type, MVT::i64, ++/*555944*/ OPC_MoveParent, ++/*555945*/ OPC_MoveParent, ++/*555946*/ OPC_CheckChild1Same, 0, ++/*555948*/ OPC_MoveParent, ++/*555949*/ OPC_MoveChild1, ++/*555950*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*555953*/ OPC_CheckChild0Integer, 63, ++/*555955*/ OPC_CheckChild0Type, MVT::i64, ++/*555957*/ OPC_CheckChild1Integer, 63, ++/*555959*/ OPC_CheckChild1Type, MVT::i64, ++/*555961*/ OPC_CheckType, MVT::v2i64, ++/*555963*/ OPC_MoveParent, ++/*555964*/ OPC_MoveParent, ++/*555965*/ OPC_MoveParent, ++/*555966*/ OPC_MoveChild1, ++/*555967*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*555970*/ OPC_CheckChild0Integer, 1, ++/*555972*/ OPC_CheckChild0Type, MVT::i64, ++/*555974*/ OPC_CheckChild1Integer, 1, ++/*555976*/ OPC_CheckChild1Type, MVT::i64, ++/*555978*/ OPC_CheckType, MVT::v2i64, ++/*555980*/ OPC_MoveParent, ++/*555981*/ OPC_CheckType, MVT::v2i64, ++/*555983*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*555985*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a)), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*555993*/ /*Scope*/ 63, /*->556057*/ ++/*555994*/ OPC_MoveChild0, ++/*555995*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*555998*/ OPC_CheckChild0Integer, 1, ++/*556000*/ OPC_CheckChild0Type, MVT::i64, ++/*556002*/ OPC_CheckChild1Integer, 1, ++/*556004*/ OPC_CheckChild1Type, MVT::i64, ++/*556006*/ OPC_MoveParent, ++/*556007*/ OPC_CheckChild1Same, 0, ++/*556009*/ OPC_MoveParent, ++/*556010*/ OPC_CheckChild1Same, 1, ++/*556012*/ OPC_MoveParent, ++/*556013*/ OPC_MoveChild1, ++/*556014*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*556017*/ OPC_CheckChild0Integer, 63, ++/*556019*/ OPC_CheckChild0Type, MVT::i64, ++/*556021*/ OPC_CheckChild1Integer, 63, ++/*556023*/ OPC_CheckChild1Type, MVT::i64, ++/*556025*/ OPC_CheckType, MVT::v2i64, ++/*556027*/ OPC_MoveParent, ++/*556028*/ OPC_MoveParent, ++/*556029*/ OPC_MoveParent, ++/*556030*/ OPC_MoveChild1, ++/*556031*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*556034*/ OPC_CheckChild0Integer, 1, ++/*556036*/ OPC_CheckChild0Type, MVT::i64, ++/*556038*/ OPC_CheckChild1Integer, 1, ++/*556040*/ OPC_CheckChild1Type, MVT::i64, ++/*556042*/ OPC_CheckType, MVT::v2i64, ++/*556044*/ OPC_MoveParent, ++/*556045*/ OPC_CheckType, MVT::v2i64, ++/*556047*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*556049*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a)), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b), LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*556057*/ /*Scope*/ 63, /*->556121*/ ++/*556058*/ OPC_CheckChild0Same, 0, ++/*556060*/ OPC_MoveChild1, ++/*556061*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*556064*/ OPC_CheckChild0Integer, 1, ++/*556066*/ OPC_CheckChild0Type, MVT::i64, ++/*556068*/ OPC_CheckChild1Integer, 1, ++/*556070*/ OPC_CheckChild1Type, MVT::i64, ++/*556072*/ OPC_MoveParent, ++/*556073*/ OPC_MoveParent, ++/*556074*/ OPC_CheckChild1Same, 1, ++/*556076*/ OPC_MoveParent, ++/*556077*/ OPC_MoveChild1, ++/*556078*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*556081*/ OPC_CheckChild0Integer, 63, ++/*556083*/ OPC_CheckChild0Type, MVT::i64, ++/*556085*/ OPC_CheckChild1Integer, 63, ++/*556087*/ OPC_CheckChild1Type, MVT::i64, ++/*556089*/ OPC_CheckType, MVT::v2i64, ++/*556091*/ OPC_MoveParent, ++/*556092*/ OPC_MoveParent, ++/*556093*/ OPC_MoveParent, ++/*556094*/ OPC_MoveChild1, ++/*556095*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*556098*/ OPC_CheckChild0Integer, 1, ++/*556100*/ OPC_CheckChild0Type, MVT::i64, ++/*556102*/ OPC_CheckChild1Integer, 1, ++/*556104*/ OPC_CheckChild1Type, MVT::i64, ++/*556106*/ OPC_CheckType, MVT::v2i64, ++/*556108*/ OPC_MoveParent, ++/*556109*/ OPC_CheckType, MVT::v2i64, ++/*556111*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*556113*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a)), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*556121*/ /*Scope*/ 63, /*->556185*/ ++/*556122*/ OPC_CheckChild0Same, 1, ++/*556124*/ OPC_CheckChild1Same, 0, ++/*556126*/ OPC_MoveParent, ++/*556127*/ OPC_MoveChild1, ++/*556128*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*556131*/ OPC_CheckChild0Integer, 1, ++/*556133*/ OPC_CheckChild0Type, MVT::i64, ++/*556135*/ OPC_CheckChild1Integer, 1, ++/*556137*/ OPC_CheckChild1Type, MVT::i64, ++/*556139*/ OPC_MoveParent, ++/*556140*/ OPC_MoveParent, ++/*556141*/ OPC_MoveChild1, ++/*556142*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*556145*/ OPC_CheckChild0Integer, 63, ++/*556147*/ OPC_CheckChild0Type, MVT::i64, ++/*556149*/ OPC_CheckChild1Integer, 63, ++/*556151*/ OPC_CheckChild1Type, MVT::i64, ++/*556153*/ OPC_CheckType, MVT::v2i64, ++/*556155*/ OPC_MoveParent, ++/*556156*/ OPC_MoveParent, ++/*556157*/ OPC_MoveParent, ++/*556158*/ OPC_MoveChild1, ++/*556159*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*556162*/ OPC_CheckChild0Integer, 1, ++/*556164*/ OPC_CheckChild0Type, MVT::i64, ++/*556166*/ OPC_CheckChild1Integer, 1, ++/*556168*/ OPC_CheckChild1Type, MVT::i64, ++/*556170*/ OPC_CheckType, MVT::v2i64, ++/*556172*/ OPC_MoveParent, ++/*556173*/ OPC_CheckType, MVT::v2i64, ++/*556175*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*556177*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a)), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*556185*/ /*Scope*/ 63, /*->556249*/ ++/*556186*/ OPC_CheckChild0Same, 0, ++/*556188*/ OPC_CheckChild1Same, 1, ++/*556190*/ OPC_MoveParent, ++/*556191*/ OPC_MoveChild1, ++/*556192*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*556195*/ OPC_CheckChild0Integer, 1, ++/*556197*/ OPC_CheckChild0Type, MVT::i64, ++/*556199*/ OPC_CheckChild1Integer, 1, ++/*556201*/ OPC_CheckChild1Type, MVT::i64, ++/*556203*/ OPC_MoveParent, ++/*556204*/ OPC_MoveParent, ++/*556205*/ OPC_MoveChild1, ++/*556206*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*556209*/ OPC_CheckChild0Integer, 63, ++/*556211*/ OPC_CheckChild0Type, MVT::i64, ++/*556213*/ OPC_CheckChild1Integer, 63, ++/*556215*/ OPC_CheckChild1Type, MVT::i64, ++/*556217*/ OPC_CheckType, MVT::v2i64, ++/*556219*/ OPC_MoveParent, ++/*556220*/ OPC_MoveParent, ++/*556221*/ OPC_MoveParent, ++/*556222*/ OPC_MoveChild1, ++/*556223*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*556226*/ OPC_CheckChild0Integer, 1, ++/*556228*/ OPC_CheckChild0Type, MVT::i64, ++/*556230*/ OPC_CheckChild1Integer, 1, ++/*556232*/ OPC_CheckChild1Type, MVT::i64, ++/*556234*/ OPC_CheckType, MVT::v2i64, ++/*556236*/ OPC_MoveParent, ++/*556237*/ OPC_CheckType, MVT::v2i64, ++/*556239*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*556241*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a)), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*556249*/ 0, /*End of Scope*/ ++/*556250*/ /*Scope*/ 4|128,1/*132*/, /*->556384*/ ++/*556252*/ OPC_CheckChild0Same, 0, ++/*556254*/ OPC_MoveChild1, ++/*556255*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*556258*/ OPC_Scope, 61, /*->556321*/ // 2 children in Scope ++/*556260*/ OPC_MoveChild0, ++/*556261*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*556264*/ OPC_CheckChild0Integer, 1, ++/*556266*/ OPC_CheckChild0Type, MVT::i64, ++/*556268*/ OPC_CheckChild1Integer, 1, ++/*556270*/ OPC_CheckChild1Type, MVT::i64, ++/*556272*/ OPC_MoveParent, ++/*556273*/ OPC_CheckChild1Same, 1, ++/*556275*/ OPC_MoveParent, ++/*556276*/ OPC_MoveParent, ++/*556277*/ OPC_MoveChild1, ++/*556278*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*556281*/ OPC_CheckChild0Integer, 63, ++/*556283*/ OPC_CheckChild0Type, MVT::i64, ++/*556285*/ OPC_CheckChild1Integer, 63, ++/*556287*/ OPC_CheckChild1Type, MVT::i64, ++/*556289*/ OPC_CheckType, MVT::v2i64, ++/*556291*/ OPC_MoveParent, ++/*556292*/ OPC_MoveParent, ++/*556293*/ OPC_MoveParent, ++/*556294*/ OPC_MoveChild1, ++/*556295*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*556298*/ OPC_CheckChild0Integer, 1, ++/*556300*/ OPC_CheckChild0Type, MVT::i64, ++/*556302*/ OPC_CheckChild1Integer, 1, ++/*556304*/ OPC_CheckChild1Type, MVT::i64, ++/*556306*/ OPC_CheckType, MVT::v2i64, ++/*556308*/ OPC_MoveParent, ++/*556309*/ OPC_CheckType, MVT::v2i64, ++/*556311*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*556313*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a)), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*556321*/ /*Scope*/ 61, /*->556383*/ ++/*556322*/ OPC_CheckChild0Same, 1, ++/*556324*/ OPC_MoveChild1, ++/*556325*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*556328*/ OPC_CheckChild0Integer, 1, ++/*556330*/ OPC_CheckChild0Type, MVT::i64, ++/*556332*/ OPC_CheckChild1Integer, 1, ++/*556334*/ OPC_CheckChild1Type, MVT::i64, ++/*556336*/ OPC_MoveParent, ++/*556337*/ OPC_MoveParent, ++/*556338*/ OPC_MoveParent, ++/*556339*/ OPC_MoveChild1, ++/*556340*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*556343*/ OPC_CheckChild0Integer, 63, ++/*556345*/ OPC_CheckChild0Type, MVT::i64, ++/*556347*/ OPC_CheckChild1Integer, 63, ++/*556349*/ OPC_CheckChild1Type, MVT::i64, ++/*556351*/ OPC_CheckType, MVT::v2i64, ++/*556353*/ OPC_MoveParent, ++/*556354*/ OPC_MoveParent, ++/*556355*/ OPC_MoveParent, ++/*556356*/ OPC_MoveChild1, ++/*556357*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*556360*/ OPC_CheckChild0Integer, 1, ++/*556362*/ OPC_CheckChild0Type, MVT::i64, ++/*556364*/ OPC_CheckChild1Integer, 1, ++/*556366*/ OPC_CheckChild1Type, MVT::i64, ++/*556368*/ OPC_CheckType, MVT::v2i64, ++/*556370*/ OPC_MoveParent, ++/*556371*/ OPC_CheckType, MVT::v2i64, ++/*556373*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*556375*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a)), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*556383*/ 0, /*End of Scope*/ ++/*556384*/ /*Scope*/ 4|128,1/*132*/, /*->556518*/ ++/*556386*/ OPC_CheckChild0Same, 1, ++/*556388*/ OPC_MoveChild1, ++/*556389*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*556392*/ OPC_Scope, 61, /*->556455*/ // 2 children in Scope ++/*556394*/ OPC_MoveChild0, ++/*556395*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*556398*/ OPC_CheckChild0Integer, 1, ++/*556400*/ OPC_CheckChild0Type, MVT::i64, ++/*556402*/ OPC_CheckChild1Integer, 1, ++/*556404*/ OPC_CheckChild1Type, MVT::i64, ++/*556406*/ OPC_MoveParent, ++/*556407*/ OPC_CheckChild1Same, 0, ++/*556409*/ OPC_MoveParent, ++/*556410*/ OPC_MoveParent, ++/*556411*/ OPC_MoveChild1, ++/*556412*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*556415*/ OPC_CheckChild0Integer, 63, ++/*556417*/ OPC_CheckChild0Type, MVT::i64, ++/*556419*/ OPC_CheckChild1Integer, 63, ++/*556421*/ OPC_CheckChild1Type, MVT::i64, ++/*556423*/ OPC_CheckType, MVT::v2i64, ++/*556425*/ OPC_MoveParent, ++/*556426*/ OPC_MoveParent, ++/*556427*/ OPC_MoveParent, ++/*556428*/ OPC_MoveChild1, ++/*556429*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*556432*/ OPC_CheckChild0Integer, 1, ++/*556434*/ OPC_CheckChild0Type, MVT::i64, ++/*556436*/ OPC_CheckChild1Integer, 1, ++/*556438*/ OPC_CheckChild1Type, MVT::i64, ++/*556440*/ OPC_CheckType, MVT::v2i64, ++/*556442*/ OPC_MoveParent, ++/*556443*/ OPC_CheckType, MVT::v2i64, ++/*556445*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*556447*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a)), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*556455*/ /*Scope*/ 61, /*->556517*/ ++/*556456*/ OPC_CheckChild0Same, 0, ++/*556458*/ OPC_MoveChild1, ++/*556459*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*556462*/ OPC_CheckChild0Integer, 1, ++/*556464*/ OPC_CheckChild0Type, MVT::i64, ++/*556466*/ OPC_CheckChild1Integer, 1, ++/*556468*/ OPC_CheckChild1Type, MVT::i64, ++/*556470*/ OPC_MoveParent, ++/*556471*/ OPC_MoveParent, ++/*556472*/ OPC_MoveParent, ++/*556473*/ OPC_MoveChild1, ++/*556474*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*556477*/ OPC_CheckChild0Integer, 63, ++/*556479*/ OPC_CheckChild0Type, MVT::i64, ++/*556481*/ OPC_CheckChild1Integer, 63, ++/*556483*/ OPC_CheckChild1Type, MVT::i64, ++/*556485*/ OPC_CheckType, MVT::v2i64, ++/*556487*/ OPC_MoveParent, ++/*556488*/ OPC_MoveParent, ++/*556489*/ OPC_MoveParent, ++/*556490*/ OPC_MoveChild1, ++/*556491*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*556494*/ OPC_CheckChild0Integer, 1, ++/*556496*/ OPC_CheckChild0Type, MVT::i64, ++/*556498*/ OPC_CheckChild1Integer, 1, ++/*556500*/ OPC_CheckChild1Type, MVT::i64, ++/*556502*/ OPC_CheckType, MVT::v2i64, ++/*556504*/ OPC_MoveParent, ++/*556505*/ OPC_CheckType, MVT::v2i64, ++/*556507*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*556509*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a)), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*556517*/ 0, /*End of Scope*/ ++/*556518*/ /*Scope*/ 121, /*->556640*/ ++/*556519*/ OPC_MoveChild0, ++/*556520*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*556523*/ OPC_CheckChild0Integer, 1, ++/*556525*/ OPC_CheckChild0Type, MVT::i64, ++/*556527*/ OPC_CheckChild1Integer, 1, ++/*556529*/ OPC_CheckChild1Type, MVT::i64, ++/*556531*/ OPC_MoveParent, ++/*556532*/ OPC_MoveChild1, ++/*556533*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*556536*/ OPC_Scope, 50, /*->556588*/ // 2 children in Scope ++/*556538*/ OPC_CheckChild0Same, 1, ++/*556540*/ OPC_CheckChild1Same, 0, ++/*556542*/ OPC_MoveParent, ++/*556543*/ OPC_MoveParent, ++/*556544*/ OPC_MoveChild1, ++/*556545*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*556548*/ OPC_CheckChild0Integer, 63, ++/*556550*/ OPC_CheckChild0Type, MVT::i64, ++/*556552*/ OPC_CheckChild1Integer, 63, ++/*556554*/ OPC_CheckChild1Type, MVT::i64, ++/*556556*/ OPC_CheckType, MVT::v2i64, ++/*556558*/ OPC_MoveParent, ++/*556559*/ OPC_MoveParent, ++/*556560*/ OPC_MoveParent, ++/*556561*/ OPC_MoveChild1, ++/*556562*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*556565*/ OPC_CheckChild0Integer, 1, ++/*556567*/ OPC_CheckChild0Type, MVT::i64, ++/*556569*/ OPC_CheckChild1Integer, 1, ++/*556571*/ OPC_CheckChild1Type, MVT::i64, ++/*556573*/ OPC_CheckType, MVT::v2i64, ++/*556575*/ OPC_MoveParent, ++/*556576*/ OPC_CheckType, MVT::v2i64, ++/*556578*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*556580*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a)), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*556588*/ /*Scope*/ 50, /*->556639*/ ++/*556589*/ OPC_CheckChild0Same, 0, ++/*556591*/ OPC_CheckChild1Same, 1, ++/*556593*/ OPC_MoveParent, ++/*556594*/ OPC_MoveParent, ++/*556595*/ OPC_MoveChild1, ++/*556596*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*556599*/ OPC_CheckChild0Integer, 63, ++/*556601*/ OPC_CheckChild0Type, MVT::i64, ++/*556603*/ OPC_CheckChild1Integer, 63, ++/*556605*/ OPC_CheckChild1Type, MVT::i64, ++/*556607*/ OPC_CheckType, MVT::v2i64, ++/*556609*/ OPC_MoveParent, ++/*556610*/ OPC_MoveParent, ++/*556611*/ OPC_MoveParent, ++/*556612*/ OPC_MoveChild1, ++/*556613*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*556616*/ OPC_CheckChild0Integer, 1, ++/*556618*/ OPC_CheckChild0Type, MVT::i64, ++/*556620*/ OPC_CheckChild1Integer, 1, ++/*556622*/ OPC_CheckChild1Type, MVT::i64, ++/*556624*/ OPC_CheckType, MVT::v2i64, ++/*556626*/ OPC_MoveParent, ++/*556627*/ OPC_CheckType, MVT::v2i64, ++/*556629*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*556631*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a)), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*556639*/ 0, /*End of Scope*/ ++/*556640*/ 0, /*End of Scope*/ ++/*556641*/ /*Scope*/ 40|128,6/*808*/, /*->557451*/ ++/*556643*/ OPC_RecordChild0, // #1 = $a ++/*556644*/ OPC_MoveChild1, ++/*556645*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*556648*/ OPC_CheckChild0Integer, 1, ++/*556650*/ OPC_CheckChild0Type, MVT::i64, ++/*556652*/ OPC_CheckChild1Integer, 1, ++/*556654*/ OPC_CheckChild1Type, MVT::i64, ++/*556656*/ OPC_MoveParent, ++/*556657*/ OPC_MoveParent, ++/*556658*/ OPC_MoveParent, ++/*556659*/ OPC_MoveChild1, ++/*556660*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*556663*/ OPC_MoveChild0, ++/*556664*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*556667*/ OPC_Scope, 6|128,3/*390*/, /*->557060*/ // 4 children in Scope ++/*556670*/ OPC_MoveChild0, ++/*556671*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*556674*/ OPC_Scope, 63, /*->556739*/ // 6 children in Scope ++/*556676*/ OPC_MoveChild0, ++/*556677*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*556680*/ OPC_CheckChild0Integer, 1, ++/*556682*/ OPC_CheckChild0Type, MVT::i64, ++/*556684*/ OPC_CheckChild1Integer, 1, ++/*556686*/ OPC_CheckChild1Type, MVT::i64, ++/*556688*/ OPC_MoveParent, ++/*556689*/ OPC_CheckChild1Same, 1, ++/*556691*/ OPC_MoveParent, ++/*556692*/ OPC_CheckChild1Same, 0, ++/*556694*/ OPC_MoveParent, ++/*556695*/ OPC_MoveChild1, ++/*556696*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*556699*/ OPC_CheckChild0Integer, 63, ++/*556701*/ OPC_CheckChild0Type, MVT::i64, ++/*556703*/ OPC_CheckChild1Integer, 63, ++/*556705*/ OPC_CheckChild1Type, MVT::i64, ++/*556707*/ OPC_CheckType, MVT::v2i64, ++/*556709*/ OPC_MoveParent, ++/*556710*/ OPC_MoveParent, ++/*556711*/ OPC_MoveParent, ++/*556712*/ OPC_MoveChild1, ++/*556713*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*556716*/ OPC_CheckChild0Integer, 1, ++/*556718*/ OPC_CheckChild0Type, MVT::i64, ++/*556720*/ OPC_CheckChild1Integer, 1, ++/*556722*/ OPC_CheckChild1Type, MVT::i64, ++/*556724*/ OPC_CheckType, MVT::v2i64, ++/*556726*/ OPC_MoveParent, ++/*556727*/ OPC_CheckType, MVT::v2i64, ++/*556729*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*556731*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a), LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*556739*/ /*Scope*/ 63, /*->556803*/ ++/*556740*/ OPC_CheckChild0Same, 1, ++/*556742*/ OPC_MoveChild1, ++/*556743*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*556746*/ OPC_CheckChild0Integer, 1, ++/*556748*/ OPC_CheckChild0Type, MVT::i64, ++/*556750*/ OPC_CheckChild1Integer, 1, ++/*556752*/ OPC_CheckChild1Type, MVT::i64, ++/*556754*/ OPC_MoveParent, ++/*556755*/ OPC_MoveParent, ++/*556756*/ OPC_CheckChild1Same, 0, ++/*556758*/ OPC_MoveParent, ++/*556759*/ OPC_MoveChild1, ++/*556760*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*556763*/ OPC_CheckChild0Integer, 63, ++/*556765*/ OPC_CheckChild0Type, MVT::i64, ++/*556767*/ OPC_CheckChild1Integer, 63, ++/*556769*/ OPC_CheckChild1Type, MVT::i64, ++/*556771*/ OPC_CheckType, MVT::v2i64, ++/*556773*/ OPC_MoveParent, ++/*556774*/ OPC_MoveParent, ++/*556775*/ OPC_MoveParent, ++/*556776*/ OPC_MoveChild1, ++/*556777*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*556780*/ OPC_CheckChild0Integer, 1, ++/*556782*/ OPC_CheckChild0Type, MVT::i64, ++/*556784*/ OPC_CheckChild1Integer, 1, ++/*556786*/ OPC_CheckChild1Type, MVT::i64, ++/*556788*/ OPC_CheckType, MVT::v2i64, ++/*556790*/ OPC_MoveParent, ++/*556791*/ OPC_CheckType, MVT::v2i64, ++/*556793*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*556795*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*556803*/ /*Scope*/ 63, /*->556867*/ ++/*556804*/ OPC_MoveChild0, ++/*556805*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*556808*/ OPC_CheckChild0Integer, 1, ++/*556810*/ OPC_CheckChild0Type, MVT::i64, ++/*556812*/ OPC_CheckChild1Integer, 1, ++/*556814*/ OPC_CheckChild1Type, MVT::i64, ++/*556816*/ OPC_MoveParent, ++/*556817*/ OPC_CheckChild1Same, 0, ++/*556819*/ OPC_MoveParent, ++/*556820*/ OPC_CheckChild1Same, 1, ++/*556822*/ OPC_MoveParent, ++/*556823*/ OPC_MoveChild1, ++/*556824*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*556827*/ OPC_CheckChild0Integer, 63, ++/*556829*/ OPC_CheckChild0Type, MVT::i64, ++/*556831*/ OPC_CheckChild1Integer, 63, ++/*556833*/ OPC_CheckChild1Type, MVT::i64, ++/*556835*/ OPC_CheckType, MVT::v2i64, ++/*556837*/ OPC_MoveParent, ++/*556838*/ OPC_MoveParent, ++/*556839*/ OPC_MoveParent, ++/*556840*/ OPC_MoveChild1, ++/*556841*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*556844*/ OPC_CheckChild0Integer, 1, ++/*556846*/ OPC_CheckChild0Type, MVT::i64, ++/*556848*/ OPC_CheckChild1Integer, 1, ++/*556850*/ OPC_CheckChild1Type, MVT::i64, ++/*556852*/ OPC_CheckType, MVT::v2i64, ++/*556854*/ OPC_MoveParent, ++/*556855*/ OPC_CheckType, MVT::v2i64, ++/*556857*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*556859*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b), LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*556867*/ /*Scope*/ 63, /*->556931*/ ++/*556868*/ OPC_CheckChild0Same, 0, ++/*556870*/ OPC_MoveChild1, ++/*556871*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*556874*/ OPC_CheckChild0Integer, 1, ++/*556876*/ OPC_CheckChild0Type, MVT::i64, ++/*556878*/ OPC_CheckChild1Integer, 1, ++/*556880*/ OPC_CheckChild1Type, MVT::i64, ++/*556882*/ OPC_MoveParent, ++/*556883*/ OPC_MoveParent, ++/*556884*/ OPC_CheckChild1Same, 1, ++/*556886*/ OPC_MoveParent, ++/*556887*/ OPC_MoveChild1, ++/*556888*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*556891*/ OPC_CheckChild0Integer, 63, ++/*556893*/ OPC_CheckChild0Type, MVT::i64, ++/*556895*/ OPC_CheckChild1Integer, 63, ++/*556897*/ OPC_CheckChild1Type, MVT::i64, ++/*556899*/ OPC_CheckType, MVT::v2i64, ++/*556901*/ OPC_MoveParent, ++/*556902*/ OPC_MoveParent, ++/*556903*/ OPC_MoveParent, ++/*556904*/ OPC_MoveChild1, ++/*556905*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*556908*/ OPC_CheckChild0Integer, 1, ++/*556910*/ OPC_CheckChild0Type, MVT::i64, ++/*556912*/ OPC_CheckChild1Integer, 1, ++/*556914*/ OPC_CheckChild1Type, MVT::i64, ++/*556916*/ OPC_CheckType, MVT::v2i64, ++/*556918*/ OPC_MoveParent, ++/*556919*/ OPC_CheckType, MVT::v2i64, ++/*556921*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*556923*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*556931*/ /*Scope*/ 63, /*->556995*/ ++/*556932*/ OPC_CheckChild0Same, 1, ++/*556934*/ OPC_CheckChild1Same, 0, ++/*556936*/ OPC_MoveParent, ++/*556937*/ OPC_MoveChild1, ++/*556938*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*556941*/ OPC_CheckChild0Integer, 1, ++/*556943*/ OPC_CheckChild0Type, MVT::i64, ++/*556945*/ OPC_CheckChild1Integer, 1, ++/*556947*/ OPC_CheckChild1Type, MVT::i64, ++/*556949*/ OPC_MoveParent, ++/*556950*/ OPC_MoveParent, ++/*556951*/ OPC_MoveChild1, ++/*556952*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*556955*/ OPC_CheckChild0Integer, 63, ++/*556957*/ OPC_CheckChild0Type, MVT::i64, ++/*556959*/ OPC_CheckChild1Integer, 63, ++/*556961*/ OPC_CheckChild1Type, MVT::i64, ++/*556963*/ OPC_CheckType, MVT::v2i64, ++/*556965*/ OPC_MoveParent, ++/*556966*/ OPC_MoveParent, ++/*556967*/ OPC_MoveParent, ++/*556968*/ OPC_MoveChild1, ++/*556969*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*556972*/ OPC_CheckChild0Integer, 1, ++/*556974*/ OPC_CheckChild0Type, MVT::i64, ++/*556976*/ OPC_CheckChild1Integer, 1, ++/*556978*/ OPC_CheckChild1Type, MVT::i64, ++/*556980*/ OPC_CheckType, MVT::v2i64, ++/*556982*/ OPC_MoveParent, ++/*556983*/ OPC_CheckType, MVT::v2i64, ++/*556985*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*556987*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*556995*/ /*Scope*/ 63, /*->557059*/ ++/*556996*/ OPC_CheckChild0Same, 0, ++/*556998*/ OPC_CheckChild1Same, 1, ++/*557000*/ OPC_MoveParent, ++/*557001*/ OPC_MoveChild1, ++/*557002*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*557005*/ OPC_CheckChild0Integer, 1, ++/*557007*/ OPC_CheckChild0Type, MVT::i64, ++/*557009*/ OPC_CheckChild1Integer, 1, ++/*557011*/ OPC_CheckChild1Type, MVT::i64, ++/*557013*/ OPC_MoveParent, ++/*557014*/ OPC_MoveParent, ++/*557015*/ OPC_MoveChild1, ++/*557016*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*557019*/ OPC_CheckChild0Integer, 63, ++/*557021*/ OPC_CheckChild0Type, MVT::i64, ++/*557023*/ OPC_CheckChild1Integer, 63, ++/*557025*/ OPC_CheckChild1Type, MVT::i64, ++/*557027*/ OPC_CheckType, MVT::v2i64, ++/*557029*/ OPC_MoveParent, ++/*557030*/ OPC_MoveParent, ++/*557031*/ OPC_MoveParent, ++/*557032*/ OPC_MoveChild1, ++/*557033*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*557036*/ OPC_CheckChild0Integer, 1, ++/*557038*/ OPC_CheckChild0Type, MVT::i64, ++/*557040*/ OPC_CheckChild1Integer, 1, ++/*557042*/ OPC_CheckChild1Type, MVT::i64, ++/*557044*/ OPC_CheckType, MVT::v2i64, ++/*557046*/ OPC_MoveParent, ++/*557047*/ OPC_CheckType, MVT::v2i64, ++/*557049*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*557051*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*557059*/ 0, /*End of Scope*/ ++/*557060*/ /*Scope*/ 4|128,1/*132*/, /*->557194*/ ++/*557062*/ OPC_CheckChild0Same, 0, ++/*557064*/ OPC_MoveChild1, ++/*557065*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*557068*/ OPC_Scope, 61, /*->557131*/ // 2 children in Scope ++/*557070*/ OPC_MoveChild0, ++/*557071*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*557074*/ OPC_CheckChild0Integer, 1, ++/*557076*/ OPC_CheckChild0Type, MVT::i64, ++/*557078*/ OPC_CheckChild1Integer, 1, ++/*557080*/ OPC_CheckChild1Type, MVT::i64, ++/*557082*/ OPC_MoveParent, ++/*557083*/ OPC_CheckChild1Same, 1, ++/*557085*/ OPC_MoveParent, ++/*557086*/ OPC_MoveParent, ++/*557087*/ OPC_MoveChild1, ++/*557088*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*557091*/ OPC_CheckChild0Integer, 63, ++/*557093*/ OPC_CheckChild0Type, MVT::i64, ++/*557095*/ OPC_CheckChild1Integer, 63, ++/*557097*/ OPC_CheckChild1Type, MVT::i64, ++/*557099*/ OPC_CheckType, MVT::v2i64, ++/*557101*/ OPC_MoveParent, ++/*557102*/ OPC_MoveParent, ++/*557103*/ OPC_MoveParent, ++/*557104*/ OPC_MoveChild1, ++/*557105*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*557108*/ OPC_CheckChild0Integer, 1, ++/*557110*/ OPC_CheckChild0Type, MVT::i64, ++/*557112*/ OPC_CheckChild1Integer, 1, ++/*557114*/ OPC_CheckChild1Type, MVT::i64, ++/*557116*/ OPC_CheckType, MVT::v2i64, ++/*557118*/ OPC_MoveParent, ++/*557119*/ OPC_CheckType, MVT::v2i64, ++/*557121*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*557123*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*557131*/ /*Scope*/ 61, /*->557193*/ ++/*557132*/ OPC_CheckChild0Same, 1, ++/*557134*/ OPC_MoveChild1, ++/*557135*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*557138*/ OPC_CheckChild0Integer, 1, ++/*557140*/ OPC_CheckChild0Type, MVT::i64, ++/*557142*/ OPC_CheckChild1Integer, 1, ++/*557144*/ OPC_CheckChild1Type, MVT::i64, ++/*557146*/ OPC_MoveParent, ++/*557147*/ OPC_MoveParent, ++/*557148*/ OPC_MoveParent, ++/*557149*/ OPC_MoveChild1, ++/*557150*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*557153*/ OPC_CheckChild0Integer, 63, ++/*557155*/ OPC_CheckChild0Type, MVT::i64, ++/*557157*/ OPC_CheckChild1Integer, 63, ++/*557159*/ OPC_CheckChild1Type, MVT::i64, ++/*557161*/ OPC_CheckType, MVT::v2i64, ++/*557163*/ OPC_MoveParent, ++/*557164*/ OPC_MoveParent, ++/*557165*/ OPC_MoveParent, ++/*557166*/ OPC_MoveChild1, ++/*557167*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*557170*/ OPC_CheckChild0Integer, 1, ++/*557172*/ OPC_CheckChild0Type, MVT::i64, ++/*557174*/ OPC_CheckChild1Integer, 1, ++/*557176*/ OPC_CheckChild1Type, MVT::i64, ++/*557178*/ OPC_CheckType, MVT::v2i64, ++/*557180*/ OPC_MoveParent, ++/*557181*/ OPC_CheckType, MVT::v2i64, ++/*557183*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*557185*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*557193*/ 0, /*End of Scope*/ ++/*557194*/ /*Scope*/ 4|128,1/*132*/, /*->557328*/ ++/*557196*/ OPC_CheckChild0Same, 1, ++/*557198*/ OPC_MoveChild1, ++/*557199*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*557202*/ OPC_Scope, 61, /*->557265*/ // 2 children in Scope ++/*557204*/ OPC_MoveChild0, ++/*557205*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*557208*/ OPC_CheckChild0Integer, 1, ++/*557210*/ OPC_CheckChild0Type, MVT::i64, ++/*557212*/ OPC_CheckChild1Integer, 1, ++/*557214*/ OPC_CheckChild1Type, MVT::i64, ++/*557216*/ OPC_MoveParent, ++/*557217*/ OPC_CheckChild1Same, 0, ++/*557219*/ OPC_MoveParent, ++/*557220*/ OPC_MoveParent, ++/*557221*/ OPC_MoveChild1, ++/*557222*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*557225*/ OPC_CheckChild0Integer, 63, ++/*557227*/ OPC_CheckChild0Type, MVT::i64, ++/*557229*/ OPC_CheckChild1Integer, 63, ++/*557231*/ OPC_CheckChild1Type, MVT::i64, ++/*557233*/ OPC_CheckType, MVT::v2i64, ++/*557235*/ OPC_MoveParent, ++/*557236*/ OPC_MoveParent, ++/*557237*/ OPC_MoveParent, ++/*557238*/ OPC_MoveChild1, ++/*557239*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*557242*/ OPC_CheckChild0Integer, 1, ++/*557244*/ OPC_CheckChild0Type, MVT::i64, ++/*557246*/ OPC_CheckChild1Integer, 1, ++/*557248*/ OPC_CheckChild1Type, MVT::i64, ++/*557250*/ OPC_CheckType, MVT::v2i64, ++/*557252*/ OPC_MoveParent, ++/*557253*/ OPC_CheckType, MVT::v2i64, ++/*557255*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*557257*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*557265*/ /*Scope*/ 61, /*->557327*/ ++/*557266*/ OPC_CheckChild0Same, 0, ++/*557268*/ OPC_MoveChild1, ++/*557269*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*557272*/ OPC_CheckChild0Integer, 1, ++/*557274*/ OPC_CheckChild0Type, MVT::i64, ++/*557276*/ OPC_CheckChild1Integer, 1, ++/*557278*/ OPC_CheckChild1Type, MVT::i64, ++/*557280*/ OPC_MoveParent, ++/*557281*/ OPC_MoveParent, ++/*557282*/ OPC_MoveParent, ++/*557283*/ OPC_MoveChild1, ++/*557284*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*557287*/ OPC_CheckChild0Integer, 63, ++/*557289*/ OPC_CheckChild0Type, MVT::i64, ++/*557291*/ OPC_CheckChild1Integer, 63, ++/*557293*/ OPC_CheckChild1Type, MVT::i64, ++/*557295*/ OPC_CheckType, MVT::v2i64, ++/*557297*/ OPC_MoveParent, ++/*557298*/ OPC_MoveParent, ++/*557299*/ OPC_MoveParent, ++/*557300*/ OPC_MoveChild1, ++/*557301*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*557304*/ OPC_CheckChild0Integer, 1, ++/*557306*/ OPC_CheckChild0Type, MVT::i64, ++/*557308*/ OPC_CheckChild1Integer, 1, ++/*557310*/ OPC_CheckChild1Type, MVT::i64, ++/*557312*/ OPC_CheckType, MVT::v2i64, ++/*557314*/ OPC_MoveParent, ++/*557315*/ OPC_CheckType, MVT::v2i64, ++/*557317*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*557319*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*557327*/ 0, /*End of Scope*/ ++/*557328*/ /*Scope*/ 121, /*->557450*/ ++/*557329*/ OPC_MoveChild0, ++/*557330*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*557333*/ OPC_CheckChild0Integer, 1, ++/*557335*/ OPC_CheckChild0Type, MVT::i64, ++/*557337*/ OPC_CheckChild1Integer, 1, ++/*557339*/ OPC_CheckChild1Type, MVT::i64, ++/*557341*/ OPC_MoveParent, ++/*557342*/ OPC_MoveChild1, ++/*557343*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*557346*/ OPC_Scope, 50, /*->557398*/ // 2 children in Scope ++/*557348*/ OPC_CheckChild0Same, 1, ++/*557350*/ OPC_CheckChild1Same, 0, ++/*557352*/ OPC_MoveParent, ++/*557353*/ OPC_MoveParent, ++/*557354*/ OPC_MoveChild1, ++/*557355*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*557358*/ OPC_CheckChild0Integer, 63, ++/*557360*/ OPC_CheckChild0Type, MVT::i64, ++/*557362*/ OPC_CheckChild1Integer, 63, ++/*557364*/ OPC_CheckChild1Type, MVT::i64, ++/*557366*/ OPC_CheckType, MVT::v2i64, ++/*557368*/ OPC_MoveParent, ++/*557369*/ OPC_MoveParent, ++/*557370*/ OPC_MoveParent, ++/*557371*/ OPC_MoveChild1, ++/*557372*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*557375*/ OPC_CheckChild0Integer, 1, ++/*557377*/ OPC_CheckChild0Type, MVT::i64, ++/*557379*/ OPC_CheckChild1Integer, 1, ++/*557381*/ OPC_CheckChild1Type, MVT::i64, ++/*557383*/ OPC_CheckType, MVT::v2i64, ++/*557385*/ OPC_MoveParent, ++/*557386*/ OPC_CheckType, MVT::v2i64, ++/*557388*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*557390*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*557398*/ /*Scope*/ 50, /*->557449*/ ++/*557399*/ OPC_CheckChild0Same, 0, ++/*557401*/ OPC_CheckChild1Same, 1, ++/*557403*/ OPC_MoveParent, ++/*557404*/ OPC_MoveParent, ++/*557405*/ OPC_MoveChild1, ++/*557406*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*557409*/ OPC_CheckChild0Integer, 63, ++/*557411*/ OPC_CheckChild0Type, MVT::i64, ++/*557413*/ OPC_CheckChild1Integer, 63, ++/*557415*/ OPC_CheckChild1Type, MVT::i64, ++/*557417*/ OPC_CheckType, MVT::v2i64, ++/*557419*/ OPC_MoveParent, ++/*557420*/ OPC_MoveParent, ++/*557421*/ OPC_MoveParent, ++/*557422*/ OPC_MoveChild1, ++/*557423*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*557426*/ OPC_CheckChild0Integer, 1, ++/*557428*/ OPC_CheckChild0Type, MVT::i64, ++/*557430*/ OPC_CheckChild1Integer, 1, ++/*557432*/ OPC_CheckChild1Type, MVT::i64, ++/*557434*/ OPC_CheckType, MVT::v2i64, ++/*557436*/ OPC_MoveParent, ++/*557437*/ OPC_CheckType, MVT::v2i64, ++/*557439*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*557441*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*557449*/ 0, /*End of Scope*/ ++/*557450*/ 0, /*End of Scope*/ ++/*557451*/ /*Scope*/ 40|128,6/*808*/, /*->558261*/ ++/*557453*/ OPC_MoveChild0, ++/*557454*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*557457*/ OPC_CheckChild0Integer, 1, ++/*557459*/ OPC_CheckChild0Type, MVT::i64, ++/*557461*/ OPC_CheckChild1Integer, 1, ++/*557463*/ OPC_CheckChild1Type, MVT::i64, ++/*557465*/ OPC_MoveParent, ++/*557466*/ OPC_RecordChild1, // #1 = $b ++/*557467*/ OPC_MoveParent, ++/*557468*/ OPC_MoveParent, ++/*557469*/ OPC_MoveChild1, ++/*557470*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*557473*/ OPC_MoveChild0, ++/*557474*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*557477*/ OPC_Scope, 6|128,3/*390*/, /*->557870*/ // 4 children in Scope ++/*557480*/ OPC_MoveChild0, ++/*557481*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*557484*/ OPC_Scope, 63, /*->557549*/ // 6 children in Scope ++/*557486*/ OPC_MoveChild0, ++/*557487*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*557490*/ OPC_CheckChild0Integer, 1, ++/*557492*/ OPC_CheckChild0Type, MVT::i64, ++/*557494*/ OPC_CheckChild1Integer, 1, ++/*557496*/ OPC_CheckChild1Type, MVT::i64, ++/*557498*/ OPC_MoveParent, ++/*557499*/ OPC_CheckChild1Same, 0, ++/*557501*/ OPC_MoveParent, ++/*557502*/ OPC_CheckChild1Same, 1, ++/*557504*/ OPC_MoveParent, ++/*557505*/ OPC_MoveChild1, ++/*557506*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*557509*/ OPC_CheckChild0Integer, 63, ++/*557511*/ OPC_CheckChild0Type, MVT::i64, ++/*557513*/ OPC_CheckChild1Integer, 63, ++/*557515*/ OPC_CheckChild1Type, MVT::i64, ++/*557517*/ OPC_CheckType, MVT::v2i64, ++/*557519*/ OPC_MoveParent, ++/*557520*/ OPC_MoveParent, ++/*557521*/ OPC_MoveParent, ++/*557522*/ OPC_MoveChild1, ++/*557523*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*557526*/ OPC_CheckChild0Integer, 1, ++/*557528*/ OPC_CheckChild0Type, MVT::i64, ++/*557530*/ OPC_CheckChild1Integer, 1, ++/*557532*/ OPC_CheckChild1Type, MVT::i64, ++/*557534*/ OPC_CheckType, MVT::v2i64, ++/*557536*/ OPC_MoveParent, ++/*557537*/ OPC_CheckType, MVT::v2i64, ++/*557539*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*557541*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b)), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a), LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*557549*/ /*Scope*/ 63, /*->557613*/ ++/*557550*/ OPC_CheckChild0Same, 0, ++/*557552*/ OPC_MoveChild1, ++/*557553*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*557556*/ OPC_CheckChild0Integer, 1, ++/*557558*/ OPC_CheckChild0Type, MVT::i64, ++/*557560*/ OPC_CheckChild1Integer, 1, ++/*557562*/ OPC_CheckChild1Type, MVT::i64, ++/*557564*/ OPC_MoveParent, ++/*557565*/ OPC_MoveParent, ++/*557566*/ OPC_CheckChild1Same, 1, ++/*557568*/ OPC_MoveParent, ++/*557569*/ OPC_MoveChild1, ++/*557570*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*557573*/ OPC_CheckChild0Integer, 63, ++/*557575*/ OPC_CheckChild0Type, MVT::i64, ++/*557577*/ OPC_CheckChild1Integer, 63, ++/*557579*/ OPC_CheckChild1Type, MVT::i64, ++/*557581*/ OPC_CheckType, MVT::v2i64, ++/*557583*/ OPC_MoveParent, ++/*557584*/ OPC_MoveParent, ++/*557585*/ OPC_MoveParent, ++/*557586*/ OPC_MoveChild1, ++/*557587*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*557590*/ OPC_CheckChild0Integer, 1, ++/*557592*/ OPC_CheckChild0Type, MVT::i64, ++/*557594*/ OPC_CheckChild1Integer, 1, ++/*557596*/ OPC_CheckChild1Type, MVT::i64, ++/*557598*/ OPC_CheckType, MVT::v2i64, ++/*557600*/ OPC_MoveParent, ++/*557601*/ OPC_CheckType, MVT::v2i64, ++/*557603*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*557605*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b)), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*557613*/ /*Scope*/ 63, /*->557677*/ ++/*557614*/ OPC_MoveChild0, ++/*557615*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*557618*/ OPC_CheckChild0Integer, 1, ++/*557620*/ OPC_CheckChild0Type, MVT::i64, ++/*557622*/ OPC_CheckChild1Integer, 1, ++/*557624*/ OPC_CheckChild1Type, MVT::i64, ++/*557626*/ OPC_MoveParent, ++/*557627*/ OPC_CheckChild1Same, 1, ++/*557629*/ OPC_MoveParent, ++/*557630*/ OPC_CheckChild1Same, 0, ++/*557632*/ OPC_MoveParent, ++/*557633*/ OPC_MoveChild1, ++/*557634*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*557637*/ OPC_CheckChild0Integer, 63, ++/*557639*/ OPC_CheckChild0Type, MVT::i64, ++/*557641*/ OPC_CheckChild1Integer, 63, ++/*557643*/ OPC_CheckChild1Type, MVT::i64, ++/*557645*/ OPC_CheckType, MVT::v2i64, ++/*557647*/ OPC_MoveParent, ++/*557648*/ OPC_MoveParent, ++/*557649*/ OPC_MoveParent, ++/*557650*/ OPC_MoveChild1, ++/*557651*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*557654*/ OPC_CheckChild0Integer, 1, ++/*557656*/ OPC_CheckChild0Type, MVT::i64, ++/*557658*/ OPC_CheckChild1Integer, 1, ++/*557660*/ OPC_CheckChild1Type, MVT::i64, ++/*557662*/ OPC_CheckType, MVT::v2i64, ++/*557664*/ OPC_MoveParent, ++/*557665*/ OPC_CheckType, MVT::v2i64, ++/*557667*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*557669*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b)), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b), LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*557677*/ /*Scope*/ 63, /*->557741*/ ++/*557678*/ OPC_CheckChild0Same, 1, ++/*557680*/ OPC_MoveChild1, ++/*557681*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*557684*/ OPC_CheckChild0Integer, 1, ++/*557686*/ OPC_CheckChild0Type, MVT::i64, ++/*557688*/ OPC_CheckChild1Integer, 1, ++/*557690*/ OPC_CheckChild1Type, MVT::i64, ++/*557692*/ OPC_MoveParent, ++/*557693*/ OPC_MoveParent, ++/*557694*/ OPC_CheckChild1Same, 0, ++/*557696*/ OPC_MoveParent, ++/*557697*/ OPC_MoveChild1, ++/*557698*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*557701*/ OPC_CheckChild0Integer, 63, ++/*557703*/ OPC_CheckChild0Type, MVT::i64, ++/*557705*/ OPC_CheckChild1Integer, 63, ++/*557707*/ OPC_CheckChild1Type, MVT::i64, ++/*557709*/ OPC_CheckType, MVT::v2i64, ++/*557711*/ OPC_MoveParent, ++/*557712*/ OPC_MoveParent, ++/*557713*/ OPC_MoveParent, ++/*557714*/ OPC_MoveChild1, ++/*557715*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*557718*/ OPC_CheckChild0Integer, 1, ++/*557720*/ OPC_CheckChild0Type, MVT::i64, ++/*557722*/ OPC_CheckChild1Integer, 1, ++/*557724*/ OPC_CheckChild1Type, MVT::i64, ++/*557726*/ OPC_CheckType, MVT::v2i64, ++/*557728*/ OPC_MoveParent, ++/*557729*/ OPC_CheckType, MVT::v2i64, ++/*557731*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*557733*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b)), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*557741*/ /*Scope*/ 63, /*->557805*/ ++/*557742*/ OPC_CheckChild0Same, 0, ++/*557744*/ OPC_CheckChild1Same, 1, ++/*557746*/ OPC_MoveParent, ++/*557747*/ OPC_MoveChild1, ++/*557748*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*557751*/ OPC_CheckChild0Integer, 1, ++/*557753*/ OPC_CheckChild0Type, MVT::i64, ++/*557755*/ OPC_CheckChild1Integer, 1, ++/*557757*/ OPC_CheckChild1Type, MVT::i64, ++/*557759*/ OPC_MoveParent, ++/*557760*/ OPC_MoveParent, ++/*557761*/ OPC_MoveChild1, ++/*557762*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*557765*/ OPC_CheckChild0Integer, 63, ++/*557767*/ OPC_CheckChild0Type, MVT::i64, ++/*557769*/ OPC_CheckChild1Integer, 63, ++/*557771*/ OPC_CheckChild1Type, MVT::i64, ++/*557773*/ OPC_CheckType, MVT::v2i64, ++/*557775*/ OPC_MoveParent, ++/*557776*/ OPC_MoveParent, ++/*557777*/ OPC_MoveParent, ++/*557778*/ OPC_MoveChild1, ++/*557779*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*557782*/ OPC_CheckChild0Integer, 1, ++/*557784*/ OPC_CheckChild0Type, MVT::i64, ++/*557786*/ OPC_CheckChild1Integer, 1, ++/*557788*/ OPC_CheckChild1Type, MVT::i64, ++/*557790*/ OPC_CheckType, MVT::v2i64, ++/*557792*/ OPC_MoveParent, ++/*557793*/ OPC_CheckType, MVT::v2i64, ++/*557795*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*557797*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b)), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*557805*/ /*Scope*/ 63, /*->557869*/ ++/*557806*/ OPC_CheckChild0Same, 1, ++/*557808*/ OPC_CheckChild1Same, 0, ++/*557810*/ OPC_MoveParent, ++/*557811*/ OPC_MoveChild1, ++/*557812*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*557815*/ OPC_CheckChild0Integer, 1, ++/*557817*/ OPC_CheckChild0Type, MVT::i64, ++/*557819*/ OPC_CheckChild1Integer, 1, ++/*557821*/ OPC_CheckChild1Type, MVT::i64, ++/*557823*/ OPC_MoveParent, ++/*557824*/ OPC_MoveParent, ++/*557825*/ OPC_MoveChild1, ++/*557826*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*557829*/ OPC_CheckChild0Integer, 63, ++/*557831*/ OPC_CheckChild0Type, MVT::i64, ++/*557833*/ OPC_CheckChild1Integer, 63, ++/*557835*/ OPC_CheckChild1Type, MVT::i64, ++/*557837*/ OPC_CheckType, MVT::v2i64, ++/*557839*/ OPC_MoveParent, ++/*557840*/ OPC_MoveParent, ++/*557841*/ OPC_MoveParent, ++/*557842*/ OPC_MoveChild1, ++/*557843*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*557846*/ OPC_CheckChild0Integer, 1, ++/*557848*/ OPC_CheckChild0Type, MVT::i64, ++/*557850*/ OPC_CheckChild1Integer, 1, ++/*557852*/ OPC_CheckChild1Type, MVT::i64, ++/*557854*/ OPC_CheckType, MVT::v2i64, ++/*557856*/ OPC_MoveParent, ++/*557857*/ OPC_CheckType, MVT::v2i64, ++/*557859*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*557861*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b)), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*557869*/ 0, /*End of Scope*/ ++/*557870*/ /*Scope*/ 4|128,1/*132*/, /*->558004*/ ++/*557872*/ OPC_CheckChild0Same, 1, ++/*557874*/ OPC_MoveChild1, ++/*557875*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*557878*/ OPC_Scope, 61, /*->557941*/ // 2 children in Scope ++/*557880*/ OPC_MoveChild0, ++/*557881*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*557884*/ OPC_CheckChild0Integer, 1, ++/*557886*/ OPC_CheckChild0Type, MVT::i64, ++/*557888*/ OPC_CheckChild1Integer, 1, ++/*557890*/ OPC_CheckChild1Type, MVT::i64, ++/*557892*/ OPC_MoveParent, ++/*557893*/ OPC_CheckChild1Same, 0, ++/*557895*/ OPC_MoveParent, ++/*557896*/ OPC_MoveParent, ++/*557897*/ OPC_MoveChild1, ++/*557898*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*557901*/ OPC_CheckChild0Integer, 63, ++/*557903*/ OPC_CheckChild0Type, MVT::i64, ++/*557905*/ OPC_CheckChild1Integer, 63, ++/*557907*/ OPC_CheckChild1Type, MVT::i64, ++/*557909*/ OPC_CheckType, MVT::v2i64, ++/*557911*/ OPC_MoveParent, ++/*557912*/ OPC_MoveParent, ++/*557913*/ OPC_MoveParent, ++/*557914*/ OPC_MoveChild1, ++/*557915*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*557918*/ OPC_CheckChild0Integer, 1, ++/*557920*/ OPC_CheckChild0Type, MVT::i64, ++/*557922*/ OPC_CheckChild1Integer, 1, ++/*557924*/ OPC_CheckChild1Type, MVT::i64, ++/*557926*/ OPC_CheckType, MVT::v2i64, ++/*557928*/ OPC_MoveParent, ++/*557929*/ OPC_CheckType, MVT::v2i64, ++/*557931*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*557933*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b)), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*557941*/ /*Scope*/ 61, /*->558003*/ ++/*557942*/ OPC_CheckChild0Same, 0, ++/*557944*/ OPC_MoveChild1, ++/*557945*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*557948*/ OPC_CheckChild0Integer, 1, ++/*557950*/ OPC_CheckChild0Type, MVT::i64, ++/*557952*/ OPC_CheckChild1Integer, 1, ++/*557954*/ OPC_CheckChild1Type, MVT::i64, ++/*557956*/ OPC_MoveParent, ++/*557957*/ OPC_MoveParent, ++/*557958*/ OPC_MoveParent, ++/*557959*/ OPC_MoveChild1, ++/*557960*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*557963*/ OPC_CheckChild0Integer, 63, ++/*557965*/ OPC_CheckChild0Type, MVT::i64, ++/*557967*/ OPC_CheckChild1Integer, 63, ++/*557969*/ OPC_CheckChild1Type, MVT::i64, ++/*557971*/ OPC_CheckType, MVT::v2i64, ++/*557973*/ OPC_MoveParent, ++/*557974*/ OPC_MoveParent, ++/*557975*/ OPC_MoveParent, ++/*557976*/ OPC_MoveChild1, ++/*557977*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*557980*/ OPC_CheckChild0Integer, 1, ++/*557982*/ OPC_CheckChild0Type, MVT::i64, ++/*557984*/ OPC_CheckChild1Integer, 1, ++/*557986*/ OPC_CheckChild1Type, MVT::i64, ++/*557988*/ OPC_CheckType, MVT::v2i64, ++/*557990*/ OPC_MoveParent, ++/*557991*/ OPC_CheckType, MVT::v2i64, ++/*557993*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*557995*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b)), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*558003*/ 0, /*End of Scope*/ ++/*558004*/ /*Scope*/ 4|128,1/*132*/, /*->558138*/ ++/*558006*/ OPC_CheckChild0Same, 0, ++/*558008*/ OPC_MoveChild1, ++/*558009*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*558012*/ OPC_Scope, 61, /*->558075*/ // 2 children in Scope ++/*558014*/ OPC_MoveChild0, ++/*558015*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*558018*/ OPC_CheckChild0Integer, 1, ++/*558020*/ OPC_CheckChild0Type, MVT::i64, ++/*558022*/ OPC_CheckChild1Integer, 1, ++/*558024*/ OPC_CheckChild1Type, MVT::i64, ++/*558026*/ OPC_MoveParent, ++/*558027*/ OPC_CheckChild1Same, 1, ++/*558029*/ OPC_MoveParent, ++/*558030*/ OPC_MoveParent, ++/*558031*/ OPC_MoveChild1, ++/*558032*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*558035*/ OPC_CheckChild0Integer, 63, ++/*558037*/ OPC_CheckChild0Type, MVT::i64, ++/*558039*/ OPC_CheckChild1Integer, 63, ++/*558041*/ OPC_CheckChild1Type, MVT::i64, ++/*558043*/ OPC_CheckType, MVT::v2i64, ++/*558045*/ OPC_MoveParent, ++/*558046*/ OPC_MoveParent, ++/*558047*/ OPC_MoveParent, ++/*558048*/ OPC_MoveChild1, ++/*558049*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*558052*/ OPC_CheckChild0Integer, 1, ++/*558054*/ OPC_CheckChild0Type, MVT::i64, ++/*558056*/ OPC_CheckChild1Integer, 1, ++/*558058*/ OPC_CheckChild1Type, MVT::i64, ++/*558060*/ OPC_CheckType, MVT::v2i64, ++/*558062*/ OPC_MoveParent, ++/*558063*/ OPC_CheckType, MVT::v2i64, ++/*558065*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*558067*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b)), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*558075*/ /*Scope*/ 61, /*->558137*/ ++/*558076*/ OPC_CheckChild0Same, 1, ++/*558078*/ OPC_MoveChild1, ++/*558079*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*558082*/ OPC_CheckChild0Integer, 1, ++/*558084*/ OPC_CheckChild0Type, MVT::i64, ++/*558086*/ OPC_CheckChild1Integer, 1, ++/*558088*/ OPC_CheckChild1Type, MVT::i64, ++/*558090*/ OPC_MoveParent, ++/*558091*/ OPC_MoveParent, ++/*558092*/ OPC_MoveParent, ++/*558093*/ OPC_MoveChild1, ++/*558094*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*558097*/ OPC_CheckChild0Integer, 63, ++/*558099*/ OPC_CheckChild0Type, MVT::i64, ++/*558101*/ OPC_CheckChild1Integer, 63, ++/*558103*/ OPC_CheckChild1Type, MVT::i64, ++/*558105*/ OPC_CheckType, MVT::v2i64, ++/*558107*/ OPC_MoveParent, ++/*558108*/ OPC_MoveParent, ++/*558109*/ OPC_MoveParent, ++/*558110*/ OPC_MoveChild1, ++/*558111*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*558114*/ OPC_CheckChild0Integer, 1, ++/*558116*/ OPC_CheckChild0Type, MVT::i64, ++/*558118*/ OPC_CheckChild1Integer, 1, ++/*558120*/ OPC_CheckChild1Type, MVT::i64, ++/*558122*/ OPC_CheckType, MVT::v2i64, ++/*558124*/ OPC_MoveParent, ++/*558125*/ OPC_CheckType, MVT::v2i64, ++/*558127*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*558129*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b)), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*558137*/ 0, /*End of Scope*/ ++/*558138*/ /*Scope*/ 121, /*->558260*/ ++/*558139*/ OPC_MoveChild0, ++/*558140*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*558143*/ OPC_CheckChild0Integer, 1, ++/*558145*/ OPC_CheckChild0Type, MVT::i64, ++/*558147*/ OPC_CheckChild1Integer, 1, ++/*558149*/ OPC_CheckChild1Type, MVT::i64, ++/*558151*/ OPC_MoveParent, ++/*558152*/ OPC_MoveChild1, ++/*558153*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*558156*/ OPC_Scope, 50, /*->558208*/ // 2 children in Scope ++/*558158*/ OPC_CheckChild0Same, 0, ++/*558160*/ OPC_CheckChild1Same, 1, ++/*558162*/ OPC_MoveParent, ++/*558163*/ OPC_MoveParent, ++/*558164*/ OPC_MoveChild1, ++/*558165*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*558168*/ OPC_CheckChild0Integer, 63, ++/*558170*/ OPC_CheckChild0Type, MVT::i64, ++/*558172*/ OPC_CheckChild1Integer, 63, ++/*558174*/ OPC_CheckChild1Type, MVT::i64, ++/*558176*/ OPC_CheckType, MVT::v2i64, ++/*558178*/ OPC_MoveParent, ++/*558179*/ OPC_MoveParent, ++/*558180*/ OPC_MoveParent, ++/*558181*/ OPC_MoveChild1, ++/*558182*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*558185*/ OPC_CheckChild0Integer, 1, ++/*558187*/ OPC_CheckChild0Type, MVT::i64, ++/*558189*/ OPC_CheckChild1Integer, 1, ++/*558191*/ OPC_CheckChild1Type, MVT::i64, ++/*558193*/ OPC_CheckType, MVT::v2i64, ++/*558195*/ OPC_MoveParent, ++/*558196*/ OPC_CheckType, MVT::v2i64, ++/*558198*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*558200*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b)), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*558208*/ /*Scope*/ 50, /*->558259*/ ++/*558209*/ OPC_CheckChild0Same, 1, ++/*558211*/ OPC_CheckChild1Same, 0, ++/*558213*/ OPC_MoveParent, ++/*558214*/ OPC_MoveParent, ++/*558215*/ OPC_MoveChild1, ++/*558216*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*558219*/ OPC_CheckChild0Integer, 63, ++/*558221*/ OPC_CheckChild0Type, MVT::i64, ++/*558223*/ OPC_CheckChild1Integer, 63, ++/*558225*/ OPC_CheckChild1Type, MVT::i64, ++/*558227*/ OPC_CheckType, MVT::v2i64, ++/*558229*/ OPC_MoveParent, ++/*558230*/ OPC_MoveParent, ++/*558231*/ OPC_MoveParent, ++/*558232*/ OPC_MoveChild1, ++/*558233*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*558236*/ OPC_CheckChild0Integer, 1, ++/*558238*/ OPC_CheckChild0Type, MVT::i64, ++/*558240*/ OPC_CheckChild1Integer, 1, ++/*558242*/ OPC_CheckChild1Type, MVT::i64, ++/*558244*/ OPC_CheckType, MVT::v2i64, ++/*558246*/ OPC_MoveParent, ++/*558247*/ OPC_CheckType, MVT::v2i64, ++/*558249*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*558251*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b)), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*558259*/ 0, /*End of Scope*/ ++/*558260*/ 0, /*End of Scope*/ ++/*558261*/ /*Scope*/ 40|128,6/*808*/, /*->559071*/ ++/*558263*/ OPC_RecordChild0, // #1 = $b ++/*558264*/ OPC_MoveChild1, ++/*558265*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*558268*/ OPC_CheckChild0Integer, 1, ++/*558270*/ OPC_CheckChild0Type, MVT::i64, ++/*558272*/ OPC_CheckChild1Integer, 1, ++/*558274*/ OPC_CheckChild1Type, MVT::i64, ++/*558276*/ OPC_MoveParent, ++/*558277*/ OPC_MoveParent, ++/*558278*/ OPC_MoveParent, ++/*558279*/ OPC_MoveChild1, ++/*558280*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*558283*/ OPC_MoveChild0, ++/*558284*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*558287*/ OPC_Scope, 6|128,3/*390*/, /*->558680*/ // 4 children in Scope ++/*558290*/ OPC_MoveChild0, ++/*558291*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*558294*/ OPC_Scope, 63, /*->558359*/ // 6 children in Scope ++/*558296*/ OPC_MoveChild0, ++/*558297*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*558300*/ OPC_CheckChild0Integer, 1, ++/*558302*/ OPC_CheckChild0Type, MVT::i64, ++/*558304*/ OPC_CheckChild1Integer, 1, ++/*558306*/ OPC_CheckChild1Type, MVT::i64, ++/*558308*/ OPC_MoveParent, ++/*558309*/ OPC_CheckChild1Same, 0, ++/*558311*/ OPC_MoveParent, ++/*558312*/ OPC_CheckChild1Same, 1, ++/*558314*/ OPC_MoveParent, ++/*558315*/ OPC_MoveChild1, ++/*558316*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*558319*/ OPC_CheckChild0Integer, 63, ++/*558321*/ OPC_CheckChild0Type, MVT::i64, ++/*558323*/ OPC_CheckChild1Integer, 63, ++/*558325*/ OPC_CheckChild1Type, MVT::i64, ++/*558327*/ OPC_CheckType, MVT::v2i64, ++/*558329*/ OPC_MoveParent, ++/*558330*/ OPC_MoveParent, ++/*558331*/ OPC_MoveParent, ++/*558332*/ OPC_MoveChild1, ++/*558333*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*558336*/ OPC_CheckChild0Integer, 1, ++/*558338*/ OPC_CheckChild0Type, MVT::i64, ++/*558340*/ OPC_CheckChild1Integer, 1, ++/*558342*/ OPC_CheckChild1Type, MVT::i64, ++/*558344*/ OPC_CheckType, MVT::v2i64, ++/*558346*/ OPC_MoveParent, ++/*558347*/ OPC_CheckType, MVT::v2i64, ++/*558349*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*558351*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a), LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*558359*/ /*Scope*/ 63, /*->558423*/ ++/*558360*/ OPC_CheckChild0Same, 0, ++/*558362*/ OPC_MoveChild1, ++/*558363*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*558366*/ OPC_CheckChild0Integer, 1, ++/*558368*/ OPC_CheckChild0Type, MVT::i64, ++/*558370*/ OPC_CheckChild1Integer, 1, ++/*558372*/ OPC_CheckChild1Type, MVT::i64, ++/*558374*/ OPC_MoveParent, ++/*558375*/ OPC_MoveParent, ++/*558376*/ OPC_CheckChild1Same, 1, ++/*558378*/ OPC_MoveParent, ++/*558379*/ OPC_MoveChild1, ++/*558380*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*558383*/ OPC_CheckChild0Integer, 63, ++/*558385*/ OPC_CheckChild0Type, MVT::i64, ++/*558387*/ OPC_CheckChild1Integer, 63, ++/*558389*/ OPC_CheckChild1Type, MVT::i64, ++/*558391*/ OPC_CheckType, MVT::v2i64, ++/*558393*/ OPC_MoveParent, ++/*558394*/ OPC_MoveParent, ++/*558395*/ OPC_MoveParent, ++/*558396*/ OPC_MoveChild1, ++/*558397*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*558400*/ OPC_CheckChild0Integer, 1, ++/*558402*/ OPC_CheckChild0Type, MVT::i64, ++/*558404*/ OPC_CheckChild1Integer, 1, ++/*558406*/ OPC_CheckChild1Type, MVT::i64, ++/*558408*/ OPC_CheckType, MVT::v2i64, ++/*558410*/ OPC_MoveParent, ++/*558411*/ OPC_CheckType, MVT::v2i64, ++/*558413*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*558415*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*558423*/ /*Scope*/ 63, /*->558487*/ ++/*558424*/ OPC_MoveChild0, ++/*558425*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*558428*/ OPC_CheckChild0Integer, 1, ++/*558430*/ OPC_CheckChild0Type, MVT::i64, ++/*558432*/ OPC_CheckChild1Integer, 1, ++/*558434*/ OPC_CheckChild1Type, MVT::i64, ++/*558436*/ OPC_MoveParent, ++/*558437*/ OPC_CheckChild1Same, 1, ++/*558439*/ OPC_MoveParent, ++/*558440*/ OPC_CheckChild1Same, 0, ++/*558442*/ OPC_MoveParent, ++/*558443*/ OPC_MoveChild1, ++/*558444*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*558447*/ OPC_CheckChild0Integer, 63, ++/*558449*/ OPC_CheckChild0Type, MVT::i64, ++/*558451*/ OPC_CheckChild1Integer, 63, ++/*558453*/ OPC_CheckChild1Type, MVT::i64, ++/*558455*/ OPC_CheckType, MVT::v2i64, ++/*558457*/ OPC_MoveParent, ++/*558458*/ OPC_MoveParent, ++/*558459*/ OPC_MoveParent, ++/*558460*/ OPC_MoveChild1, ++/*558461*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*558464*/ OPC_CheckChild0Integer, 1, ++/*558466*/ OPC_CheckChild0Type, MVT::i64, ++/*558468*/ OPC_CheckChild1Integer, 1, ++/*558470*/ OPC_CheckChild1Type, MVT::i64, ++/*558472*/ OPC_CheckType, MVT::v2i64, ++/*558474*/ OPC_MoveParent, ++/*558475*/ OPC_CheckType, MVT::v2i64, ++/*558477*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*558479*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b), LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*558487*/ /*Scope*/ 63, /*->558551*/ ++/*558488*/ OPC_CheckChild0Same, 1, ++/*558490*/ OPC_MoveChild1, ++/*558491*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*558494*/ OPC_CheckChild0Integer, 1, ++/*558496*/ OPC_CheckChild0Type, MVT::i64, ++/*558498*/ OPC_CheckChild1Integer, 1, ++/*558500*/ OPC_CheckChild1Type, MVT::i64, ++/*558502*/ OPC_MoveParent, ++/*558503*/ OPC_MoveParent, ++/*558504*/ OPC_CheckChild1Same, 0, ++/*558506*/ OPC_MoveParent, ++/*558507*/ OPC_MoveChild1, ++/*558508*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*558511*/ OPC_CheckChild0Integer, 63, ++/*558513*/ OPC_CheckChild0Type, MVT::i64, ++/*558515*/ OPC_CheckChild1Integer, 63, ++/*558517*/ OPC_CheckChild1Type, MVT::i64, ++/*558519*/ OPC_CheckType, MVT::v2i64, ++/*558521*/ OPC_MoveParent, ++/*558522*/ OPC_MoveParent, ++/*558523*/ OPC_MoveParent, ++/*558524*/ OPC_MoveChild1, ++/*558525*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*558528*/ OPC_CheckChild0Integer, 1, ++/*558530*/ OPC_CheckChild0Type, MVT::i64, ++/*558532*/ OPC_CheckChild1Integer, 1, ++/*558534*/ OPC_CheckChild1Type, MVT::i64, ++/*558536*/ OPC_CheckType, MVT::v2i64, ++/*558538*/ OPC_MoveParent, ++/*558539*/ OPC_CheckType, MVT::v2i64, ++/*558541*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*558543*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*558551*/ /*Scope*/ 63, /*->558615*/ ++/*558552*/ OPC_CheckChild0Same, 0, ++/*558554*/ OPC_CheckChild1Same, 1, ++/*558556*/ OPC_MoveParent, ++/*558557*/ OPC_MoveChild1, ++/*558558*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*558561*/ OPC_CheckChild0Integer, 1, ++/*558563*/ OPC_CheckChild0Type, MVT::i64, ++/*558565*/ OPC_CheckChild1Integer, 1, ++/*558567*/ OPC_CheckChild1Type, MVT::i64, ++/*558569*/ OPC_MoveParent, ++/*558570*/ OPC_MoveParent, ++/*558571*/ OPC_MoveChild1, ++/*558572*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*558575*/ OPC_CheckChild0Integer, 63, ++/*558577*/ OPC_CheckChild0Type, MVT::i64, ++/*558579*/ OPC_CheckChild1Integer, 63, ++/*558581*/ OPC_CheckChild1Type, MVT::i64, ++/*558583*/ OPC_CheckType, MVT::v2i64, ++/*558585*/ OPC_MoveParent, ++/*558586*/ OPC_MoveParent, ++/*558587*/ OPC_MoveParent, ++/*558588*/ OPC_MoveChild1, ++/*558589*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*558592*/ OPC_CheckChild0Integer, 1, ++/*558594*/ OPC_CheckChild0Type, MVT::i64, ++/*558596*/ OPC_CheckChild1Integer, 1, ++/*558598*/ OPC_CheckChild1Type, MVT::i64, ++/*558600*/ OPC_CheckType, MVT::v2i64, ++/*558602*/ OPC_MoveParent, ++/*558603*/ OPC_CheckType, MVT::v2i64, ++/*558605*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*558607*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*558615*/ /*Scope*/ 63, /*->558679*/ ++/*558616*/ OPC_CheckChild0Same, 1, ++/*558618*/ OPC_CheckChild1Same, 0, ++/*558620*/ OPC_MoveParent, ++/*558621*/ OPC_MoveChild1, ++/*558622*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*558625*/ OPC_CheckChild0Integer, 1, ++/*558627*/ OPC_CheckChild0Type, MVT::i64, ++/*558629*/ OPC_CheckChild1Integer, 1, ++/*558631*/ OPC_CheckChild1Type, MVT::i64, ++/*558633*/ OPC_MoveParent, ++/*558634*/ OPC_MoveParent, ++/*558635*/ OPC_MoveChild1, ++/*558636*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*558639*/ OPC_CheckChild0Integer, 63, ++/*558641*/ OPC_CheckChild0Type, MVT::i64, ++/*558643*/ OPC_CheckChild1Integer, 63, ++/*558645*/ OPC_CheckChild1Type, MVT::i64, ++/*558647*/ OPC_CheckType, MVT::v2i64, ++/*558649*/ OPC_MoveParent, ++/*558650*/ OPC_MoveParent, ++/*558651*/ OPC_MoveParent, ++/*558652*/ OPC_MoveChild1, ++/*558653*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*558656*/ OPC_CheckChild0Integer, 1, ++/*558658*/ OPC_CheckChild0Type, MVT::i64, ++/*558660*/ OPC_CheckChild1Integer, 1, ++/*558662*/ OPC_CheckChild1Type, MVT::i64, ++/*558664*/ OPC_CheckType, MVT::v2i64, ++/*558666*/ OPC_MoveParent, ++/*558667*/ OPC_CheckType, MVT::v2i64, ++/*558669*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*558671*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*558679*/ 0, /*End of Scope*/ ++/*558680*/ /*Scope*/ 4|128,1/*132*/, /*->558814*/ ++/*558682*/ OPC_CheckChild0Same, 1, ++/*558684*/ OPC_MoveChild1, ++/*558685*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*558688*/ OPC_Scope, 61, /*->558751*/ // 2 children in Scope ++/*558690*/ OPC_MoveChild0, ++/*558691*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*558694*/ OPC_CheckChild0Integer, 1, ++/*558696*/ OPC_CheckChild0Type, MVT::i64, ++/*558698*/ OPC_CheckChild1Integer, 1, ++/*558700*/ OPC_CheckChild1Type, MVT::i64, ++/*558702*/ OPC_MoveParent, ++/*558703*/ OPC_CheckChild1Same, 0, ++/*558705*/ OPC_MoveParent, ++/*558706*/ OPC_MoveParent, ++/*558707*/ OPC_MoveChild1, ++/*558708*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*558711*/ OPC_CheckChild0Integer, 63, ++/*558713*/ OPC_CheckChild0Type, MVT::i64, ++/*558715*/ OPC_CheckChild1Integer, 63, ++/*558717*/ OPC_CheckChild1Type, MVT::i64, ++/*558719*/ OPC_CheckType, MVT::v2i64, ++/*558721*/ OPC_MoveParent, ++/*558722*/ OPC_MoveParent, ++/*558723*/ OPC_MoveParent, ++/*558724*/ OPC_MoveChild1, ++/*558725*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*558728*/ OPC_CheckChild0Integer, 1, ++/*558730*/ OPC_CheckChild0Type, MVT::i64, ++/*558732*/ OPC_CheckChild1Integer, 1, ++/*558734*/ OPC_CheckChild1Type, MVT::i64, ++/*558736*/ OPC_CheckType, MVT::v2i64, ++/*558738*/ OPC_MoveParent, ++/*558739*/ OPC_CheckType, MVT::v2i64, ++/*558741*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*558743*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*558751*/ /*Scope*/ 61, /*->558813*/ ++/*558752*/ OPC_CheckChild0Same, 0, ++/*558754*/ OPC_MoveChild1, ++/*558755*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*558758*/ OPC_CheckChild0Integer, 1, ++/*558760*/ OPC_CheckChild0Type, MVT::i64, ++/*558762*/ OPC_CheckChild1Integer, 1, ++/*558764*/ OPC_CheckChild1Type, MVT::i64, ++/*558766*/ OPC_MoveParent, ++/*558767*/ OPC_MoveParent, ++/*558768*/ OPC_MoveParent, ++/*558769*/ OPC_MoveChild1, ++/*558770*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*558773*/ OPC_CheckChild0Integer, 63, ++/*558775*/ OPC_CheckChild0Type, MVT::i64, ++/*558777*/ OPC_CheckChild1Integer, 63, ++/*558779*/ OPC_CheckChild1Type, MVT::i64, ++/*558781*/ OPC_CheckType, MVT::v2i64, ++/*558783*/ OPC_MoveParent, ++/*558784*/ OPC_MoveParent, ++/*558785*/ OPC_MoveParent, ++/*558786*/ OPC_MoveChild1, ++/*558787*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*558790*/ OPC_CheckChild0Integer, 1, ++/*558792*/ OPC_CheckChild0Type, MVT::i64, ++/*558794*/ OPC_CheckChild1Integer, 1, ++/*558796*/ OPC_CheckChild1Type, MVT::i64, ++/*558798*/ OPC_CheckType, MVT::v2i64, ++/*558800*/ OPC_MoveParent, ++/*558801*/ OPC_CheckType, MVT::v2i64, ++/*558803*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*558805*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*558813*/ 0, /*End of Scope*/ ++/*558814*/ /*Scope*/ 4|128,1/*132*/, /*->558948*/ ++/*558816*/ OPC_CheckChild0Same, 0, ++/*558818*/ OPC_MoveChild1, ++/*558819*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*558822*/ OPC_Scope, 61, /*->558885*/ // 2 children in Scope ++/*558824*/ OPC_MoveChild0, ++/*558825*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*558828*/ OPC_CheckChild0Integer, 1, ++/*558830*/ OPC_CheckChild0Type, MVT::i64, ++/*558832*/ OPC_CheckChild1Integer, 1, ++/*558834*/ OPC_CheckChild1Type, MVT::i64, ++/*558836*/ OPC_MoveParent, ++/*558837*/ OPC_CheckChild1Same, 1, ++/*558839*/ OPC_MoveParent, ++/*558840*/ OPC_MoveParent, ++/*558841*/ OPC_MoveChild1, ++/*558842*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*558845*/ OPC_CheckChild0Integer, 63, ++/*558847*/ OPC_CheckChild0Type, MVT::i64, ++/*558849*/ OPC_CheckChild1Integer, 63, ++/*558851*/ OPC_CheckChild1Type, MVT::i64, ++/*558853*/ OPC_CheckType, MVT::v2i64, ++/*558855*/ OPC_MoveParent, ++/*558856*/ OPC_MoveParent, ++/*558857*/ OPC_MoveParent, ++/*558858*/ OPC_MoveChild1, ++/*558859*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*558862*/ OPC_CheckChild0Integer, 1, ++/*558864*/ OPC_CheckChild0Type, MVT::i64, ++/*558866*/ OPC_CheckChild1Integer, 1, ++/*558868*/ OPC_CheckChild1Type, MVT::i64, ++/*558870*/ OPC_CheckType, MVT::v2i64, ++/*558872*/ OPC_MoveParent, ++/*558873*/ OPC_CheckType, MVT::v2i64, ++/*558875*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*558877*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*558885*/ /*Scope*/ 61, /*->558947*/ ++/*558886*/ OPC_CheckChild0Same, 1, ++/*558888*/ OPC_MoveChild1, ++/*558889*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*558892*/ OPC_CheckChild0Integer, 1, ++/*558894*/ OPC_CheckChild0Type, MVT::i64, ++/*558896*/ OPC_CheckChild1Integer, 1, ++/*558898*/ OPC_CheckChild1Type, MVT::i64, ++/*558900*/ OPC_MoveParent, ++/*558901*/ OPC_MoveParent, ++/*558902*/ OPC_MoveParent, ++/*558903*/ OPC_MoveChild1, ++/*558904*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*558907*/ OPC_CheckChild0Integer, 63, ++/*558909*/ OPC_CheckChild0Type, MVT::i64, ++/*558911*/ OPC_CheckChild1Integer, 63, ++/*558913*/ OPC_CheckChild1Type, MVT::i64, ++/*558915*/ OPC_CheckType, MVT::v2i64, ++/*558917*/ OPC_MoveParent, ++/*558918*/ OPC_MoveParent, ++/*558919*/ OPC_MoveParent, ++/*558920*/ OPC_MoveChild1, ++/*558921*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*558924*/ OPC_CheckChild0Integer, 1, ++/*558926*/ OPC_CheckChild0Type, MVT::i64, ++/*558928*/ OPC_CheckChild1Integer, 1, ++/*558930*/ OPC_CheckChild1Type, MVT::i64, ++/*558932*/ OPC_CheckType, MVT::v2i64, ++/*558934*/ OPC_MoveParent, ++/*558935*/ OPC_CheckType, MVT::v2i64, ++/*558937*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*558939*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*558947*/ 0, /*End of Scope*/ ++/*558948*/ /*Scope*/ 121, /*->559070*/ ++/*558949*/ OPC_MoveChild0, ++/*558950*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*558953*/ OPC_CheckChild0Integer, 1, ++/*558955*/ OPC_CheckChild0Type, MVT::i64, ++/*558957*/ OPC_CheckChild1Integer, 1, ++/*558959*/ OPC_CheckChild1Type, MVT::i64, ++/*558961*/ OPC_MoveParent, ++/*558962*/ OPC_MoveChild1, ++/*558963*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*558966*/ OPC_Scope, 50, /*->559018*/ // 2 children in Scope ++/*558968*/ OPC_CheckChild0Same, 0, ++/*558970*/ OPC_CheckChild1Same, 1, ++/*558972*/ OPC_MoveParent, ++/*558973*/ OPC_MoveParent, ++/*558974*/ OPC_MoveChild1, ++/*558975*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*558978*/ OPC_CheckChild0Integer, 63, ++/*558980*/ OPC_CheckChild0Type, MVT::i64, ++/*558982*/ OPC_CheckChild1Integer, 63, ++/*558984*/ OPC_CheckChild1Type, MVT::i64, ++/*558986*/ OPC_CheckType, MVT::v2i64, ++/*558988*/ OPC_MoveParent, ++/*558989*/ OPC_MoveParent, ++/*558990*/ OPC_MoveParent, ++/*558991*/ OPC_MoveChild1, ++/*558992*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*558995*/ OPC_CheckChild0Integer, 1, ++/*558997*/ OPC_CheckChild0Type, MVT::i64, ++/*558999*/ OPC_CheckChild1Integer, 1, ++/*559001*/ OPC_CheckChild1Type, MVT::i64, ++/*559003*/ OPC_CheckType, MVT::v2i64, ++/*559005*/ OPC_MoveParent, ++/*559006*/ OPC_CheckType, MVT::v2i64, ++/*559008*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*559010*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*559018*/ /*Scope*/ 50, /*->559069*/ ++/*559019*/ OPC_CheckChild0Same, 1, ++/*559021*/ OPC_CheckChild1Same, 0, ++/*559023*/ OPC_MoveParent, ++/*559024*/ OPC_MoveParent, ++/*559025*/ OPC_MoveChild1, ++/*559026*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*559029*/ OPC_CheckChild0Integer, 63, ++/*559031*/ OPC_CheckChild0Type, MVT::i64, ++/*559033*/ OPC_CheckChild1Integer, 63, ++/*559035*/ OPC_CheckChild1Type, MVT::i64, ++/*559037*/ OPC_CheckType, MVT::v2i64, ++/*559039*/ OPC_MoveParent, ++/*559040*/ OPC_MoveParent, ++/*559041*/ OPC_MoveParent, ++/*559042*/ OPC_MoveChild1, ++/*559043*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*559046*/ OPC_CheckChild0Integer, 1, ++/*559048*/ OPC_CheckChild0Type, MVT::i64, ++/*559050*/ OPC_CheckChild1Integer, 1, ++/*559052*/ OPC_CheckChild1Type, MVT::i64, ++/*559054*/ OPC_CheckType, MVT::v2i64, ++/*559056*/ OPC_MoveParent, ++/*559057*/ OPC_CheckType, MVT::v2i64, ++/*559059*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*559061*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*559069*/ 0, /*End of Scope*/ ++/*559070*/ 0, /*End of Scope*/ ++/*559071*/ 0, /*End of Scope*/ ++/*559072*/ /*Scope*/ 6|128,12/*1542*/, /*->560616*/ ++/*559074*/ OPC_MoveChild0, ++/*559075*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*559078*/ OPC_CheckChild0Integer, 1, ++/*559080*/ OPC_CheckChild0Type, MVT::i64, ++/*559082*/ OPC_CheckChild1Integer, 1, ++/*559084*/ OPC_CheckChild1Type, MVT::i64, ++/*559086*/ OPC_MoveParent, ++/*559087*/ OPC_MoveChild1, ++/*559088*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*559091*/ OPC_RecordChild0, // #0 = $a ++/*559092*/ OPC_RecordChild1, // #1 = $b ++/*559093*/ OPC_MoveParent, ++/*559094*/ OPC_MoveParent, ++/*559095*/ OPC_MoveChild1, ++/*559096*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*559099*/ OPC_MoveChild0, ++/*559100*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*559103*/ OPC_Scope, 6|128,3/*390*/, /*->559496*/ // 7 children in Scope ++/*559106*/ OPC_MoveChild0, ++/*559107*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*559110*/ OPC_Scope, 63, /*->559175*/ // 6 children in Scope ++/*559112*/ OPC_MoveChild0, ++/*559113*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*559116*/ OPC_CheckChild0Integer, 1, ++/*559118*/ OPC_CheckChild0Type, MVT::i64, ++/*559120*/ OPC_CheckChild1Integer, 1, ++/*559122*/ OPC_CheckChild1Type, MVT::i64, ++/*559124*/ OPC_MoveParent, ++/*559125*/ OPC_CheckChild1Same, 0, ++/*559127*/ OPC_MoveParent, ++/*559128*/ OPC_CheckChild1Same, 1, ++/*559130*/ OPC_MoveParent, ++/*559131*/ OPC_MoveChild1, ++/*559132*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*559135*/ OPC_CheckChild0Integer, 63, ++/*559137*/ OPC_CheckChild0Type, MVT::i64, ++/*559139*/ OPC_CheckChild1Integer, 63, ++/*559141*/ OPC_CheckChild1Type, MVT::i64, ++/*559143*/ OPC_CheckType, MVT::v2i64, ++/*559145*/ OPC_MoveParent, ++/*559146*/ OPC_MoveParent, ++/*559147*/ OPC_MoveParent, ++/*559148*/ OPC_MoveChild1, ++/*559149*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*559152*/ OPC_CheckChild0Integer, 1, ++/*559154*/ OPC_CheckChild0Type, MVT::i64, ++/*559156*/ OPC_CheckChild1Integer, 1, ++/*559158*/ OPC_CheckChild1Type, MVT::i64, ++/*559160*/ OPC_CheckType, MVT::v2i64, ++/*559162*/ OPC_MoveParent, ++/*559163*/ OPC_CheckType, MVT::v2i64, ++/*559165*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*559167*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b)), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a), LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*559175*/ /*Scope*/ 63, /*->559239*/ ++/*559176*/ OPC_CheckChild0Same, 0, ++/*559178*/ OPC_MoveChild1, ++/*559179*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*559182*/ OPC_CheckChild0Integer, 1, ++/*559184*/ OPC_CheckChild0Type, MVT::i64, ++/*559186*/ OPC_CheckChild1Integer, 1, ++/*559188*/ OPC_CheckChild1Type, MVT::i64, ++/*559190*/ OPC_MoveParent, ++/*559191*/ OPC_MoveParent, ++/*559192*/ OPC_CheckChild1Same, 1, ++/*559194*/ OPC_MoveParent, ++/*559195*/ OPC_MoveChild1, ++/*559196*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*559199*/ OPC_CheckChild0Integer, 63, ++/*559201*/ OPC_CheckChild0Type, MVT::i64, ++/*559203*/ OPC_CheckChild1Integer, 63, ++/*559205*/ OPC_CheckChild1Type, MVT::i64, ++/*559207*/ OPC_CheckType, MVT::v2i64, ++/*559209*/ OPC_MoveParent, ++/*559210*/ OPC_MoveParent, ++/*559211*/ OPC_MoveParent, ++/*559212*/ OPC_MoveChild1, ++/*559213*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*559216*/ OPC_CheckChild0Integer, 1, ++/*559218*/ OPC_CheckChild0Type, MVT::i64, ++/*559220*/ OPC_CheckChild1Integer, 1, ++/*559222*/ OPC_CheckChild1Type, MVT::i64, ++/*559224*/ OPC_CheckType, MVT::v2i64, ++/*559226*/ OPC_MoveParent, ++/*559227*/ OPC_CheckType, MVT::v2i64, ++/*559229*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*559231*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b)), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*559239*/ /*Scope*/ 63, /*->559303*/ ++/*559240*/ OPC_MoveChild0, ++/*559241*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*559244*/ OPC_CheckChild0Integer, 1, ++/*559246*/ OPC_CheckChild0Type, MVT::i64, ++/*559248*/ OPC_CheckChild1Integer, 1, ++/*559250*/ OPC_CheckChild1Type, MVT::i64, ++/*559252*/ OPC_MoveParent, ++/*559253*/ OPC_CheckChild1Same, 1, ++/*559255*/ OPC_MoveParent, ++/*559256*/ OPC_CheckChild1Same, 0, ++/*559258*/ OPC_MoveParent, ++/*559259*/ OPC_MoveChild1, ++/*559260*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*559263*/ OPC_CheckChild0Integer, 63, ++/*559265*/ OPC_CheckChild0Type, MVT::i64, ++/*559267*/ OPC_CheckChild1Integer, 63, ++/*559269*/ OPC_CheckChild1Type, MVT::i64, ++/*559271*/ OPC_CheckType, MVT::v2i64, ++/*559273*/ OPC_MoveParent, ++/*559274*/ OPC_MoveParent, ++/*559275*/ OPC_MoveParent, ++/*559276*/ OPC_MoveChild1, ++/*559277*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*559280*/ OPC_CheckChild0Integer, 1, ++/*559282*/ OPC_CheckChild0Type, MVT::i64, ++/*559284*/ OPC_CheckChild1Integer, 1, ++/*559286*/ OPC_CheckChild1Type, MVT::i64, ++/*559288*/ OPC_CheckType, MVT::v2i64, ++/*559290*/ OPC_MoveParent, ++/*559291*/ OPC_CheckType, MVT::v2i64, ++/*559293*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*559295*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b)), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b), LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*559303*/ /*Scope*/ 63, /*->559367*/ ++/*559304*/ OPC_CheckChild0Same, 1, ++/*559306*/ OPC_MoveChild1, ++/*559307*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*559310*/ OPC_CheckChild0Integer, 1, ++/*559312*/ OPC_CheckChild0Type, MVT::i64, ++/*559314*/ OPC_CheckChild1Integer, 1, ++/*559316*/ OPC_CheckChild1Type, MVT::i64, ++/*559318*/ OPC_MoveParent, ++/*559319*/ OPC_MoveParent, ++/*559320*/ OPC_CheckChild1Same, 0, ++/*559322*/ OPC_MoveParent, ++/*559323*/ OPC_MoveChild1, ++/*559324*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*559327*/ OPC_CheckChild0Integer, 63, ++/*559329*/ OPC_CheckChild0Type, MVT::i64, ++/*559331*/ OPC_CheckChild1Integer, 63, ++/*559333*/ OPC_CheckChild1Type, MVT::i64, ++/*559335*/ OPC_CheckType, MVT::v2i64, ++/*559337*/ OPC_MoveParent, ++/*559338*/ OPC_MoveParent, ++/*559339*/ OPC_MoveParent, ++/*559340*/ OPC_MoveChild1, ++/*559341*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*559344*/ OPC_CheckChild0Integer, 1, ++/*559346*/ OPC_CheckChild0Type, MVT::i64, ++/*559348*/ OPC_CheckChild1Integer, 1, ++/*559350*/ OPC_CheckChild1Type, MVT::i64, ++/*559352*/ OPC_CheckType, MVT::v2i64, ++/*559354*/ OPC_MoveParent, ++/*559355*/ OPC_CheckType, MVT::v2i64, ++/*559357*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*559359*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b)), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*559367*/ /*Scope*/ 63, /*->559431*/ ++/*559368*/ OPC_CheckChild0Same, 0, ++/*559370*/ OPC_CheckChild1Same, 1, ++/*559372*/ OPC_MoveParent, ++/*559373*/ OPC_MoveChild1, ++/*559374*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*559377*/ OPC_CheckChild0Integer, 1, ++/*559379*/ OPC_CheckChild0Type, MVT::i64, ++/*559381*/ OPC_CheckChild1Integer, 1, ++/*559383*/ OPC_CheckChild1Type, MVT::i64, ++/*559385*/ OPC_MoveParent, ++/*559386*/ OPC_MoveParent, ++/*559387*/ OPC_MoveChild1, ++/*559388*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*559391*/ OPC_CheckChild0Integer, 63, ++/*559393*/ OPC_CheckChild0Type, MVT::i64, ++/*559395*/ OPC_CheckChild1Integer, 63, ++/*559397*/ OPC_CheckChild1Type, MVT::i64, ++/*559399*/ OPC_CheckType, MVT::v2i64, ++/*559401*/ OPC_MoveParent, ++/*559402*/ OPC_MoveParent, ++/*559403*/ OPC_MoveParent, ++/*559404*/ OPC_MoveChild1, ++/*559405*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*559408*/ OPC_CheckChild0Integer, 1, ++/*559410*/ OPC_CheckChild0Type, MVT::i64, ++/*559412*/ OPC_CheckChild1Integer, 1, ++/*559414*/ OPC_CheckChild1Type, MVT::i64, ++/*559416*/ OPC_CheckType, MVT::v2i64, ++/*559418*/ OPC_MoveParent, ++/*559419*/ OPC_CheckType, MVT::v2i64, ++/*559421*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*559423*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b)), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*559431*/ /*Scope*/ 63, /*->559495*/ ++/*559432*/ OPC_CheckChild0Same, 1, ++/*559434*/ OPC_CheckChild1Same, 0, ++/*559436*/ OPC_MoveParent, ++/*559437*/ OPC_MoveChild1, ++/*559438*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*559441*/ OPC_CheckChild0Integer, 1, ++/*559443*/ OPC_CheckChild0Type, MVT::i64, ++/*559445*/ OPC_CheckChild1Integer, 1, ++/*559447*/ OPC_CheckChild1Type, MVT::i64, ++/*559449*/ OPC_MoveParent, ++/*559450*/ OPC_MoveParent, ++/*559451*/ OPC_MoveChild1, ++/*559452*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*559455*/ OPC_CheckChild0Integer, 63, ++/*559457*/ OPC_CheckChild0Type, MVT::i64, ++/*559459*/ OPC_CheckChild1Integer, 63, ++/*559461*/ OPC_CheckChild1Type, MVT::i64, ++/*559463*/ OPC_CheckType, MVT::v2i64, ++/*559465*/ OPC_MoveParent, ++/*559466*/ OPC_MoveParent, ++/*559467*/ OPC_MoveParent, ++/*559468*/ OPC_MoveChild1, ++/*559469*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*559472*/ OPC_CheckChild0Integer, 1, ++/*559474*/ OPC_CheckChild0Type, MVT::i64, ++/*559476*/ OPC_CheckChild1Integer, 1, ++/*559478*/ OPC_CheckChild1Type, MVT::i64, ++/*559480*/ OPC_CheckType, MVT::v2i64, ++/*559482*/ OPC_MoveParent, ++/*559483*/ OPC_CheckType, MVT::v2i64, ++/*559485*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*559487*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b)), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*559495*/ 0, /*End of Scope*/ ++/*559496*/ /*Scope*/ 4|128,1/*132*/, /*->559630*/ ++/*559498*/ OPC_CheckChild0Same, 1, ++/*559500*/ OPC_MoveChild1, ++/*559501*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*559504*/ OPC_Scope, 61, /*->559567*/ // 2 children in Scope ++/*559506*/ OPC_MoveChild0, ++/*559507*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*559510*/ OPC_CheckChild0Integer, 1, ++/*559512*/ OPC_CheckChild0Type, MVT::i64, ++/*559514*/ OPC_CheckChild1Integer, 1, ++/*559516*/ OPC_CheckChild1Type, MVT::i64, ++/*559518*/ OPC_MoveParent, ++/*559519*/ OPC_CheckChild1Same, 0, ++/*559521*/ OPC_MoveParent, ++/*559522*/ OPC_MoveParent, ++/*559523*/ OPC_MoveChild1, ++/*559524*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*559527*/ OPC_CheckChild0Integer, 63, ++/*559529*/ OPC_CheckChild0Type, MVT::i64, ++/*559531*/ OPC_CheckChild1Integer, 63, ++/*559533*/ OPC_CheckChild1Type, MVT::i64, ++/*559535*/ OPC_CheckType, MVT::v2i64, ++/*559537*/ OPC_MoveParent, ++/*559538*/ OPC_MoveParent, ++/*559539*/ OPC_MoveParent, ++/*559540*/ OPC_MoveChild1, ++/*559541*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*559544*/ OPC_CheckChild0Integer, 1, ++/*559546*/ OPC_CheckChild0Type, MVT::i64, ++/*559548*/ OPC_CheckChild1Integer, 1, ++/*559550*/ OPC_CheckChild1Type, MVT::i64, ++/*559552*/ OPC_CheckType, MVT::v2i64, ++/*559554*/ OPC_MoveParent, ++/*559555*/ OPC_CheckType, MVT::v2i64, ++/*559557*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*559559*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b)), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*559567*/ /*Scope*/ 61, /*->559629*/ ++/*559568*/ OPC_CheckChild0Same, 0, ++/*559570*/ OPC_MoveChild1, ++/*559571*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*559574*/ OPC_CheckChild0Integer, 1, ++/*559576*/ OPC_CheckChild0Type, MVT::i64, ++/*559578*/ OPC_CheckChild1Integer, 1, ++/*559580*/ OPC_CheckChild1Type, MVT::i64, ++/*559582*/ OPC_MoveParent, ++/*559583*/ OPC_MoveParent, ++/*559584*/ OPC_MoveParent, ++/*559585*/ OPC_MoveChild1, ++/*559586*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*559589*/ OPC_CheckChild0Integer, 63, ++/*559591*/ OPC_CheckChild0Type, MVT::i64, ++/*559593*/ OPC_CheckChild1Integer, 63, ++/*559595*/ OPC_CheckChild1Type, MVT::i64, ++/*559597*/ OPC_CheckType, MVT::v2i64, ++/*559599*/ OPC_MoveParent, ++/*559600*/ OPC_MoveParent, ++/*559601*/ OPC_MoveParent, ++/*559602*/ OPC_MoveChild1, ++/*559603*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*559606*/ OPC_CheckChild0Integer, 1, ++/*559608*/ OPC_CheckChild0Type, MVT::i64, ++/*559610*/ OPC_CheckChild1Integer, 1, ++/*559612*/ OPC_CheckChild1Type, MVT::i64, ++/*559614*/ OPC_CheckType, MVT::v2i64, ++/*559616*/ OPC_MoveParent, ++/*559617*/ OPC_CheckType, MVT::v2i64, ++/*559619*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*559621*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b)), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*559629*/ 0, /*End of Scope*/ ++/*559630*/ /*Scope*/ 4|128,1/*132*/, /*->559764*/ ++/*559632*/ OPC_CheckChild0Same, 0, ++/*559634*/ OPC_MoveChild1, ++/*559635*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*559638*/ OPC_Scope, 61, /*->559701*/ // 2 children in Scope ++/*559640*/ OPC_MoveChild0, ++/*559641*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*559644*/ OPC_CheckChild0Integer, 1, ++/*559646*/ OPC_CheckChild0Type, MVT::i64, ++/*559648*/ OPC_CheckChild1Integer, 1, ++/*559650*/ OPC_CheckChild1Type, MVT::i64, ++/*559652*/ OPC_MoveParent, ++/*559653*/ OPC_CheckChild1Same, 1, ++/*559655*/ OPC_MoveParent, ++/*559656*/ OPC_MoveParent, ++/*559657*/ OPC_MoveChild1, ++/*559658*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*559661*/ OPC_CheckChild0Integer, 63, ++/*559663*/ OPC_CheckChild0Type, MVT::i64, ++/*559665*/ OPC_CheckChild1Integer, 63, ++/*559667*/ OPC_CheckChild1Type, MVT::i64, ++/*559669*/ OPC_CheckType, MVT::v2i64, ++/*559671*/ OPC_MoveParent, ++/*559672*/ OPC_MoveParent, ++/*559673*/ OPC_MoveParent, ++/*559674*/ OPC_MoveChild1, ++/*559675*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*559678*/ OPC_CheckChild0Integer, 1, ++/*559680*/ OPC_CheckChild0Type, MVT::i64, ++/*559682*/ OPC_CheckChild1Integer, 1, ++/*559684*/ OPC_CheckChild1Type, MVT::i64, ++/*559686*/ OPC_CheckType, MVT::v2i64, ++/*559688*/ OPC_MoveParent, ++/*559689*/ OPC_CheckType, MVT::v2i64, ++/*559691*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*559693*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b)), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*559701*/ /*Scope*/ 61, /*->559763*/ ++/*559702*/ OPC_CheckChild0Same, 1, ++/*559704*/ OPC_MoveChild1, ++/*559705*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*559708*/ OPC_CheckChild0Integer, 1, ++/*559710*/ OPC_CheckChild0Type, MVT::i64, ++/*559712*/ OPC_CheckChild1Integer, 1, ++/*559714*/ OPC_CheckChild1Type, MVT::i64, ++/*559716*/ OPC_MoveParent, ++/*559717*/ OPC_MoveParent, ++/*559718*/ OPC_MoveParent, ++/*559719*/ OPC_MoveChild1, ++/*559720*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*559723*/ OPC_CheckChild0Integer, 63, ++/*559725*/ OPC_CheckChild0Type, MVT::i64, ++/*559727*/ OPC_CheckChild1Integer, 63, ++/*559729*/ OPC_CheckChild1Type, MVT::i64, ++/*559731*/ OPC_CheckType, MVT::v2i64, ++/*559733*/ OPC_MoveParent, ++/*559734*/ OPC_MoveParent, ++/*559735*/ OPC_MoveParent, ++/*559736*/ OPC_MoveChild1, ++/*559737*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*559740*/ OPC_CheckChild0Integer, 1, ++/*559742*/ OPC_CheckChild0Type, MVT::i64, ++/*559744*/ OPC_CheckChild1Integer, 1, ++/*559746*/ OPC_CheckChild1Type, MVT::i64, ++/*559748*/ OPC_CheckType, MVT::v2i64, ++/*559750*/ OPC_MoveParent, ++/*559751*/ OPC_CheckType, MVT::v2i64, ++/*559753*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*559755*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b)), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*559763*/ 0, /*End of Scope*/ ++/*559764*/ /*Scope*/ 75|128,3/*459*/, /*->560225*/ ++/*559766*/ OPC_MoveChild0, ++/*559767*/ OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::BUILD_VECTOR),// ->559834 ++/*559771*/ OPC_CheckChild0Integer, 1, ++/*559773*/ OPC_CheckChild0Type, MVT::i64, ++/*559775*/ OPC_CheckChild1Integer, 1, ++/*559777*/ OPC_CheckChild1Type, MVT::i64, ++/*559779*/ OPC_MoveParent, ++/*559780*/ OPC_MoveChild1, ++/*559781*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*559784*/ OPC_CheckChild0Same, 1, ++/*559786*/ OPC_CheckChild1Same, 0, ++/*559788*/ OPC_MoveParent, ++/*559789*/ OPC_MoveParent, ++/*559790*/ OPC_MoveChild1, ++/*559791*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*559794*/ OPC_CheckChild0Integer, 63, ++/*559796*/ OPC_CheckChild0Type, MVT::i64, ++/*559798*/ OPC_CheckChild1Integer, 63, ++/*559800*/ OPC_CheckChild1Type, MVT::i64, ++/*559802*/ OPC_CheckType, MVT::v2i64, ++/*559804*/ OPC_MoveParent, ++/*559805*/ OPC_MoveParent, ++/*559806*/ OPC_MoveParent, ++/*559807*/ OPC_MoveChild1, ++/*559808*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*559811*/ OPC_CheckChild0Integer, 1, ++/*559813*/ OPC_CheckChild0Type, MVT::i64, ++/*559815*/ OPC_CheckChild1Integer, 1, ++/*559817*/ OPC_CheckChild1Type, MVT::i64, ++/*559819*/ OPC_CheckType, MVT::v2i64, ++/*559821*/ OPC_MoveParent, ++/*559822*/ OPC_CheckType, MVT::v2i64, ++/*559824*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*559826*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b)), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*559834*/ /*SwitchOpcode*/ 2|128,3/*386*/, TARGET_VAL(ISD::ADD),// ->560224 ++/*559838*/ OPC_Scope, 63, /*->559903*/ // 6 children in Scope ++/*559840*/ OPC_MoveChild0, ++/*559841*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*559844*/ OPC_CheckChild0Integer, 1, ++/*559846*/ OPC_CheckChild0Type, MVT::i64, ++/*559848*/ OPC_CheckChild1Integer, 1, ++/*559850*/ OPC_CheckChild1Type, MVT::i64, ++/*559852*/ OPC_MoveParent, ++/*559853*/ OPC_CheckChild1Same, 1, ++/*559855*/ OPC_MoveParent, ++/*559856*/ OPC_CheckChild1Same, 0, ++/*559858*/ OPC_MoveParent, ++/*559859*/ OPC_MoveChild1, ++/*559860*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*559863*/ OPC_CheckChild0Integer, 63, ++/*559865*/ OPC_CheckChild0Type, MVT::i64, ++/*559867*/ OPC_CheckChild1Integer, 63, ++/*559869*/ OPC_CheckChild1Type, MVT::i64, ++/*559871*/ OPC_CheckType, MVT::v2i64, ++/*559873*/ OPC_MoveParent, ++/*559874*/ OPC_MoveParent, ++/*559875*/ OPC_MoveParent, ++/*559876*/ OPC_MoveChild1, ++/*559877*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*559880*/ OPC_CheckChild0Integer, 1, ++/*559882*/ OPC_CheckChild0Type, MVT::i64, ++/*559884*/ OPC_CheckChild1Integer, 1, ++/*559886*/ OPC_CheckChild1Type, MVT::i64, ++/*559888*/ OPC_CheckType, MVT::v2i64, ++/*559890*/ OPC_MoveParent, ++/*559891*/ OPC_CheckType, MVT::v2i64, ++/*559893*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*559895*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a)), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a), LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*559903*/ /*Scope*/ 63, /*->559967*/ ++/*559904*/ OPC_CheckChild0Same, 1, ++/*559906*/ OPC_MoveChild1, ++/*559907*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*559910*/ OPC_CheckChild0Integer, 1, ++/*559912*/ OPC_CheckChild0Type, MVT::i64, ++/*559914*/ OPC_CheckChild1Integer, 1, ++/*559916*/ OPC_CheckChild1Type, MVT::i64, ++/*559918*/ OPC_MoveParent, ++/*559919*/ OPC_MoveParent, ++/*559920*/ OPC_CheckChild1Same, 0, ++/*559922*/ OPC_MoveParent, ++/*559923*/ OPC_MoveChild1, ++/*559924*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*559927*/ OPC_CheckChild0Integer, 63, ++/*559929*/ OPC_CheckChild0Type, MVT::i64, ++/*559931*/ OPC_CheckChild1Integer, 63, ++/*559933*/ OPC_CheckChild1Type, MVT::i64, ++/*559935*/ OPC_CheckType, MVT::v2i64, ++/*559937*/ OPC_MoveParent, ++/*559938*/ OPC_MoveParent, ++/*559939*/ OPC_MoveParent, ++/*559940*/ OPC_MoveChild1, ++/*559941*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*559944*/ OPC_CheckChild0Integer, 1, ++/*559946*/ OPC_CheckChild0Type, MVT::i64, ++/*559948*/ OPC_CheckChild1Integer, 1, ++/*559950*/ OPC_CheckChild1Type, MVT::i64, ++/*559952*/ OPC_CheckType, MVT::v2i64, ++/*559954*/ OPC_MoveParent, ++/*559955*/ OPC_CheckType, MVT::v2i64, ++/*559957*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*559959*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a)), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*559967*/ /*Scope*/ 63, /*->560031*/ ++/*559968*/ OPC_MoveChild0, ++/*559969*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*559972*/ OPC_CheckChild0Integer, 1, ++/*559974*/ OPC_CheckChild0Type, MVT::i64, ++/*559976*/ OPC_CheckChild1Integer, 1, ++/*559978*/ OPC_CheckChild1Type, MVT::i64, ++/*559980*/ OPC_MoveParent, ++/*559981*/ OPC_CheckChild1Same, 0, ++/*559983*/ OPC_MoveParent, ++/*559984*/ OPC_CheckChild1Same, 1, ++/*559986*/ OPC_MoveParent, ++/*559987*/ OPC_MoveChild1, ++/*559988*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*559991*/ OPC_CheckChild0Integer, 63, ++/*559993*/ OPC_CheckChild0Type, MVT::i64, ++/*559995*/ OPC_CheckChild1Integer, 63, ++/*559997*/ OPC_CheckChild1Type, MVT::i64, ++/*559999*/ OPC_CheckType, MVT::v2i64, ++/*560001*/ OPC_MoveParent, ++/*560002*/ OPC_MoveParent, ++/*560003*/ OPC_MoveParent, ++/*560004*/ OPC_MoveChild1, ++/*560005*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*560008*/ OPC_CheckChild0Integer, 1, ++/*560010*/ OPC_CheckChild0Type, MVT::i64, ++/*560012*/ OPC_CheckChild1Integer, 1, ++/*560014*/ OPC_CheckChild1Type, MVT::i64, ++/*560016*/ OPC_CheckType, MVT::v2i64, ++/*560018*/ OPC_MoveParent, ++/*560019*/ OPC_CheckType, MVT::v2i64, ++/*560021*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*560023*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a)), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b), LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*560031*/ /*Scope*/ 63, /*->560095*/ ++/*560032*/ OPC_CheckChild0Same, 0, ++/*560034*/ OPC_MoveChild1, ++/*560035*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*560038*/ OPC_CheckChild0Integer, 1, ++/*560040*/ OPC_CheckChild0Type, MVT::i64, ++/*560042*/ OPC_CheckChild1Integer, 1, ++/*560044*/ OPC_CheckChild1Type, MVT::i64, ++/*560046*/ OPC_MoveParent, ++/*560047*/ OPC_MoveParent, ++/*560048*/ OPC_CheckChild1Same, 1, ++/*560050*/ OPC_MoveParent, ++/*560051*/ OPC_MoveChild1, ++/*560052*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*560055*/ OPC_CheckChild0Integer, 63, ++/*560057*/ OPC_CheckChild0Type, MVT::i64, ++/*560059*/ OPC_CheckChild1Integer, 63, ++/*560061*/ OPC_CheckChild1Type, MVT::i64, ++/*560063*/ OPC_CheckType, MVT::v2i64, ++/*560065*/ OPC_MoveParent, ++/*560066*/ OPC_MoveParent, ++/*560067*/ OPC_MoveParent, ++/*560068*/ OPC_MoveChild1, ++/*560069*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*560072*/ OPC_CheckChild0Integer, 1, ++/*560074*/ OPC_CheckChild0Type, MVT::i64, ++/*560076*/ OPC_CheckChild1Integer, 1, ++/*560078*/ OPC_CheckChild1Type, MVT::i64, ++/*560080*/ OPC_CheckType, MVT::v2i64, ++/*560082*/ OPC_MoveParent, ++/*560083*/ OPC_CheckType, MVT::v2i64, ++/*560085*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*560087*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a)), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*560095*/ /*Scope*/ 63, /*->560159*/ ++/*560096*/ OPC_CheckChild0Same, 1, ++/*560098*/ OPC_CheckChild1Same, 0, ++/*560100*/ OPC_MoveParent, ++/*560101*/ OPC_MoveChild1, ++/*560102*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*560105*/ OPC_CheckChild0Integer, 1, ++/*560107*/ OPC_CheckChild0Type, MVT::i64, ++/*560109*/ OPC_CheckChild1Integer, 1, ++/*560111*/ OPC_CheckChild1Type, MVT::i64, ++/*560113*/ OPC_MoveParent, ++/*560114*/ OPC_MoveParent, ++/*560115*/ OPC_MoveChild1, ++/*560116*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*560119*/ OPC_CheckChild0Integer, 63, ++/*560121*/ OPC_CheckChild0Type, MVT::i64, ++/*560123*/ OPC_CheckChild1Integer, 63, ++/*560125*/ OPC_CheckChild1Type, MVT::i64, ++/*560127*/ OPC_CheckType, MVT::v2i64, ++/*560129*/ OPC_MoveParent, ++/*560130*/ OPC_MoveParent, ++/*560131*/ OPC_MoveParent, ++/*560132*/ OPC_MoveChild1, ++/*560133*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*560136*/ OPC_CheckChild0Integer, 1, ++/*560138*/ OPC_CheckChild0Type, MVT::i64, ++/*560140*/ OPC_CheckChild1Integer, 1, ++/*560142*/ OPC_CheckChild1Type, MVT::i64, ++/*560144*/ OPC_CheckType, MVT::v2i64, ++/*560146*/ OPC_MoveParent, ++/*560147*/ OPC_CheckType, MVT::v2i64, ++/*560149*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*560151*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a)), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*560159*/ /*Scope*/ 63, /*->560223*/ ++/*560160*/ OPC_CheckChild0Same, 0, ++/*560162*/ OPC_CheckChild1Same, 1, ++/*560164*/ OPC_MoveParent, ++/*560165*/ OPC_MoveChild1, ++/*560166*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*560169*/ OPC_CheckChild0Integer, 1, ++/*560171*/ OPC_CheckChild0Type, MVT::i64, ++/*560173*/ OPC_CheckChild1Integer, 1, ++/*560175*/ OPC_CheckChild1Type, MVT::i64, ++/*560177*/ OPC_MoveParent, ++/*560178*/ OPC_MoveParent, ++/*560179*/ OPC_MoveChild1, ++/*560180*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*560183*/ OPC_CheckChild0Integer, 63, ++/*560185*/ OPC_CheckChild0Type, MVT::i64, ++/*560187*/ OPC_CheckChild1Integer, 63, ++/*560189*/ OPC_CheckChild1Type, MVT::i64, ++/*560191*/ OPC_CheckType, MVT::v2i64, ++/*560193*/ OPC_MoveParent, ++/*560194*/ OPC_MoveParent, ++/*560195*/ OPC_MoveParent, ++/*560196*/ OPC_MoveChild1, ++/*560197*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*560200*/ OPC_CheckChild0Integer, 1, ++/*560202*/ OPC_CheckChild0Type, MVT::i64, ++/*560204*/ OPC_CheckChild1Integer, 1, ++/*560206*/ OPC_CheckChild1Type, MVT::i64, ++/*560208*/ OPC_CheckType, MVT::v2i64, ++/*560210*/ OPC_MoveParent, ++/*560211*/ OPC_CheckType, MVT::v2i64, ++/*560213*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*560215*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a)), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*560223*/ 0, /*End of Scope*/ ++/*560224*/ 0, // EndSwitchOpcode ++/*560225*/ /*Scope*/ 4|128,1/*132*/, /*->560359*/ ++/*560227*/ OPC_CheckChild0Same, 0, ++/*560229*/ OPC_MoveChild1, ++/*560230*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*560233*/ OPC_Scope, 61, /*->560296*/ // 2 children in Scope ++/*560235*/ OPC_MoveChild0, ++/*560236*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*560239*/ OPC_CheckChild0Integer, 1, ++/*560241*/ OPC_CheckChild0Type, MVT::i64, ++/*560243*/ OPC_CheckChild1Integer, 1, ++/*560245*/ OPC_CheckChild1Type, MVT::i64, ++/*560247*/ OPC_MoveParent, ++/*560248*/ OPC_CheckChild1Same, 1, ++/*560250*/ OPC_MoveParent, ++/*560251*/ OPC_MoveParent, ++/*560252*/ OPC_MoveChild1, ++/*560253*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*560256*/ OPC_CheckChild0Integer, 63, ++/*560258*/ OPC_CheckChild0Type, MVT::i64, ++/*560260*/ OPC_CheckChild1Integer, 63, ++/*560262*/ OPC_CheckChild1Type, MVT::i64, ++/*560264*/ OPC_CheckType, MVT::v2i64, ++/*560266*/ OPC_MoveParent, ++/*560267*/ OPC_MoveParent, ++/*560268*/ OPC_MoveParent, ++/*560269*/ OPC_MoveChild1, ++/*560270*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*560273*/ OPC_CheckChild0Integer, 1, ++/*560275*/ OPC_CheckChild0Type, MVT::i64, ++/*560277*/ OPC_CheckChild1Integer, 1, ++/*560279*/ OPC_CheckChild1Type, MVT::i64, ++/*560281*/ OPC_CheckType, MVT::v2i64, ++/*560283*/ OPC_MoveParent, ++/*560284*/ OPC_CheckType, MVT::v2i64, ++/*560286*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*560288*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a)), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*560296*/ /*Scope*/ 61, /*->560358*/ ++/*560297*/ OPC_CheckChild0Same, 1, ++/*560299*/ OPC_MoveChild1, ++/*560300*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*560303*/ OPC_CheckChild0Integer, 1, ++/*560305*/ OPC_CheckChild0Type, MVT::i64, ++/*560307*/ OPC_CheckChild1Integer, 1, ++/*560309*/ OPC_CheckChild1Type, MVT::i64, ++/*560311*/ OPC_MoveParent, ++/*560312*/ OPC_MoveParent, ++/*560313*/ OPC_MoveParent, ++/*560314*/ OPC_MoveChild1, ++/*560315*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*560318*/ OPC_CheckChild0Integer, 63, ++/*560320*/ OPC_CheckChild0Type, MVT::i64, ++/*560322*/ OPC_CheckChild1Integer, 63, ++/*560324*/ OPC_CheckChild1Type, MVT::i64, ++/*560326*/ OPC_CheckType, MVT::v2i64, ++/*560328*/ OPC_MoveParent, ++/*560329*/ OPC_MoveParent, ++/*560330*/ OPC_MoveParent, ++/*560331*/ OPC_MoveChild1, ++/*560332*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*560335*/ OPC_CheckChild0Integer, 1, ++/*560337*/ OPC_CheckChild0Type, MVT::i64, ++/*560339*/ OPC_CheckChild1Integer, 1, ++/*560341*/ OPC_CheckChild1Type, MVT::i64, ++/*560343*/ OPC_CheckType, MVT::v2i64, ++/*560345*/ OPC_MoveParent, ++/*560346*/ OPC_CheckType, MVT::v2i64, ++/*560348*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*560350*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a)), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*560358*/ 0, /*End of Scope*/ ++/*560359*/ /*Scope*/ 4|128,1/*132*/, /*->560493*/ ++/*560361*/ OPC_CheckChild0Same, 1, ++/*560363*/ OPC_MoveChild1, ++/*560364*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*560367*/ OPC_Scope, 61, /*->560430*/ // 2 children in Scope ++/*560369*/ OPC_MoveChild0, ++/*560370*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*560373*/ OPC_CheckChild0Integer, 1, ++/*560375*/ OPC_CheckChild0Type, MVT::i64, ++/*560377*/ OPC_CheckChild1Integer, 1, ++/*560379*/ OPC_CheckChild1Type, MVT::i64, ++/*560381*/ OPC_MoveParent, ++/*560382*/ OPC_CheckChild1Same, 0, ++/*560384*/ OPC_MoveParent, ++/*560385*/ OPC_MoveParent, ++/*560386*/ OPC_MoveChild1, ++/*560387*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*560390*/ OPC_CheckChild0Integer, 63, ++/*560392*/ OPC_CheckChild0Type, MVT::i64, ++/*560394*/ OPC_CheckChild1Integer, 63, ++/*560396*/ OPC_CheckChild1Type, MVT::i64, ++/*560398*/ OPC_CheckType, MVT::v2i64, ++/*560400*/ OPC_MoveParent, ++/*560401*/ OPC_MoveParent, ++/*560402*/ OPC_MoveParent, ++/*560403*/ OPC_MoveChild1, ++/*560404*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*560407*/ OPC_CheckChild0Integer, 1, ++/*560409*/ OPC_CheckChild0Type, MVT::i64, ++/*560411*/ OPC_CheckChild1Integer, 1, ++/*560413*/ OPC_CheckChild1Type, MVT::i64, ++/*560415*/ OPC_CheckType, MVT::v2i64, ++/*560417*/ OPC_MoveParent, ++/*560418*/ OPC_CheckType, MVT::v2i64, ++/*560420*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*560422*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a)), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*560430*/ /*Scope*/ 61, /*->560492*/ ++/*560431*/ OPC_CheckChild0Same, 0, ++/*560433*/ OPC_MoveChild1, ++/*560434*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*560437*/ OPC_CheckChild0Integer, 1, ++/*560439*/ OPC_CheckChild0Type, MVT::i64, ++/*560441*/ OPC_CheckChild1Integer, 1, ++/*560443*/ OPC_CheckChild1Type, MVT::i64, ++/*560445*/ OPC_MoveParent, ++/*560446*/ OPC_MoveParent, ++/*560447*/ OPC_MoveParent, ++/*560448*/ OPC_MoveChild1, ++/*560449*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*560452*/ OPC_CheckChild0Integer, 63, ++/*560454*/ OPC_CheckChild0Type, MVT::i64, ++/*560456*/ OPC_CheckChild1Integer, 63, ++/*560458*/ OPC_CheckChild1Type, MVT::i64, ++/*560460*/ OPC_CheckType, MVT::v2i64, ++/*560462*/ OPC_MoveParent, ++/*560463*/ OPC_MoveParent, ++/*560464*/ OPC_MoveParent, ++/*560465*/ OPC_MoveChild1, ++/*560466*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*560469*/ OPC_CheckChild0Integer, 1, ++/*560471*/ OPC_CheckChild0Type, MVT::i64, ++/*560473*/ OPC_CheckChild1Integer, 1, ++/*560475*/ OPC_CheckChild1Type, MVT::i64, ++/*560477*/ OPC_CheckType, MVT::v2i64, ++/*560479*/ OPC_MoveParent, ++/*560480*/ OPC_CheckType, MVT::v2i64, ++/*560482*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*560484*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a)), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*560492*/ 0, /*End of Scope*/ ++/*560493*/ /*Scope*/ 121, /*->560615*/ ++/*560494*/ OPC_MoveChild0, ++/*560495*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*560498*/ OPC_CheckChild0Integer, 1, ++/*560500*/ OPC_CheckChild0Type, MVT::i64, ++/*560502*/ OPC_CheckChild1Integer, 1, ++/*560504*/ OPC_CheckChild1Type, MVT::i64, ++/*560506*/ OPC_MoveParent, ++/*560507*/ OPC_MoveChild1, ++/*560508*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*560511*/ OPC_Scope, 50, /*->560563*/ // 2 children in Scope ++/*560513*/ OPC_CheckChild0Same, 1, ++/*560515*/ OPC_CheckChild1Same, 0, ++/*560517*/ OPC_MoveParent, ++/*560518*/ OPC_MoveParent, ++/*560519*/ OPC_MoveChild1, ++/*560520*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*560523*/ OPC_CheckChild0Integer, 63, ++/*560525*/ OPC_CheckChild0Type, MVT::i64, ++/*560527*/ OPC_CheckChild1Integer, 63, ++/*560529*/ OPC_CheckChild1Type, MVT::i64, ++/*560531*/ OPC_CheckType, MVT::v2i64, ++/*560533*/ OPC_MoveParent, ++/*560534*/ OPC_MoveParent, ++/*560535*/ OPC_MoveParent, ++/*560536*/ OPC_MoveChild1, ++/*560537*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*560540*/ OPC_CheckChild0Integer, 1, ++/*560542*/ OPC_CheckChild0Type, MVT::i64, ++/*560544*/ OPC_CheckChild1Integer, 1, ++/*560546*/ OPC_CheckChild1Type, MVT::i64, ++/*560548*/ OPC_CheckType, MVT::v2i64, ++/*560550*/ OPC_MoveParent, ++/*560551*/ OPC_CheckType, MVT::v2i64, ++/*560553*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*560555*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a)), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*560563*/ /*Scope*/ 50, /*->560614*/ ++/*560564*/ OPC_CheckChild0Same, 0, ++/*560566*/ OPC_CheckChild1Same, 1, ++/*560568*/ OPC_MoveParent, ++/*560569*/ OPC_MoveParent, ++/*560570*/ OPC_MoveChild1, ++/*560571*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*560574*/ OPC_CheckChild0Integer, 63, ++/*560576*/ OPC_CheckChild0Type, MVT::i64, ++/*560578*/ OPC_CheckChild1Integer, 63, ++/*560580*/ OPC_CheckChild1Type, MVT::i64, ++/*560582*/ OPC_CheckType, MVT::v2i64, ++/*560584*/ OPC_MoveParent, ++/*560585*/ OPC_MoveParent, ++/*560586*/ OPC_MoveParent, ++/*560587*/ OPC_MoveChild1, ++/*560588*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*560591*/ OPC_CheckChild0Integer, 1, ++/*560593*/ OPC_CheckChild0Type, MVT::i64, ++/*560595*/ OPC_CheckChild1Integer, 1, ++/*560597*/ OPC_CheckChild1Type, MVT::i64, ++/*560599*/ OPC_CheckType, MVT::v2i64, ++/*560601*/ OPC_MoveParent, ++/*560602*/ OPC_CheckType, MVT::v2i64, ++/*560604*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*560606*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a)), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*560614*/ 0, /*End of Scope*/ ++/*560615*/ 0, /*End of Scope*/ ++/*560616*/ 0, /*End of Scope*/ ++/*560617*/ /*SwitchOpcode*/ 70|128,58/*7494*/, TARGET_VAL(ISD::SRL),// ->568115 ++/*560621*/ OPC_MoveChild0, ++/*560622*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*560625*/ OPC_Scope, 31|128,29/*3743*/, /*->564371*/ // 3 children in Scope ++/*560628*/ OPC_MoveChild0, ++/*560629*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*560632*/ OPC_Scope, 115|128,4/*627*/, /*->561262*/ // 4 children in Scope ++/*560635*/ OPC_MoveChild0, ++/*560636*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*560639*/ OPC_CheckChild0Integer, 1, ++/*560641*/ OPC_CheckChild0Type, MVT::i64, ++/*560643*/ OPC_CheckChild1Integer, 1, ++/*560645*/ OPC_CheckChild1Type, MVT::i64, ++/*560647*/ OPC_MoveParent, ++/*560648*/ OPC_RecordChild1, // #0 = $a ++/*560649*/ OPC_MoveParent, ++/*560650*/ OPC_RecordChild1, // #1 = $b ++/*560651*/ OPC_MoveParent, ++/*560652*/ OPC_MoveChild1, ++/*560653*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*560656*/ OPC_CheckChild0Integer, 63, ++/*560658*/ OPC_CheckChild0Type, MVT::i64, ++/*560660*/ OPC_CheckChild1Integer, 63, ++/*560662*/ OPC_CheckChild1Type, MVT::i64, ++/*560664*/ OPC_CheckType, MVT::v2i64, ++/*560666*/ OPC_MoveParent, ++/*560667*/ OPC_MoveParent, ++/*560668*/ OPC_MoveChild1, ++/*560669*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*560672*/ OPC_Scope, 38|128,2/*294*/, /*->560969*/ // 4 children in Scope ++/*560675*/ OPC_MoveChild0, ++/*560676*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*560679*/ OPC_Scope, 47, /*->560728*/ // 6 children in Scope ++/*560681*/ OPC_MoveChild0, ++/*560682*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*560685*/ OPC_CheckChild0Integer, 1, ++/*560687*/ OPC_CheckChild0Type, MVT::i64, ++/*560689*/ OPC_CheckChild1Integer, 1, ++/*560691*/ OPC_CheckChild1Type, MVT::i64, ++/*560693*/ OPC_MoveParent, ++/*560694*/ OPC_CheckChild1Same, 0, ++/*560696*/ OPC_MoveParent, ++/*560697*/ OPC_CheckChild1Same, 1, ++/*560699*/ OPC_MoveParent, ++/*560700*/ OPC_MoveParent, ++/*560701*/ OPC_MoveChild1, ++/*560702*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*560705*/ OPC_CheckChild0Integer, 1, ++/*560707*/ OPC_CheckChild0Type, MVT::i64, ++/*560709*/ OPC_CheckChild1Integer, 1, ++/*560711*/ OPC_CheckChild1Type, MVT::i64, ++/*560713*/ OPC_CheckType, MVT::v2i64, ++/*560715*/ OPC_MoveParent, ++/*560716*/ OPC_CheckType, MVT::v2i64, ++/*560718*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*560720*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a), LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a), LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*560728*/ /*Scope*/ 47, /*->560776*/ ++/*560729*/ OPC_CheckChild0Same, 0, ++/*560731*/ OPC_MoveChild1, ++/*560732*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*560735*/ OPC_CheckChild0Integer, 1, ++/*560737*/ OPC_CheckChild0Type, MVT::i64, ++/*560739*/ OPC_CheckChild1Integer, 1, ++/*560741*/ OPC_CheckChild1Type, MVT::i64, ++/*560743*/ OPC_MoveParent, ++/*560744*/ OPC_MoveParent, ++/*560745*/ OPC_CheckChild1Same, 1, ++/*560747*/ OPC_MoveParent, ++/*560748*/ OPC_MoveParent, ++/*560749*/ OPC_MoveChild1, ++/*560750*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*560753*/ OPC_CheckChild0Integer, 1, ++/*560755*/ OPC_CheckChild0Type, MVT::i64, ++/*560757*/ OPC_CheckChild1Integer, 1, ++/*560759*/ OPC_CheckChild1Type, MVT::i64, ++/*560761*/ OPC_CheckType, MVT::v2i64, ++/*560763*/ OPC_MoveParent, ++/*560764*/ OPC_CheckType, MVT::v2i64, ++/*560766*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*560768*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a), LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*560776*/ /*Scope*/ 47, /*->560824*/ ++/*560777*/ OPC_MoveChild0, ++/*560778*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*560781*/ OPC_CheckChild0Integer, 1, ++/*560783*/ OPC_CheckChild0Type, MVT::i64, ++/*560785*/ OPC_CheckChild1Integer, 1, ++/*560787*/ OPC_CheckChild1Type, MVT::i64, ++/*560789*/ OPC_MoveParent, ++/*560790*/ OPC_CheckChild1Same, 1, ++/*560792*/ OPC_MoveParent, ++/*560793*/ OPC_CheckChild1Same, 0, ++/*560795*/ OPC_MoveParent, ++/*560796*/ OPC_MoveParent, ++/*560797*/ OPC_MoveChild1, ++/*560798*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*560801*/ OPC_CheckChild0Integer, 1, ++/*560803*/ OPC_CheckChild0Type, MVT::i64, ++/*560805*/ OPC_CheckChild1Integer, 1, ++/*560807*/ OPC_CheckChild1Type, MVT::i64, ++/*560809*/ OPC_CheckType, MVT::v2i64, ++/*560811*/ OPC_MoveParent, ++/*560812*/ OPC_CheckType, MVT::v2i64, ++/*560814*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*560816*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a), LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b), LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*560824*/ /*Scope*/ 47, /*->560872*/ ++/*560825*/ OPC_CheckChild0Same, 1, ++/*560827*/ OPC_MoveChild1, ++/*560828*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*560831*/ OPC_CheckChild0Integer, 1, ++/*560833*/ OPC_CheckChild0Type, MVT::i64, ++/*560835*/ OPC_CheckChild1Integer, 1, ++/*560837*/ OPC_CheckChild1Type, MVT::i64, ++/*560839*/ OPC_MoveParent, ++/*560840*/ OPC_MoveParent, ++/*560841*/ OPC_CheckChild1Same, 0, ++/*560843*/ OPC_MoveParent, ++/*560844*/ OPC_MoveParent, ++/*560845*/ OPC_MoveChild1, ++/*560846*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*560849*/ OPC_CheckChild0Integer, 1, ++/*560851*/ OPC_CheckChild0Type, MVT::i64, ++/*560853*/ OPC_CheckChild1Integer, 1, ++/*560855*/ OPC_CheckChild1Type, MVT::i64, ++/*560857*/ OPC_CheckType, MVT::v2i64, ++/*560859*/ OPC_MoveParent, ++/*560860*/ OPC_CheckType, MVT::v2i64, ++/*560862*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*560864*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a), LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*560872*/ /*Scope*/ 47, /*->560920*/ ++/*560873*/ OPC_CheckChild0Same, 0, ++/*560875*/ OPC_CheckChild1Same, 1, ++/*560877*/ OPC_MoveParent, ++/*560878*/ OPC_MoveChild1, ++/*560879*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*560882*/ OPC_CheckChild0Integer, 1, ++/*560884*/ OPC_CheckChild0Type, MVT::i64, ++/*560886*/ OPC_CheckChild1Integer, 1, ++/*560888*/ OPC_CheckChild1Type, MVT::i64, ++/*560890*/ OPC_MoveParent, ++/*560891*/ OPC_MoveParent, ++/*560892*/ OPC_MoveParent, ++/*560893*/ OPC_MoveChild1, ++/*560894*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*560897*/ OPC_CheckChild0Integer, 1, ++/*560899*/ OPC_CheckChild0Type, MVT::i64, ++/*560901*/ OPC_CheckChild1Integer, 1, ++/*560903*/ OPC_CheckChild1Type, MVT::i64, ++/*560905*/ OPC_CheckType, MVT::v2i64, ++/*560907*/ OPC_MoveParent, ++/*560908*/ OPC_CheckType, MVT::v2i64, ++/*560910*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*560912*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a), LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*560920*/ /*Scope*/ 47, /*->560968*/ ++/*560921*/ OPC_CheckChild0Same, 1, ++/*560923*/ OPC_CheckChild1Same, 0, ++/*560925*/ OPC_MoveParent, ++/*560926*/ OPC_MoveChild1, ++/*560927*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*560930*/ OPC_CheckChild0Integer, 1, ++/*560932*/ OPC_CheckChild0Type, MVT::i64, ++/*560934*/ OPC_CheckChild1Integer, 1, ++/*560936*/ OPC_CheckChild1Type, MVT::i64, ++/*560938*/ OPC_MoveParent, ++/*560939*/ OPC_MoveParent, ++/*560940*/ OPC_MoveParent, ++/*560941*/ OPC_MoveChild1, ++/*560942*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*560945*/ OPC_CheckChild0Integer, 1, ++/*560947*/ OPC_CheckChild0Type, MVT::i64, ++/*560949*/ OPC_CheckChild1Integer, 1, ++/*560951*/ OPC_CheckChild1Type, MVT::i64, ++/*560953*/ OPC_CheckType, MVT::v2i64, ++/*560955*/ OPC_MoveParent, ++/*560956*/ OPC_CheckType, MVT::v2i64, ++/*560958*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*560960*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a), LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*560968*/ 0, /*End of Scope*/ ++/*560969*/ /*Scope*/ 100, /*->561070*/ ++/*560970*/ OPC_CheckChild0Same, 1, ++/*560972*/ OPC_MoveChild1, ++/*560973*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*560976*/ OPC_Scope, 45, /*->561023*/ // 2 children in Scope ++/*560978*/ OPC_MoveChild0, ++/*560979*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*560982*/ OPC_CheckChild0Integer, 1, ++/*560984*/ OPC_CheckChild0Type, MVT::i64, ++/*560986*/ OPC_CheckChild1Integer, 1, ++/*560988*/ OPC_CheckChild1Type, MVT::i64, ++/*560990*/ OPC_MoveParent, ++/*560991*/ OPC_CheckChild1Same, 0, ++/*560993*/ OPC_MoveParent, ++/*560994*/ OPC_MoveParent, ++/*560995*/ OPC_MoveParent, ++/*560996*/ OPC_MoveChild1, ++/*560997*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*561000*/ OPC_CheckChild0Integer, 1, ++/*561002*/ OPC_CheckChild0Type, MVT::i64, ++/*561004*/ OPC_CheckChild1Integer, 1, ++/*561006*/ OPC_CheckChild1Type, MVT::i64, ++/*561008*/ OPC_CheckType, MVT::v2i64, ++/*561010*/ OPC_MoveParent, ++/*561011*/ OPC_CheckType, MVT::v2i64, ++/*561013*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*561015*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a), LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*561023*/ /*Scope*/ 45, /*->561069*/ ++/*561024*/ OPC_CheckChild0Same, 0, ++/*561026*/ OPC_MoveChild1, ++/*561027*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*561030*/ OPC_CheckChild0Integer, 1, ++/*561032*/ OPC_CheckChild0Type, MVT::i64, ++/*561034*/ OPC_CheckChild1Integer, 1, ++/*561036*/ OPC_CheckChild1Type, MVT::i64, ++/*561038*/ OPC_MoveParent, ++/*561039*/ OPC_MoveParent, ++/*561040*/ OPC_MoveParent, ++/*561041*/ OPC_MoveParent, ++/*561042*/ OPC_MoveChild1, ++/*561043*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*561046*/ OPC_CheckChild0Integer, 1, ++/*561048*/ OPC_CheckChild0Type, MVT::i64, ++/*561050*/ OPC_CheckChild1Integer, 1, ++/*561052*/ OPC_CheckChild1Type, MVT::i64, ++/*561054*/ OPC_CheckType, MVT::v2i64, ++/*561056*/ OPC_MoveParent, ++/*561057*/ OPC_CheckType, MVT::v2i64, ++/*561059*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*561061*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a), LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*561069*/ 0, /*End of Scope*/ ++/*561070*/ /*Scope*/ 100, /*->561171*/ ++/*561071*/ OPC_CheckChild0Same, 0, ++/*561073*/ OPC_MoveChild1, ++/*561074*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*561077*/ OPC_Scope, 45, /*->561124*/ // 2 children in Scope ++/*561079*/ OPC_MoveChild0, ++/*561080*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*561083*/ OPC_CheckChild0Integer, 1, ++/*561085*/ OPC_CheckChild0Type, MVT::i64, ++/*561087*/ OPC_CheckChild1Integer, 1, ++/*561089*/ OPC_CheckChild1Type, MVT::i64, ++/*561091*/ OPC_MoveParent, ++/*561092*/ OPC_CheckChild1Same, 1, ++/*561094*/ OPC_MoveParent, ++/*561095*/ OPC_MoveParent, ++/*561096*/ OPC_MoveParent, ++/*561097*/ OPC_MoveChild1, ++/*561098*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*561101*/ OPC_CheckChild0Integer, 1, ++/*561103*/ OPC_CheckChild0Type, MVT::i64, ++/*561105*/ OPC_CheckChild1Integer, 1, ++/*561107*/ OPC_CheckChild1Type, MVT::i64, ++/*561109*/ OPC_CheckType, MVT::v2i64, ++/*561111*/ OPC_MoveParent, ++/*561112*/ OPC_CheckType, MVT::v2i64, ++/*561114*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*561116*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a), LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*561124*/ /*Scope*/ 45, /*->561170*/ ++/*561125*/ OPC_CheckChild0Same, 1, ++/*561127*/ OPC_MoveChild1, ++/*561128*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*561131*/ OPC_CheckChild0Integer, 1, ++/*561133*/ OPC_CheckChild0Type, MVT::i64, ++/*561135*/ OPC_CheckChild1Integer, 1, ++/*561137*/ OPC_CheckChild1Type, MVT::i64, ++/*561139*/ OPC_MoveParent, ++/*561140*/ OPC_MoveParent, ++/*561141*/ OPC_MoveParent, ++/*561142*/ OPC_MoveParent, ++/*561143*/ OPC_MoveChild1, ++/*561144*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*561147*/ OPC_CheckChild0Integer, 1, ++/*561149*/ OPC_CheckChild0Type, MVT::i64, ++/*561151*/ OPC_CheckChild1Integer, 1, ++/*561153*/ OPC_CheckChild1Type, MVT::i64, ++/*561155*/ OPC_CheckType, MVT::v2i64, ++/*561157*/ OPC_MoveParent, ++/*561158*/ OPC_CheckType, MVT::v2i64, ++/*561160*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*561162*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a), LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*561170*/ 0, /*End of Scope*/ ++/*561171*/ /*Scope*/ 89, /*->561261*/ ++/*561172*/ OPC_MoveChild0, ++/*561173*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*561176*/ OPC_CheckChild0Integer, 1, ++/*561178*/ OPC_CheckChild0Type, MVT::i64, ++/*561180*/ OPC_CheckChild1Integer, 1, ++/*561182*/ OPC_CheckChild1Type, MVT::i64, ++/*561184*/ OPC_MoveParent, ++/*561185*/ OPC_MoveChild1, ++/*561186*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*561189*/ OPC_Scope, 34, /*->561225*/ // 2 children in Scope ++/*561191*/ OPC_CheckChild0Same, 0, ++/*561193*/ OPC_CheckChild1Same, 1, ++/*561195*/ OPC_MoveParent, ++/*561196*/ OPC_MoveParent, ++/*561197*/ OPC_MoveParent, ++/*561198*/ OPC_MoveChild1, ++/*561199*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*561202*/ OPC_CheckChild0Integer, 1, ++/*561204*/ OPC_CheckChild0Type, MVT::i64, ++/*561206*/ OPC_CheckChild1Integer, 1, ++/*561208*/ OPC_CheckChild1Type, MVT::i64, ++/*561210*/ OPC_CheckType, MVT::v2i64, ++/*561212*/ OPC_MoveParent, ++/*561213*/ OPC_CheckType, MVT::v2i64, ++/*561215*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*561217*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a), LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*561225*/ /*Scope*/ 34, /*->561260*/ ++/*561226*/ OPC_CheckChild0Same, 1, ++/*561228*/ OPC_CheckChild1Same, 0, ++/*561230*/ OPC_MoveParent, ++/*561231*/ OPC_MoveParent, ++/*561232*/ OPC_MoveParent, ++/*561233*/ OPC_MoveChild1, ++/*561234*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*561237*/ OPC_CheckChild0Integer, 1, ++/*561239*/ OPC_CheckChild0Type, MVT::i64, ++/*561241*/ OPC_CheckChild1Integer, 1, ++/*561243*/ OPC_CheckChild1Type, MVT::i64, ++/*561245*/ OPC_CheckType, MVT::v2i64, ++/*561247*/ OPC_MoveParent, ++/*561248*/ OPC_CheckType, MVT::v2i64, ++/*561250*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*561252*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a), LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*561260*/ 0, /*End of Scope*/ ++/*561261*/ 0, /*End of Scope*/ ++/*561262*/ /*Scope*/ 115|128,4/*627*/, /*->561891*/ ++/*561264*/ OPC_RecordChild0, // #0 = $a ++/*561265*/ OPC_MoveChild1, ++/*561266*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*561269*/ OPC_CheckChild0Integer, 1, ++/*561271*/ OPC_CheckChild0Type, MVT::i64, ++/*561273*/ OPC_CheckChild1Integer, 1, ++/*561275*/ OPC_CheckChild1Type, MVT::i64, ++/*561277*/ OPC_MoveParent, ++/*561278*/ OPC_MoveParent, ++/*561279*/ OPC_RecordChild1, // #1 = $b ++/*561280*/ OPC_MoveParent, ++/*561281*/ OPC_MoveChild1, ++/*561282*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*561285*/ OPC_CheckChild0Integer, 63, ++/*561287*/ OPC_CheckChild0Type, MVT::i64, ++/*561289*/ OPC_CheckChild1Integer, 63, ++/*561291*/ OPC_CheckChild1Type, MVT::i64, ++/*561293*/ OPC_CheckType, MVT::v2i64, ++/*561295*/ OPC_MoveParent, ++/*561296*/ OPC_MoveParent, ++/*561297*/ OPC_MoveChild1, ++/*561298*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*561301*/ OPC_Scope, 38|128,2/*294*/, /*->561598*/ // 4 children in Scope ++/*561304*/ OPC_MoveChild0, ++/*561305*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*561308*/ OPC_Scope, 47, /*->561357*/ // 6 children in Scope ++/*561310*/ OPC_MoveChild0, ++/*561311*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*561314*/ OPC_CheckChild0Integer, 1, ++/*561316*/ OPC_CheckChild0Type, MVT::i64, ++/*561318*/ OPC_CheckChild1Integer, 1, ++/*561320*/ OPC_CheckChild1Type, MVT::i64, ++/*561322*/ OPC_MoveParent, ++/*561323*/ OPC_CheckChild1Same, 0, ++/*561325*/ OPC_MoveParent, ++/*561326*/ OPC_CheckChild1Same, 1, ++/*561328*/ OPC_MoveParent, ++/*561329*/ OPC_MoveParent, ++/*561330*/ OPC_MoveChild1, ++/*561331*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*561334*/ OPC_CheckChild0Integer, 1, ++/*561336*/ OPC_CheckChild0Type, MVT::i64, ++/*561338*/ OPC_CheckChild1Integer, 1, ++/*561340*/ OPC_CheckChild1Type, MVT::i64, ++/*561342*/ OPC_CheckType, MVT::v2i64, ++/*561344*/ OPC_MoveParent, ++/*561345*/ OPC_CheckType, MVT::v2i64, ++/*561347*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*561349*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a), LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*561357*/ /*Scope*/ 47, /*->561405*/ ++/*561358*/ OPC_CheckChild0Same, 0, ++/*561360*/ OPC_MoveChild1, ++/*561361*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*561364*/ OPC_CheckChild0Integer, 1, ++/*561366*/ OPC_CheckChild0Type, MVT::i64, ++/*561368*/ OPC_CheckChild1Integer, 1, ++/*561370*/ OPC_CheckChild1Type, MVT::i64, ++/*561372*/ OPC_MoveParent, ++/*561373*/ OPC_MoveParent, ++/*561374*/ OPC_CheckChild1Same, 1, ++/*561376*/ OPC_MoveParent, ++/*561377*/ OPC_MoveParent, ++/*561378*/ OPC_MoveChild1, ++/*561379*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*561382*/ OPC_CheckChild0Integer, 1, ++/*561384*/ OPC_CheckChild0Type, MVT::i64, ++/*561386*/ OPC_CheckChild1Integer, 1, ++/*561388*/ OPC_CheckChild1Type, MVT::i64, ++/*561390*/ OPC_CheckType, MVT::v2i64, ++/*561392*/ OPC_MoveParent, ++/*561393*/ OPC_CheckType, MVT::v2i64, ++/*561395*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*561397*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*561405*/ /*Scope*/ 47, /*->561453*/ ++/*561406*/ OPC_MoveChild0, ++/*561407*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*561410*/ OPC_CheckChild0Integer, 1, ++/*561412*/ OPC_CheckChild0Type, MVT::i64, ++/*561414*/ OPC_CheckChild1Integer, 1, ++/*561416*/ OPC_CheckChild1Type, MVT::i64, ++/*561418*/ OPC_MoveParent, ++/*561419*/ OPC_CheckChild1Same, 1, ++/*561421*/ OPC_MoveParent, ++/*561422*/ OPC_CheckChild1Same, 0, ++/*561424*/ OPC_MoveParent, ++/*561425*/ OPC_MoveParent, ++/*561426*/ OPC_MoveChild1, ++/*561427*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*561430*/ OPC_CheckChild0Integer, 1, ++/*561432*/ OPC_CheckChild0Type, MVT::i64, ++/*561434*/ OPC_CheckChild1Integer, 1, ++/*561436*/ OPC_CheckChild1Type, MVT::i64, ++/*561438*/ OPC_CheckType, MVT::v2i64, ++/*561440*/ OPC_MoveParent, ++/*561441*/ OPC_CheckType, MVT::v2i64, ++/*561443*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*561445*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b), LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*561453*/ /*Scope*/ 47, /*->561501*/ ++/*561454*/ OPC_CheckChild0Same, 1, ++/*561456*/ OPC_MoveChild1, ++/*561457*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*561460*/ OPC_CheckChild0Integer, 1, ++/*561462*/ OPC_CheckChild0Type, MVT::i64, ++/*561464*/ OPC_CheckChild1Integer, 1, ++/*561466*/ OPC_CheckChild1Type, MVT::i64, ++/*561468*/ OPC_MoveParent, ++/*561469*/ OPC_MoveParent, ++/*561470*/ OPC_CheckChild1Same, 0, ++/*561472*/ OPC_MoveParent, ++/*561473*/ OPC_MoveParent, ++/*561474*/ OPC_MoveChild1, ++/*561475*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*561478*/ OPC_CheckChild0Integer, 1, ++/*561480*/ OPC_CheckChild0Type, MVT::i64, ++/*561482*/ OPC_CheckChild1Integer, 1, ++/*561484*/ OPC_CheckChild1Type, MVT::i64, ++/*561486*/ OPC_CheckType, MVT::v2i64, ++/*561488*/ OPC_MoveParent, ++/*561489*/ OPC_CheckType, MVT::v2i64, ++/*561491*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*561493*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*561501*/ /*Scope*/ 47, /*->561549*/ ++/*561502*/ OPC_CheckChild0Same, 0, ++/*561504*/ OPC_CheckChild1Same, 1, ++/*561506*/ OPC_MoveParent, ++/*561507*/ OPC_MoveChild1, ++/*561508*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*561511*/ OPC_CheckChild0Integer, 1, ++/*561513*/ OPC_CheckChild0Type, MVT::i64, ++/*561515*/ OPC_CheckChild1Integer, 1, ++/*561517*/ OPC_CheckChild1Type, MVT::i64, ++/*561519*/ OPC_MoveParent, ++/*561520*/ OPC_MoveParent, ++/*561521*/ OPC_MoveParent, ++/*561522*/ OPC_MoveChild1, ++/*561523*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*561526*/ OPC_CheckChild0Integer, 1, ++/*561528*/ OPC_CheckChild0Type, MVT::i64, ++/*561530*/ OPC_CheckChild1Integer, 1, ++/*561532*/ OPC_CheckChild1Type, MVT::i64, ++/*561534*/ OPC_CheckType, MVT::v2i64, ++/*561536*/ OPC_MoveParent, ++/*561537*/ OPC_CheckType, MVT::v2i64, ++/*561539*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*561541*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*561549*/ /*Scope*/ 47, /*->561597*/ ++/*561550*/ OPC_CheckChild0Same, 1, ++/*561552*/ OPC_CheckChild1Same, 0, ++/*561554*/ OPC_MoveParent, ++/*561555*/ OPC_MoveChild1, ++/*561556*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*561559*/ OPC_CheckChild0Integer, 1, ++/*561561*/ OPC_CheckChild0Type, MVT::i64, ++/*561563*/ OPC_CheckChild1Integer, 1, ++/*561565*/ OPC_CheckChild1Type, MVT::i64, ++/*561567*/ OPC_MoveParent, ++/*561568*/ OPC_MoveParent, ++/*561569*/ OPC_MoveParent, ++/*561570*/ OPC_MoveChild1, ++/*561571*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*561574*/ OPC_CheckChild0Integer, 1, ++/*561576*/ OPC_CheckChild0Type, MVT::i64, ++/*561578*/ OPC_CheckChild1Integer, 1, ++/*561580*/ OPC_CheckChild1Type, MVT::i64, ++/*561582*/ OPC_CheckType, MVT::v2i64, ++/*561584*/ OPC_MoveParent, ++/*561585*/ OPC_CheckType, MVT::v2i64, ++/*561587*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*561589*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*561597*/ 0, /*End of Scope*/ ++/*561598*/ /*Scope*/ 100, /*->561699*/ ++/*561599*/ OPC_CheckChild0Same, 1, ++/*561601*/ OPC_MoveChild1, ++/*561602*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*561605*/ OPC_Scope, 45, /*->561652*/ // 2 children in Scope ++/*561607*/ OPC_MoveChild0, ++/*561608*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*561611*/ OPC_CheckChild0Integer, 1, ++/*561613*/ OPC_CheckChild0Type, MVT::i64, ++/*561615*/ OPC_CheckChild1Integer, 1, ++/*561617*/ OPC_CheckChild1Type, MVT::i64, ++/*561619*/ OPC_MoveParent, ++/*561620*/ OPC_CheckChild1Same, 0, ++/*561622*/ OPC_MoveParent, ++/*561623*/ OPC_MoveParent, ++/*561624*/ OPC_MoveParent, ++/*561625*/ OPC_MoveChild1, ++/*561626*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*561629*/ OPC_CheckChild0Integer, 1, ++/*561631*/ OPC_CheckChild0Type, MVT::i64, ++/*561633*/ OPC_CheckChild1Integer, 1, ++/*561635*/ OPC_CheckChild1Type, MVT::i64, ++/*561637*/ OPC_CheckType, MVT::v2i64, ++/*561639*/ OPC_MoveParent, ++/*561640*/ OPC_CheckType, MVT::v2i64, ++/*561642*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*561644*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*561652*/ /*Scope*/ 45, /*->561698*/ ++/*561653*/ OPC_CheckChild0Same, 0, ++/*561655*/ OPC_MoveChild1, ++/*561656*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*561659*/ OPC_CheckChild0Integer, 1, ++/*561661*/ OPC_CheckChild0Type, MVT::i64, ++/*561663*/ OPC_CheckChild1Integer, 1, ++/*561665*/ OPC_CheckChild1Type, MVT::i64, ++/*561667*/ OPC_MoveParent, ++/*561668*/ OPC_MoveParent, ++/*561669*/ OPC_MoveParent, ++/*561670*/ OPC_MoveParent, ++/*561671*/ OPC_MoveChild1, ++/*561672*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*561675*/ OPC_CheckChild0Integer, 1, ++/*561677*/ OPC_CheckChild0Type, MVT::i64, ++/*561679*/ OPC_CheckChild1Integer, 1, ++/*561681*/ OPC_CheckChild1Type, MVT::i64, ++/*561683*/ OPC_CheckType, MVT::v2i64, ++/*561685*/ OPC_MoveParent, ++/*561686*/ OPC_CheckType, MVT::v2i64, ++/*561688*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*561690*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*561698*/ 0, /*End of Scope*/ ++/*561699*/ /*Scope*/ 100, /*->561800*/ ++/*561700*/ OPC_CheckChild0Same, 0, ++/*561702*/ OPC_MoveChild1, ++/*561703*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*561706*/ OPC_Scope, 45, /*->561753*/ // 2 children in Scope ++/*561708*/ OPC_MoveChild0, ++/*561709*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*561712*/ OPC_CheckChild0Integer, 1, ++/*561714*/ OPC_CheckChild0Type, MVT::i64, ++/*561716*/ OPC_CheckChild1Integer, 1, ++/*561718*/ OPC_CheckChild1Type, MVT::i64, ++/*561720*/ OPC_MoveParent, ++/*561721*/ OPC_CheckChild1Same, 1, ++/*561723*/ OPC_MoveParent, ++/*561724*/ OPC_MoveParent, ++/*561725*/ OPC_MoveParent, ++/*561726*/ OPC_MoveChild1, ++/*561727*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*561730*/ OPC_CheckChild0Integer, 1, ++/*561732*/ OPC_CheckChild0Type, MVT::i64, ++/*561734*/ OPC_CheckChild1Integer, 1, ++/*561736*/ OPC_CheckChild1Type, MVT::i64, ++/*561738*/ OPC_CheckType, MVT::v2i64, ++/*561740*/ OPC_MoveParent, ++/*561741*/ OPC_CheckType, MVT::v2i64, ++/*561743*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*561745*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*561753*/ /*Scope*/ 45, /*->561799*/ ++/*561754*/ OPC_CheckChild0Same, 1, ++/*561756*/ OPC_MoveChild1, ++/*561757*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*561760*/ OPC_CheckChild0Integer, 1, ++/*561762*/ OPC_CheckChild0Type, MVT::i64, ++/*561764*/ OPC_CheckChild1Integer, 1, ++/*561766*/ OPC_CheckChild1Type, MVT::i64, ++/*561768*/ OPC_MoveParent, ++/*561769*/ OPC_MoveParent, ++/*561770*/ OPC_MoveParent, ++/*561771*/ OPC_MoveParent, ++/*561772*/ OPC_MoveChild1, ++/*561773*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*561776*/ OPC_CheckChild0Integer, 1, ++/*561778*/ OPC_CheckChild0Type, MVT::i64, ++/*561780*/ OPC_CheckChild1Integer, 1, ++/*561782*/ OPC_CheckChild1Type, MVT::i64, ++/*561784*/ OPC_CheckType, MVT::v2i64, ++/*561786*/ OPC_MoveParent, ++/*561787*/ OPC_CheckType, MVT::v2i64, ++/*561789*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*561791*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*561799*/ 0, /*End of Scope*/ ++/*561800*/ /*Scope*/ 89, /*->561890*/ ++/*561801*/ OPC_MoveChild0, ++/*561802*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*561805*/ OPC_CheckChild0Integer, 1, ++/*561807*/ OPC_CheckChild0Type, MVT::i64, ++/*561809*/ OPC_CheckChild1Integer, 1, ++/*561811*/ OPC_CheckChild1Type, MVT::i64, ++/*561813*/ OPC_MoveParent, ++/*561814*/ OPC_MoveChild1, ++/*561815*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*561818*/ OPC_Scope, 34, /*->561854*/ // 2 children in Scope ++/*561820*/ OPC_CheckChild0Same, 0, ++/*561822*/ OPC_CheckChild1Same, 1, ++/*561824*/ OPC_MoveParent, ++/*561825*/ OPC_MoveParent, ++/*561826*/ OPC_MoveParent, ++/*561827*/ OPC_MoveChild1, ++/*561828*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*561831*/ OPC_CheckChild0Integer, 1, ++/*561833*/ OPC_CheckChild0Type, MVT::i64, ++/*561835*/ OPC_CheckChild1Integer, 1, ++/*561837*/ OPC_CheckChild1Type, MVT::i64, ++/*561839*/ OPC_CheckType, MVT::v2i64, ++/*561841*/ OPC_MoveParent, ++/*561842*/ OPC_CheckType, MVT::v2i64, ++/*561844*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*561846*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*561854*/ /*Scope*/ 34, /*->561889*/ ++/*561855*/ OPC_CheckChild0Same, 1, ++/*561857*/ OPC_CheckChild1Same, 0, ++/*561859*/ OPC_MoveParent, ++/*561860*/ OPC_MoveParent, ++/*561861*/ OPC_MoveParent, ++/*561862*/ OPC_MoveChild1, ++/*561863*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*561866*/ OPC_CheckChild0Integer, 1, ++/*561868*/ OPC_CheckChild0Type, MVT::i64, ++/*561870*/ OPC_CheckChild1Integer, 1, ++/*561872*/ OPC_CheckChild1Type, MVT::i64, ++/*561874*/ OPC_CheckType, MVT::v2i64, ++/*561876*/ OPC_MoveParent, ++/*561877*/ OPC_CheckType, MVT::v2i64, ++/*561879*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*561881*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*561889*/ 0, /*End of Scope*/ ++/*561890*/ 0, /*End of Scope*/ ++/*561891*/ /*Scope*/ 115|128,4/*627*/, /*->562520*/ ++/*561893*/ OPC_MoveChild0, ++/*561894*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*561897*/ OPC_CheckChild0Integer, 1, ++/*561899*/ OPC_CheckChild0Type, MVT::i64, ++/*561901*/ OPC_CheckChild1Integer, 1, ++/*561903*/ OPC_CheckChild1Type, MVT::i64, ++/*561905*/ OPC_MoveParent, ++/*561906*/ OPC_RecordChild1, // #0 = $b ++/*561907*/ OPC_MoveParent, ++/*561908*/ OPC_RecordChild1, // #1 = $a ++/*561909*/ OPC_MoveParent, ++/*561910*/ OPC_MoveChild1, ++/*561911*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*561914*/ OPC_CheckChild0Integer, 63, ++/*561916*/ OPC_CheckChild0Type, MVT::i64, ++/*561918*/ OPC_CheckChild1Integer, 63, ++/*561920*/ OPC_CheckChild1Type, MVT::i64, ++/*561922*/ OPC_CheckType, MVT::v2i64, ++/*561924*/ OPC_MoveParent, ++/*561925*/ OPC_MoveParent, ++/*561926*/ OPC_MoveChild1, ++/*561927*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*561930*/ OPC_Scope, 38|128,2/*294*/, /*->562227*/ // 4 children in Scope ++/*561933*/ OPC_MoveChild0, ++/*561934*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*561937*/ OPC_Scope, 47, /*->561986*/ // 6 children in Scope ++/*561939*/ OPC_MoveChild0, ++/*561940*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*561943*/ OPC_CheckChild0Integer, 1, ++/*561945*/ OPC_CheckChild0Type, MVT::i64, ++/*561947*/ OPC_CheckChild1Integer, 1, ++/*561949*/ OPC_CheckChild1Type, MVT::i64, ++/*561951*/ OPC_MoveParent, ++/*561952*/ OPC_CheckChild1Same, 1, ++/*561954*/ OPC_MoveParent, ++/*561955*/ OPC_CheckChild1Same, 0, ++/*561957*/ OPC_MoveParent, ++/*561958*/ OPC_MoveParent, ++/*561959*/ OPC_MoveChild1, ++/*561960*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*561963*/ OPC_CheckChild0Integer, 1, ++/*561965*/ OPC_CheckChild0Type, MVT::i64, ++/*561967*/ OPC_CheckChild1Integer, 1, ++/*561969*/ OPC_CheckChild1Type, MVT::i64, ++/*561971*/ OPC_CheckType, MVT::v2i64, ++/*561973*/ OPC_MoveParent, ++/*561974*/ OPC_CheckType, MVT::v2i64, ++/*561976*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*561978*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b), LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a), LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*561986*/ /*Scope*/ 47, /*->562034*/ ++/*561987*/ OPC_CheckChild0Same, 1, ++/*561989*/ OPC_MoveChild1, ++/*561990*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*561993*/ OPC_CheckChild0Integer, 1, ++/*561995*/ OPC_CheckChild0Type, MVT::i64, ++/*561997*/ OPC_CheckChild1Integer, 1, ++/*561999*/ OPC_CheckChild1Type, MVT::i64, ++/*562001*/ OPC_MoveParent, ++/*562002*/ OPC_MoveParent, ++/*562003*/ OPC_CheckChild1Same, 0, ++/*562005*/ OPC_MoveParent, ++/*562006*/ OPC_MoveParent, ++/*562007*/ OPC_MoveChild1, ++/*562008*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*562011*/ OPC_CheckChild0Integer, 1, ++/*562013*/ OPC_CheckChild0Type, MVT::i64, ++/*562015*/ OPC_CheckChild1Integer, 1, ++/*562017*/ OPC_CheckChild1Type, MVT::i64, ++/*562019*/ OPC_CheckType, MVT::v2i64, ++/*562021*/ OPC_MoveParent, ++/*562022*/ OPC_CheckType, MVT::v2i64, ++/*562024*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*562026*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b), LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*562034*/ /*Scope*/ 47, /*->562082*/ ++/*562035*/ OPC_MoveChild0, ++/*562036*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*562039*/ OPC_CheckChild0Integer, 1, ++/*562041*/ OPC_CheckChild0Type, MVT::i64, ++/*562043*/ OPC_CheckChild1Integer, 1, ++/*562045*/ OPC_CheckChild1Type, MVT::i64, ++/*562047*/ OPC_MoveParent, ++/*562048*/ OPC_CheckChild1Same, 0, ++/*562050*/ OPC_MoveParent, ++/*562051*/ OPC_CheckChild1Same, 1, ++/*562053*/ OPC_MoveParent, ++/*562054*/ OPC_MoveParent, ++/*562055*/ OPC_MoveChild1, ++/*562056*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*562059*/ OPC_CheckChild0Integer, 1, ++/*562061*/ OPC_CheckChild0Type, MVT::i64, ++/*562063*/ OPC_CheckChild1Integer, 1, ++/*562065*/ OPC_CheckChild1Type, MVT::i64, ++/*562067*/ OPC_CheckType, MVT::v2i64, ++/*562069*/ OPC_MoveParent, ++/*562070*/ OPC_CheckType, MVT::v2i64, ++/*562072*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*562074*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b), LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b), LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*562082*/ /*Scope*/ 47, /*->562130*/ ++/*562083*/ OPC_CheckChild0Same, 0, ++/*562085*/ OPC_MoveChild1, ++/*562086*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*562089*/ OPC_CheckChild0Integer, 1, ++/*562091*/ OPC_CheckChild0Type, MVT::i64, ++/*562093*/ OPC_CheckChild1Integer, 1, ++/*562095*/ OPC_CheckChild1Type, MVT::i64, ++/*562097*/ OPC_MoveParent, ++/*562098*/ OPC_MoveParent, ++/*562099*/ OPC_CheckChild1Same, 1, ++/*562101*/ OPC_MoveParent, ++/*562102*/ OPC_MoveParent, ++/*562103*/ OPC_MoveChild1, ++/*562104*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*562107*/ OPC_CheckChild0Integer, 1, ++/*562109*/ OPC_CheckChild0Type, MVT::i64, ++/*562111*/ OPC_CheckChild1Integer, 1, ++/*562113*/ OPC_CheckChild1Type, MVT::i64, ++/*562115*/ OPC_CheckType, MVT::v2i64, ++/*562117*/ OPC_MoveParent, ++/*562118*/ OPC_CheckType, MVT::v2i64, ++/*562120*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*562122*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b), LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*562130*/ /*Scope*/ 47, /*->562178*/ ++/*562131*/ OPC_CheckChild0Same, 1, ++/*562133*/ OPC_CheckChild1Same, 0, ++/*562135*/ OPC_MoveParent, ++/*562136*/ OPC_MoveChild1, ++/*562137*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*562140*/ OPC_CheckChild0Integer, 1, ++/*562142*/ OPC_CheckChild0Type, MVT::i64, ++/*562144*/ OPC_CheckChild1Integer, 1, ++/*562146*/ OPC_CheckChild1Type, MVT::i64, ++/*562148*/ OPC_MoveParent, ++/*562149*/ OPC_MoveParent, ++/*562150*/ OPC_MoveParent, ++/*562151*/ OPC_MoveChild1, ++/*562152*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*562155*/ OPC_CheckChild0Integer, 1, ++/*562157*/ OPC_CheckChild0Type, MVT::i64, ++/*562159*/ OPC_CheckChild1Integer, 1, ++/*562161*/ OPC_CheckChild1Type, MVT::i64, ++/*562163*/ OPC_CheckType, MVT::v2i64, ++/*562165*/ OPC_MoveParent, ++/*562166*/ OPC_CheckType, MVT::v2i64, ++/*562168*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*562170*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b), LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*562178*/ /*Scope*/ 47, /*->562226*/ ++/*562179*/ OPC_CheckChild0Same, 0, ++/*562181*/ OPC_CheckChild1Same, 1, ++/*562183*/ OPC_MoveParent, ++/*562184*/ OPC_MoveChild1, ++/*562185*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*562188*/ OPC_CheckChild0Integer, 1, ++/*562190*/ OPC_CheckChild0Type, MVT::i64, ++/*562192*/ OPC_CheckChild1Integer, 1, ++/*562194*/ OPC_CheckChild1Type, MVT::i64, ++/*562196*/ OPC_MoveParent, ++/*562197*/ OPC_MoveParent, ++/*562198*/ OPC_MoveParent, ++/*562199*/ OPC_MoveChild1, ++/*562200*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*562203*/ OPC_CheckChild0Integer, 1, ++/*562205*/ OPC_CheckChild0Type, MVT::i64, ++/*562207*/ OPC_CheckChild1Integer, 1, ++/*562209*/ OPC_CheckChild1Type, MVT::i64, ++/*562211*/ OPC_CheckType, MVT::v2i64, ++/*562213*/ OPC_MoveParent, ++/*562214*/ OPC_CheckType, MVT::v2i64, ++/*562216*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*562218*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b), LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*562226*/ 0, /*End of Scope*/ ++/*562227*/ /*Scope*/ 100, /*->562328*/ ++/*562228*/ OPC_CheckChild0Same, 0, ++/*562230*/ OPC_MoveChild1, ++/*562231*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*562234*/ OPC_Scope, 45, /*->562281*/ // 2 children in Scope ++/*562236*/ OPC_MoveChild0, ++/*562237*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*562240*/ OPC_CheckChild0Integer, 1, ++/*562242*/ OPC_CheckChild0Type, MVT::i64, ++/*562244*/ OPC_CheckChild1Integer, 1, ++/*562246*/ OPC_CheckChild1Type, MVT::i64, ++/*562248*/ OPC_MoveParent, ++/*562249*/ OPC_CheckChild1Same, 1, ++/*562251*/ OPC_MoveParent, ++/*562252*/ OPC_MoveParent, ++/*562253*/ OPC_MoveParent, ++/*562254*/ OPC_MoveChild1, ++/*562255*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*562258*/ OPC_CheckChild0Integer, 1, ++/*562260*/ OPC_CheckChild0Type, MVT::i64, ++/*562262*/ OPC_CheckChild1Integer, 1, ++/*562264*/ OPC_CheckChild1Type, MVT::i64, ++/*562266*/ OPC_CheckType, MVT::v2i64, ++/*562268*/ OPC_MoveParent, ++/*562269*/ OPC_CheckType, MVT::v2i64, ++/*562271*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*562273*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b), LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*562281*/ /*Scope*/ 45, /*->562327*/ ++/*562282*/ OPC_CheckChild0Same, 1, ++/*562284*/ OPC_MoveChild1, ++/*562285*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*562288*/ OPC_CheckChild0Integer, 1, ++/*562290*/ OPC_CheckChild0Type, MVT::i64, ++/*562292*/ OPC_CheckChild1Integer, 1, ++/*562294*/ OPC_CheckChild1Type, MVT::i64, ++/*562296*/ OPC_MoveParent, ++/*562297*/ OPC_MoveParent, ++/*562298*/ OPC_MoveParent, ++/*562299*/ OPC_MoveParent, ++/*562300*/ OPC_MoveChild1, ++/*562301*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*562304*/ OPC_CheckChild0Integer, 1, ++/*562306*/ OPC_CheckChild0Type, MVT::i64, ++/*562308*/ OPC_CheckChild1Integer, 1, ++/*562310*/ OPC_CheckChild1Type, MVT::i64, ++/*562312*/ OPC_CheckType, MVT::v2i64, ++/*562314*/ OPC_MoveParent, ++/*562315*/ OPC_CheckType, MVT::v2i64, ++/*562317*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*562319*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b), LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*562327*/ 0, /*End of Scope*/ ++/*562328*/ /*Scope*/ 100, /*->562429*/ ++/*562329*/ OPC_CheckChild0Same, 1, ++/*562331*/ OPC_MoveChild1, ++/*562332*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*562335*/ OPC_Scope, 45, /*->562382*/ // 2 children in Scope ++/*562337*/ OPC_MoveChild0, ++/*562338*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*562341*/ OPC_CheckChild0Integer, 1, ++/*562343*/ OPC_CheckChild0Type, MVT::i64, ++/*562345*/ OPC_CheckChild1Integer, 1, ++/*562347*/ OPC_CheckChild1Type, MVT::i64, ++/*562349*/ OPC_MoveParent, ++/*562350*/ OPC_CheckChild1Same, 0, ++/*562352*/ OPC_MoveParent, ++/*562353*/ OPC_MoveParent, ++/*562354*/ OPC_MoveParent, ++/*562355*/ OPC_MoveChild1, ++/*562356*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*562359*/ OPC_CheckChild0Integer, 1, ++/*562361*/ OPC_CheckChild0Type, MVT::i64, ++/*562363*/ OPC_CheckChild1Integer, 1, ++/*562365*/ OPC_CheckChild1Type, MVT::i64, ++/*562367*/ OPC_CheckType, MVT::v2i64, ++/*562369*/ OPC_MoveParent, ++/*562370*/ OPC_CheckType, MVT::v2i64, ++/*562372*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*562374*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b), LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*562382*/ /*Scope*/ 45, /*->562428*/ ++/*562383*/ OPC_CheckChild0Same, 0, ++/*562385*/ OPC_MoveChild1, ++/*562386*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*562389*/ OPC_CheckChild0Integer, 1, ++/*562391*/ OPC_CheckChild0Type, MVT::i64, ++/*562393*/ OPC_CheckChild1Integer, 1, ++/*562395*/ OPC_CheckChild1Type, MVT::i64, ++/*562397*/ OPC_MoveParent, ++/*562398*/ OPC_MoveParent, ++/*562399*/ OPC_MoveParent, ++/*562400*/ OPC_MoveParent, ++/*562401*/ OPC_MoveChild1, ++/*562402*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*562405*/ OPC_CheckChild0Integer, 1, ++/*562407*/ OPC_CheckChild0Type, MVT::i64, ++/*562409*/ OPC_CheckChild1Integer, 1, ++/*562411*/ OPC_CheckChild1Type, MVT::i64, ++/*562413*/ OPC_CheckType, MVT::v2i64, ++/*562415*/ OPC_MoveParent, ++/*562416*/ OPC_CheckType, MVT::v2i64, ++/*562418*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*562420*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b), LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*562428*/ 0, /*End of Scope*/ ++/*562429*/ /*Scope*/ 89, /*->562519*/ ++/*562430*/ OPC_MoveChild0, ++/*562431*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*562434*/ OPC_CheckChild0Integer, 1, ++/*562436*/ OPC_CheckChild0Type, MVT::i64, ++/*562438*/ OPC_CheckChild1Integer, 1, ++/*562440*/ OPC_CheckChild1Type, MVT::i64, ++/*562442*/ OPC_MoveParent, ++/*562443*/ OPC_MoveChild1, ++/*562444*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*562447*/ OPC_Scope, 34, /*->562483*/ // 2 children in Scope ++/*562449*/ OPC_CheckChild0Same, 1, ++/*562451*/ OPC_CheckChild1Same, 0, ++/*562453*/ OPC_MoveParent, ++/*562454*/ OPC_MoveParent, ++/*562455*/ OPC_MoveParent, ++/*562456*/ OPC_MoveChild1, ++/*562457*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*562460*/ OPC_CheckChild0Integer, 1, ++/*562462*/ OPC_CheckChild0Type, MVT::i64, ++/*562464*/ OPC_CheckChild1Integer, 1, ++/*562466*/ OPC_CheckChild1Type, MVT::i64, ++/*562468*/ OPC_CheckType, MVT::v2i64, ++/*562470*/ OPC_MoveParent, ++/*562471*/ OPC_CheckType, MVT::v2i64, ++/*562473*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*562475*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b), LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*562483*/ /*Scope*/ 34, /*->562518*/ ++/*562484*/ OPC_CheckChild0Same, 0, ++/*562486*/ OPC_CheckChild1Same, 1, ++/*562488*/ OPC_MoveParent, ++/*562489*/ OPC_MoveParent, ++/*562490*/ OPC_MoveParent, ++/*562491*/ OPC_MoveChild1, ++/*562492*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*562495*/ OPC_CheckChild0Integer, 1, ++/*562497*/ OPC_CheckChild0Type, MVT::i64, ++/*562499*/ OPC_CheckChild1Integer, 1, ++/*562501*/ OPC_CheckChild1Type, MVT::i64, ++/*562503*/ OPC_CheckType, MVT::v2i64, ++/*562505*/ OPC_MoveParent, ++/*562506*/ OPC_CheckType, MVT::v2i64, ++/*562508*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*562510*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b), LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*562518*/ 0, /*End of Scope*/ ++/*562519*/ 0, /*End of Scope*/ ++/*562520*/ /*Scope*/ 56|128,14/*1848*/, /*->564370*/ ++/*562522*/ OPC_RecordChild0, // #0 = $b ++/*562523*/ OPC_Scope, 114|128,4/*626*/, /*->563152*/ // 2 children in Scope ++/*562526*/ OPC_MoveChild1, ++/*562527*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*562530*/ OPC_CheckChild0Integer, 1, ++/*562532*/ OPC_CheckChild0Type, MVT::i64, ++/*562534*/ OPC_CheckChild1Integer, 1, ++/*562536*/ OPC_CheckChild1Type, MVT::i64, ++/*562538*/ OPC_MoveParent, ++/*562539*/ OPC_MoveParent, ++/*562540*/ OPC_RecordChild1, // #1 = $a ++/*562541*/ OPC_MoveParent, ++/*562542*/ OPC_MoveChild1, ++/*562543*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*562546*/ OPC_CheckChild0Integer, 63, ++/*562548*/ OPC_CheckChild0Type, MVT::i64, ++/*562550*/ OPC_CheckChild1Integer, 63, ++/*562552*/ OPC_CheckChild1Type, MVT::i64, ++/*562554*/ OPC_CheckType, MVT::v2i64, ++/*562556*/ OPC_MoveParent, ++/*562557*/ OPC_MoveParent, ++/*562558*/ OPC_MoveChild1, ++/*562559*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*562562*/ OPC_Scope, 38|128,2/*294*/, /*->562859*/ // 4 children in Scope ++/*562565*/ OPC_MoveChild0, ++/*562566*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*562569*/ OPC_Scope, 47, /*->562618*/ // 6 children in Scope ++/*562571*/ OPC_MoveChild0, ++/*562572*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*562575*/ OPC_CheckChild0Integer, 1, ++/*562577*/ OPC_CheckChild0Type, MVT::i64, ++/*562579*/ OPC_CheckChild1Integer, 1, ++/*562581*/ OPC_CheckChild1Type, MVT::i64, ++/*562583*/ OPC_MoveParent, ++/*562584*/ OPC_CheckChild1Same, 1, ++/*562586*/ OPC_MoveParent, ++/*562587*/ OPC_CheckChild1Same, 0, ++/*562589*/ OPC_MoveParent, ++/*562590*/ OPC_MoveParent, ++/*562591*/ OPC_MoveChild1, ++/*562592*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*562595*/ OPC_CheckChild0Integer, 1, ++/*562597*/ OPC_CheckChild0Type, MVT::i64, ++/*562599*/ OPC_CheckChild1Integer, 1, ++/*562601*/ OPC_CheckChild1Type, MVT::i64, ++/*562603*/ OPC_CheckType, MVT::v2i64, ++/*562605*/ OPC_MoveParent, ++/*562606*/ OPC_CheckType, MVT::v2i64, ++/*562608*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*562610*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a), LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*562618*/ /*Scope*/ 47, /*->562666*/ ++/*562619*/ OPC_CheckChild0Same, 1, ++/*562621*/ OPC_MoveChild1, ++/*562622*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*562625*/ OPC_CheckChild0Integer, 1, ++/*562627*/ OPC_CheckChild0Type, MVT::i64, ++/*562629*/ OPC_CheckChild1Integer, 1, ++/*562631*/ OPC_CheckChild1Type, MVT::i64, ++/*562633*/ OPC_MoveParent, ++/*562634*/ OPC_MoveParent, ++/*562635*/ OPC_CheckChild1Same, 0, ++/*562637*/ OPC_MoveParent, ++/*562638*/ OPC_MoveParent, ++/*562639*/ OPC_MoveChild1, ++/*562640*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*562643*/ OPC_CheckChild0Integer, 1, ++/*562645*/ OPC_CheckChild0Type, MVT::i64, ++/*562647*/ OPC_CheckChild1Integer, 1, ++/*562649*/ OPC_CheckChild1Type, MVT::i64, ++/*562651*/ OPC_CheckType, MVT::v2i64, ++/*562653*/ OPC_MoveParent, ++/*562654*/ OPC_CheckType, MVT::v2i64, ++/*562656*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*562658*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*562666*/ /*Scope*/ 47, /*->562714*/ ++/*562667*/ OPC_MoveChild0, ++/*562668*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*562671*/ OPC_CheckChild0Integer, 1, ++/*562673*/ OPC_CheckChild0Type, MVT::i64, ++/*562675*/ OPC_CheckChild1Integer, 1, ++/*562677*/ OPC_CheckChild1Type, MVT::i64, ++/*562679*/ OPC_MoveParent, ++/*562680*/ OPC_CheckChild1Same, 0, ++/*562682*/ OPC_MoveParent, ++/*562683*/ OPC_CheckChild1Same, 1, ++/*562685*/ OPC_MoveParent, ++/*562686*/ OPC_MoveParent, ++/*562687*/ OPC_MoveChild1, ++/*562688*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*562691*/ OPC_CheckChild0Integer, 1, ++/*562693*/ OPC_CheckChild0Type, MVT::i64, ++/*562695*/ OPC_CheckChild1Integer, 1, ++/*562697*/ OPC_CheckChild1Type, MVT::i64, ++/*562699*/ OPC_CheckType, MVT::v2i64, ++/*562701*/ OPC_MoveParent, ++/*562702*/ OPC_CheckType, MVT::v2i64, ++/*562704*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*562706*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b), LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*562714*/ /*Scope*/ 47, /*->562762*/ ++/*562715*/ OPC_CheckChild0Same, 0, ++/*562717*/ OPC_MoveChild1, ++/*562718*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*562721*/ OPC_CheckChild0Integer, 1, ++/*562723*/ OPC_CheckChild0Type, MVT::i64, ++/*562725*/ OPC_CheckChild1Integer, 1, ++/*562727*/ OPC_CheckChild1Type, MVT::i64, ++/*562729*/ OPC_MoveParent, ++/*562730*/ OPC_MoveParent, ++/*562731*/ OPC_CheckChild1Same, 1, ++/*562733*/ OPC_MoveParent, ++/*562734*/ OPC_MoveParent, ++/*562735*/ OPC_MoveChild1, ++/*562736*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*562739*/ OPC_CheckChild0Integer, 1, ++/*562741*/ OPC_CheckChild0Type, MVT::i64, ++/*562743*/ OPC_CheckChild1Integer, 1, ++/*562745*/ OPC_CheckChild1Type, MVT::i64, ++/*562747*/ OPC_CheckType, MVT::v2i64, ++/*562749*/ OPC_MoveParent, ++/*562750*/ OPC_CheckType, MVT::v2i64, ++/*562752*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*562754*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*562762*/ /*Scope*/ 47, /*->562810*/ ++/*562763*/ OPC_CheckChild0Same, 1, ++/*562765*/ OPC_CheckChild1Same, 0, ++/*562767*/ OPC_MoveParent, ++/*562768*/ OPC_MoveChild1, ++/*562769*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*562772*/ OPC_CheckChild0Integer, 1, ++/*562774*/ OPC_CheckChild0Type, MVT::i64, ++/*562776*/ OPC_CheckChild1Integer, 1, ++/*562778*/ OPC_CheckChild1Type, MVT::i64, ++/*562780*/ OPC_MoveParent, ++/*562781*/ OPC_MoveParent, ++/*562782*/ OPC_MoveParent, ++/*562783*/ OPC_MoveChild1, ++/*562784*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*562787*/ OPC_CheckChild0Integer, 1, ++/*562789*/ OPC_CheckChild0Type, MVT::i64, ++/*562791*/ OPC_CheckChild1Integer, 1, ++/*562793*/ OPC_CheckChild1Type, MVT::i64, ++/*562795*/ OPC_CheckType, MVT::v2i64, ++/*562797*/ OPC_MoveParent, ++/*562798*/ OPC_CheckType, MVT::v2i64, ++/*562800*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*562802*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*562810*/ /*Scope*/ 47, /*->562858*/ ++/*562811*/ OPC_CheckChild0Same, 0, ++/*562813*/ OPC_CheckChild1Same, 1, ++/*562815*/ OPC_MoveParent, ++/*562816*/ OPC_MoveChild1, ++/*562817*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*562820*/ OPC_CheckChild0Integer, 1, ++/*562822*/ OPC_CheckChild0Type, MVT::i64, ++/*562824*/ OPC_CheckChild1Integer, 1, ++/*562826*/ OPC_CheckChild1Type, MVT::i64, ++/*562828*/ OPC_MoveParent, ++/*562829*/ OPC_MoveParent, ++/*562830*/ OPC_MoveParent, ++/*562831*/ OPC_MoveChild1, ++/*562832*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*562835*/ OPC_CheckChild0Integer, 1, ++/*562837*/ OPC_CheckChild0Type, MVT::i64, ++/*562839*/ OPC_CheckChild1Integer, 1, ++/*562841*/ OPC_CheckChild1Type, MVT::i64, ++/*562843*/ OPC_CheckType, MVT::v2i64, ++/*562845*/ OPC_MoveParent, ++/*562846*/ OPC_CheckType, MVT::v2i64, ++/*562848*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*562850*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*562858*/ 0, /*End of Scope*/ ++/*562859*/ /*Scope*/ 100, /*->562960*/ ++/*562860*/ OPC_CheckChild0Same, 0, ++/*562862*/ OPC_MoveChild1, ++/*562863*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*562866*/ OPC_Scope, 45, /*->562913*/ // 2 children in Scope ++/*562868*/ OPC_MoveChild0, ++/*562869*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*562872*/ OPC_CheckChild0Integer, 1, ++/*562874*/ OPC_CheckChild0Type, MVT::i64, ++/*562876*/ OPC_CheckChild1Integer, 1, ++/*562878*/ OPC_CheckChild1Type, MVT::i64, ++/*562880*/ OPC_MoveParent, ++/*562881*/ OPC_CheckChild1Same, 1, ++/*562883*/ OPC_MoveParent, ++/*562884*/ OPC_MoveParent, ++/*562885*/ OPC_MoveParent, ++/*562886*/ OPC_MoveChild1, ++/*562887*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*562890*/ OPC_CheckChild0Integer, 1, ++/*562892*/ OPC_CheckChild0Type, MVT::i64, ++/*562894*/ OPC_CheckChild1Integer, 1, ++/*562896*/ OPC_CheckChild1Type, MVT::i64, ++/*562898*/ OPC_CheckType, MVT::v2i64, ++/*562900*/ OPC_MoveParent, ++/*562901*/ OPC_CheckType, MVT::v2i64, ++/*562903*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*562905*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*562913*/ /*Scope*/ 45, /*->562959*/ ++/*562914*/ OPC_CheckChild0Same, 1, ++/*562916*/ OPC_MoveChild1, ++/*562917*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*562920*/ OPC_CheckChild0Integer, 1, ++/*562922*/ OPC_CheckChild0Type, MVT::i64, ++/*562924*/ OPC_CheckChild1Integer, 1, ++/*562926*/ OPC_CheckChild1Type, MVT::i64, ++/*562928*/ OPC_MoveParent, ++/*562929*/ OPC_MoveParent, ++/*562930*/ OPC_MoveParent, ++/*562931*/ OPC_MoveParent, ++/*562932*/ OPC_MoveChild1, ++/*562933*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*562936*/ OPC_CheckChild0Integer, 1, ++/*562938*/ OPC_CheckChild0Type, MVT::i64, ++/*562940*/ OPC_CheckChild1Integer, 1, ++/*562942*/ OPC_CheckChild1Type, MVT::i64, ++/*562944*/ OPC_CheckType, MVT::v2i64, ++/*562946*/ OPC_MoveParent, ++/*562947*/ OPC_CheckType, MVT::v2i64, ++/*562949*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*562951*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*562959*/ 0, /*End of Scope*/ ++/*562960*/ /*Scope*/ 100, /*->563061*/ ++/*562961*/ OPC_CheckChild0Same, 1, ++/*562963*/ OPC_MoveChild1, ++/*562964*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*562967*/ OPC_Scope, 45, /*->563014*/ // 2 children in Scope ++/*562969*/ OPC_MoveChild0, ++/*562970*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*562973*/ OPC_CheckChild0Integer, 1, ++/*562975*/ OPC_CheckChild0Type, MVT::i64, ++/*562977*/ OPC_CheckChild1Integer, 1, ++/*562979*/ OPC_CheckChild1Type, MVT::i64, ++/*562981*/ OPC_MoveParent, ++/*562982*/ OPC_CheckChild1Same, 0, ++/*562984*/ OPC_MoveParent, ++/*562985*/ OPC_MoveParent, ++/*562986*/ OPC_MoveParent, ++/*562987*/ OPC_MoveChild1, ++/*562988*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*562991*/ OPC_CheckChild0Integer, 1, ++/*562993*/ OPC_CheckChild0Type, MVT::i64, ++/*562995*/ OPC_CheckChild1Integer, 1, ++/*562997*/ OPC_CheckChild1Type, MVT::i64, ++/*562999*/ OPC_CheckType, MVT::v2i64, ++/*563001*/ OPC_MoveParent, ++/*563002*/ OPC_CheckType, MVT::v2i64, ++/*563004*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*563006*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*563014*/ /*Scope*/ 45, /*->563060*/ ++/*563015*/ OPC_CheckChild0Same, 0, ++/*563017*/ OPC_MoveChild1, ++/*563018*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*563021*/ OPC_CheckChild0Integer, 1, ++/*563023*/ OPC_CheckChild0Type, MVT::i64, ++/*563025*/ OPC_CheckChild1Integer, 1, ++/*563027*/ OPC_CheckChild1Type, MVT::i64, ++/*563029*/ OPC_MoveParent, ++/*563030*/ OPC_MoveParent, ++/*563031*/ OPC_MoveParent, ++/*563032*/ OPC_MoveParent, ++/*563033*/ OPC_MoveChild1, ++/*563034*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*563037*/ OPC_CheckChild0Integer, 1, ++/*563039*/ OPC_CheckChild0Type, MVT::i64, ++/*563041*/ OPC_CheckChild1Integer, 1, ++/*563043*/ OPC_CheckChild1Type, MVT::i64, ++/*563045*/ OPC_CheckType, MVT::v2i64, ++/*563047*/ OPC_MoveParent, ++/*563048*/ OPC_CheckType, MVT::v2i64, ++/*563050*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*563052*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*563060*/ 0, /*End of Scope*/ ++/*563061*/ /*Scope*/ 89, /*->563151*/ ++/*563062*/ OPC_MoveChild0, ++/*563063*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*563066*/ OPC_CheckChild0Integer, 1, ++/*563068*/ OPC_CheckChild0Type, MVT::i64, ++/*563070*/ OPC_CheckChild1Integer, 1, ++/*563072*/ OPC_CheckChild1Type, MVT::i64, ++/*563074*/ OPC_MoveParent, ++/*563075*/ OPC_MoveChild1, ++/*563076*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*563079*/ OPC_Scope, 34, /*->563115*/ // 2 children in Scope ++/*563081*/ OPC_CheckChild0Same, 1, ++/*563083*/ OPC_CheckChild1Same, 0, ++/*563085*/ OPC_MoveParent, ++/*563086*/ OPC_MoveParent, ++/*563087*/ OPC_MoveParent, ++/*563088*/ OPC_MoveChild1, ++/*563089*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*563092*/ OPC_CheckChild0Integer, 1, ++/*563094*/ OPC_CheckChild0Type, MVT::i64, ++/*563096*/ OPC_CheckChild1Integer, 1, ++/*563098*/ OPC_CheckChild1Type, MVT::i64, ++/*563100*/ OPC_CheckType, MVT::v2i64, ++/*563102*/ OPC_MoveParent, ++/*563103*/ OPC_CheckType, MVT::v2i64, ++/*563105*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*563107*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*563115*/ /*Scope*/ 34, /*->563150*/ ++/*563116*/ OPC_CheckChild0Same, 0, ++/*563118*/ OPC_CheckChild1Same, 1, ++/*563120*/ OPC_MoveParent, ++/*563121*/ OPC_MoveParent, ++/*563122*/ OPC_MoveParent, ++/*563123*/ OPC_MoveChild1, ++/*563124*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*563127*/ OPC_CheckChild0Integer, 1, ++/*563129*/ OPC_CheckChild0Type, MVT::i64, ++/*563131*/ OPC_CheckChild1Integer, 1, ++/*563133*/ OPC_CheckChild1Type, MVT::i64, ++/*563135*/ OPC_CheckType, MVT::v2i64, ++/*563137*/ OPC_MoveParent, ++/*563138*/ OPC_CheckType, MVT::v2i64, ++/*563140*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*563142*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*563150*/ 0, /*End of Scope*/ ++/*563151*/ 0, /*End of Scope*/ ++/*563152*/ /*Scope*/ 63|128,9/*1215*/, /*->564369*/ ++/*563154*/ OPC_RecordChild1, // #1 = $b ++/*563155*/ OPC_MoveParent, ++/*563156*/ OPC_MoveChild1, ++/*563157*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*563160*/ OPC_CheckChild0Integer, 1, ++/*563162*/ OPC_CheckChild0Type, MVT::i64, ++/*563164*/ OPC_CheckChild1Integer, 1, ++/*563166*/ OPC_CheckChild1Type, MVT::i64, ++/*563168*/ OPC_MoveParent, ++/*563169*/ OPC_MoveParent, ++/*563170*/ OPC_MoveChild1, ++/*563171*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*563174*/ OPC_CheckChild0Integer, 63, ++/*563176*/ OPC_CheckChild0Type, MVT::i64, ++/*563178*/ OPC_CheckChild1Integer, 63, ++/*563180*/ OPC_CheckChild1Type, MVT::i64, ++/*563182*/ OPC_CheckType, MVT::v2i64, ++/*563184*/ OPC_MoveParent, ++/*563185*/ OPC_MoveParent, ++/*563186*/ OPC_MoveChild1, ++/*563187*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*563190*/ OPC_Scope, 38|128,2/*294*/, /*->563487*/ // 7 children in Scope ++/*563193*/ OPC_MoveChild0, ++/*563194*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*563197*/ OPC_Scope, 47, /*->563246*/ // 6 children in Scope ++/*563199*/ OPC_MoveChild0, ++/*563200*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*563203*/ OPC_CheckChild0Integer, 1, ++/*563205*/ OPC_CheckChild0Type, MVT::i64, ++/*563207*/ OPC_CheckChild1Integer, 1, ++/*563209*/ OPC_CheckChild1Type, MVT::i64, ++/*563211*/ OPC_MoveParent, ++/*563212*/ OPC_CheckChild1Same, 0, ++/*563214*/ OPC_MoveParent, ++/*563215*/ OPC_CheckChild1Same, 1, ++/*563217*/ OPC_MoveParent, ++/*563218*/ OPC_MoveParent, ++/*563219*/ OPC_MoveChild1, ++/*563220*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*563223*/ OPC_CheckChild0Integer, 1, ++/*563225*/ OPC_CheckChild0Type, MVT::i64, ++/*563227*/ OPC_CheckChild1Integer, 1, ++/*563229*/ OPC_CheckChild1Type, MVT::i64, ++/*563231*/ OPC_CheckType, MVT::v2i64, ++/*563233*/ OPC_MoveParent, ++/*563234*/ OPC_CheckType, MVT::v2i64, ++/*563236*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*563238*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a), LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*563246*/ /*Scope*/ 47, /*->563294*/ ++/*563247*/ OPC_CheckChild0Same, 0, ++/*563249*/ OPC_MoveChild1, ++/*563250*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*563253*/ OPC_CheckChild0Integer, 1, ++/*563255*/ OPC_CheckChild0Type, MVT::i64, ++/*563257*/ OPC_CheckChild1Integer, 1, ++/*563259*/ OPC_CheckChild1Type, MVT::i64, ++/*563261*/ OPC_MoveParent, ++/*563262*/ OPC_MoveParent, ++/*563263*/ OPC_CheckChild1Same, 1, ++/*563265*/ OPC_MoveParent, ++/*563266*/ OPC_MoveParent, ++/*563267*/ OPC_MoveChild1, ++/*563268*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*563271*/ OPC_CheckChild0Integer, 1, ++/*563273*/ OPC_CheckChild0Type, MVT::i64, ++/*563275*/ OPC_CheckChild1Integer, 1, ++/*563277*/ OPC_CheckChild1Type, MVT::i64, ++/*563279*/ OPC_CheckType, MVT::v2i64, ++/*563281*/ OPC_MoveParent, ++/*563282*/ OPC_CheckType, MVT::v2i64, ++/*563284*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*563286*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*563294*/ /*Scope*/ 47, /*->563342*/ ++/*563295*/ OPC_MoveChild0, ++/*563296*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*563299*/ OPC_CheckChild0Integer, 1, ++/*563301*/ OPC_CheckChild0Type, MVT::i64, ++/*563303*/ OPC_CheckChild1Integer, 1, ++/*563305*/ OPC_CheckChild1Type, MVT::i64, ++/*563307*/ OPC_MoveParent, ++/*563308*/ OPC_CheckChild1Same, 1, ++/*563310*/ OPC_MoveParent, ++/*563311*/ OPC_CheckChild1Same, 0, ++/*563313*/ OPC_MoveParent, ++/*563314*/ OPC_MoveParent, ++/*563315*/ OPC_MoveChild1, ++/*563316*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*563319*/ OPC_CheckChild0Integer, 1, ++/*563321*/ OPC_CheckChild0Type, MVT::i64, ++/*563323*/ OPC_CheckChild1Integer, 1, ++/*563325*/ OPC_CheckChild1Type, MVT::i64, ++/*563327*/ OPC_CheckType, MVT::v2i64, ++/*563329*/ OPC_MoveParent, ++/*563330*/ OPC_CheckType, MVT::v2i64, ++/*563332*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*563334*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b), LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*563342*/ /*Scope*/ 47, /*->563390*/ ++/*563343*/ OPC_CheckChild0Same, 1, ++/*563345*/ OPC_MoveChild1, ++/*563346*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*563349*/ OPC_CheckChild0Integer, 1, ++/*563351*/ OPC_CheckChild0Type, MVT::i64, ++/*563353*/ OPC_CheckChild1Integer, 1, ++/*563355*/ OPC_CheckChild1Type, MVT::i64, ++/*563357*/ OPC_MoveParent, ++/*563358*/ OPC_MoveParent, ++/*563359*/ OPC_CheckChild1Same, 0, ++/*563361*/ OPC_MoveParent, ++/*563362*/ OPC_MoveParent, ++/*563363*/ OPC_MoveChild1, ++/*563364*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*563367*/ OPC_CheckChild0Integer, 1, ++/*563369*/ OPC_CheckChild0Type, MVT::i64, ++/*563371*/ OPC_CheckChild1Integer, 1, ++/*563373*/ OPC_CheckChild1Type, MVT::i64, ++/*563375*/ OPC_CheckType, MVT::v2i64, ++/*563377*/ OPC_MoveParent, ++/*563378*/ OPC_CheckType, MVT::v2i64, ++/*563380*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*563382*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*563390*/ /*Scope*/ 47, /*->563438*/ ++/*563391*/ OPC_CheckChild0Same, 0, ++/*563393*/ OPC_CheckChild1Same, 1, ++/*563395*/ OPC_MoveParent, ++/*563396*/ OPC_MoveChild1, ++/*563397*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*563400*/ OPC_CheckChild0Integer, 1, ++/*563402*/ OPC_CheckChild0Type, MVT::i64, ++/*563404*/ OPC_CheckChild1Integer, 1, ++/*563406*/ OPC_CheckChild1Type, MVT::i64, ++/*563408*/ OPC_MoveParent, ++/*563409*/ OPC_MoveParent, ++/*563410*/ OPC_MoveParent, ++/*563411*/ OPC_MoveChild1, ++/*563412*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*563415*/ OPC_CheckChild0Integer, 1, ++/*563417*/ OPC_CheckChild0Type, MVT::i64, ++/*563419*/ OPC_CheckChild1Integer, 1, ++/*563421*/ OPC_CheckChild1Type, MVT::i64, ++/*563423*/ OPC_CheckType, MVT::v2i64, ++/*563425*/ OPC_MoveParent, ++/*563426*/ OPC_CheckType, MVT::v2i64, ++/*563428*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*563430*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*563438*/ /*Scope*/ 47, /*->563486*/ ++/*563439*/ OPC_CheckChild0Same, 1, ++/*563441*/ OPC_CheckChild1Same, 0, ++/*563443*/ OPC_MoveParent, ++/*563444*/ OPC_MoveChild1, ++/*563445*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*563448*/ OPC_CheckChild0Integer, 1, ++/*563450*/ OPC_CheckChild0Type, MVT::i64, ++/*563452*/ OPC_CheckChild1Integer, 1, ++/*563454*/ OPC_CheckChild1Type, MVT::i64, ++/*563456*/ OPC_MoveParent, ++/*563457*/ OPC_MoveParent, ++/*563458*/ OPC_MoveParent, ++/*563459*/ OPC_MoveChild1, ++/*563460*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*563463*/ OPC_CheckChild0Integer, 1, ++/*563465*/ OPC_CheckChild0Type, MVT::i64, ++/*563467*/ OPC_CheckChild1Integer, 1, ++/*563469*/ OPC_CheckChild1Type, MVT::i64, ++/*563471*/ OPC_CheckType, MVT::v2i64, ++/*563473*/ OPC_MoveParent, ++/*563474*/ OPC_CheckType, MVT::v2i64, ++/*563476*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*563478*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*563486*/ 0, /*End of Scope*/ ++/*563487*/ /*Scope*/ 100, /*->563588*/ ++/*563488*/ OPC_CheckChild0Same, 1, ++/*563490*/ OPC_MoveChild1, ++/*563491*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*563494*/ OPC_Scope, 45, /*->563541*/ // 2 children in Scope ++/*563496*/ OPC_MoveChild0, ++/*563497*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*563500*/ OPC_CheckChild0Integer, 1, ++/*563502*/ OPC_CheckChild0Type, MVT::i64, ++/*563504*/ OPC_CheckChild1Integer, 1, ++/*563506*/ OPC_CheckChild1Type, MVT::i64, ++/*563508*/ OPC_MoveParent, ++/*563509*/ OPC_CheckChild1Same, 0, ++/*563511*/ OPC_MoveParent, ++/*563512*/ OPC_MoveParent, ++/*563513*/ OPC_MoveParent, ++/*563514*/ OPC_MoveChild1, ++/*563515*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*563518*/ OPC_CheckChild0Integer, 1, ++/*563520*/ OPC_CheckChild0Type, MVT::i64, ++/*563522*/ OPC_CheckChild1Integer, 1, ++/*563524*/ OPC_CheckChild1Type, MVT::i64, ++/*563526*/ OPC_CheckType, MVT::v2i64, ++/*563528*/ OPC_MoveParent, ++/*563529*/ OPC_CheckType, MVT::v2i64, ++/*563531*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*563533*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*563541*/ /*Scope*/ 45, /*->563587*/ ++/*563542*/ OPC_CheckChild0Same, 0, ++/*563544*/ OPC_MoveChild1, ++/*563545*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*563548*/ OPC_CheckChild0Integer, 1, ++/*563550*/ OPC_CheckChild0Type, MVT::i64, ++/*563552*/ OPC_CheckChild1Integer, 1, ++/*563554*/ OPC_CheckChild1Type, MVT::i64, ++/*563556*/ OPC_MoveParent, ++/*563557*/ OPC_MoveParent, ++/*563558*/ OPC_MoveParent, ++/*563559*/ OPC_MoveParent, ++/*563560*/ OPC_MoveChild1, ++/*563561*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*563564*/ OPC_CheckChild0Integer, 1, ++/*563566*/ OPC_CheckChild0Type, MVT::i64, ++/*563568*/ OPC_CheckChild1Integer, 1, ++/*563570*/ OPC_CheckChild1Type, MVT::i64, ++/*563572*/ OPC_CheckType, MVT::v2i64, ++/*563574*/ OPC_MoveParent, ++/*563575*/ OPC_CheckType, MVT::v2i64, ++/*563577*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*563579*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*563587*/ 0, /*End of Scope*/ ++/*563588*/ /*Scope*/ 100, /*->563689*/ ++/*563589*/ OPC_CheckChild0Same, 0, ++/*563591*/ OPC_MoveChild1, ++/*563592*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*563595*/ OPC_Scope, 45, /*->563642*/ // 2 children in Scope ++/*563597*/ OPC_MoveChild0, ++/*563598*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*563601*/ OPC_CheckChild0Integer, 1, ++/*563603*/ OPC_CheckChild0Type, MVT::i64, ++/*563605*/ OPC_CheckChild1Integer, 1, ++/*563607*/ OPC_CheckChild1Type, MVT::i64, ++/*563609*/ OPC_MoveParent, ++/*563610*/ OPC_CheckChild1Same, 1, ++/*563612*/ OPC_MoveParent, ++/*563613*/ OPC_MoveParent, ++/*563614*/ OPC_MoveParent, ++/*563615*/ OPC_MoveChild1, ++/*563616*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*563619*/ OPC_CheckChild0Integer, 1, ++/*563621*/ OPC_CheckChild0Type, MVT::i64, ++/*563623*/ OPC_CheckChild1Integer, 1, ++/*563625*/ OPC_CheckChild1Type, MVT::i64, ++/*563627*/ OPC_CheckType, MVT::v2i64, ++/*563629*/ OPC_MoveParent, ++/*563630*/ OPC_CheckType, MVT::v2i64, ++/*563632*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*563634*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*563642*/ /*Scope*/ 45, /*->563688*/ ++/*563643*/ OPC_CheckChild0Same, 1, ++/*563645*/ OPC_MoveChild1, ++/*563646*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*563649*/ OPC_CheckChild0Integer, 1, ++/*563651*/ OPC_CheckChild0Type, MVT::i64, ++/*563653*/ OPC_CheckChild1Integer, 1, ++/*563655*/ OPC_CheckChild1Type, MVT::i64, ++/*563657*/ OPC_MoveParent, ++/*563658*/ OPC_MoveParent, ++/*563659*/ OPC_MoveParent, ++/*563660*/ OPC_MoveParent, ++/*563661*/ OPC_MoveChild1, ++/*563662*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*563665*/ OPC_CheckChild0Integer, 1, ++/*563667*/ OPC_CheckChild0Type, MVT::i64, ++/*563669*/ OPC_CheckChild1Integer, 1, ++/*563671*/ OPC_CheckChild1Type, MVT::i64, ++/*563673*/ OPC_CheckType, MVT::v2i64, ++/*563675*/ OPC_MoveParent, ++/*563676*/ OPC_CheckType, MVT::v2i64, ++/*563678*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*563680*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*563688*/ 0, /*End of Scope*/ ++/*563689*/ /*Scope*/ 1|128,3/*385*/, /*->564076*/ ++/*563691*/ OPC_MoveChild0, ++/*563692*/ OPC_SwitchOpcode /*2 cases */, 85, TARGET_VAL(ISD::BUILD_VECTOR),// ->563781 ++/*563696*/ OPC_CheckChild0Integer, 1, ++/*563698*/ OPC_CheckChild0Type, MVT::i64, ++/*563700*/ OPC_CheckChild1Integer, 1, ++/*563702*/ OPC_CheckChild1Type, MVT::i64, ++/*563704*/ OPC_MoveParent, ++/*563705*/ OPC_MoveChild1, ++/*563706*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*563709*/ OPC_Scope, 34, /*->563745*/ // 2 children in Scope ++/*563711*/ OPC_CheckChild0Same, 0, ++/*563713*/ OPC_CheckChild1Same, 1, ++/*563715*/ OPC_MoveParent, ++/*563716*/ OPC_MoveParent, ++/*563717*/ OPC_MoveParent, ++/*563718*/ OPC_MoveChild1, ++/*563719*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*563722*/ OPC_CheckChild0Integer, 1, ++/*563724*/ OPC_CheckChild0Type, MVT::i64, ++/*563726*/ OPC_CheckChild1Integer, 1, ++/*563728*/ OPC_CheckChild1Type, MVT::i64, ++/*563730*/ OPC_CheckType, MVT::v2i64, ++/*563732*/ OPC_MoveParent, ++/*563733*/ OPC_CheckType, MVT::v2i64, ++/*563735*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*563737*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*563745*/ /*Scope*/ 34, /*->563780*/ ++/*563746*/ OPC_CheckChild0Same, 1, ++/*563748*/ OPC_CheckChild1Same, 0, ++/*563750*/ OPC_MoveParent, ++/*563751*/ OPC_MoveParent, ++/*563752*/ OPC_MoveParent, ++/*563753*/ OPC_MoveChild1, ++/*563754*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*563757*/ OPC_CheckChild0Integer, 1, ++/*563759*/ OPC_CheckChild0Type, MVT::i64, ++/*563761*/ OPC_CheckChild1Integer, 1, ++/*563763*/ OPC_CheckChild1Type, MVT::i64, ++/*563765*/ OPC_CheckType, MVT::v2i64, ++/*563767*/ OPC_MoveParent, ++/*563768*/ OPC_CheckType, MVT::v2i64, ++/*563770*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*563772*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*563780*/ 0, /*End of Scope*/ ++/*563781*/ /*SwitchOpcode*/ 34|128,2/*290*/, TARGET_VAL(ISD::ADD),// ->564075 ++/*563785*/ OPC_Scope, 47, /*->563834*/ // 6 children in Scope ++/*563787*/ OPC_MoveChild0, ++/*563788*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*563791*/ OPC_CheckChild0Integer, 1, ++/*563793*/ OPC_CheckChild0Type, MVT::i64, ++/*563795*/ OPC_CheckChild1Integer, 1, ++/*563797*/ OPC_CheckChild1Type, MVT::i64, ++/*563799*/ OPC_MoveParent, ++/*563800*/ OPC_CheckChild1Same, 1, ++/*563802*/ OPC_MoveParent, ++/*563803*/ OPC_CheckChild1Same, 0, ++/*563805*/ OPC_MoveParent, ++/*563806*/ OPC_MoveParent, ++/*563807*/ OPC_MoveChild1, ++/*563808*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*563811*/ OPC_CheckChild0Integer, 1, ++/*563813*/ OPC_CheckChild0Type, MVT::i64, ++/*563815*/ OPC_CheckChild1Integer, 1, ++/*563817*/ OPC_CheckChild1Type, MVT::i64, ++/*563819*/ OPC_CheckType, MVT::v2i64, ++/*563821*/ OPC_MoveParent, ++/*563822*/ OPC_CheckType, MVT::v2i64, ++/*563824*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*563826*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a), LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*563834*/ /*Scope*/ 47, /*->563882*/ ++/*563835*/ OPC_CheckChild0Same, 1, ++/*563837*/ OPC_MoveChild1, ++/*563838*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*563841*/ OPC_CheckChild0Integer, 1, ++/*563843*/ OPC_CheckChild0Type, MVT::i64, ++/*563845*/ OPC_CheckChild1Integer, 1, ++/*563847*/ OPC_CheckChild1Type, MVT::i64, ++/*563849*/ OPC_MoveParent, ++/*563850*/ OPC_MoveParent, ++/*563851*/ OPC_CheckChild1Same, 0, ++/*563853*/ OPC_MoveParent, ++/*563854*/ OPC_MoveParent, ++/*563855*/ OPC_MoveChild1, ++/*563856*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*563859*/ OPC_CheckChild0Integer, 1, ++/*563861*/ OPC_CheckChild0Type, MVT::i64, ++/*563863*/ OPC_CheckChild1Integer, 1, ++/*563865*/ OPC_CheckChild1Type, MVT::i64, ++/*563867*/ OPC_CheckType, MVT::v2i64, ++/*563869*/ OPC_MoveParent, ++/*563870*/ OPC_CheckType, MVT::v2i64, ++/*563872*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*563874*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*563882*/ /*Scope*/ 47, /*->563930*/ ++/*563883*/ OPC_MoveChild0, ++/*563884*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*563887*/ OPC_CheckChild0Integer, 1, ++/*563889*/ OPC_CheckChild0Type, MVT::i64, ++/*563891*/ OPC_CheckChild1Integer, 1, ++/*563893*/ OPC_CheckChild1Type, MVT::i64, ++/*563895*/ OPC_MoveParent, ++/*563896*/ OPC_CheckChild1Same, 0, ++/*563898*/ OPC_MoveParent, ++/*563899*/ OPC_CheckChild1Same, 1, ++/*563901*/ OPC_MoveParent, ++/*563902*/ OPC_MoveParent, ++/*563903*/ OPC_MoveChild1, ++/*563904*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*563907*/ OPC_CheckChild0Integer, 1, ++/*563909*/ OPC_CheckChild0Type, MVT::i64, ++/*563911*/ OPC_CheckChild1Integer, 1, ++/*563913*/ OPC_CheckChild1Type, MVT::i64, ++/*563915*/ OPC_CheckType, MVT::v2i64, ++/*563917*/ OPC_MoveParent, ++/*563918*/ OPC_CheckType, MVT::v2i64, ++/*563920*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*563922*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b), LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*563930*/ /*Scope*/ 47, /*->563978*/ ++/*563931*/ OPC_CheckChild0Same, 0, ++/*563933*/ OPC_MoveChild1, ++/*563934*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*563937*/ OPC_CheckChild0Integer, 1, ++/*563939*/ OPC_CheckChild0Type, MVT::i64, ++/*563941*/ OPC_CheckChild1Integer, 1, ++/*563943*/ OPC_CheckChild1Type, MVT::i64, ++/*563945*/ OPC_MoveParent, ++/*563946*/ OPC_MoveParent, ++/*563947*/ OPC_CheckChild1Same, 1, ++/*563949*/ OPC_MoveParent, ++/*563950*/ OPC_MoveParent, ++/*563951*/ OPC_MoveChild1, ++/*563952*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*563955*/ OPC_CheckChild0Integer, 1, ++/*563957*/ OPC_CheckChild0Type, MVT::i64, ++/*563959*/ OPC_CheckChild1Integer, 1, ++/*563961*/ OPC_CheckChild1Type, MVT::i64, ++/*563963*/ OPC_CheckType, MVT::v2i64, ++/*563965*/ OPC_MoveParent, ++/*563966*/ OPC_CheckType, MVT::v2i64, ++/*563968*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*563970*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*563978*/ /*Scope*/ 47, /*->564026*/ ++/*563979*/ OPC_CheckChild0Same, 1, ++/*563981*/ OPC_CheckChild1Same, 0, ++/*563983*/ OPC_MoveParent, ++/*563984*/ OPC_MoveChild1, ++/*563985*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*563988*/ OPC_CheckChild0Integer, 1, ++/*563990*/ OPC_CheckChild0Type, MVT::i64, ++/*563992*/ OPC_CheckChild1Integer, 1, ++/*563994*/ OPC_CheckChild1Type, MVT::i64, ++/*563996*/ OPC_MoveParent, ++/*563997*/ OPC_MoveParent, ++/*563998*/ OPC_MoveParent, ++/*563999*/ OPC_MoveChild1, ++/*564000*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*564003*/ OPC_CheckChild0Integer, 1, ++/*564005*/ OPC_CheckChild0Type, MVT::i64, ++/*564007*/ OPC_CheckChild1Integer, 1, ++/*564009*/ OPC_CheckChild1Type, MVT::i64, ++/*564011*/ OPC_CheckType, MVT::v2i64, ++/*564013*/ OPC_MoveParent, ++/*564014*/ OPC_CheckType, MVT::v2i64, ++/*564016*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*564018*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*564026*/ /*Scope*/ 47, /*->564074*/ ++/*564027*/ OPC_CheckChild0Same, 0, ++/*564029*/ OPC_CheckChild1Same, 1, ++/*564031*/ OPC_MoveParent, ++/*564032*/ OPC_MoveChild1, ++/*564033*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*564036*/ OPC_CheckChild0Integer, 1, ++/*564038*/ OPC_CheckChild0Type, MVT::i64, ++/*564040*/ OPC_CheckChild1Integer, 1, ++/*564042*/ OPC_CheckChild1Type, MVT::i64, ++/*564044*/ OPC_MoveParent, ++/*564045*/ OPC_MoveParent, ++/*564046*/ OPC_MoveParent, ++/*564047*/ OPC_MoveChild1, ++/*564048*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*564051*/ OPC_CheckChild0Integer, 1, ++/*564053*/ OPC_CheckChild0Type, MVT::i64, ++/*564055*/ OPC_CheckChild1Integer, 1, ++/*564057*/ OPC_CheckChild1Type, MVT::i64, ++/*564059*/ OPC_CheckType, MVT::v2i64, ++/*564061*/ OPC_MoveParent, ++/*564062*/ OPC_CheckType, MVT::v2i64, ++/*564064*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*564066*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*564074*/ 0, /*End of Scope*/ ++/*564075*/ 0, // EndSwitchOpcode ++/*564076*/ /*Scope*/ 100, /*->564177*/ ++/*564077*/ OPC_CheckChild0Same, 0, ++/*564079*/ OPC_MoveChild1, ++/*564080*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*564083*/ OPC_Scope, 45, /*->564130*/ // 2 children in Scope ++/*564085*/ OPC_MoveChild0, ++/*564086*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*564089*/ OPC_CheckChild0Integer, 1, ++/*564091*/ OPC_CheckChild0Type, MVT::i64, ++/*564093*/ OPC_CheckChild1Integer, 1, ++/*564095*/ OPC_CheckChild1Type, MVT::i64, ++/*564097*/ OPC_MoveParent, ++/*564098*/ OPC_CheckChild1Same, 1, ++/*564100*/ OPC_MoveParent, ++/*564101*/ OPC_MoveParent, ++/*564102*/ OPC_MoveParent, ++/*564103*/ OPC_MoveChild1, ++/*564104*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*564107*/ OPC_CheckChild0Integer, 1, ++/*564109*/ OPC_CheckChild0Type, MVT::i64, ++/*564111*/ OPC_CheckChild1Integer, 1, ++/*564113*/ OPC_CheckChild1Type, MVT::i64, ++/*564115*/ OPC_CheckType, MVT::v2i64, ++/*564117*/ OPC_MoveParent, ++/*564118*/ OPC_CheckType, MVT::v2i64, ++/*564120*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*564122*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*564130*/ /*Scope*/ 45, /*->564176*/ ++/*564131*/ OPC_CheckChild0Same, 1, ++/*564133*/ OPC_MoveChild1, ++/*564134*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*564137*/ OPC_CheckChild0Integer, 1, ++/*564139*/ OPC_CheckChild0Type, MVT::i64, ++/*564141*/ OPC_CheckChild1Integer, 1, ++/*564143*/ OPC_CheckChild1Type, MVT::i64, ++/*564145*/ OPC_MoveParent, ++/*564146*/ OPC_MoveParent, ++/*564147*/ OPC_MoveParent, ++/*564148*/ OPC_MoveParent, ++/*564149*/ OPC_MoveChild1, ++/*564150*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*564153*/ OPC_CheckChild0Integer, 1, ++/*564155*/ OPC_CheckChild0Type, MVT::i64, ++/*564157*/ OPC_CheckChild1Integer, 1, ++/*564159*/ OPC_CheckChild1Type, MVT::i64, ++/*564161*/ OPC_CheckType, MVT::v2i64, ++/*564163*/ OPC_MoveParent, ++/*564164*/ OPC_CheckType, MVT::v2i64, ++/*564166*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*564168*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*564176*/ 0, /*End of Scope*/ ++/*564177*/ /*Scope*/ 100, /*->564278*/ ++/*564178*/ OPC_CheckChild0Same, 1, ++/*564180*/ OPC_MoveChild1, ++/*564181*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*564184*/ OPC_Scope, 45, /*->564231*/ // 2 children in Scope ++/*564186*/ OPC_MoveChild0, ++/*564187*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*564190*/ OPC_CheckChild0Integer, 1, ++/*564192*/ OPC_CheckChild0Type, MVT::i64, ++/*564194*/ OPC_CheckChild1Integer, 1, ++/*564196*/ OPC_CheckChild1Type, MVT::i64, ++/*564198*/ OPC_MoveParent, ++/*564199*/ OPC_CheckChild1Same, 0, ++/*564201*/ OPC_MoveParent, ++/*564202*/ OPC_MoveParent, ++/*564203*/ OPC_MoveParent, ++/*564204*/ OPC_MoveChild1, ++/*564205*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*564208*/ OPC_CheckChild0Integer, 1, ++/*564210*/ OPC_CheckChild0Type, MVT::i64, ++/*564212*/ OPC_CheckChild1Integer, 1, ++/*564214*/ OPC_CheckChild1Type, MVT::i64, ++/*564216*/ OPC_CheckType, MVT::v2i64, ++/*564218*/ OPC_MoveParent, ++/*564219*/ OPC_CheckType, MVT::v2i64, ++/*564221*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*564223*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*564231*/ /*Scope*/ 45, /*->564277*/ ++/*564232*/ OPC_CheckChild0Same, 0, ++/*564234*/ OPC_MoveChild1, ++/*564235*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*564238*/ OPC_CheckChild0Integer, 1, ++/*564240*/ OPC_CheckChild0Type, MVT::i64, ++/*564242*/ OPC_CheckChild1Integer, 1, ++/*564244*/ OPC_CheckChild1Type, MVT::i64, ++/*564246*/ OPC_MoveParent, ++/*564247*/ OPC_MoveParent, ++/*564248*/ OPC_MoveParent, ++/*564249*/ OPC_MoveParent, ++/*564250*/ OPC_MoveChild1, ++/*564251*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*564254*/ OPC_CheckChild0Integer, 1, ++/*564256*/ OPC_CheckChild0Type, MVT::i64, ++/*564258*/ OPC_CheckChild1Integer, 1, ++/*564260*/ OPC_CheckChild1Type, MVT::i64, ++/*564262*/ OPC_CheckType, MVT::v2i64, ++/*564264*/ OPC_MoveParent, ++/*564265*/ OPC_CheckType, MVT::v2i64, ++/*564267*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*564269*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*564277*/ 0, /*End of Scope*/ ++/*564278*/ /*Scope*/ 89, /*->564368*/ ++/*564279*/ OPC_MoveChild0, ++/*564280*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*564283*/ OPC_CheckChild0Integer, 1, ++/*564285*/ OPC_CheckChild0Type, MVT::i64, ++/*564287*/ OPC_CheckChild1Integer, 1, ++/*564289*/ OPC_CheckChild1Type, MVT::i64, ++/*564291*/ OPC_MoveParent, ++/*564292*/ OPC_MoveChild1, ++/*564293*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*564296*/ OPC_Scope, 34, /*->564332*/ // 2 children in Scope ++/*564298*/ OPC_CheckChild0Same, 1, ++/*564300*/ OPC_CheckChild1Same, 0, ++/*564302*/ OPC_MoveParent, ++/*564303*/ OPC_MoveParent, ++/*564304*/ OPC_MoveParent, ++/*564305*/ OPC_MoveChild1, ++/*564306*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*564309*/ OPC_CheckChild0Integer, 1, ++/*564311*/ OPC_CheckChild0Type, MVT::i64, ++/*564313*/ OPC_CheckChild1Integer, 1, ++/*564315*/ OPC_CheckChild1Type, MVT::i64, ++/*564317*/ OPC_CheckType, MVT::v2i64, ++/*564319*/ OPC_MoveParent, ++/*564320*/ OPC_CheckType, MVT::v2i64, ++/*564322*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*564324*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*564332*/ /*Scope*/ 34, /*->564367*/ ++/*564333*/ OPC_CheckChild0Same, 0, ++/*564335*/ OPC_CheckChild1Same, 1, ++/*564337*/ OPC_MoveParent, ++/*564338*/ OPC_MoveParent, ++/*564339*/ OPC_MoveParent, ++/*564340*/ OPC_MoveChild1, ++/*564341*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*564344*/ OPC_CheckChild0Integer, 1, ++/*564346*/ OPC_CheckChild0Type, MVT::i64, ++/*564348*/ OPC_CheckChild1Integer, 1, ++/*564350*/ OPC_CheckChild1Type, MVT::i64, ++/*564352*/ OPC_CheckType, MVT::v2i64, ++/*564354*/ OPC_MoveParent, ++/*564355*/ OPC_CheckType, MVT::v2i64, ++/*564357*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*564359*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*564367*/ 0, /*End of Scope*/ ++/*564368*/ 0, /*End of Scope*/ ++/*564369*/ 0, /*End of Scope*/ ++/*564370*/ 0, /*End of Scope*/ ++/*564371*/ /*Scope*/ 87|128,19/*2519*/, /*->566892*/ ++/*564373*/ OPC_RecordChild0, // #0 = $b ++/*564374*/ OPC_MoveChild1, ++/*564375*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*564378*/ OPC_Scope, 114|128,4/*626*/, /*->565007*/ // 4 children in Scope ++/*564381*/ OPC_MoveChild0, ++/*564382*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*564385*/ OPC_CheckChild0Integer, 1, ++/*564387*/ OPC_CheckChild0Type, MVT::i64, ++/*564389*/ OPC_CheckChild1Integer, 1, ++/*564391*/ OPC_CheckChild1Type, MVT::i64, ++/*564393*/ OPC_MoveParent, ++/*564394*/ OPC_RecordChild1, // #1 = $a ++/*564395*/ OPC_MoveParent, ++/*564396*/ OPC_MoveParent, ++/*564397*/ OPC_MoveChild1, ++/*564398*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*564401*/ OPC_CheckChild0Integer, 63, ++/*564403*/ OPC_CheckChild0Type, MVT::i64, ++/*564405*/ OPC_CheckChild1Integer, 63, ++/*564407*/ OPC_CheckChild1Type, MVT::i64, ++/*564409*/ OPC_CheckType, MVT::v2i64, ++/*564411*/ OPC_MoveParent, ++/*564412*/ OPC_MoveParent, ++/*564413*/ OPC_MoveChild1, ++/*564414*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*564417*/ OPC_Scope, 38|128,2/*294*/, /*->564714*/ // 4 children in Scope ++/*564420*/ OPC_MoveChild0, ++/*564421*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*564424*/ OPC_Scope, 47, /*->564473*/ // 6 children in Scope ++/*564426*/ OPC_MoveChild0, ++/*564427*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*564430*/ OPC_CheckChild0Integer, 1, ++/*564432*/ OPC_CheckChild0Type, MVT::i64, ++/*564434*/ OPC_CheckChild1Integer, 1, ++/*564436*/ OPC_CheckChild1Type, MVT::i64, ++/*564438*/ OPC_MoveParent, ++/*564439*/ OPC_CheckChild1Same, 1, ++/*564441*/ OPC_MoveParent, ++/*564442*/ OPC_CheckChild1Same, 0, ++/*564444*/ OPC_MoveParent, ++/*564445*/ OPC_MoveParent, ++/*564446*/ OPC_MoveChild1, ++/*564447*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*564450*/ OPC_CheckChild0Integer, 1, ++/*564452*/ OPC_CheckChild0Type, MVT::i64, ++/*564454*/ OPC_CheckChild1Integer, 1, ++/*564456*/ OPC_CheckChild1Type, MVT::i64, ++/*564458*/ OPC_CheckType, MVT::v2i64, ++/*564460*/ OPC_MoveParent, ++/*564461*/ OPC_CheckType, MVT::v2i64, ++/*564463*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*564465*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a), LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*564473*/ /*Scope*/ 47, /*->564521*/ ++/*564474*/ OPC_CheckChild0Same, 1, ++/*564476*/ OPC_MoveChild1, ++/*564477*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*564480*/ OPC_CheckChild0Integer, 1, ++/*564482*/ OPC_CheckChild0Type, MVT::i64, ++/*564484*/ OPC_CheckChild1Integer, 1, ++/*564486*/ OPC_CheckChild1Type, MVT::i64, ++/*564488*/ OPC_MoveParent, ++/*564489*/ OPC_MoveParent, ++/*564490*/ OPC_CheckChild1Same, 0, ++/*564492*/ OPC_MoveParent, ++/*564493*/ OPC_MoveParent, ++/*564494*/ OPC_MoveChild1, ++/*564495*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*564498*/ OPC_CheckChild0Integer, 1, ++/*564500*/ OPC_CheckChild0Type, MVT::i64, ++/*564502*/ OPC_CheckChild1Integer, 1, ++/*564504*/ OPC_CheckChild1Type, MVT::i64, ++/*564506*/ OPC_CheckType, MVT::v2i64, ++/*564508*/ OPC_MoveParent, ++/*564509*/ OPC_CheckType, MVT::v2i64, ++/*564511*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*564513*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*564521*/ /*Scope*/ 47, /*->564569*/ ++/*564522*/ OPC_MoveChild0, ++/*564523*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*564526*/ OPC_CheckChild0Integer, 1, ++/*564528*/ OPC_CheckChild0Type, MVT::i64, ++/*564530*/ OPC_CheckChild1Integer, 1, ++/*564532*/ OPC_CheckChild1Type, MVT::i64, ++/*564534*/ OPC_MoveParent, ++/*564535*/ OPC_CheckChild1Same, 0, ++/*564537*/ OPC_MoveParent, ++/*564538*/ OPC_CheckChild1Same, 1, ++/*564540*/ OPC_MoveParent, ++/*564541*/ OPC_MoveParent, ++/*564542*/ OPC_MoveChild1, ++/*564543*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*564546*/ OPC_CheckChild0Integer, 1, ++/*564548*/ OPC_CheckChild0Type, MVT::i64, ++/*564550*/ OPC_CheckChild1Integer, 1, ++/*564552*/ OPC_CheckChild1Type, MVT::i64, ++/*564554*/ OPC_CheckType, MVT::v2i64, ++/*564556*/ OPC_MoveParent, ++/*564557*/ OPC_CheckType, MVT::v2i64, ++/*564559*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*564561*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b), LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*564569*/ /*Scope*/ 47, /*->564617*/ ++/*564570*/ OPC_CheckChild0Same, 0, ++/*564572*/ OPC_MoveChild1, ++/*564573*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*564576*/ OPC_CheckChild0Integer, 1, ++/*564578*/ OPC_CheckChild0Type, MVT::i64, ++/*564580*/ OPC_CheckChild1Integer, 1, ++/*564582*/ OPC_CheckChild1Type, MVT::i64, ++/*564584*/ OPC_MoveParent, ++/*564585*/ OPC_MoveParent, ++/*564586*/ OPC_CheckChild1Same, 1, ++/*564588*/ OPC_MoveParent, ++/*564589*/ OPC_MoveParent, ++/*564590*/ OPC_MoveChild1, ++/*564591*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*564594*/ OPC_CheckChild0Integer, 1, ++/*564596*/ OPC_CheckChild0Type, MVT::i64, ++/*564598*/ OPC_CheckChild1Integer, 1, ++/*564600*/ OPC_CheckChild1Type, MVT::i64, ++/*564602*/ OPC_CheckType, MVT::v2i64, ++/*564604*/ OPC_MoveParent, ++/*564605*/ OPC_CheckType, MVT::v2i64, ++/*564607*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*564609*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*564617*/ /*Scope*/ 47, /*->564665*/ ++/*564618*/ OPC_CheckChild0Same, 1, ++/*564620*/ OPC_CheckChild1Same, 0, ++/*564622*/ OPC_MoveParent, ++/*564623*/ OPC_MoveChild1, ++/*564624*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*564627*/ OPC_CheckChild0Integer, 1, ++/*564629*/ OPC_CheckChild0Type, MVT::i64, ++/*564631*/ OPC_CheckChild1Integer, 1, ++/*564633*/ OPC_CheckChild1Type, MVT::i64, ++/*564635*/ OPC_MoveParent, ++/*564636*/ OPC_MoveParent, ++/*564637*/ OPC_MoveParent, ++/*564638*/ OPC_MoveChild1, ++/*564639*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*564642*/ OPC_CheckChild0Integer, 1, ++/*564644*/ OPC_CheckChild0Type, MVT::i64, ++/*564646*/ OPC_CheckChild1Integer, 1, ++/*564648*/ OPC_CheckChild1Type, MVT::i64, ++/*564650*/ OPC_CheckType, MVT::v2i64, ++/*564652*/ OPC_MoveParent, ++/*564653*/ OPC_CheckType, MVT::v2i64, ++/*564655*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*564657*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*564665*/ /*Scope*/ 47, /*->564713*/ ++/*564666*/ OPC_CheckChild0Same, 0, ++/*564668*/ OPC_CheckChild1Same, 1, ++/*564670*/ OPC_MoveParent, ++/*564671*/ OPC_MoveChild1, ++/*564672*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*564675*/ OPC_CheckChild0Integer, 1, ++/*564677*/ OPC_CheckChild0Type, MVT::i64, ++/*564679*/ OPC_CheckChild1Integer, 1, ++/*564681*/ OPC_CheckChild1Type, MVT::i64, ++/*564683*/ OPC_MoveParent, ++/*564684*/ OPC_MoveParent, ++/*564685*/ OPC_MoveParent, ++/*564686*/ OPC_MoveChild1, ++/*564687*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*564690*/ OPC_CheckChild0Integer, 1, ++/*564692*/ OPC_CheckChild0Type, MVT::i64, ++/*564694*/ OPC_CheckChild1Integer, 1, ++/*564696*/ OPC_CheckChild1Type, MVT::i64, ++/*564698*/ OPC_CheckType, MVT::v2i64, ++/*564700*/ OPC_MoveParent, ++/*564701*/ OPC_CheckType, MVT::v2i64, ++/*564703*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*564705*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*564713*/ 0, /*End of Scope*/ ++/*564714*/ /*Scope*/ 100, /*->564815*/ ++/*564715*/ OPC_CheckChild0Same, 0, ++/*564717*/ OPC_MoveChild1, ++/*564718*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*564721*/ OPC_Scope, 45, /*->564768*/ // 2 children in Scope ++/*564723*/ OPC_MoveChild0, ++/*564724*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*564727*/ OPC_CheckChild0Integer, 1, ++/*564729*/ OPC_CheckChild0Type, MVT::i64, ++/*564731*/ OPC_CheckChild1Integer, 1, ++/*564733*/ OPC_CheckChild1Type, MVT::i64, ++/*564735*/ OPC_MoveParent, ++/*564736*/ OPC_CheckChild1Same, 1, ++/*564738*/ OPC_MoveParent, ++/*564739*/ OPC_MoveParent, ++/*564740*/ OPC_MoveParent, ++/*564741*/ OPC_MoveChild1, ++/*564742*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*564745*/ OPC_CheckChild0Integer, 1, ++/*564747*/ OPC_CheckChild0Type, MVT::i64, ++/*564749*/ OPC_CheckChild1Integer, 1, ++/*564751*/ OPC_CheckChild1Type, MVT::i64, ++/*564753*/ OPC_CheckType, MVT::v2i64, ++/*564755*/ OPC_MoveParent, ++/*564756*/ OPC_CheckType, MVT::v2i64, ++/*564758*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*564760*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*564768*/ /*Scope*/ 45, /*->564814*/ ++/*564769*/ OPC_CheckChild0Same, 1, ++/*564771*/ OPC_MoveChild1, ++/*564772*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*564775*/ OPC_CheckChild0Integer, 1, ++/*564777*/ OPC_CheckChild0Type, MVT::i64, ++/*564779*/ OPC_CheckChild1Integer, 1, ++/*564781*/ OPC_CheckChild1Type, MVT::i64, ++/*564783*/ OPC_MoveParent, ++/*564784*/ OPC_MoveParent, ++/*564785*/ OPC_MoveParent, ++/*564786*/ OPC_MoveParent, ++/*564787*/ OPC_MoveChild1, ++/*564788*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*564791*/ OPC_CheckChild0Integer, 1, ++/*564793*/ OPC_CheckChild0Type, MVT::i64, ++/*564795*/ OPC_CheckChild1Integer, 1, ++/*564797*/ OPC_CheckChild1Type, MVT::i64, ++/*564799*/ OPC_CheckType, MVT::v2i64, ++/*564801*/ OPC_MoveParent, ++/*564802*/ OPC_CheckType, MVT::v2i64, ++/*564804*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*564806*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*564814*/ 0, /*End of Scope*/ ++/*564815*/ /*Scope*/ 100, /*->564916*/ ++/*564816*/ OPC_CheckChild0Same, 1, ++/*564818*/ OPC_MoveChild1, ++/*564819*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*564822*/ OPC_Scope, 45, /*->564869*/ // 2 children in Scope ++/*564824*/ OPC_MoveChild0, ++/*564825*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*564828*/ OPC_CheckChild0Integer, 1, ++/*564830*/ OPC_CheckChild0Type, MVT::i64, ++/*564832*/ OPC_CheckChild1Integer, 1, ++/*564834*/ OPC_CheckChild1Type, MVT::i64, ++/*564836*/ OPC_MoveParent, ++/*564837*/ OPC_CheckChild1Same, 0, ++/*564839*/ OPC_MoveParent, ++/*564840*/ OPC_MoveParent, ++/*564841*/ OPC_MoveParent, ++/*564842*/ OPC_MoveChild1, ++/*564843*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*564846*/ OPC_CheckChild0Integer, 1, ++/*564848*/ OPC_CheckChild0Type, MVT::i64, ++/*564850*/ OPC_CheckChild1Integer, 1, ++/*564852*/ OPC_CheckChild1Type, MVT::i64, ++/*564854*/ OPC_CheckType, MVT::v2i64, ++/*564856*/ OPC_MoveParent, ++/*564857*/ OPC_CheckType, MVT::v2i64, ++/*564859*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*564861*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*564869*/ /*Scope*/ 45, /*->564915*/ ++/*564870*/ OPC_CheckChild0Same, 0, ++/*564872*/ OPC_MoveChild1, ++/*564873*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*564876*/ OPC_CheckChild0Integer, 1, ++/*564878*/ OPC_CheckChild0Type, MVT::i64, ++/*564880*/ OPC_CheckChild1Integer, 1, ++/*564882*/ OPC_CheckChild1Type, MVT::i64, ++/*564884*/ OPC_MoveParent, ++/*564885*/ OPC_MoveParent, ++/*564886*/ OPC_MoveParent, ++/*564887*/ OPC_MoveParent, ++/*564888*/ OPC_MoveChild1, ++/*564889*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*564892*/ OPC_CheckChild0Integer, 1, ++/*564894*/ OPC_CheckChild0Type, MVT::i64, ++/*564896*/ OPC_CheckChild1Integer, 1, ++/*564898*/ OPC_CheckChild1Type, MVT::i64, ++/*564900*/ OPC_CheckType, MVT::v2i64, ++/*564902*/ OPC_MoveParent, ++/*564903*/ OPC_CheckType, MVT::v2i64, ++/*564905*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*564907*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*564915*/ 0, /*End of Scope*/ ++/*564916*/ /*Scope*/ 89, /*->565006*/ ++/*564917*/ OPC_MoveChild0, ++/*564918*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*564921*/ OPC_CheckChild0Integer, 1, ++/*564923*/ OPC_CheckChild0Type, MVT::i64, ++/*564925*/ OPC_CheckChild1Integer, 1, ++/*564927*/ OPC_CheckChild1Type, MVT::i64, ++/*564929*/ OPC_MoveParent, ++/*564930*/ OPC_MoveChild1, ++/*564931*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*564934*/ OPC_Scope, 34, /*->564970*/ // 2 children in Scope ++/*564936*/ OPC_CheckChild0Same, 1, ++/*564938*/ OPC_CheckChild1Same, 0, ++/*564940*/ OPC_MoveParent, ++/*564941*/ OPC_MoveParent, ++/*564942*/ OPC_MoveParent, ++/*564943*/ OPC_MoveChild1, ++/*564944*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*564947*/ OPC_CheckChild0Integer, 1, ++/*564949*/ OPC_CheckChild0Type, MVT::i64, ++/*564951*/ OPC_CheckChild1Integer, 1, ++/*564953*/ OPC_CheckChild1Type, MVT::i64, ++/*564955*/ OPC_CheckType, MVT::v2i64, ++/*564957*/ OPC_MoveParent, ++/*564958*/ OPC_CheckType, MVT::v2i64, ++/*564960*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*564962*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*564970*/ /*Scope*/ 34, /*->565005*/ ++/*564971*/ OPC_CheckChild0Same, 0, ++/*564973*/ OPC_CheckChild1Same, 1, ++/*564975*/ OPC_MoveParent, ++/*564976*/ OPC_MoveParent, ++/*564977*/ OPC_MoveParent, ++/*564978*/ OPC_MoveChild1, ++/*564979*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*564982*/ OPC_CheckChild0Integer, 1, ++/*564984*/ OPC_CheckChild0Type, MVT::i64, ++/*564986*/ OPC_CheckChild1Integer, 1, ++/*564988*/ OPC_CheckChild1Type, MVT::i64, ++/*564990*/ OPC_CheckType, MVT::v2i64, ++/*564992*/ OPC_MoveParent, ++/*564993*/ OPC_CheckType, MVT::v2i64, ++/*564995*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*564997*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*565005*/ 0, /*End of Scope*/ ++/*565006*/ 0, /*End of Scope*/ ++/*565007*/ /*Scope*/ 114|128,4/*626*/, /*->565635*/ ++/*565009*/ OPC_RecordChild0, // #1 = $a ++/*565010*/ OPC_MoveChild1, ++/*565011*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*565014*/ OPC_CheckChild0Integer, 1, ++/*565016*/ OPC_CheckChild0Type, MVT::i64, ++/*565018*/ OPC_CheckChild1Integer, 1, ++/*565020*/ OPC_CheckChild1Type, MVT::i64, ++/*565022*/ OPC_MoveParent, ++/*565023*/ OPC_MoveParent, ++/*565024*/ OPC_MoveParent, ++/*565025*/ OPC_MoveChild1, ++/*565026*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*565029*/ OPC_CheckChild0Integer, 63, ++/*565031*/ OPC_CheckChild0Type, MVT::i64, ++/*565033*/ OPC_CheckChild1Integer, 63, ++/*565035*/ OPC_CheckChild1Type, MVT::i64, ++/*565037*/ OPC_CheckType, MVT::v2i64, ++/*565039*/ OPC_MoveParent, ++/*565040*/ OPC_MoveParent, ++/*565041*/ OPC_MoveChild1, ++/*565042*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*565045*/ OPC_Scope, 38|128,2/*294*/, /*->565342*/ // 4 children in Scope ++/*565048*/ OPC_MoveChild0, ++/*565049*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*565052*/ OPC_Scope, 47, /*->565101*/ // 6 children in Scope ++/*565054*/ OPC_MoveChild0, ++/*565055*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*565058*/ OPC_CheckChild0Integer, 1, ++/*565060*/ OPC_CheckChild0Type, MVT::i64, ++/*565062*/ OPC_CheckChild1Integer, 1, ++/*565064*/ OPC_CheckChild1Type, MVT::i64, ++/*565066*/ OPC_MoveParent, ++/*565067*/ OPC_CheckChild1Same, 1, ++/*565069*/ OPC_MoveParent, ++/*565070*/ OPC_CheckChild1Same, 0, ++/*565072*/ OPC_MoveParent, ++/*565073*/ OPC_MoveParent, ++/*565074*/ OPC_MoveChild1, ++/*565075*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*565078*/ OPC_CheckChild0Integer, 1, ++/*565080*/ OPC_CheckChild0Type, MVT::i64, ++/*565082*/ OPC_CheckChild1Integer, 1, ++/*565084*/ OPC_CheckChild1Type, MVT::i64, ++/*565086*/ OPC_CheckType, MVT::v2i64, ++/*565088*/ OPC_MoveParent, ++/*565089*/ OPC_CheckType, MVT::v2i64, ++/*565091*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*565093*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a), LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*565101*/ /*Scope*/ 47, /*->565149*/ ++/*565102*/ OPC_CheckChild0Same, 1, ++/*565104*/ OPC_MoveChild1, ++/*565105*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*565108*/ OPC_CheckChild0Integer, 1, ++/*565110*/ OPC_CheckChild0Type, MVT::i64, ++/*565112*/ OPC_CheckChild1Integer, 1, ++/*565114*/ OPC_CheckChild1Type, MVT::i64, ++/*565116*/ OPC_MoveParent, ++/*565117*/ OPC_MoveParent, ++/*565118*/ OPC_CheckChild1Same, 0, ++/*565120*/ OPC_MoveParent, ++/*565121*/ OPC_MoveParent, ++/*565122*/ OPC_MoveChild1, ++/*565123*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*565126*/ OPC_CheckChild0Integer, 1, ++/*565128*/ OPC_CheckChild0Type, MVT::i64, ++/*565130*/ OPC_CheckChild1Integer, 1, ++/*565132*/ OPC_CheckChild1Type, MVT::i64, ++/*565134*/ OPC_CheckType, MVT::v2i64, ++/*565136*/ OPC_MoveParent, ++/*565137*/ OPC_CheckType, MVT::v2i64, ++/*565139*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*565141*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*565149*/ /*Scope*/ 47, /*->565197*/ ++/*565150*/ OPC_MoveChild0, ++/*565151*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*565154*/ OPC_CheckChild0Integer, 1, ++/*565156*/ OPC_CheckChild0Type, MVT::i64, ++/*565158*/ OPC_CheckChild1Integer, 1, ++/*565160*/ OPC_CheckChild1Type, MVT::i64, ++/*565162*/ OPC_MoveParent, ++/*565163*/ OPC_CheckChild1Same, 0, ++/*565165*/ OPC_MoveParent, ++/*565166*/ OPC_CheckChild1Same, 1, ++/*565168*/ OPC_MoveParent, ++/*565169*/ OPC_MoveParent, ++/*565170*/ OPC_MoveChild1, ++/*565171*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*565174*/ OPC_CheckChild0Integer, 1, ++/*565176*/ OPC_CheckChild0Type, MVT::i64, ++/*565178*/ OPC_CheckChild1Integer, 1, ++/*565180*/ OPC_CheckChild1Type, MVT::i64, ++/*565182*/ OPC_CheckType, MVT::v2i64, ++/*565184*/ OPC_MoveParent, ++/*565185*/ OPC_CheckType, MVT::v2i64, ++/*565187*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*565189*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b), LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*565197*/ /*Scope*/ 47, /*->565245*/ ++/*565198*/ OPC_CheckChild0Same, 0, ++/*565200*/ OPC_MoveChild1, ++/*565201*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*565204*/ OPC_CheckChild0Integer, 1, ++/*565206*/ OPC_CheckChild0Type, MVT::i64, ++/*565208*/ OPC_CheckChild1Integer, 1, ++/*565210*/ OPC_CheckChild1Type, MVT::i64, ++/*565212*/ OPC_MoveParent, ++/*565213*/ OPC_MoveParent, ++/*565214*/ OPC_CheckChild1Same, 1, ++/*565216*/ OPC_MoveParent, ++/*565217*/ OPC_MoveParent, ++/*565218*/ OPC_MoveChild1, ++/*565219*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*565222*/ OPC_CheckChild0Integer, 1, ++/*565224*/ OPC_CheckChild0Type, MVT::i64, ++/*565226*/ OPC_CheckChild1Integer, 1, ++/*565228*/ OPC_CheckChild1Type, MVT::i64, ++/*565230*/ OPC_CheckType, MVT::v2i64, ++/*565232*/ OPC_MoveParent, ++/*565233*/ OPC_CheckType, MVT::v2i64, ++/*565235*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*565237*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*565245*/ /*Scope*/ 47, /*->565293*/ ++/*565246*/ OPC_CheckChild0Same, 1, ++/*565248*/ OPC_CheckChild1Same, 0, ++/*565250*/ OPC_MoveParent, ++/*565251*/ OPC_MoveChild1, ++/*565252*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*565255*/ OPC_CheckChild0Integer, 1, ++/*565257*/ OPC_CheckChild0Type, MVT::i64, ++/*565259*/ OPC_CheckChild1Integer, 1, ++/*565261*/ OPC_CheckChild1Type, MVT::i64, ++/*565263*/ OPC_MoveParent, ++/*565264*/ OPC_MoveParent, ++/*565265*/ OPC_MoveParent, ++/*565266*/ OPC_MoveChild1, ++/*565267*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*565270*/ OPC_CheckChild0Integer, 1, ++/*565272*/ OPC_CheckChild0Type, MVT::i64, ++/*565274*/ OPC_CheckChild1Integer, 1, ++/*565276*/ OPC_CheckChild1Type, MVT::i64, ++/*565278*/ OPC_CheckType, MVT::v2i64, ++/*565280*/ OPC_MoveParent, ++/*565281*/ OPC_CheckType, MVT::v2i64, ++/*565283*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*565285*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*565293*/ /*Scope*/ 47, /*->565341*/ ++/*565294*/ OPC_CheckChild0Same, 0, ++/*565296*/ OPC_CheckChild1Same, 1, ++/*565298*/ OPC_MoveParent, ++/*565299*/ OPC_MoveChild1, ++/*565300*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*565303*/ OPC_CheckChild0Integer, 1, ++/*565305*/ OPC_CheckChild0Type, MVT::i64, ++/*565307*/ OPC_CheckChild1Integer, 1, ++/*565309*/ OPC_CheckChild1Type, MVT::i64, ++/*565311*/ OPC_MoveParent, ++/*565312*/ OPC_MoveParent, ++/*565313*/ OPC_MoveParent, ++/*565314*/ OPC_MoveChild1, ++/*565315*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*565318*/ OPC_CheckChild0Integer, 1, ++/*565320*/ OPC_CheckChild0Type, MVT::i64, ++/*565322*/ OPC_CheckChild1Integer, 1, ++/*565324*/ OPC_CheckChild1Type, MVT::i64, ++/*565326*/ OPC_CheckType, MVT::v2i64, ++/*565328*/ OPC_MoveParent, ++/*565329*/ OPC_CheckType, MVT::v2i64, ++/*565331*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*565333*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*565341*/ 0, /*End of Scope*/ ++/*565342*/ /*Scope*/ 100, /*->565443*/ ++/*565343*/ OPC_CheckChild0Same, 0, ++/*565345*/ OPC_MoveChild1, ++/*565346*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*565349*/ OPC_Scope, 45, /*->565396*/ // 2 children in Scope ++/*565351*/ OPC_MoveChild0, ++/*565352*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*565355*/ OPC_CheckChild0Integer, 1, ++/*565357*/ OPC_CheckChild0Type, MVT::i64, ++/*565359*/ OPC_CheckChild1Integer, 1, ++/*565361*/ OPC_CheckChild1Type, MVT::i64, ++/*565363*/ OPC_MoveParent, ++/*565364*/ OPC_CheckChild1Same, 1, ++/*565366*/ OPC_MoveParent, ++/*565367*/ OPC_MoveParent, ++/*565368*/ OPC_MoveParent, ++/*565369*/ OPC_MoveChild1, ++/*565370*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*565373*/ OPC_CheckChild0Integer, 1, ++/*565375*/ OPC_CheckChild0Type, MVT::i64, ++/*565377*/ OPC_CheckChild1Integer, 1, ++/*565379*/ OPC_CheckChild1Type, MVT::i64, ++/*565381*/ OPC_CheckType, MVT::v2i64, ++/*565383*/ OPC_MoveParent, ++/*565384*/ OPC_CheckType, MVT::v2i64, ++/*565386*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*565388*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*565396*/ /*Scope*/ 45, /*->565442*/ ++/*565397*/ OPC_CheckChild0Same, 1, ++/*565399*/ OPC_MoveChild1, ++/*565400*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*565403*/ OPC_CheckChild0Integer, 1, ++/*565405*/ OPC_CheckChild0Type, MVT::i64, ++/*565407*/ OPC_CheckChild1Integer, 1, ++/*565409*/ OPC_CheckChild1Type, MVT::i64, ++/*565411*/ OPC_MoveParent, ++/*565412*/ OPC_MoveParent, ++/*565413*/ OPC_MoveParent, ++/*565414*/ OPC_MoveParent, ++/*565415*/ OPC_MoveChild1, ++/*565416*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*565419*/ OPC_CheckChild0Integer, 1, ++/*565421*/ OPC_CheckChild0Type, MVT::i64, ++/*565423*/ OPC_CheckChild1Integer, 1, ++/*565425*/ OPC_CheckChild1Type, MVT::i64, ++/*565427*/ OPC_CheckType, MVT::v2i64, ++/*565429*/ OPC_MoveParent, ++/*565430*/ OPC_CheckType, MVT::v2i64, ++/*565432*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*565434*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*565442*/ 0, /*End of Scope*/ ++/*565443*/ /*Scope*/ 100, /*->565544*/ ++/*565444*/ OPC_CheckChild0Same, 1, ++/*565446*/ OPC_MoveChild1, ++/*565447*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*565450*/ OPC_Scope, 45, /*->565497*/ // 2 children in Scope ++/*565452*/ OPC_MoveChild0, ++/*565453*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*565456*/ OPC_CheckChild0Integer, 1, ++/*565458*/ OPC_CheckChild0Type, MVT::i64, ++/*565460*/ OPC_CheckChild1Integer, 1, ++/*565462*/ OPC_CheckChild1Type, MVT::i64, ++/*565464*/ OPC_MoveParent, ++/*565465*/ OPC_CheckChild1Same, 0, ++/*565467*/ OPC_MoveParent, ++/*565468*/ OPC_MoveParent, ++/*565469*/ OPC_MoveParent, ++/*565470*/ OPC_MoveChild1, ++/*565471*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*565474*/ OPC_CheckChild0Integer, 1, ++/*565476*/ OPC_CheckChild0Type, MVT::i64, ++/*565478*/ OPC_CheckChild1Integer, 1, ++/*565480*/ OPC_CheckChild1Type, MVT::i64, ++/*565482*/ OPC_CheckType, MVT::v2i64, ++/*565484*/ OPC_MoveParent, ++/*565485*/ OPC_CheckType, MVT::v2i64, ++/*565487*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*565489*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*565497*/ /*Scope*/ 45, /*->565543*/ ++/*565498*/ OPC_CheckChild0Same, 0, ++/*565500*/ OPC_MoveChild1, ++/*565501*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*565504*/ OPC_CheckChild0Integer, 1, ++/*565506*/ OPC_CheckChild0Type, MVT::i64, ++/*565508*/ OPC_CheckChild1Integer, 1, ++/*565510*/ OPC_CheckChild1Type, MVT::i64, ++/*565512*/ OPC_MoveParent, ++/*565513*/ OPC_MoveParent, ++/*565514*/ OPC_MoveParent, ++/*565515*/ OPC_MoveParent, ++/*565516*/ OPC_MoveChild1, ++/*565517*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*565520*/ OPC_CheckChild0Integer, 1, ++/*565522*/ OPC_CheckChild0Type, MVT::i64, ++/*565524*/ OPC_CheckChild1Integer, 1, ++/*565526*/ OPC_CheckChild1Type, MVT::i64, ++/*565528*/ OPC_CheckType, MVT::v2i64, ++/*565530*/ OPC_MoveParent, ++/*565531*/ OPC_CheckType, MVT::v2i64, ++/*565533*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*565535*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*565543*/ 0, /*End of Scope*/ ++/*565544*/ /*Scope*/ 89, /*->565634*/ ++/*565545*/ OPC_MoveChild0, ++/*565546*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*565549*/ OPC_CheckChild0Integer, 1, ++/*565551*/ OPC_CheckChild0Type, MVT::i64, ++/*565553*/ OPC_CheckChild1Integer, 1, ++/*565555*/ OPC_CheckChild1Type, MVT::i64, ++/*565557*/ OPC_MoveParent, ++/*565558*/ OPC_MoveChild1, ++/*565559*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*565562*/ OPC_Scope, 34, /*->565598*/ // 2 children in Scope ++/*565564*/ OPC_CheckChild0Same, 1, ++/*565566*/ OPC_CheckChild1Same, 0, ++/*565568*/ OPC_MoveParent, ++/*565569*/ OPC_MoveParent, ++/*565570*/ OPC_MoveParent, ++/*565571*/ OPC_MoveChild1, ++/*565572*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*565575*/ OPC_CheckChild0Integer, 1, ++/*565577*/ OPC_CheckChild0Type, MVT::i64, ++/*565579*/ OPC_CheckChild1Integer, 1, ++/*565581*/ OPC_CheckChild1Type, MVT::i64, ++/*565583*/ OPC_CheckType, MVT::v2i64, ++/*565585*/ OPC_MoveParent, ++/*565586*/ OPC_CheckType, MVT::v2i64, ++/*565588*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*565590*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*565598*/ /*Scope*/ 34, /*->565633*/ ++/*565599*/ OPC_CheckChild0Same, 0, ++/*565601*/ OPC_CheckChild1Same, 1, ++/*565603*/ OPC_MoveParent, ++/*565604*/ OPC_MoveParent, ++/*565605*/ OPC_MoveParent, ++/*565606*/ OPC_MoveChild1, ++/*565607*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*565610*/ OPC_CheckChild0Integer, 1, ++/*565612*/ OPC_CheckChild0Type, MVT::i64, ++/*565614*/ OPC_CheckChild1Integer, 1, ++/*565616*/ OPC_CheckChild1Type, MVT::i64, ++/*565618*/ OPC_CheckType, MVT::v2i64, ++/*565620*/ OPC_MoveParent, ++/*565621*/ OPC_CheckType, MVT::v2i64, ++/*565623*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*565625*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*565633*/ 0, /*End of Scope*/ ++/*565634*/ 0, /*End of Scope*/ ++/*565635*/ /*Scope*/ 114|128,4/*626*/, /*->566263*/ ++/*565637*/ OPC_MoveChild0, ++/*565638*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*565641*/ OPC_CheckChild0Integer, 1, ++/*565643*/ OPC_CheckChild0Type, MVT::i64, ++/*565645*/ OPC_CheckChild1Integer, 1, ++/*565647*/ OPC_CheckChild1Type, MVT::i64, ++/*565649*/ OPC_MoveParent, ++/*565650*/ OPC_RecordChild1, // #1 = $b ++/*565651*/ OPC_MoveParent, ++/*565652*/ OPC_MoveParent, ++/*565653*/ OPC_MoveChild1, ++/*565654*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*565657*/ OPC_CheckChild0Integer, 63, ++/*565659*/ OPC_CheckChild0Type, MVT::i64, ++/*565661*/ OPC_CheckChild1Integer, 63, ++/*565663*/ OPC_CheckChild1Type, MVT::i64, ++/*565665*/ OPC_CheckType, MVT::v2i64, ++/*565667*/ OPC_MoveParent, ++/*565668*/ OPC_MoveParent, ++/*565669*/ OPC_MoveChild1, ++/*565670*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*565673*/ OPC_Scope, 38|128,2/*294*/, /*->565970*/ // 4 children in Scope ++/*565676*/ OPC_MoveChild0, ++/*565677*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*565680*/ OPC_Scope, 47, /*->565729*/ // 6 children in Scope ++/*565682*/ OPC_MoveChild0, ++/*565683*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*565686*/ OPC_CheckChild0Integer, 1, ++/*565688*/ OPC_CheckChild0Type, MVT::i64, ++/*565690*/ OPC_CheckChild1Integer, 1, ++/*565692*/ OPC_CheckChild1Type, MVT::i64, ++/*565694*/ OPC_MoveParent, ++/*565695*/ OPC_CheckChild1Same, 0, ++/*565697*/ OPC_MoveParent, ++/*565698*/ OPC_CheckChild1Same, 1, ++/*565700*/ OPC_MoveParent, ++/*565701*/ OPC_MoveParent, ++/*565702*/ OPC_MoveChild1, ++/*565703*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*565706*/ OPC_CheckChild0Integer, 1, ++/*565708*/ OPC_CheckChild0Type, MVT::i64, ++/*565710*/ OPC_CheckChild1Integer, 1, ++/*565712*/ OPC_CheckChild1Type, MVT::i64, ++/*565714*/ OPC_CheckType, MVT::v2i64, ++/*565716*/ OPC_MoveParent, ++/*565717*/ OPC_CheckType, MVT::v2i64, ++/*565719*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*565721*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a), LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*565729*/ /*Scope*/ 47, /*->565777*/ ++/*565730*/ OPC_CheckChild0Same, 0, ++/*565732*/ OPC_MoveChild1, ++/*565733*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*565736*/ OPC_CheckChild0Integer, 1, ++/*565738*/ OPC_CheckChild0Type, MVT::i64, ++/*565740*/ OPC_CheckChild1Integer, 1, ++/*565742*/ OPC_CheckChild1Type, MVT::i64, ++/*565744*/ OPC_MoveParent, ++/*565745*/ OPC_MoveParent, ++/*565746*/ OPC_CheckChild1Same, 1, ++/*565748*/ OPC_MoveParent, ++/*565749*/ OPC_MoveParent, ++/*565750*/ OPC_MoveChild1, ++/*565751*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*565754*/ OPC_CheckChild0Integer, 1, ++/*565756*/ OPC_CheckChild0Type, MVT::i64, ++/*565758*/ OPC_CheckChild1Integer, 1, ++/*565760*/ OPC_CheckChild1Type, MVT::i64, ++/*565762*/ OPC_CheckType, MVT::v2i64, ++/*565764*/ OPC_MoveParent, ++/*565765*/ OPC_CheckType, MVT::v2i64, ++/*565767*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*565769*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*565777*/ /*Scope*/ 47, /*->565825*/ ++/*565778*/ OPC_MoveChild0, ++/*565779*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*565782*/ OPC_CheckChild0Integer, 1, ++/*565784*/ OPC_CheckChild0Type, MVT::i64, ++/*565786*/ OPC_CheckChild1Integer, 1, ++/*565788*/ OPC_CheckChild1Type, MVT::i64, ++/*565790*/ OPC_MoveParent, ++/*565791*/ OPC_CheckChild1Same, 1, ++/*565793*/ OPC_MoveParent, ++/*565794*/ OPC_CheckChild1Same, 0, ++/*565796*/ OPC_MoveParent, ++/*565797*/ OPC_MoveParent, ++/*565798*/ OPC_MoveChild1, ++/*565799*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*565802*/ OPC_CheckChild0Integer, 1, ++/*565804*/ OPC_CheckChild0Type, MVT::i64, ++/*565806*/ OPC_CheckChild1Integer, 1, ++/*565808*/ OPC_CheckChild1Type, MVT::i64, ++/*565810*/ OPC_CheckType, MVT::v2i64, ++/*565812*/ OPC_MoveParent, ++/*565813*/ OPC_CheckType, MVT::v2i64, ++/*565815*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*565817*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b), LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*565825*/ /*Scope*/ 47, /*->565873*/ ++/*565826*/ OPC_CheckChild0Same, 1, ++/*565828*/ OPC_MoveChild1, ++/*565829*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*565832*/ OPC_CheckChild0Integer, 1, ++/*565834*/ OPC_CheckChild0Type, MVT::i64, ++/*565836*/ OPC_CheckChild1Integer, 1, ++/*565838*/ OPC_CheckChild1Type, MVT::i64, ++/*565840*/ OPC_MoveParent, ++/*565841*/ OPC_MoveParent, ++/*565842*/ OPC_CheckChild1Same, 0, ++/*565844*/ OPC_MoveParent, ++/*565845*/ OPC_MoveParent, ++/*565846*/ OPC_MoveChild1, ++/*565847*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*565850*/ OPC_CheckChild0Integer, 1, ++/*565852*/ OPC_CheckChild0Type, MVT::i64, ++/*565854*/ OPC_CheckChild1Integer, 1, ++/*565856*/ OPC_CheckChild1Type, MVT::i64, ++/*565858*/ OPC_CheckType, MVT::v2i64, ++/*565860*/ OPC_MoveParent, ++/*565861*/ OPC_CheckType, MVT::v2i64, ++/*565863*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*565865*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*565873*/ /*Scope*/ 47, /*->565921*/ ++/*565874*/ OPC_CheckChild0Same, 0, ++/*565876*/ OPC_CheckChild1Same, 1, ++/*565878*/ OPC_MoveParent, ++/*565879*/ OPC_MoveChild1, ++/*565880*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*565883*/ OPC_CheckChild0Integer, 1, ++/*565885*/ OPC_CheckChild0Type, MVT::i64, ++/*565887*/ OPC_CheckChild1Integer, 1, ++/*565889*/ OPC_CheckChild1Type, MVT::i64, ++/*565891*/ OPC_MoveParent, ++/*565892*/ OPC_MoveParent, ++/*565893*/ OPC_MoveParent, ++/*565894*/ OPC_MoveChild1, ++/*565895*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*565898*/ OPC_CheckChild0Integer, 1, ++/*565900*/ OPC_CheckChild0Type, MVT::i64, ++/*565902*/ OPC_CheckChild1Integer, 1, ++/*565904*/ OPC_CheckChild1Type, MVT::i64, ++/*565906*/ OPC_CheckType, MVT::v2i64, ++/*565908*/ OPC_MoveParent, ++/*565909*/ OPC_CheckType, MVT::v2i64, ++/*565911*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*565913*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*565921*/ /*Scope*/ 47, /*->565969*/ ++/*565922*/ OPC_CheckChild0Same, 1, ++/*565924*/ OPC_CheckChild1Same, 0, ++/*565926*/ OPC_MoveParent, ++/*565927*/ OPC_MoveChild1, ++/*565928*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*565931*/ OPC_CheckChild0Integer, 1, ++/*565933*/ OPC_CheckChild0Type, MVT::i64, ++/*565935*/ OPC_CheckChild1Integer, 1, ++/*565937*/ OPC_CheckChild1Type, MVT::i64, ++/*565939*/ OPC_MoveParent, ++/*565940*/ OPC_MoveParent, ++/*565941*/ OPC_MoveParent, ++/*565942*/ OPC_MoveChild1, ++/*565943*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*565946*/ OPC_CheckChild0Integer, 1, ++/*565948*/ OPC_CheckChild0Type, MVT::i64, ++/*565950*/ OPC_CheckChild1Integer, 1, ++/*565952*/ OPC_CheckChild1Type, MVT::i64, ++/*565954*/ OPC_CheckType, MVT::v2i64, ++/*565956*/ OPC_MoveParent, ++/*565957*/ OPC_CheckType, MVT::v2i64, ++/*565959*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*565961*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*565969*/ 0, /*End of Scope*/ ++/*565970*/ /*Scope*/ 100, /*->566071*/ ++/*565971*/ OPC_CheckChild0Same, 1, ++/*565973*/ OPC_MoveChild1, ++/*565974*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*565977*/ OPC_Scope, 45, /*->566024*/ // 2 children in Scope ++/*565979*/ OPC_MoveChild0, ++/*565980*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*565983*/ OPC_CheckChild0Integer, 1, ++/*565985*/ OPC_CheckChild0Type, MVT::i64, ++/*565987*/ OPC_CheckChild1Integer, 1, ++/*565989*/ OPC_CheckChild1Type, MVT::i64, ++/*565991*/ OPC_MoveParent, ++/*565992*/ OPC_CheckChild1Same, 0, ++/*565994*/ OPC_MoveParent, ++/*565995*/ OPC_MoveParent, ++/*565996*/ OPC_MoveParent, ++/*565997*/ OPC_MoveChild1, ++/*565998*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*566001*/ OPC_CheckChild0Integer, 1, ++/*566003*/ OPC_CheckChild0Type, MVT::i64, ++/*566005*/ OPC_CheckChild1Integer, 1, ++/*566007*/ OPC_CheckChild1Type, MVT::i64, ++/*566009*/ OPC_CheckType, MVT::v2i64, ++/*566011*/ OPC_MoveParent, ++/*566012*/ OPC_CheckType, MVT::v2i64, ++/*566014*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*566016*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*566024*/ /*Scope*/ 45, /*->566070*/ ++/*566025*/ OPC_CheckChild0Same, 0, ++/*566027*/ OPC_MoveChild1, ++/*566028*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*566031*/ OPC_CheckChild0Integer, 1, ++/*566033*/ OPC_CheckChild0Type, MVT::i64, ++/*566035*/ OPC_CheckChild1Integer, 1, ++/*566037*/ OPC_CheckChild1Type, MVT::i64, ++/*566039*/ OPC_MoveParent, ++/*566040*/ OPC_MoveParent, ++/*566041*/ OPC_MoveParent, ++/*566042*/ OPC_MoveParent, ++/*566043*/ OPC_MoveChild1, ++/*566044*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*566047*/ OPC_CheckChild0Integer, 1, ++/*566049*/ OPC_CheckChild0Type, MVT::i64, ++/*566051*/ OPC_CheckChild1Integer, 1, ++/*566053*/ OPC_CheckChild1Type, MVT::i64, ++/*566055*/ OPC_CheckType, MVT::v2i64, ++/*566057*/ OPC_MoveParent, ++/*566058*/ OPC_CheckType, MVT::v2i64, ++/*566060*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*566062*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*566070*/ 0, /*End of Scope*/ ++/*566071*/ /*Scope*/ 100, /*->566172*/ ++/*566072*/ OPC_CheckChild0Same, 0, ++/*566074*/ OPC_MoveChild1, ++/*566075*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*566078*/ OPC_Scope, 45, /*->566125*/ // 2 children in Scope ++/*566080*/ OPC_MoveChild0, ++/*566081*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*566084*/ OPC_CheckChild0Integer, 1, ++/*566086*/ OPC_CheckChild0Type, MVT::i64, ++/*566088*/ OPC_CheckChild1Integer, 1, ++/*566090*/ OPC_CheckChild1Type, MVT::i64, ++/*566092*/ OPC_MoveParent, ++/*566093*/ OPC_CheckChild1Same, 1, ++/*566095*/ OPC_MoveParent, ++/*566096*/ OPC_MoveParent, ++/*566097*/ OPC_MoveParent, ++/*566098*/ OPC_MoveChild1, ++/*566099*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*566102*/ OPC_CheckChild0Integer, 1, ++/*566104*/ OPC_CheckChild0Type, MVT::i64, ++/*566106*/ OPC_CheckChild1Integer, 1, ++/*566108*/ OPC_CheckChild1Type, MVT::i64, ++/*566110*/ OPC_CheckType, MVT::v2i64, ++/*566112*/ OPC_MoveParent, ++/*566113*/ OPC_CheckType, MVT::v2i64, ++/*566115*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*566117*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*566125*/ /*Scope*/ 45, /*->566171*/ ++/*566126*/ OPC_CheckChild0Same, 1, ++/*566128*/ OPC_MoveChild1, ++/*566129*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*566132*/ OPC_CheckChild0Integer, 1, ++/*566134*/ OPC_CheckChild0Type, MVT::i64, ++/*566136*/ OPC_CheckChild1Integer, 1, ++/*566138*/ OPC_CheckChild1Type, MVT::i64, ++/*566140*/ OPC_MoveParent, ++/*566141*/ OPC_MoveParent, ++/*566142*/ OPC_MoveParent, ++/*566143*/ OPC_MoveParent, ++/*566144*/ OPC_MoveChild1, ++/*566145*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*566148*/ OPC_CheckChild0Integer, 1, ++/*566150*/ OPC_CheckChild0Type, MVT::i64, ++/*566152*/ OPC_CheckChild1Integer, 1, ++/*566154*/ OPC_CheckChild1Type, MVT::i64, ++/*566156*/ OPC_CheckType, MVT::v2i64, ++/*566158*/ OPC_MoveParent, ++/*566159*/ OPC_CheckType, MVT::v2i64, ++/*566161*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*566163*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*566171*/ 0, /*End of Scope*/ ++/*566172*/ /*Scope*/ 89, /*->566262*/ ++/*566173*/ OPC_MoveChild0, ++/*566174*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*566177*/ OPC_CheckChild0Integer, 1, ++/*566179*/ OPC_CheckChild0Type, MVT::i64, ++/*566181*/ OPC_CheckChild1Integer, 1, ++/*566183*/ OPC_CheckChild1Type, MVT::i64, ++/*566185*/ OPC_MoveParent, ++/*566186*/ OPC_MoveChild1, ++/*566187*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*566190*/ OPC_Scope, 34, /*->566226*/ // 2 children in Scope ++/*566192*/ OPC_CheckChild0Same, 0, ++/*566194*/ OPC_CheckChild1Same, 1, ++/*566196*/ OPC_MoveParent, ++/*566197*/ OPC_MoveParent, ++/*566198*/ OPC_MoveParent, ++/*566199*/ OPC_MoveChild1, ++/*566200*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*566203*/ OPC_CheckChild0Integer, 1, ++/*566205*/ OPC_CheckChild0Type, MVT::i64, ++/*566207*/ OPC_CheckChild1Integer, 1, ++/*566209*/ OPC_CheckChild1Type, MVT::i64, ++/*566211*/ OPC_CheckType, MVT::v2i64, ++/*566213*/ OPC_MoveParent, ++/*566214*/ OPC_CheckType, MVT::v2i64, ++/*566216*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*566218*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*566226*/ /*Scope*/ 34, /*->566261*/ ++/*566227*/ OPC_CheckChild0Same, 1, ++/*566229*/ OPC_CheckChild1Same, 0, ++/*566231*/ OPC_MoveParent, ++/*566232*/ OPC_MoveParent, ++/*566233*/ OPC_MoveParent, ++/*566234*/ OPC_MoveChild1, ++/*566235*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*566238*/ OPC_CheckChild0Integer, 1, ++/*566240*/ OPC_CheckChild0Type, MVT::i64, ++/*566242*/ OPC_CheckChild1Integer, 1, ++/*566244*/ OPC_CheckChild1Type, MVT::i64, ++/*566246*/ OPC_CheckType, MVT::v2i64, ++/*566248*/ OPC_MoveParent, ++/*566249*/ OPC_CheckType, MVT::v2i64, ++/*566251*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*566253*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*566261*/ 0, /*End of Scope*/ ++/*566262*/ 0, /*End of Scope*/ ++/*566263*/ /*Scope*/ 114|128,4/*626*/, /*->566891*/ ++/*566265*/ OPC_RecordChild0, // #1 = $b ++/*566266*/ OPC_MoveChild1, ++/*566267*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*566270*/ OPC_CheckChild0Integer, 1, ++/*566272*/ OPC_CheckChild0Type, MVT::i64, ++/*566274*/ OPC_CheckChild1Integer, 1, ++/*566276*/ OPC_CheckChild1Type, MVT::i64, ++/*566278*/ OPC_MoveParent, ++/*566279*/ OPC_MoveParent, ++/*566280*/ OPC_MoveParent, ++/*566281*/ OPC_MoveChild1, ++/*566282*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*566285*/ OPC_CheckChild0Integer, 63, ++/*566287*/ OPC_CheckChild0Type, MVT::i64, ++/*566289*/ OPC_CheckChild1Integer, 63, ++/*566291*/ OPC_CheckChild1Type, MVT::i64, ++/*566293*/ OPC_CheckType, MVT::v2i64, ++/*566295*/ OPC_MoveParent, ++/*566296*/ OPC_MoveParent, ++/*566297*/ OPC_MoveChild1, ++/*566298*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*566301*/ OPC_Scope, 38|128,2/*294*/, /*->566598*/ // 4 children in Scope ++/*566304*/ OPC_MoveChild0, ++/*566305*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*566308*/ OPC_Scope, 47, /*->566357*/ // 6 children in Scope ++/*566310*/ OPC_MoveChild0, ++/*566311*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*566314*/ OPC_CheckChild0Integer, 1, ++/*566316*/ OPC_CheckChild0Type, MVT::i64, ++/*566318*/ OPC_CheckChild1Integer, 1, ++/*566320*/ OPC_CheckChild1Type, MVT::i64, ++/*566322*/ OPC_MoveParent, ++/*566323*/ OPC_CheckChild1Same, 0, ++/*566325*/ OPC_MoveParent, ++/*566326*/ OPC_CheckChild1Same, 1, ++/*566328*/ OPC_MoveParent, ++/*566329*/ OPC_MoveParent, ++/*566330*/ OPC_MoveChild1, ++/*566331*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*566334*/ OPC_CheckChild0Integer, 1, ++/*566336*/ OPC_CheckChild0Type, MVT::i64, ++/*566338*/ OPC_CheckChild1Integer, 1, ++/*566340*/ OPC_CheckChild1Type, MVT::i64, ++/*566342*/ OPC_CheckType, MVT::v2i64, ++/*566344*/ OPC_MoveParent, ++/*566345*/ OPC_CheckType, MVT::v2i64, ++/*566347*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*566349*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a), LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*566357*/ /*Scope*/ 47, /*->566405*/ ++/*566358*/ OPC_CheckChild0Same, 0, ++/*566360*/ OPC_MoveChild1, ++/*566361*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*566364*/ OPC_CheckChild0Integer, 1, ++/*566366*/ OPC_CheckChild0Type, MVT::i64, ++/*566368*/ OPC_CheckChild1Integer, 1, ++/*566370*/ OPC_CheckChild1Type, MVT::i64, ++/*566372*/ OPC_MoveParent, ++/*566373*/ OPC_MoveParent, ++/*566374*/ OPC_CheckChild1Same, 1, ++/*566376*/ OPC_MoveParent, ++/*566377*/ OPC_MoveParent, ++/*566378*/ OPC_MoveChild1, ++/*566379*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*566382*/ OPC_CheckChild0Integer, 1, ++/*566384*/ OPC_CheckChild0Type, MVT::i64, ++/*566386*/ OPC_CheckChild1Integer, 1, ++/*566388*/ OPC_CheckChild1Type, MVT::i64, ++/*566390*/ OPC_CheckType, MVT::v2i64, ++/*566392*/ OPC_MoveParent, ++/*566393*/ OPC_CheckType, MVT::v2i64, ++/*566395*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*566397*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*566405*/ /*Scope*/ 47, /*->566453*/ ++/*566406*/ OPC_MoveChild0, ++/*566407*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*566410*/ OPC_CheckChild0Integer, 1, ++/*566412*/ OPC_CheckChild0Type, MVT::i64, ++/*566414*/ OPC_CheckChild1Integer, 1, ++/*566416*/ OPC_CheckChild1Type, MVT::i64, ++/*566418*/ OPC_MoveParent, ++/*566419*/ OPC_CheckChild1Same, 1, ++/*566421*/ OPC_MoveParent, ++/*566422*/ OPC_CheckChild1Same, 0, ++/*566424*/ OPC_MoveParent, ++/*566425*/ OPC_MoveParent, ++/*566426*/ OPC_MoveChild1, ++/*566427*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*566430*/ OPC_CheckChild0Integer, 1, ++/*566432*/ OPC_CheckChild0Type, MVT::i64, ++/*566434*/ OPC_CheckChild1Integer, 1, ++/*566436*/ OPC_CheckChild1Type, MVT::i64, ++/*566438*/ OPC_CheckType, MVT::v2i64, ++/*566440*/ OPC_MoveParent, ++/*566441*/ OPC_CheckType, MVT::v2i64, ++/*566443*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*566445*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b), LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*566453*/ /*Scope*/ 47, /*->566501*/ ++/*566454*/ OPC_CheckChild0Same, 1, ++/*566456*/ OPC_MoveChild1, ++/*566457*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*566460*/ OPC_CheckChild0Integer, 1, ++/*566462*/ OPC_CheckChild0Type, MVT::i64, ++/*566464*/ OPC_CheckChild1Integer, 1, ++/*566466*/ OPC_CheckChild1Type, MVT::i64, ++/*566468*/ OPC_MoveParent, ++/*566469*/ OPC_MoveParent, ++/*566470*/ OPC_CheckChild1Same, 0, ++/*566472*/ OPC_MoveParent, ++/*566473*/ OPC_MoveParent, ++/*566474*/ OPC_MoveChild1, ++/*566475*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*566478*/ OPC_CheckChild0Integer, 1, ++/*566480*/ OPC_CheckChild0Type, MVT::i64, ++/*566482*/ OPC_CheckChild1Integer, 1, ++/*566484*/ OPC_CheckChild1Type, MVT::i64, ++/*566486*/ OPC_CheckType, MVT::v2i64, ++/*566488*/ OPC_MoveParent, ++/*566489*/ OPC_CheckType, MVT::v2i64, ++/*566491*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*566493*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*566501*/ /*Scope*/ 47, /*->566549*/ ++/*566502*/ OPC_CheckChild0Same, 0, ++/*566504*/ OPC_CheckChild1Same, 1, ++/*566506*/ OPC_MoveParent, ++/*566507*/ OPC_MoveChild1, ++/*566508*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*566511*/ OPC_CheckChild0Integer, 1, ++/*566513*/ OPC_CheckChild0Type, MVT::i64, ++/*566515*/ OPC_CheckChild1Integer, 1, ++/*566517*/ OPC_CheckChild1Type, MVT::i64, ++/*566519*/ OPC_MoveParent, ++/*566520*/ OPC_MoveParent, ++/*566521*/ OPC_MoveParent, ++/*566522*/ OPC_MoveChild1, ++/*566523*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*566526*/ OPC_CheckChild0Integer, 1, ++/*566528*/ OPC_CheckChild0Type, MVT::i64, ++/*566530*/ OPC_CheckChild1Integer, 1, ++/*566532*/ OPC_CheckChild1Type, MVT::i64, ++/*566534*/ OPC_CheckType, MVT::v2i64, ++/*566536*/ OPC_MoveParent, ++/*566537*/ OPC_CheckType, MVT::v2i64, ++/*566539*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*566541*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*566549*/ /*Scope*/ 47, /*->566597*/ ++/*566550*/ OPC_CheckChild0Same, 1, ++/*566552*/ OPC_CheckChild1Same, 0, ++/*566554*/ OPC_MoveParent, ++/*566555*/ OPC_MoveChild1, ++/*566556*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*566559*/ OPC_CheckChild0Integer, 1, ++/*566561*/ OPC_CheckChild0Type, MVT::i64, ++/*566563*/ OPC_CheckChild1Integer, 1, ++/*566565*/ OPC_CheckChild1Type, MVT::i64, ++/*566567*/ OPC_MoveParent, ++/*566568*/ OPC_MoveParent, ++/*566569*/ OPC_MoveParent, ++/*566570*/ OPC_MoveChild1, ++/*566571*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*566574*/ OPC_CheckChild0Integer, 1, ++/*566576*/ OPC_CheckChild0Type, MVT::i64, ++/*566578*/ OPC_CheckChild1Integer, 1, ++/*566580*/ OPC_CheckChild1Type, MVT::i64, ++/*566582*/ OPC_CheckType, MVT::v2i64, ++/*566584*/ OPC_MoveParent, ++/*566585*/ OPC_CheckType, MVT::v2i64, ++/*566587*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*566589*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*566597*/ 0, /*End of Scope*/ ++/*566598*/ /*Scope*/ 100, /*->566699*/ ++/*566599*/ OPC_CheckChild0Same, 1, ++/*566601*/ OPC_MoveChild1, ++/*566602*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*566605*/ OPC_Scope, 45, /*->566652*/ // 2 children in Scope ++/*566607*/ OPC_MoveChild0, ++/*566608*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*566611*/ OPC_CheckChild0Integer, 1, ++/*566613*/ OPC_CheckChild0Type, MVT::i64, ++/*566615*/ OPC_CheckChild1Integer, 1, ++/*566617*/ OPC_CheckChild1Type, MVT::i64, ++/*566619*/ OPC_MoveParent, ++/*566620*/ OPC_CheckChild1Same, 0, ++/*566622*/ OPC_MoveParent, ++/*566623*/ OPC_MoveParent, ++/*566624*/ OPC_MoveParent, ++/*566625*/ OPC_MoveChild1, ++/*566626*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*566629*/ OPC_CheckChild0Integer, 1, ++/*566631*/ OPC_CheckChild0Type, MVT::i64, ++/*566633*/ OPC_CheckChild1Integer, 1, ++/*566635*/ OPC_CheckChild1Type, MVT::i64, ++/*566637*/ OPC_CheckType, MVT::v2i64, ++/*566639*/ OPC_MoveParent, ++/*566640*/ OPC_CheckType, MVT::v2i64, ++/*566642*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*566644*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*566652*/ /*Scope*/ 45, /*->566698*/ ++/*566653*/ OPC_CheckChild0Same, 0, ++/*566655*/ OPC_MoveChild1, ++/*566656*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*566659*/ OPC_CheckChild0Integer, 1, ++/*566661*/ OPC_CheckChild0Type, MVT::i64, ++/*566663*/ OPC_CheckChild1Integer, 1, ++/*566665*/ OPC_CheckChild1Type, MVT::i64, ++/*566667*/ OPC_MoveParent, ++/*566668*/ OPC_MoveParent, ++/*566669*/ OPC_MoveParent, ++/*566670*/ OPC_MoveParent, ++/*566671*/ OPC_MoveChild1, ++/*566672*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*566675*/ OPC_CheckChild0Integer, 1, ++/*566677*/ OPC_CheckChild0Type, MVT::i64, ++/*566679*/ OPC_CheckChild1Integer, 1, ++/*566681*/ OPC_CheckChild1Type, MVT::i64, ++/*566683*/ OPC_CheckType, MVT::v2i64, ++/*566685*/ OPC_MoveParent, ++/*566686*/ OPC_CheckType, MVT::v2i64, ++/*566688*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*566690*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*566698*/ 0, /*End of Scope*/ ++/*566699*/ /*Scope*/ 100, /*->566800*/ ++/*566700*/ OPC_CheckChild0Same, 0, ++/*566702*/ OPC_MoveChild1, ++/*566703*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*566706*/ OPC_Scope, 45, /*->566753*/ // 2 children in Scope ++/*566708*/ OPC_MoveChild0, ++/*566709*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*566712*/ OPC_CheckChild0Integer, 1, ++/*566714*/ OPC_CheckChild0Type, MVT::i64, ++/*566716*/ OPC_CheckChild1Integer, 1, ++/*566718*/ OPC_CheckChild1Type, MVT::i64, ++/*566720*/ OPC_MoveParent, ++/*566721*/ OPC_CheckChild1Same, 1, ++/*566723*/ OPC_MoveParent, ++/*566724*/ OPC_MoveParent, ++/*566725*/ OPC_MoveParent, ++/*566726*/ OPC_MoveChild1, ++/*566727*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*566730*/ OPC_CheckChild0Integer, 1, ++/*566732*/ OPC_CheckChild0Type, MVT::i64, ++/*566734*/ OPC_CheckChild1Integer, 1, ++/*566736*/ OPC_CheckChild1Type, MVT::i64, ++/*566738*/ OPC_CheckType, MVT::v2i64, ++/*566740*/ OPC_MoveParent, ++/*566741*/ OPC_CheckType, MVT::v2i64, ++/*566743*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*566745*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*566753*/ /*Scope*/ 45, /*->566799*/ ++/*566754*/ OPC_CheckChild0Same, 1, ++/*566756*/ OPC_MoveChild1, ++/*566757*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*566760*/ OPC_CheckChild0Integer, 1, ++/*566762*/ OPC_CheckChild0Type, MVT::i64, ++/*566764*/ OPC_CheckChild1Integer, 1, ++/*566766*/ OPC_CheckChild1Type, MVT::i64, ++/*566768*/ OPC_MoveParent, ++/*566769*/ OPC_MoveParent, ++/*566770*/ OPC_MoveParent, ++/*566771*/ OPC_MoveParent, ++/*566772*/ OPC_MoveChild1, ++/*566773*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*566776*/ OPC_CheckChild0Integer, 1, ++/*566778*/ OPC_CheckChild0Type, MVT::i64, ++/*566780*/ OPC_CheckChild1Integer, 1, ++/*566782*/ OPC_CheckChild1Type, MVT::i64, ++/*566784*/ OPC_CheckType, MVT::v2i64, ++/*566786*/ OPC_MoveParent, ++/*566787*/ OPC_CheckType, MVT::v2i64, ++/*566789*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*566791*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*566799*/ 0, /*End of Scope*/ ++/*566800*/ /*Scope*/ 89, /*->566890*/ ++/*566801*/ OPC_MoveChild0, ++/*566802*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*566805*/ OPC_CheckChild0Integer, 1, ++/*566807*/ OPC_CheckChild0Type, MVT::i64, ++/*566809*/ OPC_CheckChild1Integer, 1, ++/*566811*/ OPC_CheckChild1Type, MVT::i64, ++/*566813*/ OPC_MoveParent, ++/*566814*/ OPC_MoveChild1, ++/*566815*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*566818*/ OPC_Scope, 34, /*->566854*/ // 2 children in Scope ++/*566820*/ OPC_CheckChild0Same, 0, ++/*566822*/ OPC_CheckChild1Same, 1, ++/*566824*/ OPC_MoveParent, ++/*566825*/ OPC_MoveParent, ++/*566826*/ OPC_MoveParent, ++/*566827*/ OPC_MoveChild1, ++/*566828*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*566831*/ OPC_CheckChild0Integer, 1, ++/*566833*/ OPC_CheckChild0Type, MVT::i64, ++/*566835*/ OPC_CheckChild1Integer, 1, ++/*566837*/ OPC_CheckChild1Type, MVT::i64, ++/*566839*/ OPC_CheckType, MVT::v2i64, ++/*566841*/ OPC_MoveParent, ++/*566842*/ OPC_CheckType, MVT::v2i64, ++/*566844*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*566846*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*566854*/ /*Scope*/ 34, /*->566889*/ ++/*566855*/ OPC_CheckChild0Same, 1, ++/*566857*/ OPC_CheckChild1Same, 0, ++/*566859*/ OPC_MoveParent, ++/*566860*/ OPC_MoveParent, ++/*566861*/ OPC_MoveParent, ++/*566862*/ OPC_MoveChild1, ++/*566863*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*566866*/ OPC_CheckChild0Integer, 1, ++/*566868*/ OPC_CheckChild0Type, MVT::i64, ++/*566870*/ OPC_CheckChild1Integer, 1, ++/*566872*/ OPC_CheckChild1Type, MVT::i64, ++/*566874*/ OPC_CheckType, MVT::v2i64, ++/*566876*/ OPC_MoveParent, ++/*566877*/ OPC_CheckType, MVT::v2i64, ++/*566879*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*566881*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*566889*/ 0, /*End of Scope*/ ++/*566890*/ 0, /*End of Scope*/ ++/*566891*/ 0, /*End of Scope*/ ++/*566892*/ /*Scope*/ 68|128,9/*1220*/, /*->568114*/ ++/*566894*/ OPC_MoveChild0, ++/*566895*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*566898*/ OPC_CheckChild0Integer, 1, ++/*566900*/ OPC_CheckChild0Type, MVT::i64, ++/*566902*/ OPC_CheckChild1Integer, 1, ++/*566904*/ OPC_CheckChild1Type, MVT::i64, ++/*566906*/ OPC_MoveParent, ++/*566907*/ OPC_MoveChild1, ++/*566908*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*566911*/ OPC_RecordChild0, // #0 = $a ++/*566912*/ OPC_RecordChild1, // #1 = $b ++/*566913*/ OPC_MoveParent, ++/*566914*/ OPC_MoveParent, ++/*566915*/ OPC_MoveChild1, ++/*566916*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*566919*/ OPC_CheckChild0Integer, 63, ++/*566921*/ OPC_CheckChild0Type, MVT::i64, ++/*566923*/ OPC_CheckChild1Integer, 63, ++/*566925*/ OPC_CheckChild1Type, MVT::i64, ++/*566927*/ OPC_CheckType, MVT::v2i64, ++/*566929*/ OPC_MoveParent, ++/*566930*/ OPC_MoveParent, ++/*566931*/ OPC_MoveChild1, ++/*566932*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*566935*/ OPC_Scope, 38|128,2/*294*/, /*->567232*/ // 7 children in Scope ++/*566938*/ OPC_MoveChild0, ++/*566939*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*566942*/ OPC_Scope, 47, /*->566991*/ // 6 children in Scope ++/*566944*/ OPC_MoveChild0, ++/*566945*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*566948*/ OPC_CheckChild0Integer, 1, ++/*566950*/ OPC_CheckChild0Type, MVT::i64, ++/*566952*/ OPC_CheckChild1Integer, 1, ++/*566954*/ OPC_CheckChild1Type, MVT::i64, ++/*566956*/ OPC_MoveParent, ++/*566957*/ OPC_CheckChild1Same, 0, ++/*566959*/ OPC_MoveParent, ++/*566960*/ OPC_CheckChild1Same, 1, ++/*566962*/ OPC_MoveParent, ++/*566963*/ OPC_MoveParent, ++/*566964*/ OPC_MoveChild1, ++/*566965*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*566968*/ OPC_CheckChild0Integer, 1, ++/*566970*/ OPC_CheckChild0Type, MVT::i64, ++/*566972*/ OPC_CheckChild1Integer, 1, ++/*566974*/ OPC_CheckChild1Type, MVT::i64, ++/*566976*/ OPC_CheckType, MVT::v2i64, ++/*566978*/ OPC_MoveParent, ++/*566979*/ OPC_CheckType, MVT::v2i64, ++/*566981*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*566983*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a), LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*566991*/ /*Scope*/ 47, /*->567039*/ ++/*566992*/ OPC_CheckChild0Same, 0, ++/*566994*/ OPC_MoveChild1, ++/*566995*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*566998*/ OPC_CheckChild0Integer, 1, ++/*567000*/ OPC_CheckChild0Type, MVT::i64, ++/*567002*/ OPC_CheckChild1Integer, 1, ++/*567004*/ OPC_CheckChild1Type, MVT::i64, ++/*567006*/ OPC_MoveParent, ++/*567007*/ OPC_MoveParent, ++/*567008*/ OPC_CheckChild1Same, 1, ++/*567010*/ OPC_MoveParent, ++/*567011*/ OPC_MoveParent, ++/*567012*/ OPC_MoveChild1, ++/*567013*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*567016*/ OPC_CheckChild0Integer, 1, ++/*567018*/ OPC_CheckChild0Type, MVT::i64, ++/*567020*/ OPC_CheckChild1Integer, 1, ++/*567022*/ OPC_CheckChild1Type, MVT::i64, ++/*567024*/ OPC_CheckType, MVT::v2i64, ++/*567026*/ OPC_MoveParent, ++/*567027*/ OPC_CheckType, MVT::v2i64, ++/*567029*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*567031*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*567039*/ /*Scope*/ 47, /*->567087*/ ++/*567040*/ OPC_MoveChild0, ++/*567041*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*567044*/ OPC_CheckChild0Integer, 1, ++/*567046*/ OPC_CheckChild0Type, MVT::i64, ++/*567048*/ OPC_CheckChild1Integer, 1, ++/*567050*/ OPC_CheckChild1Type, MVT::i64, ++/*567052*/ OPC_MoveParent, ++/*567053*/ OPC_CheckChild1Same, 1, ++/*567055*/ OPC_MoveParent, ++/*567056*/ OPC_CheckChild1Same, 0, ++/*567058*/ OPC_MoveParent, ++/*567059*/ OPC_MoveParent, ++/*567060*/ OPC_MoveChild1, ++/*567061*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*567064*/ OPC_CheckChild0Integer, 1, ++/*567066*/ OPC_CheckChild0Type, MVT::i64, ++/*567068*/ OPC_CheckChild1Integer, 1, ++/*567070*/ OPC_CheckChild1Type, MVT::i64, ++/*567072*/ OPC_CheckType, MVT::v2i64, ++/*567074*/ OPC_MoveParent, ++/*567075*/ OPC_CheckType, MVT::v2i64, ++/*567077*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*567079*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b), LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*567087*/ /*Scope*/ 47, /*->567135*/ ++/*567088*/ OPC_CheckChild0Same, 1, ++/*567090*/ OPC_MoveChild1, ++/*567091*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*567094*/ OPC_CheckChild0Integer, 1, ++/*567096*/ OPC_CheckChild0Type, MVT::i64, ++/*567098*/ OPC_CheckChild1Integer, 1, ++/*567100*/ OPC_CheckChild1Type, MVT::i64, ++/*567102*/ OPC_MoveParent, ++/*567103*/ OPC_MoveParent, ++/*567104*/ OPC_CheckChild1Same, 0, ++/*567106*/ OPC_MoveParent, ++/*567107*/ OPC_MoveParent, ++/*567108*/ OPC_MoveChild1, ++/*567109*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*567112*/ OPC_CheckChild0Integer, 1, ++/*567114*/ OPC_CheckChild0Type, MVT::i64, ++/*567116*/ OPC_CheckChild1Integer, 1, ++/*567118*/ OPC_CheckChild1Type, MVT::i64, ++/*567120*/ OPC_CheckType, MVT::v2i64, ++/*567122*/ OPC_MoveParent, ++/*567123*/ OPC_CheckType, MVT::v2i64, ++/*567125*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*567127*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*567135*/ /*Scope*/ 47, /*->567183*/ ++/*567136*/ OPC_CheckChild0Same, 0, ++/*567138*/ OPC_CheckChild1Same, 1, ++/*567140*/ OPC_MoveParent, ++/*567141*/ OPC_MoveChild1, ++/*567142*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*567145*/ OPC_CheckChild0Integer, 1, ++/*567147*/ OPC_CheckChild0Type, MVT::i64, ++/*567149*/ OPC_CheckChild1Integer, 1, ++/*567151*/ OPC_CheckChild1Type, MVT::i64, ++/*567153*/ OPC_MoveParent, ++/*567154*/ OPC_MoveParent, ++/*567155*/ OPC_MoveParent, ++/*567156*/ OPC_MoveChild1, ++/*567157*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*567160*/ OPC_CheckChild0Integer, 1, ++/*567162*/ OPC_CheckChild0Type, MVT::i64, ++/*567164*/ OPC_CheckChild1Integer, 1, ++/*567166*/ OPC_CheckChild1Type, MVT::i64, ++/*567168*/ OPC_CheckType, MVT::v2i64, ++/*567170*/ OPC_MoveParent, ++/*567171*/ OPC_CheckType, MVT::v2i64, ++/*567173*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*567175*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*567183*/ /*Scope*/ 47, /*->567231*/ ++/*567184*/ OPC_CheckChild0Same, 1, ++/*567186*/ OPC_CheckChild1Same, 0, ++/*567188*/ OPC_MoveParent, ++/*567189*/ OPC_MoveChild1, ++/*567190*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*567193*/ OPC_CheckChild0Integer, 1, ++/*567195*/ OPC_CheckChild0Type, MVT::i64, ++/*567197*/ OPC_CheckChild1Integer, 1, ++/*567199*/ OPC_CheckChild1Type, MVT::i64, ++/*567201*/ OPC_MoveParent, ++/*567202*/ OPC_MoveParent, ++/*567203*/ OPC_MoveParent, ++/*567204*/ OPC_MoveChild1, ++/*567205*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*567208*/ OPC_CheckChild0Integer, 1, ++/*567210*/ OPC_CheckChild0Type, MVT::i64, ++/*567212*/ OPC_CheckChild1Integer, 1, ++/*567214*/ OPC_CheckChild1Type, MVT::i64, ++/*567216*/ OPC_CheckType, MVT::v2i64, ++/*567218*/ OPC_MoveParent, ++/*567219*/ OPC_CheckType, MVT::v2i64, ++/*567221*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*567223*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*567231*/ 0, /*End of Scope*/ ++/*567232*/ /*Scope*/ 100, /*->567333*/ ++/*567233*/ OPC_CheckChild0Same, 1, ++/*567235*/ OPC_MoveChild1, ++/*567236*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*567239*/ OPC_Scope, 45, /*->567286*/ // 2 children in Scope ++/*567241*/ OPC_MoveChild0, ++/*567242*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*567245*/ OPC_CheckChild0Integer, 1, ++/*567247*/ OPC_CheckChild0Type, MVT::i64, ++/*567249*/ OPC_CheckChild1Integer, 1, ++/*567251*/ OPC_CheckChild1Type, MVT::i64, ++/*567253*/ OPC_MoveParent, ++/*567254*/ OPC_CheckChild1Same, 0, ++/*567256*/ OPC_MoveParent, ++/*567257*/ OPC_MoveParent, ++/*567258*/ OPC_MoveParent, ++/*567259*/ OPC_MoveChild1, ++/*567260*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*567263*/ OPC_CheckChild0Integer, 1, ++/*567265*/ OPC_CheckChild0Type, MVT::i64, ++/*567267*/ OPC_CheckChild1Integer, 1, ++/*567269*/ OPC_CheckChild1Type, MVT::i64, ++/*567271*/ OPC_CheckType, MVT::v2i64, ++/*567273*/ OPC_MoveParent, ++/*567274*/ OPC_CheckType, MVT::v2i64, ++/*567276*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*567278*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*567286*/ /*Scope*/ 45, /*->567332*/ ++/*567287*/ OPC_CheckChild0Same, 0, ++/*567289*/ OPC_MoveChild1, ++/*567290*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*567293*/ OPC_CheckChild0Integer, 1, ++/*567295*/ OPC_CheckChild0Type, MVT::i64, ++/*567297*/ OPC_CheckChild1Integer, 1, ++/*567299*/ OPC_CheckChild1Type, MVT::i64, ++/*567301*/ OPC_MoveParent, ++/*567302*/ OPC_MoveParent, ++/*567303*/ OPC_MoveParent, ++/*567304*/ OPC_MoveParent, ++/*567305*/ OPC_MoveChild1, ++/*567306*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*567309*/ OPC_CheckChild0Integer, 1, ++/*567311*/ OPC_CheckChild0Type, MVT::i64, ++/*567313*/ OPC_CheckChild1Integer, 1, ++/*567315*/ OPC_CheckChild1Type, MVT::i64, ++/*567317*/ OPC_CheckType, MVT::v2i64, ++/*567319*/ OPC_MoveParent, ++/*567320*/ OPC_CheckType, MVT::v2i64, ++/*567322*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*567324*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*567332*/ 0, /*End of Scope*/ ++/*567333*/ /*Scope*/ 100, /*->567434*/ ++/*567334*/ OPC_CheckChild0Same, 0, ++/*567336*/ OPC_MoveChild1, ++/*567337*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*567340*/ OPC_Scope, 45, /*->567387*/ // 2 children in Scope ++/*567342*/ OPC_MoveChild0, ++/*567343*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*567346*/ OPC_CheckChild0Integer, 1, ++/*567348*/ OPC_CheckChild0Type, MVT::i64, ++/*567350*/ OPC_CheckChild1Integer, 1, ++/*567352*/ OPC_CheckChild1Type, MVT::i64, ++/*567354*/ OPC_MoveParent, ++/*567355*/ OPC_CheckChild1Same, 1, ++/*567357*/ OPC_MoveParent, ++/*567358*/ OPC_MoveParent, ++/*567359*/ OPC_MoveParent, ++/*567360*/ OPC_MoveChild1, ++/*567361*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*567364*/ OPC_CheckChild0Integer, 1, ++/*567366*/ OPC_CheckChild0Type, MVT::i64, ++/*567368*/ OPC_CheckChild1Integer, 1, ++/*567370*/ OPC_CheckChild1Type, MVT::i64, ++/*567372*/ OPC_CheckType, MVT::v2i64, ++/*567374*/ OPC_MoveParent, ++/*567375*/ OPC_CheckType, MVT::v2i64, ++/*567377*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*567379*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*567387*/ /*Scope*/ 45, /*->567433*/ ++/*567388*/ OPC_CheckChild0Same, 1, ++/*567390*/ OPC_MoveChild1, ++/*567391*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*567394*/ OPC_CheckChild0Integer, 1, ++/*567396*/ OPC_CheckChild0Type, MVT::i64, ++/*567398*/ OPC_CheckChild1Integer, 1, ++/*567400*/ OPC_CheckChild1Type, MVT::i64, ++/*567402*/ OPC_MoveParent, ++/*567403*/ OPC_MoveParent, ++/*567404*/ OPC_MoveParent, ++/*567405*/ OPC_MoveParent, ++/*567406*/ OPC_MoveChild1, ++/*567407*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*567410*/ OPC_CheckChild0Integer, 1, ++/*567412*/ OPC_CheckChild0Type, MVT::i64, ++/*567414*/ OPC_CheckChild1Integer, 1, ++/*567416*/ OPC_CheckChild1Type, MVT::i64, ++/*567418*/ OPC_CheckType, MVT::v2i64, ++/*567420*/ OPC_MoveParent, ++/*567421*/ OPC_CheckType, MVT::v2i64, ++/*567423*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*567425*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*567433*/ 0, /*End of Scope*/ ++/*567434*/ /*Scope*/ 1|128,3/*385*/, /*->567821*/ ++/*567436*/ OPC_MoveChild0, ++/*567437*/ OPC_SwitchOpcode /*2 cases */, 85, TARGET_VAL(ISD::BUILD_VECTOR),// ->567526 ++/*567441*/ OPC_CheckChild0Integer, 1, ++/*567443*/ OPC_CheckChild0Type, MVT::i64, ++/*567445*/ OPC_CheckChild1Integer, 1, ++/*567447*/ OPC_CheckChild1Type, MVT::i64, ++/*567449*/ OPC_MoveParent, ++/*567450*/ OPC_MoveChild1, ++/*567451*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*567454*/ OPC_Scope, 34, /*->567490*/ // 2 children in Scope ++/*567456*/ OPC_CheckChild0Same, 0, ++/*567458*/ OPC_CheckChild1Same, 1, ++/*567460*/ OPC_MoveParent, ++/*567461*/ OPC_MoveParent, ++/*567462*/ OPC_MoveParent, ++/*567463*/ OPC_MoveChild1, ++/*567464*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*567467*/ OPC_CheckChild0Integer, 1, ++/*567469*/ OPC_CheckChild0Type, MVT::i64, ++/*567471*/ OPC_CheckChild1Integer, 1, ++/*567473*/ OPC_CheckChild1Type, MVT::i64, ++/*567475*/ OPC_CheckType, MVT::v2i64, ++/*567477*/ OPC_MoveParent, ++/*567478*/ OPC_CheckType, MVT::v2i64, ++/*567480*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*567482*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*567490*/ /*Scope*/ 34, /*->567525*/ ++/*567491*/ OPC_CheckChild0Same, 1, ++/*567493*/ OPC_CheckChild1Same, 0, ++/*567495*/ OPC_MoveParent, ++/*567496*/ OPC_MoveParent, ++/*567497*/ OPC_MoveParent, ++/*567498*/ OPC_MoveChild1, ++/*567499*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*567502*/ OPC_CheckChild0Integer, 1, ++/*567504*/ OPC_CheckChild0Type, MVT::i64, ++/*567506*/ OPC_CheckChild1Integer, 1, ++/*567508*/ OPC_CheckChild1Type, MVT::i64, ++/*567510*/ OPC_CheckType, MVT::v2i64, ++/*567512*/ OPC_MoveParent, ++/*567513*/ OPC_CheckType, MVT::v2i64, ++/*567515*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*567517*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*567525*/ 0, /*End of Scope*/ ++/*567526*/ /*SwitchOpcode*/ 34|128,2/*290*/, TARGET_VAL(ISD::ADD),// ->567820 ++/*567530*/ OPC_Scope, 47, /*->567579*/ // 6 children in Scope ++/*567532*/ OPC_MoveChild0, ++/*567533*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*567536*/ OPC_CheckChild0Integer, 1, ++/*567538*/ OPC_CheckChild0Type, MVT::i64, ++/*567540*/ OPC_CheckChild1Integer, 1, ++/*567542*/ OPC_CheckChild1Type, MVT::i64, ++/*567544*/ OPC_MoveParent, ++/*567545*/ OPC_CheckChild1Same, 1, ++/*567547*/ OPC_MoveParent, ++/*567548*/ OPC_CheckChild1Same, 0, ++/*567550*/ OPC_MoveParent, ++/*567551*/ OPC_MoveParent, ++/*567552*/ OPC_MoveChild1, ++/*567553*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*567556*/ OPC_CheckChild0Integer, 1, ++/*567558*/ OPC_CheckChild0Type, MVT::i64, ++/*567560*/ OPC_CheckChild1Integer, 1, ++/*567562*/ OPC_CheckChild1Type, MVT::i64, ++/*567564*/ OPC_CheckType, MVT::v2i64, ++/*567566*/ OPC_MoveParent, ++/*567567*/ OPC_CheckType, MVT::v2i64, ++/*567569*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*567571*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a), LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*567579*/ /*Scope*/ 47, /*->567627*/ ++/*567580*/ OPC_CheckChild0Same, 1, ++/*567582*/ OPC_MoveChild1, ++/*567583*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*567586*/ OPC_CheckChild0Integer, 1, ++/*567588*/ OPC_CheckChild0Type, MVT::i64, ++/*567590*/ OPC_CheckChild1Integer, 1, ++/*567592*/ OPC_CheckChild1Type, MVT::i64, ++/*567594*/ OPC_MoveParent, ++/*567595*/ OPC_MoveParent, ++/*567596*/ OPC_CheckChild1Same, 0, ++/*567598*/ OPC_MoveParent, ++/*567599*/ OPC_MoveParent, ++/*567600*/ OPC_MoveChild1, ++/*567601*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*567604*/ OPC_CheckChild0Integer, 1, ++/*567606*/ OPC_CheckChild0Type, MVT::i64, ++/*567608*/ OPC_CheckChild1Integer, 1, ++/*567610*/ OPC_CheckChild1Type, MVT::i64, ++/*567612*/ OPC_CheckType, MVT::v2i64, ++/*567614*/ OPC_MoveParent, ++/*567615*/ OPC_CheckType, MVT::v2i64, ++/*567617*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*567619*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*567627*/ /*Scope*/ 47, /*->567675*/ ++/*567628*/ OPC_MoveChild0, ++/*567629*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*567632*/ OPC_CheckChild0Integer, 1, ++/*567634*/ OPC_CheckChild0Type, MVT::i64, ++/*567636*/ OPC_CheckChild1Integer, 1, ++/*567638*/ OPC_CheckChild1Type, MVT::i64, ++/*567640*/ OPC_MoveParent, ++/*567641*/ OPC_CheckChild1Same, 0, ++/*567643*/ OPC_MoveParent, ++/*567644*/ OPC_CheckChild1Same, 1, ++/*567646*/ OPC_MoveParent, ++/*567647*/ OPC_MoveParent, ++/*567648*/ OPC_MoveChild1, ++/*567649*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*567652*/ OPC_CheckChild0Integer, 1, ++/*567654*/ OPC_CheckChild0Type, MVT::i64, ++/*567656*/ OPC_CheckChild1Integer, 1, ++/*567658*/ OPC_CheckChild1Type, MVT::i64, ++/*567660*/ OPC_CheckType, MVT::v2i64, ++/*567662*/ OPC_MoveParent, ++/*567663*/ OPC_CheckType, MVT::v2i64, ++/*567665*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*567667*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b), LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*567675*/ /*Scope*/ 47, /*->567723*/ ++/*567676*/ OPC_CheckChild0Same, 0, ++/*567678*/ OPC_MoveChild1, ++/*567679*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*567682*/ OPC_CheckChild0Integer, 1, ++/*567684*/ OPC_CheckChild0Type, MVT::i64, ++/*567686*/ OPC_CheckChild1Integer, 1, ++/*567688*/ OPC_CheckChild1Type, MVT::i64, ++/*567690*/ OPC_MoveParent, ++/*567691*/ OPC_MoveParent, ++/*567692*/ OPC_CheckChild1Same, 1, ++/*567694*/ OPC_MoveParent, ++/*567695*/ OPC_MoveParent, ++/*567696*/ OPC_MoveChild1, ++/*567697*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*567700*/ OPC_CheckChild0Integer, 1, ++/*567702*/ OPC_CheckChild0Type, MVT::i64, ++/*567704*/ OPC_CheckChild1Integer, 1, ++/*567706*/ OPC_CheckChild1Type, MVT::i64, ++/*567708*/ OPC_CheckType, MVT::v2i64, ++/*567710*/ OPC_MoveParent, ++/*567711*/ OPC_CheckType, MVT::v2i64, ++/*567713*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*567715*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*567723*/ /*Scope*/ 47, /*->567771*/ ++/*567724*/ OPC_CheckChild0Same, 1, ++/*567726*/ OPC_CheckChild1Same, 0, ++/*567728*/ OPC_MoveParent, ++/*567729*/ OPC_MoveChild1, ++/*567730*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*567733*/ OPC_CheckChild0Integer, 1, ++/*567735*/ OPC_CheckChild0Type, MVT::i64, ++/*567737*/ OPC_CheckChild1Integer, 1, ++/*567739*/ OPC_CheckChild1Type, MVT::i64, ++/*567741*/ OPC_MoveParent, ++/*567742*/ OPC_MoveParent, ++/*567743*/ OPC_MoveParent, ++/*567744*/ OPC_MoveChild1, ++/*567745*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*567748*/ OPC_CheckChild0Integer, 1, ++/*567750*/ OPC_CheckChild0Type, MVT::i64, ++/*567752*/ OPC_CheckChild1Integer, 1, ++/*567754*/ OPC_CheckChild1Type, MVT::i64, ++/*567756*/ OPC_CheckType, MVT::v2i64, ++/*567758*/ OPC_MoveParent, ++/*567759*/ OPC_CheckType, MVT::v2i64, ++/*567761*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*567763*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*567771*/ /*Scope*/ 47, /*->567819*/ ++/*567772*/ OPC_CheckChild0Same, 0, ++/*567774*/ OPC_CheckChild1Same, 1, ++/*567776*/ OPC_MoveParent, ++/*567777*/ OPC_MoveChild1, ++/*567778*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*567781*/ OPC_CheckChild0Integer, 1, ++/*567783*/ OPC_CheckChild0Type, MVT::i64, ++/*567785*/ OPC_CheckChild1Integer, 1, ++/*567787*/ OPC_CheckChild1Type, MVT::i64, ++/*567789*/ OPC_MoveParent, ++/*567790*/ OPC_MoveParent, ++/*567791*/ OPC_MoveParent, ++/*567792*/ OPC_MoveChild1, ++/*567793*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*567796*/ OPC_CheckChild0Integer, 1, ++/*567798*/ OPC_CheckChild0Type, MVT::i64, ++/*567800*/ OPC_CheckChild1Integer, 1, ++/*567802*/ OPC_CheckChild1Type, MVT::i64, ++/*567804*/ OPC_CheckType, MVT::v2i64, ++/*567806*/ OPC_MoveParent, ++/*567807*/ OPC_CheckType, MVT::v2i64, ++/*567809*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*567811*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*567819*/ 0, /*End of Scope*/ ++/*567820*/ 0, // EndSwitchOpcode ++/*567821*/ /*Scope*/ 100, /*->567922*/ ++/*567822*/ OPC_CheckChild0Same, 0, ++/*567824*/ OPC_MoveChild1, ++/*567825*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*567828*/ OPC_Scope, 45, /*->567875*/ // 2 children in Scope ++/*567830*/ OPC_MoveChild0, ++/*567831*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*567834*/ OPC_CheckChild0Integer, 1, ++/*567836*/ OPC_CheckChild0Type, MVT::i64, ++/*567838*/ OPC_CheckChild1Integer, 1, ++/*567840*/ OPC_CheckChild1Type, MVT::i64, ++/*567842*/ OPC_MoveParent, ++/*567843*/ OPC_CheckChild1Same, 1, ++/*567845*/ OPC_MoveParent, ++/*567846*/ OPC_MoveParent, ++/*567847*/ OPC_MoveParent, ++/*567848*/ OPC_MoveChild1, ++/*567849*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*567852*/ OPC_CheckChild0Integer, 1, ++/*567854*/ OPC_CheckChild0Type, MVT::i64, ++/*567856*/ OPC_CheckChild1Integer, 1, ++/*567858*/ OPC_CheckChild1Type, MVT::i64, ++/*567860*/ OPC_CheckType, MVT::v2i64, ++/*567862*/ OPC_MoveParent, ++/*567863*/ OPC_CheckType, MVT::v2i64, ++/*567865*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*567867*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$a))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*567875*/ /*Scope*/ 45, /*->567921*/ ++/*567876*/ OPC_CheckChild0Same, 1, ++/*567878*/ OPC_MoveChild1, ++/*567879*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*567882*/ OPC_CheckChild0Integer, 1, ++/*567884*/ OPC_CheckChild0Type, MVT::i64, ++/*567886*/ OPC_CheckChild1Integer, 1, ++/*567888*/ OPC_CheckChild1Type, MVT::i64, ++/*567890*/ OPC_MoveParent, ++/*567891*/ OPC_MoveParent, ++/*567892*/ OPC_MoveParent, ++/*567893*/ OPC_MoveParent, ++/*567894*/ OPC_MoveChild1, ++/*567895*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*567898*/ OPC_CheckChild0Integer, 1, ++/*567900*/ OPC_CheckChild0Type, MVT::i64, ++/*567902*/ OPC_CheckChild1Integer, 1, ++/*567904*/ OPC_CheckChild1Type, MVT::i64, ++/*567906*/ OPC_CheckType, MVT::v2i64, ++/*567908*/ OPC_MoveParent, ++/*567909*/ OPC_CheckType, MVT::v2i64, ++/*567911*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*567913*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*567921*/ 0, /*End of Scope*/ ++/*567922*/ /*Scope*/ 100, /*->568023*/ ++/*567923*/ OPC_CheckChild0Same, 1, ++/*567925*/ OPC_MoveChild1, ++/*567926*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*567929*/ OPC_Scope, 45, /*->567976*/ // 2 children in Scope ++/*567931*/ OPC_MoveChild0, ++/*567932*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*567935*/ OPC_CheckChild0Integer, 1, ++/*567937*/ OPC_CheckChild0Type, MVT::i64, ++/*567939*/ OPC_CheckChild1Integer, 1, ++/*567941*/ OPC_CheckChild1Type, MVT::i64, ++/*567943*/ OPC_MoveParent, ++/*567944*/ OPC_CheckChild1Same, 0, ++/*567946*/ OPC_MoveParent, ++/*567947*/ OPC_MoveParent, ++/*567948*/ OPC_MoveParent, ++/*567949*/ OPC_MoveChild1, ++/*567950*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*567953*/ OPC_CheckChild0Integer, 1, ++/*567955*/ OPC_CheckChild0Type, MVT::i64, ++/*567957*/ OPC_CheckChild1Integer, 1, ++/*567959*/ OPC_CheckChild1Type, MVT::i64, ++/*567961*/ OPC_CheckType, MVT::v2i64, ++/*567963*/ OPC_MoveParent, ++/*567964*/ OPC_CheckType, MVT::v2i64, ++/*567966*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*567968*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), LSX128D:{ *:[v2i64] }:$b))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*567976*/ /*Scope*/ 45, /*->568022*/ ++/*567977*/ OPC_CheckChild0Same, 0, ++/*567979*/ OPC_MoveChild1, ++/*567980*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*567983*/ OPC_CheckChild0Integer, 1, ++/*567985*/ OPC_CheckChild0Type, MVT::i64, ++/*567987*/ OPC_CheckChild1Integer, 1, ++/*567989*/ OPC_CheckChild1Type, MVT::i64, ++/*567991*/ OPC_MoveParent, ++/*567992*/ OPC_MoveParent, ++/*567993*/ OPC_MoveParent, ++/*567994*/ OPC_MoveParent, ++/*567995*/ OPC_MoveChild1, ++/*567996*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*567999*/ OPC_CheckChild0Integer, 1, ++/*568001*/ OPC_CheckChild0Type, MVT::i64, ++/*568003*/ OPC_CheckChild1Integer, 1, ++/*568005*/ OPC_CheckChild1Type, MVT::i64, ++/*568007*/ OPC_CheckType, MVT::v2i64, ++/*568009*/ OPC_MoveParent, ++/*568010*/ OPC_CheckType, MVT::v2i64, ++/*568012*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*568014*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*568022*/ 0, /*End of Scope*/ ++/*568023*/ /*Scope*/ 89, /*->568113*/ ++/*568024*/ OPC_MoveChild0, ++/*568025*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*568028*/ OPC_CheckChild0Integer, 1, ++/*568030*/ OPC_CheckChild0Type, MVT::i64, ++/*568032*/ OPC_CheckChild1Integer, 1, ++/*568034*/ OPC_CheckChild1Type, MVT::i64, ++/*568036*/ OPC_MoveParent, ++/*568037*/ OPC_MoveChild1, ++/*568038*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*568041*/ OPC_Scope, 34, /*->568077*/ // 2 children in Scope ++/*568043*/ OPC_CheckChild0Same, 1, ++/*568045*/ OPC_CheckChild1Same, 0, ++/*568047*/ OPC_MoveParent, ++/*568048*/ OPC_MoveParent, ++/*568049*/ OPC_MoveParent, ++/*568050*/ OPC_MoveChild1, ++/*568051*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*568054*/ OPC_CheckChild0Integer, 1, ++/*568056*/ OPC_CheckChild0Type, MVT::i64, ++/*568058*/ OPC_CheckChild1Integer, 1, ++/*568060*/ OPC_CheckChild1Type, MVT::i64, ++/*568062*/ OPC_CheckType, MVT::v2i64, ++/*568064*/ OPC_MoveParent, ++/*568065*/ OPC_CheckType, MVT::v2i64, ++/*568067*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*568069*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*568077*/ /*Scope*/ 34, /*->568112*/ ++/*568078*/ OPC_CheckChild0Same, 0, ++/*568080*/ OPC_CheckChild1Same, 1, ++/*568082*/ OPC_MoveParent, ++/*568083*/ OPC_MoveParent, ++/*568084*/ OPC_MoveParent, ++/*568085*/ OPC_MoveChild1, ++/*568086*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*568089*/ OPC_CheckChild0Integer, 1, ++/*568091*/ OPC_CheckChild0Type, MVT::i64, ++/*568093*/ OPC_CheckChild1Integer, 1, ++/*568095*/ OPC_CheckChild1Type, MVT::i64, ++/*568097*/ OPC_CheckType, MVT::v2i64, ++/*568099*/ OPC_MoveParent, ++/*568100*/ OPC_CheckType, MVT::v2i64, ++/*568102*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*568104*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVGR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] }), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 73 ++ // Dst: (VAVGR_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*568112*/ 0, /*End of Scope*/ ++/*568113*/ 0, /*End of Scope*/ ++/*568114*/ 0, /*End of Scope*/ ++/*568115*/ 0, // EndSwitchOpcode ++/*568116*/ /*Scope*/ 50|128,1/*178*/, /*->568296*/ ++/*568118*/ OPC_RecordChild0, // #0 = $vs ++/*568119*/ OPC_MoveChild1, ++/*568120*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/*568123*/ OPC_MoveChild0, ++/*568124*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*568127*/ OPC_MoveChild0, ++/*568128*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*568131*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/*568133*/ OPC_CheckType, MVT::i32, ++/*568135*/ OPC_MoveParent, ++/*568136*/ OPC_MoveChild1, ++/*568137*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*568140*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/*568142*/ OPC_CheckType, MVT::i32, ++/*568144*/ OPC_MoveParent, ++/*568145*/ OPC_MoveChild2, ++/*568146*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*568149*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/*568151*/ OPC_CheckType, MVT::i32, ++/*568153*/ OPC_MoveParent, ++/*568154*/ OPC_MoveChild3, ++/*568155*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*568158*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/*568160*/ OPC_CheckType, MVT::i32, ++/*568162*/ OPC_MoveParent, ++/*568163*/ OPC_MoveChild4, ++/*568164*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*568167*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/*568169*/ OPC_CheckType, MVT::i32, ++/*568171*/ OPC_MoveParent, ++/*568172*/ OPC_MoveChild5, ++/*568173*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*568176*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/*568178*/ OPC_CheckType, MVT::i32, ++/*568180*/ OPC_MoveParent, ++/*568181*/ OPC_MoveChild6, ++/*568182*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*568185*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/*568187*/ OPC_CheckType, MVT::i32, ++/*568189*/ OPC_MoveParent, ++/*568190*/ OPC_MoveChild7, ++/*568191*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*568194*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/*568196*/ OPC_CheckType, MVT::i32, ++/*568198*/ OPC_MoveParent, ++/*568199*/ OPC_MoveChild, 8, ++/*568201*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*568204*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/*568206*/ OPC_CheckType, MVT::i32, ++/*568208*/ OPC_MoveParent, ++/*568209*/ OPC_MoveChild, 9, ++/*568211*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*568214*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/*568216*/ OPC_CheckType, MVT::i32, ++/*568218*/ OPC_MoveParent, ++/*568219*/ OPC_MoveChild, 10, ++/*568221*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*568224*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/*568226*/ OPC_CheckType, MVT::i32, ++/*568228*/ OPC_MoveParent, ++/*568229*/ OPC_MoveChild, 11, ++/*568231*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*568234*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/*568236*/ OPC_CheckType, MVT::i32, ++/*568238*/ OPC_MoveParent, ++/*568239*/ OPC_MoveChild, 12, ++/*568241*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*568244*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/*568246*/ OPC_CheckType, MVT::i32, ++/*568248*/ OPC_MoveParent, ++/*568249*/ OPC_MoveChild, 13, ++/*568251*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*568254*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/*568256*/ OPC_CheckType, MVT::i32, ++/*568258*/ OPC_MoveParent, ++/*568259*/ OPC_MoveChild, 14, ++/*568261*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*568264*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/*568266*/ OPC_CheckType, MVT::i32, ++/*568268*/ OPC_MoveParent, ++/*568269*/ OPC_MoveChild, 15, ++/*568271*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*568274*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/*568276*/ OPC_CheckType, MVT::i32, ++/*568278*/ OPC_MoveParent, ++/*568279*/ OPC_MoveParent, ++/*568280*/ OPC_RecordChild1, // #1 = $vt ++/*568281*/ OPC_CheckType, MVT::v16i16, ++/*568283*/ OPC_MoveParent, ++/*568284*/ OPC_CheckType, MVT::v16i16, ++/*568286*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*568288*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRA_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vs, (and:{ *:[v16i16] } (build_vector:{ *:[v16i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v16i16:{ *:[v16i16] }:$vt)) - Complexity = 73 ++ // Dst: (XVSRA_H:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vs, v16i16:{ *:[v16i16] }:$vt) ++/*568296*/ /*Scope*/ 44|128,24/*3116*/, /*->571414*/ ++/*568298*/ OPC_MoveChild0, ++/*568299*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*568302*/ OPC_Scope, 120|128,7/*1016*/, /*->569321*/ // 4 children in Scope ++/*568305*/ OPC_MoveChild0, ++/*568306*/ OPC_SwitchOpcode /*2 cases */, 62|128,6/*830*/, TARGET_VAL(ISD::ADD),// ->569141 ++/*568311*/ OPC_Scope, 49|128,3/*433*/, /*->568747*/ // 4 children in Scope ++/*568314*/ OPC_RecordChild0, // #0 = $a ++/*568315*/ OPC_Scope, 24|128,2/*280*/, /*->568598*/ // 2 children in Scope ++/*568318*/ OPC_RecordChild1, // #1 = $b ++/*568319*/ OPC_MoveParent, ++/*568320*/ OPC_MoveChild1, ++/*568321*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*568324*/ OPC_MoveChild0, ++/*568325*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*568328*/ OPC_Scope, 123, /*->568453*/ // 3 children in Scope ++/*568330*/ OPC_CheckChild0Same, 0, ++/*568332*/ OPC_CheckChild1Same, 1, ++/*568334*/ OPC_MoveParent, ++/*568335*/ OPC_MoveChild1, ++/*568336*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*568339*/ OPC_SwitchType /*2 cases */, 54, MVT::v4i32,// ->568396 ++/*568342*/ OPC_CheckChild0Integer, 31, ++/*568344*/ OPC_CheckChild0Type, MVT::i32, ++/*568346*/ OPC_CheckChild1Integer, 31, ++/*568348*/ OPC_CheckChild1Type, MVT::i32, ++/*568350*/ OPC_CheckChild2Integer, 31, ++/*568352*/ OPC_CheckChild2Type, MVT::i32, ++/*568354*/ OPC_CheckChild3Integer, 31, ++/*568356*/ OPC_CheckChild3Type, MVT::i32, ++/*568358*/ OPC_MoveParent, ++/*568359*/ OPC_MoveParent, ++/*568360*/ OPC_MoveParent, ++/*568361*/ OPC_MoveChild1, ++/*568362*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*568365*/ OPC_CheckChild0Integer, 1, ++/*568367*/ OPC_CheckChild0Type, MVT::i32, ++/*568369*/ OPC_CheckChild1Integer, 1, ++/*568371*/ OPC_CheckChild1Type, MVT::i32, ++/*568373*/ OPC_CheckChild2Integer, 1, ++/*568375*/ OPC_CheckChild2Type, MVT::i32, ++/*568377*/ OPC_CheckChild3Integer, 1, ++/*568379*/ OPC_CheckChild3Type, MVT::i32, ++/*568381*/ OPC_CheckType, MVT::v4i32, ++/*568383*/ OPC_MoveParent, ++/*568384*/ OPC_CheckType, MVT::v4i32, ++/*568386*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*568388*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 61 ++ // Dst: (VAVG_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*568396*/ /*SwitchType*/ 54, MVT::v4i64,// ->568452 ++/*568398*/ OPC_CheckChild0Integer, 63, ++/*568400*/ OPC_CheckChild0Type, MVT::i64, ++/*568402*/ OPC_CheckChild1Integer, 63, ++/*568404*/ OPC_CheckChild1Type, MVT::i64, ++/*568406*/ OPC_CheckChild2Integer, 63, ++/*568408*/ OPC_CheckChild2Type, MVT::i64, ++/*568410*/ OPC_CheckChild3Integer, 63, ++/*568412*/ OPC_CheckChild3Type, MVT::i64, ++/*568414*/ OPC_MoveParent, ++/*568415*/ OPC_MoveParent, ++/*568416*/ OPC_MoveParent, ++/*568417*/ OPC_MoveChild1, ++/*568418*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*568421*/ OPC_CheckChild0Integer, 1, ++/*568423*/ OPC_CheckChild0Type, MVT::i64, ++/*568425*/ OPC_CheckChild1Integer, 1, ++/*568427*/ OPC_CheckChild1Type, MVT::i64, ++/*568429*/ OPC_CheckChild2Integer, 1, ++/*568431*/ OPC_CheckChild2Type, MVT::i64, ++/*568433*/ OPC_CheckChild3Integer, 1, ++/*568435*/ OPC_CheckChild3Type, MVT::i64, ++/*568437*/ OPC_CheckType, MVT::v4i64, ++/*568439*/ OPC_MoveParent, ++/*568440*/ OPC_CheckType, MVT::v4i64, ++/*568442*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*568444*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 61 ++ // Dst: (XVAVG_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*568452*/ 0, // EndSwitchType ++/*568453*/ /*Scope*/ 77, /*->568531*/ ++/*568454*/ OPC_CheckChild0Same, 1, ++/*568456*/ OPC_CheckChild1Same, 0, ++/*568458*/ OPC_MoveParent, ++/*568459*/ OPC_MoveChild1, ++/*568460*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*568463*/ OPC_CheckChild0Integer, 31, ++/*568465*/ OPC_CheckChild0Type, MVT::i32, ++/*568467*/ OPC_CheckChild1Integer, 31, ++/*568469*/ OPC_CheckChild1Type, MVT::i32, ++/*568471*/ OPC_CheckChild2Integer, 31, ++/*568473*/ OPC_CheckChild2Type, MVT::i32, ++/*568475*/ OPC_CheckChild3Integer, 31, ++/*568477*/ OPC_CheckChild3Type, MVT::i32, ++/*568479*/ OPC_CheckType, MVT::v4i32, ++/*568481*/ OPC_MoveParent, ++/*568482*/ OPC_MoveParent, ++/*568483*/ OPC_MoveParent, ++/*568484*/ OPC_MoveChild1, ++/*568485*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*568488*/ OPC_CheckChild0Integer, 1, ++/*568490*/ OPC_CheckChild0Type, MVT::i32, ++/*568492*/ OPC_CheckChild1Integer, 1, ++/*568494*/ OPC_CheckChild1Type, MVT::i32, ++/*568496*/ OPC_CheckChild2Integer, 1, ++/*568498*/ OPC_CheckChild2Type, MVT::i32, ++/*568500*/ OPC_CheckChild3Integer, 1, ++/*568502*/ OPC_CheckChild3Type, MVT::i32, ++/*568504*/ OPC_CheckType, MVT::v4i32, ++/*568506*/ OPC_MoveParent, ++/*568507*/ OPC_CheckType, MVT::v4i32, ++/*568509*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*568511*/ OPC_Scope, 8, /*->568521*/ // 2 children in Scope ++/*568513*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 61 ++ // Dst: (VAVG_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*568521*/ /*Scope*/ 8, /*->568530*/ ++/*568522*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 61 ++ // Dst: (VAVG_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*568530*/ 0, /*End of Scope*/ ++/*568531*/ /*Scope*/ 65, /*->568597*/ ++/*568532*/ OPC_CheckChild0Same, 0, ++/*568534*/ OPC_CheckChild1Same, 1, ++/*568536*/ OPC_MoveParent, ++/*568537*/ OPC_MoveChild1, ++/*568538*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*568541*/ OPC_CheckChild0Integer, 31, ++/*568543*/ OPC_CheckChild0Type, MVT::i32, ++/*568545*/ OPC_CheckChild1Integer, 31, ++/*568547*/ OPC_CheckChild1Type, MVT::i32, ++/*568549*/ OPC_CheckChild2Integer, 31, ++/*568551*/ OPC_CheckChild2Type, MVT::i32, ++/*568553*/ OPC_CheckChild3Integer, 31, ++/*568555*/ OPC_CheckChild3Type, MVT::i32, ++/*568557*/ OPC_CheckType, MVT::v4i32, ++/*568559*/ OPC_MoveParent, ++/*568560*/ OPC_MoveParent, ++/*568561*/ OPC_MoveParent, ++/*568562*/ OPC_MoveChild1, ++/*568563*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*568566*/ OPC_CheckChild0Integer, 1, ++/*568568*/ OPC_CheckChild0Type, MVT::i32, ++/*568570*/ OPC_CheckChild1Integer, 1, ++/*568572*/ OPC_CheckChild1Type, MVT::i32, ++/*568574*/ OPC_CheckChild2Integer, 1, ++/*568576*/ OPC_CheckChild2Type, MVT::i32, ++/*568578*/ OPC_CheckChild3Integer, 1, ++/*568580*/ OPC_CheckChild3Type, MVT::i32, ++/*568582*/ OPC_CheckType, MVT::v4i32, ++/*568584*/ OPC_MoveParent, ++/*568585*/ OPC_CheckType, MVT::v4i32, ++/*568587*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*568589*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 61 ++ // Dst: (VAVG_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*568597*/ 0, /*End of Scope*/ ++/*568598*/ /*Scope*/ 18|128,1/*146*/, /*->568746*/ ++/*568600*/ OPC_MoveChild1, ++/*568601*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*568604*/ OPC_MoveChild0, ++/*568605*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*568608*/ OPC_Scope, 67, /*->568677*/ // 2 children in Scope ++/*568610*/ OPC_CheckChild0Same, 0, ++/*568612*/ OPC_RecordChild1, // #1 = $b ++/*568613*/ OPC_MoveParent, ++/*568614*/ OPC_MoveChild1, ++/*568615*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*568618*/ OPC_CheckChild0Integer, 31, ++/*568620*/ OPC_CheckChild0Type, MVT::i32, ++/*568622*/ OPC_CheckChild1Integer, 31, ++/*568624*/ OPC_CheckChild1Type, MVT::i32, ++/*568626*/ OPC_CheckChild2Integer, 31, ++/*568628*/ OPC_CheckChild2Type, MVT::i32, ++/*568630*/ OPC_CheckChild3Integer, 31, ++/*568632*/ OPC_CheckChild3Type, MVT::i32, ++/*568634*/ OPC_CheckType, MVT::v4i32, ++/*568636*/ OPC_MoveParent, ++/*568637*/ OPC_MoveParent, ++/*568638*/ OPC_MoveParent, ++/*568639*/ OPC_CheckChild1Same, 1, ++/*568641*/ OPC_MoveParent, ++/*568642*/ OPC_MoveChild1, ++/*568643*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*568646*/ OPC_CheckChild0Integer, 1, ++/*568648*/ OPC_CheckChild0Type, MVT::i32, ++/*568650*/ OPC_CheckChild1Integer, 1, ++/*568652*/ OPC_CheckChild1Type, MVT::i32, ++/*568654*/ OPC_CheckChild2Integer, 1, ++/*568656*/ OPC_CheckChild2Type, MVT::i32, ++/*568658*/ OPC_CheckChild3Integer, 1, ++/*568660*/ OPC_CheckChild3Type, MVT::i32, ++/*568662*/ OPC_CheckType, MVT::v4i32, ++/*568664*/ OPC_MoveParent, ++/*568665*/ OPC_CheckType, MVT::v4i32, ++/*568667*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*568669*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 61 ++ // Dst: (VAVG_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*568677*/ /*Scope*/ 67, /*->568745*/ ++/*568678*/ OPC_RecordChild0, // #1 = $b ++/*568679*/ OPC_CheckChild1Same, 0, ++/*568681*/ OPC_MoveParent, ++/*568682*/ OPC_MoveChild1, ++/*568683*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*568686*/ OPC_CheckChild0Integer, 31, ++/*568688*/ OPC_CheckChild0Type, MVT::i32, ++/*568690*/ OPC_CheckChild1Integer, 31, ++/*568692*/ OPC_CheckChild1Type, MVT::i32, ++/*568694*/ OPC_CheckChild2Integer, 31, ++/*568696*/ OPC_CheckChild2Type, MVT::i32, ++/*568698*/ OPC_CheckChild3Integer, 31, ++/*568700*/ OPC_CheckChild3Type, MVT::i32, ++/*568702*/ OPC_CheckType, MVT::v4i32, ++/*568704*/ OPC_MoveParent, ++/*568705*/ OPC_MoveParent, ++/*568706*/ OPC_MoveParent, ++/*568707*/ OPC_CheckChild1Same, 1, ++/*568709*/ OPC_MoveParent, ++/*568710*/ OPC_MoveChild1, ++/*568711*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*568714*/ OPC_CheckChild0Integer, 1, ++/*568716*/ OPC_CheckChild0Type, MVT::i32, ++/*568718*/ OPC_CheckChild1Integer, 1, ++/*568720*/ OPC_CheckChild1Type, MVT::i32, ++/*568722*/ OPC_CheckChild2Integer, 1, ++/*568724*/ OPC_CheckChild2Type, MVT::i32, ++/*568726*/ OPC_CheckChild3Integer, 1, ++/*568728*/ OPC_CheckChild3Type, MVT::i32, ++/*568730*/ OPC_CheckType, MVT::v4i32, ++/*568732*/ OPC_MoveParent, ++/*568733*/ OPC_CheckType, MVT::v4i32, ++/*568735*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*568737*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 61 ++ // Dst: (VAVG_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*568745*/ 0, /*End of Scope*/ ++/*568746*/ 0, /*End of Scope*/ ++/*568747*/ /*Scope*/ 121, /*->568869*/ ++/*568748*/ OPC_MoveChild0, ++/*568749*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*568752*/ OPC_MoveChild0, ++/*568753*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*568756*/ OPC_RecordChild0, // #0 = $a ++/*568757*/ OPC_RecordChild1, // #1 = $b ++/*568758*/ OPC_MoveParent, ++/*568759*/ OPC_MoveChild1, ++/*568760*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*568763*/ OPC_CheckChild0Integer, 31, ++/*568765*/ OPC_CheckChild0Type, MVT::i32, ++/*568767*/ OPC_CheckChild1Integer, 31, ++/*568769*/ OPC_CheckChild1Type, MVT::i32, ++/*568771*/ OPC_CheckChild2Integer, 31, ++/*568773*/ OPC_CheckChild2Type, MVT::i32, ++/*568775*/ OPC_CheckChild3Integer, 31, ++/*568777*/ OPC_CheckChild3Type, MVT::i32, ++/*568779*/ OPC_CheckType, MVT::v4i32, ++/*568781*/ OPC_MoveParent, ++/*568782*/ OPC_MoveParent, ++/*568783*/ OPC_Scope, 41, /*->568826*/ // 2 children in Scope ++/*568785*/ OPC_CheckChild1Same, 0, ++/*568787*/ OPC_MoveParent, ++/*568788*/ OPC_CheckChild1Same, 1, ++/*568790*/ OPC_MoveParent, ++/*568791*/ OPC_MoveChild1, ++/*568792*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*568795*/ OPC_CheckChild0Integer, 1, ++/*568797*/ OPC_CheckChild0Type, MVT::i32, ++/*568799*/ OPC_CheckChild1Integer, 1, ++/*568801*/ OPC_CheckChild1Type, MVT::i32, ++/*568803*/ OPC_CheckChild2Integer, 1, ++/*568805*/ OPC_CheckChild2Type, MVT::i32, ++/*568807*/ OPC_CheckChild3Integer, 1, ++/*568809*/ OPC_CheckChild3Type, MVT::i32, ++/*568811*/ OPC_CheckType, MVT::v4i32, ++/*568813*/ OPC_MoveParent, ++/*568814*/ OPC_CheckType, MVT::v4i32, ++/*568816*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*568818*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$a), LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 61 ++ // Dst: (VAVG_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*568826*/ /*Scope*/ 41, /*->568868*/ ++/*568827*/ OPC_CheckChild1Same, 1, ++/*568829*/ OPC_MoveParent, ++/*568830*/ OPC_CheckChild1Same, 0, ++/*568832*/ OPC_MoveParent, ++/*568833*/ OPC_MoveChild1, ++/*568834*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*568837*/ OPC_CheckChild0Integer, 1, ++/*568839*/ OPC_CheckChild0Type, MVT::i32, ++/*568841*/ OPC_CheckChild1Integer, 1, ++/*568843*/ OPC_CheckChild1Type, MVT::i32, ++/*568845*/ OPC_CheckChild2Integer, 1, ++/*568847*/ OPC_CheckChild2Type, MVT::i32, ++/*568849*/ OPC_CheckChild3Integer, 1, ++/*568851*/ OPC_CheckChild3Type, MVT::i32, ++/*568853*/ OPC_CheckType, MVT::v4i32, ++/*568855*/ OPC_MoveParent, ++/*568856*/ OPC_CheckType, MVT::v4i32, ++/*568858*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*568860*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$a), LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 61 ++ // Dst: (VAVG_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*568868*/ 0, /*End of Scope*/ ++/*568869*/ /*Scope*/ 19|128,1/*147*/, /*->569018*/ ++/*568871*/ OPC_RecordChild0, // #0 = $b ++/*568872*/ OPC_MoveChild1, ++/*568873*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*568876*/ OPC_MoveChild0, ++/*568877*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*568880*/ OPC_Scope, 67, /*->568949*/ // 2 children in Scope ++/*568882*/ OPC_RecordChild0, // #1 = $a ++/*568883*/ OPC_CheckChild1Same, 0, ++/*568885*/ OPC_MoveParent, ++/*568886*/ OPC_MoveChild1, ++/*568887*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*568890*/ OPC_CheckChild0Integer, 31, ++/*568892*/ OPC_CheckChild0Type, MVT::i32, ++/*568894*/ OPC_CheckChild1Integer, 31, ++/*568896*/ OPC_CheckChild1Type, MVT::i32, ++/*568898*/ OPC_CheckChild2Integer, 31, ++/*568900*/ OPC_CheckChild2Type, MVT::i32, ++/*568902*/ OPC_CheckChild3Integer, 31, ++/*568904*/ OPC_CheckChild3Type, MVT::i32, ++/*568906*/ OPC_CheckType, MVT::v4i32, ++/*568908*/ OPC_MoveParent, ++/*568909*/ OPC_MoveParent, ++/*568910*/ OPC_MoveParent, ++/*568911*/ OPC_CheckChild1Same, 1, ++/*568913*/ OPC_MoveParent, ++/*568914*/ OPC_MoveChild1, ++/*568915*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*568918*/ OPC_CheckChild0Integer, 1, ++/*568920*/ OPC_CheckChild0Type, MVT::i32, ++/*568922*/ OPC_CheckChild1Integer, 1, ++/*568924*/ OPC_CheckChild1Type, MVT::i32, ++/*568926*/ OPC_CheckChild2Integer, 1, ++/*568928*/ OPC_CheckChild2Type, MVT::i32, ++/*568930*/ OPC_CheckChild3Integer, 1, ++/*568932*/ OPC_CheckChild3Type, MVT::i32, ++/*568934*/ OPC_CheckType, MVT::v4i32, ++/*568936*/ OPC_MoveParent, ++/*568937*/ OPC_CheckType, MVT::v4i32, ++/*568939*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*568941*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 61 ++ // Dst: (VAVG_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*568949*/ /*Scope*/ 67, /*->569017*/ ++/*568950*/ OPC_CheckChild0Same, 0, ++/*568952*/ OPC_RecordChild1, // #1 = $a ++/*568953*/ OPC_MoveParent, ++/*568954*/ OPC_MoveChild1, ++/*568955*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*568958*/ OPC_CheckChild0Integer, 31, ++/*568960*/ OPC_CheckChild0Type, MVT::i32, ++/*568962*/ OPC_CheckChild1Integer, 31, ++/*568964*/ OPC_CheckChild1Type, MVT::i32, ++/*568966*/ OPC_CheckChild2Integer, 31, ++/*568968*/ OPC_CheckChild2Type, MVT::i32, ++/*568970*/ OPC_CheckChild3Integer, 31, ++/*568972*/ OPC_CheckChild3Type, MVT::i32, ++/*568974*/ OPC_CheckType, MVT::v4i32, ++/*568976*/ OPC_MoveParent, ++/*568977*/ OPC_MoveParent, ++/*568978*/ OPC_MoveParent, ++/*568979*/ OPC_CheckChild1Same, 1, ++/*568981*/ OPC_MoveParent, ++/*568982*/ OPC_MoveChild1, ++/*568983*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*568986*/ OPC_CheckChild0Integer, 1, ++/*568988*/ OPC_CheckChild0Type, MVT::i32, ++/*568990*/ OPC_CheckChild1Integer, 1, ++/*568992*/ OPC_CheckChild1Type, MVT::i32, ++/*568994*/ OPC_CheckChild2Integer, 1, ++/*568996*/ OPC_CheckChild2Type, MVT::i32, ++/*568998*/ OPC_CheckChild3Integer, 1, ++/*569000*/ OPC_CheckChild3Type, MVT::i32, ++/*569002*/ OPC_CheckType, MVT::v4i32, ++/*569004*/ OPC_MoveParent, ++/*569005*/ OPC_CheckType, MVT::v4i32, ++/*569007*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*569009*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }))), LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 61 ++ // Dst: (VAVG_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*569017*/ 0, /*End of Scope*/ ++/*569018*/ /*Scope*/ 121, /*->569140*/ ++/*569019*/ OPC_MoveChild0, ++/*569020*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*569023*/ OPC_MoveChild0, ++/*569024*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*569027*/ OPC_RecordChild0, // #0 = $a ++/*569028*/ OPC_RecordChild1, // #1 = $b ++/*569029*/ OPC_MoveParent, ++/*569030*/ OPC_MoveChild1, ++/*569031*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*569034*/ OPC_CheckChild0Integer, 31, ++/*569036*/ OPC_CheckChild0Type, MVT::i32, ++/*569038*/ OPC_CheckChild1Integer, 31, ++/*569040*/ OPC_CheckChild1Type, MVT::i32, ++/*569042*/ OPC_CheckChild2Integer, 31, ++/*569044*/ OPC_CheckChild2Type, MVT::i32, ++/*569046*/ OPC_CheckChild3Integer, 31, ++/*569048*/ OPC_CheckChild3Type, MVT::i32, ++/*569050*/ OPC_CheckType, MVT::v4i32, ++/*569052*/ OPC_MoveParent, ++/*569053*/ OPC_MoveParent, ++/*569054*/ OPC_Scope, 41, /*->569097*/ // 2 children in Scope ++/*569056*/ OPC_CheckChild1Same, 1, ++/*569058*/ OPC_MoveParent, ++/*569059*/ OPC_CheckChild1Same, 0, ++/*569061*/ OPC_MoveParent, ++/*569062*/ OPC_MoveChild1, ++/*569063*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*569066*/ OPC_CheckChild0Integer, 1, ++/*569068*/ OPC_CheckChild0Type, MVT::i32, ++/*569070*/ OPC_CheckChild1Integer, 1, ++/*569072*/ OPC_CheckChild1Type, MVT::i32, ++/*569074*/ OPC_CheckChild2Integer, 1, ++/*569076*/ OPC_CheckChild2Type, MVT::i32, ++/*569078*/ OPC_CheckChild3Integer, 1, ++/*569080*/ OPC_CheckChild3Type, MVT::i32, ++/*569082*/ OPC_CheckType, MVT::v4i32, ++/*569084*/ OPC_MoveParent, ++/*569085*/ OPC_CheckType, MVT::v4i32, ++/*569087*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*569089*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$b), LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 61 ++ // Dst: (VAVG_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*569097*/ /*Scope*/ 41, /*->569139*/ ++/*569098*/ OPC_CheckChild1Same, 0, ++/*569100*/ OPC_MoveParent, ++/*569101*/ OPC_CheckChild1Same, 1, ++/*569103*/ OPC_MoveParent, ++/*569104*/ OPC_MoveChild1, ++/*569105*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*569108*/ OPC_CheckChild0Integer, 1, ++/*569110*/ OPC_CheckChild0Type, MVT::i32, ++/*569112*/ OPC_CheckChild1Integer, 1, ++/*569114*/ OPC_CheckChild1Type, MVT::i32, ++/*569116*/ OPC_CheckChild2Integer, 1, ++/*569118*/ OPC_CheckChild2Type, MVT::i32, ++/*569120*/ OPC_CheckChild3Integer, 1, ++/*569122*/ OPC_CheckChild3Type, MVT::i32, ++/*569124*/ OPC_CheckType, MVT::v4i32, ++/*569126*/ OPC_MoveParent, ++/*569127*/ OPC_CheckType, MVT::v4i32, ++/*569129*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*569131*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$b), LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 61 ++ // Dst: (VAVG_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*569139*/ 0, /*End of Scope*/ ++/*569140*/ 0, /*End of Scope*/ ++/*569141*/ /*SwitchOpcode*/ 47|128,1/*175*/, TARGET_VAL(ISD::SRL),// ->569320 ++/*569145*/ OPC_MoveChild0, ++/*569146*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*569149*/ OPC_RecordChild0, // #0 = $a ++/*569150*/ OPC_RecordChild1, // #1 = $b ++/*569151*/ OPC_MoveParent, ++/*569152*/ OPC_MoveChild1, ++/*569153*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*569156*/ OPC_CheckChild0Integer, 31, ++/*569158*/ OPC_CheckChild0Type, MVT::i32, ++/*569160*/ OPC_CheckChild1Integer, 31, ++/*569162*/ OPC_CheckChild1Type, MVT::i32, ++/*569164*/ OPC_CheckChild2Integer, 31, ++/*569166*/ OPC_CheckChild2Type, MVT::i32, ++/*569168*/ OPC_CheckChild3Integer, 31, ++/*569170*/ OPC_CheckChild3Type, MVT::i32, ++/*569172*/ OPC_CheckType, MVT::v4i32, ++/*569174*/ OPC_MoveParent, ++/*569175*/ OPC_MoveParent, ++/*569176*/ OPC_MoveChild1, ++/*569177*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*569180*/ OPC_Scope, 41, /*->569223*/ // 3 children in Scope ++/*569182*/ OPC_CheckChild0Same, 0, ++/*569184*/ OPC_CheckChild1Same, 1, ++/*569186*/ OPC_MoveParent, ++/*569187*/ OPC_MoveParent, ++/*569188*/ OPC_MoveChild1, ++/*569189*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*569192*/ OPC_CheckChild0Integer, 1, ++/*569194*/ OPC_CheckChild0Type, MVT::i32, ++/*569196*/ OPC_CheckChild1Integer, 1, ++/*569198*/ OPC_CheckChild1Type, MVT::i32, ++/*569200*/ OPC_CheckChild2Integer, 1, ++/*569202*/ OPC_CheckChild2Type, MVT::i32, ++/*569204*/ OPC_CheckChild3Integer, 1, ++/*569206*/ OPC_CheckChild3Type, MVT::i32, ++/*569208*/ OPC_CheckType, MVT::v4i32, ++/*569210*/ OPC_MoveParent, ++/*569211*/ OPC_CheckType, MVT::v4i32, ++/*569213*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*569215*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 61 ++ // Dst: (VAVG_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*569223*/ /*Scope*/ 53, /*->569277*/ ++/*569224*/ OPC_CheckChild0Same, 1, ++/*569226*/ OPC_CheckChild1Same, 0, ++/*569228*/ OPC_MoveParent, ++/*569229*/ OPC_MoveParent, ++/*569230*/ OPC_MoveChild1, ++/*569231*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*569234*/ OPC_CheckChild0Integer, 1, ++/*569236*/ OPC_CheckChild0Type, MVT::i32, ++/*569238*/ OPC_CheckChild1Integer, 1, ++/*569240*/ OPC_CheckChild1Type, MVT::i32, ++/*569242*/ OPC_CheckChild2Integer, 1, ++/*569244*/ OPC_CheckChild2Type, MVT::i32, ++/*569246*/ OPC_CheckChild3Integer, 1, ++/*569248*/ OPC_CheckChild3Type, MVT::i32, ++/*569250*/ OPC_CheckType, MVT::v4i32, ++/*569252*/ OPC_MoveParent, ++/*569253*/ OPC_CheckType, MVT::v4i32, ++/*569255*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*569257*/ OPC_Scope, 8, /*->569267*/ // 2 children in Scope ++/*569259*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 61 ++ // Dst: (VAVG_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*569267*/ /*Scope*/ 8, /*->569276*/ ++/*569268*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 61 ++ // Dst: (VAVG_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*569276*/ 0, /*End of Scope*/ ++/*569277*/ /*Scope*/ 41, /*->569319*/ ++/*569278*/ OPC_CheckChild0Same, 0, ++/*569280*/ OPC_CheckChild1Same, 1, ++/*569282*/ OPC_MoveParent, ++/*569283*/ OPC_MoveParent, ++/*569284*/ OPC_MoveChild1, ++/*569285*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*569288*/ OPC_CheckChild0Integer, 1, ++/*569290*/ OPC_CheckChild0Type, MVT::i32, ++/*569292*/ OPC_CheckChild1Integer, 1, ++/*569294*/ OPC_CheckChild1Type, MVT::i32, ++/*569296*/ OPC_CheckChild2Integer, 1, ++/*569298*/ OPC_CheckChild2Type, MVT::i32, ++/*569300*/ OPC_CheckChild3Integer, 1, ++/*569302*/ OPC_CheckChild3Type, MVT::i32, ++/*569304*/ OPC_CheckType, MVT::v4i32, ++/*569306*/ OPC_MoveParent, ++/*569307*/ OPC_CheckType, MVT::v4i32, ++/*569309*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*569311*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 61 ++ // Dst: (VAVG_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*569319*/ 0, /*End of Scope*/ ++/*569320*/ 0, // EndSwitchOpcode ++/*569321*/ /*Scope*/ 85|128,4/*597*/, /*->569920*/ ++/*569323*/ OPC_RecordChild0, // #0 = $b ++/*569324*/ OPC_MoveChild1, ++/*569325*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*569328*/ OPC_Scope, 17|128,1/*145*/, /*->569476*/ // 4 children in Scope ++/*569331*/ OPC_RecordChild0, // #1 = $a ++/*569332*/ OPC_MoveChild1, ++/*569333*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*569336*/ OPC_MoveChild0, ++/*569337*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*569340*/ OPC_Scope, 66, /*->569408*/ // 2 children in Scope ++/*569342*/ OPC_CheckChild0Same, 1, ++/*569344*/ OPC_CheckChild1Same, 0, ++/*569346*/ OPC_MoveParent, ++/*569347*/ OPC_MoveChild1, ++/*569348*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*569351*/ OPC_CheckChild0Integer, 31, ++/*569353*/ OPC_CheckChild0Type, MVT::i32, ++/*569355*/ OPC_CheckChild1Integer, 31, ++/*569357*/ OPC_CheckChild1Type, MVT::i32, ++/*569359*/ OPC_CheckChild2Integer, 31, ++/*569361*/ OPC_CheckChild2Type, MVT::i32, ++/*569363*/ OPC_CheckChild3Integer, 31, ++/*569365*/ OPC_CheckChild3Type, MVT::i32, ++/*569367*/ OPC_CheckType, MVT::v4i32, ++/*569369*/ OPC_MoveParent, ++/*569370*/ OPC_MoveParent, ++/*569371*/ OPC_MoveParent, ++/*569372*/ OPC_MoveParent, ++/*569373*/ OPC_MoveChild1, ++/*569374*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*569377*/ OPC_CheckChild0Integer, 1, ++/*569379*/ OPC_CheckChild0Type, MVT::i32, ++/*569381*/ OPC_CheckChild1Integer, 1, ++/*569383*/ OPC_CheckChild1Type, MVT::i32, ++/*569385*/ OPC_CheckChild2Integer, 1, ++/*569387*/ OPC_CheckChild2Type, MVT::i32, ++/*569389*/ OPC_CheckChild3Integer, 1, ++/*569391*/ OPC_CheckChild3Type, MVT::i32, ++/*569393*/ OPC_CheckType, MVT::v4i32, ++/*569395*/ OPC_MoveParent, ++/*569396*/ OPC_CheckType, MVT::v4i32, ++/*569398*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*569400*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 61 ++ // Dst: (VAVG_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*569408*/ /*Scope*/ 66, /*->569475*/ ++/*569409*/ OPC_CheckChild0Same, 0, ++/*569411*/ OPC_CheckChild1Same, 1, ++/*569413*/ OPC_MoveParent, ++/*569414*/ OPC_MoveChild1, ++/*569415*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*569418*/ OPC_CheckChild0Integer, 31, ++/*569420*/ OPC_CheckChild0Type, MVT::i32, ++/*569422*/ OPC_CheckChild1Integer, 31, ++/*569424*/ OPC_CheckChild1Type, MVT::i32, ++/*569426*/ OPC_CheckChild2Integer, 31, ++/*569428*/ OPC_CheckChild2Type, MVT::i32, ++/*569430*/ OPC_CheckChild3Integer, 31, ++/*569432*/ OPC_CheckChild3Type, MVT::i32, ++/*569434*/ OPC_CheckType, MVT::v4i32, ++/*569436*/ OPC_MoveParent, ++/*569437*/ OPC_MoveParent, ++/*569438*/ OPC_MoveParent, ++/*569439*/ OPC_MoveParent, ++/*569440*/ OPC_MoveChild1, ++/*569441*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*569444*/ OPC_CheckChild0Integer, 1, ++/*569446*/ OPC_CheckChild0Type, MVT::i32, ++/*569448*/ OPC_CheckChild1Integer, 1, ++/*569450*/ OPC_CheckChild1Type, MVT::i32, ++/*569452*/ OPC_CheckChild2Integer, 1, ++/*569454*/ OPC_CheckChild2Type, MVT::i32, ++/*569456*/ OPC_CheckChild3Integer, 1, ++/*569458*/ OPC_CheckChild3Type, MVT::i32, ++/*569460*/ OPC_CheckType, MVT::v4i32, ++/*569462*/ OPC_MoveParent, ++/*569463*/ OPC_CheckType, MVT::v4i32, ++/*569465*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*569467*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 61 ++ // Dst: (VAVG_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*569475*/ 0, /*End of Scope*/ ++/*569476*/ /*Scope*/ 18|128,1/*146*/, /*->569624*/ ++/*569478*/ OPC_MoveChild0, ++/*569479*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*569482*/ OPC_MoveChild0, ++/*569483*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*569486*/ OPC_Scope, 67, /*->569555*/ // 2 children in Scope ++/*569488*/ OPC_RecordChild0, // #1 = $a ++/*569489*/ OPC_CheckChild1Same, 0, ++/*569491*/ OPC_MoveParent, ++/*569492*/ OPC_MoveChild1, ++/*569493*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*569496*/ OPC_CheckChild0Integer, 31, ++/*569498*/ OPC_CheckChild0Type, MVT::i32, ++/*569500*/ OPC_CheckChild1Integer, 31, ++/*569502*/ OPC_CheckChild1Type, MVT::i32, ++/*569504*/ OPC_CheckChild2Integer, 31, ++/*569506*/ OPC_CheckChild2Type, MVT::i32, ++/*569508*/ OPC_CheckChild3Integer, 31, ++/*569510*/ OPC_CheckChild3Type, MVT::i32, ++/*569512*/ OPC_CheckType, MVT::v4i32, ++/*569514*/ OPC_MoveParent, ++/*569515*/ OPC_MoveParent, ++/*569516*/ OPC_CheckChild1Same, 1, ++/*569518*/ OPC_MoveParent, ++/*569519*/ OPC_MoveParent, ++/*569520*/ OPC_MoveChild1, ++/*569521*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*569524*/ OPC_CheckChild0Integer, 1, ++/*569526*/ OPC_CheckChild0Type, MVT::i32, ++/*569528*/ OPC_CheckChild1Integer, 1, ++/*569530*/ OPC_CheckChild1Type, MVT::i32, ++/*569532*/ OPC_CheckChild2Integer, 1, ++/*569534*/ OPC_CheckChild2Type, MVT::i32, ++/*569536*/ OPC_CheckChild3Integer, 1, ++/*569538*/ OPC_CheckChild3Type, MVT::i32, ++/*569540*/ OPC_CheckType, MVT::v4i32, ++/*569542*/ OPC_MoveParent, ++/*569543*/ OPC_CheckType, MVT::v4i32, ++/*569545*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*569547*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 61 ++ // Dst: (VAVG_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*569555*/ /*Scope*/ 67, /*->569623*/ ++/*569556*/ OPC_CheckChild0Same, 0, ++/*569558*/ OPC_RecordChild1, // #1 = $a ++/*569559*/ OPC_MoveParent, ++/*569560*/ OPC_MoveChild1, ++/*569561*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*569564*/ OPC_CheckChild0Integer, 31, ++/*569566*/ OPC_CheckChild0Type, MVT::i32, ++/*569568*/ OPC_CheckChild1Integer, 31, ++/*569570*/ OPC_CheckChild1Type, MVT::i32, ++/*569572*/ OPC_CheckChild2Integer, 31, ++/*569574*/ OPC_CheckChild2Type, MVT::i32, ++/*569576*/ OPC_CheckChild3Integer, 31, ++/*569578*/ OPC_CheckChild3Type, MVT::i32, ++/*569580*/ OPC_CheckType, MVT::v4i32, ++/*569582*/ OPC_MoveParent, ++/*569583*/ OPC_MoveParent, ++/*569584*/ OPC_CheckChild1Same, 1, ++/*569586*/ OPC_MoveParent, ++/*569587*/ OPC_MoveParent, ++/*569588*/ OPC_MoveChild1, ++/*569589*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*569592*/ OPC_CheckChild0Integer, 1, ++/*569594*/ OPC_CheckChild0Type, MVT::i32, ++/*569596*/ OPC_CheckChild1Integer, 1, ++/*569598*/ OPC_CheckChild1Type, MVT::i32, ++/*569600*/ OPC_CheckChild2Integer, 1, ++/*569602*/ OPC_CheckChild2Type, MVT::i32, ++/*569604*/ OPC_CheckChild3Integer, 1, ++/*569606*/ OPC_CheckChild3Type, MVT::i32, ++/*569608*/ OPC_CheckType, MVT::v4i32, ++/*569610*/ OPC_MoveParent, ++/*569611*/ OPC_CheckType, MVT::v4i32, ++/*569613*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*569615*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$a)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 61 ++ // Dst: (VAVG_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*569623*/ 0, /*End of Scope*/ ++/*569624*/ /*Scope*/ 17|128,1/*145*/, /*->569771*/ ++/*569626*/ OPC_RecordChild0, // #1 = $b ++/*569627*/ OPC_MoveChild1, ++/*569628*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*569631*/ OPC_MoveChild0, ++/*569632*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*569635*/ OPC_Scope, 66, /*->569703*/ // 2 children in Scope ++/*569637*/ OPC_CheckChild0Same, 0, ++/*569639*/ OPC_CheckChild1Same, 1, ++/*569641*/ OPC_MoveParent, ++/*569642*/ OPC_MoveChild1, ++/*569643*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*569646*/ OPC_CheckChild0Integer, 31, ++/*569648*/ OPC_CheckChild0Type, MVT::i32, ++/*569650*/ OPC_CheckChild1Integer, 31, ++/*569652*/ OPC_CheckChild1Type, MVT::i32, ++/*569654*/ OPC_CheckChild2Integer, 31, ++/*569656*/ OPC_CheckChild2Type, MVT::i32, ++/*569658*/ OPC_CheckChild3Integer, 31, ++/*569660*/ OPC_CheckChild3Type, MVT::i32, ++/*569662*/ OPC_CheckType, MVT::v4i32, ++/*569664*/ OPC_MoveParent, ++/*569665*/ OPC_MoveParent, ++/*569666*/ OPC_MoveParent, ++/*569667*/ OPC_MoveParent, ++/*569668*/ OPC_MoveChild1, ++/*569669*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*569672*/ OPC_CheckChild0Integer, 1, ++/*569674*/ OPC_CheckChild0Type, MVT::i32, ++/*569676*/ OPC_CheckChild1Integer, 1, ++/*569678*/ OPC_CheckChild1Type, MVT::i32, ++/*569680*/ OPC_CheckChild2Integer, 1, ++/*569682*/ OPC_CheckChild2Type, MVT::i32, ++/*569684*/ OPC_CheckChild3Integer, 1, ++/*569686*/ OPC_CheckChild3Type, MVT::i32, ++/*569688*/ OPC_CheckType, MVT::v4i32, ++/*569690*/ OPC_MoveParent, ++/*569691*/ OPC_CheckType, MVT::v4i32, ++/*569693*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*569695*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 61 ++ // Dst: (VAVG_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*569703*/ /*Scope*/ 66, /*->569770*/ ++/*569704*/ OPC_CheckChild0Same, 1, ++/*569706*/ OPC_CheckChild1Same, 0, ++/*569708*/ OPC_MoveParent, ++/*569709*/ OPC_MoveChild1, ++/*569710*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*569713*/ OPC_CheckChild0Integer, 31, ++/*569715*/ OPC_CheckChild0Type, MVT::i32, ++/*569717*/ OPC_CheckChild1Integer, 31, ++/*569719*/ OPC_CheckChild1Type, MVT::i32, ++/*569721*/ OPC_CheckChild2Integer, 31, ++/*569723*/ OPC_CheckChild2Type, MVT::i32, ++/*569725*/ OPC_CheckChild3Integer, 31, ++/*569727*/ OPC_CheckChild3Type, MVT::i32, ++/*569729*/ OPC_CheckType, MVT::v4i32, ++/*569731*/ OPC_MoveParent, ++/*569732*/ OPC_MoveParent, ++/*569733*/ OPC_MoveParent, ++/*569734*/ OPC_MoveParent, ++/*569735*/ OPC_MoveChild1, ++/*569736*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*569739*/ OPC_CheckChild0Integer, 1, ++/*569741*/ OPC_CheckChild0Type, MVT::i32, ++/*569743*/ OPC_CheckChild1Integer, 1, ++/*569745*/ OPC_CheckChild1Type, MVT::i32, ++/*569747*/ OPC_CheckChild2Integer, 1, ++/*569749*/ OPC_CheckChild2Type, MVT::i32, ++/*569751*/ OPC_CheckChild3Integer, 1, ++/*569753*/ OPC_CheckChild3Type, MVT::i32, ++/*569755*/ OPC_CheckType, MVT::v4i32, ++/*569757*/ OPC_MoveParent, ++/*569758*/ OPC_CheckType, MVT::v4i32, ++/*569760*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*569762*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })))), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 61 ++ // Dst: (VAVG_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*569770*/ 0, /*End of Scope*/ ++/*569771*/ /*Scope*/ 18|128,1/*146*/, /*->569919*/ ++/*569773*/ OPC_MoveChild0, ++/*569774*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*569777*/ OPC_MoveChild0, ++/*569778*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*569781*/ OPC_Scope, 67, /*->569850*/ // 2 children in Scope ++/*569783*/ OPC_CheckChild0Same, 0, ++/*569785*/ OPC_RecordChild1, // #1 = $b ++/*569786*/ OPC_MoveParent, ++/*569787*/ OPC_MoveChild1, ++/*569788*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*569791*/ OPC_CheckChild0Integer, 31, ++/*569793*/ OPC_CheckChild0Type, MVT::i32, ++/*569795*/ OPC_CheckChild1Integer, 31, ++/*569797*/ OPC_CheckChild1Type, MVT::i32, ++/*569799*/ OPC_CheckChild2Integer, 31, ++/*569801*/ OPC_CheckChild2Type, MVT::i32, ++/*569803*/ OPC_CheckChild3Integer, 31, ++/*569805*/ OPC_CheckChild3Type, MVT::i32, ++/*569807*/ OPC_CheckType, MVT::v4i32, ++/*569809*/ OPC_MoveParent, ++/*569810*/ OPC_MoveParent, ++/*569811*/ OPC_CheckChild1Same, 1, ++/*569813*/ OPC_MoveParent, ++/*569814*/ OPC_MoveParent, ++/*569815*/ OPC_MoveChild1, ++/*569816*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*569819*/ OPC_CheckChild0Integer, 1, ++/*569821*/ OPC_CheckChild0Type, MVT::i32, ++/*569823*/ OPC_CheckChild1Integer, 1, ++/*569825*/ OPC_CheckChild1Type, MVT::i32, ++/*569827*/ OPC_CheckChild2Integer, 1, ++/*569829*/ OPC_CheckChild2Type, MVT::i32, ++/*569831*/ OPC_CheckChild3Integer, 1, ++/*569833*/ OPC_CheckChild3Type, MVT::i32, ++/*569835*/ OPC_CheckType, MVT::v4i32, ++/*569837*/ OPC_MoveParent, ++/*569838*/ OPC_CheckType, MVT::v4i32, ++/*569840*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*569842*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 61 ++ // Dst: (VAVG_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*569850*/ /*Scope*/ 67, /*->569918*/ ++/*569851*/ OPC_RecordChild0, // #1 = $b ++/*569852*/ OPC_CheckChild1Same, 0, ++/*569854*/ OPC_MoveParent, ++/*569855*/ OPC_MoveChild1, ++/*569856*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*569859*/ OPC_CheckChild0Integer, 31, ++/*569861*/ OPC_CheckChild0Type, MVT::i32, ++/*569863*/ OPC_CheckChild1Integer, 31, ++/*569865*/ OPC_CheckChild1Type, MVT::i32, ++/*569867*/ OPC_CheckChild2Integer, 31, ++/*569869*/ OPC_CheckChild2Type, MVT::i32, ++/*569871*/ OPC_CheckChild3Integer, 31, ++/*569873*/ OPC_CheckChild3Type, MVT::i32, ++/*569875*/ OPC_CheckType, MVT::v4i32, ++/*569877*/ OPC_MoveParent, ++/*569878*/ OPC_MoveParent, ++/*569879*/ OPC_CheckChild1Same, 1, ++/*569881*/ OPC_MoveParent, ++/*569882*/ OPC_MoveParent, ++/*569883*/ OPC_MoveChild1, ++/*569884*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*569887*/ OPC_CheckChild0Integer, 1, ++/*569889*/ OPC_CheckChild0Type, MVT::i32, ++/*569891*/ OPC_CheckChild1Integer, 1, ++/*569893*/ OPC_CheckChild1Type, MVT::i32, ++/*569895*/ OPC_CheckChild2Integer, 1, ++/*569897*/ OPC_CheckChild2Type, MVT::i32, ++/*569899*/ OPC_CheckChild3Integer, 1, ++/*569901*/ OPC_CheckChild3Type, MVT::i32, ++/*569903*/ OPC_CheckType, MVT::v4i32, ++/*569905*/ OPC_MoveParent, ++/*569906*/ OPC_CheckType, MVT::v4i32, ++/*569908*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*569910*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, (add:{ *:[v4i32] } (srl:{ *:[v4i32] } (add:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$b, LSX128W:{ *:[v4i32] }:$a), (build_vector:{ *:[v4i32] } 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })), LSX128W:{ *:[v4i32] }:$b)), (build_vector:{ *:[v4i32] } 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] })) - Complexity = 61 ++ // Dst: (VAVG_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*569918*/ 0, /*End of Scope*/ ++/*569919*/ 0, /*End of Scope*/ ++/*569920*/ /*Scope*/ 124|128,6/*892*/, /*->570814*/ ++/*569922*/ OPC_MoveChild0, ++/*569923*/ OPC_SwitchOpcode /*2 cases */, 66|128,5/*706*/, TARGET_VAL(ISD::ADD),// ->570634 ++/*569928*/ OPC_Scope, 53|128,2/*309*/, /*->570240*/ // 4 children in Scope ++/*569931*/ OPC_RecordChild0, // #0 = $a ++/*569932*/ OPC_Scope, 28|128,1/*156*/, /*->570091*/ // 2 children in Scope ++/*569935*/ OPC_RecordChild1, // #1 = $b ++/*569936*/ OPC_MoveParent, ++/*569937*/ OPC_MoveChild1, ++/*569938*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*569941*/ OPC_MoveChild0, ++/*569942*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*569945*/ OPC_Scope, 77, /*->570024*/ // 2 children in Scope ++/*569947*/ OPC_CheckChild0Same, 1, ++/*569949*/ OPC_CheckChild1Same, 0, ++/*569951*/ OPC_MoveParent, ++/*569952*/ OPC_MoveChild1, ++/*569953*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*569956*/ OPC_CheckChild0Integer, 63, ++/*569958*/ OPC_CheckChild0Type, MVT::i64, ++/*569960*/ OPC_CheckChild1Integer, 63, ++/*569962*/ OPC_CheckChild1Type, MVT::i64, ++/*569964*/ OPC_CheckChild2Integer, 63, ++/*569966*/ OPC_CheckChild2Type, MVT::i64, ++/*569968*/ OPC_CheckChild3Integer, 63, ++/*569970*/ OPC_CheckChild3Type, MVT::i64, ++/*569972*/ OPC_CheckType, MVT::v4i64, ++/*569974*/ OPC_MoveParent, ++/*569975*/ OPC_MoveParent, ++/*569976*/ OPC_MoveParent, ++/*569977*/ OPC_MoveChild1, ++/*569978*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*569981*/ OPC_CheckChild0Integer, 1, ++/*569983*/ OPC_CheckChild0Type, MVT::i64, ++/*569985*/ OPC_CheckChild1Integer, 1, ++/*569987*/ OPC_CheckChild1Type, MVT::i64, ++/*569989*/ OPC_CheckChild2Integer, 1, ++/*569991*/ OPC_CheckChild2Type, MVT::i64, ++/*569993*/ OPC_CheckChild3Integer, 1, ++/*569995*/ OPC_CheckChild3Type, MVT::i64, ++/*569997*/ OPC_CheckType, MVT::v4i64, ++/*569999*/ OPC_MoveParent, ++/*570000*/ OPC_CheckType, MVT::v4i64, ++/*570002*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*570004*/ OPC_Scope, 8, /*->570014*/ // 2 children in Scope ++/*570006*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 61 ++ // Dst: (XVAVG_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*570014*/ /*Scope*/ 8, /*->570023*/ ++/*570015*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 61 ++ // Dst: (XVAVG_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*570023*/ 0, /*End of Scope*/ ++/*570024*/ /*Scope*/ 65, /*->570090*/ ++/*570025*/ OPC_CheckChild0Same, 0, ++/*570027*/ OPC_CheckChild1Same, 1, ++/*570029*/ OPC_MoveParent, ++/*570030*/ OPC_MoveChild1, ++/*570031*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*570034*/ OPC_CheckChild0Integer, 63, ++/*570036*/ OPC_CheckChild0Type, MVT::i64, ++/*570038*/ OPC_CheckChild1Integer, 63, ++/*570040*/ OPC_CheckChild1Type, MVT::i64, ++/*570042*/ OPC_CheckChild2Integer, 63, ++/*570044*/ OPC_CheckChild2Type, MVT::i64, ++/*570046*/ OPC_CheckChild3Integer, 63, ++/*570048*/ OPC_CheckChild3Type, MVT::i64, ++/*570050*/ OPC_CheckType, MVT::v4i64, ++/*570052*/ OPC_MoveParent, ++/*570053*/ OPC_MoveParent, ++/*570054*/ OPC_MoveParent, ++/*570055*/ OPC_MoveChild1, ++/*570056*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*570059*/ OPC_CheckChild0Integer, 1, ++/*570061*/ OPC_CheckChild0Type, MVT::i64, ++/*570063*/ OPC_CheckChild1Integer, 1, ++/*570065*/ OPC_CheckChild1Type, MVT::i64, ++/*570067*/ OPC_CheckChild2Integer, 1, ++/*570069*/ OPC_CheckChild2Type, MVT::i64, ++/*570071*/ OPC_CheckChild3Integer, 1, ++/*570073*/ OPC_CheckChild3Type, MVT::i64, ++/*570075*/ OPC_CheckType, MVT::v4i64, ++/*570077*/ OPC_MoveParent, ++/*570078*/ OPC_CheckType, MVT::v4i64, ++/*570080*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*570082*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 61 ++ // Dst: (XVAVG_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*570090*/ 0, /*End of Scope*/ ++/*570091*/ /*Scope*/ 18|128,1/*146*/, /*->570239*/ ++/*570093*/ OPC_MoveChild1, ++/*570094*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*570097*/ OPC_MoveChild0, ++/*570098*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*570101*/ OPC_Scope, 67, /*->570170*/ // 2 children in Scope ++/*570103*/ OPC_CheckChild0Same, 0, ++/*570105*/ OPC_RecordChild1, // #1 = $b ++/*570106*/ OPC_MoveParent, ++/*570107*/ OPC_MoveChild1, ++/*570108*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*570111*/ OPC_CheckChild0Integer, 63, ++/*570113*/ OPC_CheckChild0Type, MVT::i64, ++/*570115*/ OPC_CheckChild1Integer, 63, ++/*570117*/ OPC_CheckChild1Type, MVT::i64, ++/*570119*/ OPC_CheckChild2Integer, 63, ++/*570121*/ OPC_CheckChild2Type, MVT::i64, ++/*570123*/ OPC_CheckChild3Integer, 63, ++/*570125*/ OPC_CheckChild3Type, MVT::i64, ++/*570127*/ OPC_CheckType, MVT::v4i64, ++/*570129*/ OPC_MoveParent, ++/*570130*/ OPC_MoveParent, ++/*570131*/ OPC_MoveParent, ++/*570132*/ OPC_CheckChild1Same, 1, ++/*570134*/ OPC_MoveParent, ++/*570135*/ OPC_MoveChild1, ++/*570136*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*570139*/ OPC_CheckChild0Integer, 1, ++/*570141*/ OPC_CheckChild0Type, MVT::i64, ++/*570143*/ OPC_CheckChild1Integer, 1, ++/*570145*/ OPC_CheckChild1Type, MVT::i64, ++/*570147*/ OPC_CheckChild2Integer, 1, ++/*570149*/ OPC_CheckChild2Type, MVT::i64, ++/*570151*/ OPC_CheckChild3Integer, 1, ++/*570153*/ OPC_CheckChild3Type, MVT::i64, ++/*570155*/ OPC_CheckType, MVT::v4i64, ++/*570157*/ OPC_MoveParent, ++/*570158*/ OPC_CheckType, MVT::v4i64, ++/*570160*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*570162*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 61 ++ // Dst: (XVAVG_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*570170*/ /*Scope*/ 67, /*->570238*/ ++/*570171*/ OPC_RecordChild0, // #1 = $b ++/*570172*/ OPC_CheckChild1Same, 0, ++/*570174*/ OPC_MoveParent, ++/*570175*/ OPC_MoveChild1, ++/*570176*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*570179*/ OPC_CheckChild0Integer, 63, ++/*570181*/ OPC_CheckChild0Type, MVT::i64, ++/*570183*/ OPC_CheckChild1Integer, 63, ++/*570185*/ OPC_CheckChild1Type, MVT::i64, ++/*570187*/ OPC_CheckChild2Integer, 63, ++/*570189*/ OPC_CheckChild2Type, MVT::i64, ++/*570191*/ OPC_CheckChild3Integer, 63, ++/*570193*/ OPC_CheckChild3Type, MVT::i64, ++/*570195*/ OPC_CheckType, MVT::v4i64, ++/*570197*/ OPC_MoveParent, ++/*570198*/ OPC_MoveParent, ++/*570199*/ OPC_MoveParent, ++/*570200*/ OPC_CheckChild1Same, 1, ++/*570202*/ OPC_MoveParent, ++/*570203*/ OPC_MoveChild1, ++/*570204*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*570207*/ OPC_CheckChild0Integer, 1, ++/*570209*/ OPC_CheckChild0Type, MVT::i64, ++/*570211*/ OPC_CheckChild1Integer, 1, ++/*570213*/ OPC_CheckChild1Type, MVT::i64, ++/*570215*/ OPC_CheckChild2Integer, 1, ++/*570217*/ OPC_CheckChild2Type, MVT::i64, ++/*570219*/ OPC_CheckChild3Integer, 1, ++/*570221*/ OPC_CheckChild3Type, MVT::i64, ++/*570223*/ OPC_CheckType, MVT::v4i64, ++/*570225*/ OPC_MoveParent, ++/*570226*/ OPC_CheckType, MVT::v4i64, ++/*570228*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*570230*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 61 ++ // Dst: (XVAVG_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*570238*/ 0, /*End of Scope*/ ++/*570239*/ 0, /*End of Scope*/ ++/*570240*/ /*Scope*/ 121, /*->570362*/ ++/*570241*/ OPC_MoveChild0, ++/*570242*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*570245*/ OPC_MoveChild0, ++/*570246*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*570249*/ OPC_RecordChild0, // #0 = $a ++/*570250*/ OPC_RecordChild1, // #1 = $b ++/*570251*/ OPC_MoveParent, ++/*570252*/ OPC_MoveChild1, ++/*570253*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*570256*/ OPC_CheckChild0Integer, 63, ++/*570258*/ OPC_CheckChild0Type, MVT::i64, ++/*570260*/ OPC_CheckChild1Integer, 63, ++/*570262*/ OPC_CheckChild1Type, MVT::i64, ++/*570264*/ OPC_CheckChild2Integer, 63, ++/*570266*/ OPC_CheckChild2Type, MVT::i64, ++/*570268*/ OPC_CheckChild3Integer, 63, ++/*570270*/ OPC_CheckChild3Type, MVT::i64, ++/*570272*/ OPC_CheckType, MVT::v4i64, ++/*570274*/ OPC_MoveParent, ++/*570275*/ OPC_MoveParent, ++/*570276*/ OPC_Scope, 41, /*->570319*/ // 2 children in Scope ++/*570278*/ OPC_CheckChild1Same, 0, ++/*570280*/ OPC_MoveParent, ++/*570281*/ OPC_CheckChild1Same, 1, ++/*570283*/ OPC_MoveParent, ++/*570284*/ OPC_MoveChild1, ++/*570285*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*570288*/ OPC_CheckChild0Integer, 1, ++/*570290*/ OPC_CheckChild0Type, MVT::i64, ++/*570292*/ OPC_CheckChild1Integer, 1, ++/*570294*/ OPC_CheckChild1Type, MVT::i64, ++/*570296*/ OPC_CheckChild2Integer, 1, ++/*570298*/ OPC_CheckChild2Type, MVT::i64, ++/*570300*/ OPC_CheckChild3Integer, 1, ++/*570302*/ OPC_CheckChild3Type, MVT::i64, ++/*570304*/ OPC_CheckType, MVT::v4i64, ++/*570306*/ OPC_MoveParent, ++/*570307*/ OPC_CheckType, MVT::v4i64, ++/*570309*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*570311*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$a), LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 61 ++ // Dst: (XVAVG_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*570319*/ /*Scope*/ 41, /*->570361*/ ++/*570320*/ OPC_CheckChild1Same, 1, ++/*570322*/ OPC_MoveParent, ++/*570323*/ OPC_CheckChild1Same, 0, ++/*570325*/ OPC_MoveParent, ++/*570326*/ OPC_MoveChild1, ++/*570327*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*570330*/ OPC_CheckChild0Integer, 1, ++/*570332*/ OPC_CheckChild0Type, MVT::i64, ++/*570334*/ OPC_CheckChild1Integer, 1, ++/*570336*/ OPC_CheckChild1Type, MVT::i64, ++/*570338*/ OPC_CheckChild2Integer, 1, ++/*570340*/ OPC_CheckChild2Type, MVT::i64, ++/*570342*/ OPC_CheckChild3Integer, 1, ++/*570344*/ OPC_CheckChild3Type, MVT::i64, ++/*570346*/ OPC_CheckType, MVT::v4i64, ++/*570348*/ OPC_MoveParent, ++/*570349*/ OPC_CheckType, MVT::v4i64, ++/*570351*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*570353*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$a), LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 61 ++ // Dst: (XVAVG_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*570361*/ 0, /*End of Scope*/ ++/*570362*/ /*Scope*/ 19|128,1/*147*/, /*->570511*/ ++/*570364*/ OPC_RecordChild0, // #0 = $b ++/*570365*/ OPC_MoveChild1, ++/*570366*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*570369*/ OPC_MoveChild0, ++/*570370*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*570373*/ OPC_Scope, 67, /*->570442*/ // 2 children in Scope ++/*570375*/ OPC_RecordChild0, // #1 = $a ++/*570376*/ OPC_CheckChild1Same, 0, ++/*570378*/ OPC_MoveParent, ++/*570379*/ OPC_MoveChild1, ++/*570380*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*570383*/ OPC_CheckChild0Integer, 63, ++/*570385*/ OPC_CheckChild0Type, MVT::i64, ++/*570387*/ OPC_CheckChild1Integer, 63, ++/*570389*/ OPC_CheckChild1Type, MVT::i64, ++/*570391*/ OPC_CheckChild2Integer, 63, ++/*570393*/ OPC_CheckChild2Type, MVT::i64, ++/*570395*/ OPC_CheckChild3Integer, 63, ++/*570397*/ OPC_CheckChild3Type, MVT::i64, ++/*570399*/ OPC_CheckType, MVT::v4i64, ++/*570401*/ OPC_MoveParent, ++/*570402*/ OPC_MoveParent, ++/*570403*/ OPC_MoveParent, ++/*570404*/ OPC_CheckChild1Same, 1, ++/*570406*/ OPC_MoveParent, ++/*570407*/ OPC_MoveChild1, ++/*570408*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*570411*/ OPC_CheckChild0Integer, 1, ++/*570413*/ OPC_CheckChild0Type, MVT::i64, ++/*570415*/ OPC_CheckChild1Integer, 1, ++/*570417*/ OPC_CheckChild1Type, MVT::i64, ++/*570419*/ OPC_CheckChild2Integer, 1, ++/*570421*/ OPC_CheckChild2Type, MVT::i64, ++/*570423*/ OPC_CheckChild3Integer, 1, ++/*570425*/ OPC_CheckChild3Type, MVT::i64, ++/*570427*/ OPC_CheckType, MVT::v4i64, ++/*570429*/ OPC_MoveParent, ++/*570430*/ OPC_CheckType, MVT::v4i64, ++/*570432*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*570434*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 61 ++ // Dst: (XVAVG_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*570442*/ /*Scope*/ 67, /*->570510*/ ++/*570443*/ OPC_CheckChild0Same, 0, ++/*570445*/ OPC_RecordChild1, // #1 = $a ++/*570446*/ OPC_MoveParent, ++/*570447*/ OPC_MoveChild1, ++/*570448*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*570451*/ OPC_CheckChild0Integer, 63, ++/*570453*/ OPC_CheckChild0Type, MVT::i64, ++/*570455*/ OPC_CheckChild1Integer, 63, ++/*570457*/ OPC_CheckChild1Type, MVT::i64, ++/*570459*/ OPC_CheckChild2Integer, 63, ++/*570461*/ OPC_CheckChild2Type, MVT::i64, ++/*570463*/ OPC_CheckChild3Integer, 63, ++/*570465*/ OPC_CheckChild3Type, MVT::i64, ++/*570467*/ OPC_CheckType, MVT::v4i64, ++/*570469*/ OPC_MoveParent, ++/*570470*/ OPC_MoveParent, ++/*570471*/ OPC_MoveParent, ++/*570472*/ OPC_CheckChild1Same, 1, ++/*570474*/ OPC_MoveParent, ++/*570475*/ OPC_MoveChild1, ++/*570476*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*570479*/ OPC_CheckChild0Integer, 1, ++/*570481*/ OPC_CheckChild0Type, MVT::i64, ++/*570483*/ OPC_CheckChild1Integer, 1, ++/*570485*/ OPC_CheckChild1Type, MVT::i64, ++/*570487*/ OPC_CheckChild2Integer, 1, ++/*570489*/ OPC_CheckChild2Type, MVT::i64, ++/*570491*/ OPC_CheckChild3Integer, 1, ++/*570493*/ OPC_CheckChild3Type, MVT::i64, ++/*570495*/ OPC_CheckType, MVT::v4i64, ++/*570497*/ OPC_MoveParent, ++/*570498*/ OPC_CheckType, MVT::v4i64, ++/*570500*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*570502*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }))), LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 61 ++ // Dst: (XVAVG_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*570510*/ 0, /*End of Scope*/ ++/*570511*/ /*Scope*/ 121, /*->570633*/ ++/*570512*/ OPC_MoveChild0, ++/*570513*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*570516*/ OPC_MoveChild0, ++/*570517*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*570520*/ OPC_RecordChild0, // #0 = $a ++/*570521*/ OPC_RecordChild1, // #1 = $b ++/*570522*/ OPC_MoveParent, ++/*570523*/ OPC_MoveChild1, ++/*570524*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*570527*/ OPC_CheckChild0Integer, 63, ++/*570529*/ OPC_CheckChild0Type, MVT::i64, ++/*570531*/ OPC_CheckChild1Integer, 63, ++/*570533*/ OPC_CheckChild1Type, MVT::i64, ++/*570535*/ OPC_CheckChild2Integer, 63, ++/*570537*/ OPC_CheckChild2Type, MVT::i64, ++/*570539*/ OPC_CheckChild3Integer, 63, ++/*570541*/ OPC_CheckChild3Type, MVT::i64, ++/*570543*/ OPC_CheckType, MVT::v4i64, ++/*570545*/ OPC_MoveParent, ++/*570546*/ OPC_MoveParent, ++/*570547*/ OPC_Scope, 41, /*->570590*/ // 2 children in Scope ++/*570549*/ OPC_CheckChild1Same, 1, ++/*570551*/ OPC_MoveParent, ++/*570552*/ OPC_CheckChild1Same, 0, ++/*570554*/ OPC_MoveParent, ++/*570555*/ OPC_MoveChild1, ++/*570556*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*570559*/ OPC_CheckChild0Integer, 1, ++/*570561*/ OPC_CheckChild0Type, MVT::i64, ++/*570563*/ OPC_CheckChild1Integer, 1, ++/*570565*/ OPC_CheckChild1Type, MVT::i64, ++/*570567*/ OPC_CheckChild2Integer, 1, ++/*570569*/ OPC_CheckChild2Type, MVT::i64, ++/*570571*/ OPC_CheckChild3Integer, 1, ++/*570573*/ OPC_CheckChild3Type, MVT::i64, ++/*570575*/ OPC_CheckType, MVT::v4i64, ++/*570577*/ OPC_MoveParent, ++/*570578*/ OPC_CheckType, MVT::v4i64, ++/*570580*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*570582*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$b), LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 61 ++ // Dst: (XVAVG_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*570590*/ /*Scope*/ 41, /*->570632*/ ++/*570591*/ OPC_CheckChild1Same, 0, ++/*570593*/ OPC_MoveParent, ++/*570594*/ OPC_CheckChild1Same, 1, ++/*570596*/ OPC_MoveParent, ++/*570597*/ OPC_MoveChild1, ++/*570598*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*570601*/ OPC_CheckChild0Integer, 1, ++/*570603*/ OPC_CheckChild0Type, MVT::i64, ++/*570605*/ OPC_CheckChild1Integer, 1, ++/*570607*/ OPC_CheckChild1Type, MVT::i64, ++/*570609*/ OPC_CheckChild2Integer, 1, ++/*570611*/ OPC_CheckChild2Type, MVT::i64, ++/*570613*/ OPC_CheckChild3Integer, 1, ++/*570615*/ OPC_CheckChild3Type, MVT::i64, ++/*570617*/ OPC_CheckType, MVT::v4i64, ++/*570619*/ OPC_MoveParent, ++/*570620*/ OPC_CheckType, MVT::v4i64, ++/*570622*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*570624*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$b), LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 61 ++ // Dst: (XVAVG_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*570632*/ 0, /*End of Scope*/ ++/*570633*/ 0, /*End of Scope*/ ++/*570634*/ /*SwitchOpcode*/ 47|128,1/*175*/, TARGET_VAL(ISD::SRL),// ->570813 ++/*570638*/ OPC_MoveChild0, ++/*570639*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*570642*/ OPC_RecordChild0, // #0 = $a ++/*570643*/ OPC_RecordChild1, // #1 = $b ++/*570644*/ OPC_MoveParent, ++/*570645*/ OPC_MoveChild1, ++/*570646*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*570649*/ OPC_CheckChild0Integer, 63, ++/*570651*/ OPC_CheckChild0Type, MVT::i64, ++/*570653*/ OPC_CheckChild1Integer, 63, ++/*570655*/ OPC_CheckChild1Type, MVT::i64, ++/*570657*/ OPC_CheckChild2Integer, 63, ++/*570659*/ OPC_CheckChild2Type, MVT::i64, ++/*570661*/ OPC_CheckChild3Integer, 63, ++/*570663*/ OPC_CheckChild3Type, MVT::i64, ++/*570665*/ OPC_CheckType, MVT::v4i64, ++/*570667*/ OPC_MoveParent, ++/*570668*/ OPC_MoveParent, ++/*570669*/ OPC_MoveChild1, ++/*570670*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*570673*/ OPC_Scope, 41, /*->570716*/ // 3 children in Scope ++/*570675*/ OPC_CheckChild0Same, 0, ++/*570677*/ OPC_CheckChild1Same, 1, ++/*570679*/ OPC_MoveParent, ++/*570680*/ OPC_MoveParent, ++/*570681*/ OPC_MoveChild1, ++/*570682*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*570685*/ OPC_CheckChild0Integer, 1, ++/*570687*/ OPC_CheckChild0Type, MVT::i64, ++/*570689*/ OPC_CheckChild1Integer, 1, ++/*570691*/ OPC_CheckChild1Type, MVT::i64, ++/*570693*/ OPC_CheckChild2Integer, 1, ++/*570695*/ OPC_CheckChild2Type, MVT::i64, ++/*570697*/ OPC_CheckChild3Integer, 1, ++/*570699*/ OPC_CheckChild3Type, MVT::i64, ++/*570701*/ OPC_CheckType, MVT::v4i64, ++/*570703*/ OPC_MoveParent, ++/*570704*/ OPC_CheckType, MVT::v4i64, ++/*570706*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*570708*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 61 ++ // Dst: (XVAVG_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*570716*/ /*Scope*/ 53, /*->570770*/ ++/*570717*/ OPC_CheckChild0Same, 1, ++/*570719*/ OPC_CheckChild1Same, 0, ++/*570721*/ OPC_MoveParent, ++/*570722*/ OPC_MoveParent, ++/*570723*/ OPC_MoveChild1, ++/*570724*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*570727*/ OPC_CheckChild0Integer, 1, ++/*570729*/ OPC_CheckChild0Type, MVT::i64, ++/*570731*/ OPC_CheckChild1Integer, 1, ++/*570733*/ OPC_CheckChild1Type, MVT::i64, ++/*570735*/ OPC_CheckChild2Integer, 1, ++/*570737*/ OPC_CheckChild2Type, MVT::i64, ++/*570739*/ OPC_CheckChild3Integer, 1, ++/*570741*/ OPC_CheckChild3Type, MVT::i64, ++/*570743*/ OPC_CheckType, MVT::v4i64, ++/*570745*/ OPC_MoveParent, ++/*570746*/ OPC_CheckType, MVT::v4i64, ++/*570748*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*570750*/ OPC_Scope, 8, /*->570760*/ // 2 children in Scope ++/*570752*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 61 ++ // Dst: (XVAVG_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*570760*/ /*Scope*/ 8, /*->570769*/ ++/*570761*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 61 ++ // Dst: (XVAVG_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*570769*/ 0, /*End of Scope*/ ++/*570770*/ /*Scope*/ 41, /*->570812*/ ++/*570771*/ OPC_CheckChild0Same, 0, ++/*570773*/ OPC_CheckChild1Same, 1, ++/*570775*/ OPC_MoveParent, ++/*570776*/ OPC_MoveParent, ++/*570777*/ OPC_MoveChild1, ++/*570778*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*570781*/ OPC_CheckChild0Integer, 1, ++/*570783*/ OPC_CheckChild0Type, MVT::i64, ++/*570785*/ OPC_CheckChild1Integer, 1, ++/*570787*/ OPC_CheckChild1Type, MVT::i64, ++/*570789*/ OPC_CheckChild2Integer, 1, ++/*570791*/ OPC_CheckChild2Type, MVT::i64, ++/*570793*/ OPC_CheckChild3Integer, 1, ++/*570795*/ OPC_CheckChild3Type, MVT::i64, ++/*570797*/ OPC_CheckType, MVT::v4i64, ++/*570799*/ OPC_MoveParent, ++/*570800*/ OPC_CheckType, MVT::v4i64, ++/*570802*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*570804*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 61 ++ // Dst: (XVAVG_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*570812*/ 0, /*End of Scope*/ ++/*570813*/ 0, // EndSwitchOpcode ++/*570814*/ /*Scope*/ 85|128,4/*597*/, /*->571413*/ ++/*570816*/ OPC_RecordChild0, // #0 = $b ++/*570817*/ OPC_MoveChild1, ++/*570818*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*570821*/ OPC_Scope, 17|128,1/*145*/, /*->570969*/ // 4 children in Scope ++/*570824*/ OPC_RecordChild0, // #1 = $a ++/*570825*/ OPC_MoveChild1, ++/*570826*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*570829*/ OPC_MoveChild0, ++/*570830*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*570833*/ OPC_Scope, 66, /*->570901*/ // 2 children in Scope ++/*570835*/ OPC_CheckChild0Same, 1, ++/*570837*/ OPC_CheckChild1Same, 0, ++/*570839*/ OPC_MoveParent, ++/*570840*/ OPC_MoveChild1, ++/*570841*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*570844*/ OPC_CheckChild0Integer, 63, ++/*570846*/ OPC_CheckChild0Type, MVT::i64, ++/*570848*/ OPC_CheckChild1Integer, 63, ++/*570850*/ OPC_CheckChild1Type, MVT::i64, ++/*570852*/ OPC_CheckChild2Integer, 63, ++/*570854*/ OPC_CheckChild2Type, MVT::i64, ++/*570856*/ OPC_CheckChild3Integer, 63, ++/*570858*/ OPC_CheckChild3Type, MVT::i64, ++/*570860*/ OPC_CheckType, MVT::v4i64, ++/*570862*/ OPC_MoveParent, ++/*570863*/ OPC_MoveParent, ++/*570864*/ OPC_MoveParent, ++/*570865*/ OPC_MoveParent, ++/*570866*/ OPC_MoveChild1, ++/*570867*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*570870*/ OPC_CheckChild0Integer, 1, ++/*570872*/ OPC_CheckChild0Type, MVT::i64, ++/*570874*/ OPC_CheckChild1Integer, 1, ++/*570876*/ OPC_CheckChild1Type, MVT::i64, ++/*570878*/ OPC_CheckChild2Integer, 1, ++/*570880*/ OPC_CheckChild2Type, MVT::i64, ++/*570882*/ OPC_CheckChild3Integer, 1, ++/*570884*/ OPC_CheckChild3Type, MVT::i64, ++/*570886*/ OPC_CheckType, MVT::v4i64, ++/*570888*/ OPC_MoveParent, ++/*570889*/ OPC_CheckType, MVT::v4i64, ++/*570891*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*570893*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 61 ++ // Dst: (XVAVG_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*570901*/ /*Scope*/ 66, /*->570968*/ ++/*570902*/ OPC_CheckChild0Same, 0, ++/*570904*/ OPC_CheckChild1Same, 1, ++/*570906*/ OPC_MoveParent, ++/*570907*/ OPC_MoveChild1, ++/*570908*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*570911*/ OPC_CheckChild0Integer, 63, ++/*570913*/ OPC_CheckChild0Type, MVT::i64, ++/*570915*/ OPC_CheckChild1Integer, 63, ++/*570917*/ OPC_CheckChild1Type, MVT::i64, ++/*570919*/ OPC_CheckChild2Integer, 63, ++/*570921*/ OPC_CheckChild2Type, MVT::i64, ++/*570923*/ OPC_CheckChild3Integer, 63, ++/*570925*/ OPC_CheckChild3Type, MVT::i64, ++/*570927*/ OPC_CheckType, MVT::v4i64, ++/*570929*/ OPC_MoveParent, ++/*570930*/ OPC_MoveParent, ++/*570931*/ OPC_MoveParent, ++/*570932*/ OPC_MoveParent, ++/*570933*/ OPC_MoveChild1, ++/*570934*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*570937*/ OPC_CheckChild0Integer, 1, ++/*570939*/ OPC_CheckChild0Type, MVT::i64, ++/*570941*/ OPC_CheckChild1Integer, 1, ++/*570943*/ OPC_CheckChild1Type, MVT::i64, ++/*570945*/ OPC_CheckChild2Integer, 1, ++/*570947*/ OPC_CheckChild2Type, MVT::i64, ++/*570949*/ OPC_CheckChild3Integer, 1, ++/*570951*/ OPC_CheckChild3Type, MVT::i64, ++/*570953*/ OPC_CheckType, MVT::v4i64, ++/*570955*/ OPC_MoveParent, ++/*570956*/ OPC_CheckType, MVT::v4i64, ++/*570958*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*570960*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 61 ++ // Dst: (XVAVG_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*570968*/ 0, /*End of Scope*/ ++/*570969*/ /*Scope*/ 18|128,1/*146*/, /*->571117*/ ++/*570971*/ OPC_MoveChild0, ++/*570972*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*570975*/ OPC_MoveChild0, ++/*570976*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*570979*/ OPC_Scope, 67, /*->571048*/ // 2 children in Scope ++/*570981*/ OPC_RecordChild0, // #1 = $a ++/*570982*/ OPC_CheckChild1Same, 0, ++/*570984*/ OPC_MoveParent, ++/*570985*/ OPC_MoveChild1, ++/*570986*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*570989*/ OPC_CheckChild0Integer, 63, ++/*570991*/ OPC_CheckChild0Type, MVT::i64, ++/*570993*/ OPC_CheckChild1Integer, 63, ++/*570995*/ OPC_CheckChild1Type, MVT::i64, ++/*570997*/ OPC_CheckChild2Integer, 63, ++/*570999*/ OPC_CheckChild2Type, MVT::i64, ++/*571001*/ OPC_CheckChild3Integer, 63, ++/*571003*/ OPC_CheckChild3Type, MVT::i64, ++/*571005*/ OPC_CheckType, MVT::v4i64, ++/*571007*/ OPC_MoveParent, ++/*571008*/ OPC_MoveParent, ++/*571009*/ OPC_CheckChild1Same, 1, ++/*571011*/ OPC_MoveParent, ++/*571012*/ OPC_MoveParent, ++/*571013*/ OPC_MoveChild1, ++/*571014*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*571017*/ OPC_CheckChild0Integer, 1, ++/*571019*/ OPC_CheckChild0Type, MVT::i64, ++/*571021*/ OPC_CheckChild1Integer, 1, ++/*571023*/ OPC_CheckChild1Type, MVT::i64, ++/*571025*/ OPC_CheckChild2Integer, 1, ++/*571027*/ OPC_CheckChild2Type, MVT::i64, ++/*571029*/ OPC_CheckChild3Integer, 1, ++/*571031*/ OPC_CheckChild3Type, MVT::i64, ++/*571033*/ OPC_CheckType, MVT::v4i64, ++/*571035*/ OPC_MoveParent, ++/*571036*/ OPC_CheckType, MVT::v4i64, ++/*571038*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*571040*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 61 ++ // Dst: (XVAVG_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*571048*/ /*Scope*/ 67, /*->571116*/ ++/*571049*/ OPC_CheckChild0Same, 0, ++/*571051*/ OPC_RecordChild1, // #1 = $a ++/*571052*/ OPC_MoveParent, ++/*571053*/ OPC_MoveChild1, ++/*571054*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*571057*/ OPC_CheckChild0Integer, 63, ++/*571059*/ OPC_CheckChild0Type, MVT::i64, ++/*571061*/ OPC_CheckChild1Integer, 63, ++/*571063*/ OPC_CheckChild1Type, MVT::i64, ++/*571065*/ OPC_CheckChild2Integer, 63, ++/*571067*/ OPC_CheckChild2Type, MVT::i64, ++/*571069*/ OPC_CheckChild3Integer, 63, ++/*571071*/ OPC_CheckChild3Type, MVT::i64, ++/*571073*/ OPC_CheckType, MVT::v4i64, ++/*571075*/ OPC_MoveParent, ++/*571076*/ OPC_MoveParent, ++/*571077*/ OPC_CheckChild1Same, 1, ++/*571079*/ OPC_MoveParent, ++/*571080*/ OPC_MoveParent, ++/*571081*/ OPC_MoveChild1, ++/*571082*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*571085*/ OPC_CheckChild0Integer, 1, ++/*571087*/ OPC_CheckChild0Type, MVT::i64, ++/*571089*/ OPC_CheckChild1Integer, 1, ++/*571091*/ OPC_CheckChild1Type, MVT::i64, ++/*571093*/ OPC_CheckChild2Integer, 1, ++/*571095*/ OPC_CheckChild2Type, MVT::i64, ++/*571097*/ OPC_CheckChild3Integer, 1, ++/*571099*/ OPC_CheckChild3Type, MVT::i64, ++/*571101*/ OPC_CheckType, MVT::v4i64, ++/*571103*/ OPC_MoveParent, ++/*571104*/ OPC_CheckType, MVT::v4i64, ++/*571106*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*571108*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$a)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 61 ++ // Dst: (XVAVG_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*571116*/ 0, /*End of Scope*/ ++/*571117*/ /*Scope*/ 17|128,1/*145*/, /*->571264*/ ++/*571119*/ OPC_RecordChild0, // #1 = $b ++/*571120*/ OPC_MoveChild1, ++/*571121*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*571124*/ OPC_MoveChild0, ++/*571125*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*571128*/ OPC_Scope, 66, /*->571196*/ // 2 children in Scope ++/*571130*/ OPC_CheckChild0Same, 0, ++/*571132*/ OPC_CheckChild1Same, 1, ++/*571134*/ OPC_MoveParent, ++/*571135*/ OPC_MoveChild1, ++/*571136*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*571139*/ OPC_CheckChild0Integer, 63, ++/*571141*/ OPC_CheckChild0Type, MVT::i64, ++/*571143*/ OPC_CheckChild1Integer, 63, ++/*571145*/ OPC_CheckChild1Type, MVT::i64, ++/*571147*/ OPC_CheckChild2Integer, 63, ++/*571149*/ OPC_CheckChild2Type, MVT::i64, ++/*571151*/ OPC_CheckChild3Integer, 63, ++/*571153*/ OPC_CheckChild3Type, MVT::i64, ++/*571155*/ OPC_CheckType, MVT::v4i64, ++/*571157*/ OPC_MoveParent, ++/*571158*/ OPC_MoveParent, ++/*571159*/ OPC_MoveParent, ++/*571160*/ OPC_MoveParent, ++/*571161*/ OPC_MoveChild1, ++/*571162*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*571165*/ OPC_CheckChild0Integer, 1, ++/*571167*/ OPC_CheckChild0Type, MVT::i64, ++/*571169*/ OPC_CheckChild1Integer, 1, ++/*571171*/ OPC_CheckChild1Type, MVT::i64, ++/*571173*/ OPC_CheckChild2Integer, 1, ++/*571175*/ OPC_CheckChild2Type, MVT::i64, ++/*571177*/ OPC_CheckChild3Integer, 1, ++/*571179*/ OPC_CheckChild3Type, MVT::i64, ++/*571181*/ OPC_CheckType, MVT::v4i64, ++/*571183*/ OPC_MoveParent, ++/*571184*/ OPC_CheckType, MVT::v4i64, ++/*571186*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*571188*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 61 ++ // Dst: (XVAVG_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*571196*/ /*Scope*/ 66, /*->571263*/ ++/*571197*/ OPC_CheckChild0Same, 1, ++/*571199*/ OPC_CheckChild1Same, 0, ++/*571201*/ OPC_MoveParent, ++/*571202*/ OPC_MoveChild1, ++/*571203*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*571206*/ OPC_CheckChild0Integer, 63, ++/*571208*/ OPC_CheckChild0Type, MVT::i64, ++/*571210*/ OPC_CheckChild1Integer, 63, ++/*571212*/ OPC_CheckChild1Type, MVT::i64, ++/*571214*/ OPC_CheckChild2Integer, 63, ++/*571216*/ OPC_CheckChild2Type, MVT::i64, ++/*571218*/ OPC_CheckChild3Integer, 63, ++/*571220*/ OPC_CheckChild3Type, MVT::i64, ++/*571222*/ OPC_CheckType, MVT::v4i64, ++/*571224*/ OPC_MoveParent, ++/*571225*/ OPC_MoveParent, ++/*571226*/ OPC_MoveParent, ++/*571227*/ OPC_MoveParent, ++/*571228*/ OPC_MoveChild1, ++/*571229*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*571232*/ OPC_CheckChild0Integer, 1, ++/*571234*/ OPC_CheckChild0Type, MVT::i64, ++/*571236*/ OPC_CheckChild1Integer, 1, ++/*571238*/ OPC_CheckChild1Type, MVT::i64, ++/*571240*/ OPC_CheckChild2Integer, 1, ++/*571242*/ OPC_CheckChild2Type, MVT::i64, ++/*571244*/ OPC_CheckChild3Integer, 1, ++/*571246*/ OPC_CheckChild3Type, MVT::i64, ++/*571248*/ OPC_CheckType, MVT::v4i64, ++/*571250*/ OPC_MoveParent, ++/*571251*/ OPC_CheckType, MVT::v4i64, ++/*571253*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*571255*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })))), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 61 ++ // Dst: (XVAVG_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*571263*/ 0, /*End of Scope*/ ++/*571264*/ /*Scope*/ 18|128,1/*146*/, /*->571412*/ ++/*571266*/ OPC_MoveChild0, ++/*571267*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*571270*/ OPC_MoveChild0, ++/*571271*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*571274*/ OPC_Scope, 67, /*->571343*/ // 2 children in Scope ++/*571276*/ OPC_CheckChild0Same, 0, ++/*571278*/ OPC_RecordChild1, // #1 = $b ++/*571279*/ OPC_MoveParent, ++/*571280*/ OPC_MoveChild1, ++/*571281*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*571284*/ OPC_CheckChild0Integer, 63, ++/*571286*/ OPC_CheckChild0Type, MVT::i64, ++/*571288*/ OPC_CheckChild1Integer, 63, ++/*571290*/ OPC_CheckChild1Type, MVT::i64, ++/*571292*/ OPC_CheckChild2Integer, 63, ++/*571294*/ OPC_CheckChild2Type, MVT::i64, ++/*571296*/ OPC_CheckChild3Integer, 63, ++/*571298*/ OPC_CheckChild3Type, MVT::i64, ++/*571300*/ OPC_CheckType, MVT::v4i64, ++/*571302*/ OPC_MoveParent, ++/*571303*/ OPC_MoveParent, ++/*571304*/ OPC_CheckChild1Same, 1, ++/*571306*/ OPC_MoveParent, ++/*571307*/ OPC_MoveParent, ++/*571308*/ OPC_MoveChild1, ++/*571309*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*571312*/ OPC_CheckChild0Integer, 1, ++/*571314*/ OPC_CheckChild0Type, MVT::i64, ++/*571316*/ OPC_CheckChild1Integer, 1, ++/*571318*/ OPC_CheckChild1Type, MVT::i64, ++/*571320*/ OPC_CheckChild2Integer, 1, ++/*571322*/ OPC_CheckChild2Type, MVT::i64, ++/*571324*/ OPC_CheckChild3Integer, 1, ++/*571326*/ OPC_CheckChild3Type, MVT::i64, ++/*571328*/ OPC_CheckType, MVT::v4i64, ++/*571330*/ OPC_MoveParent, ++/*571331*/ OPC_CheckType, MVT::v4i64, ++/*571333*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*571335*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 61 ++ // Dst: (XVAVG_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*571343*/ /*Scope*/ 67, /*->571411*/ ++/*571344*/ OPC_RecordChild0, // #1 = $b ++/*571345*/ OPC_CheckChild1Same, 0, ++/*571347*/ OPC_MoveParent, ++/*571348*/ OPC_MoveChild1, ++/*571349*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*571352*/ OPC_CheckChild0Integer, 63, ++/*571354*/ OPC_CheckChild0Type, MVT::i64, ++/*571356*/ OPC_CheckChild1Integer, 63, ++/*571358*/ OPC_CheckChild1Type, MVT::i64, ++/*571360*/ OPC_CheckChild2Integer, 63, ++/*571362*/ OPC_CheckChild2Type, MVT::i64, ++/*571364*/ OPC_CheckChild3Integer, 63, ++/*571366*/ OPC_CheckChild3Type, MVT::i64, ++/*571368*/ OPC_CheckType, MVT::v4i64, ++/*571370*/ OPC_MoveParent, ++/*571371*/ OPC_MoveParent, ++/*571372*/ OPC_CheckChild1Same, 1, ++/*571374*/ OPC_MoveParent, ++/*571375*/ OPC_MoveParent, ++/*571376*/ OPC_MoveChild1, ++/*571377*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*571380*/ OPC_CheckChild0Integer, 1, ++/*571382*/ OPC_CheckChild0Type, MVT::i64, ++/*571384*/ OPC_CheckChild1Integer, 1, ++/*571386*/ OPC_CheckChild1Type, MVT::i64, ++/*571388*/ OPC_CheckChild2Integer, 1, ++/*571390*/ OPC_CheckChild2Type, MVT::i64, ++/*571392*/ OPC_CheckChild3Integer, 1, ++/*571394*/ OPC_CheckChild3Type, MVT::i64, ++/*571396*/ OPC_CheckType, MVT::v4i64, ++/*571398*/ OPC_MoveParent, ++/*571399*/ OPC_CheckType, MVT::v4i64, ++/*571401*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*571403*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVAVG_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (add:{ *:[v4i64] } (srl:{ *:[v4i64] } (add:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$b, LASX256D:{ *:[v4i64] }:$a), (build_vector:{ *:[v4i64] } 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] }, 63:{ *:[i64] })), LASX256D:{ *:[v4i64] }:$b)), (build_vector:{ *:[v4i64] } 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 61 ++ // Dst: (XVAVG_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*571411*/ 0, /*End of Scope*/ ++/*571412*/ 0, /*End of Scope*/ ++/*571413*/ 0, /*End of Scope*/ ++/*571414*/ /*Scope*/ 98, /*->571513*/ ++/*571415*/ OPC_RecordChild0, // #0 = $vs ++/*571416*/ OPC_MoveChild1, ++/*571417*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/*571420*/ OPC_RecordChild0, // #1 = $vt ++/*571421*/ OPC_MoveChild1, ++/*571422*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*571425*/ OPC_MoveChild0, ++/*571426*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*571429*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/*571431*/ OPC_CheckType, MVT::i32, ++/*571433*/ OPC_MoveParent, ++/*571434*/ OPC_MoveChild1, ++/*571435*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*571438*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/*571440*/ OPC_CheckType, MVT::i32, ++/*571442*/ OPC_MoveParent, ++/*571443*/ OPC_MoveChild2, ++/*571444*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*571447*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/*571449*/ OPC_CheckType, MVT::i32, ++/*571451*/ OPC_MoveParent, ++/*571452*/ OPC_MoveChild3, ++/*571453*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*571456*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/*571458*/ OPC_CheckType, MVT::i32, ++/*571460*/ OPC_MoveParent, ++/*571461*/ OPC_MoveChild4, ++/*571462*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*571465*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/*571467*/ OPC_CheckType, MVT::i32, ++/*571469*/ OPC_MoveParent, ++/*571470*/ OPC_MoveChild5, ++/*571471*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*571474*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/*571476*/ OPC_CheckType, MVT::i32, ++/*571478*/ OPC_MoveParent, ++/*571479*/ OPC_MoveChild6, ++/*571480*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*571483*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/*571485*/ OPC_CheckType, MVT::i32, ++/*571487*/ OPC_MoveParent, ++/*571488*/ OPC_MoveChild7, ++/*571489*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*571492*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/*571494*/ OPC_CheckType, MVT::i32, ++/*571496*/ OPC_MoveParent, ++/*571497*/ OPC_MoveParent, ++/*571498*/ OPC_CheckType, MVT::v8i16, ++/*571500*/ OPC_MoveParent, ++/*571501*/ OPC_CheckType, MVT::v8i16, ++/*571503*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*571505*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRA_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vs, (and:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vt, (build_vector:{ *:[v8i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))) - Complexity = 41 ++ // Dst: (VSRA_H:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vs, v8i16:{ *:[v8i16] }:$vt) ++/*571513*/ /*Scope*/ 68, /*->571582*/ ++/*571514*/ OPC_MoveChild0, ++/*571515*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*571518*/ OPC_MoveChild0, ++/*571519*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*571522*/ OPC_RecordChild0, // #0 = $a ++/*571523*/ OPC_RecordChild1, // #1 = $b ++/*571524*/ OPC_MoveParent, ++/*571525*/ OPC_MoveChild1, ++/*571526*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*571529*/ OPC_MoveChild0, ++/*571530*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*571533*/ OPC_CheckChild0Same, 0, ++/*571535*/ OPC_CheckChild1Same, 1, ++/*571537*/ OPC_MoveParent, ++/*571538*/ OPC_MoveChild1, ++/*571539*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*571542*/ OPC_CheckChild0Integer, 63, ++/*571544*/ OPC_CheckChild0Type, MVT::i64, ++/*571546*/ OPC_CheckChild1Integer, 63, ++/*571548*/ OPC_CheckChild1Type, MVT::i64, ++/*571550*/ OPC_CheckType, MVT::v2i64, ++/*571552*/ OPC_MoveParent, ++/*571553*/ OPC_MoveParent, ++/*571554*/ OPC_MoveParent, ++/*571555*/ OPC_MoveChild1, ++/*571556*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*571559*/ OPC_CheckChild0Integer, 1, ++/*571561*/ OPC_CheckChild0Type, MVT::i64, ++/*571563*/ OPC_CheckChild1Integer, 1, ++/*571565*/ OPC_CheckChild1Type, MVT::i64, ++/*571567*/ OPC_CheckType, MVT::v2i64, ++/*571569*/ OPC_MoveParent, ++/*571570*/ OPC_CheckType, MVT::v2i64, ++/*571572*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*571574*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 41 ++ // Dst: (VAVG_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*571582*/ /*Scope*/ 67|128,1/*195*/, /*->571779*/ ++/*571584*/ OPC_RecordChild0, // #0 = $vs ++/*571585*/ OPC_MoveChild1, ++/*571586*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/*571589*/ OPC_Scope, 93, /*->571684*/ // 2 children in Scope ++/*571591*/ OPC_RecordChild0, // #1 = $vt ++/*571592*/ OPC_MoveChild1, ++/*571593*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*571596*/ OPC_MoveChild0, ++/*571597*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*571600*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/*571602*/ OPC_CheckType, MVT::i32, ++/*571604*/ OPC_MoveParent, ++/*571605*/ OPC_MoveChild1, ++/*571606*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*571609*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/*571611*/ OPC_CheckType, MVT::i32, ++/*571613*/ OPC_MoveParent, ++/*571614*/ OPC_MoveChild2, ++/*571615*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*571618*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/*571620*/ OPC_CheckType, MVT::i32, ++/*571622*/ OPC_MoveParent, ++/*571623*/ OPC_MoveChild3, ++/*571624*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*571627*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/*571629*/ OPC_CheckType, MVT::i32, ++/*571631*/ OPC_MoveParent, ++/*571632*/ OPC_MoveChild4, ++/*571633*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*571636*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/*571638*/ OPC_CheckType, MVT::i32, ++/*571640*/ OPC_MoveParent, ++/*571641*/ OPC_MoveChild5, ++/*571642*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*571645*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/*571647*/ OPC_CheckType, MVT::i32, ++/*571649*/ OPC_MoveParent, ++/*571650*/ OPC_MoveChild6, ++/*571651*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*571654*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/*571656*/ OPC_CheckType, MVT::i32, ++/*571658*/ OPC_MoveParent, ++/*571659*/ OPC_MoveChild7, ++/*571660*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*571663*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/*571665*/ OPC_CheckType, MVT::i32, ++/*571667*/ OPC_MoveParent, ++/*571668*/ OPC_MoveParent, ++/*571669*/ OPC_CheckType, MVT::v8i32, ++/*571671*/ OPC_MoveParent, ++/*571672*/ OPC_CheckType, MVT::v8i32, ++/*571674*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*571676*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRA_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vs, (and:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vt, (build_vector:{ *:[v8i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))) - Complexity = 41 ++ // Dst: (XVSRA_W:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vs, v8i32:{ *:[v8i32] }:$vt) ++/*571684*/ /*Scope*/ 93, /*->571778*/ ++/*571685*/ OPC_MoveChild0, ++/*571686*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*571689*/ OPC_MoveChild0, ++/*571690*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*571693*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/*571695*/ OPC_CheckType, MVT::i32, ++/*571697*/ OPC_MoveParent, ++/*571698*/ OPC_MoveChild1, ++/*571699*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*571702*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/*571704*/ OPC_CheckType, MVT::i32, ++/*571706*/ OPC_MoveParent, ++/*571707*/ OPC_MoveChild2, ++/*571708*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*571711*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/*571713*/ OPC_CheckType, MVT::i32, ++/*571715*/ OPC_MoveParent, ++/*571716*/ OPC_MoveChild3, ++/*571717*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*571720*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/*571722*/ OPC_CheckType, MVT::i32, ++/*571724*/ OPC_MoveParent, ++/*571725*/ OPC_MoveChild4, ++/*571726*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*571729*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/*571731*/ OPC_CheckType, MVT::i32, ++/*571733*/ OPC_MoveParent, ++/*571734*/ OPC_MoveChild5, ++/*571735*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*571738*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/*571740*/ OPC_CheckType, MVT::i32, ++/*571742*/ OPC_MoveParent, ++/*571743*/ OPC_MoveChild6, ++/*571744*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*571747*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/*571749*/ OPC_CheckType, MVT::i32, ++/*571751*/ OPC_MoveParent, ++/*571752*/ OPC_MoveChild7, ++/*571753*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*571756*/ OPC_CheckPredicate, 36, // Predicate_immi32Cst15 ++/*571758*/ OPC_CheckType, MVT::i32, ++/*571760*/ OPC_MoveParent, ++/*571761*/ OPC_MoveParent, ++/*571762*/ OPC_RecordChild1, // #1 = $vt ++/*571763*/ OPC_CheckType, MVT::v8i16, ++/*571765*/ OPC_MoveParent, ++/*571766*/ OPC_CheckType, MVT::v8i16, ++/*571768*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*571770*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRA_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vs, (and:{ *:[v8i16] } (build_vector:{ *:[v8i16] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v8i16:{ *:[v8i16] }:$vt)) - Complexity = 41 ++ // Dst: (VSRA_H:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vs, v8i16:{ *:[v8i16] }:$vt) ++/*571778*/ 0, /*End of Scope*/ ++/*571779*/ /*Scope*/ 36|128,9/*1188*/, /*->572969*/ ++/*571781*/ OPC_MoveChild0, ++/*571782*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*571785*/ OPC_Scope, 73|128,5/*713*/, /*->572501*/ // 2 children in Scope ++/*571788*/ OPC_MoveChild0, ++/*571789*/ OPC_SwitchOpcode /*2 cases */, 47|128,4/*559*/, TARGET_VAL(ISD::ADD),// ->572353 ++/*571794*/ OPC_Scope, 115|128,1/*243*/, /*->572040*/ // 4 children in Scope ++/*571797*/ OPC_RecordChild0, // #0 = $a ++/*571798*/ OPC_Scope, 124, /*->571924*/ // 2 children in Scope ++/*571800*/ OPC_RecordChild1, // #1 = $b ++/*571801*/ OPC_MoveParent, ++/*571802*/ OPC_MoveChild1, ++/*571803*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*571806*/ OPC_MoveChild0, ++/*571807*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*571810*/ OPC_Scope, 61, /*->571873*/ // 2 children in Scope ++/*571812*/ OPC_CheckChild0Same, 1, ++/*571814*/ OPC_CheckChild1Same, 0, ++/*571816*/ OPC_MoveParent, ++/*571817*/ OPC_MoveChild1, ++/*571818*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*571821*/ OPC_CheckChild0Integer, 63, ++/*571823*/ OPC_CheckChild0Type, MVT::i64, ++/*571825*/ OPC_CheckChild1Integer, 63, ++/*571827*/ OPC_CheckChild1Type, MVT::i64, ++/*571829*/ OPC_CheckType, MVT::v2i64, ++/*571831*/ OPC_MoveParent, ++/*571832*/ OPC_MoveParent, ++/*571833*/ OPC_MoveParent, ++/*571834*/ OPC_MoveChild1, ++/*571835*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*571838*/ OPC_CheckChild0Integer, 1, ++/*571840*/ OPC_CheckChild0Type, MVT::i64, ++/*571842*/ OPC_CheckChild1Integer, 1, ++/*571844*/ OPC_CheckChild1Type, MVT::i64, ++/*571846*/ OPC_CheckType, MVT::v2i64, ++/*571848*/ OPC_MoveParent, ++/*571849*/ OPC_CheckType, MVT::v2i64, ++/*571851*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*571853*/ OPC_Scope, 8, /*->571863*/ // 2 children in Scope ++/*571855*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 41 ++ // Dst: (VAVG_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*571863*/ /*Scope*/ 8, /*->571872*/ ++/*571864*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 41 ++ // Dst: (VAVG_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*571872*/ 0, /*End of Scope*/ ++/*571873*/ /*Scope*/ 49, /*->571923*/ ++/*571874*/ OPC_CheckChild0Same, 0, ++/*571876*/ OPC_CheckChild1Same, 1, ++/*571878*/ OPC_MoveParent, ++/*571879*/ OPC_MoveChild1, ++/*571880*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*571883*/ OPC_CheckChild0Integer, 63, ++/*571885*/ OPC_CheckChild0Type, MVT::i64, ++/*571887*/ OPC_CheckChild1Integer, 63, ++/*571889*/ OPC_CheckChild1Type, MVT::i64, ++/*571891*/ OPC_CheckType, MVT::v2i64, ++/*571893*/ OPC_MoveParent, ++/*571894*/ OPC_MoveParent, ++/*571895*/ OPC_MoveParent, ++/*571896*/ OPC_MoveChild1, ++/*571897*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*571900*/ OPC_CheckChild0Integer, 1, ++/*571902*/ OPC_CheckChild0Type, MVT::i64, ++/*571904*/ OPC_CheckChild1Integer, 1, ++/*571906*/ OPC_CheckChild1Type, MVT::i64, ++/*571908*/ OPC_CheckType, MVT::v2i64, ++/*571910*/ OPC_MoveParent, ++/*571911*/ OPC_CheckType, MVT::v2i64, ++/*571913*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*571915*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 41 ++ // Dst: (VAVG_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*571923*/ 0, /*End of Scope*/ ++/*571924*/ /*Scope*/ 114, /*->572039*/ ++/*571925*/ OPC_MoveChild1, ++/*571926*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*571929*/ OPC_MoveChild0, ++/*571930*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*571933*/ OPC_Scope, 51, /*->571986*/ // 2 children in Scope ++/*571935*/ OPC_CheckChild0Same, 0, ++/*571937*/ OPC_RecordChild1, // #1 = $b ++/*571938*/ OPC_MoveParent, ++/*571939*/ OPC_MoveChild1, ++/*571940*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*571943*/ OPC_CheckChild0Integer, 63, ++/*571945*/ OPC_CheckChild0Type, MVT::i64, ++/*571947*/ OPC_CheckChild1Integer, 63, ++/*571949*/ OPC_CheckChild1Type, MVT::i64, ++/*571951*/ OPC_CheckType, MVT::v2i64, ++/*571953*/ OPC_MoveParent, ++/*571954*/ OPC_MoveParent, ++/*571955*/ OPC_MoveParent, ++/*571956*/ OPC_CheckChild1Same, 1, ++/*571958*/ OPC_MoveParent, ++/*571959*/ OPC_MoveChild1, ++/*571960*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*571963*/ OPC_CheckChild0Integer, 1, ++/*571965*/ OPC_CheckChild0Type, MVT::i64, ++/*571967*/ OPC_CheckChild1Integer, 1, ++/*571969*/ OPC_CheckChild1Type, MVT::i64, ++/*571971*/ OPC_CheckType, MVT::v2i64, ++/*571973*/ OPC_MoveParent, ++/*571974*/ OPC_CheckType, MVT::v2i64, ++/*571976*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*571978*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 41 ++ // Dst: (VAVG_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*571986*/ /*Scope*/ 51, /*->572038*/ ++/*571987*/ OPC_RecordChild0, // #1 = $b ++/*571988*/ OPC_CheckChild1Same, 0, ++/*571990*/ OPC_MoveParent, ++/*571991*/ OPC_MoveChild1, ++/*571992*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*571995*/ OPC_CheckChild0Integer, 63, ++/*571997*/ OPC_CheckChild0Type, MVT::i64, ++/*571999*/ OPC_CheckChild1Integer, 63, ++/*572001*/ OPC_CheckChild1Type, MVT::i64, ++/*572003*/ OPC_CheckType, MVT::v2i64, ++/*572005*/ OPC_MoveParent, ++/*572006*/ OPC_MoveParent, ++/*572007*/ OPC_MoveParent, ++/*572008*/ OPC_CheckChild1Same, 1, ++/*572010*/ OPC_MoveParent, ++/*572011*/ OPC_MoveChild1, ++/*572012*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*572015*/ OPC_CheckChild0Integer, 1, ++/*572017*/ OPC_CheckChild0Type, MVT::i64, ++/*572019*/ OPC_CheckChild1Integer, 1, ++/*572021*/ OPC_CheckChild1Type, MVT::i64, ++/*572023*/ OPC_CheckType, MVT::v2i64, ++/*572025*/ OPC_MoveParent, ++/*572026*/ OPC_CheckType, MVT::v2i64, ++/*572028*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*572030*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 41 ++ // Dst: (VAVG_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*572038*/ 0, /*End of Scope*/ ++/*572039*/ 0, /*End of Scope*/ ++/*572040*/ /*Scope*/ 97, /*->572138*/ ++/*572041*/ OPC_MoveChild0, ++/*572042*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*572045*/ OPC_MoveChild0, ++/*572046*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*572049*/ OPC_RecordChild0, // #0 = $a ++/*572050*/ OPC_RecordChild1, // #1 = $b ++/*572051*/ OPC_MoveParent, ++/*572052*/ OPC_MoveChild1, ++/*572053*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*572056*/ OPC_CheckChild0Integer, 63, ++/*572058*/ OPC_CheckChild0Type, MVT::i64, ++/*572060*/ OPC_CheckChild1Integer, 63, ++/*572062*/ OPC_CheckChild1Type, MVT::i64, ++/*572064*/ OPC_CheckType, MVT::v2i64, ++/*572066*/ OPC_MoveParent, ++/*572067*/ OPC_MoveParent, ++/*572068*/ OPC_Scope, 33, /*->572103*/ // 2 children in Scope ++/*572070*/ OPC_CheckChild1Same, 0, ++/*572072*/ OPC_MoveParent, ++/*572073*/ OPC_CheckChild1Same, 1, ++/*572075*/ OPC_MoveParent, ++/*572076*/ OPC_MoveChild1, ++/*572077*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*572080*/ OPC_CheckChild0Integer, 1, ++/*572082*/ OPC_CheckChild0Type, MVT::i64, ++/*572084*/ OPC_CheckChild1Integer, 1, ++/*572086*/ OPC_CheckChild1Type, MVT::i64, ++/*572088*/ OPC_CheckType, MVT::v2i64, ++/*572090*/ OPC_MoveParent, ++/*572091*/ OPC_CheckType, MVT::v2i64, ++/*572093*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*572095*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$a), LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 41 ++ // Dst: (VAVG_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*572103*/ /*Scope*/ 33, /*->572137*/ ++/*572104*/ OPC_CheckChild1Same, 1, ++/*572106*/ OPC_MoveParent, ++/*572107*/ OPC_CheckChild1Same, 0, ++/*572109*/ OPC_MoveParent, ++/*572110*/ OPC_MoveChild1, ++/*572111*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*572114*/ OPC_CheckChild0Integer, 1, ++/*572116*/ OPC_CheckChild0Type, MVT::i64, ++/*572118*/ OPC_CheckChild1Integer, 1, ++/*572120*/ OPC_CheckChild1Type, MVT::i64, ++/*572122*/ OPC_CheckType, MVT::v2i64, ++/*572124*/ OPC_MoveParent, ++/*572125*/ OPC_CheckType, MVT::v2i64, ++/*572127*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*572129*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$a), LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 41 ++ // Dst: (VAVG_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*572137*/ 0, /*End of Scope*/ ++/*572138*/ /*Scope*/ 115, /*->572254*/ ++/*572139*/ OPC_RecordChild0, // #0 = $b ++/*572140*/ OPC_MoveChild1, ++/*572141*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*572144*/ OPC_MoveChild0, ++/*572145*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*572148*/ OPC_Scope, 51, /*->572201*/ // 2 children in Scope ++/*572150*/ OPC_RecordChild0, // #1 = $a ++/*572151*/ OPC_CheckChild1Same, 0, ++/*572153*/ OPC_MoveParent, ++/*572154*/ OPC_MoveChild1, ++/*572155*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*572158*/ OPC_CheckChild0Integer, 63, ++/*572160*/ OPC_CheckChild0Type, MVT::i64, ++/*572162*/ OPC_CheckChild1Integer, 63, ++/*572164*/ OPC_CheckChild1Type, MVT::i64, ++/*572166*/ OPC_CheckType, MVT::v2i64, ++/*572168*/ OPC_MoveParent, ++/*572169*/ OPC_MoveParent, ++/*572170*/ OPC_MoveParent, ++/*572171*/ OPC_CheckChild1Same, 1, ++/*572173*/ OPC_MoveParent, ++/*572174*/ OPC_MoveChild1, ++/*572175*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*572178*/ OPC_CheckChild0Integer, 1, ++/*572180*/ OPC_CheckChild0Type, MVT::i64, ++/*572182*/ OPC_CheckChild1Integer, 1, ++/*572184*/ OPC_CheckChild1Type, MVT::i64, ++/*572186*/ OPC_CheckType, MVT::v2i64, ++/*572188*/ OPC_MoveParent, ++/*572189*/ OPC_CheckType, MVT::v2i64, ++/*572191*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*572193*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 41 ++ // Dst: (VAVG_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*572201*/ /*Scope*/ 51, /*->572253*/ ++/*572202*/ OPC_CheckChild0Same, 0, ++/*572204*/ OPC_RecordChild1, // #1 = $a ++/*572205*/ OPC_MoveParent, ++/*572206*/ OPC_MoveChild1, ++/*572207*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*572210*/ OPC_CheckChild0Integer, 63, ++/*572212*/ OPC_CheckChild0Type, MVT::i64, ++/*572214*/ OPC_CheckChild1Integer, 63, ++/*572216*/ OPC_CheckChild1Type, MVT::i64, ++/*572218*/ OPC_CheckType, MVT::v2i64, ++/*572220*/ OPC_MoveParent, ++/*572221*/ OPC_MoveParent, ++/*572222*/ OPC_MoveParent, ++/*572223*/ OPC_CheckChild1Same, 1, ++/*572225*/ OPC_MoveParent, ++/*572226*/ OPC_MoveChild1, ++/*572227*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*572230*/ OPC_CheckChild0Integer, 1, ++/*572232*/ OPC_CheckChild0Type, MVT::i64, ++/*572234*/ OPC_CheckChild1Integer, 1, ++/*572236*/ OPC_CheckChild1Type, MVT::i64, ++/*572238*/ OPC_CheckType, MVT::v2i64, ++/*572240*/ OPC_MoveParent, ++/*572241*/ OPC_CheckType, MVT::v2i64, ++/*572243*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*572245*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] }))), LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 41 ++ // Dst: (VAVG_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*572253*/ 0, /*End of Scope*/ ++/*572254*/ /*Scope*/ 97, /*->572352*/ ++/*572255*/ OPC_MoveChild0, ++/*572256*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*572259*/ OPC_MoveChild0, ++/*572260*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*572263*/ OPC_RecordChild0, // #0 = $a ++/*572264*/ OPC_RecordChild1, // #1 = $b ++/*572265*/ OPC_MoveParent, ++/*572266*/ OPC_MoveChild1, ++/*572267*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*572270*/ OPC_CheckChild0Integer, 63, ++/*572272*/ OPC_CheckChild0Type, MVT::i64, ++/*572274*/ OPC_CheckChild1Integer, 63, ++/*572276*/ OPC_CheckChild1Type, MVT::i64, ++/*572278*/ OPC_CheckType, MVT::v2i64, ++/*572280*/ OPC_MoveParent, ++/*572281*/ OPC_MoveParent, ++/*572282*/ OPC_Scope, 33, /*->572317*/ // 2 children in Scope ++/*572284*/ OPC_CheckChild1Same, 1, ++/*572286*/ OPC_MoveParent, ++/*572287*/ OPC_CheckChild1Same, 0, ++/*572289*/ OPC_MoveParent, ++/*572290*/ OPC_MoveChild1, ++/*572291*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*572294*/ OPC_CheckChild0Integer, 1, ++/*572296*/ OPC_CheckChild0Type, MVT::i64, ++/*572298*/ OPC_CheckChild1Integer, 1, ++/*572300*/ OPC_CheckChild1Type, MVT::i64, ++/*572302*/ OPC_CheckType, MVT::v2i64, ++/*572304*/ OPC_MoveParent, ++/*572305*/ OPC_CheckType, MVT::v2i64, ++/*572307*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*572309*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$b), LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 41 ++ // Dst: (VAVG_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*572317*/ /*Scope*/ 33, /*->572351*/ ++/*572318*/ OPC_CheckChild1Same, 0, ++/*572320*/ OPC_MoveParent, ++/*572321*/ OPC_CheckChild1Same, 1, ++/*572323*/ OPC_MoveParent, ++/*572324*/ OPC_MoveChild1, ++/*572325*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*572328*/ OPC_CheckChild0Integer, 1, ++/*572330*/ OPC_CheckChild0Type, MVT::i64, ++/*572332*/ OPC_CheckChild1Integer, 1, ++/*572334*/ OPC_CheckChild1Type, MVT::i64, ++/*572336*/ OPC_CheckType, MVT::v2i64, ++/*572338*/ OPC_MoveParent, ++/*572339*/ OPC_CheckType, MVT::v2i64, ++/*572341*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*572343*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$b), LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 41 ++ // Dst: (VAVG_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*572351*/ 0, /*End of Scope*/ ++/*572352*/ 0, /*End of Scope*/ ++/*572353*/ /*SwitchOpcode*/ 15|128,1/*143*/, TARGET_VAL(ISD::SRL),// ->572500 ++/*572357*/ OPC_MoveChild0, ++/*572358*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*572361*/ OPC_RecordChild0, // #0 = $a ++/*572362*/ OPC_RecordChild1, // #1 = $b ++/*572363*/ OPC_MoveParent, ++/*572364*/ OPC_MoveChild1, ++/*572365*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*572368*/ OPC_CheckChild0Integer, 63, ++/*572370*/ OPC_CheckChild0Type, MVT::i64, ++/*572372*/ OPC_CheckChild1Integer, 63, ++/*572374*/ OPC_CheckChild1Type, MVT::i64, ++/*572376*/ OPC_CheckType, MVT::v2i64, ++/*572378*/ OPC_MoveParent, ++/*572379*/ OPC_MoveParent, ++/*572380*/ OPC_MoveChild1, ++/*572381*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*572384*/ OPC_Scope, 33, /*->572419*/ // 3 children in Scope ++/*572386*/ OPC_CheckChild0Same, 0, ++/*572388*/ OPC_CheckChild1Same, 1, ++/*572390*/ OPC_MoveParent, ++/*572391*/ OPC_MoveParent, ++/*572392*/ OPC_MoveChild1, ++/*572393*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*572396*/ OPC_CheckChild0Integer, 1, ++/*572398*/ OPC_CheckChild0Type, MVT::i64, ++/*572400*/ OPC_CheckChild1Integer, 1, ++/*572402*/ OPC_CheckChild1Type, MVT::i64, ++/*572404*/ OPC_CheckType, MVT::v2i64, ++/*572406*/ OPC_MoveParent, ++/*572407*/ OPC_CheckType, MVT::v2i64, ++/*572409*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*572411*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 41 ++ // Dst: (VAVG_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*572419*/ /*Scope*/ 45, /*->572465*/ ++/*572420*/ OPC_CheckChild0Same, 1, ++/*572422*/ OPC_CheckChild1Same, 0, ++/*572424*/ OPC_MoveParent, ++/*572425*/ OPC_MoveParent, ++/*572426*/ OPC_MoveChild1, ++/*572427*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*572430*/ OPC_CheckChild0Integer, 1, ++/*572432*/ OPC_CheckChild0Type, MVT::i64, ++/*572434*/ OPC_CheckChild1Integer, 1, ++/*572436*/ OPC_CheckChild1Type, MVT::i64, ++/*572438*/ OPC_CheckType, MVT::v2i64, ++/*572440*/ OPC_MoveParent, ++/*572441*/ OPC_CheckType, MVT::v2i64, ++/*572443*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*572445*/ OPC_Scope, 8, /*->572455*/ // 2 children in Scope ++/*572447*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 41 ++ // Dst: (VAVG_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*572455*/ /*Scope*/ 8, /*->572464*/ ++/*572456*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 41 ++ // Dst: (VAVG_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*572464*/ 0, /*End of Scope*/ ++/*572465*/ /*Scope*/ 33, /*->572499*/ ++/*572466*/ OPC_CheckChild0Same, 0, ++/*572468*/ OPC_CheckChild1Same, 1, ++/*572470*/ OPC_MoveParent, ++/*572471*/ OPC_MoveParent, ++/*572472*/ OPC_MoveChild1, ++/*572473*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*572476*/ OPC_CheckChild0Integer, 1, ++/*572478*/ OPC_CheckChild0Type, MVT::i64, ++/*572480*/ OPC_CheckChild1Integer, 1, ++/*572482*/ OPC_CheckChild1Type, MVT::i64, ++/*572484*/ OPC_CheckType, MVT::v2i64, ++/*572486*/ OPC_MoveParent, ++/*572487*/ OPC_CheckType, MVT::v2i64, ++/*572489*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*572491*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 41 ++ // Dst: (VAVG_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*572499*/ 0, /*End of Scope*/ ++/*572500*/ 0, // EndSwitchOpcode ++/*572501*/ /*Scope*/ 81|128,3/*465*/, /*->572968*/ ++/*572503*/ OPC_RecordChild0, // #0 = $b ++/*572504*/ OPC_MoveChild1, ++/*572505*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*572508*/ OPC_Scope, 113, /*->572623*/ // 4 children in Scope ++/*572510*/ OPC_RecordChild0, // #1 = $a ++/*572511*/ OPC_MoveChild1, ++/*572512*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*572515*/ OPC_MoveChild0, ++/*572516*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*572519*/ OPC_Scope, 50, /*->572571*/ // 2 children in Scope ++/*572521*/ OPC_CheckChild0Same, 1, ++/*572523*/ OPC_CheckChild1Same, 0, ++/*572525*/ OPC_MoveParent, ++/*572526*/ OPC_MoveChild1, ++/*572527*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*572530*/ OPC_CheckChild0Integer, 63, ++/*572532*/ OPC_CheckChild0Type, MVT::i64, ++/*572534*/ OPC_CheckChild1Integer, 63, ++/*572536*/ OPC_CheckChild1Type, MVT::i64, ++/*572538*/ OPC_CheckType, MVT::v2i64, ++/*572540*/ OPC_MoveParent, ++/*572541*/ OPC_MoveParent, ++/*572542*/ OPC_MoveParent, ++/*572543*/ OPC_MoveParent, ++/*572544*/ OPC_MoveChild1, ++/*572545*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*572548*/ OPC_CheckChild0Integer, 1, ++/*572550*/ OPC_CheckChild0Type, MVT::i64, ++/*572552*/ OPC_CheckChild1Integer, 1, ++/*572554*/ OPC_CheckChild1Type, MVT::i64, ++/*572556*/ OPC_CheckType, MVT::v2i64, ++/*572558*/ OPC_MoveParent, ++/*572559*/ OPC_CheckType, MVT::v2i64, ++/*572561*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*572563*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 41 ++ // Dst: (VAVG_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*572571*/ /*Scope*/ 50, /*->572622*/ ++/*572572*/ OPC_CheckChild0Same, 0, ++/*572574*/ OPC_CheckChild1Same, 1, ++/*572576*/ OPC_MoveParent, ++/*572577*/ OPC_MoveChild1, ++/*572578*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*572581*/ OPC_CheckChild0Integer, 63, ++/*572583*/ OPC_CheckChild0Type, MVT::i64, ++/*572585*/ OPC_CheckChild1Integer, 63, ++/*572587*/ OPC_CheckChild1Type, MVT::i64, ++/*572589*/ OPC_CheckType, MVT::v2i64, ++/*572591*/ OPC_MoveParent, ++/*572592*/ OPC_MoveParent, ++/*572593*/ OPC_MoveParent, ++/*572594*/ OPC_MoveParent, ++/*572595*/ OPC_MoveChild1, ++/*572596*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*572599*/ OPC_CheckChild0Integer, 1, ++/*572601*/ OPC_CheckChild0Type, MVT::i64, ++/*572603*/ OPC_CheckChild1Integer, 1, ++/*572605*/ OPC_CheckChild1Type, MVT::i64, ++/*572607*/ OPC_CheckType, MVT::v2i64, ++/*572609*/ OPC_MoveParent, ++/*572610*/ OPC_CheckType, MVT::v2i64, ++/*572612*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*572614*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 41 ++ // Dst: (VAVG_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*572622*/ 0, /*End of Scope*/ ++/*572623*/ /*Scope*/ 114, /*->572738*/ ++/*572624*/ OPC_MoveChild0, ++/*572625*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*572628*/ OPC_MoveChild0, ++/*572629*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*572632*/ OPC_Scope, 51, /*->572685*/ // 2 children in Scope ++/*572634*/ OPC_RecordChild0, // #1 = $a ++/*572635*/ OPC_CheckChild1Same, 0, ++/*572637*/ OPC_MoveParent, ++/*572638*/ OPC_MoveChild1, ++/*572639*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*572642*/ OPC_CheckChild0Integer, 63, ++/*572644*/ OPC_CheckChild0Type, MVT::i64, ++/*572646*/ OPC_CheckChild1Integer, 63, ++/*572648*/ OPC_CheckChild1Type, MVT::i64, ++/*572650*/ OPC_CheckType, MVT::v2i64, ++/*572652*/ OPC_MoveParent, ++/*572653*/ OPC_MoveParent, ++/*572654*/ OPC_CheckChild1Same, 1, ++/*572656*/ OPC_MoveParent, ++/*572657*/ OPC_MoveParent, ++/*572658*/ OPC_MoveChild1, ++/*572659*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*572662*/ OPC_CheckChild0Integer, 1, ++/*572664*/ OPC_CheckChild0Type, MVT::i64, ++/*572666*/ OPC_CheckChild1Integer, 1, ++/*572668*/ OPC_CheckChild1Type, MVT::i64, ++/*572670*/ OPC_CheckType, MVT::v2i64, ++/*572672*/ OPC_MoveParent, ++/*572673*/ OPC_CheckType, MVT::v2i64, ++/*572675*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*572677*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 41 ++ // Dst: (VAVG_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*572685*/ /*Scope*/ 51, /*->572737*/ ++/*572686*/ OPC_CheckChild0Same, 0, ++/*572688*/ OPC_RecordChild1, // #1 = $a ++/*572689*/ OPC_MoveParent, ++/*572690*/ OPC_MoveChild1, ++/*572691*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*572694*/ OPC_CheckChild0Integer, 63, ++/*572696*/ OPC_CheckChild0Type, MVT::i64, ++/*572698*/ OPC_CheckChild1Integer, 63, ++/*572700*/ OPC_CheckChild1Type, MVT::i64, ++/*572702*/ OPC_CheckType, MVT::v2i64, ++/*572704*/ OPC_MoveParent, ++/*572705*/ OPC_MoveParent, ++/*572706*/ OPC_CheckChild1Same, 1, ++/*572708*/ OPC_MoveParent, ++/*572709*/ OPC_MoveParent, ++/*572710*/ OPC_MoveChild1, ++/*572711*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*572714*/ OPC_CheckChild0Integer, 1, ++/*572716*/ OPC_CheckChild0Type, MVT::i64, ++/*572718*/ OPC_CheckChild1Integer, 1, ++/*572720*/ OPC_CheckChild1Type, MVT::i64, ++/*572722*/ OPC_CheckType, MVT::v2i64, ++/*572724*/ OPC_MoveParent, ++/*572725*/ OPC_CheckType, MVT::v2i64, ++/*572727*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*572729*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$a)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 41 ++ // Dst: (VAVG_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*572737*/ 0, /*End of Scope*/ ++/*572738*/ /*Scope*/ 113, /*->572852*/ ++/*572739*/ OPC_RecordChild0, // #1 = $b ++/*572740*/ OPC_MoveChild1, ++/*572741*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*572744*/ OPC_MoveChild0, ++/*572745*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*572748*/ OPC_Scope, 50, /*->572800*/ // 2 children in Scope ++/*572750*/ OPC_CheckChild0Same, 0, ++/*572752*/ OPC_CheckChild1Same, 1, ++/*572754*/ OPC_MoveParent, ++/*572755*/ OPC_MoveChild1, ++/*572756*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*572759*/ OPC_CheckChild0Integer, 63, ++/*572761*/ OPC_CheckChild0Type, MVT::i64, ++/*572763*/ OPC_CheckChild1Integer, 63, ++/*572765*/ OPC_CheckChild1Type, MVT::i64, ++/*572767*/ OPC_CheckType, MVT::v2i64, ++/*572769*/ OPC_MoveParent, ++/*572770*/ OPC_MoveParent, ++/*572771*/ OPC_MoveParent, ++/*572772*/ OPC_MoveParent, ++/*572773*/ OPC_MoveChild1, ++/*572774*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*572777*/ OPC_CheckChild0Integer, 1, ++/*572779*/ OPC_CheckChild0Type, MVT::i64, ++/*572781*/ OPC_CheckChild1Integer, 1, ++/*572783*/ OPC_CheckChild1Type, MVT::i64, ++/*572785*/ OPC_CheckType, MVT::v2i64, ++/*572787*/ OPC_MoveParent, ++/*572788*/ OPC_CheckType, MVT::v2i64, ++/*572790*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*572792*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 41 ++ // Dst: (VAVG_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*572800*/ /*Scope*/ 50, /*->572851*/ ++/*572801*/ OPC_CheckChild0Same, 1, ++/*572803*/ OPC_CheckChild1Same, 0, ++/*572805*/ OPC_MoveParent, ++/*572806*/ OPC_MoveChild1, ++/*572807*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*572810*/ OPC_CheckChild0Integer, 63, ++/*572812*/ OPC_CheckChild0Type, MVT::i64, ++/*572814*/ OPC_CheckChild1Integer, 63, ++/*572816*/ OPC_CheckChild1Type, MVT::i64, ++/*572818*/ OPC_CheckType, MVT::v2i64, ++/*572820*/ OPC_MoveParent, ++/*572821*/ OPC_MoveParent, ++/*572822*/ OPC_MoveParent, ++/*572823*/ OPC_MoveParent, ++/*572824*/ OPC_MoveChild1, ++/*572825*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*572828*/ OPC_CheckChild0Integer, 1, ++/*572830*/ OPC_CheckChild0Type, MVT::i64, ++/*572832*/ OPC_CheckChild1Integer, 1, ++/*572834*/ OPC_CheckChild1Type, MVT::i64, ++/*572836*/ OPC_CheckType, MVT::v2i64, ++/*572838*/ OPC_MoveParent, ++/*572839*/ OPC_CheckType, MVT::v2i64, ++/*572841*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*572843*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })))), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 41 ++ // Dst: (VAVG_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*572851*/ 0, /*End of Scope*/ ++/*572852*/ /*Scope*/ 114, /*->572967*/ ++/*572853*/ OPC_MoveChild0, ++/*572854*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL), ++/*572857*/ OPC_MoveChild0, ++/*572858*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD), ++/*572861*/ OPC_Scope, 51, /*->572914*/ // 2 children in Scope ++/*572863*/ OPC_CheckChild0Same, 0, ++/*572865*/ OPC_RecordChild1, // #1 = $b ++/*572866*/ OPC_MoveParent, ++/*572867*/ OPC_MoveChild1, ++/*572868*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*572871*/ OPC_CheckChild0Integer, 63, ++/*572873*/ OPC_CheckChild0Type, MVT::i64, ++/*572875*/ OPC_CheckChild1Integer, 63, ++/*572877*/ OPC_CheckChild1Type, MVT::i64, ++/*572879*/ OPC_CheckType, MVT::v2i64, ++/*572881*/ OPC_MoveParent, ++/*572882*/ OPC_MoveParent, ++/*572883*/ OPC_CheckChild1Same, 1, ++/*572885*/ OPC_MoveParent, ++/*572886*/ OPC_MoveParent, ++/*572887*/ OPC_MoveChild1, ++/*572888*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*572891*/ OPC_CheckChild0Integer, 1, ++/*572893*/ OPC_CheckChild0Type, MVT::i64, ++/*572895*/ OPC_CheckChild1Integer, 1, ++/*572897*/ OPC_CheckChild1Type, MVT::i64, ++/*572899*/ OPC_CheckType, MVT::v2i64, ++/*572901*/ OPC_MoveParent, ++/*572902*/ OPC_CheckType, MVT::v2i64, ++/*572904*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*572906*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 41 ++ // Dst: (VAVG_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*572914*/ /*Scope*/ 51, /*->572966*/ ++/*572915*/ OPC_RecordChild0, // #1 = $b ++/*572916*/ OPC_CheckChild1Same, 0, ++/*572918*/ OPC_MoveParent, ++/*572919*/ OPC_MoveChild1, ++/*572920*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*572923*/ OPC_CheckChild0Integer, 63, ++/*572925*/ OPC_CheckChild0Type, MVT::i64, ++/*572927*/ OPC_CheckChild1Integer, 63, ++/*572929*/ OPC_CheckChild1Type, MVT::i64, ++/*572931*/ OPC_CheckType, MVT::v2i64, ++/*572933*/ OPC_MoveParent, ++/*572934*/ OPC_MoveParent, ++/*572935*/ OPC_CheckChild1Same, 1, ++/*572937*/ OPC_MoveParent, ++/*572938*/ OPC_MoveParent, ++/*572939*/ OPC_MoveChild1, ++/*572940*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*572943*/ OPC_CheckChild0Integer, 1, ++/*572945*/ OPC_CheckChild0Type, MVT::i64, ++/*572947*/ OPC_CheckChild1Integer, 1, ++/*572949*/ OPC_CheckChild1Type, MVT::i64, ++/*572951*/ OPC_CheckType, MVT::v2i64, ++/*572953*/ OPC_MoveParent, ++/*572954*/ OPC_CheckType, MVT::v2i64, ++/*572956*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*572958*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VAVG_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, (add:{ *:[v2i64] } (srl:{ *:[v2i64] } (add:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$b, LSX128D:{ *:[v2i64] }:$a), (build_vector:{ *:[v2i64] } 63:{ *:[i64] }, 63:{ *:[i64] })), LSX128D:{ *:[v2i64] }:$b)), (build_vector:{ *:[v2i64] } 1:{ *:[i64] }, 1:{ *:[i64] })) - Complexity = 41 ++ // Dst: (VAVG_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*572966*/ 0, /*End of Scope*/ ++/*572967*/ 0, /*End of Scope*/ ++/*572968*/ 0, /*End of Scope*/ ++/*572969*/ /*Scope*/ 39|128,4/*551*/, /*->573522*/ ++/*572971*/ OPC_RecordChild0, // #0 = $vs ++/*572972*/ OPC_Scope, 69|128,2/*325*/, /*->573300*/ // 2 children in Scope ++/*572975*/ OPC_MoveChild1, ++/*572976*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/*572979*/ OPC_Scope, 93, /*->573074*/ // 5 children in Scope ++/*572981*/ OPC_MoveChild0, ++/*572982*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*572985*/ OPC_MoveChild0, ++/*572986*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*572989*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/*572991*/ OPC_CheckType, MVT::i32, ++/*572993*/ OPC_MoveParent, ++/*572994*/ OPC_MoveChild1, ++/*572995*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*572998*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/*573000*/ OPC_CheckType, MVT::i32, ++/*573002*/ OPC_MoveParent, ++/*573003*/ OPC_MoveChild2, ++/*573004*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*573007*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/*573009*/ OPC_CheckType, MVT::i32, ++/*573011*/ OPC_MoveParent, ++/*573012*/ OPC_MoveChild3, ++/*573013*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*573016*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/*573018*/ OPC_CheckType, MVT::i32, ++/*573020*/ OPC_MoveParent, ++/*573021*/ OPC_MoveChild4, ++/*573022*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*573025*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/*573027*/ OPC_CheckType, MVT::i32, ++/*573029*/ OPC_MoveParent, ++/*573030*/ OPC_MoveChild5, ++/*573031*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*573034*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/*573036*/ OPC_CheckType, MVT::i32, ++/*573038*/ OPC_MoveParent, ++/*573039*/ OPC_MoveChild6, ++/*573040*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*573043*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/*573045*/ OPC_CheckType, MVT::i32, ++/*573047*/ OPC_MoveParent, ++/*573048*/ OPC_MoveChild7, ++/*573049*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*573052*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/*573054*/ OPC_CheckType, MVT::i32, ++/*573056*/ OPC_MoveParent, ++/*573057*/ OPC_MoveParent, ++/*573058*/ OPC_RecordChild1, // #1 = $vt ++/*573059*/ OPC_CheckType, MVT::v8i32, ++/*573061*/ OPC_MoveParent, ++/*573062*/ OPC_CheckType, MVT::v8i32, ++/*573064*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*573066*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRA_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vs, (and:{ *:[v8i32] } (build_vector:{ *:[v8i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v8i32:{ *:[v8i32] }:$vt)) - Complexity = 41 ++ // Dst: (XVSRA_W:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vs, v8i32:{ *:[v8i32] }:$vt) ++/*573074*/ /*Scope*/ 57, /*->573132*/ ++/*573075*/ OPC_RecordChild0, // #1 = $vt ++/*573076*/ OPC_MoveChild1, ++/*573077*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*573080*/ OPC_MoveChild0, ++/*573081*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*573084*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/*573086*/ OPC_CheckType, MVT::i32, ++/*573088*/ OPC_MoveParent, ++/*573089*/ OPC_MoveChild1, ++/*573090*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*573093*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/*573095*/ OPC_CheckType, MVT::i32, ++/*573097*/ OPC_MoveParent, ++/*573098*/ OPC_MoveChild2, ++/*573099*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*573102*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/*573104*/ OPC_CheckType, MVT::i32, ++/*573106*/ OPC_MoveParent, ++/*573107*/ OPC_MoveChild3, ++/*573108*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*573111*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/*573113*/ OPC_CheckType, MVT::i32, ++/*573115*/ OPC_MoveParent, ++/*573116*/ OPC_MoveParent, ++/*573117*/ OPC_CheckType, MVT::v4i32, ++/*573119*/ OPC_MoveParent, ++/*573120*/ OPC_CheckType, MVT::v4i32, ++/*573122*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*573124*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRA_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vs, (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vt, (build_vector:{ *:[v4i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>))) - Complexity = 25 ++ // Dst: (VSRA_W:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vs, v4i32:{ *:[v4i32] }:$vt) ++/*573132*/ /*Scope*/ 57, /*->573190*/ ++/*573133*/ OPC_MoveChild0, ++/*573134*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*573137*/ OPC_MoveChild0, ++/*573138*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*573141*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/*573143*/ OPC_CheckType, MVT::i32, ++/*573145*/ OPC_MoveParent, ++/*573146*/ OPC_MoveChild1, ++/*573147*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*573150*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/*573152*/ OPC_CheckType, MVT::i32, ++/*573154*/ OPC_MoveParent, ++/*573155*/ OPC_MoveChild2, ++/*573156*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*573159*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/*573161*/ OPC_CheckType, MVT::i32, ++/*573163*/ OPC_MoveParent, ++/*573164*/ OPC_MoveChild3, ++/*573165*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*573168*/ OPC_CheckPredicate, 38, // Predicate_immi32Cst31 ++/*573170*/ OPC_CheckType, MVT::i32, ++/*573172*/ OPC_MoveParent, ++/*573173*/ OPC_MoveParent, ++/*573174*/ OPC_RecordChild1, // #1 = $vt ++/*573175*/ OPC_CheckType, MVT::v4i32, ++/*573177*/ OPC_MoveParent, ++/*573178*/ OPC_CheckType, MVT::v4i32, ++/*573180*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*573182*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRA_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vs, (and:{ *:[v4i32] } (build_vector:{ *:[v4i32] } (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>, (imm:{ *:[i32] })<>), v4i32:{ *:[v4i32] }:$vt)) - Complexity = 25 ++ // Dst: (VSRA_W:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vs, v4i32:{ *:[v4i32] }:$vt) ++/*573190*/ /*Scope*/ 53, /*->573244*/ ++/*573191*/ OPC_RecordChild0, // #1 = $vt ++/*573192*/ OPC_MoveChild1, ++/*573193*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/*573196*/ OPC_MoveChild0, ++/*573197*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*573200*/ OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->573222 ++/*573203*/ OPC_MoveParent, ++/*573204*/ OPC_CheckPredicate, 40, // Predicate_vsplati64_imm_eq_63 ++/*573206*/ OPC_MoveParent, ++/*573207*/ OPC_CheckType, MVT::v2i64, ++/*573209*/ OPC_MoveParent, ++/*573210*/ OPC_CheckType, MVT::v2i64, ++/*573212*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*573214*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRA_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vs, (and:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vt, (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] }))<>)) - Complexity = 13 ++ // Dst: (VSRA_D:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vs, v2i64:{ *:[v2i64] }:$vt) ++/*573222*/ /*SwitchType*/ 19, MVT::v8i32,// ->573243 ++/*573224*/ OPC_MoveParent, ++/*573225*/ OPC_CheckPredicate, 40, // Predicate_xvsplati64_imm_eq_63 ++/*573227*/ OPC_MoveParent, ++/*573228*/ OPC_CheckType, MVT::v4i64, ++/*573230*/ OPC_MoveParent, ++/*573231*/ OPC_CheckType, MVT::v4i64, ++/*573233*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*573235*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRA_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vs, (and:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vt, (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] }))<>)) - Complexity = 13 ++ // Dst: (XVSRA_D:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vs, v4i64:{ *:[v4i64] }:$vt) ++/*573243*/ 0, // EndSwitchType ++/*573244*/ /*Scope*/ 54, /*->573299*/ ++/*573245*/ OPC_MoveChild0, ++/*573246*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/*573249*/ OPC_MoveChild0, ++/*573250*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*573253*/ OPC_SwitchType /*2 cases */, 20, MVT::v4i32,// ->573276 ++/*573256*/ OPC_MoveParent, ++/*573257*/ OPC_CheckPredicate, 40, // Predicate_vsplati64_imm_eq_63 ++/*573259*/ OPC_MoveParent, ++/*573260*/ OPC_RecordChild1, // #1 = $vt ++/*573261*/ OPC_CheckType, MVT::v2i64, ++/*573263*/ OPC_MoveParent, ++/*573264*/ OPC_CheckType, MVT::v2i64, ++/*573266*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*573268*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRA_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vs, (and:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] }))<>, v2i64:{ *:[v2i64] }:$vt)) - Complexity = 13 ++ // Dst: (VSRA_D:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vs, v2i64:{ *:[v2i64] }:$vt) ++/*573276*/ /*SwitchType*/ 20, MVT::v8i32,// ->573298 ++/*573278*/ OPC_MoveParent, ++/*573279*/ OPC_CheckPredicate, 40, // Predicate_xvsplati64_imm_eq_63 ++/*573281*/ OPC_MoveParent, ++/*573282*/ OPC_RecordChild1, // #1 = $vt ++/*573283*/ OPC_CheckType, MVT::v4i64, ++/*573285*/ OPC_MoveParent, ++/*573286*/ OPC_CheckType, MVT::v4i64, ++/*573288*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*573290*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRA_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vs, (and:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] }))<>, v4i64:{ *:[v4i64] }:$vt)) - Complexity = 13 ++ // Dst: (XVSRA_D:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vs, v4i64:{ *:[v4i64] }:$vt) ++/*573298*/ 0, // EndSwitchType ++/*573299*/ 0, /*End of Scope*/ ++/*573300*/ /*Scope*/ 91|128,1/*219*/, /*->573521*/ ++/*573302*/ OPC_RecordChild1, // #1 = $ui3 ++/*573303*/ OPC_SwitchType /*8 cases */, 25, MVT::v16i8,// ->573331 ++/*573306*/ OPC_CheckChild1Type, MVT::v16i8, ++/*573308*/ OPC_Scope, 11, /*->573321*/ // 2 children in Scope ++/*573310*/ OPC_CheckComplexPat, /*CP*/23, /*#*/1, // selectVSplatUimm3:$ui3 #2 ++/*573313*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRAI_B_N), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 2, ++ // Src: (sra:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, vsplati8_uimm3:{ *:[v16i8] }:$ui3) - Complexity = 9 ++ // Dst: (VSRAI_B_N:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, vsplati8_uimm3:{ *:[v16i8] }:$ui3) ++/*573321*/ /*Scope*/ 8, /*->573330*/ ++/*573322*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRA_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) - Complexity = 3 ++ // Dst: (VSRA_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/*573330*/ 0, /*End of Scope*/ ++/*573331*/ /*SwitchType*/ 25, MVT::v8i16,// ->573358 ++/*573333*/ OPC_CheckChild1Type, MVT::v8i16, ++/*573335*/ OPC_Scope, 11, /*->573348*/ // 2 children in Scope ++/*573337*/ OPC_CheckComplexPat, /*CP*/24, /*#*/1, // selectVSplatUimm4:$ui4 #2 ++/*573340*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRAI_H_N), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 2, ++ // Src: (sra:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, vsplati16_uimm4:{ *:[v8i16] }:$ui4) - Complexity = 9 ++ // Dst: (VSRAI_H_N:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, vsplati16_uimm4:{ *:[v8i16] }:$ui4) ++/*573348*/ /*Scope*/ 8, /*->573357*/ ++/*573349*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRA_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 3 ++ // Dst: (VSRA_H:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/*573357*/ 0, /*End of Scope*/ ++/*573358*/ /*SwitchType*/ 25, MVT::v4i32,// ->573385 ++/*573360*/ OPC_CheckChild1Type, MVT::v4i32, ++/*573362*/ OPC_Scope, 11, /*->573375*/ // 2 children in Scope ++/*573364*/ OPC_CheckComplexPat, /*CP*/10, /*#*/1, // selectVSplatUimm5:$ui5 #2 ++/*573367*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRAI_W_N), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 2, ++ // Src: (sra:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, vsplati32_uimm5:{ *:[v4i32] }:$ui5) - Complexity = 9 ++ // Dst: (VSRAI_W_N:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, vsplati32_uimm5:{ *:[v4i32] }:$ui5) ++/*573375*/ /*Scope*/ 8, /*->573384*/ ++/*573376*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRA_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 3 ++ // Dst: (VSRA_W:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/*573384*/ 0, /*End of Scope*/ ++/*573385*/ /*SwitchType*/ 25, MVT::v2i64,// ->573412 ++/*573387*/ OPC_CheckChild1Type, MVT::v2i64, ++/*573389*/ OPC_Scope, 11, /*->573402*/ // 2 children in Scope ++/*573391*/ OPC_CheckComplexPat, /*CP*/25, /*#*/1, // selectVSplatUimm6:$ui6 #2 ++/*573394*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRAI_D_N), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 2, ++ // Src: (sra:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, vsplati64_uimm6:{ *:[v2i64] }:$ui6) - Complexity = 9 ++ // Dst: (VSRAI_D_N:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, vsplati64_uimm6:{ *:[v2i64] }:$ui6) ++/*573402*/ /*Scope*/ 8, /*->573411*/ ++/*573403*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSRA_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 3 ++ // Dst: (VSRA_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/*573411*/ 0, /*End of Scope*/ ++/*573412*/ /*SwitchType*/ 25, MVT::v32i8,// ->573439 ++/*573414*/ OPC_CheckChild1Type, MVT::v32i8, ++/*573416*/ OPC_Scope, 11, /*->573429*/ // 2 children in Scope ++/*573418*/ OPC_CheckComplexPat, /*CP*/26, /*#*/1, // selectVSplatUimm3:$ui3 #2 ++/*573421*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRAI_B_N), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 2, ++ // Src: (sra:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, xvsplati8_uimm3:{ *:[v32i8] }:$ui3) - Complexity = 9 ++ // Dst: (XVSRAI_B_N:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, xvsplati8_uimm3:{ *:[v32i8] }:$ui3) ++/*573429*/ /*Scope*/ 8, /*->573438*/ ++/*573430*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRA_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 3 ++ // Dst: (XVSRA_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/*573438*/ 0, /*End of Scope*/ ++/*573439*/ /*SwitchType*/ 25, MVT::v16i16,// ->573466 ++/*573441*/ OPC_CheckChild1Type, MVT::v16i16, ++/*573443*/ OPC_Scope, 11, /*->573456*/ // 2 children in Scope ++/*573445*/ OPC_CheckComplexPat, /*CP*/27, /*#*/1, // selectVSplatUimm4:$ui4 #2 ++/*573448*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRAI_H_N), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 2, ++ // Src: (sra:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, xvsplati16_uimm4:{ *:[v16i16] }:$ui4) - Complexity = 9 ++ // Dst: (XVSRAI_H_N:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, xvsplati16_uimm4:{ *:[v16i16] }:$ui4) ++/*573456*/ /*Scope*/ 8, /*->573465*/ ++/*573457*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRA_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 3 ++ // Dst: (XVSRA_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/*573465*/ 0, /*End of Scope*/ ++/*573466*/ /*SwitchType*/ 25, MVT::v8i32,// ->573493 ++/*573468*/ OPC_CheckChild1Type, MVT::v8i32, ++/*573470*/ OPC_Scope, 11, /*->573483*/ // 2 children in Scope ++/*573472*/ OPC_CheckComplexPat, /*CP*/18, /*#*/1, // selectVSplatUimm5:$ui5 #2 ++/*573475*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRAI_W_N), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 2, ++ // Src: (sra:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, xvsplati32_uimm5:{ *:[v8i32] }:$ui5) - Complexity = 9 ++ // Dst: (XVSRAI_W_N:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, xvsplati32_uimm5:{ *:[v8i32] }:$ui5) ++/*573483*/ /*Scope*/ 8, /*->573492*/ ++/*573484*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRA_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 3 ++ // Dst: (XVSRA_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/*573492*/ 0, /*End of Scope*/ ++/*573493*/ /*SwitchType*/ 25, MVT::v4i64,// ->573520 ++/*573495*/ OPC_CheckChild1Type, MVT::v4i64, ++/*573497*/ OPC_Scope, 11, /*->573510*/ // 2 children in Scope ++/*573499*/ OPC_CheckComplexPat, /*CP*/28, /*#*/1, // selectVSplatUimm6:$ui6 #2 ++/*573502*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRAI_D_N), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 2, ++ // Src: (sra:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, xvsplati64_uimm6:{ *:[v4i64] }:$ui6) - Complexity = 9 ++ // Dst: (XVSRAI_D_N:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, xvsplati64_uimm6:{ *:[v4i64] }:$ui6) ++/*573510*/ /*Scope*/ 8, /*->573519*/ ++/*573511*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSRA_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sra:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 3 ++ // Dst: (XVSRA_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/*573519*/ 0, /*End of Scope*/ ++/*573520*/ 0, // EndSwitchType ++/*573521*/ 0, /*End of Scope*/ ++/*573522*/ 0, /*End of Scope*/ ++/*573523*/ /*SwitchOpcode*/ 70, TARGET_VAL(ISD::ROTR),// ->573596 ++/*573526*/ OPC_RecordChild0, // #0 = $rj ++/*573527*/ OPC_RecordChild1, // #1 = $imm6 ++/*573528*/ OPC_Scope, 40, /*->573570*/ // 2 children in Scope ++/*573530*/ OPC_MoveChild1, ++/*573531*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*573534*/ OPC_CheckType, MVT::i32, ++/*573536*/ OPC_Scope, 15, /*->573553*/ // 2 children in Scope ++/*573538*/ OPC_CheckPredicate, 43, // Predicate_uimm6 ++/*573540*/ OPC_MoveParent, ++/*573541*/ OPC_CheckType, MVT::i64, ++/*573543*/ OPC_EmitConvertToTarget, 1, ++/*573545*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ROTRI_D), 0, ++ MVT::i64, 2/*#Ops*/, 0, 2, ++ // Src: (rotr:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, (imm:{ *:[i32] })<>:$imm6) - Complexity = 7 ++ // Dst: (ROTRI_D:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, (imm:{ *:[i32] }):$imm6) ++/*573553*/ /*Scope*/ 15, /*->573569*/ ++/*573554*/ OPC_CheckPredicate, 20, // Predicate_uimm5 ++/*573556*/ OPC_MoveParent, ++/*573557*/ OPC_CheckType, MVT::i32, ++/*573559*/ OPC_EmitConvertToTarget, 1, ++/*573561*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ROTRI_W), 0, ++ MVT::i32, 2/*#Ops*/, 0, 2, ++ // Src: (rotr:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, (imm:{ *:[i32] })<>:$imm5) - Complexity = 7 ++ // Dst: (ROTRI_W:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, (imm:{ *:[i32] }):$imm5) ++/*573569*/ 0, /*End of Scope*/ ++/*573570*/ /*Scope*/ 24, /*->573595*/ ++/*573571*/ OPC_CheckChild1Type, MVT::i32, ++/*573573*/ OPC_SwitchType /*2 cases */, 8, MVT::i64,// ->573584 ++/*573576*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ROTR_D), 0, ++ MVT::i64, 2/*#Ops*/, 0, 1, ++ // Src: (rotr:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) - Complexity = 3 ++ // Dst: (ROTR_D:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) ++/*573584*/ /*SwitchType*/ 8, MVT::i32,// ->573594 ++/*573586*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ROTR_W), 0, ++ MVT::i32, 2/*#Ops*/, 0, 1, ++ // Src: (rotr:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) - Complexity = 3 ++ // Dst: (ROTR_W:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) ++/*573594*/ 0, // EndSwitchType ++/*573595*/ 0, /*End of Scope*/ ++/*573596*/ /*SwitchOpcode*/ 54, TARGET_VAL(ISD::TRUNCATE),// ->573653 ++/*573599*/ OPC_Scope, 23, /*->573624*/ // 2 children in Scope ++/*573601*/ OPC_MoveChild0, ++/*573602*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertZext), ++/*573605*/ OPC_RecordChild0, // #0 = $src ++/*573606*/ OPC_CheckPredicate, 44, // Predicate_assertzext_lt_i32 ++/*573608*/ OPC_MoveParent, ++/*573609*/ OPC_CheckType, MVT::i32, ++/*573611*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/*573613*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/*573616*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 0, 1, ++ // Src: (trunc:{ *:[i32] } (assertzext:{ *:[i64] } GPR64:{ *:[i64] }:$src)<>) - Complexity = 7 ++ // Dst: (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$src, sub_32:{ *:[i32] }) ++/*573624*/ /*Scope*/ 27, /*->573652*/ ++/*573625*/ OPC_RecordChild0, // #0 = $src ++/*573626*/ OPC_CheckType, MVT::i32, ++/*573628*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/*573630*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/*573633*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 0, 1, // Results = #2 ++/*573641*/ OPC_EmitInteger, MVT::i32, 0, ++/*573644*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLLI_W), 0, ++ MVT::i32, 2/*#Ops*/, 2, 3, ++ // Src: (trunc:{ *:[i32] } GPR64:{ *:[i64] }:$src) - Complexity = 3 ++ // Dst: (SLLI_W:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$src, sub_32:{ *:[i32] }), 0:{ *:[i32] }) ++/*573652*/ 0, /*End of Scope*/ ++/*573653*/ /*SwitchOpcode*/ 18, TARGET_VAL(LoongArchISD::DBAR),// ->573674 ++/*573656*/ OPC_RecordNode, // #0 = 'LoongArchDBAR' chained node ++/*573657*/ OPC_MoveChild1, ++/*573658*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*573661*/ OPC_CheckPredicate, 16, // Predicate_immz ++/*573663*/ OPC_MoveParent, ++/*573664*/ OPC_EmitMergeInputChains1_0, ++/*573665*/ OPC_EmitInteger, MVT::i64, 0, ++/*573668*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::DBAR), 0|OPFL_Chain, ++ 1/*#Ops*/, 1, ++ // Src: (LoongArchDBAR (imm:{ *:[i32] })<>) - Complexity = 7 ++ // Dst: (DBAR 0:{ *:[i64] }) ++/*573674*/ /*SwitchOpcode*/ 21, TARGET_VAL(ISD::ADDC),// ->573698 ++/*573677*/ OPC_RecordChild0, // #0 = $src ++/*573678*/ OPC_RecordChild1, // #1 = $imm ++/*573679*/ OPC_MoveChild1, ++/*573680*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*573683*/ OPC_CheckPredicate, 14, // Predicate_immSExt12 ++/*573685*/ OPC_MoveParent, ++/*573686*/ OPC_CheckType, MVT::i32, ++/*573688*/ OPC_EmitConvertToTarget, 1, ++/*573690*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ADDI_W), 0|OPFL_GlueOutput, ++ MVT::i32, 2/*#Ops*/, 0, 2, ++ // Src: (addc:{ *:[i32] } GPR32:{ *:[i32] }:$src, (imm:{ *:[i32] })<>:$imm) - Complexity = 7 ++ // Dst: (ADDI_W:{ *:[i32] } GPR32:{ *:[i32] }:$src, (imm:{ *:[i32] }):$imm) ++/*573698*/ /*SwitchOpcode*/ 1|128,5/*641*/, TARGET_VAL(LoongArchISD::VEXTRACT_SEXT_ELT),// ->574343 ++/*573702*/ OPC_RecordChild0, // #0 = $vj ++/*573703*/ OPC_Scope, 27|128,1/*155*/, /*->573861*/ // 6 children in Scope ++/*573706*/ OPC_CheckChild0Type, MVT::v16i8, ++/*573708*/ OPC_RecordChild1, // #1 = $ui4 ++/*573709*/ OPC_Scope, 23, /*->573734*/ // 3 children in Scope ++/*573711*/ OPC_MoveChild1, ++/*573712*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*573715*/ OPC_CheckPredicate, 23, // Predicate_immZExt4Ptr ++/*573717*/ OPC_MoveParent, ++/*573718*/ OPC_MoveChild2, ++/*573719*/ OPC_CheckValueType, MVT::i8, ++/*573721*/ OPC_MoveParent, ++/*573722*/ OPC_CheckType, MVT::i32, ++/*573724*/ OPC_EmitConvertToTarget, 1, ++/*573726*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VPICKVE2GR_B), 0, ++ MVT::i32, 2/*#Ops*/, 0, 2, ++ // Src: (LoongArchVExtractSExt:{ *:[i32] } LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[iPTR] })<>:$ui4, i8:{ *:[Other] }) - Complexity = 7 ++ // Dst: (VPICKVE2GR_B:{ *:[i32] } LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[iPTR] }):$ui4) ++/*573734*/ /*Scope*/ 51, /*->573786*/ ++/*573735*/ OPC_CheckChild1Type, MVT::i32, ++/*573737*/ OPC_MoveChild2, ++/*573738*/ OPC_CheckValueType, MVT::i8, ++/*573740*/ OPC_MoveParent, ++/*573741*/ OPC_CheckType, MVT::i32, ++/*573743*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*573745*/ OPC_EmitNode1, TARGET_VAL(LoongArch::VREPLVE_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, // Results = #2 ++/*573753*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_lo, ++/*573756*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 2, 3, // Results = #4 ++/*573764*/ OPC_EmitInteger, MVT::i32, LoongArch::GPR32RegClassID, ++/*573767*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::i32, 2/*#Ops*/, 4, 5, // Results = #6 ++/*573775*/ OPC_EmitInteger, MVT::i32, 24, ++/*573778*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SRAI_W), 0, ++ MVT::i32, 2/*#Ops*/, 6, 7, ++ // Src: (LoongArchVExtractSExt:{ *:[i32] } v16i8:{ *:[v16i8] }:$vj, i32:{ *:[i32] }:$idx, i8:{ *:[Other] }) - Complexity = 3 ++ // Dst: (SRAI_W:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } (VREPLVE_B:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vj, i32:{ *:[i32] }:$idx), sub_lo:{ *:[i32] }), GPR32:{ *:[i32] }), 24:{ *:[i32] }) ++/*573786*/ /*Scope*/ 73, /*->573860*/ ++/*573787*/ OPC_CheckChild1Type, MVT::i64, ++/*573789*/ OPC_MoveChild2, ++/*573790*/ OPC_CheckValueType, MVT::i8, ++/*573792*/ OPC_MoveParent, ++/*573793*/ OPC_CheckType, MVT::i32, ++/*573795*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*573797*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/*573800*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 1, 2, // Results = #3 ++/*573808*/ OPC_EmitInteger, MVT::i32, LoongArch::GPR32RegClassID, ++/*573811*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::i32, 2/*#Ops*/, 3, 4, // Results = #5 ++/*573819*/ OPC_EmitNode1, TARGET_VAL(LoongArch::VREPLVE_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 5, // Results = #6 ++/*573827*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_lo, ++/*573830*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 6, 7, // Results = #8 ++/*573838*/ OPC_EmitInteger, MVT::i32, LoongArch::GPR32RegClassID, ++/*573841*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::i32, 2/*#Ops*/, 8, 9, // Results = #10 ++/*573849*/ OPC_EmitInteger, MVT::i32, 24, ++/*573852*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SRAI_W), 0, ++ MVT::i32, 2/*#Ops*/, 10, 11, ++ // Src: (LoongArchVExtractSExt:{ *:[i32] } v16i8:{ *:[v16i8] }:$vj, i64:{ *:[i64] }:$idx, i8:{ *:[Other] }) - Complexity = 3 ++ // Dst: (SRAI_W:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } (VREPLVE_B:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vj, (COPY_TO_REGCLASS:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } i64:{ *:[i64] }:$idx, sub_32:{ *:[i32] }), GPR32:{ *:[i32] })), sub_lo:{ *:[i32] }), GPR32:{ *:[i32] }), 24:{ *:[i32] }) ++/*573860*/ 0, /*End of Scope*/ ++/*573861*/ /*Scope*/ 27|128,1/*155*/, /*->574018*/ ++/*573863*/ OPC_CheckChild0Type, MVT::v8i16, ++/*573865*/ OPC_RecordChild1, // #1 = $ui3 ++/*573866*/ OPC_Scope, 23, /*->573891*/ // 3 children in Scope ++/*573868*/ OPC_MoveChild1, ++/*573869*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*573872*/ OPC_CheckPredicate, 24, // Predicate_immZExt3Ptr ++/*573874*/ OPC_MoveParent, ++/*573875*/ OPC_MoveChild2, ++/*573876*/ OPC_CheckValueType, MVT::i16, ++/*573878*/ OPC_MoveParent, ++/*573879*/ OPC_CheckType, MVT::i32, ++/*573881*/ OPC_EmitConvertToTarget, 1, ++/*573883*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VPICKVE2GR_H), 0, ++ MVT::i32, 2/*#Ops*/, 0, 2, ++ // Src: (LoongArchVExtractSExt:{ *:[i32] } LSX128HOpnd:{ *:[v8i16] }:$vj, (imm:{ *:[iPTR] })<>:$ui3, i16:{ *:[Other] }) - Complexity = 7 ++ // Dst: (VPICKVE2GR_H:{ *:[i32] } LSX128HOpnd:{ *:[v8i16] }:$vj, (imm:{ *:[iPTR] }):$ui3) ++/*573891*/ /*Scope*/ 51, /*->573943*/ ++/*573892*/ OPC_CheckChild1Type, MVT::i32, ++/*573894*/ OPC_MoveChild2, ++/*573895*/ OPC_CheckValueType, MVT::i16, ++/*573897*/ OPC_MoveParent, ++/*573898*/ OPC_CheckType, MVT::i32, ++/*573900*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*573902*/ OPC_EmitNode1, TARGET_VAL(LoongArch::VREPLVE_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, // Results = #2 ++/*573910*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_lo, ++/*573913*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 2, 3, // Results = #4 ++/*573921*/ OPC_EmitInteger, MVT::i32, LoongArch::GPR32RegClassID, ++/*573924*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::i32, 2/*#Ops*/, 4, 5, // Results = #6 ++/*573932*/ OPC_EmitInteger, MVT::i32, 16, ++/*573935*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SRAI_W), 0, ++ MVT::i32, 2/*#Ops*/, 6, 7, ++ // Src: (LoongArchVExtractSExt:{ *:[i32] } v8i16:{ *:[v8i16] }:$vj, i32:{ *:[i32] }:$idx, i16:{ *:[Other] }) - Complexity = 3 ++ // Dst: (SRAI_W:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } (VREPLVE_H:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vj, i32:{ *:[i32] }:$idx), sub_lo:{ *:[i32] }), GPR32:{ *:[i32] }), 16:{ *:[i32] }) ++/*573943*/ /*Scope*/ 73, /*->574017*/ ++/*573944*/ OPC_CheckChild1Type, MVT::i64, ++/*573946*/ OPC_MoveChild2, ++/*573947*/ OPC_CheckValueType, MVT::i16, ++/*573949*/ OPC_MoveParent, ++/*573950*/ OPC_CheckType, MVT::i32, ++/*573952*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*573954*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/*573957*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 1, 2, // Results = #3 ++/*573965*/ OPC_EmitInteger, MVT::i32, LoongArch::GPR32RegClassID, ++/*573968*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::i32, 2/*#Ops*/, 3, 4, // Results = #5 ++/*573976*/ OPC_EmitNode1, TARGET_VAL(LoongArch::VREPLVE_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 5, // Results = #6 ++/*573984*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_lo, ++/*573987*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 6, 7, // Results = #8 ++/*573995*/ OPC_EmitInteger, MVT::i32, LoongArch::GPR32RegClassID, ++/*573998*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::i32, 2/*#Ops*/, 8, 9, // Results = #10 ++/*574006*/ OPC_EmitInteger, MVT::i32, 16, ++/*574009*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SRAI_W), 0, ++ MVT::i32, 2/*#Ops*/, 10, 11, ++ // Src: (LoongArchVExtractSExt:{ *:[i32] } v8i16:{ *:[v8i16] }:$vj, i64:{ *:[i64] }:$idx, i16:{ *:[Other] }) - Complexity = 3 ++ // Dst: (SRAI_W:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } (VREPLVE_H:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vj, (COPY_TO_REGCLASS:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } i64:{ *:[i64] }:$idx, sub_32:{ *:[i32] }), GPR32:{ *:[i32] })), sub_lo:{ *:[i32] }), GPR32:{ *:[i32] }), 16:{ *:[i32] }) ++/*574017*/ 0, /*End of Scope*/ ++/*574018*/ /*Scope*/ 5|128,1/*133*/, /*->574153*/ ++/*574020*/ OPC_CheckChild0Type, MVT::v4i32, ++/*574022*/ OPC_RecordChild1, // #1 = $ui2 ++/*574023*/ OPC_Scope, 23, /*->574048*/ // 3 children in Scope ++/*574025*/ OPC_MoveChild1, ++/*574026*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*574029*/ OPC_CheckPredicate, 25, // Predicate_immZExt2Ptr ++/*574031*/ OPC_MoveParent, ++/*574032*/ OPC_MoveChild2, ++/*574033*/ OPC_CheckValueType, MVT::i32, ++/*574035*/ OPC_MoveParent, ++/*574036*/ OPC_CheckType, MVT::i32, ++/*574038*/ OPC_EmitConvertToTarget, 1, ++/*574040*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VPICKVE2GR_W), 0, ++ MVT::i32, 2/*#Ops*/, 0, 2, ++ // Src: (LoongArchVExtractSExt:{ *:[i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, (imm:{ *:[iPTR] })<>:$ui2, i32:{ *:[Other] }) - Complexity = 7 ++ // Dst: (VPICKVE2GR_W:{ *:[i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, (imm:{ *:[iPTR] }):$ui2) ++/*574048*/ /*Scope*/ 40, /*->574089*/ ++/*574049*/ OPC_CheckChild1Type, MVT::i32, ++/*574051*/ OPC_MoveChild2, ++/*574052*/ OPC_CheckValueType, MVT::i32, ++/*574054*/ OPC_MoveParent, ++/*574055*/ OPC_CheckType, MVT::i32, ++/*574057*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*574059*/ OPC_EmitNode1, TARGET_VAL(LoongArch::VREPLVE_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, // Results = #2 ++/*574067*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_lo, ++/*574070*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 2, 3, // Results = #4 ++/*574078*/ OPC_EmitInteger, MVT::i32, LoongArch::GPR32RegClassID, ++/*574081*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::i32, 2/*#Ops*/, 4, 5, ++ // Src: (LoongArchVExtractSExt:{ *:[i32] } v4i32:{ *:[v4i32] }:$vj, i32:{ *:[i32] }:$idx, i32:{ *:[Other] }) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } (VREPLVE_W:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vj, i32:{ *:[i32] }:$idx), sub_lo:{ *:[i32] }), GPR32:{ *:[i32] }) ++/*574089*/ /*Scope*/ 62, /*->574152*/ ++/*574090*/ OPC_CheckChild1Type, MVT::i64, ++/*574092*/ OPC_MoveChild2, ++/*574093*/ OPC_CheckValueType, MVT::i32, ++/*574095*/ OPC_MoveParent, ++/*574096*/ OPC_CheckType, MVT::i32, ++/*574098*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*574100*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/*574103*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 1, 2, // Results = #3 ++/*574111*/ OPC_EmitInteger, MVT::i32, LoongArch::GPR32RegClassID, ++/*574114*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::i32, 2/*#Ops*/, 3, 4, // Results = #5 ++/*574122*/ OPC_EmitNode1, TARGET_VAL(LoongArch::VREPLVE_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 5, // Results = #6 ++/*574130*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_lo, ++/*574133*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 6, 7, // Results = #8 ++/*574141*/ OPC_EmitInteger, MVT::i32, LoongArch::GPR32RegClassID, ++/*574144*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::i32, 2/*#Ops*/, 8, 9, ++ // Src: (LoongArchVExtractSExt:{ *:[i32] } v4i32:{ *:[v4i32] }:$vj, i64:{ *:[i64] }:$idx, i32:{ *:[Other] }) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } (VREPLVE_W:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vj, (COPY_TO_REGCLASS:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } i64:{ *:[i64] }:$idx, sub_32:{ *:[i32] }), GPR32:{ *:[i32] })), sub_lo:{ *:[i32] }), GPR32:{ *:[i32] }) ++/*574152*/ 0, /*End of Scope*/ ++/*574153*/ /*Scope*/ 5|128,1/*133*/, /*->574288*/ ++/*574155*/ OPC_CheckChild0Type, MVT::v2i64, ++/*574157*/ OPC_RecordChild1, // #1 = $ui1 ++/*574158*/ OPC_Scope, 23, /*->574183*/ // 3 children in Scope ++/*574160*/ OPC_MoveChild1, ++/*574161*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*574164*/ OPC_CheckPredicate, 26, // Predicate_immZExt1Ptr ++/*574166*/ OPC_MoveParent, ++/*574167*/ OPC_MoveChild2, ++/*574168*/ OPC_CheckValueType, MVT::i64, ++/*574170*/ OPC_MoveParent, ++/*574171*/ OPC_CheckType, MVT::i64, ++/*574173*/ OPC_EmitConvertToTarget, 1, ++/*574175*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VPICKVE2GR_D), 0, ++ MVT::i64, 2/*#Ops*/, 0, 2, ++ // Src: (LoongArchVExtractSExt:{ *:[i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, (imm:{ *:[iPTR] })<>:$ui1, i64:{ *:[Other] }) - Complexity = 7 ++ // Dst: (VPICKVE2GR_D:{ *:[i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, (imm:{ *:[iPTR] }):$ui1) ++/*574183*/ /*Scope*/ 40, /*->574224*/ ++/*574184*/ OPC_CheckChild1Type, MVT::i32, ++/*574186*/ OPC_MoveChild2, ++/*574187*/ OPC_CheckValueType, MVT::i64, ++/*574189*/ OPC_MoveParent, ++/*574190*/ OPC_CheckType, MVT::i64, ++/*574192*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*574194*/ OPC_EmitNode1, TARGET_VAL(LoongArch::VREPLVE_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, // Results = #2 ++/*574202*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_64, ++/*574205*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i64, 2/*#Ops*/, 2, 3, // Results = #4 ++/*574213*/ OPC_EmitInteger, MVT::i32, LoongArch::GPR64RegClassID, ++/*574216*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::i64, 2/*#Ops*/, 4, 5, ++ // Src: (LoongArchVExtractSExt:{ *:[i64] } v2i64:{ *:[v2i64] }:$vj, i32:{ *:[i32] }:$idx, i64:{ *:[Other] }) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i64] } (VREPLVE_D:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vj, i32:{ *:[i32] }:$idx), sub_64:{ *:[i32] }), GPR64:{ *:[i32] }) ++/*574224*/ /*Scope*/ 62, /*->574287*/ ++/*574225*/ OPC_CheckChild1Type, MVT::i64, ++/*574227*/ OPC_MoveChild2, ++/*574228*/ OPC_CheckValueType, MVT::i64, ++/*574230*/ OPC_MoveParent, ++/*574231*/ OPC_CheckType, MVT::i64, ++/*574233*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*574235*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/*574238*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 1, 2, // Results = #3 ++/*574246*/ OPC_EmitInteger, MVT::i32, LoongArch::GPR32RegClassID, ++/*574249*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::i32, 2/*#Ops*/, 3, 4, // Results = #5 ++/*574257*/ OPC_EmitNode1, TARGET_VAL(LoongArch::VREPLVE_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 5, // Results = #6 ++/*574265*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_64, ++/*574268*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i64, 2/*#Ops*/, 6, 7, // Results = #8 ++/*574276*/ OPC_EmitInteger, MVT::i32, LoongArch::GPR64RegClassID, ++/*574279*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::i64, 2/*#Ops*/, 8, 9, ++ // Src: (LoongArchVExtractSExt:{ *:[i64] } v2i64:{ *:[v2i64] }:$vj, i64:{ *:[i64] }:$idx, i64:{ *:[Other] }) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i64] } (VREPLVE_D:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vj, (COPY_TO_REGCLASS:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } i64:{ *:[i64] }:$idx, sub_32:{ *:[i32] }), GPR32:{ *:[i32] })), sub_64:{ *:[i32] }), GPR64:{ *:[i32] }) ++/*574287*/ 0, /*End of Scope*/ ++/*574288*/ /*Scope*/ 26, /*->574315*/ ++/*574289*/ OPC_CheckChild0Type, MVT::v8i32, ++/*574291*/ OPC_RecordChild1, // #1 = $ui3 ++/*574292*/ OPC_MoveChild1, ++/*574293*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*574296*/ OPC_CheckPredicate, 24, // Predicate_immZExt3Ptr ++/*574298*/ OPC_MoveParent, ++/*574299*/ OPC_MoveChild2, ++/*574300*/ OPC_CheckValueType, MVT::i32, ++/*574302*/ OPC_MoveParent, ++/*574303*/ OPC_CheckType, MVT::i32, ++/*574305*/ OPC_EmitConvertToTarget, 1, ++/*574307*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPICKVE2GR_W), 0, ++ MVT::i32, 2/*#Ops*/, 0, 2, ++ // Src: (LoongArchVExtractSExt:{ *:[i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[iPTR] })<>:$ui3, i32:{ *:[Other] }) - Complexity = 7 ++ // Dst: (XVPICKVE2GR_W:{ *:[i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[iPTR] }):$ui3) ++/*574315*/ /*Scope*/ 26, /*->574342*/ ++/*574316*/ OPC_CheckChild0Type, MVT::v4i64, ++/*574318*/ OPC_RecordChild1, // #1 = $ui2 ++/*574319*/ OPC_MoveChild1, ++/*574320*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*574323*/ OPC_CheckPredicate, 25, // Predicate_immZExt2Ptr ++/*574325*/ OPC_MoveParent, ++/*574326*/ OPC_MoveChild2, ++/*574327*/ OPC_CheckValueType, MVT::i64, ++/*574329*/ OPC_MoveParent, ++/*574330*/ OPC_CheckType, MVT::i64, ++/*574332*/ OPC_EmitConvertToTarget, 1, ++/*574334*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPICKVE2GR_D), 0, ++ MVT::i64, 2/*#Ops*/, 0, 2, ++ // Src: (LoongArchVExtractSExt:{ *:[i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[iPTR] })<>:$ui2, i64:{ *:[Other] }) - Complexity = 7 ++ // Dst: (XVPICKVE2GR_D:{ *:[i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[iPTR] }):$ui2) ++/*574342*/ 0, /*End of Scope*/ ++/*574343*/ /*SwitchOpcode*/ 32|128,5/*672*/, TARGET_VAL(LoongArchISD::VEXTRACT_ZEXT_ELT),// ->575019 ++/*574347*/ OPC_RecordChild0, // #0 = $vj ++/*574348*/ OPC_Scope, 27|128,1/*155*/, /*->574506*/ // 7 children in Scope ++/*574351*/ OPC_CheckChild0Type, MVT::v16i8, ++/*574353*/ OPC_RecordChild1, // #1 = $ui4 ++/*574354*/ OPC_Scope, 23, /*->574379*/ // 3 children in Scope ++/*574356*/ OPC_MoveChild1, ++/*574357*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*574360*/ OPC_CheckPredicate, 23, // Predicate_immZExt4Ptr ++/*574362*/ OPC_MoveParent, ++/*574363*/ OPC_MoveChild2, ++/*574364*/ OPC_CheckValueType, MVT::i8, ++/*574366*/ OPC_MoveParent, ++/*574367*/ OPC_CheckType, MVT::i32, ++/*574369*/ OPC_EmitConvertToTarget, 1, ++/*574371*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VPICKVE2GR_BU), 0, ++ MVT::i32, 2/*#Ops*/, 0, 2, ++ // Src: (LoongArchVExtractZExt:{ *:[i32] } LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[iPTR] })<>:$ui4, i8:{ *:[Other] }) - Complexity = 7 ++ // Dst: (VPICKVE2GR_BU:{ *:[i32] } LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[iPTR] }):$ui4) ++/*574379*/ /*Scope*/ 51, /*->574431*/ ++/*574380*/ OPC_CheckChild1Type, MVT::i32, ++/*574382*/ OPC_MoveChild2, ++/*574383*/ OPC_CheckValueType, MVT::i8, ++/*574385*/ OPC_MoveParent, ++/*574386*/ OPC_CheckType, MVT::i32, ++/*574388*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*574390*/ OPC_EmitNode1, TARGET_VAL(LoongArch::VREPLVE_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, // Results = #2 ++/*574398*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_lo, ++/*574401*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 2, 3, // Results = #4 ++/*574409*/ OPC_EmitInteger, MVT::i32, LoongArch::GPR32RegClassID, ++/*574412*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::i32, 2/*#Ops*/, 4, 5, // Results = #6 ++/*574420*/ OPC_EmitInteger, MVT::i32, 24, ++/*574423*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SRLI_W), 0, ++ MVT::i32, 2/*#Ops*/, 6, 7, ++ // Src: (LoongArchVExtractZExt:{ *:[i32] } v16i8:{ *:[v16i8] }:$vj, i32:{ *:[i32] }:$idx, i8:{ *:[Other] }) - Complexity = 3 ++ // Dst: (SRLI_W:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } (VREPLVE_B:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vj, i32:{ *:[i32] }:$idx), sub_lo:{ *:[i32] }), GPR32:{ *:[i32] }), 24:{ *:[i32] }) ++/*574431*/ /*Scope*/ 73, /*->574505*/ ++/*574432*/ OPC_CheckChild1Type, MVT::i64, ++/*574434*/ OPC_MoveChild2, ++/*574435*/ OPC_CheckValueType, MVT::i8, ++/*574437*/ OPC_MoveParent, ++/*574438*/ OPC_CheckType, MVT::i32, ++/*574440*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*574442*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/*574445*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 1, 2, // Results = #3 ++/*574453*/ OPC_EmitInteger, MVT::i32, LoongArch::GPR32RegClassID, ++/*574456*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::i32, 2/*#Ops*/, 3, 4, // Results = #5 ++/*574464*/ OPC_EmitNode1, TARGET_VAL(LoongArch::VREPLVE_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 5, // Results = #6 ++/*574472*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_lo, ++/*574475*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 6, 7, // Results = #8 ++/*574483*/ OPC_EmitInteger, MVT::i32, LoongArch::GPR32RegClassID, ++/*574486*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::i32, 2/*#Ops*/, 8, 9, // Results = #10 ++/*574494*/ OPC_EmitInteger, MVT::i32, 24, ++/*574497*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SRLI_W), 0, ++ MVT::i32, 2/*#Ops*/, 10, 11, ++ // Src: (LoongArchVExtractZExt:{ *:[i32] } v16i8:{ *:[v16i8] }:$vj, i64:{ *:[i64] }:$idx, i8:{ *:[Other] }) - Complexity = 3 ++ // Dst: (SRLI_W:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } (VREPLVE_B:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vj, (COPY_TO_REGCLASS:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } i64:{ *:[i64] }:$idx, sub_32:{ *:[i32] }), GPR32:{ *:[i32] })), sub_lo:{ *:[i32] }), GPR32:{ *:[i32] }), 24:{ *:[i32] }) ++/*574505*/ 0, /*End of Scope*/ ++/*574506*/ /*Scope*/ 27|128,1/*155*/, /*->574663*/ ++/*574508*/ OPC_CheckChild0Type, MVT::v8i16, ++/*574510*/ OPC_RecordChild1, // #1 = $ui3 ++/*574511*/ OPC_Scope, 23, /*->574536*/ // 3 children in Scope ++/*574513*/ OPC_MoveChild1, ++/*574514*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*574517*/ OPC_CheckPredicate, 24, // Predicate_immZExt3Ptr ++/*574519*/ OPC_MoveParent, ++/*574520*/ OPC_MoveChild2, ++/*574521*/ OPC_CheckValueType, MVT::i16, ++/*574523*/ OPC_MoveParent, ++/*574524*/ OPC_CheckType, MVT::i32, ++/*574526*/ OPC_EmitConvertToTarget, 1, ++/*574528*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VPICKVE2GR_HU), 0, ++ MVT::i32, 2/*#Ops*/, 0, 2, ++ // Src: (LoongArchVExtractZExt:{ *:[i32] } LSX128HOpnd:{ *:[v8i16] }:$vj, (imm:{ *:[iPTR] })<>:$ui3, i16:{ *:[Other] }) - Complexity = 7 ++ // Dst: (VPICKVE2GR_HU:{ *:[i32] } LSX128HOpnd:{ *:[v8i16] }:$vj, (imm:{ *:[iPTR] }):$ui3) ++/*574536*/ /*Scope*/ 51, /*->574588*/ ++/*574537*/ OPC_CheckChild1Type, MVT::i32, ++/*574539*/ OPC_MoveChild2, ++/*574540*/ OPC_CheckValueType, MVT::i16, ++/*574542*/ OPC_MoveParent, ++/*574543*/ OPC_CheckType, MVT::i32, ++/*574545*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*574547*/ OPC_EmitNode1, TARGET_VAL(LoongArch::VREPLVE_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, // Results = #2 ++/*574555*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_lo, ++/*574558*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 2, 3, // Results = #4 ++/*574566*/ OPC_EmitInteger, MVT::i32, LoongArch::GPR32RegClassID, ++/*574569*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::i32, 2/*#Ops*/, 4, 5, // Results = #6 ++/*574577*/ OPC_EmitInteger, MVT::i32, 16, ++/*574580*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SRLI_W), 0, ++ MVT::i32, 2/*#Ops*/, 6, 7, ++ // Src: (LoongArchVExtractZExt:{ *:[i32] } v8i16:{ *:[v8i16] }:$vj, i32:{ *:[i32] }:$idx, i16:{ *:[Other] }) - Complexity = 3 ++ // Dst: (SRLI_W:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } (VREPLVE_H:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vj, i32:{ *:[i32] }:$idx), sub_lo:{ *:[i32] }), GPR32:{ *:[i32] }), 16:{ *:[i32] }) ++/*574588*/ /*Scope*/ 73, /*->574662*/ ++/*574589*/ OPC_CheckChild1Type, MVT::i64, ++/*574591*/ OPC_MoveChild2, ++/*574592*/ OPC_CheckValueType, MVT::i16, ++/*574594*/ OPC_MoveParent, ++/*574595*/ OPC_CheckType, MVT::i32, ++/*574597*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*574599*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/*574602*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 1, 2, // Results = #3 ++/*574610*/ OPC_EmitInteger, MVT::i32, LoongArch::GPR32RegClassID, ++/*574613*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::i32, 2/*#Ops*/, 3, 4, // Results = #5 ++/*574621*/ OPC_EmitNode1, TARGET_VAL(LoongArch::VREPLVE_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 5, // Results = #6 ++/*574629*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_lo, ++/*574632*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 6, 7, // Results = #8 ++/*574640*/ OPC_EmitInteger, MVT::i32, LoongArch::GPR32RegClassID, ++/*574643*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::i32, 2/*#Ops*/, 8, 9, // Results = #10 ++/*574651*/ OPC_EmitInteger, MVT::i32, 16, ++/*574654*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SRLI_W), 0, ++ MVT::i32, 2/*#Ops*/, 10, 11, ++ // Src: (LoongArchVExtractZExt:{ *:[i32] } v8i16:{ *:[v8i16] }:$vj, i64:{ *:[i64] }:$idx, i16:{ *:[Other] }) - Complexity = 3 ++ // Dst: (SRLI_W:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } (VREPLVE_H:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vj, (COPY_TO_REGCLASS:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } i64:{ *:[i64] }:$idx, sub_32:{ *:[i32] }), GPR32:{ *:[i32] })), sub_lo:{ *:[i32] }), GPR32:{ *:[i32] }), 16:{ *:[i32] }) ++/*574662*/ 0, /*End of Scope*/ ++/*574663*/ /*Scope*/ 5|128,1/*133*/, /*->574798*/ ++/*574665*/ OPC_CheckChild0Type, MVT::v4i32, ++/*574667*/ OPC_RecordChild1, // #1 = $ui2 ++/*574668*/ OPC_Scope, 23, /*->574693*/ // 3 children in Scope ++/*574670*/ OPC_MoveChild1, ++/*574671*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*574674*/ OPC_CheckPredicate, 25, // Predicate_immZExt2Ptr ++/*574676*/ OPC_MoveParent, ++/*574677*/ OPC_MoveChild2, ++/*574678*/ OPC_CheckValueType, MVT::i32, ++/*574680*/ OPC_MoveParent, ++/*574681*/ OPC_CheckType, MVT::i32, ++/*574683*/ OPC_EmitConvertToTarget, 1, ++/*574685*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VPICKVE2GR_WU), 0, ++ MVT::i32, 2/*#Ops*/, 0, 2, ++ // Src: (LoongArchVExtractZExt:{ *:[i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, (imm:{ *:[iPTR] })<>:$ui2, i32:{ *:[Other] }) - Complexity = 7 ++ // Dst: (VPICKVE2GR_WU:{ *:[i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, (imm:{ *:[iPTR] }):$ui2) ++/*574693*/ /*Scope*/ 40, /*->574734*/ ++/*574694*/ OPC_CheckChild1Type, MVT::i32, ++/*574696*/ OPC_MoveChild2, ++/*574697*/ OPC_CheckValueType, MVT::i32, ++/*574699*/ OPC_MoveParent, ++/*574700*/ OPC_CheckType, MVT::i32, ++/*574702*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*574704*/ OPC_EmitNode1, TARGET_VAL(LoongArch::VREPLVE_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, // Results = #2 ++/*574712*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_lo, ++/*574715*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 2, 3, // Results = #4 ++/*574723*/ OPC_EmitInteger, MVT::i32, LoongArch::GPR32RegClassID, ++/*574726*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::i32, 2/*#Ops*/, 4, 5, ++ // Src: (LoongArchVExtractZExt:{ *:[i32] } v4i32:{ *:[v4i32] }:$vj, i32:{ *:[i32] }:$idx, i32:{ *:[Other] }) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } (VREPLVE_W:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vj, i32:{ *:[i32] }:$idx), sub_lo:{ *:[i32] }), GPR32:{ *:[i32] }) ++/*574734*/ /*Scope*/ 62, /*->574797*/ ++/*574735*/ OPC_CheckChild1Type, MVT::i64, ++/*574737*/ OPC_MoveChild2, ++/*574738*/ OPC_CheckValueType, MVT::i32, ++/*574740*/ OPC_MoveParent, ++/*574741*/ OPC_CheckType, MVT::i32, ++/*574743*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*574745*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/*574748*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 1, 2, // Results = #3 ++/*574756*/ OPC_EmitInteger, MVT::i32, LoongArch::GPR32RegClassID, ++/*574759*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::i32, 2/*#Ops*/, 3, 4, // Results = #5 ++/*574767*/ OPC_EmitNode1, TARGET_VAL(LoongArch::VREPLVE_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 5, // Results = #6 ++/*574775*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_lo, ++/*574778*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 6, 7, // Results = #8 ++/*574786*/ OPC_EmitInteger, MVT::i32, LoongArch::GPR32RegClassID, ++/*574789*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::i32, 2/*#Ops*/, 8, 9, ++ // Src: (LoongArchVExtractZExt:{ *:[i32] } v4i32:{ *:[v4i32] }:$vj, i64:{ *:[i64] }:$idx, i32:{ *:[Other] }) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } (VREPLVE_W:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vj, (COPY_TO_REGCLASS:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } i64:{ *:[i64] }:$idx, sub_32:{ *:[i32] }), GPR32:{ *:[i32] })), sub_lo:{ *:[i32] }), GPR32:{ *:[i32] }) ++/*574797*/ 0, /*End of Scope*/ ++/*574798*/ /*Scope*/ 7|128,1/*135*/, /*->574935*/ ++/*574800*/ OPC_CheckChild0Type, MVT::v2i64, ++/*574802*/ OPC_RecordChild1, // #1 = $idx ++/*574803*/ OPC_Scope, 25, /*->574830*/ // 3 children in Scope ++/*574805*/ OPC_MoveChild1, ++/*574806*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*574809*/ OPC_CheckPredicate, 26, // Predicate_immZExt1Ptr ++/*574811*/ OPC_MoveParent, ++/*574812*/ OPC_MoveChild2, ++/*574813*/ OPC_CheckValueType, MVT::i64, ++/*574815*/ OPC_MoveParent, ++/*574816*/ OPC_CheckType, MVT::i64, ++/*574818*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*574820*/ OPC_EmitConvertToTarget, 1, ++/*574822*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VPICKVE2GR_D), 0, ++ MVT::i64, 2/*#Ops*/, 0, 2, ++ // Src: (LoongArchVExtractZExt:{ *:[i64] } LSX128D:{ *:[v2i64] }:$vj, (imm:{ *:[iPTR] })<>:$idx, i64:{ *:[Other] }) - Complexity = 7 ++ // Dst: (VPICKVE2GR_D:{ *:[i64] } LSX128D:{ *:[v2i64] }:$vj, (imm:{ *:[i32] })<>:$idx) ++/*574830*/ /*Scope*/ 40, /*->574871*/ ++/*574831*/ OPC_CheckChild1Type, MVT::i32, ++/*574833*/ OPC_MoveChild2, ++/*574834*/ OPC_CheckValueType, MVT::i64, ++/*574836*/ OPC_MoveParent, ++/*574837*/ OPC_CheckType, MVT::i64, ++/*574839*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*574841*/ OPC_EmitNode1, TARGET_VAL(LoongArch::VREPLVE_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, // Results = #2 ++/*574849*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_64, ++/*574852*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i64, 2/*#Ops*/, 2, 3, // Results = #4 ++/*574860*/ OPC_EmitInteger, MVT::i32, LoongArch::GPR64RegClassID, ++/*574863*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::i64, 2/*#Ops*/, 4, 5, ++ // Src: (LoongArchVExtractZExt:{ *:[i64] } v2i64:{ *:[v2i64] }:$vj, i32:{ *:[i32] }:$idx, i64:{ *:[Other] }) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i64] } (VREPLVE_D:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vj, i32:{ *:[i32] }:$idx), sub_64:{ *:[i32] }), GPR64:{ *:[i32] }) ++/*574871*/ /*Scope*/ 62, /*->574934*/ ++/*574872*/ OPC_CheckChild1Type, MVT::i64, ++/*574874*/ OPC_MoveChild2, ++/*574875*/ OPC_CheckValueType, MVT::i64, ++/*574877*/ OPC_MoveParent, ++/*574878*/ OPC_CheckType, MVT::i64, ++/*574880*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*574882*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/*574885*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 1, 2, // Results = #3 ++/*574893*/ OPC_EmitInteger, MVT::i32, LoongArch::GPR32RegClassID, ++/*574896*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::i32, 2/*#Ops*/, 3, 4, // Results = #5 ++/*574904*/ OPC_EmitNode1, TARGET_VAL(LoongArch::VREPLVE_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 5, // Results = #6 ++/*574912*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_64, ++/*574915*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i64, 2/*#Ops*/, 6, 7, // Results = #8 ++/*574923*/ OPC_EmitInteger, MVT::i32, LoongArch::GPR64RegClassID, ++/*574926*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::i64, 2/*#Ops*/, 8, 9, ++ // Src: (LoongArchVExtractZExt:{ *:[i64] } v2i64:{ *:[v2i64] }:$vj, i64:{ *:[i64] }:$idx, i64:{ *:[Other] }) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i64] } (VREPLVE_D:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vj, (COPY_TO_REGCLASS:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } i64:{ *:[i64] }:$idx, sub_32:{ *:[i32] }), GPR32:{ *:[i32] })), sub_64:{ *:[i32] }), GPR64:{ *:[i32] }) ++/*574934*/ 0, /*End of Scope*/ ++/*574935*/ /*Scope*/ 28, /*->574964*/ ++/*574936*/ OPC_CheckChild0Type, MVT::v2f64, ++/*574938*/ OPC_RecordChild1, // #1 = $idx ++/*574939*/ OPC_MoveChild1, ++/*574940*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*574943*/ OPC_CheckPredicate, 26, // Predicate_immZExt1Ptr ++/*574945*/ OPC_MoveParent, ++/*574946*/ OPC_MoveChild2, ++/*574947*/ OPC_CheckValueType, MVT::i64, ++/*574949*/ OPC_MoveParent, ++/*574950*/ OPC_CheckType, MVT::i64, ++/*574952*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*574954*/ OPC_EmitConvertToTarget, 1, ++/*574956*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VPICKVE2GR_D), 0, ++ MVT::i64, 2/*#Ops*/, 0, 2, ++ // Src: (LoongArchVExtractZExt:{ *:[i64] } LSX128D:{ *:[v2f64] }:$vj, (imm:{ *:[iPTR] })<>:$idx, i64:{ *:[Other] }) - Complexity = 7 ++ // Dst: (VPICKVE2GR_D:{ *:[i64] } LSX128D:{ *:[v2f64] }:$vj, (imm:{ *:[i32] })<>:$idx) ++/*574964*/ /*Scope*/ 26, /*->574991*/ ++/*574965*/ OPC_CheckChild0Type, MVT::v8i32, ++/*574967*/ OPC_RecordChild1, // #1 = $ui3 ++/*574968*/ OPC_MoveChild1, ++/*574969*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*574972*/ OPC_CheckPredicate, 24, // Predicate_immZExt3Ptr ++/*574974*/ OPC_MoveParent, ++/*574975*/ OPC_MoveChild2, ++/*574976*/ OPC_CheckValueType, MVT::i32, ++/*574978*/ OPC_MoveParent, ++/*574979*/ OPC_CheckType, MVT::i32, ++/*574981*/ OPC_EmitConvertToTarget, 1, ++/*574983*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPICKVE2GR_WU), 0, ++ MVT::i32, 2/*#Ops*/, 0, 2, ++ // Src: (LoongArchVExtractZExt:{ *:[i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[iPTR] })<>:$ui3, i32:{ *:[Other] }) - Complexity = 7 ++ // Dst: (XVPICKVE2GR_WU:{ *:[i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, (imm:{ *:[iPTR] }):$ui3) ++/*574991*/ /*Scope*/ 26, /*->575018*/ ++/*574992*/ OPC_CheckChild0Type, MVT::v4i64, ++/*574994*/ OPC_RecordChild1, // #1 = $ui2 ++/*574995*/ OPC_MoveChild1, ++/*574996*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*574999*/ OPC_CheckPredicate, 25, // Predicate_immZExt2Ptr ++/*575001*/ OPC_MoveParent, ++/*575002*/ OPC_MoveChild2, ++/*575003*/ OPC_CheckValueType, MVT::i64, ++/*575005*/ OPC_MoveParent, ++/*575006*/ OPC_CheckType, MVT::i64, ++/*575008*/ OPC_EmitConvertToTarget, 1, ++/*575010*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPICKVE2GR_DU), 0, ++ MVT::i64, 2/*#Ops*/, 0, 2, ++ // Src: (LoongArchVExtractZExt:{ *:[i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[iPTR] })<>:$ui2, i64:{ *:[Other] }) - Complexity = 7 ++ // Dst: (XVPICKVE2GR_DU:{ *:[i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, (imm:{ *:[iPTR] }):$ui2) ++/*575018*/ 0, /*End of Scope*/ ++/*575019*/ /*SwitchOpcode*/ 41, TARGET_VAL(LoongArchISD::TailCall),// ->575063 ++/*575022*/ OPC_RecordNode, // #0 = 'LoongArchTailCall' chained node ++/*575023*/ OPC_CaptureGlueInput, ++/*575024*/ OPC_RecordChild1, // #1 = $dst ++/*575025*/ OPC_Scope, 25, /*->575052*/ // 2 children in Scope ++/*575027*/ OPC_MoveChild1, ++/*575028*/ OPC_SwitchOpcode /*2 cases */, 8, TARGET_VAL(ISD::TargetGlobalAddress),// ->575040 ++/*575032*/ OPC_MoveParent, ++/*575033*/ OPC_EmitMergeInputChains1_0, ++/*575034*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::PseudoTailCall), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic1, ++ 1/*#Ops*/, 1, ++ // Src: (LoongArchTailCall (tglobaladdr:{ *:[iPTR] }):$dst) - Complexity = 6 ++ // Dst: (PseudoTailCall (tglobaladdr:{ *:[iPTR] }):$dst) ++/*575040*/ /*SwitchOpcode*/ 8, TARGET_VAL(ISD::TargetExternalSymbol),// ->575051 ++/*575043*/ OPC_MoveParent, ++/*575044*/ OPC_EmitMergeInputChains1_0, ++/*575045*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::PseudoTailCall), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic1, ++ 1/*#Ops*/, 1, ++ // Src: (LoongArchTailCall (texternalsym:{ *:[iPTR] }):$dst) - Complexity = 6 ++ // Dst: (PseudoTailCall (texternalsym:{ *:[iPTR] }):$dst) ++/*575051*/ 0, // EndSwitchOpcode ++/*575052*/ /*Scope*/ 9, /*->575062*/ ++/*575053*/ OPC_CheckChild1Type, MVT::i64, ++/*575055*/ OPC_EmitMergeInputChains1_0, ++/*575056*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::PseudoTAILIndirect), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic1, ++ 1/*#Ops*/, 1, ++ // Src: (LoongArchTailCall GPRTC64Opnd:{ *:[i64] }:$rj) - Complexity = 3 ++ // Dst: (PseudoTAILIndirect GPRTC64Opnd:{ *:[i64] }:$rj) ++/*575062*/ 0, /*End of Scope*/ ++/*575063*/ /*SwitchOpcode*/ 70, TARGET_VAL(LoongArchISD::JmpLink),// ->575136 ++/*575066*/ OPC_RecordNode, // #0 = 'LoongArchJmpLink' chained node ++/*575067*/ OPC_CaptureGlueInput, ++/*575068*/ OPC_RecordChild1, // #1 = $dst ++/*575069*/ OPC_Scope, 53, /*->575124*/ // 2 children in Scope ++/*575071*/ OPC_MoveChild1, ++/*575072*/ OPC_SwitchOpcode /*2 cases */, 20, TARGET_VAL(ISD::TargetGlobalAddress),// ->575096 ++/*575076*/ OPC_MoveParent, ++/*575077*/ OPC_EmitMergeInputChains1_0, ++/*575078*/ OPC_Scope, 7, /*->575087*/ // 2 children in Scope ++/*575080*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::PseudoCall), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1, ++ MVT::i32, 1/*#Ops*/, 1, ++ // Src: (LoongArchJmpLink (tglobaladdr:{ *:[iPTR] }):$dst) - Complexity = 6 ++ // Dst: (PseudoCall:{ *:[i32] } (tglobaladdr:{ *:[iPTR] }):$dst) ++/*575087*/ /*Scope*/ 7, /*->575095*/ ++/*575088*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::BL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1, ++ MVT::i32, 1/*#Ops*/, 1, ++ // Src: (LoongArchJmpLink (tglobaladdr:{ *:[iPTR] }):$target) - Complexity = 6 ++ // Dst: (BL:{ *:[i32] } (tglobaladdr:{ *:[iPTR] }):$target) ++/*575095*/ 0, /*End of Scope*/ ++/*575096*/ /*SwitchOpcode*/ 24, TARGET_VAL(ISD::TargetExternalSymbol),// ->575123 ++/*575099*/ OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->575111 ++/*575102*/ OPC_MoveParent, ++/*575103*/ OPC_EmitMergeInputChains1_0, ++/*575104*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::PseudoCall), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1, ++ MVT::i32, 1/*#Ops*/, 1, ++ // Src: (LoongArchJmpLink (texternalsym:{ *:[i32] }):$dst) - Complexity = 6 ++ // Dst: (PseudoCall:{ *:[i32] } (texternalsym:{ *:[i32] }):$dst) ++/*575111*/ /*SwitchType*/ 9, MVT::i64,// ->575122 ++/*575113*/ OPC_MoveParent, ++/*575114*/ OPC_EmitMergeInputChains1_0, ++/*575115*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::PseudoCall), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1, ++ MVT::i32, 1/*#Ops*/, 1, ++ // Src: (LoongArchJmpLink (texternalsym:{ *:[i64] }):$dst) - Complexity = 6 ++ // Dst: (PseudoCall:{ *:[i32] } (texternalsym:{ *:[i64] }):$dst) ++/*575122*/ 0, // EndSwitchType ++/*575123*/ 0, // EndSwitchOpcode ++/*575124*/ /*Scope*/ 10, /*->575135*/ ++/*575125*/ OPC_CheckChild1Type, MVT::i64, ++/*575127*/ OPC_EmitMergeInputChains1_0, ++/*575128*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::JIRLRPseudo), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1, ++ MVT::i32, 1/*#Ops*/, 1, ++ // Src: (LoongArchJmpLink GPR64Opnd:{ *:[i64] }:$rj) - Complexity = 3 ++ // Dst: (JIRLRPseudo:{ *:[i32] } GPR64Opnd:{ *:[i64] }:$rj) ++/*575135*/ 0, /*End of Scope*/ ++/*575136*/ /*SwitchOpcode*/ 45, TARGET_VAL(LoongArchISD::FPCmp),// ->575184 ++/*575139*/ OPC_RecordChild0, // #0 = $fj ++/*575140*/ OPC_Scope, 20, /*->575162*/ // 2 children in Scope ++/*575142*/ OPC_CheckChild0Type, MVT::f32, ++/*575144*/ OPC_RecordChild1, // #1 = $fk ++/*575145*/ OPC_RecordChild2, // #2 = $cond ++/*575146*/ OPC_MoveChild2, ++/*575147*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*575150*/ OPC_MoveParent, ++/*575151*/ OPC_EmitConvertToTarget, 2, ++/*575153*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_S32), 0|OPFL_GlueOutput, ++ MVT::i32, 3/*#Ops*/, 0, 1, 3, ++ // Src: (LoongArchFPCmp FGR32:{ *:[f32] }:$fj, FGR32:{ *:[f32] }:$fk, (imm:{ *:[i32] }):$cond) - Complexity = 6 ++ // Dst: (FCMP_S32:{ *:[i32] } FGR32:{ *:[f32] }:$fj, FGR32:{ *:[f32] }:$fk, (imm:{ *:[i32] }):$cond) ++/*575162*/ /*Scope*/ 20, /*->575183*/ ++/*575163*/ OPC_CheckChild0Type, MVT::f64, ++/*575165*/ OPC_RecordChild1, // #1 = $fk ++/*575166*/ OPC_RecordChild2, // #2 = $cond ++/*575167*/ OPC_MoveChild2, ++/*575168*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*575171*/ OPC_MoveParent, ++/*575172*/ OPC_EmitConvertToTarget, 2, ++/*575174*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_D64), 0|OPFL_GlueOutput, ++ MVT::i32, 3/*#Ops*/, 0, 1, 3, ++ // Src: (LoongArchFPCmp FGR64:{ *:[f64] }:$fj, FGR64:{ *:[f64] }:$fk, (imm:{ *:[i32] }):$cond) - Complexity = 6 ++ // Dst: (FCMP_D64:{ *:[i32] } FGR64:{ *:[f64] }:$fj, FGR64:{ *:[f64] }:$fk, (imm:{ *:[i32] }):$cond) ++/*575183*/ 0, /*End of Scope*/ ++/*575184*/ /*SwitchOpcode*/ 108, TARGET_VAL(LoongArchISD::GlobalAddress),// ->575295 ++/*575187*/ OPC_RecordChild0, // #0 = $in ++/*575188*/ OPC_MoveChild0, ++/*575189*/ OPC_SwitchOpcode /*4 cases */, 23, TARGET_VAL(ISD::TargetGlobalAddress),// ->575216 ++/*575193*/ OPC_MoveParent, ++/*575194*/ OPC_CheckType, MVT::i32, ++/*575196*/ OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit()) ++/*575198*/ OPC_EmitNode1, TARGET_VAL(LoongArch::PCADDU12I32), 0, ++ MVT::i32, 1/*#Ops*/, 0, // Results = #1 ++/*575205*/ OPC_EmitInteger, MVT::i32, 0, ++/*575208*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ADDI_W), 0, ++ MVT::i32, 2/*#Ops*/, 1, 2, ++ // Src: (LoongArchAddress:{ *:[i32] } (tglobaladdr:{ *:[i32] }):$in) - Complexity = 6 ++ // Dst: (ADDI_W:{ *:[i32] } (PCADDU12I32:{ *:[i32] } (tglobaladdr:{ *:[i32] }):$in), 0:{ *:[i32] }) ++/*575216*/ /*SwitchOpcode*/ 23, TARGET_VAL(ISD::TargetBlockAddress),// ->575242 ++/*575219*/ OPC_MoveParent, ++/*575220*/ OPC_CheckType, MVT::i32, ++/*575222*/ OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit()) ++/*575224*/ OPC_EmitNode1, TARGET_VAL(LoongArch::PCADDU12I32), 0, ++ MVT::i32, 1/*#Ops*/, 0, // Results = #1 ++/*575231*/ OPC_EmitInteger, MVT::i32, 0, ++/*575234*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ADDI_W), 0, ++ MVT::i32, 2/*#Ops*/, 1, 2, ++ // Src: (LoongArchAddress:{ *:[i32] } (tblockaddress:{ *:[i32] }):$in) - Complexity = 6 ++ // Dst: (ADDI_W:{ *:[i32] } (PCADDU12I32:{ *:[i32] } (tblockaddress:{ *:[i32] }):$in), 0:{ *:[i32] }) ++/*575242*/ /*SwitchOpcode*/ 23, TARGET_VAL(ISD::TargetJumpTable),// ->575268 ++/*575245*/ OPC_MoveParent, ++/*575246*/ OPC_CheckType, MVT::i32, ++/*575248*/ OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit()) ++/*575250*/ OPC_EmitNode1, TARGET_VAL(LoongArch::PCADDU12I32), 0, ++ MVT::i32, 1/*#Ops*/, 0, // Results = #1 ++/*575257*/ OPC_EmitInteger, MVT::i32, 0, ++/*575260*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ADDI_W), 0, ++ MVT::i32, 2/*#Ops*/, 1, 2, ++ // Src: (LoongArchAddress:{ *:[i32] } (tjumptable:{ *:[i32] }):$in) - Complexity = 6 ++ // Dst: (ADDI_W:{ *:[i32] } (PCADDU12I32:{ *:[i32] } (tjumptable:{ *:[i32] }):$in), 0:{ *:[i32] }) ++/*575268*/ /*SwitchOpcode*/ 23, TARGET_VAL(ISD::TargetExternalSymbol),// ->575294 ++/*575271*/ OPC_MoveParent, ++/*575272*/ OPC_CheckType, MVT::i32, ++/*575274*/ OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit()) ++/*575276*/ OPC_EmitNode1, TARGET_VAL(LoongArch::PCADDU12I32), 0, ++ MVT::i32, 1/*#Ops*/, 0, // Results = #1 ++/*575283*/ OPC_EmitInteger, MVT::i32, 0, ++/*575286*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ADDI_W), 0, ++ MVT::i32, 2/*#Ops*/, 1, 2, ++ // Src: (LoongArchAddress:{ *:[i32] } (texternalsym:{ *:[i32] }):$in) - Complexity = 6 ++ // Dst: (ADDI_W:{ *:[i32] } (PCADDU12I32:{ *:[i32] } (texternalsym:{ *:[i32] }):$in), 0:{ *:[i32] }) ++/*575294*/ 0, // EndSwitchOpcode ++/*575295*/ /*SwitchOpcode*/ 59, TARGET_VAL(ISD::ATOMIC_LOAD_ADD),// ->575357 ++/*575298*/ OPC_RecordMemRef, ++/*575299*/ OPC_RecordNode, // #0 = 'atomic_load_add' chained node ++/*575300*/ OPC_RecordChild1, // #1 = $ptr ++/*575301*/ OPC_RecordChild2, // #2 = $incr ++/*575302*/ OPC_SwitchType /*2 cases */, 11, MVT::i64,// ->575316 ++/*575305*/ OPC_CheckPredicate, 17, // Predicate_atomic_load_add_64 ++/*575307*/ OPC_EmitMergeInputChains1_0, ++/*575308*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ATOMIC_LOAD_ADD_I64), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i64, 2/*#Ops*/, 1, 2, ++ // Src: (atomic_load_add:{ *:[i64] } iPTR:{ *:[iPTR] }:$ptr, GPR64:{ *:[i64] }:$incr)<> - Complexity = 4 ++ // Dst: (ATOMIC_LOAD_ADD_I64:{ *:[i64] } iPTR:{ *:[iPTR] }:$ptr, GPR64:{ *:[i64] }:$incr) ++/*575316*/ /*SwitchType*/ 38, MVT::i32,// ->575356 ++/*575318*/ OPC_Scope, 11, /*->575331*/ // 3 children in Scope ++/*575320*/ OPC_CheckPredicate, 2, // Predicate_atomic_load_add_8 ++/*575322*/ OPC_EmitMergeInputChains1_0, ++/*575323*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ATOMIC_LOAD_ADD_I8), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 1, 2, ++ // Src: (atomic_load_add:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr)<> - Complexity = 4 ++ // Dst: (ATOMIC_LOAD_ADD_I8:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr) ++/*575331*/ /*Scope*/ 11, /*->575343*/ ++/*575332*/ OPC_CheckPredicate, 3, // Predicate_atomic_load_add_16 ++/*575334*/ OPC_EmitMergeInputChains1_0, ++/*575335*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ATOMIC_LOAD_ADD_I16), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 1, 2, ++ // Src: (atomic_load_add:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr)<> - Complexity = 4 ++ // Dst: (ATOMIC_LOAD_ADD_I16:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr) ++/*575343*/ /*Scope*/ 11, /*->575355*/ ++/*575344*/ OPC_CheckPredicate, 4, // Predicate_atomic_load_add_32 ++/*575346*/ OPC_EmitMergeInputChains1_0, ++/*575347*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ATOMIC_LOAD_ADD_I32), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 1, 2, ++ // Src: (atomic_load_add:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr)<> - Complexity = 4 ++ // Dst: (ATOMIC_LOAD_ADD_I32:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr) ++/*575355*/ 0, /*End of Scope*/ ++/*575356*/ 0, // EndSwitchType ++/*575357*/ /*SwitchOpcode*/ 59, TARGET_VAL(ISD::ATOMIC_LOAD_SUB),// ->575419 ++/*575360*/ OPC_RecordMemRef, ++/*575361*/ OPC_RecordNode, // #0 = 'atomic_load_sub' chained node ++/*575362*/ OPC_RecordChild1, // #1 = $ptr ++/*575363*/ OPC_RecordChild2, // #2 = $incr ++/*575364*/ OPC_SwitchType /*2 cases */, 11, MVT::i64,// ->575378 ++/*575367*/ OPC_CheckPredicate, 17, // Predicate_atomic_load_sub_64 ++/*575369*/ OPC_EmitMergeInputChains1_0, ++/*575370*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ATOMIC_LOAD_SUB_I64), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i64, 2/*#Ops*/, 1, 2, ++ // Src: (atomic_load_sub:{ *:[i64] } iPTR:{ *:[iPTR] }:$ptr, GPR64:{ *:[i64] }:$incr)<> - Complexity = 4 ++ // Dst: (ATOMIC_LOAD_SUB_I64:{ *:[i64] } iPTR:{ *:[iPTR] }:$ptr, GPR64:{ *:[i64] }:$incr) ++/*575378*/ /*SwitchType*/ 38, MVT::i32,// ->575418 ++/*575380*/ OPC_Scope, 11, /*->575393*/ // 3 children in Scope ++/*575382*/ OPC_CheckPredicate, 2, // Predicate_atomic_load_sub_8 ++/*575384*/ OPC_EmitMergeInputChains1_0, ++/*575385*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ATOMIC_LOAD_SUB_I8), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 1, 2, ++ // Src: (atomic_load_sub:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr)<> - Complexity = 4 ++ // Dst: (ATOMIC_LOAD_SUB_I8:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr) ++/*575393*/ /*Scope*/ 11, /*->575405*/ ++/*575394*/ OPC_CheckPredicate, 3, // Predicate_atomic_load_sub_16 ++/*575396*/ OPC_EmitMergeInputChains1_0, ++/*575397*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ATOMIC_LOAD_SUB_I16), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 1, 2, ++ // Src: (atomic_load_sub:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr)<> - Complexity = 4 ++ // Dst: (ATOMIC_LOAD_SUB_I16:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr) ++/*575405*/ /*Scope*/ 11, /*->575417*/ ++/*575406*/ OPC_CheckPredicate, 4, // Predicate_atomic_load_sub_32 ++/*575408*/ OPC_EmitMergeInputChains1_0, ++/*575409*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ATOMIC_LOAD_SUB_I32), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 1, 2, ++ // Src: (atomic_load_sub:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr)<> - Complexity = 4 ++ // Dst: (ATOMIC_LOAD_SUB_I32:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr) ++/*575417*/ 0, /*End of Scope*/ ++/*575418*/ 0, // EndSwitchType ++/*575419*/ /*SwitchOpcode*/ 59, TARGET_VAL(ISD::ATOMIC_LOAD_AND),// ->575481 ++/*575422*/ OPC_RecordMemRef, ++/*575423*/ OPC_RecordNode, // #0 = 'atomic_load_and' chained node ++/*575424*/ OPC_RecordChild1, // #1 = $ptr ++/*575425*/ OPC_RecordChild2, // #2 = $incr ++/*575426*/ OPC_SwitchType /*2 cases */, 11, MVT::i64,// ->575440 ++/*575429*/ OPC_CheckPredicate, 17, // Predicate_atomic_load_and_64 ++/*575431*/ OPC_EmitMergeInputChains1_0, ++/*575432*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ATOMIC_LOAD_AND_I64), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i64, 2/*#Ops*/, 1, 2, ++ // Src: (atomic_load_and:{ *:[i64] } iPTR:{ *:[iPTR] }:$ptr, GPR64:{ *:[i64] }:$incr)<> - Complexity = 4 ++ // Dst: (ATOMIC_LOAD_AND_I64:{ *:[i64] } iPTR:{ *:[iPTR] }:$ptr, GPR64:{ *:[i64] }:$incr) ++/*575440*/ /*SwitchType*/ 38, MVT::i32,// ->575480 ++/*575442*/ OPC_Scope, 11, /*->575455*/ // 3 children in Scope ++/*575444*/ OPC_CheckPredicate, 2, // Predicate_atomic_load_and_8 ++/*575446*/ OPC_EmitMergeInputChains1_0, ++/*575447*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ATOMIC_LOAD_AND_I8), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 1, 2, ++ // Src: (atomic_load_and:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr)<> - Complexity = 4 ++ // Dst: (ATOMIC_LOAD_AND_I8:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr) ++/*575455*/ /*Scope*/ 11, /*->575467*/ ++/*575456*/ OPC_CheckPredicate, 3, // Predicate_atomic_load_and_16 ++/*575458*/ OPC_EmitMergeInputChains1_0, ++/*575459*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ATOMIC_LOAD_AND_I16), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 1, 2, ++ // Src: (atomic_load_and:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr)<> - Complexity = 4 ++ // Dst: (ATOMIC_LOAD_AND_I16:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr) ++/*575467*/ /*Scope*/ 11, /*->575479*/ ++/*575468*/ OPC_CheckPredicate, 4, // Predicate_atomic_load_and_32 ++/*575470*/ OPC_EmitMergeInputChains1_0, ++/*575471*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ATOMIC_LOAD_AND_I32), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 1, 2, ++ // Src: (atomic_load_and:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr)<> - Complexity = 4 ++ // Dst: (ATOMIC_LOAD_AND_I32:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr) ++/*575479*/ 0, /*End of Scope*/ ++/*575480*/ 0, // EndSwitchType ++/*575481*/ /*SwitchOpcode*/ 59, TARGET_VAL(ISD::ATOMIC_LOAD_OR),// ->575543 ++/*575484*/ OPC_RecordMemRef, ++/*575485*/ OPC_RecordNode, // #0 = 'atomic_load_or' chained node ++/*575486*/ OPC_RecordChild1, // #1 = $ptr ++/*575487*/ OPC_RecordChild2, // #2 = $incr ++/*575488*/ OPC_SwitchType /*2 cases */, 11, MVT::i64,// ->575502 ++/*575491*/ OPC_CheckPredicate, 17, // Predicate_atomic_load_or_64 ++/*575493*/ OPC_EmitMergeInputChains1_0, ++/*575494*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ATOMIC_LOAD_OR_I64), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i64, 2/*#Ops*/, 1, 2, ++ // Src: (atomic_load_or:{ *:[i64] } iPTR:{ *:[iPTR] }:$ptr, GPR64:{ *:[i64] }:$incr)<> - Complexity = 4 ++ // Dst: (ATOMIC_LOAD_OR_I64:{ *:[i64] } iPTR:{ *:[iPTR] }:$ptr, GPR64:{ *:[i64] }:$incr) ++/*575502*/ /*SwitchType*/ 38, MVT::i32,// ->575542 ++/*575504*/ OPC_Scope, 11, /*->575517*/ // 3 children in Scope ++/*575506*/ OPC_CheckPredicate, 2, // Predicate_atomic_load_or_8 ++/*575508*/ OPC_EmitMergeInputChains1_0, ++/*575509*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ATOMIC_LOAD_OR_I8), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 1, 2, ++ // Src: (atomic_load_or:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr)<> - Complexity = 4 ++ // Dst: (ATOMIC_LOAD_OR_I8:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr) ++/*575517*/ /*Scope*/ 11, /*->575529*/ ++/*575518*/ OPC_CheckPredicate, 3, // Predicate_atomic_load_or_16 ++/*575520*/ OPC_EmitMergeInputChains1_0, ++/*575521*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ATOMIC_LOAD_OR_I16), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 1, 2, ++ // Src: (atomic_load_or:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr)<> - Complexity = 4 ++ // Dst: (ATOMIC_LOAD_OR_I16:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr) ++/*575529*/ /*Scope*/ 11, /*->575541*/ ++/*575530*/ OPC_CheckPredicate, 4, // Predicate_atomic_load_or_32 ++/*575532*/ OPC_EmitMergeInputChains1_0, ++/*575533*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ATOMIC_LOAD_OR_I32), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 1, 2, ++ // Src: (atomic_load_or:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr)<> - Complexity = 4 ++ // Dst: (ATOMIC_LOAD_OR_I32:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr) ++/*575541*/ 0, /*End of Scope*/ ++/*575542*/ 0, // EndSwitchType ++/*575543*/ /*SwitchOpcode*/ 59, TARGET_VAL(ISD::ATOMIC_LOAD_XOR),// ->575605 ++/*575546*/ OPC_RecordMemRef, ++/*575547*/ OPC_RecordNode, // #0 = 'atomic_load_xor' chained node ++/*575548*/ OPC_RecordChild1, // #1 = $ptr ++/*575549*/ OPC_RecordChild2, // #2 = $incr ++/*575550*/ OPC_SwitchType /*2 cases */, 11, MVT::i64,// ->575564 ++/*575553*/ OPC_CheckPredicate, 17, // Predicate_atomic_load_xor_64 ++/*575555*/ OPC_EmitMergeInputChains1_0, ++/*575556*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ATOMIC_LOAD_XOR_I64), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i64, 2/*#Ops*/, 1, 2, ++ // Src: (atomic_load_xor:{ *:[i64] } iPTR:{ *:[iPTR] }:$ptr, GPR64:{ *:[i64] }:$incr)<> - Complexity = 4 ++ // Dst: (ATOMIC_LOAD_XOR_I64:{ *:[i64] } iPTR:{ *:[iPTR] }:$ptr, GPR64:{ *:[i64] }:$incr) ++/*575564*/ /*SwitchType*/ 38, MVT::i32,// ->575604 ++/*575566*/ OPC_Scope, 11, /*->575579*/ // 3 children in Scope ++/*575568*/ OPC_CheckPredicate, 2, // Predicate_atomic_load_xor_8 ++/*575570*/ OPC_EmitMergeInputChains1_0, ++/*575571*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ATOMIC_LOAD_XOR_I8), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 1, 2, ++ // Src: (atomic_load_xor:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr)<> - Complexity = 4 ++ // Dst: (ATOMIC_LOAD_XOR_I8:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr) ++/*575579*/ /*Scope*/ 11, /*->575591*/ ++/*575580*/ OPC_CheckPredicate, 3, // Predicate_atomic_load_xor_16 ++/*575582*/ OPC_EmitMergeInputChains1_0, ++/*575583*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ATOMIC_LOAD_XOR_I16), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 1, 2, ++ // Src: (atomic_load_xor:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr)<> - Complexity = 4 ++ // Dst: (ATOMIC_LOAD_XOR_I16:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr) ++/*575591*/ /*Scope*/ 11, /*->575603*/ ++/*575592*/ OPC_CheckPredicate, 4, // Predicate_atomic_load_xor_32 ++/*575594*/ OPC_EmitMergeInputChains1_0, ++/*575595*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ATOMIC_LOAD_XOR_I32), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 1, 2, ++ // Src: (atomic_load_xor:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr)<> - Complexity = 4 ++ // Dst: (ATOMIC_LOAD_XOR_I32:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr) ++/*575603*/ 0, /*End of Scope*/ ++/*575604*/ 0, // EndSwitchType ++/*575605*/ /*SwitchOpcode*/ 59, TARGET_VAL(ISD::ATOMIC_LOAD_NAND),// ->575667 ++/*575608*/ OPC_RecordMemRef, ++/*575609*/ OPC_RecordNode, // #0 = 'atomic_load_nand' chained node ++/*575610*/ OPC_RecordChild1, // #1 = $ptr ++/*575611*/ OPC_RecordChild2, // #2 = $incr ++/*575612*/ OPC_SwitchType /*2 cases */, 11, MVT::i64,// ->575626 ++/*575615*/ OPC_CheckPredicate, 17, // Predicate_atomic_load_nand_64 ++/*575617*/ OPC_EmitMergeInputChains1_0, ++/*575618*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ATOMIC_LOAD_NAND_I64), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i64, 2/*#Ops*/, 1, 2, ++ // Src: (atomic_load_nand:{ *:[i64] } iPTR:{ *:[iPTR] }:$ptr, GPR64:{ *:[i64] }:$incr)<> - Complexity = 4 ++ // Dst: (ATOMIC_LOAD_NAND_I64:{ *:[i64] } iPTR:{ *:[iPTR] }:$ptr, GPR64:{ *:[i64] }:$incr) ++/*575626*/ /*SwitchType*/ 38, MVT::i32,// ->575666 ++/*575628*/ OPC_Scope, 11, /*->575641*/ // 3 children in Scope ++/*575630*/ OPC_CheckPredicate, 2, // Predicate_atomic_load_nand_8 ++/*575632*/ OPC_EmitMergeInputChains1_0, ++/*575633*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ATOMIC_LOAD_NAND_I8), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 1, 2, ++ // Src: (atomic_load_nand:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr)<> - Complexity = 4 ++ // Dst: (ATOMIC_LOAD_NAND_I8:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr) ++/*575641*/ /*Scope*/ 11, /*->575653*/ ++/*575642*/ OPC_CheckPredicate, 3, // Predicate_atomic_load_nand_16 ++/*575644*/ OPC_EmitMergeInputChains1_0, ++/*575645*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ATOMIC_LOAD_NAND_I16), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 1, 2, ++ // Src: (atomic_load_nand:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr)<> - Complexity = 4 ++ // Dst: (ATOMIC_LOAD_NAND_I16:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr) ++/*575653*/ /*Scope*/ 11, /*->575665*/ ++/*575654*/ OPC_CheckPredicate, 4, // Predicate_atomic_load_nand_32 ++/*575656*/ OPC_EmitMergeInputChains1_0, ++/*575657*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ATOMIC_LOAD_NAND_I32), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 1, 2, ++ // Src: (atomic_load_nand:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr)<> - Complexity = 4 ++ // Dst: (ATOMIC_LOAD_NAND_I32:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr) ++/*575665*/ 0, /*End of Scope*/ ++/*575666*/ 0, // EndSwitchType ++/*575667*/ /*SwitchOpcode*/ 59, TARGET_VAL(ISD::ATOMIC_SWAP),// ->575729 ++/*575670*/ OPC_RecordMemRef, ++/*575671*/ OPC_RecordNode, // #0 = 'atomic_swap' chained node ++/*575672*/ OPC_RecordChild1, // #1 = $ptr ++/*575673*/ OPC_RecordChild2, // #2 = $incr ++/*575674*/ OPC_SwitchType /*2 cases */, 11, MVT::i64,// ->575688 ++/*575677*/ OPC_CheckPredicate, 17, // Predicate_atomic_swap_64 ++/*575679*/ OPC_EmitMergeInputChains1_0, ++/*575680*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ATOMIC_SWAP_I64), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i64, 2/*#Ops*/, 1, 2, ++ // Src: (atomic_swap:{ *:[i64] } iPTR:{ *:[iPTR] }:$ptr, GPR64:{ *:[i64] }:$incr)<> - Complexity = 4 ++ // Dst: (ATOMIC_SWAP_I64:{ *:[i64] } iPTR:{ *:[iPTR] }:$ptr, GPR64:{ *:[i64] }:$incr) ++/*575688*/ /*SwitchType*/ 38, MVT::i32,// ->575728 ++/*575690*/ OPC_Scope, 11, /*->575703*/ // 3 children in Scope ++/*575692*/ OPC_CheckPredicate, 2, // Predicate_atomic_swap_8 ++/*575694*/ OPC_EmitMergeInputChains1_0, ++/*575695*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ATOMIC_SWAP_I8), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 1, 2, ++ // Src: (atomic_swap:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr)<> - Complexity = 4 ++ // Dst: (ATOMIC_SWAP_I8:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr) ++/*575703*/ /*Scope*/ 11, /*->575715*/ ++/*575704*/ OPC_CheckPredicate, 3, // Predicate_atomic_swap_16 ++/*575706*/ OPC_EmitMergeInputChains1_0, ++/*575707*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ATOMIC_SWAP_I16), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 1, 2, ++ // Src: (atomic_swap:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr)<> - Complexity = 4 ++ // Dst: (ATOMIC_SWAP_I16:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr) ++/*575715*/ /*Scope*/ 11, /*->575727*/ ++/*575716*/ OPC_CheckPredicate, 4, // Predicate_atomic_swap_32 ++/*575718*/ OPC_EmitMergeInputChains1_0, ++/*575719*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ATOMIC_SWAP_I32), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 1, 2, ++ // Src: (atomic_swap:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr)<> - Complexity = 4 ++ // Dst: (ATOMIC_SWAP_I32:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr) ++/*575727*/ 0, /*End of Scope*/ ++/*575728*/ 0, // EndSwitchType ++/*575729*/ /*SwitchOpcode*/ 64, TARGET_VAL(ISD::ATOMIC_CMP_SWAP),// ->575796 ++/*575732*/ OPC_RecordMemRef, ++/*575733*/ OPC_RecordNode, // #0 = 'atomic_cmp_swap' chained node ++/*575734*/ OPC_RecordChild1, // #1 = $ptr ++/*575735*/ OPC_RecordChild2, // #2 = $cmp ++/*575736*/ OPC_RecordChild3, // #3 = $swap ++/*575737*/ OPC_SwitchType /*2 cases */, 12, MVT::i64,// ->575752 ++/*575740*/ OPC_CheckPredicate, 17, // Predicate_atomic_cmp_swap_64 ++/*575742*/ OPC_EmitMergeInputChains1_0, ++/*575743*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ATOMIC_CMP_SWAP_I64), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i64, 3/*#Ops*/, 1, 2, 3, ++ // Src: (atomic_cmp_swap:{ *:[i64] } iPTR:{ *:[iPTR] }:$ptr, GPR64:{ *:[i64] }:$cmp, GPR64:{ *:[i64] }:$swap)<> - Complexity = 4 ++ // Dst: (ATOMIC_CMP_SWAP_I64:{ *:[i64] } iPTR:{ *:[iPTR] }:$ptr, GPR64:{ *:[i64] }:$cmp, GPR64:{ *:[i64] }:$swap) ++/*575752*/ /*SwitchType*/ 41, MVT::i32,// ->575795 ++/*575754*/ OPC_Scope, 12, /*->575768*/ // 3 children in Scope ++/*575756*/ OPC_CheckPredicate, 2, // Predicate_atomic_cmp_swap_8 ++/*575758*/ OPC_EmitMergeInputChains1_0, ++/*575759*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ATOMIC_CMP_SWAP_I8), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 3/*#Ops*/, 1, 2, 3, ++ // Src: (atomic_cmp_swap:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$cmp, GPR32:{ *:[i32] }:$swap)<> - Complexity = 4 ++ // Dst: (ATOMIC_CMP_SWAP_I8:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$cmp, GPR32:{ *:[i32] }:$swap) ++/*575768*/ /*Scope*/ 12, /*->575781*/ ++/*575769*/ OPC_CheckPredicate, 3, // Predicate_atomic_cmp_swap_16 ++/*575771*/ OPC_EmitMergeInputChains1_0, ++/*575772*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ATOMIC_CMP_SWAP_I16), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 3/*#Ops*/, 1, 2, 3, ++ // Src: (atomic_cmp_swap:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$cmp, GPR32:{ *:[i32] }:$swap)<> - Complexity = 4 ++ // Dst: (ATOMIC_CMP_SWAP_I16:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$cmp, GPR32:{ *:[i32] }:$swap) ++/*575781*/ /*Scope*/ 12, /*->575794*/ ++/*575782*/ OPC_CheckPredicate, 4, // Predicate_atomic_cmp_swap_32 ++/*575784*/ OPC_EmitMergeInputChains1_0, ++/*575785*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ATOMIC_CMP_SWAP_I32), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 3/*#Ops*/, 1, 2, 3, ++ // Src: (atomic_cmp_swap:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$cmp, GPR32:{ *:[i32] }:$swap)<> - Complexity = 4 ++ // Dst: (ATOMIC_CMP_SWAP_I32:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$cmp, GPR32:{ *:[i32] }:$swap) ++/*575794*/ 0, /*End of Scope*/ ++/*575795*/ 0, // EndSwitchType ++/*575796*/ /*SwitchOpcode*/ 59, TARGET_VAL(ISD::ATOMIC_LOAD_MAX),// ->575858 ++/*575799*/ OPC_RecordMemRef, ++/*575800*/ OPC_RecordNode, // #0 = 'atomic_load_max' chained node ++/*575801*/ OPC_RecordChild1, // #1 = $ptr ++/*575802*/ OPC_RecordChild2, // #2 = $incr ++/*575803*/ OPC_SwitchType /*2 cases */, 11, MVT::i64,// ->575817 ++/*575806*/ OPC_CheckPredicate, 17, // Predicate_atomic_load_max_64 ++/*575808*/ OPC_EmitMergeInputChains1_0, ++/*575809*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ATOMIC_LOAD_MAX_I64), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i64, 2/*#Ops*/, 1, 2, ++ // Src: (atomic_load_max:{ *:[i64] } iPTR:{ *:[iPTR] }:$ptr, GPR64:{ *:[i64] }:$incr)<> - Complexity = 4 ++ // Dst: (ATOMIC_LOAD_MAX_I64:{ *:[i64] } iPTR:{ *:[iPTR] }:$ptr, GPR64:{ *:[i64] }:$incr) ++/*575817*/ /*SwitchType*/ 38, MVT::i32,// ->575857 ++/*575819*/ OPC_Scope, 11, /*->575832*/ // 3 children in Scope ++/*575821*/ OPC_CheckPredicate, 2, // Predicate_atomic_load_max_8 ++/*575823*/ OPC_EmitMergeInputChains1_0, ++/*575824*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ATOMIC_LOAD_MAX_I8), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 1, 2, ++ // Src: (atomic_load_max:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr)<> - Complexity = 4 ++ // Dst: (ATOMIC_LOAD_MAX_I8:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr) ++/*575832*/ /*Scope*/ 11, /*->575844*/ ++/*575833*/ OPC_CheckPredicate, 3, // Predicate_atomic_load_max_16 ++/*575835*/ OPC_EmitMergeInputChains1_0, ++/*575836*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ATOMIC_LOAD_MAX_I16), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 1, 2, ++ // Src: (atomic_load_max:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr)<> - Complexity = 4 ++ // Dst: (ATOMIC_LOAD_MAX_I16:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr) ++/*575844*/ /*Scope*/ 11, /*->575856*/ ++/*575845*/ OPC_CheckPredicate, 4, // Predicate_atomic_load_max_32 ++/*575847*/ OPC_EmitMergeInputChains1_0, ++/*575848*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ATOMIC_LOAD_MAX_I32), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 1, 2, ++ // Src: (atomic_load_max:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr)<> - Complexity = 4 ++ // Dst: (ATOMIC_LOAD_MAX_I32:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr) ++/*575856*/ 0, /*End of Scope*/ ++/*575857*/ 0, // EndSwitchType ++/*575858*/ /*SwitchOpcode*/ 59, TARGET_VAL(ISD::ATOMIC_LOAD_MIN),// ->575920 ++/*575861*/ OPC_RecordMemRef, ++/*575862*/ OPC_RecordNode, // #0 = 'atomic_load_min' chained node ++/*575863*/ OPC_RecordChild1, // #1 = $ptr ++/*575864*/ OPC_RecordChild2, // #2 = $incr ++/*575865*/ OPC_SwitchType /*2 cases */, 11, MVT::i64,// ->575879 ++/*575868*/ OPC_CheckPredicate, 17, // Predicate_atomic_load_min_64 ++/*575870*/ OPC_EmitMergeInputChains1_0, ++/*575871*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ATOMIC_LOAD_MIN_I64), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i64, 2/*#Ops*/, 1, 2, ++ // Src: (atomic_load_min:{ *:[i64] } iPTR:{ *:[iPTR] }:$ptr, GPR64:{ *:[i64] }:$incr)<> - Complexity = 4 ++ // Dst: (ATOMIC_LOAD_MIN_I64:{ *:[i64] } iPTR:{ *:[iPTR] }:$ptr, GPR64:{ *:[i64] }:$incr) ++/*575879*/ /*SwitchType*/ 38, MVT::i32,// ->575919 ++/*575881*/ OPC_Scope, 11, /*->575894*/ // 3 children in Scope ++/*575883*/ OPC_CheckPredicate, 2, // Predicate_atomic_load_min_8 ++/*575885*/ OPC_EmitMergeInputChains1_0, ++/*575886*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ATOMIC_LOAD_MIN_I8), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 1, 2, ++ // Src: (atomic_load_min:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr)<> - Complexity = 4 ++ // Dst: (ATOMIC_LOAD_MIN_I8:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr) ++/*575894*/ /*Scope*/ 11, /*->575906*/ ++/*575895*/ OPC_CheckPredicate, 3, // Predicate_atomic_load_min_16 ++/*575897*/ OPC_EmitMergeInputChains1_0, ++/*575898*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ATOMIC_LOAD_MIN_I16), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 1, 2, ++ // Src: (atomic_load_min:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr)<> - Complexity = 4 ++ // Dst: (ATOMIC_LOAD_MIN_I16:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr) ++/*575906*/ /*Scope*/ 11, /*->575918*/ ++/*575907*/ OPC_CheckPredicate, 4, // Predicate_atomic_load_min_32 ++/*575909*/ OPC_EmitMergeInputChains1_0, ++/*575910*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ATOMIC_LOAD_MIN_I32), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 1, 2, ++ // Src: (atomic_load_min:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr)<> - Complexity = 4 ++ // Dst: (ATOMIC_LOAD_MIN_I32:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr) ++/*575918*/ 0, /*End of Scope*/ ++/*575919*/ 0, // EndSwitchType ++/*575920*/ /*SwitchOpcode*/ 59, TARGET_VAL(ISD::ATOMIC_LOAD_UMAX),// ->575982 ++/*575923*/ OPC_RecordMemRef, ++/*575924*/ OPC_RecordNode, // #0 = 'atomic_load_umax' chained node ++/*575925*/ OPC_RecordChild1, // #1 = $ptr ++/*575926*/ OPC_RecordChild2, // #2 = $incr ++/*575927*/ OPC_SwitchType /*2 cases */, 11, MVT::i64,// ->575941 ++/*575930*/ OPC_CheckPredicate, 17, // Predicate_atomic_load_umax_64 ++/*575932*/ OPC_EmitMergeInputChains1_0, ++/*575933*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ATOMIC_LOAD_UMAX_I64), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i64, 2/*#Ops*/, 1, 2, ++ // Src: (atomic_load_umax:{ *:[i64] } iPTR:{ *:[iPTR] }:$ptr, GPR64:{ *:[i64] }:$incr)<> - Complexity = 4 ++ // Dst: (ATOMIC_LOAD_UMAX_I64:{ *:[i64] } iPTR:{ *:[iPTR] }:$ptr, GPR64:{ *:[i64] }:$incr) ++/*575941*/ /*SwitchType*/ 38, MVT::i32,// ->575981 ++/*575943*/ OPC_Scope, 11, /*->575956*/ // 3 children in Scope ++/*575945*/ OPC_CheckPredicate, 2, // Predicate_atomic_load_umax_8 ++/*575947*/ OPC_EmitMergeInputChains1_0, ++/*575948*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ATOMIC_LOAD_UMAX_I8), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 1, 2, ++ // Src: (atomic_load_umax:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr)<> - Complexity = 4 ++ // Dst: (ATOMIC_LOAD_UMAX_I8:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr) ++/*575956*/ /*Scope*/ 11, /*->575968*/ ++/*575957*/ OPC_CheckPredicate, 3, // Predicate_atomic_load_umax_16 ++/*575959*/ OPC_EmitMergeInputChains1_0, ++/*575960*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ATOMIC_LOAD_UMAX_I16), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 1, 2, ++ // Src: (atomic_load_umax:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr)<> - Complexity = 4 ++ // Dst: (ATOMIC_LOAD_UMAX_I16:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr) ++/*575968*/ /*Scope*/ 11, /*->575980*/ ++/*575969*/ OPC_CheckPredicate, 4, // Predicate_atomic_load_umax_32 ++/*575971*/ OPC_EmitMergeInputChains1_0, ++/*575972*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ATOMIC_LOAD_UMAX_I32), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 1, 2, ++ // Src: (atomic_load_umax:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr)<> - Complexity = 4 ++ // Dst: (ATOMIC_LOAD_UMAX_I32:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr) ++/*575980*/ 0, /*End of Scope*/ ++/*575981*/ 0, // EndSwitchType ++/*575982*/ /*SwitchOpcode*/ 59, TARGET_VAL(ISD::ATOMIC_LOAD_UMIN),// ->576044 ++/*575985*/ OPC_RecordMemRef, ++/*575986*/ OPC_RecordNode, // #0 = 'atomic_load_umin' chained node ++/*575987*/ OPC_RecordChild1, // #1 = $ptr ++/*575988*/ OPC_RecordChild2, // #2 = $incr ++/*575989*/ OPC_SwitchType /*2 cases */, 11, MVT::i64,// ->576003 ++/*575992*/ OPC_CheckPredicate, 17, // Predicate_atomic_load_umin_64 ++/*575994*/ OPC_EmitMergeInputChains1_0, ++/*575995*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ATOMIC_LOAD_UMIN_I64), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i64, 2/*#Ops*/, 1, 2, ++ // Src: (atomic_load_umin:{ *:[i64] } iPTR:{ *:[iPTR] }:$ptr, GPR64:{ *:[i64] }:$incr)<> - Complexity = 4 ++ // Dst: (ATOMIC_LOAD_UMIN_I64:{ *:[i64] } iPTR:{ *:[iPTR] }:$ptr, GPR64:{ *:[i64] }:$incr) ++/*576003*/ /*SwitchType*/ 38, MVT::i32,// ->576043 ++/*576005*/ OPC_Scope, 11, /*->576018*/ // 3 children in Scope ++/*576007*/ OPC_CheckPredicate, 2, // Predicate_atomic_load_umin_8 ++/*576009*/ OPC_EmitMergeInputChains1_0, ++/*576010*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ATOMIC_LOAD_UMIN_I8), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 1, 2, ++ // Src: (atomic_load_umin:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr)<> - Complexity = 4 ++ // Dst: (ATOMIC_LOAD_UMIN_I8:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr) ++/*576018*/ /*Scope*/ 11, /*->576030*/ ++/*576019*/ OPC_CheckPredicate, 3, // Predicate_atomic_load_umin_16 ++/*576021*/ OPC_EmitMergeInputChains1_0, ++/*576022*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ATOMIC_LOAD_UMIN_I16), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 1, 2, ++ // Src: (atomic_load_umin:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr)<> - Complexity = 4 ++ // Dst: (ATOMIC_LOAD_UMIN_I16:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr) ++/*576030*/ /*Scope*/ 11, /*->576042*/ ++/*576031*/ OPC_CheckPredicate, 4, // Predicate_atomic_load_umin_32 ++/*576033*/ OPC_EmitMergeInputChains1_0, ++/*576034*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ATOMIC_LOAD_UMIN_I32), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::i32, 2/*#Ops*/, 1, 2, ++ // Src: (atomic_load_umin:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr)<> - Complexity = 4 ++ // Dst: (ATOMIC_LOAD_UMIN_I32:{ *:[i32] } iPTR:{ *:[iPTR] }:$ptr, GPR32:{ *:[i32] }:$incr) ++/*576042*/ 0, /*End of Scope*/ ++/*576043*/ 0, // EndSwitchType ++/*576044*/ /*SwitchOpcode*/ 8, TARGET_VAL(LoongArchISD::Ret),// ->576055 ++/*576047*/ OPC_RecordNode, // #0 = 'LoongArchRet' chained node ++/*576048*/ OPC_CaptureGlueInput, ++/*576049*/ OPC_EmitMergeInputChains1_0, ++/*576050*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::RetRA), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic0, ++ 0/*#Ops*/, ++ // Src: (LoongArchRet) - Complexity = 3 ++ // Dst: (RetRA) ++/*576055*/ /*SwitchOpcode*/ 8, TARGET_VAL(LoongArchISD::ERet),// ->576066 ++/*576058*/ OPC_RecordNode, // #0 = 'LoongArchERet' chained node ++/*576059*/ OPC_CaptureGlueInput, ++/*576060*/ OPC_EmitMergeInputChains1_0, ++/*576061*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ERet), 0|OPFL_Chain|OPFL_GlueInput, ++ 0/*#Ops*/, ++ // Src: (LoongArchERet) - Complexity = 3 ++ // Dst: (ERet) ++/*576066*/ /*SwitchOpcode*/ 21, TARGET_VAL(ISD::BITREVERSE),// ->576090 ++/*576069*/ OPC_RecordChild0, // #0 = $rj ++/*576070*/ OPC_SwitchType /*2 cases */, 7, MVT::i64,// ->576080 ++/*576073*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::BITREV_D), 0, ++ MVT::i64, 1/*#Ops*/, 0, ++ // Src: (bitreverse:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj) - Complexity = 3 ++ // Dst: (BITREV_D:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj) ++/*576080*/ /*SwitchType*/ 7, MVT::i32,// ->576089 ++/*576082*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::BITREV_W), 0, ++ MVT::i32, 1/*#Ops*/, 0, ++ // Src: (bitreverse:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj) - Complexity = 3 ++ // Dst: (BITREV_W:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj) ++/*576089*/ 0, // EndSwitchType ++/*576090*/ /*SwitchOpcode*/ 65, TARGET_VAL(ISD::SIGN_EXTEND_INREG),// ->576158 ++/*576093*/ OPC_RecordChild0, // #0 = $rj ++/*576094*/ OPC_MoveChild1, ++/*576095*/ OPC_Scope, 23, /*->576120*/ // 3 children in Scope ++/*576097*/ OPC_CheckValueType, MVT::i16, ++/*576099*/ OPC_MoveParent, ++/*576100*/ OPC_SwitchType /*2 cases */, 7, MVT::i64,// ->576110 ++/*576103*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::EXT_W_H), 0, ++ MVT::i64, 1/*#Ops*/, 0, ++ // Src: (sext_inreg:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, i16:{ *:[Other] }) - Complexity = 3 ++ // Dst: (EXT_W_H:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj) ++/*576110*/ /*SwitchType*/ 7, MVT::i32,// ->576119 ++/*576112*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::EXT_W_H32), 0, ++ MVT::i32, 1/*#Ops*/, 0, ++ // Src: (sext_inreg:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, i16:{ *:[Other] }) - Complexity = 3 ++ // Dst: (EXT_W_H32:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj) ++/*576119*/ 0, // EndSwitchType ++/*576120*/ /*Scope*/ 23, /*->576144*/ ++/*576121*/ OPC_CheckValueType, MVT::i8, ++/*576123*/ OPC_MoveParent, ++/*576124*/ OPC_SwitchType /*2 cases */, 7, MVT::i64,// ->576134 ++/*576127*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::EXT_W_B), 0, ++ MVT::i64, 1/*#Ops*/, 0, ++ // Src: (sext_inreg:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, i8:{ *:[Other] }) - Complexity = 3 ++ // Dst: (EXT_W_B:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj) ++/*576134*/ /*SwitchType*/ 7, MVT::i32,// ->576143 ++/*576136*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::EXT_W_B32), 0, ++ MVT::i32, 1/*#Ops*/, 0, ++ // Src: (sext_inreg:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, i8:{ *:[Other] }) - Complexity = 3 ++ // Dst: (EXT_W_B32:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj) ++/*576143*/ 0, // EndSwitchType ++/*576144*/ /*Scope*/ 12, /*->576157*/ ++/*576145*/ OPC_CheckValueType, MVT::i32, ++/*576147*/ OPC_MoveParent, ++/*576148*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/*576150*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLLI_W_64_64), 0, ++ MVT::i64, 1/*#Ops*/, 0, ++ // Src: (sext_inreg:{ *:[i64] } GPR64:{ *:[i64] }:$src, i32:{ *:[Other] }) - Complexity = 3 ++ // Dst: (SLLI_W_64_64:{ *:[i64] } GPR64:{ *:[i64] }:$src) ++/*576157*/ 0, /*End of Scope*/ ++/*576158*/ /*SwitchOpcode*/ 30|128,3/*414*/, TARGET_VAL(ISD::SUB),// ->576576 ++/*576162*/ OPC_Scope, 0|128,1/*128*/, /*->576293*/ // 3 children in Scope ++/*576165*/ OPC_RecordChild0, // #0 = $rj ++/*576166*/ OPC_RecordChild1, // #1 = $rk ++/*576167*/ OPC_SwitchType /*10 cases */, 8, MVT::i64,// ->576178 ++/*576170*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SUB_D), 0, ++ MVT::i64, 2/*#Ops*/, 0, 1, ++ // Src: (sub:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, GPR64Opnd:{ *:[i64] }:$rk) - Complexity = 3 ++ // Dst: (SUB_D:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, GPR64Opnd:{ *:[i64] }:$rk) ++/*576178*/ /*SwitchType*/ 8, MVT::i32,// ->576188 ++/*576180*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SUB_W), 0, ++ MVT::i32, 2/*#Ops*/, 0, 1, ++ // Src: (sub:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) - Complexity = 3 ++ // Dst: (SUB_W:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) ++/*576188*/ /*SwitchType*/ 11, MVT::v16i8,// ->576201 ++/*576190*/ OPC_CheckComplexPat, /*CP*/6, /*#*/1, // selectVSplatUimm5:$ui5 #2 ++/*576193*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSUBI_BU), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 2, ++ // Src: (sub:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, vsplati8_uimm5:{ *:[v16i8] }:$ui5) - Complexity = 9 ++ // Dst: (VSUBI_BU:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, vsplati8_uimm5:{ *:[v16i8] }:$ui5) ++/*576201*/ /*SwitchType*/ 11, MVT::v8i16,// ->576214 ++/*576203*/ OPC_CheckComplexPat, /*CP*/8, /*#*/1, // selectVSplatUimm5:$ui5 #2 ++/*576206*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSUBI_HU), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 2, ++ // Src: (sub:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, vsplati16_uimm5:{ *:[v8i16] }:$ui5) - Complexity = 9 ++ // Dst: (VSUBI_HU:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, vsplati16_uimm5:{ *:[v8i16] }:$ui5) ++/*576214*/ /*SwitchType*/ 11, MVT::v4i32,// ->576227 ++/*576216*/ OPC_CheckComplexPat, /*CP*/10, /*#*/1, // selectVSplatUimm5:$ui5 #2 ++/*576219*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSUBI_WU), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 2, ++ // Src: (sub:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, vsplati32_uimm5:{ *:[v4i32] }:$ui5) - Complexity = 9 ++ // Dst: (VSUBI_WU:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, vsplati32_uimm5:{ *:[v4i32] }:$ui5) ++/*576227*/ /*SwitchType*/ 11, MVT::v2i64,// ->576240 ++/*576229*/ OPC_CheckComplexPat, /*CP*/12, /*#*/1, // selectVSplatUimm5:$ui5 #2 ++/*576232*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSUBI_DU), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 2, ++ // Src: (sub:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, vsplati64_uimm5:{ *:[v2i64] }:$ui5) - Complexity = 9 ++ // Dst: (VSUBI_DU:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, vsplati64_uimm5:{ *:[v2i64] }:$ui5) ++/*576240*/ /*SwitchType*/ 11, MVT::v32i8,// ->576253 ++/*576242*/ OPC_CheckComplexPat, /*CP*/14, /*#*/1, // selectVSplatUimm5:$ui5 #2 ++/*576245*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSUBI_BU_N), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 2, ++ // Src: (sub:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, xvsplati8_uimm5:{ *:[v32i8] }:$ui5) - Complexity = 9 ++ // Dst: (XVSUBI_BU_N:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, xvsplati8_uimm5:{ *:[v32i8] }:$ui5) ++/*576253*/ /*SwitchType*/ 11, MVT::v16i16,// ->576266 ++/*576255*/ OPC_CheckComplexPat, /*CP*/16, /*#*/1, // selectVSplatUimm5:$ui5 #2 ++/*576258*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSUBI_HU_N), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 2, ++ // Src: (sub:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, xvsplati16_uimm5:{ *:[v16i16] }:$ui5) - Complexity = 9 ++ // Dst: (XVSUBI_HU_N:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, xvsplati16_uimm5:{ *:[v16i16] }:$ui5) ++/*576266*/ /*SwitchType*/ 11, MVT::v8i32,// ->576279 ++/*576268*/ OPC_CheckComplexPat, /*CP*/18, /*#*/1, // selectVSplatUimm5:$ui5 #2 ++/*576271*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSUBI_WU_N), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 2, ++ // Src: (sub:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, xvsplati32_uimm5:{ *:[v8i32] }:$ui5) - Complexity = 9 ++ // Dst: (XVSUBI_WU_N:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, xvsplati32_uimm5:{ *:[v8i32] }:$ui5) ++/*576279*/ /*SwitchType*/ 11, MVT::v4i64,// ->576292 ++/*576281*/ OPC_CheckComplexPat, /*CP*/20, /*#*/1, // selectVSplatUimm5:$ui5 #2 ++/*576284*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSUBI_DU_N), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 2, ++ // Src: (sub:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, xvsplati64_uimm5:{ *:[v4i64] }:$ui5) - Complexity = 9 ++ // Dst: (XVSUBI_DU_N:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, xvsplati64_uimm5:{ *:[v4i64] }:$ui5) ++/*576292*/ 0, // EndSwitchType ++/*576293*/ /*Scope*/ 94, /*->576388*/ ++/*576294*/ OPC_MoveChild0, ++/*576295*/ OPC_CheckImmAllZerosV, ++/*576296*/ OPC_MoveParent, ++/*576297*/ OPC_RecordChild1, // #0 = $v ++/*576298*/ OPC_SwitchType /*8 cases */, 9, MVT::v16i8,// ->576310 ++/*576301*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*576303*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VNEG_B), 0, ++ MVT::v16i8, 1/*#Ops*/, 0, ++ // Src: (sub:{ *:[v16i8] } immAllZerosV:{ *:[v16i8] }, v16i8:{ *:[v16i8] }:$v) - Complexity = 7 ++ // Dst: (VNEG_B:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$v) ++/*576310*/ /*SwitchType*/ 9, MVT::v8i16,// ->576321 ++/*576312*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*576314*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VNEG_H), 0, ++ MVT::v8i16, 1/*#Ops*/, 0, ++ // Src: (sub:{ *:[v8i16] } immAllZerosV:{ *:[v8i16] }, v8i16:{ *:[v8i16] }:$v) - Complexity = 7 ++ // Dst: (VNEG_H:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$v) ++/*576321*/ /*SwitchType*/ 9, MVT::v4i32,// ->576332 ++/*576323*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*576325*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VNEG_W), 0, ++ MVT::v4i32, 1/*#Ops*/, 0, ++ // Src: (sub:{ *:[v4i32] } immAllZerosV:{ *:[v4i32] }, v4i32:{ *:[v4i32] }:$v) - Complexity = 7 ++ // Dst: (VNEG_W:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$v) ++/*576332*/ /*SwitchType*/ 9, MVT::v2i64,// ->576343 ++/*576334*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*576336*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VNEG_D), 0, ++ MVT::v2i64, 1/*#Ops*/, 0, ++ // Src: (sub:{ *:[v2i64] } immAllZerosV:{ *:[v2i64] }, v2i64:{ *:[v2i64] }:$v) - Complexity = 7 ++ // Dst: (VNEG_D:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$v) ++/*576343*/ /*SwitchType*/ 9, MVT::v32i8,// ->576354 ++/*576345*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*576347*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVNEG_B), 0, ++ MVT::v32i8, 1/*#Ops*/, 0, ++ // Src: (sub:{ *:[v32i8] } immAllZerosV:{ *:[v32i8] }, v32i8:{ *:[v32i8] }:$v) - Complexity = 7 ++ // Dst: (XVNEG_B:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$v) ++/*576354*/ /*SwitchType*/ 9, MVT::v16i16,// ->576365 ++/*576356*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*576358*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVNEG_H), 0, ++ MVT::v16i16, 1/*#Ops*/, 0, ++ // Src: (sub:{ *:[v16i16] } immAllZerosV:{ *:[v16i16] }, v16i16:{ *:[v16i16] }:$v) - Complexity = 7 ++ // Dst: (XVNEG_H:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$v) ++/*576365*/ /*SwitchType*/ 9, MVT::v8i32,// ->576376 ++/*576367*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*576369*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVNEG_W), 0, ++ MVT::v8i32, 1/*#Ops*/, 0, ++ // Src: (sub:{ *:[v8i32] } immAllZerosV:{ *:[v8i32] }, v8i32:{ *:[v8i32] }:$v) - Complexity = 7 ++ // Dst: (XVNEG_W:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$v) ++/*576376*/ /*SwitchType*/ 9, MVT::v4i64,// ->576387 ++/*576378*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*576380*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVNEG_D), 0, ++ MVT::v4i64, 1/*#Ops*/, 0, ++ // Src: (sub:{ *:[v4i64] } immAllZerosV:{ *:[v4i64] }, v4i64:{ *:[v4i64] }:$v) - Complexity = 7 ++ // Dst: (XVNEG_D:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$v) ++/*576387*/ 0, // EndSwitchType ++/*576388*/ /*Scope*/ 57|128,1/*185*/, /*->576575*/ ++/*576390*/ OPC_RecordChild0, // #0 = $vd_in ++/*576391*/ OPC_Scope, 97, /*->576490*/ // 2 children in Scope ++/*576393*/ OPC_MoveChild1, ++/*576394*/ OPC_CheckOpcode, TARGET_VAL(ISD::MUL), ++/*576397*/ OPC_RecordChild0, // #1 = $vj ++/*576398*/ OPC_RecordChild1, // #2 = $vk ++/*576399*/ OPC_MoveParent, ++/*576400*/ OPC_SwitchType /*8 cases */, 9, MVT::v16i8,// ->576412 ++/*576403*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMSUB_B), 0, ++ MVT::v16i8, 3/*#Ops*/, 0, 1, 2, ++ // Src: (sub:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vd_in, (mul:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk)) - Complexity = 6 ++ // Dst: (VMSUB_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vd_in, LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/*576412*/ /*SwitchType*/ 9, MVT::v8i16,// ->576423 ++/*576414*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMSUB_H), 0, ++ MVT::v8i16, 3/*#Ops*/, 0, 1, 2, ++ // Src: (sub:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vd_in, (mul:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk)) - Complexity = 6 ++ // Dst: (VMSUB_H:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vd_in, LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/*576423*/ /*SwitchType*/ 9, MVT::v4i32,// ->576434 ++/*576425*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMSUB_W), 0, ++ MVT::v4i32, 3/*#Ops*/, 0, 1, 2, ++ // Src: (sub:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vd_in, (mul:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk)) - Complexity = 6 ++ // Dst: (VMSUB_W:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vd_in, LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/*576434*/ /*SwitchType*/ 9, MVT::v2i64,// ->576445 ++/*576436*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMSUB_D), 0, ++ MVT::v2i64, 3/*#Ops*/, 0, 1, 2, ++ // Src: (sub:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vd_in, (mul:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk)) - Complexity = 6 ++ // Dst: (VMSUB_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vd_in, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/*576445*/ /*SwitchType*/ 9, MVT::v32i8,// ->576456 ++/*576447*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMSUB_B), 0, ++ MVT::v32i8, 3/*#Ops*/, 0, 1, 2, ++ // Src: (sub:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xd_in, (mul:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk)) - Complexity = 6 ++ // Dst: (XVMSUB_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xd_in, LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/*576456*/ /*SwitchType*/ 9, MVT::v16i16,// ->576467 ++/*576458*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMSUB_H), 0, ++ MVT::v16i16, 3/*#Ops*/, 0, 1, 2, ++ // Src: (sub:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xd_in, (mul:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk)) - Complexity = 6 ++ // Dst: (XVMSUB_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xd_in, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/*576467*/ /*SwitchType*/ 9, MVT::v8i32,// ->576478 ++/*576469*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMSUB_W), 0, ++ MVT::v8i32, 3/*#Ops*/, 0, 1, 2, ++ // Src: (sub:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xd_in, (mul:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk)) - Complexity = 6 ++ // Dst: (XVMSUB_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xd_in, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/*576478*/ /*SwitchType*/ 9, MVT::v4i64,// ->576489 ++/*576480*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMSUB_D), 0, ++ MVT::v4i64, 3/*#Ops*/, 0, 1, 2, ++ // Src: (sub:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xd_in, (mul:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk)) - Complexity = 6 ++ // Dst: (XVMSUB_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/*576489*/ 0, // EndSwitchType ++/*576490*/ /*Scope*/ 83, /*->576574*/ ++/*576491*/ OPC_RecordChild1, // #1 = $vk ++/*576492*/ OPC_SwitchType /*8 cases */, 8, MVT::v16i8,// ->576503 ++/*576495*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSUB_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sub:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) - Complexity = 3 ++ // Dst: (VSUB_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/*576503*/ /*SwitchType*/ 8, MVT::v8i16,// ->576513 ++/*576505*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSUB_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sub:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 3 ++ // Dst: (VSUB_H:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/*576513*/ /*SwitchType*/ 8, MVT::v4i32,// ->576523 ++/*576515*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSUB_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sub:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 3 ++ // Dst: (VSUB_W:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/*576523*/ /*SwitchType*/ 8, MVT::v2i64,// ->576533 ++/*576525*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSUB_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sub:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 3 ++ // Dst: (VSUB_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/*576533*/ /*SwitchType*/ 8, MVT::v32i8,// ->576543 ++/*576535*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSUB_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sub:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 3 ++ // Dst: (XVSUB_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/*576543*/ /*SwitchType*/ 8, MVT::v16i16,// ->576553 ++/*576545*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSUB_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sub:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 3 ++ // Dst: (XVSUB_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/*576553*/ /*SwitchType*/ 8, MVT::v8i32,// ->576563 ++/*576555*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSUB_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sub:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 3 ++ // Dst: (XVSUB_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/*576563*/ /*SwitchType*/ 8, MVT::v4i64,// ->576573 ++/*576565*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSUB_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sub:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 3 ++ // Dst: (XVSUB_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/*576573*/ 0, // EndSwitchType ++/*576574*/ 0, /*End of Scope*/ ++/*576575*/ 0, /*End of Scope*/ ++/*576576*/ /*SwitchOpcode*/ 104, TARGET_VAL(ISD::MUL),// ->576683 ++/*576579*/ OPC_RecordChild0, // #0 = $rj ++/*576580*/ OPC_RecordChild1, // #1 = $rk ++/*576581*/ OPC_SwitchType /*10 cases */, 8, MVT::i64,// ->576592 ++/*576584*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MUL_D), 0, ++ MVT::i64, 2/*#Ops*/, 0, 1, ++ // Src: (mul:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, GPR64Opnd:{ *:[i64] }:$rk) - Complexity = 3 ++ // Dst: (MUL_D:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, GPR64Opnd:{ *:[i64] }:$rk) ++/*576592*/ /*SwitchType*/ 8, MVT::i32,// ->576602 ++/*576594*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MUL_W), 0, ++ MVT::i32, 2/*#Ops*/, 0, 1, ++ // Src: (mul:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) - Complexity = 3 ++ // Dst: (MUL_W:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) ++/*576602*/ /*SwitchType*/ 8, MVT::v16i8,// ->576612 ++/*576604*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMUL_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (mul:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) - Complexity = 3 ++ // Dst: (VMUL_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/*576612*/ /*SwitchType*/ 8, MVT::v8i16,// ->576622 ++/*576614*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMUL_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (mul:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 3 ++ // Dst: (VMUL_H:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/*576622*/ /*SwitchType*/ 8, MVT::v4i32,// ->576632 ++/*576624*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMUL_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (mul:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 3 ++ // Dst: (VMUL_W:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/*576632*/ /*SwitchType*/ 8, MVT::v2i64,// ->576642 ++/*576634*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMUL_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (mul:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 3 ++ // Dst: (VMUL_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/*576642*/ /*SwitchType*/ 8, MVT::v32i8,// ->576652 ++/*576644*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMUL_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (mul:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 3 ++ // Dst: (XVMUL_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/*576652*/ /*SwitchType*/ 8, MVT::v16i16,// ->576662 ++/*576654*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMUL_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (mul:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 3 ++ // Dst: (XVMUL_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/*576662*/ /*SwitchType*/ 8, MVT::v8i32,// ->576672 ++/*576664*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMUL_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (mul:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 3 ++ // Dst: (XVMUL_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/*576672*/ /*SwitchType*/ 8, MVT::v4i64,// ->576682 ++/*576674*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMUL_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (mul:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 3 ++ // Dst: (XVMUL_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/*576682*/ 0, // EndSwitchType ++/*576683*/ /*SwitchOpcode*/ 120, TARGET_VAL(ISD::MULHS),// ->576806 ++/*576686*/ OPC_RecordChild0, // #0 = $rj ++/*576687*/ OPC_RecordChild1, // #1 = $rk ++/*576688*/ OPC_SwitchType /*10 cases */, 8, MVT::i64,// ->576699 ++/*576691*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MULH_D), 0, ++ MVT::i64, 2/*#Ops*/, 0, 1, ++ // Src: (mulhs:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, GPR64Opnd:{ *:[i64] }:$rk) - Complexity = 3 ++ // Dst: (MULH_D:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, GPR64Opnd:{ *:[i64] }:$rk) ++/*576699*/ /*SwitchType*/ 8, MVT::i32,// ->576709 ++/*576701*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MULH_W), 0, ++ MVT::i32, 2/*#Ops*/, 0, 1, ++ // Src: (mulhs:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) - Complexity = 3 ++ // Dst: (MULH_W:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) ++/*576709*/ /*SwitchType*/ 10, MVT::v2i64,// ->576721 ++/*576711*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*576713*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMUH_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (mulhs:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) - Complexity = 3 ++ // Dst: (VMUH_D:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*576721*/ /*SwitchType*/ 10, MVT::v4i32,// ->576733 ++/*576723*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*576725*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMUH_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (mulhs:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) - Complexity = 3 ++ // Dst: (VMUH_W:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*576733*/ /*SwitchType*/ 10, MVT::v8i16,// ->576745 ++/*576735*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*576737*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMUH_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (mulhs:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) - Complexity = 3 ++ // Dst: (VMUH_H:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*576745*/ /*SwitchType*/ 10, MVT::v16i8,// ->576757 ++/*576747*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*576749*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMUH_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (mulhs:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) - Complexity = 3 ++ // Dst: (VMUH_B:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*576757*/ /*SwitchType*/ 10, MVT::v4i64,// ->576769 ++/*576759*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*576761*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMUH_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (mulhs:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) - Complexity = 3 ++ // Dst: (XVMUH_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*576769*/ /*SwitchType*/ 10, MVT::v8i32,// ->576781 ++/*576771*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*576773*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMUH_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (mulhs:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) - Complexity = 3 ++ // Dst: (XVMUH_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*576781*/ /*SwitchType*/ 10, MVT::v16i16,// ->576793 ++/*576783*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*576785*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMUH_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (mulhs:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) - Complexity = 3 ++ // Dst: (XVMUH_H:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*576793*/ /*SwitchType*/ 10, MVT::v32i8,// ->576805 ++/*576795*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*576797*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMUH_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (mulhs:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) - Complexity = 3 ++ // Dst: (XVMUH_B:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*576805*/ 0, // EndSwitchType ++/*576806*/ /*SwitchOpcode*/ 120, TARGET_VAL(ISD::MULHU),// ->576929 ++/*576809*/ OPC_RecordChild0, // #0 = $rj ++/*576810*/ OPC_RecordChild1, // #1 = $rk ++/*576811*/ OPC_SwitchType /*10 cases */, 8, MVT::i64,// ->576822 ++/*576814*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MULH_DU), 0, ++ MVT::i64, 2/*#Ops*/, 0, 1, ++ // Src: (mulhu:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, GPR64Opnd:{ *:[i64] }:$rk) - Complexity = 3 ++ // Dst: (MULH_DU:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, GPR64Opnd:{ *:[i64] }:$rk) ++/*576822*/ /*SwitchType*/ 8, MVT::i32,// ->576832 ++/*576824*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MULH_WU), 0, ++ MVT::i32, 2/*#Ops*/, 0, 1, ++ // Src: (mulhu:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) - Complexity = 3 ++ // Dst: (MULH_WU:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) ++/*576832*/ /*SwitchType*/ 10, MVT::v2i64,// ->576844 ++/*576834*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*576836*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMUH_DU), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (mulhu:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) - Complexity = 3 ++ // Dst: (VMUH_DU:{ *:[v2i64] } LSX128D:{ *:[v2i64] }:$a, LSX128D:{ *:[v2i64] }:$b) ++/*576844*/ /*SwitchType*/ 10, MVT::v4i32,// ->576856 ++/*576846*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*576848*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMUH_WU), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (mulhu:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) - Complexity = 3 ++ // Dst: (VMUH_WU:{ *:[v4i32] } LSX128W:{ *:[v4i32] }:$a, LSX128W:{ *:[v4i32] }:$b) ++/*576856*/ /*SwitchType*/ 10, MVT::v8i16,// ->576868 ++/*576858*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*576860*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMUH_HU), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (mulhu:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) - Complexity = 3 ++ // Dst: (VMUH_HU:{ *:[v8i16] } LSX128H:{ *:[v8i16] }:$a, LSX128H:{ *:[v8i16] }:$b) ++/*576868*/ /*SwitchType*/ 10, MVT::v16i8,// ->576880 ++/*576870*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*576872*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMUH_BU), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (mulhu:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) - Complexity = 3 ++ // Dst: (VMUH_BU:{ *:[v16i8] } LSX128B:{ *:[v16i8] }:$a, LSX128B:{ *:[v16i8] }:$b) ++/*576880*/ /*SwitchType*/ 10, MVT::v4i64,// ->576892 ++/*576882*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*576884*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMUH_DU), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (mulhu:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) - Complexity = 3 ++ // Dst: (XVMUH_DU:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b) ++/*576892*/ /*SwitchType*/ 10, MVT::v8i32,// ->576904 ++/*576894*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*576896*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMUH_WU), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (mulhu:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) - Complexity = 3 ++ // Dst: (XVMUH_WU:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b) ++/*576904*/ /*SwitchType*/ 10, MVT::v16i16,// ->576916 ++/*576906*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*576908*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMUH_HU), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (mulhu:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) - Complexity = 3 ++ // Dst: (XVMUH_HU:{ *:[v16i16] } LASX256H:{ *:[v16i16] }:$a, LASX256H:{ *:[v16i16] }:$b) ++/*576916*/ /*SwitchType*/ 10, MVT::v32i8,// ->576928 ++/*576918*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*576920*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMUH_BU), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (mulhu:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) - Complexity = 3 ++ // Dst: (XVMUH_BU:{ *:[v32i8] } LASX256B:{ *:[v32i8] }:$a, LASX256B:{ *:[v32i8] }:$b) ++/*576928*/ 0, // EndSwitchType ++/*576929*/ /*SwitchOpcode*/ 24, TARGET_VAL(ISD::BR),// ->576956 ++/*576932*/ OPC_RecordNode, // #0 = 'br' chained node ++/*576933*/ OPC_RecordChild1, // #1 = $offset26 ++/*576934*/ OPC_MoveChild1, ++/*576935*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), ++/*576938*/ OPC_MoveParent, ++/*576939*/ OPC_EmitMergeInputChains1_0, ++/*576940*/ OPC_Scope, 6, /*->576948*/ // 2 children in Scope ++/*576942*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::B), 0|OPFL_Chain, ++ 1/*#Ops*/, 1, ++ // Src: (br (bb:{ *:[Other] }):$offset26) - Complexity = 3 ++ // Dst: (B (bb:{ *:[Other] }):$offset26) ++/*576948*/ /*Scope*/ 6, /*->576955*/ ++/*576949*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::B32), 0|OPFL_Chain, ++ 1/*#Ops*/, 1, ++ // Src: (br (bb:{ *:[Other] }):$offset26) - Complexity = 3 ++ // Dst: (B32 (bb:{ *:[Other] }):$offset26) ++/*576955*/ 0, /*End of Scope*/ ++/*576956*/ /*SwitchOpcode*/ 50, TARGET_VAL(ISD::BSWAP),// ->577009 ++/*576959*/ OPC_RecordChild0, // #0 = $rj ++/*576960*/ OPC_SwitchType /*2 cases */, 25, MVT::i64,// ->576988 ++/*576963*/ OPC_Scope, 7, /*->576972*/ // 2 children in Scope ++/*576965*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::REVB_D), 0, ++ MVT::i64, 1/*#Ops*/, 0, ++ // Src: (bswap:{ *:[i64] } GPR64:{ *:[i64] }:$rj) - Complexity = 3 ++ // Dst: (REVB_D:{ *:[i64] } GPR64:{ *:[i64] }:$rj) ++/*576972*/ /*Scope*/ 14, /*->576987*/ ++/*576973*/ OPC_EmitNode1, TARGET_VAL(LoongArch::REVB_4H), 0, ++ MVT::i64, 1/*#Ops*/, 0, // Results = #1 ++/*576980*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::REVH_D), 0, ++ MVT::i64, 1/*#Ops*/, 1, ++ // Src: (bswap:{ *:[i64] } GPR64:{ *:[i64] }:$rt) - Complexity = 3 ++ // Dst: (REVH_D:{ *:[i64] } (REVB_4H:{ *:[i64] } GPR64:{ *:[i64] }:$rt)) ++/*576987*/ 0, /*End of Scope*/ ++/*576988*/ /*SwitchType*/ 18, MVT::i32,// ->577008 ++/*576990*/ OPC_EmitNode1, TARGET_VAL(LoongArch::REVB_2H), 0, ++ MVT::i32, 1/*#Ops*/, 0, // Results = #1 ++/*576997*/ OPC_EmitInteger, MVT::i32, 16, ++/*577000*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ROTRI_W), 0, ++ MVT::i32, 2/*#Ops*/, 1, 2, ++ // Src: (bswap:{ *:[i32] } GPR32:{ *:[i32] }:$rj) - Complexity = 3 ++ // Dst: (ROTRI_W:{ *:[i32] } (REVB_2H:{ *:[i32] } GPR32:{ *:[i32] }:$rj), 16:{ *:[i32] }) ++/*577008*/ 0, // EndSwitchType ++/*577009*/ /*SwitchOpcode*/ 33, TARGET_VAL(LoongArchISD::EH_RETURN),// ->577045 ++/*577012*/ OPC_RecordNode, // #0 = 'LoongArchehret' chained node ++/*577013*/ OPC_CaptureGlueInput, ++/*577014*/ OPC_RecordChild1, // #1 = $spoff ++/*577015*/ OPC_Scope, 13, /*->577030*/ // 2 children in Scope ++/*577017*/ OPC_CheckChild1Type, MVT::i32, ++/*577019*/ OPC_RecordChild2, // #2 = $dst ++/*577020*/ OPC_CheckChild2Type, MVT::i32, ++/*577022*/ OPC_EmitMergeInputChains1_0, ++/*577023*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::LoongArcheh_return32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic2, ++ 2/*#Ops*/, 1, 2, ++ // Src: (LoongArchehret GPR32:{ *:[i32] }:$spoff, GPR32:{ *:[i32] }:$dst) - Complexity = 3 ++ // Dst: (LoongArcheh_return32 GPR32:{ *:[i32] }:$spoff, GPR32:{ *:[i32] }:$dst) ++/*577030*/ /*Scope*/ 13, /*->577044*/ ++/*577031*/ OPC_CheckChild1Type, MVT::i64, ++/*577033*/ OPC_RecordChild2, // #2 = $dst ++/*577034*/ OPC_CheckChild2Type, MVT::i64, ++/*577036*/ OPC_EmitMergeInputChains1_0, ++/*577037*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::LoongArcheh_return64), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic2, ++ 2/*#Ops*/, 1, 2, ++ // Src: (LoongArchehret GPR64:{ *:[i64] }:$spoff, GPR64:{ *:[i64] }:$dst) - Complexity = 3 ++ // Dst: (LoongArcheh_return64 GPR64:{ *:[i64] }:$spoff, GPR64:{ *:[i64] }:$dst) ++/*577044*/ 0, /*End of Scope*/ ++/*577045*/ /*SwitchOpcode*/ 7, TARGET_VAL(ISD::TRAP),// ->577055 ++/*577048*/ OPC_RecordNode, // #0 = 'trap' chained node ++/*577049*/ OPC_EmitMergeInputChains1_0, ++/*577050*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::TRAP), 0|OPFL_Chain, ++ 0/*#Ops*/, ++ // Src: (trap) - Complexity = 3 ++ // Dst: (TRAP) ++/*577055*/ /*SwitchOpcode*/ 11, TARGET_VAL(ISD::BRIND),// ->577069 ++/*577058*/ OPC_RecordNode, // #0 = 'brind' chained node ++/*577059*/ OPC_RecordChild1, // #1 = $rj ++/*577060*/ OPC_CheckChild1Type, MVT::i64, ++/*577062*/ OPC_EmitMergeInputChains1_0, ++/*577063*/ OPC_MorphNodeTo0, TARGET_VAL(LoongArch::JIRLRBRIND), 0|OPFL_Chain, ++ 1/*#Ops*/, 1, ++ // Src: (brind GPR64Opnd:{ *:[i64] }:$rj) - Complexity = 3 ++ // Dst: (JIRLRBRIND GPR64Opnd:{ *:[i64] }:$rj) ++/*577069*/ /*SwitchOpcode*/ 115|128,7/*1011*/, TARGET_VAL(ISD::BITCAST),// ->578084 ++/*577073*/ OPC_RecordChild0, // #0 = $fj ++/*577074*/ OPC_Scope, 11, /*->577087*/ // 16 children in Scope ++/*577076*/ OPC_CheckChild0Type, MVT::f32, ++/*577078*/ OPC_CheckType, MVT::i32, ++/*577080*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MOVFR2GR_S), 0, ++ MVT::i32, 1/*#Ops*/, 0, ++ // Src: (bitconvert:{ *:[i32] } FGR32Opnd:{ *:[f32] }:$fj) - Complexity = 3 ++ // Dst: (MOVFR2GR_S:{ *:[i32] } FGR32Opnd:{ *:[f32] }:$fj) ++/*577087*/ /*Scope*/ 11, /*->577099*/ ++/*577088*/ OPC_CheckChild0Type, MVT::f64, ++/*577090*/ OPC_CheckType, MVT::i64, ++/*577092*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MOVFR2GR_D), 0, ++ MVT::i64, 1/*#Ops*/, 0, ++ // Src: (bitconvert:{ *:[i64] } FGR64Opnd:{ *:[f64] }:$fj) - Complexity = 3 ++ // Dst: (MOVFR2GR_D:{ *:[i64] } FGR64Opnd:{ *:[f64] }:$fj) ++/*577099*/ /*Scope*/ 11, /*->577111*/ ++/*577100*/ OPC_CheckChild0Type, MVT::i32, ++/*577102*/ OPC_CheckType, MVT::f32, ++/*577104*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MOVGR2FR_W), 0, ++ MVT::f32, 1/*#Ops*/, 0, ++ // Src: (bitconvert:{ *:[f32] } GPR32Opnd:{ *:[i32] }:$rj) - Complexity = 3 ++ // Dst: (MOVGR2FR_W:{ *:[f32] } GPR32Opnd:{ *:[i32] }:$rj) ++/*577111*/ /*Scope*/ 11, /*->577123*/ ++/*577112*/ OPC_CheckChild0Type, MVT::i64, ++/*577114*/ OPC_CheckType, MVT::f64, ++/*577116*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MOVGR2FR_D), 0, ++ MVT::f64, 1/*#Ops*/, 0, ++ // Src: (bitconvert:{ *:[f64] } GPR64Opnd:{ *:[i64] }:$rj) - Complexity = 3 ++ // Dst: (MOVGR2FR_D:{ *:[f64] } GPR64Opnd:{ *:[i64] }:$rj) ++/*577123*/ /*Scope*/ 79, /*->577203*/ ++/*577124*/ OPC_CheckChild0Type, MVT::v4f32, ++/*577126*/ OPC_SwitchType /*5 cases */, 13, MVT::v4i32,// ->577142 ++/*577129*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*577131*/ OPC_EmitInteger, MVT::i32, LoongArch::LSX128WRegClassID, ++/*577134*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v4i32] } v4f32:{ *:[v4f32] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v4i32] } v4f32:{ *:[v4f32] }:$src, LSX128W:{ *:[i32] }) ++/*577142*/ /*SwitchType*/ 13, MVT::v16i8,// ->577157 ++/*577144*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*577146*/ OPC_EmitInteger, MVT::i32, LoongArch::LSX128BRegClassID, ++/*577149*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v16i8] } v4f32:{ *:[v4f32] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v16i8] } v4f32:{ *:[v4f32] }:$src, LSX128B:{ *:[i32] }) ++/*577157*/ /*SwitchType*/ 13, MVT::v8i16,// ->577172 ++/*577159*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*577161*/ OPC_EmitInteger, MVT::i32, LoongArch::LSX128HRegClassID, ++/*577164*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v8i16] } v4f32:{ *:[v4f32] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v8i16] } v4f32:{ *:[v4f32] }:$src, LSX128H:{ *:[i32] }) ++/*577172*/ /*SwitchType*/ 13, MVT::v2i64,// ->577187 ++/*577174*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*577176*/ OPC_EmitInteger, MVT::i32, LoongArch::LSX128DRegClassID, ++/*577179*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v2i64] } v4f32:{ *:[v4f32] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v2i64] } v4f32:{ *:[v4f32] }:$src, LSX128D:{ *:[i32] }) ++/*577187*/ /*SwitchType*/ 13, MVT::v2f64,// ->577202 ++/*577189*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*577191*/ OPC_EmitInteger, MVT::i32, LoongArch::LSX128DRegClassID, ++/*577194*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v2f64, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v2f64] } v4f32:{ *:[v4f32] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v2f64] } v4f32:{ *:[v4f32] }:$src, LSX128D:{ *:[i32] }) ++/*577202*/ 0, // EndSwitchType ++/*577203*/ /*Scope*/ 79, /*->577283*/ ++/*577204*/ OPC_CheckChild0Type, MVT::v2f64, ++/*577206*/ OPC_SwitchType /*5 cases */, 13, MVT::v2i64,// ->577222 ++/*577209*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*577211*/ OPC_EmitInteger, MVT::i32, LoongArch::LSX128DRegClassID, ++/*577214*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v2i64] } v2f64:{ *:[v2f64] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v2i64] } v2f64:{ *:[v2f64] }:$src, LSX128D:{ *:[i32] }) ++/*577222*/ /*SwitchType*/ 13, MVT::v16i8,// ->577237 ++/*577224*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*577226*/ OPC_EmitInteger, MVT::i32, LoongArch::LSX128BRegClassID, ++/*577229*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v16i8] } v2f64:{ *:[v2f64] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v16i8] } v2f64:{ *:[v2f64] }:$src, LSX128B:{ *:[i32] }) ++/*577237*/ /*SwitchType*/ 13, MVT::v8i16,// ->577252 ++/*577239*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*577241*/ OPC_EmitInteger, MVT::i32, LoongArch::LSX128HRegClassID, ++/*577244*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v8i16] } v2f64:{ *:[v2f64] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v8i16] } v2f64:{ *:[v2f64] }:$src, LSX128H:{ *:[i32] }) ++/*577252*/ /*SwitchType*/ 13, MVT::v4i32,// ->577267 ++/*577254*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*577256*/ OPC_EmitInteger, MVT::i32, LoongArch::LSX128WRegClassID, ++/*577259*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v4i32] } v2f64:{ *:[v2f64] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v4i32] } v2f64:{ *:[v2f64] }:$src, LSX128W:{ *:[i32] }) ++/*577267*/ /*SwitchType*/ 13, MVT::v4f32,// ->577282 ++/*577269*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*577271*/ OPC_EmitInteger, MVT::i32, LoongArch::LSX128WRegClassID, ++/*577274*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v4f32, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v4f32] } v2f64:{ *:[v2f64] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v4f32] } v2f64:{ *:[v2f64] }:$src, LSX128W:{ *:[i32] }) ++/*577282*/ 0, // EndSwitchType ++/*577283*/ /*Scope*/ 79, /*->577363*/ ++/*577284*/ OPC_CheckChild0Type, MVT::v8i16, ++/*577286*/ OPC_SwitchType /*5 cases */, 13, MVT::v16i8,// ->577302 ++/*577289*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*577291*/ OPC_EmitInteger, MVT::i32, LoongArch::LSX128BRegClassID, ++/*577294*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v16i8] } v8i16:{ *:[v8i16] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v16i8] } v8i16:{ *:[v8i16] }:$src, LSX128B:{ *:[i32] }) ++/*577302*/ /*SwitchType*/ 13, MVT::v4i32,// ->577317 ++/*577304*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*577306*/ OPC_EmitInteger, MVT::i32, LoongArch::LSX128WRegClassID, ++/*577309*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v4i32] } v8i16:{ *:[v8i16] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v4i32] } v8i16:{ *:[v8i16] }:$src, LSX128W:{ *:[i32] }) ++/*577317*/ /*SwitchType*/ 13, MVT::v2i64,// ->577332 ++/*577319*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*577321*/ OPC_EmitInteger, MVT::i32, LoongArch::LSX128DRegClassID, ++/*577324*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v2i64] } v8i16:{ *:[v8i16] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v2i64] } v8i16:{ *:[v8i16] }:$src, LSX128D:{ *:[i32] }) ++/*577332*/ /*SwitchType*/ 13, MVT::v4f32,// ->577347 ++/*577334*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*577336*/ OPC_EmitInteger, MVT::i32, LoongArch::LSX128WRegClassID, ++/*577339*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v4f32, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v4f32] } v8i16:{ *:[v8i16] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v4f32] } v8i16:{ *:[v8i16] }:$src, LSX128W:{ *:[i32] }) ++/*577347*/ /*SwitchType*/ 13, MVT::v2f64,// ->577362 ++/*577349*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*577351*/ OPC_EmitInteger, MVT::i32, LoongArch::LSX128DRegClassID, ++/*577354*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v2f64, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v2f64] } v8i16:{ *:[v8i16] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v2f64] } v8i16:{ *:[v8i16] }:$src, LSX128D:{ *:[i32] }) ++/*577362*/ 0, // EndSwitchType ++/*577363*/ /*Scope*/ 79, /*->577443*/ ++/*577364*/ OPC_CheckChild0Type, MVT::v4i32, ++/*577366*/ OPC_SwitchType /*5 cases */, 13, MVT::v16i8,// ->577382 ++/*577369*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*577371*/ OPC_EmitInteger, MVT::i32, LoongArch::LSX128BRegClassID, ++/*577374*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v16i8] } v4i32:{ *:[v4i32] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v16i8] } v4i32:{ *:[v4i32] }:$src, LSX128B:{ *:[i32] }) ++/*577382*/ /*SwitchType*/ 13, MVT::v8i16,// ->577397 ++/*577384*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*577386*/ OPC_EmitInteger, MVT::i32, LoongArch::LSX128HRegClassID, ++/*577389*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v8i16] } v4i32:{ *:[v4i32] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v8i16] } v4i32:{ *:[v4i32] }:$src, LSX128H:{ *:[i32] }) ++/*577397*/ /*SwitchType*/ 13, MVT::v2i64,// ->577412 ++/*577399*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*577401*/ OPC_EmitInteger, MVT::i32, LoongArch::LSX128DRegClassID, ++/*577404*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v2i64] } v4i32:{ *:[v4i32] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v2i64] } v4i32:{ *:[v4i32] }:$src, LSX128D:{ *:[i32] }) ++/*577412*/ /*SwitchType*/ 13, MVT::v4f32,// ->577427 ++/*577414*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*577416*/ OPC_EmitInteger, MVT::i32, LoongArch::LSX128WRegClassID, ++/*577419*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v4f32, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v4f32] } v4i32:{ *:[v4i32] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v4f32] } v4i32:{ *:[v4i32] }:$src, LSX128W:{ *:[i32] }) ++/*577427*/ /*SwitchType*/ 13, MVT::v2f64,// ->577442 ++/*577429*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*577431*/ OPC_EmitInteger, MVT::i32, LoongArch::LSX128DRegClassID, ++/*577434*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v2f64, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v2f64] } v4i32:{ *:[v4i32] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v2f64] } v4i32:{ *:[v4i32] }:$src, LSX128D:{ *:[i32] }) ++/*577442*/ 0, // EndSwitchType ++/*577443*/ /*Scope*/ 79, /*->577523*/ ++/*577444*/ OPC_CheckChild0Type, MVT::v2i64, ++/*577446*/ OPC_SwitchType /*5 cases */, 13, MVT::v16i8,// ->577462 ++/*577449*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*577451*/ OPC_EmitInteger, MVT::i32, LoongArch::LSX128BRegClassID, ++/*577454*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v16i8] } v2i64:{ *:[v2i64] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v16i8] } v2i64:{ *:[v2i64] }:$src, LSX128B:{ *:[i32] }) ++/*577462*/ /*SwitchType*/ 13, MVT::v8i16,// ->577477 ++/*577464*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*577466*/ OPC_EmitInteger, MVT::i32, LoongArch::LSX128HRegClassID, ++/*577469*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v8i16] } v2i64:{ *:[v2i64] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v8i16] } v2i64:{ *:[v2i64] }:$src, LSX128H:{ *:[i32] }) ++/*577477*/ /*SwitchType*/ 13, MVT::v4i32,// ->577492 ++/*577479*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*577481*/ OPC_EmitInteger, MVT::i32, LoongArch::LSX128WRegClassID, ++/*577484*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v4i32] } v2i64:{ *:[v2i64] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v4i32] } v2i64:{ *:[v2i64] }:$src, LSX128W:{ *:[i32] }) ++/*577492*/ /*SwitchType*/ 13, MVT::v2f64,// ->577507 ++/*577494*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*577496*/ OPC_EmitInteger, MVT::i32, LoongArch::LSX128DRegClassID, ++/*577499*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v2f64, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v2f64] } v2i64:{ *:[v2i64] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v2f64] } v2i64:{ *:[v2i64] }:$src, LSX128D:{ *:[i32] }) ++/*577507*/ /*SwitchType*/ 13, MVT::v4f32,// ->577522 ++/*577509*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*577511*/ OPC_EmitInteger, MVT::i32, LoongArch::LSX128WRegClassID, ++/*577514*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v4f32, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v4f32] } v2i64:{ *:[v2i64] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v4f32] } v2i64:{ *:[v2i64] }:$src, LSX128W:{ *:[i32] }) ++/*577522*/ 0, // EndSwitchType ++/*577523*/ /*Scope*/ 79, /*->577603*/ ++/*577524*/ OPC_CheckChild0Type, MVT::v16i8, ++/*577526*/ OPC_SwitchType /*5 cases */, 13, MVT::v8i16,// ->577542 ++/*577529*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*577531*/ OPC_EmitInteger, MVT::i32, LoongArch::LSX128HRegClassID, ++/*577534*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v8i16] } v16i8:{ *:[v16i8] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v8i16] } v16i8:{ *:[v16i8] }:$src, LSX128H:{ *:[i32] }) ++/*577542*/ /*SwitchType*/ 13, MVT::v4i32,// ->577557 ++/*577544*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*577546*/ OPC_EmitInteger, MVT::i32, LoongArch::LSX128WRegClassID, ++/*577549*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v4i32] } v16i8:{ *:[v16i8] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v4i32] } v16i8:{ *:[v16i8] }:$src, LSX128W:{ *:[i32] }) ++/*577557*/ /*SwitchType*/ 13, MVT::v2i64,// ->577572 ++/*577559*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*577561*/ OPC_EmitInteger, MVT::i32, LoongArch::LSX128DRegClassID, ++/*577564*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v2i64] } v16i8:{ *:[v16i8] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v2i64] } v16i8:{ *:[v16i8] }:$src, LSX128D:{ *:[i32] }) ++/*577572*/ /*SwitchType*/ 13, MVT::v4f32,// ->577587 ++/*577574*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*577576*/ OPC_EmitInteger, MVT::i32, LoongArch::LSX128WRegClassID, ++/*577579*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v4f32, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v4f32] } v16i8:{ *:[v16i8] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v4f32] } v16i8:{ *:[v16i8] }:$src, LSX128W:{ *:[i32] }) ++/*577587*/ /*SwitchType*/ 13, MVT::v2f64,// ->577602 ++/*577589*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*577591*/ OPC_EmitInteger, MVT::i32, LoongArch::LSX128DRegClassID, ++/*577594*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v2f64, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v2f64] } v16i8:{ *:[v16i8] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v2f64] } v16i8:{ *:[v16i8] }:$src, LSX128D:{ *:[i32] }) ++/*577602*/ 0, // EndSwitchType ++/*577603*/ /*Scope*/ 79, /*->577683*/ ++/*577604*/ OPC_CheckChild0Type, MVT::v8f32, ++/*577606*/ OPC_SwitchType /*5 cases */, 13, MVT::v8i32,// ->577622 ++/*577609*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*577611*/ OPC_EmitInteger, MVT::i32, LoongArch::LASX256WRegClassID, ++/*577614*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v8i32] } v8f32:{ *:[v8f32] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v8i32] } v8f32:{ *:[v8f32] }:$src, LASX256W:{ *:[i32] }) ++/*577622*/ /*SwitchType*/ 13, MVT::v32i8,// ->577637 ++/*577624*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*577626*/ OPC_EmitInteger, MVT::i32, LoongArch::LASX256BRegClassID, ++/*577629*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v32i8] } v8f32:{ *:[v8f32] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v32i8] } v8f32:{ *:[v8f32] }:$src, LASX256B:{ *:[i32] }) ++/*577637*/ /*SwitchType*/ 13, MVT::v16i16,// ->577652 ++/*577639*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*577641*/ OPC_EmitInteger, MVT::i32, LoongArch::LASX256HRegClassID, ++/*577644*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v16i16] } v8f32:{ *:[v8f32] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v16i16] } v8f32:{ *:[v8f32] }:$src, LASX256H:{ *:[i32] }) ++/*577652*/ /*SwitchType*/ 13, MVT::v4i64,// ->577667 ++/*577654*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*577656*/ OPC_EmitInteger, MVT::i32, LoongArch::LASX256DRegClassID, ++/*577659*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v4i64] } v8f32:{ *:[v8f32] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v4i64] } v8f32:{ *:[v8f32] }:$src, LASX256D:{ *:[i32] }) ++/*577667*/ /*SwitchType*/ 13, MVT::v4f64,// ->577682 ++/*577669*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*577671*/ OPC_EmitInteger, MVT::i32, LoongArch::LASX256DRegClassID, ++/*577674*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v4f64, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v4f64] } v8f32:{ *:[v8f32] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v4f64] } v8f32:{ *:[v8f32] }:$src, LASX256D:{ *:[i32] }) ++/*577682*/ 0, // EndSwitchType ++/*577683*/ /*Scope*/ 79, /*->577763*/ ++/*577684*/ OPC_CheckChild0Type, MVT::v4f64, ++/*577686*/ OPC_SwitchType /*5 cases */, 13, MVT::v4i64,// ->577702 ++/*577689*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*577691*/ OPC_EmitInteger, MVT::i32, LoongArch::LASX256DRegClassID, ++/*577694*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v4i64] } v4f64:{ *:[v4f64] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v4i64] } v4f64:{ *:[v4f64] }:$src, LASX256D:{ *:[i32] }) ++/*577702*/ /*SwitchType*/ 13, MVT::v32i8,// ->577717 ++/*577704*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*577706*/ OPC_EmitInteger, MVT::i32, LoongArch::LASX256BRegClassID, ++/*577709*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v32i8] } v4f64:{ *:[v4f64] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v32i8] } v4f64:{ *:[v4f64] }:$src, LASX256B:{ *:[i32] }) ++/*577717*/ /*SwitchType*/ 13, MVT::v16i16,// ->577732 ++/*577719*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*577721*/ OPC_EmitInteger, MVT::i32, LoongArch::LASX256HRegClassID, ++/*577724*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v16i16] } v4f64:{ *:[v4f64] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v16i16] } v4f64:{ *:[v4f64] }:$src, LASX256H:{ *:[i32] }) ++/*577732*/ /*SwitchType*/ 13, MVT::v8i32,// ->577747 ++/*577734*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*577736*/ OPC_EmitInteger, MVT::i32, LoongArch::LASX256WRegClassID, ++/*577739*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v8i32] } v4f64:{ *:[v4f64] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v8i32] } v4f64:{ *:[v4f64] }:$src, LASX256W:{ *:[i32] }) ++/*577747*/ /*SwitchType*/ 13, MVT::v8f32,// ->577762 ++/*577749*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*577751*/ OPC_EmitInteger, MVT::i32, LoongArch::LASX256WRegClassID, ++/*577754*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v8f32, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v8f32] } v4f64:{ *:[v4f64] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v8f32] } v4f64:{ *:[v4f64] }:$src, LASX256W:{ *:[i32] }) ++/*577762*/ 0, // EndSwitchType ++/*577763*/ /*Scope*/ 79, /*->577843*/ ++/*577764*/ OPC_CheckChild0Type, MVT::v16i16, ++/*577766*/ OPC_SwitchType /*5 cases */, 13, MVT::v32i8,// ->577782 ++/*577769*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*577771*/ OPC_EmitInteger, MVT::i32, LoongArch::LASX256BRegClassID, ++/*577774*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v32i8] } v16i16:{ *:[v16i16] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v32i8] } v16i16:{ *:[v16i16] }:$src, LASX256B:{ *:[i32] }) ++/*577782*/ /*SwitchType*/ 13, MVT::v8i32,// ->577797 ++/*577784*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*577786*/ OPC_EmitInteger, MVT::i32, LoongArch::LASX256WRegClassID, ++/*577789*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v8i32] } v16i16:{ *:[v16i16] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v8i32] } v16i16:{ *:[v16i16] }:$src, LASX256W:{ *:[i32] }) ++/*577797*/ /*SwitchType*/ 13, MVT::v4i64,// ->577812 ++/*577799*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*577801*/ OPC_EmitInteger, MVT::i32, LoongArch::LASX256DRegClassID, ++/*577804*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v4i64] } v16i16:{ *:[v16i16] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v4i64] } v16i16:{ *:[v16i16] }:$src, LASX256D:{ *:[i32] }) ++/*577812*/ /*SwitchType*/ 13, MVT::v8f32,// ->577827 ++/*577814*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*577816*/ OPC_EmitInteger, MVT::i32, LoongArch::LASX256WRegClassID, ++/*577819*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v8f32, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v8f32] } v16i16:{ *:[v16i16] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v8f32] } v16i16:{ *:[v16i16] }:$src, LASX256W:{ *:[i32] }) ++/*577827*/ /*SwitchType*/ 13, MVT::v4f64,// ->577842 ++/*577829*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*577831*/ OPC_EmitInteger, MVT::i32, LoongArch::LASX256DRegClassID, ++/*577834*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v4f64, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v4f64] } v16i16:{ *:[v16i16] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v4f64] } v16i16:{ *:[v16i16] }:$src, LASX256D:{ *:[i32] }) ++/*577842*/ 0, // EndSwitchType ++/*577843*/ /*Scope*/ 79, /*->577923*/ ++/*577844*/ OPC_CheckChild0Type, MVT::v8i32, ++/*577846*/ OPC_SwitchType /*5 cases */, 13, MVT::v32i8,// ->577862 ++/*577849*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*577851*/ OPC_EmitInteger, MVT::i32, LoongArch::LASX256BRegClassID, ++/*577854*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v32i8] } v8i32:{ *:[v8i32] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v32i8] } v8i32:{ *:[v8i32] }:$src, LASX256B:{ *:[i32] }) ++/*577862*/ /*SwitchType*/ 13, MVT::v16i16,// ->577877 ++/*577864*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*577866*/ OPC_EmitInteger, MVT::i32, LoongArch::LASX256HRegClassID, ++/*577869*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v16i16] } v8i32:{ *:[v8i32] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v16i16] } v8i32:{ *:[v8i32] }:$src, LASX256H:{ *:[i32] }) ++/*577877*/ /*SwitchType*/ 13, MVT::v4i64,// ->577892 ++/*577879*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*577881*/ OPC_EmitInteger, MVT::i32, LoongArch::LASX256DRegClassID, ++/*577884*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v4i64] } v8i32:{ *:[v8i32] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v4i64] } v8i32:{ *:[v8i32] }:$src, LASX256D:{ *:[i32] }) ++/*577892*/ /*SwitchType*/ 13, MVT::v8f32,// ->577907 ++/*577894*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*577896*/ OPC_EmitInteger, MVT::i32, LoongArch::LASX256WRegClassID, ++/*577899*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v8f32, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v8f32] } v8i32:{ *:[v8i32] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v8f32] } v8i32:{ *:[v8i32] }:$src, LASX256W:{ *:[i32] }) ++/*577907*/ /*SwitchType*/ 13, MVT::v4f64,// ->577922 ++/*577909*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*577911*/ OPC_EmitInteger, MVT::i32, LoongArch::LASX256DRegClassID, ++/*577914*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v4f64, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v4f64] } v8i32:{ *:[v8i32] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v4f64] } v8i32:{ *:[v8i32] }:$src, LASX256D:{ *:[i32] }) ++/*577922*/ 0, // EndSwitchType ++/*577923*/ /*Scope*/ 79, /*->578003*/ ++/*577924*/ OPC_CheckChild0Type, MVT::v4i64, ++/*577926*/ OPC_SwitchType /*5 cases */, 13, MVT::v32i8,// ->577942 ++/*577929*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*577931*/ OPC_EmitInteger, MVT::i32, LoongArch::LASX256BRegClassID, ++/*577934*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v32i8] } v4i64:{ *:[v4i64] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v32i8] } v4i64:{ *:[v4i64] }:$src, LASX256B:{ *:[i32] }) ++/*577942*/ /*SwitchType*/ 13, MVT::v16i16,// ->577957 ++/*577944*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*577946*/ OPC_EmitInteger, MVT::i32, LoongArch::LASX256HRegClassID, ++/*577949*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v16i16] } v4i64:{ *:[v4i64] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v16i16] } v4i64:{ *:[v4i64] }:$src, LASX256H:{ *:[i32] }) ++/*577957*/ /*SwitchType*/ 13, MVT::v8i32,// ->577972 ++/*577959*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*577961*/ OPC_EmitInteger, MVT::i32, LoongArch::LASX256WRegClassID, ++/*577964*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v8i32] } v4i64:{ *:[v4i64] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v8i32] } v4i64:{ *:[v4i64] }:$src, LASX256W:{ *:[i32] }) ++/*577972*/ /*SwitchType*/ 13, MVT::v4f64,// ->577987 ++/*577974*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*577976*/ OPC_EmitInteger, MVT::i32, LoongArch::LASX256DRegClassID, ++/*577979*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v4f64, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v4f64] } v4i64:{ *:[v4i64] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v4f64] } v4i64:{ *:[v4i64] }:$src, LASX256D:{ *:[i32] }) ++/*577987*/ /*SwitchType*/ 13, MVT::v8f32,// ->578002 ++/*577989*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*577991*/ OPC_EmitInteger, MVT::i32, LoongArch::LASX256WRegClassID, ++/*577994*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v8f32, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v8f32] } v4i64:{ *:[v4i64] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v8f32] } v4i64:{ *:[v4i64] }:$src, LASX256W:{ *:[i32] }) ++/*578002*/ 0, // EndSwitchType ++/*578003*/ /*Scope*/ 79, /*->578083*/ ++/*578004*/ OPC_CheckChild0Type, MVT::v32i8, ++/*578006*/ OPC_SwitchType /*5 cases */, 13, MVT::v16i16,// ->578022 ++/*578009*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*578011*/ OPC_EmitInteger, MVT::i32, LoongArch::LASX256HRegClassID, ++/*578014*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v16i16] } v32i8:{ *:[v32i8] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v16i16] } v32i8:{ *:[v32i8] }:$src, LASX256H:{ *:[i32] }) ++/*578022*/ /*SwitchType*/ 13, MVT::v8i32,// ->578037 ++/*578024*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*578026*/ OPC_EmitInteger, MVT::i32, LoongArch::LASX256WRegClassID, ++/*578029*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v8i32] } v32i8:{ *:[v32i8] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v8i32] } v32i8:{ *:[v32i8] }:$src, LASX256W:{ *:[i32] }) ++/*578037*/ /*SwitchType*/ 13, MVT::v4i64,// ->578052 ++/*578039*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*578041*/ OPC_EmitInteger, MVT::i32, LoongArch::LASX256DRegClassID, ++/*578044*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v4i64] } v32i8:{ *:[v32i8] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v4i64] } v32i8:{ *:[v32i8] }:$src, LASX256D:{ *:[i32] }) ++/*578052*/ /*SwitchType*/ 13, MVT::v8f32,// ->578067 ++/*578054*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*578056*/ OPC_EmitInteger, MVT::i32, LoongArch::LASX256WRegClassID, ++/*578059*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v8f32, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v8f32] } v32i8:{ *:[v32i8] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v8f32] } v32i8:{ *:[v32i8] }:$src, LASX256W:{ *:[i32] }) ++/*578067*/ /*SwitchType*/ 13, MVT::v4f64,// ->578082 ++/*578069*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*578071*/ OPC_EmitInteger, MVT::i32, LoongArch::LASX256DRegClassID, ++/*578074*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::v4f64, 2/*#Ops*/, 0, 1, ++ // Src: (bitconvert:{ *:[v4f64] } v32i8:{ *:[v32i8] }:$src) - Complexity = 3 ++ // Dst: (COPY_TO_REGCLASS:{ *:[v4f64] } v32i8:{ *:[v32i8] }:$src, LASX256D:{ *:[i32] }) ++/*578082*/ 0, // EndSwitchType ++/*578083*/ 0, /*End of Scope*/ ++/*578084*/ /*SwitchOpcode*/ 23, TARGET_VAL(ISD::ANY_EXTEND),// ->578110 ++/*578087*/ OPC_RecordChild0, // #0 = $src ++/*578088*/ OPC_CheckType, MVT::i64, ++/*578090*/ OPC_CheckPatternPredicate, 0, // (Subtarget->is64Bit()) ++/*578092*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::i64, 0/*#Ops*/, // Results = #1 ++/*578098*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/*578101*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::i64, 3/*#Ops*/, 1, 0, 2, ++ // Src: (anyext:{ *:[i64] } GPR32:{ *:[i32] }:$src) - Complexity = 3 ++ // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GPR32:{ *:[i32] }:$src, sub_32:{ *:[i32] }) ++/*578110*/ /*SwitchOpcode*/ 104, TARGET_VAL(ISD::SDIV),// ->578217 ++/*578113*/ OPC_RecordChild0, // #0 = $rj ++/*578114*/ OPC_RecordChild1, // #1 = $rk ++/*578115*/ OPC_SwitchType /*10 cases */, 8, MVT::i64,// ->578126 ++/*578118*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::DIV_D), 0, ++ MVT::i64, 2/*#Ops*/, 0, 1, ++ // Src: (sdiv:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, GPR64Opnd:{ *:[i64] }:$rk) - Complexity = 3 ++ // Dst: (DIV_D:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, GPR64Opnd:{ *:[i64] }:$rk) ++/*578126*/ /*SwitchType*/ 8, MVT::i32,// ->578136 ++/*578128*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::DIV_W), 0, ++ MVT::i32, 2/*#Ops*/, 0, 1, ++ // Src: (sdiv:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) - Complexity = 3 ++ // Dst: (DIV_W:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) ++/*578136*/ /*SwitchType*/ 8, MVT::v16i8,// ->578146 ++/*578138*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VDIV_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (sdiv:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) - Complexity = 3 ++ // Dst: (VDIV_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/*578146*/ /*SwitchType*/ 8, MVT::v8i16,// ->578156 ++/*578148*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VDIV_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (sdiv:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 3 ++ // Dst: (VDIV_H:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/*578156*/ /*SwitchType*/ 8, MVT::v4i32,// ->578166 ++/*578158*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VDIV_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (sdiv:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 3 ++ // Dst: (VDIV_W:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/*578166*/ /*SwitchType*/ 8, MVT::v2i64,// ->578176 ++/*578168*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VDIV_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (sdiv:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 3 ++ // Dst: (VDIV_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/*578176*/ /*SwitchType*/ 8, MVT::v32i8,// ->578186 ++/*578178*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVDIV_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (sdiv:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 3 ++ // Dst: (XVDIV_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/*578186*/ /*SwitchType*/ 8, MVT::v16i16,// ->578196 ++/*578188*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVDIV_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (sdiv:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 3 ++ // Dst: (XVDIV_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/*578196*/ /*SwitchType*/ 8, MVT::v8i32,// ->578206 ++/*578198*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVDIV_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (sdiv:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 3 ++ // Dst: (XVDIV_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/*578206*/ /*SwitchType*/ 8, MVT::v4i64,// ->578216 ++/*578208*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVDIV_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (sdiv:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 3 ++ // Dst: (XVDIV_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/*578216*/ 0, // EndSwitchType ++/*578217*/ /*SwitchOpcode*/ 104, TARGET_VAL(ISD::SREM),// ->578324 ++/*578220*/ OPC_RecordChild0, // #0 = $rj ++/*578221*/ OPC_RecordChild1, // #1 = $rk ++/*578222*/ OPC_SwitchType /*10 cases */, 8, MVT::i64,// ->578233 ++/*578225*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MOD_D), 0, ++ MVT::i64, 2/*#Ops*/, 0, 1, ++ // Src: (srem:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, GPR64Opnd:{ *:[i64] }:$rk) - Complexity = 3 ++ // Dst: (MOD_D:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, GPR64Opnd:{ *:[i64] }:$rk) ++/*578233*/ /*SwitchType*/ 8, MVT::i32,// ->578243 ++/*578235*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MOD_W), 0, ++ MVT::i32, 2/*#Ops*/, 0, 1, ++ // Src: (srem:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) - Complexity = 3 ++ // Dst: (MOD_W:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) ++/*578243*/ /*SwitchType*/ 8, MVT::v16i8,// ->578253 ++/*578245*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMOD_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (srem:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) - Complexity = 3 ++ // Dst: (VMOD_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/*578253*/ /*SwitchType*/ 8, MVT::v8i16,// ->578263 ++/*578255*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMOD_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (srem:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 3 ++ // Dst: (VMOD_H:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/*578263*/ /*SwitchType*/ 8, MVT::v4i32,// ->578273 ++/*578265*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMOD_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (srem:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 3 ++ // Dst: (VMOD_W:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/*578273*/ /*SwitchType*/ 8, MVT::v2i64,// ->578283 ++/*578275*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMOD_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (srem:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 3 ++ // Dst: (VMOD_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/*578283*/ /*SwitchType*/ 8, MVT::v32i8,// ->578293 ++/*578285*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMOD_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (srem:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 3 ++ // Dst: (XVMOD_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/*578293*/ /*SwitchType*/ 8, MVT::v16i16,// ->578303 ++/*578295*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMOD_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (srem:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 3 ++ // Dst: (XVMOD_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/*578303*/ /*SwitchType*/ 8, MVT::v8i32,// ->578313 ++/*578305*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMOD_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (srem:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 3 ++ // Dst: (XVMOD_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/*578313*/ /*SwitchType*/ 8, MVT::v4i64,// ->578323 ++/*578315*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMOD_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (srem:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 3 ++ // Dst: (XVMOD_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/*578323*/ 0, // EndSwitchType ++/*578324*/ /*SwitchOpcode*/ 104, TARGET_VAL(ISD::UDIV),// ->578431 ++/*578327*/ OPC_RecordChild0, // #0 = $rj ++/*578328*/ OPC_RecordChild1, // #1 = $rk ++/*578329*/ OPC_SwitchType /*10 cases */, 8, MVT::i64,// ->578340 ++/*578332*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::DIV_DU), 0, ++ MVT::i64, 2/*#Ops*/, 0, 1, ++ // Src: (udiv:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, GPR64Opnd:{ *:[i64] }:$rk) - Complexity = 3 ++ // Dst: (DIV_DU:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, GPR64Opnd:{ *:[i64] }:$rk) ++/*578340*/ /*SwitchType*/ 8, MVT::i32,// ->578350 ++/*578342*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::DIV_WU), 0, ++ MVT::i32, 2/*#Ops*/, 0, 1, ++ // Src: (udiv:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) - Complexity = 3 ++ // Dst: (DIV_WU:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) ++/*578350*/ /*SwitchType*/ 8, MVT::v16i8,// ->578360 ++/*578352*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VDIV_BU), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (udiv:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) - Complexity = 3 ++ // Dst: (VDIV_BU:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/*578360*/ /*SwitchType*/ 8, MVT::v8i16,// ->578370 ++/*578362*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VDIV_HU), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (udiv:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 3 ++ // Dst: (VDIV_HU:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/*578370*/ /*SwitchType*/ 8, MVT::v4i32,// ->578380 ++/*578372*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VDIV_WU), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (udiv:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 3 ++ // Dst: (VDIV_WU:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/*578380*/ /*SwitchType*/ 8, MVT::v2i64,// ->578390 ++/*578382*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VDIV_DU), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (udiv:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 3 ++ // Dst: (VDIV_DU:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/*578390*/ /*SwitchType*/ 8, MVT::v32i8,// ->578400 ++/*578392*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVDIV_BU), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (udiv:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 3 ++ // Dst: (XVDIV_BU:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/*578400*/ /*SwitchType*/ 8, MVT::v16i16,// ->578410 ++/*578402*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVDIV_HU), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (udiv:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 3 ++ // Dst: (XVDIV_HU:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/*578410*/ /*SwitchType*/ 8, MVT::v8i32,// ->578420 ++/*578412*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVDIV_WU), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (udiv:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 3 ++ // Dst: (XVDIV_WU:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/*578420*/ /*SwitchType*/ 8, MVT::v4i64,// ->578430 ++/*578422*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVDIV_DU), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (udiv:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 3 ++ // Dst: (XVDIV_DU:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/*578430*/ 0, // EndSwitchType ++/*578431*/ /*SwitchOpcode*/ 104, TARGET_VAL(ISD::UREM),// ->578538 ++/*578434*/ OPC_RecordChild0, // #0 = $rj ++/*578435*/ OPC_RecordChild1, // #1 = $rk ++/*578436*/ OPC_SwitchType /*10 cases */, 8, MVT::i64,// ->578447 ++/*578439*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MOD_DU), 0, ++ MVT::i64, 2/*#Ops*/, 0, 1, ++ // Src: (urem:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, GPR64Opnd:{ *:[i64] }:$rk) - Complexity = 3 ++ // Dst: (MOD_DU:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rj, GPR64Opnd:{ *:[i64] }:$rk) ++/*578447*/ /*SwitchType*/ 8, MVT::i32,// ->578457 ++/*578449*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MOD_WU), 0, ++ MVT::i32, 2/*#Ops*/, 0, 1, ++ // Src: (urem:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) - Complexity = 3 ++ // Dst: (MOD_WU:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rk) ++/*578457*/ /*SwitchType*/ 8, MVT::v16i8,// ->578467 ++/*578459*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMOD_BU), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (urem:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) - Complexity = 3 ++ // Dst: (VMOD_BU:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/*578467*/ /*SwitchType*/ 8, MVT::v8i16,// ->578477 ++/*578469*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMOD_HU), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (urem:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 3 ++ // Dst: (VMOD_HU:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/*578477*/ /*SwitchType*/ 8, MVT::v4i32,// ->578487 ++/*578479*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMOD_WU), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (urem:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 3 ++ // Dst: (VMOD_WU:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/*578487*/ /*SwitchType*/ 8, MVT::v2i64,// ->578497 ++/*578489*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMOD_DU), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (urem:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 3 ++ // Dst: (VMOD_DU:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/*578497*/ /*SwitchType*/ 8, MVT::v32i8,// ->578507 ++/*578499*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMOD_BU), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (urem:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 3 ++ // Dst: (XVMOD_BU:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/*578507*/ /*SwitchType*/ 8, MVT::v16i16,// ->578517 ++/*578509*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMOD_HU), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (urem:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 3 ++ // Dst: (XVMOD_HU:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/*578517*/ /*SwitchType*/ 8, MVT::v8i32,// ->578527 ++/*578519*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMOD_WU), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (urem:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 3 ++ // Dst: (XVMOD_WU:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/*578527*/ /*SwitchType*/ 8, MVT::v4i64,// ->578537 ++/*578529*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMOD_DU), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (urem:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 3 ++ // Dst: (XVMOD_DU:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/*578537*/ 0, // EndSwitchType ++/*578538*/ /*SwitchOpcode*/ 28, TARGET_VAL(LoongArchISD::CMovFP_T),// ->578569 ++/*578541*/ OPC_CaptureGlueInput, ++/*578542*/ OPC_RecordChild0, // #0 = $T ++/*578543*/ OPC_RecordChild1, // #1 = $cond ++/*578544*/ OPC_RecordChild2, // #2 = $F ++/*578545*/ OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->578557 ++/*578548*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::PseudoSELECTFP_T_I), 0|OPFL_GlueInput, ++ MVT::i32, 3/*#Ops*/, 1, 0, 2, ++ // Src: (LoongArchCMovFP_T:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$T, FCFROpnd:{ *:[i32] }:$cond, GPR32Opnd:{ *:[i32] }:$F) - Complexity = 3 ++ // Dst: (PseudoSELECTFP_T_I:{ *:[i32] } FCFROpnd:{ *:[i32] }:$cond, GPR32Opnd:{ *:[i32] }:$T, GPR32Opnd:{ *:[i32] }:$F) ++/*578557*/ /*SwitchType*/ 9, MVT::i64,// ->578568 ++/*578559*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::PseudoSELECTFP_T_I64), 0|OPFL_GlueInput, ++ MVT::i64, 3/*#Ops*/, 1, 0, 2, ++ // Src: (LoongArchCMovFP_T:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$T, FCFROpnd:{ *:[i32] }:$cond, GPR64Opnd:{ *:[i64] }:$F) - Complexity = 3 ++ // Dst: (PseudoSELECTFP_T_I64:{ *:[i64] } FCFROpnd:{ *:[i32] }:$cond, GPR64Opnd:{ *:[i64] }:$T, GPR64Opnd:{ *:[i64] }:$F) ++/*578568*/ 0, // EndSwitchType ++/*578569*/ /*SwitchOpcode*/ 28, TARGET_VAL(LoongArchISD::CMovFP_F),// ->578600 ++/*578572*/ OPC_CaptureGlueInput, ++/*578573*/ OPC_RecordChild0, // #0 = $T ++/*578574*/ OPC_RecordChild1, // #1 = $cond ++/*578575*/ OPC_RecordChild2, // #2 = $F ++/*578576*/ OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->578588 ++/*578579*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::PseudoSELECTFP_F_I), 0|OPFL_GlueInput, ++ MVT::i32, 3/*#Ops*/, 1, 0, 2, ++ // Src: (LoongArchCMovFP_F:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$T, FCFROpnd:{ *:[i32] }:$cond, GPR32Opnd:{ *:[i32] }:$F) - Complexity = 3 ++ // Dst: (PseudoSELECTFP_F_I:{ *:[i32] } FCFROpnd:{ *:[i32] }:$cond, GPR32Opnd:{ *:[i32] }:$T, GPR32Opnd:{ *:[i32] }:$F) ++/*578588*/ /*SwitchType*/ 9, MVT::i64,// ->578599 ++/*578590*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::PseudoSELECTFP_F_I64), 0|OPFL_GlueInput, ++ MVT::i64, 3/*#Ops*/, 1, 0, 2, ++ // Src: (LoongArchCMovFP_F:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$T, FCFROpnd:{ *:[i32] }:$cond, GPR64Opnd:{ *:[i64] }:$F) - Complexity = 3 ++ // Dst: (PseudoSELECTFP_F_I64:{ *:[i64] } FCFROpnd:{ *:[i32] }:$cond, GPR64Opnd:{ *:[i64] }:$T, GPR64Opnd:{ *:[i64] }:$F) ++/*578599*/ 0, // EndSwitchType ++/*578600*/ /*SwitchOpcode*/ 114|128,3/*498*/, TARGET_VAL(ISD::FDIV),// ->579102 ++/*578604*/ OPC_Scope, 58, /*->578664*/ // 4 children in Scope ++/*578606*/ OPC_MoveChild0, ++/*578607*/ OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP), ++/*578610*/ OPC_CheckPredicate, 45, // Predicate_fpimm1 ++/*578612*/ OPC_MoveParent, ++/*578613*/ OPC_Scope, 26, /*->578641*/ // 2 children in Scope ++/*578615*/ OPC_MoveChild1, ++/*578616*/ OPC_CheckOpcode, TARGET_VAL(ISD::FSQRT), ++/*578619*/ OPC_RecordChild0, // #0 = $fj ++/*578620*/ OPC_MoveParent, ++/*578621*/ OPC_SwitchType /*2 cases */, 7, MVT::f32,// ->578631 ++/*578624*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FRSQRT_S), 0, ++ MVT::f32, 1/*#Ops*/, 0, ++ // Src: (fdiv:{ *:[f32] } (fpimm:{ *:[f32] })<>, (fsqrt:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fj)) - Complexity = 10 ++ // Dst: (FRSQRT_S:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fj) ++/*578631*/ /*SwitchType*/ 7, MVT::f64,// ->578640 ++/*578633*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FRSQRT_D), 0, ++ MVT::f64, 1/*#Ops*/, 0, ++ // Src: (fdiv:{ *:[f64] } (fpimm:{ *:[f64] })<>, (fsqrt:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fj)) - Complexity = 10 ++ // Dst: (FRSQRT_D:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fj) ++/*578640*/ 0, // EndSwitchType ++/*578641*/ /*Scope*/ 21, /*->578663*/ ++/*578642*/ OPC_RecordChild1, // #0 = $fj ++/*578643*/ OPC_SwitchType /*2 cases */, 7, MVT::f32,// ->578653 ++/*578646*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FRECIP_S), 0, ++ MVT::f32, 1/*#Ops*/, 0, ++ // Src: (fdiv:{ *:[f32] } (fpimm:{ *:[f32] })<>, FGR32Opnd:{ *:[f32] }:$fj) - Complexity = 7 ++ // Dst: (FRECIP_S:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fj) ++/*578653*/ /*SwitchType*/ 7, MVT::f64,// ->578662 ++/*578655*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FRECIP_D), 0, ++ MVT::f64, 1/*#Ops*/, 0, ++ // Src: (fdiv:{ *:[f64] } (fpimm:{ *:[f64] })<>, FGR64Opnd:{ *:[f64] }:$fj) - Complexity = 7 ++ // Dst: (FRECIP_D:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fj) ++/*578662*/ 0, // EndSwitchType ++/*578663*/ 0, /*End of Scope*/ ++/*578664*/ /*Scope*/ 24, /*->578689*/ ++/*578665*/ OPC_RecordChild0, // #0 = $fj ++/*578666*/ OPC_RecordChild1, // #1 = $fk ++/*578667*/ OPC_SwitchType /*2 cases */, 8, MVT::f32,// ->578678 ++/*578670*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FDIV_S), 0, ++ MVT::f32, 2/*#Ops*/, 0, 1, ++ // Src: (fdiv:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fj, FGR32Opnd:{ *:[f32] }:$fk) - Complexity = 3 ++ // Dst: (FDIV_S:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fj, FGR32Opnd:{ *:[f32] }:$fk) ++/*578678*/ /*SwitchType*/ 8, MVT::f64,// ->578688 ++/*578680*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FDIV_D), 0, ++ MVT::f64, 2/*#Ops*/, 0, 1, ++ // Src: (fdiv:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fj, FGR64Opnd:{ *:[f64] }:$fk) - Complexity = 3 ++ // Dst: (FDIV_D:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fj, FGR64Opnd:{ *:[f64] }:$fk) ++/*578688*/ 0, // EndSwitchType ++/*578689*/ /*Scope*/ 109|128,2/*365*/, /*->579056*/ ++/*578691*/ OPC_MoveChild0, ++/*578692*/ OPC_SwitchOpcode /*2 cases */, 121|128,1/*249*/, TARGET_VAL(ISD::BUILD_VECTOR),// ->578946 ++/*578697*/ OPC_MoveChild0, ++/*578698*/ OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP), ++/*578701*/ OPC_CheckPredicate, 45, // Predicate_fpimm1 ++/*578703*/ OPC_SwitchType /*2 cases */, 8|128,1/*136*/, MVT::f32,// ->578843 ++/*578707*/ OPC_MoveParent, ++/*578708*/ OPC_MoveChild1, ++/*578709*/ OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP), ++/*578712*/ OPC_CheckPredicate, 45, // Predicate_fpimm1 ++/*578714*/ OPC_CheckType, MVT::f32, ++/*578716*/ OPC_MoveParent, ++/*578717*/ OPC_MoveChild2, ++/*578718*/ OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP), ++/*578721*/ OPC_CheckPredicate, 45, // Predicate_fpimm1 ++/*578723*/ OPC_CheckType, MVT::f32, ++/*578725*/ OPC_MoveParent, ++/*578726*/ OPC_MoveChild3, ++/*578727*/ OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP), ++/*578730*/ OPC_CheckPredicate, 45, // Predicate_fpimm1 ++/*578732*/ OPC_CheckType, MVT::f32, ++/*578734*/ OPC_MoveParent, ++/*578735*/ OPC_Scope, 70, /*->578807*/ // 2 children in Scope ++/*578737*/ OPC_MoveChild4, ++/*578738*/ OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP), ++/*578741*/ OPC_CheckPredicate, 45, // Predicate_fpimm1 ++/*578743*/ OPC_CheckType, MVT::f32, ++/*578745*/ OPC_MoveParent, ++/*578746*/ OPC_MoveChild5, ++/*578747*/ OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP), ++/*578750*/ OPC_CheckPredicate, 45, // Predicate_fpimm1 ++/*578752*/ OPC_CheckType, MVT::f32, ++/*578754*/ OPC_MoveParent, ++/*578755*/ OPC_MoveChild6, ++/*578756*/ OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP), ++/*578759*/ OPC_CheckPredicate, 45, // Predicate_fpimm1 ++/*578761*/ OPC_CheckType, MVT::f32, ++/*578763*/ OPC_MoveParent, ++/*578764*/ OPC_MoveChild7, ++/*578765*/ OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP), ++/*578768*/ OPC_CheckPredicate, 45, // Predicate_fpimm1 ++/*578770*/ OPC_CheckType, MVT::f32, ++/*578772*/ OPC_MoveParent, ++/*578773*/ OPC_MoveParent, ++/*578774*/ OPC_Scope, 17, /*->578793*/ // 2 children in Scope ++/*578776*/ OPC_MoveChild1, ++/*578777*/ OPC_CheckOpcode, TARGET_VAL(ISD::FSQRT), ++/*578780*/ OPC_RecordChild0, // #0 = $v ++/*578781*/ OPC_MoveParent, ++/*578782*/ OPC_CheckType, MVT::v8f32, ++/*578784*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*578786*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFRSQRT_S), 0, ++ MVT::v8f32, 1/*#Ops*/, 0, ++ // Src: (fdiv:{ *:[v8f32] } (build_vector:{ *:[v8f32] } (fpimm:{ *:[f32] })<>, (fpimm:{ *:[f32] })<>, (fpimm:{ *:[f32] })<>, (fpimm:{ *:[f32] })<>, (fpimm:{ *:[f32] })<>, (fpimm:{ *:[f32] })<>, (fpimm:{ *:[f32] })<>, (fpimm:{ *:[f32] })<>), (fsqrt:{ *:[v8f32] } v8f32:{ *:[v8f32] }:$v)) - Complexity = 41 ++ // Dst: (XVFRSQRT_S:{ *:[v8f32] } v8f32:{ *:[v8f32] }:$v) ++/*578793*/ /*Scope*/ 12, /*->578806*/ ++/*578794*/ OPC_RecordChild1, // #0 = $v ++/*578795*/ OPC_CheckType, MVT::v8f32, ++/*578797*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*578799*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFRECIP_S), 0, ++ MVT::v8f32, 1/*#Ops*/, 0, ++ // Src: (fdiv:{ *:[v8f32] } (build_vector:{ *:[v8f32] } (fpimm:{ *:[f32] })<>, (fpimm:{ *:[f32] })<>, (fpimm:{ *:[f32] })<>, (fpimm:{ *:[f32] })<>, (fpimm:{ *:[f32] })<>, (fpimm:{ *:[f32] })<>, (fpimm:{ *:[f32] })<>, (fpimm:{ *:[f32] })<>), v8f32:{ *:[v8f32] }:$v) - Complexity = 38 ++ // Dst: (XVFRECIP_S:{ *:[v8f32] } v8f32:{ *:[v8f32] }:$v) ++/*578806*/ 0, /*End of Scope*/ ++/*578807*/ /*Scope*/ 34, /*->578842*/ ++/*578808*/ OPC_MoveParent, ++/*578809*/ OPC_Scope, 17, /*->578828*/ // 2 children in Scope ++/*578811*/ OPC_MoveChild1, ++/*578812*/ OPC_CheckOpcode, TARGET_VAL(ISD::FSQRT), ++/*578815*/ OPC_RecordChild0, // #0 = $v ++/*578816*/ OPC_MoveParent, ++/*578817*/ OPC_CheckType, MVT::v4f32, ++/*578819*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*578821*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFRSQRT_S), 0, ++ MVT::v4f32, 1/*#Ops*/, 0, ++ // Src: (fdiv:{ *:[v4f32] } (build_vector:{ *:[v4f32] } (fpimm:{ *:[f32] })<>, (fpimm:{ *:[f32] })<>, (fpimm:{ *:[f32] })<>, (fpimm:{ *:[f32] })<>), (fsqrt:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$v)) - Complexity = 25 ++ // Dst: (VFRSQRT_S:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$v) ++/*578828*/ /*Scope*/ 12, /*->578841*/ ++/*578829*/ OPC_RecordChild1, // #0 = $v ++/*578830*/ OPC_CheckType, MVT::v4f32, ++/*578832*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*578834*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFRECIP_S), 0, ++ MVT::v4f32, 1/*#Ops*/, 0, ++ // Src: (fdiv:{ *:[v4f32] } (build_vector:{ *:[v4f32] } (fpimm:{ *:[f32] })<>, (fpimm:{ *:[f32] })<>, (fpimm:{ *:[f32] })<>, (fpimm:{ *:[f32] })<>), v4f32:{ *:[v4f32] }:$v) - Complexity = 22 ++ // Dst: (VFRECIP_S:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$v) ++/*578841*/ 0, /*End of Scope*/ ++/*578842*/ 0, /*End of Scope*/ ++/*578843*/ /*SwitchType*/ 100, MVT::f64,// ->578945 ++/*578845*/ OPC_MoveParent, ++/*578846*/ OPC_MoveChild1, ++/*578847*/ OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP), ++/*578850*/ OPC_CheckPredicate, 45, // Predicate_fpimm1 ++/*578852*/ OPC_CheckType, MVT::f64, ++/*578854*/ OPC_MoveParent, ++/*578855*/ OPC_Scope, 52, /*->578909*/ // 2 children in Scope ++/*578857*/ OPC_MoveChild2, ++/*578858*/ OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP), ++/*578861*/ OPC_CheckPredicate, 45, // Predicate_fpimm1 ++/*578863*/ OPC_CheckType, MVT::f64, ++/*578865*/ OPC_MoveParent, ++/*578866*/ OPC_MoveChild3, ++/*578867*/ OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP), ++/*578870*/ OPC_CheckPredicate, 45, // Predicate_fpimm1 ++/*578872*/ OPC_CheckType, MVT::f64, ++/*578874*/ OPC_MoveParent, ++/*578875*/ OPC_MoveParent, ++/*578876*/ OPC_Scope, 17, /*->578895*/ // 2 children in Scope ++/*578878*/ OPC_MoveChild1, ++/*578879*/ OPC_CheckOpcode, TARGET_VAL(ISD::FSQRT), ++/*578882*/ OPC_RecordChild0, // #0 = $v ++/*578883*/ OPC_MoveParent, ++/*578884*/ OPC_CheckType, MVT::v4f64, ++/*578886*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*578888*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFRSQRT_D), 0, ++ MVT::v4f64, 1/*#Ops*/, 0, ++ // Src: (fdiv:{ *:[v4f64] } (build_vector:{ *:[v4f64] } (fpimm:{ *:[f64] })<>, (fpimm:{ *:[f64] })<>, (fpimm:{ *:[f64] })<>, (fpimm:{ *:[f64] })<>), (fsqrt:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$v)) - Complexity = 25 ++ // Dst: (XVFRSQRT_D:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$v) ++/*578895*/ /*Scope*/ 12, /*->578908*/ ++/*578896*/ OPC_RecordChild1, // #0 = $v ++/*578897*/ OPC_CheckType, MVT::v4f64, ++/*578899*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*578901*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFRECIP_D), 0, ++ MVT::v4f64, 1/*#Ops*/, 0, ++ // Src: (fdiv:{ *:[v4f64] } (build_vector:{ *:[v4f64] } (fpimm:{ *:[f64] })<>, (fpimm:{ *:[f64] })<>, (fpimm:{ *:[f64] })<>, (fpimm:{ *:[f64] })<>), v4f64:{ *:[v4f64] }:$v) - Complexity = 22 ++ // Dst: (XVFRECIP_D:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$v) ++/*578908*/ 0, /*End of Scope*/ ++/*578909*/ /*Scope*/ 34, /*->578944*/ ++/*578910*/ OPC_MoveParent, ++/*578911*/ OPC_Scope, 17, /*->578930*/ // 2 children in Scope ++/*578913*/ OPC_MoveChild1, ++/*578914*/ OPC_CheckOpcode, TARGET_VAL(ISD::FSQRT), ++/*578917*/ OPC_RecordChild0, // #0 = $v ++/*578918*/ OPC_MoveParent, ++/*578919*/ OPC_CheckType, MVT::v2f64, ++/*578921*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*578923*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFRSQRT_D), 0, ++ MVT::v2f64, 1/*#Ops*/, 0, ++ // Src: (fdiv:{ *:[v2f64] } (build_vector:{ *:[v2f64] } (fpimm:{ *:[f64] })<>, (fpimm:{ *:[f64] })<>), (fsqrt:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$v)) - Complexity = 17 ++ // Dst: (VFRSQRT_D:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$v) ++/*578930*/ /*Scope*/ 12, /*->578943*/ ++/*578931*/ OPC_RecordChild1, // #0 = $v ++/*578932*/ OPC_CheckType, MVT::v2f64, ++/*578934*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*578936*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFRECIP_D), 0, ++ MVT::v2f64, 1/*#Ops*/, 0, ++ // Src: (fdiv:{ *:[v2f64] } (build_vector:{ *:[v2f64] } (fpimm:{ *:[f64] })<>, (fpimm:{ *:[f64] })<>), v2f64:{ *:[v2f64] }:$v) - Complexity = 14 ++ // Dst: (VFRECIP_D:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$v) ++/*578943*/ 0, /*End of Scope*/ ++/*578944*/ 0, /*End of Scope*/ ++/*578945*/ 0, // EndSwitchType ++/*578946*/ /*SwitchOpcode*/ 106, TARGET_VAL(ISD::ConstantFP),// ->579055 ++/*578949*/ OPC_CheckPredicate, 45, // Predicate_fpimm1 ++/*578951*/ OPC_MoveParent, ++/*578952*/ OPC_Scope, 52, /*->579006*/ // 2 children in Scope ++/*578954*/ OPC_MoveChild1, ++/*578955*/ OPC_CheckOpcode, TARGET_VAL(ISD::FSQRT), ++/*578958*/ OPC_RecordChild0, // #0 = $v ++/*578959*/ OPC_MoveParent, ++/*578960*/ OPC_SwitchType /*4 cases */, 9, MVT::v4f32,// ->578972 ++/*578963*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*578965*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFRSQRT_S), 0, ++ MVT::v4f32, 1/*#Ops*/, 0, ++ // Src: (fdiv:{ *:[v4f32] } (fpimm:{ *:[v4f32] })<>, (fsqrt:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$v)) - Complexity = 10 ++ // Dst: (VFRSQRT_S:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$v) ++/*578972*/ /*SwitchType*/ 9, MVT::v2f64,// ->578983 ++/*578974*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*578976*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFRSQRT_D), 0, ++ MVT::v2f64, 1/*#Ops*/, 0, ++ // Src: (fdiv:{ *:[v2f64] } (fpimm:{ *:[v2f64] })<>, (fsqrt:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$v)) - Complexity = 10 ++ // Dst: (VFRSQRT_D:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$v) ++/*578983*/ /*SwitchType*/ 9, MVT::v8f32,// ->578994 ++/*578985*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*578987*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFRSQRT_S), 0, ++ MVT::v8f32, 1/*#Ops*/, 0, ++ // Src: (fdiv:{ *:[v8f32] } (fpimm:{ *:[v8f32] })<>, (fsqrt:{ *:[v8f32] } v8f32:{ *:[v8f32] }:$v)) - Complexity = 10 ++ // Dst: (XVFRSQRT_S:{ *:[v8f32] } v8f32:{ *:[v8f32] }:$v) ++/*578994*/ /*SwitchType*/ 9, MVT::v4f64,// ->579005 ++/*578996*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*578998*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFRSQRT_D), 0, ++ MVT::v4f64, 1/*#Ops*/, 0, ++ // Src: (fdiv:{ *:[v4f64] } (fpimm:{ *:[v4f64] })<>, (fsqrt:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$v)) - Complexity = 10 ++ // Dst: (XVFRSQRT_D:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$v) ++/*579005*/ 0, // EndSwitchType ++/*579006*/ /*Scope*/ 47, /*->579054*/ ++/*579007*/ OPC_RecordChild1, // #0 = $v ++/*579008*/ OPC_SwitchType /*4 cases */, 9, MVT::v4f32,// ->579020 ++/*579011*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*579013*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFRECIP_S), 0, ++ MVT::v4f32, 1/*#Ops*/, 0, ++ // Src: (fdiv:{ *:[v4f32] } (fpimm:{ *:[v4f32] })<>, v4f32:{ *:[v4f32] }:$v) - Complexity = 7 ++ // Dst: (VFRECIP_S:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$v) ++/*579020*/ /*SwitchType*/ 9, MVT::v2f64,// ->579031 ++/*579022*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*579024*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFRECIP_D), 0, ++ MVT::v2f64, 1/*#Ops*/, 0, ++ // Src: (fdiv:{ *:[v2f64] } (fpimm:{ *:[v2f64] })<>, v2f64:{ *:[v2f64] }:$v) - Complexity = 7 ++ // Dst: (VFRECIP_D:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$v) ++/*579031*/ /*SwitchType*/ 9, MVT::v8f32,// ->579042 ++/*579033*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*579035*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFRECIP_S), 0, ++ MVT::v8f32, 1/*#Ops*/, 0, ++ // Src: (fdiv:{ *:[v8f32] } (fpimm:{ *:[v8f32] })<>, v8f32:{ *:[v8f32] }:$v) - Complexity = 7 ++ // Dst: (XVFRECIP_S:{ *:[v8f32] } v8f32:{ *:[v8f32] }:$v) ++/*579042*/ /*SwitchType*/ 9, MVT::v4f64,// ->579053 ++/*579044*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*579046*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFRECIP_D), 0, ++ MVT::v4f64, 1/*#Ops*/, 0, ++ // Src: (fdiv:{ *:[v4f64] } (fpimm:{ *:[v4f64] })<>, v4f64:{ *:[v4f64] }:$v) - Complexity = 7 ++ // Dst: (XVFRECIP_D:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$v) ++/*579053*/ 0, // EndSwitchType ++/*579054*/ 0, /*End of Scope*/ ++/*579055*/ 0, // EndSwitchOpcode ++/*579056*/ /*Scope*/ 44, /*->579101*/ ++/*579057*/ OPC_RecordChild0, // #0 = $vj ++/*579058*/ OPC_RecordChild1, // #1 = $vk ++/*579059*/ OPC_SwitchType /*4 cases */, 8, MVT::v4f32,// ->579070 ++/*579062*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFDIV_S), 0, ++ MVT::v4f32, 2/*#Ops*/, 0, 1, ++ // Src: (fdiv:{ *:[v4f32] } LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk) - Complexity = 3 ++ // Dst: (VFDIV_S:{ *:[v4f32] } LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk) ++/*579070*/ /*SwitchType*/ 8, MVT::v2f64,// ->579080 ++/*579072*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFDIV_D), 0, ++ MVT::v2f64, 2/*#Ops*/, 0, 1, ++ // Src: (fdiv:{ *:[v2f64] } LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk) - Complexity = 3 ++ // Dst: (VFDIV_D:{ *:[v2f64] } LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk) ++/*579080*/ /*SwitchType*/ 8, MVT::v8f32,// ->579090 ++/*579082*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFDIV_S), 0, ++ MVT::v8f32, 2/*#Ops*/, 0, 1, ++ // Src: (fdiv:{ *:[v8f32] } LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk) - Complexity = 3 ++ // Dst: (XVFDIV_S:{ *:[v8f32] } LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk) ++/*579090*/ /*SwitchType*/ 8, MVT::v4f64,// ->579100 ++/*579092*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFDIV_D), 0, ++ MVT::v4f64, 2/*#Ops*/, 0, 1, ++ // Src: (fdiv:{ *:[v4f64] } LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) - Complexity = 3 ++ // Dst: (XVFDIV_D:{ *:[v4f64] } LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) ++/*579100*/ 0, // EndSwitchType ++/*579101*/ 0, /*End of Scope*/ ++/*579102*/ /*SwitchOpcode*/ 24|128,3/*408*/, TARGET_VAL(ISD::FMA),// ->579514 ++/*579106*/ OPC_Scope, 37, /*->579145*/ // 10 children in Scope ++/*579108*/ OPC_MoveChild0, ++/*579109*/ OPC_CheckOpcode, TARGET_VAL(ISD::FNEG), ++/*579112*/ OPC_RecordChild0, // #0 = $fj ++/*579113*/ OPC_MoveParent, ++/*579114*/ OPC_RecordChild1, // #1 = $fk ++/*579115*/ OPC_MoveChild2, ++/*579116*/ OPC_CheckOpcode, TARGET_VAL(ISD::FNEG), ++/*579119*/ OPC_RecordChild0, // #2 = $fa ++/*579120*/ OPC_MoveParent, ++/*579121*/ OPC_SwitchType /*2 cases */, 9, MVT::f64,// ->579133 ++/*579124*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FNMADD_D), 0, ++ MVT::f64, 3/*#Ops*/, 0, 1, 2, ++ // Src: (fma:{ *:[f64] } (fneg:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fj), FGR64Opnd:{ *:[f64] }:$fk, (fneg:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fa)) - Complexity = 9 ++ // Dst: (FNMADD_D:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fj, FGR64Opnd:{ *:[f64] }:$fk, FGR64Opnd:{ *:[f64] }:$fa) ++/*579133*/ /*SwitchType*/ 9, MVT::f32,// ->579144 ++/*579135*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FNMADD_S), 0, ++ MVT::f32, 3/*#Ops*/, 0, 1, 2, ++ // Src: (fma:{ *:[f32] } (fneg:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fj), FGR32Opnd:{ *:[f32] }:$fk, (fneg:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fa)) - Complexity = 9 ++ // Dst: (FNMADD_S:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fj, FGR32Opnd:{ *:[f32] }:$fk, FGR32Opnd:{ *:[f32] }:$fa) ++/*579144*/ 0, // EndSwitchType ++/*579145*/ /*Scope*/ 32, /*->579178*/ ++/*579146*/ OPC_RecordChild0, // #0 = $fj ++/*579147*/ OPC_RecordChild1, // #1 = $fk ++/*579148*/ OPC_MoveChild2, ++/*579149*/ OPC_CheckOpcode, TARGET_VAL(ISD::FNEG), ++/*579152*/ OPC_RecordChild0, // #2 = $fa ++/*579153*/ OPC_MoveParent, ++/*579154*/ OPC_SwitchType /*2 cases */, 9, MVT::f64,// ->579166 ++/*579157*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FMSUB_D), 0, ++ MVT::f64, 3/*#Ops*/, 0, 1, 2, ++ // Src: (fma:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fj, FGR64Opnd:{ *:[f64] }:$fk, (fneg:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fa)) - Complexity = 6 ++ // Dst: (FMSUB_D:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fj, FGR64Opnd:{ *:[f64] }:$fk, FGR64Opnd:{ *:[f64] }:$fa) ++/*579166*/ /*SwitchType*/ 9, MVT::f32,// ->579177 ++/*579168*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FMSUB_S), 0, ++ MVT::f32, 3/*#Ops*/, 0, 1, 2, ++ // Src: (fma:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fj, FGR32Opnd:{ *:[f32] }:$fk, (fneg:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fa)) - Complexity = 6 ++ // Dst: (FMSUB_S:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fj, FGR32Opnd:{ *:[f32] }:$fk, FGR32Opnd:{ *:[f32] }:$fa) ++/*579177*/ 0, // EndSwitchType ++/*579178*/ /*Scope*/ 32, /*->579211*/ ++/*579179*/ OPC_MoveChild0, ++/*579180*/ OPC_CheckOpcode, TARGET_VAL(ISD::FNEG), ++/*579183*/ OPC_RecordChild0, // #0 = $fj ++/*579184*/ OPC_MoveParent, ++/*579185*/ OPC_RecordChild1, // #1 = $fk ++/*579186*/ OPC_RecordChild2, // #2 = $fa ++/*579187*/ OPC_SwitchType /*2 cases */, 9, MVT::f64,// ->579199 ++/*579190*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FNMSUB_D), 0, ++ MVT::f64, 3/*#Ops*/, 0, 1, 2, ++ // Src: (fma:{ *:[f64] } (fneg:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fj), FGR64Opnd:{ *:[f64] }:$fk, FGR64Opnd:{ *:[f64] }:$fa) - Complexity = 6 ++ // Dst: (FNMSUB_D:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fj, FGR64Opnd:{ *:[f64] }:$fk, FGR64Opnd:{ *:[f64] }:$fa) ++/*579199*/ /*SwitchType*/ 9, MVT::f32,// ->579210 ++/*579201*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FNMSUB_S), 0, ++ MVT::f32, 3/*#Ops*/, 0, 1, 2, ++ // Src: (fma:{ *:[f32] } (fneg:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fj), FGR32Opnd:{ *:[f32] }:$fk, FGR32Opnd:{ *:[f32] }:$fa) - Complexity = 6 ++ // Dst: (FNMSUB_S:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fj, FGR32Opnd:{ *:[f32] }:$fk, FGR32Opnd:{ *:[f32] }:$fa) ++/*579210*/ 0, // EndSwitchType ++/*579211*/ /*Scope*/ 27, /*->579239*/ ++/*579212*/ OPC_RecordChild0, // #0 = $fj ++/*579213*/ OPC_RecordChild1, // #1 = $fk ++/*579214*/ OPC_RecordChild2, // #2 = $fa ++/*579215*/ OPC_SwitchType /*2 cases */, 9, MVT::f64,// ->579227 ++/*579218*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FMADD_D), 0, ++ MVT::f64, 3/*#Ops*/, 0, 1, 2, ++ // Src: (fma:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fj, FGR64Opnd:{ *:[f64] }:$fk, FGR64Opnd:{ *:[f64] }:$fa) - Complexity = 3 ++ // Dst: (FMADD_D:{ *:[f64] } ?:{ *:[f64] }:$fj, ?:{ *:[f64] }:$fk, ?:{ *:[f64] }:$fa) ++/*579227*/ /*SwitchType*/ 9, MVT::f32,// ->579238 ++/*579229*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FMADD_S), 0, ++ MVT::f32, 3/*#Ops*/, 0, 1, 2, ++ // Src: (fma:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fj, FGR32Opnd:{ *:[f32] }:$fk, FGR32Opnd:{ *:[f32] }:$fa) - Complexity = 3 ++ // Dst: (FMADD_S:{ *:[f32] } ?:{ *:[f32] }:$fj, ?:{ *:[f32] }:$fk, ?:{ *:[f32] }:$fa) ++/*579238*/ 0, // EndSwitchType ++/*579239*/ /*Scope*/ 67, /*->579307*/ ++/*579240*/ OPC_MoveChild0, ++/*579241*/ OPC_CheckOpcode, TARGET_VAL(ISD::FNEG), ++/*579244*/ OPC_RecordChild0, // #0 = $vj ++/*579245*/ OPC_MoveParent, ++/*579246*/ OPC_RecordChild1, // #1 = $vk ++/*579247*/ OPC_MoveChild2, ++/*579248*/ OPC_CheckOpcode, TARGET_VAL(ISD::FNEG), ++/*579251*/ OPC_RecordChild0, // #2 = $va ++/*579252*/ OPC_MoveParent, ++/*579253*/ OPC_SwitchType /*4 cases */, 11, MVT::v2f64,// ->579267 ++/*579256*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*579258*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFNMADD_D), 0, ++ MVT::v2f64, 3/*#Ops*/, 0, 1, 2, ++ // Src: (fma:{ *:[v2f64] } (fneg:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$vj), v2f64:{ *:[v2f64] }:$vk, (fneg:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$va)) - Complexity = 9 ++ // Dst: (VFNMADD_D:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$vj, v2f64:{ *:[v2f64] }:$vk, v2f64:{ *:[v2f64] }:$va) ++/*579267*/ /*SwitchType*/ 11, MVT::v4f32,// ->579280 ++/*579269*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*579271*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFNMADD_S), 0, ++ MVT::v4f32, 3/*#Ops*/, 0, 1, 2, ++ // Src: (fma:{ *:[v4f32] } (fneg:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$vj), v4f32:{ *:[v4f32] }:$vk, (fneg:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$va)) - Complexity = 9 ++ // Dst: (VFNMADD_S:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$vj, v4f32:{ *:[v4f32] }:$vk, v4f32:{ *:[v4f32] }:$va) ++/*579280*/ /*SwitchType*/ 11, MVT::v4f64,// ->579293 ++/*579282*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*579284*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFNMADD_D), 0, ++ MVT::v4f64, 3/*#Ops*/, 0, 1, 2, ++ // Src: (fma:{ *:[v4f64] } (fneg:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$xj), v4f64:{ *:[v4f64] }:$xk, (fneg:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$xa)) - Complexity = 9 ++ // Dst: (XVFNMADD_D:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$xj, v4f64:{ *:[v4f64] }:$xk, v4f64:{ *:[v4f64] }:$xa) ++/*579293*/ /*SwitchType*/ 11, MVT::v8f32,// ->579306 ++/*579295*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*579297*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFNMADD_S), 0, ++ MVT::v8f32, 3/*#Ops*/, 0, 1, 2, ++ // Src: (fma:{ *:[v8f32] } (fneg:{ *:[v8f32] } v8f32:{ *:[v8f32] }:$xj), v8f32:{ *:[v8f32] }:$xk, (fneg:{ *:[v8f32] } v8f32:{ *:[v8f32] }:$xa)) - Complexity = 9 ++ // Dst: (XVFNMADD_S:{ *:[v8f32] } v8f32:{ *:[v8f32] }:$xj, v8f32:{ *:[v8f32] }:$xk, v8f32:{ *:[v8f32] }:$xa) ++/*579306*/ 0, // EndSwitchType ++/*579307*/ /*Scope*/ 36, /*->579344*/ ++/*579308*/ OPC_RecordChild0, // #0 = $vj ++/*579309*/ OPC_RecordChild1, // #1 = $vk ++/*579310*/ OPC_MoveChild2, ++/*579311*/ OPC_CheckOpcode, TARGET_VAL(ISD::FNEG), ++/*579314*/ OPC_RecordChild0, // #2 = $va ++/*579315*/ OPC_MoveParent, ++/*579316*/ OPC_SwitchType /*2 cases */, 11, MVT::v2f64,// ->579330 ++/*579319*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*579321*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFMSUB_D), 0, ++ MVT::v2f64, 3/*#Ops*/, 0, 1, 2, ++ // Src: (fma:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$vj, v2f64:{ *:[v2f64] }:$vk, (fneg:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$va)) - Complexity = 6 ++ // Dst: (VFMSUB_D:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$vj, v2f64:{ *:[v2f64] }:$vk, v2f64:{ *:[v2f64] }:$va) ++/*579330*/ /*SwitchType*/ 11, MVT::v4f32,// ->579343 ++/*579332*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*579334*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFMSUB_S), 0, ++ MVT::v4f32, 3/*#Ops*/, 0, 1, 2, ++ // Src: (fma:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$vj, v4f32:{ *:[v4f32] }:$vk, (fneg:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$va)) - Complexity = 6 ++ // Dst: (VFMSUB_S:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$vj, v4f32:{ *:[v4f32] }:$vk, v4f32:{ *:[v4f32] }:$va) ++/*579343*/ 0, // EndSwitchType ++/*579344*/ /*Scope*/ 36, /*->579381*/ ++/*579345*/ OPC_MoveChild0, ++/*579346*/ OPC_CheckOpcode, TARGET_VAL(ISD::FNEG), ++/*579349*/ OPC_RecordChild0, // #0 = $vj ++/*579350*/ OPC_MoveParent, ++/*579351*/ OPC_RecordChild1, // #1 = $vk ++/*579352*/ OPC_RecordChild2, // #2 = $va ++/*579353*/ OPC_SwitchType /*2 cases */, 11, MVT::v2f64,// ->579367 ++/*579356*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*579358*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFNMSUB_D), 0, ++ MVT::v2f64, 3/*#Ops*/, 0, 1, 2, ++ // Src: (fma:{ *:[v2f64] } (fneg:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$vj), v2f64:{ *:[v2f64] }:$vk, v2f64:{ *:[v2f64] }:$va) - Complexity = 6 ++ // Dst: (VFNMSUB_D:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$vj, v2f64:{ *:[v2f64] }:$vk, v2f64:{ *:[v2f64] }:$va) ++/*579367*/ /*SwitchType*/ 11, MVT::v4f32,// ->579380 ++/*579369*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*579371*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFNMSUB_S), 0, ++ MVT::v4f32, 3/*#Ops*/, 0, 1, 2, ++ // Src: (fma:{ *:[v4f32] } (fneg:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$vj), v4f32:{ *:[v4f32] }:$vk, v4f32:{ *:[v4f32] }:$va) - Complexity = 6 ++ // Dst: (VFNMSUB_S:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$vj, v4f32:{ *:[v4f32] }:$vk, v4f32:{ *:[v4f32] }:$va) ++/*579380*/ 0, // EndSwitchType ++/*579381*/ /*Scope*/ 36, /*->579418*/ ++/*579382*/ OPC_RecordChild0, // #0 = $xj ++/*579383*/ OPC_RecordChild1, // #1 = $xk ++/*579384*/ OPC_MoveChild2, ++/*579385*/ OPC_CheckOpcode, TARGET_VAL(ISD::FNEG), ++/*579388*/ OPC_RecordChild0, // #2 = $xa ++/*579389*/ OPC_MoveParent, ++/*579390*/ OPC_SwitchType /*2 cases */, 11, MVT::v4f64,// ->579404 ++/*579393*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*579395*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFMSUB_D), 0, ++ MVT::v4f64, 3/*#Ops*/, 0, 1, 2, ++ // Src: (fma:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$xj, v4f64:{ *:[v4f64] }:$xk, (fneg:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$xa)) - Complexity = 6 ++ // Dst: (XVFMSUB_D:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$xj, v4f64:{ *:[v4f64] }:$xk, v4f64:{ *:[v4f64] }:$xa) ++/*579404*/ /*SwitchType*/ 11, MVT::v8f32,// ->579417 ++/*579406*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*579408*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFMSUB_S), 0, ++ MVT::v8f32, 3/*#Ops*/, 0, 1, 2, ++ // Src: (fma:{ *:[v8f32] } v8f32:{ *:[v8f32] }:$xj, v8f32:{ *:[v8f32] }:$xk, (fneg:{ *:[v8f32] } v8f32:{ *:[v8f32] }:$xa)) - Complexity = 6 ++ // Dst: (XVFMSUB_S:{ *:[v8f32] } v8f32:{ *:[v8f32] }:$xj, v8f32:{ *:[v8f32] }:$xk, v8f32:{ *:[v8f32] }:$xa) ++/*579417*/ 0, // EndSwitchType ++/*579418*/ /*Scope*/ 36, /*->579455*/ ++/*579419*/ OPC_MoveChild0, ++/*579420*/ OPC_CheckOpcode, TARGET_VAL(ISD::FNEG), ++/*579423*/ OPC_RecordChild0, // #0 = $xj ++/*579424*/ OPC_MoveParent, ++/*579425*/ OPC_RecordChild1, // #1 = $xk ++/*579426*/ OPC_RecordChild2, // #2 = $xa ++/*579427*/ OPC_SwitchType /*2 cases */, 11, MVT::v4f64,// ->579441 ++/*579430*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*579432*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFNMSUB_D), 0, ++ MVT::v4f64, 3/*#Ops*/, 0, 1, 2, ++ // Src: (fma:{ *:[v4f64] } (fneg:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$xj), v4f64:{ *:[v4f64] }:$xk, v4f64:{ *:[v4f64] }:$xa) - Complexity = 6 ++ // Dst: (XVFNMSUB_D:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$xj, v4f64:{ *:[v4f64] }:$xk, v4f64:{ *:[v4f64] }:$xa) ++/*579441*/ /*SwitchType*/ 11, MVT::v8f32,// ->579454 ++/*579443*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*579445*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFNMSUB_S), 0, ++ MVT::v8f32, 3/*#Ops*/, 0, 1, 2, ++ // Src: (fma:{ *:[v8f32] } (fneg:{ *:[v8f32] } v8f32:{ *:[v8f32] }:$xj), v8f32:{ *:[v8f32] }:$xk, v8f32:{ *:[v8f32] }:$xa) - Complexity = 6 ++ // Dst: (XVFNMSUB_S:{ *:[v8f32] } v8f32:{ *:[v8f32] }:$xj, v8f32:{ *:[v8f32] }:$xk, v8f32:{ *:[v8f32] }:$xa) ++/*579454*/ 0, // EndSwitchType ++/*579455*/ /*Scope*/ 57, /*->579513*/ ++/*579456*/ OPC_RecordChild0, // #0 = $vj ++/*579457*/ OPC_RecordChild1, // #1 = $vk ++/*579458*/ OPC_RecordChild2, // #2 = $va ++/*579459*/ OPC_SwitchType /*4 cases */, 11, MVT::v2f64,// ->579473 ++/*579462*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*579464*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFMADD_D), 0, ++ MVT::v2f64, 3/*#Ops*/, 0, 1, 2, ++ // Src: (fma:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$vj, v2f64:{ *:[v2f64] }:$vk, v2f64:{ *:[v2f64] }:$va) - Complexity = 3 ++ // Dst: (VFMADD_D:{ *:[v2f64] } ?:{ *:[v2f64] }:$vj, ?:{ *:[v2f64] }:$vk, ?:{ *:[v2f64] }:$va) ++/*579473*/ /*SwitchType*/ 11, MVT::v4f32,// ->579486 ++/*579475*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*579477*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFMADD_S), 0, ++ MVT::v4f32, 3/*#Ops*/, 0, 1, 2, ++ // Src: (fma:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$vj, v4f32:{ *:[v4f32] }:$vk, v4f32:{ *:[v4f32] }:$va) - Complexity = 3 ++ // Dst: (VFMADD_S:{ *:[v4f32] } ?:{ *:[v4f32] }:$vj, ?:{ *:[v4f32] }:$vk, ?:{ *:[v4f32] }:$va) ++/*579486*/ /*SwitchType*/ 11, MVT::v4f64,// ->579499 ++/*579488*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*579490*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFMADD_D), 0, ++ MVT::v4f64, 3/*#Ops*/, 0, 1, 2, ++ // Src: (fma:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$xj, v4f64:{ *:[v4f64] }:$xk, v4f64:{ *:[v4f64] }:$xa) - Complexity = 3 ++ // Dst: (XVFMADD_D:{ *:[v4f64] } ?:{ *:[v4f64] }:$xj, ?:{ *:[v4f64] }:$xk, ?:{ *:[v4f64] }:$xa) ++/*579499*/ /*SwitchType*/ 11, MVT::v8f32,// ->579512 ++/*579501*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*579503*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFMADD_S), 0, ++ MVT::v8f32, 3/*#Ops*/, 0, 1, 2, ++ // Src: (fma:{ *:[v8f32] } v8f32:{ *:[v8f32] }:$xj, v8f32:{ *:[v8f32] }:$xk, v8f32:{ *:[v8f32] }:$xa) - Complexity = 3 ++ // Dst: (XVFMADD_S:{ *:[v8f32] } ?:{ *:[v8f32] }:$xj, ?:{ *:[v8f32] }:$xk, ?:{ *:[v8f32] }:$xa) ++/*579512*/ 0, // EndSwitchType ++/*579513*/ 0, /*End of Scope*/ ++/*579514*/ /*SwitchOpcode*/ 19|128,2/*275*/, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->579793 ++/*579518*/ OPC_RecordChild0, // #0 = $vj ++/*579519*/ OPC_Scope, 101, /*->579622*/ // 4 children in Scope ++/*579521*/ OPC_CheckChild0Type, MVT::v4f32, ++/*579523*/ OPC_RecordChild1, // #1 = $n ++/*579524*/ OPC_Scope, 21, /*->579547*/ // 3 children in Scope ++/*579526*/ OPC_MoveChild1, ++/*579527*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*579530*/ OPC_CheckPredicate, 25, // Predicate_immZExt2Ptr ++/*579532*/ OPC_MoveParent, ++/*579533*/ OPC_CheckType, MVT::f32, ++/*579535*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*579537*/ OPC_EmitConvertToTarget, 1, ++/*579539*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::COPY_FW_PSEUDO), 0, ++ MVT::f32, 2/*#Ops*/, 0, 2, ++ // Src: (vector_extract:{ *:[f32] } LSX128W:{ *:[v4f32] }:$vj, (imm:{ *:[iPTR] })<>:$n) - Complexity = 7 ++ // Dst: (COPY_FW_PSEUDO:{ *:[f32] } LSX128W:{ *:[v4f32] }:$vj, (imm:{ *:[iPTR] }):$n) ++/*579547*/ /*Scope*/ 25, /*->579573*/ ++/*579548*/ OPC_CheckChild1Type, MVT::i32, ++/*579550*/ OPC_CheckType, MVT::f32, ++/*579552*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*579554*/ OPC_EmitNode1, TARGET_VAL(LoongArch::VREPLVE_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, // Results = #2 ++/*579562*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_lo, ++/*579565*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::f32, 2/*#Ops*/, 2, 3, ++ // Src: (vector_extract:{ *:[f32] } v4f32:{ *:[v4f32] }:$vj, i32:{ *:[i32] }:$idx) - Complexity = 3 ++ // Dst: (EXTRACT_SUBREG:{ *:[f32] } (VREPLVE_W:{ *:[v4i32] } v4f32:{ *:[v4f32] }:$vj, i32:{ *:[i32] }:$idx), sub_lo:{ *:[i32] }) ++/*579573*/ /*Scope*/ 47, /*->579621*/ ++/*579574*/ OPC_CheckChild1Type, MVT::i64, ++/*579576*/ OPC_CheckType, MVT::f32, ++/*579578*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*579580*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/*579583*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 1, 2, // Results = #3 ++/*579591*/ OPC_EmitInteger, MVT::i32, LoongArch::GPR32RegClassID, ++/*579594*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::i32, 2/*#Ops*/, 3, 4, // Results = #5 ++/*579602*/ OPC_EmitNode1, TARGET_VAL(LoongArch::VREPLVE_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 5, // Results = #6 ++/*579610*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_lo, ++/*579613*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::f32, 2/*#Ops*/, 6, 7, ++ // Src: (vector_extract:{ *:[f32] } v4f32:{ *:[v4f32] }:$vj, i64:{ *:[i64] }:$idx) - Complexity = 3 ++ // Dst: (EXTRACT_SUBREG:{ *:[f32] } (VREPLVE_W:{ *:[v4i32] } v4f32:{ *:[v4f32] }:$vj, (COPY_TO_REGCLASS:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } i64:{ *:[i64] }:$idx, sub_32:{ *:[i32] }), GPR32:{ *:[i32] })), sub_lo:{ *:[i32] }) ++/*579621*/ 0, /*End of Scope*/ ++/*579622*/ /*Scope*/ 101, /*->579724*/ ++/*579623*/ OPC_CheckChild0Type, MVT::v2f64, ++/*579625*/ OPC_RecordChild1, // #1 = $n ++/*579626*/ OPC_Scope, 21, /*->579649*/ // 3 children in Scope ++/*579628*/ OPC_MoveChild1, ++/*579629*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*579632*/ OPC_CheckPredicate, 26, // Predicate_immZExt1Ptr ++/*579634*/ OPC_MoveParent, ++/*579635*/ OPC_CheckType, MVT::f64, ++/*579637*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*579639*/ OPC_EmitConvertToTarget, 1, ++/*579641*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::COPY_FD_PSEUDO), 0, ++ MVT::f64, 2/*#Ops*/, 0, 2, ++ // Src: (vector_extract:{ *:[f64] } LSX128D:{ *:[v2f64] }:$vj, (imm:{ *:[iPTR] })<>:$n) - Complexity = 7 ++ // Dst: (COPY_FD_PSEUDO:{ *:[f64] } LSX128D:{ *:[v2f64] }:$vj, (imm:{ *:[iPTR] }):$n) ++/*579649*/ /*Scope*/ 25, /*->579675*/ ++/*579650*/ OPC_CheckChild1Type, MVT::i32, ++/*579652*/ OPC_CheckType, MVT::f64, ++/*579654*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*579656*/ OPC_EmitNode1, TARGET_VAL(LoongArch::VREPLVE_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, // Results = #2 ++/*579664*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_64, ++/*579667*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::f64, 2/*#Ops*/, 2, 3, ++ // Src: (vector_extract:{ *:[f64] } v2f64:{ *:[v2f64] }:$vj, i32:{ *:[i32] }:$idx) - Complexity = 3 ++ // Dst: (EXTRACT_SUBREG:{ *:[f64] } (VREPLVE_D:{ *:[v2i64] } v2f64:{ *:[v2f64] }:$vj, i32:{ *:[i32] }:$idx), sub_64:{ *:[i32] }) ++/*579675*/ /*Scope*/ 47, /*->579723*/ ++/*579676*/ OPC_CheckChild1Type, MVT::i64, ++/*579678*/ OPC_CheckType, MVT::f64, ++/*579680*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*579682*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_32, ++/*579685*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::i32, 2/*#Ops*/, 1, 2, // Results = #3 ++/*579693*/ OPC_EmitInteger, MVT::i32, LoongArch::GPR32RegClassID, ++/*579696*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0, ++ MVT::i32, 2/*#Ops*/, 3, 4, // Results = #5 ++/*579704*/ OPC_EmitNode1, TARGET_VAL(LoongArch::VREPLVE_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 5, // Results = #6 ++/*579712*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_64, ++/*579715*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::f64, 2/*#Ops*/, 6, 7, ++ // Src: (vector_extract:{ *:[f64] } v2f64:{ *:[v2f64] }:$vj, i64:{ *:[i64] }:$idx) - Complexity = 3 ++ // Dst: (EXTRACT_SUBREG:{ *:[f64] } (VREPLVE_D:{ *:[v2i64] } v2f64:{ *:[v2f64] }:$vj, (COPY_TO_REGCLASS:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } i64:{ *:[i64] }:$idx, sub_32:{ *:[i32] }), GPR32:{ *:[i32] })), sub_64:{ *:[i32] }) ++/*579723*/ 0, /*End of Scope*/ ++/*579724*/ /*Scope*/ 42, /*->579767*/ ++/*579725*/ OPC_CheckChild0Type, MVT::v8f32, ++/*579727*/ OPC_RecordChild1, // #1 = $n ++/*579728*/ OPC_Scope, 21, /*->579751*/ // 2 children in Scope ++/*579730*/ OPC_MoveChild1, ++/*579731*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*579734*/ OPC_CheckPredicate, 24, // Predicate_immZExt3Ptr ++/*579736*/ OPC_MoveParent, ++/*579737*/ OPC_CheckType, MVT::f32, ++/*579739*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*579741*/ OPC_EmitConvertToTarget, 1, ++/*579743*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XCOPY_FW_PSEUDO), 0, ++ MVT::f32, 2/*#Ops*/, 0, 2, ++ // Src: (vector_extract:{ *:[f32] } LASX256W:{ *:[v8f32] }:$xj, (imm:{ *:[iPTR] })<>:$n) - Complexity = 7 ++ // Dst: (XCOPY_FW_PSEUDO:{ *:[f32] } LASX256W:{ *:[v8f32] }:$xj, (imm:{ *:[iPTR] }):$n) ++/*579751*/ /*Scope*/ 14, /*->579766*/ ++/*579752*/ OPC_CheckChild1Type, MVT::i64, ++/*579754*/ OPC_CheckType, MVT::f32, ++/*579756*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*579758*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XCOPY_FW_GPR_PSEUDO), 0, ++ MVT::f32, 2/*#Ops*/, 0, 1, ++ // Src: (vector_extract:{ *:[f32] } LASX256WOpnd:{ *:[v8f32] }:$xj, GPR64Opnd:{ *:[i64] }:$n) - Complexity = 3 ++ // Dst: (XCOPY_FW_GPR_PSEUDO:{ *:[f32] } LASX256WOpnd:{ *:[v8f32] }:$xj, GPR64Opnd:{ *:[i64] }:$n) ++/*579766*/ 0, /*End of Scope*/ ++/*579767*/ /*Scope*/ 24, /*->579792*/ ++/*579768*/ OPC_CheckChild0Type, MVT::v4f64, ++/*579770*/ OPC_RecordChild1, // #1 = $n ++/*579771*/ OPC_MoveChild1, ++/*579772*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*579775*/ OPC_CheckPredicate, 25, // Predicate_immZExt2Ptr ++/*579777*/ OPC_MoveParent, ++/*579778*/ OPC_CheckType, MVT::f64, ++/*579780*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*579782*/ OPC_EmitConvertToTarget, 1, ++/*579784*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XCOPY_FD_PSEUDO), 0, ++ MVT::f64, 2/*#Ops*/, 0, 2, ++ // Src: (vector_extract:{ *:[f64] } LASX256D:{ *:[v4f64] }:$xj, (imm:{ *:[iPTR] })<>:$n) - Complexity = 7 ++ // Dst: (XCOPY_FD_PSEUDO:{ *:[f64] } LASX256D:{ *:[v4f64] }:$xj, (imm:{ *:[iPTR] }):$n) ++/*579792*/ 0, /*End of Scope*/ ++/*579793*/ /*SwitchOpcode*/ 104, TARGET_VAL(ISD::ConstantFP),// ->579900 ++/*579796*/ OPC_Scope, 14, /*->579812*/ // 3 children in Scope ++/*579798*/ OPC_CheckPredicate, 46, // Predicate_fpimm0 ++/*579800*/ OPC_CheckType, MVT::f32, ++/*579802*/ OPC_EmitRegister, MVT::i32, LoongArch::ZERO, ++/*579805*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MOVGR2FR_W), 0, ++ MVT::f32, 1/*#Ops*/, 0, ++ // Src: (fpimm:{ *:[f32] })<> - Complexity = 4 ++ // Dst: (MOVGR2FR_W:{ *:[f32] } ZERO:{ *:[i32] }) ++/*579812*/ /*Scope*/ 21, /*->579834*/ ++/*579813*/ OPC_CheckPredicate, 47, // Predicate_fpimm0neg ++/*579815*/ OPC_CheckType, MVT::f32, ++/*579817*/ OPC_EmitRegister, MVT::i32, LoongArch::ZERO, ++/*579820*/ OPC_EmitNode1, TARGET_VAL(LoongArch::MOVGR2FR_W), 0, ++ MVT::f32, 1/*#Ops*/, 0, // Results = #1 ++/*579827*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FNEG_S), 0, ++ MVT::f32, 1/*#Ops*/, 1, ++ // Src: (fpimm:{ *:[f32] })<> - Complexity = 4 ++ // Dst: (FNEG_S:{ *:[f32] } (MOVGR2FR_W:{ *:[f32] } ZERO:{ *:[i32] })) ++/*579834*/ /*Scope*/ 64, /*->579899*/ ++/*579835*/ OPC_CheckPredicate, 45, // Predicate_fpimm1 ++/*579837*/ OPC_SwitchType /*2 cases */, 28, MVT::f32,// ->579868 ++/*579840*/ OPC_EmitRegister, MVT::i32, LoongArch::ZERO, ++/*579843*/ OPC_EmitInteger, MVT::i32, 1, ++/*579846*/ OPC_EmitNode1, TARGET_VAL(LoongArch::ADDI_W), 0, ++ MVT::i32, 2/*#Ops*/, 0, 1, // Results = #2 ++/*579854*/ OPC_EmitNode1, TARGET_VAL(LoongArch::MOVGR2FR_W), 0, ++ MVT::f32, 1/*#Ops*/, 2, // Results = #3 ++/*579861*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FFINT_S_W), 0, ++ MVT::f32, 1/*#Ops*/, 3, ++ // Src: (fpimm:{ *:[f32] })<> - Complexity = 4 ++ // Dst: (FFINT_S_W:{ *:[f32] } (MOVGR2FR_W:{ *:[f32] } (ADDI_W:{ *:[i32] } ZERO:{ *:[i32] }, 1:{ *:[i32] }))) ++/*579868*/ /*SwitchType*/ 28, MVT::f64,// ->579898 ++/*579870*/ OPC_EmitRegister, MVT::i64, LoongArch::ZERO_64, ++/*579873*/ OPC_EmitInteger, MVT::i64, 1, ++/*579876*/ OPC_EmitNode1, TARGET_VAL(LoongArch::ADDI_D), 0, ++ MVT::i64, 2/*#Ops*/, 0, 1, // Results = #2 ++/*579884*/ OPC_EmitNode1, TARGET_VAL(LoongArch::MOVGR2FR_D), 0, ++ MVT::f64, 1/*#Ops*/, 2, // Results = #3 ++/*579891*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FFINT_D_L), 0, ++ MVT::f64, 1/*#Ops*/, 3, ++ // Src: (fpimm:{ *:[f64] })<> - Complexity = 4 ++ // Dst: (FFINT_D_L:{ *:[f64] } (MOVGR2FR_D:{ *:[f64] } (ADDI_D:{ *:[i64] } ZERO_64:{ *:[i64] }, 1:{ *:[i64] }))) ++/*579898*/ 0, // EndSwitchType ++/*579899*/ 0, /*End of Scope*/ ++/*579900*/ /*SwitchOpcode*/ 21, TARGET_VAL(ISD::FABS),// ->579924 ++/*579903*/ OPC_RecordChild0, // #0 = $fj ++/*579904*/ OPC_SwitchType /*2 cases */, 7, MVT::f32,// ->579914 ++/*579907*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FABS_S), 0, ++ MVT::f32, 1/*#Ops*/, 0, ++ // Src: (fabs:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fj) - Complexity = 3 ++ // Dst: (FABS_S:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fj) ++/*579914*/ /*SwitchType*/ 7, MVT::f64,// ->579923 ++/*579916*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FABS_D), 0, ++ MVT::f64, 1/*#Ops*/, 0, ++ // Src: (fabs:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fj) - Complexity = 3 ++ // Dst: (FABS_D:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fj) ++/*579923*/ 0, // EndSwitchType ++/*579924*/ /*SwitchOpcode*/ 81, TARGET_VAL(ISD::FNEG),// ->580008 ++/*579927*/ OPC_RecordChild0, // #0 = $fj ++/*579928*/ OPC_SwitchType /*6 cases */, 7, MVT::f32,// ->579938 ++/*579931*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FNEG_S), 0, ++ MVT::f32, 1/*#Ops*/, 0, ++ // Src: (fneg:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fj) - Complexity = 3 ++ // Dst: (FNEG_S:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fj) ++/*579938*/ /*SwitchType*/ 7, MVT::f64,// ->579947 ++/*579940*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FNEG_D), 0, ++ MVT::f64, 1/*#Ops*/, 0, ++ // Src: (fneg:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fj) - Complexity = 3 ++ // Dst: (FNEG_D:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fj) ++/*579947*/ /*SwitchType*/ 13, MVT::v4f32,// ->579962 ++/*579949*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*579951*/ OPC_EmitInteger, MVT::i32, 31, ++/*579954*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITREVI_W), 0, ++ MVT::v4f32, 2/*#Ops*/, 0, 1, ++ // Src: (fneg:{ *:[v4f32] } LSX128W:{ *:[v4f32] }:$vj) - Complexity = 3 ++ // Dst: (VBITREVI_W:{ *:[v4f32] } LSX128W:{ *:[v4f32] }:$vj, 31:{ *:[i32] }) ++/*579962*/ /*SwitchType*/ 13, MVT::v2f64,// ->579977 ++/*579964*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*579966*/ OPC_EmitInteger, MVT::i32, 63, ++/*579969*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITREVI_D), 0, ++ MVT::v2f64, 2/*#Ops*/, 0, 1, ++ // Src: (fneg:{ *:[v2f64] } LSX128D:{ *:[v2f64] }:$vj) - Complexity = 3 ++ // Dst: (VBITREVI_D:{ *:[v2f64] } LSX128D:{ *:[v2f64] }:$vj, 63:{ *:[i32] }) ++/*579977*/ /*SwitchType*/ 13, MVT::v8f32,// ->579992 ++/*579979*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*579981*/ OPC_EmitInteger, MVT::i32, 31, ++/*579984*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITREVI_W), 0, ++ MVT::v8f32, 2/*#Ops*/, 0, 1, ++ // Src: (fneg:{ *:[v8f32] } LASX256W:{ *:[v8f32] }:$xj) - Complexity = 3 ++ // Dst: (XVBITREVI_W:{ *:[v8f32] } LASX256W:{ *:[v8f32] }:$xj, 31:{ *:[i32] }) ++/*579992*/ /*SwitchType*/ 13, MVT::v4f64,// ->580007 ++/*579994*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*579996*/ OPC_EmitInteger, MVT::i32, 63, ++/*579999*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITREVI_D), 0, ++ MVT::v4f64, 2/*#Ops*/, 0, 1, ++ // Src: (fneg:{ *:[v4f64] } LASX256D:{ *:[v4f64] }:$xj) - Complexity = 3 ++ // Dst: (XVBITREVI_D:{ *:[v4f64] } LASX256D:{ *:[v4f64] }:$xj, 63:{ *:[i32] }) ++/*580007*/ 0, // EndSwitchType ++/*580008*/ /*SwitchOpcode*/ 57, TARGET_VAL(ISD::FSQRT),// ->580068 ++/*580011*/ OPC_RecordChild0, // #0 = $fj ++/*580012*/ OPC_SwitchType /*6 cases */, 7, MVT::f32,// ->580022 ++/*580015*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FSQRT_S), 0, ++ MVT::f32, 1/*#Ops*/, 0, ++ // Src: (fsqrt:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fj) - Complexity = 3 ++ // Dst: (FSQRT_S:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fj) ++/*580022*/ /*SwitchType*/ 7, MVT::f64,// ->580031 ++/*580024*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FSQRT_D), 0, ++ MVT::f64, 1/*#Ops*/, 0, ++ // Src: (fsqrt:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fj) - Complexity = 3 ++ // Dst: (FSQRT_D:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fj) ++/*580031*/ /*SwitchType*/ 7, MVT::v4f32,// ->580040 ++/*580033*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFSQRT_S), 0, ++ MVT::v4f32, 1/*#Ops*/, 0, ++ // Src: (fsqrt:{ *:[v4f32] } LSX128WOpnd:{ *:[v4f32] }:$vj) - Complexity = 3 ++ // Dst: (VFSQRT_S:{ *:[v4f32] } LSX128WOpnd:{ *:[v4f32] }:$vj) ++/*580040*/ /*SwitchType*/ 7, MVT::v2f64,// ->580049 ++/*580042*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFSQRT_D), 0, ++ MVT::v2f64, 1/*#Ops*/, 0, ++ // Src: (fsqrt:{ *:[v2f64] } LSX128DOpnd:{ *:[v2f64] }:$vj) - Complexity = 3 ++ // Dst: (VFSQRT_D:{ *:[v2f64] } LSX128DOpnd:{ *:[v2f64] }:$vj) ++/*580049*/ /*SwitchType*/ 7, MVT::v8f32,// ->580058 ++/*580051*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFSQRT_S), 0, ++ MVT::v8f32, 1/*#Ops*/, 0, ++ // Src: (fsqrt:{ *:[v8f32] } LASX256WOpnd:{ *:[v8f32] }:$xj) - Complexity = 3 ++ // Dst: (XVFSQRT_S:{ *:[v8f32] } LASX256WOpnd:{ *:[v8f32] }:$xj) ++/*580058*/ /*SwitchType*/ 7, MVT::v4f64,// ->580067 ++/*580060*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFSQRT_D), 0, ++ MVT::v4f64, 1/*#Ops*/, 0, ++ // Src: (fsqrt:{ *:[v4f64] } LASX256DOpnd:{ *:[v4f64] }:$xj) - Complexity = 3 ++ // Dst: (XVFSQRT_D:{ *:[v4f64] } LASX256DOpnd:{ *:[v4f64] }:$xj) ++/*580067*/ 0, // EndSwitchType ++/*580068*/ /*SwitchOpcode*/ 57, TARGET_VAL(ISD::FRINT),// ->580128 ++/*580071*/ OPC_RecordChild0, // #0 = $fj ++/*580072*/ OPC_SwitchType /*6 cases */, 7, MVT::f32,// ->580082 ++/*580075*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FRINT_S), 0, ++ MVT::f32, 1/*#Ops*/, 0, ++ // Src: (frint:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fj) - Complexity = 3 ++ // Dst: (FRINT_S:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fj) ++/*580082*/ /*SwitchType*/ 7, MVT::f64,// ->580091 ++/*580084*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FRINT_D), 0, ++ MVT::f64, 1/*#Ops*/, 0, ++ // Src: (frint:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fj) - Complexity = 3 ++ // Dst: (FRINT_D:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fj) ++/*580091*/ /*SwitchType*/ 7, MVT::v4f32,// ->580100 ++/*580093*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFRINT_S), 0, ++ MVT::v4f32, 1/*#Ops*/, 0, ++ // Src: (frint:{ *:[v4f32] } LSX128WOpnd:{ *:[v4f32] }:$vj) - Complexity = 3 ++ // Dst: (VFRINT_S:{ *:[v4f32] } LSX128WOpnd:{ *:[v4f32] }:$vj) ++/*580100*/ /*SwitchType*/ 7, MVT::v2f64,// ->580109 ++/*580102*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFRINT_D), 0, ++ MVT::v2f64, 1/*#Ops*/, 0, ++ // Src: (frint:{ *:[v2f64] } LSX128DOpnd:{ *:[v2f64] }:$vj) - Complexity = 3 ++ // Dst: (VFRINT_D:{ *:[v2f64] } LSX128DOpnd:{ *:[v2f64] }:$vj) ++/*580109*/ /*SwitchType*/ 7, MVT::v8f32,// ->580118 ++/*580111*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFRINT_S), 0, ++ MVT::v8f32, 1/*#Ops*/, 0, ++ // Src: (frint:{ *:[v8f32] } LASX256WOpnd:{ *:[v8f32] }:$xj) - Complexity = 3 ++ // Dst: (XVFRINT_S:{ *:[v8f32] } LASX256WOpnd:{ *:[v8f32] }:$xj) ++/*580118*/ /*SwitchType*/ 7, MVT::v4f64,// ->580127 ++/*580120*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFRINT_D), 0, ++ MVT::v4f64, 1/*#Ops*/, 0, ++ // Src: (frint:{ *:[v4f64] } LASX256DOpnd:{ *:[v4f64] }:$xj) - Complexity = 3 ++ // Dst: (XVFRINT_D:{ *:[v4f64] } LASX256DOpnd:{ *:[v4f64] }:$xj) ++/*580127*/ 0, // EndSwitchType ++/*580128*/ /*SwitchOpcode*/ 64, TARGET_VAL(ISD::FADD),// ->580195 ++/*580131*/ OPC_RecordChild0, // #0 = $fj ++/*580132*/ OPC_RecordChild1, // #1 = $fk ++/*580133*/ OPC_SwitchType /*6 cases */, 8, MVT::f32,// ->580144 ++/*580136*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FADD_S), 0, ++ MVT::f32, 2/*#Ops*/, 0, 1, ++ // Src: (fadd:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fj, FGR32Opnd:{ *:[f32] }:$fk) - Complexity = 3 ++ // Dst: (FADD_S:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fj, FGR32Opnd:{ *:[f32] }:$fk) ++/*580144*/ /*SwitchType*/ 8, MVT::f64,// ->580154 ++/*580146*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FADD_D), 0, ++ MVT::f64, 2/*#Ops*/, 0, 1, ++ // Src: (fadd:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fj, FGR64Opnd:{ *:[f64] }:$fk) - Complexity = 3 ++ // Dst: (FADD_D:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fj, FGR64Opnd:{ *:[f64] }:$fk) ++/*580154*/ /*SwitchType*/ 8, MVT::v4f32,// ->580164 ++/*580156*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFADD_S), 0, ++ MVT::v4f32, 2/*#Ops*/, 0, 1, ++ // Src: (fadd:{ *:[v4f32] } LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk) - Complexity = 3 ++ // Dst: (VFADD_S:{ *:[v4f32] } LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk) ++/*580164*/ /*SwitchType*/ 8, MVT::v2f64,// ->580174 ++/*580166*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFADD_D), 0, ++ MVT::v2f64, 2/*#Ops*/, 0, 1, ++ // Src: (fadd:{ *:[v2f64] } LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk) - Complexity = 3 ++ // Dst: (VFADD_D:{ *:[v2f64] } LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk) ++/*580174*/ /*SwitchType*/ 8, MVT::v8f32,// ->580184 ++/*580176*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFADD_S), 0, ++ MVT::v8f32, 2/*#Ops*/, 0, 1, ++ // Src: (fadd:{ *:[v8f32] } LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk) - Complexity = 3 ++ // Dst: (XVFADD_S:{ *:[v8f32] } LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk) ++/*580184*/ /*SwitchType*/ 8, MVT::v4f64,// ->580194 ++/*580186*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFADD_D), 0, ++ MVT::v4f64, 2/*#Ops*/, 0, 1, ++ // Src: (fadd:{ *:[v4f64] } LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) - Complexity = 3 ++ // Dst: (XVFADD_D:{ *:[v4f64] } LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) ++/*580194*/ 0, // EndSwitchType ++/*580195*/ /*SwitchOpcode*/ 64, TARGET_VAL(ISD::FSUB),// ->580262 ++/*580198*/ OPC_RecordChild0, // #0 = $fj ++/*580199*/ OPC_RecordChild1, // #1 = $fk ++/*580200*/ OPC_SwitchType /*6 cases */, 8, MVT::f32,// ->580211 ++/*580203*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FSUB_S), 0, ++ MVT::f32, 2/*#Ops*/, 0, 1, ++ // Src: (fsub:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fj, FGR32Opnd:{ *:[f32] }:$fk) - Complexity = 3 ++ // Dst: (FSUB_S:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fj, FGR32Opnd:{ *:[f32] }:$fk) ++/*580211*/ /*SwitchType*/ 8, MVT::f64,// ->580221 ++/*580213*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FSUB_D), 0, ++ MVT::f64, 2/*#Ops*/, 0, 1, ++ // Src: (fsub:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fj, FGR64Opnd:{ *:[f64] }:$fk) - Complexity = 3 ++ // Dst: (FSUB_D:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fj, FGR64Opnd:{ *:[f64] }:$fk) ++/*580221*/ /*SwitchType*/ 8, MVT::v4f32,// ->580231 ++/*580223*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFSUB_S), 0, ++ MVT::v4f32, 2/*#Ops*/, 0, 1, ++ // Src: (fsub:{ *:[v4f32] } LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk) - Complexity = 3 ++ // Dst: (VFSUB_S:{ *:[v4f32] } LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk) ++/*580231*/ /*SwitchType*/ 8, MVT::v2f64,// ->580241 ++/*580233*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFSUB_D), 0, ++ MVT::v2f64, 2/*#Ops*/, 0, 1, ++ // Src: (fsub:{ *:[v2f64] } LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk) - Complexity = 3 ++ // Dst: (VFSUB_D:{ *:[v2f64] } LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk) ++/*580241*/ /*SwitchType*/ 8, MVT::v8f32,// ->580251 ++/*580243*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFSUB_S), 0, ++ MVT::v8f32, 2/*#Ops*/, 0, 1, ++ // Src: (fsub:{ *:[v8f32] } LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk) - Complexity = 3 ++ // Dst: (XVFSUB_S:{ *:[v8f32] } LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk) ++/*580251*/ /*SwitchType*/ 8, MVT::v4f64,// ->580261 ++/*580253*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFSUB_D), 0, ++ MVT::v4f64, 2/*#Ops*/, 0, 1, ++ // Src: (fsub:{ *:[v4f64] } LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) - Complexity = 3 ++ // Dst: (XVFSUB_D:{ *:[v4f64] } LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) ++/*580261*/ 0, // EndSwitchType ++/*580262*/ /*SwitchOpcode*/ 64, TARGET_VAL(ISD::FMUL),// ->580329 ++/*580265*/ OPC_RecordChild0, // #0 = $fj ++/*580266*/ OPC_RecordChild1, // #1 = $fk ++/*580267*/ OPC_SwitchType /*6 cases */, 8, MVT::f32,// ->580278 ++/*580270*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FMUL_S), 0, ++ MVT::f32, 2/*#Ops*/, 0, 1, ++ // Src: (fmul:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fj, FGR32Opnd:{ *:[f32] }:$fk) - Complexity = 3 ++ // Dst: (FMUL_S:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fj, FGR32Opnd:{ *:[f32] }:$fk) ++/*580278*/ /*SwitchType*/ 8, MVT::f64,// ->580288 ++/*580280*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FMUL_D), 0, ++ MVT::f64, 2/*#Ops*/, 0, 1, ++ // Src: (fmul:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fj, FGR64Opnd:{ *:[f64] }:$fk) - Complexity = 3 ++ // Dst: (FMUL_D:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fj, FGR64Opnd:{ *:[f64] }:$fk) ++/*580288*/ /*SwitchType*/ 8, MVT::v4f32,// ->580298 ++/*580290*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFMUL_S), 0, ++ MVT::v4f32, 2/*#Ops*/, 0, 1, ++ // Src: (fmul:{ *:[v4f32] } LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk) - Complexity = 3 ++ // Dst: (VFMUL_S:{ *:[v4f32] } LSX128WOpnd:{ *:[v4f32] }:$vj, LSX128WOpnd:{ *:[v4f32] }:$vk) ++/*580298*/ /*SwitchType*/ 8, MVT::v2f64,// ->580308 ++/*580300*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFMUL_D), 0, ++ MVT::v2f64, 2/*#Ops*/, 0, 1, ++ // Src: (fmul:{ *:[v2f64] } LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk) - Complexity = 3 ++ // Dst: (VFMUL_D:{ *:[v2f64] } LSX128DOpnd:{ *:[v2f64] }:$vj, LSX128DOpnd:{ *:[v2f64] }:$vk) ++/*580308*/ /*SwitchType*/ 8, MVT::v8f32,// ->580318 ++/*580310*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFMUL_S), 0, ++ MVT::v8f32, 2/*#Ops*/, 0, 1, ++ // Src: (fmul:{ *:[v8f32] } LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk) - Complexity = 3 ++ // Dst: (XVFMUL_S:{ *:[v8f32] } LASX256WOpnd:{ *:[v8f32] }:$xj, LASX256WOpnd:{ *:[v8f32] }:$xk) ++/*580318*/ /*SwitchType*/ 8, MVT::v4f64,// ->580328 ++/*580320*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFMUL_D), 0, ++ MVT::v4f64, 2/*#Ops*/, 0, 1, ++ // Src: (fmul:{ *:[v4f64] } LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) - Complexity = 3 ++ // Dst: (XVFMUL_D:{ *:[v4f64] } LASX256DOpnd:{ *:[v4f64] }:$xj, LASX256DOpnd:{ *:[v4f64] }:$xk) ++/*580328*/ 0, // EndSwitchType ++/*580329*/ /*SwitchOpcode*/ 24, TARGET_VAL(ISD::FMAXNUM_IEEE),// ->580356 ++/*580332*/ OPC_RecordChild0, // #0 = $fj ++/*580333*/ OPC_RecordChild1, // #1 = $fk ++/*580334*/ OPC_SwitchType /*2 cases */, 8, MVT::f32,// ->580345 ++/*580337*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FMAX_S), 0, ++ MVT::f32, 2/*#Ops*/, 0, 1, ++ // Src: (fmaxnum_ieee:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fj, FGR32Opnd:{ *:[f32] }:$fk) - Complexity = 3 ++ // Dst: (FMAX_S:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fj, FGR32Opnd:{ *:[f32] }:$fk) ++/*580345*/ /*SwitchType*/ 8, MVT::f64,// ->580355 ++/*580347*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FMAX_D), 0, ++ MVT::f64, 2/*#Ops*/, 0, 1, ++ // Src: (fmaxnum_ieee:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fj, FGR64Opnd:{ *:[f64] }:$fk) - Complexity = 3 ++ // Dst: (FMAX_D:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fj, FGR64Opnd:{ *:[f64] }:$fk) ++/*580355*/ 0, // EndSwitchType ++/*580356*/ /*SwitchOpcode*/ 24, TARGET_VAL(ISD::FMINNUM_IEEE),// ->580383 ++/*580359*/ OPC_RecordChild0, // #0 = $fj ++/*580360*/ OPC_RecordChild1, // #1 = $fk ++/*580361*/ OPC_SwitchType /*2 cases */, 8, MVT::f32,// ->580372 ++/*580364*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FMIN_S), 0, ++ MVT::f32, 2/*#Ops*/, 0, 1, ++ // Src: (fminnum_ieee:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fj, FGR32Opnd:{ *:[f32] }:$fk) - Complexity = 3 ++ // Dst: (FMIN_S:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fj, FGR32Opnd:{ *:[f32] }:$fk) ++/*580372*/ /*SwitchType*/ 8, MVT::f64,// ->580382 ++/*580374*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FMIN_D), 0, ++ MVT::f64, 2/*#Ops*/, 0, 1, ++ // Src: (fminnum_ieee:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fj, FGR64Opnd:{ *:[f64] }:$fk) - Complexity = 3 ++ // Dst: (FMIN_D:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fj, FGR64Opnd:{ *:[f64] }:$fk) ++/*580382*/ 0, // EndSwitchType ++/*580383*/ /*SwitchOpcode*/ 68, TARGET_VAL(ISD::FCOPYSIGN),// ->580454 ++/*580386*/ OPC_RecordChild0, // #0 = $fj ++/*580387*/ OPC_RecordChild1, // #1 = $fk ++/*580388*/ OPC_Scope, 31, /*->580421*/ // 2 children in Scope ++/*580390*/ OPC_CheckChild1Type, MVT::f32, ++/*580392*/ OPC_SwitchType /*2 cases */, 8, MVT::f32,// ->580403 ++/*580395*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCOPYSIGN_S), 0, ++ MVT::f32, 2/*#Ops*/, 0, 1, ++ // Src: (fcopysign:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fj, FGR32Opnd:{ *:[f32] }:$fk) - Complexity = 3 ++ // Dst: (FCOPYSIGN_S:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fj, FGR32Opnd:{ *:[f32] }:$fk) ++/*580403*/ /*SwitchType*/ 15, MVT::f64,// ->580420 ++/*580405*/ OPC_EmitNode1, TARGET_VAL(LoongArch::FCVT_D_S), 0, ++ MVT::f64, 1/*#Ops*/, 1, // Results = #2 ++/*580412*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCOPYSIGN_D), 0, ++ MVT::f64, 2/*#Ops*/, 0, 2, ++ // Src: (fcopysign:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$lhs, FGR32Opnd:{ *:[f32] }:$rhs) - Complexity = 3 ++ // Dst: (FCOPYSIGN_D:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$lhs, (FCVT_D_S:{ *:[f64] } FGR32Opnd:{ *:[f32] }:$rhs)) ++/*580420*/ 0, // EndSwitchType ++/*580421*/ /*Scope*/ 31, /*->580453*/ ++/*580422*/ OPC_CheckChild1Type, MVT::f64, ++/*580424*/ OPC_SwitchType /*2 cases */, 8, MVT::f64,// ->580435 ++/*580427*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCOPYSIGN_D), 0, ++ MVT::f64, 2/*#Ops*/, 0, 1, ++ // Src: (fcopysign:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fj, FGR64Opnd:{ *:[f64] }:$fk) - Complexity = 3 ++ // Dst: (FCOPYSIGN_D:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fj, FGR64Opnd:{ *:[f64] }:$fk) ++/*580435*/ /*SwitchType*/ 15, MVT::f32,// ->580452 ++/*580437*/ OPC_EmitNode1, TARGET_VAL(LoongArch::FCVT_S_D), 0, ++ MVT::f32, 1/*#Ops*/, 1, // Results = #2 ++/*580444*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCOPYSIGN_S), 0, ++ MVT::f32, 2/*#Ops*/, 0, 2, ++ // Src: (fcopysign:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$lhs, FGR64Opnd:{ *:[f64] }:$rhs) - Complexity = 3 ++ // Dst: (FCOPYSIGN_S:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$lhs, (FCVT_S_D:{ *:[f32] } FGR64Opnd:{ *:[f64] }:$rhs)) ++/*580452*/ 0, // EndSwitchType ++/*580453*/ 0, /*End of Scope*/ ++/*580454*/ /*SwitchOpcode*/ 30, TARGET_VAL(LoongArchISD::FSEL),// ->580487 ++/*580457*/ OPC_CaptureGlueInput, ++/*580458*/ OPC_RecordChild0, // #0 = $fj ++/*580459*/ OPC_RecordChild1, // #1 = $ca ++/*580460*/ OPC_RecordChild2, // #2 = $fk ++/*580461*/ OPC_SwitchType /*2 cases */, 10, MVT::f32,// ->580474 ++/*580464*/ OPC_MorphNodeTo2, TARGET_VAL(LoongArch::FSEL_T_S), 0|OPFL_GlueInput, ++ MVT::f32, MVT::i32, 3/*#Ops*/, 1, 0, 2, ++ // Src: (LoongArchFSEL:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fj, FCFROpnd:{ *:[i32] }:$ca, FGR32Opnd:{ *:[f32] }:$fk) - Complexity = 3 ++ // Dst: (FSEL_T_S:{ *:[f32] }:{ *:[i32] } FCFROpnd:{ *:[i32] }:$ca, FGR32Opnd:{ *:[f32] }:$fj, FGR32Opnd:{ *:[f32] }:$fk) ++/*580474*/ /*SwitchType*/ 10, MVT::f64,// ->580486 ++/*580476*/ OPC_MorphNodeTo2, TARGET_VAL(LoongArch::FSEL_T_D), 0|OPFL_GlueInput, ++ MVT::f64, MVT::i32, 3/*#Ops*/, 1, 0, 2, ++ // Src: (LoongArchFSEL:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fj, FCFROpnd:{ *:[i32] }:$ca, FGR64Opnd:{ *:[f64] }:$fk) - Complexity = 3 ++ // Dst: (FSEL_T_D:{ *:[f64] }:{ *:[i32] } FCFROpnd:{ *:[i32] }:$ca, FGR64Opnd:{ *:[f64] }:$fj, FGR64Opnd:{ *:[f64] }:$fk) ++/*580486*/ 0, // EndSwitchType ++/*580487*/ /*SwitchOpcode*/ 10, TARGET_VAL(ISD::FP_ROUND),// ->580500 ++/*580490*/ OPC_RecordChild0, // #0 = $src ++/*580491*/ OPC_CheckType, MVT::f32, ++/*580493*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCVT_S_D), 0, ++ MVT::f32, 1/*#Ops*/, 0, ++ // Src: (fpround:{ *:[f32] } FGR64Opnd:{ *:[f64] }:$src) - Complexity = 3 ++ // Dst: (FCVT_S_D:{ *:[f32] } FGR64Opnd:{ *:[f64] }:$src) ++/*580500*/ /*SwitchOpcode*/ 10, TARGET_VAL(ISD::FP_EXTEND),// ->580513 ++/*580503*/ OPC_RecordChild0, // #0 = $src ++/*580504*/ OPC_CheckType, MVT::f64, ++/*580506*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCVT_D_S), 0, ++ MVT::f64, 1/*#Ops*/, 0, ++ // Src: (fpextend:{ *:[f64] } FGR32Opnd:{ *:[f32] }:$src) - Complexity = 3 ++ // Dst: (FCVT_D_S:{ *:[f64] } FGR32Opnd:{ *:[f32] }:$src) ++/*580513*/ /*SwitchOpcode*/ 106, TARGET_VAL(ISD::SINT_TO_FP),// ->580622 ++/*580516*/ OPC_RecordChild0, // #0 = $src ++/*580517*/ OPC_Scope, 22, /*->580541*/ // 6 children in Scope ++/*580519*/ OPC_CheckChild0Type, MVT::i32, ++/*580521*/ OPC_SwitchType /*2 cases */, 7, MVT::f32,// ->580531 ++/*580524*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::PseudoFFINT_S_W), 0, ++ MVT::f32, 1/*#Ops*/, 0, ++ // Src: (sint_to_fp:{ *:[f32] } GPR32Opnd:{ *:[i32] }:$src) - Complexity = 3 ++ // Dst: (PseudoFFINT_S_W:{ *:[f32] } GPR32Opnd:{ *:[i32] }:$src) ++/*580531*/ /*SwitchType*/ 7, MVT::f64,// ->580540 ++/*580533*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::PseudoFFINT_D_W), 0, ++ MVT::f64, 1/*#Ops*/, 0, ++ // Src: (sint_to_fp:{ *:[f64] } GPR32Opnd:{ *:[i32] }:$src) - Complexity = 3 ++ // Dst: (PseudoFFINT_D_W:{ *:[f64] } GPR32Opnd:{ *:[i32] }:$src) ++/*580540*/ 0, // EndSwitchType ++/*580541*/ /*Scope*/ 33, /*->580575*/ ++/*580542*/ OPC_CheckChild0Type, MVT::i64, ++/*580544*/ OPC_SwitchType /*2 cases */, 7, MVT::f64,// ->580554 ++/*580547*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::PseudoFFINT_D_L), 0, ++ MVT::f64, 1/*#Ops*/, 0, ++ // Src: (sint_to_fp:{ *:[f64] } GPR64Opnd:{ *:[i64] }:$src) - Complexity = 3 ++ // Dst: (PseudoFFINT_D_L:{ *:[f64] } GPR64Opnd:{ *:[i64] }:$src) ++/*580554*/ /*SwitchType*/ 18, MVT::f32,// ->580574 ++/*580556*/ OPC_EmitNode1, TARGET_VAL(LoongArch::PseudoFFINT_S_L), 0, ++ MVT::f64, 1/*#Ops*/, 0, // Results = #1 ++/*580563*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_lo, ++/*580566*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::f32, 2/*#Ops*/, 1, 2, ++ // Src: (sint_to_fp:{ *:[f32] } GPR64Opnd:{ *:[i64] }:$src) - Complexity = 3 ++ // Dst: (EXTRACT_SUBREG:{ *:[f32] } (PseudoFFINT_S_L:{ *:[f64] } GPR64Opnd:{ *:[i64] }:$src), sub_lo:{ *:[i32] }) ++/*580574*/ 0, // EndSwitchType ++/*580575*/ /*Scope*/ 11, /*->580587*/ ++/*580576*/ OPC_CheckChild0Type, MVT::v4i32, ++/*580578*/ OPC_CheckType, MVT::v4f32, ++/*580580*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFFINT_S_W), 0, ++ MVT::v4f32, 1/*#Ops*/, 0, ++ // Src: (sint_to_fp:{ *:[v4f32] } LSX128WOpnd:{ *:[v4i32] }:$vj) - Complexity = 3 ++ // Dst: (VFFINT_S_W:{ *:[v4f32] } LSX128WOpnd:{ *:[v4i32] }:$vj) ++/*580587*/ /*Scope*/ 9, /*->580597*/ ++/*580588*/ OPC_CheckType, MVT::v2f64, ++/*580590*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFFINT_D_L), 0, ++ MVT::v2f64, 1/*#Ops*/, 0, ++ // Src: (sint_to_fp:{ *:[v2f64] } LSX128DOpnd:{ *:[v2i64] }:$vj) - Complexity = 3 ++ // Dst: (VFFINT_D_L:{ *:[v2f64] } LSX128DOpnd:{ *:[v2i64] }:$vj) ++/*580597*/ /*Scope*/ 11, /*->580609*/ ++/*580598*/ OPC_CheckType, MVT::v8f32, ++/*580600*/ OPC_CheckChild0Type, MVT::v8i32, ++/*580602*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFFINT_S_W), 0, ++ MVT::v8f32, 1/*#Ops*/, 0, ++ // Src: (sint_to_fp:{ *:[v8f32] } LASX256WOpnd:{ *:[v8i32] }:$xj) - Complexity = 3 ++ // Dst: (XVFFINT_S_W:{ *:[v8f32] } LASX256WOpnd:{ *:[v8i32] }:$xj) ++/*580609*/ /*Scope*/ 11, /*->580621*/ ++/*580610*/ OPC_CheckType, MVT::v4f64, ++/*580612*/ OPC_CheckChild0Type, MVT::v4i64, ++/*580614*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFFINT_D_L), 0, ++ MVT::v4f64, 1/*#Ops*/, 0, ++ // Src: (sint_to_fp:{ *:[v4f64] } LASX256DOpnd:{ *:[v4i64] }:$xj) - Complexity = 3 ++ // Dst: (XVFFINT_D_L:{ *:[v4f64] } LASX256DOpnd:{ *:[v4i64] }:$xj) ++/*580621*/ 0, /*End of Scope*/ ++/*580622*/ /*SwitchOpcode*/ 67, TARGET_VAL(LoongArchISD::TruncIntFP),// ->580692 ++/*580625*/ OPC_RecordChild0, // #0 = $src ++/*580626*/ OPC_Scope, 40, /*->580668*/ // 2 children in Scope ++/*580628*/ OPC_CheckChild0Type, MVT::f32, ++/*580630*/ OPC_SwitchType /*2 cases */, 7, MVT::f32,// ->580640 ++/*580633*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FTINTRZ_W_S), 0, ++ MVT::f32, 1/*#Ops*/, 0, ++ // Src: (LoongArchTruncIntFP:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$src) - Complexity = 3 ++ // Dst: (FTINTRZ_W_S:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$src) ++/*580640*/ /*SwitchType*/ 25, MVT::f64,// ->580667 ++/*580642*/ OPC_Scope, 7, /*->580651*/ // 2 children in Scope ++/*580644*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FTINTRZ_L_S), 0, ++ MVT::f64, 1/*#Ops*/, 0, ++ // Src: (LoongArchTruncIntFP:{ *:[f64] } FGR32Opnd:{ *:[f32] }:$src) - Complexity = 3 ++ // Dst: (FTINTRZ_L_S:{ *:[f64] } FGR32Opnd:{ *:[f32] }:$src) ++/*580651*/ /*Scope*/ 14, /*->580666*/ ++/*580652*/ OPC_EmitNode1, TARGET_VAL(LoongArch::FTINTRZ_W_S), 0, ++ MVT::f32, 1/*#Ops*/, 0, // Results = #1 ++/*580659*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCVT_D_S), 0, ++ MVT::f64, 1/*#Ops*/, 1, ++ // Src: (LoongArchTruncIntFP:{ *:[f64] } FGR32Opnd:{ *:[f32] }:$src) - Complexity = 3 ++ // Dst: (FCVT_D_S:{ *:[f64] } (FTINTRZ_W_S:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$src)) ++/*580666*/ 0, /*End of Scope*/ ++/*580667*/ 0, // EndSwitchType ++/*580668*/ /*Scope*/ 22, /*->580691*/ ++/*580669*/ OPC_CheckChild0Type, MVT::f64, ++/*580671*/ OPC_SwitchType /*2 cases */, 7, MVT::f64,// ->580681 ++/*580674*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FTINTRZ_L_D), 0, ++ MVT::f64, 1/*#Ops*/, 0, ++ // Src: (LoongArchTruncIntFP:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$src) - Complexity = 3 ++ // Dst: (FTINTRZ_L_D:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$src) ++/*580681*/ /*SwitchType*/ 7, MVT::f32,// ->580690 ++/*580683*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::TRUNC_W_D), 0, ++ MVT::f32, 1/*#Ops*/, 0, ++ // Src: (LoongArchTruncIntFP:{ *:[f32] } FGR64Opnd:{ *:[f64] }:$src) - Complexity = 3 ++ // Dst: (TRUNC_W_D:{ *:[f32] } FGR64Opnd:{ *:[f64] }:$src) ++/*580690*/ 0, // EndSwitchType ++/*580691*/ 0, /*End of Scope*/ ++/*580692*/ /*SwitchOpcode*/ 23, TARGET_VAL(ISD::FCANONICALIZE),// ->580718 ++/*580695*/ OPC_RecordChild0, // #0 = $src ++/*580696*/ OPC_SwitchType /*2 cases */, 8, MVT::f32,// ->580707 ++/*580699*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FMAX_S), 0, ++ MVT::f32, 2/*#Ops*/, 0, 0, ++ // Src: (fcanonicalize:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$src) - Complexity = 3 ++ // Dst: (FMAX_S:{ *:[f32] } ?:{ *:[f32] }:$src, ?:{ *:[f32] }:$src) ++/*580707*/ /*SwitchType*/ 8, MVT::f64,// ->580717 ++/*580709*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FMAX_D), 0, ++ MVT::f64, 2/*#Ops*/, 0, 0, ++ // Src: (fcanonicalize:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$src) - Complexity = 3 ++ // Dst: (FMAX_D:{ *:[f64] } ?:{ *:[f64] }:$src, ?:{ *:[f64] }:$src) ++/*580717*/ 0, // EndSwitchType ++/*580718*/ /*SwitchOpcode*/ 68|128,3/*452*/, TARGET_VAL(LoongArchISD::XVPICKVE),// ->581174 ++/*580722*/ OPC_Scope, 16|128,3/*400*/, /*->581125*/ // 2 children in Scope ++/*580725*/ OPC_MoveChild0, ++/*580726*/ OPC_SwitchOpcode /*2 cases */, 16|128,2/*272*/, TARGET_VAL(ISD::BITCAST),// ->581003 ++/*580731*/ OPC_MoveChild0, ++/*580732*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*580735*/ OPC_CheckChild0Integer, 0, ++/*580737*/ OPC_CheckChild0Type, MVT::i32, ++/*580739*/ OPC_CheckChild1Integer, 0, ++/*580741*/ OPC_CheckChild1Type, MVT::i32, ++/*580743*/ OPC_CheckChild2Integer, 0, ++/*580745*/ OPC_CheckChild2Type, MVT::i32, ++/*580747*/ OPC_CheckChild3Integer, 0, ++/*580749*/ OPC_CheckChild3Type, MVT::i32, ++/*580751*/ OPC_CheckChild4Integer, 0, ++/*580753*/ OPC_CheckChild4Type, MVT::i32, ++/*580755*/ OPC_MoveChild5, ++/*580756*/ OPC_CheckInteger, 0, ++/*580758*/ OPC_CheckType, MVT::i32, ++/*580760*/ OPC_MoveParent, ++/*580761*/ OPC_MoveChild6, ++/*580762*/ OPC_CheckInteger, 0, ++/*580764*/ OPC_CheckType, MVT::i32, ++/*580766*/ OPC_MoveParent, ++/*580767*/ OPC_MoveChild7, ++/*580768*/ OPC_CheckInteger, 0, ++/*580770*/ OPC_CheckType, MVT::i32, ++/*580772*/ OPC_MoveParent, ++/*580773*/ OPC_MoveChild, 8, ++/*580775*/ OPC_CheckInteger, 0, ++/*580777*/ OPC_CheckType, MVT::i32, ++/*580779*/ OPC_MoveParent, ++/*580780*/ OPC_MoveChild, 9, ++/*580782*/ OPC_CheckInteger, 0, ++/*580784*/ OPC_CheckType, MVT::i32, ++/*580786*/ OPC_MoveParent, ++/*580787*/ OPC_MoveChild, 10, ++/*580789*/ OPC_CheckInteger, 0, ++/*580791*/ OPC_CheckType, MVT::i32, ++/*580793*/ OPC_MoveParent, ++/*580794*/ OPC_MoveChild, 11, ++/*580796*/ OPC_CheckInteger, 0, ++/*580798*/ OPC_CheckType, MVT::i32, ++/*580800*/ OPC_MoveParent, ++/*580801*/ OPC_MoveChild, 12, ++/*580803*/ OPC_CheckInteger, 0, ++/*580805*/ OPC_CheckType, MVT::i32, ++/*580807*/ OPC_MoveParent, ++/*580808*/ OPC_MoveChild, 13, ++/*580810*/ OPC_CheckInteger, 0, ++/*580812*/ OPC_CheckType, MVT::i32, ++/*580814*/ OPC_MoveParent, ++/*580815*/ OPC_MoveChild, 14, ++/*580817*/ OPC_CheckInteger, 0, ++/*580819*/ OPC_CheckType, MVT::i32, ++/*580821*/ OPC_MoveParent, ++/*580822*/ OPC_MoveChild, 15, ++/*580824*/ OPC_CheckInteger, 0, ++/*580826*/ OPC_CheckType, MVT::i32, ++/*580828*/ OPC_MoveParent, ++/*580829*/ OPC_MoveChild, 16, ++/*580831*/ OPC_CheckInteger, 0, ++/*580833*/ OPC_CheckType, MVT::i32, ++/*580835*/ OPC_MoveParent, ++/*580836*/ OPC_MoveChild, 17, ++/*580838*/ OPC_CheckInteger, 0, ++/*580840*/ OPC_CheckType, MVT::i32, ++/*580842*/ OPC_MoveParent, ++/*580843*/ OPC_MoveChild, 18, ++/*580845*/ OPC_CheckInteger, 0, ++/*580847*/ OPC_CheckType, MVT::i32, ++/*580849*/ OPC_MoveParent, ++/*580850*/ OPC_MoveChild, 19, ++/*580852*/ OPC_CheckInteger, 0, ++/*580854*/ OPC_CheckType, MVT::i32, ++/*580856*/ OPC_MoveParent, ++/*580857*/ OPC_MoveChild, 20, ++/*580859*/ OPC_CheckInteger, 0, ++/*580861*/ OPC_CheckType, MVT::i32, ++/*580863*/ OPC_MoveParent, ++/*580864*/ OPC_MoveChild, 21, ++/*580866*/ OPC_CheckInteger, 0, ++/*580868*/ OPC_CheckType, MVT::i32, ++/*580870*/ OPC_MoveParent, ++/*580871*/ OPC_MoveChild, 22, ++/*580873*/ OPC_CheckInteger, 0, ++/*580875*/ OPC_CheckType, MVT::i32, ++/*580877*/ OPC_MoveParent, ++/*580878*/ OPC_MoveChild, 23, ++/*580880*/ OPC_CheckInteger, 0, ++/*580882*/ OPC_CheckType, MVT::i32, ++/*580884*/ OPC_MoveParent, ++/*580885*/ OPC_MoveChild, 24, ++/*580887*/ OPC_CheckInteger, 0, ++/*580889*/ OPC_CheckType, MVT::i32, ++/*580891*/ OPC_MoveParent, ++/*580892*/ OPC_MoveChild, 25, ++/*580894*/ OPC_CheckInteger, 0, ++/*580896*/ OPC_CheckType, MVT::i32, ++/*580898*/ OPC_MoveParent, ++/*580899*/ OPC_MoveChild, 26, ++/*580901*/ OPC_CheckInteger, 0, ++/*580903*/ OPC_CheckType, MVT::i32, ++/*580905*/ OPC_MoveParent, ++/*580906*/ OPC_MoveChild, 27, ++/*580908*/ OPC_CheckInteger, 0, ++/*580910*/ OPC_CheckType, MVT::i32, ++/*580912*/ OPC_MoveParent, ++/*580913*/ OPC_MoveChild, 28, ++/*580915*/ OPC_CheckInteger, 0, ++/*580917*/ OPC_CheckType, MVT::i32, ++/*580919*/ OPC_MoveParent, ++/*580920*/ OPC_MoveChild, 29, ++/*580922*/ OPC_CheckInteger, 0, ++/*580924*/ OPC_CheckType, MVT::i32, ++/*580926*/ OPC_MoveParent, ++/*580927*/ OPC_MoveChild, 30, ++/*580929*/ OPC_CheckInteger, 0, ++/*580931*/ OPC_CheckType, MVT::i32, ++/*580933*/ OPC_MoveParent, ++/*580934*/ OPC_MoveChild, 31, ++/*580936*/ OPC_CheckInteger, 0, ++/*580938*/ OPC_CheckType, MVT::i32, ++/*580940*/ OPC_MoveParent, ++/*580941*/ OPC_CheckType, MVT::v32i8, ++/*580943*/ OPC_MoveParent, ++/*580944*/ OPC_MoveParent, ++/*580945*/ OPC_RecordChild1, // #0 = $b ++/*580946*/ OPC_RecordChild2, // #1 = $ui3 ++/*580947*/ OPC_MoveChild2, ++/*580948*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*580951*/ OPC_Scope, 24, /*->580977*/ // 2 children in Scope ++/*580953*/ OPC_CheckPredicate, 48, // Predicate_uimm3 ++/*580955*/ OPC_MoveParent, ++/*580956*/ OPC_CheckType, MVT::v8i32, ++/*580958*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*580960*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::v8i32, 0/*#Ops*/, // Results = #2 ++/*580966*/ OPC_EmitConvertToTarget, 1, ++/*580968*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPICKVE_W), 0, ++ MVT::v8i32, 3/*#Ops*/, 2, 0, 3, ++ // Src: (LoongArchXVPICKVE:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (build_vector:{ *:[v32i8] } 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] })), LASX256W:{ *:[v8i32] }:$b, (imm:{ *:[i32] })<>:$ui3) - Complexity = 173 ++ // Dst: (XVPICKVE_W:{ *:[v8i32] } (IMPLICIT_DEF:{ *:[v8i32] }), LASX256W:{ *:[v8i32] }:$b, (imm:{ *:[i32] })<>:$ui3) ++/*580977*/ /*Scope*/ 24, /*->581002*/ ++/*580978*/ OPC_CheckPredicate, 49, // Predicate_uimm2 ++/*580980*/ OPC_MoveParent, ++/*580981*/ OPC_CheckType, MVT::v4i64, ++/*580983*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*580985*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::v4i64, 0/*#Ops*/, // Results = #2 ++/*580991*/ OPC_EmitConvertToTarget, 1, ++/*580993*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPICKVE_D), 0, ++ MVT::v4i64, 3/*#Ops*/, 2, 0, 3, ++ // Src: (LoongArchXVPICKVE:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v32i8] } 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] })), LASX256D:{ *:[v4i64] }:$b, (imm:{ *:[i32] })<>:$ui2) - Complexity = 173 ++ // Dst: (XVPICKVE_D:{ *:[v4i64] } (IMPLICIT_DEF:{ *:[v4i64] }), LASX256D:{ *:[v4i64] }:$b, (imm:{ *:[i32] })<>:$ui2) ++/*581002*/ 0, /*End of Scope*/ ++/*581003*/ /*SwitchOpcode*/ 118, TARGET_VAL(ISD::BUILD_VECTOR),// ->581124 ++/*581006*/ OPC_CheckChild0Integer, 0, ++/*581008*/ OPC_Scope, 67, /*->581077*/ // 2 children in Scope ++/*581010*/ OPC_CheckChild0Type, MVT::i32, ++/*581012*/ OPC_CheckChild1Integer, 0, ++/*581014*/ OPC_CheckChild1Type, MVT::i32, ++/*581016*/ OPC_CheckChild2Integer, 0, ++/*581018*/ OPC_CheckChild2Type, MVT::i32, ++/*581020*/ OPC_CheckChild3Integer, 0, ++/*581022*/ OPC_CheckChild3Type, MVT::i32, ++/*581024*/ OPC_CheckChild4Integer, 0, ++/*581026*/ OPC_CheckChild4Type, MVT::i32, ++/*581028*/ OPC_MoveChild5, ++/*581029*/ OPC_CheckInteger, 0, ++/*581031*/ OPC_CheckType, MVT::i32, ++/*581033*/ OPC_MoveParent, ++/*581034*/ OPC_MoveChild6, ++/*581035*/ OPC_CheckInteger, 0, ++/*581037*/ OPC_CheckType, MVT::i32, ++/*581039*/ OPC_MoveParent, ++/*581040*/ OPC_MoveChild7, ++/*581041*/ OPC_CheckInteger, 0, ++/*581043*/ OPC_CheckType, MVT::i32, ++/*581045*/ OPC_MoveParent, ++/*581046*/ OPC_MoveParent, ++/*581047*/ OPC_RecordChild1, // #0 = $b ++/*581048*/ OPC_RecordChild2, // #1 = $ui3 ++/*581049*/ OPC_MoveChild2, ++/*581050*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*581053*/ OPC_CheckPredicate, 48, // Predicate_uimm3 ++/*581055*/ OPC_MoveParent, ++/*581056*/ OPC_CheckType, MVT::v8i32, ++/*581058*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*581060*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::v8i32, 0/*#Ops*/, // Results = #2 ++/*581066*/ OPC_EmitConvertToTarget, 1, ++/*581068*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPICKVE_W), 0, ++ MVT::v8i32, 3/*#Ops*/, 2, 0, 3, ++ // Src: (LoongArchXVPICKVE:{ *:[v8i32] } (build_vector:{ *:[v8i32] } 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }), LASX256W:{ *:[v8i32] }:$b, (imm:{ *:[i32] })<>:$ui3) - Complexity = 50 ++ // Dst: (XVPICKVE_W:{ *:[v8i32] } (IMPLICIT_DEF:{ *:[v8i32] }), LASX256W:{ *:[v8i32] }:$b, (imm:{ *:[i32] })<>:$ui3) ++/*581077*/ /*Scope*/ 45, /*->581123*/ ++/*581078*/ OPC_CheckChild0Type, MVT::i64, ++/*581080*/ OPC_CheckChild1Integer, 0, ++/*581082*/ OPC_CheckChild1Type, MVT::i64, ++/*581084*/ OPC_CheckChild2Integer, 0, ++/*581086*/ OPC_CheckChild2Type, MVT::i64, ++/*581088*/ OPC_CheckChild3Integer, 0, ++/*581090*/ OPC_CheckChild3Type, MVT::i64, ++/*581092*/ OPC_MoveParent, ++/*581093*/ OPC_RecordChild1, // #0 = $b ++/*581094*/ OPC_RecordChild2, // #1 = $ui2 ++/*581095*/ OPC_MoveChild2, ++/*581096*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*581099*/ OPC_CheckPredicate, 49, // Predicate_uimm2 ++/*581101*/ OPC_MoveParent, ++/*581102*/ OPC_CheckType, MVT::v4i64, ++/*581104*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*581106*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::v4i64, 0/*#Ops*/, // Results = #2 ++/*581112*/ OPC_EmitConvertToTarget, 1, ++/*581114*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPICKVE_D), 0, ++ MVT::v4i64, 3/*#Ops*/, 2, 0, 3, ++ // Src: (LoongArchXVPICKVE:{ *:[v4i64] } (build_vector:{ *:[v4i64] } 0:{ *:[i64] }, 0:{ *:[i64] }, 0:{ *:[i64] }, 0:{ *:[i64] }), LASX256D:{ *:[v4i64] }:$b, (imm:{ *:[i32] })<>:$ui2) - Complexity = 30 ++ // Dst: (XVPICKVE_D:{ *:[v4i64] } (IMPLICIT_DEF:{ *:[v4i64] }), LASX256D:{ *:[v4i64] }:$b, (imm:{ *:[i32] })<>:$ui2) ++/*581123*/ 0, /*End of Scope*/ ++/*581124*/ 0, // EndSwitchOpcode ++/*581125*/ /*Scope*/ 47, /*->581173*/ ++/*581126*/ OPC_RecordChild0, // #0 = $a ++/*581127*/ OPC_RecordChild1, // #1 = $b ++/*581128*/ OPC_RecordChild2, // #2 = $ui3 ++/*581129*/ OPC_MoveChild2, ++/*581130*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*581133*/ OPC_Scope, 18, /*->581153*/ // 2 children in Scope ++/*581135*/ OPC_CheckPredicate, 48, // Predicate_uimm3 ++/*581137*/ OPC_MoveParent, ++/*581138*/ OPC_CheckType, MVT::v8i32, ++/*581140*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*581142*/ OPC_EmitConvertToTarget, 2, ++/*581144*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPICKVE_W), 0, ++ MVT::v8i32, 3/*#Ops*/, 0, 1, 3, ++ // Src: (LoongArchXVPICKVE:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b, (imm:{ *:[i32] })<>:$ui3) - Complexity = 7 ++ // Dst: (XVPICKVE_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b, (imm:{ *:[i32] })<>:$ui3) ++/*581153*/ /*Scope*/ 18, /*->581172*/ ++/*581154*/ OPC_CheckPredicate, 49, // Predicate_uimm2 ++/*581156*/ OPC_MoveParent, ++/*581157*/ OPC_CheckType, MVT::v4i64, ++/*581159*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*581161*/ OPC_EmitConvertToTarget, 2, ++/*581163*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPICKVE_D), 0, ++ MVT::v4i64, 3/*#Ops*/, 0, 1, 3, ++ // Src: (LoongArchXVPICKVE:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b, (imm:{ *:[i32] })<>:$ui2) - Complexity = 7 ++ // Dst: (XVPICKVE_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b, (imm:{ *:[i32] })<>:$ui2) ++/*581172*/ 0, /*End of Scope*/ ++/*581173*/ 0, /*End of Scope*/ ++/*581174*/ /*SwitchOpcode*/ 81, TARGET_VAL(LoongArchISD::VBROADCAST),// ->581258 ++/*581177*/ OPC_MoveChild0, ++/*581178*/ OPC_CheckOpcode, TARGET_VAL(ISD::LOAD), ++/*581181*/ OPC_RecordMemRef, ++/*581182*/ OPC_RecordNode, // #0 = 'ld' chained node ++/*581183*/ OPC_RecordChild1, // #1 = $addr ++/*581184*/ OPC_CheckPredicate, 0, // Predicate_unindexedload ++/*581186*/ OPC_CheckPredicate, 5, // Predicate_load ++/*581188*/ OPC_SwitchType /*4 cases */, 15, MVT::v16i8,// ->581206 ++/*581191*/ OPC_MoveParent, ++/*581192*/ OPC_CheckType, MVT::v16i8, ++/*581194*/ OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectIntAddr:$addr #2 #3 ++/*581197*/ OPC_EmitMergeInputChains1_0, ++/*581198*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VLDREPL_B), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::v16i8, 2/*#Ops*/, 2, 3, ++ // Src: (LoongArchVBROADCAST:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$addr)<><>) - Complexity = 16 ++ // Dst: (VLDREPL_B:{ *:[v16i8] } addr:{ *:[iPTR] }:$addr) ++/*581206*/ /*SwitchType*/ 15, MVT::v8i16,// ->581223 ++/*581208*/ OPC_MoveParent, ++/*581209*/ OPC_CheckType, MVT::v8i16, ++/*581211*/ OPC_CheckComplexPat, /*CP*/29, /*#*/1, // selectIntAddrSImm11Lsl1:$addr #2 #3 ++/*581214*/ OPC_EmitMergeInputChains1_0, ++/*581215*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VLDREPL_H), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::v8i16, 2/*#Ops*/, 2, 3, ++ // Src: (LoongArchVBROADCAST:{ *:[v8i16] } (ld:{ *:[v8i16] } addrimm11lsl1:{ *:[iPTR] }:$addr)<><>) - Complexity = 16 ++ // Dst: (VLDREPL_H:{ *:[v8i16] } addrimm11lsl1:{ *:[iPTR] }:$addr) ++/*581223*/ /*SwitchType*/ 15, MVT::v4i32,// ->581240 ++/*581225*/ OPC_MoveParent, ++/*581226*/ OPC_CheckType, MVT::v4i32, ++/*581228*/ OPC_CheckComplexPat, /*CP*/30, /*#*/1, // selectIntAddrSImm10Lsl2:$addr #2 #3 ++/*581231*/ OPC_EmitMergeInputChains1_0, ++/*581232*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VLDREPL_W), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::v4i32, 2/*#Ops*/, 2, 3, ++ // Src: (LoongArchVBROADCAST:{ *:[v4i32] } (ld:{ *:[v4i32] } addrimm10lsl2:{ *:[iPTR] }:$addr)<><>) - Complexity = 16 ++ // Dst: (VLDREPL_W:{ *:[v4i32] } addrimm10lsl2:{ *:[iPTR] }:$addr) ++/*581240*/ /*SwitchType*/ 15, MVT::v2i64,// ->581257 ++/*581242*/ OPC_MoveParent, ++/*581243*/ OPC_CheckType, MVT::v2i64, ++/*581245*/ OPC_CheckComplexPat, /*CP*/31, /*#*/1, // selectIntAddrSImm9Lsl3:$addr #2 #3 ++/*581248*/ OPC_EmitMergeInputChains1_0, ++/*581249*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VLDREPL_D), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::v2i64, 2/*#Ops*/, 2, 3, ++ // Src: (LoongArchVBROADCAST:{ *:[v2i64] } (ld:{ *:[v2i64] } addrimm9lsl3:{ *:[iPTR] }:$addr)<><>) - Complexity = 16 ++ // Dst: (VLDREPL_D:{ *:[v2i64] } addrimm9lsl3:{ *:[iPTR] }:$addr) ++/*581257*/ 0, // EndSwitchType ++/*581258*/ /*SwitchOpcode*/ 97, TARGET_VAL(LoongArchISD::XVBROADCAST),// ->581358 ++/*581261*/ OPC_Scope, 81, /*->581344*/ // 2 children in Scope ++/*581263*/ OPC_MoveChild0, ++/*581264*/ OPC_CheckOpcode, TARGET_VAL(ISD::LOAD), ++/*581267*/ OPC_RecordMemRef, ++/*581268*/ OPC_RecordNode, // #0 = 'ld' chained node ++/*581269*/ OPC_RecordChild1, // #1 = $addr ++/*581270*/ OPC_CheckPredicate, 0, // Predicate_unindexedload ++/*581272*/ OPC_CheckPredicate, 5, // Predicate_load ++/*581274*/ OPC_SwitchType /*4 cases */, 15, MVT::v32i8,// ->581292 ++/*581277*/ OPC_MoveParent, ++/*581278*/ OPC_CheckType, MVT::v32i8, ++/*581280*/ OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectIntAddr:$addr #2 #3 ++/*581283*/ OPC_EmitMergeInputChains1_0, ++/*581284*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVLDREPL_B), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::v32i8, 2/*#Ops*/, 2, 3, ++ // Src: (LoongArchXVBROADCAST:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$addr)<><>) - Complexity = 16 ++ // Dst: (XVLDREPL_B:{ *:[v32i8] } addr:{ *:[iPTR] }:$addr) ++/*581292*/ /*SwitchType*/ 15, MVT::v16i16,// ->581309 ++/*581294*/ OPC_MoveParent, ++/*581295*/ OPC_CheckType, MVT::v16i16, ++/*581297*/ OPC_CheckComplexPat, /*CP*/29, /*#*/1, // selectIntAddrSImm11Lsl1:$addr #2 #3 ++/*581300*/ OPC_EmitMergeInputChains1_0, ++/*581301*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVLDREPL_H), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::v16i16, 2/*#Ops*/, 2, 3, ++ // Src: (LoongArchXVBROADCAST:{ *:[v16i16] } (ld:{ *:[v16i16] } addrimm11lsl1:{ *:[iPTR] }:$addr)<><>) - Complexity = 16 ++ // Dst: (XVLDREPL_H:{ *:[v16i16] } addrimm11lsl1:{ *:[iPTR] }:$addr) ++/*581309*/ /*SwitchType*/ 15, MVT::v8i32,// ->581326 ++/*581311*/ OPC_MoveParent, ++/*581312*/ OPC_CheckType, MVT::v8i32, ++/*581314*/ OPC_CheckComplexPat, /*CP*/30, /*#*/1, // selectIntAddrSImm10Lsl2:$addr #2 #3 ++/*581317*/ OPC_EmitMergeInputChains1_0, ++/*581318*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVLDREPL_W), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::v8i32, 2/*#Ops*/, 2, 3, ++ // Src: (LoongArchXVBROADCAST:{ *:[v8i32] } (ld:{ *:[v8i32] } addrimm10lsl2:{ *:[iPTR] }:$addr)<><>) - Complexity = 16 ++ // Dst: (XVLDREPL_W:{ *:[v8i32] } addrimm10lsl2:{ *:[iPTR] }:$addr) ++/*581326*/ /*SwitchType*/ 15, MVT::v4i64,// ->581343 ++/*581328*/ OPC_MoveParent, ++/*581329*/ OPC_CheckType, MVT::v4i64, ++/*581331*/ OPC_CheckComplexPat, /*CP*/31, /*#*/1, // selectIntAddrSImm9Lsl3:$addr #2 #3 ++/*581334*/ OPC_EmitMergeInputChains1_0, ++/*581335*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVLDREPL_D), 0|OPFL_Chain|OPFL_MemRefs, ++ MVT::v4i64, 2/*#Ops*/, 2, 3, ++ // Src: (LoongArchXVBROADCAST:{ *:[v4i64] } (ld:{ *:[v4i64] } addrimm9lsl3:{ *:[iPTR] }:$addr)<><>) - Complexity = 16 ++ // Dst: (XVLDREPL_D:{ *:[v4i64] } addrimm9lsl3:{ *:[iPTR] }:$addr) ++/*581343*/ 0, // EndSwitchType ++/*581344*/ /*Scope*/ 12, /*->581357*/ ++/*581345*/ OPC_RecordChild0, // #0 = $xj ++/*581346*/ OPC_CheckChild0Type, MVT::v4i64, ++/*581348*/ OPC_CheckType, MVT::v4i64, ++/*581350*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVREPLVE0_D), 0, ++ MVT::v4i64, 1/*#Ops*/, 0, ++ // Src: (LoongArchXVBROADCAST:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj) - Complexity = 3 ++ // Dst: (XVREPLVE0_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj) ++/*581357*/ 0, /*End of Scope*/ ++/*581358*/ /*SwitchOpcode*/ 14|128,3/*398*/, TARGET_VAL(LoongArchISD::VSHF),// ->581760 ++/*581362*/ OPC_Scope, 84, /*->581448*/ // 4 children in Scope ++/*581364*/ OPC_MoveChild0, ++/*581365*/ OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST), ++/*581368*/ OPC_MoveChild0, ++/*581369*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND), ++/*581372*/ OPC_MoveChild0, ++/*581373*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*581376*/ OPC_Scope, 34, /*->581412*/ // 2 children in Scope ++/*581378*/ OPC_RecordChild0, // #0 = $rk ++/*581379*/ OPC_CheckChild0Type, MVT::i32, ++/*581381*/ OPC_CheckChild1Same, 0, ++/*581383*/ OPC_CheckChild2Same, 0, ++/*581385*/ OPC_CheckChild3Same, 0, ++/*581387*/ OPC_MoveParent, ++/*581388*/ OPC_MoveChild1, ++/*581389*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*581392*/ OPC_MoveParent, ++/*581393*/ OPC_CheckType, MVT::v4i32, ++/*581395*/ OPC_MoveParent, ++/*581396*/ OPC_CheckType, MVT::v2i64, ++/*581398*/ OPC_MoveParent, ++/*581399*/ OPC_RecordChild1, // #1 = $vj ++/*581400*/ OPC_CheckChild2Same, 1, ++/*581402*/ OPC_CheckType, MVT::v2i64, ++/*581404*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VREPLVE_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (LoongArchVSHF:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (and:{ *:[v4i32] } (build_vector:{ *:[v4i32] } GPR32Opnd:{ *:[i32] }:$rk, GPR32Opnd:{ *:[i32] }:$rk, GPR32Opnd:{ *:[i32] }:$rk, GPR32Opnd:{ *:[i32] }:$rk), (build_vector:{ *:[v4i32] }))), LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vj) - Complexity = 15 ++ // Dst: (VREPLVE_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, GPR32Opnd:{ *:[i32] }:$rk) ++/*581412*/ /*Scope*/ 34, /*->581447*/ ++/*581413*/ OPC_MoveParent, ++/*581414*/ OPC_MoveChild1, ++/*581415*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*581418*/ OPC_RecordChild0, // #0 = $rk ++/*581419*/ OPC_CheckChild0Type, MVT::i32, ++/*581421*/ OPC_CheckChild1Same, 0, ++/*581423*/ OPC_CheckChild2Same, 0, ++/*581425*/ OPC_CheckChild3Same, 0, ++/*581427*/ OPC_MoveParent, ++/*581428*/ OPC_CheckType, MVT::v4i32, ++/*581430*/ OPC_MoveParent, ++/*581431*/ OPC_CheckType, MVT::v2i64, ++/*581433*/ OPC_MoveParent, ++/*581434*/ OPC_RecordChild1, // #1 = $vj ++/*581435*/ OPC_CheckChild2Same, 1, ++/*581437*/ OPC_CheckType, MVT::v2i64, ++/*581439*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VREPLVE_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 0, ++ // Src: (LoongArchVSHF:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (and:{ *:[v4i32] } (build_vector:{ *:[v4i32] }), (build_vector:{ *:[v4i32] } GPR32Opnd:{ *:[i32] }:$rk, GPR32Opnd:{ *:[i32] }:$rk, GPR32Opnd:{ *:[i32] }:$rk, GPR32Opnd:{ *:[i32] }:$rk))), LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vj) - Complexity = 15 ++ // Dst: (VREPLVE_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, GPR32Opnd:{ *:[i32] }:$rk) ++/*581447*/ 0, /*End of Scope*/ ++/*581448*/ /*Scope*/ 75, /*->581524*/ ++/*581449*/ OPC_RecordChild0, // #0 = $ui4 ++/*581450*/ OPC_SwitchType /*4 cases */, 16, MVT::v16i8,// ->581469 ++/*581453*/ OPC_CheckChild0Type, MVT::v16i8, ++/*581455*/ OPC_RecordChild1, // #1 = $vj ++/*581456*/ OPC_CheckChild2Same, 1, ++/*581458*/ OPC_CheckComplexPat, /*CP*/32, /*#*/0, // selectVSplatUimm4:$ui4 #2 ++/*581461*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VREPLVEI_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 2, ++ // Src: (LoongArchVSHF:{ *:[v16i8] } vsplati8_uimm4:{ *:[v16i8] }:$ui4, LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vj) - Complexity = 9 ++ // Dst: (VREPLVEI_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, vsplati8_uimm4:{ *:[v16i8] }:$ui4) ++/*581469*/ /*SwitchType*/ 16, MVT::v8i16,// ->581487 ++/*581471*/ OPC_CheckChild0Type, MVT::v8i16, ++/*581473*/ OPC_RecordChild1, // #1 = $vj ++/*581474*/ OPC_CheckChild2Same, 1, ++/*581476*/ OPC_CheckComplexPat, /*CP*/33, /*#*/0, // selectVSplatUimm3:$ui3 #2 ++/*581479*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VREPLVEI_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 2, ++ // Src: (LoongArchVSHF:{ *:[v8i16] } vsplati16_uimm3:{ *:[v8i16] }:$ui3, LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vj) - Complexity = 9 ++ // Dst: (VREPLVEI_H:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, vsplati16_uimm3:{ *:[v8i16] }:$ui3) ++/*581487*/ /*SwitchType*/ 16, MVT::v4i32,// ->581505 ++/*581489*/ OPC_CheckChild0Type, MVT::v4i32, ++/*581491*/ OPC_RecordChild1, // #1 = $vj ++/*581492*/ OPC_CheckChild2Same, 1, ++/*581494*/ OPC_CheckComplexPat, /*CP*/34, /*#*/0, // selectVSplatUimm2:$ui2 #2 ++/*581497*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VREPLVEI_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 2, ++ // Src: (LoongArchVSHF:{ *:[v4i32] } vsplati32_uimm2:{ *:[v4i32] }:$ui2, LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vj) - Complexity = 9 ++ // Dst: (VREPLVEI_W:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, vsplati32_uimm2:{ *:[v4i32] }:$ui2) ++/*581505*/ /*SwitchType*/ 16, MVT::v2i64,// ->581523 ++/*581507*/ OPC_CheckChild0Type, MVT::v2i64, ++/*581509*/ OPC_RecordChild1, // #1 = $vj ++/*581510*/ OPC_CheckChild2Same, 1, ++/*581512*/ OPC_CheckComplexPat, /*CP*/35, /*#*/0, // selectVSplatUimm1:$ui1 #2 ++/*581515*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VREPLVEI_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 2, ++ // Src: (LoongArchVSHF:{ *:[v2i64] } vsplati64_uimm1:{ *:[v2i64] }:$ui1, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vj) - Complexity = 9 ++ // Dst: (VREPLVEI_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, vsplati64_uimm1:{ *:[v2i64] }:$ui1) ++/*581523*/ 0, // EndSwitchType ++/*581524*/ /*Scope*/ 125, /*->581650*/ ++/*581525*/ OPC_MoveChild0, ++/*581526*/ OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR), ++/*581529*/ OPC_RecordChild0, // #0 = $rk ++/*581530*/ OPC_CheckChild0Type, MVT::i32, ++/*581532*/ OPC_CheckChild1Same, 0, ++/*581534*/ OPC_CheckChild2Same, 0, ++/*581536*/ OPC_CheckChild3Same, 0, ++/*581538*/ OPC_Scope, 92, /*->581632*/ // 2 children in Scope ++/*581540*/ OPC_MoveChild4, ++/*581541*/ OPC_CheckSame, 0, ++/*581543*/ OPC_MoveParent, ++/*581544*/ OPC_MoveChild5, ++/*581545*/ OPC_CheckSame, 0, ++/*581547*/ OPC_MoveParent, ++/*581548*/ OPC_MoveChild6, ++/*581549*/ OPC_CheckSame, 0, ++/*581551*/ OPC_MoveParent, ++/*581552*/ OPC_MoveChild7, ++/*581553*/ OPC_CheckSame, 0, ++/*581555*/ OPC_MoveParent, ++/*581556*/ OPC_Scope, 56, /*->581614*/ // 2 children in Scope ++/*581558*/ OPC_MoveChild, 8, ++/*581560*/ OPC_CheckSame, 0, ++/*581562*/ OPC_MoveParent, ++/*581563*/ OPC_MoveChild, 9, ++/*581565*/ OPC_CheckSame, 0, ++/*581567*/ OPC_MoveParent, ++/*581568*/ OPC_MoveChild, 10, ++/*581570*/ OPC_CheckSame, 0, ++/*581572*/ OPC_MoveParent, ++/*581573*/ OPC_MoveChild, 11, ++/*581575*/ OPC_CheckSame, 0, ++/*581577*/ OPC_MoveParent, ++/*581578*/ OPC_MoveChild, 12, ++/*581580*/ OPC_CheckSame, 0, ++/*581582*/ OPC_MoveParent, ++/*581583*/ OPC_MoveChild, 13, ++/*581585*/ OPC_CheckSame, 0, ++/*581587*/ OPC_MoveParent, ++/*581588*/ OPC_MoveChild, 14, ++/*581590*/ OPC_CheckSame, 0, ++/*581592*/ OPC_MoveParent, ++/*581593*/ OPC_MoveChild, 15, ++/*581595*/ OPC_CheckSame, 0, ++/*581597*/ OPC_MoveParent, ++/*581598*/ OPC_CheckType, MVT::v16i8, ++/*581600*/ OPC_MoveParent, ++/*581601*/ OPC_RecordChild1, // #1 = $vj ++/*581602*/ OPC_CheckChild2Same, 1, ++/*581604*/ OPC_CheckType, MVT::v16i8, ++/*581606*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VREPLVE_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 0, ++ // Src: (LoongArchVSHF:{ *:[v16i8] } (build_vector:{ *:[v16i8] } GPR32Opnd:{ *:[i32] }:$rk, GPR32Opnd:{ *:[i32] }:$rk, GPR32Opnd:{ *:[i32] }:$rk, GPR32Opnd:{ *:[i32] }:$rk, GPR32Opnd:{ *:[i32] }:$rk, GPR32Opnd:{ *:[i32] }:$rk, GPR32Opnd:{ *:[i32] }:$rk, GPR32Opnd:{ *:[i32] }:$rk, GPR32Opnd:{ *:[i32] }:$rk, GPR32Opnd:{ *:[i32] }:$rk, GPR32Opnd:{ *:[i32] }:$rk, GPR32Opnd:{ *:[i32] }:$rk, GPR32Opnd:{ *:[i32] }:$rk, GPR32Opnd:{ *:[i32] }:$rk, GPR32Opnd:{ *:[i32] }:$rk, GPR32Opnd:{ *:[i32] }:$rk), LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vj) - Complexity = 6 ++ // Dst: (VREPLVE_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, GPR32Opnd:{ *:[i32] }:$rk) ++/*581614*/ /*Scope*/ 16, /*->581631*/ ++/*581615*/ OPC_CheckType, MVT::v8i16, ++/*581617*/ OPC_MoveParent, ++/*581618*/ OPC_RecordChild1, // #1 = $vj ++/*581619*/ OPC_CheckChild2Same, 1, ++/*581621*/ OPC_CheckType, MVT::v8i16, ++/*581623*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VREPLVE_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 0, ++ // Src: (LoongArchVSHF:{ *:[v8i16] } (build_vector:{ *:[v8i16] } GPR32Opnd:{ *:[i32] }:$rk, GPR32Opnd:{ *:[i32] }:$rk, GPR32Opnd:{ *:[i32] }:$rk, GPR32Opnd:{ *:[i32] }:$rk, GPR32Opnd:{ *:[i32] }:$rk, GPR32Opnd:{ *:[i32] }:$rk, GPR32Opnd:{ *:[i32] }:$rk, GPR32Opnd:{ *:[i32] }:$rk), LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vj) - Complexity = 6 ++ // Dst: (VREPLVE_H:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, GPR32Opnd:{ *:[i32] }:$rk) ++/*581631*/ 0, /*End of Scope*/ ++/*581632*/ /*Scope*/ 16, /*->581649*/ ++/*581633*/ OPC_CheckType, MVT::v4i32, ++/*581635*/ OPC_MoveParent, ++/*581636*/ OPC_RecordChild1, // #1 = $vj ++/*581637*/ OPC_CheckChild2Same, 1, ++/*581639*/ OPC_CheckType, MVT::v4i32, ++/*581641*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VREPLVE_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 0, ++ // Src: (LoongArchVSHF:{ *:[v4i32] } (build_vector:{ *:[v4i32] } GPR32Opnd:{ *:[i32] }:$rk, GPR32Opnd:{ *:[i32] }:$rk, GPR32Opnd:{ *:[i32] }:$rk, GPR32Opnd:{ *:[i32] }:$rk), LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vj) - Complexity = 6 ++ // Dst: (VREPLVE_W:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, GPR32Opnd:{ *:[i32] }:$rk) ++/*581649*/ 0, /*End of Scope*/ ++/*581650*/ /*Scope*/ 108, /*->581759*/ ++/*581651*/ OPC_RecordChild0, // #0 = $vd_in ++/*581652*/ OPC_SwitchType /*7 cases */, 13, MVT::v8i16,// ->581668 ++/*581655*/ OPC_CheckChild0Type, MVT::v8i16, ++/*581657*/ OPC_RecordChild1, // #1 = $vj ++/*581658*/ OPC_RecordChild2, // #2 = $vk ++/*581659*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSHUF_H), 0, ++ MVT::v8i16, 3/*#Ops*/, 0, 1, 2, ++ // Src: (LoongArchVSHF:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vd_in, LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 3 ++ // Dst: (VSHUF_H:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vd_in, LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/*581668*/ /*SwitchType*/ 13, MVT::v4i32,// ->581683 ++/*581670*/ OPC_CheckChild0Type, MVT::v4i32, ++/*581672*/ OPC_RecordChild1, // #1 = $vj ++/*581673*/ OPC_RecordChild2, // #2 = $vk ++/*581674*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSHUF_W), 0, ++ MVT::v4i32, 3/*#Ops*/, 0, 1, 2, ++ // Src: (LoongArchVSHF:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vd_in, LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 3 ++ // Dst: (VSHUF_W:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vd_in, LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/*581683*/ /*SwitchType*/ 13, MVT::v2i64,// ->581698 ++/*581685*/ OPC_CheckChild0Type, MVT::v2i64, ++/*581687*/ OPC_RecordChild1, // #1 = $vj ++/*581688*/ OPC_RecordChild2, // #2 = $vk ++/*581689*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSHUF_D), 0, ++ MVT::v2i64, 3/*#Ops*/, 0, 1, 2, ++ // Src: (LoongArchVSHF:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vd_in, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 3 ++ // Dst: (VSHUF_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vd_in, LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/*581698*/ /*SwitchType*/ 13, MVT::v16i8,// ->581713 ++/*581700*/ OPC_CheckChild0Type, MVT::v16i8, ++/*581702*/ OPC_RecordChild1, // #1 = $vj ++/*581703*/ OPC_RecordChild2, // #2 = $vk ++/*581704*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSHUF_B), 0, ++ MVT::v16i8, 3/*#Ops*/, 1, 2, 0, ++ // Src: (LoongArchVSHF:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$va, LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) - Complexity = 3 ++ // Dst: (VSHUF_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk, LSX128BOpnd:{ *:[v16i8] }:$va) ++/*581713*/ /*SwitchType*/ 13, MVT::v16i16,// ->581728 ++/*581715*/ OPC_CheckChild0Type, MVT::v16i16, ++/*581717*/ OPC_RecordChild1, // #1 = $xj ++/*581718*/ OPC_RecordChild2, // #2 = $xk ++/*581719*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSHUF_H), 0, ++ MVT::v16i16, 3/*#Ops*/, 0, 1, 2, ++ // Src: (LoongArchVSHF:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xd_in, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 3 ++ // Dst: (XVSHUF_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xd_in, LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/*581728*/ /*SwitchType*/ 13, MVT::v8i32,// ->581743 ++/*581730*/ OPC_CheckChild0Type, MVT::v8i32, ++/*581732*/ OPC_RecordChild1, // #1 = $xj ++/*581733*/ OPC_RecordChild2, // #2 = $xk ++/*581734*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSHUF_W), 0, ++ MVT::v8i32, 3/*#Ops*/, 0, 1, 2, ++ // Src: (LoongArchVSHF:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xd_in, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 3 ++ // Dst: (XVSHUF_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xd_in, LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/*581743*/ /*SwitchType*/ 13, MVT::v4i64,// ->581758 ++/*581745*/ OPC_CheckChild0Type, MVT::v4i64, ++/*581747*/ OPC_RecordChild1, // #1 = $xj ++/*581748*/ OPC_RecordChild2, // #2 = $xk ++/*581749*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSHUF_D), 0, ++ MVT::v4i64, 3/*#Ops*/, 0, 1, 2, ++ // Src: (LoongArchVSHF:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 3 ++ // Dst: (XVSHUF_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/*581758*/ 0, // EndSwitchType ++/*581759*/ 0, /*End of Scope*/ ++/*581760*/ /*SwitchOpcode*/ 123|128,8/*1147*/, TARGET_VAL(ISD::INSERT_SUBVECTOR),// ->582911 ++/*581764*/ OPC_MoveChild0, ++/*581765*/ OPC_Scope, 73|128,4/*585*/, /*->582353*/ // 2 children in Scope ++/*581768*/ OPC_CheckImmAllZerosV, ++/*581769*/ OPC_MoveParent, ++/*581770*/ OPC_RecordChild1, // #0 = $src ++/*581771*/ OPC_Scope, 62|128,1/*190*/, /*->581964*/ // 5 children in Scope ++/*581774*/ OPC_CheckChild2Integer, 0, ++/*581776*/ OPC_Scope, 92, /*->581870*/ // 2 children in Scope ++/*581778*/ OPC_CheckChild2Type, MVT::i32, ++/*581780*/ OPC_SwitchType /*4 cases */, 20, MVT::v4i64,// ->581803 ++/*581783*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*581785*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::v4i64, 0/*#Ops*/, // Results = #1 ++/*581791*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/*581794*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::v4i64, 3/*#Ops*/, 1, 0, 2, ++ // Src: (insert_subvector:{ *:[v4i64] } immAllZerosV:{ *:[v4i64] }, LSX128D:{ *:[v2i64] }:$src, 0:{ *:[i32] }) - Complexity = 12 ++ // Dst: (INSERT_SUBREG:{ *:[v4i64] } (IMPLICIT_DEF:{ *:[v4i64] }), LSX128D:{ *:[v2i64] }:$src, sub_128:{ *:[i32] }) ++/*581803*/ /*SwitchType*/ 20, MVT::v8i32,// ->581825 ++/*581805*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*581807*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::v8i32, 0/*#Ops*/, // Results = #1 ++/*581813*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/*581816*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::v8i32, 3/*#Ops*/, 1, 0, 2, ++ // Src: (insert_subvector:{ *:[v8i32] } immAllZerosV:{ *:[v8i32] }, LSX128W:{ *:[v4i32] }:$src, 0:{ *:[i32] }) - Complexity = 12 ++ // Dst: (INSERT_SUBREG:{ *:[v8i32] } (IMPLICIT_DEF:{ *:[v8i32] }), LSX128W:{ *:[v4i32] }:$src, sub_128:{ *:[i32] }) ++/*581825*/ /*SwitchType*/ 20, MVT::v16i16,// ->581847 ++/*581827*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*581829*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::v16i16, 0/*#Ops*/, // Results = #1 ++/*581835*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/*581838*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::v16i16, 3/*#Ops*/, 1, 0, 2, ++ // Src: (insert_subvector:{ *:[v16i16] } immAllZerosV:{ *:[v16i16] }, LSX128H:{ *:[v8i16] }:$src, 0:{ *:[i32] }) - Complexity = 12 ++ // Dst: (INSERT_SUBREG:{ *:[v16i16] } (IMPLICIT_DEF:{ *:[v16i16] }), LSX128H:{ *:[v8i16] }:$src, sub_128:{ *:[i32] }) ++/*581847*/ /*SwitchType*/ 20, MVT::v32i8,// ->581869 ++/*581849*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*581851*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::v32i8, 0/*#Ops*/, // Results = #1 ++/*581857*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/*581860*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::v32i8, 3/*#Ops*/, 1, 0, 2, ++ // Src: (insert_subvector:{ *:[v32i8] } immAllZerosV:{ *:[v32i8] }, LSX128B:{ *:[v16i8] }:$src, 0:{ *:[i32] }) - Complexity = 12 ++ // Dst: (INSERT_SUBREG:{ *:[v32i8] } (IMPLICIT_DEF:{ *:[v32i8] }), LSX128B:{ *:[v16i8] }:$src, sub_128:{ *:[i32] }) ++/*581869*/ 0, // EndSwitchType ++/*581870*/ /*Scope*/ 92, /*->581963*/ ++/*581871*/ OPC_CheckChild2Type, MVT::i64, ++/*581873*/ OPC_SwitchType /*4 cases */, 20, MVT::v4i64,// ->581896 ++/*581876*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*581878*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::v4i64, 0/*#Ops*/, // Results = #1 ++/*581884*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/*581887*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::v4i64, 3/*#Ops*/, 1, 0, 2, ++ // Src: (insert_subvector:{ *:[v4i64] } immAllZerosV:{ *:[v4i64] }, LSX128D:{ *:[v2i64] }:$src, 0:{ *:[i64] }) - Complexity = 12 ++ // Dst: (INSERT_SUBREG:{ *:[v4i64] } (IMPLICIT_DEF:{ *:[v4i64] }), LSX128D:{ *:[v2i64] }:$src, sub_128:{ *:[i32] }) ++/*581896*/ /*SwitchType*/ 20, MVT::v8i32,// ->581918 ++/*581898*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*581900*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::v8i32, 0/*#Ops*/, // Results = #1 ++/*581906*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/*581909*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::v8i32, 3/*#Ops*/, 1, 0, 2, ++ // Src: (insert_subvector:{ *:[v8i32] } immAllZerosV:{ *:[v8i32] }, LSX128W:{ *:[v4i32] }:$src, 0:{ *:[i64] }) - Complexity = 12 ++ // Dst: (INSERT_SUBREG:{ *:[v8i32] } (IMPLICIT_DEF:{ *:[v8i32] }), LSX128W:{ *:[v4i32] }:$src, sub_128:{ *:[i32] }) ++/*581918*/ /*SwitchType*/ 20, MVT::v16i16,// ->581940 ++/*581920*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*581922*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::v16i16, 0/*#Ops*/, // Results = #1 ++/*581928*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/*581931*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::v16i16, 3/*#Ops*/, 1, 0, 2, ++ // Src: (insert_subvector:{ *:[v16i16] } immAllZerosV:{ *:[v16i16] }, LSX128H:{ *:[v8i16] }:$src, 0:{ *:[i64] }) - Complexity = 12 ++ // Dst: (INSERT_SUBREG:{ *:[v16i16] } (IMPLICIT_DEF:{ *:[v16i16] }), LSX128H:{ *:[v8i16] }:$src, sub_128:{ *:[i32] }) ++/*581940*/ /*SwitchType*/ 20, MVT::v32i8,// ->581962 ++/*581942*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*581944*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::v32i8, 0/*#Ops*/, // Results = #1 ++/*581950*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/*581953*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::v32i8, 3/*#Ops*/, 1, 0, 2, ++ // Src: (insert_subvector:{ *:[v32i8] } immAllZerosV:{ *:[v32i8] }, LSX128B:{ *:[v16i8] }:$src, 0:{ *:[i64] }) - Complexity = 12 ++ // Dst: (INSERT_SUBREG:{ *:[v32i8] } (IMPLICIT_DEF:{ *:[v32i8] }), LSX128B:{ *:[v16i8] }:$src, sub_128:{ *:[i32] }) ++/*581962*/ 0, // EndSwitchType ++/*581963*/ 0, /*End of Scope*/ ++/*581964*/ /*Scope*/ 96, /*->582061*/ ++/*581965*/ OPC_CheckChild2Integer, 2, ++/*581967*/ OPC_CheckType, MVT::v4i64, ++/*581969*/ OPC_Scope, 44, /*->582015*/ // 2 children in Scope ++/*581971*/ OPC_CheckChild2Type, MVT::i32, ++/*581973*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*581975*/ OPC_EmitRegister, MVT::i64, LoongArch::ZERO_64, ++/*581978*/ OPC_EmitNode1, TARGET_VAL(LoongArch::XVREPLGR2VR_D), 0, ++ MVT::v4i64, 1/*#Ops*/, 1, // Results = #2 ++/*581985*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::v4i64, 0/*#Ops*/, // Results = #3 ++/*581991*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/*581994*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::v4i64, 3/*#Ops*/, 3, 0, 4, // Results = #5 ++/*582003*/ OPC_EmitInteger, MVT::i32, 32, ++/*582006*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPERMI_QD), 0, ++ MVT::v4i64, 3/*#Ops*/, 2, 5, 6, ++ // Src: (insert_subvector:{ *:[v4i64] } immAllZerosV:{ *:[v4i64] }, LSX128D:{ *:[v2i64] }:$src, 2:{ *:[i32] }) - Complexity = 12 ++ // Dst: (XVPERMI_QD:{ *:[v4i64] } (XVREPLGR2VR_D:{ *:[v4i64] } ZERO_64:{ *:[i64] }), (INSERT_SUBREG:{ *:[v4i64] } (IMPLICIT_DEF:{ *:[v4i64] }), LSX128D:{ *:[v2i64] }:$src, sub_128:{ *:[i32] }), 32:{ *:[i32] }) ++/*582015*/ /*Scope*/ 44, /*->582060*/ ++/*582016*/ OPC_CheckChild2Type, MVT::i64, ++/*582018*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*582020*/ OPC_EmitRegister, MVT::i64, LoongArch::ZERO_64, ++/*582023*/ OPC_EmitNode1, TARGET_VAL(LoongArch::XVREPLGR2VR_D), 0, ++ MVT::v4i64, 1/*#Ops*/, 1, // Results = #2 ++/*582030*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::v4i64, 0/*#Ops*/, // Results = #3 ++/*582036*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/*582039*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::v4i64, 3/*#Ops*/, 3, 0, 4, // Results = #5 ++/*582048*/ OPC_EmitInteger, MVT::i32, 32, ++/*582051*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPERMI_QD), 0, ++ MVT::v4i64, 3/*#Ops*/, 2, 5, 6, ++ // Src: (insert_subvector:{ *:[v4i64] } immAllZerosV:{ *:[v4i64] }, LSX128D:{ *:[v2i64] }:$src, 2:{ *:[i64] }) - Complexity = 12 ++ // Dst: (XVPERMI_QD:{ *:[v4i64] } (XVREPLGR2VR_D:{ *:[v4i64] } ZERO_64:{ *:[i64] }), (INSERT_SUBREG:{ *:[v4i64] } (IMPLICIT_DEF:{ *:[v4i64] }), LSX128D:{ *:[v2i64] }:$src, sub_128:{ *:[i32] }), 32:{ *:[i32] }) ++/*582060*/ 0, /*End of Scope*/ ++/*582061*/ /*Scope*/ 96, /*->582158*/ ++/*582062*/ OPC_CheckChild2Integer, 4, ++/*582064*/ OPC_CheckType, MVT::v8i32, ++/*582066*/ OPC_Scope, 44, /*->582112*/ // 2 children in Scope ++/*582068*/ OPC_CheckChild2Type, MVT::i32, ++/*582070*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*582072*/ OPC_EmitRegister, MVT::i32, LoongArch::ZERO, ++/*582075*/ OPC_EmitNode1, TARGET_VAL(LoongArch::XVREPLGR2VR_W), 0, ++ MVT::v8i32, 1/*#Ops*/, 1, // Results = #2 ++/*582082*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::v8i32, 0/*#Ops*/, // Results = #3 ++/*582088*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/*582091*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::v8i32, 3/*#Ops*/, 3, 0, 4, // Results = #5 ++/*582100*/ OPC_EmitInteger, MVT::i32, 32, ++/*582103*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPERMI_QW), 0, ++ MVT::v8i32, 3/*#Ops*/, 2, 5, 6, ++ // Src: (insert_subvector:{ *:[v8i32] } immAllZerosV:{ *:[v8i32] }, LSX128W:{ *:[v4i32] }:$src, 4:{ *:[i32] }) - Complexity = 12 ++ // Dst: (XVPERMI_QW:{ *:[v8i32] } (XVREPLGR2VR_W:{ *:[v8i32] } ZERO:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i32] } (IMPLICIT_DEF:{ *:[v8i32] }), LSX128W:{ *:[v4i32] }:$src, sub_128:{ *:[i32] }), 32:{ *:[i32] }) ++/*582112*/ /*Scope*/ 44, /*->582157*/ ++/*582113*/ OPC_CheckChild2Type, MVT::i64, ++/*582115*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*582117*/ OPC_EmitRegister, MVT::i32, LoongArch::ZERO, ++/*582120*/ OPC_EmitNode1, TARGET_VAL(LoongArch::XVREPLGR2VR_W), 0, ++ MVT::v8i32, 1/*#Ops*/, 1, // Results = #2 ++/*582127*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::v8i32, 0/*#Ops*/, // Results = #3 ++/*582133*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/*582136*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::v8i32, 3/*#Ops*/, 3, 0, 4, // Results = #5 ++/*582145*/ OPC_EmitInteger, MVT::i32, 32, ++/*582148*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPERMI_QW), 0, ++ MVT::v8i32, 3/*#Ops*/, 2, 5, 6, ++ // Src: (insert_subvector:{ *:[v8i32] } immAllZerosV:{ *:[v8i32] }, LSX128W:{ *:[v4i32] }:$src, 4:{ *:[i64] }) - Complexity = 12 ++ // Dst: (XVPERMI_QW:{ *:[v8i32] } (XVREPLGR2VR_W:{ *:[v8i32] } ZERO:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i32] } (IMPLICIT_DEF:{ *:[v8i32] }), LSX128W:{ *:[v4i32] }:$src, sub_128:{ *:[i32] }), 32:{ *:[i32] }) ++/*582157*/ 0, /*End of Scope*/ ++/*582158*/ /*Scope*/ 96, /*->582255*/ ++/*582159*/ OPC_CheckChild2Integer, 8, ++/*582161*/ OPC_CheckType, MVT::v16i16, ++/*582163*/ OPC_Scope, 44, /*->582209*/ // 2 children in Scope ++/*582165*/ OPC_CheckChild2Type, MVT::i32, ++/*582167*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*582169*/ OPC_EmitRegister, MVT::i32, LoongArch::ZERO, ++/*582172*/ OPC_EmitNode1, TARGET_VAL(LoongArch::XVREPLGR2VR_H), 0, ++ MVT::v16i16, 1/*#Ops*/, 1, // Results = #2 ++/*582179*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::v16i16, 0/*#Ops*/, // Results = #3 ++/*582185*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/*582188*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::v16i16, 3/*#Ops*/, 3, 0, 4, // Results = #5 ++/*582197*/ OPC_EmitInteger, MVT::i32, 32, ++/*582200*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPERMI_QH), 0, ++ MVT::v16i16, 3/*#Ops*/, 2, 5, 6, ++ // Src: (insert_subvector:{ *:[v16i16] } immAllZerosV:{ *:[v16i16] }, LSX128H:{ *:[v8i16] }:$src, 8:{ *:[i32] }) - Complexity = 12 ++ // Dst: (XVPERMI_QH:{ *:[v16i16] } (XVREPLGR2VR_H:{ *:[v16i16] } ZERO:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i16] } (IMPLICIT_DEF:{ *:[v16i16] }), LSX128H:{ *:[v8i16] }:$src, sub_128:{ *:[i32] }), 32:{ *:[i32] }) ++/*582209*/ /*Scope*/ 44, /*->582254*/ ++/*582210*/ OPC_CheckChild2Type, MVT::i64, ++/*582212*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*582214*/ OPC_EmitRegister, MVT::i32, LoongArch::ZERO, ++/*582217*/ OPC_EmitNode1, TARGET_VAL(LoongArch::XVREPLGR2VR_H), 0, ++ MVT::v16i16, 1/*#Ops*/, 1, // Results = #2 ++/*582224*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::v16i16, 0/*#Ops*/, // Results = #3 ++/*582230*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/*582233*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::v16i16, 3/*#Ops*/, 3, 0, 4, // Results = #5 ++/*582242*/ OPC_EmitInteger, MVT::i32, 32, ++/*582245*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPERMI_QH), 0, ++ MVT::v16i16, 3/*#Ops*/, 2, 5, 6, ++ // Src: (insert_subvector:{ *:[v16i16] } immAllZerosV:{ *:[v16i16] }, LSX128H:{ *:[v8i16] }:$src, 8:{ *:[i64] }) - Complexity = 12 ++ // Dst: (XVPERMI_QH:{ *:[v16i16] } (XVREPLGR2VR_H:{ *:[v16i16] } ZERO:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i16] } (IMPLICIT_DEF:{ *:[v16i16] }), LSX128H:{ *:[v8i16] }:$src, sub_128:{ *:[i32] }), 32:{ *:[i32] }) ++/*582254*/ 0, /*End of Scope*/ ++/*582255*/ /*Scope*/ 96, /*->582352*/ ++/*582256*/ OPC_CheckChild2Integer, 16, ++/*582258*/ OPC_CheckType, MVT::v32i8, ++/*582260*/ OPC_Scope, 44, /*->582306*/ // 2 children in Scope ++/*582262*/ OPC_CheckChild2Type, MVT::i32, ++/*582264*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*582266*/ OPC_EmitRegister, MVT::i32, LoongArch::ZERO, ++/*582269*/ OPC_EmitNode1, TARGET_VAL(LoongArch::XVREPLGR2VR_B), 0, ++ MVT::v32i8, 1/*#Ops*/, 1, // Results = #2 ++/*582276*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::v32i8, 0/*#Ops*/, // Results = #3 ++/*582282*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/*582285*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::v32i8, 3/*#Ops*/, 3, 0, 4, // Results = #5 ++/*582294*/ OPC_EmitInteger, MVT::i32, 32, ++/*582297*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPERMI_Q), 0, ++ MVT::v32i8, 3/*#Ops*/, 2, 5, 6, ++ // Src: (insert_subvector:{ *:[v32i8] } immAllZerosV:{ *:[v32i8] }, LSX128B:{ *:[v16i8] }:$src, 16:{ *:[i32] }) - Complexity = 12 ++ // Dst: (XVPERMI_Q:{ *:[v32i8] } (XVREPLGR2VR_B:{ *:[v32i8] } ZERO:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i8] } (IMPLICIT_DEF:{ *:[v32i8] }), LSX128B:{ *:[v16i8] }:$src, sub_128:{ *:[i32] }), 32:{ *:[i32] }) ++/*582306*/ /*Scope*/ 44, /*->582351*/ ++/*582307*/ OPC_CheckChild2Type, MVT::i64, ++/*582309*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*582311*/ OPC_EmitRegister, MVT::i32, LoongArch::ZERO, ++/*582314*/ OPC_EmitNode1, TARGET_VAL(LoongArch::XVREPLGR2VR_B), 0, ++ MVT::v32i8, 1/*#Ops*/, 1, // Results = #2 ++/*582321*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::v32i8, 0/*#Ops*/, // Results = #3 ++/*582327*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/*582330*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::v32i8, 3/*#Ops*/, 3, 0, 4, // Results = #5 ++/*582339*/ OPC_EmitInteger, MVT::i32, 32, ++/*582342*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPERMI_Q), 0, ++ MVT::v32i8, 3/*#Ops*/, 2, 5, 6, ++ // Src: (insert_subvector:{ *:[v32i8] } immAllZerosV:{ *:[v32i8] }, LSX128B:{ *:[v16i8] }:$src, 16:{ *:[i64] }) - Complexity = 12 ++ // Dst: (XVPERMI_Q:{ *:[v32i8] } (XVREPLGR2VR_B:{ *:[v32i8] } ZERO:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i8] } (IMPLICIT_DEF:{ *:[v32i8] }), LSX128B:{ *:[v16i8] }:$src, sub_128:{ *:[i32] }), 32:{ *:[i32] }) ++/*582351*/ 0, /*End of Scope*/ ++/*582352*/ 0, /*End of Scope*/ ++/*582353*/ /*Scope*/ 43|128,4/*555*/, /*->582910*/ ++/*582355*/ OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF), ++/*582358*/ OPC_MoveParent, ++/*582359*/ OPC_RecordChild1, // #0 = $src ++/*582360*/ OPC_Scope, 62|128,1/*190*/, /*->582553*/ // 5 children in Scope ++/*582363*/ OPC_CheckChild2Integer, 0, ++/*582365*/ OPC_Scope, 92, /*->582459*/ // 2 children in Scope ++/*582367*/ OPC_CheckChild2Type, MVT::i32, ++/*582369*/ OPC_SwitchType /*4 cases */, 20, MVT::v4i64,// ->582392 ++/*582372*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*582374*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::v4i64, 0/*#Ops*/, // Results = #1 ++/*582380*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/*582383*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::v4i64, 3/*#Ops*/, 1, 0, 2, ++ // Src: (insert_subvector:{ *:[v4i64] } (undef:{ *:[v4i64] }), LSX128D:{ *:[v2i64] }:$src, 0:{ *:[i32] }) - Complexity = 11 ++ // Dst: (INSERT_SUBREG:{ *:[v4i64] } (IMPLICIT_DEF:{ *:[v4i64] }), LSX128D:{ *:[v2i64] }:$src, sub_128:{ *:[i32] }) ++/*582392*/ /*SwitchType*/ 20, MVT::v8i32,// ->582414 ++/*582394*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*582396*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::v8i32, 0/*#Ops*/, // Results = #1 ++/*582402*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/*582405*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::v8i32, 3/*#Ops*/, 1, 0, 2, ++ // Src: (insert_subvector:{ *:[v8i32] } (undef:{ *:[v8i32] }), LSX128W:{ *:[v4i32] }:$src, 0:{ *:[i32] }) - Complexity = 11 ++ // Dst: (INSERT_SUBREG:{ *:[v8i32] } (IMPLICIT_DEF:{ *:[v8i32] }), LSX128W:{ *:[v4i32] }:$src, sub_128:{ *:[i32] }) ++/*582414*/ /*SwitchType*/ 20, MVT::v16i16,// ->582436 ++/*582416*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*582418*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::v16i16, 0/*#Ops*/, // Results = #1 ++/*582424*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/*582427*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::v16i16, 3/*#Ops*/, 1, 0, 2, ++ // Src: (insert_subvector:{ *:[v16i16] } (undef:{ *:[v16i16] }), LSX128H:{ *:[v8i16] }:$src, 0:{ *:[i32] }) - Complexity = 11 ++ // Dst: (INSERT_SUBREG:{ *:[v16i16] } (IMPLICIT_DEF:{ *:[v16i16] }), LSX128H:{ *:[v8i16] }:$src, sub_128:{ *:[i32] }) ++/*582436*/ /*SwitchType*/ 20, MVT::v32i8,// ->582458 ++/*582438*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*582440*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::v32i8, 0/*#Ops*/, // Results = #1 ++/*582446*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/*582449*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::v32i8, 3/*#Ops*/, 1, 0, 2, ++ // Src: (insert_subvector:{ *:[v32i8] } (undef:{ *:[v32i8] }), LSX128B:{ *:[v16i8] }:$src, 0:{ *:[i32] }) - Complexity = 11 ++ // Dst: (INSERT_SUBREG:{ *:[v32i8] } (IMPLICIT_DEF:{ *:[v32i8] }), LSX128B:{ *:[v16i8] }:$src, sub_128:{ *:[i32] }) ++/*582458*/ 0, // EndSwitchType ++/*582459*/ /*Scope*/ 92, /*->582552*/ ++/*582460*/ OPC_CheckChild2Type, MVT::i64, ++/*582462*/ OPC_SwitchType /*4 cases */, 20, MVT::v4i64,// ->582485 ++/*582465*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*582467*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::v4i64, 0/*#Ops*/, // Results = #1 ++/*582473*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/*582476*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::v4i64, 3/*#Ops*/, 1, 0, 2, ++ // Src: (insert_subvector:{ *:[v4i64] } (undef:{ *:[v4i64] }), LSX128D:{ *:[v2i64] }:$src, 0:{ *:[i64] }) - Complexity = 11 ++ // Dst: (INSERT_SUBREG:{ *:[v4i64] } (IMPLICIT_DEF:{ *:[v4i64] }), LSX128D:{ *:[v2i64] }:$src, sub_128:{ *:[i32] }) ++/*582485*/ /*SwitchType*/ 20, MVT::v8i32,// ->582507 ++/*582487*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*582489*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::v8i32, 0/*#Ops*/, // Results = #1 ++/*582495*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/*582498*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::v8i32, 3/*#Ops*/, 1, 0, 2, ++ // Src: (insert_subvector:{ *:[v8i32] } (undef:{ *:[v8i32] }), LSX128W:{ *:[v4i32] }:$src, 0:{ *:[i64] }) - Complexity = 11 ++ // Dst: (INSERT_SUBREG:{ *:[v8i32] } (IMPLICIT_DEF:{ *:[v8i32] }), LSX128W:{ *:[v4i32] }:$src, sub_128:{ *:[i32] }) ++/*582507*/ /*SwitchType*/ 20, MVT::v16i16,// ->582529 ++/*582509*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*582511*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::v16i16, 0/*#Ops*/, // Results = #1 ++/*582517*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/*582520*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::v16i16, 3/*#Ops*/, 1, 0, 2, ++ // Src: (insert_subvector:{ *:[v16i16] } (undef:{ *:[v16i16] }), LSX128H:{ *:[v8i16] }:$src, 0:{ *:[i64] }) - Complexity = 11 ++ // Dst: (INSERT_SUBREG:{ *:[v16i16] } (IMPLICIT_DEF:{ *:[v16i16] }), LSX128H:{ *:[v8i16] }:$src, sub_128:{ *:[i32] }) ++/*582529*/ /*SwitchType*/ 20, MVT::v32i8,// ->582551 ++/*582531*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*582533*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::v32i8, 0/*#Ops*/, // Results = #1 ++/*582539*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/*582542*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::v32i8, 3/*#Ops*/, 1, 0, 2, ++ // Src: (insert_subvector:{ *:[v32i8] } (undef:{ *:[v32i8] }), LSX128B:{ *:[v16i8] }:$src, 0:{ *:[i64] }) - Complexity = 11 ++ // Dst: (INSERT_SUBREG:{ *:[v32i8] } (IMPLICIT_DEF:{ *:[v32i8] }), LSX128B:{ *:[v16i8] }:$src, sub_128:{ *:[i32] }) ++/*582551*/ 0, // EndSwitchType ++/*582552*/ 0, /*End of Scope*/ ++/*582553*/ /*Scope*/ 88, /*->582642*/ ++/*582554*/ OPC_CheckChild2Integer, 2, ++/*582556*/ OPC_CheckType, MVT::v4i64, ++/*582558*/ OPC_Scope, 40, /*->582600*/ // 2 children in Scope ++/*582560*/ OPC_CheckChild2Type, MVT::i32, ++/*582562*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*582564*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::v4i64, 0/*#Ops*/, // Results = #1 ++/*582570*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::v4i64, 0/*#Ops*/, // Results = #2 ++/*582576*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/*582579*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::v4i64, 3/*#Ops*/, 2, 0, 3, // Results = #4 ++/*582588*/ OPC_EmitInteger, MVT::i32, 32, ++/*582591*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPERMI_QD), 0, ++ MVT::v4i64, 3/*#Ops*/, 1, 4, 5, ++ // Src: (insert_subvector:{ *:[v4i64] } (undef:{ *:[v4i64] }), LSX128D:{ *:[v2i64] }:$src, 2:{ *:[i32] }) - Complexity = 11 ++ // Dst: (XVPERMI_QD:{ *:[v4i64] } (IMPLICIT_DEF:{ *:[v4i64] }), (INSERT_SUBREG:{ *:[v4i64] } (IMPLICIT_DEF:{ *:[v4i64] }), LSX128D:{ *:[v2i64] }:$src, sub_128:{ *:[i32] }), 32:{ *:[i32] }) ++/*582600*/ /*Scope*/ 40, /*->582641*/ ++/*582601*/ OPC_CheckChild2Type, MVT::i64, ++/*582603*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*582605*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::v4i64, 0/*#Ops*/, // Results = #1 ++/*582611*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::v4i64, 0/*#Ops*/, // Results = #2 ++/*582617*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/*582620*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::v4i64, 3/*#Ops*/, 2, 0, 3, // Results = #4 ++/*582629*/ OPC_EmitInteger, MVT::i32, 32, ++/*582632*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPERMI_QD), 0, ++ MVT::v4i64, 3/*#Ops*/, 1, 4, 5, ++ // Src: (insert_subvector:{ *:[v4i64] } (undef:{ *:[v4i64] }), LSX128D:{ *:[v2i64] }:$src, 2:{ *:[i64] }) - Complexity = 11 ++ // Dst: (XVPERMI_QD:{ *:[v4i64] } (IMPLICIT_DEF:{ *:[v4i64] }), (INSERT_SUBREG:{ *:[v4i64] } (IMPLICIT_DEF:{ *:[v4i64] }), LSX128D:{ *:[v2i64] }:$src, sub_128:{ *:[i32] }), 32:{ *:[i32] }) ++/*582641*/ 0, /*End of Scope*/ ++/*582642*/ /*Scope*/ 88, /*->582731*/ ++/*582643*/ OPC_CheckChild2Integer, 4, ++/*582645*/ OPC_CheckType, MVT::v8i32, ++/*582647*/ OPC_Scope, 40, /*->582689*/ // 2 children in Scope ++/*582649*/ OPC_CheckChild2Type, MVT::i32, ++/*582651*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*582653*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::v8i32, 0/*#Ops*/, // Results = #1 ++/*582659*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::v8i32, 0/*#Ops*/, // Results = #2 ++/*582665*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/*582668*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::v8i32, 3/*#Ops*/, 2, 0, 3, // Results = #4 ++/*582677*/ OPC_EmitInteger, MVT::i32, 32, ++/*582680*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPERMI_QW), 0, ++ MVT::v8i32, 3/*#Ops*/, 1, 4, 5, ++ // Src: (insert_subvector:{ *:[v8i32] } (undef:{ *:[v8i32] }), LSX128W:{ *:[v4i32] }:$src, 4:{ *:[i32] }) - Complexity = 11 ++ // Dst: (XVPERMI_QW:{ *:[v8i32] } (IMPLICIT_DEF:{ *:[v8i32] }), (INSERT_SUBREG:{ *:[v8i32] } (IMPLICIT_DEF:{ *:[v8i32] }), LSX128W:{ *:[v4i32] }:$src, sub_128:{ *:[i32] }), 32:{ *:[i32] }) ++/*582689*/ /*Scope*/ 40, /*->582730*/ ++/*582690*/ OPC_CheckChild2Type, MVT::i64, ++/*582692*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*582694*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::v8i32, 0/*#Ops*/, // Results = #1 ++/*582700*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::v8i32, 0/*#Ops*/, // Results = #2 ++/*582706*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/*582709*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::v8i32, 3/*#Ops*/, 2, 0, 3, // Results = #4 ++/*582718*/ OPC_EmitInteger, MVT::i32, 32, ++/*582721*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPERMI_QW), 0, ++ MVT::v8i32, 3/*#Ops*/, 1, 4, 5, ++ // Src: (insert_subvector:{ *:[v8i32] } (undef:{ *:[v8i32] }), LSX128W:{ *:[v4i32] }:$src, 4:{ *:[i64] }) - Complexity = 11 ++ // Dst: (XVPERMI_QW:{ *:[v8i32] } (IMPLICIT_DEF:{ *:[v8i32] }), (INSERT_SUBREG:{ *:[v8i32] } (IMPLICIT_DEF:{ *:[v8i32] }), LSX128W:{ *:[v4i32] }:$src, sub_128:{ *:[i32] }), 32:{ *:[i32] }) ++/*582730*/ 0, /*End of Scope*/ ++/*582731*/ /*Scope*/ 88, /*->582820*/ ++/*582732*/ OPC_CheckChild2Integer, 8, ++/*582734*/ OPC_CheckType, MVT::v16i16, ++/*582736*/ OPC_Scope, 40, /*->582778*/ // 2 children in Scope ++/*582738*/ OPC_CheckChild2Type, MVT::i32, ++/*582740*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*582742*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::v16i16, 0/*#Ops*/, // Results = #1 ++/*582748*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::v16i16, 0/*#Ops*/, // Results = #2 ++/*582754*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/*582757*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::v16i16, 3/*#Ops*/, 2, 0, 3, // Results = #4 ++/*582766*/ OPC_EmitInteger, MVT::i32, 32, ++/*582769*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPERMI_QH), 0, ++ MVT::v16i16, 3/*#Ops*/, 1, 4, 5, ++ // Src: (insert_subvector:{ *:[v16i16] } (undef:{ *:[v16i16] }), LSX128H:{ *:[v8i16] }:$src, 8:{ *:[i32] }) - Complexity = 11 ++ // Dst: (XVPERMI_QH:{ *:[v16i16] } (IMPLICIT_DEF:{ *:[v16i16] }), (INSERT_SUBREG:{ *:[v16i16] } (IMPLICIT_DEF:{ *:[v16i16] }), LSX128H:{ *:[v8i16] }:$src, sub_128:{ *:[i32] }), 32:{ *:[i32] }) ++/*582778*/ /*Scope*/ 40, /*->582819*/ ++/*582779*/ OPC_CheckChild2Type, MVT::i64, ++/*582781*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*582783*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::v16i16, 0/*#Ops*/, // Results = #1 ++/*582789*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::v16i16, 0/*#Ops*/, // Results = #2 ++/*582795*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/*582798*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::v16i16, 3/*#Ops*/, 2, 0, 3, // Results = #4 ++/*582807*/ OPC_EmitInteger, MVT::i32, 32, ++/*582810*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPERMI_QH), 0, ++ MVT::v16i16, 3/*#Ops*/, 1, 4, 5, ++ // Src: (insert_subvector:{ *:[v16i16] } (undef:{ *:[v16i16] }), LSX128H:{ *:[v8i16] }:$src, 8:{ *:[i64] }) - Complexity = 11 ++ // Dst: (XVPERMI_QH:{ *:[v16i16] } (IMPLICIT_DEF:{ *:[v16i16] }), (INSERT_SUBREG:{ *:[v16i16] } (IMPLICIT_DEF:{ *:[v16i16] }), LSX128H:{ *:[v8i16] }:$src, sub_128:{ *:[i32] }), 32:{ *:[i32] }) ++/*582819*/ 0, /*End of Scope*/ ++/*582820*/ /*Scope*/ 88, /*->582909*/ ++/*582821*/ OPC_CheckChild2Integer, 16, ++/*582823*/ OPC_CheckType, MVT::v32i8, ++/*582825*/ OPC_Scope, 40, /*->582867*/ // 2 children in Scope ++/*582827*/ OPC_CheckChild2Type, MVT::i32, ++/*582829*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*582831*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::v32i8, 0/*#Ops*/, // Results = #1 ++/*582837*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::v32i8, 0/*#Ops*/, // Results = #2 ++/*582843*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/*582846*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::v32i8, 3/*#Ops*/, 2, 0, 3, // Results = #4 ++/*582855*/ OPC_EmitInteger, MVT::i32, 32, ++/*582858*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPERMI_Q), 0, ++ MVT::v32i8, 3/*#Ops*/, 1, 4, 5, ++ // Src: (insert_subvector:{ *:[v32i8] } (undef:{ *:[v32i8] }), LSX128B:{ *:[v16i8] }:$src, 16:{ *:[i32] }) - Complexity = 11 ++ // Dst: (XVPERMI_Q:{ *:[v32i8] } (IMPLICIT_DEF:{ *:[v32i8] }), (INSERT_SUBREG:{ *:[v32i8] } (IMPLICIT_DEF:{ *:[v32i8] }), LSX128B:{ *:[v16i8] }:$src, sub_128:{ *:[i32] }), 32:{ *:[i32] }) ++/*582867*/ /*Scope*/ 40, /*->582908*/ ++/*582868*/ OPC_CheckChild2Type, MVT::i64, ++/*582870*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*582872*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::v32i8, 0/*#Ops*/, // Results = #1 ++/*582878*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0, ++ MVT::v32i8, 0/*#Ops*/, // Results = #2 ++/*582884*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/*582887*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0, ++ MVT::v32i8, 3/*#Ops*/, 2, 0, 3, // Results = #4 ++/*582896*/ OPC_EmitInteger, MVT::i32, 32, ++/*582899*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPERMI_Q), 0, ++ MVT::v32i8, 3/*#Ops*/, 1, 4, 5, ++ // Src: (insert_subvector:{ *:[v32i8] } (undef:{ *:[v32i8] }), LSX128B:{ *:[v16i8] }:$src, 16:{ *:[i64] }) - Complexity = 11 ++ // Dst: (XVPERMI_Q:{ *:[v32i8] } (IMPLICIT_DEF:{ *:[v32i8] }), (INSERT_SUBREG:{ *:[v32i8] } (IMPLICIT_DEF:{ *:[v32i8] }), LSX128B:{ *:[v16i8] }:$src, sub_128:{ *:[i32] }), 32:{ *:[i32] }) ++/*582908*/ 0, /*End of Scope*/ ++/*582909*/ 0, /*End of Scope*/ ++/*582910*/ 0, /*End of Scope*/ ++/*582911*/ /*SwitchOpcode*/ 44|128,2/*300*/, TARGET_VAL(ISD::UMIN),// ->583215 ++/*582915*/ OPC_RecordChild0, // #0 = $vj ++/*582916*/ OPC_RecordChild1, // #1 = $ui5 ++/*582917*/ OPC_SwitchType /*8 cases */, 35, MVT::v16i8,// ->582955 ++/*582920*/ OPC_Scope, 11, /*->582933*/ // 3 children in Scope ++/*582922*/ OPC_CheckComplexPat, /*CP*/6, /*#*/1, // selectVSplatUimm5:$ui5 #2 ++/*582925*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMINI_BU), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 2, ++ // Src: (umin:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, vsplati8_uimm5:{ *:[v16i8] }:$ui5) - Complexity = 9 ++ // Dst: (VMINI_BU:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, vsplati8_uimm5:{ *:[v16i8] }:$ui5) ++/*582933*/ /*Scope*/ 11, /*->582945*/ ++/*582934*/ OPC_CheckComplexPat, /*CP*/6, /*#*/0, // selectVSplatUimm5:$ui5 #2 ++/*582937*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMINI_BU), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 2, ++ // Src: (umin:{ *:[v16i8] } vsplati8_uimm5:{ *:[v16i8] }:$ui5, LSX128BOpnd:{ *:[v16i8] }:$vj) - Complexity = 9 ++ // Dst: (VMINI_BU:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, vsplati8_uimm5:{ *:[v16i8] }:$ui5) ++/*582945*/ /*Scope*/ 8, /*->582954*/ ++/*582946*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMIN_BU), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (umin:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) - Complexity = 3 ++ // Dst: (VMIN_BU:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/*582954*/ 0, /*End of Scope*/ ++/*582955*/ /*SwitchType*/ 35, MVT::v8i16,// ->582992 ++/*582957*/ OPC_Scope, 11, /*->582970*/ // 3 children in Scope ++/*582959*/ OPC_CheckComplexPat, /*CP*/8, /*#*/1, // selectVSplatUimm5:$ui5 #2 ++/*582962*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMINI_HU), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 2, ++ // Src: (umin:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, vsplati16_uimm5:{ *:[v8i16] }:$ui5) - Complexity = 9 ++ // Dst: (VMINI_HU:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, vsplati16_uimm5:{ *:[v8i16] }:$ui5) ++/*582970*/ /*Scope*/ 11, /*->582982*/ ++/*582971*/ OPC_CheckComplexPat, /*CP*/8, /*#*/0, // selectVSplatUimm5:$ui5 #2 ++/*582974*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMINI_HU), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 2, ++ // Src: (umin:{ *:[v8i16] } vsplati16_uimm5:{ *:[v8i16] }:$ui5, LSX128HOpnd:{ *:[v8i16] }:$vj) - Complexity = 9 ++ // Dst: (VMINI_HU:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, vsplati16_uimm5:{ *:[v8i16] }:$ui5) ++/*582982*/ /*Scope*/ 8, /*->582991*/ ++/*582983*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMIN_HU), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (umin:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 3 ++ // Dst: (VMIN_HU:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/*582991*/ 0, /*End of Scope*/ ++/*582992*/ /*SwitchType*/ 35, MVT::v4i32,// ->583029 ++/*582994*/ OPC_Scope, 11, /*->583007*/ // 3 children in Scope ++/*582996*/ OPC_CheckComplexPat, /*CP*/10, /*#*/1, // selectVSplatUimm5:$ui5 #2 ++/*582999*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMINI_WU), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 2, ++ // Src: (umin:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, vsplati32_uimm5:{ *:[v4i32] }:$ui5) - Complexity = 9 ++ // Dst: (VMINI_WU:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, vsplati32_uimm5:{ *:[v4i32] }:$ui5) ++/*583007*/ /*Scope*/ 11, /*->583019*/ ++/*583008*/ OPC_CheckComplexPat, /*CP*/10, /*#*/0, // selectVSplatUimm5:$ui5 #2 ++/*583011*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMINI_WU), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 2, ++ // Src: (umin:{ *:[v4i32] } vsplati32_uimm5:{ *:[v4i32] }:$ui5, LSX128WOpnd:{ *:[v4i32] }:$vj) - Complexity = 9 ++ // Dst: (VMINI_WU:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, vsplati32_uimm5:{ *:[v4i32] }:$ui5) ++/*583019*/ /*Scope*/ 8, /*->583028*/ ++/*583020*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMIN_WU), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (umin:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 3 ++ // Dst: (VMIN_WU:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/*583028*/ 0, /*End of Scope*/ ++/*583029*/ /*SwitchType*/ 35, MVT::v2i64,// ->583066 ++/*583031*/ OPC_Scope, 11, /*->583044*/ // 3 children in Scope ++/*583033*/ OPC_CheckComplexPat, /*CP*/12, /*#*/1, // selectVSplatUimm5:$ui5 #2 ++/*583036*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMINI_DU), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 2, ++ // Src: (umin:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, vsplati64_uimm5:{ *:[v2i64] }:$ui5) - Complexity = 9 ++ // Dst: (VMINI_DU:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, vsplati64_uimm5:{ *:[v2i64] }:$ui5) ++/*583044*/ /*Scope*/ 11, /*->583056*/ ++/*583045*/ OPC_CheckComplexPat, /*CP*/12, /*#*/0, // selectVSplatUimm5:$ui5 #2 ++/*583048*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMINI_DU), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 2, ++ // Src: (umin:{ *:[v2i64] } vsplati64_uimm5:{ *:[v2i64] }:$ui5, LSX128DOpnd:{ *:[v2i64] }:$vj) - Complexity = 9 ++ // Dst: (VMINI_DU:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, vsplati64_uimm5:{ *:[v2i64] }:$ui5) ++/*583056*/ /*Scope*/ 8, /*->583065*/ ++/*583057*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMIN_DU), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (umin:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 3 ++ // Dst: (VMIN_DU:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/*583065*/ 0, /*End of Scope*/ ++/*583066*/ /*SwitchType*/ 35, MVT::v32i8,// ->583103 ++/*583068*/ OPC_Scope, 11, /*->583081*/ // 3 children in Scope ++/*583070*/ OPC_CheckComplexPat, /*CP*/14, /*#*/1, // selectVSplatUimm5:$ui5 #2 ++/*583073*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMINI_BU_N), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 2, ++ // Src: (umin:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, xvsplati8_uimm5:{ *:[v32i8] }:$ui5) - Complexity = 9 ++ // Dst: (XVMINI_BU_N:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, xvsplati8_uimm5:{ *:[v32i8] }:$ui5) ++/*583081*/ /*Scope*/ 11, /*->583093*/ ++/*583082*/ OPC_CheckComplexPat, /*CP*/14, /*#*/0, // selectVSplatUimm5:$ui5 #2 ++/*583085*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMINI_BU_N), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 2, ++ // Src: (umin:{ *:[v32i8] } xvsplati8_uimm5:{ *:[v32i8] }:$ui5, LASX256BOpnd:{ *:[v32i8] }:$xj) - Complexity = 9 ++ // Dst: (XVMINI_BU_N:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, xvsplati8_uimm5:{ *:[v32i8] }:$ui5) ++/*583093*/ /*Scope*/ 8, /*->583102*/ ++/*583094*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMIN_BU), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (umin:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 3 ++ // Dst: (XVMIN_BU:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/*583102*/ 0, /*End of Scope*/ ++/*583103*/ /*SwitchType*/ 35, MVT::v16i16,// ->583140 ++/*583105*/ OPC_Scope, 11, /*->583118*/ // 3 children in Scope ++/*583107*/ OPC_CheckComplexPat, /*CP*/16, /*#*/1, // selectVSplatUimm5:$ui5 #2 ++/*583110*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMINI_HU_N), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 2, ++ // Src: (umin:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, xvsplati16_uimm5:{ *:[v16i16] }:$ui5) - Complexity = 9 ++ // Dst: (XVMINI_HU_N:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, xvsplati16_uimm5:{ *:[v16i16] }:$ui5) ++/*583118*/ /*Scope*/ 11, /*->583130*/ ++/*583119*/ OPC_CheckComplexPat, /*CP*/16, /*#*/0, // selectVSplatUimm5:$ui5 #2 ++/*583122*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMINI_HU_N), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 2, ++ // Src: (umin:{ *:[v16i16] } xvsplati16_uimm5:{ *:[v16i16] }:$ui5, LASX256HOpnd:{ *:[v16i16] }:$xj) - Complexity = 9 ++ // Dst: (XVMINI_HU_N:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, xvsplati16_uimm5:{ *:[v16i16] }:$ui5) ++/*583130*/ /*Scope*/ 8, /*->583139*/ ++/*583131*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMIN_HU), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (umin:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 3 ++ // Dst: (XVMIN_HU:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/*583139*/ 0, /*End of Scope*/ ++/*583140*/ /*SwitchType*/ 35, MVT::v8i32,// ->583177 ++/*583142*/ OPC_Scope, 11, /*->583155*/ // 3 children in Scope ++/*583144*/ OPC_CheckComplexPat, /*CP*/18, /*#*/1, // selectVSplatUimm5:$ui5 #2 ++/*583147*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMINI_WU_N), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 2, ++ // Src: (umin:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, xvsplati32_uimm5:{ *:[v8i32] }:$ui5) - Complexity = 9 ++ // Dst: (XVMINI_WU_N:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, xvsplati32_uimm5:{ *:[v8i32] }:$ui5) ++/*583155*/ /*Scope*/ 11, /*->583167*/ ++/*583156*/ OPC_CheckComplexPat, /*CP*/18, /*#*/0, // selectVSplatUimm5:$ui5 #2 ++/*583159*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMINI_WU_N), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 2, ++ // Src: (umin:{ *:[v8i32] } xvsplati32_uimm5:{ *:[v8i32] }:$ui5, LASX256WOpnd:{ *:[v8i32] }:$xj) - Complexity = 9 ++ // Dst: (XVMINI_WU_N:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, xvsplati32_uimm5:{ *:[v8i32] }:$ui5) ++/*583167*/ /*Scope*/ 8, /*->583176*/ ++/*583168*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMIN_WU), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (umin:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 3 ++ // Dst: (XVMIN_WU:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/*583176*/ 0, /*End of Scope*/ ++/*583177*/ /*SwitchType*/ 35, MVT::v4i64,// ->583214 ++/*583179*/ OPC_Scope, 11, /*->583192*/ // 3 children in Scope ++/*583181*/ OPC_CheckComplexPat, /*CP*/20, /*#*/1, // selectVSplatUimm5:$ui5 #2 ++/*583184*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMINI_DU_N), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 2, ++ // Src: (umin:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, xvsplati64_uimm5:{ *:[v4i64] }:$ui5) - Complexity = 9 ++ // Dst: (XVMINI_DU_N:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, xvsplati64_uimm5:{ *:[v4i64] }:$ui5) ++/*583192*/ /*Scope*/ 11, /*->583204*/ ++/*583193*/ OPC_CheckComplexPat, /*CP*/20, /*#*/0, // selectVSplatUimm5:$ui5 #2 ++/*583196*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMINI_DU_N), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 2, ++ // Src: (umin:{ *:[v4i64] } xvsplati64_uimm5:{ *:[v4i64] }:$ui5, LASX256DOpnd:{ *:[v4i64] }:$xj) - Complexity = 9 ++ // Dst: (XVMINI_DU_N:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, xvsplati64_uimm5:{ *:[v4i64] }:$ui5) ++/*583204*/ /*Scope*/ 8, /*->583213*/ ++/*583205*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMIN_DU), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (umin:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 3 ++ // Dst: (XVMIN_DU:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/*583213*/ 0, /*End of Scope*/ ++/*583214*/ 0, // EndSwitchType ++/*583215*/ /*SwitchOpcode*/ 44|128,2/*300*/, TARGET_VAL(ISD::UMAX),// ->583519 ++/*583219*/ OPC_RecordChild0, // #0 = $vj ++/*583220*/ OPC_RecordChild1, // #1 = $ui5 ++/*583221*/ OPC_SwitchType /*8 cases */, 35, MVT::v16i8,// ->583259 ++/*583224*/ OPC_Scope, 11, /*->583237*/ // 3 children in Scope ++/*583226*/ OPC_CheckComplexPat, /*CP*/6, /*#*/1, // selectVSplatUimm5:$ui5 #2 ++/*583229*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMAXI_BU_N), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 2, ++ // Src: (umax:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, vsplati8_uimm5:{ *:[v16i8] }:$ui5) - Complexity = 9 ++ // Dst: (VMAXI_BU_N:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, vsplati8_uimm5:{ *:[v16i8] }:$ui5) ++/*583237*/ /*Scope*/ 11, /*->583249*/ ++/*583238*/ OPC_CheckComplexPat, /*CP*/6, /*#*/0, // selectVSplatUimm5:$ui5 #2 ++/*583241*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMAXI_BU_N), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 2, ++ // Src: (umax:{ *:[v16i8] } vsplati8_uimm5:{ *:[v16i8] }:$ui5, LSX128BOpnd:{ *:[v16i8] }:$vj) - Complexity = 9 ++ // Dst: (VMAXI_BU_N:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, vsplati8_uimm5:{ *:[v16i8] }:$ui5) ++/*583249*/ /*Scope*/ 8, /*->583258*/ ++/*583250*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMAX_BU), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (umax:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) - Complexity = 3 ++ // Dst: (VMAX_BU:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/*583258*/ 0, /*End of Scope*/ ++/*583259*/ /*SwitchType*/ 35, MVT::v8i16,// ->583296 ++/*583261*/ OPC_Scope, 11, /*->583274*/ // 3 children in Scope ++/*583263*/ OPC_CheckComplexPat, /*CP*/8, /*#*/1, // selectVSplatUimm5:$ui5 #2 ++/*583266*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMAXI_HU_N), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 2, ++ // Src: (umax:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, vsplati16_uimm5:{ *:[v8i16] }:$ui5) - Complexity = 9 ++ // Dst: (VMAXI_HU_N:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, vsplati16_uimm5:{ *:[v8i16] }:$ui5) ++/*583274*/ /*Scope*/ 11, /*->583286*/ ++/*583275*/ OPC_CheckComplexPat, /*CP*/8, /*#*/0, // selectVSplatUimm5:$ui5 #2 ++/*583278*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMAXI_HU_N), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 2, ++ // Src: (umax:{ *:[v8i16] } vsplati16_uimm5:{ *:[v8i16] }:$ui5, LSX128HOpnd:{ *:[v8i16] }:$vj) - Complexity = 9 ++ // Dst: (VMAXI_HU_N:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, vsplati16_uimm5:{ *:[v8i16] }:$ui5) ++/*583286*/ /*Scope*/ 8, /*->583295*/ ++/*583287*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMAX_HU), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (umax:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 3 ++ // Dst: (VMAX_HU:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/*583295*/ 0, /*End of Scope*/ ++/*583296*/ /*SwitchType*/ 35, MVT::v4i32,// ->583333 ++/*583298*/ OPC_Scope, 11, /*->583311*/ // 3 children in Scope ++/*583300*/ OPC_CheckComplexPat, /*CP*/10, /*#*/1, // selectVSplatUimm5:$ui5 #2 ++/*583303*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMAXI_WU_N), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 2, ++ // Src: (umax:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, vsplati32_uimm5:{ *:[v4i32] }:$ui5) - Complexity = 9 ++ // Dst: (VMAXI_WU_N:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, vsplati32_uimm5:{ *:[v4i32] }:$ui5) ++/*583311*/ /*Scope*/ 11, /*->583323*/ ++/*583312*/ OPC_CheckComplexPat, /*CP*/10, /*#*/0, // selectVSplatUimm5:$ui5 #2 ++/*583315*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMAXI_WU_N), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 2, ++ // Src: (umax:{ *:[v4i32] } vsplati32_uimm5:{ *:[v4i32] }:$ui5, LSX128WOpnd:{ *:[v4i32] }:$vj) - Complexity = 9 ++ // Dst: (VMAXI_WU_N:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, vsplati32_uimm5:{ *:[v4i32] }:$ui5) ++/*583323*/ /*Scope*/ 8, /*->583332*/ ++/*583324*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMAX_WU), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (umax:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 3 ++ // Dst: (VMAX_WU:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/*583332*/ 0, /*End of Scope*/ ++/*583333*/ /*SwitchType*/ 35, MVT::v2i64,// ->583370 ++/*583335*/ OPC_Scope, 11, /*->583348*/ // 3 children in Scope ++/*583337*/ OPC_CheckComplexPat, /*CP*/12, /*#*/1, // selectVSplatUimm5:$ui5 #2 ++/*583340*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMAXI_DU_N), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 2, ++ // Src: (umax:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, vsplati64_uimm5:{ *:[v2i64] }:$ui5) - Complexity = 9 ++ // Dst: (VMAXI_DU_N:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, vsplati64_uimm5:{ *:[v2i64] }:$ui5) ++/*583348*/ /*Scope*/ 11, /*->583360*/ ++/*583349*/ OPC_CheckComplexPat, /*CP*/12, /*#*/0, // selectVSplatUimm5:$ui5 #2 ++/*583352*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMAXI_DU_N), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 2, ++ // Src: (umax:{ *:[v2i64] } vsplati64_uimm5:{ *:[v2i64] }:$ui5, LSX128DOpnd:{ *:[v2i64] }:$vj) - Complexity = 9 ++ // Dst: (VMAXI_DU_N:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, vsplati64_uimm5:{ *:[v2i64] }:$ui5) ++/*583360*/ /*Scope*/ 8, /*->583369*/ ++/*583361*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMAX_DU), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (umax:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 3 ++ // Dst: (VMAX_DU:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/*583369*/ 0, /*End of Scope*/ ++/*583370*/ /*SwitchType*/ 35, MVT::v32i8,// ->583407 ++/*583372*/ OPC_Scope, 11, /*->583385*/ // 3 children in Scope ++/*583374*/ OPC_CheckComplexPat, /*CP*/14, /*#*/1, // selectVSplatUimm5:$ui5 #2 ++/*583377*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMAXI_BU_N), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 2, ++ // Src: (umax:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, xvsplati8_uimm5:{ *:[v32i8] }:$ui5) - Complexity = 9 ++ // Dst: (XVMAXI_BU_N:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, xvsplati8_uimm5:{ *:[v32i8] }:$ui5) ++/*583385*/ /*Scope*/ 11, /*->583397*/ ++/*583386*/ OPC_CheckComplexPat, /*CP*/14, /*#*/0, // selectVSplatUimm5:$ui5 #2 ++/*583389*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMAXI_BU_N), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 2, ++ // Src: (umax:{ *:[v32i8] } xvsplati8_uimm5:{ *:[v32i8] }:$ui5, LASX256BOpnd:{ *:[v32i8] }:$xj) - Complexity = 9 ++ // Dst: (XVMAXI_BU_N:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, xvsplati8_uimm5:{ *:[v32i8] }:$ui5) ++/*583397*/ /*Scope*/ 8, /*->583406*/ ++/*583398*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMAX_BU), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (umax:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 3 ++ // Dst: (XVMAX_BU:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/*583406*/ 0, /*End of Scope*/ ++/*583407*/ /*SwitchType*/ 35, MVT::v16i16,// ->583444 ++/*583409*/ OPC_Scope, 11, /*->583422*/ // 3 children in Scope ++/*583411*/ OPC_CheckComplexPat, /*CP*/16, /*#*/1, // selectVSplatUimm5:$ui5 #2 ++/*583414*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMAXI_HU_N), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 2, ++ // Src: (umax:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, xvsplati16_uimm5:{ *:[v16i16] }:$ui5) - Complexity = 9 ++ // Dst: (XVMAXI_HU_N:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, xvsplati16_uimm5:{ *:[v16i16] }:$ui5) ++/*583422*/ /*Scope*/ 11, /*->583434*/ ++/*583423*/ OPC_CheckComplexPat, /*CP*/16, /*#*/0, // selectVSplatUimm5:$ui5 #2 ++/*583426*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMAXI_HU_N), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 2, ++ // Src: (umax:{ *:[v16i16] } xvsplati16_uimm5:{ *:[v16i16] }:$ui5, LASX256HOpnd:{ *:[v16i16] }:$xj) - Complexity = 9 ++ // Dst: (XVMAXI_HU_N:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, xvsplati16_uimm5:{ *:[v16i16] }:$ui5) ++/*583434*/ /*Scope*/ 8, /*->583443*/ ++/*583435*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMAX_HU), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (umax:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 3 ++ // Dst: (XVMAX_HU:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/*583443*/ 0, /*End of Scope*/ ++/*583444*/ /*SwitchType*/ 35, MVT::v8i32,// ->583481 ++/*583446*/ OPC_Scope, 11, /*->583459*/ // 3 children in Scope ++/*583448*/ OPC_CheckComplexPat, /*CP*/18, /*#*/1, // selectVSplatUimm5:$ui5 #2 ++/*583451*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMAXI_WU_N), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 2, ++ // Src: (umax:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, xvsplati32_uimm5:{ *:[v8i32] }:$ui5) - Complexity = 9 ++ // Dst: (XVMAXI_WU_N:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, xvsplati32_uimm5:{ *:[v8i32] }:$ui5) ++/*583459*/ /*Scope*/ 11, /*->583471*/ ++/*583460*/ OPC_CheckComplexPat, /*CP*/18, /*#*/0, // selectVSplatUimm5:$ui5 #2 ++/*583463*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMAXI_WU_N), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 2, ++ // Src: (umax:{ *:[v8i32] } xvsplati32_uimm5:{ *:[v8i32] }:$ui5, LASX256WOpnd:{ *:[v8i32] }:$xj) - Complexity = 9 ++ // Dst: (XVMAXI_WU_N:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, xvsplati32_uimm5:{ *:[v8i32] }:$ui5) ++/*583471*/ /*Scope*/ 8, /*->583480*/ ++/*583472*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMAX_WU), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (umax:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 3 ++ // Dst: (XVMAX_WU:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/*583480*/ 0, /*End of Scope*/ ++/*583481*/ /*SwitchType*/ 35, MVT::v4i64,// ->583518 ++/*583483*/ OPC_Scope, 11, /*->583496*/ // 3 children in Scope ++/*583485*/ OPC_CheckComplexPat, /*CP*/20, /*#*/1, // selectVSplatUimm5:$ui5 #2 ++/*583488*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMAXI_DU_N), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 2, ++ // Src: (umax:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, xvsplati64_uimm5:{ *:[v4i64] }:$ui5) - Complexity = 9 ++ // Dst: (XVMAXI_DU_N:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, xvsplati64_uimm5:{ *:[v4i64] }:$ui5) ++/*583496*/ /*Scope*/ 11, /*->583508*/ ++/*583497*/ OPC_CheckComplexPat, /*CP*/20, /*#*/0, // selectVSplatUimm5:$ui5 #2 ++/*583500*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMAXI_DU_N), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 2, ++ // Src: (umax:{ *:[v4i64] } xvsplati64_uimm5:{ *:[v4i64] }:$ui5, LASX256DOpnd:{ *:[v4i64] }:$xj) - Complexity = 9 ++ // Dst: (XVMAXI_DU_N:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, xvsplati64_uimm5:{ *:[v4i64] }:$ui5) ++/*583508*/ /*Scope*/ 8, /*->583517*/ ++/*583509*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMAX_DU), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (umax:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 3 ++ // Dst: (XVMAX_DU:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/*583517*/ 0, /*End of Scope*/ ++/*583518*/ 0, // EndSwitchType ++/*583519*/ /*SwitchOpcode*/ 44|128,2/*300*/, TARGET_VAL(ISD::SMIN),// ->583823 ++/*583523*/ OPC_RecordChild0, // #0 = $vj ++/*583524*/ OPC_RecordChild1, // #1 = $si5 ++/*583525*/ OPC_SwitchType /*8 cases */, 35, MVT::v16i8,// ->583563 ++/*583528*/ OPC_Scope, 11, /*->583541*/ // 3 children in Scope ++/*583530*/ OPC_CheckComplexPat, /*CP*/5, /*#*/1, // selectVSplatSimm5:$si5 #2 ++/*583533*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMINI_B_N), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 2, ++ // Src: (smin:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, vsplati8_simm5:{ *:[v16i8] }:$si5) - Complexity = 9 ++ // Dst: (VMINI_B_N:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, vsplati8_simm5:{ *:[v16i8] }:$si5) ++/*583541*/ /*Scope*/ 11, /*->583553*/ ++/*583542*/ OPC_CheckComplexPat, /*CP*/5, /*#*/0, // selectVSplatSimm5:$si5 #2 ++/*583545*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMINI_B_N), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 2, ++ // Src: (smin:{ *:[v16i8] } vsplati8_simm5:{ *:[v16i8] }:$si5, LSX128BOpnd:{ *:[v16i8] }:$vj) - Complexity = 9 ++ // Dst: (VMINI_B_N:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, vsplati8_simm5:{ *:[v16i8] }:$si5) ++/*583553*/ /*Scope*/ 8, /*->583562*/ ++/*583554*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMIN_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (smin:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) - Complexity = 3 ++ // Dst: (VMIN_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/*583562*/ 0, /*End of Scope*/ ++/*583563*/ /*SwitchType*/ 35, MVT::v8i16,// ->583600 ++/*583565*/ OPC_Scope, 11, /*->583578*/ // 3 children in Scope ++/*583567*/ OPC_CheckComplexPat, /*CP*/7, /*#*/1, // selectVSplatSimm5:$si5 #2 ++/*583570*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMINI_H_N), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 2, ++ // Src: (smin:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, vsplati16_simm5:{ *:[v8i16] }:$si5) - Complexity = 9 ++ // Dst: (VMINI_H_N:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, vsplati16_simm5:{ *:[v8i16] }:$si5) ++/*583578*/ /*Scope*/ 11, /*->583590*/ ++/*583579*/ OPC_CheckComplexPat, /*CP*/7, /*#*/0, // selectVSplatSimm5:$si5 #2 ++/*583582*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMINI_H_N), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 2, ++ // Src: (smin:{ *:[v8i16] } vsplati16_simm5:{ *:[v8i16] }:$si5, LSX128HOpnd:{ *:[v8i16] }:$vj) - Complexity = 9 ++ // Dst: (VMINI_H_N:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, vsplati16_simm5:{ *:[v8i16] }:$si5) ++/*583590*/ /*Scope*/ 8, /*->583599*/ ++/*583591*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMIN_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (smin:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 3 ++ // Dst: (VMIN_H:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/*583599*/ 0, /*End of Scope*/ ++/*583600*/ /*SwitchType*/ 35, MVT::v4i32,// ->583637 ++/*583602*/ OPC_Scope, 11, /*->583615*/ // 3 children in Scope ++/*583604*/ OPC_CheckComplexPat, /*CP*/9, /*#*/1, // selectVSplatSimm5:$si5 #2 ++/*583607*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMINI_W_N), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 2, ++ // Src: (smin:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, vsplati32_simm5:{ *:[v4i32] }:$si5) - Complexity = 9 ++ // Dst: (VMINI_W_N:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, vsplati32_simm5:{ *:[v4i32] }:$si5) ++/*583615*/ /*Scope*/ 11, /*->583627*/ ++/*583616*/ OPC_CheckComplexPat, /*CP*/9, /*#*/0, // selectVSplatSimm5:$si5 #2 ++/*583619*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMINI_W_N), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 2, ++ // Src: (smin:{ *:[v4i32] } vsplati32_simm5:{ *:[v4i32] }:$si5, LSX128WOpnd:{ *:[v4i32] }:$vj) - Complexity = 9 ++ // Dst: (VMINI_W_N:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, vsplati32_simm5:{ *:[v4i32] }:$si5) ++/*583627*/ /*Scope*/ 8, /*->583636*/ ++/*583628*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMIN_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (smin:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 3 ++ // Dst: (VMIN_W:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/*583636*/ 0, /*End of Scope*/ ++/*583637*/ /*SwitchType*/ 35, MVT::v2i64,// ->583674 ++/*583639*/ OPC_Scope, 11, /*->583652*/ // 3 children in Scope ++/*583641*/ OPC_CheckComplexPat, /*CP*/11, /*#*/1, // selectVSplatSimm5:$si5 #2 ++/*583644*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMINI_D_N), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 2, ++ // Src: (smin:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, vsplati64_simm5:{ *:[v2i64] }:$si5) - Complexity = 9 ++ // Dst: (VMINI_D_N:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, vsplati64_simm5:{ *:[v2i64] }:$si5) ++/*583652*/ /*Scope*/ 11, /*->583664*/ ++/*583653*/ OPC_CheckComplexPat, /*CP*/11, /*#*/0, // selectVSplatSimm5:$si5 #2 ++/*583656*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMINI_D_N), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 2, ++ // Src: (smin:{ *:[v2i64] } vsplati64_simm5:{ *:[v2i64] }:$si5, LSX128DOpnd:{ *:[v2i64] }:$vj) - Complexity = 9 ++ // Dst: (VMINI_D_N:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, vsplati64_simm5:{ *:[v2i64] }:$si5) ++/*583664*/ /*Scope*/ 8, /*->583673*/ ++/*583665*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMIN_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (smin:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 3 ++ // Dst: (VMIN_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/*583673*/ 0, /*End of Scope*/ ++/*583674*/ /*SwitchType*/ 35, MVT::v32i8,// ->583711 ++/*583676*/ OPC_Scope, 11, /*->583689*/ // 3 children in Scope ++/*583678*/ OPC_CheckComplexPat, /*CP*/13, /*#*/1, // selectVSplatSimm5:$si5 #2 ++/*583681*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMINI_B_N), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 2, ++ // Src: (smin:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, xvsplati8_simm5:{ *:[v32i8] }:$si5) - Complexity = 9 ++ // Dst: (XVMINI_B_N:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, xvsplati8_simm5:{ *:[v32i8] }:$si5) ++/*583689*/ /*Scope*/ 11, /*->583701*/ ++/*583690*/ OPC_CheckComplexPat, /*CP*/13, /*#*/0, // selectVSplatSimm5:$si5 #2 ++/*583693*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMINI_B_N), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 2, ++ // Src: (smin:{ *:[v32i8] } xvsplati8_simm5:{ *:[v32i8] }:$si5, LASX256BOpnd:{ *:[v32i8] }:$xj) - Complexity = 9 ++ // Dst: (XVMINI_B_N:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, xvsplati8_simm5:{ *:[v32i8] }:$si5) ++/*583701*/ /*Scope*/ 8, /*->583710*/ ++/*583702*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMIN_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (smin:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 3 ++ // Dst: (XVMIN_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/*583710*/ 0, /*End of Scope*/ ++/*583711*/ /*SwitchType*/ 35, MVT::v16i16,// ->583748 ++/*583713*/ OPC_Scope, 11, /*->583726*/ // 3 children in Scope ++/*583715*/ OPC_CheckComplexPat, /*CP*/15, /*#*/1, // selectVSplatSimm5:$si5 #2 ++/*583718*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMINI_H_N), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 2, ++ // Src: (smin:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, xvsplati16_simm5:{ *:[v16i16] }:$si5) - Complexity = 9 ++ // Dst: (XVMINI_H_N:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, xvsplati16_simm5:{ *:[v16i16] }:$si5) ++/*583726*/ /*Scope*/ 11, /*->583738*/ ++/*583727*/ OPC_CheckComplexPat, /*CP*/15, /*#*/0, // selectVSplatSimm5:$si5 #2 ++/*583730*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMINI_H_N), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 2, ++ // Src: (smin:{ *:[v16i16] } xvsplati16_simm5:{ *:[v16i16] }:$si5, LASX256HOpnd:{ *:[v16i16] }:$xj) - Complexity = 9 ++ // Dst: (XVMINI_H_N:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, xvsplati16_simm5:{ *:[v16i16] }:$si5) ++/*583738*/ /*Scope*/ 8, /*->583747*/ ++/*583739*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMIN_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (smin:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 3 ++ // Dst: (XVMIN_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/*583747*/ 0, /*End of Scope*/ ++/*583748*/ /*SwitchType*/ 35, MVT::v8i32,// ->583785 ++/*583750*/ OPC_Scope, 11, /*->583763*/ // 3 children in Scope ++/*583752*/ OPC_CheckComplexPat, /*CP*/17, /*#*/1, // selectVSplatSimm5:$si5 #2 ++/*583755*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMINI_W_N), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 2, ++ // Src: (smin:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, xvsplati32_simm5:{ *:[v8i32] }:$si5) - Complexity = 9 ++ // Dst: (XVMINI_W_N:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, xvsplati32_simm5:{ *:[v8i32] }:$si5) ++/*583763*/ /*Scope*/ 11, /*->583775*/ ++/*583764*/ OPC_CheckComplexPat, /*CP*/17, /*#*/0, // selectVSplatSimm5:$si5 #2 ++/*583767*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMINI_W_N), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 2, ++ // Src: (smin:{ *:[v8i32] } xvsplati32_simm5:{ *:[v8i32] }:$si5, LASX256WOpnd:{ *:[v8i32] }:$xj) - Complexity = 9 ++ // Dst: (XVMINI_W_N:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, xvsplati32_simm5:{ *:[v8i32] }:$si5) ++/*583775*/ /*Scope*/ 8, /*->583784*/ ++/*583776*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMIN_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (smin:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 3 ++ // Dst: (XVMIN_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/*583784*/ 0, /*End of Scope*/ ++/*583785*/ /*SwitchType*/ 35, MVT::v4i64,// ->583822 ++/*583787*/ OPC_Scope, 11, /*->583800*/ // 3 children in Scope ++/*583789*/ OPC_CheckComplexPat, /*CP*/19, /*#*/1, // selectVSplatSimm5:$si5 #2 ++/*583792*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMINI_D_N), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 2, ++ // Src: (smin:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, xvsplati64_simm5:{ *:[v4i64] }:$si5) - Complexity = 9 ++ // Dst: (XVMINI_D_N:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, xvsplati64_simm5:{ *:[v4i64] }:$si5) ++/*583800*/ /*Scope*/ 11, /*->583812*/ ++/*583801*/ OPC_CheckComplexPat, /*CP*/19, /*#*/0, // selectVSplatSimm5:$si5 #2 ++/*583804*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMINI_D_N), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 2, ++ // Src: (smin:{ *:[v4i64] } xvsplati64_simm5:{ *:[v4i64] }:$si5, LASX256DOpnd:{ *:[v4i64] }:$xj) - Complexity = 9 ++ // Dst: (XVMINI_D_N:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, xvsplati64_simm5:{ *:[v4i64] }:$si5) ++/*583812*/ /*Scope*/ 8, /*->583821*/ ++/*583813*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMIN_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (smin:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 3 ++ // Dst: (XVMIN_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/*583821*/ 0, /*End of Scope*/ ++/*583822*/ 0, // EndSwitchType ++/*583823*/ /*SwitchOpcode*/ 44|128,2/*300*/, TARGET_VAL(ISD::SMAX),// ->584127 ++/*583827*/ OPC_RecordChild0, // #0 = $vj ++/*583828*/ OPC_RecordChild1, // #1 = $si5 ++/*583829*/ OPC_SwitchType /*8 cases */, 35, MVT::v16i8,// ->583867 ++/*583832*/ OPC_Scope, 11, /*->583845*/ // 3 children in Scope ++/*583834*/ OPC_CheckComplexPat, /*CP*/5, /*#*/1, // selectVSplatSimm5:$si5 #2 ++/*583837*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMAXI_B_N), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 2, ++ // Src: (smax:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, vsplati8_simm5:{ *:[v16i8] }:$si5) - Complexity = 9 ++ // Dst: (VMAXI_B_N:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, vsplati8_simm5:{ *:[v16i8] }:$si5) ++/*583845*/ /*Scope*/ 11, /*->583857*/ ++/*583846*/ OPC_CheckComplexPat, /*CP*/5, /*#*/0, // selectVSplatSimm5:$si5 #2 ++/*583849*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMAXI_B_N), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 2, ++ // Src: (smax:{ *:[v16i8] } vsplati8_simm5:{ *:[v16i8] }:$si5, LSX128BOpnd:{ *:[v16i8] }:$vj) - Complexity = 9 ++ // Dst: (VMAXI_B_N:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, vsplati8_simm5:{ *:[v16i8] }:$si5) ++/*583857*/ /*Scope*/ 8, /*->583866*/ ++/*583858*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMAX_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (smax:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) - Complexity = 3 ++ // Dst: (VMAX_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/*583866*/ 0, /*End of Scope*/ ++/*583867*/ /*SwitchType*/ 35, MVT::v8i16,// ->583904 ++/*583869*/ OPC_Scope, 11, /*->583882*/ // 3 children in Scope ++/*583871*/ OPC_CheckComplexPat, /*CP*/7, /*#*/1, // selectVSplatSimm5:$si5 #2 ++/*583874*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMAXI_H_N), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 2, ++ // Src: (smax:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, vsplati16_simm5:{ *:[v8i16] }:$si5) - Complexity = 9 ++ // Dst: (VMAXI_H_N:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, vsplati16_simm5:{ *:[v8i16] }:$si5) ++/*583882*/ /*Scope*/ 11, /*->583894*/ ++/*583883*/ OPC_CheckComplexPat, /*CP*/7, /*#*/0, // selectVSplatSimm5:$si5 #2 ++/*583886*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMAXI_H_N), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 2, ++ // Src: (smax:{ *:[v8i16] } vsplati16_simm5:{ *:[v8i16] }:$si5, LSX128HOpnd:{ *:[v8i16] }:$vj) - Complexity = 9 ++ // Dst: (VMAXI_H_N:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, vsplati16_simm5:{ *:[v8i16] }:$si5) ++/*583894*/ /*Scope*/ 8, /*->583903*/ ++/*583895*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMAX_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (smax:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 3 ++ // Dst: (VMAX_H:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/*583903*/ 0, /*End of Scope*/ ++/*583904*/ /*SwitchType*/ 35, MVT::v4i32,// ->583941 ++/*583906*/ OPC_Scope, 11, /*->583919*/ // 3 children in Scope ++/*583908*/ OPC_CheckComplexPat, /*CP*/9, /*#*/1, // selectVSplatSimm5:$si5 #2 ++/*583911*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMAXI_W_N), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 2, ++ // Src: (smax:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, vsplati32_simm5:{ *:[v4i32] }:$si5) - Complexity = 9 ++ // Dst: (VMAXI_W_N:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, vsplati32_simm5:{ *:[v4i32] }:$si5) ++/*583919*/ /*Scope*/ 11, /*->583931*/ ++/*583920*/ OPC_CheckComplexPat, /*CP*/9, /*#*/0, // selectVSplatSimm5:$si5 #2 ++/*583923*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMAXI_W_N), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 2, ++ // Src: (smax:{ *:[v4i32] } vsplati32_simm5:{ *:[v4i32] }:$si5, LSX128WOpnd:{ *:[v4i32] }:$vj) - Complexity = 9 ++ // Dst: (VMAXI_W_N:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, vsplati32_simm5:{ *:[v4i32] }:$si5) ++/*583931*/ /*Scope*/ 8, /*->583940*/ ++/*583932*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMAX_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (smax:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 3 ++ // Dst: (VMAX_W:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/*583940*/ 0, /*End of Scope*/ ++/*583941*/ /*SwitchType*/ 35, MVT::v2i64,// ->583978 ++/*583943*/ OPC_Scope, 11, /*->583956*/ // 3 children in Scope ++/*583945*/ OPC_CheckComplexPat, /*CP*/11, /*#*/1, // selectVSplatSimm5:$si5 #2 ++/*583948*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMAXI_D_N), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 2, ++ // Src: (smax:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, vsplati64_simm5:{ *:[v2i64] }:$si5) - Complexity = 9 ++ // Dst: (VMAXI_D_N:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, vsplati64_simm5:{ *:[v2i64] }:$si5) ++/*583956*/ /*Scope*/ 11, /*->583968*/ ++/*583957*/ OPC_CheckComplexPat, /*CP*/11, /*#*/0, // selectVSplatSimm5:$si5 #2 ++/*583960*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMAXI_D_N), 0, ++ MVT::v2i64, 2/*#Ops*/, 1, 2, ++ // Src: (smax:{ *:[v2i64] } vsplati64_simm5:{ *:[v2i64] }:$si5, LSX128DOpnd:{ *:[v2i64] }:$vj) - Complexity = 9 ++ // Dst: (VMAXI_D_N:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, vsplati64_simm5:{ *:[v2i64] }:$si5) ++/*583968*/ /*Scope*/ 8, /*->583977*/ ++/*583969*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMAX_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (smax:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 3 ++ // Dst: (VMAX_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/*583977*/ 0, /*End of Scope*/ ++/*583978*/ /*SwitchType*/ 35, MVT::v32i8,// ->584015 ++/*583980*/ OPC_Scope, 11, /*->583993*/ // 3 children in Scope ++/*583982*/ OPC_CheckComplexPat, /*CP*/13, /*#*/1, // selectVSplatSimm5:$si5 #2 ++/*583985*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMAXI_B_N), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 2, ++ // Src: (smax:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, xvsplati8_simm5:{ *:[v32i8] }:$si5) - Complexity = 9 ++ // Dst: (XVMAXI_B_N:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, xvsplati8_simm5:{ *:[v32i8] }:$si5) ++/*583993*/ /*Scope*/ 11, /*->584005*/ ++/*583994*/ OPC_CheckComplexPat, /*CP*/13, /*#*/0, // selectVSplatSimm5:$si5 #2 ++/*583997*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMAXI_B_N), 0, ++ MVT::v32i8, 2/*#Ops*/, 1, 2, ++ // Src: (smax:{ *:[v32i8] } xvsplati8_simm5:{ *:[v32i8] }:$si5, LASX256BOpnd:{ *:[v32i8] }:$xj) - Complexity = 9 ++ // Dst: (XVMAXI_B_N:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, xvsplati8_simm5:{ *:[v32i8] }:$si5) ++/*584005*/ /*Scope*/ 8, /*->584014*/ ++/*584006*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMAX_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (smax:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 3 ++ // Dst: (XVMAX_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/*584014*/ 0, /*End of Scope*/ ++/*584015*/ /*SwitchType*/ 35, MVT::v16i16,// ->584052 ++/*584017*/ OPC_Scope, 11, /*->584030*/ // 3 children in Scope ++/*584019*/ OPC_CheckComplexPat, /*CP*/15, /*#*/1, // selectVSplatSimm5:$si5 #2 ++/*584022*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMAXI_H_N), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 2, ++ // Src: (smax:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, xvsplati16_simm5:{ *:[v16i16] }:$si5) - Complexity = 9 ++ // Dst: (XVMAXI_H_N:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, xvsplati16_simm5:{ *:[v16i16] }:$si5) ++/*584030*/ /*Scope*/ 11, /*->584042*/ ++/*584031*/ OPC_CheckComplexPat, /*CP*/15, /*#*/0, // selectVSplatSimm5:$si5 #2 ++/*584034*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMAXI_H_N), 0, ++ MVT::v16i16, 2/*#Ops*/, 1, 2, ++ // Src: (smax:{ *:[v16i16] } xvsplati16_simm5:{ *:[v16i16] }:$si5, LASX256HOpnd:{ *:[v16i16] }:$xj) - Complexity = 9 ++ // Dst: (XVMAXI_H_N:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, xvsplati16_simm5:{ *:[v16i16] }:$si5) ++/*584042*/ /*Scope*/ 8, /*->584051*/ ++/*584043*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMAX_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (smax:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 3 ++ // Dst: (XVMAX_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/*584051*/ 0, /*End of Scope*/ ++/*584052*/ /*SwitchType*/ 35, MVT::v8i32,// ->584089 ++/*584054*/ OPC_Scope, 11, /*->584067*/ // 3 children in Scope ++/*584056*/ OPC_CheckComplexPat, /*CP*/17, /*#*/1, // selectVSplatSimm5:$si5 #2 ++/*584059*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMAXI_W_N), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 2, ++ // Src: (smax:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, xvsplati32_simm5:{ *:[v8i32] }:$si5) - Complexity = 9 ++ // Dst: (XVMAXI_W_N:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, xvsplati32_simm5:{ *:[v8i32] }:$si5) ++/*584067*/ /*Scope*/ 11, /*->584079*/ ++/*584068*/ OPC_CheckComplexPat, /*CP*/17, /*#*/0, // selectVSplatSimm5:$si5 #2 ++/*584071*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMAXI_W_N), 0, ++ MVT::v8i32, 2/*#Ops*/, 1, 2, ++ // Src: (smax:{ *:[v8i32] } xvsplati32_simm5:{ *:[v8i32] }:$si5, LASX256WOpnd:{ *:[v8i32] }:$xj) - Complexity = 9 ++ // Dst: (XVMAXI_W_N:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, xvsplati32_simm5:{ *:[v8i32] }:$si5) ++/*584079*/ /*Scope*/ 8, /*->584088*/ ++/*584080*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMAX_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (smax:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 3 ++ // Dst: (XVMAX_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/*584088*/ 0, /*End of Scope*/ ++/*584089*/ /*SwitchType*/ 35, MVT::v4i64,// ->584126 ++/*584091*/ OPC_Scope, 11, /*->584104*/ // 3 children in Scope ++/*584093*/ OPC_CheckComplexPat, /*CP*/19, /*#*/1, // selectVSplatSimm5:$si5 #2 ++/*584096*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMAXI_D_N), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 2, ++ // Src: (smax:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, xvsplati64_simm5:{ *:[v4i64] }:$si5) - Complexity = 9 ++ // Dst: (XVMAXI_D_N:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, xvsplati64_simm5:{ *:[v4i64] }:$si5) ++/*584104*/ /*Scope*/ 11, /*->584116*/ ++/*584105*/ OPC_CheckComplexPat, /*CP*/19, /*#*/0, // selectVSplatSimm5:$si5 #2 ++/*584108*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMAXI_D_N), 0, ++ MVT::v4i64, 2/*#Ops*/, 1, 2, ++ // Src: (smax:{ *:[v4i64] } xvsplati64_simm5:{ *:[v4i64] }:$si5, LASX256DOpnd:{ *:[v4i64] }:$xj) - Complexity = 9 ++ // Dst: (XVMAXI_D_N:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, xvsplati64_simm5:{ *:[v4i64] }:$si5) ++/*584116*/ /*Scope*/ 8, /*->584125*/ ++/*584117*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMAX_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (smax:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 3 ++ // Dst: (XVMAX_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/*584125*/ 0, /*End of Scope*/ ++/*584126*/ 0, // EndSwitchType ++/*584127*/ /*SwitchOpcode*/ 120|128,1/*248*/, TARGET_VAL(ISD::VSELECT),// ->584379 ++/*584131*/ OPC_RecordChild0, // #0 = $vd_in ++/*584132*/ OPC_Scope, 18, /*->584152*/ // 13 children in Scope ++/*584134*/ OPC_CheckChild0Type, MVT::v16i8, ++/*584136*/ OPC_RecordChild1, // #1 = $ui8 ++/*584137*/ OPC_RecordChild2, // #2 = $vj ++/*584138*/ OPC_CheckType, MVT::v16i8, ++/*584140*/ OPC_CheckComplexPat, /*CP*/21, /*#*/1, // selectVSplatUimm8:$ui8 #3 ++/*584143*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VBITSELI_B_N), 0, ++ MVT::v16i8, 3/*#Ops*/, 0, 2, 3, ++ // Src: (vselect:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vd_in, vsplati8_uimm8:{ *:[v16i8] }:$ui8, LSX128BOpnd:{ *:[v16i8] }:$vj) - Complexity = 9 ++ // Dst: (VBITSELI_B_N:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vd_in, LSX128BOpnd:{ *:[v16i8] }:$vj, vsplati8_uimm8:{ *:[v16i8] }:$ui8) ++/*584152*/ /*Scope*/ 16, /*->584169*/ ++/*584153*/ OPC_RecordChild1, // #1 = $ui8 ++/*584154*/ OPC_RecordChild2, // #2 = $xj ++/*584155*/ OPC_CheckType, MVT::v32i8, ++/*584157*/ OPC_CheckComplexPat, /*CP*/22, /*#*/1, // selectVSplatUimm8:$ui8 #3 ++/*584160*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVBITSELI_B_N), 0, ++ MVT::v32i8, 3/*#Ops*/, 0, 2, 3, ++ // Src: (vselect:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xd_in, xvsplati8_uimm8:{ *:[v32i8] }:$ui8, LASX256BOpnd:{ *:[v32i8] }:$xj) - Complexity = 9 ++ // Dst: (XVBITSELI_B_N:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xd_in, LASX256BOpnd:{ *:[v32i8] }:$xj, xvsplati8_uimm8:{ *:[v32i8] }:$ui8) ++/*584169*/ /*Scope*/ 17, /*->584187*/ ++/*584170*/ OPC_CheckChild0Type, MVT::v16i8, ++/*584172*/ OPC_RecordChild1, // #1 = $vt ++/*584173*/ OPC_RecordChild2, // #2 = $vs ++/*584174*/ OPC_CheckType, MVT::v16i8, ++/*584176*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*584178*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::BSEL_B_PSEUDO), 0, ++ MVT::v16i8, 3/*#Ops*/, 0, 2, 1, ++ // Src: (vselect:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vd_in, LSX128BOpnd:{ *:[v16i8] }:$vt, LSX128BOpnd:{ *:[v16i8] }:$vs) - Complexity = 3 ++ // Dst: (BSEL_B_PSEUDO:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vd_in, LSX128BOpnd:{ *:[v16i8] }:$vs, LSX128BOpnd:{ *:[v16i8] }:$vt) ++/*584187*/ /*Scope*/ 17, /*->584205*/ ++/*584188*/ OPC_CheckChild0Type, MVT::v8i16, ++/*584190*/ OPC_RecordChild1, // #1 = $vt ++/*584191*/ OPC_RecordChild2, // #2 = $vs ++/*584192*/ OPC_CheckType, MVT::v8i16, ++/*584194*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*584196*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::BSEL_H_PSEUDO), 0, ++ MVT::v8i16, 3/*#Ops*/, 0, 2, 1, ++ // Src: (vselect:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vd_in, LSX128HOpnd:{ *:[v8i16] }:$vt, LSX128HOpnd:{ *:[v8i16] }:$vs) - Complexity = 3 ++ // Dst: (BSEL_H_PSEUDO:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vd_in, LSX128HOpnd:{ *:[v8i16] }:$vs, LSX128HOpnd:{ *:[v8i16] }:$vt) ++/*584205*/ /*Scope*/ 17, /*->584223*/ ++/*584206*/ OPC_CheckChild0Type, MVT::v4i32, ++/*584208*/ OPC_RecordChild1, // #1 = $vt ++/*584209*/ OPC_RecordChild2, // #2 = $vs ++/*584210*/ OPC_CheckType, MVT::v4i32, ++/*584212*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*584214*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::BSEL_W_PSEUDO), 0, ++ MVT::v4i32, 3/*#Ops*/, 0, 2, 1, ++ // Src: (vselect:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vd_in, LSX128WOpnd:{ *:[v4i32] }:$vt, LSX128WOpnd:{ *:[v4i32] }:$vs) - Complexity = 3 ++ // Dst: (BSEL_W_PSEUDO:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vd_in, LSX128WOpnd:{ *:[v4i32] }:$vs, LSX128WOpnd:{ *:[v4i32] }:$vt) ++/*584223*/ /*Scope*/ 30, /*->584254*/ ++/*584224*/ OPC_RecordChild1, // #1 = $vt ++/*584225*/ OPC_RecordChild2, // #2 = $vs ++/*584226*/ OPC_SwitchType /*2 cases */, 11, MVT::v2i64,// ->584240 ++/*584229*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*584231*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::BSEL_D_PSEUDO), 0, ++ MVT::v2i64, 3/*#Ops*/, 0, 2, 1, ++ // Src: (vselect:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vd_in, LSX128DOpnd:{ *:[v2i64] }:$vt, LSX128DOpnd:{ *:[v2i64] }:$vs) - Complexity = 3 ++ // Dst: (BSEL_D_PSEUDO:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vd_in, LSX128DOpnd:{ *:[v2i64] }:$vs, LSX128DOpnd:{ *:[v2i64] }:$vt) ++/*584240*/ /*SwitchType*/ 11, MVT::v32i8,// ->584253 ++/*584242*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*584244*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XBSEL_B_PSEUDO), 0, ++ MVT::v32i8, 3/*#Ops*/, 0, 2, 1, ++ // Src: (vselect:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xd_in, LASX256BOpnd:{ *:[v32i8] }:$xt, LASX256BOpnd:{ *:[v32i8] }:$xs) - Complexity = 3 ++ // Dst: (XBSEL_B_PSEUDO:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xd_in, LASX256BOpnd:{ *:[v32i8] }:$xs, LASX256BOpnd:{ *:[v32i8] }:$xt) ++/*584253*/ 0, // EndSwitchType ++/*584254*/ /*Scope*/ 17, /*->584272*/ ++/*584255*/ OPC_CheckChild0Type, MVT::v16i16, ++/*584257*/ OPC_RecordChild1, // #1 = $xt ++/*584258*/ OPC_RecordChild2, // #2 = $xs ++/*584259*/ OPC_CheckType, MVT::v16i16, ++/*584261*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*584263*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XBSEL_H_PSEUDO), 0, ++ MVT::v16i16, 3/*#Ops*/, 0, 2, 1, ++ // Src: (vselect:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xd_in, LASX256HOpnd:{ *:[v16i16] }:$xt, LASX256HOpnd:{ *:[v16i16] }:$xs) - Complexity = 3 ++ // Dst: (XBSEL_H_PSEUDO:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xd_in, LASX256HOpnd:{ *:[v16i16] }:$xs, LASX256HOpnd:{ *:[v16i16] }:$xt) ++/*584272*/ /*Scope*/ 17, /*->584290*/ ++/*584273*/ OPC_CheckChild0Type, MVT::v8i32, ++/*584275*/ OPC_RecordChild1, // #1 = $xt ++/*584276*/ OPC_RecordChild2, // #2 = $xs ++/*584277*/ OPC_CheckType, MVT::v8i32, ++/*584279*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*584281*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XBSEL_W_PSEUDO), 0, ++ MVT::v8i32, 3/*#Ops*/, 0, 2, 1, ++ // Src: (vselect:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xd_in, LASX256WOpnd:{ *:[v8i32] }:$xt, LASX256WOpnd:{ *:[v8i32] }:$xs) - Complexity = 3 ++ // Dst: (XBSEL_W_PSEUDO:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xd_in, LASX256WOpnd:{ *:[v8i32] }:$xs, LASX256WOpnd:{ *:[v8i32] }:$xt) ++/*584290*/ /*Scope*/ 17, /*->584308*/ ++/*584291*/ OPC_CheckChild0Type, MVT::v4i64, ++/*584293*/ OPC_RecordChild1, // #1 = $xt ++/*584294*/ OPC_RecordChild2, // #2 = $xs ++/*584295*/ OPC_CheckType, MVT::v4i64, ++/*584297*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*584299*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XBSEL_D_PSEUDO), 0, ++ MVT::v4i64, 3/*#Ops*/, 0, 2, 1, ++ // Src: (vselect:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256DOpnd:{ *:[v4i64] }:$xt, LASX256DOpnd:{ *:[v4i64] }:$xs) - Complexity = 3 ++ // Dst: (XBSEL_D_PSEUDO:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256DOpnd:{ *:[v4i64] }:$xs, LASX256DOpnd:{ *:[v4i64] }:$xt) ++/*584308*/ /*Scope*/ 17, /*->584326*/ ++/*584309*/ OPC_CheckChild0Type, MVT::v4i32, ++/*584311*/ OPC_RecordChild1, // #1 = $vt ++/*584312*/ OPC_RecordChild2, // #2 = $vs ++/*584313*/ OPC_CheckType, MVT::v4f32, ++/*584315*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*584317*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::BSEL_FW_PSEUDO), 0, ++ MVT::v4f32, 3/*#Ops*/, 0, 2, 1, ++ // Src: (vselect:{ *:[v4f32] } LSX128WOpnd:{ *:[v4i32] }:$vd_in, LSX128WOpnd:{ *:[v4f32] }:$vt, LSX128WOpnd:{ *:[v4f32] }:$vs) - Complexity = 3 ++ // Dst: (BSEL_FW_PSEUDO:{ *:[v4f32] } LSX128WOpnd:{ *:[v4i32] }:$vd_in, LSX128WOpnd:{ *:[v4f32] }:$vs, LSX128WOpnd:{ *:[v4f32] }:$vt) ++/*584326*/ /*Scope*/ 15, /*->584342*/ ++/*584327*/ OPC_RecordChild1, // #1 = $vt ++/*584328*/ OPC_RecordChild2, // #2 = $vs ++/*584329*/ OPC_CheckType, MVT::v2f64, ++/*584331*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*584333*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::BSEL_FD_PSEUDO), 0, ++ MVT::v2f64, 3/*#Ops*/, 0, 2, 1, ++ // Src: (vselect:{ *:[v2f64] } LSX128DOpnd:{ *:[v2i64] }:$vd_in, LSX128DOpnd:{ *:[v2f64] }:$vt, LSX128DOpnd:{ *:[v2f64] }:$vs) - Complexity = 3 ++ // Dst: (BSEL_FD_PSEUDO:{ *:[v2f64] } LSX128DOpnd:{ *:[v2i64] }:$vd_in, LSX128DOpnd:{ *:[v2f64] }:$vs, LSX128DOpnd:{ *:[v2f64] }:$vt) ++/*584342*/ /*Scope*/ 17, /*->584360*/ ++/*584343*/ OPC_CheckChild0Type, MVT::v8i32, ++/*584345*/ OPC_RecordChild1, // #1 = $xt ++/*584346*/ OPC_RecordChild2, // #2 = $xs ++/*584347*/ OPC_CheckType, MVT::v8f32, ++/*584349*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*584351*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XBSEL_FW_PSEUDO), 0, ++ MVT::v8f32, 3/*#Ops*/, 0, 2, 1, ++ // Src: (vselect:{ *:[v8f32] } LASX256WOpnd:{ *:[v8i32] }:$xd_in, LASX256WOpnd:{ *:[v8f32] }:$xt, LASX256WOpnd:{ *:[v8f32] }:$xs) - Complexity = 3 ++ // Dst: (XBSEL_FW_PSEUDO:{ *:[v8f32] } LASX256WOpnd:{ *:[v8i32] }:$xd_in, LASX256WOpnd:{ *:[v8f32] }:$xs, LASX256WOpnd:{ *:[v8f32] }:$xt) ++/*584360*/ /*Scope*/ 17, /*->584378*/ ++/*584361*/ OPC_CheckChild0Type, MVT::v4i64, ++/*584363*/ OPC_RecordChild1, // #1 = $xt ++/*584364*/ OPC_RecordChild2, // #2 = $xs ++/*584365*/ OPC_CheckType, MVT::v4f64, ++/*584367*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*584369*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XBSEL_FD_PSEUDO), 0, ++ MVT::v4f64, 3/*#Ops*/, 0, 2, 1, ++ // Src: (vselect:{ *:[v4f64] } LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256DOpnd:{ *:[v4f64] }:$xt, LASX256DOpnd:{ *:[v4f64] }:$xs) - Complexity = 3 ++ // Dst: (XBSEL_FD_PSEUDO:{ *:[v4f64] } LASX256DOpnd:{ *:[v4i64] }:$xd_in, LASX256DOpnd:{ *:[v4f64] }:$xs, LASX256DOpnd:{ *:[v4f64] }:$xt) ++/*584378*/ 0, /*End of Scope*/ ++/*584379*/ /*SwitchOpcode*/ 102, TARGET_VAL(LoongArchISD::VABSD),// ->584484 ++/*584382*/ OPC_RecordChild0, // #0 = $vj ++/*584383*/ OPC_RecordChild1, // #1 = $vk ++/*584384*/ OPC_CheckChild2Integer, 0, ++/*584386*/ OPC_SwitchType /*8 cases */, 10, MVT::v2i64,// ->584399 ++/*584389*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*584391*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VABSD_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVABSD:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vj, v2i64:{ *:[v2i64] }:$vk, 0:{ *:[i32] }) - Complexity = 8 ++ // Dst: (VABSD_D:{ *:[v2i64] } ?:{ *:[v2i64] }:$vj, ?:{ *:[v2i64] }:$vk) ++/*584399*/ /*SwitchType*/ 10, MVT::v4i32,// ->584411 ++/*584401*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*584403*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VABSD_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVABSD:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vj, v4i32:{ *:[v4i32] }:$vk, 0:{ *:[i32] }) - Complexity = 8 ++ // Dst: (VABSD_W:{ *:[v4i32] } ?:{ *:[v4i32] }:$vj, ?:{ *:[v4i32] }:$vk) ++/*584411*/ /*SwitchType*/ 10, MVT::v8i16,// ->584423 ++/*584413*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*584415*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VABSD_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVABSD:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vj, v8i16:{ *:[v8i16] }:$vk, 0:{ *:[i32] }) - Complexity = 8 ++ // Dst: (VABSD_H:{ *:[v8i16] } ?:{ *:[v8i16] }:$vj, ?:{ *:[v8i16] }:$vk) ++/*584423*/ /*SwitchType*/ 10, MVT::v16i8,// ->584435 ++/*584425*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*584427*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VABSD_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVABSD:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vj, v16i8:{ *:[v16i8] }:$vk, 0:{ *:[i32] }) - Complexity = 8 ++ // Dst: (VABSD_B:{ *:[v16i8] } ?:{ *:[v16i8] }:$vj, ?:{ *:[v16i8] }:$vk) ++/*584435*/ /*SwitchType*/ 10, MVT::v4i64,// ->584447 ++/*584437*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*584439*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVABSD_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVABSD:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$xj, v4i64:{ *:[v4i64] }:$xk, 0:{ *:[i32] }) - Complexity = 8 ++ // Dst: (XVABSD_D:{ *:[v4i64] } ?:{ *:[v4i64] }:$xj, ?:{ *:[v4i64] }:$xk) ++/*584447*/ /*SwitchType*/ 10, MVT::v8i32,// ->584459 ++/*584449*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*584451*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVABSD_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVABSD:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$xj, v8i32:{ *:[v8i32] }:$xk, 0:{ *:[i32] }) - Complexity = 8 ++ // Dst: (XVABSD_W:{ *:[v8i32] } ?:{ *:[v8i32] }:$xj, ?:{ *:[v8i32] }:$xk) ++/*584459*/ /*SwitchType*/ 10, MVT::v16i16,// ->584471 ++/*584461*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*584463*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVABSD_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVABSD:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$xj, v16i16:{ *:[v16i16] }:$xk, 0:{ *:[i32] }) - Complexity = 8 ++ // Dst: (XVABSD_H:{ *:[v16i16] } ?:{ *:[v16i16] }:$xj, ?:{ *:[v16i16] }:$xk) ++/*584471*/ /*SwitchType*/ 10, MVT::v32i8,// ->584483 ++/*584473*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*584475*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVABSD_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVABSD:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$xj, v32i8:{ *:[v32i8] }:$xk, 0:{ *:[i32] }) - Complexity = 8 ++ // Dst: (XVABSD_B:{ *:[v32i8] } ?:{ *:[v32i8] }:$xj, ?:{ *:[v32i8] }:$xk) ++/*584483*/ 0, // EndSwitchType ++/*584484*/ /*SwitchOpcode*/ 102, TARGET_VAL(LoongArchISD::UVABSD),// ->584589 ++/*584487*/ OPC_RecordChild0, // #0 = $vj ++/*584488*/ OPC_RecordChild1, // #1 = $vk ++/*584489*/ OPC_CheckChild2Integer, 0, ++/*584491*/ OPC_SwitchType /*8 cases */, 10, MVT::v2i64,// ->584504 ++/*584494*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*584496*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VABSD_DU), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchUVABSD:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vj, v2i64:{ *:[v2i64] }:$vk, 0:{ *:[i32] }) - Complexity = 8 ++ // Dst: (VABSD_DU:{ *:[v2i64] } ?:{ *:[v2i64] }:$vj, ?:{ *:[v2i64] }:$vk) ++/*584504*/ /*SwitchType*/ 10, MVT::v4i32,// ->584516 ++/*584506*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*584508*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VABSD_WU), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchUVABSD:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vj, v4i32:{ *:[v4i32] }:$vk, 0:{ *:[i32] }) - Complexity = 8 ++ // Dst: (VABSD_WU:{ *:[v4i32] } ?:{ *:[v4i32] }:$vj, ?:{ *:[v4i32] }:$vk) ++/*584516*/ /*SwitchType*/ 10, MVT::v8i16,// ->584528 ++/*584518*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*584520*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VABSD_HU), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchUVABSD:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vj, v8i16:{ *:[v8i16] }:$vk, 0:{ *:[i32] }) - Complexity = 8 ++ // Dst: (VABSD_HU:{ *:[v8i16] } ?:{ *:[v8i16] }:$vj, ?:{ *:[v8i16] }:$vk) ++/*584528*/ /*SwitchType*/ 10, MVT::v16i8,// ->584540 ++/*584530*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*584532*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VABSD_BU), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchUVABSD:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vj, v16i8:{ *:[v16i8] }:$vk, 0:{ *:[i32] }) - Complexity = 8 ++ // Dst: (VABSD_BU:{ *:[v16i8] } ?:{ *:[v16i8] }:$vj, ?:{ *:[v16i8] }:$vk) ++/*584540*/ /*SwitchType*/ 10, MVT::v4i64,// ->584552 ++/*584542*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*584544*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVABSD_DU), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchUVABSD:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$xj, v4i64:{ *:[v4i64] }:$xk, 0:{ *:[i32] }) - Complexity = 8 ++ // Dst: (XVABSD_DU:{ *:[v4i64] } ?:{ *:[v4i64] }:$xj, ?:{ *:[v4i64] }:$xk) ++/*584552*/ /*SwitchType*/ 10, MVT::v8i32,// ->584564 ++/*584554*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*584556*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVABSD_WU), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchUVABSD:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$xj, v8i32:{ *:[v8i32] }:$xk, 0:{ *:[i32] }) - Complexity = 8 ++ // Dst: (XVABSD_WU:{ *:[v8i32] } ?:{ *:[v8i32] }:$xj, ?:{ *:[v8i32] }:$xk) ++/*584564*/ /*SwitchType*/ 10, MVT::v16i16,// ->584576 ++/*584566*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*584568*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVABSD_HU), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchUVABSD:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$xj, v16i16:{ *:[v16i16] }:$xk, 0:{ *:[i32] }) - Complexity = 8 ++ // Dst: (XVABSD_HU:{ *:[v16i16] } ?:{ *:[v16i16] }:$xj, ?:{ *:[v16i16] }:$xk) ++/*584576*/ /*SwitchType*/ 10, MVT::v32i8,// ->584588 ++/*584578*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*584580*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVABSD_BU), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchUVABSD:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$xj, v32i8:{ *:[v32i8] }:$xk, 0:{ *:[i32] }) - Complexity = 8 ++ // Dst: (XVABSD_BU:{ *:[v32i8] } ?:{ *:[v32i8] }:$xj, ?:{ *:[v32i8] }:$xk) ++/*584588*/ 0, // EndSwitchType ++/*584589*/ /*SwitchOpcode*/ 67|128,3/*451*/, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->585044 ++/*584593*/ OPC_RecordChild0, // #0 = $vec ++/*584594*/ OPC_Scope, 66|128,1/*194*/, /*->584791*/ // 5 children in Scope ++/*584597*/ OPC_CheckChild1Integer, 0, ++/*584599*/ OPC_Scope, 94, /*->584695*/ // 2 children in Scope ++/*584601*/ OPC_CheckChild1Type, MVT::i32, ++/*584603*/ OPC_SwitchType /*6 cases */, 13, MVT::v2i64,// ->584619 ++/*584606*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*584608*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/*584611*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (extract_subvector:{ *:[v2i64] } v4i64:{ *:[v4i64] }:$vec, 0:{ *:[i32] }) - Complexity = 8 ++ // Dst: (EXTRACT_SUBREG:{ *:[v2i64] } v4i64:{ *:[v4i64] }:$vec, sub_128:{ *:[i32] }) ++/*584619*/ /*SwitchType*/ 13, MVT::v4i32,// ->584634 ++/*584621*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*584623*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/*584626*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (extract_subvector:{ *:[v4i32] } v8i32:{ *:[v8i32] }:$vec, 0:{ *:[i32] }) - Complexity = 8 ++ // Dst: (EXTRACT_SUBREG:{ *:[v4i32] } v8i32:{ *:[v8i32] }:$vec, sub_128:{ *:[i32] }) ++/*584634*/ /*SwitchType*/ 13, MVT::v8i16,// ->584649 ++/*584636*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*584638*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/*584641*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (extract_subvector:{ *:[v8i16] } v16i16:{ *:[v16i16] }:$vec, 0:{ *:[i32] }) - Complexity = 8 ++ // Dst: (EXTRACT_SUBREG:{ *:[v8i16] } v16i16:{ *:[v16i16] }:$vec, sub_128:{ *:[i32] }) ++/*584649*/ /*SwitchType*/ 13, MVT::v16i8,// ->584664 ++/*584651*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*584653*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/*584656*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (extract_subvector:{ *:[v16i8] } v32i8:{ *:[v32i8] }:$vec, 0:{ *:[i32] }) - Complexity = 8 ++ // Dst: (EXTRACT_SUBREG:{ *:[v16i8] } v32i8:{ *:[v32i8] }:$vec, sub_128:{ *:[i32] }) ++/*584664*/ /*SwitchType*/ 13, MVT::v2f64,// ->584679 ++/*584666*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*584668*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/*584671*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::v2f64, 2/*#Ops*/, 0, 1, ++ // Src: (extract_subvector:{ *:[v2f64] } v4f64:{ *:[v4f64] }:$vec, 0:{ *:[i32] }) - Complexity = 8 ++ // Dst: (EXTRACT_SUBREG:{ *:[v2f64] } v4f64:{ *:[v4f64] }:$vec, sub_128:{ *:[i32] }) ++/*584679*/ /*SwitchType*/ 13, MVT::v4f32,// ->584694 ++/*584681*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*584683*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/*584686*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::v4f32, 2/*#Ops*/, 0, 1, ++ // Src: (extract_subvector:{ *:[v4f32] } v8f32:{ *:[v8f32] }:$vec, 0:{ *:[i32] }) - Complexity = 8 ++ // Dst: (EXTRACT_SUBREG:{ *:[v4f32] } v8f32:{ *:[v8f32] }:$vec, sub_128:{ *:[i32] }) ++/*584694*/ 0, // EndSwitchType ++/*584695*/ /*Scope*/ 94, /*->584790*/ ++/*584696*/ OPC_CheckChild1Type, MVT::i64, ++/*584698*/ OPC_SwitchType /*6 cases */, 13, MVT::v2i64,// ->584714 ++/*584701*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*584703*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/*584706*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (extract_subvector:{ *:[v2i64] } v4i64:{ *:[v4i64] }:$vec, 0:{ *:[i64] }) - Complexity = 8 ++ // Dst: (EXTRACT_SUBREG:{ *:[v2i64] } v4i64:{ *:[v4i64] }:$vec, sub_128:{ *:[i32] }) ++/*584714*/ /*SwitchType*/ 13, MVT::v4i32,// ->584729 ++/*584716*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*584718*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/*584721*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (extract_subvector:{ *:[v4i32] } v8i32:{ *:[v8i32] }:$vec, 0:{ *:[i64] }) - Complexity = 8 ++ // Dst: (EXTRACT_SUBREG:{ *:[v4i32] } v8i32:{ *:[v8i32] }:$vec, sub_128:{ *:[i32] }) ++/*584729*/ /*SwitchType*/ 13, MVT::v8i16,// ->584744 ++/*584731*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*584733*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/*584736*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (extract_subvector:{ *:[v8i16] } v16i16:{ *:[v16i16] }:$vec, 0:{ *:[i64] }) - Complexity = 8 ++ // Dst: (EXTRACT_SUBREG:{ *:[v8i16] } v16i16:{ *:[v16i16] }:$vec, sub_128:{ *:[i32] }) ++/*584744*/ /*SwitchType*/ 13, MVT::v16i8,// ->584759 ++/*584746*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*584748*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/*584751*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (extract_subvector:{ *:[v16i8] } v32i8:{ *:[v32i8] }:$vec, 0:{ *:[i64] }) - Complexity = 8 ++ // Dst: (EXTRACT_SUBREG:{ *:[v16i8] } v32i8:{ *:[v32i8] }:$vec, sub_128:{ *:[i32] }) ++/*584759*/ /*SwitchType*/ 13, MVT::v2f64,// ->584774 ++/*584761*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*584763*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/*584766*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::v2f64, 2/*#Ops*/, 0, 1, ++ // Src: (extract_subvector:{ *:[v2f64] } v4f64:{ *:[v4f64] }:$vec, 0:{ *:[i64] }) - Complexity = 8 ++ // Dst: (EXTRACT_SUBREG:{ *:[v2f64] } v4f64:{ *:[v4f64] }:$vec, sub_128:{ *:[i32] }) ++/*584774*/ /*SwitchType*/ 13, MVT::v4f32,// ->584789 ++/*584776*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*584778*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/*584781*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::v4f32, 2/*#Ops*/, 0, 1, ++ // Src: (extract_subvector:{ *:[v4f32] } v8f32:{ *:[v8f32] }:$vec, 0:{ *:[i64] }) - Complexity = 8 ++ // Dst: (EXTRACT_SUBREG:{ *:[v4f32] } v8f32:{ *:[v8f32] }:$vec, sub_128:{ *:[i32] }) ++/*584789*/ 0, // EndSwitchType ++/*584790*/ 0, /*End of Scope*/ ++/*584791*/ /*Scope*/ 62, /*->584854*/ ++/*584792*/ OPC_CheckChild1Integer, 2, ++/*584794*/ OPC_CheckType, MVT::v2i64, ++/*584796*/ OPC_Scope, 27, /*->584825*/ // 2 children in Scope ++/*584798*/ OPC_CheckChild1Type, MVT::i32, ++/*584800*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*584802*/ OPC_EmitInteger, MVT::i32, 1, ++/*584805*/ OPC_EmitNode1, TARGET_VAL(LoongArch::XVPERMI_QD), 0, ++ MVT::v4i64, 3/*#Ops*/, 0, 0, 1, // Results = #2 ++/*584814*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/*584817*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::v2i64, 2/*#Ops*/, 2, 3, ++ // Src: (extract_subvector:{ *:[v2i64] } v4i64:{ *:[v4i64] }:$vec, 2:{ *:[i32] }) - Complexity = 8 ++ // Dst: (EXTRACT_SUBREG:{ *:[v2i64] } (XVPERMI_QD:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vec, v4i64:{ *:[v4i64] }:$vec, 1:{ *:[i32] }), sub_128:{ *:[i32] }) ++/*584825*/ /*Scope*/ 27, /*->584853*/ ++/*584826*/ OPC_CheckChild1Type, MVT::i64, ++/*584828*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*584830*/ OPC_EmitInteger, MVT::i32, 1, ++/*584833*/ OPC_EmitNode1, TARGET_VAL(LoongArch::XVPERMI_QD), 0, ++ MVT::v4i64, 3/*#Ops*/, 0, 0, 1, // Results = #2 ++/*584842*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/*584845*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::v2i64, 2/*#Ops*/, 2, 3, ++ // Src: (extract_subvector:{ *:[v2i64] } v4i64:{ *:[v4i64] }:$vec, 2:{ *:[i64] }) - Complexity = 8 ++ // Dst: (EXTRACT_SUBREG:{ *:[v2i64] } (XVPERMI_QD:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$vec, v4i64:{ *:[v4i64] }:$vec, 1:{ *:[i32] }), sub_128:{ *:[i32] }) ++/*584853*/ 0, /*End of Scope*/ ++/*584854*/ /*Scope*/ 62, /*->584917*/ ++/*584855*/ OPC_CheckChild1Integer, 4, ++/*584857*/ OPC_CheckType, MVT::v4i32, ++/*584859*/ OPC_Scope, 27, /*->584888*/ // 2 children in Scope ++/*584861*/ OPC_CheckChild1Type, MVT::i32, ++/*584863*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*584865*/ OPC_EmitInteger, MVT::i32, 1, ++/*584868*/ OPC_EmitNode1, TARGET_VAL(LoongArch::XVPERMI_QW), 0, ++ MVT::v8i32, 3/*#Ops*/, 0, 0, 1, // Results = #2 ++/*584877*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/*584880*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::v4i32, 2/*#Ops*/, 2, 3, ++ // Src: (extract_subvector:{ *:[v4i32] } v8i32:{ *:[v8i32] }:$vec, 4:{ *:[i32] }) - Complexity = 8 ++ // Dst: (EXTRACT_SUBREG:{ *:[v4i32] } (XVPERMI_QW:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vec, v8i32:{ *:[v8i32] }:$vec, 1:{ *:[i32] }), sub_128:{ *:[i32] }) ++/*584888*/ /*Scope*/ 27, /*->584916*/ ++/*584889*/ OPC_CheckChild1Type, MVT::i64, ++/*584891*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*584893*/ OPC_EmitInteger, MVT::i32, 1, ++/*584896*/ OPC_EmitNode1, TARGET_VAL(LoongArch::XVPERMI_QW), 0, ++ MVT::v8i32, 3/*#Ops*/, 0, 0, 1, // Results = #2 ++/*584905*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/*584908*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::v4i32, 2/*#Ops*/, 2, 3, ++ // Src: (extract_subvector:{ *:[v4i32] } v8i32:{ *:[v8i32] }:$vec, 4:{ *:[i64] }) - Complexity = 8 ++ // Dst: (EXTRACT_SUBREG:{ *:[v4i32] } (XVPERMI_QW:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$vec, v8i32:{ *:[v8i32] }:$vec, 1:{ *:[i32] }), sub_128:{ *:[i32] }) ++/*584916*/ 0, /*End of Scope*/ ++/*584917*/ /*Scope*/ 62, /*->584980*/ ++/*584918*/ OPC_CheckChild1Integer, 8, ++/*584920*/ OPC_CheckType, MVT::v8i16, ++/*584922*/ OPC_Scope, 27, /*->584951*/ // 2 children in Scope ++/*584924*/ OPC_CheckChild1Type, MVT::i32, ++/*584926*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*584928*/ OPC_EmitInteger, MVT::i32, 1, ++/*584931*/ OPC_EmitNode1, TARGET_VAL(LoongArch::XVPERMI_QH), 0, ++ MVT::v16i16, 3/*#Ops*/, 0, 0, 1, // Results = #2 ++/*584940*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/*584943*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::v8i16, 2/*#Ops*/, 2, 3, ++ // Src: (extract_subvector:{ *:[v8i16] } v16i16:{ *:[v16i16] }:$vec, 8:{ *:[i32] }) - Complexity = 8 ++ // Dst: (EXTRACT_SUBREG:{ *:[v8i16] } (XVPERMI_QH:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vec, v16i16:{ *:[v16i16] }:$vec, 1:{ *:[i32] }), sub_128:{ *:[i32] }) ++/*584951*/ /*Scope*/ 27, /*->584979*/ ++/*584952*/ OPC_CheckChild1Type, MVT::i64, ++/*584954*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*584956*/ OPC_EmitInteger, MVT::i32, 1, ++/*584959*/ OPC_EmitNode1, TARGET_VAL(LoongArch::XVPERMI_QH), 0, ++ MVT::v16i16, 3/*#Ops*/, 0, 0, 1, // Results = #2 ++/*584968*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/*584971*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::v8i16, 2/*#Ops*/, 2, 3, ++ // Src: (extract_subvector:{ *:[v8i16] } v16i16:{ *:[v16i16] }:$vec, 8:{ *:[i64] }) - Complexity = 8 ++ // Dst: (EXTRACT_SUBREG:{ *:[v8i16] } (XVPERMI_QH:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$vec, v16i16:{ *:[v16i16] }:$vec, 1:{ *:[i32] }), sub_128:{ *:[i32] }) ++/*584979*/ 0, /*End of Scope*/ ++/*584980*/ /*Scope*/ 62, /*->585043*/ ++/*584981*/ OPC_CheckChild1Integer, 16, ++/*584983*/ OPC_CheckType, MVT::v16i8, ++/*584985*/ OPC_Scope, 27, /*->585014*/ // 2 children in Scope ++/*584987*/ OPC_CheckChild1Type, MVT::i32, ++/*584989*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*584991*/ OPC_EmitInteger, MVT::i32, 1, ++/*584994*/ OPC_EmitNode1, TARGET_VAL(LoongArch::XVPERMI_Q), 0, ++ MVT::v32i8, 3/*#Ops*/, 0, 0, 1, // Results = #2 ++/*585003*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/*585006*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::v16i8, 2/*#Ops*/, 2, 3, ++ // Src: (extract_subvector:{ *:[v16i8] } v32i8:{ *:[v32i8] }:$vec, 16:{ *:[i32] }) - Complexity = 8 ++ // Dst: (EXTRACT_SUBREG:{ *:[v16i8] } (XVPERMI_Q:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vec, v32i8:{ *:[v32i8] }:$vec, 1:{ *:[i32] }), sub_128:{ *:[i32] }) ++/*585014*/ /*Scope*/ 27, /*->585042*/ ++/*585015*/ OPC_CheckChild1Type, MVT::i64, ++/*585017*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*585019*/ OPC_EmitInteger, MVT::i32, 1, ++/*585022*/ OPC_EmitNode1, TARGET_VAL(LoongArch::XVPERMI_Q), 0, ++ MVT::v32i8, 3/*#Ops*/, 0, 0, 1, // Results = #2 ++/*585031*/ OPC_EmitInteger, MVT::i32, LoongArch::sub_128, ++/*585034*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0, ++ MVT::v16i8, 2/*#Ops*/, 2, 3, ++ // Src: (extract_subvector:{ *:[v16i8] } v32i8:{ *:[v32i8] }:$vec, 16:{ *:[i64] }) - Complexity = 8 ++ // Dst: (EXTRACT_SUBREG:{ *:[v16i8] } (XVPERMI_Q:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$vec, v32i8:{ *:[v32i8] }:$vec, 1:{ *:[i32] }), sub_128:{ *:[i32] }) ++/*585042*/ 0, /*End of Scope*/ ++/*585043*/ 0, /*End of Scope*/ ++/*585044*/ /*SwitchOpcode*/ 4|128,3/*388*/, TARGET_VAL(ISD::INSERT_VECTOR_ELT),// ->585436 ++/*585048*/ OPC_RecordChild0, // #0 = $vd_in ++/*585049*/ OPC_RecordChild1, // #1 = $rj ++/*585050*/ OPC_Scope, 60, /*->585112*/ // 8 children in Scope ++/*585052*/ OPC_CheckChild1Type, MVT::i32, ++/*585054*/ OPC_RecordChild2, // #2 = $ui4 ++/*585055*/ OPC_MoveChild2, ++/*585056*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*585059*/ OPC_Scope, 16, /*->585077*/ // 3 children in Scope ++/*585061*/ OPC_CheckPredicate, 23, // Predicate_immZExt4Ptr ++/*585063*/ OPC_MoveParent, ++/*585064*/ OPC_CheckType, MVT::v16i8, ++/*585066*/ OPC_EmitConvertToTarget, 2, ++/*585068*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VINSGR2VR_B), 0, ++ MVT::v16i8, 3/*#Ops*/, 0, 1, 3, ++ // Src: (vector_insert:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vd_in, GPR32Opnd:{ *:[i32] }:$rj, (imm:{ *:[iPTR] })<>:$ui4) - Complexity = 7 ++ // Dst: (VINSGR2VR_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vd_in, GPR32Opnd:{ *:[i32] }:$rj, (imm:{ *:[i32] }):$ui4) ++/*585077*/ /*Scope*/ 16, /*->585094*/ ++/*585078*/ OPC_CheckPredicate, 24, // Predicate_immZExt3Ptr ++/*585080*/ OPC_MoveParent, ++/*585081*/ OPC_CheckType, MVT::v8i16, ++/*585083*/ OPC_EmitConvertToTarget, 2, ++/*585085*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VINSGR2VR_H), 0, ++ MVT::v8i16, 3/*#Ops*/, 0, 1, 3, ++ // Src: (vector_insert:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vd_in, GPR32Opnd:{ *:[i32] }:$rj, (imm:{ *:[iPTR] })<>:$ui3) - Complexity = 7 ++ // Dst: (VINSGR2VR_H:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vd_in, GPR32Opnd:{ *:[i32] }:$rj, (imm:{ *:[i32] }):$ui3) ++/*585094*/ /*Scope*/ 16, /*->585111*/ ++/*585095*/ OPC_CheckPredicate, 25, // Predicate_immZExt2Ptr ++/*585097*/ OPC_MoveParent, ++/*585098*/ OPC_CheckType, MVT::v4i32, ++/*585100*/ OPC_EmitConvertToTarget, 2, ++/*585102*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VINSGR2VR_W), 0, ++ MVT::v4i32, 3/*#Ops*/, 0, 1, 3, ++ // Src: (vector_insert:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vd_in, GPR32Opnd:{ *:[i32] }:$rj, (imm:{ *:[iPTR] })<>:$ui2) - Complexity = 7 ++ // Dst: (VINSGR2VR_W:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vd_in, GPR32Opnd:{ *:[i32] }:$rj, (imm:{ *:[i32] }):$ui2) ++/*585111*/ 0, /*End of Scope*/ ++/*585112*/ /*Scope*/ 23, /*->585136*/ ++/*585113*/ OPC_CheckChild1Type, MVT::i64, ++/*585115*/ OPC_RecordChild2, // #2 = $ui1 ++/*585116*/ OPC_MoveChild2, ++/*585117*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*585120*/ OPC_CheckPredicate, 26, // Predicate_immZExt1Ptr ++/*585122*/ OPC_MoveParent, ++/*585123*/ OPC_CheckType, MVT::v2i64, ++/*585125*/ OPC_EmitConvertToTarget, 2, ++/*585127*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VINSGR2VR_D), 0, ++ MVT::v2i64, 3/*#Ops*/, 0, 1, 3, ++ // Src: (vector_insert:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vd_in, GPR64Opnd:{ *:[i64] }:$rj, (imm:{ *:[iPTR] })<>:$ui1) - Complexity = 7 ++ // Dst: (VINSGR2VR_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vd_in, GPR64Opnd:{ *:[i64] }:$rj, (imm:{ *:[i32] }):$ui1) ++/*585136*/ /*Scope*/ 41, /*->585178*/ ++/*585137*/ OPC_RecordChild2, // #2 = $ui3 ++/*585138*/ OPC_MoveChild2, ++/*585139*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*585142*/ OPC_Scope, 16, /*->585160*/ // 2 children in Scope ++/*585144*/ OPC_CheckPredicate, 24, // Predicate_immZExt3Ptr ++/*585146*/ OPC_MoveParent, ++/*585147*/ OPC_CheckType, MVT::v8i32, ++/*585149*/ OPC_EmitConvertToTarget, 2, ++/*585151*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVINSGR2VR_W), 0, ++ MVT::v8i32, 3/*#Ops*/, 0, 1, 3, ++ // Src: (insertelt:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xd_in, GPR32Opnd:{ *:[i32] }:$rj, (imm:{ *:[iPTR] })<>:$ui3) - Complexity = 7 ++ // Dst: (XVINSGR2VR_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xd_in, GPR32Opnd:{ *:[i32] }:$rj, (imm:{ *:[iPTR] }):$ui3) ++/*585160*/ /*Scope*/ 16, /*->585177*/ ++/*585161*/ OPC_CheckPredicate, 25, // Predicate_immZExt2Ptr ++/*585163*/ OPC_MoveParent, ++/*585164*/ OPC_CheckType, MVT::v4i64, ++/*585166*/ OPC_EmitConvertToTarget, 2, ++/*585168*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVINSGR2VR_D), 0, ++ MVT::v4i64, 3/*#Ops*/, 0, 1, 3, ++ // Src: (insertelt:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xd_in, GPR64Opnd:{ *:[i64] }:$rj, (imm:{ *:[iPTR] })<>:$ui2) - Complexity = 7 ++ // Dst: (XVINSGR2VR_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xd_in, GPR64Opnd:{ *:[i64] }:$rj, (imm:{ *:[iPTR] }):$ui2) ++/*585177*/ 0, /*End of Scope*/ ++/*585178*/ /*Scope*/ 97, /*->585276*/ ++/*585179*/ OPC_CheckChild1Type, MVT::i32, ++/*585181*/ OPC_RecordChild2, // #2 = $n ++/*585182*/ OPC_Scope, 44, /*->585228*/ // 3 children in Scope ++/*585184*/ OPC_MoveChild2, ++/*585185*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*585188*/ OPC_Scope, 18, /*->585208*/ // 2 children in Scope ++/*585190*/ OPC_CheckPredicate, 23, // Predicate_immZExt4Ptr ++/*585192*/ OPC_MoveParent, ++/*585193*/ OPC_CheckType, MVT::v16i16, ++/*585195*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*585197*/ OPC_EmitConvertToTarget, 2, ++/*585199*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XINSERT_H_PSEUDO), 0, ++ MVT::v16i16, 3/*#Ops*/, 0, 3, 1, ++ // Src: (vector_insert:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xd_in, GPR32Opnd:{ *:[i32] }:$fs, (imm:{ *:[iPTR] })<>:$n) - Complexity = 7 ++ // Dst: (XINSERT_H_PSEUDO:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xd_in, (imm:{ *:[iPTR] }):$n, GPR32Opnd:{ *:[i32] }:$fs) ++/*585208*/ /*Scope*/ 18, /*->585227*/ ++/*585209*/ OPC_CheckPredicate, 50, // Predicate_immZExt5Ptr ++/*585211*/ OPC_MoveParent, ++/*585212*/ OPC_CheckType, MVT::v32i8, ++/*585214*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*585216*/ OPC_EmitConvertToTarget, 2, ++/*585218*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XINSERT_B_PSEUDO), 0, ++ MVT::v32i8, 3/*#Ops*/, 0, 3, 1, ++ // Src: (vector_insert:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xd_in, GPR32Opnd:{ *:[i32] }:$fs, (imm:{ *:[iPTR] })<>:$n) - Complexity = 7 ++ // Dst: (XINSERT_B_PSEUDO:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xd_in, (imm:{ *:[iPTR] }):$n, GPR32Opnd:{ *:[i32] }:$fs) ++/*585227*/ 0, /*End of Scope*/ ++/*585228*/ /*Scope*/ 30, /*->585259*/ ++/*585229*/ OPC_CheckChild2Type, MVT::i64, ++/*585231*/ OPC_SwitchType /*2 cases */, 11, MVT::v8i16,// ->585245 ++/*585234*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*585236*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::INSERT_H_VIDX64_PSEUDO), 0, ++ MVT::v8i16, 3/*#Ops*/, 0, 2, 1, ++ // Src: (vector_insert:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vd_in, GPR32Opnd:{ *:[i32] }:$fs, GPR64Opnd:{ *:[i64] }:$n) - Complexity = 3 ++ // Dst: (INSERT_H_VIDX64_PSEUDO:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vd_in, GPR64Opnd:{ *:[i64] }:$n, GPR32Opnd:{ *:[i32] }:$fs) ++/*585245*/ /*SwitchType*/ 11, MVT::v32i8,// ->585258 ++/*585247*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*585249*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XINSERT_B_VIDX64_PSEUDO), 0, ++ MVT::v32i8, 3/*#Ops*/, 0, 2, 1, ++ // Src: (vector_insert:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xd_in, GPR32Opnd:{ *:[i32] }:$fs, GPR64Opnd:{ *:[i64] }:$n) - Complexity = 3 ++ // Dst: (XINSERT_B_VIDX64_PSEUDO:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xd_in, GPR64Opnd:{ *:[i64] }:$n, GPR32Opnd:{ *:[i32] }:$fs) ++/*585258*/ 0, // EndSwitchType ++/*585259*/ /*Scope*/ 15, /*->585275*/ ++/*585260*/ OPC_CheckChild2Type, MVT::i32, ++/*585262*/ OPC_CheckType, MVT::v32i8, ++/*585264*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*585266*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XINSERT_B_VIDX_PSEUDO), 0, ++ MVT::v32i8, 3/*#Ops*/, 0, 2, 1, ++ // Src: (vector_insert:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xd_in, GPR32Opnd:{ *:[i32] }:$fs, GPR32Opnd:{ *:[i32] }:$n) - Complexity = 3 ++ // Dst: (XINSERT_B_VIDX_PSEUDO:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xd_in, GPR32Opnd:{ *:[i32] }:$n, GPR32Opnd:{ *:[i32] }:$fs) ++/*585275*/ 0, /*End of Scope*/ ++/*585276*/ /*Scope*/ 25, /*->585302*/ ++/*585277*/ OPC_CheckChild1Type, MVT::i64, ++/*585279*/ OPC_RecordChild2, // #2 = $n ++/*585280*/ OPC_MoveChild2, ++/*585281*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*585284*/ OPC_CheckPredicate, 23, // Predicate_immZExt4Ptr ++/*585286*/ OPC_MoveParent, ++/*585287*/ OPC_CheckType, MVT::v16i16, ++/*585289*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*585291*/ OPC_EmitConvertToTarget, 2, ++/*585293*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XINSERT_H64_PSEUDO), 0, ++ MVT::v16i16, 3/*#Ops*/, 0, 3, 1, ++ // Src: (vector_insert:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xd_in, GPR64Opnd:{ *:[i64] }:$fs, (imm:{ *:[iPTR] })<>:$n) - Complexity = 7 ++ // Dst: (XINSERT_H64_PSEUDO:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xd_in, (imm:{ *:[iPTR] }):$n, GPR64Opnd:{ *:[i64] }:$fs) ++/*585302*/ /*Scope*/ 25, /*->585328*/ ++/*585303*/ OPC_CheckChild1Type, MVT::f32, ++/*585305*/ OPC_RecordChild2, // #2 = $n ++/*585306*/ OPC_MoveChild2, ++/*585307*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*585310*/ OPC_CheckPredicate, 25, // Predicate_immZExt2Ptr ++/*585312*/ OPC_MoveParent, ++/*585313*/ OPC_CheckType, MVT::v4f32, ++/*585315*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*585317*/ OPC_EmitConvertToTarget, 2, ++/*585319*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::INSERT_FW_PSEUDO), 0, ++ MVT::v4f32, 3/*#Ops*/, 0, 3, 1, ++ // Src: (vector_insert:{ *:[v4f32] } LSX128WOpnd:{ *:[v4f32] }:$vd_in, FGR32Opnd:{ *:[f32] }:$fs, (imm:{ *:[iPTR] })<>:$n) - Complexity = 7 ++ // Dst: (INSERT_FW_PSEUDO:{ *:[v4f32] } LSX128WOpnd:{ *:[v4f32] }:$vd_in, (imm:{ *:[i32] }):$n, FGR32Opnd:{ *:[f32] }:$fs) ++/*585328*/ /*Scope*/ 25, /*->585354*/ ++/*585329*/ OPC_CheckChild1Type, MVT::f64, ++/*585331*/ OPC_RecordChild2, // #2 = $n ++/*585332*/ OPC_MoveChild2, ++/*585333*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*585336*/ OPC_CheckPredicate, 26, // Predicate_immZExt1Ptr ++/*585338*/ OPC_MoveParent, ++/*585339*/ OPC_CheckType, MVT::v2f64, ++/*585341*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*585343*/ OPC_EmitConvertToTarget, 2, ++/*585345*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::INSERT_FD_PSEUDO), 0, ++ MVT::v2f64, 3/*#Ops*/, 0, 3, 1, ++ // Src: (vector_insert:{ *:[v2f64] } LSX128DOpnd:{ *:[v2f64] }:$vd_in, FGR64Opnd:{ *:[f64] }:$fs, (imm:{ *:[iPTR] })<>:$n) - Complexity = 7 ++ // Dst: (INSERT_FD_PSEUDO:{ *:[v2f64] } LSX128DOpnd:{ *:[v2f64] }:$vd_in, (imm:{ *:[i32] }):$n, FGR64Opnd:{ *:[f64] }:$fs) ++/*585354*/ /*Scope*/ 80, /*->585435*/ ++/*585355*/ OPC_RecordChild2, // #2 = $n ++/*585356*/ OPC_Scope, 44, /*->585402*/ // 3 children in Scope ++/*585358*/ OPC_MoveChild2, ++/*585359*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*585362*/ OPC_Scope, 18, /*->585382*/ // 2 children in Scope ++/*585364*/ OPC_CheckPredicate, 24, // Predicate_immZExt3Ptr ++/*585366*/ OPC_MoveParent, ++/*585367*/ OPC_CheckType, MVT::v8f32, ++/*585369*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*585371*/ OPC_EmitConvertToTarget, 2, ++/*585373*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XINSERT_FW_PSEUDO), 0, ++ MVT::v8f32, 3/*#Ops*/, 0, 3, 1, ++ // Src: (insertelt:{ *:[v8f32] } LASX256WOpnd:{ *:[v8f32] }:$xd_in, FGR32Opnd:{ *:[f32] }:$fs, (imm:{ *:[iPTR] })<>:$n) - Complexity = 7 ++ // Dst: (XINSERT_FW_PSEUDO:{ *:[v8f32] } LASX256WOpnd:{ *:[v8f32] }:$xd_in, (imm:{ *:[iPTR] }):$n, FGR32Opnd:{ *:[f32] }:$fs) ++/*585382*/ /*Scope*/ 18, /*->585401*/ ++/*585383*/ OPC_CheckPredicate, 25, // Predicate_immZExt2Ptr ++/*585385*/ OPC_MoveParent, ++/*585386*/ OPC_CheckType, MVT::v4f64, ++/*585388*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*585390*/ OPC_EmitConvertToTarget, 2, ++/*585392*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XINSERT_FD_PSEUDO), 0, ++ MVT::v4f64, 3/*#Ops*/, 0, 3, 1, ++ // Src: (insertelt:{ *:[v4f64] } LASX256DOpnd:{ *:[v4f64] }:$xd_in, FGR64Opnd:{ *:[f64] }:$fs, (imm:{ *:[iPTR] })<>:$n) - Complexity = 7 ++ // Dst: (XINSERT_FD_PSEUDO:{ *:[v4f64] } LASX256DOpnd:{ *:[v4f64] }:$xd_in, (imm:{ *:[iPTR] }):$n, FGR64Opnd:{ *:[f64] }:$fs) ++/*585401*/ 0, /*End of Scope*/ ++/*585402*/ /*Scope*/ 15, /*->585418*/ ++/*585403*/ OPC_CheckChild2Type, MVT::i32, ++/*585405*/ OPC_CheckType, MVT::v8f32, ++/*585407*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*585409*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XINSERT_FW_VIDX_PSEUDO), 0, ++ MVT::v8f32, 3/*#Ops*/, 0, 2, 1, ++ // Src: (insertelt:{ *:[v8f32] } LASX256WOpnd:{ *:[v8f32] }:$xd_in, FGR32Opnd:{ *:[f32] }:$fs, GPR32Opnd:{ *:[i32] }:$n) - Complexity = 3 ++ // Dst: (XINSERT_FW_VIDX_PSEUDO:{ *:[v8f32] } LASX256WOpnd:{ *:[v8f32] }:$xd_in, GPR32Opnd:{ *:[i32] }:$n, FGR32Opnd:{ *:[f32] }:$fs) ++/*585418*/ /*Scope*/ 15, /*->585434*/ ++/*585419*/ OPC_CheckChild2Type, MVT::i64, ++/*585421*/ OPC_CheckType, MVT::v8f32, ++/*585423*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*585425*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XINSERT_FW_VIDX64_PSEUDO), 0, ++ MVT::v8f32, 3/*#Ops*/, 0, 2, 1, ++ // Src: (insertelt:{ *:[v8f32] } LASX256WOpnd:{ *:[v8f32] }:$xd_in, FGR32Opnd:{ *:[f32] }:$fs, GPR64Opnd:{ *:[i64] }:$n) - Complexity = 3 ++ // Dst: (XINSERT_FW_VIDX64_PSEUDO:{ *:[v8f32] } LASX256WOpnd:{ *:[v8f32] }:$xd_in, GPR64Opnd:{ *:[i64] }:$n, FGR32Opnd:{ *:[f32] }:$fs) ++/*585434*/ 0, /*End of Scope*/ ++/*585435*/ 0, /*End of Scope*/ ++/*585436*/ /*SwitchOpcode*/ 47, TARGET_VAL(LoongArchISD::SHF),// ->585486 ++/*585439*/ OPC_RecordChild0, // #0 = $ui8 ++/*585440*/ OPC_MoveChild0, ++/*585441*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*585444*/ OPC_CheckPredicate, 31, // Predicate_immZExt8 ++/*585446*/ OPC_MoveParent, ++/*585447*/ OPC_RecordChild1, // #1 = $vj ++/*585448*/ OPC_SwitchType /*3 cases */, 10, MVT::v16i8,// ->585461 ++/*585451*/ OPC_EmitConvertToTarget, 0, ++/*585453*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSHUF4I_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 1, 2, ++ // Src: (LoongArchSHF:{ *:[v16i8] } (imm:{ *:[i32] })<>:$ui8, LSX128BOpnd:{ *:[v16i8] }:$vj) - Complexity = 7 ++ // Dst: (VSHUF4I_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[i32] }):$ui8) ++/*585461*/ /*SwitchType*/ 10, MVT::v8i16,// ->585473 ++/*585463*/ OPC_EmitConvertToTarget, 0, ++/*585465*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSHUF4I_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 1, 2, ++ // Src: (LoongArchSHF:{ *:[v8i16] } (imm:{ *:[i32] })<>:$ui8, LSX128HOpnd:{ *:[v8i16] }:$vj) - Complexity = 7 ++ // Dst: (VSHUF4I_H:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, (imm:{ *:[i32] }):$ui8) ++/*585473*/ /*SwitchType*/ 10, MVT::v4i32,// ->585485 ++/*585475*/ OPC_EmitConvertToTarget, 0, ++/*585477*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VSHUF4I_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 1, 2, ++ // Src: (LoongArchSHF:{ *:[v4i32] } (imm:{ *:[i32] })<>:$ui8, LSX128WOpnd:{ *:[v4i32] }:$vj) - Complexity = 7 ++ // Dst: (VSHUF4I_W:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, (imm:{ *:[i32] }):$ui8) ++/*585485*/ 0, // EndSwitchType ++/*585486*/ /*SwitchOpcode*/ 72, TARGET_VAL(LoongArchISD::VRORI),// ->585561 ++/*585489*/ OPC_RecordChild0, // #0 = $vj ++/*585490*/ OPC_RecordChild1, // #1 = $ui3 ++/*585491*/ OPC_MoveChild1, ++/*585492*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*585495*/ OPC_Scope, 15, /*->585512*/ // 4 children in Scope ++/*585497*/ OPC_CheckPredicate, 24, // Predicate_immZExt3 ++/*585499*/ OPC_MoveParent, ++/*585500*/ OPC_CheckType, MVT::v16i8, ++/*585502*/ OPC_EmitConvertToTarget, 1, ++/*585504*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VROTRI_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 2, ++ // Src: (LoongArchVRORI:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[i32] })<>:$ui3) - Complexity = 7 ++ // Dst: (VROTRI_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, (imm:{ *:[i32] }):$ui3) ++/*585512*/ /*Scope*/ 15, /*->585528*/ ++/*585513*/ OPC_CheckPredicate, 23, // Predicate_immZExt4 ++/*585515*/ OPC_MoveParent, ++/*585516*/ OPC_CheckType, MVT::v8i16, ++/*585518*/ OPC_EmitConvertToTarget, 1, ++/*585520*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VROTRI_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 2, ++ // Src: (LoongArchVRORI:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, (imm:{ *:[i32] })<>:$ui4) - Complexity = 7 ++ // Dst: (VROTRI_H:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, (imm:{ *:[i32] }):$ui4) ++/*585528*/ /*Scope*/ 15, /*->585544*/ ++/*585529*/ OPC_CheckPredicate, 15, // Predicate_immZExt5 ++/*585531*/ OPC_MoveParent, ++/*585532*/ OPC_CheckType, MVT::v4i32, ++/*585534*/ OPC_EmitConvertToTarget, 1, ++/*585536*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VROTRI_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 2, ++ // Src: (LoongArchVRORI:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, (imm:{ *:[i32] })<>:$ui5) - Complexity = 7 ++ // Dst: (VROTRI_W:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, (imm:{ *:[i32] }):$ui5) ++/*585544*/ /*Scope*/ 15, /*->585560*/ ++/*585545*/ OPC_CheckPredicate, 30, // Predicate_immZExt6 ++/*585547*/ OPC_MoveParent, ++/*585548*/ OPC_CheckType, MVT::v2i64, ++/*585550*/ OPC_EmitConvertToTarget, 1, ++/*585552*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VROTRI_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 2, ++ // Src: (LoongArchVRORI:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, (imm:{ *:[i32] })<>:$ui6) - Complexity = 7 ++ // Dst: (VROTRI_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, (imm:{ *:[i32] }):$ui6) ++/*585560*/ 0, /*End of Scope*/ ++/*585561*/ /*SwitchOpcode*/ 47, TARGET_VAL(LoongArchISD::INSVE),// ->585611 ++/*585564*/ OPC_RecordChild0, // #0 = $a ++/*585565*/ OPC_RecordChild1, // #1 = $b ++/*585566*/ OPC_RecordChild2, // #2 = $ui3 ++/*585567*/ OPC_MoveChild2, ++/*585568*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*585571*/ OPC_Scope, 18, /*->585591*/ // 2 children in Scope ++/*585573*/ OPC_CheckPredicate, 48, // Predicate_uimm3 ++/*585575*/ OPC_MoveParent, ++/*585576*/ OPC_CheckType, MVT::v8i32, ++/*585578*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*585580*/ OPC_EmitConvertToTarget, 2, ++/*585582*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVINSVE0_W), 0, ++ MVT::v8i32, 3/*#Ops*/, 0, 1, 3, ++ // Src: (LoongArchINSVE:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b, (imm:{ *:[i32] })<>:$ui3) - Complexity = 7 ++ // Dst: (XVINSVE0_W:{ *:[v8i32] } LASX256W:{ *:[v8i32] }:$a, LASX256W:{ *:[v8i32] }:$b, (imm:{ *:[i32] })<>:$ui3) ++/*585591*/ /*Scope*/ 18, /*->585610*/ ++/*585592*/ OPC_CheckPredicate, 49, // Predicate_uimm2 ++/*585594*/ OPC_MoveParent, ++/*585595*/ OPC_CheckType, MVT::v4i64, ++/*585597*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*585599*/ OPC_EmitConvertToTarget, 2, ++/*585601*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVINSVE0_D), 0, ++ MVT::v4i64, 3/*#Ops*/, 0, 1, 3, ++ // Src: (LoongArchINSVE:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b, (imm:{ *:[i32] })<>:$ui2) - Complexity = 7 ++ // Dst: (XVINSVE0_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b, (imm:{ *:[i32] })<>:$ui2) ++/*585610*/ 0, /*End of Scope*/ ++/*585611*/ /*SwitchOpcode*/ 25, TARGET_VAL(LoongArchISD::XVSHUF4I),// ->585639 ++/*585614*/ OPC_RecordChild0, // #0 = $a ++/*585615*/ OPC_RecordChild1, // #1 = $b ++/*585616*/ OPC_RecordChild2, // #2 = $ui8 ++/*585617*/ OPC_MoveChild2, ++/*585618*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*585621*/ OPC_CheckPredicate, 51, // Predicate_uimm8_32 ++/*585623*/ OPC_MoveParent, ++/*585624*/ OPC_CheckType, MVT::v4i64, ++/*585626*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*585628*/ OPC_EmitConvertToTarget, 2, ++/*585630*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSHUF4I_D), 0, ++ MVT::v4i64, 3/*#Ops*/, 0, 1, 3, ++ // Src: (LoongArchXVSHUF4I:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b, (imm:{ *:[i32] })<>:$ui8) - Complexity = 7 ++ // Dst: (XVSHUF4I_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, LASX256D:{ *:[v4i64] }:$b, (imm:{ *:[i32] })<>:$ui8) ++/*585639*/ /*SwitchOpcode*/ 23, TARGET_VAL(LoongArchISD::XVPERMI),// ->585665 ++/*585642*/ OPC_RecordChild0, // #0 = $a ++/*585643*/ OPC_RecordChild1, // #1 = $ui8 ++/*585644*/ OPC_MoveChild1, ++/*585645*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant), ++/*585648*/ OPC_CheckPredicate, 51, // Predicate_uimm8_32 ++/*585650*/ OPC_MoveParent, ++/*585651*/ OPC_CheckType, MVT::v4i64, ++/*585653*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*585655*/ OPC_EmitConvertToTarget, 1, ++/*585657*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPERMI_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 2, ++ // Src: (LoongArchXVPERMI:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (imm:{ *:[i32] })<>:$ui8) - Complexity = 7 ++ // Dst: (XVPERMI_D:{ *:[v4i64] } LASX256D:{ *:[v4i64] }:$a, (imm:{ *:[i32] })<>:$ui8) ++/*585665*/ /*SwitchOpcode*/ 84, TARGET_VAL(LoongArchISD::VPACKEV),// ->585752 ++/*585668*/ OPC_RecordChild0, // #0 = $vj ++/*585669*/ OPC_RecordChild1, // #1 = $vk ++/*585670*/ OPC_SwitchType /*8 cases */, 8, MVT::v16i8,// ->585681 ++/*585673*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VPACKEV_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVPACKEV:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) - Complexity = 3 ++ // Dst: (VPACKEV_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/*585681*/ /*SwitchType*/ 8, MVT::v8i16,// ->585691 ++/*585683*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VPACKEV_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVPACKEV:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 3 ++ // Dst: (VPACKEV_H:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/*585691*/ /*SwitchType*/ 8, MVT::v4i32,// ->585701 ++/*585693*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VPACKEV_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVPACKEV:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 3 ++ // Dst: (VPACKEV_W:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/*585701*/ /*SwitchType*/ 8, MVT::v2i64,// ->585711 ++/*585703*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VPACKEV_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVPACKEV:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 3 ++ // Dst: (VPACKEV_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/*585711*/ /*SwitchType*/ 8, MVT::v32i8,// ->585721 ++/*585713*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPACKEV_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVPACKEV:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 3 ++ // Dst: (XVPACKEV_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/*585721*/ /*SwitchType*/ 8, MVT::v16i16,// ->585731 ++/*585723*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPACKEV_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVPACKEV:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 3 ++ // Dst: (XVPACKEV_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/*585731*/ /*SwitchType*/ 8, MVT::v8i32,// ->585741 ++/*585733*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPACKEV_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVPACKEV:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 3 ++ // Dst: (XVPACKEV_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/*585741*/ /*SwitchType*/ 8, MVT::v4i64,// ->585751 ++/*585743*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPACKEV_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVPACKEV:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 3 ++ // Dst: (XVPACKEV_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/*585751*/ 0, // EndSwitchType ++/*585752*/ /*SwitchOpcode*/ 84, TARGET_VAL(LoongArchISD::VPACKOD),// ->585839 ++/*585755*/ OPC_RecordChild0, // #0 = $vj ++/*585756*/ OPC_RecordChild1, // #1 = $vk ++/*585757*/ OPC_SwitchType /*8 cases */, 8, MVT::v16i8,// ->585768 ++/*585760*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VPACKOD_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVPACKOD:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) - Complexity = 3 ++ // Dst: (VPACKOD_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/*585768*/ /*SwitchType*/ 8, MVT::v8i16,// ->585778 ++/*585770*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VPACKOD_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVPACKOD:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 3 ++ // Dst: (VPACKOD_H:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/*585778*/ /*SwitchType*/ 8, MVT::v4i32,// ->585788 ++/*585780*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VPACKOD_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVPACKOD:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 3 ++ // Dst: (VPACKOD_W:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/*585788*/ /*SwitchType*/ 8, MVT::v2i64,// ->585798 ++/*585790*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VPACKOD_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVPACKOD:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 3 ++ // Dst: (VPACKOD_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/*585798*/ /*SwitchType*/ 8, MVT::v32i8,// ->585808 ++/*585800*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPACKOD_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVPACKOD:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 3 ++ // Dst: (XVPACKOD_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/*585808*/ /*SwitchType*/ 8, MVT::v16i16,// ->585818 ++/*585810*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPACKOD_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVPACKOD:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 3 ++ // Dst: (XVPACKOD_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/*585818*/ /*SwitchType*/ 8, MVT::v8i32,// ->585828 ++/*585820*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPACKOD_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVPACKOD:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 3 ++ // Dst: (XVPACKOD_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/*585828*/ /*SwitchType*/ 8, MVT::v4i64,// ->585838 ++/*585830*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPACKOD_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVPACKOD:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 3 ++ // Dst: (XVPACKOD_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/*585838*/ 0, // EndSwitchType ++/*585839*/ /*SwitchOpcode*/ 84, TARGET_VAL(LoongArchISD::VILVL),// ->585926 ++/*585842*/ OPC_RecordChild0, // #0 = $vj ++/*585843*/ OPC_RecordChild1, // #1 = $vk ++/*585844*/ OPC_SwitchType /*8 cases */, 8, MVT::v16i8,// ->585855 ++/*585847*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VILVL_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVILVL:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) - Complexity = 3 ++ // Dst: (VILVL_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/*585855*/ /*SwitchType*/ 8, MVT::v8i16,// ->585865 ++/*585857*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VILVL_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVILVL:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 3 ++ // Dst: (VILVL_H:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/*585865*/ /*SwitchType*/ 8, MVT::v4i32,// ->585875 ++/*585867*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VILVL_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVILVL:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 3 ++ // Dst: (VILVL_W:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/*585875*/ /*SwitchType*/ 8, MVT::v2i64,// ->585885 ++/*585877*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VILVL_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVILVL:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 3 ++ // Dst: (VILVL_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/*585885*/ /*SwitchType*/ 8, MVT::v32i8,// ->585895 ++/*585887*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVILVL_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVILVL:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 3 ++ // Dst: (XVILVL_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/*585895*/ /*SwitchType*/ 8, MVT::v16i16,// ->585905 ++/*585897*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVILVL_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVILVL:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 3 ++ // Dst: (XVILVL_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/*585905*/ /*SwitchType*/ 8, MVT::v8i32,// ->585915 ++/*585907*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVILVL_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVILVL:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 3 ++ // Dst: (XVILVL_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/*585915*/ /*SwitchType*/ 8, MVT::v4i64,// ->585925 ++/*585917*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVILVL_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVILVL:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 3 ++ // Dst: (XVILVL_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/*585925*/ 0, // EndSwitchType ++/*585926*/ /*SwitchOpcode*/ 84, TARGET_VAL(LoongArchISD::VILVH),// ->586013 ++/*585929*/ OPC_RecordChild0, // #0 = $vj ++/*585930*/ OPC_RecordChild1, // #1 = $vk ++/*585931*/ OPC_SwitchType /*8 cases */, 8, MVT::v16i8,// ->585942 ++/*585934*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VILVH_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVILVH:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) - Complexity = 3 ++ // Dst: (VILVH_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/*585942*/ /*SwitchType*/ 8, MVT::v8i16,// ->585952 ++/*585944*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VILVH_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVILVH:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 3 ++ // Dst: (VILVH_H:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/*585952*/ /*SwitchType*/ 8, MVT::v4i32,// ->585962 ++/*585954*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VILVH_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVILVH:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 3 ++ // Dst: (VILVH_W:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/*585962*/ /*SwitchType*/ 8, MVT::v2i64,// ->585972 ++/*585964*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VILVH_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVILVH:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 3 ++ // Dst: (VILVH_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/*585972*/ /*SwitchType*/ 8, MVT::v32i8,// ->585982 ++/*585974*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVILVH_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVILVH:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 3 ++ // Dst: (XVILVH_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/*585982*/ /*SwitchType*/ 8, MVT::v16i16,// ->585992 ++/*585984*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVILVH_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVILVH:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 3 ++ // Dst: (XVILVH_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/*585992*/ /*SwitchType*/ 8, MVT::v8i32,// ->586002 ++/*585994*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVILVH_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVILVH:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 3 ++ // Dst: (XVILVH_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/*586002*/ /*SwitchType*/ 8, MVT::v4i64,// ->586012 ++/*586004*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVILVH_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVILVH:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 3 ++ // Dst: (XVILVH_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/*586012*/ 0, // EndSwitchType ++/*586013*/ /*SwitchOpcode*/ 84, TARGET_VAL(LoongArchISD::VPICKEV),// ->586100 ++/*586016*/ OPC_RecordChild0, // #0 = $vj ++/*586017*/ OPC_RecordChild1, // #1 = $vk ++/*586018*/ OPC_SwitchType /*8 cases */, 8, MVT::v16i8,// ->586029 ++/*586021*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VPICKEV_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVPICKEV:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) - Complexity = 3 ++ // Dst: (VPICKEV_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/*586029*/ /*SwitchType*/ 8, MVT::v8i16,// ->586039 ++/*586031*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VPICKEV_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVPICKEV:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 3 ++ // Dst: (VPICKEV_H:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/*586039*/ /*SwitchType*/ 8, MVT::v4i32,// ->586049 ++/*586041*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VPICKEV_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVPICKEV:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 3 ++ // Dst: (VPICKEV_W:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/*586049*/ /*SwitchType*/ 8, MVT::v2i64,// ->586059 ++/*586051*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VPICKEV_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVPICKEV:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 3 ++ // Dst: (VPICKEV_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/*586059*/ /*SwitchType*/ 8, MVT::v32i8,// ->586069 ++/*586061*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPICKEV_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVPICKEV:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 3 ++ // Dst: (XVPICKEV_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/*586069*/ /*SwitchType*/ 8, MVT::v16i16,// ->586079 ++/*586071*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPICKEV_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVPICKEV:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 3 ++ // Dst: (XVPICKEV_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/*586079*/ /*SwitchType*/ 8, MVT::v8i32,// ->586089 ++/*586081*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPICKEV_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVPICKEV:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 3 ++ // Dst: (XVPICKEV_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/*586089*/ /*SwitchType*/ 8, MVT::v4i64,// ->586099 ++/*586091*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPICKEV_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVPICKEV:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 3 ++ // Dst: (XVPICKEV_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/*586099*/ 0, // EndSwitchType ++/*586100*/ /*SwitchOpcode*/ 84, TARGET_VAL(LoongArchISD::VPICKOD),// ->586187 ++/*586103*/ OPC_RecordChild0, // #0 = $vj ++/*586104*/ OPC_RecordChild1, // #1 = $vk ++/*586105*/ OPC_SwitchType /*8 cases */, 8, MVT::v16i8,// ->586116 ++/*586108*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VPICKOD_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVPICKOD:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) - Complexity = 3 ++ // Dst: (VPICKOD_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/*586116*/ /*SwitchType*/ 8, MVT::v8i16,// ->586126 ++/*586118*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VPICKOD_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVPICKOD:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 3 ++ // Dst: (VPICKOD_H:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/*586126*/ /*SwitchType*/ 8, MVT::v4i32,// ->586136 ++/*586128*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VPICKOD_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVPICKOD:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 3 ++ // Dst: (VPICKOD_W:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/*586136*/ /*SwitchType*/ 8, MVT::v2i64,// ->586146 ++/*586138*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VPICKOD_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVPICKOD:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 3 ++ // Dst: (VPICKOD_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/*586146*/ /*SwitchType*/ 8, MVT::v32i8,// ->586156 ++/*586148*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPICKOD_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVPICKOD:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 3 ++ // Dst: (XVPICKOD_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/*586156*/ /*SwitchType*/ 8, MVT::v16i16,// ->586166 ++/*586158*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPICKOD_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVPICKOD:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 3 ++ // Dst: (XVPICKOD_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/*586166*/ /*SwitchType*/ 8, MVT::v8i32,// ->586176 ++/*586168*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPICKOD_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVPICKOD:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 3 ++ // Dst: (XVPICKOD_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/*586176*/ /*SwitchType*/ 8, MVT::v4i64,// ->586186 ++/*586178*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPICKOD_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVPICKOD:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 3 ++ // Dst: (XVPICKOD_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/*586186*/ 0, // EndSwitchType ++/*586187*/ /*SwitchOpcode*/ 96, TARGET_VAL(LoongArchISD::VNOR),// ->586286 ++/*586190*/ OPC_RecordChild0, // #0 = $vj ++/*586191*/ OPC_RecordChild1, // #1 = $vk ++/*586192*/ OPC_SwitchType /*8 cases */, 8, MVT::v16i8,// ->586203 ++/*586195*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VNOR_V), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVNOR:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) - Complexity = 3 ++ // Dst: (VNOR_V:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/*586203*/ /*SwitchType*/ 10, MVT::v8i16,// ->586215 ++/*586205*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*586207*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::NOR_V_H_PSEUDO), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVNOR:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 3 ++ // Dst: (NOR_V_H_PSEUDO:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/*586215*/ /*SwitchType*/ 10, MVT::v4i32,// ->586227 ++/*586217*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*586219*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::NOR_V_W_PSEUDO), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVNOR:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 3 ++ // Dst: (NOR_V_W_PSEUDO:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/*586227*/ /*SwitchType*/ 10, MVT::v2i64,// ->586239 ++/*586229*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*586231*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::NOR_V_D_PSEUDO), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVNOR:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 3 ++ // Dst: (NOR_V_D_PSEUDO:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/*586239*/ /*SwitchType*/ 8, MVT::v32i8,// ->586249 ++/*586241*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVNOR_V), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVNOR:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 3 ++ // Dst: (XVNOR_V:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/*586249*/ /*SwitchType*/ 10, MVT::v16i16,// ->586261 ++/*586251*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*586253*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XNOR_V_H_PSEUDO), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVNOR:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 3 ++ // Dst: (XNOR_V_H_PSEUDO:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/*586261*/ /*SwitchType*/ 10, MVT::v8i32,// ->586273 ++/*586263*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*586265*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XNOR_V_W_PSEUDO), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVNOR:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 3 ++ // Dst: (XNOR_V_W_PSEUDO:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/*586273*/ /*SwitchType*/ 10, MVT::v4i64,// ->586285 ++/*586275*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*586277*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XNOR_V_D_PSEUDO), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVNOR:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 3 ++ // Dst: (XNOR_V_D_PSEUDO:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/*586285*/ 0, // EndSwitchType ++/*586286*/ /*SwitchOpcode*/ 91, TARGET_VAL(ISD::CTPOP),// ->586380 ++/*586289*/ OPC_RecordChild0, // #0 = $vj ++/*586290*/ OPC_SwitchType /*8 cases */, 9, MVT::v16i8,// ->586302 ++/*586293*/ OPC_CheckChild0Type, MVT::v16i8, ++/*586295*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VPCNT_B), 0, ++ MVT::v16i8, 1/*#Ops*/, 0, ++ // Src: (ctpop:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj) - Complexity = 3 ++ // Dst: (VPCNT_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj) ++/*586302*/ /*SwitchType*/ 9, MVT::v8i16,// ->586313 ++/*586304*/ OPC_CheckChild0Type, MVT::v8i16, ++/*586306*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VPCNT_H), 0, ++ MVT::v8i16, 1/*#Ops*/, 0, ++ // Src: (ctpop:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj) - Complexity = 3 ++ // Dst: (VPCNT_H:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj) ++/*586313*/ /*SwitchType*/ 9, MVT::v4i32,// ->586324 ++/*586315*/ OPC_CheckChild0Type, MVT::v4i32, ++/*586317*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VPCNT_W), 0, ++ MVT::v4i32, 1/*#Ops*/, 0, ++ // Src: (ctpop:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj) - Complexity = 3 ++ // Dst: (VPCNT_W:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj) ++/*586324*/ /*SwitchType*/ 9, MVT::v2i64,// ->586335 ++/*586326*/ OPC_CheckChild0Type, MVT::v2i64, ++/*586328*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VPCNT_D), 0, ++ MVT::v2i64, 1/*#Ops*/, 0, ++ // Src: (ctpop:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj) - Complexity = 3 ++ // Dst: (VPCNT_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj) ++/*586335*/ /*SwitchType*/ 9, MVT::v32i8,// ->586346 ++/*586337*/ OPC_CheckChild0Type, MVT::v32i8, ++/*586339*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPCNT_B), 0, ++ MVT::v32i8, 1/*#Ops*/, 0, ++ // Src: (ctpop:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj) - Complexity = 3 ++ // Dst: (XVPCNT_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj) ++/*586346*/ /*SwitchType*/ 9, MVT::v16i16,// ->586357 ++/*586348*/ OPC_CheckChild0Type, MVT::v16i16, ++/*586350*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPCNT_H), 0, ++ MVT::v16i16, 1/*#Ops*/, 0, ++ // Src: (ctpop:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj) - Complexity = 3 ++ // Dst: (XVPCNT_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj) ++/*586357*/ /*SwitchType*/ 9, MVT::v8i32,// ->586368 ++/*586359*/ OPC_CheckChild0Type, MVT::v8i32, ++/*586361*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPCNT_W), 0, ++ MVT::v8i32, 1/*#Ops*/, 0, ++ // Src: (ctpop:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj) - Complexity = 3 ++ // Dst: (XVPCNT_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj) ++/*586368*/ /*SwitchType*/ 9, MVT::v4i64,// ->586379 ++/*586370*/ OPC_CheckChild0Type, MVT::v4i64, ++/*586372*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVPCNT_D), 0, ++ MVT::v4i64, 1/*#Ops*/, 0, ++ // Src: (ctpop:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj) - Complexity = 3 ++ // Dst: (XVPCNT_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj) ++/*586379*/ 0, // EndSwitchType ++/*586380*/ /*SwitchOpcode*/ 43, TARGET_VAL(ISD::FP_TO_UINT),// ->586426 ++/*586383*/ OPC_RecordChild0, // #0 = $vj ++/*586384*/ OPC_SwitchType /*4 cases */, 9, MVT::v4i32,// ->586396 ++/*586387*/ OPC_CheckChild0Type, MVT::v4f32, ++/*586389*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFTINTRZ_WU_S), 0, ++ MVT::v4i32, 1/*#Ops*/, 0, ++ // Src: (fp_to_uint:{ *:[v4i32] } LSX128WOpnd:{ *:[v4f32] }:$vj) - Complexity = 3 ++ // Dst: (VFTINTRZ_WU_S:{ *:[v4i32] } LSX128WOpnd:{ *:[v4f32] }:$vj) ++/*586396*/ /*SwitchType*/ 7, MVT::v2i64,// ->586405 ++/*586398*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFTINTRZ_LU_D), 0, ++ MVT::v2i64, 1/*#Ops*/, 0, ++ // Src: (fp_to_uint:{ *:[v2i64] } LSX128DOpnd:{ *:[v2f64] }:$vj) - Complexity = 3 ++ // Dst: (VFTINTRZ_LU_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2f64] }:$vj) ++/*586405*/ /*SwitchType*/ 7, MVT::v8i32,// ->586414 ++/*586407*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFTINTRZ_WU_S), 0, ++ MVT::v8i32, 1/*#Ops*/, 0, ++ // Src: (fp_to_uint:{ *:[v8i32] } LASX256WOpnd:{ *:[v8f32] }:$xj) - Complexity = 3 ++ // Dst: (XVFTINTRZ_WU_S:{ *:[v8i32] } LASX256WOpnd:{ *:[v8f32] }:$xj) ++/*586414*/ /*SwitchType*/ 9, MVT::v4i64,// ->586425 ++/*586416*/ OPC_CheckChild0Type, MVT::v4f64, ++/*586418*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFTINTRZ_LU_D), 0, ++ MVT::v4i64, 1/*#Ops*/, 0, ++ // Src: (fp_to_uint:{ *:[v4i64] } LASX256DOpnd:{ *:[v4f64] }:$xj) - Complexity = 3 ++ // Dst: (XVFTINTRZ_LU_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4f64] }:$xj) ++/*586425*/ 0, // EndSwitchType ++/*586426*/ /*SwitchOpcode*/ 113|128,2/*369*/, TARGET_VAL(ISD::BUILD_VECTOR),// ->586799 ++/*586430*/ OPC_RecordChild0, // #0 = $rj ++/*586431*/ OPC_Scope, 17|128,2/*273*/, /*->586707*/ // 4 children in Scope ++/*586434*/ OPC_CheckChild0Type, MVT::i32, ++/*586436*/ OPC_CheckChild1Same, 0, ++/*586438*/ OPC_CheckChild2Same, 0, ++/*586440*/ OPC_CheckChild3Same, 0, ++/*586442*/ OPC_Scope, 78, /*->586522*/ // 3 children in Scope ++/*586444*/ OPC_MoveChild4, ++/*586445*/ OPC_CheckSame, 0, ++/*586447*/ OPC_MoveParent, ++/*586448*/ OPC_MoveChild5, ++/*586449*/ OPC_CheckSame, 0, ++/*586451*/ OPC_MoveParent, ++/*586452*/ OPC_MoveChild6, ++/*586453*/ OPC_CheckSame, 0, ++/*586455*/ OPC_MoveParent, ++/*586456*/ OPC_MoveChild7, ++/*586457*/ OPC_CheckSame, 0, ++/*586459*/ OPC_MoveParent, ++/*586460*/ OPC_Scope, 49, /*->586511*/ // 2 children in Scope ++/*586462*/ OPC_MoveChild, 8, ++/*586464*/ OPC_CheckSame, 0, ++/*586466*/ OPC_MoveParent, ++/*586467*/ OPC_MoveChild, 9, ++/*586469*/ OPC_CheckSame, 0, ++/*586471*/ OPC_MoveParent, ++/*586472*/ OPC_MoveChild, 10, ++/*586474*/ OPC_CheckSame, 0, ++/*586476*/ OPC_MoveParent, ++/*586477*/ OPC_MoveChild, 11, ++/*586479*/ OPC_CheckSame, 0, ++/*586481*/ OPC_MoveParent, ++/*586482*/ OPC_MoveChild, 12, ++/*586484*/ OPC_CheckSame, 0, ++/*586486*/ OPC_MoveParent, ++/*586487*/ OPC_MoveChild, 13, ++/*586489*/ OPC_CheckSame, 0, ++/*586491*/ OPC_MoveParent, ++/*586492*/ OPC_MoveChild, 14, ++/*586494*/ OPC_CheckSame, 0, ++/*586496*/ OPC_MoveParent, ++/*586497*/ OPC_MoveChild, 15, ++/*586499*/ OPC_CheckSame, 0, ++/*586501*/ OPC_MoveParent, ++/*586502*/ OPC_CheckType, MVT::v16i8, ++/*586504*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VREPLGR2VR_B), 0, ++ MVT::v16i8, 1/*#Ops*/, 0, ++ // Src: (build_vector:{ *:[v16i8] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj) - Complexity = 3 ++ // Dst: (VREPLGR2VR_B:{ *:[v16i8] } GPR32Opnd:{ *:[i32] }:$rj) ++/*586511*/ /*Scope*/ 9, /*->586521*/ ++/*586512*/ OPC_CheckType, MVT::v8i16, ++/*586514*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VREPLGR2VR_H), 0, ++ MVT::v8i16, 1/*#Ops*/, 0, ++ // Src: (build_vector:{ *:[v8i16] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj) - Complexity = 3 ++ // Dst: (VREPLGR2VR_H:{ *:[v8i16] } GPR32Opnd:{ *:[i32] }:$rj) ++/*586521*/ 0, /*End of Scope*/ ++/*586522*/ /*Scope*/ 9, /*->586532*/ ++/*586523*/ OPC_CheckType, MVT::v4i32, ++/*586525*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VREPLGR2VR_W), 0, ++ MVT::v4i32, 1/*#Ops*/, 0, ++ // Src: (build_vector:{ *:[v4i32] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj) - Complexity = 3 ++ // Dst: (VREPLGR2VR_W:{ *:[v4i32] } GPR32Opnd:{ *:[i32] }:$rj) ++/*586532*/ /*Scope*/ 44|128,1/*172*/, /*->586706*/ ++/*586534*/ OPC_MoveChild4, ++/*586535*/ OPC_CheckSame, 0, ++/*586537*/ OPC_MoveParent, ++/*586538*/ OPC_MoveChild5, ++/*586539*/ OPC_CheckSame, 0, ++/*586541*/ OPC_MoveParent, ++/*586542*/ OPC_MoveChild6, ++/*586543*/ OPC_CheckSame, 0, ++/*586545*/ OPC_MoveParent, ++/*586546*/ OPC_MoveChild7, ++/*586547*/ OPC_CheckSame, 0, ++/*586549*/ OPC_MoveParent, ++/*586550*/ OPC_Scope, 14|128,1/*142*/, /*->586695*/ // 2 children in Scope ++/*586553*/ OPC_MoveChild, 8, ++/*586555*/ OPC_CheckSame, 0, ++/*586557*/ OPC_MoveParent, ++/*586558*/ OPC_MoveChild, 9, ++/*586560*/ OPC_CheckSame, 0, ++/*586562*/ OPC_MoveParent, ++/*586563*/ OPC_MoveChild, 10, ++/*586565*/ OPC_CheckSame, 0, ++/*586567*/ OPC_MoveParent, ++/*586568*/ OPC_MoveChild, 11, ++/*586570*/ OPC_CheckSame, 0, ++/*586572*/ OPC_MoveParent, ++/*586573*/ OPC_MoveChild, 12, ++/*586575*/ OPC_CheckSame, 0, ++/*586577*/ OPC_MoveParent, ++/*586578*/ OPC_MoveChild, 13, ++/*586580*/ OPC_CheckSame, 0, ++/*586582*/ OPC_MoveParent, ++/*586583*/ OPC_MoveChild, 14, ++/*586585*/ OPC_CheckSame, 0, ++/*586587*/ OPC_MoveParent, ++/*586588*/ OPC_MoveChild, 15, ++/*586590*/ OPC_CheckSame, 0, ++/*586592*/ OPC_MoveParent, ++/*586593*/ OPC_Scope, 89, /*->586684*/ // 2 children in Scope ++/*586595*/ OPC_MoveChild, 16, ++/*586597*/ OPC_CheckSame, 0, ++/*586599*/ OPC_MoveParent, ++/*586600*/ OPC_MoveChild, 17, ++/*586602*/ OPC_CheckSame, 0, ++/*586604*/ OPC_MoveParent, ++/*586605*/ OPC_MoveChild, 18, ++/*586607*/ OPC_CheckSame, 0, ++/*586609*/ OPC_MoveParent, ++/*586610*/ OPC_MoveChild, 19, ++/*586612*/ OPC_CheckSame, 0, ++/*586614*/ OPC_MoveParent, ++/*586615*/ OPC_MoveChild, 20, ++/*586617*/ OPC_CheckSame, 0, ++/*586619*/ OPC_MoveParent, ++/*586620*/ OPC_MoveChild, 21, ++/*586622*/ OPC_CheckSame, 0, ++/*586624*/ OPC_MoveParent, ++/*586625*/ OPC_MoveChild, 22, ++/*586627*/ OPC_CheckSame, 0, ++/*586629*/ OPC_MoveParent, ++/*586630*/ OPC_MoveChild, 23, ++/*586632*/ OPC_CheckSame, 0, ++/*586634*/ OPC_MoveParent, ++/*586635*/ OPC_MoveChild, 24, ++/*586637*/ OPC_CheckSame, 0, ++/*586639*/ OPC_MoveParent, ++/*586640*/ OPC_MoveChild, 25, ++/*586642*/ OPC_CheckSame, 0, ++/*586644*/ OPC_MoveParent, ++/*586645*/ OPC_MoveChild, 26, ++/*586647*/ OPC_CheckSame, 0, ++/*586649*/ OPC_MoveParent, ++/*586650*/ OPC_MoveChild, 27, ++/*586652*/ OPC_CheckSame, 0, ++/*586654*/ OPC_MoveParent, ++/*586655*/ OPC_MoveChild, 28, ++/*586657*/ OPC_CheckSame, 0, ++/*586659*/ OPC_MoveParent, ++/*586660*/ OPC_MoveChild, 29, ++/*586662*/ OPC_CheckSame, 0, ++/*586664*/ OPC_MoveParent, ++/*586665*/ OPC_MoveChild, 30, ++/*586667*/ OPC_CheckSame, 0, ++/*586669*/ OPC_MoveParent, ++/*586670*/ OPC_MoveChild, 31, ++/*586672*/ OPC_CheckSame, 0, ++/*586674*/ OPC_MoveParent, ++/*586675*/ OPC_CheckType, MVT::v32i8, ++/*586677*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVREPLGR2VR_B), 0, ++ MVT::v32i8, 1/*#Ops*/, 0, ++ // Src: (build_vector:{ *:[v32i8] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj) - Complexity = 3 ++ // Dst: (XVREPLGR2VR_B:{ *:[v32i8] } GPR32Opnd:{ *:[i32] }:$rj) ++/*586684*/ /*Scope*/ 9, /*->586694*/ ++/*586685*/ OPC_CheckType, MVT::v16i16, ++/*586687*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVREPLGR2VR_H), 0, ++ MVT::v16i16, 1/*#Ops*/, 0, ++ // Src: (build_vector:{ *:[v16i16] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj) - Complexity = 3 ++ // Dst: (XVREPLGR2VR_H:{ *:[v16i16] } GPR32Opnd:{ *:[i32] }:$rj) ++/*586694*/ 0, /*End of Scope*/ ++/*586695*/ /*Scope*/ 9, /*->586705*/ ++/*586696*/ OPC_CheckType, MVT::v8i32, ++/*586698*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVREPLGR2VR_W), 0, ++ MVT::v8i32, 1/*#Ops*/, 0, ++ // Src: (build_vector:{ *:[v8i32] } GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj, GPR32Opnd:{ *:[i32] }:$rj) - Complexity = 3 ++ // Dst: (XVREPLGR2VR_W:{ *:[v8i32] } GPR32Opnd:{ *:[i32] }:$rj) ++/*586705*/ 0, /*End of Scope*/ ++/*586706*/ 0, /*End of Scope*/ ++/*586707*/ /*Scope*/ 28, /*->586736*/ ++/*586708*/ OPC_CheckChild0Type, MVT::i64, ++/*586710*/ OPC_CheckChild1Same, 0, ++/*586712*/ OPC_SwitchType /*2 cases */, 7, MVT::v2i64,// ->586722 ++/*586715*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VREPLGR2VR_D), 0, ++ MVT::v2i64, 1/*#Ops*/, 0, ++ // Src: (build_vector:{ *:[v2i64] } GPR64Opnd:{ *:[i64] }:$rj, GPR64Opnd:{ *:[i64] }:$rj) - Complexity = 3 ++ // Dst: (VREPLGR2VR_D:{ *:[v2i64] } GPR64Opnd:{ *:[i64] }:$rj) ++/*586722*/ /*SwitchType*/ 11, MVT::v4i64,// ->586735 ++/*586724*/ OPC_CheckChild2Same, 0, ++/*586726*/ OPC_CheckChild3Same, 0, ++/*586728*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVREPLGR2VR_D), 0, ++ MVT::v4i64, 1/*#Ops*/, 0, ++ // Src: (build_vector:{ *:[v4i64] } GPR64Opnd:{ *:[i64] }:$rj, GPR64Opnd:{ *:[i64] }:$rj, GPR64Opnd:{ *:[i64] }:$rj, GPR64Opnd:{ *:[i64] }:$rj) - Complexity = 3 ++ // Dst: (XVREPLGR2VR_D:{ *:[v4i64] } GPR64Opnd:{ *:[i64] }:$rj) ++/*586735*/ 0, // EndSwitchType ++/*586736*/ /*Scope*/ 32, /*->586769*/ ++/*586737*/ OPC_CheckChild0Type, MVT::f32, ++/*586739*/ OPC_CheckChild1Same, 0, ++/*586741*/ OPC_CheckChild2Same, 0, ++/*586743*/ OPC_CheckChild3Same, 0, ++/*586745*/ OPC_SwitchType /*2 cases */, 9, MVT::v4f32,// ->586757 ++/*586748*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*586750*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FILL_FW_PSEUDO), 0, ++ MVT::v4f32, 1/*#Ops*/, 0, ++ // Src: (build_vector:{ *:[v4f32] } FGR32:{ *:[f32] }:$fs, FGR32:{ *:[f32] }:$fs, FGR32:{ *:[f32] }:$fs, FGR32:{ *:[f32] }:$fs) - Complexity = 3 ++ // Dst: (FILL_FW_PSEUDO:{ *:[v4f32] } FGR32:{ *:[f32] }:$fs) ++/*586757*/ /*SwitchType*/ 9, MVT::v8f32,// ->586768 ++/*586759*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*586761*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XFILL_FW_PSEUDO), 0, ++ MVT::v8f32, 1/*#Ops*/, 0, ++ // Src: (build_vector:{ *:[v8f32] } FGR32:{ *:[f32] }:$fs, FGR32:{ *:[f32] }:$fs, FGR32:{ *:[f32] }:$fs, FGR32:{ *:[f32] }:$fs) - Complexity = 3 ++ // Dst: (XFILL_FW_PSEUDO:{ *:[v8f32] } FGR32:{ *:[f32] }:$fs) ++/*586768*/ 0, // EndSwitchType ++/*586769*/ /*Scope*/ 28, /*->586798*/ ++/*586770*/ OPC_CheckChild0Type, MVT::f64, ++/*586772*/ OPC_CheckChild1Same, 0, ++/*586774*/ OPC_SwitchType /*2 cases */, 9, MVT::v2f64,// ->586786 ++/*586777*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*586779*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FILL_FD_PSEUDO), 0, ++ MVT::v2f64, 1/*#Ops*/, 0, ++ // Src: (build_vector:{ *:[v2f64] } FGR64:{ *:[f64] }:$fs, FGR64:{ *:[f64] }:$fs) - Complexity = 3 ++ // Dst: (FILL_FD_PSEUDO:{ *:[v2f64] } FGR64:{ *:[f64] }:$fs) ++/*586786*/ /*SwitchType*/ 9, MVT::v4f64,// ->586797 ++/*586788*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*586790*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XFILL_FD_PSEUDO), 0, ++ MVT::v4f64, 1/*#Ops*/, 0, ++ // Src: (build_vector:{ *:[v4f64] } FGR64:{ *:[f64] }:$fs, FGR64:{ *:[f64] }:$fs) - Complexity = 3 ++ // Dst: (XFILL_FD_PSEUDO:{ *:[v4f64] } FGR64:{ *:[f64] }:$fs) ++/*586797*/ 0, // EndSwitchType ++/*586798*/ 0, /*End of Scope*/ ++/*586799*/ /*SwitchOpcode*/ 44, TARGET_VAL(LoongArchISD::VROR),// ->586846 ++/*586802*/ OPC_RecordChild0, // #0 = $vj ++/*586803*/ OPC_RecordChild1, // #1 = $vk ++/*586804*/ OPC_SwitchType /*4 cases */, 8, MVT::v16i8,// ->586815 ++/*586807*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VROTR_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVROR:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) - Complexity = 3 ++ // Dst: (VROTR_B:{ *:[v16i8] } LSX128BOpnd:{ *:[v16i8] }:$vj, LSX128BOpnd:{ *:[v16i8] }:$vk) ++/*586815*/ /*SwitchType*/ 8, MVT::v8i16,// ->586825 ++/*586817*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VROTR_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVROR:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) - Complexity = 3 ++ // Dst: (VROTR_H:{ *:[v8i16] } LSX128HOpnd:{ *:[v8i16] }:$vj, LSX128HOpnd:{ *:[v8i16] }:$vk) ++/*586825*/ /*SwitchType*/ 8, MVT::v4i32,// ->586835 ++/*586827*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VROTR_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVROR:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) - Complexity = 3 ++ // Dst: (VROTR_W:{ *:[v4i32] } LSX128WOpnd:{ *:[v4i32] }:$vj, LSX128WOpnd:{ *:[v4i32] }:$vk) ++/*586835*/ /*SwitchType*/ 8, MVT::v2i64,// ->586845 ++/*586837*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VROTR_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (LoongArchVROR:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) - Complexity = 3 ++ // Dst: (VROTR_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2i64] }:$vj, LSX128DOpnd:{ *:[v2i64] }:$vk) ++/*586845*/ 0, // EndSwitchType ++/*586846*/ /*SwitchOpcode*/ 43, TARGET_VAL(ISD::FP_TO_SINT),// ->586892 ++/*586849*/ OPC_RecordChild0, // #0 = $vj ++/*586850*/ OPC_SwitchType /*4 cases */, 9, MVT::v4i32,// ->586862 ++/*586853*/ OPC_CheckChild0Type, MVT::v4f32, ++/*586855*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFTINTRZ_W_S), 0, ++ MVT::v4i32, 1/*#Ops*/, 0, ++ // Src: (fp_to_sint:{ *:[v4i32] } LSX128WOpnd:{ *:[v4f32] }:$vj) - Complexity = 3 ++ // Dst: (VFTINTRZ_W_S:{ *:[v4i32] } LSX128WOpnd:{ *:[v4f32] }:$vj) ++/*586862*/ /*SwitchType*/ 7, MVT::v2i64,// ->586871 ++/*586864*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFTINTRZ_L_D), 0, ++ MVT::v2i64, 1/*#Ops*/, 0, ++ // Src: (fp_to_sint:{ *:[v2i64] } LSX128DOpnd:{ *:[v2f64] }:$vj) - Complexity = 3 ++ // Dst: (VFTINTRZ_L_D:{ *:[v2i64] } LSX128DOpnd:{ *:[v2f64] }:$vj) ++/*586871*/ /*SwitchType*/ 7, MVT::v8i32,// ->586880 ++/*586873*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFTINTRZ_W_S), 0, ++ MVT::v8i32, 1/*#Ops*/, 0, ++ // Src: (fp_to_sint:{ *:[v8i32] } LASX256WOpnd:{ *:[v8f32] }:$xj) - Complexity = 3 ++ // Dst: (XVFTINTRZ_W_S:{ *:[v8i32] } LASX256WOpnd:{ *:[v8f32] }:$xj) ++/*586880*/ /*SwitchType*/ 9, MVT::v4i64,// ->586891 ++/*586882*/ OPC_CheckChild0Type, MVT::v4f64, ++/*586884*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFTINTRZ_L_D), 0, ++ MVT::v4i64, 1/*#Ops*/, 0, ++ // Src: (fp_to_sint:{ *:[v4i64] } LASX256DOpnd:{ *:[v4f64] }:$xj) - Complexity = 3 ++ // Dst: (XVFTINTRZ_L_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4f64] }:$xj) ++/*586891*/ 0, // EndSwitchType ++/*586892*/ /*SwitchOpcode*/ 44, TARGET_VAL(ISD::SADDSAT),// ->586939 ++/*586895*/ OPC_RecordChild0, // #0 = $xj ++/*586896*/ OPC_RecordChild1, // #1 = $xk ++/*586897*/ OPC_SwitchType /*4 cases */, 8, MVT::v32i8,// ->586908 ++/*586900*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSADD_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (saddsat:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 3 ++ // Dst: (XVSADD_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/*586908*/ /*SwitchType*/ 8, MVT::v16i16,// ->586918 ++/*586910*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSADD_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (saddsat:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 3 ++ // Dst: (XVSADD_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/*586918*/ /*SwitchType*/ 8, MVT::v8i32,// ->586928 ++/*586920*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSADD_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (saddsat:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 3 ++ // Dst: (XVSADD_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/*586928*/ /*SwitchType*/ 8, MVT::v4i64,// ->586938 ++/*586930*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSADD_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (saddsat:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 3 ++ // Dst: (XVSADD_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/*586938*/ 0, // EndSwitchType ++/*586939*/ /*SwitchOpcode*/ 44, TARGET_VAL(ISD::SSUBSAT),// ->586986 ++/*586942*/ OPC_RecordChild0, // #0 = $xj ++/*586943*/ OPC_RecordChild1, // #1 = $xk ++/*586944*/ OPC_SwitchType /*4 cases */, 8, MVT::v32i8,// ->586955 ++/*586947*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSUB_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (ssubsat:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 3 ++ // Dst: (XVSSUB_B:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/*586955*/ /*SwitchType*/ 8, MVT::v16i16,// ->586965 ++/*586957*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSUB_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (ssubsat:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 3 ++ // Dst: (XVSSUB_H:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/*586965*/ /*SwitchType*/ 8, MVT::v8i32,// ->586975 ++/*586967*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSUB_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (ssubsat:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 3 ++ // Dst: (XVSSUB_W:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/*586975*/ /*SwitchType*/ 8, MVT::v4i64,// ->586985 ++/*586977*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSUB_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (ssubsat:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 3 ++ // Dst: (XVSSUB_D:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/*586985*/ 0, // EndSwitchType ++/*586986*/ /*SwitchOpcode*/ 44, TARGET_VAL(ISD::UADDSAT),// ->587033 ++/*586989*/ OPC_RecordChild0, // #0 = $xj ++/*586990*/ OPC_RecordChild1, // #1 = $xk ++/*586991*/ OPC_SwitchType /*4 cases */, 8, MVT::v32i8,// ->587002 ++/*586994*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSADD_BU), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (uaddsat:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 3 ++ // Dst: (XVSADD_BU:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/*587002*/ /*SwitchType*/ 8, MVT::v16i16,// ->587012 ++/*587004*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSADD_HU), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (uaddsat:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 3 ++ // Dst: (XVSADD_HU:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/*587012*/ /*SwitchType*/ 8, MVT::v8i32,// ->587022 ++/*587014*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSADD_WU), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (uaddsat:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 3 ++ // Dst: (XVSADD_WU:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/*587022*/ /*SwitchType*/ 8, MVT::v4i64,// ->587032 ++/*587024*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSADD_DU), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (uaddsat:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 3 ++ // Dst: (XVSADD_DU:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/*587032*/ 0, // EndSwitchType ++/*587033*/ /*SwitchOpcode*/ 44, TARGET_VAL(ISD::USUBSAT),// ->587080 ++/*587036*/ OPC_RecordChild0, // #0 = $xj ++/*587037*/ OPC_RecordChild1, // #1 = $xk ++/*587038*/ OPC_SwitchType /*4 cases */, 8, MVT::v32i8,// ->587049 ++/*587041*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSUB_BU), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (usubsat:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) - Complexity = 3 ++ // Dst: (XVSSUB_BU:{ *:[v32i8] } LASX256BOpnd:{ *:[v32i8] }:$xj, LASX256BOpnd:{ *:[v32i8] }:$xk) ++/*587049*/ /*SwitchType*/ 8, MVT::v16i16,// ->587059 ++/*587051*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSUB_HU), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (usubsat:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) - Complexity = 3 ++ // Dst: (XVSSUB_HU:{ *:[v16i16] } LASX256HOpnd:{ *:[v16i16] }:$xj, LASX256HOpnd:{ *:[v16i16] }:$xk) ++/*587059*/ /*SwitchType*/ 8, MVT::v8i32,// ->587069 ++/*587061*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSUB_WU), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (usubsat:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) - Complexity = 3 ++ // Dst: (XVSSUB_WU:{ *:[v8i32] } LASX256WOpnd:{ *:[v8i32] }:$xj, LASX256WOpnd:{ *:[v8i32] }:$xk) ++/*587069*/ /*SwitchType*/ 8, MVT::v4i64,// ->587079 ++/*587071*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVSSUB_DU), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (usubsat:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) - Complexity = 3 ++ // Dst: (XVSSUB_DU:{ *:[v4i64] } LASX256DOpnd:{ *:[v4i64] }:$xj, LASX256DOpnd:{ *:[v4i64] }:$xk) ++/*587079*/ 0, // EndSwitchType ++/*587080*/ /*SwitchOpcode*/ 82, TARGET_VAL(ISD::SIGN_EXTEND_VECTOR_INREG),// ->587165 ++/*587083*/ OPC_RecordChild0, // #0 = $xj ++/*587084*/ OPC_Scope, 13, /*->587099*/ // 3 children in Scope ++/*587086*/ OPC_CheckChild0Type, MVT::v8i32, ++/*587088*/ OPC_CheckType, MVT::v4i64, ++/*587090*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*587092*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VEXT2XV_D_W), 0, ++ MVT::v4i64, 1/*#Ops*/, 0, ++ // Src: (sext_invec:{ *:[v4i64] } LASX256W:{ *:[v8i32] }:$xj) - Complexity = 3 ++ // Dst: (VEXT2XV_D_W:{ *:[v4i64] } LASX256W:{ *:[v8i32] }:$xj) ++/*587099*/ /*Scope*/ 26, /*->587126*/ ++/*587100*/ OPC_CheckChild0Type, MVT::v16i16, ++/*587102*/ OPC_SwitchType /*2 cases */, 9, MVT::v8i32,// ->587114 ++/*587105*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*587107*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VEXT2XV_W_H), 0, ++ MVT::v8i32, 1/*#Ops*/, 0, ++ // Src: (sext_invec:{ *:[v8i32] } LASX256H:{ *:[v16i16] }:$xj) - Complexity = 3 ++ // Dst: (VEXT2XV_W_H:{ *:[v8i32] } LASX256H:{ *:[v16i16] }:$xj) ++/*587114*/ /*SwitchType*/ 9, MVT::v4i64,// ->587125 ++/*587116*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*587118*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VEXT2XV_D_H), 0, ++ MVT::v4i64, 1/*#Ops*/, 0, ++ // Src: (sext_invec:{ *:[v4i64] } LASX256H:{ *:[v16i16] }:$xj) - Complexity = 3 ++ // Dst: (VEXT2XV_D_H:{ *:[v4i64] } LASX256H:{ *:[v16i16] }:$xj) ++/*587125*/ 0, // EndSwitchType ++/*587126*/ /*Scope*/ 37, /*->587164*/ ++/*587127*/ OPC_CheckChild0Type, MVT::v32i8, ++/*587129*/ OPC_SwitchType /*3 cases */, 9, MVT::v16i16,// ->587141 ++/*587132*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*587134*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VEXT2XV_H_B), 0, ++ MVT::v16i16, 1/*#Ops*/, 0, ++ // Src: (sext_invec:{ *:[v16i16] } LASX256B:{ *:[v32i8] }:$xj) - Complexity = 3 ++ // Dst: (VEXT2XV_H_B:{ *:[v16i16] } LASX256B:{ *:[v32i8] }:$xj) ++/*587141*/ /*SwitchType*/ 9, MVT::v4i64,// ->587152 ++/*587143*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*587145*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VEXT2XV_D_B), 0, ++ MVT::v4i64, 1/*#Ops*/, 0, ++ // Src: (sext_invec:{ *:[v4i64] } LASX256B:{ *:[v32i8] }:$xj) - Complexity = 3 ++ // Dst: (VEXT2XV_D_B:{ *:[v4i64] } LASX256B:{ *:[v32i8] }:$xj) ++/*587152*/ /*SwitchType*/ 9, MVT::v8i32,// ->587163 ++/*587154*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*587156*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VEXT2XV_W_B), 0, ++ MVT::v8i32, 1/*#Ops*/, 0, ++ // Src: (sext_invec:{ *:[v8i32] } LASX256B:{ *:[v32i8] }:$xj) - Complexity = 3 ++ // Dst: (VEXT2XV_W_B:{ *:[v8i32] } LASX256B:{ *:[v32i8] }:$xj) ++/*587163*/ 0, // EndSwitchType ++/*587164*/ 0, /*End of Scope*/ ++/*587165*/ /*SwitchOpcode*/ 82, TARGET_VAL(ISD::ZERO_EXTEND_VECTOR_INREG),// ->587250 ++/*587168*/ OPC_RecordChild0, // #0 = $xj ++/*587169*/ OPC_Scope, 13, /*->587184*/ // 3 children in Scope ++/*587171*/ OPC_CheckChild0Type, MVT::v8i32, ++/*587173*/ OPC_CheckType, MVT::v4i64, ++/*587175*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*587177*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VEXT2XV_DU_WU), 0, ++ MVT::v4i64, 1/*#Ops*/, 0, ++ // Src: (zext_invec:{ *:[v4i64] } LASX256W:{ *:[v8i32] }:$xj) - Complexity = 3 ++ // Dst: (VEXT2XV_DU_WU:{ *:[v4i64] } LASX256W:{ *:[v8i32] }:$xj) ++/*587184*/ /*Scope*/ 26, /*->587211*/ ++/*587185*/ OPC_CheckChild0Type, MVT::v16i16, ++/*587187*/ OPC_SwitchType /*2 cases */, 9, MVT::v8i32,// ->587199 ++/*587190*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*587192*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VEXT2XV_WU_HU), 0, ++ MVT::v8i32, 1/*#Ops*/, 0, ++ // Src: (zext_invec:{ *:[v8i32] } LASX256H:{ *:[v16i16] }:$xj) - Complexity = 3 ++ // Dst: (VEXT2XV_WU_HU:{ *:[v8i32] } LASX256H:{ *:[v16i16] }:$xj) ++/*587199*/ /*SwitchType*/ 9, MVT::v4i64,// ->587210 ++/*587201*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*587203*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VEXT2XV_DU_HU), 0, ++ MVT::v4i64, 1/*#Ops*/, 0, ++ // Src: (zext_invec:{ *:[v4i64] } LASX256H:{ *:[v16i16] }:$xj) - Complexity = 3 ++ // Dst: (VEXT2XV_DU_HU:{ *:[v4i64] } LASX256H:{ *:[v16i16] }:$xj) ++/*587210*/ 0, // EndSwitchType ++/*587211*/ /*Scope*/ 37, /*->587249*/ ++/*587212*/ OPC_CheckChild0Type, MVT::v32i8, ++/*587214*/ OPC_SwitchType /*3 cases */, 9, MVT::v16i16,// ->587226 ++/*587217*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*587219*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VEXT2XV_HU_BU), 0, ++ MVT::v16i16, 1/*#Ops*/, 0, ++ // Src: (zext_invec:{ *:[v16i16] } LASX256B:{ *:[v32i8] }:$xj) - Complexity = 3 ++ // Dst: (VEXT2XV_HU_BU:{ *:[v16i16] } LASX256B:{ *:[v32i8] }:$xj) ++/*587226*/ /*SwitchType*/ 9, MVT::v4i64,// ->587237 ++/*587228*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*587230*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VEXT2XV_DU_BU), 0, ++ MVT::v4i64, 1/*#Ops*/, 0, ++ // Src: (zext_invec:{ *:[v4i64] } LASX256B:{ *:[v32i8] }:$xj) - Complexity = 3 ++ // Dst: (VEXT2XV_DU_BU:{ *:[v4i64] } LASX256B:{ *:[v32i8] }:$xj) ++/*587237*/ /*SwitchType*/ 9, MVT::v8i32,// ->587248 ++/*587239*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*587241*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VEXT2XV_WU_BU), 0, ++ MVT::v8i32, 1/*#Ops*/, 0, ++ // Src: (zext_invec:{ *:[v8i32] } LASX256B:{ *:[v32i8] }:$xj) - Complexity = 3 ++ // Dst: (VEXT2XV_WU_BU:{ *:[v8i32] } LASX256B:{ *:[v32i8] }:$xj) ++/*587248*/ 0, // EndSwitchType ++/*587249*/ 0, /*End of Scope*/ ++/*587250*/ /*SwitchOpcode*/ 27|128,1/*155*/, TARGET_VAL(ISD::ABS),// ->587409 ++/*587254*/ OPC_RecordChild0, // #0 = $v ++/*587255*/ OPC_SwitchType /*8 cases */, 17, MVT::v2i64,// ->587275 ++/*587258*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*587260*/ OPC_EmitNode1, TARGET_VAL(LoongArch::VNEG_D), 0, ++ MVT::v2i64, 1/*#Ops*/, 0, // Results = #1 ++/*587267*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMAX_D), 0, ++ MVT::v2i64, 2/*#Ops*/, 0, 1, ++ // Src: (abs:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$v) - Complexity = 3 ++ // Dst: (VMAX_D:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$v, (VNEG_D:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$v)) ++/*587275*/ /*SwitchType*/ 17, MVT::v4i32,// ->587294 ++/*587277*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*587279*/ OPC_EmitNode1, TARGET_VAL(LoongArch::VNEG_W), 0, ++ MVT::v4i32, 1/*#Ops*/, 0, // Results = #1 ++/*587286*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMAX_W), 0, ++ MVT::v4i32, 2/*#Ops*/, 0, 1, ++ // Src: (abs:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$v) - Complexity = 3 ++ // Dst: (VMAX_W:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$v, (VNEG_W:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$v)) ++/*587294*/ /*SwitchType*/ 17, MVT::v8i16,// ->587313 ++/*587296*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*587298*/ OPC_EmitNode1, TARGET_VAL(LoongArch::VNEG_H), 0, ++ MVT::v8i16, 1/*#Ops*/, 0, // Results = #1 ++/*587305*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMAX_H), 0, ++ MVT::v8i16, 2/*#Ops*/, 0, 1, ++ // Src: (abs:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$v) - Complexity = 3 ++ // Dst: (VMAX_H:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$v, (VNEG_H:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$v)) ++/*587313*/ /*SwitchType*/ 17, MVT::v16i8,// ->587332 ++/*587315*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasLSX()) ++/*587317*/ OPC_EmitNode1, TARGET_VAL(LoongArch::VNEG_B), 0, ++ MVT::v16i8, 1/*#Ops*/, 0, // Results = #1 ++/*587324*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VMAX_B), 0, ++ MVT::v16i8, 2/*#Ops*/, 0, 1, ++ // Src: (abs:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$v) - Complexity = 3 ++ // Dst: (VMAX_B:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$v, (VNEG_B:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$v)) ++/*587332*/ /*SwitchType*/ 17, MVT::v4i64,// ->587351 ++/*587334*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*587336*/ OPC_EmitNode1, TARGET_VAL(LoongArch::XVNEG_D), 0, ++ MVT::v4i64, 1/*#Ops*/, 0, // Results = #1 ++/*587343*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMAX_D), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (abs:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$v) - Complexity = 3 ++ // Dst: (XVMAX_D:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$v, (XVNEG_D:{ *:[v4i64] } v4i64:{ *:[v4i64] }:$v)) ++/*587351*/ /*SwitchType*/ 17, MVT::v8i32,// ->587370 ++/*587353*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*587355*/ OPC_EmitNode1, TARGET_VAL(LoongArch::XVNEG_W), 0, ++ MVT::v8i32, 1/*#Ops*/, 0, // Results = #1 ++/*587362*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMAX_W), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (abs:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$v) - Complexity = 3 ++ // Dst: (XVMAX_W:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$v, (XVNEG_W:{ *:[v8i32] } v8i32:{ *:[v8i32] }:$v)) ++/*587370*/ /*SwitchType*/ 17, MVT::v16i16,// ->587389 ++/*587372*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*587374*/ OPC_EmitNode1, TARGET_VAL(LoongArch::XVNEG_H), 0, ++ MVT::v16i16, 1/*#Ops*/, 0, // Results = #1 ++/*587381*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMAX_H), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (abs:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$v) - Complexity = 3 ++ // Dst: (XVMAX_H:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$v, (XVNEG_H:{ *:[v16i16] } v16i16:{ *:[v16i16] }:$v)) ++/*587389*/ /*SwitchType*/ 17, MVT::v32i8,// ->587408 ++/*587391*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*587393*/ OPC_EmitNode1, TARGET_VAL(LoongArch::XVNEG_B), 0, ++ MVT::v32i8, 1/*#Ops*/, 0, // Results = #1 ++/*587400*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVMAX_B), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (abs:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$v) - Complexity = 3 ++ // Dst: (XVMAX_B:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$v, (XVNEG_B:{ *:[v32i8] } v32i8:{ *:[v32i8] }:$v)) ++/*587408*/ 0, // EndSwitchType ++/*587409*/ /*SwitchOpcode*/ 76, TARGET_VAL(ISD::CONCAT_VECTORS),// ->587488 ++/*587412*/ OPC_RecordChild0, // #0 = $xs ++/*587413*/ OPC_RecordChild1, // #1 = $xt ++/*587414*/ OPC_SwitchType /*6 cases */, 10, MVT::v32i8,// ->587427 ++/*587417*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*587419*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CONCAT_VECTORS_B_PSEUDO), 0, ++ MVT::v32i8, 2/*#Ops*/, 0, 1, ++ // Src: (concat_vectors:{ *:[v32i8] } LSX128BOpnd:{ *:[v16i8] }:$xs, LSX128BOpnd:{ *:[v16i8] }:$xt) - Complexity = 3 ++ // Dst: (CONCAT_VECTORS_B_PSEUDO:{ *:[v32i8] } LSX128BOpnd:{ *:[v16i8] }:$xs, LSX128BOpnd:{ *:[v16i8] }:$xt) ++/*587427*/ /*SwitchType*/ 10, MVT::v16i16,// ->587439 ++/*587429*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*587431*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CONCAT_VECTORS_H_PSEUDO), 0, ++ MVT::v16i16, 2/*#Ops*/, 0, 1, ++ // Src: (concat_vectors:{ *:[v16i16] } LSX128HOpnd:{ *:[v8i16] }:$xs, LSX128HOpnd:{ *:[v8i16] }:$xt) - Complexity = 3 ++ // Dst: (CONCAT_VECTORS_H_PSEUDO:{ *:[v16i16] } LSX128HOpnd:{ *:[v8i16] }:$xs, LSX128HOpnd:{ *:[v8i16] }:$xt) ++/*587439*/ /*SwitchType*/ 10, MVT::v8i32,// ->587451 ++/*587441*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*587443*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CONCAT_VECTORS_W_PSEUDO), 0, ++ MVT::v8i32, 2/*#Ops*/, 0, 1, ++ // Src: (concat_vectors:{ *:[v8i32] } LSX128WOpnd:{ *:[v4i32] }:$xs, LSX128WOpnd:{ *:[v4i32] }:$xt) - Complexity = 3 ++ // Dst: (CONCAT_VECTORS_W_PSEUDO:{ *:[v8i32] } LSX128WOpnd:{ *:[v4i32] }:$xs, LSX128WOpnd:{ *:[v4i32] }:$xt) ++/*587451*/ /*SwitchType*/ 10, MVT::v4i64,// ->587463 ++/*587453*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*587455*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CONCAT_VECTORS_D_PSEUDO), 0, ++ MVT::v4i64, 2/*#Ops*/, 0, 1, ++ // Src: (concat_vectors:{ *:[v4i64] } LSX128DOpnd:{ *:[v2i64] }:$xs, LSX128DOpnd:{ *:[v2i64] }:$xt) - Complexity = 3 ++ // Dst: (CONCAT_VECTORS_D_PSEUDO:{ *:[v4i64] } LSX128DOpnd:{ *:[v2i64] }:$xs, LSX128DOpnd:{ *:[v2i64] }:$xt) ++/*587463*/ /*SwitchType*/ 10, MVT::v8f32,// ->587475 ++/*587465*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*587467*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CONCAT_VECTORS_FW_PSEUDO), 0, ++ MVT::v8f32, 2/*#Ops*/, 0, 1, ++ // Src: (concat_vectors:{ *:[v8f32] } LSX128WOpnd:{ *:[v4f32] }:$xs, LSX128WOpnd:{ *:[v4f32] }:$xt) - Complexity = 3 ++ // Dst: (CONCAT_VECTORS_FW_PSEUDO:{ *:[v8f32] } LSX128WOpnd:{ *:[v4f32] }:$xs, LSX128WOpnd:{ *:[v4f32] }:$xt) ++/*587475*/ /*SwitchType*/ 10, MVT::v4f64,// ->587487 ++/*587477*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasLASX()) ++/*587479*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CONCAT_VECTORS_FD_PSEUDO), 0, ++ MVT::v4f64, 2/*#Ops*/, 0, 1, ++ // Src: (concat_vectors:{ *:[v4f64] } LSX128DOpnd:{ *:[v2f64] }:$xs, LSX128DOpnd:{ *:[v2f64] }:$xt) - Complexity = 3 ++ // Dst: (CONCAT_VECTORS_FD_PSEUDO:{ *:[v4f64] } LSX128DOpnd:{ *:[v2f64] }:$xs, LSX128DOpnd:{ *:[v2f64] }:$xt) ++/*587487*/ 0, // EndSwitchType ++/*587488*/ /*SwitchOpcode*/ 45, TARGET_VAL(ISD::UINT_TO_FP),// ->587536 ++/*587491*/ OPC_RecordChild0, // #0 = $vj ++/*587492*/ OPC_SwitchType /*4 cases */, 9, MVT::v4f32,// ->587504 ++/*587495*/ OPC_CheckChild0Type, MVT::v4i32, ++/*587497*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFFINT_S_WU), 0, ++ MVT::v4f32, 1/*#Ops*/, 0, ++ // Src: (uint_to_fp:{ *:[v4f32] } LSX128WOpnd:{ *:[v4i32] }:$vj) - Complexity = 3 ++ // Dst: (VFFINT_S_WU:{ *:[v4f32] } LSX128WOpnd:{ *:[v4i32] }:$vj) ++/*587504*/ /*SwitchType*/ 7, MVT::v2f64,// ->587513 ++/*587506*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::VFFINT_D_LU), 0, ++ MVT::v2f64, 1/*#Ops*/, 0, ++ // Src: (uint_to_fp:{ *:[v2f64] } LSX128DOpnd:{ *:[v2i64] }:$vj) - Complexity = 3 ++ // Dst: (VFFINT_D_LU:{ *:[v2f64] } LSX128DOpnd:{ *:[v2i64] }:$vj) ++/*587513*/ /*SwitchType*/ 9, MVT::v8f32,// ->587524 ++/*587515*/ OPC_CheckChild0Type, MVT::v8i32, ++/*587517*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFFINT_S_WU), 0, ++ MVT::v8f32, 1/*#Ops*/, 0, ++ // Src: (uint_to_fp:{ *:[v8f32] } LASX256WOpnd:{ *:[v8i32] }:$xj) - Complexity = 3 ++ // Dst: (XVFFINT_S_WU:{ *:[v8f32] } LASX256WOpnd:{ *:[v8i32] }:$xj) ++/*587524*/ /*SwitchType*/ 9, MVT::v4f64,// ->587535 ++/*587526*/ OPC_CheckChild0Type, MVT::v4i64, ++/*587528*/ OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XVFFINT_D_LU), 0, ++ MVT::v4f64, 1/*#Ops*/, 0, ++ // Src: (uint_to_fp:{ *:[v4f64] } LASX256DOpnd:{ *:[v4i64] }:$xj) - Complexity = 3 ++ // Dst: (XVFFINT_D_LU:{ *:[v4f64] } LASX256DOpnd:{ *:[v4i64] }:$xj) ++/*587535*/ 0, // EndSwitchType ++/*587536*/ 0, // EndSwitchOpcode ++ 0 ++ }; // Total Array size is 587538 bytes ++ ++ // Opcode Histogram: ++ // #OPC_Scope = 1603 ++ // #OPC_RecordNode = 34 ++ // #OPC_RecordChild = 4238 ++ // #OPC_RecordMemRef = 18 ++ // #OPC_CaptureGlueInput = 10 ++ // #OPC_MoveChild = 54892 ++ // #OPC_MoveParent = 63409 ++ // #OPC_CheckSame = 52 ++ // #OPC_CheckChildSame = 4594 ++ // #OPC_CheckPatternPredicate = 3699 ++ // #OPC_CheckPredicate = 3846 ++ // #OPC_CheckOpcode = 11741 ++ // #OPC_SwitchOpcode = 91 ++ // #OPC_CheckType = 53228 ++ // #OPC_SwitchType = 186 ++ // #OPC_CheckChildType = 27667 ++ // #OPC_CheckInteger = 42904 ++ // #OPC_CheckChildInteger = 28637 ++ // #OPC_CheckCondCode = 0 ++ // #OPC_CheckChild2CondCode = 195 ++ // #OPC_CheckValueType = 32 ++ // #OPC_CheckComplexPat = 283 ++ // #OPC_CheckAndImm = 0 ++ // #OPC_CheckOrImm = 0 ++ // #OPC_CheckImmAllOnesV = 104 ++ // #OPC_CheckImmAllZerosV = 2 ++ // #OPC_CheckFoldableChainNode = 0 ++ // #OPC_EmitInteger = 66 ++ // #OPC_EmitStringInteger = 266 ++ // #OPC_EmitRegister = 32 ++ // #OPC_EmitConvertToTarget = 449 ++ // #OPC_EmitMergeInputChains = 288 ++ // #OPC_EmitCopyToReg = 0 ++ // #OPC_EmitNode = 342 ++ // #OPC_EmitNodeXForm = 2 ++ // #OPC_CompleteMatch = 0 ++ // #OPC_MorphNodeTo = 5615 ++ ++ #undef TARGET_VAL ++ SelectCodeCommon(N, MatcherTable,sizeof(MatcherTable)); ++} ++#endif // GET_DAGISEL_BODY ++ ++#ifdef GET_DAGISEL_DECL ++bool CheckPatternPredicate(unsigned PredNo) const override; ++#endif ++#if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE ++bool DAGISEL_CLASS_COLONCOLON CheckPatternPredicate(unsigned PredNo) const ++#if DAGISEL_INLINE ++ override ++#endif ++{ ++ switch (PredNo) { ++ default: llvm_unreachable("Invalid predicate in table?"); ++ case 0: return (Subtarget->is64Bit()); ++ case 1: return (Subtarget->hasLSX()); ++ case 2: return (Subtarget->hasLASX()); ++ case 3: return (!Subtarget->is64Bit()); ++ } ++} ++#endif // GET_DAGISEL_BODY ++ ++#ifdef GET_DAGISEL_DECL ++bool CheckNodePredicate(SDNode *Node, unsigned PredNo) const override; ++#endif ++#if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE ++bool DAGISEL_CLASS_COLONCOLON CheckNodePredicate(SDNode *Node, unsigned PredNo) const ++#if DAGISEL_INLINE ++ override ++#endif ++{ ++ switch (PredNo) { ++ default: llvm_unreachable("Invalid predicate in table?"); ++ case 0: { ++ // Predicate_unindexedload ++ SDNode *N = Node; ++ (void)N; ++if (cast(N)->getAddressingMode() != ISD::UNINDEXED) return false; ++return true; ++ ++ } ++ case 1: { ++ // Predicate_sextload ++ SDNode *N = Node; ++ (void)N; ++if (cast(N)->getExtensionType() != ISD::SEXTLOAD) return false; ++return true; ++ ++ } ++ case 2: { ++ // Predicate_sextloadi8 ++ // Predicate_zextloadi8 ++ // Predicate_extloadi8 ++ // Predicate_truncstorei8 ++ // Predicate_atomic_store_8 ++ // Predicate_atomic_load_8 ++ // Predicate_atomic_load_add_8 ++ // Predicate_atomic_load_sub_8 ++ // Predicate_atomic_load_and_8 ++ // Predicate_atomic_load_or_8 ++ // Predicate_atomic_load_xor_8 ++ // Predicate_atomic_load_nand_8 ++ // Predicate_atomic_swap_8 ++ // Predicate_atomic_cmp_swap_8 ++ // Predicate_atomic_load_max_8 ++ // Predicate_atomic_load_min_8 ++ // Predicate_atomic_load_umax_8 ++ // Predicate_atomic_load_umin_8 ++ SDNode *N = Node; ++ (void)N; ++if (cast(N)->getMemoryVT() != MVT::i8) return false; ++return true; ++ ++ } ++ case 3: { ++ // Predicate_sextloadi16 ++ // Predicate_zextloadi16 ++ // Predicate_extloadi16 ++ // Predicate_truncstorei16 ++ // Predicate_atomic_store_16 ++ // Predicate_atomic_load_16 ++ // Predicate_atomic_load_add_16 ++ // Predicate_atomic_load_sub_16 ++ // Predicate_atomic_load_and_16 ++ // Predicate_atomic_load_or_16 ++ // Predicate_atomic_load_xor_16 ++ // Predicate_atomic_load_nand_16 ++ // Predicate_atomic_swap_16 ++ // Predicate_atomic_cmp_swap_16 ++ // Predicate_atomic_load_max_16 ++ // Predicate_atomic_load_min_16 ++ // Predicate_atomic_load_umax_16 ++ // Predicate_atomic_load_umin_16 ++ SDNode *N = Node; ++ (void)N; ++if (cast(N)->getMemoryVT() != MVT::i16) return false; ++return true; ++ ++ } ++ case 4: { ++ // Predicate_sextloadi32 ++ // Predicate_zextloadi32 ++ // Predicate_extloadi32 ++ // Predicate_truncstorei32 ++ // Predicate_atomic_store_32 ++ // Predicate_atomic_load_32 ++ // Predicate_atomic_load_add_32 ++ // Predicate_atomic_load_sub_32 ++ // Predicate_atomic_load_and_32 ++ // Predicate_atomic_load_or_32 ++ // Predicate_atomic_load_xor_32 ++ // Predicate_atomic_load_nand_32 ++ // Predicate_atomic_swap_32 ++ // Predicate_atomic_cmp_swap_32 ++ // Predicate_atomic_load_max_32 ++ // Predicate_atomic_load_min_32 ++ // Predicate_atomic_load_umax_32 ++ // Predicate_atomic_load_umin_32 ++ SDNode *N = Node; ++ (void)N; ++if (cast(N)->getMemoryVT() != MVT::i32) return false; ++return true; ++ ++ } ++ case 5: { ++ // Predicate_load ++ SDNode *N = Node; ++ (void)N; ++if (cast(N)->getExtensionType() != ISD::NON_EXTLOAD) return false; ++return true; ++ ++ } ++ case 6: { ++ // Predicate_zextload ++ SDNode *N = Node; ++ (void)N; ++if (cast(N)->getExtensionType() != ISD::ZEXTLOAD) return false; ++return true; ++ ++ } ++ case 7: { ++ // Predicate_extload ++ SDNode *N = Node; ++ (void)N; ++if (cast(N)->getExtensionType() != ISD::EXTLOAD) return false; ++return true; ++ ++ } ++ case 8: { ++ // Predicate_extloadi1 ++ SDNode *N = Node; ++ (void)N; ++if (cast(N)->getMemoryVT() != MVT::i1) return false; ++return true; ++ ++ } ++ case 9: { ++ // Predicate_unindexedstore ++ SDNode *N = Node; ++ (void)N; ++if (cast(N)->getAddressingMode() != ISD::UNINDEXED) return false; ++return true; ++ ++ } ++ case 10: { ++ // Predicate_truncstore ++ SDNode *N = Node; ++ (void)N; ++ if (!cast(N)->isTruncatingStore()) return false; ++return true; ++ ++ } ++ case 11: { ++ // Predicate_store ++ SDNode *N = Node; ++ (void)N; ++ if (cast(N)->isTruncatingStore()) return false; ++return true; ++ ++ } ++ case 12: { ++ // Predicate_uimm12_32 ++ // Predicate_uimm12 ++ int64_t Imm = cast(Node)->getSExtValue(); ++ return Imm >= 0 && Imm < 4096; ++ } ++ case 13: { ++ // Predicate_immZExt12 ++ auto *N = cast(Node); ++ (void)N; ++ return isUInt<12>(N->getZExtValue()); ++ } ++ case 14: { ++ // Predicate_immSExt12 ++ auto *N = cast(Node); ++ (void)N; ++ return isInt<12>(N->getSExtValue()); ++ } ++ case 15: { ++ // Predicate_immZExt5 ++ int64_t Imm = cast(Node)->getSExtValue(); ++return Imm == (Imm & 0x1f); ++ } ++ case 16: { ++ // Predicate_immz ++ auto *N = cast(Node); ++ (void)N; ++ return N->getSExtValue() == 0; ++ } ++ case 17: { ++ // Predicate_atomic_store_64 ++ // Predicate_atomic_load_64 ++ // Predicate_atomic_load_add_64 ++ // Predicate_atomic_load_sub_64 ++ // Predicate_atomic_load_and_64 ++ // Predicate_atomic_load_or_64 ++ // Predicate_atomic_load_xor_64 ++ // Predicate_atomic_load_nand_64 ++ // Predicate_atomic_swap_64 ++ // Predicate_atomic_cmp_swap_64 ++ // Predicate_atomic_load_max_64 ++ // Predicate_atomic_load_min_64 ++ // Predicate_atomic_load_umax_64 ++ // Predicate_atomic_load_umin_64 ++ SDNode *N = Node; ++ (void)N; ++if (cast(N)->getMemoryVT() != MVT::i64) return false; ++return true; ++ ++ } ++ case 18: { ++ // Predicate_immSExt12Plus1 ++ auto *N = cast(Node); ++ (void)N; ++ ++ return isInt<13>(N->getSExtValue()) && isInt<12>(N->getSExtValue() + 1); ++ ++ } ++ case 19: { ++ // Predicate_immZExt2Alsl ++ int64_t Imm = cast(Node)->getSExtValue(); ++return isUInt<2>(Imm - 1); ++ } ++ case 20: { ++ // Predicate_uimm5 ++ int64_t Imm = cast(Node)->getSExtValue(); ++ return Imm >= 0 && Imm < 32; ++ } ++ case 21: { ++ // Predicate_simm12 ++ // Predicate_simm12_32 ++ int64_t Imm = cast(Node)->getSExtValue(); ++ return Imm >= -2048 && Imm < 2048; ++ } ++ case 22: { ++ // Predicate_immSExt8 ++ int64_t Imm = cast(Node)->getSExtValue(); ++return isInt<8>(Imm); ++ } ++ case 23: { ++ // Predicate_immZExt4 ++ // Predicate_immZExt4Ptr ++ int64_t Imm = cast(Node)->getSExtValue(); ++return isUInt<4>(Imm); ++ } ++ case 24: { ++ // Predicate_immZExt3 ++ // Predicate_immZExt3Ptr ++ int64_t Imm = cast(Node)->getSExtValue(); ++return isUInt<3>(Imm); ++ } ++ case 25: { ++ // Predicate_immZExt2 ++ // Predicate_immZExt2Ptr ++ int64_t Imm = cast(Node)->getSExtValue(); ++return isUInt<2>(Imm); ++ } ++ case 26: { ++ // Predicate_immZExt1 ++ // Predicate_immZExt1Ptr ++ int64_t Imm = cast(Node)->getSExtValue(); ++return isUInt<1>(Imm); ++ } ++ case 27: { ++ // Predicate_uimm15 ++ int64_t Imm = cast(Node)->getSExtValue(); ++ return Imm >= 0 && Imm < 32768; ++ } ++ case 28: { ++ // Predicate_uimm14 ++ // Predicate_uimm14_32 ++ int64_t Imm = cast(Node)->getSExtValue(); ++ return Imm >= 0 && Imm < 16384; ++ } ++ case 29: { ++ // Predicate_immSExt5 ++ int64_t Imm = cast(Node)->getSExtValue(); ++return isInt<5>(Imm); ++ } ++ case 30: { ++ // Predicate_immZExt6 ++ int64_t Imm = cast(Node)->getSExtValue(); ++return Imm == (Imm & 0x3f); ++ } ++ case 31: { ++ // Predicate_immZExt8 ++ int64_t Imm = cast(Node)->getSExtValue(); ++return isUInt<8>(Imm); ++ } ++ case 32: { ++ // Predicate_immZExt7 ++ auto *N = cast(Node); ++ (void)N; ++ return isUInt<7>(N->getZExtValue()); ++ } ++ case 33: { ++ // Predicate_simm13 ++ auto *N = cast(Node); ++ (void)N; ++ return isInt<13>(N->getSExtValue()); ++ } ++ case 34: { ++ // Predicate_vsplat_imm_eq_1 ++ SDNode *N = Node; ++ (void)N; ++ ++ APInt Imm; ++ EVT EltTy = N->getValueType(0).getVectorElementType(); ++ ++ return selectVSplat(N, Imm, EltTy.getSizeInBits()) && ++ Imm.getBitWidth() == EltTy.getSizeInBits() && Imm == 1; ++ ++ } ++ case 35: { ++ // Predicate_immi32Cst7 ++ int64_t Imm = cast(Node)->getSExtValue(); ++return isUInt<32>(Imm) && Imm == 7; ++ } ++ case 36: { ++ // Predicate_immi32Cst15 ++ int64_t Imm = cast(Node)->getSExtValue(); ++return isUInt<32>(Imm) && Imm == 15; ++ } ++ case 37: { ++ // Predicate_imm_mask ++ int64_t Imm = cast(Node)->getSExtValue(); ++return isInt<32>(Imm) && Imm == -1; ++ } ++ case 38: { ++ // Predicate_immi32Cst31 ++ int64_t Imm = cast(Node)->getSExtValue(); ++return isUInt<32>(Imm) && Imm == 31; ++ } ++ case 39: { ++ // Predicate_vsplati64_imm_eq_1 ++ // Predicate_xvsplati64_imm_eq_1 ++ SDNode *N = Node; ++ (void)N; ++ ++ APInt Imm; ++ SDNode *BV = N->getOperand(0).getNode(); ++ EVT EltTy = N->getValueType(0).getVectorElementType(); ++ ++ return selectVSplat(BV, Imm, EltTy.getSizeInBits()) && ++ Imm.getBitWidth() == EltTy.getSizeInBits() && Imm == 1; ++ ++ } ++ case 40: { ++ // Predicate_vsplati64_imm_eq_63 ++ // Predicate_xvsplati64_imm_eq_63 ++ SDNode *N = Node; ++ (void)N; ++ ++ APInt Imm; ++ SDNode *BV = N->getOperand(0).getNode(); ++ EVT EltTy = N->getValueType(0).getVectorElementType(); ++ ++ return selectVSplat(BV, Imm, EltTy.getSizeInBits()) && ++ Imm.getBitWidth() == EltTy.getSizeInBits() && Imm == 63; ++ ++ } ++ case 41: { ++ // Predicate_imm_mask_64 ++ int64_t Imm = cast(Node)->getSExtValue(); ++return isInt<64>(Imm) && Imm == -1; ++ } ++ case 42: { ++ // Predicate_xvsplat_imm_eq_1 ++ SDNode *N = Node; ++ (void)N; ++ ++ APInt Imm; ++ EVT EltTy = N->getValueType(0).getVectorElementType(); ++ return selectVSplat(N, Imm, EltTy.getSizeInBits()) && ++ Imm.getBitWidth() == EltTy.getSizeInBits() && Imm == 1; ++ ++ } ++ case 43: { ++ // Predicate_uimm6 ++ int64_t Imm = cast(Node)->getSExtValue(); ++ return Imm >= 0 && Imm < 64; ++ } ++ case 44: { ++ // Predicate_assertzext_lt_i32 ++ SDNode *N = Node; ++ (void)N; ++ ++ return cast(N->getOperand(1))->getVT().bitsLT(MVT::i32); ++ ++ } ++ case 45: { ++ // Predicate_fpimm1 ++ auto *N = cast(Node); ++ (void)N; ++ ++ return N->isExactlyValue(+1.0); ++ ++ } ++ case 46: { ++ // Predicate_fpimm0 ++ auto *N = cast(Node); ++ (void)N; ++ ++ return N->isExactlyValue(+0.0); ++ ++ } ++ case 47: { ++ // Predicate_fpimm0neg ++ auto *N = cast(Node); ++ (void)N; ++ ++ return N->isExactlyValue(-0.0); ++ ++ } ++ case 48: { ++ // Predicate_uimm3 ++ int64_t Imm = cast(Node)->getSExtValue(); ++ return Imm >= 0 && Imm < 8; ++ } ++ case 49: { ++ // Predicate_uimm2 ++ int64_t Imm = cast(Node)->getSExtValue(); ++ return Imm >= 0 && Imm < 4; ++ } ++ case 50: { ++ // Predicate_immZExt5Ptr ++ int64_t Imm = cast(Node)->getSExtValue(); ++return isUInt<5>(Imm); ++ } ++ case 51: { ++ // Predicate_uimm8_32 ++ int64_t Imm = cast(Node)->getSExtValue(); ++ return Imm >= 0 && Imm < 256; ++ } ++ } ++} ++#endif // GET_DAGISEL_BODY ++ ++#ifdef GET_DAGISEL_DECL ++bool CheckComplexPattern(SDNode *Root, SDNode *Parent, ++ SDValue N, unsigned PatternNo, ++ SmallVectorImpl> &Result) override; ++#endif ++#if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE ++bool DAGISEL_CLASS_COLONCOLON CheckComplexPattern(SDNode *Root, SDNode *Parent, ++ SDValue N, unsigned PatternNo, ++ SmallVectorImpl> &Result) ++#if DAGISEL_INLINE ++ override ++#endif ++{ ++ unsigned NextRes = Result.size(); ++ switch (PatternNo) { ++ default: llvm_unreachable("Invalid pattern # in table?"); ++ case 0: ++ Result.resize(NextRes+2); ++ return selectAddrRegImm(N, Result[NextRes+0].first, Result[NextRes+1].first); ++ case 1: ++ Result.resize(NextRes+2); ++ return selectIntAddrSImm14Lsl2(N, Result[NextRes+0].first, Result[NextRes+1].first); ++ case 2: ++ Result.resize(NextRes+2); ++ return selectIntAddr(N, Result[NextRes+0].first, Result[NextRes+1].first); ++ case 3: ++ Result.resize(NextRes+2); ++ return selectAddrDefault(N, Result[NextRes+0].first, Result[NextRes+1].first); ++ case 4: ++ Result.resize(NextRes+2); ++ return selectIntAddrSImm12(N, Result[NextRes+0].first, Result[NextRes+1].first); ++ case 5: ++ Result.resize(NextRes+1); ++ return selectVSplatSimm5(N, Result[NextRes+0].first); ++ case 6: ++ Result.resize(NextRes+1); ++ return selectVSplatUimm5(N, Result[NextRes+0].first); ++ case 7: ++ Result.resize(NextRes+1); ++ return selectVSplatSimm5(N, Result[NextRes+0].first); ++ case 8: ++ Result.resize(NextRes+1); ++ return selectVSplatUimm5(N, Result[NextRes+0].first); ++ case 9: ++ Result.resize(NextRes+1); ++ return selectVSplatSimm5(N, Result[NextRes+0].first); ++ case 10: ++ Result.resize(NextRes+1); ++ return selectVSplatUimm5(N, Result[NextRes+0].first); ++ case 11: ++ Result.resize(NextRes+1); ++ return selectVSplatSimm5(N, Result[NextRes+0].first); ++ case 12: ++ Result.resize(NextRes+1); ++ return selectVSplatUimm5(N, Result[NextRes+0].first); ++ case 13: ++ Result.resize(NextRes+1); ++ return selectVSplatSimm5(N, Result[NextRes+0].first); ++ case 14: ++ Result.resize(NextRes+1); ++ return selectVSplatUimm5(N, Result[NextRes+0].first); ++ case 15: ++ Result.resize(NextRes+1); ++ return selectVSplatSimm5(N, Result[NextRes+0].first); ++ case 16: ++ Result.resize(NextRes+1); ++ return selectVSplatUimm5(N, Result[NextRes+0].first); ++ case 17: ++ Result.resize(NextRes+1); ++ return selectVSplatSimm5(N, Result[NextRes+0].first); ++ case 18: ++ Result.resize(NextRes+1); ++ return selectVSplatUimm5(N, Result[NextRes+0].first); ++ case 19: ++ Result.resize(NextRes+1); ++ return selectVSplatSimm5(N, Result[NextRes+0].first); ++ case 20: ++ Result.resize(NextRes+1); ++ return selectVSplatUimm5(N, Result[NextRes+0].first); ++ case 21: ++ Result.resize(NextRes+1); ++ return selectVSplatUimm8(N, Result[NextRes+0].first); ++ case 22: ++ Result.resize(NextRes+1); ++ return selectVSplatUimm8(N, Result[NextRes+0].first); ++ case 23: ++ Result.resize(NextRes+1); ++ return selectVSplatUimm3(N, Result[NextRes+0].first); ++ case 24: ++ Result.resize(NextRes+1); ++ return selectVSplatUimm4(N, Result[NextRes+0].first); ++ case 25: ++ Result.resize(NextRes+1); ++ return selectVSplatUimm6(N, Result[NextRes+0].first); ++ case 26: ++ Result.resize(NextRes+1); ++ return selectVSplatUimm3(N, Result[NextRes+0].first); ++ case 27: ++ Result.resize(NextRes+1); ++ return selectVSplatUimm4(N, Result[NextRes+0].first); ++ case 28: ++ Result.resize(NextRes+1); ++ return selectVSplatUimm6(N, Result[NextRes+0].first); ++ case 29: ++ Result.resize(NextRes+2); ++ return selectIntAddrSImm11Lsl1(N, Result[NextRes+0].first, Result[NextRes+1].first); ++ case 30: ++ Result.resize(NextRes+2); ++ return selectIntAddrSImm10Lsl2(N, Result[NextRes+0].first, Result[NextRes+1].first); ++ case 31: ++ Result.resize(NextRes+2); ++ return selectIntAddrSImm9Lsl3(N, Result[NextRes+0].first, Result[NextRes+1].first); ++ case 32: ++ Result.resize(NextRes+1); ++ return selectVSplatUimm4(N, Result[NextRes+0].first); ++ case 33: ++ Result.resize(NextRes+1); ++ return selectVSplatUimm3(N, Result[NextRes+0].first); ++ case 34: ++ Result.resize(NextRes+1); ++ return selectVSplatUimm2(N, Result[NextRes+0].first); ++ case 35: ++ Result.resize(NextRes+1); ++ return selectVSplatUimm1(N, Result[NextRes+0].first); ++ } ++} ++#endif // GET_DAGISEL_BODY ++ ++#ifdef GET_DAGISEL_DECL ++SDValue RunSDNodeXForm(SDValue V, unsigned XFormNo) override; ++#endif ++#if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE ++SDValue DAGISEL_CLASS_COLONCOLON RunSDNodeXForm(SDValue V, unsigned XFormNo) ++#if DAGISEL_INLINE ++ override ++#endif ++{ ++ switch (XFormNo) { ++ default: llvm_unreachable("Invalid xform # in table?"); ++ case 0: { // Plus1 ++ ConstantSDNode *N = cast(V.getNode()); ++ return getImm(N, N->getSExtValue() + 1); ++ } ++ } ++} ++#endif // GET_DAGISEL_BODY ++ ++ ++#ifdef DAGISEL_INLINE ++#undef DAGISEL_INLINE ++#endif ++#ifdef DAGISEL_CLASS_COLONCOLON ++#undef DAGISEL_CLASS_COLONCOLON ++#endif ++#ifdef GET_DAGISEL_DECL ++#undef GET_DAGISEL_DECL ++#endif ++#ifdef GET_DAGISEL_BODY ++#undef GET_DAGISEL_BODY ++#endif +diff --git a/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenDAGISel.inc.d b/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenDAGISel.inc.d +new file mode 100644 +index 00000000000..9aaa014edee +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenDAGISel.inc.d +@@ -0,0 +1 @@ ++lib/Target/LoongArch/LoongArchGenDAGISel.inc: /mnt/wangqing/work/llvm-project/llvm/include/llvm/CodeGen/SDNodeProperties.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/CodeGen/ValueTypes.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/Intrinsics.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsAArch64.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsAMDGPU.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsARM.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsBPF.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsHexagon.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsLoongArch.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsMips.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsNVVM.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsPowerPC.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsRISCV.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsSystemZ.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsWebAssembly.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsX86.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsXCore.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/GenericOpcodes.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/GlobalISel/RegisterBank.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/GlobalISel/SelectionDAGCompat.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/GlobalISel/Target.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/Target.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetCallingConv.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetInstrPredicate.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetItinerary.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetPfmCounters.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetSchedule.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetSelectionDAG.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArch32InstrInfo.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchCallingConv.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchInstrFormats.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchInstrInfo.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchInstrInfoF.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchLASXInstrFormats.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchLASXInstrInfo.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchLSXInstrFormats.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchLSXInstrInfo.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchRegisterInfo.td +diff --git a/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenDisassemblerTables.inc b/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenDisassemblerTables.inc +new file mode 100644 +index 00000000000..2d1687180a8 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenDisassemblerTables.inc +@@ -0,0 +1,6730 @@ ++/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\ ++|* *| ++|* * LoongArch Disassembler *| ++|* *| ++|* Automatically generated file, do not edit! *| ++|* *| ++\*===----------------------------------------------------------------------===*/ ++ ++#include "llvm/MC/MCInst.h" ++#include "llvm/Support/Debug.h" ++#include "llvm/Support/DataTypes.h" ++#include "llvm/Support/LEB128.h" ++#include "llvm/Support/raw_ostream.h" ++#include ++ ++namespace llvm { ++ ++// Helper functions for extracting fields from encoded instructions. ++// InsnType must either be integral or an APInt-like object that must: ++// * Have a static const max_size_in_bits equal to the number of bits in the ++// encoding. ++// * be default-constructible and copy-constructible ++// * be constructible from a uint64_t ++// * be constructible from an APInt (this can be private) ++// * Support getBitsSet(loBit, hiBit) ++// * be convertible to uint64_t ++// * Support the ~, &, ==, !=, and |= operators with other objects of the same type ++// * Support shift (<<, >>) with signed and unsigned integers on the RHS ++// * Support put (<<) to raw_ostream& ++template ++#if defined(_MSC_VER) && !defined(__clang__) ++__declspec(noinline) ++#endif ++static InsnType fieldFromInstruction(InsnType insn, unsigned startBit, ++ unsigned numBits, std::true_type) { ++ assert(startBit + numBits <= 64 && "Cannot support >64-bit extractions!"); ++ assert(startBit + numBits <= (sizeof(InsnType) * 8) && ++ "Instruction field out of bounds!"); ++ InsnType fieldMask; ++ if (numBits == sizeof(InsnType) * 8) ++ fieldMask = (InsnType)(-1LL); ++ else ++ fieldMask = (((InsnType)1 << numBits) - 1) << startBit; ++ return (insn & fieldMask) >> startBit; ++} ++ ++template ++static InsnType fieldFromInstruction(InsnType insn, unsigned startBit, ++ unsigned numBits, std::false_type) { ++ assert(startBit + numBits <= InsnType::max_size_in_bits && "Instruction field out of bounds!"); ++ InsnType fieldMask = InsnType::getBitsSet(0, numBits); ++ return (insn >> startBit) & fieldMask; ++} ++ ++template ++static InsnType fieldFromInstruction(InsnType insn, unsigned startBit, ++ unsigned numBits) { ++ return fieldFromInstruction(insn, startBit, numBits, std::is_integral()); ++} ++ ++static const uint8_t DecoderTableLoongArch32[] = { ++/* 0 */ MCD::OPC_ExtractField, 26, 6, // Inst{31-26} ... ++/* 3 */ MCD::OPC_FilterValue, 0, 199, 5, 0, // Skip to: 1487 ++/* 8 */ MCD::OPC_ExtractField, 22, 4, // Inst{25-22} ... ++/* 11 */ MCD::OPC_FilterValue, 0, 41, 2, 0, // Skip to: 569 ++/* 16 */ MCD::OPC_ExtractField, 18, 4, // Inst{21-18} ... ++/* 19 */ MCD::OPC_FilterValue, 0, 187, 0, 0, // Skip to: 211 ++/* 24 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 27 */ MCD::OPC_FilterValue, 0, 147, 0, 0, // Skip to: 179 ++/* 32 */ MCD::OPC_ExtractField, 10, 5, // Inst{14-10} ... ++/* 35 */ MCD::OPC_FilterValue, 8, 4, 0, 0, // Skip to: 44 ++/* 40 */ MCD::OPC_Decode, 255, 3, 0, // Opcode: CLO_D ++/* 44 */ MCD::OPC_FilterValue, 9, 4, 0, 0, // Skip to: 53 ++/* 49 */ MCD::OPC_Decode, 129, 4, 0, // Opcode: CLZ_D ++/* 53 */ MCD::OPC_FilterValue, 10, 4, 0, 0, // Skip to: 62 ++/* 58 */ MCD::OPC_Decode, 146, 4, 0, // Opcode: CTO_D ++/* 62 */ MCD::OPC_FilterValue, 11, 4, 0, 0, // Skip to: 71 ++/* 67 */ MCD::OPC_Decode, 148, 4, 0, // Opcode: CTZ_D ++/* 71 */ MCD::OPC_FilterValue, 13, 4, 0, 0, // Skip to: 80 ++/* 76 */ MCD::OPC_Decode, 180, 6, 0, // Opcode: REVB_4H ++/* 80 */ MCD::OPC_FilterValue, 14, 4, 0, 0, // Skip to: 89 ++/* 85 */ MCD::OPC_Decode, 178, 6, 0, // Opcode: REVB_2W ++/* 89 */ MCD::OPC_FilterValue, 15, 4, 0, 0, // Skip to: 98 ++/* 94 */ MCD::OPC_Decode, 181, 6, 0, // Opcode: REVB_D ++/* 98 */ MCD::OPC_FilterValue, 16, 4, 0, 0, // Skip to: 107 ++/* 103 */ MCD::OPC_Decode, 182, 6, 0, // Opcode: REVH_2W ++/* 107 */ MCD::OPC_FilterValue, 17, 4, 0, 0, // Skip to: 116 ++/* 112 */ MCD::OPC_Decode, 184, 6, 0, // Opcode: REVH_D ++/* 116 */ MCD::OPC_FilterValue, 19, 4, 0, 0, // Skip to: 125 ++/* 121 */ MCD::OPC_Decode, 234, 3, 0, // Opcode: BITREV_8B ++/* 125 */ MCD::OPC_FilterValue, 21, 4, 0, 0, // Skip to: 134 ++/* 130 */ MCD::OPC_Decode, 235, 3, 0, // Opcode: BITREV_D ++/* 134 */ MCD::OPC_FilterValue, 22, 4, 0, 0, // Skip to: 143 ++/* 139 */ MCD::OPC_Decode, 159, 4, 0, // Opcode: EXT_W_H ++/* 143 */ MCD::OPC_FilterValue, 23, 4, 0, 0, // Skip to: 152 ++/* 148 */ MCD::OPC_Decode, 157, 4, 0, // Opcode: EXT_W_B ++/* 152 */ MCD::OPC_FilterValue, 24, 4, 0, 0, // Skip to: 161 ++/* 157 */ MCD::OPC_Decode, 174, 6, 0, // Opcode: RDTIMEL_W ++/* 161 */ MCD::OPC_FilterValue, 25, 4, 0, 0, // Skip to: 170 ++/* 166 */ MCD::OPC_Decode, 172, 6, 0, // Opcode: RDTIMEH_W ++/* 170 */ MCD::OPC_FilterValue, 26, 209, 80, 0, // Skip to: 20864 ++/* 175 */ MCD::OPC_Decode, 176, 6, 0, // Opcode: RDTIME_D ++/* 179 */ MCD::OPC_FilterValue, 2, 11, 0, 0, // Skip to: 195 ++/* 184 */ MCD::OPC_CheckField, 0, 5, 0, 193, 80, 0, // Skip to: 20864 ++/* 191 */ MCD::OPC_Decode, 220, 3, 1, // Opcode: ASRTLE_D ++/* 195 */ MCD::OPC_FilterValue, 3, 184, 80, 0, // Skip to: 20864 ++/* 200 */ MCD::OPC_CheckField, 0, 5, 0, 177, 80, 0, // Skip to: 20864 ++/* 207 */ MCD::OPC_Decode, 219, 3, 1, // Opcode: ASRTGT_D ++/* 211 */ MCD::OPC_FilterValue, 1, 11, 0, 0, // Skip to: 227 ++/* 216 */ MCD::OPC_CheckField, 17, 1, 1, 161, 80, 0, // Skip to: 20864 ++/* 223 */ MCD::OPC_Decode, 176, 3, 2, // Opcode: ALSL_WU ++/* 227 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 236 ++/* 232 */ MCD::OPC_Decode, 251, 3, 3, // Opcode: BYTEPICK_D ++/* 236 */ MCD::OPC_FilterValue, 4, 57, 0, 0, // Skip to: 298 ++/* 241 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 244 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 253 ++/* 249 */ MCD::OPC_Decode, 171, 3, 4, // Opcode: ADD_D ++/* 253 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 262 ++/* 258 */ MCD::OPC_Decode, 240, 6, 4, // Opcode: SUB_D ++/* 262 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 271 ++/* 267 */ MCD::OPC_Decode, 198, 6, 5, // Opcode: SLT ++/* 271 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 280 ++/* 276 */ MCD::OPC_Decode, 202, 6, 5, // Opcode: SLTU ++/* 280 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 289 ++/* 285 */ MCD::OPC_Decode, 244, 5, 4, // Opcode: MASKEQZ ++/* 289 */ MCD::OPC_FilterValue, 7, 90, 80, 0, // Skip to: 20864 ++/* 294 */ MCD::OPC_Decode, 246, 5, 4, // Opcode: MASKNEZ ++/* 298 */ MCD::OPC_FilterValue, 5, 57, 0, 0, // Skip to: 360 ++/* 303 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 306 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 315 ++/* 311 */ MCD::OPC_Decode, 149, 6, 4, // Opcode: NOR ++/* 315 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 324 ++/* 320 */ MCD::OPC_Decode, 213, 3, 4, // Opcode: AND ++/* 324 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 333 ++/* 329 */ MCD::OPC_Decode, 151, 6, 4, // Opcode: OR ++/* 333 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 342 ++/* 338 */ MCD::OPC_Decode, 255, 12, 4, // Opcode: XOR ++/* 342 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 351 ++/* 347 */ MCD::OPC_Decode, 157, 6, 4, // Opcode: ORN ++/* 351 */ MCD::OPC_FilterValue, 5, 28, 80, 0, // Skip to: 20864 ++/* 356 */ MCD::OPC_Decode, 217, 3, 4, // Opcode: ANDN ++/* 360 */ MCD::OPC_FilterValue, 6, 39, 0, 0, // Skip to: 404 ++/* 365 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 368 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 377 ++/* 373 */ MCD::OPC_Decode, 196, 6, 6, // Opcode: SLL_D ++/* 377 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 386 ++/* 382 */ MCD::OPC_Decode, 213, 6, 6, // Opcode: SRL_D ++/* 386 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 395 ++/* 391 */ MCD::OPC_Decode, 209, 6, 6, // Opcode: SRA_D ++/* 395 */ MCD::OPC_FilterValue, 7, 240, 79, 0, // Skip to: 20864 ++/* 400 */ MCD::OPC_Decode, 187, 6, 6, // Opcode: ROTR_D ++/* 404 */ MCD::OPC_FilterValue, 7, 48, 0, 0, // Skip to: 457 ++/* 409 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 412 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 421 ++/* 417 */ MCD::OPC_Decode, 147, 6, 4, // Opcode: MUL_D ++/* 421 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 430 ++/* 426 */ MCD::OPC_Decode, 141, 6, 4, // Opcode: MULH_D ++/* 430 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 439 ++/* 435 */ MCD::OPC_Decode, 142, 6, 4, // Opcode: MULH_DU ++/* 439 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 448 ++/* 444 */ MCD::OPC_Decode, 145, 6, 4, // Opcode: MULW_D_W ++/* 448 */ MCD::OPC_FilterValue, 7, 187, 79, 0, // Skip to: 20864 ++/* 453 */ MCD::OPC_Decode, 146, 6, 4, // Opcode: MULW_D_WU ++/* 457 */ MCD::OPC_FilterValue, 8, 39, 0, 0, // Skip to: 501 ++/* 462 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 465 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 474 ++/* 470 */ MCD::OPC_Decode, 152, 4, 4, // Opcode: DIV_D ++/* 474 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 483 ++/* 479 */ MCD::OPC_Decode, 248, 5, 4, // Opcode: MOD_D ++/* 483 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 492 ++/* 488 */ MCD::OPC_Decode, 153, 4, 4, // Opcode: DIV_DU ++/* 492 */ MCD::OPC_FilterValue, 7, 143, 79, 0, // Skip to: 20864 ++/* 497 */ MCD::OPC_Decode, 249, 5, 4, // Opcode: MOD_DU ++/* 501 */ MCD::OPC_FilterValue, 9, 21, 0, 0, // Skip to: 527 ++/* 506 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 509 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 518 ++/* 514 */ MCD::OPC_Decode, 137, 4, 7, // Opcode: CRC_W_D_W ++/* 518 */ MCD::OPC_FilterValue, 7, 117, 79, 0, // Skip to: 20864 ++/* 523 */ MCD::OPC_Decode, 133, 4, 7, // Opcode: CRCC_W_D_W ++/* 527 */ MCD::OPC_FilterValue, 10, 21, 0, 0, // Skip to: 553 ++/* 532 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 535 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 544 ++/* 540 */ MCD::OPC_Decode, 151, 4, 8, // Opcode: DBCL ++/* 544 */ MCD::OPC_FilterValue, 7, 91, 79, 0, // Skip to: 20864 ++/* 549 */ MCD::OPC_Decode, 168, 5, 8, // Opcode: HYPCALL ++/* 553 */ MCD::OPC_FilterValue, 11, 82, 79, 0, // Skip to: 20864 ++/* 558 */ MCD::OPC_CheckField, 17, 1, 0, 75, 79, 0, // Skip to: 20864 ++/* 565 */ MCD::OPC_Decode, 174, 3, 9, // Opcode: ALSL_D ++/* 569 */ MCD::OPC_FilterValue, 1, 39, 0, 0, // Skip to: 613 ++/* 574 */ MCD::OPC_ExtractField, 16, 6, // Inst{21-16} ... ++/* 577 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 586 ++/* 582 */ MCD::OPC_Decode, 191, 6, 10, // Opcode: SLLI_D ++/* 586 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 595 ++/* 591 */ MCD::OPC_Decode, 211, 6, 10, // Opcode: SRLI_D ++/* 595 */ MCD::OPC_FilterValue, 9, 4, 0, 0, // Skip to: 604 ++/* 600 */ MCD::OPC_Decode, 207, 6, 10, // Opcode: SRAI_D ++/* 604 */ MCD::OPC_FilterValue, 13, 31, 79, 0, // Skip to: 20864 ++/* 609 */ MCD::OPC_Decode, 185, 6, 10, // Opcode: ROTRI_D ++/* 613 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 622 ++/* 618 */ MCD::OPC_Decode, 247, 3, 11, // Opcode: BSTRINS_D ++/* 622 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 631 ++/* 627 */ MCD::OPC_Decode, 249, 3, 12, // Opcode: BSTRPICK_D ++/* 631 */ MCD::OPC_FilterValue, 4, 11, 3, 0, // Skip to: 1415 ++/* 636 */ MCD::OPC_ExtractField, 15, 7, // Inst{21-15} ... ++/* 639 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 648 ++/* 644 */ MCD::OPC_Decode, 164, 4, 13, // Opcode: FADD_S ++/* 648 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 657 ++/* 653 */ MCD::OPC_Decode, 163, 4, 14, // Opcode: FADD_D ++/* 657 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 666 ++/* 662 */ MCD::OPC_Decode, 148, 5, 13, // Opcode: FSUB_S ++/* 666 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 675 ++/* 671 */ MCD::OPC_Decode, 147, 5, 14, // Opcode: FSUB_D ++/* 675 */ MCD::OPC_FilterValue, 9, 4, 0, 0, // Skip to: 684 ++/* 680 */ MCD::OPC_Decode, 248, 4, 13, // Opcode: FMUL_S ++/* 684 */ MCD::OPC_FilterValue, 10, 4, 0, 0, // Skip to: 693 ++/* 689 */ MCD::OPC_Decode, 247, 4, 14, // Opcode: FMUL_D ++/* 693 */ MCD::OPC_FilterValue, 13, 4, 0, 0, // Skip to: 702 ++/* 698 */ MCD::OPC_Decode, 218, 4, 13, // Opcode: FDIV_S ++/* 702 */ MCD::OPC_FilterValue, 14, 4, 0, 0, // Skip to: 711 ++/* 707 */ MCD::OPC_Decode, 217, 4, 14, // Opcode: FDIV_D ++/* 711 */ MCD::OPC_FilterValue, 17, 4, 0, 0, // Skip to: 720 ++/* 716 */ MCD::OPC_Decode, 238, 4, 13, // Opcode: FMAX_S ++/* 720 */ MCD::OPC_FilterValue, 18, 4, 0, 0, // Skip to: 729 ++/* 725 */ MCD::OPC_Decode, 237, 4, 14, // Opcode: FMAX_D ++/* 729 */ MCD::OPC_FilterValue, 21, 4, 0, 0, // Skip to: 738 ++/* 734 */ MCD::OPC_Decode, 242, 4, 13, // Opcode: FMIN_S ++/* 738 */ MCD::OPC_FilterValue, 22, 4, 0, 0, // Skip to: 747 ++/* 743 */ MCD::OPC_Decode, 241, 4, 14, // Opcode: FMIN_D ++/* 747 */ MCD::OPC_FilterValue, 25, 4, 0, 0, // Skip to: 756 ++/* 752 */ MCD::OPC_Decode, 236, 4, 13, // Opcode: FMAXA_S ++/* 756 */ MCD::OPC_FilterValue, 26, 4, 0, 0, // Skip to: 765 ++/* 761 */ MCD::OPC_Decode, 235, 4, 14, // Opcode: FMAXA_D ++/* 765 */ MCD::OPC_FilterValue, 29, 4, 0, 0, // Skip to: 774 ++/* 770 */ MCD::OPC_Decode, 240, 4, 13, // Opcode: FMINA_S ++/* 774 */ MCD::OPC_FilterValue, 30, 4, 0, 0, // Skip to: 783 ++/* 779 */ MCD::OPC_Decode, 239, 4, 14, // Opcode: FMINA_D ++/* 783 */ MCD::OPC_FilterValue, 33, 4, 0, 0, // Skip to: 792 ++/* 788 */ MCD::OPC_Decode, 134, 5, 13, // Opcode: FSCALEB_S ++/* 792 */ MCD::OPC_FilterValue, 34, 4, 0, 0, // Skip to: 801 ++/* 797 */ MCD::OPC_Decode, 133, 5, 14, // Opcode: FSCALEB_D ++/* 801 */ MCD::OPC_FilterValue, 37, 4, 0, 0, // Skip to: 810 ++/* 806 */ MCD::OPC_Decode, 214, 4, 13, // Opcode: FCOPYSIGN_S ++/* 810 */ MCD::OPC_FilterValue, 38, 4, 0, 0, // Skip to: 819 ++/* 815 */ MCD::OPC_Decode, 213, 4, 14, // Opcode: FCOPYSIGN_D ++/* 819 */ MCD::OPC_FilterValue, 40, 129, 0, 0, // Skip to: 953 ++/* 824 */ MCD::OPC_ExtractField, 10, 5, // Inst{14-10} ... ++/* 827 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 836 ++/* 832 */ MCD::OPC_Decode, 162, 4, 15, // Opcode: FABS_S ++/* 836 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 845 ++/* 841 */ MCD::OPC_Decode, 161, 4, 16, // Opcode: FABS_D ++/* 845 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 854 ++/* 850 */ MCD::OPC_Decode, 250, 4, 15, // Opcode: FNEG_S ++/* 854 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 863 ++/* 859 */ MCD::OPC_Decode, 249, 4, 16, // Opcode: FNEG_D ++/* 863 */ MCD::OPC_FilterValue, 9, 4, 0, 0, // Skip to: 872 ++/* 868 */ MCD::OPC_Decode, 232, 4, 15, // Opcode: FLOGB_S ++/* 872 */ MCD::OPC_FilterValue, 10, 4, 0, 0, // Skip to: 881 ++/* 877 */ MCD::OPC_Decode, 231, 4, 16, // Opcode: FLOGB_D ++/* 881 */ MCD::OPC_FilterValue, 13, 4, 0, 0, // Skip to: 890 ++/* 886 */ MCD::OPC_Decode, 166, 4, 15, // Opcode: FCLASS_S ++/* 890 */ MCD::OPC_FilterValue, 14, 4, 0, 0, // Skip to: 899 ++/* 895 */ MCD::OPC_Decode, 165, 4, 16, // Opcode: FCLASS_D ++/* 899 */ MCD::OPC_FilterValue, 17, 4, 0, 0, // Skip to: 908 ++/* 904 */ MCD::OPC_Decode, 138, 5, 15, // Opcode: FSQRT_S ++/* 908 */ MCD::OPC_FilterValue, 18, 4, 0, 0, // Skip to: 917 ++/* 913 */ MCD::OPC_Decode, 137, 5, 16, // Opcode: FSQRT_D ++/* 917 */ MCD::OPC_FilterValue, 21, 4, 0, 0, // Skip to: 926 ++/* 922 */ MCD::OPC_Decode, 128, 5, 15, // Opcode: FRECIP_S ++/* 926 */ MCD::OPC_FilterValue, 22, 4, 0, 0, // Skip to: 935 ++/* 931 */ MCD::OPC_Decode, 255, 4, 16, // Opcode: FRECIP_D ++/* 935 */ MCD::OPC_FilterValue, 25, 4, 0, 0, // Skip to: 944 ++/* 940 */ MCD::OPC_Decode, 132, 5, 15, // Opcode: FRSQRT_S ++/* 944 */ MCD::OPC_FilterValue, 26, 203, 77, 0, // Skip to: 20864 ++/* 949 */ MCD::OPC_Decode, 131, 5, 16, // Opcode: FRSQRT_D ++/* 953 */ MCD::OPC_FilterValue, 41, 157, 0, 0, // Skip to: 1115 ++/* 958 */ MCD::OPC_ExtractField, 10, 5, // Inst{14-10} ... ++/* 961 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 970 ++/* 966 */ MCD::OPC_Decode, 244, 4, 15, // Opcode: FMOV_S ++/* 970 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 979 ++/* 975 */ MCD::OPC_Decode, 243, 4, 16, // Opcode: FMOV_D ++/* 979 */ MCD::OPC_FilterValue, 9, 4, 0, 0, // Skip to: 988 ++/* 984 */ MCD::OPC_Decode, 140, 6, 17, // Opcode: MOVGR2FR_W ++/* 988 */ MCD::OPC_FilterValue, 10, 4, 0, 0, // Skip to: 997 ++/* 993 */ MCD::OPC_Decode, 139, 6, 18, // Opcode: MOVGR2FR_D ++/* 997 */ MCD::OPC_FilterValue, 11, 4, 0, 0, // Skip to: 1006 ++/* 1002 */ MCD::OPC_Decode, 138, 6, 19, // Opcode: MOVGR2FRH_W ++/* 1006 */ MCD::OPC_FilterValue, 13, 4, 0, 0, // Skip to: 1015 ++/* 1011 */ MCD::OPC_Decode, 133, 6, 20, // Opcode: MOVFR2GR_S ++/* 1015 */ MCD::OPC_FilterValue, 14, 4, 0, 0, // Skip to: 1024 ++/* 1020 */ MCD::OPC_Decode, 131, 6, 21, // Opcode: MOVFR2GR_D ++/* 1024 */ MCD::OPC_FilterValue, 15, 4, 0, 0, // Skip to: 1033 ++/* 1029 */ MCD::OPC_Decode, 134, 6, 20, // Opcode: MOVFRH2GR_S ++/* 1033 */ MCD::OPC_FilterValue, 16, 4, 0, 0, // Skip to: 1042 ++/* 1038 */ MCD::OPC_Decode, 137, 6, 22, // Opcode: MOVGR2FCSR ++/* 1042 */ MCD::OPC_FilterValue, 18, 4, 0, 0, // Skip to: 1051 ++/* 1047 */ MCD::OPC_Decode, 128, 6, 23, // Opcode: MOVFCSR2GR ++/* 1051 */ MCD::OPC_FilterValue, 20, 11, 0, 0, // Skip to: 1067 ++/* 1056 */ MCD::OPC_CheckField, 3, 2, 0, 89, 77, 0, // Skip to: 20864 ++/* 1063 */ MCD::OPC_Decode, 129, 6, 24, // Opcode: MOVFR2CF ++/* 1067 */ MCD::OPC_FilterValue, 21, 11, 0, 0, // Skip to: 1083 ++/* 1072 */ MCD::OPC_CheckField, 8, 2, 0, 73, 77, 0, // Skip to: 20864 ++/* 1079 */ MCD::OPC_Decode, 252, 5, 25, // Opcode: MOVCF2FR ++/* 1083 */ MCD::OPC_FilterValue, 22, 11, 0, 0, // Skip to: 1099 ++/* 1088 */ MCD::OPC_CheckField, 3, 2, 0, 57, 77, 0, // Skip to: 20864 ++/* 1095 */ MCD::OPC_Decode, 135, 6, 26, // Opcode: MOVGR2CF ++/* 1099 */ MCD::OPC_FilterValue, 23, 48, 77, 0, // Skip to: 20864 ++/* 1104 */ MCD::OPC_CheckField, 8, 2, 0, 41, 77, 0, // Skip to: 20864 ++/* 1111 */ MCD::OPC_Decode, 254, 5, 27, // Opcode: MOVCF2GR ++/* 1115 */ MCD::OPC_FilterValue, 50, 21, 0, 0, // Skip to: 1141 ++/* 1120 */ MCD::OPC_ExtractField, 10, 5, // Inst{14-10} ... ++/* 1123 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 1132 ++/* 1128 */ MCD::OPC_Decode, 216, 4, 28, // Opcode: FCVT_S_D ++/* 1132 */ MCD::OPC_FilterValue, 9, 15, 77, 0, // Skip to: 20864 ++/* 1137 */ MCD::OPC_Decode, 215, 4, 29, // Opcode: FCVT_D_S ++/* 1141 */ MCD::OPC_FilterValue, 52, 75, 0, 0, // Skip to: 1221 ++/* 1146 */ MCD::OPC_ExtractField, 10, 5, // Inst{14-10} ... ++/* 1149 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 1158 ++/* 1154 */ MCD::OPC_Decode, 152, 5, 15, // Opcode: FTINTRM_W_S ++/* 1158 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 1167 ++/* 1163 */ MCD::OPC_Decode, 151, 5, 16, // Opcode: FTINTRM_W_D ++/* 1167 */ MCD::OPC_FilterValue, 9, 4, 0, 0, // Skip to: 1176 ++/* 1172 */ MCD::OPC_Decode, 150, 5, 15, // Opcode: FTINTRM_L_S ++/* 1176 */ MCD::OPC_FilterValue, 10, 4, 0, 0, // Skip to: 1185 ++/* 1181 */ MCD::OPC_Decode, 149, 5, 16, // Opcode: FTINTRM_L_D ++/* 1185 */ MCD::OPC_FilterValue, 17, 4, 0, 0, // Skip to: 1194 ++/* 1190 */ MCD::OPC_Decode, 160, 5, 15, // Opcode: FTINTRP_W_S ++/* 1194 */ MCD::OPC_FilterValue, 18, 4, 0, 0, // Skip to: 1203 ++/* 1199 */ MCD::OPC_Decode, 159, 5, 16, // Opcode: FTINTRP_W_D ++/* 1203 */ MCD::OPC_FilterValue, 25, 4, 0, 0, // Skip to: 1212 ++/* 1208 */ MCD::OPC_Decode, 158, 5, 15, // Opcode: FTINTRP_L_S ++/* 1212 */ MCD::OPC_FilterValue, 26, 191, 76, 0, // Skip to: 20864 ++/* 1217 */ MCD::OPC_Decode, 157, 5, 16, // Opcode: FTINTRP_L_D ++/* 1221 */ MCD::OPC_FilterValue, 53, 75, 0, 0, // Skip to: 1301 ++/* 1226 */ MCD::OPC_ExtractField, 10, 5, // Inst{14-10} ... ++/* 1229 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 1238 ++/* 1234 */ MCD::OPC_Decode, 163, 5, 15, // Opcode: FTINTRZ_W_S ++/* 1238 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 1247 ++/* 1243 */ MCD::OPC_Decode, 249, 6, 28, // Opcode: TRUNC_W_D ++/* 1247 */ MCD::OPC_FilterValue, 9, 4, 0, 0, // Skip to: 1256 ++/* 1252 */ MCD::OPC_Decode, 162, 5, 29, // Opcode: FTINTRZ_L_S ++/* 1256 */ MCD::OPC_FilterValue, 10, 4, 0, 0, // Skip to: 1265 ++/* 1261 */ MCD::OPC_Decode, 161, 5, 16, // Opcode: FTINTRZ_L_D ++/* 1265 */ MCD::OPC_FilterValue, 17, 4, 0, 0, // Skip to: 1274 ++/* 1270 */ MCD::OPC_Decode, 156, 5, 15, // Opcode: FTINTRNE_W_S ++/* 1274 */ MCD::OPC_FilterValue, 18, 4, 0, 0, // Skip to: 1283 ++/* 1279 */ MCD::OPC_Decode, 155, 5, 16, // Opcode: FTINTRNE_W_D ++/* 1283 */ MCD::OPC_FilterValue, 25, 4, 0, 0, // Skip to: 1292 ++/* 1288 */ MCD::OPC_Decode, 154, 5, 15, // Opcode: FTINTRNE_L_S ++/* 1292 */ MCD::OPC_FilterValue, 26, 111, 76, 0, // Skip to: 20864 ++/* 1297 */ MCD::OPC_Decode, 153, 5, 16, // Opcode: FTINTRNE_L_D ++/* 1301 */ MCD::OPC_FilterValue, 54, 39, 0, 0, // Skip to: 1345 ++/* 1306 */ MCD::OPC_ExtractField, 10, 5, // Inst{14-10} ... ++/* 1309 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 1318 ++/* 1314 */ MCD::OPC_Decode, 167, 5, 15, // Opcode: FTINT_W_S ++/* 1318 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 1327 ++/* 1323 */ MCD::OPC_Decode, 166, 5, 28, // Opcode: FTINT_W_D ++/* 1327 */ MCD::OPC_FilterValue, 9, 4, 0, 0, // Skip to: 1336 ++/* 1332 */ MCD::OPC_Decode, 165, 5, 29, // Opcode: FTINT_L_S ++/* 1336 */ MCD::OPC_FilterValue, 10, 67, 76, 0, // Skip to: 20864 ++/* 1341 */ MCD::OPC_Decode, 164, 5, 16, // Opcode: FTINT_L_D ++/* 1345 */ MCD::OPC_FilterValue, 58, 39, 0, 0, // Skip to: 1389 ++/* 1350 */ MCD::OPC_ExtractField, 10, 5, // Inst{14-10} ... ++/* 1353 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 1362 ++/* 1358 */ MCD::OPC_Decode, 222, 4, 15, // Opcode: FFINT_S_W ++/* 1362 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 1371 ++/* 1367 */ MCD::OPC_Decode, 221, 4, 28, // Opcode: FFINT_S_L ++/* 1371 */ MCD::OPC_FilterValue, 8, 4, 0, 0, // Skip to: 1380 ++/* 1376 */ MCD::OPC_Decode, 220, 4, 29, // Opcode: FFINT_D_W ++/* 1380 */ MCD::OPC_FilterValue, 10, 23, 76, 0, // Skip to: 20864 ++/* 1385 */ MCD::OPC_Decode, 219, 4, 16, // Opcode: FFINT_D_L ++/* 1389 */ MCD::OPC_FilterValue, 60, 14, 76, 0, // Skip to: 20864 ++/* 1394 */ MCD::OPC_ExtractField, 10, 5, // Inst{14-10} ... ++/* 1397 */ MCD::OPC_FilterValue, 17, 4, 0, 0, // Skip to: 1406 ++/* 1402 */ MCD::OPC_Decode, 130, 5, 15, // Opcode: FRINT_S ++/* 1406 */ MCD::OPC_FilterValue, 18, 253, 75, 0, // Skip to: 20864 ++/* 1411 */ MCD::OPC_Decode, 129, 5, 16, // Opcode: FRINT_D ++/* 1415 */ MCD::OPC_FilterValue, 8, 4, 0, 0, // Skip to: 1424 ++/* 1420 */ MCD::OPC_Decode, 200, 6, 30, // Opcode: SLTI ++/* 1424 */ MCD::OPC_FilterValue, 9, 4, 0, 0, // Skip to: 1433 ++/* 1429 */ MCD::OPC_Decode, 204, 6, 30, // Opcode: SLTUI ++/* 1433 */ MCD::OPC_FilterValue, 10, 4, 0, 0, // Skip to: 1442 ++/* 1438 */ MCD::OPC_Decode, 169, 3, 31, // Opcode: ADDI_W64 ++/* 1442 */ MCD::OPC_FilterValue, 11, 4, 0, 0, // Skip to: 1451 ++/* 1447 */ MCD::OPC_Decode, 165, 3, 31, // Opcode: ADDI_D ++/* 1451 */ MCD::OPC_FilterValue, 12, 4, 0, 0, // Skip to: 1460 ++/* 1456 */ MCD::OPC_Decode, 241, 5, 31, // Opcode: LU52I_D ++/* 1460 */ MCD::OPC_FilterValue, 13, 4, 0, 0, // Skip to: 1469 ++/* 1465 */ MCD::OPC_Decode, 215, 3, 32, // Opcode: ANDI ++/* 1469 */ MCD::OPC_FilterValue, 14, 4, 0, 0, // Skip to: 1478 ++/* 1474 */ MCD::OPC_Decode, 153, 6, 32, // Opcode: ORI ++/* 1478 */ MCD::OPC_FilterValue, 15, 181, 75, 0, // Skip to: 20864 ++/* 1483 */ MCD::OPC_Decode, 129, 13, 32, // Opcode: XORI ++/* 1487 */ MCD::OPC_FilterValue, 1, 18, 1, 0, // Skip to: 1766 ++/* 1492 */ MCD::OPC_ExtractField, 24, 2, // Inst{25-24} ... ++/* 1495 */ MCD::OPC_FilterValue, 0, 25, 0, 0, // Skip to: 1525 ++/* 1500 */ MCD::OPC_ExtractField, 5, 5, // Inst{9-5} ... ++/* 1503 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 1512 ++/* 1508 */ MCD::OPC_Decode, 140, 4, 33, // Opcode: CSRRD ++/* 1512 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 1521 ++/* 1517 */ MCD::OPC_Decode, 142, 4, 34, // Opcode: CSRWR ++/* 1521 */ MCD::OPC_Decode, 144, 4, 35, // Opcode: CSRXCHG ++/* 1525 */ MCD::OPC_FilterValue, 2, 134, 75, 0, // Skip to: 20864 ++/* 1530 */ MCD::OPC_ExtractField, 22, 2, // Inst{23-22} ... ++/* 1533 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 1542 ++/* 1538 */ MCD::OPC_Decode, 253, 3, 36, // Opcode: CACOP ++/* 1542 */ MCD::OPC_FilterValue, 1, 117, 75, 0, // Skip to: 20864 ++/* 1547 */ MCD::OPC_ExtractField, 18, 4, // Inst{21-18} ... ++/* 1550 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 1559 ++/* 1555 */ MCD::OPC_Decode, 188, 5, 37, // Opcode: LDDIR ++/* 1559 */ MCD::OPC_FilterValue, 1, 11, 0, 0, // Skip to: 1575 ++/* 1564 */ MCD::OPC_CheckField, 0, 5, 0, 93, 75, 0, // Skip to: 20864 ++/* 1571 */ MCD::OPC_Decode, 198, 5, 38, // Opcode: LDPTE ++/* 1575 */ MCD::OPC_FilterValue, 2, 84, 75, 0, // Skip to: 20864 ++/* 1580 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 1583 */ MCD::OPC_FilterValue, 0, 160, 0, 0, // Skip to: 1748 ++/* 1588 */ MCD::OPC_ExtractField, 10, 5, // Inst{14-10} ... ++/* 1591 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 1600 ++/* 1596 */ MCD::OPC_Decode, 172, 5, 0, // Opcode: IOCSRRD_B ++/* 1600 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 1609 ++/* 1605 */ MCD::OPC_Decode, 175, 5, 0, // Opcode: IOCSRRD_H ++/* 1609 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 1618 ++/* 1614 */ MCD::OPC_Decode, 177, 5, 0, // Opcode: IOCSRRD_W ++/* 1618 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 1627 ++/* 1623 */ MCD::OPC_Decode, 174, 5, 39, // Opcode: IOCSRRD_D ++/* 1627 */ MCD::OPC_FilterValue, 7, 4, 0, 0, // Skip to: 1636 ++/* 1632 */ MCD::OPC_Decode, 180, 5, 39, // Opcode: IOCSRWR_D ++/* 1636 */ MCD::OPC_FilterValue, 8, 11, 0, 0, // Skip to: 1652 ++/* 1641 */ MCD::OPC_CheckField, 0, 10, 0, 16, 75, 0, // Skip to: 20864 ++/* 1648 */ MCD::OPC_Decode, 243, 6, 40, // Opcode: TLBCLR ++/* 1652 */ MCD::OPC_FilterValue, 9, 11, 0, 0, // Skip to: 1668 ++/* 1657 */ MCD::OPC_CheckField, 0, 10, 0, 0, 75, 0, // Skip to: 20864 ++/* 1664 */ MCD::OPC_Decode, 245, 6, 40, // Opcode: TLBFLUSH ++/* 1668 */ MCD::OPC_FilterValue, 10, 11, 0, 0, // Skip to: 1684 ++/* 1673 */ MCD::OPC_CheckField, 0, 10, 0, 240, 74, 0, // Skip to: 20864 ++/* 1680 */ MCD::OPC_Decode, 247, 6, 40, // Opcode: TLBSRCH ++/* 1684 */ MCD::OPC_FilterValue, 11, 11, 0, 0, // Skip to: 1700 ++/* 1689 */ MCD::OPC_CheckField, 0, 10, 0, 224, 74, 0, // Skip to: 20864 ++/* 1696 */ MCD::OPC_Decode, 246, 6, 40, // Opcode: TLBRD ++/* 1700 */ MCD::OPC_FilterValue, 12, 11, 0, 0, // Skip to: 1716 ++/* 1705 */ MCD::OPC_CheckField, 0, 10, 0, 208, 74, 0, // Skip to: 20864 ++/* 1712 */ MCD::OPC_Decode, 248, 6, 40, // Opcode: TLBWR ++/* 1716 */ MCD::OPC_FilterValue, 13, 11, 0, 0, // Skip to: 1732 ++/* 1721 */ MCD::OPC_CheckField, 0, 10, 0, 192, 74, 0, // Skip to: 20864 ++/* 1728 */ MCD::OPC_Decode, 244, 6, 40, // Opcode: TLBFILL ++/* 1732 */ MCD::OPC_FilterValue, 14, 183, 74, 0, // Skip to: 20864 ++/* 1737 */ MCD::OPC_CheckField, 0, 10, 0, 176, 74, 0, // Skip to: 20864 ++/* 1744 */ MCD::OPC_Decode, 156, 4, 40, // Opcode: ERTN ++/* 1748 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 1757 ++/* 1753 */ MCD::OPC_Decode, 170, 5, 8, // Opcode: IDLE ++/* 1757 */ MCD::OPC_FilterValue, 3, 158, 74, 0, // Skip to: 20864 ++/* 1762 */ MCD::OPC_Decode, 171, 5, 41, // Opcode: INVTLB ++/* 1766 */ MCD::OPC_FilterValue, 2, 219, 0, 0, // Skip to: 1990 ++/* 1771 */ MCD::OPC_ExtractField, 20, 6, // Inst{25-20} ... ++/* 1774 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 1783 ++/* 1779 */ MCD::OPC_Decode, 234, 4, 42, // Opcode: FMADD_S ++/* 1783 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 1792 ++/* 1788 */ MCD::OPC_Decode, 233, 4, 43, // Opcode: FMADD_D ++/* 1792 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 1801 ++/* 1797 */ MCD::OPC_Decode, 246, 4, 42, // Opcode: FMSUB_S ++/* 1801 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 1810 ++/* 1806 */ MCD::OPC_Decode, 245, 4, 43, // Opcode: FMSUB_D ++/* 1810 */ MCD::OPC_FilterValue, 9, 4, 0, 0, // Skip to: 1819 ++/* 1815 */ MCD::OPC_Decode, 252, 4, 42, // Opcode: FNMADD_S ++/* 1819 */ MCD::OPC_FilterValue, 10, 4, 0, 0, // Skip to: 1828 ++/* 1824 */ MCD::OPC_Decode, 251, 4, 43, // Opcode: FNMADD_D ++/* 1828 */ MCD::OPC_FilterValue, 13, 4, 0, 0, // Skip to: 1837 ++/* 1833 */ MCD::OPC_Decode, 254, 4, 42, // Opcode: FNMSUB_S ++/* 1837 */ MCD::OPC_FilterValue, 14, 4, 0, 0, // Skip to: 1846 ++/* 1842 */ MCD::OPC_Decode, 253, 4, 43, // Opcode: FNMSUB_D ++/* 1846 */ MCD::OPC_FilterValue, 17, 4, 0, 0, // Skip to: 1855 ++/* 1851 */ MCD::OPC_Decode, 196, 8, 44, // Opcode: VFMADD_S ++/* 1855 */ MCD::OPC_FilterValue, 18, 4, 0, 0, // Skip to: 1864 ++/* 1860 */ MCD::OPC_Decode, 195, 8, 45, // Opcode: VFMADD_D ++/* 1864 */ MCD::OPC_FilterValue, 21, 4, 0, 0, // Skip to: 1873 ++/* 1869 */ MCD::OPC_Decode, 206, 8, 44, // Opcode: VFMSUB_S ++/* 1873 */ MCD::OPC_FilterValue, 22, 4, 0, 0, // Skip to: 1882 ++/* 1878 */ MCD::OPC_Decode, 205, 8, 45, // Opcode: VFMSUB_D ++/* 1882 */ MCD::OPC_FilterValue, 25, 4, 0, 0, // Skip to: 1891 ++/* 1887 */ MCD::OPC_Decode, 210, 8, 44, // Opcode: VFNMADD_S ++/* 1891 */ MCD::OPC_FilterValue, 26, 4, 0, 0, // Skip to: 1900 ++/* 1896 */ MCD::OPC_Decode, 209, 8, 45, // Opcode: VFNMADD_D ++/* 1900 */ MCD::OPC_FilterValue, 29, 4, 0, 0, // Skip to: 1909 ++/* 1905 */ MCD::OPC_Decode, 212, 8, 44, // Opcode: VFNMSUB_S ++/* 1909 */ MCD::OPC_FilterValue, 30, 4, 0, 0, // Skip to: 1918 ++/* 1914 */ MCD::OPC_Decode, 211, 8, 45, // Opcode: VFNMSUB_D ++/* 1918 */ MCD::OPC_FilterValue, 33, 4, 0, 0, // Skip to: 1927 ++/* 1923 */ MCD::OPC_Decode, 197, 14, 46, // Opcode: XVFMADD_S ++/* 1927 */ MCD::OPC_FilterValue, 34, 4, 0, 0, // Skip to: 1936 ++/* 1932 */ MCD::OPC_Decode, 196, 14, 47, // Opcode: XVFMADD_D ++/* 1936 */ MCD::OPC_FilterValue, 37, 4, 0, 0, // Skip to: 1945 ++/* 1941 */ MCD::OPC_Decode, 207, 14, 46, // Opcode: XVFMSUB_S ++/* 1945 */ MCD::OPC_FilterValue, 38, 4, 0, 0, // Skip to: 1954 ++/* 1950 */ MCD::OPC_Decode, 206, 14, 47, // Opcode: XVFMSUB_D ++/* 1954 */ MCD::OPC_FilterValue, 41, 4, 0, 0, // Skip to: 1963 ++/* 1959 */ MCD::OPC_Decode, 211, 14, 46, // Opcode: XVFNMADD_S ++/* 1963 */ MCD::OPC_FilterValue, 42, 4, 0, 0, // Skip to: 1972 ++/* 1968 */ MCD::OPC_Decode, 210, 14, 47, // Opcode: XVFNMADD_D ++/* 1972 */ MCD::OPC_FilterValue, 45, 4, 0, 0, // Skip to: 1981 ++/* 1977 */ MCD::OPC_Decode, 213, 14, 46, // Opcode: XVFNMSUB_S ++/* 1981 */ MCD::OPC_FilterValue, 46, 190, 73, 0, // Skip to: 20864 ++/* 1986 */ MCD::OPC_Decode, 212, 14, 47, // Opcode: XVFNMSUB_D ++/* 1990 */ MCD::OPC_FilterValue, 3, 63, 6, 0, // Skip to: 3594 ++/* 1995 */ MCD::OPC_ExtractField, 20, 6, // Inst{25-20} ... ++/* 1998 */ MCD::OPC_FilterValue, 1, 99, 1, 0, // Skip to: 2358 ++/* 2003 */ MCD::OPC_ExtractField, 15, 5, // Inst{19-15} ... ++/* 2006 */ MCD::OPC_FilterValue, 0, 11, 0, 0, // Skip to: 2022 ++/* 2011 */ MCD::OPC_CheckField, 3, 2, 0, 158, 73, 0, // Skip to: 20864 ++/* 2018 */ MCD::OPC_Decode, 168, 4, 48, // Opcode: FCMP_CAF_S ++/* 2022 */ MCD::OPC_FilterValue, 1, 11, 0, 0, // Skip to: 2038 ++/* 2027 */ MCD::OPC_CheckField, 3, 2, 0, 142, 73, 0, // Skip to: 20864 ++/* 2034 */ MCD::OPC_Decode, 192, 4, 48, // Opcode: FCMP_SAF_S ++/* 2038 */ MCD::OPC_FilterValue, 2, 11, 0, 0, // Skip to: 2054 ++/* 2043 */ MCD::OPC_CheckField, 3, 2, 0, 126, 73, 0, // Skip to: 20864 ++/* 2050 */ MCD::OPC_Decode, 174, 4, 48, // Opcode: FCMP_CLT_S ++/* 2054 */ MCD::OPC_FilterValue, 3, 11, 0, 0, // Skip to: 2070 ++/* 2059 */ MCD::OPC_CheckField, 3, 2, 0, 110, 73, 0, // Skip to: 20864 ++/* 2066 */ MCD::OPC_Decode, 198, 4, 48, // Opcode: FCMP_SLT_S ++/* 2070 */ MCD::OPC_FilterValue, 4, 11, 0, 0, // Skip to: 2086 ++/* 2075 */ MCD::OPC_CheckField, 3, 2, 0, 94, 73, 0, // Skip to: 20864 ++/* 2082 */ MCD::OPC_Decode, 170, 4, 48, // Opcode: FCMP_CEQ_S ++/* 2086 */ MCD::OPC_FilterValue, 5, 11, 0, 0, // Skip to: 2102 ++/* 2091 */ MCD::OPC_CheckField, 3, 2, 0, 78, 73, 0, // Skip to: 20864 ++/* 2098 */ MCD::OPC_Decode, 194, 4, 48, // Opcode: FCMP_SEQ_S ++/* 2102 */ MCD::OPC_FilterValue, 6, 11, 0, 0, // Skip to: 2118 ++/* 2107 */ MCD::OPC_CheckField, 3, 2, 0, 62, 73, 0, // Skip to: 20864 ++/* 2114 */ MCD::OPC_Decode, 172, 4, 48, // Opcode: FCMP_CLE_S ++/* 2118 */ MCD::OPC_FilterValue, 7, 11, 0, 0, // Skip to: 2134 ++/* 2123 */ MCD::OPC_CheckField, 3, 2, 0, 46, 73, 0, // Skip to: 20864 ++/* 2130 */ MCD::OPC_Decode, 196, 4, 48, // Opcode: FCMP_SLE_S ++/* 2134 */ MCD::OPC_FilterValue, 8, 11, 0, 0, // Skip to: 2150 ++/* 2139 */ MCD::OPC_CheckField, 3, 2, 0, 30, 73, 0, // Skip to: 20864 ++/* 2146 */ MCD::OPC_Decode, 188, 4, 48, // Opcode: FCMP_CUN_S ++/* 2150 */ MCD::OPC_FilterValue, 9, 11, 0, 0, // Skip to: 2166 ++/* 2155 */ MCD::OPC_CheckField, 3, 2, 0, 14, 73, 0, // Skip to: 20864 ++/* 2162 */ MCD::OPC_Decode, 212, 4, 48, // Opcode: FCMP_SUN_S ++/* 2166 */ MCD::OPC_FilterValue, 10, 11, 0, 0, // Skip to: 2182 ++/* 2171 */ MCD::OPC_CheckField, 3, 2, 0, 254, 72, 0, // Skip to: 20864 ++/* 2178 */ MCD::OPC_Decode, 184, 4, 48, // Opcode: FCMP_CULT_S ++/* 2182 */ MCD::OPC_FilterValue, 11, 11, 0, 0, // Skip to: 2198 ++/* 2187 */ MCD::OPC_CheckField, 3, 2, 0, 238, 72, 0, // Skip to: 20864 ++/* 2194 */ MCD::OPC_Decode, 208, 4, 48, // Opcode: FCMP_SULT_S ++/* 2198 */ MCD::OPC_FilterValue, 12, 11, 0, 0, // Skip to: 2214 ++/* 2203 */ MCD::OPC_CheckField, 3, 2, 0, 222, 72, 0, // Skip to: 20864 ++/* 2210 */ MCD::OPC_Decode, 180, 4, 48, // Opcode: FCMP_CUEQ_S ++/* 2214 */ MCD::OPC_FilterValue, 13, 11, 0, 0, // Skip to: 2230 ++/* 2219 */ MCD::OPC_CheckField, 3, 2, 0, 206, 72, 0, // Skip to: 20864 ++/* 2226 */ MCD::OPC_Decode, 204, 4, 48, // Opcode: FCMP_SUEQ_S ++/* 2230 */ MCD::OPC_FilterValue, 14, 11, 0, 0, // Skip to: 2246 ++/* 2235 */ MCD::OPC_CheckField, 3, 2, 0, 190, 72, 0, // Skip to: 20864 ++/* 2242 */ MCD::OPC_Decode, 182, 4, 48, // Opcode: FCMP_CULE_S ++/* 2246 */ MCD::OPC_FilterValue, 15, 11, 0, 0, // Skip to: 2262 ++/* 2251 */ MCD::OPC_CheckField, 3, 2, 0, 174, 72, 0, // Skip to: 20864 ++/* 2258 */ MCD::OPC_Decode, 206, 4, 48, // Opcode: FCMP_SULE_S ++/* 2262 */ MCD::OPC_FilterValue, 16, 11, 0, 0, // Skip to: 2278 ++/* 2267 */ MCD::OPC_CheckField, 3, 2, 0, 158, 72, 0, // Skip to: 20864 ++/* 2274 */ MCD::OPC_Decode, 176, 4, 48, // Opcode: FCMP_CNE_S ++/* 2278 */ MCD::OPC_FilterValue, 17, 11, 0, 0, // Skip to: 2294 ++/* 2283 */ MCD::OPC_CheckField, 3, 2, 0, 142, 72, 0, // Skip to: 20864 ++/* 2290 */ MCD::OPC_Decode, 200, 4, 48, // Opcode: FCMP_SNE_S ++/* 2294 */ MCD::OPC_FilterValue, 20, 11, 0, 0, // Skip to: 2310 ++/* 2299 */ MCD::OPC_CheckField, 3, 2, 0, 126, 72, 0, // Skip to: 20864 ++/* 2306 */ MCD::OPC_Decode, 178, 4, 48, // Opcode: FCMP_COR_S ++/* 2310 */ MCD::OPC_FilterValue, 21, 11, 0, 0, // Skip to: 2326 ++/* 2315 */ MCD::OPC_CheckField, 3, 2, 0, 110, 72, 0, // Skip to: 20864 ++/* 2322 */ MCD::OPC_Decode, 202, 4, 48, // Opcode: FCMP_SOR_S ++/* 2326 */ MCD::OPC_FilterValue, 24, 11, 0, 0, // Skip to: 2342 ++/* 2331 */ MCD::OPC_CheckField, 3, 2, 0, 94, 72, 0, // Skip to: 20864 ++/* 2338 */ MCD::OPC_Decode, 186, 4, 48, // Opcode: FCMP_CUNE_S ++/* 2342 */ MCD::OPC_FilterValue, 25, 85, 72, 0, // Skip to: 20864 ++/* 2347 */ MCD::OPC_CheckField, 3, 2, 0, 78, 72, 0, // Skip to: 20864 ++/* 2354 */ MCD::OPC_Decode, 210, 4, 48, // Opcode: FCMP_SUNE_S ++/* 2358 */ MCD::OPC_FilterValue, 2, 99, 1, 0, // Skip to: 2718 ++/* 2363 */ MCD::OPC_ExtractField, 15, 5, // Inst{19-15} ... ++/* 2366 */ MCD::OPC_FilterValue, 0, 11, 0, 0, // Skip to: 2382 ++/* 2371 */ MCD::OPC_CheckField, 3, 2, 0, 54, 72, 0, // Skip to: 20864 ++/* 2378 */ MCD::OPC_Decode, 167, 4, 49, // Opcode: FCMP_CAF_D ++/* 2382 */ MCD::OPC_FilterValue, 1, 11, 0, 0, // Skip to: 2398 ++/* 2387 */ MCD::OPC_CheckField, 3, 2, 0, 38, 72, 0, // Skip to: 20864 ++/* 2394 */ MCD::OPC_Decode, 191, 4, 49, // Opcode: FCMP_SAF_D ++/* 2398 */ MCD::OPC_FilterValue, 2, 11, 0, 0, // Skip to: 2414 ++/* 2403 */ MCD::OPC_CheckField, 3, 2, 0, 22, 72, 0, // Skip to: 20864 ++/* 2410 */ MCD::OPC_Decode, 173, 4, 49, // Opcode: FCMP_CLT_D ++/* 2414 */ MCD::OPC_FilterValue, 3, 11, 0, 0, // Skip to: 2430 ++/* 2419 */ MCD::OPC_CheckField, 3, 2, 0, 6, 72, 0, // Skip to: 20864 ++/* 2426 */ MCD::OPC_Decode, 197, 4, 49, // Opcode: FCMP_SLT_D ++/* 2430 */ MCD::OPC_FilterValue, 4, 11, 0, 0, // Skip to: 2446 ++/* 2435 */ MCD::OPC_CheckField, 3, 2, 0, 246, 71, 0, // Skip to: 20864 ++/* 2442 */ MCD::OPC_Decode, 169, 4, 49, // Opcode: FCMP_CEQ_D ++/* 2446 */ MCD::OPC_FilterValue, 5, 11, 0, 0, // Skip to: 2462 ++/* 2451 */ MCD::OPC_CheckField, 3, 2, 0, 230, 71, 0, // Skip to: 20864 ++/* 2458 */ MCD::OPC_Decode, 193, 4, 49, // Opcode: FCMP_SEQ_D ++/* 2462 */ MCD::OPC_FilterValue, 6, 11, 0, 0, // Skip to: 2478 ++/* 2467 */ MCD::OPC_CheckField, 3, 2, 0, 214, 71, 0, // Skip to: 20864 ++/* 2474 */ MCD::OPC_Decode, 171, 4, 49, // Opcode: FCMP_CLE_D ++/* 2478 */ MCD::OPC_FilterValue, 7, 11, 0, 0, // Skip to: 2494 ++/* 2483 */ MCD::OPC_CheckField, 3, 2, 0, 198, 71, 0, // Skip to: 20864 ++/* 2490 */ MCD::OPC_Decode, 195, 4, 49, // Opcode: FCMP_SLE_D ++/* 2494 */ MCD::OPC_FilterValue, 8, 11, 0, 0, // Skip to: 2510 ++/* 2499 */ MCD::OPC_CheckField, 3, 2, 0, 182, 71, 0, // Skip to: 20864 ++/* 2506 */ MCD::OPC_Decode, 187, 4, 49, // Opcode: FCMP_CUN_D ++/* 2510 */ MCD::OPC_FilterValue, 9, 11, 0, 0, // Skip to: 2526 ++/* 2515 */ MCD::OPC_CheckField, 3, 2, 0, 166, 71, 0, // Skip to: 20864 ++/* 2522 */ MCD::OPC_Decode, 211, 4, 49, // Opcode: FCMP_SUN_D ++/* 2526 */ MCD::OPC_FilterValue, 10, 11, 0, 0, // Skip to: 2542 ++/* 2531 */ MCD::OPC_CheckField, 3, 2, 0, 150, 71, 0, // Skip to: 20864 ++/* 2538 */ MCD::OPC_Decode, 183, 4, 49, // Opcode: FCMP_CULT_D ++/* 2542 */ MCD::OPC_FilterValue, 11, 11, 0, 0, // Skip to: 2558 ++/* 2547 */ MCD::OPC_CheckField, 3, 2, 0, 134, 71, 0, // Skip to: 20864 ++/* 2554 */ MCD::OPC_Decode, 207, 4, 49, // Opcode: FCMP_SULT_D ++/* 2558 */ MCD::OPC_FilterValue, 12, 11, 0, 0, // Skip to: 2574 ++/* 2563 */ MCD::OPC_CheckField, 3, 2, 0, 118, 71, 0, // Skip to: 20864 ++/* 2570 */ MCD::OPC_Decode, 179, 4, 49, // Opcode: FCMP_CUEQ_D ++/* 2574 */ MCD::OPC_FilterValue, 13, 11, 0, 0, // Skip to: 2590 ++/* 2579 */ MCD::OPC_CheckField, 3, 2, 0, 102, 71, 0, // Skip to: 20864 ++/* 2586 */ MCD::OPC_Decode, 203, 4, 49, // Opcode: FCMP_SUEQ_D ++/* 2590 */ MCD::OPC_FilterValue, 14, 11, 0, 0, // Skip to: 2606 ++/* 2595 */ MCD::OPC_CheckField, 3, 2, 0, 86, 71, 0, // Skip to: 20864 ++/* 2602 */ MCD::OPC_Decode, 181, 4, 49, // Opcode: FCMP_CULE_D ++/* 2606 */ MCD::OPC_FilterValue, 15, 11, 0, 0, // Skip to: 2622 ++/* 2611 */ MCD::OPC_CheckField, 3, 2, 0, 70, 71, 0, // Skip to: 20864 ++/* 2618 */ MCD::OPC_Decode, 205, 4, 49, // Opcode: FCMP_SULE_D ++/* 2622 */ MCD::OPC_FilterValue, 16, 11, 0, 0, // Skip to: 2638 ++/* 2627 */ MCD::OPC_CheckField, 3, 2, 0, 54, 71, 0, // Skip to: 20864 ++/* 2634 */ MCD::OPC_Decode, 175, 4, 49, // Opcode: FCMP_CNE_D ++/* 2638 */ MCD::OPC_FilterValue, 17, 11, 0, 0, // Skip to: 2654 ++/* 2643 */ MCD::OPC_CheckField, 3, 2, 0, 38, 71, 0, // Skip to: 20864 ++/* 2650 */ MCD::OPC_Decode, 199, 4, 49, // Opcode: FCMP_SNE_D ++/* 2654 */ MCD::OPC_FilterValue, 20, 11, 0, 0, // Skip to: 2670 ++/* 2659 */ MCD::OPC_CheckField, 3, 2, 0, 22, 71, 0, // Skip to: 20864 ++/* 2666 */ MCD::OPC_Decode, 177, 4, 49, // Opcode: FCMP_COR_D ++/* 2670 */ MCD::OPC_FilterValue, 21, 11, 0, 0, // Skip to: 2686 ++/* 2675 */ MCD::OPC_CheckField, 3, 2, 0, 6, 71, 0, // Skip to: 20864 ++/* 2682 */ MCD::OPC_Decode, 201, 4, 49, // Opcode: FCMP_SOR_D ++/* 2686 */ MCD::OPC_FilterValue, 24, 11, 0, 0, // Skip to: 2702 ++/* 2691 */ MCD::OPC_CheckField, 3, 2, 0, 246, 70, 0, // Skip to: 20864 ++/* 2698 */ MCD::OPC_Decode, 185, 4, 49, // Opcode: FCMP_CUNE_D ++/* 2702 */ MCD::OPC_FilterValue, 25, 237, 70, 0, // Skip to: 20864 ++/* 2707 */ MCD::OPC_CheckField, 3, 2, 0, 230, 70, 0, // Skip to: 20864 ++/* 2714 */ MCD::OPC_Decode, 209, 4, 49, // Opcode: FCMP_SUNE_D ++/* 2718 */ MCD::OPC_FilterValue, 5, 201, 0, 0, // Skip to: 2924 ++/* 2723 */ MCD::OPC_ExtractField, 15, 5, // Inst{19-15} ... ++/* 2726 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 2735 ++/* 2731 */ MCD::OPC_Decode, 135, 8, 50, // Opcode: VFCMP_CAF_S ++/* 2735 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 2744 ++/* 2740 */ MCD::OPC_Decode, 157, 8, 50, // Opcode: VFCMP_SAF_S ++/* 2744 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 2753 ++/* 2749 */ MCD::OPC_Decode, 141, 8, 50, // Opcode: VFCMP_CLT_S ++/* 2753 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 2762 ++/* 2758 */ MCD::OPC_Decode, 163, 8, 50, // Opcode: VFCMP_SLT_S ++/* 2762 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 2771 ++/* 2767 */ MCD::OPC_Decode, 137, 8, 50, // Opcode: VFCMP_CEQ_S ++/* 2771 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 2780 ++/* 2776 */ MCD::OPC_Decode, 159, 8, 50, // Opcode: VFCMP_SEQ_S ++/* 2780 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 2789 ++/* 2785 */ MCD::OPC_Decode, 139, 8, 50, // Opcode: VFCMP_CLE_S ++/* 2789 */ MCD::OPC_FilterValue, 7, 4, 0, 0, // Skip to: 2798 ++/* 2794 */ MCD::OPC_Decode, 161, 8, 50, // Opcode: VFCMP_SLE_S ++/* 2798 */ MCD::OPC_FilterValue, 8, 4, 0, 0, // Skip to: 2807 ++/* 2803 */ MCD::OPC_Decode, 155, 8, 50, // Opcode: VFCMP_CUN_S ++/* 2807 */ MCD::OPC_FilterValue, 9, 4, 0, 0, // Skip to: 2816 ++/* 2812 */ MCD::OPC_Decode, 177, 8, 50, // Opcode: VFCMP_SUN_S ++/* 2816 */ MCD::OPC_FilterValue, 10, 4, 0, 0, // Skip to: 2825 ++/* 2821 */ MCD::OPC_Decode, 151, 8, 50, // Opcode: VFCMP_CULT_S ++/* 2825 */ MCD::OPC_FilterValue, 11, 4, 0, 0, // Skip to: 2834 ++/* 2830 */ MCD::OPC_Decode, 173, 8, 50, // Opcode: VFCMP_SULT_S ++/* 2834 */ MCD::OPC_FilterValue, 12, 4, 0, 0, // Skip to: 2843 ++/* 2839 */ MCD::OPC_Decode, 147, 8, 50, // Opcode: VFCMP_CUEQ_S ++/* 2843 */ MCD::OPC_FilterValue, 13, 4, 0, 0, // Skip to: 2852 ++/* 2848 */ MCD::OPC_Decode, 169, 8, 50, // Opcode: VFCMP_SUEQ_S ++/* 2852 */ MCD::OPC_FilterValue, 14, 4, 0, 0, // Skip to: 2861 ++/* 2857 */ MCD::OPC_Decode, 149, 8, 50, // Opcode: VFCMP_CULE_S ++/* 2861 */ MCD::OPC_FilterValue, 15, 4, 0, 0, // Skip to: 2870 ++/* 2866 */ MCD::OPC_Decode, 171, 8, 50, // Opcode: VFCMP_SULE_S ++/* 2870 */ MCD::OPC_FilterValue, 16, 4, 0, 0, // Skip to: 2879 ++/* 2875 */ MCD::OPC_Decode, 143, 8, 50, // Opcode: VFCMP_CNE_S ++/* 2879 */ MCD::OPC_FilterValue, 17, 4, 0, 0, // Skip to: 2888 ++/* 2884 */ MCD::OPC_Decode, 165, 8, 50, // Opcode: VFCMP_SNE_S ++/* 2888 */ MCD::OPC_FilterValue, 20, 4, 0, 0, // Skip to: 2897 ++/* 2893 */ MCD::OPC_Decode, 145, 8, 50, // Opcode: VFCMP_COR_S ++/* 2897 */ MCD::OPC_FilterValue, 21, 4, 0, 0, // Skip to: 2906 ++/* 2902 */ MCD::OPC_Decode, 167, 8, 50, // Opcode: VFCMP_SOR_S ++/* 2906 */ MCD::OPC_FilterValue, 24, 4, 0, 0, // Skip to: 2915 ++/* 2911 */ MCD::OPC_Decode, 153, 8, 50, // Opcode: VFCMP_CUNE_S ++/* 2915 */ MCD::OPC_FilterValue, 25, 24, 70, 0, // Skip to: 20864 ++/* 2920 */ MCD::OPC_Decode, 175, 8, 50, // Opcode: VFCMP_SUNE_S ++/* 2924 */ MCD::OPC_FilterValue, 6, 201, 0, 0, // Skip to: 3130 ++/* 2929 */ MCD::OPC_ExtractField, 15, 5, // Inst{19-15} ... ++/* 2932 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 2941 ++/* 2937 */ MCD::OPC_Decode, 134, 8, 51, // Opcode: VFCMP_CAF_D ++/* 2941 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 2950 ++/* 2946 */ MCD::OPC_Decode, 156, 8, 51, // Opcode: VFCMP_SAF_D ++/* 2950 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 2959 ++/* 2955 */ MCD::OPC_Decode, 140, 8, 51, // Opcode: VFCMP_CLT_D ++/* 2959 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 2968 ++/* 2964 */ MCD::OPC_Decode, 162, 8, 51, // Opcode: VFCMP_SLT_D ++/* 2968 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 2977 ++/* 2973 */ MCD::OPC_Decode, 136, 8, 51, // Opcode: VFCMP_CEQ_D ++/* 2977 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 2986 ++/* 2982 */ MCD::OPC_Decode, 158, 8, 51, // Opcode: VFCMP_SEQ_D ++/* 2986 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 2995 ++/* 2991 */ MCD::OPC_Decode, 138, 8, 51, // Opcode: VFCMP_CLE_D ++/* 2995 */ MCD::OPC_FilterValue, 7, 4, 0, 0, // Skip to: 3004 ++/* 3000 */ MCD::OPC_Decode, 160, 8, 51, // Opcode: VFCMP_SLE_D ++/* 3004 */ MCD::OPC_FilterValue, 8, 4, 0, 0, // Skip to: 3013 ++/* 3009 */ MCD::OPC_Decode, 154, 8, 51, // Opcode: VFCMP_CUN_D ++/* 3013 */ MCD::OPC_FilterValue, 9, 4, 0, 0, // Skip to: 3022 ++/* 3018 */ MCD::OPC_Decode, 176, 8, 51, // Opcode: VFCMP_SUN_D ++/* 3022 */ MCD::OPC_FilterValue, 10, 4, 0, 0, // Skip to: 3031 ++/* 3027 */ MCD::OPC_Decode, 150, 8, 51, // Opcode: VFCMP_CULT_D ++/* 3031 */ MCD::OPC_FilterValue, 11, 4, 0, 0, // Skip to: 3040 ++/* 3036 */ MCD::OPC_Decode, 172, 8, 51, // Opcode: VFCMP_SULT_D ++/* 3040 */ MCD::OPC_FilterValue, 12, 4, 0, 0, // Skip to: 3049 ++/* 3045 */ MCD::OPC_Decode, 146, 8, 51, // Opcode: VFCMP_CUEQ_D ++/* 3049 */ MCD::OPC_FilterValue, 13, 4, 0, 0, // Skip to: 3058 ++/* 3054 */ MCD::OPC_Decode, 168, 8, 51, // Opcode: VFCMP_SUEQ_D ++/* 3058 */ MCD::OPC_FilterValue, 14, 4, 0, 0, // Skip to: 3067 ++/* 3063 */ MCD::OPC_Decode, 148, 8, 51, // Opcode: VFCMP_CULE_D ++/* 3067 */ MCD::OPC_FilterValue, 15, 4, 0, 0, // Skip to: 3076 ++/* 3072 */ MCD::OPC_Decode, 170, 8, 51, // Opcode: VFCMP_SULE_D ++/* 3076 */ MCD::OPC_FilterValue, 16, 4, 0, 0, // Skip to: 3085 ++/* 3081 */ MCD::OPC_Decode, 142, 8, 51, // Opcode: VFCMP_CNE_D ++/* 3085 */ MCD::OPC_FilterValue, 17, 4, 0, 0, // Skip to: 3094 ++/* 3090 */ MCD::OPC_Decode, 164, 8, 51, // Opcode: VFCMP_SNE_D ++/* 3094 */ MCD::OPC_FilterValue, 20, 4, 0, 0, // Skip to: 3103 ++/* 3099 */ MCD::OPC_Decode, 144, 8, 51, // Opcode: VFCMP_COR_D ++/* 3103 */ MCD::OPC_FilterValue, 21, 4, 0, 0, // Skip to: 3112 ++/* 3108 */ MCD::OPC_Decode, 166, 8, 51, // Opcode: VFCMP_SOR_D ++/* 3112 */ MCD::OPC_FilterValue, 24, 4, 0, 0, // Skip to: 3121 ++/* 3117 */ MCD::OPC_Decode, 152, 8, 51, // Opcode: VFCMP_CUNE_D ++/* 3121 */ MCD::OPC_FilterValue, 25, 74, 69, 0, // Skip to: 20864 ++/* 3126 */ MCD::OPC_Decode, 174, 8, 51, // Opcode: VFCMP_SUNE_D ++/* 3130 */ MCD::OPC_FilterValue, 9, 201, 0, 0, // Skip to: 3336 ++/* 3135 */ MCD::OPC_ExtractField, 15, 5, // Inst{19-15} ... ++/* 3138 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 3147 ++/* 3143 */ MCD::OPC_Decode, 136, 14, 52, // Opcode: XVFCMP_CAF_S ++/* 3147 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 3156 ++/* 3152 */ MCD::OPC_Decode, 158, 14, 52, // Opcode: XVFCMP_SAF_S ++/* 3156 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 3165 ++/* 3161 */ MCD::OPC_Decode, 142, 14, 52, // Opcode: XVFCMP_CLT_S ++/* 3165 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 3174 ++/* 3170 */ MCD::OPC_Decode, 164, 14, 52, // Opcode: XVFCMP_SLT_S ++/* 3174 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 3183 ++/* 3179 */ MCD::OPC_Decode, 138, 14, 52, // Opcode: XVFCMP_CEQ_S ++/* 3183 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 3192 ++/* 3188 */ MCD::OPC_Decode, 160, 14, 52, // Opcode: XVFCMP_SEQ_S ++/* 3192 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 3201 ++/* 3197 */ MCD::OPC_Decode, 140, 14, 52, // Opcode: XVFCMP_CLE_S ++/* 3201 */ MCD::OPC_FilterValue, 7, 4, 0, 0, // Skip to: 3210 ++/* 3206 */ MCD::OPC_Decode, 162, 14, 52, // Opcode: XVFCMP_SLE_S ++/* 3210 */ MCD::OPC_FilterValue, 8, 4, 0, 0, // Skip to: 3219 ++/* 3215 */ MCD::OPC_Decode, 156, 14, 52, // Opcode: XVFCMP_CUN_S ++/* 3219 */ MCD::OPC_FilterValue, 9, 4, 0, 0, // Skip to: 3228 ++/* 3224 */ MCD::OPC_Decode, 178, 14, 52, // Opcode: XVFCMP_SUN_S ++/* 3228 */ MCD::OPC_FilterValue, 10, 4, 0, 0, // Skip to: 3237 ++/* 3233 */ MCD::OPC_Decode, 152, 14, 52, // Opcode: XVFCMP_CULT_S ++/* 3237 */ MCD::OPC_FilterValue, 11, 4, 0, 0, // Skip to: 3246 ++/* 3242 */ MCD::OPC_Decode, 174, 14, 52, // Opcode: XVFCMP_SULT_S ++/* 3246 */ MCD::OPC_FilterValue, 12, 4, 0, 0, // Skip to: 3255 ++/* 3251 */ MCD::OPC_Decode, 148, 14, 52, // Opcode: XVFCMP_CUEQ_S ++/* 3255 */ MCD::OPC_FilterValue, 13, 4, 0, 0, // Skip to: 3264 ++/* 3260 */ MCD::OPC_Decode, 170, 14, 52, // Opcode: XVFCMP_SUEQ_S ++/* 3264 */ MCD::OPC_FilterValue, 14, 4, 0, 0, // Skip to: 3273 ++/* 3269 */ MCD::OPC_Decode, 150, 14, 52, // Opcode: XVFCMP_CULE_S ++/* 3273 */ MCD::OPC_FilterValue, 15, 4, 0, 0, // Skip to: 3282 ++/* 3278 */ MCD::OPC_Decode, 172, 14, 52, // Opcode: XVFCMP_SULE_S ++/* 3282 */ MCD::OPC_FilterValue, 16, 4, 0, 0, // Skip to: 3291 ++/* 3287 */ MCD::OPC_Decode, 144, 14, 52, // Opcode: XVFCMP_CNE_S ++/* 3291 */ MCD::OPC_FilterValue, 17, 4, 0, 0, // Skip to: 3300 ++/* 3296 */ MCD::OPC_Decode, 166, 14, 52, // Opcode: XVFCMP_SNE_S ++/* 3300 */ MCD::OPC_FilterValue, 20, 4, 0, 0, // Skip to: 3309 ++/* 3305 */ MCD::OPC_Decode, 146, 14, 52, // Opcode: XVFCMP_COR_S ++/* 3309 */ MCD::OPC_FilterValue, 21, 4, 0, 0, // Skip to: 3318 ++/* 3314 */ MCD::OPC_Decode, 168, 14, 52, // Opcode: XVFCMP_SOR_S ++/* 3318 */ MCD::OPC_FilterValue, 24, 4, 0, 0, // Skip to: 3327 ++/* 3323 */ MCD::OPC_Decode, 154, 14, 52, // Opcode: XVFCMP_CUNE_S ++/* 3327 */ MCD::OPC_FilterValue, 25, 124, 68, 0, // Skip to: 20864 ++/* 3332 */ MCD::OPC_Decode, 176, 14, 52, // Opcode: XVFCMP_SUNE_S ++/* 3336 */ MCD::OPC_FilterValue, 10, 201, 0, 0, // Skip to: 3542 ++/* 3341 */ MCD::OPC_ExtractField, 15, 5, // Inst{19-15} ... ++/* 3344 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 3353 ++/* 3349 */ MCD::OPC_Decode, 135, 14, 53, // Opcode: XVFCMP_CAF_D ++/* 3353 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 3362 ++/* 3358 */ MCD::OPC_Decode, 157, 14, 53, // Opcode: XVFCMP_SAF_D ++/* 3362 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 3371 ++/* 3367 */ MCD::OPC_Decode, 141, 14, 53, // Opcode: XVFCMP_CLT_D ++/* 3371 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 3380 ++/* 3376 */ MCD::OPC_Decode, 163, 14, 53, // Opcode: XVFCMP_SLT_D ++/* 3380 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 3389 ++/* 3385 */ MCD::OPC_Decode, 137, 14, 53, // Opcode: XVFCMP_CEQ_D ++/* 3389 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 3398 ++/* 3394 */ MCD::OPC_Decode, 159, 14, 53, // Opcode: XVFCMP_SEQ_D ++/* 3398 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 3407 ++/* 3403 */ MCD::OPC_Decode, 139, 14, 53, // Opcode: XVFCMP_CLE_D ++/* 3407 */ MCD::OPC_FilterValue, 7, 4, 0, 0, // Skip to: 3416 ++/* 3412 */ MCD::OPC_Decode, 161, 14, 53, // Opcode: XVFCMP_SLE_D ++/* 3416 */ MCD::OPC_FilterValue, 8, 4, 0, 0, // Skip to: 3425 ++/* 3421 */ MCD::OPC_Decode, 155, 14, 53, // Opcode: XVFCMP_CUN_D ++/* 3425 */ MCD::OPC_FilterValue, 9, 4, 0, 0, // Skip to: 3434 ++/* 3430 */ MCD::OPC_Decode, 177, 14, 53, // Opcode: XVFCMP_SUN_D ++/* 3434 */ MCD::OPC_FilterValue, 10, 4, 0, 0, // Skip to: 3443 ++/* 3439 */ MCD::OPC_Decode, 151, 14, 53, // Opcode: XVFCMP_CULT_D ++/* 3443 */ MCD::OPC_FilterValue, 11, 4, 0, 0, // Skip to: 3452 ++/* 3448 */ MCD::OPC_Decode, 173, 14, 53, // Opcode: XVFCMP_SULT_D ++/* 3452 */ MCD::OPC_FilterValue, 12, 4, 0, 0, // Skip to: 3461 ++/* 3457 */ MCD::OPC_Decode, 147, 14, 53, // Opcode: XVFCMP_CUEQ_D ++/* 3461 */ MCD::OPC_FilterValue, 13, 4, 0, 0, // Skip to: 3470 ++/* 3466 */ MCD::OPC_Decode, 169, 14, 53, // Opcode: XVFCMP_SUEQ_D ++/* 3470 */ MCD::OPC_FilterValue, 14, 4, 0, 0, // Skip to: 3479 ++/* 3475 */ MCD::OPC_Decode, 149, 14, 53, // Opcode: XVFCMP_CULE_D ++/* 3479 */ MCD::OPC_FilterValue, 15, 4, 0, 0, // Skip to: 3488 ++/* 3484 */ MCD::OPC_Decode, 171, 14, 53, // Opcode: XVFCMP_SULE_D ++/* 3488 */ MCD::OPC_FilterValue, 16, 4, 0, 0, // Skip to: 3497 ++/* 3493 */ MCD::OPC_Decode, 143, 14, 53, // Opcode: XVFCMP_CNE_D ++/* 3497 */ MCD::OPC_FilterValue, 17, 4, 0, 0, // Skip to: 3506 ++/* 3502 */ MCD::OPC_Decode, 165, 14, 53, // Opcode: XVFCMP_SNE_D ++/* 3506 */ MCD::OPC_FilterValue, 20, 4, 0, 0, // Skip to: 3515 ++/* 3511 */ MCD::OPC_Decode, 145, 14, 53, // Opcode: XVFCMP_COR_D ++/* 3515 */ MCD::OPC_FilterValue, 21, 4, 0, 0, // Skip to: 3524 ++/* 3520 */ MCD::OPC_Decode, 167, 14, 53, // Opcode: XVFCMP_SOR_D ++/* 3524 */ MCD::OPC_FilterValue, 24, 4, 0, 0, // Skip to: 3533 ++/* 3529 */ MCD::OPC_Decode, 153, 14, 53, // Opcode: XVFCMP_CUNE_D ++/* 3533 */ MCD::OPC_FilterValue, 25, 174, 67, 0, // Skip to: 20864 ++/* 3538 */ MCD::OPC_Decode, 175, 14, 53, // Opcode: XVFCMP_SUNE_D ++/* 3542 */ MCD::OPC_FilterValue, 16, 11, 0, 0, // Skip to: 3558 ++/* 3547 */ MCD::OPC_CheckField, 18, 2, 0, 158, 67, 0, // Skip to: 20864 ++/* 3554 */ MCD::OPC_Decode, 136, 5, 54, // Opcode: FSEL_T_S ++/* 3558 */ MCD::OPC_FilterValue, 17, 4, 0, 0, // Skip to: 3567 ++/* 3563 */ MCD::OPC_Decode, 205, 7, 55, // Opcode: VBITSEL_V ++/* 3567 */ MCD::OPC_FilterValue, 18, 4, 0, 0, // Skip to: 3576 ++/* 3572 */ MCD::OPC_Decode, 218, 13, 56, // Opcode: XVBITSEL_V ++/* 3576 */ MCD::OPC_FilterValue, 21, 4, 0, 0, // Skip to: 3585 ++/* 3581 */ MCD::OPC_Decode, 148, 11, 55, // Opcode: VSHUF_B ++/* 3585 */ MCD::OPC_FilterValue, 22, 122, 67, 0, // Skip to: 20864 ++/* 3590 */ MCD::OPC_Decode, 164, 17, 56, // Opcode: XVSHUF_B ++/* 3594 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 3603 ++/* 3599 */ MCD::OPC_Decode, 170, 3, 57, // Opcode: ADDU16I_D ++/* 3603 */ MCD::OPC_FilterValue, 5, 21, 0, 0, // Skip to: 3629 ++/* 3608 */ MCD::OPC_ExtractField, 25, 1, // Inst{25} ... ++/* 3611 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 3620 ++/* 3616 */ MCD::OPC_Decode, 234, 5, 58, // Opcode: LU12I_W ++/* 3620 */ MCD::OPC_FilterValue, 1, 87, 67, 0, // Skip to: 20864 ++/* 3625 */ MCD::OPC_Decode, 237, 5, 58, // Opcode: LU32I_D ++/* 3629 */ MCD::OPC_FilterValue, 6, 21, 0, 0, // Skip to: 3655 ++/* 3634 */ MCD::OPC_ExtractField, 25, 1, // Inst{25} ... ++/* 3637 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 3646 ++/* 3642 */ MCD::OPC_Decode, 159, 6, 58, // Opcode: PCADDI ++/* 3646 */ MCD::OPC_FilterValue, 1, 61, 67, 0, // Skip to: 20864 ++/* 3651 */ MCD::OPC_Decode, 166, 6, 58, // Opcode: PCALAU12I ++/* 3655 */ MCD::OPC_FilterValue, 7, 21, 0, 0, // Skip to: 3681 ++/* 3660 */ MCD::OPC_ExtractField, 25, 1, // Inst{25} ... ++/* 3663 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 3672 ++/* 3668 */ MCD::OPC_Decode, 161, 6, 58, // Opcode: PCADDU12I ++/* 3672 */ MCD::OPC_FilterValue, 1, 35, 67, 0, // Skip to: 20864 ++/* 3677 */ MCD::OPC_Decode, 165, 6, 58, // Opcode: PCADDU18I ++/* 3681 */ MCD::OPC_FilterValue, 8, 21, 0, 0, // Skip to: 3707 ++/* 3686 */ MCD::OPC_ExtractField, 24, 2, // Inst{25-24} ... ++/* 3689 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 3698 ++/* 3694 */ MCD::OPC_Decode, 232, 5, 59, // Opcode: LL_D ++/* 3698 */ MCD::OPC_FilterValue, 3, 9, 67, 0, // Skip to: 20864 ++/* 3703 */ MCD::OPC_Decode, 189, 6, 59, // Opcode: SC_D ++/* 3707 */ MCD::OPC_FilterValue, 9, 39, 0, 0, // Skip to: 3751 ++/* 3712 */ MCD::OPC_ExtractField, 24, 2, // Inst{25-24} ... ++/* 3715 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 3724 ++/* 3720 */ MCD::OPC_Decode, 201, 5, 59, // Opcode: LDPTR_W ++/* 3724 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 3733 ++/* 3729 */ MCD::OPC_Decode, 224, 6, 59, // Opcode: STPTR_W ++/* 3733 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 3742 ++/* 3738 */ MCD::OPC_Decode, 200, 5, 59, // Opcode: LDPTR_D ++/* 3742 */ MCD::OPC_FilterValue, 3, 221, 66, 0, // Skip to: 20864 ++/* 3747 */ MCD::OPC_Decode, 223, 6, 59, // Opcode: STPTR_D ++/* 3751 */ MCD::OPC_FilterValue, 10, 147, 0, 0, // Skip to: 3903 ++/* 3756 */ MCD::OPC_ExtractField, 22, 4, // Inst{25-22} ... ++/* 3759 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 3768 ++/* 3764 */ MCD::OPC_Decode, 216, 5, 60, // Opcode: LD_B ++/* 3768 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 3777 ++/* 3773 */ MCD::OPC_Decode, 223, 5, 60, // Opcode: LD_H ++/* 3777 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 3786 ++/* 3782 */ MCD::OPC_Decode, 227, 5, 60, // Opcode: LD_W ++/* 3786 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 3795 ++/* 3791 */ MCD::OPC_Decode, 220, 5, 60, // Opcode: LD_D ++/* 3795 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 3804 ++/* 3800 */ MCD::OPC_Decode, 233, 6, 60, // Opcode: ST_B ++/* 3804 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 3813 ++/* 3809 */ MCD::OPC_Decode, 236, 6, 60, // Opcode: ST_H ++/* 3813 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 3822 ++/* 3818 */ MCD::OPC_Decode, 238, 6, 60, // Opcode: ST_W ++/* 3822 */ MCD::OPC_FilterValue, 7, 4, 0, 0, // Skip to: 3831 ++/* 3827 */ MCD::OPC_Decode, 235, 6, 60, // Opcode: ST_D ++/* 3831 */ MCD::OPC_FilterValue, 8, 4, 0, 0, // Skip to: 3840 ++/* 3836 */ MCD::OPC_Decode, 218, 5, 60, // Opcode: LD_BU ++/* 3840 */ MCD::OPC_FilterValue, 9, 4, 0, 0, // Skip to: 3849 ++/* 3845 */ MCD::OPC_Decode, 225, 5, 60, // Opcode: LD_HU ++/* 3849 */ MCD::OPC_FilterValue, 10, 4, 0, 0, // Skip to: 3858 ++/* 3854 */ MCD::OPC_Decode, 229, 5, 60, // Opcode: LD_WU ++/* 3858 */ MCD::OPC_FilterValue, 11, 4, 0, 0, // Skip to: 3867 ++/* 3863 */ MCD::OPC_Decode, 170, 6, 61, // Opcode: PRELD_Raw ++/* 3867 */ MCD::OPC_FilterValue, 12, 4, 0, 0, // Skip to: 3876 ++/* 3872 */ MCD::OPC_Decode, 230, 4, 62, // Opcode: FLD_S ++/* 3876 */ MCD::OPC_FilterValue, 13, 4, 0, 0, // Skip to: 3885 ++/* 3881 */ MCD::OPC_Decode, 146, 5, 62, // Opcode: FST_S ++/* 3885 */ MCD::OPC_FilterValue, 14, 4, 0, 0, // Skip to: 3894 ++/* 3890 */ MCD::OPC_Decode, 229, 4, 62, // Opcode: FLD_D ++/* 3894 */ MCD::OPC_FilterValue, 15, 69, 66, 0, // Skip to: 20864 ++/* 3899 */ MCD::OPC_Decode, 145, 5, 62, // Opcode: FST_D ++/* 3903 */ MCD::OPC_FilterValue, 11, 39, 0, 0, // Skip to: 3947 ++/* 3908 */ MCD::OPC_ExtractField, 22, 4, // Inst{25-22} ... ++/* 3911 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 3920 ++/* 3916 */ MCD::OPC_Decode, 164, 9, 63, // Opcode: VLD ++/* 3920 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 3929 ++/* 3925 */ MCD::OPC_Decode, 218, 12, 63, // Opcode: VST ++/* 3929 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 3938 ++/* 3934 */ MCD::OPC_Decode, 166, 15, 64, // Opcode: XVLD ++/* 3938 */ MCD::OPC_FilterValue, 3, 25, 66, 0, // Skip to: 20864 ++/* 3943 */ MCD::OPC_Decode, 242, 18, 64, // Opcode: XVST ++/* 3947 */ MCD::OPC_FilterValue, 12, 1, 1, 0, // Skip to: 4209 ++/* 3952 */ MCD::OPC_ExtractField, 23, 3, // Inst{25-23} ... ++/* 3955 */ MCD::OPC_FilterValue, 0, 44, 0, 0, // Skip to: 4004 ++/* 3960 */ MCD::OPC_ExtractField, 21, 2, // Inst{22-21} ... ++/* 3963 */ MCD::OPC_FilterValue, 0, 11, 0, 0, // Skip to: 3979 ++/* 3968 */ MCD::OPC_CheckField, 19, 2, 2, 249, 65, 0, // Skip to: 20864 ++/* 3975 */ MCD::OPC_Decode, 171, 9, 65, // Opcode: VLDREPL_D ++/* 3979 */ MCD::OPC_FilterValue, 1, 11, 0, 0, // Skip to: 3995 ++/* 3984 */ MCD::OPC_CheckField, 20, 1, 0, 233, 65, 0, // Skip to: 20864 ++/* 3991 */ MCD::OPC_Decode, 173, 9, 65, // Opcode: VLDREPL_W ++/* 3995 */ MCD::OPC_FilterValue, 2, 224, 65, 0, // Skip to: 20864 ++/* 4000 */ MCD::OPC_Decode, 172, 9, 65, // Opcode: VLDREPL_H ++/* 4004 */ MCD::OPC_FilterValue, 1, 11, 0, 0, // Skip to: 4020 ++/* 4009 */ MCD::OPC_CheckField, 22, 1, 0, 208, 65, 0, // Skip to: 20864 ++/* 4016 */ MCD::OPC_Decode, 170, 9, 65, // Opcode: VLDREPL_B ++/* 4020 */ MCD::OPC_FilterValue, 2, 44, 0, 0, // Skip to: 4069 ++/* 4025 */ MCD::OPC_ExtractField, 21, 2, // Inst{22-21} ... ++/* 4028 */ MCD::OPC_FilterValue, 0, 11, 0, 0, // Skip to: 4044 ++/* 4033 */ MCD::OPC_CheckField, 19, 2, 2, 184, 65, 0, // Skip to: 20864 ++/* 4040 */ MCD::OPC_Decode, 220, 12, 66, // Opcode: VSTELM_D ++/* 4044 */ MCD::OPC_FilterValue, 1, 11, 0, 0, // Skip to: 4060 ++/* 4049 */ MCD::OPC_CheckField, 20, 1, 0, 168, 65, 0, // Skip to: 20864 ++/* 4056 */ MCD::OPC_Decode, 222, 12, 66, // Opcode: VSTELM_W ++/* 4060 */ MCD::OPC_FilterValue, 2, 159, 65, 0, // Skip to: 20864 ++/* 4065 */ MCD::OPC_Decode, 221, 12, 66, // Opcode: VSTELM_H ++/* 4069 */ MCD::OPC_FilterValue, 3, 11, 0, 0, // Skip to: 4085 ++/* 4074 */ MCD::OPC_CheckField, 22, 1, 0, 143, 65, 0, // Skip to: 20864 ++/* 4081 */ MCD::OPC_Decode, 219, 12, 66, // Opcode: VSTELM_B ++/* 4085 */ MCD::OPC_FilterValue, 4, 44, 0, 0, // Skip to: 4134 ++/* 4090 */ MCD::OPC_ExtractField, 21, 2, // Inst{22-21} ... ++/* 4093 */ MCD::OPC_FilterValue, 0, 11, 0, 0, // Skip to: 4109 ++/* 4098 */ MCD::OPC_CheckField, 19, 2, 2, 119, 65, 0, // Skip to: 20864 ++/* 4105 */ MCD::OPC_Decode, 173, 15, 67, // Opcode: XVLDREPL_D ++/* 4109 */ MCD::OPC_FilterValue, 1, 11, 0, 0, // Skip to: 4125 ++/* 4114 */ MCD::OPC_CheckField, 20, 1, 0, 103, 65, 0, // Skip to: 20864 ++/* 4121 */ MCD::OPC_Decode, 175, 15, 67, // Opcode: XVLDREPL_W ++/* 4125 */ MCD::OPC_FilterValue, 2, 94, 65, 0, // Skip to: 20864 ++/* 4130 */ MCD::OPC_Decode, 174, 15, 67, // Opcode: XVLDREPL_H ++/* 4134 */ MCD::OPC_FilterValue, 5, 11, 0, 0, // Skip to: 4150 ++/* 4139 */ MCD::OPC_CheckField, 22, 1, 0, 78, 65, 0, // Skip to: 20864 ++/* 4146 */ MCD::OPC_Decode, 172, 15, 67, // Opcode: XVLDREPL_B ++/* 4150 */ MCD::OPC_FilterValue, 6, 45, 0, 0, // Skip to: 4200 ++/* 4155 */ MCD::OPC_ExtractField, 22, 1, // Inst{22} ... ++/* 4158 */ MCD::OPC_FilterValue, 0, 28, 0, 0, // Skip to: 4191 ++/* 4163 */ MCD::OPC_ExtractField, 21, 1, // Inst{21} ... ++/* 4166 */ MCD::OPC_FilterValue, 0, 11, 0, 0, // Skip to: 4182 ++/* 4171 */ MCD::OPC_CheckField, 20, 1, 1, 46, 65, 0, // Skip to: 20864 ++/* 4178 */ MCD::OPC_Decode, 244, 18, 68, // Opcode: XVSTELM_D ++/* 4182 */ MCD::OPC_FilterValue, 1, 37, 65, 0, // Skip to: 20864 ++/* 4187 */ MCD::OPC_Decode, 246, 18, 68, // Opcode: XVSTELM_W ++/* 4191 */ MCD::OPC_FilterValue, 1, 28, 65, 0, // Skip to: 20864 ++/* 4196 */ MCD::OPC_Decode, 245, 18, 68, // Opcode: XVSTELM_H ++/* 4200 */ MCD::OPC_FilterValue, 7, 19, 65, 0, // Skip to: 20864 ++/* 4205 */ MCD::OPC_Decode, 243, 18, 68, // Opcode: XVSTELM_B ++/* 4209 */ MCD::OPC_FilterValue, 14, 10, 3, 0, // Skip to: 4992 ++/* 4214 */ MCD::OPC_ExtractField, 15, 11, // Inst{25-15} ... ++/* 4217 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 4226 ++/* 4222 */ MCD::OPC_Decode, 203, 5, 69, // Opcode: LDX_B ++/* 4226 */ MCD::OPC_FilterValue, 8, 4, 0, 0, // Skip to: 4235 ++/* 4231 */ MCD::OPC_Decode, 209, 5, 69, // Opcode: LDX_H ++/* 4235 */ MCD::OPC_FilterValue, 16, 4, 0, 0, // Skip to: 4244 ++/* 4240 */ MCD::OPC_Decode, 213, 5, 69, // Opcode: LDX_W ++/* 4244 */ MCD::OPC_FilterValue, 24, 4, 0, 0, // Skip to: 4253 ++/* 4249 */ MCD::OPC_Decode, 207, 5, 69, // Opcode: LDX_D ++/* 4253 */ MCD::OPC_FilterValue, 32, 4, 0, 0, // Skip to: 4262 ++/* 4258 */ MCD::OPC_Decode, 226, 6, 69, // Opcode: STX_B ++/* 4262 */ MCD::OPC_FilterValue, 40, 4, 0, 0, // Skip to: 4271 ++/* 4267 */ MCD::OPC_Decode, 229, 6, 69, // Opcode: STX_H ++/* 4271 */ MCD::OPC_FilterValue, 48, 4, 0, 0, // Skip to: 4280 ++/* 4276 */ MCD::OPC_Decode, 231, 6, 69, // Opcode: STX_W ++/* 4280 */ MCD::OPC_FilterValue, 56, 4, 0, 0, // Skip to: 4289 ++/* 4285 */ MCD::OPC_Decode, 228, 6, 69, // Opcode: STX_D ++/* 4289 */ MCD::OPC_FilterValue, 64, 4, 0, 0, // Skip to: 4298 ++/* 4294 */ MCD::OPC_Decode, 205, 5, 69, // Opcode: LDX_BU ++/* 4298 */ MCD::OPC_FilterValue, 72, 4, 0, 0, // Skip to: 4307 ++/* 4303 */ MCD::OPC_Decode, 211, 5, 69, // Opcode: LDX_HU ++/* 4307 */ MCD::OPC_FilterValue, 80, 4, 0, 0, // Skip to: 4316 ++/* 4312 */ MCD::OPC_Decode, 215, 5, 69, // Opcode: LDX_WU ++/* 4316 */ MCD::OPC_FilterValue, 96, 4, 0, 0, // Skip to: 4325 ++/* 4321 */ MCD::OPC_Decode, 228, 4, 70, // Opcode: FLDX_S ++/* 4325 */ MCD::OPC_FilterValue, 104, 4, 0, 0, // Skip to: 4334 ++/* 4330 */ MCD::OPC_Decode, 227, 4, 71, // Opcode: FLDX_D ++/* 4334 */ MCD::OPC_FilterValue, 112, 4, 0, 0, // Skip to: 4343 ++/* 4339 */ MCD::OPC_Decode, 144, 5, 70, // Opcode: FSTX_S ++/* 4343 */ MCD::OPC_FilterValue, 120, 4, 0, 0, // Skip to: 4352 ++/* 4348 */ MCD::OPC_Decode, 143, 5, 71, // Opcode: FSTX_D ++/* 4352 */ MCD::OPC_FilterValue, 128, 1, 4, 0, 0, // Skip to: 4362 ++/* 4358 */ MCD::OPC_Decode, 174, 9, 72, // Opcode: VLDX ++/* 4362 */ MCD::OPC_FilterValue, 136, 1, 4, 0, 0, // Skip to: 4372 ++/* 4368 */ MCD::OPC_Decode, 223, 12, 72, // Opcode: VSTX ++/* 4372 */ MCD::OPC_FilterValue, 144, 1, 4, 0, 0, // Skip to: 4382 ++/* 4378 */ MCD::OPC_Decode, 176, 15, 73, // Opcode: XVLDX ++/* 4382 */ MCD::OPC_FilterValue, 152, 1, 4, 0, 0, // Skip to: 4392 ++/* 4388 */ MCD::OPC_Decode, 247, 18, 73, // Opcode: XVSTX ++/* 4392 */ MCD::OPC_FilterValue, 192, 1, 4, 0, 0, // Skip to: 4402 ++/* 4398 */ MCD::OPC_Decode, 208, 3, 74, // Opcode: AMSWAP_W ++/* 4402 */ MCD::OPC_FilterValue, 193, 1, 4, 0, 0, // Skip to: 4412 ++/* 4408 */ MCD::OPC_Decode, 205, 3, 74, // Opcode: AMSWAP_D ++/* 4412 */ MCD::OPC_FilterValue, 194, 1, 4, 0, 0, // Skip to: 4422 ++/* 4418 */ MCD::OPC_Decode, 180, 3, 74, // Opcode: AMADD_W ++/* 4422 */ MCD::OPC_FilterValue, 195, 1, 4, 0, 0, // Skip to: 4432 ++/* 4428 */ MCD::OPC_Decode, 177, 3, 74, // Opcode: AMADD_D ++/* 4432 */ MCD::OPC_FilterValue, 196, 1, 4, 0, 0, // Skip to: 4442 ++/* 4438 */ MCD::OPC_Decode, 184, 3, 74, // Opcode: AMAND_W ++/* 4442 */ MCD::OPC_FilterValue, 197, 1, 4, 0, 0, // Skip to: 4452 ++/* 4448 */ MCD::OPC_Decode, 181, 3, 74, // Opcode: AMAND_D ++/* 4452 */ MCD::OPC_FilterValue, 198, 1, 4, 0, 0, // Skip to: 4462 ++/* 4458 */ MCD::OPC_Decode, 204, 3, 74, // Opcode: AMOR_W ++/* 4462 */ MCD::OPC_FilterValue, 199, 1, 4, 0, 0, // Skip to: 4472 ++/* 4468 */ MCD::OPC_Decode, 201, 3, 74, // Opcode: AMOR_D ++/* 4472 */ MCD::OPC_FilterValue, 200, 1, 4, 0, 0, // Skip to: 4482 ++/* 4478 */ MCD::OPC_Decode, 212, 3, 74, // Opcode: AMXOR_W ++/* 4482 */ MCD::OPC_FilterValue, 201, 1, 4, 0, 0, // Skip to: 4492 ++/* 4488 */ MCD::OPC_Decode, 209, 3, 74, // Opcode: AMXOR_D ++/* 4492 */ MCD::OPC_FilterValue, 202, 1, 4, 0, 0, // Skip to: 4502 ++/* 4498 */ MCD::OPC_Decode, 191, 3, 74, // Opcode: AMMAX_W ++/* 4502 */ MCD::OPC_FilterValue, 203, 1, 4, 0, 0, // Skip to: 4512 ++/* 4508 */ MCD::OPC_Decode, 185, 3, 74, // Opcode: AMMAX_D ++/* 4512 */ MCD::OPC_FilterValue, 204, 1, 4, 0, 0, // Skip to: 4522 ++/* 4518 */ MCD::OPC_Decode, 199, 3, 74, // Opcode: AMMIN_W ++/* 4522 */ MCD::OPC_FilterValue, 205, 1, 4, 0, 0, // Skip to: 4532 ++/* 4528 */ MCD::OPC_Decode, 193, 3, 74, // Opcode: AMMIN_D ++/* 4532 */ MCD::OPC_FilterValue, 206, 1, 4, 0, 0, // Skip to: 4542 ++/* 4538 */ MCD::OPC_Decode, 192, 3, 74, // Opcode: AMMAX_WU ++/* 4542 */ MCD::OPC_FilterValue, 207, 1, 4, 0, 0, // Skip to: 4552 ++/* 4548 */ MCD::OPC_Decode, 190, 3, 74, // Opcode: AMMAX_DU ++/* 4552 */ MCD::OPC_FilterValue, 208, 1, 4, 0, 0, // Skip to: 4562 ++/* 4558 */ MCD::OPC_Decode, 200, 3, 74, // Opcode: AMMIN_WU ++/* 4562 */ MCD::OPC_FilterValue, 209, 1, 4, 0, 0, // Skip to: 4572 ++/* 4568 */ MCD::OPC_Decode, 198, 3, 74, // Opcode: AMMIN_DU ++/* 4572 */ MCD::OPC_FilterValue, 210, 1, 4, 0, 0, // Skip to: 4582 ++/* 4578 */ MCD::OPC_Decode, 207, 3, 74, // Opcode: AMSWAP_DB_W ++/* 4582 */ MCD::OPC_FilterValue, 211, 1, 4, 0, 0, // Skip to: 4592 ++/* 4588 */ MCD::OPC_Decode, 206, 3, 74, // Opcode: AMSWAP_DB_D ++/* 4592 */ MCD::OPC_FilterValue, 212, 1, 4, 0, 0, // Skip to: 4602 ++/* 4598 */ MCD::OPC_Decode, 179, 3, 74, // Opcode: AMADD_DB_W ++/* 4602 */ MCD::OPC_FilterValue, 213, 1, 4, 0, 0, // Skip to: 4612 ++/* 4608 */ MCD::OPC_Decode, 178, 3, 74, // Opcode: AMADD_DB_D ++/* 4612 */ MCD::OPC_FilterValue, 214, 1, 4, 0, 0, // Skip to: 4622 ++/* 4618 */ MCD::OPC_Decode, 183, 3, 74, // Opcode: AMAND_DB_W ++/* 4622 */ MCD::OPC_FilterValue, 215, 1, 4, 0, 0, // Skip to: 4632 ++/* 4628 */ MCD::OPC_Decode, 182, 3, 74, // Opcode: AMAND_DB_D ++/* 4632 */ MCD::OPC_FilterValue, 216, 1, 4, 0, 0, // Skip to: 4642 ++/* 4638 */ MCD::OPC_Decode, 203, 3, 74, // Opcode: AMOR_DB_W ++/* 4642 */ MCD::OPC_FilterValue, 217, 1, 4, 0, 0, // Skip to: 4652 ++/* 4648 */ MCD::OPC_Decode, 202, 3, 74, // Opcode: AMOR_DB_D ++/* 4652 */ MCD::OPC_FilterValue, 218, 1, 4, 0, 0, // Skip to: 4662 ++/* 4658 */ MCD::OPC_Decode, 211, 3, 74, // Opcode: AMXOR_DB_W ++/* 4662 */ MCD::OPC_FilterValue, 219, 1, 4, 0, 0, // Skip to: 4672 ++/* 4668 */ MCD::OPC_Decode, 210, 3, 74, // Opcode: AMXOR_DB_D ++/* 4672 */ MCD::OPC_FilterValue, 220, 1, 4, 0, 0, // Skip to: 4682 ++/* 4678 */ MCD::OPC_Decode, 188, 3, 74, // Opcode: AMMAX_DB_W ++/* 4682 */ MCD::OPC_FilterValue, 221, 1, 4, 0, 0, // Skip to: 4692 ++/* 4688 */ MCD::OPC_Decode, 186, 3, 74, // Opcode: AMMAX_DB_D ++/* 4692 */ MCD::OPC_FilterValue, 222, 1, 4, 0, 0, // Skip to: 4702 ++/* 4698 */ MCD::OPC_Decode, 196, 3, 74, // Opcode: AMMIN_DB_W ++/* 4702 */ MCD::OPC_FilterValue, 223, 1, 4, 0, 0, // Skip to: 4712 ++/* 4708 */ MCD::OPC_Decode, 194, 3, 74, // Opcode: AMMIN_DB_D ++/* 4712 */ MCD::OPC_FilterValue, 224, 1, 4, 0, 0, // Skip to: 4722 ++/* 4718 */ MCD::OPC_Decode, 189, 3, 74, // Opcode: AMMAX_DB_WU ++/* 4722 */ MCD::OPC_FilterValue, 225, 1, 4, 0, 0, // Skip to: 4732 ++/* 4728 */ MCD::OPC_Decode, 187, 3, 74, // Opcode: AMMAX_DB_DU ++/* 4732 */ MCD::OPC_FilterValue, 226, 1, 4, 0, 0, // Skip to: 4742 ++/* 4738 */ MCD::OPC_Decode, 197, 3, 74, // Opcode: AMMIN_DB_WU ++/* 4742 */ MCD::OPC_FilterValue, 227, 1, 4, 0, 0, // Skip to: 4752 ++/* 4748 */ MCD::OPC_Decode, 195, 3, 74, // Opcode: AMMIN_DB_DU ++/* 4752 */ MCD::OPC_FilterValue, 232, 1, 4, 0, 0, // Skip to: 4762 ++/* 4758 */ MCD::OPC_Decode, 224, 4, 75, // Opcode: FLDGT_S ++/* 4762 */ MCD::OPC_FilterValue, 233, 1, 4, 0, 0, // Skip to: 4772 ++/* 4768 */ MCD::OPC_Decode, 223, 4, 76, // Opcode: FLDGT_D ++/* 4772 */ MCD::OPC_FilterValue, 234, 1, 4, 0, 0, // Skip to: 4782 ++/* 4778 */ MCD::OPC_Decode, 226, 4, 75, // Opcode: FLDLE_S ++/* 4782 */ MCD::OPC_FilterValue, 235, 1, 4, 0, 0, // Skip to: 4792 ++/* 4788 */ MCD::OPC_Decode, 225, 4, 76, // Opcode: FLDLE_D ++/* 4792 */ MCD::OPC_FilterValue, 236, 1, 4, 0, 0, // Skip to: 4802 ++/* 4798 */ MCD::OPC_Decode, 140, 5, 75, // Opcode: FSTGT_S ++/* 4802 */ MCD::OPC_FilterValue, 237, 1, 4, 0, 0, // Skip to: 4812 ++/* 4808 */ MCD::OPC_Decode, 139, 5, 76, // Opcode: FSTGT_D ++/* 4812 */ MCD::OPC_FilterValue, 238, 1, 4, 0, 0, // Skip to: 4822 ++/* 4818 */ MCD::OPC_Decode, 142, 5, 75, // Opcode: FSTLE_S ++/* 4822 */ MCD::OPC_FilterValue, 239, 1, 4, 0, 0, // Skip to: 4832 ++/* 4828 */ MCD::OPC_Decode, 141, 5, 76, // Opcode: FSTLE_D ++/* 4832 */ MCD::OPC_FilterValue, 240, 1, 4, 0, 0, // Skip to: 4842 ++/* 4838 */ MCD::OPC_Decode, 190, 5, 4, // Opcode: LDGT_B ++/* 4842 */ MCD::OPC_FilterValue, 241, 1, 4, 0, 0, // Skip to: 4852 ++/* 4848 */ MCD::OPC_Decode, 192, 5, 4, // Opcode: LDGT_H ++/* 4852 */ MCD::OPC_FilterValue, 242, 1, 4, 0, 0, // Skip to: 4862 ++/* 4858 */ MCD::OPC_Decode, 193, 5, 4, // Opcode: LDGT_W ++/* 4862 */ MCD::OPC_FilterValue, 243, 1, 4, 0, 0, // Skip to: 4872 ++/* 4868 */ MCD::OPC_Decode, 191, 5, 4, // Opcode: LDGT_D ++/* 4872 */ MCD::OPC_FilterValue, 244, 1, 4, 0, 0, // Skip to: 4882 ++/* 4878 */ MCD::OPC_Decode, 194, 5, 4, // Opcode: LDLE_B ++/* 4882 */ MCD::OPC_FilterValue, 245, 1, 4, 0, 0, // Skip to: 4892 ++/* 4888 */ MCD::OPC_Decode, 196, 5, 4, // Opcode: LDLE_H ++/* 4892 */ MCD::OPC_FilterValue, 246, 1, 4, 0, 0, // Skip to: 4902 ++/* 4898 */ MCD::OPC_Decode, 197, 5, 4, // Opcode: LDLE_W ++/* 4902 */ MCD::OPC_FilterValue, 247, 1, 4, 0, 0, // Skip to: 4912 ++/* 4908 */ MCD::OPC_Decode, 195, 5, 4, // Opcode: LDLE_D ++/* 4912 */ MCD::OPC_FilterValue, 248, 1, 4, 0, 0, // Skip to: 4922 ++/* 4918 */ MCD::OPC_Decode, 215, 6, 4, // Opcode: STGT_B ++/* 4922 */ MCD::OPC_FilterValue, 249, 1, 4, 0, 0, // Skip to: 4932 ++/* 4928 */ MCD::OPC_Decode, 217, 6, 4, // Opcode: STGT_H ++/* 4932 */ MCD::OPC_FilterValue, 250, 1, 4, 0, 0, // Skip to: 4942 ++/* 4938 */ MCD::OPC_Decode, 218, 6, 4, // Opcode: STGT_W ++/* 4942 */ MCD::OPC_FilterValue, 251, 1, 4, 0, 0, // Skip to: 4952 ++/* 4948 */ MCD::OPC_Decode, 216, 6, 4, // Opcode: STGT_D ++/* 4952 */ MCD::OPC_FilterValue, 252, 1, 4, 0, 0, // Skip to: 4962 ++/* 4958 */ MCD::OPC_Decode, 219, 6, 4, // Opcode: STLE_B ++/* 4962 */ MCD::OPC_FilterValue, 253, 1, 4, 0, 0, // Skip to: 4972 ++/* 4968 */ MCD::OPC_Decode, 221, 6, 4, // Opcode: STLE_H ++/* 4972 */ MCD::OPC_FilterValue, 254, 1, 4, 0, 0, // Skip to: 4982 ++/* 4978 */ MCD::OPC_Decode, 222, 6, 4, // Opcode: STLE_W ++/* 4982 */ MCD::OPC_FilterValue, 255, 1, 4, 62, 0, // Skip to: 20864 ++/* 4988 */ MCD::OPC_Decode, 220, 6, 4, // Opcode: STLE_D ++/* 4992 */ MCD::OPC_FilterValue, 16, 4, 0, 0, // Skip to: 5001 ++/* 4997 */ MCD::OPC_Decode, 227, 3, 77, // Opcode: BEQZ ++/* 5001 */ MCD::OPC_FilterValue, 17, 4, 0, 0, // Skip to: 5010 ++/* 5006 */ MCD::OPC_Decode, 244, 3, 77, // Opcode: BNEZ ++/* 5010 */ MCD::OPC_FilterValue, 18, 21, 0, 0, // Skip to: 5036 ++/* 5015 */ MCD::OPC_ExtractField, 8, 2, // Inst{9-8} ... ++/* 5018 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 5027 ++/* 5023 */ MCD::OPC_Decode, 223, 3, 78, // Opcode: BCEQZ ++/* 5027 */ MCD::OPC_FilterValue, 1, 216, 61, 0, // Skip to: 20864 ++/* 5032 */ MCD::OPC_Decode, 224, 3, 78, // Opcode: BCNEZ ++/* 5036 */ MCD::OPC_FilterValue, 19, 15, 0, 0, // Skip to: 5056 ++/* 5041 */ MCD::OPC_CheckField, 10, 16, 0, 4, 0, 0, // Skip to: 5052 ++/* 5048 */ MCD::OPC_Decode, 185, 5, 79, // Opcode: JIRLR ++/* 5052 */ MCD::OPC_Decode, 183, 5, 57, // Opcode: JIRL ++/* 5056 */ MCD::OPC_FilterValue, 20, 4, 0, 0, // Skip to: 5065 ++/* 5061 */ MCD::OPC_Decode, 221, 3, 80, // Opcode: B ++/* 5065 */ MCD::OPC_FilterValue, 21, 4, 0, 0, // Skip to: 5074 ++/* 5070 */ MCD::OPC_Decode, 237, 3, 80, // Opcode: BL ++/* 5074 */ MCD::OPC_FilterValue, 22, 4, 0, 0, // Skip to: 5083 ++/* 5079 */ MCD::OPC_Decode, 225, 3, 81, // Opcode: BEQ ++/* 5083 */ MCD::OPC_FilterValue, 23, 4, 0, 0, // Skip to: 5092 ++/* 5088 */ MCD::OPC_Decode, 242, 3, 81, // Opcode: BNE ++/* 5092 */ MCD::OPC_FilterValue, 24, 4, 0, 0, // Skip to: 5101 ++/* 5097 */ MCD::OPC_Decode, 238, 3, 81, // Opcode: BLT ++/* 5101 */ MCD::OPC_FilterValue, 25, 4, 0, 0, // Skip to: 5110 ++/* 5106 */ MCD::OPC_Decode, 229, 3, 81, // Opcode: BGE ++/* 5110 */ MCD::OPC_FilterValue, 26, 4, 0, 0, // Skip to: 5119 ++/* 5115 */ MCD::OPC_Decode, 240, 3, 81, // Opcode: BLTU ++/* 5119 */ MCD::OPC_FilterValue, 27, 4, 0, 0, // Skip to: 5128 ++/* 5124 */ MCD::OPC_Decode, 231, 3, 81, // Opcode: BGEU ++/* 5128 */ MCD::OPC_FilterValue, 28, 117, 29, 0, // Skip to: 12674 ++/* 5133 */ MCD::OPC_ExtractField, 18, 8, // Inst{25-18} ... ++/* 5136 */ MCD::OPC_FilterValue, 0, 75, 0, 0, // Skip to: 5216 ++/* 5141 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 5144 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 5153 ++/* 5149 */ MCD::OPC_Decode, 130, 11, 82, // Opcode: VSEQ_B ++/* 5153 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 5162 ++/* 5158 */ MCD::OPC_Decode, 132, 11, 83, // Opcode: VSEQ_H ++/* 5162 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 5171 ++/* 5167 */ MCD::OPC_Decode, 133, 11, 50, // Opcode: VSEQ_W ++/* 5171 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 5180 ++/* 5176 */ MCD::OPC_Decode, 131, 11, 51, // Opcode: VSEQ_D ++/* 5180 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 5189 ++/* 5185 */ MCD::OPC_Decode, 172, 11, 82, // Opcode: VSLE_B ++/* 5189 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 5198 ++/* 5194 */ MCD::OPC_Decode, 176, 11, 83, // Opcode: VSLE_H ++/* 5198 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 5207 ++/* 5203 */ MCD::OPC_Decode, 178, 11, 50, // Opcode: VSLE_W ++/* 5207 */ MCD::OPC_FilterValue, 7, 36, 61, 0, // Skip to: 20864 ++/* 5212 */ MCD::OPC_Decode, 174, 11, 51, // Opcode: VSLE_D ++/* 5216 */ MCD::OPC_FilterValue, 1, 75, 0, 0, // Skip to: 5296 ++/* 5221 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 5224 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 5233 ++/* 5229 */ MCD::OPC_Decode, 173, 11, 82, // Opcode: VSLE_BU ++/* 5233 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 5242 ++/* 5238 */ MCD::OPC_Decode, 177, 11, 83, // Opcode: VSLE_HU ++/* 5242 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 5251 ++/* 5247 */ MCD::OPC_Decode, 179, 11, 50, // Opcode: VSLE_WU ++/* 5251 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 5260 ++/* 5256 */ MCD::OPC_Decode, 175, 11, 51, // Opcode: VSLE_DU ++/* 5260 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 5269 ++/* 5265 */ MCD::OPC_Decode, 210, 11, 82, // Opcode: VSLT_B ++/* 5269 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 5278 ++/* 5274 */ MCD::OPC_Decode, 214, 11, 83, // Opcode: VSLT_H ++/* 5278 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 5287 ++/* 5283 */ MCD::OPC_Decode, 216, 11, 50, // Opcode: VSLT_W ++/* 5287 */ MCD::OPC_FilterValue, 7, 212, 60, 0, // Skip to: 20864 ++/* 5292 */ MCD::OPC_Decode, 212, 11, 51, // Opcode: VSLT_D ++/* 5296 */ MCD::OPC_FilterValue, 2, 75, 0, 0, // Skip to: 5376 ++/* 5301 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 5304 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 5313 ++/* 5309 */ MCD::OPC_Decode, 211, 11, 82, // Opcode: VSLT_BU ++/* 5313 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 5322 ++/* 5318 */ MCD::OPC_Decode, 215, 11, 83, // Opcode: VSLT_HU ++/* 5322 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 5331 ++/* 5327 */ MCD::OPC_Decode, 217, 11, 50, // Opcode: VSLT_WU ++/* 5331 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 5340 ++/* 5336 */ MCD::OPC_Decode, 213, 11, 51, // Opcode: VSLT_DU ++/* 5340 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 5349 ++/* 5345 */ MCD::OPC_Decode, 162, 7, 82, // Opcode: VADD_B ++/* 5349 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 5358 ++/* 5354 */ MCD::OPC_Decode, 164, 7, 83, // Opcode: VADD_H ++/* 5358 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 5367 ++/* 5363 */ MCD::OPC_Decode, 166, 7, 50, // Opcode: VADD_W ++/* 5367 */ MCD::OPC_FilterValue, 7, 132, 60, 0, // Skip to: 20864 ++/* 5372 */ MCD::OPC_Decode, 163, 7, 51, // Opcode: VADD_D ++/* 5376 */ MCD::OPC_FilterValue, 3, 39, 0, 0, // Skip to: 5420 ++/* 5381 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 5384 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 5393 ++/* 5389 */ MCD::OPC_Decode, 247, 12, 82, // Opcode: VSUB_B ++/* 5393 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 5402 ++/* 5398 */ MCD::OPC_Decode, 249, 12, 83, // Opcode: VSUB_H ++/* 5402 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 5411 ++/* 5407 */ MCD::OPC_Decode, 251, 12, 50, // Opcode: VSUB_W ++/* 5411 */ MCD::OPC_FilterValue, 3, 88, 60, 0, // Skip to: 20864 ++/* 5416 */ MCD::OPC_Decode, 248, 12, 51, // Opcode: VSUB_D ++/* 5420 */ MCD::OPC_FilterValue, 7, 39, 0, 0, // Skip to: 5464 ++/* 5425 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 5428 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 5437 ++/* 5433 */ MCD::OPC_Decode, 141, 7, 84, // Opcode: VADDWEV_H_B ++/* 5437 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 5446 ++/* 5442 */ MCD::OPC_Decode, 147, 7, 85, // Opcode: VADDWEV_W_H ++/* 5446 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 5455 ++/* 5451 */ MCD::OPC_Decode, 138, 7, 86, // Opcode: VADDWEV_D_W ++/* 5455 */ MCD::OPC_FilterValue, 7, 44, 60, 0, // Skip to: 20864 ++/* 5460 */ MCD::OPC_Decode, 144, 7, 51, // Opcode: VADDWEV_Q_D ++/* 5464 */ MCD::OPC_FilterValue, 8, 75, 0, 0, // Skip to: 5544 ++/* 5469 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 5472 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 5481 ++/* 5477 */ MCD::OPC_Decode, 233, 12, 84, // Opcode: VSUBWEV_H_B ++/* 5481 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 5490 ++/* 5486 */ MCD::OPC_Decode, 237, 12, 85, // Opcode: VSUBWEV_W_H ++/* 5490 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 5499 ++/* 5495 */ MCD::OPC_Decode, 231, 12, 86, // Opcode: VSUBWEV_D_W ++/* 5499 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 5508 ++/* 5504 */ MCD::OPC_Decode, 235, 12, 51, // Opcode: VSUBWEV_Q_D ++/* 5508 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 5517 ++/* 5513 */ MCD::OPC_Decode, 153, 7, 84, // Opcode: VADDWOD_H_B ++/* 5517 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 5526 ++/* 5522 */ MCD::OPC_Decode, 159, 7, 85, // Opcode: VADDWOD_W_H ++/* 5526 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 5535 ++/* 5531 */ MCD::OPC_Decode, 150, 7, 86, // Opcode: VADDWOD_D_W ++/* 5535 */ MCD::OPC_FilterValue, 7, 220, 59, 0, // Skip to: 20864 ++/* 5540 */ MCD::OPC_Decode, 156, 7, 51, // Opcode: VADDWOD_Q_D ++/* 5544 */ MCD::OPC_FilterValue, 9, 39, 0, 0, // Skip to: 5588 ++/* 5549 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 5552 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 5561 ++/* 5557 */ MCD::OPC_Decode, 241, 12, 84, // Opcode: VSUBWOD_H_B ++/* 5561 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 5570 ++/* 5566 */ MCD::OPC_Decode, 245, 12, 85, // Opcode: VSUBWOD_W_H ++/* 5570 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 5579 ++/* 5575 */ MCD::OPC_Decode, 239, 12, 86, // Opcode: VSUBWOD_D_W ++/* 5579 */ MCD::OPC_FilterValue, 3, 176, 59, 0, // Skip to: 20864 ++/* 5584 */ MCD::OPC_Decode, 243, 12, 51, // Opcode: VSUBWOD_Q_D ++/* 5588 */ MCD::OPC_FilterValue, 11, 39, 0, 0, // Skip to: 5632 ++/* 5593 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 5596 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 5605 ++/* 5601 */ MCD::OPC_Decode, 142, 7, 84, // Opcode: VADDWEV_H_BU ++/* 5605 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 5614 ++/* 5610 */ MCD::OPC_Decode, 148, 7, 85, // Opcode: VADDWEV_W_HU ++/* 5614 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 5623 ++/* 5619 */ MCD::OPC_Decode, 139, 7, 86, // Opcode: VADDWEV_D_WU ++/* 5623 */ MCD::OPC_FilterValue, 7, 132, 59, 0, // Skip to: 20864 ++/* 5628 */ MCD::OPC_Decode, 145, 7, 51, // Opcode: VADDWEV_Q_DU ++/* 5632 */ MCD::OPC_FilterValue, 12, 75, 0, 0, // Skip to: 5712 ++/* 5637 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 5640 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 5649 ++/* 5645 */ MCD::OPC_Decode, 234, 12, 84, // Opcode: VSUBWEV_H_BU ++/* 5649 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 5658 ++/* 5654 */ MCD::OPC_Decode, 238, 12, 85, // Opcode: VSUBWEV_W_HU ++/* 5658 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 5667 ++/* 5663 */ MCD::OPC_Decode, 232, 12, 86, // Opcode: VSUBWEV_D_WU ++/* 5667 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 5676 ++/* 5672 */ MCD::OPC_Decode, 236, 12, 51, // Opcode: VSUBWEV_Q_DU ++/* 5676 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 5685 ++/* 5681 */ MCD::OPC_Decode, 154, 7, 84, // Opcode: VADDWOD_H_BU ++/* 5685 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 5694 ++/* 5690 */ MCD::OPC_Decode, 160, 7, 85, // Opcode: VADDWOD_W_HU ++/* 5694 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 5703 ++/* 5699 */ MCD::OPC_Decode, 151, 7, 86, // Opcode: VADDWOD_D_WU ++/* 5703 */ MCD::OPC_FilterValue, 7, 52, 59, 0, // Skip to: 20864 ++/* 5708 */ MCD::OPC_Decode, 157, 7, 51, // Opcode: VADDWOD_Q_DU ++/* 5712 */ MCD::OPC_FilterValue, 13, 39, 0, 0, // Skip to: 5756 ++/* 5717 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 5720 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 5729 ++/* 5725 */ MCD::OPC_Decode, 242, 12, 84, // Opcode: VSUBWOD_H_BU ++/* 5729 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 5738 ++/* 5734 */ MCD::OPC_Decode, 246, 12, 85, // Opcode: VSUBWOD_W_HU ++/* 5738 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 5747 ++/* 5743 */ MCD::OPC_Decode, 240, 12, 86, // Opcode: VSUBWOD_D_WU ++/* 5747 */ MCD::OPC_FilterValue, 3, 8, 59, 0, // Skip to: 20864 ++/* 5752 */ MCD::OPC_Decode, 244, 12, 51, // Opcode: VSUBWOD_Q_DU ++/* 5756 */ MCD::OPC_FilterValue, 15, 39, 0, 0, // Skip to: 5800 ++/* 5761 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 5764 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 5773 ++/* 5769 */ MCD::OPC_Decode, 143, 7, 84, // Opcode: VADDWEV_H_BU_B ++/* 5773 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 5782 ++/* 5778 */ MCD::OPC_Decode, 149, 7, 85, // Opcode: VADDWEV_W_HU_H ++/* 5782 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 5791 ++/* 5787 */ MCD::OPC_Decode, 140, 7, 86, // Opcode: VADDWEV_D_WU_W ++/* 5791 */ MCD::OPC_FilterValue, 7, 220, 58, 0, // Skip to: 20864 ++/* 5796 */ MCD::OPC_Decode, 146, 7, 51, // Opcode: VADDWEV_Q_DU_D ++/* 5800 */ MCD::OPC_FilterValue, 16, 39, 0, 0, // Skip to: 5844 ++/* 5805 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 5808 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 5817 ++/* 5813 */ MCD::OPC_Decode, 155, 7, 84, // Opcode: VADDWOD_H_BU_B ++/* 5817 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 5826 ++/* 5822 */ MCD::OPC_Decode, 161, 7, 85, // Opcode: VADDWOD_W_HU_H ++/* 5826 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 5835 ++/* 5831 */ MCD::OPC_Decode, 152, 7, 86, // Opcode: VADDWOD_D_WU_W ++/* 5835 */ MCD::OPC_FilterValue, 3, 176, 58, 0, // Skip to: 20864 ++/* 5840 */ MCD::OPC_Decode, 158, 7, 51, // Opcode: VADDWOD_Q_DU_D ++/* 5844 */ MCD::OPC_FilterValue, 17, 39, 0, 0, // Skip to: 5888 ++/* 5849 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 5852 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 5861 ++/* 5857 */ MCD::OPC_Decode, 234, 10, 82, // Opcode: VSADD_B ++/* 5861 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 5870 ++/* 5866 */ MCD::OPC_Decode, 238, 10, 83, // Opcode: VSADD_H ++/* 5870 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 5879 ++/* 5875 */ MCD::OPC_Decode, 240, 10, 50, // Opcode: VSADD_W ++/* 5879 */ MCD::OPC_FilterValue, 7, 132, 58, 0, // Skip to: 20864 ++/* 5884 */ MCD::OPC_Decode, 236, 10, 51, // Opcode: VSADD_D ++/* 5888 */ MCD::OPC_FilterValue, 18, 75, 0, 0, // Skip to: 5968 ++/* 5893 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 5896 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 5905 ++/* 5901 */ MCD::OPC_Decode, 210, 12, 82, // Opcode: VSSUB_B ++/* 5905 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 5914 ++/* 5910 */ MCD::OPC_Decode, 214, 12, 83, // Opcode: VSSUB_H ++/* 5914 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 5923 ++/* 5919 */ MCD::OPC_Decode, 216, 12, 50, // Opcode: VSSUB_W ++/* 5923 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 5932 ++/* 5928 */ MCD::OPC_Decode, 212, 12, 51, // Opcode: VSSUB_D ++/* 5932 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 5941 ++/* 5937 */ MCD::OPC_Decode, 235, 10, 82, // Opcode: VSADD_BU ++/* 5941 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 5950 ++/* 5946 */ MCD::OPC_Decode, 239, 10, 83, // Opcode: VSADD_HU ++/* 5950 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 5959 ++/* 5955 */ MCD::OPC_Decode, 241, 10, 50, // Opcode: VSADD_WU ++/* 5959 */ MCD::OPC_FilterValue, 7, 52, 58, 0, // Skip to: 20864 ++/* 5964 */ MCD::OPC_Decode, 237, 10, 51, // Opcode: VSADD_DU ++/* 5968 */ MCD::OPC_FilterValue, 19, 39, 0, 0, // Skip to: 6012 ++/* 5973 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 5976 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 5985 ++/* 5981 */ MCD::OPC_Decode, 211, 12, 82, // Opcode: VSSUB_BU ++/* 5985 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 5994 ++/* 5990 */ MCD::OPC_Decode, 215, 12, 83, // Opcode: VSSUB_HU ++/* 5994 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 6003 ++/* 5999 */ MCD::OPC_Decode, 217, 12, 50, // Opcode: VSSUB_WU ++/* 6003 */ MCD::OPC_FilterValue, 3, 8, 58, 0, // Skip to: 20864 ++/* 6008 */ MCD::OPC_Decode, 213, 12, 51, // Opcode: VSSUB_DU ++/* 6012 */ MCD::OPC_FilterValue, 21, 75, 0, 0, // Skip to: 6092 ++/* 6017 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 6020 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 6029 ++/* 6025 */ MCD::OPC_Decode, 139, 9, 84, // Opcode: VHADDW_H_B ++/* 6029 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 6038 ++/* 6034 */ MCD::OPC_Decode, 143, 9, 85, // Opcode: VHADDW_W_H ++/* 6038 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 6047 ++/* 6043 */ MCD::OPC_Decode, 137, 9, 86, // Opcode: VHADDW_D_W ++/* 6047 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 6056 ++/* 6052 */ MCD::OPC_Decode, 141, 9, 51, // Opcode: VHADDW_Q_D ++/* 6056 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 6065 ++/* 6061 */ MCD::OPC_Decode, 147, 9, 84, // Opcode: VHSUBW_H_B ++/* 6065 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 6074 ++/* 6070 */ MCD::OPC_Decode, 151, 9, 85, // Opcode: VHSUBW_W_H ++/* 6074 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 6083 ++/* 6079 */ MCD::OPC_Decode, 145, 9, 86, // Opcode: VHSUBW_D_W ++/* 6083 */ MCD::OPC_FilterValue, 7, 184, 57, 0, // Skip to: 20864 ++/* 6088 */ MCD::OPC_Decode, 149, 9, 51, // Opcode: VHSUBW_Q_D ++/* 6092 */ MCD::OPC_FilterValue, 22, 75, 0, 0, // Skip to: 6172 ++/* 6097 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 6100 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 6109 ++/* 6105 */ MCD::OPC_Decode, 138, 9, 84, // Opcode: VHADDW_HU_BU ++/* 6109 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 6118 ++/* 6114 */ MCD::OPC_Decode, 142, 9, 85, // Opcode: VHADDW_WU_HU ++/* 6118 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 6127 ++/* 6123 */ MCD::OPC_Decode, 136, 9, 86, // Opcode: VHADDW_DU_WU ++/* 6127 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 6136 ++/* 6132 */ MCD::OPC_Decode, 140, 9, 51, // Opcode: VHADDW_QU_DU ++/* 6136 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 6145 ++/* 6141 */ MCD::OPC_Decode, 146, 9, 84, // Opcode: VHSUBW_HU_BU ++/* 6145 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 6154 ++/* 6150 */ MCD::OPC_Decode, 150, 9, 85, // Opcode: VHSUBW_WU_HU ++/* 6154 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 6163 ++/* 6159 */ MCD::OPC_Decode, 144, 9, 86, // Opcode: VHSUBW_DU_WU ++/* 6163 */ MCD::OPC_FilterValue, 7, 104, 57, 0, // Skip to: 20864 ++/* 6168 */ MCD::OPC_Decode, 148, 9, 51, // Opcode: VHSUBW_QU_DU ++/* 6172 */ MCD::OPC_FilterValue, 23, 39, 0, 0, // Skip to: 6216 ++/* 6177 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 6180 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 6189 ++/* 6185 */ MCD::OPC_Decode, 130, 7, 82, // Opcode: VADDA_B ++/* 6189 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 6198 ++/* 6194 */ MCD::OPC_Decode, 132, 7, 83, // Opcode: VADDA_H ++/* 6198 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 6207 ++/* 6203 */ MCD::OPC_Decode, 133, 7, 50, // Opcode: VADDA_W ++/* 6207 */ MCD::OPC_FilterValue, 3, 60, 57, 0, // Skip to: 20864 ++/* 6212 */ MCD::OPC_Decode, 131, 7, 51, // Opcode: VADDA_D ++/* 6216 */ MCD::OPC_FilterValue, 24, 75, 0, 0, // Skip to: 6296 ++/* 6221 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 6224 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 6233 ++/* 6229 */ MCD::OPC_Decode, 250, 6, 82, // Opcode: VABSD_B ++/* 6233 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 6242 ++/* 6238 */ MCD::OPC_Decode, 254, 6, 83, // Opcode: VABSD_H ++/* 6242 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 6251 ++/* 6247 */ MCD::OPC_Decode, 128, 7, 50, // Opcode: VABSD_W ++/* 6251 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 6260 ++/* 6256 */ MCD::OPC_Decode, 252, 6, 51, // Opcode: VABSD_D ++/* 6260 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 6269 ++/* 6265 */ MCD::OPC_Decode, 251, 6, 82, // Opcode: VABSD_BU ++/* 6269 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 6278 ++/* 6274 */ MCD::OPC_Decode, 255, 6, 83, // Opcode: VABSD_HU ++/* 6278 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 6287 ++/* 6283 */ MCD::OPC_Decode, 129, 7, 50, // Opcode: VABSD_WU ++/* 6287 */ MCD::OPC_FilterValue, 7, 236, 56, 0, // Skip to: 20864 ++/* 6292 */ MCD::OPC_Decode, 253, 6, 51, // Opcode: VABSD_DU ++/* 6296 */ MCD::OPC_FilterValue, 25, 75, 0, 0, // Skip to: 6376 ++/* 6301 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 6304 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 6313 ++/* 6309 */ MCD::OPC_Decode, 179, 7, 82, // Opcode: VAVG_B ++/* 6313 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 6322 ++/* 6318 */ MCD::OPC_Decode, 183, 7, 83, // Opcode: VAVG_H ++/* 6322 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 6331 ++/* 6327 */ MCD::OPC_Decode, 185, 7, 50, // Opcode: VAVG_W ++/* 6331 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 6340 ++/* 6336 */ MCD::OPC_Decode, 181, 7, 51, // Opcode: VAVG_D ++/* 6340 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 6349 ++/* 6345 */ MCD::OPC_Decode, 180, 7, 82, // Opcode: VAVG_BU ++/* 6349 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 6358 ++/* 6354 */ MCD::OPC_Decode, 184, 7, 83, // Opcode: VAVG_HU ++/* 6358 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 6367 ++/* 6363 */ MCD::OPC_Decode, 186, 7, 50, // Opcode: VAVG_WU ++/* 6367 */ MCD::OPC_FilterValue, 7, 156, 56, 0, // Skip to: 20864 ++/* 6372 */ MCD::OPC_Decode, 182, 7, 51, // Opcode: VAVG_DU ++/* 6376 */ MCD::OPC_FilterValue, 26, 75, 0, 0, // Skip to: 6456 ++/* 6381 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 6384 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 6393 ++/* 6389 */ MCD::OPC_Decode, 171, 7, 82, // Opcode: VAVGR_B ++/* 6393 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 6402 ++/* 6398 */ MCD::OPC_Decode, 175, 7, 83, // Opcode: VAVGR_H ++/* 6402 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 6411 ++/* 6407 */ MCD::OPC_Decode, 177, 7, 50, // Opcode: VAVGR_W ++/* 6411 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 6420 ++/* 6416 */ MCD::OPC_Decode, 173, 7, 51, // Opcode: VAVGR_D ++/* 6420 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 6429 ++/* 6425 */ MCD::OPC_Decode, 172, 7, 82, // Opcode: VAVGR_BU ++/* 6429 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 6438 ++/* 6434 */ MCD::OPC_Decode, 176, 7, 83, // Opcode: VAVGR_HU ++/* 6438 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 6447 ++/* 6443 */ MCD::OPC_Decode, 178, 7, 50, // Opcode: VAVGR_WU ++/* 6447 */ MCD::OPC_FilterValue, 7, 76, 56, 0, // Skip to: 20864 ++/* 6452 */ MCD::OPC_Decode, 174, 7, 51, // Opcode: VAVGR_DU ++/* 6456 */ MCD::OPC_FilterValue, 28, 75, 0, 0, // Skip to: 6536 ++/* 6461 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 6464 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 6473 ++/* 6469 */ MCD::OPC_Decode, 222, 9, 82, // Opcode: VMAX_B ++/* 6473 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 6482 ++/* 6478 */ MCD::OPC_Decode, 226, 9, 83, // Opcode: VMAX_H ++/* 6482 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 6491 ++/* 6487 */ MCD::OPC_Decode, 228, 9, 50, // Opcode: VMAX_W ++/* 6491 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 6500 ++/* 6496 */ MCD::OPC_Decode, 224, 9, 51, // Opcode: VMAX_D ++/* 6500 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 6509 ++/* 6505 */ MCD::OPC_Decode, 242, 9, 82, // Opcode: VMIN_B ++/* 6509 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 6518 ++/* 6514 */ MCD::OPC_Decode, 246, 9, 83, // Opcode: VMIN_H ++/* 6518 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 6527 ++/* 6523 */ MCD::OPC_Decode, 248, 9, 50, // Opcode: VMIN_W ++/* 6527 */ MCD::OPC_FilterValue, 7, 252, 55, 0, // Skip to: 20864 ++/* 6532 */ MCD::OPC_Decode, 244, 9, 51, // Opcode: VMIN_D ++/* 6536 */ MCD::OPC_FilterValue, 29, 75, 0, 0, // Skip to: 6616 ++/* 6541 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 6544 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 6553 ++/* 6549 */ MCD::OPC_Decode, 223, 9, 82, // Opcode: VMAX_BU ++/* 6553 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 6562 ++/* 6558 */ MCD::OPC_Decode, 227, 9, 83, // Opcode: VMAX_HU ++/* 6562 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 6571 ++/* 6567 */ MCD::OPC_Decode, 229, 9, 50, // Opcode: VMAX_WU ++/* 6571 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 6580 ++/* 6576 */ MCD::OPC_Decode, 225, 9, 51, // Opcode: VMAX_DU ++/* 6580 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 6589 ++/* 6585 */ MCD::OPC_Decode, 243, 9, 82, // Opcode: VMIN_BU ++/* 6589 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 6598 ++/* 6594 */ MCD::OPC_Decode, 247, 9, 83, // Opcode: VMIN_HU ++/* 6598 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 6607 ++/* 6603 */ MCD::OPC_Decode, 249, 9, 50, // Opcode: VMIN_WU ++/* 6607 */ MCD::OPC_FilterValue, 7, 172, 55, 0, // Skip to: 20864 ++/* 6612 */ MCD::OPC_Decode, 245, 9, 51, // Opcode: VMIN_DU ++/* 6616 */ MCD::OPC_FilterValue, 33, 75, 0, 0, // Skip to: 6696 ++/* 6621 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 6624 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 6633 ++/* 6629 */ MCD::OPC_Decode, 172, 10, 82, // Opcode: VMUL_B ++/* 6633 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 6642 ++/* 6638 */ MCD::OPC_Decode, 174, 10, 83, // Opcode: VMUL_H ++/* 6642 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 6651 ++/* 6647 */ MCD::OPC_Decode, 175, 10, 50, // Opcode: VMUL_W ++/* 6651 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 6660 ++/* 6656 */ MCD::OPC_Decode, 173, 10, 51, // Opcode: VMUL_D ++/* 6660 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 6669 ++/* 6665 */ MCD::OPC_Decode, 140, 10, 82, // Opcode: VMUH_B ++/* 6669 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 6678 ++/* 6674 */ MCD::OPC_Decode, 144, 10, 83, // Opcode: VMUH_H ++/* 6678 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 6687 ++/* 6683 */ MCD::OPC_Decode, 146, 10, 50, // Opcode: VMUH_W ++/* 6687 */ MCD::OPC_FilterValue, 7, 92, 55, 0, // Skip to: 20864 ++/* 6692 */ MCD::OPC_Decode, 142, 10, 51, // Opcode: VMUH_D ++/* 6696 */ MCD::OPC_FilterValue, 34, 39, 0, 0, // Skip to: 6740 ++/* 6701 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 6704 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 6713 ++/* 6709 */ MCD::OPC_Decode, 141, 10, 82, // Opcode: VMUH_BU ++/* 6713 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 6722 ++/* 6718 */ MCD::OPC_Decode, 145, 10, 83, // Opcode: VMUH_HU ++/* 6722 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 6731 ++/* 6727 */ MCD::OPC_Decode, 147, 10, 50, // Opcode: VMUH_WU ++/* 6731 */ MCD::OPC_FilterValue, 3, 48, 55, 0, // Skip to: 20864 ++/* 6736 */ MCD::OPC_Decode, 143, 10, 51, // Opcode: VMUH_DU ++/* 6740 */ MCD::OPC_FilterValue, 36, 75, 0, 0, // Skip to: 6820 ++/* 6745 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 6748 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 6757 ++/* 6753 */ MCD::OPC_Decode, 151, 10, 84, // Opcode: VMULWEV_H_B ++/* 6757 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 6766 ++/* 6762 */ MCD::OPC_Decode, 157, 10, 85, // Opcode: VMULWEV_W_H ++/* 6766 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 6775 ++/* 6771 */ MCD::OPC_Decode, 148, 10, 86, // Opcode: VMULWEV_D_W ++/* 6775 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 6784 ++/* 6780 */ MCD::OPC_Decode, 154, 10, 51, // Opcode: VMULWEV_Q_D ++/* 6784 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 6793 ++/* 6789 */ MCD::OPC_Decode, 163, 10, 84, // Opcode: VMULWOD_H_B ++/* 6793 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 6802 ++/* 6798 */ MCD::OPC_Decode, 169, 10, 85, // Opcode: VMULWOD_W_H ++/* 6802 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 6811 ++/* 6807 */ MCD::OPC_Decode, 160, 10, 86, // Opcode: VMULWOD_D_W ++/* 6811 */ MCD::OPC_FilterValue, 7, 224, 54, 0, // Skip to: 20864 ++/* 6816 */ MCD::OPC_Decode, 166, 10, 51, // Opcode: VMULWOD_Q_D ++/* 6820 */ MCD::OPC_FilterValue, 38, 75, 0, 0, // Skip to: 6900 ++/* 6825 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 6828 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 6837 ++/* 6833 */ MCD::OPC_Decode, 152, 10, 84, // Opcode: VMULWEV_H_BU ++/* 6837 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 6846 ++/* 6842 */ MCD::OPC_Decode, 158, 10, 85, // Opcode: VMULWEV_W_HU ++/* 6846 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 6855 ++/* 6851 */ MCD::OPC_Decode, 149, 10, 86, // Opcode: VMULWEV_D_WU ++/* 6855 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 6864 ++/* 6860 */ MCD::OPC_Decode, 155, 10, 51, // Opcode: VMULWEV_Q_DU ++/* 6864 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 6873 ++/* 6869 */ MCD::OPC_Decode, 164, 10, 84, // Opcode: VMULWOD_H_BU ++/* 6873 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 6882 ++/* 6878 */ MCD::OPC_Decode, 170, 10, 85, // Opcode: VMULWOD_W_HU ++/* 6882 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 6891 ++/* 6887 */ MCD::OPC_Decode, 161, 10, 86, // Opcode: VMULWOD_D_WU ++/* 6891 */ MCD::OPC_FilterValue, 7, 144, 54, 0, // Skip to: 20864 ++/* 6896 */ MCD::OPC_Decode, 167, 10, 51, // Opcode: VMULWOD_Q_DU ++/* 6900 */ MCD::OPC_FilterValue, 40, 75, 0, 0, // Skip to: 6980 ++/* 6905 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 6908 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 6917 ++/* 6913 */ MCD::OPC_Decode, 153, 10, 84, // Opcode: VMULWEV_H_BU_B ++/* 6917 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 6926 ++/* 6922 */ MCD::OPC_Decode, 159, 10, 85, // Opcode: VMULWEV_W_HU_H ++/* 6926 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 6935 ++/* 6931 */ MCD::OPC_Decode, 150, 10, 86, // Opcode: VMULWEV_D_WU_W ++/* 6935 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 6944 ++/* 6940 */ MCD::OPC_Decode, 156, 10, 51, // Opcode: VMULWEV_Q_DU_D ++/* 6944 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 6953 ++/* 6949 */ MCD::OPC_Decode, 165, 10, 84, // Opcode: VMULWOD_H_BU_B ++/* 6953 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 6962 ++/* 6958 */ MCD::OPC_Decode, 171, 10, 85, // Opcode: VMULWOD_W_HU_H ++/* 6962 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 6971 ++/* 6967 */ MCD::OPC_Decode, 162, 10, 86, // Opcode: VMULWOD_D_WU_W ++/* 6971 */ MCD::OPC_FilterValue, 7, 64, 54, 0, // Skip to: 20864 ++/* 6976 */ MCD::OPC_Decode, 168, 10, 51, // Opcode: VMULWOD_Q_DU_D ++/* 6980 */ MCD::OPC_FilterValue, 42, 75, 0, 0, // Skip to: 7060 ++/* 6985 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 6988 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 6997 ++/* 6993 */ MCD::OPC_Decode, 202, 9, 87, // Opcode: VMADD_B ++/* 6997 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 7006 ++/* 7002 */ MCD::OPC_Decode, 204, 9, 88, // Opcode: VMADD_H ++/* 7006 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 7015 ++/* 7011 */ MCD::OPC_Decode, 205, 9, 89, // Opcode: VMADD_W ++/* 7015 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 7024 ++/* 7020 */ MCD::OPC_Decode, 203, 9, 90, // Opcode: VMADD_D ++/* 7024 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 7033 ++/* 7029 */ MCD::OPC_Decode, 136, 10, 87, // Opcode: VMSUB_B ++/* 7033 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 7042 ++/* 7038 */ MCD::OPC_Decode, 138, 10, 88, // Opcode: VMSUB_H ++/* 7042 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 7051 ++/* 7047 */ MCD::OPC_Decode, 139, 10, 89, // Opcode: VMSUB_W ++/* 7051 */ MCD::OPC_FilterValue, 7, 240, 53, 0, // Skip to: 20864 ++/* 7056 */ MCD::OPC_Decode, 137, 10, 90, // Opcode: VMSUB_D ++/* 7060 */ MCD::OPC_FilterValue, 43, 75, 0, 0, // Skip to: 7140 ++/* 7065 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 7068 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 7077 ++/* 7073 */ MCD::OPC_Decode, 181, 9, 91, // Opcode: VMADDWEV_H_B ++/* 7077 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 7086 ++/* 7082 */ MCD::OPC_Decode, 187, 9, 92, // Opcode: VMADDWEV_W_H ++/* 7086 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 7095 ++/* 7091 */ MCD::OPC_Decode, 178, 9, 93, // Opcode: VMADDWEV_D_W ++/* 7095 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 7104 ++/* 7100 */ MCD::OPC_Decode, 184, 9, 90, // Opcode: VMADDWEV_Q_D ++/* 7104 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 7113 ++/* 7109 */ MCD::OPC_Decode, 193, 9, 91, // Opcode: VMADDWOD_H_B ++/* 7113 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 7122 ++/* 7118 */ MCD::OPC_Decode, 199, 9, 92, // Opcode: VMADDWOD_W_H ++/* 7122 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 7131 ++/* 7127 */ MCD::OPC_Decode, 190, 9, 93, // Opcode: VMADDWOD_D_W ++/* 7131 */ MCD::OPC_FilterValue, 7, 160, 53, 0, // Skip to: 20864 ++/* 7136 */ MCD::OPC_Decode, 196, 9, 90, // Opcode: VMADDWOD_Q_D ++/* 7140 */ MCD::OPC_FilterValue, 45, 75, 0, 0, // Skip to: 7220 ++/* 7145 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 7148 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 7157 ++/* 7153 */ MCD::OPC_Decode, 182, 9, 91, // Opcode: VMADDWEV_H_BU ++/* 7157 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 7166 ++/* 7162 */ MCD::OPC_Decode, 188, 9, 92, // Opcode: VMADDWEV_W_HU ++/* 7166 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 7175 ++/* 7171 */ MCD::OPC_Decode, 179, 9, 93, // Opcode: VMADDWEV_D_WU ++/* 7175 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 7184 ++/* 7180 */ MCD::OPC_Decode, 185, 9, 90, // Opcode: VMADDWEV_Q_DU ++/* 7184 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 7193 ++/* 7189 */ MCD::OPC_Decode, 194, 9, 91, // Opcode: VMADDWOD_H_BU ++/* 7193 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 7202 ++/* 7198 */ MCD::OPC_Decode, 200, 9, 92, // Opcode: VMADDWOD_W_HU ++/* 7202 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 7211 ++/* 7207 */ MCD::OPC_Decode, 191, 9, 93, // Opcode: VMADDWOD_D_WU ++/* 7211 */ MCD::OPC_FilterValue, 7, 80, 53, 0, // Skip to: 20864 ++/* 7216 */ MCD::OPC_Decode, 197, 9, 90, // Opcode: VMADDWOD_Q_DU ++/* 7220 */ MCD::OPC_FilterValue, 47, 75, 0, 0, // Skip to: 7300 ++/* 7225 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 7228 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 7237 ++/* 7233 */ MCD::OPC_Decode, 183, 9, 91, // Opcode: VMADDWEV_H_BU_B ++/* 7237 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 7246 ++/* 7242 */ MCD::OPC_Decode, 189, 9, 92, // Opcode: VMADDWEV_W_HU_H ++/* 7246 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 7255 ++/* 7251 */ MCD::OPC_Decode, 180, 9, 93, // Opcode: VMADDWEV_D_WU_W ++/* 7255 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 7264 ++/* 7260 */ MCD::OPC_Decode, 186, 9, 90, // Opcode: VMADDWEV_Q_DU_D ++/* 7264 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 7273 ++/* 7269 */ MCD::OPC_Decode, 195, 9, 91, // Opcode: VMADDWOD_H_BU_B ++/* 7273 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 7282 ++/* 7278 */ MCD::OPC_Decode, 201, 9, 92, // Opcode: VMADDWOD_W_HU_H ++/* 7282 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 7291 ++/* 7287 */ MCD::OPC_Decode, 192, 9, 93, // Opcode: VMADDWOD_D_WU_W ++/* 7291 */ MCD::OPC_FilterValue, 7, 0, 53, 0, // Skip to: 20864 ++/* 7296 */ MCD::OPC_Decode, 198, 9, 90, // Opcode: VMADDWOD_Q_DU_D ++/* 7300 */ MCD::OPC_FilterValue, 56, 75, 0, 0, // Skip to: 7380 ++/* 7305 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 7308 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 7317 ++/* 7313 */ MCD::OPC_Decode, 224, 7, 82, // Opcode: VDIV_B ++/* 7317 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 7326 ++/* 7322 */ MCD::OPC_Decode, 228, 7, 83, // Opcode: VDIV_H ++/* 7326 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 7335 ++/* 7331 */ MCD::OPC_Decode, 230, 7, 50, // Opcode: VDIV_W ++/* 7335 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 7344 ++/* 7340 */ MCD::OPC_Decode, 226, 7, 51, // Opcode: VDIV_D ++/* 7344 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 7353 ++/* 7349 */ MCD::OPC_Decode, 250, 9, 82, // Opcode: VMOD_B ++/* 7353 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 7362 ++/* 7358 */ MCD::OPC_Decode, 254, 9, 83, // Opcode: VMOD_H ++/* 7362 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 7371 ++/* 7367 */ MCD::OPC_Decode, 128, 10, 50, // Opcode: VMOD_W ++/* 7371 */ MCD::OPC_FilterValue, 7, 176, 52, 0, // Skip to: 20864 ++/* 7376 */ MCD::OPC_Decode, 252, 9, 51, // Opcode: VMOD_D ++/* 7380 */ MCD::OPC_FilterValue, 57, 75, 0, 0, // Skip to: 7460 ++/* 7385 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 7388 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 7397 ++/* 7393 */ MCD::OPC_Decode, 225, 7, 82, // Opcode: VDIV_BU ++/* 7397 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 7406 ++/* 7402 */ MCD::OPC_Decode, 229, 7, 83, // Opcode: VDIV_HU ++/* 7406 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 7415 ++/* 7411 */ MCD::OPC_Decode, 231, 7, 50, // Opcode: VDIV_WU ++/* 7415 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 7424 ++/* 7420 */ MCD::OPC_Decode, 227, 7, 51, // Opcode: VDIV_DU ++/* 7424 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 7433 ++/* 7429 */ MCD::OPC_Decode, 251, 9, 82, // Opcode: VMOD_BU ++/* 7433 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 7442 ++/* 7438 */ MCD::OPC_Decode, 255, 9, 83, // Opcode: VMOD_HU ++/* 7442 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 7451 ++/* 7447 */ MCD::OPC_Decode, 129, 10, 50, // Opcode: VMOD_WU ++/* 7451 */ MCD::OPC_FilterValue, 7, 96, 52, 0, // Skip to: 20864 ++/* 7456 */ MCD::OPC_Decode, 253, 9, 51, // Opcode: VMOD_DU ++/* 7460 */ MCD::OPC_FilterValue, 58, 75, 0, 0, // Skip to: 7540 ++/* 7465 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 7468 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 7477 ++/* 7473 */ MCD::OPC_Decode, 190, 11, 82, // Opcode: VSLL_B ++/* 7477 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 7486 ++/* 7482 */ MCD::OPC_Decode, 192, 11, 83, // Opcode: VSLL_H ++/* 7486 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 7495 ++/* 7491 */ MCD::OPC_Decode, 193, 11, 50, // Opcode: VSLL_W ++/* 7495 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 7504 ++/* 7500 */ MCD::OPC_Decode, 191, 11, 51, // Opcode: VSLL_D ++/* 7504 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 7513 ++/* 7509 */ MCD::OPC_Decode, 150, 12, 82, // Opcode: VSRL_B ++/* 7513 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 7522 ++/* 7518 */ MCD::OPC_Decode, 152, 12, 83, // Opcode: VSRL_H ++/* 7522 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 7531 ++/* 7527 */ MCD::OPC_Decode, 153, 12, 50, // Opcode: VSRL_W ++/* 7531 */ MCD::OPC_FilterValue, 7, 16, 52, 0, // Skip to: 20864 ++/* 7536 */ MCD::OPC_Decode, 151, 12, 51, // Opcode: VSRL_D ++/* 7540 */ MCD::OPC_FilterValue, 59, 75, 0, 0, // Skip to: 7620 ++/* 7545 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 7548 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 7557 ++/* 7553 */ MCD::OPC_Decode, 248, 11, 82, // Opcode: VSRA_B ++/* 7557 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 7566 ++/* 7562 */ MCD::OPC_Decode, 250, 11, 83, // Opcode: VSRA_H ++/* 7566 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 7575 ++/* 7571 */ MCD::OPC_Decode, 251, 11, 50, // Opcode: VSRA_W ++/* 7575 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 7584 ++/* 7580 */ MCD::OPC_Decode, 249, 11, 51, // Opcode: VSRA_D ++/* 7584 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 7593 ++/* 7589 */ MCD::OPC_Decode, 230, 10, 82, // Opcode: VROTR_B ++/* 7593 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 7602 ++/* 7598 */ MCD::OPC_Decode, 232, 10, 83, // Opcode: VROTR_H ++/* 7602 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 7611 ++/* 7607 */ MCD::OPC_Decode, 233, 10, 50, // Opcode: VROTR_W ++/* 7611 */ MCD::OPC_FilterValue, 7, 192, 51, 0, // Skip to: 20864 ++/* 7616 */ MCD::OPC_Decode, 231, 10, 51, // Opcode: VROTR_D ++/* 7620 */ MCD::OPC_FilterValue, 60, 75, 0, 0, // Skip to: 7700 ++/* 7625 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 7628 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 7637 ++/* 7633 */ MCD::OPC_Decode, 146, 12, 82, // Opcode: VSRLR_B ++/* 7637 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 7646 ++/* 7642 */ MCD::OPC_Decode, 148, 12, 83, // Opcode: VSRLR_H ++/* 7646 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 7655 ++/* 7651 */ MCD::OPC_Decode, 149, 12, 50, // Opcode: VSRLR_W ++/* 7655 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 7664 ++/* 7660 */ MCD::OPC_Decode, 147, 12, 51, // Opcode: VSRLR_D ++/* 7664 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 7673 ++/* 7669 */ MCD::OPC_Decode, 244, 11, 82, // Opcode: VSRAR_B ++/* 7673 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 7682 ++/* 7678 */ MCD::OPC_Decode, 246, 11, 83, // Opcode: VSRAR_H ++/* 7682 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 7691 ++/* 7687 */ MCD::OPC_Decode, 247, 11, 50, // Opcode: VSRAR_W ++/* 7691 */ MCD::OPC_FilterValue, 7, 112, 51, 0, // Skip to: 20864 ++/* 7696 */ MCD::OPC_Decode, 245, 11, 51, // Opcode: VSRAR_D ++/* 7700 */ MCD::OPC_FilterValue, 61, 57, 0, 0, // Skip to: 7762 ++/* 7705 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 7708 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 7717 ++/* 7713 */ MCD::OPC_Decode, 132, 12, 94, // Opcode: VSRLN_B_H ++/* 7717 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 7726 ++/* 7722 */ MCD::OPC_Decode, 133, 12, 95, // Opcode: VSRLN_H_W ++/* 7726 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 7735 ++/* 7731 */ MCD::OPC_Decode, 134, 12, 96, // Opcode: VSRLN_W_D ++/* 7735 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 7744 ++/* 7740 */ MCD::OPC_Decode, 230, 11, 94, // Opcode: VSRAN_B_H ++/* 7744 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 7753 ++/* 7749 */ MCD::OPC_Decode, 231, 11, 95, // Opcode: VSRAN_H_W ++/* 7753 */ MCD::OPC_FilterValue, 7, 50, 51, 0, // Skip to: 20864 ++/* 7758 */ MCD::OPC_Decode, 232, 11, 96, // Opcode: VSRAN_W_D ++/* 7762 */ MCD::OPC_FilterValue, 62, 57, 0, 0, // Skip to: 7824 ++/* 7767 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 7770 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 7779 ++/* 7775 */ MCD::OPC_Decode, 143, 12, 94, // Opcode: VSRLRN_B_H ++/* 7779 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 7788 ++/* 7784 */ MCD::OPC_Decode, 144, 12, 95, // Opcode: VSRLRN_H_W ++/* 7788 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 7797 ++/* 7793 */ MCD::OPC_Decode, 145, 12, 96, // Opcode: VSRLRN_W_D ++/* 7797 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 7806 ++/* 7802 */ MCD::OPC_Decode, 241, 11, 94, // Opcode: VSRARN_B_H ++/* 7806 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 7815 ++/* 7811 */ MCD::OPC_Decode, 242, 11, 95, // Opcode: VSRARN_H_W ++/* 7815 */ MCD::OPC_FilterValue, 7, 244, 50, 0, // Skip to: 20864 ++/* 7820 */ MCD::OPC_Decode, 243, 11, 96, // Opcode: VSRARN_W_D ++/* 7824 */ MCD::OPC_FilterValue, 63, 57, 0, 0, // Skip to: 7886 ++/* 7829 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 7832 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 7841 ++/* 7837 */ MCD::OPC_Decode, 191, 12, 94, // Opcode: VSSRLN_B_H ++/* 7841 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 7850 ++/* 7846 */ MCD::OPC_Decode, 193, 12, 95, // Opcode: VSSRLN_H_W ++/* 7850 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 7859 ++/* 7855 */ MCD::OPC_Decode, 195, 12, 96, // Opcode: VSSRLN_W_D ++/* 7859 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 7868 ++/* 7864 */ MCD::OPC_Decode, 163, 12, 94, // Opcode: VSSRAN_B_H ++/* 7868 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 7877 ++/* 7873 */ MCD::OPC_Decode, 165, 12, 95, // Opcode: VSSRAN_H_W ++/* 7877 */ MCD::OPC_FilterValue, 7, 182, 50, 0, // Skip to: 20864 ++/* 7882 */ MCD::OPC_Decode, 167, 12, 96, // Opcode: VSSRAN_W_D ++/* 7886 */ MCD::OPC_FilterValue, 64, 57, 0, 0, // Skip to: 7948 ++/* 7891 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 7894 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 7903 ++/* 7899 */ MCD::OPC_Decode, 205, 12, 94, // Opcode: VSSRLRN_B_H ++/* 7903 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 7912 ++/* 7908 */ MCD::OPC_Decode, 207, 12, 95, // Opcode: VSSRLRN_H_W ++/* 7912 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 7921 ++/* 7917 */ MCD::OPC_Decode, 209, 12, 96, // Opcode: VSSRLRN_W_D ++/* 7921 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 7930 ++/* 7926 */ MCD::OPC_Decode, 177, 12, 94, // Opcode: VSSRARN_B_H ++/* 7930 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 7939 ++/* 7935 */ MCD::OPC_Decode, 179, 12, 95, // Opcode: VSSRARN_H_W ++/* 7939 */ MCD::OPC_FilterValue, 7, 120, 50, 0, // Skip to: 20864 ++/* 7944 */ MCD::OPC_Decode, 181, 12, 96, // Opcode: VSSRARN_W_D ++/* 7948 */ MCD::OPC_FilterValue, 65, 57, 0, 0, // Skip to: 8010 ++/* 7953 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 7956 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 7965 ++/* 7961 */ MCD::OPC_Decode, 190, 12, 94, // Opcode: VSSRLN_BU_H ++/* 7965 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 7974 ++/* 7970 */ MCD::OPC_Decode, 192, 12, 95, // Opcode: VSSRLN_HU_W ++/* 7974 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 7983 ++/* 7979 */ MCD::OPC_Decode, 194, 12, 96, // Opcode: VSSRLN_WU_D ++/* 7983 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 7992 ++/* 7988 */ MCD::OPC_Decode, 162, 12, 94, // Opcode: VSSRAN_BU_H ++/* 7992 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 8001 ++/* 7997 */ MCD::OPC_Decode, 164, 12, 95, // Opcode: VSSRAN_HU_W ++/* 8001 */ MCD::OPC_FilterValue, 7, 58, 50, 0, // Skip to: 20864 ++/* 8006 */ MCD::OPC_Decode, 166, 12, 96, // Opcode: VSSRAN_WU_D ++/* 8010 */ MCD::OPC_FilterValue, 66, 57, 0, 0, // Skip to: 8072 ++/* 8015 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 8018 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 8027 ++/* 8023 */ MCD::OPC_Decode, 204, 12, 94, // Opcode: VSSRLRN_BU_H ++/* 8027 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 8036 ++/* 8032 */ MCD::OPC_Decode, 206, 12, 95, // Opcode: VSSRLRN_HU_W ++/* 8036 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 8045 ++/* 8041 */ MCD::OPC_Decode, 208, 12, 96, // Opcode: VSSRLRN_WU_D ++/* 8045 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 8054 ++/* 8050 */ MCD::OPC_Decode, 176, 12, 94, // Opcode: VSSRARN_BU_H ++/* 8054 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 8063 ++/* 8059 */ MCD::OPC_Decode, 178, 12, 95, // Opcode: VSSRARN_HU_W ++/* 8063 */ MCD::OPC_FilterValue, 7, 252, 49, 0, // Skip to: 20864 ++/* 8068 */ MCD::OPC_Decode, 180, 12, 96, // Opcode: VSSRARN_WU_D ++/* 8072 */ MCD::OPC_FilterValue, 67, 75, 0, 0, // Skip to: 8152 ++/* 8077 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 8080 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 8089 ++/* 8085 */ MCD::OPC_Decode, 191, 7, 82, // Opcode: VBITCLR_B ++/* 8089 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 8098 ++/* 8094 */ MCD::OPC_Decode, 193, 7, 83, // Opcode: VBITCLR_H ++/* 8098 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 8107 ++/* 8103 */ MCD::OPC_Decode, 194, 7, 50, // Opcode: VBITCLR_W ++/* 8107 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 8116 ++/* 8112 */ MCD::OPC_Decode, 192, 7, 51, // Opcode: VBITCLR_D ++/* 8116 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 8125 ++/* 8121 */ MCD::OPC_Decode, 210, 7, 82, // Opcode: VBITSET_B ++/* 8125 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 8134 ++/* 8130 */ MCD::OPC_Decode, 212, 7, 83, // Opcode: VBITSET_H ++/* 8134 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 8143 ++/* 8139 */ MCD::OPC_Decode, 213, 7, 50, // Opcode: VBITSET_W ++/* 8143 */ MCD::OPC_FilterValue, 7, 172, 49, 0, // Skip to: 20864 ++/* 8148 */ MCD::OPC_Decode, 211, 7, 51, // Opcode: VBITSET_D ++/* 8152 */ MCD::OPC_FilterValue, 68, 39, 0, 0, // Skip to: 8196 ++/* 8157 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 8160 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 8169 ++/* 8165 */ MCD::OPC_Decode, 199, 7, 82, // Opcode: VBITREV_B ++/* 8169 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 8178 ++/* 8174 */ MCD::OPC_Decode, 201, 7, 83, // Opcode: VBITREV_H ++/* 8178 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 8187 ++/* 8183 */ MCD::OPC_Decode, 202, 7, 50, // Opcode: VBITREV_W ++/* 8187 */ MCD::OPC_FilterValue, 3, 128, 49, 0, // Skip to: 20864 ++/* 8192 */ MCD::OPC_Decode, 200, 7, 51, // Opcode: VBITREV_D ++/* 8196 */ MCD::OPC_FilterValue, 69, 39, 0, 0, // Skip to: 8240 ++/* 8201 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 8204 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 8213 ++/* 8209 */ MCD::OPC_Decode, 185, 10, 82, // Opcode: VPACKEV_B ++/* 8213 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 8222 ++/* 8218 */ MCD::OPC_Decode, 187, 10, 83, // Opcode: VPACKEV_H ++/* 8222 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 8231 ++/* 8227 */ MCD::OPC_Decode, 188, 10, 50, // Opcode: VPACKEV_W ++/* 8231 */ MCD::OPC_FilterValue, 7, 84, 49, 0, // Skip to: 20864 ++/* 8236 */ MCD::OPC_Decode, 186, 10, 51, // Opcode: VPACKEV_D ++/* 8240 */ MCD::OPC_FilterValue, 70, 75, 0, 0, // Skip to: 8320 ++/* 8245 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 8248 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 8257 ++/* 8253 */ MCD::OPC_Decode, 189, 10, 82, // Opcode: VPACKOD_B ++/* 8257 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 8266 ++/* 8262 */ MCD::OPC_Decode, 191, 10, 83, // Opcode: VPACKOD_H ++/* 8266 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 8275 ++/* 8271 */ MCD::OPC_Decode, 192, 10, 50, // Opcode: VPACKOD_W ++/* 8275 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 8284 ++/* 8280 */ MCD::OPC_Decode, 190, 10, 51, // Opcode: VPACKOD_D ++/* 8284 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 8293 ++/* 8289 */ MCD::OPC_Decode, 156, 9, 82, // Opcode: VILVL_B ++/* 8293 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 8302 ++/* 8298 */ MCD::OPC_Decode, 158, 9, 83, // Opcode: VILVL_H ++/* 8302 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 8311 ++/* 8307 */ MCD::OPC_Decode, 159, 9, 50, // Opcode: VILVL_W ++/* 8311 */ MCD::OPC_FilterValue, 7, 4, 49, 0, // Skip to: 20864 ++/* 8316 */ MCD::OPC_Decode, 157, 9, 51, // Opcode: VILVL_D ++/* 8320 */ MCD::OPC_FilterValue, 71, 75, 0, 0, // Skip to: 8400 ++/* 8325 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 8328 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 8337 ++/* 8333 */ MCD::OPC_Decode, 152, 9, 82, // Opcode: VILVH_B ++/* 8337 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 8346 ++/* 8342 */ MCD::OPC_Decode, 154, 9, 83, // Opcode: VILVH_H ++/* 8346 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 8355 ++/* 8351 */ MCD::OPC_Decode, 155, 9, 50, // Opcode: VILVH_W ++/* 8355 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 8364 ++/* 8360 */ MCD::OPC_Decode, 153, 9, 51, // Opcode: VILVH_D ++/* 8364 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 8373 ++/* 8369 */ MCD::OPC_Decode, 198, 10, 82, // Opcode: VPICKEV_B ++/* 8373 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 8382 ++/* 8378 */ MCD::OPC_Decode, 200, 10, 83, // Opcode: VPICKEV_H ++/* 8382 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 8391 ++/* 8387 */ MCD::OPC_Decode, 201, 10, 50, // Opcode: VPICKEV_W ++/* 8391 */ MCD::OPC_FilterValue, 7, 180, 48, 0, // Skip to: 20864 ++/* 8396 */ MCD::OPC_Decode, 199, 10, 51, // Opcode: VPICKEV_D ++/* 8400 */ MCD::OPC_FilterValue, 72, 75, 0, 0, // Skip to: 8480 ++/* 8405 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 8408 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 8417 ++/* 8413 */ MCD::OPC_Decode, 202, 10, 82, // Opcode: VPICKOD_B ++/* 8417 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 8426 ++/* 8422 */ MCD::OPC_Decode, 204, 10, 83, // Opcode: VPICKOD_H ++/* 8426 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 8435 ++/* 8431 */ MCD::OPC_Decode, 205, 10, 50, // Opcode: VPICKOD_W ++/* 8435 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 8444 ++/* 8440 */ MCD::OPC_Decode, 203, 10, 51, // Opcode: VPICKOD_D ++/* 8444 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 8453 ++/* 8449 */ MCD::OPC_Decode, 222, 10, 97, // Opcode: VREPLVE_B ++/* 8453 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 8462 ++/* 8458 */ MCD::OPC_Decode, 224, 10, 98, // Opcode: VREPLVE_H ++/* 8462 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 8471 ++/* 8467 */ MCD::OPC_Decode, 225, 10, 99, // Opcode: VREPLVE_W ++/* 8471 */ MCD::OPC_FilterValue, 7, 100, 48, 0, // Skip to: 20864 ++/* 8476 */ MCD::OPC_Decode, 223, 10, 100, // Opcode: VREPLVE_D ++/* 8480 */ MCD::OPC_FilterValue, 73, 39, 0, 0, // Skip to: 8524 ++/* 8485 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 8488 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 8497 ++/* 8493 */ MCD::OPC_Decode, 170, 7, 82, // Opcode: VAND_V ++/* 8497 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 8506 ++/* 8502 */ MCD::OPC_Decode, 184, 10, 82, // Opcode: VOR_V ++/* 8506 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 8515 ++/* 8511 */ MCD::OPC_Decode, 254, 12, 82, // Opcode: VXOR_V ++/* 8515 */ MCD::OPC_FilterValue, 7, 56, 48, 0, // Skip to: 20864 ++/* 8520 */ MCD::OPC_Decode, 181, 10, 82, // Opcode: VNOR_V ++/* 8524 */ MCD::OPC_FilterValue, 74, 39, 0, 0, // Skip to: 8568 ++/* 8529 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 8532 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 8541 ++/* 8537 */ MCD::OPC_Decode, 169, 7, 82, // Opcode: VANDN_V ++/* 8541 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 8550 ++/* 8546 */ MCD::OPC_Decode, 183, 10, 82, // Opcode: VORN_V ++/* 8550 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 8559 ++/* 8555 */ MCD::OPC_Decode, 229, 8, 87, // Opcode: VFRSTP_B ++/* 8559 */ MCD::OPC_FilterValue, 7, 12, 48, 0, // Skip to: 20864 ++/* 8564 */ MCD::OPC_Decode, 230, 8, 88, // Opcode: VFRSTP_H ++/* 8568 */ MCD::OPC_FilterValue, 75, 57, 0, 0, // Skip to: 8630 ++/* 8573 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 8576 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 8585 ++/* 8581 */ MCD::OPC_Decode, 165, 7, 51, // Opcode: VADD_Q ++/* 8585 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 8594 ++/* 8590 */ MCD::OPC_Decode, 250, 12, 51, // Opcode: VSUB_Q ++/* 8594 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 8603 ++/* 8599 */ MCD::OPC_Decode, 152, 11, 82, // Opcode: VSIGNCOV_B ++/* 8603 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 8612 ++/* 8608 */ MCD::OPC_Decode, 154, 11, 83, // Opcode: VSIGNCOV_H ++/* 8612 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 8621 ++/* 8617 */ MCD::OPC_Decode, 155, 11, 50, // Opcode: VSIGNCOV_W ++/* 8621 */ MCD::OPC_FilterValue, 7, 206, 47, 0, // Skip to: 20864 ++/* 8626 */ MCD::OPC_Decode, 153, 11, 51, // Opcode: VSIGNCOV_D ++/* 8630 */ MCD::OPC_FilterValue, 76, 39, 0, 0, // Skip to: 8674 ++/* 8635 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 8638 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 8647 ++/* 8643 */ MCD::OPC_Decode, 131, 8, 50, // Opcode: VFADD_S ++/* 8647 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 8656 ++/* 8652 */ MCD::OPC_Decode, 130, 8, 51, // Opcode: VFADD_D ++/* 8656 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 8665 ++/* 8661 */ MCD::OPC_Decode, 234, 8, 50, // Opcode: VFSUB_S ++/* 8665 */ MCD::OPC_FilterValue, 6, 162, 47, 0, // Skip to: 20864 ++/* 8670 */ MCD::OPC_Decode, 233, 8, 51, // Opcode: VFSUB_D ++/* 8674 */ MCD::OPC_FilterValue, 78, 39, 0, 0, // Skip to: 8718 ++/* 8679 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 8682 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 8691 ++/* 8687 */ MCD::OPC_Decode, 208, 8, 50, // Opcode: VFMUL_S ++/* 8691 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 8700 ++/* 8696 */ MCD::OPC_Decode, 207, 8, 51, // Opcode: VFMUL_D ++/* 8700 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 8709 ++/* 8705 */ MCD::OPC_Decode, 185, 8, 50, // Opcode: VFDIV_S ++/* 8709 */ MCD::OPC_FilterValue, 6, 118, 47, 0, // Skip to: 20864 ++/* 8714 */ MCD::OPC_Decode, 184, 8, 51, // Opcode: VFDIV_D ++/* 8718 */ MCD::OPC_FilterValue, 79, 39, 0, 0, // Skip to: 8762 ++/* 8723 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 8726 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 8735 ++/* 8731 */ MCD::OPC_Decode, 200, 8, 50, // Opcode: VFMAX_S ++/* 8735 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 8744 ++/* 8740 */ MCD::OPC_Decode, 199, 8, 51, // Opcode: VFMAX_D ++/* 8744 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 8753 ++/* 8749 */ MCD::OPC_Decode, 204, 8, 50, // Opcode: VFMIN_S ++/* 8753 */ MCD::OPC_FilterValue, 6, 74, 47, 0, // Skip to: 20864 ++/* 8758 */ MCD::OPC_Decode, 203, 8, 51, // Opcode: VFMIN_D ++/* 8762 */ MCD::OPC_FilterValue, 80, 39, 0, 0, // Skip to: 8806 ++/* 8767 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 8770 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 8779 ++/* 8775 */ MCD::OPC_Decode, 198, 8, 50, // Opcode: VFMAXA_S ++/* 8779 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 8788 ++/* 8784 */ MCD::OPC_Decode, 197, 8, 51, // Opcode: VFMAXA_D ++/* 8788 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 8797 ++/* 8793 */ MCD::OPC_Decode, 202, 8, 50, // Opcode: VFMINA_S ++/* 8797 */ MCD::OPC_FilterValue, 6, 30, 47, 0, // Skip to: 20864 ++/* 8802 */ MCD::OPC_Decode, 201, 8, 51, // Opcode: VFMINA_D ++/* 8806 */ MCD::OPC_FilterValue, 81, 21, 0, 0, // Skip to: 8832 ++/* 8811 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 8814 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 8823 ++/* 8819 */ MCD::OPC_Decode, 182, 8, 95, // Opcode: VFCVT_H_S ++/* 8823 */ MCD::OPC_FilterValue, 5, 4, 47, 0, // Skip to: 20864 ++/* 8828 */ MCD::OPC_Decode, 183, 8, 96, // Opcode: VFCVT_S_D ++/* 8832 */ MCD::OPC_FilterValue, 82, 57, 0, 0, // Skip to: 8894 ++/* 8837 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 8840 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 8849 ++/* 8845 */ MCD::OPC_Decode, 190, 8, 96, // Opcode: VFFINT_S_L ++/* 8849 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 8858 ++/* 8854 */ MCD::OPC_Decode, 134, 9, 96, // Opcode: VFTINT_W_D ++/* 8858 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 8867 ++/* 8863 */ MCD::OPC_Decode, 240, 8, 96, // Opcode: VFTINTRM_W_D ++/* 8867 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 8876 ++/* 8872 */ MCD::OPC_Decode, 250, 8, 96, // Opcode: VFTINTRP_W_D ++/* 8876 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 8885 ++/* 8881 */ MCD::OPC_Decode, 129, 9, 96, // Opcode: VFTINTRZ_W_D ++/* 8885 */ MCD::OPC_FilterValue, 7, 198, 46, 0, // Skip to: 20864 ++/* 8890 */ MCD::OPC_Decode, 245, 8, 96, // Opcode: VFTINTRNE_W_D ++/* 8894 */ MCD::OPC_FilterValue, 94, 30, 0, 0, // Skip to: 8929 ++/* 8899 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 8902 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 8911 ++/* 8907 */ MCD::OPC_Decode, 150, 11, 88, // Opcode: VSHUF_H ++/* 8911 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 8920 ++/* 8916 */ MCD::OPC_Decode, 151, 11, 89, // Opcode: VSHUF_W ++/* 8920 */ MCD::OPC_FilterValue, 7, 163, 46, 0, // Skip to: 20864 ++/* 8925 */ MCD::OPC_Decode, 149, 11, 90, // Opcode: VSHUF_D ++/* 8929 */ MCD::OPC_FilterValue, 160, 1, 75, 0, 0, // Skip to: 9010 ++/* 8935 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 8938 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 8947 ++/* 8943 */ MCD::OPC_Decode, 250, 10, 101, // Opcode: VSEQI_B ++/* 8947 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 8956 ++/* 8952 */ MCD::OPC_Decode, 254, 10, 102, // Opcode: VSEQI_H ++/* 8956 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 8965 ++/* 8961 */ MCD::OPC_Decode, 128, 11, 103, // Opcode: VSEQI_W ++/* 8965 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 8974 ++/* 8970 */ MCD::OPC_Decode, 252, 10, 104, // Opcode: VSEQI_D ++/* 8974 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 8983 ++/* 8979 */ MCD::OPC_Decode, 156, 11, 101, // Opcode: VSLEI_B ++/* 8983 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 8992 ++/* 8988 */ MCD::OPC_Decode, 164, 11, 102, // Opcode: VSLEI_H ++/* 8992 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 9001 ++/* 8997 */ MCD::OPC_Decode, 168, 11, 103, // Opcode: VSLEI_W ++/* 9001 */ MCD::OPC_FilterValue, 7, 82, 46, 0, // Skip to: 20864 ++/* 9006 */ MCD::OPC_Decode, 160, 11, 104, // Opcode: VSLEI_D ++/* 9010 */ MCD::OPC_FilterValue, 161, 1, 75, 0, 0, // Skip to: 9091 ++/* 9016 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 9019 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 9028 ++/* 9024 */ MCD::OPC_Decode, 157, 11, 105, // Opcode: VSLEI_BU ++/* 9028 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 9037 ++/* 9033 */ MCD::OPC_Decode, 165, 11, 106, // Opcode: VSLEI_HU ++/* 9037 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 9046 ++/* 9042 */ MCD::OPC_Decode, 169, 11, 107, // Opcode: VSLEI_WU ++/* 9046 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 9055 ++/* 9051 */ MCD::OPC_Decode, 161, 11, 108, // Opcode: VSLEI_DU ++/* 9055 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 9064 ++/* 9060 */ MCD::OPC_Decode, 194, 11, 101, // Opcode: VSLTI_B ++/* 9064 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 9073 ++/* 9069 */ MCD::OPC_Decode, 202, 11, 102, // Opcode: VSLTI_H ++/* 9073 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 9082 ++/* 9078 */ MCD::OPC_Decode, 206, 11, 103, // Opcode: VSLTI_W ++/* 9082 */ MCD::OPC_FilterValue, 7, 1, 46, 0, // Skip to: 20864 ++/* 9087 */ MCD::OPC_Decode, 198, 11, 104, // Opcode: VSLTI_D ++/* 9091 */ MCD::OPC_FilterValue, 162, 1, 75, 0, 0, // Skip to: 9172 ++/* 9097 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 9100 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 9109 ++/* 9105 */ MCD::OPC_Decode, 195, 11, 105, // Opcode: VSLTI_BU ++/* 9109 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 9118 ++/* 9114 */ MCD::OPC_Decode, 203, 11, 106, // Opcode: VSLTI_HU ++/* 9118 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 9127 ++/* 9123 */ MCD::OPC_Decode, 207, 11, 107, // Opcode: VSLTI_WU ++/* 9127 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 9136 ++/* 9132 */ MCD::OPC_Decode, 199, 11, 108, // Opcode: VSLTI_DU ++/* 9136 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 9145 ++/* 9141 */ MCD::OPC_Decode, 134, 7, 105, // Opcode: VADDI_BU ++/* 9145 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 9154 ++/* 9150 */ MCD::OPC_Decode, 136, 7, 106, // Opcode: VADDI_HU ++/* 9154 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 9163 ++/* 9159 */ MCD::OPC_Decode, 137, 7, 107, // Opcode: VADDI_WU ++/* 9163 */ MCD::OPC_FilterValue, 7, 176, 45, 0, // Skip to: 20864 ++/* 9168 */ MCD::OPC_Decode, 135, 7, 108, // Opcode: VADDI_DU ++/* 9172 */ MCD::OPC_FilterValue, 163, 1, 57, 0, 0, // Skip to: 9235 ++/* 9178 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 9181 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 9190 ++/* 9186 */ MCD::OPC_Decode, 227, 12, 105, // Opcode: VSUBI_BU ++/* 9190 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 9199 ++/* 9195 */ MCD::OPC_Decode, 229, 12, 106, // Opcode: VSUBI_HU ++/* 9199 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 9208 ++/* 9204 */ MCD::OPC_Decode, 230, 12, 107, // Opcode: VSUBI_WU ++/* 9208 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 9217 ++/* 9213 */ MCD::OPC_Decode, 228, 12, 108, // Opcode: VSUBI_DU ++/* 9217 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 9226 ++/* 9222 */ MCD::OPC_Decode, 214, 7, 105, // Opcode: VBSLL_V ++/* 9226 */ MCD::OPC_FilterValue, 5, 113, 45, 0, // Skip to: 20864 ++/* 9231 */ MCD::OPC_Decode, 215, 7, 105, // Opcode: VBSRL_V ++/* 9235 */ MCD::OPC_FilterValue, 164, 1, 75, 0, 0, // Skip to: 9316 ++/* 9241 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 9244 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 9253 ++/* 9249 */ MCD::OPC_Decode, 206, 9, 101, // Opcode: VMAXI_B ++/* 9253 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 9262 ++/* 9258 */ MCD::OPC_Decode, 214, 9, 102, // Opcode: VMAXI_H ++/* 9262 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 9271 ++/* 9267 */ MCD::OPC_Decode, 218, 9, 103, // Opcode: VMAXI_W ++/* 9271 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 9280 ++/* 9276 */ MCD::OPC_Decode, 210, 9, 104, // Opcode: VMAXI_D ++/* 9280 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 9289 ++/* 9285 */ MCD::OPC_Decode, 230, 9, 101, // Opcode: VMINI_B ++/* 9289 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 9298 ++/* 9294 */ MCD::OPC_Decode, 236, 9, 102, // Opcode: VMINI_H ++/* 9298 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 9307 ++/* 9303 */ MCD::OPC_Decode, 239, 9, 103, // Opcode: VMINI_W ++/* 9307 */ MCD::OPC_FilterValue, 7, 32, 45, 0, // Skip to: 20864 ++/* 9312 */ MCD::OPC_Decode, 233, 9, 104, // Opcode: VMINI_D ++/* 9316 */ MCD::OPC_FilterValue, 165, 1, 75, 0, 0, // Skip to: 9397 ++/* 9322 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 9325 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 9334 ++/* 9330 */ MCD::OPC_Decode, 207, 9, 105, // Opcode: VMAXI_BU ++/* 9334 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 9343 ++/* 9339 */ MCD::OPC_Decode, 215, 9, 106, // Opcode: VMAXI_HU ++/* 9343 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 9352 ++/* 9348 */ MCD::OPC_Decode, 219, 9, 107, // Opcode: VMAXI_WU ++/* 9352 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 9361 ++/* 9357 */ MCD::OPC_Decode, 211, 9, 108, // Opcode: VMAXI_DU ++/* 9361 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 9370 ++/* 9366 */ MCD::OPC_Decode, 231, 9, 105, // Opcode: VMINI_BU ++/* 9370 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 9379 ++/* 9375 */ MCD::OPC_Decode, 237, 9, 106, // Opcode: VMINI_HU ++/* 9379 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 9388 ++/* 9384 */ MCD::OPC_Decode, 240, 9, 107, // Opcode: VMINI_WU ++/* 9388 */ MCD::OPC_FilterValue, 7, 207, 44, 0, // Skip to: 20864 ++/* 9393 */ MCD::OPC_Decode, 234, 9, 108, // Opcode: VMINI_DU ++/* 9397 */ MCD::OPC_FilterValue, 166, 1, 21, 0, 0, // Skip to: 9424 ++/* 9403 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 9406 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 9415 ++/* 9411 */ MCD::OPC_Decode, 227, 8, 109, // Opcode: VFRSTPI_B ++/* 9415 */ MCD::OPC_FilterValue, 5, 180, 44, 0, // Skip to: 20864 ++/* 9420 */ MCD::OPC_Decode, 228, 8, 110, // Opcode: VFRSTPI_H ++/* 9424 */ MCD::OPC_FilterValue, 167, 1, 229, 3, 0, // Skip to: 10427 ++/* 9430 */ MCD::OPC_ExtractField, 10, 8, // Inst{17-10} ... ++/* 9433 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 9442 ++/* 9438 */ MCD::OPC_Decode, 216, 7, 111, // Opcode: VCLO_B ++/* 9442 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 9451 ++/* 9447 */ MCD::OPC_Decode, 218, 7, 112, // Opcode: VCLO_H ++/* 9451 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 9460 ++/* 9456 */ MCD::OPC_Decode, 219, 7, 113, // Opcode: VCLO_W ++/* 9460 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 9469 ++/* 9465 */ MCD::OPC_Decode, 217, 7, 114, // Opcode: VCLO_D ++/* 9469 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 9478 ++/* 9474 */ MCD::OPC_Decode, 220, 7, 111, // Opcode: VCLZ_B ++/* 9478 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 9487 ++/* 9483 */ MCD::OPC_Decode, 222, 7, 112, // Opcode: VCLZ_H ++/* 9487 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 9496 ++/* 9492 */ MCD::OPC_Decode, 223, 7, 113, // Opcode: VCLZ_W ++/* 9496 */ MCD::OPC_FilterValue, 7, 4, 0, 0, // Skip to: 9505 ++/* 9501 */ MCD::OPC_Decode, 221, 7, 114, // Opcode: VCLZ_D ++/* 9505 */ MCD::OPC_FilterValue, 8, 4, 0, 0, // Skip to: 9514 ++/* 9510 */ MCD::OPC_Decode, 193, 10, 111, // Opcode: VPCNT_B ++/* 9514 */ MCD::OPC_FilterValue, 9, 4, 0, 0, // Skip to: 9523 ++/* 9519 */ MCD::OPC_Decode, 195, 10, 112, // Opcode: VPCNT_H ++/* 9523 */ MCD::OPC_FilterValue, 10, 4, 0, 0, // Skip to: 9532 ++/* 9528 */ MCD::OPC_Decode, 196, 10, 113, // Opcode: VPCNT_W ++/* 9532 */ MCD::OPC_FilterValue, 11, 4, 0, 0, // Skip to: 9541 ++/* 9537 */ MCD::OPC_Decode, 194, 10, 114, // Opcode: VPCNT_D ++/* 9541 */ MCD::OPC_FilterValue, 12, 4, 0, 0, // Skip to: 9550 ++/* 9546 */ MCD::OPC_Decode, 176, 10, 111, // Opcode: VNEG_B ++/* 9550 */ MCD::OPC_FilterValue, 13, 4, 0, 0, // Skip to: 9559 ++/* 9555 */ MCD::OPC_Decode, 178, 10, 112, // Opcode: VNEG_H ++/* 9559 */ MCD::OPC_FilterValue, 14, 4, 0, 0, // Skip to: 9568 ++/* 9564 */ MCD::OPC_Decode, 179, 10, 113, // Opcode: VNEG_W ++/* 9568 */ MCD::OPC_FilterValue, 15, 4, 0, 0, // Skip to: 9577 ++/* 9573 */ MCD::OPC_Decode, 177, 10, 114, // Opcode: VNEG_D ++/* 9577 */ MCD::OPC_FilterValue, 16, 4, 0, 0, // Skip to: 9586 ++/* 9582 */ MCD::OPC_Decode, 131, 10, 111, // Opcode: VMSKLTZ_B ++/* 9586 */ MCD::OPC_FilterValue, 17, 4, 0, 0, // Skip to: 9595 ++/* 9591 */ MCD::OPC_Decode, 133, 10, 112, // Opcode: VMSKLTZ_H ++/* 9595 */ MCD::OPC_FilterValue, 18, 4, 0, 0, // Skip to: 9604 ++/* 9600 */ MCD::OPC_Decode, 134, 10, 113, // Opcode: VMSKLTZ_W ++/* 9604 */ MCD::OPC_FilterValue, 19, 4, 0, 0, // Skip to: 9613 ++/* 9609 */ MCD::OPC_Decode, 132, 10, 114, // Opcode: VMSKLTZ_D ++/* 9613 */ MCD::OPC_FilterValue, 20, 4, 0, 0, // Skip to: 9622 ++/* 9618 */ MCD::OPC_Decode, 130, 10, 111, // Opcode: VMSKGEZ_B ++/* 9622 */ MCD::OPC_FilterValue, 24, 4, 0, 0, // Skip to: 9631 ++/* 9627 */ MCD::OPC_Decode, 135, 10, 111, // Opcode: VMSKNZ_B ++/* 9631 */ MCD::OPC_FilterValue, 38, 11, 0, 0, // Skip to: 9647 ++/* 9636 */ MCD::OPC_CheckField, 3, 2, 0, 213, 43, 0, // Skip to: 20864 ++/* 9643 */ MCD::OPC_Decode, 142, 11, 115, // Opcode: VSETEQZ_V ++/* 9647 */ MCD::OPC_FilterValue, 39, 11, 0, 0, // Skip to: 9663 ++/* 9652 */ MCD::OPC_CheckField, 3, 2, 0, 197, 43, 0, // Skip to: 20864 ++/* 9659 */ MCD::OPC_Decode, 143, 11, 115, // Opcode: VSETNEZ_V ++/* 9663 */ MCD::OPC_FilterValue, 40, 11, 0, 0, // Skip to: 9679 ++/* 9668 */ MCD::OPC_CheckField, 3, 2, 0, 181, 43, 0, // Skip to: 20864 ++/* 9675 */ MCD::OPC_Decode, 138, 11, 115, // Opcode: VSETANYEQZ_B ++/* 9679 */ MCD::OPC_FilterValue, 41, 11, 0, 0, // Skip to: 9695 ++/* 9684 */ MCD::OPC_CheckField, 3, 2, 0, 165, 43, 0, // Skip to: 20864 ++/* 9691 */ MCD::OPC_Decode, 140, 11, 116, // Opcode: VSETANYEQZ_H ++/* 9695 */ MCD::OPC_FilterValue, 42, 11, 0, 0, // Skip to: 9711 ++/* 9700 */ MCD::OPC_CheckField, 3, 2, 0, 149, 43, 0, // Skip to: 20864 ++/* 9707 */ MCD::OPC_Decode, 141, 11, 117, // Opcode: VSETANYEQZ_W ++/* 9711 */ MCD::OPC_FilterValue, 43, 11, 0, 0, // Skip to: 9727 ++/* 9716 */ MCD::OPC_CheckField, 3, 2, 0, 133, 43, 0, // Skip to: 20864 ++/* 9723 */ MCD::OPC_Decode, 139, 11, 118, // Opcode: VSETANYEQZ_D ++/* 9727 */ MCD::OPC_FilterValue, 44, 11, 0, 0, // Skip to: 9743 ++/* 9732 */ MCD::OPC_CheckField, 3, 2, 0, 117, 43, 0, // Skip to: 20864 ++/* 9739 */ MCD::OPC_Decode, 134, 11, 115, // Opcode: VSETALLNEZ_B ++/* 9743 */ MCD::OPC_FilterValue, 45, 11, 0, 0, // Skip to: 9759 ++/* 9748 */ MCD::OPC_CheckField, 3, 2, 0, 101, 43, 0, // Skip to: 20864 ++/* 9755 */ MCD::OPC_Decode, 136, 11, 116, // Opcode: VSETALLNEZ_H ++/* 9759 */ MCD::OPC_FilterValue, 46, 11, 0, 0, // Skip to: 9775 ++/* 9764 */ MCD::OPC_CheckField, 3, 2, 0, 85, 43, 0, // Skip to: 20864 ++/* 9771 */ MCD::OPC_Decode, 137, 11, 117, // Opcode: VSETALLNEZ_W ++/* 9775 */ MCD::OPC_FilterValue, 47, 11, 0, 0, // Skip to: 9791 ++/* 9780 */ MCD::OPC_CheckField, 3, 2, 0, 69, 43, 0, // Skip to: 20864 ++/* 9787 */ MCD::OPC_Decode, 135, 11, 118, // Opcode: VSETALLNEZ_D ++/* 9791 */ MCD::OPC_FilterValue, 49, 4, 0, 0, // Skip to: 9800 ++/* 9796 */ MCD::OPC_Decode, 194, 8, 113, // Opcode: VFLOGB_S ++/* 9800 */ MCD::OPC_FilterValue, 50, 4, 0, 0, // Skip to: 9809 ++/* 9805 */ MCD::OPC_Decode, 193, 8, 114, // Opcode: VFLOGB_D ++/* 9809 */ MCD::OPC_FilterValue, 53, 4, 0, 0, // Skip to: 9818 ++/* 9814 */ MCD::OPC_Decode, 133, 8, 113, // Opcode: VFCLASS_S ++/* 9818 */ MCD::OPC_FilterValue, 54, 4, 0, 0, // Skip to: 9827 ++/* 9823 */ MCD::OPC_Decode, 132, 8, 114, // Opcode: VFCLASS_D ++/* 9827 */ MCD::OPC_FilterValue, 57, 4, 0, 0, // Skip to: 9836 ++/* 9832 */ MCD::OPC_Decode, 232, 8, 113, // Opcode: VFSQRT_S ++/* 9836 */ MCD::OPC_FilterValue, 58, 4, 0, 0, // Skip to: 9845 ++/* 9841 */ MCD::OPC_Decode, 231, 8, 114, // Opcode: VFSQRT_D ++/* 9845 */ MCD::OPC_FilterValue, 61, 4, 0, 0, // Skip to: 9854 ++/* 9850 */ MCD::OPC_Decode, 214, 8, 113, // Opcode: VFRECIP_S ++/* 9854 */ MCD::OPC_FilterValue, 62, 4, 0, 0, // Skip to: 9863 ++/* 9859 */ MCD::OPC_Decode, 213, 8, 114, // Opcode: VFRECIP_D ++/* 9863 */ MCD::OPC_FilterValue, 65, 4, 0, 0, // Skip to: 9872 ++/* 9868 */ MCD::OPC_Decode, 226, 8, 113, // Opcode: VFRSQRT_S ++/* 9872 */ MCD::OPC_FilterValue, 66, 4, 0, 0, // Skip to: 9881 ++/* 9877 */ MCD::OPC_Decode, 225, 8, 114, // Opcode: VFRSQRT_D ++/* 9881 */ MCD::OPC_FilterValue, 77, 4, 0, 0, // Skip to: 9890 ++/* 9886 */ MCD::OPC_Decode, 224, 8, 113, // Opcode: VFRINT_S ++/* 9890 */ MCD::OPC_FilterValue, 78, 4, 0, 0, // Skip to: 9899 ++/* 9895 */ MCD::OPC_Decode, 223, 8, 114, // Opcode: VFRINT_D ++/* 9899 */ MCD::OPC_FilterValue, 81, 4, 0, 0, // Skip to: 9908 ++/* 9904 */ MCD::OPC_Decode, 216, 8, 113, // Opcode: VFRINTRM_S ++/* 9908 */ MCD::OPC_FilterValue, 82, 4, 0, 0, // Skip to: 9917 ++/* 9913 */ MCD::OPC_Decode, 215, 8, 114, // Opcode: VFRINTRM_D ++/* 9917 */ MCD::OPC_FilterValue, 85, 4, 0, 0, // Skip to: 9926 ++/* 9922 */ MCD::OPC_Decode, 220, 8, 113, // Opcode: VFRINTRP_S ++/* 9926 */ MCD::OPC_FilterValue, 86, 4, 0, 0, // Skip to: 9935 ++/* 9931 */ MCD::OPC_Decode, 219, 8, 114, // Opcode: VFRINTRP_D ++/* 9935 */ MCD::OPC_FilterValue, 89, 4, 0, 0, // Skip to: 9944 ++/* 9940 */ MCD::OPC_Decode, 222, 8, 113, // Opcode: VFRINTRZ_S ++/* 9944 */ MCD::OPC_FilterValue, 90, 4, 0, 0, // Skip to: 9953 ++/* 9949 */ MCD::OPC_Decode, 221, 8, 114, // Opcode: VFRINTRZ_D ++/* 9953 */ MCD::OPC_FilterValue, 93, 4, 0, 0, // Skip to: 9962 ++/* 9958 */ MCD::OPC_Decode, 218, 8, 113, // Opcode: VFRINTRNE_S ++/* 9962 */ MCD::OPC_FilterValue, 94, 4, 0, 0, // Skip to: 9971 ++/* 9967 */ MCD::OPC_Decode, 217, 8, 114, // Opcode: VFRINTRNE_D ++/* 9971 */ MCD::OPC_FilterValue, 122, 4, 0, 0, // Skip to: 9980 ++/* 9976 */ MCD::OPC_Decode, 181, 8, 119, // Opcode: VFCVTL_S_H ++/* 9980 */ MCD::OPC_FilterValue, 123, 4, 0, 0, // Skip to: 9989 ++/* 9985 */ MCD::OPC_Decode, 179, 8, 119, // Opcode: VFCVTH_S_H ++/* 9989 */ MCD::OPC_FilterValue, 124, 4, 0, 0, // Skip to: 9998 ++/* 9994 */ MCD::OPC_Decode, 180, 8, 120, // Opcode: VFCVTL_D_S ++/* 9998 */ MCD::OPC_FilterValue, 125, 4, 0, 0, // Skip to: 10007 ++/* 10003 */ MCD::OPC_Decode, 178, 8, 120, // Opcode: VFCVTH_D_S ++/* 10007 */ MCD::OPC_FilterValue, 128, 1, 4, 0, 0, // Skip to: 10017 ++/* 10013 */ MCD::OPC_Decode, 191, 8, 113, // Opcode: VFFINT_S_W ++/* 10017 */ MCD::OPC_FilterValue, 129, 1, 4, 0, 0, // Skip to: 10027 ++/* 10023 */ MCD::OPC_Decode, 192, 8, 113, // Opcode: VFFINT_S_WU ++/* 10027 */ MCD::OPC_FilterValue, 130, 1, 4, 0, 0, // Skip to: 10037 ++/* 10033 */ MCD::OPC_Decode, 188, 8, 114, // Opcode: VFFINT_D_L ++/* 10037 */ MCD::OPC_FilterValue, 131, 1, 4, 0, 0, // Skip to: 10047 ++/* 10043 */ MCD::OPC_Decode, 189, 8, 114, // Opcode: VFFINT_D_LU ++/* 10047 */ MCD::OPC_FilterValue, 132, 1, 4, 0, 0, // Skip to: 10057 ++/* 10053 */ MCD::OPC_Decode, 187, 8, 120, // Opcode: VFFINTL_D_W ++/* 10057 */ MCD::OPC_FilterValue, 133, 1, 4, 0, 0, // Skip to: 10067 ++/* 10063 */ MCD::OPC_Decode, 186, 8, 120, // Opcode: VFFINTH_D_W ++/* 10067 */ MCD::OPC_FilterValue, 140, 1, 4, 0, 0, // Skip to: 10077 ++/* 10073 */ MCD::OPC_Decode, 135, 9, 113, // Opcode: VFTINT_W_S ++/* 10077 */ MCD::OPC_FilterValue, 141, 1, 4, 0, 0, // Skip to: 10087 ++/* 10083 */ MCD::OPC_Decode, 132, 9, 114, // Opcode: VFTINT_L_D ++/* 10087 */ MCD::OPC_FilterValue, 142, 1, 4, 0, 0, // Skip to: 10097 ++/* 10093 */ MCD::OPC_Decode, 241, 8, 113, // Opcode: VFTINTRM_W_S ++/* 10097 */ MCD::OPC_FilterValue, 143, 1, 4, 0, 0, // Skip to: 10107 ++/* 10103 */ MCD::OPC_Decode, 239, 8, 114, // Opcode: VFTINTRM_L_D ++/* 10107 */ MCD::OPC_FilterValue, 144, 1, 4, 0, 0, // Skip to: 10117 ++/* 10113 */ MCD::OPC_Decode, 251, 8, 113, // Opcode: VFTINTRP_W_S ++/* 10117 */ MCD::OPC_FilterValue, 145, 1, 4, 0, 0, // Skip to: 10127 ++/* 10123 */ MCD::OPC_Decode, 249, 8, 114, // Opcode: VFTINTRP_L_D ++/* 10127 */ MCD::OPC_FilterValue, 146, 1, 4, 0, 0, // Skip to: 10137 ++/* 10133 */ MCD::OPC_Decode, 130, 9, 113, // Opcode: VFTINTRZ_W_S ++/* 10137 */ MCD::OPC_FilterValue, 147, 1, 4, 0, 0, // Skip to: 10147 ++/* 10143 */ MCD::OPC_Decode, 255, 8, 114, // Opcode: VFTINTRZ_L_D ++/* 10147 */ MCD::OPC_FilterValue, 148, 1, 4, 0, 0, // Skip to: 10157 ++/* 10153 */ MCD::OPC_Decode, 246, 8, 113, // Opcode: VFTINTRNE_W_S ++/* 10157 */ MCD::OPC_FilterValue, 149, 1, 4, 0, 0, // Skip to: 10167 ++/* 10163 */ MCD::OPC_Decode, 244, 8, 114, // Opcode: VFTINTRNE_L_D ++/* 10167 */ MCD::OPC_FilterValue, 150, 1, 4, 0, 0, // Skip to: 10177 ++/* 10173 */ MCD::OPC_Decode, 133, 9, 113, // Opcode: VFTINT_WU_S ++/* 10177 */ MCD::OPC_FilterValue, 151, 1, 4, 0, 0, // Skip to: 10187 ++/* 10183 */ MCD::OPC_Decode, 131, 9, 114, // Opcode: VFTINT_LU_D ++/* 10187 */ MCD::OPC_FilterValue, 156, 1, 4, 0, 0, // Skip to: 10197 ++/* 10193 */ MCD::OPC_Decode, 128, 9, 113, // Opcode: VFTINTRZ_WU_S ++/* 10197 */ MCD::OPC_FilterValue, 157, 1, 4, 0, 0, // Skip to: 10207 ++/* 10203 */ MCD::OPC_Decode, 254, 8, 114, // Opcode: VFTINTRZ_LU_D ++/* 10207 */ MCD::OPC_FilterValue, 160, 1, 4, 0, 0, // Skip to: 10217 ++/* 10213 */ MCD::OPC_Decode, 236, 8, 120, // Opcode: VFTINTL_L_S ++/* 10217 */ MCD::OPC_FilterValue, 161, 1, 4, 0, 0, // Skip to: 10227 ++/* 10223 */ MCD::OPC_Decode, 235, 8, 120, // Opcode: VFTINTH_L_S ++/* 10227 */ MCD::OPC_FilterValue, 162, 1, 4, 0, 0, // Skip to: 10237 ++/* 10233 */ MCD::OPC_Decode, 238, 8, 120, // Opcode: VFTINTRML_L_S ++/* 10237 */ MCD::OPC_FilterValue, 163, 1, 4, 0, 0, // Skip to: 10247 ++/* 10243 */ MCD::OPC_Decode, 237, 8, 120, // Opcode: VFTINTRMH_L_S ++/* 10247 */ MCD::OPC_FilterValue, 164, 1, 4, 0, 0, // Skip to: 10257 ++/* 10253 */ MCD::OPC_Decode, 248, 8, 120, // Opcode: VFTINTRPL_L_S ++/* 10257 */ MCD::OPC_FilterValue, 165, 1, 4, 0, 0, // Skip to: 10267 ++/* 10263 */ MCD::OPC_Decode, 247, 8, 120, // Opcode: VFTINTRPH_L_S ++/* 10267 */ MCD::OPC_FilterValue, 166, 1, 4, 0, 0, // Skip to: 10277 ++/* 10273 */ MCD::OPC_Decode, 253, 8, 120, // Opcode: VFTINTRZL_L_S ++/* 10277 */ MCD::OPC_FilterValue, 167, 1, 4, 0, 0, // Skip to: 10287 ++/* 10283 */ MCD::OPC_Decode, 252, 8, 120, // Opcode: VFTINTRZH_L_S ++/* 10287 */ MCD::OPC_FilterValue, 168, 1, 4, 0, 0, // Skip to: 10297 ++/* 10293 */ MCD::OPC_Decode, 243, 8, 120, // Opcode: VFTINTRNEL_L_S ++/* 10297 */ MCD::OPC_FilterValue, 169, 1, 4, 0, 0, // Skip to: 10307 ++/* 10303 */ MCD::OPC_Decode, 242, 8, 120, // Opcode: VFTINTRNEH_L_S ++/* 10307 */ MCD::OPC_FilterValue, 184, 1, 4, 0, 0, // Skip to: 10317 ++/* 10313 */ MCD::OPC_Decode, 247, 7, 121, // Opcode: VEXTH_H_B ++/* 10317 */ MCD::OPC_FilterValue, 185, 1, 4, 0, 0, // Skip to: 10327 ++/* 10323 */ MCD::OPC_Decode, 251, 7, 119, // Opcode: VEXTH_W_H ++/* 10327 */ MCD::OPC_FilterValue, 186, 1, 4, 0, 0, // Skip to: 10337 ++/* 10333 */ MCD::OPC_Decode, 245, 7, 120, // Opcode: VEXTH_D_W ++/* 10337 */ MCD::OPC_FilterValue, 187, 1, 4, 0, 0, // Skip to: 10347 ++/* 10343 */ MCD::OPC_Decode, 249, 7, 114, // Opcode: VEXTH_Q_D ++/* 10347 */ MCD::OPC_FilterValue, 188, 1, 4, 0, 0, // Skip to: 10357 ++/* 10353 */ MCD::OPC_Decode, 246, 7, 121, // Opcode: VEXTH_HU_BU ++/* 10357 */ MCD::OPC_FilterValue, 189, 1, 4, 0, 0, // Skip to: 10367 ++/* 10363 */ MCD::OPC_Decode, 250, 7, 119, // Opcode: VEXTH_WU_HU ++/* 10367 */ MCD::OPC_FilterValue, 190, 1, 4, 0, 0, // Skip to: 10377 ++/* 10373 */ MCD::OPC_Decode, 244, 7, 120, // Opcode: VEXTH_DU_WU ++/* 10377 */ MCD::OPC_FilterValue, 191, 1, 4, 0, 0, // Skip to: 10387 ++/* 10383 */ MCD::OPC_Decode, 248, 7, 114, // Opcode: VEXTH_QU_DU ++/* 10387 */ MCD::OPC_FilterValue, 192, 1, 4, 0, 0, // Skip to: 10397 ++/* 10393 */ MCD::OPC_Decode, 214, 10, 122, // Opcode: VREPLGR2VR_B ++/* 10397 */ MCD::OPC_FilterValue, 193, 1, 4, 0, 0, // Skip to: 10407 ++/* 10403 */ MCD::OPC_Decode, 216, 10, 123, // Opcode: VREPLGR2VR_H ++/* 10407 */ MCD::OPC_FilterValue, 194, 1, 4, 0, 0, // Skip to: 10417 ++/* 10413 */ MCD::OPC_Decode, 217, 10, 124, // Opcode: VREPLGR2VR_W ++/* 10417 */ MCD::OPC_FilterValue, 195, 1, 201, 40, 0, // Skip to: 20864 ++/* 10423 */ MCD::OPC_Decode, 215, 10, 125, // Opcode: VREPLGR2VR_D ++/* 10427 */ MCD::OPC_FilterValue, 168, 1, 63, 0, 0, // Skip to: 10496 ++/* 10433 */ MCD::OPC_ExtractField, 16, 2, // Inst{17-16} ... ++/* 10436 */ MCD::OPC_FilterValue, 0, 45, 0, 0, // Skip to: 10486 ++/* 10441 */ MCD::OPC_ExtractField, 15, 1, // Inst{15} ... ++/* 10444 */ MCD::OPC_FilterValue, 0, 28, 0, 0, // Skip to: 10477 ++/* 10449 */ MCD::OPC_ExtractField, 14, 1, // Inst{14} ... ++/* 10452 */ MCD::OPC_FilterValue, 0, 11, 0, 0, // Skip to: 10468 ++/* 10457 */ MCD::OPC_CheckField, 13, 1, 1, 160, 40, 0, // Skip to: 20864 ++/* 10464 */ MCD::OPC_Decode, 226, 10, 126, // Opcode: VROTRI_B ++/* 10468 */ MCD::OPC_FilterValue, 1, 151, 40, 0, // Skip to: 20864 ++/* 10473 */ MCD::OPC_Decode, 228, 10, 127, // Opcode: VROTRI_H ++/* 10477 */ MCD::OPC_FilterValue, 1, 142, 40, 0, // Skip to: 20864 ++/* 10482 */ MCD::OPC_Decode, 229, 10, 107, // Opcode: VROTRI_W ++/* 10486 */ MCD::OPC_FilterValue, 1, 133, 40, 0, // Skip to: 20864 ++/* 10491 */ MCD::OPC_Decode, 227, 10, 128, 1, // Opcode: VROTRI_D ++/* 10496 */ MCD::OPC_FilterValue, 169, 1, 63, 0, 0, // Skip to: 10565 ++/* 10502 */ MCD::OPC_ExtractField, 16, 2, // Inst{17-16} ... ++/* 10505 */ MCD::OPC_FilterValue, 0, 45, 0, 0, // Skip to: 10555 ++/* 10510 */ MCD::OPC_ExtractField, 15, 1, // Inst{15} ... ++/* 10513 */ MCD::OPC_FilterValue, 0, 28, 0, 0, // Skip to: 10546 ++/* 10518 */ MCD::OPC_ExtractField, 14, 1, // Inst{14} ... ++/* 10521 */ MCD::OPC_FilterValue, 0, 11, 0, 0, // Skip to: 10537 ++/* 10526 */ MCD::OPC_CheckField, 13, 1, 1, 91, 40, 0, // Skip to: 20864 ++/* 10533 */ MCD::OPC_Decode, 135, 12, 126, // Opcode: VSRLRI_B ++/* 10537 */ MCD::OPC_FilterValue, 1, 82, 40, 0, // Skip to: 20864 ++/* 10542 */ MCD::OPC_Decode, 137, 12, 127, // Opcode: VSRLRI_H ++/* 10546 */ MCD::OPC_FilterValue, 1, 73, 40, 0, // Skip to: 20864 ++/* 10551 */ MCD::OPC_Decode, 138, 12, 107, // Opcode: VSRLRI_W ++/* 10555 */ MCD::OPC_FilterValue, 1, 64, 40, 0, // Skip to: 20864 ++/* 10560 */ MCD::OPC_Decode, 136, 12, 128, 1, // Opcode: VSRLRI_D ++/* 10565 */ MCD::OPC_FilterValue, 170, 1, 63, 0, 0, // Skip to: 10634 ++/* 10571 */ MCD::OPC_ExtractField, 16, 2, // Inst{17-16} ... ++/* 10574 */ MCD::OPC_FilterValue, 0, 45, 0, 0, // Skip to: 10624 ++/* 10579 */ MCD::OPC_ExtractField, 15, 1, // Inst{15} ... ++/* 10582 */ MCD::OPC_FilterValue, 0, 28, 0, 0, // Skip to: 10615 ++/* 10587 */ MCD::OPC_ExtractField, 14, 1, // Inst{14} ... ++/* 10590 */ MCD::OPC_FilterValue, 0, 11, 0, 0, // Skip to: 10606 ++/* 10595 */ MCD::OPC_CheckField, 13, 1, 1, 22, 40, 0, // Skip to: 20864 ++/* 10602 */ MCD::OPC_Decode, 233, 11, 126, // Opcode: VSRARI_B ++/* 10606 */ MCD::OPC_FilterValue, 1, 13, 40, 0, // Skip to: 20864 ++/* 10611 */ MCD::OPC_Decode, 235, 11, 127, // Opcode: VSRARI_H ++/* 10615 */ MCD::OPC_FilterValue, 1, 4, 40, 0, // Skip to: 20864 ++/* 10620 */ MCD::OPC_Decode, 236, 11, 107, // Opcode: VSRARI_W ++/* 10624 */ MCD::OPC_FilterValue, 1, 251, 39, 0, // Skip to: 20864 ++/* 10629 */ MCD::OPC_Decode, 234, 11, 128, 1, // Opcode: VSRARI_D ++/* 10634 */ MCD::OPC_FilterValue, 186, 1, 66, 0, 0, // Skip to: 10706 ++/* 10640 */ MCD::OPC_ExtractField, 14, 4, // Inst{17-14} ... ++/* 10643 */ MCD::OPC_FilterValue, 14, 5, 0, 0, // Skip to: 10653 ++/* 10648 */ MCD::OPC_Decode, 160, 9, 129, 1, // Opcode: VINSGR2VR_B ++/* 10653 */ MCD::OPC_FilterValue, 15, 222, 39, 0, // Skip to: 20864 ++/* 10658 */ MCD::OPC_ExtractField, 13, 1, // Inst{13} ... ++/* 10661 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 10671 ++/* 10666 */ MCD::OPC_Decode, 162, 9, 130, 1, // Opcode: VINSGR2VR_H ++/* 10671 */ MCD::OPC_FilterValue, 1, 204, 39, 0, // Skip to: 20864 ++/* 10676 */ MCD::OPC_ExtractField, 12, 1, // Inst{12} ... ++/* 10679 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 10689 ++/* 10684 */ MCD::OPC_Decode, 163, 9, 131, 1, // Opcode: VINSGR2VR_W ++/* 10689 */ MCD::OPC_FilterValue, 1, 186, 39, 0, // Skip to: 20864 ++/* 10694 */ MCD::OPC_CheckField, 11, 1, 0, 179, 39, 0, // Skip to: 20864 ++/* 10701 */ MCD::OPC_Decode, 161, 9, 132, 1, // Opcode: VINSGR2VR_D ++/* 10706 */ MCD::OPC_FilterValue, 187, 1, 66, 0, 0, // Skip to: 10778 ++/* 10712 */ MCD::OPC_ExtractField, 14, 4, // Inst{17-14} ... ++/* 10715 */ MCD::OPC_FilterValue, 14, 5, 0, 0, // Skip to: 10725 ++/* 10720 */ MCD::OPC_Decode, 206, 10, 133, 1, // Opcode: VPICKVE2GR_B ++/* 10725 */ MCD::OPC_FilterValue, 15, 150, 39, 0, // Skip to: 20864 ++/* 10730 */ MCD::OPC_ExtractField, 13, 1, // Inst{13} ... ++/* 10733 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 10743 ++/* 10738 */ MCD::OPC_Decode, 210, 10, 134, 1, // Opcode: VPICKVE2GR_H ++/* 10743 */ MCD::OPC_FilterValue, 1, 132, 39, 0, // Skip to: 20864 ++/* 10748 */ MCD::OPC_ExtractField, 12, 1, // Inst{12} ... ++/* 10751 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 10761 ++/* 10756 */ MCD::OPC_Decode, 212, 10, 135, 1, // Opcode: VPICKVE2GR_W ++/* 10761 */ MCD::OPC_FilterValue, 1, 114, 39, 0, // Skip to: 20864 ++/* 10766 */ MCD::OPC_CheckField, 11, 1, 0, 107, 39, 0, // Skip to: 20864 ++/* 10773 */ MCD::OPC_Decode, 208, 10, 136, 1, // Opcode: VPICKVE2GR_D ++/* 10778 */ MCD::OPC_FilterValue, 188, 1, 66, 0, 0, // Skip to: 10850 ++/* 10784 */ MCD::OPC_ExtractField, 14, 4, // Inst{17-14} ... ++/* 10787 */ MCD::OPC_FilterValue, 14, 5, 0, 0, // Skip to: 10797 ++/* 10792 */ MCD::OPC_Decode, 207, 10, 133, 1, // Opcode: VPICKVE2GR_BU ++/* 10797 */ MCD::OPC_FilterValue, 15, 78, 39, 0, // Skip to: 20864 ++/* 10802 */ MCD::OPC_ExtractField, 13, 1, // Inst{13} ... ++/* 10805 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 10815 ++/* 10810 */ MCD::OPC_Decode, 211, 10, 134, 1, // Opcode: VPICKVE2GR_HU ++/* 10815 */ MCD::OPC_FilterValue, 1, 60, 39, 0, // Skip to: 20864 ++/* 10820 */ MCD::OPC_ExtractField, 12, 1, // Inst{12} ... ++/* 10823 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 10833 ++/* 10828 */ MCD::OPC_Decode, 213, 10, 135, 1, // Opcode: VPICKVE2GR_WU ++/* 10833 */ MCD::OPC_FilterValue, 1, 42, 39, 0, // Skip to: 20864 ++/* 10838 */ MCD::OPC_CheckField, 11, 1, 0, 35, 39, 0, // Skip to: 20864 ++/* 10845 */ MCD::OPC_Decode, 209, 10, 136, 1, // Opcode: VPICKVE2GR_DU ++/* 10850 */ MCD::OPC_FilterValue, 189, 1, 66, 0, 0, // Skip to: 10922 ++/* 10856 */ MCD::OPC_ExtractField, 14, 4, // Inst{17-14} ... ++/* 10859 */ MCD::OPC_FilterValue, 14, 5, 0, 0, // Skip to: 10869 ++/* 10864 */ MCD::OPC_Decode, 218, 10, 137, 1, // Opcode: VREPLVEI_B ++/* 10869 */ MCD::OPC_FilterValue, 15, 6, 39, 0, // Skip to: 20864 ++/* 10874 */ MCD::OPC_ExtractField, 13, 1, // Inst{13} ... ++/* 10877 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 10887 ++/* 10882 */ MCD::OPC_Decode, 220, 10, 138, 1, // Opcode: VREPLVEI_H ++/* 10887 */ MCD::OPC_FilterValue, 1, 244, 38, 0, // Skip to: 20864 ++/* 10892 */ MCD::OPC_ExtractField, 12, 1, // Inst{12} ... ++/* 10895 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 10905 ++/* 10900 */ MCD::OPC_Decode, 221, 10, 139, 1, // Opcode: VREPLVEI_W ++/* 10905 */ MCD::OPC_FilterValue, 1, 226, 38, 0, // Skip to: 20864 ++/* 10910 */ MCD::OPC_CheckField, 11, 1, 0, 219, 38, 0, // Skip to: 20864 ++/* 10917 */ MCD::OPC_Decode, 219, 10, 140, 1, // Opcode: VREPLVEI_D ++/* 10922 */ MCD::OPC_FilterValue, 194, 1, 64, 0, 0, // Skip to: 10992 ++/* 10928 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 10931 */ MCD::OPC_FilterValue, 0, 30, 0, 0, // Skip to: 10966 ++/* 10936 */ MCD::OPC_ExtractField, 14, 1, // Inst{14} ... ++/* 10939 */ MCD::OPC_FilterValue, 0, 12, 0, 0, // Skip to: 10956 ++/* 10944 */ MCD::OPC_CheckField, 13, 1, 1, 185, 38, 0, // Skip to: 20864 ++/* 10951 */ MCD::OPC_Decode, 187, 11, 141, 1, // Opcode: VSLLWIL_H_B ++/* 10956 */ MCD::OPC_FilterValue, 1, 175, 38, 0, // Skip to: 20864 ++/* 10961 */ MCD::OPC_Decode, 189, 11, 142, 1, // Opcode: VSLLWIL_W_H ++/* 10966 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 10976 ++/* 10971 */ MCD::OPC_Decode, 185, 11, 143, 1, // Opcode: VSLLWIL_D_W ++/* 10976 */ MCD::OPC_FilterValue, 2, 155, 38, 0, // Skip to: 20864 ++/* 10981 */ MCD::OPC_CheckField, 10, 5, 0, 148, 38, 0, // Skip to: 20864 ++/* 10988 */ MCD::OPC_Decode, 253, 7, 114, // Opcode: VEXTL_Q_D ++/* 10992 */ MCD::OPC_FilterValue, 195, 1, 64, 0, 0, // Skip to: 11062 ++/* 10998 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 11001 */ MCD::OPC_FilterValue, 0, 30, 0, 0, // Skip to: 11036 ++/* 11006 */ MCD::OPC_ExtractField, 14, 1, // Inst{14} ... ++/* 11009 */ MCD::OPC_FilterValue, 0, 12, 0, 0, // Skip to: 11026 ++/* 11014 */ MCD::OPC_CheckField, 13, 1, 1, 115, 38, 0, // Skip to: 20864 ++/* 11021 */ MCD::OPC_Decode, 186, 11, 141, 1, // Opcode: VSLLWIL_HU_BU ++/* 11026 */ MCD::OPC_FilterValue, 1, 105, 38, 0, // Skip to: 20864 ++/* 11031 */ MCD::OPC_Decode, 188, 11, 142, 1, // Opcode: VSLLWIL_WU_HU ++/* 11036 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 11046 ++/* 11041 */ MCD::OPC_Decode, 184, 11, 143, 1, // Opcode: VSLLWIL_DU_WU ++/* 11046 */ MCD::OPC_FilterValue, 2, 85, 38, 0, // Skip to: 20864 ++/* 11051 */ MCD::OPC_CheckField, 10, 5, 0, 78, 38, 0, // Skip to: 20864 ++/* 11058 */ MCD::OPC_Decode, 252, 7, 114, // Opcode: VEXTL_QU_DU ++/* 11062 */ MCD::OPC_FilterValue, 196, 1, 63, 0, 0, // Skip to: 11131 ++/* 11068 */ MCD::OPC_ExtractField, 16, 2, // Inst{17-16} ... ++/* 11071 */ MCD::OPC_FilterValue, 0, 45, 0, 0, // Skip to: 11121 ++/* 11076 */ MCD::OPC_ExtractField, 15, 1, // Inst{15} ... ++/* 11079 */ MCD::OPC_FilterValue, 0, 28, 0, 0, // Skip to: 11112 ++/* 11084 */ MCD::OPC_ExtractField, 14, 1, // Inst{14} ... ++/* 11087 */ MCD::OPC_FilterValue, 0, 11, 0, 0, // Skip to: 11103 ++/* 11092 */ MCD::OPC_CheckField, 13, 1, 1, 37, 38, 0, // Skip to: 20864 ++/* 11099 */ MCD::OPC_Decode, 187, 7, 126, // Opcode: VBITCLRI_B ++/* 11103 */ MCD::OPC_FilterValue, 1, 28, 38, 0, // Skip to: 20864 ++/* 11108 */ MCD::OPC_Decode, 189, 7, 127, // Opcode: VBITCLRI_H ++/* 11112 */ MCD::OPC_FilterValue, 1, 19, 38, 0, // Skip to: 20864 ++/* 11117 */ MCD::OPC_Decode, 190, 7, 107, // Opcode: VBITCLRI_W ++/* 11121 */ MCD::OPC_FilterValue, 1, 10, 38, 0, // Skip to: 20864 ++/* 11126 */ MCD::OPC_Decode, 188, 7, 128, 1, // Opcode: VBITCLRI_D ++/* 11131 */ MCD::OPC_FilterValue, 197, 1, 63, 0, 0, // Skip to: 11200 ++/* 11137 */ MCD::OPC_ExtractField, 16, 2, // Inst{17-16} ... ++/* 11140 */ MCD::OPC_FilterValue, 0, 45, 0, 0, // Skip to: 11190 ++/* 11145 */ MCD::OPC_ExtractField, 15, 1, // Inst{15} ... ++/* 11148 */ MCD::OPC_FilterValue, 0, 28, 0, 0, // Skip to: 11181 ++/* 11153 */ MCD::OPC_ExtractField, 14, 1, // Inst{14} ... ++/* 11156 */ MCD::OPC_FilterValue, 0, 11, 0, 0, // Skip to: 11172 ++/* 11161 */ MCD::OPC_CheckField, 13, 1, 1, 224, 37, 0, // Skip to: 20864 ++/* 11168 */ MCD::OPC_Decode, 206, 7, 126, // Opcode: VBITSETI_B ++/* 11172 */ MCD::OPC_FilterValue, 1, 215, 37, 0, // Skip to: 20864 ++/* 11177 */ MCD::OPC_Decode, 208, 7, 127, // Opcode: VBITSETI_H ++/* 11181 */ MCD::OPC_FilterValue, 1, 206, 37, 0, // Skip to: 20864 ++/* 11186 */ MCD::OPC_Decode, 209, 7, 107, // Opcode: VBITSETI_W ++/* 11190 */ MCD::OPC_FilterValue, 1, 197, 37, 0, // Skip to: 20864 ++/* 11195 */ MCD::OPC_Decode, 207, 7, 128, 1, // Opcode: VBITSETI_D ++/* 11200 */ MCD::OPC_FilterValue, 198, 1, 63, 0, 0, // Skip to: 11269 ++/* 11206 */ MCD::OPC_ExtractField, 16, 2, // Inst{17-16} ... ++/* 11209 */ MCD::OPC_FilterValue, 0, 45, 0, 0, // Skip to: 11259 ++/* 11214 */ MCD::OPC_ExtractField, 15, 1, // Inst{15} ... ++/* 11217 */ MCD::OPC_FilterValue, 0, 28, 0, 0, // Skip to: 11250 ++/* 11222 */ MCD::OPC_ExtractField, 14, 1, // Inst{14} ... ++/* 11225 */ MCD::OPC_FilterValue, 0, 11, 0, 0, // Skip to: 11241 ++/* 11230 */ MCD::OPC_CheckField, 13, 1, 1, 155, 37, 0, // Skip to: 20864 ++/* 11237 */ MCD::OPC_Decode, 195, 7, 126, // Opcode: VBITREVI_B ++/* 11241 */ MCD::OPC_FilterValue, 1, 146, 37, 0, // Skip to: 20864 ++/* 11246 */ MCD::OPC_Decode, 197, 7, 127, // Opcode: VBITREVI_H ++/* 11250 */ MCD::OPC_FilterValue, 1, 137, 37, 0, // Skip to: 20864 ++/* 11255 */ MCD::OPC_Decode, 198, 7, 107, // Opcode: VBITREVI_W ++/* 11259 */ MCD::OPC_FilterValue, 1, 128, 37, 0, // Skip to: 20864 ++/* 11264 */ MCD::OPC_Decode, 196, 7, 128, 1, // Opcode: VBITREVI_D ++/* 11269 */ MCD::OPC_FilterValue, 201, 1, 63, 0, 0, // Skip to: 11338 ++/* 11275 */ MCD::OPC_ExtractField, 16, 2, // Inst{17-16} ... ++/* 11278 */ MCD::OPC_FilterValue, 0, 45, 0, 0, // Skip to: 11328 ++/* 11283 */ MCD::OPC_ExtractField, 15, 1, // Inst{15} ... ++/* 11286 */ MCD::OPC_FilterValue, 0, 28, 0, 0, // Skip to: 11319 ++/* 11291 */ MCD::OPC_ExtractField, 14, 1, // Inst{14} ... ++/* 11294 */ MCD::OPC_FilterValue, 0, 11, 0, 0, // Skip to: 11310 ++/* 11299 */ MCD::OPC_CheckField, 13, 1, 1, 86, 37, 0, // Skip to: 20864 ++/* 11306 */ MCD::OPC_Decode, 242, 10, 126, // Opcode: VSAT_B ++/* 11310 */ MCD::OPC_FilterValue, 1, 77, 37, 0, // Skip to: 20864 ++/* 11315 */ MCD::OPC_Decode, 246, 10, 127, // Opcode: VSAT_H ++/* 11319 */ MCD::OPC_FilterValue, 1, 68, 37, 0, // Skip to: 20864 ++/* 11324 */ MCD::OPC_Decode, 248, 10, 107, // Opcode: VSAT_W ++/* 11328 */ MCD::OPC_FilterValue, 1, 59, 37, 0, // Skip to: 20864 ++/* 11333 */ MCD::OPC_Decode, 244, 10, 128, 1, // Opcode: VSAT_D ++/* 11338 */ MCD::OPC_FilterValue, 202, 1, 63, 0, 0, // Skip to: 11407 ++/* 11344 */ MCD::OPC_ExtractField, 16, 2, // Inst{17-16} ... ++/* 11347 */ MCD::OPC_FilterValue, 0, 45, 0, 0, // Skip to: 11397 ++/* 11352 */ MCD::OPC_ExtractField, 15, 1, // Inst{15} ... ++/* 11355 */ MCD::OPC_FilterValue, 0, 28, 0, 0, // Skip to: 11388 ++/* 11360 */ MCD::OPC_ExtractField, 14, 1, // Inst{14} ... ++/* 11363 */ MCD::OPC_FilterValue, 0, 11, 0, 0, // Skip to: 11379 ++/* 11368 */ MCD::OPC_CheckField, 13, 1, 1, 17, 37, 0, // Skip to: 20864 ++/* 11375 */ MCD::OPC_Decode, 243, 10, 126, // Opcode: VSAT_BU ++/* 11379 */ MCD::OPC_FilterValue, 1, 8, 37, 0, // Skip to: 20864 ++/* 11384 */ MCD::OPC_Decode, 247, 10, 127, // Opcode: VSAT_HU ++/* 11388 */ MCD::OPC_FilterValue, 1, 255, 36, 0, // Skip to: 20864 ++/* 11393 */ MCD::OPC_Decode, 249, 10, 107, // Opcode: VSAT_WU ++/* 11397 */ MCD::OPC_FilterValue, 1, 246, 36, 0, // Skip to: 20864 ++/* 11402 */ MCD::OPC_Decode, 245, 10, 128, 1, // Opcode: VSAT_DU ++/* 11407 */ MCD::OPC_FilterValue, 203, 1, 63, 0, 0, // Skip to: 11476 ++/* 11413 */ MCD::OPC_ExtractField, 16, 2, // Inst{17-16} ... ++/* 11416 */ MCD::OPC_FilterValue, 0, 45, 0, 0, // Skip to: 11466 ++/* 11421 */ MCD::OPC_ExtractField, 15, 1, // Inst{15} ... ++/* 11424 */ MCD::OPC_FilterValue, 0, 28, 0, 0, // Skip to: 11457 ++/* 11429 */ MCD::OPC_ExtractField, 14, 1, // Inst{14} ... ++/* 11432 */ MCD::OPC_FilterValue, 0, 11, 0, 0, // Skip to: 11448 ++/* 11437 */ MCD::OPC_CheckField, 13, 1, 1, 204, 36, 0, // Skip to: 20864 ++/* 11444 */ MCD::OPC_Decode, 180, 11, 126, // Opcode: VSLLI_B ++/* 11448 */ MCD::OPC_FilterValue, 1, 195, 36, 0, // Skip to: 20864 ++/* 11453 */ MCD::OPC_Decode, 182, 11, 127, // Opcode: VSLLI_H ++/* 11457 */ MCD::OPC_FilterValue, 1, 186, 36, 0, // Skip to: 20864 ++/* 11462 */ MCD::OPC_Decode, 183, 11, 107, // Opcode: VSLLI_W ++/* 11466 */ MCD::OPC_FilterValue, 1, 177, 36, 0, // Skip to: 20864 ++/* 11471 */ MCD::OPC_Decode, 181, 11, 128, 1, // Opcode: VSLLI_D ++/* 11476 */ MCD::OPC_FilterValue, 204, 1, 63, 0, 0, // Skip to: 11545 ++/* 11482 */ MCD::OPC_ExtractField, 16, 2, // Inst{17-16} ... ++/* 11485 */ MCD::OPC_FilterValue, 0, 45, 0, 0, // Skip to: 11535 ++/* 11490 */ MCD::OPC_ExtractField, 15, 1, // Inst{15} ... ++/* 11493 */ MCD::OPC_FilterValue, 0, 28, 0, 0, // Skip to: 11526 ++/* 11498 */ MCD::OPC_ExtractField, 14, 1, // Inst{14} ... ++/* 11501 */ MCD::OPC_FilterValue, 0, 11, 0, 0, // Skip to: 11517 ++/* 11506 */ MCD::OPC_CheckField, 13, 1, 1, 135, 36, 0, // Skip to: 20864 ++/* 11513 */ MCD::OPC_Decode, 252, 11, 126, // Opcode: VSRLI_B ++/* 11517 */ MCD::OPC_FilterValue, 1, 126, 36, 0, // Skip to: 20864 ++/* 11522 */ MCD::OPC_Decode, 254, 11, 127, // Opcode: VSRLI_H ++/* 11526 */ MCD::OPC_FilterValue, 1, 117, 36, 0, // Skip to: 20864 ++/* 11531 */ MCD::OPC_Decode, 255, 11, 107, // Opcode: VSRLI_W ++/* 11535 */ MCD::OPC_FilterValue, 1, 108, 36, 0, // Skip to: 20864 ++/* 11540 */ MCD::OPC_Decode, 253, 11, 128, 1, // Opcode: VSRLI_D ++/* 11545 */ MCD::OPC_FilterValue, 205, 1, 63, 0, 0, // Skip to: 11614 ++/* 11551 */ MCD::OPC_ExtractField, 16, 2, // Inst{17-16} ... ++/* 11554 */ MCD::OPC_FilterValue, 0, 45, 0, 0, // Skip to: 11604 ++/* 11559 */ MCD::OPC_ExtractField, 15, 1, // Inst{15} ... ++/* 11562 */ MCD::OPC_FilterValue, 0, 28, 0, 0, // Skip to: 11595 ++/* 11567 */ MCD::OPC_ExtractField, 14, 1, // Inst{14} ... ++/* 11570 */ MCD::OPC_FilterValue, 0, 11, 0, 0, // Skip to: 11586 ++/* 11575 */ MCD::OPC_CheckField, 13, 1, 1, 66, 36, 0, // Skip to: 20864 ++/* 11582 */ MCD::OPC_Decode, 218, 11, 126, // Opcode: VSRAI_B ++/* 11586 */ MCD::OPC_FilterValue, 1, 57, 36, 0, // Skip to: 20864 ++/* 11591 */ MCD::OPC_Decode, 222, 11, 127, // Opcode: VSRAI_H ++/* 11595 */ MCD::OPC_FilterValue, 1, 48, 36, 0, // Skip to: 20864 ++/* 11600 */ MCD::OPC_Decode, 224, 11, 107, // Opcode: VSRAI_W ++/* 11604 */ MCD::OPC_FilterValue, 1, 39, 36, 0, // Skip to: 20864 ++/* 11609 */ MCD::OPC_Decode, 220, 11, 128, 1, // Opcode: VSRAI_D ++/* 11614 */ MCD::OPC_FilterValue, 208, 1, 65, 0, 0, // Skip to: 11685 ++/* 11620 */ MCD::OPC_ExtractField, 17, 1, // Inst{17} ... ++/* 11623 */ MCD::OPC_FilterValue, 0, 47, 0, 0, // Skip to: 11675 ++/* 11628 */ MCD::OPC_ExtractField, 16, 1, // Inst{16} ... ++/* 11631 */ MCD::OPC_FilterValue, 0, 29, 0, 0, // Skip to: 11665 ++/* 11636 */ MCD::OPC_ExtractField, 15, 1, // Inst{15} ... ++/* 11639 */ MCD::OPC_FilterValue, 0, 12, 0, 0, // Skip to: 11656 ++/* 11644 */ MCD::OPC_CheckField, 14, 1, 1, 253, 35, 0, // Skip to: 20864 ++/* 11651 */ MCD::OPC_Decode, 128, 12, 144, 1, // Opcode: VSRLNI_B_H ++/* 11656 */ MCD::OPC_FilterValue, 1, 243, 35, 0, // Skip to: 20864 ++/* 11661 */ MCD::OPC_Decode, 130, 12, 110, // Opcode: VSRLNI_H_W ++/* 11665 */ MCD::OPC_FilterValue, 1, 234, 35, 0, // Skip to: 20864 ++/* 11670 */ MCD::OPC_Decode, 131, 12, 145, 1, // Opcode: VSRLNI_W_D ++/* 11675 */ MCD::OPC_FilterValue, 1, 224, 35, 0, // Skip to: 20864 ++/* 11680 */ MCD::OPC_Decode, 129, 12, 146, 1, // Opcode: VSRLNI_D_Q ++/* 11685 */ MCD::OPC_FilterValue, 209, 1, 65, 0, 0, // Skip to: 11756 ++/* 11691 */ MCD::OPC_ExtractField, 17, 1, // Inst{17} ... ++/* 11694 */ MCD::OPC_FilterValue, 0, 47, 0, 0, // Skip to: 11746 ++/* 11699 */ MCD::OPC_ExtractField, 16, 1, // Inst{16} ... ++/* 11702 */ MCD::OPC_FilterValue, 0, 29, 0, 0, // Skip to: 11736 ++/* 11707 */ MCD::OPC_ExtractField, 15, 1, // Inst{15} ... ++/* 11710 */ MCD::OPC_FilterValue, 0, 12, 0, 0, // Skip to: 11727 ++/* 11715 */ MCD::OPC_CheckField, 14, 1, 1, 182, 35, 0, // Skip to: 20864 ++/* 11722 */ MCD::OPC_Decode, 139, 12, 144, 1, // Opcode: VSRLRNI_B_H ++/* 11727 */ MCD::OPC_FilterValue, 1, 172, 35, 0, // Skip to: 20864 ++/* 11732 */ MCD::OPC_Decode, 141, 12, 110, // Opcode: VSRLRNI_H_W ++/* 11736 */ MCD::OPC_FilterValue, 1, 163, 35, 0, // Skip to: 20864 ++/* 11741 */ MCD::OPC_Decode, 142, 12, 145, 1, // Opcode: VSRLRNI_W_D ++/* 11746 */ MCD::OPC_FilterValue, 1, 153, 35, 0, // Skip to: 20864 ++/* 11751 */ MCD::OPC_Decode, 140, 12, 146, 1, // Opcode: VSRLRNI_D_Q ++/* 11756 */ MCD::OPC_FilterValue, 210, 1, 65, 0, 0, // Skip to: 11827 ++/* 11762 */ MCD::OPC_ExtractField, 17, 1, // Inst{17} ... ++/* 11765 */ MCD::OPC_FilterValue, 0, 47, 0, 0, // Skip to: 11817 ++/* 11770 */ MCD::OPC_ExtractField, 16, 1, // Inst{16} ... ++/* 11773 */ MCD::OPC_FilterValue, 0, 29, 0, 0, // Skip to: 11807 ++/* 11778 */ MCD::OPC_ExtractField, 15, 1, // Inst{15} ... ++/* 11781 */ MCD::OPC_FilterValue, 0, 12, 0, 0, // Skip to: 11798 ++/* 11786 */ MCD::OPC_CheckField, 14, 1, 1, 111, 35, 0, // Skip to: 20864 ++/* 11793 */ MCD::OPC_Decode, 183, 12, 144, 1, // Opcode: VSSRLNI_B_H ++/* 11798 */ MCD::OPC_FilterValue, 1, 101, 35, 0, // Skip to: 20864 ++/* 11803 */ MCD::OPC_Decode, 187, 12, 110, // Opcode: VSSRLNI_H_W ++/* 11807 */ MCD::OPC_FilterValue, 1, 92, 35, 0, // Skip to: 20864 ++/* 11812 */ MCD::OPC_Decode, 189, 12, 145, 1, // Opcode: VSSRLNI_W_D ++/* 11817 */ MCD::OPC_FilterValue, 1, 82, 35, 0, // Skip to: 20864 ++/* 11822 */ MCD::OPC_Decode, 185, 12, 146, 1, // Opcode: VSSRLNI_D_Q ++/* 11827 */ MCD::OPC_FilterValue, 211, 1, 65, 0, 0, // Skip to: 11898 ++/* 11833 */ MCD::OPC_ExtractField, 17, 1, // Inst{17} ... ++/* 11836 */ MCD::OPC_FilterValue, 0, 47, 0, 0, // Skip to: 11888 ++/* 11841 */ MCD::OPC_ExtractField, 16, 1, // Inst{16} ... ++/* 11844 */ MCD::OPC_FilterValue, 0, 29, 0, 0, // Skip to: 11878 ++/* 11849 */ MCD::OPC_ExtractField, 15, 1, // Inst{15} ... ++/* 11852 */ MCD::OPC_FilterValue, 0, 12, 0, 0, // Skip to: 11869 ++/* 11857 */ MCD::OPC_CheckField, 14, 1, 1, 40, 35, 0, // Skip to: 20864 ++/* 11864 */ MCD::OPC_Decode, 182, 12, 144, 1, // Opcode: VSSRLNI_BU_H ++/* 11869 */ MCD::OPC_FilterValue, 1, 30, 35, 0, // Skip to: 20864 ++/* 11874 */ MCD::OPC_Decode, 186, 12, 110, // Opcode: VSSRLNI_HU_W ++/* 11878 */ MCD::OPC_FilterValue, 1, 21, 35, 0, // Skip to: 20864 ++/* 11883 */ MCD::OPC_Decode, 188, 12, 145, 1, // Opcode: VSSRLNI_WU_D ++/* 11888 */ MCD::OPC_FilterValue, 1, 11, 35, 0, // Skip to: 20864 ++/* 11893 */ MCD::OPC_Decode, 184, 12, 146, 1, // Opcode: VSSRLNI_DU_Q ++/* 11898 */ MCD::OPC_FilterValue, 212, 1, 65, 0, 0, // Skip to: 11969 ++/* 11904 */ MCD::OPC_ExtractField, 17, 1, // Inst{17} ... ++/* 11907 */ MCD::OPC_FilterValue, 0, 47, 0, 0, // Skip to: 11959 ++/* 11912 */ MCD::OPC_ExtractField, 16, 1, // Inst{16} ... ++/* 11915 */ MCD::OPC_FilterValue, 0, 29, 0, 0, // Skip to: 11949 ++/* 11920 */ MCD::OPC_ExtractField, 15, 1, // Inst{15} ... ++/* 11923 */ MCD::OPC_FilterValue, 0, 12, 0, 0, // Skip to: 11940 ++/* 11928 */ MCD::OPC_CheckField, 14, 1, 1, 225, 34, 0, // Skip to: 20864 ++/* 11935 */ MCD::OPC_Decode, 197, 12, 144, 1, // Opcode: VSSRLRNI_B_H ++/* 11940 */ MCD::OPC_FilterValue, 1, 215, 34, 0, // Skip to: 20864 ++/* 11945 */ MCD::OPC_Decode, 201, 12, 110, // Opcode: VSSRLRNI_H_W ++/* 11949 */ MCD::OPC_FilterValue, 1, 206, 34, 0, // Skip to: 20864 ++/* 11954 */ MCD::OPC_Decode, 203, 12, 145, 1, // Opcode: VSSRLRNI_W_D ++/* 11959 */ MCD::OPC_FilterValue, 1, 196, 34, 0, // Skip to: 20864 ++/* 11964 */ MCD::OPC_Decode, 199, 12, 146, 1, // Opcode: VSSRLRNI_D_Q ++/* 11969 */ MCD::OPC_FilterValue, 213, 1, 65, 0, 0, // Skip to: 12040 ++/* 11975 */ MCD::OPC_ExtractField, 17, 1, // Inst{17} ... ++/* 11978 */ MCD::OPC_FilterValue, 0, 47, 0, 0, // Skip to: 12030 ++/* 11983 */ MCD::OPC_ExtractField, 16, 1, // Inst{16} ... ++/* 11986 */ MCD::OPC_FilterValue, 0, 29, 0, 0, // Skip to: 12020 ++/* 11991 */ MCD::OPC_ExtractField, 15, 1, // Inst{15} ... ++/* 11994 */ MCD::OPC_FilterValue, 0, 12, 0, 0, // Skip to: 12011 ++/* 11999 */ MCD::OPC_CheckField, 14, 1, 1, 154, 34, 0, // Skip to: 20864 ++/* 12006 */ MCD::OPC_Decode, 196, 12, 144, 1, // Opcode: VSSRLRNI_BU_H ++/* 12011 */ MCD::OPC_FilterValue, 1, 144, 34, 0, // Skip to: 20864 ++/* 12016 */ MCD::OPC_Decode, 200, 12, 110, // Opcode: VSSRLRNI_HU_W ++/* 12020 */ MCD::OPC_FilterValue, 1, 135, 34, 0, // Skip to: 20864 ++/* 12025 */ MCD::OPC_Decode, 202, 12, 145, 1, // Opcode: VSSRLRNI_WU_D ++/* 12030 */ MCD::OPC_FilterValue, 1, 125, 34, 0, // Skip to: 20864 ++/* 12035 */ MCD::OPC_Decode, 198, 12, 146, 1, // Opcode: VSSRLRNI_DU_Q ++/* 12040 */ MCD::OPC_FilterValue, 214, 1, 65, 0, 0, // Skip to: 12111 ++/* 12046 */ MCD::OPC_ExtractField, 17, 1, // Inst{17} ... ++/* 12049 */ MCD::OPC_FilterValue, 0, 47, 0, 0, // Skip to: 12101 ++/* 12054 */ MCD::OPC_ExtractField, 16, 1, // Inst{16} ... ++/* 12057 */ MCD::OPC_FilterValue, 0, 29, 0, 0, // Skip to: 12091 ++/* 12062 */ MCD::OPC_ExtractField, 15, 1, // Inst{15} ... ++/* 12065 */ MCD::OPC_FilterValue, 0, 12, 0, 0, // Skip to: 12082 ++/* 12070 */ MCD::OPC_CheckField, 14, 1, 1, 83, 34, 0, // Skip to: 20864 ++/* 12077 */ MCD::OPC_Decode, 226, 11, 144, 1, // Opcode: VSRANI_B_H ++/* 12082 */ MCD::OPC_FilterValue, 1, 73, 34, 0, // Skip to: 20864 ++/* 12087 */ MCD::OPC_Decode, 228, 11, 110, // Opcode: VSRANI_H_W ++/* 12091 */ MCD::OPC_FilterValue, 1, 64, 34, 0, // Skip to: 20864 ++/* 12096 */ MCD::OPC_Decode, 229, 11, 145, 1, // Opcode: VSRANI_W_D ++/* 12101 */ MCD::OPC_FilterValue, 1, 54, 34, 0, // Skip to: 20864 ++/* 12106 */ MCD::OPC_Decode, 227, 11, 146, 1, // Opcode: VSRANI_D_Q ++/* 12111 */ MCD::OPC_FilterValue, 215, 1, 65, 0, 0, // Skip to: 12182 ++/* 12117 */ MCD::OPC_ExtractField, 17, 1, // Inst{17} ... ++/* 12120 */ MCD::OPC_FilterValue, 0, 47, 0, 0, // Skip to: 12172 ++/* 12125 */ MCD::OPC_ExtractField, 16, 1, // Inst{16} ... ++/* 12128 */ MCD::OPC_FilterValue, 0, 29, 0, 0, // Skip to: 12162 ++/* 12133 */ MCD::OPC_ExtractField, 15, 1, // Inst{15} ... ++/* 12136 */ MCD::OPC_FilterValue, 0, 12, 0, 0, // Skip to: 12153 ++/* 12141 */ MCD::OPC_CheckField, 14, 1, 1, 12, 34, 0, // Skip to: 20864 ++/* 12148 */ MCD::OPC_Decode, 237, 11, 144, 1, // Opcode: VSRARNI_B_H ++/* 12153 */ MCD::OPC_FilterValue, 1, 2, 34, 0, // Skip to: 20864 ++/* 12158 */ MCD::OPC_Decode, 239, 11, 110, // Opcode: VSRARNI_H_W ++/* 12162 */ MCD::OPC_FilterValue, 1, 249, 33, 0, // Skip to: 20864 ++/* 12167 */ MCD::OPC_Decode, 240, 11, 145, 1, // Opcode: VSRARNI_W_D ++/* 12172 */ MCD::OPC_FilterValue, 1, 239, 33, 0, // Skip to: 20864 ++/* 12177 */ MCD::OPC_Decode, 238, 11, 146, 1, // Opcode: VSRARNI_D_Q ++/* 12182 */ MCD::OPC_FilterValue, 216, 1, 65, 0, 0, // Skip to: 12253 ++/* 12188 */ MCD::OPC_ExtractField, 17, 1, // Inst{17} ... ++/* 12191 */ MCD::OPC_FilterValue, 0, 47, 0, 0, // Skip to: 12243 ++/* 12196 */ MCD::OPC_ExtractField, 16, 1, // Inst{16} ... ++/* 12199 */ MCD::OPC_FilterValue, 0, 29, 0, 0, // Skip to: 12233 ++/* 12204 */ MCD::OPC_ExtractField, 15, 1, // Inst{15} ... ++/* 12207 */ MCD::OPC_FilterValue, 0, 12, 0, 0, // Skip to: 12224 ++/* 12212 */ MCD::OPC_CheckField, 14, 1, 1, 197, 33, 0, // Skip to: 20864 ++/* 12219 */ MCD::OPC_Decode, 155, 12, 144, 1, // Opcode: VSSRANI_B_H ++/* 12224 */ MCD::OPC_FilterValue, 1, 187, 33, 0, // Skip to: 20864 ++/* 12229 */ MCD::OPC_Decode, 159, 12, 110, // Opcode: VSSRANI_H_W ++/* 12233 */ MCD::OPC_FilterValue, 1, 178, 33, 0, // Skip to: 20864 ++/* 12238 */ MCD::OPC_Decode, 161, 12, 145, 1, // Opcode: VSSRANI_W_D ++/* 12243 */ MCD::OPC_FilterValue, 1, 168, 33, 0, // Skip to: 20864 ++/* 12248 */ MCD::OPC_Decode, 157, 12, 146, 1, // Opcode: VSSRANI_D_Q ++/* 12253 */ MCD::OPC_FilterValue, 217, 1, 65, 0, 0, // Skip to: 12324 ++/* 12259 */ MCD::OPC_ExtractField, 17, 1, // Inst{17} ... ++/* 12262 */ MCD::OPC_FilterValue, 0, 47, 0, 0, // Skip to: 12314 ++/* 12267 */ MCD::OPC_ExtractField, 16, 1, // Inst{16} ... ++/* 12270 */ MCD::OPC_FilterValue, 0, 29, 0, 0, // Skip to: 12304 ++/* 12275 */ MCD::OPC_ExtractField, 15, 1, // Inst{15} ... ++/* 12278 */ MCD::OPC_FilterValue, 0, 12, 0, 0, // Skip to: 12295 ++/* 12283 */ MCD::OPC_CheckField, 14, 1, 1, 126, 33, 0, // Skip to: 20864 ++/* 12290 */ MCD::OPC_Decode, 154, 12, 144, 1, // Opcode: VSSRANI_BU_H ++/* 12295 */ MCD::OPC_FilterValue, 1, 116, 33, 0, // Skip to: 20864 ++/* 12300 */ MCD::OPC_Decode, 158, 12, 110, // Opcode: VSSRANI_HU_W ++/* 12304 */ MCD::OPC_FilterValue, 1, 107, 33, 0, // Skip to: 20864 ++/* 12309 */ MCD::OPC_Decode, 160, 12, 145, 1, // Opcode: VSSRANI_WU_D ++/* 12314 */ MCD::OPC_FilterValue, 1, 97, 33, 0, // Skip to: 20864 ++/* 12319 */ MCD::OPC_Decode, 156, 12, 146, 1, // Opcode: VSSRANI_DU_Q ++/* 12324 */ MCD::OPC_FilterValue, 218, 1, 65, 0, 0, // Skip to: 12395 ++/* 12330 */ MCD::OPC_ExtractField, 17, 1, // Inst{17} ... ++/* 12333 */ MCD::OPC_FilterValue, 0, 47, 0, 0, // Skip to: 12385 ++/* 12338 */ MCD::OPC_ExtractField, 16, 1, // Inst{16} ... ++/* 12341 */ MCD::OPC_FilterValue, 0, 29, 0, 0, // Skip to: 12375 ++/* 12346 */ MCD::OPC_ExtractField, 15, 1, // Inst{15} ... ++/* 12349 */ MCD::OPC_FilterValue, 0, 12, 0, 0, // Skip to: 12366 ++/* 12354 */ MCD::OPC_CheckField, 14, 1, 1, 55, 33, 0, // Skip to: 20864 ++/* 12361 */ MCD::OPC_Decode, 169, 12, 144, 1, // Opcode: VSSRARNI_B_H ++/* 12366 */ MCD::OPC_FilterValue, 1, 45, 33, 0, // Skip to: 20864 ++/* 12371 */ MCD::OPC_Decode, 173, 12, 110, // Opcode: VSSRARNI_H_W ++/* 12375 */ MCD::OPC_FilterValue, 1, 36, 33, 0, // Skip to: 20864 ++/* 12380 */ MCD::OPC_Decode, 175, 12, 145, 1, // Opcode: VSSRARNI_W_D ++/* 12385 */ MCD::OPC_FilterValue, 1, 26, 33, 0, // Skip to: 20864 ++/* 12390 */ MCD::OPC_Decode, 171, 12, 146, 1, // Opcode: VSSRARNI_D_Q ++/* 12395 */ MCD::OPC_FilterValue, 219, 1, 65, 0, 0, // Skip to: 12466 ++/* 12401 */ MCD::OPC_ExtractField, 17, 1, // Inst{17} ... ++/* 12404 */ MCD::OPC_FilterValue, 0, 47, 0, 0, // Skip to: 12456 ++/* 12409 */ MCD::OPC_ExtractField, 16, 1, // Inst{16} ... ++/* 12412 */ MCD::OPC_FilterValue, 0, 29, 0, 0, // Skip to: 12446 ++/* 12417 */ MCD::OPC_ExtractField, 15, 1, // Inst{15} ... ++/* 12420 */ MCD::OPC_FilterValue, 0, 12, 0, 0, // Skip to: 12437 ++/* 12425 */ MCD::OPC_CheckField, 14, 1, 1, 240, 32, 0, // Skip to: 20864 ++/* 12432 */ MCD::OPC_Decode, 168, 12, 144, 1, // Opcode: VSSRARNI_BU_H ++/* 12437 */ MCD::OPC_FilterValue, 1, 230, 32, 0, // Skip to: 20864 ++/* 12442 */ MCD::OPC_Decode, 172, 12, 110, // Opcode: VSSRARNI_HU_W ++/* 12446 */ MCD::OPC_FilterValue, 1, 221, 32, 0, // Skip to: 20864 ++/* 12451 */ MCD::OPC_Decode, 174, 12, 145, 1, // Opcode: VSSRARNI_WU_D ++/* 12456 */ MCD::OPC_FilterValue, 1, 211, 32, 0, // Skip to: 20864 ++/* 12461 */ MCD::OPC_Decode, 170, 12, 146, 1, // Opcode: VSSRARNI_DU_Q ++/* 12466 */ MCD::OPC_FilterValue, 224, 1, 5, 0, 0, // Skip to: 12477 ++/* 12472 */ MCD::OPC_Decode, 255, 7, 147, 1, // Opcode: VEXTRINS_D ++/* 12477 */ MCD::OPC_FilterValue, 225, 1, 5, 0, 0, // Skip to: 12488 ++/* 12483 */ MCD::OPC_Decode, 129, 8, 148, 1, // Opcode: VEXTRINS_W ++/* 12488 */ MCD::OPC_FilterValue, 226, 1, 5, 0, 0, // Skip to: 12499 ++/* 12494 */ MCD::OPC_Decode, 128, 8, 149, 1, // Opcode: VEXTRINS_H ++/* 12499 */ MCD::OPC_FilterValue, 227, 1, 5, 0, 0, // Skip to: 12510 ++/* 12505 */ MCD::OPC_Decode, 254, 7, 150, 1, // Opcode: VEXTRINS_B ++/* 12510 */ MCD::OPC_FilterValue, 228, 1, 5, 0, 0, // Skip to: 12521 ++/* 12516 */ MCD::OPC_Decode, 144, 11, 151, 1, // Opcode: VSHUF4I_B ++/* 12521 */ MCD::OPC_FilterValue, 229, 1, 5, 0, 0, // Skip to: 12532 ++/* 12527 */ MCD::OPC_Decode, 146, 11, 152, 1, // Opcode: VSHUF4I_H ++/* 12532 */ MCD::OPC_FilterValue, 230, 1, 5, 0, 0, // Skip to: 12543 ++/* 12538 */ MCD::OPC_Decode, 147, 11, 153, 1, // Opcode: VSHUF4I_W ++/* 12543 */ MCD::OPC_FilterValue, 231, 1, 5, 0, 0, // Skip to: 12554 ++/* 12549 */ MCD::OPC_Decode, 145, 11, 147, 1, // Opcode: VSHUF4I_D ++/* 12554 */ MCD::OPC_FilterValue, 241, 1, 5, 0, 0, // Skip to: 12565 ++/* 12560 */ MCD::OPC_Decode, 203, 7, 150, 1, // Opcode: VBITSELI_B ++/* 12565 */ MCD::OPC_FilterValue, 244, 1, 5, 0, 0, // Skip to: 12576 ++/* 12571 */ MCD::OPC_Decode, 167, 7, 151, 1, // Opcode: VANDI_B ++/* 12576 */ MCD::OPC_FilterValue, 245, 1, 5, 0, 0, // Skip to: 12587 ++/* 12582 */ MCD::OPC_Decode, 182, 10, 151, 1, // Opcode: VORI_B ++/* 12587 */ MCD::OPC_FilterValue, 246, 1, 5, 0, 0, // Skip to: 12598 ++/* 12593 */ MCD::OPC_Decode, 252, 12, 151, 1, // Opcode: VXORI_B ++/* 12598 */ MCD::OPC_FilterValue, 247, 1, 5, 0, 0, // Skip to: 12609 ++/* 12604 */ MCD::OPC_Decode, 180, 10, 151, 1, // Opcode: VNORI_B ++/* 12609 */ MCD::OPC_FilterValue, 248, 1, 48, 0, 0, // Skip to: 12663 ++/* 12615 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 12618 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 12628 ++/* 12623 */ MCD::OPC_Decode, 166, 9, 154, 1, // Opcode: VLDI_B ++/* 12628 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 12638 ++/* 12633 */ MCD::OPC_Decode, 168, 9, 154, 1, // Opcode: VLDI_H ++/* 12638 */ MCD::OPC_FilterValue, 2, 5, 0, 0, // Skip to: 12648 ++/* 12643 */ MCD::OPC_Decode, 169, 9, 154, 1, // Opcode: VLDI_W ++/* 12648 */ MCD::OPC_FilterValue, 3, 5, 0, 0, // Skip to: 12658 ++/* 12653 */ MCD::OPC_Decode, 167, 9, 154, 1, // Opcode: VLDI_D ++/* 12658 */ MCD::OPC_Decode, 165, 9, 155, 1, // Opcode: VLDI ++/* 12663 */ MCD::OPC_FilterValue, 249, 1, 3, 32, 0, // Skip to: 20864 ++/* 12669 */ MCD::OPC_Decode, 197, 10, 148, 1, // Opcode: VPERMI_W ++/* 12674 */ MCD::OPC_FilterValue, 29, 249, 31, 0, // Skip to: 20864 ++/* 12679 */ MCD::OPC_ExtractField, 18, 8, // Inst{25-18} ... ++/* 12682 */ MCD::OPC_FilterValue, 0, 79, 0, 0, // Skip to: 12766 ++/* 12687 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 12690 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 12700 ++/* 12695 */ MCD::OPC_Decode, 146, 17, 156, 1, // Opcode: XVSEQ_B ++/* 12700 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 12710 ++/* 12705 */ MCD::OPC_Decode, 148, 17, 157, 1, // Opcode: XVSEQ_H ++/* 12710 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 12719 ++/* 12715 */ MCD::OPC_Decode, 149, 17, 52, // Opcode: XVSEQ_W ++/* 12719 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 12728 ++/* 12724 */ MCD::OPC_Decode, 147, 17, 53, // Opcode: XVSEQ_D ++/* 12728 */ MCD::OPC_FilterValue, 4, 5, 0, 0, // Skip to: 12738 ++/* 12733 */ MCD::OPC_Decode, 188, 17, 156, 1, // Opcode: XVSLE_B ++/* 12738 */ MCD::OPC_FilterValue, 5, 5, 0, 0, // Skip to: 12748 ++/* 12743 */ MCD::OPC_Decode, 192, 17, 157, 1, // Opcode: XVSLE_H ++/* 12748 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 12757 ++/* 12753 */ MCD::OPC_Decode, 194, 17, 52, // Opcode: XVSLE_W ++/* 12757 */ MCD::OPC_FilterValue, 7, 166, 31, 0, // Skip to: 20864 ++/* 12762 */ MCD::OPC_Decode, 190, 17, 53, // Opcode: XVSLE_D ++/* 12766 */ MCD::OPC_FilterValue, 1, 79, 0, 0, // Skip to: 12850 ++/* 12771 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 12774 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 12784 ++/* 12779 */ MCD::OPC_Decode, 189, 17, 156, 1, // Opcode: XVSLE_BU ++/* 12784 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 12794 ++/* 12789 */ MCD::OPC_Decode, 193, 17, 157, 1, // Opcode: XVSLE_HU ++/* 12794 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 12803 ++/* 12799 */ MCD::OPC_Decode, 195, 17, 52, // Opcode: XVSLE_WU ++/* 12803 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 12812 ++/* 12808 */ MCD::OPC_Decode, 191, 17, 53, // Opcode: XVSLE_DU ++/* 12812 */ MCD::OPC_FilterValue, 4, 5, 0, 0, // Skip to: 12822 ++/* 12817 */ MCD::OPC_Decode, 230, 17, 156, 1, // Opcode: XVSLT_B ++/* 12822 */ MCD::OPC_FilterValue, 5, 5, 0, 0, // Skip to: 12832 ++/* 12827 */ MCD::OPC_Decode, 234, 17, 157, 1, // Opcode: XVSLT_H ++/* 12832 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 12841 ++/* 12837 */ MCD::OPC_Decode, 236, 17, 52, // Opcode: XVSLT_W ++/* 12841 */ MCD::OPC_FilterValue, 7, 82, 31, 0, // Skip to: 20864 ++/* 12846 */ MCD::OPC_Decode, 232, 17, 53, // Opcode: XVSLT_D ++/* 12850 */ MCD::OPC_FilterValue, 2, 79, 0, 0, // Skip to: 12934 ++/* 12855 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 12858 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 12868 ++/* 12863 */ MCD::OPC_Decode, 231, 17, 156, 1, // Opcode: XVSLT_BU ++/* 12868 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 12878 ++/* 12873 */ MCD::OPC_Decode, 235, 17, 157, 1, // Opcode: XVSLT_HU ++/* 12878 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 12887 ++/* 12883 */ MCD::OPC_Decode, 237, 17, 52, // Opcode: XVSLT_WU ++/* 12887 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 12896 ++/* 12892 */ MCD::OPC_Decode, 233, 17, 53, // Opcode: XVSLT_DU ++/* 12896 */ MCD::OPC_FilterValue, 4, 5, 0, 0, // Skip to: 12906 ++/* 12901 */ MCD::OPC_Decode, 175, 13, 156, 1, // Opcode: XVADD_B ++/* 12906 */ MCD::OPC_FilterValue, 5, 5, 0, 0, // Skip to: 12916 ++/* 12911 */ MCD::OPC_Decode, 177, 13, 157, 1, // Opcode: XVADD_H ++/* 12916 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 12925 ++/* 12921 */ MCD::OPC_Decode, 179, 13, 52, // Opcode: XVADD_W ++/* 12925 */ MCD::OPC_FilterValue, 7, 254, 30, 0, // Skip to: 20864 ++/* 12930 */ MCD::OPC_Decode, 176, 13, 53, // Opcode: XVADD_D ++/* 12934 */ MCD::OPC_FilterValue, 3, 41, 0, 0, // Skip to: 12980 ++/* 12939 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 12942 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 12952 ++/* 12947 */ MCD::OPC_Decode, 147, 19, 156, 1, // Opcode: XVSUB_B ++/* 12952 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 12962 ++/* 12957 */ MCD::OPC_Decode, 149, 19, 157, 1, // Opcode: XVSUB_H ++/* 12962 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 12971 ++/* 12967 */ MCD::OPC_Decode, 151, 19, 52, // Opcode: XVSUB_W ++/* 12971 */ MCD::OPC_FilterValue, 3, 208, 30, 0, // Skip to: 20864 ++/* 12976 */ MCD::OPC_Decode, 148, 19, 53, // Opcode: XVSUB_D ++/* 12980 */ MCD::OPC_FilterValue, 7, 42, 0, 0, // Skip to: 13027 ++/* 12985 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 12988 */ MCD::OPC_FilterValue, 4, 5, 0, 0, // Skip to: 12998 ++/* 12993 */ MCD::OPC_Decode, 154, 13, 158, 1, // Opcode: XVADDWEV_H_B ++/* 12998 */ MCD::OPC_FilterValue, 5, 5, 0, 0, // Skip to: 13008 ++/* 13003 */ MCD::OPC_Decode, 160, 13, 159, 1, // Opcode: XVADDWEV_W_H ++/* 13008 */ MCD::OPC_FilterValue, 6, 5, 0, 0, // Skip to: 13018 ++/* 13013 */ MCD::OPC_Decode, 151, 13, 160, 1, // Opcode: XVADDWEV_D_W ++/* 13018 */ MCD::OPC_FilterValue, 7, 161, 30, 0, // Skip to: 20864 ++/* 13023 */ MCD::OPC_Decode, 157, 13, 53, // Opcode: XVADDWEV_Q_D ++/* 13027 */ MCD::OPC_FilterValue, 8, 81, 0, 0, // Skip to: 13113 ++/* 13032 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 13035 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 13045 ++/* 13040 */ MCD::OPC_Decode, 133, 19, 158, 1, // Opcode: XVSUBWEV_H_B ++/* 13045 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 13055 ++/* 13050 */ MCD::OPC_Decode, 137, 19, 159, 1, // Opcode: XVSUBWEV_W_H ++/* 13055 */ MCD::OPC_FilterValue, 2, 5, 0, 0, // Skip to: 13065 ++/* 13060 */ MCD::OPC_Decode, 131, 19, 160, 1, // Opcode: XVSUBWEV_D_W ++/* 13065 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 13074 ++/* 13070 */ MCD::OPC_Decode, 135, 19, 53, // Opcode: XVSUBWEV_Q_D ++/* 13074 */ MCD::OPC_FilterValue, 4, 5, 0, 0, // Skip to: 13084 ++/* 13079 */ MCD::OPC_Decode, 166, 13, 158, 1, // Opcode: XVADDWOD_H_B ++/* 13084 */ MCD::OPC_FilterValue, 5, 5, 0, 0, // Skip to: 13094 ++/* 13089 */ MCD::OPC_Decode, 172, 13, 159, 1, // Opcode: XVADDWOD_W_H ++/* 13094 */ MCD::OPC_FilterValue, 6, 5, 0, 0, // Skip to: 13104 ++/* 13099 */ MCD::OPC_Decode, 163, 13, 160, 1, // Opcode: XVADDWOD_D_W ++/* 13104 */ MCD::OPC_FilterValue, 7, 75, 30, 0, // Skip to: 20864 ++/* 13109 */ MCD::OPC_Decode, 169, 13, 53, // Opcode: XVADDWOD_Q_D ++/* 13113 */ MCD::OPC_FilterValue, 9, 42, 0, 0, // Skip to: 13160 ++/* 13118 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 13121 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 13131 ++/* 13126 */ MCD::OPC_Decode, 141, 19, 158, 1, // Opcode: XVSUBWOD_H_B ++/* 13131 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 13141 ++/* 13136 */ MCD::OPC_Decode, 145, 19, 159, 1, // Opcode: XVSUBWOD_W_H ++/* 13141 */ MCD::OPC_FilterValue, 2, 5, 0, 0, // Skip to: 13151 ++/* 13146 */ MCD::OPC_Decode, 139, 19, 160, 1, // Opcode: XVSUBWOD_D_W ++/* 13151 */ MCD::OPC_FilterValue, 3, 28, 30, 0, // Skip to: 20864 ++/* 13156 */ MCD::OPC_Decode, 143, 19, 53, // Opcode: XVSUBWOD_Q_D ++/* 13160 */ MCD::OPC_FilterValue, 11, 42, 0, 0, // Skip to: 13207 ++/* 13165 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 13168 */ MCD::OPC_FilterValue, 4, 5, 0, 0, // Skip to: 13178 ++/* 13173 */ MCD::OPC_Decode, 155, 13, 158, 1, // Opcode: XVADDWEV_H_BU ++/* 13178 */ MCD::OPC_FilterValue, 5, 5, 0, 0, // Skip to: 13188 ++/* 13183 */ MCD::OPC_Decode, 161, 13, 159, 1, // Opcode: XVADDWEV_W_HU ++/* 13188 */ MCD::OPC_FilterValue, 6, 5, 0, 0, // Skip to: 13198 ++/* 13193 */ MCD::OPC_Decode, 152, 13, 160, 1, // Opcode: XVADDWEV_D_WU ++/* 13198 */ MCD::OPC_FilterValue, 7, 237, 29, 0, // Skip to: 20864 ++/* 13203 */ MCD::OPC_Decode, 158, 13, 53, // Opcode: XVADDWEV_Q_DU ++/* 13207 */ MCD::OPC_FilterValue, 12, 81, 0, 0, // Skip to: 13293 ++/* 13212 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 13215 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 13225 ++/* 13220 */ MCD::OPC_Decode, 134, 19, 158, 1, // Opcode: XVSUBWEV_H_BU ++/* 13225 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 13235 ++/* 13230 */ MCD::OPC_Decode, 138, 19, 159, 1, // Opcode: XVSUBWEV_W_HU ++/* 13235 */ MCD::OPC_FilterValue, 2, 5, 0, 0, // Skip to: 13245 ++/* 13240 */ MCD::OPC_Decode, 132, 19, 160, 1, // Opcode: XVSUBWEV_D_WU ++/* 13245 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 13254 ++/* 13250 */ MCD::OPC_Decode, 136, 19, 53, // Opcode: XVSUBWEV_Q_DU ++/* 13254 */ MCD::OPC_FilterValue, 4, 5, 0, 0, // Skip to: 13264 ++/* 13259 */ MCD::OPC_Decode, 167, 13, 158, 1, // Opcode: XVADDWOD_H_BU ++/* 13264 */ MCD::OPC_FilterValue, 5, 5, 0, 0, // Skip to: 13274 ++/* 13269 */ MCD::OPC_Decode, 173, 13, 159, 1, // Opcode: XVADDWOD_W_HU ++/* 13274 */ MCD::OPC_FilterValue, 6, 5, 0, 0, // Skip to: 13284 ++/* 13279 */ MCD::OPC_Decode, 164, 13, 160, 1, // Opcode: XVADDWOD_D_WU ++/* 13284 */ MCD::OPC_FilterValue, 7, 151, 29, 0, // Skip to: 20864 ++/* 13289 */ MCD::OPC_Decode, 170, 13, 53, // Opcode: XVADDWOD_Q_DU ++/* 13293 */ MCD::OPC_FilterValue, 13, 42, 0, 0, // Skip to: 13340 ++/* 13298 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 13301 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 13311 ++/* 13306 */ MCD::OPC_Decode, 142, 19, 158, 1, // Opcode: XVSUBWOD_H_BU ++/* 13311 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 13321 ++/* 13316 */ MCD::OPC_Decode, 146, 19, 159, 1, // Opcode: XVSUBWOD_W_HU ++/* 13321 */ MCD::OPC_FilterValue, 2, 5, 0, 0, // Skip to: 13331 ++/* 13326 */ MCD::OPC_Decode, 140, 19, 160, 1, // Opcode: XVSUBWOD_D_WU ++/* 13331 */ MCD::OPC_FilterValue, 3, 104, 29, 0, // Skip to: 20864 ++/* 13336 */ MCD::OPC_Decode, 144, 19, 53, // Opcode: XVSUBWOD_Q_DU ++/* 13340 */ MCD::OPC_FilterValue, 15, 42, 0, 0, // Skip to: 13387 ++/* 13345 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 13348 */ MCD::OPC_FilterValue, 4, 5, 0, 0, // Skip to: 13358 ++/* 13353 */ MCD::OPC_Decode, 156, 13, 158, 1, // Opcode: XVADDWEV_H_BU_B ++/* 13358 */ MCD::OPC_FilterValue, 5, 5, 0, 0, // Skip to: 13368 ++/* 13363 */ MCD::OPC_Decode, 162, 13, 159, 1, // Opcode: XVADDWEV_W_HU_H ++/* 13368 */ MCD::OPC_FilterValue, 6, 5, 0, 0, // Skip to: 13378 ++/* 13373 */ MCD::OPC_Decode, 153, 13, 160, 1, // Opcode: XVADDWEV_D_WU_W ++/* 13378 */ MCD::OPC_FilterValue, 7, 57, 29, 0, // Skip to: 20864 ++/* 13383 */ MCD::OPC_Decode, 159, 13, 53, // Opcode: XVADDWEV_Q_DU_D ++/* 13387 */ MCD::OPC_FilterValue, 16, 42, 0, 0, // Skip to: 13434 ++/* 13392 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 13395 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 13405 ++/* 13400 */ MCD::OPC_Decode, 168, 13, 158, 1, // Opcode: XVADDWOD_H_BU_B ++/* 13405 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 13415 ++/* 13410 */ MCD::OPC_Decode, 174, 13, 159, 1, // Opcode: XVADDWOD_W_HU_H ++/* 13415 */ MCD::OPC_FilterValue, 2, 5, 0, 0, // Skip to: 13425 ++/* 13420 */ MCD::OPC_Decode, 165, 13, 160, 1, // Opcode: XVADDWOD_D_WU_W ++/* 13425 */ MCD::OPC_FilterValue, 3, 10, 29, 0, // Skip to: 20864 ++/* 13430 */ MCD::OPC_Decode, 171, 13, 53, // Opcode: XVADDWOD_Q_DU_D ++/* 13434 */ MCD::OPC_FilterValue, 17, 41, 0, 0, // Skip to: 13480 ++/* 13439 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 13442 */ MCD::OPC_FilterValue, 4, 5, 0, 0, // Skip to: 13452 ++/* 13447 */ MCD::OPC_Decode, 250, 16, 156, 1, // Opcode: XVSADD_B ++/* 13452 */ MCD::OPC_FilterValue, 5, 5, 0, 0, // Skip to: 13462 ++/* 13457 */ MCD::OPC_Decode, 254, 16, 157, 1, // Opcode: XVSADD_H ++/* 13462 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 13471 ++/* 13467 */ MCD::OPC_Decode, 128, 17, 52, // Opcode: XVSADD_W ++/* 13471 */ MCD::OPC_FilterValue, 7, 220, 28, 0, // Skip to: 20864 ++/* 13476 */ MCD::OPC_Decode, 252, 16, 53, // Opcode: XVSADD_D ++/* 13480 */ MCD::OPC_FilterValue, 18, 79, 0, 0, // Skip to: 13564 ++/* 13485 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 13488 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 13498 ++/* 13493 */ MCD::OPC_Decode, 234, 18, 156, 1, // Opcode: XVSSUB_B ++/* 13498 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 13508 ++/* 13503 */ MCD::OPC_Decode, 238, 18, 157, 1, // Opcode: XVSSUB_H ++/* 13508 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 13517 ++/* 13513 */ MCD::OPC_Decode, 240, 18, 52, // Opcode: XVSSUB_W ++/* 13517 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 13526 ++/* 13522 */ MCD::OPC_Decode, 236, 18, 53, // Opcode: XVSSUB_D ++/* 13526 */ MCD::OPC_FilterValue, 4, 5, 0, 0, // Skip to: 13536 ++/* 13531 */ MCD::OPC_Decode, 251, 16, 156, 1, // Opcode: XVSADD_BU ++/* 13536 */ MCD::OPC_FilterValue, 5, 5, 0, 0, // Skip to: 13546 ++/* 13541 */ MCD::OPC_Decode, 255, 16, 157, 1, // Opcode: XVSADD_HU ++/* 13546 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 13555 ++/* 13551 */ MCD::OPC_Decode, 129, 17, 52, // Opcode: XVSADD_WU ++/* 13555 */ MCD::OPC_FilterValue, 7, 136, 28, 0, // Skip to: 20864 ++/* 13560 */ MCD::OPC_Decode, 253, 16, 53, // Opcode: XVSADD_DU ++/* 13564 */ MCD::OPC_FilterValue, 19, 41, 0, 0, // Skip to: 13610 ++/* 13569 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 13572 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 13582 ++/* 13577 */ MCD::OPC_Decode, 235, 18, 156, 1, // Opcode: XVSSUB_BU ++/* 13582 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 13592 ++/* 13587 */ MCD::OPC_Decode, 239, 18, 157, 1, // Opcode: XVSSUB_HU ++/* 13592 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 13601 ++/* 13597 */ MCD::OPC_Decode, 241, 18, 52, // Opcode: XVSSUB_WU ++/* 13601 */ MCD::OPC_FilterValue, 3, 90, 28, 0, // Skip to: 20864 ++/* 13606 */ MCD::OPC_Decode, 237, 18, 53, // Opcode: XVSSUB_DU ++/* 13610 */ MCD::OPC_FilterValue, 21, 81, 0, 0, // Skip to: 13696 ++/* 13615 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 13618 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 13628 ++/* 13623 */ MCD::OPC_Decode, 140, 15, 158, 1, // Opcode: XVHADDW_H_B ++/* 13628 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 13638 ++/* 13633 */ MCD::OPC_Decode, 144, 15, 159, 1, // Opcode: XVHADDW_W_H ++/* 13638 */ MCD::OPC_FilterValue, 2, 5, 0, 0, // Skip to: 13648 ++/* 13643 */ MCD::OPC_Decode, 138, 15, 160, 1, // Opcode: XVHADDW_D_W ++/* 13648 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 13657 ++/* 13653 */ MCD::OPC_Decode, 142, 15, 53, // Opcode: XVHADDW_Q_D ++/* 13657 */ MCD::OPC_FilterValue, 4, 5, 0, 0, // Skip to: 13667 ++/* 13662 */ MCD::OPC_Decode, 149, 15, 158, 1, // Opcode: XVHSUBW_H_B ++/* 13667 */ MCD::OPC_FilterValue, 5, 5, 0, 0, // Skip to: 13677 ++/* 13672 */ MCD::OPC_Decode, 153, 15, 159, 1, // Opcode: XVHSUBW_W_H ++/* 13677 */ MCD::OPC_FilterValue, 6, 5, 0, 0, // Skip to: 13687 ++/* 13682 */ MCD::OPC_Decode, 147, 15, 160, 1, // Opcode: XVHSUBW_D_W ++/* 13687 */ MCD::OPC_FilterValue, 7, 4, 28, 0, // Skip to: 20864 ++/* 13692 */ MCD::OPC_Decode, 151, 15, 53, // Opcode: XVHSUBW_Q_D ++/* 13696 */ MCD::OPC_FilterValue, 22, 81, 0, 0, // Skip to: 13782 ++/* 13701 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 13704 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 13714 ++/* 13709 */ MCD::OPC_Decode, 139, 15, 158, 1, // Opcode: XVHADDW_HU_BU ++/* 13714 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 13724 ++/* 13719 */ MCD::OPC_Decode, 143, 15, 159, 1, // Opcode: XVHADDW_WU_HU ++/* 13724 */ MCD::OPC_FilterValue, 2, 5, 0, 0, // Skip to: 13734 ++/* 13729 */ MCD::OPC_Decode, 137, 15, 160, 1, // Opcode: XVHADDW_DU_WU ++/* 13734 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 13743 ++/* 13739 */ MCD::OPC_Decode, 141, 15, 53, // Opcode: XVHADDW_QU_DU ++/* 13743 */ MCD::OPC_FilterValue, 4, 5, 0, 0, // Skip to: 13753 ++/* 13748 */ MCD::OPC_Decode, 148, 15, 158, 1, // Opcode: XVHSUBW_HU_BU ++/* 13753 */ MCD::OPC_FilterValue, 5, 5, 0, 0, // Skip to: 13763 ++/* 13758 */ MCD::OPC_Decode, 152, 15, 159, 1, // Opcode: XVHSUBW_WU_HU ++/* 13763 */ MCD::OPC_FilterValue, 6, 5, 0, 0, // Skip to: 13773 ++/* 13768 */ MCD::OPC_Decode, 146, 15, 160, 1, // Opcode: XVHSUBW_DU_WU ++/* 13773 */ MCD::OPC_FilterValue, 7, 174, 27, 0, // Skip to: 20864 ++/* 13778 */ MCD::OPC_Decode, 150, 15, 53, // Opcode: XVHSUBW_QU_DU ++/* 13782 */ MCD::OPC_FilterValue, 23, 41, 0, 0, // Skip to: 13828 ++/* 13787 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 13790 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 13800 ++/* 13795 */ MCD::OPC_Decode, 139, 13, 156, 1, // Opcode: XVADDA_B ++/* 13800 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 13810 ++/* 13805 */ MCD::OPC_Decode, 141, 13, 157, 1, // Opcode: XVADDA_H ++/* 13810 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 13819 ++/* 13815 */ MCD::OPC_Decode, 142, 13, 52, // Opcode: XVADDA_W ++/* 13819 */ MCD::OPC_FilterValue, 3, 128, 27, 0, // Skip to: 20864 ++/* 13824 */ MCD::OPC_Decode, 140, 13, 53, // Opcode: XVADDA_D ++/* 13828 */ MCD::OPC_FilterValue, 24, 79, 0, 0, // Skip to: 13912 ++/* 13833 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 13836 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 13846 ++/* 13841 */ MCD::OPC_Decode, 131, 13, 156, 1, // Opcode: XVABSD_B ++/* 13846 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 13856 ++/* 13851 */ MCD::OPC_Decode, 135, 13, 157, 1, // Opcode: XVABSD_H ++/* 13856 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 13865 ++/* 13861 */ MCD::OPC_Decode, 137, 13, 52, // Opcode: XVABSD_W ++/* 13865 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 13874 ++/* 13870 */ MCD::OPC_Decode, 133, 13, 53, // Opcode: XVABSD_D ++/* 13874 */ MCD::OPC_FilterValue, 4, 5, 0, 0, // Skip to: 13884 ++/* 13879 */ MCD::OPC_Decode, 132, 13, 156, 1, // Opcode: XVABSD_BU ++/* 13884 */ MCD::OPC_FilterValue, 5, 5, 0, 0, // Skip to: 13894 ++/* 13889 */ MCD::OPC_Decode, 136, 13, 157, 1, // Opcode: XVABSD_HU ++/* 13894 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 13903 ++/* 13899 */ MCD::OPC_Decode, 138, 13, 52, // Opcode: XVABSD_WU ++/* 13903 */ MCD::OPC_FilterValue, 7, 44, 27, 0, // Skip to: 20864 ++/* 13908 */ MCD::OPC_Decode, 134, 13, 53, // Opcode: XVABSD_DU ++/* 13912 */ MCD::OPC_FilterValue, 25, 79, 0, 0, // Skip to: 13996 ++/* 13917 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 13920 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 13930 ++/* 13925 */ MCD::OPC_Decode, 192, 13, 156, 1, // Opcode: XVAVG_B ++/* 13930 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 13940 ++/* 13935 */ MCD::OPC_Decode, 196, 13, 157, 1, // Opcode: XVAVG_H ++/* 13940 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 13949 ++/* 13945 */ MCD::OPC_Decode, 198, 13, 52, // Opcode: XVAVG_W ++/* 13949 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 13958 ++/* 13954 */ MCD::OPC_Decode, 194, 13, 53, // Opcode: XVAVG_D ++/* 13958 */ MCD::OPC_FilterValue, 4, 5, 0, 0, // Skip to: 13968 ++/* 13963 */ MCD::OPC_Decode, 193, 13, 156, 1, // Opcode: XVAVG_BU ++/* 13968 */ MCD::OPC_FilterValue, 5, 5, 0, 0, // Skip to: 13978 ++/* 13973 */ MCD::OPC_Decode, 197, 13, 157, 1, // Opcode: XVAVG_HU ++/* 13978 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 13987 ++/* 13983 */ MCD::OPC_Decode, 199, 13, 52, // Opcode: XVAVG_WU ++/* 13987 */ MCD::OPC_FilterValue, 7, 216, 26, 0, // Skip to: 20864 ++/* 13992 */ MCD::OPC_Decode, 195, 13, 53, // Opcode: XVAVG_DU ++/* 13996 */ MCD::OPC_FilterValue, 26, 79, 0, 0, // Skip to: 14080 ++/* 14001 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 14004 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 14014 ++/* 14009 */ MCD::OPC_Decode, 184, 13, 156, 1, // Opcode: XVAVGR_B ++/* 14014 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 14024 ++/* 14019 */ MCD::OPC_Decode, 188, 13, 157, 1, // Opcode: XVAVGR_H ++/* 14024 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 14033 ++/* 14029 */ MCD::OPC_Decode, 190, 13, 52, // Opcode: XVAVGR_W ++/* 14033 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 14042 ++/* 14038 */ MCD::OPC_Decode, 186, 13, 53, // Opcode: XVAVGR_D ++/* 14042 */ MCD::OPC_FilterValue, 4, 5, 0, 0, // Skip to: 14052 ++/* 14047 */ MCD::OPC_Decode, 185, 13, 156, 1, // Opcode: XVAVGR_BU ++/* 14052 */ MCD::OPC_FilterValue, 5, 5, 0, 0, // Skip to: 14062 ++/* 14057 */ MCD::OPC_Decode, 189, 13, 157, 1, // Opcode: XVAVGR_HU ++/* 14062 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 14071 ++/* 14067 */ MCD::OPC_Decode, 191, 13, 52, // Opcode: XVAVGR_WU ++/* 14071 */ MCD::OPC_FilterValue, 7, 132, 26, 0, // Skip to: 20864 ++/* 14076 */ MCD::OPC_Decode, 187, 13, 53, // Opcode: XVAVGR_DU ++/* 14080 */ MCD::OPC_FilterValue, 28, 79, 0, 0, // Skip to: 14164 ++/* 14085 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 14088 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 14098 ++/* 14093 */ MCD::OPC_Decode, 224, 15, 156, 1, // Opcode: XVMAX_B ++/* 14098 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 14108 ++/* 14103 */ MCD::OPC_Decode, 228, 15, 157, 1, // Opcode: XVMAX_H ++/* 14108 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 14117 ++/* 14113 */ MCD::OPC_Decode, 230, 15, 52, // Opcode: XVMAX_W ++/* 14117 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 14126 ++/* 14122 */ MCD::OPC_Decode, 226, 15, 53, // Opcode: XVMAX_D ++/* 14126 */ MCD::OPC_FilterValue, 4, 5, 0, 0, // Skip to: 14136 ++/* 14131 */ MCD::OPC_Decode, 248, 15, 156, 1, // Opcode: XVMIN_B ++/* 14136 */ MCD::OPC_FilterValue, 5, 5, 0, 0, // Skip to: 14146 ++/* 14141 */ MCD::OPC_Decode, 252, 15, 157, 1, // Opcode: XVMIN_H ++/* 14146 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 14155 ++/* 14151 */ MCD::OPC_Decode, 254, 15, 52, // Opcode: XVMIN_W ++/* 14155 */ MCD::OPC_FilterValue, 7, 48, 26, 0, // Skip to: 20864 ++/* 14160 */ MCD::OPC_Decode, 250, 15, 53, // Opcode: XVMIN_D ++/* 14164 */ MCD::OPC_FilterValue, 29, 79, 0, 0, // Skip to: 14248 ++/* 14169 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 14172 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 14182 ++/* 14177 */ MCD::OPC_Decode, 225, 15, 156, 1, // Opcode: XVMAX_BU ++/* 14182 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 14192 ++/* 14187 */ MCD::OPC_Decode, 229, 15, 157, 1, // Opcode: XVMAX_HU ++/* 14192 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 14201 ++/* 14197 */ MCD::OPC_Decode, 231, 15, 52, // Opcode: XVMAX_WU ++/* 14201 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 14210 ++/* 14206 */ MCD::OPC_Decode, 227, 15, 53, // Opcode: XVMAX_DU ++/* 14210 */ MCD::OPC_FilterValue, 4, 5, 0, 0, // Skip to: 14220 ++/* 14215 */ MCD::OPC_Decode, 249, 15, 156, 1, // Opcode: XVMIN_BU ++/* 14220 */ MCD::OPC_FilterValue, 5, 5, 0, 0, // Skip to: 14230 ++/* 14225 */ MCD::OPC_Decode, 253, 15, 157, 1, // Opcode: XVMIN_HU ++/* 14230 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 14239 ++/* 14235 */ MCD::OPC_Decode, 255, 15, 52, // Opcode: XVMIN_WU ++/* 14239 */ MCD::OPC_FilterValue, 7, 220, 25, 0, // Skip to: 20864 ++/* 14244 */ MCD::OPC_Decode, 251, 15, 53, // Opcode: XVMIN_DU ++/* 14248 */ MCD::OPC_FilterValue, 33, 79, 0, 0, // Skip to: 14332 ++/* 14253 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 14256 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 14266 ++/* 14261 */ MCD::OPC_Decode, 178, 16, 156, 1, // Opcode: XVMUL_B ++/* 14266 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 14276 ++/* 14271 */ MCD::OPC_Decode, 180, 16, 157, 1, // Opcode: XVMUL_H ++/* 14276 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 14285 ++/* 14281 */ MCD::OPC_Decode, 181, 16, 52, // Opcode: XVMUL_W ++/* 14285 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 14294 ++/* 14290 */ MCD::OPC_Decode, 179, 16, 53, // Opcode: XVMUL_D ++/* 14294 */ MCD::OPC_FilterValue, 4, 5, 0, 0, // Skip to: 14304 ++/* 14299 */ MCD::OPC_Decode, 146, 16, 156, 1, // Opcode: XVMUH_B ++/* 14304 */ MCD::OPC_FilterValue, 5, 5, 0, 0, // Skip to: 14314 ++/* 14309 */ MCD::OPC_Decode, 150, 16, 157, 1, // Opcode: XVMUH_H ++/* 14314 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 14323 ++/* 14319 */ MCD::OPC_Decode, 152, 16, 52, // Opcode: XVMUH_W ++/* 14323 */ MCD::OPC_FilterValue, 7, 136, 25, 0, // Skip to: 20864 ++/* 14328 */ MCD::OPC_Decode, 148, 16, 53, // Opcode: XVMUH_D ++/* 14332 */ MCD::OPC_FilterValue, 34, 41, 0, 0, // Skip to: 14378 ++/* 14337 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 14340 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 14350 ++/* 14345 */ MCD::OPC_Decode, 147, 16, 156, 1, // Opcode: XVMUH_BU ++/* 14350 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 14360 ++/* 14355 */ MCD::OPC_Decode, 151, 16, 157, 1, // Opcode: XVMUH_HU ++/* 14360 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 14369 ++/* 14365 */ MCD::OPC_Decode, 153, 16, 52, // Opcode: XVMUH_WU ++/* 14369 */ MCD::OPC_FilterValue, 3, 90, 25, 0, // Skip to: 20864 ++/* 14374 */ MCD::OPC_Decode, 149, 16, 53, // Opcode: XVMUH_DU ++/* 14378 */ MCD::OPC_FilterValue, 36, 81, 0, 0, // Skip to: 14464 ++/* 14383 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 14386 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 14396 ++/* 14391 */ MCD::OPC_Decode, 157, 16, 158, 1, // Opcode: XVMULWEV_H_B ++/* 14396 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 14406 ++/* 14401 */ MCD::OPC_Decode, 163, 16, 159, 1, // Opcode: XVMULWEV_W_H ++/* 14406 */ MCD::OPC_FilterValue, 2, 5, 0, 0, // Skip to: 14416 ++/* 14411 */ MCD::OPC_Decode, 154, 16, 160, 1, // Opcode: XVMULWEV_D_W ++/* 14416 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 14425 ++/* 14421 */ MCD::OPC_Decode, 160, 16, 53, // Opcode: XVMULWEV_Q_D ++/* 14425 */ MCD::OPC_FilterValue, 4, 5, 0, 0, // Skip to: 14435 ++/* 14430 */ MCD::OPC_Decode, 169, 16, 158, 1, // Opcode: XVMULWOD_H_B ++/* 14435 */ MCD::OPC_FilterValue, 5, 5, 0, 0, // Skip to: 14445 ++/* 14440 */ MCD::OPC_Decode, 175, 16, 159, 1, // Opcode: XVMULWOD_W_H ++/* 14445 */ MCD::OPC_FilterValue, 6, 5, 0, 0, // Skip to: 14455 ++/* 14450 */ MCD::OPC_Decode, 166, 16, 160, 1, // Opcode: XVMULWOD_D_W ++/* 14455 */ MCD::OPC_FilterValue, 7, 4, 25, 0, // Skip to: 20864 ++/* 14460 */ MCD::OPC_Decode, 172, 16, 53, // Opcode: XVMULWOD_Q_D ++/* 14464 */ MCD::OPC_FilterValue, 38, 81, 0, 0, // Skip to: 14550 ++/* 14469 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 14472 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 14482 ++/* 14477 */ MCD::OPC_Decode, 158, 16, 158, 1, // Opcode: XVMULWEV_H_BU ++/* 14482 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 14492 ++/* 14487 */ MCD::OPC_Decode, 164, 16, 159, 1, // Opcode: XVMULWEV_W_HU ++/* 14492 */ MCD::OPC_FilterValue, 2, 5, 0, 0, // Skip to: 14502 ++/* 14497 */ MCD::OPC_Decode, 155, 16, 160, 1, // Opcode: XVMULWEV_D_WU ++/* 14502 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 14511 ++/* 14507 */ MCD::OPC_Decode, 161, 16, 53, // Opcode: XVMULWEV_Q_DU ++/* 14511 */ MCD::OPC_FilterValue, 4, 5, 0, 0, // Skip to: 14521 ++/* 14516 */ MCD::OPC_Decode, 170, 16, 158, 1, // Opcode: XVMULWOD_H_BU ++/* 14521 */ MCD::OPC_FilterValue, 5, 5, 0, 0, // Skip to: 14531 ++/* 14526 */ MCD::OPC_Decode, 176, 16, 159, 1, // Opcode: XVMULWOD_W_HU ++/* 14531 */ MCD::OPC_FilterValue, 6, 5, 0, 0, // Skip to: 14541 ++/* 14536 */ MCD::OPC_Decode, 167, 16, 160, 1, // Opcode: XVMULWOD_D_WU ++/* 14541 */ MCD::OPC_FilterValue, 7, 174, 24, 0, // Skip to: 20864 ++/* 14546 */ MCD::OPC_Decode, 173, 16, 53, // Opcode: XVMULWOD_Q_DU ++/* 14550 */ MCD::OPC_FilterValue, 40, 81, 0, 0, // Skip to: 14636 ++/* 14555 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 14558 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 14568 ++/* 14563 */ MCD::OPC_Decode, 159, 16, 158, 1, // Opcode: XVMULWEV_H_BU_B ++/* 14568 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 14578 ++/* 14573 */ MCD::OPC_Decode, 165, 16, 159, 1, // Opcode: XVMULWEV_W_HU_H ++/* 14578 */ MCD::OPC_FilterValue, 2, 5, 0, 0, // Skip to: 14588 ++/* 14583 */ MCD::OPC_Decode, 156, 16, 160, 1, // Opcode: XVMULWEV_D_WU_W ++/* 14588 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 14597 ++/* 14593 */ MCD::OPC_Decode, 162, 16, 53, // Opcode: XVMULWEV_Q_DU_D ++/* 14597 */ MCD::OPC_FilterValue, 4, 5, 0, 0, // Skip to: 14607 ++/* 14602 */ MCD::OPC_Decode, 171, 16, 158, 1, // Opcode: XVMULWOD_H_BU_B ++/* 14607 */ MCD::OPC_FilterValue, 5, 5, 0, 0, // Skip to: 14617 ++/* 14612 */ MCD::OPC_Decode, 177, 16, 159, 1, // Opcode: XVMULWOD_W_HU_H ++/* 14617 */ MCD::OPC_FilterValue, 6, 5, 0, 0, // Skip to: 14627 ++/* 14622 */ MCD::OPC_Decode, 168, 16, 160, 1, // Opcode: XVMULWOD_D_WU_W ++/* 14627 */ MCD::OPC_FilterValue, 7, 88, 24, 0, // Skip to: 20864 ++/* 14632 */ MCD::OPC_Decode, 174, 16, 53, // Opcode: XVMULWOD_Q_DU_D ++/* 14636 */ MCD::OPC_FilterValue, 42, 83, 0, 0, // Skip to: 14724 ++/* 14641 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 14644 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 14654 ++/* 14649 */ MCD::OPC_Decode, 204, 15, 161, 1, // Opcode: XVMADD_B ++/* 14654 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 14664 ++/* 14659 */ MCD::OPC_Decode, 206, 15, 162, 1, // Opcode: XVMADD_H ++/* 14664 */ MCD::OPC_FilterValue, 2, 5, 0, 0, // Skip to: 14674 ++/* 14669 */ MCD::OPC_Decode, 207, 15, 163, 1, // Opcode: XVMADD_W ++/* 14674 */ MCD::OPC_FilterValue, 3, 5, 0, 0, // Skip to: 14684 ++/* 14679 */ MCD::OPC_Decode, 205, 15, 164, 1, // Opcode: XVMADD_D ++/* 14684 */ MCD::OPC_FilterValue, 4, 5, 0, 0, // Skip to: 14694 ++/* 14689 */ MCD::OPC_Decode, 142, 16, 161, 1, // Opcode: XVMSUB_B ++/* 14694 */ MCD::OPC_FilterValue, 5, 5, 0, 0, // Skip to: 14704 ++/* 14699 */ MCD::OPC_Decode, 144, 16, 162, 1, // Opcode: XVMSUB_H ++/* 14704 */ MCD::OPC_FilterValue, 6, 5, 0, 0, // Skip to: 14714 ++/* 14709 */ MCD::OPC_Decode, 145, 16, 163, 1, // Opcode: XVMSUB_W ++/* 14714 */ MCD::OPC_FilterValue, 7, 1, 24, 0, // Skip to: 20864 ++/* 14719 */ MCD::OPC_Decode, 143, 16, 164, 1, // Opcode: XVMSUB_D ++/* 14724 */ MCD::OPC_FilterValue, 43, 83, 0, 0, // Skip to: 14812 ++/* 14729 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 14732 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 14742 ++/* 14737 */ MCD::OPC_Decode, 183, 15, 165, 1, // Opcode: XVMADDWEV_H_B ++/* 14742 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 14752 ++/* 14747 */ MCD::OPC_Decode, 189, 15, 166, 1, // Opcode: XVMADDWEV_W_H ++/* 14752 */ MCD::OPC_FilterValue, 2, 5, 0, 0, // Skip to: 14762 ++/* 14757 */ MCD::OPC_Decode, 180, 15, 167, 1, // Opcode: XVMADDWEV_D_W ++/* 14762 */ MCD::OPC_FilterValue, 3, 5, 0, 0, // Skip to: 14772 ++/* 14767 */ MCD::OPC_Decode, 186, 15, 164, 1, // Opcode: XVMADDWEV_Q_D ++/* 14772 */ MCD::OPC_FilterValue, 4, 5, 0, 0, // Skip to: 14782 ++/* 14777 */ MCD::OPC_Decode, 195, 15, 165, 1, // Opcode: XVMADDWOD_H_B ++/* 14782 */ MCD::OPC_FilterValue, 5, 5, 0, 0, // Skip to: 14792 ++/* 14787 */ MCD::OPC_Decode, 201, 15, 166, 1, // Opcode: XVMADDWOD_W_H ++/* 14792 */ MCD::OPC_FilterValue, 6, 5, 0, 0, // Skip to: 14802 ++/* 14797 */ MCD::OPC_Decode, 192, 15, 167, 1, // Opcode: XVMADDWOD_D_W ++/* 14802 */ MCD::OPC_FilterValue, 7, 169, 23, 0, // Skip to: 20864 ++/* 14807 */ MCD::OPC_Decode, 198, 15, 164, 1, // Opcode: XVMADDWOD_Q_D ++/* 14812 */ MCD::OPC_FilterValue, 45, 83, 0, 0, // Skip to: 14900 ++/* 14817 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 14820 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 14830 ++/* 14825 */ MCD::OPC_Decode, 184, 15, 165, 1, // Opcode: XVMADDWEV_H_BU ++/* 14830 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 14840 ++/* 14835 */ MCD::OPC_Decode, 190, 15, 166, 1, // Opcode: XVMADDWEV_W_HU ++/* 14840 */ MCD::OPC_FilterValue, 2, 5, 0, 0, // Skip to: 14850 ++/* 14845 */ MCD::OPC_Decode, 181, 15, 167, 1, // Opcode: XVMADDWEV_D_WU ++/* 14850 */ MCD::OPC_FilterValue, 3, 5, 0, 0, // Skip to: 14860 ++/* 14855 */ MCD::OPC_Decode, 187, 15, 164, 1, // Opcode: XVMADDWEV_Q_DU ++/* 14860 */ MCD::OPC_FilterValue, 4, 5, 0, 0, // Skip to: 14870 ++/* 14865 */ MCD::OPC_Decode, 196, 15, 165, 1, // Opcode: XVMADDWOD_H_BU ++/* 14870 */ MCD::OPC_FilterValue, 5, 5, 0, 0, // Skip to: 14880 ++/* 14875 */ MCD::OPC_Decode, 202, 15, 166, 1, // Opcode: XVMADDWOD_W_HU ++/* 14880 */ MCD::OPC_FilterValue, 6, 5, 0, 0, // Skip to: 14890 ++/* 14885 */ MCD::OPC_Decode, 193, 15, 167, 1, // Opcode: XVMADDWOD_D_WU ++/* 14890 */ MCD::OPC_FilterValue, 7, 81, 23, 0, // Skip to: 20864 ++/* 14895 */ MCD::OPC_Decode, 199, 15, 164, 1, // Opcode: XVMADDWOD_Q_DU ++/* 14900 */ MCD::OPC_FilterValue, 47, 83, 0, 0, // Skip to: 14988 ++/* 14905 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 14908 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 14918 ++/* 14913 */ MCD::OPC_Decode, 185, 15, 165, 1, // Opcode: XVMADDWEV_H_BU_B ++/* 14918 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 14928 ++/* 14923 */ MCD::OPC_Decode, 191, 15, 166, 1, // Opcode: XVMADDWEV_W_HU_H ++/* 14928 */ MCD::OPC_FilterValue, 2, 5, 0, 0, // Skip to: 14938 ++/* 14933 */ MCD::OPC_Decode, 182, 15, 167, 1, // Opcode: XVMADDWEV_D_WU_W ++/* 14938 */ MCD::OPC_FilterValue, 3, 5, 0, 0, // Skip to: 14948 ++/* 14943 */ MCD::OPC_Decode, 188, 15, 164, 1, // Opcode: XVMADDWEV_Q_DU_D ++/* 14948 */ MCD::OPC_FilterValue, 4, 5, 0, 0, // Skip to: 14958 ++/* 14953 */ MCD::OPC_Decode, 197, 15, 165, 1, // Opcode: XVMADDWOD_H_BU_B ++/* 14958 */ MCD::OPC_FilterValue, 5, 5, 0, 0, // Skip to: 14968 ++/* 14963 */ MCD::OPC_Decode, 203, 15, 166, 1, // Opcode: XVMADDWOD_W_HU_H ++/* 14968 */ MCD::OPC_FilterValue, 6, 5, 0, 0, // Skip to: 14978 ++/* 14973 */ MCD::OPC_Decode, 194, 15, 167, 1, // Opcode: XVMADDWOD_D_WU_W ++/* 14978 */ MCD::OPC_FilterValue, 7, 249, 22, 0, // Skip to: 20864 ++/* 14983 */ MCD::OPC_Decode, 200, 15, 164, 1, // Opcode: XVMADDWOD_Q_DU_D ++/* 14988 */ MCD::OPC_FilterValue, 56, 79, 0, 0, // Skip to: 15072 ++/* 14993 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 14996 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 15006 ++/* 15001 */ MCD::OPC_Decode, 237, 13, 156, 1, // Opcode: XVDIV_B ++/* 15006 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 15016 ++/* 15011 */ MCD::OPC_Decode, 241, 13, 157, 1, // Opcode: XVDIV_H ++/* 15016 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 15025 ++/* 15021 */ MCD::OPC_Decode, 243, 13, 52, // Opcode: XVDIV_W ++/* 15025 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 15034 ++/* 15030 */ MCD::OPC_Decode, 239, 13, 53, // Opcode: XVDIV_D ++/* 15034 */ MCD::OPC_FilterValue, 4, 5, 0, 0, // Skip to: 15044 ++/* 15039 */ MCD::OPC_Decode, 128, 16, 156, 1, // Opcode: XVMOD_B ++/* 15044 */ MCD::OPC_FilterValue, 5, 5, 0, 0, // Skip to: 15054 ++/* 15049 */ MCD::OPC_Decode, 132, 16, 157, 1, // Opcode: XVMOD_H ++/* 15054 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 15063 ++/* 15059 */ MCD::OPC_Decode, 134, 16, 52, // Opcode: XVMOD_W ++/* 15063 */ MCD::OPC_FilterValue, 7, 164, 22, 0, // Skip to: 20864 ++/* 15068 */ MCD::OPC_Decode, 130, 16, 53, // Opcode: XVMOD_D ++/* 15072 */ MCD::OPC_FilterValue, 57, 79, 0, 0, // Skip to: 15156 ++/* 15077 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 15080 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 15090 ++/* 15085 */ MCD::OPC_Decode, 238, 13, 156, 1, // Opcode: XVDIV_BU ++/* 15090 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 15100 ++/* 15095 */ MCD::OPC_Decode, 242, 13, 157, 1, // Opcode: XVDIV_HU ++/* 15100 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 15109 ++/* 15105 */ MCD::OPC_Decode, 244, 13, 52, // Opcode: XVDIV_WU ++/* 15109 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 15118 ++/* 15114 */ MCD::OPC_Decode, 240, 13, 53, // Opcode: XVDIV_DU ++/* 15118 */ MCD::OPC_FilterValue, 4, 5, 0, 0, // Skip to: 15128 ++/* 15123 */ MCD::OPC_Decode, 129, 16, 156, 1, // Opcode: XVMOD_BU ++/* 15128 */ MCD::OPC_FilterValue, 5, 5, 0, 0, // Skip to: 15138 ++/* 15133 */ MCD::OPC_Decode, 133, 16, 157, 1, // Opcode: XVMOD_HU ++/* 15138 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 15147 ++/* 15143 */ MCD::OPC_Decode, 135, 16, 52, // Opcode: XVMOD_WU ++/* 15147 */ MCD::OPC_FilterValue, 7, 80, 22, 0, // Skip to: 20864 ++/* 15152 */ MCD::OPC_Decode, 131, 16, 53, // Opcode: XVMOD_DU ++/* 15156 */ MCD::OPC_FilterValue, 58, 79, 0, 0, // Skip to: 15240 ++/* 15161 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 15164 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 15174 ++/* 15169 */ MCD::OPC_Decode, 210, 17, 156, 1, // Opcode: XVSLL_B ++/* 15174 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 15184 ++/* 15179 */ MCD::OPC_Decode, 212, 17, 157, 1, // Opcode: XVSLL_H ++/* 15184 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 15193 ++/* 15189 */ MCD::OPC_Decode, 213, 17, 52, // Opcode: XVSLL_W ++/* 15193 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 15202 ++/* 15198 */ MCD::OPC_Decode, 211, 17, 53, // Opcode: XVSLL_D ++/* 15202 */ MCD::OPC_FilterValue, 4, 5, 0, 0, // Skip to: 15212 ++/* 15207 */ MCD::OPC_Decode, 174, 18, 156, 1, // Opcode: XVSRL_B ++/* 15212 */ MCD::OPC_FilterValue, 5, 5, 0, 0, // Skip to: 15222 ++/* 15217 */ MCD::OPC_Decode, 176, 18, 157, 1, // Opcode: XVSRL_H ++/* 15222 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 15231 ++/* 15227 */ MCD::OPC_Decode, 177, 18, 52, // Opcode: XVSRL_W ++/* 15231 */ MCD::OPC_FilterValue, 7, 252, 21, 0, // Skip to: 20864 ++/* 15236 */ MCD::OPC_Decode, 175, 18, 53, // Opcode: XVSRL_D ++/* 15240 */ MCD::OPC_FilterValue, 59, 79, 0, 0, // Skip to: 15324 ++/* 15245 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 15248 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 15258 ++/* 15253 */ MCD::OPC_Decode, 140, 18, 156, 1, // Opcode: XVSRA_B ++/* 15258 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 15268 ++/* 15263 */ MCD::OPC_Decode, 142, 18, 157, 1, // Opcode: XVSRA_H ++/* 15268 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 15277 ++/* 15273 */ MCD::OPC_Decode, 143, 18, 52, // Opcode: XVSRA_W ++/* 15277 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 15286 ++/* 15282 */ MCD::OPC_Decode, 141, 18, 53, // Opcode: XVSRA_D ++/* 15286 */ MCD::OPC_FilterValue, 4, 5, 0, 0, // Skip to: 15296 ++/* 15291 */ MCD::OPC_Decode, 246, 16, 156, 1, // Opcode: XVROTR_B ++/* 15296 */ MCD::OPC_FilterValue, 5, 5, 0, 0, // Skip to: 15306 ++/* 15301 */ MCD::OPC_Decode, 248, 16, 157, 1, // Opcode: XVROTR_H ++/* 15306 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 15315 ++/* 15311 */ MCD::OPC_Decode, 249, 16, 52, // Opcode: XVROTR_W ++/* 15315 */ MCD::OPC_FilterValue, 7, 168, 21, 0, // Skip to: 20864 ++/* 15320 */ MCD::OPC_Decode, 247, 16, 53, // Opcode: XVROTR_D ++/* 15324 */ MCD::OPC_FilterValue, 60, 79, 0, 0, // Skip to: 15408 ++/* 15329 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 15332 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 15342 ++/* 15337 */ MCD::OPC_Decode, 170, 18, 156, 1, // Opcode: XVSRLR_B ++/* 15342 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 15352 ++/* 15347 */ MCD::OPC_Decode, 172, 18, 157, 1, // Opcode: XVSRLR_H ++/* 15352 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 15361 ++/* 15357 */ MCD::OPC_Decode, 173, 18, 52, // Opcode: XVSRLR_W ++/* 15361 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 15370 ++/* 15366 */ MCD::OPC_Decode, 171, 18, 53, // Opcode: XVSRLR_D ++/* 15370 */ MCD::OPC_FilterValue, 4, 5, 0, 0, // Skip to: 15380 ++/* 15375 */ MCD::OPC_Decode, 136, 18, 156, 1, // Opcode: XVSRAR_B ++/* 15380 */ MCD::OPC_FilterValue, 5, 5, 0, 0, // Skip to: 15390 ++/* 15385 */ MCD::OPC_Decode, 138, 18, 157, 1, // Opcode: XVSRAR_H ++/* 15390 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 15399 ++/* 15395 */ MCD::OPC_Decode, 139, 18, 52, // Opcode: XVSRAR_W ++/* 15399 */ MCD::OPC_FilterValue, 7, 84, 21, 0, // Skip to: 20864 ++/* 15404 */ MCD::OPC_Decode, 137, 18, 53, // Opcode: XVSRAR_D ++/* 15408 */ MCD::OPC_FilterValue, 61, 63, 0, 0, // Skip to: 15476 ++/* 15413 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 15416 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 15426 ++/* 15421 */ MCD::OPC_Decode, 156, 18, 168, 1, // Opcode: XVSRLN_B_H ++/* 15426 */ MCD::OPC_FilterValue, 2, 5, 0, 0, // Skip to: 15436 ++/* 15431 */ MCD::OPC_Decode, 157, 18, 169, 1, // Opcode: XVSRLN_H_W ++/* 15436 */ MCD::OPC_FilterValue, 3, 5, 0, 0, // Skip to: 15446 ++/* 15441 */ MCD::OPC_Decode, 158, 18, 170, 1, // Opcode: XVSRLN_W_D ++/* 15446 */ MCD::OPC_FilterValue, 5, 5, 0, 0, // Skip to: 15456 ++/* 15451 */ MCD::OPC_Decode, 250, 17, 168, 1, // Opcode: XVSRAN_B_H ++/* 15456 */ MCD::OPC_FilterValue, 6, 5, 0, 0, // Skip to: 15466 ++/* 15461 */ MCD::OPC_Decode, 251, 17, 169, 1, // Opcode: XVSRAN_H_W ++/* 15466 */ MCD::OPC_FilterValue, 7, 17, 21, 0, // Skip to: 20864 ++/* 15471 */ MCD::OPC_Decode, 252, 17, 170, 1, // Opcode: XVSRAN_W_D ++/* 15476 */ MCD::OPC_FilterValue, 62, 63, 0, 0, // Skip to: 15544 ++/* 15481 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 15484 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 15494 ++/* 15489 */ MCD::OPC_Decode, 167, 18, 168, 1, // Opcode: XVSRLRN_B_H ++/* 15494 */ MCD::OPC_FilterValue, 2, 5, 0, 0, // Skip to: 15504 ++/* 15499 */ MCD::OPC_Decode, 168, 18, 169, 1, // Opcode: XVSRLRN_H_W ++/* 15504 */ MCD::OPC_FilterValue, 3, 5, 0, 0, // Skip to: 15514 ++/* 15509 */ MCD::OPC_Decode, 169, 18, 170, 1, // Opcode: XVSRLRN_W_D ++/* 15514 */ MCD::OPC_FilterValue, 5, 5, 0, 0, // Skip to: 15524 ++/* 15519 */ MCD::OPC_Decode, 133, 18, 168, 1, // Opcode: XVSRARN_B_H ++/* 15524 */ MCD::OPC_FilterValue, 6, 5, 0, 0, // Skip to: 15534 ++/* 15529 */ MCD::OPC_Decode, 134, 18, 169, 1, // Opcode: XVSRARN_H_W ++/* 15534 */ MCD::OPC_FilterValue, 7, 205, 20, 0, // Skip to: 20864 ++/* 15539 */ MCD::OPC_Decode, 135, 18, 170, 1, // Opcode: XVSRARN_W_D ++/* 15544 */ MCD::OPC_FilterValue, 63, 63, 0, 0, // Skip to: 15612 ++/* 15549 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 15552 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 15562 ++/* 15557 */ MCD::OPC_Decode, 215, 18, 168, 1, // Opcode: XVSSRLN_B_H ++/* 15562 */ MCD::OPC_FilterValue, 2, 5, 0, 0, // Skip to: 15572 ++/* 15567 */ MCD::OPC_Decode, 217, 18, 169, 1, // Opcode: XVSSRLN_H_W ++/* 15572 */ MCD::OPC_FilterValue, 3, 5, 0, 0, // Skip to: 15582 ++/* 15577 */ MCD::OPC_Decode, 219, 18, 170, 1, // Opcode: XVSSRLN_W_D ++/* 15582 */ MCD::OPC_FilterValue, 5, 5, 0, 0, // Skip to: 15592 ++/* 15587 */ MCD::OPC_Decode, 187, 18, 168, 1, // Opcode: XVSSRAN_B_H ++/* 15592 */ MCD::OPC_FilterValue, 6, 5, 0, 0, // Skip to: 15602 ++/* 15597 */ MCD::OPC_Decode, 189, 18, 169, 1, // Opcode: XVSSRAN_H_W ++/* 15602 */ MCD::OPC_FilterValue, 7, 137, 20, 0, // Skip to: 20864 ++/* 15607 */ MCD::OPC_Decode, 191, 18, 170, 1, // Opcode: XVSSRAN_W_D ++/* 15612 */ MCD::OPC_FilterValue, 64, 63, 0, 0, // Skip to: 15680 ++/* 15617 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 15620 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 15630 ++/* 15625 */ MCD::OPC_Decode, 229, 18, 168, 1, // Opcode: XVSSRLRN_B_H ++/* 15630 */ MCD::OPC_FilterValue, 2, 5, 0, 0, // Skip to: 15640 ++/* 15635 */ MCD::OPC_Decode, 231, 18, 169, 1, // Opcode: XVSSRLRN_H_W ++/* 15640 */ MCD::OPC_FilterValue, 3, 5, 0, 0, // Skip to: 15650 ++/* 15645 */ MCD::OPC_Decode, 233, 18, 170, 1, // Opcode: XVSSRLRN_W_D ++/* 15650 */ MCD::OPC_FilterValue, 5, 5, 0, 0, // Skip to: 15660 ++/* 15655 */ MCD::OPC_Decode, 201, 18, 168, 1, // Opcode: XVSSRARN_B_H ++/* 15660 */ MCD::OPC_FilterValue, 6, 5, 0, 0, // Skip to: 15670 ++/* 15665 */ MCD::OPC_Decode, 203, 18, 169, 1, // Opcode: XVSSRARN_H_W ++/* 15670 */ MCD::OPC_FilterValue, 7, 69, 20, 0, // Skip to: 20864 ++/* 15675 */ MCD::OPC_Decode, 205, 18, 170, 1, // Opcode: XVSSRARN_W_D ++/* 15680 */ MCD::OPC_FilterValue, 65, 63, 0, 0, // Skip to: 15748 ++/* 15685 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 15688 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 15698 ++/* 15693 */ MCD::OPC_Decode, 214, 18, 168, 1, // Opcode: XVSSRLN_BU_H ++/* 15698 */ MCD::OPC_FilterValue, 2, 5, 0, 0, // Skip to: 15708 ++/* 15703 */ MCD::OPC_Decode, 216, 18, 169, 1, // Opcode: XVSSRLN_HU_W ++/* 15708 */ MCD::OPC_FilterValue, 3, 5, 0, 0, // Skip to: 15718 ++/* 15713 */ MCD::OPC_Decode, 218, 18, 170, 1, // Opcode: XVSSRLN_WU_D ++/* 15718 */ MCD::OPC_FilterValue, 5, 5, 0, 0, // Skip to: 15728 ++/* 15723 */ MCD::OPC_Decode, 186, 18, 168, 1, // Opcode: XVSSRAN_BU_H ++/* 15728 */ MCD::OPC_FilterValue, 6, 5, 0, 0, // Skip to: 15738 ++/* 15733 */ MCD::OPC_Decode, 188, 18, 169, 1, // Opcode: XVSSRAN_HU_W ++/* 15738 */ MCD::OPC_FilterValue, 7, 1, 20, 0, // Skip to: 20864 ++/* 15743 */ MCD::OPC_Decode, 190, 18, 170, 1, // Opcode: XVSSRAN_WU_D ++/* 15748 */ MCD::OPC_FilterValue, 66, 63, 0, 0, // Skip to: 15816 ++/* 15753 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 15756 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 15766 ++/* 15761 */ MCD::OPC_Decode, 228, 18, 168, 1, // Opcode: XVSSRLRN_BU_H ++/* 15766 */ MCD::OPC_FilterValue, 2, 5, 0, 0, // Skip to: 15776 ++/* 15771 */ MCD::OPC_Decode, 230, 18, 169, 1, // Opcode: XVSSRLRN_HU_W ++/* 15776 */ MCD::OPC_FilterValue, 3, 5, 0, 0, // Skip to: 15786 ++/* 15781 */ MCD::OPC_Decode, 232, 18, 170, 1, // Opcode: XVSSRLRN_WU_D ++/* 15786 */ MCD::OPC_FilterValue, 5, 5, 0, 0, // Skip to: 15796 ++/* 15791 */ MCD::OPC_Decode, 200, 18, 168, 1, // Opcode: XVSSRARN_BU_H ++/* 15796 */ MCD::OPC_FilterValue, 6, 5, 0, 0, // Skip to: 15806 ++/* 15801 */ MCD::OPC_Decode, 202, 18, 169, 1, // Opcode: XVSSRARN_HU_W ++/* 15806 */ MCD::OPC_FilterValue, 7, 189, 19, 0, // Skip to: 20864 ++/* 15811 */ MCD::OPC_Decode, 204, 18, 170, 1, // Opcode: XVSSRARN_WU_D ++/* 15816 */ MCD::OPC_FilterValue, 67, 79, 0, 0, // Skip to: 15900 ++/* 15821 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 15824 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 15834 ++/* 15829 */ MCD::OPC_Decode, 204, 13, 156, 1, // Opcode: XVBITCLR_B ++/* 15834 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 15844 ++/* 15839 */ MCD::OPC_Decode, 206, 13, 157, 1, // Opcode: XVBITCLR_H ++/* 15844 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 15853 ++/* 15849 */ MCD::OPC_Decode, 207, 13, 52, // Opcode: XVBITCLR_W ++/* 15853 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 15862 ++/* 15858 */ MCD::OPC_Decode, 205, 13, 53, // Opcode: XVBITCLR_D ++/* 15862 */ MCD::OPC_FilterValue, 4, 5, 0, 0, // Skip to: 15872 ++/* 15867 */ MCD::OPC_Decode, 223, 13, 156, 1, // Opcode: XVBITSET_B ++/* 15872 */ MCD::OPC_FilterValue, 5, 5, 0, 0, // Skip to: 15882 ++/* 15877 */ MCD::OPC_Decode, 225, 13, 157, 1, // Opcode: XVBITSET_H ++/* 15882 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 15891 ++/* 15887 */ MCD::OPC_Decode, 226, 13, 52, // Opcode: XVBITSET_W ++/* 15891 */ MCD::OPC_FilterValue, 7, 104, 19, 0, // Skip to: 20864 ++/* 15896 */ MCD::OPC_Decode, 224, 13, 53, // Opcode: XVBITSET_D ++/* 15900 */ MCD::OPC_FilterValue, 68, 41, 0, 0, // Skip to: 15946 ++/* 15905 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 15908 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 15918 ++/* 15913 */ MCD::OPC_Decode, 212, 13, 156, 1, // Opcode: XVBITREV_B ++/* 15918 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 15928 ++/* 15923 */ MCD::OPC_Decode, 214, 13, 157, 1, // Opcode: XVBITREV_H ++/* 15928 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 15937 ++/* 15933 */ MCD::OPC_Decode, 215, 13, 52, // Opcode: XVBITREV_W ++/* 15937 */ MCD::OPC_FilterValue, 3, 58, 19, 0, // Skip to: 20864 ++/* 15942 */ MCD::OPC_Decode, 213, 13, 53, // Opcode: XVBITREV_D ++/* 15946 */ MCD::OPC_FilterValue, 69, 41, 0, 0, // Skip to: 15992 ++/* 15951 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 15954 */ MCD::OPC_FilterValue, 4, 5, 0, 0, // Skip to: 15964 ++/* 15959 */ MCD::OPC_Decode, 191, 16, 156, 1, // Opcode: XVPACKEV_B ++/* 15964 */ MCD::OPC_FilterValue, 5, 5, 0, 0, // Skip to: 15974 ++/* 15969 */ MCD::OPC_Decode, 193, 16, 157, 1, // Opcode: XVPACKEV_H ++/* 15974 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 15983 ++/* 15979 */ MCD::OPC_Decode, 194, 16, 52, // Opcode: XVPACKEV_W ++/* 15983 */ MCD::OPC_FilterValue, 7, 12, 19, 0, // Skip to: 20864 ++/* 15988 */ MCD::OPC_Decode, 192, 16, 53, // Opcode: XVPACKEV_D ++/* 15992 */ MCD::OPC_FilterValue, 70, 79, 0, 0, // Skip to: 16076 ++/* 15997 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 16000 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 16010 ++/* 16005 */ MCD::OPC_Decode, 195, 16, 156, 1, // Opcode: XVPACKOD_B ++/* 16010 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 16020 ++/* 16015 */ MCD::OPC_Decode, 197, 16, 157, 1, // Opcode: XVPACKOD_H ++/* 16020 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 16029 ++/* 16025 */ MCD::OPC_Decode, 198, 16, 52, // Opcode: XVPACKOD_W ++/* 16029 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 16038 ++/* 16034 */ MCD::OPC_Decode, 196, 16, 53, // Opcode: XVPACKOD_D ++/* 16038 */ MCD::OPC_FilterValue, 4, 5, 0, 0, // Skip to: 16048 ++/* 16043 */ MCD::OPC_Decode, 158, 15, 156, 1, // Opcode: XVILVL_B ++/* 16048 */ MCD::OPC_FilterValue, 5, 5, 0, 0, // Skip to: 16058 ++/* 16053 */ MCD::OPC_Decode, 160, 15, 157, 1, // Opcode: XVILVL_H ++/* 16058 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 16067 ++/* 16063 */ MCD::OPC_Decode, 161, 15, 52, // Opcode: XVILVL_W ++/* 16067 */ MCD::OPC_FilterValue, 7, 184, 18, 0, // Skip to: 20864 ++/* 16072 */ MCD::OPC_Decode, 159, 15, 53, // Opcode: XVILVL_D ++/* 16076 */ MCD::OPC_FilterValue, 71, 79, 0, 0, // Skip to: 16160 ++/* 16081 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 16084 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 16094 ++/* 16089 */ MCD::OPC_Decode, 154, 15, 156, 1, // Opcode: XVILVH_B ++/* 16094 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 16104 ++/* 16099 */ MCD::OPC_Decode, 156, 15, 157, 1, // Opcode: XVILVH_H ++/* 16104 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 16113 ++/* 16109 */ MCD::OPC_Decode, 157, 15, 52, // Opcode: XVILVH_W ++/* 16113 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 16122 ++/* 16118 */ MCD::OPC_Decode, 155, 15, 53, // Opcode: XVILVH_D ++/* 16122 */ MCD::OPC_FilterValue, 4, 5, 0, 0, // Skip to: 16132 ++/* 16127 */ MCD::OPC_Decode, 210, 16, 156, 1, // Opcode: XVPICKEV_B ++/* 16132 */ MCD::OPC_FilterValue, 5, 5, 0, 0, // Skip to: 16142 ++/* 16137 */ MCD::OPC_Decode, 212, 16, 157, 1, // Opcode: XVPICKEV_H ++/* 16142 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 16151 ++/* 16147 */ MCD::OPC_Decode, 213, 16, 52, // Opcode: XVPICKEV_W ++/* 16151 */ MCD::OPC_FilterValue, 7, 100, 18, 0, // Skip to: 20864 ++/* 16156 */ MCD::OPC_Decode, 211, 16, 53, // Opcode: XVPICKEV_D ++/* 16160 */ MCD::OPC_FilterValue, 72, 81, 0, 0, // Skip to: 16246 ++/* 16165 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 16168 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 16178 ++/* 16173 */ MCD::OPC_Decode, 214, 16, 156, 1, // Opcode: XVPICKOD_B ++/* 16178 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 16188 ++/* 16183 */ MCD::OPC_Decode, 216, 16, 157, 1, // Opcode: XVPICKOD_H ++/* 16188 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 16197 ++/* 16193 */ MCD::OPC_Decode, 217, 16, 52, // Opcode: XVPICKOD_W ++/* 16197 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 16206 ++/* 16202 */ MCD::OPC_Decode, 215, 16, 53, // Opcode: XVPICKOD_D ++/* 16206 */ MCD::OPC_FilterValue, 4, 5, 0, 0, // Skip to: 16216 ++/* 16211 */ MCD::OPC_Decode, 237, 16, 171, 1, // Opcode: XVREPLVE_B ++/* 16216 */ MCD::OPC_FilterValue, 5, 5, 0, 0, // Skip to: 16226 ++/* 16221 */ MCD::OPC_Decode, 239, 16, 172, 1, // Opcode: XVREPLVE_H ++/* 16226 */ MCD::OPC_FilterValue, 6, 5, 0, 0, // Skip to: 16236 ++/* 16231 */ MCD::OPC_Decode, 240, 16, 173, 1, // Opcode: XVREPLVE_W ++/* 16236 */ MCD::OPC_FilterValue, 7, 15, 18, 0, // Skip to: 20864 ++/* 16241 */ MCD::OPC_Decode, 238, 16, 174, 1, // Opcode: XVREPLVE_D ++/* 16246 */ MCD::OPC_FilterValue, 73, 43, 0, 0, // Skip to: 16294 ++/* 16251 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 16254 */ MCD::OPC_FilterValue, 4, 5, 0, 0, // Skip to: 16264 ++/* 16259 */ MCD::OPC_Decode, 183, 13, 156, 1, // Opcode: XVAND_V ++/* 16264 */ MCD::OPC_FilterValue, 5, 5, 0, 0, // Skip to: 16274 ++/* 16269 */ MCD::OPC_Decode, 190, 16, 156, 1, // Opcode: XVOR_V ++/* 16274 */ MCD::OPC_FilterValue, 6, 5, 0, 0, // Skip to: 16284 ++/* 16279 */ MCD::OPC_Decode, 154, 19, 156, 1, // Opcode: XVXOR_V ++/* 16284 */ MCD::OPC_FilterValue, 7, 223, 17, 0, // Skip to: 20864 ++/* 16289 */ MCD::OPC_Decode, 187, 16, 156, 1, // Opcode: XVNOR_V ++/* 16294 */ MCD::OPC_FilterValue, 74, 43, 0, 0, // Skip to: 16342 ++/* 16299 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 16302 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 16312 ++/* 16307 */ MCD::OPC_Decode, 182, 13, 156, 1, // Opcode: XVANDN_V ++/* 16312 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 16322 ++/* 16317 */ MCD::OPC_Decode, 189, 16, 156, 1, // Opcode: XVORN_V ++/* 16322 */ MCD::OPC_FilterValue, 6, 5, 0, 0, // Skip to: 16332 ++/* 16327 */ MCD::OPC_Decode, 230, 14, 161, 1, // Opcode: XVFRSTP_B ++/* 16332 */ MCD::OPC_FilterValue, 7, 175, 17, 0, // Skip to: 20864 ++/* 16337 */ MCD::OPC_Decode, 231, 14, 162, 1, // Opcode: XVFRSTP_H ++/* 16342 */ MCD::OPC_FilterValue, 75, 59, 0, 0, // Skip to: 16406 ++/* 16347 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 16350 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 16359 ++/* 16355 */ MCD::OPC_Decode, 178, 13, 53, // Opcode: XVADD_Q ++/* 16359 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 16368 ++/* 16364 */ MCD::OPC_Decode, 150, 19, 53, // Opcode: XVSUB_Q ++/* 16368 */ MCD::OPC_FilterValue, 4, 5, 0, 0, // Skip to: 16378 ++/* 16373 */ MCD::OPC_Decode, 168, 17, 156, 1, // Opcode: XVSIGNCOV_B ++/* 16378 */ MCD::OPC_FilterValue, 5, 5, 0, 0, // Skip to: 16388 ++/* 16383 */ MCD::OPC_Decode, 170, 17, 157, 1, // Opcode: XVSIGNCOV_H ++/* 16388 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 16397 ++/* 16393 */ MCD::OPC_Decode, 171, 17, 52, // Opcode: XVSIGNCOV_W ++/* 16397 */ MCD::OPC_FilterValue, 7, 110, 17, 0, // Skip to: 20864 ++/* 16402 */ MCD::OPC_Decode, 169, 17, 53, // Opcode: XVSIGNCOV_D ++/* 16406 */ MCD::OPC_FilterValue, 76, 39, 0, 0, // Skip to: 16450 ++/* 16411 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 16414 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 16423 ++/* 16419 */ MCD::OPC_Decode, 132, 14, 52, // Opcode: XVFADD_S ++/* 16423 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 16432 ++/* 16428 */ MCD::OPC_Decode, 131, 14, 53, // Opcode: XVFADD_D ++/* 16432 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 16441 ++/* 16437 */ MCD::OPC_Decode, 235, 14, 52, // Opcode: XVFSUB_S ++/* 16441 */ MCD::OPC_FilterValue, 6, 66, 17, 0, // Skip to: 20864 ++/* 16446 */ MCD::OPC_Decode, 234, 14, 53, // Opcode: XVFSUB_D ++/* 16450 */ MCD::OPC_FilterValue, 78, 39, 0, 0, // Skip to: 16494 ++/* 16455 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 16458 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 16467 ++/* 16463 */ MCD::OPC_Decode, 209, 14, 52, // Opcode: XVFMUL_S ++/* 16467 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 16476 ++/* 16472 */ MCD::OPC_Decode, 208, 14, 53, // Opcode: XVFMUL_D ++/* 16476 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 16485 ++/* 16481 */ MCD::OPC_Decode, 186, 14, 52, // Opcode: XVFDIV_S ++/* 16485 */ MCD::OPC_FilterValue, 6, 22, 17, 0, // Skip to: 20864 ++/* 16490 */ MCD::OPC_Decode, 185, 14, 53, // Opcode: XVFDIV_D ++/* 16494 */ MCD::OPC_FilterValue, 79, 39, 0, 0, // Skip to: 16538 ++/* 16499 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 16502 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 16511 ++/* 16507 */ MCD::OPC_Decode, 201, 14, 52, // Opcode: XVFMAX_S ++/* 16511 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 16520 ++/* 16516 */ MCD::OPC_Decode, 200, 14, 53, // Opcode: XVFMAX_D ++/* 16520 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 16529 ++/* 16525 */ MCD::OPC_Decode, 205, 14, 52, // Opcode: XVFMIN_S ++/* 16529 */ MCD::OPC_FilterValue, 6, 234, 16, 0, // Skip to: 20864 ++/* 16534 */ MCD::OPC_Decode, 204, 14, 53, // Opcode: XVFMIN_D ++/* 16538 */ MCD::OPC_FilterValue, 80, 39, 0, 0, // Skip to: 16582 ++/* 16543 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 16546 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 16555 ++/* 16551 */ MCD::OPC_Decode, 199, 14, 52, // Opcode: XVFMAXA_S ++/* 16555 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 16564 ++/* 16560 */ MCD::OPC_Decode, 198, 14, 53, // Opcode: XVFMAXA_D ++/* 16564 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 16573 ++/* 16569 */ MCD::OPC_Decode, 203, 14, 52, // Opcode: XVFMINA_S ++/* 16573 */ MCD::OPC_FilterValue, 6, 190, 16, 0, // Skip to: 20864 ++/* 16578 */ MCD::OPC_Decode, 202, 14, 53, // Opcode: XVFMINA_D ++/* 16582 */ MCD::OPC_FilterValue, 81, 23, 0, 0, // Skip to: 16610 ++/* 16587 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 16590 */ MCD::OPC_FilterValue, 4, 5, 0, 0, // Skip to: 16600 ++/* 16595 */ MCD::OPC_Decode, 183, 14, 169, 1, // Opcode: XVFCVT_H_S ++/* 16600 */ MCD::OPC_FilterValue, 5, 163, 16, 0, // Skip to: 20864 ++/* 16605 */ MCD::OPC_Decode, 184, 14, 170, 1, // Opcode: XVFCVT_S_D ++/* 16610 */ MCD::OPC_FilterValue, 82, 63, 0, 0, // Skip to: 16678 ++/* 16615 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 16618 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 16628 ++/* 16623 */ MCD::OPC_Decode, 191, 14, 170, 1, // Opcode: XVFFINT_S_L ++/* 16628 */ MCD::OPC_FilterValue, 3, 5, 0, 0, // Skip to: 16638 ++/* 16633 */ MCD::OPC_Decode, 135, 15, 170, 1, // Opcode: XVFTINT_W_D ++/* 16638 */ MCD::OPC_FilterValue, 4, 5, 0, 0, // Skip to: 16648 ++/* 16643 */ MCD::OPC_Decode, 241, 14, 170, 1, // Opcode: XVFTINTRM_W_D ++/* 16648 */ MCD::OPC_FilterValue, 5, 5, 0, 0, // Skip to: 16658 ++/* 16653 */ MCD::OPC_Decode, 251, 14, 170, 1, // Opcode: XVFTINTRP_W_D ++/* 16658 */ MCD::OPC_FilterValue, 6, 5, 0, 0, // Skip to: 16668 ++/* 16663 */ MCD::OPC_Decode, 130, 15, 170, 1, // Opcode: XVFTINTRZ_W_D ++/* 16668 */ MCD::OPC_FilterValue, 7, 95, 16, 0, // Skip to: 20864 ++/* 16673 */ MCD::OPC_Decode, 246, 14, 170, 1, // Opcode: XVFTINTRNE_W_D ++/* 16678 */ MCD::OPC_FilterValue, 94, 33, 0, 0, // Skip to: 16716 ++/* 16683 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 16686 */ MCD::OPC_FilterValue, 5, 5, 0, 0, // Skip to: 16696 ++/* 16691 */ MCD::OPC_Decode, 166, 17, 162, 1, // Opcode: XVSHUF_H ++/* 16696 */ MCD::OPC_FilterValue, 6, 5, 0, 0, // Skip to: 16706 ++/* 16701 */ MCD::OPC_Decode, 167, 17, 163, 1, // Opcode: XVSHUF_W ++/* 16706 */ MCD::OPC_FilterValue, 7, 57, 16, 0, // Skip to: 20864 ++/* 16711 */ MCD::OPC_Decode, 165, 17, 164, 1, // Opcode: XVSHUF_D ++/* 16716 */ MCD::OPC_FilterValue, 95, 11, 0, 0, // Skip to: 16732 ++/* 16721 */ MCD::OPC_CheckField, 15, 3, 2, 40, 16, 0, // Skip to: 20864 ++/* 16728 */ MCD::OPC_Decode, 209, 16, 52, // Opcode: XVPERM_W ++/* 16732 */ MCD::OPC_FilterValue, 160, 1, 83, 0, 0, // Skip to: 16821 ++/* 16738 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 16741 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 16751 ++/* 16746 */ MCD::OPC_Decode, 138, 17, 175, 1, // Opcode: XVSEQI_B ++/* 16751 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 16761 ++/* 16756 */ MCD::OPC_Decode, 142, 17, 176, 1, // Opcode: XVSEQI_H ++/* 16761 */ MCD::OPC_FilterValue, 2, 5, 0, 0, // Skip to: 16771 ++/* 16766 */ MCD::OPC_Decode, 144, 17, 177, 1, // Opcode: XVSEQI_W ++/* 16771 */ MCD::OPC_FilterValue, 3, 5, 0, 0, // Skip to: 16781 ++/* 16776 */ MCD::OPC_Decode, 140, 17, 178, 1, // Opcode: XVSEQI_D ++/* 16781 */ MCD::OPC_FilterValue, 4, 5, 0, 0, // Skip to: 16791 ++/* 16786 */ MCD::OPC_Decode, 172, 17, 175, 1, // Opcode: XVSLEI_B ++/* 16791 */ MCD::OPC_FilterValue, 5, 5, 0, 0, // Skip to: 16801 ++/* 16796 */ MCD::OPC_Decode, 180, 17, 176, 1, // Opcode: XVSLEI_H ++/* 16801 */ MCD::OPC_FilterValue, 6, 5, 0, 0, // Skip to: 16811 ++/* 16806 */ MCD::OPC_Decode, 184, 17, 177, 1, // Opcode: XVSLEI_W ++/* 16811 */ MCD::OPC_FilterValue, 7, 208, 15, 0, // Skip to: 20864 ++/* 16816 */ MCD::OPC_Decode, 176, 17, 178, 1, // Opcode: XVSLEI_D ++/* 16821 */ MCD::OPC_FilterValue, 161, 1, 83, 0, 0, // Skip to: 16910 ++/* 16827 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 16830 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 16840 ++/* 16835 */ MCD::OPC_Decode, 173, 17, 179, 1, // Opcode: XVSLEI_BU ++/* 16840 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 16850 ++/* 16845 */ MCD::OPC_Decode, 181, 17, 180, 1, // Opcode: XVSLEI_HU ++/* 16850 */ MCD::OPC_FilterValue, 2, 5, 0, 0, // Skip to: 16860 ++/* 16855 */ MCD::OPC_Decode, 185, 17, 181, 1, // Opcode: XVSLEI_WU ++/* 16860 */ MCD::OPC_FilterValue, 3, 5, 0, 0, // Skip to: 16870 ++/* 16865 */ MCD::OPC_Decode, 177, 17, 182, 1, // Opcode: XVSLEI_DU ++/* 16870 */ MCD::OPC_FilterValue, 4, 5, 0, 0, // Skip to: 16880 ++/* 16875 */ MCD::OPC_Decode, 214, 17, 175, 1, // Opcode: XVSLTI_B ++/* 16880 */ MCD::OPC_FilterValue, 5, 5, 0, 0, // Skip to: 16890 ++/* 16885 */ MCD::OPC_Decode, 222, 17, 176, 1, // Opcode: XVSLTI_H ++/* 16890 */ MCD::OPC_FilterValue, 6, 5, 0, 0, // Skip to: 16900 ++/* 16895 */ MCD::OPC_Decode, 226, 17, 177, 1, // Opcode: XVSLTI_W ++/* 16900 */ MCD::OPC_FilterValue, 7, 119, 15, 0, // Skip to: 20864 ++/* 16905 */ MCD::OPC_Decode, 218, 17, 178, 1, // Opcode: XVSLTI_D ++/* 16910 */ MCD::OPC_FilterValue, 162, 1, 83, 0, 0, // Skip to: 16999 ++/* 16916 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 16919 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 16929 ++/* 16924 */ MCD::OPC_Decode, 215, 17, 179, 1, // Opcode: XVSLTI_BU ++/* 16929 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 16939 ++/* 16934 */ MCD::OPC_Decode, 223, 17, 180, 1, // Opcode: XVSLTI_HU ++/* 16939 */ MCD::OPC_FilterValue, 2, 5, 0, 0, // Skip to: 16949 ++/* 16944 */ MCD::OPC_Decode, 227, 17, 181, 1, // Opcode: XVSLTI_WU ++/* 16949 */ MCD::OPC_FilterValue, 3, 5, 0, 0, // Skip to: 16959 ++/* 16954 */ MCD::OPC_Decode, 219, 17, 182, 1, // Opcode: XVSLTI_DU ++/* 16959 */ MCD::OPC_FilterValue, 4, 5, 0, 0, // Skip to: 16969 ++/* 16964 */ MCD::OPC_Decode, 143, 13, 179, 1, // Opcode: XVADDI_BU ++/* 16969 */ MCD::OPC_FilterValue, 5, 5, 0, 0, // Skip to: 16979 ++/* 16974 */ MCD::OPC_Decode, 147, 13, 180, 1, // Opcode: XVADDI_HU ++/* 16979 */ MCD::OPC_FilterValue, 6, 5, 0, 0, // Skip to: 16989 ++/* 16984 */ MCD::OPC_Decode, 149, 13, 181, 1, // Opcode: XVADDI_WU ++/* 16989 */ MCD::OPC_FilterValue, 7, 30, 15, 0, // Skip to: 20864 ++/* 16994 */ MCD::OPC_Decode, 145, 13, 182, 1, // Opcode: XVADDI_DU ++/* 16999 */ MCD::OPC_FilterValue, 163, 1, 63, 0, 0, // Skip to: 17068 ++/* 17005 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 17008 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 17018 ++/* 17013 */ MCD::OPC_Decode, 251, 18, 179, 1, // Opcode: XVSUBI_BU ++/* 17018 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 17028 ++/* 17023 */ MCD::OPC_Decode, 255, 18, 180, 1, // Opcode: XVSUBI_HU ++/* 17028 */ MCD::OPC_FilterValue, 2, 5, 0, 0, // Skip to: 17038 ++/* 17033 */ MCD::OPC_Decode, 129, 19, 181, 1, // Opcode: XVSUBI_WU ++/* 17038 */ MCD::OPC_FilterValue, 3, 5, 0, 0, // Skip to: 17048 ++/* 17043 */ MCD::OPC_Decode, 253, 18, 182, 1, // Opcode: XVSUBI_DU ++/* 17048 */ MCD::OPC_FilterValue, 4, 5, 0, 0, // Skip to: 17058 ++/* 17053 */ MCD::OPC_Decode, 227, 13, 179, 1, // Opcode: XVBSLL_V ++/* 17058 */ MCD::OPC_FilterValue, 5, 217, 14, 0, // Skip to: 20864 ++/* 17063 */ MCD::OPC_Decode, 228, 13, 179, 1, // Opcode: XVBSRL_V ++/* 17068 */ MCD::OPC_FilterValue, 164, 1, 83, 0, 0, // Skip to: 17157 ++/* 17074 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 17077 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 17087 ++/* 17082 */ MCD::OPC_Decode, 208, 15, 175, 1, // Opcode: XVMAXI_B ++/* 17087 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 17097 ++/* 17092 */ MCD::OPC_Decode, 216, 15, 176, 1, // Opcode: XVMAXI_H ++/* 17097 */ MCD::OPC_FilterValue, 2, 5, 0, 0, // Skip to: 17107 ++/* 17102 */ MCD::OPC_Decode, 220, 15, 177, 1, // Opcode: XVMAXI_W ++/* 17107 */ MCD::OPC_FilterValue, 3, 5, 0, 0, // Skip to: 17117 ++/* 17112 */ MCD::OPC_Decode, 212, 15, 178, 1, // Opcode: XVMAXI_D ++/* 17117 */ MCD::OPC_FilterValue, 4, 5, 0, 0, // Skip to: 17127 ++/* 17122 */ MCD::OPC_Decode, 232, 15, 175, 1, // Opcode: XVMINI_B ++/* 17127 */ MCD::OPC_FilterValue, 5, 5, 0, 0, // Skip to: 17137 ++/* 17132 */ MCD::OPC_Decode, 240, 15, 176, 1, // Opcode: XVMINI_H ++/* 17137 */ MCD::OPC_FilterValue, 6, 5, 0, 0, // Skip to: 17147 ++/* 17142 */ MCD::OPC_Decode, 244, 15, 177, 1, // Opcode: XVMINI_W ++/* 17147 */ MCD::OPC_FilterValue, 7, 128, 14, 0, // Skip to: 20864 ++/* 17152 */ MCD::OPC_Decode, 236, 15, 178, 1, // Opcode: XVMINI_D ++/* 17157 */ MCD::OPC_FilterValue, 165, 1, 83, 0, 0, // Skip to: 17246 ++/* 17163 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 17166 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 17176 ++/* 17171 */ MCD::OPC_Decode, 209, 15, 179, 1, // Opcode: XVMAXI_BU ++/* 17176 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 17186 ++/* 17181 */ MCD::OPC_Decode, 217, 15, 180, 1, // Opcode: XVMAXI_HU ++/* 17186 */ MCD::OPC_FilterValue, 2, 5, 0, 0, // Skip to: 17196 ++/* 17191 */ MCD::OPC_Decode, 221, 15, 181, 1, // Opcode: XVMAXI_WU ++/* 17196 */ MCD::OPC_FilterValue, 3, 5, 0, 0, // Skip to: 17206 ++/* 17201 */ MCD::OPC_Decode, 213, 15, 182, 1, // Opcode: XVMAXI_DU ++/* 17206 */ MCD::OPC_FilterValue, 4, 5, 0, 0, // Skip to: 17216 ++/* 17211 */ MCD::OPC_Decode, 233, 15, 179, 1, // Opcode: XVMINI_BU ++/* 17216 */ MCD::OPC_FilterValue, 5, 5, 0, 0, // Skip to: 17226 ++/* 17221 */ MCD::OPC_Decode, 241, 15, 180, 1, // Opcode: XVMINI_HU ++/* 17226 */ MCD::OPC_FilterValue, 6, 5, 0, 0, // Skip to: 17236 ++/* 17231 */ MCD::OPC_Decode, 245, 15, 181, 1, // Opcode: XVMINI_WU ++/* 17236 */ MCD::OPC_FilterValue, 7, 39, 14, 0, // Skip to: 20864 ++/* 17241 */ MCD::OPC_Decode, 237, 15, 182, 1, // Opcode: XVMINI_DU ++/* 17246 */ MCD::OPC_FilterValue, 166, 1, 23, 0, 0, // Skip to: 17275 ++/* 17252 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 17255 */ MCD::OPC_FilterValue, 4, 5, 0, 0, // Skip to: 17265 ++/* 17260 */ MCD::OPC_Decode, 228, 14, 183, 1, // Opcode: XVFRSTPI_B ++/* 17265 */ MCD::OPC_FilterValue, 5, 10, 14, 0, // Skip to: 20864 ++/* 17270 */ MCD::OPC_Decode, 229, 14, 184, 1, // Opcode: XVFRSTPI_H ++/* 17275 */ MCD::OPC_FilterValue, 167, 1, 215, 4, 0, // Skip to: 18520 ++/* 17281 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 17284 */ MCD::OPC_FilterValue, 0, 223, 0, 0, // Skip to: 17512 ++/* 17289 */ MCD::OPC_ExtractField, 10, 5, // Inst{14-10} ... ++/* 17292 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 17302 ++/* 17297 */ MCD::OPC_Decode, 229, 13, 185, 1, // Opcode: XVCLO_B ++/* 17302 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 17312 ++/* 17307 */ MCD::OPC_Decode, 231, 13, 186, 1, // Opcode: XVCLO_H ++/* 17312 */ MCD::OPC_FilterValue, 2, 5, 0, 0, // Skip to: 17322 ++/* 17317 */ MCD::OPC_Decode, 232, 13, 187, 1, // Opcode: XVCLO_W ++/* 17322 */ MCD::OPC_FilterValue, 3, 5, 0, 0, // Skip to: 17332 ++/* 17327 */ MCD::OPC_Decode, 230, 13, 188, 1, // Opcode: XVCLO_D ++/* 17332 */ MCD::OPC_FilterValue, 4, 5, 0, 0, // Skip to: 17342 ++/* 17337 */ MCD::OPC_Decode, 233, 13, 185, 1, // Opcode: XVCLZ_B ++/* 17342 */ MCD::OPC_FilterValue, 5, 5, 0, 0, // Skip to: 17352 ++/* 17347 */ MCD::OPC_Decode, 235, 13, 186, 1, // Opcode: XVCLZ_H ++/* 17352 */ MCD::OPC_FilterValue, 6, 5, 0, 0, // Skip to: 17362 ++/* 17357 */ MCD::OPC_Decode, 236, 13, 187, 1, // Opcode: XVCLZ_W ++/* 17362 */ MCD::OPC_FilterValue, 7, 5, 0, 0, // Skip to: 17372 ++/* 17367 */ MCD::OPC_Decode, 234, 13, 188, 1, // Opcode: XVCLZ_D ++/* 17372 */ MCD::OPC_FilterValue, 8, 5, 0, 0, // Skip to: 17382 ++/* 17377 */ MCD::OPC_Decode, 199, 16, 185, 1, // Opcode: XVPCNT_B ++/* 17382 */ MCD::OPC_FilterValue, 9, 5, 0, 0, // Skip to: 17392 ++/* 17387 */ MCD::OPC_Decode, 201, 16, 186, 1, // Opcode: XVPCNT_H ++/* 17392 */ MCD::OPC_FilterValue, 10, 5, 0, 0, // Skip to: 17402 ++/* 17397 */ MCD::OPC_Decode, 202, 16, 187, 1, // Opcode: XVPCNT_W ++/* 17402 */ MCD::OPC_FilterValue, 11, 5, 0, 0, // Skip to: 17412 ++/* 17407 */ MCD::OPC_Decode, 200, 16, 188, 1, // Opcode: XVPCNT_D ++/* 17412 */ MCD::OPC_FilterValue, 12, 5, 0, 0, // Skip to: 17422 ++/* 17417 */ MCD::OPC_Decode, 182, 16, 185, 1, // Opcode: XVNEG_B ++/* 17422 */ MCD::OPC_FilterValue, 13, 5, 0, 0, // Skip to: 17432 ++/* 17427 */ MCD::OPC_Decode, 184, 16, 186, 1, // Opcode: XVNEG_H ++/* 17432 */ MCD::OPC_FilterValue, 14, 5, 0, 0, // Skip to: 17442 ++/* 17437 */ MCD::OPC_Decode, 185, 16, 187, 1, // Opcode: XVNEG_W ++/* 17442 */ MCD::OPC_FilterValue, 15, 5, 0, 0, // Skip to: 17452 ++/* 17447 */ MCD::OPC_Decode, 183, 16, 188, 1, // Opcode: XVNEG_D ++/* 17452 */ MCD::OPC_FilterValue, 16, 5, 0, 0, // Skip to: 17462 ++/* 17457 */ MCD::OPC_Decode, 137, 16, 185, 1, // Opcode: XVMSKLTZ_B ++/* 17462 */ MCD::OPC_FilterValue, 17, 5, 0, 0, // Skip to: 17472 ++/* 17467 */ MCD::OPC_Decode, 139, 16, 186, 1, // Opcode: XVMSKLTZ_H ++/* 17472 */ MCD::OPC_FilterValue, 18, 5, 0, 0, // Skip to: 17482 ++/* 17477 */ MCD::OPC_Decode, 140, 16, 187, 1, // Opcode: XVMSKLTZ_W ++/* 17482 */ MCD::OPC_FilterValue, 19, 5, 0, 0, // Skip to: 17492 ++/* 17487 */ MCD::OPC_Decode, 138, 16, 188, 1, // Opcode: XVMSKLTZ_D ++/* 17492 */ MCD::OPC_FilterValue, 20, 5, 0, 0, // Skip to: 17502 ++/* 17497 */ MCD::OPC_Decode, 136, 16, 185, 1, // Opcode: XVMSKGEZ_B ++/* 17502 */ MCD::OPC_FilterValue, 24, 29, 13, 0, // Skip to: 20864 ++/* 17507 */ MCD::OPC_Decode, 141, 16, 185, 1, // Opcode: XVMSKNZ_B ++/* 17512 */ MCD::OPC_FilterValue, 1, 253, 0, 0, // Skip to: 17770 ++/* 17517 */ MCD::OPC_ExtractField, 10, 5, // Inst{14-10} ... ++/* 17520 */ MCD::OPC_FilterValue, 6, 12, 0, 0, // Skip to: 17537 ++/* 17525 */ MCD::OPC_CheckField, 3, 2, 0, 4, 13, 0, // Skip to: 20864 ++/* 17532 */ MCD::OPC_Decode, 158, 17, 189, 1, // Opcode: XVSETEQZ_V ++/* 17537 */ MCD::OPC_FilterValue, 7, 12, 0, 0, // Skip to: 17554 ++/* 17542 */ MCD::OPC_CheckField, 3, 2, 0, 243, 12, 0, // Skip to: 20864 ++/* 17549 */ MCD::OPC_Decode, 159, 17, 189, 1, // Opcode: XVSETNEZ_V ++/* 17554 */ MCD::OPC_FilterValue, 8, 12, 0, 0, // Skip to: 17571 ++/* 17559 */ MCD::OPC_CheckField, 3, 2, 0, 226, 12, 0, // Skip to: 20864 ++/* 17566 */ MCD::OPC_Decode, 154, 17, 189, 1, // Opcode: XVSETANYEQZ_B ++/* 17571 */ MCD::OPC_FilterValue, 9, 12, 0, 0, // Skip to: 17588 ++/* 17576 */ MCD::OPC_CheckField, 3, 2, 0, 209, 12, 0, // Skip to: 20864 ++/* 17583 */ MCD::OPC_Decode, 156, 17, 190, 1, // Opcode: XVSETANYEQZ_H ++/* 17588 */ MCD::OPC_FilterValue, 10, 12, 0, 0, // Skip to: 17605 ++/* 17593 */ MCD::OPC_CheckField, 3, 2, 0, 192, 12, 0, // Skip to: 20864 ++/* 17600 */ MCD::OPC_Decode, 157, 17, 191, 1, // Opcode: XVSETANYEQZ_W ++/* 17605 */ MCD::OPC_FilterValue, 11, 12, 0, 0, // Skip to: 17622 ++/* 17610 */ MCD::OPC_CheckField, 3, 2, 0, 175, 12, 0, // Skip to: 20864 ++/* 17617 */ MCD::OPC_Decode, 155, 17, 192, 1, // Opcode: XVSETANYEQZ_D ++/* 17622 */ MCD::OPC_FilterValue, 12, 12, 0, 0, // Skip to: 17639 ++/* 17627 */ MCD::OPC_CheckField, 3, 2, 0, 158, 12, 0, // Skip to: 20864 ++/* 17634 */ MCD::OPC_Decode, 150, 17, 189, 1, // Opcode: XVSETALLNEZ_B ++/* 17639 */ MCD::OPC_FilterValue, 13, 12, 0, 0, // Skip to: 17656 ++/* 17644 */ MCD::OPC_CheckField, 3, 2, 0, 141, 12, 0, // Skip to: 20864 ++/* 17651 */ MCD::OPC_Decode, 152, 17, 190, 1, // Opcode: XVSETALLNEZ_H ++/* 17656 */ MCD::OPC_FilterValue, 14, 12, 0, 0, // Skip to: 17673 ++/* 17661 */ MCD::OPC_CheckField, 3, 2, 0, 124, 12, 0, // Skip to: 20864 ++/* 17668 */ MCD::OPC_Decode, 153, 17, 191, 1, // Opcode: XVSETALLNEZ_W ++/* 17673 */ MCD::OPC_FilterValue, 15, 12, 0, 0, // Skip to: 17690 ++/* 17678 */ MCD::OPC_CheckField, 3, 2, 0, 107, 12, 0, // Skip to: 20864 ++/* 17685 */ MCD::OPC_Decode, 151, 17, 192, 1, // Opcode: XVSETALLNEZ_D ++/* 17690 */ MCD::OPC_FilterValue, 17, 5, 0, 0, // Skip to: 17700 ++/* 17695 */ MCD::OPC_Decode, 195, 14, 187, 1, // Opcode: XVFLOGB_S ++/* 17700 */ MCD::OPC_FilterValue, 18, 5, 0, 0, // Skip to: 17710 ++/* 17705 */ MCD::OPC_Decode, 194, 14, 188, 1, // Opcode: XVFLOGB_D ++/* 17710 */ MCD::OPC_FilterValue, 21, 5, 0, 0, // Skip to: 17720 ++/* 17715 */ MCD::OPC_Decode, 134, 14, 187, 1, // Opcode: XVFCLASS_S ++/* 17720 */ MCD::OPC_FilterValue, 22, 5, 0, 0, // Skip to: 17730 ++/* 17725 */ MCD::OPC_Decode, 133, 14, 188, 1, // Opcode: XVFCLASS_D ++/* 17730 */ MCD::OPC_FilterValue, 25, 5, 0, 0, // Skip to: 17740 ++/* 17735 */ MCD::OPC_Decode, 233, 14, 187, 1, // Opcode: XVFSQRT_S ++/* 17740 */ MCD::OPC_FilterValue, 26, 5, 0, 0, // Skip to: 17750 ++/* 17745 */ MCD::OPC_Decode, 232, 14, 188, 1, // Opcode: XVFSQRT_D ++/* 17750 */ MCD::OPC_FilterValue, 29, 5, 0, 0, // Skip to: 17760 ++/* 17755 */ MCD::OPC_Decode, 215, 14, 187, 1, // Opcode: XVFRECIP_S ++/* 17760 */ MCD::OPC_FilterValue, 30, 27, 12, 0, // Skip to: 20864 ++/* 17765 */ MCD::OPC_Decode, 214, 14, 188, 1, // Opcode: XVFRECIP_D ++/* 17770 */ MCD::OPC_FilterValue, 2, 123, 0, 0, // Skip to: 17898 ++/* 17775 */ MCD::OPC_ExtractField, 10, 5, // Inst{14-10} ... ++/* 17778 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 17788 ++/* 17783 */ MCD::OPC_Decode, 227, 14, 187, 1, // Opcode: XVFRSQRT_S ++/* 17788 */ MCD::OPC_FilterValue, 2, 5, 0, 0, // Skip to: 17798 ++/* 17793 */ MCD::OPC_Decode, 226, 14, 188, 1, // Opcode: XVFRSQRT_D ++/* 17798 */ MCD::OPC_FilterValue, 13, 5, 0, 0, // Skip to: 17808 ++/* 17803 */ MCD::OPC_Decode, 225, 14, 187, 1, // Opcode: XVFRINT_S ++/* 17808 */ MCD::OPC_FilterValue, 14, 5, 0, 0, // Skip to: 17818 ++/* 17813 */ MCD::OPC_Decode, 224, 14, 188, 1, // Opcode: XVFRINT_D ++/* 17818 */ MCD::OPC_FilterValue, 17, 5, 0, 0, // Skip to: 17828 ++/* 17823 */ MCD::OPC_Decode, 217, 14, 187, 1, // Opcode: XVFRINTRM_S ++/* 17828 */ MCD::OPC_FilterValue, 18, 5, 0, 0, // Skip to: 17838 ++/* 17833 */ MCD::OPC_Decode, 216, 14, 188, 1, // Opcode: XVFRINTRM_D ++/* 17838 */ MCD::OPC_FilterValue, 21, 5, 0, 0, // Skip to: 17848 ++/* 17843 */ MCD::OPC_Decode, 221, 14, 187, 1, // Opcode: XVFRINTRP_S ++/* 17848 */ MCD::OPC_FilterValue, 22, 5, 0, 0, // Skip to: 17858 ++/* 17853 */ MCD::OPC_Decode, 220, 14, 188, 1, // Opcode: XVFRINTRP_D ++/* 17858 */ MCD::OPC_FilterValue, 25, 5, 0, 0, // Skip to: 17868 ++/* 17863 */ MCD::OPC_Decode, 223, 14, 187, 1, // Opcode: XVFRINTRZ_S ++/* 17868 */ MCD::OPC_FilterValue, 26, 5, 0, 0, // Skip to: 17878 ++/* 17873 */ MCD::OPC_Decode, 222, 14, 188, 1, // Opcode: XVFRINTRZ_D ++/* 17878 */ MCD::OPC_FilterValue, 29, 5, 0, 0, // Skip to: 17888 ++/* 17883 */ MCD::OPC_Decode, 219, 14, 187, 1, // Opcode: XVFRINTRNE_S ++/* 17888 */ MCD::OPC_FilterValue, 30, 155, 11, 0, // Skip to: 20864 ++/* 17893 */ MCD::OPC_Decode, 218, 14, 188, 1, // Opcode: XVFRINTRNE_D ++/* 17898 */ MCD::OPC_FilterValue, 3, 43, 0, 0, // Skip to: 17946 ++/* 17903 */ MCD::OPC_ExtractField, 10, 5, // Inst{14-10} ... ++/* 17906 */ MCD::OPC_FilterValue, 26, 5, 0, 0, // Skip to: 17916 ++/* 17911 */ MCD::OPC_Decode, 182, 14, 193, 1, // Opcode: XVFCVTL_S_H ++/* 17916 */ MCD::OPC_FilterValue, 27, 5, 0, 0, // Skip to: 17926 ++/* 17921 */ MCD::OPC_Decode, 180, 14, 193, 1, // Opcode: XVFCVTH_S_H ++/* 17926 */ MCD::OPC_FilterValue, 28, 5, 0, 0, // Skip to: 17936 ++/* 17931 */ MCD::OPC_Decode, 181, 14, 194, 1, // Opcode: XVFCVTL_D_S ++/* 17936 */ MCD::OPC_FilterValue, 29, 107, 11, 0, // Skip to: 20864 ++/* 17941 */ MCD::OPC_Decode, 179, 14, 194, 1, // Opcode: XVFCVTH_D_S ++/* 17946 */ MCD::OPC_FilterValue, 4, 203, 0, 0, // Skip to: 18154 ++/* 17951 */ MCD::OPC_ExtractField, 10, 5, // Inst{14-10} ... ++/* 17954 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 17964 ++/* 17959 */ MCD::OPC_Decode, 192, 14, 187, 1, // Opcode: XVFFINT_S_W ++/* 17964 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 17974 ++/* 17969 */ MCD::OPC_Decode, 193, 14, 187, 1, // Opcode: XVFFINT_S_WU ++/* 17974 */ MCD::OPC_FilterValue, 2, 5, 0, 0, // Skip to: 17984 ++/* 17979 */ MCD::OPC_Decode, 189, 14, 188, 1, // Opcode: XVFFINT_D_L ++/* 17984 */ MCD::OPC_FilterValue, 3, 5, 0, 0, // Skip to: 17994 ++/* 17989 */ MCD::OPC_Decode, 190, 14, 188, 1, // Opcode: XVFFINT_D_LU ++/* 17994 */ MCD::OPC_FilterValue, 4, 5, 0, 0, // Skip to: 18004 ++/* 17999 */ MCD::OPC_Decode, 188, 14, 194, 1, // Opcode: XVFFINTL_D_W ++/* 18004 */ MCD::OPC_FilterValue, 5, 5, 0, 0, // Skip to: 18014 ++/* 18009 */ MCD::OPC_Decode, 187, 14, 194, 1, // Opcode: XVFFINTH_D_W ++/* 18014 */ MCD::OPC_FilterValue, 12, 5, 0, 0, // Skip to: 18024 ++/* 18019 */ MCD::OPC_Decode, 136, 15, 187, 1, // Opcode: XVFTINT_W_S ++/* 18024 */ MCD::OPC_FilterValue, 13, 5, 0, 0, // Skip to: 18034 ++/* 18029 */ MCD::OPC_Decode, 133, 15, 188, 1, // Opcode: XVFTINT_L_D ++/* 18034 */ MCD::OPC_FilterValue, 14, 5, 0, 0, // Skip to: 18044 ++/* 18039 */ MCD::OPC_Decode, 242, 14, 187, 1, // Opcode: XVFTINTRM_W_S ++/* 18044 */ MCD::OPC_FilterValue, 15, 5, 0, 0, // Skip to: 18054 ++/* 18049 */ MCD::OPC_Decode, 240, 14, 188, 1, // Opcode: XVFTINTRM_L_D ++/* 18054 */ MCD::OPC_FilterValue, 16, 5, 0, 0, // Skip to: 18064 ++/* 18059 */ MCD::OPC_Decode, 252, 14, 187, 1, // Opcode: XVFTINTRP_W_S ++/* 18064 */ MCD::OPC_FilterValue, 17, 5, 0, 0, // Skip to: 18074 ++/* 18069 */ MCD::OPC_Decode, 250, 14, 188, 1, // Opcode: XVFTINTRP_L_D ++/* 18074 */ MCD::OPC_FilterValue, 18, 5, 0, 0, // Skip to: 18084 ++/* 18079 */ MCD::OPC_Decode, 131, 15, 187, 1, // Opcode: XVFTINTRZ_W_S ++/* 18084 */ MCD::OPC_FilterValue, 19, 5, 0, 0, // Skip to: 18094 ++/* 18089 */ MCD::OPC_Decode, 128, 15, 188, 1, // Opcode: XVFTINTRZ_L_D ++/* 18094 */ MCD::OPC_FilterValue, 20, 5, 0, 0, // Skip to: 18104 ++/* 18099 */ MCD::OPC_Decode, 247, 14, 187, 1, // Opcode: XVFTINTRNE_W_S ++/* 18104 */ MCD::OPC_FilterValue, 21, 5, 0, 0, // Skip to: 18114 ++/* 18109 */ MCD::OPC_Decode, 245, 14, 188, 1, // Opcode: XVFTINTRNE_L_D ++/* 18114 */ MCD::OPC_FilterValue, 22, 5, 0, 0, // Skip to: 18124 ++/* 18119 */ MCD::OPC_Decode, 134, 15, 187, 1, // Opcode: XVFTINT_WU_S ++/* 18124 */ MCD::OPC_FilterValue, 23, 5, 0, 0, // Skip to: 18134 ++/* 18129 */ MCD::OPC_Decode, 132, 15, 188, 1, // Opcode: XVFTINT_LU_D ++/* 18134 */ MCD::OPC_FilterValue, 28, 5, 0, 0, // Skip to: 18144 ++/* 18139 */ MCD::OPC_Decode, 129, 15, 187, 1, // Opcode: XVFTINTRZ_WU_S ++/* 18144 */ MCD::OPC_FilterValue, 29, 155, 10, 0, // Skip to: 20864 ++/* 18149 */ MCD::OPC_Decode, 255, 14, 188, 1, // Opcode: XVFTINTRZ_LU_D ++/* 18154 */ MCD::OPC_FilterValue, 5, 183, 0, 0, // Skip to: 18342 ++/* 18159 */ MCD::OPC_ExtractField, 10, 5, // Inst{14-10} ... ++/* 18162 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 18172 ++/* 18167 */ MCD::OPC_Decode, 237, 14, 194, 1, // Opcode: XVFTINTL_L_S ++/* 18172 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 18182 ++/* 18177 */ MCD::OPC_Decode, 236, 14, 194, 1, // Opcode: XVFTINTH_L_S ++/* 18182 */ MCD::OPC_FilterValue, 2, 5, 0, 0, // Skip to: 18192 ++/* 18187 */ MCD::OPC_Decode, 239, 14, 194, 1, // Opcode: XVFTINTRML_L_S ++/* 18192 */ MCD::OPC_FilterValue, 3, 5, 0, 0, // Skip to: 18202 ++/* 18197 */ MCD::OPC_Decode, 238, 14, 194, 1, // Opcode: XVFTINTRMH_L_S ++/* 18202 */ MCD::OPC_FilterValue, 4, 5, 0, 0, // Skip to: 18212 ++/* 18207 */ MCD::OPC_Decode, 249, 14, 194, 1, // Opcode: XVFTINTRPL_L_S ++/* 18212 */ MCD::OPC_FilterValue, 5, 5, 0, 0, // Skip to: 18222 ++/* 18217 */ MCD::OPC_Decode, 248, 14, 194, 1, // Opcode: XVFTINTRPH_L_S ++/* 18222 */ MCD::OPC_FilterValue, 6, 5, 0, 0, // Skip to: 18232 ++/* 18227 */ MCD::OPC_Decode, 254, 14, 194, 1, // Opcode: XVFTINTRZL_L_S ++/* 18232 */ MCD::OPC_FilterValue, 7, 5, 0, 0, // Skip to: 18242 ++/* 18237 */ MCD::OPC_Decode, 253, 14, 194, 1, // Opcode: XVFTINTRZH_L_S ++/* 18242 */ MCD::OPC_FilterValue, 8, 5, 0, 0, // Skip to: 18252 ++/* 18247 */ MCD::OPC_Decode, 244, 14, 194, 1, // Opcode: XVFTINTRNEL_L_S ++/* 18252 */ MCD::OPC_FilterValue, 9, 5, 0, 0, // Skip to: 18262 ++/* 18257 */ MCD::OPC_Decode, 243, 14, 194, 1, // Opcode: XVFTINTRNEH_L_S ++/* 18262 */ MCD::OPC_FilterValue, 24, 5, 0, 0, // Skip to: 18272 ++/* 18267 */ MCD::OPC_Decode, 248, 13, 195, 1, // Opcode: XVEXTH_H_B ++/* 18272 */ MCD::OPC_FilterValue, 25, 5, 0, 0, // Skip to: 18282 ++/* 18277 */ MCD::OPC_Decode, 252, 13, 193, 1, // Opcode: XVEXTH_W_H ++/* 18282 */ MCD::OPC_FilterValue, 26, 5, 0, 0, // Skip to: 18292 ++/* 18287 */ MCD::OPC_Decode, 246, 13, 194, 1, // Opcode: XVEXTH_D_W ++/* 18292 */ MCD::OPC_FilterValue, 27, 5, 0, 0, // Skip to: 18302 ++/* 18297 */ MCD::OPC_Decode, 250, 13, 188, 1, // Opcode: XVEXTH_Q_D ++/* 18302 */ MCD::OPC_FilterValue, 28, 5, 0, 0, // Skip to: 18312 ++/* 18307 */ MCD::OPC_Decode, 247, 13, 195, 1, // Opcode: XVEXTH_HU_BU ++/* 18312 */ MCD::OPC_FilterValue, 29, 5, 0, 0, // Skip to: 18322 ++/* 18317 */ MCD::OPC_Decode, 251, 13, 193, 1, // Opcode: XVEXTH_WU_HU ++/* 18322 */ MCD::OPC_FilterValue, 30, 5, 0, 0, // Skip to: 18332 ++/* 18327 */ MCD::OPC_Decode, 245, 13, 194, 1, // Opcode: XVEXTH_DU_WU ++/* 18332 */ MCD::OPC_FilterValue, 31, 223, 9, 0, // Skip to: 20864 ++/* 18337 */ MCD::OPC_Decode, 249, 13, 188, 1, // Opcode: XVEXTH_QU_DU ++/* 18342 */ MCD::OPC_FilterValue, 6, 163, 0, 0, // Skip to: 18510 ++/* 18347 */ MCD::OPC_ExtractField, 10, 5, // Inst{14-10} ... ++/* 18350 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 18360 ++/* 18355 */ MCD::OPC_Decode, 228, 16, 196, 1, // Opcode: XVREPLGR2VR_B ++/* 18360 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 18370 ++/* 18365 */ MCD::OPC_Decode, 230, 16, 197, 1, // Opcode: XVREPLGR2VR_H ++/* 18370 */ MCD::OPC_FilterValue, 2, 5, 0, 0, // Skip to: 18380 ++/* 18375 */ MCD::OPC_Decode, 231, 16, 198, 1, // Opcode: XVREPLGR2VR_W ++/* 18380 */ MCD::OPC_FilterValue, 3, 5, 0, 0, // Skip to: 18390 ++/* 18385 */ MCD::OPC_Decode, 229, 16, 199, 1, // Opcode: XVREPLGR2VR_D ++/* 18390 */ MCD::OPC_FilterValue, 4, 5, 0, 0, // Skip to: 18400 ++/* 18395 */ MCD::OPC_Decode, 239, 7, 195, 1, // Opcode: VEXT2XV_H_B ++/* 18400 */ MCD::OPC_FilterValue, 5, 5, 0, 0, // Skip to: 18410 ++/* 18405 */ MCD::OPC_Decode, 242, 7, 200, 1, // Opcode: VEXT2XV_W_B ++/* 18410 */ MCD::OPC_FilterValue, 6, 5, 0, 0, // Skip to: 18420 ++/* 18415 */ MCD::OPC_Decode, 235, 7, 201, 1, // Opcode: VEXT2XV_D_B ++/* 18420 */ MCD::OPC_FilterValue, 7, 5, 0, 0, // Skip to: 18430 ++/* 18425 */ MCD::OPC_Decode, 243, 7, 193, 1, // Opcode: VEXT2XV_W_H ++/* 18430 */ MCD::OPC_FilterValue, 8, 5, 0, 0, // Skip to: 18440 ++/* 18435 */ MCD::OPC_Decode, 236, 7, 202, 1, // Opcode: VEXT2XV_D_H ++/* 18440 */ MCD::OPC_FilterValue, 9, 5, 0, 0, // Skip to: 18450 ++/* 18445 */ MCD::OPC_Decode, 237, 7, 194, 1, // Opcode: VEXT2XV_D_W ++/* 18450 */ MCD::OPC_FilterValue, 10, 5, 0, 0, // Skip to: 18460 ++/* 18455 */ MCD::OPC_Decode, 238, 7, 195, 1, // Opcode: VEXT2XV_HU_BU ++/* 18460 */ MCD::OPC_FilterValue, 11, 5, 0, 0, // Skip to: 18470 ++/* 18465 */ MCD::OPC_Decode, 240, 7, 200, 1, // Opcode: VEXT2XV_WU_BU ++/* 18470 */ MCD::OPC_FilterValue, 12, 5, 0, 0, // Skip to: 18480 ++/* 18475 */ MCD::OPC_Decode, 232, 7, 201, 1, // Opcode: VEXT2XV_DU_BU ++/* 18480 */ MCD::OPC_FilterValue, 13, 5, 0, 0, // Skip to: 18490 ++/* 18485 */ MCD::OPC_Decode, 241, 7, 193, 1, // Opcode: VEXT2XV_WU_HU ++/* 18490 */ MCD::OPC_FilterValue, 14, 5, 0, 0, // Skip to: 18500 ++/* 18495 */ MCD::OPC_Decode, 233, 7, 202, 1, // Opcode: VEXT2XV_DU_HU ++/* 18500 */ MCD::OPC_FilterValue, 15, 55, 9, 0, // Skip to: 20864 ++/* 18505 */ MCD::OPC_Decode, 234, 7, 194, 1, // Opcode: VEXT2XV_DU_WU ++/* 18510 */ MCD::OPC_FilterValue, 7, 45, 9, 0, // Skip to: 20864 ++/* 18515 */ MCD::OPC_Decode, 145, 15, 182, 1, // Opcode: XVHSELI_D ++/* 18520 */ MCD::OPC_FilterValue, 168, 1, 66, 0, 0, // Skip to: 18592 ++/* 18526 */ MCD::OPC_ExtractField, 16, 2, // Inst{17-16} ... ++/* 18529 */ MCD::OPC_FilterValue, 0, 48, 0, 0, // Skip to: 18582 ++/* 18534 */ MCD::OPC_ExtractField, 15, 1, // Inst{15} ... ++/* 18537 */ MCD::OPC_FilterValue, 0, 30, 0, 0, // Skip to: 18572 ++/* 18542 */ MCD::OPC_ExtractField, 14, 1, // Inst{14} ... ++/* 18545 */ MCD::OPC_FilterValue, 0, 12, 0, 0, // Skip to: 18562 ++/* 18550 */ MCD::OPC_CheckField, 13, 1, 1, 3, 9, 0, // Skip to: 20864 ++/* 18557 */ MCD::OPC_Decode, 242, 16, 203, 1, // Opcode: XVROTRI_B ++/* 18562 */ MCD::OPC_FilterValue, 1, 249, 8, 0, // Skip to: 20864 ++/* 18567 */ MCD::OPC_Decode, 244, 16, 204, 1, // Opcode: XVROTRI_H ++/* 18572 */ MCD::OPC_FilterValue, 1, 239, 8, 0, // Skip to: 20864 ++/* 18577 */ MCD::OPC_Decode, 245, 16, 181, 1, // Opcode: XVROTRI_W ++/* 18582 */ MCD::OPC_FilterValue, 1, 229, 8, 0, // Skip to: 20864 ++/* 18587 */ MCD::OPC_Decode, 243, 16, 205, 1, // Opcode: XVROTRI_D ++/* 18592 */ MCD::OPC_FilterValue, 169, 1, 66, 0, 0, // Skip to: 18664 ++/* 18598 */ MCD::OPC_ExtractField, 16, 2, // Inst{17-16} ... ++/* 18601 */ MCD::OPC_FilterValue, 0, 48, 0, 0, // Skip to: 18654 ++/* 18606 */ MCD::OPC_ExtractField, 15, 1, // Inst{15} ... ++/* 18609 */ MCD::OPC_FilterValue, 0, 30, 0, 0, // Skip to: 18644 ++/* 18614 */ MCD::OPC_ExtractField, 14, 1, // Inst{14} ... ++/* 18617 */ MCD::OPC_FilterValue, 0, 12, 0, 0, // Skip to: 18634 ++/* 18622 */ MCD::OPC_CheckField, 13, 1, 1, 187, 8, 0, // Skip to: 20864 ++/* 18629 */ MCD::OPC_Decode, 159, 18, 203, 1, // Opcode: XVSRLRI_B ++/* 18634 */ MCD::OPC_FilterValue, 1, 177, 8, 0, // Skip to: 20864 ++/* 18639 */ MCD::OPC_Decode, 161, 18, 204, 1, // Opcode: XVSRLRI_H ++/* 18644 */ MCD::OPC_FilterValue, 1, 167, 8, 0, // Skip to: 20864 ++/* 18649 */ MCD::OPC_Decode, 162, 18, 181, 1, // Opcode: XVSRLRI_W ++/* 18654 */ MCD::OPC_FilterValue, 1, 157, 8, 0, // Skip to: 20864 ++/* 18659 */ MCD::OPC_Decode, 160, 18, 205, 1, // Opcode: XVSRLRI_D ++/* 18664 */ MCD::OPC_FilterValue, 170, 1, 66, 0, 0, // Skip to: 18736 ++/* 18670 */ MCD::OPC_ExtractField, 16, 2, // Inst{17-16} ... ++/* 18673 */ MCD::OPC_FilterValue, 0, 48, 0, 0, // Skip to: 18726 ++/* 18678 */ MCD::OPC_ExtractField, 15, 1, // Inst{15} ... ++/* 18681 */ MCD::OPC_FilterValue, 0, 30, 0, 0, // Skip to: 18716 ++/* 18686 */ MCD::OPC_ExtractField, 14, 1, // Inst{14} ... ++/* 18689 */ MCD::OPC_FilterValue, 0, 12, 0, 0, // Skip to: 18706 ++/* 18694 */ MCD::OPC_CheckField, 13, 1, 1, 115, 8, 0, // Skip to: 20864 ++/* 18701 */ MCD::OPC_Decode, 253, 17, 203, 1, // Opcode: XVSRARI_B ++/* 18706 */ MCD::OPC_FilterValue, 1, 105, 8, 0, // Skip to: 20864 ++/* 18711 */ MCD::OPC_Decode, 255, 17, 204, 1, // Opcode: XVSRARI_H ++/* 18716 */ MCD::OPC_FilterValue, 1, 95, 8, 0, // Skip to: 20864 ++/* 18721 */ MCD::OPC_Decode, 128, 18, 181, 1, // Opcode: XVSRARI_W ++/* 18726 */ MCD::OPC_FilterValue, 1, 85, 8, 0, // Skip to: 20864 ++/* 18731 */ MCD::OPC_Decode, 254, 17, 205, 1, // Opcode: XVSRARI_D ++/* 18736 */ MCD::OPC_FilterValue, 186, 1, 30, 0, 0, // Skip to: 18772 ++/* 18742 */ MCD::OPC_ExtractField, 13, 5, // Inst{17-13} ... ++/* 18745 */ MCD::OPC_FilterValue, 30, 5, 0, 0, // Skip to: 18755 ++/* 18750 */ MCD::OPC_Decode, 163, 15, 206, 1, // Opcode: XVINSGR2VR_W ++/* 18755 */ MCD::OPC_FilterValue, 31, 56, 8, 0, // Skip to: 20864 ++/* 18760 */ MCD::OPC_CheckField, 12, 1, 0, 49, 8, 0, // Skip to: 20864 ++/* 18767 */ MCD::OPC_Decode, 162, 15, 207, 1, // Opcode: XVINSGR2VR_D ++/* 18772 */ MCD::OPC_FilterValue, 187, 1, 30, 0, 0, // Skip to: 18808 ++/* 18778 */ MCD::OPC_ExtractField, 13, 5, // Inst{17-13} ... ++/* 18781 */ MCD::OPC_FilterValue, 30, 5, 0, 0, // Skip to: 18791 ++/* 18786 */ MCD::OPC_Decode, 220, 16, 208, 1, // Opcode: XVPICKVE2GR_W ++/* 18791 */ MCD::OPC_FilterValue, 31, 20, 8, 0, // Skip to: 20864 ++/* 18796 */ MCD::OPC_CheckField, 12, 1, 0, 13, 8, 0, // Skip to: 20864 ++/* 18803 */ MCD::OPC_Decode, 218, 16, 209, 1, // Opcode: XVPICKVE2GR_D ++/* 18808 */ MCD::OPC_FilterValue, 188, 1, 30, 0, 0, // Skip to: 18844 ++/* 18814 */ MCD::OPC_ExtractField, 13, 5, // Inst{17-13} ... ++/* 18817 */ MCD::OPC_FilterValue, 30, 5, 0, 0, // Skip to: 18827 ++/* 18822 */ MCD::OPC_Decode, 221, 16, 208, 1, // Opcode: XVPICKVE2GR_WU ++/* 18827 */ MCD::OPC_FilterValue, 31, 240, 7, 0, // Skip to: 20864 ++/* 18832 */ MCD::OPC_CheckField, 12, 1, 0, 233, 7, 0, // Skip to: 20864 ++/* 18839 */ MCD::OPC_Decode, 219, 16, 209, 1, // Opcode: XVPICKVE2GR_DU ++/* 18844 */ MCD::OPC_FilterValue, 189, 1, 66, 0, 0, // Skip to: 18916 ++/* 18850 */ MCD::OPC_ExtractField, 14, 4, // Inst{17-14} ... ++/* 18853 */ MCD::OPC_FilterValue, 14, 5, 0, 0, // Skip to: 18863 ++/* 18858 */ MCD::OPC_Decode, 224, 16, 210, 1, // Opcode: XVREPL128VEI_B ++/* 18863 */ MCD::OPC_FilterValue, 15, 204, 7, 0, // Skip to: 20864 ++/* 18868 */ MCD::OPC_ExtractField, 13, 1, // Inst{13} ... ++/* 18871 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 18881 ++/* 18876 */ MCD::OPC_Decode, 226, 16, 211, 1, // Opcode: XVREPL128VEI_H ++/* 18881 */ MCD::OPC_FilterValue, 1, 186, 7, 0, // Skip to: 20864 ++/* 18886 */ MCD::OPC_ExtractField, 12, 1, // Inst{12} ... ++/* 18889 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 18899 ++/* 18894 */ MCD::OPC_Decode, 227, 16, 212, 1, // Opcode: XVREPL128VEI_W ++/* 18899 */ MCD::OPC_FilterValue, 1, 168, 7, 0, // Skip to: 20864 ++/* 18904 */ MCD::OPC_CheckField, 11, 1, 0, 161, 7, 0, // Skip to: 20864 ++/* 18911 */ MCD::OPC_Decode, 225, 16, 213, 1, // Opcode: XVREPL128VEI_D ++/* 18916 */ MCD::OPC_FilterValue, 191, 1, 30, 0, 0, // Skip to: 18952 ++/* 18922 */ MCD::OPC_ExtractField, 13, 5, // Inst{17-13} ... ++/* 18925 */ MCD::OPC_FilterValue, 30, 5, 0, 0, // Skip to: 18935 ++/* 18930 */ MCD::OPC_Decode, 165, 15, 214, 1, // Opcode: XVINSVE0_W ++/* 18935 */ MCD::OPC_FilterValue, 31, 132, 7, 0, // Skip to: 20864 ++/* 18940 */ MCD::OPC_CheckField, 12, 1, 0, 125, 7, 0, // Skip to: 20864 ++/* 18947 */ MCD::OPC_Decode, 164, 15, 215, 1, // Opcode: XVINSVE0_D ++/* 18952 */ MCD::OPC_FilterValue, 192, 1, 30, 0, 0, // Skip to: 18988 ++/* 18958 */ MCD::OPC_ExtractField, 13, 5, // Inst{17-13} ... ++/* 18961 */ MCD::OPC_FilterValue, 30, 5, 0, 0, // Skip to: 18971 ++/* 18966 */ MCD::OPC_Decode, 223, 16, 214, 1, // Opcode: XVPICKVE_W ++/* 18971 */ MCD::OPC_FilterValue, 31, 96, 7, 0, // Skip to: 20864 ++/* 18976 */ MCD::OPC_CheckField, 12, 1, 0, 89, 7, 0, // Skip to: 20864 ++/* 18983 */ MCD::OPC_Decode, 222, 16, 215, 1, // Opcode: XVPICKVE_D ++/* 18988 */ MCD::OPC_FilterValue, 193, 1, 58, 0, 0, // Skip to: 19052 ++/* 18994 */ MCD::OPC_ExtractField, 10, 8, // Inst{17-10} ... ++/* 18997 */ MCD::OPC_FilterValue, 192, 1, 5, 0, 0, // Skip to: 19008 ++/* 19003 */ MCD::OPC_Decode, 232, 16, 185, 1, // Opcode: XVREPLVE0_B ++/* 19008 */ MCD::OPC_FilterValue, 224, 1, 5, 0, 0, // Skip to: 19019 ++/* 19014 */ MCD::OPC_Decode, 234, 16, 186, 1, // Opcode: XVREPLVE0_H ++/* 19019 */ MCD::OPC_FilterValue, 240, 1, 5, 0, 0, // Skip to: 19030 ++/* 19025 */ MCD::OPC_Decode, 236, 16, 187, 1, // Opcode: XVREPLVE0_W ++/* 19030 */ MCD::OPC_FilterValue, 248, 1, 5, 0, 0, // Skip to: 19041 ++/* 19036 */ MCD::OPC_Decode, 233, 16, 188, 1, // Opcode: XVREPLVE0_D ++/* 19041 */ MCD::OPC_FilterValue, 252, 1, 25, 7, 0, // Skip to: 20864 ++/* 19047 */ MCD::OPC_Decode, 235, 16, 185, 1, // Opcode: XVREPLVE0_Q ++/* 19052 */ MCD::OPC_FilterValue, 194, 1, 65, 0, 0, // Skip to: 19123 ++/* 19058 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 19061 */ MCD::OPC_FilterValue, 0, 30, 0, 0, // Skip to: 19096 ++/* 19066 */ MCD::OPC_ExtractField, 14, 1, // Inst{14} ... ++/* 19069 */ MCD::OPC_FilterValue, 0, 12, 0, 0, // Skip to: 19086 ++/* 19074 */ MCD::OPC_CheckField, 13, 1, 1, 247, 6, 0, // Skip to: 20864 ++/* 19081 */ MCD::OPC_Decode, 207, 17, 216, 1, // Opcode: XVSLLWIL_H_B ++/* 19086 */ MCD::OPC_FilterValue, 1, 237, 6, 0, // Skip to: 20864 ++/* 19091 */ MCD::OPC_Decode, 209, 17, 217, 1, // Opcode: XVSLLWIL_W_H ++/* 19096 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 19106 ++/* 19101 */ MCD::OPC_Decode, 205, 17, 218, 1, // Opcode: XVSLLWIL_D_W ++/* 19106 */ MCD::OPC_FilterValue, 2, 217, 6, 0, // Skip to: 20864 ++/* 19111 */ MCD::OPC_CheckField, 10, 5, 0, 210, 6, 0, // Skip to: 20864 ++/* 19118 */ MCD::OPC_Decode, 254, 13, 188, 1, // Opcode: XVEXTL_Q_D ++/* 19123 */ MCD::OPC_FilterValue, 195, 1, 65, 0, 0, // Skip to: 19194 ++/* 19129 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 19132 */ MCD::OPC_FilterValue, 0, 30, 0, 0, // Skip to: 19167 ++/* 19137 */ MCD::OPC_ExtractField, 14, 1, // Inst{14} ... ++/* 19140 */ MCD::OPC_FilterValue, 0, 12, 0, 0, // Skip to: 19157 ++/* 19145 */ MCD::OPC_CheckField, 13, 1, 1, 176, 6, 0, // Skip to: 20864 ++/* 19152 */ MCD::OPC_Decode, 206, 17, 216, 1, // Opcode: XVSLLWIL_HU_BU ++/* 19157 */ MCD::OPC_FilterValue, 1, 166, 6, 0, // Skip to: 20864 ++/* 19162 */ MCD::OPC_Decode, 208, 17, 217, 1, // Opcode: XVSLLWIL_WU_HU ++/* 19167 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 19177 ++/* 19172 */ MCD::OPC_Decode, 204, 17, 218, 1, // Opcode: XVSLLWIL_DU_WU ++/* 19177 */ MCD::OPC_FilterValue, 2, 146, 6, 0, // Skip to: 20864 ++/* 19182 */ MCD::OPC_CheckField, 10, 5, 0, 139, 6, 0, // Skip to: 20864 ++/* 19189 */ MCD::OPC_Decode, 253, 13, 188, 1, // Opcode: XVEXTL_QU_DU ++/* 19194 */ MCD::OPC_FilterValue, 196, 1, 66, 0, 0, // Skip to: 19266 ++/* 19200 */ MCD::OPC_ExtractField, 16, 2, // Inst{17-16} ... ++/* 19203 */ MCD::OPC_FilterValue, 0, 48, 0, 0, // Skip to: 19256 ++/* 19208 */ MCD::OPC_ExtractField, 15, 1, // Inst{15} ... ++/* 19211 */ MCD::OPC_FilterValue, 0, 30, 0, 0, // Skip to: 19246 ++/* 19216 */ MCD::OPC_ExtractField, 14, 1, // Inst{14} ... ++/* 19219 */ MCD::OPC_FilterValue, 0, 12, 0, 0, // Skip to: 19236 ++/* 19224 */ MCD::OPC_CheckField, 13, 1, 1, 97, 6, 0, // Skip to: 20864 ++/* 19231 */ MCD::OPC_Decode, 200, 13, 203, 1, // Opcode: XVBITCLRI_B ++/* 19236 */ MCD::OPC_FilterValue, 1, 87, 6, 0, // Skip to: 20864 ++/* 19241 */ MCD::OPC_Decode, 202, 13, 204, 1, // Opcode: XVBITCLRI_H ++/* 19246 */ MCD::OPC_FilterValue, 1, 77, 6, 0, // Skip to: 20864 ++/* 19251 */ MCD::OPC_Decode, 203, 13, 181, 1, // Opcode: XVBITCLRI_W ++/* 19256 */ MCD::OPC_FilterValue, 1, 67, 6, 0, // Skip to: 20864 ++/* 19261 */ MCD::OPC_Decode, 201, 13, 205, 1, // Opcode: XVBITCLRI_D ++/* 19266 */ MCD::OPC_FilterValue, 197, 1, 66, 0, 0, // Skip to: 19338 ++/* 19272 */ MCD::OPC_ExtractField, 16, 2, // Inst{17-16} ... ++/* 19275 */ MCD::OPC_FilterValue, 0, 48, 0, 0, // Skip to: 19328 ++/* 19280 */ MCD::OPC_ExtractField, 15, 1, // Inst{15} ... ++/* 19283 */ MCD::OPC_FilterValue, 0, 30, 0, 0, // Skip to: 19318 ++/* 19288 */ MCD::OPC_ExtractField, 14, 1, // Inst{14} ... ++/* 19291 */ MCD::OPC_FilterValue, 0, 12, 0, 0, // Skip to: 19308 ++/* 19296 */ MCD::OPC_CheckField, 13, 1, 1, 25, 6, 0, // Skip to: 20864 ++/* 19303 */ MCD::OPC_Decode, 219, 13, 203, 1, // Opcode: XVBITSETI_B ++/* 19308 */ MCD::OPC_FilterValue, 1, 15, 6, 0, // Skip to: 20864 ++/* 19313 */ MCD::OPC_Decode, 221, 13, 204, 1, // Opcode: XVBITSETI_H ++/* 19318 */ MCD::OPC_FilterValue, 1, 5, 6, 0, // Skip to: 20864 ++/* 19323 */ MCD::OPC_Decode, 222, 13, 181, 1, // Opcode: XVBITSETI_W ++/* 19328 */ MCD::OPC_FilterValue, 1, 251, 5, 0, // Skip to: 20864 ++/* 19333 */ MCD::OPC_Decode, 220, 13, 205, 1, // Opcode: XVBITSETI_D ++/* 19338 */ MCD::OPC_FilterValue, 198, 1, 66, 0, 0, // Skip to: 19410 ++/* 19344 */ MCD::OPC_ExtractField, 16, 2, // Inst{17-16} ... ++/* 19347 */ MCD::OPC_FilterValue, 0, 48, 0, 0, // Skip to: 19400 ++/* 19352 */ MCD::OPC_ExtractField, 15, 1, // Inst{15} ... ++/* 19355 */ MCD::OPC_FilterValue, 0, 30, 0, 0, // Skip to: 19390 ++/* 19360 */ MCD::OPC_ExtractField, 14, 1, // Inst{14} ... ++/* 19363 */ MCD::OPC_FilterValue, 0, 12, 0, 0, // Skip to: 19380 ++/* 19368 */ MCD::OPC_CheckField, 13, 1, 1, 209, 5, 0, // Skip to: 20864 ++/* 19375 */ MCD::OPC_Decode, 208, 13, 203, 1, // Opcode: XVBITREVI_B ++/* 19380 */ MCD::OPC_FilterValue, 1, 199, 5, 0, // Skip to: 20864 ++/* 19385 */ MCD::OPC_Decode, 210, 13, 204, 1, // Opcode: XVBITREVI_H ++/* 19390 */ MCD::OPC_FilterValue, 1, 189, 5, 0, // Skip to: 20864 ++/* 19395 */ MCD::OPC_Decode, 211, 13, 181, 1, // Opcode: XVBITREVI_W ++/* 19400 */ MCD::OPC_FilterValue, 1, 179, 5, 0, // Skip to: 20864 ++/* 19405 */ MCD::OPC_Decode, 209, 13, 205, 1, // Opcode: XVBITREVI_D ++/* 19410 */ MCD::OPC_FilterValue, 201, 1, 66, 0, 0, // Skip to: 19482 ++/* 19416 */ MCD::OPC_ExtractField, 16, 2, // Inst{17-16} ... ++/* 19419 */ MCD::OPC_FilterValue, 0, 48, 0, 0, // Skip to: 19472 ++/* 19424 */ MCD::OPC_ExtractField, 15, 1, // Inst{15} ... ++/* 19427 */ MCD::OPC_FilterValue, 0, 30, 0, 0, // Skip to: 19462 ++/* 19432 */ MCD::OPC_ExtractField, 14, 1, // Inst{14} ... ++/* 19435 */ MCD::OPC_FilterValue, 0, 12, 0, 0, // Skip to: 19452 ++/* 19440 */ MCD::OPC_CheckField, 13, 1, 1, 137, 5, 0, // Skip to: 20864 ++/* 19447 */ MCD::OPC_Decode, 130, 17, 203, 1, // Opcode: XVSAT_B ++/* 19452 */ MCD::OPC_FilterValue, 1, 127, 5, 0, // Skip to: 20864 ++/* 19457 */ MCD::OPC_Decode, 134, 17, 204, 1, // Opcode: XVSAT_H ++/* 19462 */ MCD::OPC_FilterValue, 1, 117, 5, 0, // Skip to: 20864 ++/* 19467 */ MCD::OPC_Decode, 136, 17, 181, 1, // Opcode: XVSAT_W ++/* 19472 */ MCD::OPC_FilterValue, 1, 107, 5, 0, // Skip to: 20864 ++/* 19477 */ MCD::OPC_Decode, 132, 17, 205, 1, // Opcode: XVSAT_D ++/* 19482 */ MCD::OPC_FilterValue, 202, 1, 66, 0, 0, // Skip to: 19554 ++/* 19488 */ MCD::OPC_ExtractField, 16, 2, // Inst{17-16} ... ++/* 19491 */ MCD::OPC_FilterValue, 0, 48, 0, 0, // Skip to: 19544 ++/* 19496 */ MCD::OPC_ExtractField, 15, 1, // Inst{15} ... ++/* 19499 */ MCD::OPC_FilterValue, 0, 30, 0, 0, // Skip to: 19534 ++/* 19504 */ MCD::OPC_ExtractField, 14, 1, // Inst{14} ... ++/* 19507 */ MCD::OPC_FilterValue, 0, 12, 0, 0, // Skip to: 19524 ++/* 19512 */ MCD::OPC_CheckField, 13, 1, 1, 65, 5, 0, // Skip to: 20864 ++/* 19519 */ MCD::OPC_Decode, 131, 17, 203, 1, // Opcode: XVSAT_BU ++/* 19524 */ MCD::OPC_FilterValue, 1, 55, 5, 0, // Skip to: 20864 ++/* 19529 */ MCD::OPC_Decode, 135, 17, 204, 1, // Opcode: XVSAT_HU ++/* 19534 */ MCD::OPC_FilterValue, 1, 45, 5, 0, // Skip to: 20864 ++/* 19539 */ MCD::OPC_Decode, 137, 17, 181, 1, // Opcode: XVSAT_WU ++/* 19544 */ MCD::OPC_FilterValue, 1, 35, 5, 0, // Skip to: 20864 ++/* 19549 */ MCD::OPC_Decode, 133, 17, 205, 1, // Opcode: XVSAT_DU ++/* 19554 */ MCD::OPC_FilterValue, 203, 1, 66, 0, 0, // Skip to: 19626 ++/* 19560 */ MCD::OPC_ExtractField, 16, 2, // Inst{17-16} ... ++/* 19563 */ MCD::OPC_FilterValue, 0, 48, 0, 0, // Skip to: 19616 ++/* 19568 */ MCD::OPC_ExtractField, 15, 1, // Inst{15} ... ++/* 19571 */ MCD::OPC_FilterValue, 0, 30, 0, 0, // Skip to: 19606 ++/* 19576 */ MCD::OPC_ExtractField, 14, 1, // Inst{14} ... ++/* 19579 */ MCD::OPC_FilterValue, 0, 12, 0, 0, // Skip to: 19596 ++/* 19584 */ MCD::OPC_CheckField, 13, 1, 1, 249, 4, 0, // Skip to: 20864 ++/* 19591 */ MCD::OPC_Decode, 196, 17, 203, 1, // Opcode: XVSLLI_B ++/* 19596 */ MCD::OPC_FilterValue, 1, 239, 4, 0, // Skip to: 20864 ++/* 19601 */ MCD::OPC_Decode, 200, 17, 204, 1, // Opcode: XVSLLI_H ++/* 19606 */ MCD::OPC_FilterValue, 1, 229, 4, 0, // Skip to: 20864 ++/* 19611 */ MCD::OPC_Decode, 202, 17, 181, 1, // Opcode: XVSLLI_W ++/* 19616 */ MCD::OPC_FilterValue, 1, 219, 4, 0, // Skip to: 20864 ++/* 19621 */ MCD::OPC_Decode, 198, 17, 205, 1, // Opcode: XVSLLI_D ++/* 19626 */ MCD::OPC_FilterValue, 204, 1, 66, 0, 0, // Skip to: 19698 ++/* 19632 */ MCD::OPC_ExtractField, 16, 2, // Inst{17-16} ... ++/* 19635 */ MCD::OPC_FilterValue, 0, 48, 0, 0, // Skip to: 19688 ++/* 19640 */ MCD::OPC_ExtractField, 15, 1, // Inst{15} ... ++/* 19643 */ MCD::OPC_FilterValue, 0, 30, 0, 0, // Skip to: 19678 ++/* 19648 */ MCD::OPC_ExtractField, 14, 1, // Inst{14} ... ++/* 19651 */ MCD::OPC_FilterValue, 0, 12, 0, 0, // Skip to: 19668 ++/* 19656 */ MCD::OPC_CheckField, 13, 1, 1, 177, 4, 0, // Skip to: 20864 ++/* 19663 */ MCD::OPC_Decode, 144, 18, 203, 1, // Opcode: XVSRLI_B ++/* 19668 */ MCD::OPC_FilterValue, 1, 167, 4, 0, // Skip to: 20864 ++/* 19673 */ MCD::OPC_Decode, 148, 18, 204, 1, // Opcode: XVSRLI_H ++/* 19678 */ MCD::OPC_FilterValue, 1, 157, 4, 0, // Skip to: 20864 ++/* 19683 */ MCD::OPC_Decode, 150, 18, 181, 1, // Opcode: XVSRLI_W ++/* 19688 */ MCD::OPC_FilterValue, 1, 147, 4, 0, // Skip to: 20864 ++/* 19693 */ MCD::OPC_Decode, 146, 18, 205, 1, // Opcode: XVSRLI_D ++/* 19698 */ MCD::OPC_FilterValue, 205, 1, 66, 0, 0, // Skip to: 19770 ++/* 19704 */ MCD::OPC_ExtractField, 16, 2, // Inst{17-16} ... ++/* 19707 */ MCD::OPC_FilterValue, 0, 48, 0, 0, // Skip to: 19760 ++/* 19712 */ MCD::OPC_ExtractField, 15, 1, // Inst{15} ... ++/* 19715 */ MCD::OPC_FilterValue, 0, 30, 0, 0, // Skip to: 19750 ++/* 19720 */ MCD::OPC_ExtractField, 14, 1, // Inst{14} ... ++/* 19723 */ MCD::OPC_FilterValue, 0, 12, 0, 0, // Skip to: 19740 ++/* 19728 */ MCD::OPC_CheckField, 13, 1, 1, 105, 4, 0, // Skip to: 20864 ++/* 19735 */ MCD::OPC_Decode, 238, 17, 203, 1, // Opcode: XVSRAI_B ++/* 19740 */ MCD::OPC_FilterValue, 1, 95, 4, 0, // Skip to: 20864 ++/* 19745 */ MCD::OPC_Decode, 242, 17, 204, 1, // Opcode: XVSRAI_H ++/* 19750 */ MCD::OPC_FilterValue, 1, 85, 4, 0, // Skip to: 20864 ++/* 19755 */ MCD::OPC_Decode, 244, 17, 181, 1, // Opcode: XVSRAI_W ++/* 19760 */ MCD::OPC_FilterValue, 1, 75, 4, 0, // Skip to: 20864 ++/* 19765 */ MCD::OPC_Decode, 240, 17, 205, 1, // Opcode: XVSRAI_D ++/* 19770 */ MCD::OPC_FilterValue, 208, 1, 66, 0, 0, // Skip to: 19842 ++/* 19776 */ MCD::OPC_ExtractField, 17, 1, // Inst{17} ... ++/* 19779 */ MCD::OPC_FilterValue, 0, 48, 0, 0, // Skip to: 19832 ++/* 19784 */ MCD::OPC_ExtractField, 16, 1, // Inst{16} ... ++/* 19787 */ MCD::OPC_FilterValue, 0, 30, 0, 0, // Skip to: 19822 ++/* 19792 */ MCD::OPC_ExtractField, 15, 1, // Inst{15} ... ++/* 19795 */ MCD::OPC_FilterValue, 0, 12, 0, 0, // Skip to: 19812 ++/* 19800 */ MCD::OPC_CheckField, 14, 1, 1, 33, 4, 0, // Skip to: 20864 ++/* 19807 */ MCD::OPC_Decode, 152, 18, 219, 1, // Opcode: XVSRLNI_B_H ++/* 19812 */ MCD::OPC_FilterValue, 1, 23, 4, 0, // Skip to: 20864 ++/* 19817 */ MCD::OPC_Decode, 154, 18, 184, 1, // Opcode: XVSRLNI_H_W ++/* 19822 */ MCD::OPC_FilterValue, 1, 13, 4, 0, // Skip to: 20864 ++/* 19827 */ MCD::OPC_Decode, 155, 18, 220, 1, // Opcode: XVSRLNI_W_D ++/* 19832 */ MCD::OPC_FilterValue, 1, 3, 4, 0, // Skip to: 20864 ++/* 19837 */ MCD::OPC_Decode, 153, 18, 221, 1, // Opcode: XVSRLNI_D_Q ++/* 19842 */ MCD::OPC_FilterValue, 209, 1, 66, 0, 0, // Skip to: 19914 ++/* 19848 */ MCD::OPC_ExtractField, 17, 1, // Inst{17} ... ++/* 19851 */ MCD::OPC_FilterValue, 0, 48, 0, 0, // Skip to: 19904 ++/* 19856 */ MCD::OPC_ExtractField, 16, 1, // Inst{16} ... ++/* 19859 */ MCD::OPC_FilterValue, 0, 30, 0, 0, // Skip to: 19894 ++/* 19864 */ MCD::OPC_ExtractField, 15, 1, // Inst{15} ... ++/* 19867 */ MCD::OPC_FilterValue, 0, 12, 0, 0, // Skip to: 19884 ++/* 19872 */ MCD::OPC_CheckField, 14, 1, 1, 217, 3, 0, // Skip to: 20864 ++/* 19879 */ MCD::OPC_Decode, 163, 18, 219, 1, // Opcode: XVSRLRNI_B_H ++/* 19884 */ MCD::OPC_FilterValue, 1, 207, 3, 0, // Skip to: 20864 ++/* 19889 */ MCD::OPC_Decode, 165, 18, 184, 1, // Opcode: XVSRLRNI_H_W ++/* 19894 */ MCD::OPC_FilterValue, 1, 197, 3, 0, // Skip to: 20864 ++/* 19899 */ MCD::OPC_Decode, 166, 18, 220, 1, // Opcode: XVSRLRNI_W_D ++/* 19904 */ MCD::OPC_FilterValue, 1, 187, 3, 0, // Skip to: 20864 ++/* 19909 */ MCD::OPC_Decode, 164, 18, 221, 1, // Opcode: XVSRLRNI_D_Q ++/* 19914 */ MCD::OPC_FilterValue, 210, 1, 66, 0, 0, // Skip to: 19986 ++/* 19920 */ MCD::OPC_ExtractField, 17, 1, // Inst{17} ... ++/* 19923 */ MCD::OPC_FilterValue, 0, 48, 0, 0, // Skip to: 19976 ++/* 19928 */ MCD::OPC_ExtractField, 16, 1, // Inst{16} ... ++/* 19931 */ MCD::OPC_FilterValue, 0, 30, 0, 0, // Skip to: 19966 ++/* 19936 */ MCD::OPC_ExtractField, 15, 1, // Inst{15} ... ++/* 19939 */ MCD::OPC_FilterValue, 0, 12, 0, 0, // Skip to: 19956 ++/* 19944 */ MCD::OPC_CheckField, 14, 1, 1, 145, 3, 0, // Skip to: 20864 ++/* 19951 */ MCD::OPC_Decode, 207, 18, 219, 1, // Opcode: XVSSRLNI_B_H ++/* 19956 */ MCD::OPC_FilterValue, 1, 135, 3, 0, // Skip to: 20864 ++/* 19961 */ MCD::OPC_Decode, 211, 18, 184, 1, // Opcode: XVSSRLNI_H_W ++/* 19966 */ MCD::OPC_FilterValue, 1, 125, 3, 0, // Skip to: 20864 ++/* 19971 */ MCD::OPC_Decode, 213, 18, 220, 1, // Opcode: XVSSRLNI_W_D ++/* 19976 */ MCD::OPC_FilterValue, 1, 115, 3, 0, // Skip to: 20864 ++/* 19981 */ MCD::OPC_Decode, 209, 18, 221, 1, // Opcode: XVSSRLNI_D_Q ++/* 19986 */ MCD::OPC_FilterValue, 211, 1, 66, 0, 0, // Skip to: 20058 ++/* 19992 */ MCD::OPC_ExtractField, 17, 1, // Inst{17} ... ++/* 19995 */ MCD::OPC_FilterValue, 0, 48, 0, 0, // Skip to: 20048 ++/* 20000 */ MCD::OPC_ExtractField, 16, 1, // Inst{16} ... ++/* 20003 */ MCD::OPC_FilterValue, 0, 30, 0, 0, // Skip to: 20038 ++/* 20008 */ MCD::OPC_ExtractField, 15, 1, // Inst{15} ... ++/* 20011 */ MCD::OPC_FilterValue, 0, 12, 0, 0, // Skip to: 20028 ++/* 20016 */ MCD::OPC_CheckField, 14, 1, 1, 73, 3, 0, // Skip to: 20864 ++/* 20023 */ MCD::OPC_Decode, 206, 18, 219, 1, // Opcode: XVSSRLNI_BU_H ++/* 20028 */ MCD::OPC_FilterValue, 1, 63, 3, 0, // Skip to: 20864 ++/* 20033 */ MCD::OPC_Decode, 210, 18, 184, 1, // Opcode: XVSSRLNI_HU_W ++/* 20038 */ MCD::OPC_FilterValue, 1, 53, 3, 0, // Skip to: 20864 ++/* 20043 */ MCD::OPC_Decode, 212, 18, 220, 1, // Opcode: XVSSRLNI_WU_D ++/* 20048 */ MCD::OPC_FilterValue, 1, 43, 3, 0, // Skip to: 20864 ++/* 20053 */ MCD::OPC_Decode, 208, 18, 221, 1, // Opcode: XVSSRLNI_DU_Q ++/* 20058 */ MCD::OPC_FilterValue, 212, 1, 66, 0, 0, // Skip to: 20130 ++/* 20064 */ MCD::OPC_ExtractField, 17, 1, // Inst{17} ... ++/* 20067 */ MCD::OPC_FilterValue, 0, 48, 0, 0, // Skip to: 20120 ++/* 20072 */ MCD::OPC_ExtractField, 16, 1, // Inst{16} ... ++/* 20075 */ MCD::OPC_FilterValue, 0, 30, 0, 0, // Skip to: 20110 ++/* 20080 */ MCD::OPC_ExtractField, 15, 1, // Inst{15} ... ++/* 20083 */ MCD::OPC_FilterValue, 0, 12, 0, 0, // Skip to: 20100 ++/* 20088 */ MCD::OPC_CheckField, 14, 1, 1, 1, 3, 0, // Skip to: 20864 ++/* 20095 */ MCD::OPC_Decode, 221, 18, 219, 1, // Opcode: XVSSRLRNI_B_H ++/* 20100 */ MCD::OPC_FilterValue, 1, 247, 2, 0, // Skip to: 20864 ++/* 20105 */ MCD::OPC_Decode, 225, 18, 184, 1, // Opcode: XVSSRLRNI_H_W ++/* 20110 */ MCD::OPC_FilterValue, 1, 237, 2, 0, // Skip to: 20864 ++/* 20115 */ MCD::OPC_Decode, 227, 18, 220, 1, // Opcode: XVSSRLRNI_W_D ++/* 20120 */ MCD::OPC_FilterValue, 1, 227, 2, 0, // Skip to: 20864 ++/* 20125 */ MCD::OPC_Decode, 223, 18, 221, 1, // Opcode: XVSSRLRNI_D_Q ++/* 20130 */ MCD::OPC_FilterValue, 213, 1, 66, 0, 0, // Skip to: 20202 ++/* 20136 */ MCD::OPC_ExtractField, 17, 1, // Inst{17} ... ++/* 20139 */ MCD::OPC_FilterValue, 0, 48, 0, 0, // Skip to: 20192 ++/* 20144 */ MCD::OPC_ExtractField, 16, 1, // Inst{16} ... ++/* 20147 */ MCD::OPC_FilterValue, 0, 30, 0, 0, // Skip to: 20182 ++/* 20152 */ MCD::OPC_ExtractField, 15, 1, // Inst{15} ... ++/* 20155 */ MCD::OPC_FilterValue, 0, 12, 0, 0, // Skip to: 20172 ++/* 20160 */ MCD::OPC_CheckField, 14, 1, 1, 185, 2, 0, // Skip to: 20864 ++/* 20167 */ MCD::OPC_Decode, 220, 18, 219, 1, // Opcode: XVSSRLRNI_BU_H ++/* 20172 */ MCD::OPC_FilterValue, 1, 175, 2, 0, // Skip to: 20864 ++/* 20177 */ MCD::OPC_Decode, 224, 18, 184, 1, // Opcode: XVSSRLRNI_HU_W ++/* 20182 */ MCD::OPC_FilterValue, 1, 165, 2, 0, // Skip to: 20864 ++/* 20187 */ MCD::OPC_Decode, 226, 18, 220, 1, // Opcode: XVSSRLRNI_WU_D ++/* 20192 */ MCD::OPC_FilterValue, 1, 155, 2, 0, // Skip to: 20864 ++/* 20197 */ MCD::OPC_Decode, 222, 18, 221, 1, // Opcode: XVSSRLRNI_DU_Q ++/* 20202 */ MCD::OPC_FilterValue, 214, 1, 66, 0, 0, // Skip to: 20274 ++/* 20208 */ MCD::OPC_ExtractField, 17, 1, // Inst{17} ... ++/* 20211 */ MCD::OPC_FilterValue, 0, 48, 0, 0, // Skip to: 20264 ++/* 20216 */ MCD::OPC_ExtractField, 16, 1, // Inst{16} ... ++/* 20219 */ MCD::OPC_FilterValue, 0, 30, 0, 0, // Skip to: 20254 ++/* 20224 */ MCD::OPC_ExtractField, 15, 1, // Inst{15} ... ++/* 20227 */ MCD::OPC_FilterValue, 0, 12, 0, 0, // Skip to: 20244 ++/* 20232 */ MCD::OPC_CheckField, 14, 1, 1, 113, 2, 0, // Skip to: 20864 ++/* 20239 */ MCD::OPC_Decode, 246, 17, 219, 1, // Opcode: XVSRANI_B_H ++/* 20244 */ MCD::OPC_FilterValue, 1, 103, 2, 0, // Skip to: 20864 ++/* 20249 */ MCD::OPC_Decode, 248, 17, 184, 1, // Opcode: XVSRANI_H_W ++/* 20254 */ MCD::OPC_FilterValue, 1, 93, 2, 0, // Skip to: 20864 ++/* 20259 */ MCD::OPC_Decode, 249, 17, 220, 1, // Opcode: XVSRANI_W_D ++/* 20264 */ MCD::OPC_FilterValue, 1, 83, 2, 0, // Skip to: 20864 ++/* 20269 */ MCD::OPC_Decode, 247, 17, 221, 1, // Opcode: XVSRANI_D_Q ++/* 20274 */ MCD::OPC_FilterValue, 215, 1, 66, 0, 0, // Skip to: 20346 ++/* 20280 */ MCD::OPC_ExtractField, 17, 1, // Inst{17} ... ++/* 20283 */ MCD::OPC_FilterValue, 0, 48, 0, 0, // Skip to: 20336 ++/* 20288 */ MCD::OPC_ExtractField, 16, 1, // Inst{16} ... ++/* 20291 */ MCD::OPC_FilterValue, 0, 30, 0, 0, // Skip to: 20326 ++/* 20296 */ MCD::OPC_ExtractField, 15, 1, // Inst{15} ... ++/* 20299 */ MCD::OPC_FilterValue, 0, 12, 0, 0, // Skip to: 20316 ++/* 20304 */ MCD::OPC_CheckField, 14, 1, 1, 41, 2, 0, // Skip to: 20864 ++/* 20311 */ MCD::OPC_Decode, 129, 18, 219, 1, // Opcode: XVSRARNI_B_H ++/* 20316 */ MCD::OPC_FilterValue, 1, 31, 2, 0, // Skip to: 20864 ++/* 20321 */ MCD::OPC_Decode, 131, 18, 184, 1, // Opcode: XVSRARNI_H_W ++/* 20326 */ MCD::OPC_FilterValue, 1, 21, 2, 0, // Skip to: 20864 ++/* 20331 */ MCD::OPC_Decode, 132, 18, 220, 1, // Opcode: XVSRARNI_W_D ++/* 20336 */ MCD::OPC_FilterValue, 1, 11, 2, 0, // Skip to: 20864 ++/* 20341 */ MCD::OPC_Decode, 130, 18, 221, 1, // Opcode: XVSRARNI_D_Q ++/* 20346 */ MCD::OPC_FilterValue, 216, 1, 66, 0, 0, // Skip to: 20418 ++/* 20352 */ MCD::OPC_ExtractField, 17, 1, // Inst{17} ... ++/* 20355 */ MCD::OPC_FilterValue, 0, 48, 0, 0, // Skip to: 20408 ++/* 20360 */ MCD::OPC_ExtractField, 16, 1, // Inst{16} ... ++/* 20363 */ MCD::OPC_FilterValue, 0, 30, 0, 0, // Skip to: 20398 ++/* 20368 */ MCD::OPC_ExtractField, 15, 1, // Inst{15} ... ++/* 20371 */ MCD::OPC_FilterValue, 0, 12, 0, 0, // Skip to: 20388 ++/* 20376 */ MCD::OPC_CheckField, 14, 1, 1, 225, 1, 0, // Skip to: 20864 ++/* 20383 */ MCD::OPC_Decode, 179, 18, 219, 1, // Opcode: XVSSRANI_B_H ++/* 20388 */ MCD::OPC_FilterValue, 1, 215, 1, 0, // Skip to: 20864 ++/* 20393 */ MCD::OPC_Decode, 183, 18, 184, 1, // Opcode: XVSSRANI_H_W ++/* 20398 */ MCD::OPC_FilterValue, 1, 205, 1, 0, // Skip to: 20864 ++/* 20403 */ MCD::OPC_Decode, 185, 18, 220, 1, // Opcode: XVSSRANI_W_D ++/* 20408 */ MCD::OPC_FilterValue, 1, 195, 1, 0, // Skip to: 20864 ++/* 20413 */ MCD::OPC_Decode, 181, 18, 221, 1, // Opcode: XVSSRANI_D_Q ++/* 20418 */ MCD::OPC_FilterValue, 217, 1, 66, 0, 0, // Skip to: 20490 ++/* 20424 */ MCD::OPC_ExtractField, 17, 1, // Inst{17} ... ++/* 20427 */ MCD::OPC_FilterValue, 0, 48, 0, 0, // Skip to: 20480 ++/* 20432 */ MCD::OPC_ExtractField, 16, 1, // Inst{16} ... ++/* 20435 */ MCD::OPC_FilterValue, 0, 30, 0, 0, // Skip to: 20470 ++/* 20440 */ MCD::OPC_ExtractField, 15, 1, // Inst{15} ... ++/* 20443 */ MCD::OPC_FilterValue, 0, 12, 0, 0, // Skip to: 20460 ++/* 20448 */ MCD::OPC_CheckField, 14, 1, 1, 153, 1, 0, // Skip to: 20864 ++/* 20455 */ MCD::OPC_Decode, 178, 18, 219, 1, // Opcode: XVSSRANI_BU_H ++/* 20460 */ MCD::OPC_FilterValue, 1, 143, 1, 0, // Skip to: 20864 ++/* 20465 */ MCD::OPC_Decode, 182, 18, 184, 1, // Opcode: XVSSRANI_HU_W ++/* 20470 */ MCD::OPC_FilterValue, 1, 133, 1, 0, // Skip to: 20864 ++/* 20475 */ MCD::OPC_Decode, 184, 18, 220, 1, // Opcode: XVSSRANI_WU_D ++/* 20480 */ MCD::OPC_FilterValue, 1, 123, 1, 0, // Skip to: 20864 ++/* 20485 */ MCD::OPC_Decode, 180, 18, 221, 1, // Opcode: XVSSRANI_DU_Q ++/* 20490 */ MCD::OPC_FilterValue, 218, 1, 66, 0, 0, // Skip to: 20562 ++/* 20496 */ MCD::OPC_ExtractField, 17, 1, // Inst{17} ... ++/* 20499 */ MCD::OPC_FilterValue, 0, 48, 0, 0, // Skip to: 20552 ++/* 20504 */ MCD::OPC_ExtractField, 16, 1, // Inst{16} ... ++/* 20507 */ MCD::OPC_FilterValue, 0, 30, 0, 0, // Skip to: 20542 ++/* 20512 */ MCD::OPC_ExtractField, 15, 1, // Inst{15} ... ++/* 20515 */ MCD::OPC_FilterValue, 0, 12, 0, 0, // Skip to: 20532 ++/* 20520 */ MCD::OPC_CheckField, 14, 1, 1, 81, 1, 0, // Skip to: 20864 ++/* 20527 */ MCD::OPC_Decode, 193, 18, 219, 1, // Opcode: XVSSRARNI_B_H ++/* 20532 */ MCD::OPC_FilterValue, 1, 71, 1, 0, // Skip to: 20864 ++/* 20537 */ MCD::OPC_Decode, 197, 18, 184, 1, // Opcode: XVSSRARNI_H_W ++/* 20542 */ MCD::OPC_FilterValue, 1, 61, 1, 0, // Skip to: 20864 ++/* 20547 */ MCD::OPC_Decode, 199, 18, 220, 1, // Opcode: XVSSRARNI_W_D ++/* 20552 */ MCD::OPC_FilterValue, 1, 51, 1, 0, // Skip to: 20864 ++/* 20557 */ MCD::OPC_Decode, 195, 18, 221, 1, // Opcode: XVSSRARNI_D_Q ++/* 20562 */ MCD::OPC_FilterValue, 219, 1, 66, 0, 0, // Skip to: 20634 ++/* 20568 */ MCD::OPC_ExtractField, 17, 1, // Inst{17} ... ++/* 20571 */ MCD::OPC_FilterValue, 0, 48, 0, 0, // Skip to: 20624 ++/* 20576 */ MCD::OPC_ExtractField, 16, 1, // Inst{16} ... ++/* 20579 */ MCD::OPC_FilterValue, 0, 30, 0, 0, // Skip to: 20614 ++/* 20584 */ MCD::OPC_ExtractField, 15, 1, // Inst{15} ... ++/* 20587 */ MCD::OPC_FilterValue, 0, 12, 0, 0, // Skip to: 20604 ++/* 20592 */ MCD::OPC_CheckField, 14, 1, 1, 9, 1, 0, // Skip to: 20864 ++/* 20599 */ MCD::OPC_Decode, 192, 18, 219, 1, // Opcode: XVSSRARNI_BU_H ++/* 20604 */ MCD::OPC_FilterValue, 1, 255, 0, 0, // Skip to: 20864 ++/* 20609 */ MCD::OPC_Decode, 196, 18, 184, 1, // Opcode: XVSSRARNI_HU_W ++/* 20614 */ MCD::OPC_FilterValue, 1, 245, 0, 0, // Skip to: 20864 ++/* 20619 */ MCD::OPC_Decode, 198, 18, 220, 1, // Opcode: XVSSRARNI_WU_D ++/* 20624 */ MCD::OPC_FilterValue, 1, 235, 0, 0, // Skip to: 20864 ++/* 20629 */ MCD::OPC_Decode, 194, 18, 221, 1, // Opcode: XVSSRARNI_DU_Q ++/* 20634 */ MCD::OPC_FilterValue, 224, 1, 5, 0, 0, // Skip to: 20645 ++/* 20640 */ MCD::OPC_Decode, 128, 14, 222, 1, // Opcode: XVEXTRINS_D ++/* 20645 */ MCD::OPC_FilterValue, 225, 1, 5, 0, 0, // Skip to: 20656 ++/* 20651 */ MCD::OPC_Decode, 130, 14, 223, 1, // Opcode: XVEXTRINS_W ++/* 20656 */ MCD::OPC_FilterValue, 226, 1, 5, 0, 0, // Skip to: 20667 ++/* 20662 */ MCD::OPC_Decode, 129, 14, 224, 1, // Opcode: XVEXTRINS_H ++/* 20667 */ MCD::OPC_FilterValue, 227, 1, 5, 0, 0, // Skip to: 20678 ++/* 20673 */ MCD::OPC_Decode, 255, 13, 225, 1, // Opcode: XVEXTRINS_B ++/* 20678 */ MCD::OPC_FilterValue, 228, 1, 5, 0, 0, // Skip to: 20689 ++/* 20684 */ MCD::OPC_Decode, 160, 17, 226, 1, // Opcode: XVSHUF4I_B ++/* 20689 */ MCD::OPC_FilterValue, 229, 1, 5, 0, 0, // Skip to: 20700 ++/* 20695 */ MCD::OPC_Decode, 162, 17, 227, 1, // Opcode: XVSHUF4I_H ++/* 20700 */ MCD::OPC_FilterValue, 230, 1, 5, 0, 0, // Skip to: 20711 ++/* 20706 */ MCD::OPC_Decode, 163, 17, 228, 1, // Opcode: XVSHUF4I_W ++/* 20711 */ MCD::OPC_FilterValue, 231, 1, 5, 0, 0, // Skip to: 20722 ++/* 20717 */ MCD::OPC_Decode, 161, 17, 222, 1, // Opcode: XVSHUF4I_D ++/* 20722 */ MCD::OPC_FilterValue, 241, 1, 5, 0, 0, // Skip to: 20733 ++/* 20728 */ MCD::OPC_Decode, 216, 13, 225, 1, // Opcode: XVBITSELI_B ++/* 20733 */ MCD::OPC_FilterValue, 244, 1, 5, 0, 0, // Skip to: 20744 ++/* 20739 */ MCD::OPC_Decode, 180, 13, 226, 1, // Opcode: XVANDI_B ++/* 20744 */ MCD::OPC_FilterValue, 245, 1, 5, 0, 0, // Skip to: 20755 ++/* 20750 */ MCD::OPC_Decode, 188, 16, 226, 1, // Opcode: XVORI_B ++/* 20755 */ MCD::OPC_FilterValue, 246, 1, 5, 0, 0, // Skip to: 20766 ++/* 20761 */ MCD::OPC_Decode, 152, 19, 226, 1, // Opcode: XVXORI_B ++/* 20766 */ MCD::OPC_FilterValue, 247, 1, 5, 0, 0, // Skip to: 20777 ++/* 20772 */ MCD::OPC_Decode, 186, 16, 226, 1, // Opcode: XVNORI_B ++/* 20777 */ MCD::OPC_FilterValue, 248, 1, 48, 0, 0, // Skip to: 20831 ++/* 20783 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... ++/* 20786 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 20796 ++/* 20791 */ MCD::OPC_Decode, 168, 15, 229, 1, // Opcode: XVLDI_B ++/* 20796 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 20806 ++/* 20801 */ MCD::OPC_Decode, 170, 15, 229, 1, // Opcode: XVLDI_H ++/* 20806 */ MCD::OPC_FilterValue, 2, 5, 0, 0, // Skip to: 20816 ++/* 20811 */ MCD::OPC_Decode, 171, 15, 229, 1, // Opcode: XVLDI_W ++/* 20816 */ MCD::OPC_FilterValue, 3, 5, 0, 0, // Skip to: 20826 ++/* 20821 */ MCD::OPC_Decode, 169, 15, 229, 1, // Opcode: XVLDI_D ++/* 20826 */ MCD::OPC_Decode, 167, 15, 230, 1, // Opcode: XVLDI ++/* 20831 */ MCD::OPC_FilterValue, 249, 1, 5, 0, 0, // Skip to: 20842 ++/* 20837 */ MCD::OPC_Decode, 208, 16, 223, 1, // Opcode: XVPERMI_W ++/* 20842 */ MCD::OPC_FilterValue, 250, 1, 5, 0, 0, // Skip to: 20853 ++/* 20848 */ MCD::OPC_Decode, 203, 16, 231, 1, // Opcode: XVPERMI_D ++/* 20853 */ MCD::OPC_FilterValue, 251, 1, 5, 0, 0, // Skip to: 20864 ++/* 20859 */ MCD::OPC_Decode, 204, 16, 225, 1, // Opcode: XVPERMI_Q ++/* 20864 */ MCD::OPC_Fail, ++ 0 ++}; ++ ++static const uint8_t DecoderTableLoongArch3232[] = { ++/* 0 */ MCD::OPC_ExtractField, 24, 8, // Inst{31-24} ... ++/* 3 */ MCD::OPC_FilterValue, 0, 203, 1, 0, // Skip to: 467 ++/* 8 */ MCD::OPC_ExtractField, 21, 3, // Inst{23-21} ... ++/* 11 */ MCD::OPC_FilterValue, 0, 249, 0, 0, // Skip to: 265 ++/* 16 */ MCD::OPC_ExtractField, 17, 4, // Inst{20-17} ... ++/* 19 */ MCD::OPC_FilterValue, 0, 93, 0, 0, // Skip to: 117 ++/* 24 */ MCD::OPC_ExtractField, 10, 7, // Inst{16-10} ... ++/* 27 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 36 ++/* 32 */ MCD::OPC_Decode, 128, 4, 79, // Opcode: CLO_W ++/* 36 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 45 ++/* 41 */ MCD::OPC_Decode, 130, 4, 79, // Opcode: CLZ_W ++/* 45 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 54 ++/* 50 */ MCD::OPC_Decode, 147, 4, 79, // Opcode: CTO_W ++/* 54 */ MCD::OPC_FilterValue, 7, 4, 0, 0, // Skip to: 63 ++/* 59 */ MCD::OPC_Decode, 149, 4, 79, // Opcode: CTZ_W ++/* 63 */ MCD::OPC_FilterValue, 12, 4, 0, 0, // Skip to: 72 ++/* 68 */ MCD::OPC_Decode, 177, 6, 79, // Opcode: REVB_2H ++/* 72 */ MCD::OPC_FilterValue, 18, 4, 0, 0, // Skip to: 81 ++/* 77 */ MCD::OPC_Decode, 233, 3, 79, // Opcode: BITREV_4B ++/* 81 */ MCD::OPC_FilterValue, 20, 4, 0, 0, // Skip to: 90 ++/* 86 */ MCD::OPC_Decode, 236, 3, 79, // Opcode: BITREV_W ++/* 90 */ MCD::OPC_FilterValue, 24, 4, 0, 0, // Skip to: 99 ++/* 95 */ MCD::OPC_Decode, 175, 6, 79, // Opcode: RDTIMEL_W32 ++/* 99 */ MCD::OPC_FilterValue, 25, 4, 0, 0, // Skip to: 108 ++/* 104 */ MCD::OPC_Decode, 173, 6, 79, // Opcode: RDTIMEH_W32 ++/* 108 */ MCD::OPC_FilterValue, 27, 70, 2, 0, // Skip to: 695 ++/* 113 */ MCD::OPC_Decode, 131, 4, 79, // Opcode: CPUCFG ++/* 117 */ MCD::OPC_FilterValue, 2, 5, 0, 0, // Skip to: 127 ++/* 122 */ MCD::OPC_Decode, 175, 3, 232, 1, // Opcode: ALSL_W ++/* 127 */ MCD::OPC_FilterValue, 4, 5, 0, 0, // Skip to: 137 ++/* 132 */ MCD::OPC_Decode, 252, 3, 233, 1, // Opcode: BYTEPICK_W ++/* 137 */ MCD::OPC_FilterValue, 8, 23, 0, 0, // Skip to: 165 ++/* 142 */ MCD::OPC_ExtractField, 15, 2, // Inst{16-15} ... ++/* 145 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 155 ++/* 150 */ MCD::OPC_Decode, 173, 3, 234, 1, // Opcode: ADD_W ++/* 155 */ MCD::OPC_FilterValue, 2, 23, 2, 0, // Skip to: 695 ++/* 160 */ MCD::OPC_Decode, 241, 6, 234, 1, // Opcode: SUB_W ++/* 165 */ MCD::OPC_FilterValue, 11, 23, 0, 0, // Skip to: 193 ++/* 170 */ MCD::OPC_ExtractField, 15, 2, // Inst{16-15} ... ++/* 173 */ MCD::OPC_FilterValue, 2, 5, 0, 0, // Skip to: 183 ++/* 178 */ MCD::OPC_Decode, 197, 6, 234, 1, // Opcode: SLL_W ++/* 183 */ MCD::OPC_FilterValue, 3, 251, 1, 0, // Skip to: 695 ++/* 188 */ MCD::OPC_Decode, 214, 6, 234, 1, // Opcode: SRL_W ++/* 193 */ MCD::OPC_FilterValue, 12, 12, 0, 0, // Skip to: 210 ++/* 198 */ MCD::OPC_CheckField, 15, 2, 0, 234, 1, 0, // Skip to: 695 ++/* 205 */ MCD::OPC_Decode, 210, 6, 234, 1, // Opcode: SRA_W ++/* 210 */ MCD::OPC_FilterValue, 13, 12, 0, 0, // Skip to: 227 ++/* 215 */ MCD::OPC_CheckField, 15, 2, 2, 217, 1, 0, // Skip to: 695 ++/* 222 */ MCD::OPC_Decode, 188, 6, 234, 1, // Opcode: ROTR_W ++/* 227 */ MCD::OPC_FilterValue, 14, 207, 1, 0, // Skip to: 695 ++/* 232 */ MCD::OPC_ExtractField, 15, 2, // Inst{16-15} ... ++/* 235 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 245 ++/* 240 */ MCD::OPC_Decode, 148, 6, 234, 1, // Opcode: MUL_W ++/* 245 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 255 ++/* 250 */ MCD::OPC_Decode, 143, 6, 234, 1, // Opcode: MULH_W ++/* 255 */ MCD::OPC_FilterValue, 2, 179, 1, 0, // Skip to: 695 ++/* 260 */ MCD::OPC_Decode, 144, 6, 234, 1, // Opcode: MULH_WU ++/* 265 */ MCD::OPC_FilterValue, 1, 121, 0, 0, // Skip to: 391 ++/* 270 */ MCD::OPC_ExtractField, 15, 6, // Inst{20-15} ... ++/* 273 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 283 ++/* 278 */ MCD::OPC_Decode, 154, 4, 234, 1, // Opcode: DIV_W ++/* 283 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 293 ++/* 288 */ MCD::OPC_Decode, 250, 5, 234, 1, // Opcode: MOD_W ++/* 293 */ MCD::OPC_FilterValue, 2, 5, 0, 0, // Skip to: 303 ++/* 298 */ MCD::OPC_Decode, 155, 4, 234, 1, // Opcode: DIV_WU ++/* 303 */ MCD::OPC_FilterValue, 3, 5, 0, 0, // Skip to: 313 ++/* 308 */ MCD::OPC_Decode, 251, 5, 234, 1, // Opcode: MOD_WU ++/* 313 */ MCD::OPC_FilterValue, 8, 5, 0, 0, // Skip to: 323 ++/* 318 */ MCD::OPC_Decode, 136, 4, 234, 1, // Opcode: CRC_W_B_W ++/* 323 */ MCD::OPC_FilterValue, 9, 5, 0, 0, // Skip to: 333 ++/* 328 */ MCD::OPC_Decode, 138, 4, 234, 1, // Opcode: CRC_W_H_W ++/* 333 */ MCD::OPC_FilterValue, 10, 5, 0, 0, // Skip to: 343 ++/* 338 */ MCD::OPC_Decode, 139, 4, 234, 1, // Opcode: CRC_W_W_W ++/* 343 */ MCD::OPC_FilterValue, 12, 5, 0, 0, // Skip to: 353 ++/* 348 */ MCD::OPC_Decode, 132, 4, 234, 1, // Opcode: CRCC_W_B_W ++/* 353 */ MCD::OPC_FilterValue, 13, 5, 0, 0, // Skip to: 363 ++/* 358 */ MCD::OPC_Decode, 134, 4, 234, 1, // Opcode: CRCC_W_H_W ++/* 363 */ MCD::OPC_FilterValue, 14, 5, 0, 0, // Skip to: 373 ++/* 368 */ MCD::OPC_Decode, 135, 4, 234, 1, // Opcode: CRCC_W_W_W ++/* 373 */ MCD::OPC_FilterValue, 20, 4, 0, 0, // Skip to: 382 ++/* 378 */ MCD::OPC_Decode, 246, 3, 8, // Opcode: BREAK ++/* 382 */ MCD::OPC_FilterValue, 22, 52, 1, 0, // Skip to: 695 ++/* 387 */ MCD::OPC_Decode, 242, 6, 8, // Opcode: SYSCALL ++/* 391 */ MCD::OPC_FilterValue, 2, 43, 0, 0, // Skip to: 439 ++/* 396 */ MCD::OPC_ExtractField, 15, 6, // Inst{20-15} ... ++/* 399 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 409 ++/* 404 */ MCD::OPC_Decode, 193, 6, 235, 1, // Opcode: SLLI_W ++/* 409 */ MCD::OPC_FilterValue, 9, 5, 0, 0, // Skip to: 419 ++/* 414 */ MCD::OPC_Decode, 212, 6, 235, 1, // Opcode: SRLI_W ++/* 419 */ MCD::OPC_FilterValue, 17, 5, 0, 0, // Skip to: 429 ++/* 424 */ MCD::OPC_Decode, 208, 6, 235, 1, // Opcode: SRAI_W ++/* 429 */ MCD::OPC_FilterValue, 25, 5, 1, 0, // Skip to: 695 ++/* 434 */ MCD::OPC_Decode, 186, 6, 235, 1, // Opcode: ROTRI_W ++/* 439 */ MCD::OPC_FilterValue, 3, 251, 0, 0, // Skip to: 695 ++/* 444 */ MCD::OPC_ExtractField, 15, 1, // Inst{15} ... ++/* 447 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 457 ++/* 452 */ MCD::OPC_Decode, 248, 3, 236, 1, // Opcode: BSTRINS_W ++/* 457 */ MCD::OPC_FilterValue, 1, 233, 0, 0, // Skip to: 695 ++/* 462 */ MCD::OPC_Decode, 250, 3, 237, 1, // Opcode: BSTRPICK_W ++/* 467 */ MCD::OPC_FilterValue, 2, 12, 0, 0, // Skip to: 484 ++/* 472 */ MCD::OPC_CheckField, 22, 2, 2, 216, 0, 0, // Skip to: 695 ++/* 479 */ MCD::OPC_Decode, 168, 3, 238, 1, // Opcode: ADDI_W ++/* 484 */ MCD::OPC_FilterValue, 4, 28, 0, 0, // Skip to: 517 ++/* 489 */ MCD::OPC_ExtractField, 5, 5, // Inst{9-5} ... ++/* 492 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 502 ++/* 497 */ MCD::OPC_Decode, 141, 4, 239, 1, // Opcode: CSRRD32 ++/* 502 */ MCD::OPC_FilterValue, 1, 5, 0, 0, // Skip to: 512 ++/* 507 */ MCD::OPC_Decode, 143, 4, 240, 1, // Opcode: CSRWR32 ++/* 512 */ MCD::OPC_Decode, 145, 4, 241, 1, // Opcode: CSRXCHG32 ++/* 517 */ MCD::OPC_FilterValue, 6, 110, 0, 0, // Skip to: 632 ++/* 522 */ MCD::OPC_ExtractField, 22, 2, // Inst{23-22} ... ++/* 525 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 535 ++/* 530 */ MCD::OPC_Decode, 254, 3, 242, 1, // Opcode: CACOP32 ++/* 535 */ MCD::OPC_FilterValue, 1, 155, 0, 0, // Skip to: 695 ++/* 540 */ MCD::OPC_ExtractField, 18, 4, // Inst{21-18} ... ++/* 543 */ MCD::OPC_FilterValue, 0, 5, 0, 0, // Skip to: 553 ++/* 548 */ MCD::OPC_Decode, 189, 5, 243, 1, // Opcode: LDDIR32 ++/* 553 */ MCD::OPC_FilterValue, 1, 12, 0, 0, // Skip to: 570 ++/* 558 */ MCD::OPC_CheckField, 0, 5, 0, 130, 0, 0, // Skip to: 695 ++/* 565 */ MCD::OPC_Decode, 199, 5, 244, 1, // Opcode: LDPTE32 ++/* 570 */ MCD::OPC_FilterValue, 2, 120, 0, 0, // Skip to: 695 ++/* 575 */ MCD::OPC_ExtractField, 10, 8, // Inst{17-10} ... ++/* 578 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 587 ++/* 583 */ MCD::OPC_Decode, 173, 5, 79, // Opcode: IOCSRRD_B32 ++/* 587 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 596 ++/* 592 */ MCD::OPC_Decode, 176, 5, 79, // Opcode: IOCSRRD_H32 ++/* 596 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 605 ++/* 601 */ MCD::OPC_Decode, 178, 5, 79, // Opcode: IOCSRRD_W32 ++/* 605 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 614 ++/* 610 */ MCD::OPC_Decode, 179, 5, 79, // Opcode: IOCSRWR_B32 ++/* 614 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 623 ++/* 619 */ MCD::OPC_Decode, 181, 5, 79, // Opcode: IOCSRWR_H32 ++/* 623 */ MCD::OPC_FilterValue, 6, 67, 0, 0, // Skip to: 695 ++/* 628 */ MCD::OPC_Decode, 182, 5, 79, // Opcode: IOCSRWR_W32 ++/* 632 */ MCD::OPC_FilterValue, 32, 4, 0, 0, // Skip to: 641 ++/* 637 */ MCD::OPC_Decode, 233, 5, 59, // Opcode: LL_W ++/* 641 */ MCD::OPC_FilterValue, 33, 4, 0, 0, // Skip to: 650 ++/* 646 */ MCD::OPC_Decode, 190, 6, 59, // Opcode: SC_W ++/* 650 */ MCD::OPC_FilterValue, 42, 12, 0, 0, // Skip to: 667 ++/* 655 */ MCD::OPC_CheckField, 22, 2, 3, 33, 0, 0, // Skip to: 695 ++/* 662 */ MCD::OPC_Decode, 171, 6, 245, 1, // Opcode: PRELD_Raw32 ++/* 667 */ MCD::OPC_FilterValue, 56, 23, 0, 0, // Skip to: 695 ++/* 672 */ MCD::OPC_ExtractField, 15, 9, // Inst{23-15} ... ++/* 675 */ MCD::OPC_FilterValue, 228, 1, 4, 0, 0, // Skip to: 685 ++/* 681 */ MCD::OPC_Decode, 150, 4, 8, // Opcode: DBAR ++/* 685 */ MCD::OPC_FilterValue, 229, 1, 4, 0, 0, // Skip to: 695 ++/* 691 */ MCD::OPC_Decode, 169, 5, 8, // Opcode: IBAR ++/* 695 */ MCD::OPC_Fail, ++ 0 ++}; ++ ++static bool checkDecoderPredicate(unsigned Idx, const FeatureBitset& Bits) { ++ llvm_unreachable("Invalid index!"); ++} ++ ++template ++static DecodeStatus decodeToMCInst(DecodeStatus S, unsigned Idx, InsnType insn, MCInst &MI, ++ uint64_t Address, const void *Decoder, bool &DecodeComplete) { ++ DecodeComplete = true; ++ InsnType tmp; ++ switch (Idx) { ++ default: llvm_unreachable("Invalid index!"); ++ case 0: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 1: ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 2: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 15, 2); ++ if (DecodeUImmWithOffset<2, 1>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 3: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 15, 3); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 4: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 5: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 6: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 7: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 8: ++ tmp = fieldFromInstruction(insn, 0, 15); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 9: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 15, 2); ++ if (DecodeUImmWithOffset<2, 1>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 10: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 6); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 11: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 16, 6); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ tmp = fieldFromInstruction(insn, 10, 6); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 12: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 16, 6); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ tmp = fieldFromInstruction(insn, 10, 6); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 13: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeFGR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeFGR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeFGR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 14: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeFGR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeFGR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeFGR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 15: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeFGR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeFGR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 16: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeFGR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeFGR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 17: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeFGR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 18: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeFGR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 19: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeFGR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 20: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeFGR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 21: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeFGR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 22: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeFCSRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 23: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeFCSRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 24: ++ tmp = fieldFromInstruction(insn, 0, 3); ++ if (DecodeFCFRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeFGR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 25: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeFGR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 3); ++ if (DecodeFCFRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 26: ++ tmp = fieldFromInstruction(insn, 0, 3); ++ if (DecodeFCFRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 27: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 3); ++ if (DecodeFCFRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 28: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeFGR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeFGR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 29: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeFGR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeFGR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 30: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 12); ++ if (DecodeSImmWithOffsetAndScale<12>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 31: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 12); ++ if (DecodeSImmWithOffsetAndScale<12>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 32: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 12); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 33: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 14); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 34: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 14); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 35: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 14); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 36: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 12); ++ if (DecodeSImmWithOffsetAndScale<12>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 37: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 8); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 38: ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 8); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 39: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 40: ++ return S; ++ case 41: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 42: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeFGR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeFGR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeFGR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 15, 5); ++ if (DecodeFGR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 43: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeFGR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeFGR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeFGR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 15, 5); ++ if (DecodeFGR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 44: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeLSX128WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 15, 5); ++ if (DecodeLSX128WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 45: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeLSX128DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 15, 5); ++ if (DecodeLSX128DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 46: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeLASX256WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 15, 5); ++ if (DecodeLASX256WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 47: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeLASX256DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 15, 5); ++ if (DecodeLASX256DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 48: ++ tmp = fieldFromInstruction(insn, 0, 3); ++ if (DecodeFCFRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeFGR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeFGR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 49: ++ tmp = fieldFromInstruction(insn, 0, 3); ++ if (DecodeFCFRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeFGR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeFGR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 50: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeLSX128WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 51: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeLSX128DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 52: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeLASX256WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 53: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeLASX256DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 54: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeFGR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 15, 3); ++ if (DecodeFCFRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeFGR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeFGR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 55: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeLSX128BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 15, 5); ++ if (DecodeLSX128BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 56: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeLASX256BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 15, 5); ++ if (DecodeLASX256BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 57: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 16); ++ if (DecodeSImmWithOffsetAndScale<16>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 58: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 20); ++ if (DecodeSImmWithOffsetAndScale<20>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 59: ++ if (DecodeMemSimm14(MI, insn, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 60: ++ if (DecodeMem(MI, insn, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 61: ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 12); ++ if (DecodeSImmWithOffsetAndScale<12>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 0, 5); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 62: ++ if (DecodeFMem(MI, insn, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 63: ++ if (DecodeLSX128Mem(MI, insn, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 64: ++ if (DecodeLASX256Mem(MI, insn, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 65: ++ if (DecodeLSX128memlsl(MI, insn, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 66: ++ if (DecodeLSX128memstl(MI, insn, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 67: ++ if (DecodeLASX256memlsl(MI, insn, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 68: ++ if (DecodeLASX256memstl(MI, insn, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 69: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodePtrRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodePtrRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 70: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeFGR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodePtrRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodePtrRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 71: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeFGR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodePtrRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodePtrRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 72: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodePtrRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 73: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodePtrRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 74: ++ if (DecodeAMem(MI, insn, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 75: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeFGR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 76: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeFGR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 77: ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = 0x0; ++ tmp |= fieldFromInstruction(insn, 0, 5) << 16; ++ tmp |= fieldFromInstruction(insn, 10, 16) << 0; ++ if (DecodeBranchTarget(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 78: ++ tmp = fieldFromInstruction(insn, 5, 3); ++ if (DecodeFCFRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = 0x0; ++ tmp |= fieldFromInstruction(insn, 0, 5) << 16; ++ tmp |= fieldFromInstruction(insn, 10, 16) << 0; ++ if (DecodeBranchTarget(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 79: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 80: ++ if (DecodeJumpTarget(MI, insn, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 81: ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 16); ++ if (DecodeBranchTarget(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 82: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeLSX128BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 83: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeLSX128HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 84: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeLSX128BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 85: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeLSX128HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 86: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeLSX128WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 87: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeLSX128BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 88: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeLSX128HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 89: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeLSX128WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 90: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeLSX128DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 91: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeLSX128BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 92: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeLSX128HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 93: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeLSX128WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 94: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeLSX128HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 95: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeLSX128WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 96: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeLSX128DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 97: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 98: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 99: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 100: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 101: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeSImmWithOffsetAndScale<5>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 102: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeSImmWithOffsetAndScale<5>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 103: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeSImmWithOffsetAndScale<5>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 104: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeSImmWithOffsetAndScale<5>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 105: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 106: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 107: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 108: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 109: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 110: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 111: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 112: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 113: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 114: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 115: ++ tmp = fieldFromInstruction(insn, 0, 3); ++ if (DecodeFCFRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 116: ++ tmp = fieldFromInstruction(insn, 0, 3); ++ if (DecodeFCFRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 117: ++ tmp = fieldFromInstruction(insn, 0, 3); ++ if (DecodeFCFRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 118: ++ tmp = fieldFromInstruction(insn, 0, 3); ++ if (DecodeFCFRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 119: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 120: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 121: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 122: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 123: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 124: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 125: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 126: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 3); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 127: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 4); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 128: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 6); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 129: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 4); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 130: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 3); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 131: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 2); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 132: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 1); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 133: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 4); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 134: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 3); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 135: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 2); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 136: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 1); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 137: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 4); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 138: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 3); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 139: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 2); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 140: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 1); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 141: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 3); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 142: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 4); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 143: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 144: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 4); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 145: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 6); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 146: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 7); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 147: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 8); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 148: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 8); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 149: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 8); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 150: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 8); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 151: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 8); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 152: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 8); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 153: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLSX128WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLSX128WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 8); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 154: ++ if (DecodeLSX128Mem10(MI, insn, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 155: ++ if (DecodeLSX128Mem13(MI, insn, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 156: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeLASX256BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 157: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeLASX256HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 158: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeLASX256BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 159: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeLASX256HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 160: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeLASX256WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 161: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeLASX256BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 162: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeLASX256HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 163: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeLASX256WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 164: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeLASX256DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 165: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeLASX256BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 166: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeLASX256HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 167: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeLASX256WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 168: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeLASX256HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 169: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeLASX256WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 170: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeLASX256DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 171: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 172: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 173: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 174: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 175: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeSImmWithOffsetAndScale<5>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 176: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeSImmWithOffsetAndScale<5>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 177: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeSImmWithOffsetAndScale<5>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 178: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeSImmWithOffsetAndScale<5>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 179: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 180: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 181: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 182: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 183: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 184: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 185: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 186: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 187: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 188: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 189: ++ tmp = fieldFromInstruction(insn, 0, 3); ++ if (DecodeFCFRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 190: ++ tmp = fieldFromInstruction(insn, 0, 3); ++ if (DecodeFCFRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 191: ++ tmp = fieldFromInstruction(insn, 0, 3); ++ if (DecodeFCFRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 192: ++ tmp = fieldFromInstruction(insn, 0, 3); ++ if (DecodeFCFRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 193: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 194: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 195: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 196: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 197: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 198: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 199: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 200: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 201: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 202: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 203: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 3); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 204: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 4); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 205: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 6); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 206: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 3); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 207: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 2); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 208: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 3); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 209: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeGPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 2); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 210: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 4); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 211: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 3); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 212: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 2); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 213: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 1); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 214: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 3); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 215: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 2); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 216: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 3); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 217: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 4); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 218: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 219: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 4); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 220: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 6); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 221: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 7); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 222: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 8); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 223: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 8); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 224: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 8); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 225: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 8); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 226: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256BRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 8); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 227: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256HRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 8); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 228: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256WRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 8); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 229: ++ if (DecodeLASX256Mem10(MI, insn, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 230: ++ if (DecodeLASX256Mem13(MI, insn, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 231: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeLASX256DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeLASX256DRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 8); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 232: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 15, 2); ++ if (DecodeUImmWithOffset<2, 1>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 233: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 15, 2); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 234: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 235: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 5); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 236: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 16, 5); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ tmp = fieldFromInstruction(insn, 10, 5); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 237: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 16, 5); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ tmp = fieldFromInstruction(insn, 10, 5); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 238: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 12); ++ if (DecodeSImmWithOffsetAndScale<12>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 239: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 14); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 240: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 14); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 241: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 14); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 242: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 12); ++ if (DecodeSImmWithOffsetAndScale<12>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ return S; ++ case 243: ++ tmp = fieldFromInstruction(insn, 0, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 8); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 244: ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 8); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ case 245: ++ tmp = fieldFromInstruction(insn, 5, 5); ++ if (DecodeGPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 10, 12); ++ if (DecodeSImmWithOffsetAndScale<12>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; } ++ tmp = fieldFromInstruction(insn, 0, 5); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ return S; ++ } ++} ++ ++template ++static DecodeStatus decodeInstruction(const uint8_t DecodeTable[], MCInst &MI, ++ InsnType insn, uint64_t Address, ++ const void *DisAsm, ++ const MCSubtargetInfo &STI) { ++ const FeatureBitset& Bits = STI.getFeatureBits(); ++ ++ const uint8_t *Ptr = DecodeTable; ++ InsnType CurFieldValue = 0; ++ DecodeStatus S = MCDisassembler::Success; ++ while (true) { ++ ptrdiff_t Loc = Ptr - DecodeTable; ++ switch (*Ptr) { ++ default: ++ errs() << Loc << ": Unexpected decode table opcode!\n"; ++ return MCDisassembler::Fail; ++ case MCD::OPC_ExtractField: { ++ unsigned Start = *++Ptr; ++ unsigned Len = *++Ptr; ++ ++Ptr; ++ CurFieldValue = fieldFromInstruction(insn, Start, Len); ++ LLVM_DEBUG(dbgs() << Loc << ": OPC_ExtractField(" << Start << ", " ++ << Len << "): " << CurFieldValue << "\n"); ++ break; ++ } ++ case MCD::OPC_FilterValue: { ++ // Decode the field value. ++ unsigned Len; ++ InsnType Val = decodeULEB128(++Ptr, &Len); ++ Ptr += Len; ++ // NumToSkip is a plain 24-bit integer. ++ unsigned NumToSkip = *Ptr++; ++ NumToSkip |= (*Ptr++) << 8; ++ NumToSkip |= (*Ptr++) << 16; ++ ++ // Perform the filter operation. ++ if (Val != CurFieldValue) ++ Ptr += NumToSkip; ++ LLVM_DEBUG(dbgs() << Loc << ": OPC_FilterValue(" << Val << ", " << NumToSkip ++ << "): " << ((Val != CurFieldValue) ? "FAIL:" : "PASS:") ++ << " continuing at " << (Ptr - DecodeTable) << "\n"); ++ ++ break; ++ } ++ case MCD::OPC_CheckField: { ++ unsigned Start = *++Ptr; ++ unsigned Len = *++Ptr; ++ InsnType FieldValue = fieldFromInstruction(insn, Start, Len); ++ // Decode the field value. ++ InsnType ExpectedValue = decodeULEB128(++Ptr, &Len); ++ Ptr += Len; ++ // NumToSkip is a plain 24-bit integer. ++ unsigned NumToSkip = *Ptr++; ++ NumToSkip |= (*Ptr++) << 8; ++ NumToSkip |= (*Ptr++) << 16; ++ ++ // If the actual and expected values don't match, skip. ++ if (ExpectedValue != FieldValue) ++ Ptr += NumToSkip; ++ LLVM_DEBUG(dbgs() << Loc << ": OPC_CheckField(" << Start << ", " ++ << Len << ", " << ExpectedValue << ", " << NumToSkip ++ << "): FieldValue = " << FieldValue << ", ExpectedValue = " ++ << ExpectedValue << ": " ++ << ((ExpectedValue == FieldValue) ? "PASS\n" : "FAIL\n")); ++ break; ++ } ++ case MCD::OPC_CheckPredicate: { ++ unsigned Len; ++ // Decode the Predicate Index value. ++ unsigned PIdx = decodeULEB128(++Ptr, &Len); ++ Ptr += Len; ++ // NumToSkip is a plain 24-bit integer. ++ unsigned NumToSkip = *Ptr++; ++ NumToSkip |= (*Ptr++) << 8; ++ NumToSkip |= (*Ptr++) << 16; ++ // Check the predicate. ++ bool Pred; ++ if (!(Pred = checkDecoderPredicate(PIdx, Bits))) ++ Ptr += NumToSkip; ++ (void)Pred; ++ LLVM_DEBUG(dbgs() << Loc << ": OPC_CheckPredicate(" << PIdx << "): " ++ << (Pred ? "PASS\n" : "FAIL\n")); ++ ++ break; ++ } ++ case MCD::OPC_Decode: { ++ unsigned Len; ++ // Decode the Opcode value. ++ unsigned Opc = decodeULEB128(++Ptr, &Len); ++ Ptr += Len; ++ unsigned DecodeIdx = decodeULEB128(Ptr, &Len); ++ Ptr += Len; ++ ++ MI.clear(); ++ MI.setOpcode(Opc); ++ bool DecodeComplete; ++ S = decodeToMCInst(S, DecodeIdx, insn, MI, Address, DisAsm, DecodeComplete); ++ assert(DecodeComplete); ++ ++ LLVM_DEBUG(dbgs() << Loc << ": OPC_Decode: opcode " << Opc ++ << ", using decoder " << DecodeIdx << ": " ++ << (S != MCDisassembler::Fail ? "PASS" : "FAIL") << "\n"); ++ return S; ++ } ++ case MCD::OPC_TryDecode: { ++ unsigned Len; ++ // Decode the Opcode value. ++ unsigned Opc = decodeULEB128(++Ptr, &Len); ++ Ptr += Len; ++ unsigned DecodeIdx = decodeULEB128(Ptr, &Len); ++ Ptr += Len; ++ // NumToSkip is a plain 24-bit integer. ++ unsigned NumToSkip = *Ptr++; ++ NumToSkip |= (*Ptr++) << 8; ++ NumToSkip |= (*Ptr++) << 16; ++ ++ // Perform the decode operation. ++ MCInst TmpMI; ++ TmpMI.setOpcode(Opc); ++ bool DecodeComplete; ++ S = decodeToMCInst(S, DecodeIdx, insn, TmpMI, Address, DisAsm, DecodeComplete); ++ LLVM_DEBUG(dbgs() << Loc << ": OPC_TryDecode: opcode " << Opc ++ << ", using decoder " << DecodeIdx << ": "); ++ ++ if (DecodeComplete) { ++ // Decoding complete. ++ LLVM_DEBUG(dbgs() << (S != MCDisassembler::Fail ? "PASS" : "FAIL") << "\n"); ++ MI = TmpMI; ++ return S; ++ } else { ++ assert(S == MCDisassembler::Fail); ++ // If the decoding was incomplete, skip. ++ Ptr += NumToSkip; ++ LLVM_DEBUG(dbgs() << "FAIL: continuing at " << (Ptr - DecodeTable) << "\n"); ++ // Reset decode status. This also drops a SoftFail status that could be ++ // set before the decode attempt. ++ S = MCDisassembler::Success; ++ } ++ break; ++ } ++ case MCD::OPC_SoftFail: { ++ // Decode the mask values. ++ unsigned Len; ++ InsnType PositiveMask = decodeULEB128(++Ptr, &Len); ++ Ptr += Len; ++ InsnType NegativeMask = decodeULEB128(Ptr, &Len); ++ Ptr += Len; ++ bool Fail = (insn & PositiveMask) || (~insn & NegativeMask); ++ if (Fail) ++ S = MCDisassembler::SoftFail; ++ LLVM_DEBUG(dbgs() << Loc << ": OPC_SoftFail: " << (Fail ? "FAIL\n":"PASS\n")); ++ break; ++ } ++ case MCD::OPC_Fail: { ++ LLVM_DEBUG(dbgs() << Loc << ": OPC_Fail\n"); ++ return MCDisassembler::Fail; ++ } ++ } ++ } ++ llvm_unreachable("bogosity detected in disassembler state machine!"); ++} ++ ++ ++} // end namespace llvm +diff --git a/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenDisassemblerTables.inc.d b/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenDisassemblerTables.inc.d +new file mode 100644 +index 00000000000..30a50f99fd9 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenDisassemblerTables.inc.d +@@ -0,0 +1 @@ ++lib/Target/LoongArch/LoongArchGenDisassemblerTables.inc: /mnt/wangqing/work/llvm-project/llvm/include/llvm/CodeGen/SDNodeProperties.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/CodeGen/ValueTypes.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/Intrinsics.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsAArch64.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsAMDGPU.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsARM.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsBPF.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsHexagon.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsLoongArch.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsMips.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsNVVM.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsPowerPC.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsRISCV.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsSystemZ.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsWebAssembly.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsX86.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsXCore.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/GenericOpcodes.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/GlobalISel/RegisterBank.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/GlobalISel/SelectionDAGCompat.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/GlobalISel/Target.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/Target.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetCallingConv.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetInstrPredicate.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetItinerary.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetPfmCounters.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetSchedule.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetSelectionDAG.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArch32InstrInfo.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchCallingConv.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchInstrFormats.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchInstrInfo.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchInstrInfoF.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchLASXInstrFormats.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchLASXInstrInfo.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchLSXInstrFormats.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchLSXInstrInfo.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchRegisterInfo.td +diff --git a/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenInstrInfo.inc b/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenInstrInfo.inc +new file mode 100644 +index 00000000000..2cb3f2df47e +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenInstrInfo.inc +@@ -0,0 +1,12264 @@ ++/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\ ++|* *| ++|* Target Instruction Enum Values and Descriptors *| ++|* *| ++|* Automatically generated file, do not edit! *| ++|* *| ++\*===----------------------------------------------------------------------===*/ ++ ++#ifdef GET_INSTRINFO_ENUM ++#undef GET_INSTRINFO_ENUM ++namespace llvm { ++ ++namespace LoongArch { ++ enum { ++ PHI = 0, ++ INLINEASM = 1, ++ INLINEASM_BR = 2, ++ CFI_INSTRUCTION = 3, ++ EH_LABEL = 4, ++ GC_LABEL = 5, ++ ANNOTATION_LABEL = 6, ++ KILL = 7, ++ EXTRACT_SUBREG = 8, ++ INSERT_SUBREG = 9, ++ IMPLICIT_DEF = 10, ++ SUBREG_TO_REG = 11, ++ COPY_TO_REGCLASS = 12, ++ DBG_VALUE = 13, ++ DBG_LABEL = 14, ++ REG_SEQUENCE = 15, ++ COPY = 16, ++ BUNDLE = 17, ++ LIFETIME_START = 18, ++ LIFETIME_END = 19, ++ STACKMAP = 20, ++ FENTRY_CALL = 21, ++ PATCHPOINT = 22, ++ LOAD_STACK_GUARD = 23, ++ STATEPOINT = 24, ++ LOCAL_ESCAPE = 25, ++ FAULTING_OP = 26, ++ PATCHABLE_OP = 27, ++ PATCHABLE_FUNCTION_ENTER = 28, ++ PATCHABLE_RET = 29, ++ PATCHABLE_FUNCTION_EXIT = 30, ++ PATCHABLE_TAIL_CALL = 31, ++ PATCHABLE_EVENT_CALL = 32, ++ PATCHABLE_TYPED_EVENT_CALL = 33, ++ ICALL_BRANCH_FUNNEL = 34, ++ G_ADD = 35, ++ G_SUB = 36, ++ G_MUL = 37, ++ G_SDIV = 38, ++ G_UDIV = 39, ++ G_SREM = 40, ++ G_UREM = 41, ++ G_AND = 42, ++ G_OR = 43, ++ G_XOR = 44, ++ G_IMPLICIT_DEF = 45, ++ G_PHI = 46, ++ G_FRAME_INDEX = 47, ++ G_GLOBAL_VALUE = 48, ++ G_EXTRACT = 49, ++ G_UNMERGE_VALUES = 50, ++ G_INSERT = 51, ++ G_MERGE_VALUES = 52, ++ G_BUILD_VECTOR = 53, ++ G_BUILD_VECTOR_TRUNC = 54, ++ G_CONCAT_VECTORS = 55, ++ G_PTRTOINT = 56, ++ G_INTTOPTR = 57, ++ G_BITCAST = 58, ++ G_INTRINSIC_TRUNC = 59, ++ G_INTRINSIC_ROUND = 60, ++ G_READCYCLECOUNTER = 61, ++ G_LOAD = 62, ++ G_SEXTLOAD = 63, ++ G_ZEXTLOAD = 64, ++ G_INDEXED_LOAD = 65, ++ G_INDEXED_SEXTLOAD = 66, ++ G_INDEXED_ZEXTLOAD = 67, ++ G_STORE = 68, ++ G_INDEXED_STORE = 69, ++ G_ATOMIC_CMPXCHG_WITH_SUCCESS = 70, ++ G_ATOMIC_CMPXCHG = 71, ++ G_ATOMICRMW_XCHG = 72, ++ G_ATOMICRMW_ADD = 73, ++ G_ATOMICRMW_SUB = 74, ++ G_ATOMICRMW_AND = 75, ++ G_ATOMICRMW_NAND = 76, ++ G_ATOMICRMW_OR = 77, ++ G_ATOMICRMW_XOR = 78, ++ G_ATOMICRMW_MAX = 79, ++ G_ATOMICRMW_MIN = 80, ++ G_ATOMICRMW_UMAX = 81, ++ G_ATOMICRMW_UMIN = 82, ++ G_ATOMICRMW_FADD = 83, ++ G_ATOMICRMW_FSUB = 84, ++ G_FENCE = 85, ++ G_BRCOND = 86, ++ G_BRINDIRECT = 87, ++ G_INTRINSIC = 88, ++ G_INTRINSIC_W_SIDE_EFFECTS = 89, ++ G_ANYEXT = 90, ++ G_TRUNC = 91, ++ G_CONSTANT = 92, ++ G_FCONSTANT = 93, ++ G_VASTART = 94, ++ G_VAARG = 95, ++ G_SEXT = 96, ++ G_SEXT_INREG = 97, ++ G_ZEXT = 98, ++ G_SHL = 99, ++ G_LSHR = 100, ++ G_ASHR = 101, ++ G_ICMP = 102, ++ G_FCMP = 103, ++ G_SELECT = 104, ++ G_UADDO = 105, ++ G_UADDE = 106, ++ G_USUBO = 107, ++ G_USUBE = 108, ++ G_SADDO = 109, ++ G_SADDE = 110, ++ G_SSUBO = 111, ++ G_SSUBE = 112, ++ G_UMULO = 113, ++ G_SMULO = 114, ++ G_UMULH = 115, ++ G_SMULH = 116, ++ G_FADD = 117, ++ G_FSUB = 118, ++ G_FMUL = 119, ++ G_FMA = 120, ++ G_FMAD = 121, ++ G_FDIV = 122, ++ G_FREM = 123, ++ G_FPOW = 124, ++ G_FEXP = 125, ++ G_FEXP2 = 126, ++ G_FLOG = 127, ++ G_FLOG2 = 128, ++ G_FLOG10 = 129, ++ G_FNEG = 130, ++ G_FPEXT = 131, ++ G_FPTRUNC = 132, ++ G_FPTOSI = 133, ++ G_FPTOUI = 134, ++ G_SITOFP = 135, ++ G_UITOFP = 136, ++ G_FABS = 137, ++ G_FCOPYSIGN = 138, ++ G_FCANONICALIZE = 139, ++ G_FMINNUM = 140, ++ G_FMAXNUM = 141, ++ G_FMINNUM_IEEE = 142, ++ G_FMAXNUM_IEEE = 143, ++ G_FMINIMUM = 144, ++ G_FMAXIMUM = 145, ++ G_PTR_ADD = 146, ++ G_PTR_MASK = 147, ++ G_SMIN = 148, ++ G_SMAX = 149, ++ G_UMIN = 150, ++ G_UMAX = 151, ++ G_BR = 152, ++ G_BRJT = 153, ++ G_INSERT_VECTOR_ELT = 154, ++ G_EXTRACT_VECTOR_ELT = 155, ++ G_SHUFFLE_VECTOR = 156, ++ G_CTTZ = 157, ++ G_CTTZ_ZERO_UNDEF = 158, ++ G_CTLZ = 159, ++ G_CTLZ_ZERO_UNDEF = 160, ++ G_CTPOP = 161, ++ G_BSWAP = 162, ++ G_BITREVERSE = 163, ++ G_FCEIL = 164, ++ G_FCOS = 165, ++ G_FSIN = 166, ++ G_FSQRT = 167, ++ G_FFLOOR = 168, ++ G_FRINT = 169, ++ G_FNEARBYINT = 170, ++ G_ADDRSPACE_CAST = 171, ++ G_BLOCK_ADDR = 172, ++ G_JUMP_TABLE = 173, ++ G_DYN_STACKALLOC = 174, ++ G_READ_REGISTER = 175, ++ G_WRITE_REGISTER = 176, ++ ADJCALLSTACKDOWN = 177, ++ ADJCALLSTACKUP = 178, ++ AND_V_D_PSEUDO = 179, ++ AND_V_H_PSEUDO = 180, ++ AND_V_W_PSEUDO = 181, ++ ATOMIC_CMP_SWAP_I16 = 182, ++ ATOMIC_CMP_SWAP_I16_POSTRA = 183, ++ ATOMIC_CMP_SWAP_I32 = 184, ++ ATOMIC_CMP_SWAP_I32_POSTRA = 185, ++ ATOMIC_CMP_SWAP_I64 = 186, ++ ATOMIC_CMP_SWAP_I64_POSTRA = 187, ++ ATOMIC_CMP_SWAP_I8 = 188, ++ ATOMIC_CMP_SWAP_I8_POSTRA = 189, ++ ATOMIC_LOAD_ADD_I16 = 190, ++ ATOMIC_LOAD_ADD_I16_POSTRA = 191, ++ ATOMIC_LOAD_ADD_I32 = 192, ++ ATOMIC_LOAD_ADD_I32_POSTRA = 193, ++ ATOMIC_LOAD_ADD_I64 = 194, ++ ATOMIC_LOAD_ADD_I64_POSTRA = 195, ++ ATOMIC_LOAD_ADD_I8 = 196, ++ ATOMIC_LOAD_ADD_I8_POSTRA = 197, ++ ATOMIC_LOAD_AND_I16 = 198, ++ ATOMIC_LOAD_AND_I16_POSTRA = 199, ++ ATOMIC_LOAD_AND_I32 = 200, ++ ATOMIC_LOAD_AND_I32_POSTRA = 201, ++ ATOMIC_LOAD_AND_I64 = 202, ++ ATOMIC_LOAD_AND_I64_POSTRA = 203, ++ ATOMIC_LOAD_AND_I8 = 204, ++ ATOMIC_LOAD_AND_I8_POSTRA = 205, ++ ATOMIC_LOAD_MAX_I16 = 206, ++ ATOMIC_LOAD_MAX_I16_POSTRA = 207, ++ ATOMIC_LOAD_MAX_I32 = 208, ++ ATOMIC_LOAD_MAX_I32_POSTRA = 209, ++ ATOMIC_LOAD_MAX_I64 = 210, ++ ATOMIC_LOAD_MAX_I64_POSTRA = 211, ++ ATOMIC_LOAD_MAX_I8 = 212, ++ ATOMIC_LOAD_MAX_I8_POSTRA = 213, ++ ATOMIC_LOAD_MIN_I16 = 214, ++ ATOMIC_LOAD_MIN_I16_POSTRA = 215, ++ ATOMIC_LOAD_MIN_I32 = 216, ++ ATOMIC_LOAD_MIN_I32_POSTRA = 217, ++ ATOMIC_LOAD_MIN_I64 = 218, ++ ATOMIC_LOAD_MIN_I64_POSTRA = 219, ++ ATOMIC_LOAD_MIN_I8 = 220, ++ ATOMIC_LOAD_MIN_I8_POSTRA = 221, ++ ATOMIC_LOAD_NAND_I16 = 222, ++ ATOMIC_LOAD_NAND_I16_POSTRA = 223, ++ ATOMIC_LOAD_NAND_I32 = 224, ++ ATOMIC_LOAD_NAND_I32_POSTRA = 225, ++ ATOMIC_LOAD_NAND_I64 = 226, ++ ATOMIC_LOAD_NAND_I64_POSTRA = 227, ++ ATOMIC_LOAD_NAND_I8 = 228, ++ ATOMIC_LOAD_NAND_I8_POSTRA = 229, ++ ATOMIC_LOAD_OR_I16 = 230, ++ ATOMIC_LOAD_OR_I16_POSTRA = 231, ++ ATOMIC_LOAD_OR_I32 = 232, ++ ATOMIC_LOAD_OR_I32_POSTRA = 233, ++ ATOMIC_LOAD_OR_I64 = 234, ++ ATOMIC_LOAD_OR_I64_POSTRA = 235, ++ ATOMIC_LOAD_OR_I8 = 236, ++ ATOMIC_LOAD_OR_I8_POSTRA = 237, ++ ATOMIC_LOAD_SUB_I16 = 238, ++ ATOMIC_LOAD_SUB_I16_POSTRA = 239, ++ ATOMIC_LOAD_SUB_I32 = 240, ++ ATOMIC_LOAD_SUB_I32_POSTRA = 241, ++ ATOMIC_LOAD_SUB_I64 = 242, ++ ATOMIC_LOAD_SUB_I64_POSTRA = 243, ++ ATOMIC_LOAD_SUB_I8 = 244, ++ ATOMIC_LOAD_SUB_I8_POSTRA = 245, ++ ATOMIC_LOAD_UMAX_I16 = 246, ++ ATOMIC_LOAD_UMAX_I16_POSTRA = 247, ++ ATOMIC_LOAD_UMAX_I32 = 248, ++ ATOMIC_LOAD_UMAX_I32_POSTRA = 249, ++ ATOMIC_LOAD_UMAX_I64 = 250, ++ ATOMIC_LOAD_UMAX_I64_POSTRA = 251, ++ ATOMIC_LOAD_UMAX_I8 = 252, ++ ATOMIC_LOAD_UMAX_I8_POSTRA = 253, ++ ATOMIC_LOAD_UMIN_I16 = 254, ++ ATOMIC_LOAD_UMIN_I16_POSTRA = 255, ++ ATOMIC_LOAD_UMIN_I32 = 256, ++ ATOMIC_LOAD_UMIN_I32_POSTRA = 257, ++ ATOMIC_LOAD_UMIN_I64 = 258, ++ ATOMIC_LOAD_UMIN_I64_POSTRA = 259, ++ ATOMIC_LOAD_UMIN_I8 = 260, ++ ATOMIC_LOAD_UMIN_I8_POSTRA = 261, ++ ATOMIC_LOAD_XOR_I16 = 262, ++ ATOMIC_LOAD_XOR_I16_POSTRA = 263, ++ ATOMIC_LOAD_XOR_I32 = 264, ++ ATOMIC_LOAD_XOR_I32_POSTRA = 265, ++ ATOMIC_LOAD_XOR_I64 = 266, ++ ATOMIC_LOAD_XOR_I64_POSTRA = 267, ++ ATOMIC_LOAD_XOR_I8 = 268, ++ ATOMIC_LOAD_XOR_I8_POSTRA = 269, ++ ATOMIC_SWAP_I16 = 270, ++ ATOMIC_SWAP_I16_POSTRA = 271, ++ ATOMIC_SWAP_I32 = 272, ++ ATOMIC_SWAP_I32_POSTRA = 273, ++ ATOMIC_SWAP_I64 = 274, ++ ATOMIC_SWAP_I64_POSTRA = 275, ++ ATOMIC_SWAP_I8 = 276, ++ ATOMIC_SWAP_I8_POSTRA = 277, ++ BSEL_B_PSEUDO = 278, ++ BSEL_D_PSEUDO = 279, ++ BSEL_FD_PSEUDO = 280, ++ BSEL_FW_PSEUDO = 281, ++ BSEL_H_PSEUDO = 282, ++ BSEL_W_PSEUDO = 283, ++ CONCAT_VECTORS_B_PSEUDO = 284, ++ CONCAT_VECTORS_D_PSEUDO = 285, ++ CONCAT_VECTORS_FD_PSEUDO = 286, ++ CONCAT_VECTORS_FW_PSEUDO = 287, ++ CONCAT_VECTORS_H_PSEUDO = 288, ++ CONCAT_VECTORS_W_PSEUDO = 289, ++ COPY_FD_PSEUDO = 290, ++ COPY_FW_PSEUDO = 291, ++ ERet = 292, ++ FILL_FD_PSEUDO = 293, ++ FILL_FW_PSEUDO = 294, ++ INSERT_FD_PSEUDO = 295, ++ INSERT_FW_PSEUDO = 296, ++ INSERT_H_VIDX64_PSEUDO = 297, ++ INSERT_H_VIDX64_PSEUDO_POSTRA = 298, ++ JIRLRBRIND = 299, ++ JIRLRPseudo = 300, ++ LONG_BRANCH_ADDID = 301, ++ LONG_BRANCH_ADDID2Op = 302, ++ LONG_BRANCH_ADDIW = 303, ++ LONG_BRANCH_ADDIW2Op = 304, ++ LONG_BRANCH_PCADDU12I = 305, ++ LoadAddrGlobal = 306, ++ LoadAddrGlobalRR = 307, ++ LoadAddrGlobal_Alias = 308, ++ LoadAddrLocal = 309, ++ LoadAddrLocalRR = 310, ++ LoadAddrTLS_GD = 311, ++ LoadAddrTLS_GD_RR = 312, ++ LoadAddrTLS_IE = 313, ++ LoadAddrTLS_IE_RR = 314, ++ LoadAddrTLS_LD = 315, ++ LoadAddrTLS_LD_RR = 316, ++ LoadAddrTLS_LE = 317, ++ LoadImm32 = 318, ++ LoadImm64 = 319, ++ LoongArcheh_return32 = 320, ++ LoongArcheh_return64 = 321, ++ NOP = 322, ++ NOR_V_D_PSEUDO = 323, ++ NOR_V_H_PSEUDO = 324, ++ NOR_V_W_PSEUDO = 325, ++ OR_V_D_PSEUDO = 326, ++ OR_V_H_PSEUDO = 327, ++ OR_V_W_PSEUDO = 328, ++ PseudoCall = 329, ++ PseudoFFINT_D_L = 330, ++ PseudoFFINT_D_W = 331, ++ PseudoFFINT_S_L = 332, ++ PseudoFFINT_S_W = 333, ++ PseudoReturn = 334, ++ PseudoReturn64 = 335, ++ PseudoSELECTFP_F_I = 336, ++ PseudoSELECTFP_F_I64 = 337, ++ PseudoSELECTFP_T_I = 338, ++ PseudoSELECTFP_T_I64 = 339, ++ PseudoSELECT_D64 = 340, ++ PseudoSELECT_I = 341, ++ PseudoSELECT_I64 = 342, ++ PseudoSELECT_S = 343, ++ PseudoTAILIndirect = 344, ++ PseudoTEQ = 345, ++ PseudoTailCall = 346, ++ PseudoTailReturn = 347, ++ RetRA = 348, ++ SNZ_B_PSEUDO = 349, ++ SNZ_D_PSEUDO = 350, ++ SNZ_H_PSEUDO = 351, ++ SNZ_V_PSEUDO = 352, ++ SNZ_W_PSEUDO = 353, ++ SZ_B_PSEUDO = 354, ++ SZ_D_PSEUDO = 355, ++ SZ_H_PSEUDO = 356, ++ SZ_V_PSEUDO = 357, ++ SZ_W_PSEUDO = 358, ++ TRAP = 359, ++ VANDN_D_PSEUDO = 360, ++ VANDN_H_PSEUDO = 361, ++ VANDN_W_PSEUDO = 362, ++ VORN_D_PSEUDO = 363, ++ VORN_H_PSEUDO = 364, ++ VORN_W_PSEUDO = 365, ++ XAND_V_D_PSEUDO = 366, ++ XAND_V_H_PSEUDO = 367, ++ XAND_V_W_PSEUDO = 368, ++ XBSEL_B_PSEUDO = 369, ++ XBSEL_D_PSEUDO = 370, ++ XBSEL_FD_PSEUDO = 371, ++ XBSEL_FW_PSEUDO = 372, ++ XBSEL_H_PSEUDO = 373, ++ XBSEL_W_PSEUDO = 374, ++ XCOPY_FD_PSEUDO = 375, ++ XCOPY_FW_GPR_PSEUDO = 376, ++ XCOPY_FW_PSEUDO = 377, ++ XFILL_FD_PSEUDO = 378, ++ XFILL_FW_PSEUDO = 379, ++ XINSERT_B_PSEUDO = 380, ++ XINSERT_B_VIDX64_PSEUDO = 381, ++ XINSERT_B_VIDX64_PSEUDO_POSTRA = 382, ++ XINSERT_B_VIDX_PSEUDO = 383, ++ XINSERT_B_VIDX_PSEUDO_POSTRA = 384, ++ XINSERT_FD_PSEUDO = 385, ++ XINSERT_FW_PSEUDO = 386, ++ XINSERT_FW_VIDX64_PSEUDO = 387, ++ XINSERT_FW_VIDX64_PSEUDO_POSTRA = 388, ++ XINSERT_FW_VIDX_PSEUDO = 389, ++ XINSERT_FW_VIDX_PSEUDO_POSTRA = 390, ++ XINSERT_H64_PSEUDO = 391, ++ XINSERT_H_PSEUDO = 392, ++ XNOR_V_D_PSEUDO = 393, ++ XNOR_V_H_PSEUDO = 394, ++ XNOR_V_W_PSEUDO = 395, ++ XOR_V_D_PSEUDO = 396, ++ XOR_V_H_PSEUDO = 397, ++ XOR_V_W_PSEUDO = 398, ++ XSNZ_B_PSEUDO = 399, ++ XSNZ_D_PSEUDO = 400, ++ XSNZ_H_PSEUDO = 401, ++ XSNZ_V_PSEUDO = 402, ++ XSNZ_W_PSEUDO = 403, ++ XSZ_B_PSEUDO = 404, ++ XSZ_D_PSEUDO = 405, ++ XSZ_H_PSEUDO = 406, ++ XSZ_V_PSEUDO = 407, ++ XSZ_W_PSEUDO = 408, ++ XVANDN_D_PSEUDO = 409, ++ XVANDN_H_PSEUDO = 410, ++ XVANDN_W_PSEUDO = 411, ++ XVORN_D_PSEUDO = 412, ++ XVORN_H_PSEUDO = 413, ++ XVORN_W_PSEUDO = 414, ++ XXOR_V_D_PSEUDO = 415, ++ XXOR_V_H_PSEUDO = 416, ++ XXOR_V_W_PSEUDO = 417, ++ X_OR_V_D_PSEUDO = 418, ++ X_OR_V_H_PSEUDO = 419, ++ X_OR_V_W_PSEUDO = 420, ++ ADDI_D = 421, ++ ADDI_D_rri = 422, ++ ADDI_D_rrii = 423, ++ ADDI_W = 424, ++ ADDI_W64 = 425, ++ ADDU16I_D = 426, ++ ADD_D = 427, ++ ADD_D_rrr = 428, ++ ADD_W = 429, ++ ALSL_D = 430, ++ ALSL_W = 431, ++ ALSL_WU = 432, ++ AMADD_D = 433, ++ AMADD_DB_D = 434, ++ AMADD_DB_W = 435, ++ AMADD_W = 436, ++ AMAND_D = 437, ++ AMAND_DB_D = 438, ++ AMAND_DB_W = 439, ++ AMAND_W = 440, ++ AMMAX_D = 441, ++ AMMAX_DB_D = 442, ++ AMMAX_DB_DU = 443, ++ AMMAX_DB_W = 444, ++ AMMAX_DB_WU = 445, ++ AMMAX_DU = 446, ++ AMMAX_W = 447, ++ AMMAX_WU = 448, ++ AMMIN_D = 449, ++ AMMIN_DB_D = 450, ++ AMMIN_DB_DU = 451, ++ AMMIN_DB_W = 452, ++ AMMIN_DB_WU = 453, ++ AMMIN_DU = 454, ++ AMMIN_W = 455, ++ AMMIN_WU = 456, ++ AMOR_D = 457, ++ AMOR_DB_D = 458, ++ AMOR_DB_W = 459, ++ AMOR_W = 460, ++ AMSWAP_D = 461, ++ AMSWAP_DB_D = 462, ++ AMSWAP_DB_W = 463, ++ AMSWAP_W = 464, ++ AMXOR_D = 465, ++ AMXOR_DB_D = 466, ++ AMXOR_DB_W = 467, ++ AMXOR_W = 468, ++ AND = 469, ++ AND32 = 470, ++ ANDI = 471, ++ ANDI32 = 472, ++ ANDN = 473, ++ ANDN32 = 474, ++ ASRTGT_D = 475, ++ ASRTLE_D = 476, ++ B = 477, ++ B32 = 478, ++ BCEQZ = 479, ++ BCNEZ = 480, ++ BEQ = 481, ++ BEQ32 = 482, ++ BEQZ = 483, ++ BEQZ32 = 484, ++ BGE = 485, ++ BGE32 = 486, ++ BGEU = 487, ++ BGEU32 = 488, ++ BITREV_4B = 489, ++ BITREV_8B = 490, ++ BITREV_D = 491, ++ BITREV_W = 492, ++ BL = 493, ++ BLT = 494, ++ BLT32 = 495, ++ BLTU = 496, ++ BLTU32 = 497, ++ BNE = 498, ++ BNE32 = 499, ++ BNEZ = 500, ++ BNEZ32 = 501, ++ BREAK = 502, ++ BSTRINS_D = 503, ++ BSTRINS_W = 504, ++ BSTRPICK_D = 505, ++ BSTRPICK_W = 506, ++ BYTEPICK_D = 507, ++ BYTEPICK_W = 508, ++ CACOP = 509, ++ CACOP32 = 510, ++ CLO_D = 511, ++ CLO_W = 512, ++ CLZ_D = 513, ++ CLZ_W = 514, ++ CPUCFG = 515, ++ CRCC_W_B_W = 516, ++ CRCC_W_D_W = 517, ++ CRCC_W_H_W = 518, ++ CRCC_W_W_W = 519, ++ CRC_W_B_W = 520, ++ CRC_W_D_W = 521, ++ CRC_W_H_W = 522, ++ CRC_W_W_W = 523, ++ CSRRD = 524, ++ CSRRD32 = 525, ++ CSRWR = 526, ++ CSRWR32 = 527, ++ CSRXCHG = 528, ++ CSRXCHG32 = 529, ++ CTO_D = 530, ++ CTO_W = 531, ++ CTZ_D = 532, ++ CTZ_W = 533, ++ DBAR = 534, ++ DBCL = 535, ++ DIV_D = 536, ++ DIV_DU = 537, ++ DIV_W = 538, ++ DIV_WU = 539, ++ ERTN = 540, ++ EXT_W_B = 541, ++ EXT_W_B32 = 542, ++ EXT_W_H = 543, ++ EXT_W_H32 = 544, ++ FABS_D = 545, ++ FABS_S = 546, ++ FADD_D = 547, ++ FADD_S = 548, ++ FCLASS_D = 549, ++ FCLASS_S = 550, ++ FCMP_CAF_D = 551, ++ FCMP_CAF_S = 552, ++ FCMP_CEQ_D = 553, ++ FCMP_CEQ_S = 554, ++ FCMP_CLE_D = 555, ++ FCMP_CLE_S = 556, ++ FCMP_CLT_D = 557, ++ FCMP_CLT_S = 558, ++ FCMP_CNE_D = 559, ++ FCMP_CNE_S = 560, ++ FCMP_COR_D = 561, ++ FCMP_COR_S = 562, ++ FCMP_CUEQ_D = 563, ++ FCMP_CUEQ_S = 564, ++ FCMP_CULE_D = 565, ++ FCMP_CULE_S = 566, ++ FCMP_CULT_D = 567, ++ FCMP_CULT_S = 568, ++ FCMP_CUNE_D = 569, ++ FCMP_CUNE_S = 570, ++ FCMP_CUN_D = 571, ++ FCMP_CUN_S = 572, ++ FCMP_D64 = 573, ++ FCMP_S32 = 574, ++ FCMP_SAF_D = 575, ++ FCMP_SAF_S = 576, ++ FCMP_SEQ_D = 577, ++ FCMP_SEQ_S = 578, ++ FCMP_SLE_D = 579, ++ FCMP_SLE_S = 580, ++ FCMP_SLT_D = 581, ++ FCMP_SLT_S = 582, ++ FCMP_SNE_D = 583, ++ FCMP_SNE_S = 584, ++ FCMP_SOR_D = 585, ++ FCMP_SOR_S = 586, ++ FCMP_SUEQ_D = 587, ++ FCMP_SUEQ_S = 588, ++ FCMP_SULE_D = 589, ++ FCMP_SULE_S = 590, ++ FCMP_SULT_D = 591, ++ FCMP_SULT_S = 592, ++ FCMP_SUNE_D = 593, ++ FCMP_SUNE_S = 594, ++ FCMP_SUN_D = 595, ++ FCMP_SUN_S = 596, ++ FCOPYSIGN_D = 597, ++ FCOPYSIGN_S = 598, ++ FCVT_D_S = 599, ++ FCVT_S_D = 600, ++ FDIV_D = 601, ++ FDIV_S = 602, ++ FFINT_D_L = 603, ++ FFINT_D_W = 604, ++ FFINT_S_L = 605, ++ FFINT_S_W = 606, ++ FLDGT_D = 607, ++ FLDGT_S = 608, ++ FLDLE_D = 609, ++ FLDLE_S = 610, ++ FLDX_D = 611, ++ FLDX_S = 612, ++ FLD_D = 613, ++ FLD_S = 614, ++ FLOGB_D = 615, ++ FLOGB_S = 616, ++ FMADD_D = 617, ++ FMADD_S = 618, ++ FMAXA_D = 619, ++ FMAXA_S = 620, ++ FMAX_D = 621, ++ FMAX_S = 622, ++ FMINA_D = 623, ++ FMINA_S = 624, ++ FMIN_D = 625, ++ FMIN_S = 626, ++ FMOV_D = 627, ++ FMOV_S = 628, ++ FMSUB_D = 629, ++ FMSUB_S = 630, ++ FMUL_D = 631, ++ FMUL_S = 632, ++ FNEG_D = 633, ++ FNEG_S = 634, ++ FNMADD_D = 635, ++ FNMADD_S = 636, ++ FNMSUB_D = 637, ++ FNMSUB_S = 638, ++ FRECIP_D = 639, ++ FRECIP_S = 640, ++ FRINT_D = 641, ++ FRINT_S = 642, ++ FRSQRT_D = 643, ++ FRSQRT_S = 644, ++ FSCALEB_D = 645, ++ FSCALEB_S = 646, ++ FSEL_T_D = 647, ++ FSEL_T_S = 648, ++ FSQRT_D = 649, ++ FSQRT_S = 650, ++ FSTGT_D = 651, ++ FSTGT_S = 652, ++ FSTLE_D = 653, ++ FSTLE_S = 654, ++ FSTX_D = 655, ++ FSTX_S = 656, ++ FST_D = 657, ++ FST_S = 658, ++ FSUB_D = 659, ++ FSUB_S = 660, ++ FTINTRM_L_D = 661, ++ FTINTRM_L_S = 662, ++ FTINTRM_W_D = 663, ++ FTINTRM_W_S = 664, ++ FTINTRNE_L_D = 665, ++ FTINTRNE_L_S = 666, ++ FTINTRNE_W_D = 667, ++ FTINTRNE_W_S = 668, ++ FTINTRP_L_D = 669, ++ FTINTRP_L_S = 670, ++ FTINTRP_W_D = 671, ++ FTINTRP_W_S = 672, ++ FTINTRZ_L_D = 673, ++ FTINTRZ_L_S = 674, ++ FTINTRZ_W_S = 675, ++ FTINT_L_D = 676, ++ FTINT_L_S = 677, ++ FTINT_W_D = 678, ++ FTINT_W_S = 679, ++ HYPCALL = 680, ++ IBAR = 681, ++ IDLE = 682, ++ INVTLB = 683, ++ IOCSRRD_B = 684, ++ IOCSRRD_B32 = 685, ++ IOCSRRD_D = 686, ++ IOCSRRD_H = 687, ++ IOCSRRD_H32 = 688, ++ IOCSRRD_W = 689, ++ IOCSRRD_W32 = 690, ++ IOCSRWR_B32 = 691, ++ IOCSRWR_D = 692, ++ IOCSRWR_H32 = 693, ++ IOCSRWR_W32 = 694, ++ JIRL = 695, ++ JIRL32 = 696, ++ JIRLR = 697, ++ JIRL_CALL = 698, ++ LAPCREL = 699, ++ LDDIR = 700, ++ LDDIR32 = 701, ++ LDGT_B = 702, ++ LDGT_D = 703, ++ LDGT_H = 704, ++ LDGT_W = 705, ++ LDLE_B = 706, ++ LDLE_D = 707, ++ LDLE_H = 708, ++ LDLE_W = 709, ++ LDPTE = 710, ++ LDPTE32 = 711, ++ LDPTR_D = 712, ++ LDPTR_W = 713, ++ LDPTR_W32 = 714, ++ LDX_B = 715, ++ LDX_B32 = 716, ++ LDX_BU = 717, ++ LDX_BU32 = 718, ++ LDX_D = 719, ++ LDX_D_rrr = 720, ++ LDX_H = 721, ++ LDX_H32 = 722, ++ LDX_HU = 723, ++ LDX_HU32 = 724, ++ LDX_W = 725, ++ LDX_W32 = 726, ++ LDX_WU = 727, ++ LD_B = 728, ++ LD_B32 = 729, ++ LD_BU = 730, ++ LD_BU32 = 731, ++ LD_D = 732, ++ LD_D_rri = 733, ++ LD_D_rrii = 734, ++ LD_H = 735, ++ LD_H32 = 736, ++ LD_HU = 737, ++ LD_HU32 = 738, ++ LD_W = 739, ++ LD_W32 = 740, ++ LD_WU = 741, ++ LEA_ADDI_D = 742, ++ LEA_ADDI_W = 743, ++ LL_D = 744, ++ LL_W = 745, ++ LU12I_W = 746, ++ LU12I_W32 = 747, ++ LU12I_W_ri = 748, ++ LU32I_D = 749, ++ LU32I_D_R2 = 750, ++ LU32I_D_ri = 751, ++ LU32I_D_rii = 752, ++ LU52I_D = 753, ++ LU52I_D_rri = 754, ++ LU52I_D_rrii = 755, ++ MASKEQZ = 756, ++ MASKEQZ32 = 757, ++ MASKNEZ = 758, ++ MASKNEZ32 = 759, ++ MOD_D = 760, ++ MOD_DU = 761, ++ MOD_W = 762, ++ MOD_WU = 763, ++ MOVCF2FR = 764, ++ MOVCF2FR32 = 765, ++ MOVCF2GR = 766, ++ MOVCF2GR32 = 767, ++ MOVFCSR2GR = 768, ++ MOVFR2CF = 769, ++ MOVFR2CF32 = 770, ++ MOVFR2GR_D = 771, ++ MOVFR2GR_DS = 772, ++ MOVFR2GR_S = 773, ++ MOVFRH2GR_S = 774, ++ MOVGR2CF = 775, ++ MOVGR2CF32 = 776, ++ MOVGR2FCSR = 777, ++ MOVGR2FRH_W = 778, ++ MOVGR2FR_D = 779, ++ MOVGR2FR_W = 780, ++ MULH_D = 781, ++ MULH_DU = 782, ++ MULH_W = 783, ++ MULH_WU = 784, ++ MULW_D_W = 785, ++ MULW_D_WU = 786, ++ MUL_D = 787, ++ MUL_W = 788, ++ NOR = 789, ++ NOR32 = 790, ++ OR = 791, ++ OR32 = 792, ++ ORI = 793, ++ ORI32 = 794, ++ ORI_rri = 795, ++ ORI_rrii = 796, ++ ORN = 797, ++ ORN32 = 798, ++ PCADDI = 799, ++ PCADDI32 = 800, ++ PCADDU12I = 801, ++ PCADDU12I32 = 802, ++ PCADDU12I_ri = 803, ++ PCADDU12I_rii = 804, ++ PCADDU18I = 805, ++ PCALAU12I = 806, ++ PCALAU12I32 = 807, ++ PRELD = 808, ++ PRELD32 = 809, ++ PRELD_Raw = 810, ++ PRELD_Raw32 = 811, ++ RDTIMEH_W = 812, ++ RDTIMEH_W32 = 813, ++ RDTIMEL_W = 814, ++ RDTIMEL_W32 = 815, ++ RDTIME_D = 816, ++ REVB_2H = 817, ++ REVB_2W = 818, ++ REVB_2W_32 = 819, ++ REVB_4H = 820, ++ REVB_D = 821, ++ REVH_2W = 822, ++ REVH_2W_32 = 823, ++ REVH_D = 824, ++ ROTRI_D = 825, ++ ROTRI_W = 826, ++ ROTR_D = 827, ++ ROTR_W = 828, ++ SC_D = 829, ++ SC_W = 830, ++ SLLI_D = 831, ++ SLLI_D_64_32 = 832, ++ SLLI_W = 833, ++ SLLI_W_64_32 = 834, ++ SLLI_W_64_64 = 835, ++ SLL_D = 836, ++ SLL_W = 837, ++ SLT = 838, ++ SLT32 = 839, ++ SLTI = 840, ++ SLTI32 = 841, ++ SLTU = 842, ++ SLTU32 = 843, ++ SLTUI = 844, ++ SLTUI32 = 845, ++ SLTUI_64 = 846, ++ SRAI_D = 847, ++ SRAI_W = 848, ++ SRA_D = 849, ++ SRA_W = 850, ++ SRLI_D = 851, ++ SRLI_W = 852, ++ SRL_D = 853, ++ SRL_W = 854, ++ STGT_B = 855, ++ STGT_D = 856, ++ STGT_H = 857, ++ STGT_W = 858, ++ STLE_B = 859, ++ STLE_D = 860, ++ STLE_H = 861, ++ STLE_W = 862, ++ STPTR_D = 863, ++ STPTR_W = 864, ++ STPTR_W32 = 865, ++ STX_B = 866, ++ STX_B32 = 867, ++ STX_D = 868, ++ STX_H = 869, ++ STX_H32 = 870, ++ STX_W = 871, ++ STX_W32 = 872, ++ ST_B = 873, ++ ST_B32 = 874, ++ ST_D = 875, ++ ST_H = 876, ++ ST_H32 = 877, ++ ST_W = 878, ++ ST_W32 = 879, ++ SUB_D = 880, ++ SUB_W = 881, ++ SYSCALL = 882, ++ TLBCLR = 883, ++ TLBFILL = 884, ++ TLBFLUSH = 885, ++ TLBRD = 886, ++ TLBSRCH = 887, ++ TLBWR = 888, ++ TRUNC_W_D = 889, ++ VABSD_B = 890, ++ VABSD_BU = 891, ++ VABSD_D = 892, ++ VABSD_DU = 893, ++ VABSD_H = 894, ++ VABSD_HU = 895, ++ VABSD_W = 896, ++ VABSD_WU = 897, ++ VADDA_B = 898, ++ VADDA_D = 899, ++ VADDA_H = 900, ++ VADDA_W = 901, ++ VADDI_BU = 902, ++ VADDI_DU = 903, ++ VADDI_HU = 904, ++ VADDI_WU = 905, ++ VADDWEV_D_W = 906, ++ VADDWEV_D_WU = 907, ++ VADDWEV_D_WU_W = 908, ++ VADDWEV_H_B = 909, ++ VADDWEV_H_BU = 910, ++ VADDWEV_H_BU_B = 911, ++ VADDWEV_Q_D = 912, ++ VADDWEV_Q_DU = 913, ++ VADDWEV_Q_DU_D = 914, ++ VADDWEV_W_H = 915, ++ VADDWEV_W_HU = 916, ++ VADDWEV_W_HU_H = 917, ++ VADDWOD_D_W = 918, ++ VADDWOD_D_WU = 919, ++ VADDWOD_D_WU_W = 920, ++ VADDWOD_H_B = 921, ++ VADDWOD_H_BU = 922, ++ VADDWOD_H_BU_B = 923, ++ VADDWOD_Q_D = 924, ++ VADDWOD_Q_DU = 925, ++ VADDWOD_Q_DU_D = 926, ++ VADDWOD_W_H = 927, ++ VADDWOD_W_HU = 928, ++ VADDWOD_W_HU_H = 929, ++ VADD_B = 930, ++ VADD_D = 931, ++ VADD_H = 932, ++ VADD_Q = 933, ++ VADD_W = 934, ++ VANDI_B = 935, ++ VANDI_B_N = 936, ++ VANDN_V = 937, ++ VAND_V = 938, ++ VAVGR_B = 939, ++ VAVGR_BU = 940, ++ VAVGR_D = 941, ++ VAVGR_DU = 942, ++ VAVGR_H = 943, ++ VAVGR_HU = 944, ++ VAVGR_W = 945, ++ VAVGR_WU = 946, ++ VAVG_B = 947, ++ VAVG_BU = 948, ++ VAVG_D = 949, ++ VAVG_DU = 950, ++ VAVG_H = 951, ++ VAVG_HU = 952, ++ VAVG_W = 953, ++ VAVG_WU = 954, ++ VBITCLRI_B = 955, ++ VBITCLRI_D = 956, ++ VBITCLRI_H = 957, ++ VBITCLRI_W = 958, ++ VBITCLR_B = 959, ++ VBITCLR_D = 960, ++ VBITCLR_H = 961, ++ VBITCLR_W = 962, ++ VBITREVI_B = 963, ++ VBITREVI_D = 964, ++ VBITREVI_H = 965, ++ VBITREVI_W = 966, ++ VBITREV_B = 967, ++ VBITREV_D = 968, ++ VBITREV_H = 969, ++ VBITREV_W = 970, ++ VBITSELI_B = 971, ++ VBITSELI_B_N = 972, ++ VBITSEL_V = 973, ++ VBITSETI_B = 974, ++ VBITSETI_D = 975, ++ VBITSETI_H = 976, ++ VBITSETI_W = 977, ++ VBITSET_B = 978, ++ VBITSET_D = 979, ++ VBITSET_H = 980, ++ VBITSET_W = 981, ++ VBSLL_V = 982, ++ VBSRL_V = 983, ++ VCLO_B = 984, ++ VCLO_D = 985, ++ VCLO_H = 986, ++ VCLO_W = 987, ++ VCLZ_B = 988, ++ VCLZ_D = 989, ++ VCLZ_H = 990, ++ VCLZ_W = 991, ++ VDIV_B = 992, ++ VDIV_BU = 993, ++ VDIV_D = 994, ++ VDIV_DU = 995, ++ VDIV_H = 996, ++ VDIV_HU = 997, ++ VDIV_W = 998, ++ VDIV_WU = 999, ++ VEXT2XV_DU_BU = 1000, ++ VEXT2XV_DU_HU = 1001, ++ VEXT2XV_DU_WU = 1002, ++ VEXT2XV_D_B = 1003, ++ VEXT2XV_D_H = 1004, ++ VEXT2XV_D_W = 1005, ++ VEXT2XV_HU_BU = 1006, ++ VEXT2XV_H_B = 1007, ++ VEXT2XV_WU_BU = 1008, ++ VEXT2XV_WU_HU = 1009, ++ VEXT2XV_W_B = 1010, ++ VEXT2XV_W_H = 1011, ++ VEXTH_DU_WU = 1012, ++ VEXTH_D_W = 1013, ++ VEXTH_HU_BU = 1014, ++ VEXTH_H_B = 1015, ++ VEXTH_QU_DU = 1016, ++ VEXTH_Q_D = 1017, ++ VEXTH_WU_HU = 1018, ++ VEXTH_W_H = 1019, ++ VEXTL_QU_DU = 1020, ++ VEXTL_Q_D = 1021, ++ VEXTRINS_B = 1022, ++ VEXTRINS_D = 1023, ++ VEXTRINS_H = 1024, ++ VEXTRINS_W = 1025, ++ VFADD_D = 1026, ++ VFADD_S = 1027, ++ VFCLASS_D = 1028, ++ VFCLASS_S = 1029, ++ VFCMP_CAF_D = 1030, ++ VFCMP_CAF_S = 1031, ++ VFCMP_CEQ_D = 1032, ++ VFCMP_CEQ_S = 1033, ++ VFCMP_CLE_D = 1034, ++ VFCMP_CLE_S = 1035, ++ VFCMP_CLT_D = 1036, ++ VFCMP_CLT_S = 1037, ++ VFCMP_CNE_D = 1038, ++ VFCMP_CNE_S = 1039, ++ VFCMP_COR_D = 1040, ++ VFCMP_COR_S = 1041, ++ VFCMP_CUEQ_D = 1042, ++ VFCMP_CUEQ_S = 1043, ++ VFCMP_CULE_D = 1044, ++ VFCMP_CULE_S = 1045, ++ VFCMP_CULT_D = 1046, ++ VFCMP_CULT_S = 1047, ++ VFCMP_CUNE_D = 1048, ++ VFCMP_CUNE_S = 1049, ++ VFCMP_CUN_D = 1050, ++ VFCMP_CUN_S = 1051, ++ VFCMP_SAF_D = 1052, ++ VFCMP_SAF_S = 1053, ++ VFCMP_SEQ_D = 1054, ++ VFCMP_SEQ_S = 1055, ++ VFCMP_SLE_D = 1056, ++ VFCMP_SLE_S = 1057, ++ VFCMP_SLT_D = 1058, ++ VFCMP_SLT_S = 1059, ++ VFCMP_SNE_D = 1060, ++ VFCMP_SNE_S = 1061, ++ VFCMP_SOR_D = 1062, ++ VFCMP_SOR_S = 1063, ++ VFCMP_SUEQ_D = 1064, ++ VFCMP_SUEQ_S = 1065, ++ VFCMP_SULE_D = 1066, ++ VFCMP_SULE_S = 1067, ++ VFCMP_SULT_D = 1068, ++ VFCMP_SULT_S = 1069, ++ VFCMP_SUNE_D = 1070, ++ VFCMP_SUNE_S = 1071, ++ VFCMP_SUN_D = 1072, ++ VFCMP_SUN_S = 1073, ++ VFCVTH_D_S = 1074, ++ VFCVTH_S_H = 1075, ++ VFCVTL_D_S = 1076, ++ VFCVTL_S_H = 1077, ++ VFCVT_H_S = 1078, ++ VFCVT_S_D = 1079, ++ VFDIV_D = 1080, ++ VFDIV_S = 1081, ++ VFFINTH_D_W = 1082, ++ VFFINTL_D_W = 1083, ++ VFFINT_D_L = 1084, ++ VFFINT_D_LU = 1085, ++ VFFINT_S_L = 1086, ++ VFFINT_S_W = 1087, ++ VFFINT_S_WU = 1088, ++ VFLOGB_D = 1089, ++ VFLOGB_S = 1090, ++ VFMADD_D = 1091, ++ VFMADD_S = 1092, ++ VFMAXA_D = 1093, ++ VFMAXA_S = 1094, ++ VFMAX_D = 1095, ++ VFMAX_S = 1096, ++ VFMINA_D = 1097, ++ VFMINA_S = 1098, ++ VFMIN_D = 1099, ++ VFMIN_S = 1100, ++ VFMSUB_D = 1101, ++ VFMSUB_S = 1102, ++ VFMUL_D = 1103, ++ VFMUL_S = 1104, ++ VFNMADD_D = 1105, ++ VFNMADD_S = 1106, ++ VFNMSUB_D = 1107, ++ VFNMSUB_S = 1108, ++ VFRECIP_D = 1109, ++ VFRECIP_S = 1110, ++ VFRINTRM_D = 1111, ++ VFRINTRM_S = 1112, ++ VFRINTRNE_D = 1113, ++ VFRINTRNE_S = 1114, ++ VFRINTRP_D = 1115, ++ VFRINTRP_S = 1116, ++ VFRINTRZ_D = 1117, ++ VFRINTRZ_S = 1118, ++ VFRINT_D = 1119, ++ VFRINT_S = 1120, ++ VFRSQRT_D = 1121, ++ VFRSQRT_S = 1122, ++ VFRSTPI_B = 1123, ++ VFRSTPI_H = 1124, ++ VFRSTP_B = 1125, ++ VFRSTP_H = 1126, ++ VFSQRT_D = 1127, ++ VFSQRT_S = 1128, ++ VFSUB_D = 1129, ++ VFSUB_S = 1130, ++ VFTINTH_L_S = 1131, ++ VFTINTL_L_S = 1132, ++ VFTINTRMH_L_S = 1133, ++ VFTINTRML_L_S = 1134, ++ VFTINTRM_L_D = 1135, ++ VFTINTRM_W_D = 1136, ++ VFTINTRM_W_S = 1137, ++ VFTINTRNEH_L_S = 1138, ++ VFTINTRNEL_L_S = 1139, ++ VFTINTRNE_L_D = 1140, ++ VFTINTRNE_W_D = 1141, ++ VFTINTRNE_W_S = 1142, ++ VFTINTRPH_L_S = 1143, ++ VFTINTRPL_L_S = 1144, ++ VFTINTRP_L_D = 1145, ++ VFTINTRP_W_D = 1146, ++ VFTINTRP_W_S = 1147, ++ VFTINTRZH_L_S = 1148, ++ VFTINTRZL_L_S = 1149, ++ VFTINTRZ_LU_D = 1150, ++ VFTINTRZ_L_D = 1151, ++ VFTINTRZ_WU_S = 1152, ++ VFTINTRZ_W_D = 1153, ++ VFTINTRZ_W_S = 1154, ++ VFTINT_LU_D = 1155, ++ VFTINT_L_D = 1156, ++ VFTINT_WU_S = 1157, ++ VFTINT_W_D = 1158, ++ VFTINT_W_S = 1159, ++ VHADDW_DU_WU = 1160, ++ VHADDW_D_W = 1161, ++ VHADDW_HU_BU = 1162, ++ VHADDW_H_B = 1163, ++ VHADDW_QU_DU = 1164, ++ VHADDW_Q_D = 1165, ++ VHADDW_WU_HU = 1166, ++ VHADDW_W_H = 1167, ++ VHSUBW_DU_WU = 1168, ++ VHSUBW_D_W = 1169, ++ VHSUBW_HU_BU = 1170, ++ VHSUBW_H_B = 1171, ++ VHSUBW_QU_DU = 1172, ++ VHSUBW_Q_D = 1173, ++ VHSUBW_WU_HU = 1174, ++ VHSUBW_W_H = 1175, ++ VILVH_B = 1176, ++ VILVH_D = 1177, ++ VILVH_H = 1178, ++ VILVH_W = 1179, ++ VILVL_B = 1180, ++ VILVL_D = 1181, ++ VILVL_H = 1182, ++ VILVL_W = 1183, ++ VINSGR2VR_B = 1184, ++ VINSGR2VR_D = 1185, ++ VINSGR2VR_H = 1186, ++ VINSGR2VR_W = 1187, ++ VLD = 1188, ++ VLDI = 1189, ++ VLDI_B = 1190, ++ VLDI_D = 1191, ++ VLDI_H = 1192, ++ VLDI_W = 1193, ++ VLDREPL_B = 1194, ++ VLDREPL_D = 1195, ++ VLDREPL_H = 1196, ++ VLDREPL_W = 1197, ++ VLDX = 1198, ++ VLD_D = 1199, ++ VLD_H = 1200, ++ VLD_W = 1201, ++ VMADDWEV_D_W = 1202, ++ VMADDWEV_D_WU = 1203, ++ VMADDWEV_D_WU_W = 1204, ++ VMADDWEV_H_B = 1205, ++ VMADDWEV_H_BU = 1206, ++ VMADDWEV_H_BU_B = 1207, ++ VMADDWEV_Q_D = 1208, ++ VMADDWEV_Q_DU = 1209, ++ VMADDWEV_Q_DU_D = 1210, ++ VMADDWEV_W_H = 1211, ++ VMADDWEV_W_HU = 1212, ++ VMADDWEV_W_HU_H = 1213, ++ VMADDWOD_D_W = 1214, ++ VMADDWOD_D_WU = 1215, ++ VMADDWOD_D_WU_W = 1216, ++ VMADDWOD_H_B = 1217, ++ VMADDWOD_H_BU = 1218, ++ VMADDWOD_H_BU_B = 1219, ++ VMADDWOD_Q_D = 1220, ++ VMADDWOD_Q_DU = 1221, ++ VMADDWOD_Q_DU_D = 1222, ++ VMADDWOD_W_H = 1223, ++ VMADDWOD_W_HU = 1224, ++ VMADDWOD_W_HU_H = 1225, ++ VMADD_B = 1226, ++ VMADD_D = 1227, ++ VMADD_H = 1228, ++ VMADD_W = 1229, ++ VMAXI_B = 1230, ++ VMAXI_BU = 1231, ++ VMAXI_BU_N = 1232, ++ VMAXI_B_N = 1233, ++ VMAXI_D = 1234, ++ VMAXI_DU = 1235, ++ VMAXI_DU_N = 1236, ++ VMAXI_D_N = 1237, ++ VMAXI_H = 1238, ++ VMAXI_HU = 1239, ++ VMAXI_HU_N = 1240, ++ VMAXI_H_N = 1241, ++ VMAXI_W = 1242, ++ VMAXI_WU = 1243, ++ VMAXI_WU_N = 1244, ++ VMAXI_W_N = 1245, ++ VMAX_B = 1246, ++ VMAX_BU = 1247, ++ VMAX_D = 1248, ++ VMAX_DU = 1249, ++ VMAX_H = 1250, ++ VMAX_HU = 1251, ++ VMAX_W = 1252, ++ VMAX_WU = 1253, ++ VMINI_B = 1254, ++ VMINI_BU = 1255, ++ VMINI_B_N = 1256, ++ VMINI_D = 1257, ++ VMINI_DU = 1258, ++ VMINI_D_N = 1259, ++ VMINI_H = 1260, ++ VMINI_HU = 1261, ++ VMINI_H_N = 1262, ++ VMINI_W = 1263, ++ VMINI_WU = 1264, ++ VMINI_W_N = 1265, ++ VMIN_B = 1266, ++ VMIN_BU = 1267, ++ VMIN_D = 1268, ++ VMIN_DU = 1269, ++ VMIN_H = 1270, ++ VMIN_HU = 1271, ++ VMIN_W = 1272, ++ VMIN_WU = 1273, ++ VMOD_B = 1274, ++ VMOD_BU = 1275, ++ VMOD_D = 1276, ++ VMOD_DU = 1277, ++ VMOD_H = 1278, ++ VMOD_HU = 1279, ++ VMOD_W = 1280, ++ VMOD_WU = 1281, ++ VMSKGEZ_B = 1282, ++ VMSKLTZ_B = 1283, ++ VMSKLTZ_D = 1284, ++ VMSKLTZ_H = 1285, ++ VMSKLTZ_W = 1286, ++ VMSKNZ_B = 1287, ++ VMSUB_B = 1288, ++ VMSUB_D = 1289, ++ VMSUB_H = 1290, ++ VMSUB_W = 1291, ++ VMUH_B = 1292, ++ VMUH_BU = 1293, ++ VMUH_D = 1294, ++ VMUH_DU = 1295, ++ VMUH_H = 1296, ++ VMUH_HU = 1297, ++ VMUH_W = 1298, ++ VMUH_WU = 1299, ++ VMULWEV_D_W = 1300, ++ VMULWEV_D_WU = 1301, ++ VMULWEV_D_WU_W = 1302, ++ VMULWEV_H_B = 1303, ++ VMULWEV_H_BU = 1304, ++ VMULWEV_H_BU_B = 1305, ++ VMULWEV_Q_D = 1306, ++ VMULWEV_Q_DU = 1307, ++ VMULWEV_Q_DU_D = 1308, ++ VMULWEV_W_H = 1309, ++ VMULWEV_W_HU = 1310, ++ VMULWEV_W_HU_H = 1311, ++ VMULWOD_D_W = 1312, ++ VMULWOD_D_WU = 1313, ++ VMULWOD_D_WU_W = 1314, ++ VMULWOD_H_B = 1315, ++ VMULWOD_H_BU = 1316, ++ VMULWOD_H_BU_B = 1317, ++ VMULWOD_Q_D = 1318, ++ VMULWOD_Q_DU = 1319, ++ VMULWOD_Q_DU_D = 1320, ++ VMULWOD_W_H = 1321, ++ VMULWOD_W_HU = 1322, ++ VMULWOD_W_HU_H = 1323, ++ VMUL_B = 1324, ++ VMUL_D = 1325, ++ VMUL_H = 1326, ++ VMUL_W = 1327, ++ VNEG_B = 1328, ++ VNEG_D = 1329, ++ VNEG_H = 1330, ++ VNEG_W = 1331, ++ VNORI_B = 1332, ++ VNOR_V = 1333, ++ VORI_B = 1334, ++ VORN_V = 1335, ++ VOR_V = 1336, ++ VPACKEV_B = 1337, ++ VPACKEV_D = 1338, ++ VPACKEV_H = 1339, ++ VPACKEV_W = 1340, ++ VPACKOD_B = 1341, ++ VPACKOD_D = 1342, ++ VPACKOD_H = 1343, ++ VPACKOD_W = 1344, ++ VPCNT_B = 1345, ++ VPCNT_D = 1346, ++ VPCNT_H = 1347, ++ VPCNT_W = 1348, ++ VPERMI_W = 1349, ++ VPICKEV_B = 1350, ++ VPICKEV_D = 1351, ++ VPICKEV_H = 1352, ++ VPICKEV_W = 1353, ++ VPICKOD_B = 1354, ++ VPICKOD_D = 1355, ++ VPICKOD_H = 1356, ++ VPICKOD_W = 1357, ++ VPICKVE2GR_B = 1358, ++ VPICKVE2GR_BU = 1359, ++ VPICKVE2GR_D = 1360, ++ VPICKVE2GR_DU = 1361, ++ VPICKVE2GR_H = 1362, ++ VPICKVE2GR_HU = 1363, ++ VPICKVE2GR_W = 1364, ++ VPICKVE2GR_WU = 1365, ++ VREPLGR2VR_B = 1366, ++ VREPLGR2VR_D = 1367, ++ VREPLGR2VR_H = 1368, ++ VREPLGR2VR_W = 1369, ++ VREPLVEI_B = 1370, ++ VREPLVEI_D = 1371, ++ VREPLVEI_H = 1372, ++ VREPLVEI_W = 1373, ++ VREPLVE_B = 1374, ++ VREPLVE_D = 1375, ++ VREPLVE_H = 1376, ++ VREPLVE_W = 1377, ++ VROTRI_B = 1378, ++ VROTRI_D = 1379, ++ VROTRI_H = 1380, ++ VROTRI_W = 1381, ++ VROTR_B = 1382, ++ VROTR_D = 1383, ++ VROTR_H = 1384, ++ VROTR_W = 1385, ++ VSADD_B = 1386, ++ VSADD_BU = 1387, ++ VSADD_D = 1388, ++ VSADD_DU = 1389, ++ VSADD_H = 1390, ++ VSADD_HU = 1391, ++ VSADD_W = 1392, ++ VSADD_WU = 1393, ++ VSAT_B = 1394, ++ VSAT_BU = 1395, ++ VSAT_D = 1396, ++ VSAT_DU = 1397, ++ VSAT_H = 1398, ++ VSAT_HU = 1399, ++ VSAT_W = 1400, ++ VSAT_WU = 1401, ++ VSEQI_B = 1402, ++ VSEQI_B_N = 1403, ++ VSEQI_D = 1404, ++ VSEQI_D_N = 1405, ++ VSEQI_H = 1406, ++ VSEQI_H_N = 1407, ++ VSEQI_W = 1408, ++ VSEQI_W_N = 1409, ++ VSEQ_B = 1410, ++ VSEQ_D = 1411, ++ VSEQ_H = 1412, ++ VSEQ_W = 1413, ++ VSETALLNEZ_B = 1414, ++ VSETALLNEZ_D = 1415, ++ VSETALLNEZ_H = 1416, ++ VSETALLNEZ_W = 1417, ++ VSETANYEQZ_B = 1418, ++ VSETANYEQZ_D = 1419, ++ VSETANYEQZ_H = 1420, ++ VSETANYEQZ_W = 1421, ++ VSETEQZ_V = 1422, ++ VSETNEZ_V = 1423, ++ VSHUF4I_B = 1424, ++ VSHUF4I_D = 1425, ++ VSHUF4I_H = 1426, ++ VSHUF4I_W = 1427, ++ VSHUF_B = 1428, ++ VSHUF_D = 1429, ++ VSHUF_H = 1430, ++ VSHUF_W = 1431, ++ VSIGNCOV_B = 1432, ++ VSIGNCOV_D = 1433, ++ VSIGNCOV_H = 1434, ++ VSIGNCOV_W = 1435, ++ VSLEI_B = 1436, ++ VSLEI_BU = 1437, ++ VSLEI_BU_N = 1438, ++ VSLEI_B_N = 1439, ++ VSLEI_D = 1440, ++ VSLEI_DU = 1441, ++ VSLEI_DU_N = 1442, ++ VSLEI_D_N = 1443, ++ VSLEI_H = 1444, ++ VSLEI_HU = 1445, ++ VSLEI_HU_N = 1446, ++ VSLEI_H_N = 1447, ++ VSLEI_W = 1448, ++ VSLEI_WU = 1449, ++ VSLEI_WU_N = 1450, ++ VSLEI_W_N = 1451, ++ VSLE_B = 1452, ++ VSLE_BU = 1453, ++ VSLE_D = 1454, ++ VSLE_DU = 1455, ++ VSLE_H = 1456, ++ VSLE_HU = 1457, ++ VSLE_W = 1458, ++ VSLE_WU = 1459, ++ VSLLI_B = 1460, ++ VSLLI_D = 1461, ++ VSLLI_H = 1462, ++ VSLLI_W = 1463, ++ VSLLWIL_DU_WU = 1464, ++ VSLLWIL_D_W = 1465, ++ VSLLWIL_HU_BU = 1466, ++ VSLLWIL_H_B = 1467, ++ VSLLWIL_WU_HU = 1468, ++ VSLLWIL_W_H = 1469, ++ VSLL_B = 1470, ++ VSLL_D = 1471, ++ VSLL_H = 1472, ++ VSLL_W = 1473, ++ VSLTI_B = 1474, ++ VSLTI_BU = 1475, ++ VSLTI_BU_N = 1476, ++ VSLTI_B_N = 1477, ++ VSLTI_D = 1478, ++ VSLTI_DU = 1479, ++ VSLTI_DU_N = 1480, ++ VSLTI_D_N = 1481, ++ VSLTI_H = 1482, ++ VSLTI_HU = 1483, ++ VSLTI_HU_N = 1484, ++ VSLTI_H_N = 1485, ++ VSLTI_W = 1486, ++ VSLTI_WU = 1487, ++ VSLTI_WU_N = 1488, ++ VSLTI_W_N = 1489, ++ VSLT_B = 1490, ++ VSLT_BU = 1491, ++ VSLT_D = 1492, ++ VSLT_DU = 1493, ++ VSLT_H = 1494, ++ VSLT_HU = 1495, ++ VSLT_W = 1496, ++ VSLT_WU = 1497, ++ VSRAI_B = 1498, ++ VSRAI_B_N = 1499, ++ VSRAI_D = 1500, ++ VSRAI_D_N = 1501, ++ VSRAI_H = 1502, ++ VSRAI_H_N = 1503, ++ VSRAI_W = 1504, ++ VSRAI_W_N = 1505, ++ VSRANI_B_H = 1506, ++ VSRANI_D_Q = 1507, ++ VSRANI_H_W = 1508, ++ VSRANI_W_D = 1509, ++ VSRAN_B_H = 1510, ++ VSRAN_H_W = 1511, ++ VSRAN_W_D = 1512, ++ VSRARI_B = 1513, ++ VSRARI_D = 1514, ++ VSRARI_H = 1515, ++ VSRARI_W = 1516, ++ VSRARNI_B_H = 1517, ++ VSRARNI_D_Q = 1518, ++ VSRARNI_H_W = 1519, ++ VSRARNI_W_D = 1520, ++ VSRARN_B_H = 1521, ++ VSRARN_H_W = 1522, ++ VSRARN_W_D = 1523, ++ VSRAR_B = 1524, ++ VSRAR_D = 1525, ++ VSRAR_H = 1526, ++ VSRAR_W = 1527, ++ VSRA_B = 1528, ++ VSRA_D = 1529, ++ VSRA_H = 1530, ++ VSRA_W = 1531, ++ VSRLI_B = 1532, ++ VSRLI_D = 1533, ++ VSRLI_H = 1534, ++ VSRLI_W = 1535, ++ VSRLNI_B_H = 1536, ++ VSRLNI_D_Q = 1537, ++ VSRLNI_H_W = 1538, ++ VSRLNI_W_D = 1539, ++ VSRLN_B_H = 1540, ++ VSRLN_H_W = 1541, ++ VSRLN_W_D = 1542, ++ VSRLRI_B = 1543, ++ VSRLRI_D = 1544, ++ VSRLRI_H = 1545, ++ VSRLRI_W = 1546, ++ VSRLRNI_B_H = 1547, ++ VSRLRNI_D_Q = 1548, ++ VSRLRNI_H_W = 1549, ++ VSRLRNI_W_D = 1550, ++ VSRLRN_B_H = 1551, ++ VSRLRN_H_W = 1552, ++ VSRLRN_W_D = 1553, ++ VSRLR_B = 1554, ++ VSRLR_D = 1555, ++ VSRLR_H = 1556, ++ VSRLR_W = 1557, ++ VSRL_B = 1558, ++ VSRL_D = 1559, ++ VSRL_H = 1560, ++ VSRL_W = 1561, ++ VSSRANI_BU_H = 1562, ++ VSSRANI_B_H = 1563, ++ VSSRANI_DU_Q = 1564, ++ VSSRANI_D_Q = 1565, ++ VSSRANI_HU_W = 1566, ++ VSSRANI_H_W = 1567, ++ VSSRANI_WU_D = 1568, ++ VSSRANI_W_D = 1569, ++ VSSRAN_BU_H = 1570, ++ VSSRAN_B_H = 1571, ++ VSSRAN_HU_W = 1572, ++ VSSRAN_H_W = 1573, ++ VSSRAN_WU_D = 1574, ++ VSSRAN_W_D = 1575, ++ VSSRARNI_BU_H = 1576, ++ VSSRARNI_B_H = 1577, ++ VSSRARNI_DU_Q = 1578, ++ VSSRARNI_D_Q = 1579, ++ VSSRARNI_HU_W = 1580, ++ VSSRARNI_H_W = 1581, ++ VSSRARNI_WU_D = 1582, ++ VSSRARNI_W_D = 1583, ++ VSSRARN_BU_H = 1584, ++ VSSRARN_B_H = 1585, ++ VSSRARN_HU_W = 1586, ++ VSSRARN_H_W = 1587, ++ VSSRARN_WU_D = 1588, ++ VSSRARN_W_D = 1589, ++ VSSRLNI_BU_H = 1590, ++ VSSRLNI_B_H = 1591, ++ VSSRLNI_DU_Q = 1592, ++ VSSRLNI_D_Q = 1593, ++ VSSRLNI_HU_W = 1594, ++ VSSRLNI_H_W = 1595, ++ VSSRLNI_WU_D = 1596, ++ VSSRLNI_W_D = 1597, ++ VSSRLN_BU_H = 1598, ++ VSSRLN_B_H = 1599, ++ VSSRLN_HU_W = 1600, ++ VSSRLN_H_W = 1601, ++ VSSRLN_WU_D = 1602, ++ VSSRLN_W_D = 1603, ++ VSSRLRNI_BU_H = 1604, ++ VSSRLRNI_B_H = 1605, ++ VSSRLRNI_DU_Q = 1606, ++ VSSRLRNI_D_Q = 1607, ++ VSSRLRNI_HU_W = 1608, ++ VSSRLRNI_H_W = 1609, ++ VSSRLRNI_WU_D = 1610, ++ VSSRLRNI_W_D = 1611, ++ VSSRLRN_BU_H = 1612, ++ VSSRLRN_B_H = 1613, ++ VSSRLRN_HU_W = 1614, ++ VSSRLRN_H_W = 1615, ++ VSSRLRN_WU_D = 1616, ++ VSSRLRN_W_D = 1617, ++ VSSUB_B = 1618, ++ VSSUB_BU = 1619, ++ VSSUB_D = 1620, ++ VSSUB_DU = 1621, ++ VSSUB_H = 1622, ++ VSSUB_HU = 1623, ++ VSSUB_W = 1624, ++ VSSUB_WU = 1625, ++ VST = 1626, ++ VSTELM_B = 1627, ++ VSTELM_D = 1628, ++ VSTELM_H = 1629, ++ VSTELM_W = 1630, ++ VSTX = 1631, ++ VST_D = 1632, ++ VST_H = 1633, ++ VST_W = 1634, ++ VSUBI_BU = 1635, ++ VSUBI_DU = 1636, ++ VSUBI_HU = 1637, ++ VSUBI_WU = 1638, ++ VSUBWEV_D_W = 1639, ++ VSUBWEV_D_WU = 1640, ++ VSUBWEV_H_B = 1641, ++ VSUBWEV_H_BU = 1642, ++ VSUBWEV_Q_D = 1643, ++ VSUBWEV_Q_DU = 1644, ++ VSUBWEV_W_H = 1645, ++ VSUBWEV_W_HU = 1646, ++ VSUBWOD_D_W = 1647, ++ VSUBWOD_D_WU = 1648, ++ VSUBWOD_H_B = 1649, ++ VSUBWOD_H_BU = 1650, ++ VSUBWOD_Q_D = 1651, ++ VSUBWOD_Q_DU = 1652, ++ VSUBWOD_W_H = 1653, ++ VSUBWOD_W_HU = 1654, ++ VSUB_B = 1655, ++ VSUB_D = 1656, ++ VSUB_H = 1657, ++ VSUB_Q = 1658, ++ VSUB_W = 1659, ++ VXORI_B = 1660, ++ VXORI_B_N = 1661, ++ VXOR_V = 1662, ++ XOR = 1663, ++ XOR32 = 1664, ++ XORI = 1665, ++ XORI32 = 1666, ++ XVABSD_B = 1667, ++ XVABSD_BU = 1668, ++ XVABSD_D = 1669, ++ XVABSD_DU = 1670, ++ XVABSD_H = 1671, ++ XVABSD_HU = 1672, ++ XVABSD_W = 1673, ++ XVABSD_WU = 1674, ++ XVADDA_B = 1675, ++ XVADDA_D = 1676, ++ XVADDA_H = 1677, ++ XVADDA_W = 1678, ++ XVADDI_BU = 1679, ++ XVADDI_BU_N = 1680, ++ XVADDI_DU = 1681, ++ XVADDI_DU_N = 1682, ++ XVADDI_HU = 1683, ++ XVADDI_HU_N = 1684, ++ XVADDI_WU = 1685, ++ XVADDI_WU_N = 1686, ++ XVADDWEV_D_W = 1687, ++ XVADDWEV_D_WU = 1688, ++ XVADDWEV_D_WU_W = 1689, ++ XVADDWEV_H_B = 1690, ++ XVADDWEV_H_BU = 1691, ++ XVADDWEV_H_BU_B = 1692, ++ XVADDWEV_Q_D = 1693, ++ XVADDWEV_Q_DU = 1694, ++ XVADDWEV_Q_DU_D = 1695, ++ XVADDWEV_W_H = 1696, ++ XVADDWEV_W_HU = 1697, ++ XVADDWEV_W_HU_H = 1698, ++ XVADDWOD_D_W = 1699, ++ XVADDWOD_D_WU = 1700, ++ XVADDWOD_D_WU_W = 1701, ++ XVADDWOD_H_B = 1702, ++ XVADDWOD_H_BU = 1703, ++ XVADDWOD_H_BU_B = 1704, ++ XVADDWOD_Q_D = 1705, ++ XVADDWOD_Q_DU = 1706, ++ XVADDWOD_Q_DU_D = 1707, ++ XVADDWOD_W_H = 1708, ++ XVADDWOD_W_HU = 1709, ++ XVADDWOD_W_HU_H = 1710, ++ XVADD_B = 1711, ++ XVADD_D = 1712, ++ XVADD_H = 1713, ++ XVADD_Q = 1714, ++ XVADD_W = 1715, ++ XVANDI_B = 1716, ++ XVANDI_B_N = 1717, ++ XVANDN_V = 1718, ++ XVAND_V = 1719, ++ XVAVGR_B = 1720, ++ XVAVGR_BU = 1721, ++ XVAVGR_D = 1722, ++ XVAVGR_DU = 1723, ++ XVAVGR_H = 1724, ++ XVAVGR_HU = 1725, ++ XVAVGR_W = 1726, ++ XVAVGR_WU = 1727, ++ XVAVG_B = 1728, ++ XVAVG_BU = 1729, ++ XVAVG_D = 1730, ++ XVAVG_DU = 1731, ++ XVAVG_H = 1732, ++ XVAVG_HU = 1733, ++ XVAVG_W = 1734, ++ XVAVG_WU = 1735, ++ XVBITCLRI_B = 1736, ++ XVBITCLRI_D = 1737, ++ XVBITCLRI_H = 1738, ++ XVBITCLRI_W = 1739, ++ XVBITCLR_B = 1740, ++ XVBITCLR_D = 1741, ++ XVBITCLR_H = 1742, ++ XVBITCLR_W = 1743, ++ XVBITREVI_B = 1744, ++ XVBITREVI_D = 1745, ++ XVBITREVI_H = 1746, ++ XVBITREVI_W = 1747, ++ XVBITREV_B = 1748, ++ XVBITREV_D = 1749, ++ XVBITREV_H = 1750, ++ XVBITREV_W = 1751, ++ XVBITSELI_B = 1752, ++ XVBITSELI_B_N = 1753, ++ XVBITSEL_V = 1754, ++ XVBITSETI_B = 1755, ++ XVBITSETI_D = 1756, ++ XVBITSETI_H = 1757, ++ XVBITSETI_W = 1758, ++ XVBITSET_B = 1759, ++ XVBITSET_D = 1760, ++ XVBITSET_H = 1761, ++ XVBITSET_W = 1762, ++ XVBSLL_V = 1763, ++ XVBSRL_V = 1764, ++ XVCLO_B = 1765, ++ XVCLO_D = 1766, ++ XVCLO_H = 1767, ++ XVCLO_W = 1768, ++ XVCLZ_B = 1769, ++ XVCLZ_D = 1770, ++ XVCLZ_H = 1771, ++ XVCLZ_W = 1772, ++ XVDIV_B = 1773, ++ XVDIV_BU = 1774, ++ XVDIV_D = 1775, ++ XVDIV_DU = 1776, ++ XVDIV_H = 1777, ++ XVDIV_HU = 1778, ++ XVDIV_W = 1779, ++ XVDIV_WU = 1780, ++ XVEXTH_DU_WU = 1781, ++ XVEXTH_D_W = 1782, ++ XVEXTH_HU_BU = 1783, ++ XVEXTH_H_B = 1784, ++ XVEXTH_QU_DU = 1785, ++ XVEXTH_Q_D = 1786, ++ XVEXTH_WU_HU = 1787, ++ XVEXTH_W_H = 1788, ++ XVEXTL_QU_DU = 1789, ++ XVEXTL_Q_D = 1790, ++ XVEXTRINS_B = 1791, ++ XVEXTRINS_D = 1792, ++ XVEXTRINS_H = 1793, ++ XVEXTRINS_W = 1794, ++ XVFADD_D = 1795, ++ XVFADD_S = 1796, ++ XVFCLASS_D = 1797, ++ XVFCLASS_S = 1798, ++ XVFCMP_CAF_D = 1799, ++ XVFCMP_CAF_S = 1800, ++ XVFCMP_CEQ_D = 1801, ++ XVFCMP_CEQ_S = 1802, ++ XVFCMP_CLE_D = 1803, ++ XVFCMP_CLE_S = 1804, ++ XVFCMP_CLT_D = 1805, ++ XVFCMP_CLT_S = 1806, ++ XVFCMP_CNE_D = 1807, ++ XVFCMP_CNE_S = 1808, ++ XVFCMP_COR_D = 1809, ++ XVFCMP_COR_S = 1810, ++ XVFCMP_CUEQ_D = 1811, ++ XVFCMP_CUEQ_S = 1812, ++ XVFCMP_CULE_D = 1813, ++ XVFCMP_CULE_S = 1814, ++ XVFCMP_CULT_D = 1815, ++ XVFCMP_CULT_S = 1816, ++ XVFCMP_CUNE_D = 1817, ++ XVFCMP_CUNE_S = 1818, ++ XVFCMP_CUN_D = 1819, ++ XVFCMP_CUN_S = 1820, ++ XVFCMP_SAF_D = 1821, ++ XVFCMP_SAF_S = 1822, ++ XVFCMP_SEQ_D = 1823, ++ XVFCMP_SEQ_S = 1824, ++ XVFCMP_SLE_D = 1825, ++ XVFCMP_SLE_S = 1826, ++ XVFCMP_SLT_D = 1827, ++ XVFCMP_SLT_S = 1828, ++ XVFCMP_SNE_D = 1829, ++ XVFCMP_SNE_S = 1830, ++ XVFCMP_SOR_D = 1831, ++ XVFCMP_SOR_S = 1832, ++ XVFCMP_SUEQ_D = 1833, ++ XVFCMP_SUEQ_S = 1834, ++ XVFCMP_SULE_D = 1835, ++ XVFCMP_SULE_S = 1836, ++ XVFCMP_SULT_D = 1837, ++ XVFCMP_SULT_S = 1838, ++ XVFCMP_SUNE_D = 1839, ++ XVFCMP_SUNE_S = 1840, ++ XVFCMP_SUN_D = 1841, ++ XVFCMP_SUN_S = 1842, ++ XVFCVTH_D_S = 1843, ++ XVFCVTH_S_H = 1844, ++ XVFCVTL_D_S = 1845, ++ XVFCVTL_S_H = 1846, ++ XVFCVT_H_S = 1847, ++ XVFCVT_S_D = 1848, ++ XVFDIV_D = 1849, ++ XVFDIV_S = 1850, ++ XVFFINTH_D_W = 1851, ++ XVFFINTL_D_W = 1852, ++ XVFFINT_D_L = 1853, ++ XVFFINT_D_LU = 1854, ++ XVFFINT_S_L = 1855, ++ XVFFINT_S_W = 1856, ++ XVFFINT_S_WU = 1857, ++ XVFLOGB_D = 1858, ++ XVFLOGB_S = 1859, ++ XVFMADD_D = 1860, ++ XVFMADD_S = 1861, ++ XVFMAXA_D = 1862, ++ XVFMAXA_S = 1863, ++ XVFMAX_D = 1864, ++ XVFMAX_S = 1865, ++ XVFMINA_D = 1866, ++ XVFMINA_S = 1867, ++ XVFMIN_D = 1868, ++ XVFMIN_S = 1869, ++ XVFMSUB_D = 1870, ++ XVFMSUB_S = 1871, ++ XVFMUL_D = 1872, ++ XVFMUL_S = 1873, ++ XVFNMADD_D = 1874, ++ XVFNMADD_S = 1875, ++ XVFNMSUB_D = 1876, ++ XVFNMSUB_S = 1877, ++ XVFRECIP_D = 1878, ++ XVFRECIP_S = 1879, ++ XVFRINTRM_D = 1880, ++ XVFRINTRM_S = 1881, ++ XVFRINTRNE_D = 1882, ++ XVFRINTRNE_S = 1883, ++ XVFRINTRP_D = 1884, ++ XVFRINTRP_S = 1885, ++ XVFRINTRZ_D = 1886, ++ XVFRINTRZ_S = 1887, ++ XVFRINT_D = 1888, ++ XVFRINT_S = 1889, ++ XVFRSQRT_D = 1890, ++ XVFRSQRT_S = 1891, ++ XVFRSTPI_B = 1892, ++ XVFRSTPI_H = 1893, ++ XVFRSTP_B = 1894, ++ XVFRSTP_H = 1895, ++ XVFSQRT_D = 1896, ++ XVFSQRT_S = 1897, ++ XVFSUB_D = 1898, ++ XVFSUB_S = 1899, ++ XVFTINTH_L_S = 1900, ++ XVFTINTL_L_S = 1901, ++ XVFTINTRMH_L_S = 1902, ++ XVFTINTRML_L_S = 1903, ++ XVFTINTRM_L_D = 1904, ++ XVFTINTRM_W_D = 1905, ++ XVFTINTRM_W_S = 1906, ++ XVFTINTRNEH_L_S = 1907, ++ XVFTINTRNEL_L_S = 1908, ++ XVFTINTRNE_L_D = 1909, ++ XVFTINTRNE_W_D = 1910, ++ XVFTINTRNE_W_S = 1911, ++ XVFTINTRPH_L_S = 1912, ++ XVFTINTRPL_L_S = 1913, ++ XVFTINTRP_L_D = 1914, ++ XVFTINTRP_W_D = 1915, ++ XVFTINTRP_W_S = 1916, ++ XVFTINTRZH_L_S = 1917, ++ XVFTINTRZL_L_S = 1918, ++ XVFTINTRZ_LU_D = 1919, ++ XVFTINTRZ_L_D = 1920, ++ XVFTINTRZ_WU_S = 1921, ++ XVFTINTRZ_W_D = 1922, ++ XVFTINTRZ_W_S = 1923, ++ XVFTINT_LU_D = 1924, ++ XVFTINT_L_D = 1925, ++ XVFTINT_WU_S = 1926, ++ XVFTINT_W_D = 1927, ++ XVFTINT_W_S = 1928, ++ XVHADDW_DU_WU = 1929, ++ XVHADDW_D_W = 1930, ++ XVHADDW_HU_BU = 1931, ++ XVHADDW_H_B = 1932, ++ XVHADDW_QU_DU = 1933, ++ XVHADDW_Q_D = 1934, ++ XVHADDW_WU_HU = 1935, ++ XVHADDW_W_H = 1936, ++ XVHSELI_D = 1937, ++ XVHSUBW_DU_WU = 1938, ++ XVHSUBW_D_W = 1939, ++ XVHSUBW_HU_BU = 1940, ++ XVHSUBW_H_B = 1941, ++ XVHSUBW_QU_DU = 1942, ++ XVHSUBW_Q_D = 1943, ++ XVHSUBW_WU_HU = 1944, ++ XVHSUBW_W_H = 1945, ++ XVILVH_B = 1946, ++ XVILVH_D = 1947, ++ XVILVH_H = 1948, ++ XVILVH_W = 1949, ++ XVILVL_B = 1950, ++ XVILVL_D = 1951, ++ XVILVL_H = 1952, ++ XVILVL_W = 1953, ++ XVINSGR2VR_D = 1954, ++ XVINSGR2VR_W = 1955, ++ XVINSVE0_D = 1956, ++ XVINSVE0_W = 1957, ++ XVLD = 1958, ++ XVLDI = 1959, ++ XVLDI_B = 1960, ++ XVLDI_D = 1961, ++ XVLDI_H = 1962, ++ XVLDI_W = 1963, ++ XVLDREPL_B = 1964, ++ XVLDREPL_D = 1965, ++ XVLDREPL_H = 1966, ++ XVLDREPL_W = 1967, ++ XVLDX = 1968, ++ XVLD_D = 1969, ++ XVLD_H = 1970, ++ XVLD_W = 1971, ++ XVMADDWEV_D_W = 1972, ++ XVMADDWEV_D_WU = 1973, ++ XVMADDWEV_D_WU_W = 1974, ++ XVMADDWEV_H_B = 1975, ++ XVMADDWEV_H_BU = 1976, ++ XVMADDWEV_H_BU_B = 1977, ++ XVMADDWEV_Q_D = 1978, ++ XVMADDWEV_Q_DU = 1979, ++ XVMADDWEV_Q_DU_D = 1980, ++ XVMADDWEV_W_H = 1981, ++ XVMADDWEV_W_HU = 1982, ++ XVMADDWEV_W_HU_H = 1983, ++ XVMADDWOD_D_W = 1984, ++ XVMADDWOD_D_WU = 1985, ++ XVMADDWOD_D_WU_W = 1986, ++ XVMADDWOD_H_B = 1987, ++ XVMADDWOD_H_BU = 1988, ++ XVMADDWOD_H_BU_B = 1989, ++ XVMADDWOD_Q_D = 1990, ++ XVMADDWOD_Q_DU = 1991, ++ XVMADDWOD_Q_DU_D = 1992, ++ XVMADDWOD_W_H = 1993, ++ XVMADDWOD_W_HU = 1994, ++ XVMADDWOD_W_HU_H = 1995, ++ XVMADD_B = 1996, ++ XVMADD_D = 1997, ++ XVMADD_H = 1998, ++ XVMADD_W = 1999, ++ XVMAXI_B = 2000, ++ XVMAXI_BU = 2001, ++ XVMAXI_BU_N = 2002, ++ XVMAXI_B_N = 2003, ++ XVMAXI_D = 2004, ++ XVMAXI_DU = 2005, ++ XVMAXI_DU_N = 2006, ++ XVMAXI_D_N = 2007, ++ XVMAXI_H = 2008, ++ XVMAXI_HU = 2009, ++ XVMAXI_HU_N = 2010, ++ XVMAXI_H_N = 2011, ++ XVMAXI_W = 2012, ++ XVMAXI_WU = 2013, ++ XVMAXI_WU_N = 2014, ++ XVMAXI_W_N = 2015, ++ XVMAX_B = 2016, ++ XVMAX_BU = 2017, ++ XVMAX_D = 2018, ++ XVMAX_DU = 2019, ++ XVMAX_H = 2020, ++ XVMAX_HU = 2021, ++ XVMAX_W = 2022, ++ XVMAX_WU = 2023, ++ XVMINI_B = 2024, ++ XVMINI_BU = 2025, ++ XVMINI_BU_N = 2026, ++ XVMINI_B_N = 2027, ++ XVMINI_D = 2028, ++ XVMINI_DU = 2029, ++ XVMINI_DU_N = 2030, ++ XVMINI_D_N = 2031, ++ XVMINI_H = 2032, ++ XVMINI_HU = 2033, ++ XVMINI_HU_N = 2034, ++ XVMINI_H_N = 2035, ++ XVMINI_W = 2036, ++ XVMINI_WU = 2037, ++ XVMINI_WU_N = 2038, ++ XVMINI_W_N = 2039, ++ XVMIN_B = 2040, ++ XVMIN_BU = 2041, ++ XVMIN_D = 2042, ++ XVMIN_DU = 2043, ++ XVMIN_H = 2044, ++ XVMIN_HU = 2045, ++ XVMIN_W = 2046, ++ XVMIN_WU = 2047, ++ XVMOD_B = 2048, ++ XVMOD_BU = 2049, ++ XVMOD_D = 2050, ++ XVMOD_DU = 2051, ++ XVMOD_H = 2052, ++ XVMOD_HU = 2053, ++ XVMOD_W = 2054, ++ XVMOD_WU = 2055, ++ XVMSKGEZ_B = 2056, ++ XVMSKLTZ_B = 2057, ++ XVMSKLTZ_D = 2058, ++ XVMSKLTZ_H = 2059, ++ XVMSKLTZ_W = 2060, ++ XVMSKNZ_B = 2061, ++ XVMSUB_B = 2062, ++ XVMSUB_D = 2063, ++ XVMSUB_H = 2064, ++ XVMSUB_W = 2065, ++ XVMUH_B = 2066, ++ XVMUH_BU = 2067, ++ XVMUH_D = 2068, ++ XVMUH_DU = 2069, ++ XVMUH_H = 2070, ++ XVMUH_HU = 2071, ++ XVMUH_W = 2072, ++ XVMUH_WU = 2073, ++ XVMULWEV_D_W = 2074, ++ XVMULWEV_D_WU = 2075, ++ XVMULWEV_D_WU_W = 2076, ++ XVMULWEV_H_B = 2077, ++ XVMULWEV_H_BU = 2078, ++ XVMULWEV_H_BU_B = 2079, ++ XVMULWEV_Q_D = 2080, ++ XVMULWEV_Q_DU = 2081, ++ XVMULWEV_Q_DU_D = 2082, ++ XVMULWEV_W_H = 2083, ++ XVMULWEV_W_HU = 2084, ++ XVMULWEV_W_HU_H = 2085, ++ XVMULWOD_D_W = 2086, ++ XVMULWOD_D_WU = 2087, ++ XVMULWOD_D_WU_W = 2088, ++ XVMULWOD_H_B = 2089, ++ XVMULWOD_H_BU = 2090, ++ XVMULWOD_H_BU_B = 2091, ++ XVMULWOD_Q_D = 2092, ++ XVMULWOD_Q_DU = 2093, ++ XVMULWOD_Q_DU_D = 2094, ++ XVMULWOD_W_H = 2095, ++ XVMULWOD_W_HU = 2096, ++ XVMULWOD_W_HU_H = 2097, ++ XVMUL_B = 2098, ++ XVMUL_D = 2099, ++ XVMUL_H = 2100, ++ XVMUL_W = 2101, ++ XVNEG_B = 2102, ++ XVNEG_D = 2103, ++ XVNEG_H = 2104, ++ XVNEG_W = 2105, ++ XVNORI_B = 2106, ++ XVNOR_V = 2107, ++ XVORI_B = 2108, ++ XVORN_V = 2109, ++ XVOR_V = 2110, ++ XVPACKEV_B = 2111, ++ XVPACKEV_D = 2112, ++ XVPACKEV_H = 2113, ++ XVPACKEV_W = 2114, ++ XVPACKOD_B = 2115, ++ XVPACKOD_D = 2116, ++ XVPACKOD_H = 2117, ++ XVPACKOD_W = 2118, ++ XVPCNT_B = 2119, ++ XVPCNT_D = 2120, ++ XVPCNT_H = 2121, ++ XVPCNT_W = 2122, ++ XVPERMI_D = 2123, ++ XVPERMI_Q = 2124, ++ XVPERMI_QD = 2125, ++ XVPERMI_QH = 2126, ++ XVPERMI_QW = 2127, ++ XVPERMI_W = 2128, ++ XVPERM_W = 2129, ++ XVPICKEV_B = 2130, ++ XVPICKEV_D = 2131, ++ XVPICKEV_H = 2132, ++ XVPICKEV_W = 2133, ++ XVPICKOD_B = 2134, ++ XVPICKOD_D = 2135, ++ XVPICKOD_H = 2136, ++ XVPICKOD_W = 2137, ++ XVPICKVE2GR_D = 2138, ++ XVPICKVE2GR_DU = 2139, ++ XVPICKVE2GR_W = 2140, ++ XVPICKVE2GR_WU = 2141, ++ XVPICKVE_D = 2142, ++ XVPICKVE_W = 2143, ++ XVREPL128VEI_B = 2144, ++ XVREPL128VEI_D = 2145, ++ XVREPL128VEI_H = 2146, ++ XVREPL128VEI_W = 2147, ++ XVREPLGR2VR_B = 2148, ++ XVREPLGR2VR_D = 2149, ++ XVREPLGR2VR_H = 2150, ++ XVREPLGR2VR_W = 2151, ++ XVREPLVE0_B = 2152, ++ XVREPLVE0_D = 2153, ++ XVREPLVE0_H = 2154, ++ XVREPLVE0_Q = 2155, ++ XVREPLVE0_W = 2156, ++ XVREPLVE_B = 2157, ++ XVREPLVE_D = 2158, ++ XVREPLVE_H = 2159, ++ XVREPLVE_W = 2160, ++ XVREPLVE_W_N = 2161, ++ XVROTRI_B = 2162, ++ XVROTRI_D = 2163, ++ XVROTRI_H = 2164, ++ XVROTRI_W = 2165, ++ XVROTR_B = 2166, ++ XVROTR_D = 2167, ++ XVROTR_H = 2168, ++ XVROTR_W = 2169, ++ XVSADD_B = 2170, ++ XVSADD_BU = 2171, ++ XVSADD_D = 2172, ++ XVSADD_DU = 2173, ++ XVSADD_H = 2174, ++ XVSADD_HU = 2175, ++ XVSADD_W = 2176, ++ XVSADD_WU = 2177, ++ XVSAT_B = 2178, ++ XVSAT_BU = 2179, ++ XVSAT_D = 2180, ++ XVSAT_DU = 2181, ++ XVSAT_H = 2182, ++ XVSAT_HU = 2183, ++ XVSAT_W = 2184, ++ XVSAT_WU = 2185, ++ XVSEQI_B = 2186, ++ XVSEQI_B_N = 2187, ++ XVSEQI_D = 2188, ++ XVSEQI_D_N = 2189, ++ XVSEQI_H = 2190, ++ XVSEQI_H_N = 2191, ++ XVSEQI_W = 2192, ++ XVSEQI_W_N = 2193, ++ XVSEQ_B = 2194, ++ XVSEQ_D = 2195, ++ XVSEQ_H = 2196, ++ XVSEQ_W = 2197, ++ XVSETALLNEZ_B = 2198, ++ XVSETALLNEZ_D = 2199, ++ XVSETALLNEZ_H = 2200, ++ XVSETALLNEZ_W = 2201, ++ XVSETANYEQZ_B = 2202, ++ XVSETANYEQZ_D = 2203, ++ XVSETANYEQZ_H = 2204, ++ XVSETANYEQZ_W = 2205, ++ XVSETEQZ_V = 2206, ++ XVSETNEZ_V = 2207, ++ XVSHUF4I_B = 2208, ++ XVSHUF4I_D = 2209, ++ XVSHUF4I_H = 2210, ++ XVSHUF4I_W = 2211, ++ XVSHUF_B = 2212, ++ XVSHUF_D = 2213, ++ XVSHUF_H = 2214, ++ XVSHUF_W = 2215, ++ XVSIGNCOV_B = 2216, ++ XVSIGNCOV_D = 2217, ++ XVSIGNCOV_H = 2218, ++ XVSIGNCOV_W = 2219, ++ XVSLEI_B = 2220, ++ XVSLEI_BU = 2221, ++ XVSLEI_BU_N = 2222, ++ XVSLEI_B_N = 2223, ++ XVSLEI_D = 2224, ++ XVSLEI_DU = 2225, ++ XVSLEI_DU_N = 2226, ++ XVSLEI_D_N = 2227, ++ XVSLEI_H = 2228, ++ XVSLEI_HU = 2229, ++ XVSLEI_HU_N = 2230, ++ XVSLEI_H_N = 2231, ++ XVSLEI_W = 2232, ++ XVSLEI_WU = 2233, ++ XVSLEI_WU_N = 2234, ++ XVSLEI_W_N = 2235, ++ XVSLE_B = 2236, ++ XVSLE_BU = 2237, ++ XVSLE_D = 2238, ++ XVSLE_DU = 2239, ++ XVSLE_H = 2240, ++ XVSLE_HU = 2241, ++ XVSLE_W = 2242, ++ XVSLE_WU = 2243, ++ XVSLLI_B = 2244, ++ XVSLLI_B_N = 2245, ++ XVSLLI_D = 2246, ++ XVSLLI_D_N = 2247, ++ XVSLLI_H = 2248, ++ XVSLLI_H_N = 2249, ++ XVSLLI_W = 2250, ++ XVSLLI_W_N = 2251, ++ XVSLLWIL_DU_WU = 2252, ++ XVSLLWIL_D_W = 2253, ++ XVSLLWIL_HU_BU = 2254, ++ XVSLLWIL_H_B = 2255, ++ XVSLLWIL_WU_HU = 2256, ++ XVSLLWIL_W_H = 2257, ++ XVSLL_B = 2258, ++ XVSLL_D = 2259, ++ XVSLL_H = 2260, ++ XVSLL_W = 2261, ++ XVSLTI_B = 2262, ++ XVSLTI_BU = 2263, ++ XVSLTI_BU_N = 2264, ++ XVSLTI_B_N = 2265, ++ XVSLTI_D = 2266, ++ XVSLTI_DU = 2267, ++ XVSLTI_DU_N = 2268, ++ XVSLTI_D_N = 2269, ++ XVSLTI_H = 2270, ++ XVSLTI_HU = 2271, ++ XVSLTI_HU_N = 2272, ++ XVSLTI_H_N = 2273, ++ XVSLTI_W = 2274, ++ XVSLTI_WU = 2275, ++ XVSLTI_WU_N = 2276, ++ XVSLTI_W_N = 2277, ++ XVSLT_B = 2278, ++ XVSLT_BU = 2279, ++ XVSLT_D = 2280, ++ XVSLT_DU = 2281, ++ XVSLT_H = 2282, ++ XVSLT_HU = 2283, ++ XVSLT_W = 2284, ++ XVSLT_WU = 2285, ++ XVSRAI_B = 2286, ++ XVSRAI_B_N = 2287, ++ XVSRAI_D = 2288, ++ XVSRAI_D_N = 2289, ++ XVSRAI_H = 2290, ++ XVSRAI_H_N = 2291, ++ XVSRAI_W = 2292, ++ XVSRAI_W_N = 2293, ++ XVSRANI_B_H = 2294, ++ XVSRANI_D_Q = 2295, ++ XVSRANI_H_W = 2296, ++ XVSRANI_W_D = 2297, ++ XVSRAN_B_H = 2298, ++ XVSRAN_H_W = 2299, ++ XVSRAN_W_D = 2300, ++ XVSRARI_B = 2301, ++ XVSRARI_D = 2302, ++ XVSRARI_H = 2303, ++ XVSRARI_W = 2304, ++ XVSRARNI_B_H = 2305, ++ XVSRARNI_D_Q = 2306, ++ XVSRARNI_H_W = 2307, ++ XVSRARNI_W_D = 2308, ++ XVSRARN_B_H = 2309, ++ XVSRARN_H_W = 2310, ++ XVSRARN_W_D = 2311, ++ XVSRAR_B = 2312, ++ XVSRAR_D = 2313, ++ XVSRAR_H = 2314, ++ XVSRAR_W = 2315, ++ XVSRA_B = 2316, ++ XVSRA_D = 2317, ++ XVSRA_H = 2318, ++ XVSRA_W = 2319, ++ XVSRLI_B = 2320, ++ XVSRLI_B_N = 2321, ++ XVSRLI_D = 2322, ++ XVSRLI_D_N = 2323, ++ XVSRLI_H = 2324, ++ XVSRLI_H_N = 2325, ++ XVSRLI_W = 2326, ++ XVSRLI_W_N = 2327, ++ XVSRLNI_B_H = 2328, ++ XVSRLNI_D_Q = 2329, ++ XVSRLNI_H_W = 2330, ++ XVSRLNI_W_D = 2331, ++ XVSRLN_B_H = 2332, ++ XVSRLN_H_W = 2333, ++ XVSRLN_W_D = 2334, ++ XVSRLRI_B = 2335, ++ XVSRLRI_D = 2336, ++ XVSRLRI_H = 2337, ++ XVSRLRI_W = 2338, ++ XVSRLRNI_B_H = 2339, ++ XVSRLRNI_D_Q = 2340, ++ XVSRLRNI_H_W = 2341, ++ XVSRLRNI_W_D = 2342, ++ XVSRLRN_B_H = 2343, ++ XVSRLRN_H_W = 2344, ++ XVSRLRN_W_D = 2345, ++ XVSRLR_B = 2346, ++ XVSRLR_D = 2347, ++ XVSRLR_H = 2348, ++ XVSRLR_W = 2349, ++ XVSRL_B = 2350, ++ XVSRL_D = 2351, ++ XVSRL_H = 2352, ++ XVSRL_W = 2353, ++ XVSSRANI_BU_H = 2354, ++ XVSSRANI_B_H = 2355, ++ XVSSRANI_DU_Q = 2356, ++ XVSSRANI_D_Q = 2357, ++ XVSSRANI_HU_W = 2358, ++ XVSSRANI_H_W = 2359, ++ XVSSRANI_WU_D = 2360, ++ XVSSRANI_W_D = 2361, ++ XVSSRAN_BU_H = 2362, ++ XVSSRAN_B_H = 2363, ++ XVSSRAN_HU_W = 2364, ++ XVSSRAN_H_W = 2365, ++ XVSSRAN_WU_D = 2366, ++ XVSSRAN_W_D = 2367, ++ XVSSRARNI_BU_H = 2368, ++ XVSSRARNI_B_H = 2369, ++ XVSSRARNI_DU_Q = 2370, ++ XVSSRARNI_D_Q = 2371, ++ XVSSRARNI_HU_W = 2372, ++ XVSSRARNI_H_W = 2373, ++ XVSSRARNI_WU_D = 2374, ++ XVSSRARNI_W_D = 2375, ++ XVSSRARN_BU_H = 2376, ++ XVSSRARN_B_H = 2377, ++ XVSSRARN_HU_W = 2378, ++ XVSSRARN_H_W = 2379, ++ XVSSRARN_WU_D = 2380, ++ XVSSRARN_W_D = 2381, ++ XVSSRLNI_BU_H = 2382, ++ XVSSRLNI_B_H = 2383, ++ XVSSRLNI_DU_Q = 2384, ++ XVSSRLNI_D_Q = 2385, ++ XVSSRLNI_HU_W = 2386, ++ XVSSRLNI_H_W = 2387, ++ XVSSRLNI_WU_D = 2388, ++ XVSSRLNI_W_D = 2389, ++ XVSSRLN_BU_H = 2390, ++ XVSSRLN_B_H = 2391, ++ XVSSRLN_HU_W = 2392, ++ XVSSRLN_H_W = 2393, ++ XVSSRLN_WU_D = 2394, ++ XVSSRLN_W_D = 2395, ++ XVSSRLRNI_BU_H = 2396, ++ XVSSRLRNI_B_H = 2397, ++ XVSSRLRNI_DU_Q = 2398, ++ XVSSRLRNI_D_Q = 2399, ++ XVSSRLRNI_HU_W = 2400, ++ XVSSRLRNI_H_W = 2401, ++ XVSSRLRNI_WU_D = 2402, ++ XVSSRLRNI_W_D = 2403, ++ XVSSRLRN_BU_H = 2404, ++ XVSSRLRN_B_H = 2405, ++ XVSSRLRN_HU_W = 2406, ++ XVSSRLRN_H_W = 2407, ++ XVSSRLRN_WU_D = 2408, ++ XVSSRLRN_W_D = 2409, ++ XVSSUB_B = 2410, ++ XVSSUB_BU = 2411, ++ XVSSUB_D = 2412, ++ XVSSUB_DU = 2413, ++ XVSSUB_H = 2414, ++ XVSSUB_HU = 2415, ++ XVSSUB_W = 2416, ++ XVSSUB_WU = 2417, ++ XVST = 2418, ++ XVSTELM_B = 2419, ++ XVSTELM_D = 2420, ++ XVSTELM_H = 2421, ++ XVSTELM_W = 2422, ++ XVSTX = 2423, ++ XVST_D = 2424, ++ XVST_H = 2425, ++ XVST_W = 2426, ++ XVSUBI_BU = 2427, ++ XVSUBI_BU_N = 2428, ++ XVSUBI_DU = 2429, ++ XVSUBI_DU_N = 2430, ++ XVSUBI_HU = 2431, ++ XVSUBI_HU_N = 2432, ++ XVSUBI_WU = 2433, ++ XVSUBI_WU_N = 2434, ++ XVSUBWEV_D_W = 2435, ++ XVSUBWEV_D_WU = 2436, ++ XVSUBWEV_H_B = 2437, ++ XVSUBWEV_H_BU = 2438, ++ XVSUBWEV_Q_D = 2439, ++ XVSUBWEV_Q_DU = 2440, ++ XVSUBWEV_W_H = 2441, ++ XVSUBWEV_W_HU = 2442, ++ XVSUBWOD_D_W = 2443, ++ XVSUBWOD_D_WU = 2444, ++ XVSUBWOD_H_B = 2445, ++ XVSUBWOD_H_BU = 2446, ++ XVSUBWOD_Q_D = 2447, ++ XVSUBWOD_Q_DU = 2448, ++ XVSUBWOD_W_H = 2449, ++ XVSUBWOD_W_HU = 2450, ++ XVSUB_B = 2451, ++ XVSUB_D = 2452, ++ XVSUB_H = 2453, ++ XVSUB_Q = 2454, ++ XVSUB_W = 2455, ++ XVXORI_B = 2456, ++ XVXORI_B_N = 2457, ++ XVXOR_V = 2458, ++ ZEXT64_32 = 2459, ++ INSTRUCTION_LIST_END = 2460 ++ }; ++ ++} // end namespace LoongArch ++} // end namespace llvm ++#endif // GET_INSTRINFO_ENUM ++ ++#ifdef GET_INSTRINFO_SCHED_ENUM ++#undef GET_INSTRINFO_SCHED_ENUM ++namespace llvm { ++ ++namespace LoongArch { ++namespace Sched { ++ enum { ++ NoInstrModel = 0, ++ SCHED_LIST_END = 1 ++ }; ++} // end namespace Sched ++} // end namespace LoongArch ++} // end namespace llvm ++#endif // GET_INSTRINFO_SCHED_ENUM ++ ++#ifdef GET_INSTRINFO_MC_DESC ++#undef GET_INSTRINFO_MC_DESC ++namespace llvm { ++ ++static const MCPhysReg ImplicitList1[] = { LoongArch::SP, 0 }; ++static const MCPhysReg ImplicitList2[] = { LoongArch::RA, 0 }; ++static const MCPhysReg ImplicitList3[] = { LoongArch::A0, LoongArch::A1, 0 }; ++static const MCPhysReg ImplicitList4[] = { LoongArch::FCC0, LoongArch::FCC1, LoongArch::FCC2, LoongArch::FCC3, LoongArch::FCC4, LoongArch::FCC5, LoongArch::FCC6, LoongArch::FCC7, 0 }; ++static const MCPhysReg ImplicitList5[] = { LoongArch::FCC0, LoongArch::FCC1, LoongArch::FCC2, LoongArch::FCC3, LoongArch::FCC4, LoongArch::FCC5, LoongArch::FCC6, 0 }; ++ ++static const MCOperandInfo OperandInfo2[] = { { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, }; ++static const MCOperandInfo OperandInfo3[] = { { -1, 0, MCOI::OPERAND_IMMEDIATE, 0 }, }; ++static const MCOperandInfo OperandInfo4[] = { { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, { -1, 0, MCOI::OPERAND_IMMEDIATE, 0 }, }; ++static const MCOperandInfo OperandInfo5[] = { { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, ((0 << 16) | (1 << MCOI::TIED_TO)) }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, { -1, 0, MCOI::OPERAND_IMMEDIATE, 0 }, }; ++static const MCOperandInfo OperandInfo6[] = { { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, { -1, 0, MCOI::OPERAND_IMMEDIATE, 0 }, }; ++static const MCOperandInfo OperandInfo7[] = { { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, }; ++static const MCOperandInfo OperandInfo8[] = { { -1, 0, MCOI::OPERAND_IMMEDIATE, 0 }, { -1, 0, MCOI::OPERAND_IMMEDIATE, 0 }, }; ++static const MCOperandInfo OperandInfo9[] = { { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, { -1, 0, MCOI::OPERAND_IMMEDIATE, 0 }, { -1, 0, MCOI::OPERAND_IMMEDIATE, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, { -1, 0, MCOI::OPERAND_IMMEDIATE, 0 }, { -1, 0, MCOI::OPERAND_IMMEDIATE, 0 }, }; ++static const MCOperandInfo OperandInfo10[] = { { 0, 0|(1<InitMCInstrInfo(LoongArchInsts, LoongArchInstrNameIndices, LoongArchInstrNameData, 2460); ++} ++ ++} // end namespace llvm ++#endif // GET_INSTRINFO_MC_DESC ++ ++#ifdef GET_INSTRINFO_HEADER ++#undef GET_INSTRINFO_HEADER ++namespace llvm { ++struct LoongArchGenInstrInfo : public TargetInstrInfo { ++ explicit LoongArchGenInstrInfo(int CFSetupOpcode = -1, int CFDestroyOpcode = -1, int CatchRetOpcode = -1, int ReturnOpcode = -1); ++ ~LoongArchGenInstrInfo() override = default; ++ ++}; ++} // end namespace llvm ++#endif // GET_INSTRINFO_HEADER ++ ++#ifdef GET_INSTRINFO_HELPER_DECLS ++#undef GET_INSTRINFO_HELPER_DECLS ++ ++ ++#endif // GET_INSTRINFO_HELPER_DECLS ++ ++#ifdef GET_INSTRINFO_HELPERS ++#undef GET_INSTRINFO_HELPERS ++ ++#endif // GET_INSTRINFO_HELPERS ++ ++#ifdef GET_INSTRINFO_CTOR_DTOR ++#undef GET_INSTRINFO_CTOR_DTOR ++namespace llvm { ++extern const MCInstrDesc LoongArchInsts[]; ++extern const unsigned LoongArchInstrNameIndices[]; ++extern const char LoongArchInstrNameData[]; ++LoongArchGenInstrInfo::LoongArchGenInstrInfo(int CFSetupOpcode, int CFDestroyOpcode, int CatchRetOpcode, int ReturnOpcode) ++ : TargetInstrInfo(CFSetupOpcode, CFDestroyOpcode, CatchRetOpcode, ReturnOpcode) { ++ InitMCInstrInfo(LoongArchInsts, LoongArchInstrNameIndices, LoongArchInstrNameData, 2460); ++} ++} // end namespace llvm ++#endif // GET_INSTRINFO_CTOR_DTOR ++ ++#ifdef GET_INSTRINFO_OPERAND_ENUM ++#undef GET_INSTRINFO_OPERAND_ENUM ++namespace llvm { ++namespace LoongArch { ++namespace OpName { ++enum { ++OPERAND_LAST ++}; ++} // end namespace OpName ++} // end namespace LoongArch ++} // end namespace llvm ++#endif //GET_INSTRINFO_OPERAND_ENUM ++ ++#ifdef GET_INSTRINFO_NAMED_OPS ++#undef GET_INSTRINFO_NAMED_OPS ++namespace llvm { ++namespace LoongArch { ++LLVM_READONLY ++int16_t getNamedOperandIdx(uint16_t Opcode, uint16_t NamedIdx) { ++ return -1; ++} ++} // end namespace LoongArch ++} // end namespace llvm ++#endif //GET_INSTRINFO_NAMED_OPS ++ ++#ifdef GET_INSTRINFO_OPERAND_TYPES_ENUM ++#undef GET_INSTRINFO_OPERAND_TYPES_ENUM ++namespace llvm { ++namespace LoongArch { ++namespace OpTypes { ++enum OperandType { ++ PtrRC = 0, ++ amem = 1, ++ brtarget = 2, ++ calltarget = 3, ++ condcode = 4, ++ f32imm = 5, ++ f64imm = 6, ++ i16imm = 7, ++ i1imm = 8, ++ i32imm = 9, ++ i64imm = 10, ++ i8imm = 11, ++ imm64 = 12, ++ immSExt10_2_O = 13, ++ immSExt11_1_O = 14, ++ immSExt8_1_O = 15, ++ immSExt8_2_O = 16, ++ immSExt8_3_O = 17, ++ immSExt9_3_O = 18, ++ jmptarget = 19, ++ mem = 20, ++ mem_ea = 21, ++ mem_simm10_lsl2 = 22, ++ mem_simm11_lsl1 = 23, ++ mem_simm12 = 24, ++ mem_simm14_lsl2 = 25, ++ mem_simm9_lsl3 = 26, ++ mem_simmptr = 27, ++ ptype0 = 28, ++ ptype1 = 29, ++ ptype2 = 30, ++ ptype3 = 31, ++ ptype4 = 32, ++ ptype5 = 33, ++ simm10 = 34, ++ simm10Op = 35, ++ simm10_lsl2 = 36, ++ simm11 = 37, ++ simm11_lsl1 = 38, ++ simm12 = 39, ++ simm12_32 = 40, ++ simm12_relaxed = 41, ++ simm13Op = 42, ++ simm14 = 43, ++ simm14_lsl2 = 44, ++ simm15 = 45, ++ simm16 = 46, ++ simm2 = 47, ++ simm20 = 48, ++ simm20_32 = 49, ++ simm21 = 50, ++ simm26 = 51, ++ simm3 = 52, ++ simm4 = 53, ++ simm5 = 54, ++ simm5_32 = 55, ++ simm6 = 56, ++ simm8 = 57, ++ simm8_32 = 58, ++ simm9 = 59, ++ simm9_lsl3 = 60, ++ type0 = 61, ++ type1 = 62, ++ type2 = 63, ++ type3 = 64, ++ type4 = 65, ++ type5 = 66, ++ uimm1 = 67, ++ uimm10 = 68, ++ uimm12 = 69, ++ uimm12_32 = 70, ++ uimm14 = 71, ++ uimm14_32 = 72, ++ uimm15 = 73, ++ uimm16_64_relaxed = 74, ++ uimm1_ptr = 75, ++ uimm1i = 76, ++ uimm2 = 77, ++ uimm20 = 78, ++ uimm26 = 79, ++ uimm2_plus1 = 80, ++ uimm2_ptr = 81, ++ uimm3 = 82, ++ uimm32_coerced = 83, ++ uimm3_ptr = 84, ++ uimm4 = 85, ++ uimm4_ptr = 86, ++ uimm4i = 87, ++ uimm5 = 88, ++ uimm5_ptr = 89, ++ uimm6 = 90, ++ uimm6_ptr = 91, ++ uimm7 = 92, ++ uimm7_ptr = 93, ++ uimm7i = 94, ++ uimm8 = 95, ++ uimm8_32 = 96, ++ uimm8_64 = 97, ++ uimm8_ptr = 98, ++ untyped_imm_0 = 99, ++ vsplat_simm10 = 100, ++ vsplat_simm5 = 101, ++ vsplat_uimm1 = 102, ++ vsplat_uimm2 = 103, ++ vsplat_uimm3 = 104, ++ vsplat_uimm4 = 105, ++ vsplat_uimm5 = 106, ++ vsplat_uimm6 = 107, ++ vsplat_uimm8 = 108, ++ FCFROpnd = 109, ++ FCSROpnd = 110, ++ FGR32Opnd = 111, ++ FGR64Opnd = 112, ++ GPR32Opnd = 113, ++ GPR64Opnd = 114, ++ GPRTC64Opnd = 115, ++ LASX256BOpnd = 116, ++ LASX256DOpnd = 117, ++ LASX256HOpnd = 118, ++ LASX256WOpnd = 119, ++ LSX128BOpnd = 120, ++ LSX128DOpnd = 121, ++ LSX128HOpnd = 122, ++ LSX128WOpnd = 123, ++ FCFR = 124, ++ FCSR = 125, ++ FGR32 = 126, ++ FGR64 = 127, ++ GPR32 = 128, ++ GPR64 = 129, ++ GPRTC64 = 130, ++ LASX256B = 131, ++ LASX256D = 132, ++ LASX256H = 133, ++ LASX256W = 134, ++ LSX128B = 135, ++ LSX128D = 136, ++ LSX128H = 137, ++ LSX128W = 138, ++ SP32 = 139, ++ SP64 = 140, ++ TP32 = 141, ++ TP64 = 142, ++ OPERAND_TYPE_LIST_END ++}; ++} // end namespace OpTypes ++} // end namespace LoongArch ++} // end namespace llvm ++#endif // GET_INSTRINFO_OPERAND_TYPES_ENUM ++ ++#ifdef GET_INSTRINFO_OPERAND_TYPE ++#undef GET_INSTRINFO_OPERAND_TYPE ++namespace llvm { ++namespace LoongArch { ++LLVM_READONLY ++static int getOperandType(uint16_t Opcode, uint16_t OpIdx) { ++ const int Offsets[] = { ++ 0, ++ 1, ++ 1, ++ 1, ++ 2, ++ 3, ++ 4, ++ 5, ++ 5, ++ 8, ++ 12, ++ 13, ++ 17, ++ 20, ++ 20, ++ 21, ++ 23, ++ 25, ++ 25, ++ 26, ++ 27, ++ 29, ++ 29, ++ 35, ++ 36, ++ 36, ++ 38, ++ 39, ++ 39, ++ 39, ++ 39, ++ 39, ++ 39, ++ 41, ++ 44, ++ 44, ++ 47, ++ 50, ++ 53, ++ 56, ++ 59, ++ 62, ++ 65, ++ 68, ++ 71, ++ 74, ++ 75, ++ 76, ++ 78, ++ 80, ++ 83, ++ 85, ++ 89, ++ 91, ++ 93, ++ 95, ++ 97, ++ 99, ++ 101, ++ 103, ++ 105, ++ 107, ++ 108, ++ 110, ++ 112, ++ 114, ++ 119, ++ 124, ++ 129, ++ 131, ++ 136, ++ 141, ++ 145, ++ 148, ++ 151, ++ 154, ++ 157, ++ 160, ++ 163, ++ 166, ++ 169, ++ 172, ++ 175, ++ 178, ++ 181, ++ 184, ++ 186, ++ 188, ++ 189, ++ 190, ++ 191, ++ 193, ++ 195, ++ 197, ++ 199, ++ 200, ++ 203, ++ 205, ++ 208, ++ 210, ++ 213, ++ 216, ++ 219, ++ 223, ++ 227, ++ 231, ++ 235, ++ 240, ++ 244, ++ 249, ++ 253, ++ 258, ++ 262, ++ 267, ++ 271, ++ 275, ++ 278, ++ 281, ++ 284, ++ 287, ++ 290, ++ 294, ++ 298, ++ 301, ++ 304, ++ 307, ++ 309, ++ 311, ++ 313, ++ 315, ++ 317, ++ 319, ++ 321, ++ 323, ++ 325, ++ 327, ++ 329, ++ 331, ++ 333, ++ 336, ++ 338, ++ 341, ++ 344, ++ 347, ++ 350, ++ 353, ++ 356, ++ 359, ++ 362, ++ 365, ++ 368, ++ 371, ++ 374, ++ 375, ++ 378, ++ 382, ++ 385, ++ 389, ++ 391, ++ 393, ++ 395, ++ 397, ++ 399, ++ 401, ++ 403, ++ 405, ++ 407, ++ 409, ++ 411, ++ 413, ++ 415, ++ 417, ++ 419, ++ 421, ++ 423, ++ 426, ++ 428, ++ 430, ++ 432, ++ 434, ++ 437, ++ 440, ++ 443, ++ 447, ++ 454, ++ 458, ++ 462, ++ 466, ++ 470, ++ 474, ++ 481, ++ 484, ++ 490, ++ 493, ++ 496, ++ 499, ++ 502, ++ 505, ++ 511, ++ 514, ++ 520, ++ 523, ++ 526, ++ 529, ++ 532, ++ 535, ++ 541, ++ 544, ++ 550, ++ 553, ++ 556, ++ 559, ++ 562, ++ 565, ++ 571, ++ 574, ++ 580, ++ 583, ++ 586, ++ 589, ++ 592, ++ 595, ++ 601, ++ 604, ++ 610, ++ 613, ++ 616, ++ 619, ++ 622, ++ 625, ++ 631, ++ 634, ++ 640, ++ 643, ++ 646, ++ 649, ++ 652, ++ 655, ++ 661, ++ 664, ++ 670, ++ 673, ++ 676, ++ 679, ++ 682, ++ 685, ++ 691, ++ 694, ++ 700, ++ 703, ++ 706, ++ 709, ++ 712, ++ 715, ++ 721, ++ 724, ++ 730, ++ 733, ++ 736, ++ 739, ++ 742, ++ 745, ++ 751, ++ 754, ++ 760, ++ 763, ++ 766, ++ 769, ++ 772, ++ 775, ++ 781, ++ 784, ++ 790, ++ 793, ++ 796, ++ 799, ++ 802, ++ 805, ++ 811, ++ 815, ++ 819, ++ 823, ++ 827, ++ 831, ++ 835, ++ 838, ++ 841, ++ 844, ++ 847, ++ 850, ++ 853, ++ 856, ++ 859, ++ 859, ++ 861, ++ 863, ++ 867, ++ 871, ++ 875, ++ 879, ++ 880, ++ 881, ++ 885, ++ 888, ++ 892, ++ 895, ++ 897, ++ 899, ++ 902, ++ 904, ++ 906, ++ 909, ++ 911, ++ 914, ++ 916, ++ 919, ++ 921, ++ 924, ++ 926, ++ 928, ++ 930, ++ 932, ++ 934, ++ 934, ++ 937, ++ 940, ++ 943, ++ 946, ++ 949, ++ 952, ++ 953, ++ 955, ++ 957, ++ 959, ++ 961, ++ 962, ++ 963, ++ 967, ++ 971, ++ 975, ++ 979, ++ 983, ++ 987, ++ 991, ++ 995, ++ 996, ++ 997, ++ 998, ++ 999, ++ 999, ++ 1001, ++ 1003, ++ 1005, ++ 1007, ++ 1009, ++ 1011, ++ 1013, ++ 1015, ++ 1017, ++ 1019, ++ 1019, ++ 1022, ++ 1025, ++ 1028, ++ 1031, ++ 1034, ++ 1037, ++ 1040, ++ 1043, ++ 1046, ++ 1050, ++ 1054, ++ 1058, ++ 1062, ++ 1066, ++ 1070, ++ 1073, ++ 1076, ++ 1079, ++ 1081, ++ 1083, ++ 1087, ++ 1091, ++ 1095, ++ 1099, ++ 1103, ++ 1107, ++ 1111, ++ 1115, ++ 1119, ++ 1123, ++ 1127, ++ 1131, ++ 1135, ++ 1138, ++ 1141, ++ 1144, ++ 1147, ++ 1150, ++ 1153, ++ 1155, ++ 1157, ++ 1159, ++ 1161, ++ 1163, ++ 1165, ++ 1167, ++ 1169, ++ 1171, ++ 1173, ++ 1176, ++ 1179, ++ 1182, ++ 1185, ++ 1188, ++ 1191, ++ 1194, ++ 1197, ++ 1200, ++ 1203, ++ 1206, ++ 1209, ++ 1212, ++ 1215, ++ 1219, ++ 1222, ++ 1225, ++ 1228, ++ 1231, ++ 1234, ++ 1237, ++ 1241, ++ 1245, ++ 1249, ++ 1253, ++ 1257, ++ 1261, ++ 1265, ++ 1269, ++ 1273, ++ 1277, ++ 1281, ++ 1285, ++ 1289, ++ 1293, ++ 1297, ++ 1301, ++ 1305, ++ 1309, ++ 1313, ++ 1317, ++ 1321, ++ 1325, ++ 1329, ++ 1333, ++ 1337, ++ 1341, ++ 1345, ++ 1349, ++ 1353, ++ 1357, ++ 1361, ++ 1365, ++ 1369, ++ 1373, ++ 1377, ++ 1381, ++ 1385, ++ 1389, ++ 1393, ++ 1396, ++ 1399, ++ 1402, ++ 1405, ++ 1408, ++ 1411, ++ 1413, ++ 1415, ++ 1416, ++ 1417, ++ 1419, ++ 1421, ++ 1424, ++ 1427, ++ 1429, ++ 1431, ++ 1434, ++ 1437, ++ 1440, ++ 1443, ++ 1445, ++ 1447, ++ 1449, ++ 1451, ++ 1452, ++ 1455, ++ 1458, ++ 1461, ++ 1464, ++ 1467, ++ 1470, ++ 1472, ++ 1474, ++ 1475, ++ 1480, ++ 1485, ++ 1489, ++ 1493, ++ 1497, ++ 1501, ++ 1504, ++ 1507, ++ 1509, ++ 1511, ++ 1513, ++ 1515, ++ 1517, ++ 1520, ++ 1523, ++ 1526, ++ 1529, ++ 1532, ++ 1535, ++ 1538, ++ 1541, ++ 1543, ++ 1545, ++ 1548, ++ 1551, ++ 1555, ++ 1559, ++ 1561, ++ 1563, ++ 1565, ++ 1567, ++ 1568, ++ 1569, ++ 1572, ++ 1575, ++ 1578, ++ 1581, ++ 1581, ++ 1583, ++ 1585, ++ 1587, ++ 1589, ++ 1591, ++ 1593, ++ 1596, ++ 1599, ++ 1601, ++ 1603, ++ 1606, ++ 1609, ++ 1612, ++ 1615, ++ 1618, ++ 1621, ++ 1624, ++ 1627, ++ 1630, ++ 1633, ++ 1636, ++ 1639, ++ 1642, ++ 1645, ++ 1648, ++ 1651, ++ 1654, ++ 1657, ++ 1660, ++ 1663, ++ 1666, ++ 1669, ++ 1672, ++ 1675, ++ 1678, ++ 1681, ++ 1684, ++ 1687, ++ 1690, ++ 1693, ++ 1696, ++ 1699, ++ 1702, ++ 1705, ++ 1708, ++ 1711, ++ 1714, ++ 1717, ++ 1720, ++ 1723, ++ 1726, ++ 1729, ++ 1732, ++ 1735, ++ 1738, ++ 1741, ++ 1744, ++ 1747, ++ 1749, ++ 1751, ++ 1754, ++ 1757, ++ 1759, ++ 1761, ++ 1763, ++ 1765, ++ 1768, ++ 1771, ++ 1774, ++ 1777, ++ 1780, ++ 1783, ++ 1786, ++ 1789, ++ 1791, ++ 1793, ++ 1797, ++ 1801, ++ 1804, ++ 1807, ++ 1810, ++ 1813, ++ 1816, ++ 1819, ++ 1822, ++ 1825, ++ 1827, ++ 1829, ++ 1833, ++ 1837, ++ 1840, ++ 1843, ++ 1845, ++ 1847, ++ 1851, ++ 1855, ++ 1859, ++ 1863, ++ 1865, ++ 1867, ++ 1869, ++ 1871, ++ 1873, ++ 1875, ++ 1878, ++ 1881, ++ 1885, ++ 1889, ++ 1891, ++ 1893, ++ 1896, ++ 1899, ++ 1902, ++ 1905, ++ 1908, ++ 1911, ++ 1914, ++ 1917, ++ 1920, ++ 1923, ++ 1925, ++ 1927, ++ 1929, ++ 1931, ++ 1933, ++ 1935, ++ 1937, ++ 1939, ++ 1941, ++ 1943, ++ 1945, ++ 1947, ++ 1949, ++ 1951, ++ 1953, ++ 1955, ++ 1957, ++ 1959, ++ 1961, ++ 1962, ++ 1963, ++ 1964, ++ 1967, ++ 1969, ++ 1971, ++ 1973, ++ 1975, ++ 1977, ++ 1979, ++ 1981, ++ 1983, ++ 1985, ++ 1987, ++ 1989, ++ 1992, ++ 1995, ++ 1997, ++ 2000, ++ 2002, ++ 2005, ++ 2008, ++ 2011, ++ 2014, ++ 2017, ++ 2020, ++ 2023, ++ 2026, ++ 2029, ++ 2032, ++ 2034, ++ 2036, ++ 2039, ++ 2042, ++ 2045, ++ 2048, ++ 2051, ++ 2054, ++ 2057, ++ 2060, ++ 2063, ++ 2066, ++ 2069, ++ 2072, ++ 2075, ++ 2078, ++ 2081, ++ 2084, ++ 2087, ++ 2090, ++ 2093, ++ 2096, ++ 2099, ++ 2102, ++ 2106, ++ 2109, ++ 2112, ++ 2115, ++ 2118, ++ 2121, ++ 2124, ++ 2127, ++ 2130, ++ 2133, ++ 2136, ++ 2139, ++ 2141, ++ 2143, ++ 2145, ++ 2147, ++ 2150, ++ 2152, ++ 2155, ++ 2158, ++ 2161, ++ 2165, ++ 2168, ++ 2171, ++ 2174, ++ 2177, ++ 2180, ++ 2183, ++ 2186, ++ 2189, ++ 2191, ++ 2193, ++ 2195, ++ 2197, ++ 2199, ++ 2201, ++ 2203, ++ 2205, ++ 2207, ++ 2209, ++ 2211, ++ 2213, ++ 2215, ++ 2217, ++ 2219, ++ 2221, ++ 2223, ++ 2226, ++ 2229, ++ 2232, ++ 2235, ++ 2238, ++ 2241, ++ 2244, ++ 2247, ++ 2250, ++ 2253, ++ 2256, ++ 2259, ++ 2262, ++ 2265, ++ 2268, ++ 2272, ++ 2275, ++ 2278, ++ 2280, ++ 2282, ++ 2284, ++ 2286, ++ 2288, ++ 2291, ++ 2293, ++ 2295, ++ 2297, ++ 2301, ++ 2305, ++ 2308, ++ 2311, ++ 2313, ++ 2315, ++ 2317, ++ 2319, ++ 2321, ++ 2323, ++ 2325, ++ 2327, ++ 2329, ++ 2331, ++ 2333, ++ 2335, ++ 2337, ++ 2340, ++ 2343, ++ 2346, ++ 2349, ++ 2353, ++ 2357, ++ 2360, ++ 2362, ++ 2365, ++ 2367, ++ 2369, ++ 2372, ++ 2375, ++ 2378, ++ 2381, ++ 2384, ++ 2387, ++ 2390, ++ 2393, ++ 2396, ++ 2399, ++ 2402, ++ 2405, ++ 2408, ++ 2411, ++ 2414, ++ 2417, ++ 2420, ++ 2423, ++ 2426, ++ 2429, ++ 2432, ++ 2435, ++ 2438, ++ 2441, ++ 2444, ++ 2447, ++ 2450, ++ 2453, ++ 2456, ++ 2459, ++ 2462, ++ 2465, ++ 2468, ++ 2471, ++ 2474, ++ 2477, ++ 2480, ++ 2483, ++ 2486, ++ 2489, ++ 2492, ++ 2495, ++ 2498, ++ 2501, ++ 2504, ++ 2507, ++ 2508, ++ 2508, ++ 2508, ++ 2508, ++ 2508, ++ 2508, ++ 2508, ++ 2510, ++ 2513, ++ 2516, ++ 2519, ++ 2522, ++ 2525, ++ 2528, ++ 2531, ++ 2534, ++ 2537, ++ 2540, ++ 2543, ++ 2546, ++ 2549, ++ 2552, ++ 2555, ++ 2558, ++ 2561, ++ 2564, ++ 2567, ++ 2570, ++ 2573, ++ 2576, ++ 2579, ++ 2582, ++ 2585, ++ 2588, ++ 2591, ++ 2594, ++ 2597, ++ 2600, ++ 2603, ++ 2606, ++ 2609, ++ 2612, ++ 2615, ++ 2618, ++ 2621, ++ 2624, ++ 2627, ++ 2630, ++ 2633, ++ 2636, ++ 2639, ++ 2642, ++ 2645, ++ 2648, ++ 2651, ++ 2654, ++ 2657, ++ 2660, ++ 2663, ++ 2666, ++ 2669, ++ 2672, ++ 2675, ++ 2678, ++ 2681, ++ 2684, ++ 2687, ++ 2690, ++ 2693, ++ 2696, ++ 2699, ++ 2702, ++ 2705, ++ 2708, ++ 2711, ++ 2714, ++ 2717, ++ 2720, ++ 2723, ++ 2726, ++ 2729, ++ 2732, ++ 2735, ++ 2738, ++ 2741, ++ 2744, ++ 2747, ++ 2750, ++ 2753, ++ 2757, ++ 2761, ++ 2765, ++ 2768, ++ 2771, ++ 2774, ++ 2777, ++ 2780, ++ 2783, ++ 2786, ++ 2789, ++ 2792, ++ 2795, ++ 2797, ++ 2799, ++ 2801, ++ 2803, ++ 2805, ++ 2807, ++ 2809, ++ 2811, ++ 2814, ++ 2817, ++ 2820, ++ 2823, ++ 2826, ++ 2829, ++ 2832, ++ 2835, ++ 2837, ++ 2839, ++ 2841, ++ 2843, ++ 2845, ++ 2847, ++ 2849, ++ 2851, ++ 2853, ++ 2855, ++ 2857, ++ 2859, ++ 2861, ++ 2863, ++ 2865, ++ 2867, ++ 2869, ++ 2871, ++ 2873, ++ 2875, ++ 2877, ++ 2879, ++ 2883, ++ 2887, ++ 2891, ++ 2895, ++ 2898, ++ 2901, ++ 2903, ++ 2905, ++ 2908, ++ 2911, ++ 2914, ++ 2917, ++ 2920, ++ 2923, ++ 2926, ++ 2929, ++ 2932, ++ 2935, ++ 2938, ++ 2941, ++ 2944, ++ 2947, ++ 2950, ++ 2953, ++ 2956, ++ 2959, ++ 2962, ++ 2965, ++ 2968, ++ 2971, ++ 2974, ++ 2977, ++ 2980, ++ 2983, ++ 2986, ++ 2989, ++ 2992, ++ 2995, ++ 2998, ++ 3001, ++ 3004, ++ 3007, ++ 3010, ++ 3013, ++ 3016, ++ 3019, ++ 3022, ++ 3025, ++ 3028, ++ 3031, ++ 3034, ++ 3037, ++ 3039, ++ 3041, ++ 3043, ++ 3045, ++ 3048, ++ 3051, ++ 3054, ++ 3057, ++ 3059, ++ 3061, ++ 3063, ++ 3065, ++ 3068, ++ 3070, ++ 3072, ++ 3074, ++ 3076, ++ 3080, ++ 3084, ++ 3087, ++ 3090, ++ 3093, ++ 3096, ++ 3099, ++ 3102, ++ 3105, ++ 3108, ++ 3112, ++ 3116, ++ 3119, ++ 3122, ++ 3126, ++ 3130, ++ 3134, ++ 3138, ++ 3140, ++ 3142, ++ 3144, ++ 3146, ++ 3148, ++ 3150, ++ 3152, ++ 3154, ++ 3156, ++ 3158, ++ 3160, ++ 3162, ++ 3164, ++ 3166, ++ 3170, ++ 3174, ++ 3178, ++ 3182, ++ 3184, ++ 3186, ++ 3189, ++ 3192, ++ 3194, ++ 3196, ++ 3198, ++ 3200, ++ 3202, ++ 3205, ++ 3207, ++ 3209, ++ 3211, ++ 3213, ++ 3216, ++ 3218, ++ 3220, ++ 3222, ++ 3224, ++ 3227, ++ 3229, ++ 3231, ++ 3233, ++ 3235, ++ 3237, ++ 3239, ++ 3242, ++ 3244, ++ 3246, ++ 3248, ++ 3250, ++ 3253, ++ 3255, ++ 3258, ++ 3261, ++ 3264, ++ 3267, ++ 3270, ++ 3273, ++ 3276, ++ 3279, ++ 3282, ++ 3285, ++ 3288, ++ 3291, ++ 3294, ++ 3297, ++ 3300, ++ 3303, ++ 3306, ++ 3309, ++ 3312, ++ 3315, ++ 3318, ++ 3321, ++ 3324, ++ 3327, ++ 3331, ++ 3335, ++ 3339, ++ 3343, ++ 3346, ++ 3348, ++ 3350, ++ 3352, ++ 3354, ++ 3356, ++ 3359, ++ 3362, ++ 3365, ++ 3368, ++ 3371, ++ 3374, ++ 3377, ++ 3380, ++ 3384, ++ 3388, ++ 3392, ++ 3396, ++ 3400, ++ 3404, ++ 3408, ++ 3412, ++ 3416, ++ 3420, ++ 3424, ++ 3428, ++ 3432, ++ 3436, ++ 3440, ++ 3444, ++ 3448, ++ 3452, ++ 3456, ++ 3460, ++ 3464, ++ 3468, ++ 3472, ++ 3476, ++ 3480, ++ 3484, ++ 3488, ++ 3492, ++ 3495, ++ 3498, ++ 3501, ++ 3504, ++ 3507, ++ 3510, ++ 3513, ++ 3516, ++ 3519, ++ 3522, ++ 3525, ++ 3528, ++ 3531, ++ 3534, ++ 3537, ++ 3540, ++ 3543, ++ 3546, ++ 3549, ++ 3552, ++ 3555, ++ 3558, ++ 3561, ++ 3564, ++ 3567, ++ 3570, ++ 3573, ++ 3576, ++ 3579, ++ 3582, ++ 3585, ++ 3588, ++ 3591, ++ 3594, ++ 3597, ++ 3600, ++ 3603, ++ 3606, ++ 3609, ++ 3612, ++ 3615, ++ 3618, ++ 3621, ++ 3624, ++ 3627, ++ 3630, ++ 3633, ++ 3636, ++ 3639, ++ 3642, ++ 3645, ++ 3648, ++ 3650, ++ 3652, ++ 3654, ++ 3656, ++ 3658, ++ 3660, ++ 3664, ++ 3668, ++ 3672, ++ 3676, ++ 3679, ++ 3682, ++ 3685, ++ 3688, ++ 3691, ++ 3694, ++ 3697, ++ 3700, ++ 3703, ++ 3706, ++ 3709, ++ 3712, ++ 3715, ++ 3718, ++ 3721, ++ 3724, ++ 3727, ++ 3730, ++ 3733, ++ 3736, ++ 3739, ++ 3742, ++ 3745, ++ 3748, ++ 3751, ++ 3754, ++ 3757, ++ 3760, ++ 3763, ++ 3766, ++ 3769, ++ 3772, ++ 3775, ++ 3778, ++ 3781, ++ 3784, ++ 3786, ++ 3788, ++ 3790, ++ 3792, ++ 3795, ++ 3798, ++ 3801, ++ 3804, ++ 3807, ++ 3810, ++ 3813, ++ 3816, ++ 3819, ++ 3822, ++ 3825, ++ 3828, ++ 3831, ++ 3833, ++ 3835, ++ 3837, ++ 3839, ++ 3843, ++ 3846, ++ 3849, ++ 3852, ++ 3855, ++ 3858, ++ 3861, ++ 3864, ++ 3867, ++ 3870, ++ 3873, ++ 3876, ++ 3879, ++ 3882, ++ 3885, ++ 3888, ++ 3891, ++ 3893, ++ 3895, ++ 3897, ++ 3899, ++ 3902, ++ 3905, ++ 3908, ++ 3911, ++ 3914, ++ 3917, ++ 3920, ++ 3923, ++ 3926, ++ 3929, ++ 3932, ++ 3935, ++ 3938, ++ 3941, ++ 3944, ++ 3947, ++ 3950, ++ 3953, ++ 3956, ++ 3959, ++ 3962, ++ 3965, ++ 3968, ++ 3971, ++ 3974, ++ 3977, ++ 3980, ++ 3983, ++ 3986, ++ 3989, ++ 3992, ++ 3995, ++ 3998, ++ 4001, ++ 4004, ++ 4007, ++ 4010, ++ 4013, ++ 4016, ++ 4019, ++ 4022, ++ 4025, ++ 4028, ++ 4031, ++ 4033, ++ 4035, ++ 4037, ++ 4039, ++ 4041, ++ 4043, ++ 4045, ++ 4047, ++ 4049, ++ 4051, ++ 4054, ++ 4058, ++ 4061, ++ 4064, ++ 4068, ++ 4072, ++ 4076, ++ 4080, ++ 4083, ++ 4086, ++ 4089, ++ 4092, ++ 4095, ++ 4098, ++ 4101, ++ 4104, ++ 4107, ++ 4110, ++ 4113, ++ 4116, ++ 4119, ++ 4122, ++ 4125, ++ 4128, ++ 4131, ++ 4134, ++ 4137, ++ 4140, ++ 4143, ++ 4146, ++ 4149, ++ 4152, ++ 4155, ++ 4158, ++ 4161, ++ 4164, ++ 4167, ++ 4170, ++ 4173, ++ 4176, ++ 4179, ++ 4182, ++ 4185, ++ 4188, ++ 4191, ++ 4194, ++ 4197, ++ 4200, ++ 4203, ++ 4206, ++ 4209, ++ 4212, ++ 4215, ++ 4218, ++ 4221, ++ 4224, ++ 4227, ++ 4230, ++ 4233, ++ 4236, ++ 4239, ++ 4242, ++ 4245, ++ 4248, ++ 4251, ++ 4254, ++ 4257, ++ 4260, ++ 4263, ++ 4266, ++ 4269, ++ 4272, ++ 4275, ++ 4278, ++ 4281, ++ 4284, ++ 4287, ++ 4290, ++ 4293, ++ 4296, ++ 4299, ++ 4302, ++ 4306, ++ 4310, ++ 4314, ++ 4318, ++ 4321, ++ 4324, ++ 4327, ++ 4330, ++ 4333, ++ 4336, ++ 4339, ++ 4343, ++ 4347, ++ 4351, ++ 4355, ++ 4358, ++ 4361, ++ 4364, ++ 4367, ++ 4370, ++ 4373, ++ 4376, ++ 4379, ++ 4382, ++ 4385, ++ 4388, ++ 4391, ++ 4394, ++ 4397, ++ 4400, ++ 4404, ++ 4408, ++ 4412, ++ 4416, ++ 4419, ++ 4422, ++ 4425, ++ 4428, ++ 4431, ++ 4434, ++ 4437, ++ 4441, ++ 4445, ++ 4449, ++ 4453, ++ 4456, ++ 4459, ++ 4462, ++ 4465, ++ 4468, ++ 4471, ++ 4474, ++ 4477, ++ 4480, ++ 4483, ++ 4486, ++ 4490, ++ 4494, ++ 4498, ++ 4502, ++ 4506, ++ 4510, ++ 4514, ++ 4518, ++ 4521, ++ 4524, ++ 4527, ++ 4530, ++ 4533, ++ 4536, ++ 4540, ++ 4544, ++ 4548, ++ 4552, ++ 4556, ++ 4560, ++ 4564, ++ 4568, ++ 4571, ++ 4574, ++ 4577, ++ 4580, ++ 4583, ++ 4586, ++ 4590, ++ 4594, ++ 4598, ++ 4602, ++ 4606, ++ 4610, ++ 4614, ++ 4618, ++ 4621, ++ 4624, ++ 4627, ++ 4630, ++ 4633, ++ 4636, ++ 4640, ++ 4644, ++ 4648, ++ 4652, ++ 4656, ++ 4660, ++ 4664, ++ 4668, ++ 4671, ++ 4674, ++ 4677, ++ 4680, ++ 4683, ++ 4686, ++ 4689, ++ 4692, ++ 4695, ++ 4698, ++ 4701, ++ 4704, ++ 4707, ++ 4710, ++ 4713, ++ 4717, ++ 4721, ++ 4725, ++ 4729, ++ 4732, ++ 4735, ++ 4738, ++ 4741, ++ 4744, ++ 4747, ++ 4750, ++ 4753, ++ 4756, ++ 4759, ++ 4762, ++ 4765, ++ 4768, ++ 4771, ++ 4774, ++ 4777, ++ 4780, ++ 4783, ++ 4786, ++ 4789, ++ 4792, ++ 4795, ++ 4798, ++ 4801, ++ 4804, ++ 4807, ++ 4810, ++ 4813, ++ 4816, ++ 4819, ++ 4822, ++ 4825, ++ 4828, ++ 4831, ++ 4834, ++ 4837, ++ 4840, ++ 4843, ++ 4846, ++ 4849, ++ 4852, ++ 4855, ++ 4858, ++ 4861, ++ 4864, ++ 4867, ++ 4870, ++ 4873, ++ 4876, ++ 4879, ++ 4882, ++ 4885, ++ 4888, ++ 4891, ++ 4894, ++ 4897, ++ 4900, ++ 4903, ++ 4906, ++ 4909, ++ 4912, ++ 4915, ++ 4918, ++ 4921, ++ 4924, ++ 4927, ++ 4930, ++ 4933, ++ 4936, ++ 4939, ++ 4942, ++ 4945, ++ 4948, ++ 4951, ++ 4954, ++ 4957, ++ 4960, ++ 4963, ++ 4966, ++ 4969, ++ 4972, ++ 4975, ++ 4978, ++ 4981, ++ 4984, ++ 4987, ++ 4990, ++ 4993, ++ 4996, ++ 4999, ++ 5002, ++ 5005, ++ 5008, ++ 5011, ++ 5014, ++ 5017, ++ 5020, ++ 5023, ++ 5026, ++ 5029, ++ 5032, ++ 5035, ++ 5038, ++ 5041, ++ 5044, ++ 5047, ++ 5050, ++ 5053, ++ 5056, ++ 5059, ++ 5062, ++ 5065, ++ 5068, ++ 5071, ++ 5074, ++ 5077, ++ 5080, ++ 5083, ++ 5086, ++ 5089, ++ 5092, ++ 5096, ++ 5100, ++ 5104, ++ 5107, ++ 5110, ++ 5113, ++ 5116, ++ 5119, ++ 5122, ++ 5125, ++ 5128, ++ 5131, ++ 5134, ++ 5136, ++ 5138, ++ 5140, ++ 5142, ++ 5144, ++ 5146, ++ 5148, ++ 5150, ++ 5153, ++ 5156, ++ 5159, ++ 5162, ++ 5165, ++ 5168, ++ 5171, ++ 5174, ++ 5176, ++ 5178, ++ 5180, ++ 5182, ++ 5184, ++ 5186, ++ 5188, ++ 5190, ++ 5192, ++ 5194, ++ 5198, ++ 5202, ++ 5206, ++ 5210, ++ 5213, ++ 5216, ++ 5218, ++ 5220, ++ 5223, ++ 5226, ++ 5229, ++ 5232, ++ 5235, ++ 5238, ++ 5241, ++ 5244, ++ 5247, ++ 5250, ++ 5253, ++ 5256, ++ 5259, ++ 5262, ++ 5265, ++ 5268, ++ 5271, ++ 5274, ++ 5277, ++ 5280, ++ 5283, ++ 5286, ++ 5289, ++ 5292, ++ 5295, ++ 5298, ++ 5301, ++ 5304, ++ 5307, ++ 5310, ++ 5313, ++ 5316, ++ 5319, ++ 5322, ++ 5325, ++ 5328, ++ 5331, ++ 5334, ++ 5337, ++ 5340, ++ 5343, ++ 5346, ++ 5349, ++ 5352, ++ 5354, ++ 5356, ++ 5358, ++ 5360, ++ 5363, ++ 5366, ++ 5369, ++ 5372, ++ 5374, ++ 5376, ++ 5378, ++ 5380, ++ 5383, ++ 5385, ++ 5387, ++ 5389, ++ 5391, ++ 5395, ++ 5399, ++ 5402, ++ 5405, ++ 5408, ++ 5411, ++ 5414, ++ 5417, ++ 5420, ++ 5423, ++ 5427, ++ 5431, ++ 5434, ++ 5437, ++ 5441, ++ 5445, ++ 5449, ++ 5453, ++ 5455, ++ 5457, ++ 5459, ++ 5461, ++ 5463, ++ 5465, ++ 5467, ++ 5469, ++ 5471, ++ 5473, ++ 5475, ++ 5477, ++ 5479, ++ 5481, ++ 5485, ++ 5489, ++ 5493, ++ 5497, ++ 5499, ++ 5501, ++ 5504, ++ 5507, ++ 5509, ++ 5511, ++ 5513, ++ 5515, ++ 5517, ++ 5520, ++ 5522, ++ 5524, ++ 5526, ++ 5528, ++ 5531, ++ 5533, ++ 5535, ++ 5537, ++ 5539, ++ 5542, ++ 5544, ++ 5546, ++ 5548, ++ 5550, ++ 5552, ++ 5554, ++ 5557, ++ 5559, ++ 5561, ++ 5563, ++ 5565, ++ 5568, ++ 5570, ++ 5573, ++ 5576, ++ 5579, ++ 5582, ++ 5585, ++ 5588, ++ 5591, ++ 5594, ++ 5597, ++ 5600, ++ 5603, ++ 5606, ++ 5609, ++ 5612, ++ 5615, ++ 5618, ++ 5621, ++ 5624, ++ 5627, ++ 5630, ++ 5633, ++ 5636, ++ 5639, ++ 5642, ++ 5645, ++ 5649, ++ 5653, ++ 5657, ++ 5661, ++ 5664, ++ 5666, ++ 5668, ++ 5670, ++ 5672, ++ 5674, ++ 5677, ++ 5680, ++ 5683, ++ 5686, ++ 5689, ++ 5692, ++ 5695, ++ 5698, ++ 5702, ++ 5706, ++ 5710, ++ 5714, ++ 5718, ++ 5722, ++ 5726, ++ 5730, ++ 5734, ++ 5738, ++ 5742, ++ 5746, ++ 5750, ++ 5754, ++ 5758, ++ 5762, ++ 5766, ++ 5770, ++ 5774, ++ 5778, ++ 5782, ++ 5786, ++ 5790, ++ 5794, ++ 5798, ++ 5802, ++ 5806, ++ 5810, ++ 5813, ++ 5816, ++ 5819, ++ 5822, ++ 5825, ++ 5828, ++ 5831, ++ 5834, ++ 5837, ++ 5840, ++ 5843, ++ 5846, ++ 5849, ++ 5852, ++ 5855, ++ 5858, ++ 5861, ++ 5864, ++ 5867, ++ 5870, ++ 5873, ++ 5876, ++ 5879, ++ 5882, ++ 5885, ++ 5888, ++ 5891, ++ 5894, ++ 5897, ++ 5900, ++ 5903, ++ 5906, ++ 5909, ++ 5912, ++ 5915, ++ 5918, ++ 5921, ++ 5924, ++ 5927, ++ 5930, ++ 5933, ++ 5936, ++ 5939, ++ 5942, ++ 5945, ++ 5948, ++ 5951, ++ 5954, ++ 5957, ++ 5960, ++ 5963, ++ 5966, ++ 5969, ++ 5972, ++ 5975, ++ 5978, ++ 5980, ++ 5982, ++ 5984, ++ 5986, ++ 5988, ++ 5990, ++ 5994, ++ 5998, ++ 6002, ++ 6006, ++ 6009, ++ 6012, ++ 6015, ++ 6018, ++ 6021, ++ 6024, ++ 6027, ++ 6030, ++ 6033, ++ 6036, ++ 6039, ++ 6042, ++ 6045, ++ 6048, ++ 6051, ++ 6054, ++ 6057, ++ 6060, ++ 6063, ++ 6066, ++ 6069, ++ 6072, ++ 6075, ++ 6078, ++ 6081, ++ 6084, ++ 6087, ++ 6090, ++ 6093, ++ 6096, ++ 6099, ++ 6102, ++ 6105, ++ 6108, ++ 6111, ++ 6114, ++ 6116, ++ 6118, ++ 6120, ++ 6122, ++ 6125, ++ 6128, ++ 6131, ++ 6134, ++ 6137, ++ 6140, ++ 6143, ++ 6146, ++ 6149, ++ 6152, ++ 6155, ++ 6158, ++ 6161, ++ 6163, ++ 6165, ++ 6167, ++ 6169, ++ 6172, ++ 6176, ++ 6180, ++ 6184, ++ 6188, ++ 6192, ++ 6195, ++ 6198, ++ 6201, ++ 6204, ++ 6207, ++ 6210, ++ 6213, ++ 6216, ++ 6219, ++ 6222, ++ 6225, ++ 6228, ++ 6231, ++ 6235, ++ 6239, ++ 6242, ++ 6245, ++ 6248, ++ 6251, ++ 6253, ++ 6255, ++ 6257, ++ 6259, ++ 6261, ++ 6263, ++ 6265, ++ 6267, ++ 6269, ++ 6272, ++ 6275, ++ 6278, ++ 6281, ++ 6284, ++ 6287, ++ 6290, ++ 6293, ++ 6296, ++ 6299, ++ 6302, ++ 6305, ++ 6308, ++ 6311, ++ 6314, ++ 6317, ++ 6320, ++ 6323, ++ 6326, ++ 6329, ++ 6332, ++ 6335, ++ 6338, ++ 6341, ++ 6344, ++ 6347, ++ 6350, ++ 6353, ++ 6356, ++ 6359, ++ 6362, ++ 6365, ++ 6368, ++ 6371, ++ 6374, ++ 6377, ++ 6380, ++ 6383, ++ 6386, ++ 6389, ++ 6392, ++ 6394, ++ 6396, ++ 6398, ++ 6400, ++ 6402, ++ 6404, ++ 6406, ++ 6408, ++ 6410, ++ 6412, ++ 6415, ++ 6419, ++ 6422, ++ 6425, ++ 6429, ++ 6433, ++ 6437, ++ 6441, ++ 6444, ++ 6447, ++ 6450, ++ 6453, ++ 6456, ++ 6459, ++ 6462, ++ 6465, ++ 6468, ++ 6471, ++ 6474, ++ 6477, ++ 6480, ++ 6483, ++ 6486, ++ 6489, ++ 6492, ++ 6495, ++ 6498, ++ 6501, ++ 6504, ++ 6507, ++ 6510, ++ 6513, ++ 6516, ++ 6519, ++ 6522, ++ 6525, ++ 6528, ++ 6531, ++ 6534, ++ 6537, ++ 6540, ++ 6543, ++ 6546, ++ 6549, ++ 6552, ++ 6555, ++ 6558, ++ 6561, ++ 6564, ++ 6567, ++ 6570, ++ 6573, ++ 6576, ++ 6579, ++ 6582, ++ 6585, ++ 6588, ++ 6591, ++ 6594, ++ 6597, ++ 6600, ++ 6603, ++ 6606, ++ 6609, ++ 6612, ++ 6615, ++ 6618, ++ 6621, ++ 6624, ++ 6627, ++ 6630, ++ 6633, ++ 6636, ++ 6639, ++ 6642, ++ 6645, ++ 6648, ++ 6651, ++ 6654, ++ 6657, ++ 6660, ++ 6663, ++ 6666, ++ 6669, ++ 6672, ++ 6675, ++ 6679, ++ 6683, ++ 6687, ++ 6691, ++ 6694, ++ 6697, ++ 6700, ++ 6703, ++ 6706, ++ 6709, ++ 6712, ++ 6716, ++ 6720, ++ 6724, ++ 6728, ++ 6731, ++ 6734, ++ 6737, ++ 6740, ++ 6743, ++ 6746, ++ 6749, ++ 6752, ++ 6755, ++ 6758, ++ 6761, ++ 6764, ++ 6767, ++ 6770, ++ 6773, ++ 6776, ++ 6779, ++ 6782, ++ 6785, ++ 6789, ++ 6793, ++ 6797, ++ 6801, ++ 6804, ++ 6807, ++ 6810, ++ 6813, ++ 6816, ++ 6819, ++ 6822, ++ 6826, ++ 6830, ++ 6834, ++ 6838, ++ 6841, ++ 6844, ++ 6847, ++ 6850, ++ 6853, ++ 6856, ++ 6859, ++ 6862, ++ 6865, ++ 6868, ++ 6871, ++ 6875, ++ 6879, ++ 6883, ++ 6887, ++ 6891, ++ 6895, ++ 6899, ++ 6903, ++ 6906, ++ 6909, ++ 6912, ++ 6915, ++ 6918, ++ 6921, ++ 6925, ++ 6929, ++ 6933, ++ 6937, ++ 6941, ++ 6945, ++ 6949, ++ 6953, ++ 6956, ++ 6959, ++ 6962, ++ 6965, ++ 6968, ++ 6971, ++ 6975, ++ 6979, ++ 6983, ++ 6987, ++ 6991, ++ 6995, ++ 6999, ++ 7003, ++ 7006, ++ 7009, ++ 7012, ++ 7015, ++ 7018, ++ 7021, ++ 7025, ++ 7029, ++ 7033, ++ 7037, ++ 7041, ++ 7045, ++ 7049, ++ 7053, ++ 7056, ++ 7059, ++ 7062, ++ 7065, ++ 7068, ++ 7071, ++ 7074, ++ 7077, ++ 7080, ++ 7083, ++ 7086, ++ 7089, ++ 7092, ++ 7095, ++ 7098, ++ 7102, ++ 7106, ++ 7110, ++ 7114, ++ 7117, ++ 7120, ++ 7123, ++ 7126, ++ 7129, ++ 7132, ++ 7135, ++ 7138, ++ 7141, ++ 7144, ++ 7147, ++ 7150, ++ 7153, ++ 7156, ++ 7159, ++ 7162, ++ 7165, ++ 7168, ++ 7171, ++ 7174, ++ 7177, ++ 7180, ++ 7183, ++ 7186, ++ 7189, ++ 7192, ++ 7195, ++ 7198, ++ 7201, ++ 7204, ++ 7207, ++ 7210, ++ 7213, ++ 7216, ++ 7219, ++ 7222, ++ }; ++ const int OpcodeOperandTypes[] = { ++ -1, ++ /**/ ++ /**/ ++ OpTypes::i32imm, ++ OpTypes::i32imm, ++ OpTypes::i32imm, ++ OpTypes::i32imm, ++ /**/ ++ -1, -1, OpTypes::i32imm, ++ -1, -1, -1, OpTypes::i32imm, ++ -1, ++ -1, -1, -1, OpTypes::i32imm, ++ -1, -1, OpTypes::i32imm, ++ /**/ ++ -1, ++ -1, -1, ++ -1, -1, ++ /**/ ++ OpTypes::i32imm, ++ OpTypes::i32imm, ++ OpTypes::i64imm, OpTypes::i32imm, ++ /**/ ++ -1, OpTypes::i64imm, OpTypes::i32imm, -1, OpTypes::i32imm, OpTypes::i32imm, ++ -1, ++ /**/ ++ -1, OpTypes::i32imm, ++ -1, ++ /**/ ++ /**/ ++ /**/ ++ /**/ ++ /**/ ++ -1, -1, ++ -1, -1, -1, ++ /**/ ++ OpTypes::type0, OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, ++ OpTypes::type0, ++ OpTypes::type0, -1, ++ OpTypes::type0, -1, ++ OpTypes::type0, OpTypes::type1, -1, ++ OpTypes::type0, OpTypes::type1, ++ OpTypes::type0, OpTypes::type0, OpTypes::type1, -1, ++ OpTypes::type0, OpTypes::type1, ++ OpTypes::type0, OpTypes::type1, ++ OpTypes::type0, OpTypes::type1, ++ OpTypes::type0, OpTypes::type1, ++ OpTypes::type0, OpTypes::type1, ++ OpTypes::type0, OpTypes::type1, ++ OpTypes::type0, OpTypes::type1, ++ OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, ++ OpTypes::type0, OpTypes::ptype1, ++ OpTypes::type0, OpTypes::ptype1, ++ OpTypes::type0, OpTypes::ptype1, ++ OpTypes::type0, OpTypes::ptype1, OpTypes::ptype1, OpTypes::type2, -1, ++ OpTypes::type0, OpTypes::ptype1, OpTypes::ptype1, OpTypes::type2, -1, ++ OpTypes::type0, OpTypes::ptype1, OpTypes::ptype1, OpTypes::type2, -1, ++ OpTypes::type0, OpTypes::ptype1, ++ OpTypes::ptype0, OpTypes::type1, OpTypes::ptype0, OpTypes::ptype2, -1, ++ OpTypes::type0, OpTypes::type1, OpTypes::type2, OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, OpTypes::ptype1, OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, OpTypes::ptype1, OpTypes::type0, ++ OpTypes::type0, OpTypes::ptype1, OpTypes::type0, ++ OpTypes::type0, OpTypes::ptype1, OpTypes::type0, ++ OpTypes::type0, OpTypes::ptype1, OpTypes::type0, ++ OpTypes::type0, OpTypes::ptype1, OpTypes::type0, ++ OpTypes::type0, OpTypes::ptype1, OpTypes::type0, ++ OpTypes::type0, OpTypes::ptype1, OpTypes::type0, ++ OpTypes::type0, OpTypes::ptype1, OpTypes::type0, ++ OpTypes::type0, OpTypes::ptype1, OpTypes::type0, ++ OpTypes::type0, OpTypes::ptype1, OpTypes::type0, ++ OpTypes::type0, OpTypes::ptype1, OpTypes::type0, ++ OpTypes::type0, OpTypes::ptype1, OpTypes::type0, ++ OpTypes::type0, OpTypes::ptype1, OpTypes::type0, ++ OpTypes::i32imm, OpTypes::i32imm, ++ OpTypes::type0, -1, ++ OpTypes::type0, ++ -1, ++ -1, ++ OpTypes::type0, OpTypes::type1, ++ OpTypes::type0, OpTypes::type1, ++ OpTypes::type0, -1, ++ OpTypes::type0, -1, ++ OpTypes::type0, ++ OpTypes::type0, OpTypes::type1, -1, ++ OpTypes::type0, OpTypes::type1, ++ OpTypes::type0, OpTypes::type0, OpTypes::untyped_imm_0, ++ OpTypes::type0, OpTypes::type1, ++ OpTypes::type0, OpTypes::type0, OpTypes::type1, ++ OpTypes::type0, OpTypes::type0, OpTypes::type1, ++ OpTypes::type0, OpTypes::type0, OpTypes::type1, ++ OpTypes::type0, -1, OpTypes::type1, OpTypes::type1, ++ OpTypes::type0, -1, OpTypes::type1, OpTypes::type1, ++ OpTypes::type0, OpTypes::type1, OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, OpTypes::type1, OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, OpTypes::type1, OpTypes::type0, OpTypes::type0, OpTypes::type1, ++ OpTypes::type0, OpTypes::type1, OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, OpTypes::type1, OpTypes::type0, OpTypes::type0, OpTypes::type1, ++ OpTypes::type0, OpTypes::type1, OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, OpTypes::type1, OpTypes::type0, OpTypes::type0, OpTypes::type1, ++ OpTypes::type0, OpTypes::type1, OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, OpTypes::type1, OpTypes::type0, OpTypes::type0, OpTypes::type1, ++ OpTypes::type0, OpTypes::type1, OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, OpTypes::type1, OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, OpTypes::type0, OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, OpTypes::type0, OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, OpTypes::type1, ++ OpTypes::type0, OpTypes::type1, ++ OpTypes::type0, OpTypes::type1, ++ OpTypes::type0, OpTypes::type1, ++ OpTypes::type0, OpTypes::type1, ++ OpTypes::type0, OpTypes::type1, ++ OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, OpTypes::type0, OpTypes::type1, ++ OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, OpTypes::type0, OpTypes::type1, ++ OpTypes::type0, OpTypes::type0, -1, ++ OpTypes::type0, OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, OpTypes::type0, OpTypes::type0, ++ -1, ++ OpTypes::ptype0, -1, OpTypes::type1, ++ OpTypes::type0, OpTypes::type0, OpTypes::type1, OpTypes::type2, ++ OpTypes::type0, OpTypes::type1, OpTypes::type2, ++ OpTypes::type0, OpTypes::type1, OpTypes::type1, -1, ++ OpTypes::type0, OpTypes::type1, ++ OpTypes::type0, OpTypes::type1, ++ OpTypes::type0, OpTypes::type1, ++ OpTypes::type0, OpTypes::type1, ++ OpTypes::type0, OpTypes::type1, ++ OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, OpTypes::type0, ++ OpTypes::type0, OpTypes::type1, ++ OpTypes::type0, -1, ++ OpTypes::type0, -1, ++ OpTypes::ptype0, OpTypes::type1, OpTypes::i32imm, ++ OpTypes::type0, -1, ++ -1, OpTypes::type0, ++ OpTypes::i32imm, OpTypes::i32imm, ++ OpTypes::i32imm, OpTypes::i32imm, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::GPR32, -1, OpTypes::GPR32, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, OpTypes::GPR32, OpTypes::GPR32, OpTypes::GPR32, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, OpTypes::GPR32, ++ OpTypes::GPR64, -1, OpTypes::GPR64, OpTypes::GPR64, ++ OpTypes::GPR64, -1, OpTypes::GPR64, OpTypes::GPR64, ++ OpTypes::GPR32, -1, OpTypes::GPR32, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, OpTypes::GPR32, OpTypes::GPR32, OpTypes::GPR32, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, OpTypes::GPR32, OpTypes::GPR32, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, ++ OpTypes::GPR64, -1, OpTypes::GPR64, ++ OpTypes::GPR64, -1, OpTypes::GPR64, ++ OpTypes::GPR32, -1, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, OpTypes::GPR32, OpTypes::GPR32, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, OpTypes::GPR32, OpTypes::GPR32, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, ++ OpTypes::GPR64, -1, OpTypes::GPR64, ++ OpTypes::GPR64, -1, OpTypes::GPR64, ++ OpTypes::GPR32, -1, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, OpTypes::GPR32, OpTypes::GPR32, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, OpTypes::GPR32, OpTypes::GPR32, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, ++ OpTypes::GPR64, -1, OpTypes::GPR64, ++ OpTypes::GPR64, -1, OpTypes::GPR64, ++ OpTypes::GPR32, -1, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, OpTypes::GPR32, OpTypes::GPR32, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, OpTypes::GPR32, OpTypes::GPR32, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, ++ OpTypes::GPR64, -1, OpTypes::GPR64, ++ OpTypes::GPR64, -1, OpTypes::GPR64, ++ OpTypes::GPR32, -1, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, OpTypes::GPR32, OpTypes::GPR32, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, OpTypes::GPR32, OpTypes::GPR32, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, ++ OpTypes::GPR64, -1, OpTypes::GPR64, ++ OpTypes::GPR64, -1, OpTypes::GPR64, ++ OpTypes::GPR32, -1, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, OpTypes::GPR32, OpTypes::GPR32, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, OpTypes::GPR32, OpTypes::GPR32, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, ++ OpTypes::GPR64, -1, OpTypes::GPR64, ++ OpTypes::GPR64, -1, OpTypes::GPR64, ++ OpTypes::GPR32, -1, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, OpTypes::GPR32, OpTypes::GPR32, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, OpTypes::GPR32, OpTypes::GPR32, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, ++ OpTypes::GPR64, -1, OpTypes::GPR64, ++ OpTypes::GPR64, -1, OpTypes::GPR64, ++ OpTypes::GPR32, -1, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, OpTypes::GPR32, OpTypes::GPR32, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, OpTypes::GPR32, OpTypes::GPR32, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, ++ OpTypes::GPR64, -1, OpTypes::GPR64, ++ OpTypes::GPR64, -1, OpTypes::GPR64, ++ OpTypes::GPR32, -1, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, OpTypes::GPR32, OpTypes::GPR32, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, OpTypes::GPR32, OpTypes::GPR32, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, ++ OpTypes::GPR64, -1, OpTypes::GPR64, ++ OpTypes::GPR64, -1, OpTypes::GPR64, ++ OpTypes::GPR32, -1, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, OpTypes::GPR32, OpTypes::GPR32, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, OpTypes::GPR32, OpTypes::GPR32, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, ++ OpTypes::GPR64, -1, OpTypes::GPR64, ++ OpTypes::GPR64, -1, OpTypes::GPR64, ++ OpTypes::GPR32, -1, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, OpTypes::GPR32, OpTypes::GPR32, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, OpTypes::GPR32, OpTypes::GPR32, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, ++ OpTypes::GPR64, -1, OpTypes::GPR64, ++ OpTypes::GPR64, -1, OpTypes::GPR64, ++ OpTypes::GPR32, -1, OpTypes::GPR32, ++ OpTypes::GPR32, -1, OpTypes::GPR32, OpTypes::GPR32, OpTypes::GPR32, OpTypes::GPR32, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::FGR64, OpTypes::LSX128D, OpTypes::uimm1_ptr, ++ OpTypes::FGR32, OpTypes::LSX128W, OpTypes::uimm2_ptr, ++ /**/ ++ OpTypes::LSX128D, OpTypes::FGR64, ++ OpTypes::LSX128W, OpTypes::FGR32, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::uimm1, OpTypes::FGR64Opnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::uimm2, OpTypes::FGR32Opnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::GPR64Opnd, OpTypes::GPR32Opnd, ++ OpTypes::LSX128H, OpTypes::LSX128H, OpTypes::GPR64, OpTypes::GPR32, ++ OpTypes::GPR64Opnd, ++ OpTypes::GPR64Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::brtarget, OpTypes::brtarget, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::brtarget, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::brtarget, OpTypes::brtarget, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::brtarget, ++ OpTypes::GPR64Opnd, OpTypes::brtarget, ++ OpTypes::GPR64Opnd, OpTypes::imm64, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::imm64, ++ OpTypes::GPR64Opnd, OpTypes::imm64, ++ OpTypes::GPR64Opnd, OpTypes::imm64, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::imm64, ++ OpTypes::GPR64Opnd, OpTypes::imm64, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::imm64, ++ OpTypes::GPR64Opnd, OpTypes::imm64, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::imm64, ++ OpTypes::GPR64Opnd, OpTypes::imm64, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::imm64, ++ OpTypes::GPR64Opnd, OpTypes::imm64, ++ OpTypes::GPR32Opnd, OpTypes::uimm32_coerced, ++ OpTypes::GPR64Opnd, OpTypes::imm64, ++ OpTypes::GPR32, OpTypes::GPR32, ++ OpTypes::GPR64, OpTypes::GPR64, ++ /**/ ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::calltarget, ++ OpTypes::FGR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::FGR64Opnd, OpTypes::GPR32Opnd, ++ OpTypes::FGR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::FGR32Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR32Opnd, ++ OpTypes::GPR64Opnd, ++ OpTypes::GPR32Opnd, OpTypes::FCFROpnd, OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR64Opnd, OpTypes::FCFROpnd, OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR32Opnd, OpTypes::FCFROpnd, OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR64Opnd, OpTypes::FCFROpnd, OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::FGR64Opnd, OpTypes::GPR32Opnd, OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR32Opnd, OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::FGR32Opnd, OpTypes::GPR32Opnd, OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::GPRTC64Opnd, ++ OpTypes::GPR64Opnd, ++ OpTypes::calltarget, ++ OpTypes::calltarget, ++ /**/ ++ OpTypes::GPR32Opnd, OpTypes::LSX128B, ++ OpTypes::GPR32Opnd, OpTypes::LSX128D, ++ OpTypes::GPR32Opnd, OpTypes::LSX128H, ++ OpTypes::GPR32Opnd, OpTypes::LSX128B, ++ OpTypes::GPR32Opnd, OpTypes::LSX128W, ++ OpTypes::GPR32Opnd, OpTypes::LSX128B, ++ OpTypes::GPR32Opnd, OpTypes::LSX128D, ++ OpTypes::GPR32Opnd, OpTypes::LSX128H, ++ OpTypes::GPR32Opnd, OpTypes::LSX128B, ++ OpTypes::GPR32Opnd, OpTypes::LSX128W, ++ /**/ ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::FGR64, OpTypes::LASX256D, OpTypes::uimm2_ptr, ++ OpTypes::FGR32Opnd, OpTypes::LASX256WOpnd, OpTypes::GPR64Opnd, ++ OpTypes::FGR32, OpTypes::LASX256W, OpTypes::uimm3_ptr, ++ OpTypes::LASX256D, OpTypes::FGR64, ++ OpTypes::LASX256W, OpTypes::FGR32, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::uimm5_ptr, OpTypes::GPR32Opnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::GPR64Opnd, OpTypes::GPR32Opnd, ++ OpTypes::LASX256B, OpTypes::LASX256B, OpTypes::GPR64, OpTypes::GPR32, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, ++ OpTypes::LASX256B, OpTypes::LASX256B, OpTypes::GPR32, OpTypes::GPR32, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::uimm2_ptr, OpTypes::FGR64Opnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::uimm3_ptr, OpTypes::FGR32Opnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::GPR64Opnd, OpTypes::FGR32Opnd, ++ OpTypes::LASX256W, OpTypes::LASX256W, OpTypes::GPR64, OpTypes::GPR32, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::GPR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::LASX256W, OpTypes::LASX256W, OpTypes::GPR32, OpTypes::GPR32, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::uimm4_ptr, OpTypes::GPR64Opnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::uimm4_ptr, OpTypes::GPR32Opnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::GPR32, OpTypes::LASX256B, ++ OpTypes::GPR32, OpTypes::LASX256D, ++ OpTypes::GPR32, OpTypes::LASX256H, ++ OpTypes::GPR32, OpTypes::LASX256B, ++ OpTypes::GPR32, OpTypes::LASX256W, ++ OpTypes::GPR32, OpTypes::LASX256B, ++ OpTypes::GPR32, OpTypes::LASX256D, ++ OpTypes::GPR32, OpTypes::LASX256H, ++ OpTypes::GPR32, OpTypes::LASX256B, ++ OpTypes::GPR32, OpTypes::LASX256W, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::simm12, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::simm12, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::simm12, OpTypes::simm12, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::simm12_32, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::simm12, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::simm16, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::uimm2_plus1, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::uimm2_plus1, ++ OpTypes::GPR64Opnd, OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::uimm2_plus1, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::uimm12, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::uimm12_32, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::jmptarget, ++ OpTypes::jmptarget, ++ OpTypes::FCFROpnd, OpTypes::brtarget, ++ OpTypes::FCFROpnd, OpTypes::brtarget, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::brtarget, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::brtarget, ++ OpTypes::GPR64Opnd, OpTypes::brtarget, ++ OpTypes::GPR32Opnd, OpTypes::brtarget, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::brtarget, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::brtarget, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::brtarget, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::brtarget, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, ++ OpTypes::calltarget, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::brtarget, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::brtarget, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::brtarget, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::brtarget, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::brtarget, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::brtarget, ++ OpTypes::GPR64Opnd, OpTypes::brtarget, ++ OpTypes::GPR32Opnd, OpTypes::brtarget, ++ OpTypes::uimm15, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::uimm6, OpTypes::uimm6, OpTypes::GPR64Opnd, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::uimm5, OpTypes::uimm5, OpTypes::GPR32Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::uimm6, OpTypes::uimm6, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::uimm5, OpTypes::uimm5, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::uimm3, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::uimm2, ++ OpTypes::uimm5, OpTypes::GPR64Opnd, OpTypes::simm12, ++ OpTypes::uimm5, OpTypes::GPR32Opnd, OpTypes::simm12_32, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR32Opnd, OpTypes::GPR64Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR32Opnd, OpTypes::GPR64Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR64Opnd, OpTypes::uimm14, ++ OpTypes::GPR32Opnd, OpTypes::uimm14_32, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::uimm14, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::uimm14_32, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::uimm14, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::uimm14_32, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, ++ OpTypes::uimm15, ++ OpTypes::uimm15, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, ++ /**/ ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, ++ OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FCFROpnd, OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FCFROpnd, OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FCFROpnd, OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FCFROpnd, OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FCFROpnd, OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FCFROpnd, OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FCFROpnd, OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FCFROpnd, OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FCFROpnd, OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FCFROpnd, OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FCFROpnd, OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FCFROpnd, OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FCFROpnd, OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FCFROpnd, OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FCFROpnd, OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FCFROpnd, OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FCFROpnd, OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FCFROpnd, OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FCFROpnd, OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FCFROpnd, OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FCFROpnd, OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FCFROpnd, OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FGR64, OpTypes::FGR64, OpTypes::condcode, ++ OpTypes::FGR32, OpTypes::FGR32, OpTypes::condcode, ++ OpTypes::FCFROpnd, OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FCFROpnd, OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FCFROpnd, OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FCFROpnd, OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FCFROpnd, OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FCFROpnd, OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FCFROpnd, OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FCFROpnd, OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FCFROpnd, OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FCFROpnd, OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FCFROpnd, OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FCFROpnd, OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FCFROpnd, OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FCFROpnd, OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FCFROpnd, OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FCFROpnd, OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FCFROpnd, OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FCFROpnd, OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FCFROpnd, OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FCFROpnd, OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FCFROpnd, OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FCFROpnd, OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FGR64Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FGR32Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FGR64Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FGR32Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FGR64Opnd, OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::FGR32Opnd, OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::FGR64Opnd, OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::FGR32Opnd, OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::FGR64Opnd, -1, -1, ++ OpTypes::FGR32Opnd, -1, -1, ++ OpTypes::FGR64Opnd, -1, OpTypes::simm12, ++ OpTypes::FGR32Opnd, -1, OpTypes::simm12, ++ OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FGR64Opnd, OpTypes::FCFROpnd, OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FGR32Opnd, OpTypes::FCFROpnd, OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FGR64Opnd, OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::FGR32Opnd, OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::FGR64Opnd, OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::FGR32Opnd, OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::FGR64Opnd, -1, -1, ++ OpTypes::FGR32Opnd, -1, -1, ++ OpTypes::FGR64Opnd, -1, OpTypes::simm12, ++ OpTypes::FGR32Opnd, -1, OpTypes::simm12, ++ OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FGR64Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FGR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FGR64Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FGR32Opnd, OpTypes::FGR64Opnd, ++ OpTypes::FGR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::uimm15, ++ OpTypes::uimm15, ++ OpTypes::uimm15, ++ OpTypes::uimm5, OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::simm16, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::calltarget, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::simm16, ++ OpTypes::GPR64Opnd, OpTypes::uimm16_64_relaxed, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::uimm8_64, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::uimm8_64, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR64Opnd, OpTypes::uimm8_64, ++ OpTypes::GPR32Opnd, OpTypes::uimm8_64, ++ OpTypes::GPR64Opnd, -1, OpTypes::simm14_lsl2, ++ OpTypes::GPR64Opnd, -1, OpTypes::simm14_lsl2, ++ OpTypes::GPR32Opnd, -1, OpTypes::simm14_lsl2, ++ OpTypes::GPR64Opnd, -1, -1, ++ OpTypes::GPR32Opnd, -1, -1, ++ OpTypes::GPR64Opnd, -1, -1, ++ OpTypes::GPR32Opnd, -1, -1, ++ OpTypes::GPR64Opnd, -1, -1, ++ OpTypes::GPR64Opnd, -1, -1, ++ OpTypes::GPR64Opnd, -1, -1, ++ OpTypes::GPR32Opnd, -1, -1, ++ OpTypes::GPR64Opnd, -1, -1, ++ OpTypes::GPR32Opnd, -1, -1, ++ OpTypes::GPR64Opnd, -1, -1, ++ OpTypes::GPR32Opnd, -1, -1, ++ OpTypes::GPR64Opnd, -1, -1, ++ OpTypes::GPR64Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR32Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR64Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR32Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR64Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR64Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::simm12, OpTypes::simm12, ++ OpTypes::GPR64Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR32Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR64Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR32Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR64Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR32Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR64Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR64Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR32Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR64Opnd, -1, OpTypes::simm14_lsl2, ++ OpTypes::GPR32Opnd, -1, OpTypes::simm14_lsl2, ++ OpTypes::GPR64Opnd, OpTypes::simm20, ++ OpTypes::GPR32Opnd, OpTypes::simm20_32, ++ OpTypes::GPR64Opnd, OpTypes::simm20, ++ OpTypes::GPR64Opnd, OpTypes::simm20, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::simm20, ++ OpTypes::GPR64Opnd, OpTypes::simm20, ++ OpTypes::GPR64Opnd, OpTypes::simm20, OpTypes::simm20, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::simm12, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::simm12, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::simm12, OpTypes::simm12, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, ++ OpTypes::FGR64Opnd, OpTypes::FCFROpnd, ++ OpTypes::FGR32Opnd, OpTypes::FCFROpnd, ++ OpTypes::GPR64Opnd, OpTypes::FCFROpnd, ++ OpTypes::GPR32Opnd, OpTypes::FCFROpnd, ++ OpTypes::GPR64Opnd, OpTypes::FCSROpnd, ++ OpTypes::FCFROpnd, OpTypes::FGR64Opnd, ++ OpTypes::FCFROpnd, OpTypes::FGR32Opnd, ++ OpTypes::GPR64Opnd, OpTypes::FGR64Opnd, ++ OpTypes::GPR64Opnd, OpTypes::FGR32Opnd, ++ OpTypes::GPR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::GPR32Opnd, OpTypes::FGR32Opnd, ++ OpTypes::FCFROpnd, OpTypes::GPR64Opnd, ++ OpTypes::FCFROpnd, OpTypes::GPR32Opnd, ++ OpTypes::FCSROpnd, OpTypes::GPR64Opnd, ++ OpTypes::FGR64Opnd, OpTypes::GPR32Opnd, ++ OpTypes::FGR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::FGR32Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::uimm12, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::uimm12_32, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::uimm12, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::uimm12, OpTypes::uimm12, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR64Opnd, OpTypes::simm20, ++ OpTypes::GPR32Opnd, OpTypes::simm20_32, ++ OpTypes::GPR64Opnd, OpTypes::simm20, ++ OpTypes::GPR32Opnd, OpTypes::simm20_32, ++ OpTypes::GPR64Opnd, OpTypes::simm20, ++ OpTypes::GPR64Opnd, OpTypes::simm20, OpTypes::simm20, ++ OpTypes::GPR64Opnd, OpTypes::simm20, ++ OpTypes::GPR64Opnd, OpTypes::simm20, ++ OpTypes::GPR32Opnd, OpTypes::simm20_32, ++ OpTypes::GPR64Opnd, -1, OpTypes::simm12, OpTypes::uimm5, ++ OpTypes::GPR32Opnd, -1, OpTypes::simm12, OpTypes::uimm5, ++ OpTypes::GPR64Opnd, OpTypes::simm12, OpTypes::uimm5, ++ OpTypes::GPR32Opnd, OpTypes::simm12, OpTypes::uimm5, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::uimm6, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::uimm5, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, -1, OpTypes::simm14_lsl2, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, -1, OpTypes::simm14_lsl2, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::uimm6, ++ OpTypes::GPR64, OpTypes::GPR32, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::uimm5, ++ OpTypes::GPR64, OpTypes::GPR32, ++ OpTypes::GPR64, OpTypes::GPR64, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR32Opnd, OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR32Opnd, OpTypes::GPR64Opnd, OpTypes::simm12, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::simm12_32, ++ OpTypes::GPR32Opnd, OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR32Opnd, OpTypes::GPR64Opnd, OpTypes::simm12, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::simm12_32, ++ OpTypes::GPR64, OpTypes::GPR64, OpTypes::simm12, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::uimm6, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::uimm5, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::uimm6, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::uimm5, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR64Opnd, -1, OpTypes::simm14_lsl2, ++ OpTypes::GPR64Opnd, -1, OpTypes::simm14_lsl2, ++ OpTypes::GPR32Opnd, -1, OpTypes::simm14_lsl2, ++ OpTypes::GPR64Opnd, -1, -1, ++ OpTypes::GPR32Opnd, -1, -1, ++ OpTypes::GPR64Opnd, -1, -1, ++ OpTypes::GPR64Opnd, -1, -1, ++ OpTypes::GPR32Opnd, -1, -1, ++ OpTypes::GPR64Opnd, -1, -1, ++ OpTypes::GPR32Opnd, -1, -1, ++ OpTypes::GPR64Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR32Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR64Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR64Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR32Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR64Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR32Opnd, -1, OpTypes::simm12, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, ++ OpTypes::uimm15, ++ /**/ ++ /**/ ++ /**/ ++ /**/ ++ /**/ ++ /**/ ++ OpTypes::FGR32Opnd, OpTypes::FGR64Opnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::vsplat_uimm5, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::vsplat_uimm5, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::vsplat_uimm5, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::vsplat_uimm5, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::uimm8, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::vsplat_uimm8, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::uimm3, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::uimm6, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::uimm4, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::uimm5, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::uimm3, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::uimm6, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::uimm4, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::uimm5, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::uimm8, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::vsplat_uimm8, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::uimm3, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::uimm6, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::uimm4, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::uimm5, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::uimm5, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::uimm5, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::uimm8, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::uimm8, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::uimm8, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::uimm8, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::uimm5, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::uimm5, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::GPR32Opnd, OpTypes::uimm4, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::GPR64Opnd, OpTypes::uimm1, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::GPR32Opnd, OpTypes::uimm3, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::GPR32Opnd, OpTypes::uimm2, ++ OpTypes::LSX128BOpnd, -1, OpTypes::simm12, ++ OpTypes::LSX128DOpnd, OpTypes::simm13Op, ++ OpTypes::LSX128BOpnd, OpTypes::vsplat_simm10, ++ OpTypes::LSX128DOpnd, OpTypes::vsplat_simm10, ++ OpTypes::LSX128HOpnd, OpTypes::vsplat_simm10, ++ OpTypes::LSX128WOpnd, OpTypes::vsplat_simm10, ++ OpTypes::LSX128BOpnd, -1, OpTypes::simm12, ++ OpTypes::LSX128DOpnd, -1, OpTypes::simm9_lsl3, ++ OpTypes::LSX128HOpnd, -1, OpTypes::simm11_lsl1, ++ OpTypes::LSX128WOpnd, -1, OpTypes::simm10_lsl2, ++ OpTypes::LSX128BOpnd, -1, OpTypes::GPR64Opnd, ++ OpTypes::LSX128DOpnd, -1, OpTypes::simm12, ++ OpTypes::LSX128HOpnd, -1, OpTypes::simm12, ++ OpTypes::LSX128WOpnd, -1, OpTypes::simm12, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::simm5_32, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::uimm5, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::vsplat_uimm5, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::vsplat_simm5, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::simm5_32, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::uimm5, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::vsplat_uimm5, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::vsplat_simm5, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::simm5_32, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::uimm5, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::vsplat_uimm5, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::vsplat_simm5, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::simm5_32, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::uimm5, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::vsplat_uimm5, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::vsplat_simm5, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::simm5_32, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::vsplat_uimm5, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::vsplat_simm5, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::simm5_32, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::vsplat_uimm5, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::vsplat_simm5, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::simm5_32, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::vsplat_uimm5, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::vsplat_simm5, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::simm5_32, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::vsplat_uimm5, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::vsplat_simm5, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::uimm8, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::uimm8, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::uimm8, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::GPR32Opnd, OpTypes::LSX128BOpnd, OpTypes::uimm4_ptr, ++ OpTypes::GPR32Opnd, OpTypes::LSX128BOpnd, OpTypes::uimm4_ptr, ++ OpTypes::GPR64Opnd, OpTypes::LSX128DOpnd, OpTypes::uimm1_ptr, ++ OpTypes::GPR64Opnd, OpTypes::LSX128DOpnd, OpTypes::uimm1, ++ OpTypes::GPR32Opnd, OpTypes::LSX128HOpnd, OpTypes::uimm3_ptr, ++ OpTypes::GPR32Opnd, OpTypes::LSX128HOpnd, OpTypes::uimm3_ptr, ++ OpTypes::GPR32Opnd, OpTypes::LSX128WOpnd, OpTypes::uimm2_ptr, ++ OpTypes::GPR32Opnd, OpTypes::LSX128WOpnd, OpTypes::uimm2_ptr, ++ OpTypes::LSX128BOpnd, OpTypes::GPR32Opnd, ++ OpTypes::LSX128DOpnd, OpTypes::GPR64Opnd, ++ OpTypes::LSX128HOpnd, OpTypes::GPR32Opnd, ++ OpTypes::LSX128WOpnd, OpTypes::GPR32Opnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::vsplat_uimm4, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::vsplat_uimm1, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::vsplat_uimm3, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::vsplat_uimm2, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::GPR32Opnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::GPR32Opnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::GPR32Opnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::GPR32Opnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::uimm3, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::uimm6, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::uimm4, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::uimm5, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::uimm3, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::uimm3, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::uimm6, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::uimm6, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::uimm4, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::uimm4, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::uimm5, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::uimm5, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::simm5_32, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::vsplat_simm5, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::simm5_32, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::vsplat_simm5, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::simm5_32, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::vsplat_simm5, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::simm5_32, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::vsplat_simm5, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::FCFROpnd, OpTypes::LSX128BOpnd, ++ OpTypes::FCFROpnd, OpTypes::LSX128DOpnd, ++ OpTypes::FCFROpnd, OpTypes::LSX128HOpnd, ++ OpTypes::FCFROpnd, OpTypes::LSX128WOpnd, ++ OpTypes::FCFROpnd, OpTypes::LSX128BOpnd, ++ OpTypes::FCFROpnd, OpTypes::LSX128DOpnd, ++ OpTypes::FCFROpnd, OpTypes::LSX128HOpnd, ++ OpTypes::FCFROpnd, OpTypes::LSX128WOpnd, ++ OpTypes::FCFROpnd, OpTypes::LSX128BOpnd, ++ OpTypes::FCFROpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::uimm8, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::uimm8, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::uimm8, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::uimm8, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::simm5_32, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::uimm5, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::vsplat_uimm5, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::vsplat_simm5, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::simm5_32, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::uimm5, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::vsplat_uimm5, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::vsplat_simm5, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::simm5_32, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::uimm5, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::vsplat_uimm5, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::vsplat_simm5, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::simm5_32, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::uimm5, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::vsplat_uimm5, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::vsplat_simm5, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::vsplat_uimm3, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::vsplat_uimm6, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::vsplat_uimm4, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::vsplat_uimm5, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128WOpnd, OpTypes::uimm5, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128WOpnd, OpTypes::uimm5, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128BOpnd, OpTypes::uimm3, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128BOpnd, OpTypes::uimm3, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128HOpnd, OpTypes::uimm4, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128HOpnd, OpTypes::uimm4, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::simm5_32, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::uimm5, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::vsplat_uimm5, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::vsplat_simm5, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::simm5_32, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::uimm5, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::vsplat_uimm5, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::vsplat_simm5, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::simm5_32, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::uimm5, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::vsplat_uimm5, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::vsplat_simm5, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::simm5_32, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::uimm5, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::vsplat_uimm5, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::vsplat_simm5, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::uimm3, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::vsplat_uimm3, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::uimm6, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::vsplat_uimm6, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::uimm4, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::vsplat_uimm4, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::uimm5, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::vsplat_uimm5, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::uimm4, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::uimm7, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::uimm5, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::uimm6, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::uimm3, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::uimm6, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::uimm4, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::uimm5, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::uimm4, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::uimm7, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::uimm5, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::uimm6, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::vsplat_uimm3, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::vsplat_uimm6, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::vsplat_uimm4, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::vsplat_uimm5, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::uimm4, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::uimm7, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::uimm5, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::uimm6, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::uimm3, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::uimm6, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::uimm4, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::uimm5, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::uimm4, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::uimm7, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::uimm5, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::uimm6, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::uimm4, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::uimm4, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::uimm7, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::uimm7, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::uimm5, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::uimm5, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::uimm6, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::uimm6, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::uimm4, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::uimm4, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::uimm7, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::uimm7, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::uimm5, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::uimm5, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::uimm6, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::uimm6, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::uimm4, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::uimm4, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::uimm7, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::uimm7, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::uimm5, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::uimm5, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::uimm6, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::uimm6, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::uimm4, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::uimm4, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::uimm7, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::uimm7, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::uimm5, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::uimm5, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::uimm6, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::uimm6, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128BOpnd, -1, OpTypes::simm12, ++ OpTypes::LSX128BOpnd, -1, OpTypes::simm8_32, OpTypes::uimm4, ++ OpTypes::LSX128DOpnd, -1, OpTypes::immSExt8_3_O, OpTypes::uimm1, ++ OpTypes::LSX128HOpnd, -1, OpTypes::immSExt8_1_O, OpTypes::uimm3, ++ OpTypes::LSX128WOpnd, -1, OpTypes::immSExt8_2_O, OpTypes::uimm2, ++ OpTypes::LSX128BOpnd, -1, OpTypes::GPR64Opnd, ++ OpTypes::LSX128DOpnd, -1, OpTypes::simm12, ++ OpTypes::LSX128HOpnd, -1, OpTypes::simm12, ++ OpTypes::LSX128WOpnd, -1, OpTypes::simm12, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::vsplat_uimm5, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::vsplat_uimm5, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::vsplat_uimm5, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::vsplat_uimm5, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, OpTypes::LSX128HOpnd, ++ OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, OpTypes::LSX128DOpnd, ++ OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, OpTypes::LSX128WOpnd, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::uimm8, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::vsplat_uimm8, ++ OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, OpTypes::LSX128BOpnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR64Opnd, OpTypes::uimm12, ++ OpTypes::GPR32Opnd, OpTypes::GPR32Opnd, OpTypes::uimm12_32, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::uimm5, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::vsplat_uimm5, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::uimm5, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::vsplat_uimm5, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::uimm5, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::vsplat_uimm5, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::uimm5, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::vsplat_uimm5, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::uimm8, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::vsplat_uimm8, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::uimm3, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::uimm6, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::uimm4, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::uimm5, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::uimm3, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::uimm6, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::uimm4, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::uimm5, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::uimm8, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::vsplat_uimm8, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::uimm3, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::uimm6, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::uimm4, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::uimm5, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::uimm5, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::uimm5, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::uimm8, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::uimm8, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::uimm8, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::uimm8, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::uimm5, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::uimm5, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::uimm5, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::GPR64Opnd, OpTypes::uimm2_ptr, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::GPR32Opnd, OpTypes::uimm3_ptr, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::uimm2, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::uimm3, ++ OpTypes::LASX256BOpnd, -1, OpTypes::simm12, ++ OpTypes::LASX256DOpnd, OpTypes::simm13Op, ++ OpTypes::LASX256BOpnd, OpTypes::vsplat_simm10, ++ OpTypes::LASX256DOpnd, OpTypes::vsplat_simm10, ++ OpTypes::LASX256HOpnd, OpTypes::vsplat_simm10, ++ OpTypes::LASX256WOpnd, OpTypes::vsplat_simm10, ++ OpTypes::LASX256BOpnd, -1, OpTypes::simm12, ++ OpTypes::LASX256DOpnd, -1, OpTypes::simm9_lsl3, ++ OpTypes::LASX256HOpnd, -1, OpTypes::simm11_lsl1, ++ OpTypes::LASX256WOpnd, -1, OpTypes::simm10_lsl2, ++ OpTypes::LASX256BOpnd, -1, OpTypes::GPR64Opnd, ++ OpTypes::LASX256DOpnd, -1, OpTypes::simm12, ++ OpTypes::LASX256HOpnd, -1, OpTypes::simm12, ++ OpTypes::LASX256WOpnd, -1, OpTypes::simm12, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::simm5_32, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::uimm5, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::vsplat_uimm5, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::vsplat_simm5, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::simm5_32, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::uimm5, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::vsplat_uimm5, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::vsplat_simm5, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::simm5_32, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::uimm5, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::vsplat_uimm5, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::vsplat_simm5, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::simm5_32, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::uimm5, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::vsplat_uimm5, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::vsplat_simm5, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::simm5_32, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::uimm5, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::vsplat_uimm5, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::vsplat_simm5, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::simm5_32, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::uimm5, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::vsplat_uimm5, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::vsplat_simm5, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::simm5_32, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::uimm5, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::vsplat_uimm5, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::vsplat_simm5, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::simm5_32, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::uimm5, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::vsplat_uimm5, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::vsplat_simm5, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::uimm8, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::uimm8, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::uimm8, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::uimm8, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::uimm8, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::uimm8, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::uimm8, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::uimm8, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::GPR64Opnd, OpTypes::LASX256DOpnd, OpTypes::uimm2_ptr, ++ OpTypes::GPR64Opnd, OpTypes::LASX256DOpnd, OpTypes::uimm2_ptr, ++ OpTypes::GPR32Opnd, OpTypes::LASX256WOpnd, OpTypes::uimm3_ptr, ++ OpTypes::GPR32Opnd, OpTypes::LASX256WOpnd, OpTypes::uimm3_ptr, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::uimm2, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::uimm3, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::uimm4, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::uimm1, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::uimm3, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::uimm2, ++ OpTypes::LASX256BOpnd, OpTypes::GPR32Opnd, ++ OpTypes::LASX256DOpnd, OpTypes::GPR64Opnd, ++ OpTypes::LASX256HOpnd, OpTypes::GPR32Opnd, ++ OpTypes::LASX256WOpnd, OpTypes::GPR32Opnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::GPR32Opnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::GPR32Opnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::GPR32Opnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::GPR32Opnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::GPR64Opnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::uimm3, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::uimm6, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::uimm4, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::uimm5, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::uimm3, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::uimm3, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::uimm6, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::uimm6, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::uimm4, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::uimm4, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::uimm5, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::uimm5, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::simm5_32, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::vsplat_simm5, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::simm5_32, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::vsplat_simm5, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::simm5_32, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::vsplat_simm5, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::simm5_32, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::vsplat_simm5, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::FCFROpnd, OpTypes::LASX256BOpnd, ++ OpTypes::FCFROpnd, OpTypes::LASX256DOpnd, ++ OpTypes::FCFROpnd, OpTypes::LASX256HOpnd, ++ OpTypes::FCFROpnd, OpTypes::LASX256WOpnd, ++ OpTypes::FCFROpnd, OpTypes::LASX256BOpnd, ++ OpTypes::FCFROpnd, OpTypes::LASX256DOpnd, ++ OpTypes::FCFROpnd, OpTypes::LASX256HOpnd, ++ OpTypes::FCFROpnd, OpTypes::LASX256WOpnd, ++ OpTypes::FCFROpnd, OpTypes::LASX256BOpnd, ++ OpTypes::FCFROpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::uimm8, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::uimm8, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::uimm8, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::uimm8, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::simm5_32, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::uimm5, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::vsplat_uimm5, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::vsplat_simm5, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::simm5_32, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::uimm5, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::vsplat_uimm5, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::vsplat_simm5, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::simm5_32, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::uimm5, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::vsplat_uimm5, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::vsplat_simm5, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::simm5_32, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::uimm5, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::vsplat_uimm5, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::vsplat_simm5, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::uimm3, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::vsplat_uimm3, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::uimm6, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::vsplat_uimm6, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::uimm4, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::vsplat_uimm4, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::uimm5, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::vsplat_uimm5, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256WOpnd, OpTypes::uimm5, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256WOpnd, OpTypes::uimm5, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256BOpnd, OpTypes::uimm3, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256BOpnd, OpTypes::uimm3, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256HOpnd, OpTypes::uimm4, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256HOpnd, OpTypes::uimm4, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::simm5_32, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::uimm5, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::vsplat_uimm5, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::vsplat_simm5, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::simm5_32, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::uimm5, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::vsplat_uimm5, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::vsplat_simm5, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::simm5_32, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::uimm5, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::vsplat_uimm5, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::vsplat_simm5, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::simm5_32, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::uimm5, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::vsplat_uimm5, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::vsplat_simm5, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::uimm3, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::vsplat_uimm3, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::uimm6, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::vsplat_uimm6, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::uimm4, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::vsplat_uimm4, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::uimm5, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::vsplat_uimm5, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::uimm4, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::uimm7, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::uimm5, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::uimm6, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::uimm3, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::uimm6, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::uimm4, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::uimm5, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::uimm4, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::uimm7, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::uimm5, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::uimm6, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::uimm3, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::vsplat_uimm3, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::uimm6, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::vsplat_uimm6, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::uimm4, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::vsplat_uimm4, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::uimm5, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::vsplat_uimm5, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::uimm4, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::uimm7, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::uimm5, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::uimm6, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::uimm3, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::uimm6, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::uimm4, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::uimm5, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::uimm4, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::uimm7, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::uimm5, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::uimm6, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::uimm4, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::uimm4, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::uimm7, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::uimm7, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::uimm5, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::uimm5, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::uimm6, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::uimm6, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::uimm4, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::uimm4, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::uimm7, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::uimm7, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::uimm5, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::uimm5, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::uimm6, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::uimm6, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::uimm4, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::uimm4, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::uimm7, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::uimm7, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::uimm5, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::uimm5, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::uimm6, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::uimm6, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::uimm4, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::uimm4, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::uimm7, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::uimm7, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::uimm5, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::uimm5, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::uimm6, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::uimm6, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256BOpnd, -1, OpTypes::simm12, ++ OpTypes::LASX256BOpnd, -1, OpTypes::simm8_32, OpTypes::uimm5, ++ OpTypes::LASX256DOpnd, -1, OpTypes::immSExt8_3_O, OpTypes::uimm2, ++ OpTypes::LASX256HOpnd, -1, OpTypes::immSExt8_1_O, OpTypes::uimm4, ++ OpTypes::LASX256WOpnd, -1, OpTypes::immSExt8_2_O, OpTypes::uimm3, ++ OpTypes::LASX256BOpnd, -1, OpTypes::GPR64Opnd, ++ OpTypes::LASX256DOpnd, -1, OpTypes::simm12, ++ OpTypes::LASX256HOpnd, -1, OpTypes::simm12, ++ OpTypes::LASX256WOpnd, -1, OpTypes::simm12, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::uimm5, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::vsplat_uimm5, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::uimm5, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::vsplat_uimm5, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::uimm5, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::vsplat_uimm5, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::uimm5, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::vsplat_uimm5, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, OpTypes::LASX256HOpnd, ++ OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, OpTypes::LASX256DOpnd, ++ OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, OpTypes::LASX256WOpnd, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::uimm8, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::vsplat_uimm8, ++ OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, OpTypes::LASX256BOpnd, ++ OpTypes::GPR64Opnd, OpTypes::GPR32Opnd, OpTypes::uimm6, OpTypes::uimm6, ++ }; ++ return OpcodeOperandTypes[Offsets[Opcode] + OpIdx]; ++} ++} // end namespace LoongArch ++} // end namespace llvm ++#endif // GET_INSTRINFO_OPERAND_TYPE ++ +diff --git a/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenInstrInfo.inc.d b/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenInstrInfo.inc.d +new file mode 100644 +index 00000000000..33e59b98818 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenInstrInfo.inc.d +@@ -0,0 +1 @@ ++lib/Target/LoongArch/LoongArchGenInstrInfo.inc: /mnt/wangqing/work/llvm-project/llvm/include/llvm/CodeGen/SDNodeProperties.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/CodeGen/ValueTypes.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/Intrinsics.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsAArch64.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsAMDGPU.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsARM.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsBPF.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsHexagon.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsLoongArch.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsMips.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsNVVM.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsPowerPC.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsRISCV.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsSystemZ.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsWebAssembly.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsX86.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsXCore.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/GenericOpcodes.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/GlobalISel/RegisterBank.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/GlobalISel/SelectionDAGCompat.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/GlobalISel/Target.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/Target.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetCallingConv.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetInstrPredicate.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetItinerary.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetPfmCounters.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetSchedule.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetSelectionDAG.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArch32InstrInfo.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchCallingConv.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchInstrFormats.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchInstrInfo.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchInstrInfoF.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchLASXInstrFormats.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchLASXInstrInfo.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchLSXInstrFormats.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchLSXInstrInfo.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchRegisterInfo.td +diff --git a/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenMCCodeEmitter.inc b/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenMCCodeEmitter.inc +new file mode 100644 +index 00000000000..82c1b048b94 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenMCCodeEmitter.inc +@@ -0,0 +1,8988 @@ ++/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\ ++|* *| ++|* Machine Code Emitter *| ++|* *| ++|* Automatically generated file, do not edit! *| ++|* *| ++\*===----------------------------------------------------------------------===*/ ++ ++uint64_t LoongArchMCCodeEmitter::getBinaryCodeForInstr(const MCInst &MI, ++ SmallVectorImpl &Fixups, ++ const MCSubtargetInfo &STI) const { ++ static const uint64_t InstBits[] = { ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(0), ++ UINT64_C(46137344), // ADDI_D ++ UINT64_C(46137344), // ADDI_D_rri ++ UINT64_C(46137344), // ADDI_D_rrii ++ UINT64_C(41943040), // ADDI_W ++ UINT64_C(41943040), // ADDI_W64 ++ UINT64_C(268435456), // ADDU16I_D ++ UINT64_C(1081344), // ADD_D ++ UINT64_C(1081344), // ADD_D_rrr ++ UINT64_C(1048576), // ADD_W ++ UINT64_C(2883584), // ALSL_D ++ UINT64_C(262144), // ALSL_W ++ UINT64_C(393216), // ALSL_WU ++ UINT64_C(945913856), // AMADD_D ++ UINT64_C(946503680), // AMADD_DB_D ++ UINT64_C(946470912), // AMADD_DB_W ++ UINT64_C(945881088), // AMADD_W ++ UINT64_C(945979392), // AMAND_D ++ UINT64_C(946569216), // AMAND_DB_D ++ UINT64_C(946536448), // AMAND_DB_W ++ UINT64_C(945946624), // AMAND_W ++ UINT64_C(946176000), // AMMAX_D ++ UINT64_C(946765824), // AMMAX_DB_D ++ UINT64_C(946896896), // AMMAX_DB_DU ++ UINT64_C(946733056), // AMMAX_DB_W ++ UINT64_C(946864128), // AMMAX_DB_WU ++ UINT64_C(946307072), // AMMAX_DU ++ UINT64_C(946143232), // AMMAX_W ++ UINT64_C(946274304), // AMMAX_WU ++ UINT64_C(946241536), // AMMIN_D ++ UINT64_C(946831360), // AMMIN_DB_D ++ UINT64_C(946962432), // AMMIN_DB_DU ++ UINT64_C(946798592), // AMMIN_DB_W ++ UINT64_C(946929664), // AMMIN_DB_WU ++ UINT64_C(946372608), // AMMIN_DU ++ UINT64_C(946208768), // AMMIN_W ++ UINT64_C(946339840), // AMMIN_WU ++ UINT64_C(946044928), // AMOR_D ++ UINT64_C(946634752), // AMOR_DB_D ++ UINT64_C(946601984), // AMOR_DB_W ++ UINT64_C(946012160), // AMOR_W ++ UINT64_C(945848320), // AMSWAP_D ++ UINT64_C(946438144), // AMSWAP_DB_D ++ UINT64_C(946405376), // AMSWAP_DB_W ++ UINT64_C(945815552), // AMSWAP_W ++ UINT64_C(946110464), // AMXOR_D ++ UINT64_C(946700288), // AMXOR_DB_D ++ UINT64_C(946667520), // AMXOR_DB_W ++ UINT64_C(946077696), // AMXOR_W ++ UINT64_C(1343488), // AND ++ UINT64_C(1343488), // AND32 ++ UINT64_C(54525952), // ANDI ++ UINT64_C(54525952), // ANDI32 ++ UINT64_C(1474560), // ANDN ++ UINT64_C(1474560), // ANDN32 ++ UINT64_C(98304), // ASRTGT_D ++ UINT64_C(65536), // ASRTLE_D ++ UINT64_C(1342177280), // B ++ UINT64_C(1342177280), // B32 ++ UINT64_C(1207959552), // BCEQZ ++ UINT64_C(1207959808), // BCNEZ ++ UINT64_C(1476395008), // BEQ ++ UINT64_C(1476395008), // BEQ32 ++ UINT64_C(1073741824), // BEQZ ++ UINT64_C(1073741824), // BEQZ32 ++ UINT64_C(1677721600), // BGE ++ UINT64_C(1677721600), // BGE32 ++ UINT64_C(1811939328), // BGEU ++ UINT64_C(1811939328), // BGEU32 ++ UINT64_C(18432), // BITREV_4B ++ UINT64_C(19456), // BITREV_8B ++ UINT64_C(21504), // BITREV_D ++ UINT64_C(20480), // BITREV_W ++ UINT64_C(1409286144), // BL ++ UINT64_C(1610612736), // BLT ++ UINT64_C(1610612736), // BLT32 ++ UINT64_C(1744830464), // BLTU ++ UINT64_C(1744830464), // BLTU32 ++ UINT64_C(1543503872), // BNE ++ UINT64_C(1543503872), // BNE32 ++ UINT64_C(1140850688), // BNEZ ++ UINT64_C(1140850688), // BNEZ32 ++ UINT64_C(2752512), // BREAK ++ UINT64_C(8388608), // BSTRINS_D ++ UINT64_C(6291456), // BSTRINS_W ++ UINT64_C(12582912), // BSTRPICK_D ++ UINT64_C(6324224), // BSTRPICK_W ++ UINT64_C(786432), // BYTEPICK_D ++ UINT64_C(524288), // BYTEPICK_W ++ UINT64_C(100663296), // CACOP ++ UINT64_C(100663296), // CACOP32 ++ UINT64_C(8192), // CLO_D ++ UINT64_C(4096), // CLO_W ++ UINT64_C(9216), // CLZ_D ++ UINT64_C(5120), // CLZ_W ++ UINT64_C(27648), // CPUCFG ++ UINT64_C(2490368), // CRCC_W_B_W ++ UINT64_C(2588672), // CRCC_W_D_W ++ UINT64_C(2523136), // CRCC_W_H_W ++ UINT64_C(2555904), // CRCC_W_W_W ++ UINT64_C(2359296), // CRC_W_B_W ++ UINT64_C(2457600), // CRC_W_D_W ++ UINT64_C(2392064), // CRC_W_H_W ++ UINT64_C(2424832), // CRC_W_W_W ++ UINT64_C(67108864), // CSRRD ++ UINT64_C(67108864), // CSRRD32 ++ UINT64_C(67108896), // CSRWR ++ UINT64_C(67108896), // CSRWR32 ++ UINT64_C(67108864), // CSRXCHG ++ UINT64_C(67108864), // CSRXCHG32 ++ UINT64_C(10240), // CTO_D ++ UINT64_C(6144), // CTO_W ++ UINT64_C(11264), // CTZ_D ++ UINT64_C(7168), // CTZ_W ++ UINT64_C(946995200), // DBAR ++ UINT64_C(2785280), // DBCL ++ UINT64_C(2228224), // DIV_D ++ UINT64_C(2293760), // DIV_DU ++ UINT64_C(2097152), // DIV_W ++ UINT64_C(2162688), // DIV_WU ++ UINT64_C(105396224), // ERTN ++ UINT64_C(23552), // EXT_W_B ++ UINT64_C(23552), // EXT_W_B32 ++ UINT64_C(22528), // EXT_W_H ++ UINT64_C(22528), // EXT_W_H32 ++ UINT64_C(18089984), // FABS_D ++ UINT64_C(18088960), // FABS_S ++ UINT64_C(16842752), // FADD_D ++ UINT64_C(16809984), // FADD_S ++ UINT64_C(18102272), // FCLASS_D ++ UINT64_C(18101248), // FCLASS_S ++ UINT64_C(203423744), // FCMP_CAF_D ++ UINT64_C(202375168), // FCMP_CAF_S ++ UINT64_C(203554816), // FCMP_CEQ_D ++ UINT64_C(202506240), // FCMP_CEQ_S ++ UINT64_C(203620352), // FCMP_CLE_D ++ UINT64_C(202571776), // FCMP_CLE_S ++ UINT64_C(203489280), // FCMP_CLT_D ++ UINT64_C(202440704), // FCMP_CLT_S ++ UINT64_C(203948032), // FCMP_CNE_D ++ UINT64_C(202899456), // FCMP_CNE_S ++ UINT64_C(204079104), // FCMP_COR_D ++ UINT64_C(203030528), // FCMP_COR_S ++ UINT64_C(203816960), // FCMP_CUEQ_D ++ UINT64_C(202768384), // FCMP_CUEQ_S ++ UINT64_C(203882496), // FCMP_CULE_D ++ UINT64_C(202833920), // FCMP_CULE_S ++ UINT64_C(203751424), // FCMP_CULT_D ++ UINT64_C(202702848), // FCMP_CULT_S ++ UINT64_C(204210176), // FCMP_CUNE_D ++ UINT64_C(203161600), // FCMP_CUNE_S ++ UINT64_C(203685888), // FCMP_CUN_D ++ UINT64_C(202637312), // FCMP_CUN_S ++ UINT64_C(203423744), // FCMP_D64 ++ UINT64_C(202375168), // FCMP_S32 ++ UINT64_C(203456512), // FCMP_SAF_D ++ UINT64_C(202407936), // FCMP_SAF_S ++ UINT64_C(203587584), // FCMP_SEQ_D ++ UINT64_C(202539008), // FCMP_SEQ_S ++ UINT64_C(203653120), // FCMP_SLE_D ++ UINT64_C(202604544), // FCMP_SLE_S ++ UINT64_C(203522048), // FCMP_SLT_D ++ UINT64_C(202473472), // FCMP_SLT_S ++ UINT64_C(203980800), // FCMP_SNE_D ++ UINT64_C(202932224), // FCMP_SNE_S ++ UINT64_C(204111872), // FCMP_SOR_D ++ UINT64_C(203063296), // FCMP_SOR_S ++ UINT64_C(203849728), // FCMP_SUEQ_D ++ UINT64_C(202801152), // FCMP_SUEQ_S ++ UINT64_C(203915264), // FCMP_SULE_D ++ UINT64_C(202866688), // FCMP_SULE_S ++ UINT64_C(203784192), // FCMP_SULT_D ++ UINT64_C(202735616), // FCMP_SULT_S ++ UINT64_C(204242944), // FCMP_SUNE_D ++ UINT64_C(203194368), // FCMP_SUNE_S ++ UINT64_C(203718656), // FCMP_SUN_D ++ UINT64_C(202670080), // FCMP_SUN_S ++ UINT64_C(18022400), // FCOPYSIGN_D ++ UINT64_C(17989632), // FCOPYSIGN_S ++ UINT64_C(18424832), // FCVT_D_S ++ UINT64_C(18421760), // FCVT_S_D ++ UINT64_C(17235968), // FDIV_D ++ UINT64_C(17203200), // FDIV_S ++ UINT64_C(18688000), // FFINT_D_L ++ UINT64_C(18685952), // FFINT_D_W ++ UINT64_C(18683904), // FFINT_S_L ++ UINT64_C(18681856), // FFINT_S_W ++ UINT64_C(947159040), // FLDGT_D ++ UINT64_C(947126272), // FLDGT_S ++ UINT64_C(947224576), // FLDLE_D ++ UINT64_C(947191808), // FLDLE_S ++ UINT64_C(942931968), // FLDX_D ++ UINT64_C(942669824), // FLDX_S ++ UINT64_C(729808896), // FLD_D ++ UINT64_C(721420288), // FLD_S ++ UINT64_C(18098176), // FLOGB_D ++ UINT64_C(18097152), // FLOGB_S ++ UINT64_C(136314880), // FMADD_D ++ UINT64_C(135266304), // FMADD_S ++ UINT64_C(17629184), // FMAXA_D ++ UINT64_C(17596416), // FMAXA_S ++ UINT64_C(17367040), // FMAX_D ++ UINT64_C(17334272), // FMAX_S ++ UINT64_C(17760256), // FMINA_D ++ UINT64_C(17727488), // FMINA_S ++ UINT64_C(17498112), // FMIN_D ++ UINT64_C(17465344), // FMIN_S ++ UINT64_C(18126848), // FMOV_D ++ UINT64_C(18125824), // FMOV_S ++ UINT64_C(140509184), // FMSUB_D ++ UINT64_C(139460608), // FMSUB_S ++ UINT64_C(17104896), // FMUL_D ++ UINT64_C(17072128), // FMUL_S ++ UINT64_C(18094080), // FNEG_D ++ UINT64_C(18093056), // FNEG_S ++ UINT64_C(144703488), // FNMADD_D ++ UINT64_C(143654912), // FNMADD_S ++ UINT64_C(148897792), // FNMSUB_D ++ UINT64_C(147849216), // FNMSUB_S ++ UINT64_C(18110464), // FRECIP_D ++ UINT64_C(18109440), // FRECIP_S ++ UINT64_C(18761728), // FRINT_D ++ UINT64_C(18760704), // FRINT_S ++ UINT64_C(18114560), // FRSQRT_D ++ UINT64_C(18113536), // FRSQRT_S ++ UINT64_C(17891328), // FSCALEB_D ++ UINT64_C(17858560), // FSCALEB_S ++ UINT64_C(218103808), // FSEL_T_D ++ UINT64_C(218103808), // FSEL_T_S ++ UINT64_C(18106368), // FSQRT_D ++ UINT64_C(18105344), // FSQRT_S ++ UINT64_C(947290112), // FSTGT_D ++ UINT64_C(947257344), // FSTGT_S ++ UINT64_C(947355648), // FSTLE_D ++ UINT64_C(947322880), // FSTLE_S ++ UINT64_C(943456256), // FSTX_D ++ UINT64_C(943194112), // FSTX_S ++ UINT64_C(734003200), // FST_D ++ UINT64_C(725614592), // FST_S ++ UINT64_C(16973824), // FSUB_D ++ UINT64_C(16941056), // FSUB_S ++ UINT64_C(18491392), // FTINTRM_L_D ++ UINT64_C(18490368), // FTINTRM_L_S ++ UINT64_C(18483200), // FTINTRM_W_D ++ UINT64_C(18482176), // FTINTRM_W_S ++ UINT64_C(18540544), // FTINTRNE_L_D ++ UINT64_C(18539520), // FTINTRNE_L_S ++ UINT64_C(18532352), // FTINTRNE_W_D ++ UINT64_C(18531328), // FTINTRNE_W_S ++ UINT64_C(18507776), // FTINTRP_L_D ++ UINT64_C(18506752), // FTINTRP_L_S ++ UINT64_C(18499584), // FTINTRP_W_D ++ UINT64_C(18498560), // FTINTRP_W_S ++ UINT64_C(18524160), // FTINTRZ_L_D ++ UINT64_C(18523136), // FTINTRZ_L_S ++ UINT64_C(18514944), // FTINTRZ_W_S ++ UINT64_C(18556928), // FTINT_L_D ++ UINT64_C(18555904), // FTINT_L_S ++ UINT64_C(18548736), // FTINT_W_D ++ UINT64_C(18547712), // FTINT_W_S ++ UINT64_C(2850816), // HYPCALL ++ UINT64_C(947027968), // IBAR ++ UINT64_C(105414656), // IDLE ++ UINT64_C(105480192), // INVTLB ++ UINT64_C(105381888), // IOCSRRD_B ++ UINT64_C(105381888), // IOCSRRD_B32 ++ UINT64_C(105384960), // IOCSRRD_D ++ UINT64_C(105382912), // IOCSRRD_H ++ UINT64_C(105382912), // IOCSRRD_H32 ++ UINT64_C(105383936), // IOCSRRD_W ++ UINT64_C(105383936), // IOCSRRD_W32 ++ UINT64_C(105385984), // IOCSRWR_B32 ++ UINT64_C(105389056), // IOCSRWR_D ++ UINT64_C(105387008), // IOCSRWR_H32 ++ UINT64_C(105388032), // IOCSRWR_W32 ++ UINT64_C(1275068416), // JIRL ++ UINT64_C(1275068416), // JIRL32 ++ UINT64_C(1275068416), // JIRLR ++ UINT64_C(1275068416), // JIRL_CALL ++ UINT64_C(1006632960), // LAPCREL ++ UINT64_C(104857600), // LDDIR ++ UINT64_C(104857600), // LDDIR32 ++ UINT64_C(947388416), // LDGT_B ++ UINT64_C(947486720), // LDGT_D ++ UINT64_C(947421184), // LDGT_H ++ UINT64_C(947453952), // LDGT_W ++ UINT64_C(947519488), // LDLE_B ++ UINT64_C(947617792), // LDLE_D ++ UINT64_C(947552256), // LDLE_H ++ UINT64_C(947585024), // LDLE_W ++ UINT64_C(105119744), // LDPTE ++ UINT64_C(105119744), // LDPTE32 ++ UINT64_C(637534208), // LDPTR_D ++ UINT64_C(603979776), // LDPTR_W ++ UINT64_C(603979776), // LDPTR_W32 ++ UINT64_C(939524096), // LDX_B ++ UINT64_C(939524096), // LDX_B32 ++ UINT64_C(941621248), // LDX_BU ++ UINT64_C(941621248), // LDX_BU32 ++ UINT64_C(940310528), // LDX_D ++ UINT64_C(940310528), // LDX_D_rrr ++ UINT64_C(939786240), // LDX_H ++ UINT64_C(939786240), // LDX_H32 ++ UINT64_C(941883392), // LDX_HU ++ UINT64_C(941883392), // LDX_HU32 ++ UINT64_C(940048384), // LDX_W ++ UINT64_C(940048384), // LDX_W32 ++ UINT64_C(942145536), // LDX_WU ++ UINT64_C(671088640), // LD_B ++ UINT64_C(671088640), // LD_B32 ++ UINT64_C(704643072), // LD_BU ++ UINT64_C(704643072), // LD_BU32 ++ UINT64_C(683671552), // LD_D ++ UINT64_C(683671552), // LD_D_rri ++ UINT64_C(683671552), // LD_D_rrii ++ UINT64_C(675282944), // LD_H ++ UINT64_C(675282944), // LD_H32 ++ UINT64_C(708837376), // LD_HU ++ UINT64_C(708837376), // LD_HU32 ++ UINT64_C(679477248), // LD_W ++ UINT64_C(679477248), // LD_W32 ++ UINT64_C(713031680), // LD_WU ++ UINT64_C(46137344), // LEA_ADDI_D ++ UINT64_C(41943040), // LEA_ADDI_W ++ UINT64_C(570425344), // LL_D ++ UINT64_C(536870912), // LL_W ++ UINT64_C(335544320), // LU12I_W ++ UINT64_C(335544320), // LU12I_W32 ++ UINT64_C(335544320), // LU12I_W_ri ++ UINT64_C(369098752), // LU32I_D ++ UINT64_C(369098752), // LU32I_D_R2 ++ UINT64_C(369098752), // LU32I_D_ri ++ UINT64_C(369098752), // LU32I_D_rii ++ UINT64_C(50331648), // LU52I_D ++ UINT64_C(50331648), // LU52I_D_rri ++ UINT64_C(50331648), // LU52I_D_rrii ++ UINT64_C(1245184), // MASKEQZ ++ UINT64_C(1245184), // MASKEQZ32 ++ UINT64_C(1277952), // MASKNEZ ++ UINT64_C(1277952), // MASKNEZ32 ++ UINT64_C(2260992), // MOD_D ++ UINT64_C(2326528), // MOD_DU ++ UINT64_C(2129920), // MOD_W ++ UINT64_C(2195456), // MOD_WU ++ UINT64_C(18142208), // MOVCF2FR ++ UINT64_C(18142208), // MOVCF2FR32 ++ UINT64_C(18144256), // MOVCF2GR ++ UINT64_C(18144256), // MOVCF2GR32 ++ UINT64_C(18139136), // MOVFCSR2GR ++ UINT64_C(18141184), // MOVFR2CF ++ UINT64_C(18141184), // MOVFR2CF32 ++ UINT64_C(18135040), // MOVFR2GR_D ++ UINT64_C(18134016), // MOVFR2GR_DS ++ UINT64_C(18134016), // MOVFR2GR_S ++ UINT64_C(18136064), // MOVFRH2GR_S ++ UINT64_C(18143232), // MOVGR2CF ++ UINT64_C(18143232), // MOVGR2CF32 ++ UINT64_C(18137088), // MOVGR2FCSR ++ UINT64_C(18131968), // MOVGR2FRH_W ++ UINT64_C(18130944), // MOVGR2FR_D ++ UINT64_C(18129920), // MOVGR2FR_W ++ UINT64_C(1966080), // MULH_D ++ UINT64_C(1998848), // MULH_DU ++ UINT64_C(1867776), // MULH_W ++ UINT64_C(1900544), // MULH_WU ++ UINT64_C(2031616), // MULW_D_W ++ UINT64_C(2064384), // MULW_D_WU ++ UINT64_C(1933312), // MUL_D ++ UINT64_C(1835008), // MUL_W ++ UINT64_C(1310720), // NOR ++ UINT64_C(1310720), // NOR32 ++ UINT64_C(1376256), // OR ++ UINT64_C(1376256), // OR32 ++ UINT64_C(58720256), // ORI ++ UINT64_C(58720256), // ORI32 ++ UINT64_C(58720256), // ORI_rri ++ UINT64_C(58720256), // ORI_rrii ++ UINT64_C(1441792), // ORN ++ UINT64_C(1441792), // ORN32 ++ UINT64_C(402653184), // PCADDI ++ UINT64_C(402653184), // PCADDI32 ++ UINT64_C(469762048), // PCADDU12I ++ UINT64_C(469762048), // PCADDU12I32 ++ UINT64_C(469762048), // PCADDU12I_ri ++ UINT64_C(469762048), // PCADDU12I_rii ++ UINT64_C(503316480), // PCADDU18I ++ UINT64_C(436207616), // PCALAU12I ++ UINT64_C(436207616), // PCALAU12I32 ++ UINT64_C(717225984), // PRELD ++ UINT64_C(717225984), // PRELD32 ++ UINT64_C(717225984), // PRELD_Raw ++ UINT64_C(717225984), // PRELD_Raw32 ++ UINT64_C(25600), // RDTIMEH_W ++ UINT64_C(25600), // RDTIMEH_W32 ++ UINT64_C(24576), // RDTIMEL_W ++ UINT64_C(24576), // RDTIMEL_W32 ++ UINT64_C(26624), // RDTIME_D ++ UINT64_C(12288), // REVB_2H ++ UINT64_C(14336), // REVB_2W ++ UINT64_C(14336), // REVB_2W_32 ++ UINT64_C(13312), // REVB_4H ++ UINT64_C(15360), // REVB_D ++ UINT64_C(16384), // REVH_2W ++ UINT64_C(16384), // REVH_2W_32 ++ UINT64_C(17408), // REVH_D ++ UINT64_C(5046272), // ROTRI_D ++ UINT64_C(5013504), // ROTRI_W ++ UINT64_C(1802240), // ROTR_D ++ UINT64_C(1769472), // ROTR_W ++ UINT64_C(587202560), // SC_D ++ UINT64_C(553648128), // SC_W ++ UINT64_C(4259840), // SLLI_D ++ UINT64_C(4259840), // SLLI_D_64_32 ++ UINT64_C(4227072), // SLLI_W ++ UINT64_C(4227072), // SLLI_W_64_32 ++ UINT64_C(4227072), // SLLI_W_64_64 ++ UINT64_C(1605632), // SLL_D ++ UINT64_C(1507328), // SLL_W ++ UINT64_C(1179648), // SLT ++ UINT64_C(1179648), // SLT32 ++ UINT64_C(33554432), // SLTI ++ UINT64_C(33554432), // SLTI32 ++ UINT64_C(1212416), // SLTU ++ UINT64_C(1212416), // SLTU32 ++ UINT64_C(37748736), // SLTUI ++ UINT64_C(37748736), // SLTUI32 ++ UINT64_C(37748736), // SLTUI_64 ++ UINT64_C(4784128), // SRAI_D ++ UINT64_C(4751360), // SRAI_W ++ UINT64_C(1671168), // SRA_D ++ UINT64_C(1572864), // SRA_W ++ UINT64_C(4521984), // SRLI_D ++ UINT64_C(4489216), // SRLI_W ++ UINT64_C(1638400), // SRL_D ++ UINT64_C(1540096), // SRL_W ++ UINT64_C(947650560), // STGT_B ++ UINT64_C(947748864), // STGT_D ++ UINT64_C(947683328), // STGT_H ++ UINT64_C(947716096), // STGT_W ++ UINT64_C(947781632), // STLE_B ++ UINT64_C(947879936), // STLE_D ++ UINT64_C(947814400), // STLE_H ++ UINT64_C(947847168), // STLE_W ++ UINT64_C(654311424), // STPTR_D ++ UINT64_C(620756992), // STPTR_W ++ UINT64_C(620756992), // STPTR_W32 ++ UINT64_C(940572672), // STX_B ++ UINT64_C(940572672), // STX_B32 ++ UINT64_C(941359104), // STX_D ++ UINT64_C(940834816), // STX_H ++ UINT64_C(940834816), // STX_H32 ++ UINT64_C(941096960), // STX_W ++ UINT64_C(941096960), // STX_W32 ++ UINT64_C(687865856), // ST_B ++ UINT64_C(687865856), // ST_B32 ++ UINT64_C(700448768), // ST_D ++ UINT64_C(692060160), // ST_H ++ UINT64_C(692060160), // ST_H32 ++ UINT64_C(696254464), // ST_W ++ UINT64_C(696254464), // ST_W32 ++ UINT64_C(1146880), // SUB_D ++ UINT64_C(1114112), // SUB_W ++ UINT64_C(2818048), // SYSCALL ++ UINT64_C(105390080), // TLBCLR ++ UINT64_C(105395200), // TLBFILL ++ UINT64_C(105391104), // TLBFLUSH ++ UINT64_C(105393152), // TLBRD ++ UINT64_C(105392128), // TLBSRCH ++ UINT64_C(105394176), // TLBWR ++ UINT64_C(18515968), // TRUNC_W_D ++ UINT64_C(1885339648), // VABSD_B ++ UINT64_C(1885470720), // VABSD_BU ++ UINT64_C(1885437952), // VABSD_D ++ UINT64_C(1885569024), // VABSD_DU ++ UINT64_C(1885372416), // VABSD_H ++ UINT64_C(1885503488), // VABSD_HU ++ UINT64_C(1885405184), // VABSD_W ++ UINT64_C(1885536256), // VABSD_WU ++ UINT64_C(1885077504), // VADDA_B ++ UINT64_C(1885175808), // VADDA_D ++ UINT64_C(1885110272), // VADDA_H ++ UINT64_C(1885143040), // VADDA_W ++ UINT64_C(1921646592), // VADDI_BU ++ UINT64_C(1921744896), // VADDI_DU ++ UINT64_C(1921679360), // VADDI_HU ++ UINT64_C(1921712128), // VADDI_WU ++ UINT64_C(1881079808), // VADDWEV_D_W ++ UINT64_C(1882128384), // VADDWEV_D_WU ++ UINT64_C(1883176960), // VADDWEV_D_WU_W ++ UINT64_C(1881014272), // VADDWEV_H_B ++ UINT64_C(1882062848), // VADDWEV_H_BU ++ UINT64_C(1883111424), // VADDWEV_H_BU_B ++ UINT64_C(1881112576), // VADDWEV_Q_D ++ UINT64_C(1882161152), // VADDWEV_Q_DU ++ UINT64_C(1883209728), // VADDWEV_Q_DU_D ++ UINT64_C(1881047040), // VADDWEV_W_H ++ UINT64_C(1882095616), // VADDWEV_W_HU ++ UINT64_C(1883144192), // VADDWEV_W_HU_H ++ UINT64_C(1881341952), // VADDWOD_D_W ++ UINT64_C(1882390528), // VADDWOD_D_WU ++ UINT64_C(1883308032), // VADDWOD_D_WU_W ++ UINT64_C(1881276416), // VADDWOD_H_B ++ UINT64_C(1882324992), // VADDWOD_H_BU ++ UINT64_C(1883242496), // VADDWOD_H_BU_B ++ UINT64_C(1881374720), // VADDWOD_Q_D ++ UINT64_C(1882423296), // VADDWOD_Q_DU ++ UINT64_C(1883340800), // VADDWOD_Q_DU_D ++ UINT64_C(1881309184), // VADDWOD_W_H ++ UINT64_C(1882357760), // VADDWOD_W_HU ++ UINT64_C(1883275264), // VADDWOD_W_HU_H ++ UINT64_C(1879703552), // VADD_B ++ UINT64_C(1879801856), // VADD_D ++ UINT64_C(1879736320), // VADD_H ++ UINT64_C(1898774528), // VADD_Q ++ UINT64_C(1879769088), // VADD_W ++ UINT64_C(1943011328), // VANDI_B ++ UINT64_C(1943011328), // VANDI_B_N ++ UINT64_C(1898446848), // VANDN_V ++ UINT64_C(1898315776), // VAND_V ++ UINT64_C(1885863936), // VAVGR_B ++ UINT64_C(1885995008), // VAVGR_BU ++ UINT64_C(1885962240), // VAVGR_D ++ UINT64_C(1886093312), // VAVGR_DU ++ UINT64_C(1885896704), // VAVGR_H ++ UINT64_C(1886027776), // VAVGR_HU ++ UINT64_C(1885929472), // VAVGR_W ++ UINT64_C(1886060544), // VAVGR_WU ++ UINT64_C(1885601792), // VAVG_B ++ UINT64_C(1885732864), // VAVG_BU ++ UINT64_C(1885700096), // VAVG_D ++ UINT64_C(1885831168), // VAVG_DU ++ UINT64_C(1885634560), // VAVG_H ++ UINT64_C(1885765632), // VAVG_HU ++ UINT64_C(1885667328), // VAVG_W ++ UINT64_C(1885798400), // VAVG_WU ++ UINT64_C(1930436608), // VBITCLRI_B ++ UINT64_C(1930493952), // VBITCLRI_D ++ UINT64_C(1930444800), // VBITCLRI_H ++ UINT64_C(1930461184), // VBITCLRI_W ++ UINT64_C(1896611840), // VBITCLR_B ++ UINT64_C(1896710144), // VBITCLR_D ++ UINT64_C(1896644608), // VBITCLR_H ++ UINT64_C(1896677376), // VBITCLR_W ++ UINT64_C(1930960896), // VBITREVI_B ++ UINT64_C(1931018240), // VBITREVI_D ++ UINT64_C(1930969088), // VBITREVI_H ++ UINT64_C(1930985472), // VBITREVI_W ++ UINT64_C(1896873984), // VBITREV_B ++ UINT64_C(1896972288), // VBITREV_D ++ UINT64_C(1896906752), // VBITREV_H ++ UINT64_C(1896939520), // VBITREV_W ++ UINT64_C(1942224896), // VBITSELI_B ++ UINT64_C(1942224896), // VBITSELI_B_N ++ UINT64_C(219152384), // VBITSEL_V ++ UINT64_C(1930698752), // VBITSETI_B ++ UINT64_C(1930756096), // VBITSETI_D ++ UINT64_C(1930706944), // VBITSETI_H ++ UINT64_C(1930723328), // VBITSETI_W ++ UINT64_C(1896742912), // VBITSET_B ++ UINT64_C(1896841216), // VBITSET_D ++ UINT64_C(1896775680), // VBITSET_H ++ UINT64_C(1896808448), // VBITSET_W ++ UINT64_C(1921908736), // VBSLL_V ++ UINT64_C(1921941504), // VBSRL_V ++ UINT64_C(1922826240), // VCLO_B ++ UINT64_C(1922829312), // VCLO_D ++ UINT64_C(1922827264), // VCLO_H ++ UINT64_C(1922828288), // VCLO_W ++ UINT64_C(1922830336), // VCLZ_B ++ UINT64_C(1922833408), // VCLZ_D ++ UINT64_C(1922831360), // VCLZ_H ++ UINT64_C(1922832384), // VCLZ_W ++ UINT64_C(1893728256), // VDIV_B ++ UINT64_C(1893990400), // VDIV_BU ++ UINT64_C(1893826560), // VDIV_D ++ UINT64_C(1894088704), // VDIV_DU ++ UINT64_C(1893761024), // VDIV_H ++ UINT64_C(1894023168), // VDIV_HU ++ UINT64_C(1893793792), // VDIV_W ++ UINT64_C(1894055936), // VDIV_WU ++ UINT64_C(1990144000), // VEXT2XV_DU_BU ++ UINT64_C(1990146048), // VEXT2XV_DU_HU ++ UINT64_C(1990147072), // VEXT2XV_DU_WU ++ UINT64_C(1990137856), // VEXT2XV_D_B ++ UINT64_C(1990139904), // VEXT2XV_D_H ++ UINT64_C(1990140928), // VEXT2XV_D_W ++ UINT64_C(1990141952), // VEXT2XV_HU_BU ++ UINT64_C(1990135808), // VEXT2XV_H_B ++ UINT64_C(1990142976), // VEXT2XV_WU_BU ++ UINT64_C(1990145024), // VEXT2XV_WU_HU ++ UINT64_C(1990136832), // VEXT2XV_W_B ++ UINT64_C(1990138880), // VEXT2XV_W_H ++ UINT64_C(1923020800), // VEXTH_DU_WU ++ UINT64_C(1923016704), // VEXTH_D_W ++ UINT64_C(1923018752), // VEXTH_HU_BU ++ UINT64_C(1923014656), // VEXTH_H_B ++ UINT64_C(1923021824), // VEXTH_QU_DU ++ UINT64_C(1923017728), // VEXTH_Q_D ++ UINT64_C(1923019776), // VEXTH_WU_HU ++ UINT64_C(1923015680), // VEXTH_W_H ++ UINT64_C(1930231808), // VEXTL_QU_DU ++ UINT64_C(1929969664), // VEXTL_Q_D ++ UINT64_C(1938554880), // VEXTRINS_B ++ UINT64_C(1937768448), // VEXTRINS_D ++ UINT64_C(1938292736), // VEXTRINS_H ++ UINT64_C(1938030592), // VEXTRINS_W ++ UINT64_C(1899036672), // VFADD_D ++ UINT64_C(1899003904), // VFADD_S ++ UINT64_C(1922881536), // VFCLASS_D ++ UINT64_C(1922880512), // VFCLASS_S ++ UINT64_C(207618048), // VFCMP_CAF_D ++ UINT64_C(206569472), // VFCMP_CAF_S ++ UINT64_C(207749120), // VFCMP_CEQ_D ++ UINT64_C(206700544), // VFCMP_CEQ_S ++ UINT64_C(207814656), // VFCMP_CLE_D ++ UINT64_C(206766080), // VFCMP_CLE_S ++ UINT64_C(207683584), // VFCMP_CLT_D ++ UINT64_C(206635008), // VFCMP_CLT_S ++ UINT64_C(208142336), // VFCMP_CNE_D ++ UINT64_C(207093760), // VFCMP_CNE_S ++ UINT64_C(208273408), // VFCMP_COR_D ++ UINT64_C(207224832), // VFCMP_COR_S ++ UINT64_C(208011264), // VFCMP_CUEQ_D ++ UINT64_C(206962688), // VFCMP_CUEQ_S ++ UINT64_C(208076800), // VFCMP_CULE_D ++ UINT64_C(207028224), // VFCMP_CULE_S ++ UINT64_C(207945728), // VFCMP_CULT_D ++ UINT64_C(206897152), // VFCMP_CULT_S ++ UINT64_C(208404480), // VFCMP_CUNE_D ++ UINT64_C(207355904), // VFCMP_CUNE_S ++ UINT64_C(207880192), // VFCMP_CUN_D ++ UINT64_C(206831616), // VFCMP_CUN_S ++ UINT64_C(207650816), // VFCMP_SAF_D ++ UINT64_C(206602240), // VFCMP_SAF_S ++ UINT64_C(207781888), // VFCMP_SEQ_D ++ UINT64_C(206733312), // VFCMP_SEQ_S ++ UINT64_C(207847424), // VFCMP_SLE_D ++ UINT64_C(206798848), // VFCMP_SLE_S ++ UINT64_C(207716352), // VFCMP_SLT_D ++ UINT64_C(206667776), // VFCMP_SLT_S ++ UINT64_C(208175104), // VFCMP_SNE_D ++ UINT64_C(207126528), // VFCMP_SNE_S ++ UINT64_C(208306176), // VFCMP_SOR_D ++ UINT64_C(207257600), // VFCMP_SOR_S ++ UINT64_C(208044032), // VFCMP_SUEQ_D ++ UINT64_C(206995456), // VFCMP_SUEQ_S ++ UINT64_C(208109568), // VFCMP_SULE_D ++ UINT64_C(207060992), // VFCMP_SULE_S ++ UINT64_C(207978496), // VFCMP_SULT_D ++ UINT64_C(206929920), // VFCMP_SULT_S ++ UINT64_C(208437248), // VFCMP_SUNE_D ++ UINT64_C(207388672), // VFCMP_SUNE_S ++ UINT64_C(207912960), // VFCMP_SUN_D ++ UINT64_C(206864384), // VFCMP_SUN_S ++ UINT64_C(1922954240), // VFCVTH_D_S ++ UINT64_C(1922952192), // VFCVTH_S_H ++ UINT64_C(1922953216), // VFCVTL_D_S ++ UINT64_C(1922951168), // VFCVTL_S_H ++ UINT64_C(1900412928), // VFCVT_H_S ++ UINT64_C(1900445696), // VFCVT_S_D ++ UINT64_C(1899692032), // VFDIV_D ++ UINT64_C(1899659264), // VFDIV_S ++ UINT64_C(1922962432), // VFFINTH_D_W ++ UINT64_C(1922961408), // VFFINTL_D_W ++ UINT64_C(1922959360), // VFFINT_D_L ++ UINT64_C(1922960384), // VFFINT_D_LU ++ UINT64_C(1900544000), // VFFINT_S_L ++ UINT64_C(1922957312), // VFFINT_S_W ++ UINT64_C(1922958336), // VFFINT_S_WU ++ UINT64_C(1922877440), // VFLOGB_D ++ UINT64_C(1922876416), // VFLOGB_S ++ UINT64_C(153092096), // VFMADD_D ++ UINT64_C(152043520), // VFMADD_S ++ UINT64_C(1900085248), // VFMAXA_D ++ UINT64_C(1900052480), // VFMAXA_S ++ UINT64_C(1899823104), // VFMAX_D ++ UINT64_C(1899790336), // VFMAX_S ++ UINT64_C(1900216320), // VFMINA_D ++ UINT64_C(1900183552), // VFMINA_S ++ UINT64_C(1899954176), // VFMIN_D ++ UINT64_C(1899921408), // VFMIN_S ++ UINT64_C(157286400), // VFMSUB_D ++ UINT64_C(156237824), // VFMSUB_S ++ UINT64_C(1899560960), // VFMUL_D ++ UINT64_C(1899528192), // VFMUL_S ++ UINT64_C(161480704), // VFNMADD_D ++ UINT64_C(160432128), // VFNMADD_S ++ UINT64_C(165675008), // VFNMSUB_D ++ UINT64_C(164626432), // VFNMSUB_S ++ UINT64_C(1922889728), // VFRECIP_D ++ UINT64_C(1922888704), // VFRECIP_S ++ UINT64_C(1922910208), // VFRINTRM_D ++ UINT64_C(1922909184), // VFRINTRM_S ++ UINT64_C(1922922496), // VFRINTRNE_D ++ UINT64_C(1922921472), // VFRINTRNE_S ++ UINT64_C(1922914304), // VFRINTRP_D ++ UINT64_C(1922913280), // VFRINTRP_S ++ UINT64_C(1922918400), // VFRINTRZ_D ++ UINT64_C(1922917376), // VFRINTRZ_S ++ UINT64_C(1922906112), // VFRINT_D ++ UINT64_C(1922905088), // VFRINT_S ++ UINT64_C(1922893824), // VFRSQRT_D ++ UINT64_C(1922892800), // VFRSQRT_S ++ UINT64_C(1922695168), // VFRSTPI_B ++ UINT64_C(1922727936), // VFRSTPI_H ++ UINT64_C(1898643456), // VFRSTP_B ++ UINT64_C(1898676224), // VFRSTP_H ++ UINT64_C(1922885632), // VFSQRT_D ++ UINT64_C(1922884608), // VFSQRT_S ++ UINT64_C(1899167744), // VFSUB_D ++ UINT64_C(1899134976), // VFSUB_S ++ UINT64_C(1922991104), // VFTINTH_L_S ++ UINT64_C(1922990080), // VFTINTL_L_S ++ UINT64_C(1922993152), // VFTINTRMH_L_S ++ UINT64_C(1922992128), // VFTINTRML_L_S ++ UINT64_C(1922972672), // VFTINTRM_L_D ++ UINT64_C(1900675072), // VFTINTRM_W_D ++ UINT64_C(1922971648), // VFTINTRM_W_S ++ UINT64_C(1922999296), // VFTINTRNEH_L_S ++ UINT64_C(1922998272), // VFTINTRNEL_L_S ++ UINT64_C(1922978816), // VFTINTRNE_L_D ++ UINT64_C(1900773376), // VFTINTRNE_W_D ++ UINT64_C(1922977792), // VFTINTRNE_W_S ++ UINT64_C(1922995200), // VFTINTRPH_L_S ++ UINT64_C(1922994176), // VFTINTRPL_L_S ++ UINT64_C(1922974720), // VFTINTRP_L_D ++ UINT64_C(1900707840), // VFTINTRP_W_D ++ UINT64_C(1922973696), // VFTINTRP_W_S ++ UINT64_C(1922997248), // VFTINTRZH_L_S ++ UINT64_C(1922996224), // VFTINTRZL_L_S ++ UINT64_C(1922987008), // VFTINTRZ_LU_D ++ UINT64_C(1922976768), // VFTINTRZ_L_D ++ UINT64_C(1922985984), // VFTINTRZ_WU_S ++ UINT64_C(1900740608), // VFTINTRZ_W_D ++ UINT64_C(1922975744), // VFTINTRZ_W_S ++ UINT64_C(1922980864), // VFTINT_LU_D ++ UINT64_C(1922970624), // VFTINT_L_D ++ UINT64_C(1922979840), // VFTINT_WU_S ++ UINT64_C(1900642304), // VFTINT_W_D ++ UINT64_C(1922969600), // VFTINT_W_S ++ UINT64_C(1884880896), // VHADDW_DU_WU ++ UINT64_C(1884618752), // VHADDW_D_W ++ UINT64_C(1884815360), // VHADDW_HU_BU ++ UINT64_C(1884553216), // VHADDW_H_B ++ UINT64_C(1884913664), // VHADDW_QU_DU ++ UINT64_C(1884651520), // VHADDW_Q_D ++ UINT64_C(1884848128), // VHADDW_WU_HU ++ UINT64_C(1884585984), // VHADDW_W_H ++ UINT64_C(1885011968), // VHSUBW_DU_WU ++ UINT64_C(1884749824), // VHSUBW_D_W ++ UINT64_C(1884946432), // VHSUBW_HU_BU ++ UINT64_C(1884684288), // VHSUBW_H_B ++ UINT64_C(1885044736), // VHSUBW_QU_DU ++ UINT64_C(1884782592), // VHSUBW_Q_D ++ UINT64_C(1884979200), // VHSUBW_WU_HU ++ UINT64_C(1884717056), // VHSUBW_W_H ++ UINT64_C(1897660416), // VILVH_B ++ UINT64_C(1897758720), // VILVH_D ++ UINT64_C(1897693184), // VILVH_H ++ UINT64_C(1897725952), // VILVH_W ++ UINT64_C(1897529344), // VILVL_B ++ UINT64_C(1897627648), // VILVL_D ++ UINT64_C(1897562112), // VILVL_H ++ UINT64_C(1897594880), // VILVL_W ++ UINT64_C(1928036352), // VINSGR2VR_B ++ UINT64_C(1928065024), // VINSGR2VR_D ++ UINT64_C(1928052736), // VINSGR2VR_H ++ UINT64_C(1928060928), // VINSGR2VR_W ++ UINT64_C(738197504), // VLD ++ UINT64_C(1944059904), // VLDI ++ UINT64_C(1944059904), // VLDI_B ++ UINT64_C(1944158208), // VLDI_D ++ UINT64_C(1944092672), // VLDI_H ++ UINT64_C(1944125440), // VLDI_W ++ UINT64_C(813694976), // VLDREPL_B ++ UINT64_C(806354944), // VLDREPL_D ++ UINT64_C(809500672), // VLDREPL_H ++ UINT64_C(807403520), // VLDREPL_W ++ UINT64_C(943718400), // VLDX ++ UINT64_C(738197504), // VLD_D ++ UINT64_C(738197504), // VLD_H ++ UINT64_C(738197504), // VLD_W ++ UINT64_C(1890385920), // VMADDWEV_D_W ++ UINT64_C(1890910208), // VMADDWEV_D_WU ++ UINT64_C(1891434496), // VMADDWEV_D_WU_W ++ UINT64_C(1890320384), // VMADDWEV_H_B ++ UINT64_C(1890844672), // VMADDWEV_H_BU ++ UINT64_C(1891368960), // VMADDWEV_H_BU_B ++ UINT64_C(1890418688), // VMADDWEV_Q_D ++ UINT64_C(1890942976), // VMADDWEV_Q_DU ++ UINT64_C(1891467264), // VMADDWEV_Q_DU_D ++ UINT64_C(1890353152), // VMADDWEV_W_H ++ UINT64_C(1890877440), // VMADDWEV_W_HU ++ UINT64_C(1891401728), // VMADDWEV_W_HU_H ++ UINT64_C(1890516992), // VMADDWOD_D_W ++ UINT64_C(1891041280), // VMADDWOD_D_WU ++ UINT64_C(1891565568), // VMADDWOD_D_WU_W ++ UINT64_C(1890451456), // VMADDWOD_H_B ++ UINT64_C(1890975744), // VMADDWOD_H_BU ++ UINT64_C(1891500032), // VMADDWOD_H_BU_B ++ UINT64_C(1890549760), // VMADDWOD_Q_D ++ UINT64_C(1891074048), // VMADDWOD_Q_DU ++ UINT64_C(1891598336), // VMADDWOD_Q_DU_D ++ UINT64_C(1890484224), // VMADDWOD_W_H ++ UINT64_C(1891008512), // VMADDWOD_W_HU ++ UINT64_C(1891532800), // VMADDWOD_W_HU_H ++ UINT64_C(1890058240), // VMADD_B ++ UINT64_C(1890156544), // VMADD_D ++ UINT64_C(1890091008), // VMADD_H ++ UINT64_C(1890123776), // VMADD_W ++ UINT64_C(1922039808), // VMAXI_B ++ UINT64_C(1922301952), // VMAXI_BU ++ UINT64_C(1922301952), // VMAXI_BU_N ++ UINT64_C(1922039808), // VMAXI_B_N ++ UINT64_C(1922138112), // VMAXI_D ++ UINT64_C(1922400256), // VMAXI_DU ++ UINT64_C(1922400256), // VMAXI_DU_N ++ UINT64_C(1922138112), // VMAXI_D_N ++ UINT64_C(1922072576), // VMAXI_H ++ UINT64_C(1922334720), // VMAXI_HU ++ UINT64_C(1922334720), // VMAXI_HU_N ++ UINT64_C(1922072576), // VMAXI_H_N ++ UINT64_C(1922105344), // VMAXI_W ++ UINT64_C(1922367488), // VMAXI_WU ++ UINT64_C(1922367488), // VMAXI_WU_N ++ UINT64_C(1922105344), // VMAXI_W_N ++ UINT64_C(1886388224), // VMAX_B ++ UINT64_C(1886650368), // VMAX_BU ++ UINT64_C(1886486528), // VMAX_D ++ UINT64_C(1886748672), // VMAX_DU ++ UINT64_C(1886420992), // VMAX_H ++ UINT64_C(1886683136), // VMAX_HU ++ UINT64_C(1886453760), // VMAX_W ++ UINT64_C(1886715904), // VMAX_WU ++ UINT64_C(1922170880), // VMINI_B ++ UINT64_C(1922433024), // VMINI_BU ++ UINT64_C(1922170880), // VMINI_B_N ++ UINT64_C(1922269184), // VMINI_D ++ UINT64_C(1922531328), // VMINI_DU ++ UINT64_C(1922269184), // VMINI_D_N ++ UINT64_C(1922203648), // VMINI_H ++ UINT64_C(1922465792), // VMINI_HU ++ UINT64_C(1922203648), // VMINI_H_N ++ UINT64_C(1922236416), // VMINI_W ++ UINT64_C(1922498560), // VMINI_WU ++ UINT64_C(1922236416), // VMINI_W_N ++ UINT64_C(1886519296), // VMIN_B ++ UINT64_C(1886781440), // VMIN_BU ++ UINT64_C(1886617600), // VMIN_D ++ UINT64_C(1886879744), // VMIN_DU ++ UINT64_C(1886552064), // VMIN_H ++ UINT64_C(1886814208), // VMIN_HU ++ UINT64_C(1886584832), // VMIN_W ++ UINT64_C(1886846976), // VMIN_WU ++ UINT64_C(1893859328), // VMOD_B ++ UINT64_C(1894121472), // VMOD_BU ++ UINT64_C(1893957632), // VMOD_D ++ UINT64_C(1894219776), // VMOD_DU ++ UINT64_C(1893892096), // VMOD_H ++ UINT64_C(1894154240), // VMOD_HU ++ UINT64_C(1893924864), // VMOD_W ++ UINT64_C(1894187008), // VMOD_WU ++ UINT64_C(1922846720), // VMSKGEZ_B ++ UINT64_C(1922842624), // VMSKLTZ_B ++ UINT64_C(1922845696), // VMSKLTZ_D ++ UINT64_C(1922843648), // VMSKLTZ_H ++ UINT64_C(1922844672), // VMSKLTZ_W ++ UINT64_C(1922850816), // VMSKNZ_B ++ UINT64_C(1890189312), // VMSUB_B ++ UINT64_C(1890287616), // VMSUB_D ++ UINT64_C(1890222080), // VMSUB_H ++ UINT64_C(1890254848), // VMSUB_W ++ UINT64_C(1887830016), // VMUH_B ++ UINT64_C(1887961088), // VMUH_BU ++ UINT64_C(1887928320), // VMUH_D ++ UINT64_C(1888059392), // VMUH_DU ++ UINT64_C(1887862784), // VMUH_H ++ UINT64_C(1887993856), // VMUH_HU ++ UINT64_C(1887895552), // VMUH_W ++ UINT64_C(1888026624), // VMUH_WU ++ UINT64_C(1888550912), // VMULWEV_D_W ++ UINT64_C(1889075200), // VMULWEV_D_WU ++ UINT64_C(1889599488), // VMULWEV_D_WU_W ++ UINT64_C(1888485376), // VMULWEV_H_B ++ UINT64_C(1889009664), // VMULWEV_H_BU ++ UINT64_C(1889533952), // VMULWEV_H_BU_B ++ UINT64_C(1888583680), // VMULWEV_Q_D ++ UINT64_C(1889107968), // VMULWEV_Q_DU ++ UINT64_C(1889632256), // VMULWEV_Q_DU_D ++ UINT64_C(1888518144), // VMULWEV_W_H ++ UINT64_C(1889042432), // VMULWEV_W_HU ++ UINT64_C(1889566720), // VMULWEV_W_HU_H ++ UINT64_C(1888681984), // VMULWOD_D_W ++ UINT64_C(1889206272), // VMULWOD_D_WU ++ UINT64_C(1889730560), // VMULWOD_D_WU_W ++ UINT64_C(1888616448), // VMULWOD_H_B ++ UINT64_C(1889140736), // VMULWOD_H_BU ++ UINT64_C(1889665024), // VMULWOD_H_BU_B ++ UINT64_C(1888714752), // VMULWOD_Q_D ++ UINT64_C(1889239040), // VMULWOD_Q_DU ++ UINT64_C(1889763328), // VMULWOD_Q_DU_D ++ UINT64_C(1888649216), // VMULWOD_W_H ++ UINT64_C(1889173504), // VMULWOD_W_HU ++ UINT64_C(1889697792), // VMULWOD_W_HU_H ++ UINT64_C(1887698944), // VMUL_B ++ UINT64_C(1887797248), // VMUL_D ++ UINT64_C(1887731712), // VMUL_H ++ UINT64_C(1887764480), // VMUL_W ++ UINT64_C(1922838528), // VNEG_B ++ UINT64_C(1922841600), // VNEG_D ++ UINT64_C(1922839552), // VNEG_H ++ UINT64_C(1922840576), // VNEG_W ++ UINT64_C(1943797760), // VNORI_B ++ UINT64_C(1898414080), // VNOR_V ++ UINT64_C(1943273472), // VORI_B ++ UINT64_C(1898479616), // VORN_V ++ UINT64_C(1898348544), // VOR_V ++ UINT64_C(1897267200), // VPACKEV_B ++ UINT64_C(1897365504), // VPACKEV_D ++ UINT64_C(1897299968), // VPACKEV_H ++ UINT64_C(1897332736), // VPACKEV_W ++ UINT64_C(1897398272), // VPACKOD_B ++ UINT64_C(1897496576), // VPACKOD_D ++ UINT64_C(1897431040), // VPACKOD_H ++ UINT64_C(1897463808), // VPACKOD_W ++ UINT64_C(1922834432), // VPCNT_B ++ UINT64_C(1922837504), // VPCNT_D ++ UINT64_C(1922835456), // VPCNT_H ++ UINT64_C(1922836480), // VPCNT_W ++ UINT64_C(1944322048), // VPERMI_W ++ UINT64_C(1897791488), // VPICKEV_B ++ UINT64_C(1897889792), // VPICKEV_D ++ UINT64_C(1897824256), // VPICKEV_H ++ UINT64_C(1897857024), // VPICKEV_W ++ UINT64_C(1897922560), // VPICKOD_B ++ UINT64_C(1898020864), // VPICKOD_D ++ UINT64_C(1897955328), // VPICKOD_H ++ UINT64_C(1897988096), // VPICKOD_W ++ UINT64_C(1928298496), // VPICKVE2GR_B ++ UINT64_C(1928560640), // VPICKVE2GR_BU ++ UINT64_C(1928327168), // VPICKVE2GR_D ++ UINT64_C(1928589312), // VPICKVE2GR_DU ++ UINT64_C(1928314880), // VPICKVE2GR_H ++ UINT64_C(1928577024), // VPICKVE2GR_HU ++ UINT64_C(1928323072), // VPICKVE2GR_W ++ UINT64_C(1928585216), // VPICKVE2GR_WU ++ UINT64_C(1923022848), // VREPLGR2VR_B ++ UINT64_C(1923025920), // VREPLGR2VR_D ++ UINT64_C(1923023872), // VREPLGR2VR_H ++ UINT64_C(1923024896), // VREPLGR2VR_W ++ UINT64_C(1928822784), // VREPLVEI_B ++ UINT64_C(1928851456), // VREPLVEI_D ++ UINT64_C(1928839168), // VREPLVEI_H ++ UINT64_C(1928847360), // VREPLVEI_W ++ UINT64_C(1898053632), // VREPLVE_B ++ UINT64_C(1898151936), // VREPLVE_D ++ UINT64_C(1898086400), // VREPLVE_H ++ UINT64_C(1898119168), // VREPLVE_W ++ UINT64_C(1923096576), // VROTRI_B ++ UINT64_C(1923153920), // VROTRI_D ++ UINT64_C(1923104768), // VROTRI_H ++ UINT64_C(1923121152), // VROTRI_W ++ UINT64_C(1894645760), // VROTR_B ++ UINT64_C(1894744064), // VROTR_D ++ UINT64_C(1894678528), // VROTR_H ++ UINT64_C(1894711296), // VROTR_W ++ UINT64_C(1883635712), // VSADD_B ++ UINT64_C(1883897856), // VSADD_BU ++ UINT64_C(1883734016), // VSADD_D ++ UINT64_C(1883996160), // VSADD_DU ++ UINT64_C(1883668480), // VSADD_H ++ UINT64_C(1883930624), // VSADD_HU ++ UINT64_C(1883701248), // VSADD_W ++ UINT64_C(1883963392), // VSADD_WU ++ UINT64_C(1931747328), // VSAT_B ++ UINT64_C(1932009472), // VSAT_BU ++ UINT64_C(1931804672), // VSAT_D ++ UINT64_C(1932066816), // VSAT_DU ++ UINT64_C(1931755520), // VSAT_H ++ UINT64_C(1932017664), // VSAT_HU ++ UINT64_C(1931771904), // VSAT_W ++ UINT64_C(1932034048), // VSAT_WU ++ UINT64_C(1920991232), // VSEQI_B ++ UINT64_C(1920991232), // VSEQI_B_N ++ UINT64_C(1921089536), // VSEQI_D ++ UINT64_C(1921089536), // VSEQI_D_N ++ UINT64_C(1921024000), // VSEQI_H ++ UINT64_C(1921024000), // VSEQI_H_N ++ UINT64_C(1921056768), // VSEQI_W ++ UINT64_C(1921056768), // VSEQI_W_N ++ UINT64_C(1879048192), // VSEQ_B ++ UINT64_C(1879146496), // VSEQ_D ++ UINT64_C(1879080960), // VSEQ_H ++ UINT64_C(1879113728), // VSEQ_W ++ UINT64_C(1922871296), // VSETALLNEZ_B ++ UINT64_C(1922874368), // VSETALLNEZ_D ++ UINT64_C(1922872320), // VSETALLNEZ_H ++ UINT64_C(1922873344), // VSETALLNEZ_W ++ UINT64_C(1922867200), // VSETANYEQZ_B ++ UINT64_C(1922870272), // VSETANYEQZ_D ++ UINT64_C(1922868224), // VSETANYEQZ_H ++ UINT64_C(1922869248), // VSETANYEQZ_W ++ UINT64_C(1922865152), // VSETEQZ_V ++ UINT64_C(1922866176), // VSETNEZ_V ++ UINT64_C(1938817024), // VSHUF4I_B ++ UINT64_C(1939603456), // VSHUF4I_D ++ UINT64_C(1939079168), // VSHUF4I_H ++ UINT64_C(1939341312), // VSHUF4I_W ++ UINT64_C(223346688), // VSHUF_B ++ UINT64_C(1903919104), // VSHUF_D ++ UINT64_C(1903853568), // VSHUF_H ++ UINT64_C(1903886336), // VSHUF_W ++ UINT64_C(1898840064), // VSIGNCOV_B ++ UINT64_C(1898938368), // VSIGNCOV_D ++ UINT64_C(1898872832), // VSIGNCOV_H ++ UINT64_C(1898905600), // VSIGNCOV_W ++ UINT64_C(1921122304), // VSLEI_B ++ UINT64_C(1921253376), // VSLEI_BU ++ UINT64_C(1921253376), // VSLEI_BU_N ++ UINT64_C(1921122304), // VSLEI_B_N ++ UINT64_C(1921220608), // VSLEI_D ++ UINT64_C(1921351680), // VSLEI_DU ++ UINT64_C(1921351680), // VSLEI_DU_N ++ UINT64_C(1921220608), // VSLEI_D_N ++ UINT64_C(1921155072), // VSLEI_H ++ UINT64_C(1921286144), // VSLEI_HU ++ UINT64_C(1921286144), // VSLEI_HU_N ++ UINT64_C(1921155072), // VSLEI_H_N ++ UINT64_C(1921187840), // VSLEI_W ++ UINT64_C(1921318912), // VSLEI_WU ++ UINT64_C(1921318912), // VSLEI_WU_N ++ UINT64_C(1921187840), // VSLEI_W_N ++ UINT64_C(1879179264), // VSLE_B ++ UINT64_C(1879310336), // VSLE_BU ++ UINT64_C(1879277568), // VSLE_D ++ UINT64_C(1879408640), // VSLE_DU ++ UINT64_C(1879212032), // VSLE_H ++ UINT64_C(1879343104), // VSLE_HU ++ UINT64_C(1879244800), // VSLE_W ++ UINT64_C(1879375872), // VSLE_WU ++ UINT64_C(1932271616), // VSLLI_B ++ UINT64_C(1932328960), // VSLLI_D ++ UINT64_C(1932279808), // VSLLI_H ++ UINT64_C(1932296192), // VSLLI_W ++ UINT64_C(1930199040), // VSLLWIL_DU_WU ++ UINT64_C(1929936896), // VSLLWIL_D_W ++ UINT64_C(1930174464), // VSLLWIL_HU_BU ++ UINT64_C(1929912320), // VSLLWIL_H_B ++ UINT64_C(1930182656), // VSLLWIL_WU_HU ++ UINT64_C(1929920512), // VSLLWIL_W_H ++ UINT64_C(1894252544), // VSLL_B ++ UINT64_C(1894350848), // VSLL_D ++ UINT64_C(1894285312), // VSLL_H ++ UINT64_C(1894318080), // VSLL_W ++ UINT64_C(1921384448), // VSLTI_B ++ UINT64_C(1921515520), // VSLTI_BU ++ UINT64_C(1921515520), // VSLTI_BU_N ++ UINT64_C(1921384448), // VSLTI_B_N ++ UINT64_C(1921482752), // VSLTI_D ++ UINT64_C(1921613824), // VSLTI_DU ++ UINT64_C(1921613824), // VSLTI_DU_N ++ UINT64_C(1921482752), // VSLTI_D_N ++ UINT64_C(1921417216), // VSLTI_H ++ UINT64_C(1921548288), // VSLTI_HU ++ UINT64_C(1921548288), // VSLTI_HU_N ++ UINT64_C(1921417216), // VSLTI_H_N ++ UINT64_C(1921449984), // VSLTI_W ++ UINT64_C(1921581056), // VSLTI_WU ++ UINT64_C(1921581056), // VSLTI_WU_N ++ UINT64_C(1921449984), // VSLTI_W_N ++ UINT64_C(1879441408), // VSLT_B ++ UINT64_C(1879572480), // VSLT_BU ++ UINT64_C(1879539712), // VSLT_D ++ UINT64_C(1879670784), // VSLT_DU ++ UINT64_C(1879474176), // VSLT_H ++ UINT64_C(1879605248), // VSLT_HU ++ UINT64_C(1879506944), // VSLT_W ++ UINT64_C(1879638016), // VSLT_WU ++ UINT64_C(1932795904), // VSRAI_B ++ UINT64_C(1932795904), // VSRAI_B_N ++ UINT64_C(1932853248), // VSRAI_D ++ UINT64_C(1932853248), // VSRAI_D_N ++ UINT64_C(1932804096), // VSRAI_H ++ UINT64_C(1932804096), // VSRAI_H_N ++ UINT64_C(1932820480), // VSRAI_W ++ UINT64_C(1932820480), // VSRAI_W_N ++ UINT64_C(1935163392), // VSRANI_B_H ++ UINT64_C(1935278080), // VSRANI_D_Q ++ UINT64_C(1935179776), // VSRANI_H_W ++ UINT64_C(1935212544), // VSRANI_W_D ++ UINT64_C(1895202816), // VSRAN_B_H ++ UINT64_C(1895235584), // VSRAN_H_W ++ UINT64_C(1895268352), // VSRAN_W_D ++ UINT64_C(1923620864), // VSRARI_B ++ UINT64_C(1923678208), // VSRARI_D ++ UINT64_C(1923629056), // VSRARI_H ++ UINT64_C(1923645440), // VSRARI_W ++ UINT64_C(1935425536), // VSRARNI_B_H ++ UINT64_C(1935540224), // VSRARNI_D_Q ++ UINT64_C(1935441920), // VSRARNI_H_W ++ UINT64_C(1935474688), // VSRARNI_W_D ++ UINT64_C(1895464960), // VSRARN_B_H ++ UINT64_C(1895497728), // VSRARN_H_W ++ UINT64_C(1895530496), // VSRARN_W_D ++ UINT64_C(1894907904), // VSRAR_B ++ UINT64_C(1895006208), // VSRAR_D ++ UINT64_C(1894940672), // VSRAR_H ++ UINT64_C(1894973440), // VSRAR_W ++ UINT64_C(1894514688), // VSRA_B ++ UINT64_C(1894612992), // VSRA_D ++ UINT64_C(1894547456), // VSRA_H ++ UINT64_C(1894580224), // VSRA_W ++ UINT64_C(1932533760), // VSRLI_B ++ UINT64_C(1932591104), // VSRLI_D ++ UINT64_C(1932541952), // VSRLI_H ++ UINT64_C(1932558336), // VSRLI_W ++ UINT64_C(1933590528), // VSRLNI_B_H ++ UINT64_C(1933705216), // VSRLNI_D_Q ++ UINT64_C(1933606912), // VSRLNI_H_W ++ UINT64_C(1933639680), // VSRLNI_W_D ++ UINT64_C(1895071744), // VSRLN_B_H ++ UINT64_C(1895104512), // VSRLN_H_W ++ UINT64_C(1895137280), // VSRLN_W_D ++ UINT64_C(1923358720), // VSRLRI_B ++ UINT64_C(1923416064), // VSRLRI_D ++ UINT64_C(1923366912), // VSRLRI_H ++ UINT64_C(1923383296), // VSRLRI_W ++ UINT64_C(1933852672), // VSRLRNI_B_H ++ UINT64_C(1933967360), // VSRLRNI_D_Q ++ UINT64_C(1933869056), // VSRLRNI_H_W ++ UINT64_C(1933901824), // VSRLRNI_W_D ++ UINT64_C(1895333888), // VSRLRN_B_H ++ UINT64_C(1895366656), // VSRLRN_H_W ++ UINT64_C(1895399424), // VSRLRN_W_D ++ UINT64_C(1894776832), // VSRLR_B ++ UINT64_C(1894875136), // VSRLR_D ++ UINT64_C(1894809600), // VSRLR_H ++ UINT64_C(1894842368), // VSRLR_W ++ UINT64_C(1894383616), // VSRL_B ++ UINT64_C(1894481920), // VSRL_D ++ UINT64_C(1894416384), // VSRL_H ++ UINT64_C(1894449152), // VSRL_W ++ UINT64_C(1935949824), // VSSRANI_BU_H ++ UINT64_C(1935687680), // VSSRANI_B_H ++ UINT64_C(1936064512), // VSSRANI_DU_Q ++ UINT64_C(1935802368), // VSSRANI_D_Q ++ UINT64_C(1935966208), // VSSRANI_HU_W ++ UINT64_C(1935704064), // VSSRANI_H_W ++ UINT64_C(1935998976), // VSSRANI_WU_D ++ UINT64_C(1935736832), // VSSRANI_W_D ++ UINT64_C(1896251392), // VSSRAN_BU_H ++ UINT64_C(1895727104), // VSSRAN_B_H ++ UINT64_C(1896284160), // VSSRAN_HU_W ++ UINT64_C(1895759872), // VSSRAN_H_W ++ UINT64_C(1896316928), // VSSRAN_WU_D ++ UINT64_C(1895792640), // VSSRAN_W_D ++ UINT64_C(1936474112), // VSSRARNI_BU_H ++ UINT64_C(1936211968), // VSSRARNI_B_H ++ UINT64_C(1936588800), // VSSRARNI_DU_Q ++ UINT64_C(1936326656), // VSSRARNI_D_Q ++ UINT64_C(1936490496), // VSSRARNI_HU_W ++ UINT64_C(1936228352), // VSSRARNI_H_W ++ UINT64_C(1936523264), // VSSRARNI_WU_D ++ UINT64_C(1936261120), // VSSRARNI_W_D ++ UINT64_C(1896513536), // VSSRARN_BU_H ++ UINT64_C(1895989248), // VSSRARN_B_H ++ UINT64_C(1896546304), // VSSRARN_HU_W ++ UINT64_C(1896022016), // VSSRARN_H_W ++ UINT64_C(1896579072), // VSSRARN_WU_D ++ UINT64_C(1896054784), // VSSRARN_W_D ++ UINT64_C(1934376960), // VSSRLNI_BU_H ++ UINT64_C(1934114816), // VSSRLNI_B_H ++ UINT64_C(1934491648), // VSSRLNI_DU_Q ++ UINT64_C(1934229504), // VSSRLNI_D_Q ++ UINT64_C(1934393344), // VSSRLNI_HU_W ++ UINT64_C(1934131200), // VSSRLNI_H_W ++ UINT64_C(1934426112), // VSSRLNI_WU_D ++ UINT64_C(1934163968), // VSSRLNI_W_D ++ UINT64_C(1896120320), // VSSRLN_BU_H ++ UINT64_C(1895596032), // VSSRLN_B_H ++ UINT64_C(1896153088), // VSSRLN_HU_W ++ UINT64_C(1895628800), // VSSRLN_H_W ++ UINT64_C(1896185856), // VSSRLN_WU_D ++ UINT64_C(1895661568), // VSSRLN_W_D ++ UINT64_C(1934901248), // VSSRLRNI_BU_H ++ UINT64_C(1934639104), // VSSRLRNI_B_H ++ UINT64_C(1935015936), // VSSRLRNI_DU_Q ++ UINT64_C(1934753792), // VSSRLRNI_D_Q ++ UINT64_C(1934917632), // VSSRLRNI_HU_W ++ UINT64_C(1934655488), // VSSRLRNI_H_W ++ UINT64_C(1934950400), // VSSRLRNI_WU_D ++ UINT64_C(1934688256), // VSSRLRNI_W_D ++ UINT64_C(1896382464), // VSSRLRN_BU_H ++ UINT64_C(1895858176), // VSSRLRN_B_H ++ UINT64_C(1896415232), // VSSRLRN_HU_W ++ UINT64_C(1895890944), // VSSRLRN_H_W ++ UINT64_C(1896448000), // VSSRLRN_WU_D ++ UINT64_C(1895923712), // VSSRLRN_W_D ++ UINT64_C(1883766784), // VSSUB_B ++ UINT64_C(1884028928), // VSSUB_BU ++ UINT64_C(1883865088), // VSSUB_D ++ UINT64_C(1884127232), // VSSUB_DU ++ UINT64_C(1883799552), // VSSUB_H ++ UINT64_C(1884061696), // VSSUB_HU ++ UINT64_C(1883832320), // VSSUB_W ++ UINT64_C(1884094464), // VSSUB_WU ++ UINT64_C(742391808), // VST ++ UINT64_C(830472192), // VSTELM_B ++ UINT64_C(823132160), // VSTELM_D ++ UINT64_C(826277888), // VSTELM_H ++ UINT64_C(824180736), // VSTELM_W ++ UINT64_C(943980544), // VSTX ++ UINT64_C(742391808), // VST_D ++ UINT64_C(742391808), // VST_H ++ UINT64_C(742391808), // VST_W ++ UINT64_C(1921777664), // VSUBI_BU ++ UINT64_C(1921875968), // VSUBI_DU ++ UINT64_C(1921810432), // VSUBI_HU ++ UINT64_C(1921843200), // VSUBI_WU ++ UINT64_C(1881210880), // VSUBWEV_D_W ++ UINT64_C(1882259456), // VSUBWEV_D_WU ++ UINT64_C(1881145344), // VSUBWEV_H_B ++ UINT64_C(1882193920), // VSUBWEV_H_BU ++ UINT64_C(1881243648), // VSUBWEV_Q_D ++ UINT64_C(1882292224), // VSUBWEV_Q_DU ++ UINT64_C(1881178112), // VSUBWEV_W_H ++ UINT64_C(1882226688), // VSUBWEV_W_HU ++ UINT64_C(1881473024), // VSUBWOD_D_W ++ UINT64_C(1882521600), // VSUBWOD_D_WU ++ UINT64_C(1881407488), // VSUBWOD_H_B ++ UINT64_C(1882456064), // VSUBWOD_H_BU ++ UINT64_C(1881505792), // VSUBWOD_Q_D ++ UINT64_C(1882554368), // VSUBWOD_Q_DU ++ UINT64_C(1881440256), // VSUBWOD_W_H ++ UINT64_C(1882488832), // VSUBWOD_W_HU ++ UINT64_C(1879834624), // VSUB_B ++ UINT64_C(1879932928), // VSUB_D ++ UINT64_C(1879867392), // VSUB_H ++ UINT64_C(1898807296), // VSUB_Q ++ UINT64_C(1879900160), // VSUB_W ++ UINT64_C(1943535616), // VXORI_B ++ UINT64_C(1943535616), // VXORI_B_N ++ UINT64_C(1898381312), // VXOR_V ++ UINT64_C(1409024), // XOR ++ UINT64_C(1409024), // XOR32 ++ UINT64_C(62914560), // XORI ++ UINT64_C(62914560), // XORI32 ++ UINT64_C(1952448512), // XVABSD_B ++ UINT64_C(1952579584), // XVABSD_BU ++ UINT64_C(1952546816), // XVABSD_D ++ UINT64_C(1952677888), // XVABSD_DU ++ UINT64_C(1952481280), // XVABSD_H ++ UINT64_C(1952612352), // XVABSD_HU ++ UINT64_C(1952514048), // XVABSD_W ++ UINT64_C(1952645120), // XVABSD_WU ++ UINT64_C(1952186368), // XVADDA_B ++ UINT64_C(1952284672), // XVADDA_D ++ UINT64_C(1952219136), // XVADDA_H ++ UINT64_C(1952251904), // XVADDA_W ++ UINT64_C(1988755456), // XVADDI_BU ++ UINT64_C(1988755456), // XVADDI_BU_N ++ UINT64_C(1988853760), // XVADDI_DU ++ UINT64_C(1988853760), // XVADDI_DU_N ++ UINT64_C(1988788224), // XVADDI_HU ++ UINT64_C(1988788224), // XVADDI_HU_N ++ UINT64_C(1988820992), // XVADDI_WU ++ UINT64_C(1988820992), // XVADDI_WU_N ++ UINT64_C(1948188672), // XVADDWEV_D_W ++ UINT64_C(1949237248), // XVADDWEV_D_WU ++ UINT64_C(1950285824), // XVADDWEV_D_WU_W ++ UINT64_C(1948123136), // XVADDWEV_H_B ++ UINT64_C(1949171712), // XVADDWEV_H_BU ++ UINT64_C(1950220288), // XVADDWEV_H_BU_B ++ UINT64_C(1948221440), // XVADDWEV_Q_D ++ UINT64_C(1949270016), // XVADDWEV_Q_DU ++ UINT64_C(1950318592), // XVADDWEV_Q_DU_D ++ UINT64_C(1948155904), // XVADDWEV_W_H ++ UINT64_C(1949204480), // XVADDWEV_W_HU ++ UINT64_C(1950253056), // XVADDWEV_W_HU_H ++ UINT64_C(1948450816), // XVADDWOD_D_W ++ UINT64_C(1949499392), // XVADDWOD_D_WU ++ UINT64_C(1950416896), // XVADDWOD_D_WU_W ++ UINT64_C(1948385280), // XVADDWOD_H_B ++ UINT64_C(1949433856), // XVADDWOD_H_BU ++ UINT64_C(1950351360), // XVADDWOD_H_BU_B ++ UINT64_C(1948483584), // XVADDWOD_Q_D ++ UINT64_C(1949532160), // XVADDWOD_Q_DU ++ UINT64_C(1950449664), // XVADDWOD_Q_DU_D ++ UINT64_C(1948418048), // XVADDWOD_W_H ++ UINT64_C(1949466624), // XVADDWOD_W_HU ++ UINT64_C(1950384128), // XVADDWOD_W_HU_H ++ UINT64_C(1946812416), // XVADD_B ++ UINT64_C(1946910720), // XVADD_D ++ UINT64_C(1946845184), // XVADD_H ++ UINT64_C(1965883392), // XVADD_Q ++ UINT64_C(1946877952), // XVADD_W ++ UINT64_C(2010120192), // XVANDI_B ++ UINT64_C(2010120192), // XVANDI_B_N ++ UINT64_C(1965555712), // XVANDN_V ++ UINT64_C(1965424640), // XVAND_V ++ UINT64_C(1952972800), // XVAVGR_B ++ UINT64_C(1953103872), // XVAVGR_BU ++ UINT64_C(1953071104), // XVAVGR_D ++ UINT64_C(1953202176), // XVAVGR_DU ++ UINT64_C(1953005568), // XVAVGR_H ++ UINT64_C(1953136640), // XVAVGR_HU ++ UINT64_C(1953038336), // XVAVGR_W ++ UINT64_C(1953169408), // XVAVGR_WU ++ UINT64_C(1952710656), // XVAVG_B ++ UINT64_C(1952841728), // XVAVG_BU ++ UINT64_C(1952808960), // XVAVG_D ++ UINT64_C(1952940032), // XVAVG_DU ++ UINT64_C(1952743424), // XVAVG_H ++ UINT64_C(1952874496), // XVAVG_HU ++ UINT64_C(1952776192), // XVAVG_W ++ UINT64_C(1952907264), // XVAVG_WU ++ UINT64_C(1997545472), // XVBITCLRI_B ++ UINT64_C(1997602816), // XVBITCLRI_D ++ UINT64_C(1997553664), // XVBITCLRI_H ++ UINT64_C(1997570048), // XVBITCLRI_W ++ UINT64_C(1963720704), // XVBITCLR_B ++ UINT64_C(1963819008), // XVBITCLR_D ++ UINT64_C(1963753472), // XVBITCLR_H ++ UINT64_C(1963786240), // XVBITCLR_W ++ UINT64_C(1998069760), // XVBITREVI_B ++ UINT64_C(1998127104), // XVBITREVI_D ++ UINT64_C(1998077952), // XVBITREVI_H ++ UINT64_C(1998094336), // XVBITREVI_W ++ UINT64_C(1963982848), // XVBITREV_B ++ UINT64_C(1964081152), // XVBITREV_D ++ UINT64_C(1964015616), // XVBITREV_H ++ UINT64_C(1964048384), // XVBITREV_W ++ UINT64_C(2009333760), // XVBITSELI_B ++ UINT64_C(2009333760), // XVBITSELI_B_N ++ UINT64_C(220200960), // XVBITSEL_V ++ UINT64_C(1997807616), // XVBITSETI_B ++ UINT64_C(1997864960), // XVBITSETI_D ++ UINT64_C(1997815808), // XVBITSETI_H ++ UINT64_C(1997832192), // XVBITSETI_W ++ UINT64_C(1963851776), // XVBITSET_B ++ UINT64_C(1963950080), // XVBITSET_D ++ UINT64_C(1963884544), // XVBITSET_H ++ UINT64_C(1963917312), // XVBITSET_W ++ UINT64_C(1989017600), // XVBSLL_V ++ UINT64_C(1989050368), // XVBSRL_V ++ UINT64_C(1989935104), // XVCLO_B ++ UINT64_C(1989938176), // XVCLO_D ++ UINT64_C(1989936128), // XVCLO_H ++ UINT64_C(1989937152), // XVCLO_W ++ UINT64_C(1989939200), // XVCLZ_B ++ UINT64_C(1989942272), // XVCLZ_D ++ UINT64_C(1989940224), // XVCLZ_H ++ UINT64_C(1989941248), // XVCLZ_W ++ UINT64_C(1960837120), // XVDIV_B ++ UINT64_C(1961099264), // XVDIV_BU ++ UINT64_C(1960935424), // XVDIV_D ++ UINT64_C(1961197568), // XVDIV_DU ++ UINT64_C(1960869888), // XVDIV_H ++ UINT64_C(1961132032), // XVDIV_HU ++ UINT64_C(1960902656), // XVDIV_W ++ UINT64_C(1961164800), // XVDIV_WU ++ UINT64_C(1990129664), // XVEXTH_DU_WU ++ UINT64_C(1990125568), // XVEXTH_D_W ++ UINT64_C(1990127616), // XVEXTH_HU_BU ++ UINT64_C(1990123520), // XVEXTH_H_B ++ UINT64_C(1990130688), // XVEXTH_QU_DU ++ UINT64_C(1990126592), // XVEXTH_Q_D ++ UINT64_C(1990128640), // XVEXTH_WU_HU ++ UINT64_C(1990124544), // XVEXTH_W_H ++ UINT64_C(1997340672), // XVEXTL_QU_DU ++ UINT64_C(1997078528), // XVEXTL_Q_D ++ UINT64_C(2005663744), // XVEXTRINS_B ++ UINT64_C(2004877312), // XVEXTRINS_D ++ UINT64_C(2005401600), // XVEXTRINS_H ++ UINT64_C(2005139456), // XVEXTRINS_W ++ UINT64_C(1966145536), // XVFADD_D ++ UINT64_C(1966112768), // XVFADD_S ++ UINT64_C(1989990400), // XVFCLASS_D ++ UINT64_C(1989989376), // XVFCLASS_S ++ UINT64_C(211812352), // XVFCMP_CAF_D ++ UINT64_C(210763776), // XVFCMP_CAF_S ++ UINT64_C(211943424), // XVFCMP_CEQ_D ++ UINT64_C(210894848), // XVFCMP_CEQ_S ++ UINT64_C(212008960), // XVFCMP_CLE_D ++ UINT64_C(210960384), // XVFCMP_CLE_S ++ UINT64_C(211877888), // XVFCMP_CLT_D ++ UINT64_C(210829312), // XVFCMP_CLT_S ++ UINT64_C(212336640), // XVFCMP_CNE_D ++ UINT64_C(211288064), // XVFCMP_CNE_S ++ UINT64_C(212467712), // XVFCMP_COR_D ++ UINT64_C(211419136), // XVFCMP_COR_S ++ UINT64_C(212205568), // XVFCMP_CUEQ_D ++ UINT64_C(211156992), // XVFCMP_CUEQ_S ++ UINT64_C(212271104), // XVFCMP_CULE_D ++ UINT64_C(211222528), // XVFCMP_CULE_S ++ UINT64_C(212140032), // XVFCMP_CULT_D ++ UINT64_C(211091456), // XVFCMP_CULT_S ++ UINT64_C(212598784), // XVFCMP_CUNE_D ++ UINT64_C(211550208), // XVFCMP_CUNE_S ++ UINT64_C(212074496), // XVFCMP_CUN_D ++ UINT64_C(211025920), // XVFCMP_CUN_S ++ UINT64_C(211845120), // XVFCMP_SAF_D ++ UINT64_C(210796544), // XVFCMP_SAF_S ++ UINT64_C(211976192), // XVFCMP_SEQ_D ++ UINT64_C(210927616), // XVFCMP_SEQ_S ++ UINT64_C(212041728), // XVFCMP_SLE_D ++ UINT64_C(210993152), // XVFCMP_SLE_S ++ UINT64_C(211910656), // XVFCMP_SLT_D ++ UINT64_C(210862080), // XVFCMP_SLT_S ++ UINT64_C(212369408), // XVFCMP_SNE_D ++ UINT64_C(211320832), // XVFCMP_SNE_S ++ UINT64_C(212500480), // XVFCMP_SOR_D ++ UINT64_C(211451904), // XVFCMP_SOR_S ++ UINT64_C(212238336), // XVFCMP_SUEQ_D ++ UINT64_C(211189760), // XVFCMP_SUEQ_S ++ UINT64_C(212303872), // XVFCMP_SULE_D ++ UINT64_C(211255296), // XVFCMP_SULE_S ++ UINT64_C(212172800), // XVFCMP_SULT_D ++ UINT64_C(211124224), // XVFCMP_SULT_S ++ UINT64_C(212631552), // XVFCMP_SUNE_D ++ UINT64_C(211582976), // XVFCMP_SUNE_S ++ UINT64_C(212107264), // XVFCMP_SUN_D ++ UINT64_C(211058688), // XVFCMP_SUN_S ++ UINT64_C(1990063104), // XVFCVTH_D_S ++ UINT64_C(1990061056), // XVFCVTH_S_H ++ UINT64_C(1990062080), // XVFCVTL_D_S ++ UINT64_C(1990060032), // XVFCVTL_S_H ++ UINT64_C(1967521792), // XVFCVT_H_S ++ UINT64_C(1967554560), // XVFCVT_S_D ++ UINT64_C(1966800896), // XVFDIV_D ++ UINT64_C(1966768128), // XVFDIV_S ++ UINT64_C(1990071296), // XVFFINTH_D_W ++ UINT64_C(1990070272), // XVFFINTL_D_W ++ UINT64_C(1990068224), // XVFFINT_D_L ++ UINT64_C(1990069248), // XVFFINT_D_LU ++ UINT64_C(1967652864), // XVFFINT_S_L ++ UINT64_C(1990066176), // XVFFINT_S_W ++ UINT64_C(1990067200), // XVFFINT_S_WU ++ UINT64_C(1989986304), // XVFLOGB_D ++ UINT64_C(1989985280), // XVFLOGB_S ++ UINT64_C(169869312), // XVFMADD_D ++ UINT64_C(168820736), // XVFMADD_S ++ UINT64_C(1967194112), // XVFMAXA_D ++ UINT64_C(1967161344), // XVFMAXA_S ++ UINT64_C(1966931968), // XVFMAX_D ++ UINT64_C(1966899200), // XVFMAX_S ++ UINT64_C(1967325184), // XVFMINA_D ++ UINT64_C(1967292416), // XVFMINA_S ++ UINT64_C(1967063040), // XVFMIN_D ++ UINT64_C(1967030272), // XVFMIN_S ++ UINT64_C(174063616), // XVFMSUB_D ++ UINT64_C(173015040), // XVFMSUB_S ++ UINT64_C(1966669824), // XVFMUL_D ++ UINT64_C(1966637056), // XVFMUL_S ++ UINT64_C(178257920), // XVFNMADD_D ++ UINT64_C(177209344), // XVFNMADD_S ++ UINT64_C(182452224), // XVFNMSUB_D ++ UINT64_C(181403648), // XVFNMSUB_S ++ UINT64_C(1989998592), // XVFRECIP_D ++ UINT64_C(1989997568), // XVFRECIP_S ++ UINT64_C(1990019072), // XVFRINTRM_D ++ UINT64_C(1990018048), // XVFRINTRM_S ++ UINT64_C(1990031360), // XVFRINTRNE_D ++ UINT64_C(1990030336), // XVFRINTRNE_S ++ UINT64_C(1990023168), // XVFRINTRP_D ++ UINT64_C(1990022144), // XVFRINTRP_S ++ UINT64_C(1990027264), // XVFRINTRZ_D ++ UINT64_C(1990026240), // XVFRINTRZ_S ++ UINT64_C(1990014976), // XVFRINT_D ++ UINT64_C(1990013952), // XVFRINT_S ++ UINT64_C(1990002688), // XVFRSQRT_D ++ UINT64_C(1990001664), // XVFRSQRT_S ++ UINT64_C(1989804032), // XVFRSTPI_B ++ UINT64_C(1989836800), // XVFRSTPI_H ++ UINT64_C(1965752320), // XVFRSTP_B ++ UINT64_C(1965785088), // XVFRSTP_H ++ UINT64_C(1989994496), // XVFSQRT_D ++ UINT64_C(1989993472), // XVFSQRT_S ++ UINT64_C(1966276608), // XVFSUB_D ++ UINT64_C(1966243840), // XVFSUB_S ++ UINT64_C(1990099968), // XVFTINTH_L_S ++ UINT64_C(1990098944), // XVFTINTL_L_S ++ UINT64_C(1990102016), // XVFTINTRMH_L_S ++ UINT64_C(1990100992), // XVFTINTRML_L_S ++ UINT64_C(1990081536), // XVFTINTRM_L_D ++ UINT64_C(1967783936), // XVFTINTRM_W_D ++ UINT64_C(1990080512), // XVFTINTRM_W_S ++ UINT64_C(1990108160), // XVFTINTRNEH_L_S ++ UINT64_C(1990107136), // XVFTINTRNEL_L_S ++ UINT64_C(1990087680), // XVFTINTRNE_L_D ++ UINT64_C(1967882240), // XVFTINTRNE_W_D ++ UINT64_C(1990086656), // XVFTINTRNE_W_S ++ UINT64_C(1990104064), // XVFTINTRPH_L_S ++ UINT64_C(1990103040), // XVFTINTRPL_L_S ++ UINT64_C(1990083584), // XVFTINTRP_L_D ++ UINT64_C(1967816704), // XVFTINTRP_W_D ++ UINT64_C(1990082560), // XVFTINTRP_W_S ++ UINT64_C(1990106112), // XVFTINTRZH_L_S ++ UINT64_C(1990105088), // XVFTINTRZL_L_S ++ UINT64_C(1990095872), // XVFTINTRZ_LU_D ++ UINT64_C(1990085632), // XVFTINTRZ_L_D ++ UINT64_C(1990094848), // XVFTINTRZ_WU_S ++ UINT64_C(1967849472), // XVFTINTRZ_W_D ++ UINT64_C(1990084608), // XVFTINTRZ_W_S ++ UINT64_C(1990089728), // XVFTINT_LU_D ++ UINT64_C(1990079488), // XVFTINT_L_D ++ UINT64_C(1990088704), // XVFTINT_WU_S ++ UINT64_C(1967751168), // XVFTINT_W_D ++ UINT64_C(1990078464), // XVFTINT_W_S ++ UINT64_C(1951989760), // XVHADDW_DU_WU ++ UINT64_C(1951727616), // XVHADDW_D_W ++ UINT64_C(1951924224), // XVHADDW_HU_BU ++ UINT64_C(1951662080), // XVHADDW_H_B ++ UINT64_C(1952022528), // XVHADDW_QU_DU ++ UINT64_C(1951760384), // XVHADDW_Q_D ++ UINT64_C(1951956992), // XVHADDW_WU_HU ++ UINT64_C(1951694848), // XVHADDW_W_H ++ UINT64_C(1990164480), // XVHSELI_D ++ UINT64_C(1952120832), // XVHSUBW_DU_WU ++ UINT64_C(1951858688), // XVHSUBW_D_W ++ UINT64_C(1952055296), // XVHSUBW_HU_BU ++ UINT64_C(1951793152), // XVHSUBW_H_B ++ UINT64_C(1952153600), // XVHSUBW_QU_DU ++ UINT64_C(1951891456), // XVHSUBW_Q_D ++ UINT64_C(1952088064), // XVHSUBW_WU_HU ++ UINT64_C(1951825920), // XVHSUBW_W_H ++ UINT64_C(1964769280), // XVILVH_B ++ UINT64_C(1964867584), // XVILVH_D ++ UINT64_C(1964802048), // XVILVH_H ++ UINT64_C(1964834816), // XVILVH_W ++ UINT64_C(1964638208), // XVILVL_B ++ UINT64_C(1964736512), // XVILVL_D ++ UINT64_C(1964670976), // XVILVL_H ++ UINT64_C(1964703744), // XVILVL_W ++ UINT64_C(1995169792), // XVINSGR2VR_D ++ UINT64_C(1995161600), // XVINSGR2VR_W ++ UINT64_C(1996480512), // XVINSVE0_D ++ UINT64_C(1996472320), // XVINSVE0_W ++ UINT64_C(746586112), // XVLD ++ UINT64_C(2011168768), // XVLDI ++ UINT64_C(2011168768), // XVLDI_B ++ UINT64_C(2011267072), // XVLDI_D ++ UINT64_C(2011201536), // XVLDI_H ++ UINT64_C(2011234304), // XVLDI_W ++ UINT64_C(847249408), // XVLDREPL_B ++ UINT64_C(839909376), // XVLDREPL_D ++ UINT64_C(843055104), // XVLDREPL_H ++ UINT64_C(840957952), // XVLDREPL_W ++ UINT64_C(944242688), // XVLDX ++ UINT64_C(746586112), // XVLD_D ++ UINT64_C(746586112), // XVLD_H ++ UINT64_C(746586112), // XVLD_W ++ UINT64_C(1957494784), // XVMADDWEV_D_W ++ UINT64_C(1958019072), // XVMADDWEV_D_WU ++ UINT64_C(1958543360), // XVMADDWEV_D_WU_W ++ UINT64_C(1957429248), // XVMADDWEV_H_B ++ UINT64_C(1957953536), // XVMADDWEV_H_BU ++ UINT64_C(1958477824), // XVMADDWEV_H_BU_B ++ UINT64_C(1957527552), // XVMADDWEV_Q_D ++ UINT64_C(1958051840), // XVMADDWEV_Q_DU ++ UINT64_C(1958576128), // XVMADDWEV_Q_DU_D ++ UINT64_C(1957462016), // XVMADDWEV_W_H ++ UINT64_C(1957986304), // XVMADDWEV_W_HU ++ UINT64_C(1958510592), // XVMADDWEV_W_HU_H ++ UINT64_C(1957625856), // XVMADDWOD_D_W ++ UINT64_C(1958150144), // XVMADDWOD_D_WU ++ UINT64_C(1958674432), // XVMADDWOD_D_WU_W ++ UINT64_C(1957560320), // XVMADDWOD_H_B ++ UINT64_C(1958084608), // XVMADDWOD_H_BU ++ UINT64_C(1958608896), // XVMADDWOD_H_BU_B ++ UINT64_C(1957658624), // XVMADDWOD_Q_D ++ UINT64_C(1958182912), // XVMADDWOD_Q_DU ++ UINT64_C(1958707200), // XVMADDWOD_Q_DU_D ++ UINT64_C(1957593088), // XVMADDWOD_W_H ++ UINT64_C(1958117376), // XVMADDWOD_W_HU ++ UINT64_C(1958641664), // XVMADDWOD_W_HU_H ++ UINT64_C(1957167104), // XVMADD_B ++ UINT64_C(1957265408), // XVMADD_D ++ UINT64_C(1957199872), // XVMADD_H ++ UINT64_C(1957232640), // XVMADD_W ++ UINT64_C(1989148672), // XVMAXI_B ++ UINT64_C(1989410816), // XVMAXI_BU ++ UINT64_C(1989410816), // XVMAXI_BU_N ++ UINT64_C(1989148672), // XVMAXI_B_N ++ UINT64_C(1989246976), // XVMAXI_D ++ UINT64_C(1989509120), // XVMAXI_DU ++ UINT64_C(1989509120), // XVMAXI_DU_N ++ UINT64_C(1989246976), // XVMAXI_D_N ++ UINT64_C(1989181440), // XVMAXI_H ++ UINT64_C(1989443584), // XVMAXI_HU ++ UINT64_C(1989443584), // XVMAXI_HU_N ++ UINT64_C(1989181440), // XVMAXI_H_N ++ UINT64_C(1989214208), // XVMAXI_W ++ UINT64_C(1989476352), // XVMAXI_WU ++ UINT64_C(1989476352), // XVMAXI_WU_N ++ UINT64_C(1989214208), // XVMAXI_W_N ++ UINT64_C(1953497088), // XVMAX_B ++ UINT64_C(1953759232), // XVMAX_BU ++ UINT64_C(1953595392), // XVMAX_D ++ UINT64_C(1953857536), // XVMAX_DU ++ UINT64_C(1953529856), // XVMAX_H ++ UINT64_C(1953792000), // XVMAX_HU ++ UINT64_C(1953562624), // XVMAX_W ++ UINT64_C(1953824768), // XVMAX_WU ++ UINT64_C(1989279744), // XVMINI_B ++ UINT64_C(1989541888), // XVMINI_BU ++ UINT64_C(1989541888), // XVMINI_BU_N ++ UINT64_C(1989279744), // XVMINI_B_N ++ UINT64_C(1989378048), // XVMINI_D ++ UINT64_C(1989640192), // XVMINI_DU ++ UINT64_C(1989640192), // XVMINI_DU_N ++ UINT64_C(1989378048), // XVMINI_D_N ++ UINT64_C(1989312512), // XVMINI_H ++ UINT64_C(1989574656), // XVMINI_HU ++ UINT64_C(1989574656), // XVMINI_HU_N ++ UINT64_C(1989312512), // XVMINI_H_N ++ UINT64_C(1989345280), // XVMINI_W ++ UINT64_C(1989607424), // XVMINI_WU ++ UINT64_C(1989607424), // XVMINI_WU_N ++ UINT64_C(1989345280), // XVMINI_W_N ++ UINT64_C(1953628160), // XVMIN_B ++ UINT64_C(1953890304), // XVMIN_BU ++ UINT64_C(1953726464), // XVMIN_D ++ UINT64_C(1953988608), // XVMIN_DU ++ UINT64_C(1953660928), // XVMIN_H ++ UINT64_C(1953923072), // XVMIN_HU ++ UINT64_C(1953693696), // XVMIN_W ++ UINT64_C(1953955840), // XVMIN_WU ++ UINT64_C(1960968192), // XVMOD_B ++ UINT64_C(1961230336), // XVMOD_BU ++ UINT64_C(1961066496), // XVMOD_D ++ UINT64_C(1961328640), // XVMOD_DU ++ UINT64_C(1961000960), // XVMOD_H ++ UINT64_C(1961263104), // XVMOD_HU ++ UINT64_C(1961033728), // XVMOD_W ++ UINT64_C(1961295872), // XVMOD_WU ++ UINT64_C(1989955584), // XVMSKGEZ_B ++ UINT64_C(1989951488), // XVMSKLTZ_B ++ UINT64_C(1989954560), // XVMSKLTZ_D ++ UINT64_C(1989952512), // XVMSKLTZ_H ++ UINT64_C(1989953536), // XVMSKLTZ_W ++ UINT64_C(1989959680), // XVMSKNZ_B ++ UINT64_C(1957298176), // XVMSUB_B ++ UINT64_C(1957396480), // XVMSUB_D ++ UINT64_C(1957330944), // XVMSUB_H ++ UINT64_C(1957363712), // XVMSUB_W ++ UINT64_C(1954938880), // XVMUH_B ++ UINT64_C(1955069952), // XVMUH_BU ++ UINT64_C(1955037184), // XVMUH_D ++ UINT64_C(1955168256), // XVMUH_DU ++ UINT64_C(1954971648), // XVMUH_H ++ UINT64_C(1955102720), // XVMUH_HU ++ UINT64_C(1955004416), // XVMUH_W ++ UINT64_C(1955135488), // XVMUH_WU ++ UINT64_C(1955659776), // XVMULWEV_D_W ++ UINT64_C(1956184064), // XVMULWEV_D_WU ++ UINT64_C(1956708352), // XVMULWEV_D_WU_W ++ UINT64_C(1955594240), // XVMULWEV_H_B ++ UINT64_C(1956118528), // XVMULWEV_H_BU ++ UINT64_C(1956642816), // XVMULWEV_H_BU_B ++ UINT64_C(1955692544), // XVMULWEV_Q_D ++ UINT64_C(1956216832), // XVMULWEV_Q_DU ++ UINT64_C(1956741120), // XVMULWEV_Q_DU_D ++ UINT64_C(1955627008), // XVMULWEV_W_H ++ UINT64_C(1956151296), // XVMULWEV_W_HU ++ UINT64_C(1956675584), // XVMULWEV_W_HU_H ++ UINT64_C(1955790848), // XVMULWOD_D_W ++ UINT64_C(1956315136), // XVMULWOD_D_WU ++ UINT64_C(1956839424), // XVMULWOD_D_WU_W ++ UINT64_C(1955725312), // XVMULWOD_H_B ++ UINT64_C(1956249600), // XVMULWOD_H_BU ++ UINT64_C(1956773888), // XVMULWOD_H_BU_B ++ UINT64_C(1955823616), // XVMULWOD_Q_D ++ UINT64_C(1956347904), // XVMULWOD_Q_DU ++ UINT64_C(1956872192), // XVMULWOD_Q_DU_D ++ UINT64_C(1955758080), // XVMULWOD_W_H ++ UINT64_C(1956282368), // XVMULWOD_W_HU ++ UINT64_C(1956806656), // XVMULWOD_W_HU_H ++ UINT64_C(1954807808), // XVMUL_B ++ UINT64_C(1954906112), // XVMUL_D ++ UINT64_C(1954840576), // XVMUL_H ++ UINT64_C(1954873344), // XVMUL_W ++ UINT64_C(1989947392), // XVNEG_B ++ UINT64_C(1989950464), // XVNEG_D ++ UINT64_C(1989948416), // XVNEG_H ++ UINT64_C(1989949440), // XVNEG_W ++ UINT64_C(2010906624), // XVNORI_B ++ UINT64_C(1965522944), // XVNOR_V ++ UINT64_C(2010382336), // XVORI_B ++ UINT64_C(1965588480), // XVORN_V ++ UINT64_C(1965457408), // XVOR_V ++ UINT64_C(1964376064), // XVPACKEV_B ++ UINT64_C(1964474368), // XVPACKEV_D ++ UINT64_C(1964408832), // XVPACKEV_H ++ UINT64_C(1964441600), // XVPACKEV_W ++ UINT64_C(1964507136), // XVPACKOD_B ++ UINT64_C(1964605440), // XVPACKOD_D ++ UINT64_C(1964539904), // XVPACKOD_H ++ UINT64_C(1964572672), // XVPACKOD_W ++ UINT64_C(1989943296), // XVPCNT_B ++ UINT64_C(1989946368), // XVPCNT_D ++ UINT64_C(1989944320), // XVPCNT_H ++ UINT64_C(1989945344), // XVPCNT_W ++ UINT64_C(2011693056), // XVPERMI_D ++ UINT64_C(2011955200), // XVPERMI_Q ++ UINT64_C(2011955200), // XVPERMI_QD ++ UINT64_C(2011955200), // XVPERMI_QH ++ UINT64_C(2011955200), // XVPERMI_QW ++ UINT64_C(2011430912), // XVPERMI_W ++ UINT64_C(1971126272), // XVPERM_W ++ UINT64_C(1964900352), // XVPICKEV_B ++ UINT64_C(1964998656), // XVPICKEV_D ++ UINT64_C(1964933120), // XVPICKEV_H ++ UINT64_C(1964965888), // XVPICKEV_W ++ UINT64_C(1965031424), // XVPICKOD_B ++ UINT64_C(1965129728), // XVPICKOD_D ++ UINT64_C(1965064192), // XVPICKOD_H ++ UINT64_C(1965096960), // XVPICKOD_W ++ UINT64_C(1995431936), // XVPICKVE2GR_D ++ UINT64_C(1995694080), // XVPICKVE2GR_DU ++ UINT64_C(1995423744), // XVPICKVE2GR_W ++ UINT64_C(1995685888), // XVPICKVE2GR_WU ++ UINT64_C(1996742656), // XVPICKVE_D ++ UINT64_C(1996734464), // XVPICKVE_W ++ UINT64_C(1995931648), // XVREPL128VEI_B ++ UINT64_C(1995960320), // XVREPL128VEI_D ++ UINT64_C(1995948032), // XVREPL128VEI_H ++ UINT64_C(1995956224), // XVREPL128VEI_W ++ UINT64_C(1990131712), // XVREPLGR2VR_B ++ UINT64_C(1990134784), // XVREPLGR2VR_D ++ UINT64_C(1990132736), // XVREPLGR2VR_H ++ UINT64_C(1990133760), // XVREPLGR2VR_W ++ UINT64_C(1996947456), // XVREPLVE0_B ++ UINT64_C(1997004800), // XVREPLVE0_D ++ UINT64_C(1996980224), // XVREPLVE0_H ++ UINT64_C(1997008896), // XVREPLVE0_Q ++ UINT64_C(1996996608), // XVREPLVE0_W ++ UINT64_C(1965162496), // XVREPLVE_B ++ UINT64_C(1965260800), // XVREPLVE_D ++ UINT64_C(1965195264), // XVREPLVE_H ++ UINT64_C(1965228032), // XVREPLVE_W ++ UINT64_C(1965228032), // XVREPLVE_W_N ++ UINT64_C(1990205440), // XVROTRI_B ++ UINT64_C(1990262784), // XVROTRI_D ++ UINT64_C(1990213632), // XVROTRI_H ++ UINT64_C(1990230016), // XVROTRI_W ++ UINT64_C(1961754624), // XVROTR_B ++ UINT64_C(1961852928), // XVROTR_D ++ UINT64_C(1961787392), // XVROTR_H ++ UINT64_C(1961820160), // XVROTR_W ++ UINT64_C(1950744576), // XVSADD_B ++ UINT64_C(1951006720), // XVSADD_BU ++ UINT64_C(1950842880), // XVSADD_D ++ UINT64_C(1951105024), // XVSADD_DU ++ UINT64_C(1950777344), // XVSADD_H ++ UINT64_C(1951039488), // XVSADD_HU ++ UINT64_C(1950810112), // XVSADD_W ++ UINT64_C(1951072256), // XVSADD_WU ++ UINT64_C(1998856192), // XVSAT_B ++ UINT64_C(1999118336), // XVSAT_BU ++ UINT64_C(1998913536), // XVSAT_D ++ UINT64_C(1999175680), // XVSAT_DU ++ UINT64_C(1998864384), // XVSAT_H ++ UINT64_C(1999126528), // XVSAT_HU ++ UINT64_C(1998880768), // XVSAT_W ++ UINT64_C(1999142912), // XVSAT_WU ++ UINT64_C(1988100096), // XVSEQI_B ++ UINT64_C(1988100096), // XVSEQI_B_N ++ UINT64_C(1988198400), // XVSEQI_D ++ UINT64_C(1988198400), // XVSEQI_D_N ++ UINT64_C(1988132864), // XVSEQI_H ++ UINT64_C(1988132864), // XVSEQI_H_N ++ UINT64_C(1988165632), // XVSEQI_W ++ UINT64_C(1988165632), // XVSEQI_W_N ++ UINT64_C(1946157056), // XVSEQ_B ++ UINT64_C(1946255360), // XVSEQ_D ++ UINT64_C(1946189824), // XVSEQ_H ++ UINT64_C(1946222592), // XVSEQ_W ++ UINT64_C(1989980160), // XVSETALLNEZ_B ++ UINT64_C(1989983232), // XVSETALLNEZ_D ++ UINT64_C(1989981184), // XVSETALLNEZ_H ++ UINT64_C(1989982208), // XVSETALLNEZ_W ++ UINT64_C(1989976064), // XVSETANYEQZ_B ++ UINT64_C(1989979136), // XVSETANYEQZ_D ++ UINT64_C(1989977088), // XVSETANYEQZ_H ++ UINT64_C(1989978112), // XVSETANYEQZ_W ++ UINT64_C(1989974016), // XVSETEQZ_V ++ UINT64_C(1989975040), // XVSETNEZ_V ++ UINT64_C(2005925888), // XVSHUF4I_B ++ UINT64_C(2006712320), // XVSHUF4I_D ++ UINT64_C(2006188032), // XVSHUF4I_H ++ UINT64_C(2006450176), // XVSHUF4I_W ++ UINT64_C(224395264), // XVSHUF_B ++ UINT64_C(1971027968), // XVSHUF_D ++ UINT64_C(1970962432), // XVSHUF_H ++ UINT64_C(1970995200), // XVSHUF_W ++ UINT64_C(1965948928), // XVSIGNCOV_B ++ UINT64_C(1966047232), // XVSIGNCOV_D ++ UINT64_C(1965981696), // XVSIGNCOV_H ++ UINT64_C(1966014464), // XVSIGNCOV_W ++ UINT64_C(1988231168), // XVSLEI_B ++ UINT64_C(1988362240), // XVSLEI_BU ++ UINT64_C(1988362240), // XVSLEI_BU_N ++ UINT64_C(1988231168), // XVSLEI_B_N ++ UINT64_C(1988329472), // XVSLEI_D ++ UINT64_C(1988460544), // XVSLEI_DU ++ UINT64_C(1988460544), // XVSLEI_DU_N ++ UINT64_C(1988329472), // XVSLEI_D_N ++ UINT64_C(1988263936), // XVSLEI_H ++ UINT64_C(1988395008), // XVSLEI_HU ++ UINT64_C(1988395008), // XVSLEI_HU_N ++ UINT64_C(1988263936), // XVSLEI_H_N ++ UINT64_C(1988296704), // XVSLEI_W ++ UINT64_C(1988427776), // XVSLEI_WU ++ UINT64_C(1988427776), // XVSLEI_WU_N ++ UINT64_C(1988296704), // XVSLEI_W_N ++ UINT64_C(1946288128), // XVSLE_B ++ UINT64_C(1946419200), // XVSLE_BU ++ UINT64_C(1946386432), // XVSLE_D ++ UINT64_C(1946517504), // XVSLE_DU ++ UINT64_C(1946320896), // XVSLE_H ++ UINT64_C(1946451968), // XVSLE_HU ++ UINT64_C(1946353664), // XVSLE_W ++ UINT64_C(1946484736), // XVSLE_WU ++ UINT64_C(1999380480), // XVSLLI_B ++ UINT64_C(1999380480), // XVSLLI_B_N ++ UINT64_C(1999437824), // XVSLLI_D ++ UINT64_C(1999437824), // XVSLLI_D_N ++ UINT64_C(1999388672), // XVSLLI_H ++ UINT64_C(1999388672), // XVSLLI_H_N ++ UINT64_C(1999405056), // XVSLLI_W ++ UINT64_C(1999405056), // XVSLLI_W_N ++ UINT64_C(1997307904), // XVSLLWIL_DU_WU ++ UINT64_C(1997045760), // XVSLLWIL_D_W ++ UINT64_C(1997283328), // XVSLLWIL_HU_BU ++ UINT64_C(1997021184), // XVSLLWIL_H_B ++ UINT64_C(1997291520), // XVSLLWIL_WU_HU ++ UINT64_C(1997029376), // XVSLLWIL_W_H ++ UINT64_C(1961361408), // XVSLL_B ++ UINT64_C(1961459712), // XVSLL_D ++ UINT64_C(1961394176), // XVSLL_H ++ UINT64_C(1961426944), // XVSLL_W ++ UINT64_C(1988493312), // XVSLTI_B ++ UINT64_C(1988624384), // XVSLTI_BU ++ UINT64_C(1988624384), // XVSLTI_BU_N ++ UINT64_C(1988493312), // XVSLTI_B_N ++ UINT64_C(1988591616), // XVSLTI_D ++ UINT64_C(1988722688), // XVSLTI_DU ++ UINT64_C(1988722688), // XVSLTI_DU_N ++ UINT64_C(1988591616), // XVSLTI_D_N ++ UINT64_C(1988526080), // XVSLTI_H ++ UINT64_C(1988657152), // XVSLTI_HU ++ UINT64_C(1988657152), // XVSLTI_HU_N ++ UINT64_C(1988526080), // XVSLTI_H_N ++ UINT64_C(1988558848), // XVSLTI_W ++ UINT64_C(1988689920), // XVSLTI_WU ++ UINT64_C(1988689920), // XVSLTI_WU_N ++ UINT64_C(1988558848), // XVSLTI_W_N ++ UINT64_C(1946550272), // XVSLT_B ++ UINT64_C(1946681344), // XVSLT_BU ++ UINT64_C(1946648576), // XVSLT_D ++ UINT64_C(1946779648), // XVSLT_DU ++ UINT64_C(1946583040), // XVSLT_H ++ UINT64_C(1946714112), // XVSLT_HU ++ UINT64_C(1946615808), // XVSLT_W ++ UINT64_C(1946746880), // XVSLT_WU ++ UINT64_C(1999904768), // XVSRAI_B ++ UINT64_C(1999904768), // XVSRAI_B_N ++ UINT64_C(1999962112), // XVSRAI_D ++ UINT64_C(1999962112), // XVSRAI_D_N ++ UINT64_C(1999912960), // XVSRAI_H ++ UINT64_C(1999912960), // XVSRAI_H_N ++ UINT64_C(1999929344), // XVSRAI_W ++ UINT64_C(1999929344), // XVSRAI_W_N ++ UINT64_C(2002272256), // XVSRANI_B_H ++ UINT64_C(2002386944), // XVSRANI_D_Q ++ UINT64_C(2002288640), // XVSRANI_H_W ++ UINT64_C(2002321408), // XVSRANI_W_D ++ UINT64_C(1962311680), // XVSRAN_B_H ++ UINT64_C(1962344448), // XVSRAN_H_W ++ UINT64_C(1962377216), // XVSRAN_W_D ++ UINT64_C(1990729728), // XVSRARI_B ++ UINT64_C(1990787072), // XVSRARI_D ++ UINT64_C(1990737920), // XVSRARI_H ++ UINT64_C(1990754304), // XVSRARI_W ++ UINT64_C(2002534400), // XVSRARNI_B_H ++ UINT64_C(2002649088), // XVSRARNI_D_Q ++ UINT64_C(2002550784), // XVSRARNI_H_W ++ UINT64_C(2002583552), // XVSRARNI_W_D ++ UINT64_C(1962573824), // XVSRARN_B_H ++ UINT64_C(1962606592), // XVSRARN_H_W ++ UINT64_C(1962639360), // XVSRARN_W_D ++ UINT64_C(1962016768), // XVSRAR_B ++ UINT64_C(1962115072), // XVSRAR_D ++ UINT64_C(1962049536), // XVSRAR_H ++ UINT64_C(1962082304), // XVSRAR_W ++ UINT64_C(1961623552), // XVSRA_B ++ UINT64_C(1961721856), // XVSRA_D ++ UINT64_C(1961656320), // XVSRA_H ++ UINT64_C(1961689088), // XVSRA_W ++ UINT64_C(1999642624), // XVSRLI_B ++ UINT64_C(1999642624), // XVSRLI_B_N ++ UINT64_C(1999699968), // XVSRLI_D ++ UINT64_C(1999699968), // XVSRLI_D_N ++ UINT64_C(1999650816), // XVSRLI_H ++ UINT64_C(1999650816), // XVSRLI_H_N ++ UINT64_C(1999667200), // XVSRLI_W ++ UINT64_C(1999667200), // XVSRLI_W_N ++ UINT64_C(2000699392), // XVSRLNI_B_H ++ UINT64_C(2000814080), // XVSRLNI_D_Q ++ UINT64_C(2000715776), // XVSRLNI_H_W ++ UINT64_C(2000748544), // XVSRLNI_W_D ++ UINT64_C(1962180608), // XVSRLN_B_H ++ UINT64_C(1962213376), // XVSRLN_H_W ++ UINT64_C(1962246144), // XVSRLN_W_D ++ UINT64_C(1990467584), // XVSRLRI_B ++ UINT64_C(1990524928), // XVSRLRI_D ++ UINT64_C(1990475776), // XVSRLRI_H ++ UINT64_C(1990492160), // XVSRLRI_W ++ UINT64_C(2000961536), // XVSRLRNI_B_H ++ UINT64_C(2001076224), // XVSRLRNI_D_Q ++ UINT64_C(2000977920), // XVSRLRNI_H_W ++ UINT64_C(2001010688), // XVSRLRNI_W_D ++ UINT64_C(1962442752), // XVSRLRN_B_H ++ UINT64_C(1962475520), // XVSRLRN_H_W ++ UINT64_C(1962508288), // XVSRLRN_W_D ++ UINT64_C(1961885696), // XVSRLR_B ++ UINT64_C(1961984000), // XVSRLR_D ++ UINT64_C(1961918464), // XVSRLR_H ++ UINT64_C(1961951232), // XVSRLR_W ++ UINT64_C(1961492480), // XVSRL_B ++ UINT64_C(1961590784), // XVSRL_D ++ UINT64_C(1961525248), // XVSRL_H ++ UINT64_C(1961558016), // XVSRL_W ++ UINT64_C(2003058688), // XVSSRANI_BU_H ++ UINT64_C(2002796544), // XVSSRANI_B_H ++ UINT64_C(2003173376), // XVSSRANI_DU_Q ++ UINT64_C(2002911232), // XVSSRANI_D_Q ++ UINT64_C(2003075072), // XVSSRANI_HU_W ++ UINT64_C(2002812928), // XVSSRANI_H_W ++ UINT64_C(2003107840), // XVSSRANI_WU_D ++ UINT64_C(2002845696), // XVSSRANI_W_D ++ UINT64_C(1963360256), // XVSSRAN_BU_H ++ UINT64_C(1962835968), // XVSSRAN_B_H ++ UINT64_C(1963393024), // XVSSRAN_HU_W ++ UINT64_C(1962868736), // XVSSRAN_H_W ++ UINT64_C(1963425792), // XVSSRAN_WU_D ++ UINT64_C(1962901504), // XVSSRAN_W_D ++ UINT64_C(2003582976), // XVSSRARNI_BU_H ++ UINT64_C(2003320832), // XVSSRARNI_B_H ++ UINT64_C(2003697664), // XVSSRARNI_DU_Q ++ UINT64_C(2003435520), // XVSSRARNI_D_Q ++ UINT64_C(2003599360), // XVSSRARNI_HU_W ++ UINT64_C(2003337216), // XVSSRARNI_H_W ++ UINT64_C(2003632128), // XVSSRARNI_WU_D ++ UINT64_C(2003369984), // XVSSRARNI_W_D ++ UINT64_C(1963622400), // XVSSRARN_BU_H ++ UINT64_C(1963098112), // XVSSRARN_B_H ++ UINT64_C(1963655168), // XVSSRARN_HU_W ++ UINT64_C(1963130880), // XVSSRARN_H_W ++ UINT64_C(1963687936), // XVSSRARN_WU_D ++ UINT64_C(1963163648), // XVSSRARN_W_D ++ UINT64_C(2001485824), // XVSSRLNI_BU_H ++ UINT64_C(2001223680), // XVSSRLNI_B_H ++ UINT64_C(2001600512), // XVSSRLNI_DU_Q ++ UINT64_C(2001338368), // XVSSRLNI_D_Q ++ UINT64_C(2001502208), // XVSSRLNI_HU_W ++ UINT64_C(2001240064), // XVSSRLNI_H_W ++ UINT64_C(2001534976), // XVSSRLNI_WU_D ++ UINT64_C(2001272832), // XVSSRLNI_W_D ++ UINT64_C(1963229184), // XVSSRLN_BU_H ++ UINT64_C(1962704896), // XVSSRLN_B_H ++ UINT64_C(1963261952), // XVSSRLN_HU_W ++ UINT64_C(1962737664), // XVSSRLN_H_W ++ UINT64_C(1963294720), // XVSSRLN_WU_D ++ UINT64_C(1962770432), // XVSSRLN_W_D ++ UINT64_C(2002010112), // XVSSRLRNI_BU_H ++ UINT64_C(2001747968), // XVSSRLRNI_B_H ++ UINT64_C(2002124800), // XVSSRLRNI_DU_Q ++ UINT64_C(2001862656), // XVSSRLRNI_D_Q ++ UINT64_C(2002026496), // XVSSRLRNI_HU_W ++ UINT64_C(2001764352), // XVSSRLRNI_H_W ++ UINT64_C(2002059264), // XVSSRLRNI_WU_D ++ UINT64_C(2001797120), // XVSSRLRNI_W_D ++ UINT64_C(1963491328), // XVSSRLRN_BU_H ++ UINT64_C(1962967040), // XVSSRLRN_B_H ++ UINT64_C(1963524096), // XVSSRLRN_HU_W ++ UINT64_C(1962999808), // XVSSRLRN_H_W ++ UINT64_C(1963556864), // XVSSRLRN_WU_D ++ UINT64_C(1963032576), // XVSSRLRN_W_D ++ UINT64_C(1950875648), // XVSSUB_B ++ UINT64_C(1951137792), // XVSSUB_BU ++ UINT64_C(1950973952), // XVSSUB_D ++ UINT64_C(1951236096), // XVSSUB_DU ++ UINT64_C(1950908416), // XVSSUB_H ++ UINT64_C(1951170560), // XVSSUB_HU ++ UINT64_C(1950941184), // XVSSUB_W ++ UINT64_C(1951203328), // XVSSUB_WU ++ UINT64_C(750780416), // XVST ++ UINT64_C(864026624), // XVSTELM_B ++ UINT64_C(856686592), // XVSTELM_D ++ UINT64_C(859832320), // XVSTELM_H ++ UINT64_C(857735168), // XVSTELM_W ++ UINT64_C(944504832), // XVSTX ++ UINT64_C(750780416), // XVST_D ++ UINT64_C(750780416), // XVST_H ++ UINT64_C(750780416), // XVST_W ++ UINT64_C(1988886528), // XVSUBI_BU ++ UINT64_C(1988886528), // XVSUBI_BU_N ++ UINT64_C(1988984832), // XVSUBI_DU ++ UINT64_C(1988984832), // XVSUBI_DU_N ++ UINT64_C(1988919296), // XVSUBI_HU ++ UINT64_C(1988919296), // XVSUBI_HU_N ++ UINT64_C(1988952064), // XVSUBI_WU ++ UINT64_C(1988952064), // XVSUBI_WU_N ++ UINT64_C(1948319744), // XVSUBWEV_D_W ++ UINT64_C(1949368320), // XVSUBWEV_D_WU ++ UINT64_C(1948254208), // XVSUBWEV_H_B ++ UINT64_C(1949302784), // XVSUBWEV_H_BU ++ UINT64_C(1948352512), // XVSUBWEV_Q_D ++ UINT64_C(1949401088), // XVSUBWEV_Q_DU ++ UINT64_C(1948286976), // XVSUBWEV_W_H ++ UINT64_C(1949335552), // XVSUBWEV_W_HU ++ UINT64_C(1948581888), // XVSUBWOD_D_W ++ UINT64_C(1949630464), // XVSUBWOD_D_WU ++ UINT64_C(1948516352), // XVSUBWOD_H_B ++ UINT64_C(1949564928), // XVSUBWOD_H_BU ++ UINT64_C(1948614656), // XVSUBWOD_Q_D ++ UINT64_C(1949663232), // XVSUBWOD_Q_DU ++ UINT64_C(1948549120), // XVSUBWOD_W_H ++ UINT64_C(1949597696), // XVSUBWOD_W_HU ++ UINT64_C(1946943488), // XVSUB_B ++ UINT64_C(1947041792), // XVSUB_D ++ UINT64_C(1946976256), // XVSUB_H ++ UINT64_C(1965916160), // XVSUB_Q ++ UINT64_C(1947009024), // XVSUB_W ++ UINT64_C(2010644480), // XVXORI_B ++ UINT64_C(2010644480), // XVXORI_B_N ++ UINT64_C(1965490176), // XVXOR_V ++ UINT64_C(12582912), // ZEXT64_32 ++ UINT64_C(0) ++ }; ++ const unsigned opcode = MI.getOpcode(); ++ uint64_t Value = InstBits[opcode]; ++ uint64_t op = 0; ++ (void)op; // suppress warning ++ switch (opcode) { ++ case LoongArch::ERTN: ++ case LoongArch::TLBCLR: ++ case LoongArch::TLBFILL: ++ case LoongArch::TLBFLUSH: ++ case LoongArch::TLBRD: ++ case LoongArch::TLBSRCH: ++ case LoongArch::TLBWR: { ++ break; ++ } ++ case LoongArch::BREAK: ++ case LoongArch::DBCL: ++ case LoongArch::HYPCALL: ++ case LoongArch::SYSCALL: { ++ // op: Code ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(32767); ++ Value |= op; ++ break; ++ } ++ case LoongArch::FSEL_T_D: ++ case LoongArch::FSEL_T_S: { ++ // op: ca ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(7); ++ op <<= 15; ++ Value |= op; ++ // op: fk ++ op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 10; ++ Value |= op; ++ // op: fj ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: fd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ break; ++ } ++ case LoongArch::MOVFR2CF: ++ case LoongArch::MOVFR2CF32: { ++ // op: cd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(7); ++ Value |= op; ++ // op: fj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ break; ++ } ++ case LoongArch::MOVGR2CF: ++ case LoongArch::MOVGR2CF32: { ++ // op: cd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(7); ++ Value |= op; ++ // op: rj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ break; ++ } ++ case LoongArch::MOVCF2FR: ++ case LoongArch::MOVCF2FR32: { ++ // op: cj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(7); ++ op <<= 5; ++ Value |= op; ++ // op: fd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ break; ++ } ++ case LoongArch::MOVCF2GR: ++ case LoongArch::MOVCF2GR32: { ++ // op: cj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(7); ++ op <<= 5; ++ Value |= op; ++ // op: rd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ break; ++ } ++ case LoongArch::FMADD_D: ++ case LoongArch::FMADD_S: ++ case LoongArch::FMSUB_D: ++ case LoongArch::FMSUB_S: ++ case LoongArch::FNMADD_D: ++ case LoongArch::FNMADD_S: ++ case LoongArch::FNMSUB_D: ++ case LoongArch::FNMSUB_S: { ++ // op: fa ++ op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 15; ++ Value |= op; ++ // op: fk ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 10; ++ Value |= op; ++ // op: fj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: fd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ break; ++ } ++ case LoongArch::MOVGR2FCSR: { ++ // op: fcsr ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: rj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ break; ++ } ++ case LoongArch::MOVFCSR2GR: { ++ // op: fcsr ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: rd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ break; ++ } ++ case LoongArch::FCMP_D64: ++ case LoongArch::FCMP_S32: { ++ // op: fj ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: fk ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 10; ++ Value |= op; ++ // op: cond ++ op = getFCMPEncoding(MI, 2, Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 15; ++ Value |= op; ++ break; ++ } ++ case LoongArch::FABS_D: ++ case LoongArch::FABS_S: ++ case LoongArch::FCLASS_D: ++ case LoongArch::FCLASS_S: ++ case LoongArch::FCVT_D_S: ++ case LoongArch::FCVT_S_D: ++ case LoongArch::FFINT_D_L: ++ case LoongArch::FFINT_D_W: ++ case LoongArch::FFINT_S_L: ++ case LoongArch::FFINT_S_W: ++ case LoongArch::FLOGB_D: ++ case LoongArch::FLOGB_S: ++ case LoongArch::FMOV_D: ++ case LoongArch::FMOV_S: ++ case LoongArch::FNEG_D: ++ case LoongArch::FNEG_S: ++ case LoongArch::FRECIP_D: ++ case LoongArch::FRECIP_S: ++ case LoongArch::FRINT_D: ++ case LoongArch::FRINT_S: ++ case LoongArch::FRSQRT_D: ++ case LoongArch::FRSQRT_S: ++ case LoongArch::FSQRT_D: ++ case LoongArch::FSQRT_S: ++ case LoongArch::FTINTRM_L_D: ++ case LoongArch::FTINTRM_L_S: ++ case LoongArch::FTINTRM_W_D: ++ case LoongArch::FTINTRM_W_S: ++ case LoongArch::FTINTRNE_L_D: ++ case LoongArch::FTINTRNE_L_S: ++ case LoongArch::FTINTRNE_W_D: ++ case LoongArch::FTINTRNE_W_S: ++ case LoongArch::FTINTRP_L_D: ++ case LoongArch::FTINTRP_L_S: ++ case LoongArch::FTINTRP_W_D: ++ case LoongArch::FTINTRP_W_S: ++ case LoongArch::FTINTRZ_L_D: ++ case LoongArch::FTINTRZ_L_S: ++ case LoongArch::FTINTRZ_W_S: ++ case LoongArch::FTINT_L_D: ++ case LoongArch::FTINT_L_S: ++ case LoongArch::FTINT_W_D: ++ case LoongArch::FTINT_W_S: ++ case LoongArch::TRUNC_W_D: { ++ // op: fj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: fd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ break; ++ } ++ case LoongArch::FCMP_CAF_D: ++ case LoongArch::FCMP_CAF_S: ++ case LoongArch::FCMP_CEQ_D: ++ case LoongArch::FCMP_CEQ_S: ++ case LoongArch::FCMP_CLE_D: ++ case LoongArch::FCMP_CLE_S: ++ case LoongArch::FCMP_CLT_D: ++ case LoongArch::FCMP_CLT_S: ++ case LoongArch::FCMP_CNE_D: ++ case LoongArch::FCMP_CNE_S: ++ case LoongArch::FCMP_COR_D: ++ case LoongArch::FCMP_COR_S: ++ case LoongArch::FCMP_CUEQ_D: ++ case LoongArch::FCMP_CUEQ_S: ++ case LoongArch::FCMP_CULE_D: ++ case LoongArch::FCMP_CULE_S: ++ case LoongArch::FCMP_CULT_D: ++ case LoongArch::FCMP_CULT_S: ++ case LoongArch::FCMP_CUNE_D: ++ case LoongArch::FCMP_CUNE_S: ++ case LoongArch::FCMP_CUN_D: ++ case LoongArch::FCMP_CUN_S: ++ case LoongArch::FCMP_SAF_D: ++ case LoongArch::FCMP_SAF_S: ++ case LoongArch::FCMP_SEQ_D: ++ case LoongArch::FCMP_SEQ_S: ++ case LoongArch::FCMP_SLE_D: ++ case LoongArch::FCMP_SLE_S: ++ case LoongArch::FCMP_SLT_D: ++ case LoongArch::FCMP_SLT_S: ++ case LoongArch::FCMP_SNE_D: ++ case LoongArch::FCMP_SNE_S: ++ case LoongArch::FCMP_SOR_D: ++ case LoongArch::FCMP_SOR_S: ++ case LoongArch::FCMP_SUEQ_D: ++ case LoongArch::FCMP_SUEQ_S: ++ case LoongArch::FCMP_SULE_D: ++ case LoongArch::FCMP_SULE_S: ++ case LoongArch::FCMP_SULT_D: ++ case LoongArch::FCMP_SULT_S: ++ case LoongArch::FCMP_SUNE_D: ++ case LoongArch::FCMP_SUNE_S: ++ case LoongArch::FCMP_SUN_D: ++ case LoongArch::FCMP_SUN_S: { ++ // op: fj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: fk ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 10; ++ Value |= op; ++ // op: cd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(7); ++ Value |= op; ++ break; ++ } ++ case LoongArch::FADD_D: ++ case LoongArch::FADD_S: ++ case LoongArch::FCOPYSIGN_D: ++ case LoongArch::FCOPYSIGN_S: ++ case LoongArch::FDIV_D: ++ case LoongArch::FDIV_S: ++ case LoongArch::FMAXA_D: ++ case LoongArch::FMAXA_S: ++ case LoongArch::FMAX_D: ++ case LoongArch::FMAX_S: ++ case LoongArch::FMINA_D: ++ case LoongArch::FMINA_S: ++ case LoongArch::FMIN_D: ++ case LoongArch::FMIN_S: ++ case LoongArch::FMUL_D: ++ case LoongArch::FMUL_S: ++ case LoongArch::FSCALEB_D: ++ case LoongArch::FSCALEB_S: ++ case LoongArch::FSUB_D: ++ case LoongArch::FSUB_S: { ++ // op: fk ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 10; ++ Value |= op; ++ // op: fj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: fd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ break; ++ } ++ case LoongArch::DBAR: ++ case LoongArch::IBAR: ++ case LoongArch::IDLE: { ++ // op: hint ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(32767); ++ Value |= op; ++ break; ++ } ++ case LoongArch::VLDI_B: ++ case LoongArch::VLDI_D: ++ case LoongArch::VLDI_H: ++ case LoongArch::VLDI_W: { ++ // op: i10 ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(1023); ++ op <<= 5; ++ Value |= op; ++ // op: vd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ break; ++ } ++ case LoongArch::XVLDI_B: ++ case LoongArch::XVLDI_D: ++ case LoongArch::XVLDI_H: ++ case LoongArch::XVLDI_W: { ++ // op: i10 ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(1023); ++ op <<= 5; ++ Value |= op; ++ // op: xd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ break; ++ } ++ case LoongArch::VLDI: { ++ // op: i13 ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(8191); ++ op <<= 5; ++ Value |= op; ++ // op: vd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ break; ++ } ++ case LoongArch::XVLDI: { ++ // op: i13 ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(8191); ++ op <<= 5; ++ Value |= op; ++ // op: xd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ break; ++ } ++ case LoongArch::BSTRINS_D: ++ case LoongArch::BSTRPICK_D: ++ case LoongArch::ZEXT64_32: { ++ // op: msbd ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(63); ++ op <<= 16; ++ Value |= op; ++ // op: lsbd ++ op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI); ++ op &= UINT64_C(63); ++ op <<= 10; ++ Value |= op; ++ // op: rj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: rd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ break; ++ } ++ case LoongArch::BSTRINS_W: ++ case LoongArch::BSTRPICK_W: { ++ // op: msbw ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 16; ++ Value |= op; ++ // op: lsbw ++ op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 10; ++ Value |= op; ++ // op: rj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: rd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ break; ++ } ++ case LoongArch::B: ++ case LoongArch::B32: { ++ // op: offs26 ++ op = getJumpTargetOpValue(MI, 0, Fixups, STI); ++ Value |= (op & UINT64_C(65535)) << 10; ++ Value |= (op & UINT64_C(67043328)) >> 16; ++ break; ++ } ++ case LoongArch::BCEQZ: ++ case LoongArch::BCNEZ: { ++ // op: offset ++ op = getBranchTargetOpValue(MI, 1, Fixups, STI); ++ Value |= (op & UINT64_C(65535)) << 10; ++ Value |= (op & UINT64_C(2031616)) >> 16; ++ // op: cj ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(7); ++ op <<= 5; ++ Value |= op; ++ break; ++ } ++ case LoongArch::FLD_D: ++ case LoongArch::FLD_S: ++ case LoongArch::FST_D: ++ case LoongArch::FST_S: ++ case LoongArch::LD_B: ++ case LoongArch::LD_B32: ++ case LoongArch::LD_BU: ++ case LoongArch::LD_BU32: ++ case LoongArch::LD_D: ++ case LoongArch::LD_D_rri: ++ case LoongArch::LD_H: ++ case LoongArch::LD_H32: ++ case LoongArch::LD_HU: ++ case LoongArch::LD_HU32: ++ case LoongArch::LD_W: ++ case LoongArch::LD_W32: ++ case LoongArch::LD_WU: ++ case LoongArch::LEA_ADDI_D: ++ case LoongArch::LEA_ADDI_W: ++ case LoongArch::ST_B: ++ case LoongArch::ST_B32: ++ case LoongArch::ST_D: ++ case LoongArch::ST_H: ++ case LoongArch::ST_H32: ++ case LoongArch::ST_W: ++ case LoongArch::ST_W32: { ++ // op: rd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: addr ++ op = getMemEncoding(MI, 1, Fixups, STI); ++ Value |= (op & UINT64_C(4095)) << 10; ++ Value |= (op & UINT64_C(126976)) >> 7; ++ break; ++ } ++ case LoongArch::LDPTR_D: ++ case LoongArch::LDPTR_W: ++ case LoongArch::LDPTR_W32: ++ case LoongArch::LL_D: ++ case LoongArch::LL_W: ++ case LoongArch::STPTR_D: ++ case LoongArch::STPTR_W: ++ case LoongArch::STPTR_W32: { ++ // op: rd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: addr ++ op = getSimm14MemEncoding<2>(MI, 1, Fixups, STI); ++ Value |= (op & UINT64_C(16383)) << 10; ++ Value |= (op & UINT64_C(507904)) >> 9; ++ break; ++ } ++ case LoongArch::CSRRD: ++ case LoongArch::CSRRD32: { ++ // op: rd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: csr ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(16383); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::MOVFR2GR_D: ++ case LoongArch::MOVFR2GR_DS: ++ case LoongArch::MOVFR2GR_S: ++ case LoongArch::MOVFRH2GR_S: { ++ // op: rd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: fj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ break; ++ } ++ case LoongArch::ADDU16I_D: { ++ // op: rd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: rj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: si16 ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(65535); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::LU12I_W: ++ case LoongArch::LU12I_W32: ++ case LoongArch::LU12I_W_ri: ++ case LoongArch::LU32I_D: ++ case LoongArch::LU32I_D_ri: ++ case LoongArch::LU32I_D_rii: ++ case LoongArch::PCADDI: ++ case LoongArch::PCADDI32: ++ case LoongArch::PCADDU12I: ++ case LoongArch::PCADDU12I32: ++ case LoongArch::PCADDU12I_ri: ++ case LoongArch::PCADDU12I_rii: ++ case LoongArch::PCADDU18I: ++ case LoongArch::PCALAU12I: ++ case LoongArch::PCALAU12I32: { ++ // op: rd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: si20 ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(1048575); ++ op <<= 5; ++ Value |= op; ++ break; ++ } ++ case LoongArch::VPICKVE2GR_D: ++ case LoongArch::VPICKVE2GR_DU: { ++ // op: rd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: vj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: ui1 ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(1); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::VPICKVE2GR_W: ++ case LoongArch::VPICKVE2GR_WU: { ++ // op: rd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: vj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: ui2 ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(3); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::VPICKVE2GR_H: ++ case LoongArch::VPICKVE2GR_HU: { ++ // op: rd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: vj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: ui3 ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(7); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::VPICKVE2GR_B: ++ case LoongArch::VPICKVE2GR_BU: { ++ // op: rd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: vj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: ui4 ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(15); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::XVPICKVE2GR_D: ++ case LoongArch::XVPICKVE2GR_DU: { ++ // op: rd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: xj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: ui2 ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(3); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::XVPICKVE2GR_W: ++ case LoongArch::XVPICKVE2GR_WU: { ++ // op: rd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: xj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: ui3 ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(7); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::SC_D: ++ case LoongArch::SC_W: { ++ // op: rd ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: addr ++ op = getSimm14MemEncoding<2>(MI, 2, Fixups, STI); ++ Value |= (op & UINT64_C(16383)) << 10; ++ Value |= (op & UINT64_C(507904)) >> 9; ++ break; ++ } ++ case LoongArch::CSRWR: ++ case LoongArch::CSRWR32: { ++ // op: rd ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: csr ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(16383); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::LU32I_D_R2: { ++ // op: rd ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: si20 ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(1048575); ++ op <<= 5; ++ Value |= op; ++ break; ++ } ++ case LoongArch::PRELD_Raw: ++ case LoongArch::PRELD_Raw32: { ++ // op: rj ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: hint ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: imm12 ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(4095); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::PRELD: ++ case LoongArch::PRELD32: { ++ // op: rj ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: hint ++ op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: imm12 ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(4095); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::BEQZ: ++ case LoongArch::BEQZ32: ++ case LoongArch::BNEZ: ++ case LoongArch::BNEZ32: { ++ // op: rj ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: offs21 ++ op = getBranchTargetOpValue(MI, 1, Fixups, STI); ++ Value |= (op & UINT64_C(65535)) << 10; ++ Value |= (op & UINT64_C(2031616)) >> 16; ++ break; ++ } ++ case LoongArch::BEQ: ++ case LoongArch::BEQ32: ++ case LoongArch::BGE: ++ case LoongArch::BGE32: ++ case LoongArch::BGEU: ++ case LoongArch::BGEU32: ++ case LoongArch::BLT: ++ case LoongArch::BLT32: ++ case LoongArch::BLTU: ++ case LoongArch::BLTU32: ++ case LoongArch::BNE: ++ case LoongArch::BNE32: { ++ // op: rj ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: rd ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: offs16 ++ op = getBranchTargetOpValue(MI, 2, Fixups, STI); ++ op &= UINT64_C(65535); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::LDPTE: ++ case LoongArch::LDPTE32: { ++ // op: rj ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: seq ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(255); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::MOVGR2FRH_W: ++ case LoongArch::MOVGR2FR_D: ++ case LoongArch::MOVGR2FR_W: { ++ // op: rj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: fd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ break; ++ } ++ case LoongArch::INVTLB: { ++ // op: rj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: op ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: rk ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::CACOP: ++ case LoongArch::CACOP32: { ++ // op: rj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: op ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: si12 ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(4095); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::BITREV_4B: ++ case LoongArch::BITREV_8B: ++ case LoongArch::BITREV_D: ++ case LoongArch::BITREV_W: ++ case LoongArch::CLO_D: ++ case LoongArch::CLO_W: ++ case LoongArch::CLZ_D: ++ case LoongArch::CLZ_W: ++ case LoongArch::CPUCFG: ++ case LoongArch::CTO_D: ++ case LoongArch::CTO_W: ++ case LoongArch::CTZ_D: ++ case LoongArch::CTZ_W: ++ case LoongArch::EXT_W_B: ++ case LoongArch::EXT_W_B32: ++ case LoongArch::EXT_W_H: ++ case LoongArch::EXT_W_H32: ++ case LoongArch::IOCSRRD_B: ++ case LoongArch::IOCSRRD_B32: ++ case LoongArch::IOCSRRD_D: ++ case LoongArch::IOCSRRD_H: ++ case LoongArch::IOCSRRD_H32: ++ case LoongArch::IOCSRRD_W: ++ case LoongArch::IOCSRRD_W32: ++ case LoongArch::IOCSRWR_B32: ++ case LoongArch::IOCSRWR_D: ++ case LoongArch::IOCSRWR_H32: ++ case LoongArch::IOCSRWR_W32: ++ case LoongArch::JIRLR: ++ case LoongArch::RDTIMEH_W: ++ case LoongArch::RDTIMEH_W32: ++ case LoongArch::RDTIMEL_W: ++ case LoongArch::RDTIMEL_W32: ++ case LoongArch::RDTIME_D: ++ case LoongArch::REVB_2H: ++ case LoongArch::REVB_2W: ++ case LoongArch::REVB_2W_32: ++ case LoongArch::REVB_4H: ++ case LoongArch::REVB_D: ++ case LoongArch::REVH_2W: ++ case LoongArch::REVH_2W_32: ++ case LoongArch::REVH_D: ++ case LoongArch::SLLI_D_64_32: ++ case LoongArch::SLLI_W_64_32: ++ case LoongArch::SLLI_W_64_64: { ++ // op: rj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: rd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ break; ++ } ++ case LoongArch::ADDI_D: ++ case LoongArch::ADDI_D_rri: ++ case LoongArch::ADDI_D_rrii: ++ case LoongArch::ADDI_W: ++ case LoongArch::ADDI_W64: ++ case LoongArch::ANDI: ++ case LoongArch::ANDI32: ++ case LoongArch::LD_D_rrii: ++ case LoongArch::LU52I_D: ++ case LoongArch::LU52I_D_rri: ++ case LoongArch::LU52I_D_rrii: ++ case LoongArch::ORI: ++ case LoongArch::ORI32: ++ case LoongArch::ORI_rri: ++ case LoongArch::ORI_rrii: ++ case LoongArch::SLTI: ++ case LoongArch::SLTI32: ++ case LoongArch::SLTUI: ++ case LoongArch::SLTUI32: ++ case LoongArch::SLTUI_64: ++ case LoongArch::XORI: ++ case LoongArch::XORI32: { ++ // op: rj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: rd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: imm12 ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(4095); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::ROTRI_W: ++ case LoongArch::SLLI_W: ++ case LoongArch::SRAI_W: ++ case LoongArch::SRLI_W: { ++ // op: rj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: rd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: imm5 ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::ROTRI_D: ++ case LoongArch::SLLI_D: ++ case LoongArch::SRAI_D: ++ case LoongArch::SRLI_D: { ++ // op: rj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: rd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: imm6 ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(63); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::LDDIR: ++ case LoongArch::LDDIR32: { ++ // op: rj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: rd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: level ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(255); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::JIRL32: { ++ // op: rj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: rd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: offs16 ++ op = getJumpTargetOpValue(MI, 2, Fixups, STI); ++ op &= UINT64_C(65535); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::JIRL: ++ case LoongArch::JIRL_CALL: { ++ // op: rj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: rd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: offs16 ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(65535); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::VREPLGR2VR_B: ++ case LoongArch::VREPLGR2VR_D: ++ case LoongArch::VREPLGR2VR_H: ++ case LoongArch::VREPLGR2VR_W: { ++ // op: rj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: vd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ break; ++ } ++ case LoongArch::XVREPLGR2VR_B: ++ case LoongArch::XVREPLGR2VR_D: ++ case LoongArch::XVREPLGR2VR_H: ++ case LoongArch::XVREPLGR2VR_W: { ++ // op: rj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: xd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ break; ++ } ++ case LoongArch::CSRXCHG: ++ case LoongArch::CSRXCHG32: { ++ // op: rj ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: rd ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: csr ++ op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI); ++ op &= UINT64_C(16383); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::AMADD_D: ++ case LoongArch::AMADD_DB_D: ++ case LoongArch::AMADD_DB_W: ++ case LoongArch::AMADD_W: ++ case LoongArch::AMAND_D: ++ case LoongArch::AMAND_DB_D: ++ case LoongArch::AMAND_DB_W: ++ case LoongArch::AMAND_W: ++ case LoongArch::AMMAX_D: ++ case LoongArch::AMMAX_DB_D: ++ case LoongArch::AMMAX_DB_DU: ++ case LoongArch::AMMAX_DB_W: ++ case LoongArch::AMMAX_DB_WU: ++ case LoongArch::AMMAX_DU: ++ case LoongArch::AMMAX_W: ++ case LoongArch::AMMAX_WU: ++ case LoongArch::AMMIN_D: ++ case LoongArch::AMMIN_DB_D: ++ case LoongArch::AMMIN_DB_DU: ++ case LoongArch::AMMIN_DB_W: ++ case LoongArch::AMMIN_DB_WU: ++ case LoongArch::AMMIN_DU: ++ case LoongArch::AMMIN_W: ++ case LoongArch::AMMIN_WU: ++ case LoongArch::AMOR_D: ++ case LoongArch::AMOR_DB_D: ++ case LoongArch::AMOR_DB_W: ++ case LoongArch::AMOR_W: ++ case LoongArch::AMSWAP_D: ++ case LoongArch::AMSWAP_DB_D: ++ case LoongArch::AMSWAP_DB_W: ++ case LoongArch::AMSWAP_W: ++ case LoongArch::AMXOR_D: ++ case LoongArch::AMXOR_DB_D: ++ case LoongArch::AMXOR_DB_W: ++ case LoongArch::AMXOR_W: { ++ // op: rk ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 10; ++ Value |= op; ++ // op: addr ++ op = getAMemEncoding(MI, 2, Fixups, STI); ++ op &= UINT64_C(126976); ++ op >>= 7; ++ Value |= op; ++ // op: rd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ break; ++ } ++ case LoongArch::ASRTGT_D: ++ case LoongArch::ASRTLE_D: { ++ // op: rk ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 10; ++ Value |= op; ++ // op: rj ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ break; ++ } ++ case LoongArch::FLDGT_D: ++ case LoongArch::FLDGT_S: ++ case LoongArch::FLDLE_D: ++ case LoongArch::FLDLE_S: ++ case LoongArch::FLDX_D: ++ case LoongArch::FLDX_S: ++ case LoongArch::FSTGT_D: ++ case LoongArch::FSTGT_S: ++ case LoongArch::FSTLE_D: ++ case LoongArch::FSTLE_S: ++ case LoongArch::FSTX_D: ++ case LoongArch::FSTX_S: { ++ // op: rk ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 10; ++ Value |= op; ++ // op: rj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: fd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ break; ++ } ++ case LoongArch::ADD_D: ++ case LoongArch::ADD_D_rrr: ++ case LoongArch::ADD_W: ++ case LoongArch::AND: ++ case LoongArch::AND32: ++ case LoongArch::ANDN: ++ case LoongArch::ANDN32: ++ case LoongArch::CRCC_W_B_W: ++ case LoongArch::CRCC_W_D_W: ++ case LoongArch::CRCC_W_H_W: ++ case LoongArch::CRCC_W_W_W: ++ case LoongArch::CRC_W_B_W: ++ case LoongArch::CRC_W_D_W: ++ case LoongArch::CRC_W_H_W: ++ case LoongArch::CRC_W_W_W: ++ case LoongArch::DIV_D: ++ case LoongArch::DIV_DU: ++ case LoongArch::DIV_W: ++ case LoongArch::DIV_WU: ++ case LoongArch::LDGT_B: ++ case LoongArch::LDGT_D: ++ case LoongArch::LDGT_H: ++ case LoongArch::LDGT_W: ++ case LoongArch::LDLE_B: ++ case LoongArch::LDLE_D: ++ case LoongArch::LDLE_H: ++ case LoongArch::LDLE_W: ++ case LoongArch::LDX_B: ++ case LoongArch::LDX_B32: ++ case LoongArch::LDX_BU: ++ case LoongArch::LDX_BU32: ++ case LoongArch::LDX_D: ++ case LoongArch::LDX_D_rrr: ++ case LoongArch::LDX_H: ++ case LoongArch::LDX_H32: ++ case LoongArch::LDX_HU: ++ case LoongArch::LDX_HU32: ++ case LoongArch::LDX_W: ++ case LoongArch::LDX_W32: ++ case LoongArch::LDX_WU: ++ case LoongArch::MASKEQZ: ++ case LoongArch::MASKEQZ32: ++ case LoongArch::MASKNEZ: ++ case LoongArch::MASKNEZ32: ++ case LoongArch::MOD_D: ++ case LoongArch::MOD_DU: ++ case LoongArch::MOD_W: ++ case LoongArch::MOD_WU: ++ case LoongArch::MULH_D: ++ case LoongArch::MULH_DU: ++ case LoongArch::MULH_W: ++ case LoongArch::MULH_WU: ++ case LoongArch::MULW_D_W: ++ case LoongArch::MULW_D_WU: ++ case LoongArch::MUL_D: ++ case LoongArch::MUL_W: ++ case LoongArch::NOR: ++ case LoongArch::NOR32: ++ case LoongArch::OR: ++ case LoongArch::OR32: ++ case LoongArch::ORN: ++ case LoongArch::ORN32: ++ case LoongArch::ROTR_D: ++ case LoongArch::ROTR_W: ++ case LoongArch::SLL_D: ++ case LoongArch::SLL_W: ++ case LoongArch::SLT: ++ case LoongArch::SLT32: ++ case LoongArch::SLTU: ++ case LoongArch::SLTU32: ++ case LoongArch::SRA_D: ++ case LoongArch::SRA_W: ++ case LoongArch::SRL_D: ++ case LoongArch::SRL_W: ++ case LoongArch::STGT_B: ++ case LoongArch::STGT_D: ++ case LoongArch::STGT_H: ++ case LoongArch::STGT_W: ++ case LoongArch::STLE_B: ++ case LoongArch::STLE_D: ++ case LoongArch::STLE_H: ++ case LoongArch::STLE_W: ++ case LoongArch::STX_B: ++ case LoongArch::STX_B32: ++ case LoongArch::STX_D: ++ case LoongArch::STX_H: ++ case LoongArch::STX_H32: ++ case LoongArch::STX_W: ++ case LoongArch::STX_W32: ++ case LoongArch::SUB_D: ++ case LoongArch::SUB_W: ++ case LoongArch::XOR: ++ case LoongArch::XOR32: { ++ // op: rk ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 10; ++ Value |= op; ++ // op: rj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: rd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ break; ++ } ++ case LoongArch::BYTEPICK_W: { ++ // op: rk ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 10; ++ Value |= op; ++ // op: rj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: rd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: sa ++ op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI); ++ op &= UINT64_C(3); ++ op <<= 15; ++ Value |= op; ++ break; ++ } ++ case LoongArch::BYTEPICK_D: { ++ // op: rk ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 10; ++ Value |= op; ++ // op: rj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: rd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: sa ++ op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI); ++ op &= UINT64_C(7); ++ op <<= 15; ++ Value |= op; ++ break; ++ } ++ case LoongArch::ALSL_D: ++ case LoongArch::ALSL_W: ++ case LoongArch::ALSL_WU: { ++ // op: rk ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 10; ++ Value |= op; ++ // op: rj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: rd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: sa ++ op = getUImmWithOffsetEncoding<2, 1>(MI, 3, Fixups, STI); ++ op &= UINT64_C(3); ++ op <<= 15; ++ Value |= op; ++ break; ++ } ++ case LoongArch::VLDX: ++ case LoongArch::VSTX: { ++ // op: rk ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 10; ++ Value |= op; ++ // op: rj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: vd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ break; ++ } ++ case LoongArch::XVLDX: ++ case LoongArch::XVSTX: { ++ // op: rk ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 10; ++ Value |= op; ++ // op: rj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: xd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ break; ++ } ++ case LoongArch::VREPLVE_B: ++ case LoongArch::VREPLVE_D: ++ case LoongArch::VREPLVE_H: ++ case LoongArch::VREPLVE_W: { ++ // op: rk ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 10; ++ Value |= op; ++ // op: vj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: vd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ break; ++ } ++ case LoongArch::XVREPLVE_B: ++ case LoongArch::XVREPLVE_D: ++ case LoongArch::XVREPLVE_H: ++ case LoongArch::XVREPLVE_W: ++ case LoongArch::XVREPLVE_W_N: { ++ // op: rk ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 10; ++ Value |= op; ++ // op: xj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: xd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ break; ++ } ++ case LoongArch::LAPCREL: { ++ // op: rt ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 16; ++ Value |= op; ++ // op: imm16 ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(65535); ++ Value |= op; ++ break; ++ } ++ case LoongArch::BL: { ++ // op: target ++ op = getJumpTargetOpValue(MI, 0, Fixups, STI); ++ Value |= (op & UINT64_C(65535)) << 10; ++ Value |= (op & UINT64_C(67043328)) >> 16; ++ break; ++ } ++ case LoongArch::VLD: ++ case LoongArch::VLDREPL_B: ++ case LoongArch::VLD_D: ++ case LoongArch::VLD_H: ++ case LoongArch::VLD_W: ++ case LoongArch::VST: ++ case LoongArch::VST_D: ++ case LoongArch::VST_H: ++ case LoongArch::VST_W: { ++ // op: vd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: addr ++ op = getMemEncoding(MI, 1, Fixups, STI); ++ Value |= (op & UINT64_C(4095)) << 10; ++ Value |= (op & UINT64_C(126976)) >> 7; ++ break; ++ } ++ case LoongArch::VLDREPL_W: { ++ // op: vd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: addr ++ op = getMemEncoding10l2(MI, 1, Fixups, STI); ++ Value |= (op & UINT64_C(1023)) << 10; ++ Value |= (op & UINT64_C(31744)) >> 5; ++ break; ++ } ++ case LoongArch::VLDREPL_H: { ++ // op: vd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: addr ++ op = getMemEncoding11l1(MI, 1, Fixups, STI); ++ Value |= (op & UINT64_C(2047)) << 10; ++ Value |= (op & UINT64_C(63488)) >> 6; ++ break; ++ } ++ case LoongArch::VLDREPL_D: { ++ // op: vd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: addr ++ op = getMemEncoding9l3(MI, 1, Fixups, STI); ++ Value |= (op & UINT64_C(511)) << 10; ++ Value |= (op & UINT64_C(15872)) >> 4; ++ break; ++ } ++ case LoongArch::VSTELM_B: { ++ // op: vd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: rj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: si8 ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(255); ++ op <<= 10; ++ Value |= op; ++ // op: idx ++ op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI); ++ op &= UINT64_C(15); ++ op <<= 18; ++ Value |= op; ++ break; ++ } ++ case LoongArch::VSTELM_H: { ++ // op: vd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: rj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: si8 ++ op = getSImm8Lsl1Encoding(MI, 2, Fixups, STI); ++ op &= UINT64_C(255); ++ op <<= 10; ++ Value |= op; ++ // op: idx ++ op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI); ++ op &= UINT64_C(7); ++ op <<= 18; ++ Value |= op; ++ break; ++ } ++ case LoongArch::VSTELM_W: { ++ // op: vd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: rj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: si8 ++ op = getSImm8Lsl2Encoding(MI, 2, Fixups, STI); ++ op &= UINT64_C(255); ++ op <<= 10; ++ Value |= op; ++ // op: idx ++ op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI); ++ op &= UINT64_C(3); ++ op <<= 18; ++ Value |= op; ++ break; ++ } ++ case LoongArch::VSTELM_D: { ++ // op: vd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: rj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: si8 ++ op = getSImm8Lsl3Encoding(MI, 2, Fixups, STI); ++ op &= UINT64_C(255); ++ op <<= 10; ++ Value |= op; ++ // op: idx ++ op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI); ++ op &= UINT64_C(1); ++ op <<= 18; ++ Value |= op; ++ break; ++ } ++ case LoongArch::VINSGR2VR_D: { ++ // op: vd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: rj ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: ui1 ++ op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI); ++ op &= UINT64_C(1); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::VINSGR2VR_W: { ++ // op: vd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: rj ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: ui2 ++ op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI); ++ op &= UINT64_C(3); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::VINSGR2VR_H: { ++ // op: vd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: rj ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: ui3 ++ op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI); ++ op &= UINT64_C(7); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::VINSGR2VR_B: { ++ // op: vd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: rj ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: ui4 ++ op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI); ++ op &= UINT64_C(15); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::VMAXI_B: ++ case LoongArch::VMAXI_B_N: ++ case LoongArch::VMAXI_D: ++ case LoongArch::VMAXI_D_N: ++ case LoongArch::VMAXI_H: ++ case LoongArch::VMAXI_H_N: ++ case LoongArch::VMAXI_W: ++ case LoongArch::VMAXI_W_N: ++ case LoongArch::VMINI_B: ++ case LoongArch::VMINI_B_N: ++ case LoongArch::VMINI_D: ++ case LoongArch::VMINI_D_N: ++ case LoongArch::VMINI_H: ++ case LoongArch::VMINI_H_N: ++ case LoongArch::VMINI_W: ++ case LoongArch::VMINI_W_N: ++ case LoongArch::VSEQI_B: ++ case LoongArch::VSEQI_B_N: ++ case LoongArch::VSEQI_D: ++ case LoongArch::VSEQI_D_N: ++ case LoongArch::VSEQI_H: ++ case LoongArch::VSEQI_H_N: ++ case LoongArch::VSEQI_W: ++ case LoongArch::VSEQI_W_N: ++ case LoongArch::VSLEI_B: ++ case LoongArch::VSLEI_B_N: ++ case LoongArch::VSLEI_D: ++ case LoongArch::VSLEI_D_N: ++ case LoongArch::VSLEI_H: ++ case LoongArch::VSLEI_H_N: ++ case LoongArch::VSLEI_W: ++ case LoongArch::VSLEI_W_N: ++ case LoongArch::VSLTI_B: ++ case LoongArch::VSLTI_B_N: ++ case LoongArch::VSLTI_D: ++ case LoongArch::VSLTI_D_N: ++ case LoongArch::VSLTI_H: ++ case LoongArch::VSLTI_H_N: ++ case LoongArch::VSLTI_W: ++ case LoongArch::VSLTI_W_N: { ++ // op: vd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: vj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: si5 ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::VREPLVEI_D: { ++ // op: vd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: vj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: ui1 ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(1); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::VREPLVEI_W: { ++ // op: vd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: vj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: ui2 ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(3); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::VBITCLRI_B: ++ case LoongArch::VBITREVI_B: ++ case LoongArch::VBITSETI_B: ++ case LoongArch::VREPLVEI_H: ++ case LoongArch::VROTRI_B: ++ case LoongArch::VSAT_B: ++ case LoongArch::VSAT_BU: ++ case LoongArch::VSLLI_B: ++ case LoongArch::VSLLWIL_HU_BU: ++ case LoongArch::VSLLWIL_H_B: ++ case LoongArch::VSRAI_B: ++ case LoongArch::VSRAI_B_N: ++ case LoongArch::VSRARI_B: ++ case LoongArch::VSRLI_B: ++ case LoongArch::VSRLRI_B: { ++ // op: vd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: vj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: ui3 ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(7); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::VBITCLRI_H: ++ case LoongArch::VBITREVI_H: ++ case LoongArch::VBITSETI_H: ++ case LoongArch::VREPLVEI_B: ++ case LoongArch::VROTRI_H: ++ case LoongArch::VSAT_H: ++ case LoongArch::VSAT_HU: ++ case LoongArch::VSLLI_H: ++ case LoongArch::VSLLWIL_WU_HU: ++ case LoongArch::VSLLWIL_W_H: ++ case LoongArch::VSRAI_H: ++ case LoongArch::VSRAI_H_N: ++ case LoongArch::VSRARI_H: ++ case LoongArch::VSRLI_H: ++ case LoongArch::VSRLRI_H: { ++ // op: vd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: vj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: ui4 ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(15); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::VADDI_BU: ++ case LoongArch::VADDI_DU: ++ case LoongArch::VADDI_HU: ++ case LoongArch::VADDI_WU: ++ case LoongArch::VBITCLRI_W: ++ case LoongArch::VBITREVI_W: ++ case LoongArch::VBITSETI_W: ++ case LoongArch::VBSLL_V: ++ case LoongArch::VBSRL_V: ++ case LoongArch::VMAXI_BU: ++ case LoongArch::VMAXI_BU_N: ++ case LoongArch::VMAXI_DU: ++ case LoongArch::VMAXI_DU_N: ++ case LoongArch::VMAXI_HU: ++ case LoongArch::VMAXI_HU_N: ++ case LoongArch::VMAXI_WU: ++ case LoongArch::VMAXI_WU_N: ++ case LoongArch::VMINI_BU: ++ case LoongArch::VMINI_DU: ++ case LoongArch::VMINI_HU: ++ case LoongArch::VMINI_WU: ++ case LoongArch::VROTRI_W: ++ case LoongArch::VSAT_W: ++ case LoongArch::VSAT_WU: ++ case LoongArch::VSLEI_BU: ++ case LoongArch::VSLEI_BU_N: ++ case LoongArch::VSLEI_DU: ++ case LoongArch::VSLEI_DU_N: ++ case LoongArch::VSLEI_HU: ++ case LoongArch::VSLEI_HU_N: ++ case LoongArch::VSLEI_WU: ++ case LoongArch::VSLEI_WU_N: ++ case LoongArch::VSLLI_W: ++ case LoongArch::VSLLWIL_DU_WU: ++ case LoongArch::VSLLWIL_D_W: ++ case LoongArch::VSLTI_BU: ++ case LoongArch::VSLTI_BU_N: ++ case LoongArch::VSLTI_DU: ++ case LoongArch::VSLTI_DU_N: ++ case LoongArch::VSLTI_HU: ++ case LoongArch::VSLTI_HU_N: ++ case LoongArch::VSLTI_WU: ++ case LoongArch::VSLTI_WU_N: ++ case LoongArch::VSRAI_W: ++ case LoongArch::VSRAI_W_N: ++ case LoongArch::VSRARI_W: ++ case LoongArch::VSRLI_W: ++ case LoongArch::VSRLRI_W: ++ case LoongArch::VSUBI_BU: ++ case LoongArch::VSUBI_DU: ++ case LoongArch::VSUBI_HU: ++ case LoongArch::VSUBI_WU: { ++ // op: vd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: vj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: ui5 ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::VBITCLRI_D: ++ case LoongArch::VBITREVI_D: ++ case LoongArch::VBITSETI_D: ++ case LoongArch::VROTRI_D: ++ case LoongArch::VSAT_D: ++ case LoongArch::VSAT_DU: ++ case LoongArch::VSLLI_D: ++ case LoongArch::VSRAI_D: ++ case LoongArch::VSRAI_D_N: ++ case LoongArch::VSRARI_D: ++ case LoongArch::VSRLI_D: ++ case LoongArch::VSRLRI_D: { ++ // op: vd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: vj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: ui6 ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(63); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::VANDI_B: ++ case LoongArch::VANDI_B_N: ++ case LoongArch::VNORI_B: ++ case LoongArch::VORI_B: ++ case LoongArch::VSHUF4I_B: ++ case LoongArch::VSHUF4I_H: ++ case LoongArch::VSHUF4I_W: ++ case LoongArch::VXORI_B: ++ case LoongArch::VXORI_B_N: { ++ // op: vd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: vj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: ui8 ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(255); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::VFCMP_CAF_D: ++ case LoongArch::VFCMP_CAF_S: ++ case LoongArch::VFCMP_CEQ_D: ++ case LoongArch::VFCMP_CEQ_S: ++ case LoongArch::VFCMP_CLE_D: ++ case LoongArch::VFCMP_CLE_S: ++ case LoongArch::VFCMP_CLT_D: ++ case LoongArch::VFCMP_CLT_S: ++ case LoongArch::VFCMP_CNE_D: ++ case LoongArch::VFCMP_CNE_S: ++ case LoongArch::VFCMP_COR_D: ++ case LoongArch::VFCMP_COR_S: ++ case LoongArch::VFCMP_CUEQ_D: ++ case LoongArch::VFCMP_CUEQ_S: ++ case LoongArch::VFCMP_CULE_D: ++ case LoongArch::VFCMP_CULE_S: ++ case LoongArch::VFCMP_CULT_D: ++ case LoongArch::VFCMP_CULT_S: ++ case LoongArch::VFCMP_CUNE_D: ++ case LoongArch::VFCMP_CUNE_S: ++ case LoongArch::VFCMP_CUN_D: ++ case LoongArch::VFCMP_CUN_S: ++ case LoongArch::VFCMP_SAF_D: ++ case LoongArch::VFCMP_SAF_S: ++ case LoongArch::VFCMP_SEQ_D: ++ case LoongArch::VFCMP_SEQ_S: ++ case LoongArch::VFCMP_SLE_D: ++ case LoongArch::VFCMP_SLE_S: ++ case LoongArch::VFCMP_SLT_D: ++ case LoongArch::VFCMP_SLT_S: ++ case LoongArch::VFCMP_SNE_D: ++ case LoongArch::VFCMP_SNE_S: ++ case LoongArch::VFCMP_SOR_D: ++ case LoongArch::VFCMP_SOR_S: ++ case LoongArch::VFCMP_SUEQ_D: ++ case LoongArch::VFCMP_SUEQ_S: ++ case LoongArch::VFCMP_SULE_D: ++ case LoongArch::VFCMP_SULE_S: ++ case LoongArch::VFCMP_SULT_D: ++ case LoongArch::VFCMP_SULT_S: ++ case LoongArch::VFCMP_SUNE_D: ++ case LoongArch::VFCMP_SUNE_S: ++ case LoongArch::VFCMP_SUN_D: ++ case LoongArch::VFCMP_SUN_S: { ++ // op: vd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: vj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: vk ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::VBITSEL_V: ++ case LoongArch::VFMADD_D: ++ case LoongArch::VFMADD_S: ++ case LoongArch::VFMSUB_D: ++ case LoongArch::VFMSUB_S: ++ case LoongArch::VFNMADD_D: ++ case LoongArch::VFNMADD_S: ++ case LoongArch::VFNMSUB_D: ++ case LoongArch::VFNMSUB_S: ++ case LoongArch::VSHUF_B: { ++ // op: vd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: vj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: vk ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 10; ++ Value |= op; ++ // op: va ++ op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 15; ++ Value |= op; ++ break; ++ } ++ case LoongArch::VSRANI_B_H: ++ case LoongArch::VSRARNI_B_H: ++ case LoongArch::VSRLNI_B_H: ++ case LoongArch::VSRLRNI_B_H: ++ case LoongArch::VSSRANI_BU_H: ++ case LoongArch::VSSRANI_B_H: ++ case LoongArch::VSSRARNI_BU_H: ++ case LoongArch::VSSRARNI_B_H: ++ case LoongArch::VSSRLNI_BU_H: ++ case LoongArch::VSSRLNI_B_H: ++ case LoongArch::VSSRLRNI_BU_H: ++ case LoongArch::VSSRLRNI_B_H: { ++ // op: vd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: vj ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: ui4 ++ op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI); ++ op &= UINT64_C(15); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::VFRSTPI_B: ++ case LoongArch::VFRSTPI_H: ++ case LoongArch::VSRANI_H_W: ++ case LoongArch::VSRARNI_H_W: ++ case LoongArch::VSRLNI_H_W: ++ case LoongArch::VSRLRNI_H_W: ++ case LoongArch::VSSRANI_HU_W: ++ case LoongArch::VSSRANI_H_W: ++ case LoongArch::VSSRARNI_HU_W: ++ case LoongArch::VSSRARNI_H_W: ++ case LoongArch::VSSRLNI_HU_W: ++ case LoongArch::VSSRLNI_H_W: ++ case LoongArch::VSSRLRNI_HU_W: ++ case LoongArch::VSSRLRNI_H_W: { ++ // op: vd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: vj ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: ui5 ++ op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::VSRANI_W_D: ++ case LoongArch::VSRARNI_W_D: ++ case LoongArch::VSRLNI_W_D: ++ case LoongArch::VSRLRNI_W_D: ++ case LoongArch::VSSRANI_WU_D: ++ case LoongArch::VSSRANI_W_D: ++ case LoongArch::VSSRARNI_WU_D: ++ case LoongArch::VSSRARNI_W_D: ++ case LoongArch::VSSRLNI_WU_D: ++ case LoongArch::VSSRLNI_W_D: ++ case LoongArch::VSSRLRNI_WU_D: ++ case LoongArch::VSSRLRNI_W_D: { ++ // op: vd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: vj ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: ui6 ++ op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI); ++ op &= UINT64_C(63); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::VSRANI_D_Q: ++ case LoongArch::VSRARNI_D_Q: ++ case LoongArch::VSRLNI_D_Q: ++ case LoongArch::VSRLRNI_D_Q: ++ case LoongArch::VSSRANI_DU_Q: ++ case LoongArch::VSSRANI_D_Q: ++ case LoongArch::VSSRARNI_DU_Q: ++ case LoongArch::VSSRARNI_D_Q: ++ case LoongArch::VSSRLNI_DU_Q: ++ case LoongArch::VSSRLNI_D_Q: ++ case LoongArch::VSSRLRNI_DU_Q: ++ case LoongArch::VSSRLRNI_D_Q: { ++ // op: vd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: vj ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: ui7 ++ op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI); ++ op &= UINT64_C(127); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::VBITSELI_B: ++ case LoongArch::VBITSELI_B_N: ++ case LoongArch::VEXTRINS_B: ++ case LoongArch::VEXTRINS_D: ++ case LoongArch::VEXTRINS_H: ++ case LoongArch::VEXTRINS_W: ++ case LoongArch::VPERMI_W: ++ case LoongArch::VSHUF4I_D: { ++ // op: vd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: vj ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: ui8 ++ op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI); ++ op &= UINT64_C(255); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::VSETALLNEZ_B: ++ case LoongArch::VSETALLNEZ_D: ++ case LoongArch::VSETALLNEZ_H: ++ case LoongArch::VSETALLNEZ_W: ++ case LoongArch::VSETANYEQZ_B: ++ case LoongArch::VSETANYEQZ_D: ++ case LoongArch::VSETANYEQZ_H: ++ case LoongArch::VSETANYEQZ_W: ++ case LoongArch::VSETEQZ_V: ++ case LoongArch::VSETNEZ_V: { ++ // op: vj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: cd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(7); ++ Value |= op; ++ break; ++ } ++ case LoongArch::VCLO_B: ++ case LoongArch::VCLO_D: ++ case LoongArch::VCLO_H: ++ case LoongArch::VCLO_W: ++ case LoongArch::VCLZ_B: ++ case LoongArch::VCLZ_D: ++ case LoongArch::VCLZ_H: ++ case LoongArch::VCLZ_W: ++ case LoongArch::VEXTH_DU_WU: ++ case LoongArch::VEXTH_D_W: ++ case LoongArch::VEXTH_HU_BU: ++ case LoongArch::VEXTH_H_B: ++ case LoongArch::VEXTH_QU_DU: ++ case LoongArch::VEXTH_Q_D: ++ case LoongArch::VEXTH_WU_HU: ++ case LoongArch::VEXTH_W_H: ++ case LoongArch::VEXTL_QU_DU: ++ case LoongArch::VEXTL_Q_D: ++ case LoongArch::VFCLASS_D: ++ case LoongArch::VFCLASS_S: ++ case LoongArch::VFCVTH_D_S: ++ case LoongArch::VFCVTH_S_H: ++ case LoongArch::VFCVTL_D_S: ++ case LoongArch::VFCVTL_S_H: ++ case LoongArch::VFFINTH_D_W: ++ case LoongArch::VFFINTL_D_W: ++ case LoongArch::VFFINT_D_L: ++ case LoongArch::VFFINT_D_LU: ++ case LoongArch::VFFINT_S_W: ++ case LoongArch::VFFINT_S_WU: ++ case LoongArch::VFLOGB_D: ++ case LoongArch::VFLOGB_S: ++ case LoongArch::VFRECIP_D: ++ case LoongArch::VFRECIP_S: ++ case LoongArch::VFRINTRM_D: ++ case LoongArch::VFRINTRM_S: ++ case LoongArch::VFRINTRNE_D: ++ case LoongArch::VFRINTRNE_S: ++ case LoongArch::VFRINTRP_D: ++ case LoongArch::VFRINTRP_S: ++ case LoongArch::VFRINTRZ_D: ++ case LoongArch::VFRINTRZ_S: ++ case LoongArch::VFRINT_D: ++ case LoongArch::VFRINT_S: ++ case LoongArch::VFRSQRT_D: ++ case LoongArch::VFRSQRT_S: ++ case LoongArch::VFSQRT_D: ++ case LoongArch::VFSQRT_S: ++ case LoongArch::VFTINTH_L_S: ++ case LoongArch::VFTINTL_L_S: ++ case LoongArch::VFTINTRMH_L_S: ++ case LoongArch::VFTINTRML_L_S: ++ case LoongArch::VFTINTRM_L_D: ++ case LoongArch::VFTINTRM_W_S: ++ case LoongArch::VFTINTRNEH_L_S: ++ case LoongArch::VFTINTRNEL_L_S: ++ case LoongArch::VFTINTRNE_L_D: ++ case LoongArch::VFTINTRNE_W_S: ++ case LoongArch::VFTINTRPH_L_S: ++ case LoongArch::VFTINTRPL_L_S: ++ case LoongArch::VFTINTRP_L_D: ++ case LoongArch::VFTINTRP_W_S: ++ case LoongArch::VFTINTRZH_L_S: ++ case LoongArch::VFTINTRZL_L_S: ++ case LoongArch::VFTINTRZ_LU_D: ++ case LoongArch::VFTINTRZ_L_D: ++ case LoongArch::VFTINTRZ_WU_S: ++ case LoongArch::VFTINTRZ_W_S: ++ case LoongArch::VFTINT_LU_D: ++ case LoongArch::VFTINT_L_D: ++ case LoongArch::VFTINT_WU_S: ++ case LoongArch::VFTINT_W_S: ++ case LoongArch::VMSKGEZ_B: ++ case LoongArch::VMSKLTZ_B: ++ case LoongArch::VMSKLTZ_D: ++ case LoongArch::VMSKLTZ_H: ++ case LoongArch::VMSKLTZ_W: ++ case LoongArch::VMSKNZ_B: ++ case LoongArch::VNEG_B: ++ case LoongArch::VNEG_D: ++ case LoongArch::VNEG_H: ++ case LoongArch::VNEG_W: ++ case LoongArch::VPCNT_B: ++ case LoongArch::VPCNT_D: ++ case LoongArch::VPCNT_H: ++ case LoongArch::VPCNT_W: { ++ // op: vj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: vd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ break; ++ } ++ case LoongArch::VABSD_B: ++ case LoongArch::VABSD_BU: ++ case LoongArch::VABSD_D: ++ case LoongArch::VABSD_DU: ++ case LoongArch::VABSD_H: ++ case LoongArch::VABSD_HU: ++ case LoongArch::VABSD_W: ++ case LoongArch::VABSD_WU: ++ case LoongArch::VADDA_B: ++ case LoongArch::VADDA_D: ++ case LoongArch::VADDA_H: ++ case LoongArch::VADDA_W: ++ case LoongArch::VADDWEV_D_W: ++ case LoongArch::VADDWEV_D_WU: ++ case LoongArch::VADDWEV_D_WU_W: ++ case LoongArch::VADDWEV_H_B: ++ case LoongArch::VADDWEV_H_BU: ++ case LoongArch::VADDWEV_H_BU_B: ++ case LoongArch::VADDWEV_Q_D: ++ case LoongArch::VADDWEV_Q_DU: ++ case LoongArch::VADDWEV_Q_DU_D: ++ case LoongArch::VADDWEV_W_H: ++ case LoongArch::VADDWEV_W_HU: ++ case LoongArch::VADDWEV_W_HU_H: ++ case LoongArch::VADDWOD_D_W: ++ case LoongArch::VADDWOD_D_WU: ++ case LoongArch::VADDWOD_D_WU_W: ++ case LoongArch::VADDWOD_H_B: ++ case LoongArch::VADDWOD_H_BU: ++ case LoongArch::VADDWOD_H_BU_B: ++ case LoongArch::VADDWOD_Q_D: ++ case LoongArch::VADDWOD_Q_DU: ++ case LoongArch::VADDWOD_Q_DU_D: ++ case LoongArch::VADDWOD_W_H: ++ case LoongArch::VADDWOD_W_HU: ++ case LoongArch::VADDWOD_W_HU_H: ++ case LoongArch::VADD_B: ++ case LoongArch::VADD_D: ++ case LoongArch::VADD_H: ++ case LoongArch::VADD_Q: ++ case LoongArch::VADD_W: ++ case LoongArch::VANDN_V: ++ case LoongArch::VAND_V: ++ case LoongArch::VAVGR_B: ++ case LoongArch::VAVGR_BU: ++ case LoongArch::VAVGR_D: ++ case LoongArch::VAVGR_DU: ++ case LoongArch::VAVGR_H: ++ case LoongArch::VAVGR_HU: ++ case LoongArch::VAVGR_W: ++ case LoongArch::VAVGR_WU: ++ case LoongArch::VAVG_B: ++ case LoongArch::VAVG_BU: ++ case LoongArch::VAVG_D: ++ case LoongArch::VAVG_DU: ++ case LoongArch::VAVG_H: ++ case LoongArch::VAVG_HU: ++ case LoongArch::VAVG_W: ++ case LoongArch::VAVG_WU: ++ case LoongArch::VBITCLR_B: ++ case LoongArch::VBITCLR_D: ++ case LoongArch::VBITCLR_H: ++ case LoongArch::VBITCLR_W: ++ case LoongArch::VBITREV_B: ++ case LoongArch::VBITREV_D: ++ case LoongArch::VBITREV_H: ++ case LoongArch::VBITREV_W: ++ case LoongArch::VBITSET_B: ++ case LoongArch::VBITSET_D: ++ case LoongArch::VBITSET_H: ++ case LoongArch::VBITSET_W: ++ case LoongArch::VDIV_B: ++ case LoongArch::VDIV_BU: ++ case LoongArch::VDIV_D: ++ case LoongArch::VDIV_DU: ++ case LoongArch::VDIV_H: ++ case LoongArch::VDIV_HU: ++ case LoongArch::VDIV_W: ++ case LoongArch::VDIV_WU: ++ case LoongArch::VFADD_D: ++ case LoongArch::VFADD_S: ++ case LoongArch::VFCVT_H_S: ++ case LoongArch::VFCVT_S_D: ++ case LoongArch::VFDIV_D: ++ case LoongArch::VFDIV_S: ++ case LoongArch::VFFINT_S_L: ++ case LoongArch::VFMAXA_D: ++ case LoongArch::VFMAXA_S: ++ case LoongArch::VFMAX_D: ++ case LoongArch::VFMAX_S: ++ case LoongArch::VFMINA_D: ++ case LoongArch::VFMINA_S: ++ case LoongArch::VFMIN_D: ++ case LoongArch::VFMIN_S: ++ case LoongArch::VFMUL_D: ++ case LoongArch::VFMUL_S: ++ case LoongArch::VFSUB_D: ++ case LoongArch::VFSUB_S: ++ case LoongArch::VFTINTRM_W_D: ++ case LoongArch::VFTINTRNE_W_D: ++ case LoongArch::VFTINTRP_W_D: ++ case LoongArch::VFTINTRZ_W_D: ++ case LoongArch::VFTINT_W_D: ++ case LoongArch::VHADDW_DU_WU: ++ case LoongArch::VHADDW_D_W: ++ case LoongArch::VHADDW_HU_BU: ++ case LoongArch::VHADDW_H_B: ++ case LoongArch::VHADDW_QU_DU: ++ case LoongArch::VHADDW_Q_D: ++ case LoongArch::VHADDW_WU_HU: ++ case LoongArch::VHADDW_W_H: ++ case LoongArch::VHSUBW_DU_WU: ++ case LoongArch::VHSUBW_D_W: ++ case LoongArch::VHSUBW_HU_BU: ++ case LoongArch::VHSUBW_H_B: ++ case LoongArch::VHSUBW_QU_DU: ++ case LoongArch::VHSUBW_Q_D: ++ case LoongArch::VHSUBW_WU_HU: ++ case LoongArch::VHSUBW_W_H: ++ case LoongArch::VILVH_B: ++ case LoongArch::VILVH_D: ++ case LoongArch::VILVH_H: ++ case LoongArch::VILVH_W: ++ case LoongArch::VILVL_B: ++ case LoongArch::VILVL_D: ++ case LoongArch::VILVL_H: ++ case LoongArch::VILVL_W: ++ case LoongArch::VMAX_B: ++ case LoongArch::VMAX_BU: ++ case LoongArch::VMAX_D: ++ case LoongArch::VMAX_DU: ++ case LoongArch::VMAX_H: ++ case LoongArch::VMAX_HU: ++ case LoongArch::VMAX_W: ++ case LoongArch::VMAX_WU: ++ case LoongArch::VMIN_B: ++ case LoongArch::VMIN_BU: ++ case LoongArch::VMIN_D: ++ case LoongArch::VMIN_DU: ++ case LoongArch::VMIN_H: ++ case LoongArch::VMIN_HU: ++ case LoongArch::VMIN_W: ++ case LoongArch::VMIN_WU: ++ case LoongArch::VMOD_B: ++ case LoongArch::VMOD_BU: ++ case LoongArch::VMOD_D: ++ case LoongArch::VMOD_DU: ++ case LoongArch::VMOD_H: ++ case LoongArch::VMOD_HU: ++ case LoongArch::VMOD_W: ++ case LoongArch::VMOD_WU: ++ case LoongArch::VMUH_B: ++ case LoongArch::VMUH_BU: ++ case LoongArch::VMUH_D: ++ case LoongArch::VMUH_DU: ++ case LoongArch::VMUH_H: ++ case LoongArch::VMUH_HU: ++ case LoongArch::VMUH_W: ++ case LoongArch::VMUH_WU: ++ case LoongArch::VMULWEV_D_W: ++ case LoongArch::VMULWEV_D_WU: ++ case LoongArch::VMULWEV_D_WU_W: ++ case LoongArch::VMULWEV_H_B: ++ case LoongArch::VMULWEV_H_BU: ++ case LoongArch::VMULWEV_H_BU_B: ++ case LoongArch::VMULWEV_Q_D: ++ case LoongArch::VMULWEV_Q_DU: ++ case LoongArch::VMULWEV_Q_DU_D: ++ case LoongArch::VMULWEV_W_H: ++ case LoongArch::VMULWEV_W_HU: ++ case LoongArch::VMULWEV_W_HU_H: ++ case LoongArch::VMULWOD_D_W: ++ case LoongArch::VMULWOD_D_WU: ++ case LoongArch::VMULWOD_D_WU_W: ++ case LoongArch::VMULWOD_H_B: ++ case LoongArch::VMULWOD_H_BU: ++ case LoongArch::VMULWOD_H_BU_B: ++ case LoongArch::VMULWOD_Q_D: ++ case LoongArch::VMULWOD_Q_DU: ++ case LoongArch::VMULWOD_Q_DU_D: ++ case LoongArch::VMULWOD_W_H: ++ case LoongArch::VMULWOD_W_HU: ++ case LoongArch::VMULWOD_W_HU_H: ++ case LoongArch::VMUL_B: ++ case LoongArch::VMUL_D: ++ case LoongArch::VMUL_H: ++ case LoongArch::VMUL_W: ++ case LoongArch::VNOR_V: ++ case LoongArch::VORN_V: ++ case LoongArch::VOR_V: ++ case LoongArch::VPACKEV_B: ++ case LoongArch::VPACKEV_D: ++ case LoongArch::VPACKEV_H: ++ case LoongArch::VPACKEV_W: ++ case LoongArch::VPACKOD_B: ++ case LoongArch::VPACKOD_D: ++ case LoongArch::VPACKOD_H: ++ case LoongArch::VPACKOD_W: ++ case LoongArch::VPICKEV_B: ++ case LoongArch::VPICKEV_D: ++ case LoongArch::VPICKEV_H: ++ case LoongArch::VPICKEV_W: ++ case LoongArch::VPICKOD_B: ++ case LoongArch::VPICKOD_D: ++ case LoongArch::VPICKOD_H: ++ case LoongArch::VPICKOD_W: ++ case LoongArch::VROTR_B: ++ case LoongArch::VROTR_D: ++ case LoongArch::VROTR_H: ++ case LoongArch::VROTR_W: ++ case LoongArch::VSADD_B: ++ case LoongArch::VSADD_BU: ++ case LoongArch::VSADD_D: ++ case LoongArch::VSADD_DU: ++ case LoongArch::VSADD_H: ++ case LoongArch::VSADD_HU: ++ case LoongArch::VSADD_W: ++ case LoongArch::VSADD_WU: ++ case LoongArch::VSEQ_B: ++ case LoongArch::VSEQ_D: ++ case LoongArch::VSEQ_H: ++ case LoongArch::VSEQ_W: ++ case LoongArch::VSIGNCOV_B: ++ case LoongArch::VSIGNCOV_D: ++ case LoongArch::VSIGNCOV_H: ++ case LoongArch::VSIGNCOV_W: ++ case LoongArch::VSLE_B: ++ case LoongArch::VSLE_BU: ++ case LoongArch::VSLE_D: ++ case LoongArch::VSLE_DU: ++ case LoongArch::VSLE_H: ++ case LoongArch::VSLE_HU: ++ case LoongArch::VSLE_W: ++ case LoongArch::VSLE_WU: ++ case LoongArch::VSLL_B: ++ case LoongArch::VSLL_D: ++ case LoongArch::VSLL_H: ++ case LoongArch::VSLL_W: ++ case LoongArch::VSLT_B: ++ case LoongArch::VSLT_BU: ++ case LoongArch::VSLT_D: ++ case LoongArch::VSLT_DU: ++ case LoongArch::VSLT_H: ++ case LoongArch::VSLT_HU: ++ case LoongArch::VSLT_W: ++ case LoongArch::VSLT_WU: ++ case LoongArch::VSRAN_B_H: ++ case LoongArch::VSRAN_H_W: ++ case LoongArch::VSRAN_W_D: ++ case LoongArch::VSRARN_B_H: ++ case LoongArch::VSRARN_H_W: ++ case LoongArch::VSRARN_W_D: ++ case LoongArch::VSRAR_B: ++ case LoongArch::VSRAR_D: ++ case LoongArch::VSRAR_H: ++ case LoongArch::VSRAR_W: ++ case LoongArch::VSRA_B: ++ case LoongArch::VSRA_D: ++ case LoongArch::VSRA_H: ++ case LoongArch::VSRA_W: ++ case LoongArch::VSRLN_B_H: ++ case LoongArch::VSRLN_H_W: ++ case LoongArch::VSRLN_W_D: ++ case LoongArch::VSRLRN_B_H: ++ case LoongArch::VSRLRN_H_W: ++ case LoongArch::VSRLRN_W_D: ++ case LoongArch::VSRLR_B: ++ case LoongArch::VSRLR_D: ++ case LoongArch::VSRLR_H: ++ case LoongArch::VSRLR_W: ++ case LoongArch::VSRL_B: ++ case LoongArch::VSRL_D: ++ case LoongArch::VSRL_H: ++ case LoongArch::VSRL_W: ++ case LoongArch::VSSRAN_BU_H: ++ case LoongArch::VSSRAN_B_H: ++ case LoongArch::VSSRAN_HU_W: ++ case LoongArch::VSSRAN_H_W: ++ case LoongArch::VSSRAN_WU_D: ++ case LoongArch::VSSRAN_W_D: ++ case LoongArch::VSSRARN_BU_H: ++ case LoongArch::VSSRARN_B_H: ++ case LoongArch::VSSRARN_HU_W: ++ case LoongArch::VSSRARN_H_W: ++ case LoongArch::VSSRARN_WU_D: ++ case LoongArch::VSSRARN_W_D: ++ case LoongArch::VSSRLN_BU_H: ++ case LoongArch::VSSRLN_B_H: ++ case LoongArch::VSSRLN_HU_W: ++ case LoongArch::VSSRLN_H_W: ++ case LoongArch::VSSRLN_WU_D: ++ case LoongArch::VSSRLN_W_D: ++ case LoongArch::VSSRLRN_BU_H: ++ case LoongArch::VSSRLRN_B_H: ++ case LoongArch::VSSRLRN_HU_W: ++ case LoongArch::VSSRLRN_H_W: ++ case LoongArch::VSSRLRN_WU_D: ++ case LoongArch::VSSRLRN_W_D: ++ case LoongArch::VSSUB_B: ++ case LoongArch::VSSUB_BU: ++ case LoongArch::VSSUB_D: ++ case LoongArch::VSSUB_DU: ++ case LoongArch::VSSUB_H: ++ case LoongArch::VSSUB_HU: ++ case LoongArch::VSSUB_W: ++ case LoongArch::VSSUB_WU: ++ case LoongArch::VSUBWEV_D_W: ++ case LoongArch::VSUBWEV_D_WU: ++ case LoongArch::VSUBWEV_H_B: ++ case LoongArch::VSUBWEV_H_BU: ++ case LoongArch::VSUBWEV_Q_D: ++ case LoongArch::VSUBWEV_Q_DU: ++ case LoongArch::VSUBWEV_W_H: ++ case LoongArch::VSUBWEV_W_HU: ++ case LoongArch::VSUBWOD_D_W: ++ case LoongArch::VSUBWOD_D_WU: ++ case LoongArch::VSUBWOD_H_B: ++ case LoongArch::VSUBWOD_H_BU: ++ case LoongArch::VSUBWOD_Q_D: ++ case LoongArch::VSUBWOD_Q_DU: ++ case LoongArch::VSUBWOD_W_H: ++ case LoongArch::VSUBWOD_W_HU: ++ case LoongArch::VSUB_B: ++ case LoongArch::VSUB_D: ++ case LoongArch::VSUB_H: ++ case LoongArch::VSUB_Q: ++ case LoongArch::VSUB_W: ++ case LoongArch::VXOR_V: { ++ // op: vk ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 10; ++ Value |= op; ++ // op: vj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: vd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ break; ++ } ++ case LoongArch::VFRSTP_B: ++ case LoongArch::VFRSTP_H: ++ case LoongArch::VMADDWEV_D_W: ++ case LoongArch::VMADDWEV_D_WU: ++ case LoongArch::VMADDWEV_D_WU_W: ++ case LoongArch::VMADDWEV_H_B: ++ case LoongArch::VMADDWEV_H_BU: ++ case LoongArch::VMADDWEV_H_BU_B: ++ case LoongArch::VMADDWEV_Q_D: ++ case LoongArch::VMADDWEV_Q_DU: ++ case LoongArch::VMADDWEV_Q_DU_D: ++ case LoongArch::VMADDWEV_W_H: ++ case LoongArch::VMADDWEV_W_HU: ++ case LoongArch::VMADDWEV_W_HU_H: ++ case LoongArch::VMADDWOD_D_W: ++ case LoongArch::VMADDWOD_D_WU: ++ case LoongArch::VMADDWOD_D_WU_W: ++ case LoongArch::VMADDWOD_H_B: ++ case LoongArch::VMADDWOD_H_BU: ++ case LoongArch::VMADDWOD_H_BU_B: ++ case LoongArch::VMADDWOD_Q_D: ++ case LoongArch::VMADDWOD_Q_DU: ++ case LoongArch::VMADDWOD_Q_DU_D: ++ case LoongArch::VMADDWOD_W_H: ++ case LoongArch::VMADDWOD_W_HU: ++ case LoongArch::VMADDWOD_W_HU_H: ++ case LoongArch::VMADD_B: ++ case LoongArch::VMADD_D: ++ case LoongArch::VMADD_H: ++ case LoongArch::VMADD_W: ++ case LoongArch::VMSUB_B: ++ case LoongArch::VMSUB_D: ++ case LoongArch::VMSUB_H: ++ case LoongArch::VMSUB_W: ++ case LoongArch::VSHUF_D: ++ case LoongArch::VSHUF_H: ++ case LoongArch::VSHUF_W: { ++ // op: vk ++ op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 10; ++ Value |= op; ++ // op: vj ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: vd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ break; ++ } ++ case LoongArch::XVBITSEL_V: ++ case LoongArch::XVFMADD_D: ++ case LoongArch::XVFMADD_S: ++ case LoongArch::XVFMSUB_D: ++ case LoongArch::XVFMSUB_S: ++ case LoongArch::XVFNMADD_D: ++ case LoongArch::XVFNMADD_S: ++ case LoongArch::XVFNMSUB_D: ++ case LoongArch::XVFNMSUB_S: ++ case LoongArch::XVSHUF_B: { ++ // op: xa ++ op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 15; ++ Value |= op; ++ // op: xk ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 10; ++ Value |= op; ++ // op: xj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: xd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ break; ++ } ++ case LoongArch::XVLD: ++ case LoongArch::XVLDREPL_B: ++ case LoongArch::XVLD_D: ++ case LoongArch::XVLD_H: ++ case LoongArch::XVLD_W: ++ case LoongArch::XVST: ++ case LoongArch::XVST_D: ++ case LoongArch::XVST_H: ++ case LoongArch::XVST_W: { ++ // op: xd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: addr ++ op = getMemEncoding(MI, 1, Fixups, STI); ++ Value |= (op & UINT64_C(4095)) << 10; ++ Value |= (op & UINT64_C(126976)) >> 7; ++ break; ++ } ++ case LoongArch::XVLDREPL_W: { ++ // op: xd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: addr ++ op = getMemEncoding10l2(MI, 1, Fixups, STI); ++ Value |= (op & UINT64_C(1023)) << 10; ++ Value |= (op & UINT64_C(31744)) >> 5; ++ break; ++ } ++ case LoongArch::XVLDREPL_H: { ++ // op: xd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: addr ++ op = getMemEncoding11l1(MI, 1, Fixups, STI); ++ Value |= (op & UINT64_C(2047)) << 10; ++ Value |= (op & UINT64_C(63488)) >> 6; ++ break; ++ } ++ case LoongArch::XVLDREPL_D: { ++ // op: xd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: addr ++ op = getMemEncoding9l3(MI, 1, Fixups, STI); ++ Value |= (op & UINT64_C(511)) << 10; ++ Value |= (op & UINT64_C(15872)) >> 4; ++ break; ++ } ++ case LoongArch::XVSTELM_B: { ++ // op: xd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: rj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: si8 ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(255); ++ op <<= 10; ++ Value |= op; ++ // op: idx ++ op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 18; ++ Value |= op; ++ break; ++ } ++ case LoongArch::XVSTELM_H: { ++ // op: xd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: rj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: si8 ++ op = getSImm8Lsl1Encoding(MI, 2, Fixups, STI); ++ op &= UINT64_C(255); ++ op <<= 10; ++ Value |= op; ++ // op: idx ++ op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI); ++ op &= UINT64_C(15); ++ op <<= 18; ++ Value |= op; ++ break; ++ } ++ case LoongArch::XVSTELM_W: { ++ // op: xd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: rj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: si8 ++ op = getSImm8Lsl2Encoding(MI, 2, Fixups, STI); ++ op &= UINT64_C(255); ++ op <<= 10; ++ Value |= op; ++ // op: idx ++ op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI); ++ op &= UINT64_C(7); ++ op <<= 18; ++ Value |= op; ++ break; ++ } ++ case LoongArch::XVSTELM_D: { ++ // op: xd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: rj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: si8 ++ op = getSImm8Lsl3Encoding(MI, 2, Fixups, STI); ++ op &= UINT64_C(255); ++ op <<= 10; ++ Value |= op; ++ // op: idx ++ op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI); ++ op &= UINT64_C(3); ++ op <<= 18; ++ Value |= op; ++ break; ++ } ++ case LoongArch::XVINSGR2VR_D: { ++ // op: xd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: rj ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: ui2 ++ op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI); ++ op &= UINT64_C(3); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::XVINSGR2VR_W: { ++ // op: xd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: rj ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: ui3 ++ op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI); ++ op &= UINT64_C(7); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::XVMAXI_B: ++ case LoongArch::XVMAXI_B_N: ++ case LoongArch::XVMAXI_D: ++ case LoongArch::XVMAXI_D_N: ++ case LoongArch::XVMAXI_H: ++ case LoongArch::XVMAXI_H_N: ++ case LoongArch::XVMAXI_W: ++ case LoongArch::XVMAXI_W_N: ++ case LoongArch::XVMINI_B: ++ case LoongArch::XVMINI_B_N: ++ case LoongArch::XVMINI_D: ++ case LoongArch::XVMINI_D_N: ++ case LoongArch::XVMINI_H: ++ case LoongArch::XVMINI_H_N: ++ case LoongArch::XVMINI_W: ++ case LoongArch::XVMINI_W_N: ++ case LoongArch::XVSEQI_B: ++ case LoongArch::XVSEQI_B_N: ++ case LoongArch::XVSEQI_D: ++ case LoongArch::XVSEQI_D_N: ++ case LoongArch::XVSEQI_H: ++ case LoongArch::XVSEQI_H_N: ++ case LoongArch::XVSEQI_W: ++ case LoongArch::XVSEQI_W_N: ++ case LoongArch::XVSLEI_B: ++ case LoongArch::XVSLEI_B_N: ++ case LoongArch::XVSLEI_D: ++ case LoongArch::XVSLEI_D_N: ++ case LoongArch::XVSLEI_H: ++ case LoongArch::XVSLEI_H_N: ++ case LoongArch::XVSLEI_W: ++ case LoongArch::XVSLEI_W_N: ++ case LoongArch::XVSLTI_B: ++ case LoongArch::XVSLTI_B_N: ++ case LoongArch::XVSLTI_D: ++ case LoongArch::XVSLTI_D_N: ++ case LoongArch::XVSLTI_H: ++ case LoongArch::XVSLTI_H_N: ++ case LoongArch::XVSLTI_W: ++ case LoongArch::XVSLTI_W_N: { ++ // op: xd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: xj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: si5 ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::XVREPL128VEI_D: { ++ // op: xd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: xj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: ui1 ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(1); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::XVREPL128VEI_W: { ++ // op: xd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: xj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: ui2 ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(3); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::XVBITCLRI_B: ++ case LoongArch::XVBITREVI_B: ++ case LoongArch::XVBITSETI_B: ++ case LoongArch::XVREPL128VEI_H: ++ case LoongArch::XVROTRI_B: ++ case LoongArch::XVSAT_B: ++ case LoongArch::XVSAT_BU: ++ case LoongArch::XVSLLI_B: ++ case LoongArch::XVSLLI_B_N: ++ case LoongArch::XVSLLWIL_HU_BU: ++ case LoongArch::XVSLLWIL_H_B: ++ case LoongArch::XVSRAI_B: ++ case LoongArch::XVSRAI_B_N: ++ case LoongArch::XVSRARI_B: ++ case LoongArch::XVSRLI_B: ++ case LoongArch::XVSRLI_B_N: ++ case LoongArch::XVSRLRI_B: { ++ // op: xd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: xj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: ui3 ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(7); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::XVBITCLRI_H: ++ case LoongArch::XVBITREVI_H: ++ case LoongArch::XVBITSETI_H: ++ case LoongArch::XVREPL128VEI_B: ++ case LoongArch::XVROTRI_H: ++ case LoongArch::XVSAT_H: ++ case LoongArch::XVSAT_HU: ++ case LoongArch::XVSLLI_H: ++ case LoongArch::XVSLLI_H_N: ++ case LoongArch::XVSLLWIL_WU_HU: ++ case LoongArch::XVSLLWIL_W_H: ++ case LoongArch::XVSRAI_H: ++ case LoongArch::XVSRAI_H_N: ++ case LoongArch::XVSRARI_H: ++ case LoongArch::XVSRLI_H: ++ case LoongArch::XVSRLI_H_N: ++ case LoongArch::XVSRLRI_H: { ++ // op: xd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: xj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: ui4 ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(15); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::XVADDI_BU: ++ case LoongArch::XVADDI_BU_N: ++ case LoongArch::XVADDI_DU: ++ case LoongArch::XVADDI_DU_N: ++ case LoongArch::XVADDI_HU: ++ case LoongArch::XVADDI_HU_N: ++ case LoongArch::XVADDI_WU: ++ case LoongArch::XVADDI_WU_N: ++ case LoongArch::XVBITCLRI_W: ++ case LoongArch::XVBITREVI_W: ++ case LoongArch::XVBITSETI_W: ++ case LoongArch::XVBSLL_V: ++ case LoongArch::XVBSRL_V: ++ case LoongArch::XVHSELI_D: ++ case LoongArch::XVMAXI_BU: ++ case LoongArch::XVMAXI_BU_N: ++ case LoongArch::XVMAXI_DU: ++ case LoongArch::XVMAXI_DU_N: ++ case LoongArch::XVMAXI_HU: ++ case LoongArch::XVMAXI_HU_N: ++ case LoongArch::XVMAXI_WU: ++ case LoongArch::XVMAXI_WU_N: ++ case LoongArch::XVMINI_BU: ++ case LoongArch::XVMINI_BU_N: ++ case LoongArch::XVMINI_DU: ++ case LoongArch::XVMINI_DU_N: ++ case LoongArch::XVMINI_HU: ++ case LoongArch::XVMINI_HU_N: ++ case LoongArch::XVMINI_WU: ++ case LoongArch::XVMINI_WU_N: ++ case LoongArch::XVROTRI_W: ++ case LoongArch::XVSAT_W: ++ case LoongArch::XVSAT_WU: ++ case LoongArch::XVSLEI_BU: ++ case LoongArch::XVSLEI_BU_N: ++ case LoongArch::XVSLEI_DU: ++ case LoongArch::XVSLEI_DU_N: ++ case LoongArch::XVSLEI_HU: ++ case LoongArch::XVSLEI_HU_N: ++ case LoongArch::XVSLEI_WU: ++ case LoongArch::XVSLEI_WU_N: ++ case LoongArch::XVSLLI_W: ++ case LoongArch::XVSLLI_W_N: ++ case LoongArch::XVSLLWIL_DU_WU: ++ case LoongArch::XVSLLWIL_D_W: ++ case LoongArch::XVSLTI_BU: ++ case LoongArch::XVSLTI_BU_N: ++ case LoongArch::XVSLTI_DU: ++ case LoongArch::XVSLTI_DU_N: ++ case LoongArch::XVSLTI_HU: ++ case LoongArch::XVSLTI_HU_N: ++ case LoongArch::XVSLTI_WU: ++ case LoongArch::XVSLTI_WU_N: ++ case LoongArch::XVSRAI_W: ++ case LoongArch::XVSRAI_W_N: ++ case LoongArch::XVSRARI_W: ++ case LoongArch::XVSRLI_W: ++ case LoongArch::XVSRLI_W_N: ++ case LoongArch::XVSRLRI_W: ++ case LoongArch::XVSUBI_BU: ++ case LoongArch::XVSUBI_BU_N: ++ case LoongArch::XVSUBI_DU: ++ case LoongArch::XVSUBI_DU_N: ++ case LoongArch::XVSUBI_HU: ++ case LoongArch::XVSUBI_HU_N: ++ case LoongArch::XVSUBI_WU: ++ case LoongArch::XVSUBI_WU_N: { ++ // op: xd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: xj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: ui5 ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::XVBITCLRI_D: ++ case LoongArch::XVBITREVI_D: ++ case LoongArch::XVBITSETI_D: ++ case LoongArch::XVROTRI_D: ++ case LoongArch::XVSAT_D: ++ case LoongArch::XVSAT_DU: ++ case LoongArch::XVSLLI_D: ++ case LoongArch::XVSLLI_D_N: ++ case LoongArch::XVSRAI_D: ++ case LoongArch::XVSRAI_D_N: ++ case LoongArch::XVSRARI_D: ++ case LoongArch::XVSRLI_D: ++ case LoongArch::XVSRLI_D_N: ++ case LoongArch::XVSRLRI_D: { ++ // op: xd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: xj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: ui6 ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(63); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::XVANDI_B: ++ case LoongArch::XVANDI_B_N: ++ case LoongArch::XVNORI_B: ++ case LoongArch::XVORI_B: ++ case LoongArch::XVPERMI_D: ++ case LoongArch::XVSHUF4I_B: ++ case LoongArch::XVSHUF4I_H: ++ case LoongArch::XVSHUF4I_W: ++ case LoongArch::XVXORI_B: ++ case LoongArch::XVXORI_B_N: { ++ // op: xd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: xj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: ui8 ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(255); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::XVFCMP_CAF_D: ++ case LoongArch::XVFCMP_CAF_S: ++ case LoongArch::XVFCMP_CEQ_D: ++ case LoongArch::XVFCMP_CEQ_S: ++ case LoongArch::XVFCMP_CLE_D: ++ case LoongArch::XVFCMP_CLE_S: ++ case LoongArch::XVFCMP_CLT_D: ++ case LoongArch::XVFCMP_CLT_S: ++ case LoongArch::XVFCMP_CNE_D: ++ case LoongArch::XVFCMP_CNE_S: ++ case LoongArch::XVFCMP_COR_D: ++ case LoongArch::XVFCMP_COR_S: ++ case LoongArch::XVFCMP_CUEQ_D: ++ case LoongArch::XVFCMP_CUEQ_S: ++ case LoongArch::XVFCMP_CULE_D: ++ case LoongArch::XVFCMP_CULE_S: ++ case LoongArch::XVFCMP_CULT_D: ++ case LoongArch::XVFCMP_CULT_S: ++ case LoongArch::XVFCMP_CUNE_D: ++ case LoongArch::XVFCMP_CUNE_S: ++ case LoongArch::XVFCMP_CUN_D: ++ case LoongArch::XVFCMP_CUN_S: ++ case LoongArch::XVFCMP_SAF_D: ++ case LoongArch::XVFCMP_SAF_S: ++ case LoongArch::XVFCMP_SEQ_D: ++ case LoongArch::XVFCMP_SEQ_S: ++ case LoongArch::XVFCMP_SLE_D: ++ case LoongArch::XVFCMP_SLE_S: ++ case LoongArch::XVFCMP_SLT_D: ++ case LoongArch::XVFCMP_SLT_S: ++ case LoongArch::XVFCMP_SNE_D: ++ case LoongArch::XVFCMP_SNE_S: ++ case LoongArch::XVFCMP_SOR_D: ++ case LoongArch::XVFCMP_SOR_S: ++ case LoongArch::XVFCMP_SUEQ_D: ++ case LoongArch::XVFCMP_SUEQ_S: ++ case LoongArch::XVFCMP_SULE_D: ++ case LoongArch::XVFCMP_SULE_S: ++ case LoongArch::XVFCMP_SULT_D: ++ case LoongArch::XVFCMP_SULT_S: ++ case LoongArch::XVFCMP_SUNE_D: ++ case LoongArch::XVFCMP_SUNE_S: ++ case LoongArch::XVFCMP_SUN_D: ++ case LoongArch::XVFCMP_SUN_S: { ++ // op: xd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: xj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: xk ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::XVINSVE0_D: ++ case LoongArch::XVPICKVE_D: { ++ // op: xd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: xj ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: ui2 ++ op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI); ++ op &= UINT64_C(3); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::XVINSVE0_W: ++ case LoongArch::XVPICKVE_W: { ++ // op: xd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: xj ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: ui3 ++ op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI); ++ op &= UINT64_C(7); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::XVSRANI_B_H: ++ case LoongArch::XVSRARNI_B_H: ++ case LoongArch::XVSRLNI_B_H: ++ case LoongArch::XVSRLRNI_B_H: ++ case LoongArch::XVSSRANI_BU_H: ++ case LoongArch::XVSSRANI_B_H: ++ case LoongArch::XVSSRARNI_BU_H: ++ case LoongArch::XVSSRARNI_B_H: ++ case LoongArch::XVSSRLNI_BU_H: ++ case LoongArch::XVSSRLNI_B_H: ++ case LoongArch::XVSSRLRNI_BU_H: ++ case LoongArch::XVSSRLRNI_B_H: { ++ // op: xd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: xj ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: ui4 ++ op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI); ++ op &= UINT64_C(15); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::XVFRSTPI_B: ++ case LoongArch::XVFRSTPI_H: ++ case LoongArch::XVSRANI_H_W: ++ case LoongArch::XVSRARNI_H_W: ++ case LoongArch::XVSRLNI_H_W: ++ case LoongArch::XVSRLRNI_H_W: ++ case LoongArch::XVSSRANI_HU_W: ++ case LoongArch::XVSSRANI_H_W: ++ case LoongArch::XVSSRARNI_HU_W: ++ case LoongArch::XVSSRARNI_H_W: ++ case LoongArch::XVSSRLNI_HU_W: ++ case LoongArch::XVSSRLNI_H_W: ++ case LoongArch::XVSSRLRNI_HU_W: ++ case LoongArch::XVSSRLRNI_H_W: { ++ // op: xd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: xj ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: ui5 ++ op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::XVSRANI_W_D: ++ case LoongArch::XVSRARNI_W_D: ++ case LoongArch::XVSRLNI_W_D: ++ case LoongArch::XVSRLRNI_W_D: ++ case LoongArch::XVSSRANI_WU_D: ++ case LoongArch::XVSSRANI_W_D: ++ case LoongArch::XVSSRARNI_WU_D: ++ case LoongArch::XVSSRARNI_W_D: ++ case LoongArch::XVSSRLNI_WU_D: ++ case LoongArch::XVSSRLNI_W_D: ++ case LoongArch::XVSSRLRNI_WU_D: ++ case LoongArch::XVSSRLRNI_W_D: { ++ // op: xd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: xj ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: ui6 ++ op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI); ++ op &= UINT64_C(63); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::XVSRANI_D_Q: ++ case LoongArch::XVSRARNI_D_Q: ++ case LoongArch::XVSRLNI_D_Q: ++ case LoongArch::XVSRLRNI_D_Q: ++ case LoongArch::XVSSRANI_DU_Q: ++ case LoongArch::XVSSRANI_D_Q: ++ case LoongArch::XVSSRARNI_DU_Q: ++ case LoongArch::XVSSRARNI_D_Q: ++ case LoongArch::XVSSRLNI_DU_Q: ++ case LoongArch::XVSSRLNI_D_Q: ++ case LoongArch::XVSSRLRNI_DU_Q: ++ case LoongArch::XVSSRLRNI_D_Q: { ++ // op: xd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: xj ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: ui7 ++ op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI); ++ op &= UINT64_C(127); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::XVBITSELI_B: ++ case LoongArch::XVBITSELI_B_N: ++ case LoongArch::XVEXTRINS_B: ++ case LoongArch::XVEXTRINS_D: ++ case LoongArch::XVEXTRINS_H: ++ case LoongArch::XVEXTRINS_W: ++ case LoongArch::XVPERMI_Q: ++ case LoongArch::XVPERMI_QD: ++ case LoongArch::XVPERMI_QH: ++ case LoongArch::XVPERMI_QW: ++ case LoongArch::XVPERMI_W: ++ case LoongArch::XVSHUF4I_D: { ++ // op: xd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ // op: xj ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: ui8 ++ op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI); ++ op &= UINT64_C(255); ++ op <<= 10; ++ Value |= op; ++ break; ++ } ++ case LoongArch::XVSETALLNEZ_B: ++ case LoongArch::XVSETALLNEZ_D: ++ case LoongArch::XVSETALLNEZ_H: ++ case LoongArch::XVSETALLNEZ_W: ++ case LoongArch::XVSETANYEQZ_B: ++ case LoongArch::XVSETANYEQZ_D: ++ case LoongArch::XVSETANYEQZ_H: ++ case LoongArch::XVSETANYEQZ_W: ++ case LoongArch::XVSETEQZ_V: ++ case LoongArch::XVSETNEZ_V: { ++ // op: xj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: cd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(7); ++ Value |= op; ++ break; ++ } ++ case LoongArch::VEXT2XV_DU_BU: ++ case LoongArch::VEXT2XV_DU_HU: ++ case LoongArch::VEXT2XV_DU_WU: ++ case LoongArch::VEXT2XV_D_B: ++ case LoongArch::VEXT2XV_D_H: ++ case LoongArch::VEXT2XV_D_W: ++ case LoongArch::VEXT2XV_HU_BU: ++ case LoongArch::VEXT2XV_H_B: ++ case LoongArch::VEXT2XV_WU_BU: ++ case LoongArch::VEXT2XV_WU_HU: ++ case LoongArch::VEXT2XV_W_B: ++ case LoongArch::VEXT2XV_W_H: ++ case LoongArch::XVCLO_B: ++ case LoongArch::XVCLO_D: ++ case LoongArch::XVCLO_H: ++ case LoongArch::XVCLO_W: ++ case LoongArch::XVCLZ_B: ++ case LoongArch::XVCLZ_D: ++ case LoongArch::XVCLZ_H: ++ case LoongArch::XVCLZ_W: ++ case LoongArch::XVEXTH_DU_WU: ++ case LoongArch::XVEXTH_D_W: ++ case LoongArch::XVEXTH_HU_BU: ++ case LoongArch::XVEXTH_H_B: ++ case LoongArch::XVEXTH_QU_DU: ++ case LoongArch::XVEXTH_Q_D: ++ case LoongArch::XVEXTH_WU_HU: ++ case LoongArch::XVEXTH_W_H: ++ case LoongArch::XVEXTL_QU_DU: ++ case LoongArch::XVEXTL_Q_D: ++ case LoongArch::XVFCLASS_D: ++ case LoongArch::XVFCLASS_S: ++ case LoongArch::XVFCVTH_D_S: ++ case LoongArch::XVFCVTH_S_H: ++ case LoongArch::XVFCVTL_D_S: ++ case LoongArch::XVFCVTL_S_H: ++ case LoongArch::XVFFINTH_D_W: ++ case LoongArch::XVFFINTL_D_W: ++ case LoongArch::XVFFINT_D_L: ++ case LoongArch::XVFFINT_D_LU: ++ case LoongArch::XVFFINT_S_W: ++ case LoongArch::XVFFINT_S_WU: ++ case LoongArch::XVFLOGB_D: ++ case LoongArch::XVFLOGB_S: ++ case LoongArch::XVFRECIP_D: ++ case LoongArch::XVFRECIP_S: ++ case LoongArch::XVFRINTRM_D: ++ case LoongArch::XVFRINTRM_S: ++ case LoongArch::XVFRINTRNE_D: ++ case LoongArch::XVFRINTRNE_S: ++ case LoongArch::XVFRINTRP_D: ++ case LoongArch::XVFRINTRP_S: ++ case LoongArch::XVFRINTRZ_D: ++ case LoongArch::XVFRINTRZ_S: ++ case LoongArch::XVFRINT_D: ++ case LoongArch::XVFRINT_S: ++ case LoongArch::XVFRSQRT_D: ++ case LoongArch::XVFRSQRT_S: ++ case LoongArch::XVFSQRT_D: ++ case LoongArch::XVFSQRT_S: ++ case LoongArch::XVFTINTH_L_S: ++ case LoongArch::XVFTINTL_L_S: ++ case LoongArch::XVFTINTRMH_L_S: ++ case LoongArch::XVFTINTRML_L_S: ++ case LoongArch::XVFTINTRM_L_D: ++ case LoongArch::XVFTINTRM_W_S: ++ case LoongArch::XVFTINTRNEH_L_S: ++ case LoongArch::XVFTINTRNEL_L_S: ++ case LoongArch::XVFTINTRNE_L_D: ++ case LoongArch::XVFTINTRNE_W_S: ++ case LoongArch::XVFTINTRPH_L_S: ++ case LoongArch::XVFTINTRPL_L_S: ++ case LoongArch::XVFTINTRP_L_D: ++ case LoongArch::XVFTINTRP_W_S: ++ case LoongArch::XVFTINTRZH_L_S: ++ case LoongArch::XVFTINTRZL_L_S: ++ case LoongArch::XVFTINTRZ_LU_D: ++ case LoongArch::XVFTINTRZ_L_D: ++ case LoongArch::XVFTINTRZ_WU_S: ++ case LoongArch::XVFTINTRZ_W_S: ++ case LoongArch::XVFTINT_LU_D: ++ case LoongArch::XVFTINT_L_D: ++ case LoongArch::XVFTINT_WU_S: ++ case LoongArch::XVFTINT_W_S: ++ case LoongArch::XVMSKGEZ_B: ++ case LoongArch::XVMSKLTZ_B: ++ case LoongArch::XVMSKLTZ_D: ++ case LoongArch::XVMSKLTZ_H: ++ case LoongArch::XVMSKLTZ_W: ++ case LoongArch::XVMSKNZ_B: ++ case LoongArch::XVNEG_B: ++ case LoongArch::XVNEG_D: ++ case LoongArch::XVNEG_H: ++ case LoongArch::XVNEG_W: ++ case LoongArch::XVPCNT_B: ++ case LoongArch::XVPCNT_D: ++ case LoongArch::XVPCNT_H: ++ case LoongArch::XVPCNT_W: ++ case LoongArch::XVREPLVE0_B: ++ case LoongArch::XVREPLVE0_D: ++ case LoongArch::XVREPLVE0_H: ++ case LoongArch::XVREPLVE0_Q: ++ case LoongArch::XVREPLVE0_W: { ++ // op: xj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: xd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ break; ++ } ++ case LoongArch::XVABSD_B: ++ case LoongArch::XVABSD_BU: ++ case LoongArch::XVABSD_D: ++ case LoongArch::XVABSD_DU: ++ case LoongArch::XVABSD_H: ++ case LoongArch::XVABSD_HU: ++ case LoongArch::XVABSD_W: ++ case LoongArch::XVABSD_WU: ++ case LoongArch::XVADDA_B: ++ case LoongArch::XVADDA_D: ++ case LoongArch::XVADDA_H: ++ case LoongArch::XVADDA_W: ++ case LoongArch::XVADDWEV_D_W: ++ case LoongArch::XVADDWEV_D_WU: ++ case LoongArch::XVADDWEV_D_WU_W: ++ case LoongArch::XVADDWEV_H_B: ++ case LoongArch::XVADDWEV_H_BU: ++ case LoongArch::XVADDWEV_H_BU_B: ++ case LoongArch::XVADDWEV_Q_D: ++ case LoongArch::XVADDWEV_Q_DU: ++ case LoongArch::XVADDWEV_Q_DU_D: ++ case LoongArch::XVADDWEV_W_H: ++ case LoongArch::XVADDWEV_W_HU: ++ case LoongArch::XVADDWEV_W_HU_H: ++ case LoongArch::XVADDWOD_D_W: ++ case LoongArch::XVADDWOD_D_WU: ++ case LoongArch::XVADDWOD_D_WU_W: ++ case LoongArch::XVADDWOD_H_B: ++ case LoongArch::XVADDWOD_H_BU: ++ case LoongArch::XVADDWOD_H_BU_B: ++ case LoongArch::XVADDWOD_Q_D: ++ case LoongArch::XVADDWOD_Q_DU: ++ case LoongArch::XVADDWOD_Q_DU_D: ++ case LoongArch::XVADDWOD_W_H: ++ case LoongArch::XVADDWOD_W_HU: ++ case LoongArch::XVADDWOD_W_HU_H: ++ case LoongArch::XVADD_B: ++ case LoongArch::XVADD_D: ++ case LoongArch::XVADD_H: ++ case LoongArch::XVADD_Q: ++ case LoongArch::XVADD_W: ++ case LoongArch::XVANDN_V: ++ case LoongArch::XVAND_V: ++ case LoongArch::XVAVGR_B: ++ case LoongArch::XVAVGR_BU: ++ case LoongArch::XVAVGR_D: ++ case LoongArch::XVAVGR_DU: ++ case LoongArch::XVAVGR_H: ++ case LoongArch::XVAVGR_HU: ++ case LoongArch::XVAVGR_W: ++ case LoongArch::XVAVGR_WU: ++ case LoongArch::XVAVG_B: ++ case LoongArch::XVAVG_BU: ++ case LoongArch::XVAVG_D: ++ case LoongArch::XVAVG_DU: ++ case LoongArch::XVAVG_H: ++ case LoongArch::XVAVG_HU: ++ case LoongArch::XVAVG_W: ++ case LoongArch::XVAVG_WU: ++ case LoongArch::XVBITCLR_B: ++ case LoongArch::XVBITCLR_D: ++ case LoongArch::XVBITCLR_H: ++ case LoongArch::XVBITCLR_W: ++ case LoongArch::XVBITREV_B: ++ case LoongArch::XVBITREV_D: ++ case LoongArch::XVBITREV_H: ++ case LoongArch::XVBITREV_W: ++ case LoongArch::XVBITSET_B: ++ case LoongArch::XVBITSET_D: ++ case LoongArch::XVBITSET_H: ++ case LoongArch::XVBITSET_W: ++ case LoongArch::XVDIV_B: ++ case LoongArch::XVDIV_BU: ++ case LoongArch::XVDIV_D: ++ case LoongArch::XVDIV_DU: ++ case LoongArch::XVDIV_H: ++ case LoongArch::XVDIV_HU: ++ case LoongArch::XVDIV_W: ++ case LoongArch::XVDIV_WU: ++ case LoongArch::XVFADD_D: ++ case LoongArch::XVFADD_S: ++ case LoongArch::XVFCVT_H_S: ++ case LoongArch::XVFCVT_S_D: ++ case LoongArch::XVFDIV_D: ++ case LoongArch::XVFDIV_S: ++ case LoongArch::XVFFINT_S_L: ++ case LoongArch::XVFMAXA_D: ++ case LoongArch::XVFMAXA_S: ++ case LoongArch::XVFMAX_D: ++ case LoongArch::XVFMAX_S: ++ case LoongArch::XVFMINA_D: ++ case LoongArch::XVFMINA_S: ++ case LoongArch::XVFMIN_D: ++ case LoongArch::XVFMIN_S: ++ case LoongArch::XVFMUL_D: ++ case LoongArch::XVFMUL_S: ++ case LoongArch::XVFSUB_D: ++ case LoongArch::XVFSUB_S: ++ case LoongArch::XVFTINTRM_W_D: ++ case LoongArch::XVFTINTRNE_W_D: ++ case LoongArch::XVFTINTRP_W_D: ++ case LoongArch::XVFTINTRZ_W_D: ++ case LoongArch::XVFTINT_W_D: ++ case LoongArch::XVHADDW_DU_WU: ++ case LoongArch::XVHADDW_D_W: ++ case LoongArch::XVHADDW_HU_BU: ++ case LoongArch::XVHADDW_H_B: ++ case LoongArch::XVHADDW_QU_DU: ++ case LoongArch::XVHADDW_Q_D: ++ case LoongArch::XVHADDW_WU_HU: ++ case LoongArch::XVHADDW_W_H: ++ case LoongArch::XVHSUBW_DU_WU: ++ case LoongArch::XVHSUBW_D_W: ++ case LoongArch::XVHSUBW_HU_BU: ++ case LoongArch::XVHSUBW_H_B: ++ case LoongArch::XVHSUBW_QU_DU: ++ case LoongArch::XVHSUBW_Q_D: ++ case LoongArch::XVHSUBW_WU_HU: ++ case LoongArch::XVHSUBW_W_H: ++ case LoongArch::XVILVH_B: ++ case LoongArch::XVILVH_D: ++ case LoongArch::XVILVH_H: ++ case LoongArch::XVILVH_W: ++ case LoongArch::XVILVL_B: ++ case LoongArch::XVILVL_D: ++ case LoongArch::XVILVL_H: ++ case LoongArch::XVILVL_W: ++ case LoongArch::XVMAX_B: ++ case LoongArch::XVMAX_BU: ++ case LoongArch::XVMAX_D: ++ case LoongArch::XVMAX_DU: ++ case LoongArch::XVMAX_H: ++ case LoongArch::XVMAX_HU: ++ case LoongArch::XVMAX_W: ++ case LoongArch::XVMAX_WU: ++ case LoongArch::XVMIN_B: ++ case LoongArch::XVMIN_BU: ++ case LoongArch::XVMIN_D: ++ case LoongArch::XVMIN_DU: ++ case LoongArch::XVMIN_H: ++ case LoongArch::XVMIN_HU: ++ case LoongArch::XVMIN_W: ++ case LoongArch::XVMIN_WU: ++ case LoongArch::XVMOD_B: ++ case LoongArch::XVMOD_BU: ++ case LoongArch::XVMOD_D: ++ case LoongArch::XVMOD_DU: ++ case LoongArch::XVMOD_H: ++ case LoongArch::XVMOD_HU: ++ case LoongArch::XVMOD_W: ++ case LoongArch::XVMOD_WU: ++ case LoongArch::XVMUH_B: ++ case LoongArch::XVMUH_BU: ++ case LoongArch::XVMUH_D: ++ case LoongArch::XVMUH_DU: ++ case LoongArch::XVMUH_H: ++ case LoongArch::XVMUH_HU: ++ case LoongArch::XVMUH_W: ++ case LoongArch::XVMUH_WU: ++ case LoongArch::XVMULWEV_D_W: ++ case LoongArch::XVMULWEV_D_WU: ++ case LoongArch::XVMULWEV_D_WU_W: ++ case LoongArch::XVMULWEV_H_B: ++ case LoongArch::XVMULWEV_H_BU: ++ case LoongArch::XVMULWEV_H_BU_B: ++ case LoongArch::XVMULWEV_Q_D: ++ case LoongArch::XVMULWEV_Q_DU: ++ case LoongArch::XVMULWEV_Q_DU_D: ++ case LoongArch::XVMULWEV_W_H: ++ case LoongArch::XVMULWEV_W_HU: ++ case LoongArch::XVMULWEV_W_HU_H: ++ case LoongArch::XVMULWOD_D_W: ++ case LoongArch::XVMULWOD_D_WU: ++ case LoongArch::XVMULWOD_D_WU_W: ++ case LoongArch::XVMULWOD_H_B: ++ case LoongArch::XVMULWOD_H_BU: ++ case LoongArch::XVMULWOD_H_BU_B: ++ case LoongArch::XVMULWOD_Q_D: ++ case LoongArch::XVMULWOD_Q_DU: ++ case LoongArch::XVMULWOD_Q_DU_D: ++ case LoongArch::XVMULWOD_W_H: ++ case LoongArch::XVMULWOD_W_HU: ++ case LoongArch::XVMULWOD_W_HU_H: ++ case LoongArch::XVMUL_B: ++ case LoongArch::XVMUL_D: ++ case LoongArch::XVMUL_H: ++ case LoongArch::XVMUL_W: ++ case LoongArch::XVNOR_V: ++ case LoongArch::XVORN_V: ++ case LoongArch::XVOR_V: ++ case LoongArch::XVPACKEV_B: ++ case LoongArch::XVPACKEV_D: ++ case LoongArch::XVPACKEV_H: ++ case LoongArch::XVPACKEV_W: ++ case LoongArch::XVPACKOD_B: ++ case LoongArch::XVPACKOD_D: ++ case LoongArch::XVPACKOD_H: ++ case LoongArch::XVPACKOD_W: ++ case LoongArch::XVPERM_W: ++ case LoongArch::XVPICKEV_B: ++ case LoongArch::XVPICKEV_D: ++ case LoongArch::XVPICKEV_H: ++ case LoongArch::XVPICKEV_W: ++ case LoongArch::XVPICKOD_B: ++ case LoongArch::XVPICKOD_D: ++ case LoongArch::XVPICKOD_H: ++ case LoongArch::XVPICKOD_W: ++ case LoongArch::XVROTR_B: ++ case LoongArch::XVROTR_D: ++ case LoongArch::XVROTR_H: ++ case LoongArch::XVROTR_W: ++ case LoongArch::XVSADD_B: ++ case LoongArch::XVSADD_BU: ++ case LoongArch::XVSADD_D: ++ case LoongArch::XVSADD_DU: ++ case LoongArch::XVSADD_H: ++ case LoongArch::XVSADD_HU: ++ case LoongArch::XVSADD_W: ++ case LoongArch::XVSADD_WU: ++ case LoongArch::XVSEQ_B: ++ case LoongArch::XVSEQ_D: ++ case LoongArch::XVSEQ_H: ++ case LoongArch::XVSEQ_W: ++ case LoongArch::XVSIGNCOV_B: ++ case LoongArch::XVSIGNCOV_D: ++ case LoongArch::XVSIGNCOV_H: ++ case LoongArch::XVSIGNCOV_W: ++ case LoongArch::XVSLE_B: ++ case LoongArch::XVSLE_BU: ++ case LoongArch::XVSLE_D: ++ case LoongArch::XVSLE_DU: ++ case LoongArch::XVSLE_H: ++ case LoongArch::XVSLE_HU: ++ case LoongArch::XVSLE_W: ++ case LoongArch::XVSLE_WU: ++ case LoongArch::XVSLL_B: ++ case LoongArch::XVSLL_D: ++ case LoongArch::XVSLL_H: ++ case LoongArch::XVSLL_W: ++ case LoongArch::XVSLT_B: ++ case LoongArch::XVSLT_BU: ++ case LoongArch::XVSLT_D: ++ case LoongArch::XVSLT_DU: ++ case LoongArch::XVSLT_H: ++ case LoongArch::XVSLT_HU: ++ case LoongArch::XVSLT_W: ++ case LoongArch::XVSLT_WU: ++ case LoongArch::XVSRAN_B_H: ++ case LoongArch::XVSRAN_H_W: ++ case LoongArch::XVSRAN_W_D: ++ case LoongArch::XVSRARN_B_H: ++ case LoongArch::XVSRARN_H_W: ++ case LoongArch::XVSRARN_W_D: ++ case LoongArch::XVSRAR_B: ++ case LoongArch::XVSRAR_D: ++ case LoongArch::XVSRAR_H: ++ case LoongArch::XVSRAR_W: ++ case LoongArch::XVSRA_B: ++ case LoongArch::XVSRA_D: ++ case LoongArch::XVSRA_H: ++ case LoongArch::XVSRA_W: ++ case LoongArch::XVSRLN_B_H: ++ case LoongArch::XVSRLN_H_W: ++ case LoongArch::XVSRLN_W_D: ++ case LoongArch::XVSRLRN_B_H: ++ case LoongArch::XVSRLRN_H_W: ++ case LoongArch::XVSRLRN_W_D: ++ case LoongArch::XVSRLR_B: ++ case LoongArch::XVSRLR_D: ++ case LoongArch::XVSRLR_H: ++ case LoongArch::XVSRLR_W: ++ case LoongArch::XVSRL_B: ++ case LoongArch::XVSRL_D: ++ case LoongArch::XVSRL_H: ++ case LoongArch::XVSRL_W: ++ case LoongArch::XVSSRAN_BU_H: ++ case LoongArch::XVSSRAN_B_H: ++ case LoongArch::XVSSRAN_HU_W: ++ case LoongArch::XVSSRAN_H_W: ++ case LoongArch::XVSSRAN_WU_D: ++ case LoongArch::XVSSRAN_W_D: ++ case LoongArch::XVSSRARN_BU_H: ++ case LoongArch::XVSSRARN_B_H: ++ case LoongArch::XVSSRARN_HU_W: ++ case LoongArch::XVSSRARN_H_W: ++ case LoongArch::XVSSRARN_WU_D: ++ case LoongArch::XVSSRARN_W_D: ++ case LoongArch::XVSSRLN_BU_H: ++ case LoongArch::XVSSRLN_B_H: ++ case LoongArch::XVSSRLN_HU_W: ++ case LoongArch::XVSSRLN_H_W: ++ case LoongArch::XVSSRLN_WU_D: ++ case LoongArch::XVSSRLN_W_D: ++ case LoongArch::XVSSRLRN_BU_H: ++ case LoongArch::XVSSRLRN_B_H: ++ case LoongArch::XVSSRLRN_HU_W: ++ case LoongArch::XVSSRLRN_H_W: ++ case LoongArch::XVSSRLRN_WU_D: ++ case LoongArch::XVSSRLRN_W_D: ++ case LoongArch::XVSSUB_B: ++ case LoongArch::XVSSUB_BU: ++ case LoongArch::XVSSUB_D: ++ case LoongArch::XVSSUB_DU: ++ case LoongArch::XVSSUB_H: ++ case LoongArch::XVSSUB_HU: ++ case LoongArch::XVSSUB_W: ++ case LoongArch::XVSSUB_WU: ++ case LoongArch::XVSUBWEV_D_W: ++ case LoongArch::XVSUBWEV_D_WU: ++ case LoongArch::XVSUBWEV_H_B: ++ case LoongArch::XVSUBWEV_H_BU: ++ case LoongArch::XVSUBWEV_Q_D: ++ case LoongArch::XVSUBWEV_Q_DU: ++ case LoongArch::XVSUBWEV_W_H: ++ case LoongArch::XVSUBWEV_W_HU: ++ case LoongArch::XVSUBWOD_D_W: ++ case LoongArch::XVSUBWOD_D_WU: ++ case LoongArch::XVSUBWOD_H_B: ++ case LoongArch::XVSUBWOD_H_BU: ++ case LoongArch::XVSUBWOD_Q_D: ++ case LoongArch::XVSUBWOD_Q_DU: ++ case LoongArch::XVSUBWOD_W_H: ++ case LoongArch::XVSUBWOD_W_HU: ++ case LoongArch::XVSUB_B: ++ case LoongArch::XVSUB_D: ++ case LoongArch::XVSUB_H: ++ case LoongArch::XVSUB_Q: ++ case LoongArch::XVSUB_W: ++ case LoongArch::XVXOR_V: { ++ // op: xk ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 10; ++ Value |= op; ++ // op: xj ++ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: xd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ break; ++ } ++ case LoongArch::XVFRSTP_B: ++ case LoongArch::XVFRSTP_H: ++ case LoongArch::XVMADDWEV_D_W: ++ case LoongArch::XVMADDWEV_D_WU: ++ case LoongArch::XVMADDWEV_D_WU_W: ++ case LoongArch::XVMADDWEV_H_B: ++ case LoongArch::XVMADDWEV_H_BU: ++ case LoongArch::XVMADDWEV_H_BU_B: ++ case LoongArch::XVMADDWEV_Q_D: ++ case LoongArch::XVMADDWEV_Q_DU: ++ case LoongArch::XVMADDWEV_Q_DU_D: ++ case LoongArch::XVMADDWEV_W_H: ++ case LoongArch::XVMADDWEV_W_HU: ++ case LoongArch::XVMADDWEV_W_HU_H: ++ case LoongArch::XVMADDWOD_D_W: ++ case LoongArch::XVMADDWOD_D_WU: ++ case LoongArch::XVMADDWOD_D_WU_W: ++ case LoongArch::XVMADDWOD_H_B: ++ case LoongArch::XVMADDWOD_H_BU: ++ case LoongArch::XVMADDWOD_H_BU_B: ++ case LoongArch::XVMADDWOD_Q_D: ++ case LoongArch::XVMADDWOD_Q_DU: ++ case LoongArch::XVMADDWOD_Q_DU_D: ++ case LoongArch::XVMADDWOD_W_H: ++ case LoongArch::XVMADDWOD_W_HU: ++ case LoongArch::XVMADDWOD_W_HU_H: ++ case LoongArch::XVMADD_B: ++ case LoongArch::XVMADD_D: ++ case LoongArch::XVMADD_H: ++ case LoongArch::XVMADD_W: ++ case LoongArch::XVMSUB_B: ++ case LoongArch::XVMSUB_D: ++ case LoongArch::XVMSUB_H: ++ case LoongArch::XVMSUB_W: ++ case LoongArch::XVSHUF_D: ++ case LoongArch::XVSHUF_H: ++ case LoongArch::XVSHUF_W: { ++ // op: xk ++ op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 10; ++ Value |= op; ++ // op: xj ++ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI); ++ op &= UINT64_C(31); ++ op <<= 5; ++ Value |= op; ++ // op: xd ++ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ++ op &= UINT64_C(31); ++ Value |= op; ++ break; ++ } ++ default: ++ std::string msg; ++ raw_string_ostream Msg(msg); ++ Msg << "Not supported instr: " << MI; ++ report_fatal_error(Msg.str()); ++ } ++ return Value; ++} ++ ++#ifdef ENABLE_INSTR_PREDICATE_VERIFIER ++#undef ENABLE_INSTR_PREDICATE_VERIFIER ++#include ++ ++// Bits for subtarget features that participate in instruction matching. ++enum SubtargetFeatureBits : uint8_t { ++ Feature_HasLSXBit = 1, ++ Feature_HasLASXBit = 0, ++ Feature_IsGP64bitBit = 3, ++ Feature_IsGP32bitBit = 2, ++ Feature_IsNotSoftFloatBit = 4, ++}; ++ ++#ifndef NDEBUG ++static const char *SubtargetFeatureNames[] = { ++ "Feature_HasLASX", ++ "Feature_HasLSX", ++ "Feature_IsGP32bit", ++ "Feature_IsGP64bit", ++ "Feature_IsNotSoftFloat", ++ nullptr ++}; ++ ++#endif // NDEBUG ++FeatureBitset LoongArchMCCodeEmitter:: ++computeAvailableFeatures(const FeatureBitset& FB) const { ++ FeatureBitset Features; ++ if ((FB[LoongArch::FeatureLSX])) ++ Features.set(Feature_HasLSXBit); ++ if ((FB[LoongArch::FeatureLASX])) ++ Features.set(Feature_HasLASXBit); ++ if ((FB[LoongArch::Feature64Bit])) ++ Features.set(Feature_IsGP64bitBit); ++ if ((!FB[LoongArch::Feature64Bit])) ++ Features.set(Feature_IsGP32bitBit); ++ if ((!FB[LoongArch::FeatureSoftFloat])) ++ Features.set(Feature_IsNotSoftFloatBit); ++ return Features; ++} ++ ++#ifndef NDEBUG ++// Feature bitsets. ++enum : uint8_t { ++ CEFBS_None, ++ CEFBS_HasLASX, ++ CEFBS_HasLSX, ++}; ++ ++static constexpr FeatureBitset FeatureBitsets[] = { ++ {}, // CEFBS_None ++ {Feature_HasLASXBit, }, ++ {Feature_HasLSXBit, }, ++}; ++#endif // NDEBUG ++ ++void LoongArchMCCodeEmitter::verifyInstructionPredicates( ++ const MCInst &Inst, const FeatureBitset &AvailableFeatures) const { ++#ifndef NDEBUG ++ static uint8_t RequiredFeaturesRefs[] = { ++ CEFBS_None, // PHI = 0 ++ CEFBS_None, // INLINEASM = 1 ++ CEFBS_None, // INLINEASM_BR = 2 ++ CEFBS_None, // CFI_INSTRUCTION = 3 ++ CEFBS_None, // EH_LABEL = 4 ++ CEFBS_None, // GC_LABEL = 5 ++ CEFBS_None, // ANNOTATION_LABEL = 6 ++ CEFBS_None, // KILL = 7 ++ CEFBS_None, // EXTRACT_SUBREG = 8 ++ CEFBS_None, // INSERT_SUBREG = 9 ++ CEFBS_None, // IMPLICIT_DEF = 10 ++ CEFBS_None, // SUBREG_TO_REG = 11 ++ CEFBS_None, // COPY_TO_REGCLASS = 12 ++ CEFBS_None, // DBG_VALUE = 13 ++ CEFBS_None, // DBG_LABEL = 14 ++ CEFBS_None, // REG_SEQUENCE = 15 ++ CEFBS_None, // COPY = 16 ++ CEFBS_None, // BUNDLE = 17 ++ CEFBS_None, // LIFETIME_START = 18 ++ CEFBS_None, // LIFETIME_END = 19 ++ CEFBS_None, // STACKMAP = 20 ++ CEFBS_None, // FENTRY_CALL = 21 ++ CEFBS_None, // PATCHPOINT = 22 ++ CEFBS_None, // LOAD_STACK_GUARD = 23 ++ CEFBS_None, // STATEPOINT = 24 ++ CEFBS_None, // LOCAL_ESCAPE = 25 ++ CEFBS_None, // FAULTING_OP = 26 ++ CEFBS_None, // PATCHABLE_OP = 27 ++ CEFBS_None, // PATCHABLE_FUNCTION_ENTER = 28 ++ CEFBS_None, // PATCHABLE_RET = 29 ++ CEFBS_None, // PATCHABLE_FUNCTION_EXIT = 30 ++ CEFBS_None, // PATCHABLE_TAIL_CALL = 31 ++ CEFBS_None, // PATCHABLE_EVENT_CALL = 32 ++ CEFBS_None, // PATCHABLE_TYPED_EVENT_CALL = 33 ++ CEFBS_None, // ICALL_BRANCH_FUNNEL = 34 ++ CEFBS_None, // G_ADD = 35 ++ CEFBS_None, // G_SUB = 36 ++ CEFBS_None, // G_MUL = 37 ++ CEFBS_None, // G_SDIV = 38 ++ CEFBS_None, // G_UDIV = 39 ++ CEFBS_None, // G_SREM = 40 ++ CEFBS_None, // G_UREM = 41 ++ CEFBS_None, // G_AND = 42 ++ CEFBS_None, // G_OR = 43 ++ CEFBS_None, // G_XOR = 44 ++ CEFBS_None, // G_IMPLICIT_DEF = 45 ++ CEFBS_None, // G_PHI = 46 ++ CEFBS_None, // G_FRAME_INDEX = 47 ++ CEFBS_None, // G_GLOBAL_VALUE = 48 ++ CEFBS_None, // G_EXTRACT = 49 ++ CEFBS_None, // G_UNMERGE_VALUES = 50 ++ CEFBS_None, // G_INSERT = 51 ++ CEFBS_None, // G_MERGE_VALUES = 52 ++ CEFBS_None, // G_BUILD_VECTOR = 53 ++ CEFBS_None, // G_BUILD_VECTOR_TRUNC = 54 ++ CEFBS_None, // G_CONCAT_VECTORS = 55 ++ CEFBS_None, // G_PTRTOINT = 56 ++ CEFBS_None, // G_INTTOPTR = 57 ++ CEFBS_None, // G_BITCAST = 58 ++ CEFBS_None, // G_INTRINSIC_TRUNC = 59 ++ CEFBS_None, // G_INTRINSIC_ROUND = 60 ++ CEFBS_None, // G_READCYCLECOUNTER = 61 ++ CEFBS_None, // G_LOAD = 62 ++ CEFBS_None, // G_SEXTLOAD = 63 ++ CEFBS_None, // G_ZEXTLOAD = 64 ++ CEFBS_None, // G_INDEXED_LOAD = 65 ++ CEFBS_None, // G_INDEXED_SEXTLOAD = 66 ++ CEFBS_None, // G_INDEXED_ZEXTLOAD = 67 ++ CEFBS_None, // G_STORE = 68 ++ CEFBS_None, // G_INDEXED_STORE = 69 ++ CEFBS_None, // G_ATOMIC_CMPXCHG_WITH_SUCCESS = 70 ++ CEFBS_None, // G_ATOMIC_CMPXCHG = 71 ++ CEFBS_None, // G_ATOMICRMW_XCHG = 72 ++ CEFBS_None, // G_ATOMICRMW_ADD = 73 ++ CEFBS_None, // G_ATOMICRMW_SUB = 74 ++ CEFBS_None, // G_ATOMICRMW_AND = 75 ++ CEFBS_None, // G_ATOMICRMW_NAND = 76 ++ CEFBS_None, // G_ATOMICRMW_OR = 77 ++ CEFBS_None, // G_ATOMICRMW_XOR = 78 ++ CEFBS_None, // G_ATOMICRMW_MAX = 79 ++ CEFBS_None, // G_ATOMICRMW_MIN = 80 ++ CEFBS_None, // G_ATOMICRMW_UMAX = 81 ++ CEFBS_None, // G_ATOMICRMW_UMIN = 82 ++ CEFBS_None, // G_ATOMICRMW_FADD = 83 ++ CEFBS_None, // G_ATOMICRMW_FSUB = 84 ++ CEFBS_None, // G_FENCE = 85 ++ CEFBS_None, // G_BRCOND = 86 ++ CEFBS_None, // G_BRINDIRECT = 87 ++ CEFBS_None, // G_INTRINSIC = 88 ++ CEFBS_None, // G_INTRINSIC_W_SIDE_EFFECTS = 89 ++ CEFBS_None, // G_ANYEXT = 90 ++ CEFBS_None, // G_TRUNC = 91 ++ CEFBS_None, // G_CONSTANT = 92 ++ CEFBS_None, // G_FCONSTANT = 93 ++ CEFBS_None, // G_VASTART = 94 ++ CEFBS_None, // G_VAARG = 95 ++ CEFBS_None, // G_SEXT = 96 ++ CEFBS_None, // G_SEXT_INREG = 97 ++ CEFBS_None, // G_ZEXT = 98 ++ CEFBS_None, // G_SHL = 99 ++ CEFBS_None, // G_LSHR = 100 ++ CEFBS_None, // G_ASHR = 101 ++ CEFBS_None, // G_ICMP = 102 ++ CEFBS_None, // G_FCMP = 103 ++ CEFBS_None, // G_SELECT = 104 ++ CEFBS_None, // G_UADDO = 105 ++ CEFBS_None, // G_UADDE = 106 ++ CEFBS_None, // G_USUBO = 107 ++ CEFBS_None, // G_USUBE = 108 ++ CEFBS_None, // G_SADDO = 109 ++ CEFBS_None, // G_SADDE = 110 ++ CEFBS_None, // G_SSUBO = 111 ++ CEFBS_None, // G_SSUBE = 112 ++ CEFBS_None, // G_UMULO = 113 ++ CEFBS_None, // G_SMULO = 114 ++ CEFBS_None, // G_UMULH = 115 ++ CEFBS_None, // G_SMULH = 116 ++ CEFBS_None, // G_FADD = 117 ++ CEFBS_None, // G_FSUB = 118 ++ CEFBS_None, // G_FMUL = 119 ++ CEFBS_None, // G_FMA = 120 ++ CEFBS_None, // G_FMAD = 121 ++ CEFBS_None, // G_FDIV = 122 ++ CEFBS_None, // G_FREM = 123 ++ CEFBS_None, // G_FPOW = 124 ++ CEFBS_None, // G_FEXP = 125 ++ CEFBS_None, // G_FEXP2 = 126 ++ CEFBS_None, // G_FLOG = 127 ++ CEFBS_None, // G_FLOG2 = 128 ++ CEFBS_None, // G_FLOG10 = 129 ++ CEFBS_None, // G_FNEG = 130 ++ CEFBS_None, // G_FPEXT = 131 ++ CEFBS_None, // G_FPTRUNC = 132 ++ CEFBS_None, // G_FPTOSI = 133 ++ CEFBS_None, // G_FPTOUI = 134 ++ CEFBS_None, // G_SITOFP = 135 ++ CEFBS_None, // G_UITOFP = 136 ++ CEFBS_None, // G_FABS = 137 ++ CEFBS_None, // G_FCOPYSIGN = 138 ++ CEFBS_None, // G_FCANONICALIZE = 139 ++ CEFBS_None, // G_FMINNUM = 140 ++ CEFBS_None, // G_FMAXNUM = 141 ++ CEFBS_None, // G_FMINNUM_IEEE = 142 ++ CEFBS_None, // G_FMAXNUM_IEEE = 143 ++ CEFBS_None, // G_FMINIMUM = 144 ++ CEFBS_None, // G_FMAXIMUM = 145 ++ CEFBS_None, // G_PTR_ADD = 146 ++ CEFBS_None, // G_PTR_MASK = 147 ++ CEFBS_None, // G_SMIN = 148 ++ CEFBS_None, // G_SMAX = 149 ++ CEFBS_None, // G_UMIN = 150 ++ CEFBS_None, // G_UMAX = 151 ++ CEFBS_None, // G_BR = 152 ++ CEFBS_None, // G_BRJT = 153 ++ CEFBS_None, // G_INSERT_VECTOR_ELT = 154 ++ CEFBS_None, // G_EXTRACT_VECTOR_ELT = 155 ++ CEFBS_None, // G_SHUFFLE_VECTOR = 156 ++ CEFBS_None, // G_CTTZ = 157 ++ CEFBS_None, // G_CTTZ_ZERO_UNDEF = 158 ++ CEFBS_None, // G_CTLZ = 159 ++ CEFBS_None, // G_CTLZ_ZERO_UNDEF = 160 ++ CEFBS_None, // G_CTPOP = 161 ++ CEFBS_None, // G_BSWAP = 162 ++ CEFBS_None, // G_BITREVERSE = 163 ++ CEFBS_None, // G_FCEIL = 164 ++ CEFBS_None, // G_FCOS = 165 ++ CEFBS_None, // G_FSIN = 166 ++ CEFBS_None, // G_FSQRT = 167 ++ CEFBS_None, // G_FFLOOR = 168 ++ CEFBS_None, // G_FRINT = 169 ++ CEFBS_None, // G_FNEARBYINT = 170 ++ CEFBS_None, // G_ADDRSPACE_CAST = 171 ++ CEFBS_None, // G_BLOCK_ADDR = 172 ++ CEFBS_None, // G_JUMP_TABLE = 173 ++ CEFBS_None, // G_DYN_STACKALLOC = 174 ++ CEFBS_None, // G_READ_REGISTER = 175 ++ CEFBS_None, // G_WRITE_REGISTER = 176 ++ CEFBS_None, // ADJCALLSTACKDOWN = 177 ++ CEFBS_None, // ADJCALLSTACKUP = 178 ++ CEFBS_HasLSX, // AND_V_D_PSEUDO = 179 ++ CEFBS_HasLSX, // AND_V_H_PSEUDO = 180 ++ CEFBS_HasLSX, // AND_V_W_PSEUDO = 181 ++ CEFBS_None, // ATOMIC_CMP_SWAP_I16 = 182 ++ CEFBS_None, // ATOMIC_CMP_SWAP_I16_POSTRA = 183 ++ CEFBS_None, // ATOMIC_CMP_SWAP_I32 = 184 ++ CEFBS_None, // ATOMIC_CMP_SWAP_I32_POSTRA = 185 ++ CEFBS_None, // ATOMIC_CMP_SWAP_I64 = 186 ++ CEFBS_None, // ATOMIC_CMP_SWAP_I64_POSTRA = 187 ++ CEFBS_None, // ATOMIC_CMP_SWAP_I8 = 188 ++ CEFBS_None, // ATOMIC_CMP_SWAP_I8_POSTRA = 189 ++ CEFBS_None, // ATOMIC_LOAD_ADD_I16 = 190 ++ CEFBS_None, // ATOMIC_LOAD_ADD_I16_POSTRA = 191 ++ CEFBS_None, // ATOMIC_LOAD_ADD_I32 = 192 ++ CEFBS_None, // ATOMIC_LOAD_ADD_I32_POSTRA = 193 ++ CEFBS_None, // ATOMIC_LOAD_ADD_I64 = 194 ++ CEFBS_None, // ATOMIC_LOAD_ADD_I64_POSTRA = 195 ++ CEFBS_None, // ATOMIC_LOAD_ADD_I8 = 196 ++ CEFBS_None, // ATOMIC_LOAD_ADD_I8_POSTRA = 197 ++ CEFBS_None, // ATOMIC_LOAD_AND_I16 = 198 ++ CEFBS_None, // ATOMIC_LOAD_AND_I16_POSTRA = 199 ++ CEFBS_None, // ATOMIC_LOAD_AND_I32 = 200 ++ CEFBS_None, // ATOMIC_LOAD_AND_I32_POSTRA = 201 ++ CEFBS_None, // ATOMIC_LOAD_AND_I64 = 202 ++ CEFBS_None, // ATOMIC_LOAD_AND_I64_POSTRA = 203 ++ CEFBS_None, // ATOMIC_LOAD_AND_I8 = 204 ++ CEFBS_None, // ATOMIC_LOAD_AND_I8_POSTRA = 205 ++ CEFBS_None, // ATOMIC_LOAD_MAX_I16 = 206 ++ CEFBS_None, // ATOMIC_LOAD_MAX_I16_POSTRA = 207 ++ CEFBS_None, // ATOMIC_LOAD_MAX_I32 = 208 ++ CEFBS_None, // ATOMIC_LOAD_MAX_I32_POSTRA = 209 ++ CEFBS_None, // ATOMIC_LOAD_MAX_I64 = 210 ++ CEFBS_None, // ATOMIC_LOAD_MAX_I64_POSTRA = 211 ++ CEFBS_None, // ATOMIC_LOAD_MAX_I8 = 212 ++ CEFBS_None, // ATOMIC_LOAD_MAX_I8_POSTRA = 213 ++ CEFBS_None, // ATOMIC_LOAD_MIN_I16 = 214 ++ CEFBS_None, // ATOMIC_LOAD_MIN_I16_POSTRA = 215 ++ CEFBS_None, // ATOMIC_LOAD_MIN_I32 = 216 ++ CEFBS_None, // ATOMIC_LOAD_MIN_I32_POSTRA = 217 ++ CEFBS_None, // ATOMIC_LOAD_MIN_I64 = 218 ++ CEFBS_None, // ATOMIC_LOAD_MIN_I64_POSTRA = 219 ++ CEFBS_None, // ATOMIC_LOAD_MIN_I8 = 220 ++ CEFBS_None, // ATOMIC_LOAD_MIN_I8_POSTRA = 221 ++ CEFBS_None, // ATOMIC_LOAD_NAND_I16 = 222 ++ CEFBS_None, // ATOMIC_LOAD_NAND_I16_POSTRA = 223 ++ CEFBS_None, // ATOMIC_LOAD_NAND_I32 = 224 ++ CEFBS_None, // ATOMIC_LOAD_NAND_I32_POSTRA = 225 ++ CEFBS_None, // ATOMIC_LOAD_NAND_I64 = 226 ++ CEFBS_None, // ATOMIC_LOAD_NAND_I64_POSTRA = 227 ++ CEFBS_None, // ATOMIC_LOAD_NAND_I8 = 228 ++ CEFBS_None, // ATOMIC_LOAD_NAND_I8_POSTRA = 229 ++ CEFBS_None, // ATOMIC_LOAD_OR_I16 = 230 ++ CEFBS_None, // ATOMIC_LOAD_OR_I16_POSTRA = 231 ++ CEFBS_None, // ATOMIC_LOAD_OR_I32 = 232 ++ CEFBS_None, // ATOMIC_LOAD_OR_I32_POSTRA = 233 ++ CEFBS_None, // ATOMIC_LOAD_OR_I64 = 234 ++ CEFBS_None, // ATOMIC_LOAD_OR_I64_POSTRA = 235 ++ CEFBS_None, // ATOMIC_LOAD_OR_I8 = 236 ++ CEFBS_None, // ATOMIC_LOAD_OR_I8_POSTRA = 237 ++ CEFBS_None, // ATOMIC_LOAD_SUB_I16 = 238 ++ CEFBS_None, // ATOMIC_LOAD_SUB_I16_POSTRA = 239 ++ CEFBS_None, // ATOMIC_LOAD_SUB_I32 = 240 ++ CEFBS_None, // ATOMIC_LOAD_SUB_I32_POSTRA = 241 ++ CEFBS_None, // ATOMIC_LOAD_SUB_I64 = 242 ++ CEFBS_None, // ATOMIC_LOAD_SUB_I64_POSTRA = 243 ++ CEFBS_None, // ATOMIC_LOAD_SUB_I8 = 244 ++ CEFBS_None, // ATOMIC_LOAD_SUB_I8_POSTRA = 245 ++ CEFBS_None, // ATOMIC_LOAD_UMAX_I16 = 246 ++ CEFBS_None, // ATOMIC_LOAD_UMAX_I16_POSTRA = 247 ++ CEFBS_None, // ATOMIC_LOAD_UMAX_I32 = 248 ++ CEFBS_None, // ATOMIC_LOAD_UMAX_I32_POSTRA = 249 ++ CEFBS_None, // ATOMIC_LOAD_UMAX_I64 = 250 ++ CEFBS_None, // ATOMIC_LOAD_UMAX_I64_POSTRA = 251 ++ CEFBS_None, // ATOMIC_LOAD_UMAX_I8 = 252 ++ CEFBS_None, // ATOMIC_LOAD_UMAX_I8_POSTRA = 253 ++ CEFBS_None, // ATOMIC_LOAD_UMIN_I16 = 254 ++ CEFBS_None, // ATOMIC_LOAD_UMIN_I16_POSTRA = 255 ++ CEFBS_None, // ATOMIC_LOAD_UMIN_I32 = 256 ++ CEFBS_None, // ATOMIC_LOAD_UMIN_I32_POSTRA = 257 ++ CEFBS_None, // ATOMIC_LOAD_UMIN_I64 = 258 ++ CEFBS_None, // ATOMIC_LOAD_UMIN_I64_POSTRA = 259 ++ CEFBS_None, // ATOMIC_LOAD_UMIN_I8 = 260 ++ CEFBS_None, // ATOMIC_LOAD_UMIN_I8_POSTRA = 261 ++ CEFBS_None, // ATOMIC_LOAD_XOR_I16 = 262 ++ CEFBS_None, // ATOMIC_LOAD_XOR_I16_POSTRA = 263 ++ CEFBS_None, // ATOMIC_LOAD_XOR_I32 = 264 ++ CEFBS_None, // ATOMIC_LOAD_XOR_I32_POSTRA = 265 ++ CEFBS_None, // ATOMIC_LOAD_XOR_I64 = 266 ++ CEFBS_None, // ATOMIC_LOAD_XOR_I64_POSTRA = 267 ++ CEFBS_None, // ATOMIC_LOAD_XOR_I8 = 268 ++ CEFBS_None, // ATOMIC_LOAD_XOR_I8_POSTRA = 269 ++ CEFBS_None, // ATOMIC_SWAP_I16 = 270 ++ CEFBS_None, // ATOMIC_SWAP_I16_POSTRA = 271 ++ CEFBS_None, // ATOMIC_SWAP_I32 = 272 ++ CEFBS_None, // ATOMIC_SWAP_I32_POSTRA = 273 ++ CEFBS_None, // ATOMIC_SWAP_I64 = 274 ++ CEFBS_None, // ATOMIC_SWAP_I64_POSTRA = 275 ++ CEFBS_None, // ATOMIC_SWAP_I8 = 276 ++ CEFBS_None, // ATOMIC_SWAP_I8_POSTRA = 277 ++ CEFBS_HasLSX, // BSEL_B_PSEUDO = 278 ++ CEFBS_HasLSX, // BSEL_D_PSEUDO = 279 ++ CEFBS_HasLSX, // BSEL_FD_PSEUDO = 280 ++ CEFBS_HasLSX, // BSEL_FW_PSEUDO = 281 ++ CEFBS_HasLSX, // BSEL_H_PSEUDO = 282 ++ CEFBS_HasLSX, // BSEL_W_PSEUDO = 283 ++ CEFBS_HasLASX, // CONCAT_VECTORS_B_PSEUDO = 284 ++ CEFBS_HasLASX, // CONCAT_VECTORS_D_PSEUDO = 285 ++ CEFBS_HasLASX, // CONCAT_VECTORS_FD_PSEUDO = 286 ++ CEFBS_HasLASX, // CONCAT_VECTORS_FW_PSEUDO = 287 ++ CEFBS_HasLASX, // CONCAT_VECTORS_H_PSEUDO = 288 ++ CEFBS_HasLASX, // CONCAT_VECTORS_W_PSEUDO = 289 ++ CEFBS_HasLSX, // COPY_FD_PSEUDO = 290 ++ CEFBS_HasLSX, // COPY_FW_PSEUDO = 291 ++ CEFBS_None, // ERet = 292 ++ CEFBS_HasLSX, // FILL_FD_PSEUDO = 293 ++ CEFBS_HasLSX, // FILL_FW_PSEUDO = 294 ++ CEFBS_HasLSX, // INSERT_FD_PSEUDO = 295 ++ CEFBS_HasLSX, // INSERT_FW_PSEUDO = 296 ++ CEFBS_HasLSX, // INSERT_H_VIDX64_PSEUDO = 297 ++ CEFBS_None, // INSERT_H_VIDX64_PSEUDO_POSTRA = 298 ++ CEFBS_None, // JIRLRBRIND = 299 ++ CEFBS_None, // JIRLRPseudo = 300 ++ CEFBS_None, // LONG_BRANCH_ADDID = 301 ++ CEFBS_None, // LONG_BRANCH_ADDID2Op = 302 ++ CEFBS_None, // LONG_BRANCH_ADDIW = 303 ++ CEFBS_None, // LONG_BRANCH_ADDIW2Op = 304 ++ CEFBS_None, // LONG_BRANCH_PCADDU12I = 305 ++ CEFBS_None, // LoadAddrGlobal = 306 ++ CEFBS_None, // LoadAddrGlobalRR = 307 ++ CEFBS_None, // LoadAddrGlobal_Alias = 308 ++ CEFBS_None, // LoadAddrLocal = 309 ++ CEFBS_None, // LoadAddrLocalRR = 310 ++ CEFBS_None, // LoadAddrTLS_GD = 311 ++ CEFBS_None, // LoadAddrTLS_GD_RR = 312 ++ CEFBS_None, // LoadAddrTLS_IE = 313 ++ CEFBS_None, // LoadAddrTLS_IE_RR = 314 ++ CEFBS_None, // LoadAddrTLS_LD = 315 ++ CEFBS_None, // LoadAddrTLS_LD_RR = 316 ++ CEFBS_None, // LoadAddrTLS_LE = 317 ++ CEFBS_None, // LoadImm32 = 318 ++ CEFBS_None, // LoadImm64 = 319 ++ CEFBS_None, // LoongArcheh_return32 = 320 ++ CEFBS_None, // LoongArcheh_return64 = 321 ++ CEFBS_None, // NOP = 322 ++ CEFBS_HasLSX, // NOR_V_D_PSEUDO = 323 ++ CEFBS_HasLSX, // NOR_V_H_PSEUDO = 324 ++ CEFBS_HasLSX, // NOR_V_W_PSEUDO = 325 ++ CEFBS_HasLSX, // OR_V_D_PSEUDO = 326 ++ CEFBS_HasLSX, // OR_V_H_PSEUDO = 327 ++ CEFBS_HasLSX, // OR_V_W_PSEUDO = 328 ++ CEFBS_None, // PseudoCall = 329 ++ CEFBS_None, // PseudoFFINT_D_L = 330 ++ CEFBS_None, // PseudoFFINT_D_W = 331 ++ CEFBS_None, // PseudoFFINT_S_L = 332 ++ CEFBS_None, // PseudoFFINT_S_W = 333 ++ CEFBS_None, // PseudoReturn = 334 ++ CEFBS_None, // PseudoReturn64 = 335 ++ CEFBS_None, // PseudoSELECTFP_F_I = 336 ++ CEFBS_None, // PseudoSELECTFP_F_I64 = 337 ++ CEFBS_None, // PseudoSELECTFP_T_I = 338 ++ CEFBS_None, // PseudoSELECTFP_T_I64 = 339 ++ CEFBS_None, // PseudoSELECT_D64 = 340 ++ CEFBS_None, // PseudoSELECT_I = 341 ++ CEFBS_None, // PseudoSELECT_I64 = 342 ++ CEFBS_None, // PseudoSELECT_S = 343 ++ CEFBS_None, // PseudoTAILIndirect = 344 ++ CEFBS_None, // PseudoTEQ = 345 ++ CEFBS_None, // PseudoTailCall = 346 ++ CEFBS_None, // PseudoTailReturn = 347 ++ CEFBS_None, // RetRA = 348 ++ CEFBS_None, // SNZ_B_PSEUDO = 349 ++ CEFBS_None, // SNZ_D_PSEUDO = 350 ++ CEFBS_None, // SNZ_H_PSEUDO = 351 ++ CEFBS_None, // SNZ_V_PSEUDO = 352 ++ CEFBS_None, // SNZ_W_PSEUDO = 353 ++ CEFBS_None, // SZ_B_PSEUDO = 354 ++ CEFBS_None, // SZ_D_PSEUDO = 355 ++ CEFBS_None, // SZ_H_PSEUDO = 356 ++ CEFBS_None, // SZ_V_PSEUDO = 357 ++ CEFBS_None, // SZ_W_PSEUDO = 358 ++ CEFBS_None, // TRAP = 359 ++ CEFBS_HasLSX, // VANDN_D_PSEUDO = 360 ++ CEFBS_HasLSX, // VANDN_H_PSEUDO = 361 ++ CEFBS_HasLSX, // VANDN_W_PSEUDO = 362 ++ CEFBS_HasLSX, // VORN_D_PSEUDO = 363 ++ CEFBS_HasLSX, // VORN_H_PSEUDO = 364 ++ CEFBS_HasLSX, // VORN_W_PSEUDO = 365 ++ CEFBS_HasLASX, // XAND_V_D_PSEUDO = 366 ++ CEFBS_HasLASX, // XAND_V_H_PSEUDO = 367 ++ CEFBS_HasLASX, // XAND_V_W_PSEUDO = 368 ++ CEFBS_HasLASX, // XBSEL_B_PSEUDO = 369 ++ CEFBS_HasLASX, // XBSEL_D_PSEUDO = 370 ++ CEFBS_HasLASX, // XBSEL_FD_PSEUDO = 371 ++ CEFBS_HasLASX, // XBSEL_FW_PSEUDO = 372 ++ CEFBS_HasLASX, // XBSEL_H_PSEUDO = 373 ++ CEFBS_HasLASX, // XBSEL_W_PSEUDO = 374 ++ CEFBS_HasLASX, // XCOPY_FD_PSEUDO = 375 ++ CEFBS_HasLASX, // XCOPY_FW_GPR_PSEUDO = 376 ++ CEFBS_HasLASX, // XCOPY_FW_PSEUDO = 377 ++ CEFBS_HasLASX, // XFILL_FD_PSEUDO = 378 ++ CEFBS_HasLASX, // XFILL_FW_PSEUDO = 379 ++ CEFBS_HasLASX, // XINSERT_B_PSEUDO = 380 ++ CEFBS_HasLASX, // XINSERT_B_VIDX64_PSEUDO = 381 ++ CEFBS_None, // XINSERT_B_VIDX64_PSEUDO_POSTRA = 382 ++ CEFBS_HasLASX, // XINSERT_B_VIDX_PSEUDO = 383 ++ CEFBS_None, // XINSERT_B_VIDX_PSEUDO_POSTRA = 384 ++ CEFBS_HasLASX, // XINSERT_FD_PSEUDO = 385 ++ CEFBS_HasLASX, // XINSERT_FW_PSEUDO = 386 ++ CEFBS_HasLASX, // XINSERT_FW_VIDX64_PSEUDO = 387 ++ CEFBS_None, // XINSERT_FW_VIDX64_PSEUDO_POSTRA = 388 ++ CEFBS_HasLASX, // XINSERT_FW_VIDX_PSEUDO = 389 ++ CEFBS_None, // XINSERT_FW_VIDX_PSEUDO_POSTRA = 390 ++ CEFBS_HasLASX, // XINSERT_H64_PSEUDO = 391 ++ CEFBS_HasLASX, // XINSERT_H_PSEUDO = 392 ++ CEFBS_HasLASX, // XNOR_V_D_PSEUDO = 393 ++ CEFBS_HasLASX, // XNOR_V_H_PSEUDO = 394 ++ CEFBS_HasLASX, // XNOR_V_W_PSEUDO = 395 ++ CEFBS_HasLSX, // XOR_V_D_PSEUDO = 396 ++ CEFBS_HasLSX, // XOR_V_H_PSEUDO = 397 ++ CEFBS_HasLSX, // XOR_V_W_PSEUDO = 398 ++ CEFBS_None, // XSNZ_B_PSEUDO = 399 ++ CEFBS_None, // XSNZ_D_PSEUDO = 400 ++ CEFBS_None, // XSNZ_H_PSEUDO = 401 ++ CEFBS_None, // XSNZ_V_PSEUDO = 402 ++ CEFBS_None, // XSNZ_W_PSEUDO = 403 ++ CEFBS_None, // XSZ_B_PSEUDO = 404 ++ CEFBS_None, // XSZ_D_PSEUDO = 405 ++ CEFBS_None, // XSZ_H_PSEUDO = 406 ++ CEFBS_None, // XSZ_V_PSEUDO = 407 ++ CEFBS_None, // XSZ_W_PSEUDO = 408 ++ CEFBS_HasLASX, // XVANDN_D_PSEUDO = 409 ++ CEFBS_HasLASX, // XVANDN_H_PSEUDO = 410 ++ CEFBS_HasLASX, // XVANDN_W_PSEUDO = 411 ++ CEFBS_HasLASX, // XVORN_D_PSEUDO = 412 ++ CEFBS_HasLASX, // XVORN_H_PSEUDO = 413 ++ CEFBS_HasLASX, // XVORN_W_PSEUDO = 414 ++ CEFBS_HasLASX, // XXOR_V_D_PSEUDO = 415 ++ CEFBS_HasLASX, // XXOR_V_H_PSEUDO = 416 ++ CEFBS_HasLASX, // XXOR_V_W_PSEUDO = 417 ++ CEFBS_HasLASX, // X_OR_V_D_PSEUDO = 418 ++ CEFBS_HasLASX, // X_OR_V_H_PSEUDO = 419 ++ CEFBS_HasLASX, // X_OR_V_W_PSEUDO = 420 ++ CEFBS_None, // ADDI_D = 421 ++ CEFBS_None, // ADDI_D_rri = 422 ++ CEFBS_None, // ADDI_D_rrii = 423 ++ CEFBS_None, // ADDI_W = 424 ++ CEFBS_None, // ADDI_W64 = 425 ++ CEFBS_None, // ADDU16I_D = 426 ++ CEFBS_None, // ADD_D = 427 ++ CEFBS_None, // ADD_D_rrr = 428 ++ CEFBS_None, // ADD_W = 429 ++ CEFBS_None, // ALSL_D = 430 ++ CEFBS_None, // ALSL_W = 431 ++ CEFBS_None, // ALSL_WU = 432 ++ CEFBS_None, // AMADD_D = 433 ++ CEFBS_None, // AMADD_DB_D = 434 ++ CEFBS_None, // AMADD_DB_W = 435 ++ CEFBS_None, // AMADD_W = 436 ++ CEFBS_None, // AMAND_D = 437 ++ CEFBS_None, // AMAND_DB_D = 438 ++ CEFBS_None, // AMAND_DB_W = 439 ++ CEFBS_None, // AMAND_W = 440 ++ CEFBS_None, // AMMAX_D = 441 ++ CEFBS_None, // AMMAX_DB_D = 442 ++ CEFBS_None, // AMMAX_DB_DU = 443 ++ CEFBS_None, // AMMAX_DB_W = 444 ++ CEFBS_None, // AMMAX_DB_WU = 445 ++ CEFBS_None, // AMMAX_DU = 446 ++ CEFBS_None, // AMMAX_W = 447 ++ CEFBS_None, // AMMAX_WU = 448 ++ CEFBS_None, // AMMIN_D = 449 ++ CEFBS_None, // AMMIN_DB_D = 450 ++ CEFBS_None, // AMMIN_DB_DU = 451 ++ CEFBS_None, // AMMIN_DB_W = 452 ++ CEFBS_None, // AMMIN_DB_WU = 453 ++ CEFBS_None, // AMMIN_DU = 454 ++ CEFBS_None, // AMMIN_W = 455 ++ CEFBS_None, // AMMIN_WU = 456 ++ CEFBS_None, // AMOR_D = 457 ++ CEFBS_None, // AMOR_DB_D = 458 ++ CEFBS_None, // AMOR_DB_W = 459 ++ CEFBS_None, // AMOR_W = 460 ++ CEFBS_None, // AMSWAP_D = 461 ++ CEFBS_None, // AMSWAP_DB_D = 462 ++ CEFBS_None, // AMSWAP_DB_W = 463 ++ CEFBS_None, // AMSWAP_W = 464 ++ CEFBS_None, // AMXOR_D = 465 ++ CEFBS_None, // AMXOR_DB_D = 466 ++ CEFBS_None, // AMXOR_DB_W = 467 ++ CEFBS_None, // AMXOR_W = 468 ++ CEFBS_None, // AND = 469 ++ CEFBS_None, // AND32 = 470 ++ CEFBS_None, // ANDI = 471 ++ CEFBS_None, // ANDI32 = 472 ++ CEFBS_None, // ANDN = 473 ++ CEFBS_None, // ANDN32 = 474 ++ CEFBS_None, // ASRTGT_D = 475 ++ CEFBS_None, // ASRTLE_D = 476 ++ CEFBS_None, // B = 477 ++ CEFBS_None, // B32 = 478 ++ CEFBS_None, // BCEQZ = 479 ++ CEFBS_None, // BCNEZ = 480 ++ CEFBS_None, // BEQ = 481 ++ CEFBS_None, // BEQ32 = 482 ++ CEFBS_None, // BEQZ = 483 ++ CEFBS_None, // BEQZ32 = 484 ++ CEFBS_None, // BGE = 485 ++ CEFBS_None, // BGE32 = 486 ++ CEFBS_None, // BGEU = 487 ++ CEFBS_None, // BGEU32 = 488 ++ CEFBS_None, // BITREV_4B = 489 ++ CEFBS_None, // BITREV_8B = 490 ++ CEFBS_None, // BITREV_D = 491 ++ CEFBS_None, // BITREV_W = 492 ++ CEFBS_None, // BL = 493 ++ CEFBS_None, // BLT = 494 ++ CEFBS_None, // BLT32 = 495 ++ CEFBS_None, // BLTU = 496 ++ CEFBS_None, // BLTU32 = 497 ++ CEFBS_None, // BNE = 498 ++ CEFBS_None, // BNE32 = 499 ++ CEFBS_None, // BNEZ = 500 ++ CEFBS_None, // BNEZ32 = 501 ++ CEFBS_None, // BREAK = 502 ++ CEFBS_None, // BSTRINS_D = 503 ++ CEFBS_None, // BSTRINS_W = 504 ++ CEFBS_None, // BSTRPICK_D = 505 ++ CEFBS_None, // BSTRPICK_W = 506 ++ CEFBS_None, // BYTEPICK_D = 507 ++ CEFBS_None, // BYTEPICK_W = 508 ++ CEFBS_None, // CACOP = 509 ++ CEFBS_None, // CACOP32 = 510 ++ CEFBS_None, // CLO_D = 511 ++ CEFBS_None, // CLO_W = 512 ++ CEFBS_None, // CLZ_D = 513 ++ CEFBS_None, // CLZ_W = 514 ++ CEFBS_None, // CPUCFG = 515 ++ CEFBS_None, // CRCC_W_B_W = 516 ++ CEFBS_None, // CRCC_W_D_W = 517 ++ CEFBS_None, // CRCC_W_H_W = 518 ++ CEFBS_None, // CRCC_W_W_W = 519 ++ CEFBS_None, // CRC_W_B_W = 520 ++ CEFBS_None, // CRC_W_D_W = 521 ++ CEFBS_None, // CRC_W_H_W = 522 ++ CEFBS_None, // CRC_W_W_W = 523 ++ CEFBS_None, // CSRRD = 524 ++ CEFBS_None, // CSRRD32 = 525 ++ CEFBS_None, // CSRWR = 526 ++ CEFBS_None, // CSRWR32 = 527 ++ CEFBS_None, // CSRXCHG = 528 ++ CEFBS_None, // CSRXCHG32 = 529 ++ CEFBS_None, // CTO_D = 530 ++ CEFBS_None, // CTO_W = 531 ++ CEFBS_None, // CTZ_D = 532 ++ CEFBS_None, // CTZ_W = 533 ++ CEFBS_None, // DBAR = 534 ++ CEFBS_None, // DBCL = 535 ++ CEFBS_None, // DIV_D = 536 ++ CEFBS_None, // DIV_DU = 537 ++ CEFBS_None, // DIV_W = 538 ++ CEFBS_None, // DIV_WU = 539 ++ CEFBS_None, // ERTN = 540 ++ CEFBS_None, // EXT_W_B = 541 ++ CEFBS_None, // EXT_W_B32 = 542 ++ CEFBS_None, // EXT_W_H = 543 ++ CEFBS_None, // EXT_W_H32 = 544 ++ CEFBS_None, // FABS_D = 545 ++ CEFBS_None, // FABS_S = 546 ++ CEFBS_None, // FADD_D = 547 ++ CEFBS_None, // FADD_S = 548 ++ CEFBS_None, // FCLASS_D = 549 ++ CEFBS_None, // FCLASS_S = 550 ++ CEFBS_None, // FCMP_CAF_D = 551 ++ CEFBS_None, // FCMP_CAF_S = 552 ++ CEFBS_None, // FCMP_CEQ_D = 553 ++ CEFBS_None, // FCMP_CEQ_S = 554 ++ CEFBS_None, // FCMP_CLE_D = 555 ++ CEFBS_None, // FCMP_CLE_S = 556 ++ CEFBS_None, // FCMP_CLT_D = 557 ++ CEFBS_None, // FCMP_CLT_S = 558 ++ CEFBS_None, // FCMP_CNE_D = 559 ++ CEFBS_None, // FCMP_CNE_S = 560 ++ CEFBS_None, // FCMP_COR_D = 561 ++ CEFBS_None, // FCMP_COR_S = 562 ++ CEFBS_None, // FCMP_CUEQ_D = 563 ++ CEFBS_None, // FCMP_CUEQ_S = 564 ++ CEFBS_None, // FCMP_CULE_D = 565 ++ CEFBS_None, // FCMP_CULE_S = 566 ++ CEFBS_None, // FCMP_CULT_D = 567 ++ CEFBS_None, // FCMP_CULT_S = 568 ++ CEFBS_None, // FCMP_CUNE_D = 569 ++ CEFBS_None, // FCMP_CUNE_S = 570 ++ CEFBS_None, // FCMP_CUN_D = 571 ++ CEFBS_None, // FCMP_CUN_S = 572 ++ CEFBS_None, // FCMP_D64 = 573 ++ CEFBS_None, // FCMP_S32 = 574 ++ CEFBS_None, // FCMP_SAF_D = 575 ++ CEFBS_None, // FCMP_SAF_S = 576 ++ CEFBS_None, // FCMP_SEQ_D = 577 ++ CEFBS_None, // FCMP_SEQ_S = 578 ++ CEFBS_None, // FCMP_SLE_D = 579 ++ CEFBS_None, // FCMP_SLE_S = 580 ++ CEFBS_None, // FCMP_SLT_D = 581 ++ CEFBS_None, // FCMP_SLT_S = 582 ++ CEFBS_None, // FCMP_SNE_D = 583 ++ CEFBS_None, // FCMP_SNE_S = 584 ++ CEFBS_None, // FCMP_SOR_D = 585 ++ CEFBS_None, // FCMP_SOR_S = 586 ++ CEFBS_None, // FCMP_SUEQ_D = 587 ++ CEFBS_None, // FCMP_SUEQ_S = 588 ++ CEFBS_None, // FCMP_SULE_D = 589 ++ CEFBS_None, // FCMP_SULE_S = 590 ++ CEFBS_None, // FCMP_SULT_D = 591 ++ CEFBS_None, // FCMP_SULT_S = 592 ++ CEFBS_None, // FCMP_SUNE_D = 593 ++ CEFBS_None, // FCMP_SUNE_S = 594 ++ CEFBS_None, // FCMP_SUN_D = 595 ++ CEFBS_None, // FCMP_SUN_S = 596 ++ CEFBS_None, // FCOPYSIGN_D = 597 ++ CEFBS_None, // FCOPYSIGN_S = 598 ++ CEFBS_None, // FCVT_D_S = 599 ++ CEFBS_None, // FCVT_S_D = 600 ++ CEFBS_None, // FDIV_D = 601 ++ CEFBS_None, // FDIV_S = 602 ++ CEFBS_None, // FFINT_D_L = 603 ++ CEFBS_None, // FFINT_D_W = 604 ++ CEFBS_None, // FFINT_S_L = 605 ++ CEFBS_None, // FFINT_S_W = 606 ++ CEFBS_None, // FLDGT_D = 607 ++ CEFBS_None, // FLDGT_S = 608 ++ CEFBS_None, // FLDLE_D = 609 ++ CEFBS_None, // FLDLE_S = 610 ++ CEFBS_None, // FLDX_D = 611 ++ CEFBS_None, // FLDX_S = 612 ++ CEFBS_None, // FLD_D = 613 ++ CEFBS_None, // FLD_S = 614 ++ CEFBS_None, // FLOGB_D = 615 ++ CEFBS_None, // FLOGB_S = 616 ++ CEFBS_None, // FMADD_D = 617 ++ CEFBS_None, // FMADD_S = 618 ++ CEFBS_None, // FMAXA_D = 619 ++ CEFBS_None, // FMAXA_S = 620 ++ CEFBS_None, // FMAX_D = 621 ++ CEFBS_None, // FMAX_S = 622 ++ CEFBS_None, // FMINA_D = 623 ++ CEFBS_None, // FMINA_S = 624 ++ CEFBS_None, // FMIN_D = 625 ++ CEFBS_None, // FMIN_S = 626 ++ CEFBS_None, // FMOV_D = 627 ++ CEFBS_None, // FMOV_S = 628 ++ CEFBS_None, // FMSUB_D = 629 ++ CEFBS_None, // FMSUB_S = 630 ++ CEFBS_None, // FMUL_D = 631 ++ CEFBS_None, // FMUL_S = 632 ++ CEFBS_None, // FNEG_D = 633 ++ CEFBS_None, // FNEG_S = 634 ++ CEFBS_None, // FNMADD_D = 635 ++ CEFBS_None, // FNMADD_S = 636 ++ CEFBS_None, // FNMSUB_D = 637 ++ CEFBS_None, // FNMSUB_S = 638 ++ CEFBS_None, // FRECIP_D = 639 ++ CEFBS_None, // FRECIP_S = 640 ++ CEFBS_None, // FRINT_D = 641 ++ CEFBS_None, // FRINT_S = 642 ++ CEFBS_None, // FRSQRT_D = 643 ++ CEFBS_None, // FRSQRT_S = 644 ++ CEFBS_None, // FSCALEB_D = 645 ++ CEFBS_None, // FSCALEB_S = 646 ++ CEFBS_None, // FSEL_T_D = 647 ++ CEFBS_None, // FSEL_T_S = 648 ++ CEFBS_None, // FSQRT_D = 649 ++ CEFBS_None, // FSQRT_S = 650 ++ CEFBS_None, // FSTGT_D = 651 ++ CEFBS_None, // FSTGT_S = 652 ++ CEFBS_None, // FSTLE_D = 653 ++ CEFBS_None, // FSTLE_S = 654 ++ CEFBS_None, // FSTX_D = 655 ++ CEFBS_None, // FSTX_S = 656 ++ CEFBS_None, // FST_D = 657 ++ CEFBS_None, // FST_S = 658 ++ CEFBS_None, // FSUB_D = 659 ++ CEFBS_None, // FSUB_S = 660 ++ CEFBS_None, // FTINTRM_L_D = 661 ++ CEFBS_None, // FTINTRM_L_S = 662 ++ CEFBS_None, // FTINTRM_W_D = 663 ++ CEFBS_None, // FTINTRM_W_S = 664 ++ CEFBS_None, // FTINTRNE_L_D = 665 ++ CEFBS_None, // FTINTRNE_L_S = 666 ++ CEFBS_None, // FTINTRNE_W_D = 667 ++ CEFBS_None, // FTINTRNE_W_S = 668 ++ CEFBS_None, // FTINTRP_L_D = 669 ++ CEFBS_None, // FTINTRP_L_S = 670 ++ CEFBS_None, // FTINTRP_W_D = 671 ++ CEFBS_None, // FTINTRP_W_S = 672 ++ CEFBS_None, // FTINTRZ_L_D = 673 ++ CEFBS_None, // FTINTRZ_L_S = 674 ++ CEFBS_None, // FTINTRZ_W_S = 675 ++ CEFBS_None, // FTINT_L_D = 676 ++ CEFBS_None, // FTINT_L_S = 677 ++ CEFBS_None, // FTINT_W_D = 678 ++ CEFBS_None, // FTINT_W_S = 679 ++ CEFBS_None, // HYPCALL = 680 ++ CEFBS_None, // IBAR = 681 ++ CEFBS_None, // IDLE = 682 ++ CEFBS_None, // INVTLB = 683 ++ CEFBS_None, // IOCSRRD_B = 684 ++ CEFBS_None, // IOCSRRD_B32 = 685 ++ CEFBS_None, // IOCSRRD_D = 686 ++ CEFBS_None, // IOCSRRD_H = 687 ++ CEFBS_None, // IOCSRRD_H32 = 688 ++ CEFBS_None, // IOCSRRD_W = 689 ++ CEFBS_None, // IOCSRRD_W32 = 690 ++ CEFBS_None, // IOCSRWR_B32 = 691 ++ CEFBS_None, // IOCSRWR_D = 692 ++ CEFBS_None, // IOCSRWR_H32 = 693 ++ CEFBS_None, // IOCSRWR_W32 = 694 ++ CEFBS_None, // JIRL = 695 ++ CEFBS_None, // JIRL32 = 696 ++ CEFBS_None, // JIRLR = 697 ++ CEFBS_None, // JIRL_CALL = 698 ++ CEFBS_None, // LAPCREL = 699 ++ CEFBS_None, // LDDIR = 700 ++ CEFBS_None, // LDDIR32 = 701 ++ CEFBS_None, // LDGT_B = 702 ++ CEFBS_None, // LDGT_D = 703 ++ CEFBS_None, // LDGT_H = 704 ++ CEFBS_None, // LDGT_W = 705 ++ CEFBS_None, // LDLE_B = 706 ++ CEFBS_None, // LDLE_D = 707 ++ CEFBS_None, // LDLE_H = 708 ++ CEFBS_None, // LDLE_W = 709 ++ CEFBS_None, // LDPTE = 710 ++ CEFBS_None, // LDPTE32 = 711 ++ CEFBS_None, // LDPTR_D = 712 ++ CEFBS_None, // LDPTR_W = 713 ++ CEFBS_None, // LDPTR_W32 = 714 ++ CEFBS_None, // LDX_B = 715 ++ CEFBS_None, // LDX_B32 = 716 ++ CEFBS_None, // LDX_BU = 717 ++ CEFBS_None, // LDX_BU32 = 718 ++ CEFBS_None, // LDX_D = 719 ++ CEFBS_None, // LDX_D_rrr = 720 ++ CEFBS_None, // LDX_H = 721 ++ CEFBS_None, // LDX_H32 = 722 ++ CEFBS_None, // LDX_HU = 723 ++ CEFBS_None, // LDX_HU32 = 724 ++ CEFBS_None, // LDX_W = 725 ++ CEFBS_None, // LDX_W32 = 726 ++ CEFBS_None, // LDX_WU = 727 ++ CEFBS_None, // LD_B = 728 ++ CEFBS_None, // LD_B32 = 729 ++ CEFBS_None, // LD_BU = 730 ++ CEFBS_None, // LD_BU32 = 731 ++ CEFBS_None, // LD_D = 732 ++ CEFBS_None, // LD_D_rri = 733 ++ CEFBS_None, // LD_D_rrii = 734 ++ CEFBS_None, // LD_H = 735 ++ CEFBS_None, // LD_H32 = 736 ++ CEFBS_None, // LD_HU = 737 ++ CEFBS_None, // LD_HU32 = 738 ++ CEFBS_None, // LD_W = 739 ++ CEFBS_None, // LD_W32 = 740 ++ CEFBS_None, // LD_WU = 741 ++ CEFBS_None, // LEA_ADDI_D = 742 ++ CEFBS_None, // LEA_ADDI_W = 743 ++ CEFBS_None, // LL_D = 744 ++ CEFBS_None, // LL_W = 745 ++ CEFBS_None, // LU12I_W = 746 ++ CEFBS_None, // LU12I_W32 = 747 ++ CEFBS_None, // LU12I_W_ri = 748 ++ CEFBS_None, // LU32I_D = 749 ++ CEFBS_None, // LU32I_D_R2 = 750 ++ CEFBS_None, // LU32I_D_ri = 751 ++ CEFBS_None, // LU32I_D_rii = 752 ++ CEFBS_None, // LU52I_D = 753 ++ CEFBS_None, // LU52I_D_rri = 754 ++ CEFBS_None, // LU52I_D_rrii = 755 ++ CEFBS_None, // MASKEQZ = 756 ++ CEFBS_None, // MASKEQZ32 = 757 ++ CEFBS_None, // MASKNEZ = 758 ++ CEFBS_None, // MASKNEZ32 = 759 ++ CEFBS_None, // MOD_D = 760 ++ CEFBS_None, // MOD_DU = 761 ++ CEFBS_None, // MOD_W = 762 ++ CEFBS_None, // MOD_WU = 763 ++ CEFBS_None, // MOVCF2FR = 764 ++ CEFBS_None, // MOVCF2FR32 = 765 ++ CEFBS_None, // MOVCF2GR = 766 ++ CEFBS_None, // MOVCF2GR32 = 767 ++ CEFBS_None, // MOVFCSR2GR = 768 ++ CEFBS_None, // MOVFR2CF = 769 ++ CEFBS_None, // MOVFR2CF32 = 770 ++ CEFBS_None, // MOVFR2GR_D = 771 ++ CEFBS_None, // MOVFR2GR_DS = 772 ++ CEFBS_None, // MOVFR2GR_S = 773 ++ CEFBS_None, // MOVFRH2GR_S = 774 ++ CEFBS_None, // MOVGR2CF = 775 ++ CEFBS_None, // MOVGR2CF32 = 776 ++ CEFBS_None, // MOVGR2FCSR = 777 ++ CEFBS_None, // MOVGR2FRH_W = 778 ++ CEFBS_None, // MOVGR2FR_D = 779 ++ CEFBS_None, // MOVGR2FR_W = 780 ++ CEFBS_None, // MULH_D = 781 ++ CEFBS_None, // MULH_DU = 782 ++ CEFBS_None, // MULH_W = 783 ++ CEFBS_None, // MULH_WU = 784 ++ CEFBS_None, // MULW_D_W = 785 ++ CEFBS_None, // MULW_D_WU = 786 ++ CEFBS_None, // MUL_D = 787 ++ CEFBS_None, // MUL_W = 788 ++ CEFBS_None, // NOR = 789 ++ CEFBS_None, // NOR32 = 790 ++ CEFBS_None, // OR = 791 ++ CEFBS_None, // OR32 = 792 ++ CEFBS_None, // ORI = 793 ++ CEFBS_None, // ORI32 = 794 ++ CEFBS_None, // ORI_rri = 795 ++ CEFBS_None, // ORI_rrii = 796 ++ CEFBS_None, // ORN = 797 ++ CEFBS_None, // ORN32 = 798 ++ CEFBS_None, // PCADDI = 799 ++ CEFBS_None, // PCADDI32 = 800 ++ CEFBS_None, // PCADDU12I = 801 ++ CEFBS_None, // PCADDU12I32 = 802 ++ CEFBS_None, // PCADDU12I_ri = 803 ++ CEFBS_None, // PCADDU12I_rii = 804 ++ CEFBS_None, // PCADDU18I = 805 ++ CEFBS_None, // PCALAU12I = 806 ++ CEFBS_None, // PCALAU12I32 = 807 ++ CEFBS_None, // PRELD = 808 ++ CEFBS_None, // PRELD32 = 809 ++ CEFBS_None, // PRELD_Raw = 810 ++ CEFBS_None, // PRELD_Raw32 = 811 ++ CEFBS_None, // RDTIMEH_W = 812 ++ CEFBS_None, // RDTIMEH_W32 = 813 ++ CEFBS_None, // RDTIMEL_W = 814 ++ CEFBS_None, // RDTIMEL_W32 = 815 ++ CEFBS_None, // RDTIME_D = 816 ++ CEFBS_None, // REVB_2H = 817 ++ CEFBS_None, // REVB_2W = 818 ++ CEFBS_None, // REVB_2W_32 = 819 ++ CEFBS_None, // REVB_4H = 820 ++ CEFBS_None, // REVB_D = 821 ++ CEFBS_None, // REVH_2W = 822 ++ CEFBS_None, // REVH_2W_32 = 823 ++ CEFBS_None, // REVH_D = 824 ++ CEFBS_None, // ROTRI_D = 825 ++ CEFBS_None, // ROTRI_W = 826 ++ CEFBS_None, // ROTR_D = 827 ++ CEFBS_None, // ROTR_W = 828 ++ CEFBS_None, // SC_D = 829 ++ CEFBS_None, // SC_W = 830 ++ CEFBS_None, // SLLI_D = 831 ++ CEFBS_None, // SLLI_D_64_32 = 832 ++ CEFBS_None, // SLLI_W = 833 ++ CEFBS_None, // SLLI_W_64_32 = 834 ++ CEFBS_None, // SLLI_W_64_64 = 835 ++ CEFBS_None, // SLL_D = 836 ++ CEFBS_None, // SLL_W = 837 ++ CEFBS_None, // SLT = 838 ++ CEFBS_None, // SLT32 = 839 ++ CEFBS_None, // SLTI = 840 ++ CEFBS_None, // SLTI32 = 841 ++ CEFBS_None, // SLTU = 842 ++ CEFBS_None, // SLTU32 = 843 ++ CEFBS_None, // SLTUI = 844 ++ CEFBS_None, // SLTUI32 = 845 ++ CEFBS_None, // SLTUI_64 = 846 ++ CEFBS_None, // SRAI_D = 847 ++ CEFBS_None, // SRAI_W = 848 ++ CEFBS_None, // SRA_D = 849 ++ CEFBS_None, // SRA_W = 850 ++ CEFBS_None, // SRLI_D = 851 ++ CEFBS_None, // SRLI_W = 852 ++ CEFBS_None, // SRL_D = 853 ++ CEFBS_None, // SRL_W = 854 ++ CEFBS_None, // STGT_B = 855 ++ CEFBS_None, // STGT_D = 856 ++ CEFBS_None, // STGT_H = 857 ++ CEFBS_None, // STGT_W = 858 ++ CEFBS_None, // STLE_B = 859 ++ CEFBS_None, // STLE_D = 860 ++ CEFBS_None, // STLE_H = 861 ++ CEFBS_None, // STLE_W = 862 ++ CEFBS_None, // STPTR_D = 863 ++ CEFBS_None, // STPTR_W = 864 ++ CEFBS_None, // STPTR_W32 = 865 ++ CEFBS_None, // STX_B = 866 ++ CEFBS_None, // STX_B32 = 867 ++ CEFBS_None, // STX_D = 868 ++ CEFBS_None, // STX_H = 869 ++ CEFBS_None, // STX_H32 = 870 ++ CEFBS_None, // STX_W = 871 ++ CEFBS_None, // STX_W32 = 872 ++ CEFBS_None, // ST_B = 873 ++ CEFBS_None, // ST_B32 = 874 ++ CEFBS_None, // ST_D = 875 ++ CEFBS_None, // ST_H = 876 ++ CEFBS_None, // ST_H32 = 877 ++ CEFBS_None, // ST_W = 878 ++ CEFBS_None, // ST_W32 = 879 ++ CEFBS_None, // SUB_D = 880 ++ CEFBS_None, // SUB_W = 881 ++ CEFBS_None, // SYSCALL = 882 ++ CEFBS_None, // TLBCLR = 883 ++ CEFBS_None, // TLBFILL = 884 ++ CEFBS_None, // TLBFLUSH = 885 ++ CEFBS_None, // TLBRD = 886 ++ CEFBS_None, // TLBSRCH = 887 ++ CEFBS_None, // TLBWR = 888 ++ CEFBS_None, // TRUNC_W_D = 889 ++ CEFBS_None, // VABSD_B = 890 ++ CEFBS_None, // VABSD_BU = 891 ++ CEFBS_None, // VABSD_D = 892 ++ CEFBS_None, // VABSD_DU = 893 ++ CEFBS_None, // VABSD_H = 894 ++ CEFBS_None, // VABSD_HU = 895 ++ CEFBS_None, // VABSD_W = 896 ++ CEFBS_None, // VABSD_WU = 897 ++ CEFBS_None, // VADDA_B = 898 ++ CEFBS_None, // VADDA_D = 899 ++ CEFBS_None, // VADDA_H = 900 ++ CEFBS_None, // VADDA_W = 901 ++ CEFBS_None, // VADDI_BU = 902 ++ CEFBS_None, // VADDI_DU = 903 ++ CEFBS_None, // VADDI_HU = 904 ++ CEFBS_None, // VADDI_WU = 905 ++ CEFBS_None, // VADDWEV_D_W = 906 ++ CEFBS_None, // VADDWEV_D_WU = 907 ++ CEFBS_None, // VADDWEV_D_WU_W = 908 ++ CEFBS_None, // VADDWEV_H_B = 909 ++ CEFBS_None, // VADDWEV_H_BU = 910 ++ CEFBS_None, // VADDWEV_H_BU_B = 911 ++ CEFBS_None, // VADDWEV_Q_D = 912 ++ CEFBS_None, // VADDWEV_Q_DU = 913 ++ CEFBS_None, // VADDWEV_Q_DU_D = 914 ++ CEFBS_None, // VADDWEV_W_H = 915 ++ CEFBS_None, // VADDWEV_W_HU = 916 ++ CEFBS_None, // VADDWEV_W_HU_H = 917 ++ CEFBS_None, // VADDWOD_D_W = 918 ++ CEFBS_None, // VADDWOD_D_WU = 919 ++ CEFBS_None, // VADDWOD_D_WU_W = 920 ++ CEFBS_None, // VADDWOD_H_B = 921 ++ CEFBS_None, // VADDWOD_H_BU = 922 ++ CEFBS_None, // VADDWOD_H_BU_B = 923 ++ CEFBS_None, // VADDWOD_Q_D = 924 ++ CEFBS_None, // VADDWOD_Q_DU = 925 ++ CEFBS_None, // VADDWOD_Q_DU_D = 926 ++ CEFBS_None, // VADDWOD_W_H = 927 ++ CEFBS_None, // VADDWOD_W_HU = 928 ++ CEFBS_None, // VADDWOD_W_HU_H = 929 ++ CEFBS_None, // VADD_B = 930 ++ CEFBS_None, // VADD_D = 931 ++ CEFBS_None, // VADD_H = 932 ++ CEFBS_None, // VADD_Q = 933 ++ CEFBS_None, // VADD_W = 934 ++ CEFBS_None, // VANDI_B = 935 ++ CEFBS_None, // VANDI_B_N = 936 ++ CEFBS_None, // VANDN_V = 937 ++ CEFBS_None, // VAND_V = 938 ++ CEFBS_None, // VAVGR_B = 939 ++ CEFBS_None, // VAVGR_BU = 940 ++ CEFBS_None, // VAVGR_D = 941 ++ CEFBS_None, // VAVGR_DU = 942 ++ CEFBS_None, // VAVGR_H = 943 ++ CEFBS_None, // VAVGR_HU = 944 ++ CEFBS_None, // VAVGR_W = 945 ++ CEFBS_None, // VAVGR_WU = 946 ++ CEFBS_None, // VAVG_B = 947 ++ CEFBS_None, // VAVG_BU = 948 ++ CEFBS_None, // VAVG_D = 949 ++ CEFBS_None, // VAVG_DU = 950 ++ CEFBS_None, // VAVG_H = 951 ++ CEFBS_None, // VAVG_HU = 952 ++ CEFBS_None, // VAVG_W = 953 ++ CEFBS_None, // VAVG_WU = 954 ++ CEFBS_None, // VBITCLRI_B = 955 ++ CEFBS_None, // VBITCLRI_D = 956 ++ CEFBS_None, // VBITCLRI_H = 957 ++ CEFBS_None, // VBITCLRI_W = 958 ++ CEFBS_None, // VBITCLR_B = 959 ++ CEFBS_None, // VBITCLR_D = 960 ++ CEFBS_None, // VBITCLR_H = 961 ++ CEFBS_None, // VBITCLR_W = 962 ++ CEFBS_None, // VBITREVI_B = 963 ++ CEFBS_None, // VBITREVI_D = 964 ++ CEFBS_None, // VBITREVI_H = 965 ++ CEFBS_None, // VBITREVI_W = 966 ++ CEFBS_None, // VBITREV_B = 967 ++ CEFBS_None, // VBITREV_D = 968 ++ CEFBS_None, // VBITREV_H = 969 ++ CEFBS_None, // VBITREV_W = 970 ++ CEFBS_None, // VBITSELI_B = 971 ++ CEFBS_None, // VBITSELI_B_N = 972 ++ CEFBS_None, // VBITSEL_V = 973 ++ CEFBS_None, // VBITSETI_B = 974 ++ CEFBS_None, // VBITSETI_D = 975 ++ CEFBS_None, // VBITSETI_H = 976 ++ CEFBS_None, // VBITSETI_W = 977 ++ CEFBS_None, // VBITSET_B = 978 ++ CEFBS_None, // VBITSET_D = 979 ++ CEFBS_None, // VBITSET_H = 980 ++ CEFBS_None, // VBITSET_W = 981 ++ CEFBS_None, // VBSLL_V = 982 ++ CEFBS_None, // VBSRL_V = 983 ++ CEFBS_None, // VCLO_B = 984 ++ CEFBS_None, // VCLO_D = 985 ++ CEFBS_None, // VCLO_H = 986 ++ CEFBS_None, // VCLO_W = 987 ++ CEFBS_None, // VCLZ_B = 988 ++ CEFBS_None, // VCLZ_D = 989 ++ CEFBS_None, // VCLZ_H = 990 ++ CEFBS_None, // VCLZ_W = 991 ++ CEFBS_None, // VDIV_B = 992 ++ CEFBS_None, // VDIV_BU = 993 ++ CEFBS_None, // VDIV_D = 994 ++ CEFBS_None, // VDIV_DU = 995 ++ CEFBS_None, // VDIV_H = 996 ++ CEFBS_None, // VDIV_HU = 997 ++ CEFBS_None, // VDIV_W = 998 ++ CEFBS_None, // VDIV_WU = 999 ++ CEFBS_None, // VEXT2XV_DU_BU = 1000 ++ CEFBS_None, // VEXT2XV_DU_HU = 1001 ++ CEFBS_None, // VEXT2XV_DU_WU = 1002 ++ CEFBS_None, // VEXT2XV_D_B = 1003 ++ CEFBS_None, // VEXT2XV_D_H = 1004 ++ CEFBS_None, // VEXT2XV_D_W = 1005 ++ CEFBS_None, // VEXT2XV_HU_BU = 1006 ++ CEFBS_None, // VEXT2XV_H_B = 1007 ++ CEFBS_None, // VEXT2XV_WU_BU = 1008 ++ CEFBS_None, // VEXT2XV_WU_HU = 1009 ++ CEFBS_None, // VEXT2XV_W_B = 1010 ++ CEFBS_None, // VEXT2XV_W_H = 1011 ++ CEFBS_None, // VEXTH_DU_WU = 1012 ++ CEFBS_None, // VEXTH_D_W = 1013 ++ CEFBS_None, // VEXTH_HU_BU = 1014 ++ CEFBS_None, // VEXTH_H_B = 1015 ++ CEFBS_None, // VEXTH_QU_DU = 1016 ++ CEFBS_None, // VEXTH_Q_D = 1017 ++ CEFBS_None, // VEXTH_WU_HU = 1018 ++ CEFBS_None, // VEXTH_W_H = 1019 ++ CEFBS_None, // VEXTL_QU_DU = 1020 ++ CEFBS_None, // VEXTL_Q_D = 1021 ++ CEFBS_None, // VEXTRINS_B = 1022 ++ CEFBS_None, // VEXTRINS_D = 1023 ++ CEFBS_None, // VEXTRINS_H = 1024 ++ CEFBS_None, // VEXTRINS_W = 1025 ++ CEFBS_None, // VFADD_D = 1026 ++ CEFBS_None, // VFADD_S = 1027 ++ CEFBS_None, // VFCLASS_D = 1028 ++ CEFBS_None, // VFCLASS_S = 1029 ++ CEFBS_None, // VFCMP_CAF_D = 1030 ++ CEFBS_None, // VFCMP_CAF_S = 1031 ++ CEFBS_None, // VFCMP_CEQ_D = 1032 ++ CEFBS_None, // VFCMP_CEQ_S = 1033 ++ CEFBS_None, // VFCMP_CLE_D = 1034 ++ CEFBS_None, // VFCMP_CLE_S = 1035 ++ CEFBS_None, // VFCMP_CLT_D = 1036 ++ CEFBS_None, // VFCMP_CLT_S = 1037 ++ CEFBS_None, // VFCMP_CNE_D = 1038 ++ CEFBS_None, // VFCMP_CNE_S = 1039 ++ CEFBS_None, // VFCMP_COR_D = 1040 ++ CEFBS_None, // VFCMP_COR_S = 1041 ++ CEFBS_None, // VFCMP_CUEQ_D = 1042 ++ CEFBS_None, // VFCMP_CUEQ_S = 1043 ++ CEFBS_None, // VFCMP_CULE_D = 1044 ++ CEFBS_None, // VFCMP_CULE_S = 1045 ++ CEFBS_None, // VFCMP_CULT_D = 1046 ++ CEFBS_None, // VFCMP_CULT_S = 1047 ++ CEFBS_None, // VFCMP_CUNE_D = 1048 ++ CEFBS_None, // VFCMP_CUNE_S = 1049 ++ CEFBS_None, // VFCMP_CUN_D = 1050 ++ CEFBS_None, // VFCMP_CUN_S = 1051 ++ CEFBS_None, // VFCMP_SAF_D = 1052 ++ CEFBS_None, // VFCMP_SAF_S = 1053 ++ CEFBS_None, // VFCMP_SEQ_D = 1054 ++ CEFBS_None, // VFCMP_SEQ_S = 1055 ++ CEFBS_None, // VFCMP_SLE_D = 1056 ++ CEFBS_None, // VFCMP_SLE_S = 1057 ++ CEFBS_None, // VFCMP_SLT_D = 1058 ++ CEFBS_None, // VFCMP_SLT_S = 1059 ++ CEFBS_None, // VFCMP_SNE_D = 1060 ++ CEFBS_None, // VFCMP_SNE_S = 1061 ++ CEFBS_None, // VFCMP_SOR_D = 1062 ++ CEFBS_None, // VFCMP_SOR_S = 1063 ++ CEFBS_None, // VFCMP_SUEQ_D = 1064 ++ CEFBS_None, // VFCMP_SUEQ_S = 1065 ++ CEFBS_None, // VFCMP_SULE_D = 1066 ++ CEFBS_None, // VFCMP_SULE_S = 1067 ++ CEFBS_None, // VFCMP_SULT_D = 1068 ++ CEFBS_None, // VFCMP_SULT_S = 1069 ++ CEFBS_None, // VFCMP_SUNE_D = 1070 ++ CEFBS_None, // VFCMP_SUNE_S = 1071 ++ CEFBS_None, // VFCMP_SUN_D = 1072 ++ CEFBS_None, // VFCMP_SUN_S = 1073 ++ CEFBS_None, // VFCVTH_D_S = 1074 ++ CEFBS_None, // VFCVTH_S_H = 1075 ++ CEFBS_None, // VFCVTL_D_S = 1076 ++ CEFBS_None, // VFCVTL_S_H = 1077 ++ CEFBS_None, // VFCVT_H_S = 1078 ++ CEFBS_None, // VFCVT_S_D = 1079 ++ CEFBS_None, // VFDIV_D = 1080 ++ CEFBS_None, // VFDIV_S = 1081 ++ CEFBS_None, // VFFINTH_D_W = 1082 ++ CEFBS_None, // VFFINTL_D_W = 1083 ++ CEFBS_None, // VFFINT_D_L = 1084 ++ CEFBS_None, // VFFINT_D_LU = 1085 ++ CEFBS_None, // VFFINT_S_L = 1086 ++ CEFBS_None, // VFFINT_S_W = 1087 ++ CEFBS_None, // VFFINT_S_WU = 1088 ++ CEFBS_None, // VFLOGB_D = 1089 ++ CEFBS_None, // VFLOGB_S = 1090 ++ CEFBS_None, // VFMADD_D = 1091 ++ CEFBS_None, // VFMADD_S = 1092 ++ CEFBS_None, // VFMAXA_D = 1093 ++ CEFBS_None, // VFMAXA_S = 1094 ++ CEFBS_None, // VFMAX_D = 1095 ++ CEFBS_None, // VFMAX_S = 1096 ++ CEFBS_None, // VFMINA_D = 1097 ++ CEFBS_None, // VFMINA_S = 1098 ++ CEFBS_None, // VFMIN_D = 1099 ++ CEFBS_None, // VFMIN_S = 1100 ++ CEFBS_None, // VFMSUB_D = 1101 ++ CEFBS_None, // VFMSUB_S = 1102 ++ CEFBS_None, // VFMUL_D = 1103 ++ CEFBS_None, // VFMUL_S = 1104 ++ CEFBS_None, // VFNMADD_D = 1105 ++ CEFBS_None, // VFNMADD_S = 1106 ++ CEFBS_None, // VFNMSUB_D = 1107 ++ CEFBS_None, // VFNMSUB_S = 1108 ++ CEFBS_None, // VFRECIP_D = 1109 ++ CEFBS_None, // VFRECIP_S = 1110 ++ CEFBS_None, // VFRINTRM_D = 1111 ++ CEFBS_None, // VFRINTRM_S = 1112 ++ CEFBS_None, // VFRINTRNE_D = 1113 ++ CEFBS_None, // VFRINTRNE_S = 1114 ++ CEFBS_None, // VFRINTRP_D = 1115 ++ CEFBS_None, // VFRINTRP_S = 1116 ++ CEFBS_None, // VFRINTRZ_D = 1117 ++ CEFBS_None, // VFRINTRZ_S = 1118 ++ CEFBS_None, // VFRINT_D = 1119 ++ CEFBS_None, // VFRINT_S = 1120 ++ CEFBS_None, // VFRSQRT_D = 1121 ++ CEFBS_None, // VFRSQRT_S = 1122 ++ CEFBS_None, // VFRSTPI_B = 1123 ++ CEFBS_None, // VFRSTPI_H = 1124 ++ CEFBS_None, // VFRSTP_B = 1125 ++ CEFBS_None, // VFRSTP_H = 1126 ++ CEFBS_None, // VFSQRT_D = 1127 ++ CEFBS_None, // VFSQRT_S = 1128 ++ CEFBS_None, // VFSUB_D = 1129 ++ CEFBS_None, // VFSUB_S = 1130 ++ CEFBS_None, // VFTINTH_L_S = 1131 ++ CEFBS_None, // VFTINTL_L_S = 1132 ++ CEFBS_None, // VFTINTRMH_L_S = 1133 ++ CEFBS_None, // VFTINTRML_L_S = 1134 ++ CEFBS_None, // VFTINTRM_L_D = 1135 ++ CEFBS_None, // VFTINTRM_W_D = 1136 ++ CEFBS_None, // VFTINTRM_W_S = 1137 ++ CEFBS_None, // VFTINTRNEH_L_S = 1138 ++ CEFBS_None, // VFTINTRNEL_L_S = 1139 ++ CEFBS_None, // VFTINTRNE_L_D = 1140 ++ CEFBS_None, // VFTINTRNE_W_D = 1141 ++ CEFBS_None, // VFTINTRNE_W_S = 1142 ++ CEFBS_None, // VFTINTRPH_L_S = 1143 ++ CEFBS_None, // VFTINTRPL_L_S = 1144 ++ CEFBS_None, // VFTINTRP_L_D = 1145 ++ CEFBS_None, // VFTINTRP_W_D = 1146 ++ CEFBS_None, // VFTINTRP_W_S = 1147 ++ CEFBS_None, // VFTINTRZH_L_S = 1148 ++ CEFBS_None, // VFTINTRZL_L_S = 1149 ++ CEFBS_None, // VFTINTRZ_LU_D = 1150 ++ CEFBS_None, // VFTINTRZ_L_D = 1151 ++ CEFBS_None, // VFTINTRZ_WU_S = 1152 ++ CEFBS_None, // VFTINTRZ_W_D = 1153 ++ CEFBS_None, // VFTINTRZ_W_S = 1154 ++ CEFBS_None, // VFTINT_LU_D = 1155 ++ CEFBS_None, // VFTINT_L_D = 1156 ++ CEFBS_None, // VFTINT_WU_S = 1157 ++ CEFBS_None, // VFTINT_W_D = 1158 ++ CEFBS_None, // VFTINT_W_S = 1159 ++ CEFBS_None, // VHADDW_DU_WU = 1160 ++ CEFBS_None, // VHADDW_D_W = 1161 ++ CEFBS_None, // VHADDW_HU_BU = 1162 ++ CEFBS_None, // VHADDW_H_B = 1163 ++ CEFBS_None, // VHADDW_QU_DU = 1164 ++ CEFBS_None, // VHADDW_Q_D = 1165 ++ CEFBS_None, // VHADDW_WU_HU = 1166 ++ CEFBS_None, // VHADDW_W_H = 1167 ++ CEFBS_None, // VHSUBW_DU_WU = 1168 ++ CEFBS_None, // VHSUBW_D_W = 1169 ++ CEFBS_None, // VHSUBW_HU_BU = 1170 ++ CEFBS_None, // VHSUBW_H_B = 1171 ++ CEFBS_None, // VHSUBW_QU_DU = 1172 ++ CEFBS_None, // VHSUBW_Q_D = 1173 ++ CEFBS_None, // VHSUBW_WU_HU = 1174 ++ CEFBS_None, // VHSUBW_W_H = 1175 ++ CEFBS_None, // VILVH_B = 1176 ++ CEFBS_None, // VILVH_D = 1177 ++ CEFBS_None, // VILVH_H = 1178 ++ CEFBS_None, // VILVH_W = 1179 ++ CEFBS_None, // VILVL_B = 1180 ++ CEFBS_None, // VILVL_D = 1181 ++ CEFBS_None, // VILVL_H = 1182 ++ CEFBS_None, // VILVL_W = 1183 ++ CEFBS_None, // VINSGR2VR_B = 1184 ++ CEFBS_None, // VINSGR2VR_D = 1185 ++ CEFBS_None, // VINSGR2VR_H = 1186 ++ CEFBS_None, // VINSGR2VR_W = 1187 ++ CEFBS_None, // VLD = 1188 ++ CEFBS_None, // VLDI = 1189 ++ CEFBS_None, // VLDI_B = 1190 ++ CEFBS_None, // VLDI_D = 1191 ++ CEFBS_None, // VLDI_H = 1192 ++ CEFBS_None, // VLDI_W = 1193 ++ CEFBS_None, // VLDREPL_B = 1194 ++ CEFBS_None, // VLDREPL_D = 1195 ++ CEFBS_None, // VLDREPL_H = 1196 ++ CEFBS_None, // VLDREPL_W = 1197 ++ CEFBS_None, // VLDX = 1198 ++ CEFBS_None, // VLD_D = 1199 ++ CEFBS_None, // VLD_H = 1200 ++ CEFBS_None, // VLD_W = 1201 ++ CEFBS_None, // VMADDWEV_D_W = 1202 ++ CEFBS_None, // VMADDWEV_D_WU = 1203 ++ CEFBS_None, // VMADDWEV_D_WU_W = 1204 ++ CEFBS_None, // VMADDWEV_H_B = 1205 ++ CEFBS_None, // VMADDWEV_H_BU = 1206 ++ CEFBS_None, // VMADDWEV_H_BU_B = 1207 ++ CEFBS_None, // VMADDWEV_Q_D = 1208 ++ CEFBS_None, // VMADDWEV_Q_DU = 1209 ++ CEFBS_None, // VMADDWEV_Q_DU_D = 1210 ++ CEFBS_None, // VMADDWEV_W_H = 1211 ++ CEFBS_None, // VMADDWEV_W_HU = 1212 ++ CEFBS_None, // VMADDWEV_W_HU_H = 1213 ++ CEFBS_None, // VMADDWOD_D_W = 1214 ++ CEFBS_None, // VMADDWOD_D_WU = 1215 ++ CEFBS_None, // VMADDWOD_D_WU_W = 1216 ++ CEFBS_None, // VMADDWOD_H_B = 1217 ++ CEFBS_None, // VMADDWOD_H_BU = 1218 ++ CEFBS_None, // VMADDWOD_H_BU_B = 1219 ++ CEFBS_None, // VMADDWOD_Q_D = 1220 ++ CEFBS_None, // VMADDWOD_Q_DU = 1221 ++ CEFBS_None, // VMADDWOD_Q_DU_D = 1222 ++ CEFBS_None, // VMADDWOD_W_H = 1223 ++ CEFBS_None, // VMADDWOD_W_HU = 1224 ++ CEFBS_None, // VMADDWOD_W_HU_H = 1225 ++ CEFBS_None, // VMADD_B = 1226 ++ CEFBS_None, // VMADD_D = 1227 ++ CEFBS_None, // VMADD_H = 1228 ++ CEFBS_None, // VMADD_W = 1229 ++ CEFBS_None, // VMAXI_B = 1230 ++ CEFBS_None, // VMAXI_BU = 1231 ++ CEFBS_None, // VMAXI_BU_N = 1232 ++ CEFBS_None, // VMAXI_B_N = 1233 ++ CEFBS_None, // VMAXI_D = 1234 ++ CEFBS_None, // VMAXI_DU = 1235 ++ CEFBS_None, // VMAXI_DU_N = 1236 ++ CEFBS_None, // VMAXI_D_N = 1237 ++ CEFBS_None, // VMAXI_H = 1238 ++ CEFBS_None, // VMAXI_HU = 1239 ++ CEFBS_None, // VMAXI_HU_N = 1240 ++ CEFBS_None, // VMAXI_H_N = 1241 ++ CEFBS_None, // VMAXI_W = 1242 ++ CEFBS_None, // VMAXI_WU = 1243 ++ CEFBS_None, // VMAXI_WU_N = 1244 ++ CEFBS_None, // VMAXI_W_N = 1245 ++ CEFBS_None, // VMAX_B = 1246 ++ CEFBS_None, // VMAX_BU = 1247 ++ CEFBS_None, // VMAX_D = 1248 ++ CEFBS_None, // VMAX_DU = 1249 ++ CEFBS_None, // VMAX_H = 1250 ++ CEFBS_None, // VMAX_HU = 1251 ++ CEFBS_None, // VMAX_W = 1252 ++ CEFBS_None, // VMAX_WU = 1253 ++ CEFBS_None, // VMINI_B = 1254 ++ CEFBS_None, // VMINI_BU = 1255 ++ CEFBS_None, // VMINI_B_N = 1256 ++ CEFBS_None, // VMINI_D = 1257 ++ CEFBS_None, // VMINI_DU = 1258 ++ CEFBS_None, // VMINI_D_N = 1259 ++ CEFBS_None, // VMINI_H = 1260 ++ CEFBS_None, // VMINI_HU = 1261 ++ CEFBS_None, // VMINI_H_N = 1262 ++ CEFBS_None, // VMINI_W = 1263 ++ CEFBS_None, // VMINI_WU = 1264 ++ CEFBS_None, // VMINI_W_N = 1265 ++ CEFBS_None, // VMIN_B = 1266 ++ CEFBS_None, // VMIN_BU = 1267 ++ CEFBS_None, // VMIN_D = 1268 ++ CEFBS_None, // VMIN_DU = 1269 ++ CEFBS_None, // VMIN_H = 1270 ++ CEFBS_None, // VMIN_HU = 1271 ++ CEFBS_None, // VMIN_W = 1272 ++ CEFBS_None, // VMIN_WU = 1273 ++ CEFBS_None, // VMOD_B = 1274 ++ CEFBS_None, // VMOD_BU = 1275 ++ CEFBS_None, // VMOD_D = 1276 ++ CEFBS_None, // VMOD_DU = 1277 ++ CEFBS_None, // VMOD_H = 1278 ++ CEFBS_None, // VMOD_HU = 1279 ++ CEFBS_None, // VMOD_W = 1280 ++ CEFBS_None, // VMOD_WU = 1281 ++ CEFBS_None, // VMSKGEZ_B = 1282 ++ CEFBS_None, // VMSKLTZ_B = 1283 ++ CEFBS_None, // VMSKLTZ_D = 1284 ++ CEFBS_None, // VMSKLTZ_H = 1285 ++ CEFBS_None, // VMSKLTZ_W = 1286 ++ CEFBS_None, // VMSKNZ_B = 1287 ++ CEFBS_None, // VMSUB_B = 1288 ++ CEFBS_None, // VMSUB_D = 1289 ++ CEFBS_None, // VMSUB_H = 1290 ++ CEFBS_None, // VMSUB_W = 1291 ++ CEFBS_None, // VMUH_B = 1292 ++ CEFBS_None, // VMUH_BU = 1293 ++ CEFBS_None, // VMUH_D = 1294 ++ CEFBS_None, // VMUH_DU = 1295 ++ CEFBS_None, // VMUH_H = 1296 ++ CEFBS_None, // VMUH_HU = 1297 ++ CEFBS_None, // VMUH_W = 1298 ++ CEFBS_None, // VMUH_WU = 1299 ++ CEFBS_None, // VMULWEV_D_W = 1300 ++ CEFBS_None, // VMULWEV_D_WU = 1301 ++ CEFBS_None, // VMULWEV_D_WU_W = 1302 ++ CEFBS_None, // VMULWEV_H_B = 1303 ++ CEFBS_None, // VMULWEV_H_BU = 1304 ++ CEFBS_None, // VMULWEV_H_BU_B = 1305 ++ CEFBS_None, // VMULWEV_Q_D = 1306 ++ CEFBS_None, // VMULWEV_Q_DU = 1307 ++ CEFBS_None, // VMULWEV_Q_DU_D = 1308 ++ CEFBS_None, // VMULWEV_W_H = 1309 ++ CEFBS_None, // VMULWEV_W_HU = 1310 ++ CEFBS_None, // VMULWEV_W_HU_H = 1311 ++ CEFBS_None, // VMULWOD_D_W = 1312 ++ CEFBS_None, // VMULWOD_D_WU = 1313 ++ CEFBS_None, // VMULWOD_D_WU_W = 1314 ++ CEFBS_None, // VMULWOD_H_B = 1315 ++ CEFBS_None, // VMULWOD_H_BU = 1316 ++ CEFBS_None, // VMULWOD_H_BU_B = 1317 ++ CEFBS_None, // VMULWOD_Q_D = 1318 ++ CEFBS_None, // VMULWOD_Q_DU = 1319 ++ CEFBS_None, // VMULWOD_Q_DU_D = 1320 ++ CEFBS_None, // VMULWOD_W_H = 1321 ++ CEFBS_None, // VMULWOD_W_HU = 1322 ++ CEFBS_None, // VMULWOD_W_HU_H = 1323 ++ CEFBS_None, // VMUL_B = 1324 ++ CEFBS_None, // VMUL_D = 1325 ++ CEFBS_None, // VMUL_H = 1326 ++ CEFBS_None, // VMUL_W = 1327 ++ CEFBS_None, // VNEG_B = 1328 ++ CEFBS_None, // VNEG_D = 1329 ++ CEFBS_None, // VNEG_H = 1330 ++ CEFBS_None, // VNEG_W = 1331 ++ CEFBS_None, // VNORI_B = 1332 ++ CEFBS_None, // VNOR_V = 1333 ++ CEFBS_None, // VORI_B = 1334 ++ CEFBS_None, // VORN_V = 1335 ++ CEFBS_None, // VOR_V = 1336 ++ CEFBS_None, // VPACKEV_B = 1337 ++ CEFBS_None, // VPACKEV_D = 1338 ++ CEFBS_None, // VPACKEV_H = 1339 ++ CEFBS_None, // VPACKEV_W = 1340 ++ CEFBS_None, // VPACKOD_B = 1341 ++ CEFBS_None, // VPACKOD_D = 1342 ++ CEFBS_None, // VPACKOD_H = 1343 ++ CEFBS_None, // VPACKOD_W = 1344 ++ CEFBS_None, // VPCNT_B = 1345 ++ CEFBS_None, // VPCNT_D = 1346 ++ CEFBS_None, // VPCNT_H = 1347 ++ CEFBS_None, // VPCNT_W = 1348 ++ CEFBS_None, // VPERMI_W = 1349 ++ CEFBS_None, // VPICKEV_B = 1350 ++ CEFBS_None, // VPICKEV_D = 1351 ++ CEFBS_None, // VPICKEV_H = 1352 ++ CEFBS_None, // VPICKEV_W = 1353 ++ CEFBS_None, // VPICKOD_B = 1354 ++ CEFBS_None, // VPICKOD_D = 1355 ++ CEFBS_None, // VPICKOD_H = 1356 ++ CEFBS_None, // VPICKOD_W = 1357 ++ CEFBS_None, // VPICKVE2GR_B = 1358 ++ CEFBS_None, // VPICKVE2GR_BU = 1359 ++ CEFBS_None, // VPICKVE2GR_D = 1360 ++ CEFBS_None, // VPICKVE2GR_DU = 1361 ++ CEFBS_None, // VPICKVE2GR_H = 1362 ++ CEFBS_None, // VPICKVE2GR_HU = 1363 ++ CEFBS_None, // VPICKVE2GR_W = 1364 ++ CEFBS_None, // VPICKVE2GR_WU = 1365 ++ CEFBS_None, // VREPLGR2VR_B = 1366 ++ CEFBS_None, // VREPLGR2VR_D = 1367 ++ CEFBS_None, // VREPLGR2VR_H = 1368 ++ CEFBS_None, // VREPLGR2VR_W = 1369 ++ CEFBS_None, // VREPLVEI_B = 1370 ++ CEFBS_None, // VREPLVEI_D = 1371 ++ CEFBS_None, // VREPLVEI_H = 1372 ++ CEFBS_None, // VREPLVEI_W = 1373 ++ CEFBS_None, // VREPLVE_B = 1374 ++ CEFBS_None, // VREPLVE_D = 1375 ++ CEFBS_None, // VREPLVE_H = 1376 ++ CEFBS_None, // VREPLVE_W = 1377 ++ CEFBS_None, // VROTRI_B = 1378 ++ CEFBS_None, // VROTRI_D = 1379 ++ CEFBS_None, // VROTRI_H = 1380 ++ CEFBS_None, // VROTRI_W = 1381 ++ CEFBS_None, // VROTR_B = 1382 ++ CEFBS_None, // VROTR_D = 1383 ++ CEFBS_None, // VROTR_H = 1384 ++ CEFBS_None, // VROTR_W = 1385 ++ CEFBS_None, // VSADD_B = 1386 ++ CEFBS_None, // VSADD_BU = 1387 ++ CEFBS_None, // VSADD_D = 1388 ++ CEFBS_None, // VSADD_DU = 1389 ++ CEFBS_None, // VSADD_H = 1390 ++ CEFBS_None, // VSADD_HU = 1391 ++ CEFBS_None, // VSADD_W = 1392 ++ CEFBS_None, // VSADD_WU = 1393 ++ CEFBS_None, // VSAT_B = 1394 ++ CEFBS_None, // VSAT_BU = 1395 ++ CEFBS_None, // VSAT_D = 1396 ++ CEFBS_None, // VSAT_DU = 1397 ++ CEFBS_None, // VSAT_H = 1398 ++ CEFBS_None, // VSAT_HU = 1399 ++ CEFBS_None, // VSAT_W = 1400 ++ CEFBS_None, // VSAT_WU = 1401 ++ CEFBS_None, // VSEQI_B = 1402 ++ CEFBS_None, // VSEQI_B_N = 1403 ++ CEFBS_None, // VSEQI_D = 1404 ++ CEFBS_None, // VSEQI_D_N = 1405 ++ CEFBS_None, // VSEQI_H = 1406 ++ CEFBS_None, // VSEQI_H_N = 1407 ++ CEFBS_None, // VSEQI_W = 1408 ++ CEFBS_None, // VSEQI_W_N = 1409 ++ CEFBS_None, // VSEQ_B = 1410 ++ CEFBS_None, // VSEQ_D = 1411 ++ CEFBS_None, // VSEQ_H = 1412 ++ CEFBS_None, // VSEQ_W = 1413 ++ CEFBS_None, // VSETALLNEZ_B = 1414 ++ CEFBS_None, // VSETALLNEZ_D = 1415 ++ CEFBS_None, // VSETALLNEZ_H = 1416 ++ CEFBS_None, // VSETALLNEZ_W = 1417 ++ CEFBS_None, // VSETANYEQZ_B = 1418 ++ CEFBS_None, // VSETANYEQZ_D = 1419 ++ CEFBS_None, // VSETANYEQZ_H = 1420 ++ CEFBS_None, // VSETANYEQZ_W = 1421 ++ CEFBS_None, // VSETEQZ_V = 1422 ++ CEFBS_None, // VSETNEZ_V = 1423 ++ CEFBS_None, // VSHUF4I_B = 1424 ++ CEFBS_None, // VSHUF4I_D = 1425 ++ CEFBS_None, // VSHUF4I_H = 1426 ++ CEFBS_None, // VSHUF4I_W = 1427 ++ CEFBS_None, // VSHUF_B = 1428 ++ CEFBS_None, // VSHUF_D = 1429 ++ CEFBS_None, // VSHUF_H = 1430 ++ CEFBS_None, // VSHUF_W = 1431 ++ CEFBS_None, // VSIGNCOV_B = 1432 ++ CEFBS_None, // VSIGNCOV_D = 1433 ++ CEFBS_None, // VSIGNCOV_H = 1434 ++ CEFBS_None, // VSIGNCOV_W = 1435 ++ CEFBS_None, // VSLEI_B = 1436 ++ CEFBS_None, // VSLEI_BU = 1437 ++ CEFBS_None, // VSLEI_BU_N = 1438 ++ CEFBS_None, // VSLEI_B_N = 1439 ++ CEFBS_None, // VSLEI_D = 1440 ++ CEFBS_None, // VSLEI_DU = 1441 ++ CEFBS_None, // VSLEI_DU_N = 1442 ++ CEFBS_None, // VSLEI_D_N = 1443 ++ CEFBS_None, // VSLEI_H = 1444 ++ CEFBS_None, // VSLEI_HU = 1445 ++ CEFBS_None, // VSLEI_HU_N = 1446 ++ CEFBS_None, // VSLEI_H_N = 1447 ++ CEFBS_None, // VSLEI_W = 1448 ++ CEFBS_None, // VSLEI_WU = 1449 ++ CEFBS_None, // VSLEI_WU_N = 1450 ++ CEFBS_None, // VSLEI_W_N = 1451 ++ CEFBS_None, // VSLE_B = 1452 ++ CEFBS_None, // VSLE_BU = 1453 ++ CEFBS_None, // VSLE_D = 1454 ++ CEFBS_None, // VSLE_DU = 1455 ++ CEFBS_None, // VSLE_H = 1456 ++ CEFBS_None, // VSLE_HU = 1457 ++ CEFBS_None, // VSLE_W = 1458 ++ CEFBS_None, // VSLE_WU = 1459 ++ CEFBS_None, // VSLLI_B = 1460 ++ CEFBS_None, // VSLLI_D = 1461 ++ CEFBS_None, // VSLLI_H = 1462 ++ CEFBS_None, // VSLLI_W = 1463 ++ CEFBS_None, // VSLLWIL_DU_WU = 1464 ++ CEFBS_None, // VSLLWIL_D_W = 1465 ++ CEFBS_None, // VSLLWIL_HU_BU = 1466 ++ CEFBS_None, // VSLLWIL_H_B = 1467 ++ CEFBS_None, // VSLLWIL_WU_HU = 1468 ++ CEFBS_None, // VSLLWIL_W_H = 1469 ++ CEFBS_None, // VSLL_B = 1470 ++ CEFBS_None, // VSLL_D = 1471 ++ CEFBS_None, // VSLL_H = 1472 ++ CEFBS_None, // VSLL_W = 1473 ++ CEFBS_None, // VSLTI_B = 1474 ++ CEFBS_None, // VSLTI_BU = 1475 ++ CEFBS_None, // VSLTI_BU_N = 1476 ++ CEFBS_None, // VSLTI_B_N = 1477 ++ CEFBS_None, // VSLTI_D = 1478 ++ CEFBS_None, // VSLTI_DU = 1479 ++ CEFBS_None, // VSLTI_DU_N = 1480 ++ CEFBS_None, // VSLTI_D_N = 1481 ++ CEFBS_None, // VSLTI_H = 1482 ++ CEFBS_None, // VSLTI_HU = 1483 ++ CEFBS_None, // VSLTI_HU_N = 1484 ++ CEFBS_None, // VSLTI_H_N = 1485 ++ CEFBS_None, // VSLTI_W = 1486 ++ CEFBS_None, // VSLTI_WU = 1487 ++ CEFBS_None, // VSLTI_WU_N = 1488 ++ CEFBS_None, // VSLTI_W_N = 1489 ++ CEFBS_None, // VSLT_B = 1490 ++ CEFBS_None, // VSLT_BU = 1491 ++ CEFBS_None, // VSLT_D = 1492 ++ CEFBS_None, // VSLT_DU = 1493 ++ CEFBS_None, // VSLT_H = 1494 ++ CEFBS_None, // VSLT_HU = 1495 ++ CEFBS_None, // VSLT_W = 1496 ++ CEFBS_None, // VSLT_WU = 1497 ++ CEFBS_None, // VSRAI_B = 1498 ++ CEFBS_None, // VSRAI_B_N = 1499 ++ CEFBS_None, // VSRAI_D = 1500 ++ CEFBS_None, // VSRAI_D_N = 1501 ++ CEFBS_None, // VSRAI_H = 1502 ++ CEFBS_None, // VSRAI_H_N = 1503 ++ CEFBS_None, // VSRAI_W = 1504 ++ CEFBS_None, // VSRAI_W_N = 1505 ++ CEFBS_None, // VSRANI_B_H = 1506 ++ CEFBS_None, // VSRANI_D_Q = 1507 ++ CEFBS_None, // VSRANI_H_W = 1508 ++ CEFBS_None, // VSRANI_W_D = 1509 ++ CEFBS_None, // VSRAN_B_H = 1510 ++ CEFBS_None, // VSRAN_H_W = 1511 ++ CEFBS_None, // VSRAN_W_D = 1512 ++ CEFBS_None, // VSRARI_B = 1513 ++ CEFBS_None, // VSRARI_D = 1514 ++ CEFBS_None, // VSRARI_H = 1515 ++ CEFBS_None, // VSRARI_W = 1516 ++ CEFBS_None, // VSRARNI_B_H = 1517 ++ CEFBS_None, // VSRARNI_D_Q = 1518 ++ CEFBS_None, // VSRARNI_H_W = 1519 ++ CEFBS_None, // VSRARNI_W_D = 1520 ++ CEFBS_None, // VSRARN_B_H = 1521 ++ CEFBS_None, // VSRARN_H_W = 1522 ++ CEFBS_None, // VSRARN_W_D = 1523 ++ CEFBS_None, // VSRAR_B = 1524 ++ CEFBS_None, // VSRAR_D = 1525 ++ CEFBS_None, // VSRAR_H = 1526 ++ CEFBS_None, // VSRAR_W = 1527 ++ CEFBS_None, // VSRA_B = 1528 ++ CEFBS_None, // VSRA_D = 1529 ++ CEFBS_None, // VSRA_H = 1530 ++ CEFBS_None, // VSRA_W = 1531 ++ CEFBS_None, // VSRLI_B = 1532 ++ CEFBS_None, // VSRLI_D = 1533 ++ CEFBS_None, // VSRLI_H = 1534 ++ CEFBS_None, // VSRLI_W = 1535 ++ CEFBS_None, // VSRLNI_B_H = 1536 ++ CEFBS_None, // VSRLNI_D_Q = 1537 ++ CEFBS_None, // VSRLNI_H_W = 1538 ++ CEFBS_None, // VSRLNI_W_D = 1539 ++ CEFBS_None, // VSRLN_B_H = 1540 ++ CEFBS_None, // VSRLN_H_W = 1541 ++ CEFBS_None, // VSRLN_W_D = 1542 ++ CEFBS_None, // VSRLRI_B = 1543 ++ CEFBS_None, // VSRLRI_D = 1544 ++ CEFBS_None, // VSRLRI_H = 1545 ++ CEFBS_None, // VSRLRI_W = 1546 ++ CEFBS_None, // VSRLRNI_B_H = 1547 ++ CEFBS_None, // VSRLRNI_D_Q = 1548 ++ CEFBS_None, // VSRLRNI_H_W = 1549 ++ CEFBS_None, // VSRLRNI_W_D = 1550 ++ CEFBS_None, // VSRLRN_B_H = 1551 ++ CEFBS_None, // VSRLRN_H_W = 1552 ++ CEFBS_None, // VSRLRN_W_D = 1553 ++ CEFBS_None, // VSRLR_B = 1554 ++ CEFBS_None, // VSRLR_D = 1555 ++ CEFBS_None, // VSRLR_H = 1556 ++ CEFBS_None, // VSRLR_W = 1557 ++ CEFBS_None, // VSRL_B = 1558 ++ CEFBS_None, // VSRL_D = 1559 ++ CEFBS_None, // VSRL_H = 1560 ++ CEFBS_None, // VSRL_W = 1561 ++ CEFBS_None, // VSSRANI_BU_H = 1562 ++ CEFBS_None, // VSSRANI_B_H = 1563 ++ CEFBS_None, // VSSRANI_DU_Q = 1564 ++ CEFBS_None, // VSSRANI_D_Q = 1565 ++ CEFBS_None, // VSSRANI_HU_W = 1566 ++ CEFBS_None, // VSSRANI_H_W = 1567 ++ CEFBS_None, // VSSRANI_WU_D = 1568 ++ CEFBS_None, // VSSRANI_W_D = 1569 ++ CEFBS_None, // VSSRAN_BU_H = 1570 ++ CEFBS_None, // VSSRAN_B_H = 1571 ++ CEFBS_None, // VSSRAN_HU_W = 1572 ++ CEFBS_None, // VSSRAN_H_W = 1573 ++ CEFBS_None, // VSSRAN_WU_D = 1574 ++ CEFBS_None, // VSSRAN_W_D = 1575 ++ CEFBS_None, // VSSRARNI_BU_H = 1576 ++ CEFBS_None, // VSSRARNI_B_H = 1577 ++ CEFBS_None, // VSSRARNI_DU_Q = 1578 ++ CEFBS_None, // VSSRARNI_D_Q = 1579 ++ CEFBS_None, // VSSRARNI_HU_W = 1580 ++ CEFBS_None, // VSSRARNI_H_W = 1581 ++ CEFBS_None, // VSSRARNI_WU_D = 1582 ++ CEFBS_None, // VSSRARNI_W_D = 1583 ++ CEFBS_None, // VSSRARN_BU_H = 1584 ++ CEFBS_None, // VSSRARN_B_H = 1585 ++ CEFBS_None, // VSSRARN_HU_W = 1586 ++ CEFBS_None, // VSSRARN_H_W = 1587 ++ CEFBS_None, // VSSRARN_WU_D = 1588 ++ CEFBS_None, // VSSRARN_W_D = 1589 ++ CEFBS_None, // VSSRLNI_BU_H = 1590 ++ CEFBS_None, // VSSRLNI_B_H = 1591 ++ CEFBS_None, // VSSRLNI_DU_Q = 1592 ++ CEFBS_None, // VSSRLNI_D_Q = 1593 ++ CEFBS_None, // VSSRLNI_HU_W = 1594 ++ CEFBS_None, // VSSRLNI_H_W = 1595 ++ CEFBS_None, // VSSRLNI_WU_D = 1596 ++ CEFBS_None, // VSSRLNI_W_D = 1597 ++ CEFBS_None, // VSSRLN_BU_H = 1598 ++ CEFBS_None, // VSSRLN_B_H = 1599 ++ CEFBS_None, // VSSRLN_HU_W = 1600 ++ CEFBS_None, // VSSRLN_H_W = 1601 ++ CEFBS_None, // VSSRLN_WU_D = 1602 ++ CEFBS_None, // VSSRLN_W_D = 1603 ++ CEFBS_None, // VSSRLRNI_BU_H = 1604 ++ CEFBS_None, // VSSRLRNI_B_H = 1605 ++ CEFBS_None, // VSSRLRNI_DU_Q = 1606 ++ CEFBS_None, // VSSRLRNI_D_Q = 1607 ++ CEFBS_None, // VSSRLRNI_HU_W = 1608 ++ CEFBS_None, // VSSRLRNI_H_W = 1609 ++ CEFBS_None, // VSSRLRNI_WU_D = 1610 ++ CEFBS_None, // VSSRLRNI_W_D = 1611 ++ CEFBS_None, // VSSRLRN_BU_H = 1612 ++ CEFBS_None, // VSSRLRN_B_H = 1613 ++ CEFBS_None, // VSSRLRN_HU_W = 1614 ++ CEFBS_None, // VSSRLRN_H_W = 1615 ++ CEFBS_None, // VSSRLRN_WU_D = 1616 ++ CEFBS_None, // VSSRLRN_W_D = 1617 ++ CEFBS_None, // VSSUB_B = 1618 ++ CEFBS_None, // VSSUB_BU = 1619 ++ CEFBS_None, // VSSUB_D = 1620 ++ CEFBS_None, // VSSUB_DU = 1621 ++ CEFBS_None, // VSSUB_H = 1622 ++ CEFBS_None, // VSSUB_HU = 1623 ++ CEFBS_None, // VSSUB_W = 1624 ++ CEFBS_None, // VSSUB_WU = 1625 ++ CEFBS_None, // VST = 1626 ++ CEFBS_None, // VSTELM_B = 1627 ++ CEFBS_None, // VSTELM_D = 1628 ++ CEFBS_None, // VSTELM_H = 1629 ++ CEFBS_None, // VSTELM_W = 1630 ++ CEFBS_None, // VSTX = 1631 ++ CEFBS_None, // VST_D = 1632 ++ CEFBS_None, // VST_H = 1633 ++ CEFBS_None, // VST_W = 1634 ++ CEFBS_None, // VSUBI_BU = 1635 ++ CEFBS_None, // VSUBI_DU = 1636 ++ CEFBS_None, // VSUBI_HU = 1637 ++ CEFBS_None, // VSUBI_WU = 1638 ++ CEFBS_None, // VSUBWEV_D_W = 1639 ++ CEFBS_None, // VSUBWEV_D_WU = 1640 ++ CEFBS_None, // VSUBWEV_H_B = 1641 ++ CEFBS_None, // VSUBWEV_H_BU = 1642 ++ CEFBS_None, // VSUBWEV_Q_D = 1643 ++ CEFBS_None, // VSUBWEV_Q_DU = 1644 ++ CEFBS_None, // VSUBWEV_W_H = 1645 ++ CEFBS_None, // VSUBWEV_W_HU = 1646 ++ CEFBS_None, // VSUBWOD_D_W = 1647 ++ CEFBS_None, // VSUBWOD_D_WU = 1648 ++ CEFBS_None, // VSUBWOD_H_B = 1649 ++ CEFBS_None, // VSUBWOD_H_BU = 1650 ++ CEFBS_None, // VSUBWOD_Q_D = 1651 ++ CEFBS_None, // VSUBWOD_Q_DU = 1652 ++ CEFBS_None, // VSUBWOD_W_H = 1653 ++ CEFBS_None, // VSUBWOD_W_HU = 1654 ++ CEFBS_None, // VSUB_B = 1655 ++ CEFBS_None, // VSUB_D = 1656 ++ CEFBS_None, // VSUB_H = 1657 ++ CEFBS_None, // VSUB_Q = 1658 ++ CEFBS_None, // VSUB_W = 1659 ++ CEFBS_None, // VXORI_B = 1660 ++ CEFBS_None, // VXORI_B_N = 1661 ++ CEFBS_None, // VXOR_V = 1662 ++ CEFBS_None, // XOR = 1663 ++ CEFBS_None, // XOR32 = 1664 ++ CEFBS_None, // XORI = 1665 ++ CEFBS_None, // XORI32 = 1666 ++ CEFBS_None, // XVABSD_B = 1667 ++ CEFBS_None, // XVABSD_BU = 1668 ++ CEFBS_None, // XVABSD_D = 1669 ++ CEFBS_None, // XVABSD_DU = 1670 ++ CEFBS_None, // XVABSD_H = 1671 ++ CEFBS_None, // XVABSD_HU = 1672 ++ CEFBS_None, // XVABSD_W = 1673 ++ CEFBS_None, // XVABSD_WU = 1674 ++ CEFBS_None, // XVADDA_B = 1675 ++ CEFBS_None, // XVADDA_D = 1676 ++ CEFBS_None, // XVADDA_H = 1677 ++ CEFBS_None, // XVADDA_W = 1678 ++ CEFBS_None, // XVADDI_BU = 1679 ++ CEFBS_None, // XVADDI_BU_N = 1680 ++ CEFBS_None, // XVADDI_DU = 1681 ++ CEFBS_None, // XVADDI_DU_N = 1682 ++ CEFBS_None, // XVADDI_HU = 1683 ++ CEFBS_None, // XVADDI_HU_N = 1684 ++ CEFBS_None, // XVADDI_WU = 1685 ++ CEFBS_None, // XVADDI_WU_N = 1686 ++ CEFBS_None, // XVADDWEV_D_W = 1687 ++ CEFBS_None, // XVADDWEV_D_WU = 1688 ++ CEFBS_None, // XVADDWEV_D_WU_W = 1689 ++ CEFBS_None, // XVADDWEV_H_B = 1690 ++ CEFBS_None, // XVADDWEV_H_BU = 1691 ++ CEFBS_None, // XVADDWEV_H_BU_B = 1692 ++ CEFBS_None, // XVADDWEV_Q_D = 1693 ++ CEFBS_None, // XVADDWEV_Q_DU = 1694 ++ CEFBS_None, // XVADDWEV_Q_DU_D = 1695 ++ CEFBS_None, // XVADDWEV_W_H = 1696 ++ CEFBS_None, // XVADDWEV_W_HU = 1697 ++ CEFBS_None, // XVADDWEV_W_HU_H = 1698 ++ CEFBS_None, // XVADDWOD_D_W = 1699 ++ CEFBS_None, // XVADDWOD_D_WU = 1700 ++ CEFBS_None, // XVADDWOD_D_WU_W = 1701 ++ CEFBS_None, // XVADDWOD_H_B = 1702 ++ CEFBS_None, // XVADDWOD_H_BU = 1703 ++ CEFBS_None, // XVADDWOD_H_BU_B = 1704 ++ CEFBS_None, // XVADDWOD_Q_D = 1705 ++ CEFBS_None, // XVADDWOD_Q_DU = 1706 ++ CEFBS_None, // XVADDWOD_Q_DU_D = 1707 ++ CEFBS_None, // XVADDWOD_W_H = 1708 ++ CEFBS_None, // XVADDWOD_W_HU = 1709 ++ CEFBS_None, // XVADDWOD_W_HU_H = 1710 ++ CEFBS_None, // XVADD_B = 1711 ++ CEFBS_None, // XVADD_D = 1712 ++ CEFBS_None, // XVADD_H = 1713 ++ CEFBS_None, // XVADD_Q = 1714 ++ CEFBS_None, // XVADD_W = 1715 ++ CEFBS_None, // XVANDI_B = 1716 ++ CEFBS_None, // XVANDI_B_N = 1717 ++ CEFBS_None, // XVANDN_V = 1718 ++ CEFBS_None, // XVAND_V = 1719 ++ CEFBS_None, // XVAVGR_B = 1720 ++ CEFBS_None, // XVAVGR_BU = 1721 ++ CEFBS_None, // XVAVGR_D = 1722 ++ CEFBS_None, // XVAVGR_DU = 1723 ++ CEFBS_None, // XVAVGR_H = 1724 ++ CEFBS_None, // XVAVGR_HU = 1725 ++ CEFBS_None, // XVAVGR_W = 1726 ++ CEFBS_None, // XVAVGR_WU = 1727 ++ CEFBS_None, // XVAVG_B = 1728 ++ CEFBS_None, // XVAVG_BU = 1729 ++ CEFBS_None, // XVAVG_D = 1730 ++ CEFBS_None, // XVAVG_DU = 1731 ++ CEFBS_None, // XVAVG_H = 1732 ++ CEFBS_None, // XVAVG_HU = 1733 ++ CEFBS_None, // XVAVG_W = 1734 ++ CEFBS_None, // XVAVG_WU = 1735 ++ CEFBS_None, // XVBITCLRI_B = 1736 ++ CEFBS_None, // XVBITCLRI_D = 1737 ++ CEFBS_None, // XVBITCLRI_H = 1738 ++ CEFBS_None, // XVBITCLRI_W = 1739 ++ CEFBS_None, // XVBITCLR_B = 1740 ++ CEFBS_None, // XVBITCLR_D = 1741 ++ CEFBS_None, // XVBITCLR_H = 1742 ++ CEFBS_None, // XVBITCLR_W = 1743 ++ CEFBS_None, // XVBITREVI_B = 1744 ++ CEFBS_None, // XVBITREVI_D = 1745 ++ CEFBS_None, // XVBITREVI_H = 1746 ++ CEFBS_None, // XVBITREVI_W = 1747 ++ CEFBS_None, // XVBITREV_B = 1748 ++ CEFBS_None, // XVBITREV_D = 1749 ++ CEFBS_None, // XVBITREV_H = 1750 ++ CEFBS_None, // XVBITREV_W = 1751 ++ CEFBS_None, // XVBITSELI_B = 1752 ++ CEFBS_None, // XVBITSELI_B_N = 1753 ++ CEFBS_None, // XVBITSEL_V = 1754 ++ CEFBS_None, // XVBITSETI_B = 1755 ++ CEFBS_None, // XVBITSETI_D = 1756 ++ CEFBS_None, // XVBITSETI_H = 1757 ++ CEFBS_None, // XVBITSETI_W = 1758 ++ CEFBS_None, // XVBITSET_B = 1759 ++ CEFBS_None, // XVBITSET_D = 1760 ++ CEFBS_None, // XVBITSET_H = 1761 ++ CEFBS_None, // XVBITSET_W = 1762 ++ CEFBS_None, // XVBSLL_V = 1763 ++ CEFBS_None, // XVBSRL_V = 1764 ++ CEFBS_None, // XVCLO_B = 1765 ++ CEFBS_None, // XVCLO_D = 1766 ++ CEFBS_None, // XVCLO_H = 1767 ++ CEFBS_None, // XVCLO_W = 1768 ++ CEFBS_None, // XVCLZ_B = 1769 ++ CEFBS_None, // XVCLZ_D = 1770 ++ CEFBS_None, // XVCLZ_H = 1771 ++ CEFBS_None, // XVCLZ_W = 1772 ++ CEFBS_None, // XVDIV_B = 1773 ++ CEFBS_None, // XVDIV_BU = 1774 ++ CEFBS_None, // XVDIV_D = 1775 ++ CEFBS_None, // XVDIV_DU = 1776 ++ CEFBS_None, // XVDIV_H = 1777 ++ CEFBS_None, // XVDIV_HU = 1778 ++ CEFBS_None, // XVDIV_W = 1779 ++ CEFBS_None, // XVDIV_WU = 1780 ++ CEFBS_None, // XVEXTH_DU_WU = 1781 ++ CEFBS_None, // XVEXTH_D_W = 1782 ++ CEFBS_None, // XVEXTH_HU_BU = 1783 ++ CEFBS_None, // XVEXTH_H_B = 1784 ++ CEFBS_None, // XVEXTH_QU_DU = 1785 ++ CEFBS_None, // XVEXTH_Q_D = 1786 ++ CEFBS_None, // XVEXTH_WU_HU = 1787 ++ CEFBS_None, // XVEXTH_W_H = 1788 ++ CEFBS_None, // XVEXTL_QU_DU = 1789 ++ CEFBS_None, // XVEXTL_Q_D = 1790 ++ CEFBS_None, // XVEXTRINS_B = 1791 ++ CEFBS_None, // XVEXTRINS_D = 1792 ++ CEFBS_None, // XVEXTRINS_H = 1793 ++ CEFBS_None, // XVEXTRINS_W = 1794 ++ CEFBS_None, // XVFADD_D = 1795 ++ CEFBS_None, // XVFADD_S = 1796 ++ CEFBS_None, // XVFCLASS_D = 1797 ++ CEFBS_None, // XVFCLASS_S = 1798 ++ CEFBS_None, // XVFCMP_CAF_D = 1799 ++ CEFBS_None, // XVFCMP_CAF_S = 1800 ++ CEFBS_None, // XVFCMP_CEQ_D = 1801 ++ CEFBS_None, // XVFCMP_CEQ_S = 1802 ++ CEFBS_None, // XVFCMP_CLE_D = 1803 ++ CEFBS_None, // XVFCMP_CLE_S = 1804 ++ CEFBS_None, // XVFCMP_CLT_D = 1805 ++ CEFBS_None, // XVFCMP_CLT_S = 1806 ++ CEFBS_None, // XVFCMP_CNE_D = 1807 ++ CEFBS_None, // XVFCMP_CNE_S = 1808 ++ CEFBS_None, // XVFCMP_COR_D = 1809 ++ CEFBS_None, // XVFCMP_COR_S = 1810 ++ CEFBS_None, // XVFCMP_CUEQ_D = 1811 ++ CEFBS_None, // XVFCMP_CUEQ_S = 1812 ++ CEFBS_None, // XVFCMP_CULE_D = 1813 ++ CEFBS_None, // XVFCMP_CULE_S = 1814 ++ CEFBS_None, // XVFCMP_CULT_D = 1815 ++ CEFBS_None, // XVFCMP_CULT_S = 1816 ++ CEFBS_None, // XVFCMP_CUNE_D = 1817 ++ CEFBS_None, // XVFCMP_CUNE_S = 1818 ++ CEFBS_None, // XVFCMP_CUN_D = 1819 ++ CEFBS_None, // XVFCMP_CUN_S = 1820 ++ CEFBS_None, // XVFCMP_SAF_D = 1821 ++ CEFBS_None, // XVFCMP_SAF_S = 1822 ++ CEFBS_None, // XVFCMP_SEQ_D = 1823 ++ CEFBS_None, // XVFCMP_SEQ_S = 1824 ++ CEFBS_None, // XVFCMP_SLE_D = 1825 ++ CEFBS_None, // XVFCMP_SLE_S = 1826 ++ CEFBS_None, // XVFCMP_SLT_D = 1827 ++ CEFBS_None, // XVFCMP_SLT_S = 1828 ++ CEFBS_None, // XVFCMP_SNE_D = 1829 ++ CEFBS_None, // XVFCMP_SNE_S = 1830 ++ CEFBS_None, // XVFCMP_SOR_D = 1831 ++ CEFBS_None, // XVFCMP_SOR_S = 1832 ++ CEFBS_None, // XVFCMP_SUEQ_D = 1833 ++ CEFBS_None, // XVFCMP_SUEQ_S = 1834 ++ CEFBS_None, // XVFCMP_SULE_D = 1835 ++ CEFBS_None, // XVFCMP_SULE_S = 1836 ++ CEFBS_None, // XVFCMP_SULT_D = 1837 ++ CEFBS_None, // XVFCMP_SULT_S = 1838 ++ CEFBS_None, // XVFCMP_SUNE_D = 1839 ++ CEFBS_None, // XVFCMP_SUNE_S = 1840 ++ CEFBS_None, // XVFCMP_SUN_D = 1841 ++ CEFBS_None, // XVFCMP_SUN_S = 1842 ++ CEFBS_None, // XVFCVTH_D_S = 1843 ++ CEFBS_None, // XVFCVTH_S_H = 1844 ++ CEFBS_None, // XVFCVTL_D_S = 1845 ++ CEFBS_None, // XVFCVTL_S_H = 1846 ++ CEFBS_None, // XVFCVT_H_S = 1847 ++ CEFBS_None, // XVFCVT_S_D = 1848 ++ CEFBS_None, // XVFDIV_D = 1849 ++ CEFBS_None, // XVFDIV_S = 1850 ++ CEFBS_None, // XVFFINTH_D_W = 1851 ++ CEFBS_None, // XVFFINTL_D_W = 1852 ++ CEFBS_None, // XVFFINT_D_L = 1853 ++ CEFBS_None, // XVFFINT_D_LU = 1854 ++ CEFBS_None, // XVFFINT_S_L = 1855 ++ CEFBS_None, // XVFFINT_S_W = 1856 ++ CEFBS_None, // XVFFINT_S_WU = 1857 ++ CEFBS_None, // XVFLOGB_D = 1858 ++ CEFBS_None, // XVFLOGB_S = 1859 ++ CEFBS_None, // XVFMADD_D = 1860 ++ CEFBS_None, // XVFMADD_S = 1861 ++ CEFBS_None, // XVFMAXA_D = 1862 ++ CEFBS_None, // XVFMAXA_S = 1863 ++ CEFBS_None, // XVFMAX_D = 1864 ++ CEFBS_None, // XVFMAX_S = 1865 ++ CEFBS_None, // XVFMINA_D = 1866 ++ CEFBS_None, // XVFMINA_S = 1867 ++ CEFBS_None, // XVFMIN_D = 1868 ++ CEFBS_None, // XVFMIN_S = 1869 ++ CEFBS_None, // XVFMSUB_D = 1870 ++ CEFBS_None, // XVFMSUB_S = 1871 ++ CEFBS_None, // XVFMUL_D = 1872 ++ CEFBS_None, // XVFMUL_S = 1873 ++ CEFBS_None, // XVFNMADD_D = 1874 ++ CEFBS_None, // XVFNMADD_S = 1875 ++ CEFBS_None, // XVFNMSUB_D = 1876 ++ CEFBS_None, // XVFNMSUB_S = 1877 ++ CEFBS_None, // XVFRECIP_D = 1878 ++ CEFBS_None, // XVFRECIP_S = 1879 ++ CEFBS_None, // XVFRINTRM_D = 1880 ++ CEFBS_None, // XVFRINTRM_S = 1881 ++ CEFBS_None, // XVFRINTRNE_D = 1882 ++ CEFBS_None, // XVFRINTRNE_S = 1883 ++ CEFBS_None, // XVFRINTRP_D = 1884 ++ CEFBS_None, // XVFRINTRP_S = 1885 ++ CEFBS_None, // XVFRINTRZ_D = 1886 ++ CEFBS_None, // XVFRINTRZ_S = 1887 ++ CEFBS_None, // XVFRINT_D = 1888 ++ CEFBS_None, // XVFRINT_S = 1889 ++ CEFBS_None, // XVFRSQRT_D = 1890 ++ CEFBS_None, // XVFRSQRT_S = 1891 ++ CEFBS_None, // XVFRSTPI_B = 1892 ++ CEFBS_None, // XVFRSTPI_H = 1893 ++ CEFBS_None, // XVFRSTP_B = 1894 ++ CEFBS_None, // XVFRSTP_H = 1895 ++ CEFBS_None, // XVFSQRT_D = 1896 ++ CEFBS_None, // XVFSQRT_S = 1897 ++ CEFBS_None, // XVFSUB_D = 1898 ++ CEFBS_None, // XVFSUB_S = 1899 ++ CEFBS_None, // XVFTINTH_L_S = 1900 ++ CEFBS_None, // XVFTINTL_L_S = 1901 ++ CEFBS_None, // XVFTINTRMH_L_S = 1902 ++ CEFBS_None, // XVFTINTRML_L_S = 1903 ++ CEFBS_None, // XVFTINTRM_L_D = 1904 ++ CEFBS_None, // XVFTINTRM_W_D = 1905 ++ CEFBS_None, // XVFTINTRM_W_S = 1906 ++ CEFBS_None, // XVFTINTRNEH_L_S = 1907 ++ CEFBS_None, // XVFTINTRNEL_L_S = 1908 ++ CEFBS_None, // XVFTINTRNE_L_D = 1909 ++ CEFBS_None, // XVFTINTRNE_W_D = 1910 ++ CEFBS_None, // XVFTINTRNE_W_S = 1911 ++ CEFBS_None, // XVFTINTRPH_L_S = 1912 ++ CEFBS_None, // XVFTINTRPL_L_S = 1913 ++ CEFBS_None, // XVFTINTRP_L_D = 1914 ++ CEFBS_None, // XVFTINTRP_W_D = 1915 ++ CEFBS_None, // XVFTINTRP_W_S = 1916 ++ CEFBS_None, // XVFTINTRZH_L_S = 1917 ++ CEFBS_None, // XVFTINTRZL_L_S = 1918 ++ CEFBS_None, // XVFTINTRZ_LU_D = 1919 ++ CEFBS_None, // XVFTINTRZ_L_D = 1920 ++ CEFBS_None, // XVFTINTRZ_WU_S = 1921 ++ CEFBS_None, // XVFTINTRZ_W_D = 1922 ++ CEFBS_None, // XVFTINTRZ_W_S = 1923 ++ CEFBS_None, // XVFTINT_LU_D = 1924 ++ CEFBS_None, // XVFTINT_L_D = 1925 ++ CEFBS_None, // XVFTINT_WU_S = 1926 ++ CEFBS_None, // XVFTINT_W_D = 1927 ++ CEFBS_None, // XVFTINT_W_S = 1928 ++ CEFBS_None, // XVHADDW_DU_WU = 1929 ++ CEFBS_None, // XVHADDW_D_W = 1930 ++ CEFBS_None, // XVHADDW_HU_BU = 1931 ++ CEFBS_None, // XVHADDW_H_B = 1932 ++ CEFBS_None, // XVHADDW_QU_DU = 1933 ++ CEFBS_None, // XVHADDW_Q_D = 1934 ++ CEFBS_None, // XVHADDW_WU_HU = 1935 ++ CEFBS_None, // XVHADDW_W_H = 1936 ++ CEFBS_None, // XVHSELI_D = 1937 ++ CEFBS_None, // XVHSUBW_DU_WU = 1938 ++ CEFBS_None, // XVHSUBW_D_W = 1939 ++ CEFBS_None, // XVHSUBW_HU_BU = 1940 ++ CEFBS_None, // XVHSUBW_H_B = 1941 ++ CEFBS_None, // XVHSUBW_QU_DU = 1942 ++ CEFBS_None, // XVHSUBW_Q_D = 1943 ++ CEFBS_None, // XVHSUBW_WU_HU = 1944 ++ CEFBS_None, // XVHSUBW_W_H = 1945 ++ CEFBS_None, // XVILVH_B = 1946 ++ CEFBS_None, // XVILVH_D = 1947 ++ CEFBS_None, // XVILVH_H = 1948 ++ CEFBS_None, // XVILVH_W = 1949 ++ CEFBS_None, // XVILVL_B = 1950 ++ CEFBS_None, // XVILVL_D = 1951 ++ CEFBS_None, // XVILVL_H = 1952 ++ CEFBS_None, // XVILVL_W = 1953 ++ CEFBS_None, // XVINSGR2VR_D = 1954 ++ CEFBS_None, // XVINSGR2VR_W = 1955 ++ CEFBS_None, // XVINSVE0_D = 1956 ++ CEFBS_None, // XVINSVE0_W = 1957 ++ CEFBS_None, // XVLD = 1958 ++ CEFBS_None, // XVLDI = 1959 ++ CEFBS_None, // XVLDI_B = 1960 ++ CEFBS_None, // XVLDI_D = 1961 ++ CEFBS_None, // XVLDI_H = 1962 ++ CEFBS_None, // XVLDI_W = 1963 ++ CEFBS_None, // XVLDREPL_B = 1964 ++ CEFBS_None, // XVLDREPL_D = 1965 ++ CEFBS_None, // XVLDREPL_H = 1966 ++ CEFBS_None, // XVLDREPL_W = 1967 ++ CEFBS_None, // XVLDX = 1968 ++ CEFBS_None, // XVLD_D = 1969 ++ CEFBS_None, // XVLD_H = 1970 ++ CEFBS_None, // XVLD_W = 1971 ++ CEFBS_None, // XVMADDWEV_D_W = 1972 ++ CEFBS_None, // XVMADDWEV_D_WU = 1973 ++ CEFBS_None, // XVMADDWEV_D_WU_W = 1974 ++ CEFBS_None, // XVMADDWEV_H_B = 1975 ++ CEFBS_None, // XVMADDWEV_H_BU = 1976 ++ CEFBS_None, // XVMADDWEV_H_BU_B = 1977 ++ CEFBS_None, // XVMADDWEV_Q_D = 1978 ++ CEFBS_None, // XVMADDWEV_Q_DU = 1979 ++ CEFBS_None, // XVMADDWEV_Q_DU_D = 1980 ++ CEFBS_None, // XVMADDWEV_W_H = 1981 ++ CEFBS_None, // XVMADDWEV_W_HU = 1982 ++ CEFBS_None, // XVMADDWEV_W_HU_H = 1983 ++ CEFBS_None, // XVMADDWOD_D_W = 1984 ++ CEFBS_None, // XVMADDWOD_D_WU = 1985 ++ CEFBS_None, // XVMADDWOD_D_WU_W = 1986 ++ CEFBS_None, // XVMADDWOD_H_B = 1987 ++ CEFBS_None, // XVMADDWOD_H_BU = 1988 ++ CEFBS_None, // XVMADDWOD_H_BU_B = 1989 ++ CEFBS_None, // XVMADDWOD_Q_D = 1990 ++ CEFBS_None, // XVMADDWOD_Q_DU = 1991 ++ CEFBS_None, // XVMADDWOD_Q_DU_D = 1992 ++ CEFBS_None, // XVMADDWOD_W_H = 1993 ++ CEFBS_None, // XVMADDWOD_W_HU = 1994 ++ CEFBS_None, // XVMADDWOD_W_HU_H = 1995 ++ CEFBS_None, // XVMADD_B = 1996 ++ CEFBS_None, // XVMADD_D = 1997 ++ CEFBS_None, // XVMADD_H = 1998 ++ CEFBS_None, // XVMADD_W = 1999 ++ CEFBS_None, // XVMAXI_B = 2000 ++ CEFBS_None, // XVMAXI_BU = 2001 ++ CEFBS_None, // XVMAXI_BU_N = 2002 ++ CEFBS_None, // XVMAXI_B_N = 2003 ++ CEFBS_None, // XVMAXI_D = 2004 ++ CEFBS_None, // XVMAXI_DU = 2005 ++ CEFBS_None, // XVMAXI_DU_N = 2006 ++ CEFBS_None, // XVMAXI_D_N = 2007 ++ CEFBS_None, // XVMAXI_H = 2008 ++ CEFBS_None, // XVMAXI_HU = 2009 ++ CEFBS_None, // XVMAXI_HU_N = 2010 ++ CEFBS_None, // XVMAXI_H_N = 2011 ++ CEFBS_None, // XVMAXI_W = 2012 ++ CEFBS_None, // XVMAXI_WU = 2013 ++ CEFBS_None, // XVMAXI_WU_N = 2014 ++ CEFBS_None, // XVMAXI_W_N = 2015 ++ CEFBS_None, // XVMAX_B = 2016 ++ CEFBS_None, // XVMAX_BU = 2017 ++ CEFBS_None, // XVMAX_D = 2018 ++ CEFBS_None, // XVMAX_DU = 2019 ++ CEFBS_None, // XVMAX_H = 2020 ++ CEFBS_None, // XVMAX_HU = 2021 ++ CEFBS_None, // XVMAX_W = 2022 ++ CEFBS_None, // XVMAX_WU = 2023 ++ CEFBS_None, // XVMINI_B = 2024 ++ CEFBS_None, // XVMINI_BU = 2025 ++ CEFBS_None, // XVMINI_BU_N = 2026 ++ CEFBS_None, // XVMINI_B_N = 2027 ++ CEFBS_None, // XVMINI_D = 2028 ++ CEFBS_None, // XVMINI_DU = 2029 ++ CEFBS_None, // XVMINI_DU_N = 2030 ++ CEFBS_None, // XVMINI_D_N = 2031 ++ CEFBS_None, // XVMINI_H = 2032 ++ CEFBS_None, // XVMINI_HU = 2033 ++ CEFBS_None, // XVMINI_HU_N = 2034 ++ CEFBS_None, // XVMINI_H_N = 2035 ++ CEFBS_None, // XVMINI_W = 2036 ++ CEFBS_None, // XVMINI_WU = 2037 ++ CEFBS_None, // XVMINI_WU_N = 2038 ++ CEFBS_None, // XVMINI_W_N = 2039 ++ CEFBS_None, // XVMIN_B = 2040 ++ CEFBS_None, // XVMIN_BU = 2041 ++ CEFBS_None, // XVMIN_D = 2042 ++ CEFBS_None, // XVMIN_DU = 2043 ++ CEFBS_None, // XVMIN_H = 2044 ++ CEFBS_None, // XVMIN_HU = 2045 ++ CEFBS_None, // XVMIN_W = 2046 ++ CEFBS_None, // XVMIN_WU = 2047 ++ CEFBS_None, // XVMOD_B = 2048 ++ CEFBS_None, // XVMOD_BU = 2049 ++ CEFBS_None, // XVMOD_D = 2050 ++ CEFBS_None, // XVMOD_DU = 2051 ++ CEFBS_None, // XVMOD_H = 2052 ++ CEFBS_None, // XVMOD_HU = 2053 ++ CEFBS_None, // XVMOD_W = 2054 ++ CEFBS_None, // XVMOD_WU = 2055 ++ CEFBS_None, // XVMSKGEZ_B = 2056 ++ CEFBS_None, // XVMSKLTZ_B = 2057 ++ CEFBS_None, // XVMSKLTZ_D = 2058 ++ CEFBS_None, // XVMSKLTZ_H = 2059 ++ CEFBS_None, // XVMSKLTZ_W = 2060 ++ CEFBS_None, // XVMSKNZ_B = 2061 ++ CEFBS_None, // XVMSUB_B = 2062 ++ CEFBS_None, // XVMSUB_D = 2063 ++ CEFBS_None, // XVMSUB_H = 2064 ++ CEFBS_None, // XVMSUB_W = 2065 ++ CEFBS_None, // XVMUH_B = 2066 ++ CEFBS_None, // XVMUH_BU = 2067 ++ CEFBS_None, // XVMUH_D = 2068 ++ CEFBS_None, // XVMUH_DU = 2069 ++ CEFBS_None, // XVMUH_H = 2070 ++ CEFBS_None, // XVMUH_HU = 2071 ++ CEFBS_None, // XVMUH_W = 2072 ++ CEFBS_None, // XVMUH_WU = 2073 ++ CEFBS_None, // XVMULWEV_D_W = 2074 ++ CEFBS_None, // XVMULWEV_D_WU = 2075 ++ CEFBS_None, // XVMULWEV_D_WU_W = 2076 ++ CEFBS_None, // XVMULWEV_H_B = 2077 ++ CEFBS_None, // XVMULWEV_H_BU = 2078 ++ CEFBS_None, // XVMULWEV_H_BU_B = 2079 ++ CEFBS_None, // XVMULWEV_Q_D = 2080 ++ CEFBS_None, // XVMULWEV_Q_DU = 2081 ++ CEFBS_None, // XVMULWEV_Q_DU_D = 2082 ++ CEFBS_None, // XVMULWEV_W_H = 2083 ++ CEFBS_None, // XVMULWEV_W_HU = 2084 ++ CEFBS_None, // XVMULWEV_W_HU_H = 2085 ++ CEFBS_None, // XVMULWOD_D_W = 2086 ++ CEFBS_None, // XVMULWOD_D_WU = 2087 ++ CEFBS_None, // XVMULWOD_D_WU_W = 2088 ++ CEFBS_None, // XVMULWOD_H_B = 2089 ++ CEFBS_None, // XVMULWOD_H_BU = 2090 ++ CEFBS_None, // XVMULWOD_H_BU_B = 2091 ++ CEFBS_None, // XVMULWOD_Q_D = 2092 ++ CEFBS_None, // XVMULWOD_Q_DU = 2093 ++ CEFBS_None, // XVMULWOD_Q_DU_D = 2094 ++ CEFBS_None, // XVMULWOD_W_H = 2095 ++ CEFBS_None, // XVMULWOD_W_HU = 2096 ++ CEFBS_None, // XVMULWOD_W_HU_H = 2097 ++ CEFBS_None, // XVMUL_B = 2098 ++ CEFBS_None, // XVMUL_D = 2099 ++ CEFBS_None, // XVMUL_H = 2100 ++ CEFBS_None, // XVMUL_W = 2101 ++ CEFBS_None, // XVNEG_B = 2102 ++ CEFBS_None, // XVNEG_D = 2103 ++ CEFBS_None, // XVNEG_H = 2104 ++ CEFBS_None, // XVNEG_W = 2105 ++ CEFBS_None, // XVNORI_B = 2106 ++ CEFBS_None, // XVNOR_V = 2107 ++ CEFBS_None, // XVORI_B = 2108 ++ CEFBS_None, // XVORN_V = 2109 ++ CEFBS_None, // XVOR_V = 2110 ++ CEFBS_None, // XVPACKEV_B = 2111 ++ CEFBS_None, // XVPACKEV_D = 2112 ++ CEFBS_None, // XVPACKEV_H = 2113 ++ CEFBS_None, // XVPACKEV_W = 2114 ++ CEFBS_None, // XVPACKOD_B = 2115 ++ CEFBS_None, // XVPACKOD_D = 2116 ++ CEFBS_None, // XVPACKOD_H = 2117 ++ CEFBS_None, // XVPACKOD_W = 2118 ++ CEFBS_None, // XVPCNT_B = 2119 ++ CEFBS_None, // XVPCNT_D = 2120 ++ CEFBS_None, // XVPCNT_H = 2121 ++ CEFBS_None, // XVPCNT_W = 2122 ++ CEFBS_None, // XVPERMI_D = 2123 ++ CEFBS_None, // XVPERMI_Q = 2124 ++ CEFBS_None, // XVPERMI_QD = 2125 ++ CEFBS_None, // XVPERMI_QH = 2126 ++ CEFBS_None, // XVPERMI_QW = 2127 ++ CEFBS_None, // XVPERMI_W = 2128 ++ CEFBS_None, // XVPERM_W = 2129 ++ CEFBS_None, // XVPICKEV_B = 2130 ++ CEFBS_None, // XVPICKEV_D = 2131 ++ CEFBS_None, // XVPICKEV_H = 2132 ++ CEFBS_None, // XVPICKEV_W = 2133 ++ CEFBS_None, // XVPICKOD_B = 2134 ++ CEFBS_None, // XVPICKOD_D = 2135 ++ CEFBS_None, // XVPICKOD_H = 2136 ++ CEFBS_None, // XVPICKOD_W = 2137 ++ CEFBS_None, // XVPICKVE2GR_D = 2138 ++ CEFBS_None, // XVPICKVE2GR_DU = 2139 ++ CEFBS_None, // XVPICKVE2GR_W = 2140 ++ CEFBS_None, // XVPICKVE2GR_WU = 2141 ++ CEFBS_None, // XVPICKVE_D = 2142 ++ CEFBS_None, // XVPICKVE_W = 2143 ++ CEFBS_None, // XVREPL128VEI_B = 2144 ++ CEFBS_None, // XVREPL128VEI_D = 2145 ++ CEFBS_None, // XVREPL128VEI_H = 2146 ++ CEFBS_None, // XVREPL128VEI_W = 2147 ++ CEFBS_None, // XVREPLGR2VR_B = 2148 ++ CEFBS_None, // XVREPLGR2VR_D = 2149 ++ CEFBS_None, // XVREPLGR2VR_H = 2150 ++ CEFBS_None, // XVREPLGR2VR_W = 2151 ++ CEFBS_None, // XVREPLVE0_B = 2152 ++ CEFBS_None, // XVREPLVE0_D = 2153 ++ CEFBS_None, // XVREPLVE0_H = 2154 ++ CEFBS_None, // XVREPLVE0_Q = 2155 ++ CEFBS_None, // XVREPLVE0_W = 2156 ++ CEFBS_None, // XVREPLVE_B = 2157 ++ CEFBS_None, // XVREPLVE_D = 2158 ++ CEFBS_None, // XVREPLVE_H = 2159 ++ CEFBS_None, // XVREPLVE_W = 2160 ++ CEFBS_None, // XVREPLVE_W_N = 2161 ++ CEFBS_None, // XVROTRI_B = 2162 ++ CEFBS_None, // XVROTRI_D = 2163 ++ CEFBS_None, // XVROTRI_H = 2164 ++ CEFBS_None, // XVROTRI_W = 2165 ++ CEFBS_None, // XVROTR_B = 2166 ++ CEFBS_None, // XVROTR_D = 2167 ++ CEFBS_None, // XVROTR_H = 2168 ++ CEFBS_None, // XVROTR_W = 2169 ++ CEFBS_None, // XVSADD_B = 2170 ++ CEFBS_None, // XVSADD_BU = 2171 ++ CEFBS_None, // XVSADD_D = 2172 ++ CEFBS_None, // XVSADD_DU = 2173 ++ CEFBS_None, // XVSADD_H = 2174 ++ CEFBS_None, // XVSADD_HU = 2175 ++ CEFBS_None, // XVSADD_W = 2176 ++ CEFBS_None, // XVSADD_WU = 2177 ++ CEFBS_None, // XVSAT_B = 2178 ++ CEFBS_None, // XVSAT_BU = 2179 ++ CEFBS_None, // XVSAT_D = 2180 ++ CEFBS_None, // XVSAT_DU = 2181 ++ CEFBS_None, // XVSAT_H = 2182 ++ CEFBS_None, // XVSAT_HU = 2183 ++ CEFBS_None, // XVSAT_W = 2184 ++ CEFBS_None, // XVSAT_WU = 2185 ++ CEFBS_None, // XVSEQI_B = 2186 ++ CEFBS_None, // XVSEQI_B_N = 2187 ++ CEFBS_None, // XVSEQI_D = 2188 ++ CEFBS_None, // XVSEQI_D_N = 2189 ++ CEFBS_None, // XVSEQI_H = 2190 ++ CEFBS_None, // XVSEQI_H_N = 2191 ++ CEFBS_None, // XVSEQI_W = 2192 ++ CEFBS_None, // XVSEQI_W_N = 2193 ++ CEFBS_None, // XVSEQ_B = 2194 ++ CEFBS_None, // XVSEQ_D = 2195 ++ CEFBS_None, // XVSEQ_H = 2196 ++ CEFBS_None, // XVSEQ_W = 2197 ++ CEFBS_None, // XVSETALLNEZ_B = 2198 ++ CEFBS_None, // XVSETALLNEZ_D = 2199 ++ CEFBS_None, // XVSETALLNEZ_H = 2200 ++ CEFBS_None, // XVSETALLNEZ_W = 2201 ++ CEFBS_None, // XVSETANYEQZ_B = 2202 ++ CEFBS_None, // XVSETANYEQZ_D = 2203 ++ CEFBS_None, // XVSETANYEQZ_H = 2204 ++ CEFBS_None, // XVSETANYEQZ_W = 2205 ++ CEFBS_None, // XVSETEQZ_V = 2206 ++ CEFBS_None, // XVSETNEZ_V = 2207 ++ CEFBS_None, // XVSHUF4I_B = 2208 ++ CEFBS_None, // XVSHUF4I_D = 2209 ++ CEFBS_None, // XVSHUF4I_H = 2210 ++ CEFBS_None, // XVSHUF4I_W = 2211 ++ CEFBS_None, // XVSHUF_B = 2212 ++ CEFBS_None, // XVSHUF_D = 2213 ++ CEFBS_None, // XVSHUF_H = 2214 ++ CEFBS_None, // XVSHUF_W = 2215 ++ CEFBS_None, // XVSIGNCOV_B = 2216 ++ CEFBS_None, // XVSIGNCOV_D = 2217 ++ CEFBS_None, // XVSIGNCOV_H = 2218 ++ CEFBS_None, // XVSIGNCOV_W = 2219 ++ CEFBS_None, // XVSLEI_B = 2220 ++ CEFBS_None, // XVSLEI_BU = 2221 ++ CEFBS_None, // XVSLEI_BU_N = 2222 ++ CEFBS_None, // XVSLEI_B_N = 2223 ++ CEFBS_None, // XVSLEI_D = 2224 ++ CEFBS_None, // XVSLEI_DU = 2225 ++ CEFBS_None, // XVSLEI_DU_N = 2226 ++ CEFBS_None, // XVSLEI_D_N = 2227 ++ CEFBS_None, // XVSLEI_H = 2228 ++ CEFBS_None, // XVSLEI_HU = 2229 ++ CEFBS_None, // XVSLEI_HU_N = 2230 ++ CEFBS_None, // XVSLEI_H_N = 2231 ++ CEFBS_None, // XVSLEI_W = 2232 ++ CEFBS_None, // XVSLEI_WU = 2233 ++ CEFBS_None, // XVSLEI_WU_N = 2234 ++ CEFBS_None, // XVSLEI_W_N = 2235 ++ CEFBS_None, // XVSLE_B = 2236 ++ CEFBS_None, // XVSLE_BU = 2237 ++ CEFBS_None, // XVSLE_D = 2238 ++ CEFBS_None, // XVSLE_DU = 2239 ++ CEFBS_None, // XVSLE_H = 2240 ++ CEFBS_None, // XVSLE_HU = 2241 ++ CEFBS_None, // XVSLE_W = 2242 ++ CEFBS_None, // XVSLE_WU = 2243 ++ CEFBS_None, // XVSLLI_B = 2244 ++ CEFBS_None, // XVSLLI_B_N = 2245 ++ CEFBS_None, // XVSLLI_D = 2246 ++ CEFBS_None, // XVSLLI_D_N = 2247 ++ CEFBS_None, // XVSLLI_H = 2248 ++ CEFBS_None, // XVSLLI_H_N = 2249 ++ CEFBS_None, // XVSLLI_W = 2250 ++ CEFBS_None, // XVSLLI_W_N = 2251 ++ CEFBS_None, // XVSLLWIL_DU_WU = 2252 ++ CEFBS_None, // XVSLLWIL_D_W = 2253 ++ CEFBS_None, // XVSLLWIL_HU_BU = 2254 ++ CEFBS_None, // XVSLLWIL_H_B = 2255 ++ CEFBS_None, // XVSLLWIL_WU_HU = 2256 ++ CEFBS_None, // XVSLLWIL_W_H = 2257 ++ CEFBS_None, // XVSLL_B = 2258 ++ CEFBS_None, // XVSLL_D = 2259 ++ CEFBS_None, // XVSLL_H = 2260 ++ CEFBS_None, // XVSLL_W = 2261 ++ CEFBS_None, // XVSLTI_B = 2262 ++ CEFBS_None, // XVSLTI_BU = 2263 ++ CEFBS_None, // XVSLTI_BU_N = 2264 ++ CEFBS_None, // XVSLTI_B_N = 2265 ++ CEFBS_None, // XVSLTI_D = 2266 ++ CEFBS_None, // XVSLTI_DU = 2267 ++ CEFBS_None, // XVSLTI_DU_N = 2268 ++ CEFBS_None, // XVSLTI_D_N = 2269 ++ CEFBS_None, // XVSLTI_H = 2270 ++ CEFBS_None, // XVSLTI_HU = 2271 ++ CEFBS_None, // XVSLTI_HU_N = 2272 ++ CEFBS_None, // XVSLTI_H_N = 2273 ++ CEFBS_None, // XVSLTI_W = 2274 ++ CEFBS_None, // XVSLTI_WU = 2275 ++ CEFBS_None, // XVSLTI_WU_N = 2276 ++ CEFBS_None, // XVSLTI_W_N = 2277 ++ CEFBS_None, // XVSLT_B = 2278 ++ CEFBS_None, // XVSLT_BU = 2279 ++ CEFBS_None, // XVSLT_D = 2280 ++ CEFBS_None, // XVSLT_DU = 2281 ++ CEFBS_None, // XVSLT_H = 2282 ++ CEFBS_None, // XVSLT_HU = 2283 ++ CEFBS_None, // XVSLT_W = 2284 ++ CEFBS_None, // XVSLT_WU = 2285 ++ CEFBS_None, // XVSRAI_B = 2286 ++ CEFBS_None, // XVSRAI_B_N = 2287 ++ CEFBS_None, // XVSRAI_D = 2288 ++ CEFBS_None, // XVSRAI_D_N = 2289 ++ CEFBS_None, // XVSRAI_H = 2290 ++ CEFBS_None, // XVSRAI_H_N = 2291 ++ CEFBS_None, // XVSRAI_W = 2292 ++ CEFBS_None, // XVSRAI_W_N = 2293 ++ CEFBS_None, // XVSRANI_B_H = 2294 ++ CEFBS_None, // XVSRANI_D_Q = 2295 ++ CEFBS_None, // XVSRANI_H_W = 2296 ++ CEFBS_None, // XVSRANI_W_D = 2297 ++ CEFBS_None, // XVSRAN_B_H = 2298 ++ CEFBS_None, // XVSRAN_H_W = 2299 ++ CEFBS_None, // XVSRAN_W_D = 2300 ++ CEFBS_None, // XVSRARI_B = 2301 ++ CEFBS_None, // XVSRARI_D = 2302 ++ CEFBS_None, // XVSRARI_H = 2303 ++ CEFBS_None, // XVSRARI_W = 2304 ++ CEFBS_None, // XVSRARNI_B_H = 2305 ++ CEFBS_None, // XVSRARNI_D_Q = 2306 ++ CEFBS_None, // XVSRARNI_H_W = 2307 ++ CEFBS_None, // XVSRARNI_W_D = 2308 ++ CEFBS_None, // XVSRARN_B_H = 2309 ++ CEFBS_None, // XVSRARN_H_W = 2310 ++ CEFBS_None, // XVSRARN_W_D = 2311 ++ CEFBS_None, // XVSRAR_B = 2312 ++ CEFBS_None, // XVSRAR_D = 2313 ++ CEFBS_None, // XVSRAR_H = 2314 ++ CEFBS_None, // XVSRAR_W = 2315 ++ CEFBS_None, // XVSRA_B = 2316 ++ CEFBS_None, // XVSRA_D = 2317 ++ CEFBS_None, // XVSRA_H = 2318 ++ CEFBS_None, // XVSRA_W = 2319 ++ CEFBS_None, // XVSRLI_B = 2320 ++ CEFBS_None, // XVSRLI_B_N = 2321 ++ CEFBS_None, // XVSRLI_D = 2322 ++ CEFBS_None, // XVSRLI_D_N = 2323 ++ CEFBS_None, // XVSRLI_H = 2324 ++ CEFBS_None, // XVSRLI_H_N = 2325 ++ CEFBS_None, // XVSRLI_W = 2326 ++ CEFBS_None, // XVSRLI_W_N = 2327 ++ CEFBS_None, // XVSRLNI_B_H = 2328 ++ CEFBS_None, // XVSRLNI_D_Q = 2329 ++ CEFBS_None, // XVSRLNI_H_W = 2330 ++ CEFBS_None, // XVSRLNI_W_D = 2331 ++ CEFBS_None, // XVSRLN_B_H = 2332 ++ CEFBS_None, // XVSRLN_H_W = 2333 ++ CEFBS_None, // XVSRLN_W_D = 2334 ++ CEFBS_None, // XVSRLRI_B = 2335 ++ CEFBS_None, // XVSRLRI_D = 2336 ++ CEFBS_None, // XVSRLRI_H = 2337 ++ CEFBS_None, // XVSRLRI_W = 2338 ++ CEFBS_None, // XVSRLRNI_B_H = 2339 ++ CEFBS_None, // XVSRLRNI_D_Q = 2340 ++ CEFBS_None, // XVSRLRNI_H_W = 2341 ++ CEFBS_None, // XVSRLRNI_W_D = 2342 ++ CEFBS_None, // XVSRLRN_B_H = 2343 ++ CEFBS_None, // XVSRLRN_H_W = 2344 ++ CEFBS_None, // XVSRLRN_W_D = 2345 ++ CEFBS_None, // XVSRLR_B = 2346 ++ CEFBS_None, // XVSRLR_D = 2347 ++ CEFBS_None, // XVSRLR_H = 2348 ++ CEFBS_None, // XVSRLR_W = 2349 ++ CEFBS_None, // XVSRL_B = 2350 ++ CEFBS_None, // XVSRL_D = 2351 ++ CEFBS_None, // XVSRL_H = 2352 ++ CEFBS_None, // XVSRL_W = 2353 ++ CEFBS_None, // XVSSRANI_BU_H = 2354 ++ CEFBS_None, // XVSSRANI_B_H = 2355 ++ CEFBS_None, // XVSSRANI_DU_Q = 2356 ++ CEFBS_None, // XVSSRANI_D_Q = 2357 ++ CEFBS_None, // XVSSRANI_HU_W = 2358 ++ CEFBS_None, // XVSSRANI_H_W = 2359 ++ CEFBS_None, // XVSSRANI_WU_D = 2360 ++ CEFBS_None, // XVSSRANI_W_D = 2361 ++ CEFBS_None, // XVSSRAN_BU_H = 2362 ++ CEFBS_None, // XVSSRAN_B_H = 2363 ++ CEFBS_None, // XVSSRAN_HU_W = 2364 ++ CEFBS_None, // XVSSRAN_H_W = 2365 ++ CEFBS_None, // XVSSRAN_WU_D = 2366 ++ CEFBS_None, // XVSSRAN_W_D = 2367 ++ CEFBS_None, // XVSSRARNI_BU_H = 2368 ++ CEFBS_None, // XVSSRARNI_B_H = 2369 ++ CEFBS_None, // XVSSRARNI_DU_Q = 2370 ++ CEFBS_None, // XVSSRARNI_D_Q = 2371 ++ CEFBS_None, // XVSSRARNI_HU_W = 2372 ++ CEFBS_None, // XVSSRARNI_H_W = 2373 ++ CEFBS_None, // XVSSRARNI_WU_D = 2374 ++ CEFBS_None, // XVSSRARNI_W_D = 2375 ++ CEFBS_None, // XVSSRARN_BU_H = 2376 ++ CEFBS_None, // XVSSRARN_B_H = 2377 ++ CEFBS_None, // XVSSRARN_HU_W = 2378 ++ CEFBS_None, // XVSSRARN_H_W = 2379 ++ CEFBS_None, // XVSSRARN_WU_D = 2380 ++ CEFBS_None, // XVSSRARN_W_D = 2381 ++ CEFBS_None, // XVSSRLNI_BU_H = 2382 ++ CEFBS_None, // XVSSRLNI_B_H = 2383 ++ CEFBS_None, // XVSSRLNI_DU_Q = 2384 ++ CEFBS_None, // XVSSRLNI_D_Q = 2385 ++ CEFBS_None, // XVSSRLNI_HU_W = 2386 ++ CEFBS_None, // XVSSRLNI_H_W = 2387 ++ CEFBS_None, // XVSSRLNI_WU_D = 2388 ++ CEFBS_None, // XVSSRLNI_W_D = 2389 ++ CEFBS_None, // XVSSRLN_BU_H = 2390 ++ CEFBS_None, // XVSSRLN_B_H = 2391 ++ CEFBS_None, // XVSSRLN_HU_W = 2392 ++ CEFBS_None, // XVSSRLN_H_W = 2393 ++ CEFBS_None, // XVSSRLN_WU_D = 2394 ++ CEFBS_None, // XVSSRLN_W_D = 2395 ++ CEFBS_None, // XVSSRLRNI_BU_H = 2396 ++ CEFBS_None, // XVSSRLRNI_B_H = 2397 ++ CEFBS_None, // XVSSRLRNI_DU_Q = 2398 ++ CEFBS_None, // XVSSRLRNI_D_Q = 2399 ++ CEFBS_None, // XVSSRLRNI_HU_W = 2400 ++ CEFBS_None, // XVSSRLRNI_H_W = 2401 ++ CEFBS_None, // XVSSRLRNI_WU_D = 2402 ++ CEFBS_None, // XVSSRLRNI_W_D = 2403 ++ CEFBS_None, // XVSSRLRN_BU_H = 2404 ++ CEFBS_None, // XVSSRLRN_B_H = 2405 ++ CEFBS_None, // XVSSRLRN_HU_W = 2406 ++ CEFBS_None, // XVSSRLRN_H_W = 2407 ++ CEFBS_None, // XVSSRLRN_WU_D = 2408 ++ CEFBS_None, // XVSSRLRN_W_D = 2409 ++ CEFBS_None, // XVSSUB_B = 2410 ++ CEFBS_None, // XVSSUB_BU = 2411 ++ CEFBS_None, // XVSSUB_D = 2412 ++ CEFBS_None, // XVSSUB_DU = 2413 ++ CEFBS_None, // XVSSUB_H = 2414 ++ CEFBS_None, // XVSSUB_HU = 2415 ++ CEFBS_None, // XVSSUB_W = 2416 ++ CEFBS_None, // XVSSUB_WU = 2417 ++ CEFBS_None, // XVST = 2418 ++ CEFBS_None, // XVSTELM_B = 2419 ++ CEFBS_None, // XVSTELM_D = 2420 ++ CEFBS_None, // XVSTELM_H = 2421 ++ CEFBS_None, // XVSTELM_W = 2422 ++ CEFBS_None, // XVSTX = 2423 ++ CEFBS_None, // XVST_D = 2424 ++ CEFBS_None, // XVST_H = 2425 ++ CEFBS_None, // XVST_W = 2426 ++ CEFBS_None, // XVSUBI_BU = 2427 ++ CEFBS_None, // XVSUBI_BU_N = 2428 ++ CEFBS_None, // XVSUBI_DU = 2429 ++ CEFBS_None, // XVSUBI_DU_N = 2430 ++ CEFBS_None, // XVSUBI_HU = 2431 ++ CEFBS_None, // XVSUBI_HU_N = 2432 ++ CEFBS_None, // XVSUBI_WU = 2433 ++ CEFBS_None, // XVSUBI_WU_N = 2434 ++ CEFBS_None, // XVSUBWEV_D_W = 2435 ++ CEFBS_None, // XVSUBWEV_D_WU = 2436 ++ CEFBS_None, // XVSUBWEV_H_B = 2437 ++ CEFBS_None, // XVSUBWEV_H_BU = 2438 ++ CEFBS_None, // XVSUBWEV_Q_D = 2439 ++ CEFBS_None, // XVSUBWEV_Q_DU = 2440 ++ CEFBS_None, // XVSUBWEV_W_H = 2441 ++ CEFBS_None, // XVSUBWEV_W_HU = 2442 ++ CEFBS_None, // XVSUBWOD_D_W = 2443 ++ CEFBS_None, // XVSUBWOD_D_WU = 2444 ++ CEFBS_None, // XVSUBWOD_H_B = 2445 ++ CEFBS_None, // XVSUBWOD_H_BU = 2446 ++ CEFBS_None, // XVSUBWOD_Q_D = 2447 ++ CEFBS_None, // XVSUBWOD_Q_DU = 2448 ++ CEFBS_None, // XVSUBWOD_W_H = 2449 ++ CEFBS_None, // XVSUBWOD_W_HU = 2450 ++ CEFBS_None, // XVSUB_B = 2451 ++ CEFBS_None, // XVSUB_D = 2452 ++ CEFBS_None, // XVSUB_H = 2453 ++ CEFBS_None, // XVSUB_Q = 2454 ++ CEFBS_None, // XVSUB_W = 2455 ++ CEFBS_None, // XVXORI_B = 2456 ++ CEFBS_None, // XVXORI_B_N = 2457 ++ CEFBS_None, // XVXOR_V = 2458 ++ CEFBS_None, // ZEXT64_32 = 2459 ++ }; ++ ++ assert(Inst.getOpcode() < 2460); ++ const FeatureBitset &RequiredFeatures = FeatureBitsets[RequiredFeaturesRefs[Inst.getOpcode()]]; ++ FeatureBitset MissingFeatures = ++ (AvailableFeatures & RequiredFeatures) ^ ++ RequiredFeatures; ++ if (MissingFeatures.any()) { ++ std::ostringstream Msg; ++ Msg << "Attempting to emit " << MCII.getName(Inst.getOpcode()).str() ++ << " instruction but the "; ++ for (unsigned i = 0, e = MissingFeatures.size(); i != e; ++i) ++ if (MissingFeatures.test(i)) ++ Msg << SubtargetFeatureNames[i] << " "; ++ Msg << "predicate(s) are not met"; ++ report_fatal_error(Msg.str()); ++ } ++#else ++// Silence unused variable warning on targets that don't use MCII for other purposes (e.g. BPF). ++(void)MCII; ++#endif // NDEBUG ++} ++#endif +diff --git a/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenMCCodeEmitter.inc.d b/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenMCCodeEmitter.inc.d +new file mode 100644 +index 00000000000..b13c7c4fe67 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenMCCodeEmitter.inc.d +@@ -0,0 +1 @@ ++lib/Target/LoongArch/LoongArchGenMCCodeEmitter.inc: /mnt/wangqing/work/llvm-project/llvm/include/llvm/CodeGen/SDNodeProperties.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/CodeGen/ValueTypes.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/Intrinsics.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsAArch64.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsAMDGPU.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsARM.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsBPF.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsHexagon.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsLoongArch.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsMips.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsNVVM.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsPowerPC.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsRISCV.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsSystemZ.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsWebAssembly.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsX86.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsXCore.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/GenericOpcodes.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/GlobalISel/RegisterBank.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/GlobalISel/SelectionDAGCompat.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/GlobalISel/Target.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/Target.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetCallingConv.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetInstrPredicate.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetItinerary.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetPfmCounters.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetSchedule.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetSelectionDAG.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArch32InstrInfo.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchCallingConv.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchInstrFormats.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchInstrInfo.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchInstrInfoF.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchLASXInstrFormats.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchLASXInstrInfo.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchLSXInstrFormats.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchLSXInstrInfo.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchRegisterInfo.td +diff --git a/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenMCPseudoLowering.inc b/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenMCPseudoLowering.inc +new file mode 100644 +index 00000000000..28fe9c991d2 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenMCPseudoLowering.inc +@@ -0,0 +1,881 @@ ++/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\ ++|* *| ++|* Pseudo-instruction MC lowering Source Fragment *| ++|* *| ++|* Automatically generated file, do not edit! *| ++|* *| ++\*===----------------------------------------------------------------------===*/ ++ ++bool LoongArchAsmPrinter:: ++emitPseudoExpansionLowering(MCStreamer &OutStreamer, ++ const MachineInstr *MI) { ++ switch (MI->getOpcode()) { ++ default: return false; ++ case LoongArch::AND_V_D_PSEUDO: { ++ MCInst TmpInst; ++ MCOperand MCOp; ++ TmpInst.setOpcode(LoongArch::VAND_V); ++ // Operand: vd ++ lowerOperand(MI->getOperand(0), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: vj ++ lowerOperand(MI->getOperand(1), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: vk ++ lowerOperand(MI->getOperand(2), MCOp); ++ TmpInst.addOperand(MCOp); ++ EmitToStreamer(OutStreamer, TmpInst); ++ break; ++ } ++ case LoongArch::AND_V_H_PSEUDO: { ++ MCInst TmpInst; ++ MCOperand MCOp; ++ TmpInst.setOpcode(LoongArch::VAND_V); ++ // Operand: vd ++ lowerOperand(MI->getOperand(0), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: vj ++ lowerOperand(MI->getOperand(1), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: vk ++ lowerOperand(MI->getOperand(2), MCOp); ++ TmpInst.addOperand(MCOp); ++ EmitToStreamer(OutStreamer, TmpInst); ++ break; ++ } ++ case LoongArch::AND_V_W_PSEUDO: { ++ MCInst TmpInst; ++ MCOperand MCOp; ++ TmpInst.setOpcode(LoongArch::VAND_V); ++ // Operand: vd ++ lowerOperand(MI->getOperand(0), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: vj ++ lowerOperand(MI->getOperand(1), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: vk ++ lowerOperand(MI->getOperand(2), MCOp); ++ TmpInst.addOperand(MCOp); ++ EmitToStreamer(OutStreamer, TmpInst); ++ break; ++ } ++ case LoongArch::BSEL_B_PSEUDO: { ++ MCInst TmpInst; ++ MCOperand MCOp; ++ TmpInst.setOpcode(LoongArch::VBITSEL_V); ++ // Operand: vd ++ lowerOperand(MI->getOperand(0), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: vj ++ lowerOperand(MI->getOperand(2), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: vk ++ lowerOperand(MI->getOperand(3), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: va ++ lowerOperand(MI->getOperand(1), MCOp); ++ TmpInst.addOperand(MCOp); ++ EmitToStreamer(OutStreamer, TmpInst); ++ break; ++ } ++ case LoongArch::BSEL_D_PSEUDO: { ++ MCInst TmpInst; ++ MCOperand MCOp; ++ TmpInst.setOpcode(LoongArch::VBITSEL_V); ++ // Operand: vd ++ lowerOperand(MI->getOperand(0), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: vj ++ lowerOperand(MI->getOperand(2), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: vk ++ lowerOperand(MI->getOperand(3), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: va ++ lowerOperand(MI->getOperand(1), MCOp); ++ TmpInst.addOperand(MCOp); ++ EmitToStreamer(OutStreamer, TmpInst); ++ break; ++ } ++ case LoongArch::BSEL_FD_PSEUDO: { ++ MCInst TmpInst; ++ MCOperand MCOp; ++ TmpInst.setOpcode(LoongArch::VBITSEL_V); ++ // Operand: vd ++ lowerOperand(MI->getOperand(0), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: vj ++ lowerOperand(MI->getOperand(2), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: vk ++ lowerOperand(MI->getOperand(3), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: va ++ lowerOperand(MI->getOperand(1), MCOp); ++ TmpInst.addOperand(MCOp); ++ EmitToStreamer(OutStreamer, TmpInst); ++ break; ++ } ++ case LoongArch::BSEL_FW_PSEUDO: { ++ MCInst TmpInst; ++ MCOperand MCOp; ++ TmpInst.setOpcode(LoongArch::VBITSEL_V); ++ // Operand: vd ++ lowerOperand(MI->getOperand(0), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: vj ++ lowerOperand(MI->getOperand(2), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: vk ++ lowerOperand(MI->getOperand(3), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: va ++ lowerOperand(MI->getOperand(1), MCOp); ++ TmpInst.addOperand(MCOp); ++ EmitToStreamer(OutStreamer, TmpInst); ++ break; ++ } ++ case LoongArch::BSEL_H_PSEUDO: { ++ MCInst TmpInst; ++ MCOperand MCOp; ++ TmpInst.setOpcode(LoongArch::VBITSEL_V); ++ // Operand: vd ++ lowerOperand(MI->getOperand(0), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: vj ++ lowerOperand(MI->getOperand(2), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: vk ++ lowerOperand(MI->getOperand(3), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: va ++ lowerOperand(MI->getOperand(1), MCOp); ++ TmpInst.addOperand(MCOp); ++ EmitToStreamer(OutStreamer, TmpInst); ++ break; ++ } ++ case LoongArch::BSEL_W_PSEUDO: { ++ MCInst TmpInst; ++ MCOperand MCOp; ++ TmpInst.setOpcode(LoongArch::VBITSEL_V); ++ // Operand: vd ++ lowerOperand(MI->getOperand(0), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: vj ++ lowerOperand(MI->getOperand(2), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: vk ++ lowerOperand(MI->getOperand(3), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: va ++ lowerOperand(MI->getOperand(1), MCOp); ++ TmpInst.addOperand(MCOp); ++ EmitToStreamer(OutStreamer, TmpInst); ++ break; ++ } ++ case LoongArch::JIRLRBRIND: { ++ MCInst TmpInst; ++ MCOperand MCOp; ++ TmpInst.setOpcode(LoongArch::JIRLR); ++ // Operand: rd ++ TmpInst.addOperand(MCOperand::createReg(LoongArch::ZERO)); ++ // Operand: rj ++ lowerOperand(MI->getOperand(0), MCOp); ++ TmpInst.addOperand(MCOp); ++ EmitToStreamer(OutStreamer, TmpInst); ++ break; ++ } ++ case LoongArch::JIRLRPseudo: { ++ MCInst TmpInst; ++ MCOperand MCOp; ++ TmpInst.setOpcode(LoongArch::JIRLR); ++ // Operand: rd ++ TmpInst.addOperand(MCOperand::createReg(LoongArch::RA)); ++ // Operand: rj ++ lowerOperand(MI->getOperand(0), MCOp); ++ TmpInst.addOperand(MCOp); ++ EmitToStreamer(OutStreamer, TmpInst); ++ break; ++ } ++ case LoongArch::NOP: { ++ MCInst TmpInst; ++ MCOperand MCOp; ++ TmpInst.setOpcode(LoongArch::ANDI); ++ // Operand: rd ++ TmpInst.addOperand(MCOperand::createReg(LoongArch::ZERO_64)); ++ // Operand: rj ++ TmpInst.addOperand(MCOperand::createReg(LoongArch::ZERO_64)); ++ // Operand: imm12 ++ TmpInst.addOperand(MCOperand::createImm(0)); ++ EmitToStreamer(OutStreamer, TmpInst); ++ break; ++ } ++ case LoongArch::NOR_V_D_PSEUDO: { ++ MCInst TmpInst; ++ MCOperand MCOp; ++ TmpInst.setOpcode(LoongArch::VNOR_V); ++ // Operand: vd ++ lowerOperand(MI->getOperand(0), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: vj ++ lowerOperand(MI->getOperand(1), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: vk ++ lowerOperand(MI->getOperand(2), MCOp); ++ TmpInst.addOperand(MCOp); ++ EmitToStreamer(OutStreamer, TmpInst); ++ break; ++ } ++ case LoongArch::NOR_V_H_PSEUDO: { ++ MCInst TmpInst; ++ MCOperand MCOp; ++ TmpInst.setOpcode(LoongArch::VNOR_V); ++ // Operand: vd ++ lowerOperand(MI->getOperand(0), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: vj ++ lowerOperand(MI->getOperand(1), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: vk ++ lowerOperand(MI->getOperand(2), MCOp); ++ TmpInst.addOperand(MCOp); ++ EmitToStreamer(OutStreamer, TmpInst); ++ break; ++ } ++ case LoongArch::NOR_V_W_PSEUDO: { ++ MCInst TmpInst; ++ MCOperand MCOp; ++ TmpInst.setOpcode(LoongArch::VNOR_V); ++ // Operand: vd ++ lowerOperand(MI->getOperand(0), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: vj ++ lowerOperand(MI->getOperand(1), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: vk ++ lowerOperand(MI->getOperand(2), MCOp); ++ TmpInst.addOperand(MCOp); ++ EmitToStreamer(OutStreamer, TmpInst); ++ break; ++ } ++ case LoongArch::OR_V_D_PSEUDO: { ++ MCInst TmpInst; ++ MCOperand MCOp; ++ TmpInst.setOpcode(LoongArch::VOR_V); ++ // Operand: vd ++ lowerOperand(MI->getOperand(0), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: vj ++ lowerOperand(MI->getOperand(1), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: vk ++ lowerOperand(MI->getOperand(2), MCOp); ++ TmpInst.addOperand(MCOp); ++ EmitToStreamer(OutStreamer, TmpInst); ++ break; ++ } ++ case LoongArch::OR_V_H_PSEUDO: { ++ MCInst TmpInst; ++ MCOperand MCOp; ++ TmpInst.setOpcode(LoongArch::VOR_V); ++ // Operand: vd ++ lowerOperand(MI->getOperand(0), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: vj ++ lowerOperand(MI->getOperand(1), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: vk ++ lowerOperand(MI->getOperand(2), MCOp); ++ TmpInst.addOperand(MCOp); ++ EmitToStreamer(OutStreamer, TmpInst); ++ break; ++ } ++ case LoongArch::OR_V_W_PSEUDO: { ++ MCInst TmpInst; ++ MCOperand MCOp; ++ TmpInst.setOpcode(LoongArch::VOR_V); ++ // Operand: vd ++ lowerOperand(MI->getOperand(0), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: vj ++ lowerOperand(MI->getOperand(1), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: vk ++ lowerOperand(MI->getOperand(2), MCOp); ++ TmpInst.addOperand(MCOp); ++ EmitToStreamer(OutStreamer, TmpInst); ++ break; ++ } ++ case LoongArch::PseudoTAILIndirect: { ++ MCInst TmpInst; ++ MCOperand MCOp; ++ TmpInst.setOpcode(LoongArch::JIRL); ++ // Operand: rd ++ TmpInst.addOperand(MCOperand::createReg(LoongArch::ZERO_64)); ++ // Operand: rj ++ lowerOperand(MI->getOperand(0), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: offs16 ++ TmpInst.addOperand(MCOperand::createImm(0)); ++ EmitToStreamer(OutStreamer, TmpInst); ++ break; ++ } ++ case LoongArch::TRAP: { ++ MCInst TmpInst; ++ MCOperand MCOp; ++ TmpInst.setOpcode(LoongArch::BREAK); ++ // Operand: Code ++ TmpInst.addOperand(MCOperand::createImm(0)); ++ EmitToStreamer(OutStreamer, TmpInst); ++ break; ++ } ++ case LoongArch::VANDN_D_PSEUDO: { ++ MCInst TmpInst; ++ MCOperand MCOp; ++ TmpInst.setOpcode(LoongArch::VANDN_V); ++ // Operand: vd ++ lowerOperand(MI->getOperand(0), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: vj ++ lowerOperand(MI->getOperand(1), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: vk ++ lowerOperand(MI->getOperand(2), MCOp); ++ TmpInst.addOperand(MCOp); ++ EmitToStreamer(OutStreamer, TmpInst); ++ break; ++ } ++ case LoongArch::VANDN_H_PSEUDO: { ++ MCInst TmpInst; ++ MCOperand MCOp; ++ TmpInst.setOpcode(LoongArch::VANDN_V); ++ // Operand: vd ++ lowerOperand(MI->getOperand(0), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: vj ++ lowerOperand(MI->getOperand(1), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: vk ++ lowerOperand(MI->getOperand(2), MCOp); ++ TmpInst.addOperand(MCOp); ++ EmitToStreamer(OutStreamer, TmpInst); ++ break; ++ } ++ case LoongArch::VANDN_W_PSEUDO: { ++ MCInst TmpInst; ++ MCOperand MCOp; ++ TmpInst.setOpcode(LoongArch::VANDN_V); ++ // Operand: vd ++ lowerOperand(MI->getOperand(0), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: vj ++ lowerOperand(MI->getOperand(1), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: vk ++ lowerOperand(MI->getOperand(2), MCOp); ++ TmpInst.addOperand(MCOp); ++ EmitToStreamer(OutStreamer, TmpInst); ++ break; ++ } ++ case LoongArch::VORN_D_PSEUDO: { ++ MCInst TmpInst; ++ MCOperand MCOp; ++ TmpInst.setOpcode(LoongArch::VORN_V); ++ // Operand: vd ++ lowerOperand(MI->getOperand(0), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: vj ++ lowerOperand(MI->getOperand(1), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: vk ++ lowerOperand(MI->getOperand(2), MCOp); ++ TmpInst.addOperand(MCOp); ++ EmitToStreamer(OutStreamer, TmpInst); ++ break; ++ } ++ case LoongArch::VORN_H_PSEUDO: { ++ MCInst TmpInst; ++ MCOperand MCOp; ++ TmpInst.setOpcode(LoongArch::VORN_V); ++ // Operand: vd ++ lowerOperand(MI->getOperand(0), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: vj ++ lowerOperand(MI->getOperand(1), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: vk ++ lowerOperand(MI->getOperand(2), MCOp); ++ TmpInst.addOperand(MCOp); ++ EmitToStreamer(OutStreamer, TmpInst); ++ break; ++ } ++ case LoongArch::VORN_W_PSEUDO: { ++ MCInst TmpInst; ++ MCOperand MCOp; ++ TmpInst.setOpcode(LoongArch::VORN_V); ++ // Operand: vd ++ lowerOperand(MI->getOperand(0), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: vj ++ lowerOperand(MI->getOperand(1), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: vk ++ lowerOperand(MI->getOperand(2), MCOp); ++ TmpInst.addOperand(MCOp); ++ EmitToStreamer(OutStreamer, TmpInst); ++ break; ++ } ++ case LoongArch::XAND_V_D_PSEUDO: { ++ MCInst TmpInst; ++ MCOperand MCOp; ++ TmpInst.setOpcode(LoongArch::XVAND_V); ++ // Operand: xd ++ lowerOperand(MI->getOperand(0), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: xj ++ lowerOperand(MI->getOperand(1), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: xk ++ lowerOperand(MI->getOperand(2), MCOp); ++ TmpInst.addOperand(MCOp); ++ EmitToStreamer(OutStreamer, TmpInst); ++ break; ++ } ++ case LoongArch::XAND_V_H_PSEUDO: { ++ MCInst TmpInst; ++ MCOperand MCOp; ++ TmpInst.setOpcode(LoongArch::XVAND_V); ++ // Operand: xd ++ lowerOperand(MI->getOperand(0), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: xj ++ lowerOperand(MI->getOperand(1), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: xk ++ lowerOperand(MI->getOperand(2), MCOp); ++ TmpInst.addOperand(MCOp); ++ EmitToStreamer(OutStreamer, TmpInst); ++ break; ++ } ++ case LoongArch::XAND_V_W_PSEUDO: { ++ MCInst TmpInst; ++ MCOperand MCOp; ++ TmpInst.setOpcode(LoongArch::XVAND_V); ++ // Operand: xd ++ lowerOperand(MI->getOperand(0), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: xj ++ lowerOperand(MI->getOperand(1), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: xk ++ lowerOperand(MI->getOperand(2), MCOp); ++ TmpInst.addOperand(MCOp); ++ EmitToStreamer(OutStreamer, TmpInst); ++ break; ++ } ++ case LoongArch::XBSEL_B_PSEUDO: { ++ MCInst TmpInst; ++ MCOperand MCOp; ++ TmpInst.setOpcode(LoongArch::XVBITSEL_V); ++ // Operand: xd ++ lowerOperand(MI->getOperand(0), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: xj ++ lowerOperand(MI->getOperand(2), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: xk ++ lowerOperand(MI->getOperand(3), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: xa ++ lowerOperand(MI->getOperand(1), MCOp); ++ TmpInst.addOperand(MCOp); ++ EmitToStreamer(OutStreamer, TmpInst); ++ break; ++ } ++ case LoongArch::XBSEL_D_PSEUDO: { ++ MCInst TmpInst; ++ MCOperand MCOp; ++ TmpInst.setOpcode(LoongArch::XVBITSEL_V); ++ // Operand: xd ++ lowerOperand(MI->getOperand(0), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: xj ++ lowerOperand(MI->getOperand(2), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: xk ++ lowerOperand(MI->getOperand(3), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: xa ++ lowerOperand(MI->getOperand(1), MCOp); ++ TmpInst.addOperand(MCOp); ++ EmitToStreamer(OutStreamer, TmpInst); ++ break; ++ } ++ case LoongArch::XBSEL_FD_PSEUDO: { ++ MCInst TmpInst; ++ MCOperand MCOp; ++ TmpInst.setOpcode(LoongArch::XVBITSEL_V); ++ // Operand: xd ++ lowerOperand(MI->getOperand(0), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: xj ++ lowerOperand(MI->getOperand(2), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: xk ++ lowerOperand(MI->getOperand(3), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: xa ++ lowerOperand(MI->getOperand(1), MCOp); ++ TmpInst.addOperand(MCOp); ++ EmitToStreamer(OutStreamer, TmpInst); ++ break; ++ } ++ case LoongArch::XBSEL_FW_PSEUDO: { ++ MCInst TmpInst; ++ MCOperand MCOp; ++ TmpInst.setOpcode(LoongArch::XVBITSEL_V); ++ // Operand: xd ++ lowerOperand(MI->getOperand(0), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: xj ++ lowerOperand(MI->getOperand(2), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: xk ++ lowerOperand(MI->getOperand(3), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: xa ++ lowerOperand(MI->getOperand(1), MCOp); ++ TmpInst.addOperand(MCOp); ++ EmitToStreamer(OutStreamer, TmpInst); ++ break; ++ } ++ case LoongArch::XBSEL_H_PSEUDO: { ++ MCInst TmpInst; ++ MCOperand MCOp; ++ TmpInst.setOpcode(LoongArch::XVBITSEL_V); ++ // Operand: xd ++ lowerOperand(MI->getOperand(0), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: xj ++ lowerOperand(MI->getOperand(2), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: xk ++ lowerOperand(MI->getOperand(3), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: xa ++ lowerOperand(MI->getOperand(1), MCOp); ++ TmpInst.addOperand(MCOp); ++ EmitToStreamer(OutStreamer, TmpInst); ++ break; ++ } ++ case LoongArch::XBSEL_W_PSEUDO: { ++ MCInst TmpInst; ++ MCOperand MCOp; ++ TmpInst.setOpcode(LoongArch::XVBITSEL_V); ++ // Operand: xd ++ lowerOperand(MI->getOperand(0), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: xj ++ lowerOperand(MI->getOperand(2), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: xk ++ lowerOperand(MI->getOperand(3), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: xa ++ lowerOperand(MI->getOperand(1), MCOp); ++ TmpInst.addOperand(MCOp); ++ EmitToStreamer(OutStreamer, TmpInst); ++ break; ++ } ++ case LoongArch::XNOR_V_D_PSEUDO: { ++ MCInst TmpInst; ++ MCOperand MCOp; ++ TmpInst.setOpcode(LoongArch::XVNOR_V); ++ // Operand: xd ++ lowerOperand(MI->getOperand(0), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: xj ++ lowerOperand(MI->getOperand(1), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: xk ++ lowerOperand(MI->getOperand(2), MCOp); ++ TmpInst.addOperand(MCOp); ++ EmitToStreamer(OutStreamer, TmpInst); ++ break; ++ } ++ case LoongArch::XNOR_V_H_PSEUDO: { ++ MCInst TmpInst; ++ MCOperand MCOp; ++ TmpInst.setOpcode(LoongArch::XVNOR_V); ++ // Operand: xd ++ lowerOperand(MI->getOperand(0), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: xj ++ lowerOperand(MI->getOperand(1), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: xk ++ lowerOperand(MI->getOperand(2), MCOp); ++ TmpInst.addOperand(MCOp); ++ EmitToStreamer(OutStreamer, TmpInst); ++ break; ++ } ++ case LoongArch::XNOR_V_W_PSEUDO: { ++ MCInst TmpInst; ++ MCOperand MCOp; ++ TmpInst.setOpcode(LoongArch::XVNOR_V); ++ // Operand: xd ++ lowerOperand(MI->getOperand(0), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: xj ++ lowerOperand(MI->getOperand(1), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: xk ++ lowerOperand(MI->getOperand(2), MCOp); ++ TmpInst.addOperand(MCOp); ++ EmitToStreamer(OutStreamer, TmpInst); ++ break; ++ } ++ case LoongArch::XOR_V_D_PSEUDO: { ++ MCInst TmpInst; ++ MCOperand MCOp; ++ TmpInst.setOpcode(LoongArch::VXOR_V); ++ // Operand: vd ++ lowerOperand(MI->getOperand(0), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: vj ++ lowerOperand(MI->getOperand(1), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: vk ++ lowerOperand(MI->getOperand(2), MCOp); ++ TmpInst.addOperand(MCOp); ++ EmitToStreamer(OutStreamer, TmpInst); ++ break; ++ } ++ case LoongArch::XOR_V_H_PSEUDO: { ++ MCInst TmpInst; ++ MCOperand MCOp; ++ TmpInst.setOpcode(LoongArch::VXOR_V); ++ // Operand: vd ++ lowerOperand(MI->getOperand(0), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: vj ++ lowerOperand(MI->getOperand(1), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: vk ++ lowerOperand(MI->getOperand(2), MCOp); ++ TmpInst.addOperand(MCOp); ++ EmitToStreamer(OutStreamer, TmpInst); ++ break; ++ } ++ case LoongArch::XOR_V_W_PSEUDO: { ++ MCInst TmpInst; ++ MCOperand MCOp; ++ TmpInst.setOpcode(LoongArch::VXOR_V); ++ // Operand: vd ++ lowerOperand(MI->getOperand(0), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: vj ++ lowerOperand(MI->getOperand(1), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: vk ++ lowerOperand(MI->getOperand(2), MCOp); ++ TmpInst.addOperand(MCOp); ++ EmitToStreamer(OutStreamer, TmpInst); ++ break; ++ } ++ case LoongArch::XVANDN_D_PSEUDO: { ++ MCInst TmpInst; ++ MCOperand MCOp; ++ TmpInst.setOpcode(LoongArch::XVANDN_V); ++ // Operand: xd ++ lowerOperand(MI->getOperand(0), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: xj ++ lowerOperand(MI->getOperand(1), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: xk ++ lowerOperand(MI->getOperand(2), MCOp); ++ TmpInst.addOperand(MCOp); ++ EmitToStreamer(OutStreamer, TmpInst); ++ break; ++ } ++ case LoongArch::XVANDN_H_PSEUDO: { ++ MCInst TmpInst; ++ MCOperand MCOp; ++ TmpInst.setOpcode(LoongArch::XVANDN_V); ++ // Operand: xd ++ lowerOperand(MI->getOperand(0), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: xj ++ lowerOperand(MI->getOperand(1), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: xk ++ lowerOperand(MI->getOperand(2), MCOp); ++ TmpInst.addOperand(MCOp); ++ EmitToStreamer(OutStreamer, TmpInst); ++ break; ++ } ++ case LoongArch::XVANDN_W_PSEUDO: { ++ MCInst TmpInst; ++ MCOperand MCOp; ++ TmpInst.setOpcode(LoongArch::XVANDN_V); ++ // Operand: xd ++ lowerOperand(MI->getOperand(0), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: xj ++ lowerOperand(MI->getOperand(1), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: xk ++ lowerOperand(MI->getOperand(2), MCOp); ++ TmpInst.addOperand(MCOp); ++ EmitToStreamer(OutStreamer, TmpInst); ++ break; ++ } ++ case LoongArch::XVORN_D_PSEUDO: { ++ MCInst TmpInst; ++ MCOperand MCOp; ++ TmpInst.setOpcode(LoongArch::XVORN_V); ++ // Operand: xd ++ lowerOperand(MI->getOperand(0), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: xj ++ lowerOperand(MI->getOperand(1), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: xk ++ lowerOperand(MI->getOperand(2), MCOp); ++ TmpInst.addOperand(MCOp); ++ EmitToStreamer(OutStreamer, TmpInst); ++ break; ++ } ++ case LoongArch::XVORN_H_PSEUDO: { ++ MCInst TmpInst; ++ MCOperand MCOp; ++ TmpInst.setOpcode(LoongArch::XVORN_V); ++ // Operand: xd ++ lowerOperand(MI->getOperand(0), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: xj ++ lowerOperand(MI->getOperand(1), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: xk ++ lowerOperand(MI->getOperand(2), MCOp); ++ TmpInst.addOperand(MCOp); ++ EmitToStreamer(OutStreamer, TmpInst); ++ break; ++ } ++ case LoongArch::XVORN_W_PSEUDO: { ++ MCInst TmpInst; ++ MCOperand MCOp; ++ TmpInst.setOpcode(LoongArch::XVORN_V); ++ // Operand: xd ++ lowerOperand(MI->getOperand(0), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: xj ++ lowerOperand(MI->getOperand(1), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: xk ++ lowerOperand(MI->getOperand(2), MCOp); ++ TmpInst.addOperand(MCOp); ++ EmitToStreamer(OutStreamer, TmpInst); ++ break; ++ } ++ case LoongArch::XXOR_V_D_PSEUDO: { ++ MCInst TmpInst; ++ MCOperand MCOp; ++ TmpInst.setOpcode(LoongArch::XVXOR_V); ++ // Operand: xd ++ lowerOperand(MI->getOperand(0), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: xj ++ lowerOperand(MI->getOperand(1), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: xk ++ lowerOperand(MI->getOperand(2), MCOp); ++ TmpInst.addOperand(MCOp); ++ EmitToStreamer(OutStreamer, TmpInst); ++ break; ++ } ++ case LoongArch::XXOR_V_H_PSEUDO: { ++ MCInst TmpInst; ++ MCOperand MCOp; ++ TmpInst.setOpcode(LoongArch::XVXOR_V); ++ // Operand: xd ++ lowerOperand(MI->getOperand(0), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: xj ++ lowerOperand(MI->getOperand(1), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: xk ++ lowerOperand(MI->getOperand(2), MCOp); ++ TmpInst.addOperand(MCOp); ++ EmitToStreamer(OutStreamer, TmpInst); ++ break; ++ } ++ case LoongArch::XXOR_V_W_PSEUDO: { ++ MCInst TmpInst; ++ MCOperand MCOp; ++ TmpInst.setOpcode(LoongArch::XVXOR_V); ++ // Operand: xd ++ lowerOperand(MI->getOperand(0), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: xj ++ lowerOperand(MI->getOperand(1), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: xk ++ lowerOperand(MI->getOperand(2), MCOp); ++ TmpInst.addOperand(MCOp); ++ EmitToStreamer(OutStreamer, TmpInst); ++ break; ++ } ++ case LoongArch::X_OR_V_D_PSEUDO: { ++ MCInst TmpInst; ++ MCOperand MCOp; ++ TmpInst.setOpcode(LoongArch::XVOR_V); ++ // Operand: xd ++ lowerOperand(MI->getOperand(0), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: xj ++ lowerOperand(MI->getOperand(1), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: xk ++ lowerOperand(MI->getOperand(2), MCOp); ++ TmpInst.addOperand(MCOp); ++ EmitToStreamer(OutStreamer, TmpInst); ++ break; ++ } ++ case LoongArch::X_OR_V_H_PSEUDO: { ++ MCInst TmpInst; ++ MCOperand MCOp; ++ TmpInst.setOpcode(LoongArch::XVOR_V); ++ // Operand: xd ++ lowerOperand(MI->getOperand(0), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: xj ++ lowerOperand(MI->getOperand(1), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: xk ++ lowerOperand(MI->getOperand(2), MCOp); ++ TmpInst.addOperand(MCOp); ++ EmitToStreamer(OutStreamer, TmpInst); ++ break; ++ } ++ case LoongArch::X_OR_V_W_PSEUDO: { ++ MCInst TmpInst; ++ MCOperand MCOp; ++ TmpInst.setOpcode(LoongArch::XVOR_V); ++ // Operand: xd ++ lowerOperand(MI->getOperand(0), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: xj ++ lowerOperand(MI->getOperand(1), MCOp); ++ TmpInst.addOperand(MCOp); ++ // Operand: xk ++ lowerOperand(MI->getOperand(2), MCOp); ++ TmpInst.addOperand(MCOp); ++ EmitToStreamer(OutStreamer, TmpInst); ++ break; ++ } ++ } ++ return true; ++} ++ +diff --git a/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenMCPseudoLowering.inc.d b/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenMCPseudoLowering.inc.d +new file mode 100644 +index 00000000000..495038d096b +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenMCPseudoLowering.inc.d +@@ -0,0 +1 @@ ++lib/Target/LoongArch/LoongArchGenMCPseudoLowering.inc: /mnt/wangqing/work/llvm-project/llvm/include/llvm/CodeGen/SDNodeProperties.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/CodeGen/ValueTypes.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/Intrinsics.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsAArch64.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsAMDGPU.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsARM.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsBPF.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsHexagon.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsLoongArch.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsMips.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsNVVM.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsPowerPC.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsRISCV.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsSystemZ.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsWebAssembly.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsX86.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsXCore.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/GenericOpcodes.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/GlobalISel/RegisterBank.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/GlobalISel/SelectionDAGCompat.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/GlobalISel/Target.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/Target.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetCallingConv.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetInstrPredicate.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetItinerary.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetPfmCounters.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetSchedule.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetSelectionDAG.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArch32InstrInfo.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchCallingConv.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchInstrFormats.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchInstrInfo.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchInstrInfoF.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchLASXInstrFormats.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchLASXInstrInfo.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchLSXInstrFormats.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchLSXInstrInfo.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchRegisterInfo.td +diff --git a/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenRegisterInfo.inc b/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenRegisterInfo.inc +new file mode 100644 +index 00000000000..085c29bb004 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenRegisterInfo.inc +@@ -0,0 +1,3177 @@ ++/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\ ++|* *| ++|* Target Register Enum Values *| ++|* *| ++|* Automatically generated file, do not edit! *| ++|* *| ++\*===----------------------------------------------------------------------===*/ ++ ++ ++#ifdef GET_REGINFO_ENUM ++#undef GET_REGINFO_ENUM ++ ++namespace llvm { ++ ++class MCRegisterClass; ++extern const MCRegisterClass LoongArchMCRegisterClasses[]; ++ ++namespace LoongArch { ++enum { ++ NoRegister, ++ FP = 1, ++ PC = 2, ++ RA = 3, ++ SP = 4, ++ TP = 5, ++ ZERO = 6, ++ A0 = 7, ++ A1 = 8, ++ A2 = 9, ++ A3 = 10, ++ A4 = 11, ++ A5 = 12, ++ A6 = 13, ++ A7 = 14, ++ F0 = 15, ++ F1 = 16, ++ F2 = 17, ++ F3 = 18, ++ F4 = 19, ++ F5 = 20, ++ F6 = 21, ++ F7 = 22, ++ F8 = 23, ++ F9 = 24, ++ F10 = 25, ++ F11 = 26, ++ F12 = 27, ++ F13 = 28, ++ F14 = 29, ++ F15 = 30, ++ F16 = 31, ++ F17 = 32, ++ F18 = 33, ++ F19 = 34, ++ F20 = 35, ++ F21 = 36, ++ F22 = 37, ++ F23 = 38, ++ F24 = 39, ++ F25 = 40, ++ F26 = 41, ++ F27 = 42, ++ F28 = 43, ++ F29 = 44, ++ F30 = 45, ++ F31 = 46, ++ FCC0 = 47, ++ FCC1 = 48, ++ FCC2 = 49, ++ FCC3 = 50, ++ FCC4 = 51, ++ FCC5 = 52, ++ FCC6 = 53, ++ FCC7 = 54, ++ FCSR0 = 55, ++ FCSR1 = 56, ++ FCSR2 = 57, ++ FCSR3 = 58, ++ FP_64 = 59, ++ RA_64 = 60, ++ S0 = 61, ++ S1 = 62, ++ S2 = 63, ++ S3 = 64, ++ S4 = 65, ++ S5 = 66, ++ S6 = 67, ++ S7 = 68, ++ S8 = 69, ++ SP_64 = 70, ++ T0 = 71, ++ T1 = 72, ++ T2 = 73, ++ T3 = 74, ++ T4 = 75, ++ T5 = 76, ++ T6 = 77, ++ T7 = 78, ++ T8 = 79, ++ T9 = 80, ++ TP_64 = 81, ++ V0 = 82, ++ V1 = 83, ++ VR0 = 84, ++ VR1 = 85, ++ VR2 = 86, ++ VR3 = 87, ++ VR4 = 88, ++ VR5 = 89, ++ VR6 = 90, ++ VR7 = 91, ++ VR8 = 92, ++ VR9 = 93, ++ VR10 = 94, ++ VR11 = 95, ++ VR12 = 96, ++ VR13 = 97, ++ VR14 = 98, ++ VR15 = 99, ++ VR16 = 100, ++ VR17 = 101, ++ VR18 = 102, ++ VR19 = 103, ++ VR20 = 104, ++ VR21 = 105, ++ VR22 = 106, ++ VR23 = 107, ++ VR24 = 108, ++ VR25 = 109, ++ VR26 = 110, ++ VR27 = 111, ++ VR28 = 112, ++ VR29 = 113, ++ VR30 = 114, ++ VR31 = 115, ++ XR0 = 116, ++ XR1 = 117, ++ XR2 = 118, ++ XR3 = 119, ++ XR4 = 120, ++ XR5 = 121, ++ XR6 = 122, ++ XR7 = 123, ++ XR8 = 124, ++ XR9 = 125, ++ XR10 = 126, ++ XR11 = 127, ++ XR12 = 128, ++ XR13 = 129, ++ XR14 = 130, ++ XR15 = 131, ++ XR16 = 132, ++ XR17 = 133, ++ XR18 = 134, ++ XR19 = 135, ++ XR20 = 136, ++ XR21 = 137, ++ XR22 = 138, ++ XR23 = 139, ++ XR24 = 140, ++ XR25 = 141, ++ XR26 = 142, ++ XR27 = 143, ++ XR28 = 144, ++ XR29 = 145, ++ XR30 = 146, ++ XR31 = 147, ++ ZERO_64 = 148, ++ A0_64 = 149, ++ A1_64 = 150, ++ A2_64 = 151, ++ A3_64 = 152, ++ A4_64 = 153, ++ A5_64 = 154, ++ A6_64 = 155, ++ A7_64 = 156, ++ F0_64 = 157, ++ F1_64 = 158, ++ F2_64 = 159, ++ F3_64 = 160, ++ F4_64 = 161, ++ F5_64 = 162, ++ F6_64 = 163, ++ F7_64 = 164, ++ F8_64 = 165, ++ F9_64 = 166, ++ F10_64 = 167, ++ F11_64 = 168, ++ F12_64 = 169, ++ F13_64 = 170, ++ F14_64 = 171, ++ F15_64 = 172, ++ F16_64 = 173, ++ F17_64 = 174, ++ F18_64 = 175, ++ F19_64 = 176, ++ F20_64 = 177, ++ F21_64 = 178, ++ F22_64 = 179, ++ F23_64 = 180, ++ F24_64 = 181, ++ F25_64 = 182, ++ F26_64 = 183, ++ F27_64 = 184, ++ F28_64 = 185, ++ F29_64 = 186, ++ F30_64 = 187, ++ F31_64 = 188, ++ S0_64 = 189, ++ S1_64 = 190, ++ S2_64 = 191, ++ S3_64 = 192, ++ S4_64 = 193, ++ S5_64 = 194, ++ S6_64 = 195, ++ S7_64 = 196, ++ S8_64 = 197, ++ T0_64 = 198, ++ T1_64 = 199, ++ T2_64 = 200, ++ T3_64 = 201, ++ T4_64 = 202, ++ T5_64 = 203, ++ T6_64 = 204, ++ T7_64 = 205, ++ T8_64 = 206, ++ T9_64 = 207, ++ V0_64 = 208, ++ V1_64 = 209, ++ NUM_TARGET_REGS // 210 ++}; ++} // end namespace LoongArch ++ ++// Register classes ++ ++namespace LoongArch { ++enum { ++ FCSRRegClassID = 0, ++ FCSR_with_sub_fcsr1RegClassID = 1, ++ GPR32RegClassID = 2, ++ FCFRRegClassID = 3, ++ SP32RegClassID = 4, ++ TP32RegClassID = 5, ++ FGR32RegClassID = 6, ++ FGR64RegClassID = 7, ++ GPR64RegClassID = 8, ++ GPRTC64RegClassID = 9, ++ SP64RegClassID = 10, ++ TP64RegClassID = 11, ++ LSX128BRegClassID = 12, ++ LSX128DRegClassID = 13, ++ LSX128HRegClassID = 14, ++ LSX128WRegClassID = 15, ++ LASX256BRegClassID = 16, ++ LASX256DRegClassID = 17, ++ LASX256HRegClassID = 18, ++ LASX256WRegClassID = 19, ++ ++ }; ++} // end namespace LoongArch ++ ++ ++// Subregister indices ++ ++namespace LoongArch { ++enum { ++ NoSubRegister, ++ sub_32, // 1 ++ sub_64, // 2 ++ sub_128, // 3 ++ sub_fcsr1, // 4 ++ sub_fcsr2, // 5 ++ sub_fcsr3, // 6 ++ sub_hi, // 7 ++ sub_lo, // 8 ++ NUM_TARGET_SUBREGS ++}; ++} // end namespace LoongArch ++ ++} // end namespace llvm ++ ++#endif // GET_REGINFO_ENUM ++ ++/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\ ++|* *| ++|* MC Register Information *| ++|* *| ++|* Automatically generated file, do not edit! *| ++|* *| ++\*===----------------------------------------------------------------------===*/ ++ ++ ++#ifdef GET_REGINFO_MC_DESC ++#undef GET_REGINFO_MC_DESC ++ ++namespace llvm { ++ ++extern const MCPhysReg LoongArchRegDiffLists[] = { ++ /* 0 */ 1, 1, 1, 0, ++ /* 4 */ 54, 1, 1, 0, ++ /* 8 */ 3, 0, ++ /* 10 */ 142, 65463, 32, 0, ++ /* 14 */ 57, 0, ++ /* 16 */ 58, 0, ++ /* 18 */ 75, 67, 59, 0, ++ /* 22 */ 66, 0, ++ /* 24 */ 76, 0, ++ /* 26 */ 127, 0, ++ /* 28 */ 128, 0, ++ /* 30 */ 142, 0, ++ /* 32 */ 65334, 0, ++ /* 34 */ 65378, 0, ++ /* 36 */ 65393, 0, ++ /* 38 */ 65504, 73, 65394, 0, ++ /* 42 */ 65477, 65394, 0, ++ /* 45 */ 65404, 0, ++ /* 47 */ 65408, 0, ++ /* 49 */ 65409, 0, ++ /* 51 */ 65418, 0, ++ /* 53 */ 65434, 0, ++ /* 55 */ 65460, 0, ++ /* 57 */ 65461, 0, ++ /* 59 */ 65466, 0, ++ /* 61 */ 65470, 0, ++ /* 63 */ 65478, 0, ++ /* 65 */ 65479, 0, ++ /* 67 */ 65531, 0, ++ /* 69 */ 65532, 0, ++ /* 71 */ 65533, 0, ++ /* 73 */ 65534, 0, ++ /* 75 */ 65535, 0, ++}; ++ ++extern const LaneBitmask LoongArchLaneMaskLists[] = { ++ /* 0 */ LaneBitmask(0x00000000), LaneBitmask::getAll(), ++ /* 2 */ LaneBitmask(0x00000001), LaneBitmask::getAll(), ++ /* 4 */ LaneBitmask(0x00000002), LaneBitmask(0x00000004), LaneBitmask(0x00000008), LaneBitmask::getAll(), ++ /* 8 */ LaneBitmask(0x00000020), LaneBitmask::getAll(), ++}; ++ ++extern const uint16_t LoongArchSubRegIdxLists[] = { ++ /* 0 */ 2, 1, 0, ++ /* 3 */ 4, 5, 6, 0, ++ /* 7 */ 3, 2, 8, 0, ++}; ++ ++extern const MCRegisterInfo::SubRegCoveredBits LoongArchSubRegIdxRanges[] = { ++ { 65535, 65535 }, ++ { 0, 32 }, // sub_32 ++ { 0, 64 }, // sub_64 ++ { 0, 128 }, // sub_128 ++ { 0, 5 }, // sub_fcsr1 ++ { 16, 13 }, // sub_fcsr2 ++ { 8, 2 }, // sub_fcsr3 ++ { 32, 32 }, // sub_hi ++ { 0, 32 }, // sub_lo ++}; ++ ++extern const char LoongArchRegStrings[] = { ++ /* 0 */ 'F', '1', '0', 0, ++ /* 4 */ 'V', 'R', '1', '0', 0, ++ /* 9 */ 'X', 'R', '1', '0', 0, ++ /* 14 */ 'F', '2', '0', 0, ++ /* 18 */ 'V', 'R', '2', '0', 0, ++ /* 23 */ 'X', 'R', '2', '0', 0, ++ /* 28 */ 'F', '3', '0', 0, ++ /* 32 */ 'V', 'R', '3', '0', 0, ++ /* 37 */ 'X', 'R', '3', '0', 0, ++ /* 42 */ 'A', '0', 0, ++ /* 45 */ 'F', 'C', 'C', '0', 0, ++ /* 50 */ 'F', '0', 0, ++ /* 53 */ 'F', 'C', 'S', 'R', '0', 0, ++ /* 59 */ 'V', 'R', '0', 0, ++ /* 63 */ 'X', 'R', '0', 0, ++ /* 67 */ 'S', '0', 0, ++ /* 70 */ 'T', '0', 0, ++ /* 73 */ 'V', '0', 0, ++ /* 76 */ 'F', '1', '1', 0, ++ /* 80 */ 'V', 'R', '1', '1', 0, ++ /* 85 */ 'X', 'R', '1', '1', 0, ++ /* 90 */ 'F', '2', '1', 0, ++ /* 94 */ 'V', 'R', '2', '1', 0, ++ /* 99 */ 'X', 'R', '2', '1', 0, ++ /* 104 */ 'F', '3', '1', 0, ++ /* 108 */ 'V', 'R', '3', '1', 0, ++ /* 113 */ 'X', 'R', '3', '1', 0, ++ /* 118 */ 'A', '1', 0, ++ /* 121 */ 'F', 'C', 'C', '1', 0, ++ /* 126 */ 'F', '1', 0, ++ /* 129 */ 'F', 'C', 'S', 'R', '1', 0, ++ /* 135 */ 'V', 'R', '1', 0, ++ /* 139 */ 'X', 'R', '1', 0, ++ /* 143 */ 'S', '1', 0, ++ /* 146 */ 'T', '1', 0, ++ /* 149 */ 'V', '1', 0, ++ /* 152 */ 'F', '1', '2', 0, ++ /* 156 */ 'V', 'R', '1', '2', 0, ++ /* 161 */ 'X', 'R', '1', '2', 0, ++ /* 166 */ 'F', '2', '2', 0, ++ /* 170 */ 'V', 'R', '2', '2', 0, ++ /* 175 */ 'X', 'R', '2', '2', 0, ++ /* 180 */ 'A', '2', 0, ++ /* 183 */ 'F', 'C', 'C', '2', 0, ++ /* 188 */ 'F', '2', 0, ++ /* 191 */ 'F', 'C', 'S', 'R', '2', 0, ++ /* 197 */ 'V', 'R', '2', 0, ++ /* 201 */ 'X', 'R', '2', 0, ++ /* 205 */ 'S', '2', 0, ++ /* 208 */ 'T', '2', 0, ++ /* 211 */ 'F', '1', '3', 0, ++ /* 215 */ 'V', 'R', '1', '3', 0, ++ /* 220 */ 'X', 'R', '1', '3', 0, ++ /* 225 */ 'F', '2', '3', 0, ++ /* 229 */ 'V', 'R', '2', '3', 0, ++ /* 234 */ 'X', 'R', '2', '3', 0, ++ /* 239 */ 'A', '3', 0, ++ /* 242 */ 'F', 'C', 'C', '3', 0, ++ /* 247 */ 'F', '3', 0, ++ /* 250 */ 'F', 'C', 'S', 'R', '3', 0, ++ /* 256 */ 'V', 'R', '3', 0, ++ /* 260 */ 'X', 'R', '3', 0, ++ /* 264 */ 'S', '3', 0, ++ /* 267 */ 'T', '3', 0, ++ /* 270 */ 'F', '1', '4', 0, ++ /* 274 */ 'V', 'R', '1', '4', 0, ++ /* 279 */ 'X', 'R', '1', '4', 0, ++ /* 284 */ 'F', '2', '4', 0, ++ /* 288 */ 'V', 'R', '2', '4', 0, ++ /* 293 */ 'X', 'R', '2', '4', 0, ++ /* 298 */ 'F', '1', '0', '_', '6', '4', 0, ++ /* 305 */ 'F', '2', '0', '_', '6', '4', 0, ++ /* 312 */ 'F', '3', '0', '_', '6', '4', 0, ++ /* 319 */ 'A', '0', '_', '6', '4', 0, ++ /* 325 */ 'F', '0', '_', '6', '4', 0, ++ /* 331 */ 'S', '0', '_', '6', '4', 0, ++ /* 337 */ 'T', '0', '_', '6', '4', 0, ++ /* 343 */ 'V', '0', '_', '6', '4', 0, ++ /* 349 */ 'F', '1', '1', '_', '6', '4', 0, ++ /* 356 */ 'F', '2', '1', '_', '6', '4', 0, ++ /* 363 */ 'F', '3', '1', '_', '6', '4', 0, ++ /* 370 */ 'A', '1', '_', '6', '4', 0, ++ /* 376 */ 'F', '1', '_', '6', '4', 0, ++ /* 382 */ 'S', '1', '_', '6', '4', 0, ++ /* 388 */ 'T', '1', '_', '6', '4', 0, ++ /* 394 */ 'V', '1', '_', '6', '4', 0, ++ /* 400 */ 'F', '1', '2', '_', '6', '4', 0, ++ /* 407 */ 'F', '2', '2', '_', '6', '4', 0, ++ /* 414 */ 'A', '2', '_', '6', '4', 0, ++ /* 420 */ 'F', '2', '_', '6', '4', 0, ++ /* 426 */ 'S', '2', '_', '6', '4', 0, ++ /* 432 */ 'T', '2', '_', '6', '4', 0, ++ /* 438 */ 'F', '1', '3', '_', '6', '4', 0, ++ /* 445 */ 'F', '2', '3', '_', '6', '4', 0, ++ /* 452 */ 'A', '3', '_', '6', '4', 0, ++ /* 458 */ 'F', '3', '_', '6', '4', 0, ++ /* 464 */ 'S', '3', '_', '6', '4', 0, ++ /* 470 */ 'T', '3', '_', '6', '4', 0, ++ /* 476 */ 'F', '1', '4', '_', '6', '4', 0, ++ /* 483 */ 'F', '2', '4', '_', '6', '4', 0, ++ /* 490 */ 'A', '4', '_', '6', '4', 0, ++ /* 496 */ 'F', '4', '_', '6', '4', 0, ++ /* 502 */ 'S', '4', '_', '6', '4', 0, ++ /* 508 */ 'T', '4', '_', '6', '4', 0, ++ /* 514 */ 'F', '1', '5', '_', '6', '4', 0, ++ /* 521 */ 'F', '2', '5', '_', '6', '4', 0, ++ /* 528 */ 'A', '5', '_', '6', '4', 0, ++ /* 534 */ 'F', '5', '_', '6', '4', 0, ++ /* 540 */ 'S', '5', '_', '6', '4', 0, ++ /* 546 */ 'T', '5', '_', '6', '4', 0, ++ /* 552 */ 'F', '1', '6', '_', '6', '4', 0, ++ /* 559 */ 'F', '2', '6', '_', '6', '4', 0, ++ /* 566 */ 'A', '6', '_', '6', '4', 0, ++ /* 572 */ 'F', '6', '_', '6', '4', 0, ++ /* 578 */ 'S', '6', '_', '6', '4', 0, ++ /* 584 */ 'T', '6', '_', '6', '4', 0, ++ /* 590 */ 'F', '1', '7', '_', '6', '4', 0, ++ /* 597 */ 'F', '2', '7', '_', '6', '4', 0, ++ /* 604 */ 'A', '7', '_', '6', '4', 0, ++ /* 610 */ 'F', '7', '_', '6', '4', 0, ++ /* 616 */ 'S', '7', '_', '6', '4', 0, ++ /* 622 */ 'T', '7', '_', '6', '4', 0, ++ /* 628 */ 'F', '1', '8', '_', '6', '4', 0, ++ /* 635 */ 'F', '2', '8', '_', '6', '4', 0, ++ /* 642 */ 'F', '8', '_', '6', '4', 0, ++ /* 648 */ 'S', '8', '_', '6', '4', 0, ++ /* 654 */ 'T', '8', '_', '6', '4', 0, ++ /* 660 */ 'F', '1', '9', '_', '6', '4', 0, ++ /* 667 */ 'F', '2', '9', '_', '6', '4', 0, ++ /* 674 */ 'F', '9', '_', '6', '4', 0, ++ /* 680 */ 'T', '9', '_', '6', '4', 0, ++ /* 686 */ 'R', 'A', '_', '6', '4', 0, ++ /* 692 */ 'Z', 'E', 'R', 'O', '_', '6', '4', 0, ++ /* 700 */ 'F', 'P', '_', '6', '4', 0, ++ /* 706 */ 'S', 'P', '_', '6', '4', 0, ++ /* 712 */ 'T', 'P', '_', '6', '4', 0, ++ /* 718 */ 'A', '4', 0, ++ /* 721 */ 'F', 'C', 'C', '4', 0, ++ /* 726 */ 'F', '4', 0, ++ /* 729 */ 'V', 'R', '4', 0, ++ /* 733 */ 'X', 'R', '4', 0, ++ /* 737 */ 'S', '4', 0, ++ /* 740 */ 'T', '4', 0, ++ /* 743 */ 'F', '1', '5', 0, ++ /* 747 */ 'V', 'R', '1', '5', 0, ++ /* 752 */ 'X', 'R', '1', '5', 0, ++ /* 757 */ 'F', '2', '5', 0, ++ /* 761 */ 'V', 'R', '2', '5', 0, ++ /* 766 */ 'X', 'R', '2', '5', 0, ++ /* 771 */ 'A', '5', 0, ++ /* 774 */ 'F', 'C', 'C', '5', 0, ++ /* 779 */ 'F', '5', 0, ++ /* 782 */ 'V', 'R', '5', 0, ++ /* 786 */ 'X', 'R', '5', 0, ++ /* 790 */ 'S', '5', 0, ++ /* 793 */ 'T', '5', 0, ++ /* 796 */ 'F', '1', '6', 0, ++ /* 800 */ 'V', 'R', '1', '6', 0, ++ /* 805 */ 'X', 'R', '1', '6', 0, ++ /* 810 */ 'F', '2', '6', 0, ++ /* 814 */ 'V', 'R', '2', '6', 0, ++ /* 819 */ 'X', 'R', '2', '6', 0, ++ /* 824 */ 'A', '6', 0, ++ /* 827 */ 'F', 'C', 'C', '6', 0, ++ /* 832 */ 'F', '6', 0, ++ /* 835 */ 'V', 'R', '6', 0, ++ /* 839 */ 'X', 'R', '6', 0, ++ /* 843 */ 'S', '6', 0, ++ /* 846 */ 'T', '6', 0, ++ /* 849 */ 'F', '1', '7', 0, ++ /* 853 */ 'V', 'R', '1', '7', 0, ++ /* 858 */ 'X', 'R', '1', '7', 0, ++ /* 863 */ 'F', '2', '7', 0, ++ /* 867 */ 'V', 'R', '2', '7', 0, ++ /* 872 */ 'X', 'R', '2', '7', 0, ++ /* 877 */ 'A', '7', 0, ++ /* 880 */ 'F', 'C', 'C', '7', 0, ++ /* 885 */ 'F', '7', 0, ++ /* 888 */ 'V', 'R', '7', 0, ++ /* 892 */ 'X', 'R', '7', 0, ++ /* 896 */ 'S', '7', 0, ++ /* 899 */ 'T', '7', 0, ++ /* 902 */ 'F', '1', '8', 0, ++ /* 906 */ 'V', 'R', '1', '8', 0, ++ /* 911 */ 'X', 'R', '1', '8', 0, ++ /* 916 */ 'F', '2', '8', 0, ++ /* 920 */ 'V', 'R', '2', '8', 0, ++ /* 925 */ 'X', 'R', '2', '8', 0, ++ /* 930 */ 'F', '8', 0, ++ /* 933 */ 'V', 'R', '8', 0, ++ /* 937 */ 'X', 'R', '8', 0, ++ /* 941 */ 'S', '8', 0, ++ /* 944 */ 'T', '8', 0, ++ /* 947 */ 'F', '1', '9', 0, ++ /* 951 */ 'V', 'R', '1', '9', 0, ++ /* 956 */ 'X', 'R', '1', '9', 0, ++ /* 961 */ 'F', '2', '9', 0, ++ /* 965 */ 'V', 'R', '2', '9', 0, ++ /* 970 */ 'X', 'R', '2', '9', 0, ++ /* 975 */ 'F', '9', 0, ++ /* 978 */ 'V', 'R', '9', 0, ++ /* 982 */ 'X', 'R', '9', 0, ++ /* 986 */ 'T', '9', 0, ++ /* 989 */ 'R', 'A', 0, ++ /* 992 */ 'P', 'C', 0, ++ /* 995 */ 'Z', 'E', 'R', 'O', 0, ++ /* 1000 */ 'F', 'P', 0, ++ /* 1003 */ 'S', 'P', 0, ++ /* 1006 */ 'T', 'P', 0, ++}; ++ ++extern const MCRegisterDesc LoongArchRegDesc[] = { // Descriptors ++ { 3, 0, 0, 0, 0, 0 }, ++ { 1000, 3, 16, 2, 1201, 0 }, ++ { 992, 3, 3, 2, 1201, 0 }, ++ { 989, 3, 14, 2, 1201, 0 }, ++ { 1003, 3, 22, 2, 1201, 0 }, ++ { 1006, 3, 24, 2, 1201, 0 }, ++ { 995, 3, 30, 2, 1201, 0 }, ++ { 42, 3, 18, 2, 1201, 0 }, ++ { 118, 3, 18, 2, 1201, 0 }, ++ { 180, 3, 30, 2, 1201, 0 }, ++ { 239, 3, 30, 2, 1201, 0 }, ++ { 718, 3, 30, 2, 1201, 0 }, ++ { 771, 3, 30, 2, 1201, 0 }, ++ { 824, 3, 30, 2, 1201, 0 }, ++ { 877, 3, 30, 2, 1201, 0 }, ++ { 50, 3, 10, 2, 1201, 0 }, ++ { 126, 3, 10, 2, 1201, 0 }, ++ { 188, 3, 10, 2, 1201, 0 }, ++ { 247, 3, 10, 2, 1201, 0 }, ++ { 726, 3, 10, 2, 1201, 0 }, ++ { 779, 3, 10, 2, 1201, 0 }, ++ { 832, 3, 10, 2, 1201, 0 }, ++ { 885, 3, 10, 2, 1201, 0 }, ++ { 930, 3, 10, 2, 1201, 0 }, ++ { 975, 3, 10, 2, 1201, 0 }, ++ { 0, 3, 10, 2, 1201, 0 }, ++ { 76, 3, 10, 2, 1201, 0 }, ++ { 152, 3, 10, 2, 1201, 0 }, ++ { 211, 3, 10, 2, 1201, 0 }, ++ { 270, 3, 10, 2, 1201, 0 }, ++ { 743, 3, 10, 2, 1201, 0 }, ++ { 796, 3, 10, 2, 1201, 0 }, ++ { 849, 3, 10, 2, 1201, 0 }, ++ { 902, 3, 10, 2, 1201, 0 }, ++ { 947, 3, 10, 2, 1201, 0 }, ++ { 14, 3, 10, 2, 1201, 0 }, ++ { 90, 3, 10, 2, 1201, 0 }, ++ { 166, 3, 10, 2, 1201, 0 }, ++ { 225, 3, 10, 2, 1201, 0 }, ++ { 284, 3, 10, 2, 1201, 0 }, ++ { 757, 3, 10, 2, 1201, 0 }, ++ { 810, 3, 10, 2, 1201, 0 }, ++ { 863, 3, 10, 2, 1201, 0 }, ++ { 916, 3, 10, 2, 1201, 0 }, ++ { 961, 3, 10, 2, 1201, 0 }, ++ { 28, 3, 10, 2, 1201, 0 }, ++ { 104, 3, 10, 2, 1201, 0 }, ++ { 45, 3, 3, 2, 1201, 0 }, ++ { 121, 3, 3, 2, 1201, 0 }, ++ { 183, 3, 3, 2, 1201, 0 }, ++ { 242, 3, 3, 2, 1201, 0 }, ++ { 721, 3, 3, 2, 1201, 0 }, ++ { 774, 3, 3, 2, 1201, 0 }, ++ { 827, 3, 3, 2, 1201, 0 }, ++ { 880, 3, 3, 2, 1201, 0 }, ++ { 53, 0, 3, 3, 64, 4 }, ++ { 129, 3, 75, 2, 1169, 0 }, ++ { 191, 3, 73, 2, 1169, 0 }, ++ { 250, 3, 71, 2, 1169, 0 }, ++ { 700, 63, 3, 1, 818, 2 }, ++ { 686, 65, 3, 1, 818, 2 }, ++ { 67, 3, 28, 2, 1105, 0 }, ++ { 143, 3, 28, 2, 1105, 0 }, ++ { 205, 3, 28, 2, 1105, 0 }, ++ { 264, 3, 28, 2, 1105, 0 }, ++ { 737, 3, 28, 2, 1105, 0 }, ++ { 790, 3, 28, 2, 1105, 0 }, ++ { 843, 3, 28, 2, 1105, 0 }, ++ { 896, 3, 28, 2, 1105, 0 }, ++ { 941, 3, 28, 2, 1105, 0 }, ++ { 706, 61, 3, 1, 128, 2 }, ++ { 70, 3, 26, 2, 1073, 0 }, ++ { 146, 3, 26, 2, 1073, 0 }, ++ { 208, 3, 26, 2, 1073, 0 }, ++ { 267, 3, 26, 2, 1073, 0 }, ++ { 740, 3, 26, 2, 1073, 0 }, ++ { 793, 3, 26, 2, 1073, 0 }, ++ { 846, 3, 26, 2, 1073, 0 }, ++ { 899, 3, 26, 2, 1073, 0 }, ++ { 944, 3, 26, 2, 1073, 0 }, ++ { 986, 3, 26, 2, 1073, 0 }, ++ { 712, 55, 3, 1, 546, 2 }, ++ { 73, 57, 3, 1, 881, 2 }, ++ { 149, 57, 3, 1, 881, 2 }, ++ { 59, 39, 12, 8, 945, 8 }, ++ { 135, 39, 12, 8, 945, 8 }, ++ { 197, 39, 12, 8, 945, 8 }, ++ { 256, 39, 12, 8, 945, 8 }, ++ { 729, 39, 12, 8, 945, 8 }, ++ { 782, 39, 12, 8, 945, 8 }, ++ { 835, 39, 12, 8, 945, 8 }, ++ { 888, 39, 12, 8, 945, 8 }, ++ { 933, 39, 12, 8, 945, 8 }, ++ { 978, 39, 12, 8, 945, 8 }, ++ { 4, 39, 12, 8, 945, 8 }, ++ { 80, 39, 12, 8, 945, 8 }, ++ { 156, 39, 12, 8, 945, 8 }, ++ { 215, 39, 12, 8, 945, 8 }, ++ { 274, 39, 12, 8, 945, 8 }, ++ { 747, 39, 12, 8, 945, 8 }, ++ { 800, 39, 12, 8, 945, 8 }, ++ { 853, 39, 12, 8, 945, 8 }, ++ { 906, 39, 12, 8, 945, 8 }, ++ { 951, 39, 12, 8, 945, 8 }, ++ { 18, 39, 12, 8, 945, 8 }, ++ { 94, 39, 12, 8, 945, 8 }, ++ { 170, 39, 12, 8, 945, 8 }, ++ { 229, 39, 12, 8, 945, 8 }, ++ { 288, 39, 12, 8, 945, 8 }, ++ { 761, 39, 12, 8, 945, 8 }, ++ { 814, 39, 12, 8, 945, 8 }, ++ { 867, 39, 12, 8, 945, 8 }, ++ { 920, 39, 12, 8, 945, 8 }, ++ { 965, 39, 12, 8, 945, 8 }, ++ { 32, 39, 12, 8, 945, 8 }, ++ { 108, 39, 12, 8, 945, 8 }, ++ { 63, 38, 3, 7, 849, 8 }, ++ { 139, 38, 3, 7, 849, 8 }, ++ { 201, 38, 3, 7, 849, 8 }, ++ { 260, 38, 3, 7, 849, 8 }, ++ { 733, 38, 3, 7, 849, 8 }, ++ { 786, 38, 3, 7, 849, 8 }, ++ { 839, 38, 3, 7, 849, 8 }, ++ { 892, 38, 3, 7, 849, 8 }, ++ { 937, 38, 3, 7, 849, 8 }, ++ { 982, 38, 3, 7, 849, 8 }, ++ { 9, 38, 3, 7, 849, 8 }, ++ { 85, 38, 3, 7, 849, 8 }, ++ { 161, 38, 3, 7, 849, 8 }, ++ { 220, 38, 3, 7, 849, 8 }, ++ { 279, 38, 3, 7, 849, 8 }, ++ { 752, 38, 3, 7, 849, 8 }, ++ { 805, 38, 3, 7, 849, 8 }, ++ { 858, 38, 3, 7, 849, 8 }, ++ { 911, 38, 3, 7, 849, 8 }, ++ { 956, 38, 3, 7, 849, 8 }, ++ { 23, 38, 3, 7, 849, 8 }, ++ { 99, 38, 3, 7, 849, 8 }, ++ { 175, 38, 3, 7, 849, 8 }, ++ { 234, 38, 3, 7, 849, 8 }, ++ { 293, 38, 3, 7, 849, 8 }, ++ { 766, 38, 3, 7, 849, 8 }, ++ { 819, 38, 3, 7, 849, 8 }, ++ { 872, 38, 3, 7, 849, 8 }, ++ { 925, 38, 3, 7, 849, 8 }, ++ { 970, 38, 3, 7, 849, 8 }, ++ { 37, 38, 3, 7, 849, 8 }, ++ { 113, 38, 3, 7, 849, 8 }, ++ { 692, 40, 3, 1, 577, 2 }, ++ { 319, 40, 20, 1, 577, 2 }, ++ { 370, 40, 20, 1, 577, 2 }, ++ { 414, 40, 3, 1, 577, 2 }, ++ { 452, 40, 3, 1, 577, 2 }, ++ { 490, 40, 3, 1, 577, 2 }, ++ { 528, 40, 3, 1, 577, 2 }, ++ { 566, 40, 3, 1, 577, 2 }, ++ { 604, 40, 3, 1, 577, 2 }, ++ { 325, 40, 11, 9, 577, 8 }, ++ { 376, 40, 11, 9, 577, 8 }, ++ { 420, 40, 11, 9, 577, 8 }, ++ { 458, 40, 11, 9, 577, 8 }, ++ { 496, 40, 11, 9, 577, 8 }, ++ { 534, 40, 11, 9, 577, 8 }, ++ { 572, 40, 11, 9, 577, 8 }, ++ { 610, 40, 11, 9, 577, 8 }, ++ { 642, 40, 11, 9, 577, 8 }, ++ { 674, 40, 11, 9, 577, 8 }, ++ { 298, 40, 11, 9, 577, 8 }, ++ { 349, 40, 11, 9, 577, 8 }, ++ { 400, 40, 11, 9, 577, 8 }, ++ { 438, 40, 11, 9, 577, 8 }, ++ { 476, 40, 11, 9, 577, 8 }, ++ { 514, 40, 11, 9, 577, 8 }, ++ { 552, 40, 11, 9, 577, 8 }, ++ { 590, 40, 11, 9, 577, 8 }, ++ { 628, 40, 11, 9, 577, 8 }, ++ { 660, 40, 11, 9, 577, 8 }, ++ { 305, 40, 11, 9, 577, 8 }, ++ { 356, 40, 11, 9, 577, 8 }, ++ { 407, 40, 11, 9, 577, 8 }, ++ { 445, 40, 11, 9, 577, 8 }, ++ { 483, 40, 11, 9, 577, 8 }, ++ { 521, 40, 11, 9, 577, 8 }, ++ { 559, 40, 11, 9, 577, 8 }, ++ { 597, 40, 11, 9, 577, 8 }, ++ { 635, 40, 11, 9, 577, 8 }, ++ { 667, 40, 11, 9, 577, 8 }, ++ { 312, 40, 11, 9, 577, 8 }, ++ { 363, 40, 11, 9, 577, 8 }, ++ { 331, 47, 3, 1, 721, 2 }, ++ { 382, 47, 3, 1, 721, 2 }, ++ { 426, 47, 3, 1, 721, 2 }, ++ { 464, 47, 3, 1, 721, 2 }, ++ { 502, 47, 3, 1, 721, 2 }, ++ { 540, 47, 3, 1, 721, 2 }, ++ { 578, 47, 3, 1, 721, 2 }, ++ { 616, 47, 3, 1, 721, 2 }, ++ { 648, 47, 3, 1, 721, 2 }, ++ { 337, 49, 3, 1, 721, 2 }, ++ { 388, 49, 3, 1, 721, 2 }, ++ { 432, 49, 3, 1, 721, 2 }, ++ { 470, 49, 3, 1, 721, 2 }, ++ { 508, 49, 3, 1, 721, 2 }, ++ { 546, 49, 3, 1, 721, 2 }, ++ { 584, 49, 3, 1, 721, 2 }, ++ { 622, 49, 3, 1, 721, 2 }, ++ { 654, 49, 3, 1, 721, 2 }, ++ { 680, 49, 3, 1, 721, 2 }, ++ { 343, 42, 3, 0, 513, 2 }, ++ { 394, 42, 3, 0, 513, 2 }, ++}; ++ ++extern const MCPhysReg LoongArchRegUnitRoots[][2] = { ++ { LoongArch::FP }, ++ { LoongArch::PC }, ++ { LoongArch::RA }, ++ { LoongArch::SP }, ++ { LoongArch::TP }, ++ { LoongArch::ZERO }, ++ { LoongArch::A0 }, ++ { LoongArch::A1 }, ++ { LoongArch::A2 }, ++ { LoongArch::A3 }, ++ { LoongArch::A4 }, ++ { LoongArch::A5 }, ++ { LoongArch::A6 }, ++ { LoongArch::A7 }, ++ { LoongArch::F0 }, ++ { LoongArch::F1 }, ++ { LoongArch::F2 }, ++ { LoongArch::F3 }, ++ { LoongArch::F4 }, ++ { LoongArch::F5 }, ++ { LoongArch::F6 }, ++ { LoongArch::F7 }, ++ { LoongArch::F8 }, ++ { LoongArch::F9 }, ++ { LoongArch::F10 }, ++ { LoongArch::F11 }, ++ { LoongArch::F12 }, ++ { LoongArch::F13 }, ++ { LoongArch::F14 }, ++ { LoongArch::F15 }, ++ { LoongArch::F16 }, ++ { LoongArch::F17 }, ++ { LoongArch::F18 }, ++ { LoongArch::F19 }, ++ { LoongArch::F20 }, ++ { LoongArch::F21 }, ++ { LoongArch::F22 }, ++ { LoongArch::F23 }, ++ { LoongArch::F24 }, ++ { LoongArch::F25 }, ++ { LoongArch::F26 }, ++ { LoongArch::F27 }, ++ { LoongArch::F28 }, ++ { LoongArch::F29 }, ++ { LoongArch::F30 }, ++ { LoongArch::F31 }, ++ { LoongArch::FCC0 }, ++ { LoongArch::FCC1 }, ++ { LoongArch::FCC2 }, ++ { LoongArch::FCC3 }, ++ { LoongArch::FCC4 }, ++ { LoongArch::FCC5 }, ++ { LoongArch::FCC6 }, ++ { LoongArch::FCC7 }, ++ { LoongArch::FCSR1 }, ++ { LoongArch::FCSR2 }, ++ { LoongArch::FCSR3 }, ++ { LoongArch::S0 }, ++ { LoongArch::S1 }, ++ { LoongArch::S2 }, ++ { LoongArch::S3 }, ++ { LoongArch::S4 }, ++ { LoongArch::S5 }, ++ { LoongArch::S6 }, ++ { LoongArch::S7 }, ++ { LoongArch::S8 }, ++ { LoongArch::T0 }, ++ { LoongArch::T1 }, ++ { LoongArch::T2 }, ++ { LoongArch::T3 }, ++ { LoongArch::T4 }, ++ { LoongArch::T5 }, ++ { LoongArch::T6 }, ++ { LoongArch::T7 }, ++ { LoongArch::T8 }, ++ { LoongArch::T9 }, ++}; ++ ++namespace { // Register classes... ++ // FCSR Register Class... ++ const MCPhysReg FCSR[] = { ++ LoongArch::FCSR0, LoongArch::FCSR1, LoongArch::FCSR2, LoongArch::FCSR3, ++ }; ++ ++ // FCSR Bit set. ++ const uint8_t FCSRBits[] = { ++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, ++ }; ++ ++ // FCSR_with_sub_fcsr1 Register Class... ++ const MCPhysReg FCSR_with_sub_fcsr1[] = { ++ LoongArch::FCSR0, ++ }; ++ ++ // FCSR_with_sub_fcsr1 Bit set. ++ const uint8_t FCSR_with_sub_fcsr1Bits[] = { ++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, ++ }; ++ ++ // GPR32 Register Class... ++ const MCPhysReg GPR32[] = { ++ LoongArch::ZERO, LoongArch::A0, LoongArch::A1, LoongArch::A2, LoongArch::A3, LoongArch::A4, LoongArch::A5, LoongArch::A6, LoongArch::A7, LoongArch::T0, LoongArch::T1, LoongArch::T2, LoongArch::T3, LoongArch::T4, LoongArch::T5, LoongArch::T6, LoongArch::T7, LoongArch::T8, LoongArch::S0, LoongArch::S1, LoongArch::S2, LoongArch::S3, LoongArch::S4, LoongArch::S5, LoongArch::S6, LoongArch::S7, LoongArch::S8, LoongArch::RA, LoongArch::TP, LoongArch::SP, LoongArch::T9, LoongArch::FP, ++ }; ++ ++ // GPR32 Bit set. ++ const uint8_t GPR32Bits[] = { ++ 0xfa, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xbf, 0xff, 0x01, ++ }; ++ ++ // FCFR Register Class... ++ const MCPhysReg FCFR[] = { ++ LoongArch::FCC0, LoongArch::FCC1, LoongArch::FCC2, LoongArch::FCC3, LoongArch::FCC4, LoongArch::FCC5, LoongArch::FCC6, LoongArch::FCC7, ++ }; ++ ++ // FCFR Bit set. ++ const uint8_t FCFRBits[] = { ++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7f, ++ }; ++ ++ // SP32 Register Class... ++ const MCPhysReg SP32[] = { ++ LoongArch::SP, ++ }; ++ ++ // SP32 Bit set. ++ const uint8_t SP32Bits[] = { ++ 0x10, ++ }; ++ ++ // TP32 Register Class... ++ const MCPhysReg TP32[] = { ++ LoongArch::TP, ++ }; ++ ++ // TP32 Bit set. ++ const uint8_t TP32Bits[] = { ++ 0x20, ++ }; ++ ++ // FGR32 Register Class... ++ const MCPhysReg FGR32[] = { ++ LoongArch::F0, LoongArch::F1, LoongArch::F2, LoongArch::F3, LoongArch::F4, LoongArch::F5, LoongArch::F6, LoongArch::F7, LoongArch::F8, LoongArch::F9, LoongArch::F10, LoongArch::F11, LoongArch::F12, LoongArch::F13, LoongArch::F14, LoongArch::F15, LoongArch::F16, LoongArch::F17, LoongArch::F18, LoongArch::F19, LoongArch::F20, LoongArch::F21, LoongArch::F22, LoongArch::F23, LoongArch::F24, LoongArch::F25, LoongArch::F26, LoongArch::F27, LoongArch::F28, LoongArch::F29, LoongArch::F30, LoongArch::F31, ++ }; ++ ++ // FGR32 Bit set. ++ const uint8_t FGR32Bits[] = { ++ 0x00, 0x80, 0xff, 0xff, 0xff, 0x7f, ++ }; ++ ++ // FGR64 Register Class... ++ const MCPhysReg FGR64[] = { ++ LoongArch::F0_64, LoongArch::F1_64, LoongArch::F2_64, LoongArch::F3_64, LoongArch::F4_64, LoongArch::F5_64, LoongArch::F6_64, LoongArch::F7_64, LoongArch::F8_64, LoongArch::F9_64, LoongArch::F10_64, LoongArch::F11_64, LoongArch::F12_64, LoongArch::F13_64, LoongArch::F14_64, LoongArch::F15_64, LoongArch::F16_64, LoongArch::F17_64, LoongArch::F18_64, LoongArch::F19_64, LoongArch::F20_64, LoongArch::F21_64, LoongArch::F22_64, LoongArch::F23_64, LoongArch::F24_64, LoongArch::F25_64, LoongArch::F26_64, LoongArch::F27_64, LoongArch::F28_64, LoongArch::F29_64, LoongArch::F30_64, LoongArch::F31_64, ++ }; ++ ++ // FGR64 Bit set. ++ const uint8_t FGR64Bits[] = { ++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x1f, ++ }; ++ ++ // GPR64 Register Class... ++ const MCPhysReg GPR64[] = { ++ LoongArch::ZERO_64, LoongArch::A0_64, LoongArch::A1_64, LoongArch::A2_64, LoongArch::A3_64, LoongArch::A4_64, LoongArch::A5_64, LoongArch::A6_64, LoongArch::A7_64, LoongArch::T0_64, LoongArch::T1_64, LoongArch::T2_64, LoongArch::T3_64, LoongArch::T4_64, LoongArch::T5_64, LoongArch::T6_64, LoongArch::T7_64, LoongArch::T8_64, LoongArch::S0_64, LoongArch::S1_64, LoongArch::S2_64, LoongArch::S3_64, LoongArch::S4_64, LoongArch::S5_64, LoongArch::S6_64, LoongArch::S7_64, LoongArch::S8_64, LoongArch::RA_64, LoongArch::TP_64, LoongArch::SP_64, LoongArch::T9_64, LoongArch::FP_64, ++ }; ++ ++ // GPR64 Bit set. ++ const uint8_t GPR64Bits[] = { ++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x40, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x1f, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, ++ }; ++ ++ // GPRTC64 Register Class... ++ const MCPhysReg GPRTC64[] = { ++ LoongArch::A0_64, LoongArch::A1_64, LoongArch::A2_64, LoongArch::A3_64, LoongArch::A4_64, LoongArch::A5_64, LoongArch::A6_64, LoongArch::A7_64, LoongArch::T0_64, LoongArch::T1_64, LoongArch::T2_64, LoongArch::T3_64, LoongArch::T4_64, LoongArch::T5_64, LoongArch::T6_64, LoongArch::T7_64, LoongArch::T8_64, ++ }; ++ ++ // GPRTC64 Bit set. ++ const uint8_t GPRTC64Bits[] = { ++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x7f, ++ }; ++ ++ // SP64 Register Class... ++ const MCPhysReg SP64[] = { ++ LoongArch::SP_64, ++ }; ++ ++ // SP64 Bit set. ++ const uint8_t SP64Bits[] = { ++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, ++ }; ++ ++ // TP64 Register Class... ++ const MCPhysReg TP64[] = { ++ LoongArch::TP_64, ++ }; ++ ++ // TP64 Bit set. ++ const uint8_t TP64Bits[] = { ++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, ++ }; ++ ++ // LSX128B Register Class... ++ const MCPhysReg LSX128B[] = { ++ LoongArch::VR0, LoongArch::VR1, LoongArch::VR2, LoongArch::VR3, LoongArch::VR4, LoongArch::VR5, LoongArch::VR6, LoongArch::VR7, LoongArch::VR8, LoongArch::VR9, LoongArch::VR10, LoongArch::VR11, LoongArch::VR12, LoongArch::VR13, LoongArch::VR14, LoongArch::VR15, LoongArch::VR16, LoongArch::VR17, LoongArch::VR18, LoongArch::VR19, LoongArch::VR20, LoongArch::VR21, LoongArch::VR22, LoongArch::VR23, LoongArch::VR24, LoongArch::VR25, LoongArch::VR26, LoongArch::VR27, LoongArch::VR28, LoongArch::VR29, LoongArch::VR30, LoongArch::VR31, ++ }; ++ ++ // LSX128B Bit set. ++ const uint8_t LSX128BBits[] = { ++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x0f, ++ }; ++ ++ // LSX128D Register Class... ++ const MCPhysReg LSX128D[] = { ++ LoongArch::VR0, LoongArch::VR1, LoongArch::VR2, LoongArch::VR3, LoongArch::VR4, LoongArch::VR5, LoongArch::VR6, LoongArch::VR7, LoongArch::VR8, LoongArch::VR9, LoongArch::VR10, LoongArch::VR11, LoongArch::VR12, LoongArch::VR13, LoongArch::VR14, LoongArch::VR15, LoongArch::VR16, LoongArch::VR17, LoongArch::VR18, LoongArch::VR19, LoongArch::VR20, LoongArch::VR21, LoongArch::VR22, LoongArch::VR23, LoongArch::VR24, LoongArch::VR25, LoongArch::VR26, LoongArch::VR27, LoongArch::VR28, LoongArch::VR29, LoongArch::VR30, LoongArch::VR31, ++ }; ++ ++ // LSX128D Bit set. ++ const uint8_t LSX128DBits[] = { ++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x0f, ++ }; ++ ++ // LSX128H Register Class... ++ const MCPhysReg LSX128H[] = { ++ LoongArch::VR0, LoongArch::VR1, LoongArch::VR2, LoongArch::VR3, LoongArch::VR4, LoongArch::VR5, LoongArch::VR6, LoongArch::VR7, LoongArch::VR8, LoongArch::VR9, LoongArch::VR10, LoongArch::VR11, LoongArch::VR12, LoongArch::VR13, LoongArch::VR14, LoongArch::VR15, LoongArch::VR16, LoongArch::VR17, LoongArch::VR18, LoongArch::VR19, LoongArch::VR20, LoongArch::VR21, LoongArch::VR22, LoongArch::VR23, LoongArch::VR24, LoongArch::VR25, LoongArch::VR26, LoongArch::VR27, LoongArch::VR28, LoongArch::VR29, LoongArch::VR30, LoongArch::VR31, ++ }; ++ ++ // LSX128H Bit set. ++ const uint8_t LSX128HBits[] = { ++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x0f, ++ }; ++ ++ // LSX128W Register Class... ++ const MCPhysReg LSX128W[] = { ++ LoongArch::VR0, LoongArch::VR1, LoongArch::VR2, LoongArch::VR3, LoongArch::VR4, LoongArch::VR5, LoongArch::VR6, LoongArch::VR7, LoongArch::VR8, LoongArch::VR9, LoongArch::VR10, LoongArch::VR11, LoongArch::VR12, LoongArch::VR13, LoongArch::VR14, LoongArch::VR15, LoongArch::VR16, LoongArch::VR17, LoongArch::VR18, LoongArch::VR19, LoongArch::VR20, LoongArch::VR21, LoongArch::VR22, LoongArch::VR23, LoongArch::VR24, LoongArch::VR25, LoongArch::VR26, LoongArch::VR27, LoongArch::VR28, LoongArch::VR29, LoongArch::VR30, LoongArch::VR31, ++ }; ++ ++ // LSX128W Bit set. ++ const uint8_t LSX128WBits[] = { ++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x0f, ++ }; ++ ++ // LASX256B Register Class... ++ const MCPhysReg LASX256B[] = { ++ LoongArch::XR0, LoongArch::XR1, LoongArch::XR2, LoongArch::XR3, LoongArch::XR4, LoongArch::XR5, LoongArch::XR6, LoongArch::XR7, LoongArch::XR8, LoongArch::XR9, LoongArch::XR10, LoongArch::XR11, LoongArch::XR12, LoongArch::XR13, LoongArch::XR14, LoongArch::XR15, LoongArch::XR16, LoongArch::XR17, LoongArch::XR18, LoongArch::XR19, LoongArch::XR20, LoongArch::XR21, LoongArch::XR22, LoongArch::XR23, LoongArch::XR24, LoongArch::XR25, LoongArch::XR26, LoongArch::XR27, LoongArch::XR28, LoongArch::XR29, LoongArch::XR30, LoongArch::XR31, ++ }; ++ ++ // LASX256B Bit set. ++ const uint8_t LASX256BBits[] = { ++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x0f, ++ }; ++ ++ // LASX256D Register Class... ++ const MCPhysReg LASX256D[] = { ++ LoongArch::XR0, LoongArch::XR1, LoongArch::XR2, LoongArch::XR3, LoongArch::XR4, LoongArch::XR5, LoongArch::XR6, LoongArch::XR7, LoongArch::XR8, LoongArch::XR9, LoongArch::XR10, LoongArch::XR11, LoongArch::XR12, LoongArch::XR13, LoongArch::XR14, LoongArch::XR15, LoongArch::XR16, LoongArch::XR17, LoongArch::XR18, LoongArch::XR19, LoongArch::XR20, LoongArch::XR21, LoongArch::XR22, LoongArch::XR23, LoongArch::XR24, LoongArch::XR25, LoongArch::XR26, LoongArch::XR27, LoongArch::XR28, LoongArch::XR29, LoongArch::XR30, LoongArch::XR31, ++ }; ++ ++ // LASX256D Bit set. ++ const uint8_t LASX256DBits[] = { ++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x0f, ++ }; ++ ++ // LASX256H Register Class... ++ const MCPhysReg LASX256H[] = { ++ LoongArch::XR0, LoongArch::XR1, LoongArch::XR2, LoongArch::XR3, LoongArch::XR4, LoongArch::XR5, LoongArch::XR6, LoongArch::XR7, LoongArch::XR8, LoongArch::XR9, LoongArch::XR10, LoongArch::XR11, LoongArch::XR12, LoongArch::XR13, LoongArch::XR14, LoongArch::XR15, LoongArch::XR16, LoongArch::XR17, LoongArch::XR18, LoongArch::XR19, LoongArch::XR20, LoongArch::XR21, LoongArch::XR22, LoongArch::XR23, LoongArch::XR24, LoongArch::XR25, LoongArch::XR26, LoongArch::XR27, LoongArch::XR28, LoongArch::XR29, LoongArch::XR30, LoongArch::XR31, ++ }; ++ ++ // LASX256H Bit set. ++ const uint8_t LASX256HBits[] = { ++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x0f, ++ }; ++ ++ // LASX256W Register Class... ++ const MCPhysReg LASX256W[] = { ++ LoongArch::XR0, LoongArch::XR1, LoongArch::XR2, LoongArch::XR3, LoongArch::XR4, LoongArch::XR5, LoongArch::XR6, LoongArch::XR7, LoongArch::XR8, LoongArch::XR9, LoongArch::XR10, LoongArch::XR11, LoongArch::XR12, LoongArch::XR13, LoongArch::XR14, LoongArch::XR15, LoongArch::XR16, LoongArch::XR17, LoongArch::XR18, LoongArch::XR19, LoongArch::XR20, LoongArch::XR21, LoongArch::XR22, LoongArch::XR23, LoongArch::XR24, LoongArch::XR25, LoongArch::XR26, LoongArch::XR27, LoongArch::XR28, LoongArch::XR29, LoongArch::XR30, LoongArch::XR31, ++ }; ++ ++ // LASX256W Bit set. ++ const uint8_t LASX256WBits[] = { ++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x0f, ++ }; ++ ++} // end anonymous namespace ++ ++extern const char LoongArchRegClassStrings[] = { ++ /* 0 */ 'F', 'C', 'S', 'R', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', 'f', 'c', 's', 'r', '1', 0, ++ /* 20 */ 'S', 'P', '3', '2', 0, ++ /* 25 */ 'T', 'P', '3', '2', 0, ++ /* 30 */ 'F', 'G', 'R', '3', '2', 0, ++ /* 36 */ 'G', 'P', 'R', '3', '2', 0, ++ /* 42 */ 'G', 'P', 'R', 'T', 'C', '6', '4', 0, ++ /* 50 */ 'S', 'P', '6', '4', 0, ++ /* 55 */ 'T', 'P', '6', '4', 0, ++ /* 60 */ 'F', 'G', 'R', '6', '4', 0, ++ /* 66 */ 'G', 'P', 'R', '6', '4', 0, ++ /* 72 */ 'L', 'A', 'S', 'X', '2', '5', '6', 'B', 0, ++ /* 81 */ 'L', 'S', 'X', '1', '2', '8', 'B', 0, ++ /* 89 */ 'L', 'A', 'S', 'X', '2', '5', '6', 'D', 0, ++ /* 98 */ 'L', 'S', 'X', '1', '2', '8', 'D', 0, ++ /* 106 */ 'L', 'A', 'S', 'X', '2', '5', '6', 'H', 0, ++ /* 115 */ 'L', 'S', 'X', '1', '2', '8', 'H', 0, ++ /* 123 */ 'F', 'C', 'F', 'R', 0, ++ /* 128 */ 'F', 'C', 'S', 'R', 0, ++ /* 133 */ 'L', 'A', 'S', 'X', '2', '5', '6', 'W', 0, ++ /* 142 */ 'L', 'S', 'X', '1', '2', '8', 'W', 0, ++}; ++ ++extern const MCRegisterClass LoongArchMCRegisterClasses[] = { ++ { FCSR, FCSRBits, 128, 4, sizeof(FCSRBits), LoongArch::FCSRRegClassID, 1, false }, ++ { FCSR_with_sub_fcsr1, FCSR_with_sub_fcsr1Bits, 0, 1, sizeof(FCSR_with_sub_fcsr1Bits), LoongArch::FCSR_with_sub_fcsr1RegClassID, 1, false }, ++ { GPR32, GPR32Bits, 36, 32, sizeof(GPR32Bits), LoongArch::GPR32RegClassID, 1, true }, ++ { FCFR, FCFRBits, 123, 8, sizeof(FCFRBits), LoongArch::FCFRRegClassID, 1, false }, ++ { SP32, SP32Bits, 20, 1, sizeof(SP32Bits), LoongArch::SP32RegClassID, 1, false }, ++ { TP32, TP32Bits, 25, 1, sizeof(TP32Bits), LoongArch::TP32RegClassID, 1, false }, ++ { FGR32, FGR32Bits, 30, 32, sizeof(FGR32Bits), LoongArch::FGR32RegClassID, 1, true }, ++ { FGR64, FGR64Bits, 60, 32, sizeof(FGR64Bits), LoongArch::FGR64RegClassID, 1, true }, ++ { GPR64, GPR64Bits, 66, 32, sizeof(GPR64Bits), LoongArch::GPR64RegClassID, 1, true }, ++ { GPRTC64, GPRTC64Bits, 42, 17, sizeof(GPRTC64Bits), LoongArch::GPRTC64RegClassID, 1, true }, ++ { SP64, SP64Bits, 50, 1, sizeof(SP64Bits), LoongArch::SP64RegClassID, 1, false }, ++ { TP64, TP64Bits, 55, 1, sizeof(TP64Bits), LoongArch::TP64RegClassID, 1, false }, ++ { LSX128B, LSX128BBits, 81, 32, sizeof(LSX128BBits), LoongArch::LSX128BRegClassID, 1, true }, ++ { LSX128D, LSX128DBits, 98, 32, sizeof(LSX128DBits), LoongArch::LSX128DRegClassID, 1, true }, ++ { LSX128H, LSX128HBits, 115, 32, sizeof(LSX128HBits), LoongArch::LSX128HRegClassID, 1, true }, ++ { LSX128W, LSX128WBits, 142, 32, sizeof(LSX128WBits), LoongArch::LSX128WRegClassID, 1, true }, ++ { LASX256B, LASX256BBits, 72, 32, sizeof(LASX256BBits), LoongArch::LASX256BRegClassID, 1, true }, ++ { LASX256D, LASX256DBits, 89, 32, sizeof(LASX256DBits), LoongArch::LASX256DRegClassID, 1, true }, ++ { LASX256H, LASX256HBits, 106, 32, sizeof(LASX256HBits), LoongArch::LASX256HRegClassID, 1, true }, ++ { LASX256W, LASX256WBits, 133, 32, sizeof(LASX256WBits), LoongArch::LASX256WRegClassID, 1, true }, ++}; ++ ++// LoongArch Dwarf<->LLVM register mappings. ++extern const MCRegisterInfo::DwarfLLVMRegPair LoongArchDwarfFlavour0Dwarf2L[] = { ++ { 0U, LoongArch::ZERO_64 }, ++ { 1U, LoongArch::RA_64 }, ++ { 2U, LoongArch::TP_64 }, ++ { 3U, LoongArch::SP_64 }, ++ { 4U, LoongArch::V0_64 }, ++ { 5U, LoongArch::V1_64 }, ++ { 6U, LoongArch::A2_64 }, ++ { 7U, LoongArch::A3_64 }, ++ { 8U, LoongArch::A4_64 }, ++ { 9U, LoongArch::A5_64 }, ++ { 10U, LoongArch::A6_64 }, ++ { 11U, LoongArch::A7_64 }, ++ { 12U, LoongArch::T0_64 }, ++ { 13U, LoongArch::T1_64 }, ++ { 14U, LoongArch::T2_64 }, ++ { 15U, LoongArch::T3_64 }, ++ { 16U, LoongArch::T4_64 }, ++ { 17U, LoongArch::T5_64 }, ++ { 18U, LoongArch::T6_64 }, ++ { 19U, LoongArch::T7_64 }, ++ { 20U, LoongArch::T8_64 }, ++ { 21U, LoongArch::T9_64 }, ++ { 22U, LoongArch::FP_64 }, ++ { 23U, LoongArch::S0_64 }, ++ { 24U, LoongArch::S1_64 }, ++ { 25U, LoongArch::S2_64 }, ++ { 26U, LoongArch::S3_64 }, ++ { 27U, LoongArch::S4_64 }, ++ { 28U, LoongArch::S5_64 }, ++ { 29U, LoongArch::S6_64 }, ++ { 30U, LoongArch::S7_64 }, ++ { 31U, LoongArch::S8_64 }, ++ { 32U, LoongArch::F0_64 }, ++ { 33U, LoongArch::F1_64 }, ++ { 34U, LoongArch::F2_64 }, ++ { 35U, LoongArch::F3_64 }, ++ { 36U, LoongArch::F4_64 }, ++ { 37U, LoongArch::F5_64 }, ++ { 38U, LoongArch::F6_64 }, ++ { 39U, LoongArch::F7_64 }, ++ { 40U, LoongArch::F8_64 }, ++ { 41U, LoongArch::F9_64 }, ++ { 42U, LoongArch::F10_64 }, ++ { 43U, LoongArch::F11_64 }, ++ { 44U, LoongArch::F12_64 }, ++ { 45U, LoongArch::F13_64 }, ++ { 46U, LoongArch::F14_64 }, ++ { 47U, LoongArch::F15_64 }, ++ { 48U, LoongArch::F16_64 }, ++ { 49U, LoongArch::F17_64 }, ++ { 50U, LoongArch::F18_64 }, ++ { 51U, LoongArch::F19_64 }, ++ { 52U, LoongArch::F20_64 }, ++ { 53U, LoongArch::F21_64 }, ++ { 54U, LoongArch::F22_64 }, ++ { 55U, LoongArch::F23_64 }, ++ { 56U, LoongArch::F24_64 }, ++ { 57U, LoongArch::F25_64 }, ++ { 58U, LoongArch::F26_64 }, ++ { 59U, LoongArch::F27_64 }, ++ { 60U, LoongArch::F28_64 }, ++ { 61U, LoongArch::F29_64 }, ++ { 62U, LoongArch::F30_64 }, ++ { 63U, LoongArch::F31_64 }, ++}; ++extern const unsigned LoongArchDwarfFlavour0Dwarf2LSize = array_lengthof(LoongArchDwarfFlavour0Dwarf2L); ++ ++extern const MCRegisterInfo::DwarfLLVMRegPair LoongArchEHFlavour0Dwarf2L[] = { ++ { 0U, LoongArch::ZERO_64 }, ++ { 1U, LoongArch::RA_64 }, ++ { 2U, LoongArch::TP_64 }, ++ { 3U, LoongArch::SP_64 }, ++ { 4U, LoongArch::V0_64 }, ++ { 5U, LoongArch::V1_64 }, ++ { 6U, LoongArch::A2_64 }, ++ { 7U, LoongArch::A3_64 }, ++ { 8U, LoongArch::A4_64 }, ++ { 9U, LoongArch::A5_64 }, ++ { 10U, LoongArch::A6_64 }, ++ { 11U, LoongArch::A7_64 }, ++ { 12U, LoongArch::T0_64 }, ++ { 13U, LoongArch::T1_64 }, ++ { 14U, LoongArch::T2_64 }, ++ { 15U, LoongArch::T3_64 }, ++ { 16U, LoongArch::T4_64 }, ++ { 17U, LoongArch::T5_64 }, ++ { 18U, LoongArch::T6_64 }, ++ { 19U, LoongArch::T7_64 }, ++ { 20U, LoongArch::T8_64 }, ++ { 21U, LoongArch::T9_64 }, ++ { 22U, LoongArch::FP_64 }, ++ { 23U, LoongArch::S0_64 }, ++ { 24U, LoongArch::S1_64 }, ++ { 25U, LoongArch::S2_64 }, ++ { 26U, LoongArch::S3_64 }, ++ { 27U, LoongArch::S4_64 }, ++ { 28U, LoongArch::S5_64 }, ++ { 29U, LoongArch::S6_64 }, ++ { 30U, LoongArch::S7_64 }, ++ { 31U, LoongArch::S8_64 }, ++ { 32U, LoongArch::F0_64 }, ++ { 33U, LoongArch::F1_64 }, ++ { 34U, LoongArch::F2_64 }, ++ { 35U, LoongArch::F3_64 }, ++ { 36U, LoongArch::F4_64 }, ++ { 37U, LoongArch::F5_64 }, ++ { 38U, LoongArch::F6_64 }, ++ { 39U, LoongArch::F7_64 }, ++ { 40U, LoongArch::F8_64 }, ++ { 41U, LoongArch::F9_64 }, ++ { 42U, LoongArch::F10_64 }, ++ { 43U, LoongArch::F11_64 }, ++ { 44U, LoongArch::F12_64 }, ++ { 45U, LoongArch::F13_64 }, ++ { 46U, LoongArch::F14_64 }, ++ { 47U, LoongArch::F15_64 }, ++ { 48U, LoongArch::F16_64 }, ++ { 49U, LoongArch::F17_64 }, ++ { 50U, LoongArch::F18_64 }, ++ { 51U, LoongArch::F19_64 }, ++ { 52U, LoongArch::F20_64 }, ++ { 53U, LoongArch::F21_64 }, ++ { 54U, LoongArch::F22_64 }, ++ { 55U, LoongArch::F23_64 }, ++ { 56U, LoongArch::F24_64 }, ++ { 57U, LoongArch::F25_64 }, ++ { 58U, LoongArch::F26_64 }, ++ { 59U, LoongArch::F27_64 }, ++ { 60U, LoongArch::F28_64 }, ++ { 61U, LoongArch::F29_64 }, ++ { 62U, LoongArch::F30_64 }, ++ { 63U, LoongArch::F31_64 }, ++}; ++extern const unsigned LoongArchEHFlavour0Dwarf2LSize = array_lengthof(LoongArchEHFlavour0Dwarf2L); ++ ++extern const MCRegisterInfo::DwarfLLVMRegPair LoongArchDwarfFlavour0L2Dwarf[] = { ++ { LoongArch::FP, 22U }, ++ { LoongArch::RA, 1U }, ++ { LoongArch::SP, 3U }, ++ { LoongArch::TP, 2U }, ++ { LoongArch::ZERO, 0U }, ++ { LoongArch::A0, 4U }, ++ { LoongArch::A1, 5U }, ++ { LoongArch::A2, 6U }, ++ { LoongArch::A3, 7U }, ++ { LoongArch::A4, 8U }, ++ { LoongArch::A5, 9U }, ++ { LoongArch::A6, 10U }, ++ { LoongArch::A7, 11U }, ++ { LoongArch::F0, 32U }, ++ { LoongArch::F1, 33U }, ++ { LoongArch::F2, 34U }, ++ { LoongArch::F3, 35U }, ++ { LoongArch::F4, 36U }, ++ { LoongArch::F5, 37U }, ++ { LoongArch::F6, 38U }, ++ { LoongArch::F7, 39U }, ++ { LoongArch::F8, 40U }, ++ { LoongArch::F9, 41U }, ++ { LoongArch::F10, 42U }, ++ { LoongArch::F11, 43U }, ++ { LoongArch::F12, 44U }, ++ { LoongArch::F13, 45U }, ++ { LoongArch::F14, 46U }, ++ { LoongArch::F15, 47U }, ++ { LoongArch::F16, 48U }, ++ { LoongArch::F17, 49U }, ++ { LoongArch::F18, 50U }, ++ { LoongArch::F19, 51U }, ++ { LoongArch::F20, 52U }, ++ { LoongArch::F21, 53U }, ++ { LoongArch::F22, 54U }, ++ { LoongArch::F23, 55U }, ++ { LoongArch::F24, 56U }, ++ { LoongArch::F25, 57U }, ++ { LoongArch::F26, 58U }, ++ { LoongArch::F27, 59U }, ++ { LoongArch::F28, 60U }, ++ { LoongArch::F29, 61U }, ++ { LoongArch::F30, 62U }, ++ { LoongArch::F31, 63U }, ++ { LoongArch::FP_64, 22U }, ++ { LoongArch::RA_64, 1U }, ++ { LoongArch::S0, 23U }, ++ { LoongArch::S1, 24U }, ++ { LoongArch::S2, 25U }, ++ { LoongArch::S3, 26U }, ++ { LoongArch::S4, 27U }, ++ { LoongArch::S5, 28U }, ++ { LoongArch::S6, 29U }, ++ { LoongArch::S7, 30U }, ++ { LoongArch::S8, 31U }, ++ { LoongArch::SP_64, 3U }, ++ { LoongArch::T0, 12U }, ++ { LoongArch::T1, 13U }, ++ { LoongArch::T2, 14U }, ++ { LoongArch::T3, 15U }, ++ { LoongArch::T4, 16U }, ++ { LoongArch::T5, 17U }, ++ { LoongArch::T6, 18U }, ++ { LoongArch::T7, 19U }, ++ { LoongArch::T8, 20U }, ++ { LoongArch::T9, 21U }, ++ { LoongArch::TP_64, 2U }, ++ { LoongArch::V0, 4U }, ++ { LoongArch::V1, 5U }, ++ { LoongArch::VR0, 32U }, ++ { LoongArch::VR1, 33U }, ++ { LoongArch::VR2, 34U }, ++ { LoongArch::VR3, 35U }, ++ { LoongArch::VR4, 36U }, ++ { LoongArch::VR5, 37U }, ++ { LoongArch::VR6, 38U }, ++ { LoongArch::VR7, 39U }, ++ { LoongArch::VR8, 40U }, ++ { LoongArch::VR9, 41U }, ++ { LoongArch::VR10, 42U }, ++ { LoongArch::VR11, 43U }, ++ { LoongArch::VR12, 44U }, ++ { LoongArch::VR13, 45U }, ++ { LoongArch::VR14, 46U }, ++ { LoongArch::VR15, 47U }, ++ { LoongArch::VR16, 48U }, ++ { LoongArch::VR17, 49U }, ++ { LoongArch::VR18, 50U }, ++ { LoongArch::VR19, 51U }, ++ { LoongArch::VR20, 52U }, ++ { LoongArch::VR21, 53U }, ++ { LoongArch::VR22, 54U }, ++ { LoongArch::VR23, 55U }, ++ { LoongArch::VR24, 56U }, ++ { LoongArch::VR25, 57U }, ++ { LoongArch::VR26, 58U }, ++ { LoongArch::VR27, 59U }, ++ { LoongArch::VR28, 60U }, ++ { LoongArch::VR29, 61U }, ++ { LoongArch::VR30, 62U }, ++ { LoongArch::VR31, 63U }, ++ { LoongArch::XR0, 32U }, ++ { LoongArch::XR1, 33U }, ++ { LoongArch::XR2, 34U }, ++ { LoongArch::XR3, 35U }, ++ { LoongArch::XR4, 36U }, ++ { LoongArch::XR5, 37U }, ++ { LoongArch::XR6, 38U }, ++ { LoongArch::XR7, 39U }, ++ { LoongArch::XR8, 40U }, ++ { LoongArch::XR9, 41U }, ++ { LoongArch::XR10, 42U }, ++ { LoongArch::XR11, 43U }, ++ { LoongArch::XR12, 44U }, ++ { LoongArch::XR13, 45U }, ++ { LoongArch::XR14, 46U }, ++ { LoongArch::XR15, 47U }, ++ { LoongArch::XR16, 48U }, ++ { LoongArch::XR17, 49U }, ++ { LoongArch::XR18, 50U }, ++ { LoongArch::XR19, 51U }, ++ { LoongArch::XR20, 52U }, ++ { LoongArch::XR21, 53U }, ++ { LoongArch::XR22, 54U }, ++ { LoongArch::XR23, 55U }, ++ { LoongArch::XR24, 56U }, ++ { LoongArch::XR25, 57U }, ++ { LoongArch::XR26, 58U }, ++ { LoongArch::XR27, 59U }, ++ { LoongArch::XR28, 60U }, ++ { LoongArch::XR29, 61U }, ++ { LoongArch::XR30, 62U }, ++ { LoongArch::XR31, 63U }, ++ { LoongArch::ZERO_64, 0U }, ++ { LoongArch::A0_64, 4U }, ++ { LoongArch::A1_64, 5U }, ++ { LoongArch::A2_64, 6U }, ++ { LoongArch::A3_64, 7U }, ++ { LoongArch::A4_64, 8U }, ++ { LoongArch::A5_64, 9U }, ++ { LoongArch::A6_64, 10U }, ++ { LoongArch::A7_64, 11U }, ++ { LoongArch::F0_64, 32U }, ++ { LoongArch::F1_64, 33U }, ++ { LoongArch::F2_64, 34U }, ++ { LoongArch::F3_64, 35U }, ++ { LoongArch::F4_64, 36U }, ++ { LoongArch::F5_64, 37U }, ++ { LoongArch::F6_64, 38U }, ++ { LoongArch::F7_64, 39U }, ++ { LoongArch::F8_64, 40U }, ++ { LoongArch::F9_64, 41U }, ++ { LoongArch::F10_64, 42U }, ++ { LoongArch::F11_64, 43U }, ++ { LoongArch::F12_64, 44U }, ++ { LoongArch::F13_64, 45U }, ++ { LoongArch::F14_64, 46U }, ++ { LoongArch::F15_64, 47U }, ++ { LoongArch::F16_64, 48U }, ++ { LoongArch::F17_64, 49U }, ++ { LoongArch::F18_64, 50U }, ++ { LoongArch::F19_64, 51U }, ++ { LoongArch::F20_64, 52U }, ++ { LoongArch::F21_64, 53U }, ++ { LoongArch::F22_64, 54U }, ++ { LoongArch::F23_64, 55U }, ++ { LoongArch::F24_64, 56U }, ++ { LoongArch::F25_64, 57U }, ++ { LoongArch::F26_64, 58U }, ++ { LoongArch::F27_64, 59U }, ++ { LoongArch::F28_64, 60U }, ++ { LoongArch::F29_64, 61U }, ++ { LoongArch::F30_64, 62U }, ++ { LoongArch::F31_64, 63U }, ++ { LoongArch::S0_64, 23U }, ++ { LoongArch::S1_64, 24U }, ++ { LoongArch::S2_64, 25U }, ++ { LoongArch::S3_64, 26U }, ++ { LoongArch::S4_64, 27U }, ++ { LoongArch::S5_64, 28U }, ++ { LoongArch::S6_64, 29U }, ++ { LoongArch::S7_64, 30U }, ++ { LoongArch::S8_64, 31U }, ++ { LoongArch::T0_64, 12U }, ++ { LoongArch::T1_64, 13U }, ++ { LoongArch::T2_64, 14U }, ++ { LoongArch::T3_64, 15U }, ++ { LoongArch::T4_64, 16U }, ++ { LoongArch::T5_64, 17U }, ++ { LoongArch::T6_64, 18U }, ++ { LoongArch::T7_64, 19U }, ++ { LoongArch::T8_64, 20U }, ++ { LoongArch::T9_64, 21U }, ++ { LoongArch::V0_64, 4U }, ++ { LoongArch::V1_64, 5U }, ++}; ++extern const unsigned LoongArchDwarfFlavour0L2DwarfSize = array_lengthof(LoongArchDwarfFlavour0L2Dwarf); ++ ++extern const MCRegisterInfo::DwarfLLVMRegPair LoongArchEHFlavour0L2Dwarf[] = { ++ { LoongArch::FP, 22U }, ++ { LoongArch::RA, 1U }, ++ { LoongArch::SP, 3U }, ++ { LoongArch::TP, 2U }, ++ { LoongArch::ZERO, 0U }, ++ { LoongArch::A0, 4U }, ++ { LoongArch::A1, 5U }, ++ { LoongArch::A2, 6U }, ++ { LoongArch::A3, 7U }, ++ { LoongArch::A4, 8U }, ++ { LoongArch::A5, 9U }, ++ { LoongArch::A6, 10U }, ++ { LoongArch::A7, 11U }, ++ { LoongArch::F0, 32U }, ++ { LoongArch::F1, 33U }, ++ { LoongArch::F2, 34U }, ++ { LoongArch::F3, 35U }, ++ { LoongArch::F4, 36U }, ++ { LoongArch::F5, 37U }, ++ { LoongArch::F6, 38U }, ++ { LoongArch::F7, 39U }, ++ { LoongArch::F8, 40U }, ++ { LoongArch::F9, 41U }, ++ { LoongArch::F10, 42U }, ++ { LoongArch::F11, 43U }, ++ { LoongArch::F12, 44U }, ++ { LoongArch::F13, 45U }, ++ { LoongArch::F14, 46U }, ++ { LoongArch::F15, 47U }, ++ { LoongArch::F16, 48U }, ++ { LoongArch::F17, 49U }, ++ { LoongArch::F18, 50U }, ++ { LoongArch::F19, 51U }, ++ { LoongArch::F20, 52U }, ++ { LoongArch::F21, 53U }, ++ { LoongArch::F22, 54U }, ++ { LoongArch::F23, 55U }, ++ { LoongArch::F24, 56U }, ++ { LoongArch::F25, 57U }, ++ { LoongArch::F26, 58U }, ++ { LoongArch::F27, 59U }, ++ { LoongArch::F28, 60U }, ++ { LoongArch::F29, 61U }, ++ { LoongArch::F30, 62U }, ++ { LoongArch::F31, 63U }, ++ { LoongArch::FP_64, 22U }, ++ { LoongArch::RA_64, 1U }, ++ { LoongArch::S0, 23U }, ++ { LoongArch::S1, 24U }, ++ { LoongArch::S2, 25U }, ++ { LoongArch::S3, 26U }, ++ { LoongArch::S4, 27U }, ++ { LoongArch::S5, 28U }, ++ { LoongArch::S6, 29U }, ++ { LoongArch::S7, 30U }, ++ { LoongArch::S8, 31U }, ++ { LoongArch::SP_64, 3U }, ++ { LoongArch::T0, 12U }, ++ { LoongArch::T1, 13U }, ++ { LoongArch::T2, 14U }, ++ { LoongArch::T3, 15U }, ++ { LoongArch::T4, 16U }, ++ { LoongArch::T5, 17U }, ++ { LoongArch::T6, 18U }, ++ { LoongArch::T7, 19U }, ++ { LoongArch::T8, 20U }, ++ { LoongArch::T9, 21U }, ++ { LoongArch::TP_64, 2U }, ++ { LoongArch::V0, 4U }, ++ { LoongArch::V1, 5U }, ++ { LoongArch::VR0, 32U }, ++ { LoongArch::VR1, 33U }, ++ { LoongArch::VR2, 34U }, ++ { LoongArch::VR3, 35U }, ++ { LoongArch::VR4, 36U }, ++ { LoongArch::VR5, 37U }, ++ { LoongArch::VR6, 38U }, ++ { LoongArch::VR7, 39U }, ++ { LoongArch::VR8, 40U }, ++ { LoongArch::VR9, 41U }, ++ { LoongArch::VR10, 42U }, ++ { LoongArch::VR11, 43U }, ++ { LoongArch::VR12, 44U }, ++ { LoongArch::VR13, 45U }, ++ { LoongArch::VR14, 46U }, ++ { LoongArch::VR15, 47U }, ++ { LoongArch::VR16, 48U }, ++ { LoongArch::VR17, 49U }, ++ { LoongArch::VR18, 50U }, ++ { LoongArch::VR19, 51U }, ++ { LoongArch::VR20, 52U }, ++ { LoongArch::VR21, 53U }, ++ { LoongArch::VR22, 54U }, ++ { LoongArch::VR23, 55U }, ++ { LoongArch::VR24, 56U }, ++ { LoongArch::VR25, 57U }, ++ { LoongArch::VR26, 58U }, ++ { LoongArch::VR27, 59U }, ++ { LoongArch::VR28, 60U }, ++ { LoongArch::VR29, 61U }, ++ { LoongArch::VR30, 62U }, ++ { LoongArch::VR31, 63U }, ++ { LoongArch::XR0, 32U }, ++ { LoongArch::XR1, 33U }, ++ { LoongArch::XR2, 34U }, ++ { LoongArch::XR3, 35U }, ++ { LoongArch::XR4, 36U }, ++ { LoongArch::XR5, 37U }, ++ { LoongArch::XR6, 38U }, ++ { LoongArch::XR7, 39U }, ++ { LoongArch::XR8, 40U }, ++ { LoongArch::XR9, 41U }, ++ { LoongArch::XR10, 42U }, ++ { LoongArch::XR11, 43U }, ++ { LoongArch::XR12, 44U }, ++ { LoongArch::XR13, 45U }, ++ { LoongArch::XR14, 46U }, ++ { LoongArch::XR15, 47U }, ++ { LoongArch::XR16, 48U }, ++ { LoongArch::XR17, 49U }, ++ { LoongArch::XR18, 50U }, ++ { LoongArch::XR19, 51U }, ++ { LoongArch::XR20, 52U }, ++ { LoongArch::XR21, 53U }, ++ { LoongArch::XR22, 54U }, ++ { LoongArch::XR23, 55U }, ++ { LoongArch::XR24, 56U }, ++ { LoongArch::XR25, 57U }, ++ { LoongArch::XR26, 58U }, ++ { LoongArch::XR27, 59U }, ++ { LoongArch::XR28, 60U }, ++ { LoongArch::XR29, 61U }, ++ { LoongArch::XR30, 62U }, ++ { LoongArch::XR31, 63U }, ++ { LoongArch::ZERO_64, 0U }, ++ { LoongArch::A0_64, 4U }, ++ { LoongArch::A1_64, 5U }, ++ { LoongArch::A2_64, 6U }, ++ { LoongArch::A3_64, 7U }, ++ { LoongArch::A4_64, 8U }, ++ { LoongArch::A5_64, 9U }, ++ { LoongArch::A6_64, 10U }, ++ { LoongArch::A7_64, 11U }, ++ { LoongArch::F0_64, 32U }, ++ { LoongArch::F1_64, 33U }, ++ { LoongArch::F2_64, 34U }, ++ { LoongArch::F3_64, 35U }, ++ { LoongArch::F4_64, 36U }, ++ { LoongArch::F5_64, 37U }, ++ { LoongArch::F6_64, 38U }, ++ { LoongArch::F7_64, 39U }, ++ { LoongArch::F8_64, 40U }, ++ { LoongArch::F9_64, 41U }, ++ { LoongArch::F10_64, 42U }, ++ { LoongArch::F11_64, 43U }, ++ { LoongArch::F12_64, 44U }, ++ { LoongArch::F13_64, 45U }, ++ { LoongArch::F14_64, 46U }, ++ { LoongArch::F15_64, 47U }, ++ { LoongArch::F16_64, 48U }, ++ { LoongArch::F17_64, 49U }, ++ { LoongArch::F18_64, 50U }, ++ { LoongArch::F19_64, 51U }, ++ { LoongArch::F20_64, 52U }, ++ { LoongArch::F21_64, 53U }, ++ { LoongArch::F22_64, 54U }, ++ { LoongArch::F23_64, 55U }, ++ { LoongArch::F24_64, 56U }, ++ { LoongArch::F25_64, 57U }, ++ { LoongArch::F26_64, 58U }, ++ { LoongArch::F27_64, 59U }, ++ { LoongArch::F28_64, 60U }, ++ { LoongArch::F29_64, 61U }, ++ { LoongArch::F30_64, 62U }, ++ { LoongArch::F31_64, 63U }, ++ { LoongArch::S0_64, 23U }, ++ { LoongArch::S1_64, 24U }, ++ { LoongArch::S2_64, 25U }, ++ { LoongArch::S3_64, 26U }, ++ { LoongArch::S4_64, 27U }, ++ { LoongArch::S5_64, 28U }, ++ { LoongArch::S6_64, 29U }, ++ { LoongArch::S7_64, 30U }, ++ { LoongArch::S8_64, 31U }, ++ { LoongArch::T0_64, 12U }, ++ { LoongArch::T1_64, 13U }, ++ { LoongArch::T2_64, 14U }, ++ { LoongArch::T3_64, 15U }, ++ { LoongArch::T4_64, 16U }, ++ { LoongArch::T5_64, 17U }, ++ { LoongArch::T6_64, 18U }, ++ { LoongArch::T7_64, 19U }, ++ { LoongArch::T8_64, 20U }, ++ { LoongArch::T9_64, 21U }, ++ { LoongArch::V0_64, 4U }, ++ { LoongArch::V1_64, 5U }, ++}; ++extern const unsigned LoongArchEHFlavour0L2DwarfSize = array_lengthof(LoongArchEHFlavour0L2Dwarf); ++ ++extern const uint16_t LoongArchRegEncodingTable[] = { ++ 0, ++ 22, ++ 0, ++ 1, ++ 3, ++ 2, ++ 0, ++ 4, ++ 5, ++ 6, ++ 7, ++ 8, ++ 9, ++ 10, ++ 11, ++ 0, ++ 1, ++ 2, ++ 3, ++ 4, ++ 5, ++ 6, ++ 7, ++ 8, ++ 9, ++ 10, ++ 11, ++ 12, ++ 13, ++ 14, ++ 15, ++ 16, ++ 17, ++ 18, ++ 19, ++ 20, ++ 21, ++ 22, ++ 23, ++ 24, ++ 25, ++ 26, ++ 27, ++ 28, ++ 29, ++ 30, ++ 31, ++ 0, ++ 1, ++ 2, ++ 3, ++ 4, ++ 5, ++ 6, ++ 7, ++ 0, ++ 1, ++ 2, ++ 3, ++ 22, ++ 1, ++ 23, ++ 24, ++ 25, ++ 26, ++ 27, ++ 28, ++ 29, ++ 30, ++ 31, ++ 3, ++ 12, ++ 13, ++ 14, ++ 15, ++ 16, ++ 17, ++ 18, ++ 19, ++ 20, ++ 21, ++ 2, ++ 4, ++ 5, ++ 0, ++ 1, ++ 2, ++ 3, ++ 4, ++ 5, ++ 6, ++ 7, ++ 8, ++ 9, ++ 10, ++ 11, ++ 12, ++ 13, ++ 14, ++ 15, ++ 16, ++ 17, ++ 18, ++ 19, ++ 20, ++ 21, ++ 22, ++ 23, ++ 24, ++ 25, ++ 26, ++ 27, ++ 28, ++ 29, ++ 30, ++ 31, ++ 0, ++ 1, ++ 2, ++ 3, ++ 4, ++ 5, ++ 6, ++ 7, ++ 8, ++ 9, ++ 10, ++ 11, ++ 12, ++ 13, ++ 14, ++ 15, ++ 16, ++ 17, ++ 18, ++ 19, ++ 20, ++ 21, ++ 22, ++ 23, ++ 24, ++ 25, ++ 26, ++ 27, ++ 28, ++ 29, ++ 30, ++ 31, ++ 0, ++ 4, ++ 5, ++ 6, ++ 7, ++ 8, ++ 9, ++ 10, ++ 11, ++ 0, ++ 1, ++ 2, ++ 3, ++ 4, ++ 5, ++ 6, ++ 7, ++ 8, ++ 9, ++ 10, ++ 11, ++ 12, ++ 13, ++ 14, ++ 15, ++ 16, ++ 17, ++ 18, ++ 19, ++ 20, ++ 21, ++ 22, ++ 23, ++ 24, ++ 25, ++ 26, ++ 27, ++ 28, ++ 29, ++ 30, ++ 31, ++ 23, ++ 24, ++ 25, ++ 26, ++ 27, ++ 28, ++ 29, ++ 30, ++ 31, ++ 12, ++ 13, ++ 14, ++ 15, ++ 16, ++ 17, ++ 18, ++ 19, ++ 20, ++ 21, ++ 4, ++ 5, ++}; ++static inline void InitLoongArchMCRegisterInfo(MCRegisterInfo *RI, unsigned RA, unsigned DwarfFlavour = 0, unsigned EHFlavour = 0, unsigned PC = 0) { ++ RI->InitMCRegisterInfo(LoongArchRegDesc, 210, RA, PC, LoongArchMCRegisterClasses, 20, LoongArchRegUnitRoots, 76, LoongArchRegDiffLists, LoongArchLaneMaskLists, LoongArchRegStrings, LoongArchRegClassStrings, LoongArchSubRegIdxLists, 9, ++LoongArchSubRegIdxRanges, LoongArchRegEncodingTable); ++ ++ switch (DwarfFlavour) { ++ default: ++ llvm_unreachable("Unknown DWARF flavour"); ++ case 0: ++ RI->mapDwarfRegsToLLVMRegs(LoongArchDwarfFlavour0Dwarf2L, LoongArchDwarfFlavour0Dwarf2LSize, false); ++ break; ++ } ++ switch (EHFlavour) { ++ default: ++ llvm_unreachable("Unknown DWARF flavour"); ++ case 0: ++ RI->mapDwarfRegsToLLVMRegs(LoongArchEHFlavour0Dwarf2L, LoongArchEHFlavour0Dwarf2LSize, true); ++ break; ++ } ++ switch (DwarfFlavour) { ++ default: ++ llvm_unreachable("Unknown DWARF flavour"); ++ case 0: ++ RI->mapLLVMRegsToDwarfRegs(LoongArchDwarfFlavour0L2Dwarf, LoongArchDwarfFlavour0L2DwarfSize, false); ++ break; ++ } ++ switch (EHFlavour) { ++ default: ++ llvm_unreachable("Unknown DWARF flavour"); ++ case 0: ++ RI->mapLLVMRegsToDwarfRegs(LoongArchEHFlavour0L2Dwarf, LoongArchEHFlavour0L2DwarfSize, true); ++ break; ++ } ++} ++ ++} // end namespace llvm ++ ++#endif // GET_REGINFO_MC_DESC ++ ++/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\ ++|* *| ++|* Register Information Header Fragment *| ++|* *| ++|* Automatically generated file, do not edit! *| ++|* *| ++\*===----------------------------------------------------------------------===*/ ++ ++ ++#ifdef GET_REGINFO_HEADER ++#undef GET_REGINFO_HEADER ++ ++#include "llvm/CodeGen/TargetRegisterInfo.h" ++ ++namespace llvm { ++ ++class LoongArchFrameLowering; ++ ++struct LoongArchGenRegisterInfo : public TargetRegisterInfo { ++ explicit LoongArchGenRegisterInfo(unsigned RA, unsigned D = 0, unsigned E = 0, ++ unsigned PC = 0, unsigned HwMode = 0); ++ unsigned composeSubRegIndicesImpl(unsigned, unsigned) const override; ++ LaneBitmask composeSubRegIndexLaneMaskImpl(unsigned, LaneBitmask) const override; ++ LaneBitmask reverseComposeSubRegIndexLaneMaskImpl(unsigned, LaneBitmask) const override; ++ const TargetRegisterClass *getSubClassWithSubReg(const TargetRegisterClass*, unsigned) const override; ++ const RegClassWeight &getRegClassWeight(const TargetRegisterClass *RC) const override; ++ unsigned getRegUnitWeight(unsigned RegUnit) const override; ++ unsigned getNumRegPressureSets() const override; ++ const char *getRegPressureSetName(unsigned Idx) const override; ++ unsigned getRegPressureSetLimit(const MachineFunction &MF, unsigned Idx) const override; ++ const int *getRegClassPressureSets(const TargetRegisterClass *RC) const override; ++ const int *getRegUnitPressureSets(unsigned RegUnit) const override; ++ ArrayRef getRegMaskNames() const override; ++ ArrayRef getRegMasks() const override; ++ /// Devirtualized TargetFrameLowering. ++ static const LoongArchFrameLowering *getFrameLowering( ++ const MachineFunction &MF); ++}; ++ ++namespace LoongArch { // Register classes ++ extern const TargetRegisterClass FCSRRegClass; ++ extern const TargetRegisterClass FCSR_with_sub_fcsr1RegClass; ++ extern const TargetRegisterClass GPR32RegClass; ++ extern const TargetRegisterClass FCFRRegClass; ++ extern const TargetRegisterClass SP32RegClass; ++ extern const TargetRegisterClass TP32RegClass; ++ extern const TargetRegisterClass FGR32RegClass; ++ extern const TargetRegisterClass FGR64RegClass; ++ extern const TargetRegisterClass GPR64RegClass; ++ extern const TargetRegisterClass GPRTC64RegClass; ++ extern const TargetRegisterClass SP64RegClass; ++ extern const TargetRegisterClass TP64RegClass; ++ extern const TargetRegisterClass LSX128BRegClass; ++ extern const TargetRegisterClass LSX128DRegClass; ++ extern const TargetRegisterClass LSX128HRegClass; ++ extern const TargetRegisterClass LSX128WRegClass; ++ extern const TargetRegisterClass LASX256BRegClass; ++ extern const TargetRegisterClass LASX256DRegClass; ++ extern const TargetRegisterClass LASX256HRegClass; ++ extern const TargetRegisterClass LASX256WRegClass; ++} // end namespace LoongArch ++ ++} // end namespace llvm ++ ++#endif // GET_REGINFO_HEADER ++ ++/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\ ++|* *| ++|* Target Register and Register Classes Information *| ++|* *| ++|* Automatically generated file, do not edit! *| ++|* *| ++\*===----------------------------------------------------------------------===*/ ++ ++ ++#ifdef GET_REGINFO_TARGET_DESC ++#undef GET_REGINFO_TARGET_DESC ++ ++namespace llvm { ++ ++extern const MCRegisterClass LoongArchMCRegisterClasses[]; ++ ++static const MVT::SimpleValueType VTLists[] = { ++ /* 0 */ MVT::i32, MVT::Other, ++ /* 2 */ MVT::i64, MVT::Other, ++ /* 4 */ MVT::f32, MVT::Other, ++ /* 6 */ MVT::f64, MVT::Other, ++ /* 8 */ MVT::v16i8, MVT::Other, ++ /* 10 */ MVT::v32i8, MVT::Other, ++ /* 12 */ MVT::v8i16, MVT::Other, ++ /* 14 */ MVT::v16i16, MVT::Other, ++ /* 16 */ MVT::v4i32, MVT::v4f32, MVT::Other, ++ /* 19 */ MVT::v8i32, MVT::v8f32, MVT::Other, ++ /* 22 */ MVT::v2i64, MVT::v2f64, MVT::Other, ++ /* 25 */ MVT::v4i64, MVT::v4f64, MVT::Other, ++}; ++ ++static const char *const SubRegIndexNameTable[] = { "sub_32", "sub_64", "sub_128", "sub_fcsr1", "sub_fcsr2", "sub_fcsr3", "sub_hi", "sub_lo", "" }; ++ ++ ++static const LaneBitmask SubRegIndexLaneMaskTable[] = { ++ LaneBitmask::getAll(), ++ LaneBitmask(0x00000001), // sub_32 ++ LaneBitmask(0x00000021), // sub_64 ++ LaneBitmask(0x00000021), // sub_128 ++ LaneBitmask(0x00000002), // sub_fcsr1 ++ LaneBitmask(0x00000004), // sub_fcsr2 ++ LaneBitmask(0x00000008), // sub_fcsr3 ++ LaneBitmask(0x00000010), // sub_hi ++ LaneBitmask(0x00000020), // sub_lo ++ }; ++ ++ ++ ++static const TargetRegisterInfo::RegClassInfo RegClassInfos[] = { ++ // Mode = 0 (Default) ++ { 32, 32, 4, VTLists+0 }, // FCSR ++ { 32, 32, 4, VTLists+0 }, // FCSR_with_sub_fcsr1 ++ { 32, 32, 32, VTLists+0 }, // GPR32 ++ { 32, 32, 32, VTLists+0 }, // FCFR ++ { 32, 32, 32, VTLists+0 }, // SP32 ++ { 32, 32, 32, VTLists+0 }, // TP32 ++ { 32, 32, 64, VTLists+4 }, // FGR32 ++ { 64, 64, 64, VTLists+6 }, // FGR64 ++ { 64, 64, 64, VTLists+2 }, // GPR64 ++ { 64, 64, 64, VTLists+2 }, // GPRTC64 ++ { 64, 64, 64, VTLists+2 }, // SP64 ++ { 64, 64, 64, VTLists+2 }, // TP64 ++ { 128, 128, 128, VTLists+8 }, // LSX128B ++ { 128, 128, 128, VTLists+22 }, // LSX128D ++ { 128, 128, 128, VTLists+12 }, // LSX128H ++ { 128, 128, 128, VTLists+16 }, // LSX128W ++ { 256, 256, 256, VTLists+10 }, // LASX256B ++ { 256, 256, 256, VTLists+25 }, // LASX256D ++ { 256, 256, 256, VTLists+14 }, // LASX256H ++ { 256, 256, 256, VTLists+19 }, // LASX256W ++}; ++ ++static const TargetRegisterClass *const NullRegClasses[] = { nullptr }; ++ ++static const uint32_t FCSRSubClassMask[] = { ++ 0x00000003, ++ 0x00000002, // sub_fcsr1 ++ 0x00000002, // sub_fcsr2 ++ 0x00000002, // sub_fcsr3 ++}; ++ ++static const uint32_t FCSR_with_sub_fcsr1SubClassMask[] = { ++ 0x00000002, ++}; ++ ++static const uint32_t GPR32SubClassMask[] = { ++ 0x00000034, ++ 0x00000f00, // sub_32 ++}; ++ ++static const uint32_t FCFRSubClassMask[] = { ++ 0x00000008, ++}; ++ ++static const uint32_t SP32SubClassMask[] = { ++ 0x00000010, ++ 0x00000400, // sub_32 ++}; ++ ++static const uint32_t TP32SubClassMask[] = { ++ 0x00000020, ++ 0x00000800, // sub_32 ++}; ++ ++static const uint32_t FGR32SubClassMask[] = { ++ 0x00000040, ++ 0x000ff080, // sub_lo ++}; ++ ++static const uint32_t FGR64SubClassMask[] = { ++ 0x00000080, ++ 0x000ff000, // sub_64 ++}; ++ ++static const uint32_t GPR64SubClassMask[] = { ++ 0x00000f00, ++}; ++ ++static const uint32_t GPRTC64SubClassMask[] = { ++ 0x00000200, ++}; ++ ++static const uint32_t SP64SubClassMask[] = { ++ 0x00000400, ++}; ++ ++static const uint32_t TP64SubClassMask[] = { ++ 0x00000800, ++}; ++ ++static const uint32_t LSX128BSubClassMask[] = { ++ 0x0000f000, ++ 0x000f0000, // sub_128 ++}; ++ ++static const uint32_t LSX128DSubClassMask[] = { ++ 0x0000f000, ++ 0x000f0000, // sub_128 ++}; ++ ++static const uint32_t LSX128HSubClassMask[] = { ++ 0x0000f000, ++ 0x000f0000, // sub_128 ++}; ++ ++static const uint32_t LSX128WSubClassMask[] = { ++ 0x0000f000, ++ 0x000f0000, // sub_128 ++}; ++ ++static const uint32_t LASX256BSubClassMask[] = { ++ 0x000f0000, ++}; ++ ++static const uint32_t LASX256DSubClassMask[] = { ++ 0x000f0000, ++}; ++ ++static const uint32_t LASX256HSubClassMask[] = { ++ 0x000f0000, ++}; ++ ++static const uint32_t LASX256WSubClassMask[] = { ++ 0x000f0000, ++}; ++ ++static const uint16_t SuperRegIdxSeqs[] = { ++ /* 0 */ 1, 0, ++ /* 2 */ 2, 0, ++ /* 4 */ 3, 0, ++ /* 6 */ 4, 5, 6, 0, ++ /* 10 */ 8, 0, ++}; ++ ++static const TargetRegisterClass *const FCSR_with_sub_fcsr1Superclasses[] = { ++ &LoongArch::FCSRRegClass, ++ nullptr ++}; ++ ++static const TargetRegisterClass *const SP32Superclasses[] = { ++ &LoongArch::GPR32RegClass, ++ nullptr ++}; ++ ++static const TargetRegisterClass *const TP32Superclasses[] = { ++ &LoongArch::GPR32RegClass, ++ nullptr ++}; ++ ++static const TargetRegisterClass *const GPRTC64Superclasses[] = { ++ &LoongArch::GPR64RegClass, ++ nullptr ++}; ++ ++static const TargetRegisterClass *const SP64Superclasses[] = { ++ &LoongArch::GPR64RegClass, ++ nullptr ++}; ++ ++static const TargetRegisterClass *const TP64Superclasses[] = { ++ &LoongArch::GPR64RegClass, ++ nullptr ++}; ++ ++static const TargetRegisterClass *const LSX128BSuperclasses[] = { ++ &LoongArch::LSX128DRegClass, ++ &LoongArch::LSX128HRegClass, ++ &LoongArch::LSX128WRegClass, ++ nullptr ++}; ++ ++static const TargetRegisterClass *const LSX128DSuperclasses[] = { ++ &LoongArch::LSX128BRegClass, ++ &LoongArch::LSX128HRegClass, ++ &LoongArch::LSX128WRegClass, ++ nullptr ++}; ++ ++static const TargetRegisterClass *const LSX128HSuperclasses[] = { ++ &LoongArch::LSX128BRegClass, ++ &LoongArch::LSX128DRegClass, ++ &LoongArch::LSX128WRegClass, ++ nullptr ++}; ++ ++static const TargetRegisterClass *const LSX128WSuperclasses[] = { ++ &LoongArch::LSX128BRegClass, ++ &LoongArch::LSX128DRegClass, ++ &LoongArch::LSX128HRegClass, ++ nullptr ++}; ++ ++static const TargetRegisterClass *const LASX256BSuperclasses[] = { ++ &LoongArch::LASX256DRegClass, ++ &LoongArch::LASX256HRegClass, ++ &LoongArch::LASX256WRegClass, ++ nullptr ++}; ++ ++static const TargetRegisterClass *const LASX256DSuperclasses[] = { ++ &LoongArch::LASX256BRegClass, ++ &LoongArch::LASX256HRegClass, ++ &LoongArch::LASX256WRegClass, ++ nullptr ++}; ++ ++static const TargetRegisterClass *const LASX256HSuperclasses[] = { ++ &LoongArch::LASX256BRegClass, ++ &LoongArch::LASX256DRegClass, ++ &LoongArch::LASX256WRegClass, ++ nullptr ++}; ++ ++static const TargetRegisterClass *const LASX256WSuperclasses[] = { ++ &LoongArch::LASX256BRegClass, ++ &LoongArch::LASX256DRegClass, ++ &LoongArch::LASX256HRegClass, ++ nullptr ++}; ++ ++ ++namespace LoongArch { // Register class instances ++ extern const TargetRegisterClass FCSRRegClass = { ++ &LoongArchMCRegisterClasses[FCSRRegClassID], ++ FCSRSubClassMask, ++ SuperRegIdxSeqs + 6, ++ LaneBitmask(0x0000000E), ++ 0, ++ true, /* HasDisjunctSubRegs */ ++ false, /* CoveredBySubRegs */ ++ NullRegClasses, ++ nullptr ++ }; ++ ++ extern const TargetRegisterClass FCSR_with_sub_fcsr1RegClass = { ++ &LoongArchMCRegisterClasses[FCSR_with_sub_fcsr1RegClassID], ++ FCSR_with_sub_fcsr1SubClassMask, ++ SuperRegIdxSeqs + 1, ++ LaneBitmask(0x0000000E), ++ 0, ++ true, /* HasDisjunctSubRegs */ ++ false, /* CoveredBySubRegs */ ++ FCSR_with_sub_fcsr1Superclasses, ++ nullptr ++ }; ++ ++ extern const TargetRegisterClass GPR32RegClass = { ++ &LoongArchMCRegisterClasses[GPR32RegClassID], ++ GPR32SubClassMask, ++ SuperRegIdxSeqs + 0, ++ LaneBitmask(0x00000001), ++ 0, ++ false, /* HasDisjunctSubRegs */ ++ false, /* CoveredBySubRegs */ ++ NullRegClasses, ++ nullptr ++ }; ++ ++ extern const TargetRegisterClass FCFRRegClass = { ++ &LoongArchMCRegisterClasses[FCFRRegClassID], ++ FCFRSubClassMask, ++ SuperRegIdxSeqs + 1, ++ LaneBitmask(0x00000001), ++ 0, ++ false, /* HasDisjunctSubRegs */ ++ false, /* CoveredBySubRegs */ ++ NullRegClasses, ++ nullptr ++ }; ++ ++ extern const TargetRegisterClass SP32RegClass = { ++ &LoongArchMCRegisterClasses[SP32RegClassID], ++ SP32SubClassMask, ++ SuperRegIdxSeqs + 0, ++ LaneBitmask(0x00000001), ++ 0, ++ false, /* HasDisjunctSubRegs */ ++ false, /* CoveredBySubRegs */ ++ SP32Superclasses, ++ nullptr ++ }; ++ ++ extern const TargetRegisterClass TP32RegClass = { ++ &LoongArchMCRegisterClasses[TP32RegClassID], ++ TP32SubClassMask, ++ SuperRegIdxSeqs + 0, ++ LaneBitmask(0x00000001), ++ 0, ++ false, /* HasDisjunctSubRegs */ ++ false, /* CoveredBySubRegs */ ++ TP32Superclasses, ++ nullptr ++ }; ++ ++ extern const TargetRegisterClass FGR32RegClass = { ++ &LoongArchMCRegisterClasses[FGR32RegClassID], ++ FGR32SubClassMask, ++ SuperRegIdxSeqs + 10, ++ LaneBitmask(0x00000001), ++ 0, ++ false, /* HasDisjunctSubRegs */ ++ false, /* CoveredBySubRegs */ ++ NullRegClasses, ++ nullptr ++ }; ++ ++ extern const TargetRegisterClass FGR64RegClass = { ++ &LoongArchMCRegisterClasses[FGR64RegClassID], ++ FGR64SubClassMask, ++ SuperRegIdxSeqs + 2, ++ LaneBitmask(0x00000020), ++ 0, ++ false, /* HasDisjunctSubRegs */ ++ false, /* CoveredBySubRegs */ ++ NullRegClasses, ++ nullptr ++ }; ++ ++ extern const TargetRegisterClass GPR64RegClass = { ++ &LoongArchMCRegisterClasses[GPR64RegClassID], ++ GPR64SubClassMask, ++ SuperRegIdxSeqs + 1, ++ LaneBitmask(0x00000001), ++ 0, ++ false, /* HasDisjunctSubRegs */ ++ false, /* CoveredBySubRegs */ ++ NullRegClasses, ++ nullptr ++ }; ++ ++ extern const TargetRegisterClass GPRTC64RegClass = { ++ &LoongArchMCRegisterClasses[GPRTC64RegClassID], ++ GPRTC64SubClassMask, ++ SuperRegIdxSeqs + 1, ++ LaneBitmask(0x00000001), ++ 0, ++ false, /* HasDisjunctSubRegs */ ++ false, /* CoveredBySubRegs */ ++ GPRTC64Superclasses, ++ nullptr ++ }; ++ ++ extern const TargetRegisterClass SP64RegClass = { ++ &LoongArchMCRegisterClasses[SP64RegClassID], ++ SP64SubClassMask, ++ SuperRegIdxSeqs + 1, ++ LaneBitmask(0x00000001), ++ 0, ++ false, /* HasDisjunctSubRegs */ ++ false, /* CoveredBySubRegs */ ++ SP64Superclasses, ++ nullptr ++ }; ++ ++ extern const TargetRegisterClass TP64RegClass = { ++ &LoongArchMCRegisterClasses[TP64RegClassID], ++ TP64SubClassMask, ++ SuperRegIdxSeqs + 1, ++ LaneBitmask(0x00000001), ++ 0, ++ false, /* HasDisjunctSubRegs */ ++ false, /* CoveredBySubRegs */ ++ TP64Superclasses, ++ nullptr ++ }; ++ ++ extern const TargetRegisterClass LSX128BRegClass = { ++ &LoongArchMCRegisterClasses[LSX128BRegClassID], ++ LSX128BSubClassMask, ++ SuperRegIdxSeqs + 4, ++ LaneBitmask(0x00000021), ++ 0, ++ false, /* HasDisjunctSubRegs */ ++ false, /* CoveredBySubRegs */ ++ LSX128BSuperclasses, ++ nullptr ++ }; ++ ++ extern const TargetRegisterClass LSX128DRegClass = { ++ &LoongArchMCRegisterClasses[LSX128DRegClassID], ++ LSX128DSubClassMask, ++ SuperRegIdxSeqs + 4, ++ LaneBitmask(0x00000021), ++ 0, ++ false, /* HasDisjunctSubRegs */ ++ false, /* CoveredBySubRegs */ ++ LSX128DSuperclasses, ++ nullptr ++ }; ++ ++ extern const TargetRegisterClass LSX128HRegClass = { ++ &LoongArchMCRegisterClasses[LSX128HRegClassID], ++ LSX128HSubClassMask, ++ SuperRegIdxSeqs + 4, ++ LaneBitmask(0x00000021), ++ 0, ++ false, /* HasDisjunctSubRegs */ ++ false, /* CoveredBySubRegs */ ++ LSX128HSuperclasses, ++ nullptr ++ }; ++ ++ extern const TargetRegisterClass LSX128WRegClass = { ++ &LoongArchMCRegisterClasses[LSX128WRegClassID], ++ LSX128WSubClassMask, ++ SuperRegIdxSeqs + 4, ++ LaneBitmask(0x00000021), ++ 0, ++ false, /* HasDisjunctSubRegs */ ++ false, /* CoveredBySubRegs */ ++ LSX128WSuperclasses, ++ nullptr ++ }; ++ ++ extern const TargetRegisterClass LASX256BRegClass = { ++ &LoongArchMCRegisterClasses[LASX256BRegClassID], ++ LASX256BSubClassMask, ++ SuperRegIdxSeqs + 1, ++ LaneBitmask(0x00000021), ++ 0, ++ false, /* HasDisjunctSubRegs */ ++ false, /* CoveredBySubRegs */ ++ LASX256BSuperclasses, ++ nullptr ++ }; ++ ++ extern const TargetRegisterClass LASX256DRegClass = { ++ &LoongArchMCRegisterClasses[LASX256DRegClassID], ++ LASX256DSubClassMask, ++ SuperRegIdxSeqs + 1, ++ LaneBitmask(0x00000021), ++ 0, ++ false, /* HasDisjunctSubRegs */ ++ false, /* CoveredBySubRegs */ ++ LASX256DSuperclasses, ++ nullptr ++ }; ++ ++ extern const TargetRegisterClass LASX256HRegClass = { ++ &LoongArchMCRegisterClasses[LASX256HRegClassID], ++ LASX256HSubClassMask, ++ SuperRegIdxSeqs + 1, ++ LaneBitmask(0x00000021), ++ 0, ++ false, /* HasDisjunctSubRegs */ ++ false, /* CoveredBySubRegs */ ++ LASX256HSuperclasses, ++ nullptr ++ }; ++ ++ extern const TargetRegisterClass LASX256WRegClass = { ++ &LoongArchMCRegisterClasses[LASX256WRegClassID], ++ LASX256WSubClassMask, ++ SuperRegIdxSeqs + 1, ++ LaneBitmask(0x00000021), ++ 0, ++ false, /* HasDisjunctSubRegs */ ++ false, /* CoveredBySubRegs */ ++ LASX256WSuperclasses, ++ nullptr ++ }; ++ ++} // end namespace LoongArch ++ ++namespace { ++ const TargetRegisterClass* const RegisterClasses[] = { ++ &LoongArch::FCSRRegClass, ++ &LoongArch::FCSR_with_sub_fcsr1RegClass, ++ &LoongArch::GPR32RegClass, ++ &LoongArch::FCFRRegClass, ++ &LoongArch::SP32RegClass, ++ &LoongArch::TP32RegClass, ++ &LoongArch::FGR32RegClass, ++ &LoongArch::FGR64RegClass, ++ &LoongArch::GPR64RegClass, ++ &LoongArch::GPRTC64RegClass, ++ &LoongArch::SP64RegClass, ++ &LoongArch::TP64RegClass, ++ &LoongArch::LSX128BRegClass, ++ &LoongArch::LSX128DRegClass, ++ &LoongArch::LSX128HRegClass, ++ &LoongArch::LSX128WRegClass, ++ &LoongArch::LASX256BRegClass, ++ &LoongArch::LASX256DRegClass, ++ &LoongArch::LASX256HRegClass, ++ &LoongArch::LASX256WRegClass, ++ }; ++} // end anonymous namespace ++ ++static const TargetRegisterInfoDesc LoongArchRegInfoDesc[] = { // Extra Descriptors ++ { 0, false }, ++ { 0, true }, ++ { 0, false }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, false }, ++ { 0, false }, ++ { 0, false }, ++ { 0, false }, ++ { 0, false }, ++ { 0, false }, ++ { 0, false }, ++ { 0, false }, ++ { 0, false }, ++ { 0, false }, ++ { 0, false }, ++ { 0, false }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, false }, ++ { 0, false }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, true }, ++ { 0, false }, ++ { 0, false }, ++}; ++unsigned LoongArchGenRegisterInfo::composeSubRegIndicesImpl(unsigned IdxA, unsigned IdxB) const { ++ static const uint8_t Rows[1][8] = { ++ { LoongArch::sub_32, LoongArch::sub_64, 0, 0, 0, 0, 0, LoongArch::sub_lo, }, ++ }; ++ ++ --IdxA; assert(IdxA < 8); ++ --IdxB; assert(IdxB < 8); ++ return Rows[0][IdxB]; ++} ++ ++ struct MaskRolOp { ++ LaneBitmask Mask; ++ uint8_t RotateLeft; ++ }; ++ static const MaskRolOp LaneMaskComposeSequences[] = { ++ { LaneBitmask(0xFFFFFFFF), 0 }, { LaneBitmask::getNone(), 0 }, // Sequence 0 ++ { LaneBitmask(0xFFFFFFFF), 1 }, { LaneBitmask::getNone(), 0 }, // Sequence 2 ++ { LaneBitmask(0xFFFFFFFF), 2 }, { LaneBitmask::getNone(), 0 }, // Sequence 4 ++ { LaneBitmask(0xFFFFFFFF), 3 }, { LaneBitmask::getNone(), 0 }, // Sequence 6 ++ { LaneBitmask(0xFFFFFFFF), 4 }, { LaneBitmask::getNone(), 0 }, // Sequence 8 ++ { LaneBitmask(0xFFFFFFFF), 5 }, { LaneBitmask::getNone(), 0 } // Sequence 10 ++ }; ++ static const MaskRolOp *const CompositeSequences[] = { ++ &LaneMaskComposeSequences[0], // to sub_32 ++ &LaneMaskComposeSequences[0], // to sub_64 ++ &LaneMaskComposeSequences[0], // to sub_128 ++ &LaneMaskComposeSequences[2], // to sub_fcsr1 ++ &LaneMaskComposeSequences[4], // to sub_fcsr2 ++ &LaneMaskComposeSequences[6], // to sub_fcsr3 ++ &LaneMaskComposeSequences[8], // to sub_hi ++ &LaneMaskComposeSequences[10] // to sub_lo ++ }; ++ ++LaneBitmask LoongArchGenRegisterInfo::composeSubRegIndexLaneMaskImpl(unsigned IdxA, LaneBitmask LaneMask) const { ++ --IdxA; assert(IdxA < 8 && "Subregister index out of bounds"); ++ LaneBitmask Result; ++ for (const MaskRolOp *Ops = CompositeSequences[IdxA]; Ops->Mask.any(); ++Ops) { ++ LaneBitmask::Type M = LaneMask.getAsInteger() & Ops->Mask.getAsInteger(); ++ if (unsigned S = Ops->RotateLeft) ++ Result |= LaneBitmask((M << S) | (M >> (LaneBitmask::BitWidth - S))); ++ else ++ Result |= LaneBitmask(M); ++ } ++ return Result; ++} ++ ++LaneBitmask LoongArchGenRegisterInfo::reverseComposeSubRegIndexLaneMaskImpl(unsigned IdxA, LaneBitmask LaneMask) const { ++ LaneMask &= getSubRegIndexLaneMask(IdxA); ++ --IdxA; assert(IdxA < 8 && "Subregister index out of bounds"); ++ LaneBitmask Result; ++ for (const MaskRolOp *Ops = CompositeSequences[IdxA]; Ops->Mask.any(); ++Ops) { ++ LaneBitmask::Type M = LaneMask.getAsInteger(); ++ if (unsigned S = Ops->RotateLeft) ++ Result |= LaneBitmask((M >> S) | (M << (LaneBitmask::BitWidth - S))); ++ else ++ Result |= LaneBitmask(M); ++ } ++ return Result; ++} ++ ++const TargetRegisterClass *LoongArchGenRegisterInfo::getSubClassWithSubReg(const TargetRegisterClass *RC, unsigned Idx) const { ++ static const uint8_t Table[20][8] = { ++ { // FCSR ++ 0, // sub_32 ++ 0, // sub_64 ++ 0, // sub_128 ++ 2, // sub_fcsr1 -> FCSR_with_sub_fcsr1 ++ 2, // sub_fcsr2 -> FCSR_with_sub_fcsr1 ++ 2, // sub_fcsr3 -> FCSR_with_sub_fcsr1 ++ 0, // sub_hi ++ 0, // sub_lo ++ }, ++ { // FCSR_with_sub_fcsr1 ++ 0, // sub_32 ++ 0, // sub_64 ++ 0, // sub_128 ++ 2, // sub_fcsr1 -> FCSR_with_sub_fcsr1 ++ 2, // sub_fcsr2 -> FCSR_with_sub_fcsr1 ++ 2, // sub_fcsr3 -> FCSR_with_sub_fcsr1 ++ 0, // sub_hi ++ 0, // sub_lo ++ }, ++ { // GPR32 ++ 0, // sub_32 ++ 0, // sub_64 ++ 0, // sub_128 ++ 0, // sub_fcsr1 ++ 0, // sub_fcsr2 ++ 0, // sub_fcsr3 ++ 0, // sub_hi ++ 0, // sub_lo ++ }, ++ { // FCFR ++ 0, // sub_32 ++ 0, // sub_64 ++ 0, // sub_128 ++ 0, // sub_fcsr1 ++ 0, // sub_fcsr2 ++ 0, // sub_fcsr3 ++ 0, // sub_hi ++ 0, // sub_lo ++ }, ++ { // SP32 ++ 0, // sub_32 ++ 0, // sub_64 ++ 0, // sub_128 ++ 0, // sub_fcsr1 ++ 0, // sub_fcsr2 ++ 0, // sub_fcsr3 ++ 0, // sub_hi ++ 0, // sub_lo ++ }, ++ { // TP32 ++ 0, // sub_32 ++ 0, // sub_64 ++ 0, // sub_128 ++ 0, // sub_fcsr1 ++ 0, // sub_fcsr2 ++ 0, // sub_fcsr3 ++ 0, // sub_hi ++ 0, // sub_lo ++ }, ++ { // FGR32 ++ 0, // sub_32 ++ 0, // sub_64 ++ 0, // sub_128 ++ 0, // sub_fcsr1 ++ 0, // sub_fcsr2 ++ 0, // sub_fcsr3 ++ 0, // sub_hi ++ 0, // sub_lo ++ }, ++ { // FGR64 ++ 0, // sub_32 ++ 0, // sub_64 ++ 0, // sub_128 ++ 0, // sub_fcsr1 ++ 0, // sub_fcsr2 ++ 0, // sub_fcsr3 ++ 0, // sub_hi ++ 8, // sub_lo -> FGR64 ++ }, ++ { // GPR64 ++ 9, // sub_32 -> GPR64 ++ 0, // sub_64 ++ 0, // sub_128 ++ 0, // sub_fcsr1 ++ 0, // sub_fcsr2 ++ 0, // sub_fcsr3 ++ 0, // sub_hi ++ 0, // sub_lo ++ }, ++ { // GPRTC64 ++ 10, // sub_32 -> GPRTC64 ++ 0, // sub_64 ++ 0, // sub_128 ++ 0, // sub_fcsr1 ++ 0, // sub_fcsr2 ++ 0, // sub_fcsr3 ++ 0, // sub_hi ++ 0, // sub_lo ++ }, ++ { // SP64 ++ 11, // sub_32 -> SP64 ++ 0, // sub_64 ++ 0, // sub_128 ++ 0, // sub_fcsr1 ++ 0, // sub_fcsr2 ++ 0, // sub_fcsr3 ++ 0, // sub_hi ++ 0, // sub_lo ++ }, ++ { // TP64 ++ 12, // sub_32 -> TP64 ++ 0, // sub_64 ++ 0, // sub_128 ++ 0, // sub_fcsr1 ++ 0, // sub_fcsr2 ++ 0, // sub_fcsr3 ++ 0, // sub_hi ++ 0, // sub_lo ++ }, ++ { // LSX128B ++ 0, // sub_32 ++ 13, // sub_64 -> LSX128B ++ 0, // sub_128 ++ 0, // sub_fcsr1 ++ 0, // sub_fcsr2 ++ 0, // sub_fcsr3 ++ 0, // sub_hi ++ 13, // sub_lo -> LSX128B ++ }, ++ { // LSX128D ++ 0, // sub_32 ++ 14, // sub_64 -> LSX128D ++ 0, // sub_128 ++ 0, // sub_fcsr1 ++ 0, // sub_fcsr2 ++ 0, // sub_fcsr3 ++ 0, // sub_hi ++ 14, // sub_lo -> LSX128D ++ }, ++ { // LSX128H ++ 0, // sub_32 ++ 15, // sub_64 -> LSX128H ++ 0, // sub_128 ++ 0, // sub_fcsr1 ++ 0, // sub_fcsr2 ++ 0, // sub_fcsr3 ++ 0, // sub_hi ++ 15, // sub_lo -> LSX128H ++ }, ++ { // LSX128W ++ 0, // sub_32 ++ 16, // sub_64 -> LSX128W ++ 0, // sub_128 ++ 0, // sub_fcsr1 ++ 0, // sub_fcsr2 ++ 0, // sub_fcsr3 ++ 0, // sub_hi ++ 16, // sub_lo -> LSX128W ++ }, ++ { // LASX256B ++ 0, // sub_32 ++ 17, // sub_64 -> LASX256B ++ 17, // sub_128 -> LASX256B ++ 0, // sub_fcsr1 ++ 0, // sub_fcsr2 ++ 0, // sub_fcsr3 ++ 0, // sub_hi ++ 17, // sub_lo -> LASX256B ++ }, ++ { // LASX256D ++ 0, // sub_32 ++ 18, // sub_64 -> LASX256D ++ 18, // sub_128 -> LASX256D ++ 0, // sub_fcsr1 ++ 0, // sub_fcsr2 ++ 0, // sub_fcsr3 ++ 0, // sub_hi ++ 18, // sub_lo -> LASX256D ++ }, ++ { // LASX256H ++ 0, // sub_32 ++ 19, // sub_64 -> LASX256H ++ 19, // sub_128 -> LASX256H ++ 0, // sub_fcsr1 ++ 0, // sub_fcsr2 ++ 0, // sub_fcsr3 ++ 0, // sub_hi ++ 19, // sub_lo -> LASX256H ++ }, ++ { // LASX256W ++ 0, // sub_32 ++ 20, // sub_64 -> LASX256W ++ 20, // sub_128 -> LASX256W ++ 0, // sub_fcsr1 ++ 0, // sub_fcsr2 ++ 0, // sub_fcsr3 ++ 0, // sub_hi ++ 20, // sub_lo -> LASX256W ++ }, ++ }; ++ assert(RC && "Missing regclass"); ++ if (!Idx) return RC; ++ --Idx; ++ assert(Idx < 8 && "Bad subreg"); ++ unsigned TV = Table[RC->getID()][Idx]; ++ return TV ? getRegClass(TV - 1) : nullptr; ++} ++ ++/// Get the weight in units of pressure for this register class. ++const RegClassWeight &LoongArchGenRegisterInfo:: ++getRegClassWeight(const TargetRegisterClass *RC) const { ++ static const RegClassWeight RCWeightTable[] = { ++ {0, 0}, // FCSR ++ {0, 0}, // FCSR_with_sub_fcsr1 ++ {1, 32}, // GPR32 ++ {0, 0}, // FCFR ++ {1, 1}, // SP32 ++ {1, 1}, // TP32 ++ {1, 32}, // FGR32 ++ {1, 32}, // FGR64 ++ {1, 32}, // GPR64 ++ {1, 17}, // GPRTC64 ++ {1, 1}, // SP64 ++ {1, 1}, // TP64 ++ {1, 32}, // LSX128B ++ {1, 32}, // LSX128D ++ {1, 32}, // LSX128H ++ {1, 32}, // LSX128W ++ {1, 32}, // LASX256B ++ {1, 32}, // LASX256D ++ {1, 32}, // LASX256H ++ {1, 32}, // LASX256W ++ }; ++ return RCWeightTable[RC->getID()]; ++} ++ ++/// Get the weight in units of pressure for this register unit. ++unsigned LoongArchGenRegisterInfo:: ++getRegUnitWeight(unsigned RegUnit) const { ++ assert(RegUnit < 76 && "invalid register unit"); ++ // All register units have unit weight. ++ return 1; ++} ++ ++ ++// Get the number of dimensions of register pressure. ++unsigned LoongArchGenRegisterInfo::getNumRegPressureSets() const { ++ return 3; ++} ++ ++// Get the name of this register unit pressure set. ++const char *LoongArchGenRegisterInfo:: ++getRegPressureSetName(unsigned Idx) const { ++ static const char *const PressureNameTable[] = { ++ "GPRTC64", ++ "GPR32", ++ "FGR32", ++ }; ++ return PressureNameTable[Idx]; ++} ++ ++// Get the register unit pressure limit for this dimension. ++// This limit must be adjusted dynamically for reserved registers. ++unsigned LoongArchGenRegisterInfo:: ++getRegPressureSetLimit(const MachineFunction &MF, unsigned Idx) const { ++ static const uint8_t PressureLimitTable[] = { ++ 17, // 0: GPRTC64 ++ 32, // 1: GPR32 ++ 32, // 2: FGR32 ++ }; ++ return PressureLimitTable[Idx]; ++} ++ ++/// Table of pressure sets per register class or unit. ++static const int RCSetsTable[] = { ++ /* 0 */ 0, 1, -1, ++ /* 3 */ 2, -1, ++}; ++ ++/// Get the dimensions of register pressure impacted by this register class. ++/// Returns a -1 terminated array of pressure set IDs ++const int* LoongArchGenRegisterInfo:: ++getRegClassPressureSets(const TargetRegisterClass *RC) const { ++ static const uint8_t RCSetStartTable[] = { ++ 2,2,1,2,2,2,3,3,1,0,2,2,3,3,3,3,3,3,3,3,}; ++ return &RCSetsTable[RCSetStartTable[RC->getID()]]; ++} ++ ++/// Get the dimensions of register pressure impacted by this register unit. ++/// Returns a -1 terminated array of pressure set IDs ++const int* LoongArchGenRegisterInfo:: ++getRegUnitPressureSets(unsigned RegUnit) const { ++ assert(RegUnit < 76 && "invalid register unit"); ++ static const uint8_t RUSetStartTable[] = { ++ 1,2,1,1,1,1,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,}; ++ return &RCSetsTable[RUSetStartTable[RegUnit]]; ++} ++ ++extern const MCRegisterDesc LoongArchRegDesc[]; ++extern const MCPhysReg LoongArchRegDiffLists[]; ++extern const LaneBitmask LoongArchLaneMaskLists[]; ++extern const char LoongArchRegStrings[]; ++extern const char LoongArchRegClassStrings[]; ++extern const MCPhysReg LoongArchRegUnitRoots[][2]; ++extern const uint16_t LoongArchSubRegIdxLists[]; ++extern const MCRegisterInfo::SubRegCoveredBits LoongArchSubRegIdxRanges[]; ++extern const uint16_t LoongArchRegEncodingTable[]; ++// LoongArch Dwarf<->LLVM register mappings. ++extern const MCRegisterInfo::DwarfLLVMRegPair LoongArchDwarfFlavour0Dwarf2L[]; ++extern const unsigned LoongArchDwarfFlavour0Dwarf2LSize; ++ ++extern const MCRegisterInfo::DwarfLLVMRegPair LoongArchEHFlavour0Dwarf2L[]; ++extern const unsigned LoongArchEHFlavour0Dwarf2LSize; ++ ++extern const MCRegisterInfo::DwarfLLVMRegPair LoongArchDwarfFlavour0L2Dwarf[]; ++extern const unsigned LoongArchDwarfFlavour0L2DwarfSize; ++ ++extern const MCRegisterInfo::DwarfLLVMRegPair LoongArchEHFlavour0L2Dwarf[]; ++extern const unsigned LoongArchEHFlavour0L2DwarfSize; ++ ++LoongArchGenRegisterInfo:: ++LoongArchGenRegisterInfo(unsigned RA, unsigned DwarfFlavour, unsigned EHFlavour, ++ unsigned PC, unsigned HwMode) ++ : TargetRegisterInfo(LoongArchRegInfoDesc, RegisterClasses, RegisterClasses+20, ++ SubRegIndexNameTable, SubRegIndexLaneMaskTable, ++ LaneBitmask(0xFFFFFFD0), RegClassInfos, HwMode) { ++ InitMCRegisterInfo(LoongArchRegDesc, 210, RA, PC, ++ LoongArchMCRegisterClasses, 20, ++ LoongArchRegUnitRoots, ++ 76, ++ LoongArchRegDiffLists, ++ LoongArchLaneMaskLists, ++ LoongArchRegStrings, ++ LoongArchRegClassStrings, ++ LoongArchSubRegIdxLists, ++ 9, ++ LoongArchSubRegIdxRanges, ++ LoongArchRegEncodingTable); ++ ++ switch (DwarfFlavour) { ++ default: ++ llvm_unreachable("Unknown DWARF flavour"); ++ case 0: ++ mapDwarfRegsToLLVMRegs(LoongArchDwarfFlavour0Dwarf2L, LoongArchDwarfFlavour0Dwarf2LSize, false); ++ break; ++ } ++ switch (EHFlavour) { ++ default: ++ llvm_unreachable("Unknown DWARF flavour"); ++ case 0: ++ mapDwarfRegsToLLVMRegs(LoongArchEHFlavour0Dwarf2L, LoongArchEHFlavour0Dwarf2LSize, true); ++ break; ++ } ++ switch (DwarfFlavour) { ++ default: ++ llvm_unreachable("Unknown DWARF flavour"); ++ case 0: ++ mapLLVMRegsToDwarfRegs(LoongArchDwarfFlavour0L2Dwarf, LoongArchDwarfFlavour0L2DwarfSize, false); ++ break; ++ } ++ switch (EHFlavour) { ++ default: ++ llvm_unreachable("Unknown DWARF flavour"); ++ case 0: ++ mapLLVMRegsToDwarfRegs(LoongArchEHFlavour0L2Dwarf, LoongArchEHFlavour0L2DwarfSize, true); ++ break; ++ } ++} ++ ++static const MCPhysReg CSR_LP32_SaveList[] = { LoongArch::F31_64, LoongArch::F30_64, LoongArch::F29_64, LoongArch::F28_64, LoongArch::F27_64, LoongArch::F26_64, LoongArch::F25_64, LoongArch::F24_64, LoongArch::RA, LoongArch::FP, LoongArch::S8, LoongArch::S7, LoongArch::S6, LoongArch::S5, LoongArch::S4, LoongArch::S3, LoongArch::S2, LoongArch::S1, LoongArch::S0, 0 }; ++static const uint32_t CSR_LP32_RegMask[] = { 0x0000000a, 0xe0007f80, 0x0000003f, 0x00000000, 0x00000000, 0x1fe00000, 0x00000000, }; ++static const MCPhysReg CSR_LP64_SaveList[] = { LoongArch::F31_64, LoongArch::F30_64, LoongArch::F29_64, LoongArch::F28_64, LoongArch::F27_64, LoongArch::F26_64, LoongArch::F25_64, LoongArch::F24_64, LoongArch::RA_64, LoongArch::FP_64, LoongArch::S8_64, LoongArch::S7_64, LoongArch::S6_64, LoongArch::S5_64, LoongArch::S4_64, LoongArch::S3_64, LoongArch::S2_64, LoongArch::S1_64, LoongArch::S0_64, 0 }; ++static const uint32_t CSR_LP64_RegMask[] = { 0x0000000a, 0xf8007f80, 0x0000003f, 0x00000000, 0x00000000, 0xffe00000, 0x0000003f, }; ++static const MCPhysReg CSR_LPX32_SaveList[] = { LoongArch::F20_64, LoongArch::F22_64, LoongArch::F24_64, LoongArch::F26_64, LoongArch::F28_64, LoongArch::F30_64, LoongArch::RA_64, LoongArch::FP_64, LoongArch::S8_64, LoongArch::S7_64, LoongArch::S6_64, LoongArch::S5_64, LoongArch::S4_64, LoongArch::S3_64, LoongArch::S2_64, LoongArch::S1_64, LoongArch::S0_64, 0 }; ++static const uint32_t CSR_LPX32_RegMask[] = { 0x0000000a, 0xf8002aa8, 0x0000003f, 0x00000000, 0x00000000, 0xeaaa0000, 0x0000003f, }; ++static const MCPhysReg CSR_SingleFloatOnly_SaveList[] = { LoongArch::F31, LoongArch::F30, LoongArch::F29, LoongArch::F28, LoongArch::F27, LoongArch::F26, LoongArch::F25, LoongArch::F24, LoongArch::RA, LoongArch::FP, LoongArch::S8, LoongArch::S7, LoongArch::S6, LoongArch::S5, LoongArch::S4, LoongArch::S3, LoongArch::S2, LoongArch::S1, LoongArch::S0, 0 }; ++static const uint32_t CSR_SingleFloatOnly_RegMask[] = { 0x0000000a, 0xe0007f80, 0x0000003f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, }; ++ ++ ++ArrayRef LoongArchGenRegisterInfo::getRegMasks() const { ++ static const uint32_t *const Masks[] = { ++ CSR_LP32_RegMask, ++ CSR_LP64_RegMask, ++ CSR_LPX32_RegMask, ++ CSR_SingleFloatOnly_RegMask, ++ }; ++ return makeArrayRef(Masks); ++} ++ ++ArrayRef LoongArchGenRegisterInfo::getRegMaskNames() const { ++ static const char *const Names[] = { ++ "CSR_LP32", ++ "CSR_LP64", ++ "CSR_LPX32", ++ "CSR_SingleFloatOnly", ++ }; ++ return makeArrayRef(Names); ++} ++ ++const LoongArchFrameLowering * ++LoongArchGenRegisterInfo::getFrameLowering(const MachineFunction &MF) { ++ return static_cast( ++ MF.getSubtarget().getFrameLowering()); ++} ++ ++} // end namespace llvm ++ ++#endif // GET_REGINFO_TARGET_DESC ++ +diff --git a/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenRegisterInfo.inc.d b/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenRegisterInfo.inc.d +new file mode 100644 +index 00000000000..91a2a52503b +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenRegisterInfo.inc.d +@@ -0,0 +1 @@ ++lib/Target/LoongArch/LoongArchGenRegisterInfo.inc: /mnt/wangqing/work/llvm-project/llvm/include/llvm/CodeGen/SDNodeProperties.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/CodeGen/ValueTypes.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/Intrinsics.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsAArch64.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsAMDGPU.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsARM.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsBPF.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsHexagon.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsLoongArch.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsMips.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsNVVM.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsPowerPC.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsRISCV.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsSystemZ.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsWebAssembly.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsX86.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsXCore.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/GenericOpcodes.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/GlobalISel/RegisterBank.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/GlobalISel/SelectionDAGCompat.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/GlobalISel/Target.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/Target.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetCallingConv.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetInstrPredicate.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetItinerary.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetPfmCounters.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetSchedule.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetSelectionDAG.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArch32InstrInfo.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchCallingConv.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchInstrFormats.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchInstrInfo.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchInstrInfoF.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchLASXInstrFormats.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchLASXInstrInfo.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchLSXInstrFormats.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchLSXInstrInfo.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchRegisterInfo.td +diff --git a/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenSubtargetInfo.inc b/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenSubtargetInfo.inc +new file mode 100644 +index 00000000000..c081743ac24 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenSubtargetInfo.inc +@@ -0,0 +1,217 @@ ++/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\ ++|* *| ++|* Subtarget Enumeration Source Fragment *| ++|* *| ++|* Automatically generated file, do not edit! *| ++|* *| ++\*===----------------------------------------------------------------------===*/ ++ ++ ++#ifdef GET_SUBTARGETINFO_ENUM ++#undef GET_SUBTARGETINFO_ENUM ++ ++namespace llvm { ++namespace LoongArch { ++enum { ++ Feature64Bit = 0, ++ FeatureFP64Bit = 1, ++ FeatureLASX = 2, ++ FeatureLSX = 3, ++ FeatureSingleFloat = 4, ++ FeatureSoftFloat = 5, ++ FeatureUnalignedAccess = 6, ++ NumSubtargetFeatures = 7 ++}; ++} // end namespace LoongArch ++} // end namespace llvm ++ ++#endif // GET_SUBTARGETINFO_ENUM ++ ++ ++#ifdef GET_SUBTARGETINFO_MC_DESC ++#undef GET_SUBTARGETINFO_MC_DESC ++ ++namespace llvm { ++// Sorted (by key) array of values for CPU features. ++extern const llvm::SubtargetFeatureKV LoongArchFeatureKV[] = { ++ { "64bit", "Support LA64 ISA", LoongArch::Feature64Bit, { { { 0x2ULL, 0x0ULL, 0x0ULL, } } } }, ++ { "fp64", "Support 64-bit FP registers", LoongArch::FeatureFP64Bit, { { { 0x0ULL, 0x0ULL, 0x0ULL, } } } }, ++ { "lasx", "Support LASX", LoongArch::FeatureLASX, { { { 0x8ULL, 0x0ULL, 0x0ULL, } } } }, ++ { "lsx", "Support LSX", LoongArch::FeatureLSX, { { { 0x0ULL, 0x0ULL, 0x0ULL, } } } }, ++ { "single-float", "Only supports single precision float", LoongArch::FeatureSingleFloat, { { { 0x0ULL, 0x0ULL, 0x0ULL, } } } }, ++ { "soft-float", "Does not support floating point instructions", LoongArch::FeatureSoftFloat, { { { 0x0ULL, 0x0ULL, 0x0ULL, } } } }, ++ { "unaligned-access", "Allow all unaligned memory access", LoongArch::FeatureUnalignedAccess, { { { 0x0ULL, 0x0ULL, 0x0ULL, } } } }, ++}; ++ ++#ifdef DBGFIELD ++#error "GenSubtargetInfo.inc requires a DBGFIELD macro" ++#endif ++#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP) ++#define DBGFIELD(x) x, ++#else ++#define DBGFIELD(x) ++#endif ++ ++// =============================================================== ++// Data tables for the new per-operand machine model. ++ ++// {ProcResourceIdx, Cycles} ++extern const llvm::MCWriteProcResEntry LoongArchWriteProcResTable[] = { ++ { 0, 0}, // Invalid ++}; // LoongArchWriteProcResTable ++ ++// {Cycles, WriteResourceID} ++extern const llvm::MCWriteLatencyEntry LoongArchWriteLatencyTable[] = { ++ { 0, 0}, // Invalid ++}; // LoongArchWriteLatencyTable ++ ++// {UseIdx, WriteResourceID, Cycles} ++extern const llvm::MCReadAdvanceEntry LoongArchReadAdvanceTable[] = { ++ {0, 0, 0}, // Invalid ++}; // LoongArchReadAdvanceTable ++ ++#undef DBGFIELD ++ ++static const llvm::MCSchedModel NoSchedModel = { ++ MCSchedModel::DefaultIssueWidth, ++ MCSchedModel::DefaultMicroOpBufferSize, ++ MCSchedModel::DefaultLoopMicroOpBufferSize, ++ MCSchedModel::DefaultLoadLatency, ++ MCSchedModel::DefaultHighLatency, ++ MCSchedModel::DefaultMispredictPenalty, ++ false, // PostRAScheduler ++ false, // CompleteModel ++ 0, // Processor ID ++ nullptr, nullptr, 0, 0, // No instruction-level machine model. ++ nullptr, // No Itinerary ++ nullptr // No extra processor descriptor ++}; ++ ++// Sorted (by key) array of values for CPU subtype. ++extern const llvm::SubtargetSubTypeKV LoongArchSubTypeKV[] = { ++ { "la464", { { { 0x41ULL, 0x0ULL, 0x0ULL, } } }, &NoSchedModel }, ++}; ++ ++namespace LoongArch_MC { ++unsigned resolveVariantSchedClassImpl(unsigned SchedClass, ++ const MCInst *MI, unsigned CPUID) { ++ // Don't know how to resolve this scheduling class. ++ return 0; ++} ++} // end namespace LoongArch_MC ++ ++struct LoongArchGenMCSubtargetInfo : public MCSubtargetInfo { ++ LoongArchGenMCSubtargetInfo(const Triple &TT, ++ StringRef CPU, StringRef FS, ArrayRef PF, ++ ArrayRef PD, ++ const MCWriteProcResEntry *WPR, ++ const MCWriteLatencyEntry *WL, ++ const MCReadAdvanceEntry *RA, const InstrStage *IS, ++ const unsigned *OC, const unsigned *FP) : ++ MCSubtargetInfo(TT, CPU, FS, PF, PD, ++ WPR, WL, RA, IS, OC, FP) { } ++ ++ unsigned resolveVariantSchedClass(unsigned SchedClass, ++ const MCInst *MI, unsigned CPUID) const override { ++ return LoongArch_MC::resolveVariantSchedClassImpl(SchedClass, MI, CPUID); ++ } ++}; ++ ++static inline MCSubtargetInfo *createLoongArchMCSubtargetInfoImpl(const Triple &TT, StringRef CPU, StringRef FS) { ++ return new LoongArchGenMCSubtargetInfo(TT, CPU, FS, LoongArchFeatureKV, LoongArchSubTypeKV, ++ LoongArchWriteProcResTable, LoongArchWriteLatencyTable, LoongArchReadAdvanceTable, ++ nullptr, nullptr, nullptr); ++} ++ ++} // end namespace llvm ++ ++#endif // GET_SUBTARGETINFO_MC_DESC ++ ++ ++#ifdef GET_SUBTARGETINFO_TARGET_DESC ++#undef GET_SUBTARGETINFO_TARGET_DESC ++ ++#include "llvm/Support/Debug.h" ++#include "llvm/Support/raw_ostream.h" ++ ++// ParseSubtargetFeatures - Parses features string setting specified ++// subtarget options. ++void llvm::LoongArchSubtarget::ParseSubtargetFeatures(StringRef CPU, StringRef FS) { ++ LLVM_DEBUG(dbgs() << "\nFeatures:" << FS); ++ LLVM_DEBUG(dbgs() << "\nCPU:" << CPU << "\n\n"); ++ InitMCProcessorInfo(CPU, FS); ++ const FeatureBitset& Bits = getFeatureBits(); ++ if (Bits[LoongArch::Feature64Bit]) HasLA64 = true; ++ if (Bits[LoongArch::FeatureFP64Bit]) IsFP64bit = true; ++ if (Bits[LoongArch::FeatureLASX]) HasLASX = true; ++ if (Bits[LoongArch::FeatureLSX]) HasLSX = true; ++ if (Bits[LoongArch::FeatureSingleFloat]) IsSingleFloat = true; ++ if (Bits[LoongArch::FeatureSoftFloat]) IsSoftFloat = true; ++ if (Bits[LoongArch::FeatureUnalignedAccess]) UnalignedAccess = true; ++} ++#endif // GET_SUBTARGETINFO_TARGET_DESC ++ ++ ++#ifdef GET_SUBTARGETINFO_HEADER ++#undef GET_SUBTARGETINFO_HEADER ++ ++namespace llvm { ++class DFAPacketizer; ++namespace LoongArch_MC { ++unsigned resolveVariantSchedClassImpl(unsigned SchedClass, const MCInst *MI, unsigned CPUID); ++} // end namespace LoongArch_MC ++ ++struct LoongArchGenSubtargetInfo : public TargetSubtargetInfo { ++ explicit LoongArchGenSubtargetInfo(const Triple &TT, StringRef CPU, StringRef FS); ++public: ++ unsigned resolveSchedClass(unsigned SchedClass, const MachineInstr *DefMI, const TargetSchedModel *SchedModel) const override; ++ unsigned resolveVariantSchedClass(unsigned SchedClass, const MCInst *MI, unsigned CPUID) const override; ++ DFAPacketizer *createDFAPacketizer(const InstrItineraryData *IID) const; ++}; ++} // end namespace llvm ++ ++#endif // GET_SUBTARGETINFO_HEADER ++ ++ ++#ifdef GET_SUBTARGETINFO_CTOR ++#undef GET_SUBTARGETINFO_CTOR ++ ++#include "llvm/CodeGen/TargetSchedule.h" ++ ++namespace llvm { ++extern const llvm::SubtargetFeatureKV LoongArchFeatureKV[]; ++extern const llvm::SubtargetSubTypeKV LoongArchSubTypeKV[]; ++extern const llvm::MCWriteProcResEntry LoongArchWriteProcResTable[]; ++extern const llvm::MCWriteLatencyEntry LoongArchWriteLatencyTable[]; ++extern const llvm::MCReadAdvanceEntry LoongArchReadAdvanceTable[]; ++LoongArchGenSubtargetInfo::LoongArchGenSubtargetInfo(const Triple &TT, StringRef CPU, StringRef FS) ++ : TargetSubtargetInfo(TT, CPU, FS, makeArrayRef(LoongArchFeatureKV, 7), makeArrayRef(LoongArchSubTypeKV, 1), ++ LoongArchWriteProcResTable, LoongArchWriteLatencyTable, LoongArchReadAdvanceTable, ++ nullptr, nullptr, nullptr) {} ++ ++unsigned LoongArchGenSubtargetInfo ++::resolveSchedClass(unsigned SchedClass, const MachineInstr *MI, const TargetSchedModel *SchedModel) const { ++ report_fatal_error("Expected a variant SchedClass"); ++} // LoongArchGenSubtargetInfo::resolveSchedClass ++ ++unsigned LoongArchGenSubtargetInfo ++::resolveVariantSchedClass(unsigned SchedClass, const MCInst *MI, unsigned CPUID) const { ++ return LoongArch_MC::resolveVariantSchedClassImpl(SchedClass, MI, CPUID); ++} // LoongArchGenSubtargetInfo::resolveVariantSchedClass ++ ++} // end namespace llvm ++ ++#endif // GET_SUBTARGETINFO_CTOR ++ ++ ++#ifdef GET_STIPREDICATE_DECLS_FOR_MC_ANALYSIS ++#undef GET_STIPREDICATE_DECLS_FOR_MC_ANALYSIS ++ ++#endif // GET_STIPREDICATE_DECLS_FOR_MC_ANALYSIS ++ ++ ++#ifdef GET_STIPREDICATE_DEFS_FOR_MC_ANALYSIS ++#undef GET_STIPREDICATE_DEFS_FOR_MC_ANALYSIS ++ ++#endif // GET_STIPREDICATE_DEFS_FOR_MC_ANALYSIS ++ +diff --git a/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenSubtargetInfo.inc.d b/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenSubtargetInfo.inc.d +new file mode 100644 +index 00000000000..9c07f39fb75 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/LoongArchGenSubtargetInfo.inc.d +@@ -0,0 +1 @@ ++lib/Target/LoongArch/LoongArchGenSubtargetInfo.inc: /mnt/wangqing/work/llvm-project/llvm/include/llvm/CodeGen/SDNodeProperties.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/CodeGen/ValueTypes.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/Intrinsics.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsAArch64.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsAMDGPU.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsARM.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsBPF.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsHexagon.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsLoongArch.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsMips.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsNVVM.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsPowerPC.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsRISCV.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsSystemZ.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsWebAssembly.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsX86.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/IR/IntrinsicsXCore.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/GenericOpcodes.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/GlobalISel/RegisterBank.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/GlobalISel/SelectionDAGCompat.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/GlobalISel/Target.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/Target.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetCallingConv.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetInstrPredicate.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetItinerary.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetPfmCounters.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetSchedule.td /mnt/wangqing/work/llvm-project/llvm/include/llvm/Target/TargetSelectionDAG.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArch32InstrInfo.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchCallingConv.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchInstrFormats.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchInstrInfo.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchInstrInfoF.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchLASXInstrFormats.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchLASXInstrInfo.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchLSXInstrFormats.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchLSXInstrInfo.td /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/LoongArchRegisterInfo.td +diff --git a/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/MCTargetDesc/cmake_install.cmake b/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/MCTargetDesc/cmake_install.cmake +new file mode 100644 +index 00000000000..586a948f7f1 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/MCTargetDesc/cmake_install.cmake +@@ -0,0 +1,43 @@ ++# Install script for directory: /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/MCTargetDesc ++ ++# Set the install prefix ++if(NOT DEFINED CMAKE_INSTALL_PREFIX) ++ set(CMAKE_INSTALL_PREFIX "/usr/local") ++endif() ++string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") ++ ++# Set the install configuration name. ++if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) ++ if(BUILD_TYPE) ++ string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" ++ CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") ++ else() ++ set(CMAKE_INSTALL_CONFIG_NAME "Release") ++ endif() ++ message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") ++endif() ++ ++# Set the component getting installed. ++if(NOT CMAKE_INSTALL_COMPONENT) ++ if(COMPONENT) ++ message(STATUS "Install component: \"${COMPONENT}\"") ++ set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") ++ else() ++ set(CMAKE_INSTALL_COMPONENT) ++ endif() ++endif() ++ ++# Install shared libraries without execute permission? ++if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) ++ set(CMAKE_INSTALL_SO_NO_EXE "1") ++endif() ++ ++# Is this installation the result of a crosscompile? ++if(NOT DEFINED CMAKE_CROSSCOMPILING) ++ set(CMAKE_CROSSCOMPILING "FALSE") ++endif() ++ ++if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xLLVMLoongArchDescx" OR NOT CMAKE_INSTALL_COMPONENT) ++ file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE STATIC_LIBRARY FILES "/mnt/wangqing/work/llvm-project/build/lib/libLLVMLoongArchDesc.a") ++endif() ++ +diff --git a/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/TargetInfo/cmake_install.cmake b/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/TargetInfo/cmake_install.cmake +new file mode 100644 +index 00000000000..357f9707da4 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/TargetInfo/cmake_install.cmake +@@ -0,0 +1,43 @@ ++# Install script for directory: /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch/TargetInfo ++ ++# Set the install prefix ++if(NOT DEFINED CMAKE_INSTALL_PREFIX) ++ set(CMAKE_INSTALL_PREFIX "/usr/local") ++endif() ++string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") ++ ++# Set the install configuration name. ++if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) ++ if(BUILD_TYPE) ++ string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" ++ CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") ++ else() ++ set(CMAKE_INSTALL_CONFIG_NAME "Release") ++ endif() ++ message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") ++endif() ++ ++# Set the component getting installed. ++if(NOT CMAKE_INSTALL_COMPONENT) ++ if(COMPONENT) ++ message(STATUS "Install component: \"${COMPONENT}\"") ++ set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") ++ else() ++ set(CMAKE_INSTALL_COMPONENT) ++ endif() ++endif() ++ ++# Install shared libraries without execute permission? ++if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) ++ set(CMAKE_INSTALL_SO_NO_EXE "1") ++endif() ++ ++# Is this installation the result of a crosscompile? ++if(NOT DEFINED CMAKE_CROSSCOMPILING) ++ set(CMAKE_CROSSCOMPILING "FALSE") ++endif() ++ ++if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xLLVMLoongArchInfox" OR NOT CMAKE_INSTALL_COMPONENT) ++ file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE STATIC_LIBRARY FILES "/mnt/wangqing/work/llvm-project/build/lib/libLLVMLoongArchInfo.a") ++endif() ++ +diff --git a/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/cmake_install.cmake b/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/cmake_install.cmake +new file mode 100644 +index 00000000000..53734be9eac +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/configs/common/lib/Target/LoongArch/cmake_install.cmake +@@ -0,0 +1,52 @@ ++# Install script for directory: /mnt/wangqing/work/llvm-project/llvm/lib/Target/LoongArch ++ ++# Set the install prefix ++if(NOT DEFINED CMAKE_INSTALL_PREFIX) ++ set(CMAKE_INSTALL_PREFIX "/usr/local") ++endif() ++string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") ++ ++# Set the install configuration name. ++if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) ++ if(BUILD_TYPE) ++ string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" ++ CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") ++ else() ++ set(CMAKE_INSTALL_CONFIG_NAME "Release") ++ endif() ++ message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") ++endif() ++ ++# Set the component getting installed. ++if(NOT CMAKE_INSTALL_COMPONENT) ++ if(COMPONENT) ++ message(STATUS "Install component: \"${COMPONENT}\"") ++ set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") ++ else() ++ set(CMAKE_INSTALL_COMPONENT) ++ endif() ++endif() ++ ++# Install shared libraries without execute permission? ++if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) ++ set(CMAKE_INSTALL_SO_NO_EXE "1") ++endif() ++ ++# Is this installation the result of a crosscompile? ++if(NOT DEFINED CMAKE_CROSSCOMPILING) ++ set(CMAKE_CROSSCOMPILING "FALSE") ++endif() ++ ++if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xLLVMLoongArchCodeGenx" OR NOT CMAKE_INSTALL_COMPONENT) ++ file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE STATIC_LIBRARY FILES "/mnt/wangqing/work/llvm-project/build/lib/libLLVMLoongArchCodeGen.a") ++endif() ++ ++if(NOT CMAKE_INSTALL_LOCAL_ONLY) ++ # Include the install script for each subdirectory. ++ include("/mnt/wangqing/work/llvm-project/build/lib/Target/LoongArch/AsmParser/cmake_install.cmake") ++ include("/mnt/wangqing/work/llvm-project/build/lib/Target/LoongArch/Disassembler/cmake_install.cmake") ++ include("/mnt/wangqing/work/llvm-project/build/lib/Target/LoongArch/MCTargetDesc/cmake_install.cmake") ++ include("/mnt/wangqing/work/llvm-project/build/lib/Target/LoongArch/TargetInfo/cmake_install.cmake") ++ ++endif() ++ +diff --git a/third_party/swiftshader/third_party/llvm-10.0/configs/linux/include/llvm/Config/AsmParsers.def b/third_party/swiftshader/third_party/llvm-10.0/configs/linux/include/llvm/Config/AsmParsers.def +index 9893c66f689..3b897f0aa0d 100644 +--- a/third_party/swiftshader/third_party/llvm-10.0/configs/linux/include/llvm/Config/AsmParsers.def ++++ b/third_party/swiftshader/third_party/llvm-10.0/configs/linux/include/llvm/Config/AsmParsers.def +@@ -42,6 +42,9 @@ LLVM_ASM_PARSER(PowerPC) + #if defined(__riscv) + LLVM_ASM_PARSER(RISCV) + #endif ++#if defined(__loongarch64) ++LLVM_ASM_PARSER(LoongArch) ++#endif + + + #undef LLVM_ASM_PARSER +diff --git a/third_party/swiftshader/third_party/llvm-10.0/configs/linux/include/llvm/Config/AsmPrinters.def b/third_party/swiftshader/third_party/llvm-10.0/configs/linux/include/llvm/Config/AsmPrinters.def +index 523ee3b60e6..8132c9aec12 100644 +--- a/third_party/swiftshader/third_party/llvm-10.0/configs/linux/include/llvm/Config/AsmPrinters.def ++++ b/third_party/swiftshader/third_party/llvm-10.0/configs/linux/include/llvm/Config/AsmPrinters.def +@@ -42,6 +42,9 @@ LLVM_ASM_PRINTER(PowerPC) + #if defined(__riscv) + LLVM_ASM_PRINTER(RISCV) + #endif ++#if defined(__loongarch64) ++LLVM_ASM_PRINTER(LoongArch) ++#endif + + + #undef LLVM_ASM_PRINTER +diff --git a/third_party/swiftshader/third_party/llvm-10.0/configs/linux/include/llvm/Config/Disassemblers.def b/third_party/swiftshader/third_party/llvm-10.0/configs/linux/include/llvm/Config/Disassemblers.def +index 4f61495b145..f9a49b18702 100644 +--- a/third_party/swiftshader/third_party/llvm-10.0/configs/linux/include/llvm/Config/Disassemblers.def ++++ b/third_party/swiftshader/third_party/llvm-10.0/configs/linux/include/llvm/Config/Disassemblers.def +@@ -42,6 +42,9 @@ LLVM_DISASSEMBLER(PowerPC) + #if defined(__riscv) + LLVM_DISASSEMBLER(RISCV) + #endif ++#if defined(__loongarch64) ++LLVM_DISASSEMBLER(LoongArch) ++#endif + + + #undef LLVM_DISASSEMBLER +diff --git a/third_party/swiftshader/third_party/llvm-10.0/configs/linux/include/llvm/Config/Targets.def b/third_party/swiftshader/third_party/llvm-10.0/configs/linux/include/llvm/Config/Targets.def +index 0e68b413d65..61c52ff7389 100644 +--- a/third_party/swiftshader/third_party/llvm-10.0/configs/linux/include/llvm/Config/Targets.def ++++ b/third_party/swiftshader/third_party/llvm-10.0/configs/linux/include/llvm/Config/Targets.def +@@ -41,6 +41,9 @@ LLVM_TARGET(PowerPC) + #if defined(__riscv) + LLVM_TARGET(RISCV) + #endif ++#if defined(__loongarch64) ++LLVM_TARGET(LoongArch) ++#endif + + + #undef LLVM_TARGET +diff --git a/third_party/swiftshader/third_party/llvm-10.0/configs/linux/include/llvm/Config/config.h b/third_party/swiftshader/third_party/llvm-10.0/configs/linux/include/llvm/Config/config.h +index 7392898797b..3e72f84b258 100644 +--- a/third_party/swiftshader/third_party/llvm-10.0/configs/linux/include/llvm/Config/config.h ++++ b/third_party/swiftshader/third_party/llvm-10.0/configs/linux/include/llvm/Config/config.h +@@ -310,6 +310,8 @@ + #define LLVM_DEFAULT_TARGET_TRIPLE "powerpc64le-unknown-linux-gnu" + #elif defined(__riscv) && __riscv_xlen == 64 + #define LLVM_DEFAULT_TARGET_TRIPLE "riscv64-unknown-linux-gnu" ++#elif defined(__loongarch64) ++#define LLVM_DEFAULT_TARGET_TRIPLE "loongarch64-unknown-linux-gnu" + #else + #error "unknown architecture" + #endif +diff --git a/third_party/swiftshader/third_party/llvm-10.0/configs/linux/include/llvm/Config/llvm-config.h b/third_party/swiftshader/third_party/llvm-10.0/configs/linux/include/llvm/Config/llvm-config.h +index b709faaf1c2..8deccd475d2 100644 +--- a/third_party/swiftshader/third_party/llvm-10.0/configs/linux/include/llvm/Config/llvm-config.h ++++ b/third_party/swiftshader/third_party/llvm-10.0/configs/linux/include/llvm/Config/llvm-config.h +@@ -44,6 +44,8 @@ + #define LLVM_DEFAULT_TARGET_TRIPLE "powerpc64le-unknown-linux-gnu" + #elif defined(__riscv) && __riscv_xlen == 64 + #define LLVM_DEFAULT_TARGET_TRIPLE "riscv64-unknown-linux-gnu" ++#elif defined(__loongarch64) ++#define LLVM_DEFAULT_TARGET_TRIPLE "loongarch64-unknown-linux-gnu" + #else + #error "unknown architecture" + #endif +@@ -71,6 +73,8 @@ + #define LLVM_HOST_TRIPLE "powerpc64le-unknown-linux-gnu" + #elif defined(__riscv) && __riscv_xlen == 64 + #define LLVM_HOST_TRIPLE "riscv64-unknown-linux-gnu" ++#elif defined(__loongarch64) ++#define LLVM_HOST_TRIPLE "loongarch64-unknown-linux-gnu" + #else + #error "unknown architecture" + #endif +@@ -88,6 +92,8 @@ + #define LLVM_NATIVE_ARCH PowerPC + #elif defined(__riscv) + #define LLVM_NATIVE_ARCH RISCV ++#elif defined(__loongarch64) ++#define LLVM_NATIVE_ARCH LoongArch + #else + #error "unknown architecture" + #endif +@@ -105,6 +111,8 @@ + #define LLVM_NATIVE_ASMPARSER LLVMInitializePowerPCAsmParser + #elif defined(__riscv) + #define LLVM_NATIVE_ASMPARSER LLVMInitializeRISCVAsmParser ++#elif defined(__loongarch64) ++#define LLVM_NATIVE_ASMPARSER LLVMInitializeLoongArchAsmParser + #else + #error "unknown architecture" + #endif +@@ -122,6 +130,8 @@ + #define LLVM_NATIVE_ASMPRINTER LLVMInitializePowerPCAsmPrinter + #elif defined(__riscv) + #define LLVM_NATIVE_ASMPRINTER LLVMInitializeRISCVAsmPrinter ++#elif defined(__loongarch64) ++#define LLVM_NATIVE_ASMPRINTER LLVMInitializeLoongArchAsmPrinter + #else + #error "unknown architecture" + #endif +@@ -139,6 +149,8 @@ + #define LLVM_NATIVE_DISASSEMBLER LLVMInitializePowerPCDisassembler + #elif defined(__riscv) + #define LLVM_NATIVE_DISASSEMBLER LLVMInitializeRISCVDisassembler ++#elif defined(__loongarch64) ++#define LLVM_NATIVE_DISASSEMBLER LLVMInitializeLoongArchDisassembler + #else + #error "unknown architecture" + #endif +@@ -156,6 +168,8 @@ + #define LLVM_NATIVE_TARGET LLVMInitializePowerPCTarget + #elif defined(__riscv) + #define LLVM_NATIVE_TARGET LLVMInitializeRISCVTarget ++#elif defined(__loongarch64) ++#define LLVM_NATIVE_TARGET LLVMInitializeLoongArchTarget + #else + #error "unknown architecture" + #endif +@@ -173,6 +187,8 @@ + #define LLVM_NATIVE_TARGETINFO LLVMInitializePowerPCTargetInfo + #elif defined(__riscv) + #define LLVM_NATIVE_TARGETINFO LLVMInitializeRISCVTargetInfo ++#elif defined(__loongarch64) ++#define LLVM_NATIVE_TARGETINFO LLVMInitializeLoongArchTargetInfo + #else + #error "unknown architecture" + #endif +@@ -190,6 +206,8 @@ + #define LLVM_NATIVE_TARGETMC LLVMInitializePowerPCTargetMC + #elif defined(__riscv) + #define LLVM_NATIVE_TARGETMC LLVMInitializeRISCVTargetMC ++#elif defined(__loongarch64) ++#define LLVM_NATIVE_TARGETMC LLVMInitializeLoongArchTargetMC + #else + #error "unknown architecture" + #endif +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/ADT/Triple.h b/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/ADT/Triple.h +index 76a754d671f..636719600a6 100644 +--- a/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/ADT/Triple.h ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/ADT/Triple.h +@@ -55,6 +55,8 @@ public: + bpfel, // eBPF or extended BPF or 64-bit BPF (little endian) + bpfeb, // eBPF or extended BPF or 64-bit BPF (big endian) + hexagon, // Hexagon: hexagon ++ loongarch32, // LoongArch (32-bit): loongarch32 ++ loongarch64, // LoongArch (64-bit): loongarch64 + mips, // MIPS: mips, mipsallegrex, mipsr6 + mipsel, // MIPSEL: mipsel, mipsallegrexe, mipsr6el + mips64, // MIPS64: mips64, mips64r6, mipsn32, mipsn32r6 +@@ -721,6 +723,21 @@ public: + return isMIPS32() || isMIPS64(); + } + ++ /// Tests whether the target is LoongArch 32-bit ++ bool isLoongArch32() const { ++ return getArch() == Triple::loongarch32; ++ } ++ ++ /// Tests whether the target is LoongArch 64-bit. ++ bool isLoongArch64() const { ++ return getArch() == Triple::loongarch64; ++ } ++ ++ /// Tests whether the target is LoongArch (32- or 64-bit). ++ bool isLoongArch() const { ++ return isLoongArch32() || isLoongArch64(); ++ } ++ + /// Tests whether the target is 64-bit PowerPC (little and big endian). + bool isPPC64() const { + return getArch() == Triple::ppc64 || getArch() == Triple::ppc64le; +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/BinaryFormat/ELF.h b/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/BinaryFormat/ELF.h +index 25abbb2e004..4385dc28a36 100644 +--- a/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/BinaryFormat/ELF.h ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/BinaryFormat/ELF.h +@@ -311,6 +311,7 @@ enum { + EM_RISCV = 243, // RISC-V + EM_LANAI = 244, // Lanai 32-bit processor + EM_BPF = 247, // Linux kernel bpf virtual machine ++ EM_LOONGARCH = 258, // LoongArch processor + }; + + // Object file classes. +@@ -632,6 +633,22 @@ enum { + #include "ELFRelocs/RISCV.def" + }; + ++// LoongArch Specific e_flags ++enum : unsigned { ++ // FIXME: Change these when all ABIs definition were finalized. ++ // See current definitions: ++ // https://loongson.github.io/LoongArch-Documentation/LoongArch-ELF-ABI-EN.html#_e_flags_identifies_abi_type_and_version ++ EF_LARCH_ABI = 0x0003, ++ EF_LARCH_ABI_LP32 = 0x0001, ++ EF_LARCH_ABI_LPX32 = 0x0002, ++ EF_LARCH_ABI_LP64 = 0x0003, ++}; ++ ++// ELF Relocation types for LoongArch ++enum { ++#include "ELFRelocs/LoongArch.def" ++}; ++ + // ELF Relocation types for S390/zSeries + enum { + #include "ELFRelocs/SystemZ.def" +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/BinaryFormat/ELFRelocs/LoongArch.def b/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/BinaryFormat/ELFRelocs/LoongArch.def +new file mode 100644 +index 00000000000..131d26622e8 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/BinaryFormat/ELFRelocs/LoongArch.def +@@ -0,0 +1,64 @@ ++ ++#ifndef ELF_RELOC ++#error "ELF_RELOC must be defined" ++#endif ++ ++ELF_RELOC(R_LARCH_NONE, 0) ++ELF_RELOC(R_LARCH_32, 1) ++ELF_RELOC(R_LARCH_64, 2) ++ELF_RELOC(R_LARCH_RELATIVE, 3) ++ELF_RELOC(R_LARCH_COPY, 4) ++ELF_RELOC(R_LARCH_JUMP_SLOT, 5) ++ELF_RELOC(R_LARCH_TLS_DTPMOD32, 6) ++ELF_RELOC(R_LARCH_TLS_DTPMOD64, 7) ++ELF_RELOC(R_LARCH_TLS_DTPREL32, 8) ++ELF_RELOC(R_LARCH_TLS_DTPREL64, 9) ++ELF_RELOC(R_LARCH_TLS_TPREL32, 10) ++ELF_RELOC(R_LARCH_TLS_TPREL64, 11) ++ELF_RELOC(R_LARCH_IRELATIVE, 12) ++ ++ELF_RELOC(R_LARCH_MARK_LA, 20) ++ELF_RELOC(R_LARCH_MARK_PCREL, 21) ++ ++ELF_RELOC(R_LARCH_SOP_PUSH_PCREL, 22) ++ ++ELF_RELOC(R_LARCH_SOP_PUSH_ABSOLUTE, 23) ++ ++ELF_RELOC(R_LARCH_SOP_PUSH_DUP, 24) ++ELF_RELOC(R_LARCH_SOP_PUSH_GPREL, 25) ++ELF_RELOC(R_LARCH_SOP_PUSH_TLS_TPREL, 26) ++ELF_RELOC(R_LARCH_SOP_PUSH_TLS_GOT, 27) ++ELF_RELOC(R_LARCH_SOP_PUSH_TLS_GD, 28) ++ELF_RELOC(R_LARCH_SOP_PUSH_PLT_PCREL, 29) ++ ++ELF_RELOC(R_LARCH_SOP_ASSERT, 30) ++ELF_RELOC(R_LARCH_SOP_NOT, 31) ++ELF_RELOC(R_LARCH_SOP_SUB, 32) ++ELF_RELOC(R_LARCH_SOP_SL, 33) ++ELF_RELOC(R_LARCH_SOP_SR, 34) ++ELF_RELOC(R_LARCH_SOP_ADD, 35) ++ELF_RELOC(R_LARCH_SOP_AND, 36) ++ELF_RELOC(R_LARCH_SOP_IF_ELSE, 37) ++ELF_RELOC(R_LARCH_SOP_POP_32_S_10_5, 38) ++ELF_RELOC(R_LARCH_SOP_POP_32_U_10_12, 39) ++ELF_RELOC(R_LARCH_SOP_POP_32_S_10_12, 40) ++ELF_RELOC(R_LARCH_SOP_POP_32_S_10_16, 41) ++ELF_RELOC(R_LARCH_SOP_POP_32_S_10_16_S2, 42) ++ELF_RELOC(R_LARCH_SOP_POP_32_S_5_20, 43) ++ELF_RELOC(R_LARCH_SOP_POP_32_S_0_5_10_16_S2, 44) ++ELF_RELOC(R_LARCH_SOP_POP_32_S_0_10_10_16_S2, 45) ++ELF_RELOC(R_LARCH_SOP_POP_32_U, 46) ++ ++ELF_RELOC(R_LARCH_ADD8, 47) ++ELF_RELOC(R_LARCH_ADD16, 48) ++ELF_RELOC(R_LARCH_ADD24, 49) ++ELF_RELOC(R_LARCH_ADD32, 50) ++ELF_RELOC(R_LARCH_ADD64, 51) ++ELF_RELOC(R_LARCH_SUB8, 52) ++ELF_RELOC(R_LARCH_SUB16, 53) ++ELF_RELOC(R_LARCH_SUB24, 54) ++ELF_RELOC(R_LARCH_SUB32, 55) ++ELF_RELOC(R_LARCH_SUB64, 56) ++ ++ELF_RELOC(R_LARCH_GNU_VTINHERIT, 57) ++ELF_RELOC(R_LARCH_GNU_VTENTRY, 58) +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/Demangle/ItaniumDemangle.h b/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/Demangle/ItaniumDemangle.h +index 14f8102b4da..c5733b0c3b6 100644 +--- a/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/Demangle/ItaniumDemangle.h ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/Demangle/ItaniumDemangle.h +@@ -5168,7 +5168,7 @@ template <> + struct FloatData + { + #if defined(__mips__) && defined(__mips_n64) || defined(__aarch64__) || \ +- defined(__wasm__) ++ defined(__wasm__) || defined(__loongarch__) + static const size_t mangled_size = 32; + #elif defined(__arm__) || defined(__mips__) || defined(__hexagon__) + static const size_t mangled_size = 16; +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/ExecutionEngine/Orc/OrcABISupport.h b/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/ExecutionEngine/Orc/OrcABISupport.h +index 2e58ddd75d3..011d83b8ab9 100644 +--- a/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/ExecutionEngine/Orc/OrcABISupport.h ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/ExecutionEngine/Orc/OrcABISupport.h +@@ -308,6 +308,33 @@ public: + /// will return a block of 1024 (2-pages worth). + static Error emitIndirectStubsBlock(IndirectStubsInfo &StubsInfo,unsigned MinStubs, void *InitialPtrVal); + }; ++// @brief LoongArch64 support. ++class OrcLoongArch64 { ++public: ++ static constexpr unsigned PointerSize = 8; ++ static constexpr unsigned TrampolineSize = 40; ++ static constexpr unsigned StubSize = 32; ++ static constexpr unsigned StubToPointerMaxDisplacement = 1 << 31; ++ static constexpr unsigned ResolverCodeSize = 0x120; ++ ++ using IndirectStubsInfo = GenericIndirectStubsInfo<32>; ++ using JITReentryFn = JITTargetAddress (*)(void *CallbackMgr, ++ void *TrampolineId); ++ ++ /// Write the resolver code into the given memory. The user is ++ /// responsible for allocating the memory and setting permissions. ++ static void writeResolverCode(uint8_t *ResolveMem, JITReentryFn Reentry, ++ void *CallbackMgr); ++ ++ /// Write the requested number of trampolines into the given memory, ++ /// which must be big enough to hold 1 pointer, plus NumTrampolines ++ /// trampolines. ++ static void writeTrampolines(uint8_t *TrampolineMem, void *ResolverAddr, ++ unsigned NumTrampolines); ++ /// Emit at least MinStubs worth of indirect call stubs, rounded out to ++ /// the nearest page size. ++ static Error emitIndirectStubsBlock(IndirectStubsInfo &StubsInfo,unsigned MinStubs, void *InitialPtrVal); ++}; + + } // end namespace orc + } // end namespace llvm +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/IR/CMakeLists.txt b/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/IR/CMakeLists.txt +index c8edc29bd88..5bd8a0faa4f 100644 +--- a/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/IR/CMakeLists.txt ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/IR/CMakeLists.txt +@@ -9,6 +9,7 @@ tablegen(LLVM IntrinsicsAMDGPU.h -gen-intrinsic-enums -intrinsic-prefix=amdgcn) + tablegen(LLVM IntrinsicsARM.h -gen-intrinsic-enums -intrinsic-prefix=arm) + tablegen(LLVM IntrinsicsBPF.h -gen-intrinsic-enums -intrinsic-prefix=bpf) + tablegen(LLVM IntrinsicsHexagon.h -gen-intrinsic-enums -intrinsic-prefix=hexagon) ++tablegen(LLVM IntrinsicsLoongArch.h -gen-intrinsic-enums -intrinsic-prefix=loongarch) + tablegen(LLVM IntrinsicsMips.h -gen-intrinsic-enums -intrinsic-prefix=mips) + tablegen(LLVM IntrinsicsNVPTX.h -gen-intrinsic-enums -intrinsic-prefix=nvvm) + tablegen(LLVM IntrinsicsPowerPC.h -gen-intrinsic-enums -intrinsic-prefix=ppc) +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/IR/InlineAsm.h b/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/IR/InlineAsm.h +index c3de5483d34..e857dac24e6 100644 +--- a/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/IR/InlineAsm.h ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/IR/InlineAsm.h +@@ -261,8 +261,9 @@ public: + static constexpr uint32_t Constraint_Uy = 17; + static constexpr uint32_t Constraint_X = 18; + static constexpr uint32_t Constraint_Z= 19; +- static constexpr uint32_t Constraint_ZC = 20; +- static constexpr uint32_t Constraint_Zy = 21; ++ static constexpr uint32_t Constraint_ZB= 20; ++ static constexpr uint32_t Constraint_ZC = 21; ++ static constexpr uint32_t Constraint_Zy = 22; + static constexpr uint32_t Constraints_Max = Constraint_Zy; + static constexpr uint32_t Constraints_ShiftAmount = 16; + +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/IR/Intrinsics.td b/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/IR/Intrinsics.td +index 865e4ccc9bc..e285a2864a8 100644 +--- a/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/IR/Intrinsics.td ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/IR/Intrinsics.td +@@ -1358,3 +1358,4 @@ include "llvm/IR/IntrinsicsBPF.td" + include "llvm/IR/IntrinsicsSystemZ.td" + include "llvm/IR/IntrinsicsWebAssembly.td" + include "llvm/IR/IntrinsicsRISCV.td" ++include "llvm/IR/IntrinsicsLoongArch.td" +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/IR/IntrinsicsLoongArch.h b/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/IR/IntrinsicsLoongArch.h +new file mode 100644 +index 00000000000..424ec741a55 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/IR/IntrinsicsLoongArch.h +@@ -0,0 +1,1495 @@ ++/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\ ++|* *| ++|* Intrinsic Function Source Fragment *| ++|* *| ++|* Automatically generated file, do not edit! *| ++|* *| ++\*===----------------------------------------------------------------------===*/ ++ ++#ifndef LLVM_IR_INTRINSIC_LOONGARCH_ENUMS_H ++#define LLVM_IR_INTRINSIC_LOONGARCH_ENUMS_H ++ ++namespace llvm { ++namespace Intrinsic { ++enum LOONGARCHIntrinsics : unsigned { ++// Enum values for intrinsics ++ loongarch_asrtgt_d = 3635, // llvm.loongarch.asrtgt.d ++ loongarch_asrtle_d, // llvm.loongarch.asrtle.d ++ loongarch_break, // llvm.loongarch.break ++ loongarch_cacop, // llvm.loongarch.cacop ++ loongarch_cpucfg, // llvm.loongarch.cpucfg ++ loongarch_crc_w_b_w, // llvm.loongarch.crc.w.b.w ++ loongarch_crc_w_d_w, // llvm.loongarch.crc.w.d.w ++ loongarch_crc_w_h_w, // llvm.loongarch.crc.w.h.w ++ loongarch_crc_w_w_w, // llvm.loongarch.crc.w.w.w ++ loongarch_crcc_w_b_w, // llvm.loongarch.crcc.w.b.w ++ loongarch_crcc_w_d_w, // llvm.loongarch.crcc.w.d.w ++ loongarch_crcc_w_h_w, // llvm.loongarch.crcc.w.h.w ++ loongarch_crcc_w_w_w, // llvm.loongarch.crcc.w.w.w ++ loongarch_csrrd, // llvm.loongarch.csrrd ++ loongarch_csrwr, // llvm.loongarch.csrwr ++ loongarch_csrxchg, // llvm.loongarch.csrxchg ++ loongarch_dbar, // llvm.loongarch.dbar ++ loongarch_dcacop, // llvm.loongarch.dcacop ++ loongarch_dcsrrd, // llvm.loongarch.dcsrrd ++ loongarch_dcsrwr, // llvm.loongarch.dcsrwr ++ loongarch_dcsrxchg, // llvm.loongarch.dcsrxchg ++ loongarch_ibar, // llvm.loongarch.ibar ++ loongarch_iocsrrd_b, // llvm.loongarch.iocsrrd.b ++ loongarch_iocsrrd_d, // llvm.loongarch.iocsrrd.d ++ loongarch_iocsrrd_h, // llvm.loongarch.iocsrrd.h ++ loongarch_iocsrrd_w, // llvm.loongarch.iocsrrd.w ++ loongarch_iocsrwr_b, // llvm.loongarch.iocsrwr.b ++ loongarch_iocsrwr_d, // llvm.loongarch.iocsrwr.d ++ loongarch_iocsrwr_h, // llvm.loongarch.iocsrwr.h ++ loongarch_iocsrwr_w, // llvm.loongarch.iocsrwr.w ++ loongarch_lasx_vext2xv_d_b, // llvm.loongarch.lasx.vext2xv.d.b ++ loongarch_lasx_vext2xv_d_h, // llvm.loongarch.lasx.vext2xv.d.h ++ loongarch_lasx_vext2xv_d_w, // llvm.loongarch.lasx.vext2xv.d.w ++ loongarch_lasx_vext2xv_du_bu, // llvm.loongarch.lasx.vext2xv.du.bu ++ loongarch_lasx_vext2xv_du_hu, // llvm.loongarch.lasx.vext2xv.du.hu ++ loongarch_lasx_vext2xv_du_wu, // llvm.loongarch.lasx.vext2xv.du.wu ++ loongarch_lasx_vext2xv_h_b, // llvm.loongarch.lasx.vext2xv.h.b ++ loongarch_lasx_vext2xv_hu_bu, // llvm.loongarch.lasx.vext2xv.hu.bu ++ loongarch_lasx_vext2xv_w_b, // llvm.loongarch.lasx.vext2xv.w.b ++ loongarch_lasx_vext2xv_w_h, // llvm.loongarch.lasx.vext2xv.w.h ++ loongarch_lasx_vext2xv_wu_bu, // llvm.loongarch.lasx.vext2xv.wu.bu ++ loongarch_lasx_vext2xv_wu_hu, // llvm.loongarch.lasx.vext2xv.wu.hu ++ loongarch_lasx_xbnz_b, // llvm.loongarch.lasx.xbnz.b ++ loongarch_lasx_xbnz_d, // llvm.loongarch.lasx.xbnz.d ++ loongarch_lasx_xbnz_h, // llvm.loongarch.lasx.xbnz.h ++ loongarch_lasx_xbnz_v, // llvm.loongarch.lasx.xbnz.v ++ loongarch_lasx_xbnz_w, // llvm.loongarch.lasx.xbnz.w ++ loongarch_lasx_xbz_b, // llvm.loongarch.lasx.xbz.b ++ loongarch_lasx_xbz_d, // llvm.loongarch.lasx.xbz.d ++ loongarch_lasx_xbz_h, // llvm.loongarch.lasx.xbz.h ++ loongarch_lasx_xbz_v, // llvm.loongarch.lasx.xbz.v ++ loongarch_lasx_xbz_w, // llvm.loongarch.lasx.xbz.w ++ loongarch_lasx_xvabsd_b, // llvm.loongarch.lasx.xvabsd.b ++ loongarch_lasx_xvabsd_bu, // llvm.loongarch.lasx.xvabsd.bu ++ loongarch_lasx_xvabsd_d, // llvm.loongarch.lasx.xvabsd.d ++ loongarch_lasx_xvabsd_du, // llvm.loongarch.lasx.xvabsd.du ++ loongarch_lasx_xvabsd_h, // llvm.loongarch.lasx.xvabsd.h ++ loongarch_lasx_xvabsd_hu, // llvm.loongarch.lasx.xvabsd.hu ++ loongarch_lasx_xvabsd_w, // llvm.loongarch.lasx.xvabsd.w ++ loongarch_lasx_xvabsd_wu, // llvm.loongarch.lasx.xvabsd.wu ++ loongarch_lasx_xvadd_b, // llvm.loongarch.lasx.xvadd.b ++ loongarch_lasx_xvadd_d, // llvm.loongarch.lasx.xvadd.d ++ loongarch_lasx_xvadd_h, // llvm.loongarch.lasx.xvadd.h ++ loongarch_lasx_xvadd_q, // llvm.loongarch.lasx.xvadd.q ++ loongarch_lasx_xvadd_w, // llvm.loongarch.lasx.xvadd.w ++ loongarch_lasx_xvadda_b, // llvm.loongarch.lasx.xvadda.b ++ loongarch_lasx_xvadda_d, // llvm.loongarch.lasx.xvadda.d ++ loongarch_lasx_xvadda_h, // llvm.loongarch.lasx.xvadda.h ++ loongarch_lasx_xvadda_w, // llvm.loongarch.lasx.xvadda.w ++ loongarch_lasx_xvaddi_bu, // llvm.loongarch.lasx.xvaddi.bu ++ loongarch_lasx_xvaddi_du, // llvm.loongarch.lasx.xvaddi.du ++ loongarch_lasx_xvaddi_hu, // llvm.loongarch.lasx.xvaddi.hu ++ loongarch_lasx_xvaddi_wu, // llvm.loongarch.lasx.xvaddi.wu ++ loongarch_lasx_xvaddwev_d_w, // llvm.loongarch.lasx.xvaddwev.d.w ++ loongarch_lasx_xvaddwev_d_wu, // llvm.loongarch.lasx.xvaddwev.d.wu ++ loongarch_lasx_xvaddwev_d_wu_w, // llvm.loongarch.lasx.xvaddwev.d.wu.w ++ loongarch_lasx_xvaddwev_h_b, // llvm.loongarch.lasx.xvaddwev.h.b ++ loongarch_lasx_xvaddwev_h_bu, // llvm.loongarch.lasx.xvaddwev.h.bu ++ loongarch_lasx_xvaddwev_h_bu_b, // llvm.loongarch.lasx.xvaddwev.h.bu.b ++ loongarch_lasx_xvaddwev_q_d, // llvm.loongarch.lasx.xvaddwev.q.d ++ loongarch_lasx_xvaddwev_q_du, // llvm.loongarch.lasx.xvaddwev.q.du ++ loongarch_lasx_xvaddwev_q_du_d, // llvm.loongarch.lasx.xvaddwev.q.du.d ++ loongarch_lasx_xvaddwev_w_h, // llvm.loongarch.lasx.xvaddwev.w.h ++ loongarch_lasx_xvaddwev_w_hu, // llvm.loongarch.lasx.xvaddwev.w.hu ++ loongarch_lasx_xvaddwev_w_hu_h, // llvm.loongarch.lasx.xvaddwev.w.hu.h ++ loongarch_lasx_xvaddwod_d_w, // llvm.loongarch.lasx.xvaddwod.d.w ++ loongarch_lasx_xvaddwod_d_wu, // llvm.loongarch.lasx.xvaddwod.d.wu ++ loongarch_lasx_xvaddwod_d_wu_w, // llvm.loongarch.lasx.xvaddwod.d.wu.w ++ loongarch_lasx_xvaddwod_h_b, // llvm.loongarch.lasx.xvaddwod.h.b ++ loongarch_lasx_xvaddwod_h_bu, // llvm.loongarch.lasx.xvaddwod.h.bu ++ loongarch_lasx_xvaddwod_h_bu_b, // llvm.loongarch.lasx.xvaddwod.h.bu.b ++ loongarch_lasx_xvaddwod_q_d, // llvm.loongarch.lasx.xvaddwod.q.d ++ loongarch_lasx_xvaddwod_q_du, // llvm.loongarch.lasx.xvaddwod.q.du ++ loongarch_lasx_xvaddwod_q_du_d, // llvm.loongarch.lasx.xvaddwod.q.du.d ++ loongarch_lasx_xvaddwod_w_h, // llvm.loongarch.lasx.xvaddwod.w.h ++ loongarch_lasx_xvaddwod_w_hu, // llvm.loongarch.lasx.xvaddwod.w.hu ++ loongarch_lasx_xvaddwod_w_hu_h, // llvm.loongarch.lasx.xvaddwod.w.hu.h ++ loongarch_lasx_xvand_v, // llvm.loongarch.lasx.xvand.v ++ loongarch_lasx_xvandi_b, // llvm.loongarch.lasx.xvandi.b ++ loongarch_lasx_xvandn_v, // llvm.loongarch.lasx.xvandn.v ++ loongarch_lasx_xvavg_b, // llvm.loongarch.lasx.xvavg.b ++ loongarch_lasx_xvavg_bu, // llvm.loongarch.lasx.xvavg.bu ++ loongarch_lasx_xvavg_d, // llvm.loongarch.lasx.xvavg.d ++ loongarch_lasx_xvavg_du, // llvm.loongarch.lasx.xvavg.du ++ loongarch_lasx_xvavg_h, // llvm.loongarch.lasx.xvavg.h ++ loongarch_lasx_xvavg_hu, // llvm.loongarch.lasx.xvavg.hu ++ loongarch_lasx_xvavg_w, // llvm.loongarch.lasx.xvavg.w ++ loongarch_lasx_xvavg_wu, // llvm.loongarch.lasx.xvavg.wu ++ loongarch_lasx_xvavgr_b, // llvm.loongarch.lasx.xvavgr.b ++ loongarch_lasx_xvavgr_bu, // llvm.loongarch.lasx.xvavgr.bu ++ loongarch_lasx_xvavgr_d, // llvm.loongarch.lasx.xvavgr.d ++ loongarch_lasx_xvavgr_du, // llvm.loongarch.lasx.xvavgr.du ++ loongarch_lasx_xvavgr_h, // llvm.loongarch.lasx.xvavgr.h ++ loongarch_lasx_xvavgr_hu, // llvm.loongarch.lasx.xvavgr.hu ++ loongarch_lasx_xvavgr_w, // llvm.loongarch.lasx.xvavgr.w ++ loongarch_lasx_xvavgr_wu, // llvm.loongarch.lasx.xvavgr.wu ++ loongarch_lasx_xvbitclr_b, // llvm.loongarch.lasx.xvbitclr.b ++ loongarch_lasx_xvbitclr_d, // llvm.loongarch.lasx.xvbitclr.d ++ loongarch_lasx_xvbitclr_h, // llvm.loongarch.lasx.xvbitclr.h ++ loongarch_lasx_xvbitclr_w, // llvm.loongarch.lasx.xvbitclr.w ++ loongarch_lasx_xvbitclri_b, // llvm.loongarch.lasx.xvbitclri.b ++ loongarch_lasx_xvbitclri_d, // llvm.loongarch.lasx.xvbitclri.d ++ loongarch_lasx_xvbitclri_h, // llvm.loongarch.lasx.xvbitclri.h ++ loongarch_lasx_xvbitclri_w, // llvm.loongarch.lasx.xvbitclri.w ++ loongarch_lasx_xvbitrev_b, // llvm.loongarch.lasx.xvbitrev.b ++ loongarch_lasx_xvbitrev_d, // llvm.loongarch.lasx.xvbitrev.d ++ loongarch_lasx_xvbitrev_h, // llvm.loongarch.lasx.xvbitrev.h ++ loongarch_lasx_xvbitrev_w, // llvm.loongarch.lasx.xvbitrev.w ++ loongarch_lasx_xvbitrevi_b, // llvm.loongarch.lasx.xvbitrevi.b ++ loongarch_lasx_xvbitrevi_d, // llvm.loongarch.lasx.xvbitrevi.d ++ loongarch_lasx_xvbitrevi_h, // llvm.loongarch.lasx.xvbitrevi.h ++ loongarch_lasx_xvbitrevi_w, // llvm.loongarch.lasx.xvbitrevi.w ++ loongarch_lasx_xvbitsel_v, // llvm.loongarch.lasx.xvbitsel.v ++ loongarch_lasx_xvbitseli_b, // llvm.loongarch.lasx.xvbitseli.b ++ loongarch_lasx_xvbitset_b, // llvm.loongarch.lasx.xvbitset.b ++ loongarch_lasx_xvbitset_d, // llvm.loongarch.lasx.xvbitset.d ++ loongarch_lasx_xvbitset_h, // llvm.loongarch.lasx.xvbitset.h ++ loongarch_lasx_xvbitset_w, // llvm.loongarch.lasx.xvbitset.w ++ loongarch_lasx_xvbitseti_b, // llvm.loongarch.lasx.xvbitseti.b ++ loongarch_lasx_xvbitseti_d, // llvm.loongarch.lasx.xvbitseti.d ++ loongarch_lasx_xvbitseti_h, // llvm.loongarch.lasx.xvbitseti.h ++ loongarch_lasx_xvbitseti_w, // llvm.loongarch.lasx.xvbitseti.w ++ loongarch_lasx_xvbsll_v, // llvm.loongarch.lasx.xvbsll.v ++ loongarch_lasx_xvbsrl_v, // llvm.loongarch.lasx.xvbsrl.v ++ loongarch_lasx_xvclo_b, // llvm.loongarch.lasx.xvclo.b ++ loongarch_lasx_xvclo_d, // llvm.loongarch.lasx.xvclo.d ++ loongarch_lasx_xvclo_h, // llvm.loongarch.lasx.xvclo.h ++ loongarch_lasx_xvclo_w, // llvm.loongarch.lasx.xvclo.w ++ loongarch_lasx_xvclz_b, // llvm.loongarch.lasx.xvclz.b ++ loongarch_lasx_xvclz_d, // llvm.loongarch.lasx.xvclz.d ++ loongarch_lasx_xvclz_h, // llvm.loongarch.lasx.xvclz.h ++ loongarch_lasx_xvclz_w, // llvm.loongarch.lasx.xvclz.w ++ loongarch_lasx_xvdiv_b, // llvm.loongarch.lasx.xvdiv.b ++ loongarch_lasx_xvdiv_bu, // llvm.loongarch.lasx.xvdiv.bu ++ loongarch_lasx_xvdiv_d, // llvm.loongarch.lasx.xvdiv.d ++ loongarch_lasx_xvdiv_du, // llvm.loongarch.lasx.xvdiv.du ++ loongarch_lasx_xvdiv_h, // llvm.loongarch.lasx.xvdiv.h ++ loongarch_lasx_xvdiv_hu, // llvm.loongarch.lasx.xvdiv.hu ++ loongarch_lasx_xvdiv_w, // llvm.loongarch.lasx.xvdiv.w ++ loongarch_lasx_xvdiv_wu, // llvm.loongarch.lasx.xvdiv.wu ++ loongarch_lasx_xvexth_d_w, // llvm.loongarch.lasx.xvexth.d.w ++ loongarch_lasx_xvexth_du_wu, // llvm.loongarch.lasx.xvexth.du.wu ++ loongarch_lasx_xvexth_h_b, // llvm.loongarch.lasx.xvexth.h.b ++ loongarch_lasx_xvexth_hu_bu, // llvm.loongarch.lasx.xvexth.hu.bu ++ loongarch_lasx_xvexth_q_d, // llvm.loongarch.lasx.xvexth.q.d ++ loongarch_lasx_xvexth_qu_du, // llvm.loongarch.lasx.xvexth.qu.du ++ loongarch_lasx_xvexth_w_h, // llvm.loongarch.lasx.xvexth.w.h ++ loongarch_lasx_xvexth_wu_hu, // llvm.loongarch.lasx.xvexth.wu.hu ++ loongarch_lasx_xvextl_q_d, // llvm.loongarch.lasx.xvextl.q.d ++ loongarch_lasx_xvextl_qu_du, // llvm.loongarch.lasx.xvextl.qu.du ++ loongarch_lasx_xvextrins_b, // llvm.loongarch.lasx.xvextrins.b ++ loongarch_lasx_xvextrins_d, // llvm.loongarch.lasx.xvextrins.d ++ loongarch_lasx_xvextrins_h, // llvm.loongarch.lasx.xvextrins.h ++ loongarch_lasx_xvextrins_w, // llvm.loongarch.lasx.xvextrins.w ++ loongarch_lasx_xvfadd_d, // llvm.loongarch.lasx.xvfadd.d ++ loongarch_lasx_xvfadd_s, // llvm.loongarch.lasx.xvfadd.s ++ loongarch_lasx_xvfclass_d, // llvm.loongarch.lasx.xvfclass.d ++ loongarch_lasx_xvfclass_s, // llvm.loongarch.lasx.xvfclass.s ++ loongarch_lasx_xvfcmp_caf_d, // llvm.loongarch.lasx.xvfcmp.caf.d ++ loongarch_lasx_xvfcmp_caf_s, // llvm.loongarch.lasx.xvfcmp.caf.s ++ loongarch_lasx_xvfcmp_ceq_d, // llvm.loongarch.lasx.xvfcmp.ceq.d ++ loongarch_lasx_xvfcmp_ceq_s, // llvm.loongarch.lasx.xvfcmp.ceq.s ++ loongarch_lasx_xvfcmp_cle_d, // llvm.loongarch.lasx.xvfcmp.cle.d ++ loongarch_lasx_xvfcmp_cle_s, // llvm.loongarch.lasx.xvfcmp.cle.s ++ loongarch_lasx_xvfcmp_clt_d, // llvm.loongarch.lasx.xvfcmp.clt.d ++ loongarch_lasx_xvfcmp_clt_s, // llvm.loongarch.lasx.xvfcmp.clt.s ++ loongarch_lasx_xvfcmp_cne_d, // llvm.loongarch.lasx.xvfcmp.cne.d ++ loongarch_lasx_xvfcmp_cne_s, // llvm.loongarch.lasx.xvfcmp.cne.s ++ loongarch_lasx_xvfcmp_cor_d, // llvm.loongarch.lasx.xvfcmp.cor.d ++ loongarch_lasx_xvfcmp_cor_s, // llvm.loongarch.lasx.xvfcmp.cor.s ++ loongarch_lasx_xvfcmp_cueq_d, // llvm.loongarch.lasx.xvfcmp.cueq.d ++ loongarch_lasx_xvfcmp_cueq_s, // llvm.loongarch.lasx.xvfcmp.cueq.s ++ loongarch_lasx_xvfcmp_cule_d, // llvm.loongarch.lasx.xvfcmp.cule.d ++ loongarch_lasx_xvfcmp_cule_s, // llvm.loongarch.lasx.xvfcmp.cule.s ++ loongarch_lasx_xvfcmp_cult_d, // llvm.loongarch.lasx.xvfcmp.cult.d ++ loongarch_lasx_xvfcmp_cult_s, // llvm.loongarch.lasx.xvfcmp.cult.s ++ loongarch_lasx_xvfcmp_cun_d, // llvm.loongarch.lasx.xvfcmp.cun.d ++ loongarch_lasx_xvfcmp_cun_s, // llvm.loongarch.lasx.xvfcmp.cun.s ++ loongarch_lasx_xvfcmp_cune_d, // llvm.loongarch.lasx.xvfcmp.cune.d ++ loongarch_lasx_xvfcmp_cune_s, // llvm.loongarch.lasx.xvfcmp.cune.s ++ loongarch_lasx_xvfcmp_saf_d, // llvm.loongarch.lasx.xvfcmp.saf.d ++ loongarch_lasx_xvfcmp_saf_s, // llvm.loongarch.lasx.xvfcmp.saf.s ++ loongarch_lasx_xvfcmp_seq_d, // llvm.loongarch.lasx.xvfcmp.seq.d ++ loongarch_lasx_xvfcmp_seq_s, // llvm.loongarch.lasx.xvfcmp.seq.s ++ loongarch_lasx_xvfcmp_sle_d, // llvm.loongarch.lasx.xvfcmp.sle.d ++ loongarch_lasx_xvfcmp_sle_s, // llvm.loongarch.lasx.xvfcmp.sle.s ++ loongarch_lasx_xvfcmp_slt_d, // llvm.loongarch.lasx.xvfcmp.slt.d ++ loongarch_lasx_xvfcmp_slt_s, // llvm.loongarch.lasx.xvfcmp.slt.s ++ loongarch_lasx_xvfcmp_sne_d, // llvm.loongarch.lasx.xvfcmp.sne.d ++ loongarch_lasx_xvfcmp_sne_s, // llvm.loongarch.lasx.xvfcmp.sne.s ++ loongarch_lasx_xvfcmp_sor_d, // llvm.loongarch.lasx.xvfcmp.sor.d ++ loongarch_lasx_xvfcmp_sor_s, // llvm.loongarch.lasx.xvfcmp.sor.s ++ loongarch_lasx_xvfcmp_sueq_d, // llvm.loongarch.lasx.xvfcmp.sueq.d ++ loongarch_lasx_xvfcmp_sueq_s, // llvm.loongarch.lasx.xvfcmp.sueq.s ++ loongarch_lasx_xvfcmp_sule_d, // llvm.loongarch.lasx.xvfcmp.sule.d ++ loongarch_lasx_xvfcmp_sule_s, // llvm.loongarch.lasx.xvfcmp.sule.s ++ loongarch_lasx_xvfcmp_sult_d, // llvm.loongarch.lasx.xvfcmp.sult.d ++ loongarch_lasx_xvfcmp_sult_s, // llvm.loongarch.lasx.xvfcmp.sult.s ++ loongarch_lasx_xvfcmp_sun_d, // llvm.loongarch.lasx.xvfcmp.sun.d ++ loongarch_lasx_xvfcmp_sun_s, // llvm.loongarch.lasx.xvfcmp.sun.s ++ loongarch_lasx_xvfcmp_sune_d, // llvm.loongarch.lasx.xvfcmp.sune.d ++ loongarch_lasx_xvfcmp_sune_s, // llvm.loongarch.lasx.xvfcmp.sune.s ++ loongarch_lasx_xvfcvt_h_s, // llvm.loongarch.lasx.xvfcvt.h.s ++ loongarch_lasx_xvfcvt_s_d, // llvm.loongarch.lasx.xvfcvt.s.d ++ loongarch_lasx_xvfcvth_d_s, // llvm.loongarch.lasx.xvfcvth.d.s ++ loongarch_lasx_xvfcvth_s_h, // llvm.loongarch.lasx.xvfcvth.s.h ++ loongarch_lasx_xvfcvtl_d_s, // llvm.loongarch.lasx.xvfcvtl.d.s ++ loongarch_lasx_xvfcvtl_s_h, // llvm.loongarch.lasx.xvfcvtl.s.h ++ loongarch_lasx_xvfdiv_d, // llvm.loongarch.lasx.xvfdiv.d ++ loongarch_lasx_xvfdiv_s, // llvm.loongarch.lasx.xvfdiv.s ++ loongarch_lasx_xvffint_d_l, // llvm.loongarch.lasx.xvffint.d.l ++ loongarch_lasx_xvffint_d_lu, // llvm.loongarch.lasx.xvffint.d.lu ++ loongarch_lasx_xvffint_s_l, // llvm.loongarch.lasx.xvffint.s.l ++ loongarch_lasx_xvffint_s_w, // llvm.loongarch.lasx.xvffint.s.w ++ loongarch_lasx_xvffint_s_wu, // llvm.loongarch.lasx.xvffint.s.wu ++ loongarch_lasx_xvffinth_d_w, // llvm.loongarch.lasx.xvffinth.d.w ++ loongarch_lasx_xvffintl_d_w, // llvm.loongarch.lasx.xvffintl.d.w ++ loongarch_lasx_xvflogb_d, // llvm.loongarch.lasx.xvflogb.d ++ loongarch_lasx_xvflogb_s, // llvm.loongarch.lasx.xvflogb.s ++ loongarch_lasx_xvfmadd_d, // llvm.loongarch.lasx.xvfmadd.d ++ loongarch_lasx_xvfmadd_s, // llvm.loongarch.lasx.xvfmadd.s ++ loongarch_lasx_xvfmax_d, // llvm.loongarch.lasx.xvfmax.d ++ loongarch_lasx_xvfmax_s, // llvm.loongarch.lasx.xvfmax.s ++ loongarch_lasx_xvfmaxa_d, // llvm.loongarch.lasx.xvfmaxa.d ++ loongarch_lasx_xvfmaxa_s, // llvm.loongarch.lasx.xvfmaxa.s ++ loongarch_lasx_xvfmin_d, // llvm.loongarch.lasx.xvfmin.d ++ loongarch_lasx_xvfmin_s, // llvm.loongarch.lasx.xvfmin.s ++ loongarch_lasx_xvfmina_d, // llvm.loongarch.lasx.xvfmina.d ++ loongarch_lasx_xvfmina_s, // llvm.loongarch.lasx.xvfmina.s ++ loongarch_lasx_xvfmsub_d, // llvm.loongarch.lasx.xvfmsub.d ++ loongarch_lasx_xvfmsub_s, // llvm.loongarch.lasx.xvfmsub.s ++ loongarch_lasx_xvfmul_d, // llvm.loongarch.lasx.xvfmul.d ++ loongarch_lasx_xvfmul_s, // llvm.loongarch.lasx.xvfmul.s ++ loongarch_lasx_xvfnmadd_d, // llvm.loongarch.lasx.xvfnmadd.d ++ loongarch_lasx_xvfnmadd_s, // llvm.loongarch.lasx.xvfnmadd.s ++ loongarch_lasx_xvfnmsub_d, // llvm.loongarch.lasx.xvfnmsub.d ++ loongarch_lasx_xvfnmsub_s, // llvm.loongarch.lasx.xvfnmsub.s ++ loongarch_lasx_xvfrecip_d, // llvm.loongarch.lasx.xvfrecip.d ++ loongarch_lasx_xvfrecip_s, // llvm.loongarch.lasx.xvfrecip.s ++ loongarch_lasx_xvfrint_d, // llvm.loongarch.lasx.xvfrint.d ++ loongarch_lasx_xvfrint_s, // llvm.loongarch.lasx.xvfrint.s ++ loongarch_lasx_xvfrintrm_d, // llvm.loongarch.lasx.xvfrintrm.d ++ loongarch_lasx_xvfrintrm_s, // llvm.loongarch.lasx.xvfrintrm.s ++ loongarch_lasx_xvfrintrne_d, // llvm.loongarch.lasx.xvfrintrne.d ++ loongarch_lasx_xvfrintrne_s, // llvm.loongarch.lasx.xvfrintrne.s ++ loongarch_lasx_xvfrintrp_d, // llvm.loongarch.lasx.xvfrintrp.d ++ loongarch_lasx_xvfrintrp_s, // llvm.loongarch.lasx.xvfrintrp.s ++ loongarch_lasx_xvfrintrz_d, // llvm.loongarch.lasx.xvfrintrz.d ++ loongarch_lasx_xvfrintrz_s, // llvm.loongarch.lasx.xvfrintrz.s ++ loongarch_lasx_xvfrsqrt_d, // llvm.loongarch.lasx.xvfrsqrt.d ++ loongarch_lasx_xvfrsqrt_s, // llvm.loongarch.lasx.xvfrsqrt.s ++ loongarch_lasx_xvfrstp_b, // llvm.loongarch.lasx.xvfrstp.b ++ loongarch_lasx_xvfrstp_h, // llvm.loongarch.lasx.xvfrstp.h ++ loongarch_lasx_xvfrstpi_b, // llvm.loongarch.lasx.xvfrstpi.b ++ loongarch_lasx_xvfrstpi_h, // llvm.loongarch.lasx.xvfrstpi.h ++ loongarch_lasx_xvfsqrt_d, // llvm.loongarch.lasx.xvfsqrt.d ++ loongarch_lasx_xvfsqrt_s, // llvm.loongarch.lasx.xvfsqrt.s ++ loongarch_lasx_xvfsub_d, // llvm.loongarch.lasx.xvfsub.d ++ loongarch_lasx_xvfsub_s, // llvm.loongarch.lasx.xvfsub.s ++ loongarch_lasx_xvftint_l_d, // llvm.loongarch.lasx.xvftint.l.d ++ loongarch_lasx_xvftint_lu_d, // llvm.loongarch.lasx.xvftint.lu.d ++ loongarch_lasx_xvftint_w_d, // llvm.loongarch.lasx.xvftint.w.d ++ loongarch_lasx_xvftint_w_s, // llvm.loongarch.lasx.xvftint.w.s ++ loongarch_lasx_xvftint_wu_s, // llvm.loongarch.lasx.xvftint.wu.s ++ loongarch_lasx_xvftinth_l_s, // llvm.loongarch.lasx.xvftinth.l.s ++ loongarch_lasx_xvftintl_l_s, // llvm.loongarch.lasx.xvftintl.l.s ++ loongarch_lasx_xvftintrm_l_d, // llvm.loongarch.lasx.xvftintrm.l.d ++ loongarch_lasx_xvftintrm_w_d, // llvm.loongarch.lasx.xvftintrm.w.d ++ loongarch_lasx_xvftintrm_w_s, // llvm.loongarch.lasx.xvftintrm.w.s ++ loongarch_lasx_xvftintrmh_l_s, // llvm.loongarch.lasx.xvftintrmh.l.s ++ loongarch_lasx_xvftintrml_l_s, // llvm.loongarch.lasx.xvftintrml.l.s ++ loongarch_lasx_xvftintrne_l_d, // llvm.loongarch.lasx.xvftintrne.l.d ++ loongarch_lasx_xvftintrne_w_d, // llvm.loongarch.lasx.xvftintrne.w.d ++ loongarch_lasx_xvftintrne_w_s, // llvm.loongarch.lasx.xvftintrne.w.s ++ loongarch_lasx_xvftintrneh_l_s, // llvm.loongarch.lasx.xvftintrneh.l.s ++ loongarch_lasx_xvftintrnel_l_s, // llvm.loongarch.lasx.xvftintrnel.l.s ++ loongarch_lasx_xvftintrp_l_d, // llvm.loongarch.lasx.xvftintrp.l.d ++ loongarch_lasx_xvftintrp_w_d, // llvm.loongarch.lasx.xvftintrp.w.d ++ loongarch_lasx_xvftintrp_w_s, // llvm.loongarch.lasx.xvftintrp.w.s ++ loongarch_lasx_xvftintrph_l_s, // llvm.loongarch.lasx.xvftintrph.l.s ++ loongarch_lasx_xvftintrpl_l_s, // llvm.loongarch.lasx.xvftintrpl.l.s ++ loongarch_lasx_xvftintrz_l_d, // llvm.loongarch.lasx.xvftintrz.l.d ++ loongarch_lasx_xvftintrz_lu_d, // llvm.loongarch.lasx.xvftintrz.lu.d ++ loongarch_lasx_xvftintrz_w_d, // llvm.loongarch.lasx.xvftintrz.w.d ++ loongarch_lasx_xvftintrz_w_s, // llvm.loongarch.lasx.xvftintrz.w.s ++ loongarch_lasx_xvftintrz_wu_s, // llvm.loongarch.lasx.xvftintrz.wu.s ++ loongarch_lasx_xvftintrzh_l_s, // llvm.loongarch.lasx.xvftintrzh.l.s ++ loongarch_lasx_xvftintrzl_l_s, // llvm.loongarch.lasx.xvftintrzl.l.s ++ loongarch_lasx_xvhaddw_d_w, // llvm.loongarch.lasx.xvhaddw.d.w ++ loongarch_lasx_xvhaddw_du_wu, // llvm.loongarch.lasx.xvhaddw.du.wu ++ loongarch_lasx_xvhaddw_h_b, // llvm.loongarch.lasx.xvhaddw.h.b ++ loongarch_lasx_xvhaddw_hu_bu, // llvm.loongarch.lasx.xvhaddw.hu.bu ++ loongarch_lasx_xvhaddw_q_d, // llvm.loongarch.lasx.xvhaddw.q.d ++ loongarch_lasx_xvhaddw_qu_du, // llvm.loongarch.lasx.xvhaddw.qu.du ++ loongarch_lasx_xvhaddw_w_h, // llvm.loongarch.lasx.xvhaddw.w.h ++ loongarch_lasx_xvhaddw_wu_hu, // llvm.loongarch.lasx.xvhaddw.wu.hu ++ loongarch_lasx_xvhsubw_d_w, // llvm.loongarch.lasx.xvhsubw.d.w ++ loongarch_lasx_xvhsubw_du_wu, // llvm.loongarch.lasx.xvhsubw.du.wu ++ loongarch_lasx_xvhsubw_h_b, // llvm.loongarch.lasx.xvhsubw.h.b ++ loongarch_lasx_xvhsubw_hu_bu, // llvm.loongarch.lasx.xvhsubw.hu.bu ++ loongarch_lasx_xvhsubw_q_d, // llvm.loongarch.lasx.xvhsubw.q.d ++ loongarch_lasx_xvhsubw_qu_du, // llvm.loongarch.lasx.xvhsubw.qu.du ++ loongarch_lasx_xvhsubw_w_h, // llvm.loongarch.lasx.xvhsubw.w.h ++ loongarch_lasx_xvhsubw_wu_hu, // llvm.loongarch.lasx.xvhsubw.wu.hu ++ loongarch_lasx_xvilvh_b, // llvm.loongarch.lasx.xvilvh.b ++ loongarch_lasx_xvilvh_d, // llvm.loongarch.lasx.xvilvh.d ++ loongarch_lasx_xvilvh_h, // llvm.loongarch.lasx.xvilvh.h ++ loongarch_lasx_xvilvh_w, // llvm.loongarch.lasx.xvilvh.w ++ loongarch_lasx_xvilvl_b, // llvm.loongarch.lasx.xvilvl.b ++ loongarch_lasx_xvilvl_d, // llvm.loongarch.lasx.xvilvl.d ++ loongarch_lasx_xvilvl_h, // llvm.loongarch.lasx.xvilvl.h ++ loongarch_lasx_xvilvl_w, // llvm.loongarch.lasx.xvilvl.w ++ loongarch_lasx_xvinsgr2vr_d, // llvm.loongarch.lasx.xvinsgr2vr.d ++ loongarch_lasx_xvinsgr2vr_w, // llvm.loongarch.lasx.xvinsgr2vr.w ++ loongarch_lasx_xvinsve0_d, // llvm.loongarch.lasx.xvinsve0.d ++ loongarch_lasx_xvinsve0_w, // llvm.loongarch.lasx.xvinsve0.w ++ loongarch_lasx_xvld, // llvm.loongarch.lasx.xvld ++ loongarch_lasx_xvldi, // llvm.loongarch.lasx.xvldi ++ loongarch_lasx_xvldrepl_b, // llvm.loongarch.lasx.xvldrepl.b ++ loongarch_lasx_xvldrepl_d, // llvm.loongarch.lasx.xvldrepl.d ++ loongarch_lasx_xvldrepl_h, // llvm.loongarch.lasx.xvldrepl.h ++ loongarch_lasx_xvldrepl_w, // llvm.loongarch.lasx.xvldrepl.w ++ loongarch_lasx_xvldx, // llvm.loongarch.lasx.xvldx ++ loongarch_lasx_xvmadd_b, // llvm.loongarch.lasx.xvmadd.b ++ loongarch_lasx_xvmadd_d, // llvm.loongarch.lasx.xvmadd.d ++ loongarch_lasx_xvmadd_h, // llvm.loongarch.lasx.xvmadd.h ++ loongarch_lasx_xvmadd_w, // llvm.loongarch.lasx.xvmadd.w ++ loongarch_lasx_xvmaddwev_d_w, // llvm.loongarch.lasx.xvmaddwev.d.w ++ loongarch_lasx_xvmaddwev_d_wu, // llvm.loongarch.lasx.xvmaddwev.d.wu ++ loongarch_lasx_xvmaddwev_d_wu_w, // llvm.loongarch.lasx.xvmaddwev.d.wu.w ++ loongarch_lasx_xvmaddwev_h_b, // llvm.loongarch.lasx.xvmaddwev.h.b ++ loongarch_lasx_xvmaddwev_h_bu, // llvm.loongarch.lasx.xvmaddwev.h.bu ++ loongarch_lasx_xvmaddwev_h_bu_b, // llvm.loongarch.lasx.xvmaddwev.h.bu.b ++ loongarch_lasx_xvmaddwev_q_d, // llvm.loongarch.lasx.xvmaddwev.q.d ++ loongarch_lasx_xvmaddwev_q_du, // llvm.loongarch.lasx.xvmaddwev.q.du ++ loongarch_lasx_xvmaddwev_q_du_d, // llvm.loongarch.lasx.xvmaddwev.q.du.d ++ loongarch_lasx_xvmaddwev_w_h, // llvm.loongarch.lasx.xvmaddwev.w.h ++ loongarch_lasx_xvmaddwev_w_hu, // llvm.loongarch.lasx.xvmaddwev.w.hu ++ loongarch_lasx_xvmaddwev_w_hu_h, // llvm.loongarch.lasx.xvmaddwev.w.hu.h ++ loongarch_lasx_xvmaddwod_d_w, // llvm.loongarch.lasx.xvmaddwod.d.w ++ loongarch_lasx_xvmaddwod_d_wu, // llvm.loongarch.lasx.xvmaddwod.d.wu ++ loongarch_lasx_xvmaddwod_d_wu_w, // llvm.loongarch.lasx.xvmaddwod.d.wu.w ++ loongarch_lasx_xvmaddwod_h_b, // llvm.loongarch.lasx.xvmaddwod.h.b ++ loongarch_lasx_xvmaddwod_h_bu, // llvm.loongarch.lasx.xvmaddwod.h.bu ++ loongarch_lasx_xvmaddwod_h_bu_b, // llvm.loongarch.lasx.xvmaddwod.h.bu.b ++ loongarch_lasx_xvmaddwod_q_d, // llvm.loongarch.lasx.xvmaddwod.q.d ++ loongarch_lasx_xvmaddwod_q_du, // llvm.loongarch.lasx.xvmaddwod.q.du ++ loongarch_lasx_xvmaddwod_q_du_d, // llvm.loongarch.lasx.xvmaddwod.q.du.d ++ loongarch_lasx_xvmaddwod_w_h, // llvm.loongarch.lasx.xvmaddwod.w.h ++ loongarch_lasx_xvmaddwod_w_hu, // llvm.loongarch.lasx.xvmaddwod.w.hu ++ loongarch_lasx_xvmaddwod_w_hu_h, // llvm.loongarch.lasx.xvmaddwod.w.hu.h ++ loongarch_lasx_xvmax_b, // llvm.loongarch.lasx.xvmax.b ++ loongarch_lasx_xvmax_bu, // llvm.loongarch.lasx.xvmax.bu ++ loongarch_lasx_xvmax_d, // llvm.loongarch.lasx.xvmax.d ++ loongarch_lasx_xvmax_du, // llvm.loongarch.lasx.xvmax.du ++ loongarch_lasx_xvmax_h, // llvm.loongarch.lasx.xvmax.h ++ loongarch_lasx_xvmax_hu, // llvm.loongarch.lasx.xvmax.hu ++ loongarch_lasx_xvmax_w, // llvm.loongarch.lasx.xvmax.w ++ loongarch_lasx_xvmax_wu, // llvm.loongarch.lasx.xvmax.wu ++ loongarch_lasx_xvmaxi_b, // llvm.loongarch.lasx.xvmaxi.b ++ loongarch_lasx_xvmaxi_bu, // llvm.loongarch.lasx.xvmaxi.bu ++ loongarch_lasx_xvmaxi_d, // llvm.loongarch.lasx.xvmaxi.d ++ loongarch_lasx_xvmaxi_du, // llvm.loongarch.lasx.xvmaxi.du ++ loongarch_lasx_xvmaxi_h, // llvm.loongarch.lasx.xvmaxi.h ++ loongarch_lasx_xvmaxi_hu, // llvm.loongarch.lasx.xvmaxi.hu ++ loongarch_lasx_xvmaxi_w, // llvm.loongarch.lasx.xvmaxi.w ++ loongarch_lasx_xvmaxi_wu, // llvm.loongarch.lasx.xvmaxi.wu ++ loongarch_lasx_xvmin_b, // llvm.loongarch.lasx.xvmin.b ++ loongarch_lasx_xvmin_bu, // llvm.loongarch.lasx.xvmin.bu ++ loongarch_lasx_xvmin_d, // llvm.loongarch.lasx.xvmin.d ++ loongarch_lasx_xvmin_du, // llvm.loongarch.lasx.xvmin.du ++ loongarch_lasx_xvmin_h, // llvm.loongarch.lasx.xvmin.h ++ loongarch_lasx_xvmin_hu, // llvm.loongarch.lasx.xvmin.hu ++ loongarch_lasx_xvmin_w, // llvm.loongarch.lasx.xvmin.w ++ loongarch_lasx_xvmin_wu, // llvm.loongarch.lasx.xvmin.wu ++ loongarch_lasx_xvmini_b, // llvm.loongarch.lasx.xvmini.b ++ loongarch_lasx_xvmini_bu, // llvm.loongarch.lasx.xvmini.bu ++ loongarch_lasx_xvmini_d, // llvm.loongarch.lasx.xvmini.d ++ loongarch_lasx_xvmini_du, // llvm.loongarch.lasx.xvmini.du ++ loongarch_lasx_xvmini_h, // llvm.loongarch.lasx.xvmini.h ++ loongarch_lasx_xvmini_hu, // llvm.loongarch.lasx.xvmini.hu ++ loongarch_lasx_xvmini_w, // llvm.loongarch.lasx.xvmini.w ++ loongarch_lasx_xvmini_wu, // llvm.loongarch.lasx.xvmini.wu ++ loongarch_lasx_xvmod_b, // llvm.loongarch.lasx.xvmod.b ++ loongarch_lasx_xvmod_bu, // llvm.loongarch.lasx.xvmod.bu ++ loongarch_lasx_xvmod_d, // llvm.loongarch.lasx.xvmod.d ++ loongarch_lasx_xvmod_du, // llvm.loongarch.lasx.xvmod.du ++ loongarch_lasx_xvmod_h, // llvm.loongarch.lasx.xvmod.h ++ loongarch_lasx_xvmod_hu, // llvm.loongarch.lasx.xvmod.hu ++ loongarch_lasx_xvmod_w, // llvm.loongarch.lasx.xvmod.w ++ loongarch_lasx_xvmod_wu, // llvm.loongarch.lasx.xvmod.wu ++ loongarch_lasx_xvmskgez_b, // llvm.loongarch.lasx.xvmskgez.b ++ loongarch_lasx_xvmskltz_b, // llvm.loongarch.lasx.xvmskltz.b ++ loongarch_lasx_xvmskltz_d, // llvm.loongarch.lasx.xvmskltz.d ++ loongarch_lasx_xvmskltz_h, // llvm.loongarch.lasx.xvmskltz.h ++ loongarch_lasx_xvmskltz_w, // llvm.loongarch.lasx.xvmskltz.w ++ loongarch_lasx_xvmsknz_b, // llvm.loongarch.lasx.xvmsknz.b ++ loongarch_lasx_xvmsub_b, // llvm.loongarch.lasx.xvmsub.b ++ loongarch_lasx_xvmsub_d, // llvm.loongarch.lasx.xvmsub.d ++ loongarch_lasx_xvmsub_h, // llvm.loongarch.lasx.xvmsub.h ++ loongarch_lasx_xvmsub_w, // llvm.loongarch.lasx.xvmsub.w ++ loongarch_lasx_xvmuh_b, // llvm.loongarch.lasx.xvmuh.b ++ loongarch_lasx_xvmuh_bu, // llvm.loongarch.lasx.xvmuh.bu ++ loongarch_lasx_xvmuh_d, // llvm.loongarch.lasx.xvmuh.d ++ loongarch_lasx_xvmuh_du, // llvm.loongarch.lasx.xvmuh.du ++ loongarch_lasx_xvmuh_h, // llvm.loongarch.lasx.xvmuh.h ++ loongarch_lasx_xvmuh_hu, // llvm.loongarch.lasx.xvmuh.hu ++ loongarch_lasx_xvmuh_w, // llvm.loongarch.lasx.xvmuh.w ++ loongarch_lasx_xvmuh_wu, // llvm.loongarch.lasx.xvmuh.wu ++ loongarch_lasx_xvmul_b, // llvm.loongarch.lasx.xvmul.b ++ loongarch_lasx_xvmul_d, // llvm.loongarch.lasx.xvmul.d ++ loongarch_lasx_xvmul_h, // llvm.loongarch.lasx.xvmul.h ++ loongarch_lasx_xvmul_w, // llvm.loongarch.lasx.xvmul.w ++ loongarch_lasx_xvmulwev_d_w, // llvm.loongarch.lasx.xvmulwev.d.w ++ loongarch_lasx_xvmulwev_d_wu, // llvm.loongarch.lasx.xvmulwev.d.wu ++ loongarch_lasx_xvmulwev_d_wu_w, // llvm.loongarch.lasx.xvmulwev.d.wu.w ++ loongarch_lasx_xvmulwev_h_b, // llvm.loongarch.lasx.xvmulwev.h.b ++ loongarch_lasx_xvmulwev_h_bu, // llvm.loongarch.lasx.xvmulwev.h.bu ++ loongarch_lasx_xvmulwev_h_bu_b, // llvm.loongarch.lasx.xvmulwev.h.bu.b ++ loongarch_lasx_xvmulwev_q_d, // llvm.loongarch.lasx.xvmulwev.q.d ++ loongarch_lasx_xvmulwev_q_du, // llvm.loongarch.lasx.xvmulwev.q.du ++ loongarch_lasx_xvmulwev_q_du_d, // llvm.loongarch.lasx.xvmulwev.q.du.d ++ loongarch_lasx_xvmulwev_w_h, // llvm.loongarch.lasx.xvmulwev.w.h ++ loongarch_lasx_xvmulwev_w_hu, // llvm.loongarch.lasx.xvmulwev.w.hu ++ loongarch_lasx_xvmulwev_w_hu_h, // llvm.loongarch.lasx.xvmulwev.w.hu.h ++ loongarch_lasx_xvmulwod_d_w, // llvm.loongarch.lasx.xvmulwod.d.w ++ loongarch_lasx_xvmulwod_d_wu, // llvm.loongarch.lasx.xvmulwod.d.wu ++ loongarch_lasx_xvmulwod_d_wu_w, // llvm.loongarch.lasx.xvmulwod.d.wu.w ++ loongarch_lasx_xvmulwod_h_b, // llvm.loongarch.lasx.xvmulwod.h.b ++ loongarch_lasx_xvmulwod_h_bu, // llvm.loongarch.lasx.xvmulwod.h.bu ++ loongarch_lasx_xvmulwod_h_bu_b, // llvm.loongarch.lasx.xvmulwod.h.bu.b ++ loongarch_lasx_xvmulwod_q_d, // llvm.loongarch.lasx.xvmulwod.q.d ++ loongarch_lasx_xvmulwod_q_du, // llvm.loongarch.lasx.xvmulwod.q.du ++ loongarch_lasx_xvmulwod_q_du_d, // llvm.loongarch.lasx.xvmulwod.q.du.d ++ loongarch_lasx_xvmulwod_w_h, // llvm.loongarch.lasx.xvmulwod.w.h ++ loongarch_lasx_xvmulwod_w_hu, // llvm.loongarch.lasx.xvmulwod.w.hu ++ loongarch_lasx_xvmulwod_w_hu_h, // llvm.loongarch.lasx.xvmulwod.w.hu.h ++ loongarch_lasx_xvneg_b, // llvm.loongarch.lasx.xvneg.b ++ loongarch_lasx_xvneg_d, // llvm.loongarch.lasx.xvneg.d ++ loongarch_lasx_xvneg_h, // llvm.loongarch.lasx.xvneg.h ++ loongarch_lasx_xvneg_w, // llvm.loongarch.lasx.xvneg.w ++ loongarch_lasx_xvnor_v, // llvm.loongarch.lasx.xvnor.v ++ loongarch_lasx_xvnori_b, // llvm.loongarch.lasx.xvnori.b ++ loongarch_lasx_xvor_v, // llvm.loongarch.lasx.xvor.v ++ loongarch_lasx_xvori_b, // llvm.loongarch.lasx.xvori.b ++ loongarch_lasx_xvorn_v, // llvm.loongarch.lasx.xvorn.v ++ loongarch_lasx_xvpackev_b, // llvm.loongarch.lasx.xvpackev.b ++ loongarch_lasx_xvpackev_d, // llvm.loongarch.lasx.xvpackev.d ++ loongarch_lasx_xvpackev_h, // llvm.loongarch.lasx.xvpackev.h ++ loongarch_lasx_xvpackev_w, // llvm.loongarch.lasx.xvpackev.w ++ loongarch_lasx_xvpackod_b, // llvm.loongarch.lasx.xvpackod.b ++ loongarch_lasx_xvpackod_d, // llvm.loongarch.lasx.xvpackod.d ++ loongarch_lasx_xvpackod_h, // llvm.loongarch.lasx.xvpackod.h ++ loongarch_lasx_xvpackod_w, // llvm.loongarch.lasx.xvpackod.w ++ loongarch_lasx_xvpcnt_b, // llvm.loongarch.lasx.xvpcnt.b ++ loongarch_lasx_xvpcnt_d, // llvm.loongarch.lasx.xvpcnt.d ++ loongarch_lasx_xvpcnt_h, // llvm.loongarch.lasx.xvpcnt.h ++ loongarch_lasx_xvpcnt_w, // llvm.loongarch.lasx.xvpcnt.w ++ loongarch_lasx_xvperm_w, // llvm.loongarch.lasx.xvperm.w ++ loongarch_lasx_xvpermi_d, // llvm.loongarch.lasx.xvpermi.d ++ loongarch_lasx_xvpermi_q, // llvm.loongarch.lasx.xvpermi.q ++ loongarch_lasx_xvpermi_w, // llvm.loongarch.lasx.xvpermi.w ++ loongarch_lasx_xvpickev_b, // llvm.loongarch.lasx.xvpickev.b ++ loongarch_lasx_xvpickev_d, // llvm.loongarch.lasx.xvpickev.d ++ loongarch_lasx_xvpickev_h, // llvm.loongarch.lasx.xvpickev.h ++ loongarch_lasx_xvpickev_w, // llvm.loongarch.lasx.xvpickev.w ++ loongarch_lasx_xvpickod_b, // llvm.loongarch.lasx.xvpickod.b ++ loongarch_lasx_xvpickod_d, // llvm.loongarch.lasx.xvpickod.d ++ loongarch_lasx_xvpickod_h, // llvm.loongarch.lasx.xvpickod.h ++ loongarch_lasx_xvpickod_w, // llvm.loongarch.lasx.xvpickod.w ++ loongarch_lasx_xvpickve_d, // llvm.loongarch.lasx.xvpickve.d ++ loongarch_lasx_xvpickve_w, // llvm.loongarch.lasx.xvpickve.w ++ loongarch_lasx_xvpickve2gr_d, // llvm.loongarch.lasx.xvpickve2gr.d ++ loongarch_lasx_xvpickve2gr_du, // llvm.loongarch.lasx.xvpickve2gr.du ++ loongarch_lasx_xvpickve2gr_w, // llvm.loongarch.lasx.xvpickve2gr.w ++ loongarch_lasx_xvpickve2gr_wu, // llvm.loongarch.lasx.xvpickve2gr.wu ++ loongarch_lasx_xvrepl128vei_b, // llvm.loongarch.lasx.xvrepl128vei.b ++ loongarch_lasx_xvrepl128vei_d, // llvm.loongarch.lasx.xvrepl128vei.d ++ loongarch_lasx_xvrepl128vei_h, // llvm.loongarch.lasx.xvrepl128vei.h ++ loongarch_lasx_xvrepl128vei_w, // llvm.loongarch.lasx.xvrepl128vei.w ++ loongarch_lasx_xvreplgr2vr_b, // llvm.loongarch.lasx.xvreplgr2vr.b ++ loongarch_lasx_xvreplgr2vr_d, // llvm.loongarch.lasx.xvreplgr2vr.d ++ loongarch_lasx_xvreplgr2vr_h, // llvm.loongarch.lasx.xvreplgr2vr.h ++ loongarch_lasx_xvreplgr2vr_w, // llvm.loongarch.lasx.xvreplgr2vr.w ++ loongarch_lasx_xvreplve_b, // llvm.loongarch.lasx.xvreplve.b ++ loongarch_lasx_xvreplve_d, // llvm.loongarch.lasx.xvreplve.d ++ loongarch_lasx_xvreplve_h, // llvm.loongarch.lasx.xvreplve.h ++ loongarch_lasx_xvreplve_w, // llvm.loongarch.lasx.xvreplve.w ++ loongarch_lasx_xvreplve0_b, // llvm.loongarch.lasx.xvreplve0.b ++ loongarch_lasx_xvreplve0_d, // llvm.loongarch.lasx.xvreplve0.d ++ loongarch_lasx_xvreplve0_h, // llvm.loongarch.lasx.xvreplve0.h ++ loongarch_lasx_xvreplve0_q, // llvm.loongarch.lasx.xvreplve0.q ++ loongarch_lasx_xvreplve0_w, // llvm.loongarch.lasx.xvreplve0.w ++ loongarch_lasx_xvrotr_b, // llvm.loongarch.lasx.xvrotr.b ++ loongarch_lasx_xvrotr_d, // llvm.loongarch.lasx.xvrotr.d ++ loongarch_lasx_xvrotr_h, // llvm.loongarch.lasx.xvrotr.h ++ loongarch_lasx_xvrotr_w, // llvm.loongarch.lasx.xvrotr.w ++ loongarch_lasx_xvrotri_b, // llvm.loongarch.lasx.xvrotri.b ++ loongarch_lasx_xvrotri_d, // llvm.loongarch.lasx.xvrotri.d ++ loongarch_lasx_xvrotri_h, // llvm.loongarch.lasx.xvrotri.h ++ loongarch_lasx_xvrotri_w, // llvm.loongarch.lasx.xvrotri.w ++ loongarch_lasx_xvsadd_b, // llvm.loongarch.lasx.xvsadd.b ++ loongarch_lasx_xvsadd_bu, // llvm.loongarch.lasx.xvsadd.bu ++ loongarch_lasx_xvsadd_d, // llvm.loongarch.lasx.xvsadd.d ++ loongarch_lasx_xvsadd_du, // llvm.loongarch.lasx.xvsadd.du ++ loongarch_lasx_xvsadd_h, // llvm.loongarch.lasx.xvsadd.h ++ loongarch_lasx_xvsadd_hu, // llvm.loongarch.lasx.xvsadd.hu ++ loongarch_lasx_xvsadd_w, // llvm.loongarch.lasx.xvsadd.w ++ loongarch_lasx_xvsadd_wu, // llvm.loongarch.lasx.xvsadd.wu ++ loongarch_lasx_xvsat_b, // llvm.loongarch.lasx.xvsat.b ++ loongarch_lasx_xvsat_bu, // llvm.loongarch.lasx.xvsat.bu ++ loongarch_lasx_xvsat_d, // llvm.loongarch.lasx.xvsat.d ++ loongarch_lasx_xvsat_du, // llvm.loongarch.lasx.xvsat.du ++ loongarch_lasx_xvsat_h, // llvm.loongarch.lasx.xvsat.h ++ loongarch_lasx_xvsat_hu, // llvm.loongarch.lasx.xvsat.hu ++ loongarch_lasx_xvsat_w, // llvm.loongarch.lasx.xvsat.w ++ loongarch_lasx_xvsat_wu, // llvm.loongarch.lasx.xvsat.wu ++ loongarch_lasx_xvseq_b, // llvm.loongarch.lasx.xvseq.b ++ loongarch_lasx_xvseq_d, // llvm.loongarch.lasx.xvseq.d ++ loongarch_lasx_xvseq_h, // llvm.loongarch.lasx.xvseq.h ++ loongarch_lasx_xvseq_w, // llvm.loongarch.lasx.xvseq.w ++ loongarch_lasx_xvseqi_b, // llvm.loongarch.lasx.xvseqi.b ++ loongarch_lasx_xvseqi_d, // llvm.loongarch.lasx.xvseqi.d ++ loongarch_lasx_xvseqi_h, // llvm.loongarch.lasx.xvseqi.h ++ loongarch_lasx_xvseqi_w, // llvm.loongarch.lasx.xvseqi.w ++ loongarch_lasx_xvshuf_b, // llvm.loongarch.lasx.xvshuf.b ++ loongarch_lasx_xvshuf_d, // llvm.loongarch.lasx.xvshuf.d ++ loongarch_lasx_xvshuf_h, // llvm.loongarch.lasx.xvshuf.h ++ loongarch_lasx_xvshuf_w, // llvm.loongarch.lasx.xvshuf.w ++ loongarch_lasx_xvshuf4i_b, // llvm.loongarch.lasx.xvshuf4i.b ++ loongarch_lasx_xvshuf4i_d, // llvm.loongarch.lasx.xvshuf4i.d ++ loongarch_lasx_xvshuf4i_h, // llvm.loongarch.lasx.xvshuf4i.h ++ loongarch_lasx_xvshuf4i_w, // llvm.loongarch.lasx.xvshuf4i.w ++ loongarch_lasx_xvsigncov_b, // llvm.loongarch.lasx.xvsigncov.b ++ loongarch_lasx_xvsigncov_d, // llvm.loongarch.lasx.xvsigncov.d ++ loongarch_lasx_xvsigncov_h, // llvm.loongarch.lasx.xvsigncov.h ++ loongarch_lasx_xvsigncov_w, // llvm.loongarch.lasx.xvsigncov.w ++ loongarch_lasx_xvsle_b, // llvm.loongarch.lasx.xvsle.b ++ loongarch_lasx_xvsle_bu, // llvm.loongarch.lasx.xvsle.bu ++ loongarch_lasx_xvsle_d, // llvm.loongarch.lasx.xvsle.d ++ loongarch_lasx_xvsle_du, // llvm.loongarch.lasx.xvsle.du ++ loongarch_lasx_xvsle_h, // llvm.loongarch.lasx.xvsle.h ++ loongarch_lasx_xvsle_hu, // llvm.loongarch.lasx.xvsle.hu ++ loongarch_lasx_xvsle_w, // llvm.loongarch.lasx.xvsle.w ++ loongarch_lasx_xvsle_wu, // llvm.loongarch.lasx.xvsle.wu ++ loongarch_lasx_xvslei_b, // llvm.loongarch.lasx.xvslei.b ++ loongarch_lasx_xvslei_bu, // llvm.loongarch.lasx.xvslei.bu ++ loongarch_lasx_xvslei_d, // llvm.loongarch.lasx.xvslei.d ++ loongarch_lasx_xvslei_du, // llvm.loongarch.lasx.xvslei.du ++ loongarch_lasx_xvslei_h, // llvm.loongarch.lasx.xvslei.h ++ loongarch_lasx_xvslei_hu, // llvm.loongarch.lasx.xvslei.hu ++ loongarch_lasx_xvslei_w, // llvm.loongarch.lasx.xvslei.w ++ loongarch_lasx_xvslei_wu, // llvm.loongarch.lasx.xvslei.wu ++ loongarch_lasx_xvsll_b, // llvm.loongarch.lasx.xvsll.b ++ loongarch_lasx_xvsll_d, // llvm.loongarch.lasx.xvsll.d ++ loongarch_lasx_xvsll_h, // llvm.loongarch.lasx.xvsll.h ++ loongarch_lasx_xvsll_w, // llvm.loongarch.lasx.xvsll.w ++ loongarch_lasx_xvslli_b, // llvm.loongarch.lasx.xvslli.b ++ loongarch_lasx_xvslli_d, // llvm.loongarch.lasx.xvslli.d ++ loongarch_lasx_xvslli_h, // llvm.loongarch.lasx.xvslli.h ++ loongarch_lasx_xvslli_w, // llvm.loongarch.lasx.xvslli.w ++ loongarch_lasx_xvsllwil_d_w, // llvm.loongarch.lasx.xvsllwil.d.w ++ loongarch_lasx_xvsllwil_du_wu, // llvm.loongarch.lasx.xvsllwil.du.wu ++ loongarch_lasx_xvsllwil_h_b, // llvm.loongarch.lasx.xvsllwil.h.b ++ loongarch_lasx_xvsllwil_hu_bu, // llvm.loongarch.lasx.xvsllwil.hu.bu ++ loongarch_lasx_xvsllwil_w_h, // llvm.loongarch.lasx.xvsllwil.w.h ++ loongarch_lasx_xvsllwil_wu_hu, // llvm.loongarch.lasx.xvsllwil.wu.hu ++ loongarch_lasx_xvslt_b, // llvm.loongarch.lasx.xvslt.b ++ loongarch_lasx_xvslt_bu, // llvm.loongarch.lasx.xvslt.bu ++ loongarch_lasx_xvslt_d, // llvm.loongarch.lasx.xvslt.d ++ loongarch_lasx_xvslt_du, // llvm.loongarch.lasx.xvslt.du ++ loongarch_lasx_xvslt_h, // llvm.loongarch.lasx.xvslt.h ++ loongarch_lasx_xvslt_hu, // llvm.loongarch.lasx.xvslt.hu ++ loongarch_lasx_xvslt_w, // llvm.loongarch.lasx.xvslt.w ++ loongarch_lasx_xvslt_wu, // llvm.loongarch.lasx.xvslt.wu ++ loongarch_lasx_xvslti_b, // llvm.loongarch.lasx.xvslti.b ++ loongarch_lasx_xvslti_bu, // llvm.loongarch.lasx.xvslti.bu ++ loongarch_lasx_xvslti_d, // llvm.loongarch.lasx.xvslti.d ++ loongarch_lasx_xvslti_du, // llvm.loongarch.lasx.xvslti.du ++ loongarch_lasx_xvslti_h, // llvm.loongarch.lasx.xvslti.h ++ loongarch_lasx_xvslti_hu, // llvm.loongarch.lasx.xvslti.hu ++ loongarch_lasx_xvslti_w, // llvm.loongarch.lasx.xvslti.w ++ loongarch_lasx_xvslti_wu, // llvm.loongarch.lasx.xvslti.wu ++ loongarch_lasx_xvsra_b, // llvm.loongarch.lasx.xvsra.b ++ loongarch_lasx_xvsra_d, // llvm.loongarch.lasx.xvsra.d ++ loongarch_lasx_xvsra_h, // llvm.loongarch.lasx.xvsra.h ++ loongarch_lasx_xvsra_w, // llvm.loongarch.lasx.xvsra.w ++ loongarch_lasx_xvsrai_b, // llvm.loongarch.lasx.xvsrai.b ++ loongarch_lasx_xvsrai_d, // llvm.loongarch.lasx.xvsrai.d ++ loongarch_lasx_xvsrai_h, // llvm.loongarch.lasx.xvsrai.h ++ loongarch_lasx_xvsrai_w, // llvm.loongarch.lasx.xvsrai.w ++ loongarch_lasx_xvsran_b_h, // llvm.loongarch.lasx.xvsran.b.h ++ loongarch_lasx_xvsran_h_w, // llvm.loongarch.lasx.xvsran.h.w ++ loongarch_lasx_xvsran_w_d, // llvm.loongarch.lasx.xvsran.w.d ++ loongarch_lasx_xvsrani_b_h, // llvm.loongarch.lasx.xvsrani.b.h ++ loongarch_lasx_xvsrani_d_q, // llvm.loongarch.lasx.xvsrani.d.q ++ loongarch_lasx_xvsrani_h_w, // llvm.loongarch.lasx.xvsrani.h.w ++ loongarch_lasx_xvsrani_w_d, // llvm.loongarch.lasx.xvsrani.w.d ++ loongarch_lasx_xvsrar_b, // llvm.loongarch.lasx.xvsrar.b ++ loongarch_lasx_xvsrar_d, // llvm.loongarch.lasx.xvsrar.d ++ loongarch_lasx_xvsrar_h, // llvm.loongarch.lasx.xvsrar.h ++ loongarch_lasx_xvsrar_w, // llvm.loongarch.lasx.xvsrar.w ++ loongarch_lasx_xvsrari_b, // llvm.loongarch.lasx.xvsrari.b ++ loongarch_lasx_xvsrari_d, // llvm.loongarch.lasx.xvsrari.d ++ loongarch_lasx_xvsrari_h, // llvm.loongarch.lasx.xvsrari.h ++ loongarch_lasx_xvsrari_w, // llvm.loongarch.lasx.xvsrari.w ++ loongarch_lasx_xvsrarn_b_h, // llvm.loongarch.lasx.xvsrarn.b.h ++ loongarch_lasx_xvsrarn_h_w, // llvm.loongarch.lasx.xvsrarn.h.w ++ loongarch_lasx_xvsrarn_w_d, // llvm.loongarch.lasx.xvsrarn.w.d ++ loongarch_lasx_xvsrarni_b_h, // llvm.loongarch.lasx.xvsrarni.b.h ++ loongarch_lasx_xvsrarni_d_q, // llvm.loongarch.lasx.xvsrarni.d.q ++ loongarch_lasx_xvsrarni_h_w, // llvm.loongarch.lasx.xvsrarni.h.w ++ loongarch_lasx_xvsrarni_w_d, // llvm.loongarch.lasx.xvsrarni.w.d ++ loongarch_lasx_xvsrl_b, // llvm.loongarch.lasx.xvsrl.b ++ loongarch_lasx_xvsrl_d, // llvm.loongarch.lasx.xvsrl.d ++ loongarch_lasx_xvsrl_h, // llvm.loongarch.lasx.xvsrl.h ++ loongarch_lasx_xvsrl_w, // llvm.loongarch.lasx.xvsrl.w ++ loongarch_lasx_xvsrli_b, // llvm.loongarch.lasx.xvsrli.b ++ loongarch_lasx_xvsrli_d, // llvm.loongarch.lasx.xvsrli.d ++ loongarch_lasx_xvsrli_h, // llvm.loongarch.lasx.xvsrli.h ++ loongarch_lasx_xvsrli_w, // llvm.loongarch.lasx.xvsrli.w ++ loongarch_lasx_xvsrln_b_h, // llvm.loongarch.lasx.xvsrln.b.h ++ loongarch_lasx_xvsrln_h_w, // llvm.loongarch.lasx.xvsrln.h.w ++ loongarch_lasx_xvsrln_w_d, // llvm.loongarch.lasx.xvsrln.w.d ++ loongarch_lasx_xvsrlni_b_h, // llvm.loongarch.lasx.xvsrlni.b.h ++ loongarch_lasx_xvsrlni_d_q, // llvm.loongarch.lasx.xvsrlni.d.q ++ loongarch_lasx_xvsrlni_h_w, // llvm.loongarch.lasx.xvsrlni.h.w ++ loongarch_lasx_xvsrlni_w_d, // llvm.loongarch.lasx.xvsrlni.w.d ++ loongarch_lasx_xvsrlr_b, // llvm.loongarch.lasx.xvsrlr.b ++ loongarch_lasx_xvsrlr_d, // llvm.loongarch.lasx.xvsrlr.d ++ loongarch_lasx_xvsrlr_h, // llvm.loongarch.lasx.xvsrlr.h ++ loongarch_lasx_xvsrlr_w, // llvm.loongarch.lasx.xvsrlr.w ++ loongarch_lasx_xvsrlri_b, // llvm.loongarch.lasx.xvsrlri.b ++ loongarch_lasx_xvsrlri_d, // llvm.loongarch.lasx.xvsrlri.d ++ loongarch_lasx_xvsrlri_h, // llvm.loongarch.lasx.xvsrlri.h ++ loongarch_lasx_xvsrlri_w, // llvm.loongarch.lasx.xvsrlri.w ++ loongarch_lasx_xvsrlrn_b_h, // llvm.loongarch.lasx.xvsrlrn.b.h ++ loongarch_lasx_xvsrlrn_h_w, // llvm.loongarch.lasx.xvsrlrn.h.w ++ loongarch_lasx_xvsrlrn_w_d, // llvm.loongarch.lasx.xvsrlrn.w.d ++ loongarch_lasx_xvsrlrni_b_h, // llvm.loongarch.lasx.xvsrlrni.b.h ++ loongarch_lasx_xvsrlrni_d_q, // llvm.loongarch.lasx.xvsrlrni.d.q ++ loongarch_lasx_xvsrlrni_h_w, // llvm.loongarch.lasx.xvsrlrni.h.w ++ loongarch_lasx_xvsrlrni_w_d, // llvm.loongarch.lasx.xvsrlrni.w.d ++ loongarch_lasx_xvssran_b_h, // llvm.loongarch.lasx.xvssran.b.h ++ loongarch_lasx_xvssran_bu_h, // llvm.loongarch.lasx.xvssran.bu.h ++ loongarch_lasx_xvssran_h_w, // llvm.loongarch.lasx.xvssran.h.w ++ loongarch_lasx_xvssran_hu_w, // llvm.loongarch.lasx.xvssran.hu.w ++ loongarch_lasx_xvssran_w_d, // llvm.loongarch.lasx.xvssran.w.d ++ loongarch_lasx_xvssran_wu_d, // llvm.loongarch.lasx.xvssran.wu.d ++ loongarch_lasx_xvssrani_b_h, // llvm.loongarch.lasx.xvssrani.b.h ++ loongarch_lasx_xvssrani_bu_h, // llvm.loongarch.lasx.xvssrani.bu.h ++ loongarch_lasx_xvssrani_d_q, // llvm.loongarch.lasx.xvssrani.d.q ++ loongarch_lasx_xvssrani_du_q, // llvm.loongarch.lasx.xvssrani.du.q ++ loongarch_lasx_xvssrani_h_w, // llvm.loongarch.lasx.xvssrani.h.w ++ loongarch_lasx_xvssrani_hu_w, // llvm.loongarch.lasx.xvssrani.hu.w ++ loongarch_lasx_xvssrani_w_d, // llvm.loongarch.lasx.xvssrani.w.d ++ loongarch_lasx_xvssrani_wu_d, // llvm.loongarch.lasx.xvssrani.wu.d ++ loongarch_lasx_xvssrarn_b_h, // llvm.loongarch.lasx.xvssrarn.b.h ++ loongarch_lasx_xvssrarn_bu_h, // llvm.loongarch.lasx.xvssrarn.bu.h ++ loongarch_lasx_xvssrarn_h_w, // llvm.loongarch.lasx.xvssrarn.h.w ++ loongarch_lasx_xvssrarn_hu_w, // llvm.loongarch.lasx.xvssrarn.hu.w ++ loongarch_lasx_xvssrarn_w_d, // llvm.loongarch.lasx.xvssrarn.w.d ++ loongarch_lasx_xvssrarn_wu_d, // llvm.loongarch.lasx.xvssrarn.wu.d ++ loongarch_lasx_xvssrarni_b_h, // llvm.loongarch.lasx.xvssrarni.b.h ++ loongarch_lasx_xvssrarni_bu_h, // llvm.loongarch.lasx.xvssrarni.bu.h ++ loongarch_lasx_xvssrarni_d_q, // llvm.loongarch.lasx.xvssrarni.d.q ++ loongarch_lasx_xvssrarni_du_q, // llvm.loongarch.lasx.xvssrarni.du.q ++ loongarch_lasx_xvssrarni_h_w, // llvm.loongarch.lasx.xvssrarni.h.w ++ loongarch_lasx_xvssrarni_hu_w, // llvm.loongarch.lasx.xvssrarni.hu.w ++ loongarch_lasx_xvssrarni_w_d, // llvm.loongarch.lasx.xvssrarni.w.d ++ loongarch_lasx_xvssrarni_wu_d, // llvm.loongarch.lasx.xvssrarni.wu.d ++ loongarch_lasx_xvssrln_b_h, // llvm.loongarch.lasx.xvssrln.b.h ++ loongarch_lasx_xvssrln_bu_h, // llvm.loongarch.lasx.xvssrln.bu.h ++ loongarch_lasx_xvssrln_h_w, // llvm.loongarch.lasx.xvssrln.h.w ++ loongarch_lasx_xvssrln_hu_w, // llvm.loongarch.lasx.xvssrln.hu.w ++ loongarch_lasx_xvssrln_w_d, // llvm.loongarch.lasx.xvssrln.w.d ++ loongarch_lasx_xvssrln_wu_d, // llvm.loongarch.lasx.xvssrln.wu.d ++ loongarch_lasx_xvssrlni_b_h, // llvm.loongarch.lasx.xvssrlni.b.h ++ loongarch_lasx_xvssrlni_bu_h, // llvm.loongarch.lasx.xvssrlni.bu.h ++ loongarch_lasx_xvssrlni_d_q, // llvm.loongarch.lasx.xvssrlni.d.q ++ loongarch_lasx_xvssrlni_du_q, // llvm.loongarch.lasx.xvssrlni.du.q ++ loongarch_lasx_xvssrlni_h_w, // llvm.loongarch.lasx.xvssrlni.h.w ++ loongarch_lasx_xvssrlni_hu_w, // llvm.loongarch.lasx.xvssrlni.hu.w ++ loongarch_lasx_xvssrlni_w_d, // llvm.loongarch.lasx.xvssrlni.w.d ++ loongarch_lasx_xvssrlni_wu_d, // llvm.loongarch.lasx.xvssrlni.wu.d ++ loongarch_lasx_xvssrlrn_b_h, // llvm.loongarch.lasx.xvssrlrn.b.h ++ loongarch_lasx_xvssrlrn_bu_h, // llvm.loongarch.lasx.xvssrlrn.bu.h ++ loongarch_lasx_xvssrlrn_h_w, // llvm.loongarch.lasx.xvssrlrn.h.w ++ loongarch_lasx_xvssrlrn_hu_w, // llvm.loongarch.lasx.xvssrlrn.hu.w ++ loongarch_lasx_xvssrlrn_w_d, // llvm.loongarch.lasx.xvssrlrn.w.d ++ loongarch_lasx_xvssrlrn_wu_d, // llvm.loongarch.lasx.xvssrlrn.wu.d ++ loongarch_lasx_xvssrlrni_b_h, // llvm.loongarch.lasx.xvssrlrni.b.h ++ loongarch_lasx_xvssrlrni_bu_h, // llvm.loongarch.lasx.xvssrlrni.bu.h ++ loongarch_lasx_xvssrlrni_d_q, // llvm.loongarch.lasx.xvssrlrni.d.q ++ loongarch_lasx_xvssrlrni_du_q, // llvm.loongarch.lasx.xvssrlrni.du.q ++ loongarch_lasx_xvssrlrni_h_w, // llvm.loongarch.lasx.xvssrlrni.h.w ++ loongarch_lasx_xvssrlrni_hu_w, // llvm.loongarch.lasx.xvssrlrni.hu.w ++ loongarch_lasx_xvssrlrni_w_d, // llvm.loongarch.lasx.xvssrlrni.w.d ++ loongarch_lasx_xvssrlrni_wu_d, // llvm.loongarch.lasx.xvssrlrni.wu.d ++ loongarch_lasx_xvssub_b, // llvm.loongarch.lasx.xvssub.b ++ loongarch_lasx_xvssub_bu, // llvm.loongarch.lasx.xvssub.bu ++ loongarch_lasx_xvssub_d, // llvm.loongarch.lasx.xvssub.d ++ loongarch_lasx_xvssub_du, // llvm.loongarch.lasx.xvssub.du ++ loongarch_lasx_xvssub_h, // llvm.loongarch.lasx.xvssub.h ++ loongarch_lasx_xvssub_hu, // llvm.loongarch.lasx.xvssub.hu ++ loongarch_lasx_xvssub_w, // llvm.loongarch.lasx.xvssub.w ++ loongarch_lasx_xvssub_wu, // llvm.loongarch.lasx.xvssub.wu ++ loongarch_lasx_xvst, // llvm.loongarch.lasx.xvst ++ loongarch_lasx_xvstelm_b, // llvm.loongarch.lasx.xvstelm.b ++ loongarch_lasx_xvstelm_d, // llvm.loongarch.lasx.xvstelm.d ++ loongarch_lasx_xvstelm_h, // llvm.loongarch.lasx.xvstelm.h ++ loongarch_lasx_xvstelm_w, // llvm.loongarch.lasx.xvstelm.w ++ loongarch_lasx_xvstx, // llvm.loongarch.lasx.xvstx ++ loongarch_lasx_xvsub_b, // llvm.loongarch.lasx.xvsub.b ++ loongarch_lasx_xvsub_d, // llvm.loongarch.lasx.xvsub.d ++ loongarch_lasx_xvsub_h, // llvm.loongarch.lasx.xvsub.h ++ loongarch_lasx_xvsub_q, // llvm.loongarch.lasx.xvsub.q ++ loongarch_lasx_xvsub_w, // llvm.loongarch.lasx.xvsub.w ++ loongarch_lasx_xvsubi_bu, // llvm.loongarch.lasx.xvsubi.bu ++ loongarch_lasx_xvsubi_du, // llvm.loongarch.lasx.xvsubi.du ++ loongarch_lasx_xvsubi_hu, // llvm.loongarch.lasx.xvsubi.hu ++ loongarch_lasx_xvsubi_wu, // llvm.loongarch.lasx.xvsubi.wu ++ loongarch_lasx_xvsubwev_d_w, // llvm.loongarch.lasx.xvsubwev.d.w ++ loongarch_lasx_xvsubwev_d_wu, // llvm.loongarch.lasx.xvsubwev.d.wu ++ loongarch_lasx_xvsubwev_h_b, // llvm.loongarch.lasx.xvsubwev.h.b ++ loongarch_lasx_xvsubwev_h_bu, // llvm.loongarch.lasx.xvsubwev.h.bu ++ loongarch_lasx_xvsubwev_q_d, // llvm.loongarch.lasx.xvsubwev.q.d ++ loongarch_lasx_xvsubwev_q_du, // llvm.loongarch.lasx.xvsubwev.q.du ++ loongarch_lasx_xvsubwev_w_h, // llvm.loongarch.lasx.xvsubwev.w.h ++ loongarch_lasx_xvsubwev_w_hu, // llvm.loongarch.lasx.xvsubwev.w.hu ++ loongarch_lasx_xvsubwod_d_w, // llvm.loongarch.lasx.xvsubwod.d.w ++ loongarch_lasx_xvsubwod_d_wu, // llvm.loongarch.lasx.xvsubwod.d.wu ++ loongarch_lasx_xvsubwod_h_b, // llvm.loongarch.lasx.xvsubwod.h.b ++ loongarch_lasx_xvsubwod_h_bu, // llvm.loongarch.lasx.xvsubwod.h.bu ++ loongarch_lasx_xvsubwod_q_d, // llvm.loongarch.lasx.xvsubwod.q.d ++ loongarch_lasx_xvsubwod_q_du, // llvm.loongarch.lasx.xvsubwod.q.du ++ loongarch_lasx_xvsubwod_w_h, // llvm.loongarch.lasx.xvsubwod.w.h ++ loongarch_lasx_xvsubwod_w_hu, // llvm.loongarch.lasx.xvsubwod.w.hu ++ loongarch_lasx_xvxor_v, // llvm.loongarch.lasx.xvxor.v ++ loongarch_lasx_xvxori_b, // llvm.loongarch.lasx.xvxori.b ++ loongarch_lsx_bnz_b, // llvm.loongarch.lsx.bnz.b ++ loongarch_lsx_bnz_d, // llvm.loongarch.lsx.bnz.d ++ loongarch_lsx_bnz_h, // llvm.loongarch.lsx.bnz.h ++ loongarch_lsx_bnz_v, // llvm.loongarch.lsx.bnz.v ++ loongarch_lsx_bnz_w, // llvm.loongarch.lsx.bnz.w ++ loongarch_lsx_bz_b, // llvm.loongarch.lsx.bz.b ++ loongarch_lsx_bz_d, // llvm.loongarch.lsx.bz.d ++ loongarch_lsx_bz_h, // llvm.loongarch.lsx.bz.h ++ loongarch_lsx_bz_v, // llvm.loongarch.lsx.bz.v ++ loongarch_lsx_bz_w, // llvm.loongarch.lsx.bz.w ++ loongarch_lsx_vabsd_b, // llvm.loongarch.lsx.vabsd.b ++ loongarch_lsx_vabsd_bu, // llvm.loongarch.lsx.vabsd.bu ++ loongarch_lsx_vabsd_d, // llvm.loongarch.lsx.vabsd.d ++ loongarch_lsx_vabsd_du, // llvm.loongarch.lsx.vabsd.du ++ loongarch_lsx_vabsd_h, // llvm.loongarch.lsx.vabsd.h ++ loongarch_lsx_vabsd_hu, // llvm.loongarch.lsx.vabsd.hu ++ loongarch_lsx_vabsd_w, // llvm.loongarch.lsx.vabsd.w ++ loongarch_lsx_vabsd_wu, // llvm.loongarch.lsx.vabsd.wu ++ loongarch_lsx_vadd_b, // llvm.loongarch.lsx.vadd.b ++ loongarch_lsx_vadd_d, // llvm.loongarch.lsx.vadd.d ++ loongarch_lsx_vadd_h, // llvm.loongarch.lsx.vadd.h ++ loongarch_lsx_vadd_q, // llvm.loongarch.lsx.vadd.q ++ loongarch_lsx_vadd_w, // llvm.loongarch.lsx.vadd.w ++ loongarch_lsx_vadda_b, // llvm.loongarch.lsx.vadda.b ++ loongarch_lsx_vadda_d, // llvm.loongarch.lsx.vadda.d ++ loongarch_lsx_vadda_h, // llvm.loongarch.lsx.vadda.h ++ loongarch_lsx_vadda_w, // llvm.loongarch.lsx.vadda.w ++ loongarch_lsx_vaddi_bu, // llvm.loongarch.lsx.vaddi.bu ++ loongarch_lsx_vaddi_du, // llvm.loongarch.lsx.vaddi.du ++ loongarch_lsx_vaddi_hu, // llvm.loongarch.lsx.vaddi.hu ++ loongarch_lsx_vaddi_wu, // llvm.loongarch.lsx.vaddi.wu ++ loongarch_lsx_vaddwev_d_w, // llvm.loongarch.lsx.vaddwev.d.w ++ loongarch_lsx_vaddwev_d_wu, // llvm.loongarch.lsx.vaddwev.d.wu ++ loongarch_lsx_vaddwev_d_wu_w, // llvm.loongarch.lsx.vaddwev.d.wu.w ++ loongarch_lsx_vaddwev_h_b, // llvm.loongarch.lsx.vaddwev.h.b ++ loongarch_lsx_vaddwev_h_bu, // llvm.loongarch.lsx.vaddwev.h.bu ++ loongarch_lsx_vaddwev_h_bu_b, // llvm.loongarch.lsx.vaddwev.h.bu.b ++ loongarch_lsx_vaddwev_q_d, // llvm.loongarch.lsx.vaddwev.q.d ++ loongarch_lsx_vaddwev_q_du, // llvm.loongarch.lsx.vaddwev.q.du ++ loongarch_lsx_vaddwev_q_du_d, // llvm.loongarch.lsx.vaddwev.q.du.d ++ loongarch_lsx_vaddwev_w_h, // llvm.loongarch.lsx.vaddwev.w.h ++ loongarch_lsx_vaddwev_w_hu, // llvm.loongarch.lsx.vaddwev.w.hu ++ loongarch_lsx_vaddwev_w_hu_h, // llvm.loongarch.lsx.vaddwev.w.hu.h ++ loongarch_lsx_vaddwod_d_w, // llvm.loongarch.lsx.vaddwod.d.w ++ loongarch_lsx_vaddwod_d_wu, // llvm.loongarch.lsx.vaddwod.d.wu ++ loongarch_lsx_vaddwod_d_wu_w, // llvm.loongarch.lsx.vaddwod.d.wu.w ++ loongarch_lsx_vaddwod_h_b, // llvm.loongarch.lsx.vaddwod.h.b ++ loongarch_lsx_vaddwod_h_bu, // llvm.loongarch.lsx.vaddwod.h.bu ++ loongarch_lsx_vaddwod_h_bu_b, // llvm.loongarch.lsx.vaddwod.h.bu.b ++ loongarch_lsx_vaddwod_q_d, // llvm.loongarch.lsx.vaddwod.q.d ++ loongarch_lsx_vaddwod_q_du, // llvm.loongarch.lsx.vaddwod.q.du ++ loongarch_lsx_vaddwod_q_du_d, // llvm.loongarch.lsx.vaddwod.q.du.d ++ loongarch_lsx_vaddwod_w_h, // llvm.loongarch.lsx.vaddwod.w.h ++ loongarch_lsx_vaddwod_w_hu, // llvm.loongarch.lsx.vaddwod.w.hu ++ loongarch_lsx_vaddwod_w_hu_h, // llvm.loongarch.lsx.vaddwod.w.hu.h ++ loongarch_lsx_vand_v, // llvm.loongarch.lsx.vand.v ++ loongarch_lsx_vandi_b, // llvm.loongarch.lsx.vandi.b ++ loongarch_lsx_vandn_v, // llvm.loongarch.lsx.vandn.v ++ loongarch_lsx_vavg_b, // llvm.loongarch.lsx.vavg.b ++ loongarch_lsx_vavg_bu, // llvm.loongarch.lsx.vavg.bu ++ loongarch_lsx_vavg_d, // llvm.loongarch.lsx.vavg.d ++ loongarch_lsx_vavg_du, // llvm.loongarch.lsx.vavg.du ++ loongarch_lsx_vavg_h, // llvm.loongarch.lsx.vavg.h ++ loongarch_lsx_vavg_hu, // llvm.loongarch.lsx.vavg.hu ++ loongarch_lsx_vavg_w, // llvm.loongarch.lsx.vavg.w ++ loongarch_lsx_vavg_wu, // llvm.loongarch.lsx.vavg.wu ++ loongarch_lsx_vavgr_b, // llvm.loongarch.lsx.vavgr.b ++ loongarch_lsx_vavgr_bu, // llvm.loongarch.lsx.vavgr.bu ++ loongarch_lsx_vavgr_d, // llvm.loongarch.lsx.vavgr.d ++ loongarch_lsx_vavgr_du, // llvm.loongarch.lsx.vavgr.du ++ loongarch_lsx_vavgr_h, // llvm.loongarch.lsx.vavgr.h ++ loongarch_lsx_vavgr_hu, // llvm.loongarch.lsx.vavgr.hu ++ loongarch_lsx_vavgr_w, // llvm.loongarch.lsx.vavgr.w ++ loongarch_lsx_vavgr_wu, // llvm.loongarch.lsx.vavgr.wu ++ loongarch_lsx_vbitclr_b, // llvm.loongarch.lsx.vbitclr.b ++ loongarch_lsx_vbitclr_d, // llvm.loongarch.lsx.vbitclr.d ++ loongarch_lsx_vbitclr_h, // llvm.loongarch.lsx.vbitclr.h ++ loongarch_lsx_vbitclr_w, // llvm.loongarch.lsx.vbitclr.w ++ loongarch_lsx_vbitclri_b, // llvm.loongarch.lsx.vbitclri.b ++ loongarch_lsx_vbitclri_d, // llvm.loongarch.lsx.vbitclri.d ++ loongarch_lsx_vbitclri_h, // llvm.loongarch.lsx.vbitclri.h ++ loongarch_lsx_vbitclri_w, // llvm.loongarch.lsx.vbitclri.w ++ loongarch_lsx_vbitrev_b, // llvm.loongarch.lsx.vbitrev.b ++ loongarch_lsx_vbitrev_d, // llvm.loongarch.lsx.vbitrev.d ++ loongarch_lsx_vbitrev_h, // llvm.loongarch.lsx.vbitrev.h ++ loongarch_lsx_vbitrev_w, // llvm.loongarch.lsx.vbitrev.w ++ loongarch_lsx_vbitrevi_b, // llvm.loongarch.lsx.vbitrevi.b ++ loongarch_lsx_vbitrevi_d, // llvm.loongarch.lsx.vbitrevi.d ++ loongarch_lsx_vbitrevi_h, // llvm.loongarch.lsx.vbitrevi.h ++ loongarch_lsx_vbitrevi_w, // llvm.loongarch.lsx.vbitrevi.w ++ loongarch_lsx_vbitsel_v, // llvm.loongarch.lsx.vbitsel.v ++ loongarch_lsx_vbitseli_b, // llvm.loongarch.lsx.vbitseli.b ++ loongarch_lsx_vbitset_b, // llvm.loongarch.lsx.vbitset.b ++ loongarch_lsx_vbitset_d, // llvm.loongarch.lsx.vbitset.d ++ loongarch_lsx_vbitset_h, // llvm.loongarch.lsx.vbitset.h ++ loongarch_lsx_vbitset_w, // llvm.loongarch.lsx.vbitset.w ++ loongarch_lsx_vbitseti_b, // llvm.loongarch.lsx.vbitseti.b ++ loongarch_lsx_vbitseti_d, // llvm.loongarch.lsx.vbitseti.d ++ loongarch_lsx_vbitseti_h, // llvm.loongarch.lsx.vbitseti.h ++ loongarch_lsx_vbitseti_w, // llvm.loongarch.lsx.vbitseti.w ++ loongarch_lsx_vbsll_v, // llvm.loongarch.lsx.vbsll.v ++ loongarch_lsx_vbsrl_v, // llvm.loongarch.lsx.vbsrl.v ++ loongarch_lsx_vclo_b, // llvm.loongarch.lsx.vclo.b ++ loongarch_lsx_vclo_d, // llvm.loongarch.lsx.vclo.d ++ loongarch_lsx_vclo_h, // llvm.loongarch.lsx.vclo.h ++ loongarch_lsx_vclo_w, // llvm.loongarch.lsx.vclo.w ++ loongarch_lsx_vclz_b, // llvm.loongarch.lsx.vclz.b ++ loongarch_lsx_vclz_d, // llvm.loongarch.lsx.vclz.d ++ loongarch_lsx_vclz_h, // llvm.loongarch.lsx.vclz.h ++ loongarch_lsx_vclz_w, // llvm.loongarch.lsx.vclz.w ++ loongarch_lsx_vdiv_b, // llvm.loongarch.lsx.vdiv.b ++ loongarch_lsx_vdiv_bu, // llvm.loongarch.lsx.vdiv.bu ++ loongarch_lsx_vdiv_d, // llvm.loongarch.lsx.vdiv.d ++ loongarch_lsx_vdiv_du, // llvm.loongarch.lsx.vdiv.du ++ loongarch_lsx_vdiv_h, // llvm.loongarch.lsx.vdiv.h ++ loongarch_lsx_vdiv_hu, // llvm.loongarch.lsx.vdiv.hu ++ loongarch_lsx_vdiv_w, // llvm.loongarch.lsx.vdiv.w ++ loongarch_lsx_vdiv_wu, // llvm.loongarch.lsx.vdiv.wu ++ loongarch_lsx_vexth_d_w, // llvm.loongarch.lsx.vexth.d.w ++ loongarch_lsx_vexth_du_wu, // llvm.loongarch.lsx.vexth.du.wu ++ loongarch_lsx_vexth_h_b, // llvm.loongarch.lsx.vexth.h.b ++ loongarch_lsx_vexth_hu_bu, // llvm.loongarch.lsx.vexth.hu.bu ++ loongarch_lsx_vexth_q_d, // llvm.loongarch.lsx.vexth.q.d ++ loongarch_lsx_vexth_qu_du, // llvm.loongarch.lsx.vexth.qu.du ++ loongarch_lsx_vexth_w_h, // llvm.loongarch.lsx.vexth.w.h ++ loongarch_lsx_vexth_wu_hu, // llvm.loongarch.lsx.vexth.wu.hu ++ loongarch_lsx_vextl_q_d, // llvm.loongarch.lsx.vextl.q.d ++ loongarch_lsx_vextl_qu_du, // llvm.loongarch.lsx.vextl.qu.du ++ loongarch_lsx_vextrins_b, // llvm.loongarch.lsx.vextrins.b ++ loongarch_lsx_vextrins_d, // llvm.loongarch.lsx.vextrins.d ++ loongarch_lsx_vextrins_h, // llvm.loongarch.lsx.vextrins.h ++ loongarch_lsx_vextrins_w, // llvm.loongarch.lsx.vextrins.w ++ loongarch_lsx_vfadd_d, // llvm.loongarch.lsx.vfadd.d ++ loongarch_lsx_vfadd_s, // llvm.loongarch.lsx.vfadd.s ++ loongarch_lsx_vfclass_d, // llvm.loongarch.lsx.vfclass.d ++ loongarch_lsx_vfclass_s, // llvm.loongarch.lsx.vfclass.s ++ loongarch_lsx_vfcmp_caf_d, // llvm.loongarch.lsx.vfcmp.caf.d ++ loongarch_lsx_vfcmp_caf_s, // llvm.loongarch.lsx.vfcmp.caf.s ++ loongarch_lsx_vfcmp_ceq_d, // llvm.loongarch.lsx.vfcmp.ceq.d ++ loongarch_lsx_vfcmp_ceq_s, // llvm.loongarch.lsx.vfcmp.ceq.s ++ loongarch_lsx_vfcmp_cle_d, // llvm.loongarch.lsx.vfcmp.cle.d ++ loongarch_lsx_vfcmp_cle_s, // llvm.loongarch.lsx.vfcmp.cle.s ++ loongarch_lsx_vfcmp_clt_d, // llvm.loongarch.lsx.vfcmp.clt.d ++ loongarch_lsx_vfcmp_clt_s, // llvm.loongarch.lsx.vfcmp.clt.s ++ loongarch_lsx_vfcmp_cne_d, // llvm.loongarch.lsx.vfcmp.cne.d ++ loongarch_lsx_vfcmp_cne_s, // llvm.loongarch.lsx.vfcmp.cne.s ++ loongarch_lsx_vfcmp_cor_d, // llvm.loongarch.lsx.vfcmp.cor.d ++ loongarch_lsx_vfcmp_cor_s, // llvm.loongarch.lsx.vfcmp.cor.s ++ loongarch_lsx_vfcmp_cueq_d, // llvm.loongarch.lsx.vfcmp.cueq.d ++ loongarch_lsx_vfcmp_cueq_s, // llvm.loongarch.lsx.vfcmp.cueq.s ++ loongarch_lsx_vfcmp_cule_d, // llvm.loongarch.lsx.vfcmp.cule.d ++ loongarch_lsx_vfcmp_cule_s, // llvm.loongarch.lsx.vfcmp.cule.s ++ loongarch_lsx_vfcmp_cult_d, // llvm.loongarch.lsx.vfcmp.cult.d ++ loongarch_lsx_vfcmp_cult_s, // llvm.loongarch.lsx.vfcmp.cult.s ++ loongarch_lsx_vfcmp_cun_d, // llvm.loongarch.lsx.vfcmp.cun.d ++ loongarch_lsx_vfcmp_cun_s, // llvm.loongarch.lsx.vfcmp.cun.s ++ loongarch_lsx_vfcmp_cune_d, // llvm.loongarch.lsx.vfcmp.cune.d ++ loongarch_lsx_vfcmp_cune_s, // llvm.loongarch.lsx.vfcmp.cune.s ++ loongarch_lsx_vfcmp_saf_d, // llvm.loongarch.lsx.vfcmp.saf.d ++ loongarch_lsx_vfcmp_saf_s, // llvm.loongarch.lsx.vfcmp.saf.s ++ loongarch_lsx_vfcmp_seq_d, // llvm.loongarch.lsx.vfcmp.seq.d ++ loongarch_lsx_vfcmp_seq_s, // llvm.loongarch.lsx.vfcmp.seq.s ++ loongarch_lsx_vfcmp_sle_d, // llvm.loongarch.lsx.vfcmp.sle.d ++ loongarch_lsx_vfcmp_sle_s, // llvm.loongarch.lsx.vfcmp.sle.s ++ loongarch_lsx_vfcmp_slt_d, // llvm.loongarch.lsx.vfcmp.slt.d ++ loongarch_lsx_vfcmp_slt_s, // llvm.loongarch.lsx.vfcmp.slt.s ++ loongarch_lsx_vfcmp_sne_d, // llvm.loongarch.lsx.vfcmp.sne.d ++ loongarch_lsx_vfcmp_sne_s, // llvm.loongarch.lsx.vfcmp.sne.s ++ loongarch_lsx_vfcmp_sor_d, // llvm.loongarch.lsx.vfcmp.sor.d ++ loongarch_lsx_vfcmp_sor_s, // llvm.loongarch.lsx.vfcmp.sor.s ++ loongarch_lsx_vfcmp_sueq_d, // llvm.loongarch.lsx.vfcmp.sueq.d ++ loongarch_lsx_vfcmp_sueq_s, // llvm.loongarch.lsx.vfcmp.sueq.s ++ loongarch_lsx_vfcmp_sule_d, // llvm.loongarch.lsx.vfcmp.sule.d ++ loongarch_lsx_vfcmp_sule_s, // llvm.loongarch.lsx.vfcmp.sule.s ++ loongarch_lsx_vfcmp_sult_d, // llvm.loongarch.lsx.vfcmp.sult.d ++ loongarch_lsx_vfcmp_sult_s, // llvm.loongarch.lsx.vfcmp.sult.s ++ loongarch_lsx_vfcmp_sun_d, // llvm.loongarch.lsx.vfcmp.sun.d ++ loongarch_lsx_vfcmp_sun_s, // llvm.loongarch.lsx.vfcmp.sun.s ++ loongarch_lsx_vfcmp_sune_d, // llvm.loongarch.lsx.vfcmp.sune.d ++ loongarch_lsx_vfcmp_sune_s, // llvm.loongarch.lsx.vfcmp.sune.s ++ loongarch_lsx_vfcvt_h_s, // llvm.loongarch.lsx.vfcvt.h.s ++ loongarch_lsx_vfcvt_s_d, // llvm.loongarch.lsx.vfcvt.s.d ++ loongarch_lsx_vfcvth_d_s, // llvm.loongarch.lsx.vfcvth.d.s ++ loongarch_lsx_vfcvth_s_h, // llvm.loongarch.lsx.vfcvth.s.h ++ loongarch_lsx_vfcvtl_d_s, // llvm.loongarch.lsx.vfcvtl.d.s ++ loongarch_lsx_vfcvtl_s_h, // llvm.loongarch.lsx.vfcvtl.s.h ++ loongarch_lsx_vfdiv_d, // llvm.loongarch.lsx.vfdiv.d ++ loongarch_lsx_vfdiv_s, // llvm.loongarch.lsx.vfdiv.s ++ loongarch_lsx_vffint_d_l, // llvm.loongarch.lsx.vffint.d.l ++ loongarch_lsx_vffint_d_lu, // llvm.loongarch.lsx.vffint.d.lu ++ loongarch_lsx_vffint_s_l, // llvm.loongarch.lsx.vffint.s.l ++ loongarch_lsx_vffint_s_w, // llvm.loongarch.lsx.vffint.s.w ++ loongarch_lsx_vffint_s_wu, // llvm.loongarch.lsx.vffint.s.wu ++ loongarch_lsx_vffinth_d_w, // llvm.loongarch.lsx.vffinth.d.w ++ loongarch_lsx_vffintl_d_w, // llvm.loongarch.lsx.vffintl.d.w ++ loongarch_lsx_vflogb_d, // llvm.loongarch.lsx.vflogb.d ++ loongarch_lsx_vflogb_s, // llvm.loongarch.lsx.vflogb.s ++ loongarch_lsx_vfmadd_d, // llvm.loongarch.lsx.vfmadd.d ++ loongarch_lsx_vfmadd_s, // llvm.loongarch.lsx.vfmadd.s ++ loongarch_lsx_vfmax_d, // llvm.loongarch.lsx.vfmax.d ++ loongarch_lsx_vfmax_s, // llvm.loongarch.lsx.vfmax.s ++ loongarch_lsx_vfmaxa_d, // llvm.loongarch.lsx.vfmaxa.d ++ loongarch_lsx_vfmaxa_s, // llvm.loongarch.lsx.vfmaxa.s ++ loongarch_lsx_vfmin_d, // llvm.loongarch.lsx.vfmin.d ++ loongarch_lsx_vfmin_s, // llvm.loongarch.lsx.vfmin.s ++ loongarch_lsx_vfmina_d, // llvm.loongarch.lsx.vfmina.d ++ loongarch_lsx_vfmina_s, // llvm.loongarch.lsx.vfmina.s ++ loongarch_lsx_vfmsub_d, // llvm.loongarch.lsx.vfmsub.d ++ loongarch_lsx_vfmsub_s, // llvm.loongarch.lsx.vfmsub.s ++ loongarch_lsx_vfmul_d, // llvm.loongarch.lsx.vfmul.d ++ loongarch_lsx_vfmul_s, // llvm.loongarch.lsx.vfmul.s ++ loongarch_lsx_vfnmadd_d, // llvm.loongarch.lsx.vfnmadd.d ++ loongarch_lsx_vfnmadd_s, // llvm.loongarch.lsx.vfnmadd.s ++ loongarch_lsx_vfnmsub_d, // llvm.loongarch.lsx.vfnmsub.d ++ loongarch_lsx_vfnmsub_s, // llvm.loongarch.lsx.vfnmsub.s ++ loongarch_lsx_vfrecip_d, // llvm.loongarch.lsx.vfrecip.d ++ loongarch_lsx_vfrecip_s, // llvm.loongarch.lsx.vfrecip.s ++ loongarch_lsx_vfrint_d, // llvm.loongarch.lsx.vfrint.d ++ loongarch_lsx_vfrint_s, // llvm.loongarch.lsx.vfrint.s ++ loongarch_lsx_vfrintrm_d, // llvm.loongarch.lsx.vfrintrm.d ++ loongarch_lsx_vfrintrm_s, // llvm.loongarch.lsx.vfrintrm.s ++ loongarch_lsx_vfrintrne_d, // llvm.loongarch.lsx.vfrintrne.d ++ loongarch_lsx_vfrintrne_s, // llvm.loongarch.lsx.vfrintrne.s ++ loongarch_lsx_vfrintrp_d, // llvm.loongarch.lsx.vfrintrp.d ++ loongarch_lsx_vfrintrp_s, // llvm.loongarch.lsx.vfrintrp.s ++ loongarch_lsx_vfrintrz_d, // llvm.loongarch.lsx.vfrintrz.d ++ loongarch_lsx_vfrintrz_s, // llvm.loongarch.lsx.vfrintrz.s ++ loongarch_lsx_vfrsqrt_d, // llvm.loongarch.lsx.vfrsqrt.d ++ loongarch_lsx_vfrsqrt_s, // llvm.loongarch.lsx.vfrsqrt.s ++ loongarch_lsx_vfrstp_b, // llvm.loongarch.lsx.vfrstp.b ++ loongarch_lsx_vfrstp_h, // llvm.loongarch.lsx.vfrstp.h ++ loongarch_lsx_vfrstpi_b, // llvm.loongarch.lsx.vfrstpi.b ++ loongarch_lsx_vfrstpi_h, // llvm.loongarch.lsx.vfrstpi.h ++ loongarch_lsx_vfsqrt_d, // llvm.loongarch.lsx.vfsqrt.d ++ loongarch_lsx_vfsqrt_s, // llvm.loongarch.lsx.vfsqrt.s ++ loongarch_lsx_vfsub_d, // llvm.loongarch.lsx.vfsub.d ++ loongarch_lsx_vfsub_s, // llvm.loongarch.lsx.vfsub.s ++ loongarch_lsx_vftint_l_d, // llvm.loongarch.lsx.vftint.l.d ++ loongarch_lsx_vftint_lu_d, // llvm.loongarch.lsx.vftint.lu.d ++ loongarch_lsx_vftint_w_d, // llvm.loongarch.lsx.vftint.w.d ++ loongarch_lsx_vftint_w_s, // llvm.loongarch.lsx.vftint.w.s ++ loongarch_lsx_vftint_wu_s, // llvm.loongarch.lsx.vftint.wu.s ++ loongarch_lsx_vftinth_l_s, // llvm.loongarch.lsx.vftinth.l.s ++ loongarch_lsx_vftintl_l_s, // llvm.loongarch.lsx.vftintl.l.s ++ loongarch_lsx_vftintrm_l_d, // llvm.loongarch.lsx.vftintrm.l.d ++ loongarch_lsx_vftintrm_w_d, // llvm.loongarch.lsx.vftintrm.w.d ++ loongarch_lsx_vftintrm_w_s, // llvm.loongarch.lsx.vftintrm.w.s ++ loongarch_lsx_vftintrmh_l_s, // llvm.loongarch.lsx.vftintrmh.l.s ++ loongarch_lsx_vftintrml_l_s, // llvm.loongarch.lsx.vftintrml.l.s ++ loongarch_lsx_vftintrne_l_d, // llvm.loongarch.lsx.vftintrne.l.d ++ loongarch_lsx_vftintrne_w_d, // llvm.loongarch.lsx.vftintrne.w.d ++ loongarch_lsx_vftintrne_w_s, // llvm.loongarch.lsx.vftintrne.w.s ++ loongarch_lsx_vftintrneh_l_s, // llvm.loongarch.lsx.vftintrneh.l.s ++ loongarch_lsx_vftintrnel_l_s, // llvm.loongarch.lsx.vftintrnel.l.s ++ loongarch_lsx_vftintrp_l_d, // llvm.loongarch.lsx.vftintrp.l.d ++ loongarch_lsx_vftintrp_w_d, // llvm.loongarch.lsx.vftintrp.w.d ++ loongarch_lsx_vftintrp_w_s, // llvm.loongarch.lsx.vftintrp.w.s ++ loongarch_lsx_vftintrph_l_s, // llvm.loongarch.lsx.vftintrph.l.s ++ loongarch_lsx_vftintrpl_l_s, // llvm.loongarch.lsx.vftintrpl.l.s ++ loongarch_lsx_vftintrz_l_d, // llvm.loongarch.lsx.vftintrz.l.d ++ loongarch_lsx_vftintrz_lu_d, // llvm.loongarch.lsx.vftintrz.lu.d ++ loongarch_lsx_vftintrz_w_d, // llvm.loongarch.lsx.vftintrz.w.d ++ loongarch_lsx_vftintrz_w_s, // llvm.loongarch.lsx.vftintrz.w.s ++ loongarch_lsx_vftintrz_wu_s, // llvm.loongarch.lsx.vftintrz.wu.s ++ loongarch_lsx_vftintrzh_l_s, // llvm.loongarch.lsx.vftintrzh.l.s ++ loongarch_lsx_vftintrzl_l_s, // llvm.loongarch.lsx.vftintrzl.l.s ++ loongarch_lsx_vhaddw_d_w, // llvm.loongarch.lsx.vhaddw.d.w ++ loongarch_lsx_vhaddw_du_wu, // llvm.loongarch.lsx.vhaddw.du.wu ++ loongarch_lsx_vhaddw_h_b, // llvm.loongarch.lsx.vhaddw.h.b ++ loongarch_lsx_vhaddw_hu_bu, // llvm.loongarch.lsx.vhaddw.hu.bu ++ loongarch_lsx_vhaddw_q_d, // llvm.loongarch.lsx.vhaddw.q.d ++ loongarch_lsx_vhaddw_qu_du, // llvm.loongarch.lsx.vhaddw.qu.du ++ loongarch_lsx_vhaddw_w_h, // llvm.loongarch.lsx.vhaddw.w.h ++ loongarch_lsx_vhaddw_wu_hu, // llvm.loongarch.lsx.vhaddw.wu.hu ++ loongarch_lsx_vhsubw_d_w, // llvm.loongarch.lsx.vhsubw.d.w ++ loongarch_lsx_vhsubw_du_wu, // llvm.loongarch.lsx.vhsubw.du.wu ++ loongarch_lsx_vhsubw_h_b, // llvm.loongarch.lsx.vhsubw.h.b ++ loongarch_lsx_vhsubw_hu_bu, // llvm.loongarch.lsx.vhsubw.hu.bu ++ loongarch_lsx_vhsubw_q_d, // llvm.loongarch.lsx.vhsubw.q.d ++ loongarch_lsx_vhsubw_qu_du, // llvm.loongarch.lsx.vhsubw.qu.du ++ loongarch_lsx_vhsubw_w_h, // llvm.loongarch.lsx.vhsubw.w.h ++ loongarch_lsx_vhsubw_wu_hu, // llvm.loongarch.lsx.vhsubw.wu.hu ++ loongarch_lsx_vilvh_b, // llvm.loongarch.lsx.vilvh.b ++ loongarch_lsx_vilvh_d, // llvm.loongarch.lsx.vilvh.d ++ loongarch_lsx_vilvh_h, // llvm.loongarch.lsx.vilvh.h ++ loongarch_lsx_vilvh_w, // llvm.loongarch.lsx.vilvh.w ++ loongarch_lsx_vilvl_b, // llvm.loongarch.lsx.vilvl.b ++ loongarch_lsx_vilvl_d, // llvm.loongarch.lsx.vilvl.d ++ loongarch_lsx_vilvl_h, // llvm.loongarch.lsx.vilvl.h ++ loongarch_lsx_vilvl_w, // llvm.loongarch.lsx.vilvl.w ++ loongarch_lsx_vinsgr2vr_b, // llvm.loongarch.lsx.vinsgr2vr.b ++ loongarch_lsx_vinsgr2vr_d, // llvm.loongarch.lsx.vinsgr2vr.d ++ loongarch_lsx_vinsgr2vr_h, // llvm.loongarch.lsx.vinsgr2vr.h ++ loongarch_lsx_vinsgr2vr_w, // llvm.loongarch.lsx.vinsgr2vr.w ++ loongarch_lsx_vld, // llvm.loongarch.lsx.vld ++ loongarch_lsx_vldi, // llvm.loongarch.lsx.vldi ++ loongarch_lsx_vldrepl_b, // llvm.loongarch.lsx.vldrepl.b ++ loongarch_lsx_vldrepl_d, // llvm.loongarch.lsx.vldrepl.d ++ loongarch_lsx_vldrepl_h, // llvm.loongarch.lsx.vldrepl.h ++ loongarch_lsx_vldrepl_w, // llvm.loongarch.lsx.vldrepl.w ++ loongarch_lsx_vldx, // llvm.loongarch.lsx.vldx ++ loongarch_lsx_vmadd_b, // llvm.loongarch.lsx.vmadd.b ++ loongarch_lsx_vmadd_d, // llvm.loongarch.lsx.vmadd.d ++ loongarch_lsx_vmadd_h, // llvm.loongarch.lsx.vmadd.h ++ loongarch_lsx_vmadd_w, // llvm.loongarch.lsx.vmadd.w ++ loongarch_lsx_vmaddwev_d_w, // llvm.loongarch.lsx.vmaddwev.d.w ++ loongarch_lsx_vmaddwev_d_wu, // llvm.loongarch.lsx.vmaddwev.d.wu ++ loongarch_lsx_vmaddwev_d_wu_w, // llvm.loongarch.lsx.vmaddwev.d.wu.w ++ loongarch_lsx_vmaddwev_h_b, // llvm.loongarch.lsx.vmaddwev.h.b ++ loongarch_lsx_vmaddwev_h_bu, // llvm.loongarch.lsx.vmaddwev.h.bu ++ loongarch_lsx_vmaddwev_h_bu_b, // llvm.loongarch.lsx.vmaddwev.h.bu.b ++ loongarch_lsx_vmaddwev_q_d, // llvm.loongarch.lsx.vmaddwev.q.d ++ loongarch_lsx_vmaddwev_q_du, // llvm.loongarch.lsx.vmaddwev.q.du ++ loongarch_lsx_vmaddwev_q_du_d, // llvm.loongarch.lsx.vmaddwev.q.du.d ++ loongarch_lsx_vmaddwev_w_h, // llvm.loongarch.lsx.vmaddwev.w.h ++ loongarch_lsx_vmaddwev_w_hu, // llvm.loongarch.lsx.vmaddwev.w.hu ++ loongarch_lsx_vmaddwev_w_hu_h, // llvm.loongarch.lsx.vmaddwev.w.hu.h ++ loongarch_lsx_vmaddwod_d_w, // llvm.loongarch.lsx.vmaddwod.d.w ++ loongarch_lsx_vmaddwod_d_wu, // llvm.loongarch.lsx.vmaddwod.d.wu ++ loongarch_lsx_vmaddwod_d_wu_w, // llvm.loongarch.lsx.vmaddwod.d.wu.w ++ loongarch_lsx_vmaddwod_h_b, // llvm.loongarch.lsx.vmaddwod.h.b ++ loongarch_lsx_vmaddwod_h_bu, // llvm.loongarch.lsx.vmaddwod.h.bu ++ loongarch_lsx_vmaddwod_h_bu_b, // llvm.loongarch.lsx.vmaddwod.h.bu.b ++ loongarch_lsx_vmaddwod_q_d, // llvm.loongarch.lsx.vmaddwod.q.d ++ loongarch_lsx_vmaddwod_q_du, // llvm.loongarch.lsx.vmaddwod.q.du ++ loongarch_lsx_vmaddwod_q_du_d, // llvm.loongarch.lsx.vmaddwod.q.du.d ++ loongarch_lsx_vmaddwod_w_h, // llvm.loongarch.lsx.vmaddwod.w.h ++ loongarch_lsx_vmaddwod_w_hu, // llvm.loongarch.lsx.vmaddwod.w.hu ++ loongarch_lsx_vmaddwod_w_hu_h, // llvm.loongarch.lsx.vmaddwod.w.hu.h ++ loongarch_lsx_vmax_b, // llvm.loongarch.lsx.vmax.b ++ loongarch_lsx_vmax_bu, // llvm.loongarch.lsx.vmax.bu ++ loongarch_lsx_vmax_d, // llvm.loongarch.lsx.vmax.d ++ loongarch_lsx_vmax_du, // llvm.loongarch.lsx.vmax.du ++ loongarch_lsx_vmax_h, // llvm.loongarch.lsx.vmax.h ++ loongarch_lsx_vmax_hu, // llvm.loongarch.lsx.vmax.hu ++ loongarch_lsx_vmax_w, // llvm.loongarch.lsx.vmax.w ++ loongarch_lsx_vmax_wu, // llvm.loongarch.lsx.vmax.wu ++ loongarch_lsx_vmaxi_b, // llvm.loongarch.lsx.vmaxi.b ++ loongarch_lsx_vmaxi_bu, // llvm.loongarch.lsx.vmaxi.bu ++ loongarch_lsx_vmaxi_d, // llvm.loongarch.lsx.vmaxi.d ++ loongarch_lsx_vmaxi_du, // llvm.loongarch.lsx.vmaxi.du ++ loongarch_lsx_vmaxi_h, // llvm.loongarch.lsx.vmaxi.h ++ loongarch_lsx_vmaxi_hu, // llvm.loongarch.lsx.vmaxi.hu ++ loongarch_lsx_vmaxi_w, // llvm.loongarch.lsx.vmaxi.w ++ loongarch_lsx_vmaxi_wu, // llvm.loongarch.lsx.vmaxi.wu ++ loongarch_lsx_vmin_b, // llvm.loongarch.lsx.vmin.b ++ loongarch_lsx_vmin_bu, // llvm.loongarch.lsx.vmin.bu ++ loongarch_lsx_vmin_d, // llvm.loongarch.lsx.vmin.d ++ loongarch_lsx_vmin_du, // llvm.loongarch.lsx.vmin.du ++ loongarch_lsx_vmin_h, // llvm.loongarch.lsx.vmin.h ++ loongarch_lsx_vmin_hu, // llvm.loongarch.lsx.vmin.hu ++ loongarch_lsx_vmin_w, // llvm.loongarch.lsx.vmin.w ++ loongarch_lsx_vmin_wu, // llvm.loongarch.lsx.vmin.wu ++ loongarch_lsx_vmini_b, // llvm.loongarch.lsx.vmini.b ++ loongarch_lsx_vmini_bu, // llvm.loongarch.lsx.vmini.bu ++ loongarch_lsx_vmini_d, // llvm.loongarch.lsx.vmini.d ++ loongarch_lsx_vmini_du, // llvm.loongarch.lsx.vmini.du ++ loongarch_lsx_vmini_h, // llvm.loongarch.lsx.vmini.h ++ loongarch_lsx_vmini_hu, // llvm.loongarch.lsx.vmini.hu ++ loongarch_lsx_vmini_w, // llvm.loongarch.lsx.vmini.w ++ loongarch_lsx_vmini_wu, // llvm.loongarch.lsx.vmini.wu ++ loongarch_lsx_vmod_b, // llvm.loongarch.lsx.vmod.b ++ loongarch_lsx_vmod_bu, // llvm.loongarch.lsx.vmod.bu ++ loongarch_lsx_vmod_d, // llvm.loongarch.lsx.vmod.d ++ loongarch_lsx_vmod_du, // llvm.loongarch.lsx.vmod.du ++ loongarch_lsx_vmod_h, // llvm.loongarch.lsx.vmod.h ++ loongarch_lsx_vmod_hu, // llvm.loongarch.lsx.vmod.hu ++ loongarch_lsx_vmod_w, // llvm.loongarch.lsx.vmod.w ++ loongarch_lsx_vmod_wu, // llvm.loongarch.lsx.vmod.wu ++ loongarch_lsx_vmskgez_b, // llvm.loongarch.lsx.vmskgez.b ++ loongarch_lsx_vmskltz_b, // llvm.loongarch.lsx.vmskltz.b ++ loongarch_lsx_vmskltz_d, // llvm.loongarch.lsx.vmskltz.d ++ loongarch_lsx_vmskltz_h, // llvm.loongarch.lsx.vmskltz.h ++ loongarch_lsx_vmskltz_w, // llvm.loongarch.lsx.vmskltz.w ++ loongarch_lsx_vmsknz_b, // llvm.loongarch.lsx.vmsknz.b ++ loongarch_lsx_vmsub_b, // llvm.loongarch.lsx.vmsub.b ++ loongarch_lsx_vmsub_d, // llvm.loongarch.lsx.vmsub.d ++ loongarch_lsx_vmsub_h, // llvm.loongarch.lsx.vmsub.h ++ loongarch_lsx_vmsub_w, // llvm.loongarch.lsx.vmsub.w ++ loongarch_lsx_vmuh_b, // llvm.loongarch.lsx.vmuh.b ++ loongarch_lsx_vmuh_bu, // llvm.loongarch.lsx.vmuh.bu ++ loongarch_lsx_vmuh_d, // llvm.loongarch.lsx.vmuh.d ++ loongarch_lsx_vmuh_du, // llvm.loongarch.lsx.vmuh.du ++ loongarch_lsx_vmuh_h, // llvm.loongarch.lsx.vmuh.h ++ loongarch_lsx_vmuh_hu, // llvm.loongarch.lsx.vmuh.hu ++ loongarch_lsx_vmuh_w, // llvm.loongarch.lsx.vmuh.w ++ loongarch_lsx_vmuh_wu, // llvm.loongarch.lsx.vmuh.wu ++ loongarch_lsx_vmul_b, // llvm.loongarch.lsx.vmul.b ++ loongarch_lsx_vmul_d, // llvm.loongarch.lsx.vmul.d ++ loongarch_lsx_vmul_h, // llvm.loongarch.lsx.vmul.h ++ loongarch_lsx_vmul_w, // llvm.loongarch.lsx.vmul.w ++ loongarch_lsx_vmulwev_d_w, // llvm.loongarch.lsx.vmulwev.d.w ++ loongarch_lsx_vmulwev_d_wu, // llvm.loongarch.lsx.vmulwev.d.wu ++ loongarch_lsx_vmulwev_d_wu_w, // llvm.loongarch.lsx.vmulwev.d.wu.w ++ loongarch_lsx_vmulwev_h_b, // llvm.loongarch.lsx.vmulwev.h.b ++ loongarch_lsx_vmulwev_h_bu, // llvm.loongarch.lsx.vmulwev.h.bu ++ loongarch_lsx_vmulwev_h_bu_b, // llvm.loongarch.lsx.vmulwev.h.bu.b ++ loongarch_lsx_vmulwev_q_d, // llvm.loongarch.lsx.vmulwev.q.d ++ loongarch_lsx_vmulwev_q_du, // llvm.loongarch.lsx.vmulwev.q.du ++ loongarch_lsx_vmulwev_q_du_d, // llvm.loongarch.lsx.vmulwev.q.du.d ++ loongarch_lsx_vmulwev_w_h, // llvm.loongarch.lsx.vmulwev.w.h ++ loongarch_lsx_vmulwev_w_hu, // llvm.loongarch.lsx.vmulwev.w.hu ++ loongarch_lsx_vmulwev_w_hu_h, // llvm.loongarch.lsx.vmulwev.w.hu.h ++ loongarch_lsx_vmulwod_d_w, // llvm.loongarch.lsx.vmulwod.d.w ++ loongarch_lsx_vmulwod_d_wu, // llvm.loongarch.lsx.vmulwod.d.wu ++ loongarch_lsx_vmulwod_d_wu_w, // llvm.loongarch.lsx.vmulwod.d.wu.w ++ loongarch_lsx_vmulwod_h_b, // llvm.loongarch.lsx.vmulwod.h.b ++ loongarch_lsx_vmulwod_h_bu, // llvm.loongarch.lsx.vmulwod.h.bu ++ loongarch_lsx_vmulwod_h_bu_b, // llvm.loongarch.lsx.vmulwod.h.bu.b ++ loongarch_lsx_vmulwod_q_d, // llvm.loongarch.lsx.vmulwod.q.d ++ loongarch_lsx_vmulwod_q_du, // llvm.loongarch.lsx.vmulwod.q.du ++ loongarch_lsx_vmulwod_q_du_d, // llvm.loongarch.lsx.vmulwod.q.du.d ++ loongarch_lsx_vmulwod_w_h, // llvm.loongarch.lsx.vmulwod.w.h ++ loongarch_lsx_vmulwod_w_hu, // llvm.loongarch.lsx.vmulwod.w.hu ++ loongarch_lsx_vmulwod_w_hu_h, // llvm.loongarch.lsx.vmulwod.w.hu.h ++ loongarch_lsx_vneg_b, // llvm.loongarch.lsx.vneg.b ++ loongarch_lsx_vneg_d, // llvm.loongarch.lsx.vneg.d ++ loongarch_lsx_vneg_h, // llvm.loongarch.lsx.vneg.h ++ loongarch_lsx_vneg_w, // llvm.loongarch.lsx.vneg.w ++ loongarch_lsx_vnor_v, // llvm.loongarch.lsx.vnor.v ++ loongarch_lsx_vnori_b, // llvm.loongarch.lsx.vnori.b ++ loongarch_lsx_vor_v, // llvm.loongarch.lsx.vor.v ++ loongarch_lsx_vori_b, // llvm.loongarch.lsx.vori.b ++ loongarch_lsx_vorn_v, // llvm.loongarch.lsx.vorn.v ++ loongarch_lsx_vpackev_b, // llvm.loongarch.lsx.vpackev.b ++ loongarch_lsx_vpackev_d, // llvm.loongarch.lsx.vpackev.d ++ loongarch_lsx_vpackev_h, // llvm.loongarch.lsx.vpackev.h ++ loongarch_lsx_vpackev_w, // llvm.loongarch.lsx.vpackev.w ++ loongarch_lsx_vpackod_b, // llvm.loongarch.lsx.vpackod.b ++ loongarch_lsx_vpackod_d, // llvm.loongarch.lsx.vpackod.d ++ loongarch_lsx_vpackod_h, // llvm.loongarch.lsx.vpackod.h ++ loongarch_lsx_vpackod_w, // llvm.loongarch.lsx.vpackod.w ++ loongarch_lsx_vpcnt_b, // llvm.loongarch.lsx.vpcnt.b ++ loongarch_lsx_vpcnt_d, // llvm.loongarch.lsx.vpcnt.d ++ loongarch_lsx_vpcnt_h, // llvm.loongarch.lsx.vpcnt.h ++ loongarch_lsx_vpcnt_w, // llvm.loongarch.lsx.vpcnt.w ++ loongarch_lsx_vpermi_w, // llvm.loongarch.lsx.vpermi.w ++ loongarch_lsx_vpickev_b, // llvm.loongarch.lsx.vpickev.b ++ loongarch_lsx_vpickev_d, // llvm.loongarch.lsx.vpickev.d ++ loongarch_lsx_vpickev_h, // llvm.loongarch.lsx.vpickev.h ++ loongarch_lsx_vpickev_w, // llvm.loongarch.lsx.vpickev.w ++ loongarch_lsx_vpickod_b, // llvm.loongarch.lsx.vpickod.b ++ loongarch_lsx_vpickod_d, // llvm.loongarch.lsx.vpickod.d ++ loongarch_lsx_vpickod_h, // llvm.loongarch.lsx.vpickod.h ++ loongarch_lsx_vpickod_w, // llvm.loongarch.lsx.vpickod.w ++ loongarch_lsx_vpickve2gr_b, // llvm.loongarch.lsx.vpickve2gr.b ++ loongarch_lsx_vpickve2gr_bu, // llvm.loongarch.lsx.vpickve2gr.bu ++ loongarch_lsx_vpickve2gr_d, // llvm.loongarch.lsx.vpickve2gr.d ++ loongarch_lsx_vpickve2gr_du, // llvm.loongarch.lsx.vpickve2gr.du ++ loongarch_lsx_vpickve2gr_h, // llvm.loongarch.lsx.vpickve2gr.h ++ loongarch_lsx_vpickve2gr_hu, // llvm.loongarch.lsx.vpickve2gr.hu ++ loongarch_lsx_vpickve2gr_w, // llvm.loongarch.lsx.vpickve2gr.w ++ loongarch_lsx_vpickve2gr_wu, // llvm.loongarch.lsx.vpickve2gr.wu ++ loongarch_lsx_vreplgr2vr_b, // llvm.loongarch.lsx.vreplgr2vr.b ++ loongarch_lsx_vreplgr2vr_d, // llvm.loongarch.lsx.vreplgr2vr.d ++ loongarch_lsx_vreplgr2vr_h, // llvm.loongarch.lsx.vreplgr2vr.h ++ loongarch_lsx_vreplgr2vr_w, // llvm.loongarch.lsx.vreplgr2vr.w ++ loongarch_lsx_vreplve_b, // llvm.loongarch.lsx.vreplve.b ++ loongarch_lsx_vreplve_d, // llvm.loongarch.lsx.vreplve.d ++ loongarch_lsx_vreplve_h, // llvm.loongarch.lsx.vreplve.h ++ loongarch_lsx_vreplve_w, // llvm.loongarch.lsx.vreplve.w ++ loongarch_lsx_vreplvei_b, // llvm.loongarch.lsx.vreplvei.b ++ loongarch_lsx_vreplvei_d, // llvm.loongarch.lsx.vreplvei.d ++ loongarch_lsx_vreplvei_h, // llvm.loongarch.lsx.vreplvei.h ++ loongarch_lsx_vreplvei_w, // llvm.loongarch.lsx.vreplvei.w ++ loongarch_lsx_vrotr_b, // llvm.loongarch.lsx.vrotr.b ++ loongarch_lsx_vrotr_d, // llvm.loongarch.lsx.vrotr.d ++ loongarch_lsx_vrotr_h, // llvm.loongarch.lsx.vrotr.h ++ loongarch_lsx_vrotr_w, // llvm.loongarch.lsx.vrotr.w ++ loongarch_lsx_vrotri_b, // llvm.loongarch.lsx.vrotri.b ++ loongarch_lsx_vrotri_d, // llvm.loongarch.lsx.vrotri.d ++ loongarch_lsx_vrotri_h, // llvm.loongarch.lsx.vrotri.h ++ loongarch_lsx_vrotri_w, // llvm.loongarch.lsx.vrotri.w ++ loongarch_lsx_vsadd_b, // llvm.loongarch.lsx.vsadd.b ++ loongarch_lsx_vsadd_bu, // llvm.loongarch.lsx.vsadd.bu ++ loongarch_lsx_vsadd_d, // llvm.loongarch.lsx.vsadd.d ++ loongarch_lsx_vsadd_du, // llvm.loongarch.lsx.vsadd.du ++ loongarch_lsx_vsadd_h, // llvm.loongarch.lsx.vsadd.h ++ loongarch_lsx_vsadd_hu, // llvm.loongarch.lsx.vsadd.hu ++ loongarch_lsx_vsadd_w, // llvm.loongarch.lsx.vsadd.w ++ loongarch_lsx_vsadd_wu, // llvm.loongarch.lsx.vsadd.wu ++ loongarch_lsx_vsat_b, // llvm.loongarch.lsx.vsat.b ++ loongarch_lsx_vsat_bu, // llvm.loongarch.lsx.vsat.bu ++ loongarch_lsx_vsat_d, // llvm.loongarch.lsx.vsat.d ++ loongarch_lsx_vsat_du, // llvm.loongarch.lsx.vsat.du ++ loongarch_lsx_vsat_h, // llvm.loongarch.lsx.vsat.h ++ loongarch_lsx_vsat_hu, // llvm.loongarch.lsx.vsat.hu ++ loongarch_lsx_vsat_w, // llvm.loongarch.lsx.vsat.w ++ loongarch_lsx_vsat_wu, // llvm.loongarch.lsx.vsat.wu ++ loongarch_lsx_vseq_b, // llvm.loongarch.lsx.vseq.b ++ loongarch_lsx_vseq_d, // llvm.loongarch.lsx.vseq.d ++ loongarch_lsx_vseq_h, // llvm.loongarch.lsx.vseq.h ++ loongarch_lsx_vseq_w, // llvm.loongarch.lsx.vseq.w ++ loongarch_lsx_vseqi_b, // llvm.loongarch.lsx.vseqi.b ++ loongarch_lsx_vseqi_d, // llvm.loongarch.lsx.vseqi.d ++ loongarch_lsx_vseqi_h, // llvm.loongarch.lsx.vseqi.h ++ loongarch_lsx_vseqi_w, // llvm.loongarch.lsx.vseqi.w ++ loongarch_lsx_vshuf_b, // llvm.loongarch.lsx.vshuf.b ++ loongarch_lsx_vshuf_d, // llvm.loongarch.lsx.vshuf.d ++ loongarch_lsx_vshuf_h, // llvm.loongarch.lsx.vshuf.h ++ loongarch_lsx_vshuf_w, // llvm.loongarch.lsx.vshuf.w ++ loongarch_lsx_vshuf4i_b, // llvm.loongarch.lsx.vshuf4i.b ++ loongarch_lsx_vshuf4i_d, // llvm.loongarch.lsx.vshuf4i.d ++ loongarch_lsx_vshuf4i_h, // llvm.loongarch.lsx.vshuf4i.h ++ loongarch_lsx_vshuf4i_w, // llvm.loongarch.lsx.vshuf4i.w ++ loongarch_lsx_vsigncov_b, // llvm.loongarch.lsx.vsigncov.b ++ loongarch_lsx_vsigncov_d, // llvm.loongarch.lsx.vsigncov.d ++ loongarch_lsx_vsigncov_h, // llvm.loongarch.lsx.vsigncov.h ++ loongarch_lsx_vsigncov_w, // llvm.loongarch.lsx.vsigncov.w ++ loongarch_lsx_vsle_b, // llvm.loongarch.lsx.vsle.b ++ loongarch_lsx_vsle_bu, // llvm.loongarch.lsx.vsle.bu ++ loongarch_lsx_vsle_d, // llvm.loongarch.lsx.vsle.d ++ loongarch_lsx_vsle_du, // llvm.loongarch.lsx.vsle.du ++ loongarch_lsx_vsle_h, // llvm.loongarch.lsx.vsle.h ++ loongarch_lsx_vsle_hu, // llvm.loongarch.lsx.vsle.hu ++ loongarch_lsx_vsle_w, // llvm.loongarch.lsx.vsle.w ++ loongarch_lsx_vsle_wu, // llvm.loongarch.lsx.vsle.wu ++ loongarch_lsx_vslei_b, // llvm.loongarch.lsx.vslei.b ++ loongarch_lsx_vslei_bu, // llvm.loongarch.lsx.vslei.bu ++ loongarch_lsx_vslei_d, // llvm.loongarch.lsx.vslei.d ++ loongarch_lsx_vslei_du, // llvm.loongarch.lsx.vslei.du ++ loongarch_lsx_vslei_h, // llvm.loongarch.lsx.vslei.h ++ loongarch_lsx_vslei_hu, // llvm.loongarch.lsx.vslei.hu ++ loongarch_lsx_vslei_w, // llvm.loongarch.lsx.vslei.w ++ loongarch_lsx_vslei_wu, // llvm.loongarch.lsx.vslei.wu ++ loongarch_lsx_vsll_b, // llvm.loongarch.lsx.vsll.b ++ loongarch_lsx_vsll_d, // llvm.loongarch.lsx.vsll.d ++ loongarch_lsx_vsll_h, // llvm.loongarch.lsx.vsll.h ++ loongarch_lsx_vsll_w, // llvm.loongarch.lsx.vsll.w ++ loongarch_lsx_vslli_b, // llvm.loongarch.lsx.vslli.b ++ loongarch_lsx_vslli_d, // llvm.loongarch.lsx.vslli.d ++ loongarch_lsx_vslli_h, // llvm.loongarch.lsx.vslli.h ++ loongarch_lsx_vslli_w, // llvm.loongarch.lsx.vslli.w ++ loongarch_lsx_vsllwil_d_w, // llvm.loongarch.lsx.vsllwil.d.w ++ loongarch_lsx_vsllwil_du_wu, // llvm.loongarch.lsx.vsllwil.du.wu ++ loongarch_lsx_vsllwil_h_b, // llvm.loongarch.lsx.vsllwil.h.b ++ loongarch_lsx_vsllwil_hu_bu, // llvm.loongarch.lsx.vsllwil.hu.bu ++ loongarch_lsx_vsllwil_w_h, // llvm.loongarch.lsx.vsllwil.w.h ++ loongarch_lsx_vsllwil_wu_hu, // llvm.loongarch.lsx.vsllwil.wu.hu ++ loongarch_lsx_vslt_b, // llvm.loongarch.lsx.vslt.b ++ loongarch_lsx_vslt_bu, // llvm.loongarch.lsx.vslt.bu ++ loongarch_lsx_vslt_d, // llvm.loongarch.lsx.vslt.d ++ loongarch_lsx_vslt_du, // llvm.loongarch.lsx.vslt.du ++ loongarch_lsx_vslt_h, // llvm.loongarch.lsx.vslt.h ++ loongarch_lsx_vslt_hu, // llvm.loongarch.lsx.vslt.hu ++ loongarch_lsx_vslt_w, // llvm.loongarch.lsx.vslt.w ++ loongarch_lsx_vslt_wu, // llvm.loongarch.lsx.vslt.wu ++ loongarch_lsx_vslti_b, // llvm.loongarch.lsx.vslti.b ++ loongarch_lsx_vslti_bu, // llvm.loongarch.lsx.vslti.bu ++ loongarch_lsx_vslti_d, // llvm.loongarch.lsx.vslti.d ++ loongarch_lsx_vslti_du, // llvm.loongarch.lsx.vslti.du ++ loongarch_lsx_vslti_h, // llvm.loongarch.lsx.vslti.h ++ loongarch_lsx_vslti_hu, // llvm.loongarch.lsx.vslti.hu ++ loongarch_lsx_vslti_w, // llvm.loongarch.lsx.vslti.w ++ loongarch_lsx_vslti_wu, // llvm.loongarch.lsx.vslti.wu ++ loongarch_lsx_vsra_b, // llvm.loongarch.lsx.vsra.b ++ loongarch_lsx_vsra_d, // llvm.loongarch.lsx.vsra.d ++ loongarch_lsx_vsra_h, // llvm.loongarch.lsx.vsra.h ++ loongarch_lsx_vsra_w, // llvm.loongarch.lsx.vsra.w ++ loongarch_lsx_vsrai_b, // llvm.loongarch.lsx.vsrai.b ++ loongarch_lsx_vsrai_d, // llvm.loongarch.lsx.vsrai.d ++ loongarch_lsx_vsrai_h, // llvm.loongarch.lsx.vsrai.h ++ loongarch_lsx_vsrai_w, // llvm.loongarch.lsx.vsrai.w ++ loongarch_lsx_vsran_b_h, // llvm.loongarch.lsx.vsran.b.h ++ loongarch_lsx_vsran_h_w, // llvm.loongarch.lsx.vsran.h.w ++ loongarch_lsx_vsran_w_d, // llvm.loongarch.lsx.vsran.w.d ++ loongarch_lsx_vsrani_b_h, // llvm.loongarch.lsx.vsrani.b.h ++ loongarch_lsx_vsrani_d_q, // llvm.loongarch.lsx.vsrani.d.q ++ loongarch_lsx_vsrani_h_w, // llvm.loongarch.lsx.vsrani.h.w ++ loongarch_lsx_vsrani_w_d, // llvm.loongarch.lsx.vsrani.w.d ++ loongarch_lsx_vsrar_b, // llvm.loongarch.lsx.vsrar.b ++ loongarch_lsx_vsrar_d, // llvm.loongarch.lsx.vsrar.d ++ loongarch_lsx_vsrar_h, // llvm.loongarch.lsx.vsrar.h ++ loongarch_lsx_vsrar_w, // llvm.loongarch.lsx.vsrar.w ++ loongarch_lsx_vsrari_b, // llvm.loongarch.lsx.vsrari.b ++ loongarch_lsx_vsrari_d, // llvm.loongarch.lsx.vsrari.d ++ loongarch_lsx_vsrari_h, // llvm.loongarch.lsx.vsrari.h ++ loongarch_lsx_vsrari_w, // llvm.loongarch.lsx.vsrari.w ++ loongarch_lsx_vsrarn_b_h, // llvm.loongarch.lsx.vsrarn.b.h ++ loongarch_lsx_vsrarn_h_w, // llvm.loongarch.lsx.vsrarn.h.w ++ loongarch_lsx_vsrarn_w_d, // llvm.loongarch.lsx.vsrarn.w.d ++ loongarch_lsx_vsrarni_b_h, // llvm.loongarch.lsx.vsrarni.b.h ++ loongarch_lsx_vsrarni_d_q, // llvm.loongarch.lsx.vsrarni.d.q ++ loongarch_lsx_vsrarni_h_w, // llvm.loongarch.lsx.vsrarni.h.w ++ loongarch_lsx_vsrarni_w_d, // llvm.loongarch.lsx.vsrarni.w.d ++ loongarch_lsx_vsrl_b, // llvm.loongarch.lsx.vsrl.b ++ loongarch_lsx_vsrl_d, // llvm.loongarch.lsx.vsrl.d ++ loongarch_lsx_vsrl_h, // llvm.loongarch.lsx.vsrl.h ++ loongarch_lsx_vsrl_w, // llvm.loongarch.lsx.vsrl.w ++ loongarch_lsx_vsrli_b, // llvm.loongarch.lsx.vsrli.b ++ loongarch_lsx_vsrli_d, // llvm.loongarch.lsx.vsrli.d ++ loongarch_lsx_vsrli_h, // llvm.loongarch.lsx.vsrli.h ++ loongarch_lsx_vsrli_w, // llvm.loongarch.lsx.vsrli.w ++ loongarch_lsx_vsrln_b_h, // llvm.loongarch.lsx.vsrln.b.h ++ loongarch_lsx_vsrln_h_w, // llvm.loongarch.lsx.vsrln.h.w ++ loongarch_lsx_vsrln_w_d, // llvm.loongarch.lsx.vsrln.w.d ++ loongarch_lsx_vsrlni_b_h, // llvm.loongarch.lsx.vsrlni.b.h ++ loongarch_lsx_vsrlni_d_q, // llvm.loongarch.lsx.vsrlni.d.q ++ loongarch_lsx_vsrlni_h_w, // llvm.loongarch.lsx.vsrlni.h.w ++ loongarch_lsx_vsrlni_w_d, // llvm.loongarch.lsx.vsrlni.w.d ++ loongarch_lsx_vsrlr_b, // llvm.loongarch.lsx.vsrlr.b ++ loongarch_lsx_vsrlr_d, // llvm.loongarch.lsx.vsrlr.d ++ loongarch_lsx_vsrlr_h, // llvm.loongarch.lsx.vsrlr.h ++ loongarch_lsx_vsrlr_w, // llvm.loongarch.lsx.vsrlr.w ++ loongarch_lsx_vsrlri_b, // llvm.loongarch.lsx.vsrlri.b ++ loongarch_lsx_vsrlri_d, // llvm.loongarch.lsx.vsrlri.d ++ loongarch_lsx_vsrlri_h, // llvm.loongarch.lsx.vsrlri.h ++ loongarch_lsx_vsrlri_w, // llvm.loongarch.lsx.vsrlri.w ++ loongarch_lsx_vsrlrn_b_h, // llvm.loongarch.lsx.vsrlrn.b.h ++ loongarch_lsx_vsrlrn_h_w, // llvm.loongarch.lsx.vsrlrn.h.w ++ loongarch_lsx_vsrlrn_w_d, // llvm.loongarch.lsx.vsrlrn.w.d ++ loongarch_lsx_vssran_b_h, // llvm.loongarch.lsx.vssran.b.h ++ loongarch_lsx_vssran_bu_h, // llvm.loongarch.lsx.vssran.bu.h ++ loongarch_lsx_vssran_h_w, // llvm.loongarch.lsx.vssran.h.w ++ loongarch_lsx_vssran_hu_w, // llvm.loongarch.lsx.vssran.hu.w ++ loongarch_lsx_vssran_w_d, // llvm.loongarch.lsx.vssran.w.d ++ loongarch_lsx_vssran_wu_d, // llvm.loongarch.lsx.vssran.wu.d ++ loongarch_lsx_vssrani_b_h, // llvm.loongarch.lsx.vssrani.b.h ++ loongarch_lsx_vssrani_bu_h, // llvm.loongarch.lsx.vssrani.bu.h ++ loongarch_lsx_vssrani_d_q, // llvm.loongarch.lsx.vssrani.d.q ++ loongarch_lsx_vssrani_du_q, // llvm.loongarch.lsx.vssrani.du.q ++ loongarch_lsx_vssrani_h_w, // llvm.loongarch.lsx.vssrani.h.w ++ loongarch_lsx_vssrani_hu_w, // llvm.loongarch.lsx.vssrani.hu.w ++ loongarch_lsx_vssrani_w_d, // llvm.loongarch.lsx.vssrani.w.d ++ loongarch_lsx_vssrani_wu_d, // llvm.loongarch.lsx.vssrani.wu.d ++ loongarch_lsx_vssrarn_b_h, // llvm.loongarch.lsx.vssrarn.b.h ++ loongarch_lsx_vssrarn_bu_h, // llvm.loongarch.lsx.vssrarn.bu.h ++ loongarch_lsx_vssrarn_h_w, // llvm.loongarch.lsx.vssrarn.h.w ++ loongarch_lsx_vssrarn_hu_w, // llvm.loongarch.lsx.vssrarn.hu.w ++ loongarch_lsx_vssrarn_w_d, // llvm.loongarch.lsx.vssrarn.w.d ++ loongarch_lsx_vssrarn_wu_d, // llvm.loongarch.lsx.vssrarn.wu.d ++ loongarch_lsx_vssrarni_b_h, // llvm.loongarch.lsx.vssrarni.b.h ++ loongarch_lsx_vssrarni_bu_h, // llvm.loongarch.lsx.vssrarni.bu.h ++ loongarch_lsx_vssrarni_d_q, // llvm.loongarch.lsx.vssrarni.d.q ++ loongarch_lsx_vssrarni_du_q, // llvm.loongarch.lsx.vssrarni.du.q ++ loongarch_lsx_vssrarni_h_w, // llvm.loongarch.lsx.vssrarni.h.w ++ loongarch_lsx_vssrarni_hu_w, // llvm.loongarch.lsx.vssrarni.hu.w ++ loongarch_lsx_vssrarni_w_d, // llvm.loongarch.lsx.vssrarni.w.d ++ loongarch_lsx_vssrarni_wu_d, // llvm.loongarch.lsx.vssrarni.wu.d ++ loongarch_lsx_vssrln_b_h, // llvm.loongarch.lsx.vssrln.b.h ++ loongarch_lsx_vssrln_bu_h, // llvm.loongarch.lsx.vssrln.bu.h ++ loongarch_lsx_vssrln_h_w, // llvm.loongarch.lsx.vssrln.h.w ++ loongarch_lsx_vssrln_hu_w, // llvm.loongarch.lsx.vssrln.hu.w ++ loongarch_lsx_vssrln_w_d, // llvm.loongarch.lsx.vssrln.w.d ++ loongarch_lsx_vssrln_wu_d, // llvm.loongarch.lsx.vssrln.wu.d ++ loongarch_lsx_vssrlni_b_h, // llvm.loongarch.lsx.vssrlni.b.h ++ loongarch_lsx_vssrlni_bu_h, // llvm.loongarch.lsx.vssrlni.bu.h ++ loongarch_lsx_vssrlni_d_q, // llvm.loongarch.lsx.vssrlni.d.q ++ loongarch_lsx_vssrlni_du_q, // llvm.loongarch.lsx.vssrlni.du.q ++ loongarch_lsx_vssrlni_h_w, // llvm.loongarch.lsx.vssrlni.h.w ++ loongarch_lsx_vssrlni_hu_w, // llvm.loongarch.lsx.vssrlni.hu.w ++ loongarch_lsx_vssrlni_w_d, // llvm.loongarch.lsx.vssrlni.w.d ++ loongarch_lsx_vssrlni_wu_d, // llvm.loongarch.lsx.vssrlni.wu.d ++ loongarch_lsx_vssrlrn_b_h, // llvm.loongarch.lsx.vssrlrn.b.h ++ loongarch_lsx_vssrlrn_bu_h, // llvm.loongarch.lsx.vssrlrn.bu.h ++ loongarch_lsx_vssrlrn_h_w, // llvm.loongarch.lsx.vssrlrn.h.w ++ loongarch_lsx_vssrlrn_hu_w, // llvm.loongarch.lsx.vssrlrn.hu.w ++ loongarch_lsx_vssrlrn_w_d, // llvm.loongarch.lsx.vssrlrn.w.d ++ loongarch_lsx_vssrlrn_wu_d, // llvm.loongarch.lsx.vssrlrn.wu.d ++ loongarch_lsx_vssrlrni_b_h, // llvm.loongarch.lsx.vssrlrni.b.h ++ loongarch_lsx_vssrlrni_bu_h, // llvm.loongarch.lsx.vssrlrni.bu.h ++ loongarch_lsx_vssrlrni_d_q, // llvm.loongarch.lsx.vssrlrni.d.q ++ loongarch_lsx_vssrlrni_du_q, // llvm.loongarch.lsx.vssrlrni.du.q ++ loongarch_lsx_vssrlrni_h_w, // llvm.loongarch.lsx.vssrlrni.h.w ++ loongarch_lsx_vssrlrni_hu_w, // llvm.loongarch.lsx.vssrlrni.hu.w ++ loongarch_lsx_vssrlrni_w_d, // llvm.loongarch.lsx.vssrlrni.w.d ++ loongarch_lsx_vssrlrni_wu_d, // llvm.loongarch.lsx.vssrlrni.wu.d ++ loongarch_lsx_vssub_b, // llvm.loongarch.lsx.vssub.b ++ loongarch_lsx_vssub_bu, // llvm.loongarch.lsx.vssub.bu ++ loongarch_lsx_vssub_d, // llvm.loongarch.lsx.vssub.d ++ loongarch_lsx_vssub_du, // llvm.loongarch.lsx.vssub.du ++ loongarch_lsx_vssub_h, // llvm.loongarch.lsx.vssub.h ++ loongarch_lsx_vssub_hu, // llvm.loongarch.lsx.vssub.hu ++ loongarch_lsx_vssub_w, // llvm.loongarch.lsx.vssub.w ++ loongarch_lsx_vssub_wu, // llvm.loongarch.lsx.vssub.wu ++ loongarch_lsx_vst, // llvm.loongarch.lsx.vst ++ loongarch_lsx_vstelm_b, // llvm.loongarch.lsx.vstelm.b ++ loongarch_lsx_vstelm_d, // llvm.loongarch.lsx.vstelm.d ++ loongarch_lsx_vstelm_h, // llvm.loongarch.lsx.vstelm.h ++ loongarch_lsx_vstelm_w, // llvm.loongarch.lsx.vstelm.w ++ loongarch_lsx_vstx, // llvm.loongarch.lsx.vstx ++ loongarch_lsx_vsub_b, // llvm.loongarch.lsx.vsub.b ++ loongarch_lsx_vsub_d, // llvm.loongarch.lsx.vsub.d ++ loongarch_lsx_vsub_h, // llvm.loongarch.lsx.vsub.h ++ loongarch_lsx_vsub_q, // llvm.loongarch.lsx.vsub.q ++ loongarch_lsx_vsub_w, // llvm.loongarch.lsx.vsub.w ++ loongarch_lsx_vsubi_bu, // llvm.loongarch.lsx.vsubi.bu ++ loongarch_lsx_vsubi_du, // llvm.loongarch.lsx.vsubi.du ++ loongarch_lsx_vsubi_hu, // llvm.loongarch.lsx.vsubi.hu ++ loongarch_lsx_vsubi_wu, // llvm.loongarch.lsx.vsubi.wu ++ loongarch_lsx_vsubwev_d_w, // llvm.loongarch.lsx.vsubwev.d.w ++ loongarch_lsx_vsubwev_d_wu, // llvm.loongarch.lsx.vsubwev.d.wu ++ loongarch_lsx_vsubwev_h_b, // llvm.loongarch.lsx.vsubwev.h.b ++ loongarch_lsx_vsubwev_h_bu, // llvm.loongarch.lsx.vsubwev.h.bu ++ loongarch_lsx_vsubwev_q_d, // llvm.loongarch.lsx.vsubwev.q.d ++ loongarch_lsx_vsubwev_q_du, // llvm.loongarch.lsx.vsubwev.q.du ++ loongarch_lsx_vsubwev_w_h, // llvm.loongarch.lsx.vsubwev.w.h ++ loongarch_lsx_vsubwev_w_hu, // llvm.loongarch.lsx.vsubwev.w.hu ++ loongarch_lsx_vsubwod_d_w, // llvm.loongarch.lsx.vsubwod.d.w ++ loongarch_lsx_vsubwod_d_wu, // llvm.loongarch.lsx.vsubwod.d.wu ++ loongarch_lsx_vsubwod_h_b, // llvm.loongarch.lsx.vsubwod.h.b ++ loongarch_lsx_vsubwod_h_bu, // llvm.loongarch.lsx.vsubwod.h.bu ++ loongarch_lsx_vsubwod_q_d, // llvm.loongarch.lsx.vsubwod.q.d ++ loongarch_lsx_vsubwod_q_du, // llvm.loongarch.lsx.vsubwod.q.du ++ loongarch_lsx_vsubwod_w_h, // llvm.loongarch.lsx.vsubwod.w.h ++ loongarch_lsx_vsubwod_w_hu, // llvm.loongarch.lsx.vsubwod.w.hu ++ loongarch_lsx_vxor_v, // llvm.loongarch.lsx.vxor.v ++ loongarch_lsx_vxori_b, // llvm.loongarch.lsx.vxori.b ++ loongarch_syscall, // llvm.loongarch.syscall ++ loongarch_tlbclr, // llvm.loongarch.tlbclr ++ loongarch_tlbfill, // llvm.loongarch.tlbfill ++ loongarch_tlbflush, // llvm.loongarch.tlbflush ++ loongarch_tlbrd, // llvm.loongarch.tlbrd ++ loongarch_tlbsrch, // llvm.loongarch.tlbsrch ++ loongarch_tlbwr, // llvm.loongarch.tlbwr ++}; // enum ++} // namespace Intrinsic ++} // namespace llvm ++ ++#endif +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/IR/IntrinsicsLoongArch.td b/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/IR/IntrinsicsLoongArch.td +new file mode 100644 +index 00000000000..aa8c19020e4 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/IR/IntrinsicsLoongArch.td +@@ -0,0 +1,3618 @@ ++//===- IntrinsicsLoongArch.td - Defines LoongArch intrinsics ---------*- tablegen -*-===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++// ++// This file defines all of the LoongArch-specific intrinsics. ++// ++//===----------------------------------------------------------------------===// ++ ++let TargetPrefix = "loongarch" in { // All intrinsics start with "llvm.loongarch.". ++ ++//===----------------------------------------------------------------------===// ++// LoongArch LSX ++ ++def int_loongarch_lsx_vclo_b : GCCBuiltin<"__builtin_lsx_vclo_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vclo_h : GCCBuiltin<"__builtin_lsx_vclo_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vclo_w : GCCBuiltin<"__builtin_lsx_vclo_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vclo_d : GCCBuiltin<"__builtin_lsx_vclo_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vflogb_s : GCCBuiltin<"__builtin_lsx_vflogb_s">, ++ Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vflogb_d : GCCBuiltin<"__builtin_lsx_vflogb_d">, ++ Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vpickve2gr_b : GCCBuiltin<"__builtin_lsx_vpickve2gr_b">, ++ Intrinsic<[llvm_i32_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vpickve2gr_h : GCCBuiltin<"__builtin_lsx_vpickve2gr_h">, ++ Intrinsic<[llvm_i32_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vpickve2gr_w : GCCBuiltin<"__builtin_lsx_vpickve2gr_w">, ++ Intrinsic<[llvm_i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vpickve2gr_d : GCCBuiltin<"__builtin_lsx_vpickve2gr_d">, ++ Intrinsic<[llvm_i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vpickve2gr_bu : GCCBuiltin<"__builtin_lsx_vpickve2gr_bu">, ++ Intrinsic<[llvm_i32_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vpickve2gr_hu : GCCBuiltin<"__builtin_lsx_vpickve2gr_hu">, ++ Intrinsic<[llvm_i32_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vpickve2gr_wu : GCCBuiltin<"__builtin_lsx_vpickve2gr_wu">, ++ Intrinsic<[llvm_i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vpickve2gr_du : GCCBuiltin<"__builtin_lsx_vpickve2gr_du">, ++ Intrinsic<[llvm_i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vreplvei_b : GCCBuiltin<"__builtin_lsx_vreplvei_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vreplvei_h : GCCBuiltin<"__builtin_lsx_vreplvei_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vreplvei_w : GCCBuiltin<"__builtin_lsx_vreplvei_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vreplvei_d : GCCBuiltin<"__builtin_lsx_vreplvei_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vmskltz_b : GCCBuiltin<"__builtin_lsx_vmskltz_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmskltz_h : GCCBuiltin<"__builtin_lsx_vmskltz_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmskltz_w : GCCBuiltin<"__builtin_lsx_vmskltz_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmskltz_d : GCCBuiltin<"__builtin_lsx_vmskltz_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vfmadd_s : GCCBuiltin<"__builtin_lsx_vfmadd_s">, ++ Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vfmadd_d : GCCBuiltin<"__builtin_lsx_vfmadd_d">, ++ Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vfmsub_s : GCCBuiltin<"__builtin_lsx_vfmsub_s">, ++ Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vfmsub_d : GCCBuiltin<"__builtin_lsx_vfmsub_d">, ++ Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vfnmadd_s : GCCBuiltin<"__builtin_lsx_vfnmadd_s">, ++ Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vfnmadd_d : GCCBuiltin<"__builtin_lsx_vfnmadd_d">, ++ Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vfnmsub_s : GCCBuiltin<"__builtin_lsx_vfnmsub_s">, ++ Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vfnmsub_d : GCCBuiltin<"__builtin_lsx_vfnmsub_d">, ++ Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vfcmp_caf_s : GCCBuiltin<"__builtin_lsx_vfcmp_caf_s">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vfcmp_caf_d : GCCBuiltin<"__builtin_lsx_vfcmp_caf_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vfcmp_cor_s : GCCBuiltin<"__builtin_lsx_vfcmp_cor_s">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vfcmp_cor_d : GCCBuiltin<"__builtin_lsx_vfcmp_cor_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vfcmp_cun_s : GCCBuiltin<"__builtin_lsx_vfcmp_cun_s">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vfcmp_cun_d : GCCBuiltin<"__builtin_lsx_vfcmp_cun_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vfcmp_cune_s : GCCBuiltin<"__builtin_lsx_vfcmp_cune_s">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vfcmp_cune_d : GCCBuiltin<"__builtin_lsx_vfcmp_cune_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vfcmp_cueq_s : GCCBuiltin<"__builtin_lsx_vfcmp_cueq_s">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vfcmp_cueq_d : GCCBuiltin<"__builtin_lsx_vfcmp_cueq_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vfcmp_ceq_s : GCCBuiltin<"__builtin_lsx_vfcmp_ceq_s">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vfcmp_ceq_d : GCCBuiltin<"__builtin_lsx_vfcmp_ceq_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vfcmp_cne_s : GCCBuiltin<"__builtin_lsx_vfcmp_cne_s">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vfcmp_cne_d : GCCBuiltin<"__builtin_lsx_vfcmp_cne_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vfcmp_clt_s : GCCBuiltin<"__builtin_lsx_vfcmp_clt_s">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vfcmp_clt_d : GCCBuiltin<"__builtin_lsx_vfcmp_clt_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vfcmp_cult_s : GCCBuiltin<"__builtin_lsx_vfcmp_cult_s">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vfcmp_cult_d : GCCBuiltin<"__builtin_lsx_vfcmp_cult_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vfcmp_cle_s : GCCBuiltin<"__builtin_lsx_vfcmp_cle_s">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vfcmp_cle_d : GCCBuiltin<"__builtin_lsx_vfcmp_cle_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vfcmp_cule_s : GCCBuiltin<"__builtin_lsx_vfcmp_cule_s">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vfcmp_cule_d : GCCBuiltin<"__builtin_lsx_vfcmp_cule_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vfcmp_saf_s : GCCBuiltin<"__builtin_lsx_vfcmp_saf_s">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vfcmp_saf_d : GCCBuiltin<"__builtin_lsx_vfcmp_saf_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vfcmp_sor_s : GCCBuiltin<"__builtin_lsx_vfcmp_sor_s">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vfcmp_sor_d : GCCBuiltin<"__builtin_lsx_vfcmp_sor_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vfcmp_sun_s : GCCBuiltin<"__builtin_lsx_vfcmp_sun_s">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vfcmp_sun_d : GCCBuiltin<"__builtin_lsx_vfcmp_sun_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vfcmp_sune_s : GCCBuiltin<"__builtin_lsx_vfcmp_sune_s">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vfcmp_sune_d : GCCBuiltin<"__builtin_lsx_vfcmp_sune_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vfcmp_sueq_s : GCCBuiltin<"__builtin_lsx_vfcmp_sueq_s">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vfcmp_sueq_d : GCCBuiltin<"__builtin_lsx_vfcmp_sueq_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vfcmp_seq_s : GCCBuiltin<"__builtin_lsx_vfcmp_seq_s">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vfcmp_seq_d : GCCBuiltin<"__builtin_lsx_vfcmp_seq_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vfcmp_sne_s : GCCBuiltin<"__builtin_lsx_vfcmp_sne_s">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vfcmp_sne_d : GCCBuiltin<"__builtin_lsx_vfcmp_sne_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vfcmp_slt_s : GCCBuiltin<"__builtin_lsx_vfcmp_slt_s">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vfcmp_slt_d : GCCBuiltin<"__builtin_lsx_vfcmp_slt_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vfcmp_sult_s : GCCBuiltin<"__builtin_lsx_vfcmp_sult_s">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vfcmp_sult_d : GCCBuiltin<"__builtin_lsx_vfcmp_sult_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vfcmp_sle_s : GCCBuiltin<"__builtin_lsx_vfcmp_sle_s">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vfcmp_sle_d : GCCBuiltin<"__builtin_lsx_vfcmp_sle_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vfcmp_sule_s : GCCBuiltin<"__builtin_lsx_vfcmp_sule_s">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vfcmp_sule_d : GCCBuiltin<"__builtin_lsx_vfcmp_sule_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vbitsel_v : GCCBuiltin<"__builtin_lsx_vbitsel_v">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vshuf_b : GCCBuiltin<"__builtin_lsx_vshuf_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vldrepl_b : GCCBuiltin<"__builtin_lsx_vldrepl_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_ptr_ty, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly]>; ++def int_loongarch_lsx_vldrepl_h : GCCBuiltin<"__builtin_lsx_vldrepl_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_ptr_ty, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly]>; ++def int_loongarch_lsx_vldrepl_w : GCCBuiltin<"__builtin_lsx_vldrepl_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_ptr_ty, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly]>; ++def int_loongarch_lsx_vldrepl_d : GCCBuiltin<"__builtin_lsx_vldrepl_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_ptr_ty, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly]>; ++ ++def int_loongarch_lsx_vstelm_b : GCCBuiltin<"__builtin_lsx_vstelm_b">, ++ Intrinsic<[], [llvm_v16i8_ty, llvm_ptr_ty, llvm_i32_ty, llvm_i32_ty], [IntrArgMemOnly]>; ++def int_loongarch_lsx_vstelm_h : GCCBuiltin<"__builtin_lsx_vstelm_h">, ++ Intrinsic<[], [llvm_v8i16_ty, llvm_ptr_ty, llvm_i32_ty, llvm_i32_ty], [IntrArgMemOnly]>; ++def int_loongarch_lsx_vstelm_w : GCCBuiltin<"__builtin_lsx_vstelm_w">, ++ Intrinsic<[], [llvm_v4i32_ty, llvm_ptr_ty, llvm_i32_ty, llvm_i32_ty], [IntrArgMemOnly]>; ++def int_loongarch_lsx_vstelm_d : GCCBuiltin<"__builtin_lsx_vstelm_d">, ++ Intrinsic<[], [llvm_v2i64_ty, llvm_ptr_ty, llvm_i32_ty, llvm_i32_ty], [IntrArgMemOnly]>; ++ ++def int_loongarch_lsx_vldx : GCCBuiltin<"__builtin_lsx_vldx">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_ptr_ty, llvm_i64_ty], ++ [IntrReadMem, IntrArgMemOnly]>; ++ ++def int_loongarch_lsx_vstx : GCCBuiltin<"__builtin_lsx_vstx">, ++ Intrinsic<[], [llvm_v16i8_ty, llvm_ptr_ty, llvm_i64_ty], ++ [IntrArgMemOnly]>; ++ ++def int_loongarch_lsx_vaddwev_d_w : GCCBuiltin<"__builtin_lsx_vaddwev_d_w">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vaddwev_w_h : GCCBuiltin<"__builtin_lsx_vaddwev_w_h">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vaddwev_h_b : GCCBuiltin<"__builtin_lsx_vaddwev_h_b">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vaddwev_q_d : GCCBuiltin<"__builtin_lsx_vaddwev_q_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vsubwev_d_w : GCCBuiltin<"__builtin_lsx_vsubwev_d_w">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsubwev_w_h : GCCBuiltin<"__builtin_lsx_vsubwev_w_h">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsubwev_h_b : GCCBuiltin<"__builtin_lsx_vsubwev_h_b">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsubwev_q_d : GCCBuiltin<"__builtin_lsx_vsubwev_q_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++ ++def int_loongarch_lsx_vaddwod_d_w : GCCBuiltin<"__builtin_lsx_vaddwod_d_w">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vaddwod_w_h : GCCBuiltin<"__builtin_lsx_vaddwod_w_h">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vaddwod_h_b : GCCBuiltin<"__builtin_lsx_vaddwod_h_b">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vaddwod_q_d : GCCBuiltin<"__builtin_lsx_vaddwod_q_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vsubwod_d_w : GCCBuiltin<"__builtin_lsx_vsubwod_d_w">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsubwod_w_h : GCCBuiltin<"__builtin_lsx_vsubwod_w_h">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsubwod_h_b : GCCBuiltin<"__builtin_lsx_vsubwod_h_b">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsubwod_q_d : GCCBuiltin<"__builtin_lsx_vsubwod_q_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vaddwev_d_wu : GCCBuiltin<"__builtin_lsx_vaddwev_d_wu">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vaddwev_w_hu : GCCBuiltin<"__builtin_lsx_vaddwev_w_hu">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vaddwev_h_bu : GCCBuiltin<"__builtin_lsx_vaddwev_h_bu">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vaddwev_q_du : GCCBuiltin<"__builtin_lsx_vaddwev_q_du">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vsubwev_d_wu : GCCBuiltin<"__builtin_lsx_vsubwev_d_wu">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsubwev_w_hu : GCCBuiltin<"__builtin_lsx_vsubwev_w_hu">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsubwev_h_bu : GCCBuiltin<"__builtin_lsx_vsubwev_h_bu">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsubwev_q_du : GCCBuiltin<"__builtin_lsx_vsubwev_q_du">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vaddwod_d_wu : GCCBuiltin<"__builtin_lsx_vaddwod_d_wu">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vaddwod_w_hu : GCCBuiltin<"__builtin_lsx_vaddwod_w_hu">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vaddwod_h_bu : GCCBuiltin<"__builtin_lsx_vaddwod_h_bu">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vaddwod_q_du : GCCBuiltin<"__builtin_lsx_vaddwod_q_du">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vsubwod_d_wu : GCCBuiltin<"__builtin_lsx_vsubwod_d_wu">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsubwod_w_hu : GCCBuiltin<"__builtin_lsx_vsubwod_w_hu">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsubwod_h_bu : GCCBuiltin<"__builtin_lsx_vsubwod_h_bu">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsubwod_q_du : GCCBuiltin<"__builtin_lsx_vsubwod_q_du">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vaddwev_d_wu_w : GCCBuiltin<"__builtin_lsx_vaddwev_d_wu_w">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vaddwev_w_hu_h : GCCBuiltin<"__builtin_lsx_vaddwev_w_hu_h">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vaddwev_h_bu_b : GCCBuiltin<"__builtin_lsx_vaddwev_h_bu_b">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vaddwev_q_du_d : GCCBuiltin<"__builtin_lsx_vaddwev_q_du_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vaddwod_d_wu_w : GCCBuiltin<"__builtin_lsx_vaddwod_d_wu_w">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vaddwod_w_hu_h : GCCBuiltin<"__builtin_lsx_vaddwod_w_hu_h">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vaddwod_h_bu_b : GCCBuiltin<"__builtin_lsx_vaddwod_h_bu_b">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vaddwod_q_du_d : GCCBuiltin<"__builtin_lsx_vaddwod_q_du_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vhaddw_qu_du : GCCBuiltin<"__builtin_lsx_vhaddw_qu_du">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vhsubw_qu_du : GCCBuiltin<"__builtin_lsx_vhsubw_qu_du">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vhaddw_q_d : GCCBuiltin<"__builtin_lsx_vhaddw_q_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vhsubw_q_d : GCCBuiltin<"__builtin_lsx_vhsubw_q_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vmuh_b : GCCBuiltin<"__builtin_lsx_vmuh_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmuh_h : GCCBuiltin<"__builtin_lsx_vmuh_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmuh_w : GCCBuiltin<"__builtin_lsx_vmuh_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmuh_d : GCCBuiltin<"__builtin_lsx_vmuh_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vmuh_bu : GCCBuiltin<"__builtin_lsx_vmuh_bu">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmuh_hu : GCCBuiltin<"__builtin_lsx_vmuh_hu">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmuh_wu : GCCBuiltin<"__builtin_lsx_vmuh_wu">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmuh_du : GCCBuiltin<"__builtin_lsx_vmuh_du">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vmulwev_d_w : GCCBuiltin<"__builtin_lsx_vmulwev_d_w">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmulwev_w_h : GCCBuiltin<"__builtin_lsx_vmulwev_w_h">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmulwev_h_b : GCCBuiltin<"__builtin_lsx_vmulwev_h_b">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmulwev_q_d : GCCBuiltin<"__builtin_lsx_vmulwev_q_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vmulwod_d_w : GCCBuiltin<"__builtin_lsx_vmulwod_d_w">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmulwod_w_h : GCCBuiltin<"__builtin_lsx_vmulwod_w_h">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmulwod_h_b : GCCBuiltin<"__builtin_lsx_vmulwod_h_b">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmulwod_q_d : GCCBuiltin<"__builtin_lsx_vmulwod_q_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vmulwev_d_wu : GCCBuiltin<"__builtin_lsx_vmulwev_d_wu">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmulwev_w_hu : GCCBuiltin<"__builtin_lsx_vmulwev_w_hu">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmulwev_h_bu : GCCBuiltin<"__builtin_lsx_vmulwev_h_bu">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmulwev_q_du : GCCBuiltin<"__builtin_lsx_vmulwev_q_du">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vmulwod_d_wu : GCCBuiltin<"__builtin_lsx_vmulwod_d_wu">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmulwod_w_hu : GCCBuiltin<"__builtin_lsx_vmulwod_w_hu">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmulwod_h_bu : GCCBuiltin<"__builtin_lsx_vmulwod_h_bu">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmulwod_q_du : GCCBuiltin<"__builtin_lsx_vmulwod_q_du">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vmulwev_d_wu_w : GCCBuiltin<"__builtin_lsx_vmulwev_d_wu_w">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmulwev_w_hu_h : GCCBuiltin<"__builtin_lsx_vmulwev_w_hu_h">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmulwev_h_bu_b : GCCBuiltin<"__builtin_lsx_vmulwev_h_bu_b">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmulwev_q_du_d : GCCBuiltin<"__builtin_lsx_vmulwev_q_du_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vmulwod_d_wu_w : GCCBuiltin<"__builtin_lsx_vmulwod_d_wu_w">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmulwod_w_hu_h : GCCBuiltin<"__builtin_lsx_vmulwod_w_hu_h">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmulwod_h_bu_b : GCCBuiltin<"__builtin_lsx_vmulwod_h_bu_b">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmulwod_q_du_d : GCCBuiltin<"__builtin_lsx_vmulwod_q_du_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vmaddwev_d_w : GCCBuiltin<"__builtin_lsx_vmaddwev_d_w">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmaddwev_w_h : GCCBuiltin<"__builtin_lsx_vmaddwev_w_h">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmaddwev_h_b : GCCBuiltin<"__builtin_lsx_vmaddwev_h_b">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmaddwev_q_d : GCCBuiltin<"__builtin_lsx_vmaddwev_q_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vmaddwod_d_w : GCCBuiltin<"__builtin_lsx_vmaddwod_d_w">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmaddwod_w_h : GCCBuiltin<"__builtin_lsx_vmaddwod_w_h">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmaddwod_h_b : GCCBuiltin<"__builtin_lsx_vmaddwod_h_b">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmaddwod_q_d : GCCBuiltin<"__builtin_lsx_vmaddwod_q_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vmaddwev_d_wu : GCCBuiltin<"__builtin_lsx_vmaddwev_d_wu">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmaddwev_w_hu : GCCBuiltin<"__builtin_lsx_vmaddwev_w_hu">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmaddwev_h_bu : GCCBuiltin<"__builtin_lsx_vmaddwev_h_bu">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmaddwev_q_du : GCCBuiltin<"__builtin_lsx_vmaddwev_q_du">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vmaddwod_d_wu : GCCBuiltin<"__builtin_lsx_vmaddwod_d_wu">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmaddwod_w_hu : GCCBuiltin<"__builtin_lsx_vmaddwod_w_hu">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmaddwod_h_bu : GCCBuiltin<"__builtin_lsx_vmaddwod_h_bu">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmaddwod_q_du : GCCBuiltin<"__builtin_lsx_vmaddwod_q_du">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vmaddwev_d_wu_w : GCCBuiltin<"__builtin_lsx_vmaddwev_d_wu_w">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmaddwev_w_hu_h : GCCBuiltin<"__builtin_lsx_vmaddwev_w_hu_h">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmaddwev_h_bu_b : GCCBuiltin<"__builtin_lsx_vmaddwev_h_bu_b">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmaddwev_q_du_d : GCCBuiltin<"__builtin_lsx_vmaddwev_q_du_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vmaddwod_d_wu_w : GCCBuiltin<"__builtin_lsx_vmaddwod_d_wu_w">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmaddwod_w_hu_h : GCCBuiltin<"__builtin_lsx_vmaddwod_w_hu_h">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmaddwod_h_bu_b : GCCBuiltin<"__builtin_lsx_vmaddwod_h_bu_b">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmaddwod_q_du_d : GCCBuiltin<"__builtin_lsx_vmaddwod_q_du_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vsrln_b_h : GCCBuiltin<"__builtin_lsx_vsrln_b_h">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsrln_h_w : GCCBuiltin<"__builtin_lsx_vsrln_h_w">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsrln_w_d : GCCBuiltin<"__builtin_lsx_vsrln_w_d">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vsran_b_h : GCCBuiltin<"__builtin_lsx_vsran_b_h">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsran_h_w : GCCBuiltin<"__builtin_lsx_vsran_h_w">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsran_w_d : GCCBuiltin<"__builtin_lsx_vsran_w_d">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vsrlrn_b_h : GCCBuiltin<"__builtin_lsx_vsrlrn_b_h">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsrlrn_h_w : GCCBuiltin<"__builtin_lsx_vsrlrn_h_w">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsrlrn_w_d : GCCBuiltin<"__builtin_lsx_vsrlrn_w_d">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vsrarn_b_h : GCCBuiltin<"__builtin_lsx_vsrarn_b_h">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsrarn_h_w : GCCBuiltin<"__builtin_lsx_vsrarn_h_w">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsrarn_w_d : GCCBuiltin<"__builtin_lsx_vsrarn_w_d">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vssrln_b_h : GCCBuiltin<"__builtin_lsx_vssrln_b_h">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vssrln_h_w : GCCBuiltin<"__builtin_lsx_vssrln_h_w">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vssrln_w_d : GCCBuiltin<"__builtin_lsx_vssrln_w_d">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vssran_b_h : GCCBuiltin<"__builtin_lsx_vssran_b_h">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vssran_h_w : GCCBuiltin<"__builtin_lsx_vssran_h_w">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vssran_w_d : GCCBuiltin<"__builtin_lsx_vssran_w_d">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vssrlrn_b_h : GCCBuiltin<"__builtin_lsx_vssrlrn_b_h">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vssrlrn_h_w : GCCBuiltin<"__builtin_lsx_vssrlrn_h_w">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vssrlrn_w_d : GCCBuiltin<"__builtin_lsx_vssrlrn_w_d">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vssrarn_b_h : GCCBuiltin<"__builtin_lsx_vssrarn_b_h">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vssrarn_h_w : GCCBuiltin<"__builtin_lsx_vssrarn_h_w">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vssrarn_w_d : GCCBuiltin<"__builtin_lsx_vssrarn_w_d">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vssrln_bu_h : GCCBuiltin<"__builtin_lsx_vssrln_bu_h">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vssrln_hu_w : GCCBuiltin<"__builtin_lsx_vssrln_hu_w">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vssrln_wu_d : GCCBuiltin<"__builtin_lsx_vssrln_wu_d">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vssran_bu_h : GCCBuiltin<"__builtin_lsx_vssran_bu_h">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vssran_hu_w : GCCBuiltin<"__builtin_lsx_vssran_hu_w">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vssran_wu_d : GCCBuiltin<"__builtin_lsx_vssran_wu_d">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vssrlrn_bu_h : GCCBuiltin<"__builtin_lsx_vssrlrn_bu_h">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vssrlrn_hu_w : GCCBuiltin<"__builtin_lsx_vssrlrn_hu_w">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vssrlrn_wu_d : GCCBuiltin<"__builtin_lsx_vssrlrn_wu_d">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vssrarn_bu_h : GCCBuiltin<"__builtin_lsx_vssrarn_bu_h">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vssrarn_hu_w : GCCBuiltin<"__builtin_lsx_vssrarn_hu_w">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vssrarn_wu_d : GCCBuiltin<"__builtin_lsx_vssrarn_wu_d">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vandn_v : GCCBuiltin<"__builtin_lsx_vandn_v">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vorn_v : GCCBuiltin<"__builtin_lsx_vorn_v">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vfrstp_b : GCCBuiltin<"__builtin_lsx_vfrstp_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty], ++ [IntrNoMem]>; ++def int_loongarch_lsx_vfrstp_h : GCCBuiltin<"__builtin_lsx_vfrstp_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty], ++ [IntrNoMem]>; ++ ++def int_loongarch_lsx_vadd_q : GCCBuiltin<"__builtin_lsx_vadd_q">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsub_q : GCCBuiltin<"__builtin_lsx_vsub_q">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vsigncov_b : GCCBuiltin<"__builtin_lsx_vsigncov_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], ++ [IntrNoMem]>; ++def int_loongarch_lsx_vsigncov_h : GCCBuiltin<"__builtin_lsx_vsigncov_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], ++ [IntrNoMem]>; ++def int_loongarch_lsx_vsigncov_w : GCCBuiltin<"__builtin_lsx_vsigncov_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], ++ [IntrNoMem]>; ++def int_loongarch_lsx_vsigncov_d : GCCBuiltin<"__builtin_lsx_vsigncov_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], ++ [IntrNoMem]>; ++ ++def int_loongarch_lsx_vfcvt_h_s : GCCBuiltin<"__builtin_lsx_vfcvt_h_s">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vfcvt_s_d : GCCBuiltin<"__builtin_lsx_vfcvt_s_d">, ++ Intrinsic<[llvm_v4f32_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vffint_s_l : GCCBuiltin<"__builtin_lsx_vffint_s_l">, ++ Intrinsic<[llvm_v4f32_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vftint_w_d : GCCBuiltin<"__builtin_lsx_vftint_w_d">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vftintrz_w_d : GCCBuiltin<"__builtin_lsx_vftintrz_w_d">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vftintrp_w_d : GCCBuiltin<"__builtin_lsx_vftintrp_w_d">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vftintrm_w_d : GCCBuiltin<"__builtin_lsx_vftintrm_w_d">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vftintrne_w_d : GCCBuiltin<"__builtin_lsx_vftintrne_w_d">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vbsrl_v : GCCBuiltin<"__builtin_lsx_vbsrl_v">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vbsll_v : GCCBuiltin<"__builtin_lsx_vbsll_v">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vfrstpi_b : GCCBuiltin<"__builtin_lsx_vfrstpi_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vfrstpi_h : GCCBuiltin<"__builtin_lsx_vfrstpi_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vneg_b : GCCBuiltin<"__builtin_lsx_vneg_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vneg_h : GCCBuiltin<"__builtin_lsx_vneg_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vneg_w : GCCBuiltin<"__builtin_lsx_vneg_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vneg_d : GCCBuiltin<"__builtin_lsx_vneg_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vmskgez_b : GCCBuiltin<"__builtin_lsx_vmskgez_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmsknz_b : GCCBuiltin<"__builtin_lsx_vmsknz_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vfrintrm_s : GCCBuiltin<"__builtin_lsx_vfrintrm_s">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vfrintrm_d : GCCBuiltin<"__builtin_lsx_vfrintrm_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vfrintrp_s : GCCBuiltin<"__builtin_lsx_vfrintrp_s">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vfrintrp_d : GCCBuiltin<"__builtin_lsx_vfrintrp_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vfrintrz_s : GCCBuiltin<"__builtin_lsx_vfrintrz_s">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vfrintrz_d : GCCBuiltin<"__builtin_lsx_vfrintrz_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vfrintrne_s : GCCBuiltin<"__builtin_lsx_vfrintrne_s">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vfrintrne_d : GCCBuiltin<"__builtin_lsx_vfrintrne_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vffinth_d_w : GCCBuiltin<"__builtin_lsx_vffinth_d_w">, ++ Intrinsic<[llvm_v2f64_ty], [llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vffintl_d_w : GCCBuiltin<"__builtin_lsx_vffintl_d_w">, ++ Intrinsic<[llvm_v2f64_ty], [llvm_v4i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vftintrm_w_s : GCCBuiltin<"__builtin_lsx_vftintrm_w_s">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vftintrm_l_d : GCCBuiltin<"__builtin_lsx_vftintrm_l_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vftintrp_w_s : GCCBuiltin<"__builtin_lsx_vftintrp_w_s">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vftintrp_l_d : GCCBuiltin<"__builtin_lsx_vftintrp_l_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vftintrz_w_s : GCCBuiltin<"__builtin_lsx_vftintrz_w_s">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vftintrz_l_d : GCCBuiltin<"__builtin_lsx_vftintrz_l_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vftintrne_w_s : GCCBuiltin<"__builtin_lsx_vftintrne_w_s">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vftintrne_l_d : GCCBuiltin<"__builtin_lsx_vftintrne_l_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vftinth_l_s : GCCBuiltin<"__builtin_lsx_vftinth_l_s">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vftintl_l_s : GCCBuiltin<"__builtin_lsx_vftintl_l_s">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v4f32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vftintrmh_l_s : GCCBuiltin<"__builtin_lsx_vftintrmh_l_s">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vftintrml_l_s : GCCBuiltin<"__builtin_lsx_vftintrml_l_s">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v4f32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vftintrph_l_s : GCCBuiltin<"__builtin_lsx_vftintrph_l_s">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vftintrpl_l_s : GCCBuiltin<"__builtin_lsx_vftintrpl_l_s">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v4f32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vftintrzh_l_s : GCCBuiltin<"__builtin_lsx_vftintrzh_l_s">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vftintrzl_l_s : GCCBuiltin<"__builtin_lsx_vftintrzl_l_s">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v4f32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vftintrneh_l_s : GCCBuiltin<"__builtin_lsx_vftintrneh_l_s">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vftintrnel_l_s : GCCBuiltin<"__builtin_lsx_vftintrnel_l_s">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v4f32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vexth_d_w : GCCBuiltin<"__builtin_lsx_vexth_d_w">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vexth_w_h : GCCBuiltin<"__builtin_lsx_vexth_w_h">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vexth_h_b : GCCBuiltin<"__builtin_lsx_vexth_h_b">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vexth_q_d : GCCBuiltin<"__builtin_lsx_vexth_q_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vexth_du_wu : GCCBuiltin<"__builtin_lsx_vexth_du_wu">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vexth_wu_hu : GCCBuiltin<"__builtin_lsx_vexth_wu_hu">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vexth_hu_bu : GCCBuiltin<"__builtin_lsx_vexth_hu_bu">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vexth_qu_du : GCCBuiltin<"__builtin_lsx_vexth_qu_du">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvexth_du_wu : GCCBuiltin<"__builtin_lasx_xvexth_du_wu">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvexth_wu_hu : GCCBuiltin<"__builtin_lasx_xvexth_wu_hu">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvexth_hu_bu : GCCBuiltin<"__builtin_lasx_xvexth_hu_bu">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvexth_qu_du : GCCBuiltin<"__builtin_lasx_xvexth_qu_du">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vsllwil_d_w : GCCBuiltin<"__builtin_lsx_vsllwil_d_w">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsllwil_w_h : GCCBuiltin<"__builtin_lsx_vsllwil_w_h">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsllwil_h_b : GCCBuiltin<"__builtin_lsx_vsllwil_h_b">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vextl_q_d : GCCBuiltin<"__builtin_lsx_vextl_q_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vsllwil_du_wu : GCCBuiltin<"__builtin_lsx_vsllwil_du_wu">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsllwil_wu_hu : GCCBuiltin<"__builtin_lsx_vsllwil_wu_hu">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsllwil_hu_bu : GCCBuiltin<"__builtin_lsx_vsllwil_hu_bu">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vextl_qu_du : GCCBuiltin<"__builtin_lsx_vextl_qu_du">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vbitclri_b : GCCBuiltin<"__builtin_lsx_vbitclri_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vbitclri_h : GCCBuiltin<"__builtin_lsx_vbitclri_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vbitclri_w : GCCBuiltin<"__builtin_lsx_vbitclri_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vbitclri_d : GCCBuiltin<"__builtin_lsx_vbitclri_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vbitseti_b : GCCBuiltin<"__builtin_lsx_vbitseti_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vbitseti_h : GCCBuiltin<"__builtin_lsx_vbitseti_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vbitseti_w : GCCBuiltin<"__builtin_lsx_vbitseti_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vbitseti_d : GCCBuiltin<"__builtin_lsx_vbitseti_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vbitrevi_b : GCCBuiltin<"__builtin_lsx_vbitrevi_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vbitrevi_h : GCCBuiltin<"__builtin_lsx_vbitrevi_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vbitrevi_w : GCCBuiltin<"__builtin_lsx_vbitrevi_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vbitrevi_d : GCCBuiltin<"__builtin_lsx_vbitrevi_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vssrlrni_b_h : GCCBuiltin<"__builtin_lsx_vssrlrni_b_h">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vssrlrni_h_w : GCCBuiltin<"__builtin_lsx_vssrlrni_h_w">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vssrlrni_w_d : GCCBuiltin<"__builtin_lsx_vssrlrni_w_d">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vssrlrni_d_q : GCCBuiltin<"__builtin_lsx_vssrlrni_d_q">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vsrani_b_h : GCCBuiltin<"__builtin_lsx_vsrani_b_h">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsrani_h_w : GCCBuiltin<"__builtin_lsx_vsrani_h_w">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsrani_w_d : GCCBuiltin<"__builtin_lsx_vsrani_w_d">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsrani_d_q : GCCBuiltin<"__builtin_lsx_vsrani_d_q">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vextrins_b : GCCBuiltin<"__builtin_lsx_vextrins_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vextrins_h : GCCBuiltin<"__builtin_lsx_vextrins_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vextrins_w : GCCBuiltin<"__builtin_lsx_vextrins_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vextrins_d : GCCBuiltin<"__builtin_lsx_vextrins_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vbitseli_b : GCCBuiltin<"__builtin_lsx_vbitseli_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vandi_b : GCCBuiltin<"__builtin_lsx_vandi_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vori_b : GCCBuiltin<"__builtin_lsx_vori_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vxori_b : GCCBuiltin<"__builtin_lsx_vxori_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vnori_b : GCCBuiltin<"__builtin_lsx_vnori_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vldi : GCCBuiltin<"__builtin_lsx_vldi">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vpermi_w : GCCBuiltin<"__builtin_lsx_vpermi_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vsadd_b : GCCBuiltin<"__builtin_lsx_vsadd_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], ++ [Commutative, IntrNoMem]>; ++def int_loongarch_lsx_vsadd_h : GCCBuiltin<"__builtin_lsx_vsadd_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], ++ [Commutative, IntrNoMem]>; ++def int_loongarch_lsx_vsadd_w : GCCBuiltin<"__builtin_lsx_vsadd_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], ++ [Commutative, IntrNoMem]>; ++def int_loongarch_lsx_vsadd_d : GCCBuiltin<"__builtin_lsx_vsadd_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], ++ [Commutative, IntrNoMem]>; ++ ++def int_loongarch_lsx_vssub_b : GCCBuiltin<"__builtin_lsx_vssub_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vssub_h : GCCBuiltin<"__builtin_lsx_vssub_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vssub_w : GCCBuiltin<"__builtin_lsx_vssub_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vssub_d : GCCBuiltin<"__builtin_lsx_vssub_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vsadd_bu : GCCBuiltin<"__builtin_lsx_vsadd_bu">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], ++ [Commutative, IntrNoMem]>; ++def int_loongarch_lsx_vsadd_hu : GCCBuiltin<"__builtin_lsx_vsadd_hu">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], ++ [Commutative, IntrNoMem]>; ++def int_loongarch_lsx_vsadd_wu : GCCBuiltin<"__builtin_lsx_vsadd_wu">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], ++ [Commutative, IntrNoMem]>; ++def int_loongarch_lsx_vsadd_du : GCCBuiltin<"__builtin_lsx_vsadd_du">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], ++ [Commutative, IntrNoMem]>; ++ ++def int_loongarch_lsx_vssub_bu : GCCBuiltin<"__builtin_lsx_vssub_bu">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vssub_hu : GCCBuiltin<"__builtin_lsx_vssub_hu">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vssub_wu : GCCBuiltin<"__builtin_lsx_vssub_wu">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vssub_du : GCCBuiltin<"__builtin_lsx_vssub_du">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vhaddw_h_b : GCCBuiltin<"__builtin_lsx_vhaddw_h_b">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vhaddw_w_h : GCCBuiltin<"__builtin_lsx_vhaddw_w_h">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vhaddw_d_w : GCCBuiltin<"__builtin_lsx_vhaddw_d_w">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vhsubw_h_b : GCCBuiltin<"__builtin_lsx_vhsubw_h_b">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vhsubw_w_h : GCCBuiltin<"__builtin_lsx_vhsubw_w_h">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vhsubw_d_w : GCCBuiltin<"__builtin_lsx_vhsubw_d_w">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vhaddw_hu_bu : GCCBuiltin<"__builtin_lsx_vhaddw_hu_bu">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vhaddw_wu_hu : GCCBuiltin<"__builtin_lsx_vhaddw_wu_hu">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vhaddw_du_wu : GCCBuiltin<"__builtin_lsx_vhaddw_du_wu">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vhsubw_hu_bu : GCCBuiltin<"__builtin_lsx_vhsubw_hu_bu">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vhsubw_wu_hu : GCCBuiltin<"__builtin_lsx_vhsubw_wu_hu">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vhsubw_du_wu : GCCBuiltin<"__builtin_lsx_vhsubw_du_wu">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vadda_b : GCCBuiltin<"__builtin_lsx_vadda_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], ++ [Commutative, IntrNoMem]>; ++def int_loongarch_lsx_vadda_h : GCCBuiltin<"__builtin_lsx_vadda_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], ++ [Commutative, IntrNoMem]>; ++def int_loongarch_lsx_vadda_w : GCCBuiltin<"__builtin_lsx_vadda_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], ++ [Commutative, IntrNoMem]>; ++def int_loongarch_lsx_vadda_d : GCCBuiltin<"__builtin_lsx_vadda_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], ++ [Commutative, IntrNoMem]>; ++ ++def int_loongarch_lsx_vabsd_b : GCCBuiltin<"__builtin_lsx_vabsd_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vabsd_h : GCCBuiltin<"__builtin_lsx_vabsd_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vabsd_w : GCCBuiltin<"__builtin_lsx_vabsd_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vabsd_d : GCCBuiltin<"__builtin_lsx_vabsd_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vabsd_bu : GCCBuiltin<"__builtin_lsx_vabsd_bu">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vabsd_hu : GCCBuiltin<"__builtin_lsx_vabsd_hu">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vabsd_wu : GCCBuiltin<"__builtin_lsx_vabsd_wu">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vabsd_du : GCCBuiltin<"__builtin_lsx_vabsd_du">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vavg_b : GCCBuiltin<"__builtin_lsx_vavg_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], ++ [Commutative, IntrNoMem]>; ++def int_loongarch_lsx_vavg_h : GCCBuiltin<"__builtin_lsx_vavg_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], ++ [Commutative, IntrNoMem]>; ++def int_loongarch_lsx_vavg_w : GCCBuiltin<"__builtin_lsx_vavg_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], ++ [Commutative, IntrNoMem]>; ++def int_loongarch_lsx_vavg_d : GCCBuiltin<"__builtin_lsx_vavg_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], ++ [Commutative, IntrNoMem]>; ++ ++def int_loongarch_lsx_vavg_bu : GCCBuiltin<"__builtin_lsx_vavg_bu">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], ++ [Commutative, IntrNoMem]>; ++def int_loongarch_lsx_vavg_hu : GCCBuiltin<"__builtin_lsx_vavg_hu">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], ++ [Commutative, IntrNoMem]>; ++def int_loongarch_lsx_vavg_wu : GCCBuiltin<"__builtin_lsx_vavg_wu">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], ++ [Commutative, IntrNoMem]>; ++def int_loongarch_lsx_vavg_du : GCCBuiltin<"__builtin_lsx_vavg_du">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], ++ [Commutative, IntrNoMem]>; ++ ++def int_loongarch_lsx_vavgr_b : GCCBuiltin<"__builtin_lsx_vavgr_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], ++ [Commutative, IntrNoMem]>; ++def int_loongarch_lsx_vavgr_h : GCCBuiltin<"__builtin_lsx_vavgr_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], ++ [Commutative, IntrNoMem]>; ++def int_loongarch_lsx_vavgr_w : GCCBuiltin<"__builtin_lsx_vavgr_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], ++ [Commutative, IntrNoMem]>; ++def int_loongarch_lsx_vavgr_d : GCCBuiltin<"__builtin_lsx_vavgr_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], ++ [Commutative, IntrNoMem]>; ++ ++def int_loongarch_lsx_vavgr_bu : GCCBuiltin<"__builtin_lsx_vavgr_bu">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], ++ [Commutative, IntrNoMem]>; ++def int_loongarch_lsx_vavgr_hu : GCCBuiltin<"__builtin_lsx_vavgr_hu">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], ++ [Commutative, IntrNoMem]>; ++def int_loongarch_lsx_vavgr_wu : GCCBuiltin<"__builtin_lsx_vavgr_wu">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], ++ [Commutative, IntrNoMem]>; ++def int_loongarch_lsx_vavgr_du : GCCBuiltin<"__builtin_lsx_vavgr_du">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], ++ [Commutative, IntrNoMem]>; ++ ++def int_loongarch_lsx_vsrlr_b : GCCBuiltin<"__builtin_lsx_vsrlr_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsrlr_h : GCCBuiltin<"__builtin_lsx_vsrlr_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsrlr_w : GCCBuiltin<"__builtin_lsx_vsrlr_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsrlr_d : GCCBuiltin<"__builtin_lsx_vsrlr_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vsrar_b : GCCBuiltin<"__builtin_lsx_vsrar_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsrar_h : GCCBuiltin<"__builtin_lsx_vsrar_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsrar_w : GCCBuiltin<"__builtin_lsx_vsrar_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsrar_d : GCCBuiltin<"__builtin_lsx_vsrar_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vfmax_s : GCCBuiltin<"__builtin_lsx_vfmax_s">, ++ Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vfmax_d : GCCBuiltin<"__builtin_lsx_vfmax_d">, ++ Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vfmin_s : GCCBuiltin<"__builtin_lsx_vfmin_s">, ++ Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vfmin_d : GCCBuiltin<"__builtin_lsx_vfmin_d">, ++ Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vfmaxa_s : GCCBuiltin<"__builtin_lsx_vfmaxa_s">, ++ Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vfmaxa_d : GCCBuiltin<"__builtin_lsx_vfmaxa_d">, ++ Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vfmina_s : GCCBuiltin<"__builtin_lsx_vfmina_s">, ++ Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vfmina_d : GCCBuiltin<"__builtin_lsx_vfmina_d">, ++ Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vfclass_s : GCCBuiltin<"__builtin_lsx_vfclass_s">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vfclass_d : GCCBuiltin<"__builtin_lsx_vfclass_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vfrecip_s : GCCBuiltin<"__builtin_lsx_vfrecip_s">, ++ Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vfrecip_d : GCCBuiltin<"__builtin_lsx_vfrecip_d">, ++ Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vfrsqrt_s : GCCBuiltin<"__builtin_lsx_vfrsqrt_s">, ++ Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vfrsqrt_d : GCCBuiltin<"__builtin_lsx_vfrsqrt_d">, ++ Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vfcvtl_s_h : GCCBuiltin<"__builtin_lsx_vfcvtl_s_h">, ++ Intrinsic<[llvm_v4f32_ty], [llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vfcvtl_d_s : GCCBuiltin<"__builtin_lsx_vfcvtl_d_s">, ++ Intrinsic<[llvm_v2f64_ty], [llvm_v4f32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vfcvth_s_h : GCCBuiltin<"__builtin_lsx_vfcvth_s_h">, ++ Intrinsic<[llvm_v4f32_ty], [llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vfcvth_d_s : GCCBuiltin<"__builtin_lsx_vfcvth_d_s">, ++ Intrinsic<[llvm_v2f64_ty], [llvm_v4f32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vftint_w_s : GCCBuiltin<"__builtin_lsx_vftint_w_s">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vftint_l_d : GCCBuiltin<"__builtin_lsx_vftint_l_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vftint_wu_s : GCCBuiltin<"__builtin_lsx_vftint_wu_s">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vftint_lu_d : GCCBuiltin<"__builtin_lsx_vftint_lu_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vsrlri_b : GCCBuiltin<"__builtin_lsx_vsrlri_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsrlri_h : GCCBuiltin<"__builtin_lsx_vsrlri_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsrlri_w : GCCBuiltin<"__builtin_lsx_vsrlri_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsrlri_d : GCCBuiltin<"__builtin_lsx_vsrlri_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vsrari_b : GCCBuiltin<"__builtin_lsx_vsrari_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsrari_h : GCCBuiltin<"__builtin_lsx_vsrari_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsrari_w : GCCBuiltin<"__builtin_lsx_vsrari_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsrari_d : GCCBuiltin<"__builtin_lsx_vsrari_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vsat_b : GCCBuiltin<"__builtin_lsx_vsat_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsat_h : GCCBuiltin<"__builtin_lsx_vsat_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsat_w : GCCBuiltin<"__builtin_lsx_vsat_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsat_d : GCCBuiltin<"__builtin_lsx_vsat_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vsat_bu : GCCBuiltin<"__builtin_lsx_vsat_bu">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsat_hu : GCCBuiltin<"__builtin_lsx_vsat_hu">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsat_wu : GCCBuiltin<"__builtin_lsx_vsat_wu">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsat_du : GCCBuiltin<"__builtin_lsx_vsat_du">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vsrlni_b_h : GCCBuiltin<"__builtin_lsx_vsrlni_b_h">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsrlni_h_w : GCCBuiltin<"__builtin_lsx_vsrlni_h_w">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsrlni_w_d : GCCBuiltin<"__builtin_lsx_vsrlni_w_d">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsrlni_d_q : GCCBuiltin<"__builtin_lsx_vsrlni_d_q">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vssrlni_b_h : GCCBuiltin<"__builtin_lsx_vssrlni_b_h">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vssrlni_h_w : GCCBuiltin<"__builtin_lsx_vssrlni_h_w">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vssrlni_w_d : GCCBuiltin<"__builtin_lsx_vssrlni_w_d">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vssrlni_d_q : GCCBuiltin<"__builtin_lsx_vssrlni_d_q">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vssrlrni_bu_h : GCCBuiltin<"__builtin_lsx_vssrlrni_bu_h">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vssrlrni_hu_w : GCCBuiltin<"__builtin_lsx_vssrlrni_hu_w">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vssrlrni_wu_d : GCCBuiltin<"__builtin_lsx_vssrlrni_wu_d">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vssrlrni_du_q : GCCBuiltin<"__builtin_lsx_vssrlrni_du_q">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vsrarni_b_h : GCCBuiltin<"__builtin_lsx_vsrarni_b_h">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsrarni_h_w : GCCBuiltin<"__builtin_lsx_vsrarni_h_w">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsrarni_w_d : GCCBuiltin<"__builtin_lsx_vsrarni_w_d">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsrarni_d_q : GCCBuiltin<"__builtin_lsx_vsrarni_d_q">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vssrani_b_h : GCCBuiltin<"__builtin_lsx_vssrani_b_h">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vssrani_h_w : GCCBuiltin<"__builtin_lsx_vssrani_h_w">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vssrani_w_d : GCCBuiltin<"__builtin_lsx_vssrani_w_d">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vssrani_d_q : GCCBuiltin<"__builtin_lsx_vssrani_d_q">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vssrani_bu_h : GCCBuiltin<"__builtin_lsx_vssrani_bu_h">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vssrani_hu_w : GCCBuiltin<"__builtin_lsx_vssrani_hu_w">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vssrani_wu_d : GCCBuiltin<"__builtin_lsx_vssrani_wu_d">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vssrani_du_q : GCCBuiltin<"__builtin_lsx_vssrani_du_q">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vssrarni_b_h : GCCBuiltin<"__builtin_lsx_vssrarni_b_h">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vssrarni_h_w : GCCBuiltin<"__builtin_lsx_vssrarni_h_w">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vssrarni_w_d : GCCBuiltin<"__builtin_lsx_vssrarni_w_d">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vssrarni_d_q : GCCBuiltin<"__builtin_lsx_vssrarni_d_q">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vssrarni_bu_h : GCCBuiltin<"__builtin_lsx_vssrarni_bu_h">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vssrarni_hu_w : GCCBuiltin<"__builtin_lsx_vssrarni_hu_w">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vssrarni_wu_d : GCCBuiltin<"__builtin_lsx_vssrarni_wu_d">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vssrarni_du_q : GCCBuiltin<"__builtin_lsx_vssrarni_du_q">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vssrlni_bu_h : GCCBuiltin<"__builtin_lsx_vssrlni_bu_h">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vssrlni_hu_w : GCCBuiltin<"__builtin_lsx_vssrlni_hu_w">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vssrlni_wu_d : GCCBuiltin<"__builtin_lsx_vssrlni_wu_d">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vssrlni_du_q : GCCBuiltin<"__builtin_lsx_vssrlni_du_q">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vseq_b : GCCBuiltin<"__builtin_lsx_vseq_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vseq_h : GCCBuiltin<"__builtin_lsx_vseq_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vseq_w : GCCBuiltin<"__builtin_lsx_vseq_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vseq_d : GCCBuiltin<"__builtin_lsx_vseq_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vsle_b : GCCBuiltin<"__builtin_lsx_vsle_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsle_h : GCCBuiltin<"__builtin_lsx_vsle_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsle_w : GCCBuiltin<"__builtin_lsx_vsle_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsle_d : GCCBuiltin<"__builtin_lsx_vsle_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vsle_bu : GCCBuiltin<"__builtin_lsx_vsle_bu">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsle_hu : GCCBuiltin<"__builtin_lsx_vsle_hu">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsle_wu : GCCBuiltin<"__builtin_lsx_vsle_wu">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsle_du : GCCBuiltin<"__builtin_lsx_vsle_du">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vslt_b : GCCBuiltin<"__builtin_lsx_vslt_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vslt_h : GCCBuiltin<"__builtin_lsx_vslt_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vslt_w : GCCBuiltin<"__builtin_lsx_vslt_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vslt_d : GCCBuiltin<"__builtin_lsx_vslt_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vslt_bu : GCCBuiltin<"__builtin_lsx_vslt_bu">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vslt_hu : GCCBuiltin<"__builtin_lsx_vslt_hu">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vslt_wu : GCCBuiltin<"__builtin_lsx_vslt_wu">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vslt_du : GCCBuiltin<"__builtin_lsx_vslt_du">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vadd_b : GCCBuiltin<"__builtin_lsx_vadd_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], ++ [Commutative, IntrNoMem]>; ++def int_loongarch_lsx_vadd_h : GCCBuiltin<"__builtin_lsx_vadd_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], ++ [Commutative, IntrNoMem]>; ++def int_loongarch_lsx_vadd_w : GCCBuiltin<"__builtin_lsx_vadd_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], ++ [Commutative, IntrNoMem]>; ++def int_loongarch_lsx_vadd_d : GCCBuiltin<"__builtin_lsx_vadd_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], ++ [Commutative, IntrNoMem]>; ++ ++def int_loongarch_lsx_vsub_b : GCCBuiltin<"__builtin_lsx_vsub_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsub_h : GCCBuiltin<"__builtin_lsx_vsub_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsub_w : GCCBuiltin<"__builtin_lsx_vsub_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsub_d : GCCBuiltin<"__builtin_lsx_vsub_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vmax_b : GCCBuiltin<"__builtin_lsx_vmax_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmax_h : GCCBuiltin<"__builtin_lsx_vmax_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmax_w : GCCBuiltin<"__builtin_lsx_vmax_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmax_d : GCCBuiltin<"__builtin_lsx_vmax_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vmin_b : GCCBuiltin<"__builtin_lsx_vmin_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmin_h : GCCBuiltin<"__builtin_lsx_vmin_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmin_w : GCCBuiltin<"__builtin_lsx_vmin_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmin_d : GCCBuiltin<"__builtin_lsx_vmin_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vmax_bu : GCCBuiltin<"__builtin_lsx_vmax_bu">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmax_hu : GCCBuiltin<"__builtin_lsx_vmax_hu">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmax_wu : GCCBuiltin<"__builtin_lsx_vmax_wu">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmax_du : GCCBuiltin<"__builtin_lsx_vmax_du">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vmin_bu : GCCBuiltin<"__builtin_lsx_vmin_bu">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmin_hu : GCCBuiltin<"__builtin_lsx_vmin_hu">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmin_wu : GCCBuiltin<"__builtin_lsx_vmin_wu">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmin_du : GCCBuiltin<"__builtin_lsx_vmin_du">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vmul_b : GCCBuiltin<"__builtin_lsx_vmul_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmul_h : GCCBuiltin<"__builtin_lsx_vmul_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmul_w : GCCBuiltin<"__builtin_lsx_vmul_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmul_d : GCCBuiltin<"__builtin_lsx_vmul_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vmadd_b : GCCBuiltin<"__builtin_lsx_vmadd_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty], ++ [IntrNoMem]>; ++def int_loongarch_lsx_vmadd_h : GCCBuiltin<"__builtin_lsx_vmadd_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty], ++ [IntrNoMem]>; ++def int_loongarch_lsx_vmadd_w : GCCBuiltin<"__builtin_lsx_vmadd_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty], ++ [IntrNoMem]>; ++def int_loongarch_lsx_vmadd_d : GCCBuiltin<"__builtin_lsx_vmadd_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_v2i64_ty], ++ [IntrNoMem]>; ++ ++def int_loongarch_lsx_vmsub_b : GCCBuiltin<"__builtin_lsx_vmsub_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty], ++ [IntrNoMem]>; ++def int_loongarch_lsx_vmsub_h : GCCBuiltin<"__builtin_lsx_vmsub_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty], ++ [IntrNoMem]>; ++def int_loongarch_lsx_vmsub_w : GCCBuiltin<"__builtin_lsx_vmsub_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty], ++ [IntrNoMem]>; ++def int_loongarch_lsx_vmsub_d : GCCBuiltin<"__builtin_lsx_vmsub_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_v2i64_ty], ++ [IntrNoMem]>; ++ ++def int_loongarch_lsx_vdiv_b : GCCBuiltin<"__builtin_lsx_vdiv_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vdiv_h : GCCBuiltin<"__builtin_lsx_vdiv_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vdiv_w : GCCBuiltin<"__builtin_lsx_vdiv_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vdiv_d : GCCBuiltin<"__builtin_lsx_vdiv_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vmod_b : GCCBuiltin<"__builtin_lsx_vmod_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmod_h : GCCBuiltin<"__builtin_lsx_vmod_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmod_w : GCCBuiltin<"__builtin_lsx_vmod_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmod_d : GCCBuiltin<"__builtin_lsx_vmod_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vdiv_bu : GCCBuiltin<"__builtin_lsx_vdiv_bu">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vdiv_hu : GCCBuiltin<"__builtin_lsx_vdiv_hu">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vdiv_wu : GCCBuiltin<"__builtin_lsx_vdiv_wu">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vdiv_du : GCCBuiltin<"__builtin_lsx_vdiv_du">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vsll_b : GCCBuiltin<"__builtin_lsx_vsll_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsll_h : GCCBuiltin<"__builtin_lsx_vsll_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsll_w : GCCBuiltin<"__builtin_lsx_vsll_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsll_d : GCCBuiltin<"__builtin_lsx_vsll_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vsrl_b : GCCBuiltin<"__builtin_lsx_vsrl_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsrl_h : GCCBuiltin<"__builtin_lsx_vsrl_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsrl_w : GCCBuiltin<"__builtin_lsx_vsrl_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsrl_d : GCCBuiltin<"__builtin_lsx_vsrl_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vbitclr_b : GCCBuiltin<"__builtin_lsx_vbitclr_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vbitclr_h : GCCBuiltin<"__builtin_lsx_vbitclr_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vbitclr_w : GCCBuiltin<"__builtin_lsx_vbitclr_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vbitclr_d : GCCBuiltin<"__builtin_lsx_vbitclr_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vbitset_b : GCCBuiltin<"__builtin_lsx_vbitset_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vbitset_h : GCCBuiltin<"__builtin_lsx_vbitset_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vbitset_w : GCCBuiltin<"__builtin_lsx_vbitset_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vbitset_d : GCCBuiltin<"__builtin_lsx_vbitset_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vpackev_b : GCCBuiltin<"__builtin_lsx_vpackev_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vpackev_h : GCCBuiltin<"__builtin_lsx_vpackev_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vpackev_w : GCCBuiltin<"__builtin_lsx_vpackev_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vpackev_d : GCCBuiltin<"__builtin_lsx_vpackev_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vpackod_b : GCCBuiltin<"__builtin_lsx_vpackod_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vpackod_h : GCCBuiltin<"__builtin_lsx_vpackod_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vpackod_w : GCCBuiltin<"__builtin_lsx_vpackod_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vpackod_d : GCCBuiltin<"__builtin_lsx_vpackod_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vilvl_b : GCCBuiltin<"__builtin_lsx_vilvl_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vilvl_h : GCCBuiltin<"__builtin_lsx_vilvl_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vilvl_w : GCCBuiltin<"__builtin_lsx_vilvl_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vilvl_d : GCCBuiltin<"__builtin_lsx_vilvl_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vilvh_b : GCCBuiltin<"__builtin_lsx_vilvh_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vilvh_h : GCCBuiltin<"__builtin_lsx_vilvh_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vilvh_w : GCCBuiltin<"__builtin_lsx_vilvh_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vilvh_d : GCCBuiltin<"__builtin_lsx_vilvh_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vpickev_b : GCCBuiltin<"__builtin_lsx_vpickev_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vpickev_h : GCCBuiltin<"__builtin_lsx_vpickev_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vpickev_w : GCCBuiltin<"__builtin_lsx_vpickev_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vpickev_d : GCCBuiltin<"__builtin_lsx_vpickev_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vand_v : GCCBuiltin<"__builtin_lsx_vand_v">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vor_v : GCCBuiltin<"__builtin_lsx_vor_v">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vbitrev_b : GCCBuiltin<"__builtin_lsx_vbitrev_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vbitrev_h : GCCBuiltin<"__builtin_lsx_vbitrev_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vbitrev_w : GCCBuiltin<"__builtin_lsx_vbitrev_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vbitrev_d : GCCBuiltin<"__builtin_lsx_vbitrev_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vmod_bu : GCCBuiltin<"__builtin_lsx_vmod_bu">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmod_hu : GCCBuiltin<"__builtin_lsx_vmod_hu">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmod_wu : GCCBuiltin<"__builtin_lsx_vmod_wu">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmod_du : GCCBuiltin<"__builtin_lsx_vmod_du">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vpickod_b : GCCBuiltin<"__builtin_lsx_vpickod_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vpickod_h : GCCBuiltin<"__builtin_lsx_vpickod_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vpickod_w : GCCBuiltin<"__builtin_lsx_vpickod_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vpickod_d : GCCBuiltin<"__builtin_lsx_vpickod_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vreplve_b : GCCBuiltin<"__builtin_lsx_vreplve_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vreplve_h : GCCBuiltin<"__builtin_lsx_vreplve_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vreplve_w : GCCBuiltin<"__builtin_lsx_vreplve_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vreplve_d : GCCBuiltin<"__builtin_lsx_vreplve_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vsra_b : GCCBuiltin<"__builtin_lsx_vsra_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsra_h : GCCBuiltin<"__builtin_lsx_vsra_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsra_w : GCCBuiltin<"__builtin_lsx_vsra_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsra_d : GCCBuiltin<"__builtin_lsx_vsra_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vxor_v : GCCBuiltin<"__builtin_lsx_vxor_v">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vnor_v : GCCBuiltin<"__builtin_lsx_vnor_v">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vfadd_s : GCCBuiltin<"__builtin_lsx_vfadd_s">, ++ Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vfadd_d : GCCBuiltin<"__builtin_lsx_vfadd_d">, ++ Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vfsub_s : GCCBuiltin<"__builtin_lsx_vfsub_s">, ++ Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vfsub_d : GCCBuiltin<"__builtin_lsx_vfsub_d">, ++ Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vfmul_s : GCCBuiltin<"__builtin_lsx_vfmul_s">, ++ Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vfmul_d : GCCBuiltin<"__builtin_lsx_vfmul_d">, ++ Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vshuf_h : GCCBuiltin<"__builtin_lsx_vshuf_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty], ++ [IntrNoMem]>; ++def int_loongarch_lsx_vshuf_w : GCCBuiltin<"__builtin_lsx_vshuf_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty], ++ [IntrNoMem]>; ++def int_loongarch_lsx_vshuf_d : GCCBuiltin<"__builtin_lsx_vshuf_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_v2i64_ty], ++ [IntrNoMem]>; ++ ++def int_loongarch_lsx_vseqi_b : GCCBuiltin<"__builtin_lsx_vseqi_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vseqi_h : GCCBuiltin<"__builtin_lsx_vseqi_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vseqi_w : GCCBuiltin<"__builtin_lsx_vseqi_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vseqi_d : GCCBuiltin<"__builtin_lsx_vseqi_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vslei_b : GCCBuiltin<"__builtin_lsx_vslei_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vslei_h : GCCBuiltin<"__builtin_lsx_vslei_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vslei_w : GCCBuiltin<"__builtin_lsx_vslei_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vslei_d : GCCBuiltin<"__builtin_lsx_vslei_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vslei_bu : GCCBuiltin<"__builtin_lsx_vslei_bu">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vslei_hu : GCCBuiltin<"__builtin_lsx_vslei_hu">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vslei_wu : GCCBuiltin<"__builtin_lsx_vslei_wu">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vslei_du : GCCBuiltin<"__builtin_lsx_vslei_du">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vslti_b : GCCBuiltin<"__builtin_lsx_vslti_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vslti_h : GCCBuiltin<"__builtin_lsx_vslti_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vslti_w : GCCBuiltin<"__builtin_lsx_vslti_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vslti_d : GCCBuiltin<"__builtin_lsx_vslti_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vslti_bu : GCCBuiltin<"__builtin_lsx_vslti_bu">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vslti_hu : GCCBuiltin<"__builtin_lsx_vslti_hu">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vslti_wu : GCCBuiltin<"__builtin_lsx_vslti_wu">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vslti_du : GCCBuiltin<"__builtin_lsx_vslti_du">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vaddi_bu : GCCBuiltin<"__builtin_lsx_vaddi_bu">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], ++ [Commutative, IntrNoMem]>; ++def int_loongarch_lsx_vaddi_hu : GCCBuiltin<"__builtin_lsx_vaddi_hu">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], ++ [Commutative, IntrNoMem]>; ++def int_loongarch_lsx_vaddi_wu : GCCBuiltin<"__builtin_lsx_vaddi_wu">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], ++ [Commutative, IntrNoMem]>; ++def int_loongarch_lsx_vaddi_du : GCCBuiltin<"__builtin_lsx_vaddi_du">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], ++ [Commutative, IntrNoMem]>; ++ ++def int_loongarch_lsx_vsubi_bu : GCCBuiltin<"__builtin_lsx_vsubi_bu">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsubi_hu : GCCBuiltin<"__builtin_lsx_vsubi_hu">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsubi_wu : GCCBuiltin<"__builtin_lsx_vsubi_wu">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsubi_du : GCCBuiltin<"__builtin_lsx_vsubi_du">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vmaxi_b : GCCBuiltin<"__builtin_lsx_vmaxi_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmaxi_h : GCCBuiltin<"__builtin_lsx_vmaxi_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmaxi_w : GCCBuiltin<"__builtin_lsx_vmaxi_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmaxi_d : GCCBuiltin<"__builtin_lsx_vmaxi_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vmini_b : GCCBuiltin<"__builtin_lsx_vmini_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmini_h : GCCBuiltin<"__builtin_lsx_vmini_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmini_w : GCCBuiltin<"__builtin_lsx_vmini_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmini_d : GCCBuiltin<"__builtin_lsx_vmini_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vmaxi_bu : GCCBuiltin<"__builtin_lsx_vmaxi_bu">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmaxi_hu : GCCBuiltin<"__builtin_lsx_vmaxi_hu">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmaxi_wu : GCCBuiltin<"__builtin_lsx_vmaxi_wu">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmaxi_du : GCCBuiltin<"__builtin_lsx_vmaxi_du">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vmini_bu : GCCBuiltin<"__builtin_lsx_vmini_bu">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmini_hu : GCCBuiltin<"__builtin_lsx_vmini_hu">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmini_wu : GCCBuiltin<"__builtin_lsx_vmini_wu">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vmini_du : GCCBuiltin<"__builtin_lsx_vmini_du">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vclz_b : GCCBuiltin<"__builtin_lsx_vclz_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vclz_h : GCCBuiltin<"__builtin_lsx_vclz_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vclz_w : GCCBuiltin<"__builtin_lsx_vclz_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vclz_d : GCCBuiltin<"__builtin_lsx_vclz_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vpcnt_b : GCCBuiltin<"__builtin_lsx_vpcnt_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vpcnt_h : GCCBuiltin<"__builtin_lsx_vpcnt_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vpcnt_w : GCCBuiltin<"__builtin_lsx_vpcnt_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vpcnt_d : GCCBuiltin<"__builtin_lsx_vpcnt_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vfsqrt_s : GCCBuiltin<"__builtin_lsx_vfsqrt_s">, ++ Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vfsqrt_d : GCCBuiltin<"__builtin_lsx_vfsqrt_d">, ++ Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vfrint_s : GCCBuiltin<"__builtin_lsx_vfrint_s">, ++ Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vfrint_d : GCCBuiltin<"__builtin_lsx_vfrint_d">, ++ Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vffint_s_w : GCCBuiltin<"__builtin_lsx_vffint_s_w">, ++ Intrinsic<[llvm_v4f32_ty], [llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vffint_d_l : GCCBuiltin<"__builtin_lsx_vffint_d_l">, ++ Intrinsic<[llvm_v2f64_ty], [llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vffint_s_wu : GCCBuiltin<"__builtin_lsx_vffint_s_wu">, ++ Intrinsic<[llvm_v4f32_ty], [llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vffint_d_lu : GCCBuiltin<"__builtin_lsx_vffint_d_lu">, ++ Intrinsic<[llvm_v2f64_ty], [llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vftintrz_wu_s : GCCBuiltin<"__builtin_lsx_vftintrz_wu_s">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vftintrz_lu_d : GCCBuiltin<"__builtin_lsx_vftintrz_lu_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vreplgr2vr_b : GCCBuiltin<"__builtin_lsx_vreplgr2vr_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vreplgr2vr_h : GCCBuiltin<"__builtin_lsx_vreplgr2vr_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vreplgr2vr_w : GCCBuiltin<"__builtin_lsx_vreplgr2vr_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vreplgr2vr_d : GCCBuiltin<"__builtin_lsx_vreplgr2vr_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vinsgr2vr_b : GCCBuiltin<"__builtin_lsx_vinsgr2vr_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty, llvm_i32_ty], ++ [IntrNoMem]>; ++def int_loongarch_lsx_vinsgr2vr_h : GCCBuiltin<"__builtin_lsx_vinsgr2vr_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty, llvm_i32_ty], ++ [IntrNoMem]>; ++def int_loongarch_lsx_vinsgr2vr_w : GCCBuiltin<"__builtin_lsx_vinsgr2vr_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty, llvm_i32_ty], ++ [IntrNoMem]>; ++def int_loongarch_lsx_vinsgr2vr_d : GCCBuiltin<"__builtin_lsx_vinsgr2vr_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i64_ty, llvm_i32_ty], ++ [IntrNoMem]>; ++ ++def int_loongarch_lsx_vfdiv_s : GCCBuiltin<"__builtin_lsx_vfdiv_s">, ++ Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vfdiv_d : GCCBuiltin<"__builtin_lsx_vfdiv_d">, ++ Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vslli_b : GCCBuiltin<"__builtin_lsx_vslli_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vslli_h : GCCBuiltin<"__builtin_lsx_vslli_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vslli_w : GCCBuiltin<"__builtin_lsx_vslli_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vslli_d : GCCBuiltin<"__builtin_lsx_vslli_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vsrli_b : GCCBuiltin<"__builtin_lsx_vsrli_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsrli_h : GCCBuiltin<"__builtin_lsx_vsrli_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsrli_w : GCCBuiltin<"__builtin_lsx_vsrli_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsrli_d : GCCBuiltin<"__builtin_lsx_vsrli_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vsrai_b : GCCBuiltin<"__builtin_lsx_vsrai_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsrai_h : GCCBuiltin<"__builtin_lsx_vsrai_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsrai_w : GCCBuiltin<"__builtin_lsx_vsrai_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vsrai_d : GCCBuiltin<"__builtin_lsx_vsrai_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vshuf4i_b : GCCBuiltin<"__builtin_lsx_vshuf4i_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vshuf4i_h : GCCBuiltin<"__builtin_lsx_vshuf4i_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vshuf4i_w : GCCBuiltin<"__builtin_lsx_vshuf4i_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vshuf4i_d : GCCBuiltin<"__builtin_lsx_vshuf4i_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vrotr_b : GCCBuiltin<"__builtin_lsx_vrotr_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vrotr_h : GCCBuiltin<"__builtin_lsx_vrotr_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vrotr_w : GCCBuiltin<"__builtin_lsx_vrotr_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vrotr_d : GCCBuiltin<"__builtin_lsx_vrotr_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vrotri_b : GCCBuiltin<"__builtin_lsx_vrotri_b">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vrotri_h : GCCBuiltin<"__builtin_lsx_vrotri_h">, ++ Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vrotri_w : GCCBuiltin<"__builtin_lsx_vrotri_w">, ++ Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_vrotri_d : GCCBuiltin<"__builtin_lsx_vrotri_d">, ++ Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_vld : GCCBuiltin<"__builtin_lsx_vld">, ++ Intrinsic<[llvm_v16i8_ty], [llvm_ptr_ty, llvm_i32_ty], ++ [IntrReadMem, IntrArgMemOnly]>; ++ ++def int_loongarch_lsx_vst : GCCBuiltin<"__builtin_lsx_vst">, ++ Intrinsic<[], [llvm_v16i8_ty, llvm_ptr_ty, llvm_i32_ty], ++ [IntrArgMemOnly]>; ++ ++def int_loongarch_lsx_bz_v : GCCBuiltin<"__builtin_lsx_bz_v">, ++ Intrinsic<[llvm_i32_ty], [llvm_v16i8_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_bnz_v : GCCBuiltin<"__builtin_lsx_bnz_v">, ++ Intrinsic<[llvm_i32_ty], [llvm_v16i8_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_bz_b : GCCBuiltin<"__builtin_lsx_bz_b">, ++ Intrinsic<[llvm_i32_ty], [llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_bz_h : GCCBuiltin<"__builtin_lsx_bz_h">, ++ Intrinsic<[llvm_i32_ty], [llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_bz_w : GCCBuiltin<"__builtin_lsx_bz_w">, ++ Intrinsic<[llvm_i32_ty], [llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_bz_d : GCCBuiltin<"__builtin_lsx_bz_d">, ++ Intrinsic<[llvm_i32_ty], [llvm_v2i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lsx_bnz_b : GCCBuiltin<"__builtin_lsx_bnz_b">, ++ Intrinsic<[llvm_i32_ty], [llvm_v16i8_ty], [IntrNoMem]>; ++def int_loongarch_lsx_bnz_h : GCCBuiltin<"__builtin_lsx_bnz_h">, ++ Intrinsic<[llvm_i32_ty], [llvm_v8i16_ty], [IntrNoMem]>; ++def int_loongarch_lsx_bnz_w : GCCBuiltin<"__builtin_lsx_bnz_w">, ++ Intrinsic<[llvm_i32_ty], [llvm_v4i32_ty], [IntrNoMem]>; ++def int_loongarch_lsx_bnz_d : GCCBuiltin<"__builtin_lsx_bnz_d">, ++ Intrinsic<[llvm_i32_ty], [llvm_v2i64_ty], [IntrNoMem]>; ++ ++//===----------------------------------------------------------------------===// ++//LoongArch LASX ++ ++def int_loongarch_lasx_xvfmadd_s : GCCBuiltin<"__builtin_lasx_xvfmadd_s">, ++ Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty], ++ [IntrNoMem]>; ++def int_loongarch_lasx_xvfmadd_d : GCCBuiltin<"__builtin_lasx_xvfmadd_d">, ++ Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty, llvm_v4f64_ty], ++ [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvfmsub_s : GCCBuiltin<"__builtin_lasx_xvfmsub_s">, ++ Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty], ++ [IntrNoMem]>; ++def int_loongarch_lasx_xvfmsub_d : GCCBuiltin<"__builtin_lasx_xvfmsub_d">, ++ Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty, llvm_v4f64_ty], ++ [IntrNoMem]>; ++ ++ ++def int_loongarch_lasx_xvfnmadd_s : GCCBuiltin<"__builtin_lasx_xvfnmadd_s">, ++ Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty], ++ [IntrNoMem]>; ++def int_loongarch_lasx_xvfnmadd_d : GCCBuiltin<"__builtin_lasx_xvfnmadd_d">, ++ Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty, llvm_v4f64_ty], ++ [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvfnmsub_s : GCCBuiltin<"__builtin_lasx_xvfnmsub_s">, ++ Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty], ++ [IntrNoMem]>; ++def int_loongarch_lasx_xvfnmsub_d : GCCBuiltin<"__builtin_lasx_xvfnmsub_d">, ++ Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty, llvm_v4f64_ty], ++ [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvclo_b : GCCBuiltin<"__builtin_lasx_xvclo_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvclo_h : GCCBuiltin<"__builtin_lasx_xvclo_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvclo_w : GCCBuiltin<"__builtin_lasx_xvclo_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvclo_d : GCCBuiltin<"__builtin_lasx_xvclo_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvflogb_s : GCCBuiltin<"__builtin_lasx_xvflogb_s">, ++ Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvflogb_d : GCCBuiltin<"__builtin_lasx_xvflogb_d">, ++ Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvpickve2gr_w : GCCBuiltin<"__builtin_lasx_xvpickve2gr_w">, ++ Intrinsic<[llvm_i32_ty], [llvm_v8i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvpickve2gr_d : GCCBuiltin<"__builtin_lasx_xvpickve2gr_d">, ++ Intrinsic<[llvm_i64_ty], [llvm_v4i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvpickve2gr_wu : GCCBuiltin<"__builtin_lasx_xvpickve2gr_wu">, ++ Intrinsic<[llvm_i32_ty], [llvm_v8i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvpickve2gr_du : GCCBuiltin<"__builtin_lasx_xvpickve2gr_du">, ++ Intrinsic<[llvm_i64_ty], [llvm_v4i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvmskltz_b : GCCBuiltin<"__builtin_lasx_xvmskltz_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmskltz_h : GCCBuiltin<"__builtin_lasx_xvmskltz_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmskltz_w : GCCBuiltin<"__builtin_lasx_xvmskltz_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmskltz_d : GCCBuiltin<"__builtin_lasx_xvmskltz_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvfcmp_caf_s : GCCBuiltin<"__builtin_lasx_xvfcmp_caf_s">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8f32_ty, llvm_v8f32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvfcmp_caf_d : GCCBuiltin<"__builtin_lasx_xvfcmp_caf_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4f64_ty, llvm_v4f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvfcmp_cor_s : GCCBuiltin<"__builtin_lasx_xvfcmp_cor_s">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8f32_ty, llvm_v8f32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvfcmp_cor_d : GCCBuiltin<"__builtin_lasx_xvfcmp_cor_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4f64_ty, llvm_v4f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvfcmp_cun_s : GCCBuiltin<"__builtin_lasx_xvfcmp_cun_s">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8f32_ty, llvm_v8f32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvfcmp_cun_d : GCCBuiltin<"__builtin_lasx_xvfcmp_cun_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4f64_ty, llvm_v4f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvfcmp_cune_s : GCCBuiltin<"__builtin_lasx_xvfcmp_cune_s">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8f32_ty, llvm_v8f32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvfcmp_cune_d : GCCBuiltin<"__builtin_lasx_xvfcmp_cune_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4f64_ty, llvm_v4f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvfcmp_cueq_s : GCCBuiltin<"__builtin_lasx_xvfcmp_cueq_s">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8f32_ty, llvm_v8f32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvfcmp_cueq_d : GCCBuiltin<"__builtin_lasx_xvfcmp_cueq_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4f64_ty, llvm_v4f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvfcmp_ceq_s : GCCBuiltin<"__builtin_lasx_xvfcmp_ceq_s">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8f32_ty, llvm_v8f32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvfcmp_ceq_d : GCCBuiltin<"__builtin_lasx_xvfcmp_ceq_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4f64_ty, llvm_v4f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvfcmp_cne_s : GCCBuiltin<"__builtin_lasx_xvfcmp_cne_s">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8f32_ty, llvm_v8f32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvfcmp_cne_d : GCCBuiltin<"__builtin_lasx_xvfcmp_cne_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4f64_ty, llvm_v4f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvfcmp_clt_s : GCCBuiltin<"__builtin_lasx_xvfcmp_clt_s">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8f32_ty, llvm_v8f32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvfcmp_clt_d : GCCBuiltin<"__builtin_lasx_xvfcmp_clt_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4f64_ty, llvm_v4f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvfcmp_cult_s : GCCBuiltin<"__builtin_lasx_xvfcmp_cult_s">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8f32_ty, llvm_v8f32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvfcmp_cult_d : GCCBuiltin<"__builtin_lasx_xvfcmp_cult_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4f64_ty, llvm_v4f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvfcmp_cle_s : GCCBuiltin<"__builtin_lasx_xvfcmp_cle_s">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8f32_ty, llvm_v8f32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvfcmp_cle_d : GCCBuiltin<"__builtin_lasx_xvfcmp_cle_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4f64_ty, llvm_v4f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvfcmp_cule_s : GCCBuiltin<"__builtin_lasx_xvfcmp_cule_s">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8f32_ty, llvm_v8f32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvfcmp_cule_d : GCCBuiltin<"__builtin_lasx_xvfcmp_cule_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4f64_ty, llvm_v4f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvfcmp_saf_s : GCCBuiltin<"__builtin_lasx_xvfcmp_saf_s">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8f32_ty, llvm_v8f32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvfcmp_saf_d : GCCBuiltin<"__builtin_lasx_xvfcmp_saf_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4f64_ty, llvm_v4f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvfcmp_sor_s : GCCBuiltin<"__builtin_lasx_xvfcmp_sor_s">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8f32_ty, llvm_v8f32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvfcmp_sor_d : GCCBuiltin<"__builtin_lasx_xvfcmp_sor_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4f64_ty, llvm_v4f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvfcmp_sun_s : GCCBuiltin<"__builtin_lasx_xvfcmp_sun_s">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8f32_ty, llvm_v8f32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvfcmp_sun_d : GCCBuiltin<"__builtin_lasx_xvfcmp_sun_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4f64_ty, llvm_v4f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvfcmp_sune_s : GCCBuiltin<"__builtin_lasx_xvfcmp_sune_s">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8f32_ty, llvm_v8f32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvfcmp_sune_d : GCCBuiltin<"__builtin_lasx_xvfcmp_sune_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4f64_ty, llvm_v4f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvfcmp_sueq_s : GCCBuiltin<"__builtin_lasx_xvfcmp_sueq_s">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8f32_ty, llvm_v8f32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvfcmp_sueq_d : GCCBuiltin<"__builtin_lasx_xvfcmp_sueq_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4f64_ty, llvm_v4f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvfcmp_seq_s : GCCBuiltin<"__builtin_lasx_xvfcmp_seq_s">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8f32_ty, llvm_v8f32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvfcmp_seq_d : GCCBuiltin<"__builtin_lasx_xvfcmp_seq_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4f64_ty, llvm_v4f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvfcmp_sne_s : GCCBuiltin<"__builtin_lasx_xvfcmp_sne_s">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8f32_ty, llvm_v8f32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvfcmp_sne_d : GCCBuiltin<"__builtin_lasx_xvfcmp_sne_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4f64_ty, llvm_v4f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvfcmp_slt_s : GCCBuiltin<"__builtin_lasx_xvfcmp_slt_s">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8f32_ty, llvm_v8f32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvfcmp_slt_d : GCCBuiltin<"__builtin_lasx_xvfcmp_slt_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4f64_ty, llvm_v4f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvfcmp_sult_s : GCCBuiltin<"__builtin_lasx_xvfcmp_sult_s">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8f32_ty, llvm_v8f32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvfcmp_sult_d : GCCBuiltin<"__builtin_lasx_xvfcmp_sult_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4f64_ty, llvm_v4f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvfcmp_sle_s : GCCBuiltin<"__builtin_lasx_xvfcmp_sle_s">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8f32_ty, llvm_v8f32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvfcmp_sle_d : GCCBuiltin<"__builtin_lasx_xvfcmp_sle_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4f64_ty, llvm_v4f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvfcmp_sule_s : GCCBuiltin<"__builtin_lasx_xvfcmp_sule_s">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8f32_ty, llvm_v8f32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvfcmp_sule_d : GCCBuiltin<"__builtin_lasx_xvfcmp_sule_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4f64_ty, llvm_v4f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvbitsel_v : GCCBuiltin<"__builtin_lasx_xvbitsel_v">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvshuf_b : GCCBuiltin<"__builtin_lasx_xvshuf_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvldrepl_b : GCCBuiltin<"__builtin_lasx_xvldrepl_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_ptr_ty, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly]>; ++def int_loongarch_lasx_xvldrepl_h : GCCBuiltin<"__builtin_lasx_xvldrepl_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_ptr_ty, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly]>; ++def int_loongarch_lasx_xvldrepl_w : GCCBuiltin<"__builtin_lasx_xvldrepl_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_ptr_ty, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly]>; ++def int_loongarch_lasx_xvldrepl_d : GCCBuiltin<"__builtin_lasx_xvldrepl_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_ptr_ty, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly]>; ++ ++def int_loongarch_lasx_xvstelm_b : GCCBuiltin<"__builtin_lasx_xvstelm_b">, ++ Intrinsic<[], [llvm_v32i8_ty, llvm_ptr_ty, llvm_i32_ty, llvm_i32_ty], [IntrArgMemOnly]>; ++def int_loongarch_lasx_xvstelm_h : GCCBuiltin<"__builtin_lasx_xvstelm_h">, ++ Intrinsic<[], [llvm_v16i16_ty, llvm_ptr_ty, llvm_i32_ty, llvm_i32_ty], [IntrArgMemOnly]>; ++def int_loongarch_lasx_xvstelm_w : GCCBuiltin<"__builtin_lasx_xvstelm_w">, ++ Intrinsic<[], [llvm_v8i32_ty, llvm_ptr_ty, llvm_i32_ty, llvm_i32_ty], [IntrArgMemOnly]>; ++def int_loongarch_lasx_xvstelm_d : GCCBuiltin<"__builtin_lasx_xvstelm_d">, ++ Intrinsic<[], [llvm_v4i64_ty, llvm_ptr_ty, llvm_i32_ty, llvm_i32_ty], [IntrArgMemOnly]>; ++ ++def int_loongarch_lasx_xvldx : GCCBuiltin<"__builtin_lasx_xvldx">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_ptr_ty, llvm_i64_ty], ++ [IntrReadMem, IntrArgMemOnly]>; ++ ++def int_loongarch_lasx_xvstx : GCCBuiltin<"__builtin_lasx_xvstx">, ++ Intrinsic<[], [llvm_v32i8_ty, llvm_ptr_ty, llvm_i64_ty], ++ [IntrArgMemOnly]>; ++ ++def int_loongarch_lasx_xvaddwev_d_w : GCCBuiltin<"__builtin_lasx_xvaddwev_d_w">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvaddwev_w_h : GCCBuiltin<"__builtin_lasx_xvaddwev_w_h">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvaddwev_h_b : GCCBuiltin<"__builtin_lasx_xvaddwev_h_b">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvaddwev_q_d : GCCBuiltin<"__builtin_lasx_xvaddwev_q_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvsubwev_d_w : GCCBuiltin<"__builtin_lasx_xvsubwev_d_w">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsubwev_w_h : GCCBuiltin<"__builtin_lasx_xvsubwev_w_h">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsubwev_h_b : GCCBuiltin<"__builtin_lasx_xvsubwev_h_b">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsubwev_q_d : GCCBuiltin<"__builtin_lasx_xvsubwev_q_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvaddwod_d_w : GCCBuiltin<"__builtin_lasx_xvaddwod_d_w">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvaddwod_w_h : GCCBuiltin<"__builtin_lasx_xvaddwod_w_h">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvaddwod_h_b : GCCBuiltin<"__builtin_lasx_xvaddwod_h_b">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvaddwod_q_d : GCCBuiltin<"__builtin_lasx_xvaddwod_q_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvsubwod_d_w : GCCBuiltin<"__builtin_lasx_xvsubwod_d_w">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsubwod_w_h : GCCBuiltin<"__builtin_lasx_xvsubwod_w_h">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsubwod_h_b : GCCBuiltin<"__builtin_lasx_xvsubwod_h_b">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsubwod_q_d : GCCBuiltin<"__builtin_lasx_xvsubwod_q_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvaddwev_d_wu : GCCBuiltin<"__builtin_lasx_xvaddwev_d_wu">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvaddwev_w_hu : GCCBuiltin<"__builtin_lasx_xvaddwev_w_hu">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvaddwev_h_bu : GCCBuiltin<"__builtin_lasx_xvaddwev_h_bu">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvaddwev_q_du : GCCBuiltin<"__builtin_lasx_xvaddwev_q_du">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvsubwev_d_wu : GCCBuiltin<"__builtin_lasx_xvsubwev_d_wu">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsubwev_w_hu : GCCBuiltin<"__builtin_lasx_xvsubwev_w_hu">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsubwev_h_bu : GCCBuiltin<"__builtin_lasx_xvsubwev_h_bu">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsubwev_q_du : GCCBuiltin<"__builtin_lasx_xvsubwev_q_du">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvaddwod_d_wu : GCCBuiltin<"__builtin_lasx_xvaddwod_d_wu">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvaddwod_w_hu : GCCBuiltin<"__builtin_lasx_xvaddwod_w_hu">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvaddwod_h_bu : GCCBuiltin<"__builtin_lasx_xvaddwod_h_bu">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvaddwod_q_du : GCCBuiltin<"__builtin_lasx_xvaddwod_q_du">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvsubwod_d_wu : GCCBuiltin<"__builtin_lasx_xvsubwod_d_wu">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsubwod_w_hu : GCCBuiltin<"__builtin_lasx_xvsubwod_w_hu">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsubwod_h_bu : GCCBuiltin<"__builtin_lasx_xvsubwod_h_bu">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsubwod_q_du : GCCBuiltin<"__builtin_lasx_xvsubwod_q_du">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvaddwev_d_wu_w : GCCBuiltin<"__builtin_lasx_xvaddwev_d_wu_w">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvaddwev_w_hu_h : GCCBuiltin<"__builtin_lasx_xvaddwev_w_hu_h">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvaddwev_h_bu_b : GCCBuiltin<"__builtin_lasx_xvaddwev_h_bu_b">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvaddwev_q_du_d : GCCBuiltin<"__builtin_lasx_xvaddwev_q_du_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvaddwod_d_wu_w : GCCBuiltin<"__builtin_lasx_xvaddwod_d_wu_w">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvaddwod_w_hu_h : GCCBuiltin<"__builtin_lasx_xvaddwod_w_hu_h">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvaddwod_h_bu_b : GCCBuiltin<"__builtin_lasx_xvaddwod_h_bu_b">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvaddwod_q_du_d : GCCBuiltin<"__builtin_lasx_xvaddwod_q_du_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvhaddw_qu_du : GCCBuiltin<"__builtin_lasx_xvhaddw_qu_du">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvhsubw_qu_du : GCCBuiltin<"__builtin_lasx_xvhsubw_qu_du">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvhaddw_q_d : GCCBuiltin<"__builtin_lasx_xvhaddw_q_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvhsubw_q_d : GCCBuiltin<"__builtin_lasx_xvhsubw_q_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvmuh_b : GCCBuiltin<"__builtin_lasx_xvmuh_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmuh_h : GCCBuiltin<"__builtin_lasx_xvmuh_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmuh_w : GCCBuiltin<"__builtin_lasx_xvmuh_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmuh_d : GCCBuiltin<"__builtin_lasx_xvmuh_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvmuh_bu : GCCBuiltin<"__builtin_lasx_xvmuh_bu">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmuh_hu : GCCBuiltin<"__builtin_lasx_xvmuh_hu">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmuh_wu : GCCBuiltin<"__builtin_lasx_xvmuh_wu">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmuh_du : GCCBuiltin<"__builtin_lasx_xvmuh_du">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvmulwev_d_w : GCCBuiltin<"__builtin_lasx_xvmulwev_d_w">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmulwev_w_h : GCCBuiltin<"__builtin_lasx_xvmulwev_w_h">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmulwev_h_b : GCCBuiltin<"__builtin_lasx_xvmulwev_h_b">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmulwev_q_d : GCCBuiltin<"__builtin_lasx_xvmulwev_q_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvmulwod_d_w : GCCBuiltin<"__builtin_lasx_xvmulwod_d_w">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmulwod_w_h : GCCBuiltin<"__builtin_lasx_xvmulwod_w_h">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmulwod_h_b : GCCBuiltin<"__builtin_lasx_xvmulwod_h_b">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmulwod_q_d : GCCBuiltin<"__builtin_lasx_xvmulwod_q_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvmulwev_d_wu : GCCBuiltin<"__builtin_lasx_xvmulwev_d_wu">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmulwev_w_hu : GCCBuiltin<"__builtin_lasx_xvmulwev_w_hu">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmulwev_h_bu : GCCBuiltin<"__builtin_lasx_xvmulwev_h_bu">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmulwev_q_du : GCCBuiltin<"__builtin_lasx_xvmulwev_q_du">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvmulwod_d_wu : GCCBuiltin<"__builtin_lasx_xvmulwod_d_wu">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmulwod_w_hu : GCCBuiltin<"__builtin_lasx_xvmulwod_w_hu">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmulwod_h_bu : GCCBuiltin<"__builtin_lasx_xvmulwod_h_bu">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmulwod_q_du : GCCBuiltin<"__builtin_lasx_xvmulwod_q_du">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvmulwev_d_wu_w : GCCBuiltin<"__builtin_lasx_xvmulwev_d_wu_w">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmulwev_w_hu_h : GCCBuiltin<"__builtin_lasx_xvmulwev_w_hu_h">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmulwev_h_bu_b : GCCBuiltin<"__builtin_lasx_xvmulwev_h_bu_b">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmulwev_q_du_d : GCCBuiltin<"__builtin_lasx_xvmulwev_q_du_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvmulwod_d_wu_w : GCCBuiltin<"__builtin_lasx_xvmulwod_d_wu_w">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmulwod_w_hu_h : GCCBuiltin<"__builtin_lasx_xvmulwod_w_hu_h">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmulwod_h_bu_b : GCCBuiltin<"__builtin_lasx_xvmulwod_h_bu_b">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmulwod_q_du_d : GCCBuiltin<"__builtin_lasx_xvmulwod_q_du_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvmaddwev_d_w : GCCBuiltin<"__builtin_lasx_xvmaddwev_d_w">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmaddwev_w_h : GCCBuiltin<"__builtin_lasx_xvmaddwev_w_h">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmaddwev_h_b : GCCBuiltin<"__builtin_lasx_xvmaddwev_h_b">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmaddwev_q_d : GCCBuiltin<"__builtin_lasx_xvmaddwev_q_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvmaddwod_d_w : GCCBuiltin<"__builtin_lasx_xvmaddwod_d_w">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmaddwod_w_h : GCCBuiltin<"__builtin_lasx_xvmaddwod_w_h">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmaddwod_h_b : GCCBuiltin<"__builtin_lasx_xvmaddwod_h_b">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmaddwod_q_d : GCCBuiltin<"__builtin_lasx_xvmaddwod_q_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvmaddwev_d_wu : GCCBuiltin<"__builtin_lasx_xvmaddwev_d_wu">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmaddwev_w_hu : GCCBuiltin<"__builtin_lasx_xvmaddwev_w_hu">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmaddwev_h_bu : GCCBuiltin<"__builtin_lasx_xvmaddwev_h_bu">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmaddwev_q_du : GCCBuiltin<"__builtin_lasx_xvmaddwev_q_du">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvmaddwod_d_wu : GCCBuiltin<"__builtin_lasx_xvmaddwod_d_wu">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmaddwod_w_hu : GCCBuiltin<"__builtin_lasx_xvmaddwod_w_hu">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmaddwod_h_bu : GCCBuiltin<"__builtin_lasx_xvmaddwod_h_bu">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmaddwod_q_du : GCCBuiltin<"__builtin_lasx_xvmaddwod_q_du">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvmaddwev_d_wu_w : GCCBuiltin<"__builtin_lasx_xvmaddwev_d_wu_w">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmaddwev_w_hu_h : GCCBuiltin<"__builtin_lasx_xvmaddwev_w_hu_h">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmaddwev_h_bu_b : GCCBuiltin<"__builtin_lasx_xvmaddwev_h_bu_b">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmaddwev_q_du_d : GCCBuiltin<"__builtin_lasx_xvmaddwev_q_du_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvmaddwod_d_wu_w : GCCBuiltin<"__builtin_lasx_xvmaddwod_d_wu_w">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmaddwod_w_hu_h : GCCBuiltin<"__builtin_lasx_xvmaddwod_w_hu_h">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmaddwod_h_bu_b : GCCBuiltin<"__builtin_lasx_xvmaddwod_h_bu_b">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmaddwod_q_du_d : GCCBuiltin<"__builtin_lasx_xvmaddwod_q_du_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvsrln_b_h : GCCBuiltin<"__builtin_lasx_xvsrln_b_h">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsrln_h_w : GCCBuiltin<"__builtin_lasx_xvsrln_h_w">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsrln_w_d : GCCBuiltin<"__builtin_lasx_xvsrln_w_d">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvsran_b_h : GCCBuiltin<"__builtin_lasx_xvsran_b_h">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsran_h_w : GCCBuiltin<"__builtin_lasx_xvsran_h_w">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsran_w_d : GCCBuiltin<"__builtin_lasx_xvsran_w_d">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvsrlrn_b_h : GCCBuiltin<"__builtin_lasx_xvsrlrn_b_h">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsrlrn_h_w : GCCBuiltin<"__builtin_lasx_xvsrlrn_h_w">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsrlrn_w_d : GCCBuiltin<"__builtin_lasx_xvsrlrn_w_d">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvsrarn_b_h : GCCBuiltin<"__builtin_lasx_xvsrarn_b_h">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsrarn_h_w : GCCBuiltin<"__builtin_lasx_xvsrarn_h_w">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsrarn_w_d : GCCBuiltin<"__builtin_lasx_xvsrarn_w_d">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvssrln_b_h : GCCBuiltin<"__builtin_lasx_xvssrln_b_h">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvssrln_h_w : GCCBuiltin<"__builtin_lasx_xvssrln_h_w">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvssrln_w_d : GCCBuiltin<"__builtin_lasx_xvssrln_w_d">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvssran_b_h : GCCBuiltin<"__builtin_lasx_xvssran_b_h">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvssran_h_w : GCCBuiltin<"__builtin_lasx_xvssran_h_w">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvssran_w_d : GCCBuiltin<"__builtin_lasx_xvssran_w_d">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvssrlrn_b_h : GCCBuiltin<"__builtin_lasx_xvssrlrn_b_h">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvssrlrn_h_w : GCCBuiltin<"__builtin_lasx_xvssrlrn_h_w">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvssrlrn_w_d : GCCBuiltin<"__builtin_lasx_xvssrlrn_w_d">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvssrarn_b_h : GCCBuiltin<"__builtin_lasx_xvssrarn_b_h">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvssrarn_h_w : GCCBuiltin<"__builtin_lasx_xvssrarn_h_w">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvssrarn_w_d : GCCBuiltin<"__builtin_lasx_xvssrarn_w_d">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvssrln_bu_h : GCCBuiltin<"__builtin_lasx_xvssrln_bu_h">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvssrln_hu_w : GCCBuiltin<"__builtin_lasx_xvssrln_hu_w">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvssrln_wu_d : GCCBuiltin<"__builtin_lasx_xvssrln_wu_d">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvssran_bu_h : GCCBuiltin<"__builtin_lasx_xvssran_bu_h">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvssran_hu_w : GCCBuiltin<"__builtin_lasx_xvssran_hu_w">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvssran_wu_d : GCCBuiltin<"__builtin_lasx_xvssran_wu_d">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvssrlrn_bu_h : GCCBuiltin<"__builtin_lasx_xvssrlrn_bu_h">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvssrlrn_hu_w : GCCBuiltin<"__builtin_lasx_xvssrlrn_hu_w">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvssrlrn_wu_d : GCCBuiltin<"__builtin_lasx_xvssrlrn_wu_d">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvssrarn_bu_h : GCCBuiltin<"__builtin_lasx_xvssrarn_bu_h">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvssrarn_hu_w : GCCBuiltin<"__builtin_lasx_xvssrarn_hu_w">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvssrarn_wu_d : GCCBuiltin<"__builtin_lasx_xvssrarn_wu_d">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvandn_v : GCCBuiltin<"__builtin_lasx_xvandn_v">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvorn_v : GCCBuiltin<"__builtin_lasx_xvorn_v">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvfrstp_b : GCCBuiltin<"__builtin_lasx_xvfrstp_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty, llvm_v32i8_ty], ++ [IntrNoMem]>; ++def int_loongarch_lasx_xvfrstp_h : GCCBuiltin<"__builtin_lasx_xvfrstp_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty, llvm_v16i16_ty], ++ [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvadd_q : GCCBuiltin<"__builtin_lasx_xvadd_q">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsub_q : GCCBuiltin<"__builtin_lasx_xvsub_q">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvsigncov_b : GCCBuiltin<"__builtin_lasx_xvsigncov_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], ++ [IntrNoMem]>; ++def int_loongarch_lasx_xvsigncov_h : GCCBuiltin<"__builtin_lasx_xvsigncov_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], ++ [IntrNoMem]>; ++def int_loongarch_lasx_xvsigncov_w : GCCBuiltin<"__builtin_lasx_xvsigncov_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty], ++ [IntrNoMem]>; ++def int_loongarch_lasx_xvsigncov_d : GCCBuiltin<"__builtin_lasx_xvsigncov_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], ++ [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvfcvt_h_s : GCCBuiltin<"__builtin_lasx_xvfcvt_h_s">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v8f32_ty, llvm_v8f32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvfcvt_s_d : GCCBuiltin<"__builtin_lasx_xvfcvt_s_d">, ++ Intrinsic<[llvm_v8f32_ty], [llvm_v4f64_ty, llvm_v4f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvffint_s_l : GCCBuiltin<"__builtin_lasx_xvffint_s_l">, ++ Intrinsic<[llvm_v8f32_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvftint_w_d : GCCBuiltin<"__builtin_lasx_xvftint_w_d">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v4f64_ty, llvm_v4f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvftintrz_w_d : GCCBuiltin<"__builtin_lasx_xvftintrz_w_d">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v4f64_ty, llvm_v4f64_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvftintrp_w_d : GCCBuiltin<"__builtin_lasx_xvftintrp_w_d">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v4f64_ty, llvm_v4f64_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvftintrm_w_d : GCCBuiltin<"__builtin_lasx_xvftintrm_w_d">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v4f64_ty, llvm_v4f64_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvftintrne_w_d : GCCBuiltin<"__builtin_lasx_xvftintrne_w_d">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v4f64_ty, llvm_v4f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvbsrl_v : GCCBuiltin<"__builtin_lasx_xvbsrl_v">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvbsll_v : GCCBuiltin<"__builtin_lasx_xvbsll_v">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvfrstpi_b : GCCBuiltin<"__builtin_lasx_xvfrstpi_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvfrstpi_h : GCCBuiltin<"__builtin_lasx_xvfrstpi_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvneg_b : GCCBuiltin<"__builtin_lasx_xvneg_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvneg_h : GCCBuiltin<"__builtin_lasx_xvneg_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvneg_w : GCCBuiltin<"__builtin_lasx_xvneg_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvneg_d : GCCBuiltin<"__builtin_lasx_xvneg_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvmskgez_b : GCCBuiltin<"__builtin_lasx_xvmskgez_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmsknz_b : GCCBuiltin<"__builtin_lasx_xvmsknz_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvfrintrm_s : GCCBuiltin<"__builtin_lasx_xvfrintrm_s">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8f32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvfrintrm_d : GCCBuiltin<"__builtin_lasx_xvfrintrm_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvfrintrp_s : GCCBuiltin<"__builtin_lasx_xvfrintrp_s">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8f32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvfrintrp_d : GCCBuiltin<"__builtin_lasx_xvfrintrp_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvfrintrz_s : GCCBuiltin<"__builtin_lasx_xvfrintrz_s">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8f32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvfrintrz_d : GCCBuiltin<"__builtin_lasx_xvfrintrz_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvfrintrne_s : GCCBuiltin<"__builtin_lasx_xvfrintrne_s">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8f32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvfrintrne_d : GCCBuiltin<"__builtin_lasx_xvfrintrne_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvffinth_d_w : GCCBuiltin<"__builtin_lasx_xvffinth_d_w">, ++ Intrinsic<[llvm_v4f64_ty], [llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvffintl_d_w : GCCBuiltin<"__builtin_lasx_xvffintl_d_w">, ++ Intrinsic<[llvm_v4f64_ty], [llvm_v8i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvftintrm_w_s : GCCBuiltin<"__builtin_lasx_xvftintrm_w_s">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8f32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvftintrm_l_d : GCCBuiltin<"__builtin_lasx_xvftintrm_l_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvftintrp_w_s : GCCBuiltin<"__builtin_lasx_xvftintrp_w_s">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8f32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvftintrp_l_d : GCCBuiltin<"__builtin_lasx_xvftintrp_l_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvftintrz_w_s : GCCBuiltin<"__builtin_lasx_xvftintrz_w_s">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8f32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvftintrz_l_d : GCCBuiltin<"__builtin_lasx_xvftintrz_l_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvftintrne_w_s : GCCBuiltin<"__builtin_lasx_xvftintrne_w_s">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8f32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvftintrne_l_d : GCCBuiltin<"__builtin_lasx_xvftintrne_l_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvftinth_l_s : GCCBuiltin<"__builtin_lasx_xvftinth_l_s">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v8f32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvftintl_l_s : GCCBuiltin<"__builtin_lasx_xvftintl_l_s">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v8f32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvftintrmh_l_s : GCCBuiltin<"__builtin_lasx_xvftintrmh_l_s">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v8f32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvftintrml_l_s : GCCBuiltin<"__builtin_lasx_xvftintrml_l_s">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v8f32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvftintrph_l_s : GCCBuiltin<"__builtin_lasx_xvftintrph_l_s">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v8f32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvftintrpl_l_s : GCCBuiltin<"__builtin_lasx_xvftintrpl_l_s">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v8f32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvftintrzh_l_s : GCCBuiltin<"__builtin_lasx_xvftintrzh_l_s">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v8f32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvftintrzl_l_s : GCCBuiltin<"__builtin_lasx_xvftintrzl_l_s">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v8f32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvftintrneh_l_s : GCCBuiltin<"__builtin_lasx_xvftintrneh_l_s">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v8f32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvftintrnel_l_s : GCCBuiltin<"__builtin_lasx_xvftintrnel_l_s">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v8f32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvexth_d_w : GCCBuiltin<"__builtin_lasx_xvexth_d_w">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvexth_w_h : GCCBuiltin<"__builtin_lasx_xvexth_w_h">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvexth_h_b : GCCBuiltin<"__builtin_lasx_xvexth_h_b">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvexth_q_d : GCCBuiltin<"__builtin_lasx_xvexth_q_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvsllwil_d_w : GCCBuiltin<"__builtin_lasx_xvsllwil_d_w">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v8i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsllwil_w_h : GCCBuiltin<"__builtin_lasx_xvsllwil_w_h">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v16i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsllwil_h_b : GCCBuiltin<"__builtin_lasx_xvsllwil_h_b">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvsllwil_du_wu : GCCBuiltin<"__builtin_lasx_xvsllwil_du_wu">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v8i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsllwil_wu_hu : GCCBuiltin<"__builtin_lasx_xvsllwil_wu_hu">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v16i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsllwil_hu_bu : GCCBuiltin<"__builtin_lasx_xvsllwil_hu_bu">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvbitclri_b : GCCBuiltin<"__builtin_lasx_xvbitclri_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvbitclri_h : GCCBuiltin<"__builtin_lasx_xvbitclri_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvbitclri_w : GCCBuiltin<"__builtin_lasx_xvbitclri_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvbitclri_d : GCCBuiltin<"__builtin_lasx_xvbitclri_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvbitseti_b : GCCBuiltin<"__builtin_lasx_xvbitseti_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvbitseti_h : GCCBuiltin<"__builtin_lasx_xvbitseti_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvbitseti_w : GCCBuiltin<"__builtin_lasx_xvbitseti_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvbitseti_d : GCCBuiltin<"__builtin_lasx_xvbitseti_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvbitrevi_b : GCCBuiltin<"__builtin_lasx_xvbitrevi_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvbitrevi_h : GCCBuiltin<"__builtin_lasx_xvbitrevi_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvbitrevi_w : GCCBuiltin<"__builtin_lasx_xvbitrevi_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvbitrevi_d : GCCBuiltin<"__builtin_lasx_xvbitrevi_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvssrlrni_b_h : GCCBuiltin<"__builtin_lasx_xvssrlrni_b_h">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvssrlrni_h_w : GCCBuiltin<"__builtin_lasx_xvssrlrni_h_w">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvssrlrni_w_d : GCCBuiltin<"__builtin_lasx_xvssrlrni_w_d">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvssrlrni_d_q : GCCBuiltin<"__builtin_lasx_xvssrlrni_d_q">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvsrani_b_h : GCCBuiltin<"__builtin_lasx_xvsrani_b_h">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsrani_h_w : GCCBuiltin<"__builtin_lasx_xvsrani_h_w">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsrani_w_d : GCCBuiltin<"__builtin_lasx_xvsrani_w_d">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsrani_d_q : GCCBuiltin<"__builtin_lasx_xvsrani_d_q">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvextrins_b : GCCBuiltin<"__builtin_lasx_xvextrins_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvextrins_h : GCCBuiltin<"__builtin_lasx_xvextrins_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvextrins_w : GCCBuiltin<"__builtin_lasx_xvextrins_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvextrins_d : GCCBuiltin<"__builtin_lasx_xvextrins_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvbitseli_b : GCCBuiltin<"__builtin_lasx_xvbitseli_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvandi_b : GCCBuiltin<"__builtin_lasx_xvandi_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvori_b : GCCBuiltin<"__builtin_lasx_xvori_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvxori_b : GCCBuiltin<"__builtin_lasx_xvxori_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvnori_b : GCCBuiltin<"__builtin_lasx_xvnori_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvldi : GCCBuiltin<"__builtin_lasx_xvldi">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvpermi_w : GCCBuiltin<"__builtin_lasx_xvpermi_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvsadd_b : GCCBuiltin<"__builtin_lasx_xvsadd_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], ++ [Commutative, IntrNoMem]>; ++def int_loongarch_lasx_xvsadd_h : GCCBuiltin<"__builtin_lasx_xvsadd_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], ++ [Commutative, IntrNoMem]>; ++def int_loongarch_lasx_xvsadd_w : GCCBuiltin<"__builtin_lasx_xvsadd_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty], ++ [Commutative, IntrNoMem]>; ++def int_loongarch_lasx_xvsadd_d : GCCBuiltin<"__builtin_lasx_xvsadd_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], ++ [Commutative, IntrNoMem]>; ++ ++def int_loongarch_lasx_xvssub_b : GCCBuiltin<"__builtin_lasx_xvssub_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvssub_h : GCCBuiltin<"__builtin_lasx_xvssub_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvssub_w : GCCBuiltin<"__builtin_lasx_xvssub_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvssub_d : GCCBuiltin<"__builtin_lasx_xvssub_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvsadd_bu : GCCBuiltin<"__builtin_lasx_xvsadd_bu">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], ++ [Commutative, IntrNoMem]>; ++def int_loongarch_lasx_xvsadd_hu : GCCBuiltin<"__builtin_lasx_xvsadd_hu">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], ++ [Commutative, IntrNoMem]>; ++def int_loongarch_lasx_xvsadd_wu : GCCBuiltin<"__builtin_lasx_xvsadd_wu">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty], ++ [Commutative, IntrNoMem]>; ++def int_loongarch_lasx_xvsadd_du : GCCBuiltin<"__builtin_lasx_xvsadd_du">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], ++ [Commutative, IntrNoMem]>; ++ ++def int_loongarch_lasx_xvssub_bu : GCCBuiltin<"__builtin_lasx_xvssub_bu">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvssub_hu : GCCBuiltin<"__builtin_lasx_xvssub_hu">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvssub_wu : GCCBuiltin<"__builtin_lasx_xvssub_wu">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvssub_du : GCCBuiltin<"__builtin_lasx_xvssub_du">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvhaddw_h_b : GCCBuiltin<"__builtin_lasx_xvhaddw_h_b">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvhaddw_w_h : GCCBuiltin<"__builtin_lasx_xvhaddw_w_h">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvhaddw_d_w : GCCBuiltin<"__builtin_lasx_xvhaddw_d_w">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvhsubw_h_b : GCCBuiltin<"__builtin_lasx_xvhsubw_h_b">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvhsubw_w_h : GCCBuiltin<"__builtin_lasx_xvhsubw_w_h">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvhsubw_d_w : GCCBuiltin<"__builtin_lasx_xvhsubw_d_w">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvhaddw_hu_bu : GCCBuiltin<"__builtin_lasx_xvhaddw_hu_bu">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvhaddw_wu_hu : GCCBuiltin<"__builtin_lasx_xvhaddw_wu_hu">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvhaddw_du_wu : GCCBuiltin<"__builtin_lasx_xvhaddw_du_wu">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvhsubw_hu_bu : GCCBuiltin<"__builtin_lasx_xvhsubw_hu_bu">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvhsubw_wu_hu : GCCBuiltin<"__builtin_lasx_xvhsubw_wu_hu">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvhsubw_du_wu : GCCBuiltin<"__builtin_lasx_xvhsubw_du_wu">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvadda_b : GCCBuiltin<"__builtin_lasx_xvadda_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], ++ [Commutative, IntrNoMem]>; ++def int_loongarch_lasx_xvadda_h : GCCBuiltin<"__builtin_lasx_xvadda_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], ++ [Commutative, IntrNoMem]>; ++def int_loongarch_lasx_xvadda_w : GCCBuiltin<"__builtin_lasx_xvadda_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty], ++ [Commutative, IntrNoMem]>; ++def int_loongarch_lasx_xvadda_d : GCCBuiltin<"__builtin_lasx_xvadda_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], ++ [Commutative, IntrNoMem]>; ++ ++def int_loongarch_lasx_xvabsd_b : GCCBuiltin<"__builtin_lasx_xvabsd_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvabsd_h : GCCBuiltin<"__builtin_lasx_xvabsd_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvabsd_w : GCCBuiltin<"__builtin_lasx_xvabsd_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvabsd_d : GCCBuiltin<"__builtin_lasx_xvabsd_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvabsd_bu : GCCBuiltin<"__builtin_lasx_xvabsd_bu">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvabsd_hu : GCCBuiltin<"__builtin_lasx_xvabsd_hu">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvabsd_wu : GCCBuiltin<"__builtin_lasx_xvabsd_wu">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvabsd_du : GCCBuiltin<"__builtin_lasx_xvabsd_du">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvavg_b : GCCBuiltin<"__builtin_lasx_xvavg_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], ++ [Commutative, IntrNoMem]>; ++def int_loongarch_lasx_xvavg_h : GCCBuiltin<"__builtin_lasx_xvavg_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], ++ [Commutative, IntrNoMem]>; ++def int_loongarch_lasx_xvavg_w : GCCBuiltin<"__builtin_lasx_xvavg_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty], ++ [Commutative, IntrNoMem]>; ++def int_loongarch_lasx_xvavg_d : GCCBuiltin<"__builtin_lasx_xvavg_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], ++ [Commutative, IntrNoMem]>; ++ ++def int_loongarch_lasx_xvavg_bu : GCCBuiltin<"__builtin_lasx_xvavg_bu">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], ++ [Commutative, IntrNoMem]>; ++def int_loongarch_lasx_xvavg_hu : GCCBuiltin<"__builtin_lasx_xvavg_hu">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], ++ [Commutative, IntrNoMem]>; ++def int_loongarch_lasx_xvavg_wu : GCCBuiltin<"__builtin_lasx_xvavg_wu">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty], ++ [Commutative, IntrNoMem]>; ++def int_loongarch_lasx_xvavg_du : GCCBuiltin<"__builtin_lasx_xvavg_du">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], ++ [Commutative, IntrNoMem]>; ++ ++def int_loongarch_lasx_xvavgr_b : GCCBuiltin<"__builtin_lasx_xvavgr_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], ++ [Commutative, IntrNoMem]>; ++def int_loongarch_lasx_xvavgr_h : GCCBuiltin<"__builtin_lasx_xvavgr_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], ++ [Commutative, IntrNoMem]>; ++def int_loongarch_lasx_xvavgr_w : GCCBuiltin<"__builtin_lasx_xvavgr_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty], ++ [Commutative, IntrNoMem]>; ++def int_loongarch_lasx_xvavgr_d : GCCBuiltin<"__builtin_lasx_xvavgr_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], ++ [Commutative, IntrNoMem]>; ++ ++def int_loongarch_lasx_xvavgr_bu : GCCBuiltin<"__builtin_lasx_xvavgr_bu">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], ++ [Commutative, IntrNoMem]>; ++def int_loongarch_lasx_xvavgr_hu : GCCBuiltin<"__builtin_lasx_xvavgr_hu">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], ++ [Commutative, IntrNoMem]>; ++def int_loongarch_lasx_xvavgr_wu : GCCBuiltin<"__builtin_lasx_xvavgr_wu">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty], ++ [Commutative, IntrNoMem]>; ++def int_loongarch_lasx_xvavgr_du : GCCBuiltin<"__builtin_lasx_xvavgr_du">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], ++ [Commutative, IntrNoMem]>; ++ ++def int_loongarch_lasx_xvsrlr_b : GCCBuiltin<"__builtin_lasx_xvsrlr_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsrlr_h : GCCBuiltin<"__builtin_lasx_xvsrlr_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsrlr_w : GCCBuiltin<"__builtin_lasx_xvsrlr_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsrlr_d : GCCBuiltin<"__builtin_lasx_xvsrlr_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvsrar_b : GCCBuiltin<"__builtin_lasx_xvsrar_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsrar_h : GCCBuiltin<"__builtin_lasx_xvsrar_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsrar_w : GCCBuiltin<"__builtin_lasx_xvsrar_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsrar_d : GCCBuiltin<"__builtin_lasx_xvsrar_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvfmax_s : GCCBuiltin<"__builtin_lasx_xvfmax_s">, ++ Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvfmax_d : GCCBuiltin<"__builtin_lasx_xvfmax_d">, ++ Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvfmin_s : GCCBuiltin<"__builtin_lasx_xvfmin_s">, ++ Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvfmin_d : GCCBuiltin<"__builtin_lasx_xvfmin_d">, ++ Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvfmaxa_s : GCCBuiltin<"__builtin_lasx_xvfmaxa_s">, ++ Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvfmaxa_d : GCCBuiltin<"__builtin_lasx_xvfmaxa_d">, ++ Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvfmina_s : GCCBuiltin<"__builtin_lasx_xvfmina_s">, ++ Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvfmina_d : GCCBuiltin<"__builtin_lasx_xvfmina_d">, ++ Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvfclass_s : GCCBuiltin<"__builtin_lasx_xvfclass_s">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8f32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvfclass_d : GCCBuiltin<"__builtin_lasx_xvfclass_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvfrecip_s : GCCBuiltin<"__builtin_lasx_xvfrecip_s">, ++ Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvfrecip_d : GCCBuiltin<"__builtin_lasx_xvfrecip_d">, ++ Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvfrsqrt_s : GCCBuiltin<"__builtin_lasx_xvfrsqrt_s">, ++ Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvfrsqrt_d : GCCBuiltin<"__builtin_lasx_xvfrsqrt_d">, ++ Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvfcvtl_s_h : GCCBuiltin<"__builtin_lasx_xvfcvtl_s_h">, ++ Intrinsic<[llvm_v8f32_ty], [llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvfcvtl_d_s : GCCBuiltin<"__builtin_lasx_xvfcvtl_d_s">, ++ Intrinsic<[llvm_v4f64_ty], [llvm_v8f32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvfcvth_s_h : GCCBuiltin<"__builtin_lasx_xvfcvth_s_h">, ++ Intrinsic<[llvm_v8f32_ty], [llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvfcvth_d_s : GCCBuiltin<"__builtin_lasx_xvfcvth_d_s">, ++ Intrinsic<[llvm_v4f64_ty], [llvm_v8f32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvftint_w_s : GCCBuiltin<"__builtin_lasx_xvftint_w_s">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8f32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvftint_l_d : GCCBuiltin<"__builtin_lasx_xvftint_l_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvftint_wu_s : GCCBuiltin<"__builtin_lasx_xvftint_wu_s">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8f32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvftint_lu_d : GCCBuiltin<"__builtin_lasx_xvftint_lu_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvsrlri_b : GCCBuiltin<"__builtin_lasx_xvsrlri_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsrlri_h : GCCBuiltin<"__builtin_lasx_xvsrlri_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsrlri_w : GCCBuiltin<"__builtin_lasx_xvsrlri_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsrlri_d : GCCBuiltin<"__builtin_lasx_xvsrlri_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvsrari_b : GCCBuiltin<"__builtin_lasx_xvsrari_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsrari_h : GCCBuiltin<"__builtin_lasx_xvsrari_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsrari_w : GCCBuiltin<"__builtin_lasx_xvsrari_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsrari_d : GCCBuiltin<"__builtin_lasx_xvsrari_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvsat_b : GCCBuiltin<"__builtin_lasx_xvsat_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsat_h : GCCBuiltin<"__builtin_lasx_xvsat_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsat_w : GCCBuiltin<"__builtin_lasx_xvsat_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsat_d : GCCBuiltin<"__builtin_lasx_xvsat_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvsat_bu : GCCBuiltin<"__builtin_lasx_xvsat_bu">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsat_hu : GCCBuiltin<"__builtin_lasx_xvsat_hu">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsat_wu : GCCBuiltin<"__builtin_lasx_xvsat_wu">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsat_du : GCCBuiltin<"__builtin_lasx_xvsat_du">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvsrlni_b_h : GCCBuiltin<"__builtin_lasx_xvsrlni_b_h">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsrlni_h_w : GCCBuiltin<"__builtin_lasx_xvsrlni_h_w">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsrlni_w_d : GCCBuiltin<"__builtin_lasx_xvsrlni_w_d">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsrlni_d_q : GCCBuiltin<"__builtin_lasx_xvsrlni_d_q">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvssrlni_b_h : GCCBuiltin<"__builtin_lasx_xvssrlni_b_h">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvssrlni_h_w : GCCBuiltin<"__builtin_lasx_xvssrlni_h_w">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvssrlni_w_d : GCCBuiltin<"__builtin_lasx_xvssrlni_w_d">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvssrlni_d_q : GCCBuiltin<"__builtin_lasx_xvssrlni_d_q">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvssrlrni_bu_h : GCCBuiltin<"__builtin_lasx_xvssrlrni_bu_h">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvssrlrni_hu_w : GCCBuiltin<"__builtin_lasx_xvssrlrni_hu_w">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvssrlrni_wu_d : GCCBuiltin<"__builtin_lasx_xvssrlrni_wu_d">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvssrlrni_du_q : GCCBuiltin<"__builtin_lasx_xvssrlrni_du_q">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvsrarni_b_h : GCCBuiltin<"__builtin_lasx_xvsrarni_b_h">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsrarni_h_w : GCCBuiltin<"__builtin_lasx_xvsrarni_h_w">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsrarni_w_d : GCCBuiltin<"__builtin_lasx_xvsrarni_w_d">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsrarni_d_q : GCCBuiltin<"__builtin_lasx_xvsrarni_d_q">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvssrani_b_h : GCCBuiltin<"__builtin_lasx_xvssrani_b_h">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvssrani_h_w : GCCBuiltin<"__builtin_lasx_xvssrani_h_w">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvssrani_w_d : GCCBuiltin<"__builtin_lasx_xvssrani_w_d">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvssrani_d_q : GCCBuiltin<"__builtin_lasx_xvssrani_d_q">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvssrani_bu_h : GCCBuiltin<"__builtin_lasx_xvssrani_bu_h">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvssrani_hu_w : GCCBuiltin<"__builtin_lasx_xvssrani_hu_w">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvssrani_wu_d : GCCBuiltin<"__builtin_lasx_xvssrani_wu_d">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvssrani_du_q : GCCBuiltin<"__builtin_lasx_xvssrani_du_q">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvssrarni_b_h : GCCBuiltin<"__builtin_lasx_xvssrarni_b_h">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvssrarni_h_w : GCCBuiltin<"__builtin_lasx_xvssrarni_h_w">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvssrarni_w_d : GCCBuiltin<"__builtin_lasx_xvssrarni_w_d">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvssrarni_d_q : GCCBuiltin<"__builtin_lasx_xvssrarni_d_q">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvssrarni_bu_h : GCCBuiltin<"__builtin_lasx_xvssrarni_bu_h">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvssrarni_hu_w : GCCBuiltin<"__builtin_lasx_xvssrarni_hu_w">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvssrarni_wu_d : GCCBuiltin<"__builtin_lasx_xvssrarni_wu_d">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvssrarni_du_q : GCCBuiltin<"__builtin_lasx_xvssrarni_du_q">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvssrlni_bu_h : GCCBuiltin<"__builtin_lasx_xvssrlni_bu_h">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvssrlni_hu_w : GCCBuiltin<"__builtin_lasx_xvssrlni_hu_w">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvssrlni_wu_d : GCCBuiltin<"__builtin_lasx_xvssrlni_wu_d">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvssrlni_du_q : GCCBuiltin<"__builtin_lasx_xvssrlni_du_q">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvseq_b : GCCBuiltin<"__builtin_lasx_xvseq_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvseq_h : GCCBuiltin<"__builtin_lasx_xvseq_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvseq_w : GCCBuiltin<"__builtin_lasx_xvseq_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvseq_d : GCCBuiltin<"__builtin_lasx_xvseq_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvsle_b : GCCBuiltin<"__builtin_lasx_xvsle_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsle_h : GCCBuiltin<"__builtin_lasx_xvsle_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsle_w : GCCBuiltin<"__builtin_lasx_xvsle_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsle_d : GCCBuiltin<"__builtin_lasx_xvsle_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvsle_bu : GCCBuiltin<"__builtin_lasx_xvsle_bu">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsle_hu : GCCBuiltin<"__builtin_lasx_xvsle_hu">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsle_wu : GCCBuiltin<"__builtin_lasx_xvsle_wu">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsle_du : GCCBuiltin<"__builtin_lasx_xvsle_du">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvslt_b : GCCBuiltin<"__builtin_lasx_xvslt_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvslt_h : GCCBuiltin<"__builtin_lasx_xvslt_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvslt_w : GCCBuiltin<"__builtin_lasx_xvslt_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvslt_d : GCCBuiltin<"__builtin_lasx_xvslt_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvslt_bu : GCCBuiltin<"__builtin_lasx_xvslt_bu">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvslt_hu : GCCBuiltin<"__builtin_lasx_xvslt_hu">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvslt_wu : GCCBuiltin<"__builtin_lasx_xvslt_wu">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvslt_du : GCCBuiltin<"__builtin_lasx_xvslt_du">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvadd_b : GCCBuiltin<"__builtin_lasx_xvadd_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], ++ [Commutative, IntrNoMem]>; ++def int_loongarch_lasx_xvadd_h : GCCBuiltin<"__builtin_lasx_xvadd_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], ++ [Commutative, IntrNoMem]>; ++def int_loongarch_lasx_xvadd_w : GCCBuiltin<"__builtin_lasx_xvadd_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty], ++ [Commutative, IntrNoMem]>; ++def int_loongarch_lasx_xvadd_d : GCCBuiltin<"__builtin_lasx_xvadd_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], ++ [Commutative, IntrNoMem]>; ++ ++def int_loongarch_lasx_xvsub_b : GCCBuiltin<"__builtin_lasx_xvsub_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsub_h : GCCBuiltin<"__builtin_lasx_xvsub_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsub_w : GCCBuiltin<"__builtin_lasx_xvsub_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsub_d : GCCBuiltin<"__builtin_lasx_xvsub_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvmax_b : GCCBuiltin<"__builtin_lasx_xvmax_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmax_h : GCCBuiltin<"__builtin_lasx_xvmax_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmax_w : GCCBuiltin<"__builtin_lasx_xvmax_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmax_d : GCCBuiltin<"__builtin_lasx_xvmax_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvmin_b : GCCBuiltin<"__builtin_lasx_xvmin_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmin_h : GCCBuiltin<"__builtin_lasx_xvmin_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmin_w : GCCBuiltin<"__builtin_lasx_xvmin_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmin_d : GCCBuiltin<"__builtin_lasx_xvmin_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvmax_bu : GCCBuiltin<"__builtin_lasx_xvmax_bu">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmax_hu : GCCBuiltin<"__builtin_lasx_xvmax_hu">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmax_wu : GCCBuiltin<"__builtin_lasx_xvmax_wu">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmax_du : GCCBuiltin<"__builtin_lasx_xvmax_du">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvmin_bu : GCCBuiltin<"__builtin_lasx_xvmin_bu">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmin_hu : GCCBuiltin<"__builtin_lasx_xvmin_hu">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmin_wu : GCCBuiltin<"__builtin_lasx_xvmin_wu">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmin_du : GCCBuiltin<"__builtin_lasx_xvmin_du">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvmul_b : GCCBuiltin<"__builtin_lasx_xvmul_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmul_h : GCCBuiltin<"__builtin_lasx_xvmul_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmul_w : GCCBuiltin<"__builtin_lasx_xvmul_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmul_d : GCCBuiltin<"__builtin_lasx_xvmul_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvmadd_b : GCCBuiltin<"__builtin_lasx_xvmadd_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty, llvm_v32i8_ty], ++ [IntrNoMem]>; ++def int_loongarch_lasx_xvmadd_h : GCCBuiltin<"__builtin_lasx_xvmadd_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty, llvm_v16i16_ty], ++ [IntrNoMem]>; ++def int_loongarch_lasx_xvmadd_w : GCCBuiltin<"__builtin_lasx_xvmadd_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty, llvm_v8i32_ty], ++ [IntrNoMem]>; ++def int_loongarch_lasx_xvmadd_d : GCCBuiltin<"__builtin_lasx_xvmadd_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_v4i64_ty], ++ [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvmsub_b : GCCBuiltin<"__builtin_lasx_xvmsub_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty, llvm_v32i8_ty], ++ [IntrNoMem]>; ++def int_loongarch_lasx_xvmsub_h : GCCBuiltin<"__builtin_lasx_xvmsub_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty, llvm_v16i16_ty], ++ [IntrNoMem]>; ++def int_loongarch_lasx_xvmsub_w : GCCBuiltin<"__builtin_lasx_xvmsub_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty, llvm_v8i32_ty], ++ [IntrNoMem]>; ++def int_loongarch_lasx_xvmsub_d : GCCBuiltin<"__builtin_lasx_xvmsub_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_v4i64_ty], ++ [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvdiv_b : GCCBuiltin<"__builtin_lasx_xvdiv_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvdiv_h : GCCBuiltin<"__builtin_lasx_xvdiv_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvdiv_w : GCCBuiltin<"__builtin_lasx_xvdiv_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvdiv_d : GCCBuiltin<"__builtin_lasx_xvdiv_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvmod_b : GCCBuiltin<"__builtin_lasx_xvmod_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmod_h : GCCBuiltin<"__builtin_lasx_xvmod_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmod_w : GCCBuiltin<"__builtin_lasx_xvmod_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmod_d : GCCBuiltin<"__builtin_lasx_xvmod_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvdiv_bu : GCCBuiltin<"__builtin_lasx_xvdiv_bu">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvdiv_hu : GCCBuiltin<"__builtin_lasx_xvdiv_hu">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvdiv_wu : GCCBuiltin<"__builtin_lasx_xvdiv_wu">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvdiv_du : GCCBuiltin<"__builtin_lasx_xvdiv_du">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvsll_b : GCCBuiltin<"__builtin_lasx_xvsll_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsll_h : GCCBuiltin<"__builtin_lasx_xvsll_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsll_w : GCCBuiltin<"__builtin_lasx_xvsll_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsll_d : GCCBuiltin<"__builtin_lasx_xvsll_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvsrl_b : GCCBuiltin<"__builtin_lasx_xvsrl_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsrl_h : GCCBuiltin<"__builtin_lasx_xvsrl_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsrl_w : GCCBuiltin<"__builtin_lasx_xvsrl_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsrl_d : GCCBuiltin<"__builtin_lasx_xvsrl_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvbitclr_b : GCCBuiltin<"__builtin_lasx_xvbitclr_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvbitclr_h : GCCBuiltin<"__builtin_lasx_xvbitclr_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvbitclr_w : GCCBuiltin<"__builtin_lasx_xvbitclr_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvbitclr_d : GCCBuiltin<"__builtin_lasx_xvbitclr_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvbitset_b : GCCBuiltin<"__builtin_lasx_xvbitset_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvbitset_h : GCCBuiltin<"__builtin_lasx_xvbitset_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvbitset_w : GCCBuiltin<"__builtin_lasx_xvbitset_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvbitset_d : GCCBuiltin<"__builtin_lasx_xvbitset_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvpackev_b : GCCBuiltin<"__builtin_lasx_xvpackev_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvpackev_h : GCCBuiltin<"__builtin_lasx_xvpackev_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvpackev_w : GCCBuiltin<"__builtin_lasx_xvpackev_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvpackev_d : GCCBuiltin<"__builtin_lasx_xvpackev_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvpackod_b : GCCBuiltin<"__builtin_lasx_xvpackod_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvpackod_h : GCCBuiltin<"__builtin_lasx_xvpackod_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvpackod_w : GCCBuiltin<"__builtin_lasx_xvpackod_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvpackod_d : GCCBuiltin<"__builtin_lasx_xvpackod_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvilvl_b : GCCBuiltin<"__builtin_lasx_xvilvl_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvilvl_h : GCCBuiltin<"__builtin_lasx_xvilvl_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvilvl_w : GCCBuiltin<"__builtin_lasx_xvilvl_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvilvl_d : GCCBuiltin<"__builtin_lasx_xvilvl_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvilvh_b : GCCBuiltin<"__builtin_lasx_xvilvh_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvilvh_h : GCCBuiltin<"__builtin_lasx_xvilvh_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvilvh_w : GCCBuiltin<"__builtin_lasx_xvilvh_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvilvh_d : GCCBuiltin<"__builtin_lasx_xvilvh_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvpickev_b : GCCBuiltin<"__builtin_lasx_xvpickev_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvpickev_h : GCCBuiltin<"__builtin_lasx_xvpickev_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvpickev_w : GCCBuiltin<"__builtin_lasx_xvpickev_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvpickev_d : GCCBuiltin<"__builtin_lasx_xvpickev_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvand_v : GCCBuiltin<"__builtin_lasx_xvand_v">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvor_v : GCCBuiltin<"__builtin_lasx_xvor_v">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvbitrev_b : GCCBuiltin<"__builtin_lasx_xvbitrev_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvbitrev_h : GCCBuiltin<"__builtin_lasx_xvbitrev_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvbitrev_w : GCCBuiltin<"__builtin_lasx_xvbitrev_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvbitrev_d : GCCBuiltin<"__builtin_lasx_xvbitrev_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvmod_bu : GCCBuiltin<"__builtin_lasx_xvmod_bu">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmod_hu : GCCBuiltin<"__builtin_lasx_xvmod_hu">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmod_wu : GCCBuiltin<"__builtin_lasx_xvmod_wu">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmod_du : GCCBuiltin<"__builtin_lasx_xvmod_du">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvpickod_b : GCCBuiltin<"__builtin_lasx_xvpickod_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvpickod_h : GCCBuiltin<"__builtin_lasx_xvpickod_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvpickod_w : GCCBuiltin<"__builtin_lasx_xvpickod_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvpickod_d : GCCBuiltin<"__builtin_lasx_xvpickod_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvreplve_b : GCCBuiltin<"__builtin_lasx_xvreplve_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvreplve_h : GCCBuiltin<"__builtin_lasx_xvreplve_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvreplve_w : GCCBuiltin<"__builtin_lasx_xvreplve_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvreplve_d : GCCBuiltin<"__builtin_lasx_xvreplve_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvsra_b : GCCBuiltin<"__builtin_lasx_xvsra_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsra_h : GCCBuiltin<"__builtin_lasx_xvsra_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsra_w : GCCBuiltin<"__builtin_lasx_xvsra_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsra_d : GCCBuiltin<"__builtin_lasx_xvsra_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvxor_v : GCCBuiltin<"__builtin_lasx_xvxor_v">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvnor_v : GCCBuiltin<"__builtin_lasx_xvnor_v">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvfadd_s : GCCBuiltin<"__builtin_lasx_xvfadd_s">, ++ Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvfadd_d : GCCBuiltin<"__builtin_lasx_xvfadd_d">, ++ Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvfsub_s : GCCBuiltin<"__builtin_lasx_xvfsub_s">, ++ Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvfsub_d : GCCBuiltin<"__builtin_lasx_xvfsub_d">, ++ Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvfmul_s : GCCBuiltin<"__builtin_lasx_xvfmul_s">, ++ Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvfmul_d : GCCBuiltin<"__builtin_lasx_xvfmul_d">, ++ Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvshuf_h : GCCBuiltin<"__builtin_lasx_xvshuf_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty, llvm_v16i16_ty], ++ [IntrNoMem]>; ++def int_loongarch_lasx_xvshuf_w : GCCBuiltin<"__builtin_lasx_xvshuf_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty, llvm_v8i32_ty], ++ [IntrNoMem]>; ++def int_loongarch_lasx_xvshuf_d : GCCBuiltin<"__builtin_lasx_xvshuf_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_v4i64_ty], ++ [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvseqi_b : GCCBuiltin<"__builtin_lasx_xvseqi_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvseqi_h : GCCBuiltin<"__builtin_lasx_xvseqi_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvseqi_w : GCCBuiltin<"__builtin_lasx_xvseqi_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvseqi_d : GCCBuiltin<"__builtin_lasx_xvseqi_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvslei_b : GCCBuiltin<"__builtin_lasx_xvslei_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvslei_h : GCCBuiltin<"__builtin_lasx_xvslei_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvslei_w : GCCBuiltin<"__builtin_lasx_xvslei_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvslei_d : GCCBuiltin<"__builtin_lasx_xvslei_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvslei_bu : GCCBuiltin<"__builtin_lasx_xvslei_bu">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvslei_hu : GCCBuiltin<"__builtin_lasx_xvslei_hu">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvslei_wu : GCCBuiltin<"__builtin_lasx_xvslei_wu">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvslei_du : GCCBuiltin<"__builtin_lasx_xvslei_du">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvslti_b : GCCBuiltin<"__builtin_lasx_xvslti_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvslti_h : GCCBuiltin<"__builtin_lasx_xvslti_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvslti_w : GCCBuiltin<"__builtin_lasx_xvslti_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvslti_d : GCCBuiltin<"__builtin_lasx_xvslti_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvslti_bu : GCCBuiltin<"__builtin_lasx_xvslti_bu">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvslti_hu : GCCBuiltin<"__builtin_lasx_xvslti_hu">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvslti_wu : GCCBuiltin<"__builtin_lasx_xvslti_wu">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvslti_du : GCCBuiltin<"__builtin_lasx_xvslti_du">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvaddi_bu : GCCBuiltin<"__builtin_lasx_xvaddi_bu">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_i32_ty], ++ [Commutative, IntrNoMem]>; ++def int_loongarch_lasx_xvaddi_hu : GCCBuiltin<"__builtin_lasx_xvaddi_hu">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_i32_ty], ++ [Commutative, IntrNoMem]>; ++def int_loongarch_lasx_xvaddi_wu : GCCBuiltin<"__builtin_lasx_xvaddi_wu">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_i32_ty], ++ [Commutative, IntrNoMem]>; ++def int_loongarch_lasx_xvaddi_du : GCCBuiltin<"__builtin_lasx_xvaddi_du">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_i32_ty], ++ [Commutative, IntrNoMem]>; ++ ++def int_loongarch_lasx_xvsubi_bu : GCCBuiltin<"__builtin_lasx_xvsubi_bu">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsubi_hu : GCCBuiltin<"__builtin_lasx_xvsubi_hu">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsubi_wu : GCCBuiltin<"__builtin_lasx_xvsubi_wu">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsubi_du : GCCBuiltin<"__builtin_lasx_xvsubi_du">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvmaxi_b : GCCBuiltin<"__builtin_lasx_xvmaxi_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmaxi_h : GCCBuiltin<"__builtin_lasx_xvmaxi_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmaxi_w : GCCBuiltin<"__builtin_lasx_xvmaxi_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmaxi_d : GCCBuiltin<"__builtin_lasx_xvmaxi_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvmini_b : GCCBuiltin<"__builtin_lasx_xvmini_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmini_h : GCCBuiltin<"__builtin_lasx_xvmini_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmini_w : GCCBuiltin<"__builtin_lasx_xvmini_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmini_d : GCCBuiltin<"__builtin_lasx_xvmini_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvmaxi_bu : GCCBuiltin<"__builtin_lasx_xvmaxi_bu">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmaxi_hu : GCCBuiltin<"__builtin_lasx_xvmaxi_hu">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmaxi_wu : GCCBuiltin<"__builtin_lasx_xvmaxi_wu">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmaxi_du : GCCBuiltin<"__builtin_lasx_xvmaxi_du">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvmini_bu : GCCBuiltin<"__builtin_lasx_xvmini_bu">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmini_hu : GCCBuiltin<"__builtin_lasx_xvmini_hu">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmini_wu : GCCBuiltin<"__builtin_lasx_xvmini_wu">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvmini_du : GCCBuiltin<"__builtin_lasx_xvmini_du">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvclz_b : GCCBuiltin<"__builtin_lasx_xvclz_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvclz_h : GCCBuiltin<"__builtin_lasx_xvclz_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvclz_w : GCCBuiltin<"__builtin_lasx_xvclz_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvclz_d : GCCBuiltin<"__builtin_lasx_xvclz_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvpcnt_b : GCCBuiltin<"__builtin_lasx_xvpcnt_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvpcnt_h : GCCBuiltin<"__builtin_lasx_xvpcnt_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvpcnt_w : GCCBuiltin<"__builtin_lasx_xvpcnt_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvpcnt_d : GCCBuiltin<"__builtin_lasx_xvpcnt_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvfsqrt_s : GCCBuiltin<"__builtin_lasx_xvfsqrt_s">, ++ Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvfsqrt_d : GCCBuiltin<"__builtin_lasx_xvfsqrt_d">, ++ Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvfrint_s : GCCBuiltin<"__builtin_lasx_xvfrint_s">, ++ Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvfrint_d : GCCBuiltin<"__builtin_lasx_xvfrint_d">, ++ Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvffint_s_w : GCCBuiltin<"__builtin_lasx_xvffint_s_w">, ++ Intrinsic<[llvm_v8f32_ty], [llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvffint_d_l : GCCBuiltin<"__builtin_lasx_xvffint_d_l">, ++ Intrinsic<[llvm_v4f64_ty], [llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvffint_s_wu : GCCBuiltin<"__builtin_lasx_xvffint_s_wu">, ++ Intrinsic<[llvm_v8f32_ty], [llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvffint_d_lu : GCCBuiltin<"__builtin_lasx_xvffint_d_lu">, ++ Intrinsic<[llvm_v4f64_ty], [llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvftintrz_wu_s : GCCBuiltin<"__builtin_lasx_xvftintrz_wu_s">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8f32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvftintrz_lu_d : GCCBuiltin<"__builtin_lasx_xvftintrz_lu_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvreplgr2vr_b : GCCBuiltin<"__builtin_lasx_xvreplgr2vr_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvreplgr2vr_h : GCCBuiltin<"__builtin_lasx_xvreplgr2vr_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvreplgr2vr_w : GCCBuiltin<"__builtin_lasx_xvreplgr2vr_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvreplgr2vr_d : GCCBuiltin<"__builtin_lasx_xvreplgr2vr_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvinsgr2vr_w : GCCBuiltin<"__builtin_lasx_xvinsgr2vr_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_i32_ty, llvm_i32_ty], ++ [IntrNoMem]>; ++def int_loongarch_lasx_xvinsgr2vr_d : GCCBuiltin<"__builtin_lasx_xvinsgr2vr_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_i64_ty, llvm_i32_ty], ++ [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvfdiv_s : GCCBuiltin<"__builtin_lasx_xvfdiv_s">, ++ Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvfdiv_d : GCCBuiltin<"__builtin_lasx_xvfdiv_d">, ++ Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvslli_b : GCCBuiltin<"__builtin_lasx_xvslli_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvslli_h : GCCBuiltin<"__builtin_lasx_xvslli_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvslli_w : GCCBuiltin<"__builtin_lasx_xvslli_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvslli_d : GCCBuiltin<"__builtin_lasx_xvslli_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvsrli_b : GCCBuiltin<"__builtin_lasx_xvsrli_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsrli_h : GCCBuiltin<"__builtin_lasx_xvsrli_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsrli_w : GCCBuiltin<"__builtin_lasx_xvsrli_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsrli_d : GCCBuiltin<"__builtin_lasx_xvsrli_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvsrai_b : GCCBuiltin<"__builtin_lasx_xvsrai_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsrai_h : GCCBuiltin<"__builtin_lasx_xvsrai_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsrai_w : GCCBuiltin<"__builtin_lasx_xvsrai_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsrai_d : GCCBuiltin<"__builtin_lasx_xvsrai_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvshuf4i_b : GCCBuiltin<"__builtin_lasx_xvshuf4i_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvshuf4i_h : GCCBuiltin<"__builtin_lasx_xvshuf4i_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvshuf4i_w : GCCBuiltin<"__builtin_lasx_xvshuf4i_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvshuf4i_d : GCCBuiltin<"__builtin_lasx_xvshuf4i_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvrotr_b : GCCBuiltin<"__builtin_lasx_xvrotr_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvrotr_h : GCCBuiltin<"__builtin_lasx_xvrotr_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvrotr_w : GCCBuiltin<"__builtin_lasx_xvrotr_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvrotr_d : GCCBuiltin<"__builtin_lasx_xvrotr_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvrotri_b : GCCBuiltin<"__builtin_lasx_xvrotri_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvrotri_h : GCCBuiltin<"__builtin_lasx_xvrotri_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvrotri_w : GCCBuiltin<"__builtin_lasx_xvrotri_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvrotri_d : GCCBuiltin<"__builtin_lasx_xvrotri_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvld : GCCBuiltin<"__builtin_lasx_xvld">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_ptr_ty, llvm_i32_ty], ++ [IntrReadMem, IntrArgMemOnly]>; ++ ++def int_loongarch_lasx_xvst : GCCBuiltin<"__builtin_lasx_xvst">, ++ Intrinsic<[], [llvm_v32i8_ty, llvm_ptr_ty, llvm_i32_ty], ++ [IntrArgMemOnly]>; ++ ++def int_loongarch_lasx_xvrepl128vei_b : GCCBuiltin<"__builtin_lasx_xvrepl128vei_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvrepl128vei_h : GCCBuiltin<"__builtin_lasx_xvrepl128vei_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvrepl128vei_w : GCCBuiltin<"__builtin_lasx_xvrepl128vei_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvrepl128vei_d : GCCBuiltin<"__builtin_lasx_xvrepl128vei_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvinsve0_w : GCCBuiltin<"__builtin_lasx_xvinsve0_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvinsve0_d : GCCBuiltin<"__builtin_lasx_xvinsve0_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvpickve_w : GCCBuiltin<"__builtin_lasx_xvpickve_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvpickve_d : GCCBuiltin<"__builtin_lasx_xvpickve_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvreplve0_b : GCCBuiltin<"__builtin_lasx_xvreplve0_b">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvreplve0_h : GCCBuiltin<"__builtin_lasx_xvreplve0_h">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvreplve0_w : GCCBuiltin<"__builtin_lasx_xvreplve0_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvreplve0_d : GCCBuiltin<"__builtin_lasx_xvreplve0_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvreplve0_q : GCCBuiltin<"__builtin_lasx_xvreplve0_q">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_vext2xv_d_w : GCCBuiltin<"__builtin_lasx_vext2xv_d_w">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_vext2xv_w_h : GCCBuiltin<"__builtin_lasx_vext2xv_w_h">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_vext2xv_h_b : GCCBuiltin<"__builtin_lasx_vext2xv_h_b">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v32i8_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_vext2xv_d_h : GCCBuiltin<"__builtin_lasx_vext2xv_d_h">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_vext2xv_w_b : GCCBuiltin<"__builtin_lasx_vext2xv_w_b">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_vext2xv_d_b : GCCBuiltin<"__builtin_lasx_vext2xv_d_b">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v32i8_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_vext2xv_du_wu : GCCBuiltin<"__builtin_lasx_vext2xv_du_wu">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_vext2xv_wu_hu : GCCBuiltin<"__builtin_lasx_vext2xv_wu_hu">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_vext2xv_hu_bu : GCCBuiltin<"__builtin_lasx_vext2xv_hu_bu">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v32i8_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_vext2xv_du_hu : GCCBuiltin<"__builtin_lasx_vext2xv_du_hu">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_vext2xv_wu_bu : GCCBuiltin<"__builtin_lasx_vext2xv_wu_bu">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_vext2xv_du_bu : GCCBuiltin<"__builtin_lasx_vext2xv_du_bu">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v32i8_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvpermi_q : GCCBuiltin<"__builtin_lasx_xvpermi_q">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvpermi_d : GCCBuiltin<"__builtin_lasx_xvpermi_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvperm_w : GCCBuiltin<"__builtin_lasx_xvperm_w">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvsrlrni_b_h : GCCBuiltin<"__builtin_lasx_xvsrlrni_b_h">, ++ Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsrlrni_h_w : GCCBuiltin<"__builtin_lasx_xvsrlrni_h_w">, ++ Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsrlrni_w_d : GCCBuiltin<"__builtin_lasx_xvsrlrni_w_d">, ++ Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty, llvm_i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvsrlrni_d_q : GCCBuiltin<"__builtin_lasx_xvsrlrni_d_q">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_i32_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xbz_v : GCCBuiltin<"__builtin_lasx_xbz_v">, ++ Intrinsic<[llvm_i32_ty], [llvm_v32i8_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xbnz_v : GCCBuiltin<"__builtin_lasx_xbnz_v">, ++ Intrinsic<[llvm_i32_ty], [llvm_v32i8_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xbz_b : GCCBuiltin<"__builtin_lasx_xbz_b">, ++ Intrinsic<[llvm_i32_ty], [llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xbz_h : GCCBuiltin<"__builtin_lasx_xbz_h">, ++ Intrinsic<[llvm_i32_ty], [llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xbz_w : GCCBuiltin<"__builtin_lasx_xbz_w">, ++ Intrinsic<[llvm_i32_ty], [llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xbz_d : GCCBuiltin<"__builtin_lasx_xbz_d">, ++ Intrinsic<[llvm_i32_ty], [llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xbnz_b : GCCBuiltin<"__builtin_lasx_xbnz_b">, ++ Intrinsic<[llvm_i32_ty], [llvm_v32i8_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xbnz_h : GCCBuiltin<"__builtin_lasx_xbnz_h">, ++ Intrinsic<[llvm_i32_ty], [llvm_v16i16_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xbnz_w : GCCBuiltin<"__builtin_lasx_xbnz_w">, ++ Intrinsic<[llvm_i32_ty], [llvm_v8i32_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xbnz_d : GCCBuiltin<"__builtin_lasx_xbnz_d">, ++ Intrinsic<[llvm_i32_ty], [llvm_v4i64_ty], [IntrNoMem]>; ++ ++def int_loongarch_lasx_xvextl_q_d : GCCBuiltin<"__builtin_lasx_xvextl_q_d">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty], [IntrNoMem]>; ++def int_loongarch_lasx_xvextl_qu_du : GCCBuiltin<"__builtin_lasx_xvextl_qu_du">, ++ Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty], [IntrNoMem]>; ++ ++//===----------------------------------------------------------------------===// ++// LoongArch BASE ++ ++def int_loongarch_cpucfg : GCCBuiltin<"__builtin_loongarch_cpucfg">, ++ Intrinsic<[llvm_i32_ty], [llvm_i32_ty], []>; ++ ++def int_loongarch_csrrd : GCCBuiltin<"__builtin_loongarch_csrrd">, ++ Intrinsic<[llvm_i32_ty], [llvm_i32_ty], []>; ++ ++def int_loongarch_dcsrrd : GCCBuiltin<"__builtin_loongarch_dcsrrd">, ++ Intrinsic<[llvm_i64_ty], [llvm_i64_ty], []>; ++ ++def int_loongarch_csrwr : GCCBuiltin<"__builtin_loongarch_csrwr">, ++ Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], []>; ++ ++def int_loongarch_dcsrwr : GCCBuiltin<"__builtin_loongarch_dcsrwr">, ++ Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i64_ty], []>; ++ ++def int_loongarch_csrxchg : GCCBuiltin<"__builtin_loongarch_csrxchg">, ++ Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], []>; ++ ++def int_loongarch_dcsrxchg : GCCBuiltin<"__builtin_loongarch_dcsrxchg">, ++ Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i64_ty, llvm_i64_ty], []>; ++ ++def int_loongarch_iocsrrd_b : GCCBuiltin<"__builtin_loongarch_iocsrrd_b">, ++ Intrinsic<[llvm_i32_ty], [llvm_i32_ty], []>; ++ ++def int_loongarch_iocsrrd_h : GCCBuiltin<"__builtin_loongarch_iocsrrd_h">, ++ Intrinsic<[llvm_i32_ty], [llvm_i32_ty], []>; ++ ++def int_loongarch_iocsrrd_w : GCCBuiltin<"__builtin_loongarch_iocsrrd_w">, ++ Intrinsic<[llvm_i32_ty], [llvm_i32_ty], []>; ++ ++def int_loongarch_iocsrrd_d : GCCBuiltin<"__builtin_loongarch_iocsrrd_d">, ++ Intrinsic<[llvm_i64_ty], [llvm_i32_ty], []>; ++ ++def int_loongarch_iocsrwr_b : GCCBuiltin<"__builtin_loongarch_iocsrwr_b">, ++ Intrinsic<[], [llvm_i32_ty, llvm_i32_ty], []>; ++ ++def int_loongarch_iocsrwr_h : GCCBuiltin<"__builtin_loongarch_iocsrwr_h">, ++ Intrinsic<[], [llvm_i32_ty, llvm_i32_ty], []>; ++ ++def int_loongarch_iocsrwr_w : GCCBuiltin<"__builtin_loongarch_iocsrwr_w">, ++ Intrinsic<[], [llvm_i32_ty, llvm_i32_ty], []>; ++ ++def int_loongarch_iocsrwr_d : GCCBuiltin<"__builtin_loongarch_iocsrwr_d">, ++ Intrinsic<[], [llvm_i64_ty, llvm_i32_ty], []>; ++ ++def int_loongarch_cacop : GCCBuiltin<"__builtin_loongarch_cacop">, ++ Intrinsic<[], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], []>; ++ ++def int_loongarch_dcacop : GCCBuiltin<"__builtin_loongarch_dcacop">, ++ Intrinsic<[], [llvm_i32_ty, llvm_i64_ty, llvm_i64_ty], []>; ++ ++def int_loongarch_crc_w_b_w : GCCBuiltin<"__builtin_loongarch_crc_w_b_w">, ++ Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], []>; ++ ++def int_loongarch_crc_w_h_w : GCCBuiltin<"__builtin_loongarch_crc_w_h_w">, ++ Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], []>; ++ ++def int_loongarch_crc_w_w_w : GCCBuiltin<"__builtin_loongarch_crc_w_w_w">, ++ Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], []>; ++ ++def int_loongarch_crc_w_d_w : GCCBuiltin<"__builtin_loongarch_crc_w_d_w">, ++ Intrinsic<[llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty], []>; ++ ++def int_loongarch_crcc_w_b_w : GCCBuiltin<"__builtin_loongarch_crcc_w_b_w">, ++ Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], []>; ++ ++def int_loongarch_crcc_w_h_w : GCCBuiltin<"__builtin_loongarch_crcc_w_h_w">, ++ Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], []>; ++ ++def int_loongarch_crcc_w_w_w : GCCBuiltin<"__builtin_loongarch_crcc_w_w_w">, ++ Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], []>; ++ ++def int_loongarch_crcc_w_d_w : GCCBuiltin<"__builtin_loongarch_crcc_w_d_w">, ++ Intrinsic<[llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty], []>; ++ ++def int_loongarch_tlbclr : GCCBuiltin<"__builtin_loongarch_tlbclr">, ++ Intrinsic<[], [], []>; ++ ++def int_loongarch_tlbflush : GCCBuiltin<"__builtin_loongarch_tlbflush">, ++ Intrinsic<[], [], []>; ++ ++def int_loongarch_tlbfill : GCCBuiltin<"__builtin_loongarch_tlbfill">, ++ Intrinsic<[], [], []>; ++ ++def int_loongarch_tlbrd : GCCBuiltin<"__builtin_loongarch_tlbrd">, ++ Intrinsic<[], [], []>; ++ ++def int_loongarch_tlbwr : GCCBuiltin<"__builtin_loongarch_tlbwr">, ++ Intrinsic<[], [], []>; ++ ++def int_loongarch_tlbsrch : GCCBuiltin<"__builtin_loongarch_tlbsrch">, ++ Intrinsic<[], [], []>; ++ ++def int_loongarch_syscall : GCCBuiltin<"__builtin_loongarch_syscall">, ++ Intrinsic<[], [llvm_i64_ty], []>; ++ ++def int_loongarch_break : GCCBuiltin<"__builtin_loongarch_break">, ++ Intrinsic<[], [llvm_i64_ty], []>; ++ ++def int_loongarch_asrtle_d : GCCBuiltin<"__builtin_loongarch_asrtle_d">, ++ Intrinsic<[], [llvm_i64_ty, llvm_i64_ty], []>; ++ ++def int_loongarch_asrtgt_d : GCCBuiltin<"__builtin_loongarch_asrtgt_d">, ++ Intrinsic<[], [llvm_i64_ty, llvm_i64_ty], []>; ++ ++def int_loongarch_dbar : GCCBuiltin<"__builtin_loongarch_dbar">, ++ Intrinsic<[], [llvm_i64_ty], []>; ++ ++def int_loongarch_ibar : GCCBuiltin<"__builtin_loongarch_ibar">, ++ Intrinsic<[], [llvm_i64_ty], []>; ++ ++} +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/MC/MCContext.h b/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/MC/MCContext.h +index b925f321888..87fdac4a9c7 100644 +--- a/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/MC/MCContext.h ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/MC/MCContext.h +@@ -188,7 +188,7 @@ namespace llvm { + /// differences between temporary and non-temporary labels (primarily on + /// Darwin). + bool AllowTemporaryLabels = true; +- bool UseNamesOnTempLabels = true; ++ bool UseNamesOnTempLabels = false; + + /// The Compile Unit ID that we are currently processing. + unsigned DwarfCompileUnitID = 0; +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/Object/ELFObjectFile.h b/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/Object/ELFObjectFile.h +index 8a68e49477f..3044ca1313b 100644 +--- a/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/Object/ELFObjectFile.h ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/Object/ELFObjectFile.h +@@ -1080,6 +1080,8 @@ StringRef ELFObjectFile::getFileFormatName() const { + return "ELF32-ppc"; + case ELF::EM_RISCV: + return "ELF32-riscv"; ++ case ELF::EM_LOONGARCH: ++ return "elf32-loongarch"; + case ELF::EM_SPARC: + case ELF::EM_SPARC32PLUS: + return "ELF32-sparc"; +@@ -1104,6 +1106,8 @@ StringRef ELFObjectFile::getFileFormatName() const { + return "ELF64-s390"; + case ELF::EM_SPARCV9: + return "ELF64-sparc"; ++ case ELF::EM_LOONGARCH: ++ return "elf64-loongarch"; + case ELF::EM_MIPS: + return "ELF64-mips"; + case ELF::EM_AMDGPU: +@@ -1161,6 +1165,15 @@ template Triple::ArchType ELFObjectFile::getArch() const { + default: + report_fatal_error("Invalid ELFCLASS!"); + } ++ case ELF::EM_LOONGARCH: ++ switch (EF.getHeader()->e_ident[ELF::EI_CLASS]) { ++ case ELF::ELFCLASS32: ++ return Triple::loongarch32; ++ case ELF::ELFCLASS64: ++ return Triple::loongarch64; ++ default: ++ report_fatal_error("Invalid ELFCLASS!"); ++ } + case ELF::EM_S390: + return Triple::systemz; + +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/Support/Signals.h b/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/Support/Signals.h +index e0a18e72f2a..148216b8f87 100644 +--- a/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/Support/Signals.h ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/Support/Signals.h +@@ -14,6 +14,7 @@ + #ifndef LLVM_SUPPORT_SIGNALS_H + #define LLVM_SUPPORT_SIGNALS_H + ++#include + #include + + namespace llvm { +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/module.modulemap b/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/module.modulemap +index d281682ae00..1428f62fb10 100644 +--- a/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/module.modulemap ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/module.modulemap +@@ -64,6 +64,7 @@ module LLVM_BinaryFormat { + textual header "BinaryFormat/ELFRelocs/Hexagon.def" + textual header "BinaryFormat/ELFRelocs/i386.def" + textual header "BinaryFormat/ELFRelocs/Lanai.def" ++ textual header "BinaryFormat/ELFRelocs/LoongArch.def" + textual header "BinaryFormat/ELFRelocs/Mips.def" + textual header "BinaryFormat/ELFRelocs/MSP430.def" + textual header "BinaryFormat/ELFRelocs/PowerPC64.def" +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/CodeGen/LLVMTargetMachine.cpp b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/CodeGen/LLVMTargetMachine.cpp +index 50c178ff759..b485f2cf726 100644 +--- a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/CodeGen/LLVMTargetMachine.cpp ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/CodeGen/LLVMTargetMachine.cpp +@@ -157,9 +157,6 @@ bool LLVMTargetMachine::addAsmPrinter(PassManagerBase &PM, + if (!MCE || !MAB) + return true; + +- // Don't waste memory on names of temp labels. +- Context.setUseNamesOnTempLabels(false); +- + Triple T(getTargetTriple().str()); + AsmStreamer.reset(getTarget().createMCObjectStreamer( + T, Context, std::unique_ptr(MAB), +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp +index 176d71643e1..8a715781c93 100644 +--- a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp +@@ -693,6 +693,9 @@ InstrEmitter::EmitDbgValue(SDDbgValue *SD, + MIB.addReg(0U, RegState::Debug); + MIB.addMetadata(Var); + MIB.addMetadata(Expr); ++ // FIXME: Fix rustc build error with lto=thin option on loongarch. ++ if (MF->getTarget().getTargetTriple().isLoongArch()) ++ return nullptr; + return &*MIB; + } + +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp +index 8cb9814300d..5f38549ec16 100644 +--- a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp +@@ -176,6 +176,16 @@ void TargetLoweringObjectFileELF::Initialize(MCContext &Ctx, + PersonalityEncoding = dwarf::DW_EH_PE_absptr; + TTypeEncoding = dwarf::DW_EH_PE_absptr; + break; ++ case Triple::loongarch32: ++ case Triple::loongarch64: ++ PersonalityEncoding = dwarf::DW_EH_PE_indirect; ++ ++ // Note: gas does not support pc-relative LSDA references. ++ LSDAEncoding = dwarf::DW_EH_PE_absptr; ++ ++ TTypeEncoding = dwarf::DW_EH_PE_indirect | dwarf::DW_EH_PE_pcrel | ++ dwarf::DW_EH_PE_sdata4; ++ break; + case Triple::mips: + case Triple::mipsel: + case Triple::mips64: +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/CodeGen/XRayInstrumentation.cpp b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/CodeGen/XRayInstrumentation.cpp +index 4847a0c3e84..e8aeca059ee 100644 +--- a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/CodeGen/XRayInstrumentation.cpp ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/CodeGen/XRayInstrumentation.cpp +@@ -210,6 +210,8 @@ bool XRayInstrumentation::runOnMachineFunction(MachineFunction &MF) { + case Triple::ArchType::arm: + case Triple::ArchType::thumb: + case Triple::ArchType::aarch64: ++ case Triple::ArchType::loongarch32: ++ case Triple::ArchType::loongarch64: + case Triple::ArchType::mips: + case Triple::ArchType::mipsel: + case Triple::ArchType::mips64: +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp +index 1ac9a58aeae..b2043066e3c 100644 +--- a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp +@@ -149,6 +149,11 @@ createLocalCompileCallbackManager(const Triple &T, ExecutionSession &ES, + return CCMgrT::Create(ES, ErrorHandlerAddress); + } + ++ case Triple::loongarch64: { ++ typedef orc::LocalJITCompileCallbackManager CCMgrT; ++ return CCMgrT::Create(ES, ErrorHandlerAddress); ++ } ++ + case Triple::x86_64: { + if ( T.getOS() == Triple::OSType::Win32 ) { + typedef orc::LocalJITCompileCallbackManager CCMgrT; +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/ExecutionEngine/Orc/LazyReexports.cpp b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/ExecutionEngine/Orc/LazyReexports.cpp +index aab490feb8e..ce75fce8901 100644 +--- a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/ExecutionEngine/Orc/LazyReexports.cpp ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/ExecutionEngine/Orc/LazyReexports.cpp +@@ -111,6 +111,10 @@ createLocalLazyCallThroughManager(const Triple &T, ExecutionSession &ES, + case Triple::mips64el: + return LocalLazyCallThroughManager::Create(ES, ErrorHandlerAddr); + ++ case Triple::loongarch64: ++ return LocalLazyCallThroughManager::Create( ++ ES, ErrorHandlerAddr); ++ + case Triple::x86_64: + if (T.getOS() == Triple::OSType::Win32) + return LocalLazyCallThroughManager::Create( +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/ExecutionEngine/Orc/OrcABISupport.cpp b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/ExecutionEngine/Orc/OrcABISupport.cpp +index 8ed23de419d..84680d626f5 100644 +--- a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/ExecutionEngine/Orc/OrcABISupport.cpp ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/ExecutionEngine/Orc/OrcABISupport.cpp +@@ -979,5 +979,238 @@ Error OrcMips64::emitIndirectStubsBlock(IndirectStubsInfo &StubsInfo, + + return Error::success(); + } ++ ++void OrcLoongArch64::writeResolverCode(uint8_t *ResolveMem, ++ JITReentryFn Reentry, ++ void *CallbackMgr) { ++ ++ const uint32_t ResolverCode[] = { ++ // resolver_entry: ++ 0x02fc8063, // 0x0: addi.d $r3,$r3,-224(0xf20) ++ 0x29c00064, // 0x4: st.d $r4,$r3,0 ++ 0x29c02065, // 0x8: st.d $r5,$r3,8(0x8) ++ 0x29c04066, // 0xc: st.d $r6,$r3,16(0x10) ++ 0x29c06067, // 0x10: st.d $r7,$r3,24(0x18) ++ 0x29c08068, // 0x14: st.d $r8,$r3,32(0x20) ++ 0x29c0a069, // 0x18: st.d $r9,$r3,40(0x28) ++ 0x29c0c06a, // 0x1c: st.d $r10,$r3,48(0x30) ++ 0x29c0e06b, // 0x20: st.d $r11,$r3,56(0x38) ++ 0x29c1006c, // 0x24: st.d $r12,$r3,64(0x40) ++ 0x29c1206d, // 0x28: st.d $r13,$r3,72(0x48) ++ 0x29c1406e, // 0x2c: st.d $r14,$r3,80(0x50) ++ 0x29c1606f, // 0x30: st.d $r15,$r3,88(0x58) ++ 0x29c18070, // 0x34: st.d $r16,$r3,96(0x60) ++ 0x29c1a071, // 0x38: st.d $r17,$r3,104(0x68) ++ 0x29c1c072, // 0x3c: st.d $r18,$r3,112(0x70) ++ 0x29c1e073, // 0x40: st.d $r19,$r3,120(0x78) ++ 0x29c20074, // 0x44: st.d $r20,$r3,128(0x80) ++ 0x29c22076, // 0x48: st.d $r22,$r3,136(0x88) ++ 0x29c24077, // 0x4c: st.d $r23,$r3,144(0x90) ++ 0x29c26078, // 0x50: st.d $r24,$r3,152(0x98) ++ 0x29c28079, // 0x54: st.d $r25,$r3,160(0xa0) ++ 0x29c2a07a, // 0x58: st.d $r26,$r3,168(0xa8) ++ 0x29c2c07b, // 0x5c: st.d $r27,$r3,176(0xb0) ++ 0x29c2e07c, // 0x60: st.d $r28,$r3,184(0xb8) ++ 0x29c3007d, // 0x64: st.d $r29,$r3,192(0xc0) ++ 0x29c3207e, // 0x68: st.d $r30,$r3,200(0xc8) ++ 0x29c3407f, // 0x6c: st.d $r31,$r3,208(0xd0) ++ 0x29c36061, // 0x70: st.d $r1,$r3,216(0xd8) ++ // JIT re-entry ctx addr. ++ 0x00000000, // 0x74: lu12i.w $a0,hi(ctx) ++ 0x00000000, // 0x78: ori $a0,$a0,lo(ctx) ++ 0x00000000, // 0x7c: lu32i.d $a0,higher(ctx) ++ 0x00000000, // 0x80: lu52i.d $a0,$a0,highest(ctx) ++ ++ 0x00150025, // 0x84: move $r5,$r1 ++ 0x02ffa0a5, // 0x88: addi.d $r5,$r5,-24(0xfe8) ++ ++ // JIT re-entry fn addr: ++ 0x00000000, // 0x8c: lu12i.w $t0,hi(reentry) ++ 0x00000000, // 0x90: ori $t0,$t0,lo(reentry) ++ 0x00000000, // 0x94: lu32i.d $t0,higher(reentry) ++ 0x00000000, // 0x98: lu52i.d $t0,$t0,highest(reentry) ++ 0x4c0002a1, // 0x9c: jirl $r1,$r21,0 ++ 0x00150095, // 0xa0: move $r21,$r4 ++ 0x28c36061, // 0xa4: ld.d $r1,$r3,216(0xd8) ++ 0x28c3407f, // 0xa8: ld.d $r31,$r3,208(0xd0) ++ 0x28c3207e, // 0xac: ld.d $r30,$r3,200(0xc8) ++ 0x28c3007d, // 0xb0: ld.d $r29,$r3,192(0xc0) ++ 0x28c2e07c, // 0xb4: ld.d $r28,$r3,184(0xb8) ++ 0x28c2c07b, // 0xb8: ld.d $r27,$r3,176(0xb0) ++ 0x28c2a07a, // 0xbc: ld.d $r26,$r3,168(0xa8) ++ 0x28c28079, // 0xc0: ld.d $r25,$r3,160(0xa0) ++ 0x28c26078, // 0xc4: ld.d $r24,$r3,152(0x98) ++ 0x28c24077, // 0xc8: ld.d $r23,$r3,144(0x90) ++ 0x28c22076, // 0xcc: ld.d $r22,$r3,136(0x88) ++ 0x28c20074, // 0xd0: ld.d $r20,$r3,128(0x80) ++ 0x28c1e073, // 0xd4: ld.d $r19,$r3,120(0x78) ++ 0x28c1c072, // 0xd8: ld.d $r18,$r3,112(0x70) ++ 0x28c1a071, // 0xdc: ld.d $r17,$r3,104(0x68) ++ 0x28c18070, // 0xe0: ld.d $r16,$r3,96(0x60) ++ 0x28c1606f, // 0xe4: ld.d $r15,$r3,88(0x58) ++ 0x28c1406e, // 0xe8: ld.d $r14,$r3,80(0x50) ++ 0x28c1206d, // 0xec: ld.d $r13,$r3,72(0x48) ++ 0x28c1006c, // 0xf0: ld.d $r12,$r3,64(0x40) ++ 0x28c0e06b, // 0xf4: ld.d $r11,$r3,56(0x38) ++ 0x28c0c06a, // 0xf8: ld.d $r10,$r3,48(0x30) ++ 0x28c0a069, // 0xfc: ld.d $r9,$r3,40(0x28) ++ 0x28c08068, // 0x100: ld.d $r8,$r3,32(0x20) ++ 0x28c06067, // 0x104: ld.d $r7,$r3,24(0x18) ++ 0x28c04066, // 0x108: ld.d $r6,$r3,16(0x10) ++ 0x28c02065, // 0x10c: ld.d $r5,$r3,8(0x8) ++ 0x28c00064, // 0x110: ld.d $r4,$r3,0 ++ 0x02c38063, // 0x114: addi.d $r3,$r3,224(0xe0) ++ 0x00150281, // 0x118: move $r1,$r20 ++ 0x4c0002a0, // 0x11c: jirl $r0,$r21,0 ++ }; ++ ++ const unsigned ReentryFnAddrOffset = 0x8c; // JIT re-entry fn addr lu12i.w ++ const unsigned ReentryCtxAddrOffset = 0x74; // JIT re-entry ctx addr lu12i.w ++ ++ memcpy(ResolveMem, ResolverCode, sizeof(ResolverCode)); ++ ++ uint64_t CallMgrAddr = reinterpret_cast(CallbackMgr); ++ ++ uint32_t ReentryCtxLU12i = 0x14000004 | ((CallMgrAddr << 32 >> 44) << 5); ++ uint32_t ReentryCtxORi = 0x03800084 | ((CallMgrAddr & 0xFFF) << 10); ++ uint32_t ReentryCtxLU32i = 0x16000004 | ((CallMgrAddr << 12 >> 44) << 5); ++ uint32_t ReentryCtxLU52i = 0x03000084 | ((CallMgrAddr >> 52) << 10); ++ ++ memcpy(ResolveMem + ReentryCtxAddrOffset, &ReentryCtxLU12i, ++ sizeof(ReentryCtxLU12i)); ++ memcpy(ResolveMem + (ReentryCtxAddrOffset + 4), &ReentryCtxORi, ++ sizeof(ReentryCtxORi)); ++ memcpy(ResolveMem + (ReentryCtxAddrOffset + 8), &ReentryCtxLU32i, ++ sizeof(ReentryCtxLU32i)); ++ memcpy(ResolveMem + (ReentryCtxAddrOffset + 12), &ReentryCtxLU52i, ++ sizeof(ReentryCtxLU52i)); ++ ++ uint64_t ReentryAddr = reinterpret_cast(Reentry); ++ ++ uint32_t ReentryLU12i = 0x14000015 | ((ReentryAddr << 32 >> 44) << 5); ++ uint32_t ReentryORi = 0x038002b5 | ((ReentryAddr & 0xFFF) << 10); ++ uint32_t ReentryLU32i = 0x16000015 | ((ReentryAddr << 12 >> 44) << 5); ++ uint32_t ReentryLU52i = 0x030002b5 | ((ReentryAddr >> 52) << 10); ++ ++ memcpy(ResolveMem + ReentryFnAddrOffset, &ReentryLU12i, ++ sizeof(ReentryLU12i)); ++ memcpy(ResolveMem + (ReentryFnAddrOffset + 4), &ReentryORi, ++ sizeof(ReentryORi)); ++ memcpy(ResolveMem + (ReentryFnAddrOffset + 8), &ReentryLU32i, ++ sizeof(ReentryLU32i)); ++ memcpy(ResolveMem + (ReentryFnAddrOffset + 12), &ReentryLU52i, ++ sizeof(ReentryLU52i)); ++} ++ ++void OrcLoongArch64::writeTrampolines(uint8_t *TrampolineMem, ++ void *ResolverAddr, ++ unsigned NumTrampolines) { ++ ++ uint32_t *Trampolines = ++ reinterpret_cast(TrampolineMem); ++ uint64_t ResolveAddr = reinterpret_cast(ResolverAddr); ++ ++ uint64_t HiBits = ((ResolveAddr << 32 >> 44) << 5); ++ uint64_t LoBits = ((ResolveAddr & 0xFFF) << 10); ++ uint64_t HigherBits = ((ResolveAddr << 12 >> 44) << 5); ++ uint64_t HighestBits = ((ResolveAddr >> 52) << 10); ++ ++ for (unsigned I = 0; I < NumTrampolines; ++I) { ++ Trampolines[10 * I + 0] = 0x00150034; // move $t8,$ra ++ Trampolines[10 * I + 1] = ++ 0x14000015 | HiBits; // lu12i.w $r21,hi(ResolveAddr) ++ Trampolines[10 * I + 2] = ++ 0x038002b5 | LoBits; // ori $r21,$r21,lo(ResolveAddr) ++ Trampolines[10 * I + 3] = ++ 0x16000015 | HigherBits; // lu32i $r21,higher(ResolveAddr) ++ Trampolines[10 * I + 4] = ++ 0x030002b5 | HighestBits; // lu52i $r21,$r21,highest(ResolveAddr) ++ Trampolines[10 * I + 5] = 0x4c0002a1; // jirl $ra, $r21, 0 ++ } ++} ++ ++Error OrcLoongArch64::emitIndirectStubsBlock(IndirectStubsInfo &StubsInfo, ++ unsigned MinStubs, ++ void *InitialPtrVal) { ++ // Stub format is: ++ // ++ // .section __orc_stubs ++ // stub1: ++ // lu12i.w $r21, %abs(ptr1)<<32>>44 ++ // ori $r21, $r21, %abs(ptr1)&0xfff ++ // lu32i.d $r21, %abs(ptr1)<<12>>44 ++ // lu52i.d $r21, $r21, %abs(ptr1)>>52 ++ // ld.d $r21, $r21, 0 ++ // jirl $r0, $r21, 0 ++ // stub2: ++ // lu12i.w $r21, %abs(ptr2)<<32>>44 ++ // ori $r21, $r21, %abs(ptr2)&0xfff ++ // lu32i.d $r21, %abs(ptr2)<<12>>44 ++ // lu52i.d $r21, $r21, %abs(ptr2)>>52 ++ // ld.d $r21, $r21, 0 ++ // jirl $r0, $r21, 0 ++ // ++ // ... ++ // ++ // .section __orc_ptrs ++ // ptr1: ++ // .dword 0x0 ++ // ptr2: ++ // .dword 0x0 ++ // ++ // ... ++ const unsigned StubSize = IndirectStubsInfo::StubSize; ++ ++ // Emit at least MinStubs, rounded up to fill the pages allocated. ++ static const unsigned PageSize = sys::Process::getPageSizeEstimate(); ++ unsigned NumPages = ((MinStubs * StubSize) + (PageSize - 1)) / PageSize; ++ unsigned NumStubs = (NumPages * PageSize) / StubSize; ++ ++ // Allocate memory for stubs and pointers in one call. ++ std::error_code EC; ++ auto StubsMem = sys::OwningMemoryBlock(sys::Memory::allocateMappedMemory( ++ 2 * NumPages * PageSize, nullptr, ++ sys::Memory::MF_READ | sys::Memory::MF_WRITE, EC)); ++ ++ if (EC) ++ return errorCodeToError(EC); ++ ++ // Create separate MemoryBlocks representing the stubs and pointers. ++ sys::MemoryBlock StubsBlock(StubsMem.base(), NumPages * PageSize); ++ sys::MemoryBlock PtrsBlock(static_cast(StubsMem.base()) + ++ NumPages * PageSize, ++ NumPages * PageSize); ++ ++ // Populate the stubs page stubs and mark it executable. ++ uint32_t *Stub = reinterpret_cast(StubsBlock.base()); ++ uint64_t PtrAddr = reinterpret_cast(PtrsBlock.base()); ++ ++ for (unsigned I = 0; I < NumStubs; ++I, PtrAddr += 8) { ++ uint64_t HiBits = ((PtrAddr << 32 >> 44) << 5); ++ uint64_t LoBits = ((PtrAddr & 0xFFF) << 10); ++ uint64_t HigherBits = ((PtrAddr << 12 >> 44) << 5); ++ uint64_t HighestBits = ((PtrAddr >> 52) << 10); ++ Stub[8 * I + 0] = 0x14000015 | HiBits; // lu12i.w $r21, hi(PtrAddr) ++ Stub[8 * I + 1] = 0x038002b5 | LoBits; // ori $r21, $r21, lo(PtrAddr) ++ Stub[8 * I + 2] = 0x16000015 | HigherBits; // lu32i.d $r21, higher(PtrAddr) ++ Stub[8 * I + 3] = 0x030002b5 | HighestBits; // lu52i.d $r21, $r21, highest(PtrAddr) ++ Stub[8 * I + 4] = 0x28c002b5; // ld.d $r21, $r21, 0 ++ Stub[8 * I + 5] = 0x4c0002a0; // jirl $r0, $r21, 0 ++ } ++ ++ if (auto EC = sys::Memory::protectMappedMemory( ++ StubsBlock, sys::Memory::MF_READ | sys::Memory::MF_EXEC)) ++ return errorCodeToError(EC); ++ ++ // Initialize all pointers to point at FailureAddress. ++ void **Ptr = reinterpret_cast(PtrsBlock.base()); ++ for (unsigned I = 0; I < NumStubs; ++I) ++ Ptr[I] = InitialPtrVal; ++ ++ StubsInfo = IndirectStubsInfo(NumStubs, std::move(StubsMem)); ++ ++ return Error::success(); ++} ++ + } // End namespace orc. + } // End namespace llvm. +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp +index 440ab4174a5..2d185ad694a 100644 +--- a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp +@@ -541,6 +541,191 @@ void RuntimeDyldELF::resolveARMRelocation(const SectionEntry &Section, + } + } + ++void RuntimeDyldELF::resolveLoongArch64Relocation(const SectionEntry &Section, ++ uint64_t Offset, ++ uint64_t Value, uint32_t Type, ++ int64_t Addend) { ++ uint32_t *TargetPtr = ++ reinterpret_cast(Section.getAddressWithOffset(Offset)); ++ uint64_t FinalAddress = Section.getLoadAddressWithOffset(Offset); ++ uint64_t tmp1, tmp2, tmp3; ++ ++ LLVM_DEBUG(dbgs() << "[XXX] resolveLoongArch64Relocation, LocalAddress: 0x" ++ << format("%llx", Section.getAddressWithOffset(Offset)) ++ << " FinalAddress: 0x" << format("%llx", FinalAddress) ++ << " Value: 0x" << format("%llx", Value) << " Type: 0x" ++ << format("%x", Type) << " Addend: 0x" ++ << format("%llx", Addend) << "\n"); ++ ++ switch (Type) { ++ case ELF::R_LARCH_SOP_PUSH_GPREL: ++ case ELF::R_LARCH_SOP_PUSH_TLS_TPREL: ++ case ELF::R_LARCH_SOP_PUSH_TLS_GOT: ++ case ELF::R_LARCH_SOP_PUSH_TLS_GD: ++ default: ++ llvm_unreachable("Relocation type not implemented yet!"); ++ break; ++ case ELF::R_LARCH_MARK_LA: ++ // mark la ++ MarkLA = true; ++ break; ++ case ELF::R_LARCH_SOP_PUSH_ABSOLUTE: ++ if (MarkLA && !Addend) ++ // push(value) ++ ValuesStack.push_back(Value); ++ else ++ // push(addend) ++ ValuesStack.push_back(Addend); ++ break; ++ case ELF::R_LARCH_SOP_PUSH_PLT_PCREL: ++ case ELF::R_LARCH_SOP_PUSH_PCREL: ++ MarkLA = false; ++ // push(value -pc + addend) ++ ValuesStack.push_back(Value - FinalAddress + Addend); ++ break; ++ case ELF::R_LARCH_SOP_NOT: ++ // pop(tmp1) ++ // push(!tmp1) ++ tmp1 = ValuesStack.pop_back_val(); ++ ValuesStack.push_back(!tmp1); ++ break; ++ case ELF::R_LARCH_SOP_AND: ++ // pop(tmp2) ++ // pop(tmp1) ++ // push(tmp1 & tmp2) ++ tmp2 = ValuesStack.pop_back_val(); ++ tmp1 = ValuesStack.pop_back_val(); ++ ValuesStack.push_back(tmp1 & tmp2); ++ break; ++ case ELF::R_LARCH_SOP_IF_ELSE: ++ // pop(tmp3) ++ // pop(tmp2) ++ // pop(tmp1) ++ // push(tmp1 ? tmp2 : tmp3) ++ tmp3 = ValuesStack.pop_back_val(); ++ tmp2 = ValuesStack.pop_back_val(); ++ tmp1 = ValuesStack.pop_back_val(); ++ ValuesStack.push_back(tmp1 ? tmp2 : tmp3); ++ break; ++ case ELF::R_LARCH_SOP_ADD: ++ // pop(tmp2) ++ // pop(tmp1) ++ // push(tmp1 + tmp2) ++ tmp2 = ValuesStack.pop_back_val(); ++ tmp1 = ValuesStack.pop_back_val(); ++ ValuesStack.push_back(tmp1 + tmp2); ++ break; ++ case ELF::R_LARCH_SOP_SUB: ++ // pop(tmp2) ++ // pop(tmp1) ++ // push(tmp1 - tmp2) ++ tmp2 = ValuesStack.pop_back_val(); ++ tmp1 = ValuesStack.pop_back_val(); ++ ValuesStack.push_back(tmp1 - tmp2); ++ break; ++ case ELF::R_LARCH_SOP_SR: ++ // pop(tmp2) ++ // pop(tmp1) ++ // push(tmp1 >> tmp2) ++ tmp2 = ValuesStack.pop_back_val(); ++ tmp1 = ValuesStack.pop_back_val(); ++ ValuesStack.push_back(tmp1 >> tmp2); ++ break; ++ case ELF::R_LARCH_SOP_SL: ++ // pop(tmp2) ++ // pop(tmp1) ++ // push(tmp1 << tmp2) ++ tmp2 = ValuesStack.pop_back_val(); ++ tmp1 = ValuesStack.pop_back_val(); ++ ValuesStack.push_back(tmp1 << tmp2); ++ break; ++ case ELF::R_LARCH_32: ++ support::ulittle32_t::ref{TargetPtr} = ++ static_cast(Value + Addend); ++ break; ++ case ELF::R_LARCH_64: ++ support::ulittle64_t::ref{TargetPtr} = Value + Addend; ++ break; ++ case ELF::R_LARCH_SOP_POP_32_U_10_12: ++ case ELF::R_LARCH_SOP_POP_32_S_10_12: ++ // pop(tmp1) ++ // get(inst) ++ // inst=(inst & 0xffc003ff)|((tmp1 & 0xfff) << 10) ++ // write(inst) ++ tmp1 = ValuesStack.pop_back_val(); ++ support::ulittle32_t::ref{TargetPtr} = ++ (support::ulittle32_t::ref{TargetPtr} & 0xffc003ff) | ++ static_cast((tmp1 & 0xfff) << 10); ++ break; ++ case ELF::R_LARCH_SOP_POP_32_S_5_20: ++ // pop(tmp1) ++ // get(inst) ++ // inst=(inst & 0xfe00001f)|((tmp1 & 0xfffff) << 5) ++ // write(inst) ++ tmp1 = ValuesStack.pop_back_val(); ++ support::ulittle32_t::ref{TargetPtr} = ++ (support::ulittle32_t::ref{TargetPtr} & 0xfe00001f) | ++ static_cast((tmp1 & 0xfffff) << 5); ++ break; ++ case ELF::R_LARCH_SOP_POP_32_S_10_16_S2: ++ // pop(tmp1) ++ // tmp1 >>=2 ++ // get(inst) ++ // inst=(inst & 0xfc0003ff)|((tmp1 & 0xffff) << 10) ++ // write(inst) ++ tmp1 = ValuesStack.pop_back_val(); ++ tmp1 >>= 2; ++ support::ulittle32_t::ref{TargetPtr} = ++ (support::ulittle32_t::ref{TargetPtr} & 0xfc0003ff) | ++ static_cast((tmp1 & 0xffff) << 10); ++ break; ++ case ELF::R_LARCH_SOP_POP_32_S_0_5_10_16_S2: ++ // pop(tmp1) ++ // tmp1 >>= 2 ++ // get(inst) ++ // inst=(inst & 0xfc0003e0)|((tmp1 & 0xffff) << 10)|((tmp1 & 0x1f0000) >> ++ // 16) write(inst) ++ tmp1 = ValuesStack.pop_back_val(); ++ tmp1 >>= 2; ++ support::ulittle32_t::ref{TargetPtr} = ++ (support::ulittle32_t::ref{TargetPtr} & 0xfc0003e0) | ++ static_cast((tmp1 & 0xffff) << 10) | ++ static_cast((tmp1 & 0x1f0000) >> 16); ++ break; ++ case ELF::R_LARCH_SOP_POP_32_S_0_10_10_16_S2: ++ // pop(tmp1) ++ // tmp1 >>= 2 ++ // get(inst) ++ // inst=(inst & 0xfc000000)|((tmp1 & 0xffff) << 10)|((tmp1 & 0x3ff0000) >> ++ // 16) write(inst) ++ tmp1 = ValuesStack.pop_back_val(); ++ tmp1 >>= 2; ++ support::ulittle32_t::ref{TargetPtr} = ++ (support::ulittle32_t::ref{TargetPtr} & 0xfc000000) | ++ static_cast((tmp1 & 0xffff) << 10) | ++ static_cast((tmp1 & 0x3ff0000) >> 16); ++ break; ++ case ELF::R_LARCH_ADD32: ++ support::ulittle32_t::ref{TargetPtr} = ++ (support::ulittle32_t::ref{TargetPtr} + ++ static_cast(Value + Addend)); ++ break; ++ case ELF::R_LARCH_SUB32: ++ support::ulittle32_t::ref{TargetPtr} = ++ (support::ulittle32_t::ref{TargetPtr} - ++ static_cast(Value + Addend)); ++ break; ++ case ELF::R_LARCH_ADD64: ++ support::ulittle64_t::ref{TargetPtr} = ++ (support::ulittle64_t::ref{TargetPtr} + Value + Addend); ++ break; ++ case ELF::R_LARCH_SUB64: ++ support::ulittle64_t::ref{TargetPtr} = ++ (support::ulittle64_t::ref{TargetPtr} - Value - Addend); ++ break; ++ } ++} ++ + void RuntimeDyldELF::setMipsABI(const ObjectFile &Obj) { + if (Arch == Triple::UnknownArch || + !StringRef(Triple::getArchTypePrefix(Arch)).equals("mips")) { +@@ -954,6 +1139,9 @@ void RuntimeDyldELF::resolveRelocation(const SectionEntry &Section, + resolveARMRelocation(Section, Offset, (uint32_t)(Value & 0xffffffffL), Type, + (uint32_t)(Addend & 0xffffffffL)); + break; ++ case Triple::loongarch64: ++ resolveLoongArch64Relocation(Section, Offset, Value, Type, Addend); ++ break; + case Triple::ppc: + resolvePPC32Relocation(Section, Offset, Value, Type, Addend); + break; +@@ -1265,6 +1453,59 @@ RuntimeDyldELF::processRelocationRef( + } + processSimpleRelocation(SectionID, Offset, RelType, Value); + } ++ } else if (Arch == Triple::loongarch64) { ++ if (RelType == ELF::R_LARCH_32 || RelType == ELF::R_LARCH_64 || ++ (RelType >= ELF::R_LARCH_ADD8 && RelType <= ELF::R_LARCH_SUB64)) { ++ if (TargetName.size() == 0 && ++ Sections[SectionID].getAddress() != nullptr) { ++ uint64_t SymOffset = 0; ++ unsigned SID = 0; ++ auto SectionOrErr = Symbol->getSection(); ++ if (!SectionOrErr) { ++ std::string Buf; ++ raw_string_ostream OS(Buf); ++ logAllUnhandledErrors(SectionOrErr.takeError(), OS); ++ OS.flush(); ++ report_fatal_error(Buf); ++ } ++ section_iterator si = *SectionOrErr; ++ if (si == Obj.section_end()) ++ llvm_unreachable("Symbol section not found!"); ++ bool isCode = si->isText(); ++ if (auto SectionIDOrErr = ++ findOrEmitSection(Obj, (*si), isCode, ObjSectionToID)) { ++ SID = *SectionIDOrErr; ++ } else ++ return SectionIDOrErr.takeError(); ++ auto OffsetOrErr = Symbol->getAddress(); ++ if (OffsetOrErr) ++ SymOffset = *OffsetOrErr; ++ uint64_t Target = Sections[SID].getLoadAddress() + SymOffset; ++ resolveRelocation(Sections[SectionID], Offset, Target, RelType, Addend); ++ } else { ++ processSimpleRelocation(SectionID, Offset, RelType, Value); ++ } ++ } else { ++ RTDyldSymbolTable::const_iterator Loc = ++ GlobalSymbolTable.find(TargetName); ++ if (!TargetName.empty()) { ++ if (Loc == GlobalSymbolTable.end()) { ++ IsSaved = true; ++ SavedSymbol = TargetName; ++ } else { ++ IsSaved = false; ++ } ++ } ++ if (IsSaved == true) { ++ Value.SymbolName = SavedSymbol.data(); ++ processSimpleRelocation(SectionID, Offset, RelType, Value); ++ } else { ++ uint8_t *TargetAddr = getSymbolLocalAddress(TargetName); ++ resolveRelocation(Sections[SectionID], Offset, ++ reinterpret_cast(TargetAddr), RelType, ++ Addend); ++ } ++ } + } else if (IsMipsO32ABI) { + uint8_t *Placeholder = reinterpret_cast( + computePlaceholderAddress(SectionID, Offset)); +@@ -1775,6 +2016,7 @@ size_t RuntimeDyldELF::getGOTEntrySize() { + case Triple::x86_64: + case Triple::aarch64: + case Triple::aarch64_be: ++ case Triple::loongarch64: + case Triple::ppc64: + case Triple::ppc64le: + case Triple::systemz: +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.h b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.h +index ef0784e2273..09353f8e399 100644 +--- a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.h ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.h +@@ -48,6 +48,10 @@ class RuntimeDyldELF : public RuntimeDyldImpl { + void resolveARMRelocation(const SectionEntry &Section, uint64_t Offset, + uint32_t Value, uint32_t Type, int32_t Addend); + ++ void resolveLoongArch64Relocation(const SectionEntry &Section, ++ uint64_t Offset, uint64_t Value, ++ uint32_t Type, int64_t Addend); ++ + void resolvePPC32Relocation(const SectionEntry &Section, uint64_t Offset, + uint64_t Value, uint32_t Type, int64_t Addend); + +@@ -154,6 +158,12 @@ private: + // EH frame sections with the memory manager. + SmallVector UnregisteredEHFrameSections; + ++ // For loongarch evaluteRelocation ++ SmallVector ValuesStack; ++ bool IsSaved; ++ bool MarkLA; ++ StringRef SavedSymbol; ++ + // Map between GOT relocation value and corresponding GOT offset + std::map GOTOffsetMap; + +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/IR/Function.cpp b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/IR/Function.cpp +index 54612250b0d..5c242a4ce22 100644 +--- a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/IR/Function.cpp ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/IR/Function.cpp +@@ -36,6 +36,7 @@ + #include "llvm/IR/IntrinsicsARM.h" + #include "llvm/IR/IntrinsicsBPF.h" + #include "llvm/IR/IntrinsicsHexagon.h" ++#include "llvm/IR/IntrinsicsLoongArch.h" + #include "llvm/IR/IntrinsicsMips.h" + #include "llvm/IR/IntrinsicsNVPTX.h" + #include "llvm/IR/IntrinsicsPowerPC.h" +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/MC/MCAsmStreamer.cpp b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/MC/MCAsmStreamer.cpp +index 5d369503995..865a483a51e 100644 +--- a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/MC/MCAsmStreamer.cpp ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/MC/MCAsmStreamer.cpp +@@ -79,6 +79,8 @@ public: + InstPrinter->setCommentStream(CommentStream); + if (Assembler->getBackendPtr()) + setAllowAutoPadding(Assembler->getBackend().allowAutoPadding()); ++ ++ Context.setUseNamesOnTempLabels(true); + } + + MCAssembler &getAssembler() { return *Assembler; } +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/MC/MCObjectFileInfo.cpp b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/MC/MCObjectFileInfo.cpp +index d567cc14a83..b6ba9282ccf 100644 +--- a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/MC/MCObjectFileInfo.cpp ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/MC/MCObjectFileInfo.cpp +@@ -299,6 +299,12 @@ void MCObjectFileInfo::initMachOMCObjectFileInfo(const Triple &T) { + + void MCObjectFileInfo::initELFMCObjectFileInfo(const Triple &T, bool Large) { + switch (T.getArch()) { ++ case Triple::loongarch32: ++ case Triple::loongarch64: ++ FDECFIEncoding = Ctx->getAsmInfo()->getCodePointerSize() == 4 ++ ? dwarf::DW_EH_PE_sdata4 ++ : dwarf::DW_EH_PE_sdata8; ++ break; + case Triple::mips: + case Triple::mipsel: + case Triple::mips64: +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Object/ELF.cpp b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Object/ELF.cpp +index f17a6da23d7..41ae8f246eb 100644 +--- a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Object/ELF.cpp ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Object/ELF.cpp +@@ -94,6 +94,13 @@ StringRef llvm::object::getELFRelocationTypeName(uint32_t Machine, + break; + } + break; ++ case ELF::EM_LOONGARCH: ++ switch (Type) { ++#include "llvm/BinaryFormat/ELFRelocs/LoongArch.def" ++ default: ++ break; ++ } ++ break; + case ELF::EM_PPC64: + switch (Type) { + #include "llvm/BinaryFormat/ELFRelocs/PowerPC64.def" +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Object/RelocationResolver.cpp b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Object/RelocationResolver.cpp +index 31478be7899..e17fea756db 100644 +--- a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Object/RelocationResolver.cpp ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Object/RelocationResolver.cpp +@@ -393,6 +393,28 @@ static uint64_t resolveRISCV(RelocationRef R, uint64_t S, uint64_t A) { + } + } + ++static bool supportsLoongArch(uint64_t Type) { ++ switch (Type) { ++ case ELF::R_LARCH_32: ++ case ELF::R_LARCH_64: ++ return true; ++ default: ++ return false; ++ } ++} ++ ++static uint64_t resolveLoongArch(RelocationRef R, uint64_t S, uint64_t A) { ++ int64_t RA = getELFAddend(R); ++ switch (R.getType()) { ++ case ELF::R_LARCH_32: ++ return (S + RA) & 0xFFFFFFFF; ++ case ELF::R_LARCH_64: ++ return S + RA; ++ default: ++ llvm_unreachable("Invalid relocation type"); ++ } ++} ++ + static bool supportsCOFFX86(uint64_t Type) { + switch (Type) { + case COFF::IMAGE_REL_I386_SECREL: +@@ -565,6 +587,8 @@ getRelocationResolver(const ObjectFile &Obj) { + return {supportsAmdgpu, resolveAmdgpu}; + case Triple::riscv64: + return {supportsRISCV, resolveRISCV}; ++ case Triple::loongarch64: ++ return {supportsLoongArch, resolveLoongArch}; + default: + return {nullptr, nullptr}; + } +@@ -595,6 +619,8 @@ getRelocationResolver(const ObjectFile &Obj) { + return {supportsHexagon, resolveHexagon}; + case Triple::riscv32: + return {supportsRISCV, resolveRISCV}; ++ case Triple::loongarch32: ++ return {supportsLoongArch, resolveLoongArch}; + default: + return {nullptr, nullptr}; + } +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/ObjectYAML/ELFYAML.cpp b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/ObjectYAML/ELFYAML.cpp +index efa7ecb4728..80b4886dcd1 100644 +--- a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/ObjectYAML/ELFYAML.cpp ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/ObjectYAML/ELFYAML.cpp +@@ -221,6 +221,7 @@ void ScalarEnumerationTraits::enumeration( + ECase(EM_RISCV); + ECase(EM_LANAI); + ECase(EM_BPF); ++ ECase(EM_LOONGARCH); + #undef ECase + IO.enumFallback(Value); + } +@@ -428,6 +429,11 @@ void ScalarBitSetTraits::bitset(IO &IO, + break; + case ELF::EM_X86_64: + break; ++ case ELF::EM_LOONGARCH: ++ BCaseMask(EF_LARCH_ABI_LP32, EF_LARCH_ABI); ++ BCaseMask(EF_LARCH_ABI_LPX32, EF_LARCH_ABI); ++ BCaseMask(EF_LARCH_ABI_LP64, EF_LARCH_ABI); ++ break; + default: + llvm_unreachable("Unsupported architecture"); + } +@@ -657,6 +663,9 @@ void ScalarEnumerationTraits::enumeration( + case ELF::EM_PPC64: + #include "llvm/BinaryFormat/ELFRelocs/PowerPC64.def" + break; ++ case ELF::EM_LOONGARCH: ++#include "llvm/BinaryFormat/ELFRelocs/LoongArch.def" ++ break; + default: + // Nothing to do. + break; +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Support/Host.cpp b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Support/Host.cpp +index ef38c1c0941..e3d49d2f275 100644 +--- a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Support/Host.cpp ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Support/Host.cpp +@@ -1231,6 +1231,45 @@ StringRef sys::getHostCPUName() { + StringRef Content = P ? P->getBuffer() : ""; + return detail::getHostCPUNameForS390x(Content); + } ++#elif defined(__linux__) && defined(__loongarch__) ++// loongarch prid register ++// +----------------+----------------+----------------+----------------+ ++// | Company Options| Company ID | Processor ID | Revision | ++// +----------------+----------------+----------------+----------------+ ++// 31 24 23 16 15 8 7 0 ++ ++#define PRID_OPT_MASK 0xff000000 ++#define PRID_COMP_MASK 0xff0000 ++#define PRID_COMP_LOONGSON 0x140000 ++#define PRID_IMP_MASK 0xff00 ++ ++#define PRID_IMP_LOONGSON_32 0x4200 /* Loongson 32bit */ ++#define PRID_IMP_LOONGSON_64R 0x6100 /* Reduced Loongson 64bit */ ++#define PRID_IMP_LOONGSON_64C 0x6300 /* Classic Loongson 64bit */ ++#define PRID_IMP_LOONGSON_64G 0xc000 /* Generic Loongson 64bit */ ++ ++StringRef sys::getHostCPUName() { ++ // use prid to detect cpu name ++ unsigned CPUCFG_NUM = 0; // prid ++ unsigned prid; ++ ++ __asm__("cpucfg %[prid], %[CPUCFG_NUM]\n\t" ++ :[prid]"=r"(prid) ++ :[CPUCFG_NUM]"r"(CPUCFG_NUM)); ++ ++ if ((prid & PRID_COMP_MASK) == PRID_COMP_LOONGSON) {// for Loongson ++ switch (prid & PRID_IMP_MASK) { ++ case PRID_IMP_LOONGSON_32: // not support ++ return "loongarch32"; ++ case PRID_IMP_LOONGSON_64R: ++ case PRID_IMP_LOONGSON_64C: ++ case PRID_IMP_LOONGSON_64G: ++ return "la464"; ++ } ++ } ++ ++ return "generic"; ++} + #elif defined(__APPLE__) && defined(__aarch64__) + StringRef sys::getHostCPUName() { + return "cyclone"; +@@ -1566,6 +1605,36 @@ bool sys::getHostCPUFeatures(StringMap &Features) { + + return true; + } ++#elif defined(__linux__) && defined(__loongarch__) ++bool sys::getHostCPUFeatures(StringMap &Features) { ++ std::unique_ptr P = getProcCpuinfoContent(); ++ if (!P) ++ return false; ++ ++ SmallVector Lines; ++ P->getBuffer().split(Lines, "\n"); ++ ++ SmallVector CPUFeatures; ++ ++ // Look for the CPU features. ++ for (unsigned I = 0, E = Lines.size(); I != E; ++I) ++ if (Lines[I].startswith("features")) { ++ Lines[I].split(CPUFeatures, ' '); ++ break; ++ } ++ ++ for (unsigned I = 0, E = CPUFeatures.size(); I != E; ++I) { ++ StringRef LLVMFeatureStr = StringSwitch(CPUFeatures[I]) ++ .Case("lsx", "lsx") ++ .Case("lasx", "lasx") ++ .Default(""); ++ ++ if (LLVMFeatureStr != "") ++ Features[LLVMFeatureStr] = true; ++ } ++ ++ return true; ++} + #else + bool sys::getHostCPUFeatures(StringMap &Features) { return false; } + #endif +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Support/Triple.cpp b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Support/Triple.cpp +index 2c480c1094a..3648ee9d9e9 100644 +--- a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Support/Triple.cpp ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Support/Triple.cpp +@@ -39,6 +39,8 @@ StringRef Triple::getArchTypeName(ArchType Kind) { + case lanai: return "lanai"; + case le32: return "le32"; + case le64: return "le64"; ++ case loongarch32: return "loongarch32"; ++ case loongarch64: return "loongarch64"; + case mips64: return "mips64"; + case mips64el: return "mips64el"; + case mips: return "mips"; +@@ -147,6 +149,8 @@ StringRef Triple::getArchTypePrefix(ArchType Kind) { + case riscv64: return "riscv"; + + case ve: return "ve"; ++ case loongarch32: ++ case loongarch64: return "loongarch"; + } + } + +@@ -317,6 +321,8 @@ Triple::ArchType Triple::getArchTypeForLLVMName(StringRef Name) { + .Case("renderscript32", renderscript32) + .Case("renderscript64", renderscript64) + .Case("ve", ve) ++ .Case("loongarch32", loongarch32) ++ .Case("loongarch64", loongarch64) + .Default(UnknownArch); + } + +@@ -446,6 +452,8 @@ static Triple::ArchType parseArch(StringRef ArchName) { + .Case("ve", Triple::ve) + .Case("wasm32", Triple::wasm32) + .Case("wasm64", Triple::wasm64) ++ .Case("loongarch32", Triple::loongarch32) ++ .Case("loongarch64", Triple::loongarch64) + .Default(Triple::UnknownArch); + + // Some architectures require special parsing logic just to compute the +@@ -681,6 +689,8 @@ static Triple::ObjectFormatType getDefaultFormat(const Triple &T) { + case Triple::lanai: + case Triple::le32: + case Triple::le64: ++ case Triple::loongarch32: ++ case Triple::loongarch64: + case Triple::mips64: + case Triple::mips64el: + case Triple::mips: +@@ -754,6 +764,7 @@ Triple::Triple(const Twine &Str) + .StartsWith("mipsisa64", Triple::GNUABI64) + .StartsWith("mipsisa32", Triple::GNU) + .Cases("mips", "mipsel", "mipsr6", "mipsr6el", Triple::GNU) ++ .Cases("loongarch32", "loongarch64", Triple::GNU) + .Default(UnknownEnvironment); + } + } +@@ -1249,6 +1260,7 @@ static unsigned getArchPointerBitWidth(llvm::Triple::ArchType Arch) { + case llvm::Triple::kalimba: + case llvm::Triple::lanai: + case llvm::Triple::le32: ++ case llvm::Triple::loongarch32: + case llvm::Triple::mips: + case llvm::Triple::mipsel: + case llvm::Triple::nvptx: +@@ -1277,6 +1289,7 @@ static unsigned getArchPointerBitWidth(llvm::Triple::ArchType Arch) { + case llvm::Triple::bpfel: + case llvm::Triple::hsail64: + case llvm::Triple::le64: ++ case llvm::Triple::loongarch64: + case llvm::Triple::mips64: + case llvm::Triple::mips64el: + case llvm::Triple::nvptx64: +@@ -1332,6 +1345,7 @@ Triple Triple::get32BitArchVariant() const { + case Triple::kalimba: + case Triple::lanai: + case Triple::le32: ++ case Triple::loongarch32: + case Triple::mips: + case Triple::mipsel: + case Triple::nvptx: +@@ -1358,6 +1372,7 @@ Triple Triple::get32BitArchVariant() const { + case Triple::amdil64: T.setArch(Triple::amdil); break; + case Triple::hsail64: T.setArch(Triple::hsail); break; + case Triple::le64: T.setArch(Triple::le32); break; ++ case Triple::loongarch64: T.setArch(Triple::loongarch32); break; + case Triple::mips64: T.setArch(Triple::mips); break; + case Triple::mips64el: T.setArch(Triple::mipsel); break; + case Triple::nvptx64: T.setArch(Triple::nvptx); break; +@@ -1399,6 +1414,7 @@ Triple Triple::get64BitArchVariant() const { + case Triple::bpfel: + case Triple::hsail64: + case Triple::le64: ++ case Triple::loongarch64: + case Triple::mips64: + case Triple::mips64el: + case Triple::nvptx64: +@@ -1421,6 +1437,7 @@ Triple Triple::get64BitArchVariant() const { + case Triple::armeb: T.setArch(Triple::aarch64_be); break; + case Triple::hsail: T.setArch(Triple::hsail64); break; + case Triple::le32: T.setArch(Triple::le64); break; ++ case Triple::loongarch32: T.setArch(Triple::loongarch64); break; + case Triple::mips: T.setArch(Triple::mips64); break; + case Triple::mipsel: T.setArch(Triple::mips64el); break; + case Triple::nvptx: T.setArch(Triple::nvptx64); break; +@@ -1454,6 +1471,8 @@ Triple Triple::getBigEndianArchVariant() const { + case Triple::kalimba: + case Triple::le32: + case Triple::le64: ++ case Triple::loongarch32: ++ case Triple::loongarch64: + case Triple::msp430: + case Triple::nvptx64: + case Triple::nvptx: +@@ -1540,6 +1559,8 @@ bool Triple::isLittleEndian() const { + case Triple::kalimba: + case Triple::le32: + case Triple::le64: ++ case Triple::loongarch32: ++ case Triple::loongarch64: + case Triple::mips64el: + case Triple::mipsel: + case Triple::msp430: +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LLVMBuild.txt b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LLVMBuild.txt +index 7403f7713a9..c22ed794ed4 100644 +--- a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LLVMBuild.txt ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LLVMBuild.txt +@@ -27,6 +27,7 @@ subdirectories = + Lanai + Hexagon + MSP430 ++ LoongArch + NVPTX + Mips + PowerPC +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/AsmParser/CMakeLists.txt b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/AsmParser/CMakeLists.txt +new file mode 100644 +index 00000000000..c000e3d96be +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/AsmParser/CMakeLists.txt +@@ -0,0 +1,3 @@ ++add_llvm_component_library(LLVMLoongArchAsmParser ++ LoongArchAsmParser.cpp ++ ) +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/AsmParser/LLVMBuild.txt b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/AsmParser/LLVMBuild.txt +new file mode 100644 +index 00000000000..8fbecde89dd +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/AsmParser/LLVMBuild.txt +@@ -0,0 +1,22 @@ ++;===- ./lib/Target/LoongArch/AsmParser/LLVMBuild.txt ----------------*- Conf -*--===; ++; ++; Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++; See https://llvm.org/LICENSE.txt for license information. ++; SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++; ++;===------------------------------------------------------------------------===; ++; ++; This is an LLVMBuild description file for the components in this subdirectory. ++; ++; For more information on the LLVMBuild system, please see: ++; ++; http://llvm.org/docs/LLVMBuild.html ++; ++;===------------------------------------------------------------------------===; ++ ++[component_0] ++type = Library ++name = LoongArchAsmParser ++parent = LoongArch ++required_libraries = MC MCParser LoongArchDesc LoongArchInfo Support ++add_to_library_groups = LoongArch +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/AsmParser/LoongArchAsmParser.cpp b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/AsmParser/LoongArchAsmParser.cpp +new file mode 100644 +index 00000000000..2c415ec5290 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/AsmParser/LoongArchAsmParser.cpp +@@ -0,0 +1,2273 @@ ++//===-- LoongArchAsmParser.cpp - Parse LoongArch assembly to MCInst instructions ----===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++ ++#include "LoongArchTargetStreamer.h" ++#include "MCTargetDesc/LoongArchABIInfo.h" ++#include "MCTargetDesc/LoongArchAnalyzeImmediate.h" ++#include "MCTargetDesc/LoongArchBaseInfo.h" ++#include "MCTargetDesc/LoongArchMCExpr.h" ++#include "MCTargetDesc/LoongArchMCTargetDesc.h" ++#include "TargetInfo/LoongArchTargetInfo.h" ++#include "llvm/ADT/APFloat.h" ++#include "llvm/ADT/STLExtras.h" ++#include "llvm/ADT/SmallVector.h" ++#include "llvm/ADT/StringRef.h" ++#include "llvm/ADT/StringSwitch.h" ++#include "llvm/ADT/Triple.h" ++#include "llvm/ADT/Twine.h" ++#include "llvm/BinaryFormat/ELF.h" ++#include "llvm/MC/MCContext.h" ++#include "llvm/MC/MCExpr.h" ++#include "llvm/MC/MCInst.h" ++#include "llvm/MC/MCInstrDesc.h" ++#include "llvm/MC/MCObjectFileInfo.h" ++#include "llvm/MC/MCParser/MCAsmLexer.h" ++#include "llvm/MC/MCParser/MCAsmParser.h" ++#include "llvm/MC/MCParser/MCAsmParserExtension.h" ++#include "llvm/MC/MCParser/MCParsedAsmOperand.h" ++#include "llvm/MC/MCParser/MCTargetAsmParser.h" ++#include "llvm/MC/MCSectionELF.h" ++#include "llvm/MC/MCStreamer.h" ++#include "llvm/MC/MCSubtargetInfo.h" ++#include "llvm/MC/MCSymbol.h" ++#include "llvm/MC/MCSymbolELF.h" ++#include "llvm/MC/MCValue.h" ++#include "llvm/MC/SubtargetFeature.h" ++#include "llvm/Support/Casting.h" ++#include "llvm/Support/CommandLine.h" ++#include "llvm/Support/Compiler.h" ++#include "llvm/Support/Debug.h" ++#include "llvm/Support/ErrorHandling.h" ++#include "llvm/Support/MathExtras.h" ++#include "llvm/Support/SMLoc.h" ++#include "llvm/Support/SourceMgr.h" ++#include "llvm/Support/TargetRegistry.h" ++#include "llvm/Support/raw_ostream.h" ++#include ++#include ++#include ++#include ++#include ++#include ++ ++using namespace llvm; ++ ++#define DEBUG_TYPE "loongarch-asm-parser" ++ ++namespace llvm { ++ ++class MCInstrInfo; ++ ++} // end namespace llvm ++ ++namespace { ++ ++class LoongArchAssemblerOptions { ++public: ++ LoongArchAssemblerOptions(const FeatureBitset &Features_) : Features(Features_) {} ++ ++ LoongArchAssemblerOptions(const LoongArchAssemblerOptions *Opts) { ++ Features = Opts->getFeatures(); ++ } ++ ++ const FeatureBitset &getFeatures() const { return Features; } ++ void setFeatures(const FeatureBitset &Features_) { Features = Features_; } ++ ++private: ++ FeatureBitset Features; ++}; ++ ++} // end anonymous namespace ++ ++namespace { ++ ++class LoongArchAsmParser : public MCTargetAsmParser { ++ LoongArchTargetStreamer &getTargetStreamer() { ++ MCTargetStreamer &TS = *getParser().getStreamer().getTargetStreamer(); ++ return static_cast(TS); ++ } ++ ++ LoongArchABIInfo ABI; ++ SmallVector, 2> AssemblerOptions; ++ MCSymbol *CurrentFn; // Pointer to the function being parsed. It may be a ++ // nullptr, which indicates that no function is currently ++ // selected. This usually happens after an '.end' ++ // directive. ++ bool IsPicEnabled; ++ ++ // Map of register aliases created via the .set directive. ++ StringMap RegisterSets; ++ ++#define GET_ASSEMBLER_HEADER ++#include "LoongArchGenAsmMatcher.inc" ++ ++ unsigned checkTargetMatchPredicate(MCInst &Inst) override; ++ ++ bool MatchAndEmitInstruction(SMLoc IDLoc, unsigned &Opcode, ++ OperandVector &Operands, MCStreamer &Out, ++ uint64_t &ErrorInfo, ++ bool MatchingInlineAsm) override; ++ ++ /// Parse a register as used in CFI directives ++ bool ParseRegister(unsigned &RegNo, SMLoc &StartLoc, SMLoc &EndLoc) override; ++ ++ bool mnemonicIsValid(StringRef Mnemonic); ++ ++ bool ParseInstruction(ParseInstructionInfo &Info, StringRef Name, ++ SMLoc NameLoc, OperandVector &Operands) override; ++ ++ bool ParseDirective(AsmToken DirectiveID) override; ++ ++ OperandMatchResultTy parseMemOperand(OperandVector &Operands); ++ OperandMatchResultTy parseAMemOperand(OperandVector &Operands); ++ OperandMatchResultTy ++ matchAnyRegisterNameWithoutDollar(OperandVector &Operands, ++ StringRef Identifier, SMLoc S); ++ OperandMatchResultTy matchAnyRegisterWithoutDollar(OperandVector &Operands, ++ const AsmToken &Token, ++ SMLoc S); ++ OperandMatchResultTy matchAnyRegisterWithoutDollar(OperandVector &Operands, ++ SMLoc S); ++ OperandMatchResultTy parseAnyRegister(OperandVector &Operands); ++ OperandMatchResultTy parseJumpTarget(OperandVector &Operands); ++ ++ bool searchSymbolAlias(OperandVector &Operands); ++ ++ bool parseOperand(OperandVector &, StringRef Mnemonic); ++ ++ enum MacroExpanderResultTy { ++ MER_NotAMacro, ++ MER_Success, ++ MER_Fail, ++ }; ++ ++ // Expands assembly pseudo instructions. ++ MacroExpanderResultTy tryExpandInstruction(MCInst &Inst, SMLoc IDLoc, ++ MCStreamer &Out, ++ const MCSubtargetInfo *STI); ++ ++ bool expandLoadImm(MCInst &Inst, SMLoc IDLoc, MCStreamer &Out, ++ const MCSubtargetInfo *STI); ++ ++ bool expandLoadAddress(MCInst &Inst, SMLoc IDLoc, MCStreamer &Out, ++ const MCSubtargetInfo *STI); ++ ++ bool reportParseError(Twine ErrorMsg); ++ ++ bool parseMemOffset(const MCExpr *&Res); ++ ++ bool isEvaluated(const MCExpr *Expr); ++ bool parseDirectiveSet(); ++ ++ bool parseSetAssignment(); ++ ++ bool parseInternalDirectiveReallowModule(); ++ ++ int matchCPURegisterName(StringRef Symbol); ++ ++ int matchFPURegisterName(StringRef Name); ++ ++ int matchFCFRRegisterName(StringRef Name); ++ int matchFCSRRegisterName(StringRef Name); ++ ++ int matchLSX128RegisterName(StringRef Name); ++ ++ int matchLASX256RegisterName(StringRef Name); ++ ++ bool processInstruction(MCInst &Inst, SMLoc IDLoc, MCStreamer &Out, ++ const MCSubtargetInfo *STI); ++ ++ // Helper function that checks if the value of a vector index is within the ++ // boundaries of accepted values for each RegisterKind ++ // Example: VINSGR2VR.B $v0[n], $1 => 16 > n >= 0 ++ bool validateLSXIndex(int Val, int RegKind); ++ ++ void setFeatureBits(uint64_t Feature, StringRef FeatureString) { ++ if (!(getSTI().getFeatureBits()[Feature])) { ++ MCSubtargetInfo &STI = copySTI(); ++ setAvailableFeatures( ++ ComputeAvailableFeatures(STI.ToggleFeature(FeatureString))); ++ AssemblerOptions.back()->setFeatures(STI.getFeatureBits()); ++ } ++ } ++ ++ void clearFeatureBits(uint64_t Feature, StringRef FeatureString) { ++ if (getSTI().getFeatureBits()[Feature]) { ++ MCSubtargetInfo &STI = copySTI(); ++ setAvailableFeatures( ++ ComputeAvailableFeatures(STI.ToggleFeature(FeatureString))); ++ AssemblerOptions.back()->setFeatures(STI.getFeatureBits()); ++ } ++ } ++ ++ void setModuleFeatureBits(uint64_t Feature, StringRef FeatureString) { ++ setFeatureBits(Feature, FeatureString); ++ AssemblerOptions.front()->setFeatures(getSTI().getFeatureBits()); ++ } ++ ++ void clearModuleFeatureBits(uint64_t Feature, StringRef FeatureString) { ++ clearFeatureBits(Feature, FeatureString); ++ AssemblerOptions.front()->setFeatures(getSTI().getFeatureBits()); ++ } ++ ++public: ++ enum LoongArchMatchResultTy { ++ Match_RequiresNoZeroRegister = FIRST_TARGET_MATCH_RESULT_TY, ++ Match_RequiresNoRaRegister, ++ Match_RequiresRange0_31, ++ Match_RequiresRange0_63, ++ Match_MsbHigherThanLsb, ++ Match_RequiresPosSizeUImm6, ++#define GET_OPERAND_DIAGNOSTIC_TYPES ++#include "LoongArchGenAsmMatcher.inc" ++#undef GET_OPERAND_DIAGNOSTIC_TYPES ++ }; ++ ++ LoongArchAsmParser(const MCSubtargetInfo &sti, MCAsmParser &parser, ++ const MCInstrInfo &MII, const MCTargetOptions &Options) ++ : MCTargetAsmParser(Options, sti, MII), ++ ABI(LoongArchABIInfo::computeTargetABI(Triple(sti.getTargetTriple()), ++ sti.getCPU(), Options)) { ++ MCAsmParserExtension::Initialize(parser); ++ ++ parser.addAliasForDirective(".asciiz", ".asciz"); ++ parser.addAliasForDirective(".hword", ".2byte"); ++ parser.addAliasForDirective(".word", ".4byte"); ++ parser.addAliasForDirective(".dword", ".8byte"); ++ ++ // Initialize the set of available features. ++ setAvailableFeatures(ComputeAvailableFeatures(getSTI().getFeatureBits())); ++ ++ // Remember the initial assembler options. The user can not modify these. ++ AssemblerOptions.push_back( ++ std::make_unique(getSTI().getFeatureBits())); ++ ++ // Create an assembler options environment for the user to modify. ++ AssemblerOptions.push_back( ++ std::make_unique(getSTI().getFeatureBits())); ++ ++ getTargetStreamer().updateABIInfo(*this); ++ ++ CurrentFn = nullptr; ++ ++ IsPicEnabled = getContext().getObjectFileInfo()->isPositionIndependent(); ++ } ++ ++ bool is64Bit() const { ++ return getSTI().getFeatureBits()[LoongArch::Feature64Bit]; ++ } ++ ++ bool isFP64bit() const { ++ return getSTI().getFeatureBits()[LoongArch::FeatureFP64Bit]; ++ } ++ ++ const LoongArchABIInfo &getABI() const { return ABI; } ++ bool isABI_LPX32() const { return ABI.IsLPX32(); } ++ bool isABI_LP64() const { return ABI.IsLP64(); } ++ bool isABI_LP32() const { return ABI.IsLP32(); } ++ ++ bool hasLSX() const { ++ return getSTI().getFeatureBits()[LoongArch::FeatureLSX]; ++ } ++ ++ bool hasLASX() const { ++ return getSTI().getFeatureBits()[LoongArch::FeatureLASX]; ++ } ++ ++ bool inPicMode() { ++ return IsPicEnabled; ++ } ++ ++ bool useSoftFloat() const { ++ return getSTI().getFeatureBits()[LoongArch::FeatureSoftFloat]; ++ } ++ ++ const MCExpr *createTargetUnaryExpr(const MCExpr *E, ++ AsmToken::TokenKind OperatorToken, ++ MCContext &Ctx) override { ++ switch(OperatorToken) { ++ default: ++ llvm_unreachable("Unknown token"); ++ return nullptr; ++#if 0 ++ case AsmToken::PercentPlt: ++ return LoongArchMCExpr::create(LoongArchMCExpr::MEK_PLT, E, Ctx); ++#endif ++ } ++ } ++}; ++ ++/// LoongArchOperand - Instances of this class represent a parsed LoongArch machine ++/// instruction. ++class LoongArchOperand : public MCParsedAsmOperand { ++public: ++ /// Broad categories of register classes ++ /// The exact class is finalized by the render method. ++ enum RegKind { ++ RegKind_GPR = 1, /// GPR32 and GPR64 (depending on is64Bit()) ++ RegKind_FGR = 2, /// FGR32, FGR64 (depending on isFP64bit()) ++ RegKind_FCFR = 4, /// FCFR ++ RegKind_FCSR = 8, /// FCSR ++ RegKind_LSX128 = 16, /// LSX128[BHWD] (makes no difference which) ++ RegKind_LASX256 = 32, /// LASX256[BHWD] (makes no difference which) ++ RegKind_Numeric = RegKind_GPR | RegKind_FGR | RegKind_FCFR | RegKind_FCSR | ++ RegKind_LSX128 | RegKind_LASX256 ++ }; ++ ++private: ++ enum KindTy { ++ k_Immediate, /// An immediate (possibly involving symbol references) ++ k_Memory, /// Base + Offset Memory Address ++ k_RegisterIndex, /// A register index in one or more RegKind. ++ k_Token, /// A simple token ++ k_RegList, /// A physical register list ++ } Kind; ++ ++public: ++ LoongArchOperand(KindTy K, LoongArchAsmParser &Parser) ++ : MCParsedAsmOperand(), Kind(K), AsmParser(Parser) {} ++ ++ ~LoongArchOperand() override { ++ switch (Kind) { ++ case k_Memory: ++ delete Mem.Base; ++ break; ++ case k_RegList: ++ delete RegList.List; ++ break; ++ case k_Immediate: ++ case k_RegisterIndex: ++ case k_Token: ++ break; ++ } ++ } ++ ++private: ++ /// For diagnostics, and checking the assembler temporary ++ LoongArchAsmParser &AsmParser; ++ ++ struct Token { ++ const char *Data; ++ unsigned Length; ++ }; ++ ++ struct RegIdxOp { ++ unsigned Index; /// Index into the register class ++ RegKind Kind; /// Bitfield of the kinds it could possibly be ++ struct Token Tok; /// The input token this operand originated from. ++ const MCRegisterInfo *RegInfo; ++ }; ++ ++ struct ImmOp { ++ const MCExpr *Val; ++ }; ++ ++ struct MemOp { ++ LoongArchOperand *Base; ++ const MCExpr *Off; ++ }; ++ ++ struct RegListOp { ++ SmallVector *List; ++ }; ++ ++ union { ++ struct Token Tok; ++ struct RegIdxOp RegIdx; ++ struct ImmOp Imm; ++ struct MemOp Mem; ++ struct RegListOp RegList; ++ }; ++ ++ SMLoc StartLoc, EndLoc; ++ ++ /// Internal constructor for register kinds ++ static std::unique_ptr CreateReg(unsigned Index, StringRef Str, ++ RegKind RegKind, ++ const MCRegisterInfo *RegInfo, ++ SMLoc S, SMLoc E, ++ LoongArchAsmParser &Parser) { ++ auto Op = std::make_unique(k_RegisterIndex, Parser); ++ Op->RegIdx.Index = Index; ++ Op->RegIdx.RegInfo = RegInfo; ++ Op->RegIdx.Kind = RegKind; ++ Op->RegIdx.Tok.Data = Str.data(); ++ Op->RegIdx.Tok.Length = Str.size(); ++ Op->StartLoc = S; ++ Op->EndLoc = E; ++ return Op; ++ } ++ ++public: ++ /// Coerce the register to GPR32 and return the real register for the current ++ /// target. ++ unsigned getGPR32Reg() const { ++ assert(isRegIdx() && (RegIdx.Kind & RegKind_GPR) && "Invalid access!"); ++ unsigned ClassID = LoongArch::GPR32RegClassID; ++ return RegIdx.RegInfo->getRegClass(ClassID).getRegister(RegIdx.Index); ++ } ++ ++ /// Coerce the register to GPR32 and return the real register for the current ++ /// target. ++ unsigned getGPRMM16Reg() const { ++ assert(isRegIdx() && (RegIdx.Kind & RegKind_GPR) && "Invalid access!"); ++ unsigned ClassID = LoongArch::GPR32RegClassID; ++ return RegIdx.RegInfo->getRegClass(ClassID).getRegister(RegIdx.Index); ++ } ++ ++ /// Coerce the register to GPR64 and return the real register for the current ++ /// target. ++ unsigned getGPR64Reg() const { ++ assert(isRegIdx() && (RegIdx.Kind & RegKind_GPR) && "Invalid access!"); ++ unsigned ClassID = LoongArch::GPR64RegClassID; ++ return RegIdx.RegInfo->getRegClass(ClassID).getRegister(RegIdx.Index); ++ } ++ ++private: ++ /// Coerce the register to FGR64 and return the real register for the current ++ /// target. ++ unsigned getFGR64Reg() const { ++ assert(isRegIdx() && (RegIdx.Kind & RegKind_FGR) && "Invalid access!"); ++ return RegIdx.RegInfo->getRegClass(LoongArch::FGR64RegClassID) ++ .getRegister(RegIdx.Index); ++ } ++ ++ /// Coerce the register to FGR32 and return the real register for the current ++ /// target. ++ unsigned getFGR32Reg() const { ++ assert(isRegIdx() && (RegIdx.Kind & RegKind_FGR) && "Invalid access!"); ++ return RegIdx.RegInfo->getRegClass(LoongArch::FGR32RegClassID) ++ .getRegister(RegIdx.Index); ++ } ++ ++ /// Coerce the register to FCFR and return the real register for the current ++ /// target. ++ unsigned getFCFRReg() const { ++ assert(isRegIdx() && (RegIdx.Kind & RegKind_FCFR) && "Invalid access!"); ++ return RegIdx.RegInfo->getRegClass(LoongArch::FCFRRegClassID) ++ .getRegister(RegIdx.Index); ++ } ++ ++ /// Coerce the register to LSX128 and return the real register for the current ++ /// target. ++ unsigned getLSX128Reg() const { ++ assert(isRegIdx() && (RegIdx.Kind & RegKind_LSX128) && "Invalid access!"); ++ // It doesn't matter which of the LSX128[BHWD] classes we use. They are all ++ // identical ++ unsigned ClassID = LoongArch::LSX128BRegClassID; ++ return RegIdx.RegInfo->getRegClass(ClassID).getRegister(RegIdx.Index); ++ } ++ ++ unsigned getLASX256Reg() const { ++ assert(isRegIdx() && (RegIdx.Kind & RegKind_LASX256) && "Invalid access!"); ++ unsigned ClassID = LoongArch::LASX256BRegClassID; ++ return RegIdx.RegInfo->getRegClass(ClassID).getRegister(RegIdx.Index); ++ } ++ ++ /// Coerce the register to CCR and return the real register for the ++ /// current target. ++ unsigned getFCSRReg() const { ++ assert(isRegIdx() && (RegIdx.Kind & RegKind_FCSR) && "Invalid access!"); ++ unsigned ClassID = LoongArch::FCSRRegClassID; ++ return RegIdx.RegInfo->getRegClass(ClassID).getRegister(RegIdx.Index); ++ } ++ ++public: ++ void addExpr(MCInst &Inst, const MCExpr *Expr) const { ++ // Add as immediate when possible. Null MCExpr = 0. ++ if (!Expr) ++ Inst.addOperand(MCOperand::createImm(0)); ++ else if (const MCConstantExpr *CE = dyn_cast(Expr)) ++ Inst.addOperand(MCOperand::createImm(CE->getValue())); ++ else ++ Inst.addOperand(MCOperand::createExpr(Expr)); ++ } ++ ++ void addRegOperands(MCInst &Inst, unsigned N) const { ++ llvm_unreachable("Use a custom parser instead"); ++ } ++ ++ /// Render the operand to an MCInst as a GPR32 ++ /// Asserts if the wrong number of operands are requested, or the operand ++ /// is not a k_RegisterIndex compatible with RegKind_GPR ++ void addGPR32ZeroAsmRegOperands(MCInst &Inst, unsigned N) const { ++ assert(N == 1 && "Invalid number of operands!"); ++ Inst.addOperand(MCOperand::createReg(getGPR32Reg())); ++ } ++ ++ void addGPR32NonZeroAsmRegOperands(MCInst &Inst, unsigned N) const { ++ assert(N == 1 && "Invalid number of operands!"); ++ Inst.addOperand(MCOperand::createReg(getGPR32Reg())); ++ } ++ ++ void addGPR32AsmRegOperands(MCInst &Inst, unsigned N) const { ++ assert(N == 1 && "Invalid number of operands!"); ++ Inst.addOperand(MCOperand::createReg(getGPR32Reg())); ++ } ++ ++ void addGPRMM16AsmRegOperands(MCInst &Inst, unsigned N) const { ++ assert(N == 1 && "Invalid number of operands!"); ++ Inst.addOperand(MCOperand::createReg(getGPRMM16Reg())); ++ } ++ ++ void addGPRMM16AsmRegZeroOperands(MCInst &Inst, unsigned N) const { ++ assert(N == 1 && "Invalid number of operands!"); ++ Inst.addOperand(MCOperand::createReg(getGPRMM16Reg())); ++ } ++ ++ void addGPRMM16AsmRegMovePOperands(MCInst &Inst, unsigned N) const { ++ assert(N == 1 && "Invalid number of operands!"); ++ Inst.addOperand(MCOperand::createReg(getGPRMM16Reg())); ++ } ++ ++ void addGPRMM16AsmRegMovePPairFirstOperands(MCInst &Inst, unsigned N) const { ++ assert(N == 1 && "Invalid number of operands!"); ++ Inst.addOperand(MCOperand::createReg(getGPRMM16Reg())); ++ } ++ ++ void addGPRMM16AsmRegMovePPairSecondOperands(MCInst &Inst, ++ unsigned N) const { ++ assert(N == 1 && "Invalid number of operands!"); ++ Inst.addOperand(MCOperand::createReg(getGPRMM16Reg())); ++ } ++ ++ /// Render the operand to an MCInst as a GPR64 ++ /// Asserts if the wrong number of operands are requested, or the operand ++ /// is not a k_RegisterIndex compatible with RegKind_GPR ++ void addGPR64AsmRegOperands(MCInst &Inst, unsigned N) const { ++ assert(N == 1 && "Invalid number of operands!"); ++ Inst.addOperand(MCOperand::createReg(getGPR64Reg())); ++ } ++ ++ void addStrictlyFGR64AsmRegOperands(MCInst &Inst, unsigned N) const { ++ assert(N == 1 && "Invalid number of operands!"); ++ Inst.addOperand(MCOperand::createReg(getFGR64Reg())); ++ } ++ ++ void addFGR64AsmRegOperands(MCInst &Inst, unsigned N) const { ++ assert(N == 1 && "Invalid number of operands!"); ++ Inst.addOperand(MCOperand::createReg(getFGR64Reg())); ++ } ++ ++ void addFGR32AsmRegOperands(MCInst &Inst, unsigned N) const { ++ assert(N == 1 && "Invalid number of operands!"); ++ Inst.addOperand(MCOperand::createReg(getFGR32Reg())); ++ } ++ ++ void addStrictlyFGR32AsmRegOperands(MCInst &Inst, unsigned N) const { ++ assert(N == 1 && "Invalid number of operands!"); ++ Inst.addOperand(MCOperand::createReg(getFGR32Reg())); ++ } ++ ++ void addFCFRAsmRegOperands(MCInst &Inst, unsigned N) const { ++ assert(N == 1 && "Invalid number of operands!"); ++ Inst.addOperand(MCOperand::createReg(getFCFRReg())); ++ } ++ ++ void addLSX128AsmRegOperands(MCInst &Inst, unsigned N) const { ++ assert(N == 1 && "Invalid number of operands!"); ++ Inst.addOperand(MCOperand::createReg(getLSX128Reg())); ++ } ++ ++ void addLASX256AsmRegOperands(MCInst &Inst, unsigned N) const { ++ assert(N == 1 && "Invalid number of operands!"); ++ Inst.addOperand(MCOperand::createReg(getLASX256Reg())); ++ } ++ ++ void addFCSRAsmRegOperands(MCInst &Inst, unsigned N) const { ++ assert(N == 1 && "Invalid number of operands!"); ++ Inst.addOperand(MCOperand::createReg(getFCSRReg())); ++ } ++ ++ template ++ void addConstantUImmOperands(MCInst &Inst, unsigned N) const { ++ assert(N == 1 && "Invalid number of operands!"); ++ uint64_t Imm = getConstantImm() - Offset; ++ Imm &= (1ULL << Bits) - 1; ++ Imm += Offset; ++ Imm += AdjustOffset; ++ Inst.addOperand(MCOperand::createImm(Imm)); ++ } ++ ++ template ++ void addSImmOperands(MCInst &Inst, unsigned N) const { ++ if (isImm() && !isConstantImm()) { ++ addExpr(Inst, getImm()); ++ return; ++ } ++ addConstantSImmOperands(Inst, N); ++ } ++ ++ template ++ void addUImmOperands(MCInst &Inst, unsigned N) const { ++ if (isImm() && !isConstantImm()) { ++ addExpr(Inst, getImm()); ++ return; ++ } ++ addConstantUImmOperands(Inst, N); ++ } ++ ++ template ++ void addConstantSImmOperands(MCInst &Inst, unsigned N) const { ++ assert(N == 1 && "Invalid number of operands!"); ++ int64_t Imm = getConstantImm() - Offset; ++ Imm = SignExtend64(Imm); ++ Imm += Offset; ++ Imm += AdjustOffset; ++ Inst.addOperand(MCOperand::createImm(Imm)); ++ } ++ ++ void addImmOperands(MCInst &Inst, unsigned N) const { ++ assert(N == 1 && "Invalid number of operands!"); ++ const MCExpr *Expr = getImm(); ++ addExpr(Inst, Expr); ++ } ++ ++ void addMemOperands(MCInst &Inst, unsigned N) const { ++ assert(N == 2 && "Invalid number of operands!"); ++ ++ Inst.addOperand(MCOperand::createReg(AsmParser.getABI().ArePtrs64bit() ++ ? getMemBase()->getGPR64Reg() ++ : getMemBase()->getGPR32Reg())); ++ ++ const MCExpr *Expr = getMemOff(); ++ addExpr(Inst, Expr); ++ } ++ ++ void addRegListOperands(MCInst &Inst, unsigned N) const { ++ assert(N == 1 && "Invalid number of operands!"); ++ ++ for (auto RegNo : getRegList()) ++ Inst.addOperand(MCOperand::createReg(RegNo)); ++ } ++ ++ bool isReg() const override { ++ // As a special case until we sort out the definition of div/divu, accept ++ // $0/$zero here so that MCK_ZERO works correctly. ++ return isGPRAsmReg() && RegIdx.Index == 0; ++ } ++ ++ bool isRegIdx() const { return Kind == k_RegisterIndex; } ++ bool isImm() const override { return Kind == k_Immediate; } ++ ++ bool isConstantImm() const { ++ int64_t Res; ++ return isImm() && getImm()->evaluateAsAbsolute(Res); ++ } ++ ++ bool isConstantImmz() const { ++ return isConstantImm() && getConstantImm() == 0; ++ } ++ ++ template bool isConstantUImm() const { ++ return isConstantImm() && isUInt(getConstantImm() - Offset); ++ } ++ ++ template bool isSImm() const { ++ return isConstantImm() ? isInt(getConstantImm()) : isImm(); ++ } ++ ++ template bool isUImm() const { ++ return isConstantImm() ? isUInt(getConstantImm()) : isImm(); ++ } ++ ++ template bool isAnyImm() const { ++ return isConstantImm() ? (isInt(getConstantImm()) || ++ isUInt(getConstantImm())) ++ : isImm(); ++ } ++ ++ template bool isConstantSImm() const { ++ return isConstantImm() && isInt(getConstantImm() - Offset); ++ } ++ ++ template bool isConstantUImmRange() const { ++ return isConstantImm() && getConstantImm() >= Bottom && ++ getConstantImm() <= Top; ++ } ++ ++ bool isToken() const override { ++ // Note: It's not possible to pretend that other operand kinds are tokens. ++ // The matcher emitter checks tokens first. ++ return Kind == k_Token; ++ } ++ ++ bool isMem() const override { return Kind == k_Memory; } ++ ++ bool isConstantMemOff() const { ++ return isMem() && isa(getMemOff()); ++ } ++ ++ bool isZeroMemOff() const { ++ return isMem() && isa(getMemOff()) && ++ getConstantMemOff() == 0; ++ } ++ ++ // Allow relocation operators. ++ // FIXME: This predicate and others need to look through binary expressions ++ // and determine whether a Value is a constant or not. ++ template ++ bool isMemWithSimmOffset() const { ++ if (!isMem()) ++ return false; ++ if (!getMemBase()->isGPRAsmReg()) ++ return false; ++ if (isa(getMemOff()) || ++ (isConstantMemOff() && ++ isShiftedInt(getConstantMemOff()))) ++ return true; ++ MCValue Res; ++ bool IsReloc = getMemOff()->evaluateAsRelocatable(Res, nullptr, nullptr); ++ return IsReloc && isShiftedInt(Res.getConstant()); ++ } ++ ++ bool isMemWithPtrSizeOffset() const { ++ if (!isMem()) ++ return false; ++ if (!getMemBase()->isGPRAsmReg()) ++ return false; ++ const unsigned PtrBits = AsmParser.getABI().ArePtrs64bit() ? 64 : 32; ++ if (isa(getMemOff()) || ++ (isConstantMemOff() && isIntN(PtrBits, getConstantMemOff()))) ++ return true; ++ MCValue Res; ++ bool IsReloc = getMemOff()->evaluateAsRelocatable(Res, nullptr, nullptr); ++ return IsReloc && isIntN(PtrBits, Res.getConstant()); ++ } ++ ++ bool isMemWithGRPMM16Base() const { ++ return isMem() && getMemBase()->isMM16AsmReg(); ++ } ++ ++ template bool isMemWithUimmOffsetSP() const { ++ return isMem() && isConstantMemOff() && isUInt(getConstantMemOff()) ++ && getMemBase()->isRegIdx() && (getMemBase()->getGPR32Reg() == LoongArch::SP); ++ } ++ ++ template bool isMemWithUimmWordAlignedOffsetSP() const { ++ return isMem() && isConstantMemOff() && isUInt(getConstantMemOff()) ++ && (getConstantMemOff() % 4 == 0) && getMemBase()->isRegIdx() ++ && (getMemBase()->getGPR32Reg() == LoongArch::SP); ++ } ++ ++ template ++ bool isScaledUImm() const { ++ return isConstantImm() && ++ isShiftedUInt(getConstantImm()); ++ } ++ ++ template ++ bool isScaledSImm() const { ++ if (isConstantImm() && ++ isShiftedInt(getConstantImm())) ++ return true; ++ // Operand can also be a symbol or symbol plus ++ // offset in case of relocations. ++ if (Kind != k_Immediate) ++ return false; ++ MCValue Res; ++ bool Success = getImm()->evaluateAsRelocatable(Res, nullptr, nullptr); ++ return Success && isShiftedInt(Res.getConstant()); ++ } ++ ++ bool isRegList16() const { ++ if (!isRegList()) ++ return false; ++ ++ int Size = RegList.List->size(); ++ if (Size < 2 || Size > 5) ++ return false; ++ ++ unsigned R0 = RegList.List->front(); ++ unsigned R1 = RegList.List->back(); ++ if (!((R0 == LoongArch::S0 && R1 == LoongArch::RA) || ++ (R0 == LoongArch::S0_64 && R1 == LoongArch::RA_64))) ++ return false; ++ ++ int PrevReg = *RegList.List->begin(); ++ for (int i = 1; i < Size - 1; i++) { ++ int Reg = (*(RegList.List))[i]; ++ if ( Reg != PrevReg + 1) ++ return false; ++ PrevReg = Reg; ++ } ++ ++ return true; ++ } ++ ++ bool isInvNum() const { return Kind == k_Immediate; } ++ ++ bool isLSAImm() const { ++ if (!isConstantImm()) ++ return false; ++ int64_t Val = getConstantImm(); ++ return 1 <= Val && Val <= 4; ++ } ++ ++ bool isRegList() const { return Kind == k_RegList; } ++ ++ StringRef getToken() const { ++ assert(Kind == k_Token && "Invalid access!"); ++ return StringRef(Tok.Data, Tok.Length); ++ } ++ ++ unsigned getReg() const override { ++ // As a special case until we sort out the definition of div/divu, accept ++ // $0/$zero here so that MCK_ZERO works correctly. ++ if (Kind == k_RegisterIndex && RegIdx.Index == 0 && ++ RegIdx.Kind & RegKind_GPR) ++ return getGPR32Reg(); // FIXME: GPR64 too ++ ++ llvm_unreachable("Invalid access!"); ++ return 0; ++ } ++ ++ const MCExpr *getImm() const { ++ assert((Kind == k_Immediate) && "Invalid access!"); ++ return Imm.Val; ++ } ++ ++ int64_t getConstantImm() const { ++ const MCExpr *Val = getImm(); ++ int64_t Value = 0; ++ (void)Val->evaluateAsAbsolute(Value); ++ return Value; ++ } ++ ++ LoongArchOperand *getMemBase() const { ++ assert((Kind == k_Memory) && "Invalid access!"); ++ return Mem.Base; ++ } ++ ++ const MCExpr *getMemOff() const { ++ assert((Kind == k_Memory) && "Invalid access!"); ++ return Mem.Off; ++ } ++ ++ int64_t getConstantMemOff() const { ++ return static_cast(getMemOff())->getValue(); ++ } ++ ++ const SmallVectorImpl &getRegList() const { ++ assert((Kind == k_RegList) && "Invalid access!"); ++ return *(RegList.List); ++ } ++ ++ static std::unique_ptr CreateToken(StringRef Str, SMLoc S, ++ LoongArchAsmParser &Parser) { ++ auto Op = std::make_unique(k_Token, Parser); ++ Op->Tok.Data = Str.data(); ++ Op->Tok.Length = Str.size(); ++ Op->StartLoc = S; ++ Op->EndLoc = S; ++ return Op; ++ } ++ ++ /// Create a numeric register (e.g. $1). The exact register remains ++ /// unresolved until an instruction successfully matches ++ static std::unique_ptr ++ createNumericReg(unsigned Index, StringRef Str, const MCRegisterInfo *RegInfo, ++ SMLoc S, SMLoc E, LoongArchAsmParser &Parser) { ++ LLVM_DEBUG(dbgs() << "createNumericReg(" << Index << ", ...)\n"); ++ return CreateReg(Index, Str, RegKind_Numeric, RegInfo, S, E, Parser); ++ } ++ ++ /// Create a register that is definitely a GPR. ++ /// This is typically only used for named registers such as $gp. ++ static std::unique_ptr ++ createGPRReg(unsigned Index, StringRef Str, const MCRegisterInfo *RegInfo, ++ SMLoc S, SMLoc E, LoongArchAsmParser &Parser) { ++ return CreateReg(Index, Str, RegKind_GPR, RegInfo, S, E, Parser); ++ } ++ ++ /// Create a register that is definitely a FGR. ++ /// This is typically only used for named registers such as $f0. ++ static std::unique_ptr ++ createFGRReg(unsigned Index, StringRef Str, const MCRegisterInfo *RegInfo, ++ SMLoc S, SMLoc E, LoongArchAsmParser &Parser) { ++ return CreateReg(Index, Str, RegKind_FGR, RegInfo, S, E, Parser); ++ } ++ ++ /// Create a register that is definitely an FCFR. ++ /// This is typically only used for named registers such as $fcc0. ++ static std::unique_ptr ++ createFCFRReg(unsigned Index, StringRef Str, const MCRegisterInfo *RegInfo, ++ SMLoc S, SMLoc E, LoongArchAsmParser &Parser) { ++ return CreateReg(Index, Str, RegKind_FCFR, RegInfo, S, E, Parser); ++ } ++ ++ /// Create a register that is definitely an FCSR. ++ /// This is typically only used for named registers such as $fcsr0. ++ static std::unique_ptr ++ createFCSRReg(unsigned Index, StringRef Str, const MCRegisterInfo *RegInfo, ++ SMLoc S, SMLoc E, LoongArchAsmParser &Parser) { ++ return CreateReg(Index, Str, RegKind_FCSR, RegInfo, S, E, Parser); ++ } ++ ++ /// Create a register that is definitely an LSX128. ++ /// This is typically only used for named registers such as $v0. ++ static std::unique_ptr ++ createLSX128Reg(unsigned Index, StringRef Str, const MCRegisterInfo *RegInfo, ++ SMLoc S, SMLoc E, LoongArchAsmParser &Parser) { ++ return CreateReg(Index, Str, RegKind_LSX128, RegInfo, S, E, Parser); ++ } ++ ++ static std::unique_ptr ++ createLASX256Reg(unsigned Index, StringRef Str, const MCRegisterInfo *RegInfo, ++ SMLoc S, SMLoc E, LoongArchAsmParser &Parser) { ++ return CreateReg(Index, Str, RegKind_LASX256, RegInfo, S, E, Parser); ++ } ++ ++ static std::unique_ptr ++ CreateImm(const MCExpr *Val, SMLoc S, SMLoc E, LoongArchAsmParser &Parser) { ++ auto Op = std::make_unique(k_Immediate, Parser); ++ Op->Imm.Val = Val; ++ Op->StartLoc = S; ++ Op->EndLoc = E; ++ return Op; ++ } ++ ++ static std::unique_ptr ++ CreateMem(std::unique_ptr Base, const MCExpr *Off, SMLoc S, ++ SMLoc E, LoongArchAsmParser &Parser) { ++ auto Op = std::make_unique(k_Memory, Parser); ++ Op->Mem.Base = Base.release(); ++ Op->Mem.Off = Off; ++ Op->StartLoc = S; ++ Op->EndLoc = E; ++ return Op; ++ } ++ ++ static std::unique_ptr ++ CreateRegList(SmallVectorImpl &Regs, SMLoc StartLoc, SMLoc EndLoc, ++ LoongArchAsmParser &Parser) { ++ assert(Regs.size() > 0 && "Empty list not allowed"); ++ ++ auto Op = std::make_unique(k_RegList, Parser); ++ Op->RegList.List = new SmallVector(Regs.begin(), Regs.end()); ++ Op->StartLoc = StartLoc; ++ Op->EndLoc = EndLoc; ++ return Op; ++ } ++ ++ bool isGPRZeroAsmReg() const { ++ return isRegIdx() && RegIdx.Kind & RegKind_GPR && RegIdx.Index == 0; ++ } ++ ++ bool isGPRNonZeroAsmReg() const { ++ return isRegIdx() && RegIdx.Kind & RegKind_GPR && RegIdx.Index > 0 && ++ RegIdx.Index <= 31; ++ } ++ ++ bool isGPRAsmReg() const { ++ return isRegIdx() && RegIdx.Kind & RegKind_GPR && RegIdx.Index <= 31; ++ } ++ ++ bool isMM16AsmReg() const { ++ if (!(isRegIdx() && RegIdx.Kind)) ++ return false; ++ return ((RegIdx.Index >= 2 && RegIdx.Index <= 7) ++ || RegIdx.Index == 16 || RegIdx.Index == 17); ++ ++ } ++ bool isMM16AsmRegZero() const { ++ if (!(isRegIdx() && RegIdx.Kind)) ++ return false; ++ return (RegIdx.Index == 0 || ++ (RegIdx.Index >= 2 && RegIdx.Index <= 7) || ++ RegIdx.Index == 17); ++ } ++ ++ bool isMM16AsmRegMoveP() const { ++ if (!(isRegIdx() && RegIdx.Kind)) ++ return false; ++ return (RegIdx.Index == 0 || (RegIdx.Index >= 2 && RegIdx.Index <= 3) || ++ (RegIdx.Index >= 16 && RegIdx.Index <= 20)); ++ } ++ ++ bool isMM16AsmRegMovePPairFirst() const { ++ if (!(isRegIdx() && RegIdx.Kind)) ++ return false; ++ return RegIdx.Index >= 4 && RegIdx.Index <= 6; ++ } ++ ++ bool isMM16AsmRegMovePPairSecond() const { ++ if (!(isRegIdx() && RegIdx.Kind)) ++ return false; ++ return (RegIdx.Index == 21 || RegIdx.Index == 22 || ++ (RegIdx.Index >= 5 && RegIdx.Index <= 7)); ++ } ++ ++ bool isFGRAsmReg() const { ++ return isRegIdx() && RegIdx.Kind & RegKind_FGR && RegIdx.Index <= 31; ++ } ++ ++ bool isStrictlyFGRAsmReg() const { ++ return isRegIdx() && RegIdx.Kind == RegKind_FGR && RegIdx.Index <= 31; ++ } ++ ++ bool isFCSRAsmReg() const { ++ return isRegIdx() && RegIdx.Kind & RegKind_FCSR && RegIdx.Index <= 3; ++ } ++ ++ bool isFCFRAsmReg() const { ++ if (!(isRegIdx() && RegIdx.Kind & RegKind_FCFR)) ++ return false; ++ return RegIdx.Index <= 7; ++ } ++ ++ bool isLSX128AsmReg() const { ++ return isRegIdx() && RegIdx.Kind & RegKind_LSX128 && RegIdx.Index <= 31; ++ } ++ ++ bool isLASX256AsmReg() const { ++ return isRegIdx() && RegIdx.Kind & RegKind_LASX256 && RegIdx.Index <= 31; ++ } ++ ++ /// getStartLoc - Get the location of the first token of this operand. ++ SMLoc getStartLoc() const override { return StartLoc; } ++ /// getEndLoc - Get the location of the last token of this operand. ++ SMLoc getEndLoc() const override { return EndLoc; } ++ ++ void print(raw_ostream &OS) const override { ++ switch (Kind) { ++ case k_Immediate: ++ OS << "Imm<"; ++ OS << *Imm.Val; ++ OS << ">"; ++ break; ++ case k_Memory: ++ OS << "Mem<"; ++ Mem.Base->print(OS); ++ OS << ", "; ++ OS << *Mem.Off; ++ OS << ">"; ++ break; ++ case k_RegisterIndex: ++ OS << "RegIdx<" << RegIdx.Index << ":" << RegIdx.Kind << ", " ++ << StringRef(RegIdx.Tok.Data, RegIdx.Tok.Length) << ">"; ++ break; ++ case k_Token: ++ OS << getToken(); ++ break; ++ case k_RegList: ++ OS << "RegList< "; ++ for (auto Reg : (*RegList.List)) ++ OS << Reg << " "; ++ OS << ">"; ++ break; ++ } ++ } ++ ++ bool isValidForTie(const LoongArchOperand &Other) const { ++ if (Kind != Other.Kind) ++ return false; ++ ++ switch (Kind) { ++ default: ++ llvm_unreachable("Unexpected kind"); ++ return false; ++ case k_RegisterIndex: { ++ StringRef Token(RegIdx.Tok.Data, RegIdx.Tok.Length); ++ StringRef OtherToken(Other.RegIdx.Tok.Data, Other.RegIdx.Tok.Length); ++ return Token == OtherToken; ++ } ++ } ++ } ++}; // class LoongArchOperand ++ ++} // end anonymous namespace ++ ++namespace llvm { ++ ++extern const MCInstrDesc LoongArchInsts[]; ++ ++} // end namespace llvm ++ ++static const MCInstrDesc &getInstDesc(unsigned Opcode) { ++ return LoongArchInsts[Opcode]; ++} ++ ++static const MCSymbol *getSingleMCSymbol(const MCExpr *Expr) { ++ if (const MCSymbolRefExpr *SRExpr = dyn_cast(Expr)) { ++ return &SRExpr->getSymbol(); ++ } ++ ++ if (const MCBinaryExpr *BExpr = dyn_cast(Expr)) { ++ const MCSymbol *LHSSym = getSingleMCSymbol(BExpr->getLHS()); ++ const MCSymbol *RHSSym = getSingleMCSymbol(BExpr->getRHS()); ++ ++ if (LHSSym) ++ return LHSSym; ++ ++ if (RHSSym) ++ return RHSSym; ++ ++ return nullptr; ++ } ++ ++ if (const MCUnaryExpr *UExpr = dyn_cast(Expr)) ++ return getSingleMCSymbol(UExpr->getSubExpr()); ++ ++ return nullptr; ++} ++ ++static unsigned countMCSymbolRefExpr(const MCExpr *Expr) { ++ if (isa(Expr)) ++ return 1; ++ ++ if (const MCBinaryExpr *BExpr = dyn_cast(Expr)) ++ return countMCSymbolRefExpr(BExpr->getLHS()) + ++ countMCSymbolRefExpr(BExpr->getRHS()); ++ ++ if (const MCUnaryExpr *UExpr = dyn_cast(Expr)) ++ return countMCSymbolRefExpr(UExpr->getSubExpr()); ++ ++ return 0; ++} ++ ++bool LoongArchAsmParser::processInstruction(MCInst &Inst, SMLoc IDLoc, ++ MCStreamer &Out, ++ const MCSubtargetInfo *STI) { ++ const MCInstrDesc &MCID = getInstDesc(Inst.getOpcode()); ++ ++ Inst.setLoc(IDLoc); ++ ++ // Check branch instructions. ++ if (MCID.isBranch() || MCID.isCall()) { ++ const unsigned Opcode = Inst.getOpcode(); ++ MCOperand Offset; ++ bool check = true; ++ unsigned OffsetOpndIdx, OffsetOpndWidth; ++ switch (Opcode) { ++ default: ++ check = false; ++ break; ++ case LoongArch::BEQ: ++ case LoongArch::BNE: ++ case LoongArch::BLT: ++ case LoongArch::BGE: ++ case LoongArch::BLTU: ++ case LoongArch::BGEU: ++ OffsetOpndIdx = 2; ++ OffsetOpndWidth = 16; ++ break; ++ case LoongArch::BEQZ: ++ case LoongArch::BNEZ: ++ case LoongArch::BCEQZ: ++ case LoongArch::BCNEZ: ++ OffsetOpndIdx = 1; ++ OffsetOpndWidth = 21; ++ break; ++ case LoongArch::B: ++ case LoongArch::BL: ++ OffsetOpndIdx = 0; ++ OffsetOpndWidth = 26; ++ break; ++ } ++ if (check) { ++ assert(MCID.getNumOperands() == OffsetOpndIdx + 1 && ++ "unexpected number of operands"); ++ Offset = Inst.getOperand(OffsetOpndIdx); ++ // Non-Imm situation will be dealed with later on when applying fixups. ++ if (Offset.isImm()) { ++ if (!isIntN(OffsetOpndWidth + 2, Offset.getImm())) ++ return Error(IDLoc, "branch target out of range"); ++ if (offsetToAlignment(Offset.getImm(), Align(1LL << 2))) ++ return Error(IDLoc, "branch to misaligned address"); ++ } ++ } ++ } ++ ++ bool IsPCRelativeLoad = (MCID.TSFlags & LoongArchII::IsPCRelativeLoad) != 0; ++ if ((MCID.mayLoad() || MCID.mayStore()) && !IsPCRelativeLoad) { ++ // Check the offset of memory operand, if it is a symbol ++ // reference or immediate we may have to expand instructions. ++ for (unsigned i = 0; i < MCID.getNumOperands(); i++) { ++ const MCOperandInfo &OpInfo = MCID.OpInfo[i]; ++ if ((OpInfo.OperandType == MCOI::OPERAND_MEMORY) || ++ (OpInfo.OperandType == MCOI::OPERAND_UNKNOWN)) { ++ MCOperand &Op = Inst.getOperand(i); ++ if (Op.isImm()) { ++ int64_t MemOffset = Op.getImm(); ++ if (MemOffset < -32768 || MemOffset > 32767) { ++ return getParser().hasPendingError(); ++ } ++ } else if (Op.isExpr()) { ++ const MCExpr *Expr = Op.getExpr(); ++ if (Expr->getKind() == MCExpr::SymbolRef) { ++ const MCSymbolRefExpr *SR = ++ static_cast(Expr); ++ if (SR->getKind() == MCSymbolRefExpr::VK_None) { ++ return getParser().hasPendingError(); ++ } ++ } else if (!isEvaluated(Expr)) { ++ return getParser().hasPendingError(); ++ } ++ } ++ } ++ } // for ++ } // if load/store ++ ++ MacroExpanderResultTy ExpandResult = ++ tryExpandInstruction(Inst, IDLoc, Out, STI); ++ switch (ExpandResult) { ++ case MER_NotAMacro: ++ Out.EmitInstruction(Inst, *STI); ++ break; ++ case MER_Success: ++ break; ++ case MER_Fail: ++ return true; ++ } ++ ++ return false; ++} ++ ++LoongArchAsmParser::MacroExpanderResultTy ++LoongArchAsmParser::tryExpandInstruction(MCInst &Inst, SMLoc IDLoc, MCStreamer &Out, ++ const MCSubtargetInfo *STI) { ++ switch (Inst.getOpcode()) { ++ default: ++ return MER_NotAMacro; ++ case LoongArch::LoadImm32: // li.w $rd, $imm32 ++ case LoongArch::LoadImm64: // li.d $rd, $imm64 ++ return expandLoadImm(Inst, IDLoc, Out, STI) ? MER_Fail : MER_Success; ++ case LoongArch::LoadAddrLocal: // la.local $rd, symbol ++ case LoongArch::LoadAddrGlobal: // la.global $rd, symbol ++ case LoongArch::LoadAddrGlobal_Alias: // la $rd, symbol ++ case LoongArch::LoadAddrTLS_LE: // la.tls.le $rd, symbol ++ case LoongArch::LoadAddrTLS_IE: // la.tls.ie $rd, symbol ++ case LoongArch::LoadAddrTLS_LD: // la.tls.ld $rd, symbol ++ case LoongArch::LoadAddrTLS_GD: // la.tls.gd $rd, symbol ++ return expandLoadAddress(Inst, IDLoc, Out, STI) ? MER_Fail : MER_Success; ++ } ++} ++ ++/// Can the value be represented by a unsigned N-bit value and a shift left? ++template static bool isShiftedUIntAtAnyPosition(uint64_t x) { ++ unsigned BitNum = findFirstSet(x); ++ ++ return (x == x >> BitNum << BitNum) && isUInt(x >> BitNum); ++} ++ ++bool LoongArchAsmParser::expandLoadImm(MCInst &Inst, SMLoc IDLoc, ++ MCStreamer &Out, ++ const MCSubtargetInfo *STI) { ++ const int64_t Imm = Inst.getOperand(1).getImm(); ++ const unsigned DstReg = Inst.getOperand(0).getReg(); ++ LoongArchTargetStreamer &TOut = getTargetStreamer(); ++ bool Is64Bit = Inst.getOpcode() == LoongArch::LoadImm64; ++ unsigned SrcReg = Is64Bit ? LoongArch::ZERO_64 : LoongArch::ZERO; ++ LoongArchAnalyzeImmediate::InstSeq Seq = ++ LoongArchAnalyzeImmediate::generateInstSeq( ++ Is64Bit ? Imm : SignExtend64<32>(Imm), Is64Bit); ++ ++ for (auto &Inst : Seq) { ++ if (Inst.Opc == LoongArch::LU12I_W || Inst.Opc == LoongArch::LU12I_W32) ++ TOut.emitRI(Inst.Opc, DstReg, Inst.Imm, IDLoc, STI); ++ else ++ TOut.emitRRI(Inst.Opc, DstReg, SrcReg, Inst.Imm, IDLoc, STI); ++ SrcReg = DstReg; ++ } ++ ++ return false; ++} ++ ++bool LoongArchAsmParser::expandLoadAddress(MCInst &Inst, SMLoc IDLoc, ++ MCStreamer &Out, ++ const MCSubtargetInfo *STI) { ++ LoongArchTargetStreamer &TOut = getTargetStreamer(); ++ const MCExpr *SymExpr = Inst.getOperand(1).getExpr(); ++ const LoongArchMCExpr *HiExpr = nullptr; ++ const LoongArchMCExpr *LoExpr = nullptr; ++ const LoongArchMCExpr *HigherExpr = nullptr; ++ const LoongArchMCExpr *HighestExpr = nullptr; ++ const MCExpr *GotExpr = MCSymbolRefExpr::create( ++ "_GLOBAL_OFFSET_TABLE_", MCSymbolRefExpr::VK_None, getContext()); ++ unsigned DstReg = Inst.getOperand(0).getReg(); ++ ++ MCValue Res; ++ if (!SymExpr->evaluateAsRelocatable(Res, nullptr, nullptr)) { ++ Error(IDLoc, "expected relocatable expression"); ++ return true; ++ } ++ if (Res.getSymB() != nullptr) { ++ Error(IDLoc, "expected relocatable expression with only one symbol"); ++ return true; ++ } ++ ++ switch (Inst.getOpcode()) { ++ case LoongArch::LoadAddrLocal: ++ HiExpr = LoongArchMCExpr::create(LoongArchMCExpr::MEK_PCREL_HI, SymExpr, ++ getContext()); ++ LoExpr = LoongArchMCExpr::create(LoongArchMCExpr::MEK_PCREL_LO, SymExpr, ++ getContext()); ++ ++ TOut.emitRX(LoongArch::PCADDU12I_ri, DstReg, MCOperand::createExpr(HiExpr), ++ IDLoc, STI); ++ TOut.emitRRX(LoongArch::ADDI_D_rri, DstReg, DstReg, ++ MCOperand::createExpr(LoExpr), IDLoc, STI); ++ return false; ++ case LoongArch::LoadAddrGlobal: ++ case LoongArch::LoadAddrGlobal_Alias: ++ HiExpr = LoongArchMCExpr::create(LoongArchMCExpr::MEK_GOT_HI, SymExpr, ++ getContext()); ++ LoExpr = LoongArchMCExpr::create(LoongArchMCExpr::MEK_GOT_LO, SymExpr, ++ getContext()); ++ TOut.emitRXX(LoongArch::PCADDU12I_rii, DstReg, ++ MCOperand::createExpr(HiExpr), MCOperand::createExpr(GotExpr), ++ IDLoc, STI); ++ TOut.emitRRXX(LoongArch::LD_D_rrii, DstReg, DstReg, ++ MCOperand::createExpr(LoExpr), MCOperand::createExpr(GotExpr), ++ IDLoc, STI); ++ return false; ++ case LoongArch::LoadAddrTLS_LE: ++ HiExpr = LoongArchMCExpr::create(LoongArchMCExpr::MEK_TLSLE_HI, SymExpr, ++ getContext()); ++ LoExpr = LoongArchMCExpr::create(LoongArchMCExpr::MEK_TLSLE_LO, SymExpr, ++ getContext()); ++ HigherExpr = LoongArchMCExpr::create(LoongArchMCExpr::MEK_TLSLE_HIGHER, ++ SymExpr, getContext()); ++ HighestExpr = LoongArchMCExpr::create(LoongArchMCExpr::MEK_TLSLE_HIGHEST, ++ SymExpr, getContext()); ++ TOut.emitRX(LoongArch::LU12I_W_ri, DstReg, MCOperand::createExpr(HiExpr), ++ IDLoc, STI); ++ TOut.emitRRX(LoongArch::ORI_rri, DstReg, DstReg, ++ MCOperand::createExpr(LoExpr), IDLoc, STI); ++ TOut.emitRX(LoongArch::LU32I_D_ri, DstReg, ++ MCOperand::createExpr(HigherExpr), IDLoc, STI); ++ TOut.emitRRX(LoongArch::LU52I_D_rri, DstReg, DstReg, ++ MCOperand::createExpr(HighestExpr), IDLoc, STI); ++ return false; ++ case LoongArch::LoadAddrTLS_IE: ++ HiExpr = LoongArchMCExpr::create(LoongArchMCExpr::MEK_TLSIE_HI, SymExpr, ++ getContext()); ++ LoExpr = LoongArchMCExpr::create(LoongArchMCExpr::MEK_TLSIE_LO, SymExpr, ++ getContext()); ++ TOut.emitRXX(LoongArch::PCADDU12I_rii, DstReg, ++ MCOperand::createExpr(HiExpr), MCOperand::createExpr(GotExpr), ++ IDLoc, STI); ++ TOut.emitRRXX(LoongArch::LD_D_rrii, DstReg, DstReg, ++ MCOperand::createExpr(LoExpr), MCOperand::createExpr(GotExpr), ++ IDLoc, STI); ++ return false; ++ case LoongArch::LoadAddrTLS_LD: ++ case LoongArch::LoadAddrTLS_GD: ++ HiExpr = LoongArchMCExpr::create(LoongArchMCExpr::MEK_TLSGD_HI, SymExpr, ++ getContext()); ++ LoExpr = LoongArchMCExpr::create(LoongArchMCExpr::MEK_TLSGD_LO, SymExpr, ++ getContext()); ++ TOut.emitRXX(LoongArch::PCADDU12I_rii, DstReg, ++ MCOperand::createExpr(HiExpr), MCOperand::createExpr(GotExpr), ++ IDLoc, STI); ++ TOut.emitRRXX(LoongArch::ADDI_D_rrii, DstReg, DstReg, ++ MCOperand::createExpr(LoExpr), MCOperand::createExpr(GotExpr), ++ IDLoc, STI); ++ return false; ++ default: ++ llvm_unreachable(""); ++ } ++} ++ ++unsigned LoongArchAsmParser::checkTargetMatchPredicate(MCInst &Inst) { ++ switch (Inst.getOpcode()) { ++ case LoongArch::BSTRINS_W: ++ case LoongArch::BSTRPICK_W: { ++ assert(Inst.getOperand(2).isImm() && Inst.getOperand(3).isImm() && ++ "Operands must be immediates for bstrins.w/bstrpick.w!"); ++ const signed Msbw = Inst.getOperand(2).getImm(); ++ const signed Lsbw = Inst.getOperand(3).getImm(); ++ if (Msbw < Lsbw) ++ return Match_MsbHigherThanLsb; ++ if ((Lsbw < 0) || (Msbw > 31)) ++ return Match_RequiresRange0_31; ++ return Match_Success; ++ } ++ case LoongArch::BSTRINS_D: ++ case LoongArch::BSTRPICK_D: { ++ assert(Inst.getOperand(2).isImm() && Inst.getOperand(3).isImm() && ++ "Operands must be immediates for bstrins.d/bstrpick.d!"); ++ const signed Msbd = Inst.getOperand(2).getImm(); ++ const signed Lsbd = Inst.getOperand(3).getImm(); ++ if (Msbd < Lsbd) ++ return Match_MsbHigherThanLsb; ++ if ((Lsbd < 0) || (Msbd > 63)) ++ return Match_RequiresRange0_63; ++ return Match_Success; ++ } ++ case LoongArch::CSRXCHG32: ++ case LoongArch::CSRXCHG: ++ if (Inst.getOperand(2).getReg() == LoongArch::ZERO || ++ Inst.getOperand(2).getReg() == LoongArch::ZERO_64) ++ return Match_RequiresNoZeroRegister; ++ if (Inst.getOperand(2).getReg() == LoongArch::RA || ++ Inst.getOperand(2).getReg() == LoongArch::RA_64) ++ return Match_RequiresNoRaRegister; ++ return Match_Success; ++ } ++ ++ return Match_Success; ++} ++ ++static SMLoc RefineErrorLoc(const SMLoc Loc, const OperandVector &Operands, ++ uint64_t ErrorInfo) { ++ if (ErrorInfo != ~0ULL && ErrorInfo < Operands.size()) { ++ SMLoc ErrorLoc = Operands[ErrorInfo]->getStartLoc(); ++ if (ErrorLoc == SMLoc()) ++ return Loc; ++ return ErrorLoc; ++ } ++ return Loc; ++} ++ ++bool LoongArchAsmParser::MatchAndEmitInstruction(SMLoc IDLoc, unsigned &Opcode, ++ OperandVector &Operands, ++ MCStreamer &Out, ++ uint64_t &ErrorInfo, ++ bool MatchingInlineAsm) { ++ MCInst Inst; ++ unsigned MatchResult = ++ MatchInstructionImpl(Operands, Inst, ErrorInfo, MatchingInlineAsm); ++ switch (MatchResult) { ++ case Match_Success: ++ if (processInstruction(Inst, IDLoc, Out, STI)) ++ return true; ++ return false; ++ case Match_MissingFeature: ++ Error(IDLoc, "instruction requires a CPU feature not currently enabled"); ++ return true; ++ case Match_InvalidOperand: { ++ SMLoc ErrorLoc = IDLoc; ++ if (ErrorInfo != ~0ULL) { ++ if (ErrorInfo >= Operands.size()) ++ return Error(IDLoc, "too few operands for instruction"); ++ ++ ErrorLoc = Operands[ErrorInfo]->getStartLoc(); ++ if (ErrorLoc == SMLoc()) ++ ErrorLoc = IDLoc; ++ } ++ ++ return Error(ErrorLoc, "invalid operand for instruction"); ++ } ++ case Match_MnemonicFail: ++ return Error(IDLoc, "invalid instruction"); ++ case Match_RequiresNoZeroRegister: ++ return Error(IDLoc, "invalid operand ($zero) for instruction"); ++ case Match_RequiresNoRaRegister: ++ return Error(IDLoc, "invalid operand ($r1) for instruction"); ++ case Match_InvalidImm0_3: ++ return Error(RefineErrorLoc(IDLoc, Operands, ErrorInfo), ++ "immediate must be an integer in range [0, 3]."); ++ case Match_InvalidImm0_7: ++ return Error(RefineErrorLoc(IDLoc, Operands, ErrorInfo), ++ "immediate must be an integer in range [0, 7]."); ++ case Match_InvalidImm0_31: ++ return Error(RefineErrorLoc(IDLoc, Operands, ErrorInfo), ++ "immediate must be an integer in range [0, 31]."); ++ case Match_InvalidImm0_63: ++ return Error(RefineErrorLoc(IDLoc, Operands, ErrorInfo), ++ "immediate must be an integer in range [0, 63]."); ++ case Match_InvalidImm0_4095: ++ case Match_UImm12_Relaxed: ++ return Error(RefineErrorLoc(IDLoc, Operands, ErrorInfo), ++ "immediate must be an integer in range [0, 4095]."); ++ case Match_InvalidImm0_32767: ++ return Error(RefineErrorLoc(IDLoc, Operands, ErrorInfo), ++ "immediate must be an integer in range [0, 32767]."); ++ case Match_UImm16_Relaxed: ++ return Error(RefineErrorLoc(IDLoc, Operands, ErrorInfo), ++ "expected 16-bit unsigned immediate"); ++ case Match_UImm20_0: ++ return Error(RefineErrorLoc(IDLoc, Operands, ErrorInfo), ++ "expected 20-bit unsigned immediate"); ++ case Match_UImm26_0: ++ return Error(RefineErrorLoc(IDLoc, Operands, ErrorInfo), ++ "expected 26-bit unsigned immediate"); ++ case Match_UImm32_Coerced: ++ return Error(RefineErrorLoc(IDLoc, Operands, ErrorInfo), ++ "expected 32-bit immediate"); ++ case Match_InvalidSImm2: ++ return Error(RefineErrorLoc(IDLoc, Operands, ErrorInfo), ++ "expected 2-bit signed immediate"); ++ case Match_InvalidSImm3: ++ return Error(RefineErrorLoc(IDLoc, Operands, ErrorInfo), ++ "expected 3-bit signed immediate"); ++ case Match_InvalidSImm5: ++ return Error(RefineErrorLoc(IDLoc, Operands, ErrorInfo), ++ "expected 5-bit signed immediate"); ++ case Match_InvalidSImm8: ++ return Error(RefineErrorLoc(IDLoc, Operands, ErrorInfo), ++ "expected 8-bit signed immediate"); ++ case Match_InvalidSImm12: ++ case Match_SImm12_Relaxed: ++ return Error(RefineErrorLoc(IDLoc, Operands, ErrorInfo), ++ "expected 12-bit signed immediate"); ++ case Match_InvalidSImm14: ++ return Error(RefineErrorLoc(IDLoc, Operands, ErrorInfo), ++ "expected 14-bit signed immediate"); ++ case Match_InvalidSImm15: ++ return Error(RefineErrorLoc(IDLoc, Operands, ErrorInfo), ++ "expected 15-bit signed immediate"); ++ case Match_InvalidSImm16: ++ return Error(RefineErrorLoc(IDLoc, Operands, ErrorInfo), ++ "expected 16-bit signed immediate"); ++ case Match_InvalidSImm20: ++ return Error(RefineErrorLoc(IDLoc, Operands, ErrorInfo), ++ "expected 20-bit signed immediate"); ++ case Match_InvalidSImm21: ++ return Error(RefineErrorLoc(IDLoc, Operands, ErrorInfo), ++ "expected 21-bit signed immediate"); ++ case Match_InvalidSImm26: ++ return Error(RefineErrorLoc(IDLoc, Operands, ErrorInfo), ++ "expected 26-bit signed immediate"); ++ case Match_SImm32: ++ case Match_SImm32_Relaxed: ++ return Error(RefineErrorLoc(IDLoc, Operands, ErrorInfo), ++ "expected 32-bit signed immediate"); ++ case Match_MemSImm14: ++ return Error(RefineErrorLoc(IDLoc, Operands, ErrorInfo), ++ "expected memory with 14-bit signed offset"); ++ case Match_MemSImmPtr: ++ return Error(RefineErrorLoc(IDLoc, Operands, ErrorInfo), ++ "expected memory with 32-bit signed offset"); ++ case Match_UImm2_1: ++ return Error(RefineErrorLoc(IDLoc, Operands, ErrorInfo), ++ "expected immediate in range 1 .. 4"); ++ case Match_MemSImm14Lsl2: ++ return Error(RefineErrorLoc(IDLoc, Operands, ErrorInfo), ++ "expected memory with 16-bit signed offset and multiple of 4"); ++ case Match_RequiresRange0_31: { ++ SMLoc ErrorStart = Operands[3]->getStartLoc(); ++ SMLoc ErrorEnd = Operands[4]->getEndLoc(); ++ return Error(ErrorStart, "from lsbw to msbw are not in the range 0 .. 31", ++ SMRange(ErrorStart, ErrorEnd)); ++ } ++ case Match_RequiresPosSizeUImm6: { ++ SMLoc ErrorStart = Operands[3]->getStartLoc(); ++ SMLoc ErrorEnd = Operands[4]->getEndLoc(); ++ return Error(ErrorStart, "size plus position are not in the range 1 .. 63", ++ SMRange(ErrorStart, ErrorEnd)); ++ } ++ case Match_RequiresRange0_63: { ++ SMLoc ErrorStart = Operands[3]->getStartLoc(); ++ SMLoc ErrorEnd = Operands[4]->getEndLoc(); ++ return Error(ErrorStart, "from lsbd to msbd are not in the range 0 .. 63", ++ SMRange(ErrorStart, ErrorEnd)); ++ } ++ case Match_MsbHigherThanLsb: { ++ SMLoc ErrorStart = Operands[3]->getStartLoc(); ++ SMLoc ErrorEnd = Operands[4]->getEndLoc(); ++ return Error(ErrorStart, "msb are not higher than lsb", SMRange(ErrorStart, ErrorEnd)); ++ } ++ case Match_MemZeroOff: ++ return Error(RefineErrorLoc(IDLoc, Operands, ErrorInfo), ++ "expected memory with constant 0 offset"); ++ } ++ ++ llvm_unreachable("Implement any new match types added!"); ++} ++ ++/* ++ * Note: The implementation of this function must be sync with the definition ++ * of GPR32/GPR64 RegisterClass in LoongArchRegisterInfo.td ++ */ ++int LoongArchAsmParser::matchCPURegisterName(StringRef Name) { ++ int CC; ++ ++ CC = StringSwitch(Name) ++ .Cases("zero", "r0", 0) ++ .Cases("a0", "v0", "r4", 1) ++ .Cases("a1", "v1", "r5", 2) ++ .Cases("a2", "r6", 3) ++ .Cases("a3", "r7", 4) ++ .Cases("a4", "r8", 5) ++ .Cases("a5", "r9", 6) ++ .Cases("a6", "r10", 7) ++ .Cases("a7", "r11", 8) ++ .Cases("t0", "r12", 9) ++ .Cases("t1", "r13", 10) ++ .Cases("t2", "r14", 11) ++ .Cases("t3", "r15", 12) ++ .Cases("t4", "r16", 13) ++ .Cases("t5", "r17", 14) ++ .Cases("t6", "r18", 15) ++ .Cases("t7", "r19", 16) ++ .Cases("t8", "r20", 17) ++ .Cases("s0", "r23", 18) ++ .Cases("s1", "r24", 19) ++ .Cases("s2", "r25", 20) ++ .Cases("s3", "r26", 21) ++ .Cases("s4", "r27", 22) ++ .Cases("s5", "r28", 23) ++ .Cases("s6", "r29", 24) ++ .Cases("s7", "r30", 25) ++ .Cases("s8", "r31", 26) ++ .Cases("ra", "r1", 27) ++ .Cases("tp", "r2", 28) ++ .Cases("sp", "r3", 29) ++ .Case("r21", 30) ++ .Cases("fp", "r22", 31) ++ .Default(-1); ++ ++ return CC; ++} ++ ++int LoongArchAsmParser::matchFPURegisterName(StringRef Name) { ++ if (Name[0] == 'f') { ++ int CC; ++ ++ CC = StringSwitch(Name) ++ .Cases("f0", "fa0", "fv0", 0) ++ .Cases("f1", "fa1", "fv1", 1) ++ .Cases("f2", "fa2", 2) ++ .Cases("f3", "fa3", 3) ++ .Cases("f4", "fa4", 4) ++ .Cases("f5", "fa5", 5) ++ .Cases("f6", "fa6", 6) ++ .Cases("f7", "fa7", 7) ++ .Cases("f8", "ft0", 8) ++ .Cases("f9", "ft1", 9) ++ .Cases("f10", "ft2", 10) ++ .Cases("f11", "ft3", 11) ++ .Cases("f12", "ft4", 12) ++ .Cases("f13", "ft5", 13) ++ .Cases("f14", "ft6", 14) ++ .Cases("f15", "ft7", 15) ++ .Cases("f16", "ft8", 16) ++ .Cases("f17", "ft9", 17) ++ .Cases("f18", "ft10", 18) ++ .Cases("f19", "ft11", 19) ++ .Cases("f20", "ft12", 20) ++ .Cases("f21", "ft13", 21) ++ .Cases("f22", "ft14", 22) ++ .Cases("f23", "ft15", 23) ++ .Cases("f24", "fs0", 24) ++ .Cases("f25", "fs1", 25) ++ .Cases("f26", "fs2", 26) ++ .Cases("f27", "fs3", 27) ++ .Cases("f28", "fs4", 28) ++ .Cases("f29", "fs5", 29) ++ .Cases("f30", "fs6", 30) ++ .Cases("f31", "fs7", 31) ++ .Default(-1); ++ ++ return CC; ++ } ++ return -1; ++} ++ ++int LoongArchAsmParser::matchFCFRRegisterName(StringRef Name) { ++ if (Name.startswith("fcc")) { ++ StringRef NumString = Name.substr(3); ++ unsigned IntVal; ++ if (NumString.getAsInteger(10, IntVal)) ++ return -1; // This is not an integer. ++ if (IntVal > 7) // There are only 8 fcc registers. ++ return -1; ++ return IntVal; ++ } ++ return -1; ++} ++ ++int LoongArchAsmParser::matchFCSRRegisterName(StringRef Name) { ++ if (Name.startswith("fcsr")) { ++ StringRef NumString = Name.substr(4); ++ unsigned IntVal; ++ if (NumString.getAsInteger(10, IntVal)) ++ return -1; // This is not an integer. ++ if (IntVal > 3) // There are only 4 fcsr registers. ++ return -1; ++ return IntVal; ++ } ++ return -1; ++} ++ ++int LoongArchAsmParser::matchLSX128RegisterName(StringRef Name) { ++ unsigned IntVal; ++ ++ if (Name.front() != 'v' || Name.drop_front(2).getAsInteger(10, IntVal)) ++ return -1; ++ ++ if (IntVal > 31) ++ return -1; ++ ++ return IntVal; ++} ++ ++int LoongArchAsmParser::matchLASX256RegisterName(StringRef Name) { ++ unsigned IntVal; ++ ++ if (Name.front() != 'x' || Name.drop_front(2).getAsInteger(10, IntVal)) ++ return -1; ++ ++ if (IntVal > 31) ++ return -1; ++ ++ return IntVal; ++} ++ ++bool LoongArchAsmParser::parseOperand(OperandVector &Operands, StringRef Mnemonic) { ++ MCAsmParser &Parser = getParser(); ++ LLVM_DEBUG(dbgs() << "parseOperand\n"); ++ ++ // Check if the current operand has a custom associated parser, if so, try to ++ // custom parse the operand, or fallback to the general approach. ++ OperandMatchResultTy ResTy = MatchOperandParserImpl(Operands, Mnemonic); ++ if (ResTy == MatchOperand_Success) ++ return false; ++ // If there wasn't a custom match, try the generic matcher below. Otherwise, ++ // there was a match, but an error occurred, in which case, just return that ++ // the operand parsing failed. ++ if (ResTy == MatchOperand_ParseFail) ++ return true; ++ ++ LLVM_DEBUG(dbgs() << ".. Generic Parser\n"); ++ ++ switch (getLexer().getKind()) { ++ case AsmToken::Dollar: { ++ // Parse the register. ++ SMLoc S = Parser.getTok().getLoc(); ++ ++ // Almost all registers have been parsed by custom parsers. There is only ++ // one exception to this. $zero (and it's alias $0) will reach this point ++ // for div, divu, and similar instructions because it is not an operand ++ // to the instruction definition but an explicit register. Special case ++ // this situation for now. ++ if (parseAnyRegister(Operands) != MatchOperand_NoMatch) ++ return false; ++ ++ // Maybe it is a symbol reference. ++ StringRef Identifier; ++ if (Parser.parseIdentifier(Identifier)) ++ return true; ++ ++ SMLoc E = SMLoc::getFromPointer(Parser.getTok().getLoc().getPointer() - 1); ++ MCSymbol *Sym = getContext().getOrCreateSymbol("$" + Identifier); ++ // Otherwise create a symbol reference. ++ const MCExpr *Res = ++ MCSymbolRefExpr::create(Sym, MCSymbolRefExpr::VK_None, getContext()); ++ ++ Operands.push_back(LoongArchOperand::CreateImm(Res, S, E, *this)); ++ return false; ++ } ++ default: { ++ LLVM_DEBUG(dbgs() << ".. generic integer expression\n"); ++ ++ const MCExpr *Expr; ++ SMLoc S = Parser.getTok().getLoc(); // Start location of the operand. ++ if (getParser().parseExpression(Expr)) ++ return true; ++ ++ SMLoc E = SMLoc::getFromPointer(Parser.getTok().getLoc().getPointer() - 1); ++ ++ Operands.push_back(LoongArchOperand::CreateImm(Expr, S, E, *this)); ++ return false; ++ } ++ } // switch(getLexer().getKind()) ++ return true; ++} ++ ++bool LoongArchAsmParser::isEvaluated(const MCExpr *Expr) { ++ switch (Expr->getKind()) { ++ case MCExpr::Constant: ++ return true; ++ case MCExpr::SymbolRef: ++ return (cast(Expr)->getKind() != MCSymbolRefExpr::VK_None); ++ case MCExpr::Binary: { ++ const MCBinaryExpr *BE = cast(Expr); ++ if (!isEvaluated(BE->getLHS())) ++ return false; ++ return isEvaluated(BE->getRHS()); ++ } ++ case MCExpr::Unary: ++ return isEvaluated(cast(Expr)->getSubExpr()); ++ case MCExpr::Target: ++ return true; ++ } ++ return false; ++} ++ ++bool LoongArchAsmParser::ParseRegister(unsigned &RegNo, SMLoc &StartLoc, ++ SMLoc &EndLoc) { ++ SmallVector, 1> Operands; ++ OperandMatchResultTy ResTy = parseAnyRegister(Operands); ++ if (ResTy == MatchOperand_Success) { ++ assert(Operands.size() == 1); ++ LoongArchOperand &Operand = static_cast(*Operands.front()); ++ StartLoc = Operand.getStartLoc(); ++ EndLoc = Operand.getEndLoc(); ++ ++ // AFAIK, we only support numeric registers and named GPR's in CFI ++ // directives. ++ // Don't worry about eating tokens before failing. Using an unrecognised ++ // register is a parse error. ++ if (Operand.isGPRAsmReg()) { ++ // Resolve to GPR32 or GPR64 appropriately. ++ RegNo = is64Bit() ? Operand.getGPR64Reg() : Operand.getGPR32Reg(); ++ } ++ ++ return (RegNo == (unsigned)-1); ++ } ++ ++ assert(Operands.size() == 0); ++ return (RegNo == (unsigned)-1); ++} ++ ++bool LoongArchAsmParser::parseMemOffset(const MCExpr *&Res) { ++ return getParser().parseExpression(Res); ++} ++ ++OperandMatchResultTy ++LoongArchAsmParser::parseMemOperand(OperandVector &Operands) { ++ MCAsmParser &Parser = getParser(); ++ LLVM_DEBUG(dbgs() << "parseMemOperand\n"); ++ const MCExpr *IdVal = nullptr; ++ SMLoc S; ++ OperandMatchResultTy Res = MatchOperand_NoMatch; ++ // First operand is the base. ++ S = Parser.getTok().getLoc(); ++ ++ Res = parseAnyRegister(Operands); ++ if (Res != MatchOperand_Success) ++ return Res; ++ ++ if (Parser.getTok().isNot(AsmToken::Comma)) { ++ Error(Parser.getTok().getLoc(), "',' expected"); ++ return MatchOperand_ParseFail; ++ } ++ ++ Parser.Lex(); // Eat the ',' token. ++ ++ if (parseMemOffset(IdVal)) ++ return MatchOperand_ParseFail; ++ ++ SMLoc E = SMLoc::getFromPointer(Parser.getTok().getLoc().getPointer() - 1); ++ ++ // Replace the register operand with the memory operand. ++ std::unique_ptr op( ++ static_cast(Operands.back().release())); ++ // Remove the register from the operands. ++ // "op" will be managed by k_Memory. ++ Operands.pop_back(); ++ ++ // when symbol not defined, error report. ++ if (dyn_cast(IdVal)) { ++ return MatchOperand_ParseFail; ++ } ++ ++ // Add the memory operand. ++ if (dyn_cast(IdVal)) { ++ int64_t Imm; ++ if (IdVal->evaluateAsAbsolute(Imm)) ++ IdVal = MCConstantExpr::create(Imm, getContext()); ++ else ++ return MatchOperand_ParseFail; ++ } ++ ++ Operands.push_back(LoongArchOperand::CreateMem(std::move(op), IdVal, S, E, *this)); ++ return MatchOperand_Success; ++} ++ ++OperandMatchResultTy ++LoongArchAsmParser::parseAMemOperand(OperandVector &Operands) { ++ MCAsmParser &Parser = getParser(); ++ LLVM_DEBUG(dbgs() << "parseAMemOperand\n"); ++ const MCExpr *IdVal = nullptr; ++ SMLoc S; ++ OperandMatchResultTy Res = MatchOperand_NoMatch; ++ // First operand is the base. ++ S = Parser.getTok().getLoc(); ++ ++ Res = parseAnyRegister(Operands); ++ if (Res != MatchOperand_Success) ++ return Res; ++ ++ SMLoc E = SMLoc::getFromPointer(Parser.getTok().getLoc().getPointer() - 1); ++ ++ // AM* instructions allow an optional '0' memory offset. ++ if (Parser.getTok().is(AsmToken::Comma)) { ++ Parser.Lex(); // Eat the ',' token. ++ ++ if (parseMemOffset(IdVal)) ++ return MatchOperand_ParseFail; ++ ++ // when symbol not defined, error report. ++ if (dyn_cast(IdVal)) ++ return MatchOperand_ParseFail; ++ ++ if (dyn_cast(IdVal)) { ++ int64_t Imm; ++ if (IdVal->evaluateAsAbsolute(Imm)) { ++ assert(Imm == 0 && "imm must be 0"); ++ IdVal = MCConstantExpr::create(Imm, getContext()); ++ } else { ++ return MatchOperand_ParseFail; ++ } ++ } ++ } else { ++ // Offset defaults to 0. ++ IdVal = MCConstantExpr::create(0, getContext()); ++ } ++ ++ // Replace the register operand with the memory operand. ++ std::unique_ptr op( ++ static_cast(Operands.back().release())); ++ // Remove the register from the operands. ++ // "op" will be managed by k_Memory. ++ Operands.pop_back(); ++ // Add the memory operand. ++ Operands.push_back( ++ LoongArchOperand::CreateMem(std::move(op), IdVal, S, E, *this)); ++ return MatchOperand_Success; ++} ++ ++bool LoongArchAsmParser::searchSymbolAlias(OperandVector &Operands) { ++ MCAsmParser &Parser = getParser(); ++ MCSymbol *Sym = getContext().lookupSymbol(Parser.getTok().getIdentifier()); ++ if (!Sym) ++ return false; ++ ++ SMLoc S = Parser.getTok().getLoc(); ++ if (Sym->isVariable()) { ++ const MCExpr *Expr = Sym->getVariableValue(); ++ if (Expr->getKind() == MCExpr::SymbolRef) { ++ const MCSymbolRefExpr *Ref = static_cast(Expr); ++ StringRef DefSymbol = Ref->getSymbol().getName(); ++ if (DefSymbol.startswith("$")) { ++ OperandMatchResultTy ResTy = ++ matchAnyRegisterNameWithoutDollar(Operands, DefSymbol.substr(1), S); ++ if (ResTy == MatchOperand_Success) { ++ Parser.Lex(); ++ return true; ++ } ++ if (ResTy == MatchOperand_ParseFail) ++ llvm_unreachable("Should never ParseFail"); ++ } ++ } ++ } else if (Sym->isUnset()) { ++ // If symbol is unset, it might be created in the `parseSetAssignment` ++ // routine as an alias for a numeric register name. ++ // Lookup in the aliases list. ++ auto Entry = RegisterSets.find(Sym->getName()); ++ if (Entry != RegisterSets.end()) { ++ OperandMatchResultTy ResTy = ++ matchAnyRegisterWithoutDollar(Operands, Entry->getValue(), S); ++ if (ResTy == MatchOperand_Success) { ++ Parser.Lex(); ++ return true; ++ } ++ } ++ } ++ ++ return false; ++} ++ ++OperandMatchResultTy ++LoongArchAsmParser::matchAnyRegisterNameWithoutDollar(OperandVector &Operands, ++ StringRef Identifier, ++ SMLoc S) { ++ int Index = matchCPURegisterName(Identifier); ++ if (Index != -1) { ++ Operands.push_back(LoongArchOperand::createGPRReg( ++ Index, Identifier, getContext().getRegisterInfo(), S, ++ getLexer().getLoc(), *this)); ++ return MatchOperand_Success; ++ } ++ ++ Index = matchFPURegisterName(Identifier); ++ if (Index != -1) { ++ Operands.push_back(LoongArchOperand::createFGRReg( ++ Index, Identifier, getContext().getRegisterInfo(), S, ++ getLexer().getLoc(), *this)); ++ return MatchOperand_Success; ++ } ++ ++ Index = matchFCFRRegisterName(Identifier); ++ if (Index != -1) { ++ Operands.push_back(LoongArchOperand::createFCFRReg( ++ Index, Identifier, getContext().getRegisterInfo(), S, ++ getLexer().getLoc(), *this)); ++ return MatchOperand_Success; ++ } ++ ++ Index = matchFCSRRegisterName(Identifier); ++ if (Index != -1) { ++ Operands.push_back(LoongArchOperand::createFCSRReg( ++ Index, Identifier, getContext().getRegisterInfo(), S, ++ getLexer().getLoc(), *this)); ++ return MatchOperand_Success; ++ } ++ ++ Index = matchLSX128RegisterName(Identifier); ++ if (Index != -1) { ++ Operands.push_back(LoongArchOperand::createLSX128Reg( ++ Index, Identifier, getContext().getRegisterInfo(), S, ++ getLexer().getLoc(), *this)); ++ return MatchOperand_Success; ++ } ++ ++ Index = matchLASX256RegisterName(Identifier); ++ if (Index != -1) { ++ Operands.push_back(LoongArchOperand::createLASX256Reg( ++ Index, Identifier, getContext().getRegisterInfo(), S, ++ getLexer().getLoc(), *this)); ++ return MatchOperand_Success; ++ } ++ ++ return MatchOperand_NoMatch; ++} ++ ++OperandMatchResultTy ++LoongArchAsmParser::matchAnyRegisterWithoutDollar(OperandVector &Operands, ++ const AsmToken &Token, SMLoc S) { ++ if (Token.is(AsmToken::Identifier)) { ++ LLVM_DEBUG(dbgs() << ".. identifier\n"); ++ StringRef Identifier = Token.getIdentifier(); ++ OperandMatchResultTy ResTy = ++ matchAnyRegisterNameWithoutDollar(Operands, Identifier, S); ++ return ResTy; ++ } else if (Token.is(AsmToken::Integer)) { ++ LLVM_DEBUG(dbgs() << ".. integer\n"); ++ int64_t RegNum = Token.getIntVal(); ++ if (RegNum < 0 || RegNum > 31) { ++ // Show the error, but treat invalid register ++ // number as a normal one to continue parsing ++ // and catch other possible errors. ++ Error(getLexer().getLoc(), "invalid register number"); ++ } ++ Operands.push_back(LoongArchOperand::createNumericReg( ++ RegNum, Token.getString(), getContext().getRegisterInfo(), S, ++ Token.getLoc(), *this)); ++ return MatchOperand_Success; ++ } ++ ++ LLVM_DEBUG(dbgs() << Token.getKind() << "\n"); ++ ++ return MatchOperand_NoMatch; ++} ++ ++OperandMatchResultTy ++LoongArchAsmParser::matchAnyRegisterWithoutDollar(OperandVector &Operands, SMLoc S) { ++ auto Token = getLexer().peekTok(false); ++ return matchAnyRegisterWithoutDollar(Operands, Token, S); ++} ++ ++OperandMatchResultTy ++LoongArchAsmParser::parseAnyRegister(OperandVector &Operands) { ++ MCAsmParser &Parser = getParser(); ++ LLVM_DEBUG(dbgs() << "parseAnyRegister\n"); ++ ++ auto Token = Parser.getTok(); ++ ++ SMLoc S = Token.getLoc(); ++ ++ if (Token.isNot(AsmToken::Dollar)) { ++ LLVM_DEBUG(dbgs() << ".. !$ -> try sym aliasing\n"); ++ if (Token.is(AsmToken::Identifier)) { ++ if (searchSymbolAlias(Operands)) ++ return MatchOperand_Success; ++ } ++ LLVM_DEBUG(dbgs() << ".. !symalias -> NoMatch\n"); ++ return MatchOperand_NoMatch; ++ } ++ LLVM_DEBUG(dbgs() << ".. $\n"); ++ ++ OperandMatchResultTy ResTy = matchAnyRegisterWithoutDollar(Operands, S); ++ if (ResTy == MatchOperand_Success) { ++ Parser.Lex(); // $ ++ Parser.Lex(); // identifier ++ } ++ return ResTy; ++} ++ ++OperandMatchResultTy ++LoongArchAsmParser::parseJumpTarget(OperandVector &Operands) { ++ MCAsmParser &Parser = getParser(); ++ LLVM_DEBUG(dbgs() << "parseJumpTarget\n"); ++ ++ SMLoc S = getLexer().getLoc(); ++ ++ // Registers are a valid target and have priority over symbols. ++ OperandMatchResultTy ResTy = parseAnyRegister(Operands); ++ if (ResTy != MatchOperand_NoMatch) ++ return ResTy; ++ ++ // Integers and expressions are acceptable ++ const MCExpr *Expr = nullptr; ++ if (Parser.parseExpression(Expr)) { ++ // We have no way of knowing if a symbol was consumed so we must ParseFail ++ return MatchOperand_ParseFail; ++ } ++ Operands.push_back( ++ LoongArchOperand::CreateImm(Expr, S, getLexer().getLoc(), *this)); ++ return MatchOperand_Success; ++} ++ ++static std::string LoongArchMnemonicSpellCheck(StringRef S, ++ const FeatureBitset &FBS, ++ unsigned VariantID = 0); ++ ++bool LoongArchAsmParser::ParseInstruction(ParseInstructionInfo &Info, ++ StringRef Name, SMLoc NameLoc, ++ OperandVector &Operands) { ++ MCAsmParser &Parser = getParser(); ++ LLVM_DEBUG(dbgs() << "ParseInstruction\n"); ++ ++ // We have reached first instruction, module directive are now forbidden. ++ getTargetStreamer().forbidModuleDirective(); ++ ++ // Check if we have valid mnemonic ++ if (!mnemonicIsValid(Name)) { ++ FeatureBitset FBS = ComputeAvailableFeatures(getSTI().getFeatureBits()); ++ std::string Suggestion = LoongArchMnemonicSpellCheck(Name, FBS); ++ return Error(NameLoc, "unknown instruction" + Suggestion); ++ } ++ ++ // First operand in MCInst is instruction mnemonic. ++ Operands.push_back(LoongArchOperand::CreateToken(Name, NameLoc, *this)); ++ ++ // Read the remaining operands. ++ if (getLexer().isNot(AsmToken::EndOfStatement)) { ++ // Read the first operand. ++ if (parseOperand(Operands, Name)) { ++ SMLoc Loc = getLexer().getLoc(); ++ return Error(Loc, "unexpected token in argument list"); ++ } ++ ++ while (getLexer().is(AsmToken::Comma)) { ++ Parser.Lex(); // Eat the comma. ++ // Parse and remember the operand. ++ if (parseOperand(Operands, Name)) { ++ SMLoc Loc = getLexer().getLoc(); ++ return Error(Loc, "unexpected token in argument list"); ++ } ++ } ++ } ++ if (getLexer().isNot(AsmToken::EndOfStatement)) { ++ SMLoc Loc = getLexer().getLoc(); ++ return Error(Loc, "unexpected token in argument list"); ++ } ++ Parser.Lex(); // Consume the EndOfStatement. ++ return false; ++} ++ ++// FIXME: Given that these have the same name, these should both be ++// consistent on affecting the Parser. ++bool LoongArchAsmParser::reportParseError(Twine ErrorMsg) { ++ SMLoc Loc = getLexer().getLoc(); ++ return Error(Loc, ErrorMsg); ++} ++ ++bool LoongArchAsmParser::parseSetAssignment() { ++ StringRef Name; ++ const MCExpr *Value; ++ MCAsmParser &Parser = getParser(); ++ ++ if (Parser.parseIdentifier(Name)) ++ return reportParseError("expected identifier after .set"); ++ ++ if (getLexer().isNot(AsmToken::Comma)) ++ return reportParseError("unexpected token, expected comma"); ++ Lex(); // Eat comma ++ ++ if (!Parser.parseExpression(Value)) { ++ // Parse assignment of an expression including ++ // symbolic registers: ++ // .set $tmp, $BB0-$BB1 ++ // .set r2, $f2 ++ MCSymbol *Sym = getContext().getOrCreateSymbol(Name); ++ Sym->setVariableValue(Value); ++ } else { ++ return reportParseError("expected valid expression after comma"); ++ } ++ ++ return false; ++} ++ ++bool LoongArchAsmParser::parseDirectiveSet() { ++ const AsmToken &Tok = getParser().getTok(); ++ StringRef IdVal = Tok.getString(); ++ SMLoc Loc = Tok.getLoc(); ++ ++ if (IdVal == "bopt") { ++ Warning(Loc, "'bopt' feature is unsupported"); ++ getParser().Lex(); ++ return false; ++ } ++ if (IdVal == "nobopt") { ++ // We're already running in nobopt mode, so nothing to do. ++ getParser().Lex(); ++ return false; ++ } ++ ++ // It is just an identifier, look for an assignment. ++ return parseSetAssignment(); ++} ++ ++bool LoongArchAsmParser::ParseDirective(AsmToken DirectiveID) { ++ // This returns false if this function recognizes the directive ++ // regardless of whether it is successfully handles or reports an ++ // error. Otherwise it returns true to give the generic parser a ++ // chance at recognizing it. ++ ++ MCAsmParser &Parser = getParser(); ++ StringRef IDVal = DirectiveID.getString(); ++ ++ if (IDVal == ".end") { ++ while (getLexer().isNot(AsmToken::Eof)) ++ Parser.Lex(); ++ return false; ++ } ++ ++ if (IDVal == ".set") { ++ parseDirectiveSet(); ++ return false; ++ } ++ ++ if (IDVal == ".llvm_internal_loongarch_reallow_module_directive") { ++ parseInternalDirectiveReallowModule(); ++ return false; ++ } ++ ++ return true; ++} ++ ++bool LoongArchAsmParser::parseInternalDirectiveReallowModule() { ++ // If this is not the end of the statement, report an error. ++ if (getLexer().isNot(AsmToken::EndOfStatement)) { ++ reportParseError("unexpected token, expected end of statement"); ++ return false; ++ } ++ ++ getTargetStreamer().reallowModuleDirective(); ++ ++ getParser().Lex(); // Eat EndOfStatement token. ++ return false; ++} ++ ++extern "C" LLVM_EXTERNAL_VISIBILITY void LLVMInitializeLoongArchAsmParser() { ++ RegisterMCAsmParser X(getTheLoongArch32Target()); ++ RegisterMCAsmParser A(getTheLoongArch64Target()); ++} ++ ++#define GET_REGISTER_MATCHER ++#define GET_MATCHER_IMPLEMENTATION ++#define GET_MNEMONIC_SPELL_CHECKER ++#include "LoongArchGenAsmMatcher.inc" ++ ++bool LoongArchAsmParser::mnemonicIsValid(StringRef Mnemonic) { ++ // Find the appropriate table for this asm variant. ++ const MatchEntry *Start, *End; ++ Start = std::begin(MatchTable0); ++ End = std::end(MatchTable0); ++ ++ // Search the table. ++ auto MnemonicRange = std::equal_range(Start, End, Mnemonic, LessOpcode()); ++ return MnemonicRange.first != MnemonicRange.second; ++} +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/CMakeLists.txt b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/CMakeLists.txt +new file mode 100644 +index 00000000000..56c4b2039d1 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/CMakeLists.txt +@@ -0,0 +1,37 @@ ++set(LLVM_TARGET_DEFINITIONS LoongArch.td) ++ ++tablegen(LLVM LoongArchGenAsmMatcher.inc -gen-asm-matcher) ++tablegen(LLVM LoongArchGenAsmWriter.inc -gen-asm-writer) ++tablegen(LLVM LoongArchGenCallingConv.inc -gen-callingconv) ++tablegen(LLVM LoongArchGenDAGISel.inc -gen-dag-isel) ++tablegen(LLVM LoongArchGenDisassemblerTables.inc -gen-disassembler) ++tablegen(LLVM LoongArchGenInstrInfo.inc -gen-instr-info) ++tablegen(LLVM LoongArchGenMCCodeEmitter.inc -gen-emitter) ++tablegen(LLVM LoongArchGenMCPseudoLowering.inc -gen-pseudo-lowering) ++tablegen(LLVM LoongArchGenRegisterInfo.inc -gen-register-info) ++tablegen(LLVM LoongArchGenSubtargetInfo.inc -gen-subtarget) ++ ++add_public_tablegen_target(LoongArchCommonTableGen) ++ ++add_llvm_target(LoongArchCodeGen ++ LoongArchAsmPrinter.cpp ++ LoongArchCCState.cpp ++ LoongArchExpandPseudo.cpp ++ LoongArchInstrInfo.cpp ++ LoongArchISelDAGToDAG.cpp ++ LoongArchISelLowering.cpp ++ LoongArchFrameLowering.cpp ++ LoongArchMCInstLower.cpp ++ LoongArchMachineFunction.cpp ++ LoongArchModuleISelDAGToDAG.cpp ++ LoongArchRegisterInfo.cpp ++ LoongArchSubtarget.cpp ++ LoongArchTargetMachine.cpp ++ LoongArchTargetObjectFile.cpp ++ LoongArchTargetTransformInfo.cpp ++ ) ++ ++add_subdirectory(AsmParser) ++add_subdirectory(Disassembler) ++add_subdirectory(MCTargetDesc) ++add_subdirectory(TargetInfo) +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/Disassembler/CMakeLists.txt b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/Disassembler/CMakeLists.txt +new file mode 100644 +index 00000000000..305c0abe07e +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/Disassembler/CMakeLists.txt +@@ -0,0 +1,3 @@ ++add_llvm_component_library(LLVMLoongArchDisassembler ++ LoongArchDisassembler.cpp ++ ) +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/Disassembler/LLVMBuild.txt b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/Disassembler/LLVMBuild.txt +new file mode 100644 +index 00000000000..ebdd9686b42 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/Disassembler/LLVMBuild.txt +@@ -0,0 +1,22 @@ ++;===- ./lib/Target/LoongArch/Disassembler/LLVMBuild.txt -------------*- Conf -*--===; ++; ++; Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++; See https://llvm.org/LICENSE.txt for license information. ++; SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++; ++;===------------------------------------------------------------------------===; ++; ++; This is an LLVMBuild description file for the components in this subdirectory. ++; ++; For more information on the LLVMBuild system, please see: ++; ++; http://llvm.org/docs/LLVMBuild.html ++; ++;===------------------------------------------------------------------------===; ++ ++[component_0] ++type = Library ++name = LoongArchDisassembler ++parent = LoongArch ++required_libraries = MCDisassembler LoongArchInfo Support ++add_to_library_groups = LoongArch +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/Disassembler/LoongArchDisassembler.cpp b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/Disassembler/LoongArchDisassembler.cpp +new file mode 100644 +index 00000000000..f66b4fe6d2b +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/Disassembler/LoongArchDisassembler.cpp +@@ -0,0 +1,940 @@ ++//===- LoongArchDisassembler.cpp - Disassembler for LoongArch -----------------------===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++// ++// This file is part of the LoongArch Disassembler. ++// ++//===----------------------------------------------------------------------===// ++ ++#include "MCTargetDesc/LoongArchMCTargetDesc.h" ++#include "LoongArch.h" ++#include "llvm/ADT/ArrayRef.h" ++#include "llvm/MC/MCContext.h" ++#include "llvm/MC/MCDisassembler/MCDisassembler.h" ++#include "llvm/MC/MCFixedLenDisassembler.h" ++#include "llvm/MC/MCInst.h" ++#include "llvm/MC/MCRegisterInfo.h" ++#include "llvm/MC/MCSubtargetInfo.h" ++#include "llvm/Support/Compiler.h" ++#include "llvm/Support/Debug.h" ++#include "llvm/Support/ErrorHandling.h" ++#include "llvm/Support/MathExtras.h" ++#include "llvm/Support/TargetRegistry.h" ++#include "llvm/Support/raw_ostream.h" ++#include ++#include ++ ++using namespace llvm; ++ ++#define DEBUG_TYPE "loongarch-disassembler" ++ ++using DecodeStatus = MCDisassembler::DecodeStatus; ++ ++namespace { ++ ++class LoongArchDisassembler : public MCDisassembler { ++ ++public: ++ LoongArchDisassembler(const MCSubtargetInfo &STI, MCContext &Ctx) ++ : MCDisassembler(STI, Ctx) {} ++ ++ bool isFP64() const { return STI.getFeatureBits()[LoongArch::FeatureFP64Bit]; } ++ ++ bool is64Bit() const { return STI.getFeatureBits()[LoongArch::Feature64Bit]; } ++ ++ DecodeStatus getInstruction(MCInst &Instr, uint64_t &Size, ++ ArrayRef Bytes, uint64_t Address, ++ raw_ostream &CStream) const override; ++}; ++ ++} // end anonymous namespace ++ ++// Forward declare these because the autogenerated code will reference them. ++// Definitions are further down. ++static DecodeStatus DecodeGPR64RegisterClass(MCInst &Inst, ++ unsigned RegNo, ++ uint64_t Address, ++ const void *Decoder); ++ ++static DecodeStatus DecodeGPR32RegisterClass(MCInst &Inst, ++ unsigned RegNo, ++ uint64_t Address, ++ const void *Decoder); ++ ++static DecodeStatus DecodePtrRegisterClass(MCInst &Inst, ++ unsigned Insn, ++ uint64_t Address, ++ const void *Decoder); ++ ++static DecodeStatus DecodeFGR64RegisterClass(MCInst &Inst, ++ unsigned RegNo, ++ uint64_t Address, ++ const void *Decoder); ++ ++static DecodeStatus DecodeFGR32RegisterClass(MCInst &Inst, ++ unsigned RegNo, ++ uint64_t Address, ++ const void *Decoder); ++ ++static DecodeStatus DecodeFCSRRegisterClass(MCInst &Inst, ++ unsigned RegNo, ++ uint64_t Address, ++ const void *Decoder); ++ ++static DecodeStatus DecodeFCFRRegisterClass(MCInst &Inst, ++ unsigned RegNo, ++ uint64_t Address, ++ const void *Decoder); ++ ++static DecodeStatus DecodeLSX128BRegisterClass(MCInst &Inst, unsigned RegNo, ++ uint64_t Address, ++ const void *Decoder); ++ ++static DecodeStatus DecodeLSX128HRegisterClass(MCInst &Inst, unsigned RegNo, ++ uint64_t Address, ++ const void *Decoder); ++ ++static DecodeStatus DecodeLSX128WRegisterClass(MCInst &Inst, unsigned RegNo, ++ uint64_t Address, ++ const void *Decoder); ++ ++static DecodeStatus DecodeLSX128DRegisterClass(MCInst &Inst, unsigned RegNo, ++ uint64_t Address, ++ const void *Decoder); ++ ++static DecodeStatus DecodeLASX256BRegisterClass(MCInst &Inst, unsigned RegNo, ++ uint64_t Address, ++ const void *Decoder); ++ ++static DecodeStatus DecodeLASX256HRegisterClass(MCInst &Inst, unsigned RegNo, ++ uint64_t Address, ++ const void *Decoder); ++ ++static DecodeStatus DecodeLASX256WRegisterClass(MCInst &Inst, unsigned RegNo, ++ uint64_t Address, ++ const void *Decoder); ++ ++static DecodeStatus DecodeLASX256DRegisterClass(MCInst &Inst, unsigned RegNo, ++ uint64_t Address, ++ const void *Decoder); ++ ++static DecodeStatus DecodeBranchTarget(MCInst &Inst, ++ unsigned Offset, ++ uint64_t Address, ++ const void *Decoder); ++ ++static DecodeStatus DecodeJumpTarget(MCInst &Inst, ++ unsigned Insn, ++ uint64_t Address, ++ const void *Decoder); ++ ++static DecodeStatus DecodeMem(MCInst &Inst, ++ unsigned Insn, ++ uint64_t Address, ++ const void *Decoder); ++ ++static DecodeStatus DecodeAMem(MCInst &Inst, unsigned Insn, uint64_t Address, ++ const void *Decoder); ++ ++static DecodeStatus DecodeMemSimm14(MCInst &Inst, ++ unsigned Insn, ++ uint64_t Address, ++ const void *Decoder); ++ ++static DecodeStatus DecodeLSX128Mem(MCInst &Inst, unsigned Insn, ++ uint64_t Address, const void *Decoder); ++ ++static DecodeStatus DecodeLSX128Mem13(MCInst &Inst, unsigned Insn, ++ uint64_t Address, const void *Decoder); ++ ++static DecodeStatus DecodeLSX128Mem10(MCInst &Inst, unsigned Insn, ++ uint64_t Address, const void *Decoder); ++ ++static DecodeStatus DecodeLASX256Mem13(MCInst &Inst, unsigned Insn, ++ uint64_t Address, const void *Decoder); ++ ++static DecodeStatus DecodeLASX256Mem10(MCInst &Inst, unsigned Insn, ++ uint64_t Address, const void *Decoder); ++ ++static DecodeStatus DecodeLSX128memlsl(MCInst &Inst, unsigned Insn, ++ uint64_t Address, const void *Decoder); ++ ++static DecodeStatus DecodeLSX128memstl(MCInst &Inst, unsigned Insn, ++ uint64_t Address, const void *Decoder); ++ ++static DecodeStatus DecodeLASX256memlsl(MCInst &Inst, unsigned Insn, ++ uint64_t Address, const void *Decoder); ++ ++static DecodeStatus DecodeLASX256memstl(MCInst &Inst, unsigned Insn, ++ uint64_t Address, const void *Decoder); ++ ++static DecodeStatus DecodeLASX256Mem(MCInst &Inst, unsigned Insn, ++ uint64_t Address, const void *Decoder); ++ ++static DecodeStatus DecodeFMem(MCInst &Inst, unsigned Insn, ++ uint64_t Address, ++ const void *Decoder); ++ ++template ++static DecodeStatus DecodeUImmWithOffsetAndScale(MCInst &Inst, unsigned Value, ++ uint64_t Address, ++ const void *Decoder); ++ ++template ++static DecodeStatus DecodeUImmWithOffset(MCInst &Inst, unsigned Value, ++ uint64_t Address, ++ const void *Decoder) { ++ return DecodeUImmWithOffsetAndScale(Inst, Value, Address, ++ Decoder); ++} ++ ++template ++static DecodeStatus DecodeSImmWithOffsetAndScale(MCInst &Inst, unsigned Value, ++ uint64_t Address, ++ const void *Decoder); ++ ++/// INSVE_[BHWD] have an implicit operand that the generated decoder doesn't ++/// handle. ++template ++static DecodeStatus DecodeINSVE_DF(MCInst &MI, InsnType insn, uint64_t Address, ++ const void *Decoder); ++ ++namespace llvm { ++ ++Target &getTheLoongArch32Target(); ++Target &getTheLoongArch64Target(); ++ ++} // end namespace llvm ++ ++static MCDisassembler *createLoongArchDisassembler( ++ const Target &T, ++ const MCSubtargetInfo &STI, ++ MCContext &Ctx) { ++ return new LoongArchDisassembler(STI, Ctx); ++} ++ ++extern "C" LLVM_EXTERNAL_VISIBILITY void LLVMInitializeLoongArchDisassembler() { ++ // Register the disassembler. ++ TargetRegistry::RegisterMCDisassembler(getTheLoongArch32Target(), ++ createLoongArchDisassembler); ++ TargetRegistry::RegisterMCDisassembler(getTheLoongArch64Target(), ++ createLoongArchDisassembler); ++} ++ ++#include "LoongArchGenDisassemblerTables.inc" ++ ++static unsigned getReg(const void *D, unsigned RC, unsigned RegNo) { ++ const LoongArchDisassembler *Dis = static_cast(D); ++ const MCRegisterInfo *RegInfo = Dis->getContext().getRegisterInfo(); ++ if (RC == LoongArch::GPR64RegClassID || RC == LoongArch::GPR32RegClassID) { ++ // sync with the GPR32/GPR64 RegisterClass in LoongArchRegisterInfo.td ++ // that just like LoongArchAsmParser.cpp and LoongArchISelLowering.cpp ++ unsigned char indexes[] = { 0, 27, 28, 29, 1, 2, 3, 4, ++ 5, 6, 7, 8, 9, 10, 11, 12, ++ 13, 14, 15, 16, 17, 30, 31, 18, ++ 19, 20, 21, 22, 23, 24, 25, 26 ++ }; ++ assert(RegNo < sizeof(indexes)); ++ return *(RegInfo->getRegClass(RC).begin() + indexes[RegNo]); ++ } ++ return *(RegInfo->getRegClass(RC).begin() + RegNo); ++} ++ ++template ++static DecodeStatus DecodeINSVE_DF(MCInst &MI, InsnType insn, uint64_t Address, ++ const void *Decoder) { ++ using DecodeFN = DecodeStatus (*)(MCInst &, unsigned, uint64_t, const void *); ++ ++ // The size of the n field depends on the element size ++ // The register class also depends on this. ++ InsnType tmp = fieldFromInstruction(insn, 17, 5); ++ unsigned NSize = 0; ++ DecodeFN RegDecoder = nullptr; ++ if ((tmp & 0x18) == 0x00) { ++ NSize = 4; ++ RegDecoder = DecodeLSX128BRegisterClass; ++ } else if ((tmp & 0x1c) == 0x10) { ++ NSize = 3; ++ RegDecoder = DecodeLSX128HRegisterClass; ++ } else if ((tmp & 0x1e) == 0x18) { ++ NSize = 2; ++ RegDecoder = DecodeLSX128WRegisterClass; ++ } else if ((tmp & 0x1f) == 0x1c) { ++ NSize = 1; ++ RegDecoder = DecodeLSX128DRegisterClass; ++ } else ++ llvm_unreachable("Invalid encoding"); ++ ++ assert(NSize != 0 && RegDecoder != nullptr); ++ ++ // $vd ++ tmp = fieldFromInstruction(insn, 6, 5); ++ if (RegDecoder(MI, tmp, Address, Decoder) == MCDisassembler::Fail) ++ return MCDisassembler::Fail; ++ // $vd_in ++ if (RegDecoder(MI, tmp, Address, Decoder) == MCDisassembler::Fail) ++ return MCDisassembler::Fail; ++ // $n ++ tmp = fieldFromInstruction(insn, 16, NSize); ++ MI.addOperand(MCOperand::createImm(tmp)); ++ // $vs ++ tmp = fieldFromInstruction(insn, 11, 5); ++ if (RegDecoder(MI, tmp, Address, Decoder) == MCDisassembler::Fail) ++ return MCDisassembler::Fail; ++ // $n2 ++ MI.addOperand(MCOperand::createImm(0)); ++ ++ return MCDisassembler::Success; ++} ++ ++/// Read four bytes from the ArrayRef and return 32 bit word. ++static DecodeStatus readInstruction32(ArrayRef Bytes, uint64_t Address, ++ uint64_t &Size, uint32_t &Insn) { ++ // We want to read exactly 4 Bytes of data. ++ if (Bytes.size() < 4) { ++ Size = 0; ++ return MCDisassembler::Fail; ++ } ++ ++ Insn = (Bytes[0] << 0) | (Bytes[1] << 8) | (Bytes[2] << 16) | ++ (Bytes[3] << 24); ++ ++ return MCDisassembler::Success; ++} ++ ++DecodeStatus LoongArchDisassembler::getInstruction(MCInst &Instr, uint64_t &Size, ++ ArrayRef Bytes, ++ uint64_t Address, ++ raw_ostream &CStream) const { ++ uint32_t Insn; ++ DecodeStatus Result; ++ Size = 0; ++ ++ // Attempt to read the instruction so that we can attempt to decode it. If ++ // the buffer is not 4 bytes long, let the higher level logic figure out ++ // what to do with a size of zero and MCDisassembler::Fail. ++ Result = readInstruction32(Bytes, Address, Size, Insn); ++ if (Result == MCDisassembler::Fail) ++ return MCDisassembler::Fail; ++ ++ // The only instruction size for standard encoded LoongArch. ++ Size = 4; ++ ++ if (is64Bit()) { ++ LLVM_DEBUG(dbgs() << "Trying LoongArch (GPR64) table (32-bit opcodes):\n"); ++ Result = decodeInstruction(DecoderTableLoongArch32, Instr, Insn, ++ Address, this, STI); ++ if (Result != MCDisassembler::Fail) ++ return Result; ++ } ++ ++ LLVM_DEBUG(dbgs() << "Trying LoongArch32 (GPR32) table (32-bit opcodes):\n"); ++ Result = decodeInstruction(DecoderTableLoongArch3232, Instr, Insn, ++ Address, this, STI); ++ if (Result != MCDisassembler::Fail) ++ return Result; ++ ++ return MCDisassembler::Fail; ++} ++ ++static DecodeStatus DecodeGPR64RegisterClass(MCInst &Inst, ++ unsigned RegNo, ++ uint64_t Address, ++ const void *Decoder) { ++ if (RegNo > 31) ++ return MCDisassembler::Fail; ++ ++ unsigned Reg = getReg(Decoder, LoongArch::GPR64RegClassID, RegNo); ++ Inst.addOperand(MCOperand::createReg(Reg)); ++ return MCDisassembler::Success; ++} ++ ++static DecodeStatus DecodeGPR32RegisterClass(MCInst &Inst, ++ unsigned RegNo, ++ uint64_t Address, ++ const void *Decoder) { ++ if (RegNo > 31) ++ return MCDisassembler::Fail; ++ unsigned Reg = getReg(Decoder, LoongArch::GPR32RegClassID, RegNo); ++ Inst.addOperand(MCOperand::createReg(Reg)); ++ return MCDisassembler::Success; ++} ++ ++static DecodeStatus DecodePtrRegisterClass(MCInst &Inst, ++ unsigned RegNo, ++ uint64_t Address, ++ const void *Decoder) { ++ if (static_cast(Decoder)->is64Bit()) ++ return DecodeGPR64RegisterClass(Inst, RegNo, Address, Decoder); ++ ++ return DecodeGPR32RegisterClass(Inst, RegNo, Address, Decoder); ++} ++ ++static DecodeStatus DecodeFGR64RegisterClass(MCInst &Inst, ++ unsigned RegNo, ++ uint64_t Address, ++ const void *Decoder) { ++ if (RegNo > 31) ++ return MCDisassembler::Fail; ++ unsigned Reg = getReg(Decoder, LoongArch::FGR64RegClassID, RegNo); ++ Inst.addOperand(MCOperand::createReg(Reg)); ++ return MCDisassembler::Success; ++} ++ ++static DecodeStatus DecodeFGR32RegisterClass(MCInst &Inst, ++ unsigned RegNo, ++ uint64_t Address, ++ const void *Decoder) { ++ if (RegNo > 31) ++ return MCDisassembler::Fail; ++ ++ unsigned Reg = getReg(Decoder, LoongArch::FGR32RegClassID, RegNo); ++ Inst.addOperand(MCOperand::createReg(Reg)); ++ return MCDisassembler::Success; ++} ++ ++static DecodeStatus DecodeFCSRRegisterClass(MCInst &Inst, ++ unsigned RegNo, ++ uint64_t Address, ++ const void *Decoder) { ++ if (RegNo > 31) ++ return MCDisassembler::Fail; ++ ++ unsigned Reg = getReg(Decoder, LoongArch::FCSRRegClassID, RegNo); ++ Inst.addOperand(MCOperand::createReg(Reg)); ++ return MCDisassembler::Success; ++} ++ ++static DecodeStatus DecodeFCFRRegisterClass(MCInst &Inst, ++ unsigned RegNo, ++ uint64_t Address, ++ const void *Decoder) { ++ if (RegNo > 7) ++ return MCDisassembler::Fail; ++ ++ unsigned Reg = getReg(Decoder, LoongArch::FCFRRegClassID, RegNo); ++ Inst.addOperand(MCOperand::createReg(Reg)); ++ ++ return MCDisassembler::Success; ++} ++ ++static DecodeStatus DecodeMem(MCInst &Inst, ++ unsigned Insn, ++ uint64_t Address, ++ const void *Decoder) { ++ int Offset = SignExtend32<12>((Insn >> 10) & 0xfff); ++ unsigned Reg = fieldFromInstruction(Insn, 0, 5); ++ unsigned Base = fieldFromInstruction(Insn, 5, 5); ++ ++ Reg = getReg(Decoder, LoongArch::GPR32RegClassID, Reg); ++ Base = getReg(Decoder, LoongArch::GPR32RegClassID, Base); ++ ++ if (Inst.getOpcode() == LoongArch::SC_W || ++ Inst.getOpcode() == LoongArch::SC_D) ++ Inst.addOperand(MCOperand::createReg(Reg)); ++ ++ Inst.addOperand(MCOperand::createReg(Reg)); ++ Inst.addOperand(MCOperand::createReg(Base)); ++ Inst.addOperand(MCOperand::createImm(Offset)); ++ ++ return MCDisassembler::Success; ++} ++ ++static DecodeStatus DecodeAMem(MCInst &Inst, unsigned Insn, uint64_t Address, ++ const void *Decoder) { ++ unsigned Rd = fieldFromInstruction(Insn, 0, 5); ++ unsigned Rj = fieldFromInstruction(Insn, 5, 5); ++ unsigned Rk = fieldFromInstruction(Insn, 10, 5); ++ ++ Rd = getReg(Decoder, LoongArch::GPR32RegClassID, Rd); ++ Rj = getReg(Decoder, LoongArch::GPR32RegClassID, Rj); ++ Rk = getReg(Decoder, LoongArch::GPR32RegClassID, Rk); ++ ++ // Note the operands sequence is "rd,rk,rj". ++ Inst.addOperand(MCOperand::createReg(Rd)); ++ Inst.addOperand(MCOperand::createReg(Rk)); ++ Inst.addOperand(MCOperand::createReg(Rj)); ++ ++ return MCDisassembler::Success; ++} ++ ++static DecodeStatus DecodeMemSimm14(MCInst &Inst, ++ unsigned Insn, ++ uint64_t Address, ++ const void *Decoder) { ++ int Offset = SignExtend32<12>((Insn >> 10) & 0x3fff); ++ unsigned Reg = fieldFromInstruction(Insn, 0, 5); ++ unsigned Base = fieldFromInstruction(Insn, 5, 5); ++ ++ Reg = getReg(Decoder, LoongArch::GPR32RegClassID, Reg); ++ Base = getReg(Decoder, LoongArch::GPR32RegClassID, Base); ++ ++ if (Inst.getOpcode() == LoongArch::SC_W || ++ Inst.getOpcode() == LoongArch::SC_D) ++ Inst.addOperand(MCOperand::createReg(Reg)); ++ ++ Inst.addOperand(MCOperand::createReg(Reg)); ++ Inst.addOperand(MCOperand::createReg(Base)); ++ Inst.addOperand(MCOperand::createImm(Offset)); ++ ++ return MCDisassembler::Success; ++} ++ ++static DecodeStatus DecodeLSX128Mem(MCInst &Inst, unsigned Insn, ++ uint64_t Address, const void *Decoder) { ++ int Offset = SignExtend32<12>(fieldFromInstruction(Insn, 10, 12)); ++ unsigned Reg = fieldFromInstruction(Insn, 0, 5); ++ unsigned Base = fieldFromInstruction(Insn, 5, 5); ++ Reg = getReg(Decoder, LoongArch::LSX128BRegClassID, Reg); ++ Base = getReg(Decoder, LoongArch::GPR32RegClassID, Base); ++ ++ Inst.addOperand(MCOperand::createReg(Reg)); ++ Inst.addOperand(MCOperand::createReg(Base)); ++ ++ Inst.addOperand(MCOperand::createImm(Offset)); ++ ++ return MCDisassembler::Success; ++} ++ ++static DecodeStatus DecodeLSX128Mem13(MCInst &Inst, unsigned Insn, ++ uint64_t Address, const void *Decoder) { ++ int Offset = SignExtend32<13>(fieldFromInstruction(Insn, 5, 13)); ++ unsigned Reg = fieldFromInstruction(Insn, 0, 5); ++ Reg = getReg(Decoder, LoongArch::LSX128BRegClassID, Reg); ++ ++ Inst.addOperand(MCOperand::createReg(Reg)); ++ ++ Inst.addOperand(MCOperand::createImm(Offset)); ++ ++ return MCDisassembler::Success; ++} ++ ++static DecodeStatus DecodeLSX128Mem10(MCInst &Inst, unsigned Insn, ++ uint64_t Address, const void *Decoder) { ++ int Offset = SignExtend32<10>(fieldFromInstruction(Insn, 5, 10)); ++ unsigned Reg = fieldFromInstruction(Insn, 0, 5); ++ Reg = getReg(Decoder, LoongArch::LSX128BRegClassID, Reg); ++ ++ Inst.addOperand(MCOperand::createReg(Reg)); ++ ++ Inst.addOperand(MCOperand::createImm(Offset)); ++ ++ return MCDisassembler::Success; ++} ++ ++static DecodeStatus DecodeLASX256Mem13(MCInst &Inst, unsigned Insn, ++ uint64_t Address, const void *Decoder) { ++ int Offset = SignExtend32<13>(fieldFromInstruction(Insn, 5, 13)); ++ unsigned Reg = fieldFromInstruction(Insn, 0, 5); ++ Reg = getReg(Decoder, LoongArch::LASX256BRegClassID, Reg); ++ ++ Inst.addOperand(MCOperand::createReg(Reg)); ++ ++ Inst.addOperand(MCOperand::createImm(Offset)); ++ ++ return MCDisassembler::Success; ++} ++ ++static DecodeStatus DecodeLASX256Mem10(MCInst &Inst, unsigned Insn, ++ uint64_t Address, const void *Decoder) { ++ int Offset = SignExtend32<10>(fieldFromInstruction(Insn, 5, 10)); ++ unsigned Reg = fieldFromInstruction(Insn, 0, 5); ++ Reg = getReg(Decoder, LoongArch::LASX256BRegClassID, Reg); ++ ++ Inst.addOperand(MCOperand::createReg(Reg)); ++ ++ Inst.addOperand(MCOperand::createImm(Offset)); ++ ++ return MCDisassembler::Success; ++} ++ ++static DecodeStatus DecodeLSX128memstl(MCInst &Inst, unsigned Insn, ++ uint64_t Address, const void *Decoder) { ++ int Offset = SignExtend32<8>(fieldFromInstruction(Insn, 10, 8)); ++ unsigned Reg = fieldFromInstruction(Insn, 0, 5); ++ unsigned Base = fieldFromInstruction(Insn, 5, 5); ++ Reg = getReg(Decoder, LoongArch::LSX128BRegClassID, Reg); ++ Base = getReg(Decoder, LoongArch::GPR32RegClassID, Base); ++ unsigned idx; ++ ++ Inst.addOperand(MCOperand::createReg(Reg)); ++ Inst.addOperand(MCOperand::createReg(Base)); ++ ++ switch (Inst.getOpcode()) { ++ default: ++ assert(false && "Unexpected instruction"); ++ return MCDisassembler::Fail; ++ break; ++ case LoongArch::VSTELM_B: ++ Inst.addOperand(MCOperand::createImm(Offset)); ++ idx = fieldFromInstruction(Insn, 18, 4); ++ Inst.addOperand(MCOperand::createImm(idx)); ++ break; ++ case LoongArch::VSTELM_H: ++ Inst.addOperand(MCOperand::createImm(Offset * 2)); ++ idx = fieldFromInstruction(Insn, 18, 3); ++ Inst.addOperand(MCOperand::createImm(idx)); ++ break; ++ case LoongArch::VSTELM_W: ++ Inst.addOperand(MCOperand::createImm(Offset * 4)); ++ idx = fieldFromInstruction(Insn, 18, 2); ++ Inst.addOperand(MCOperand::createImm(idx)); ++ break; ++ case LoongArch::VSTELM_D: ++ Inst.addOperand(MCOperand::createImm(Offset * 8)); ++ idx = fieldFromInstruction(Insn, 18, 1); ++ Inst.addOperand(MCOperand::createImm(idx)); ++ break; ++ } ++ ++ return MCDisassembler::Success; ++} ++ ++static DecodeStatus DecodeLSX128memlsl(MCInst &Inst, unsigned Insn, ++ uint64_t Address, const void *Decoder) { ++ ++ int Offset; ++ unsigned Reg, Base; ++ switch (Inst.getOpcode()) { ++ default: ++ assert(false && "Unexpected instruction"); ++ return MCDisassembler::Fail; ++ break; ++ case LoongArch::VLDREPL_B: ++ ++ Offset = SignExtend32<12>(fieldFromInstruction(Insn, 10, 12)); ++ Reg = fieldFromInstruction(Insn, 0, 5); ++ Base = fieldFromInstruction(Insn, 5, 5); ++ Reg = getReg(Decoder, LoongArch::LSX128BRegClassID, Reg); ++ Base = getReg(Decoder, LoongArch::GPR32RegClassID, Base); ++ ++ Inst.addOperand(MCOperand::createReg(Reg)); ++ Inst.addOperand(MCOperand::createReg(Base)); ++ ++ Inst.addOperand(MCOperand::createImm(Offset)); ++ break; ++ case LoongArch::VLDREPL_H: ++ ++ Offset = SignExtend32<11>(fieldFromInstruction(Insn, 10, 11)); ++ Reg = fieldFromInstruction(Insn, 0, 5); ++ Base = fieldFromInstruction(Insn, 5, 5); ++ Reg = getReg(Decoder, LoongArch::LSX128HRegClassID, Reg); ++ Base = getReg(Decoder, LoongArch::GPR32RegClassID, Base); ++ ++ Inst.addOperand(MCOperand::createReg(Reg)); ++ Inst.addOperand(MCOperand::createReg(Base)); ++ Inst.addOperand(MCOperand::createImm(Offset * 2)); ++ break; ++ case LoongArch::VLDREPL_W: ++ ++ Offset = SignExtend32<10>(fieldFromInstruction(Insn, 10, 10)); ++ Reg = fieldFromInstruction(Insn, 0, 5); ++ Base = fieldFromInstruction(Insn, 5, 5); ++ Reg = getReg(Decoder, LoongArch::LSX128WRegClassID, Reg); ++ Base = getReg(Decoder, LoongArch::GPR32RegClassID, Base); ++ ++ Inst.addOperand(MCOperand::createReg(Reg)); ++ Inst.addOperand(MCOperand::createReg(Base)); ++ Inst.addOperand(MCOperand::createImm(Offset * 4)); ++ break; ++ case LoongArch::VLDREPL_D: ++ ++ Offset = SignExtend32<9>(fieldFromInstruction(Insn, 10, 9)); ++ Reg = fieldFromInstruction(Insn, 0, 5); ++ Base = fieldFromInstruction(Insn, 5, 5); ++ Reg = getReg(Decoder, LoongArch::LSX128WRegClassID, Reg); ++ Base = getReg(Decoder, LoongArch::GPR32RegClassID, Base); ++ ++ Inst.addOperand(MCOperand::createReg(Reg)); ++ Inst.addOperand(MCOperand::createReg(Base)); ++ Inst.addOperand(MCOperand::createImm(Offset * 8)); ++ break; ++ } ++ ++ return MCDisassembler::Success; ++} ++static DecodeStatus DecodeLASX256Mem(MCInst &Inst, unsigned Insn, ++ uint64_t Address, const void *Decoder) { ++ int Offset = SignExtend32<12>(fieldFromInstruction(Insn, 10, 12)); ++ unsigned Reg = fieldFromInstruction(Insn, 0, 5); ++ unsigned Base = fieldFromInstruction(Insn, 5, 5); ++ Reg = getReg(Decoder, LoongArch::LASX256BRegClassID, Reg); ++ Base = getReg(Decoder, LoongArch::GPR32RegClassID, Base); ++ ++ Inst.addOperand(MCOperand::createReg(Reg)); ++ Inst.addOperand(MCOperand::createReg(Base)); ++ ++ Inst.addOperand(MCOperand::createImm(Offset)); ++ ++ return MCDisassembler::Success; ++} ++ ++static DecodeStatus DecodeLASX256memstl(MCInst &Inst, unsigned Insn, ++ uint64_t Address, const void *Decoder) { ++ int Offset = SignExtend32<8>(fieldFromInstruction(Insn, 10, 8)); ++ unsigned Reg = fieldFromInstruction(Insn, 0, 5); ++ unsigned Base = fieldFromInstruction(Insn, 5, 5); ++ Reg = getReg(Decoder, LoongArch::LASX256BRegClassID, Reg); ++ Base = getReg(Decoder, LoongArch::GPR32RegClassID, Base); ++ unsigned idx; ++ ++ Inst.addOperand(MCOperand::createReg(Reg)); ++ Inst.addOperand(MCOperand::createReg(Base)); ++ ++ switch (Inst.getOpcode()) { ++ default: ++ assert(false && "Unexpected instruction"); ++ return MCDisassembler::Fail; ++ break; ++ case LoongArch::XVSTELM_B: ++ Inst.addOperand(MCOperand::createImm(Offset)); ++ idx = fieldFromInstruction(Insn, 18, 5); ++ Inst.addOperand(MCOperand::createImm(idx)); ++ break; ++ case LoongArch::XVSTELM_H: ++ Inst.addOperand(MCOperand::createImm(Offset * 2)); ++ idx = fieldFromInstruction(Insn, 18, 4); ++ Inst.addOperand(MCOperand::createImm(idx)); ++ break; ++ case LoongArch::XVSTELM_W: ++ Inst.addOperand(MCOperand::createImm(Offset * 4)); ++ idx = fieldFromInstruction(Insn, 18, 3); ++ Inst.addOperand(MCOperand::createImm(idx)); ++ break; ++ case LoongArch::XVSTELM_D: ++ Inst.addOperand(MCOperand::createImm(Offset * 8)); ++ idx = fieldFromInstruction(Insn, 18, 2); ++ Inst.addOperand(MCOperand::createImm(idx)); ++ break; ++ } ++ ++ return MCDisassembler::Success; ++} ++ ++static DecodeStatus DecodeLASX256memlsl(MCInst &Inst, unsigned Insn, ++ uint64_t Address, const void *Decoder) { ++ ++ int Offset; ++ unsigned Reg, Base; ++ switch (Inst.getOpcode()) { ++ default: ++ assert(false && "Unexpected instruction"); ++ return MCDisassembler::Fail; ++ break; ++ case LoongArch::XVLDREPL_B: ++ ++ Offset = SignExtend32<12>(fieldFromInstruction(Insn, 10, 12)); ++ Reg = fieldFromInstruction(Insn, 0, 5); ++ Base = fieldFromInstruction(Insn, 5, 5); ++ Reg = getReg(Decoder, LoongArch::LASX256BRegClassID, Reg); ++ Base = getReg(Decoder, LoongArch::GPR32RegClassID, Base); ++ ++ Inst.addOperand(MCOperand::createReg(Reg)); ++ Inst.addOperand(MCOperand::createReg(Base)); ++ ++ Inst.addOperand(MCOperand::createImm(Offset)); ++ break; ++ case LoongArch::XVLDREPL_H: ++ ++ Offset = SignExtend32<11>(fieldFromInstruction(Insn, 10, 11)); ++ Reg = fieldFromInstruction(Insn, 0, 5); ++ Base = fieldFromInstruction(Insn, 5, 5); ++ Reg = getReg(Decoder, LoongArch::LASX256HRegClassID, Reg); ++ Base = getReg(Decoder, LoongArch::GPR32RegClassID, Base); ++ ++ Inst.addOperand(MCOperand::createReg(Reg)); ++ Inst.addOperand(MCOperand::createReg(Base)); ++ Inst.addOperand(MCOperand::createImm(Offset * 2)); ++ break; ++ case LoongArch::XVLDREPL_W: ++ ++ Offset = SignExtend32<10>(fieldFromInstruction(Insn, 10, 10)); ++ Reg = fieldFromInstruction(Insn, 0, 5); ++ Base = fieldFromInstruction(Insn, 5, 5); ++ Reg = getReg(Decoder, LoongArch::LASX256WRegClassID, Reg); ++ Base = getReg(Decoder, LoongArch::GPR32RegClassID, Base); ++ ++ Inst.addOperand(MCOperand::createReg(Reg)); ++ Inst.addOperand(MCOperand::createReg(Base)); ++ Inst.addOperand(MCOperand::createImm(Offset * 4)); ++ break; ++ case LoongArch::XVLDREPL_D: ++ ++ Offset = SignExtend32<9>(fieldFromInstruction(Insn, 10, 9)); ++ Reg = fieldFromInstruction(Insn, 0, 5); ++ Base = fieldFromInstruction(Insn, 5, 5); ++ Reg = getReg(Decoder, LoongArch::LASX256WRegClassID, Reg); ++ Base = getReg(Decoder, LoongArch::GPR32RegClassID, Base); ++ ++ Inst.addOperand(MCOperand::createReg(Reg)); ++ Inst.addOperand(MCOperand::createReg(Base)); ++ Inst.addOperand(MCOperand::createImm(Offset * 8)); ++ break; ++ } ++ ++ return MCDisassembler::Success; ++} ++ ++static DecodeStatus DecodeFMem(MCInst &Inst, ++ unsigned Insn, ++ uint64_t Address, ++ const void *Decoder) { ++ int Offset = SignExtend32<12>((Insn >> 10) & 0xffff); ++ unsigned Reg = fieldFromInstruction(Insn, 0, 5); ++ unsigned Base = fieldFromInstruction(Insn, 5, 5); ++ Reg = getReg(Decoder, LoongArch::FGR64RegClassID, Reg); ++ Base = getReg(Decoder, LoongArch::GPR32RegClassID, Base); ++ ++ Inst.addOperand(MCOperand::createReg(Reg)); ++ Inst.addOperand(MCOperand::createReg(Base)); ++ Inst.addOperand(MCOperand::createImm(Offset)); ++ ++ return MCDisassembler::Success; ++} ++ ++static DecodeStatus DecodeLSX128BRegisterClass(MCInst &Inst, unsigned RegNo, ++ uint64_t Address, ++ const void *Decoder) { ++ if (RegNo > 31) ++ return MCDisassembler::Fail; ++ unsigned Reg = getReg(Decoder, LoongArch::LSX128BRegClassID, RegNo); ++ Inst.addOperand(MCOperand::createReg(Reg)); ++ return MCDisassembler::Success; ++} ++ ++static DecodeStatus DecodeLSX128HRegisterClass(MCInst &Inst, unsigned RegNo, ++ uint64_t Address, ++ const void *Decoder) { ++ if (RegNo > 31) ++ return MCDisassembler::Fail; ++ unsigned Reg = getReg(Decoder, LoongArch::LSX128HRegClassID, RegNo); ++ Inst.addOperand(MCOperand::createReg(Reg)); ++ return MCDisassembler::Success; ++} ++ ++static DecodeStatus DecodeLSX128WRegisterClass(MCInst &Inst, unsigned RegNo, ++ uint64_t Address, ++ const void *Decoder) { ++ if (RegNo > 31) ++ return MCDisassembler::Fail; ++ unsigned Reg = getReg(Decoder, LoongArch::LSX128WRegClassID, RegNo); ++ Inst.addOperand(MCOperand::createReg(Reg)); ++ return MCDisassembler::Success; ++} ++ ++static DecodeStatus DecodeLSX128DRegisterClass(MCInst &Inst, unsigned RegNo, ++ uint64_t Address, ++ const void *Decoder) { ++ if (RegNo > 31) ++ return MCDisassembler::Fail; ++ unsigned Reg = getReg(Decoder, LoongArch::LSX128DRegClassID, RegNo); ++ Inst.addOperand(MCOperand::createReg(Reg)); ++ return MCDisassembler::Success; ++} ++ ++static DecodeStatus DecodeLASX256BRegisterClass(MCInst &Inst, unsigned RegNo, ++ uint64_t Address, ++ const void *Decoder) { ++ if (RegNo > 31) ++ return MCDisassembler::Fail; ++ unsigned Reg = getReg(Decoder, LoongArch::LASX256BRegClassID, RegNo); ++ Inst.addOperand(MCOperand::createReg(Reg)); ++ return MCDisassembler::Success; ++} ++ ++static DecodeStatus DecodeLASX256HRegisterClass(MCInst &Inst, unsigned RegNo, ++ uint64_t Address, ++ const void *Decoder) { ++ if (RegNo > 31) ++ return MCDisassembler::Fail; ++ unsigned Reg = getReg(Decoder, LoongArch::LASX256HRegClassID, RegNo); ++ Inst.addOperand(MCOperand::createReg(Reg)); ++ return MCDisassembler::Success; ++} ++ ++static DecodeStatus DecodeLASX256WRegisterClass(MCInst &Inst, unsigned RegNo, ++ uint64_t Address, ++ const void *Decoder) { ++ if (RegNo > 31) ++ return MCDisassembler::Fail; ++ unsigned Reg = getReg(Decoder, LoongArch::LASX256WRegClassID, RegNo); ++ Inst.addOperand(MCOperand::createReg(Reg)); ++ return MCDisassembler::Success; ++} ++ ++static DecodeStatus DecodeLASX256DRegisterClass(MCInst &Inst, unsigned RegNo, ++ uint64_t Address, ++ const void *Decoder) { ++ if (RegNo > 31) ++ return MCDisassembler::Fail; ++ unsigned Reg = getReg(Decoder, LoongArch::LASX256DRegClassID, RegNo); ++ Inst.addOperand(MCOperand::createReg(Reg)); ++ return MCDisassembler::Success; ++} ++ ++static DecodeStatus DecodeBranchTarget(MCInst &Inst, ++ unsigned Offset, ++ uint64_t Address, ++ const void *Decoder) { ++ int32_t BranchOffset; ++ // Similar to LoongArchAsmParser::processInstruction, decode the branch target ++ // for different instructions. ++ switch (Inst.getOpcode()) { ++ default: ++ llvm_unreachable(""); ++ case LoongArch::BEQ: ++ case LoongArch::BNE: ++ case LoongArch::BLT: ++ case LoongArch::BGE: ++ case LoongArch::BLTU: ++ case LoongArch::BGEU: ++ BranchOffset = (SignExtend32<16>(Offset) * 4); ++ break; ++ case LoongArch::BEQZ: ++ case LoongArch::BNEZ: ++ case LoongArch::BCEQZ: ++ case LoongArch::BCNEZ: ++ BranchOffset = (SignExtend32<21>(Offset) * 4); ++ break; ++ case LoongArch::B: ++ case LoongArch::BL: ++ BranchOffset = (SignExtend32<26>(Offset) * 4); ++ break; ++ } ++ Inst.addOperand(MCOperand::createImm(BranchOffset)); ++ return MCDisassembler::Success; ++} ++ ++static DecodeStatus DecodeJumpTarget(MCInst &Inst, ++ unsigned Insn, ++ uint64_t Address, ++ const void *Decoder) { ++ unsigned hi10 = fieldFromInstruction(Insn, 0, 10); ++ unsigned lo16 = fieldFromInstruction(Insn, 10, 16); ++ int32_t JumpOffset = SignExtend32<28>((hi10 << 16 | lo16) << 2); ++ Inst.addOperand(MCOperand::createImm(JumpOffset)); ++ return MCDisassembler::Success; ++} ++ ++template ++static DecodeStatus DecodeUImmWithOffsetAndScale(MCInst &Inst, unsigned Value, ++ uint64_t Address, ++ const void *Decoder) { ++ Value &= ((1 << Bits) - 1); ++ Value *= Scale; ++ Inst.addOperand(MCOperand::createImm(Value + Offset)); ++ return MCDisassembler::Success; ++} ++ ++template ++static DecodeStatus DecodeSImmWithOffsetAndScale(MCInst &Inst, unsigned Value, ++ uint64_t Address, ++ const void *Decoder) { ++ int32_t Imm = SignExtend32(Value) * ScaleBy; ++ Inst.addOperand(MCOperand::createImm(Imm + Offset)); ++ return MCDisassembler::Success; ++} +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LLVMBuild.txt b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LLVMBuild.txt +new file mode 100644 +index 00000000000..6157234f45e +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LLVMBuild.txt +@@ -0,0 +1,43 @@ ++;===- ./lib/Target/LoongArch/LLVMBuild.txt --------------------------*- Conf -*--===; ++; ++; Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++; See https://llvm.org/LICENSE.txt for license information. ++; SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++; ++;===------------------------------------------------------------------------===; ++; ++; This is an LLVMBuild description file for the components in this subdirectory. ++; ++; For more information on the LLVMBuild system, please see: ++; ++; http://llvm.org/docs/LLVMBuild.html ++; ++;===------------------------------------------------------------------------===; ++ ++[common] ++subdirectories = AsmParser Disassembler MCTargetDesc TargetInfo ++ ++[component_0] ++type = TargetGroup ++name = LoongArch ++parent = Target ++has_asmparser = 1 ++has_asmprinter = 1 ++has_disassembler = 1 ++ ++[component_1] ++type = Library ++name = LoongArchCodeGen ++parent = LoongArch ++required_libraries = ++ Analysis ++ AsmPrinter ++ CodeGen ++ Core ++ MC ++ LoongArchDesc ++ LoongArchInfo ++ SelectionDAG ++ Support ++ Target ++add_to_library_groups = LoongArch +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArch.h b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArch.h +new file mode 100644 +index 00000000000..73fd4a628ed +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArch.h +@@ -0,0 +1,37 @@ ++//===-- LoongArch.h - Top-level interface for LoongArch representation ----*- C++ -*-===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++// ++// This file contains the entry points for global functions defined in ++// the LLVM LoongArch back-end. ++// ++//===----------------------------------------------------------------------===// ++ ++#ifndef LLVM_LIB_TARGET_LOONGARCH_LOONGARCH_H ++#define LLVM_LIB_TARGET_LOONGARCH_LOONGARCH_H ++ ++#include "MCTargetDesc/LoongArchMCTargetDesc.h" ++#include "llvm/Target/TargetMachine.h" ++ ++namespace llvm { ++ class LoongArchTargetMachine; ++ class ModulePass; ++ class FunctionPass; ++ class LoongArchSubtarget; ++ class LoongArchTargetMachine; ++ class InstructionSelector; ++ class PassRegistry; ++ ++ FunctionPass *createLoongArchModuleISelDagPass(); ++ FunctionPass *createLoongArchOptimizePICCallPass(); ++ FunctionPass *createLoongArchBranchExpansion(); ++ FunctionPass *createLoongArchExpandPseudoPass(); ++ ++ void initializeLoongArchBranchExpansionPass(PassRegistry &); ++} // end namespace llvm; ++ ++#endif +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArch.td b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArch.td +new file mode 100644 +index 00000000000..167985f4493 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArch.td +@@ -0,0 +1,103 @@ ++//===-- LoongArch.td - Describe the LoongArch Target Machine ---------*- tablegen -*-===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++// This is the top level entry point for the LoongArch target. ++//===----------------------------------------------------------------------===// ++ ++//===----------------------------------------------------------------------===// ++// Target-independent interfaces ++//===----------------------------------------------------------------------===// ++ ++include "llvm/Target/Target.td" ++ ++// The overall idea of the PredicateControl class is to chop the Predicates list ++// into subsets that are usually overridden independently. This allows ++// subclasses to partially override the predicates of their superclasses without ++// having to re-add all the existing predicates. ++class PredicateControl { ++ // Predicates for the encoding scheme in use such as HasStdEnc ++ list EncodingPredicates = []; ++ // Predicates for the GPR size such as is64Bit ++ list GPRPredicates = []; ++ // Predicates for the FGR size and layout such as IsFP64bit ++ list FGRPredicates = []; ++ // Predicates for the instruction group membership such as ISA's. ++ list InsnPredicates = []; ++ // Predicate for the ISA extension that an instruction belongs to. ++ list ExtPredicate = []; ++ // Predicate for marking the instruction as usable in hard-float mode only. ++ list HardFloatPredicate = []; ++ // Predicates for anything else ++ list AdditionalPredicates = []; ++ list Predicates = !listconcat(EncodingPredicates, ++ GPRPredicates, ++ FGRPredicates, ++ InsnPredicates, ++ HardFloatPredicate, ++ ExtPredicate, ++ AdditionalPredicates); ++} ++ ++// Like Requires<> but for the AdditionalPredicates list ++class AdditionalRequires preds> { ++ list AdditionalPredicates = preds; ++} ++ ++//===----------------------------------------------------------------------===// ++// LoongArch Subtarget features // ++//===----------------------------------------------------------------------===// ++ ++def FeatureFP64Bit : SubtargetFeature<"fp64", "IsFP64bit", "true", ++ "Support 64-bit FP registers">; ++def FeatureSingleFloat : SubtargetFeature<"single-float", "IsSingleFloat", ++ "true", "Only supports single precision float">; ++def FeatureSoftFloat : SubtargetFeature<"soft-float", "IsSoftFloat", "true", ++ "Does not support floating point instructions">; ++def Feature64Bit : SubtargetFeature<"64bit", "HasLA64", "true", ++ "Support LA64 ISA", ++ [FeatureFP64Bit]>; ++def FeatureLSX : SubtargetFeature<"lsx", "HasLSX", "true", "Support LSX">; ++ ++def FeatureLASX : SubtargetFeature<"lasx", "HasLASX", "true", "Support LASX", [FeatureLSX]>; ++ ++def FeatureUnalignedAccess ++ : SubtargetFeature<"unaligned-access", "UnalignedAccess", "true", ++ "Allow all unaligned memory access">; ++//===----------------------------------------------------------------------===// ++// Register File, Calling Conv, Instruction Descriptions ++//===----------------------------------------------------------------------===// ++ ++include "LoongArchRegisterInfo.td" ++include "LoongArchInstrInfo.td" ++include "LoongArchCallingConv.td" ++ ++def LoongArchInstrInfo : InstrInfo; ++ ++//===----------------------------------------------------------------------===// ++// LoongArch processors supported. ++//===----------------------------------------------------------------------===// ++ ++def : ProcessorModel<"la464", NoSchedModel, ++ [Feature64Bit, FeatureUnalignedAccess]>; ++ ++def LoongArchAsmParser : AsmParser { ++ let ShouldEmitMatchRegisterName = 0; ++} ++ ++def LoongArchAsmParserVariant : AsmParserVariant { ++ int Variant = 0; ++ ++ // Recognize hard coded registers. ++ string RegisterPrefix = "$"; ++} ++ ++def LoongArch : Target { ++ let InstructionSet = LoongArchInstrInfo; ++ let AssemblyParsers = [LoongArchAsmParser]; ++ let AssemblyParserVariants = [LoongArchAsmParserVariant]; ++ let AllowRegisterRenaming = 1; ++} +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArch32InstrInfo.td b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArch32InstrInfo.td +new file mode 100644 +index 00000000000..dbbeafbe7ba +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArch32InstrInfo.td +@@ -0,0 +1,716 @@ ++//===- LoongArch32InstrInfo.td - Target Description for LoongArch Target -*- tablegen -*-=// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++// ++// This file describes LoongArch32 instructions. ++// ++//===----------------------------------------------------------------------===// ++ ++//===---------------------------------------------------------------------===/ ++// Instruction Definitions. ++//===---------------------------------------------------------------------===/ ++ ++let DecoderNamespace = "LoongArch32" in { ++ /// ++ /// R2 ++ /// ++ def CLO_W : Count1<"clo.w", GPR32Opnd, ctlz>, R2I<0b00100>; ++ def CLZ_W : Int_Reg2<"clz.w", GPR32Opnd, ctlz>, R2I<0b00101>; ++ def CTO_W : Count1<"cto.w", GPR32Opnd, cttz>, R2I<0b00110>; ++ def CTZ_W : Int_Reg2<"ctz.w", GPR32Opnd, cttz>, R2I<0b00111>; ++ ++ def REVB_2H : Int_Reg2<"revb.2h", GPR32Opnd>, R2I<0b01100>;//see below bswap pattern ++ ++ def BITREV_4B : Int_Reg2<"bitrev.4b", GPR32Opnd>, R2I<0b10010>; ++ def BITREV_W : Int_Reg2<"bitrev.w", GPR32Opnd, bitreverse>, R2I<0b10100>; ++ ++ let isCodeGenOnly = 1 in { ++ def EXT_W_H32 : SignExtInReg<"ext.w.h", GPR32Opnd, i16>, R2I<0b10110>; ++ def EXT_W_B32 : SignExtInReg<"ext.w.b", GPR32Opnd, i8>, R2I<0b10111>; ++ ++ } ++ ++ def CPUCFG : Int_Reg2<"cpucfg", GPR32Opnd, int_loongarch_cpucfg>, R2I<0b11011>; ++ def RDTIMEL_W32 : Int_Reg2_Rdtime<"rdtimel.w", GPR32Opnd>, R2I<0b11000>; ++ def RDTIMEH_W32 : Int_Reg2_Rdtime<"rdtimeh.w", GPR32Opnd>, R2I<0b11001>; ++ ++ /// ++ /// R3 ++ /// ++ def ADD_W : Int_Reg3<"add.w", GPR32Opnd, add>, R3I<0b0100000>; ++ def SUB_W : Int_Reg3<"sub.w", GPR32Opnd, sub>, R3I<0b0100010>; ++ ++ let isCodeGenOnly = 1 in { ++ def SLT32 : SetCC_R<"slt", GPR32Opnd, setlt>, R3I<0b0100100>; ++ def SLTU32 : SetCC_R<"sltu", GPR32Opnd, setult>, R3I<0b0100101>; ++ def MASKEQZ32 : Int_Reg3<"maskeqz", GPR32Opnd>, R3I<0b0100110>;//see below patterns ++ def MASKNEZ32 : Int_Reg3<"masknez", GPR32Opnd>, R3I<0b0100111>;//see below patterns ++ ++ def NOR32 : Nor<"nor", GPR32Opnd>, R3I<0b0101000>; ++ def AND32 : Int_Reg3<"and", GPR32Opnd, and>, R3I<0b0101001>; ++ def OR32 : Int_Reg3<"or", GPR32Opnd, or>, R3I<0b0101010>; ++ def XOR32 : Int_Reg3<"xor", GPR32Opnd, xor>, R3I<0b0101011>; ++ def ANDN32 : Int_Reg3<"andn", GPR32Opnd>, R3I<0b0101101>; ++ def ORN32 : Int_Reg3<"orn", GPR32Opnd>, R3I<0b0101100>; ++ } ++ ++ def SLL_W : Shift_Var<"sll.w", GPR32Opnd, shl>, R3I<0b0101110>; ++ def SRL_W : Shift_Var<"srl.w", GPR32Opnd, srl>, R3I<0b0101111>; ++ def SRA_W : Shift_Var<"sra.w", GPR32Opnd, sra>, R3I<0b0110000>; ++ def ROTR_W: Shift_Var<"rotr.w", GPR32Opnd, rotr>, R3I<0b0110110>; ++ ++ def MUL_W : Int_Reg3<"mul.w", GPR32Opnd, mul>, R3I<0b0111000>; ++ def MULH_W : Int_Reg3<"mulh.w", GPR32Opnd, mulhs>, R3I<0b0111001>; ++ def MULH_WU : Int_Reg3<"mulh.wu", GPR32Opnd, mulhu>, R3I<0b0111010>; ++ ++let usesCustomInserter = 1 in { ++ def DIV_W : Int_Reg3<"div.w", GPR32Opnd, sdiv>, R3I<0b1000000>; ++ def MOD_W : Int_Reg3<"mod.w", GPR32Opnd, srem>, R3I<0b1000001>; ++ def DIV_WU : Int_Reg3<"div.wu", GPR32Opnd, udiv>, R3I<0b1000010>; ++ def MOD_WU : Int_Reg3<"mod.wu", GPR32Opnd, urem>, R3I<0b1000011>; ++} ++ ++ def CRC_W_B_W : Int_Reg3<"crc.w.b.w", GPR32Opnd, int_loongarch_crc_w_b_w>, R3I<0b1001000>; ++ def CRC_W_H_W : Int_Reg3<"crc.w.h.w", GPR32Opnd, int_loongarch_crc_w_h_w>, R3I<0b1001001>; ++ def CRC_W_W_W : Int_Reg3<"crc.w.w.w", GPR32Opnd, int_loongarch_crc_w_w_w>, R3I<0b1001010>; ++ def CRCC_W_B_W : Int_Reg3<"crcc.w.b.w", GPR32Opnd, int_loongarch_crcc_w_b_w>, R3I<0b1001100>; ++ def CRCC_W_H_W : Int_Reg3<"crcc.w.h.w", GPR32Opnd, int_loongarch_crcc_w_h_w>, R3I<0b1001101>; ++ def CRCC_W_W_W : Int_Reg3<"crcc.w.w.w", GPR32Opnd, int_loongarch_crcc_w_w_w>, R3I<0b1001110>; ++ /// ++ /// SLLI ++ /// ++ def SLLI_W : Shift_Imm32<"slli.w", GPR32Opnd, shl>, R2_IMM5<0b00>; ++ def SRLI_W : Shift_Imm32<"srli.w", GPR32Opnd, srl>, R2_IMM5<0b01>; ++ def SRAI_W : Shift_Imm32<"srai.w", GPR32Opnd, sra>, R2_IMM5<0b10>; ++ def ROTRI_W : Shift_Imm32<"rotri.w", GPR32Opnd, rotr>, R2_IMM5<0b11>; ++ /// ++ /// Misc ++ /// ++ def ALSL_W : Reg3_Sa<"alsl.w", GPR32Opnd, uimm2_plus1>, R3_SA2<0b00010> { ++ let Pattern = [(set GPR32Opnd:$rd, ++ (add GPR32Opnd:$rk, (shl GPR32Opnd:$rj, immZExt2Alsl:$sa)))]; ++ } ++ def BYTEPICK_W : Reg3_Sa<"bytepick.w", GPR32Opnd, uimm2>, R3_SA2<0b00100>;//pattern:[] ++ ++ def BREAK : Code15<"break", int_loongarch_break>, CODE15<0b1010100>; ++ def SYSCALL : Code15<"syscall", int_loongarch_syscall>, CODE15<0b1010110>; ++ def TRAP : TrapBase; ++ ++ def BSTRINS_W : InsBase_32<"bstrins.w", GPR32Opnd, uimm5, LoongArchBstrins>, ++ INSERT_BIT32<0>; ++ def BSTRPICK_W : PickBase_32<"bstrpick.w", GPR32Opnd, uimm5, LoongArchBstrpick>, ++ INSERT_BIT32<1>; ++ ++ /// ++ /// R2_IMM12 ++ /// ++ let isCodeGenOnly = 1 in { ++ def SLTI32 : SetCC_I<"slti", GPR32Opnd, simm12_32>, R2_IMM12<0b000>; //PatFrag ++ def SLTUI32 : SetCC_I<"sltui", GPR32Opnd, simm12_32>, R2_IMM12<0b001>; //PatFrag ++ } ++ def ADDI_W : Int_Reg2_Imm12<"addi.w", GPR32Opnd, simm12_32, add>, R2_IMM12<0b010>; ++ ++ let isCodeGenOnly = 1 in { ++ def ANDI32 : Int_Reg2_Imm12<"andi", GPR32Opnd, uimm12_32, and>, R2_IMM12<0b101>; ++ def ORI32 : Int_Reg2_Imm12<"ori", GPR32Opnd, uimm12_32, or>, R2_IMM12<0b110>; ++ def XORI32 : Int_Reg2_Imm12<"xori", GPR32Opnd, uimm12_32, xor>, R2_IMM12<0b111>; ++ } ++ ++ /// ++ /// Privilege Instructions ++ /// ++ def CSRRD32 : CSR<"csrrd", GPR32Opnd, uimm14_32, int_loongarch_csrrd>, R1_CSR<0b0000000000100>; ++ def CSRWR32 : CSRW<"csrwr", GPR32Opnd, uimm14_32, int_loongarch_csrwr>, R1_CSR<0b0000100000100>; ++ def CSRXCHG32 : CSRX<"csrxchg", GPR32Opnd, uimm14_32, int_loongarch_csrxchg>, R2_CSR<0b00000100>; ++ def IOCSRRD_B32 : Int_Reg2<"iocsrrd.b", GPR32Opnd, int_loongarch_iocsrrd_b>, R2P<0b000>; ++ def IOCSRRD_H32 : Int_Reg2<"iocsrrd.h", GPR32Opnd, int_loongarch_iocsrrd_h>, R2P<0b001>; ++ def IOCSRRD_W32 : Int_Reg2<"iocsrrd.w", GPR32Opnd, int_loongarch_iocsrrd_w>, R2P<0b010>; ++ def IOCSRWR_B32 : Int_Reg2_Iocsrwr<"iocsrwr.b", GPR32Opnd, GPR32Opnd, int_loongarch_iocsrwr_b>, R2P<0b100>; ++ def IOCSRWR_H32 : Int_Reg2_Iocsrwr<"iocsrwr.h", GPR32Opnd, GPR32Opnd, int_loongarch_iocsrwr_h>, R2P<0b101>; ++ def IOCSRWR_W32 : Int_Reg2_Iocsrwr<"iocsrwr.w", GPR32Opnd, GPR32Opnd, int_loongarch_iocsrwr_w>, R2P<0b110>; ++ def CACOP32 : CAC<"cacop", GPR32Opnd, simm12_32, int_loongarch_cacop>, R1_CACHE; ++ def LDDIR32 : LEVEL<"lddir", GPR32Opnd>, R2_LEVEL<0b00000110010000>; ++ def LDPTE32 : SEQ<"ldpte", GPR32Opnd>, R1_SEQ<0b00000110010001>; ++ ++ //def WAIT : Wait<"wait">; ++ // ++ //def IOCSRRD_D : R2P<0b011>, Int_Reg2<"iocsrrd.d", GPR32Opnd>; ++ //def IOCSRWR_D : R2P<0b111>, Int_Reg2<"iocsrwr.d", GPR32Opnd>; ++ // ++ //def TLBINV : IMM32<0b001000>, OP32<"tlbinv">; ++ //def TLBFLUSH : IMM32<0b001001>, OP32<"tlbflush">; ++ //def TLBP : IMM32<0b001010>, OP32<"tlbp">; ++ //def TLBR : IMM32<0b001011>, OP32<"tlbr">; ++ //def TLBWI : IMM32<0b001100>, OP32<"tlbwi">; ++ //def TLBWR : IMM32<0b001101>, OP32<"tlbwr">; ++ ++ /// ++ /// R1_IMM20 ++ /// ++ let isCodeGenOnly = 1 in { ++ def LU12I_W32 : SI20<"lu12i.w", GPR32Opnd, simm20_32>, R1_SI20<0b0001010>; ++ def PCADDI32 : SI20<"pcaddi", GPR32Opnd, simm20_32>, R1_SI20<0b0001100>; ++ def PCALAU12I32 : SI20<"pcalau12i", GPR32Opnd, simm20_32>, R1_SI20<0b0001101>; ++ def PCADDU12I32 : SI20<"pcaddu12i", GPR32Opnd, simm20_32>, R1_SI20<0b0001110>; ++ } ++ ++ let isCodeGenOnly = 1 in { ++ def BEQZ32 : Beqz<"beqz", brtarget, seteq, GPR32Opnd>, R1_IMM21BEQZ<0b010000>; ++ def BNEZ32 : Beqz<"bnez", brtarget, setne, GPR32Opnd>, R1_IMM21BEQZ<0b010001>; ++ ++ def JIRL32 : FJirl<"jirl", calltarget, GPR32Opnd>, R2_IMM16JIRL; ++ ++ def B32 : JumpFB, IMM26B<0b010100>; ++ ++ def BEQ32 : Beq<"beq", brtarget, seteq, GPR32Opnd>, R2_IMM16BEQ<0b010110>; ++ def BNE32 : Beq<"bne", brtarget, setne, GPR32Opnd>, R2_IMM16BEQ<0b010111>; ++ def BLT32 : Beq<"blt", brtarget, setlt, GPR32Opnd>, R2_IMM16BEQ<0b011000>; ++ def BGE32 : Beq<"bge", brtarget, setge, GPR32Opnd>, R2_IMM16BEQ<0b011001>; ++ def BLTU32 : Beq<"bltu", brtarget, setult, GPR32Opnd>, R2_IMM16BEQ<0b011010>; ++ def BGEU32 : Beq<"bgeu", brtarget, setuge, GPR32Opnd>, R2_IMM16BEQ<0b011011>; ++ } ++ ++ /// ++ /// Mem access ++ /// ++ def LL_W : LLBase<"ll.w", GPR32Opnd, mem_simm14_lsl2>, LL_SC<0b000>; ++ def SC_W : SCBase<"sc.w", GPR32Opnd, mem_simm14_lsl2>, LL_SC<0b001>; ++ ++ def PRELD_Raw32 : Preld_Raw<"preld", GPR32Opnd>, PRELD_FM; ++ ++ let isCodeGenOnly = 1 in { ++ def LD_B32 : Ld<"ld.b", GPR32Opnd, mem_simmptr, sextloadi8>, LOAD_STORE<0b0000>; ++ def LD_H32 : Ld<"ld.h", GPR32Opnd, mem_simmptr, sextloadi16, addrDefault>, LOAD_STORE<0b0001>; ++ def LD_W32 : Ld<"ld.w", GPR32Opnd, mem, load, addrDefault>, LOAD_STORE<0b0010>; ++ def ST_B32 : St<"st.b", GPR32Opnd, mem, truncstorei8>, LOAD_STORE<0b0100>; ++ def ST_H32 : St<"st.h", GPR32Opnd, mem, truncstorei16>, LOAD_STORE<0b0101>; ++ def ST_W32 : St<"st.w", GPR32Opnd, mem, store>, LOAD_STORE<0b0110>; ++ def LD_BU32 : Ld<"ld.bu", GPR32Opnd, mem_simmptr, zextloadi8, addrDefault>, LOAD_STORE<0b1000>; ++ def LD_HU32 : Ld<"ld.hu", GPR32Opnd, mem_simmptr, zextloadi16>, LOAD_STORE<0b1001>; ++ ++ def PRELD32 : Preld<"preld", mem, GPR32Opnd>, PRELD_FM; ++ ++ def LDPTR_W32 : LdPtr<"ldptr.w", GPR32Opnd>, LL_SC<0b100>; ++ def STPTR_W32 : StPtr<"stptr.w", GPR32Opnd>, LL_SC<0b101>; ++ } ++ ++ def IBAR : Bar<"ibar", int_loongarch_ibar>, BAR_FM<1>; ++ def DBAR : Bar<"dbar", int_loongarch_dbar>, BAR_FM<0>; ++ ++ def LONG_BRANCH_ADDIW : LoongArchPseudo<(outs GPR32Opnd:$dst), ++ (ins GPR32Opnd:$src, brtarget:$tgt, brtarget:$baltgt), []>; ++ ++ def LONG_BRANCH_ADDIW2Op : LoongArchPseudo<(outs GPR32Opnd:$dst), ++ (ins GPR32Opnd:$src, brtarget:$tgt), []>; ++ ++ def PseudoReturn : PseudoReturnBase; ++ ++ let isCodeGenOnly = 1 in { ++ def LDX_W32 : LDX_FT_LA<"ldx.w", GPR32Opnd, load>, ++ R3MI<0b00010000>; ++ def LDX_HU32 : LDX_FT_LA<"ldx.hu", GPR32Opnd, extloadi16>, ++ R3MI<0b01001000>; ++ def LDX_BU32 : LDX_FT_LA<"ldx.bu", GPR32Opnd, extloadi8>, ++ R3MI<0b01000000>; ++ def STX_W32 : STX_FT_LA<"stx.w", GPR32Opnd, store>, ++ R3MI<0b00110000>; ++ def LDX_H32 : LDX_FT_LA<"ldx.h", GPR32Opnd, sextloadi16>, ++ R3MI<0b00001000>; ++ def LDX_B32 : LDX_FT_LA<"ldx.b", GPR32Opnd, sextloadi8>, ++ R3MI<0b00000000>; ++ def STX_B32 : STX_FT_LA<"stx.b", GPR32Opnd, truncstorei8>, ++ R3MI<0b00100000>; ++ def STX_H32 : STX_FT_LA<"stx.h", GPR32Opnd, truncstorei16>, ++ R3MI<0b00101000>; ++ } ++} ++ ++def LEA_ADDI_W: EffectiveAddress<"addi.w", GPR32Opnd>, LEA_ADDI_FM<0b010>; ++ ++def : LoongArchPat<(LoongArchAddress (i32 tglobaladdr:$in)), ++ (ADDI_W (PCADDU12I32 tglobaladdr:$in) ,0)>,GPR_32; ++def : LoongArchPat<(LoongArchAddress (i32 tblockaddress:$in)), ++ (ADDI_W (PCADDU12I32 tblockaddress:$in),0)>, GPR_32; ++def : LoongArchPat<(LoongArchAddress (i32 tjumptable:$in)), ++ (ADDI_W (PCADDU12I32 tjumptable:$in),0)>, GPR_32; ++def : LoongArchPat<(LoongArchAddress (i32 texternalsym:$in)), ++ (ADDI_W (PCADDU12I32 texternalsym:$in),0)>, GPR_32; ++ ++//===----------------------------------------------------------------------===// ++// Arbitrary patterns that map to one or more instructions ++//===----------------------------------------------------------------------===// ++ ++let isCodeGenOnly = 1 in { ++ def REVB_2W_32 : Int_Reg2<"revb.2w", GPR32Opnd>, R2I<0b01110>; ++ def REVH_2W_32 : Int_Reg2<"revh.2w", GPR32Opnd>, R2I<0b10000>; ++} ++ ++// bswap pattern ++def : LoongArchPat<(bswap GPR32:$rj), (ROTRI_W (REVB_2H GPR32:$rj), 16)>; ++//def : LoongArchPat<(bswap GPR32:$rj), (REVB_2W_32 GPR32:$rj)>; ++//def : LoongArchPat<(bswap GPR32:$rj), (REVH_2W_32 (REVB_2H GPR32:$rj))>; ++ ++// i32 selects ++multiclass SelectInt_Pats { ++ ++// reg, immz ++def : LoongArchPat<(select (Opg (seteq RC:$cond, immz)), RC:$t, RC:$f), ++ (OROp (MASKNEZOp RC:$t, RC:$cond), (MASKEQZOp RC:$f, RC:$cond))>; ++def : LoongArchPat<(select (Opg (setne RC:$cond, immz)), RC:$t, RC:$f), ++ (OROp (MASKEQZOp RC:$t, RC:$cond), (MASKNEZOp RC:$f, RC:$cond))>; ++ ++//def : LoongArchPat<(select (Opg (seteq RC:$cond, imm_type:$imm)), RC:$t, RC:$f), ++// (OROp (MASKNEZOp RC:$t, (XORiOp RC:$cond, imm_type:$imm)), ++// (MASKEQZOp RC:$f, (XORiOp RC:$cond, imm_type:$imm)))>; ++//def : LoongArchPat<(select (Opg (setne RC:$cond, imm_type:$imm)), RC:$t, RC:$f), ++// (OROp (MASKEQZOp RC:$t, (XORiOp RC:$cond, imm_type:$imm)), ++// (MASKNEZOp RC:$f, (XORiOp RC:$cond, imm_type:$imm)))>; ++ ++// reg, immSExt12Plus1 ++//def : LoongArchPat<(select (Opg (setgt RC:$cond, immSExt12Plus1:$imm)), RC:$t, RC:$f), ++// (OROp (MASKNEZOp RC:$t, (SLTiOp RC:$cond, (Plus1 imm:$imm))), ++// (MASKEQZOp RC:$f, (SLTiOp RC:$cond, (Plus1 imm:$imm))))>; ++//def : LoongArchPat<(select (Opg (setugt RC:$cond, immSExt16Plus1:$imm)), RC:$t, RC:$f), ++// (OROp (MASKNEZOp RC:$t, (SLTiuOp RC:$cond, (Plus1 imm:$imm))), ++// (MASKEQZOp RC:$f, (SLTiuOp RC:$cond, (Plus1 imm:$imm))))>; ++ ++def : LoongArchPat<(select (Opg (seteq RC:$cond, immz)), RC:$t, immz), ++ (MASKNEZOp RC:$t, RC:$cond)>; ++def : LoongArchPat<(select (Opg (setne RC:$cond, immz)), RC:$t, immz), ++ (MASKEQZOp RC:$t, RC:$cond)>; ++def : LoongArchPat<(select (Opg (seteq RC:$cond, immz)), immz, RC:$f), ++ (MASKEQZOp RC:$f, RC:$cond)>; ++def : LoongArchPat<(select (Opg (setne RC:$cond, immz)), immz, RC:$f), ++ (MASKNEZOp RC:$f, RC:$cond)>; ++} ++ ++defm : SelectInt_Pats; ++ ++def : LoongArchPat<(select i32:$cond, i32:$t, i32:$f), ++ (OR32 (MASKEQZ32 i32:$t, i32:$cond), ++ (MASKNEZ32 i32:$f, i32:$cond))>; ++def : LoongArchPat<(select i32:$cond, i32:$t, immz), ++ (MASKEQZ32 i32:$t, i32:$cond)>; ++def : LoongArchPat<(select i32:$cond, immz, i32:$f), ++ (MASKNEZ32 i32:$f, i32:$cond)>; ++ ++// truncate ++def : LoongArchPat<(i32 (trunc (assertzext_lt_i32 GPR64:$src))), ++ (EXTRACT_SUBREG GPR64:$src, sub_32)>, GPR_64; ++def : LoongArchPat<(i32 (trunc GPR64:$src)), ++ (SLLI_W (EXTRACT_SUBREG GPR64:$src, sub_32), 0)>, GPR_64; ++ ++// Patterns used for matching away redundant sign extensions. ++// LA32 arithmetic instructions sign extend their result implicitly. ++def : LoongArchPat<(i64 (sext (i32 (add GPR32:$src, GPR32:$src2)))), ++ (INSERT_SUBREG (i64 (IMPLICIT_DEF)), ++ (ADD_W GPR32:$src, GPR32:$src2), sub_32)>; ++def : LoongArchPat<(i64 (sext (i32 (sub GPR32:$src, GPR32:$src2)))), ++ (INSERT_SUBREG (i64 (IMPLICIT_DEF)), ++ (SUB_W GPR32:$src, GPR32:$src2), sub_32)>; ++def : LoongArchPat<(i64 (sext (i32 (mul GPR32:$src, GPR32:$src2)))), ++ (INSERT_SUBREG (i64 (IMPLICIT_DEF)), ++ (MUL_W GPR32:$src, GPR32:$src2), sub_32)>; ++ ++def : LoongArchPat<(store (i32 0), addr:$dst), (ST_W32 ZERO, addr:$dst)>; ++ ++def : InstAlias<"break", (BREAK 0), 0>; ++def : LoongArchInstAlias<"move $dst, $src", ++ (OR32 GPR32Opnd:$dst, GPR32Opnd:$src, ZERO), 1>, GPR_32; ++ ++def immSExt12Plus1 : PatLeaf<(imm), [{ ++ return isInt<13>(N->getSExtValue()) && isInt<12>(N->getSExtValue() + 1); ++}]>; ++ ++def Plus1 : SDNodeXFormgetSExtValue() + 1); }]>; ++ ++multiclass BrcondPats { ++ ++def : LoongArchPat<(brcond (i32 (setne RC:$lhs, 0)), bb:$dst), ++ (BNEOp RC:$lhs, ZEROReg, bb:$dst)>; ++def : LoongArchPat<(brcond (i32 (seteq RC:$lhs, 0)), bb:$dst), ++ (BEQOp RC:$lhs, ZEROReg, bb:$dst)>; ++def : LoongArchPat<(brcond (i32 (setge RC:$lhs, RC:$rhs)), bb:$dst), ++ (BEQOp1 (SLTOp RC:$lhs, RC:$rhs), ZEROReg, bb:$dst)>; ++def : LoongArchPat<(brcond (i32 (setuge RC:$lhs, RC:$rhs)), bb:$dst), ++ (BEQOp1 (SLTUOp RC:$lhs, RC:$rhs), ZEROReg, bb:$dst)>; ++def : LoongArchPat<(brcond (i32 (setge RC:$lhs, immSExt12:$rhs)), bb:$dst), ++ (BEQOp1 (SLTIOp RC:$lhs, immSExt12:$rhs), ZEROReg, bb:$dst)>; ++def : LoongArchPat<(brcond (i32 (setuge RC:$lhs, immSExt12:$rhs)), bb:$dst), ++ (BEQOp1 (SLTUIOp RC:$lhs, immSExt12:$rhs), ZEROReg, bb:$dst)>; ++def : LoongArchPat<(brcond (i32 (setgt RC:$lhs, immSExt12Plus1:$rhs)), bb:$dst), ++ (BEQOp1 (SLTIOp RC:$lhs, (Plus1 imm:$rhs)), ZEROReg, bb:$dst)>; ++def : LoongArchPat<(brcond (i32 (setugt RC:$lhs, immSExt12Plus1:$rhs)), bb:$dst), ++ (BEQOp1 (SLTUIOp RC:$lhs, (Plus1 imm:$rhs)), ZEROReg, bb:$dst)>; ++def : LoongArchPat<(brcond (i32 (setle RC:$lhs, RC:$rhs)), bb:$dst), ++ (BEQOp1 (SLTOp RC:$rhs, RC:$lhs), ZEROReg, bb:$dst)>; ++def : LoongArchPat<(brcond (i32 (setule RC:$lhs, RC:$rhs)), bb:$dst), ++ (BEQOp1 (SLTUOp RC:$rhs, RC:$lhs), ZEROReg, bb:$dst)>; ++def : LoongArchPat<(brcond RC:$cond, bb:$dst), ++ (BNEOp RC:$cond, ZEROReg, bb:$dst)>; ++} ++ ++defm : BrcondPats, GPR_64; ++ ++let usesCustomInserter = 1 in { ++ def ATOMIC_LOAD_ADD_I8 : Atomic2Ops; ++ def ATOMIC_LOAD_ADD_I16 : Atomic2Ops; ++ def ATOMIC_LOAD_ADD_I32 : Atomic2Ops; ++ def ATOMIC_LOAD_SUB_I8 : Atomic2Ops; ++ def ATOMIC_LOAD_SUB_I16 : Atomic2Ops; ++ def ATOMIC_LOAD_SUB_I32 : Atomic2Ops; ++ def ATOMIC_LOAD_AND_I8 : Atomic2Ops; ++ def ATOMIC_LOAD_AND_I16 : Atomic2Ops; ++ def ATOMIC_LOAD_AND_I32 : Atomic2Ops; ++ def ATOMIC_LOAD_OR_I8 : Atomic2Ops; ++ def ATOMIC_LOAD_OR_I16 : Atomic2Ops; ++ def ATOMIC_LOAD_OR_I32 : Atomic2Ops; ++ def ATOMIC_LOAD_XOR_I8 : Atomic2Ops; ++ def ATOMIC_LOAD_XOR_I16 : Atomic2Ops; ++ def ATOMIC_LOAD_XOR_I32 : Atomic2Ops; ++ def ATOMIC_LOAD_NAND_I8 : Atomic2Ops; ++ def ATOMIC_LOAD_NAND_I16 : Atomic2Ops; ++ def ATOMIC_LOAD_NAND_I32 : Atomic2Ops; ++ ++ def ATOMIC_SWAP_I8 : Atomic2Ops; ++ def ATOMIC_SWAP_I16 : Atomic2Ops; ++ def ATOMIC_SWAP_I32 : Atomic2Ops; ++ ++ def ATOMIC_CMP_SWAP_I8 : AtomicCmpSwap; ++ def ATOMIC_CMP_SWAP_I16 : AtomicCmpSwap; ++ def ATOMIC_CMP_SWAP_I32 : AtomicCmpSwap; ++ ++ def ATOMIC_LOAD_MAX_I8 : Atomic2Ops; ++ def ATOMIC_LOAD_MAX_I16 : Atomic2Ops; ++ def ATOMIC_LOAD_MAX_I32 : Atomic2Ops; ++ ++ def ATOMIC_LOAD_MIN_I8 : Atomic2Ops; ++ def ATOMIC_LOAD_MIN_I16 : Atomic2Ops; ++ def ATOMIC_LOAD_MIN_I32 : Atomic2Ops; ++ ++ def ATOMIC_LOAD_UMAX_I8 : Atomic2Ops; ++ def ATOMIC_LOAD_UMAX_I16 : Atomic2Ops; ++ def ATOMIC_LOAD_UMAX_I32 : Atomic2Ops; ++ ++ def ATOMIC_LOAD_UMIN_I8 : Atomic2Ops; ++ def ATOMIC_LOAD_UMIN_I16 : Atomic2Ops; ++ def ATOMIC_LOAD_UMIN_I32 : Atomic2Ops; ++} ++ ++def ATOMIC_LOAD_ADD_I8_POSTRA : Atomic2OpsSubwordPostRA; ++def ATOMIC_LOAD_ADD_I16_POSTRA : Atomic2OpsSubwordPostRA; ++def ATOMIC_LOAD_ADD_I32_POSTRA : Atomic2OpsPostRA; ++def ATOMIC_LOAD_SUB_I8_POSTRA : Atomic2OpsSubwordPostRA; ++def ATOMIC_LOAD_SUB_I16_POSTRA : Atomic2OpsSubwordPostRA; ++def ATOMIC_LOAD_SUB_I32_POSTRA : Atomic2OpsPostRA; ++def ATOMIC_LOAD_AND_I8_POSTRA : Atomic2OpsSubwordPostRA; ++def ATOMIC_LOAD_AND_I16_POSTRA : Atomic2OpsSubwordPostRA; ++def ATOMIC_LOAD_AND_I32_POSTRA : Atomic2OpsPostRA; ++def ATOMIC_LOAD_OR_I8_POSTRA : Atomic2OpsSubwordPostRA; ++def ATOMIC_LOAD_OR_I16_POSTRA : Atomic2OpsSubwordPostRA; ++def ATOMIC_LOAD_OR_I32_POSTRA : Atomic2OpsPostRA; ++def ATOMIC_LOAD_XOR_I8_POSTRA : Atomic2OpsSubwordPostRA; ++def ATOMIC_LOAD_XOR_I16_POSTRA : Atomic2OpsSubwordPostRA; ++def ATOMIC_LOAD_XOR_I32_POSTRA : Atomic2OpsPostRA; ++def ATOMIC_LOAD_NAND_I8_POSTRA : Atomic2OpsSubwordPostRA; ++def ATOMIC_LOAD_NAND_I16_POSTRA : Atomic2OpsSubwordPostRA; ++def ATOMIC_LOAD_NAND_I32_POSTRA : Atomic2OpsPostRA; ++ ++def ATOMIC_SWAP_I8_POSTRA : Atomic2OpsSubwordPostRA; ++def ATOMIC_SWAP_I16_POSTRA : Atomic2OpsSubwordPostRA; ++def ATOMIC_SWAP_I32_POSTRA : Atomic2OpsPostRA; ++ ++def ATOMIC_CMP_SWAP_I8_POSTRA : AtomicCmpSwapSubwordPostRA; ++def ATOMIC_CMP_SWAP_I16_POSTRA : AtomicCmpSwapSubwordPostRA; ++def ATOMIC_CMP_SWAP_I32_POSTRA : AtomicCmpSwapPostRA; ++ ++def ATOMIC_LOAD_MAX_I8_POSTRA : Atomic2OpsSubwordPostRA; ++def ATOMIC_LOAD_MAX_I16_POSTRA : Atomic2OpsSubwordPostRA; ++def ATOMIC_LOAD_MAX_I32_POSTRA : Atomic2OpsPostRA; ++ ++def ATOMIC_LOAD_MIN_I8_POSTRA : Atomic2OpsSubwordPostRA; ++def ATOMIC_LOAD_MIN_I16_POSTRA : Atomic2OpsSubwordPostRA; ++def ATOMIC_LOAD_MIN_I32_POSTRA : Atomic2OpsPostRA; ++ ++def ATOMIC_LOAD_UMAX_I8_POSTRA : Atomic2OpsSubwordPostRA; ++def ATOMIC_LOAD_UMAX_I16_POSTRA : Atomic2OpsSubwordPostRA; ++def ATOMIC_LOAD_UMAX_I32_POSTRA : Atomic2OpsPostRA; ++ ++def ATOMIC_LOAD_UMIN_I8_POSTRA : Atomic2OpsSubwordPostRA; ++def ATOMIC_LOAD_UMIN_I16_POSTRA : Atomic2OpsSubwordPostRA; ++def ATOMIC_LOAD_UMIN_I32_POSTRA : Atomic2OpsPostRA; ++ ++def : LoongArchPat<(atomic_load_8 addr:$a), (LD_B32 addr:$a)>; ++def : LoongArchPat<(atomic_load_16 addr:$a), (LD_H32 addr:$a)>; ++def : LoongArchPat<(atomic_load_32 addrimm14lsl2:$a), (LDPTR_W32 addrimm14lsl2:$a)>; ++def : LoongArchPat<(atomic_load_32 addr:$a), (LD_W32 addr:$a)>; ++ ++def : LoongArchPat<(atomic_store_8 addr:$a, GPR32:$v), ++ (ST_B32 GPR32:$v, addr:$a)>; ++def : LoongArchPat<(atomic_store_16 addr:$a, GPR32:$v), ++ (ST_H32 GPR32:$v, addr:$a)>; ++def : LoongArchPat<(atomic_store_32 addrimm14lsl2:$a, GPR32:$v), ++ (STPTR_W32 GPR32:$v, addrimm14lsl2:$a)>; ++def : LoongArchPat<(atomic_store_32 addr:$a, GPR32:$v), ++ (ST_W32 GPR32:$v, addr:$a)>; ++ ++def : LoongArchPat<(LoongArchDBAR (i32 immz)), ++ (DBAR 0)>; ++ ++def : LoongArchPat<(i32 (extloadi1 addr:$src)), (LD_BU32 addr:$src)>; ++def : LoongArchPat<(i32 (extloadi8 addr:$src)), (LD_BU32 addr:$src)>; ++def : LoongArchPat<(i32 (extloadi16 addr:$src)), (LD_HU32 addr:$src)>; ++ ++def : LoongArchPat<(store (i32 0), addr:$dst), (ST_W32 ZERO, addr:$dst)>; ++ ++// Patterns for loads/stores with a reg+imm operand. ++let AddedComplexity = 40 in { ++ def : LoadRegImmPat; ++ def : LoadRegImmPat; ++ def : LoadRegImmPat; ++ def : LoadRegImmPat; ++ def : LoadRegImmPat; ++ def : StoreRegImmPat; ++ def : StoreRegImmPat; ++ def : StoreRegImmPat; ++ ++ def : LoadRegImm14Lsl2Pat; ++ def : StoreRegImm14Lsl2Pat; ++} ++ ++let isCall=1, isCTI=1, Defs = [RA] in { ++ ++ class JumpLinkRegPseudo: ++ LoongArchPseudo<(outs), (ins RO:$rj), [(LoongArchJmpLink RO:$rj)]>, ++ PseudoInstExpansion<(JIRLRInst RetReg, ResRO:$rj)> { ++ let hasPostISelHook = 1; ++ } ++ ++ class JumpLinkReg: ++ InstForm<(outs RO:$rd), (ins RO:$rj), !strconcat(opstr, "\t$rd, $rj, 0"), ++ [], FrmR, opstr> { ++ let hasPostISelHook = 1; ++ } ++ ++} ++ ++def JIRLR : JumpLinkReg<"jirl", GPR32Opnd>, R2_IMM16JIRL { ++ let offs16 = 0; ++} ++def JIRLRPseudo : JumpLinkRegPseudo; ++ ++class BrindRegPseudo: ++ LoongArchPseudo<(outs), (ins RO:$rj), [(brind RO:$rj)]>, ++ PseudoInstExpansion<(JIRLRInst RetReg, ResRO:$rj)> { ++ let isTerminator=1; ++ let isBarrier=1; ++ let isBranch = 1; ++ let isIndirectBranch = 1; ++ bit isCTI = 1; ++} ++ ++def JIRLRBRIND : BrindRegPseudo; ++ ++def : LoongArchPat<(addc GPR32:$src, immSExt12:$imm), ++ (ADDI_W GPR32:$src, imm:$imm)>; ++ ++defm : SeteqPats; ++defm : SetlePats; ++defm : SetgtPats; ++defm : SetgePats; ++defm : SetgeImmPats; ++ ++def : LoongArchPat<(i64 (sext (i32 (xor (i32 (trunc (i64 (assertsext GPR64:$rj)))), (immZExt12:$imm12))))), ++ (INSERT_SUBREG (i64 (IMPLICIT_DEF)), ++ (XORI32 (EXTRACT_SUBREG GPR64:$rj, sub_32), (immZExt12:$imm12)), sub_32)>, GPR_64; ++ ++def : LoongArchPat<(i64 (sext (i32 (add (i32 (trunc (i64 (assertsext GPR64:$rj)))), (i32 (trunc (i64 (assertsext GPR64:$rk)))))))), ++ (INSERT_SUBREG (i64 (IMPLICIT_DEF)), ++ (ADD_W (EXTRACT_SUBREG GPR64:$rj, sub_32), (EXTRACT_SUBREG GPR64:$rk, sub_32)), sub_32)>, GPR_64; ++ ++def : LoongArchPat<(i64 (sext (i32 (add (i32 (trunc (i64 (assertsext GPR64:$rj)))), (immSExt12:$imm12))))), ++ (INSERT_SUBREG (i64 (IMPLICIT_DEF)), ++ (ADDI_W (EXTRACT_SUBREG GPR64:$rj, sub_32), (immSExt12:$imm12)), sub_32)>, GPR_64; ++ ++def : LoongArchPat<(i64 (sext (i32 (sra (i32 (trunc (i64 (assertsext GPR64:$rj)))), (i32 (trunc (i64 (assertsext GPR64:$rk)))))))), ++ (INSERT_SUBREG (i64 (IMPLICIT_DEF)), ++ (SRA_W (EXTRACT_SUBREG GPR64:$rj, sub_32), (EXTRACT_SUBREG GPR64:$rk, sub_32)), sub_32)>, GPR_64; ++ ++def : LoongArchPat<(i64 (sext (i32 (srl (i32 (trunc (i64 (assertsext GPR64:$rj)))), (i32 (trunc (i64 (assertsext GPR64:$rk)))))))), ++ (INSERT_SUBREG (i64 (IMPLICIT_DEF)), ++ (SRL_W (EXTRACT_SUBREG GPR64:$rj, sub_32), (EXTRACT_SUBREG GPR64:$rk, sub_32)), sub_32)>, GPR_64; ++ ++def : LoongArchPat<(i64 (sext (i32 (mul (i32 (trunc (i64 (assertsext GPR64:$rj)))), (i32 (trunc (i64 (assertsext GPR64:$rk)))))))), ++ (INSERT_SUBREG (i64 (IMPLICIT_DEF)), ++ (MUL_W (EXTRACT_SUBREG GPR64:$rj, sub_32), (EXTRACT_SUBREG GPR64:$rk, sub_32)), sub_32)>, GPR_64; ++ ++def : LoongArchPat<(i64 (sext (i32 (xor (i32 (trunc (i64 (assertsext GPR64:$rj)))), (i32 (trunc (i64 (assertsext GPR64:$rk)))))))), ++ (INSERT_SUBREG (i64 (IMPLICIT_DEF)), ++ (XOR32 (EXTRACT_SUBREG GPR64:$rj, sub_32), (EXTRACT_SUBREG GPR64:$rk, sub_32)), sub_32)>, GPR_64; ++ ++def : LoongArchPat<(i64 (sext (i32 (xor (i32 (trunc (i64 (assertsext GPR64:$rj)))), (i32 GPR32:$rk))))), ++ (INSERT_SUBREG (i64 (IMPLICIT_DEF)), ++ (XOR32 (EXTRACT_SUBREG GPR64:$rj, sub_32), GPR32:$rk), sub_32)>, GPR_64; ++ ++def : LoongArchPat<(i64 (sext (i32 (or (i32 (trunc (i64 (assertsext GPR64:$rj)))), (uimm12_32:$imm12))))), ++ (INSERT_SUBREG (i64 (IMPLICIT_DEF)), ++ (ORI32 (EXTRACT_SUBREG GPR64:$rj, sub_32), (uimm12_32:$imm12)), sub_32)>, GPR_64; ++ ++def : LoongArchPat<(i64 (sext (i32 (or (i32 (trunc (i64 (assertsext GPR64:$rj)))), (i32 GPR32:$rk))))), ++ (INSERT_SUBREG (i64 (IMPLICIT_DEF)), ++ (OR32 (EXTRACT_SUBREG GPR64:$rj, sub_32), GPR32:$rk), sub_32)>, GPR_64; ++ ++def : LoongArchPat<(i64 (sext (select i32:$cond, (i32 (trunc (i64 (assertsext GPR64:$t)))), (i32 (trunc (i64 (assertsext GPR64:$f))))))), ++ (INSERT_SUBREG (i64 (IMPLICIT_DEF)), ++ (OR32 (MASKEQZ32 (EXTRACT_SUBREG GPR64:$t, sub_32), i32:$cond), ++ (MASKNEZ32 (EXTRACT_SUBREG GPR64:$f, sub_32), i32:$cond)), sub_32)>; ++ ++def : LoongArchPat<(i64 (sext (i32 (shl (i32 (trunc (i64 (assertsext GPR64:$rj)))), (i32 (trunc (i64 (assertsext GPR64:$rk)))))))), ++ (INSERT_SUBREG (i64 (IMPLICIT_DEF)), ++ (SLL_W (EXTRACT_SUBREG GPR64:$rj, sub_32), (EXTRACT_SUBREG GPR64:$rk, sub_32)), sub_32)>, GPR_64; ++ ++def : LoongArchPat<(i64 (sext (i32 (srem (i32 (trunc (i64 (assertsext GPR64:$rj)))), (i32 (trunc (i64 (assertsext GPR64:$rk)))))))), ++ (INSERT_SUBREG (i64 (IMPLICIT_DEF)), ++ (MOD_W (EXTRACT_SUBREG GPR64:$rj, sub_32), (EXTRACT_SUBREG GPR64:$rk, sub_32)), sub_32)>, GPR_64; ++ ++def : LoongArchPat<(atomic_store_32 addr:$a, (i32 (trunc (i64 (assertsext GPR64:$rj))))), ++ (ST_W32 (EXTRACT_SUBREG GPR64:$rj, sub_32), addr:$a)>, GPR_64; ++ ++def : LoongArchPat<(i64 (sext (i32 (sub (i32 (trunc (i64 (assertsext GPR64:$rj)))), (i32 (trunc (i64 (assertsext GPR64:$rk)))))))), ++ (INSERT_SUBREG (i64 (IMPLICIT_DEF)), ++ (SUB_W (EXTRACT_SUBREG GPR64:$rj, sub_32), (EXTRACT_SUBREG GPR64:$rk, sub_32)), sub_32)>, GPR_64; ++ ++def : LoongArchPat<(i64 (sext (i32 (udiv (i32 (trunc (i64 (assertsext GPR64:$rj)))), (i32 (trunc (i64 (assertsext GPR64:$rk)))))))), ++ (INSERT_SUBREG (i64 (IMPLICIT_DEF)), ++ (DIV_WU (EXTRACT_SUBREG GPR64:$rj, sub_32), (EXTRACT_SUBREG GPR64:$rk, sub_32)), sub_32)>, GPR_64; ++ ++def : LoongArchPat<(i64 (sext (i32 (urem (i32 (trunc (i64 (assertsext GPR64:$rj)))), (i32 (trunc (i64 (assertsext GPR64:$rk)))))))), ++ (INSERT_SUBREG (i64 (IMPLICIT_DEF)), ++ (MOD_WU (EXTRACT_SUBREG GPR64:$rj, sub_32), (EXTRACT_SUBREG GPR64:$rk, sub_32)), sub_32)>, GPR_64; ++ ++def : LoongArchPat<(brcond (i32 (seteq (i32 (trunc (i64 (assertsext GPR64:$rj)))), 0)), bb:$offs21), ++ (BEQZ32 (EXTRACT_SUBREG GPR64:$rj, sub_32), brtarget:$offs21)>; ++ ++def : LoongArchPat<(setne (i32 (trunc (i64 (assertsext GPR64:$rj)))), 0), ++ (SLTU32 ZERO, (EXTRACT_SUBREG GPR64:$rj, sub_32))>; ++ ++def : LoongArchPat<(select i32:$cond, (i32 (trunc (i64 (assertsext GPR64:$t)))), (i32 (trunc (i64 (assertsext GPR64:$f))))), ++ (OR32 (MASKEQZ32 (EXTRACT_SUBREG GPR64:$t, sub_32), i32:$cond), ++ (MASKNEZ32 (EXTRACT_SUBREG GPR64:$f, sub_32), i32:$cond))>; ++ ++def : LoongArchPat<(select (i32 (setne (i32 (trunc (i64 (assertsext GPR64:$cond)))), immz)), immz, i32:$f), ++ (MASKNEZ32 i32:$f, (EXTRACT_SUBREG GPR64:$cond, sub_32))>; ++ ++def : LoongArchPat<(select (i32 (seteq (i32 (trunc (i64 (assertsext GPR64:$cond)))), immz)), immz, i32:$f), ++ (MASKEQZ32 i32:$f, (EXTRACT_SUBREG GPR64:$cond, sub_32))>; ++ ++ def : LoongArchPat<(store (i32 (trunc (i64 (assertsext GPR64:$v)))), addr:$a), ++ (ST_W32 (EXTRACT_SUBREG GPR64:$v, sub_32), addr:$a)>; ++ ++ ++def : LoongArchPat<(i32 (xor GPR32:$rj, (i32 -1))), ++ (NOR32 ZERO, GPR32:$rj)>; ++ ++def : LoongArchPat<(and GPR32:$rj, (i32 (xor GPR32:$rk, (i32 -1)))), ++ (ANDN32 GPR32:$rj, GPR32:$rk)>; ++ ++def : LoongArchPat< ++ (i64 ++ (sext ++ (i32 (and (i32 (trunc (i64 (assertsext GPR64:$rj)))), ++ (i32 (xor (i32 (trunc (i64 (assertsext GPR64:$rk)))), ++ (i32 -1)))) ++ ) ++ ) ++ ), ++ (INSERT_SUBREG ++ (i64 (IMPLICIT_DEF)), ++ (ANDN32 (EXTRACT_SUBREG GPR64:$rj, sub_32), ++ (EXTRACT_SUBREG GPR64:$rk, sub_32)), ++ sub_32 ++ )>; ++ ++def : LoongArchPat< ++ (i64 ++ (sext ++ (i32 (or (i32 (trunc (i64 (assertsext GPR64:$rj)))), ++ (i32 (xor (i32 (trunc (i64 (assertsext GPR64:$rk)))), ++ (i32 -1)))) ++ ) ++ ) ++ ), ++ (INSERT_SUBREG ++ (i64 (IMPLICIT_DEF)), ++ (ORN32 (EXTRACT_SUBREG GPR64:$rj, sub_32), ++ (EXTRACT_SUBREG GPR64:$rk, sub_32)), ++ sub_32 ++ )>; ++ ++def : LoongArchPat<(i64 ++ (sext ++ (i32 (xor (i32 (or (i32 (trunc (i64 (assertsext GPR64:$rj)))), ++ (i32 (trunc (i64 (assertsext GPR64:$rk)))))), ++ (i32 -1)) ++ ) ++ ) ++ ), ++ (INSERT_SUBREG ++ (i64 (IMPLICIT_DEF)), ++ (NOR32 (EXTRACT_SUBREG GPR64:$rj, sub_32), ++ (EXTRACT_SUBREG GPR64:$rk, sub_32)), ++ sub_32 ++ )>; ++ ++def : LoongArchPat<(i64 ++ (sext ++ (i32 (xor (i32 (trunc (i64 (or (i64 (assertsext GPR64:$rj)), ++ (i64 (assertsext GPR64:$rk)))))), ++ (i32 -1)) ++ ) ++ ) ++ ), ++ (INSERT_SUBREG ++ (i64 (IMPLICIT_DEF)), ++ (NOR32 (EXTRACT_SUBREG GPR64:$rk, sub_32), ++ (EXTRACT_SUBREG GPR64:$rj, sub_32)), ++ sub_32 ++ )>; ++ ++def : LoongArchPat<(i64 ++ (sext ++ (i32 (xor (i32 (trunc (i64 (assertsext GPR64:$rj)))), ++ (i32 -1)) ++ ) ++ ) ++ ), ++ (INSERT_SUBREG ++ (i64 (IMPLICIT_DEF)), ++ (NOR32 ZERO, (EXTRACT_SUBREG GPR64:$rj, sub_32)), ++ sub_32 ++ )>; ++ ++def : LoongArchPat<(i64 ++ (zext ++ (i32 (seteq (i32 (trunc (i64 (assertsext GPR64:$rj)))), ++ (i32 0)) ++ ) ++ ) ++ ), ++ (INSERT_SUBREG ++ (i64 (IMPLICIT_DEF)), ++ (SLTUI32 (EXTRACT_SUBREG GPR64:$rj, sub_32), (i32 1)), ++ sub_32 ++ )>; +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchAsmPrinter.cpp b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchAsmPrinter.cpp +new file mode 100644 +index 00000000000..e12f2bbf364 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchAsmPrinter.cpp +@@ -0,0 +1,638 @@ ++//===- LoongArchAsmPrinter.cpp - LoongArch LLVM Assembly Printer --------------------===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++// ++// This file contains a printer that converts from our internal representation ++// of machine-dependent LLVM code to GAS-format LoongArch assembly language. ++// ++//===----------------------------------------------------------------------===// ++ ++#include "LoongArchAsmPrinter.h" ++#include "MCTargetDesc/LoongArchInstPrinter.h" ++#include "MCTargetDesc/LoongArchABIInfo.h" ++#include "MCTargetDesc/LoongArchBaseInfo.h" ++#include "MCTargetDesc/LoongArchMCTargetDesc.h" ++#include "LoongArch.h" ++#include "LoongArchMCInstLower.h" ++#include "LoongArchMachineFunction.h" ++#include "LoongArchSubtarget.h" ++#include "LoongArchTargetMachine.h" ++#include "LoongArchTargetStreamer.h" ++#include "llvm/ADT/SmallString.h" ++#include "llvm/ADT/StringRef.h" ++#include "llvm/ADT/Triple.h" ++#include "llvm/ADT/Twine.h" ++#include "llvm/BinaryFormat/ELF.h" ++#include "llvm/CodeGen/MachineBasicBlock.h" ++#include "llvm/CodeGen/MachineConstantPool.h" ++#include "llvm/CodeGen/MachineFrameInfo.h" ++#include "llvm/CodeGen/MachineFunction.h" ++#include "llvm/CodeGen/MachineInstr.h" ++#include "llvm/CodeGen/MachineJumpTableInfo.h" ++#include "llvm/CodeGen/MachineOperand.h" ++#include "llvm/CodeGen/TargetRegisterInfo.h" ++#include "llvm/CodeGen/TargetSubtargetInfo.h" ++#include "llvm/IR/Attributes.h" ++#include "llvm/IR/BasicBlock.h" ++#include "llvm/IR/DataLayout.h" ++#include "llvm/IR/Function.h" ++#include "llvm/IR/InlineAsm.h" ++#include "llvm/IR/Instructions.h" ++#include "llvm/MC/MCContext.h" ++#include "llvm/MC/MCExpr.h" ++#include "llvm/MC/MCInst.h" ++#include "llvm/MC/MCInstBuilder.h" ++#include "llvm/MC/MCObjectFileInfo.h" ++#include "llvm/MC/MCSectionELF.h" ++#include "llvm/MC/MCSymbol.h" ++#include "llvm/MC/MCSymbolELF.h" ++#include "llvm/Support/Casting.h" ++#include "llvm/Support/ErrorHandling.h" ++#include "llvm/Support/TargetRegistry.h" ++#include "llvm/Support/raw_ostream.h" ++#include "llvm/Target/TargetMachine.h" ++#include ++#include ++#include ++#include ++#include ++#include ++ ++using namespace llvm; ++ ++#define DEBUG_TYPE "loongarch-asm-printer" ++ ++LoongArchTargetStreamer &LoongArchAsmPrinter::getTargetStreamer() const { ++ return static_cast(*OutStreamer->getTargetStreamer()); ++} ++ ++bool LoongArchAsmPrinter::runOnMachineFunction(MachineFunction &MF) { ++ Subtarget = &MF.getSubtarget(); ++ ++ LoongArchFI = MF.getInfo(); ++ MCP = MF.getConstantPool(); ++ ++ AsmPrinter::runOnMachineFunction(MF); ++ ++ emitXRayTable(); ++ ++ return true; ++} ++ ++bool LoongArchAsmPrinter::lowerOperand(const MachineOperand &MO, MCOperand &MCOp) { ++ MCOp = MCInstLowering.LowerOperand(MO); ++ return MCOp.isValid(); ++} ++ ++#include "LoongArchGenMCPseudoLowering.inc" ++ ++// Lower PseudoReturn/PseudoIndirectBranch/PseudoIndirectBranch64 to ++// JIRL as appropriate for the target. ++void LoongArchAsmPrinter::emitPseudoIndirectBranch(MCStreamer &OutStreamer, ++ const MachineInstr *MI) { ++ bool HasLinkReg = false; ++ MCInst TmpInst0; ++ TmpInst0.setOpcode(LoongArch::JIRL); ++ HasLinkReg = true; ++ ++ MCOperand MCOp; ++ ++ if (HasLinkReg) { ++ unsigned ZeroReg = Subtarget->is64Bit() ? LoongArch::ZERO_64 : LoongArch::ZERO; ++ TmpInst0.addOperand(MCOperand::createReg(ZeroReg)); ++ } ++ ++ lowerOperand(MI->getOperand(0), MCOp); ++ TmpInst0.addOperand(MCOp); ++ ++ TmpInst0.addOperand(MCOperand::createImm(0)); ++ ++ EmitToStreamer(OutStreamer, TmpInst0); ++} ++ ++void LoongArchAsmPrinter::emitPseudoTailBranch(MCStreamer &OutStreamer, ++ const MachineInstr *MI) { ++ MCInst TmpInst; ++ TmpInst.setOpcode(LoongArch::B); ++ ++ MCOperand MCOp; ++ ++ lowerOperand(MI->getOperand(0), MCOp); ++ TmpInst.addOperand(MCOp); ++ ++ EmitToStreamer(OutStreamer, TmpInst); ++} ++ ++void LoongArchAsmPrinter::EmitInstruction(const MachineInstr *MI) { ++ LoongArchTargetStreamer &TS = getTargetStreamer(); ++ unsigned Opc = MI->getOpcode(); ++ TS.forbidModuleDirective(); ++ ++ if (MI->isDebugValue()) { ++ SmallString<128> Str; ++ raw_svector_ostream OS(Str); ++ ++ PrintDebugValueComment(MI, OS); ++ return; ++ } ++ if (MI->isDebugLabel()) ++ return; ++ // If we just ended a constant pool, mark it as such. ++ OutStreamer->EmitDataRegion(MCDR_DataRegionEnd); ++ InConstantPool = false; ++ ++ switch (Opc) { ++ case LoongArch::PATCHABLE_FUNCTION_ENTER: ++ LowerPATCHABLE_FUNCTION_ENTER(*MI); ++ return; ++ case LoongArch::PATCHABLE_FUNCTION_EXIT: ++ LowerPATCHABLE_FUNCTION_EXIT(*MI); ++ return; ++ case LoongArch::PATCHABLE_TAIL_CALL: ++ LowerPATCHABLE_TAIL_CALL(*MI); ++ return; ++ } ++ MachineBasicBlock::const_instr_iterator I = MI->getIterator(); ++ MachineBasicBlock::const_instr_iterator E = MI->getParent()->instr_end(); ++ ++ do { ++ // Do any auto-generated pseudo lowerings. ++ if (emitPseudoExpansionLowering(*OutStreamer, &*I)) ++ continue; ++ if (I->getOpcode() == LoongArch::PseudoReturn || ++ I->getOpcode() == LoongArch::PseudoReturn64){ ++ emitPseudoIndirectBranch(*OutStreamer, &*I); ++ continue; ++ } ++ if (I->getOpcode() == LoongArch::PseudoTailReturn){ ++ emitPseudoTailBranch(*OutStreamer, &*I); ++ continue; ++ } ++ ++ // Some instructions are marked as pseudo right now which ++ // would make the test fail for the wrong reason but ++ // that will be fixed soon. We need this here because we are ++ // removing another test for this situation downstream in the ++ // callchain. ++ // ++ if (I->isPseudo() ++ && !isLongBranchPseudo(I->getOpcode())) ++ llvm_unreachable("Pseudo opcode found in EmitInstruction()"); ++ ++ MCInst TmpInst0; ++ MCInstLowering.Lower(&*I, TmpInst0); ++ EmitToStreamer(*OutStreamer, TmpInst0); ++ } while ((++I != E) && I->isInsideBundle()); ++} ++ ++//===----------------------------------------------------------------------===// ++// ++// LoongArch Asm Directives ++// ++// ++//===----------------------------------------------------------------------===// ++ ++//===----------------------------------------------------------------------===// ++// Set directives ++//===----------------------------------------------------------------------===// ++ ++/// Emit Set directives. ++const char *LoongArchAsmPrinter::getCurrentABIString() const { ++ switch (static_cast(TM).getABI().GetEnumValue()) { ++ case LoongArchABIInfo::ABI::LP32: return "abilp32"; ++ case LoongArchABIInfo::ABI::LPX32: return "abilpx32"; ++ case LoongArchABIInfo::ABI::LP64: return "abilp64"; ++ default: llvm_unreachable("Unknown LoongArch ABI"); ++ } ++} ++ ++void LoongArchAsmPrinter::EmitFunctionEntryLabel() { ++ ++ OutStreamer->EmitLabel(CurrentFnSym); ++ ++} ++ ++/// EmitFunctionBodyStart - Targets can override this to emit stuff before ++/// the first basic block in the function. ++void LoongArchAsmPrinter::EmitFunctionBodyStart() { ++ ++ MCInstLowering.Initialize(&MF->getContext()); ++} ++ ++/// EmitFunctionBodyEnd - Targets can override this to emit stuff after ++/// the last basic block in the function. ++void LoongArchAsmPrinter::EmitFunctionBodyEnd() { ++ ++ // Make sure to terminate any constant pools that were at the end ++ // of the function. ++ if (!InConstantPool) ++ return; ++ InConstantPool = false; ++ OutStreamer->EmitDataRegion(MCDR_DataRegionEnd); ++} ++ ++void LoongArchAsmPrinter::EmitBasicBlockEnd(const MachineBasicBlock &MBB) { ++ AsmPrinter::EmitBasicBlockEnd(MBB); ++} ++ ++/// isBlockOnlyReachableByFallthough - Return true if the basic block has ++/// exactly one predecessor and the control transfer mechanism between ++/// the predecessor and this block is a fall-through. ++bool LoongArchAsmPrinter::isBlockOnlyReachableByFallthrough(const MachineBasicBlock* ++ MBB) const { ++ // The predecessor has to be immediately before this block. ++ const MachineBasicBlock *Pred = *MBB->pred_begin(); ++ ++ // If the predecessor is a switch statement, assume a jump table ++ // implementation, so it is not a fall through. ++ if (const BasicBlock *bb = Pred->getBasicBlock()) ++ if (isa(bb->getTerminator())) ++ return false; ++ ++ // Check default implementation ++ return AsmPrinter::isBlockOnlyReachableByFallthrough(MBB); ++} ++ ++// Print out an operand for an inline asm expression. ++bool LoongArchAsmPrinter::PrintAsmOperand(const MachineInstr *MI, ++ unsigned OpNum, const char *ExtraCode, raw_ostream &O) { ++ // Does this asm operand have a single letter operand modifier? ++ if (ExtraCode && ExtraCode[0]) { ++ if (ExtraCode[1] != 0) return true; // Unknown modifier. ++ ++ const MachineOperand &MO = MI->getOperand(OpNum); ++ switch (ExtraCode[0]) { ++ default: ++ // See if this is a generic print operand ++ return AsmPrinter::PrintAsmOperand(MI,OpNum,ExtraCode,O); ++ case 'X': // hex const int ++ if ((MO.getType()) != MachineOperand::MO_Immediate) ++ return true; ++ O << "0x" << Twine::utohexstr(MO.getImm()); ++ return false; ++ case 'x': // hex const int (low 16 bits) ++ if ((MO.getType()) != MachineOperand::MO_Immediate) ++ return true; ++ O << "0x" << Twine::utohexstr(MO.getImm() & 0xffff); ++ return false; ++ case 'd': // decimal const int ++ if ((MO.getType()) != MachineOperand::MO_Immediate) ++ return true; ++ O << MO.getImm(); ++ return false; ++ case 'm': // decimal const int minus 1 ++ if ((MO.getType()) != MachineOperand::MO_Immediate) ++ return true; ++ O << MO.getImm() - 1; ++ return false; ++ case 'y': // exact log2 ++ if ((MO.getType()) != MachineOperand::MO_Immediate) ++ return true; ++ if (!isPowerOf2_64(MO.getImm())) ++ return true; ++ O << Log2_64(MO.getImm()); ++ return false; ++ case 'z': ++ // $r0 if zero, regular printing otherwise ++ if (MO.getType() == MachineOperand::MO_Immediate && MO.getImm() == 0) { ++ O << "$r0"; ++ return false; ++ } ++ // If not, call printOperand as normal. ++ break; ++ case 'D': // Second part of a double word register operand ++ case 'L': // Low order register of a double word register operand ++ case 'M': // High order register of a double word register operand ++ { ++ if (OpNum == 0) ++ return true; ++ const MachineOperand &FlagsOP = MI->getOperand(OpNum - 1); ++ if (!FlagsOP.isImm()) ++ return true; ++ unsigned Flags = FlagsOP.getImm(); ++ unsigned NumVals = InlineAsm::getNumOperandRegisters(Flags); ++ // Number of registers represented by this operand. We are looking ++ // for 2 for 32 bit mode and 1 for 64 bit mode. ++ if (NumVals != 2) { ++ if (Subtarget->is64Bit() && NumVals == 1 && MO.isReg()) { ++ unsigned Reg = MO.getReg(); ++ O << '$' << LoongArchInstPrinter::getRegisterName(Reg); ++ return false; ++ } ++ return true; ++ } ++ ++ unsigned RegOp = OpNum; ++ if (!Subtarget->is64Bit()){ ++ // Endianness reverses which register holds the high or low value ++ // between M and L. ++ switch(ExtraCode[0]) { ++ case 'M': ++ RegOp = OpNum + 1; ++ break; ++ case 'L': ++ RegOp = OpNum; ++ break; ++ case 'D': // Always the second part ++ RegOp = OpNum + 1; ++ } ++ if (RegOp >= MI->getNumOperands()) ++ return true; ++ const MachineOperand &MO = MI->getOperand(RegOp); ++ if (!MO.isReg()) ++ return true; ++ unsigned Reg = MO.getReg(); ++ O << '$' << LoongArchInstPrinter::getRegisterName(Reg); ++ return false; ++ } ++ break; ++ } ++ case 'w': ++ // Print LSX registers for the 'f' constraint ++ // In LLVM, the 'w' modifier doesn't need to do anything. ++ // We can just call printOperand as normal. ++ break; ++ case 'u': ++ // Print LASX registers for the 'f' constraint ++ // In LLVM, the 'u' modifier doesn't need to do anything. ++ // We can just call printOperand as normal. ++ break; ++ } ++ } ++ ++ printOperand(MI, OpNum, O); ++ return false; ++} ++ ++bool LoongArchAsmPrinter::PrintAsmMemoryOperand(const MachineInstr *MI, ++ unsigned OpNum, ++ const char *ExtraCode, ++ raw_ostream &O) { ++ assert(OpNum + 1 < MI->getNumOperands() && "Insufficient operands"); ++ const MachineOperand &BaseMO = MI->getOperand(OpNum); ++ const MachineOperand &OffsetMO = MI->getOperand(OpNum + 1); ++ assert(BaseMO.isReg() && "Unexpected base pointer for inline asm memory operand."); ++ assert(OffsetMO.isImm() && "Unexpected offset for inline asm memory operand."); ++ int Offset = OffsetMO.getImm(); ++ ++ // Currently we are expecting either no ExtraCode or 'D','M','L'. ++ if (ExtraCode) { ++ switch (ExtraCode[0]) { ++ case 'D': ++ case 'M': ++ Offset += 4; ++ break; ++ case 'L': ++ break; ++ default: ++ return true; // Unknown modifier. ++ } ++ } ++ ++ O << "$" << LoongArchInstPrinter::getRegisterName(BaseMO.getReg()) << ", " << Offset; ++ ++ return false; ++} ++ ++void LoongArchAsmPrinter::printOperand(const MachineInstr *MI, int opNum, ++ raw_ostream &O) { ++ const MachineOperand &MO = MI->getOperand(opNum); ++ ++ switch (MO.getType()) { ++ case MachineOperand::MO_Register: ++ O << '$' ++ << StringRef(LoongArchInstPrinter::getRegisterName(MO.getReg())).lower(); ++ break; ++ ++ case MachineOperand::MO_Immediate: ++ O << MO.getImm(); ++ break; ++ ++ case MachineOperand::MO_MachineBasicBlock: ++ MO.getMBB()->getSymbol()->print(O, MAI); ++ return; ++ ++ case MachineOperand::MO_GlobalAddress: ++ getSymbol(MO.getGlobal())->print(O, MAI); ++ break; ++ ++ case MachineOperand::MO_BlockAddress: { ++ MCSymbol *BA = GetBlockAddressSymbol(MO.getBlockAddress()); ++ O << BA->getName(); ++ break; ++ } ++ ++ case MachineOperand::MO_ConstantPoolIndex: ++ O << getDataLayout().getPrivateGlobalPrefix() << "CPI" ++ << getFunctionNumber() << "_" << MO.getIndex(); ++ if (MO.getOffset()) ++ O << "+" << MO.getOffset(); ++ break; ++ ++ default: ++ llvm_unreachable(""); ++ } ++} ++ ++void LoongArchAsmPrinter:: ++printMemOperand(const MachineInstr *MI, int opNum, raw_ostream &O) { ++ // Load/Store memory operands -- imm($reg) ++ // If PIC target the target is loaded as the ++ // pattern lw $25,%call16($28) ++ ++ printOperand(MI, opNum+1, O); ++ O << "("; ++ printOperand(MI, opNum, O); ++ O << ")"; ++} ++ ++void LoongArchAsmPrinter:: ++printMemOperandEA(const MachineInstr *MI, int opNum, raw_ostream &O) { ++ // when using stack locations for not load/store instructions ++ // print the same way as all normal 3 operand instructions. ++ printOperand(MI, opNum, O); ++ O << ", "; ++ printOperand(MI, opNum+1, O); ++} ++ ++void LoongArchAsmPrinter:: ++printRegisterList(const MachineInstr *MI, int opNum, raw_ostream &O) { ++ for (int i = opNum, e = MI->getNumOperands(); i != e; ++i) { ++ if (i != opNum) O << ", "; ++ printOperand(MI, i, O); ++ } ++} ++ ++void LoongArchAsmPrinter::EmitStartOfAsmFile(Module &M) { ++ LoongArchTargetStreamer &TS = getTargetStreamer(); ++ ++ // LoongArchTargetStreamer has an initialization order problem when emitting an ++ // object file directly (see LoongArchTargetELFStreamer for full details). Work ++ // around it by re-initializing the PIC state here. ++ TS.setPic(OutContext.getObjectFileInfo()->isPositionIndependent()); ++ ++ // Compute LoongArch architecture attributes based on the default subtarget ++ // that we'd have constructed. Module level directives aren't LTO ++ // clean anyhow. ++ // FIXME: For ifunc related functions we could iterate over and look ++ // for a feature string that doesn't match the default one. ++ const Triple &TT = TM.getTargetTriple(); ++ StringRef CPU = LoongArch_MC::selectLoongArchCPU(TT, TM.getTargetCPU()); ++ StringRef FS = TM.getTargetFeatureString(); ++ const LoongArchTargetMachine &MTM = static_cast(TM); ++ const LoongArchSubtarget STI(TT, CPU, FS, MTM, None); ++ ++ TS.updateABIInfo(STI); ++} ++ ++void LoongArchAsmPrinter::emitInlineAsmStart() const { ++ ++ OutStreamer->AddBlankLine(); ++} ++ ++void LoongArchAsmPrinter::emitInlineAsmEnd(const MCSubtargetInfo &StartInfo, ++ const MCSubtargetInfo *EndInfo) const { ++ OutStreamer->AddBlankLine(); ++} ++ ++void LoongArchAsmPrinter::EmitInstrReg(const MCSubtargetInfo &STI, unsigned Opcode, ++ unsigned Reg) { ++ MCInst I; ++ I.setOpcode(Opcode); ++ I.addOperand(MCOperand::createReg(Reg)); ++ OutStreamer->EmitInstruction(I, STI); ++} ++ ++void LoongArchAsmPrinter::EmitInstrRegReg(const MCSubtargetInfo &STI, ++ unsigned Opcode, unsigned Reg1, ++ unsigned Reg2) { ++ MCInst I; ++ // ++ // Because of the current td files for LoongArch32, the operands for MTC1 ++ // appear backwards from their normal assembly order. It's not a trivial ++ // change to fix this in the td file so we adjust for it here. ++ // ++ if (Opcode == LoongArch::MOVGR2FR_W) { ++ unsigned Temp = Reg1; ++ Reg1 = Reg2; ++ Reg2 = Temp; ++ } ++ I.setOpcode(Opcode); ++ I.addOperand(MCOperand::createReg(Reg1)); ++ I.addOperand(MCOperand::createReg(Reg2)); ++ OutStreamer->EmitInstruction(I, STI); ++} ++ ++void LoongArchAsmPrinter::EmitInstrRegRegReg(const MCSubtargetInfo &STI, ++ unsigned Opcode, unsigned Reg1, ++ unsigned Reg2, unsigned Reg3) { ++ MCInst I; ++ I.setOpcode(Opcode); ++ I.addOperand(MCOperand::createReg(Reg1)); ++ I.addOperand(MCOperand::createReg(Reg2)); ++ I.addOperand(MCOperand::createReg(Reg3)); ++ OutStreamer->EmitInstruction(I, STI); ++} ++ ++void LoongArchAsmPrinter::EmitMovFPIntPair(const MCSubtargetInfo &STI, ++ unsigned MovOpc, unsigned Reg1, ++ unsigned Reg2, unsigned FPReg1, ++ unsigned FPReg2, bool LE) { ++ if (!LE) { ++ unsigned temp = Reg1; ++ Reg1 = Reg2; ++ Reg2 = temp; ++ } ++ EmitInstrRegReg(STI, MovOpc, Reg1, FPReg1); ++ EmitInstrRegReg(STI, MovOpc, Reg2, FPReg2); ++} ++ ++void LoongArchAsmPrinter::EmitEndOfAsmFile(Module &M) { ++ // return to the text section ++ OutStreamer->SwitchSection(OutContext.getObjectFileInfo()->getTextSection()); ++} ++ ++void LoongArchAsmPrinter::EmitSled(const MachineInstr &MI, SledKind Kind) { ++ const uint8_t NoopsInSledCount = 11; ++ // For mips32 we want to emit the following pattern: ++ // ++ // .Lxray_sled_N: ++ // ALIGN ++ // B .tmpN ++ // 11 NOP instructions (44 bytes) ++ // .tmpN ++ // ++ // We need the 44 bytes (11 instructions) because at runtime, we'd ++ // be patching over the full 48 bytes (12 instructions) with the following ++ // pattern: ++ // ++ // addi.d sp,sp, -16 ;create stack frame ++ // st.d ra, sp, 8 ;save return address ++ // lu12i.w t0,%%abs_hi20(__xray_FunctionEntry/Exit) ++ // ori t0,t0,%%abs_lo12(__xray_FunctionEntry/Exit) ++ // lu32i.d t0,%%abs64_lo20(__xray_FunctionEntry/Exit) ++ // lu52i.d t0,t0,%%abs64_hi12(__xray_FunctionEntry/Exit) ++ // lu12i.w t1,%%abs_hi20(function_id) ++ // ori t1,t1,%%abs_lo12(function_id) ;pass function id ++ // jirl ra, t0, 0 ;call Tracing hook ++ // ld.d ra, sp, 8 ;restore return address ++ // addi.d sp, sp, 16 ;delete stack frame ++ ++ OutStreamer->EmitCodeAlignment(4); ++ auto CurSled = OutContext.createTempSymbol("xray_sled_", true); ++ OutStreamer->EmitLabel(CurSled); ++ auto Target = OutContext.createTempSymbol(); ++ ++ // Emit "B .tmpN" instruction, which jumps over the nop sled to the actual ++ // start of function ++ const MCExpr *TargetExpr = MCSymbolRefExpr::create( ++ Target, MCSymbolRefExpr::VariantKind::VK_None, OutContext); ++ EmitToStreamer(*OutStreamer, MCInstBuilder(LoongArch::BEQ) ++ .addReg(LoongArch::ZERO) ++ .addReg(LoongArch::ZERO) ++ .addExpr(TargetExpr)); ++ ++ for (int8_t I = 0; I < NoopsInSledCount; I++) ++ EmitToStreamer(*OutStreamer, MCInstBuilder(LoongArch::ANDI) ++ .addReg(LoongArch::ZERO) ++ .addReg(LoongArch::ZERO) ++ .addImm(0)); ++ ++ OutStreamer->EmitLabel(Target); ++ recordSled(CurSled, MI, Kind, 2); ++} ++ ++void LoongArchAsmPrinter::LowerPATCHABLE_FUNCTION_ENTER(const MachineInstr &MI) { ++ EmitSled(MI, SledKind::FUNCTION_ENTER); ++} ++ ++void LoongArchAsmPrinter::LowerPATCHABLE_FUNCTION_EXIT(const MachineInstr &MI) { ++ EmitSled(MI, SledKind::FUNCTION_EXIT); ++} ++ ++void LoongArchAsmPrinter::LowerPATCHABLE_TAIL_CALL(const MachineInstr &MI) { ++ EmitSled(MI, SledKind::TAIL_CALL); ++} ++ ++void LoongArchAsmPrinter::PrintDebugValueComment(const MachineInstr *MI, ++ raw_ostream &OS) { ++ // TODO: implement ++} ++ ++bool LoongArchAsmPrinter::isLongBranchPseudo(int Opcode) const { ++ return (Opcode == LoongArch::LONG_BRANCH_ADDIW ++ || Opcode == LoongArch::LONG_BRANCH_ADDIW2Op ++ || Opcode == LoongArch::LONG_BRANCH_ADDID ++ || Opcode == LoongArch::LONG_BRANCH_ADDID2Op ++ || Opcode == LoongArch::LONG_BRANCH_PCADDU12I); ++} ++ ++// Force static initialization. ++extern "C" LLVM_EXTERNAL_VISIBILITY void LLVMInitializeLoongArchAsmPrinter() { ++ RegisterAsmPrinter X(getTheLoongArch32Target()); ++ RegisterAsmPrinter A(getTheLoongArch64Target()); ++} +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchAsmPrinter.h b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchAsmPrinter.h +new file mode 100644 +index 00000000000..e73d06bdc6e +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchAsmPrinter.h +@@ -0,0 +1,138 @@ ++//===- LoongArchAsmPrinter.h - LoongArch LLVM Assembly Printer -----------*- C++ -*--===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++// ++// LoongArch Assembly printer class. ++// ++//===----------------------------------------------------------------------===// ++ ++#ifndef LLVM_LIB_TARGET_LOONGARCH_LOONGARCHASMPRINTER_H ++#define LLVM_LIB_TARGET_LOONGARCH_LOONGARCHASMPRINTER_H ++ ++#include "LoongArchMCInstLower.h" ++#include "LoongArchSubtarget.h" ++#include "llvm/CodeGen/AsmPrinter.h" ++#include "llvm/MC/MCStreamer.h" ++#include "llvm/Support/Compiler.h" ++#include ++#include ++#include ++ ++namespace llvm { ++ ++class MCOperand; ++class MCSubtargetInfo; ++class MCSymbol; ++class MachineBasicBlock; ++class MachineConstantPool; ++class MachineFunction; ++class MachineInstr; ++class MachineOperand; ++class LoongArchFunctionInfo; ++class LoongArchTargetStreamer; ++class Module; ++class raw_ostream; ++class TargetMachine; ++ ++class LLVM_LIBRARY_VISIBILITY LoongArchAsmPrinter : public AsmPrinter { ++ LoongArchTargetStreamer &getTargetStreamer() const; ++ ++ void EmitInstrWithMacroNoAT(const MachineInstr *MI); ++ ++ //===------------------------------------------------------------------===// ++ // XRay implementation ++ //===------------------------------------------------------------------===// ++ ++public: ++ // XRay-specific lowering for LoongArch. ++ void LowerPATCHABLE_FUNCTION_ENTER(const MachineInstr &MI); ++ void LowerPATCHABLE_FUNCTION_EXIT(const MachineInstr &MI); ++ void LowerPATCHABLE_TAIL_CALL(const MachineInstr &MI); ++ ++private: ++ /// MCP - Keep a pointer to constantpool entries of the current ++ /// MachineFunction. ++ const MachineConstantPool *MCP = nullptr; ++ ++ /// InConstantPool - Maintain state when emitting a sequence of constant ++ /// pool entries so we can properly mark them as data regions. ++ bool InConstantPool = false; ++ ++ void EmitSled(const MachineInstr &MI, SledKind Kind); ++ ++ // tblgen'erated function. ++ bool emitPseudoExpansionLowering(MCStreamer &OutStreamer, ++ const MachineInstr *MI); ++ ++ // Emit PseudoReturn, PseudoReturn64, PseudoIndirectBranch, ++ // and PseudoIndirectBranch64 as a JIRL as appropriate ++ // for the target. ++ void emitPseudoIndirectBranch(MCStreamer &OutStreamer, ++ const MachineInstr *MI); ++ ++ void emitPseudoTailBranch(MCStreamer &OutStreamer, ++ const MachineInstr *MI); ++ ++ // lowerOperand - Convert a MachineOperand into the equivalent MCOperand. ++ bool lowerOperand(const MachineOperand &MO, MCOperand &MCOp); ++ ++ void emitInlineAsmStart() const override; ++ ++ void emitInlineAsmEnd(const MCSubtargetInfo &StartInfo, ++ const MCSubtargetInfo *EndInfo) const override; ++ ++ void EmitInstrReg(const MCSubtargetInfo &STI, unsigned Opcode, unsigned Reg); ++ ++ void EmitInstrRegReg(const MCSubtargetInfo &STI, unsigned Opcode, ++ unsigned Reg1, unsigned Reg2); ++ ++ void EmitInstrRegRegReg(const MCSubtargetInfo &STI, unsigned Opcode, ++ unsigned Reg1, unsigned Reg2, unsigned Reg3); ++ ++ void EmitMovFPIntPair(const MCSubtargetInfo &STI, unsigned MovOpc, ++ unsigned Reg1, unsigned Reg2, unsigned FPReg1, ++ unsigned FPReg2, bool LE); ++ ++ bool isLongBranchPseudo(int Opcode) const; ++ ++public: ++ const LoongArchSubtarget *Subtarget; ++ const LoongArchFunctionInfo *LoongArchFI; ++ LoongArchMCInstLower MCInstLowering; ++ ++ explicit LoongArchAsmPrinter(TargetMachine &TM, ++ std::unique_ptr Streamer) ++ : AsmPrinter(TM, std::move(Streamer)), MCInstLowering(*this) {} ++ ++ StringRef getPassName() const override { return "LoongArch Assembly Printer"; } ++ ++ bool runOnMachineFunction(MachineFunction &MF) override; ++ ++ void EmitInstruction(const MachineInstr *MI) override; ++ const char *getCurrentABIString() const; ++ void EmitFunctionEntryLabel() override; ++ void EmitFunctionBodyStart() override; ++ void EmitFunctionBodyEnd() override; ++ void EmitBasicBlockEnd(const MachineBasicBlock &MBB) override; ++ bool isBlockOnlyReachableByFallthrough( ++ const MachineBasicBlock* MBB) const override; ++ bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo, ++ const char *ExtraCode, raw_ostream &O) override; ++ bool PrintAsmMemoryOperand(const MachineInstr *MI, unsigned OpNum, ++ const char *ExtraCode, raw_ostream &O) override; ++ void printOperand(const MachineInstr *MI, int opNum, raw_ostream &O); ++ void printMemOperand(const MachineInstr *MI, int opNum, raw_ostream &O); ++ void printMemOperandEA(const MachineInstr *MI, int opNum, raw_ostream &O); ++ void printRegisterList(const MachineInstr *MI, int opNum, raw_ostream &O); ++ void EmitStartOfAsmFile(Module &M) override; ++ void EmitEndOfAsmFile(Module &M) override; ++ void PrintDebugValueComment(const MachineInstr *MI, raw_ostream &OS); ++}; ++ ++} // end namespace llvm ++ ++#endif // LLVM_LIB_TARGET_LOONGARCH_LOONGARCHASMPRINTER_H +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchCCState.cpp b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchCCState.cpp +new file mode 100644 +index 00000000000..6630ca7598a +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchCCState.cpp +@@ -0,0 +1,165 @@ ++//===---- LoongArchCCState.cpp - CCState with LoongArch specific extensions ---------===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++ ++#include "LoongArchCCState.h" ++#include "LoongArchSubtarget.h" ++#include "llvm/IR/Module.h" ++ ++using namespace llvm; ++ ++/// This function returns true if CallSym is a long double emulation routine. ++static bool isF128SoftLibCall(const char *CallSym) { ++ const char *const LibCalls[] = { ++ "__addtf3", "__divtf3", "__eqtf2", "__extenddftf2", ++ "__extendsftf2", "__fixtfdi", "__fixtfsi", "__fixtfti", ++ "__fixunstfdi", "__fixunstfsi", "__fixunstfti", "__floatditf", ++ "__floatsitf", "__floattitf", "__floatunditf", "__floatunsitf", ++ "__floatuntitf", "__getf2", "__gttf2", "__letf2", ++ "__lttf2", "__multf3", "__netf2", "__powitf2", ++ "__subtf3", "__trunctfdf2", "__trunctfsf2", "__unordtf2", ++ "ceill", "copysignl", "cosl", "exp2l", ++ "expl", "floorl", "fmal", "fmaxl", ++ "fmodl", "log10l", "log2l", "logl", ++ "nearbyintl", "powl", "rintl", "roundl", ++ "sinl", "sqrtl", "truncl"}; ++ ++ // Check that LibCalls is sorted alphabetically. ++ auto Comp = [](const char *S1, const char *S2) { return strcmp(S1, S2) < 0; }; ++ assert(std::is_sorted(std::begin(LibCalls), std::end(LibCalls), Comp)); ++ return std::binary_search(std::begin(LibCalls), std::end(LibCalls), ++ CallSym, Comp); ++} ++ ++/// This function returns true if Ty is fp128, {f128} or i128 which was ++/// originally a fp128. ++static bool originalTypeIsF128(const Type *Ty, const char *Func) { ++ if (Ty->isFP128Ty()) ++ return true; ++ ++ if (Ty->isStructTy() && Ty->getStructNumElements() == 1 && ++ Ty->getStructElementType(0)->isFP128Ty()) ++ return true; ++ ++ // If the Ty is i128 and the function being called is a long double emulation ++ // routine, then the original type is f128. ++ return (Func && Ty->isIntegerTy(128) && isF128SoftLibCall(Func)); ++} ++ ++/// Return true if the original type was vXfXX. ++static bool originalEVTTypeIsVectorFloat(EVT Ty) { ++ if (Ty.isVector() && Ty.getVectorElementType().isFloatingPoint()) ++ return true; ++ ++ return false; ++} ++ ++/// Return true if the original type was vXfXX / vXfXX. ++static bool originalTypeIsVectorFloat(const Type * Ty) { ++ if (Ty->isVectorTy() && Ty->isFPOrFPVectorTy()) ++ return true; ++ ++ return false; ++} ++ ++LoongArchCCState::SpecialCallingConvType ++LoongArchCCState::getSpecialCallingConvForCallee(const SDNode *Callee, ++ const LoongArchSubtarget &Subtarget) { ++ LoongArchCCState::SpecialCallingConvType SpecialCallingConv = NoSpecialCallingConv; ++ return SpecialCallingConv; ++} ++ ++void LoongArchCCState::PreAnalyzeCallResultForF128( ++ const SmallVectorImpl &Ins, ++ const Type *RetTy, const char *Call) { ++ for (unsigned i = 0; i < Ins.size(); ++i) { ++ OriginalArgWasF128.push_back( ++ originalTypeIsF128(RetTy, Call)); ++ OriginalArgWasFloat.push_back(RetTy->isFloatingPointTy()); ++ } ++} ++ ++/// Identify lowered values that originated from f128 or float arguments and ++/// record this for use by RetCC_LoongArchLP64LPX32. ++void LoongArchCCState::PreAnalyzeReturnForF128( ++ const SmallVectorImpl &Outs) { ++ const MachineFunction &MF = getMachineFunction(); ++ for (unsigned i = 0; i < Outs.size(); ++i) { ++ OriginalArgWasF128.push_back( ++ originalTypeIsF128(MF.getFunction().getReturnType(), nullptr)); ++ OriginalArgWasFloat.push_back( ++ MF.getFunction().getReturnType()->isFloatingPointTy()); ++ } ++} ++ ++/// Identify lower values that originated from vXfXX and record ++/// this. ++void LoongArchCCState::PreAnalyzeCallResultForVectorFloat( ++ const SmallVectorImpl &Ins, const Type *RetTy) { ++ for (unsigned i = 0; i < Ins.size(); ++i) { ++ OriginalRetWasFloatVector.push_back(originalTypeIsVectorFloat(RetTy)); ++ } ++} ++ ++/// Identify lowered values that originated from vXfXX arguments and record ++/// this. ++void LoongArchCCState::PreAnalyzeReturnForVectorFloat( ++ const SmallVectorImpl &Outs) { ++ for (unsigned i = 0; i < Outs.size(); ++i) { ++ ISD::OutputArg Out = Outs[i]; ++ OriginalRetWasFloatVector.push_back( ++ originalEVTTypeIsVectorFloat(Out.ArgVT)); ++ } ++} ++ ++/// Identify lowered values that originated from f128, float and sret to vXfXX ++/// arguments and record this. ++void LoongArchCCState::PreAnalyzeCallOperands( ++ const SmallVectorImpl &Outs, ++ std::vector &FuncArgs, ++ const char *Func) { ++ for (unsigned i = 0; i < Outs.size(); ++i) { ++ TargetLowering::ArgListEntry FuncArg = FuncArgs[Outs[i].OrigArgIndex]; ++ ++ OriginalArgWasF128.push_back(originalTypeIsF128(FuncArg.Ty, Func)); ++ OriginalArgWasFloat.push_back(FuncArg.Ty->isFloatingPointTy()); ++ OriginalArgWasFloatVector.push_back(FuncArg.Ty->isVectorTy()); ++ CallOperandIsFixed.push_back(Outs[i].IsFixed); ++ } ++} ++ ++/// Identify lowered values that originated from f128, float and vXfXX arguments ++/// and record this. ++void LoongArchCCState::PreAnalyzeFormalArgumentsForF128( ++ const SmallVectorImpl &Ins) { ++ const MachineFunction &MF = getMachineFunction(); ++ for (unsigned i = 0; i < Ins.size(); ++i) { ++ Function::const_arg_iterator FuncArg = MF.getFunction().arg_begin(); ++ ++ // SRet arguments cannot originate from f128 or {f128} returns so we just ++ // push false. We have to handle this specially since SRet arguments ++ // aren't mapped to an original argument. ++ if (Ins[i].Flags.isSRet()) { ++ OriginalArgWasF128.push_back(false); ++ OriginalArgWasFloat.push_back(false); ++ OriginalArgWasFloatVector.push_back(false); ++ continue; ++ } ++ ++ assert(Ins[i].getOrigArgIndex() < MF.getFunction().arg_size()); ++ std::advance(FuncArg, Ins[i].getOrigArgIndex()); ++ ++ OriginalArgWasF128.push_back( ++ originalTypeIsF128(FuncArg->getType(), nullptr)); ++ OriginalArgWasFloat.push_back(FuncArg->getType()->isFloatingPointTy()); ++ ++ // The LoongArch vector ABI exhibits a corner case of sorts or quirk; if the ++ // first argument is actually an SRet pointer to a vector, then the next ++ // argument slot is $a2. ++ OriginalArgWasFloatVector.push_back(FuncArg->getType()->isVectorTy()); ++ } ++} +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchCCState.h b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchCCState.h +new file mode 100644 +index 00000000000..1c1a1446efb +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchCCState.h +@@ -0,0 +1,165 @@ ++//===---- LoongArchCCState.h - CCState with LoongArch specific extensions -----------===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++ ++#ifndef LoongArchCCSTATE_H ++#define LoongArchCCSTATE_H ++ ++#include "LoongArchISelLowering.h" ++#include "llvm/ADT/SmallVector.h" ++#include "llvm/CodeGen/CallingConvLower.h" ++ ++namespace llvm { ++class SDNode; ++class LoongArchSubtarget; ++ ++class LoongArchCCState : public CCState { ++public: ++ enum SpecialCallingConvType { NoSpecialCallingConv }; ++ ++ /// Determine the SpecialCallingConvType for the given callee ++ static SpecialCallingConvType ++ getSpecialCallingConvForCallee(const SDNode *Callee, ++ const LoongArchSubtarget &Subtarget); ++ ++private: ++ /// Identify lowered values that originated from f128 arguments and record ++ /// this for use by RetCC_LoongArchLP64LPX32. ++ void PreAnalyzeCallResultForF128(const SmallVectorImpl &Ins, ++ const Type *RetTy, const char * Func); ++ ++ /// Identify lowered values that originated from f128 arguments and record ++ /// this for use by RetCC_LoongArchLP64LPX32. ++ void PreAnalyzeReturnForF128(const SmallVectorImpl &Outs); ++ ++ /// Identify lowered values that originated from f128 arguments and record ++ /// this. ++ void ++ PreAnalyzeCallOperands(const SmallVectorImpl &Outs, ++ std::vector &FuncArgs, ++ const char *Func); ++ ++ /// Identify lowered values that originated from f128 arguments and record ++ /// this for use by RetCC_LoongArchLP64LPX32. ++ void ++ PreAnalyzeFormalArgumentsForF128(const SmallVectorImpl &Ins); ++ ++ void ++ PreAnalyzeCallResultForVectorFloat(const SmallVectorImpl &Ins, ++ const Type *RetTy); ++ ++ void PreAnalyzeFormalArgumentsForVectorFloat( ++ const SmallVectorImpl &Ins); ++ ++ void ++ PreAnalyzeReturnForVectorFloat(const SmallVectorImpl &Outs); ++ ++ /// Records whether the value has been lowered from an f128. ++ SmallVector OriginalArgWasF128; ++ ++ /// Records whether the value has been lowered from float. ++ SmallVector OriginalArgWasFloat; ++ ++ /// Records whether the value has been lowered from a floating point vector. ++ SmallVector OriginalArgWasFloatVector; ++ ++ /// Records whether the return value has been lowered from a floating point ++ /// vector. ++ SmallVector OriginalRetWasFloatVector; ++ ++ /// Records whether the value was a fixed argument. ++ /// See ISD::OutputArg::IsFixed, ++ SmallVector CallOperandIsFixed; ++ ++ // FIXME: This should probably be a fully fledged calling convention. ++ SpecialCallingConvType SpecialCallingConv; ++ ++public: ++ LoongArchCCState(CallingConv::ID CC, bool isVarArg, MachineFunction &MF, ++ SmallVectorImpl &locs, LLVMContext &C, ++ SpecialCallingConvType SpecialCC = NoSpecialCallingConv) ++ : CCState(CC, isVarArg, MF, locs, C), SpecialCallingConv(SpecialCC) {} ++ ++ void ++ AnalyzeCallOperands(const SmallVectorImpl &Outs, ++ CCAssignFn Fn, ++ std::vector &FuncArgs, ++ const char *Func) { ++ PreAnalyzeCallOperands(Outs, FuncArgs, Func); ++ CCState::AnalyzeCallOperands(Outs, Fn); ++ OriginalArgWasF128.clear(); ++ OriginalArgWasFloat.clear(); ++ OriginalArgWasFloatVector.clear(); ++ CallOperandIsFixed.clear(); ++ } ++ ++ // The AnalyzeCallOperands in the base class is not usable since we must ++ // provide a means of accessing ArgListEntry::IsFixed. Delete them from this ++ // class. This doesn't stop them being used via the base class though. ++ void AnalyzeCallOperands(const SmallVectorImpl &Outs, ++ CCAssignFn Fn) = delete; ++ void AnalyzeCallOperands(const SmallVectorImpl &Outs, ++ SmallVectorImpl &Flags, ++ CCAssignFn Fn) = delete; ++ ++ void AnalyzeFormalArguments(const SmallVectorImpl &Ins, ++ CCAssignFn Fn) { ++ PreAnalyzeFormalArgumentsForF128(Ins); ++ CCState::AnalyzeFormalArguments(Ins, Fn); ++ OriginalArgWasFloat.clear(); ++ OriginalArgWasF128.clear(); ++ OriginalArgWasFloatVector.clear(); ++ } ++ ++ void AnalyzeCallResult(const SmallVectorImpl &Ins, ++ CCAssignFn Fn, const Type *RetTy, ++ const char *Func) { ++ PreAnalyzeCallResultForF128(Ins, RetTy, Func); ++ PreAnalyzeCallResultForVectorFloat(Ins, RetTy); ++ CCState::AnalyzeCallResult(Ins, Fn); ++ OriginalArgWasFloat.clear(); ++ OriginalArgWasF128.clear(); ++ OriginalArgWasFloatVector.clear(); ++ } ++ ++ void AnalyzeReturn(const SmallVectorImpl &Outs, ++ CCAssignFn Fn) { ++ PreAnalyzeReturnForF128(Outs); ++ PreAnalyzeReturnForVectorFloat(Outs); ++ CCState::AnalyzeReturn(Outs, Fn); ++ OriginalArgWasFloat.clear(); ++ OriginalArgWasF128.clear(); ++ OriginalArgWasFloatVector.clear(); ++ } ++ ++ bool CheckReturn(const SmallVectorImpl &ArgsFlags, ++ CCAssignFn Fn) { ++ PreAnalyzeReturnForF128(ArgsFlags); ++ PreAnalyzeReturnForVectorFloat(ArgsFlags); ++ bool Return = CCState::CheckReturn(ArgsFlags, Fn); ++ OriginalArgWasFloat.clear(); ++ OriginalArgWasF128.clear(); ++ OriginalArgWasFloatVector.clear(); ++ return Return; ++ } ++ ++ bool WasOriginalArgF128(unsigned ValNo) { return OriginalArgWasF128[ValNo]; } ++ bool WasOriginalArgFloat(unsigned ValNo) { ++ return OriginalArgWasFloat[ValNo]; ++ } ++ bool WasOriginalArgVectorFloat(unsigned ValNo) const { ++ return OriginalArgWasFloatVector[ValNo]; ++ } ++ bool WasOriginalRetVectorFloat(unsigned ValNo) const { ++ return OriginalRetWasFloatVector[ValNo]; ++ } ++ bool IsCallOperandFixed(unsigned ValNo) { return CallOperandIsFixed[ValNo]; } ++ SpecialCallingConvType getSpecialCallingConv() { return SpecialCallingConv; } ++}; ++} ++ ++#endif +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchCallingConv.td b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchCallingConv.td +new file mode 100644 +index 00000000000..e8564e85bb0 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchCallingConv.td +@@ -0,0 +1,310 @@ ++//===-- LoongArchCallingConv.td - Calling Conventions for LoongArch --*- tablegen -*-===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++// This describes the calling conventions for LoongArch architecture. ++//===----------------------------------------------------------------------===// ++ ++/// CCIfSubtarget - Match if the current subtarget has a feature F. ++class CCIfSubtarget ++ : CCIf" ++ "(State.getMachineFunction().getSubtarget()).", ++ F), ++ A>; ++ ++// The inverse of CCIfSubtarget ++class CCIfSubtargetNot : CCIfSubtarget; ++ ++/// Match if the original argument (before lowering) was a float. ++/// For example, this is true for i32's that were lowered from soft-float. ++class CCIfOrigArgWasNotFloat ++ : CCIf<"!static_cast(&State)->WasOriginalArgFloat(ValNo)", ++ A>; ++ ++/// Match if the original argument (before lowering) was a 128-bit float (i.e. ++/// long double). ++class CCIfOrigArgWasF128 ++ : CCIf<"static_cast(&State)->WasOriginalArgF128(ValNo)", A>; ++ ++/// Match if this specific argument is a vararg. ++/// This is slightly different fro CCIfIsVarArg which matches if any argument is ++/// a vararg. ++class CCIfArgIsVarArg ++ : CCIf<"!static_cast(&State)->IsCallOperandFixed(ValNo)", A>; ++ ++/// Match if the return was a floating point vector. ++class CCIfOrigArgWasNotVectorFloat ++ : CCIf<"!static_cast(&State)" ++ "->WasOriginalRetVectorFloat(ValNo)", A>; ++ ++/// Match if the special calling conv is the specified value. ++class CCIfSpecialCallingConv ++ : CCIf<"static_cast(&State)->getSpecialCallingConv() == " ++ "LoongArchCCState::" # CC, A>; ++ ++// For soft-float, f128 values are returned in A0_64 rather than V1_64. ++def RetCC_F128SoftFloat : CallingConv<[ ++ CCAssignToReg<[A0_64, A1_64]> ++]>; ++ ++// ++// For hard-float, f128 values are returned as a pair of f64's rather than a ++// pair of i64's. ++def RetCC_F128HardFloat : CallingConv<[ ++ //CCBitConvertToType, ++ ++ // Contrary to the ABI documentation, a struct containing a long double is ++ // returned in $f0, and $f1 instead of the usual $f0, and $f2. This is to ++ // match the de facto ABI as implemented by GCC. ++ CCIfInReg>, ++ ++ CCAssignToReg<[A0_64, A1_64]> ++]>; ++ ++// Handle F128 specially since we can't identify the original type during the ++// tablegen-erated code. ++def RetCC_F128 : CallingConv<[ ++ CCIfSubtarget<"useSoftFloat()", ++ CCIfType<[i64], CCDelegateTo>>, ++ CCIfSubtargetNot<"useSoftFloat()", ++ CCIfType<[i64], CCDelegateTo>> ++]>; ++ ++//===----------------------------------------------------------------------===// ++// LoongArch LP32 Calling Convention ++//===----------------------------------------------------------------------===// ++ ++def CC_LoongArchLP32 : CallingConv<[ ++ // Promote i8/i16 arguments to i32. ++ CCIfType<[i1, i8, i16], CCPromoteToType>, ++ ++ // Integer values get stored in stack slots that are 4 bytes in ++ // size and 4-byte aligned. ++ CCIfType<[i32, f32], CCAssignToStack<4, 4>>, ++ ++ // Integer values get stored in stack slots that are 8 bytes in ++ // size and 8-byte aligned. ++ CCIfType<[f64], CCAssignToStack<8, 8>> ++]>; ++ ++// Only the return rules are defined here for LP32. The rules for argument ++// passing are defined in LoongArchISelLowering.cpp. ++def RetCC_LoongArchLP32 : CallingConv<[ ++ // Promote i1/i8/i16 return values to i32. ++ CCIfType<[i1, i8, i16], CCPromoteToType>, ++ ++ // i32 are returned in registers V0, V1, A0, A1, unless the original return ++ // type was a vector of floats. ++ CCIfOrigArgWasNotVectorFloat>>, ++ ++ // f32 are returned in registers F0, F2 ++ CCIfType<[f32], CCAssignToReg<[F0, F1]>>, ++ ++ // f64 arguments are returned in F0_64 and F2_64 in FP64bit mode or ++ // in F0 and F1 in FP32bit mode. ++ CCIfType<[f64], CCIfSubtarget<"isFP64bit()", CCAssignToReg<[F0_64, F1_64]>>> ++]>; ++ ++def CC_LoongArchLP32_FP32 : CustomCallingConv; ++def CC_LoongArchLP32_FP64 : CustomCallingConv; ++def CC_LoongArch_F128 : CustomCallingConv; ++ ++def CC_LoongArchLP32_FP : CallingConv<[ ++ CCIfSubtargetNot<"isFP64bit()", CCDelegateTo>, ++ CCIfSubtarget<"isFP64bit()", CCDelegateTo> ++]>; ++ ++//===----------------------------------------------------------------------===// ++// LoongArch LPX32/LP64 Calling Convention ++//===----------------------------------------------------------------------===// ++ ++def CC_LoongArchLP64LPX32_SoftFloat : CallingConv<[ ++ CCAssignToReg<[A0, A1, A2, A3, ++ A4, A5, A6, A7]>, ++ CCAssignToStack<4, 8> ++]>; ++ ++def CC_LoongArchLP64LPX32 : CallingConv<[ ++ ++ // All integers (except soft-float integers) are promoted to 64-bit. ++ CCIfType<[i8, i16, i32], CCIfOrigArgWasNotFloat>>, ++ ++ // The only i32's we have left are soft-float arguments. ++ CCIfSubtarget<"useSoftFloat()", CCIfType<[i32], CCDelegateTo>>, ++ ++ // Integer arguments are passed in integer registers. ++ //CCIfType<[i64], CCAssignToRegWithShadow<[A0_64, A1_64, A2_64, A3_64, ++ // A4_64, A5_64, A6_64, A7_64], ++ // [F0_64, F1_64, F2_64, F3_64, ++ // F4_64, F5_64, F6_64, F7_64]>>, ++ CCIfType<[i64], CCAssignToReg<[A0_64, A1_64, A2_64, A3_64, ++ A4_64, A5_64, A6_64, A7_64]>>, ++ ++ // f32 arguments are passed in single precision FP registers. ++ CCIfType<[f32], CCAssignToReg<[F0, F1, F2, F3, ++ F4, F5, F6, F7]>>, ++ ++ // f64 arguments are passed in double precision FP registers. ++ CCIfType<[f64], CCAssignToReg<[F0_64, F1_64, F2_64, F3_64, ++ F4_64, F5_64, F6_64, F7_64]>>, ++ ++ // others f32 arguments are passed in single precision FP registers. ++ CCIfType<[f32], CCAssignToReg<[A0, A1, A2, A3, A4, A5, A6, A7]>>, ++ ++ // others f64 arguments are passed in double precision FP registers. ++ CCIfType<[f64], CCAssignToReg<[A0_64, A1_64, A2_64, A3_64, ++ A4_64, A5_64, A6_64, A7_64]>>, ++ ++ CCIfSubtarget<"hasLSX()", ++ CCIfType<[v16i8, v8i16, v4i32, v2i64, v4f32, v2f64], ++ CCAssignToRegWithShadow<[VR0, VR1, VR2, VR3, VR4, VR5, VR6, VR7], ++ [A0_64, A1_64, A2_64, A3_64, ++ A4_64, A5_64, A6_64, A7_64]>>>, ++ CCIfSubtarget<"hasLASX()", ++ CCIfType<[v32i8, v16i16, v8i32, v4i64, v8f32, v4f64], ++ CCAssignToRegWithShadow<[XR0, XR1, XR2, XR3, XR4, XR5, XR6, XR7], ++ [A0_64, A1_64, A2_64, A3_64, ++ A4_64, A5_64, A6_64, A7_64]>>>, ++ ++ // All stack parameter slots become 64-bit doublewords and are 8-byte aligned. ++ CCIfType<[f32], CCAssignToStack<4, 8>>, ++ CCIfType<[i64, f64], CCAssignToStack<8, 8>>, ++ CCIfType<[v16i8, v8i16, v4i32, v2i64, v4f32, v2f64], ++ CCAssignToStack<16, 16>>, ++ CCIfType<[v32i8, v16i16, v8i32, v4i64, v8f32, v4f64], ++ CCAssignToStack<32, 32>> ++]>; ++ ++// LPX32/LP64 variable arguments. ++// All arguments are passed in integer registers. ++def CC_LoongArchLP64LPX32_VarArg : CallingConv<[ ++ // All integers are promoted to 64-bit. ++ CCIfType<[i8, i16, i32], CCPromoteToType>, ++ ++ CCIfType<[f32], CCAssignToReg<[A0, A1, A2, A3, A4, A5, A6, A7]>>, ++ ++ CCIfType<[i64], CCIfOrigArgWasF128>>, ++ ++ CCIfType<[i64, f64], CCAssignToReg<[A0_64, A1_64, A2_64, A3_64, ++ A4_64, A5_64, A6_64, A7_64]>>, ++ ++ // All stack parameter slots become 64-bit doublewords and are 8-byte aligned. ++ CCIfType<[f32], CCAssignToStack<4, 8>>, ++ CCIfType<[i64, f64], CCAssignToStack<8, 8>> ++]>; ++ ++def RetCC_LoongArchLP64LPX32 : CallingConv<[ ++ // f128 needs to be handled similarly to f32 and f64. However, f128 is not ++ // legal and is lowered to i128 which is further lowered to a pair of i64's. ++ // This presents us with a problem for the calling convention since hard-float ++ // still needs to pass them in FPU registers, and soft-float needs to use $v0, ++ // and $a0 instead of the usual $v0, and $v1. We therefore resort to a ++ // pre-analyze (see PreAnalyzeReturnForF128()) step to pass information on ++ // whether the result was originally an f128 into the tablegen-erated code. ++ // ++ // f128 should only occur for the LP64 ABI where long double is 128-bit. On ++ // LPX32, long double is equivalent to double. ++ CCIfType<[i64], CCIfOrigArgWasF128>>, ++ ++ CCIfType<[i8, i16, i32, i64], CCIfInReg>>, ++ ++ // i64 are returned in registers V0_64, V1_64 ++ CCIfType<[i64], CCAssignToReg<[A0_64, A1_64]>>, ++ ++ CCIfSubtarget<"hasLSX()", ++ CCIfType<[v16i8, v8i16, v4i32, v2i64, v4f32, v2f64], CCAssignToReg<[VR0]>>>, ++ ++ CCIfSubtarget<"hasLASX()", ++ CCIfType<[v32i8, v16i16, v8i32, v4i64, v8f32, v4f64], CCAssignToReg<[XR0]>>>, ++ ++ CCIfSubtarget<"hasLASX()", ++ CCIfType<[i64], CCAssignToReg<[A0_64, A1_64]>>>, ++ ++ // f32 are returned in registers F0, F2 ++ CCIfType<[f32], CCAssignToReg<[F0, F1]>>, ++ ++ // f64 are returned in registers D0, D2 ++ CCIfType<[f64], CCAssignToReg<[F0_64, F1_64]>> ++]>; ++ ++//===----------------------------------------------------------------------===// ++// LoongArch Calling Convention Dispatch ++//===----------------------------------------------------------------------===// ++ ++def RetCC_LoongArch : CallingConv<[ ++ CCIfSubtarget<"isABI_LPX32()", CCDelegateTo>, ++ CCIfSubtarget<"isABI_LP64()", CCDelegateTo>, ++ CCDelegateTo ++]>; ++ ++def CC_LoongArch_ByVal : CallingConv<[ ++ CCIfSubtarget<"isABI_LP32()", CCIfByVal>>, ++ CCIfByVal> ++]>; ++ ++def CC_LoongArch_FixedArg : CallingConv<[ ++ CCIfByVal>, ++ //CCIfByVal>>, ++ ++ // f128 needs to be handled similarly to f32 and f64 on hard-float. However, ++ // f128 is not legal and is lowered to i128 which is further lowered to a pair ++ // of i64's. ++ // This presents us with a problem for the calling convention since hard-float ++ // still needs to pass them in FPU registers. We therefore resort to a ++ // pre-analyze (see PreAnalyzeFormalArgsForF128()) step to pass information on ++ // whether the argument was originally an f128 into the tablegen-erated code. ++ // ++ // f128 should only occur for the LP64 ABI where long double is 128-bit. On ++ // LPX32, long double is equivalent to double. ++ CCIfType<[i64], ++ CCIfSubtargetNot<"useSoftFloat()", ++ CCIfOrigArgWasF128>>>, ++ ++ CCIfSubtarget<"isABI_LP32()", CCDelegateTo>, ++ CCDelegateTo ++]>; ++ ++def CC_LoongArch_VarArg : CallingConv<[ ++ CCIfByVal>, ++ ++ CCIfSubtarget<"isABI_LP32()", CCDelegateTo>, ++ CCDelegateTo ++]>; ++ ++def CC_LoongArch : CallingConv<[ ++ CCIfVarArg>>, ++ CCDelegateTo ++]>; ++ ++//===----------------------------------------------------------------------===// ++// Callee-saved register lists. ++//===----------------------------------------------------------------------===// ++ ++def CSR_SingleFloatOnly : CalleeSavedRegs<(add (sequence "F%u", 31, 24), RA, FP, ++ (sequence "S%u", 8, 0))>; ++ ++//def CSR_LP32_FPXX : CalleeSavedRegs<(add (sequence "D%u", 15, 10), RA, FP, ++// (sequence "S%u", 8, 0))> { ++// let OtherPreserved = (add (decimate (sequence "F%u", 30, 20), 2)); ++//} ++ ++def CSR_LP32 : CalleeSavedRegs<(add (sequence "F%u_64", 31, 24), RA, FP, ++ (sequence "S%u", 8, 0))>; ++ ++//def CSR_LP32_FP64 : ++// CalleeSavedRegs<(add (decimate (sequence "D%u_64", 30, 20), 2), RA, FP, ++// (sequence "S%u", 8, 0))>; ++ ++def CSR_LPX32 : CalleeSavedRegs<(add F20_64, F22_64, F24_64, F26_64, F28_64, ++ F30_64, RA_64, FP_64, ++ (sequence "S%u_64", 8, 0))>; ++ ++//def CSR_LP64 : CalleeSavedRegs<(add (sequence "D%u_64", 31, 24), RA_64, SP_64, FP_64, ++def CSR_LP64 : CalleeSavedRegs<(add (sequence "F%u_64", 31, 24), RA_64, FP_64, ++ (sequence "S%u_64", 8, 0))>; +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchExpandPseudo.cpp b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchExpandPseudo.cpp +new file mode 100644 +index 00000000000..0f33e1db616 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchExpandPseudo.cpp +@@ -0,0 +1,2471 @@ ++//===-- LoongArchExpandPseudoInsts.cpp - Expand pseudo instructions ------------===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++// ++// This file contains a pass that expands pseudo instructions into target ++// instructions to allow proper scheduling, if-conversion, and other late ++// optimizations. This pass should be run after register allocation but before ++// the post-regalloc scheduling pass. ++// ++// This is currently only used for expanding atomic pseudos after register ++// allocation. We do this to avoid the fast register allocator introducing ++// spills between ll and sc. These stores cause some LoongArch implementations to ++// abort the atomic RMW sequence. ++// ++//===----------------------------------------------------------------------===// ++ ++#include "LoongArch.h" ++#include "LoongArchInstrInfo.h" ++#include "LoongArchSubtarget.h" ++#include "MCTargetDesc/LoongArchMCTargetDesc.h" ++#include "llvm/CodeGen/LivePhysRegs.h" ++#include "llvm/CodeGen/MachineFunctionPass.h" ++#include "llvm/CodeGen/MachineInstrBuilder.h" ++ ++using namespace llvm; ++ ++#define DEBUG_TYPE "loongarch-pseudo" ++ ++namespace { ++ class LoongArchExpandPseudo : public MachineFunctionPass { ++ public: ++ static char ID; ++ LoongArchExpandPseudo() : MachineFunctionPass(ID) {} ++ ++ const LoongArchInstrInfo *TII; ++ const LoongArchSubtarget *STI; ++ ++ bool runOnMachineFunction(MachineFunction &Fn) override; ++ ++ MachineFunctionProperties getRequiredProperties() const override { ++ return MachineFunctionProperties().set( ++ MachineFunctionProperties::Property::NoVRegs); ++ } ++ ++ StringRef getPassName() const override { ++ return "LoongArch pseudo instruction expansion pass"; ++ } ++ ++ private: ++ bool expandAtomicCmpSwap(MachineBasicBlock &MBB, ++ MachineBasicBlock::iterator MBBI, ++ MachineBasicBlock::iterator &NextMBBI); ++ bool expandAtomicCmpSwapSubword(MachineBasicBlock &MBB, ++ MachineBasicBlock::iterator MBBI, ++ MachineBasicBlock::iterator &NextMBBI); ++ ++ bool expandAtomicBinOp(MachineBasicBlock &BB, ++ MachineBasicBlock::iterator I, ++ MachineBasicBlock::iterator &NMBBI, unsigned Size); ++ bool expandXINSERT_BOp(MachineBasicBlock &BB, MachineBasicBlock::iterator I, ++ MachineBasicBlock::iterator &NMBBI); ++ bool expandINSERT_HOp(MachineBasicBlock &BB, MachineBasicBlock::iterator I, ++ MachineBasicBlock::iterator &NMBBI); ++ bool expandXINSERT_FWOp(MachineBasicBlock &BB, ++ MachineBasicBlock::iterator I, ++ MachineBasicBlock::iterator &NMBBI); ++ bool expandAtomicBinOpSubword(MachineBasicBlock &BB, ++ MachineBasicBlock::iterator I, ++ MachineBasicBlock::iterator &NMBBI); ++ ++ bool expandPseudoCall(MachineBasicBlock &BB, ++ MachineBasicBlock::iterator I, ++ MachineBasicBlock::iterator &NMBBI); ++ bool expandPseudoTailCall(MachineBasicBlock &BB, ++ MachineBasicBlock::iterator I); ++ ++ bool expandPseudoTEQ(MachineBasicBlock &BB, ++ MachineBasicBlock::iterator I, ++ MachineBasicBlock::iterator &NMBBI); ++ ++ bool expandLoadAddr(MachineBasicBlock &BB, ++ MachineBasicBlock::iterator I, ++ MachineBasicBlock::iterator &NMBBI); ++ ++ bool expandMI(MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI, ++ MachineBasicBlock::iterator &NMBB); ++ bool expandMBB(MachineBasicBlock &MBB); ++ }; ++ char LoongArchExpandPseudo::ID = 0; ++} ++ ++static bool hasDbar(MachineBasicBlock *MBB) { ++ ++ for (MachineBasicBlock::iterator MBBb = MBB->begin(), MBBe = MBB->end(); ++ MBBb != MBBe; ++MBBb) { ++ if (MBBb->getOpcode() == LoongArch::DBAR) ++ return true; ++ if (MBBb->mayLoad() || MBBb->mayStore()) ++ break; ++ } ++ return false; ++} ++ ++bool LoongArchExpandPseudo::expandAtomicCmpSwapSubword( ++ MachineBasicBlock &BB, MachineBasicBlock::iterator I, ++ MachineBasicBlock::iterator &NMBBI) { ++ ++ MachineFunction *MF = BB.getParent(); ++ ++ DebugLoc DL = I->getDebugLoc(); ++ unsigned LL, SC; ++ unsigned ZERO = LoongArch::ZERO; ++ unsigned BNE = LoongArch::BNE32; ++ unsigned BEQ = LoongArch::BEQ32; ++ unsigned SEOp = ++ I->getOpcode() == LoongArch::ATOMIC_CMP_SWAP_I8_POSTRA ? LoongArch::EXT_W_B32 : LoongArch::EXT_W_H32; ++ ++ LL = LoongArch::LL_W; ++ SC = LoongArch::SC_W; ++ ++ unsigned Dest = I->getOperand(0).getReg(); ++ unsigned Ptr = I->getOperand(1).getReg(); ++ unsigned Mask = I->getOperand(2).getReg(); ++ unsigned ShiftCmpVal = I->getOperand(3).getReg(); ++ unsigned Mask2 = I->getOperand(4).getReg(); ++ unsigned ShiftNewVal = I->getOperand(5).getReg(); ++ unsigned ShiftAmnt = I->getOperand(6).getReg(); ++ unsigned Scratch = I->getOperand(7).getReg(); ++ unsigned Scratch2 = I->getOperand(8).getReg(); ++ ++ // insert new blocks after the current block ++ const BasicBlock *LLVM_BB = BB.getBasicBlock(); ++ MachineBasicBlock *loop1MBB = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineBasicBlock *loop2MBB = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineBasicBlock *sinkMBB = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineBasicBlock *exitMBB = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineFunction::iterator It = ++BB.getIterator(); ++ MF->insert(It, loop1MBB); ++ MF->insert(It, loop2MBB); ++ MF->insert(It, sinkMBB); ++ MF->insert(It, exitMBB); ++ ++ // Transfer the remainder of BB and its successor edges to exitMBB. ++ exitMBB->splice(exitMBB->begin(), &BB, ++ std::next(MachineBasicBlock::iterator(I)), BB.end()); ++ exitMBB->transferSuccessorsAndUpdatePHIs(&BB); ++ ++ // thisMBB: ++ // ... ++ // fallthrough --> loop1MBB ++ BB.addSuccessor(loop1MBB, BranchProbability::getOne()); ++ loop1MBB->addSuccessor(sinkMBB); ++ loop1MBB->addSuccessor(loop2MBB); ++ loop1MBB->normalizeSuccProbs(); ++ loop2MBB->addSuccessor(loop1MBB); ++ loop2MBB->addSuccessor(sinkMBB); ++ loop2MBB->normalizeSuccProbs(); ++ sinkMBB->addSuccessor(exitMBB, BranchProbability::getOne()); ++ ++ // loop1MBB: ++ // ll dest, 0(ptr) ++ // and Mask', dest, Mask ++ // bne Mask', ShiftCmpVal, exitMBB ++ BuildMI(loop1MBB, DL, TII->get(LL), Scratch).addReg(Ptr).addImm(0); ++ BuildMI(loop1MBB, DL, TII->get(LoongArch::AND32), Scratch2) ++ .addReg(Scratch) ++ .addReg(Mask); ++ BuildMI(loop1MBB, DL, TII->get(BNE)) ++ .addReg(Scratch2).addReg(ShiftCmpVal).addMBB(sinkMBB); ++ ++ // loop2MBB: ++ // and dest, dest, mask2 ++ // or dest, dest, ShiftNewVal ++ // sc dest, dest, 0(ptr) ++ // beq dest, $0, loop1MBB ++ BuildMI(loop2MBB, DL, TII->get(LoongArch::AND32), Scratch) ++ .addReg(Scratch, RegState::Kill) ++ .addReg(Mask2); ++ BuildMI(loop2MBB, DL, TII->get(LoongArch::OR32), Scratch) ++ .addReg(Scratch, RegState::Kill) ++ .addReg(ShiftNewVal); ++ BuildMI(loop2MBB, DL, TII->get(SC), Scratch) ++ .addReg(Scratch, RegState::Kill) ++ .addReg(Ptr) ++ .addImm(0); ++ BuildMI(loop2MBB, DL, TII->get(BEQ)) ++ .addReg(Scratch, RegState::Kill) ++ .addReg(ZERO) ++ .addMBB(loop1MBB); ++ ++ // sinkMBB: ++ // srl srlres, Mask', shiftamt ++ // sign_extend dest,srlres ++ BuildMI(sinkMBB, DL, TII->get(LoongArch::SRL_W), Dest) ++ .addReg(Scratch2) ++ .addReg(ShiftAmnt); ++ ++ BuildMI(sinkMBB, DL, TII->get(SEOp), Dest).addReg(Dest); ++ ++ if (!hasDbar(sinkMBB)) { ++ MachineBasicBlock::iterator Pos = sinkMBB->begin(); ++ BuildMI(*sinkMBB, Pos, DL, TII->get(LoongArch::DBAR)).addImm(DBAR_HINT); ++ } ++ ++ LivePhysRegs LiveRegs; ++ computeAndAddLiveIns(LiveRegs, *loop1MBB); ++ computeAndAddLiveIns(LiveRegs, *loop2MBB); ++ computeAndAddLiveIns(LiveRegs, *sinkMBB); ++ computeAndAddLiveIns(LiveRegs, *exitMBB); ++ ++ NMBBI = BB.end(); ++ I->eraseFromParent(); ++ return true; ++} ++ ++bool LoongArchExpandPseudo::expandAtomicCmpSwap(MachineBasicBlock &BB, ++ MachineBasicBlock::iterator I, ++ MachineBasicBlock::iterator &NMBBI) { ++ ++ const unsigned Size = ++ I->getOpcode() == LoongArch::ATOMIC_CMP_SWAP_I32_POSTRA ? 4 : 8; ++ MachineFunction *MF = BB.getParent(); ++ ++ DebugLoc DL = I->getDebugLoc(); ++ ++ unsigned LL, SC, ZERO, BNE, BEQ, MOVE; ++ ++ if (Size == 4) { ++ LL = LoongArch::LL_W; ++ SC = LoongArch::SC_W; ++ BNE = LoongArch::BNE32; ++ BEQ = LoongArch::BEQ32; ++ ++ ZERO = LoongArch::ZERO; ++ MOVE = LoongArch::OR32; ++ } else { ++ LL = LoongArch::LL_D; ++ SC = LoongArch::SC_D; ++ ZERO = LoongArch::ZERO_64; ++ BNE = LoongArch::BNE; ++ BEQ = LoongArch::BEQ; ++ MOVE = LoongArch::OR; ++ } ++ ++ unsigned Dest = I->getOperand(0).getReg(); ++ unsigned Ptr = I->getOperand(1).getReg(); ++ unsigned OldVal = I->getOperand(2).getReg(); ++ unsigned NewVal = I->getOperand(3).getReg(); ++ unsigned Scratch = I->getOperand(4).getReg(); ++ ++ // insert new blocks after the current block ++ const BasicBlock *LLVM_BB = BB.getBasicBlock(); ++ MachineBasicBlock *loop1MBB = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineBasicBlock *loop2MBB = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineBasicBlock *exitMBB = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineFunction::iterator It = ++BB.getIterator(); ++ MF->insert(It, loop1MBB); ++ MF->insert(It, loop2MBB); ++ MF->insert(It, exitMBB); ++ ++ // Transfer the remainder of BB and its successor edges to exitMBB. ++ exitMBB->splice(exitMBB->begin(), &BB, ++ std::next(MachineBasicBlock::iterator(I)), BB.end()); ++ exitMBB->transferSuccessorsAndUpdatePHIs(&BB); ++ ++ // thisMBB: ++ // ... ++ // fallthrough --> loop1MBB ++ BB.addSuccessor(loop1MBB, BranchProbability::getOne()); ++ loop1MBB->addSuccessor(exitMBB); ++ loop1MBB->addSuccessor(loop2MBB); ++ loop1MBB->normalizeSuccProbs(); ++ loop2MBB->addSuccessor(loop1MBB); ++ loop2MBB->addSuccessor(exitMBB); ++ loop2MBB->normalizeSuccProbs(); ++ ++ // loop1MBB: ++ // ll dest, 0(ptr) ++ // bne dest, oldval, exitMBB ++ BuildMI(loop1MBB, DL, TII->get(LL), Dest).addReg(Ptr).addImm(0); ++ BuildMI(loop1MBB, DL, TII->get(BNE)) ++ .addReg(Dest, RegState::Kill).addReg(OldVal).addMBB(exitMBB); ++ ++ // loop2MBB: ++ // move scratch, NewVal ++ // sc Scratch, Scratch, 0(ptr) ++ // beq Scratch, $0, loop1MBB ++ BuildMI(loop2MBB, DL, TII->get(MOVE), Scratch).addReg(NewVal).addReg(ZERO); ++ BuildMI(loop2MBB, DL, TII->get(SC), Scratch) ++ .addReg(Scratch).addReg(Ptr).addImm(0); ++ BuildMI(loop2MBB, DL, TII->get(BEQ)) ++ .addReg(Scratch, RegState::Kill).addReg(ZERO).addMBB(loop1MBB); ++ ++ if (!hasDbar(exitMBB)) { ++ MachineBasicBlock::iterator Pos = exitMBB->begin(); ++ BuildMI(*exitMBB, Pos, DL, TII->get(LoongArch::DBAR)).addImm(DBAR_HINT); ++ } ++ ++ LivePhysRegs LiveRegs; ++ computeAndAddLiveIns(LiveRegs, *loop1MBB); ++ computeAndAddLiveIns(LiveRegs, *loop2MBB); ++ computeAndAddLiveIns(LiveRegs, *exitMBB); ++ ++ NMBBI = BB.end(); ++ I->eraseFromParent(); ++ return true; ++} ++ ++bool LoongArchExpandPseudo::expandXINSERT_FWOp( ++ MachineBasicBlock &BB, MachineBasicBlock::iterator I, ++ MachineBasicBlock::iterator &NMBBI) { ++ ++ MachineFunction *MF = BB.getParent(); ++ ++ DebugLoc DL = I->getDebugLoc(); ++ ++ unsigned isGP64 = 0; ++ switch (I->getOpcode()) { ++ case LoongArch::XINSERT_FW_VIDX64_PSEUDO_POSTRA: ++ isGP64 = 1; ++ break; ++ case LoongArch::XINSERT_FW_VIDX_PSEUDO_POSTRA: ++ break; ++ default: ++ llvm_unreachable("Unknown subword vector pseudo for expansion!"); ++ } ++ ++ unsigned Dest = I->getOperand(0).getReg(); ++ unsigned SrcVecReg = I->getOperand(1).getReg(); ++ unsigned LaneReg = I->getOperand(2).getReg(); ++ unsigned SrcValReg = I->getOperand(3).getReg(); ++ ++ unsigned Dsttmp = I->getOperand(4).getReg(); ++ unsigned RI = I->getOperand(5).getReg(); ++ unsigned RJ = I->getOperand(6).getReg(); ++ Dsttmp = SrcVecReg; ++ ++ const BasicBlock *LLVM_BB = BB.getBasicBlock(); ++ MachineBasicBlock *blocks[11]; ++ MachineFunction::iterator It = ++BB.getIterator(); ++ for (int i = 0; i < 11; i++) { ++ blocks[i] = MF->CreateMachineBasicBlock(LLVM_BB); ++ MF->insert(It, blocks[i]); ++ } ++ ++ MachineBasicBlock *mainMBB = blocks[0]; ++ MachineBasicBlock *FirstMBB = blocks[1]; ++ MachineBasicBlock *sinkMBB = blocks[9]; ++ MachineBasicBlock *exitMBB = blocks[10]; ++ ++ exitMBB->splice(exitMBB->begin(), &BB, std::next(I), BB.end()); ++ exitMBB->transferSuccessorsAndUpdatePHIs(&BB); ++ ++ BB.addSuccessor(mainMBB, BranchProbability::getOne()); ++ for (int i = 1; i < 9; i++) { ++ mainMBB->addSuccessor(blocks[i]); ++ blocks[i]->addSuccessor(sinkMBB); ++ } ++ ++ unsigned ADDI, BLT, ZERO; ++ ADDI = isGP64 ? LoongArch::ADDI_D : LoongArch::ADDI_W; ++ BLT = isGP64 ? LoongArch::BLT : LoongArch::BLT32; ++ ZERO = isGP64 ? LoongArch::ZERO_64 : LoongArch::ZERO; ++ ++ for (int i = 1; i < 8; i++) { ++ BuildMI(mainMBB, DL, TII->get(ADDI), RI).addReg(ZERO).addImm(i); ++ BuildMI(mainMBB, DL, TII->get(BLT)) ++ .addReg(LaneReg) ++ .addReg(RI) ++ .addMBB(blocks[i + 1]); ++ } ++ ++ BuildMI(mainMBB, DL, TII->get(LoongArch::B32)).addMBB(FirstMBB); ++ ++ BuildMI(FirstMBB, DL, TII->get(LoongArch::XVINSGR2VR_W), Dsttmp) ++ .addReg(SrcVecReg) ++ .addReg(RJ) ++ .addImm(7); ++ BuildMI(FirstMBB, DL, TII->get(LoongArch::B32)).addMBB(sinkMBB); ++ ++ for (int i = 0; i < 7; i++) { ++ BuildMI(blocks[i + 2], DL, TII->get(LoongArch::XVINSGR2VR_W), Dsttmp) ++ .addReg(SrcVecReg) ++ .addReg(RJ) ++ .addImm(i); ++ BuildMI(blocks[i + 2], DL, TII->get(LoongArch::B32)).addMBB(sinkMBB); ++ } ++ ++ sinkMBB->addSuccessor(exitMBB, BranchProbability::getOne()); ++ BuildMI(sinkMBB, DL, TII->get(LoongArch::XVORI_B), Dest) ++ .addReg(Dsttmp) ++ .addImm(0); ++ ++ LivePhysRegs LiveRegs; ++ for (int i = 0; i < 11; i++) { ++ computeAndAddLiveIns(LiveRegs, *blocks[i]); ++ } ++ ++ NMBBI = BB.end(); ++ I->eraseFromParent(); ++ ++ return true; ++} ++ ++bool LoongArchExpandPseudo::expandINSERT_HOp( ++ MachineBasicBlock &BB, MachineBasicBlock::iterator I, ++ MachineBasicBlock::iterator &NMBBI) { ++ ++ MachineFunction *MF = BB.getParent(); ++ ++ DebugLoc DL = I->getDebugLoc(); ++ ++ unsigned isGP64 = 0; ++ switch (I->getOpcode()) { ++ case LoongArch::INSERT_H_VIDX64_PSEUDO_POSTRA: ++ isGP64 = 1; ++ break; ++ default: ++ llvm_unreachable("Unknown subword vector pseudo for expansion!"); ++ } ++ ++ unsigned Dest = I->getOperand(0).getReg(); ++ unsigned SrcVecReg = I->getOperand(1).getReg(); ++ unsigned LaneReg = I->getOperand(2).getReg(); ++ unsigned SrcValReg = I->getOperand(3).getReg(); ++ ++ unsigned Dsttmp = I->getOperand(4).getReg(); ++ unsigned RI = I->getOperand(5).getReg(); ++ Dsttmp = SrcVecReg; ++ ++ const BasicBlock *LLVM_BB = BB.getBasicBlock(); ++ MachineBasicBlock *blocks[11]; ++ MachineFunction::iterator It = ++BB.getIterator(); ++ for (int i = 0; i < 11; i++) { ++ blocks[i] = MF->CreateMachineBasicBlock(LLVM_BB); ++ MF->insert(It, blocks[i]); ++ } ++ ++ MachineBasicBlock *mainMBB = blocks[0]; ++ MachineBasicBlock *FirstMBB = blocks[1]; ++ MachineBasicBlock *sinkMBB = blocks[9]; ++ MachineBasicBlock *exitMBB = blocks[10]; ++ ++ exitMBB->splice(exitMBB->begin(), &BB, std::next(I), BB.end()); ++ exitMBB->transferSuccessorsAndUpdatePHIs(&BB); ++ ++ BB.addSuccessor(mainMBB, BranchProbability::getOne()); ++ for (int i = 1; i < 9; i++) { ++ mainMBB->addSuccessor(blocks[i]); ++ blocks[i]->addSuccessor(sinkMBB); ++ } ++ ++ unsigned ADDI, BLT, ZERO; ++ ADDI = isGP64 ? LoongArch::ADDI_D : LoongArch::ADDI_W; ++ BLT = isGP64 ? LoongArch::BLT : LoongArch::BLT32; ++ ZERO = isGP64 ? LoongArch::ZERO_64 : LoongArch::ZERO; ++ ++ for (int i = 1; i < 8; i++) { ++ BuildMI(mainMBB, DL, TII->get(ADDI), RI).addReg(ZERO).addImm(i); ++ BuildMI(mainMBB, DL, TII->get(BLT)) ++ .addReg(LaneReg) ++ .addReg(RI) ++ .addMBB(blocks[i + 1]); ++ } ++ ++ BuildMI(mainMBB, DL, TII->get(LoongArch::B32)).addMBB(FirstMBB); ++ ++ BuildMI(FirstMBB, DL, TII->get(LoongArch::VINSGR2VR_H), Dsttmp) ++ .addReg(SrcVecReg) ++ .addReg(SrcValReg) ++ .addImm(7); ++ BuildMI(FirstMBB, DL, TII->get(LoongArch::B32)).addMBB(sinkMBB); ++ ++ for (int i = 0; i < 7; i++) { ++ BuildMI(blocks[i + 2], DL, TII->get(LoongArch::VINSGR2VR_H), Dsttmp) ++ .addReg(SrcVecReg) ++ .addReg(SrcValReg) ++ .addImm(i); ++ BuildMI(blocks[i + 2], DL, TII->get(LoongArch::B32)).addMBB(sinkMBB); ++ } ++ ++ sinkMBB->addSuccessor(exitMBB, BranchProbability::getOne()); ++ BuildMI(sinkMBB, DL, TII->get(LoongArch::VORI_B), Dest) ++ .addReg(Dsttmp) ++ .addImm(0); ++ ++ LivePhysRegs LiveRegs; ++ for (int i = 0; i < 11; i++) { ++ computeAndAddLiveIns(LiveRegs, *blocks[i]); ++ } ++ ++ NMBBI = BB.end(); ++ I->eraseFromParent(); ++ ++ return true; ++} ++ ++bool LoongArchExpandPseudo::expandXINSERT_BOp( ++ MachineBasicBlock &BB, MachineBasicBlock::iterator I, ++ MachineBasicBlock::iterator &NMBBI) { ++ ++ MachineFunction *MF = BB.getParent(); ++ ++ DebugLoc DL = I->getDebugLoc(); ++ ++ unsigned isGP64 = 0; ++ switch (I->getOpcode()) { ++ case LoongArch::XINSERT_B_VIDX64_PSEUDO_POSTRA: ++ isGP64 = 1; ++ break; ++ case LoongArch::XINSERT_B_VIDX_PSEUDO_POSTRA: ++ break; ++ default: ++ llvm_unreachable("Unknown subword vector pseudo for expansion!"); ++ } ++ ++ unsigned Dest = I->getOperand(0).getReg(); ++ unsigned SrcVecReg = I->getOperand(1).getReg(); ++ unsigned LaneReg = I->getOperand(2).getReg(); ++ unsigned SrcValReg = I->getOperand(3).getReg(); ++ ++ unsigned R4r = I->getOperand(5).getReg(); ++ unsigned Rib = I->getOperand(6).getReg(); ++ unsigned Ris = I->getOperand(7).getReg(); ++ unsigned R7b1 = I->getOperand(8).getReg(); ++ unsigned R7b2 = I->getOperand(9).getReg(); ++ unsigned R7b3 = I->getOperand(10).getReg(); ++ unsigned R7r80_3 = I->getOperand(11).getReg(); ++ unsigned R7r80l_3 = I->getOperand(12).getReg(); ++ unsigned R7r81_3 = I->getOperand(13).getReg(); ++ unsigned R7r81l_3 = I->getOperand(14).getReg(); ++ unsigned R7r82_3 = I->getOperand(15).getReg(); ++ unsigned R7r82l_3 = I->getOperand(16).getReg(); ++ unsigned RI = I->getOperand(17).getReg(); ++ unsigned tmp_Dst73 = I->getOperand(18).getReg(); ++ unsigned Rimm = I->getOperand(19).getReg(); ++ unsigned R70 = I->getOperand(20).getReg(); ++ tmp_Dst73 = SrcVecReg; ++ ++ const BasicBlock *LLVM_BB = BB.getBasicBlock(); ++ MachineBasicBlock *mainMBB = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineBasicBlock *SevenMBB = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineBasicBlock *SevenMBB0 = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineBasicBlock *SevenMBB1 = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineBasicBlock *SevenMBB2 = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineBasicBlock *SevenMBB3 = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineBasicBlock *ZeroMBB = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineBasicBlock *ZeroMBB0 = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineBasicBlock *ZeroMBB1 = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineBasicBlock *ZeroMBB2 = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineBasicBlock *ZeroMBB3 = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineBasicBlock *OneMBB = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineBasicBlock *OneMBB0 = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineBasicBlock *OneMBB1 = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineBasicBlock *OneMBB2 = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineBasicBlock *OneMBB3 = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineBasicBlock *TwoMBB = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineBasicBlock *TwoMBB0 = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineBasicBlock *TwoMBB1 = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineBasicBlock *TwoMBB2 = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineBasicBlock *TwoMBB3 = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineBasicBlock *ThreeMBB = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineBasicBlock *ThreeMBB0 = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineBasicBlock *ThreeMBB1 = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineBasicBlock *ThreeMBB2 = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineBasicBlock *ThreeMBB3 = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineBasicBlock *FourMBB = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineBasicBlock *FourMBB0 = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineBasicBlock *FourMBB1 = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineBasicBlock *FourMBB2 = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineBasicBlock *FourMBB3 = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineBasicBlock *FiveMBB = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineBasicBlock *FiveMBB0 = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineBasicBlock *FiveMBB1 = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineBasicBlock *FiveMBB2 = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineBasicBlock *FiveMBB3 = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineBasicBlock *SixMBB = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineBasicBlock *SixMBB0 = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineBasicBlock *SixMBB1 = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineBasicBlock *SixMBB2 = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineBasicBlock *SixMBB3 = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineBasicBlock *sinkMBB = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineBasicBlock *exitMBB = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineFunction::iterator It = ++BB.getIterator(); ++ MF->insert(It, mainMBB); ++ MF->insert(It, SevenMBB); ++ MF->insert(It, SevenMBB3); ++ MF->insert(It, SevenMBB0); ++ MF->insert(It, SevenMBB1); ++ MF->insert(It, SevenMBB2); ++ MF->insert(It, ZeroMBB); ++ MF->insert(It, ZeroMBB3); ++ MF->insert(It, ZeroMBB0); ++ MF->insert(It, ZeroMBB1); ++ MF->insert(It, ZeroMBB2); ++ MF->insert(It, OneMBB); ++ MF->insert(It, OneMBB3); ++ MF->insert(It, OneMBB0); ++ MF->insert(It, OneMBB1); ++ MF->insert(It, OneMBB2); ++ MF->insert(It, TwoMBB); ++ MF->insert(It, TwoMBB3); ++ MF->insert(It, TwoMBB0); ++ MF->insert(It, TwoMBB1); ++ MF->insert(It, TwoMBB2); ++ MF->insert(It, ThreeMBB); ++ MF->insert(It, ThreeMBB3); ++ MF->insert(It, ThreeMBB0); ++ MF->insert(It, ThreeMBB1); ++ MF->insert(It, ThreeMBB2); ++ MF->insert(It, FourMBB); ++ MF->insert(It, FourMBB3); ++ MF->insert(It, FourMBB0); ++ MF->insert(It, FourMBB1); ++ MF->insert(It, FourMBB2); ++ MF->insert(It, FiveMBB); ++ MF->insert(It, FiveMBB3); ++ MF->insert(It, FiveMBB0); ++ MF->insert(It, FiveMBB1); ++ MF->insert(It, FiveMBB2); ++ MF->insert(It, SixMBB); ++ MF->insert(It, SixMBB3); ++ MF->insert(It, SixMBB0); ++ MF->insert(It, SixMBB1); ++ MF->insert(It, SixMBB2); ++ MF->insert(It, sinkMBB); ++ MF->insert(It, exitMBB); ++ ++ exitMBB->splice(exitMBB->begin(), &BB, std::next(I), BB.end()); ++ exitMBB->transferSuccessorsAndUpdatePHIs(&BB); ++ ++ BB.addSuccessor(mainMBB, BranchProbability::getOne()); ++ mainMBB->addSuccessor(SevenMBB); ++ mainMBB->addSuccessor(ZeroMBB); ++ mainMBB->addSuccessor(OneMBB); ++ mainMBB->addSuccessor(TwoMBB); ++ mainMBB->addSuccessor(ThreeMBB); ++ mainMBB->addSuccessor(FourMBB); ++ mainMBB->addSuccessor(FiveMBB); ++ mainMBB->addSuccessor(SixMBB); ++ SevenMBB->addSuccessor(SevenMBB0); ++ SevenMBB->addSuccessor(SevenMBB1); ++ SevenMBB->addSuccessor(SevenMBB2); ++ SevenMBB->addSuccessor(SevenMBB3); ++ SevenMBB0->addSuccessor(sinkMBB); ++ SevenMBB1->addSuccessor(sinkMBB); ++ SevenMBB2->addSuccessor(sinkMBB); ++ SevenMBB3->addSuccessor(sinkMBB); ++ ZeroMBB->addSuccessor(ZeroMBB0); ++ ZeroMBB->addSuccessor(ZeroMBB1); ++ ZeroMBB->addSuccessor(ZeroMBB2); ++ ZeroMBB->addSuccessor(ZeroMBB3); ++ ZeroMBB0->addSuccessor(sinkMBB); ++ ZeroMBB1->addSuccessor(sinkMBB); ++ ZeroMBB2->addSuccessor(sinkMBB); ++ ZeroMBB3->addSuccessor(sinkMBB); ++ OneMBB->addSuccessor(OneMBB0); ++ OneMBB->addSuccessor(OneMBB1); ++ OneMBB->addSuccessor(OneMBB2); ++ OneMBB->addSuccessor(OneMBB3); ++ OneMBB0->addSuccessor(sinkMBB); ++ OneMBB1->addSuccessor(sinkMBB); ++ OneMBB2->addSuccessor(sinkMBB); ++ OneMBB3->addSuccessor(sinkMBB); ++ TwoMBB->addSuccessor(TwoMBB0); ++ TwoMBB->addSuccessor(TwoMBB1); ++ TwoMBB->addSuccessor(TwoMBB2); ++ TwoMBB->addSuccessor(TwoMBB3); ++ TwoMBB0->addSuccessor(sinkMBB); ++ TwoMBB1->addSuccessor(sinkMBB); ++ TwoMBB2->addSuccessor(sinkMBB); ++ TwoMBB3->addSuccessor(sinkMBB); ++ ThreeMBB->addSuccessor(ThreeMBB0); ++ ThreeMBB->addSuccessor(ThreeMBB1); ++ ThreeMBB->addSuccessor(ThreeMBB2); ++ ThreeMBB->addSuccessor(ThreeMBB3); ++ ThreeMBB0->addSuccessor(sinkMBB); ++ ThreeMBB1->addSuccessor(sinkMBB); ++ ThreeMBB2->addSuccessor(sinkMBB); ++ ThreeMBB3->addSuccessor(sinkMBB); ++ FourMBB->addSuccessor(FourMBB0); ++ FourMBB->addSuccessor(FourMBB1); ++ FourMBB->addSuccessor(FourMBB2); ++ FourMBB->addSuccessor(FourMBB3); ++ FourMBB0->addSuccessor(sinkMBB); ++ FourMBB1->addSuccessor(sinkMBB); ++ FourMBB2->addSuccessor(sinkMBB); ++ FourMBB3->addSuccessor(sinkMBB); ++ FiveMBB->addSuccessor(FiveMBB0); ++ FiveMBB->addSuccessor(FiveMBB1); ++ FiveMBB->addSuccessor(FiveMBB2); ++ FiveMBB->addSuccessor(FiveMBB3); ++ FiveMBB0->addSuccessor(sinkMBB); ++ FiveMBB1->addSuccessor(sinkMBB); ++ FiveMBB2->addSuccessor(sinkMBB); ++ FiveMBB3->addSuccessor(sinkMBB); ++ SixMBB->addSuccessor(SixMBB0); ++ SixMBB->addSuccessor(SixMBB1); ++ SixMBB->addSuccessor(SixMBB2); ++ SixMBB->addSuccessor(SixMBB3); ++ SixMBB0->addSuccessor(sinkMBB); ++ SixMBB1->addSuccessor(sinkMBB); ++ SixMBB2->addSuccessor(sinkMBB); ++ SixMBB3->addSuccessor(sinkMBB); ++ ++ unsigned SRLI, ADDI, OR, MOD, BLT, ZERO; ++ SRLI = isGP64 ? LoongArch::SRLI_D : LoongArch::SRLI_W; ++ ADDI = isGP64 ? LoongArch::ADDI_D : LoongArch::ADDI_W; ++ OR = isGP64 ? LoongArch::OR : LoongArch::OR32; ++ MOD = isGP64 ? LoongArch::MOD_DU : LoongArch::MOD_WU; ++ BLT = isGP64 ? LoongArch::BLT : LoongArch::BLT32; ++ ZERO = isGP64 ? LoongArch::ZERO_64 : LoongArch::ZERO; ++ ++ BuildMI(mainMBB, DL, TII->get(SRLI), Rimm).addReg(LaneReg).addImm(2); ++ BuildMI(mainMBB, DL, TII->get(ADDI), R4r).addReg(ZERO).addImm(4); ++ BuildMI(mainMBB, DL, TII->get(OR), Rib).addReg(Rimm).addReg(ZERO); ++ BuildMI(mainMBB, DL, TII->get(MOD), Ris).addReg(Rib).addReg(R4r); ++ BuildMI(mainMBB, DL, TII->get(ADDI), RI).addReg(ZERO).addImm(1); ++ BuildMI(mainMBB, DL, TII->get(BLT)).addReg(Rib).addReg(RI).addMBB(ZeroMBB); ++ BuildMI(mainMBB, DL, TII->get(ADDI), RI).addReg(ZERO).addImm(2); ++ BuildMI(mainMBB, DL, TII->get(BLT)).addReg(Rib).addReg(RI).addMBB(OneMBB); ++ BuildMI(mainMBB, DL, TII->get(ADDI), RI).addReg(ZERO).addImm(3); ++ BuildMI(mainMBB, DL, TII->get(BLT)).addReg(Rib).addReg(RI).addMBB(TwoMBB); ++ BuildMI(mainMBB, DL, TII->get(ADDI), RI).addReg(ZERO).addImm(4); ++ BuildMI(mainMBB, DL, TII->get(BLT)).addReg(Rib).addReg(RI).addMBB(ThreeMBB); ++ BuildMI(mainMBB, DL, TII->get(ADDI), RI).addReg(ZERO).addImm(5); ++ BuildMI(mainMBB, DL, TII->get(BLT)).addReg(Rib).addReg(RI).addMBB(FourMBB); ++ BuildMI(mainMBB, DL, TII->get(ADDI), RI).addReg(ZERO).addImm(6); ++ BuildMI(mainMBB, DL, TII->get(BLT)).addReg(Rib).addReg(RI).addMBB(FiveMBB); ++ BuildMI(mainMBB, DL, TII->get(ADDI), RI).addReg(ZERO).addImm(7); ++ BuildMI(mainMBB, DL, TII->get(BLT)).addReg(Rib).addReg(RI).addMBB(SixMBB); ++ BuildMI(mainMBB, DL, TII->get(LoongArch::B32)).addMBB(SevenMBB); ++ ++ BuildMI(SevenMBB, DL, TII->get(LoongArch::XVPICKVE2GR_W), R70) ++ .addReg(SrcVecReg) ++ .addImm(7); ++ BuildMI(SevenMBB, DL, TII->get(ADDI), R7b1).addReg(ZERO).addImm(1); ++ BuildMI(SevenMBB, DL, TII->get(BLT)) ++ .addReg(Ris) ++ .addReg(R7b1) ++ .addMBB(SevenMBB0); ++ BuildMI(SevenMBB, DL, TII->get(ADDI), R7b2).addReg(ZERO).addImm(2); ++ BuildMI(SevenMBB, DL, TII->get(BLT)) ++ .addReg(Ris) ++ .addReg(R7b2) ++ .addMBB(SevenMBB1); ++ BuildMI(SevenMBB, DL, TII->get(ADDI), R7b3).addReg(ZERO).addImm(3); ++ BuildMI(SevenMBB, DL, TII->get(BLT)) ++ .addReg(Ris) ++ .addReg(R7b3) ++ .addMBB(SevenMBB2); ++ BuildMI(SevenMBB, DL, TII->get(LoongArch::B32)).addMBB(SevenMBB3); ++ ++ BuildMI(SevenMBB3, DL, TII->get(LoongArch::SLLI_W), R7r80_3) ++ .addReg(SrcValReg) ++ .addImm(24); ++ BuildMI(SevenMBB3, DL, TII->get(LoongArch::LU12I_W), R7r81l_3) ++ .addImm(0x00fff); ++ BuildMI(SevenMBB3, DL, TII->get(LoongArch::ORI32), R7r81_3) ++ .addReg(R7r81l_3) ++ .addImm(0xfff); ++ BuildMI(SevenMBB3, DL, TII->get(LoongArch::AND32), R7r82l_3) ++ .addReg(R70) ++ .addReg(R7r81_3); ++ BuildMI(SevenMBB3, DL, TII->get(LoongArch::OR32), R7r82_3) ++ .addReg(R7r82l_3) ++ .addReg(R7r80_3); ++ BuildMI(SevenMBB3, DL, TII->get(LoongArch::XVINSGR2VR_W), tmp_Dst73) ++ .addReg(SrcVecReg) ++ .addReg(R7r82_3) ++ .addImm(7); ++ BuildMI(SevenMBB3, DL, TII->get(LoongArch::B32)).addMBB(sinkMBB); ++ ++ BuildMI(SevenMBB0, DL, TII->get(LoongArch::SLLI_W), R7r80_3) ++ .addReg(SrcValReg) ++ .addImm(24); ++ BuildMI(SevenMBB0, DL, TII->get(LoongArch::SRLI_W), R7r80l_3) ++ .addReg(R7r80_3) ++ .addImm(8); ++ BuildMI(SevenMBB0, DL, TII->get(LoongArch::LU12I_W), R7r81l_3) ++ .addImm(0xff00f); ++ BuildMI(SevenMBB0, DL, TII->get(LoongArch::ORI32), R7r81_3) ++ .addReg(R7r81l_3) ++ .addImm(0xfff); ++ BuildMI(SevenMBB0, DL, TII->get(LoongArch::AND32), R7r82l_3) ++ .addReg(R70) ++ .addReg(R7r81_3); ++ BuildMI(SevenMBB0, DL, TII->get(LoongArch::OR32), R7r82_3) ++ .addReg(R7r82l_3) ++ .addReg(R7r80l_3); ++ BuildMI(SevenMBB0, DL, TII->get(LoongArch::XVINSGR2VR_W), tmp_Dst73) ++ .addReg(SrcVecReg) ++ .addReg(R7r82_3) ++ .addImm(7); ++ BuildMI(SevenMBB0, DL, TII->get(LoongArch::B32)).addMBB(sinkMBB); ++ ++ BuildMI(SevenMBB1, DL, TII->get(LoongArch::SLLI_W), R7r80_3) ++ .addReg(SrcValReg) ++ .addImm(24); ++ BuildMI(SevenMBB1, DL, TII->get(LoongArch::SRLI_W), R7r80l_3) ++ .addReg(R7r80_3) ++ .addImm(16); ++ BuildMI(SevenMBB1, DL, TII->get(LoongArch::LU12I_W), R7r81l_3) ++ .addImm(0xffff0); ++ BuildMI(SevenMBB1, DL, TII->get(LoongArch::ORI32), R7r81_3) ++ .addReg(R7r81l_3) ++ .addImm(0x0ff); ++ BuildMI(SevenMBB1, DL, TII->get(LoongArch::AND32), R7r82l_3) ++ .addReg(R70) ++ .addReg(R7r81_3); ++ BuildMI(SevenMBB1, DL, TII->get(LoongArch::OR32), R7r82_3) ++ .addReg(R7r82l_3) ++ .addReg(R7r80l_3); ++ BuildMI(SevenMBB1, DL, TII->get(LoongArch::XVINSGR2VR_W), tmp_Dst73) ++ .addReg(SrcVecReg) ++ .addReg(R7r82_3) ++ .addImm(7); ++ BuildMI(SevenMBB1, DL, TII->get(LoongArch::B32)).addMBB(sinkMBB); ++ ++ BuildMI(SevenMBB2, DL, TII->get(LoongArch::SLLI_W), R7r80_3) ++ .addReg(SrcValReg) ++ .addImm(24); ++ BuildMI(SevenMBB2, DL, TII->get(LoongArch::SRLI_W), R7r80l_3) ++ .addReg(R7r80_3) ++ .addImm(24); ++ BuildMI(SevenMBB2, DL, TII->get(LoongArch::LU12I_W), R7r81l_3) ++ .addImm(0xfffff); ++ BuildMI(SevenMBB2, DL, TII->get(LoongArch::ORI32), R7r81_3) ++ .addReg(R7r81l_3) ++ .addImm(0xf00); ++ BuildMI(SevenMBB2, DL, TII->get(LoongArch::AND32), R7r82l_3) ++ .addReg(R70) ++ .addReg(R7r81_3); ++ BuildMI(SevenMBB2, DL, TII->get(LoongArch::OR32), R7r82_3) ++ .addReg(R7r82l_3) ++ .addReg(R7r80l_3); ++ BuildMI(SevenMBB2, DL, TII->get(LoongArch::XVINSGR2VR_W), tmp_Dst73) ++ .addReg(SrcVecReg) ++ .addReg(R7r82_3) ++ .addImm(7); ++ BuildMI(SevenMBB2, DL, TII->get(LoongArch::B32)).addMBB(sinkMBB); ++ ++ BuildMI(ZeroMBB, DL, TII->get(LoongArch::XVPICKVE2GR_W), R70) ++ .addReg(SrcVecReg) ++ .addImm(0); ++ BuildMI(ZeroMBB, DL, TII->get(ADDI), R7b1).addReg(ZERO).addImm(1); ++ BuildMI(ZeroMBB, DL, TII->get(BLT)).addReg(Ris).addReg(R7b1).addMBB(ZeroMBB0); ++ BuildMI(ZeroMBB, DL, TII->get(ADDI), R7b2).addReg(ZERO).addImm(2); ++ BuildMI(ZeroMBB, DL, TII->get(BLT)).addReg(Ris).addReg(R7b2).addMBB(ZeroMBB1); ++ BuildMI(ZeroMBB, DL, TII->get(ADDI), R7b3).addReg(ZERO).addImm(3); ++ BuildMI(ZeroMBB, DL, TII->get(BLT)).addReg(Ris).addReg(R7b3).addMBB(ZeroMBB2); ++ BuildMI(ZeroMBB, DL, TII->get(LoongArch::B32)).addMBB(ZeroMBB3); ++ ++ BuildMI(ZeroMBB3, DL, TII->get(LoongArch::SLLI_W), R7r80_3) ++ .addReg(SrcValReg) ++ .addImm(24); ++ BuildMI(ZeroMBB3, DL, TII->get(LoongArch::LU12I_W), R7r81l_3).addImm(0x00fff); ++ BuildMI(ZeroMBB3, DL, TII->get(LoongArch::ORI32), R7r81_3) ++ .addReg(R7r81l_3) ++ .addImm(0xfff); ++ BuildMI(ZeroMBB3, DL, TII->get(LoongArch::AND32), R7r82l_3) ++ .addReg(R70) ++ .addReg(R7r81_3); ++ BuildMI(ZeroMBB3, DL, TII->get(LoongArch::OR32), R7r82_3) ++ .addReg(R7r82l_3) ++ .addReg(R7r80_3); ++ BuildMI(ZeroMBB3, DL, TII->get(LoongArch::XVINSGR2VR_W), tmp_Dst73) ++ .addReg(SrcVecReg) ++ .addReg(R7r82_3) ++ .addImm(0); ++ BuildMI(ZeroMBB3, DL, TII->get(LoongArch::B32)).addMBB(sinkMBB); ++ ++ BuildMI(ZeroMBB0, DL, TII->get(LoongArch::SLLI_W), R7r80_3) ++ .addReg(SrcValReg) ++ .addImm(24); ++ BuildMI(ZeroMBB0, DL, TII->get(LoongArch::SRLI_W), R7r80l_3) ++ .addReg(R7r80_3) ++ .addImm(8); ++ BuildMI(ZeroMBB0, DL, TII->get(LoongArch::LU12I_W), R7r81l_3).addImm(0xff00f); ++ BuildMI(ZeroMBB0, DL, TII->get(LoongArch::ORI32), R7r81_3) ++ .addReg(R7r81l_3) ++ .addImm(0xfff); ++ BuildMI(ZeroMBB0, DL, TII->get(LoongArch::AND32), R7r82l_3) ++ .addReg(R70) ++ .addReg(R7r81_3); ++ BuildMI(ZeroMBB0, DL, TII->get(LoongArch::OR32), R7r82_3) ++ .addReg(R7r82l_3) ++ .addReg(R7r80l_3); ++ BuildMI(ZeroMBB0, DL, TII->get(LoongArch::XVINSGR2VR_W), tmp_Dst73) ++ .addReg(SrcVecReg) ++ .addReg(R7r82_3) ++ .addImm(0); ++ BuildMI(ZeroMBB0, DL, TII->get(LoongArch::B32)).addMBB(sinkMBB); ++ ++ BuildMI(ZeroMBB1, DL, TII->get(LoongArch::SLLI_W), R7r80_3) ++ .addReg(SrcValReg) ++ .addImm(24); ++ BuildMI(ZeroMBB1, DL, TII->get(LoongArch::SRLI_W), R7r80l_3) ++ .addReg(R7r80_3) ++ .addImm(16); ++ BuildMI(ZeroMBB1, DL, TII->get(LoongArch::LU12I_W), R7r81l_3).addImm(0xffff0); ++ BuildMI(ZeroMBB1, DL, TII->get(LoongArch::ORI32), R7r81_3) ++ .addReg(R7r81l_3) ++ .addImm(0x0ff); ++ BuildMI(ZeroMBB1, DL, TII->get(LoongArch::AND32), R7r82l_3) ++ .addReg(R70) ++ .addReg(R7r81_3); ++ BuildMI(ZeroMBB1, DL, TII->get(LoongArch::OR32), R7r82_3) ++ .addReg(R7r82l_3) ++ .addReg(R7r80l_3); ++ BuildMI(ZeroMBB1, DL, TII->get(LoongArch::XVINSGR2VR_W), tmp_Dst73) ++ .addReg(SrcVecReg) ++ .addReg(R7r82_3) ++ .addImm(0); ++ BuildMI(ZeroMBB1, DL, TII->get(LoongArch::B32)).addMBB(sinkMBB); ++ ++ BuildMI(ZeroMBB2, DL, TII->get(LoongArch::SLLI_W), R7r80_3) ++ .addReg(SrcValReg) ++ .addImm(24); ++ BuildMI(ZeroMBB2, DL, TII->get(LoongArch::SRLI_W), R7r80l_3) ++ .addReg(R7r80_3) ++ .addImm(24); ++ BuildMI(ZeroMBB2, DL, TII->get(LoongArch::LU12I_W), R7r81l_3).addImm(0xfffff); ++ BuildMI(ZeroMBB2, DL, TII->get(LoongArch::ORI32), R7r81_3) ++ .addReg(R7r81l_3) ++ .addImm(0xf00); ++ BuildMI(ZeroMBB2, DL, TII->get(LoongArch::AND32), R7r82l_3) ++ .addReg(R70) ++ .addReg(R7r81_3); ++ BuildMI(ZeroMBB2, DL, TII->get(LoongArch::OR32), R7r82_3) ++ .addReg(R7r82l_3) ++ .addReg(R7r80l_3); ++ BuildMI(ZeroMBB2, DL, TII->get(LoongArch::XVINSGR2VR_W), tmp_Dst73) ++ .addReg(SrcVecReg) ++ .addReg(R7r82_3) ++ .addImm(0); ++ BuildMI(ZeroMBB2, DL, TII->get(LoongArch::B32)).addMBB(sinkMBB); ++ ++ BuildMI(OneMBB, DL, TII->get(LoongArch::XVPICKVE2GR_W), R70) ++ .addReg(SrcVecReg) ++ .addImm(1); ++ BuildMI(OneMBB, DL, TII->get(ADDI), R7b1).addReg(ZERO).addImm(1); ++ BuildMI(OneMBB, DL, TII->get(BLT)).addReg(Ris).addReg(R7b1).addMBB(OneMBB0); ++ BuildMI(OneMBB, DL, TII->get(ADDI), R7b2).addReg(ZERO).addImm(2); ++ BuildMI(OneMBB, DL, TII->get(BLT)).addReg(Ris).addReg(R7b2).addMBB(OneMBB1); ++ BuildMI(OneMBB, DL, TII->get(ADDI), R7b3).addReg(ZERO).addImm(3); ++ BuildMI(OneMBB, DL, TII->get(BLT)).addReg(Ris).addReg(R7b3).addMBB(OneMBB2); ++ BuildMI(OneMBB, DL, TII->get(LoongArch::B32)).addMBB(OneMBB3); ++ ++ BuildMI(OneMBB3, DL, TII->get(LoongArch::SLLI_W), R7r80_3) ++ .addReg(SrcValReg) ++ .addImm(24); ++ BuildMI(OneMBB3, DL, TII->get(LoongArch::LU12I_W), R7r81l_3).addImm(0x00fff); ++ BuildMI(OneMBB3, DL, TII->get(LoongArch::ORI32), R7r81_3) ++ .addReg(R7r81l_3) ++ .addImm(0xfff); ++ BuildMI(OneMBB3, DL, TII->get(LoongArch::AND32), R7r82l_3) ++ .addReg(R70) ++ .addReg(R7r81_3); ++ BuildMI(OneMBB3, DL, TII->get(LoongArch::OR32), R7r82_3) ++ .addReg(R7r82l_3) ++ .addReg(R7r80_3); ++ BuildMI(OneMBB3, DL, TII->get(LoongArch::XVINSGR2VR_W), tmp_Dst73) ++ .addReg(SrcVecReg) ++ .addReg(R7r82_3) ++ .addImm(1); ++ BuildMI(OneMBB3, DL, TII->get(LoongArch::B32)).addMBB(sinkMBB); ++ ++ BuildMI(OneMBB0, DL, TII->get(LoongArch::SLLI_W), R7r80_3) ++ .addReg(SrcValReg) ++ .addImm(24); ++ BuildMI(OneMBB0, DL, TII->get(LoongArch::SRLI_W), R7r80l_3) ++ .addReg(R7r80_3) ++ .addImm(8); ++ BuildMI(OneMBB0, DL, TII->get(LoongArch::LU12I_W), R7r81l_3).addImm(0xff00f); ++ BuildMI(OneMBB0, DL, TII->get(LoongArch::ORI32), R7r81_3) ++ .addReg(R7r81l_3) ++ .addImm(0xfff); ++ BuildMI(OneMBB0, DL, TII->get(LoongArch::AND32), R7r82l_3) ++ .addReg(R70) ++ .addReg(R7r81_3); ++ BuildMI(OneMBB0, DL, TII->get(LoongArch::OR32), R7r82_3) ++ .addReg(R7r82l_3) ++ .addReg(R7r80l_3); ++ BuildMI(OneMBB0, DL, TII->get(LoongArch::XVINSGR2VR_W), tmp_Dst73) ++ .addReg(SrcVecReg) ++ .addReg(R7r82_3) ++ .addImm(1); ++ BuildMI(OneMBB0, DL, TII->get(LoongArch::B32)).addMBB(sinkMBB); ++ ++ BuildMI(OneMBB1, DL, TII->get(LoongArch::SLLI_W), R7r80_3) ++ .addReg(SrcValReg) ++ .addImm(24); ++ BuildMI(OneMBB1, DL, TII->get(LoongArch::SRLI_W), R7r80l_3) ++ .addReg(R7r80_3) ++ .addImm(16); ++ BuildMI(OneMBB1, DL, TII->get(LoongArch::LU12I_W), R7r81l_3).addImm(0xffff0); ++ BuildMI(OneMBB1, DL, TII->get(LoongArch::ORI32), R7r81_3) ++ .addReg(R7r81l_3) ++ .addImm(0x0ff); ++ BuildMI(OneMBB1, DL, TII->get(LoongArch::AND32), R7r82l_3) ++ .addReg(R70) ++ .addReg(R7r81_3); ++ BuildMI(OneMBB1, DL, TII->get(LoongArch::OR32), R7r82_3) ++ .addReg(R7r82l_3) ++ .addReg(R7r80l_3); ++ BuildMI(OneMBB1, DL, TII->get(LoongArch::XVINSGR2VR_W), tmp_Dst73) ++ .addReg(SrcVecReg) ++ .addReg(R7r82_3) ++ .addImm(1); ++ BuildMI(OneMBB1, DL, TII->get(LoongArch::B32)).addMBB(sinkMBB); ++ ++ BuildMI(OneMBB2, DL, TII->get(LoongArch::SLLI_W), R7r80_3) ++ .addReg(SrcValReg) ++ .addImm(24); ++ BuildMI(OneMBB2, DL, TII->get(LoongArch::SRLI_W), R7r80l_3) ++ .addReg(R7r80_3) ++ .addImm(24); ++ BuildMI(OneMBB2, DL, TII->get(LoongArch::LU12I_W), R7r81l_3).addImm(0xfffff); ++ BuildMI(OneMBB2, DL, TII->get(LoongArch::ORI32), R7r81_3) ++ .addReg(R7r81l_3) ++ .addImm(0xf00); ++ BuildMI(OneMBB2, DL, TII->get(LoongArch::AND32), R7r82l_3) ++ .addReg(R70) ++ .addReg(R7r81_3); ++ BuildMI(OneMBB2, DL, TII->get(LoongArch::OR32), R7r82_3) ++ .addReg(R7r82l_3) ++ .addReg(R7r80l_3); ++ BuildMI(OneMBB2, DL, TII->get(LoongArch::XVINSGR2VR_W), tmp_Dst73) ++ .addReg(SrcVecReg) ++ .addReg(R7r82_3) ++ .addImm(1); ++ BuildMI(OneMBB2, DL, TII->get(LoongArch::B32)).addMBB(sinkMBB); ++ ++ BuildMI(TwoMBB, DL, TII->get(LoongArch::XVPICKVE2GR_W), R70) ++ .addReg(SrcVecReg) ++ .addImm(2); ++ BuildMI(TwoMBB, DL, TII->get(ADDI), R7b1).addReg(ZERO).addImm(1); ++ BuildMI(TwoMBB, DL, TII->get(BLT)).addReg(Ris).addReg(R7b1).addMBB(TwoMBB0); ++ BuildMI(TwoMBB, DL, TII->get(ADDI), R7b2).addReg(ZERO).addImm(2); ++ BuildMI(TwoMBB, DL, TII->get(BLT)).addReg(Ris).addReg(R7b2).addMBB(TwoMBB1); ++ BuildMI(TwoMBB, DL, TII->get(ADDI), R7b3).addReg(ZERO).addImm(3); ++ BuildMI(TwoMBB, DL, TII->get(BLT)).addReg(Ris).addReg(R7b3).addMBB(TwoMBB2); ++ BuildMI(TwoMBB, DL, TII->get(LoongArch::B32)).addMBB(TwoMBB3); ++ ++ BuildMI(TwoMBB3, DL, TII->get(LoongArch::SLLI_W), R7r80_3) ++ .addReg(SrcValReg) ++ .addImm(24); ++ BuildMI(TwoMBB3, DL, TII->get(LoongArch::LU12I_W), R7r81l_3).addImm(0x00fff); ++ BuildMI(TwoMBB3, DL, TII->get(LoongArch::ORI32), R7r81_3) ++ .addReg(R7r81l_3) ++ .addImm(0xfff); ++ BuildMI(TwoMBB3, DL, TII->get(LoongArch::AND32), R7r82l_3) ++ .addReg(R70) ++ .addReg(R7r81_3); ++ BuildMI(TwoMBB3, DL, TII->get(LoongArch::OR32), R7r82_3) ++ .addReg(R7r82l_3) ++ .addReg(R7r80_3); ++ BuildMI(TwoMBB3, DL, TII->get(LoongArch::XVINSGR2VR_W), tmp_Dst73) ++ .addReg(SrcVecReg) ++ .addReg(R7r82_3) ++ .addImm(2); ++ BuildMI(TwoMBB3, DL, TII->get(LoongArch::B32)).addMBB(sinkMBB); ++ ++ BuildMI(TwoMBB0, DL, TII->get(LoongArch::SLLI_W), R7r80_3) ++ .addReg(SrcValReg) ++ .addImm(24); ++ BuildMI(TwoMBB0, DL, TII->get(LoongArch::SRLI_W), R7r80l_3) ++ .addReg(R7r80_3) ++ .addImm(8); ++ BuildMI(TwoMBB0, DL, TII->get(LoongArch::LU12I_W), R7r81l_3).addImm(0xff00f); ++ BuildMI(TwoMBB0, DL, TII->get(LoongArch::ORI32), R7r81_3) ++ .addReg(R7r81l_3) ++ .addImm(0xfff); ++ BuildMI(TwoMBB0, DL, TII->get(LoongArch::AND32), R7r82l_3) ++ .addReg(R70) ++ .addReg(R7r81_3); ++ BuildMI(TwoMBB0, DL, TII->get(LoongArch::OR32), R7r82_3) ++ .addReg(R7r82l_3) ++ .addReg(R7r80l_3); ++ BuildMI(TwoMBB0, DL, TII->get(LoongArch::XVINSGR2VR_W), tmp_Dst73) ++ .addReg(SrcVecReg) ++ .addReg(R7r82_3) ++ .addImm(2); ++ BuildMI(TwoMBB0, DL, TII->get(LoongArch::B32)).addMBB(sinkMBB); ++ ++ BuildMI(TwoMBB1, DL, TII->get(LoongArch::SLLI_W), R7r80_3) ++ .addReg(SrcValReg) ++ .addImm(24); ++ BuildMI(TwoMBB1, DL, TII->get(LoongArch::SRLI_W), R7r80l_3) ++ .addReg(R7r80_3) ++ .addImm(16); ++ BuildMI(TwoMBB1, DL, TII->get(LoongArch::LU12I_W), R7r81l_3).addImm(0xffff0); ++ BuildMI(TwoMBB1, DL, TII->get(LoongArch::ORI32), R7r81_3) ++ .addReg(R7r81l_3) ++ .addImm(0x0ff); ++ BuildMI(TwoMBB1, DL, TII->get(LoongArch::AND32), R7r82l_3) ++ .addReg(R70) ++ .addReg(R7r81_3); ++ BuildMI(TwoMBB1, DL, TII->get(LoongArch::OR32), R7r82_3) ++ .addReg(R7r82l_3) ++ .addReg(R7r80l_3); ++ BuildMI(TwoMBB1, DL, TII->get(LoongArch::XVINSGR2VR_W), tmp_Dst73) ++ .addReg(SrcVecReg) ++ .addReg(R7r82_3) ++ .addImm(2); ++ BuildMI(TwoMBB1, DL, TII->get(LoongArch::B32)).addMBB(sinkMBB); ++ ++ BuildMI(TwoMBB2, DL, TII->get(LoongArch::SLLI_W), R7r80_3) ++ .addReg(SrcValReg) ++ .addImm(24); ++ BuildMI(TwoMBB2, DL, TII->get(LoongArch::SRLI_W), R7r80l_3) ++ .addReg(R7r80_3) ++ .addImm(24); ++ BuildMI(TwoMBB2, DL, TII->get(LoongArch::LU12I_W), R7r81l_3).addImm(0xfffff); ++ BuildMI(TwoMBB2, DL, TII->get(LoongArch::ORI32), R7r81_3) ++ .addReg(R7r81l_3) ++ .addImm(0xf00); ++ BuildMI(TwoMBB2, DL, TII->get(LoongArch::AND32), R7r82l_3) ++ .addReg(R70) ++ .addReg(R7r81_3); ++ BuildMI(TwoMBB2, DL, TII->get(LoongArch::OR32), R7r82_3) ++ .addReg(R7r82l_3) ++ .addReg(R7r80l_3); ++ BuildMI(TwoMBB2, DL, TII->get(LoongArch::XVINSGR2VR_W), tmp_Dst73) ++ .addReg(SrcVecReg) ++ .addReg(R7r82_3) ++ .addImm(2); ++ BuildMI(TwoMBB2, DL, TII->get(LoongArch::B32)).addMBB(sinkMBB); ++ ++ BuildMI(ThreeMBB, DL, TII->get(LoongArch::XVPICKVE2GR_W), R70) ++ .addReg(SrcVecReg) ++ .addImm(3); ++ BuildMI(ThreeMBB, DL, TII->get(ADDI), R7b1).addReg(ZERO).addImm(1); ++ BuildMI(ThreeMBB, DL, TII->get(BLT)) ++ .addReg(Ris) ++ .addReg(R7b1) ++ .addMBB(ThreeMBB0); ++ BuildMI(ThreeMBB, DL, TII->get(ADDI), R7b2).addReg(ZERO).addImm(2); ++ BuildMI(ThreeMBB, DL, TII->get(BLT)) ++ .addReg(Ris) ++ .addReg(R7b2) ++ .addMBB(ThreeMBB1); ++ BuildMI(ThreeMBB, DL, TII->get(ADDI), R7b3).addReg(ZERO).addImm(3); ++ BuildMI(ThreeMBB, DL, TII->get(BLT)) ++ .addReg(Ris) ++ .addReg(R7b3) ++ .addMBB(ThreeMBB2); ++ BuildMI(ThreeMBB, DL, TII->get(LoongArch::B32)).addMBB(ThreeMBB3); ++ ++ BuildMI(ThreeMBB3, DL, TII->get(LoongArch::SLLI_W), R7r80_3) ++ .addReg(SrcValReg) ++ .addImm(24); ++ BuildMI(ThreeMBB3, DL, TII->get(LoongArch::LU12I_W), R7r81l_3) ++ .addImm(0x00fff); ++ BuildMI(ThreeMBB3, DL, TII->get(LoongArch::ORI32), R7r81_3) ++ .addReg(R7r81l_3) ++ .addImm(0xfff); ++ BuildMI(ThreeMBB3, DL, TII->get(LoongArch::AND32), R7r82l_3) ++ .addReg(R70) ++ .addReg(R7r81_3); ++ BuildMI(ThreeMBB3, DL, TII->get(LoongArch::OR32), R7r82_3) ++ .addReg(R7r82l_3) ++ .addReg(R7r80_3); ++ BuildMI(ThreeMBB3, DL, TII->get(LoongArch::XVINSGR2VR_W), tmp_Dst73) ++ .addReg(SrcVecReg) ++ .addReg(R7r82_3) ++ .addImm(3); ++ BuildMI(ThreeMBB3, DL, TII->get(LoongArch::B32)).addMBB(sinkMBB); ++ ++ BuildMI(ThreeMBB0, DL, TII->get(LoongArch::SLLI_W), R7r80_3) ++ .addReg(SrcValReg) ++ .addImm(24); ++ BuildMI(ThreeMBB0, DL, TII->get(LoongArch::SRLI_W), R7r80l_3) ++ .addReg(R7r80_3) ++ .addImm(8); ++ BuildMI(ThreeMBB0, DL, TII->get(LoongArch::LU12I_W), R7r81l_3) ++ .addImm(0xff00f); ++ BuildMI(ThreeMBB0, DL, TII->get(LoongArch::ORI32), R7r81_3) ++ .addReg(R7r81l_3) ++ .addImm(0xfff); ++ BuildMI(ThreeMBB0, DL, TII->get(LoongArch::AND32), R7r82l_3) ++ .addReg(R70) ++ .addReg(R7r81_3); ++ BuildMI(ThreeMBB0, DL, TII->get(LoongArch::OR32), R7r82_3) ++ .addReg(R7r82l_3) ++ .addReg(R7r80l_3); ++ BuildMI(ThreeMBB0, DL, TII->get(LoongArch::XVINSGR2VR_W), tmp_Dst73) ++ .addReg(SrcVecReg) ++ .addReg(R7r82_3) ++ .addImm(3); ++ BuildMI(ThreeMBB0, DL, TII->get(LoongArch::B32)).addMBB(sinkMBB); ++ ++ BuildMI(ThreeMBB1, DL, TII->get(LoongArch::SLLI_W), R7r80_3) ++ .addReg(SrcValReg) ++ .addImm(24); ++ BuildMI(ThreeMBB1, DL, TII->get(LoongArch::SRLI_W), R7r80l_3) ++ .addReg(R7r80_3) ++ .addImm(16); ++ BuildMI(ThreeMBB1, DL, TII->get(LoongArch::LU12I_W), R7r81l_3) ++ .addImm(0xffff0); ++ BuildMI(ThreeMBB1, DL, TII->get(LoongArch::ORI32), R7r81_3) ++ .addReg(R7r81l_3) ++ .addImm(0x0ff); ++ BuildMI(ThreeMBB1, DL, TII->get(LoongArch::AND32), R7r82l_3) ++ .addReg(R70) ++ .addReg(R7r81_3); ++ BuildMI(ThreeMBB1, DL, TII->get(LoongArch::OR32), R7r82_3) ++ .addReg(R7r82l_3) ++ .addReg(R7r80l_3); ++ BuildMI(ThreeMBB1, DL, TII->get(LoongArch::XVINSGR2VR_W), tmp_Dst73) ++ .addReg(SrcVecReg) ++ .addReg(R7r82_3) ++ .addImm(3); ++ BuildMI(ThreeMBB1, DL, TII->get(LoongArch::B32)).addMBB(sinkMBB); ++ ++ BuildMI(ThreeMBB2, DL, TII->get(LoongArch::SLLI_W), R7r80_3) ++ .addReg(SrcValReg) ++ .addImm(24); ++ BuildMI(ThreeMBB2, DL, TII->get(LoongArch::SRLI_W), R7r80l_3) ++ .addReg(R7r80_3) ++ .addImm(24); ++ BuildMI(ThreeMBB2, DL, TII->get(LoongArch::LU12I_W), R7r81l_3) ++ .addImm(0xfffff); ++ BuildMI(ThreeMBB2, DL, TII->get(LoongArch::ORI32), R7r81_3) ++ .addReg(R7r81l_3) ++ .addImm(0xf00); ++ BuildMI(ThreeMBB2, DL, TII->get(LoongArch::AND32), R7r82l_3) ++ .addReg(R70) ++ .addReg(R7r81_3); ++ BuildMI(ThreeMBB2, DL, TII->get(LoongArch::OR32), R7r82_3) ++ .addReg(R7r82l_3) ++ .addReg(R7r80l_3); ++ BuildMI(ThreeMBB2, DL, TII->get(LoongArch::XVINSGR2VR_W), tmp_Dst73) ++ .addReg(SrcVecReg) ++ .addReg(R7r82_3) ++ .addImm(3); ++ BuildMI(ThreeMBB2, DL, TII->get(LoongArch::B32)).addMBB(sinkMBB); ++ ++ BuildMI(FourMBB, DL, TII->get(LoongArch::XVPICKVE2GR_W), R70) ++ .addReg(SrcVecReg) ++ .addImm(4); ++ BuildMI(FourMBB, DL, TII->get(ADDI), R7b1).addReg(ZERO).addImm(1); ++ BuildMI(FourMBB, DL, TII->get(BLT)).addReg(Ris).addReg(R7b1).addMBB(FourMBB0); ++ BuildMI(FourMBB, DL, TII->get(ADDI), R7b2).addReg(ZERO).addImm(2); ++ BuildMI(FourMBB, DL, TII->get(BLT)).addReg(Ris).addReg(R7b2).addMBB(FourMBB1); ++ BuildMI(FourMBB, DL, TII->get(ADDI), R7b3).addReg(ZERO).addImm(3); ++ BuildMI(FourMBB, DL, TII->get(BLT)).addReg(Ris).addReg(R7b3).addMBB(FourMBB2); ++ BuildMI(FourMBB, DL, TII->get(LoongArch::B32)).addMBB(FourMBB3); ++ ++ BuildMI(FourMBB3, DL, TII->get(LoongArch::SLLI_W), R7r80_3) ++ .addReg(SrcValReg) ++ .addImm(24); ++ BuildMI(FourMBB3, DL, TII->get(LoongArch::LU12I_W), R7r81l_3).addImm(0x00fff); ++ BuildMI(FourMBB3, DL, TII->get(LoongArch::ORI32), R7r81_3) ++ .addReg(R7r81l_3) ++ .addImm(0xfff); ++ BuildMI(FourMBB3, DL, TII->get(LoongArch::AND32), R7r82l_3) ++ .addReg(R70) ++ .addReg(R7r81_3); ++ BuildMI(FourMBB3, DL, TII->get(LoongArch::OR32), R7r82_3) ++ .addReg(R7r82l_3) ++ .addReg(R7r80_3); ++ BuildMI(FourMBB3, DL, TII->get(LoongArch::XVINSGR2VR_W), tmp_Dst73) ++ .addReg(SrcVecReg) ++ .addReg(R7r82_3) ++ .addImm(4); ++ BuildMI(FourMBB3, DL, TII->get(LoongArch::B32)).addMBB(sinkMBB); ++ ++ BuildMI(FourMBB0, DL, TII->get(LoongArch::SLLI_W), R7r80_3) ++ .addReg(SrcValReg) ++ .addImm(24); ++ BuildMI(FourMBB0, DL, TII->get(LoongArch::SRLI_W), R7r80l_3) ++ .addReg(R7r80_3) ++ .addImm(8); ++ BuildMI(FourMBB0, DL, TII->get(LoongArch::LU12I_W), R7r81l_3).addImm(0xff00f); ++ BuildMI(FourMBB0, DL, TII->get(LoongArch::ORI32), R7r81_3) ++ .addReg(R7r81l_3) ++ .addImm(0xfff); ++ BuildMI(FourMBB0, DL, TII->get(LoongArch::AND32), R7r82l_3) ++ .addReg(R70) ++ .addReg(R7r81_3); ++ BuildMI(FourMBB0, DL, TII->get(LoongArch::OR32), R7r82_3) ++ .addReg(R7r82l_3) ++ .addReg(R7r80l_3); ++ BuildMI(FourMBB0, DL, TII->get(LoongArch::XVINSGR2VR_W), tmp_Dst73) ++ .addReg(SrcVecReg) ++ .addReg(R7r82_3) ++ .addImm(4); ++ BuildMI(FourMBB0, DL, TII->get(LoongArch::B32)).addMBB(sinkMBB); ++ ++ BuildMI(FourMBB1, DL, TII->get(LoongArch::SLLI_W), R7r80_3) ++ .addReg(SrcValReg) ++ .addImm(24); ++ BuildMI(FourMBB1, DL, TII->get(LoongArch::SRLI_W), R7r80l_3) ++ .addReg(R7r80_3) ++ .addImm(16); ++ BuildMI(FourMBB1, DL, TII->get(LoongArch::LU12I_W), R7r81l_3).addImm(0xffff0); ++ BuildMI(FourMBB1, DL, TII->get(LoongArch::ORI32), R7r81_3) ++ .addReg(R7r81l_3) ++ .addImm(0x0ff); ++ BuildMI(FourMBB1, DL, TII->get(LoongArch::AND32), R7r82l_3) ++ .addReg(R70) ++ .addReg(R7r81_3); ++ BuildMI(FourMBB1, DL, TII->get(LoongArch::OR32), R7r82_3) ++ .addReg(R7r82l_3) ++ .addReg(R7r80l_3); ++ BuildMI(FourMBB1, DL, TII->get(LoongArch::XVINSGR2VR_W), tmp_Dst73) ++ .addReg(SrcVecReg) ++ .addReg(R7r82_3) ++ .addImm(4); ++ BuildMI(FourMBB1, DL, TII->get(LoongArch::B32)).addMBB(sinkMBB); ++ ++ BuildMI(FourMBB2, DL, TII->get(LoongArch::SLLI_W), R7r80_3) ++ .addReg(SrcValReg) ++ .addImm(24); ++ BuildMI(FourMBB2, DL, TII->get(LoongArch::SRLI_W), R7r80l_3) ++ .addReg(R7r80_3) ++ .addImm(24); ++ BuildMI(FourMBB2, DL, TII->get(LoongArch::LU12I_W), R7r81l_3).addImm(0xfffff); ++ BuildMI(FourMBB2, DL, TII->get(LoongArch::ORI32), R7r81_3) ++ .addReg(R7r81l_3) ++ .addImm(0xf00); ++ BuildMI(FourMBB2, DL, TII->get(LoongArch::AND32), R7r82l_3) ++ .addReg(R70) ++ .addReg(R7r81_3); ++ BuildMI(FourMBB2, DL, TII->get(LoongArch::OR32), R7r82_3) ++ .addReg(R7r82l_3) ++ .addReg(R7r80l_3); ++ BuildMI(FourMBB2, DL, TII->get(LoongArch::XVINSGR2VR_W), tmp_Dst73) ++ .addReg(SrcVecReg) ++ .addReg(R7r82_3) ++ .addImm(4); ++ BuildMI(FourMBB2, DL, TII->get(LoongArch::B32)).addMBB(sinkMBB); ++ ++ BuildMI(FiveMBB, DL, TII->get(LoongArch::XVPICKVE2GR_W), R70) ++ .addReg(SrcVecReg) ++ .addImm(5); ++ BuildMI(FiveMBB, DL, TII->get(ADDI), R7b1).addReg(ZERO).addImm(1); ++ BuildMI(FiveMBB, DL, TII->get(BLT)).addReg(Ris).addReg(R7b1).addMBB(FiveMBB0); ++ BuildMI(FiveMBB, DL, TII->get(ADDI), R7b2).addReg(ZERO).addImm(2); ++ BuildMI(FiveMBB, DL, TII->get(BLT)).addReg(Ris).addReg(R7b2).addMBB(FiveMBB1); ++ BuildMI(FiveMBB, DL, TII->get(ADDI), R7b3).addReg(ZERO).addImm(3); ++ BuildMI(FiveMBB, DL, TII->get(BLT)).addReg(Ris).addReg(R7b3).addMBB(FiveMBB2); ++ BuildMI(FiveMBB, DL, TII->get(LoongArch::B32)).addMBB(FiveMBB3); ++ ++ BuildMI(FiveMBB3, DL, TII->get(LoongArch::SLLI_W), R7r80_3) ++ .addReg(SrcValReg) ++ .addImm(24); ++ BuildMI(FiveMBB3, DL, TII->get(LoongArch::LU12I_W), R7r81l_3).addImm(0x00fff); ++ BuildMI(FiveMBB3, DL, TII->get(LoongArch::ORI32), R7r81_3) ++ .addReg(R7r81l_3) ++ .addImm(0xfff); ++ BuildMI(FiveMBB3, DL, TII->get(LoongArch::AND32), R7r82l_3) ++ .addReg(R70) ++ .addReg(R7r81_3); ++ BuildMI(FiveMBB3, DL, TII->get(LoongArch::OR32), R7r82_3) ++ .addReg(R7r82l_3) ++ .addReg(R7r80_3); ++ BuildMI(FiveMBB3, DL, TII->get(LoongArch::XVINSGR2VR_W), tmp_Dst73) ++ .addReg(SrcVecReg) ++ .addReg(R7r82_3) ++ .addImm(5); ++ BuildMI(FiveMBB3, DL, TII->get(LoongArch::B32)).addMBB(sinkMBB); ++ ++ BuildMI(FiveMBB0, DL, TII->get(LoongArch::SLLI_W), R7r80_3) ++ .addReg(SrcValReg) ++ .addImm(24); ++ BuildMI(FiveMBB0, DL, TII->get(LoongArch::SRLI_W), R7r80l_3) ++ .addReg(R7r80_3) ++ .addImm(8); ++ BuildMI(FiveMBB0, DL, TII->get(LoongArch::LU12I_W), R7r81l_3).addImm(0xff00f); ++ BuildMI(FiveMBB0, DL, TII->get(LoongArch::ORI32), R7r81_3) ++ .addReg(R7r81l_3) ++ .addImm(0xfff); ++ BuildMI(FiveMBB0, DL, TII->get(LoongArch::AND32), R7r82l_3) ++ .addReg(R70) ++ .addReg(R7r81_3); ++ BuildMI(FiveMBB0, DL, TII->get(LoongArch::OR32), R7r82_3) ++ .addReg(R7r82l_3) ++ .addReg(R7r80l_3); ++ BuildMI(FiveMBB0, DL, TII->get(LoongArch::XVINSGR2VR_W), tmp_Dst73) ++ .addReg(SrcVecReg) ++ .addReg(R7r82_3) ++ .addImm(5); ++ BuildMI(FiveMBB0, DL, TII->get(LoongArch::B32)).addMBB(sinkMBB); ++ ++ BuildMI(FiveMBB1, DL, TII->get(LoongArch::SLLI_W), R7r80_3) ++ .addReg(SrcValReg) ++ .addImm(24); ++ BuildMI(FiveMBB1, DL, TII->get(LoongArch::SRLI_W), R7r80l_3) ++ .addReg(R7r80_3) ++ .addImm(16); ++ BuildMI(FiveMBB1, DL, TII->get(LoongArch::LU12I_W), R7r81l_3).addImm(0xffff0); ++ BuildMI(FiveMBB1, DL, TII->get(LoongArch::ORI32), R7r81_3) ++ .addReg(R7r81l_3) ++ .addImm(0x0ff); ++ BuildMI(FiveMBB1, DL, TII->get(LoongArch::AND32), R7r82l_3) ++ .addReg(R70) ++ .addReg(R7r81_3); ++ BuildMI(FiveMBB1, DL, TII->get(LoongArch::OR32), R7r82_3) ++ .addReg(R7r82l_3) ++ .addReg(R7r80l_3); ++ BuildMI(FiveMBB1, DL, TII->get(LoongArch::XVINSGR2VR_W), tmp_Dst73) ++ .addReg(SrcVecReg) ++ .addReg(R7r82_3) ++ .addImm(5); ++ BuildMI(FiveMBB1, DL, TII->get(LoongArch::B32)).addMBB(sinkMBB); ++ ++ BuildMI(FiveMBB2, DL, TII->get(LoongArch::SLLI_W), R7r80_3) ++ .addReg(SrcValReg) ++ .addImm(24); ++ BuildMI(FiveMBB2, DL, TII->get(LoongArch::SRLI_W), R7r80l_3) ++ .addReg(R7r80_3) ++ .addImm(24); ++ BuildMI(FiveMBB2, DL, TII->get(LoongArch::LU12I_W), R7r81l_3).addImm(0xfffff); ++ BuildMI(FiveMBB2, DL, TII->get(LoongArch::ORI32), R7r81_3) ++ .addReg(R7r81l_3) ++ .addImm(0xf00); ++ BuildMI(FiveMBB2, DL, TII->get(LoongArch::AND32), R7r82l_3) ++ .addReg(R70) ++ .addReg(R7r81_3); ++ BuildMI(FiveMBB2, DL, TII->get(LoongArch::OR32), R7r82_3) ++ .addReg(R7r82l_3) ++ .addReg(R7r80l_3); ++ BuildMI(FiveMBB2, DL, TII->get(LoongArch::XVINSGR2VR_W), tmp_Dst73) ++ .addReg(SrcVecReg) ++ .addReg(R7r82_3) ++ .addImm(5); ++ BuildMI(FiveMBB2, DL, TII->get(LoongArch::B32)).addMBB(sinkMBB); ++ ++ BuildMI(SixMBB, DL, TII->get(LoongArch::XVPICKVE2GR_W), R70) ++ .addReg(SrcVecReg) ++ .addImm(6); ++ BuildMI(SixMBB, DL, TII->get(ADDI), R7b1).addReg(ZERO).addImm(1); ++ BuildMI(SixMBB, DL, TII->get(BLT)).addReg(Ris).addReg(R7b1).addMBB(SixMBB0); ++ BuildMI(SixMBB, DL, TII->get(ADDI), R7b2).addReg(ZERO).addImm(2); ++ BuildMI(SixMBB, DL, TII->get(BLT)).addReg(Ris).addReg(R7b2).addMBB(SixMBB1); ++ BuildMI(SixMBB, DL, TII->get(ADDI), R7b3).addReg(ZERO).addImm(3); ++ BuildMI(SixMBB, DL, TII->get(BLT)).addReg(Ris).addReg(R7b3).addMBB(SixMBB2); ++ BuildMI(SixMBB, DL, TII->get(LoongArch::B32)).addMBB(SixMBB3); ++ ++ BuildMI(SixMBB3, DL, TII->get(LoongArch::SLLI_W), R7r80_3) ++ .addReg(SrcValReg) ++ .addImm(24); ++ BuildMI(SixMBB3, DL, TII->get(LoongArch::LU12I_W), R7r81l_3).addImm(0x00fff); ++ BuildMI(SixMBB3, DL, TII->get(LoongArch::ORI32), R7r81_3) ++ .addReg(R7r81l_3) ++ .addImm(0xfff); ++ BuildMI(SixMBB3, DL, TII->get(LoongArch::AND32), R7r82l_3) ++ .addReg(R70) ++ .addReg(R7r81_3); ++ BuildMI(SixMBB3, DL, TII->get(LoongArch::OR32), R7r82_3) ++ .addReg(R7r82l_3) ++ .addReg(R7r80_3); ++ BuildMI(SixMBB3, DL, TII->get(LoongArch::XVINSGR2VR_W), tmp_Dst73) ++ .addReg(SrcVecReg) ++ .addReg(R7r82_3) ++ .addImm(6); ++ BuildMI(SixMBB3, DL, TII->get(LoongArch::B32)).addMBB(sinkMBB); ++ ++ BuildMI(SixMBB0, DL, TII->get(LoongArch::SLLI_W), R7r80_3) ++ .addReg(SrcValReg) ++ .addImm(24); ++ BuildMI(SixMBB0, DL, TII->get(LoongArch::SRLI_W), R7r80l_3) ++ .addReg(R7r80_3) ++ .addImm(8); ++ BuildMI(SixMBB0, DL, TII->get(LoongArch::LU12I_W), R7r81l_3).addImm(0xff00f); ++ BuildMI(SixMBB0, DL, TII->get(LoongArch::ORI32), R7r81_3) ++ .addReg(R7r81l_3) ++ .addImm(0xfff); ++ BuildMI(SixMBB0, DL, TII->get(LoongArch::AND32), R7r82l_3) ++ .addReg(R70) ++ .addReg(R7r81_3); ++ BuildMI(SixMBB0, DL, TII->get(LoongArch::OR32), R7r82_3) ++ .addReg(R7r82l_3) ++ .addReg(R7r80l_3); ++ BuildMI(SixMBB0, DL, TII->get(LoongArch::XVINSGR2VR_W), tmp_Dst73) ++ .addReg(SrcVecReg) ++ .addReg(R7r82_3) ++ .addImm(6); ++ BuildMI(SixMBB0, DL, TII->get(LoongArch::B32)).addMBB(sinkMBB); ++ ++ BuildMI(SixMBB1, DL, TII->get(LoongArch::SLLI_W), R7r80_3) ++ .addReg(SrcValReg) ++ .addImm(24); ++ BuildMI(SixMBB1, DL, TII->get(LoongArch::SRLI_W), R7r80l_3) ++ .addReg(R7r80_3) ++ .addImm(16); ++ BuildMI(SixMBB1, DL, TII->get(LoongArch::LU12I_W), R7r81l_3).addImm(0xffff0); ++ BuildMI(SixMBB1, DL, TII->get(LoongArch::ORI32), R7r81_3) ++ .addReg(R7r81l_3) ++ .addImm(0x0ff); ++ BuildMI(SixMBB1, DL, TII->get(LoongArch::AND32), R7r82l_3) ++ .addReg(R70) ++ .addReg(R7r81_3); ++ BuildMI(SixMBB1, DL, TII->get(LoongArch::OR32), R7r82_3) ++ .addReg(R7r82l_3) ++ .addReg(R7r80l_3); ++ BuildMI(SixMBB1, DL, TII->get(LoongArch::XVINSGR2VR_W), tmp_Dst73) ++ .addReg(SrcVecReg) ++ .addReg(R7r82_3) ++ .addImm(6); ++ BuildMI(SixMBB1, DL, TII->get(LoongArch::B32)).addMBB(sinkMBB); ++ ++ BuildMI(SixMBB2, DL, TII->get(LoongArch::SLLI_W), R7r80_3) ++ .addReg(SrcValReg) ++ .addImm(24); ++ BuildMI(SixMBB2, DL, TII->get(LoongArch::SRLI_W), R7r80l_3) ++ .addReg(R7r80_3) ++ .addImm(24); ++ BuildMI(SixMBB2, DL, TII->get(LoongArch::LU12I_W), R7r81l_3).addImm(0xfffff); ++ BuildMI(SixMBB2, DL, TII->get(LoongArch::ORI32), R7r81_3) ++ .addReg(R7r81l_3) ++ .addImm(0xf00); ++ BuildMI(SixMBB2, DL, TII->get(LoongArch::AND32), R7r82l_3) ++ .addReg(R70) ++ .addReg(R7r81_3); ++ BuildMI(SixMBB2, DL, TII->get(LoongArch::OR32), R7r82_3) ++ .addReg(R7r82l_3) ++ .addReg(R7r80l_3); ++ BuildMI(SixMBB2, DL, TII->get(LoongArch::XVINSGR2VR_W), tmp_Dst73) ++ .addReg(SrcVecReg) ++ .addReg(R7r82_3) ++ .addImm(6); ++ BuildMI(SixMBB2, DL, TII->get(LoongArch::B32)).addMBB(sinkMBB); ++ ++ sinkMBB->addSuccessor(exitMBB, BranchProbability::getOne()); ++ ++ BuildMI(sinkMBB, DL, TII->get(LoongArch::XVORI_B), Dest) ++ .addReg(tmp_Dst73) ++ .addImm(0); ++ ++ LivePhysRegs LiveRegs; ++ computeAndAddLiveIns(LiveRegs, *mainMBB); ++ computeAndAddLiveIns(LiveRegs, *SevenMBB); ++ computeAndAddLiveIns(LiveRegs, *SevenMBB0); ++ computeAndAddLiveIns(LiveRegs, *SevenMBB1); ++ computeAndAddLiveIns(LiveRegs, *SevenMBB2); ++ computeAndAddLiveIns(LiveRegs, *SevenMBB3); ++ computeAndAddLiveIns(LiveRegs, *ZeroMBB); ++ computeAndAddLiveIns(LiveRegs, *ZeroMBB0); ++ computeAndAddLiveIns(LiveRegs, *ZeroMBB1); ++ computeAndAddLiveIns(LiveRegs, *ZeroMBB2); ++ computeAndAddLiveIns(LiveRegs, *ZeroMBB3); ++ computeAndAddLiveIns(LiveRegs, *OneMBB); ++ computeAndAddLiveIns(LiveRegs, *OneMBB0); ++ computeAndAddLiveIns(LiveRegs, *OneMBB1); ++ computeAndAddLiveIns(LiveRegs, *OneMBB2); ++ computeAndAddLiveIns(LiveRegs, *OneMBB3); ++ computeAndAddLiveIns(LiveRegs, *TwoMBB); ++ computeAndAddLiveIns(LiveRegs, *TwoMBB0); ++ computeAndAddLiveIns(LiveRegs, *TwoMBB1); ++ computeAndAddLiveIns(LiveRegs, *TwoMBB2); ++ computeAndAddLiveIns(LiveRegs, *TwoMBB3); ++ computeAndAddLiveIns(LiveRegs, *ThreeMBB); ++ computeAndAddLiveIns(LiveRegs, *ThreeMBB0); ++ computeAndAddLiveIns(LiveRegs, *ThreeMBB1); ++ computeAndAddLiveIns(LiveRegs, *ThreeMBB2); ++ computeAndAddLiveIns(LiveRegs, *ThreeMBB3); ++ computeAndAddLiveIns(LiveRegs, *FourMBB); ++ computeAndAddLiveIns(LiveRegs, *FourMBB0); ++ computeAndAddLiveIns(LiveRegs, *FourMBB1); ++ computeAndAddLiveIns(LiveRegs, *FourMBB2); ++ computeAndAddLiveIns(LiveRegs, *FourMBB3); ++ computeAndAddLiveIns(LiveRegs, *FiveMBB); ++ computeAndAddLiveIns(LiveRegs, *FiveMBB0); ++ computeAndAddLiveIns(LiveRegs, *FiveMBB1); ++ computeAndAddLiveIns(LiveRegs, *FiveMBB2); ++ computeAndAddLiveIns(LiveRegs, *FiveMBB3); ++ computeAndAddLiveIns(LiveRegs, *SixMBB); ++ computeAndAddLiveIns(LiveRegs, *SixMBB0); ++ computeAndAddLiveIns(LiveRegs, *SixMBB1); ++ computeAndAddLiveIns(LiveRegs, *SixMBB2); ++ computeAndAddLiveIns(LiveRegs, *SixMBB3); ++ computeAndAddLiveIns(LiveRegs, *sinkMBB); ++ computeAndAddLiveIns(LiveRegs, *exitMBB); ++ ++ NMBBI = BB.end(); ++ I->eraseFromParent(); ++ ++ return true; ++} ++ ++bool LoongArchExpandPseudo::expandAtomicBinOpSubword( ++ MachineBasicBlock &BB, MachineBasicBlock::iterator I, ++ MachineBasicBlock::iterator &NMBBI) { ++ ++ MachineFunction *MF = BB.getParent(); ++ ++ DebugLoc DL = I->getDebugLoc(); ++ unsigned LL, SC; ++ unsigned BEQ = LoongArch::BEQ32; ++ unsigned SEOp = LoongArch::EXT_W_H32; ++ ++ LL = LoongArch::LL_W; ++ SC = LoongArch::SC_W; ++ ++ bool IsSwap = false; ++ bool IsNand = false; ++ bool IsMAX = false; ++ bool IsMIN = false; ++ bool IsUnsigned = false; ++ ++ unsigned Opcode = 0; ++ switch (I->getOpcode()) { ++ case LoongArch::ATOMIC_LOAD_NAND_I8_POSTRA: ++ SEOp = LoongArch::EXT_W_B32; ++ LLVM_FALLTHROUGH; ++ case LoongArch::ATOMIC_LOAD_NAND_I16_POSTRA: ++ IsNand = true; ++ break; ++ case LoongArch::ATOMIC_SWAP_I8_POSTRA: ++ SEOp = LoongArch::EXT_W_B32; ++ LLVM_FALLTHROUGH; ++ case LoongArch::ATOMIC_SWAP_I16_POSTRA: ++ IsSwap = true; ++ break; ++ case LoongArch::ATOMIC_LOAD_ADD_I8_POSTRA: ++ SEOp = LoongArch::EXT_W_B32; ++ LLVM_FALLTHROUGH; ++ case LoongArch::ATOMIC_LOAD_ADD_I16_POSTRA: ++ Opcode = LoongArch::ADD_W; ++ break; ++ case LoongArch::ATOMIC_LOAD_MAX_I8_POSTRA: ++ SEOp = LoongArch::EXT_W_B32; ++ LLVM_FALLTHROUGH; ++ case LoongArch::ATOMIC_LOAD_MAX_I16_POSTRA: ++ Opcode = LoongArch::AMMAX_DB_W; ++ IsMAX = true; ++ break; ++ case LoongArch::ATOMIC_LOAD_MIN_I8_POSTRA: ++ SEOp = LoongArch::EXT_W_B32; ++ LLVM_FALLTHROUGH; ++ case LoongArch::ATOMIC_LOAD_MIN_I16_POSTRA: ++ Opcode = LoongArch::AMMIN_DB_W; ++ IsMIN = true; ++ break; ++ case LoongArch::ATOMIC_LOAD_UMAX_I8_POSTRA: ++ SEOp = LoongArch::EXT_W_B32; ++ LLVM_FALLTHROUGH; ++ case LoongArch::ATOMIC_LOAD_UMAX_I16_POSTRA: ++ Opcode = LoongArch::AMMAX_DB_WU; ++ IsMAX = true; ++ IsUnsigned = true; ++ break; ++ case LoongArch::ATOMIC_LOAD_UMIN_I8_POSTRA: ++ SEOp = LoongArch::EXT_W_B32; ++ LLVM_FALLTHROUGH; ++ case LoongArch::ATOMIC_LOAD_UMIN_I16_POSTRA: ++ Opcode = LoongArch::AMMIN_DB_WU; ++ IsMIN = true; ++ IsUnsigned = true; ++ break; ++ case LoongArch::ATOMIC_LOAD_SUB_I8_POSTRA: ++ SEOp = LoongArch::EXT_W_B32; ++ LLVM_FALLTHROUGH; ++ case LoongArch::ATOMIC_LOAD_SUB_I16_POSTRA: ++ Opcode = LoongArch::SUB_W; ++ break; ++ case LoongArch::ATOMIC_LOAD_AND_I8_POSTRA: ++ SEOp = LoongArch::EXT_W_B32; ++ LLVM_FALLTHROUGH; ++ case LoongArch::ATOMIC_LOAD_AND_I16_POSTRA: ++ Opcode = LoongArch::AND32; ++ break; ++ case LoongArch::ATOMIC_LOAD_OR_I8_POSTRA: ++ SEOp = LoongArch::EXT_W_B32; ++ LLVM_FALLTHROUGH; ++ case LoongArch::ATOMIC_LOAD_OR_I16_POSTRA: ++ Opcode = LoongArch::OR32; ++ break; ++ case LoongArch::ATOMIC_LOAD_XOR_I8_POSTRA: ++ SEOp = LoongArch::EXT_W_B32; ++ LLVM_FALLTHROUGH; ++ case LoongArch::ATOMIC_LOAD_XOR_I16_POSTRA: ++ Opcode = LoongArch::XOR32; ++ break; ++ default: ++ llvm_unreachable("Unknown subword atomic pseudo for expansion!"); ++ } ++ ++ unsigned Dest = I->getOperand(0).getReg(); ++ unsigned Ptr = I->getOperand(1).getReg(); ++ unsigned Incr = I->getOperand(2).getReg(); ++ unsigned Mask = I->getOperand(3).getReg(); ++ unsigned Mask2 = I->getOperand(4).getReg(); ++ unsigned ShiftAmnt = I->getOperand(5).getReg(); ++ unsigned OldVal = I->getOperand(6).getReg(); ++ unsigned BinOpRes = I->getOperand(7).getReg(); ++ unsigned StoreVal = I->getOperand(8).getReg(); ++ ++ const BasicBlock *LLVM_BB = BB.getBasicBlock(); ++ MachineBasicBlock *loopMBB = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineBasicBlock *sinkMBB = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineBasicBlock *exitMBB = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineFunction::iterator It = ++BB.getIterator(); ++ MF->insert(It, loopMBB); ++ MF->insert(It, sinkMBB); ++ MF->insert(It, exitMBB); ++ ++ exitMBB->splice(exitMBB->begin(), &BB, std::next(I), BB.end()); ++ exitMBB->transferSuccessorsAndUpdatePHIs(&BB); ++ ++ BB.addSuccessor(loopMBB, BranchProbability::getOne()); ++ loopMBB->addSuccessor(sinkMBB); ++ loopMBB->addSuccessor(loopMBB); ++ loopMBB->normalizeSuccProbs(); ++ ++ BuildMI(loopMBB, DL, TII->get(LL), OldVal).addReg(Ptr).addImm(0); ++ if (IsNand) { ++ // and andres, oldval, incr2 ++ // nor binopres, $0, andres ++ // and newval, binopres, mask ++ BuildMI(loopMBB, DL, TII->get(LoongArch::AND32), BinOpRes) ++ .addReg(OldVal) ++ .addReg(Incr); ++ BuildMI(loopMBB, DL, TII->get(LoongArch::NOR32), BinOpRes) ++ .addReg(LoongArch::ZERO) ++ .addReg(BinOpRes); ++ BuildMI(loopMBB, DL, TII->get(LoongArch::AND32), BinOpRes) ++ .addReg(BinOpRes) ++ .addReg(Mask); ++ } else if (IsMAX || IsMIN) { ++ ++ unsigned SLTScratch4 = IsUnsigned ? LoongArch::SLTU32 : LoongArch::SLT32; ++ unsigned CMPIncr = IsMAX ? LoongArch::MASKEQZ32 : LoongArch::MASKNEZ32; ++ unsigned CMPOldVal = IsMAX ? LoongArch::MASKNEZ32 : LoongArch::MASKEQZ32; ++ ++ unsigned Scratch4 = I->getOperand(9).getReg(); ++ unsigned Scratch5 = I->getOperand(10).getReg(); ++ ++ BuildMI(loopMBB, DL, TII->get(LoongArch::AND32), Scratch5) ++ .addReg(OldVal) ++ .addReg(Mask); ++ BuildMI(loopMBB, DL, TII->get(LoongArch::AND32), Incr) ++ .addReg(Incr) ++ .addReg(Mask); ++ BuildMI(loopMBB, DL, TII->get(SLTScratch4), Scratch4) ++ .addReg(Scratch5) ++ .addReg(Incr); ++ BuildMI(loopMBB, DL, TII->get(CMPOldVal), BinOpRes) ++ .addReg(Scratch5) ++ .addReg(Scratch4); ++ BuildMI(loopMBB, DL, TII->get(CMPIncr), Scratch4) ++ .addReg(Incr) ++ .addReg(Scratch4); ++ BuildMI(loopMBB, DL, TII->get(LoongArch::OR32), BinOpRes) ++ .addReg(BinOpRes) ++ .addReg(Scratch4); ++ ++ } else if (!IsSwap) { ++ // binopres, oldval, incr2 ++ // and newval, binopres, mask ++ BuildMI(loopMBB, DL, TII->get(Opcode), BinOpRes) ++ .addReg(OldVal) ++ .addReg(Incr); ++ BuildMI(loopMBB, DL, TII->get(LoongArch::AND32), BinOpRes) ++ .addReg(BinOpRes) ++ .addReg(Mask); ++ } else { // atomic.swap ++ // and newval, incr2, mask ++ BuildMI(loopMBB, DL, TII->get(LoongArch::AND32), BinOpRes) ++ .addReg(Incr) ++ .addReg(Mask); ++ } ++ ++ // and StoreVal, OlddVal, Mask2 ++ // or StoreVal, StoreVal, BinOpRes ++ // StoreVal = sc StoreVal, 0(Ptr) ++ // beq StoreVal, zero, loopMBB ++ BuildMI(loopMBB, DL, TII->get(LoongArch::AND32), StoreVal) ++ .addReg(OldVal) ++ .addReg(Mask2); ++ BuildMI(loopMBB, DL, TII->get(LoongArch::OR32), StoreVal) ++ .addReg(StoreVal) ++ .addReg(BinOpRes); ++ BuildMI(loopMBB, DL, TII->get(SC), StoreVal) ++ .addReg(StoreVal) ++ .addReg(Ptr) ++ .addImm(0); ++ BuildMI(loopMBB, DL, TII->get(BEQ)) ++ .addReg(StoreVal) ++ .addReg(LoongArch::ZERO) ++ .addMBB(loopMBB); ++ ++ // sinkMBB: ++ // and maskedoldval1,oldval,mask ++ // srl srlres,maskedoldval1,shiftamt ++ // sign_extend dest,srlres ++ ++ sinkMBB->addSuccessor(exitMBB, BranchProbability::getOne()); ++ ++ BuildMI(sinkMBB, DL, TII->get(LoongArch::AND32), Dest) ++ .addReg(OldVal) ++ .addReg(Mask); ++ BuildMI(sinkMBB, DL, TII->get(LoongArch::SRL_W), Dest) ++ .addReg(Dest) ++ .addReg(ShiftAmnt); ++ ++ BuildMI(sinkMBB, DL, TII->get(SEOp), Dest).addReg(Dest); ++ ++ LivePhysRegs LiveRegs; ++ computeAndAddLiveIns(LiveRegs, *loopMBB); ++ computeAndAddLiveIns(LiveRegs, *sinkMBB); ++ computeAndAddLiveIns(LiveRegs, *exitMBB); ++ ++ NMBBI = BB.end(); ++ I->eraseFromParent(); ++ ++ return true; ++} ++ ++bool LoongArchExpandPseudo::expandAtomicBinOp(MachineBasicBlock &BB, ++ MachineBasicBlock::iterator I, ++ MachineBasicBlock::iterator &NMBBI, ++ unsigned Size) { ++ MachineFunction *MF = BB.getParent(); ++ ++ DebugLoc DL = I->getDebugLoc(); ++ ++ unsigned LL, SC, ZERO, BEQ, SUB; ++ if (Size == 4) { ++ LL = LoongArch::LL_W; ++ SC = LoongArch::SC_W; ++ BEQ = LoongArch::BEQ32; ++ ZERO = LoongArch::ZERO; ++ SUB = LoongArch::SUB_W; ++ } else { ++ LL = LoongArch::LL_D; ++ SC = LoongArch::SC_D; ++ ZERO = LoongArch::ZERO_64; ++ BEQ = LoongArch::BEQ; ++ SUB = LoongArch::SUB_D; ++ } ++ ++ unsigned OldVal = I->getOperand(0).getReg(); ++ unsigned Ptr = I->getOperand(1).getReg(); ++ unsigned Incr = I->getOperand(2).getReg(); ++ unsigned Scratch = I->getOperand(3).getReg(); ++ ++ unsigned Opcode = 0; ++ unsigned OR = 0; ++ unsigned AND = 0; ++ unsigned NOR = 0; ++ bool IsNand = false; ++ bool IsSub = false; ++ switch (I->getOpcode()) { ++ case LoongArch::ATOMIC_LOAD_ADD_I32_POSTRA: ++ Opcode = LoongArch::AMADD_DB_W; ++ break; ++ case LoongArch::ATOMIC_LOAD_SUB_I32_POSTRA: ++ IsSub = true; ++ Opcode = LoongArch::AMADD_DB_W; ++ break; ++ case LoongArch::ATOMIC_LOAD_AND_I32_POSTRA: ++ Opcode = LoongArch::AMAND_DB_W; ++ break; ++ case LoongArch::ATOMIC_LOAD_OR_I32_POSTRA: ++ Opcode = LoongArch::AMOR_DB_W; ++ break; ++ case LoongArch::ATOMIC_LOAD_XOR_I32_POSTRA: ++ Opcode = LoongArch::AMXOR_DB_W; ++ break; ++ case LoongArch::ATOMIC_LOAD_NAND_I32_POSTRA: ++ IsNand = true; ++ AND = LoongArch::AND32; ++ NOR = LoongArch::NOR32; ++ break; ++ case LoongArch::ATOMIC_SWAP_I32_POSTRA: ++ OR = LoongArch::AMSWAP_DB_W; ++ break; ++ case LoongArch::ATOMIC_LOAD_MAX_I32_POSTRA: ++ Opcode = LoongArch::AMMAX_DB_W; ++ break; ++ case LoongArch::ATOMIC_LOAD_MIN_I32_POSTRA: ++ Opcode = LoongArch::AMMIN_DB_W; ++ break; ++ case LoongArch::ATOMIC_LOAD_UMAX_I32_POSTRA: ++ Opcode = LoongArch::AMMAX_DB_WU; ++ break; ++ case LoongArch::ATOMIC_LOAD_UMIN_I32_POSTRA: ++ Opcode = LoongArch::AMMIN_DB_WU; ++ break; ++ case LoongArch::ATOMIC_LOAD_ADD_I64_POSTRA: ++ Opcode = LoongArch::AMADD_DB_D; ++ break; ++ case LoongArch::ATOMIC_LOAD_SUB_I64_POSTRA: ++ IsSub = true; ++ Opcode = LoongArch::AMADD_DB_D; ++ break; ++ case LoongArch::ATOMIC_LOAD_AND_I64_POSTRA: ++ Opcode = LoongArch::AMAND_DB_D; ++ break; ++ case LoongArch::ATOMIC_LOAD_OR_I64_POSTRA: ++ Opcode = LoongArch::AMOR_DB_D; ++ break; ++ case LoongArch::ATOMIC_LOAD_XOR_I64_POSTRA: ++ Opcode = LoongArch::AMXOR_DB_D; ++ break; ++ case LoongArch::ATOMIC_LOAD_NAND_I64_POSTRA: ++ IsNand = true; ++ AND = LoongArch::AND; ++ NOR = LoongArch::NOR; ++ break; ++ case LoongArch::ATOMIC_SWAP_I64_POSTRA: ++ OR = LoongArch::AMSWAP_DB_D; ++ break; ++ case LoongArch::ATOMIC_LOAD_MAX_I64_POSTRA: ++ Opcode = LoongArch::AMMAX_DB_D; ++ break; ++ case LoongArch::ATOMIC_LOAD_MIN_I64_POSTRA: ++ Opcode = LoongArch::AMMIN_DB_D; ++ break; ++ case LoongArch::ATOMIC_LOAD_UMAX_I64_POSTRA: ++ Opcode = LoongArch::AMMAX_DB_DU; ++ break; ++ case LoongArch::ATOMIC_LOAD_UMIN_I64_POSTRA: ++ Opcode = LoongArch::AMMIN_DB_DU; ++ break; ++ default: ++ llvm_unreachable("Unknown pseudo atomic!"); ++ } ++ ++ const BasicBlock *LLVM_BB = BB.getBasicBlock(); ++ MachineBasicBlock *loopMBB = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineBasicBlock *exitMBB = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineFunction::iterator It = ++BB.getIterator(); ++ MF->insert(It, loopMBB); ++ MF->insert(It, exitMBB); ++ ++ exitMBB->splice(exitMBB->begin(), &BB, std::next(I), BB.end()); ++ exitMBB->transferSuccessorsAndUpdatePHIs(&BB); ++ ++ BB.addSuccessor(loopMBB, BranchProbability::getOne()); ++ loopMBB->addSuccessor(exitMBB); ++ loopMBB->addSuccessor(loopMBB); ++ loopMBB->normalizeSuccProbs(); ++ ++ assert((OldVal != Ptr) && "Clobbered the wrong ptr reg!"); ++ assert((OldVal != Incr) && "Clobbered the wrong reg!"); ++ if (Opcode) { ++ if(IsSub){ ++ BuildMI(loopMBB, DL, TII->get(SUB), Scratch).addReg(ZERO).addReg(Incr); ++ BuildMI(loopMBB, DL, TII->get(Opcode), OldVal).addReg(Scratch).addReg(Ptr).addImm(0); ++ } ++ else{ ++ BuildMI(loopMBB, DL, TII->get(Opcode), OldVal).addReg(Incr).addReg(Ptr).addImm(0); ++ } ++ } else if (IsNand) { ++ assert(AND && NOR && ++ "Unknown nand instruction for atomic pseudo expansion"); ++ BuildMI(loopMBB, DL, TII->get(LL), OldVal).addReg(Ptr).addImm(0); ++ BuildMI(loopMBB, DL, TII->get(AND), Scratch).addReg(OldVal).addReg(Incr); ++ BuildMI(loopMBB, DL, TII->get(NOR), Scratch).addReg(ZERO).addReg(Scratch); ++ BuildMI(loopMBB, DL, TII->get(SC), Scratch).addReg(Scratch).addReg(Ptr).addImm(0); ++ BuildMI(loopMBB, DL, TII->get(BEQ)).addReg(Scratch).addReg(ZERO).addMBB(loopMBB); ++ } else { ++ assert(OR && "Unknown instruction for atomic pseudo expansion!"); ++ BuildMI(loopMBB, DL, TII->get(OR), OldVal).addReg(Incr).addReg(Ptr).addImm(0); ++ } ++ ++ ++ NMBBI = BB.end(); ++ I->eraseFromParent(); ++ ++ LivePhysRegs LiveRegs; ++ computeAndAddLiveIns(LiveRegs, *loopMBB); ++ computeAndAddLiveIns(LiveRegs, *exitMBB); ++ ++ return true; ++} ++ ++bool LoongArchExpandPseudo::expandLoadAddr(MachineBasicBlock &BB, ++ MachineBasicBlock::iterator I, ++ MachineBasicBlock::iterator &NMBBI) { ++ MachineFunction *MF = BB.getParent(); ++ MachineInstr &MI = *I; ++ DebugLoc DL = MI.getDebugLoc(); ++ ++ unsigned Op = MI.getOpcode(); ++ unsigned DestReg = MI.getOperand(0).getReg(); ++ unsigned TmpReg; ++ const MachineOperand &MO = MI.getOperand(1); ++ Reloc::Model RM = MF->getTarget().getRelocationModel(); ++ ++ MachineInstrBuilder MIB1, MIB2, MIB3, MIB4, MIB5; ++ unsigned HiFlag, LoFlag, HigherFlag, HighestFlag; ++ unsigned HiOp, LoOp, HigherOp, HighestOp, LastOp; ++ bool UseGot = false; ++ ++ HiOp = LoongArch::PCADDU12I_ri; ++ LoOp = LoongArch::ORI_rri; ++ HigherOp = LoongArch::LU32I_D_ri; ++ HighestOp = LoongArch::LU52I_D_rri; ++ ++ switch (Op) { ++ case LoongArch::LoadAddrLocal: ++ if (RM == Reloc::Static) { // for jit ++ HiFlag = LoongArchII::MO_ABS_HI; ++ LoFlag = LoongArchII::MO_ABS_LO; ++ HigherFlag = LoongArchII::MO_ABS_HIGHER; ++ HighestFlag = LoongArchII::MO_ABS_HIGHEST; ++ // lu12i.w + ori + lu32i.d + lu52i.d ++ HiOp = LoongArch::LU12I_W; ++ LoOp = LoongArch::ORI; ++ HigherOp = LoongArch::LU32I_D; ++ HighestOp = LoongArch::LU52I_D; ++ } else { ++ // pcaddu12i + addi.d ++ LoFlag = LoongArchII::MO_PCREL_LO; ++ HiFlag = LoongArchII::MO_PCREL_HI; ++ LoOp = LoongArch::ADDI_D_rri; ++ } ++ break; ++ case LoongArch::LoadAddrLocalRR: ++ // pcaddu12i + ori + lu32i.d + lu52i.d + add.d ++ LoFlag = LoongArchII::MO_PCREL_RRLO; ++ HiFlag = LoongArchII::MO_PCREL_RRHI; ++ HigherFlag = LoongArchII::MO_PCREL_RRHIGHER; ++ HighestFlag = LoongArchII::MO_PCREL_RRHIGHEST; ++ LastOp = LoongArch::ADD_D_rrr; ++ break; ++ case LoongArch::LoadAddrGlobal: ++ case LoongArch::LoadAddrGlobal_Alias: ++ // pcaddu12i + ld.d ++ LoFlag = LoongArchII::MO_GOT_LO; ++ HiFlag = LoongArchII::MO_GOT_HI; ++ HiOp = LoongArch::PCADDU12I_rii; ++ LoOp = LoongArch::LD_D_rrii; ++ UseGot = true; ++ break; ++ case LoongArch::LoadAddrGlobalRR: ++ // pcaddu12i + ori + lu32i.d + lu52i.d +ldx.d ++ LoFlag = LoongArchII::MO_GOT_RRLO; ++ HiFlag = LoongArchII::MO_GOT_RRHI; ++ HigherFlag = LoongArchII::MO_GOT_RRHIGHER; ++ HighestFlag = LoongArchII::MO_GOT_RRHIGHEST; ++ HiOp = LoongArch::PCADDU12I_rii; ++ LoOp = LoongArch::ORI_rrii; ++ HigherOp = LoongArch::LU32I_D_rii; ++ HighestOp = LoongArch::LU52I_D_rrii; ++ LastOp = LoongArch::LDX_D_rrr; ++ UseGot = true; ++ break; ++ case LoongArch::LoadAddrTLS_LE: ++ // lu12i.w + ori + lu32i.d + lu52i.d ++ LoFlag = LoongArchII::MO_TLSLE_LO; ++ HiFlag = LoongArchII::MO_TLSLE_HI; ++ HigherFlag = LoongArchII::MO_TLSLE_HIGHER; ++ HighestFlag = LoongArchII::MO_TLSLE_HIGHEST; ++ HiOp = LoongArch::LU12I_W_ri; ++ break; ++ case LoongArch::LoadAddrTLS_IE: ++ // pcaddu12i + ld.d ++ LoFlag = LoongArchII::MO_TLSIE_LO; ++ HiFlag = LoongArchII::MO_TLSIE_HI; ++ HiOp = LoongArch::PCADDU12I_rii; ++ LoOp = LoongArch::LD_D_rrii; ++ UseGot = true; ++ break; ++ case LoongArch::LoadAddrTLS_IE_RR: ++ // pcaddu12i + ori + lu32i.d + lu52i.d +ldx.d ++ LoFlag = LoongArchII::MO_TLSIE_RRLO; ++ HiFlag = LoongArchII::MO_TLSIE_RRHI; ++ HigherFlag = LoongArchII::MO_TLSIE_RRHIGHER; ++ HighestFlag = LoongArchII::MO_TLSIE_RRHIGHEST; ++ HiOp = LoongArch::PCADDU12I_rii; ++ LoOp = LoongArch::ORI_rrii; ++ HigherOp = LoongArch::LU32I_D_rii; ++ HighestOp = LoongArch::LU52I_D_rrii; ++ LastOp = LoongArch::LDX_D_rrr; ++ UseGot = true; ++ break; ++ case LoongArch::LoadAddrTLS_LD: ++ case LoongArch::LoadAddrTLS_GD: ++ // pcaddu12i + addi.d ++ LoFlag = LoongArchII::MO_TLSGD_LO; ++ HiFlag = LoongArchII::MO_TLSGD_HI; ++ HiOp = LoongArch::PCADDU12I_rii; ++ LoOp = LoongArch::ADDI_D_rrii; ++ UseGot = true; ++ break; ++ case LoongArch::LoadAddrTLS_LD_RR: ++ case LoongArch::LoadAddrTLS_GD_RR: ++ // pcaddu12i + ori + lu32i.d + lu52i.d + add.d ++ LoFlag = LoongArchII::MO_TLSGD_RRLO; ++ HiFlag = LoongArchII::MO_TLSGD_RRHI; ++ HigherFlag = LoongArchII::MO_TLSGD_RRHIGHER; ++ HighestFlag = LoongArchII::MO_TLSGD_RRHIGHEST; ++ HiOp = LoongArch::PCADDU12I_rii; ++ LoOp = LoongArch::ORI_rrii; ++ HigherOp = LoongArch::LU32I_D_rii; ++ HighestOp = LoongArch::LU52I_D_rrii; ++ LastOp = LoongArch::ADD_D_rrr; ++ UseGot = true; ++ break; ++ default: ++ break; ++ } ++ ++ MIB1 = BuildMI(BB, I, DL, TII->get(HiOp), DestReg); ++ ++ switch (Op) { ++ case LoongArch::LoadAddrLocal: ++ if (RM == Reloc::Static) { // for jit ++ // la.abs rd, symbol ++ MIB2 = BuildMI(BB, I, DL, TII->get(LoOp), DestReg).addReg(DestReg); ++ MIB3 = BuildMI(BB, I, DL, TII->get(HigherOp), DestReg); ++ MIB4 = BuildMI(BB, I, DL, TII->get(HighestOp), DestReg).addReg(DestReg); ++ if (MO.isJTI()) { ++ MIB1.addJumpTableIndex(MO.getIndex(), HiFlag); ++ MIB2.addJumpTableIndex(MO.getIndex(), LoFlag); ++ MIB3.addJumpTableIndex(MO.getIndex(), HigherFlag); ++ MIB4.addJumpTableIndex(MO.getIndex(), HighestFlag); ++ } else if (MO.isBlockAddress()) { ++ MIB1.addBlockAddress(MO.getBlockAddress(), 0, HiFlag); ++ MIB2.addBlockAddress(MO.getBlockAddress(), 0, LoFlag); ++ MIB3.addBlockAddress(MO.getBlockAddress(), 0, HigherFlag); ++ MIB4.addBlockAddress(MO.getBlockAddress(), 0, HighestFlag); ++ } else { ++ MIB1.addDisp(MO, 0, HiFlag); ++ MIB2.addDisp(MO, 0, LoFlag); ++ MIB3.addDisp(MO, 0, HigherFlag); ++ MIB4.addDisp(MO, 0, HighestFlag); ++ } ++ break; ++ } ++ LLVM_FALLTHROUGH; ++ case LoongArch::LoadAddrGlobal: // la.global rd, symbol ++ case LoongArch::LoadAddrGlobal_Alias: // la rd, symbol ++ case LoongArch::LoadAddrTLS_IE: // la.tls.ie rd, symbol ++ case LoongArch::LoadAddrTLS_LD: // la.tls.ld rd, symbol ++ case LoongArch::LoadAddrTLS_GD: // la.tls.gd rd, symbol ++ MIB2 = BuildMI(BB, I, DL, TII->get(LoOp), DestReg) ++ .addReg(DestReg); ++ if (MO.isJTI()) { ++ MIB1.addJumpTableIndex(MO.getIndex(), HiFlag); ++ MIB2.addJumpTableIndex(MO.getIndex(), LoFlag); ++ } else if (MO.isBlockAddress()) { ++ MIB1.addBlockAddress(MO.getBlockAddress(), 0, HiFlag); ++ MIB2.addBlockAddress(MO.getBlockAddress(), 0, LoFlag); ++ } else { ++ MIB1.addDisp(MO, 0, HiFlag); ++ MIB2.addDisp(MO, 0, LoFlag); ++ } ++ if (UseGot == true) { ++ MIB1.addExternalSymbol("_GLOBAL_OFFSET_TABLE_"); ++ MIB2.addExternalSymbol("_GLOBAL_OFFSET_TABLE_"); ++ } ++ break; ++ ++ case LoongArch::LoadAddrLocalRR: //la.local rd, rs, symbol ++ case LoongArch::LoadAddrGlobalRR: // la.global rd, rs, symbol ++ case LoongArch::LoadAddrTLS_IE_RR: // la.tls.ie rd, rs, symbol ++ case LoongArch::LoadAddrTLS_LD_RR: // la.tls.ld rd, rs, symbol ++ case LoongArch::LoadAddrTLS_GD_RR: // la.tls.gd rd, rs, symbol ++ TmpReg = MI.getOperand(MI.getNumOperands()-1).getReg(); ++ MIB2 = BuildMI(BB, I, DL, TII->get(LoOp), TmpReg) ++ .addReg(TmpReg); ++ MIB3 = BuildMI(BB, I, DL, TII->get(HigherOp), TmpReg); ++ MIB4 = BuildMI(BB, I, DL, TII->get(HighestOp), TmpReg) ++ .addReg(TmpReg); ++ MIB5 = BuildMI(BB, I, DL, TII->get(LastOp), DestReg) ++ .addReg(DestReg) ++ .addReg(TmpReg); ++ if (MO.isJTI()) { ++ MIB1.addJumpTableIndex(MO.getIndex(), HiFlag); ++ MIB2.addJumpTableIndex(MO.getIndex(), LoFlag); ++ MIB3.addJumpTableIndex(MO.getIndex(), HigherFlag); ++ MIB4.addJumpTableIndex(MO.getIndex(), HighestFlag); ++ } else if (MO.isBlockAddress()) { ++ MIB1.addBlockAddress(MO.getBlockAddress(), 0, HiFlag); ++ MIB2.addBlockAddress(MO.getBlockAddress(), 0, LoFlag); ++ MIB3.addBlockAddress(MO.getBlockAddress(), 0, HigherFlag); ++ MIB4.addBlockAddress(MO.getBlockAddress(), 0, HighestFlag); ++ } else { ++ MIB1.addDisp(MO, 0, HiFlag); ++ MIB2.addDisp(MO, 0, LoFlag); ++ MIB3.addDisp(MO, 0, HigherFlag); ++ MIB4.addDisp(MO, 0, HighestFlag); ++ } ++ if (UseGot == true) { ++ MIB1.addExternalSymbol("_GLOBAL_OFFSET_TABLE_"); ++ MIB2.addExternalSymbol("_GLOBAL_OFFSET_TABLE_"); ++ MIB3.addExternalSymbol("_GLOBAL_OFFSET_TABLE_"); ++ MIB4.addExternalSymbol("_GLOBAL_OFFSET_TABLE_"); ++ } ++ break; ++ case LoongArch::LoadAddrTLS_LE: // la.tls.le rd, symbol ++ MIB2 = BuildMI(BB, I, DL, TII->get(LoOp), DestReg) ++ .addReg(DestReg); ++ MIB3 = BuildMI(BB, I, DL, TII->get(HigherOp), DestReg); ++ MIB4 = BuildMI(BB, I, DL, TII->get(HighestOp), DestReg) ++ .addReg(DestReg); ++ if (MO.isJTI()) { ++ MIB1.addJumpTableIndex(MO.getIndex(), HiFlag); ++ MIB2.addJumpTableIndex(MO.getIndex(), LoFlag); ++ MIB3.addJumpTableIndex(MO.getIndex(), HigherFlag); ++ MIB4.addJumpTableIndex(MO.getIndex(), HighestFlag); ++ } else if (MO.isBlockAddress()) { ++ MIB1.addBlockAddress(MO.getBlockAddress(), 0, HiFlag); ++ MIB2.addBlockAddress(MO.getBlockAddress(), 0, LoFlag); ++ MIB3.addBlockAddress(MO.getBlockAddress(), 0, HigherFlag); ++ MIB4.addBlockAddress(MO.getBlockAddress(), 0, HighestFlag); ++ } else { ++ MIB1.addDisp(MO, 0, HiFlag); ++ MIB2.addDisp(MO, 0, LoFlag); ++ MIB3.addDisp(MO, 0, HigherFlag); ++ MIB4.addDisp(MO, 0, HighestFlag); ++ } ++ break; ++ default: ++ break; ++ } ++ ++ MI.eraseFromParent(); ++ ++ return true; ++} ++ ++bool LoongArchExpandPseudo::expandPseudoTailCall( ++ MachineBasicBlock &BB, MachineBasicBlock::iterator I) { ++ ++ MachineInstr &MI = *I; ++ DebugLoc DL = MI.getDebugLoc(); ++ ++ const MachineOperand &MO = MI.getOperand(0); ++ ++ unsigned NoFlag = LoongArchII::MO_NO_FLAG; ++ ++ MachineInstrBuilder MIB = ++ BuildMI(BB, I, DL, TII->get(LoongArch::PseudoTailReturn)); ++ ++ if (MO.isSymbol()) { ++ MIB.addExternalSymbol(MO.getSymbolName(), NoFlag); ++ } else { ++ MIB.addDisp(MO, 0, NoFlag); ++ } ++ ++ MI.eraseFromParent(); ++ ++ return true; ++} ++ ++bool LoongArchExpandPseudo::expandPseudoCall(MachineBasicBlock &BB, ++ MachineBasicBlock::iterator I, ++ MachineBasicBlock::iterator &NMBBI) { ++ MachineFunction *MF = BB.getParent(); ++ MachineInstr &MI = *I; ++ DebugLoc DL = MI.getDebugLoc(); ++ CodeModel::Model M = MF->getTarget().getCodeModel(); ++ Reloc::Model RM = MF->getTarget().getRelocationModel(); ++ ++ unsigned Ra = LoongArch::RA_64; ++ const MachineOperand &MO = MI.getOperand(0); ++ unsigned HiFlag, LoFlag, HigherFlag, HighestFlag, NoFlag; ++ ++ HiFlag = LoongArchII::MO_CALL_HI; ++ LoFlag = LoongArchII::MO_CALL_LO; ++ NoFlag = LoongArchII::MO_NO_FLAG; ++ ++ if (RM == Reloc::Static) { // for jit ++ MachineInstrBuilder MIB1, MIB2, MIB3, MIB4, MIB5; ++ ++ HiFlag = LoongArchII::MO_ABS_HI; ++ LoFlag = LoongArchII::MO_ABS_LO; ++ HigherFlag = LoongArchII::MO_ABS_HIGHER; ++ HighestFlag = LoongArchII::MO_ABS_HIGHEST; ++ // lu12i.w + ori + lu32i.d + lu52i.d + jirl ++ ++ MIB1 = BuildMI(BB, I, DL, TII->get(LoongArch::LU12I_W), Ra); ++ MIB2 = BuildMI(BB, I, DL, TII->get(LoongArch::ORI), Ra) ++ .addReg(Ra); ++ MIB3 = BuildMI(BB, I, DL, TII->get(LoongArch::LU32I_D), Ra); ++ MIB4 = BuildMI(BB, I, DL, TII->get(LoongArch::LU52I_D), Ra) ++ .addReg(Ra); ++ MIB5 = ++ BuildMI(BB, I, DL, TII->get(LoongArch::JIRL), Ra).addReg(Ra).addImm(0); ++ if (MO.isSymbol()) { ++ MIB1.addExternalSymbol(MO.getSymbolName(), HiFlag); ++ MIB2.addExternalSymbol(MO.getSymbolName(), LoFlag); ++ MIB3.addExternalSymbol(MO.getSymbolName(), HigherFlag); ++ MIB4.addExternalSymbol(MO.getSymbolName(), HighestFlag); ++ } else { ++ MIB1.addDisp(MO, 0, HiFlag); ++ MIB2.addDisp(MO, 0, LoFlag); ++ MIB3.addDisp(MO, 0, HigherFlag); ++ MIB4.addDisp(MO, 0, HighestFlag); ++ } ++ } else if (M == CodeModel::Large) { ++ // pcaddu18i + jirl ++ MachineInstrBuilder MIB1; ++ MachineInstrBuilder MIB2; ++ ++ MIB1 = BuildMI(BB, I, DL, TII->get(LoongArch::PCADDU18I), Ra); ++ MIB2 = BuildMI(BB, I, DL, TII->get(LoongArch::JIRL_CALL), Ra).addReg(Ra); ++ if (MO.isSymbol()) { ++ MIB1.addExternalSymbol(MO.getSymbolName(), HiFlag); ++ MIB2.addExternalSymbol(MO.getSymbolName(), LoFlag); ++ } else { ++ MIB1.addDisp(MO, 0, HiFlag); ++ MIB2.addDisp(MO, 0, LoFlag); ++ } ++ } else { ++ // bl ++ MachineInstrBuilder MIB1; ++ MIB1 = BuildMI(BB, I, DL, TII->get(LoongArch::BL)); ++ if (MO.isSymbol()) { ++ MIB1.addExternalSymbol(MO.getSymbolName(), NoFlag); ++ } else { ++ MIB1.addDisp(MO, 0, NoFlag); ++ } ++ } ++ ++ MI.eraseFromParent(); ++ ++ return true; ++} ++ ++bool LoongArchExpandPseudo::expandPseudoTEQ(MachineBasicBlock &BB, ++ MachineBasicBlock::iterator I, ++ MachineBasicBlock::iterator &NMBBI) { ++ MachineInstr &MI = *I; ++ DebugLoc DL = MI.getDebugLoc(); ++ ++ unsigned Divisor = MI.getOperand(0).getReg(); ++ unsigned BneOp = LoongArch::BNE; ++ unsigned Zero = LoongArch::ZERO_64; ++ ++ // beq $Divisor, $zero, 8 ++ BuildMI(BB, I, DL, TII->get(BneOp), Divisor) ++ .addReg(Zero) ++ .addImm(8); ++ // break 7 ++ BuildMI(BB, I, DL, TII->get(LoongArch::BREAK)) ++ .addImm(7);; ++ ++ MI.eraseFromParent(); ++ ++ return true; ++} ++bool LoongArchExpandPseudo::expandMI(MachineBasicBlock &MBB, ++ MachineBasicBlock::iterator MBBI, ++ MachineBasicBlock::iterator &NMBB) { ++ ++ bool Modified = false; ++ ++ switch (MBBI->getOpcode()) { ++ case LoongArch::PseudoTEQ: ++ return expandPseudoTEQ(MBB, MBBI, NMBB); ++ case LoongArch::PseudoCall: ++ return expandPseudoCall(MBB, MBBI, NMBB); ++ case LoongArch::PseudoTailCall: ++ return expandPseudoTailCall(MBB, MBBI); ++ case LoongArch::LoadAddrLocal: ++ case LoongArch::LoadAddrLocalRR: ++ case LoongArch::LoadAddrGlobal: ++ case LoongArch::LoadAddrGlobalRR: ++ case LoongArch::LoadAddrGlobal_Alias: ++ case LoongArch::LoadAddrTLS_LD: ++ case LoongArch::LoadAddrTLS_LD_RR: ++ case LoongArch::LoadAddrTLS_GD: ++ case LoongArch::LoadAddrTLS_GD_RR: ++ case LoongArch::LoadAddrTLS_IE: ++ case LoongArch::LoadAddrTLS_IE_RR: ++ case LoongArch::LoadAddrTLS_LE: ++ return expandLoadAddr(MBB, MBBI, NMBB); ++ case LoongArch::ATOMIC_CMP_SWAP_I32_POSTRA: ++ case LoongArch::ATOMIC_CMP_SWAP_I64_POSTRA: ++ return expandAtomicCmpSwap(MBB, MBBI, NMBB); ++ case LoongArch::ATOMIC_CMP_SWAP_I8_POSTRA: ++ case LoongArch::ATOMIC_CMP_SWAP_I16_POSTRA: ++ return expandAtomicCmpSwapSubword(MBB, MBBI, NMBB); ++ case LoongArch::ATOMIC_SWAP_I8_POSTRA: ++ case LoongArch::ATOMIC_SWAP_I16_POSTRA: ++ case LoongArch::ATOMIC_LOAD_NAND_I8_POSTRA: ++ case LoongArch::ATOMIC_LOAD_NAND_I16_POSTRA: ++ case LoongArch::ATOMIC_LOAD_ADD_I8_POSTRA: ++ case LoongArch::ATOMIC_LOAD_ADD_I16_POSTRA: ++ case LoongArch::ATOMIC_LOAD_SUB_I8_POSTRA: ++ case LoongArch::ATOMIC_LOAD_SUB_I16_POSTRA: ++ case LoongArch::ATOMIC_LOAD_AND_I8_POSTRA: ++ case LoongArch::ATOMIC_LOAD_AND_I16_POSTRA: ++ case LoongArch::ATOMIC_LOAD_OR_I8_POSTRA: ++ case LoongArch::ATOMIC_LOAD_OR_I16_POSTRA: ++ case LoongArch::ATOMIC_LOAD_XOR_I8_POSTRA: ++ case LoongArch::ATOMIC_LOAD_XOR_I16_POSTRA: ++ case LoongArch::ATOMIC_LOAD_MAX_I8_POSTRA: ++ case LoongArch::ATOMIC_LOAD_MAX_I16_POSTRA: ++ case LoongArch::ATOMIC_LOAD_MIN_I8_POSTRA: ++ case LoongArch::ATOMIC_LOAD_MIN_I16_POSTRA: ++ case LoongArch::ATOMIC_LOAD_UMAX_I8_POSTRA: ++ case LoongArch::ATOMIC_LOAD_UMAX_I16_POSTRA: ++ case LoongArch::ATOMIC_LOAD_UMIN_I8_POSTRA: ++ case LoongArch::ATOMIC_LOAD_UMIN_I16_POSTRA: ++ return expandAtomicBinOpSubword(MBB, MBBI, NMBB); ++ case LoongArch::XINSERT_B_VIDX_PSEUDO_POSTRA: ++ case LoongArch::XINSERT_B_VIDX64_PSEUDO_POSTRA: ++ return expandXINSERT_BOp(MBB, MBBI, NMBB); ++ case LoongArch::INSERT_H_VIDX64_PSEUDO_POSTRA: ++ return expandINSERT_HOp(MBB, MBBI, NMBB); ++ case LoongArch::XINSERT_FW_VIDX_PSEUDO_POSTRA: ++ case LoongArch::XINSERT_FW_VIDX64_PSEUDO_POSTRA: ++ return expandXINSERT_FWOp(MBB, MBBI, NMBB); ++ case LoongArch::ATOMIC_LOAD_ADD_I32_POSTRA: ++ case LoongArch::ATOMIC_LOAD_SUB_I32_POSTRA: ++ case LoongArch::ATOMIC_LOAD_AND_I32_POSTRA: ++ case LoongArch::ATOMIC_LOAD_OR_I32_POSTRA: ++ case LoongArch::ATOMIC_LOAD_XOR_I32_POSTRA: ++ case LoongArch::ATOMIC_LOAD_NAND_I32_POSTRA: ++ case LoongArch::ATOMIC_SWAP_I32_POSTRA: ++ case LoongArch::ATOMIC_LOAD_MAX_I32_POSTRA: ++ case LoongArch::ATOMIC_LOAD_MIN_I32_POSTRA: ++ case LoongArch::ATOMIC_LOAD_UMAX_I32_POSTRA: ++ case LoongArch::ATOMIC_LOAD_UMIN_I32_POSTRA: ++ return expandAtomicBinOp(MBB, MBBI, NMBB, 4); ++ case LoongArch::ATOMIC_LOAD_ADD_I64_POSTRA: ++ case LoongArch::ATOMIC_LOAD_SUB_I64_POSTRA: ++ case LoongArch::ATOMIC_LOAD_AND_I64_POSTRA: ++ case LoongArch::ATOMIC_LOAD_OR_I64_POSTRA: ++ case LoongArch::ATOMIC_LOAD_XOR_I64_POSTRA: ++ case LoongArch::ATOMIC_LOAD_NAND_I64_POSTRA: ++ case LoongArch::ATOMIC_SWAP_I64_POSTRA: ++ case LoongArch::ATOMIC_LOAD_MAX_I64_POSTRA: ++ case LoongArch::ATOMIC_LOAD_MIN_I64_POSTRA: ++ case LoongArch::ATOMIC_LOAD_UMAX_I64_POSTRA: ++ case LoongArch::ATOMIC_LOAD_UMIN_I64_POSTRA: ++ return expandAtomicBinOp(MBB, MBBI, NMBB, 8); ++ default: ++ return Modified; ++ } ++} ++ ++bool LoongArchExpandPseudo::expandMBB(MachineBasicBlock &MBB) { ++ bool Modified = false; ++ ++ MachineBasicBlock::iterator MBBI = MBB.begin(), E = MBB.end(); ++ while (MBBI != E) { ++ MachineBasicBlock::iterator NMBBI = std::next(MBBI); ++ Modified |= expandMI(MBB, MBBI, NMBBI); ++ MBBI = NMBBI; ++ } ++ ++ return Modified; ++} ++ ++bool LoongArchExpandPseudo::runOnMachineFunction(MachineFunction &MF) { ++ STI = &static_cast(MF.getSubtarget()); ++ TII = STI->getInstrInfo(); ++ ++ bool Modified = false; ++ for (MachineFunction::iterator MFI = MF.begin(), E = MF.end(); MFI != E; ++ ++MFI) ++ Modified |= expandMBB(*MFI); ++ ++ if (Modified) ++ MF.RenumberBlocks(); ++ ++ return Modified; ++} ++ ++/// createLoongArchExpandPseudoPass - returns an instance of the pseudo instruction ++/// expansion pass. ++FunctionPass *llvm::createLoongArchExpandPseudoPass() { ++ return new LoongArchExpandPseudo(); ++} +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchFrameLowering.cpp b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchFrameLowering.cpp +new file mode 100644 +index 00000000000..2c14eb5af60 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchFrameLowering.cpp +@@ -0,0 +1,563 @@ ++//===-- LoongArchFrameLowering.cpp - LoongArch Frame Information --------------------===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++// ++// This file contains the LoongArch implementation of TargetFrameLowering class. ++// ++//===----------------------------------------------------------------------===// ++ ++#include "LoongArchFrameLowering.h" ++#include "MCTargetDesc/LoongArchBaseInfo.h" ++#include "MCTargetDesc/LoongArchABIInfo.h" ++#include "LoongArchInstrInfo.h" ++#include "LoongArchMachineFunction.h" ++#include "LoongArchTargetMachine.h" ++#include "LoongArchRegisterInfo.h" ++#include "LoongArchSubtarget.h" ++#include "llvm/ADT/BitVector.h" ++#include "llvm/ADT/StringRef.h" ++#include "llvm/ADT/StringSwitch.h" ++#include "llvm/CodeGen/MachineBasicBlock.h" ++#include "llvm/CodeGen/MachineFrameInfo.h" ++#include "llvm/CodeGen/MachineFunction.h" ++#include "llvm/CodeGen/MachineInstr.h" ++#include "llvm/CodeGen/MachineInstrBuilder.h" ++#include "llvm/CodeGen/MachineModuleInfo.h" ++#include "llvm/CodeGen/MachineOperand.h" ++#include "llvm/CodeGen/MachineRegisterInfo.h" ++#include "llvm/CodeGen/RegisterScavenging.h" ++#include "llvm/CodeGen/TargetInstrInfo.h" ++#include "llvm/CodeGen/TargetRegisterInfo.h" ++#include "llvm/CodeGen/TargetSubtargetInfo.h" ++#include "llvm/IR/DataLayout.h" ++#include "llvm/IR/DebugLoc.h" ++#include "llvm/IR/Function.h" ++#include "llvm/MC/MCDwarf.h" ++#include "llvm/MC/MCRegisterInfo.h" ++#include "llvm/MC/MachineLocation.h" ++#include "llvm/Support/CodeGen.h" ++#include "llvm/Support/ErrorHandling.h" ++#include "llvm/Support/MathExtras.h" ++#include "llvm/Target/TargetOptions.h" ++#include ++#include ++#include ++#include ++ ++using namespace llvm; ++ ++// We would like to split the SP adjustment to reduce prologue/epilogue ++// as following instructions. In this way, the offset of the callee saved ++// register could fit in a single store. ++uint64_t ++LoongArchFrameLowering::getFirstSPAdjustAmount(const MachineFunction &MF, ++ bool IsPrologue) const { ++ const MachineFrameInfo &MFI = MF.getFrameInfo(); ++ const std::vector &CSI = MFI.getCalleeSavedInfo(); ++ uint64_t StackSize = MFI.getStackSize(); ++ ++ // Return the FirstSPAdjustAmount if the StackSize can not fit in signed ++ // 12-bit and there exists a callee saved register need to be pushed. ++ if (!isInt<12>(StackSize)) { ++ // FirstSPAdjustAmount is choosed as (2048 - StackAlign) ++ // because 2048 will cause sp = sp + 2048 in epilogue split into ++ // multi-instructions. The offset smaller than 2048 can fit in signle ++ // load/store instruction and we have to stick with the stack alignment. ++ return CSI.size() > 0 ? 2048 - getStackAlignment() ++ : (IsPrologue ? 2048 : 0); ++ } ++ return 0; ++} ++ ++//===----------------------------------------------------------------------===// ++// ++// Stack Frame Processing methods ++// +----------------------------+ ++// ++// The stack is allocated decrementing the stack pointer on ++// the first instruction of a function prologue. Once decremented, ++// all stack references are done thought a positive offset ++// from the stack/frame pointer, so the stack is considering ++// to grow up! Otherwise terrible hacks would have to be made ++// to get this stack ABI compliant :) ++// ++// The stack frame required by the ABI (after call): ++// Offset ++// ++// 0 ---------- ++// 4 Args to pass ++// . Alloca allocations ++// . Local Area ++// . CPU "Callee Saved" Registers ++// . saved FP ++// . saved RA ++// . FPU "Callee Saved" Registers ++// StackSize ----------- ++// ++// Offset - offset from sp after stack allocation on function prologue ++// ++// The sp is the stack pointer subtracted/added from the stack size ++// at the Prologue/Epilogue ++// ++// References to the previous stack (to obtain arguments) are done ++// with offsets that exceeds the stack size: (stacksize+(4*(num_arg-1)) ++// ++// Examples: ++// - reference to the actual stack frame ++// for any local area var there is smt like : FI >= 0, StackOffset: 4 ++// st.w REGX, SP, 4 ++// ++// - reference to previous stack frame ++// suppose there's a load to the 5th arguments : FI < 0, StackOffset: 16. ++// The emitted instruction will be something like: ++// ld.w REGX, SP, 16+StackSize ++// ++// Since the total stack size is unknown on LowerFormalArguments, all ++// stack references (ObjectOffset) created to reference the function ++// arguments, are negative numbers. This way, on eliminateFrameIndex it's ++// possible to detect those references and the offsets are adjusted to ++// their real location. ++// ++//===----------------------------------------------------------------------===// ++// ++LoongArchFrameLowering::LoongArchFrameLowering(const LoongArchSubtarget &STI) ++ : TargetFrameLowering(StackGrowsDown, STI.getStackAlignment(), 0, ++ STI.getStackAlignment()), STI(STI) {} ++ ++void LoongArchFrameLowering::emitPrologue(MachineFunction &MF, ++ MachineBasicBlock &MBB) const { ++ MachineFrameInfo &MFI = MF.getFrameInfo(); ++ LoongArchFunctionInfo *LoongArchFI = MF.getInfo(); ++ ++ const LoongArchInstrInfo &TII = ++ *static_cast(STI.getInstrInfo()); ++ const LoongArchRegisterInfo &RegInfo = ++ *static_cast(STI.getRegisterInfo()); ++ MachineBasicBlock::iterator MBBI = MBB.begin(); ++ DebugLoc dl; ++ LoongArchABIInfo ABI = STI.getABI(); ++ unsigned SP = ABI.GetStackPtr(); ++ unsigned FP = ABI.GetFramePtr(); ++ unsigned ZERO = ABI.GetNullPtr(); ++ unsigned MOVE = ABI.GetGPRMoveOp(); ++ unsigned ADDI = ABI.GetPtrAddiOp(); ++ unsigned AND = ABI.IsLP64() ? LoongArch::AND : LoongArch::AND32; ++ unsigned SLLI = ABI.IsLP64() ? LoongArch::SLLI_D : LoongArch::SLLI_W; ++ ++ const TargetRegisterClass *RC = ABI.ArePtrs64bit() ? ++ &LoongArch::GPR64RegClass : &LoongArch::GPR32RegClass; ++ ++ // First, compute final stack size. ++ uint64_t StackSize = MFI.getStackSize(); ++ uint64_t RealStackSize = StackSize; ++ ++ // No need to allocate space on the stack. ++ if (StackSize == 0 && !MFI.adjustsStack()) ++ return; ++ ++ uint64_t FirstSPAdjustAmount = getFirstSPAdjustAmount(MF, true); ++ uint64_t SecondSPAdjustAmount = RealStackSize - FirstSPAdjustAmount; ++ // Split the SP adjustment to reduce the offsets of callee saved spill. ++ if (FirstSPAdjustAmount) ++ StackSize = FirstSPAdjustAmount; ++ ++ // Adjust stack. ++ TII.adjustReg(SP, SP, -StackSize, MBB, MBBI, MachineInstr::FrameSetup); ++ if (FirstSPAdjustAmount != 2048 || SecondSPAdjustAmount == 0) { ++ // Emit ".cfi_def_cfa_offset StackSize". ++ unsigned CFIIndex = ++ MF.addFrameInst(MCCFIInstruction::createDefCfaOffset(nullptr, -StackSize)); ++ BuildMI(MBB, MBBI, dl, TII.get(TargetOpcode::CFI_INSTRUCTION)) ++ .addCFIIndex(CFIIndex); ++ } ++ ++ MachineModuleInfo &MMI = MF.getMMI(); ++ const MCRegisterInfo *MRI = MMI.getContext().getRegisterInfo(); ++ ++ const std::vector &CSI = MFI.getCalleeSavedInfo(); ++ ++ if (!CSI.empty()) { ++ // Find the instruction past the last instruction that saves a callee-saved ++ // register to the stack. ++ for (unsigned i = 0; i < CSI.size(); ++i) ++ ++MBBI; ++ ++ // Iterate over list of callee-saved registers and emit .cfi_offset ++ // directives. ++ for (std::vector::const_iterator I = CSI.begin(), ++ E = CSI.end(); I != E; ++I) { ++ int64_t Offset = MFI.getObjectOffset(I->getFrameIdx()); ++ unsigned Reg = I->getReg(); ++ unsigned CFIIndex = MF.addFrameInst(MCCFIInstruction::createOffset( ++ nullptr, MRI->getDwarfRegNum(Reg, true), Offset)); ++ BuildMI(MBB, MBBI, dl, TII.get(TargetOpcode::CFI_INSTRUCTION)) ++ .addCFIIndex(CFIIndex); ++ } ++ } ++ ++ if (LoongArchFI->callsEhReturn()) { ++ // Insert instructions that spill eh data registers. ++ for (int I = 0; I < 4; ++I) { ++ if (!MBB.isLiveIn(ABI.GetEhDataReg(I))) ++ MBB.addLiveIn(ABI.GetEhDataReg(I)); ++ TII.storeRegToStackSlot(MBB, MBBI, ABI.GetEhDataReg(I), false, ++ LoongArchFI->getEhDataRegFI(I), RC, &RegInfo); ++ } ++ ++ // Emit .cfi_offset directives for eh data registers. ++ for (int I = 0; I < 4; ++I) { ++ int64_t Offset = MFI.getObjectOffset(LoongArchFI->getEhDataRegFI(I)); ++ unsigned Reg = MRI->getDwarfRegNum(ABI.GetEhDataReg(I), true); ++ unsigned CFIIndex = MF.addFrameInst( ++ MCCFIInstruction::createOffset(nullptr, Reg, Offset)); ++ BuildMI(MBB, MBBI, dl, TII.get(TargetOpcode::CFI_INSTRUCTION)) ++ .addCFIIndex(CFIIndex); ++ } ++ } ++ ++ // If framepointer enabled, set it to point to the stack pointer on entry. ++ if (hasFP(MF)) { ++ // Insert instruction "addi.w/d $fp, $sp, StackSize" at this location. ++ TII.adjustReg(FP, SP, StackSize - LoongArchFI->getVarArgsSaveSize(), MBB, ++ MBBI, MachineInstr::FrameSetup); ++ // Emit ".cfi_def_cfa $fp, $varargs_size". ++ unsigned CFIIndex = MF.addFrameInst( ++ MCCFIInstruction::createDefCfa(nullptr, MRI->getDwarfRegNum(FP, true), ++ -LoongArchFI->getVarArgsSaveSize())); ++ BuildMI(MBB, MBBI, dl, TII.get(TargetOpcode::CFI_INSTRUCTION)) ++ .addCFIIndex(CFIIndex) ++ .setMIFlag(MachineInstr::FrameSetup); ++ } ++ ++ // Emit the second SP adjustment after saving callee saved registers. ++ if (FirstSPAdjustAmount && SecondSPAdjustAmount) { ++ if (hasFP(MF)) { ++ assert(SecondSPAdjustAmount > 0 && ++ "SecondSPAdjustAmount should be greater than zero"); ++ TII.adjustReg(SP, SP, -SecondSPAdjustAmount, MBB, MBBI, ++ MachineInstr::FrameSetup); ++ } else { ++ // FIXME: RegScavenger will place the spill instruction before the ++ // prologue if a VReg is created in the prologue. This will pollute the ++ // caller's stack data. Therefore, until there is better way, we just use ++ // the `addi.w/d` instruction for stack adjustment to ensure that VReg ++ // will not be created. ++ for (int Val = SecondSPAdjustAmount; Val > 0; Val -= 2048) ++ BuildMI(MBB, MBBI, dl, TII.get(ADDI), SP) ++ .addReg(SP) ++ .addImm(Val < 2048 ? -Val : -2048) ++ .setMIFlag(MachineInstr::FrameSetup); ++ // If we are using a frame-pointer, and thus emitted ".cfi_def_cfa fp, 0", ++ // don't emit an sp-based .cfi_def_cfa_offset. ++ // Emit ".cfi_def_cfa_offset StackSize" ++ unsigned CFIIndex = MF.addFrameInst( ++ MCCFIInstruction::createDefCfaOffset(nullptr, -MFI.getStackSize())); ++ BuildMI(MBB, MBBI, dl, TII.get(TargetOpcode::CFI_INSTRUCTION)) ++ .addCFIIndex(CFIIndex) ++ .setMIFlag(MachineInstr::FrameSetup); ++ } ++ } ++ ++ // Realign stack. ++ if (hasFP(MF)) { ++ if (RegInfo.needsStackRealignment(MF)) { ++ // addiu $Reg, $zero, -MaxAlignment ++ // andi $sp, $sp, $Reg ++ unsigned VR = MF.getRegInfo().createVirtualRegister(RC); ++ assert((Log2(MFI.getMaxAlignment()) < 16) && ++ "Function's alignment size requirement is not supported."); ++ int MaxAlign = -(int)MFI.getMaxAlignment(); ++ int Alignment = (int)MFI.getMaxAlignment(); ++ ++ if (Alignment <= 2048) { ++ BuildMI(MBB, MBBI, dl, TII.get(ADDI), VR).addReg(ZERO).addImm(MaxAlign); ++ BuildMI(MBB, MBBI, dl, TII.get(AND), SP).addReg(SP).addReg(VR); ++ } else { ++ const unsigned NrBitsToZero = countTrailingZeros((unsigned)Alignment); ++ BuildMI(MBB, MBBI, dl, TII.get(ADDI), VR).addReg(ZERO).addImm(-1); ++ BuildMI(MBB, MBBI, dl, TII.get(SLLI), VR) ++ .addReg(VR) ++ .addImm(NrBitsToZero); ++ BuildMI(MBB, MBBI, dl, TII.get(AND), SP).addReg(SP).addReg(VR); ++ } ++ ++ if (hasBP(MF)) { ++ // move $s7, $sp ++ unsigned BP = STI.isABI_LP64() ? LoongArch::S7_64 : LoongArch::S7; ++ BuildMI(MBB, MBBI, dl, TII.get(MOVE), BP).addReg(SP).addReg(ZERO); ++ } ++ } ++ } ++} ++ ++void LoongArchFrameLowering::emitEpilogue(MachineFunction &MF, ++ MachineBasicBlock &MBB) const { ++ MachineBasicBlock::iterator MBBI = MBB.getFirstTerminator(); ++ MachineFrameInfo &MFI = MF.getFrameInfo(); ++ LoongArchFunctionInfo *LoongArchFI = MF.getInfo(); ++ ++ const LoongArchInstrInfo &TII = ++ *static_cast(STI.getInstrInfo()); ++ const LoongArchRegisterInfo &RegInfo = ++ *static_cast(STI.getRegisterInfo()); ++ ++ DebugLoc DL = MBBI != MBB.end() ? MBBI->getDebugLoc() : DebugLoc(); ++ LoongArchABIInfo ABI = STI.getABI(); ++ unsigned SP = ABI.GetStackPtr(); ++ unsigned FP = ABI.GetFramePtr(); ++ ++ // Get the number of bytes from FrameInfo. ++ uint64_t StackSize = MFI.getStackSize(); ++ ++ // Restore the stack pointer. ++ if (hasFP(MF) && ++ (RegInfo.needsStackRealignment(MF) || MFI.hasVarSizedObjects())) { ++ // Find the first instruction that restores a callee-saved register. ++ MachineBasicBlock::iterator I = MBBI; ++ for (unsigned i = 0; i < MFI.getCalleeSavedInfo().size(); ++i) ++ --I; ++ TII.adjustReg(SP, FP, -(StackSize - LoongArchFI->getVarArgsSaveSize()), MBB, ++ I); ++ } ++ ++ uint64_t FirstSPAdjustAmount = getFirstSPAdjustAmount(MF); ++ if (FirstSPAdjustAmount) { ++ uint64_t SecondSPAdjustAmount = MFI.getStackSize() - FirstSPAdjustAmount; ++ assert(SecondSPAdjustAmount > 0 && ++ "SecondSPAdjustAmount should be greater than zero"); ++ // Find the first instruction that restores a callee-saved register. ++ MachineBasicBlock::iterator I = MBBI; ++ for (unsigned i = 0; i < MFI.getCalleeSavedInfo().size(); ++i) ++ --I; ++ ++ TII.adjustReg(SP, SP, SecondSPAdjustAmount, MBB, I); ++ } ++ ++ if (LoongArchFI->callsEhReturn()) { ++ const TargetRegisterClass *RC = ++ ABI.ArePtrs64bit() ? &LoongArch::GPR64RegClass : &LoongArch::GPR32RegClass; ++ ++ // Find first instruction that restores a callee-saved register. ++ MachineBasicBlock::iterator I = MBBI; ++ for (unsigned i = 0; i < MFI.getCalleeSavedInfo().size(); ++i) ++ --I; ++ ++ // Insert instructions that restore eh data registers. ++ for (int J = 0; J < 4; ++J) ++ TII.loadRegFromStackSlot(MBB, I, ABI.GetEhDataReg(J), ++ LoongArchFI->getEhDataRegFI(J), RC, &RegInfo); ++ } ++ ++ if (FirstSPAdjustAmount) ++ StackSize = FirstSPAdjustAmount; ++ ++ if (!StackSize) ++ return; ++ ++ // Final adjust stack. ++ TII.adjustReg(SP, SP, StackSize, MBB, MBBI); ++} ++ ++int ++LoongArchFrameLowering::getFrameIndexReference(const MachineFunction &MF, ++ int FI, ++ unsigned &FrameReg) const { ++ const MachineFrameInfo &MFI = MF.getFrameInfo(); ++ const TargetRegisterInfo *RI = MF.getSubtarget().getRegisterInfo(); ++ LoongArchABIInfo ABI = STI.getABI(); ++ const auto *LoongArchFI = MF.getInfo(); ++ ++ // Callee-saved registers should be referenced relative to the stack ++ // pointer (positive offset), otherwise use the frame pointer (negative ++ // offset). ++ const auto &CSI = MFI.getCalleeSavedInfo(); ++ int MinCSFI = 0; ++ int MaxCSFI = -1; ++ ++ int Offset = MFI.getObjectOffset(FI) - getOffsetOfLocalArea() + ++ MFI.getOffsetAdjustment(); ++ ++ uint64_t FirstSPAdjustAmount = getFirstSPAdjustAmount(MF); ++ ++ if (CSI.size()) { ++ MinCSFI = CSI[0].getFrameIdx(); ++ MaxCSFI = CSI[CSI.size() - 1].getFrameIdx(); ++ } ++ ++ bool EhDataRegFI = LoongArchFI->isEhDataRegFI(FI); ++ if ((FI >= MinCSFI && FI <= MaxCSFI) || EhDataRegFI) { ++ FrameReg = ABI.GetStackPtr(); ++ ++ if (FirstSPAdjustAmount) ++ Offset += FirstSPAdjustAmount; ++ else ++ Offset += MFI.getStackSize(); ++ } else if (RI->needsStackRealignment(MF) && !MFI.isFixedObjectIndex(FI)) { ++ // If the stack was realigned, the frame pointer is set in order to allow ++ // SP to be restored, so we need another base register to record the stack ++ // after realignment. ++ FrameReg = hasBP(MF) ? ABI.GetBasePtr() : ABI.GetStackPtr(); ++ Offset += MFI.getStackSize(); ++ } else { ++ FrameReg = RI->getFrameRegister(MF); ++ if (hasFP(MF)) ++ Offset += LoongArchFI->getVarArgsSaveSize(); ++ else ++ Offset += MFI.getStackSize(); ++ } ++ return Offset; ++} ++ ++bool LoongArchFrameLowering::spillCalleeSavedRegisters( ++ MachineBasicBlock &MBB, MachineBasicBlock::iterator MI, ++ const std::vector &CSI, ++ const TargetRegisterInfo *TRI) const { ++ MachineFunction *MF = MBB.getParent(); ++ const TargetInstrInfo &TII = *STI.getInstrInfo(); ++ ++ for (unsigned i = 0, e = CSI.size(); i != e; ++i) { ++ // Add the callee-saved register as live-in. Do not add if the register is ++ // RA and return address is taken, because it has already been added in ++ // method LoongArchTargetLowering::lowerRETURNADDR. ++ // It's killed at the spill, unless the register is RA and return address ++ // is taken. ++ unsigned Reg = CSI[i].getReg(); ++ bool IsRAAndRetAddrIsTaken = (Reg == LoongArch::RA || Reg == LoongArch::RA_64) ++ && MF->getFrameInfo().isReturnAddressTaken(); ++ if (!IsRAAndRetAddrIsTaken) ++ MBB.addLiveIn(Reg); ++ ++ // Insert the spill to the stack frame. ++ bool IsKill = !IsRAAndRetAddrIsTaken; ++ const TargetRegisterClass *RC = TRI->getMinimalPhysRegClass(Reg); ++ TII.storeRegToStackSlot(MBB, MI, Reg, IsKill, ++ CSI[i].getFrameIdx(), RC, TRI); ++ } ++ ++ return true; ++} ++ ++bool ++LoongArchFrameLowering::hasReservedCallFrame(const MachineFunction &MF) const { ++ const MachineFrameInfo &MFI = MF.getFrameInfo(); ++ // Reserve call frame if the size of the maximum call frame fits into 12-bit ++ // immediate field and there are no variable sized objects on the stack. ++ // Make sure the second register scavenger spill slot can be accessed with one ++ // instruction. ++ return isInt<12>(MFI.getMaxCallFrameSize() + getStackAlignment()) && ++ !MFI.hasVarSizedObjects(); ++} ++ ++/// Mark \p Reg and all registers aliasing it in the bitset. ++static void setAliasRegs(MachineFunction &MF, BitVector &SavedRegs, ++ unsigned Reg) { ++ const TargetRegisterInfo *TRI = MF.getSubtarget().getRegisterInfo(); ++ for (MCRegAliasIterator AI(Reg, TRI, true); AI.isValid(); ++AI) ++ SavedRegs.set(*AI); ++} ++ ++void LoongArchFrameLowering::determineCalleeSaves(MachineFunction &MF, ++ BitVector &SavedRegs, ++ RegScavenger *RS) const { ++ TargetFrameLowering::determineCalleeSaves(MF, SavedRegs, RS); ++ const TargetRegisterInfo *TRI = MF.getSubtarget().getRegisterInfo(); ++ LoongArchFunctionInfo *LoongArchFI = MF.getInfo(); ++ LoongArchABIInfo ABI = STI.getABI(); ++ unsigned FP = ABI.GetFramePtr(); ++ unsigned BP = ABI.IsLP64() ? LoongArch::S7_64 : LoongArch::S7; ++ ++ // Mark $fp as used if function has dedicated frame pointer. ++ if (hasFP(MF)) ++ setAliasRegs(MF, SavedRegs, FP); ++ // Mark $s7 as used if function has dedicated base pointer. ++ if (hasBP(MF)) ++ setAliasRegs(MF, SavedRegs, BP); ++ ++ // Create spill slots for eh data registers if function calls eh_return. ++ if (LoongArchFI->callsEhReturn()) ++ LoongArchFI->createEhDataRegsFI(); ++ ++ // Set scavenging frame index if necessary. ++ uint64_t MaxSPOffset = estimateStackSize(MF); ++ ++ // If there is a variable ++ // sized object on the stack, the estimation cannot account for it. ++ if (isIntN(12, MaxSPOffset) && ++ !MF.getFrameInfo().hasVarSizedObjects()) ++ return; ++ ++ const TargetRegisterClass &RC = ++ ABI.ArePtrs64bit() ? LoongArch::GPR64RegClass : LoongArch::GPR32RegClass; ++ int FI = MF.getFrameInfo().CreateStackObject(TRI->getSpillSize(RC), ++ TRI->getSpillAlignment(RC), false); ++ RS->addScavengingFrameIndex(FI); ++} ++ ++// hasFP - Return true if the specified function should have a dedicated frame ++// pointer register. This is true if the function has variable sized allocas, ++// if it needs dynamic stack realignment, if frame pointer elimination is ++// disabled, or if the frame address is taken. ++bool LoongArchFrameLowering::hasFP(const MachineFunction &MF) const { ++ const MachineFrameInfo &MFI = MF.getFrameInfo(); ++ const TargetRegisterInfo *TRI = STI.getRegisterInfo(); ++ ++ return MF.getTarget().Options.DisableFramePointerElim(MF) || ++ MFI.hasVarSizedObjects() || MFI.isFrameAddressTaken() || ++ TRI->needsStackRealignment(MF); ++} ++ ++bool LoongArchFrameLowering::hasBP(const MachineFunction &MF) const { ++ const MachineFrameInfo &MFI = MF.getFrameInfo(); ++ const TargetRegisterInfo *TRI = STI.getRegisterInfo(); ++ ++ return MFI.hasVarSizedObjects() && TRI->needsStackRealignment(MF); ++} ++ ++// Estimate the size of the stack, including the incoming arguments. We need to ++// account for register spills, local objects, reserved call frame and incoming ++// arguments. This is required to determine the largest possible positive offset ++// from $sp so that it can be determined if an emergency spill slot for stack ++// addresses is required. ++uint64_t LoongArchFrameLowering:: ++estimateStackSize(const MachineFunction &MF) const { ++ const MachineFrameInfo &MFI = MF.getFrameInfo(); ++ const TargetRegisterInfo &TRI = *STI.getRegisterInfo(); ++ ++ int64_t Size = 0; ++ ++ // Iterate over fixed sized objects which are incoming arguments. ++ for (int I = MFI.getObjectIndexBegin(); I != 0; ++I) ++ if (MFI.getObjectOffset(I) > 0) ++ Size += MFI.getObjectSize(I); ++ ++ // Conservatively assume all callee-saved registers will be saved. ++ for (const MCPhysReg *R = TRI.getCalleeSavedRegs(&MF); *R; ++R) { ++ unsigned RegSize = TRI.getSpillSize(*TRI.getMinimalPhysRegClass(*R)); ++ Size = alignTo(Size + RegSize, RegSize); ++ } ++ ++ // Get the size of the rest of the frame objects and any possible reserved ++ // call frame, accounting for alignment. ++ return Size + MFI.estimateStackSize(MF); ++} ++ ++// Eliminate ADJCALLSTACKDOWN, ADJCALLSTACKUP pseudo instructions ++MachineBasicBlock::iterator LoongArchFrameLowering:: ++eliminateCallFramePseudoInstr(MachineFunction &MF, MachineBasicBlock &MBB, ++ MachineBasicBlock::iterator I) const { ++ unsigned SP = STI.getABI().IsLP64() ? LoongArch::SP_64 : LoongArch::SP; ++ ++ if (!hasReservedCallFrame(MF)) { ++ int64_t Amount = I->getOperand(0).getImm(); ++ if (I->getOpcode() == LoongArch::ADJCALLSTACKDOWN) ++ Amount = -Amount; ++ ++ STI.getInstrInfo()->adjustReg(SP, SP, Amount, MBB, I); ++ } ++ ++ return MBB.erase(I); ++} +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchFrameLowering.h b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchFrameLowering.h +new file mode 100644 +index 00000000000..340331cd07d +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchFrameLowering.h +@@ -0,0 +1,71 @@ ++//===-- LoongArchFrameLowering.h - Define frame lowering for LoongArch ----*- C++ -*-===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++// ++// ++// ++//===----------------------------------------------------------------------===// ++ ++#ifndef LLVM_LIB_TARGET_LOONGARCH_LOONGARCHFRAMELOWERING_H ++#define LLVM_LIB_TARGET_LOONGARCH_LOONGARCHFRAMELOWERING_H ++ ++#include "LoongArch.h" ++#include "llvm/CodeGen/TargetFrameLowering.h" ++ ++namespace llvm { ++ class LoongArchSubtarget; ++ ++class LoongArchFrameLowering : public TargetFrameLowering { ++ const LoongArchSubtarget &STI; ++ ++public: ++ explicit LoongArchFrameLowering(const LoongArchSubtarget &STI); ++ ++ /// emitProlog/emitEpilog - These methods insert prolog and epilog code into ++ /// the function. ++ void emitPrologue(MachineFunction &MF, MachineBasicBlock &MBB) const override; ++ void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const override; ++ ++ int getFrameIndexReference(const MachineFunction &MF, int FI, ++ unsigned &FrameReg) const override; ++ ++ bool spillCalleeSavedRegisters(MachineBasicBlock &MBB, ++ MachineBasicBlock::iterator MI, ++ const std::vector &CSI, ++ const TargetRegisterInfo *TRI) const override; ++ ++ bool hasReservedCallFrame(const MachineFunction &MF) const override; ++ ++ void determineCalleeSaves(MachineFunction &MF, BitVector &SavedRegs, ++ RegScavenger *RS) const override; ++ ++ bool hasFP(const MachineFunction &MF) const override; ++ ++ bool hasBP(const MachineFunction &MF) const; ++ ++ bool enableShrinkWrapping(const MachineFunction &MF) const override { ++ return true; ++ } ++ ++ MachineBasicBlock::iterator ++ eliminateCallFramePseudoInstr(MachineFunction &MF, ++ MachineBasicBlock &MBB, ++ MachineBasicBlock::iterator I) const override; ++ ++ // Get the first stack adjustment amount for split the SP adjustment. ++ // Return 0 if we don't want to to split the SP adjustment in prologue and ++ // epilogue. ++ uint64_t getFirstSPAdjustAmount(const MachineFunction &MF, ++ bool IsPrologue = false) const; ++ ++protected: ++ uint64_t estimateStackSize(const MachineFunction &MF) const; ++}; ++ ++} // End llvm namespace ++ ++#endif +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchISelDAGToDAG.cpp b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchISelDAGToDAG.cpp +new file mode 100644 +index 00000000000..0efb739e081 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchISelDAGToDAG.cpp +@@ -0,0 +1,878 @@ ++//===-- LoongArchISelDAGToDAG.cpp - A Dag to Dag Inst Selector for LoongArch --------===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++// ++// This file defines an instruction selector for the LoongArch target. ++// ++//===----------------------------------------------------------------------===// ++ ++#include "LoongArchISelDAGToDAG.h" ++#include "LoongArch.h" ++#include "LoongArchMachineFunction.h" ++#include "LoongArchRegisterInfo.h" ++#include "MCTargetDesc/LoongArchAnalyzeImmediate.h" ++#include "MCTargetDesc/LoongArchBaseInfo.h" ++#include "MCTargetDesc/LoongArchMCTargetDesc.h" ++#include "llvm/CodeGen/MachineConstantPool.h" ++#include "llvm/CodeGen/MachineFrameInfo.h" ++#include "llvm/CodeGen/MachineFunction.h" ++#include "llvm/CodeGen/MachineInstrBuilder.h" ++#include "llvm/CodeGen/MachineRegisterInfo.h" ++#include "llvm/CodeGen/SelectionDAGNodes.h" ++#include "llvm/IR/CFG.h" ++#include "llvm/IR/Dominators.h" ++#include "llvm/IR/GlobalValue.h" ++#include "llvm/IR/Instructions.h" ++#include "llvm/IR/Intrinsics.h" ++#include "llvm/IR/IntrinsicsLoongArch.h" ++#include "llvm/IR/Type.h" ++#include "llvm/Support/Debug.h" ++#include "llvm/Support/ErrorHandling.h" ++#include "llvm/Support/raw_ostream.h" ++#include "llvm/Target/TargetMachine.h" ++using namespace llvm; ++ ++#define DEBUG_TYPE "loongarch-isel" ++ ++//===----------------------------------------------------------------------===// ++// Instruction Selector Implementation ++//===----------------------------------------------------------------------===// ++ ++//===----------------------------------------------------------------------===// ++// LoongArchDAGToDAGISel - LoongArch specific code to select LoongArch machine ++// instructions for SelectionDAG operations. ++//===----------------------------------------------------------------------===// ++ ++void LoongArchDAGToDAGISel::PostprocessISelDAG() { doPeepholeLoadStoreADDI(); } ++ ++void LoongArchDAGToDAGISel::getAnalysisUsage(AnalysisUsage &AU) const { ++ AU.addRequired(); ++ SelectionDAGISel::getAnalysisUsage(AU); ++} ++ ++bool LoongArchDAGToDAGISel::runOnMachineFunction(MachineFunction &MF) { ++ Subtarget = &static_cast(MF.getSubtarget()); ++ bool Ret = SelectionDAGISel::runOnMachineFunction(MF); ++ ++ return Ret; ++} ++ ++/// Match frameindex ++bool LoongArchDAGToDAGISel::selectAddrFrameIndex(SDValue Addr, SDValue &Base, ++ SDValue &Offset) const { ++ if (FrameIndexSDNode *FIN = dyn_cast(Addr)) { ++ EVT ValTy = Addr.getValueType(); ++ ++ Base = CurDAG->getTargetFrameIndex(FIN->getIndex(), ValTy); ++ Offset = CurDAG->getTargetConstant(0, SDLoc(Addr), ValTy); ++ return true; ++ } ++ return false; ++} ++ ++/// Match frameindex+offset and frameindex|offset ++bool LoongArchDAGToDAGISel::selectAddrFrameIndexOffset( ++ SDValue Addr, SDValue &Base, SDValue &Offset, unsigned OffsetBits, ++ unsigned ShiftAmount = 0) const { ++ if (CurDAG->isBaseWithConstantOffset(Addr)) { ++ ConstantSDNode *CN = dyn_cast(Addr.getOperand(1)); ++ if (isIntN(OffsetBits + ShiftAmount, CN->getSExtValue())) { ++ EVT ValTy = Addr.getValueType(); ++ ++ // If the first operand is a FI, get the TargetFI Node ++ if (FrameIndexSDNode *FIN = ++ dyn_cast(Addr.getOperand(0))) ++ Base = CurDAG->getTargetFrameIndex(FIN->getIndex(), ValTy); ++ else { ++ Base = Addr.getOperand(0); ++ // If base is a FI, additional offset calculation is done in ++ // eliminateFrameIndex, otherwise we need to check the alignment ++ const Align Alignment(1ULL << ShiftAmount); ++ if (!isAligned(Alignment, CN->getZExtValue())) ++ return false; ++ } ++ ++ Offset = CurDAG->getTargetConstant(CN->getZExtValue(), SDLoc(Addr), ++ ValTy); ++ return true; ++ } ++ } ++ return false; ++} ++ ++/// ComplexPattern used on LoongArchInstrInfo ++/// Used on LoongArch Load/Store instructions ++bool LoongArchDAGToDAGISel::selectAddrRegImm(SDValue Addr, SDValue &Base, ++ SDValue &Offset) const { ++ // if Address is FI, get the TargetFrameIndex. ++ if (selectAddrFrameIndex(Addr, Base, Offset)) ++ return true; ++ ++ if (!TM.isPositionIndependent()) { ++ if ((Addr.getOpcode() == ISD::TargetExternalSymbol || ++ Addr.getOpcode() == ISD::TargetGlobalAddress)) ++ return false; ++ } ++ ++ // Addresses of the form FI+const or FI|const ++ if (selectAddrFrameIndexOffset(Addr, Base, Offset, 12)) ++ return true; ++ ++ return false; ++} ++ ++/// ComplexPattern used on LoongArchInstrInfo ++/// Used on LoongArch Load/Store instructions ++bool LoongArchDAGToDAGISel::selectAddrDefault(SDValue Addr, SDValue &Base, ++ SDValue &Offset) const { ++ Base = Addr; ++ Offset = CurDAG->getTargetConstant(0, SDLoc(Addr), Addr.getValueType()); ++ return true; ++} ++ ++bool LoongArchDAGToDAGISel::selectIntAddr(SDValue Addr, SDValue &Base, ++ SDValue &Offset) const { ++ return selectAddrRegImm(Addr, Base, Offset) || ++ selectAddrDefault(Addr, Base, Offset); ++} ++ ++bool LoongArchDAGToDAGISel::selectAddrRegImm12(SDValue Addr, SDValue &Base, ++ SDValue &Offset) const { ++ if (selectAddrFrameIndex(Addr, Base, Offset)) ++ return true; ++ ++ if (selectAddrFrameIndexOffset(Addr, Base, Offset, 12)) ++ return true; ++ ++ return false; ++} ++ ++bool LoongArchDAGToDAGISel::selectIntAddrSImm12(SDValue Addr, SDValue &Base, ++ SDValue &Offset) const { ++ if (selectAddrFrameIndex(Addr, Base, Offset)) ++ return true; ++ ++ if (selectAddrFrameIndexOffset(Addr, Base, Offset, 12)) ++ return true; ++ ++ return selectAddrDefault(Addr, Base, Offset); ++} ++ ++bool LoongArchDAGToDAGISel::selectIntAddrSImm10Lsl1(SDValue Addr, SDValue &Base, ++ SDValue &Offset) const { ++ if (selectAddrFrameIndex(Addr, Base, Offset)) ++ return true; ++ ++ if (selectAddrFrameIndexOffset(Addr, Base, Offset, 10, 1)) ++ return true; ++ ++ return selectAddrDefault(Addr, Base, Offset); ++} ++ ++bool LoongArchDAGToDAGISel::selectIntAddrSImm10(SDValue Addr, SDValue &Base, ++ SDValue &Offset) const { ++ if (selectAddrFrameIndex(Addr, Base, Offset)) ++ return true; ++ ++ if (selectAddrFrameIndexOffset(Addr, Base, Offset, 10)) ++ return true; ++ ++ return selectAddrDefault(Addr, Base, Offset); ++} ++ ++bool LoongArchDAGToDAGISel::selectIntAddrSImm10Lsl2(SDValue Addr, SDValue &Base, ++ SDValue &Offset) const { ++ if (selectAddrFrameIndex(Addr, Base, Offset)) ++ return true; ++ ++ if (selectAddrFrameIndexOffset(Addr, Base, Offset, 10, 2)) ++ return true; ++ ++ return selectAddrDefault(Addr, Base, Offset); ++} ++ ++bool LoongArchDAGToDAGISel::selectIntAddrSImm11Lsl1(SDValue Addr, SDValue &Base, ++ SDValue &Offset) const { ++ if (selectAddrFrameIndex(Addr, Base, Offset)) ++ return true; ++ ++ if (selectAddrFrameIndexOffset(Addr, Base, Offset, 11, 1)) ++ return true; ++ ++ return selectAddrDefault(Addr, Base, Offset); ++} ++ ++bool LoongArchDAGToDAGISel::selectIntAddrSImm9Lsl3(SDValue Addr, SDValue &Base, ++ SDValue &Offset) const { ++ if (selectAddrFrameIndex(Addr, Base, Offset)) ++ return true; ++ ++ if (selectAddrFrameIndexOffset(Addr, Base, Offset, 9, 3)) ++ return true; ++ ++ return selectAddrDefault(Addr, Base, Offset); ++} ++ ++bool LoongArchDAGToDAGISel::selectIntAddrSImm14Lsl2(SDValue Addr, SDValue &Base, ++ SDValue &Offset) const { ++ if (selectAddrFrameIndex(Addr, Base, Offset)) ++ return true; ++ ++ if (selectAddrFrameIndexOffset(Addr, Base, Offset, 14, 2)) ++ return true; ++ ++ return false; ++} ++ ++bool LoongArchDAGToDAGISel::selectIntAddrSImm10Lsl3(SDValue Addr, SDValue &Base, ++ SDValue &Offset) const { ++ if (selectAddrFrameIndex(Addr, Base, Offset)) ++ return true; ++ ++ if (selectAddrFrameIndexOffset(Addr, Base, Offset, 10, 3)) ++ return true; ++ ++ return selectAddrDefault(Addr, Base, Offset); ++} ++ ++// Select constant vector splats. ++// ++// Returns true and sets Imm if: ++// * LSX is enabled ++// * N is a ISD::BUILD_VECTOR representing a constant splat ++bool LoongArchDAGToDAGISel::selectVSplat(SDNode *N, APInt &Imm, ++ unsigned MinSizeInBits) const { ++ if (!(Subtarget->hasLSX() || Subtarget->hasLASX())) ++ return false; ++ ++ BuildVectorSDNode *Node = dyn_cast(N); ++ ++ if (!Node) ++ return false; ++ ++ APInt SplatValue, SplatUndef; ++ unsigned SplatBitSize; ++ bool HasAnyUndefs; ++ ++ if (!Node->isConstantSplat(SplatValue, SplatUndef, SplatBitSize, HasAnyUndefs, ++ MinSizeInBits)) ++ return false; ++ ++ Imm = SplatValue; ++ ++ return true; ++} ++ ++// Select constant vector splats. ++// ++// In addition to the requirements of selectVSplat(), this function returns ++// true and sets Imm if: ++// * The splat value is the same width as the elements of the vector ++// * The splat value fits in an integer with the specified signed-ness and ++// width. ++// ++// This function looks through ISD::BITCAST nodes. ++// TODO: This might not be appropriate for big-endian LSX since BITCAST is ++// sometimes a shuffle in big-endian mode. ++// ++// It's worth noting that this function is not used as part of the selection ++// of [v/xv]ldi.[bhwd] since it does not permit using the wrong-typed ++// [v/xv]ldi.[bhwd] instruction to achieve the desired bit pattern. ++// [v/xv]ldi.[bhwd] is selected in LoongArchDAGToDAGISel::selectNode. ++bool LoongArchDAGToDAGISel::selectVSplatCommon(SDValue N, SDValue &Imm, ++ bool Signed, ++ unsigned ImmBitSize) const { ++ APInt ImmValue; ++ EVT EltTy = N->getValueType(0).getVectorElementType(); ++ ++ if (N->getOpcode() == ISD::BITCAST) ++ N = N->getOperand(0); ++ ++ if (selectVSplat(N.getNode(), ImmValue, EltTy.getSizeInBits()) && ++ ImmValue.getBitWidth() == EltTy.getSizeInBits()) { ++ ++ if ((Signed && ImmValue.isSignedIntN(ImmBitSize)) || ++ (!Signed && ImmValue.isIntN(ImmBitSize))) { ++ Imm = CurDAG->getTargetConstant(ImmValue, SDLoc(N), EltTy); ++ return true; ++ } ++ } ++ ++ return false; ++} ++ ++// Select constant vector splats. ++bool LoongArchDAGToDAGISel::selectVSplatUimm1(SDValue N, SDValue &Imm) const { ++ return selectVSplatCommon(N, Imm, false, 1); ++} ++ ++bool LoongArchDAGToDAGISel::selectVSplatUimm2(SDValue N, SDValue &Imm) const { ++ return selectVSplatCommon(N, Imm, false, 2); ++} ++ ++bool LoongArchDAGToDAGISel::selectVSplatUimm3(SDValue N, SDValue &Imm) const { ++ return selectVSplatCommon(N, Imm, false, 3); ++} ++ ++bool LoongArchDAGToDAGISel::selectVSplatUimm4(SDValue N, SDValue &Imm) const { ++ return selectVSplatCommon(N, Imm, false, 4); ++} ++ ++bool LoongArchDAGToDAGISel::selectVSplatUimm5(SDValue N, SDValue &Imm) const { ++ return selectVSplatCommon(N, Imm, false, 5); ++} ++ ++bool LoongArchDAGToDAGISel::selectVSplatUimm6(SDValue N, SDValue &Imm) const { ++ return selectVSplatCommon(N, Imm, false, 6); ++} ++ ++bool LoongArchDAGToDAGISel::selectVSplatUimm8(SDValue N, SDValue &Imm) const { ++ return selectVSplatCommon(N, Imm, false, 8); ++} ++ ++bool LoongArchDAGToDAGISel::selectVSplatSimm5(SDValue N, SDValue &Imm) const { ++ return selectVSplatCommon(N, Imm, true, 5); ++} ++ ++// Select constant vector splats whose value is a power of 2. ++// ++// In addition to the requirements of selectVSplat(), this function returns ++// true and sets Imm if: ++// * The splat value is the same width as the elements of the vector ++// * The splat value is a power of two. ++// ++// This function looks through ISD::BITCAST nodes. ++// TODO: This might not be appropriate for big-endian LSX since BITCAST is ++// sometimes a shuffle in big-endian mode. ++bool LoongArchDAGToDAGISel::selectVSplatUimmPow2(SDValue N, ++ SDValue &Imm) const { ++ APInt ImmValue; ++ EVT EltTy = N->getValueType(0).getVectorElementType(); ++ ++ if (N->getOpcode() == ISD::BITCAST) ++ N = N->getOperand(0); ++ ++ if (selectVSplat(N.getNode(), ImmValue, EltTy.getSizeInBits()) && ++ ImmValue.getBitWidth() == EltTy.getSizeInBits()) { ++ int32_t Log2 = ImmValue.exactLogBase2(); ++ ++ if (Log2 != -1) { ++ Imm = CurDAG->getTargetConstant(Log2, SDLoc(N), EltTy); ++ return true; ++ } ++ } ++ ++ return false; ++} ++ ++bool LoongArchDAGToDAGISel::selectVSplatUimmInvPow2(SDValue N, ++ SDValue &Imm) const { ++ APInt ImmValue; ++ EVT EltTy = N->getValueType(0).getVectorElementType(); ++ ++ if (N->getOpcode() == ISD::BITCAST) ++ N = N->getOperand(0); ++ ++ if (selectVSplat(N.getNode(), ImmValue, EltTy.getSizeInBits()) && ++ ImmValue.getBitWidth() == EltTy.getSizeInBits()) { ++ int32_t Log2 = (~ImmValue).exactLogBase2(); ++ ++ if (Log2 != -1) { ++ Imm = CurDAG->getTargetConstant(Log2, SDLoc(N), EltTy); ++ return true; ++ } ++ } ++ ++ return false; ++} ++ ++// Select constant vector splats whose value only has a consecutive sequence ++// of left-most bits set (e.g. 0b11...1100...00). ++// ++// In addition to the requirements of selectVSplat(), this function returns ++// true and sets Imm if: ++// * The splat value is the same width as the elements of the vector ++// * The splat value is a consecutive sequence of left-most bits. ++// ++// This function looks through ISD::BITCAST nodes. ++// TODO: This might not be appropriate for big-endian LSX since BITCAST is ++// sometimes a shuffle in big-endian mode. ++bool LoongArchDAGToDAGISel::selectVSplatMaskL(SDValue N, SDValue &Imm) const { ++ APInt ImmValue; ++ EVT EltTy = N->getValueType(0).getVectorElementType(); ++ ++ if (N->getOpcode() == ISD::BITCAST) ++ N = N->getOperand(0); ++ ++ if (selectVSplat(N.getNode(), ImmValue, EltTy.getSizeInBits()) && ++ ImmValue.getBitWidth() == EltTy.getSizeInBits()) { ++ // Extract the run of set bits starting with bit zero from the bitwise ++ // inverse of ImmValue, and test that the inverse of this is the same ++ // as the original value. ++ if (ImmValue == ~(~ImmValue & ~(~ImmValue + 1))) { ++ ++ Imm = CurDAG->getTargetConstant(ImmValue.countPopulation() - 1, SDLoc(N), ++ EltTy); ++ return true; ++ } ++ } ++ ++ return false; ++} ++ ++// Select constant vector splats whose value only has a consecutive sequence ++// of right-most bits set (e.g. 0b00...0011...11). ++// ++// In addition to the requirements of selectVSplat(), this function returns ++// true and sets Imm if: ++// * The splat value is the same width as the elements of the vector ++// * The splat value is a consecutive sequence of right-most bits. ++// ++// This function looks through ISD::BITCAST nodes. ++// TODO: This might not be appropriate for big-endian LSX since BITCAST is ++// sometimes a shuffle in big-endian mode. ++bool LoongArchDAGToDAGISel::selectVSplatMaskR(SDValue N, SDValue &Imm) const { ++ APInt ImmValue; ++ EVT EltTy = N->getValueType(0).getVectorElementType(); ++ ++ if (N->getOpcode() == ISD::BITCAST) ++ N = N->getOperand(0); ++ ++ if (selectVSplat(N.getNode(), ImmValue, EltTy.getSizeInBits()) && ++ ImmValue.getBitWidth() == EltTy.getSizeInBits()) { ++ // Extract the run of set bits starting with bit zero, and test that the ++ // result is the same as the original value ++ if (ImmValue == (ImmValue & ~(ImmValue + 1))) { ++ Imm = CurDAG->getTargetConstant(ImmValue.countPopulation() - 1, SDLoc(N), ++ EltTy); ++ return true; ++ } ++ } ++ ++ return false; ++} ++ ++bool LoongArchDAGToDAGISel::trySelect(SDNode *Node) { ++ unsigned Opcode = Node->getOpcode(); ++ SDLoc DL(Node); ++ ++ /// ++ // Instruction Selection not handled by the auto-generated ++ // tablegen selection should be handled here. ++ /// ++ switch(Opcode) { ++ default: break; ++ case ISD::ConstantFP: { ++ ConstantFPSDNode *CN = dyn_cast(Node); ++ if (Node->getValueType(0) == MVT::f64 && CN->isExactlyValue(+0.0)) { ++ if (Subtarget->is64Bit()) { ++ SDValue Zero = CurDAG->getCopyFromReg(CurDAG->getEntryNode(), DL, ++ LoongArch::ZERO_64, MVT::i64); ++ ReplaceNode(Node, ++ CurDAG->getMachineNode(LoongArch::MOVGR2FR_D, DL, MVT::f64, Zero)); ++ } ++ return true; ++ } ++ break; ++ } ++ ++ case ISD::Constant: { ++ const ConstantSDNode *CN = dyn_cast(Node); ++ MVT VT = CN->getSimpleValueType(0); ++ int64_t Imm = CN->getSExtValue(); ++ LoongArchAnalyzeImmediate::InstSeq Seq = ++ LoongArchAnalyzeImmediate::generateInstSeq(Imm, VT == MVT::i64); ++ SDLoc DL(CN); ++ SDNode *Result = nullptr; ++ SDValue SrcReg = CurDAG->getRegister( ++ VT == MVT::i64 ? LoongArch::ZERO_64 : LoongArch::ZERO, VT); ++ ++ // The instructions in the sequence are handled here. ++ for (LoongArchAnalyzeImmediate::Inst &Inst : Seq) { ++ SDValue SDImm = CurDAG->getTargetConstant(Inst.Imm, DL, VT); ++ if (Inst.Opc == LoongArch::LU12I_W || Inst.Opc == LoongArch::LU12I_W32) ++ Result = CurDAG->getMachineNode(Inst.Opc, DL, VT, SDImm); ++ else ++ Result = CurDAG->getMachineNode(Inst.Opc, DL, VT, SrcReg, SDImm); ++ SrcReg = SDValue(Result, 0); ++ } ++ ReplaceNode(Node, Result); ++ return true; ++ } ++ ++ case ISD::BUILD_VECTOR: { ++ // Select appropriate vldi.[bhwd] instructions for constant splats of ++ // 128-bit when LSX is enabled. Select appropriate xvldi.[bhwd] instructions ++ // for constant splats of 256-bit when LASX is enabled. Fixup any register ++ // class mismatches that occur as a result. ++ // ++ // This allows the compiler to use a wider range of immediates than would ++ // otherwise be allowed. If, for example, v4i32 could only use [v/xv]ldi.h ++ // then it would not be possible to load { 0x01010101, 0x01010101, ++ // 0x01010101, 0x01010101 } without using a constant pool. This would be ++ // sub-optimal when // '[v/xv]ldi.b vd, 1' is capable of producing that ++ // bit-pattern in the same set/ of registers. Similarly, [v/xv]ldi.h isn't ++ // capable of producing { 0x00000000, 0x00000001, 0x00000000, 0x00000001 } ++ // but '[v/xv]ldi.d vd, 1' can. ++ ++ const LoongArchABIInfo &ABI = ++ static_cast(TM).getABI(); ++ ++ BuildVectorSDNode *BVN = cast(Node); ++ APInt SplatValue, SplatUndef; ++ unsigned SplatBitSize; ++ bool HasAnyUndefs; ++ unsigned LdiOp; ++ EVT ResVecTy = BVN->getValueType(0); ++ EVT ViaVecTy; ++ ++ if ((!Subtarget->hasLSX() || !BVN->getValueType(0).is128BitVector()) && ++ (!Subtarget->hasLASX() || !BVN->getValueType(0).is256BitVector())) ++ return false; ++ ++ if (!BVN->isConstantSplat(SplatValue, SplatUndef, SplatBitSize, ++ HasAnyUndefs, 8)) ++ return false; ++ ++ bool IsLASX256 = BVN->getValueType(0).is256BitVector(); ++ ++ switch (SplatBitSize) { ++ default: ++ return false; ++ case 8: ++ LdiOp = IsLASX256 ? LoongArch::XVLDI_B : LoongArch::VLDI_B; ++ ViaVecTy = IsLASX256 ? MVT::v32i8 : MVT::v16i8; ++ break; ++ case 16: ++ LdiOp = IsLASX256 ? LoongArch::XVLDI_H : LoongArch::VLDI_H; ++ ViaVecTy = IsLASX256 ? MVT::v16i16 : MVT::v8i16; ++ break; ++ case 32: ++ LdiOp = IsLASX256 ? LoongArch::XVLDI_W : LoongArch::VLDI_W; ++ ViaVecTy = IsLASX256 ? MVT::v8i32 : MVT::v4i32; ++ break; ++ case 64: ++ LdiOp = IsLASX256 ? LoongArch::XVLDI_D : LoongArch::VLDI_D; ++ ViaVecTy = IsLASX256 ? MVT::v4i64 : MVT::v2i64; ++ break; ++ } ++ ++ SDNode *Res; ++ ++ // If we have a signed 13 bit integer, we can splat it directly. ++ // ++ // If we have something bigger we can synthesize the value into a GPR and ++ // splat from there. ++ if (SplatValue.isSignedIntN(10)) { ++ SDValue Imm = CurDAG->getTargetConstant(SplatValue, DL, ++ ViaVecTy.getVectorElementType()); ++ ++ Res = CurDAG->getMachineNode(LdiOp, DL, ViaVecTy, Imm); ++ } else if (SplatValue.isSignedIntN(12)) { ++ bool Is32BitSplat = SplatBitSize < 64 ? true : false; ++ const unsigned ADDIOp = ++ Is32BitSplat ? LoongArch::ADDI_W : LoongArch::ADDI_D; ++ const MVT SplatMVT = Is32BitSplat ? MVT::i32 : MVT::i64; ++ SDValue ZeroVal = CurDAG->getRegister( ++ Is32BitSplat ? LoongArch::ZERO : LoongArch::ZERO_64, SplatMVT); ++ ++ const unsigned FILLOp = ++ (SplatBitSize == 16) ++ ? (IsLASX256 ? LoongArch::XVREPLGR2VR_H : LoongArch::VREPLGR2VR_H) ++ : (SplatBitSize == 32 ++ ? (IsLASX256 ? LoongArch::XVREPLGR2VR_W ++ : LoongArch::VREPLGR2VR_W) ++ : (SplatBitSize == 64 ++ ? (IsLASX256 ? LoongArch::XVREPLGR2VR_D ++ : LoongArch::VREPLGR2VR_D) ++ : 0)); ++ ++ assert(FILLOp != 0 && "Unknown FILL Op for splat synthesis!"); ++ ++ short Lo = SplatValue.getLoBits(12).getSExtValue(); ++ SDValue LoVal = CurDAG->getTargetConstant(Lo, DL, SplatMVT); ++ ++ Res = CurDAG->getMachineNode(ADDIOp, DL, SplatMVT, ZeroVal, LoVal); ++ Res = CurDAG->getMachineNode(FILLOp, DL, ViaVecTy, SDValue(Res, 0)); ++ } else if (SplatValue.isSignedIntN(16) && SplatBitSize == 16) { ++ const unsigned Lo = SplatValue.getLoBits(12).getZExtValue(); ++ const unsigned Hi = SplatValue.lshr(12).getLoBits(4).getZExtValue(); ++ SDValue ZeroVal = CurDAG->getRegister(LoongArch::ZERO, MVT::i32); ++ ++ SDValue LoVal = CurDAG->getTargetConstant(Lo, DL, MVT::i32); ++ SDValue HiVal = CurDAG->getTargetConstant(Hi, DL, MVT::i32); ++ if (Hi) ++ Res = CurDAG->getMachineNode(LoongArch::LU12I_W32, DL, MVT::i32, HiVal); ++ ++ if (Lo) ++ Res = CurDAG->getMachineNode(LoongArch::ORI32, DL, MVT::i32, ++ Hi ? SDValue(Res, 0) : ZeroVal, LoVal); ++ ++ assert((Hi || Lo) && "Zero case reached 32 bit case splat synthesis!"); ++ const unsigned FILLOp = ++ IsLASX256 ? LoongArch::XVREPLGR2VR_H : LoongArch::VREPLGR2VR_H; ++ EVT FILLTy = IsLASX256 ? MVT::v16i16 : MVT::v8i16; ++ Res = CurDAG->getMachineNode(FILLOp, DL, FILLTy, SDValue(Res, 0)); ++ } else if (SplatValue.isSignedIntN(32) && SplatBitSize == 32) { ++ // Only handle the cases where the splat size agrees with the size ++ // of the SplatValue here. ++ const unsigned Lo = SplatValue.getLoBits(12).getZExtValue(); ++ const unsigned Hi = SplatValue.lshr(12).getLoBits(20).getZExtValue(); ++ SDValue ZeroVal = CurDAG->getRegister(LoongArch::ZERO, MVT::i32); ++ ++ SDValue LoVal = CurDAG->getTargetConstant(Lo, DL, MVT::i32); ++ SDValue HiVal = CurDAG->getTargetConstant(Hi, DL, MVT::i32); ++ if (Hi) ++ Res = CurDAG->getMachineNode(LoongArch::LU12I_W32, DL, MVT::i32, HiVal); ++ ++ if (Lo) ++ Res = CurDAG->getMachineNode(LoongArch::ORI32, DL, MVT::i32, ++ Hi ? SDValue(Res, 0) : ZeroVal, LoVal); ++ ++ assert((Hi || Lo) && "Zero case reached 32 bit case splat synthesis!"); ++ const unsigned FILLOp = ++ IsLASX256 ? LoongArch::XVREPLGR2VR_W : LoongArch::VREPLGR2VR_W; ++ EVT FILLTy = IsLASX256 ? MVT::v8i32 : MVT::v4i32; ++ Res = CurDAG->getMachineNode(FILLOp, DL, FILLTy, SDValue(Res, 0)); ++ ++ } else if ((SplatValue.isSignedIntN(32) && SplatBitSize == 64 && ++ ABI.IsLP64()) || ++ (SplatValue.isSignedIntN(64))) { ++ ++ int64_t Imm = SplatValue.getSExtValue(); ++ LoongArchAnalyzeImmediate::InstSeq Seq = ++ LoongArchAnalyzeImmediate::generateInstSeq(Imm, true); ++ SDValue SrcReg = CurDAG->getRegister(LoongArch::ZERO_64, MVT::i64); ++ ++ for (LoongArchAnalyzeImmediate::Inst &Inst : Seq) { ++ SDValue SDImm = CurDAG->getTargetConstant(Inst.Imm, DL, MVT::i64); ++ if (Inst.Opc == LoongArch::LU12I_W || Inst.Opc == LoongArch::LU12I_W32) ++ Res = CurDAG->getMachineNode(Inst.Opc, DL, MVT::i64, SDImm); ++ else ++ Res = CurDAG->getMachineNode(Inst.Opc, DL, MVT::i64, SrcReg, SDImm); ++ SrcReg = SDValue(Res, 0); ++ } ++ ++ const unsigned FILLOp = ++ IsLASX256 ? LoongArch::XVREPLGR2VR_D : LoongArch::VREPLGR2VR_D; ++ EVT FILLTy = IsLASX256 ? MVT::v4i64 : MVT::v2i64; ++ Res = CurDAG->getMachineNode(FILLOp, DL, FILLTy, SDValue(Res, 0)); ++ ++ } else ++ return false; ++ ++ if (ResVecTy != ViaVecTy) { ++ // If LdiOp is writing to a different register class to ResVecTy, then ++ // fix it up here. This COPY_TO_REGCLASS should never cause a move.v ++ // since the source and destination register sets contain the same ++ // registers. ++ const TargetLowering *TLI = getTargetLowering(); ++ MVT ResVecTySimple = ResVecTy.getSimpleVT(); ++ const TargetRegisterClass *RC = TLI->getRegClassFor(ResVecTySimple); ++ Res = CurDAG->getMachineNode( ++ LoongArch::COPY_TO_REGCLASS, DL, ResVecTy, SDValue(Res, 0), ++ CurDAG->getTargetConstant(RC->getID(), DL, MVT::i32)); ++ } ++ ++ ReplaceNode(Node, Res); ++ return true; ++ } ++ } ++ ++ return false; ++} ++ ++/// Select instructions not customized! Used for ++/// expanded, promoted and normal instructions ++void LoongArchDAGToDAGISel::Select(SDNode *Node) { ++ // If we have a custom node, we already have selected! ++ if (Node->isMachineOpcode()) { ++ LLVM_DEBUG(errs() << "== "; Node->dump(CurDAG); errs() << "\n"); ++ Node->setNodeId(-1); ++ return; ++ } ++ ++ // See if subclasses can handle this node. ++ if (trySelect(Node)) ++ return; ++ ++ // Select the default instruction ++ SelectCode(Node); ++} ++ ++bool LoongArchDAGToDAGISel:: ++SelectInlineAsmMemoryOperand(const SDValue &Op, unsigned ConstraintID, ++ std::vector &OutOps) { ++ SDValue Base, Offset; ++ ++ switch(ConstraintID) { ++ default: ++ llvm_unreachable("Unexpected asm memory constraint"); ++ // All memory constraints can at least accept raw pointers. ++ case InlineAsm::Constraint_i: ++ OutOps.push_back(Op); ++ OutOps.push_back(CurDAG->getTargetConstant(0, SDLoc(Op), MVT::i32)); ++ return false; ++ case InlineAsm::Constraint_m: ++ if (selectAddrRegImm12(Op, Base, Offset)) { ++ OutOps.push_back(Base); ++ OutOps.push_back(Offset); ++ return false; ++ } ++ OutOps.push_back(Op); ++ OutOps.push_back(CurDAG->getTargetConstant(0, SDLoc(Op), MVT::i32)); ++ return false; ++ case InlineAsm::Constraint_R: ++ if (selectAddrRegImm12(Op, Base, Offset)) { ++ OutOps.push_back(Base); ++ OutOps.push_back(Offset); ++ return false; ++ } ++ OutOps.push_back(Op); ++ OutOps.push_back(CurDAG->getTargetConstant(0, SDLoc(Op), MVT::i32)); ++ return false; ++ case InlineAsm::Constraint_ZC: ++ if (selectIntAddrSImm14Lsl2(Op, Base, Offset)) { ++ OutOps.push_back(Base); ++ OutOps.push_back(Offset); ++ return false; ++ } ++ OutOps.push_back(Op); ++ OutOps.push_back(CurDAG->getTargetConstant(0, SDLoc(Op), MVT::i32)); ++ return false; ++ case InlineAsm::Constraint_ZB: ++ OutOps.push_back(Op); ++ OutOps.push_back(CurDAG->getTargetConstant(0, SDLoc(Op), MVT::i32)); ++ return false; ++ } ++ return true; ++} ++ ++// This optimisation is ported from RISCV. ++// Merge an ADDI into the offset of a load/store instruction where possible. ++// (load (addi base, off1), off2) -> (load base, off1+off2) ++// (store val, (addi base, off1), off2) -> (store val, base, off1+off2) ++// This is possible when off1+off2 fits a 12-bit immediate. ++void LoongArchDAGToDAGISel::doPeepholeLoadStoreADDI() { ++ SelectionDAG::allnodes_iterator Position(CurDAG->getRoot().getNode()); ++ ++Position; ++ ++ while (Position != CurDAG->allnodes_begin()) { ++ SDNode *N = &*--Position; ++ // Skip dead nodes and any non-machine opcodes. ++ if (N->use_empty() || !N->isMachineOpcode()) ++ continue; ++ ++ int OffsetOpIdx; ++ int BaseOpIdx; ++ ++ // TODO: handle more instructions. ++ switch (N->getMachineOpcode()) { ++ default: ++ continue; ++ case LoongArch::LD_B: ++ case LoongArch::LD_B32: ++ case LoongArch::LD_BU: ++ case LoongArch::LD_BU32: ++ case LoongArch::LD_H: ++ case LoongArch::LD_H32: ++ case LoongArch::LD_HU: ++ case LoongArch::LD_HU32: ++ case LoongArch::LD_W: ++ case LoongArch::LD_W32: ++ case LoongArch::LD_WU: ++ case LoongArch::LD_D: ++ BaseOpIdx = 0; ++ OffsetOpIdx = 1; ++ break; ++ case LoongArch::ST_B: ++ case LoongArch::ST_B32: ++ case LoongArch::ST_H: ++ case LoongArch::ST_H32: ++ case LoongArch::ST_W: ++ case LoongArch::ST_W32: ++ case LoongArch::ST_D: ++ BaseOpIdx = 1; ++ OffsetOpIdx = 2; ++ break; ++ } ++ ++ if (!isa(N->getOperand(OffsetOpIdx))) ++ continue; ++ ++ SDValue Base = N->getOperand(BaseOpIdx); ++ ++ // If the base is an ADDI, we can merge it in to the load/store. ++ // TODO: handle more instructions, i.e. ADDI_W. ++ if (!Base.isMachineOpcode() || Base.getMachineOpcode() != LoongArch::ADDI_D) ++ continue; ++ ++ SDValue ImmOperand = Base.getOperand(1); ++ uint64_t Offset2 = N->getConstantOperandVal(OffsetOpIdx); ++ ++ if (auto *Const = dyn_cast(ImmOperand)) { ++ int64_t Offset1 = Const->getSExtValue(); ++ int64_t CombinedOffset = Offset1 + Offset2; ++ if (!isInt<12>(CombinedOffset)) ++ continue; ++ ImmOperand = CurDAG->getTargetConstant(CombinedOffset, SDLoc(ImmOperand), ++ ImmOperand.getValueType()); ++ // TODO: handle below cases. ++#if 0 ++ } else if (auto *GA = dyn_cast(ImmOperand)) { ++ // If the off1 in (addi base, off1) is a global variable's address (its ++ // low part, really), then we can rely on the alignment of that variable ++ // to provide a margin of safety before off1 can overflow the 12 bits. ++ // Check if off2 falls within that margin; if so off1+off2 can't overflow. ++ const DataLayout &DL = CurDAG->getDataLayout(); ++ Align Alignment = GA->getGlobal()->getPointerAlignment(DL); ++ if (Offset2 != 0 && Alignment <= Offset2) ++ continue; ++ int64_t Offset1 = GA->getOffset(); ++ int64_t CombinedOffset = Offset1 + Offset2; ++ ImmOperand = CurDAG->getTargetGlobalAddress( ++ GA->getGlobal(), SDLoc(ImmOperand), ImmOperand.getValueType(), ++ CombinedOffset, GA->getTargetFlags()); ++ } else if (auto *CP = dyn_cast(ImmOperand)) { ++ // Ditto. ++ Align Alignment = CP->getAlign(); ++ if (Offset2 != 0 && Alignment <= Offset2) ++ continue; ++ int64_t Offset1 = CP->getOffset(); ++ int64_t CombinedOffset = Offset1 + Offset2; ++ ImmOperand = CurDAG->getTargetConstantPool( ++ CP->getConstVal(), ImmOperand.getValueType(), CP->getAlign(), ++ CombinedOffset, CP->getTargetFlags()); ++#endif ++ } else { ++ continue; ++ } ++ ++ LLVM_DEBUG(dbgs() << "Folding add-immediate into mem-op:\nBase: "); ++ LLVM_DEBUG(Base->dump(CurDAG)); ++ LLVM_DEBUG(dbgs() << "\nN: "); ++ LLVM_DEBUG(N->dump(CurDAG)); ++ LLVM_DEBUG(dbgs() << "\n"); ++ ++ // Modify the offset operand of the load/store. ++ if (BaseOpIdx == 0) // Load ++ CurDAG->UpdateNodeOperands(N, Base.getOperand(0), ImmOperand, ++ N->getOperand(2)); ++ else // Store ++ CurDAG->UpdateNodeOperands(N, N->getOperand(0), Base.getOperand(0), ++ ImmOperand, N->getOperand(3)); ++ ++ // The add-immediate may now be dead, in which case remove it. ++ if (Base.getNode()->use_empty()) ++ CurDAG->RemoveDeadNode(Base.getNode()); ++ } ++} ++ ++FunctionPass *llvm::createLoongArchISelDag(LoongArchTargetMachine &TM, ++ CodeGenOpt::Level OptLevel) { ++ return new LoongArchDAGToDAGISel(TM, OptLevel); ++} +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchISelDAGToDAG.h b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchISelDAGToDAG.h +new file mode 100644 +index 00000000000..76549731868 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchISelDAGToDAG.h +@@ -0,0 +1,151 @@ ++//===---- LoongArchISelDAGToDAG.h - A Dag to Dag Inst Selector for LoongArch --------===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++// ++// This file defines an instruction selector for the LoongArch target. ++// ++//===----------------------------------------------------------------------===// ++ ++#ifndef LLVM_LIB_TARGET_LOONGARCH_LOONGARCHISELDAGTODAG_H ++#define LLVM_LIB_TARGET_LOONGARCH_LOONGARCHISELDAGTODAG_H ++ ++#include "LoongArch.h" ++#include "LoongArchSubtarget.h" ++#include "LoongArchTargetMachine.h" ++#include "llvm/CodeGen/SelectionDAGISel.h" ++ ++//===----------------------------------------------------------------------===// ++// Instruction Selector Implementation ++//===----------------------------------------------------------------------===// ++ ++//===----------------------------------------------------------------------===// ++// LoongArchDAGToDAGISel - LoongArch specific code to select LoongArch machine ++// instructions for SelectionDAG operations. ++//===----------------------------------------------------------------------===// ++namespace llvm { ++ ++class LoongArchDAGToDAGISel : public SelectionDAGISel { ++public: ++ explicit LoongArchDAGToDAGISel(LoongArchTargetMachine &TM, CodeGenOpt::Level OL) ++ : SelectionDAGISel(TM, OL), Subtarget(nullptr) {} ++ ++ // Pass Name ++ StringRef getPassName() const override { ++ return "LoongArch DAG->DAG Pattern Instruction Selection"; ++ } ++ ++ bool runOnMachineFunction(MachineFunction &MF) override; ++ ++ void PostprocessISelDAG() override; ++ ++ void getAnalysisUsage(AnalysisUsage &AU) const override; ++ ++private: ++ /// Keep a pointer to the LoongArchSubtarget around so that we can make the right ++ /// decision when generating code for different targets. ++ const LoongArchSubtarget *Subtarget; ++ // Include the pieces autogenerated from the target description. ++ #include "LoongArchGenDAGISel.inc" ++ ++ void doPeepholeLoadStoreADDI(); ++ ++ bool selectAddrFrameIndex(SDValue Addr, SDValue &Base, SDValue &Offset) const; ++ ++ bool selectAddrFrameIndexOffset(SDValue Addr, SDValue &Base, SDValue &Offset, ++ unsigned OffsetBits, ++ unsigned ShiftAmount) const; ++ ++ // Complex Pattern. ++ /// (reg + imm). ++ bool selectAddrRegImm(SDValue Addr, SDValue &Base, SDValue &Offset) const; ++ ++ /// Fall back on this function if all else fails. ++ bool selectAddrDefault(SDValue Addr, SDValue &Base, SDValue &Offset) const; ++ ++ /// Match integer address pattern. ++ bool selectIntAddr(SDValue Addr, SDValue &Base, SDValue &Offset) const; ++ ++ bool selectAddrRegImm12(SDValue Addr, SDValue &Base, ++ SDValue &Offset) const; ++ ++ /// Match addr+simm12 and addr ++ bool selectIntAddrSImm12(SDValue Addr, SDValue &Base, ++ SDValue &Offset) const; ++ ++ bool selectIntAddrSImm10(SDValue Addr, SDValue &Base, ++ SDValue &Offset) const; ++ ++ bool selectIntAddrSImm10Lsl1(SDValue Addr, SDValue &Base, ++ SDValue &Offset) const; ++ ++ bool selectIntAddrSImm10Lsl2(SDValue Addr, SDValue &Base, ++ SDValue &Offset) const; ++ ++ bool selectIntAddrSImm9Lsl3(SDValue Addr, SDValue &Base, ++ SDValue &Offset) const; ++ ++ bool selectIntAddrSImm11Lsl1(SDValue Addr, SDValue &Base, ++ SDValue &Offset) const; ++ ++ bool selectIntAddrSImm14Lsl2(SDValue Addr, SDValue &Base, ++ SDValue &Offset) const; ++ ++ bool selectIntAddrSImm10Lsl3(SDValue Addr, SDValue &Base, ++ SDValue &Offset) const; ++ ++ /// Select constant vector splats. ++ bool selectVSplat(SDNode *N, APInt &Imm, unsigned MinSizeInBits) const; ++ /// Select constant vector splats whose value fits in a given integer. ++ bool selectVSplatCommon(SDValue N, SDValue &Imm, bool Signed, ++ unsigned ImmBitSize) const; ++ /// Select constant vector splats whose value fits in a uimm1. ++ bool selectVSplatUimm1(SDValue N, SDValue &Imm) const; ++ /// Select constant vector splats whose value fits in a uimm2. ++ bool selectVSplatUimm2(SDValue N, SDValue &Imm) const; ++ /// Select constant vector splats whose value fits in a uimm3. ++ bool selectVSplatUimm3(SDValue N, SDValue &Imm) const; ++ /// Select constant vector splats whose value fits in a uimm4. ++ bool selectVSplatUimm4(SDValue N, SDValue &Imm) const; ++ /// Select constant vector splats whose value fits in a uimm5. ++ bool selectVSplatUimm5(SDValue N, SDValue &Imm) const; ++ /// Select constant vector splats whose value fits in a uimm6. ++ bool selectVSplatUimm6(SDValue N, SDValue &Imm) const; ++ /// Select constant vector splats whose value fits in a uimm8. ++ bool selectVSplatUimm8(SDValue N, SDValue &Imm) const; ++ /// Select constant vector splats whose value fits in a simm5. ++ bool selectVSplatSimm5(SDValue N, SDValue &Imm) const; ++ /// Select constant vector splats whose value is a power of 2. ++ bool selectVSplatUimmPow2(SDValue N, SDValue &Imm) const; ++ /// Select constant vector splats whose value is the inverse of a ++ /// power of 2. ++ bool selectVSplatUimmInvPow2(SDValue N, SDValue &Imm) const; ++ /// Select constant vector splats whose value is a run of set bits ++ /// ending at the most significant bit ++ bool selectVSplatMaskL(SDValue N, SDValue &Imm) const; ++ /// Select constant vector splats whose value is a run of set bits ++ /// starting at bit zero. ++ bool selectVSplatMaskR(SDValue N, SDValue &Imm) const; ++ ++ void Select(SDNode *N) override; ++ ++ bool trySelect(SDNode *Node); ++ ++ // getImm - Return a target constant with the specified value. ++ inline SDValue getImm(const SDNode *Node, uint64_t Imm) { ++ return CurDAG->getTargetConstant(Imm, SDLoc(Node), Node->getValueType(0)); ++ } ++ ++ bool SelectInlineAsmMemoryOperand(const SDValue &Op, ++ unsigned ConstraintID, ++ std::vector &OutOps) override; ++}; ++ ++FunctionPass *createLoongArchISelDag(LoongArchTargetMachine &TM, ++ CodeGenOpt::Level OptLevel); ++} ++ ++#endif +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp +new file mode 100644 +index 00000000000..3394ab7cad4 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp +@@ -0,0 +1,8213 @@ ++//===- LoongArchISelLowering.cpp - LoongArch DAG Lowering Implementation ------------===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++// ++// This file defines the interfaces that LoongArch uses to lower LLVM code into a ++// selection DAG. ++// ++//===----------------------------------------------------------------------===// ++ ++#include "LoongArchISelLowering.h" ++#include "MCTargetDesc/LoongArchBaseInfo.h" ++#include "MCTargetDesc/LoongArchInstPrinter.h" ++#include "MCTargetDesc/LoongArchMCTargetDesc.h" ++#include "LoongArchCCState.h" ++#include "LoongArchInstrInfo.h" ++#include "LoongArchMachineFunction.h" ++#include "LoongArchRegisterInfo.h" ++#include "LoongArchSubtarget.h" ++#include "LoongArchTargetMachine.h" ++#include "LoongArchTargetObjectFile.h" ++#include "llvm/ADT/APFloat.h" ++#include "llvm/ADT/APInt.h" ++#include "llvm/ADT/ArrayRef.h" ++#include "llvm/ADT/STLExtras.h" ++#include "llvm/ADT/SmallVector.h" ++#include "llvm/ADT/Statistic.h" ++#include "llvm/ADT/StringRef.h" ++#include "llvm/ADT/StringSwitch.h" ++#include "llvm/ADT/Triple.h" ++#include "llvm/CodeGen/CallingConvLower.h" ++#include "llvm/CodeGen/FunctionLoweringInfo.h" ++#include "llvm/CodeGen/ISDOpcodes.h" ++#include "llvm/CodeGen/MachineBasicBlock.h" ++#include "llvm/CodeGen/MachineFrameInfo.h" ++#include "llvm/CodeGen/MachineFunction.h" ++#include "llvm/CodeGen/MachineInstr.h" ++#include "llvm/CodeGen/MachineInstrBuilder.h" ++#include "llvm/CodeGen/MachineJumpTableInfo.h" ++#include "llvm/CodeGen/MachineMemOperand.h" ++#include "llvm/CodeGen/MachineOperand.h" ++#include "llvm/CodeGen/MachineRegisterInfo.h" ++#include "llvm/CodeGen/RuntimeLibcalls.h" ++#include "llvm/CodeGen/SelectionDAG.h" ++#include "llvm/CodeGen/SelectionDAGNodes.h" ++#include "llvm/CodeGen/TargetFrameLowering.h" ++#include "llvm/CodeGen/TargetInstrInfo.h" ++#include "llvm/CodeGen/TargetRegisterInfo.h" ++#include "llvm/CodeGen/TargetSubtargetInfo.h" ++#include "llvm/CodeGen/ValueTypes.h" ++#include "llvm/IR/CallingConv.h" ++#include "llvm/IR/Constants.h" ++#include "llvm/IR/DataLayout.h" ++#include "llvm/IR/DebugLoc.h" ++#include "llvm/IR/DerivedTypes.h" ++#include "llvm/IR/Function.h" ++#include "llvm/IR/GlobalValue.h" ++#include "llvm/IR/Intrinsics.h" ++#include "llvm/IR/IntrinsicsLoongArch.h" ++#include "llvm/IR/Type.h" ++#include "llvm/IR/Value.h" ++#include "llvm/MC/MCContext.h" ++#include "llvm/MC/MCRegisterInfo.h" ++#include "llvm/Support/Casting.h" ++#include "llvm/Support/CodeGen.h" ++#include "llvm/Support/CommandLine.h" ++#include "llvm/Support/Compiler.h" ++#include "llvm/Support/Debug.h" ++#include "llvm/Support/ErrorHandling.h" ++#include "llvm/Support/MachineValueType.h" ++#include "llvm/Support/MathExtras.h" ++#include "llvm/Support/raw_ostream.h" ++#include "llvm/Target/TargetMachine.h" ++#include "llvm/Target/TargetOptions.h" ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++using namespace llvm; ++ ++#define DEBUG_TYPE "loongarch-lower" ++ ++STATISTIC(NumTailCalls, "Number of tail calls"); ++ ++static cl::opt ++NoZeroDivCheck("mnocheck-zero-division", cl::Hidden, ++ cl::desc("LoongArch: Don't trap on integer division by zero."), ++ cl::init(false)); ++ ++static const MCPhysReg LoongArch64DPRegs[8] = { ++ LoongArch::F0_64, LoongArch::F1_64, LoongArch::F2_64, LoongArch::F3_64, ++ LoongArch::F4_64, LoongArch::F5_64, LoongArch::F6_64, LoongArch::F7_64 ++}; ++ ++// If I is a shifted mask, set the size (SMSize) and the first bit of the ++// mask (SMLsb), and return true. ++// For example, if I is 0x003ff800, (SMLsb, SMSize) = (11, 11). ++static bool isShiftedMask(uint64_t I, uint64_t &SMLsb, uint64_t &SMSize) { ++ if (!isShiftedMask_64(I)) ++ return false; ++ ++ SMSize = countPopulation(I); ++ SMLsb = countTrailingZeros(I); ++ return true; ++} ++ ++SDValue LoongArchTargetLowering::getTargetNode(GlobalAddressSDNode *N, EVT Ty, ++ SelectionDAG &DAG, ++ unsigned Flag) const { ++ return DAG.getTargetGlobalAddress(N->getGlobal(), SDLoc(N), Ty, 0, Flag); ++} ++ ++SDValue LoongArchTargetLowering::getTargetNode(ExternalSymbolSDNode *N, EVT Ty, ++ SelectionDAG &DAG, ++ unsigned Flag) const { ++ return DAG.getTargetExternalSymbol(N->getSymbol(), Ty, Flag); ++} ++ ++SDValue LoongArchTargetLowering::getTargetNode(BlockAddressSDNode *N, EVT Ty, ++ SelectionDAG &DAG, ++ unsigned Flag) const { ++ return DAG.getTargetBlockAddress(N->getBlockAddress(), Ty, N->getOffset(), Flag); ++} ++ ++SDValue LoongArchTargetLowering::getTargetNode(JumpTableSDNode *N, EVT Ty, ++ SelectionDAG &DAG, ++ unsigned Flag) const { ++ return DAG.getTargetJumpTable(N->getIndex(), Ty, Flag); ++} ++ ++SDValue LoongArchTargetLowering::getTargetNode(ConstantPoolSDNode *N, EVT Ty, ++ SelectionDAG &DAG, ++ unsigned Flag) const { ++ return DAG.getTargetConstantPool(N->getConstVal(), Ty, N->getAlignment(), ++ N->getOffset(), Flag); ++} ++ ++const char *LoongArchTargetLowering::getTargetNodeName(unsigned Opcode) const { ++ switch ((LoongArchISD::NodeType)Opcode) { ++ case LoongArchISD::FIRST_NUMBER: break; ++ case LoongArchISD::JmpLink: return "LoongArchISD::JmpLink"; ++ case LoongArchISD::TailCall: return "LoongArchISD::TailCall"; ++ case LoongArchISD::GlobalAddress: return "LoongArchISD::GlobalAddress"; ++ case LoongArchISD::Ret: return "LoongArchISD::Ret"; ++ case LoongArchISD::ERet: return "LoongArchISD::ERet"; ++ case LoongArchISD::EH_RETURN: return "LoongArchISD::EH_RETURN"; ++ case LoongArchISD::FPBrcond: return "LoongArchISD::FPBrcond"; ++ case LoongArchISD::FPCmp: return "LoongArchISD::FPCmp"; ++ case LoongArchISD::CMovFP_T: return "LoongArchISD::CMovFP_T"; ++ case LoongArchISD::CMovFP_F: return "LoongArchISD::CMovFP_F"; ++ case LoongArchISD::TruncIntFP: return "LoongArchISD::TruncIntFP"; ++ case LoongArchISD::DBAR: return "LoongArchISD::DBAR"; ++ case LoongArchISD::BSTRPICK: return "LoongArchISD::BSTRPICK"; ++ case LoongArchISD::BSTRINS: return "LoongArchISD::BSTRINS"; ++ case LoongArchISD::FSEL: ++ return "LoongArchISD::FSEL"; ++ case LoongArchISD::VALL_ZERO: ++ return "LoongArchISD::VALL_ZERO"; ++ case LoongArchISD::VANY_ZERO: ++ return "LoongArchISD::VANY_ZERO"; ++ case LoongArchISD::VALL_NONZERO: ++ return "LoongArchISD::VALL_NONZERO"; ++ case LoongArchISD::VANY_NONZERO: ++ return "LoongArchISD::VANY_NONZERO"; ++ case LoongArchISD::VEXTRACT_SEXT_ELT: ++ return "LoongArchISD::VEXTRACT_SEXT_ELT"; ++ case LoongArchISD::VEXTRACT_ZEXT_ELT: ++ return "LoongArchISD::VEXTRACT_ZEXT_ELT"; ++ case LoongArchISD::VNOR: ++ return "LoongArchISD::VNOR"; ++ case LoongArchISD::VSHF: ++ return "LoongArchISD::VSHF"; ++ case LoongArchISD::SHF: ++ return "LoongArchISD::SHF"; ++ case LoongArchISD::VPACKEV: ++ return "LoongArchISD::VPACKEV"; ++ case LoongArchISD::VPACKOD: ++ return "LoongArchISD::VPACKOD"; ++ case LoongArchISD::VILVH: ++ return "LoongArchISD::VILVH"; ++ case LoongArchISD::VILVL: ++ return "LoongArchISD::VILVL"; ++ case LoongArchISD::VPICKEV: ++ return "LoongArchISD::VPICKEV"; ++ case LoongArchISD::VPICKOD: ++ return "LoongArchISD::VPICKOD"; ++ case LoongArchISD::INSVE: ++ return "LoongArchISD::INSVE"; ++ case LoongArchISD::VROR: ++ return "LoongArchISD::VROR"; ++ case LoongArchISD::VRORI: ++ return "LoongArchISD::VRORI"; ++ case LoongArchISD::XVBROADCAST: ++ return "LoongArchISD::XVBROADCAST"; ++ case LoongArchISD::VBROADCAST: ++ return "LoongArchISD::VBROADCAST"; ++ case LoongArchISD::VABSD: ++ return "LoongArchISD::VABSD"; ++ case LoongArchISD::UVABSD: ++ return "LoongArchISD::UVABSD"; ++ case LoongArchISD::XVPICKVE: ++ return "LoongArchISD::XVPICKVE"; ++ case LoongArchISD::XVPERMI: ++ return "LoongArchISD::XVPERMI"; ++ case LoongArchISD::XVSHUF4I: ++ return "LoongArchISD::XVSHUF4I"; ++ case LoongArchISD::REVBD: ++ return "LoongArchISD::REVBD"; ++ } ++ return nullptr; ++} ++ ++LoongArchTargetLowering::LoongArchTargetLowering(const LoongArchTargetMachine &TM, ++ const LoongArchSubtarget &STI) ++ : TargetLowering(TM), Subtarget(STI), ABI(TM.getABI()) { ++ // Set up the register classes ++ addRegisterClass(MVT::i32, &LoongArch::GPR32RegClass); ++ ++ if (Subtarget.is64Bit()) ++ addRegisterClass(MVT::i64, &LoongArch::GPR64RegClass); ++ ++ // LoongArch does not have i1 type, so use i32 for ++ // setcc operations results (slt, sgt, ...). ++ setBooleanContents(ZeroOrOneBooleanContent); ++ setBooleanVectorContents(ZeroOrNegativeOneBooleanContent); ++ ++ // Load extented operations for i1 types must be promoted ++ for (MVT VT : MVT::integer_valuetypes()) { ++ setLoadExtAction(ISD::EXTLOAD, VT, MVT::i1, Promote); ++ setLoadExtAction(ISD::ZEXTLOAD, VT, MVT::i1, Promote); ++ setLoadExtAction(ISD::SEXTLOAD, VT, MVT::i1, Promote); ++ } ++ ++ // LoongArch doesn't have extending float->double load/store. Set LoadExtAction ++ // for f32, f16 ++ for (MVT VT : MVT::fp_valuetypes()) { ++ setLoadExtAction(ISD::EXTLOAD, VT, MVT::f32, Expand); ++ setLoadExtAction(ISD::EXTLOAD, VT, MVT::f16, Expand); ++ } ++ ++ // Set LoadExtAction for f16 vectors to Expand ++ for (MVT VT : MVT::fp_fixedlen_vector_valuetypes()) { ++ MVT F16VT = MVT::getVectorVT(MVT::f16, VT.getVectorNumElements()); ++ if (F16VT.isValid()) ++ setLoadExtAction(ISD::EXTLOAD, VT, F16VT, Expand); ++ } ++ ++ setTruncStoreAction(MVT::f32, MVT::f16, Expand); ++ setTruncStoreAction(MVT::f64, MVT::f16, Expand); ++ ++ setTruncStoreAction(MVT::f64, MVT::f32, Expand); ++ ++ // Used by legalize types to correctly generate the setcc result. ++ // Without this, every float setcc comes with a AND/OR with the result, ++ // we don't want this, since the fpcmp result goes to a flag register, ++ // which is used implicitly by brcond and select operations. ++ AddPromotedToType(ISD::SETCC, MVT::i1, MVT::i32); ++ ++ // LoongArch Custom Operations ++ setOperationAction(ISD::BR_JT, MVT::Other, Expand); ++ setOperationAction(ISD::GlobalAddress, MVT::i32, Custom); ++ setOperationAction(ISD::BlockAddress, MVT::i32, Custom); ++ setOperationAction(ISD::GlobalTLSAddress, MVT::i32, Custom); ++ setOperationAction(ISD::JumpTable, MVT::i32, Custom); ++ setOperationAction(ISD::ConstantPool, MVT::i32, Custom); ++ setOperationAction(ISD::SELECT, MVT::f32, Custom); ++ setOperationAction(ISD::SELECT, MVT::f64, Custom); ++ setOperationAction(ISD::SELECT, MVT::i32, Custom); ++ setOperationAction(ISD::SETCC, MVT::f32, Custom); ++ setOperationAction(ISD::SETCC, MVT::f64, Custom); ++ setOperationAction(ISD::BRCOND, MVT::Other, Custom); ++ setOperationAction(ISD::FP_TO_SINT, MVT::i32, Custom); ++ ++ if (Subtarget.is64Bit()) { ++ setOperationAction(ISD::GlobalAddress, MVT::i64, Custom); ++ setOperationAction(ISD::BlockAddress, MVT::i64, Custom); ++ setOperationAction(ISD::GlobalTLSAddress, MVT::i64, Custom); ++ setOperationAction(ISD::JumpTable, MVT::i64, Custom); ++ setOperationAction(ISD::ConstantPool, MVT::i64, Custom); ++ setOperationAction(ISD::SELECT, MVT::i64, Custom); ++ setOperationAction(ISD::LOAD, MVT::i64, Legal); ++ setOperationAction(ISD::STORE, MVT::i64, Legal); ++ setOperationAction(ISD::FP_TO_SINT, MVT::i64, Custom); ++ setOperationAction(ISD::SHL_PARTS, MVT::i64, Custom); ++ setOperationAction(ISD::SRA_PARTS, MVT::i64, Custom); ++ setOperationAction(ISD::SRL_PARTS, MVT::i64, Custom); ++ } ++ ++ if (!Subtarget.is64Bit()) { ++ setOperationAction(ISD::SHL_PARTS, MVT::i32, Custom); ++ setOperationAction(ISD::SRA_PARTS, MVT::i32, Custom); ++ setOperationAction(ISD::SRL_PARTS, MVT::i32, Custom); ++ } ++ ++ setOperationAction(ISD::EH_DWARF_CFA, MVT::i32, Custom); ++ if (Subtarget.is64Bit()) ++ setOperationAction(ISD::EH_DWARF_CFA, MVT::i64, Custom); ++ ++ setOperationAction(ISD::SDIV, MVT::i32, Expand); ++ setOperationAction(ISD::SREM, MVT::i32, Expand); ++ setOperationAction(ISD::UDIV, MVT::i32, Expand); ++ setOperationAction(ISD::UREM, MVT::i32, Expand); ++ setOperationAction(ISD::SDIV, MVT::i64, Expand); ++ setOperationAction(ISD::SREM, MVT::i64, Expand); ++ setOperationAction(ISD::UDIV, MVT::i64, Expand); ++ setOperationAction(ISD::UREM, MVT::i64, Expand); ++ ++ // Operations not directly supported by LoongArch. ++ setOperationAction(ISD::BR_CC, MVT::f32, Expand); ++ setOperationAction(ISD::BR_CC, MVT::f64, Expand); ++ setOperationAction(ISD::BR_CC, MVT::i32, Expand); ++ setOperationAction(ISD::BR_CC, MVT::i64, Expand); ++ setOperationAction(ISD::SELECT_CC, MVT::i32, Expand); ++ setOperationAction(ISD::SELECT_CC, MVT::i64, Expand); ++ setOperationAction(ISD::SELECT_CC, MVT::f32, Expand); ++ setOperationAction(ISD::SELECT_CC, MVT::f64, Expand); ++ setOperationAction(ISD::UINT_TO_FP, MVT::i32, Expand); ++ setOperationAction(ISD::UINT_TO_FP, MVT::i64, Expand); ++ setOperationAction(ISD::FP_TO_UINT, MVT::i32, Expand); ++ setOperationAction(ISD::FP_TO_UINT, MVT::i64, Expand); ++ setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i1, Expand); ++ setOperationAction(ISD::CTPOP, MVT::i32, Expand); ++ setOperationAction(ISD::CTPOP, MVT::i64, Expand); ++ setOperationAction(ISD::ROTL, MVT::i32, Expand); ++ setOperationAction(ISD::ROTL, MVT::i64, Expand); ++ setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i32, Expand); ++ setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i64, Expand); ++ ++ setOperationAction(ISD::FSIN, MVT::f32, Expand); ++ setOperationAction(ISD::FSIN, MVT::f64, Expand); ++ setOperationAction(ISD::FCOS, MVT::f32, Expand); ++ setOperationAction(ISD::FCOS, MVT::f64, Expand); ++ setOperationAction(ISD::FSINCOS, MVT::f32, Expand); ++ setOperationAction(ISD::FSINCOS, MVT::f64, Expand); ++ setOperationAction(ISD::FPOW, MVT::f32, Expand); ++ setOperationAction(ISD::FPOW, MVT::f64, Expand); ++ setOperationAction(ISD::FLOG, MVT::f32, Expand); ++ setOperationAction(ISD::FRINT, MVT::f32, Legal); ++ setOperationAction(ISD::FRINT, MVT::f64, Legal); ++ ++ setOperationAction(ISD::FLOG10, MVT::f32, Expand); ++ setOperationAction(ISD::FEXP, MVT::f32, Expand); ++ setOperationAction(ISD::FMA, MVT::f32, Legal); ++ setOperationAction(ISD::FMA, MVT::f64, Legal); ++ setOperationAction(ISD::FREM, MVT::f32, Expand); ++ setOperationAction(ISD::FREM, MVT::f64, Expand); ++ ++ setOperationAction(ISD::FMINNUM_IEEE, MVT::f32, Legal); ++ setOperationAction(ISD::FMINNUM_IEEE, MVT::f64, Legal); ++ setOperationAction(ISD::FMAXNUM_IEEE, MVT::f32, Legal); ++ setOperationAction(ISD::FMAXNUM_IEEE, MVT::f64, Legal); ++ ++ // Lower f16 conversion operations into library calls ++ setOperationAction(ISD::FP16_TO_FP, MVT::f32, Expand); ++ setOperationAction(ISD::FP_TO_FP16, MVT::f32, Expand); ++ setOperationAction(ISD::FP16_TO_FP, MVT::f64, Expand); ++ setOperationAction(ISD::FP_TO_FP16, MVT::f64, Expand); ++ ++ setOperationAction(ISD::EH_RETURN, MVT::Other, Custom); ++ ++ setOperationAction(ISD::VASTART, MVT::Other, Custom); ++ setOperationAction(ISD::VAARG, MVT::Other, Custom); ++ setOperationAction(ISD::VACOPY, MVT::Other, Expand); ++ setOperationAction(ISD::VAEND, MVT::Other, Expand); ++ ++ // Use the default for now ++ setOperationAction(ISD::STACKSAVE, MVT::Other, Expand); ++ setOperationAction(ISD::STACKRESTORE, MVT::Other, Expand); ++ ++ if (!Subtarget.is64Bit()) { ++ setOperationAction(ISD::ATOMIC_LOAD, MVT::i64, Expand); ++ setOperationAction(ISD::ATOMIC_STORE, MVT::i64, Expand); ++ } ++ ++ if (Subtarget.is64Bit()) { ++ setLoadExtAction(ISD::EXTLOAD, MVT::i64, MVT::i32, Custom); ++ setTruncStoreAction(MVT::i64, MVT::i32, Custom); ++ } ++ ++ setOperationAction(ISD::TRAP, MVT::Other, Legal); ++ setOperationAction(ISD::BITREVERSE, MVT::i32, Legal); ++ setOperationAction(ISD::BITREVERSE, MVT::i64, Legal); ++ ++ setTargetDAGCombine(ISD::SELECT); ++ setTargetDAGCombine(ISD::AND); ++ setTargetDAGCombine(ISD::OR); ++ setTargetDAGCombine(ISD::AssertZext); ++ setTargetDAGCombine(ISD::SHL); ++ setTargetDAGCombine(ISD::SIGN_EXTEND); ++ setTargetDAGCombine(ISD::ZERO_EXTEND); ++ setTargetDAGCombine(ISD::ADD); ++ setTargetDAGCombine(ISD::SUB); ++ setTargetDAGCombine(ISD::MUL); ++ setTargetDAGCombine(ISD::SRL); ++ setTargetDAGCombine(ISD::SRA); ++ ++ if (ABI.IsLP32()) { ++ // These libcalls are not available in 32-bit. ++ setLibcallName(RTLIB::SHL_I128, nullptr); ++ setLibcallName(RTLIB::SRL_I128, nullptr); ++ setLibcallName(RTLIB::SRA_I128, nullptr); ++ } ++ ++ if (Subtarget.hasLSX() || Subtarget.hasLASX()) { ++ // Expand all truncating stores and extending loads. ++ for (MVT VT0 : MVT::vector_valuetypes()) { ++ for (MVT VT1 : MVT::vector_valuetypes()) { ++ setTruncStoreAction(VT0, VT1, Expand); ++ setLoadExtAction(ISD::SEXTLOAD, VT0, VT1, Expand); ++ setLoadExtAction(ISD::ZEXTLOAD, VT0, VT1, Expand); ++ setLoadExtAction(ISD::EXTLOAD, VT0, VT1, Expand); ++ } ++ } ++ } ++ ++ if (Subtarget.hasLSX()) { ++ addLSXIntType(MVT::v16i8, &LoongArch::LSX128BRegClass); ++ addLSXIntType(MVT::v8i16, &LoongArch::LSX128HRegClass); ++ addLSXIntType(MVT::v4i32, &LoongArch::LSX128WRegClass); ++ addLSXIntType(MVT::v2i64, &LoongArch::LSX128DRegClass); ++ addLSXFloatType(MVT::v4f32, &LoongArch::LSX128WRegClass); ++ addLSXFloatType(MVT::v2f64, &LoongArch::LSX128DRegClass); ++ ++ // f16 is a storage-only type, always promote it to f32. ++ setOperationAction(ISD::SETCC, MVT::f16, Promote); ++ setOperationAction(ISD::BR_CC, MVT::f16, Promote); ++ setOperationAction(ISD::SELECT_CC, MVT::f16, Promote); ++ setOperationAction(ISD::SELECT, MVT::f16, Promote); ++ setOperationAction(ISD::FADD, MVT::f16, Promote); ++ setOperationAction(ISD::FSUB, MVT::f16, Promote); ++ setOperationAction(ISD::FMUL, MVT::f16, Promote); ++ setOperationAction(ISD::FDIV, MVT::f16, Promote); ++ setOperationAction(ISD::FREM, MVT::f16, Promote); ++ setOperationAction(ISD::FMA, MVT::f16, Promote); ++ setOperationAction(ISD::FNEG, MVT::f16, Promote); ++ setOperationAction(ISD::FABS, MVT::f16, Promote); ++ setOperationAction(ISD::FCEIL, MVT::f16, Promote); ++ setOperationAction(ISD::FCOPYSIGN, MVT::f16, Promote); ++ setOperationAction(ISD::FCOS, MVT::f16, Promote); ++ setOperationAction(ISD::FP_EXTEND, MVT::f16, Promote); ++ setOperationAction(ISD::FFLOOR, MVT::f16, Promote); ++ setOperationAction(ISD::FNEARBYINT, MVT::f16, Promote); ++ setOperationAction(ISD::FPOW, MVT::f16, Promote); ++ setOperationAction(ISD::FPOWI, MVT::f16, Promote); ++ setOperationAction(ISD::FRINT, MVT::f16, Promote); ++ setOperationAction(ISD::FSIN, MVT::f16, Promote); ++ setOperationAction(ISD::FSINCOS, MVT::f16, Promote); ++ setOperationAction(ISD::FSQRT, MVT::f16, Promote); ++ setOperationAction(ISD::FEXP, MVT::f16, Promote); ++ setOperationAction(ISD::FEXP2, MVT::f16, Promote); ++ setOperationAction(ISD::FLOG, MVT::f16, Promote); ++ setOperationAction(ISD::FLOG2, MVT::f16, Promote); ++ setOperationAction(ISD::FLOG10, MVT::f16, Promote); ++ setOperationAction(ISD::FROUND, MVT::f16, Promote); ++ setOperationAction(ISD::FTRUNC, MVT::f16, Promote); ++ setOperationAction(ISD::FMINNUM, MVT::f16, Promote); ++ setOperationAction(ISD::FMAXNUM, MVT::f16, Promote); ++ setOperationAction(ISD::FMINIMUM, MVT::f16, Promote); ++ setOperationAction(ISD::FMAXIMUM, MVT::f16, Promote); ++ ++ setTargetDAGCombine(ISD::AND); ++ setTargetDAGCombine(ISD::OR); ++ setTargetDAGCombine(ISD::SRA); ++ setTargetDAGCombine(ISD::VSELECT); ++ setTargetDAGCombine(ISD::XOR); ++ } ++ ++ if (Subtarget.hasLASX()) { ++ addLASXIntType(MVT::v32i8, &LoongArch::LASX256BRegClass); ++ addLASXIntType(MVT::v16i16, &LoongArch::LASX256HRegClass); ++ addLASXIntType(MVT::v8i32, &LoongArch::LASX256WRegClass); ++ addLASXIntType(MVT::v4i64, &LoongArch::LASX256DRegClass); ++ addLASXFloatType(MVT::v8f32, &LoongArch::LASX256WRegClass); ++ addLASXFloatType(MVT::v4f64, &LoongArch::LASX256DRegClass); ++ ++ // f16 is a storage-only type, always promote it to f32. ++ setOperationAction(ISD::SETCC, MVT::f16, Promote); ++ setOperationAction(ISD::BR_CC, MVT::f16, Promote); ++ setOperationAction(ISD::SELECT_CC, MVT::f16, Promote); ++ setOperationAction(ISD::SELECT, MVT::f16, Promote); ++ setOperationAction(ISD::FADD, MVT::f16, Promote); ++ setOperationAction(ISD::FSUB, MVT::f16, Promote); ++ setOperationAction(ISD::FMUL, MVT::f16, Promote); ++ setOperationAction(ISD::FDIV, MVT::f16, Promote); ++ setOperationAction(ISD::FREM, MVT::f16, Promote); ++ setOperationAction(ISD::FMA, MVT::f16, Promote); ++ setOperationAction(ISD::FNEG, MVT::f16, Promote); ++ setOperationAction(ISD::FABS, MVT::f16, Promote); ++ setOperationAction(ISD::FCEIL, MVT::f16, Promote); ++ setOperationAction(ISD::FCOPYSIGN, MVT::f16, Promote); ++ setOperationAction(ISD::FCOS, MVT::f16, Promote); ++ setOperationAction(ISD::FP_EXTEND, MVT::f16, Promote); ++ setOperationAction(ISD::FFLOOR, MVT::f16, Promote); ++ setOperationAction(ISD::FNEARBYINT, MVT::f16, Promote); ++ setOperationAction(ISD::FPOW, MVT::f16, Promote); ++ setOperationAction(ISD::FPOWI, MVT::f16, Promote); ++ setOperationAction(ISD::FRINT, MVT::f16, Promote); ++ setOperationAction(ISD::FSIN, MVT::f16, Promote); ++ setOperationAction(ISD::FSINCOS, MVT::f16, Promote); ++ setOperationAction(ISD::FSQRT, MVT::f16, Promote); ++ setOperationAction(ISD::FEXP, MVT::f16, Promote); ++ setOperationAction(ISD::FEXP2, MVT::f16, Promote); ++ setOperationAction(ISD::FLOG, MVT::f16, Promote); ++ setOperationAction(ISD::FLOG2, MVT::f16, Promote); ++ setOperationAction(ISD::FLOG10, MVT::f16, Promote); ++ setOperationAction(ISD::FROUND, MVT::f16, Promote); ++ setOperationAction(ISD::FTRUNC, MVT::f16, Promote); ++ setOperationAction(ISD::FMINNUM, MVT::f16, Promote); ++ setOperationAction(ISD::FMAXNUM, MVT::f16, Promote); ++ setOperationAction(ISD::FMINIMUM, MVT::f16, Promote); ++ setOperationAction(ISD::FMAXIMUM, MVT::f16, Promote); ++ ++ setTargetDAGCombine(ISD::AND); ++ setTargetDAGCombine(ISD::OR); ++ setTargetDAGCombine(ISD::SRA); ++ setTargetDAGCombine(ISD::VSELECT); ++ setTargetDAGCombine(ISD::XOR); ++ } ++ ++ if (!Subtarget.useSoftFloat()) { ++ addRegisterClass(MVT::f32, &LoongArch::FGR32RegClass); ++ ++ // When dealing with single precision only, use libcalls ++ if (!Subtarget.isSingleFloat()) { ++ if (Subtarget.isFP64bit()) ++ addRegisterClass(MVT::f64, &LoongArch::FGR64RegClass); ++ } ++ } ++ ++ setOperationAction(ISD::SMUL_LOHI, MVT::i32, Custom); ++ setOperationAction(ISD::UMUL_LOHI, MVT::i32, Custom); ++ ++ if (Subtarget.is64Bit()) ++ setOperationAction(ISD::MUL, MVT::i64, Custom); ++ ++ if (Subtarget.is64Bit()) { ++ setOperationAction(ISD::SMUL_LOHI, MVT::i64, Custom); ++ setOperationAction(ISD::UMUL_LOHI, MVT::i64, Custom); ++ setOperationAction(ISD::SDIVREM, MVT::i64, Custom); ++ setOperationAction(ISD::UDIVREM, MVT::i64, Custom); ++ } ++ ++ setOperationAction(ISD::INTRINSIC_WO_CHAIN, MVT::i64, Custom); ++ setOperationAction(ISD::INTRINSIC_W_CHAIN, MVT::i64, Custom); ++ ++ setOperationAction(ISD::SDIVREM, MVT::i32, Custom); ++ setOperationAction(ISD::UDIVREM, MVT::i32, Custom); ++ setOperationAction(ISD::ATOMIC_FENCE, MVT::Other, Custom); ++ setOperationAction(ISD::LOAD, MVT::i32, Legal); ++ setOperationAction(ISD::STORE, MVT::i32, Legal); ++ ++ setTargetDAGCombine(ISD::MUL); ++ ++ setOperationAction(ISD::INTRINSIC_WO_CHAIN, MVT::Other, Custom); ++ setOperationAction(ISD::INTRINSIC_W_CHAIN, MVT::Other, Custom); ++ setOperationAction(ISD::INTRINSIC_VOID, MVT::Other, Custom); ++ ++ // Replace the accumulator-based multiplies with a ++ // three register instruction. ++ setOperationAction(ISD::SMUL_LOHI, MVT::i32, Expand); ++ setOperationAction(ISD::UMUL_LOHI, MVT::i32, Expand); ++ setOperationAction(ISD::MUL, MVT::i32, Legal); ++ setOperationAction(ISD::MULHS, MVT::i32, Legal); ++ setOperationAction(ISD::MULHU, MVT::i32, Legal); ++ ++ // Replace the accumulator-based division/remainder with separate ++ // three register division and remainder instructions. ++ setOperationAction(ISD::SDIVREM, MVT::i32, Expand); ++ setOperationAction(ISD::UDIVREM, MVT::i32, Expand); ++ setOperationAction(ISD::SDIV, MVT::i32, Legal); ++ setOperationAction(ISD::UDIV, MVT::i32, Legal); ++ setOperationAction(ISD::SREM, MVT::i32, Legal); ++ setOperationAction(ISD::UREM, MVT::i32, Legal); ++ ++ // Replace the accumulator-based multiplies with a ++ // three register instruction. ++ setOperationAction(ISD::SMUL_LOHI, MVT::i64, Expand); ++ setOperationAction(ISD::UMUL_LOHI, MVT::i64, Expand); ++ setOperationAction(ISD::MUL, MVT::i64, Legal); ++ setOperationAction(ISD::MULHS, MVT::i64, Legal); ++ setOperationAction(ISD::MULHU, MVT::i64, Legal); ++ ++ // Replace the accumulator-based division/remainder with separate ++ // three register division and remainder instructions. ++ setOperationAction(ISD::SDIVREM, MVT::i64, Expand); ++ setOperationAction(ISD::UDIVREM, MVT::i64, Expand); ++ setOperationAction(ISD::SDIV, MVT::i64, Legal); ++ setOperationAction(ISD::UDIV, MVT::i64, Legal); ++ setOperationAction(ISD::SREM, MVT::i64, Legal); ++ setOperationAction(ISD::UREM, MVT::i64, Legal); ++ ++ MaxGluedStoresPerMemcpy = 4; ++ ++ setMinFunctionAlignment(Subtarget.is64Bit() ? Align(8) : Align(4)); ++ ++ // The arguments on the stack are defined in terms of 4-byte slots on LP32 ++ // and 8-byte slots on LPX32/LP64. ++ setMinStackArgumentAlignment((ABI.IsLPX32() || ABI.IsLP64()) ? Align(8) ++ : Align(4)); ++ ++ setStackPointerRegisterToSaveRestore(ABI.IsLP64() ? LoongArch::SP_64 : LoongArch::SP); ++ ++ if (Subtarget.hasLASX()) { ++ // = 16*32/2; the smallest memcpy; ++ MaxStoresPerMemcpy = 16; ++ } else if (Subtarget.hasLSX()) { ++ MaxStoresPerMemcpy = 65535; ++ } else { ++ MaxStoresPerMemcpy = 16; ++ } ++ ++ computeRegisterProperties(Subtarget.getRegisterInfo()); ++} ++ ++// Enable LSX support for the given integer type and Register class. ++void LoongArchTargetLowering::addLSXIntType(MVT::SimpleValueType Ty, ++ const TargetRegisterClass *RC) { ++ addRegisterClass(Ty, RC); ++ ++ // Expand all builtin opcodes. ++ for (unsigned Opc = 0; Opc < ISD::BUILTIN_OP_END; ++Opc) ++ setOperationAction(Opc, Ty, Expand); ++ ++ setOperationAction(ISD::BITCAST, Ty, Legal); ++ setOperationAction(ISD::LOAD, Ty, Legal); ++ setOperationAction(ISD::STORE, Ty, Legal); ++ setOperationAction(ISD::EXTRACT_VECTOR_ELT, Ty, Custom); ++ setOperationAction(ISD::INSERT_VECTOR_ELT, Ty, Legal); ++ setOperationAction(ISD::BUILD_VECTOR, Ty, Custom); ++ setOperationAction(ISD::ABS, Ty, Legal); ++ setOperationAction(ISD::UNDEF, Ty, Legal); ++ setOperationAction(ISD::EXTRACT_SUBVECTOR, Ty, Legal); ++ setOperationAction(ISD::CONCAT_VECTORS, Ty, Legal); ++ ++ if (Ty == MVT::v4i32 || Ty == MVT::v2i64) { ++ setOperationAction(ISD::FP_TO_SINT, Ty, Custom); ++ setOperationAction(ISD::FP_TO_UINT, Ty, Custom); ++ } ++ ++ setOperationAction(ISD::ADD, Ty, Legal); ++ setOperationAction(ISD::AND, Ty, Legal); ++ setOperationAction(ISD::CTLZ, Ty, Legal); ++ setOperationAction(ISD::CTPOP, Ty, Legal); ++ setOperationAction(ISD::MUL, Ty, Legal); ++ setOperationAction(ISD::OR, Ty, Legal); ++ setOperationAction(ISD::SDIV, Ty, Legal); ++ setOperationAction(ISD::SREM, Ty, Legal); ++ setOperationAction(ISD::SHL, Ty, Legal); ++ setOperationAction(ISD::SRA, Ty, Legal); ++ setOperationAction(ISD::SRL, Ty, Legal); ++ setOperationAction(ISD::SUB, Ty, Legal); ++ setOperationAction(ISD::SMAX, Ty, Legal); ++ setOperationAction(ISD::SMIN, Ty, Legal); ++ setOperationAction(ISD::UDIV, Ty, Legal); ++ setOperationAction(ISD::UREM, Ty, Legal); ++ setOperationAction(ISD::UMAX, Ty, Legal); ++ setOperationAction(ISD::UMIN, Ty, Legal); ++ setOperationAction(ISD::VECTOR_SHUFFLE, Ty, Custom); ++ setOperationAction(ISD::VSELECT, Ty, Legal); ++ setOperationAction(ISD::XOR, Ty, Legal); ++ setOperationAction(ISD::MULHS, Ty, Legal); ++ setOperationAction(ISD::MULHU, Ty, Legal); ++ ++ if (Ty == MVT::v4i32 || Ty == MVT::v2i64) { ++ setOperationAction(ISD::SINT_TO_FP, Ty, Custom); ++ setOperationAction(ISD::UINT_TO_FP, Ty, Custom); ++ } ++ ++ setOperationAction(ISD::SETCC, Ty, Legal); ++ setCondCodeAction(ISD::SETNE, Ty, Expand); ++ setCondCodeAction(ISD::SETGE, Ty, Expand); ++ setCondCodeAction(ISD::SETGT, Ty, Expand); ++ setCondCodeAction(ISD::SETUGE, Ty, Expand); ++ setCondCodeAction(ISD::SETUGT, Ty, Expand); ++} ++ ++// Enable LASX support for the given integer type and Register class. ++void LoongArchTargetLowering::addLASXIntType(MVT::SimpleValueType Ty, ++ const TargetRegisterClass *RC) { ++ addRegisterClass(Ty, RC); ++ ++ // Expand all builtin opcodes. ++ for (unsigned Opc = 0; Opc < ISD::BUILTIN_OP_END; ++Opc) ++ setOperationAction(Opc, Ty, Expand); ++ ++ // FIXME ++ setOperationAction(ISD::BITCAST, Ty, Legal); ++ setOperationAction(ISD::LOAD, Ty, Legal); ++ setOperationAction(ISD::STORE, Ty, Legal); ++ setOperationAction(ISD::EXTRACT_VECTOR_ELT, Ty, Custom); ++ setOperationAction(ISD::INSERT_VECTOR_ELT, Ty, Custom); ++ setOperationAction(ISD::BUILD_VECTOR, Ty, Custom); ++ setOperationAction(ISD::CONCAT_VECTORS, Ty, Legal); ++ setOperationAction(ISD::UNDEF, Ty, Legal); ++ setOperationAction(ISD::UADDSAT, Ty, Legal); ++ setOperationAction(ISD::SADDSAT, Ty, Legal); ++ setOperationAction(ISD::USUBSAT, Ty, Legal); ++ setOperationAction(ISD::SSUBSAT, Ty, Legal); ++ setOperationAction(ISD::ABS, Ty, Legal); ++ ++ setOperationAction(ISD::ADD, Ty, Legal); ++ setOperationAction(ISD::AND, Ty, Legal); ++ setOperationAction(ISD::CTLZ, Ty, Legal); ++ setOperationAction(ISD::CTPOP, Ty, Legal); ++ setOperationAction(ISD::MUL, Ty, Legal); ++ setOperationAction(ISD::OR, Ty, Legal); ++ setOperationAction(ISD::SDIV, Ty, Legal); ++ setOperationAction(ISD::SREM, Ty, Legal); ++ setOperationAction(ISD::SHL, Ty, Legal); ++ setOperationAction(ISD::SRA, Ty, Legal); ++ setOperationAction(ISD::SRL, Ty, Legal); ++ setOperationAction(ISD::SUB, Ty, Legal); ++ setOperationAction(ISD::SMAX, Ty, Legal); ++ setOperationAction(ISD::SMIN, Ty, Legal); ++ setOperationAction(ISD::UDIV, Ty, Legal); ++ setOperationAction(ISD::UREM, Ty, Legal); ++ setOperationAction(ISD::UMAX, Ty, Legal); ++ setOperationAction(ISD::UMIN, Ty, Legal); ++ setOperationAction(ISD::VECTOR_SHUFFLE, Ty, Custom); ++ setOperationAction(ISD::VSELECT, Ty, Legal); ++ setOperationAction(ISD::XOR, Ty, Legal); ++ setOperationAction(ISD::INSERT_SUBVECTOR, Ty, Legal); ++ setOperationAction(ISD::MULHS, Ty, Legal); ++ setOperationAction(ISD::MULHU, Ty, Legal); ++ ++ setOperationAction(ISD::SIGN_EXTEND_VECTOR_INREG, Ty, Legal); ++ setOperationAction(ISD::ZERO_EXTEND_VECTOR_INREG, Ty, Legal); ++ ++ setOperationAction(ISD::SIGN_EXTEND, Ty, Legal); ++ setOperationAction(ISD::ZERO_EXTEND, Ty, Legal); ++ ++ if (Ty == MVT::v8i32 || Ty == MVT::v4i64) { ++ setOperationAction(ISD::SINT_TO_FP, Ty, Custom); ++ setOperationAction(ISD::UINT_TO_FP, Ty, Custom); ++ } ++ ++ setTargetDAGCombine(ISD::CONCAT_VECTORS); ++ ++ setOperationAction(ISD::SETCC, Ty, Legal); ++ setCondCodeAction(ISD::SETNE, Ty, Expand); ++ setCondCodeAction(ISD::SETGE, Ty, Expand); ++ setCondCodeAction(ISD::SETGT, Ty, Expand); ++ setCondCodeAction(ISD::SETUGE, Ty, Expand); ++ setCondCodeAction(ISD::SETUGT, Ty, Expand); ++} ++ ++// Enable LSX support for the given floating-point type and Register class. ++void LoongArchTargetLowering::addLSXFloatType(MVT::SimpleValueType Ty, ++ const TargetRegisterClass *RC) { ++ addRegisterClass(Ty, RC); ++ ++ // Expand all builtin opcodes. ++ for (unsigned Opc = 0; Opc < ISD::BUILTIN_OP_END; ++Opc) ++ setOperationAction(Opc, Ty, Expand); ++ ++ setOperationAction(ISD::LOAD, Ty, Legal); ++ setOperationAction(ISD::STORE, Ty, Legal); ++ setOperationAction(ISD::BITCAST, Ty, Legal); ++ setOperationAction(ISD::EXTRACT_VECTOR_ELT, Ty, Legal); ++ setOperationAction(ISD::INSERT_VECTOR_ELT, Ty, Legal); ++ setOperationAction(ISD::UNDEF, Ty, Legal); ++ setOperationAction(ISD::BUILD_VECTOR, Ty, Custom); ++ setOperationAction(ISD::CONCAT_VECTORS, Ty, Legal); ++ ++ if (Ty == MVT::v4f32 || Ty == MVT::v2f64) { ++ setOperationAction(ISD::FP_TO_SINT, Ty, Custom); ++ setOperationAction(ISD::FP_TO_UINT, Ty, Custom); ++ } ++ ++ setOperationAction(ISD::FADD, Ty, Legal); ++ setOperationAction(ISD::FDIV, Ty, Legal); ++ setOperationAction(ISD::FMA, Ty, Legal); ++ setOperationAction(ISD::FMUL, Ty, Legal); ++ setOperationAction(ISD::FSQRT, Ty, Legal); ++ setOperationAction(ISD::FSUB, Ty, Legal); ++ setOperationAction(ISD::VSELECT, Ty, Legal); ++ setOperationAction(ISD::FNEG, Ty, Legal); ++ setOperationAction(ISD::FRINT, Ty, Legal); ++ ++ setOperationAction(ISD::SETCC, Ty, Legal); ++ setCondCodeAction(ISD::SETOGE, Ty, Expand); ++ setCondCodeAction(ISD::SETOGT, Ty, Expand); ++ setCondCodeAction(ISD::SETUGE, Ty, Expand); ++ setCondCodeAction(ISD::SETUGT, Ty, Expand); ++ setCondCodeAction(ISD::SETGE, Ty, Expand); ++ setCondCodeAction(ISD::SETGT, Ty, Expand); ++} ++ ++// Enable LASX support for the given floating-point type and Register class. ++void LoongArchTargetLowering::addLASXFloatType(MVT::SimpleValueType Ty, ++ const TargetRegisterClass *RC) { ++ addRegisterClass(Ty, RC); ++ ++ // Expand all builtin opcodes. ++ for (unsigned Opc = 0; Opc < ISD::BUILTIN_OP_END; ++Opc) ++ setOperationAction(Opc, Ty, Expand); ++ ++ setOperationAction(ISD::LOAD, Ty, Legal); ++ setOperationAction(ISD::STORE, Ty, Legal); ++ setOperationAction(ISD::BITCAST, Ty, Legal); ++ setOperationAction(ISD::EXTRACT_VECTOR_ELT, Ty, Legal); ++ setOperationAction(ISD::INSERT_VECTOR_ELT, Ty, Legal); ++ setOperationAction(ISD::BUILD_VECTOR, Ty, Custom); ++ setOperationAction(ISD::UNDEF, Ty, Legal); ++ setOperationAction(ISD::CONCAT_VECTORS, Ty, Legal); ++ ++ setOperationAction(ISD::FADD, Ty, Legal); ++ setOperationAction(ISD::FDIV, Ty, Legal); ++ setOperationAction(ISD::FMA, Ty, Legal); ++ setOperationAction(ISD::FMUL, Ty, Legal); ++ setOperationAction(ISD::FSQRT, Ty, Legal); ++ setOperationAction(ISD::FSUB, Ty, Legal); ++ setOperationAction(ISD::VSELECT, Ty, Legal); ++ setOperationAction(ISD::FNEG, Ty, Legal); ++ setOperationAction(ISD::FRINT, Ty, Legal); ++ ++ if (Ty == MVT::v8f32 || Ty == MVT::v4f64) { ++ setOperationAction(ISD::FP_TO_SINT, Ty, Custom); ++ setOperationAction(ISD::FP_TO_UINT, Ty, Custom); ++ } ++ ++ setOperationAction(ISD::SETCC, Ty, Legal); ++ setCondCodeAction(ISD::SETOGE, Ty, Expand); ++ setCondCodeAction(ISD::SETOGT, Ty, Expand); ++ setCondCodeAction(ISD::SETUGE, Ty, Expand); ++ setCondCodeAction(ISD::SETUGT, Ty, Expand); ++ setCondCodeAction(ISD::SETGE, Ty, Expand); ++ setCondCodeAction(ISD::SETGT, Ty, Expand); ++} ++ ++bool LoongArchTargetLowering::allowsMisalignedMemoryAccesses( ++ EVT VT, unsigned AddrSpace, unsigned Align, MachineMemOperand::Flags Flags, ++ bool *Fast) const { ++ if (!Subtarget.allowUnalignedAccess()) ++ return false; ++ if (Fast) ++ *Fast = true; ++ return true; ++} ++ ++EVT LoongArchTargetLowering::getSetCCResultType(const DataLayout &, LLVMContext &, ++ EVT VT) const { ++ if (!VT.isVector()) ++ return MVT::i32; ++ return VT.changeVectorElementTypeToInteger(); ++} ++ ++static LoongArch::CondCode condCodeToFCC(ISD::CondCode CC) { ++ switch (CC) { ++ default: llvm_unreachable("Unknown fp condition code!"); ++ case ISD::SETEQ: ++ case ISD::SETOEQ: return LoongArch::FCOND_OEQ; ++ case ISD::SETUNE: return LoongArch::FCOND_UNE; ++ case ISD::SETLT: ++ case ISD::SETOLT: return LoongArch::FCOND_OLT; ++ case ISD::SETGT: ++ case ISD::SETOGT: return LoongArch::FCOND_OGT; ++ case ISD::SETLE: ++ case ISD::SETOLE: return LoongArch::FCOND_OLE; ++ case ISD::SETGE: ++ case ISD::SETOGE: return LoongArch::FCOND_OGE; ++ case ISD::SETULT: return LoongArch::FCOND_ULT; ++ case ISD::SETULE: return LoongArch::FCOND_ULE; ++ case ISD::SETUGT: return LoongArch::FCOND_UGT; ++ case ISD::SETUGE: return LoongArch::FCOND_UGE; ++ case ISD::SETUO: return LoongArch::FCOND_UN; ++ case ISD::SETO: return LoongArch::FCOND_OR; ++ case ISD::SETNE: ++ case ISD::SETONE: return LoongArch::FCOND_ONE; ++ case ISD::SETUEQ: return LoongArch::FCOND_UEQ; ++ } ++} ++ ++/// This function returns true if the floating point conditional branches and ++/// conditional moves which use condition code CC should be inverted. ++static bool invertFPCondCodeUser(LoongArch::CondCode CC) { ++ if (CC >= LoongArch::FCOND_F && CC <= LoongArch::FCOND_SUNE) ++ return false; ++ ++ assert((CC >= LoongArch::FCOND_T && CC <= LoongArch::FCOND_GT) && ++ "Illegal Condition Code"); ++ ++ return true; ++} ++ ++// Creates and returns an FPCmp node from a setcc node. ++// Returns Op if setcc is not a floating point comparison. ++static SDValue createFPCmp(SelectionDAG &DAG, const SDValue &Op) { ++ // must be a SETCC node ++ if (Op.getOpcode() != ISD::SETCC) ++ return Op; ++ ++ SDValue LHS = Op.getOperand(0); ++ ++ if (!LHS.getValueType().isFloatingPoint()) ++ return Op; ++ ++ SDValue RHS = Op.getOperand(1); ++ SDLoc DL(Op); ++ ++ // Assume the 3rd operand is a CondCodeSDNode. Add code to check the type of ++ // node if necessary. ++ ISD::CondCode CC = cast(Op.getOperand(2))->get(); ++ ++ return DAG.getNode(LoongArchISD::FPCmp, DL, MVT::Glue, LHS, RHS, ++ DAG.getConstant(condCodeToFCC(CC), DL, MVT::i32)); ++} ++ ++// Creates and returns a CMovFPT/F node. ++static SDValue createCMovFP(SelectionDAG &DAG, SDValue Cond, SDValue True, ++ SDValue False, const SDLoc &DL) { ++ ConstantSDNode *CC = cast(Cond.getOperand(2)); ++ bool invert = invertFPCondCodeUser((LoongArch::CondCode)CC->getSExtValue()); ++ SDValue FCC0 = DAG.getRegister(LoongArch::FCC0, MVT::i32); ++ ++ return DAG.getNode((invert ? LoongArchISD::CMovFP_F : LoongArchISD::CMovFP_T), DL, ++ True.getValueType(), True, FCC0, False, Cond); ++ ++} ++ ++static SDValue performSELECTCombine(SDNode *N, SelectionDAG &DAG, ++ TargetLowering::DAGCombinerInfo &DCI, ++ const LoongArchSubtarget &Subtarget) { ++ if (DCI.isBeforeLegalizeOps()) ++ return SDValue(); ++ ++ SDValue SetCC = N->getOperand(0); ++ ++ if ((SetCC.getOpcode() != ISD::SETCC) || ++ !SetCC.getOperand(0).getValueType().isInteger()) ++ return SDValue(); ++ ++ SDValue False = N->getOperand(2); ++ EVT FalseTy = False.getValueType(); ++ ++ if (!FalseTy.isInteger()) ++ return SDValue(); ++ ++ ConstantSDNode *FalseC = dyn_cast(False); ++ ++ // If the RHS (False) is 0, we swap the order of the operands ++ // of ISD::SELECT (obviously also inverting the condition) so that we can ++ // take advantage of conditional moves using the $0 register. ++ // Example: ++ // return (a != 0) ? x : 0; ++ // load $reg, x ++ // movz $reg, $0, a ++ if (!FalseC) ++ return SDValue(); ++ ++ const SDLoc DL(N); ++ ++ if (!FalseC->getZExtValue()) { ++ ISD::CondCode CC = cast(SetCC.getOperand(2))->get(); ++ SDValue True = N->getOperand(1); ++ ++ SetCC = DAG.getSetCC(DL, SetCC.getValueType(), SetCC.getOperand(0), ++ SetCC.getOperand(1), ++ ISD::getSetCCInverse(CC, SetCC.getValueType())); ++ ++ return DAG.getNode(ISD::SELECT, DL, FalseTy, SetCC, False, True); ++ } ++ ++ // If both operands are integer constants there's a possibility that we ++ // can do some interesting optimizations. ++ SDValue True = N->getOperand(1); ++ ConstantSDNode *TrueC = dyn_cast(True); ++ ++ if (!TrueC || !True.getValueType().isInteger()) ++ return SDValue(); ++ ++ // We'll also ignore MVT::i64 operands as this optimizations proves ++ // to be ineffective because of the required sign extensions as the result ++ // of a SETCC operator is always MVT::i32 for non-vector types. ++ if (True.getValueType() == MVT::i64) ++ return SDValue(); ++ ++ int64_t Diff = TrueC->getSExtValue() - FalseC->getSExtValue(); ++ ++ // 1) (a < x) ? y : y-1 ++ // slti $reg1, a, x ++ // addiu $reg2, $reg1, y-1 ++ if (Diff == 1) ++ return DAG.getNode(ISD::ADD, DL, SetCC.getValueType(), SetCC, False); ++ ++ // 2) (a < x) ? y-1 : y ++ // slti $reg1, a, x ++ // xor $reg1, $reg1, 1 ++ // addiu $reg2, $reg1, y-1 ++ if (Diff == -1) { ++ ISD::CondCode CC = cast(SetCC.getOperand(2))->get(); ++ SetCC = DAG.getSetCC(DL, SetCC.getValueType(), SetCC.getOperand(0), ++ SetCC.getOperand(1), ++ ISD::getSetCCInverse(CC, SetCC.getValueType())); ++ return DAG.getNode(ISD::ADD, DL, SetCC.getValueType(), SetCC, True); ++ } ++ ++ // Could not optimize. ++ return SDValue(); ++} ++ ++static SDValue performANDCombine(SDNode *N, SelectionDAG &DAG, ++ TargetLowering::DAGCombinerInfo &DCI, ++ const LoongArchSubtarget &Subtarget) { ++ ++ if (Subtarget.hasLSX()) { ++ ++ // Fold zero extensions into LoongArchISD::VEXTRACT_[SZ]EXT_ELT ++ // ++ // Performs the following transformations: ++ // - Changes LoongArchISD::VEXTRACT_[SZ]EXT_ELT to zero extension if its ++ // sign/zero-extension is completely overwritten by the new one performed ++ // by the ISD::AND. ++ // - Removes redundant zero extensions performed by an ISD::AND. ++ SDValue Op0 = N->getOperand(0); ++ SDValue Op1 = N->getOperand(1); ++ unsigned Op0Opcode = Op0->getOpcode(); ++ ++ // (and (LoongArchVExtract[SZ]Ext $a, $b, $c), imm:$d) ++ // where $d + 1 == 2^n and n == 32 ++ // or $d + 1 == 2^n and n <= 32 and ZExt ++ // -> (LoongArchVExtractZExt $a, $b, $c) ++ if (Op0Opcode == LoongArchISD::VEXTRACT_SEXT_ELT || ++ Op0Opcode == LoongArchISD::VEXTRACT_ZEXT_ELT) { ++ ConstantSDNode *Mask = dyn_cast(Op1); ++ ++ if (Mask) { ++ ++ int32_t Log2IfPositive = (Mask->getAPIntValue() + 1).exactLogBase2(); ++ ++ if (Log2IfPositive > 0) { ++ SDValue Op0Op2 = Op0->getOperand(2); ++ EVT ExtendTy = cast(Op0Op2)->getVT(); ++ unsigned ExtendTySize = ExtendTy.getSizeInBits(); ++ unsigned Log2 = Log2IfPositive; ++ ++ if ((Op0Opcode == LoongArchISD::VEXTRACT_ZEXT_ELT && ++ Log2 >= ExtendTySize) || ++ Log2 == ExtendTySize) { ++ SDValue Ops[] = {Op0->getOperand(0), Op0->getOperand(1), Op0Op2}; ++ return DAG.getNode(LoongArchISD::VEXTRACT_ZEXT_ELT, SDLoc(Op0), ++ Op0->getVTList(), ++ makeArrayRef(Ops, Op0->getNumOperands())); ++ } ++ } ++ } ++ } ++ } ++ ++ if (DCI.isBeforeLegalizeOps()) ++ return SDValue(); ++ ++ SDValue FirstOperand = N->getOperand(0); ++ unsigned FirstOperandOpc = FirstOperand.getOpcode(); ++ SDValue Mask = N->getOperand(1); ++ EVT ValTy = N->getValueType(0); ++ SDLoc DL(N); ++ ++ uint64_t Lsb = 0, SMLsb, SMSize; ++ ConstantSDNode *CN; ++ SDValue NewOperand; ++ unsigned Opc; ++ ++ // Op's second operand must be a shifted mask. ++ if (!(CN = dyn_cast(Mask)) || ++ !isShiftedMask(CN->getZExtValue(), SMLsb, SMSize)) ++ return SDValue(); ++ ++ if (FirstOperandOpc == ISD::SRA || FirstOperandOpc == ISD::SRL) { ++ // Pattern match BSTRPICK. ++ // $dst = and ((sra or srl) $src , lsb), (2**size - 1) ++ // => bstrpick $dst, $src, lsb+size-1, lsb ++ ++ // The second operand of the shift must be an immediate. ++ if (!(CN = dyn_cast(FirstOperand.getOperand(1)))) ++ return SDValue(); ++ ++ Lsb = CN->getZExtValue(); ++ ++ // Return if the shifted mask does not start at bit 0 or the sum of its size ++ // and Lsb exceeds the word's size. ++ if (SMLsb != 0 || Lsb + SMSize > ValTy.getSizeInBits()) ++ return SDValue(); ++ ++ Opc = LoongArchISD::BSTRPICK; ++ NewOperand = FirstOperand.getOperand(0); ++ } else { ++ // Pattern match BSTRPICK. ++ // $dst = and $src, (2**size - 1) , if size > 12 ++ // => bstrpick $dst, $src, lsb+size-1, lsb , lsb = 0 ++ ++ // If the mask is <= 0xfff, andi can be used instead. ++ if (CN->getZExtValue() <= 0xfff) ++ return SDValue(); ++ // Return if the mask doesn't start at position 0. ++ if (SMLsb) ++ return SDValue(); ++ ++ Opc = LoongArchISD::BSTRPICK; ++ NewOperand = FirstOperand; ++ } ++ return DAG.getNode(Opc, DL, ValTy, NewOperand, ++ DAG.getConstant((Lsb + SMSize - 1), DL, MVT::i32), ++ DAG.getConstant(Lsb, DL, MVT::i32)); ++} ++ ++// Determine if the specified node is a constant vector splat. ++// ++// Returns true and sets Imm if: ++// * N is a ISD::BUILD_VECTOR representing a constant splat ++static bool isVSplat(SDValue N, APInt &Imm) { ++ BuildVectorSDNode *Node = dyn_cast(N.getNode()); ++ ++ if (!Node) ++ return false; ++ ++ APInt SplatValue, SplatUndef; ++ unsigned SplatBitSize; ++ bool HasAnyUndefs; ++ ++ if (!Node->isConstantSplat(SplatValue, SplatUndef, SplatBitSize, HasAnyUndefs, ++ 8)) ++ return false; ++ ++ Imm = SplatValue; ++ ++ return true; ++} ++ ++// Test whether the given node is an all-ones build_vector. ++static bool isVectorAllOnes(SDValue N) { ++ // Look through bitcasts. Endianness doesn't matter because we are looking ++ // for an all-ones value. ++ if (N->getOpcode() == ISD::BITCAST) ++ N = N->getOperand(0); ++ ++ BuildVectorSDNode *BVN = dyn_cast(N); ++ ++ if (!BVN) ++ return false; ++ ++ APInt SplatValue, SplatUndef; ++ unsigned SplatBitSize; ++ bool HasAnyUndefs; ++ ++ // Endianness doesn't matter in this context because we are looking for ++ // an all-ones value. ++ if (BVN->isConstantSplat(SplatValue, SplatUndef, SplatBitSize, HasAnyUndefs)) ++ return SplatValue.isAllOnesValue(); ++ ++ return false; ++} ++ ++// Test whether N is the bitwise inverse of OfNode. ++static bool isBitwiseInverse(SDValue N, SDValue OfNode) { ++ if (N->getOpcode() != ISD::XOR) ++ return false; ++ ++ if (isVectorAllOnes(N->getOperand(0))) ++ return N->getOperand(1) == OfNode; ++ ++ if (isVectorAllOnes(N->getOperand(1))) ++ return N->getOperand(0) == OfNode; ++ ++ return false; ++} ++ ++static SDValue performSet(SDNode *N, SelectionDAG &DAG, ++ TargetLowering::DAGCombinerInfo &DCI, ++ const LoongArchSubtarget &Subtarget) { ++ ++ SDValue Op0 = N->getOperand(0); ++ SDValue Op1 = N->getOperand(1); ++ SDValue N1, N2; ++ if (Op0->getOpcode() == ISD::BUILD_VECTOR && ++ (Op1->getValueType(0).is128BitVector() || ++ Op1->getValueType(0).is256BitVector())) { ++ N1 = Op0; ++ N2 = Op1; ++ } else if (Op1->getOpcode() == ISD::BUILD_VECTOR && ++ (Op0->getValueType(0).is128BitVector() || ++ Op0->getValueType(0).is256BitVector())) { ++ N1 = Op1; ++ N2 = Op0; ++ } else ++ return SDValue(); ++ ++ APInt Mask1, Mask2; ++ if (!isVSplat(N1, Mask1)) ++ return SDValue(); ++ ++ if (!N1->getValueType(0).isSimple()) ++ return SDValue(); ++ ++ ConstantSDNode *C1; ++ uint64_t Imm; ++ unsigned ImmL; ++ if (!(C1 = dyn_cast(N1.getOperand(0))) || ++ !isPowerOf2_64(C1->getZExtValue())) ++ return SDValue(); ++ ++ Imm = C1->getZExtValue(); ++ ImmL = Log2_64(Imm); ++ MVT VT = N1->getSimpleValueType(0).SimpleTy; ++ ++ SDNode *Res; ++ ++ if (Subtarget.hasLASX() && N->getValueType(0).is256BitVector()) { ++ if (VT == MVT::v32i8 && ImmL < 8) ++ Res = DAG.getMachineNode(LoongArch::XVBITSETI_B, SDLoc(N), VT, N2, ++ DAG.getTargetConstant(ImmL, SDLoc(N), MVT::i32)); ++ else if (VT == MVT::v16i16 && ImmL < 16) ++ Res = DAG.getMachineNode(LoongArch::XVBITSETI_H, SDLoc(N), VT, N2, ++ DAG.getTargetConstant(ImmL, SDLoc(N), MVT::i32)); ++ else if (VT == MVT::v8i32 && ImmL < 32) ++ Res = DAG.getMachineNode(LoongArch::XVBITSETI_W, SDLoc(N), VT, N2, ++ DAG.getTargetConstant(ImmL, SDLoc(N), MVT::i32)); ++ else if (VT == MVT::v4i64 && ImmL < 64) ++ Res = DAG.getMachineNode(LoongArch::XVBITSETI_D, SDLoc(N), VT, N2, ++ DAG.getTargetConstant(ImmL, SDLoc(N), MVT::i32)); ++ else ++ return SDValue(); ++ } else if (N->getValueType(0).is128BitVector()) { ++ if (VT == MVT::v16i8 && ImmL < 8) ++ Res = DAG.getMachineNode(LoongArch::VBITSETI_B, SDLoc(N), VT, N2, ++ DAG.getTargetConstant(ImmL, SDLoc(N), MVT::i32)); ++ else if (VT == MVT::v8i16 && ImmL < 16) ++ Res = DAG.getMachineNode(LoongArch::VBITSETI_H, SDLoc(N), VT, N2, ++ DAG.getTargetConstant(ImmL, SDLoc(N), MVT::i32)); ++ else if (VT == MVT::v4i32 && ImmL < 32) ++ Res = DAG.getMachineNode(LoongArch::VBITSETI_W, SDLoc(N), VT, N2, ++ DAG.getTargetConstant(ImmL, SDLoc(N), MVT::i32)); ++ else if (VT == MVT::v2i64 && ImmL < 64) ++ Res = DAG.getMachineNode(LoongArch::VBITSETI_D, SDLoc(N), VT, N2, ++ DAG.getTargetConstant(ImmL, SDLoc(N), MVT::i32)); ++ else ++ return SDValue(); ++ ++ } else ++ return SDValue(); ++ ++ return SDValue(Res, 0); ++} ++ ++static SDValue performORCombine(SDNode *N, SelectionDAG &DAG, ++ TargetLowering::DAGCombinerInfo &DCI, ++ const LoongArchSubtarget &Subtarget) { ++ ++ SDValue Res; ++ if (Subtarget.hasLSX() && (N->getValueType(0).is128BitVector() || ++ N->getValueType(0).is256BitVector())) { ++ SDValue Op0 = N->getOperand(0); ++ SDValue Op1 = N->getOperand(1); ++ ++ if (Op0->getOpcode() == ISD::AND && Op1->getOpcode() == ISD::AND) { ++ SDValue Op0Op0 = Op0->getOperand(0); ++ SDValue Op0Op1 = Op0->getOperand(1); ++ SDValue Op1Op0 = Op1->getOperand(0); ++ SDValue Op1Op1 = Op1->getOperand(1); ++ ++ SDValue IfSet, IfClr, Cond; ++ bool IsConstantMask = false; ++ APInt Mask, InvMask; ++ ++ // If Op0Op0 is an appropriate mask, try to find it's inverse in either ++ // Op1Op0, or Op1Op1. Keep track of the Cond, IfSet, and IfClr nodes, ++ // while looking. IfClr will be set if we find a valid match. ++ if (isVSplat(Op0Op0, Mask)) { ++ Cond = Op0Op0; ++ IfSet = Op0Op1; ++ ++ if (isVSplat(Op1Op0, InvMask) && ++ Mask.getBitWidth() == InvMask.getBitWidth() && Mask == ~InvMask) ++ IfClr = Op1Op1; ++ else if (isVSplat(Op1Op1, InvMask) && ++ Mask.getBitWidth() == InvMask.getBitWidth() && ++ Mask == ~InvMask) ++ IfClr = Op1Op0; ++ ++ IsConstantMask = true; ++ } ++ ++ // If IfClr is not yet set, and Op0Op1 is an appropriate mask, try the ++ // same thing again using this mask. IfClr will be set if we find a valid ++ // match. ++ if (!IfClr.getNode() && isVSplat(Op0Op1, Mask)) { ++ Cond = Op0Op1; ++ IfSet = Op0Op0; ++ ++ if (isVSplat(Op1Op0, InvMask) && ++ Mask.getBitWidth() == InvMask.getBitWidth() && Mask == ~InvMask) ++ IfClr = Op1Op1; ++ else if (isVSplat(Op1Op1, InvMask) && ++ Mask.getBitWidth() == InvMask.getBitWidth() && ++ Mask == ~InvMask) ++ IfClr = Op1Op0; ++ ++ IsConstantMask = true; ++ } ++ ++ // If IfClr is not yet set, try looking for a non-constant match. ++ // IfClr will be set if we find a valid match amongst the eight ++ // possibilities. ++ if (!IfClr.getNode()) { ++ if (isBitwiseInverse(Op0Op0, Op1Op0)) { ++ Cond = Op1Op0; ++ IfSet = Op1Op1; ++ IfClr = Op0Op1; ++ } else if (isBitwiseInverse(Op0Op1, Op1Op0)) { ++ Cond = Op1Op0; ++ IfSet = Op1Op1; ++ IfClr = Op0Op0; ++ } else if (isBitwiseInverse(Op0Op0, Op1Op1)) { ++ Cond = Op1Op1; ++ IfSet = Op1Op0; ++ IfClr = Op0Op1; ++ } else if (isBitwiseInverse(Op0Op1, Op1Op1)) { ++ Cond = Op1Op1; ++ IfSet = Op1Op0; ++ IfClr = Op0Op0; ++ } else if (isBitwiseInverse(Op1Op0, Op0Op0)) { ++ Cond = Op0Op0; ++ IfSet = Op0Op1; ++ IfClr = Op1Op1; ++ } else if (isBitwiseInverse(Op1Op1, Op0Op0)) { ++ Cond = Op0Op0; ++ IfSet = Op0Op1; ++ IfClr = Op1Op0; ++ } else if (isBitwiseInverse(Op1Op0, Op0Op1)) { ++ Cond = Op0Op1; ++ IfSet = Op0Op0; ++ IfClr = Op1Op1; ++ } else if (isBitwiseInverse(Op1Op1, Op0Op1)) { ++ Cond = Op0Op1; ++ IfSet = Op0Op0; ++ IfClr = Op1Op0; ++ } ++ } ++ ++ // At this point, IfClr will be set if we have a valid match. ++ if (IfClr.getNode()) { ++ assert(Cond.getNode() && IfSet.getNode()); ++ ++ // Fold degenerate cases. ++ if (IsConstantMask) { ++ if (Mask.isAllOnesValue()) ++ return IfSet; ++ else if (Mask == 0) ++ return IfClr; ++ } ++ ++ // Transform the DAG into an equivalent VSELECT. ++ return DAG.getNode(ISD::VSELECT, SDLoc(N), N->getValueType(0), Cond, ++ IfSet, IfClr); ++ } ++ } ++ ++ if (Res = performSet(N, DAG, DCI, Subtarget)) ++ return Res; ++ } ++ ++ // Pattern match BSTRINS. ++ // $dst = or (and $src1 , mask0), (and (shl $src, lsb), mask1), ++ // where mask1 = (2**size - 1) << lsb, mask0 = ~mask1 ++ // => bstrins $dst, $src, lsb+size-1, lsb, $src1 ++ if (DCI.isBeforeLegalizeOps()) ++ return SDValue(); ++ ++ SDValue And0 = N->getOperand(0), And1 = N->getOperand(1); ++ uint64_t SMLsb0, SMSize0, SMLsb1, SMSize1; ++ ConstantSDNode *CN, *CN1; ++ ++ // See if Op's first operand matches (and $src1 , mask0). ++ if (And0.getOpcode() != ISD::AND) ++ return SDValue(); ++ ++ if (!(CN = dyn_cast(And0.getOperand(1))) || ++ !isShiftedMask(~CN->getSExtValue(), SMLsb0, SMSize0)) ++ return SDValue(); ++ ++ // See if Op's second operand matches (and (shl $src, lsb), mask1). ++ if (And1.getOpcode() == ISD::AND && ++ And1.getOperand(0).getOpcode() == ISD::SHL) { ++ ++ if (!(CN = dyn_cast(And1.getOperand(1))) || ++ !isShiftedMask(CN->getZExtValue(), SMLsb1, SMSize1)) ++ return SDValue(); ++ ++ // The shift masks must have the same least significant bit and size. ++ if (SMLsb0 != SMLsb1 || SMSize0 != SMSize1) ++ return SDValue(); ++ ++ SDValue Shl = And1.getOperand(0); ++ ++ if (!(CN = dyn_cast(Shl.getOperand(1)))) ++ return SDValue(); ++ ++ unsigned Shamt = CN->getZExtValue(); ++ ++ // Return if the shift amount and the first bit position of mask are not the ++ // same. ++ EVT ValTy = N->getValueType(0); ++ if ((Shamt != SMLsb0) || (SMLsb0 + SMSize0 > ValTy.getSizeInBits())) ++ return SDValue(); ++ ++ SDLoc DL(N); ++ return DAG.getNode(LoongArchISD::BSTRINS, DL, ValTy, Shl.getOperand(0), ++ DAG.getConstant((SMLsb0 + SMSize0 - 1), DL, MVT::i32), ++ DAG.getConstant(SMLsb0, DL, MVT::i32), ++ And0.getOperand(0)); ++ } else { ++ // Pattern match BSTRINS. ++ // $dst = or (and $src, mask0), mask1 ++ // where mask0 = ((1 << SMSize0) -1) << SMLsb0 ++ // => bstrins $dst, $src, SMLsb0+SMSize0-1, SMLsb0 ++ if (~CN->getSExtValue() == ((((int64_t)1 << SMSize0) - 1) << SMLsb0) && ++ (SMSize0 + SMLsb0 <= 64)) { ++ // Check if AND instruction has constant as argument ++ bool isConstCase = And1.getOpcode() != ISD::AND; ++ if (And1.getOpcode() == ISD::AND) { ++ if (!(CN1 = dyn_cast(And1->getOperand(1)))) ++ return SDValue(); ++ } else { ++ if (!(CN1 = dyn_cast(N->getOperand(1)))) ++ return SDValue(); ++ } ++ // Don't generate BSTRINS if constant OR operand doesn't fit into bits ++ // cleared by constant AND operand. ++ if (CN->getSExtValue() & CN1->getSExtValue()) ++ return SDValue(); ++ ++ SDLoc DL(N); ++ EVT ValTy = N->getOperand(0)->getValueType(0); ++ SDValue Const1; ++ SDValue SrlX; ++ if (!isConstCase) { ++ Const1 = DAG.getConstant(SMLsb0, DL, MVT::i32); ++ SrlX = DAG.getNode(ISD::SRL, DL, And1->getValueType(0), And1, Const1); ++ } ++ return DAG.getNode( ++ LoongArchISD::BSTRINS, DL, N->getValueType(0), ++ isConstCase ++ ? DAG.getConstant(CN1->getSExtValue() >> SMLsb0, DL, ValTy) ++ : SrlX, ++ DAG.getConstant(ValTy.getSizeInBits() / 8 < 8 ? (SMLsb0 + (SMSize0 & 31) - 1) ++ : (SMLsb0 + SMSize0 - 1), ++ DL, MVT::i32), ++ DAG.getConstant(SMLsb0, DL, MVT::i32), ++ And0->getOperand(0)); ++ ++ } ++ return SDValue(); ++ } ++} ++ ++static bool ++shouldTransformMulToShiftsAddsSubs(APInt C, EVT VT, ++ SelectionDAG &DAG, ++ const LoongArchSubtarget &Subtarget) { ++ // Estimate the number of operations the below transform will turn a ++ // constant multiply into. The number is approximately equal to the minimal ++ // number of powers of two that constant can be broken down to by adding ++ // or subtracting them. ++ // ++ // If we have taken more than 10[1] / 8[2] steps to attempt the ++ // optimization for a native sized value, it is more than likely that this ++ // optimization will make things worse. ++ // ++ // [1] LA64 requires 4 instructions at most to materialize any constant, ++ // multiplication requires at least 4 cycles, but another cycle (or two) ++ // to retrieve the result from corresponding registers. ++ // ++ // [2] LA32 requires 2 instructions at most to materialize any constant, ++ // multiplication requires at least 4 cycles, but another cycle (or two) ++ // to retrieve the result from corresponding registers. ++ // ++ // TODO: ++ // - MaxSteps needs to consider the `VT` of the constant for the current ++ // target. ++ // - Consider to perform this optimization after type legalization. ++ // That allows to remove a workaround for types not supported natively. ++ // - Take in account `-Os, -Oz` flags because this optimization ++ // increases code size. ++ unsigned MaxSteps = Subtarget.isABI_LP32() ? 8 : 10; ++ ++ SmallVector WorkStack(1, C); ++ unsigned Steps = 0; ++ unsigned BitWidth = C.getBitWidth(); ++ ++ while (!WorkStack.empty()) { ++ APInt Val = WorkStack.pop_back_val(); ++ ++ if (Val == 0 || Val == 1) ++ continue; ++ ++ if (Steps >= MaxSteps) ++ return false; ++ ++ if (Val.isPowerOf2()) { ++ ++Steps; ++ continue; ++ } ++ ++ APInt Floor = APInt(BitWidth, 1) << Val.logBase2(); ++ APInt Ceil = Val.isNegative() ? APInt(BitWidth, 0) ++ : APInt(BitWidth, 1) << C.ceilLogBase2(); ++ ++ if ((Val - Floor).ule(Ceil - Val)) { ++ WorkStack.push_back(Floor); ++ WorkStack.push_back(Val - Floor); ++ } else { ++ WorkStack.push_back(Ceil); ++ WorkStack.push_back(Ceil - Val); ++ } ++ ++ ++Steps; ++ } ++ ++ // If the value being multiplied is not supported natively, we have to pay ++ // an additional legalization cost, conservatively assume an increase in the ++ // cost of 3 instructions per step. This values for this heuristic were ++ // determined experimentally. ++ unsigned RegisterSize = DAG.getTargetLoweringInfo() ++ .getRegisterType(*DAG.getContext(), VT) ++ .getSizeInBits(); ++ Steps *= (VT.getSizeInBits() != RegisterSize) * 3; ++ if (Steps > 27) ++ return false; ++ ++ return true; ++} ++ ++static SDValue genConstMult(SDValue X, APInt C, const SDLoc &DL, EVT VT, ++ EVT ShiftTy, SelectionDAG &DAG) { ++ // Return 0. ++ if (C == 0) ++ return DAG.getConstant(0, DL, VT); ++ ++ // Return x. ++ if (C == 1) ++ return X; ++ ++ // If c is power of 2, return (shl x, log2(c)). ++ if (C.isPowerOf2()) ++ return DAG.getNode(ISD::SHL, DL, VT, X, ++ DAG.getConstant(C.logBase2(), DL, ShiftTy)); ++ ++ unsigned BitWidth = C.getBitWidth(); ++ APInt Floor = APInt(BitWidth, 1) << C.logBase2(); ++ APInt Ceil = C.isNegative() ? APInt(BitWidth, 0) : ++ APInt(BitWidth, 1) << C.ceilLogBase2(); ++ ++ // If |c - floor_c| <= |c - ceil_c|, ++ // where floor_c = pow(2, floor(log2(c))) and ceil_c = pow(2, ceil(log2(c))), ++ // return (add constMult(x, floor_c), constMult(x, c - floor_c)). ++ if ((C - Floor).ule(Ceil - C)) { ++ SDValue Op0 = genConstMult(X, Floor, DL, VT, ShiftTy, DAG); ++ SDValue Op1 = genConstMult(X, C - Floor, DL, VT, ShiftTy, DAG); ++ return DAG.getNode(ISD::ADD, DL, VT, Op0, Op1); ++ } ++ ++ // If |c - floor_c| > |c - ceil_c|, ++ // return (sub constMult(x, ceil_c), constMult(x, ceil_c - c)). ++ SDValue Op0 = genConstMult(X, Ceil, DL, VT, ShiftTy, DAG); ++ SDValue Op1 = genConstMult(X, Ceil - C, DL, VT, ShiftTy, DAG); ++ return DAG.getNode(ISD::SUB, DL, VT, Op0, Op1); ++} ++ ++static SDValue performLogicCombine(SDNode *N, SelectionDAG &DAG, ++ const LoongArchSubtarget &Subtarget) { ++ ++ SDLoc DL(N); ++ SDValue N0 = N->getOperand(0); ++ SDValue N1 = N->getOperand(1); ++ ++ if (!(N0->getOpcode() == ISD::TRUNCATE && N1->getOpcode() == ISD::TRUNCATE)) ++ return SDValue(); ++ ++ if (!(N->getValueType(0).isSimple() && N0->getValueType(0).isSimple() && ++ N1->getValueType(0).isSimple() && ++ N0->getOperand(0)->getValueType(0).isSimple() && ++ N1->getOperand(0)->getValueType(0).isSimple())) ++ return SDValue(); ++ ++ if (!(N->getValueType(0).isSimple() && N0->getValueType(0).isSimple() && ++ N1->getValueType(0).isSimple() && ++ N0->getOperand(0)->getValueType(0).isSimple() && ++ N1->getOperand(0)->getValueType(0).isSimple())) ++ return SDValue(); ++ ++ if (!(N->getSimpleValueType(0).SimpleTy == MVT::i32 && ++ N0->getSimpleValueType(0).SimpleTy == MVT::i32 && ++ N1->getSimpleValueType(0).SimpleTy == MVT::i32)) ++ return SDValue(); ++ ++ if (!(N0->getOperand(0)->getSimpleValueType(0).SimpleTy == MVT::i64 && ++ N1->getOperand(0)->getSimpleValueType(0).SimpleTy == MVT::i64)) ++ return SDValue(); ++ ++ SDValue SubReg = DAG.getTargetConstant(LoongArch::sub_32, DL, MVT::i32); ++ SDValue Val0 = SDValue(DAG.getMachineNode(TargetOpcode::EXTRACT_SUBREG, DL, ++ N0->getValueType(0), ++ N0->getOperand(0), SubReg), ++ 0); ++ SDValue Val1 = SDValue(DAG.getMachineNode(TargetOpcode::EXTRACT_SUBREG, DL, ++ N1->getValueType(0), ++ N1->getOperand(0), SubReg), ++ 0); ++ ++ return DAG.getNode(N->getOpcode(), DL, N0->getValueType(0), Val0, Val1); ++} ++ ++static SDValue performMULCombine(SDNode *N, SelectionDAG &DAG, ++ const TargetLowering::DAGCombinerInfo &DCI, ++ const LoongArchTargetLowering *TL, ++ const LoongArchSubtarget &Subtarget) { ++ EVT VT = N->getValueType(0); ++ ++ SDValue Res; ++ if ((Res = performLogicCombine(N, DAG, Subtarget))) ++ return Res; ++ ++ if (ConstantSDNode *C = dyn_cast(N->getOperand(1))) ++ if (!VT.isVector() && shouldTransformMulToShiftsAddsSubs( ++ C->getAPIntValue(), VT, DAG, Subtarget)) ++ return genConstMult(N->getOperand(0), C->getAPIntValue(), SDLoc(N), VT, ++ TL->getScalarShiftAmountTy(DAG.getDataLayout(), VT), ++ DAG); ++ ++ return SDValue(N, 0); ++} ++ ++// Fold sign-extensions into LoongArchISD::VEXTRACT_[SZ]EXT_ELT for LSX. ++// ++// Performs the following transformations: ++// - Changes LoongArchISD::VEXTRACT_[SZ]EXT_ELT to sign extension if its ++// sign/zero-extension is completely overwritten by the new one performed by ++// the ISD::SRA and ISD::SHL nodes. ++// - Removes redundant sign extensions performed by an ISD::SRA and ISD::SHL ++// sequence. ++static SDValue performSRACombine(SDNode *N, SelectionDAG &DAG, ++ TargetLowering::DAGCombinerInfo &DCI, ++ const LoongArchSubtarget &Subtarget) { ++ ++ SDValue Res; ++ if ((Res = performLogicCombine(N, DAG, Subtarget))) ++ return Res; ++ if (Subtarget.hasLSX() || Subtarget.hasLASX()) { ++ SDValue Op0 = N->getOperand(0); ++ SDValue Op1 = N->getOperand(1); ++ ++ // (sra (shl (LoongArchVExtract[SZ]Ext $a, $b, $c), imm:$d), imm:$d) ++ // where $d + sizeof($c) == 32 ++ // or $d + sizeof($c) <= 32 and SExt ++ // -> (LoongArchVExtractSExt $a, $b, $c) ++ if (Op0->getOpcode() == ISD::SHL && Op1 == Op0->getOperand(1)) { ++ SDValue Op0Op0 = Op0->getOperand(0); ++ ConstantSDNode *ShAmount = dyn_cast(Op1); ++ ++ if (!ShAmount) ++ return SDValue(); ++ ++ if (Op0Op0->getOpcode() != LoongArchISD::VEXTRACT_SEXT_ELT && ++ Op0Op0->getOpcode() != LoongArchISD::VEXTRACT_ZEXT_ELT) ++ return SDValue(); ++ ++ EVT ExtendTy = cast(Op0Op0->getOperand(2))->getVT(); ++ unsigned TotalBits = ShAmount->getZExtValue() + ExtendTy.getSizeInBits(); ++ ++ if (TotalBits == 32 || ++ (Op0Op0->getOpcode() == LoongArchISD::VEXTRACT_SEXT_ELT && ++ TotalBits <= 32)) { ++ SDValue Ops[] = {Op0Op0->getOperand(0), Op0Op0->getOperand(1), ++ Op0Op0->getOperand(2)}; ++ return DAG.getNode(LoongArchISD::VEXTRACT_SEXT_ELT, SDLoc(Op0Op0), ++ Op0Op0->getVTList(), ++ makeArrayRef(Ops, Op0Op0->getNumOperands())); ++ } ++ } ++ } ++ ++ return SDValue(); ++} ++ ++// combine vsub/vslt/vbitsel.v to vabsd ++static SDValue performVSELECTCombine(SDNode *N, SelectionDAG &DAG) { ++ assert((N->getOpcode() == ISD::VSELECT) && "Need ISD::VSELECT"); ++ ++ SDLoc dl(N); ++ SDValue Cond = N->getOperand(0); ++ SDValue TrueOpnd = N->getOperand(1); ++ SDValue FalseOpnd = N->getOperand(2); ++ ++ if (Cond.getOpcode() != ISD::SETCC || TrueOpnd.getOpcode() != ISD::SUB || ++ FalseOpnd.getOpcode() != ISD::SUB) ++ return SDValue(); ++ ++ if (!(Cond.hasOneUse() || TrueOpnd.hasOneUse() || FalseOpnd.hasOneUse())) ++ return SDValue(); ++ ++ ISD::CondCode CC = cast(Cond.getOperand(2))->get(); ++ ++ switch (CC) { ++ default: ++ return SDValue(); ++ case ISD::SETUGT: ++ case ISD::SETUGE: ++ case ISD::SETGT: ++ case ISD::SETGE: ++ break; ++ case ISD::SETULT: ++ case ISD::SETULE: ++ case ISD::SETLT: ++ case ISD::SETLE: ++ std::swap(TrueOpnd, FalseOpnd); ++ break; ++ } ++ ++ SDValue Op1 = Cond.getOperand(0); ++ SDValue Op2 = Cond.getOperand(1); ++ ++ if (TrueOpnd.getOperand(0) == Op1 && TrueOpnd.getOperand(1) == Op2 && ++ FalseOpnd.getOperand(0) == Op2 && FalseOpnd.getOperand(1) == Op1) { ++ if (ISD::isSignedIntSetCC(CC)) { ++ return DAG.getNode(LoongArchISD::VABSD, dl, ++ N->getOperand(1).getValueType(), Op1, Op2, ++ DAG.getTargetConstant(0, dl, MVT::i32)); ++ } else { ++ return DAG.getNode(LoongArchISD::UVABSD, dl, ++ N->getOperand(1).getValueType(), Op1, Op2, ++ DAG.getTargetConstant(0, dl, MVT::i32)); ++ } ++ } ++ return SDValue(); ++} ++ ++static SDValue performXORCombine(SDNode *N, SelectionDAG &DAG, ++ const LoongArchSubtarget &Subtarget) { ++ ++ EVT Ty = N->getValueType(0); ++ ++ if ((Subtarget.hasLSX() && Ty.is128BitVector() && Ty.isInteger()) || ++ (Subtarget.hasLASX() && Ty.is256BitVector() && Ty.isInteger())) { ++ // Try the following combines: ++ // (xor (or $a, $b), (build_vector allones)) ++ // (xor (or $a, $b), (bitcast (build_vector allones))) ++ SDValue Op0 = N->getOperand(0); ++ SDValue Op1 = N->getOperand(1); ++ SDValue NotOp; ++ ++ if (ISD::isBuildVectorAllOnes(Op0.getNode())) ++ NotOp = Op1; ++ else if (ISD::isBuildVectorAllOnes(Op1.getNode())) ++ NotOp = Op0; ++ else ++ return SDValue(); ++ ++ if (NotOp->getOpcode() == ISD::OR) ++ return DAG.getNode(LoongArchISD::VNOR, SDLoc(N), Ty, NotOp->getOperand(0), ++ NotOp->getOperand(1)); ++ } ++ ++ return SDValue(); ++} ++ ++// When using a 256-bit vector is less expensive than using a 128-bit vector, ++// use this function to convert a 128-bit vector to a 256-bit vector. ++static SDValue ++performCONCAT_VECTORSCombine(SDNode *N, SelectionDAG &DAG, ++ TargetLowering::DAGCombinerInfo &DCI, ++ const LoongArchSubtarget &Subtarget) { ++ ++ assert((N->getOpcode() == ISD::CONCAT_VECTORS) && "Need ISD::CONCAT_VECTORS"); ++ if (DCI.isAfterLegalizeDAG()) ++ return SDValue(); ++ ++ SDLoc DL(N); ++ SDValue Top0 = N->getOperand(0); ++ SDValue Top1 = N->getOperand(1); ++ ++ // Check for cheaper optimizations. ++ if (!((Top0->getOpcode() == ISD::SIGN_EXTEND) && ++ (Top1->getOpcode() == ISD::SIGN_EXTEND))) ++ return SDValue(); ++ if (!((Top0->getOperand(0)->getOpcode() == ISD::ADD) && ++ (Top1->getOperand(0)->getOpcode() == ISD::ADD))) ++ return SDValue(); ++ ++ SDValue Op_a0 = Top0->getOperand(0); ++ SDValue Op_a1 = Top1->getOperand(0); ++ for (int i = 0; i < 2; i++) { ++ if (!((Op_a0->getOperand(i)->getOpcode() == ISD::BUILD_VECTOR) && ++ (Op_a1->getOperand(i)->getOpcode() == ISD::BUILD_VECTOR))) ++ return SDValue(); ++ } ++ ++ SDValue Ops_b[] = {Op_a0->getOperand(0), Op_a0->getOperand(1), ++ Op_a1->getOperand(0), Op_a1->getOperand(1)}; ++ for (int i = 0; i < 4; i++) { ++ if (Ops_b[i]->getNumOperands() != 2) ++ return SDValue(); ++ } ++ ++ // Currently only a single case is handled, and more optimization scenarios ++ // will be added in the future. ++ SDValue Ops_e[] = {Ops_b[0]->getOperand(0), Ops_b[0]->getOperand(1), ++ Ops_b[2]->getOperand(0), Ops_b[2]->getOperand(1), ++ Ops_b[1]->getOperand(0), Ops_b[1]->getOperand(1), ++ Ops_b[3]->getOperand(0), Ops_b[3]->getOperand(1)}; ++ for (int i = 0; i < 8; i++) { ++ if (dyn_cast(Ops_e[i])) ++ return SDValue(); ++ if (i < 4) { ++ if (cast(Ops_e[i]->getOperand(1))->getSExtValue() != ++ (2 * i)) ++ return SDValue(); ++ } else { ++ if (cast(Ops_e[i]->getOperand(1))->getSExtValue() != ++ (2 * i - 7)) ++ return SDValue(); ++ } ++ } ++ ++ for (int i = 0; i < 5; i = i + 4) { ++ if (!((Ops_e[i]->getOperand(0) == Ops_e[i + 1]->getOperand(0)) && ++ (Ops_e[i + 1]->getOperand(0) == Ops_e[i + 2]->getOperand(0)) && ++ (Ops_e[i + 2]->getOperand(0) == Ops_e[i + 3]->getOperand(0)))) ++ return SDValue(); ++ } ++ return SDValue(DAG.getMachineNode(LoongArch::XVHADDW_D_W, DL, MVT::v4i64, ++ Ops_e[6]->getOperand(0), ++ Ops_e[0]->getOperand(0)), ++ 0); ++} ++ ++static SDValue performParity(SDNode *N, SelectionDAG &DAG, ++ TargetLowering::DAGCombinerInfo &DCI, ++ const LoongArchSubtarget &Subtarget) { ++ ++ SDLoc DL(N); ++ SDValue T = N->getOperand(0); ++ if (!(N->getValueType(0).isSimple() && T->getValueType(0).isSimple())) ++ return SDValue(); ++ ++ if (DCI.isAfterLegalizeDAG()) ++ return SDValue(); ++ ++ SDValue Ops[4]; ++ bool pos_e = false; ++ bool pos_o = false; ++ ++ for (int i = 0; i < 4; i++) { ++ Ops[i] = T->getOperand(i); ++ if (!Ops[i]->getValueType(0).isSimple()) ++ return SDValue(); ++ if (Ops[i]->getOpcode() != ISD::EXTRACT_VECTOR_ELT) ++ return SDValue(); ++ ++ if (!dyn_cast(Ops[i]->getOperand(1))) ++ return SDValue(); ++ ++ if (cast(Ops[i]->getOperand(1))->getSExtValue() == ++ (2 * i)) { ++ pos_e = true; ++ } else if (cast(Ops[i]->getOperand(1))->getSExtValue() == ++ (2 * i + 1)) { ++ pos_o = true; ++ } else ++ return SDValue(); ++ } ++ ++ if (!(N->getSimpleValueType(0).SimpleTy == MVT::v4i64 && ++ T->getSimpleValueType(0).SimpleTy == MVT::v4i32)) ++ return SDValue(); ++ ++ for (int j = 0; j < 3; j++) { ++ if (Ops[j]->getOperand(0) != Ops[j + 1]->getOperand(0)) ++ return SDValue(); ++ } ++ if (pos_e) { ++ if (N->getOpcode() == ISD::SIGN_EXTEND) { ++ if (Ops[0]->getOperand(0)->getOpcode() == ISD::ADD) ++ return SDValue(DAG.getMachineNode(LoongArch::XVADDWEV_D_W, DL, ++ MVT::v4i64, ++ Ops[0]->getOperand(0)->getOperand(1), ++ Ops[0]->getOperand(0)->getOperand(0)), ++ 0); ++ else if (Ops[0]->getOperand(0)->getOpcode() == ISD::SUB) ++ return SDValue(DAG.getMachineNode(LoongArch::XVSUBWEV_D_W, DL, ++ MVT::v4i64, ++ Ops[0]->getOperand(0)->getOperand(0), ++ Ops[0]->getOperand(0)->getOperand(1)), ++ 0); ++ } else if (N->getOpcode() == ISD::ZERO_EXTEND) { ++ if (Ops[0]->getOperand(0)->getOpcode() == ISD::ADD) ++ return SDValue(DAG.getMachineNode(LoongArch::XVADDWEV_D_WU, DL, ++ MVT::v4i64, ++ Ops[0]->getOperand(0)->getOperand(1), ++ Ops[0]->getOperand(0)->getOperand(0)), ++ 0); ++ else if (Ops[0]->getOperand(0)->getOpcode() == ISD::SUB) ++ return SDValue(DAG.getMachineNode(LoongArch::XVSUBWEV_D_WU, DL, ++ MVT::v4i64, ++ Ops[0]->getOperand(0)->getOperand(0), ++ Ops[0]->getOperand(0)->getOperand(1)), ++ 0); ++ } ++ } else if (pos_o) { ++ if (N->getOpcode() == ISD::SIGN_EXTEND) { ++ if (Ops[0]->getOperand(0)->getOpcode() == ISD::ADD) ++ return SDValue(DAG.getMachineNode(LoongArch::XVADDWOD_D_W, DL, ++ MVT::v4i64, ++ Ops[0]->getOperand(0)->getOperand(1), ++ Ops[0]->getOperand(0)->getOperand(0)), ++ 0); ++ else if (Ops[0]->getOperand(0)->getOpcode() == ISD::SUB) ++ return SDValue(DAG.getMachineNode(LoongArch::XVSUBWOD_D_W, DL, ++ MVT::v4i64, ++ Ops[0]->getOperand(0)->getOperand(0), ++ Ops[0]->getOperand(0)->getOperand(1)), ++ 0); ++ } else if (N->getOpcode() == ISD::ZERO_EXTEND) { ++ if (Ops[0]->getOperand(0)->getOpcode() == ISD::ADD) ++ return SDValue(DAG.getMachineNode(LoongArch::XVADDWOD_D_WU, DL, ++ MVT::v4i64, ++ Ops[0]->getOperand(0)->getOperand(1), ++ Ops[0]->getOperand(0)->getOperand(0)), ++ 0); ++ else if (Ops[0]->getOperand(0)->getOpcode() == ISD::SUB) ++ return SDValue(DAG.getMachineNode(LoongArch::XVSUBWOD_D_WU, DL, ++ MVT::v4i64, ++ Ops[0]->getOperand(0)->getOperand(0), ++ Ops[0]->getOperand(0)->getOperand(1)), ++ 0); ++ } ++ } else ++ return SDValue(); ++ ++ return SDValue(); ++} ++ ++// Optimize zero extension and sign extension of data ++static SDValue performExtend(SDNode *N, SelectionDAG &DAG, ++ TargetLowering::DAGCombinerInfo &DCI, ++ const LoongArchSubtarget &Subtarget) { ++ ++ if (!Subtarget.hasLASX()) ++ return SDValue(); ++ ++ SDLoc DL(N); ++ SDValue T = N->getOperand(0); ++ ++ if (T->getOpcode() == ISD::BUILD_VECTOR) ++ return performParity(N, DAG, DCI, Subtarget); ++ ++ if (T->getOpcode() != ISD::ADD && T->getOpcode() != ISD::SUB) ++ return SDValue(); ++ ++ SDValue T0 = T->getOperand(0); ++ SDValue T1 = T->getOperand(1); ++ ++ if (!(T0->getOpcode() == ISD::BUILD_VECTOR && ++ T1->getOpcode() == ISD::BUILD_VECTOR)) ++ return SDValue(); ++ ++ if (DCI.isAfterLegalizeDAG()) ++ return SDValue(); ++ ++ if (!(T->getValueType(0).isSimple() && T0->getValueType(0).isSimple() && ++ T1->getValueType(0).isSimple() && N->getValueType(0).isSimple())) ++ return SDValue(); ++ ++ if (!(N->getSimpleValueType(0).SimpleTy == MVT::v4i64 && ++ T->getSimpleValueType(0).SimpleTy == MVT::v4i32 && ++ T0->getSimpleValueType(0).SimpleTy == MVT::v4i32 && ++ T1->getSimpleValueType(0).SimpleTy == MVT::v4i32)) ++ return SDValue(); ++ ++ SDValue Opse0[4]; ++ SDValue Opse1[4]; ++ ++ for (int i = 0; i < 4; i++) { ++ if (T->getOpcode() == ISD::ADD) { ++ Opse0[i] = T1->getOperand(i); ++ Opse1[i] = T0->getOperand(i); ++ } else if (T->getOpcode() == ISD::SUB) { ++ Opse0[i] = T0->getOperand(i); ++ Opse1[i] = T1->getOperand(i); ++ } ++ ++ if (Opse0[i]->getOpcode() != ISD::EXTRACT_VECTOR_ELT || ++ Opse1[i]->getOpcode() != ISD::EXTRACT_VECTOR_ELT) ++ return SDValue(); ++ ++ if (!(dyn_cast(Opse0[i]->getOperand(1)) && ++ dyn_cast(Opse1[i]->getOperand(1)))) ++ return SDValue(); ++ ++ if (cast(Opse0[i]->getOperand(1))->getSExtValue() != ++ (2 * i + 1) || ++ cast(Opse1[i]->getOperand(1))->getSExtValue() != ++ (2 * i)) ++ return SDValue(); ++ ++ if (i > 0 && (Opse0[i]->getOperand(0) != Opse0[i - 1]->getOperand(0) || ++ Opse1[i]->getOperand(0) != Opse1[i - 1]->getOperand(0))) ++ return SDValue(); ++ } ++ ++ if (N->getOpcode() == ISD::SIGN_EXTEND) { ++ if (T->getOpcode() == ISD::ADD) ++ return SDValue(DAG.getMachineNode(LoongArch::XVHADDW_D_W, DL, MVT::v4i64, ++ Opse0[0]->getOperand(0), ++ Opse1[0]->getOperand(0)), ++ 0); ++ else if (T->getOpcode() == ISD::SUB) ++ return SDValue(DAG.getMachineNode(LoongArch::XVHSUBW_D_W, DL, MVT::v4i64, ++ Opse0[0]->getOperand(0), ++ Opse1[0]->getOperand(0)), ++ 0); ++ } else if (N->getOpcode() == ISD::ZERO_EXTEND) { ++ if (T->getOpcode() == ISD::ADD) ++ return SDValue(DAG.getMachineNode(LoongArch::XVHADDW_DU_WU, DL, ++ MVT::v4i64, Opse0[0]->getOperand(0), ++ Opse1[0]->getOperand(0)), ++ 0); ++ else if (T->getOpcode() == ISD::SUB) ++ return SDValue(DAG.getMachineNode(LoongArch::XVHSUBW_DU_WU, DL, ++ MVT::v4i64, Opse0[0]->getOperand(0), ++ Opse1[0]->getOperand(0)), ++ 0); ++ } ++ ++ return SDValue(); ++} ++ ++static SDValue performSIGN_EXTENDCombine(SDNode *N, SelectionDAG &DAG, ++ TargetLowering::DAGCombinerInfo &DCI, ++ const LoongArchSubtarget &Subtarget) { ++ ++ assert((N->getOpcode() == ISD::SIGN_EXTEND) && "Need ISD::SIGN_EXTEND"); ++ ++ SDLoc DL(N); ++ SDValue Top = N->getOperand(0); ++ ++ SDValue Res; ++ if (Res = performExtend(N, DAG, DCI, Subtarget)) ++ return Res; ++ ++ ++ if (!(Top->getOpcode() == ISD::CopyFromReg)) ++ return SDValue(); ++ ++ if ((Top->getOperand(0)->getOpcode() == ISD::EntryToken) && ++ (N->getValueType(0) == MVT::i64)) { ++ ++ SDValue SubReg = DAG.getTargetConstant(LoongArch::sub_32, DL, MVT::i32); ++ SDNode *Res = DAG.getMachineNode(TargetOpcode::IMPLICIT_DEF, DL, MVT::i64); ++ ++ Res = DAG.getMachineNode(TargetOpcode::INSERT_SUBREG, DL, MVT::i64, ++ SDValue(Res, 0), Top, SubReg); ++ ++ return SDValue(Res, 0); ++ } ++ ++ return SDValue(); ++} ++ ++static SDValue performZERO_EXTENDCombine(SDNode *N, SelectionDAG &DAG, ++ TargetLowering::DAGCombinerInfo &DCI, ++ const LoongArchSubtarget &Subtarget) { ++ ++ assert((N->getOpcode() == ISD::ZERO_EXTEND) && "Need ISD::ZERO_EXTEND"); ++ ++ SDLoc DL(N); ++ ++ SDValue Res; ++ if (Res = performExtend(N, DAG, DCI, Subtarget)) ++ return Res; ++ ++ return SDValue(); ++} ++ ++SDValue LoongArchTargetLowering:: ++PerformDAGCombine(SDNode *N, DAGCombinerInfo &DCI) const { ++ SelectionDAG &DAG = DCI.DAG; ++ SDValue Val; ++ ++ switch (N->getOpcode()) { ++ default: break; ++ case ISD::AND: ++ return performANDCombine(N, DAG, DCI, Subtarget); ++ case ISD::OR: ++ return performORCombine(N, DAG, DCI, Subtarget); ++ case ISD::XOR: ++ return performXORCombine(N, DAG, Subtarget); ++ case ISD::MUL: ++ return performMULCombine(N, DAG, DCI, this, Subtarget); ++ case ISD::SRA: ++ return performSRACombine(N, DAG, DCI, Subtarget); ++ case ISD::SELECT: ++ return performSELECTCombine(N, DAG, DCI, Subtarget); ++ case ISD::SIGN_EXTEND: ++ return performSIGN_EXTENDCombine(N, DAG, DCI, Subtarget); ++ case ISD::ZERO_EXTEND: ++ return performZERO_EXTENDCombine(N, DAG, DCI, Subtarget); ++ case ISD::ADD: ++ case ISD::SUB: ++ case ISD::SHL: ++ case ISD::SRL: ++ return performLogicCombine(N, DAG, Subtarget); ++ case ISD::VSELECT: ++ return performVSELECTCombine(N, DAG); ++ case ISD::CONCAT_VECTORS: ++ return performCONCAT_VECTORSCombine(N, DAG, DCI, Subtarget); ++ } ++ return SDValue(); ++} ++ ++static SDValue lowerLSXSplatZExt(SDValue Op, unsigned OpNr, SelectionDAG &DAG) { ++ EVT ResVecTy = Op->getValueType(0); ++ EVT ViaVecTy = ResVecTy; ++ SDLoc DL(Op); ++ ++ // When ResVecTy == MVT::v2i64, LaneA is the upper 32 bits of the lane and ++ // LaneB is the lower 32-bits. Otherwise LaneA and LaneB are alternating ++ // lanes. ++ SDValue LaneA = Op->getOperand(OpNr); ++ SDValue LaneB; ++ ++ if (ResVecTy == MVT::v2i64) { ++ // In case of the index being passed as an immediate value, set the upper ++ // lane to 0 so that the splati.d instruction can be matched. ++ if (isa(LaneA)) ++ LaneB = DAG.getConstant(0, DL, MVT::i32); ++ // Having the index passed in a register, set the upper lane to the same ++ // value as the lower - this results in the BUILD_VECTOR node not being ++ // expanded through stack. This way we are able to pattern match the set of ++ // nodes created here to splat.d. ++ else ++ LaneB = LaneA; ++ ViaVecTy = MVT::v4i32; ++ } else ++ LaneB = LaneA; ++ ++ SDValue Ops[16] = {LaneA, LaneB, LaneA, LaneB, LaneA, LaneB, LaneA, LaneB, ++ LaneA, LaneB, LaneA, LaneB, LaneA, LaneB, LaneA, LaneB}; ++ ++ SDValue Result = DAG.getBuildVector( ++ ViaVecTy, DL, makeArrayRef(Ops, ViaVecTy.getVectorNumElements())); ++ ++ if (ViaVecTy != ResVecTy) { ++ SDValue One = DAG.getConstant(1, DL, ViaVecTy); ++ Result = DAG.getNode(ISD::BITCAST, DL, ResVecTy, ++ DAG.getNode(ISD::AND, DL, ViaVecTy, Result, One)); ++ } ++ ++ return Result; ++} ++ ++static SDValue lowerLSXSplatImm(SDValue Op, unsigned ImmOp, SelectionDAG &DAG, ++ bool IsSigned = false) { ++ return DAG.getConstant( ++ APInt(Op->getValueType(0).getScalarType().getSizeInBits(), ++ Op->getConstantOperandVal(ImmOp), IsSigned), ++ SDLoc(Op), Op->getValueType(0)); ++} ++ ++static SDValue getBuildVectorSplat(EVT VecTy, SDValue SplatValue, ++ SelectionDAG &DAG) { ++ EVT ViaVecTy = VecTy; ++ SDValue SplatValueA = SplatValue; ++ SDValue SplatValueB = SplatValue; ++ SDLoc DL(SplatValue); ++ ++ if (VecTy == MVT::v2i64) { ++ // v2i64 BUILD_VECTOR must be performed via v4i32 so split into i32's. ++ ViaVecTy = MVT::v4i32; ++ ++ SplatValueA = DAG.getNode(ISD::TRUNCATE, DL, MVT::i32, SplatValue); ++ SplatValueB = DAG.getNode(ISD::SRL, DL, MVT::i64, SplatValue, ++ DAG.getConstant(32, DL, MVT::i32)); ++ SplatValueB = DAG.getNode(ISD::TRUNCATE, DL, MVT::i32, SplatValueB); ++ } ++ ++ SDValue Ops[32] = {SplatValueA, SplatValueB, SplatValueA, SplatValueB, ++ SplatValueA, SplatValueB, SplatValueA, SplatValueB, ++ SplatValueA, SplatValueB, SplatValueA, SplatValueB, ++ SplatValueA, SplatValueB, SplatValueA, SplatValueB, ++ SplatValueA, SplatValueB, SplatValueA, SplatValueB, ++ SplatValueA, SplatValueB, SplatValueA, SplatValueB, ++ SplatValueA, SplatValueB, SplatValueA, SplatValueB, ++ SplatValueA, SplatValueB, SplatValueA, SplatValueB}; ++ ++ SDValue Result = DAG.getBuildVector( ++ ViaVecTy, DL, makeArrayRef(Ops, ViaVecTy.getVectorNumElements())); ++ ++ if (VecTy != ViaVecTy) ++ Result = DAG.getNode(ISD::BITCAST, DL, VecTy, Result); ++ ++ return Result; ++} ++ ++static SDValue truncateVecElts(SDValue Op, SelectionDAG &DAG) { ++ SDLoc DL(Op); ++ EVT ResTy = Op->getValueType(0); ++ SDValue Vec = Op->getOperand(2); ++ MVT ResEltTy = ++ (ResTy == MVT::v2i64 || ResTy == MVT::v4i64) ? MVT::i64 : MVT::i32; ++ SDValue ConstValue = ++ DAG.getConstant(Vec.getScalarValueSizeInBits() - 1, DL, ResEltTy); ++ SDValue SplatVec = getBuildVectorSplat(ResTy, ConstValue, DAG); ++ ++ return DAG.getNode(ISD::AND, DL, ResTy, Vec, SplatVec); ++} ++ ++static SDValue lowerLSXBitClear(SDValue Op, SelectionDAG &DAG) { ++ EVT ResTy = Op->getValueType(0); ++ SDLoc DL(Op); ++ SDValue One = DAG.getConstant(1, DL, ResTy); ++ SDValue Bit = DAG.getNode(ISD::SHL, DL, ResTy, One, truncateVecElts(Op, DAG)); ++ ++ return DAG.getNode(ISD::AND, DL, ResTy, Op->getOperand(1), ++ DAG.getNOT(DL, Bit, ResTy)); ++} ++ ++static SDValue lowerLSXLoadIntr(SDValue Op, SelectionDAG &DAG, unsigned Intr, ++ const LoongArchSubtarget &Subtarget) { ++ SDLoc DL(Op); ++ SDValue ChainIn = Op->getOperand(0); ++ SDValue Address = Op->getOperand(2); ++ SDValue Offset = Op->getOperand(3); ++ EVT ResTy = Op->getValueType(0); ++ EVT PtrTy = Address->getValueType(0); ++ ++ // For LP64 addresses have the underlying type MVT::i64. This intrinsic ++ // however takes an i32 signed constant offset. The actual type of the ++ // intrinsic is a scaled signed i12. ++ if (Subtarget.isABI_LP64()) ++ Offset = DAG.getNode(ISD::SIGN_EXTEND, DL, PtrTy, Offset); ++ ++ Address = DAG.getNode(ISD::ADD, DL, PtrTy, Address, Offset); ++ return DAG.getLoad(ResTy, DL, ChainIn, Address, MachinePointerInfo(), ++ /* Alignment = */ 16); ++} ++ ++static SDValue lowerLASXLoadIntr(SDValue Op, SelectionDAG &DAG, unsigned Intr, ++ const LoongArchSubtarget &Subtarget) { ++ SDLoc DL(Op); ++ SDValue ChainIn = Op->getOperand(0); ++ SDValue Address = Op->getOperand(2); ++ SDValue Offset = Op->getOperand(3); ++ EVT ResTy = Op->getValueType(0); ++ EVT PtrTy = Address->getValueType(0); ++ ++ // For LP64 addresses have the underlying type MVT::i64. This intrinsic ++ // however takes an i32 signed constant offset. The actual type of the ++ // intrinsic is a scaled signed i12. ++ if (Subtarget.isABI_LP64()) ++ Offset = DAG.getNode(ISD::SIGN_EXTEND, DL, PtrTy, Offset); ++ ++ Address = DAG.getNode(ISD::ADD, DL, PtrTy, Address, Offset); ++ return DAG.getLoad(ResTy, DL, ChainIn, Address, MachinePointerInfo(), ++ /* Alignment = */ 32); ++} ++ ++static SDValue lowerLASXVLDRIntr(SDValue Op, SelectionDAG &DAG, unsigned Intr, ++ const LoongArchSubtarget &Subtarget) { ++ SDLoc DL(Op); ++ SDValue ChainIn = Op->getOperand(0); ++ SDValue Address = Op->getOperand(2); ++ SDValue Offset = Op->getOperand(3); ++ EVT ResTy = Op->getValueType(0); ++ EVT PtrTy = Address->getValueType(0); ++ ++ // For LP64 addresses have the underlying type MVT::i64. This intrinsic ++ // however takes an i32 signed constant offset. The actual type of the ++ // intrinsic is a scaled signed i12. ++ if (Subtarget.isABI_LP64()) ++ Offset = DAG.getNode(ISD::SIGN_EXTEND, DL, PtrTy, Offset); ++ ++ Address = DAG.getNode(ISD::ADD, DL, PtrTy, Address, Offset); ++ SDValue Load = DAG.getLoad(ResTy, DL, ChainIn, Address, MachinePointerInfo(), ++ /* Alignment = */ 32); ++ return DAG.getNode(LoongArchISD::XVBROADCAST, DL, ++ DAG.getVTList(ResTy, MVT::Other), Load); ++} ++ ++static SDValue lowerLSXVLDRIntr(SDValue Op, SelectionDAG &DAG, unsigned Intr, ++ const LoongArchSubtarget &Subtarget) { ++ SDLoc DL(Op); ++ SDValue ChainIn = Op->getOperand(0); ++ SDValue Address = Op->getOperand(2); ++ SDValue Offset = Op->getOperand(3); ++ EVT ResTy = Op->getValueType(0); ++ EVT PtrTy = Address->getValueType(0); ++ ++ // For LP64 addresses have the underlying type MVT::i64. This intrinsic ++ // however takes an i32 signed constant offset. The actual type of the ++ // intrinsic is a scaled signed i12. ++ if (Subtarget.isABI_LP64()) ++ Offset = DAG.getNode(ISD::SIGN_EXTEND, DL, PtrTy, Offset); ++ ++ Address = DAG.getNode(ISD::ADD, DL, PtrTy, Address, Offset); ++ SDValue Load = DAG.getLoad(ResTy, DL, ChainIn, Address, MachinePointerInfo(), ++ /* Alignment = */ 16); ++ return DAG.getNode(LoongArchISD::VBROADCAST, DL, ++ DAG.getVTList(ResTy, MVT::Other), Load); ++} ++ ++static SDValue lowerLSXStoreIntr(SDValue Op, SelectionDAG &DAG, unsigned Intr, ++ const LoongArchSubtarget &Subtarget) { ++ SDLoc DL(Op); ++ SDValue ChainIn = Op->getOperand(0); ++ SDValue Value = Op->getOperand(2); ++ SDValue Address = Op->getOperand(3); ++ SDValue Offset = Op->getOperand(4); ++ EVT PtrTy = Address->getValueType(0); ++ ++ // For LP64 addresses have the underlying type MVT::i64. This intrinsic ++ // however takes an i32 signed constant offset. The actual type of the ++ // intrinsic is a scaled signed i12. ++ if (Subtarget.isABI_LP64()) ++ Offset = DAG.getNode(ISD::SIGN_EXTEND, DL, PtrTy, Offset); ++ ++ Address = DAG.getNode(ISD::ADD, DL, PtrTy, Address, Offset); ++ ++ return DAG.getStore(ChainIn, DL, Value, Address, MachinePointerInfo(), ++ /* Alignment = */ 16); ++} ++ ++static SDValue lowerLASXStoreIntr(SDValue Op, SelectionDAG &DAG, unsigned Intr, ++ const LoongArchSubtarget &Subtarget) { ++ SDLoc DL(Op); ++ SDValue ChainIn = Op->getOperand(0); ++ SDValue Value = Op->getOperand(2); ++ SDValue Address = Op->getOperand(3); ++ SDValue Offset = Op->getOperand(4); ++ EVT PtrTy = Address->getValueType(0); ++ ++ // For LP64 addresses have the underlying type MVT::i64. This intrinsic ++ // however takes an i32 signed constant offset. The actual type of the ++ // intrinsic is a scaled signed i12. ++ if (Subtarget.isABI_LP64()) ++ Offset = DAG.getNode(ISD::SIGN_EXTEND, DL, PtrTy, Offset); ++ ++ Address = DAG.getNode(ISD::ADD, DL, PtrTy, Address, Offset); ++ ++ return DAG.getStore(ChainIn, DL, Value, Address, MachinePointerInfo(), ++ /* Alignment = */ 32); ++} ++ ++static SDValue LowerSUINT_TO_FP(unsigned ExtOpcode, SDValue Op, SelectionDAG &DAG) { ++ ++ EVT ResTy = Op->getValueType(0); ++ SDValue Op0 = Op->getOperand(0); ++ EVT ViaTy = Op0->getValueType(0); ++ SDLoc DL(Op); ++ ++ if (!ResTy.isVector()) { ++ if(ResTy.getScalarSizeInBits() == ViaTy.getScalarSizeInBits()) ++ return DAG.getNode(ISD::BITCAST, DL, ResTy, Op0); ++ else if(ResTy.getScalarSizeInBits() > ViaTy.getScalarSizeInBits()) { ++ Op0 = DAG.getNode(ISD::BITCAST, DL, MVT::f32, Op0); ++ return DAG.getNode(ISD::FP_EXTEND, DL, MVT::f64, Op0); ++ } else { ++ Op0 = DAG.getNode(ISD::BITCAST, DL, MVT::f64, Op0); ++ return DAG.getNode(ISD::TRUNCATE, DL, MVT::f32, Op0); ++ } ++ ++ } ++ ++ if (ResTy.getScalarSizeInBits() == ViaTy.getScalarSizeInBits()) { ++ // v4i32 => v4f32 v8i32 => v8f32 ++ // v2i64 => v2f64 v4i64 => v4f64 ++ // do nothing ++ } else if (ResTy.getScalarSizeInBits() > ViaTy.getScalarSizeInBits()) { ++ // v4i32 => v4i64 => v4f64 ++ Op0 = DAG.getNode(ISD::CONCAT_VECTORS, DL, MVT::v8i32, {Op0, Op0}); ++ Op0 = DAG.getNode(ExtOpcode, DL, MVT::v4i64, Op0); ++ } else { ++ // v4i64 => v4f32 ++ SDValue Ops[4]; ++ for (unsigned i = 0; i < 4; i++) { ++ SDValue I64 = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, MVT::i64, Op0, ++ DAG.getConstant(i, DL, MVT::i32)); ++ Ops[i] = DAG.getNode(ISD::TRUNCATE, DL, MVT::i32, I64); ++ } ++ Op0 = DAG.getBuildVector(MVT::v4i32, DL, makeArrayRef(Ops, 4)); ++ } ++ ++ return Op0; ++} ++ ++static SDValue LowerFP_TO_SUINT(unsigned FPToSUI, unsigned ExtOpcode, ++ SDValue Op, SelectionDAG &DAG) { ++ ++ EVT ResTy = Op->getValueType(0); ++ SDValue Op0 = Op->getOperand(0); ++ EVT ViaTy = Op0->getValueType(0); ++ SDLoc DL(Op); ++ ++ if (ResTy.getScalarSizeInBits() == ViaTy.getScalarSizeInBits()) { ++ // v4f32 => v4i32 v8f32 => v8i32 ++ // v2f64 => v2i64 v4f64 => v4i64 ++ // do nothing ++ Op0 = DAG.getNode(FPToSUI, DL, ResTy, Op0); ++ } else if (ResTy.getScalarSizeInBits() > ViaTy.getScalarSizeInBits()) { ++ // v4f32 => v4i32 => v4i64 ++ Op0 = DAG.getNode(FPToSUI, DL, MVT::v4i32, Op0); ++ Op0 = DAG.getNode(ISD::CONCAT_VECTORS, DL, MVT::v8i32, {Op0, Op0}); ++ Op0 = DAG.getNode(ExtOpcode, DL, MVT::v4i64, Op0); ++ } else { ++ SDValue Ops[4]; ++ Ops[0] = DAG.getNode(FPToSUI, DL, MVT::i32, ++ DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, MVT::f64, Op0, ++ DAG.getConstant(0, DL, MVT::i64))); ++ Ops[1] = DAG.getNode(FPToSUI, DL, MVT::i32, ++ DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, MVT::f64, Op0, ++ DAG.getConstant(1, DL, MVT::i64))); ++ Ops[2] = DAG.getNode(FPToSUI, DL, MVT::i32, ++ DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, MVT::f64, Op0, ++ DAG.getConstant(2, DL, MVT::i64))); ++ Ops[3] = DAG.getNode(FPToSUI, DL, MVT::i32, ++ DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, MVT::f64, Op0, ++ DAG.getConstant(3, DL, MVT::i64))); ++ ++ Op0 = DAG.getBuildVector(MVT::v4i32, DL, makeArrayRef(Ops, 4)); ++ } ++ ++ return Op0; ++} ++ ++// Lower VECTOR_SHUFFLE into SHF (if possible). ++// ++// SHF splits the vector into blocks of four elements, then shuffles these ++// elements according to a <4 x i2> constant (encoded as an integer immediate). ++// ++// It is therefore possible to lower into SHF when the mask takes the form: ++// ++// When undef's appear they are treated as if they were whatever value is ++// necessary in order to fit the above forms. ++// ++// For example: ++// %2 = shufflevector <8 x i16> %0, <8 x i16> undef, ++// <8 x i32> ++// is lowered to: ++// (VSHUF4I_H $v0, $v1, 27) ++// where the 27 comes from: ++// 3 + (2 << 2) + (1 << 4) + (0 << 6) ++static SDValue lowerVECTOR_SHUFFLE_SHF(SDValue Op, EVT ResTy, ++ SmallVector Indices, ++ SelectionDAG &DAG) { ++ int SHFIndices[4] = {-1, -1, -1, -1}; ++ ++ if (Indices.size() < 4) ++ return SDValue(); ++ ++ for (unsigned i = 0; i < 4; ++i) { ++ for (unsigned j = i; j < Indices.size(); j += 4) { ++ int Idx = Indices[j]; ++ ++ // Convert from vector index to 4-element subvector index ++ // If an index refers to an element outside of the subvector then give up ++ if (Idx != -1) { ++ Idx -= 4 * (j / 4); ++ if (Idx < 0 || Idx >= 4) ++ return SDValue(); ++ } ++ ++ // If the mask has an undef, replace it with the current index. ++ // Note that it might still be undef if the current index is also undef ++ if (SHFIndices[i] == -1) ++ SHFIndices[i] = Idx; ++ ++ // Check that non-undef values are the same as in the mask. If they ++ // aren't then give up ++ if (!(Idx == -1 || Idx == SHFIndices[i])) ++ return SDValue(); ++ } ++ } ++ ++ // Calculate the immediate. Replace any remaining undefs with zero ++ APInt Imm(32, 0); ++ for (int i = 3; i >= 0; --i) { ++ int Idx = SHFIndices[i]; ++ ++ if (Idx == -1) ++ Idx = 0; ++ ++ Imm <<= 2; ++ Imm |= Idx & 0x3; ++ } ++ ++ SDLoc DL(Op); ++ return DAG.getNode(LoongArchISD::SHF, DL, ResTy, ++ DAG.getConstant(Imm, DL, MVT::i32), Op->getOperand(0)); ++} ++ ++/// Determine whether a range fits a regular pattern of values. ++/// This function accounts for the possibility of jumping over the End iterator. ++template ++static bool ++fitsRegularPattern(typename SmallVectorImpl::const_iterator Begin, ++ unsigned CheckStride, ++ typename SmallVectorImpl::const_iterator End, ++ ValType ExpectedIndex, unsigned ExpectedIndexStride) { ++ auto &I = Begin; ++ ++ while (I != End) { ++ if (*I != -1 && *I != ExpectedIndex) ++ return false; ++ ExpectedIndex += ExpectedIndexStride; ++ ++ // Incrementing past End is undefined behaviour so we must increment one ++ // step at a time and check for End at each step. ++ for (unsigned n = 0; n < CheckStride && I != End; ++n, ++I) ++ ; // Empty loop body. ++ } ++ return true; ++} ++ ++// Determine whether VECTOR_SHUFFLE is a VREPLVEI. ++// ++// It is a VREPLVEI when the mask is: ++// ++// where x is any valid index. ++// ++// When undef's appear in the mask they are treated as if they were whatever ++// value is necessary in order to fit the above form. ++static bool isVECTOR_SHUFFLE_VREPLVEI(SDValue Op, EVT ResTy, ++ SmallVector Indices, ++ SelectionDAG &DAG) { ++ assert((Indices.size() % 2) == 0); ++ ++ int SplatIndex = -1; ++ for (const auto &V : Indices) { ++ if (V != -1) { ++ SplatIndex = V; ++ break; ++ } ++ } ++ ++ return fitsRegularPattern(Indices.begin(), 1, Indices.end(), SplatIndex, ++ 0); ++} ++ ++// Lower VECTOR_SHUFFLE into VPACKEV (if possible). ++// ++// VPACKEV interleaves the even elements from each vector. ++// ++// It is possible to lower into VPACKEV when the mask consists of two of the ++// following forms interleaved: ++// <0, 2, 4, ...> ++// ++// where n is the number of elements in the vector. ++// For example: ++// <0, 0, 2, 2, 4, 4, ...> ++// <0, n, 2, n+2, 4, n+4, ...> ++// ++// When undef's appear in the mask they are treated as if they were whatever ++// value is necessary in order to fit the above forms. ++static SDValue lowerVECTOR_SHUFFLE_VPACKEV(SDValue Op, EVT ResTy, ++ SmallVector Indices, ++ SelectionDAG &DAG) { ++ assert((Indices.size() % 2) == 0); ++ ++ SDValue Vj; ++ SDValue Vk; ++ const auto &Begin = Indices.begin(); ++ const auto &End = Indices.end(); ++ ++ // Check even elements are taken from the even elements of one half or the ++ // other and pick an operand accordingly. ++ if (fitsRegularPattern(Begin, 2, End, 0, 2)) ++ Vj = Op->getOperand(0); ++ else if (fitsRegularPattern(Begin, 2, End, Indices.size(), 2)) ++ Vj = Op->getOperand(1); ++ else ++ return SDValue(); ++ ++ // Check odd elements are taken from the even elements of one half or the ++ // other and pick an operand accordingly. ++ if (fitsRegularPattern(Begin + 1, 2, End, 0, 2)) ++ Vk = Op->getOperand(0); ++ else if (fitsRegularPattern(Begin + 1, 2, End, Indices.size(), 2)) ++ Vk = Op->getOperand(1); ++ else ++ return SDValue(); ++ ++ return DAG.getNode(LoongArchISD::VPACKEV, SDLoc(Op), ResTy, Vk, Vj); ++} ++ ++// Lower VECTOR_SHUFFLE into VPACKOD (if possible). ++// ++// VPACKOD interleaves the odd elements from each vector. ++// ++// It is possible to lower into VPACKOD when the mask consists of two of the ++// following forms interleaved: ++// <1, 3, 5, ...> ++// ++// where n is the number of elements in the vector. ++// For example: ++// <1, 1, 3, 3, 5, 5, ...> ++// <1, n+1, 3, n+3, 5, n+5, ...> ++// ++// When undef's appear in the mask they are treated as if they were whatever ++// value is necessary in order to fit the above forms. ++static SDValue lowerVECTOR_SHUFFLE_VPACKOD(SDValue Op, EVT ResTy, ++ SmallVector Indices, ++ SelectionDAG &DAG) { ++ assert((Indices.size() % 2) == 0); ++ ++ SDValue Vj; ++ SDValue Vk; ++ const auto &Begin = Indices.begin(); ++ const auto &End = Indices.end(); ++ ++ // Check even elements are taken from the odd elements of one half or the ++ // other and pick an operand accordingly. ++ if (fitsRegularPattern(Begin, 2, End, 1, 2)) ++ Vj = Op->getOperand(0); ++ else if (fitsRegularPattern(Begin, 2, End, Indices.size() + 1, 2)) ++ Vj = Op->getOperand(1); ++ else ++ return SDValue(); ++ ++ // Check odd elements are taken from the odd elements of one half or the ++ // other and pick an operand accordingly. ++ if (fitsRegularPattern(Begin + 1, 2, End, 1, 2)) ++ Vk = Op->getOperand(0); ++ else if (fitsRegularPattern(Begin + 1, 2, End, Indices.size() + 1, 2)) ++ Vk = Op->getOperand(1); ++ else ++ return SDValue(); ++ ++ return DAG.getNode(LoongArchISD::VPACKOD, SDLoc(Op), ResTy, Vk, Vj); ++} ++ ++// Lower VECTOR_SHUFFLE into VILVL (if possible). ++// ++// VILVL interleaves consecutive elements from the right (lowest-indexed) half ++// of each vector. ++// ++// It is possible to lower into VILVL when the mask consists of two of the ++// following forms interleaved: ++// <0, 1, 2, ...> ++// ++// where n is the number of elements in the vector. ++// For example: ++// <0, 0, 1, 1, 2, 2, ...> ++// <0, n, 1, n+1, 2, n+2, ...> ++// ++// When undef's appear in the mask they are treated as if they were whatever ++// value is necessary in order to fit the above forms. ++static SDValue lowerVECTOR_SHUFFLE_VILVL(SDValue Op, EVT ResTy, ++ SmallVector Indices, ++ SelectionDAG &DAG) { ++ assert((Indices.size() % 2) == 0); ++ ++ SDValue Vj; ++ SDValue Vk; ++ const auto &Begin = Indices.begin(); ++ const auto &End = Indices.end(); ++ ++ // Check even elements are taken from the right (lowest-indexed) elements of ++ // one half or the other and pick an operand accordingly. ++ if (fitsRegularPattern(Begin, 2, End, 0, 1)) ++ Vj = Op->getOperand(0); ++ else if (fitsRegularPattern(Begin, 2, End, Indices.size(), 1)) ++ Vj = Op->getOperand(1); ++ else ++ return SDValue(); ++ ++ // Check odd elements are taken from the right (lowest-indexed) elements of ++ // one half or the other and pick an operand accordingly. ++ if (fitsRegularPattern(Begin + 1, 2, End, 0, 1)) ++ Vk = Op->getOperand(0); ++ else if (fitsRegularPattern(Begin + 1, 2, End, Indices.size(), 1)) ++ Vk = Op->getOperand(1); ++ else ++ return SDValue(); ++ ++ return DAG.getNode(LoongArchISD::VILVL, SDLoc(Op), ResTy, Vk, Vj); ++} ++ ++// Lower VECTOR_SHUFFLE into VILVH (if possible). ++// ++// VILVH interleaves consecutive elements from the left (highest-indexed) half ++// of each vector. ++// ++// It is possible to lower into VILVH when the mask consists of two of the ++// following forms interleaved: ++// ++// ++// where n is the number of elements in the vector and x is half n. ++// For example: ++// ++// ++// ++// When undef's appear in the mask they are treated as if they were whatever ++// value is necessary in order to fit the above forms. ++static SDValue lowerVECTOR_SHUFFLE_VILVH(SDValue Op, EVT ResTy, ++ SmallVector Indices, ++ SelectionDAG &DAG) { ++ assert((Indices.size() % 2) == 0); ++ ++ unsigned HalfSize = Indices.size() / 2; ++ SDValue Vj; ++ SDValue Vk; ++ const auto &Begin = Indices.begin(); ++ const auto &End = Indices.end(); ++ ++ // Check even elements are taken from the left (highest-indexed) elements of ++ // one half or the other and pick an operand accordingly. ++ if (fitsRegularPattern(Begin, 2, End, HalfSize, 1)) ++ Vj = Op->getOperand(0); ++ else if (fitsRegularPattern(Begin, 2, End, Indices.size() + HalfSize, 1)) ++ Vj = Op->getOperand(1); ++ else ++ return SDValue(); ++ ++ // Check odd elements are taken from the left (highest-indexed) elements of ++ // one half or the other and pick an operand accordingly. ++ if (fitsRegularPattern(Begin + 1, 2, End, HalfSize, 1)) ++ Vk = Op->getOperand(0); ++ else if (fitsRegularPattern(Begin + 1, 2, End, Indices.size() + HalfSize, ++ 1)) ++ Vk = Op->getOperand(1); ++ else ++ return SDValue(); ++ ++ return DAG.getNode(LoongArchISD::VILVH, SDLoc(Op), ResTy, Vk, Vj); ++} ++ ++// Lower VECTOR_SHUFFLE into VPICKEV (if possible). ++// ++// VPICKEV copies the even elements of each vector into the result vector. ++// ++// It is possible to lower into VPICKEV when the mask consists of two of the ++// following forms concatenated: ++// <0, 2, 4, ...> ++// ++// where n is the number of elements in the vector. ++// For example: ++// <0, 2, 4, ..., 0, 2, 4, ...> ++// <0, 2, 4, ..., n, n+2, n+4, ...> ++// ++// When undef's appear in the mask they are treated as if they were whatever ++// value is necessary in order to fit the above forms. ++static SDValue lowerVECTOR_SHUFFLE_VPICKEV(SDValue Op, EVT ResTy, ++ SmallVector Indices, ++ SelectionDAG &DAG) { ++ assert((Indices.size() % 2) == 0); ++ ++ SDValue Vj; ++ SDValue Vk; ++ const auto &Begin = Indices.begin(); ++ const auto &Mid = Indices.begin() + Indices.size() / 2; ++ const auto &End = Indices.end(); ++ ++ if (fitsRegularPattern(Begin, 1, Mid, 0, 2)) ++ Vj = Op->getOperand(0); ++ else if (fitsRegularPattern(Begin, 1, Mid, Indices.size(), 2)) ++ Vj = Op->getOperand(1); ++ else ++ return SDValue(); ++ ++ if (fitsRegularPattern(Mid, 1, End, 0, 2)) ++ Vk = Op->getOperand(0); ++ else if (fitsRegularPattern(Mid, 1, End, Indices.size(), 2)) ++ Vk = Op->getOperand(1); ++ else ++ return SDValue(); ++ ++ return DAG.getNode(LoongArchISD::VPICKEV, SDLoc(Op), ResTy, Vk, Vj); ++} ++ ++// Lower VECTOR_SHUFFLE into VPICKOD (if possible). ++// ++// VPICKOD copies the odd elements of each vector into the result vector. ++// ++// It is possible to lower into VPICKOD when the mask consists of two of the ++// following forms concatenated: ++// <1, 3, 5, ...> ++// ++// where n is the number of elements in the vector. ++// For example: ++// <1, 3, 5, ..., 1, 3, 5, ...> ++// <1, 3, 5, ..., n+1, n+3, n+5, ...> ++// ++// When undef's appear in the mask they are treated as if they were whatever ++// value is necessary in order to fit the above forms. ++static SDValue lowerVECTOR_SHUFFLE_VPICKOD(SDValue Op, EVT ResTy, ++ SmallVector Indices, ++ SelectionDAG &DAG) { ++ assert((Indices.size() % 2) == 0); ++ ++ SDValue Vj; ++ SDValue Vk; ++ const auto &Begin = Indices.begin(); ++ const auto &Mid = Indices.begin() + Indices.size() / 2; ++ const auto &End = Indices.end(); ++ ++ if (fitsRegularPattern(Begin, 1, Mid, 1, 2)) ++ Vj = Op->getOperand(0); ++ else if (fitsRegularPattern(Begin, 1, Mid, Indices.size() + 1, 2)) ++ Vj = Op->getOperand(1); ++ else ++ return SDValue(); ++ ++ if (fitsRegularPattern(Mid, 1, End, 1, 2)) ++ Vk = Op->getOperand(0); ++ else if (fitsRegularPattern(Mid, 1, End, Indices.size() + 1, 2)) ++ Vk = Op->getOperand(1); ++ else ++ return SDValue(); ++ ++ return DAG.getNode(LoongArchISD::VPICKOD, SDLoc(Op), ResTy, Vk, Vj); ++} ++ ++// Lower VECTOR_SHUFFLE into VSHF. ++// ++// This mostly consists of converting the shuffle indices in Indices into a ++// BUILD_VECTOR and adding it as an operand to the resulting VSHF. There is ++// also code to eliminate unused operands of the VECTOR_SHUFFLE. For example, ++// if the type is v8i16 and all the indices are less than 8 then the second ++// operand is unused and can be replaced with anything. We choose to replace it ++// with the used operand since this reduces the number of instructions overall. ++static SDValue lowerVECTOR_SHUFFLE_VSHF(SDValue Op, EVT ResTy, ++ SmallVector Indices, ++ SelectionDAG &DAG) { ++ SmallVector Ops; ++ SDValue Op0; ++ SDValue Op1; ++ EVT MaskVecTy = ResTy.changeVectorElementTypeToInteger(); ++ EVT MaskEltTy = MaskVecTy.getVectorElementType(); ++ bool Using1stVec = false; ++ bool Using2ndVec = false; ++ SDLoc DL(Op); ++ int ResTyNumElts = ResTy.getVectorNumElements(); ++ ++ for (int i = 0; i < ResTyNumElts; ++i) { ++ // Idx == -1 means UNDEF ++ int Idx = Indices[i]; ++ ++ if (0 <= Idx && Idx < ResTyNumElts) ++ Using1stVec = true; ++ if (ResTyNumElts <= Idx && Idx < ResTyNumElts * 2) ++ Using2ndVec = true; ++ } ++ ++ for (SmallVector::iterator I = Indices.begin(); I != Indices.end(); ++ ++I) ++ Ops.push_back(DAG.getTargetConstant(*I, DL, MaskEltTy)); ++ ++ SDValue MaskVec = DAG.getBuildVector(MaskVecTy, DL, Ops); ++ ++ if (Using1stVec && Using2ndVec) { ++ Op0 = Op->getOperand(0); ++ Op1 = Op->getOperand(1); ++ } else if (Using1stVec) ++ Op0 = Op1 = Op->getOperand(0); ++ else if (Using2ndVec) ++ Op0 = Op1 = Op->getOperand(1); ++ else ++ llvm_unreachable("shuffle vector mask references neither vector operand?"); ++ ++ // VECTOR_SHUFFLE concatenates the vectors in an vectorwise fashion. ++ // <0b00, 0b01> + <0b10, 0b11> -> <0b00, 0b01, 0b10, 0b11> ++ // VSHF concatenates the vectors in a bitwise fashion: ++ // <0b00, 0b01> + <0b10, 0b11> -> ++ // 0b0100 + 0b1110 -> 0b01001110 ++ // <0b10, 0b11, 0b00, 0b01> ++ // We must therefore swap the operands to get the correct result. ++ return DAG.getNode(LoongArchISD::VSHF, DL, ResTy, MaskVec, Op1, Op0); ++} ++ ++static SDValue lowerVECTOR_SHUFFLE_XVILVL(SDValue Op, EVT ResTy, ++ SmallVector Indices, ++ SelectionDAG &DAG) { ++ assert((Indices.size() % 2) == 0); ++ ++ SDValue Xj; ++ SDValue Xk; ++ const auto &Begin = Indices.begin(); ++ const auto &End = Indices.end(); ++ unsigned HalfSize = Indices.size() / 2; ++ ++ if (fitsRegularPattern(Begin, 2, End, 0, 1) && ++ fitsRegularPattern(Begin + HalfSize, 2, End, HalfSize, 1)) ++ Xj = Op->getOperand(0); ++ else if (fitsRegularPattern(Begin, 2, End, Indices.size(), 1) && ++ fitsRegularPattern(Begin + HalfSize, 2, End, ++ Indices.size() + HalfSize, 1)) ++ Xj = Op->getOperand(1); ++ else ++ return SDValue(); ++ ++ if (fitsRegularPattern(Begin + 1, 2, End, 0, 1) && ++ fitsRegularPattern(Begin + 1 + HalfSize, 2, End, HalfSize, 1)) ++ Xk = Op->getOperand(0); ++ else if (fitsRegularPattern(Begin + 1, 2, End, Indices.size(), 1) && ++ fitsRegularPattern(Begin + 1 + HalfSize, 2, End, ++ Indices.size() + HalfSize, 1)) ++ Xk = Op->getOperand(1); ++ else ++ return SDValue(); ++ ++ return DAG.getNode(LoongArchISD::VILVL, SDLoc(Op), ResTy, Xk, Xj); ++} ++ ++static SDValue lowerVECTOR_SHUFFLE_XVILVH(SDValue Op, EVT ResTy, ++ SmallVector Indices, ++ SelectionDAG &DAG) { ++ assert((Indices.size() % 2) == 0); ++ ++ unsigned HalfSize = Indices.size() / 2; ++ unsigned LeftSize = HalfSize / 2; ++ SDValue Xj; ++ SDValue Xk; ++ const auto &Begin = Indices.begin(); ++ const auto &End = Indices.end(); ++ ++ if (fitsRegularPattern(Begin, 2, End, HalfSize - LeftSize, 1) && ++ fitsRegularPattern(Begin + HalfSize + LeftSize, 2, End, ++ HalfSize + LeftSize, 1)) ++ Xj = Op->getOperand(0); ++ else if (fitsRegularPattern(Begin, 2, End, ++ Indices.size() + HalfSize - LeftSize, 1) && ++ fitsRegularPattern(Begin + HalfSize + LeftSize, 2, End, ++ Indices.size() + HalfSize + LeftSize, 1)) ++ Xj = Op->getOperand(1); ++ else ++ return SDValue(); ++ ++ if (fitsRegularPattern(Begin + 1, 2, End, HalfSize, 1) && ++ fitsRegularPattern(Begin + 1 + HalfSize + LeftSize, 2, End, ++ HalfSize + LeftSize, 1)) ++ Xk = Op->getOperand(0); ++ else if (fitsRegularPattern(Begin + 1, 2, End, Indices.size() + HalfSize, ++ 1) && ++ fitsRegularPattern(Begin + 1 + HalfSize + LeftSize, 2, End, ++ Indices.size() + HalfSize + LeftSize, 1)) ++ Xk = Op->getOperand(1); ++ else ++ return SDValue(); ++ ++ return DAG.getNode(LoongArchISD::VILVH, SDLoc(Op), ResTy, Xk, Xj); ++} ++ ++static SDValue lowerVECTOR_SHUFFLE_XVPACKEV(SDValue Op, EVT ResTy, ++ SmallVector Indices, ++ SelectionDAG &DAG) { ++ assert((Indices.size() % 2) == 0); ++ ++ SDValue Xj; ++ SDValue Xk; ++ const auto &Begin = Indices.begin(); ++ const auto &End = Indices.end(); ++ unsigned HalfSize = Indices.size() / 2; ++ ++ if (fitsRegularPattern(Begin, 2, End, 0, 2) && ++ fitsRegularPattern(Begin + HalfSize, 2, End, HalfSize, 2)) ++ Xj = Op->getOperand(0); ++ else if (fitsRegularPattern(Begin, 2, End, Indices.size(), 2) && ++ fitsRegularPattern(Begin + HalfSize, 2, End, ++ Indices.size() + HalfSize, 2)) ++ Xj = Op->getOperand(1); ++ else ++ return SDValue(); ++ ++ if (fitsRegularPattern(Begin + 1, 2, End, 0, 2) && ++ fitsRegularPattern(Begin + 1 + HalfSize, 2, End, HalfSize, 2)) ++ Xk = Op->getOperand(0); ++ else if (fitsRegularPattern(Begin + 1, 2, End, Indices.size(), 2) && ++ fitsRegularPattern(Begin + 1 + HalfSize, 2, End, ++ Indices.size() + HalfSize, 2)) ++ Xk = Op->getOperand(1); ++ else ++ return SDValue(); ++ ++ return DAG.getNode(LoongArchISD::VPACKEV, SDLoc(Op), ResTy, Xk, Xj); ++} ++ ++static SDValue lowerVECTOR_SHUFFLE_XVPACKOD(SDValue Op, EVT ResTy, ++ SmallVector Indices, ++ SelectionDAG &DAG) { ++ assert((Indices.size() % 2) == 0); ++ ++ SDValue Xj; ++ SDValue Xk; ++ const auto &Begin = Indices.begin(); ++ const auto &End = Indices.end(); ++ unsigned HalfSize = Indices.size() / 2; ++ ++ if (fitsRegularPattern(Begin, 2, End, 1, 2) && ++ fitsRegularPattern(Begin + HalfSize, 2, End, HalfSize + 1, 2)) ++ Xj = Op->getOperand(0); ++ else if (fitsRegularPattern(Begin, 2, End, Indices.size() + 1, 2) && ++ fitsRegularPattern(Begin + HalfSize, 2, End, ++ Indices.size() + HalfSize + 1, 2)) ++ Xj = Op->getOperand(1); ++ else ++ return SDValue(); ++ ++ if (fitsRegularPattern(Begin + 1, 2, End, 1, 2) && ++ fitsRegularPattern(Begin + 1 + HalfSize, 2, End, HalfSize + 1, 2)) ++ Xk = Op->getOperand(0); ++ else if (fitsRegularPattern(Begin + 1, 2, End, Indices.size() + 1, 2) && ++ fitsRegularPattern(Begin + 1 + HalfSize, 2, End, ++ Indices.size() + HalfSize + 1, 2)) ++ Xk = Op->getOperand(1); ++ else ++ return SDValue(); ++ ++ return DAG.getNode(LoongArchISD::VPACKOD, SDLoc(Op), ResTy, Xk, Xj); ++} ++ ++static bool isVECTOR_SHUFFLE_XVREPLVEI(SDValue Op, EVT ResTy, ++ SmallVector Indices, ++ SelectionDAG &DAG) { ++ assert((Indices.size() % 2) == 0); ++ unsigned HalfSize = Indices.size() / 2; ++ ++ for (unsigned i = 0; i < HalfSize; i++) { ++ if (Indices[i] == -1 || Indices[HalfSize + i] == -1) ++ return false; ++ if (Indices[0] != Indices[i] || Indices[HalfSize] != Indices[HalfSize + i]) ++ return false; ++ } ++ return true; ++} ++ ++static SDValue lowerVECTOR_SHUFFLE_XVPICKEV(SDValue Op, EVT ResTy, ++ SmallVector Indices, ++ SelectionDAG &DAG) { ++ assert((Indices.size() % 2) == 0); ++ ++ SDValue Xj; ++ SDValue Xk; ++ const auto &Begin = Indices.begin(); ++ const auto &LeftMid = Indices.begin() + Indices.size() / 4; ++ const auto &End = Indices.end(); ++ const auto &RightMid = Indices.end() - Indices.size() / 4; ++ const auto &Mid = Indices.begin() + Indices.size() / 2; ++ unsigned HalfSize = Indices.size() / 2; ++ ++ if (fitsRegularPattern(Begin, 1, LeftMid, 0, 2) && ++ fitsRegularPattern(Mid, 1, RightMid, HalfSize, 2)) ++ Xj = Op->getOperand(0); ++ else if (fitsRegularPattern(Begin, 1, LeftMid, Indices.size(), 2) && ++ fitsRegularPattern(Mid, 1, RightMid, Indices.size() + HalfSize, ++ 2)) ++ Xj = Op->getOperand(1); ++ else ++ return SDValue(); ++ ++ if (fitsRegularPattern(LeftMid, 1, Mid, 0, 2) && ++ fitsRegularPattern(RightMid, 1, End, HalfSize, 2)) ++ Xk = Op->getOperand(0); ++ else if (fitsRegularPattern(LeftMid, 1, Mid, Indices.size(), 2) && ++ fitsRegularPattern(RightMid, 1, End, Indices.size() + HalfSize, ++ 2)) ++ Xk = Op->getOperand(1); ++ else ++ return SDValue(); ++ ++ return DAG.getNode(LoongArchISD::VPICKEV, SDLoc(Op), ResTy, Xk, Xj); ++} ++ ++static SDValue lowerVECTOR_SHUFFLE_XVPICKOD(SDValue Op, EVT ResTy, ++ SmallVector Indices, ++ SelectionDAG &DAG) { ++ assert((Indices.size() % 2) == 0); ++ ++ SDValue Xj; ++ SDValue Xk; ++ const auto &Begin = Indices.begin(); ++ const auto &LeftMid = Indices.begin() + Indices.size() / 4; ++ const auto &Mid = Indices.begin() + Indices.size() / 2; ++ const auto &RightMid = Indices.end() - Indices.size() / 4; ++ const auto &End = Indices.end(); ++ unsigned HalfSize = Indices.size() / 2; ++ ++ if (fitsRegularPattern(Begin, 1, LeftMid, 1, 2) && ++ fitsRegularPattern(Mid, 1, RightMid, HalfSize + 1, 2)) ++ Xj = Op->getOperand(0); ++ else if (fitsRegularPattern(Begin, 1, LeftMid, Indices.size() + 1, 2) && ++ fitsRegularPattern(Mid, 1, RightMid, ++ Indices.size() + HalfSize + 1, 2)) ++ Xj = Op->getOperand(1); ++ else ++ return SDValue(); ++ ++ if (fitsRegularPattern(LeftMid, 1, Mid, 1, 2) && ++ fitsRegularPattern(RightMid, 1, End, HalfSize + 1, 2)) ++ Xk = Op->getOperand(0); ++ else if (fitsRegularPattern(LeftMid, 1, Mid, Indices.size() + 1, 2) && ++ fitsRegularPattern(RightMid, 1, End, ++ Indices.size() + HalfSize + 1, 2)) ++ Xk = Op->getOperand(1); ++ else ++ return SDValue(); ++ ++ return DAG.getNode(LoongArchISD::VPICKOD, SDLoc(Op), ResTy, Xk, Xj); ++} ++ ++static SDValue lowerVECTOR_SHUFFLE_XSHF(SDValue Op, EVT ResTy, ++ SmallVector Indices, ++ SelectionDAG &DAG) { ++ int SHFIndices[4] = {-1, -1, -1, -1}; ++ ++ if (Indices.size() < 4) ++ return SDValue(); ++ ++ int HalfSize = Indices.size() / 2; ++ for (int i = 0; i < 4; ++i) { ++ for (int j = i; j < HalfSize; j += 4) { ++ int Idx = Indices[j]; ++ // check mxshf ++ if (Idx + HalfSize != Indices[j + HalfSize]) ++ return SDValue(); ++ ++ // Convert from vector index to 4-element subvector index ++ // If an index refers to an element outside of the subvector then give up ++ if (Idx != -1) { ++ Idx -= 4 * (j / 4); ++ if (Idx < 0 || Idx >= 4) ++ return SDValue(); ++ } ++ ++ // If the mask has an undef, replace it with the current index. ++ // Note that it might still be undef if the current index is also undef ++ if (SHFIndices[i] == -1) ++ SHFIndices[i] = Idx; ++ ++ // Check that non-undef values are the same as in the mask. If they ++ // aren't then give up ++ if (!(Idx == -1 || Idx == SHFIndices[i])) ++ return SDValue(); ++ } ++ } ++ ++ // Calculate the immediate. Replace any remaining undefs with zero ++ APInt Imm(32, 0); ++ for (int i = 3; i >= 0; --i) { ++ int Idx = SHFIndices[i]; ++ ++ if (Idx == -1) ++ Idx = 0; ++ ++ Imm <<= 2; ++ Imm |= Idx & 0x3; ++ } ++ SDLoc DL(Op); ++ return DAG.getNode(LoongArchISD::SHF, DL, ResTy, ++ DAG.getConstant(Imm, DL, MVT::i32), Op->getOperand(0)); ++} ++ ++static bool isConstantOrUndef(const SDValue Op) { ++ if (Op->isUndef()) ++ return true; ++ if (isa(Op)) ++ return true; ++ if (isa(Op)) ++ return true; ++ return false; ++} ++ ++static bool isConstantOrUndefBUILD_VECTOR(const BuildVectorSDNode *Op) { ++ for (unsigned i = 0; i < Op->getNumOperands(); ++i) ++ if (isConstantOrUndef(Op->getOperand(i))) ++ return true; ++ return false; ++} ++ ++static bool isLASXBySplatBitSize(unsigned SplatBitSize, EVT &ViaVecTy) { ++ switch (SplatBitSize) { ++ default: ++ return false; ++ case 8: ++ ViaVecTy = MVT::v32i8; ++ break; ++ case 16: ++ ViaVecTy = MVT::v16i16; ++ break; ++ case 32: ++ ViaVecTy = MVT::v8i32; ++ break; ++ case 64: ++ ViaVecTy = MVT::v4i64; ++ break; ++ case 128: ++ // There's no fill.q to fall back on for 64-bit values ++ return false; ++ } ++ ++ return true; ++} ++ ++static bool isLSXBySplatBitSize(unsigned SplatBitSize, EVT &ViaVecTy) { ++ switch (SplatBitSize) { ++ default: ++ return false; ++ case 8: ++ ViaVecTy = MVT::v16i8; ++ break; ++ case 16: ++ ViaVecTy = MVT::v8i16; ++ break; ++ case 32: ++ ViaVecTy = MVT::v4i32; ++ break; ++ case 64: ++ // There's no fill.d to fall back on for 64-bit values ++ return false; ++ } ++ ++ return true; ++} ++ ++bool LoongArchTargetLowering::isCheapToSpeculateCttz() const { return true; } ++ ++bool LoongArchTargetLowering::isCheapToSpeculateCtlz() const { return true; } ++ ++void LoongArchTargetLowering::LowerOperationWrapper( ++ SDNode *N, SmallVectorImpl &Results, SelectionDAG &DAG) const { ++ SDValue Res = LowerOperation(SDValue(N, 0), DAG); ++ ++ for (unsigned I = 0, E = Res->getNumValues(); I != E; ++I) ++ Results.push_back(Res.getValue(I)); ++} ++ ++void LoongArchTargetLowering::ReplaceNodeResults( ++ SDNode *N, SmallVectorImpl &Results, SelectionDAG &DAG) const { ++ return LowerOperationWrapper(N, Results, DAG); ++} ++ ++SDValue LoongArchTargetLowering::LowerOperation(SDValue Op, ++ SelectionDAG &DAG) const { ++ switch (Op.getOpcode()) { ++ case ISD::STORE: ++ return lowerSTORE(Op, DAG); ++ case ISD::INTRINSIC_WO_CHAIN: ++ return lowerINTRINSIC_WO_CHAIN(Op, DAG); ++ case ISD::INTRINSIC_W_CHAIN: ++ return lowerINTRINSIC_W_CHAIN(Op, DAG); ++ case ISD::INTRINSIC_VOID: ++ return lowerINTRINSIC_VOID(Op, DAG); ++ case ISD::EXTRACT_VECTOR_ELT: ++ return lowerEXTRACT_VECTOR_ELT(Op, DAG); ++ case ISD::INSERT_VECTOR_ELT: ++ return lowerINSERT_VECTOR_ELT(Op, DAG); ++ case ISD::BUILD_VECTOR: ++ return lowerBUILD_VECTOR(Op, DAG); ++ case ISD::VECTOR_SHUFFLE: ++ return lowerVECTOR_SHUFFLE(Op, DAG); ++ case ISD::UINT_TO_FP: ++ return lowerUINT_TO_FP(Op, DAG); ++ case ISD::SINT_TO_FP: ++ return lowerSINT_TO_FP(Op, DAG); ++ case ISD::FP_TO_UINT: ++ return lowerFP_TO_UINT(Op, DAG); ++ case ISD::FP_TO_SINT: ++ return lowerFP_TO_SINT(Op, DAG); ++ case ISD::BRCOND: ++ return lowerBRCOND(Op, DAG); ++ case ISD::ConstantPool: ++ return lowerConstantPool(Op, DAG); ++ case ISD::GlobalAddress: ++ return lowerGlobalAddress(Op, DAG); ++ case ISD::BlockAddress: ++ return lowerBlockAddress(Op, DAG); ++ case ISD::GlobalTLSAddress: ++ return lowerGlobalTLSAddress(Op, DAG); ++ case ISD::JumpTable: ++ return lowerJumpTable(Op, DAG); ++ case ISD::SELECT: ++ return lowerSELECT(Op, DAG); ++ case ISD::SETCC: ++ return lowerSETCC(Op, DAG); ++ case ISD::VASTART: ++ return lowerVASTART(Op, DAG); ++ case ISD::VAARG: ++ return lowerVAARG(Op, DAG); ++ case ISD::FRAMEADDR: ++ return lowerFRAMEADDR(Op, DAG); ++ case ISD::RETURNADDR: ++ return lowerRETURNADDR(Op, DAG); ++ case ISD::EH_RETURN: ++ return lowerEH_RETURN(Op, DAG); ++ case ISD::ATOMIC_FENCE: ++ return lowerATOMIC_FENCE(Op, DAG); ++ case ISD::SHL_PARTS: ++ return lowerShiftLeftParts(Op, DAG); ++ case ISD::SRA_PARTS: ++ return lowerShiftRightParts(Op, DAG, true); ++ case ISD::SRL_PARTS: ++ return lowerShiftRightParts(Op, DAG, false); ++ case ISD::EH_DWARF_CFA: ++ return lowerEH_DWARF_CFA(Op, DAG); ++ } ++ return SDValue(); ++} ++ ++//===----------------------------------------------------------------------===// ++// Lower helper functions ++//===----------------------------------------------------------------------===// ++ ++template ++SDValue LoongArchTargetLowering::getAddr(NodeTy *N, SelectionDAG &DAG, ++ bool IsLocal) const { ++ SDLoc DL(N); ++ EVT Ty = getPointerTy(DAG.getDataLayout()); ++ ++ if (isPositionIndependent()) { ++ SDValue Addr = getTargetNode(N, Ty, DAG, 0U); ++ if (IsLocal) ++ // Use PC-relative addressing to access the symbol. ++ return SDValue(DAG.getMachineNode(LoongArch::LoadAddrLocal, DL, Ty, Addr), ++ 0); ++ ++ // Use PC-relative addressing to access the GOT for this symbol, then load ++ // the address from the GOT. ++ return SDValue(DAG.getMachineNode(LoongArch::LoadAddrGlobal, DL, Ty, Addr), ++ 0); ++ } ++ ++ SDValue Addr = getTargetNode(N, Ty, DAG, 0U); ++ return SDValue(DAG.getMachineNode(LoongArch::LoadAddrLocal, DL, Ty, Addr), 0); ++} ++ ++// addLiveIn - This helper function adds the specified physical register to the ++// MachineFunction as a live in value. It also creates a corresponding ++// virtual register for it. ++static unsigned addLiveIn(MachineFunction &MF, unsigned PReg, ++ const TargetRegisterClass *RC) { ++ unsigned VReg = MF.getRegInfo().createVirtualRegister(RC); ++ MF.getRegInfo().addLiveIn(PReg, VReg); ++ return VReg; ++} ++ ++static MachineBasicBlock *insertDivByZeroTrap(MachineInstr &MI, ++ MachineBasicBlock &MBB, ++ const TargetInstrInfo &TII, ++ bool Is64Bit) { ++ if (NoZeroDivCheck) ++ return &MBB; ++ ++ // Insert pseudo instruction(PseudoTEQ), will expand: ++ // beq $divisor_reg, $zero, 8 ++ // break 7 ++ MachineBasicBlock::iterator I(MI); ++ MachineInstrBuilder MIB; ++ MachineOperand &Divisor = MI.getOperand(2); ++ unsigned TeqOp = LoongArch::PseudoTEQ; ++ ++ MIB = BuildMI(MBB, std::next(I), MI.getDebugLoc(), TII.get(TeqOp)) ++ .addReg(Divisor.getReg(), getKillRegState(Divisor.isKill())); ++ ++ // Use the 32-bit sub-register if this is a 64-bit division. ++ //if (Is64Bit) ++ // MIB->getOperand(0).setSubReg(LoongArch::sub_32); ++ ++ // Clear Divisor's kill flag. ++ Divisor.setIsKill(false); ++ ++ // We would normally delete the original instruction here but in this case ++ // we only needed to inject an additional instruction rather than replace it. ++ ++ return &MBB; ++} ++ ++MachineBasicBlock * ++LoongArchTargetLowering::EmitInstrWithCustomInserter(MachineInstr &MI, ++ MachineBasicBlock *BB) const { ++ switch (MI.getOpcode()) { ++ default: ++ llvm_unreachable("Unexpected instr type to insert"); ++ case LoongArch::FILL_FW_PSEUDO: ++ return emitFILL_FW(MI, BB); ++ case LoongArch::FILL_FD_PSEUDO: ++ return emitFILL_FD(MI, BB); ++ case LoongArch::SNZ_B_PSEUDO: ++ return emitLSXCBranchPseudo(MI, BB, LoongArch::VSETALLNEZ_B); ++ case LoongArch::SNZ_H_PSEUDO: ++ return emitLSXCBranchPseudo(MI, BB, LoongArch::VSETALLNEZ_H); ++ case LoongArch::SNZ_W_PSEUDO: ++ return emitLSXCBranchPseudo(MI, BB, LoongArch::VSETALLNEZ_W); ++ case LoongArch::SNZ_D_PSEUDO: ++ return emitLSXCBranchPseudo(MI, BB, LoongArch::VSETALLNEZ_D); ++ case LoongArch::SNZ_V_PSEUDO: ++ return emitLSXCBranchPseudo(MI, BB, LoongArch::VSETNEZ_V); ++ case LoongArch::SZ_B_PSEUDO: ++ return emitLSXCBranchPseudo(MI, BB, LoongArch::VSETANYEQZ_B); ++ case LoongArch::SZ_H_PSEUDO: ++ return emitLSXCBranchPseudo(MI, BB, LoongArch::VSETANYEQZ_H); ++ case LoongArch::SZ_W_PSEUDO: ++ return emitLSXCBranchPseudo(MI, BB, LoongArch::VSETANYEQZ_W); ++ case LoongArch::SZ_D_PSEUDO: ++ return emitLSXCBranchPseudo(MI, BB, LoongArch::VSETANYEQZ_D); ++ case LoongArch::SZ_V_PSEUDO: ++ return emitLSXCBranchPseudo(MI, BB, LoongArch::VSETEQZ_V); ++ case LoongArch::XSNZ_B_PSEUDO: ++ return emitLSXCBranchPseudo(MI, BB, LoongArch::XVSETALLNEZ_B); ++ case LoongArch::XSNZ_H_PSEUDO: ++ return emitLSXCBranchPseudo(MI, BB, LoongArch::XVSETALLNEZ_H); ++ case LoongArch::XSNZ_W_PSEUDO: ++ return emitLSXCBranchPseudo(MI, BB, LoongArch::XVSETALLNEZ_W); ++ case LoongArch::XSNZ_D_PSEUDO: ++ return emitLSXCBranchPseudo(MI, BB, LoongArch::XVSETALLNEZ_D); ++ case LoongArch::XSNZ_V_PSEUDO: ++ return emitLSXCBranchPseudo(MI, BB, LoongArch::XVSETNEZ_V); ++ case LoongArch::XSZ_B_PSEUDO: ++ return emitLSXCBranchPseudo(MI, BB, LoongArch::XVSETANYEQZ_B); ++ case LoongArch::XSZ_H_PSEUDO: ++ return emitLSXCBranchPseudo(MI, BB, LoongArch::XVSETANYEQZ_H); ++ case LoongArch::XSZ_W_PSEUDO: ++ return emitLSXCBranchPseudo(MI, BB, LoongArch::XVSETANYEQZ_W); ++ case LoongArch::XSZ_D_PSEUDO: ++ return emitLSXCBranchPseudo(MI, BB, LoongArch::XVSETANYEQZ_D); ++ case LoongArch::XSZ_V_PSEUDO: ++ return emitLSXCBranchPseudo(MI, BB, LoongArch::XVSETEQZ_V); ++ case LoongArch::INSERT_FW_PSEUDO: ++ return emitINSERT_FW(MI, BB); ++ case LoongArch::INSERT_FD_PSEUDO: ++ return emitINSERT_FD(MI, BB); ++ case LoongArch::XINSERT_H_PSEUDO: ++ return emitXINSERT_BH(MI, BB, 2); ++ case LoongArch::XCOPY_FW_PSEUDO: ++ return emitXCOPY_FW(MI, BB); ++ case LoongArch::XCOPY_FD_PSEUDO: ++ return emitXCOPY_FD(MI, BB); ++ case LoongArch::XINSERT_FW_PSEUDO: ++ return emitXINSERT_FW(MI, BB); ++ case LoongArch::COPY_FW_PSEUDO: ++ return emitCOPY_FW(MI, BB); ++ case LoongArch::XFILL_FW_PSEUDO: ++ return emitXFILL_FW(MI, BB); ++ case LoongArch::XFILL_FD_PSEUDO: ++ return emitXFILL_FD(MI, BB); ++ case LoongArch::COPY_FD_PSEUDO: ++ return emitCOPY_FD(MI, BB); ++ case LoongArch::XINSERT_FD_PSEUDO: ++ return emitXINSERT_FD(MI, BB); ++ case LoongArch::XINSERT_B_PSEUDO: ++ return emitXINSERT_BH(MI, BB, 1); ++ case LoongArch::CONCAT_VECTORS_B_PSEUDO: ++ return emitCONCAT_VECTORS(MI, BB, 1); ++ case LoongArch::CONCAT_VECTORS_H_PSEUDO: ++ return emitCONCAT_VECTORS(MI, BB, 2); ++ case LoongArch::CONCAT_VECTORS_W_PSEUDO: ++ case LoongArch::CONCAT_VECTORS_FW_PSEUDO: ++ return emitCONCAT_VECTORS(MI, BB, 4); ++ case LoongArch::CONCAT_VECTORS_D_PSEUDO: ++ case LoongArch::CONCAT_VECTORS_FD_PSEUDO: ++ return emitCONCAT_VECTORS(MI, BB, 8); ++ case LoongArch::XCOPY_FW_GPR_PSEUDO: ++ return emitXCOPY_FW_GPR(MI, BB); ++ ++ case LoongArch::ATOMIC_LOAD_ADD_I8: ++ return emitAtomicBinaryPartword(MI, BB, 1); ++ case LoongArch::ATOMIC_LOAD_ADD_I16: ++ return emitAtomicBinaryPartword(MI, BB, 2); ++ case LoongArch::ATOMIC_LOAD_ADD_I32: ++ return emitAtomicBinary(MI, BB); ++ case LoongArch::ATOMIC_LOAD_ADD_I64: ++ return emitAtomicBinary(MI, BB); ++ ++ case LoongArch::ATOMIC_LOAD_AND_I8: ++ return emitAtomicBinaryPartword(MI, BB, 1); ++ case LoongArch::ATOMIC_LOAD_AND_I16: ++ return emitAtomicBinaryPartword(MI, BB, 2); ++ case LoongArch::ATOMIC_LOAD_AND_I32: ++ return emitAtomicBinary(MI, BB); ++ case LoongArch::ATOMIC_LOAD_AND_I64: ++ return emitAtomicBinary(MI, BB); ++ ++ case LoongArch::ATOMIC_LOAD_OR_I8: ++ return emitAtomicBinaryPartword(MI, BB, 1); ++ case LoongArch::ATOMIC_LOAD_OR_I16: ++ return emitAtomicBinaryPartword(MI, BB, 2); ++ case LoongArch::ATOMIC_LOAD_OR_I32: ++ return emitAtomicBinary(MI, BB); ++ case LoongArch::ATOMIC_LOAD_OR_I64: ++ return emitAtomicBinary(MI, BB); ++ ++ case LoongArch::ATOMIC_LOAD_XOR_I8: ++ return emitAtomicBinaryPartword(MI, BB, 1); ++ case LoongArch::ATOMIC_LOAD_XOR_I16: ++ return emitAtomicBinaryPartword(MI, BB, 2); ++ case LoongArch::ATOMIC_LOAD_XOR_I32: ++ return emitAtomicBinary(MI, BB); ++ case LoongArch::ATOMIC_LOAD_XOR_I64: ++ return emitAtomicBinary(MI, BB); ++ ++ case LoongArch::ATOMIC_LOAD_NAND_I8: ++ return emitAtomicBinaryPartword(MI, BB, 1); ++ case LoongArch::ATOMIC_LOAD_NAND_I16: ++ return emitAtomicBinaryPartword(MI, BB, 2); ++ case LoongArch::ATOMIC_LOAD_NAND_I32: ++ return emitAtomicBinary(MI, BB); ++ case LoongArch::ATOMIC_LOAD_NAND_I64: ++ return emitAtomicBinary(MI, BB); ++ ++ case LoongArch::ATOMIC_LOAD_SUB_I8: ++ return emitAtomicBinaryPartword(MI, BB, 1); ++ case LoongArch::ATOMIC_LOAD_SUB_I16: ++ return emitAtomicBinaryPartword(MI, BB, 2); ++ case LoongArch::ATOMIC_LOAD_SUB_I32: ++ return emitAtomicBinary(MI, BB); ++ case LoongArch::ATOMIC_LOAD_SUB_I64: ++ return emitAtomicBinary(MI, BB); ++ ++ case LoongArch::ATOMIC_SWAP_I8: ++ return emitAtomicBinaryPartword(MI, BB, 1); ++ case LoongArch::ATOMIC_SWAP_I16: ++ return emitAtomicBinaryPartword(MI, BB, 2); ++ case LoongArch::ATOMIC_SWAP_I32: ++ return emitAtomicBinary(MI, BB); ++ case LoongArch::ATOMIC_SWAP_I64: ++ return emitAtomicBinary(MI, BB); ++ ++ case LoongArch::XINSERT_B_VIDX_PSEUDO: ++ case LoongArch::XINSERT_B_VIDX64_PSEUDO: ++ return emitXINSERT_B(MI, BB); ++ case LoongArch::INSERT_H_VIDX64_PSEUDO: ++ return emitINSERT_H_VIDX(MI, BB); ++ case LoongArch::XINSERT_FW_VIDX_PSEUDO: ++ return emitXINSERT_DF_VIDX(MI, BB, false); ++ case LoongArch::XINSERT_FW_VIDX64_PSEUDO: ++ return emitXINSERT_DF_VIDX(MI, BB, true); ++ ++ case LoongArch::ATOMIC_LOAD_MAX_I8: ++ return emitAtomicBinaryPartword(MI, BB, 1); ++ case LoongArch::ATOMIC_LOAD_MAX_I16: ++ return emitAtomicBinaryPartword(MI, BB, 2); ++ case LoongArch::ATOMIC_LOAD_MAX_I32: ++ return emitAtomicBinary(MI, BB); ++ case LoongArch::ATOMIC_LOAD_MAX_I64: ++ return emitAtomicBinary(MI, BB); ++ ++ case LoongArch::ATOMIC_LOAD_MIN_I8: ++ return emitAtomicBinaryPartword(MI, BB, 1); ++ case LoongArch::ATOMIC_LOAD_MIN_I16: ++ return emitAtomicBinaryPartword(MI, BB, 2); ++ case LoongArch::ATOMIC_LOAD_MIN_I32: ++ return emitAtomicBinary(MI, BB); ++ case LoongArch::ATOMIC_LOAD_MIN_I64: ++ return emitAtomicBinary(MI, BB); ++ ++ case LoongArch::ATOMIC_LOAD_UMAX_I8: ++ return emitAtomicBinaryPartword(MI, BB, 1); ++ case LoongArch::ATOMIC_LOAD_UMAX_I16: ++ return emitAtomicBinaryPartword(MI, BB, 2); ++ case LoongArch::ATOMIC_LOAD_UMAX_I32: ++ return emitAtomicBinary(MI, BB); ++ case LoongArch::ATOMIC_LOAD_UMAX_I64: ++ return emitAtomicBinary(MI, BB); ++ ++ case LoongArch::ATOMIC_LOAD_UMIN_I8: ++ return emitAtomicBinaryPartword(MI, BB, 1); ++ case LoongArch::ATOMIC_LOAD_UMIN_I16: ++ return emitAtomicBinaryPartword(MI, BB, 2); ++ case LoongArch::ATOMIC_LOAD_UMIN_I32: ++ return emitAtomicBinary(MI, BB); ++ case LoongArch::ATOMIC_LOAD_UMIN_I64: ++ return emitAtomicBinary(MI, BB); ++ ++ case LoongArch::ATOMIC_CMP_SWAP_I8: ++ return emitAtomicCmpSwapPartword(MI, BB, 1); ++ case LoongArch::ATOMIC_CMP_SWAP_I16: ++ return emitAtomicCmpSwapPartword(MI, BB, 2); ++ case LoongArch::ATOMIC_CMP_SWAP_I32: ++ return emitAtomicCmpSwap(MI, BB); ++ case LoongArch::ATOMIC_CMP_SWAP_I64: ++ return emitAtomicCmpSwap(MI, BB); ++ ++ case LoongArch::PseudoSELECT_I: ++ case LoongArch::PseudoSELECT_I64: ++ case LoongArch::PseudoSELECT_S: ++ case LoongArch::PseudoSELECT_D64: ++ return emitPseudoSELECT(MI, BB, false, LoongArch::BNE32); ++ ++ case LoongArch::PseudoSELECTFP_T_I: ++ case LoongArch::PseudoSELECTFP_T_I64: ++ return emitPseudoSELECT(MI, BB, true, LoongArch::BCNEZ); ++ ++ case LoongArch::PseudoSELECTFP_F_I: ++ case LoongArch::PseudoSELECTFP_F_I64: ++ return emitPseudoSELECT(MI, BB, true, LoongArch::BCEQZ); ++ case LoongArch::DIV_W: ++ case LoongArch::DIV_WU: ++ case LoongArch::MOD_W: ++ case LoongArch::MOD_WU: ++ return insertDivByZeroTrap(MI, *BB, *Subtarget.getInstrInfo(), false); ++ case LoongArch::DIV_D: ++ case LoongArch::DIV_DU: ++ case LoongArch::MOD_D: ++ case LoongArch::MOD_DU: ++ return insertDivByZeroTrap(MI, *BB, *Subtarget.getInstrInfo(), true); ++ } ++} ++ ++MachineBasicBlock *LoongArchTargetLowering::emitXINSERT_DF_VIDX( ++ MachineInstr &MI, MachineBasicBlock *BB, bool IsGPR64) const { ++ ++ MachineFunction *MF = BB->getParent(); ++ MachineRegisterInfo &RegInfo = MF->getRegInfo(); ++ const TargetInstrInfo *TII = Subtarget.getInstrInfo(); ++ DebugLoc DL = MI.getDebugLoc(); ++ ++ unsigned insertOp; ++ insertOp = IsGPR64 ? LoongArch::XINSERT_FW_VIDX64_PSEUDO_POSTRA ++ : LoongArch::XINSERT_FW_VIDX_PSEUDO_POSTRA; ++ ++ unsigned DstReg = MI.getOperand(0).getReg(); ++ unsigned SrcVecReg = MI.getOperand(1).getReg(); ++ unsigned LaneReg = MI.getOperand(2).getReg(); ++ unsigned SrcValReg = MI.getOperand(3).getReg(); ++ unsigned Dest = RegInfo.createVirtualRegister(RegInfo.getRegClass(DstReg)); ++ ++ MachineBasicBlock::iterator II(MI); ++ ++ unsigned VecCopy = ++ RegInfo.createVirtualRegister(RegInfo.getRegClass(SrcVecReg)); ++ unsigned LaneCopy = ++ RegInfo.createVirtualRegister(RegInfo.getRegClass(LaneReg)); ++ unsigned ValCopy = ++ RegInfo.createVirtualRegister(RegInfo.getRegClass(SrcValReg)); ++ ++ const TargetRegisterClass *RC = ++ IsGPR64 ? &LoongArch::GPR64RegClass : &LoongArch::GPR32RegClass; ++ unsigned RI = RegInfo.createVirtualRegister(RC); ++ ++ unsigned Rj = RegInfo.createVirtualRegister(&LoongArch::GPR32RegClass); ++ unsigned Xj = RegInfo.createVirtualRegister(&LoongArch::LASX256WRegClass); ++ BuildMI(*BB, II, DL, TII->get(LoongArch::SUBREG_TO_REG), Xj) ++ .addImm(0) ++ .addReg(SrcValReg) ++ .addImm(LoongArch::sub_lo); ++ BuildMI(*BB, II, DL, TII->get(LoongArch::XVPICKVE2GR_W), Rj) ++ .addReg(Xj) ++ .addImm(0); ++ ++ BuildMI(*BB, II, DL, TII->get(LoongArch::COPY), VecCopy).addReg(SrcVecReg); ++ BuildMI(*BB, II, DL, TII->get(LoongArch::COPY), LaneCopy).addReg(LaneReg); ++ BuildMI(*BB, II, DL, TII->get(LoongArch::COPY), ValCopy).addReg(SrcValReg); ++ ++ BuildMI(*BB, II, DL, TII->get(insertOp)) ++ .addReg(DstReg, RegState::Define | RegState::EarlyClobber) ++ .addReg(VecCopy) ++ .addReg(LaneCopy) ++ .addReg(ValCopy) ++ .addReg(Dest, RegState::Define | RegState::EarlyClobber | ++ RegState::Implicit | RegState::Dead) ++ .addReg(RI, RegState::Define | RegState::EarlyClobber | ++ RegState::Implicit | RegState::Dead) ++ .addReg(Rj, RegState::Define | RegState::EarlyClobber | ++ RegState::Implicit | RegState::Dead); ++ ++ MI.eraseFromParent(); ++ ++ return BB; ++} ++ ++MachineBasicBlock * ++LoongArchTargetLowering::emitINSERT_H_VIDX(MachineInstr &MI, ++ MachineBasicBlock *BB) const { ++ ++ MachineFunction *MF = BB->getParent(); ++ MachineRegisterInfo &RegInfo = MF->getRegInfo(); ++ const TargetInstrInfo *TII = Subtarget.getInstrInfo(); ++ DebugLoc DL = MI.getDebugLoc(); ++ ++ unsigned insertOp; ++ unsigned isGP64 = 0; ++ switch (MI.getOpcode()) { ++ case LoongArch::INSERT_H_VIDX64_PSEUDO: ++ isGP64 = 1; ++ insertOp = LoongArch::INSERT_H_VIDX64_PSEUDO_POSTRA; ++ break; ++ default: ++ llvm_unreachable("Unknown pseudo vector for replacement!"); ++ } ++ ++ unsigned DstReg = MI.getOperand(0).getReg(); ++ unsigned SrcVecReg = MI.getOperand(1).getReg(); ++ unsigned LaneReg = MI.getOperand(2).getReg(); ++ unsigned SrcValReg = MI.getOperand(3).getReg(); ++ unsigned Dest = RegInfo.createVirtualRegister(RegInfo.getRegClass(DstReg)); ++ ++ MachineBasicBlock::iterator II(MI); ++ ++ unsigned VecCopy = ++ RegInfo.createVirtualRegister(RegInfo.getRegClass(SrcVecReg)); ++ unsigned LaneCopy = ++ RegInfo.createVirtualRegister(RegInfo.getRegClass(LaneReg)); ++ unsigned ValCopy = ++ RegInfo.createVirtualRegister(RegInfo.getRegClass(SrcValReg)); ++ ++ const TargetRegisterClass *RC = ++ isGP64 ? &LoongArch::GPR64RegClass : &LoongArch::GPR32RegClass; ++ unsigned RI = RegInfo.createVirtualRegister(RC); ++ ++ BuildMI(*BB, II, DL, TII->get(LoongArch::COPY), VecCopy).addReg(SrcVecReg); ++ BuildMI(*BB, II, DL, TII->get(LoongArch::COPY), LaneCopy).addReg(LaneReg); ++ BuildMI(*BB, II, DL, TII->get(LoongArch::COPY), ValCopy).addReg(SrcValReg); ++ ++ BuildMI(*BB, II, DL, TII->get(insertOp)) ++ .addReg(DstReg, RegState::Define | RegState::EarlyClobber) ++ .addReg(VecCopy) ++ .addReg(LaneCopy) ++ .addReg(ValCopy) ++ .addReg(Dest, RegState::Define | RegState::EarlyClobber | ++ RegState::Implicit | RegState::Dead) ++ .addReg(RI, RegState::Define | RegState::EarlyClobber | ++ RegState::Implicit | RegState::Dead); ++ ++ MI.eraseFromParent(); ++ ++ return BB; ++} ++ ++MachineBasicBlock * ++LoongArchTargetLowering::emitXINSERT_B(MachineInstr &MI, ++ MachineBasicBlock *BB) const { ++ ++ MachineFunction *MF = BB->getParent(); ++ MachineRegisterInfo &RegInfo = MF->getRegInfo(); ++ const TargetInstrInfo *TII = Subtarget.getInstrInfo(); ++ DebugLoc DL = MI.getDebugLoc(); ++ ++ unsigned insertOp; ++ unsigned isGP64 = 0; ++ switch (MI.getOpcode()) { ++ case LoongArch::XINSERT_B_VIDX64_PSEUDO: ++ isGP64 = 1; ++ insertOp = LoongArch::XINSERT_B_VIDX64_PSEUDO_POSTRA; ++ break; ++ case LoongArch::XINSERT_B_VIDX_PSEUDO: ++ insertOp = LoongArch::XINSERT_B_VIDX_PSEUDO_POSTRA; ++ break; ++ default: ++ llvm_unreachable("Unknown pseudo vector for replacement!"); ++ } ++ ++ unsigned DstReg = MI.getOperand(0).getReg(); ++ unsigned SrcVecReg = MI.getOperand(1).getReg(); ++ unsigned LaneReg = MI.getOperand(2).getReg(); ++ unsigned SrcValReg = MI.getOperand(3).getReg(); ++ unsigned Dest = RegInfo.createVirtualRegister(RegInfo.getRegClass(DstReg)); ++ ++ MachineBasicBlock::iterator II(MI); ++ ++ unsigned VecCopy = ++ RegInfo.createVirtualRegister(RegInfo.getRegClass(SrcVecReg)); ++ unsigned LaneCopy = ++ RegInfo.createVirtualRegister(RegInfo.getRegClass(LaneReg)); ++ unsigned ValCopy = ++ RegInfo.createVirtualRegister(RegInfo.getRegClass(SrcValReg)); ++ const TargetRegisterClass *RC = ++ isGP64 ? &LoongArch::GPR64RegClass : &LoongArch::GPR32RegClass; ++ unsigned Rimm = RegInfo.createVirtualRegister(RC); ++ unsigned R4r = RegInfo.createVirtualRegister(RC); ++ unsigned Rib = RegInfo.createVirtualRegister(RC); ++ unsigned Ris = RegInfo.createVirtualRegister(RC); ++ unsigned R7b1 = RegInfo.createVirtualRegister(RC); ++ unsigned R7b2 = RegInfo.createVirtualRegister(RC); ++ unsigned R7b3 = RegInfo.createVirtualRegister(RC); ++ unsigned RI = RegInfo.createVirtualRegister(RC); ++ ++ unsigned R7r80_3 = RegInfo.createVirtualRegister(&LoongArch::GPR32RegClass); ++ unsigned R7r80l_3 = RegInfo.createVirtualRegister(&LoongArch::GPR32RegClass); ++ unsigned R7r81_3 = RegInfo.createVirtualRegister(&LoongArch::GPR32RegClass); ++ unsigned R7r81l_3 = RegInfo.createVirtualRegister(&LoongArch::GPR32RegClass); ++ unsigned R7r82_3 = RegInfo.createVirtualRegister(&LoongArch::GPR32RegClass); ++ unsigned R7r82l_3 = RegInfo.createVirtualRegister(&LoongArch::GPR32RegClass); ++ unsigned R70 = RegInfo.createVirtualRegister(&LoongArch::GPR32RegClass); ++ unsigned tmp_Dst73 = ++ RegInfo.createVirtualRegister(&LoongArch::LASX256BRegClass); ++ ++ BuildMI(*BB, II, DL, TII->get(LoongArch::COPY), VecCopy).addReg(SrcVecReg); ++ BuildMI(*BB, II, DL, TII->get(LoongArch::COPY), LaneCopy).addReg(LaneReg); ++ BuildMI(*BB, II, DL, TII->get(LoongArch::COPY), ValCopy).addReg(SrcValReg); ++ ++ BuildMI(*BB, II, DL, TII->get(insertOp)) ++ .addReg(DstReg, RegState::Define | RegState::EarlyClobber) ++ .addReg(VecCopy) ++ .addReg(LaneCopy) ++ .addReg(ValCopy) ++ .addReg(Dest, RegState::Define | RegState::EarlyClobber | ++ RegState::Implicit | RegState::Dead) ++ .addReg(R4r, RegState::Define | RegState::EarlyClobber | ++ RegState::Implicit | RegState::Dead) ++ .addReg(Rib, RegState::Define | RegState::EarlyClobber | ++ RegState::Implicit | RegState::Dead) ++ .addReg(Ris, RegState::Define | RegState::EarlyClobber | ++ RegState::Implicit | RegState::Dead) ++ .addReg(R7b1, RegState::Define | RegState::EarlyClobber | ++ RegState::Implicit | RegState::Dead) ++ .addReg(R7b2, RegState::Define | RegState::EarlyClobber | ++ RegState::Implicit | RegState::Dead) ++ .addReg(R7b3, RegState::Define | RegState::EarlyClobber | ++ RegState::Implicit | RegState::Dead) ++ .addReg(R7r80_3, RegState::Define | RegState::EarlyClobber | ++ RegState::Implicit | RegState::Dead) ++ .addReg(R7r80l_3, RegState::Define | RegState::EarlyClobber | ++ RegState::Implicit | RegState::Dead) ++ .addReg(R7r81_3, RegState::Define | RegState::EarlyClobber | ++ RegState::Implicit | RegState::Dead) ++ .addReg(R7r81l_3, RegState::Define | RegState::EarlyClobber | ++ RegState::Implicit | RegState::Dead) ++ .addReg(R7r82_3, RegState::Define | RegState::EarlyClobber | ++ RegState::Implicit | RegState::Dead) ++ .addReg(R7r82l_3, RegState::Define | RegState::EarlyClobber | ++ RegState::Implicit | RegState::Dead) ++ .addReg(RI, RegState::Define | RegState::EarlyClobber | ++ RegState::Implicit | RegState::Dead) ++ .addReg(tmp_Dst73, RegState::Define | RegState::EarlyClobber | ++ RegState::Implicit | RegState::Dead) ++ .addReg(Rimm, RegState::Define | RegState::EarlyClobber | ++ RegState::Implicit | RegState::Dead) ++ .addReg(R70, RegState::Define | RegState::EarlyClobber | ++ RegState::Implicit | RegState::Dead); ++ ++ MI.eraseFromParent(); ++ ++ return BB; ++} ++ ++const TargetRegisterClass * ++LoongArchTargetLowering::getRepRegClassFor(MVT VT) const { ++ return TargetLowering::getRepRegClassFor(VT); ++} ++ ++// This function also handles LoongArch::ATOMIC_SWAP_I32 (when BinOpcode == 0), and ++// LoongArch::ATOMIC_LOAD_NAND_I32 (when Nand == true) ++MachineBasicBlock * ++LoongArchTargetLowering::emitAtomicBinary(MachineInstr &MI, ++ MachineBasicBlock *BB) const { ++ ++ MachineFunction *MF = BB->getParent(); ++ MachineRegisterInfo &RegInfo = MF->getRegInfo(); ++ const TargetInstrInfo *TII = Subtarget.getInstrInfo(); ++ DebugLoc DL = MI.getDebugLoc(); ++ ++ unsigned AtomicOp; ++ switch (MI.getOpcode()) { ++ case LoongArch::ATOMIC_LOAD_ADD_I32: ++ AtomicOp = LoongArch::ATOMIC_LOAD_ADD_I32_POSTRA; ++ break; ++ case LoongArch::ATOMIC_LOAD_SUB_I32: ++ AtomicOp = LoongArch::ATOMIC_LOAD_SUB_I32_POSTRA; ++ break; ++ case LoongArch::ATOMIC_LOAD_AND_I32: ++ AtomicOp = LoongArch::ATOMIC_LOAD_AND_I32_POSTRA; ++ break; ++ case LoongArch::ATOMIC_LOAD_OR_I32: ++ AtomicOp = LoongArch::ATOMIC_LOAD_OR_I32_POSTRA; ++ break; ++ case LoongArch::ATOMIC_LOAD_XOR_I32: ++ AtomicOp = LoongArch::ATOMIC_LOAD_XOR_I32_POSTRA; ++ break; ++ case LoongArch::ATOMIC_LOAD_NAND_I32: ++ AtomicOp = LoongArch::ATOMIC_LOAD_NAND_I32_POSTRA; ++ break; ++ case LoongArch::ATOMIC_SWAP_I32: ++ AtomicOp = LoongArch::ATOMIC_SWAP_I32_POSTRA; ++ break; ++ case LoongArch::ATOMIC_LOAD_MAX_I32: ++ AtomicOp = LoongArch::ATOMIC_LOAD_MAX_I32_POSTRA; ++ break; ++ case LoongArch::ATOMIC_LOAD_MIN_I32: ++ AtomicOp = LoongArch::ATOMIC_LOAD_MIN_I32_POSTRA; ++ break; ++ case LoongArch::ATOMIC_LOAD_UMAX_I32: ++ AtomicOp = LoongArch::ATOMIC_LOAD_UMAX_I32_POSTRA; ++ break; ++ case LoongArch::ATOMIC_LOAD_UMIN_I32: ++ AtomicOp = LoongArch::ATOMIC_LOAD_UMIN_I32_POSTRA; ++ break; ++ case LoongArch::ATOMIC_LOAD_ADD_I64: ++ AtomicOp = LoongArch::ATOMIC_LOAD_ADD_I64_POSTRA; ++ break; ++ case LoongArch::ATOMIC_LOAD_SUB_I64: ++ AtomicOp = LoongArch::ATOMIC_LOAD_SUB_I64_POSTRA; ++ break; ++ case LoongArch::ATOMIC_LOAD_AND_I64: ++ AtomicOp = LoongArch::ATOMIC_LOAD_AND_I64_POSTRA; ++ break; ++ case LoongArch::ATOMIC_LOAD_OR_I64: ++ AtomicOp = LoongArch::ATOMIC_LOAD_OR_I64_POSTRA; ++ break; ++ case LoongArch::ATOMIC_LOAD_XOR_I64: ++ AtomicOp = LoongArch::ATOMIC_LOAD_XOR_I64_POSTRA; ++ break; ++ case LoongArch::ATOMIC_LOAD_NAND_I64: ++ AtomicOp = LoongArch::ATOMIC_LOAD_NAND_I64_POSTRA; ++ break; ++ case LoongArch::ATOMIC_SWAP_I64: ++ AtomicOp = LoongArch::ATOMIC_SWAP_I64_POSTRA; ++ break; ++ case LoongArch::ATOMIC_LOAD_MAX_I64: ++ AtomicOp = LoongArch::ATOMIC_LOAD_MAX_I64_POSTRA; ++ break; ++ case LoongArch::ATOMIC_LOAD_MIN_I64: ++ AtomicOp = LoongArch::ATOMIC_LOAD_MIN_I64_POSTRA; ++ break; ++ case LoongArch::ATOMIC_LOAD_UMAX_I64: ++ AtomicOp = LoongArch::ATOMIC_LOAD_UMAX_I64_POSTRA; ++ break; ++ case LoongArch::ATOMIC_LOAD_UMIN_I64: ++ AtomicOp = LoongArch::ATOMIC_LOAD_UMIN_I64_POSTRA; ++ break; ++ default: ++ llvm_unreachable("Unknown pseudo atomic for replacement!"); ++ } ++ ++ unsigned OldVal = MI.getOperand(0).getReg(); ++ unsigned Ptr = MI.getOperand(1).getReg(); ++ unsigned Incr = MI.getOperand(2).getReg(); ++ unsigned Scratch = RegInfo.createVirtualRegister(RegInfo.getRegClass(OldVal)); ++ ++ MachineBasicBlock::iterator II(MI); ++ ++ // The scratch registers here with the EarlyClobber | Define | Implicit ++ // flags is used to persuade the register allocator and the machine ++ // verifier to accept the usage of this register. This has to be a real ++ // register which has an UNDEF value but is dead after the instruction which ++ // is unique among the registers chosen for the instruction. ++ ++ // The EarlyClobber flag has the semantic properties that the operand it is ++ // attached to is clobbered before the rest of the inputs are read. Hence it ++ // must be unique among the operands to the instruction. ++ // The Define flag is needed to coerce the machine verifier that an Undef ++ // value isn't a problem. ++ // The Dead flag is needed as the value in scratch isn't used by any other ++ // instruction. Kill isn't used as Dead is more precise. ++ // The implicit flag is here due to the interaction between the other flags ++ // and the machine verifier. ++ ++ // For correctness purpose, a new pseudo is introduced here. We need this ++ // new pseudo, so that FastRegisterAllocator does not see an ll/sc sequence ++ // that is spread over >1 basic blocks. A register allocator which ++ // introduces (or any codegen infact) a store, can violate the expectations ++ // of the hardware. ++ // ++ // An atomic read-modify-write sequence starts with a linked load ++ // instruction and ends with a store conditional instruction. The atomic ++ // read-modify-write sequence fails if any of the following conditions ++ // occur between the execution of ll and sc: ++ // * A coherent store is completed by another process or coherent I/O ++ // module into the block of synchronizable physical memory containing ++ // the word. The size and alignment of the block is ++ // implementation-dependent. ++ // * A coherent store is executed between an LL and SC sequence on the ++ // same processor to the block of synchornizable physical memory ++ // containing the word. ++ // ++ ++ unsigned PtrCopy = RegInfo.createVirtualRegister(RegInfo.getRegClass(Ptr)); ++ unsigned IncrCopy = RegInfo.createVirtualRegister(RegInfo.getRegClass(Incr)); ++ ++ BuildMI(*BB, II, DL, TII->get(LoongArch::COPY), IncrCopy).addReg(Incr); ++ BuildMI(*BB, II, DL, TII->get(LoongArch::COPY), PtrCopy).addReg(Ptr); ++ ++ BuildMI(*BB, II, DL, TII->get(AtomicOp)) ++ .addReg(OldVal, RegState::Define | RegState::EarlyClobber) ++ .addReg(PtrCopy) ++ .addReg(IncrCopy) ++ .addReg(Scratch, RegState::Define | RegState::EarlyClobber | ++ RegState::Implicit | RegState::Dead); ++ ++ if(MI.getOpcode() == LoongArch::ATOMIC_LOAD_NAND_I32 ++ || MI.getOpcode() == LoongArch::ATOMIC_LOAD_NAND_I64){ ++ BuildMI(*BB, II, DL, TII->get(LoongArch::DBAR)).addImm(DBAR_HINT); ++ } ++ ++ MI.eraseFromParent(); ++ ++ return BB; ++} ++ ++MachineBasicBlock *LoongArchTargetLowering::emitSignExtendToI32InReg( ++ MachineInstr &MI, MachineBasicBlock *BB, unsigned Size, unsigned DstReg, ++ unsigned SrcReg) const { ++ const TargetInstrInfo *TII = Subtarget.getInstrInfo(); ++ const DebugLoc &DL = MI.getDebugLoc(); ++ if (Size == 1) { ++ BuildMI(BB, DL, TII->get(LoongArch::EXT_W_B32), DstReg).addReg(SrcReg); ++ return BB; ++ } ++ ++ if (Size == 2) { ++ BuildMI(BB, DL, TII->get(LoongArch::EXT_W_H32), DstReg).addReg(SrcReg); ++ return BB; ++ } ++ ++ MachineFunction *MF = BB->getParent(); ++ MachineRegisterInfo &RegInfo = MF->getRegInfo(); ++ const TargetRegisterClass *RC = getRegClassFor(MVT::i32); ++ unsigned ScrReg = RegInfo.createVirtualRegister(RC); ++ ++ assert(Size < 32); ++ int64_t ShiftImm = 32 - (Size * 8); ++ ++ BuildMI(BB, DL, TII->get(LoongArch::SLLI_W), ScrReg).addReg(SrcReg).addImm(ShiftImm); ++ BuildMI(BB, DL, TII->get(LoongArch::SRAI_W), DstReg).addReg(ScrReg).addImm(ShiftImm); ++ ++ return BB; ++} ++ ++MachineBasicBlock *LoongArchTargetLowering::emitAtomicBinaryPartword( ++ MachineInstr &MI, MachineBasicBlock *BB, unsigned Size) const { ++ assert((Size == 1 || Size == 2) && ++ "Unsupported size for EmitAtomicBinaryPartial."); ++ ++ MachineFunction *MF = BB->getParent(); ++ MachineRegisterInfo &RegInfo = MF->getRegInfo(); ++ const TargetRegisterClass *RC = getRegClassFor(MVT::i32); ++ const bool ArePtrs64bit = ABI.ArePtrs64bit(); ++ const TargetRegisterClass *RCp = ++ getRegClassFor(ArePtrs64bit ? MVT::i64 : MVT::i32); ++ const TargetInstrInfo *TII = Subtarget.getInstrInfo(); ++ DebugLoc DL = MI.getDebugLoc(); ++ ++ unsigned Dest = MI.getOperand(0).getReg(); ++ unsigned Ptr = MI.getOperand(1).getReg(); ++ unsigned Incr = MI.getOperand(2).getReg(); ++ ++ unsigned AlignedAddr = RegInfo.createVirtualRegister(RCp); ++ unsigned ShiftAmt = RegInfo.createVirtualRegister(RC); ++ unsigned Mask = RegInfo.createVirtualRegister(RC); ++ unsigned Mask2 = RegInfo.createVirtualRegister(RC); ++ unsigned Incr2 = RegInfo.createVirtualRegister(RC); ++ unsigned MaskLSB2 = RegInfo.createVirtualRegister(RCp); ++ unsigned PtrLSB2 = RegInfo.createVirtualRegister(RC); ++ unsigned MaskUpper = RegInfo.createVirtualRegister(RC); ++ unsigned MaskUppest = RegInfo.createVirtualRegister(RC); ++ unsigned Scratch = RegInfo.createVirtualRegister(RC); ++ unsigned Scratch2 = RegInfo.createVirtualRegister(RC); ++ unsigned Scratch3 = RegInfo.createVirtualRegister(RC); ++ unsigned Scratch4 = RegInfo.createVirtualRegister(RC); ++ unsigned Scratch5 = RegInfo.createVirtualRegister(RC); ++ ++ unsigned AtomicOp = 0; ++ switch (MI.getOpcode()) { ++ case LoongArch::ATOMIC_LOAD_NAND_I8: ++ AtomicOp = LoongArch::ATOMIC_LOAD_NAND_I8_POSTRA; ++ break; ++ case LoongArch::ATOMIC_LOAD_NAND_I16: ++ AtomicOp = LoongArch::ATOMIC_LOAD_NAND_I16_POSTRA; ++ break; ++ case LoongArch::ATOMIC_SWAP_I8: ++ AtomicOp = LoongArch::ATOMIC_SWAP_I8_POSTRA; ++ break; ++ case LoongArch::ATOMIC_SWAP_I16: ++ AtomicOp = LoongArch::ATOMIC_SWAP_I16_POSTRA; ++ break; ++ case LoongArch::ATOMIC_LOAD_MAX_I8: ++ AtomicOp = LoongArch::ATOMIC_LOAD_MAX_I8_POSTRA; ++ break; ++ case LoongArch::ATOMIC_LOAD_MAX_I16: ++ AtomicOp = LoongArch::ATOMIC_LOAD_MAX_I16_POSTRA; ++ break; ++ case LoongArch::ATOMIC_LOAD_MIN_I8: ++ AtomicOp = LoongArch::ATOMIC_LOAD_MIN_I8_POSTRA; ++ break; ++ case LoongArch::ATOMIC_LOAD_MIN_I16: ++ AtomicOp = LoongArch::ATOMIC_LOAD_MIN_I16_POSTRA; ++ break; ++ case LoongArch::ATOMIC_LOAD_UMAX_I8: ++ AtomicOp = LoongArch::ATOMIC_LOAD_UMAX_I8_POSTRA; ++ break; ++ case LoongArch::ATOMIC_LOAD_UMAX_I16: ++ AtomicOp = LoongArch::ATOMIC_LOAD_UMAX_I16_POSTRA; ++ break; ++ case LoongArch::ATOMIC_LOAD_UMIN_I8: ++ AtomicOp = LoongArch::ATOMIC_LOAD_UMIN_I8_POSTRA; ++ break; ++ case LoongArch::ATOMIC_LOAD_UMIN_I16: ++ AtomicOp = LoongArch::ATOMIC_LOAD_UMIN_I16_POSTRA; ++ break; ++ case LoongArch::ATOMIC_LOAD_ADD_I8: ++ AtomicOp = LoongArch::ATOMIC_LOAD_ADD_I8_POSTRA; ++ break; ++ case LoongArch::ATOMIC_LOAD_ADD_I16: ++ AtomicOp = LoongArch::ATOMIC_LOAD_ADD_I16_POSTRA; ++ break; ++ case LoongArch::ATOMIC_LOAD_SUB_I8: ++ AtomicOp = LoongArch::ATOMIC_LOAD_SUB_I8_POSTRA; ++ break; ++ case LoongArch::ATOMIC_LOAD_SUB_I16: ++ AtomicOp = LoongArch::ATOMIC_LOAD_SUB_I16_POSTRA; ++ break; ++ case LoongArch::ATOMIC_LOAD_AND_I8: ++ AtomicOp = LoongArch::ATOMIC_LOAD_AND_I8_POSTRA; ++ break; ++ case LoongArch::ATOMIC_LOAD_AND_I16: ++ AtomicOp = LoongArch::ATOMIC_LOAD_AND_I16_POSTRA; ++ break; ++ case LoongArch::ATOMIC_LOAD_OR_I8: ++ AtomicOp = LoongArch::ATOMIC_LOAD_OR_I8_POSTRA; ++ break; ++ case LoongArch::ATOMIC_LOAD_OR_I16: ++ AtomicOp = LoongArch::ATOMIC_LOAD_OR_I16_POSTRA; ++ break; ++ case LoongArch::ATOMIC_LOAD_XOR_I8: ++ AtomicOp = LoongArch::ATOMIC_LOAD_XOR_I8_POSTRA; ++ break; ++ case LoongArch::ATOMIC_LOAD_XOR_I16: ++ AtomicOp = LoongArch::ATOMIC_LOAD_XOR_I16_POSTRA; ++ break; ++ default: ++ llvm_unreachable("Unknown subword atomic pseudo for expansion!"); ++ } ++ ++ // insert new blocks after the current block ++ const BasicBlock *LLVM_BB = BB->getBasicBlock(); ++ MachineBasicBlock *exitMBB = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineFunction::iterator It = ++BB->getIterator(); ++ MF->insert(It, exitMBB); ++ ++ // Transfer the remainder of BB and its successor edges to exitMBB. ++ exitMBB->splice(exitMBB->begin(), BB, ++ std::next(MachineBasicBlock::iterator(MI)), BB->end()); ++ exitMBB->transferSuccessorsAndUpdatePHIs(BB); ++ ++ BB->addSuccessor(exitMBB, BranchProbability::getOne()); ++ ++ // thisMBB: ++ // addiu masklsb2,$0,-4 # 0xfffffffc ++ // and alignedaddr,ptr,masklsb2 ++ // andi ptrlsb2,ptr,3 ++ // sll shiftamt,ptrlsb2,3 ++ // ori maskupper,$0,255 # 0xff ++ // sll mask,maskupper,shiftamt ++ // nor mask2,$0,mask ++ // sll incr2,incr,shiftamt ++ ++ int64_t MaskImm = (Size == 1) ? 255 : 4095; ++ BuildMI(BB, DL, TII->get(ABI.GetPtrAddiOp()), MaskLSB2) ++ .addReg(ABI.GetNullPtr()).addImm(-4); ++ BuildMI(BB, DL, TII->get(ABI.GetPtrAndOp()), AlignedAddr) ++ .addReg(Ptr).addReg(MaskLSB2); ++ BuildMI(BB, DL, TII->get(LoongArch::ANDI32), PtrLSB2) ++ .addReg(Ptr, 0, ArePtrs64bit ? LoongArch::sub_32 : 0).addImm(3); ++ BuildMI(BB, DL, TII->get(LoongArch::SLLI_W), ShiftAmt).addReg(PtrLSB2).addImm(3); ++ ++ if(MaskImm==4095){ ++ BuildMI(BB, DL, TII->get(LoongArch::LU12I_W32), MaskUppest).addImm(0xf); ++ BuildMI(BB, DL, TII->get(LoongArch::ORI32), MaskUpper) ++ .addReg(MaskUppest).addImm(MaskImm); ++ } ++ else{ ++ BuildMI(BB, DL, TII->get(LoongArch::ORI32), MaskUpper) ++ .addReg(LoongArch::ZERO).addImm(MaskImm); ++ } ++ ++ BuildMI(BB, DL, TII->get(LoongArch::SLL_W), Mask) ++ .addReg(MaskUpper).addReg(ShiftAmt); ++ BuildMI(BB, DL, TII->get(LoongArch::NOR32), Mask2).addReg(LoongArch::ZERO).addReg(Mask); ++ BuildMI(BB, DL, TII->get(LoongArch::SLL_W), Incr2).addReg(Incr).addReg(ShiftAmt); ++ ++ ++ // The purposes of the flags on the scratch registers is explained in ++ // emitAtomicBinary. In summary, we need a scratch register which is going to ++ // be undef, that is unique among registers chosen for the instruction. ++ ++ BuildMI(BB, DL, TII->get(LoongArch::DBAR)).addImm(0); ++ BuildMI(BB, DL, TII->get(AtomicOp)) ++ .addReg(Dest, RegState::Define | RegState::EarlyClobber) ++ .addReg(AlignedAddr) ++ .addReg(Incr2) ++ .addReg(Mask) ++ .addReg(Mask2) ++ .addReg(ShiftAmt) ++ .addReg(Scratch, RegState::EarlyClobber | RegState::Define | ++ RegState::Dead | RegState::Implicit) ++ .addReg(Scratch2, RegState::EarlyClobber | RegState::Define | ++ RegState::Dead | RegState::Implicit) ++ .addReg(Scratch3, RegState::EarlyClobber | RegState::Define | ++ RegState::Dead | RegState::Implicit) ++ .addReg(Scratch4, RegState::EarlyClobber | RegState::Define | ++ RegState::Dead | RegState::Implicit) ++ .addReg(Scratch5, RegState::EarlyClobber | RegState::Define | ++ RegState::Dead | RegState::Implicit); ++ ++ ++ MI.eraseFromParent(); // The instruction is gone now. ++ ++ return exitMBB; ++} ++ ++// Lower atomic compare and swap to a pseudo instruction, taking care to ++// define a scratch register for the pseudo instruction's expansion. The ++// instruction is expanded after the register allocator as to prevent ++// the insertion of stores between the linked load and the store conditional. ++ ++MachineBasicBlock * ++LoongArchTargetLowering::emitAtomicCmpSwap(MachineInstr &MI, ++ MachineBasicBlock *BB) const { ++ assert((MI.getOpcode() == LoongArch::ATOMIC_CMP_SWAP_I32 || ++ MI.getOpcode() == LoongArch::ATOMIC_CMP_SWAP_I64) && ++ "Unsupported atomic psseudo for EmitAtomicCmpSwap."); ++ ++ const unsigned Size = MI.getOpcode() == LoongArch::ATOMIC_CMP_SWAP_I32 ? 4 : 8; ++ ++ MachineFunction *MF = BB->getParent(); ++ MachineRegisterInfo &MRI = MF->getRegInfo(); ++ const TargetRegisterClass *RC = getRegClassFor(MVT::getIntegerVT(Size * 8)); ++ const TargetInstrInfo *TII = Subtarget.getInstrInfo(); ++ DebugLoc DL = MI.getDebugLoc(); ++ ++ unsigned AtomicOp = MI.getOpcode() == LoongArch::ATOMIC_CMP_SWAP_I32 ++ ? LoongArch::ATOMIC_CMP_SWAP_I32_POSTRA ++ : LoongArch::ATOMIC_CMP_SWAP_I64_POSTRA; ++ unsigned Dest = MI.getOperand(0).getReg(); ++ unsigned Ptr = MI.getOperand(1).getReg(); ++ unsigned OldVal = MI.getOperand(2).getReg(); ++ unsigned NewVal = MI.getOperand(3).getReg(); ++ ++ unsigned Scratch = MRI.createVirtualRegister(RC); ++ MachineBasicBlock::iterator II(MI); ++ ++ // We need to create copies of the various registers and kill them at the ++ // atomic pseudo. If the copies are not made, when the atomic is expanded ++ // after fast register allocation, the spills will end up outside of the ++ // blocks that their values are defined in, causing livein errors. ++ ++ unsigned PtrCopy = MRI.createVirtualRegister(MRI.getRegClass(Ptr)); ++ unsigned OldValCopy = MRI.createVirtualRegister(MRI.getRegClass(OldVal)); ++ unsigned NewValCopy = MRI.createVirtualRegister(MRI.getRegClass(NewVal)); ++ ++ BuildMI(*BB, II, DL, TII->get(LoongArch::COPY), PtrCopy).addReg(Ptr); ++ BuildMI(*BB, II, DL, TII->get(LoongArch::COPY), OldValCopy).addReg(OldVal); ++ BuildMI(*BB, II, DL, TII->get(LoongArch::COPY), NewValCopy).addReg(NewVal); ++ ++ // The purposes of the flags on the scratch registers is explained in ++ // emitAtomicBinary. In summary, we need a scratch register which is going to ++ // be undef, that is unique among registers chosen for the instruction. ++ ++ BuildMI(*BB, II, DL, TII->get(LoongArch::DBAR)).addImm(0); ++ BuildMI(*BB, II, DL, TII->get(AtomicOp)) ++ .addReg(Dest, RegState::Define | RegState::EarlyClobber) ++ .addReg(PtrCopy, RegState::Kill) ++ .addReg(OldValCopy, RegState::Kill) ++ .addReg(NewValCopy, RegState::Kill) ++ .addReg(Scratch, RegState::EarlyClobber | RegState::Define | ++ RegState::Dead | RegState::Implicit); ++ ++ BuildMI(*BB, II, DL, TII->get(LoongArch::DBAR)).addImm(DBAR_HINT); ++ ++ MI.eraseFromParent(); // The instruction is gone now. ++ ++ return BB; ++} ++ ++MachineBasicBlock *LoongArchTargetLowering::emitAtomicCmpSwapPartword( ++ MachineInstr &MI, MachineBasicBlock *BB, unsigned Size) const { ++ assert((Size == 1 || Size == 2) && ++ "Unsupported size for EmitAtomicCmpSwapPartial."); ++ ++ MachineFunction *MF = BB->getParent(); ++ MachineRegisterInfo &RegInfo = MF->getRegInfo(); ++ const TargetRegisterClass *RC = getRegClassFor(MVT::i32); ++ const bool ArePtrs64bit = ABI.ArePtrs64bit(); ++ const TargetRegisterClass *RCp = ++ getRegClassFor(ArePtrs64bit ? MVT::i64 : MVT::i32); ++ const TargetInstrInfo *TII = Subtarget.getInstrInfo(); ++ DebugLoc DL = MI.getDebugLoc(); ++ ++ unsigned Dest = MI.getOperand(0).getReg(); ++ unsigned Ptr = MI.getOperand(1).getReg(); ++ unsigned CmpVal = MI.getOperand(2).getReg(); ++ unsigned NewVal = MI.getOperand(3).getReg(); ++ ++ unsigned AlignedAddr = RegInfo.createVirtualRegister(RCp); ++ unsigned ShiftAmt = RegInfo.createVirtualRegister(RC); ++ unsigned Mask = RegInfo.createVirtualRegister(RC); ++ unsigned Mask2 = RegInfo.createVirtualRegister(RC); ++ unsigned ShiftedCmpVal = RegInfo.createVirtualRegister(RC); ++ unsigned ShiftedNewVal = RegInfo.createVirtualRegister(RC); ++ unsigned MaskLSB2 = RegInfo.createVirtualRegister(RCp); ++ unsigned PtrLSB2 = RegInfo.createVirtualRegister(RC); ++ unsigned MaskUpper = RegInfo.createVirtualRegister(RC); ++ unsigned MaskUppest = RegInfo.createVirtualRegister(RC); ++ unsigned Mask3 = RegInfo.createVirtualRegister(RC); ++ unsigned MaskedCmpVal = RegInfo.createVirtualRegister(RC); ++ unsigned MaskedNewVal = RegInfo.createVirtualRegister(RC); ++ unsigned AtomicOp = MI.getOpcode() == LoongArch::ATOMIC_CMP_SWAP_I8 ++ ? LoongArch::ATOMIC_CMP_SWAP_I8_POSTRA ++ : LoongArch::ATOMIC_CMP_SWAP_I16_POSTRA; ++ ++ // The scratch registers here with the EarlyClobber | Define | Dead | Implicit ++ // flags are used to coerce the register allocator and the machine verifier to ++ // accept the usage of these registers. ++ // The EarlyClobber flag has the semantic properties that the operand it is ++ // attached to is clobbered before the rest of the inputs are read. Hence it ++ // must be unique among the operands to the instruction. ++ // The Define flag is needed to coerce the machine verifier that an Undef ++ // value isn't a problem. ++ // The Dead flag is needed as the value in scratch isn't used by any other ++ // instruction. Kill isn't used as Dead is more precise. ++ unsigned Scratch = RegInfo.createVirtualRegister(RC); ++ unsigned Scratch2 = RegInfo.createVirtualRegister(RC); ++ ++ // insert new blocks after the current block ++ const BasicBlock *LLVM_BB = BB->getBasicBlock(); ++ MachineBasicBlock *exitMBB = MF->CreateMachineBasicBlock(LLVM_BB); ++ MachineFunction::iterator It = ++BB->getIterator(); ++ MF->insert(It, exitMBB); ++ ++ // Transfer the remainder of BB and its successor edges to exitMBB. ++ exitMBB->splice(exitMBB->begin(), BB, ++ std::next(MachineBasicBlock::iterator(MI)), BB->end()); ++ exitMBB->transferSuccessorsAndUpdatePHIs(BB); ++ ++ BB->addSuccessor(exitMBB, BranchProbability::getOne()); ++ ++ // thisMBB: ++ // addiu masklsb2,$0,-4 # 0xfffffffc ++ // and alignedaddr,ptr,masklsb2 ++ // andi ptrlsb2,ptr,3 ++ // xori ptrlsb2,ptrlsb2,3 # Only for BE ++ // sll shiftamt,ptrlsb2,3 ++ // ori maskupper,$0,255 # 0xff ++ // sll mask,maskupper,shiftamt ++ // nor mask2,$0,mask ++ // andi maskedcmpval,cmpval,255 ++ // sll shiftedcmpval,maskedcmpval,shiftamt ++ // andi maskednewval,newval,255 ++ // sll shiftednewval,maskednewval,shiftamt ++ ++ ++ int64_t MaskImm = (Size == 1) ? 255 : 4095; ++ BuildMI(BB, DL, TII->get(ArePtrs64bit ? LoongArch::ADDI_D : LoongArch::ADDI_W), MaskLSB2) ++ .addReg(ABI.GetNullPtr()).addImm(-4); ++ BuildMI(BB, DL, TII->get(ArePtrs64bit ? LoongArch::AND : LoongArch::AND32), AlignedAddr) ++ .addReg(Ptr).addReg(MaskLSB2); ++ BuildMI(BB, DL, TII->get(LoongArch::ANDI32), PtrLSB2) ++ .addReg(Ptr, 0, ArePtrs64bit ? LoongArch::sub_32 : 0).addImm(3); ++ BuildMI(BB, DL, TII->get(LoongArch::SLLI_W), ShiftAmt).addReg(PtrLSB2).addImm(3); ++ ++ if(MaskImm==4095){ ++ BuildMI(BB, DL, TII->get(LoongArch::LU12I_W32), MaskUppest).addImm(0xf); ++ BuildMI(BB, DL, TII->get(LoongArch::ORI32), MaskUpper) ++ .addReg(MaskUppest).addImm(MaskImm); ++ } ++ else{ ++ BuildMI(BB, DL, TII->get(LoongArch::ORI32), MaskUpper) ++ .addReg(LoongArch::ZERO).addImm(MaskImm); ++ } ++ ++ BuildMI(BB, DL, TII->get(LoongArch::SLL_W), Mask) ++ .addReg(MaskUpper).addReg(ShiftAmt); ++ BuildMI(BB, DL, TII->get(LoongArch::NOR32), Mask2).addReg(LoongArch::ZERO).addReg(Mask); ++ if(MaskImm==4095){ ++ BuildMI(BB, DL, TII->get(LoongArch::ORI32), Mask3) ++ .addReg(MaskUppest).addImm(MaskImm); ++ BuildMI(BB, DL, TII->get(LoongArch::AND32), MaskedCmpVal) ++ .addReg(CmpVal).addReg(Mask3); ++ BuildMI(BB, DL, TII->get(LoongArch::SLL_W), ShiftedCmpVal) ++ .addReg(MaskedCmpVal).addReg(ShiftAmt); ++ BuildMI(BB, DL, TII->get(LoongArch::AND32), MaskedNewVal) ++ .addReg(NewVal).addReg(Mask3); ++ } ++ else{ ++ BuildMI(BB, DL, TII->get(LoongArch::ANDI32), MaskedCmpVal) ++ .addReg(CmpVal).addImm(MaskImm); ++ BuildMI(BB, DL, TII->get(LoongArch::SLL_W), ShiftedCmpVal) ++ .addReg(MaskedCmpVal).addReg(ShiftAmt); ++ BuildMI(BB, DL, TII->get(LoongArch::ANDI32), MaskedNewVal) ++ .addReg(NewVal).addImm(MaskImm); ++ } ++ BuildMI(BB, DL, TII->get(LoongArch::SLL_W), ShiftedNewVal) ++ .addReg(MaskedNewVal).addReg(ShiftAmt); ++ ++ // The purposes of the flags on the scratch registers are explained in ++ // emitAtomicBinary. In summary, we need a scratch register which is going to ++ // be undef, that is unique among the register chosen for the instruction. ++ ++ BuildMI(BB, DL, TII->get(LoongArch::DBAR)).addImm(0); ++ BuildMI(BB, DL, TII->get(AtomicOp)) ++ .addReg(Dest, RegState::Define | RegState::EarlyClobber) ++ .addReg(AlignedAddr) ++ .addReg(Mask) ++ .addReg(ShiftedCmpVal) ++ .addReg(Mask2) ++ .addReg(ShiftedNewVal) ++ .addReg(ShiftAmt) ++ .addReg(Scratch, RegState::EarlyClobber | RegState::Define | ++ RegState::Dead | RegState::Implicit) ++ .addReg(Scratch2, RegState::EarlyClobber | RegState::Define | ++ RegState::Dead | RegState::Implicit); ++ ++ ++ MI.eraseFromParent(); // The instruction is gone now. ++ ++ return exitMBB; ++} ++ ++SDValue LoongArchTargetLowering::lowerBRCOND(SDValue Op, SelectionDAG &DAG) const { ++ // The first operand is the chain, the second is the condition, the third is ++ // the block to branch to if the condition is true. ++ SDValue Chain = Op.getOperand(0); ++ SDValue Dest = Op.getOperand(2); ++ SDLoc DL(Op); ++ ++ SDValue CondRes = createFPCmp(DAG, Op.getOperand(1)); ++ ++ // Return if flag is not set by a floating point comparison. ++ if (CondRes.getOpcode() != LoongArchISD::FPCmp) ++ return Op; ++ ++ SDValue CCNode = CondRes.getOperand(2); ++ LoongArch::CondCode CC = ++ (LoongArch::CondCode)cast(CCNode)->getZExtValue(); ++ unsigned Opc = invertFPCondCodeUser(CC) ? LoongArch::BRANCH_F : LoongArch::BRANCH_T; ++ SDValue BrCode = DAG.getConstant(Opc, DL, MVT::i32); ++ SDValue FCC0 = DAG.getRegister(LoongArch::FCC0, MVT::i32); ++ return DAG.getNode(LoongArchISD::FPBrcond, DL, Op.getValueType(), Chain, BrCode, ++ FCC0, Dest, CondRes); ++} ++ ++SDValue LoongArchTargetLowering::lowerSELECT(SDValue Op, ++ SelectionDAG &DAG) const { ++ SDValue Cond = createFPCmp(DAG, Op.getOperand(0)); ++ ++ // Return if flag is not set by a floating point comparison. ++ if (Cond.getOpcode() != LoongArchISD::FPCmp) ++ return Op; ++ ++ SDValue N1 = Op.getOperand(1); ++ SDValue N2 = Op.getOperand(2); ++ SDLoc DL(Op); ++ ++ ConstantSDNode *CC = cast(Cond.getOperand(2)); ++ bool invert = invertFPCondCodeUser((LoongArch::CondCode)CC->getSExtValue()); ++ SDValue FCC = DAG.getRegister(LoongArch::FCC0, MVT::i32); ++ ++ if (Op->getSimpleValueType(0).SimpleTy == MVT::f64 || ++ Op->getSimpleValueType(0).SimpleTy == MVT::f32) { ++ if (invert) ++ return DAG.getNode(LoongArchISD::FSEL, DL, N1.getValueType(), N1, FCC, N2, ++ Cond); ++ else ++ return DAG.getNode(LoongArchISD::FSEL, DL, N1.getValueType(), N2, FCC, N1, ++ Cond); ++ ++ } else ++ return Op; ++} ++ ++SDValue LoongArchTargetLowering::lowerSETCC(SDValue Op, SelectionDAG &DAG) const { ++ SDValue Cond = createFPCmp(DAG, Op); ++ ++ assert(Cond.getOpcode() == LoongArchISD::FPCmp && ++ "Floating point operand expected."); ++ ++ SDLoc DL(Op); ++ SDValue True = DAG.getConstant(1, DL, MVT::i32); ++ SDValue False = DAG.getConstant(0, DL, MVT::i32); ++ ++ return createCMovFP(DAG, Cond, True, False, DL); ++} ++ ++SDValue LoongArchTargetLowering::lowerGlobalAddress(SDValue Op, ++ SelectionDAG &DAG) const { ++ GlobalAddressSDNode *N = cast(Op); ++ ++ const GlobalValue *GV = N->getGlobal(); ++ bool IsLocal = getTargetMachine().shouldAssumeDSOLocal(*GV->getParent(), GV); ++ SDValue Addr = getAddr(N, DAG, IsLocal); ++ ++ return Addr; ++} ++ ++SDValue LoongArchTargetLowering::lowerBlockAddress(SDValue Op, ++ SelectionDAG &DAG) const { ++ BlockAddressSDNode *N = cast(Op); ++ ++ return getAddr(N, DAG); ++} ++ ++SDValue LoongArchTargetLowering:: ++lowerGlobalTLSAddress(SDValue Op, SelectionDAG &DAG) const ++{ ++ GlobalAddressSDNode *GA = cast(Op); ++ if (DAG.getTarget().useEmulatedTLS()) ++ return LowerToTLSEmulatedModel(GA, DAG); ++ ++ SDLoc DL(GA); ++ const GlobalValue *GV = GA->getGlobal(); ++ EVT PtrVT = getPointerTy(DAG.getDataLayout()); ++ ++ TLSModel::Model model = getTargetMachine().getTLSModel(GV); ++ ++ if (model == TLSModel::GeneralDynamic || model == TLSModel::LocalDynamic) { ++ // General Dynamic TLS Model && Local Dynamic TLS Model ++ unsigned PtrSize = PtrVT.getSizeInBits(); ++ IntegerType *PtrTy = Type::getIntNTy(*DAG.getContext(), PtrSize); ++ // SDValue Addr = DAG.getTargetGlobalAddress(GV, DL, PtrTy, 0, 0); ++ SDValue Addr = DAG.getTargetGlobalAddress(GV, DL, PtrVT, 0, 0U); ++ SDValue Load = SDValue(DAG.getMachineNode(LoongArch::LoadAddrTLS_GD , ++ DL, PtrVT, Addr), 0); ++ SDValue TlsGetAddr = DAG.getExternalSymbol("__tls_get_addr", PtrVT); ++ ++ ArgListTy Args; ++ ArgListEntry Entry; ++ Entry.Node = Load; ++ Entry.Ty = PtrTy; ++ Args.push_back(Entry); ++ ++ TargetLowering::CallLoweringInfo CLI(DAG); ++ CLI.setDebugLoc(DL) ++ .setChain(DAG.getEntryNode()) ++ .setLibCallee(CallingConv::C, PtrTy, TlsGetAddr, std::move(Args)); ++ std::pair CallResult = LowerCallTo(CLI); ++ ++ SDValue Ret = CallResult.first; ++ ++ return Ret; ++ } ++ ++ SDValue Addr = DAG.getTargetGlobalAddress(GV, DL, PtrVT, 0, 0U); ++ SDValue Offset; ++ if (model == TLSModel::InitialExec) { ++ // Initial Exec TLS Model ++ Offset = SDValue(DAG.getMachineNode(LoongArch::LoadAddrTLS_IE, DL, ++ PtrVT, Addr), 0); ++ } else { ++ // Local Exec TLS Model ++ assert(model == TLSModel::LocalExec); ++ Offset = SDValue(DAG.getMachineNode(LoongArch::LoadAddrTLS_LE, DL, ++ PtrVT, Addr), 0); ++ } ++ ++ SDValue ThreadPointer = DAG.getRegister((PtrVT == MVT::i32) ++ ? LoongArch::TP ++ : LoongArch::TP_64, PtrVT); ++ return DAG.getNode(ISD::ADD, DL, PtrVT, ThreadPointer, Offset); ++} ++ ++SDValue LoongArchTargetLowering:: ++lowerJumpTable(SDValue Op, SelectionDAG &DAG) const ++{ ++ JumpTableSDNode *N = cast(Op); ++ ++ return getAddr(N, DAG); ++} ++ ++SDValue LoongArchTargetLowering:: ++lowerConstantPool(SDValue Op, SelectionDAG &DAG) const ++{ ++ ConstantPoolSDNode *N = cast(Op); ++ ++ return getAddr(N, DAG); ++} ++ ++SDValue LoongArchTargetLowering::lowerVASTART(SDValue Op, SelectionDAG &DAG) const { ++ MachineFunction &MF = DAG.getMachineFunction(); ++ LoongArchFunctionInfo *FuncInfo = MF.getInfo(); ++ ++ SDLoc DL(Op); ++ SDValue FI = DAG.getFrameIndex(FuncInfo->getVarArgsFrameIndex(), ++ getPointerTy(MF.getDataLayout())); ++ ++ // vastart just stores the address of the VarArgsFrameIndex slot into the ++ // memory location argument. ++ const Value *SV = cast(Op.getOperand(2))->getValue(); ++ return DAG.getStore(Op.getOperand(0), DL, FI, Op.getOperand(1), ++ MachinePointerInfo(SV)); ++} ++ ++SDValue LoongArchTargetLowering::lowerVAARG(SDValue Op, SelectionDAG &DAG) const { ++ SDNode *Node = Op.getNode(); ++ EVT VT = Node->getValueType(0); ++ SDValue Chain = Node->getOperand(0); ++ SDValue VAListPtr = Node->getOperand(1); ++ const Align Align = ++ llvm::MaybeAlign(Node->getConstantOperandVal(3)).valueOrOne(); ++ const Value *SV = cast(Node->getOperand(2))->getValue(); ++ SDLoc DL(Node); ++ unsigned ArgSlotSizeInBytes = (ABI.IsLPX32() || ABI.IsLP64()) ? 8 : 4; ++ ++ SDValue VAListLoad = DAG.getLoad(getPointerTy(DAG.getDataLayout()), DL, Chain, ++ VAListPtr, MachinePointerInfo(SV)); ++ SDValue VAList = VAListLoad; ++ ++ // Re-align the pointer if necessary. ++ // It should only ever be necessary for 64-bit types on LP32 since the minimum ++ // argument alignment is the same as the maximum type alignment for LPX32/LP64. ++ // ++ // FIXME: We currently align too often. The code generator doesn't notice ++ // when the pointer is still aligned from the last va_arg (or pair of ++ // va_args for the i64 on LP32 case). ++ if (Align > getMinStackArgumentAlignment()) { ++ VAList = DAG.getNode( ++ ISD::ADD, DL, VAList.getValueType(), VAList, ++ DAG.getConstant(Align.value() - 1, DL, VAList.getValueType())); ++ ++ VAList = DAG.getNode( ++ ISD::AND, DL, VAList.getValueType(), VAList, ++ DAG.getConstant(-(int64_t)Align.value(), DL, VAList.getValueType())); ++ } ++ ++ // Increment the pointer, VAList, to the next vaarg. ++ auto &TD = DAG.getDataLayout(); ++ unsigned ArgSizeInBytes = ++ TD.getTypeAllocSize(VT.getTypeForEVT(*DAG.getContext())); ++ SDValue Tmp3 = ++ DAG.getNode(ISD::ADD, DL, VAList.getValueType(), VAList, ++ DAG.getConstant(alignTo(ArgSizeInBytes, ArgSlotSizeInBytes), ++ DL, VAList.getValueType())); ++ // Store the incremented VAList to the legalized pointer ++ Chain = DAG.getStore(VAListLoad.getValue(1), DL, Tmp3, VAListPtr, ++ MachinePointerInfo(SV)); ++ ++ // Load the actual argument out of the pointer VAList ++ return DAG.getLoad(VT, DL, Chain, VAList, MachinePointerInfo()); ++} ++ ++SDValue LoongArchTargetLowering:: ++lowerFRAMEADDR(SDValue Op, SelectionDAG &DAG) const { ++ // check the depth ++ assert((cast(Op.getOperand(0))->getZExtValue() == 0) && ++ "Frame address can only be determined for current frame."); ++ ++ MachineFrameInfo &MFI = DAG.getMachineFunction().getFrameInfo(); ++ MFI.setFrameAddressIsTaken(true); ++ EVT VT = Op.getValueType(); ++ SDLoc DL(Op); ++ SDValue FrameAddr = DAG.getCopyFromReg( ++ DAG.getEntryNode(), DL, ABI.IsLP64() ? LoongArch::FP_64 : LoongArch::FP, VT); ++ return FrameAddr; ++} ++ ++SDValue LoongArchTargetLowering::lowerRETURNADDR(SDValue Op, ++ SelectionDAG &DAG) const { ++ if (verifyReturnAddressArgumentIsConstant(Op, DAG)) ++ return SDValue(); ++ ++ // check the depth ++ assert((cast(Op.getOperand(0))->getZExtValue() == 0) && ++ "Return address can be determined only for current frame."); ++ ++ MachineFunction &MF = DAG.getMachineFunction(); ++ MachineFrameInfo &MFI = MF.getFrameInfo(); ++ MVT VT = Op.getSimpleValueType(); ++ unsigned RA = ABI.IsLP64() ? LoongArch::RA_64 : LoongArch::RA; ++ MFI.setReturnAddressIsTaken(true); ++ ++ // Return RA, which contains the return address. Mark it an implicit live-in. ++ unsigned Reg = MF.addLiveIn(RA, getRegClassFor(VT)); ++ return DAG.getCopyFromReg(DAG.getEntryNode(), SDLoc(Op), Reg, VT); ++} ++ ++// An EH_RETURN is the result of lowering llvm.eh.return which in turn is ++// generated from __builtin_eh_return (offset, handler) ++// The effect of this is to adjust the stack pointer by "offset" ++// and then branch to "handler". ++SDValue LoongArchTargetLowering::lowerEH_RETURN(SDValue Op, SelectionDAG &DAG) ++ const { ++ MachineFunction &MF = DAG.getMachineFunction(); ++ LoongArchFunctionInfo *LoongArchFI = MF.getInfo(); ++ ++ LoongArchFI->setCallsEhReturn(); ++ SDValue Chain = Op.getOperand(0); ++ SDValue Offset = Op.getOperand(1); ++ SDValue Handler = Op.getOperand(2); ++ SDLoc DL(Op); ++ EVT Ty = ABI.IsLP64() ? MVT::i64 : MVT::i32; ++ ++ // Store stack offset in A1, store jump target in A0. Glue CopyToReg and ++ // EH_RETURN nodes, so that instructions are emitted back-to-back. ++ unsigned OffsetReg = ABI.IsLP64() ? LoongArch::A1_64 : LoongArch::A1; ++ unsigned AddrReg = ABI.IsLP64() ? LoongArch::A0_64 : LoongArch::A0; ++ Chain = DAG.getCopyToReg(Chain, DL, OffsetReg, Offset, SDValue()); ++ Chain = DAG.getCopyToReg(Chain, DL, AddrReg, Handler, Chain.getValue(1)); ++ return DAG.getNode(LoongArchISD::EH_RETURN, DL, MVT::Other, Chain, ++ DAG.getRegister(OffsetReg, Ty), ++ DAG.getRegister(AddrReg, getPointerTy(MF.getDataLayout())), ++ Chain.getValue(1)); ++} ++ ++SDValue LoongArchTargetLowering::lowerATOMIC_FENCE(SDValue Op, ++ SelectionDAG &DAG) const { ++ // FIXME: Need pseudo-fence for 'singlethread' fences ++ // FIXME: Set SType for weaker fences where supported/appropriate. ++ unsigned SType = 0; ++ SDLoc DL(Op); ++ return DAG.getNode(LoongArchISD::DBAR, DL, MVT::Other, Op.getOperand(0), ++ DAG.getConstant(SType, DL, MVT::i32)); ++} ++ ++SDValue LoongArchTargetLowering::lowerShiftLeftParts(SDValue Op, ++ SelectionDAG &DAG) const { ++ SDLoc DL(Op); ++ MVT VT = Subtarget.is64Bit() ? MVT::i64 : MVT::i32; ++ ++ SDValue Lo = Op.getOperand(0), Hi = Op.getOperand(1); ++ SDValue Shamt = Op.getOperand(2); ++ // if shamt < (VT.bits): ++ // lo = (shl lo, shamt) ++ // hi = (or (shl hi, shamt) (srl (srl lo, 1), ~shamt)) ++ // else: ++ // lo = 0 ++ // hi = (shl lo, shamt[4:0]) ++ SDValue Not = DAG.getNode(ISD::XOR, DL, MVT::i32, Shamt, ++ DAG.getConstant(-1, DL, MVT::i32)); ++ SDValue ShiftRight1Lo = DAG.getNode(ISD::SRL, DL, VT, Lo, ++ DAG.getConstant(1, DL, VT)); ++ SDValue ShiftRightLo = DAG.getNode(ISD::SRL, DL, VT, ShiftRight1Lo, Not); ++ SDValue ShiftLeftHi = DAG.getNode(ISD::SHL, DL, VT, Hi, Shamt); ++ SDValue Or = DAG.getNode(ISD::OR, DL, VT, ShiftLeftHi, ShiftRightLo); ++ SDValue ShiftLeftLo = DAG.getNode(ISD::SHL, DL, VT, Lo, Shamt); ++ SDValue Cond = DAG.getNode(ISD::AND, DL, MVT::i32, Shamt, ++ DAG.getConstant(VT.getSizeInBits(), DL, MVT::i32)); ++ Lo = DAG.getNode(ISD::SELECT, DL, VT, Cond, ++ DAG.getConstant(0, DL, VT), ShiftLeftLo); ++ Hi = DAG.getNode(ISD::SELECT, DL, VT, Cond, ShiftLeftLo, Or); ++ ++ SDValue Ops[2] = {Lo, Hi}; ++ return DAG.getMergeValues(Ops, DL); ++} ++ ++SDValue LoongArchTargetLowering::lowerShiftRightParts(SDValue Op, SelectionDAG &DAG, ++ bool IsSRA) const { ++ SDLoc DL(Op); ++ SDValue Lo = Op.getOperand(0), Hi = Op.getOperand(1); ++ SDValue Shamt = Op.getOperand(2); ++ MVT VT = Subtarget.is64Bit() ? MVT::i64 : MVT::i32; ++ ++ // if shamt < (VT.bits): ++ // lo = (or (shl (shl hi, 1), ~shamt) (srl lo, shamt)) ++ // if isSRA: ++ // hi = (sra hi, shamt) ++ // else: ++ // hi = (srl hi, shamt) ++ // else: ++ // if isSRA: ++ // lo = (sra hi, shamt[4:0]) ++ // hi = (sra hi, 31) ++ // else: ++ // lo = (srl hi, shamt[4:0]) ++ // hi = 0 ++ SDValue Not = DAG.getNode(ISD::XOR, DL, MVT::i32, Shamt, ++ DAG.getConstant(-1, DL, MVT::i32)); ++ SDValue ShiftLeft1Hi = DAG.getNode(ISD::SHL, DL, VT, Hi, ++ DAG.getConstant(1, DL, VT)); ++ SDValue ShiftLeftHi = DAG.getNode(ISD::SHL, DL, VT, ShiftLeft1Hi, Not); ++ SDValue ShiftRightLo = DAG.getNode(ISD::SRL, DL, VT, Lo, Shamt); ++ SDValue Or = DAG.getNode(ISD::OR, DL, VT, ShiftLeftHi, ShiftRightLo); ++ SDValue ShiftRightHi = DAG.getNode(IsSRA ? ISD::SRA : ISD::SRL, ++ DL, VT, Hi, Shamt); ++ SDValue Cond = DAG.getNode(ISD::AND, DL, MVT::i32, Shamt, ++ DAG.getConstant(VT.getSizeInBits(), DL, MVT::i32)); ++ SDValue Ext = DAG.getNode(ISD::SRA, DL, VT, Hi, ++ DAG.getConstant(VT.getSizeInBits() - 1, DL, VT)); ++ Lo = DAG.getNode(ISD::SELECT, DL, VT, Cond, ShiftRightHi, Or); ++ Hi = DAG.getNode(ISD::SELECT, DL, VT, Cond, ++ IsSRA ? Ext : DAG.getConstant(0, DL, VT), ShiftRightHi); ++ ++ SDValue Ops[2] = {Lo, Hi}; ++ return DAG.getMergeValues(Ops, DL); ++} ++ ++// Lower (store (fp_to_sint $fp) $ptr) to (store (TruncIntFP $fp), $ptr). ++static SDValue lowerFP_TO_SINT_STORE(StoreSDNode *SD, SelectionDAG &DAG, ++ bool SingleFloat) { ++ SDValue Val = SD->getValue(); ++ ++ if (Val.getOpcode() != ISD::FP_TO_SINT || ++ (Val.getValueSizeInBits() > 32 && SingleFloat)) ++ return SDValue(); ++ ++ EVT FPTy = EVT::getFloatingPointVT(Val.getValueSizeInBits()); ++ SDValue Tr = DAG.getNode(LoongArchISD::TruncIntFP, SDLoc(Val), FPTy, ++ Val.getOperand(0)); ++ return DAG.getStore(SD->getChain(), SDLoc(SD), Tr, SD->getBasePtr(), ++ SD->getPointerInfo(), SD->getAlignment(), ++ SD->getMemOperand()->getFlags()); ++} ++ ++SDValue LoongArchTargetLowering::lowerSTORE(SDValue Op, SelectionDAG &DAG) const { ++ StoreSDNode *SD = cast(Op); ++ return lowerFP_TO_SINT_STORE(SD, DAG, Subtarget.isSingleFloat()); ++} ++ ++SDValue LoongArchTargetLowering::lowerINTRINSIC_WO_CHAIN(SDValue Op, ++ SelectionDAG &DAG) const { ++ SDLoc DL(Op); ++ unsigned Intrinsic = cast(Op->getOperand(0))->getZExtValue(); ++ switch (Intrinsic) { ++ default: ++ return SDValue(); ++ case Intrinsic::loongarch_lsx_vaddi_bu: ++ case Intrinsic::loongarch_lsx_vaddi_hu: ++ case Intrinsic::loongarch_lsx_vaddi_wu: ++ case Intrinsic::loongarch_lsx_vaddi_du: ++ return DAG.getNode(ISD::ADD, DL, Op->getValueType(0), Op->getOperand(1), ++ lowerLSXSplatImm(Op, 2, DAG)); ++ case Intrinsic::loongarch_lsx_vand_v: ++ case Intrinsic::loongarch_lasx_xvand_v: ++ return DAG.getNode(ISD::AND, DL, Op->getValueType(0), Op->getOperand(1), ++ Op->getOperand(2)); ++ case Intrinsic::loongarch_lsx_vbitclr_b: ++ case Intrinsic::loongarch_lsx_vbitclr_h: ++ case Intrinsic::loongarch_lsx_vbitclr_w: ++ case Intrinsic::loongarch_lsx_vbitclr_d: ++ return lowerLSXBitClear(Op, DAG); ++ case Intrinsic::loongarch_lsx_vdiv_b: ++ case Intrinsic::loongarch_lsx_vdiv_h: ++ case Intrinsic::loongarch_lsx_vdiv_w: ++ case Intrinsic::loongarch_lsx_vdiv_d: ++ return DAG.getNode(ISD::SDIV, DL, Op->getValueType(0), Op->getOperand(1), ++ Op->getOperand(2)); ++ case Intrinsic::loongarch_lsx_vdiv_bu: ++ case Intrinsic::loongarch_lsx_vdiv_hu: ++ case Intrinsic::loongarch_lsx_vdiv_wu: ++ case Intrinsic::loongarch_lsx_vdiv_du: ++ return DAG.getNode(ISD::UDIV, DL, Op->getValueType(0), Op->getOperand(1), ++ Op->getOperand(2)); ++ case Intrinsic::loongarch_lsx_vfdiv_s: ++ case Intrinsic::loongarch_lsx_vfdiv_d: ++ return DAG.getNode(ISD::FDIV, DL, Op->getValueType(0), Op->getOperand(1), ++ Op->getOperand(2)); ++ case Intrinsic::loongarch_lsx_vffint_s_wu: ++ case Intrinsic::loongarch_lsx_vffint_d_lu: ++ return DAG.getNode(ISD::UINT_TO_FP, DL, Op->getValueType(0), ++ Op->getOperand(1)); ++ case Intrinsic::loongarch_lsx_vffint_s_w: ++ case Intrinsic::loongarch_lsx_vffint_d_l: ++ return DAG.getNode(ISD::SINT_TO_FP, DL, Op->getValueType(0), ++ Op->getOperand(1)); ++ case Intrinsic::loongarch_lsx_vfmul_s: ++ case Intrinsic::loongarch_lsx_vfmul_d: ++ return DAG.getNode(ISD::FMUL, DL, Op->getValueType(0), Op->getOperand(1), ++ Op->getOperand(2)); ++ case Intrinsic::loongarch_lsx_vfrint_s: ++ case Intrinsic::loongarch_lsx_vfrint_d: ++ return DAG.getNode(ISD::FRINT, DL, Op->getValueType(0), Op->getOperand(1)); ++ case Intrinsic::loongarch_lsx_vfsqrt_s: ++ case Intrinsic::loongarch_lsx_vfsqrt_d: ++ return DAG.getNode(ISD::FSQRT, DL, Op->getValueType(0), Op->getOperand(1)); ++ case Intrinsic::loongarch_lsx_vftintrz_wu_s: ++ case Intrinsic::loongarch_lsx_vftintrz_lu_d: ++ return DAG.getNode(ISD::FP_TO_UINT, DL, Op->getValueType(0), ++ Op->getOperand(1)); ++ case Intrinsic::loongarch_lsx_vpackev_b: ++ case Intrinsic::loongarch_lsx_vpackev_h: ++ case Intrinsic::loongarch_lsx_vpackev_w: ++ case Intrinsic::loongarch_lsx_vpackev_d: ++ return DAG.getNode(LoongArchISD::VPACKEV, DL, Op->getValueType(0), ++ Op->getOperand(1), Op->getOperand(2)); ++ case Intrinsic::loongarch_lsx_vilvh_b: ++ case Intrinsic::loongarch_lsx_vilvh_h: ++ case Intrinsic::loongarch_lsx_vilvh_w: ++ case Intrinsic::loongarch_lsx_vilvh_d: ++ return DAG.getNode(LoongArchISD::VILVH, DL, Op->getValueType(0), ++ Op->getOperand(1), Op->getOperand(2)); ++ case Intrinsic::loongarch_lsx_vpackod_b: ++ case Intrinsic::loongarch_lsx_vpackod_h: ++ case Intrinsic::loongarch_lsx_vpackod_w: ++ case Intrinsic::loongarch_lsx_vpackod_d: ++ return DAG.getNode(LoongArchISD::VPACKOD, DL, Op->getValueType(0), ++ Op->getOperand(1), Op->getOperand(2)); ++ case Intrinsic::loongarch_lsx_vilvl_b: ++ case Intrinsic::loongarch_lsx_vilvl_h: ++ case Intrinsic::loongarch_lsx_vilvl_w: ++ case Intrinsic::loongarch_lsx_vilvl_d: ++ return DAG.getNode(LoongArchISD::VILVL, DL, Op->getValueType(0), ++ Op->getOperand(1), Op->getOperand(2)); ++ case Intrinsic::loongarch_lsx_vmadd_b: ++ case Intrinsic::loongarch_lsx_vmadd_h: ++ case Intrinsic::loongarch_lsx_vmadd_w: ++ case Intrinsic::loongarch_lsx_vmadd_d: { ++ EVT ResTy = Op->getValueType(0); ++ return DAG.getNode(ISD::ADD, SDLoc(Op), ResTy, Op->getOperand(1), ++ DAG.getNode(ISD::MUL, SDLoc(Op), ResTy, ++ Op->getOperand(2), Op->getOperand(3))); ++ } ++ case Intrinsic::loongarch_lsx_vmax_b: ++ case Intrinsic::loongarch_lsx_vmax_h: ++ case Intrinsic::loongarch_lsx_vmax_w: ++ case Intrinsic::loongarch_lsx_vmax_d: ++ return DAG.getNode(ISD::SMAX, DL, Op->getValueType(0), Op->getOperand(1), ++ Op->getOperand(2)); ++ case Intrinsic::loongarch_lsx_vmax_bu: ++ case Intrinsic::loongarch_lsx_vmax_hu: ++ case Intrinsic::loongarch_lsx_vmax_wu: ++ case Intrinsic::loongarch_lsx_vmax_du: ++ return DAG.getNode(ISD::UMAX, DL, Op->getValueType(0), Op->getOperand(1), ++ Op->getOperand(2)); ++ case Intrinsic::loongarch_lsx_vmin_b: ++ case Intrinsic::loongarch_lsx_vmin_h: ++ case Intrinsic::loongarch_lsx_vmin_w: ++ case Intrinsic::loongarch_lsx_vmin_d: ++ return DAG.getNode(ISD::SMIN, DL, Op->getValueType(0), Op->getOperand(1), ++ Op->getOperand(2)); ++ case Intrinsic::loongarch_lsx_vmin_bu: ++ case Intrinsic::loongarch_lsx_vmin_hu: ++ case Intrinsic::loongarch_lsx_vmin_wu: ++ case Intrinsic::loongarch_lsx_vmin_du: ++ return DAG.getNode(ISD::UMIN, DL, Op->getValueType(0), Op->getOperand(1), ++ Op->getOperand(2)); ++ case Intrinsic::loongarch_lsx_vmini_bu: ++ case Intrinsic::loongarch_lsx_vmini_hu: ++ case Intrinsic::loongarch_lsx_vmini_wu: ++ case Intrinsic::loongarch_lsx_vmini_du: ++ return DAG.getNode(ISD::UMIN, DL, Op->getValueType(0), Op->getOperand(1), ++ lowerLSXSplatImm(Op, 2, DAG)); ++ case Intrinsic::loongarch_lsx_vmod_b: ++ case Intrinsic::loongarch_lsx_vmod_h: ++ case Intrinsic::loongarch_lsx_vmod_w: ++ case Intrinsic::loongarch_lsx_vmod_d: ++ return DAG.getNode(ISD::SREM, DL, Op->getValueType(0), Op->getOperand(1), ++ Op->getOperand(2)); ++ case Intrinsic::loongarch_lsx_vmod_bu: ++ case Intrinsic::loongarch_lsx_vmod_hu: ++ case Intrinsic::loongarch_lsx_vmod_wu: ++ case Intrinsic::loongarch_lsx_vmod_du: ++ return DAG.getNode(ISD::UREM, DL, Op->getValueType(0), Op->getOperand(1), ++ Op->getOperand(2)); ++ case Intrinsic::loongarch_lsx_vmul_b: ++ case Intrinsic::loongarch_lsx_vmul_h: ++ case Intrinsic::loongarch_lsx_vmul_w: ++ case Intrinsic::loongarch_lsx_vmul_d: ++ return DAG.getNode(ISD::MUL, DL, Op->getValueType(0), Op->getOperand(1), ++ Op->getOperand(2)); ++ case Intrinsic::loongarch_lsx_vmsub_b: ++ case Intrinsic::loongarch_lsx_vmsub_h: ++ case Intrinsic::loongarch_lsx_vmsub_w: ++ case Intrinsic::loongarch_lsx_vmsub_d: { ++ EVT ResTy = Op->getValueType(0); ++ return DAG.getNode(ISD::SUB, SDLoc(Op), ResTy, Op->getOperand(1), ++ DAG.getNode(ISD::MUL, SDLoc(Op), ResTy, ++ Op->getOperand(2), Op->getOperand(3))); ++ } ++ case Intrinsic::loongarch_lsx_vclz_b: ++ case Intrinsic::loongarch_lsx_vclz_h: ++ case Intrinsic::loongarch_lsx_vclz_w: ++ case Intrinsic::loongarch_lsx_vclz_d: ++ return DAG.getNode(ISD::CTLZ, DL, Op->getValueType(0), Op->getOperand(1)); ++ case Intrinsic::loongarch_lsx_vnor_v: ++ case Intrinsic::loongarch_lasx_xvnor_v: { ++ SDValue Res = DAG.getNode(ISD::OR, DL, Op->getValueType(0), ++ Op->getOperand(1), Op->getOperand(2)); ++ return DAG.getNOT(DL, Res, Res->getValueType(0)); ++ } ++ case Intrinsic::loongarch_lsx_vor_v: ++ case Intrinsic::loongarch_lasx_xvor_v: ++ return DAG.getNode(ISD::OR, DL, Op->getValueType(0), Op->getOperand(1), ++ Op->getOperand(2)); ++ case Intrinsic::loongarch_lsx_vpickev_b: ++ case Intrinsic::loongarch_lsx_vpickev_h: ++ case Intrinsic::loongarch_lsx_vpickev_w: ++ case Intrinsic::loongarch_lsx_vpickev_d: ++ return DAG.getNode(LoongArchISD::VPICKEV, DL, Op->getValueType(0), ++ Op->getOperand(1), Op->getOperand(2)); ++ case Intrinsic::loongarch_lsx_vpickod_b: ++ case Intrinsic::loongarch_lsx_vpickod_h: ++ case Intrinsic::loongarch_lsx_vpickod_w: ++ case Intrinsic::loongarch_lsx_vpickod_d: ++ return DAG.getNode(LoongArchISD::VPICKOD, DL, Op->getValueType(0), ++ Op->getOperand(1), Op->getOperand(2)); ++ case Intrinsic::loongarch_lsx_vpcnt_b: ++ case Intrinsic::loongarch_lsx_vpcnt_h: ++ case Intrinsic::loongarch_lsx_vpcnt_w: ++ case Intrinsic::loongarch_lsx_vpcnt_d: ++ return DAG.getNode(ISD::CTPOP, DL, Op->getValueType(0), Op->getOperand(1)); ++ case Intrinsic::loongarch_lsx_vsat_b: ++ case Intrinsic::loongarch_lsx_vsat_h: ++ case Intrinsic::loongarch_lsx_vsat_w: ++ case Intrinsic::loongarch_lsx_vsat_d: ++ case Intrinsic::loongarch_lsx_vsat_bu: ++ case Intrinsic::loongarch_lsx_vsat_hu: ++ case Intrinsic::loongarch_lsx_vsat_wu: ++ case Intrinsic::loongarch_lsx_vsat_du: { ++ // Report an error for out of range values. ++ int64_t Max; ++ switch (Intrinsic) { ++ case Intrinsic::loongarch_lsx_vsat_b: ++ case Intrinsic::loongarch_lsx_vsat_bu: ++ Max = 7; ++ break; ++ case Intrinsic::loongarch_lsx_vsat_h: ++ case Intrinsic::loongarch_lsx_vsat_hu: ++ Max = 15; ++ break; ++ case Intrinsic::loongarch_lsx_vsat_w: ++ case Intrinsic::loongarch_lsx_vsat_wu: ++ Max = 31; ++ break; ++ case Intrinsic::loongarch_lsx_vsat_d: ++ case Intrinsic::loongarch_lsx_vsat_du: ++ Max = 63; ++ break; ++ default: ++ llvm_unreachable("Unmatched intrinsic"); ++ } ++ int64_t Value = cast(Op->getOperand(2))->getSExtValue(); ++ if (Value < 0 || Value > Max) ++ report_fatal_error("Immediate out of range"); ++ return SDValue(); ++ } ++ case Intrinsic::loongarch_lsx_vshuf4i_b: ++ case Intrinsic::loongarch_lsx_vshuf4i_h: ++ case Intrinsic::loongarch_lsx_vshuf4i_w: ++ // case Intrinsic::loongarch_lsx_vshuf4i_d: ++ { ++ int64_t Value = cast(Op->getOperand(2))->getSExtValue(); ++ if (Value < 0 || Value > 255) ++ report_fatal_error("Immediate out of range"); ++ return DAG.getNode(LoongArchISD::SHF, DL, Op->getValueType(0), ++ Op->getOperand(2), Op->getOperand(1)); ++ } ++ case Intrinsic::loongarch_lsx_vsll_b: ++ case Intrinsic::loongarch_lsx_vsll_h: ++ case Intrinsic::loongarch_lsx_vsll_w: ++ case Intrinsic::loongarch_lsx_vsll_d: ++ return DAG.getNode(ISD::SHL, DL, Op->getValueType(0), Op->getOperand(1), ++ truncateVecElts(Op, DAG)); ++ case Intrinsic::loongarch_lsx_vslli_b: ++ case Intrinsic::loongarch_lsx_vslli_h: ++ case Intrinsic::loongarch_lsx_vslli_w: ++ case Intrinsic::loongarch_lsx_vslli_d: ++ return DAG.getNode(ISD::SHL, DL, Op->getValueType(0), Op->getOperand(1), ++ lowerLSXSplatImm(Op, 2, DAG)); ++ case Intrinsic::loongarch_lsx_vreplve_b: ++ case Intrinsic::loongarch_lsx_vreplve_h: ++ case Intrinsic::loongarch_lsx_vreplve_w: ++ case Intrinsic::loongarch_lsx_vreplve_d: ++ // We can't lower via VECTOR_SHUFFLE because it requires constant shuffle ++ // masks, nor can we lower via BUILD_VECTOR & EXTRACT_VECTOR_ELT because ++ // EXTRACT_VECTOR_ELT can't extract i64's on LoongArch32. ++ // Instead we lower to LoongArchISD::VSHF and match from there. ++ return DAG.getNode(LoongArchISD::VSHF, DL, Op->getValueType(0), ++ lowerLSXSplatZExt(Op, 2, DAG), Op->getOperand(1), ++ Op->getOperand(1)); ++ case Intrinsic::loongarch_lsx_vreplvei_b: ++ case Intrinsic::loongarch_lsx_vreplvei_h: ++ case Intrinsic::loongarch_lsx_vreplvei_w: ++ case Intrinsic::loongarch_lsx_vreplvei_d: ++ return DAG.getNode(LoongArchISD::VSHF, DL, Op->getValueType(0), ++ lowerLSXSplatImm(Op, 2, DAG), Op->getOperand(1), ++ Op->getOperand(1)); ++ case Intrinsic::loongarch_lsx_vsra_b: ++ case Intrinsic::loongarch_lsx_vsra_h: ++ case Intrinsic::loongarch_lsx_vsra_w: ++ case Intrinsic::loongarch_lsx_vsra_d: ++ return DAG.getNode(ISD::SRA, DL, Op->getValueType(0), Op->getOperand(1), ++ truncateVecElts(Op, DAG)); ++ case Intrinsic::loongarch_lsx_vsrari_b: ++ case Intrinsic::loongarch_lsx_vsrari_h: ++ case Intrinsic::loongarch_lsx_vsrari_w: ++ case Intrinsic::loongarch_lsx_vsrari_d: { ++ // Report an error for out of range values. ++ int64_t Max; ++ switch (Intrinsic) { ++ case Intrinsic::loongarch_lsx_vsrari_b: ++ Max = 7; ++ break; ++ case Intrinsic::loongarch_lsx_vsrari_h: ++ Max = 15; ++ break; ++ case Intrinsic::loongarch_lsx_vsrari_w: ++ Max = 31; ++ break; ++ case Intrinsic::loongarch_lsx_vsrari_d: ++ Max = 63; ++ break; ++ default: ++ llvm_unreachable("Unmatched intrinsic"); ++ } ++ int64_t Value = cast(Op->getOperand(2))->getSExtValue(); ++ if (Value < 0 || Value > Max) ++ report_fatal_error("Immediate out of range"); ++ return SDValue(); ++ } ++ case Intrinsic::loongarch_lsx_vsrl_b: ++ case Intrinsic::loongarch_lsx_vsrl_h: ++ case Intrinsic::loongarch_lsx_vsrl_w: ++ case Intrinsic::loongarch_lsx_vsrl_d: ++ return DAG.getNode(ISD::SRL, DL, Op->getValueType(0), Op->getOperand(1), ++ truncateVecElts(Op, DAG)); ++ case Intrinsic::loongarch_lsx_vsrli_b: ++ case Intrinsic::loongarch_lsx_vsrli_h: ++ case Intrinsic::loongarch_lsx_vsrli_w: ++ case Intrinsic::loongarch_lsx_vsrli_d: ++ return DAG.getNode(ISD::SRL, DL, Op->getValueType(0), Op->getOperand(1), ++ lowerLSXSplatImm(Op, 2, DAG)); ++ case Intrinsic::loongarch_lsx_vsrlri_b: ++ case Intrinsic::loongarch_lsx_vsrlri_h: ++ case Intrinsic::loongarch_lsx_vsrlri_w: ++ case Intrinsic::loongarch_lsx_vsrlri_d: { ++ // Report an error for out of range values. ++ int64_t Max; ++ switch (Intrinsic) { ++ case Intrinsic::loongarch_lsx_vsrlri_b: ++ Max = 7; ++ break; ++ case Intrinsic::loongarch_lsx_vsrlri_h: ++ Max = 15; ++ break; ++ case Intrinsic::loongarch_lsx_vsrlri_w: ++ Max = 31; ++ break; ++ case Intrinsic::loongarch_lsx_vsrlri_d: ++ Max = 63; ++ break; ++ default: ++ llvm_unreachable("Unmatched intrinsic"); ++ } ++ int64_t Value = cast(Op->getOperand(2))->getSExtValue(); ++ if (Value < 0 || Value > Max) ++ report_fatal_error("Immediate out of range"); ++ return SDValue(); ++ } ++ case Intrinsic::loongarch_lsx_vsubi_bu: ++ case Intrinsic::loongarch_lsx_vsubi_hu: ++ case Intrinsic::loongarch_lsx_vsubi_wu: ++ case Intrinsic::loongarch_lsx_vsubi_du: ++ return DAG.getNode(ISD::SUB, DL, Op->getValueType(0), Op->getOperand(1), ++ lowerLSXSplatImm(Op, 2, DAG)); ++ case Intrinsic::loongarch_lsx_vshuf_h: ++ case Intrinsic::loongarch_lsx_vshuf_w: ++ case Intrinsic::loongarch_lsx_vshuf_d: ++ case Intrinsic::loongarch_lasx_xvshuf_h: ++ case Intrinsic::loongarch_lasx_xvshuf_w: ++ case Intrinsic::loongarch_lasx_xvshuf_d: ++ return DAG.getNode(LoongArchISD::VSHF, DL, Op->getValueType(0), ++ Op->getOperand(1), Op->getOperand(2), Op->getOperand(3)); ++ case Intrinsic::loongarch_lsx_vxor_v: ++ case Intrinsic::loongarch_lasx_xvxor_v: ++ return DAG.getNode(ISD::XOR, DL, Op->getValueType(0), Op->getOperand(1), ++ Op->getOperand(2)); ++ case Intrinsic::loongarch_lsx_vrotr_b: ++ case Intrinsic::loongarch_lsx_vrotr_h: ++ case Intrinsic::loongarch_lsx_vrotr_w: ++ case Intrinsic::loongarch_lsx_vrotr_d: ++ return DAG.getNode(LoongArchISD::VROR, DL, Op->getValueType(0), ++ Op->getOperand(1), Op->getOperand(2)); ++ case Intrinsic::loongarch_lsx_vrotri_b: ++ case Intrinsic::loongarch_lsx_vrotri_h: ++ case Intrinsic::loongarch_lsx_vrotri_w: ++ case Intrinsic::loongarch_lsx_vrotri_d: ++ return DAG.getNode(LoongArchISD::VRORI, DL, Op->getValueType(0), ++ Op->getOperand(1), Op->getOperand(2)); ++ case Intrinsic::thread_pointer: { ++ EVT PtrVT = getPointerTy(DAG.getDataLayout()); ++ if (PtrVT == MVT::i64) ++ return DAG.getRegister(LoongArch::TP_64, MVT::i64); ++ return DAG.getRegister(LoongArch::TP, MVT::i32); ++ } ++ } ++} ++ ++SDValue ++LoongArchTargetLowering::lowerINTRINSIC_W_CHAIN(SDValue Op, ++ SelectionDAG &DAG) const { ++ unsigned Intr = cast(Op->getOperand(1))->getZExtValue(); ++ switch (Intr) { ++ default: ++ return SDValue(); ++ case Intrinsic::loongarch_lsx_vld: ++ return lowerLSXLoadIntr(Op, DAG, Intr, Subtarget); ++ case Intrinsic::loongarch_lasx_xvld: ++ return lowerLASXLoadIntr(Op, DAG, Intr, Subtarget); ++ case Intrinsic::loongarch_lasx_xvldrepl_b: ++ case Intrinsic::loongarch_lasx_xvldrepl_h: ++ case Intrinsic::loongarch_lasx_xvldrepl_w: ++ case Intrinsic::loongarch_lasx_xvldrepl_d: ++ return lowerLASXVLDRIntr(Op, DAG, Intr, Subtarget); ++ case Intrinsic::loongarch_lsx_vldrepl_b: ++ case Intrinsic::loongarch_lsx_vldrepl_h: ++ case Intrinsic::loongarch_lsx_vldrepl_w: ++ case Intrinsic::loongarch_lsx_vldrepl_d: ++ return lowerLSXVLDRIntr(Op, DAG, Intr, Subtarget); ++ } ++} ++ ++SDValue LoongArchTargetLowering::lowerINTRINSIC_VOID(SDValue Op, ++ SelectionDAG &DAG) const { ++ unsigned Intr = cast(Op->getOperand(1))->getZExtValue(); ++ switch (Intr) { ++ default: ++ return SDValue(); ++ case Intrinsic::loongarch_lsx_vst: ++ return lowerLSXStoreIntr(Op, DAG, Intr, Subtarget); ++ case Intrinsic::loongarch_lasx_xvst: ++ return lowerLASXStoreIntr(Op, DAG, Intr, Subtarget); ++ } ++} ++ ++// Lower ISD::EXTRACT_VECTOR_ELT into LoongArchISD::VEXTRACT_SEXT_ELT. ++// ++// The non-value bits resulting from ISD::EXTRACT_VECTOR_ELT are undefined. We ++// choose to sign-extend but we could have equally chosen zero-extend. The ++// DAGCombiner will fold any sign/zero extension of the ISD::EXTRACT_VECTOR_ELT ++// result into this node later (possibly changing it to a zero-extend in the ++// process). ++SDValue ++LoongArchTargetLowering::lowerEXTRACT_VECTOR_ELT(SDValue Op, ++ SelectionDAG &DAG) const { ++ SDLoc DL(Op); ++ EVT ResTy = Op->getValueType(0); ++ SDValue Op0 = Op->getOperand(0); ++ EVT VecTy = Op0->getValueType(0); ++ ++ if (!VecTy.is128BitVector() && !VecTy.is256BitVector()) ++ return SDValue(); ++ ++ if (ResTy.isInteger()) { ++ SDValue Op1 = Op->getOperand(1); ++ EVT EltTy = VecTy.getVectorElementType(); ++ if (VecTy.is128BitVector()) ++ return DAG.getNode(LoongArchISD::VEXTRACT_SEXT_ELT, DL, ResTy, Op0, Op1, ++ DAG.getValueType(EltTy)); ++ ++ ConstantSDNode *cn = dyn_cast(Op1); ++ if (!cn) ++ return SDValue(); ++ ++ if (EltTy == MVT::i32 || EltTy == MVT::i64) ++ return DAG.getNode(LoongArchISD::VEXTRACT_SEXT_ELT, DL, ResTy, Op0, Op1, ++ DAG.getValueType(EltTy)); ++ } ++ ++ return SDValue(); ++} ++ ++SDValue ++LoongArchTargetLowering::lowerINSERT_VECTOR_ELT(SDValue Op, ++ SelectionDAG &DAG) const { ++ ++ MVT VT = Op.getSimpleValueType(); ++ MVT EltVT = VT.getVectorElementType(); ++ ++ SDLoc DL(Op); ++ SDValue Op0 = Op.getOperand(0); ++ SDValue Op1 = Op.getOperand(1); ++ SDValue Op2 = Op.getOperand(2); ++ ++ if (!EltVT.isInteger()) ++ return Op; ++ ++ if (!isa(Op2)) { ++ if (EltVT == MVT::i8 || EltVT == MVT::i16) { ++ return Op; // ==> pseudo ++ // use stack ++ return SDValue(); ++ } else { ++ return Op; ++ } ++ } ++ ++ if (VT.is128BitVector()) ++ return DAG.getNode(ISD::INSERT_VECTOR_ELT, DL, VT, Op0, Op1, Op2); ++ ++ if (VT.is256BitVector()) { ++ ++ if (EltVT == MVT::i32 || EltVT == MVT::i64) ++ return DAG.getNode(ISD::INSERT_VECTOR_ELT, DL, VT, Op0, Op1, Op2); ++ ++ return Op; ++ } ++ ++ return SDValue(); ++} ++ ++// Lowers ISD::BUILD_VECTOR into appropriate SelectionDAG nodes for the ++// backend. ++// ++// Lowers according to the following rules: ++// - Constant splats are legal as-is as long as the SplatBitSize is a power of ++// 2 less than or equal to 64 and the value fits into a signed 10-bit ++// immediate ++// - Constant splats are lowered to bitconverted BUILD_VECTORs if SplatBitSize ++// is a power of 2 less than or equal to 64 and the value does not fit into a ++// signed 10-bit immediate ++// - Non-constant splats are legal as-is. ++// - Non-constant non-splats are lowered to sequences of INSERT_VECTOR_ELT. ++// - All others are illegal and must be expanded. ++SDValue LoongArchTargetLowering::lowerBUILD_VECTOR(SDValue Op, ++ SelectionDAG &DAG) const { ++ BuildVectorSDNode *Node = cast(Op); ++ EVT ResTy = Op->getValueType(0); ++ SDLoc DL(Op); ++ APInt SplatValue, SplatUndef; ++ unsigned SplatBitSize; ++ bool HasAnyUndefs; ++ ++ if ((!Subtarget.hasLSX() || !ResTy.is128BitVector()) && ++ (!Subtarget.hasLASX() || !ResTy.is256BitVector())) ++ return SDValue(); ++ ++ if (Node->isConstantSplat(SplatValue, SplatUndef, SplatBitSize, HasAnyUndefs, ++ 8) && ++ SplatBitSize <= 64) { ++ // We can only cope with 8, 16, 32, or 64-bit elements ++ if ((ResTy.is128BitVector() && SplatBitSize != 8 && SplatBitSize != 16 && ++ SplatBitSize != 32 && SplatBitSize != 64) || ++ (ResTy.is256BitVector() && SplatBitSize != 8 && SplatBitSize != 16 && ++ SplatBitSize != 32 && SplatBitSize != 64)) ++ return SDValue(); ++ ++ // If the value isn't an integer type we will have to bitcast ++ // from an integer type first. Also, if there are any undefs, we must ++ // lower them to defined values first. ++ if (ResTy.isInteger() && !HasAnyUndefs) ++ return Op; ++ ++ EVT ViaVecTy; ++ ++ if ((ResTy.is128BitVector() && ++ !isLSXBySplatBitSize(SplatBitSize, ViaVecTy)) || ++ (ResTy.is256BitVector() && ++ !isLASXBySplatBitSize(SplatBitSize, ViaVecTy))) ++ return SDValue(); ++ ++ // SelectionDAG::getConstant will promote SplatValue appropriately. ++ SDValue Result = DAG.getConstant(SplatValue, DL, ViaVecTy); ++ ++ // Bitcast to the type we originally wanted ++ if (ViaVecTy != ResTy) ++ Result = DAG.getNode(ISD::BITCAST, SDLoc(Node), ResTy, Result); ++ ++ return Result; ++ } else if (DAG.isSplatValue(Op, /* AllowUndefs */ false)) ++ return Op; ++ else if (!isConstantOrUndefBUILD_VECTOR(Node)) { ++ // Use INSERT_VECTOR_ELT operations rather than expand to stores. ++ // The resulting code is the same length as the expansion, but it doesn't ++ // use memory operations ++ EVT ResTy = Node->getValueType(0); ++ ++ assert(ResTy.isVector()); ++ ++ unsigned NumElts = ResTy.getVectorNumElements(); ++ SDValue Vector = DAG.getUNDEF(ResTy); ++ for (unsigned i = 0; i < NumElts; ++i) { ++ Vector = ++ DAG.getNode(ISD::INSERT_VECTOR_ELT, DL, ResTy, Vector, ++ Node->getOperand(i), DAG.getConstant(i, DL, MVT::i32)); ++ } ++ return Vector; ++ } ++ ++ return SDValue(); ++} ++ ++SDValue LoongArchTargetLowering::lowerUINT_TO_FP(SDValue Op, ++ SelectionDAG &DAG) const { ++ SDLoc DL(Op); ++ EVT ResTy = Op->getValueType(0); ++ Op = LowerSUINT_TO_FP(ISD::ZERO_EXTEND_VECTOR_INREG, Op, DAG); ++ if (!ResTy.isVector()) ++ return Op; ++ return DAG.getNode(ISD::UINT_TO_FP, DL, ResTy, Op); ++} ++ ++SDValue LoongArchTargetLowering::lowerSINT_TO_FP(SDValue Op, ++ SelectionDAG &DAG) const { ++ SDLoc DL(Op); ++ EVT ResTy = Op->getValueType(0); ++ Op = LowerSUINT_TO_FP(ISD::SIGN_EXTEND_VECTOR_INREG, Op, DAG); ++ if (!ResTy.isVector()) ++ return Op; ++ return DAG.getNode(ISD::SINT_TO_FP, DL, ResTy, Op); ++} ++ ++SDValue LoongArchTargetLowering::lowerFP_TO_UINT(SDValue Op, ++ SelectionDAG &DAG) const { ++ if (!Op->getValueType(0).isVector()) ++ return SDValue(); ++ return LowerFP_TO_SUINT(ISD::FP_TO_UINT, ISD::ZERO_EXTEND_VECTOR_INREG, Op, ++ DAG); ++} ++ ++SDValue LoongArchTargetLowering::lowerFP_TO_SINT(SDValue Op, ++ SelectionDAG &DAG) const { ++ if (Op->getValueType(0).isVector()) ++ return LowerFP_TO_SUINT(ISD::FP_TO_SINT, ISD::SIGN_EXTEND_VECTOR_INREG, Op, ++ DAG); ++ ++ if (Op.getValueSizeInBits() > 32 && Subtarget.isSingleFloat()) ++ return SDValue(); ++ ++ EVT FPTy = EVT::getFloatingPointVT(Op.getValueSizeInBits()); ++ SDValue Trunc = ++ DAG.getNode(LoongArchISD::TruncIntFP, SDLoc(Op), FPTy, Op.getOperand(0)); ++ return DAG.getNode(ISD::BITCAST, SDLoc(Op), Op.getValueType(), Trunc); ++} ++ ++static bool checkUndef(ArrayRef Mask, int Lo, int Hi) { ++ ++ for (int i = Lo, end = Hi; i != end; i++, Hi++) ++ if (!((Mask[i] == -1) || (Mask[i] == Hi))) ++ return false; ++ return true; ++} ++ ++static bool CheckRev(ArrayRef Mask) { ++ ++ int Num = Mask.size() - 1; ++ for (long unsigned int i = 0; i < Mask.size(); i++, Num--) ++ if (Mask[i] != Num) ++ return false; ++ return true; ++} ++ ++static bool checkHalf(ArrayRef Mask, int Lo, int Hi, int base) { ++ ++ for (int i = Lo; i < Hi; i++) ++ if (Mask[i] != (base + i)) ++ return false; ++ return true; ++} ++ ++static SDValue lowerHalfHalf(const SDLoc &DL, MVT VT, SDValue Op1, SDValue Op2, ++ ArrayRef Mask, SelectionDAG &DAG) { ++ ++ int Num = VT.getVectorNumElements(); ++ int HalfNum = Num / 2; ++ ++ if (Op1->isUndef() || Op2->isUndef() || Mask.size() > (long unsigned int)Num) ++ return SDValue(); ++ ++ if (checkHalf(Mask, HalfNum, Num, Num) && checkHalf(Mask, 0, HalfNum, 0)) { ++ return SDValue(DAG.getMachineNode(LoongArch::XVPERMI_Q, DL, VT, Op2, Op1, ++ DAG.getTargetConstant(48, DL, MVT::i32)), ++ 0); ++ } ++ ++ return SDValue(); ++} ++ ++static bool checkHalfUndef(ArrayRef Mask, int Lo, int Hi) { ++ ++ for (int i = Lo; i < Hi; i++) ++ if (Mask[i] != -1) ++ return false; ++ return true; ++} ++ ++// Lowering vectors with half undef data, ++// use EXTRACT_SUBVECTOR and INSERT_SUBVECTOR instead of VECTOR_SHUFFLE ++static SDValue lowerHalfUndef(const SDLoc &DL, MVT VT, SDValue Op1, SDValue Op2, ++ ArrayRef Mask, SelectionDAG &DAG) { ++ ++ int Num = VT.getVectorNumElements(); ++ int HalfNum = Num / 2; ++ MVT HalfVT = MVT::getVectorVT(VT.getVectorElementType(), HalfNum); ++ MVT VT1 = Op1.getSimpleValueType(); ++ SDValue Op; ++ ++ bool check1 = Op1->isUndef() && (!Op2->isUndef()); ++ bool check2 = Op2->isUndef() && (!Op1->isUndef()); ++ ++ if ((check1 || check2) && (VT1 == VT)) { ++ if (check1) { ++ Op = DAG.getNode(ISD::BITCAST, DL, MVT::v4i64, Op2); ++ } else if (check2) { ++ Op = DAG.getNode(ISD::BITCAST, DL, MVT::v4i64, Op1); ++ } ++ ++ if (VT == MVT::v32i8 && CheckRev(Mask)) { ++ SDValue Vector; ++ SDValue Rev[4]; ++ SDValue Ext[4]; ++ for (int i = 0; i < 4; i++) { ++ Ext[i] = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, MVT::i64, Op, ++ DAG.getConstant(i, DL, MVT::i32)); ++ Rev[i] = DAG.getNode(LoongArchISD::REVBD, DL, MVT::i64, Ext[i]); ++ } ++ ++ Vector = ++ DAG.getNode(ISD::INSERT_VECTOR_ELT, DL, MVT::v4i64, DAG.getUNDEF(VT), ++ Rev[3], DAG.getConstant(3, DL, MVT::i32)); ++ Vector = DAG.getNode(ISD::INSERT_VECTOR_ELT, DL, MVT::v4i64, Vector, ++ Rev[2], DAG.getConstant(2, DL, MVT::i32)); ++ Vector = DAG.getNode(ISD::INSERT_VECTOR_ELT, DL, MVT::v4i64, Vector, ++ Rev[1], DAG.getConstant(1, DL, MVT::i32)); ++ Vector = DAG.getNode(ISD::INSERT_VECTOR_ELT, DL, MVT::v4i64, Vector, ++ Rev[0], DAG.getConstant(0, DL, MVT::i32)); ++ ++ Vector = DAG.getNode(ISD::BITCAST, DL, MVT::v32i8, Vector); ++ ++ return Vector; ++ } ++ } ++ ++ if (checkHalfUndef(Mask, HalfNum, Num) && checkUndef(Mask, 0, HalfNum)) { ++ SDValue High = DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, HalfVT, Op1, ++ DAG.getConstant(HalfNum, DL, MVT::i64)); ++ return DAG.getNode(ISD::INSERT_SUBVECTOR, DL, VT, DAG.getUNDEF(VT), High, ++ DAG.getConstant(0, DL, MVT::i64)); ++ } ++ ++ if (checkHalfUndef(Mask, HalfNum, Num) && (VT == MVT::v8i32) && ++ (Mask[0] == 0) && (Mask[1] == 1) && (Mask[2] == (Num + 2)) && ++ (Mask[3] == (Num + 3))) { ++ ++ SDValue Val1 = ++ SDValue(DAG.getMachineNode(LoongArch::XVPERMI_Q, DL, VT, Op2, Op1, ++ DAG.getTargetConstant(32, DL, MVT::i32)), ++ 0); ++ ++ SDValue Val2 = ++ SDValue(DAG.getMachineNode(LoongArch::XVPERMI_D, DL, VT, Val1, ++ DAG.getTargetConstant(12, DL, MVT::i32)), ++ 0); ++ ++ SDValue Val3 = SDValue( ++ DAG.getMachineNode(LoongArch::XVPERMI_Q, DL, VT, Val2, DAG.getUNDEF(VT), ++ DAG.getTargetConstant(2, DL, MVT::i32)), ++ 0); ++ return Val3; ++ } ++ ++ if (checkHalfUndef(Mask, 0, HalfNum) && checkUndef(Mask, HalfNum, Num)) { ++ SDValue Low = DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, HalfVT, Op1, ++ DAG.getConstant(0, DL, MVT::i32)); ++ return DAG.getNode(ISD::INSERT_SUBVECTOR, DL, VT, DAG.getUNDEF(VT), Low, ++ DAG.getConstant(HalfNum, DL, MVT::i32)); ++ } ++ ++ if (checkHalfUndef(Mask, 0, HalfNum) && (VT == MVT::v8i32) && ++ (Mask[HalfNum] == HalfNum) && (Mask[HalfNum + 1] == (HalfNum + 1)) && ++ (Mask[HalfNum + 2] == (2 * Num - 2)) && ++ (Mask[HalfNum + 3] == (2 * Num - 1))) { ++ ++ SDValue Val1 = ++ SDValue(DAG.getMachineNode(LoongArch::XVPERMI_Q, DL, VT, Op2, Op1, ++ DAG.getTargetConstant(49, DL, MVT::i32)), ++ 0); ++ ++ SDValue Val2 = ++ SDValue(DAG.getMachineNode(LoongArch::XVPERMI_D, DL, VT, Val1, ++ DAG.getTargetConstant(12, DL, MVT::i32)), ++ 0); ++ ++ SDValue Val3 = SDValue( ++ DAG.getMachineNode(LoongArch::XVPERMI_Q, DL, VT, Val2, DAG.getUNDEF(VT), ++ DAG.getTargetConstant(32, DL, MVT::i32)), ++ 0); ++ return Val3; ++ } ++ ++ if ((VT == MVT::v8i32) || (VT == MVT::v4i64)) { ++ int def = 0; ++ int j = 0; ++ int ext[3]; ++ int ins[3]; ++ bool useOp1[3] = {true, true, true}; ++ bool checkdef = true; ++ ++ for (int i = 0; i < Num; i++) { ++ if (def > 2) { ++ checkdef = false; ++ break; ++ } ++ if (Mask[i] != -1) { ++ def++; ++ ins[j] = i; ++ if (Mask[i] >= Num) { ++ ext[j] = Mask[i] - Num; ++ useOp1[j] = false; ++ } else { ++ ext[j] = Mask[i]; ++ } ++ j++; ++ } ++ } ++ ++ if (checkdef) { ++ SDValue Vector = DAG.getUNDEF(VT); ++ EVT EltTy = VT.getVectorElementType(); ++ SDValue Ext[2]; ++ ++ if (check1 || check2) { ++ for (int i = 0; i < def; i++) { ++ if (check1) { ++ Ext[i] = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, EltTy, Op2, ++ DAG.getConstant(ext[i], DL, MVT::i32)); ++ Vector = DAG.getNode(ISD::INSERT_VECTOR_ELT, DL, VT, Vector, Ext[i], ++ DAG.getConstant(ins[i], DL, MVT::i32)); ++ } else if (check2) { ++ Ext[i] = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, EltTy, Op1, ++ DAG.getConstant(ext[i], DL, MVT::i32)); ++ Vector = DAG.getNode(ISD::INSERT_VECTOR_ELT, DL, VT, Vector, Ext[i], ++ DAG.getConstant(ins[i], DL, MVT::i32)); ++ } ++ } ++ return Vector; ++ } else { ++ for (int i = 0; i < def; i++) { ++ if (!useOp1[i]) { ++ Ext[i] = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, EltTy, Op2, ++ DAG.getConstant(ext[i], DL, MVT::i32)); ++ Vector = DAG.getNode(ISD::INSERT_VECTOR_ELT, DL, VT, Vector, Ext[i], ++ DAG.getConstant(ins[i], DL, MVT::i32)); ++ } else { ++ Ext[i] = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, EltTy, Op1, ++ DAG.getConstant(ext[i], DL, MVT::i32)); ++ Vector = DAG.getNode(ISD::INSERT_VECTOR_ELT, DL, VT, Vector, Ext[i], ++ DAG.getConstant(ins[i], DL, MVT::i32)); ++ } ++ } ++ return Vector; ++ } ++ } ++ } ++ ++ return SDValue(); ++} ++ ++static SDValue lowerHalfUndef_LSX(const SDLoc &DL, EVT ResTy, MVT VT, ++ SDValue Op1, SDValue Op2, ArrayRef Mask, ++ SelectionDAG &DAG) { ++ ++ MVT VT1 = Op1.getSimpleValueType(); ++ ++ bool check1 = Op1->isUndef() && (!Op2->isUndef()); ++ bool check2 = Op2->isUndef() && (!Op1->isUndef()); ++ ++ if ((check1 || check2) && (VT1 == VT)) { ++ SDValue Op; ++ ++ if (VT == MVT::v16i8 && CheckRev(Mask)) { ++ ++ if (check1) { ++ Op = DAG.getNode(ISD::BITCAST, DL, MVT::v2i64, Op2); ++ } else if (check2) { ++ Op = DAG.getNode(ISD::BITCAST, DL, MVT::v2i64, Op1); ++ } ++ ++ SDValue Vector; ++ SDValue Rev[2]; ++ SDValue Ext[2]; ++ for (int i = 0; i < 2; i++) { ++ Ext[i] = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, MVT::i64, Op, ++ DAG.getConstant(i, DL, MVT::i32)); ++ Rev[i] = DAG.getNode(LoongArchISD::REVBD, DL, MVT::i64, Ext[i]); ++ } ++ ++ Vector = ++ DAG.getNode(ISD::INSERT_VECTOR_ELT, DL, MVT::v2i64, DAG.getUNDEF(VT), ++ Rev[1], DAG.getConstant(1, DL, MVT::i32)); ++ Vector = DAG.getNode(ISD::INSERT_VECTOR_ELT, DL, MVT::v2i64, Vector, ++ Rev[0], DAG.getConstant(0, DL, MVT::i32)); ++ ++ Vector = DAG.getNode(ISD::BITCAST, DL, MVT::v16i8, Vector); ++ ++ return Vector; ++ } ++ } ++ ++ return SDValue(); ++} ++ ++// Use SDNode of LoongArchINSVE instead of ++// a series of EXTRACT_VECTOR_ELT and INSERT_VECTOR_ELT ++static SDValue lowerVECTOR_SHUFFLE_INSVE(const SDLoc &DL, MVT VT, EVT ResTy, ++ SDValue Op1, SDValue Op2, ++ ArrayRef Mask, ++ SelectionDAG &DAG) { ++ ++ int Num = VT.getVectorNumElements(); ++ if (ResTy == MVT::v16i16 || ResTy == MVT::v32i8) ++ return SDValue(); ++ ++ int CheckOne = 0; ++ int CheckOther = 0; ++ int Idx; ++ ++ for (int i = 0; i < Num; i++) { ++ if ((Mask[i] == i) || (Mask[i] == -1)) { ++ CheckOther++; ++ } else if (Mask[i] == Num) { ++ CheckOne++; ++ Idx = i; ++ } else ++ return SDValue(); ++ } ++ ++ if ((CheckOne != 1) || (CheckOther != (Num - 1))) ++ return SDValue(); ++ else { ++ return DAG.getNode(LoongArchISD::INSVE, DL, ResTy, Op1, Op2, ++ DAG.getConstant(Idx, DL, MVT::i32)); ++ } ++ ++ return SDValue(); ++} ++ ++static SDValue lowerVECTOR_SHUFFLE_XVPICKVE(const SDLoc &DL, MVT VT, EVT ResTy, ++ SDValue Op1, SDValue Op2, ++ ArrayRef Mask, ++ SelectionDAG &DAG) { ++ ++ int Num = VT.getVectorNumElements(); ++ if (ResTy == MVT::v16i16 || ResTy == MVT::v32i8 || ++ (!ISD::isBuildVectorAllZeros(Op1.getNode()))) ++ return SDValue(); ++ ++ bool CheckV = true; ++ ++ if ((Mask[0] < Num) || (Mask[0] > (2 * Num - 1))) ++ CheckV = false; ++ ++ for (int i = 1; i < Num; i++) { ++ if (Mask[i] != 0) { ++ CheckV = false; ++ break; ++ } ++ } ++ ++ if (!CheckV) ++ return SDValue(); ++ else { ++ return DAG.getNode(LoongArchISD::XVPICKVE, DL, ResTy, Op1, Op2, ++ DAG.getConstant(Mask[0] - Num, DL, MVT::i32)); ++ } ++ ++ return SDValue(); ++} ++ ++static SDValue lowerVECTOR_SHUFFLE_XVSHUF(const SDLoc &DL, MVT VT, EVT ResTy, ++ SDValue Op1, SDValue Op2, ++ ArrayRef Mask, ++ SelectionDAG &DAG) { ++ ++ if (VT == MVT::v4i64) { ++ int Num = VT.getVectorNumElements(); ++ ++ bool CheckV = true; ++ for (int i = 0; i < Num; i++) { ++ if (Mask[i] != (i * 2)) { ++ CheckV = false; ++ break; ++ } ++ } ++ ++ if (!CheckV) ++ return SDValue(); ++ else { ++ SDValue Res = DAG.getNode(LoongArchISD::XVSHUF4I, DL, ResTy, Op1, Op2, ++ DAG.getConstant(8, DL, MVT::i32)); ++ return DAG.getNode(LoongArchISD::XVPERMI, DL, ResTy, Res, ++ DAG.getConstant(0xD8, DL, MVT::i32)); ++ } ++ } else ++ return SDValue(); ++} ++ ++// Lower VECTOR_SHUFFLE into one of a number of instructions depending on the ++// indices in the shuffle. ++SDValue LoongArchTargetLowering::lowerVECTOR_SHUFFLE(SDValue Op, ++ SelectionDAG &DAG) const { ++ ShuffleVectorSDNode *Node = cast(Op); ++ EVT ResTy = Op->getValueType(0); ++ ArrayRef Mask = Node->getMask(); ++ SDValue Op1 = Op.getOperand(0); ++ SDValue Op2 = Op.getOperand(1); ++ MVT VT = Op.getSimpleValueType(); ++ SDLoc DL(Op); ++ ++ if (ResTy.is128BitVector()) { ++ ++ int ResTyNumElts = ResTy.getVectorNumElements(); ++ SmallVector Indices; ++ ++ for (int i = 0; i < ResTyNumElts; ++i) ++ Indices.push_back(Node->getMaskElt(i)); ++ ++ SDValue Result; ++ if (isVECTOR_SHUFFLE_VREPLVEI(Op, ResTy, Indices, DAG)) ++ return lowerVECTOR_SHUFFLE_VSHF(Op, ResTy, Indices, DAG); ++ if ((Result = lowerVECTOR_SHUFFLE_VPACKEV(Op, ResTy, Indices, DAG))) ++ return Result; ++ if ((Result = lowerVECTOR_SHUFFLE_VPACKOD(Op, ResTy, Indices, DAG))) ++ return Result; ++ if ((Result = lowerVECTOR_SHUFFLE_VILVH(Op, ResTy, Indices, DAG))) ++ return Result; ++ if ((Result = lowerVECTOR_SHUFFLE_VILVL(Op, ResTy, Indices, DAG))) ++ return Result; ++ if ((Result = lowerVECTOR_SHUFFLE_VPICKEV(Op, ResTy, Indices, DAG))) ++ return Result; ++ if ((Result = lowerVECTOR_SHUFFLE_VPICKOD(Op, ResTy, Indices, DAG))) ++ return Result; ++ if ((Result = lowerVECTOR_SHUFFLE_SHF(Op, ResTy, Indices, DAG))) ++ return Result; ++ if ((Result = lowerHalfUndef_LSX(DL, ResTy, VT, Op1, Op2, Mask, DAG))) ++ return Result; ++ return lowerVECTOR_SHUFFLE_VSHF(Op, ResTy, Indices, DAG); ++ ++ } else if (ResTy.is256BitVector()) { ++ int ResTyNumElts = ResTy.getVectorNumElements(); ++ SmallVector Indices; ++ ++ for (int i = 0; i < ResTyNumElts; ++i) ++ Indices.push_back(Node->getMaskElt(i)); ++ ++ SDValue Result; ++ if ((Result = lowerHalfHalf(DL, VT, Op1, Op2, Mask, DAG))) ++ return Result; ++ if ((Result = lowerHalfUndef(DL, VT, Op1, Op2, Mask, DAG))) ++ return Result; ++ if (isVECTOR_SHUFFLE_XVREPLVEI(Op, ResTy, Indices, DAG)) ++ return SDValue(); ++ if ((Result = lowerVECTOR_SHUFFLE_XVPACKEV(Op, ResTy, Indices, DAG))) ++ return Result; ++ if ((Result = lowerVECTOR_SHUFFLE_XVPACKOD(Op, ResTy, Indices, DAG))) ++ return Result; ++ if ((Result = lowerVECTOR_SHUFFLE_XVILVH(Op, ResTy, Indices, DAG))) ++ return Result; ++ if ((Result = lowerVECTOR_SHUFFLE_XVILVL(Op, ResTy, Indices, DAG))) ++ return Result; ++ if ((Result = lowerVECTOR_SHUFFLE_XVPICKEV(Op, ResTy, Indices, DAG))) ++ return Result; ++ if ((Result = lowerVECTOR_SHUFFLE_XVPICKOD(Op, ResTy, Indices, DAG))) ++ return Result; ++ if ((Result = lowerVECTOR_SHUFFLE_XSHF(Op, ResTy, Indices, DAG))) ++ return Result; ++ if ((Result = ++ lowerVECTOR_SHUFFLE_INSVE(DL, VT, ResTy, Op1, Op2, Mask, DAG))) ++ return Result; ++ if ((Result = ++ lowerVECTOR_SHUFFLE_XVPICKVE(DL, VT, ResTy, Op1, Op2, Mask, DAG))) ++ return Result; ++ if ((Result = ++ lowerVECTOR_SHUFFLE_XVSHUF(DL, VT, ResTy, Op1, Op2, Mask, DAG))) ++ return Result; ++ } ++ ++ return SDValue(); ++} ++ ++SDValue LoongArchTargetLowering::lowerEH_DWARF_CFA(SDValue Op, ++ SelectionDAG &DAG) const { ++ ++ // Return a fixed StackObject with offset 0 which points to the old stack ++ // pointer. ++ MachineFrameInfo &MFI = DAG.getMachineFunction().getFrameInfo(); ++ EVT ValTy = Op->getValueType(0); ++ int FI = MFI.CreateFixedObject(Op.getValueSizeInBits() / 8, 0, false); ++ return DAG.getFrameIndex(FI, ValTy); ++} ++ ++// Check whether the tail call optimization conditions are met ++bool LoongArchTargetLowering::isEligibleForTailCallOptimization( ++ const CCState &CCInfo, CallLoweringInfo &CLI, MachineFunction &MF, ++ unsigned NextStackOffset, const LoongArchFunctionInfo &FI) const { ++ ++ auto CalleeCC = CLI.CallConv; ++ auto IsVarArg = CLI.IsVarArg; ++ auto &Outs = CLI.Outs; ++ auto &Caller = MF.getFunction(); ++ auto CallerCC = Caller.getCallingConv(); ++ ++ if (Caller.getFnAttribute("disable-tail-calls").getValueAsString() == "true") ++ return false; ++ ++ if (Caller.hasFnAttribute("interrupt")) ++ return false; ++ ++ if (IsVarArg) ++ return false; ++ ++ if (getTargetMachine().getCodeModel() == CodeModel::Large) ++ return false; ++ ++ if (getTargetMachine().getRelocationModel() == Reloc::Static) ++ return false; ++ ++ // Do not tail call optimize if the stack is used to pass parameters. ++ if (CCInfo.getNextStackOffset() != 0) ++ return false; ++ ++ // Do not tail call optimize functions with byval parameters. ++ for (auto &Arg : Outs) ++ if (Arg.Flags.isByVal()) ++ return false; ++ ++ // Do not tail call optimize if either caller or callee uses structret ++ // semantics. ++ auto IsCallerStructRet = Caller.hasStructRetAttr(); ++ auto IsCalleeStructRet = Outs.empty() ? false : Outs[0].Flags.isSRet(); ++ if (IsCallerStructRet || IsCalleeStructRet) ++ return false; ++ ++ // The callee has to preserve all registers the caller needs to preserve. ++ const LoongArchRegisterInfo *TRI = Subtarget.getRegisterInfo(); ++ const uint32_t *CallerPreserved = TRI->getCallPreservedMask(MF, CallerCC); ++ if (CalleeCC != CallerCC) { ++ const uint32_t *CalleePreserved = TRI->getCallPreservedMask(MF, CalleeCC); ++ if (!TRI->regmaskSubsetEqual(CallerPreserved, CalleePreserved)) ++ return false; ++ } ++ ++ // Return false if either the callee or caller has a byval argument. ++ if (CCInfo.getInRegsParamsCount() > 0 || FI.hasByvalArg()) ++ return false; ++ ++ // Return true if the callee's argument area is no larger than the ++ // caller's. ++ return NextStackOffset <= FI.getIncomingArgSize(); ++} ++ ++//===----------------------------------------------------------------------===// ++// Calling Convention Implementation ++//===----------------------------------------------------------------------===// ++ ++//===----------------------------------------------------------------------===// ++// TODO: Implement a generic logic using tblgen that can support this. ++// LoongArch LP32 ABI rules: ++// --- ++// i32 - Passed in A0, A1, A2, A3 and stack ++// f32 - Only passed in f32 registers if no int reg has been used yet to hold ++// an argument. Otherwise, passed in A1, A2, A3 and stack. ++// f64 - Only passed in two aliased f32 registers if no int reg has been used ++// yet to hold an argument. Otherwise, use A2, A3 and stack. If A1 is ++// not used, it must be shadowed. If only A3 is available, shadow it and ++// go to stack. ++// vXiX - Received as scalarized i32s, passed in A0 - A3 and the stack. ++// vXf32 - Passed in either a pair of registers {A0, A1}, {A2, A3} or {A0 - A3} ++// with the remainder spilled to the stack. ++// vXf64 - Passed in either {A0, A1, A2, A3} or {A2, A3} and in both cases ++// spilling the remainder to the stack. ++// ++// For vararg functions, all arguments are passed in A0, A1, A2, A3 and stack. ++//===----------------------------------------------------------------------===// ++ ++static bool CC_LoongArchLP32(unsigned ValNo, MVT ValVT, MVT LocVT, ++ CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, ++ CCState &State, ArrayRef F64Regs) { ++ static const MCPhysReg IntRegs[] = { LoongArch::A0, LoongArch::A1, LoongArch::A2, LoongArch::A3 }; ++ ++ const LoongArchCCState * LoongArchState = static_cast(&State); ++ ++ static const MCPhysReg F32Regs[] = { LoongArch::F12, LoongArch::F14 }; ++ ++ static const MCPhysReg FloatVectorIntRegs[] = { LoongArch::A0, LoongArch::A2 }; ++ ++ // Do not process byval args here. ++ if (ArgFlags.isByVal()) ++ return true; ++ ++ ++ // Promote i8 and i16 ++ if (LocVT == MVT::i8 || LocVT == MVT::i16) { ++ LocVT = MVT::i32; ++ if (ArgFlags.isSExt()) ++ LocInfo = CCValAssign::SExt; ++ else if (ArgFlags.isZExt()) ++ LocInfo = CCValAssign::ZExt; ++ else ++ LocInfo = CCValAssign::AExt; ++ } ++ ++ unsigned Reg; ++ ++ // f32 and f64 are allocated in A0, A1, A2, A3 when either of the following ++ // is true: function is vararg, argument is 3rd or higher, there is previous ++ // argument which is not f32 or f64. ++ bool AllocateFloatsInIntReg = State.isVarArg() || ValNo > 1 || ++ State.getFirstUnallocated(F32Regs) != ValNo; ++ unsigned OrigAlign = ArgFlags.getOrigAlign(); ++ bool isI64 = (ValVT == MVT::i32 && OrigAlign == 8); ++ bool isVectorFloat = LoongArchState->WasOriginalArgVectorFloat(ValNo); ++ ++ // The LoongArch vector ABI for floats passes them in a pair of registers ++ if (ValVT == MVT::i32 && isVectorFloat) { ++ // This is the start of an vector that was scalarized into an unknown number ++ // of components. It doesn't matter how many there are. Allocate one of the ++ // notional 8 byte aligned registers which map onto the argument stack, and ++ // shadow the register lost to alignment requirements. ++ if (ArgFlags.isSplit()) { ++ Reg = State.AllocateReg(FloatVectorIntRegs); ++ if (Reg == LoongArch::A2) ++ State.AllocateReg(LoongArch::A1); ++ else if (Reg == 0) ++ State.AllocateReg(LoongArch::A3); ++ } else { ++ // If we're an intermediate component of the split, we can just attempt to ++ // allocate a register directly. ++ Reg = State.AllocateReg(IntRegs); ++ } ++ } else if (ValVT == MVT::i32 || (ValVT == MVT::f32 && AllocateFloatsInIntReg)) { ++ Reg = State.AllocateReg(IntRegs); ++ // If this is the first part of an i64 arg, ++ // the allocated register must be either A0 or A2. ++ if (isI64 && (Reg == LoongArch::A1 || Reg == LoongArch::A3)) ++ Reg = State.AllocateReg(IntRegs); ++ LocVT = MVT::i32; ++ } else if (ValVT == MVT::f64 && AllocateFloatsInIntReg) { ++ // Allocate int register and shadow next int register. If first ++ // available register is LoongArch::A1 or LoongArch::A3, shadow it too. ++ Reg = State.AllocateReg(IntRegs); ++ if (Reg == LoongArch::A1 || Reg == LoongArch::A3) ++ Reg = State.AllocateReg(IntRegs); ++ State.AllocateReg(IntRegs); ++ LocVT = MVT::i32; ++ } else if (ValVT.isFloatingPoint() && !AllocateFloatsInIntReg) { ++ // we are guaranteed to find an available float register ++ if (ValVT == MVT::f32) { ++ Reg = State.AllocateReg(F32Regs); ++ // Shadow int register ++ State.AllocateReg(IntRegs); ++ } else { ++ Reg = State.AllocateReg(F64Regs); ++ // Shadow int registers ++ unsigned Reg2 = State.AllocateReg(IntRegs); ++ if (Reg2 == LoongArch::A1 || Reg2 == LoongArch::A3) ++ State.AllocateReg(IntRegs); ++ State.AllocateReg(IntRegs); ++ } ++ } else ++ llvm_unreachable("Cannot handle this ValVT."); ++ ++ if (!Reg) { ++ unsigned Offset = State.AllocateStack(ValVT.getStoreSize(), OrigAlign); ++ State.addLoc(CCValAssign::getMem(ValNo, ValVT, Offset, LocVT, LocInfo)); ++ } else ++ State.addLoc(CCValAssign::getReg(ValNo, ValVT, Reg, LocVT, LocInfo)); ++ ++ return false; ++} ++ ++static bool CC_LoongArchLP32_FP32(unsigned ValNo, MVT ValVT, ++ MVT LocVT, CCValAssign::LocInfo LocInfo, ++ ISD::ArgFlagsTy ArgFlags, CCState &State) { ++ static const MCPhysReg F64Regs[] = {LoongArch::F0_64, LoongArch::F1_64, LoongArch::F2_64, \ ++ LoongArch::F3_64, LoongArch::F4_64, LoongArch::F5_64, \ ++ LoongArch::F6_64, LoongArch::F7_64 }; ++ ++ return CC_LoongArchLP32(ValNo, ValVT, LocVT, LocInfo, ArgFlags, State, F64Regs); ++} ++ ++static bool CC_LoongArchLP32_FP64(unsigned ValNo, MVT ValVT, ++ MVT LocVT, CCValAssign::LocInfo LocInfo, ++ ISD::ArgFlagsTy ArgFlags, CCState &State) { ++ static const MCPhysReg F64Regs[] = {LoongArch::F0_64, LoongArch::F1_64, LoongArch::F2_64, \ ++ LoongArch::F3_64, LoongArch::F4_64, LoongArch::F5_64, \ ++ LoongArch::F6_64, LoongArch::F7_64 }; ++ ++ return CC_LoongArchLP32(ValNo, ValVT, LocVT, LocInfo, ArgFlags, State, F64Regs); ++} ++ ++static bool CC_LoongArch_F128(unsigned ValNo, MVT ValVT, ++ MVT LocVT, CCValAssign::LocInfo LocInfo, ++ ISD::ArgFlagsTy ArgFlags, CCState &State) LLVM_ATTRIBUTE_UNUSED; ++ ++static bool CC_LoongArch_F128(unsigned ValNo, MVT ValVT, ++ MVT LocVT, CCValAssign::LocInfo LocInfo, ++ ISD::ArgFlagsTy ArgFlags, CCState &State) { ++ ++ static const MCPhysReg ArgRegs[8] = { ++ LoongArch::A0_64, LoongArch::A1_64, LoongArch::A2_64, LoongArch::A3_64, ++ LoongArch::A4_64, LoongArch::A5_64, LoongArch::A6_64, LoongArch::A7_64}; ++ ++ unsigned Idx = State.getFirstUnallocated(ArgRegs); ++ // Skip 'odd' register if necessary. ++ if (!ArgFlags.isSplitEnd() && Idx != array_lengthof(ArgRegs) && Idx % 2 == 1) ++ State.AllocateReg(ArgRegs); ++ return true; ++} ++ ++static bool CC_LoongArchLP32(unsigned ValNo, MVT ValVT, MVT LocVT, ++ CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, ++ CCState &State) LLVM_ATTRIBUTE_UNUSED; ++ ++#include "LoongArchGenCallingConv.inc" ++ ++ CCAssignFn *LoongArchTargetLowering::CCAssignFnForCall() const{ ++ return CC_LoongArch; ++ } ++ ++ CCAssignFn *LoongArchTargetLowering::CCAssignFnForReturn() const{ ++ return RetCC_LoongArch; ++ } ++ ++//===----------------------------------------------------------------------===// ++// Call Calling Convention Implementation ++//===----------------------------------------------------------------------===// ++SDValue LoongArchTargetLowering::passArgOnStack(SDValue StackPtr, unsigned Offset, ++ SDValue Chain, SDValue Arg, ++ const SDLoc &DL, bool IsTailCall, ++ SelectionDAG &DAG) const { ++ if (!IsTailCall) { ++ SDValue PtrOff = ++ DAG.getNode(ISD::ADD, DL, getPointerTy(DAG.getDataLayout()), StackPtr, ++ DAG.getIntPtrConstant(Offset, DL)); ++ return DAG.getStore(Chain, DL, Arg, PtrOff, MachinePointerInfo()); ++ } ++ ++ MachineFrameInfo &MFI = DAG.getMachineFunction().getFrameInfo(); ++ int FI = MFI.CreateFixedObject(Arg.getValueSizeInBits() / 8, Offset, false); ++ SDValue FIN = DAG.getFrameIndex(FI, getPointerTy(DAG.getDataLayout())); ++ return DAG.getStore(Chain, DL, Arg, FIN, MachinePointerInfo(), ++ /* Alignment = */ 0, MachineMemOperand::MOVolatile); ++} ++ ++void LoongArchTargetLowering::getOpndList( ++ SmallVectorImpl &Ops, ++ std::deque> &RegsToPass, bool IsPICCall, ++ bool GlobalOrExternal, bool IsCallReloc, CallLoweringInfo &CLI, ++ SDValue Callee, SDValue Chain, bool IsTailCall) const { ++ // Build a sequence of copy-to-reg nodes chained together with token ++ // chain and flag operands which copy the outgoing args into registers. ++ // The InFlag in necessary since all emitted instructions must be ++ // stuck together. ++ SDValue InFlag; ++ ++ Ops.push_back(Callee); ++ ++ for (unsigned i = 0, e = RegsToPass.size(); i != e; ++i) { ++ Chain = CLI.DAG.getCopyToReg(Chain, CLI.DL, RegsToPass[i].first, ++ RegsToPass[i].second, InFlag); ++ InFlag = Chain.getValue(1); ++ } ++ ++ // Add argument registers to the end of the list so that they are ++ // known live into the call. ++ for (unsigned i = 0, e = RegsToPass.size(); i != e; ++i) ++ Ops.push_back(CLI.DAG.getRegister(RegsToPass[i].first, ++ RegsToPass[i].second.getValueType())); ++ ++ if (!IsTailCall) { ++ // Add a register mask operand representing the call-preserved registers. ++ const TargetRegisterInfo *TRI = Subtarget.getRegisterInfo(); ++ const uint32_t *Mask = ++ TRI->getCallPreservedMask(CLI.DAG.getMachineFunction(), CLI.CallConv); ++ assert(Mask && "Missing call preserved mask for calling convention"); ++ Ops.push_back(CLI.DAG.getRegisterMask(Mask)); ++ } ++ ++ if (InFlag.getNode()) ++ Ops.push_back(InFlag); ++} ++ ++void LoongArchTargetLowering::AdjustInstrPostInstrSelection(MachineInstr &MI, ++ SDNode *Node) const { ++ switch (MI.getOpcode()) { ++ default: ++ return; ++ } ++} ++ ++/// LowerCall - functions arguments are copied from virtual regs to ++/// (physical regs)/(stack frame), CALLSEQ_START and CALLSEQ_END are emitted. ++SDValue ++LoongArchTargetLowering::LowerCall(TargetLowering::CallLoweringInfo &CLI, ++ SmallVectorImpl &InVals) const { ++ SelectionDAG &DAG = CLI.DAG; ++ SDLoc DL = CLI.DL; ++ SmallVectorImpl &Outs = CLI.Outs; ++ SmallVectorImpl &OutVals = CLI.OutVals; ++ SmallVectorImpl &Ins = CLI.Ins; ++ SDValue Chain = CLI.Chain; ++ SDValue Callee = CLI.Callee; ++ bool &IsTailCall = CLI.IsTailCall; ++ CallingConv::ID CallConv = CLI.CallConv; ++ bool IsVarArg = CLI.IsVarArg; ++ ++ MachineFunction &MF = DAG.getMachineFunction(); ++ MachineFrameInfo &MFI = MF.getFrameInfo(); ++ const TargetFrameLowering *TFL = Subtarget.getFrameLowering(); ++ bool IsPIC = isPositionIndependent(); ++ ++ // Analyze operands of the call, assigning locations to each operand. ++ SmallVector ArgLocs; ++ LoongArchCCState CCInfo( ++ CallConv, IsVarArg, DAG.getMachineFunction(), ArgLocs, *DAG.getContext(), ++ LoongArchCCState::getSpecialCallingConvForCallee(Callee.getNode(), Subtarget)); ++ ++ const ExternalSymbolSDNode *ES = ++ dyn_cast_or_null(Callee.getNode()); ++ ++ // There is one case where CALLSEQ_START..CALLSEQ_END can be nested, which ++ // is during the lowering of a call with a byval argument which produces ++ // a call to memcpy. For the LP32 case, this causes the caller to allocate ++ // stack space for the reserved argument area for the callee, then recursively ++ // again for the memcpy call. In the NEWABI case, this doesn't occur as those ++ // ABIs mandate that the callee allocates the reserved argument area. We do ++ // still produce nested CALLSEQ_START..CALLSEQ_END with zero space though. ++ // ++ // If the callee has a byval argument and memcpy is used, we are mandated ++ // to already have produced a reserved argument area for the callee for LP32. ++ // Therefore, the reserved argument area can be reused for both calls. ++ // ++ // Other cases of calling memcpy cannot have a chain with a CALLSEQ_START ++ // present, as we have yet to hook that node onto the chain. ++ // ++ // Hence, the CALLSEQ_START and CALLSEQ_END nodes can be eliminated in this ++ // case. GCC does a similar trick, in that wherever possible, it calculates ++ // the maximum out going argument area (including the reserved area), and ++ // preallocates the stack space on entrance to the caller. ++ // ++ // FIXME: We should do the same for efficiency and space. ++ ++ bool MemcpyInByVal = ES && ++ StringRef(ES->getSymbol()) == StringRef("memcpy") && ++ Chain.getOpcode() == ISD::CALLSEQ_START; ++ ++ CCInfo.AnalyzeCallOperands(Outs, CC_LoongArch, CLI.getArgs(), ++ ES ? ES->getSymbol() : nullptr); ++ ++ // Get a count of how many bytes are to be pushed on the stack. ++ unsigned NextStackOffset = CCInfo.getNextStackOffset(); ++ ++ // Check if it's really possible to do a tail call. Restrict it to functions ++ // that are part of this compilation unit. ++ if (IsTailCall) { ++ IsTailCall = isEligibleForTailCallOptimization( ++ CCInfo, CLI, MF, NextStackOffset, *MF.getInfo()); ++ if (GlobalAddressSDNode *G = dyn_cast(Callee)) { ++ if (G->getGlobal()->hasExternalWeakLinkage()) ++ IsTailCall = false; ++ } ++ } ++ if (!IsTailCall && CLI.CS && CLI.CS.isMustTailCall()) ++ report_fatal_error("failed to perform tail call elimination on a call " ++ "site marked musttail"); ++ ++ if (IsTailCall) ++ ++NumTailCalls; ++ ++ // Chain is the output chain of the last Load/Store or CopyToReg node. ++ // ByValChain is the output chain of the last Memcpy node created for copying ++ // byval arguments to the stack. ++ unsigned StackAlignment = TFL->getStackAlignment(); ++ NextStackOffset = alignTo(NextStackOffset, StackAlignment); ++ SDValue NextStackOffsetVal = DAG.getIntPtrConstant(NextStackOffset, DL, true); ++ ++ if (!(IsTailCall || MemcpyInByVal)) ++ Chain = DAG.getCALLSEQ_START(Chain, NextStackOffset, 0, DL); ++ ++ SDValue StackPtr = ++ DAG.getCopyFromReg(Chain, DL, ABI.IsLP64() ? LoongArch::SP_64 : LoongArch::SP, ++ getPointerTy(DAG.getDataLayout())); ++ ++ std::deque> RegsToPass; ++ SmallVector MemOpChains; ++ ++ CCInfo.rewindByValRegsInfo(); ++ ++ // Walk the register/memloc assignments, inserting copies/loads. ++ for (unsigned i = 0, e = ArgLocs.size(); i != e; ++i) { ++ SDValue Arg = OutVals[i]; ++ CCValAssign &VA = ArgLocs[i]; ++ MVT ValVT = VA.getValVT(), LocVT = VA.getLocVT(); ++ ISD::ArgFlagsTy Flags = Outs[i].Flags; ++ bool UseUpperBits = false; ++ ++ // ByVal Arg. ++ if (Flags.isByVal()) { ++ unsigned FirstByValReg, LastByValReg; ++ unsigned ByValIdx = CCInfo.getInRegsParamsProcessed(); ++ CCInfo.getInRegsParamInfo(ByValIdx, FirstByValReg, LastByValReg); ++ ++ assert(Flags.getByValSize() && ++ "ByVal args of size 0 should have been ignored by front-end."); ++ assert(ByValIdx < CCInfo.getInRegsParamsCount()); ++ assert(!IsTailCall && ++ "Do not tail-call optimize if there is a byval argument."); ++ passByValArg(Chain, DL, RegsToPass, MemOpChains, StackPtr, MFI, DAG, Arg, ++ FirstByValReg, LastByValReg, Flags, ++ VA); ++ CCInfo.nextInRegsParam(); ++ continue; ++ } ++ ++ // Promote the value if needed. ++ switch (VA.getLocInfo()) { ++ default: ++ llvm_unreachable("Unknown loc info!"); ++ case CCValAssign::Full: ++ if (VA.isRegLoc()) { ++ if ((ValVT == MVT::f32 && LocVT == MVT::i32) || ++ (ValVT == MVT::f64 && LocVT == MVT::i64) || ++ (ValVT == MVT::i64 && LocVT == MVT::f64)) ++ Arg = DAG.getNode(ISD::BITCAST, DL, LocVT, Arg); ++ } ++ break; ++ case CCValAssign::BCvt: ++ Arg = DAG.getNode(ISD::BITCAST, DL, LocVT, Arg); ++ break; ++ case CCValAssign::SExtUpper: ++ UseUpperBits = true; ++ LLVM_FALLTHROUGH; ++ case CCValAssign::SExt: ++ Arg = DAG.getNode(ISD::SIGN_EXTEND, DL, LocVT, Arg); ++ break; ++ case CCValAssign::ZExtUpper: ++ UseUpperBits = true; ++ LLVM_FALLTHROUGH; ++ case CCValAssign::ZExt: ++ Arg = DAG.getNode(ISD::ZERO_EXTEND, DL, LocVT, Arg); ++ break; ++ case CCValAssign::AExtUpper: ++ UseUpperBits = true; ++ LLVM_FALLTHROUGH; ++ case CCValAssign::AExt: ++ Arg = DAG.getNode(ISD::ANY_EXTEND, DL, LocVT, Arg); ++ break; ++ } ++ ++ if (UseUpperBits) { ++ unsigned ValSizeInBits = Outs[i].ArgVT.getSizeInBits(); ++ unsigned LocSizeInBits = VA.getLocVT().getSizeInBits(); ++ Arg = DAG.getNode( ++ ISD::SHL, DL, VA.getLocVT(), Arg, ++ DAG.getConstant(LocSizeInBits - ValSizeInBits, DL, VA.getLocVT())); ++ } ++ ++ // Arguments that can be passed on register must be kept at ++ // RegsToPass vector ++ if (VA.isRegLoc()) { ++ RegsToPass.push_back(std::make_pair(VA.getLocReg(), Arg)); ++ continue; ++ } ++ ++ // Register can't get to this point... ++ assert(VA.isMemLoc()); ++ ++ // emit ISD::STORE whichs stores the ++ // parameter value to a stack Location ++ MemOpChains.push_back(passArgOnStack(StackPtr, VA.getLocMemOffset(), ++ Chain, Arg, DL, IsTailCall, DAG)); ++ } ++ ++ // Transform all store nodes into one single node because all store ++ // nodes are independent of each other. ++ if (!MemOpChains.empty()) ++ Chain = DAG.getNode(ISD::TokenFactor, DL, MVT::Other, MemOpChains); ++ ++ // If the callee is a GlobalAddress/ExternalSymbol node (quite common, every ++ // direct call is) turn it into a TargetGlobalAddress/TargetExternalSymbol ++ // node so that legalize doesn't hack it. ++ ++ bool GlobalOrExternal = false, IsCallReloc = false; ++ ++ if (GlobalAddressSDNode *G = dyn_cast(Callee)) { ++ Callee = DAG.getTargetGlobalAddress(G->getGlobal(), DL, ++ getPointerTy(DAG.getDataLayout()), 0, ++ LoongArchII::MO_NO_FLAG); ++ GlobalOrExternal = true; ++ } ++ else if (ExternalSymbolSDNode *S = dyn_cast(Callee)) { ++ const char *Sym = S->getSymbol(); ++ Callee = DAG.getTargetExternalSymbol( ++ Sym, getPointerTy(DAG.getDataLayout()), LoongArchII::MO_NO_FLAG); ++ ++ GlobalOrExternal = true; ++ } ++ ++ SmallVector Ops(1, Chain); ++ SDVTList NodeTys = DAG.getVTList(MVT::Other, MVT::Glue); ++ ++ getOpndList(Ops, RegsToPass, IsPIC, GlobalOrExternal, IsCallReloc, CLI, ++ Callee, Chain, IsTailCall); ++ ++ if (IsTailCall) { ++ MF.getFrameInfo().setHasTailCall(); ++ return DAG.getNode(LoongArchISD::TailCall, DL, MVT::Other, Ops); ++ } ++ ++ Chain = DAG.getNode(LoongArchISD::JmpLink, DL, NodeTys, Ops); ++ SDValue InFlag = Chain.getValue(1); ++ ++ // Create the CALLSEQ_END node in the case of where it is not a call to ++ // memcpy. ++ if (!(MemcpyInByVal)) { ++ Chain = DAG.getCALLSEQ_END(Chain, NextStackOffsetVal, ++ DAG.getIntPtrConstant(0, DL, true), InFlag, DL); ++ InFlag = Chain.getValue(1); ++ } ++ ++ // Handle result values, copying them out of physregs into vregs that we ++ // return. ++ return LowerCallResult(Chain, InFlag, CallConv, IsVarArg, Ins, DL, DAG, ++ InVals, CLI); ++} ++ ++/// LowerCallResult - Lower the result values of a call into the ++/// appropriate copies out of appropriate physical registers. ++SDValue LoongArchTargetLowering::LowerCallResult( ++ SDValue Chain, SDValue InFlag, CallingConv::ID CallConv, bool IsVarArg, ++ const SmallVectorImpl &Ins, const SDLoc &DL, ++ SelectionDAG &DAG, SmallVectorImpl &InVals, ++ TargetLowering::CallLoweringInfo &CLI) const { ++ // Assign locations to each value returned by this call. ++ SmallVector RVLocs; ++ LoongArchCCState CCInfo(CallConv, IsVarArg, DAG.getMachineFunction(), RVLocs, ++ *DAG.getContext()); ++ ++ const ExternalSymbolSDNode *ES = ++ dyn_cast_or_null(CLI.Callee.getNode()); ++ CCInfo.AnalyzeCallResult(Ins, RetCC_LoongArch, CLI.RetTy, ++ ES ? ES->getSymbol() : nullptr); ++ ++ // Copy all of the result registers out of their specified physreg. ++ for (unsigned i = 0; i != RVLocs.size(); ++i) { ++ CCValAssign &VA = RVLocs[i]; ++ assert(VA.isRegLoc() && "Can only return in registers!"); ++ ++ SDValue Val = DAG.getCopyFromReg(Chain, DL, RVLocs[i].getLocReg(), ++ RVLocs[i].getLocVT(), InFlag); ++ Chain = Val.getValue(1); ++ InFlag = Val.getValue(2); ++ ++ if (VA.isUpperBitsInLoc()) { ++ unsigned ValSizeInBits = Ins[i].ArgVT.getSizeInBits(); ++ unsigned LocSizeInBits = VA.getLocVT().getSizeInBits(); ++ unsigned Shift = ++ VA.getLocInfo() == CCValAssign::ZExtUpper ? ISD::SRL : ISD::SRA; ++ Val = DAG.getNode( ++ Shift, DL, VA.getLocVT(), Val, ++ DAG.getConstant(LocSizeInBits - ValSizeInBits, DL, VA.getLocVT())); ++ } ++ ++ switch (VA.getLocInfo()) { ++ default: ++ llvm_unreachable("Unknown loc info!"); ++ case CCValAssign::Full: ++ break; ++ case CCValAssign::BCvt: ++ Val = DAG.getNode(ISD::BITCAST, DL, VA.getValVT(), Val); ++ break; ++ case CCValAssign::AExt: ++ case CCValAssign::AExtUpper: ++ Val = DAG.getNode(ISD::TRUNCATE, DL, VA.getValVT(), Val); ++ break; ++ case CCValAssign::ZExt: ++ case CCValAssign::ZExtUpper: ++ Val = DAG.getNode(ISD::AssertZext, DL, VA.getLocVT(), Val, ++ DAG.getValueType(VA.getValVT())); ++ Val = DAG.getNode(ISD::TRUNCATE, DL, VA.getValVT(), Val); ++ break; ++ case CCValAssign::SExt: ++ case CCValAssign::SExtUpper: ++ Val = DAG.getNode(ISD::AssertSext, DL, VA.getLocVT(), Val, ++ DAG.getValueType(VA.getValVT())); ++ Val = DAG.getNode(ISD::TRUNCATE, DL, VA.getValVT(), Val); ++ break; ++ } ++ ++ InVals.push_back(Val); ++ } ++ ++ return Chain; ++} ++ ++static SDValue UnpackFromArgumentSlot(SDValue Val, const CCValAssign &VA, ++ EVT ArgVT, const SDLoc &DL, ++ SelectionDAG &DAG) { ++ MVT LocVT = VA.getLocVT(); ++ EVT ValVT = VA.getValVT(); ++ ++ // Shift into the upper bits if necessary. ++ switch (VA.getLocInfo()) { ++ default: ++ break; ++ case CCValAssign::AExtUpper: ++ case CCValAssign::SExtUpper: ++ case CCValAssign::ZExtUpper: { ++ unsigned ValSizeInBits = ArgVT.getSizeInBits(); ++ unsigned LocSizeInBits = VA.getLocVT().getSizeInBits(); ++ unsigned Opcode = ++ VA.getLocInfo() == CCValAssign::ZExtUpper ? ISD::SRL : ISD::SRA; ++ Val = DAG.getNode( ++ Opcode, DL, VA.getLocVT(), Val, ++ DAG.getConstant(LocSizeInBits - ValSizeInBits, DL, VA.getLocVT())); ++ break; ++ } ++ } ++ ++ // If this is an value smaller than the argument slot size (32-bit for LP32, ++ // 64-bit for LPX32/LP64), it has been promoted in some way to the argument slot ++ // size. Extract the value and insert any appropriate assertions regarding ++ // sign/zero extension. ++ switch (VA.getLocInfo()) { ++ default: ++ llvm_unreachable("Unknown loc info!"); ++ case CCValAssign::Full: ++ break; ++ case CCValAssign::AExtUpper: ++ case CCValAssign::AExt: ++ Val = DAG.getNode(ISD::TRUNCATE, DL, ValVT, Val); ++ break; ++ case CCValAssign::SExtUpper: ++ case CCValAssign::SExt: { ++ if ((ArgVT == MVT::i1) || (ArgVT == MVT::i8) || (ArgVT == MVT::i16)) { ++ SDValue SubReg = DAG.getTargetConstant(LoongArch::sub_32, DL, MVT::i32); ++ Val = SDValue(DAG.getMachineNode(TargetOpcode::EXTRACT_SUBREG, DL, ValVT, ++ Val, SubReg), ++ 0); ++ } else { ++ Val = ++ DAG.getNode(ISD::AssertSext, DL, LocVT, Val, DAG.getValueType(ValVT)); ++ Val = DAG.getNode(ISD::TRUNCATE, DL, ValVT, Val); ++ } ++ break; ++ } ++ case CCValAssign::ZExtUpper: ++ case CCValAssign::ZExt: ++ Val = DAG.getNode(ISD::AssertZext, DL, LocVT, Val, DAG.getValueType(ValVT)); ++ Val = DAG.getNode(ISD::TRUNCATE, DL, ValVT, Val); ++ break; ++ case CCValAssign::BCvt: ++ Val = DAG.getNode(ISD::BITCAST, DL, ValVT, Val); ++ break; ++ } ++ ++ return Val; ++} ++ ++//===----------------------------------------------------------------------===// ++// Formal Arguments Calling Convention Implementation ++//===----------------------------------------------------------------------===// ++/// LowerFormalArguments - transform physical registers into virtual registers ++/// and generate load operations for arguments places on the stack. ++SDValue LoongArchTargetLowering::LowerFormalArguments( ++ SDValue Chain, CallingConv::ID CallConv, bool IsVarArg, ++ const SmallVectorImpl &Ins, const SDLoc &DL, ++ SelectionDAG &DAG, SmallVectorImpl &InVals) const { ++ MachineFunction &MF = DAG.getMachineFunction(); ++ MachineFrameInfo &MFI = MF.getFrameInfo(); ++ LoongArchFunctionInfo *LoongArchFI = MF.getInfo(); ++ ++ LoongArchFI->setVarArgsFrameIndex(0); ++ ++ // Used with vargs to acumulate store chains. ++ std::vector OutChains; ++ ++ // Assign locations to all of the incoming arguments. ++ SmallVector ArgLocs; ++ LoongArchCCState CCInfo(CallConv, IsVarArg, DAG.getMachineFunction(), ArgLocs, ++ *DAG.getContext()); ++ const Function &Func = DAG.getMachineFunction().getFunction(); ++ Function::const_arg_iterator FuncArg = Func.arg_begin(); ++ ++ CCInfo.AnalyzeFormalArguments(Ins, CC_LoongArch_FixedArg); ++ LoongArchFI->setFormalArgInfo(CCInfo.getNextStackOffset(), ++ CCInfo.getInRegsParamsCount() > 0); ++ ++ unsigned CurArgIdx = 0; ++ CCInfo.rewindByValRegsInfo(); ++ ++ for (unsigned i = 0, e = ArgLocs.size(); i != e; ++i) { ++ CCValAssign &VA = ArgLocs[i]; ++ if (Ins[i].isOrigArg()) { ++ std::advance(FuncArg, Ins[i].getOrigArgIndex() - CurArgIdx); ++ CurArgIdx = Ins[i].getOrigArgIndex(); ++ } ++ EVT ValVT = VA.getValVT(); ++ ISD::ArgFlagsTy Flags = Ins[i].Flags; ++ bool IsRegLoc = VA.isRegLoc(); ++ ++ if (Flags.isByVal()) { ++ assert(Ins[i].isOrigArg() && "Byval arguments cannot be implicit"); ++ unsigned FirstByValReg, LastByValReg; ++ unsigned ByValIdx = CCInfo.getInRegsParamsProcessed(); ++ CCInfo.getInRegsParamInfo(ByValIdx, FirstByValReg, LastByValReg); ++ ++ assert(Flags.getByValSize() && ++ "ByVal args of size 0 should have been ignored by front-end."); ++ assert(ByValIdx < CCInfo.getInRegsParamsCount()); ++ copyByValRegs(Chain, DL, OutChains, DAG, Flags, InVals, &*FuncArg, ++ FirstByValReg, LastByValReg, VA, CCInfo); ++ CCInfo.nextInRegsParam(); ++ continue; ++ } ++ ++ // Arguments stored on registers ++ if (IsRegLoc) { ++ MVT RegVT = VA.getLocVT(); ++ unsigned ArgReg = VA.getLocReg(); ++ const TargetRegisterClass *RC = getRegClassFor(RegVT); ++ ++ // Transform the arguments stored on ++ // physical registers into virtual ones ++ unsigned Reg = addLiveIn(DAG.getMachineFunction(), ArgReg, RC); ++ SDValue ArgValue = DAG.getCopyFromReg(Chain, DL, Reg, RegVT); ++ ++ ArgValue = UnpackFromArgumentSlot(ArgValue, VA, Ins[i].ArgVT, DL, DAG); ++ ++ // Handle floating point arguments passed in integer registers and ++ // long double arguments passed in floating point registers. ++ if ((RegVT == MVT::i32 && ValVT == MVT::f32) || ++ (RegVT == MVT::i64 && ValVT == MVT::f64) || ++ (RegVT == MVT::f64 && ValVT == MVT::i64)) ++ ArgValue = DAG.getNode(ISD::BITCAST, DL, ValVT, ArgValue); ++ else if (ABI.IsLP32() && RegVT == MVT::i32 && ++ ValVT == MVT::f64) { ++ // TODO: lp32 ++ } ++ ++ InVals.push_back(ArgValue); ++ } else { // VA.isRegLoc() ++ MVT LocVT = VA.getLocVT(); ++ ++ if (ABI.IsLP32()) { ++ // We ought to be able to use LocVT directly but LP32 sets it to i32 ++ // when allocating floating point values to integer registers. ++ // This shouldn't influence how we load the value into registers unless ++ // we are targeting softfloat. ++ if (VA.getValVT().isFloatingPoint() && !Subtarget.useSoftFloat()) ++ LocVT = VA.getValVT(); ++ } ++ ++ // sanity check ++ assert(VA.isMemLoc()); ++ ++ // The stack pointer offset is relative to the caller stack frame. ++ int FI = MFI.CreateFixedObject(LocVT.getSizeInBits() / 8, ++ VA.getLocMemOffset(), true); ++ ++ // Create load nodes to retrieve arguments from the stack ++ SDValue FIN = DAG.getFrameIndex(FI, getPointerTy(DAG.getDataLayout())); ++ SDValue ArgValue = DAG.getLoad( ++ LocVT, DL, Chain, FIN, ++ MachinePointerInfo::getFixedStack(DAG.getMachineFunction(), FI)); ++ OutChains.push_back(ArgValue.getValue(1)); ++ ++ ArgValue = UnpackFromArgumentSlot(ArgValue, VA, Ins[i].ArgVT, DL, DAG); ++ ++ InVals.push_back(ArgValue); ++ } ++ } ++ ++ for (unsigned i = 0, e = ArgLocs.size(); i != e; ++i) { ++ // The loongarch ABIs for returning structs by value requires that we copy ++ // the sret argument into $v0 for the return. Save the argument into ++ // a virtual register so that we can access it from the return points. ++ if (Ins[i].Flags.isSRet()) { ++ unsigned Reg = LoongArchFI->getSRetReturnReg(); ++ if (!Reg) { ++ Reg = MF.getRegInfo().createVirtualRegister( ++ getRegClassFor(ABI.IsLP64() ? MVT::i64 : MVT::i32)); ++ LoongArchFI->setSRetReturnReg(Reg); ++ } ++ SDValue Copy = DAG.getCopyToReg(DAG.getEntryNode(), DL, Reg, InVals[i]); ++ Chain = DAG.getNode(ISD::TokenFactor, DL, MVT::Other, Copy, Chain); ++ break; ++ } ++ } ++ ++ if (IsVarArg) ++ writeVarArgRegs(OutChains, Chain, DL, DAG, CCInfo); ++ ++ // All stores are grouped in one node to allow the matching between ++ // the size of Ins and InVals. This only happens when on varg functions ++ if (!OutChains.empty()) { ++ OutChains.push_back(Chain); ++ Chain = DAG.getNode(ISD::TokenFactor, DL, MVT::Other, OutChains); ++ } ++ ++ return Chain; ++} ++ ++//===----------------------------------------------------------------------===// ++// Return Value Calling Convention Implementation ++//===----------------------------------------------------------------------===// ++ ++bool ++LoongArchTargetLowering::CanLowerReturn(CallingConv::ID CallConv, ++ MachineFunction &MF, bool IsVarArg, ++ const SmallVectorImpl &Outs, ++ LLVMContext &Context) const { ++ SmallVector RVLocs; ++ LoongArchCCState CCInfo(CallConv, IsVarArg, MF, RVLocs, Context); ++ return CCInfo.CheckReturn(Outs, RetCC_LoongArch); ++} ++ ++bool ++LoongArchTargetLowering::shouldSignExtendTypeInLibCall(EVT Type, bool IsSigned) const { ++ if ((ABI.IsLPX32() || ABI.IsLP64()) && Type == MVT::i32) ++ return true; ++ ++ return IsSigned; ++} ++ ++SDValue ++LoongArchTargetLowering::LowerReturn(SDValue Chain, CallingConv::ID CallConv, ++ bool IsVarArg, ++ const SmallVectorImpl &Outs, ++ const SmallVectorImpl &OutVals, ++ const SDLoc &DL, SelectionDAG &DAG) const { ++ // CCValAssign - represent the assignment of ++ // the return value to a location ++ SmallVector RVLocs; ++ MachineFunction &MF = DAG.getMachineFunction(); ++ ++ // CCState - Info about the registers and stack slot. ++ LoongArchCCState CCInfo(CallConv, IsVarArg, MF, RVLocs, *DAG.getContext()); ++ ++ // Analyze return values. ++ CCInfo.AnalyzeReturn(Outs, RetCC_LoongArch); ++ ++ SDValue Flag; ++ SmallVector RetOps(1, Chain); ++ ++ // Copy the result values into the output registers. ++ for (unsigned i = 0; i != RVLocs.size(); ++i) { ++ SDValue Val = OutVals[i]; ++ CCValAssign &VA = RVLocs[i]; ++ assert(VA.isRegLoc() && "Can only return in registers!"); ++ bool UseUpperBits = false; ++ ++ switch (VA.getLocInfo()) { ++ default: ++ llvm_unreachable("Unknown loc info!"); ++ case CCValAssign::Full: ++ break; ++ case CCValAssign::BCvt: ++ Val = DAG.getNode(ISD::BITCAST, DL, VA.getLocVT(), Val); ++ break; ++ case CCValAssign::AExtUpper: ++ UseUpperBits = true; ++ LLVM_FALLTHROUGH; ++ case CCValAssign::AExt: ++ Val = DAG.getNode(ISD::ANY_EXTEND, DL, VA.getLocVT(), Val); ++ break; ++ case CCValAssign::ZExtUpper: ++ UseUpperBits = true; ++ LLVM_FALLTHROUGH; ++ case CCValAssign::ZExt: ++ Val = DAG.getNode(ISD::ZERO_EXTEND, DL, VA.getLocVT(), Val); ++ break; ++ case CCValAssign::SExtUpper: ++ UseUpperBits = true; ++ LLVM_FALLTHROUGH; ++ case CCValAssign::SExt: ++ Val = DAG.getNode(ISD::SIGN_EXTEND, DL, VA.getLocVT(), Val); ++ break; ++ } ++ ++ if (UseUpperBits) { ++ unsigned ValSizeInBits = Outs[i].ArgVT.getSizeInBits(); ++ unsigned LocSizeInBits = VA.getLocVT().getSizeInBits(); ++ Val = DAG.getNode( ++ ISD::SHL, DL, VA.getLocVT(), Val, ++ DAG.getConstant(LocSizeInBits - ValSizeInBits, DL, VA.getLocVT())); ++ } ++ ++ Chain = DAG.getCopyToReg(Chain, DL, VA.getLocReg(), Val, Flag); ++ ++ // Guarantee that all emitted copies are stuck together with flags. ++ Flag = Chain.getValue(1); ++ RetOps.push_back(DAG.getRegister(VA.getLocReg(), VA.getLocVT())); ++ } ++ ++ // The loongarch ABIs for returning structs by value requires that we copy ++ // the sret argument into $v0 for the return. We saved the argument into ++ // a virtual register in the entry block, so now we copy the value out ++ // and into $v0. ++ if (MF.getFunction().hasStructRetAttr()) { ++ LoongArchFunctionInfo *LoongArchFI = MF.getInfo(); ++ unsigned Reg = LoongArchFI->getSRetReturnReg(); ++ ++ if (!Reg) ++ llvm_unreachable("sret virtual register not created in the entry block"); ++ SDValue Val = ++ DAG.getCopyFromReg(Chain, DL, Reg, getPointerTy(DAG.getDataLayout())); ++ unsigned A0 = ABI.IsLP64() ? LoongArch::A0_64 : LoongArch::A0; ++ ++ Chain = DAG.getCopyToReg(Chain, DL, A0, Val, Flag); ++ Flag = Chain.getValue(1); ++ RetOps.push_back(DAG.getRegister(A0, getPointerTy(DAG.getDataLayout()))); ++ } ++ ++ RetOps[0] = Chain; // Update chain. ++ ++ // Add the flag if we have it. ++ if (Flag.getNode()) ++ RetOps.push_back(Flag); ++ ++ // Standard return on LoongArch is a "jr $ra" ++ return DAG.getNode(LoongArchISD::Ret, DL, MVT::Other, RetOps); ++} ++ ++//===----------------------------------------------------------------------===// ++// LoongArch Inline Assembly Support ++//===----------------------------------------------------------------------===// ++ ++/// getConstraintType - Given a constraint letter, return the type of ++/// constraint it is for this target. ++LoongArchTargetLowering::ConstraintType ++LoongArchTargetLowering::getConstraintType(StringRef Constraint) const { ++ // LoongArch specific constraints ++ // GCC config/loongarch/constraints.md ++ // ++ // 'f': Floating Point register ++ // 'G': Floating-point 0 ++ // 'l': Signed 16-bit constant ++ // 'R': Memory address that can be used in a non-macro load or store ++ // "ZC" Memory address with 16-bit and 4 bytes aligned offset ++ // "ZB" Memory address with 0 offset ++ ++ if (Constraint.size() == 1) { ++ switch (Constraint[0]) { ++ default : break; ++ case 'f': ++ return C_RegisterClass; ++ case 'l': ++ case 'G': ++ return C_Other; ++ case 'R': ++ return C_Memory; ++ } ++ } ++ ++ if (Constraint == "ZC" || Constraint == "ZB") ++ return C_Memory; ++ ++ return TargetLowering::getConstraintType(Constraint); ++} ++ ++/// Examine constraint type and operand type and determine a weight value. ++/// This object must already have been set up with the operand type ++/// and the current alternative constraint selected. ++TargetLowering::ConstraintWeight ++LoongArchTargetLowering::getSingleConstraintMatchWeight( ++ AsmOperandInfo &info, const char *constraint) const { ++ ConstraintWeight weight = CW_Invalid; ++ Value *CallOperandVal = info.CallOperandVal; ++ // If we don't have a value, we can't do a match, ++ // but allow it at the lowest weight. ++ if (!CallOperandVal) ++ return CW_Default; ++ Type *type = CallOperandVal->getType(); ++ // Look at the constraint type. ++ switch (*constraint) { ++ default: ++ weight = TargetLowering::getSingleConstraintMatchWeight(info, constraint); ++ break; ++ case 'f': // FPU ++ if (Subtarget.hasLSX() && type->isVectorTy() && ++ type->getPrimitiveSizeInBits() == 128) ++ weight = CW_Register; ++ else if (Subtarget.hasLASX() && type->isVectorTy() && ++ type->getPrimitiveSizeInBits() == 256) ++ weight = CW_Register; ++ else if (type->isFloatTy()) ++ weight = CW_Register; ++ break; ++ case 'l': // signed 16 bit immediate ++ case 'I': // signed 12 bit immediate ++ case 'J': // integer zero ++ case 'G': // floating-point zero ++ case 'K': // unsigned 12 bit immediate ++ if (isa(CallOperandVal)) ++ weight = CW_Constant; ++ break; ++ case 'm': ++ case 'R': ++ weight = CW_Memory; ++ break; ++ } ++ return weight; ++} ++ ++/// This is a helper function to parse a physical register string and split it ++/// into non-numeric and numeric parts (Prefix and Reg). The first boolean flag ++/// that is returned indicates whether parsing was successful. The second flag ++/// is true if the numeric part exists. ++static std::pair parsePhysicalReg(StringRef C, StringRef &Prefix, ++ unsigned long long &Reg) { ++ if (C.empty() || C.front() != '{' || C.back() != '}') ++ return std::make_pair(false, false); ++ ++ // Search for the first numeric character. ++ StringRef::const_iterator I, B = C.begin() + 1, E = C.end() - 1; ++ I = std::find_if(B, E, isdigit); ++ ++ Prefix = StringRef(B, I - B); ++ ++ // The second flag is set to false if no numeric characters were found. ++ if (I == E) ++ return std::make_pair(true, false); ++ ++ // Parse the numeric characters. ++ return std::make_pair(!getAsUnsignedInteger(StringRef(I, E - I), 10, Reg), ++ true); ++} ++ ++EVT LoongArchTargetLowering::getTypeForExtReturn(LLVMContext &Context, EVT VT, ++ ISD::NodeType) const { ++ bool Cond = !Subtarget.isABI_LP32() && VT.getSizeInBits() == 32; ++ EVT MinVT = getRegisterType(Context, Cond ? MVT::i64 : MVT::i32); ++ return VT.bitsLT(MinVT) ? MinVT : VT; ++} ++ ++static const TargetRegisterClass *getRegisterClassForVT(MVT VT, bool Is64Bit) { ++ // Newer llvm versions (>= 12) do not require simple VTs for constraints and ++ // they use MVT::Other for constraints with complex VTs. For more details, ++ // please see https://reviews.llvm.org/D91710. ++ if (VT == MVT::Other || VT.getSizeInBits() <= 32) ++ return &LoongArch::GPR32RegClass; ++ if (VT.getSizeInBits() <= 64) ++ return Is64Bit ? &LoongArch::GPR64RegClass : &LoongArch::GPR32RegClass; ++ return nullptr; ++} ++ ++std::pair LoongArchTargetLowering:: ++parseRegForInlineAsmConstraint(StringRef C, MVT VT) const { ++ const TargetRegisterInfo *TRI = ++ Subtarget.getRegisterInfo(); ++ const TargetRegisterClass *RC; ++ StringRef Prefix; ++ unsigned long long Reg; ++ ++ std::pair R = parsePhysicalReg(C, Prefix, Reg); ++ ++ if (!R.first) ++ return std::make_pair(0U, nullptr); ++ ++ if (!R.second) ++ return std::make_pair(0U, nullptr); ++ ++ if (Prefix == "$f") { // Parse $f0-$f31. ++ // If the size of FP registers is 64-bit or Reg is an even number, select ++ // the 64-bit register class. Otherwise, select the 32-bit register class. ++ if (VT == MVT::Other) ++ VT = (Subtarget.isFP64bit() || !(Reg % 2)) ? MVT::f64 : MVT::f32; ++ ++ RC = getRegClassFor(VT); ++ } ++ else if (Prefix == "$vr") { // Parse $vr0-$vr31. ++ RC = getRegClassFor((VT == MVT::Other) ? MVT::v16i8 : VT); ++ } ++ else if (Prefix == "$xr") { // Parse $xr0-$xr31. ++ RC = getRegClassFor((VT == MVT::Other) ? MVT::v16i8 : VT); ++ } ++ else if (Prefix == "$fcc") // Parse $fcc0-$fcc7. ++ RC = TRI->getRegClass(LoongArch::FCFRRegClassID); ++ else { // Parse $r0-$r31. ++ assert(Prefix == "$r"); ++ if ((RC = getRegisterClassForVT(VT, Subtarget.is64Bit())) == nullptr) { ++ // This will generate an error message. ++ return std::make_pair(0U, nullptr); ++ } ++ } ++ ++ assert(Reg < RC->getNumRegs()); ++ ++ if (RC == &LoongArch::GPR64RegClass || RC == &LoongArch::GPR32RegClass) { ++ // Sync with the GPR32/GPR64 RegisterClass in LoongArchRegisterInfo.td ++ // that just like LoongArchAsmParser.cpp ++ switch (Reg) { ++ case 0: return std::make_pair(*(RC->begin() + 0), RC); // r0 ++ case 1: return std::make_pair(*(RC->begin() + 27), RC); // r1 ++ case 2: return std::make_pair(*(RC->begin() + 28), RC); // r2 ++ case 3: return std::make_pair(*(RC->begin() + 29), RC); // r3 ++ case 4: return std::make_pair(*(RC->begin() + 1), RC); // r4 ++ case 5: return std::make_pair(*(RC->begin() + 2), RC); // r5 ++ case 6: return std::make_pair(*(RC->begin() + 3), RC); // r6 ++ case 7: return std::make_pair(*(RC->begin() + 4), RC); // r7 ++ case 8: return std::make_pair(*(RC->begin() + 5), RC); // r8 ++ case 9: return std::make_pair(*(RC->begin() + 6), RC); // r9 ++ case 10: return std::make_pair(*(RC->begin() + 7), RC); // r10 ++ case 11: return std::make_pair(*(RC->begin() + 8), RC); // r11 ++ case 12: return std::make_pair(*(RC->begin() + 9), RC); // r12 ++ case 13: return std::make_pair(*(RC->begin() + 10), RC); // r13 ++ case 14: return std::make_pair(*(RC->begin() + 11), RC); // r14 ++ case 15: return std::make_pair(*(RC->begin() + 12), RC); // r15 ++ case 16: return std::make_pair(*(RC->begin() + 13), RC); // r16 ++ case 17: return std::make_pair(*(RC->begin() + 14), RC); // r17 ++ case 18: return std::make_pair(*(RC->begin() + 15), RC); // r18 ++ case 19: return std::make_pair(*(RC->begin() + 16), RC); // r19 ++ case 20: return std::make_pair(*(RC->begin() + 17), RC); // r20 ++ case 21: return std::make_pair(*(RC->begin() + 30), RC); // r21 ++ case 22: return std::make_pair(*(RC->begin() + 31), RC); // r22 ++ case 23: return std::make_pair(*(RC->begin() + 18), RC); // r23 ++ case 24: return std::make_pair(*(RC->begin() + 19), RC); // r24 ++ case 25: return std::make_pair(*(RC->begin() + 20), RC); // r25 ++ case 26: return std::make_pair(*(RC->begin() + 21), RC); // r26 ++ case 27: return std::make_pair(*(RC->begin() + 22), RC); // r27 ++ case 28: return std::make_pair(*(RC->begin() + 23), RC); // r28 ++ case 29: return std::make_pair(*(RC->begin() + 24), RC); // r29 ++ case 30: return std::make_pair(*(RC->begin() + 25), RC); // r30 ++ case 31: return std::make_pair(*(RC->begin() + 26), RC); // r31 ++ } ++ } ++ return std::make_pair(*(RC->begin() + Reg), RC); ++} ++ ++/// Given a register class constraint, like 'r', if this corresponds directly ++/// to an LLVM register class, return a register of 0 and the register class ++/// pointer. ++std::pair ++LoongArchTargetLowering::getRegForInlineAsmConstraint(const TargetRegisterInfo *TRI, ++ StringRef Constraint, ++ MVT VT) const { ++ if (Constraint.size() == 1) { ++ switch (Constraint[0]) { ++ case 'r': ++ return std::make_pair(0U, getRegisterClassForVT(VT, Subtarget.is64Bit())); ++ case 'f': // FPU or LSX register ++ if (VT == MVT::v16i8) ++ return std::make_pair(0U, &LoongArch::LSX128BRegClass); ++ else if (VT == MVT::v8i16) ++ return std::make_pair(0U, &LoongArch::LSX128HRegClass); ++ else if (VT == MVT::v4i32 || VT == MVT::v4f32) ++ return std::make_pair(0U, &LoongArch::LSX128WRegClass); ++ else if (VT == MVT::v2i64 || VT == MVT::v2f64) ++ return std::make_pair(0U, &LoongArch::LSX128DRegClass); ++ else if (VT == MVT::v32i8) ++ return std::make_pair(0U, &LoongArch::LASX256BRegClass); ++ else if (VT == MVT::v16i16) ++ return std::make_pair(0U, &LoongArch::LASX256HRegClass); ++ else if (VT == MVT::v8i32 || VT == MVT::v8f32) ++ return std::make_pair(0U, &LoongArch::LASX256WRegClass); ++ else if (VT == MVT::v4i64 || VT == MVT::v4f64) ++ return std::make_pair(0U, &LoongArch::LASX256DRegClass); ++ else if (VT == MVT::f32) ++ return std::make_pair(0U, &LoongArch::FGR32RegClass); ++ else if (VT == MVT::f64) ++ return std::make_pair(0U, &LoongArch::FGR64RegClass); ++ break; ++ } ++ } ++ ++ std::pair R; ++ R = parseRegForInlineAsmConstraint(Constraint, VT); ++ ++ if (R.second) ++ return R; ++ ++ return TargetLowering::getRegForInlineAsmConstraint(TRI, Constraint, VT); ++} ++ ++/// LowerAsmOperandForConstraint - Lower the specified operand into the Ops ++/// vector. If it is invalid, don't add anything to Ops. ++void LoongArchTargetLowering::LowerAsmOperandForConstraint(SDValue Op, ++ std::string &Constraint, ++ std::vector&Ops, ++ SelectionDAG &DAG) const { ++ SDLoc DL(Op); ++ SDValue Result; ++ ++ // Only support length 1 constraints for now. ++ if (Constraint.length() > 1) return; ++ ++ char ConstraintLetter = Constraint[0]; ++ switch (ConstraintLetter) { ++ default: break; // This will fall through to the generic implementation ++ case 'l': // Signed 16 bit constant ++ // If this fails, the parent routine will give an error ++ if (ConstantSDNode *C = dyn_cast(Op)) { ++ EVT Type = Op.getValueType(); ++ int64_t Val = C->getSExtValue(); ++ if (isInt<16>(Val)) { ++ Result = DAG.getTargetConstant(Val, DL, Type); ++ break; ++ } ++ } ++ return; ++ case 'I': // Signed 12 bit constant ++ // If this fails, the parent routine will give an error ++ if (ConstantSDNode *C = dyn_cast(Op)) { ++ EVT Type = Op.getValueType(); ++ int64_t Val = C->getSExtValue(); ++ if (isInt<12>(Val)) { ++ Result = DAG.getTargetConstant(Val, DL, Type); ++ break; ++ } ++ } ++ return; ++ case 'J': // integer zero ++ if (ConstantSDNode *C = dyn_cast(Op)) { ++ EVT Type = Op.getValueType(); ++ int64_t Val = C->getZExtValue(); ++ if (Val == 0) { ++ Result = DAG.getTargetConstant(0, DL, Type); ++ break; ++ } ++ } ++ return; ++ case 'G': // floating-point zero ++ if (ConstantFPSDNode *C = dyn_cast(Op)) { ++ if (C->isZero()) { ++ EVT Type = Op.getValueType(); ++ Result = DAG.getTargetConstantFP(0, DL, Type); ++ break; ++ } ++ } ++ return; ++ case 'K': // unsigned 12 bit immediate ++ if (ConstantSDNode *C = dyn_cast(Op)) { ++ EVT Type = Op.getValueType(); ++ uint64_t Val = (uint64_t)C->getZExtValue(); ++ if (isUInt<12>(Val)) { ++ Result = DAG.getTargetConstant(Val, DL, Type); ++ break; ++ } ++ } ++ return; ++ } ++ ++ if (Result.getNode()) { ++ Ops.push_back(Result); ++ return; ++ } ++ ++ TargetLowering::LowerAsmOperandForConstraint(Op, Constraint, Ops, DAG); ++} ++ ++bool LoongArchTargetLowering::isLegalAddressingMode(const DataLayout &DL, ++ const AddrMode &AM, Type *Ty, ++ unsigned AS, Instruction *I) const { ++ // No global is ever allowed as a base. ++ if (AM.BaseGV) ++ return false; ++ ++ switch (AM.Scale) { ++ case 0: // "r+i" or just "i", depending on HasBaseReg. ++ break; ++ case 1: ++ if (!AM.HasBaseReg) // allow "r+i". ++ break; ++ return false; // disallow "r+r" or "r+r+i". ++ default: ++ return false; ++ } ++ ++ return true; ++} ++ ++bool ++LoongArchTargetLowering::isOffsetFoldingLegal(const GlobalAddressSDNode *GA) const { ++ // The LoongArch target isn't yet aware of offsets. ++ return false; ++} ++ ++EVT LoongArchTargetLowering::getOptimalMemOpType( ++ uint64_t Size, unsigned DstAlign, unsigned SrcAlign, bool IsMemset, ++ bool ZeroMemset, bool MemcpyStrSrc, ++ const AttributeList &FuncAttributes) const { ++ if (!FuncAttributes.hasFnAttribute(Attribute::NoImplicitFloat)) { ++ if (Size >= 16 ) { ++ if (Size >= 32 && Subtarget.hasLASX()) { ++ return MVT::v32i8; ++ } ++ if (Subtarget.hasLSX()) ++ return MVT::v16i8; ++ } ++ } ++ ++ if (Subtarget.is64Bit()) ++ return MVT::i64; ++ ++ return MVT::i32; ++} ++ ++/// isFPImmLegal - Returns true if the target can instruction select the ++/// specified FP immediate natively. If false, the legalizer will ++/// materialize the FP immediate as a load from a constant pool. ++bool LoongArchTargetLowering::isFPImmLegal(const APFloat &Imm, EVT VT, ++ bool ForCodeSize) const { ++ if (VT != MVT::f32 && VT != MVT::f64) ++ return false; ++ if (Imm.isNegZero()) ++ return false; ++ return (Imm.isZero() || Imm.isExactlyValue(+1.0)); ++} ++ ++bool LoongArchTargetLowering::useSoftFloat() const { ++ return Subtarget.useSoftFloat(); ++} ++ ++void LoongArchTargetLowering::copyByValRegs( ++ SDValue Chain, const SDLoc &DL, std::vector &OutChains, ++ SelectionDAG &DAG, const ISD::ArgFlagsTy &Flags, ++ SmallVectorImpl &InVals, const Argument *FuncArg, ++ unsigned FirstReg, unsigned LastReg, const CCValAssign &VA, ++ LoongArchCCState &State) const { ++ MachineFunction &MF = DAG.getMachineFunction(); ++ MachineFrameInfo &MFI = MF.getFrameInfo(); ++ unsigned GPRSizeInBytes = Subtarget.getGPRSizeInBytes(); ++ unsigned NumRegs = LastReg - FirstReg; ++ unsigned RegAreaSize = NumRegs * GPRSizeInBytes; ++ unsigned FrameObjSize = std::max(Flags.getByValSize(), RegAreaSize); ++ int FrameObjOffset; ++ ArrayRef ByValArgRegs = ABI.GetByValArgRegs(); ++ ++ if (RegAreaSize) ++ FrameObjOffset = -(int)((ByValArgRegs.size() - FirstReg) * GPRSizeInBytes); ++ else ++ FrameObjOffset = VA.getLocMemOffset(); ++ ++ // Create frame object. ++ EVT PtrTy = getPointerTy(DAG.getDataLayout()); ++ // Make the fixed object stored to mutable so that the load instructions ++ // referencing it have their memory dependencies added. ++ // Set the frame object as isAliased which clears the underlying objects ++ // vector in ScheduleDAGInstrs::buildSchedGraph() resulting in addition of all ++ // stores as dependencies for loads referencing this fixed object. ++ int FI = MFI.CreateFixedObject(FrameObjSize, FrameObjOffset, false, true); ++ SDValue FIN = DAG.getFrameIndex(FI, PtrTy); ++ InVals.push_back(FIN); ++ ++ if (!NumRegs) ++ return; ++ ++ // Copy arg registers. ++ MVT RegTy = MVT::getIntegerVT(GPRSizeInBytes * 8); ++ const TargetRegisterClass *RC = getRegClassFor(RegTy); ++ ++ for (unsigned I = 0; I < NumRegs; ++I) { ++ unsigned ArgReg = ByValArgRegs[FirstReg + I]; ++ unsigned VReg = addLiveIn(MF, ArgReg, RC); ++ unsigned Offset = I * GPRSizeInBytes; ++ SDValue StorePtr = DAG.getNode(ISD::ADD, DL, PtrTy, FIN, ++ DAG.getConstant(Offset, DL, PtrTy)); ++ SDValue Store = DAG.getStore(Chain, DL, DAG.getRegister(VReg, RegTy), ++ StorePtr, MachinePointerInfo(FuncArg, Offset)); ++ OutChains.push_back(Store); ++ } ++} ++ ++// Copy byVal arg to registers and stack. ++void LoongArchTargetLowering::passByValArg( ++ SDValue Chain, const SDLoc &DL, ++ std::deque> &RegsToPass, ++ SmallVectorImpl &MemOpChains, SDValue StackPtr, ++ MachineFrameInfo &MFI, SelectionDAG &DAG, SDValue Arg, unsigned FirstReg, ++ unsigned LastReg, const ISD::ArgFlagsTy &Flags, ++ const CCValAssign &VA) const { ++ unsigned ByValSizeInBytes = Flags.getByValSize(); ++ unsigned OffsetInBytes = 0; // From beginning of struct ++ unsigned RegSizeInBytes = Subtarget.getGPRSizeInBytes(); ++ unsigned Alignment = ++ std::min(Flags.getByValAlign(), RegSizeInBytes); ++ EVT PtrTy = getPointerTy(DAG.getDataLayout()), ++ RegTy = MVT::getIntegerVT(RegSizeInBytes * 8); ++ unsigned NumRegs = LastReg - FirstReg; ++ ++ if (NumRegs) { ++ ArrayRef ArgRegs = ABI.GetByValArgRegs(); ++ bool LeftoverBytes = (NumRegs * RegSizeInBytes > ByValSizeInBytes); ++ unsigned I = 0; ++ ++ // Copy words to registers. ++ for (; I < NumRegs - LeftoverBytes; ++I, OffsetInBytes += RegSizeInBytes) { ++ SDValue LoadPtr = DAG.getNode(ISD::ADD, DL, PtrTy, Arg, ++ DAG.getConstant(OffsetInBytes, DL, PtrTy)); ++ SDValue LoadVal = DAG.getLoad(RegTy, DL, Chain, LoadPtr, ++ MachinePointerInfo(), Alignment); ++ MemOpChains.push_back(LoadVal.getValue(1)); ++ unsigned ArgReg = ArgRegs[FirstReg + I]; ++ RegsToPass.push_back(std::make_pair(ArgReg, LoadVal)); ++ } ++ ++ // Return if the struct has been fully copied. ++ if (ByValSizeInBytes == OffsetInBytes) ++ return; ++ ++ // Copy the remainder of the byval argument with sub-word loads and shifts. ++ if (LeftoverBytes) { ++ SDValue Val; ++ ++ for (unsigned LoadSizeInBytes = RegSizeInBytes / 2, TotalBytesLoaded = 0; ++ OffsetInBytes < ByValSizeInBytes; LoadSizeInBytes /= 2) { ++ unsigned RemainingSizeInBytes = ByValSizeInBytes - OffsetInBytes; ++ ++ if (RemainingSizeInBytes < LoadSizeInBytes) ++ continue; ++ ++ // Load subword. ++ SDValue LoadPtr = DAG.getNode(ISD::ADD, DL, PtrTy, Arg, ++ DAG.getConstant(OffsetInBytes, DL, ++ PtrTy)); ++ SDValue LoadVal = DAG.getExtLoad( ++ ISD::ZEXTLOAD, DL, RegTy, Chain, LoadPtr, MachinePointerInfo(), ++ MVT::getIntegerVT(LoadSizeInBytes * 8), Alignment); ++ MemOpChains.push_back(LoadVal.getValue(1)); ++ ++ // Shift the loaded value. ++ unsigned Shamt; ++ ++ Shamt = TotalBytesLoaded * 8; ++ ++ SDValue Shift = DAG.getNode(ISD::SHL, DL, RegTy, LoadVal, ++ DAG.getConstant(Shamt, DL, MVT::i32)); ++ ++ if (Val.getNode()) ++ Val = DAG.getNode(ISD::OR, DL, RegTy, Val, Shift); ++ else ++ Val = Shift; ++ ++ OffsetInBytes += LoadSizeInBytes; ++ TotalBytesLoaded += LoadSizeInBytes; ++ Alignment = std::min(Alignment, LoadSizeInBytes); ++ } ++ ++ unsigned ArgReg = ArgRegs[FirstReg + I]; ++ RegsToPass.push_back(std::make_pair(ArgReg, Val)); ++ return; ++ } ++ } ++ ++ // Copy remainder of byval arg to it with memcpy. ++ unsigned MemCpySize = ByValSizeInBytes - OffsetInBytes; ++ SDValue Src = DAG.getNode(ISD::ADD, DL, PtrTy, Arg, ++ DAG.getConstant(OffsetInBytes, DL, PtrTy)); ++ SDValue Dst = DAG.getNode(ISD::ADD, DL, PtrTy, StackPtr, ++ DAG.getIntPtrConstant(VA.getLocMemOffset(), DL)); ++ Chain = DAG.getMemcpy( ++ Chain, DL, Dst, Src, DAG.getConstant(MemCpySize, DL, PtrTy), ++ Alignment, /*isVolatile=*/false, /*AlwaysInline=*/false, ++ /*isTailCall=*/false, MachinePointerInfo(), MachinePointerInfo()); ++ MemOpChains.push_back(Chain); ++} ++ ++void LoongArchTargetLowering::writeVarArgRegs(std::vector &OutChains, ++ SDValue Chain, const SDLoc &DL, ++ SelectionDAG &DAG, ++ CCState &State) const { ++ ArrayRef ArgRegs = ABI.GetVarArgRegs(); ++ unsigned Idx = State.getFirstUnallocated(ArgRegs); ++ unsigned RegSizeInBytes = Subtarget.getGPRSizeInBytes(); ++ MVT RegTy = MVT::getIntegerVT(RegSizeInBytes * 8); ++ const TargetRegisterClass *RC = getRegClassFor(RegTy); ++ MachineFunction &MF = DAG.getMachineFunction(); ++ MachineFrameInfo &MFI = MF.getFrameInfo(); ++ LoongArchFunctionInfo *LoongArchFI = MF.getInfo(); ++ ++ // Offset of the first variable argument from stack pointer. ++ int VaArgOffset, VarArgsSaveSize; ++ ++ if (ArgRegs.size() == Idx) { ++ VaArgOffset = alignTo(State.getNextStackOffset(), RegSizeInBytes); ++ VarArgsSaveSize = 0; ++ } else { ++ VarArgsSaveSize = (int)(RegSizeInBytes * (ArgRegs.size() - Idx)); ++ VaArgOffset = -VarArgsSaveSize; ++ } ++ ++ // Record the frame index of the first variable argument ++ // which is a value necessary to VASTART. ++ int FI = MFI.CreateFixedObject(RegSizeInBytes, VaArgOffset, true); ++ LoongArchFI->setVarArgsFrameIndex(FI); ++ ++ // If saving an odd number of registers then create an extra stack slot to ++ // ensure that the frame pointer is 2*GRLEN-aligned, which in turn ensures ++ // offsets to even-numbered registered remain 2*GRLEN-aligned. ++ if (Idx % 2) { ++ MFI.CreateFixedObject(RegSizeInBytes, VaArgOffset - (int)RegSizeInBytes, ++ true); ++ VarArgsSaveSize += RegSizeInBytes; ++ } ++ ++ // Copy the integer registers that have not been used for argument passing ++ // to the argument register save area. For LP32, the save area is allocated ++ // in the caller's stack frame, while for LPX32/LP64, it is allocated in the ++ // callee's stack frame. ++ for (unsigned I = Idx; I < ArgRegs.size(); ++ ++I, VaArgOffset += RegSizeInBytes) { ++ unsigned Reg = addLiveIn(MF, ArgRegs[I], RC); ++ SDValue ArgValue = DAG.getCopyFromReg(Chain, DL, Reg, RegTy); ++ FI = MFI.CreateFixedObject(RegSizeInBytes, VaArgOffset, true); ++ SDValue PtrOff = DAG.getFrameIndex(FI, getPointerTy(DAG.getDataLayout())); ++ SDValue Store = ++ DAG.getStore(Chain, DL, ArgValue, PtrOff, MachinePointerInfo()); ++ cast(Store.getNode())->getMemOperand()->setValue( ++ (Value *)nullptr); ++ OutChains.push_back(Store); ++ } ++ LoongArchFI->setVarArgsSaveSize(VarArgsSaveSize); ++} ++ ++void LoongArchTargetLowering::HandleByVal(CCState *State, unsigned &Size, ++ unsigned Alignment) const { ++ const TargetFrameLowering *TFL = Subtarget.getFrameLowering(); ++ ++ assert(Size && "Byval argument's size shouldn't be 0."); ++ ++ Alignment = std::min(Alignment, TFL->getStackAlignment()); ++ ++ unsigned FirstReg = 0; ++ unsigned NumRegs = 0; ++ unsigned RegSizeInBytes = Subtarget.getGPRSizeInBytes(); ++ ArrayRef IntArgRegs = ABI.GetByValArgRegs(); ++ // FIXME: The LP32 case actually describes no shadow registers. ++ const MCPhysReg *ShadowRegs = ++ ABI.IsLP32() ? IntArgRegs.data() : LoongArch64DPRegs; ++ ++ // We used to check the size as well but we can't do that anymore since ++ // CCState::HandleByVal() rounds up the size after calling this function. ++ assert(Alignment >= RegSizeInBytes && ++ "Byval argument's alignment should be a multiple of RegSizeInBytes."); ++ ++ FirstReg = State->getFirstUnallocated(IntArgRegs); ++ ++ // If Alignment > RegSizeInBytes, the first arg register must be even. ++ // FIXME: This condition happens to do the right thing but it's not the ++ // right way to test it. We want to check that the stack frame offset ++ // of the register is aligned. ++ if ((Alignment > RegSizeInBytes) && (FirstReg % 2)) { ++ State->AllocateReg(IntArgRegs[FirstReg], ShadowRegs[FirstReg]); ++ ++FirstReg; ++ // assert(true && "debug#######################################"); ++ } ++ ++ // Mark the registers allocated. ++ // Size = alignTo(Size, RegSizeInBytes); ++ // for (unsigned I = FirstReg; Size > 0 && (I < IntArgRegs.size()); ++ // Size -= RegSizeInBytes, ++I, ++NumRegs) ++ // State->AllocateReg(IntArgRegs[I], ShadowRegs[I]); ++ ++ State->addInRegsParamInfo(FirstReg, FirstReg + NumRegs); ++} ++ ++MachineBasicBlock *LoongArchTargetLowering::emitPseudoSELECT(MachineInstr &MI, ++ MachineBasicBlock *BB, ++ bool isFPCmp, ++ unsigned Opc) const { ++ const TargetInstrInfo *TII = ++ Subtarget.getInstrInfo(); ++ DebugLoc DL = MI.getDebugLoc(); ++ ++ // To "insert" a SELECT instruction, we actually have to insert the ++ // diamond control-flow pattern. The incoming instruction knows the ++ // destination vreg to set, the condition code register to branch on, the ++ // true/false values to select between, and a branch opcode to use. ++ const BasicBlock *LLVM_BB = BB->getBasicBlock(); ++ MachineFunction::iterator It = ++BB->getIterator(); ++ ++ // thisMBB: ++ // ... ++ // TrueVal = ... ++ // setcc r1, r2, r3 ++ // bNE r1, r0, copy1MBB ++ // fallthrough --> copy0MBB ++ MachineBasicBlock *thisMBB = BB; ++ MachineFunction *F = BB->getParent(); ++ MachineBasicBlock *copy0MBB = F->CreateMachineBasicBlock(LLVM_BB); ++ MachineBasicBlock *sinkMBB = F->CreateMachineBasicBlock(LLVM_BB); ++ F->insert(It, copy0MBB); ++ F->insert(It, sinkMBB); ++ ++ // Transfer the remainder of BB and its successor edges to sinkMBB. ++ sinkMBB->splice(sinkMBB->begin(), BB, ++ std::next(MachineBasicBlock::iterator(MI)), BB->end()); ++ sinkMBB->transferSuccessorsAndUpdatePHIs(BB); ++ ++ // Next, add the true and fallthrough blocks as its successors. ++ BB->addSuccessor(copy0MBB); ++ BB->addSuccessor(sinkMBB); ++ ++ if (isFPCmp) { ++ // bc1[tf] cc, sinkMBB ++ BuildMI(BB, DL, TII->get(Opc)) ++ .addReg(MI.getOperand(1).getReg()) ++ .addMBB(sinkMBB); ++ } else { ++ BuildMI(BB, DL, TII->get(Opc)) ++ .addReg(MI.getOperand(1).getReg()) ++ .addReg(LoongArch::ZERO) ++ .addMBB(sinkMBB); ++ } ++ ++ // copy0MBB: ++ // %FalseValue = ... ++ // # fallthrough to sinkMBB ++ BB = copy0MBB; ++ ++ // Update machine-CFG edges ++ BB->addSuccessor(sinkMBB); ++ ++ // sinkMBB: ++ // %Result = phi [ %TrueValue, thisMBB ], [ %FalseValue, copy0MBB ] ++ // ... ++ BB = sinkMBB; ++ ++ BuildMI(*BB, BB->begin(), DL, TII->get(LoongArch::PHI), MI.getOperand(0).getReg()) ++ .addReg(MI.getOperand(2).getReg()) ++ .addMBB(thisMBB) ++ .addReg(MI.getOperand(3).getReg()) ++ .addMBB(copy0MBB); ++ ++ MI.eraseFromParent(); // The pseudo instruction is gone now. ++ ++ return BB; ++} ++ ++MachineBasicBlock *LoongArchTargetLowering::emitLSXCBranchPseudo( ++ MachineInstr &MI, MachineBasicBlock *BB, unsigned BranchOp) const { ++ ++ MachineRegisterInfo &RegInfo = BB->getParent()->getRegInfo(); ++ const TargetInstrInfo *TII = Subtarget.getInstrInfo(); ++ const TargetRegisterClass *RC = &LoongArch::GPR32RegClass; ++ DebugLoc DL = MI.getDebugLoc(); ++ const BasicBlock *LLVM_BB = BB->getBasicBlock(); ++ MachineFunction::iterator It = std::next(MachineFunction::iterator(BB)); ++ MachineFunction *F = BB->getParent(); ++ MachineBasicBlock *FBB = F->CreateMachineBasicBlock(LLVM_BB); ++ MachineBasicBlock *TBB = F->CreateMachineBasicBlock(LLVM_BB); ++ MachineBasicBlock *Sink = F->CreateMachineBasicBlock(LLVM_BB); ++ F->insert(It, FBB); ++ F->insert(It, TBB); ++ F->insert(It, Sink); ++ ++ // Transfer the remainder of BB and its successor edges to Sink. ++ Sink->splice(Sink->begin(), BB, std::next(MachineBasicBlock::iterator(MI)), ++ BB->end()); ++ Sink->transferSuccessorsAndUpdatePHIs(BB); ++ ++ // Add successors. ++ BB->addSuccessor(FBB); ++ BB->addSuccessor(TBB); ++ FBB->addSuccessor(Sink); ++ TBB->addSuccessor(Sink); ++ // Insert the real bnz.b instruction to $BB. ++ BuildMI(BB, DL, TII->get(BranchOp)) ++ .addReg(LoongArch::FCC0) ++ .addReg(MI.getOperand(1).getReg()); ++ ++ BuildMI(BB, DL, TII->get(LoongArch::BCNEZ)) ++ .addReg(LoongArch::FCC0) ++ .addMBB(TBB); ++ ++ // Fill $FBB. ++ unsigned RD1 = RegInfo.createVirtualRegister(RC); ++ BuildMI(*FBB, FBB->end(), DL, TII->get(LoongArch::ADDI_W), RD1) ++ .addReg(LoongArch::ZERO) ++ .addImm(0); ++ BuildMI(*FBB, FBB->end(), DL, TII->get(LoongArch::B32)).addMBB(Sink); ++ ++ // Fill $TBB. ++ unsigned RD2 = RegInfo.createVirtualRegister(RC); ++ BuildMI(*TBB, TBB->end(), DL, TII->get(LoongArch::ADDI_W), RD2) ++ .addReg(LoongArch::ZERO) ++ .addImm(1); ++ ++ // Insert phi function to $Sink. ++ BuildMI(*Sink, Sink->begin(), DL, TII->get(LoongArch::PHI), ++ MI.getOperand(0).getReg()) ++ .addReg(RD1) ++ .addMBB(FBB) ++ .addReg(RD2) ++ .addMBB(TBB); ++ ++ MI.eraseFromParent(); // The pseudo instruction is gone now. ++ return Sink; ++} ++ ++// Emit the COPY_FW pseudo instruction. ++// ++// copy_fw_pseudo $fd, $vk, n ++// => ++// vreplvei.w $rt, $vk, $n ++// copy $rt, $fd ++// ++// When n is zero, the equivalent operation can be performed with (potentially) ++// zero instructions due to register overlaps. ++MachineBasicBlock * ++LoongArchTargetLowering::emitCOPY_FW(MachineInstr &MI, ++ MachineBasicBlock *BB) const { ++ const TargetInstrInfo *TII = Subtarget.getInstrInfo(); ++ MachineRegisterInfo &RegInfo = BB->getParent()->getRegInfo(); ++ DebugLoc DL = MI.getDebugLoc(); ++ unsigned Fd = MI.getOperand(0).getReg(); ++ unsigned Vk = MI.getOperand(1).getReg(); ++ unsigned Lane = MI.getOperand(2).getImm(); ++ ++ if (Lane == 0) { ++ unsigned Vj = Vk; ++ BuildMI(*BB, MI, DL, TII->get(LoongArch::COPY), Fd) ++ .addReg(Vj, 0, LoongArch::sub_lo); ++ } else { ++ unsigned Vj = RegInfo.createVirtualRegister(&LoongArch::LSX128WRegClass); ++ BuildMI(*BB, MI, DL, TII->get(LoongArch::VREPLVEI_W), Vj) ++ .addReg(Vk) ++ .addImm(Lane); ++ BuildMI(*BB, MI, DL, TII->get(LoongArch::COPY), Fd) ++ .addReg(Vj, 0, LoongArch::sub_lo); ++ } ++ ++ MI.eraseFromParent(); // The pseudo instruction is gone now. ++ return BB; ++} ++ ++// Emit the COPY_FD pseudo instruction. ++// ++// copy_fd_pseudo $fd, $vj, n ++// => ++// vreplvei.d $vd, $vj, $n ++// copy $fd, $vd:sub_64 ++// ++// When n is zero, the equivalent operation can be performed with (potentially) ++// zero instructions due to register overlaps. ++MachineBasicBlock * ++LoongArchTargetLowering::emitCOPY_FD(MachineInstr &MI, ++ MachineBasicBlock *BB) const { ++ assert(Subtarget.isFP64bit()); ++ ++ const TargetInstrInfo *TII = Subtarget.getInstrInfo(); ++ MachineRegisterInfo &RegInfo = BB->getParent()->getRegInfo(); ++ unsigned Fd = MI.getOperand(0).getReg(); ++ unsigned Vk = MI.getOperand(1).getReg(); ++ unsigned Lane = MI.getOperand(2).getImm(); ++ DebugLoc DL = MI.getDebugLoc(); ++ ++ if (Lane == 0) ++ BuildMI(*BB, MI, DL, TII->get(LoongArch::COPY), Fd) ++ .addReg(Vk, 0, LoongArch::sub_64); ++ else { ++ unsigned Vj = RegInfo.createVirtualRegister(&LoongArch::LSX128DRegClass); ++ assert(Lane == 1); ++ ++ BuildMI(*BB, MI, DL, TII->get(LoongArch::VREPLVEI_D), Vj) ++ .addReg(Vk) ++ .addImm(Lane); ++ BuildMI(*BB, MI, DL, TII->get(LoongArch::COPY), Fd) ++ .addReg(Vj, 0, LoongArch::sub_64); ++ } ++ ++ MI.eraseFromParent(); // The pseudo instruction is gone now. ++ return BB; ++} ++ ++MachineBasicBlock * ++LoongArchTargetLowering::emitXCOPY_FW(MachineInstr &MI, ++ MachineBasicBlock *BB) const { ++ const TargetInstrInfo *TII = Subtarget.getInstrInfo(); ++ MachineRegisterInfo &RegInfo = BB->getParent()->getRegInfo(); ++ DebugLoc DL = MI.getDebugLoc(); ++ unsigned Fd = MI.getOperand(0).getReg(); ++ unsigned Xk = MI.getOperand(1).getReg(); ++ unsigned Lane = MI.getOperand(2).getImm(); ++ unsigned Rj = RegInfo.createVirtualRegister(&LoongArch::GPR32RegClass); ++ unsigned Xj = Xk; ++ ++ if (Lane == 0) { ++ BuildMI(*BB, MI, DL, TII->get(LoongArch::COPY), Fd) ++ .addReg(Xj, 0, LoongArch::sub_lo); ++ } else { ++ BuildMI(*BB, MI, DL, TII->get(LoongArch::XVPICKVE2GR_WU), Rj) ++ .addReg(Xk) ++ .addImm(Lane); ++ BuildMI(*BB, MI, DL, TII->get(LoongArch::COPY), Fd).addReg(Rj); ++ } ++ ++ MI.eraseFromParent(); // The pseudo instruction is gone now. ++ return BB; ++} ++ ++MachineBasicBlock * ++LoongArchTargetLowering::emitXCOPY_FD(MachineInstr &MI, ++ MachineBasicBlock *BB) const { ++ assert(Subtarget.isFP64bit()); ++ ++ const TargetInstrInfo *TII = Subtarget.getInstrInfo(); ++ MachineRegisterInfo &RegInfo = BB->getParent()->getRegInfo(); ++ unsigned Fd = MI.getOperand(0).getReg(); ++ unsigned Xk = MI.getOperand(1).getReg(); ++ unsigned Lane = MI.getOperand(2).getImm(); ++ DebugLoc DL = MI.getDebugLoc(); ++ ++ unsigned Rj = RegInfo.createVirtualRegister(&LoongArch::GPR64RegClass); ++ if (Lane == 0) { ++ BuildMI(*BB, MI, DL, TII->get(LoongArch::COPY), Fd) ++ .addReg(Xk, 0, LoongArch::sub_64); ++ } else { ++ BuildMI(*BB, MI, DL, TII->get(LoongArch::XVPICKVE2GR_DU), Rj) ++ .addReg(Xk) ++ .addImm(Lane); ++ BuildMI(*BB, MI, DL, TII->get(LoongArch::COPY), Fd).addReg(Rj); ++ } ++ ++ MI.eraseFromParent(); // The pseudo instruction is gone now. ++ return BB; ++} ++ ++MachineBasicBlock *LoongArchTargetLowering::emitCONCAT_VECTORS( ++ MachineInstr &MI, MachineBasicBlock *BB, unsigned Bytes) const { ++ ++ MachineRegisterInfo &RegInfo = BB->getParent()->getRegInfo(); ++ const TargetInstrInfo *TII = Subtarget.getInstrInfo(); ++ DebugLoc DL = MI.getDebugLoc(); ++ unsigned Xd = MI.getOperand(0).getReg(); ++ unsigned SubReg1 = MI.getOperand(1).getReg(); ++ unsigned SubReg2 = MI.getOperand(2).getReg(); ++ const TargetRegisterClass *RC = nullptr; ++ ++ switch (Bytes) { ++ default: ++ llvm_unreachable("Unexpected size"); ++ case 1: ++ RC = &LoongArch::LASX256BRegClass; ++ break; ++ case 2: ++ RC = &LoongArch::LASX256HRegClass; ++ break; ++ case 4: ++ RC = &LoongArch::LASX256WRegClass; ++ break; ++ case 8: ++ RC = &LoongArch::LASX256DRegClass; ++ break; ++ } ++ ++ unsigned X0 = RegInfo.createVirtualRegister(RC); ++ BuildMI(*BB, MI, DL, TII->get(LoongArch::SUBREG_TO_REG), X0) ++ .addImm(0) ++ .addReg(SubReg1) ++ .addImm(LoongArch::sub_128); ++ unsigned X1 = RegInfo.createVirtualRegister(RC); ++ BuildMI(*BB, MI, DL, TII->get(LoongArch::SUBREG_TO_REG), X1) ++ .addImm(0) ++ .addReg(SubReg2) ++ .addImm(LoongArch::sub_128); ++ BuildMI(*BB, MI, DL, TII->get(LoongArch::XVPERMI_Q), Xd) ++ .addReg(X0) ++ .addReg(X1) ++ .addImm(2); ++ ++ MI.eraseFromParent(); // The pseudo instruction is gone now. ++ return BB; ++} ++ ++// xcopy_fw_gpr_pseudo $fd, $xs, $rk ++// => ++// bb: addi.d $rt1, zero, 4 ++// bge $lane, $rt1 hbb ++// lbb:xvreplve.w $xt1, $xs, $lane ++// copy $rf0, $xt1 ++// b sink ++// hbb: addi.d $rt2, $lane, -4 ++// xvpermi.q $xt2 $xs, 1 ++// xvreplve.w $xt3, $xt2, $rt2 ++// copy $rf1, $xt3 ++// sink:phi ++MachineBasicBlock * ++LoongArchTargetLowering::emitXCOPY_FW_GPR(MachineInstr &MI, ++ MachineBasicBlock *BB) const { ++ const TargetInstrInfo *TII = Subtarget.getInstrInfo(); ++ MachineRegisterInfo &RegInfo = BB->getParent()->getRegInfo(); ++ DebugLoc DL = MI.getDebugLoc(); ++ unsigned Xs = MI.getOperand(1).getReg(); ++ unsigned Lane = MI.getOperand(2).getReg(); ++ ++ const TargetRegisterClass *RC = &LoongArch::GPR64RegClass; ++ const BasicBlock *LLVM_BB = BB->getBasicBlock(); ++ MachineFunction::iterator It = std::next(MachineFunction::iterator(BB)); ++ MachineFunction *F = BB->getParent(); ++ MachineBasicBlock *HBB = F->CreateMachineBasicBlock(LLVM_BB); ++ MachineBasicBlock *LBB = F->CreateMachineBasicBlock(LLVM_BB); ++ MachineBasicBlock *Sink = F->CreateMachineBasicBlock(LLVM_BB); ++ F->insert(It, LBB); ++ F->insert(It, HBB); ++ F->insert(It, Sink); ++ ++ Sink->splice(Sink->begin(), BB, std::next(MachineBasicBlock::iterator(MI)), ++ BB->end()); ++ Sink->transferSuccessorsAndUpdatePHIs(BB); ++ ++ BB->addSuccessor(LBB); ++ BB->addSuccessor(HBB); ++ HBB->addSuccessor(Sink); ++ LBB->addSuccessor(Sink); ++ ++ unsigned Rt1 = RegInfo.createVirtualRegister(RC); ++ BuildMI(BB, DL, TII->get(LoongArch::ADDI_D), Rt1) ++ .addReg(LoongArch::ZERO_64) ++ .addImm(4); ++ BuildMI(BB, DL, TII->get(LoongArch::BGE)) ++ .addReg(Lane) ++ .addReg(Rt1) ++ .addMBB(HBB); ++ ++ unsigned Xt1 = RegInfo.createVirtualRegister(&LoongArch::LASX256WRegClass); ++ unsigned Rf0 = RegInfo.createVirtualRegister(&LoongArch::FGR32RegClass); ++ BuildMI(*LBB, LBB->end(), DL, TII->get(LoongArch::XVREPLVE_W_N), Xt1) ++ .addReg(Xs) ++ .addReg(Lane); ++ BuildMI(*LBB, LBB->end(), DL, TII->get(LoongArch::COPY), Rf0) ++ .addReg(Xt1, 0, LoongArch::sub_lo); ++ BuildMI(*LBB, LBB->end(), DL, TII->get(LoongArch::B)).addMBB(Sink); ++ ++ unsigned Xt2 = RegInfo.createVirtualRegister(&LoongArch::LASX256WRegClass); ++ unsigned Xt3 = RegInfo.createVirtualRegister(&LoongArch::LASX256WRegClass); ++ unsigned Rt2 = RegInfo.createVirtualRegister(RC); ++ unsigned Rf1 = RegInfo.createVirtualRegister(&LoongArch::FGR32RegClass); ++ BuildMI(*HBB, HBB->end(), DL, TII->get(LoongArch::ADDI_D), Rt2) ++ .addReg(Lane) ++ .addImm(-4); ++ BuildMI(*HBB, HBB->end(), DL, TII->get(LoongArch::XVPERMI_Q), Xt2) ++ .addReg(Xs) ++ .addReg(Xs) ++ .addImm(1); ++ BuildMI(*HBB, HBB->end(), DL, TII->get(LoongArch::XVREPLVE_W_N), Xt3) ++ .addReg(Xt2) ++ .addReg(Rt2); ++ BuildMI(*HBB, HBB->end(), DL, TII->get(LoongArch::COPY), Rf1) ++ .addReg(Xt3, 0, LoongArch::sub_lo); ++ ++ BuildMI(*Sink, Sink->begin(), DL, TII->get(LoongArch::PHI), ++ MI.getOperand(0).getReg()) ++ .addReg(Rf0) ++ .addMBB(LBB) ++ .addReg(Rf1) ++ .addMBB(HBB); ++ ++ MI.eraseFromParent(); // The pseudo instruction is gone now. ++ return Sink; ++} ++ ++MachineBasicBlock * ++LoongArchTargetLowering::emitXINSERT_BH(MachineInstr &MI, MachineBasicBlock *BB, ++ unsigned Size) const { ++ const TargetInstrInfo *TII = Subtarget.getInstrInfo(); ++ MachineRegisterInfo &RegInfo = BB->getParent()->getRegInfo(); ++ DebugLoc DL = MI.getDebugLoc(); ++ unsigned Xd = MI.getOperand(0).getReg(); ++ unsigned Xd_in = MI.getOperand(1).getReg(); ++ unsigned Lane = MI.getOperand(2).getImm(); ++ unsigned Fs = MI.getOperand(3).getReg(); ++ const TargetRegisterClass *VecRC = nullptr; ++ const TargetRegisterClass *SubVecRC = nullptr; ++ unsigned HalfSize = 0; ++ unsigned InsertOp = 0; ++ ++ if (Size == 1) { ++ VecRC = &LoongArch::LASX256BRegClass; ++ SubVecRC = &LoongArch::LSX128BRegClass; ++ HalfSize = 16; ++ InsertOp = LoongArch::VINSGR2VR_B; ++ } else if (Size == 2) { ++ VecRC = &LoongArch::LASX256HRegClass; ++ SubVecRC = &LoongArch::LSX128HRegClass; ++ HalfSize = 8; ++ InsertOp = LoongArch::VINSGR2VR_H; ++ } else { ++ llvm_unreachable("Unexpected type"); ++ } ++ ++ unsigned Xk = Xd_in; ++ unsigned Imm = Lane; ++ if (Lane >= HalfSize) { ++ Xk = RegInfo.createVirtualRegister(VecRC); ++ BuildMI(*BB, MI, DL, TII->get(LoongArch::XVPERMI_Q), Xk) ++ .addReg(Xd_in) ++ .addReg(Xd_in) ++ .addImm(1); ++ Imm = Lane - HalfSize; ++ } ++ ++ unsigned Xk128 = RegInfo.createVirtualRegister(SubVecRC); ++ unsigned Xd128 = RegInfo.createVirtualRegister(SubVecRC); ++ BuildMI(*BB, MI, DL, TII->get(LoongArch::COPY), Xk128) ++ .addReg(Xk, 0, LoongArch::sub_128); ++ BuildMI(*BB, MI, DL, TII->get(InsertOp), Xd128) ++ .addReg(Xk128) ++ .addReg(Fs) ++ .addImm(Imm); ++ ++ unsigned Xd256 = Xd; ++ if (Lane >= HalfSize) { ++ Xd256 = RegInfo.createVirtualRegister(VecRC); ++ } ++ ++ BuildMI(*BB, MI, DL, TII->get(LoongArch::SUBREG_TO_REG), Xd256) ++ .addImm(0) ++ .addReg(Xd128) ++ .addImm(LoongArch::sub_128); ++ ++ if (Lane >= HalfSize) { ++ BuildMI(*BB, MI, DL, TII->get(LoongArch::XVPERMI_Q), Xd) ++ .addReg(Xd_in) ++ .addReg(Xd256) ++ .addImm(2); ++ } ++ ++ MI.eraseFromParent(); // The pseudo instruction is gone now. ++ return BB; ++} ++ ++MachineBasicBlock * ++LoongArchTargetLowering::emitXINSERT_FW(MachineInstr &MI, ++ MachineBasicBlock *BB) const { ++ const TargetInstrInfo *TII = Subtarget.getInstrInfo(); ++ MachineRegisterInfo &RegInfo = BB->getParent()->getRegInfo(); ++ DebugLoc DL = MI.getDebugLoc(); ++ unsigned Xd = MI.getOperand(0).getReg(); ++ unsigned Xd_in = MI.getOperand(1).getReg(); ++ unsigned Lane = MI.getOperand(2).getImm(); ++ unsigned Fs = MI.getOperand(3).getReg(); ++ unsigned Xj = RegInfo.createVirtualRegister(&LoongArch::LASX256WRegClass); ++ unsigned Rj = RegInfo.createVirtualRegister(&LoongArch::GPR32RegClass); ++ ++ BuildMI(*BB, MI, DL, TII->get(LoongArch::SUBREG_TO_REG), Xj) ++ .addImm(0) ++ .addReg(Fs) ++ .addImm(LoongArch::sub_lo); ++ BuildMI(*BB, MI, DL, TII->get(LoongArch::XVPICKVE2GR_WU), Rj) ++ .addReg(Xj) ++ .addImm(0); ++ BuildMI(*BB, MI, DL, TII->get(LoongArch::XVINSGR2VR_W), Xd) ++ .addReg(Xd_in) ++ .addReg(Rj) ++ .addImm(Lane); ++ ++ MI.eraseFromParent(); // The pseudo instruction is gone now. ++ return BB; ++} ++ ++// Emit the INSERT_FW pseudo instruction. ++// ++// insert_fw_pseudo $vd, $vd_in, $n, $fs ++// => ++// subreg_to_reg $vj:sub_lo, $fs ++// vpickve2gr.w rj, vj, 0 ++// vinsgr2vr.w, vd, rj, lane ++MachineBasicBlock * ++LoongArchTargetLowering::emitINSERT_FW(MachineInstr &MI, ++ MachineBasicBlock *BB) const { ++ const TargetInstrInfo *TII = Subtarget.getInstrInfo(); ++ MachineRegisterInfo &RegInfo = BB->getParent()->getRegInfo(); ++ DebugLoc DL = MI.getDebugLoc(); ++ unsigned Vd = MI.getOperand(0).getReg(); ++ unsigned Vd_in = MI.getOperand(1).getReg(); ++ unsigned Lane = MI.getOperand(2).getImm(); ++ unsigned Fs = MI.getOperand(3).getReg(); ++ unsigned Rj = RegInfo.createVirtualRegister(&LoongArch::GPR32RegClass); ++ unsigned Vj = RegInfo.createVirtualRegister(&LoongArch::LSX128WRegClass); ++ ++ BuildMI(*BB, MI, DL, TII->get(LoongArch::SUBREG_TO_REG), Vj) ++ .addImm(0) ++ .addReg(Fs) ++ .addImm(LoongArch::sub_lo); ++ BuildMI(*BB, MI, DL, TII->get(LoongArch::VPICKVE2GR_W), Rj) ++ .addReg(Vj) ++ .addImm(0); ++ BuildMI(*BB, MI, DL, TII->get(LoongArch::VINSGR2VR_W), Vd) ++ .addReg(Vd_in) ++ .addReg(Rj) ++ .addImm(Lane); ++ ++ MI.eraseFromParent(); // The pseudo instruction is gone now. ++ return BB; ++} ++ ++// Emit the INSERT_FD pseudo instruction. ++// insert_fd_pseudo $vd, $fs, n ++// => ++// subreg_to_reg $vk:sub_64, $fs ++// vpickve2gr.d rj, vk, 0 ++// vinsgr2vr.d vd, rj, lane ++MachineBasicBlock * ++LoongArchTargetLowering::emitINSERT_FD(MachineInstr &MI, ++ MachineBasicBlock *BB) const { ++ assert(Subtarget.isFP64bit()); ++ ++ const TargetInstrInfo *TII = Subtarget.getInstrInfo(); ++ MachineRegisterInfo &RegInfo = BB->getParent()->getRegInfo(); ++ DebugLoc DL = MI.getDebugLoc(); ++ unsigned Vd = MI.getOperand(0).getReg(); ++ unsigned Vd_in = MI.getOperand(1).getReg(); ++ unsigned Lane = MI.getOperand(2).getImm(); ++ unsigned Fs = MI.getOperand(3).getReg(); ++ unsigned Vj = RegInfo.createVirtualRegister(&LoongArch::LSX128DRegClass); ++ unsigned Rj = RegInfo.createVirtualRegister(&LoongArch::GPR64RegClass); ++ ++ BuildMI(*BB, MI, DL, TII->get(LoongArch::SUBREG_TO_REG), Vj) ++ .addImm(0) ++ .addReg(Fs) ++ .addImm(LoongArch::sub_64); ++ BuildMI(*BB, MI, DL, TII->get(LoongArch::VPICKVE2GR_D), Rj) ++ .addReg(Vj) ++ .addImm(0); ++ BuildMI(*BB, MI, DL, TII->get(LoongArch::VINSGR2VR_D), Vd) ++ .addReg(Vd_in) ++ .addReg(Rj) ++ .addImm(Lane); ++ ++ MI.eraseFromParent(); // The pseudo instruction is gone now. ++ return BB; ++} ++ ++MachineBasicBlock * ++LoongArchTargetLowering::emitXINSERT_FD(MachineInstr &MI, ++ MachineBasicBlock *BB) const { ++ assert(Subtarget.isFP64bit()); ++ ++ const TargetInstrInfo *TII = Subtarget.getInstrInfo(); ++ MachineRegisterInfo &RegInfo = BB->getParent()->getRegInfo(); ++ DebugLoc DL = MI.getDebugLoc(); ++ unsigned Xd = MI.getOperand(0).getReg(); ++ unsigned Xd_in = MI.getOperand(1).getReg(); ++ unsigned Lane = MI.getOperand(2).getImm(); ++ unsigned Fs = MI.getOperand(3).getReg(); ++ unsigned Xj = RegInfo.createVirtualRegister(&LoongArch::LASX256DRegClass); ++ ++ BuildMI(*BB, MI, DL, TII->get(LoongArch::SUBREG_TO_REG), Xj) ++ .addImm(0) ++ .addReg(Fs) ++ .addImm(LoongArch::sub_64); ++ BuildMI(*BB, MI, DL, TII->get(LoongArch::XVINSVE0_D), Xd) ++ .addReg(Xd_in) ++ .addReg(Xj) ++ .addImm(Lane); ++ ++ MI.eraseFromParent(); // The pseudo instruction is gone now. ++ return BB; ++} ++ ++// Emit the FILL_FW pseudo instruction. ++// ++// fill_fw_pseudo $vd, $fs ++// => ++// implicit_def $vt1 ++// insert_subreg $vt2:subreg_lo, $vt1, $fs ++// vreplvei.w vd, vt2, 0 ++MachineBasicBlock * ++LoongArchTargetLowering::emitFILL_FW(MachineInstr &MI, ++ MachineBasicBlock *BB) const { ++ const TargetInstrInfo *TII = Subtarget.getInstrInfo(); ++ MachineRegisterInfo &RegInfo = BB->getParent()->getRegInfo(); ++ DebugLoc DL = MI.getDebugLoc(); ++ unsigned Vd = MI.getOperand(0).getReg(); ++ unsigned Fs = MI.getOperand(1).getReg(); ++ unsigned Vj1 = RegInfo.createVirtualRegister(&LoongArch::LSX128WRegClass); ++ unsigned Vj2 = RegInfo.createVirtualRegister(&LoongArch::LSX128WRegClass); ++ ++ BuildMI(*BB, MI, DL, TII->get(LoongArch::IMPLICIT_DEF), Vj1); ++ BuildMI(*BB, MI, DL, TII->get(LoongArch::INSERT_SUBREG), Vj2) ++ .addReg(Vj1) ++ .addReg(Fs) ++ .addImm(LoongArch::sub_lo); ++ BuildMI(*BB, MI, DL, TII->get(LoongArch::VREPLVEI_W), Vd) ++ .addReg(Vj2) ++ .addImm(0); ++ ++ MI.eraseFromParent(); // The pseudo instruction is gone now. ++ return BB; ++} ++ ++// Emit the FILL_FD pseudo instruction. ++// ++// fill_fd_pseudo $vd, $fs ++// => ++// implicit_def $vt1 ++// insert_subreg $vt2:subreg_64, $vt1, $fs ++// vreplvei.d vd, vt2, 0 ++MachineBasicBlock * ++LoongArchTargetLowering::emitFILL_FD(MachineInstr &MI, ++ MachineBasicBlock *BB) const { ++ assert(Subtarget.isFP64bit()); ++ ++ const TargetInstrInfo *TII = Subtarget.getInstrInfo(); ++ MachineRegisterInfo &RegInfo = BB->getParent()->getRegInfo(); ++ DebugLoc DL = MI.getDebugLoc(); ++ unsigned Vd = MI.getOperand(0).getReg(); ++ unsigned Fs = MI.getOperand(1).getReg(); ++ unsigned Vj1 = RegInfo.createVirtualRegister(&LoongArch::LSX128DRegClass); ++ unsigned Vj2 = RegInfo.createVirtualRegister(&LoongArch::LSX128DRegClass); ++ ++ BuildMI(*BB, MI, DL, TII->get(LoongArch::IMPLICIT_DEF), Vj1); ++ BuildMI(*BB, MI, DL, TII->get(LoongArch::INSERT_SUBREG), Vj2) ++ .addReg(Vj1) ++ .addReg(Fs) ++ .addImm(LoongArch::sub_64); ++ BuildMI(*BB, MI, DL, TII->get(LoongArch::VREPLVEI_D), Vd) ++ .addReg(Vj2) ++ .addImm(0); ++ ++ MI.eraseFromParent(); // The pseudo instruction is gone now. ++ return BB; ++} ++ ++// Emit the XFILL_FW pseudo instruction. ++// ++// xfill_fw_pseudo $xd, $fs ++// => ++// implicit_def $xt1 ++// insert_subreg $xt2:subreg_lo, $xt1, $fs ++// xvreplve0.w xd, xt2, 0 ++MachineBasicBlock * ++LoongArchTargetLowering::emitXFILL_FW(MachineInstr &MI, ++ MachineBasicBlock *BB) const { ++ const TargetInstrInfo *TII = Subtarget.getInstrInfo(); ++ MachineRegisterInfo &RegInfo = BB->getParent()->getRegInfo(); ++ DebugLoc DL = MI.getDebugLoc(); ++ unsigned Xd = MI.getOperand(0).getReg(); ++ unsigned Fs = MI.getOperand(1).getReg(); ++ unsigned Xj1 = RegInfo.createVirtualRegister(&LoongArch::LASX256WRegClass); ++ unsigned Xj2 = RegInfo.createVirtualRegister(&LoongArch::LASX256WRegClass); ++ ++ BuildMI(*BB, MI, DL, TII->get(LoongArch::IMPLICIT_DEF), Xj1); ++ BuildMI(*BB, MI, DL, TII->get(LoongArch::INSERT_SUBREG), Xj2) ++ .addReg(Xj1) ++ .addReg(Fs) ++ .addImm(LoongArch::sub_lo); ++ BuildMI(*BB, MI, DL, TII->get(LoongArch::XVREPLVE0_W), Xd).addReg(Xj2); ++ ++ MI.eraseFromParent(); // The pseudo instruction is gone now. ++ return BB; ++} ++ ++// Emit the XFILL_FD pseudo instruction. ++// ++// xfill_fd_pseudo $xd, $fs ++// => ++// implicit_def $xt1 ++// insert_subreg $xt2:subreg_64, $xt1, $fs ++// xvreplve0.d xd, xt2, 0 ++MachineBasicBlock * ++LoongArchTargetLowering::emitXFILL_FD(MachineInstr &MI, ++ MachineBasicBlock *BB) const { ++ assert(Subtarget.isFP64bit()); ++ ++ const TargetInstrInfo *TII = Subtarget.getInstrInfo(); ++ MachineRegisterInfo &RegInfo = BB->getParent()->getRegInfo(); ++ DebugLoc DL = MI.getDebugLoc(); ++ unsigned Xd = MI.getOperand(0).getReg(); ++ unsigned Fs = MI.getOperand(1).getReg(); ++ unsigned Xj1 = RegInfo.createVirtualRegister(&LoongArch::LASX256DRegClass); ++ unsigned Xj2 = RegInfo.createVirtualRegister(&LoongArch::LASX256DRegClass); ++ ++ BuildMI(*BB, MI, DL, TII->get(LoongArch::IMPLICIT_DEF), Xj1); ++ BuildMI(*BB, MI, DL, TII->get(LoongArch::INSERT_SUBREG), Xj2) ++ .addReg(Xj1) ++ .addReg(Fs) ++ .addImm(LoongArch::sub_64); ++ BuildMI(*BB, MI, DL, TII->get(LoongArch::XVREPLVE0_D), Xd).addReg(Xj2); ++ ++ MI.eraseFromParent(); // The pseudo instruction is gone now. ++ return BB; ++} ++ ++bool LoongArchTargetLowering::isLegalAddImmediate(int64_t Imm) const { ++ bool IsLegal = false; ++ if (Subtarget.hasLSX() || Subtarget.hasLASX()) { ++ return isUInt<5>(Imm); ++ } ++ return IsLegal; ++} ++ ++bool LoongArchTargetLowering::isFMAFasterThanFMulAndFAdd( ++ const MachineFunction &MF, EVT VT) const { ++ ++ VT = VT.getScalarType(); ++ ++ if (!VT.isSimple()) ++ return false; ++ ++ switch (VT.getSimpleVT().SimpleTy) { ++ case MVT::f32: ++ case MVT::f64: ++ return true; ++ default: ++ break; ++ } ++ ++ return false; ++} ++ ++bool LoongArchTargetLowering::isExtractSubvectorCheap(EVT ResVT, EVT SrcVT, ++ unsigned Index) const { ++ if (!isOperationLegalOrCustom(ISD::EXTRACT_SUBVECTOR, ResVT)) ++ return false; ++ ++ return ( ++ (ResVT != MVT::v16i8) && (ResVT != MVT::v8i16) && ++ (Index == 0 || (Index == ResVT.getVectorNumElements() && ++ (ResVT.getSizeInBits() == SrcVT.getSizeInBits() / 2)))); ++} ++ ++Register ++LoongArchTargetLowering::getRegisterByName(const char *RegName, LLT VT, ++ const MachineFunction &MF) const { ++ // Named registers is expected to be fairly rare. For now, just support $r2 ++ // and $r21 since the linux kernel uses them. ++ if (Subtarget.is64Bit()) { ++ Register Reg = StringSwitch(RegName) ++ .Case("$r2", LoongArch::TP_64) ++ .Case("$r21", LoongArch::T9_64) ++ .Default(Register()); ++ if (Reg) ++ return Reg; ++ } else { ++ Register Reg = StringSwitch(RegName) ++ .Case("$r2", LoongArch::TP) ++ .Case("$r21", LoongArch::T9) ++ .Default(Register()); ++ if (Reg) ++ return Reg; ++ } ++ report_fatal_error("Invalid register name global variable"); ++} ++ ++bool LoongArchTargetLowering::hasAndNot(SDValue Y) const { ++ return Y.getValueType().isScalarInteger() && !isa(Y); ++} +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchISelLowering.h b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchISelLowering.h +new file mode 100644 +index 00000000000..488e0305af5 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchISelLowering.h +@@ -0,0 +1,568 @@ ++//===- LoongArchISelLowering.h - LoongArch DAG Lowering Interface ---------*- C++ -*-===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++// ++// This file defines the interfaces that LoongArch uses to lower LLVM code into a ++// selection DAG. ++// ++//===----------------------------------------------------------------------===// ++ ++#ifndef LLVM_LIB_TARGET_LOONGARCH_LOONGARCHISELLOWERING_H ++#define LLVM_LIB_TARGET_LOONGARCH_LOONGARCHISELLOWERING_H ++ ++#include "MCTargetDesc/LoongArchABIInfo.h" ++#include "MCTargetDesc/LoongArchBaseInfo.h" ++#include "MCTargetDesc/LoongArchMCTargetDesc.h" ++#include "LoongArch.h" ++#include "llvm/CodeGen/CallingConvLower.h" ++#include "llvm/CodeGen/ISDOpcodes.h" ++#include "llvm/CodeGen/MachineMemOperand.h" ++#include "llvm/CodeGen/SelectionDAG.h" ++#include "llvm/CodeGen/SelectionDAGNodes.h" ++#include "llvm/CodeGen/TargetLowering.h" ++#include "llvm/CodeGen/ValueTypes.h" ++#include "llvm/IR/CallingConv.h" ++#include "llvm/IR/InlineAsm.h" ++#include "llvm/IR/Type.h" ++#include "llvm/Support/MachineValueType.h" ++#include "llvm/Target/TargetMachine.h" ++#include ++#include ++#include ++#include ++#include ++#include ++ ++namespace llvm { ++ ++class Argument; ++class CCState; ++class CCValAssign; ++class FastISel; ++class FunctionLoweringInfo; ++class MachineBasicBlock; ++class MachineFrameInfo; ++class MachineInstr; ++class LoongArchCCState; ++class LoongArchFunctionInfo; ++class LoongArchSubtarget; ++class LoongArchTargetMachine; ++class SelectionDAG; ++class TargetLibraryInfo; ++class TargetRegisterClass; ++ ++ namespace LoongArchISD { ++ ++ enum NodeType : unsigned { ++ // Start the numbering from where ISD NodeType finishes. ++ FIRST_NUMBER = ISD::BUILTIN_OP_END, ++ ++ // Jump and link (call) ++ JmpLink, ++ ++ // Tail call ++ TailCall, ++ ++ // global address ++ GlobalAddress, ++ ++ // Floating Point Branch Conditional ++ FPBrcond, ++ ++ // Floating Point Compare ++ FPCmp, ++ ++ // Floating Point Conditional Moves ++ CMovFP_T, ++ CMovFP_F, ++ FSEL, ++ ++ // FP-to-int truncation node. ++ TruncIntFP, ++ ++ // Return ++ Ret, ++ ++ // error trap Return ++ ERet, ++ ++ // Software Exception Return. ++ EH_RETURN, ++ ++ DBAR, ++ ++ BSTRPICK, ++ BSTRINS, ++ ++ // Vector comparisons. ++ // These take a vector and return a boolean. ++ VALL_ZERO, ++ VANY_ZERO, ++ VALL_NONZERO, ++ VANY_NONZERO, ++ ++ // Vector Shuffle with mask as an operand ++ VSHF, // Generic shuffle ++ SHF, // 4-element set shuffle. ++ VPACKEV, // Interleave even elements ++ VPACKOD, // Interleave odd elements ++ VILVH, // Interleave left elements ++ VILVL, // Interleave right elements ++ VPICKEV, // Pack even elements ++ VPICKOD, // Pack odd elements ++ ++ // Vector Lane Copy ++ INSVE, // Copy element from one vector to another ++ ++ // Combined (XOR (OR $a, $b), -1) ++ VNOR, ++ ++ VROR, ++ VRORI, ++ XVPICKVE, ++ XVPERMI, ++ XVSHUF4I, ++ REVBD, ++ ++ // Extended vector element extraction ++ VEXTRACT_SEXT_ELT, ++ VEXTRACT_ZEXT_ELT, ++ ++ XVBROADCAST, ++ VBROADCAST, ++ VABSD, ++ UVABSD, ++ }; ++ ++ } // ene namespace LoongArchISD ++ ++ //===--------------------------------------------------------------------===// ++ // TargetLowering Implementation ++ //===--------------------------------------------------------------------===// ++ ++ class LoongArchTargetLowering : public TargetLowering { ++ public: ++ explicit LoongArchTargetLowering(const LoongArchTargetMachine &TM, ++ const LoongArchSubtarget &STI); ++ ++ bool allowsMisalignedMemoryAccesses( ++ EVT VT, unsigned AS = 0, unsigned Align = 1, ++ MachineMemOperand::Flags Flags = MachineMemOperand::MONone, ++ bool *Fast = nullptr) const override; ++ ++ /// Enable LSX support for the given integer type and Register ++ /// class. ++ void addLSXIntType(MVT::SimpleValueType Ty, const TargetRegisterClass *RC); ++ ++ /// Enable LSX support for the given floating-point type and ++ /// Register class. ++ void addLSXFloatType(MVT::SimpleValueType Ty, ++ const TargetRegisterClass *RC); ++ ++ /// Enable LASX support for the given integer type and Register ++ /// class. ++ void addLASXIntType(MVT::SimpleValueType Ty, const TargetRegisterClass *RC); ++ ++ /// Enable LASX support for the given floating-point type and ++ /// Register class. ++ void addLASXFloatType(MVT::SimpleValueType Ty, ++ const TargetRegisterClass *RC); ++ ++ MVT getScalarShiftAmountTy(const DataLayout &, EVT) const override { ++ return MVT::i32; ++ } ++ ++ EVT getTypeForExtReturn(LLVMContext &Context, EVT VT, ++ ISD::NodeType) const override; ++ ++ bool isCheapToSpeculateCttz() const override; ++ bool isCheapToSpeculateCtlz() const override; ++ ++ bool isLegalAddImmediate(int64_t) const override; ++ ++ /// Return the correct alignment for the current calling convention. ++ Align getABIAlignmentForCallingConv(Type *ArgTy, ++ DataLayout DL) const override { ++ const Align ABIAlign = (Align) DL.getABITypeAlignment(ArgTy); ++ if (ArgTy->isVectorTy()) ++ return std::min(ABIAlign, Align(8)); ++ return ABIAlign; ++ } ++ ++ ISD::NodeType getExtendForAtomicOps() const override { ++ return ISD::SIGN_EXTEND; ++ } ++ ++ bool isExtractSubvectorCheap(EVT ResVT, EVT SrcVT, ++ unsigned Index) const override; ++ ++ void LowerOperationWrapper(SDNode *N, ++ SmallVectorImpl &Results, ++ SelectionDAG &DAG) const override; ++ ++ /// LowerOperation - Provide custom lowering hooks for some operations. ++ SDValue LowerOperation(SDValue Op, SelectionDAG &DAG) const override; ++ ++ bool isFMAFasterThanFMulAndFAdd(const MachineFunction &MF, ++ EVT VT) const override; ++ ++ /// ReplaceNodeResults - Replace the results of node with an illegal result ++ /// type with new values built out of custom code. ++ /// ++ void ReplaceNodeResults(SDNode *N, SmallVectorImpl&Results, ++ SelectionDAG &DAG) const override; ++ ++ /// getTargetNodeName - This method returns the name of a target specific ++ // DAG node. ++ const char *getTargetNodeName(unsigned Opcode) const override; ++ ++ /// getSetCCResultType - get the ISD::SETCC result ValueType ++ EVT getSetCCResultType(const DataLayout &DL, LLVMContext &Context, ++ EVT VT) const override; ++ ++ SDValue PerformDAGCombine(SDNode *N, DAGCombinerInfo &DCI) const override; ++ ++ MachineBasicBlock * ++ EmitInstrWithCustomInserter(MachineInstr &MI, ++ MachineBasicBlock *MBB) const override; ++ ++ bool isShuffleMaskLegal(ArrayRef Mask, EVT VT) const override { ++ return false; ++ } ++ ++ bool hasAndNot(SDValue Y) const override; ++ ++ const TargetRegisterClass *getRepRegClassFor(MVT VT) const override; ++ ++ void AdjustInstrPostInstrSelection(MachineInstr &MI, ++ SDNode *Node) const override; ++ ++ void HandleByVal(CCState *, unsigned &, unsigned) const override; ++ ++ Register getRegisterByName(const char* RegName, LLT VT, ++ const MachineFunction &MF) const override; ++ ++ /// If a physical register, this returns the register that receives the ++ /// exception address on entry to an EH pad. ++ unsigned ++ getExceptionPointerRegister(const Constant *PersonalityFn) const override { ++ return ABI.IsLP64() ? LoongArch::A0_64 : LoongArch::A0; ++ } ++ ++ /// If a physical register, this returns the register that receives the ++ /// exception typeid on entry to a landing pad. ++ unsigned ++ getExceptionSelectorRegister(const Constant *PersonalityFn) const override { ++ return ABI.IsLP64() ? LoongArch::A1_64 : LoongArch::A1; ++ } ++ ++ /// Returns true if a cast between SrcAS and DestAS is a noop. ++ bool isNoopAddrSpaceCast(unsigned SrcAS, unsigned DestAS) const override { ++ // Mips doesn't have any special address spaces so we just reserve ++ // the first 256 for software use (e.g. OpenCL) and treat casts ++ // between them as noops. ++ return SrcAS < 256 && DestAS < 256; ++ } ++ ++ bool isJumpTableRelative() const override { ++ return getTargetMachine().isPositionIndependent(); ++ } ++ ++ CCAssignFn *CCAssignFnForCall() const; ++ ++ CCAssignFn *CCAssignFnForReturn() const; ++ ++ private: ++ template ++ SDValue getAddr(NodeTy *N, SelectionDAG &DAG, bool IsLocal = true) const; ++ ++ /// This function fills Ops, which is the list of operands that will later ++ /// be used when a function call node is created. It also generates ++ /// copyToReg nodes to set up argument registers. ++ void getOpndList(SmallVectorImpl &Ops, ++ std::deque> &RegsToPass, ++ bool IsPICCall, bool GlobalOrExternal, bool IsCallReloc, ++ CallLoweringInfo &CLI, SDValue Callee, SDValue Chain, ++ bool IsTailCall) const; ++ ++ SDValue lowerLOAD(SDValue Op, SelectionDAG &DAG) const; ++ SDValue lowerSTORE(SDValue Op, SelectionDAG &DAG) const; ++ ++ // Subtarget Info ++ const LoongArchSubtarget &Subtarget; ++ // Cache the ABI from the TargetMachine, we use it everywhere. ++ const LoongArchABIInfo &ABI; ++ ++ // Create a TargetGlobalAddress node. ++ SDValue getTargetNode(GlobalAddressSDNode *N, EVT Ty, SelectionDAG &DAG, ++ unsigned Flag) const; ++ ++ // Create a TargetExternalSymbol node. ++ SDValue getTargetNode(ExternalSymbolSDNode *N, EVT Ty, SelectionDAG &DAG, ++ unsigned Flag) const; ++ ++ // Create a TargetBlockAddress node. ++ SDValue getTargetNode(BlockAddressSDNode *N, EVT Ty, SelectionDAG &DAG, ++ unsigned Flag) const; ++ ++ // Create a TargetJumpTable node. ++ SDValue getTargetNode(JumpTableSDNode *N, EVT Ty, SelectionDAG &DAG, ++ unsigned Flag) const; ++ ++ // Create a TargetConstantPool node. ++ SDValue getTargetNode(ConstantPoolSDNode *N, EVT Ty, SelectionDAG &DAG, ++ unsigned Flag) const; ++ ++ // Lower Operand helpers ++ SDValue LowerCallResult(SDValue Chain, SDValue InFlag, ++ CallingConv::ID CallConv, bool isVarArg, ++ const SmallVectorImpl &Ins, ++ const SDLoc &dl, SelectionDAG &DAG, ++ SmallVectorImpl &InVals, ++ TargetLowering::CallLoweringInfo &CLI) const; ++ ++ // Lower Operand specifics ++ SDValue lowerINTRINSIC_WO_CHAIN(SDValue Op, SelectionDAG &DAG) const; ++ SDValue lowerINTRINSIC_W_CHAIN(SDValue Op, SelectionDAG &DAG) const; ++ SDValue lowerINTRINSIC_VOID(SDValue Op, SelectionDAG &DAG) const; ++ SDValue lowerEXTRACT_VECTOR_ELT(SDValue Op, SelectionDAG &DAG) const; ++ SDValue lowerINSERT_VECTOR_ELT(SDValue Op, SelectionDAG &DAG) const; ++ SDValue lowerBUILD_VECTOR(SDValue Op, SelectionDAG &DAG) const; ++ SDValue lowerUINT_TO_FP(SDValue Op, SelectionDAG &DAG) const; ++ SDValue lowerSINT_TO_FP(SDValue Op, SelectionDAG &DAG) const; ++ SDValue lowerFP_TO_UINT(SDValue Op, SelectionDAG &DAG) const; ++ SDValue lowerFP_TO_SINT(SDValue Op, SelectionDAG &DAG) const; ++ /// Lower VECTOR_SHUFFLE into one of a number of instructions ++ /// depending on the indices in the shuffle. ++ SDValue lowerVECTOR_SHUFFLE(SDValue Op, SelectionDAG &DAG) const; ++ SDValue lowerBRCOND(SDValue Op, SelectionDAG &DAG) const; ++ SDValue lowerConstantPool(SDValue Op, SelectionDAG &DAG) const; ++ SDValue lowerGlobalAddress(SDValue Op, SelectionDAG &DAG) const; ++ SDValue lowerBlockAddress(SDValue Op, SelectionDAG &DAG) const; ++ SDValue lowerGlobalTLSAddress(SDValue Op, SelectionDAG &DAG) const; ++ SDValue lowerJumpTable(SDValue Op, SelectionDAG &DAG) const; ++ SDValue lowerSELECT(SDValue Op, SelectionDAG &DAG) const; ++ SDValue lowerSETCC(SDValue Op, SelectionDAG &DAG) const; ++ SDValue lowerVASTART(SDValue Op, SelectionDAG &DAG) const; ++ SDValue lowerVAARG(SDValue Op, SelectionDAG &DAG) const; ++ SDValue lowerFABS(SDValue Op, SelectionDAG &DAG) const; ++ SDValue lowerFRAMEADDR(SDValue Op, SelectionDAG &DAG) const; ++ SDValue lowerRETURNADDR(SDValue Op, SelectionDAG &DAG) const; ++ SDValue lowerEH_RETURN(SDValue Op, SelectionDAG &DAG) const; ++ SDValue lowerATOMIC_FENCE(SDValue Op, SelectionDAG& DAG) const; ++ SDValue lowerShiftLeftParts(SDValue Op, SelectionDAG& DAG) const; ++ SDValue lowerShiftRightParts(SDValue Op, SelectionDAG& DAG, ++ bool IsSRA) const; ++ SDValue lowerEH_DWARF_CFA(SDValue Op, SelectionDAG &DAG) const; ++ ++ /// isEligibleForTailCallOptimization - Check whether the call is eligible ++ /// for tail call optimization. ++ bool ++ isEligibleForTailCallOptimization(const CCState &CCInfo, ++ CallLoweringInfo &CLI, MachineFunction &MF, ++ unsigned NextStackOffset, ++ const LoongArchFunctionInfo &FI) const; ++ ++ /// copyByValArg - Copy argument registers which were used to pass a byval ++ /// argument to the stack. Create a stack frame object for the byval ++ /// argument. ++ void copyByValRegs(SDValue Chain, const SDLoc &DL, ++ std::vector &OutChains, SelectionDAG &DAG, ++ const ISD::ArgFlagsTy &Flags, ++ SmallVectorImpl &InVals, ++ const Argument *FuncArg, unsigned FirstReg, ++ unsigned LastReg, const CCValAssign &VA, ++ LoongArchCCState &State) const; ++ ++ /// passByValArg - Pass a byval argument in registers or on stack. ++ void passByValArg(SDValue Chain, const SDLoc &DL, ++ std::deque> &RegsToPass, ++ SmallVectorImpl &MemOpChains, SDValue StackPtr, ++ MachineFrameInfo &MFI, SelectionDAG &DAG, SDValue Arg, ++ unsigned FirstReg, unsigned LastReg, ++ const ISD::ArgFlagsTy &Flags, ++ const CCValAssign &VA) const; ++ ++ /// writeVarArgRegs - Write variable function arguments passed in registers ++ /// to the stack. Also create a stack frame object for the first variable ++ /// argument. ++ void writeVarArgRegs(std::vector &OutChains, SDValue Chain, ++ const SDLoc &DL, SelectionDAG &DAG, ++ CCState &State) const; ++ ++ SDValue ++ LowerFormalArguments(SDValue Chain, CallingConv::ID CallConv, bool isVarArg, ++ const SmallVectorImpl &Ins, ++ const SDLoc &dl, SelectionDAG &DAG, ++ SmallVectorImpl &InVals) const override; ++ ++ SDValue passArgOnStack(SDValue StackPtr, unsigned Offset, SDValue Chain, ++ SDValue Arg, const SDLoc &DL, bool IsTailCall, ++ SelectionDAG &DAG) const; ++ ++ SDValue LowerCall(TargetLowering::CallLoweringInfo &CLI, ++ SmallVectorImpl &InVals) const override; ++ ++ bool CanLowerReturn(CallingConv::ID CallConv, MachineFunction &MF, ++ bool isVarArg, ++ const SmallVectorImpl &Outs, ++ LLVMContext &Context) const override; ++ ++ SDValue LowerReturn(SDValue Chain, CallingConv::ID CallConv, bool isVarArg, ++ const SmallVectorImpl &Outs, ++ const SmallVectorImpl &OutVals, ++ const SDLoc &dl, SelectionDAG &DAG) const override; ++ ++ bool shouldSignExtendTypeInLibCall(EVT Type, bool IsSigned) const override; ++ ++ // Inline asm support ++ ConstraintType getConstraintType(StringRef Constraint) const override; ++ ++ /// Examine constraint string and operand type and determine a weight value. ++ /// The operand object must already have been set up with the operand type. ++ ConstraintWeight getSingleConstraintMatchWeight( ++ AsmOperandInfo &info, const char *constraint) const override; ++ ++ /// This function parses registers that appear in inline-asm constraints. ++ /// It returns pair (0, 0) on failure. ++ std::pair ++ parseRegForInlineAsmConstraint(StringRef C, MVT VT) const; ++ ++ std::pair ++ getRegForInlineAsmConstraint(const TargetRegisterInfo *TRI, ++ StringRef Constraint, MVT VT) const override; ++ ++ /// LowerAsmOperandForConstraint - Lower the specified operand into the Ops ++ /// vector. If it is invalid, don't add anything to Ops. If hasMemory is ++ /// true it means one of the asm constraint of the inline asm instruction ++ /// being processed is 'm'. ++ void LowerAsmOperandForConstraint(SDValue Op, ++ std::string &Constraint, ++ std::vector &Ops, ++ SelectionDAG &DAG) const override; ++ ++ unsigned ++ getInlineAsmMemConstraint(StringRef ConstraintCode) const override { ++ if (ConstraintCode == "R") ++ return InlineAsm::Constraint_R; ++ else if (ConstraintCode == "ZC") ++ return InlineAsm::Constraint_ZC; ++ else if (ConstraintCode == "ZB") ++ return InlineAsm::Constraint_ZB; ++ return TargetLowering::getInlineAsmMemConstraint(ConstraintCode); ++ } ++ ++ bool isLegalAddressingMode(const DataLayout &DL, const AddrMode &AM, ++ Type *Ty, unsigned AS, ++ Instruction *I = nullptr) const override; ++ ++ bool isOffsetFoldingLegal(const GlobalAddressSDNode *GA) const override; ++ ++ EVT getOptimalMemOpType(uint64_t Size, unsigned DstAlign, unsigned SrcAlign, ++ bool IsMemset, bool ZeroMemset, bool MemcpyStrSrc, ++ const AttributeList &FuncAttributes) const override; ++ ++ /// isFPImmLegal - Returns true if the target can instruction select the ++ /// specified FP immediate natively. If false, the legalizer will ++ /// materialize the FP immediate as a load from a constant pool. ++ bool isFPImmLegal(const APFloat &Imm, EVT VT, ++ bool ForCodeSize) const override; ++ ++ bool useSoftFloat() const override; ++ ++ bool shouldInsertFencesForAtomic(const Instruction *I) const override { ++ return isa(I) || isa(I); ++ } ++ ++ /// Emit a sign-extension using sll/sra, seb, or seh appropriately. ++ MachineBasicBlock *emitSignExtendToI32InReg(MachineInstr &MI, ++ MachineBasicBlock *BB, ++ unsigned Size, unsigned DstReg, ++ unsigned SrcRec) const; ++ ++ MachineBasicBlock *emitLoadAddress(MachineInstr &MI, ++ MachineBasicBlock *BB) const; ++ MachineBasicBlock *emitAtomicBinary(MachineInstr &MI, ++ MachineBasicBlock *BB) const; ++ MachineBasicBlock *emitAtomicBinaryPartword(MachineInstr &MI, ++ MachineBasicBlock *BB, ++ unsigned Size) const; ++ ++ MachineBasicBlock *emitXINSERT_B(MachineInstr &MI, ++ MachineBasicBlock *BB) const; ++ MachineBasicBlock *emitINSERT_H_VIDX(MachineInstr &MI, ++ MachineBasicBlock *BB) const; ++ ++ MachineBasicBlock *emitAtomicCmpSwap(MachineInstr &MI, ++ MachineBasicBlock *BB) const; ++ MachineBasicBlock *emitAtomicCmpSwapPartword(MachineInstr &MI, ++ MachineBasicBlock *BB, ++ unsigned Size) const; ++ MachineBasicBlock *emitSEL_D(MachineInstr &MI, MachineBasicBlock *BB) const; ++ ++ MachineBasicBlock *emitPseudoSELECT(MachineInstr &MI, MachineBasicBlock *BB, ++ bool isFPCmp, unsigned Opc) const; ++ ++ /// SE ++ MachineBasicBlock *emitLSXCBranchPseudo(MachineInstr &MI, ++ MachineBasicBlock *BB, ++ unsigned BranchOp) const; ++ /// Emit the COPY_FW pseudo instruction ++ MachineBasicBlock *emitCOPY_FW(MachineInstr &MI, ++ MachineBasicBlock *BB) const; ++ /// Emit the COPY_FD pseudo instruction ++ MachineBasicBlock *emitCOPY_FD(MachineInstr &MI, ++ MachineBasicBlock *BB) const; ++ ++ MachineBasicBlock *emitXCOPY_FW(MachineInstr &MI, ++ MachineBasicBlock *BB) const; ++ ++ MachineBasicBlock *emitXCOPY_FD(MachineInstr &MI, ++ MachineBasicBlock *BB) const; ++ ++ MachineBasicBlock *emitCONCAT_VECTORS(MachineInstr &MI, ++ MachineBasicBlock *BB, ++ unsigned Bytes) const; ++ ++ MachineBasicBlock *emitXCOPY_FW_GPR(MachineInstr &MI, ++ MachineBasicBlock *BB) const; ++ ++ MachineBasicBlock *emitXINSERT_BH(MachineInstr &MI, MachineBasicBlock *BB, ++ unsigned EltSizeInBytes) const; ++ ++ MachineBasicBlock *emitXINSERT_FW(MachineInstr &MI, ++ MachineBasicBlock *BB) const; ++ ++ /// Emit the INSERT_FW pseudo instruction ++ MachineBasicBlock *emitINSERT_FW(MachineInstr &MI, ++ MachineBasicBlock *BB) const; ++ /// Emit the INSERT_FD pseudo instruction ++ MachineBasicBlock *emitINSERT_FD(MachineInstr &MI, ++ MachineBasicBlock *BB) const; ++ ++ MachineBasicBlock *emitXINSERT_FD(MachineInstr &MI, ++ MachineBasicBlock *BB) const; ++ ++ MachineBasicBlock *emitXINSERT_DF_VIDX(MachineInstr &MI, ++ MachineBasicBlock *BB, ++ bool IsGPR64) const; ++ /// Emit the FILL_FW pseudo instruction ++ MachineBasicBlock *emitFILL_FW(MachineInstr &MI, ++ MachineBasicBlock *BB) const; ++ /// Emit the FILL_FD pseudo instruction ++ MachineBasicBlock *emitFILL_FD(MachineInstr &MI, ++ MachineBasicBlock *BB) const; ++ ++ MachineBasicBlock *emitXFILL_FW(MachineInstr &MI, ++ MachineBasicBlock *BB) const; ++ MachineBasicBlock *emitXFILL_FD(MachineInstr &MI, ++ MachineBasicBlock *BB) const; ++ }; ++ ++} // end namespace llvm ++ ++#endif // LLVM_LIB_TARGET_LOONGARCH_LOONGARCHISELLOWERING_H +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchInstrFormats.td b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchInstrFormats.td +new file mode 100644 +index 00000000000..d75d5198bde +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchInstrFormats.td +@@ -0,0 +1,790 @@ ++//===-- LoongArchInstrFormats.td - LoongArch Instruction Formats -----*- tablegen -*-===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++ ++//===----------------------------------------------------------------------===// ++// Describe LoongArch instructions format ++// ++// CPU INSTRUCTION FORMATS ++// ++// opcode - operation code. ++// rs - src reg. ++// rt - dst reg (on a 2 regs instr) or src reg (on a 3 reg instr). ++// rd - dst reg, only used on 3 regs instr. ++// shamt - only used on shift instructions, contains the shift amount. ++// funct - combined with opcode field give us an operation code. ++// ++//===----------------------------------------------------------------------===// ++ ++class StdArch { ++ ++ bits<32> Inst; ++} ++ ++// Format specifies the encoding used by the instruction. This is part of the ++// ad-hoc solution used to emit machine instruction encodings by our machine ++// code emitter. ++class Format val> { ++ bits<4> Value = val; ++} ++ ++def Pseudo : Format<0>; ++def FrmR : Format<1>; ++def FrmI : Format<2>; ++def FrmJ : Format<3>; ++def FrmFR : Format<4>; ++def FrmFI : Format<5>; ++def FrmOther : Format<6>; ++ ++// Generic LoongArch Format ++class InstLA pattern, Format f> ++ : Instruction ++{ ++ field bits<32> Inst; ++ Format Form = f; ++ ++ let Namespace = "LoongArch"; ++ ++ let Size = 4; ++ ++ let OutOperandList = outs; ++ let InOperandList = ins; ++ let AsmString = asmstr; ++ let Pattern = pattern; ++ ++ // ++ // Attributes specific to LoongArch instructions... ++ // ++ bits<4> FormBits = Form.Value; ++ bit isCTI = 0; // Any form of Control Transfer Instruction. ++ // Required for LoongArch ++ bit hasForbiddenSlot = 0; // Instruction has a forbidden slot. ++ bit IsPCRelativeLoad = 0; // Load instruction with implicit source register ++ // ($pc) and with explicit offset and destination ++ // register ++ bit hasFCCRegOperand = 0; // Instruction uses $fcc register ++ ++ // TSFlags layout should be kept in sync with MCTargetDesc/LoongArchBaseInfo.h. ++ let TSFlags{3-0} = FormBits; ++ let TSFlags{4} = isCTI; ++ let TSFlags{5} = hasForbiddenSlot; ++ let TSFlags{6} = IsPCRelativeLoad; ++ let TSFlags{7} = hasFCCRegOperand; ++ ++ let DecoderNamespace = "LoongArch"; ++ ++ field bits<32> SoftFail = 0; ++} ++ ++class InstForm pattern, ++ Format f, string opstr = ""> : ++ InstLA { ++ string BaseOpcode = opstr; ++ string Arch; ++} ++ ++class LoongArch_str { ++ string Arch; ++ string BaseOpcode = opstr; ++} ++ ++//===-----------------------------------------------------------===// ++// Format instruction classes in the LoongArch ++//===-----------------------------------------------------------===// ++ ++// R2 classes: 2 registers ++// ++class R2 : StdArch { ++ bits<5> rj; ++ bits<5> rd; ++ ++ let Inst{9-5} = rj; ++ let Inst{4-0} = rd; ++} ++ ++class R2I op> ++ : R2 { ++ let Inst{31-15} = 0x0; ++ let Inst{14-10} = op; ++} ++ ++class R2F op> ++ : R2 { ++ bits<5> fj; ++ bits<5> fd; ++ ++ let Inst{31-20} = 0x11; ++ let Inst{19-10} = op; ++ let Inst{9-5} = fj; ++ let Inst{4-0} = fd; ++} ++ ++class MOVFI op> ++ : R2 { ++ bits<5> rj; ++ bits<5> fd; ++ ++ let Inst{31-20} = 0x11; ++ let Inst{19-10} = op; ++ let Inst{9-5} = rj; ++ let Inst{4-0} = fd; ++} ++ ++class MOVIF op> ++ : R2 { ++ bits<5> fj; ++ bits<5> rd; ++ ++ let Inst{31-20} = 0x11; ++ let Inst{19-10} = op; ++ let Inst{9-5} = fj; ++ let Inst{4-0} = rd; ++} ++ ++class R2P op> ++ : R2 { ++ let Inst{31-13} = 0x3240; ++ let Inst{12-10} = op; ++} ++ ++class R2_CSR op> ++ : StdArch { ++ bits<5> rj; ++ bits<5> rd; ++ bits<14> csr; ++ ++ let Inst{31-24} = op; ++ let Inst{23-10} = csr; ++ let Inst{9-5} = rj; ++ let Inst{4-0} = rd; ++} ++ ++class R2_SI16 op> ++ : StdArch { ++ bits<5> rd; ++ bits<5> rj; ++ bits<16> si16; ++ ++ let Inst{31-26} = op; ++ let Inst{25-10} = si16; ++ let Inst{9-5} = rj; ++ let Inst{4-0} = rd; ++} ++ ++class R2_COND op, bits<5> cond> ++ : StdArch { ++ bits<5> fj; ++ bits<5> fk; ++ bits<3> cd; ++ ++ let Inst{31-22} = 0x30; ++ let Inst{21-20} = op; ++ let Inst{19-15} = cond; ++ let Inst{14-10} = fk; ++ let Inst{9-5} = fj; ++ let Inst{4-3} = 0b00; ++ let Inst{2-0} = cd; ++} ++ ++class R2_LEVEL op> ++ : StdArch { ++ bits<5> rj; ++ bits<5> rd; ++ bits<8> level; ++ ++ let Inst{31-18} = op; ++ let Inst{17-10} = level; ++ let Inst{9-5} = rj; ++ let Inst{4-0} = rd; ++} ++ ++class IMM32 op> ++ : StdArch { ++ let Inst{31-16} = 0x0648; ++ let Inst{15-10} = op; ++ let Inst{9-0} = 0; ++} ++ ++class WAIT_FM : StdArch { ++ bits<15> hint; ++ ++ let Inst{31-15} = 0xc91; ++ let Inst{14-0} = hint; ++} ++ ++class R2_INVTLB : StdArch { ++ bits<5> rj; ++ bits<5> op; ++ bits<5> rk; ++ ++ let Inst{31-15} = 0xc93; ++ let Inst{14-10} = rk; ++ let Inst{9-5} = rj; ++ let Inst{4-0} = op; ++} ++ ++class BAR_FM op> ++ : StdArch { ++ bits<15> hint; ++ ++ let Inst{31-16} = 0x3872; ++ let Inst{15} = op; ++ let Inst{14-0} = hint; ++} ++ ++class PRELD_FM : StdArch { ++ bits<5> rj; ++ bits<5> hint; ++ bits<12> imm12; ++ ++ let Inst{31-22} = 0xab; ++ let Inst{21-10} = imm12; ++ let Inst{9-5} = rj; ++ let Inst{4-0} = hint; ++} ++ ++// R3 classes: 3 registers ++// ++class R3 : StdArch { ++ bits<5> rk; ++ bits<5> rj; ++ bits<5> rd; ++ ++ let Inst{14-10} = rk; ++ let Inst{9-5} = rj; ++ let Inst{4-0} = rd; ++} ++ ++class R3I op> ++ : R3 { ++ let Inst{31-22} = 0x0; ++ let Inst{21-15} = op; ++} ++ ++class R3F op> ++ : R3 { ++ bits<5> fk; ++ bits<5> fj; ++ bits<5> fd; ++ ++ let Inst{31-21} = 0x8; ++ let Inst{20-15} = op; ++ let Inst{14-10} = fk; ++ let Inst{9-5} = fj; ++ let Inst{4-0} = fd; ++} ++ ++class R3MI op> ++ : R3 { ++ let Inst{31-23} = 0x70; ++ let Inst{22-15} = op; ++} ++ ++class AM op> : StdArch { ++ bits<5> rk; ++ bits<17> addr; // rj + 12 bits offset 0 ++ bits<5> rd; ++ ++ let Inst{31-21} = 0x1c3; ++ let Inst{20-15} = op; ++ let Inst{14-10} = rk; ++ let Inst{9-5} = addr{16-12}; ++ let Inst{4-0} = rd; ++} ++ ++class R3MF op> ++ : R3 { ++ bits<5> fd; ++ ++ let Inst{31-23} = 0x70; ++ let Inst{22-15} = op; ++ let Inst{4-0} = fd; ++} ++ ++class R3_SA2 op> ++ : StdArch { ++ bits<5> rk; ++ bits<5> rj; ++ bits<5> rd; ++ bits<2> sa; ++ ++ let Inst{31-22} = 0x0; ++ let Inst{21-17} = op; ++ let Inst{16-15} = sa; ++ let Inst{14-10} = rk; ++ let Inst{9-5} = rj; ++ let Inst{4-0} = rd; ++} ++ ++class R3_SA3 : StdArch { ++ bits<5> rk; ++ bits<5> rj; ++ bits<5> rd; ++ bits<3> sa; ++ ++ let Inst{31-18} = 3; ++ let Inst{17-15} = sa; ++ let Inst{14-10} = rk; ++ let Inst{9-5} = rj; ++ let Inst{4-0} = rd; ++} ++ ++// R4 classes: 4 registers ++// ++class R4MUL op> ++ : StdArch { ++ bits<5> fa; ++ bits<5> fk; ++ bits<5> fj; ++ bits<5> fd; ++ ++ let Inst{31-24} = 0x8; ++ let Inst{23-20} = op; ++ let Inst{19-15} = fa; ++ let Inst{14-10} = fk; ++ let Inst{9-5} = fj; ++ let Inst{4-0} = fd; ++} ++ ++class R4CMP op> ++ : StdArch { ++ bits<5> cond; ++ bits<5> fk; ++ bits<5> fj; ++ bits<3> cd; ++ ++ let Inst{31-22} = 0x30; ++ let Inst{21-20} = op; ++ let Inst{19-15} = cond; ++ let Inst{14-10} = fk; ++ let Inst{9-5} = fj; ++ let Inst{4-3} = 0; ++ let Inst{2-0} = cd; ++} ++ ++class R4SEL : StdArch { ++ bits<3> ca; ++ bits<5> fk; ++ bits<5> fj; ++ bits<5> fd; ++ ++ let Inst{31-18} = 0x340; ++ let Inst{17-15} = ca; ++ let Inst{14-10} = fk; ++ let Inst{9-5} = fj; ++ let Inst{4-0} = fd; ++} ++ ++// R2_IMM5 classes: 2registers and 1 5bit-immediate ++// ++class R2_IMM5 op> ++ : StdArch { ++ bits<5> rj; ++ bits<5> rd; ++ bits<5> imm5; ++ ++ let Inst{31-20} = 0x4; ++ let Inst{19-18} = op; ++ let Inst{17-15} = 0x1; ++ let Inst{14-10} = imm5; ++ let Inst{9-5} = rj; ++ let Inst{4-0} = rd; ++} ++ ++// R2_IMM6 classes: 2registers and 1 6bit-immediate ++// ++class R2_IMM6 op> ++ : StdArch { ++ bits<5> rj; ++ bits<5> rd; ++ bits<6> imm6; ++ ++ let Inst{31-20} = 0x4; ++ let Inst{19-18} = op; ++ let Inst{17-16} = 0x1; ++ let Inst{15-10} = imm6; ++ let Inst{9-5} = rj; ++ let Inst{4-0} = rd; ++} ++ ++// R2_IMM12 classes: 2 registers and 1 12bit-immediate ++// ++class LOAD_STORE op> ++ : StdArch { ++ bits<5> rd; ++ bits<17> addr; ++ ++ let Inst{31-26} = 0xa; ++ let Inst{25-22} = op; ++ let Inst{21-10} = addr{11-0}; ++ let Inst{9-5} = addr{16-12}; ++ let Inst{4-0} = rd; ++} ++// for reloc ++class LOAD_STORE_RRI op> ++ : StdArch { ++ bits<5> rj; ++ bits<5> rd; ++ bits<12> imm12; ++ ++ let Inst{31-26} = 0xa; ++ let Inst{25-22} = op; ++ let Inst{21-10} = imm12; ++ let Inst{9-5} = rj; ++ let Inst{4-0} = rd; ++} ++ ++ ++class R2_IMM12 op> ++ : StdArch { ++ bits<5> rj; ++ bits<5> rd; ++ bits<12> imm12; ++ ++ let Inst{31-25} = 0x1; ++ let Inst{24-22} = op; ++ let Inst{21-10} = imm12; ++ let Inst{9-5} = rj; ++ let Inst{4-0} = rd; ++} ++ ++class LEA_ADDI_FM op> ++ : StdArch { ++ bits<5> rd; ++ bits<17> addr; ++ ++ let Inst{31-25} = 0x1; ++ let Inst{24-22} = op; ++ let Inst{21-10} = addr{11-0}; ++ let Inst{9-5} = addr{16-12}; ++ let Inst{4-0} = rd; ++} ++ ++// R2_IMM14 classes: 2 registers and 1 14bit-immediate ++// ++class LL_SC op> ++ : StdArch { ++ bits<5> rd; ++ bits<19> addr; ++ ++ let Inst{31-27} = 4; ++ let Inst{26-24} = op; ++ let Inst{23-10} = addr{13-0}; ++ let Inst{9-5} = addr{18-14}; ++ let Inst{4-0} = rd; ++} ++ ++// R2_IMM16 classes: 2 registers and 1 16bit-immediate ++// ++class R2_IMM16BEQ op> ++ : StdArch { ++ bits<5> rj; ++ bits<5> rd; ++ bits<16> offs16; ++ ++ let Inst{31-26} = op; ++ let Inst{25-10} = offs16; ++ let Inst{9-5} = rj; ++ let Inst{4-0} = rd; ++} ++ ++class R2_IMM16JIRL : StdArch { ++ bits<5> rj; ++ bits<5> rd; ++ bits<16> offs16; ++ ++ let Inst{31-26} = 0x13; ++ let Inst{25-10} = offs16; ++ let Inst{9-5} = rj; ++ let Inst{4-0} = rd; ++} ++ ++// R1_IMM21 classes: 1 registers and 1 21bit-immediate ++// ++class R1_IMM21BEQZ op> ++ : StdArch { ++ bits<5> rj; ++ bits<21> offs21; ++ ++ let Inst{31-26} = op; ++ let Inst{25-10} = offs21{15-0}; ++ let Inst{9-5} = rj; ++ let Inst{4-0} = offs21{20-16}; ++} ++ ++class R1_CSR op> ++ : StdArch { ++ bits<5> rd; ++ bits<14> csr; ++ ++ let Inst{31-24} = op{7-0}; ++ let Inst{23-10} = csr; ++ let Inst{9-5} = op{12-8}; ++ let Inst{4-0} = rd; ++} ++ ++class R1_SI20 op> ++ : StdArch { ++ bits<5> rd; ++ bits<20> si20; ++ ++ let Inst{31-25} = op; ++ let Inst{24-5} = si20; ++ let Inst{4-0} = rd; ++} ++ ++class R1_CACHE : StdArch { ++ bits<5> rj; ++ bits<5> op; ++ bits<12> si12; ++ ++ let Inst{31-22} = 0x18; ++ let Inst{21-10} = si12; ++ let Inst{9-5} = rj; ++ let Inst{4-0} = op; ++} ++ ++class R1_SEQ op> ++ : StdArch { ++ bits<5> rj; ++ bits<5> offset; ++ bits<8> seq; ++ ++ let Inst{31-18} = op; ++ let Inst{17-10} = seq; ++ let Inst{9-5} = rj; ++ let Inst{4-0} = 0b00000; ++} ++ ++class R1_BCEQZ op> ++ : StdArch { ++ bits<21> offset; ++ bits<3> cj; ++ ++ let Inst{31-26} = 0x12; ++ let Inst{25-10} = offset{15-0}; ++ let Inst{9-8} = op; ++ let Inst{7-5} = cj; ++ let Inst{4-0} = offset{20-16}; ++} ++ ++// IMM26 classes: 1 26bit-immediate ++// ++class IMM26B op> ++ : StdArch { ++ bits<26> offs26; ++ ++ let Inst{31-26} = op; ++ let Inst{25-10} = offs26{15-0}; ++ let Inst{9-0} = offs26{25-16}; ++} ++ ++// LoongArch Pseudo Instructions Format ++class LoongArchPseudo pattern> : ++ InstLA { ++ let isCodeGenOnly = 1; ++ let isPseudo = 1; ++} ++ ++// Pseudo-instructions for alternate assembly syntax (never used by codegen). ++// These are aliases that require C++ handling to convert to the target ++// instruction, while InstAliases can be handled directly by tblgen. ++class LoongArchAsmPseudoInst: ++ InstLA { ++ let isPseudo = 1; ++ let Pattern = []; ++} ++ ++// ++// Misc instruction classes ++class ASSERT op> ++ : StdArch { ++ bits<5> rk; ++ bits<5> rj; ++ ++ let Inst{31-17} = 0x0; ++ let Inst{16-15} = op; ++ let Inst{14-10} = rk; ++ let Inst{9-5} = rj; ++ let Inst{4-0} = 0x0; ++} ++ ++class CODE15 op> ++ : StdArch { ++ bits<15> Code; ++ ++ let Inst{31-22} = 0x0; ++ let Inst{21-15} = op; ++ let Inst{14-0} = Code; ++} ++ ++class INSERT_BIT32 op> ++ : StdArch { ++ bits<5> msbw; ++ bits<5> lsbw; ++ bits<5> rj; ++ bits<5> rd; ++ ++ let Inst{31-21} = 0x3; ++ let Inst{20-16} = msbw; ++ let Inst{15} = op; ++ let Inst{14-10} = lsbw; ++ let Inst{9-5} = rj; ++ let Inst{4-0} = rd; ++} ++ ++class INSERT_BIT64 op> ++ : StdArch { ++ bits<6> msbd; ++ bits<6> lsbd; ++ bits<5> rj; ++ bits<5> rd; ++ ++ let Inst{31-23} = 0x1; ++ let Inst{22} = op; ++ let Inst{21-16} = msbd; ++ let Inst{15-10} = lsbd; ++ let Inst{9-5} = rj; ++ let Inst{4-0} = rd; ++} ++ ++class MOVGPR2FCSR: StdArch { ++ bits<5> fcsr; ++ bits<5> rj; ++ ++ let Inst{31-10} = 0x4530; ++ let Inst{9-5} = rj; ++ let Inst{4-0} = fcsr; ++} ++ ++class MOVFCSR2GPR: StdArch { ++ bits<5> fcsr; ++ bits<5> rd; ++ ++ let Inst{31-10} = 0x4532; ++ let Inst{9-5} = fcsr; ++ let Inst{4-0} = rd; ++} ++ ++class MOVFGR2FCFR: StdArch { ++ bits<3> cd; ++ bits<5> fj; ++ ++ let Inst{31-10} = 0x4534; ++ let Inst{9-5} = fj; ++ let Inst{4-3} = 0; ++ let Inst{2-0} = cd; ++} ++ ++class MOVFCFR2FGR: StdArch { ++ bits<3> cj; ++ bits<5> fd; ++ ++ let Inst{31-10} = 0x4535; ++ let Inst{9-8} = 0; ++ let Inst{7-5} = cj; ++ let Inst{4-0} = fd; ++} ++ ++class MOVGPR2FCFR: StdArch { ++ bits<3> cd; ++ bits<5> rj; ++ ++ let Inst{31-10} = 0x4536; ++ let Inst{9-5} = rj; ++ let Inst{4-3} = 0; ++ let Inst{2-0} = cd; ++} ++ ++class MOVFCFR2GPR: StdArch { ++ bits<3> cj; ++ bits<5> rd; ++ ++ let Inst{31-10} = 0x4537; ++ let Inst{9-8} = 0; ++ let Inst{7-5} = cj; ++ let Inst{4-0} = rd; ++} ++ ++class LoongArchInst : InstLA<(outs), (ins), "", [], FrmOther> { ++} ++class JMP_OFFS_2R op> : LoongArchInst { ++ bits<5> rs; ++ bits<5> rd; ++ bits<16> offset; ++ ++ bits<32> Inst; ++ ++ let Inst{31-26} = op; ++ let Inst{25-10} = offset; ++ let Inst{9-5} = rs; ++ let Inst{4-0} = rd; ++} ++ ++class FJ op> : StdArch ++{ ++ bits<26> target; ++ ++ let Inst{31-26} = op; ++ let Inst{25-10} = target{15-0}; ++ let Inst{9-0} = target{25-16}; ++} ++ ++class LUI_FM : StdArch { ++ bits<5> rt; ++ bits<16> imm16; ++ ++ let Inst{31-26} = 0xf; ++ let Inst{25-21} = 0; ++ let Inst{20-16} = rt; ++ let Inst{15-0} = imm16; ++} ++ ++class R2_IMM12M_STD op> : StdArch { ++ bits<5> rj; ++ bits<5> rd; ++ bits<12> imm12; ++ ++ let Inst{31-26} = 0xa; ++ let Inst{25-22} = op; ++ let Inst{21-10} = imm12; ++ let Inst{9-5} = rj; ++ let Inst{4-0} = rd; ++} ++ ++class LLD_2R Code> : LoongArchInst { ++ bits<5> rd; ++ bits<19> addr; ++ bits<5> rj = addr{18-14}; ++ bits<14> offset = addr{13-0}; ++ ++ bits<32> Inst; ++ ++ let Inst{31-27} = 0x4; ++ let Inst{26-24} = Code; ++ let Inst{23-10} = offset; ++ let Inst{9-5} = rj; ++ let Inst{4-0} = rd; ++} ++ ++class CEQS_FM op> { ++ bits<5> fj; ++ bits<5> fk; ++ bits<3> cd; ++ bits<5> cond; ++ ++ bits<32> Inst; ++ ++ let Inst{31-22} = 0x30; ++ let Inst{21-20} = op; ++ let Inst{19-15} = cond; ++ let Inst{14-10} = fk; ++ let Inst{9-5} = fj; ++ let Inst{4-3} = 0b00; ++ let Inst{2-0} = cd; ++} ++ +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchInstrInfo.cpp b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchInstrInfo.cpp +new file mode 100644 +index 00000000000..9bea54ba905 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchInstrInfo.cpp +@@ -0,0 +1,1041 @@ ++//===- LoongArchInstrInfo.cpp - LoongArch Instruction Information -------------------===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++// ++// This file contains the LoongArch implementation of the TargetInstrInfo class. ++// ++//===----------------------------------------------------------------------===// ++ ++#include "LoongArchInstrInfo.h" ++#include "LoongArchSubtarget.h" ++#include "MCTargetDesc/LoongArchAnalyzeImmediate.h" ++#include "MCTargetDesc/LoongArchBaseInfo.h" ++#include "MCTargetDesc/LoongArchMCTargetDesc.h" ++#include "llvm/ADT/SmallVector.h" ++#include "llvm/CodeGen/MachineBasicBlock.h" ++#include "llvm/CodeGen/MachineFrameInfo.h" ++#include "llvm/CodeGen/MachineFunction.h" ++#include "llvm/CodeGen/MachineInstr.h" ++#include "llvm/CodeGen/MachineInstrBuilder.h" ++#include "llvm/CodeGen/MachineOperand.h" ++#include "llvm/CodeGen/RegisterScavenging.h" ++#include "llvm/CodeGen/TargetOpcodes.h" ++#include "llvm/CodeGen/TargetSubtargetInfo.h" ++#include "llvm/IR/DebugLoc.h" ++#include "llvm/MC/MCInstrDesc.h" ++#include "llvm/Target/TargetMachine.h" ++#include ++ ++using namespace llvm; ++ ++#define GET_INSTRINFO_CTOR_DTOR ++#include "LoongArchGenInstrInfo.inc" ++ ++// Pin the vtable to this file. ++void LoongArchInstrInfo::anchor() {} ++LoongArchInstrInfo::LoongArchInstrInfo(const LoongArchSubtarget &STI) ++ : LoongArchGenInstrInfo(LoongArch::ADJCALLSTACKDOWN, ++ LoongArch::ADJCALLSTACKUP), ++ RI(), Subtarget(STI) {} ++ ++const LoongArchRegisterInfo &LoongArchInstrInfo::getRegisterInfo() const { ++ return RI; ++} ++ ++/// isLoadFromStackSlot - If the specified machine instruction is a direct ++/// load from a stack slot, return the virtual or physical register number of ++/// the destination along with the FrameIndex of the loaded stack slot. If ++/// not, return 0. This predicate must return 0 if the instruction has ++/// any side effects other than loading from the stack slot. ++unsigned LoongArchInstrInfo::isLoadFromStackSlot(const MachineInstr &MI, ++ int &FrameIndex) const { ++ unsigned Opc = MI.getOpcode(); ++ if ((Opc == LoongArch::LD_W) || (Opc == LoongArch::LD_D) || ++ (Opc == LoongArch::FLD_S) || (Opc == LoongArch::FLD_D)) { ++ if ((MI.getOperand(1).isFI()) && // is a stack slot ++ (MI.getOperand(2).isImm()) && // the imm is zero ++ (isZeroImm(MI.getOperand(2)))) { ++ FrameIndex = MI.getOperand(1).getIndex(); ++ return MI.getOperand(0).getReg(); ++ } ++ } ++ return 0; ++} ++ ++/// isStoreToStackSlot - If the specified machine instruction is a direct ++/// store to a stack slot, return the virtual or physical register number of ++/// the source reg along with the FrameIndex of the loaded stack slot. If ++/// not, return 0. This predicate must return 0 if the instruction has ++/// any side effects other than storing to the stack slot. ++unsigned LoongArchInstrInfo::isStoreToStackSlot(const MachineInstr &MI, ++ int &FrameIndex) const { ++ unsigned Opc = MI.getOpcode(); ++ if ((Opc == LoongArch::ST_D) || (Opc == LoongArch::ST_W) || ++ (Opc == LoongArch::FST_S) ||(Opc == LoongArch::FST_D)) { ++ if ((MI.getOperand(1).isFI()) && // is a stack slot ++ (MI.getOperand(2).isImm()) && // the imm is zero ++ (isZeroImm(MI.getOperand(2)))) { ++ FrameIndex = MI.getOperand(1).getIndex(); ++ return MI.getOperand(0).getReg(); ++ } ++ } ++ return 0; ++} ++ ++void LoongArchInstrInfo::copyPhysReg(MachineBasicBlock &MBB, ++ MachineBasicBlock::iterator I, ++ const DebugLoc &DL, MCRegister DestReg, ++ MCRegister SrcReg, bool KillSrc) const { ++ unsigned Opc = 0, ZeroReg = 0; ++ unsigned ZeroImm = 1; ++ if (LoongArch::GPR32RegClass.contains(DestReg)) { // Copy to CPU Reg. ++ if (LoongArch::GPR32RegClass.contains(SrcReg)) { ++ Opc = LoongArch::OR32, ZeroReg = LoongArch::ZERO; ++ } ++ else if (LoongArch::FGR32RegClass.contains(SrcReg)) ++ Opc = LoongArch::MOVFR2GR_S; ++ else if (LoongArch::FCFRRegClass.contains(SrcReg)) ++ Opc = LoongArch::MOVCF2GR; ++ } ++ else if (LoongArch::GPR32RegClass.contains(SrcReg)) { // Copy from CPU Reg. ++ if (LoongArch::FGR32RegClass.contains(DestReg)) ++ Opc = LoongArch::MOVGR2FR_W; ++ else if (LoongArch::FCFRRegClass.contains(DestReg)) ++ Opc = LoongArch::MOVGR2CF; ++ } ++ else if (LoongArch::FGR32RegClass.contains(DestReg, SrcReg)) ++ Opc = LoongArch::FMOV_S; ++ else if (LoongArch::FGR64RegClass.contains(DestReg, SrcReg)) ++ Opc = LoongArch::FMOV_D; ++ else if (LoongArch::GPR64RegClass.contains(DestReg)) { // Copy to CPU64 Reg. ++ if (LoongArch::GPR64RegClass.contains(SrcReg)) ++ Opc = LoongArch::OR, ZeroReg = LoongArch::ZERO_64; ++ else if (LoongArch::FGR64RegClass.contains(SrcReg)) ++ Opc = LoongArch::MOVFR2GR_D; ++ else if (LoongArch::FCFRRegClass.contains(SrcReg)) ++ Opc = LoongArch::MOVCF2GR; ++ } ++ else if (LoongArch::GPR64RegClass.contains(SrcReg)) { // Copy from CPU64 Reg. ++ if (LoongArch::FGR64RegClass.contains(DestReg)) ++ Opc = LoongArch::MOVGR2FR_D; ++ else if (LoongArch::FCFRRegClass.contains(DestReg)) ++ Opc = LoongArch::MOVGR2CF; ++ } ++ else if (LoongArch::FGR32RegClass.contains(DestReg)) // Copy to FGR32 Reg ++ Opc = LoongArch::MOVCF2FR; ++ else if (LoongArch::FGR32RegClass.contains(SrcReg)) // Copy from FGR32 Reg ++ Opc = LoongArch::MOVFR2CF; ++ else if (LoongArch::FGR64RegClass.contains(DestReg)) // Copy to FGR64 Reg ++ Opc = LoongArch::MOVCF2FR; ++ else if (LoongArch::FGR64RegClass.contains(SrcReg)) // Copy from FGR64 Reg ++ Opc = LoongArch::MOVFR2CF; ++ else if (LoongArch::LSX128BRegClass.contains(DestReg)) { // Copy to LSX reg ++ if (LoongArch::LSX128BRegClass.contains(SrcReg)) ++ Opc = LoongArch::VORI_B, ZeroImm = 0; ++ } else if (LoongArch::LASX256BRegClass.contains( ++ DestReg)) { // Copy to LASX reg ++ if (LoongArch::LASX256BRegClass.contains(SrcReg)) ++ Opc = LoongArch::XVORI_B, ZeroImm = 0; ++ } ++ ++ assert(Opc && "Cannot copy registers"); ++ ++ MachineInstrBuilder MIB = BuildMI(MBB, I, DL, get(Opc)); ++ ++ if (DestReg) ++ MIB.addReg(DestReg, RegState::Define); ++ ++ if (SrcReg) ++ MIB.addReg(SrcReg, getKillRegState(KillSrc)); ++ ++ if (ZeroReg) ++ MIB.addReg(ZeroReg); ++ ++ if (!ZeroImm) ++ MIB.addImm(0); ++} ++ ++static bool isORCopyInst(const MachineInstr &MI) { ++ switch (MI.getOpcode()) { ++ default: ++ break; ++ case LoongArch::OR: ++ if (MI.getOperand(2).getReg() == LoongArch::ZERO_64) ++ return true; ++ break; ++ case LoongArch::OR32: ++ if (MI.getOperand(2).getReg() == LoongArch::ZERO) ++ return true; ++ break; ++ } ++ return false; ++} ++ ++/// We check for the common case of 'or', as it's LoongArch' preferred instruction ++/// for GPRs but we have to check the operands to ensure that is the case. ++/// Other move instructions for LoongArch are directly identifiable. ++Optional ++LoongArchInstrInfo::isCopyInstrImpl(const MachineInstr &MI) const { ++ if (MI.isMoveReg() || isORCopyInst(MI)) { ++ return DestSourcePair{MI.getOperand(0), MI.getOperand(1)}; ++ } ++ return None; ++} ++ ++void LoongArchInstrInfo:: ++storeRegToStack(MachineBasicBlock &MBB, MachineBasicBlock::iterator I, ++ Register SrcReg, bool isKill, int FI, ++ const TargetRegisterClass *RC, const TargetRegisterInfo *TRI, ++ int64_t Offset) const { ++ DebugLoc DL; ++ MachineMemOperand *MMO = GetMemOperand(MBB, FI, MachineMemOperand::MOStore); ++ ++ unsigned Opc = 0; ++ if (LoongArch::GPR32RegClass.hasSubClassEq(RC)) ++ Opc = LoongArch::ST_W; ++ else if (LoongArch::GPR64RegClass.hasSubClassEq(RC)) ++ Opc = LoongArch::ST_D; ++ else if (LoongArch::FGR64RegClass.hasSubClassEq(RC)) ++ Opc = LoongArch::FST_D; ++ else if (LoongArch::FGR32RegClass.hasSubClassEq(RC)) ++ Opc = LoongArch::FST_S; ++ ++ else if (TRI->isTypeLegalForClass(*RC, MVT::v16i8)) ++ Opc = LoongArch::VST; ++ else if (TRI->isTypeLegalForClass(*RC, MVT::v8i16)) ++ Opc = LoongArch::VST_H; ++ else if (TRI->isTypeLegalForClass(*RC, MVT::v4i32) || ++ TRI->isTypeLegalForClass(*RC, MVT::v4f32)) ++ Opc = LoongArch::VST_W; ++ else if (TRI->isTypeLegalForClass(*RC, MVT::v2i64) || ++ TRI->isTypeLegalForClass(*RC, MVT::v2f64)) ++ Opc = LoongArch::VST_D; ++ else if (TRI->isTypeLegalForClass(*RC, MVT::v32i8)) ++ Opc = LoongArch::XVST; ++ else if (TRI->isTypeLegalForClass(*RC, MVT::v16i16)) ++ Opc = LoongArch::XVST_H; ++ else if (TRI->isTypeLegalForClass(*RC, MVT::v8i32) || ++ TRI->isTypeLegalForClass(*RC, MVT::v8f32)) ++ Opc = LoongArch::XVST_W; ++ else if (TRI->isTypeLegalForClass(*RC, MVT::v4i64) || ++ TRI->isTypeLegalForClass(*RC, MVT::v4f64)) ++ Opc = LoongArch::XVST_D; ++ ++ assert(Opc && "Register class not handled!"); ++ BuildMI(MBB, I, DL, get(Opc)) ++ .addReg(SrcReg, getKillRegState(isKill)) ++ .addFrameIndex(FI) ++ .addImm(Offset) ++ .addMemOperand(MMO); ++} ++ ++void LoongArchInstrInfo:: ++loadRegFromStack(MachineBasicBlock &MBB, MachineBasicBlock::iterator I, ++ Register DestReg, int FI, const TargetRegisterClass *RC, ++ const TargetRegisterInfo *TRI, int64_t Offset) const { ++ DebugLoc DL; ++ if (I != MBB.end()) ++ DL = I->getDebugLoc(); ++ MachineMemOperand *MMO = GetMemOperand(MBB, FI, MachineMemOperand::MOLoad); ++ unsigned Opc = 0; ++ ++ if (LoongArch::GPR32RegClass.hasSubClassEq(RC)) ++ Opc = LoongArch::LD_W; ++ else if (LoongArch::GPR64RegClass.hasSubClassEq(RC)) ++ Opc = LoongArch::LD_D; ++ else if (LoongArch::FGR32RegClass.hasSubClassEq(RC)) ++ Opc = LoongArch::FLD_S; ++ else if (LoongArch::FGR64RegClass.hasSubClassEq(RC)) ++ Opc = LoongArch::FLD_D; ++ else if (TRI->isTypeLegalForClass(*RC, MVT::v16i8)) ++ Opc = LoongArch::VLD; ++ else if (TRI->isTypeLegalForClass(*RC, MVT::v8i16)) ++ Opc = LoongArch::VLD_H; ++ else if (TRI->isTypeLegalForClass(*RC, MVT::v4i32) || ++ TRI->isTypeLegalForClass(*RC, MVT::v4f32)) ++ Opc = LoongArch::VLD_W; ++ else if (TRI->isTypeLegalForClass(*RC, MVT::v2i64) || ++ TRI->isTypeLegalForClass(*RC, MVT::v2f64)) ++ Opc = LoongArch::VLD_D; ++ else if (TRI->isTypeLegalForClass(*RC, MVT::v32i8)) ++ Opc = LoongArch::XVLD; ++ else if (TRI->isTypeLegalForClass(*RC, MVT::v16i16)) ++ Opc = LoongArch::XVLD_H; ++ else if (TRI->isTypeLegalForClass(*RC, MVT::v8i32) || ++ TRI->isTypeLegalForClass(*RC, MVT::v8f32)) ++ Opc = LoongArch::XVLD_W; ++ else if (TRI->isTypeLegalForClass(*RC, MVT::v4i64) || ++ TRI->isTypeLegalForClass(*RC, MVT::v4f64)) ++ Opc = LoongArch::XVLD_D; ++ ++ assert(Opc && "Register class not handled!"); ++ ++ BuildMI(MBB, I, DL, get(Opc), DestReg) ++ .addFrameIndex(FI) ++ .addImm(Offset) ++ .addMemOperand(MMO); ++} ++ ++bool LoongArchInstrInfo::expandPostRAPseudo(MachineInstr &MI) const { ++ MachineBasicBlock &MBB = *MI.getParent(); ++ switch (MI.getDesc().getOpcode()) { ++ default: ++ return false; ++ case LoongArch::RetRA: ++ expandRetRA(MBB, MI); ++ break; ++ case LoongArch::ERet: ++ expandERet(MBB, MI); ++ break; ++ case LoongArch::PseudoFFINT_S_W: ++ expandCvtFPInt(MBB, MI, LoongArch::FFINT_S_W, LoongArch::MOVGR2FR_W, false); ++ break; ++ case LoongArch::PseudoFFINT_S_L: ++ expandCvtFPInt(MBB, MI, LoongArch::FFINT_S_L, LoongArch::MOVGR2FR_D, true); ++ break; ++ case LoongArch::PseudoFFINT_D_W: ++ expandCvtFPInt(MBB, MI, LoongArch::FFINT_D_W, LoongArch::MOVGR2FR_W, true); ++ break; ++ case LoongArch::PseudoFFINT_D_L: ++ expandCvtFPInt(MBB, MI, LoongArch::FFINT_D_L, LoongArch::MOVGR2FR_D, true); ++ break; ++ case LoongArch::LoongArcheh_return32: ++ case LoongArch::LoongArcheh_return64: ++ expandEhReturn(MBB, MI); ++ break; ++ } ++ ++ MBB.erase(MI); ++ return true; ++} ++ ++/// getOppositeBranchOpc - Return the inverse of the specified ++/// opcode, e.g. turning BEQ to BNE. ++unsigned LoongArchInstrInfo::getOppositeBranchOpc(unsigned Opc) const { ++ switch (Opc) { ++ default: llvm_unreachable("Illegal opcode!"); ++ case LoongArch::BEQ32: return LoongArch::BNE32; ++ case LoongArch::BEQ: return LoongArch::BNE; ++ case LoongArch::BNE32: return LoongArch::BEQ32; ++ case LoongArch::BNE: return LoongArch::BEQ; ++ case LoongArch::BEQZ32: return LoongArch::BNEZ32; ++ case LoongArch::BEQZ: return LoongArch::BNEZ; ++ case LoongArch::BNEZ32: return LoongArch::BEQZ32; ++ case LoongArch::BNEZ: return LoongArch::BEQZ; ++ case LoongArch::BCEQZ: return LoongArch::BCNEZ; ++ case LoongArch::BCNEZ: return LoongArch::BCEQZ; ++ case LoongArch::BLT32: return LoongArch::BGE32; ++ case LoongArch::BLT: return LoongArch::BGE; ++ case LoongArch::BGE32: return LoongArch::BLT32; ++ case LoongArch::BGE: return LoongArch::BLT; ++ case LoongArch::BLTU32: return LoongArch::BGEU32; ++ case LoongArch::BLTU: return LoongArch::BGEU; ++ case LoongArch::BGEU32: return LoongArch::BLTU32; ++ case LoongArch::BGEU: return LoongArch::BLTU; ++ } ++} ++ ++void LoongArchInstrInfo::adjustReg(unsigned DestReg, unsigned SrcReg, ++ int64_t Amount, MachineBasicBlock &MBB, ++ MachineBasicBlock::iterator I, ++ MachineInstr::MIFlag Flag) const { ++ LoongArchABIInfo ABI = Subtarget.getABI(); ++ DebugLoc DL; ++ unsigned ADDI = ABI.GetPtrAddiOp(); ++ ++ if (Amount == 0) ++ return; ++ ++ if (isInt<12>(Amount)) { ++ // addi $DestReg, $SrcReg, amount ++ BuildMI(MBB, I, DL, get(ADDI), DestReg) ++ .addReg(SrcReg) ++ .addImm(Amount) ++ .setMIFlag(Flag); ++ } else { ++ // For numbers which are not 12bit integers we synthesize Amount inline ++ // then add or subtract it from $SrcReg. ++ unsigned Opc = ABI.GetPtrAddOp(); ++ if (Amount < 0) { ++ Opc = ABI.GetPtrSubOp(); ++ Amount = -Amount; ++ } ++ unsigned Reg = loadImmediate(Amount, MBB, I, DL); ++ BuildMI(MBB, I, DL, get(Opc), DestReg) ++ .addReg(SrcReg) ++ .addReg(Reg, RegState::Kill) ++ .setMIFlag(Flag); ++ } ++} ++ ++/// This function generates the sequence of instructions needed to get the ++/// result of adding register REG and immediate IMM. ++unsigned LoongArchInstrInfo::loadImmediate(int64_t Imm, MachineBasicBlock &MBB, ++ MachineBasicBlock::iterator II, ++ const DebugLoc &DL) const { ++ const TargetRegisterClass *RC = Subtarget.isABI_LP64() ++ ? &LoongArch::GPR64RegClass ++ : &LoongArch::GPR32RegClass; ++ LoongArchAnalyzeImmediate::InstSeq Seq = ++ LoongArchAnalyzeImmediate::generateInstSeq(Imm, Subtarget.is64Bit()); ++ unsigned DstReg = MBB.getParent()->getRegInfo().createVirtualRegister(RC); ++ unsigned SrcReg = ++ Subtarget.isABI_LP64() ? LoongArch::ZERO_64 : LoongArch::ZERO; ++ ++ // Build the instructions in Seq. ++ for (auto &Inst : Seq) { ++ if (Inst.Opc == LoongArch::LU12I_W || Inst.Opc == LoongArch::LU12I_W32) ++ BuildMI(MBB, II, DL, get(Inst.Opc), DstReg).addImm(Inst.Imm); ++ else ++ BuildMI(MBB, II, DL, get(Inst.Opc), DstReg) ++ .addReg(SrcReg, RegState::Kill) ++ .addImm(Inst.Imm); ++ SrcReg = DstReg; ++ } ++ return DstReg; ++} ++ ++unsigned LoongArchInstrInfo::getAnalyzableBrOpc(unsigned Opc) const { ++ return (Opc == LoongArch::B || Opc == LoongArch::B32 || ++ Opc == LoongArch::BEQZ || Opc == LoongArch::BEQZ32 || ++ Opc == LoongArch::BNEZ || Opc == LoongArch::BNEZ32 || ++ Opc == LoongArch::BCEQZ || ++ Opc == LoongArch::BCNEZ || ++ Opc == LoongArch::BEQ || Opc == LoongArch::BEQ32 || ++ Opc == LoongArch::BNE || Opc == LoongArch::BNE32 || ++ Opc == LoongArch::BLT || Opc == LoongArch::BLT32 || ++ Opc == LoongArch::BGE || Opc == LoongArch::BGE32 || ++ Opc == LoongArch::BLTU || Opc == LoongArch::BLTU32 || ++ Opc == LoongArch::BGEU || Opc == LoongArch::BGEU32) ? Opc : 0; ++} ++ ++void LoongArchInstrInfo::expandRetRA(MachineBasicBlock &MBB, ++ MachineBasicBlock::iterator I) const { ++ ++ MachineInstrBuilder MIB; ++ ++ if (Subtarget.is64Bit()) ++ MIB = BuildMI(MBB, I, I->getDebugLoc(), get(LoongArch::PseudoReturn64)) ++ .addReg(LoongArch::RA_64, RegState::Undef); ++ else ++ MIB = BuildMI(MBB, I, I->getDebugLoc(), get(LoongArch::PseudoReturn)) ++ .addReg(LoongArch::RA, RegState::Undef); ++ ++ // Retain any imp-use flags. ++ for (auto & MO : I->operands()) { ++ if (MO.isImplicit()) ++ MIB.add(MO); ++ } ++} ++ ++void LoongArchInstrInfo::expandERet(MachineBasicBlock &MBB, ++ MachineBasicBlock::iterator I) const { ++ BuildMI(MBB, I, I->getDebugLoc(), get(LoongArch::ERTN)); ++} ++ ++std::pair ++LoongArchInstrInfo::compareOpndSize(unsigned Opc, ++ const MachineFunction &MF) const { ++ const MCInstrDesc &Desc = get(Opc); ++ assert(Desc.NumOperands == 2 && "Unary instruction expected."); ++ const LoongArchRegisterInfo *RI = &getRegisterInfo(); ++ unsigned DstRegSize = RI->getRegSizeInBits(*getRegClass(Desc, 0, RI, MF)); ++ unsigned SrcRegSize = RI->getRegSizeInBits(*getRegClass(Desc, 1, RI, MF)); ++ ++ return std::make_pair(DstRegSize > SrcRegSize, DstRegSize < SrcRegSize); ++} ++ ++void LoongArchInstrInfo::expandCvtFPInt(MachineBasicBlock &MBB, ++ MachineBasicBlock::iterator I, ++ unsigned CvtOpc, unsigned MovOpc, ++ bool IsI64) const { ++ const MCInstrDesc &CvtDesc = get(CvtOpc), &MovDesc = get(MovOpc); ++ const MachineOperand &Dst = I->getOperand(0), &Src = I->getOperand(1); ++ unsigned DstReg = Dst.getReg(), SrcReg = Src.getReg(), TmpReg = DstReg; ++ unsigned KillSrc = getKillRegState(Src.isKill()); ++ DebugLoc DL = I->getDebugLoc(); ++ bool DstIsLarger, SrcIsLarger; ++ ++ std::tie(DstIsLarger, SrcIsLarger) = ++ compareOpndSize(CvtOpc, *MBB.getParent()); ++ ++ if (DstIsLarger) ++ TmpReg = getRegisterInfo().getSubReg(DstReg, LoongArch::sub_lo); ++ ++ if (SrcIsLarger) ++ DstReg = getRegisterInfo().getSubReg(DstReg, LoongArch::sub_lo); ++ ++ BuildMI(MBB, I, DL, MovDesc, TmpReg).addReg(SrcReg, KillSrc); ++ BuildMI(MBB, I, DL, CvtDesc, DstReg).addReg(TmpReg, RegState::Kill); ++} ++ ++void LoongArchInstrInfo::expandEhReturn(MachineBasicBlock &MBB, ++ MachineBasicBlock::iterator I) const { ++ // This pseudo instruction is generated as part of the lowering of ++ // ISD::EH_RETURN. We convert it to a stack increment by OffsetReg, and ++ // indirect jump to TargetReg ++ LoongArchABIInfo ABI = Subtarget.getABI(); ++ unsigned ADD = ABI.GetPtrAddOp(); ++ unsigned SP = Subtarget.is64Bit() ? LoongArch::SP_64 : LoongArch::SP; ++ unsigned RA = Subtarget.is64Bit() ? LoongArch::RA_64 : LoongArch::RA; ++ unsigned T8 = Subtarget.is64Bit() ? LoongArch::T8_64 : LoongArch::T8; ++ unsigned ZERO = Subtarget.is64Bit() ? LoongArch::ZERO_64 : LoongArch::ZERO; ++ unsigned OffsetReg = I->getOperand(0).getReg(); ++ unsigned TargetReg = I->getOperand(1).getReg(); ++ ++ // add $ra, $v0, $zero ++ // add $sp, $sp, $v1 ++ // jr $ra (via RetRA) ++ const TargetMachine &TM = MBB.getParent()->getTarget(); ++ if (TM.isPositionIndependent()) ++ BuildMI(MBB, I, I->getDebugLoc(), get(ADD), T8) ++ .addReg(TargetReg) ++ .addReg(ZERO); ++ BuildMI(MBB, I, I->getDebugLoc(), get(ADD), RA) ++ .addReg(TargetReg) ++ .addReg(ZERO); ++ BuildMI(MBB, I, I->getDebugLoc(), get(ADD), SP).addReg(SP).addReg(OffsetReg); ++ expandRetRA(MBB, I); ++} ++ ++ ++bool LoongArchInstrInfo::isZeroImm(const MachineOperand &op) const { ++ return op.isImm() && op.getImm() == 0; ++} ++ ++/// insertNoop - If data hazard condition is found insert the target nop ++/// instruction. ++// FIXME: This appears to be dead code. ++void LoongArchInstrInfo:: ++insertNoop(MachineBasicBlock &MBB, MachineBasicBlock::iterator MI) const ++{ ++ DebugLoc DL; ++ BuildMI(MBB, MI, DL, get(LoongArch::NOP)); ++} ++ ++MachineMemOperand * ++LoongArchInstrInfo::GetMemOperand(MachineBasicBlock &MBB, int FI, ++ MachineMemOperand::Flags Flags) const { ++ MachineFunction &MF = *MBB.getParent(); ++ MachineFrameInfo &MFI = MF.getFrameInfo(); ++ ++ return MF.getMachineMemOperand(MachinePointerInfo::getFixedStack(MF, FI), ++ Flags, MFI.getObjectSize(FI), ++ MFI.getObjectSize(FI)); ++} ++ ++//===----------------------------------------------------------------------===// ++// Branch Analysis ++//===----------------------------------------------------------------------===// ++ ++void LoongArchInstrInfo::AnalyzeCondBr(const MachineInstr *Inst, unsigned Opc, ++ MachineBasicBlock *&BB, ++ SmallVectorImpl &Cond) const { ++ assert(getAnalyzableBrOpc(Opc) && "Not an analyzable branch"); ++ int NumOp = Inst->getNumExplicitOperands(); ++ ++ // for both int and fp branches, the last explicit operand is the ++ // MBB. ++ BB = Inst->getOperand(NumOp-1).getMBB(); ++ Cond.push_back(MachineOperand::CreateImm(Opc)); ++ ++ for (int i = 0; i < NumOp-1; i++) ++ Cond.push_back(Inst->getOperand(i)); ++} ++ ++bool LoongArchInstrInfo::analyzeBranch(MachineBasicBlock &MBB, ++ MachineBasicBlock *&TBB, ++ MachineBasicBlock *&FBB, ++ SmallVectorImpl &Cond, ++ bool AllowModify) const { ++ SmallVector BranchInstrs; ++ BranchType BT = analyzeBranch(MBB, TBB, FBB, Cond, AllowModify, BranchInstrs); ++ ++ return (BT == BT_None) || (BT == BT_Indirect); ++} ++ ++MachineInstr * ++LoongArchInstrInfo::BuildCondBr(MachineBasicBlock &MBB, MachineBasicBlock *TBB, ++ const DebugLoc &DL, ++ ArrayRef Cond) const { ++ unsigned Opc = Cond[0].getImm(); ++ const MCInstrDesc &MCID = get(Opc); ++ MachineInstrBuilder MIB = BuildMI(&MBB, DL, MCID); ++ ++ for (unsigned i = 1; i < Cond.size(); ++i) { ++ assert((Cond[i].isImm() || Cond[i].isReg()) && ++ "Cannot copy operand for conditional branch!"); ++ MIB.add(Cond[i]); ++ } ++ MIB.addMBB(TBB); ++ return MIB.getInstr(); ++} ++ ++unsigned LoongArchInstrInfo::insertBranch(MachineBasicBlock &MBB, ++ MachineBasicBlock *TBB, ++ MachineBasicBlock *FBB, ++ ArrayRef Cond, ++ const DebugLoc &DL, ++ int *BytesAdded) const { ++ unsigned UncondBrOpc = LoongArch::B; ++ // Shouldn't be a fall through. ++ assert(TBB && "insertBranch must not be told to insert a fallthrough"); ++ if (BytesAdded) ++ *BytesAdded = 0; ++ ++ // # of condition operands: ++ // Unconditional branches: 0 ++ // Floating point branches: 1 (opc) ++ // Int BranchZero: 2 (opc, reg) ++ // Int Branch: 3 (opc, reg0, reg1) ++ assert((Cond.size() <= 3) && ++ "# of LoongArch branch conditions must be <= 3!"); ++ ++ // Two-way Conditional branch. ++ if (FBB) { ++ MachineInstr &MI1 = *BuildCondBr(MBB, TBB, DL, Cond); ++ if (BytesAdded) ++ *BytesAdded += getInstSizeInBytes(MI1); ++ MachineInstr &MI2 = *BuildMI(&MBB, DL, get(UncondBrOpc)).addMBB(FBB); ++ if (BytesAdded) ++ *BytesAdded += getInstSizeInBytes(MI2); ++ return 2; ++ } ++ ++ // One way branch. ++ // Unconditional branch. ++ if (Cond.empty()) { ++ MachineInstr &MI = *BuildMI(&MBB, DL, get(UncondBrOpc)).addMBB(TBB); ++ if (BytesAdded) ++ *BytesAdded += getInstSizeInBytes(MI); ++ } ++ else {// Conditional branch. ++ MachineInstr &MI = *BuildCondBr(MBB, TBB, DL, Cond); ++ if (BytesAdded) ++ *BytesAdded += getInstSizeInBytes(MI); ++ } ++ return 1; ++} ++ ++unsigned LoongArchInstrInfo::insertIndirectBranch(MachineBasicBlock &MBB, ++ MachineBasicBlock &DestBB, ++ const DebugLoc &DL, ++ int64_t BrOffset, ++ RegScavenger *RS) const { ++ assert(RS && "RegScavenger required for long branching"); ++ assert(MBB.empty() && ++ "new block should be inserted for expanding unconditional branch"); ++ assert(MBB.pred_size() == 1); ++ ++ MachineFunction *MF = MBB.getParent(); ++ MachineRegisterInfo &MRI = MF->getRegInfo(); ++ const LoongArchSubtarget &Subtarget = MF->getSubtarget(); ++ bool is64 = Subtarget.isABI_LP64(); ++ const TargetRegisterClass *RC = ++ is64 ? &LoongArch::GPR64RegClass : &LoongArch::GPR32RegClass; ++ ++ if (!is64 && !isInt<32>(BrOffset)) ++ report_fatal_error( ++ "Branch offsets outside of the signed 32-bit range not supported"); ++ ++ unsigned ScratchReg = MRI.createVirtualRegister(RC); ++ unsigned ZeroReg = is64 ? LoongArch::ZERO_64 : LoongArch::ZERO; ++ auto II = MBB.end(); ++ ++ MachineInstr &Pcaddu12iMI = ++ *BuildMI(MBB, II, DL, get(LoongArch::LONG_BRANCH_PCADDU12I), ScratchReg) ++ .addMBB(&DestBB, LoongArchII::MO_PCREL_HI); ++ BuildMI(MBB, II, DL, get(LoongArch::LONG_BRANCH_ADDID2Op), ScratchReg) ++ .addReg(ScratchReg) ++ .addMBB(&DestBB, LoongArchII::MO_PCREL_LO); ++ BuildMI(MBB, II, DL, get(LoongArch::JIRL)) ++ .addReg(ZeroReg) ++ .addReg(ScratchReg, RegState::Kill) ++ .addImm(0); ++ RS->enterBasicBlockEnd(MBB); ++ unsigned Scav = RS->scavengeRegisterBackwards( ++ *RC, MachineBasicBlock::iterator(Pcaddu12iMI), false, 0); ++ MRI.replaceRegWith(ScratchReg, Scav); ++ MRI.clearVirtRegs(); ++ RS->setRegUsed(Scav); ++ ++ return 12; ++} ++ ++unsigned LoongArchInstrInfo::removeBranch(MachineBasicBlock &MBB, ++ int *BytesRemoved) const { ++ if (BytesRemoved) ++ *BytesRemoved = 0; ++ ++ MachineBasicBlock::reverse_iterator I = MBB.rbegin(), REnd = MBB.rend(); ++ unsigned removed = 0; ++ ++ // Up to 2 branches are removed. ++ // Note that indirect branches are not removed. ++ while (I != REnd && removed < 2) { ++ // Skip past debug instructions. ++ if (I->isDebugInstr()) { ++ ++I; ++ continue; ++ } ++ if (!getAnalyzableBrOpc(I->getOpcode())) ++ break; ++ // Remove the branch. ++ I->eraseFromParent(); ++ if (BytesRemoved) ++ *BytesRemoved += getInstSizeInBytes(*I); ++ I = MBB.rbegin(); ++ ++removed; ++ } ++ ++ return removed; ++} ++ ++/// reverseBranchCondition - Return the inverse opcode of the ++/// specified Branch instruction. ++bool LoongArchInstrInfo::reverseBranchCondition( ++ SmallVectorImpl &Cond) const { ++ assert( (Cond.size() && Cond.size() <= 3) && ++ "Invalid LoongArch branch condition!"); ++ Cond[0].setImm(getOppositeBranchOpc(Cond[0].getImm())); ++ return false; ++} ++ ++LoongArchInstrInfo::BranchType LoongArchInstrInfo::analyzeBranch( ++ MachineBasicBlock &MBB, MachineBasicBlock *&TBB, MachineBasicBlock *&FBB, ++ SmallVectorImpl &Cond, bool AllowModify, ++ SmallVectorImpl &BranchInstrs) const { ++ MachineBasicBlock::reverse_iterator I = MBB.rbegin(), REnd = MBB.rend(); ++ ++ // Skip all the debug instructions. ++ while (I != REnd && I->isDebugInstr()) ++ ++I; ++ ++ if (I == REnd || !isUnpredicatedTerminator(*I)) { ++ // This block ends with no branches (it just falls through to its succ). ++ // Leave TBB/FBB null. ++ TBB = FBB = nullptr; ++ return BT_NoBranch; ++ } ++ ++ MachineInstr *LastInst = &*I; ++ unsigned LastOpc = LastInst->getOpcode(); ++ BranchInstrs.push_back(LastInst); ++ ++ // Not an analyzable branch (e.g., indirect jump). ++ if (!getAnalyzableBrOpc(LastOpc)) ++ return LastInst->isIndirectBranch() ? BT_Indirect : BT_None; ++ ++ // Get the second to last instruction in the block. ++ unsigned SecondLastOpc = 0; ++ MachineInstr *SecondLastInst = nullptr; ++ ++ // Skip past any debug instruction to see if the second last actual ++ // is a branch. ++ ++I; ++ while (I != REnd && I->isDebugInstr()) ++ ++I; ++ ++ if (I != REnd) { ++ SecondLastInst = &*I; ++ SecondLastOpc = getAnalyzableBrOpc(SecondLastInst->getOpcode()); ++ ++ // Not an analyzable branch (must be an indirect jump). ++ if (isUnpredicatedTerminator(*SecondLastInst) && !SecondLastOpc) ++ return BT_None; ++ } ++ ++ // If there is only one terminator instruction, process it. ++ if (!SecondLastOpc) { ++ // Unconditional branch. ++ if (LastInst->isUnconditionalBranch()) { ++ TBB = LastInst->getOperand(0).getMBB(); ++ return BT_Uncond; ++ } ++ ++ // Conditional branch ++ AnalyzeCondBr(LastInst, LastOpc, TBB, Cond); ++ return BT_Cond; ++ } ++ ++ // If we reached here, there are two branches. ++ // If there are three terminators, we don't know what sort of block this is. ++ if (++I != REnd && isUnpredicatedTerminator(*I)) ++ return BT_None; ++ ++ BranchInstrs.insert(BranchInstrs.begin(), SecondLastInst); ++ ++ // If second to last instruction is an unconditional branch, ++ // analyze it and remove the last instruction. ++ if (SecondLastInst->isUnconditionalBranch()) { ++ // Return if the last instruction cannot be removed. ++ if (!AllowModify) ++ return BT_None; ++ ++ TBB = SecondLastInst->getOperand(0).getMBB(); ++ LastInst->eraseFromParent(); ++ BranchInstrs.pop_back(); ++ return BT_Uncond; ++ } ++ ++ // Conditional branch followed by an unconditional branch. ++ // The last one must be unconditional. ++ if (!LastInst->isUnconditionalBranch()) ++ return BT_None; ++ ++ AnalyzeCondBr(SecondLastInst, SecondLastOpc, TBB, Cond); ++ FBB = LastInst->getOperand(0).getMBB(); ++ ++ return BT_CondUncond; ++} ++ ++MachineBasicBlock * ++LoongArchInstrInfo::getBranchDestBlock(const MachineInstr &MI) const { ++ assert(MI.getDesc().isBranch() && "Unexpected opcode!"); ++ // The branch target is always the last operand. ++ int NumOp = MI.getNumExplicitOperands(); ++ return MI.getOperand(NumOp - 1).getMBB(); ++} ++ ++bool LoongArchInstrInfo::isBranchOffsetInRange(unsigned BranchOpc, int64_t BrOffset) const { ++/* ++ switch (BranchOpc) { ++ case LoongArch::B: ++ case LoongArch::BAL: ++ case LoongArch::BAL_BR: ++ case LoongArch::BC1F: ++ case LoongArch::BC1FL: ++ case LoongArch::BC1T: ++ case LoongArch::BC1TL: ++ case LoongArch::BEQ: case LoongArch::BEQ64: ++ case LoongArch::BEQL: ++ case LoongArch::BGEZ: case LoongArch::BGEZ64: ++ case LoongArch::BGEZL: ++ case LoongArch::BGEZAL: ++ case LoongArch::BGEZALL: ++ case LoongArch::BGTZ: case LoongArch::BGTZ64: ++ case LoongArch::BGTZL: ++ case LoongArch::BLEZ: case LoongArch::BLEZ64: ++ case LoongArch::BLEZL: ++ case LoongArch::BLTZ: case LoongArch::BLTZ64: ++ case LoongArch::BLTZL: ++ case LoongArch::BLTZAL: ++ case LoongArch::BLTZALL: ++ case LoongArch::BNE: case LoongArch::BNE64: ++ case LoongArch::BNEL: ++ return isInt<18>(BrOffset); ++ ++ case LoongArch::BC1EQZ: ++ case LoongArch::BC1NEZ: ++ case LoongArch::BC2EQZ: ++ case LoongArch::BC2NEZ: ++ case LoongArch::BEQC: case LoongArch::BEQC64: ++ case LoongArch::BNEC: case LoongArch::BNEC64: ++ case LoongArch::BGEC: case LoongArch::BGEC64: ++ case LoongArch::BGEUC: case LoongArch::BGEUC64: ++ case LoongArch::BGEZC: case LoongArch::BGEZC64: ++ case LoongArch::BGTZC: case LoongArch::BGTZC64: ++ case LoongArch::BLEZC: case LoongArch::BLEZC64: ++ case LoongArch::BLTC: case LoongArch::BLTC64: ++ case LoongArch::BLTUC: case LoongArch::BLTUC64: ++ case LoongArch::BLTZC: case LoongArch::BLTZC64: ++ case LoongArch::BNVC: ++ case LoongArch::BOVC: ++ case LoongArch::BGEZALC: ++ case LoongArch::BEQZALC: ++ case LoongArch::BGTZALC: ++ case LoongArch::BLEZALC: ++ case LoongArch::BLTZALC: ++ case LoongArch::BNEZALC: ++ return isInt<18>(BrOffset); ++ ++ case LoongArch::BEQZC: case LoongArch::BEQZC64: ++ case LoongArch::BNEZC: case LoongArch::BNEZC64: ++ return isInt<23>(BrOffset); ++ } ++ */ ++ switch (BranchOpc) { ++ case LoongArch::B: case LoongArch::B32: ++ return isInt<28>(BrOffset); ++ ++ case LoongArch::BEQZ: case LoongArch::BEQZ32: ++ case LoongArch::BNEZ: case LoongArch::BNEZ32: ++ case LoongArch::BCEQZ: ++ case LoongArch::BCNEZ: ++ return isInt<23>(BrOffset); ++ ++ case LoongArch::BEQ: case LoongArch::BEQ32: ++ case LoongArch::BNE: case LoongArch::BNE32: ++ case LoongArch::BLT: case LoongArch::BLT32: ++ case LoongArch::BGE: case LoongArch::BGE32: ++ case LoongArch::BLTU: case LoongArch::BLTU32: ++ case LoongArch::BGEU: case LoongArch::BGEU32: ++ return isInt<18>(BrOffset); ++ } ++ ++ llvm_unreachable("Unknown branch instruction!"); ++} ++ ++ ++/// Predicate for distingushing between control transfer instructions and all ++/// other instructions for handling forbidden slots. Consider inline assembly ++/// as unsafe as well. ++bool LoongArchInstrInfo::SafeInForbiddenSlot(const MachineInstr &MI) const { ++ if (MI.isInlineAsm()) ++ return false; ++ ++ return (MI.getDesc().TSFlags & LoongArchII::IsCTI) == 0; ++} ++ ++/// Predicate for distingushing instructions that have forbidden slots. ++bool LoongArchInstrInfo::HasForbiddenSlot(const MachineInstr &MI) const { ++ return (MI.getDesc().TSFlags & LoongArchII::HasForbiddenSlot) != 0; ++} ++ ++/// Return the number of bytes of code the specified instruction may be. ++unsigned LoongArchInstrInfo::getInstSizeInBytes(const MachineInstr &MI) const { ++ switch (MI.getOpcode()) { ++ default: ++ return MI.getDesc().getSize(); ++ case TargetOpcode::INLINEASM: { // Inline Asm: Variable size. ++ const MachineFunction *MF = MI.getParent()->getParent(); ++ const char *AsmStr = MI.getOperand(0).getSymbolName(); ++ return getInlineAsmLength(AsmStr, *MF->getTarget().getMCAsmInfo()); ++ } ++ } ++} ++ ++MachineInstrBuilder ++LoongArchInstrInfo::genInstrWithNewOpc(unsigned NewOpc, ++ MachineBasicBlock::iterator I) const { ++ MachineInstrBuilder MIB; ++ ++ int ZeroOperandPosition = -1; ++ bool BranchWithZeroOperand = false; ++ if (I->isBranch() && !I->isPseudo()) { ++ auto TRI = I->getParent()->getParent()->getSubtarget().getRegisterInfo(); ++ ZeroOperandPosition = I->findRegisterUseOperandIdx(LoongArch::ZERO, false, TRI); ++ BranchWithZeroOperand = ZeroOperandPosition != -1; ++ } ++ ++ MIB = BuildMI(*I->getParent(), I, I->getDebugLoc(), get(NewOpc)); ++ ++ if (NewOpc == LoongArch::JIRL) { ++ MIB->RemoveOperand(0); ++ for (unsigned J = 0, E = I->getDesc().getNumOperands(); J < E; ++J) { ++ MIB.add(I->getOperand(J)); ++ } ++ MIB.addImm(0); ++ } else { ++ for (unsigned J = 0, E = I->getDesc().getNumOperands(); J < E; ++J) { ++ if (BranchWithZeroOperand && (unsigned)ZeroOperandPosition == J) ++ continue; ++ ++ MIB.add(I->getOperand(J)); ++ } ++ } ++ ++ MIB.copyImplicitOps(*I); ++ MIB.cloneMemRefs(*I); ++ return MIB; ++} ++ ++bool LoongArchInstrInfo::findCommutedOpIndices(const MachineInstr &MI, ++ unsigned &SrcOpIdx1, ++ unsigned &SrcOpIdx2) const { ++ assert(!MI.isBundle() && ++ "TargetInstrInfo::findCommutedOpIndices() can't handle bundles"); ++ ++ const MCInstrDesc &MCID = MI.getDesc(); ++ if (!MCID.isCommutable()) ++ return false; ++ ++ return TargetInstrInfo::findCommutedOpIndices(MI, SrcOpIdx1, SrcOpIdx2); ++} ++ ++// bstrins, bstrpick have the following constraints: ++// 0 <= lsb <= msb <= High ++static bool verifyBstrInstruction(const MachineInstr &MI, StringRef &ErrInfo, ++ const int64_t High) { ++ MachineOperand MOMsb = MI.getOperand(2); ++ if (!MOMsb.isImm()) { ++ ErrInfo = "Msb operand is not an immediate!"; ++ return false; ++ } ++ MachineOperand MOLsb = MI.getOperand(3); ++ if (!MOLsb.isImm()) { ++ ErrInfo = "Lsb operand is not an immediate!"; ++ return false; ++ } ++ ++ int64_t Lsb = MOLsb.getImm(); ++ if (!((0 <= Lsb) && (Lsb <= High))) { ++ ErrInfo = "Lsb operand is out of range!"; ++ return false; ++ } ++ ++ int64_t Msb = MOMsb.getImm(); ++ if (!((0 <= Msb) && (Msb <= High))) { ++ ErrInfo = "Msb operand is out of range!"; ++ return false; ++ } ++ ++ if (!(Lsb <= Msb)) { ++ ErrInfo = "Lsb operand is not less than or equal to msb operand!"; ++ return false; ++ } ++ ++ return true; ++} ++ ++// Perform target specific instruction verification. ++bool LoongArchInstrInfo::verifyInstruction(const MachineInstr &MI, ++ StringRef &ErrInfo) const { ++ // Verify that bstrins and bstrpick instructions are well formed. ++ switch (MI.getOpcode()) { ++ case LoongArch::BSTRINS_W: ++ case LoongArch::BSTRPICK_W: ++ return verifyBstrInstruction(MI, ErrInfo, 31); ++ case LoongArch::BSTRINS_D: ++ case LoongArch::BSTRPICK_D: ++ return verifyBstrInstruction(MI, ErrInfo, 63); ++ default: ++ return true; ++ } ++ ++ return true; ++} ++ ++std::pair ++LoongArchInstrInfo::decomposeMachineOperandsTargetFlags(unsigned TF) const { ++ return std::make_pair(TF, 0u); ++} ++ ++ArrayRef> ++LoongArchInstrInfo::getSerializableDirectMachineOperandTargetFlags() const { ++ using namespace LoongArchII; ++ ++ static const std::pair Flags[] = { ++ {MO_PCREL_HI, "larch-pcrel-hi"}, ++ {MO_PCREL_LO, "larch-pcrel-lo"}, ++ {MO_TLSGD_HI, "larch-tlsgd-hi"}, ++ {MO_TLSGD_LO, "larch-tlsgd-lo"}, ++ {MO_TLSIE_HI, "larch-tlsie-hi"}, ++ {MO_TLSIE_LO, "larch-tlsie-lo"}, ++ {MO_TLSLE_HI, "larch-tlsle-hi"}, ++ {MO_TLSLE_LO, "larch-tlsle-lo"}, ++ {MO_ABS_HI, "larch-abs-hi"}, ++ {MO_ABS_LO, "larch-abs-lo"}, ++ {MO_ABS_HIGHER, "larch-abs-higher"}, ++ {MO_ABS_HIGHEST, "larch-abs-highest"}, ++ {MO_GOT_HI, "larch-got-hi"}, ++ {MO_GOT_LO, "larch-got-lo"}, ++ {MO_CALL_HI, "larch-call-hi"}, ++ {MO_CALL_LO, "larch-call-lo"} ++ }; ++ return makeArrayRef(Flags); ++} +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchInstrInfo.h b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchInstrInfo.h +new file mode 100644 +index 00000000000..5780df4b88b +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchInstrInfo.h +@@ -0,0 +1,245 @@ ++//===- LoongArchInstrInfo.h - LoongArch Instruction Information -----------*- C++ -*-===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++// ++// This file contains the LoongArch implementation of the TargetInstrInfo class. ++// ++// FIXME: We need to override TargetInstrInfo::getInlineAsmLength method in ++// order for LoongArchLongBranch pass to work correctly when the code has inline ++// assembly. The returned value doesn't have to be the asm instruction's exact ++// size in bytes; LoongArchLongBranch only expects it to be the correct upper bound. ++//===----------------------------------------------------------------------===// ++ ++#ifndef LLVM_LIB_TARGET_LOONGARCH_LOONGARCHINSTRINFO_H ++#define LLVM_LIB_TARGET_LOONGARCH_LOONGARCHINSTRINFO_H ++ ++#define DBAR_HINT 0x700 ++ ++#include "MCTargetDesc/LoongArchMCTargetDesc.h" ++#include "LoongArch.h" ++#include "LoongArchRegisterInfo.h" ++#include "llvm/ADT/ArrayRef.h" ++#include "llvm/CodeGen/MachineBasicBlock.h" ++#include "llvm/CodeGen/MachineInstrBuilder.h" ++#include "llvm/CodeGen/MachineMemOperand.h" ++#include "llvm/CodeGen/TargetInstrInfo.h" ++#include ++ ++#define GET_INSTRINFO_HEADER ++#include "LoongArchGenInstrInfo.inc" ++ ++namespace llvm { ++ ++class MachineInstr; ++class MachineOperand; ++class LoongArchSubtarget; ++class TargetRegisterClass; ++class TargetRegisterInfo; ++ ++class LoongArchInstrInfo : public LoongArchGenInstrInfo { ++ virtual void anchor(); ++ const LoongArchRegisterInfo RI; ++ const LoongArchSubtarget &Subtarget; ++ ++public: ++ enum BranchType { ++ BT_None, // Couldn't analyze branch. ++ BT_NoBranch, // No branches found. ++ BT_Uncond, // One unconditional branch. ++ BT_Cond, // One conditional branch. ++ BT_CondUncond, // A conditional branch followed by an unconditional branch. ++ BT_Indirect // One indirct branch. ++ }; ++ ++ explicit LoongArchInstrInfo(const LoongArchSubtarget &STI); ++ ++ /// isLoadFromStackSlot - If the specified machine instruction is a direct ++ /// load from a stack slot, return the virtual or physical register number of ++ /// the destination along with the FrameIndex of the loaded stack slot. If ++ /// not, return 0. This predicate must return 0 if the instruction has ++ /// any side effects other than loading from the stack slot. ++ unsigned isLoadFromStackSlot(const MachineInstr &MI, ++ int &FrameIndex) const override; ++ ++ /// isStoreToStackSlot - If the specified machine instruction is a direct ++ /// store to a stack slot, return the virtual or physical register number of ++ /// the source reg along with the FrameIndex of the loaded stack slot. If ++ /// not, return 0. This predicate must return 0 if the instruction has ++ /// any side effects other than storing to the stack slot. ++ unsigned isStoreToStackSlot(const MachineInstr &MI, ++ int &FrameIndex) const override; ++ ++ void copyPhysReg(MachineBasicBlock &MBB, MachineBasicBlock::iterator I, ++ const DebugLoc &DL, MCRegister DestReg, MCRegister SrcReg, ++ bool KillSrc) const override; ++ ++ /// Branch Analysis ++ bool analyzeBranch(MachineBasicBlock &MBB, MachineBasicBlock *&TBB, ++ MachineBasicBlock *&FBB, ++ SmallVectorImpl &Cond, ++ bool AllowModify) const override; ++ ++ unsigned removeBranch(MachineBasicBlock &MBB, ++ int *BytesRemoved = nullptr) const override; ++ ++ unsigned insertBranch(MachineBasicBlock &MBB, MachineBasicBlock *TBB, ++ MachineBasicBlock *FBB, ArrayRef Cond, ++ const DebugLoc &DL, ++ int *BytesAdded = nullptr) const override; ++ ++ unsigned insertIndirectBranch(MachineBasicBlock &MBB, ++ MachineBasicBlock &NewDestBB, ++ const DebugLoc &DL, int64_t BrOffset, ++ RegScavenger *RS = nullptr) const override; ++ bool ++ reverseBranchCondition(SmallVectorImpl &Cond) const override; ++ ++ BranchType analyzeBranch(MachineBasicBlock &MBB, MachineBasicBlock *&TBB, ++ MachineBasicBlock *&FBB, ++ SmallVectorImpl &Cond, ++ bool AllowModify, ++ SmallVectorImpl &BranchInstrs) const; ++ ++ /// Get the block that branch instruction jumps to. ++ MachineBasicBlock *getBranchDestBlock(const MachineInstr &MI) const override; ++ ++ /// Determine if the branch target is in range. ++ bool isBranchOffsetInRange(unsigned BranchOpc, ++ int64_t BrOffset) const override; ++ ++ /// Predicate to determine if an instruction can go in a forbidden slot. ++ bool SafeInForbiddenSlot(const MachineInstr &MI) const; ++ ++ /// Predicate to determine if an instruction has a forbidden slot. ++ bool HasForbiddenSlot(const MachineInstr &MI) const; ++ ++ /// Insert nop instruction when hazard condition is found ++ void insertNoop(MachineBasicBlock &MBB, ++ MachineBasicBlock::iterator MI) const override; ++ ++ /// getRegisterInfo - TargetInstrInfo is a superset of MRegister info. As ++ /// such, whenever a client has an instance of instruction info, it should ++ /// always be able to get register info as well (through this method). ++ const LoongArchRegisterInfo &getRegisterInfo() const; ++ ++ bool expandPostRAPseudo(MachineInstr &MI) const override; ++ ++ unsigned getOppositeBranchOpc(unsigned Opc) const; ++ ++ /// Emit a series of instructions to load an immediate. ++ unsigned loadImmediate(int64_t Imm, MachineBasicBlock &MBB, ++ MachineBasicBlock::iterator II, ++ const DebugLoc &DL) const; ++ ++ /// Return the number of bytes of code the specified instruction may be. ++ unsigned getInstSizeInBytes(const MachineInstr &MI) const override; ++ ++ void storeRegToStackSlot(MachineBasicBlock &MBB, ++ MachineBasicBlock::iterator MBBI, ++ unsigned SrcReg, bool isKill, int FrameIndex, ++ const TargetRegisterClass *RC, ++ const TargetRegisterInfo *TRI) const override { ++ storeRegToStack(MBB, MBBI, SrcReg, isKill, FrameIndex, RC, TRI, 0); ++ } ++ ++ void loadRegFromStackSlot(MachineBasicBlock &MBB, ++ MachineBasicBlock::iterator MBBI, ++ unsigned DestReg, int FrameIndex, ++ const TargetRegisterClass *RC, ++ const TargetRegisterInfo *TRI) const override { ++ loadRegFromStack(MBB, MBBI, DestReg, FrameIndex, RC, TRI, 0); ++ } ++ ++ void storeRegToStack(MachineBasicBlock &MBB, ++ MachineBasicBlock::iterator MI, ++ Register SrcReg, bool isKill, int FrameIndex, ++ const TargetRegisterClass *RC, ++ const TargetRegisterInfo *TRI, ++ int64_t Offset) const; ++ ++ void loadRegFromStack(MachineBasicBlock &MBB, ++ MachineBasicBlock::iterator MI, ++ Register DestReg, int FrameIndex, ++ const TargetRegisterClass *RC, ++ const TargetRegisterInfo *TRI, ++ int64_t Offset) const; ++ ++ /// Adjust register value(DestReg = SrcReg + Amount). ++ void ++ adjustReg(unsigned DestReg, unsigned SrcReg, int64_t Amount, ++ MachineBasicBlock &MBB, MachineBasicBlock::iterator I, ++ MachineInstr::MIFlag Flag = MachineInstr::MIFlag::NoFlags) const; ++ ++ /// Create an instruction which has the same operands and memory operands ++ /// as MI but has a new opcode. ++ MachineInstrBuilder genInstrWithNewOpc(unsigned NewOpc, ++ MachineBasicBlock::iterator I) const; ++ ++ bool findCommutedOpIndices(const MachineInstr &MI, unsigned &SrcOpIdx1, ++ unsigned &SrcOpIdx2) const override; ++ ++ /// Perform target specific instruction verification. ++ bool verifyInstruction(const MachineInstr &MI, ++ StringRef &ErrInfo) const override; ++ ++ std::pair ++ decomposeMachineOperandsTargetFlags(unsigned TF) const override; ++ ++ ArrayRef> ++ getSerializableDirectMachineOperandTargetFlags() const override; ++ ++protected: ++ /// If the specific machine instruction is a instruction that moves/copies ++ /// value from one register to another register return true along with ++ /// @Source machine operand and @Destination machine operand. ++ Optional ++ isCopyInstrImpl(const MachineInstr &MI) const override; ++ ++private: ++ ++ bool isZeroImm(const MachineOperand &op) const; ++ ++ MachineMemOperand *GetMemOperand(MachineBasicBlock &MBB, int FI, ++ MachineMemOperand::Flags Flags) const; ++ ++ unsigned getAnalyzableBrOpc(unsigned Opc) const; ++ ++ void AnalyzeCondBr(const MachineInstr *Inst, unsigned Opc, ++ MachineBasicBlock *&BB, ++ SmallVectorImpl &Cond) const; ++ ++ MachineInstr * ++ BuildCondBr(MachineBasicBlock &MBB, MachineBasicBlock *TBB, ++ const DebugLoc &DL, ArrayRef Cond) const; ++ ++ void expandRetRA(MachineBasicBlock &MBB, MachineBasicBlock::iterator I) const; ++ ++ void expandERet(MachineBasicBlock &MBB, MachineBasicBlock::iterator I) const; ++ ++ std::pair compareOpndSize(unsigned Opc, ++ const MachineFunction &MF) const; ++ ++ /// Expand pseudo Int-to-FP conversion instructions. ++ /// ++ /// For example, the following pseudo instruction ++ /// PseudoCVT_D32_W D2, A5 ++ /// gets expanded into these two instructions: ++ /// MTC1 F4, A5 ++ /// CVT_D32_W D2, F4 ++ /// ++ /// We do this expansion post-RA to avoid inserting a floating point copy ++ /// instruction between MTC1 and CVT_D32_W. ++ void expandCvtFPInt(MachineBasicBlock &MBB, MachineBasicBlock::iterator I, ++ unsigned CvtOpc, unsigned MovOpc, bool IsI64) const; ++ ++ void expandEhReturn(MachineBasicBlock &MBB, ++ MachineBasicBlock::iterator I) const; ++}; ++ ++} // end namespace llvm ++ ++#endif // LLVM_LIB_TARGET_LOONGARCH_LOONGARCHINSTRINFO_H +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchInstrInfo.td b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchInstrInfo.td +new file mode 100644 +index 00000000000..6205a784b65 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchInstrInfo.td +@@ -0,0 +1,1888 @@ ++//===- LoongArchInstrInfo.td - Target Description for LoongArch Target -*- tablegen -*-=// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++// ++// This file contains the LoongArch implementation of the TargetInstrInfo class. ++// ++//===----------------------------------------------------------------------===// ++include "LoongArchInstrFormats.td" ++ ++def SDT_Bstrpick : SDTypeProfile<1, 3, [SDTCisInt<0>, SDTCisSameAs<0, 1>, ++ SDTCisVT<2, i32>, SDTCisSameAs<2, 3>]>; ++def SDT_Bstrins : SDTypeProfile<1, 4, [SDTCisInt<0>, SDTCisSameAs<0, 1>, ++ SDTCisVT<2, i32>, SDTCisSameAs<2, 3>, ++ SDTCisSameAs<0, 4>]>; ++ ++def LoongArchBstrpick : SDNode<"LoongArchISD::BSTRPICK", SDT_Bstrpick>; ++ ++def LoongArchBstrins : SDNode<"LoongArchISD::BSTRINS", SDT_Bstrins>; ++ ++def SDT_DBAR : SDTypeProfile<0, 1, [SDTCisVT<0, i32>]>; ++def LoongArchDBAR : SDNode<"LoongArchISD::DBAR", SDT_DBAR, [SDNPHasChain,SDNPSideEffect]>; ++ ++def SDT_LoongArchEHRET : SDTypeProfile<0, 2, [SDTCisInt<0>, SDTCisPtrTy<1>]>; ++ ++def LoongArchehret : SDNode<"LoongArchISD::EH_RETURN", SDT_LoongArchEHRET, ++ [SDNPHasChain, SDNPOptInGlue, SDNPVariadic]>; ++ ++//===---------------------------------------------------------------------===/ ++// Operand, Complex Patterns and Transformations Definitions. ++//===---------------------------------------------------------------------===/ ++ ++def assertzext_lt_i32 : PatFrag<(ops node:$src), (assertzext node:$src), [{ ++ return cast(N->getOperand(1))->getVT().bitsLT(MVT::i32); ++}]>; ++ ++def immz : PatLeaf<(imm), [{ return N->getSExtValue() == 0; }]>; ++def immZExt12 : PatLeaf<(imm), [{ return isUInt<12>(N->getZExtValue()); }]>; ++def immSExt12 : PatLeaf<(imm), [{ return isInt<12>(N->getSExtValue()); }]>; ++def immSExt13 : PatLeaf<(imm), [{ return isInt<13>(N->getSExtValue()); }]>; ++ ++def immZExt2Alsl : ImmLeaf(Imm - 1);}]>; ++//class ImmAsmOperand : AsmOperandClass { ++// let RenderMethod = "addImmOperands"; ++// let PredicateMethod = "isImmediate<" # Low # "," # High # ">"; ++// let DiagnosticString = "operand must be an immediate in the range [" # Low # "," # High # "]"; ++//} ++// ++//def Imm8AsmOperand: ImmAsmOperand<8,8> { let Name = "Imm8"; } ++//def imm8 : Operand, ImmLeaf { ++// let ParserMatchClass = Imm8AsmOperand; ++//} ++ ++def HasLSX : Predicate<"Subtarget->hasLSX()">, ++ AssemblerPredicate<"FeatureLSX">; ++def HasLASX : Predicate<"Subtarget->hasLASX()">, ++ AssemblerPredicate<"FeatureLASX">; ++ ++class EXT_LSX { ++ list ExtPredicate = [HasLSX]; ++} ++ ++class EXT_LASX { ++ list ExtPredicate = [HasLASX]; ++} ++ ++class SImmOperand : AsmOperandClass { ++ let Name = "SImm" # width; ++ let DiagnosticType = "InvalidSImm" # width; ++ let RenderMethod = "addImmOperands"; ++ let PredicateMethod = "isSImm<" # width # ">"; ++} ++ ++def SImm2Operand : SImmOperand<2>; ++def simm2 : Operand, ImmLeaf= -2 && Imm < 2; }]> { ++ let ParserMatchClass = SImm2Operand; ++ let DecoderMethod = "DecodeSImmWithOffsetAndScale<2>"; ++} ++def SImm3Operand : SImmOperand<3>; ++def simm3 : Operand, ImmLeaf= -4 && Imm < 4; }]> { ++ let ParserMatchClass = SImm3Operand; ++ let DecoderMethod = "DecodeSImmWithOffsetAndScale<3>"; ++} ++ ++def SImm5Operand : SImmOperand<5>; ++def simm5 : Operand, ImmLeaf= -16 && Imm < 16; }]> { ++ let ParserMatchClass = SImm5Operand; ++ let DecoderMethod = "DecodeSImmWithOffsetAndScale<5>"; ++} ++ ++def simm5_32 : Operand, ImmLeaf= -16 && Imm < 16; }]> { ++ let ParserMatchClass = SImm5Operand; ++ let DecoderMethod = "DecodeSImmWithOffsetAndScale<5>"; ++} ++ ++def SImm8Operand : SImmOperand<8>; ++def simm8 : Operand, ImmLeaf= -128 && Imm < 128; }]> { ++ let ParserMatchClass = SImm8Operand; ++ let DecoderMethod = "DecodeSImmWithOffsetAndScale<8>"; ++} ++def simm8_32 : Operand, ImmLeaf= -128 && Imm < 128; }]> { ++ let ParserMatchClass = SImm8Operand; ++ let DecoderMethod = "DecodeSImmWithOffsetAndScale<8>"; ++} ++ ++def SImm12Operand : SImmOperand<12>; ++def simm12 : Operand, ImmLeaf= -2048 && Imm < 2048; }]> { ++ let ParserMatchClass = SImm12Operand; ++ let DecoderMethod = "DecodeSImmWithOffsetAndScale<12>"; ++} ++def simm12_32 : Operand, ImmLeaf= -2048 && Imm < 2048; }]> { ++ let ParserMatchClass = SImm12Operand; ++ let DecoderMethod = "DecodeSImmWithOffsetAndScale<12>"; ++} ++ ++def SImm14Operand : SImmOperand<14>; ++def simm14 : Operand, ImmLeaf= -8192 && Imm < 8192; }]> { ++ let ParserMatchClass = SImm14Operand; ++ let DecoderMethod = "DecodeSImmWithOffsetAndScale<14>"; ++} ++ ++def SImm15Operand : SImmOperand<15>; ++def simm15 : Operand, ImmLeaf= -16384 && Imm < 16384; }]> { ++ let ParserMatchClass = SImm15Operand; ++ let DecoderMethod = "DecodeSImmWithOffsetAndScale<15>"; ++} ++ ++def SImm16Operand : SImmOperand<16>; ++def simm16 : Operand, ImmLeaf= -32768 && Imm < 32768; }]> { ++ let ParserMatchClass = SImm16Operand; ++ let DecoderMethod = "DecodeSImmWithOffsetAndScale<16>"; ++} ++ ++def SImm20Operand : SImmOperand<20>; ++def simm20 : Operand, ImmLeaf= -524288 && Imm < 524288; }]> { ++ let ParserMatchClass = SImm20Operand; ++ let DecoderMethod = "DecodeSImmWithOffsetAndScale<20>"; ++} ++def simm20_32 : Operand, ImmLeaf= -524288 && Imm < 524288; }]> { ++ let ParserMatchClass = SImm20Operand; ++ let DecoderMethod = "DecodeSImmWithOffsetAndScale<20>"; ++} ++ ++def SImm21Operand : SImmOperand<21>; ++def simm21 : Operand, ImmLeaf= -1048576 && Imm < 1048576; }]> { ++ let ParserMatchClass = SImm21Operand; ++ let DecoderMethod = "DecodeSImmWithOffsetAndScale<21>"; ++} ++ ++def SImm26Operand : SImmOperand<26>; ++def simm26 : Operand, ImmLeaf= -33554432 && Imm < 33554432; }]> { ++ let ParserMatchClass = SImm26Operand; ++ let DecoderMethod = "DecodeSImmWithOffsetAndScale<26>"; ++} ++ ++def UImm1Operand : AsmOperandClass { ++ let Name = "UImm1"; ++ let RenderMethod = "addUImmOperands<1>"; ++ let PredicateMethod = "isUImm<1>"; ++ let DiagnosticType = "InvalidImm0_1"; ++} ++ ++def UImm2Operand : AsmOperandClass { ++ let Name = "UImm2"; ++ let RenderMethod = "addUImmOperands<2>"; ++ let PredicateMethod = "isUImm<2>"; ++ let DiagnosticType = "InvalidImm0_3"; ++} ++ ++def UImm3Operand : AsmOperandClass { ++ let Name = "UImm3"; ++ let RenderMethod = "addUImmOperands<3>"; ++ let PredicateMethod = "isUImm<3>"; ++ let DiagnosticType = "InvalidImm0_7"; ++} ++ ++def UImm4Operand : AsmOperandClass { ++ let Name = "UImm4"; ++ let RenderMethod = "addUImmOperands<4>"; ++ let PredicateMethod = "isUImm<4>"; ++ let DiagnosticType = "InvalidImm0_15"; ++} ++ ++def UImm5Operand : AsmOperandClass { ++ let Name = "UImm5"; ++ let RenderMethod = "addUImmOperands<5>"; ++ let PredicateMethod = "isUImm<5>"; ++ let DiagnosticType = "InvalidImm0_31"; ++} ++ ++def uimm1i : Operand, ImmLeaf= 0 && Imm < 2; }]> { ++ let PrintMethod = "printUImm<1>"; ++ let ParserMatchClass = UImm1Operand; ++} ++ ++def uimm2 : Operand, ImmLeaf= 0 && Imm < 4; }]> { ++ let PrintMethod = "printUImm<2>"; ++ let ParserMatchClass = UImm2Operand; ++} ++ ++def uimm3 : Operand, ImmLeaf= 0 && Imm < 8; }]> { ++ let PrintMethod = "printUImm<3>"; ++ let ParserMatchClass = UImm3Operand; ++} ++ ++def uimm4i : Operand, ImmLeaf= 0 && Imm < 16; }]> { ++ let PrintMethod = "printUImm<4>"; ++ let ParserMatchClass = UImm4Operand; ++} ++ ++def uimm5 : Operand, ImmLeaf= 0 && Imm < 32; }]> { ++ let PrintMethod = "printUImm<5>"; ++ let ParserMatchClass = UImm5Operand; ++} ++ ++def UImm6Operand : AsmOperandClass { ++ let Name = "UImm6"; ++ let RenderMethod = "addUImmOperands<16>"; ++ let PredicateMethod = "isUImm<6>"; ++ let DiagnosticType = "InvalidImm0_63"; ++} ++def uimm6 : Operand, ImmLeaf= 0 && Imm < 64; }]> { ++ let PrintMethod = "printUImm<6>"; ++ let ParserMatchClass = UImm6Operand; ++} ++ ++def UImm7Operand : AsmOperandClass { ++ let Name = "UImm7"; ++ let RenderMethod = "addUImmOperands<16>"; ++ let PredicateMethod = "isUImm<7>"; ++ let DiagnosticType = "InvalidImm0_127"; ++} ++ ++def uimm7i : Operand, ImmLeaf= 0 && Imm < 128; }]> { ++ let PrintMethod = "printUImm<7>"; ++ let ParserMatchClass = UImm7Operand; ++} ++ ++def UImm12Operand : AsmOperandClass { ++ let Name = "UImm12"; ++ let RenderMethod = "addUImmOperands<12>"; ++ let PredicateMethod = "isUImm<12>"; ++ let DiagnosticType = "InvalidImm0_4095"; ++} ++def uimm12 : Operand, ImmLeaf= 0 && Imm < 4096; }]> { ++ let PrintMethod = "printUImm<12>"; ++ let ParserMatchClass = UImm12Operand; ++} ++def uimm12_32 : Operand, ImmLeaf= 0 && Imm < 4096; }]> { ++ let PrintMethod = "printUImm<12>"; ++ let ParserMatchClass = UImm12Operand; ++} ++ ++def UImm15Operand : AsmOperandClass { ++ let Name = "UImm15"; ++ let RenderMethod = "addUImmOperands<15>"; ++ let PredicateMethod = "isUImm<15>"; ++ let DiagnosticType = "InvalidImm0_32767"; ++} ++def uimm15 : Operand, ImmLeaf= 0 && Imm < 32768; }]> { ++ let PrintMethod = "printUImm<15>"; ++ let ParserMatchClass = UImm15Operand; ++} ++ ++def UImm14Operand : AsmOperandClass { ++ let Name = "UImm14"; ++ let RenderMethod = "addUImmOperands<14>"; ++ let PredicateMethod = "isUImm<14>"; ++ let DiagnosticType = "InvalidImm0_16383"; ++} ++def uimm14 : Operand, ImmLeaf= 0 && Imm < 16384; }]> { ++ let PrintMethod = "printUImm<14>"; ++ let ParserMatchClass = UImm14Operand; ++} ++def uimm14_32 : Operand, ImmLeaf= 0 && Imm < 16384; }]> { ++ let PrintMethod = "printUImm<14>"; ++ let ParserMatchClass = UImm14Operand; ++} ++ ++def UImm8Operand : AsmOperandClass { ++ let Name = "UImm8"; ++ let RenderMethod = "addUImmOperands<8>"; ++ let PredicateMethod = "isUImm<8>"; ++ let DiagnosticType = "InvalidImm0_255"; ++} ++def uimm8_64 : Operand, ImmLeaf= 0 && Imm < 256; }]> { ++ let PrintMethod = "printUImm<8>"; ++ let ParserMatchClass = UImm8Operand; ++} ++ ++def uimm8_32 : Operand, ImmLeaf= 0 && Imm < 256; }]> { ++ let PrintMethod = "printUImm<8>"; ++ let ParserMatchClass = UImm8Operand; ++} ++ ++def addr : ++ComplexPattern; ++ ++def addrDefault : ++ComplexPattern; ++ ++def addrRegImm : ++ComplexPattern; ++ ++def addrimm14lsl2 : ComplexPattern; ++ ++class ConstantUImmAsmOperandClass Supers = [], ++ int Offset = 0> : AsmOperandClass { ++ let Name = "ConstantUImm" # Bits # "_" # Offset; ++ let RenderMethod = "addConstantUImmOperands<" # Bits # ", " # Offset # ">"; ++ let PredicateMethod = "isConstantUImm<" # Bits # ", " # Offset # ">"; ++ let SuperClasses = Supers; ++ let DiagnosticType = "UImm" # Bits # "_" # Offset; ++} ++class SImmAsmOperandClass Supers = []> ++ : AsmOperandClass { ++ let Name = "SImm" # Bits; ++ let RenderMethod = "addSImmOperands<" # Bits # ">"; ++ let PredicateMethod = "isSImm<" # Bits # ">"; ++ let SuperClasses = Supers; ++ let DiagnosticType = "SImm" # Bits; ++} ++class UImmAnyAsmOperandClass Supers = []> ++ : AsmOperandClass { ++ let Name = "ImmAny"; ++ let RenderMethod = "addConstantUImmOperands<32>"; ++ let PredicateMethod = "isSImm<" # Bits # ">"; ++ let SuperClasses = Supers; ++ let DiagnosticType = "ImmAny"; ++} ++ ++def UImm32CoercedAsmOperandClass : UImmAnyAsmOperandClass<33, []> { ++ let Name = "UImm32_Coerced"; ++ let DiagnosticType = "UImm32_Coerced"; ++} ++def SImm32RelaxedAsmOperandClass ++ : SImmAsmOperandClass<32, [UImm32CoercedAsmOperandClass]> { ++ let Name = "SImm32_Relaxed"; ++ let PredicateMethod = "isAnyImm<33>"; ++ let DiagnosticType = "SImm32_Relaxed"; ++} ++def SImm32AsmOperandClass ++ : SImmAsmOperandClass<32, [SImm32RelaxedAsmOperandClass]>; ++def ConstantUImm26AsmOperandClass ++ : ConstantUImmAsmOperandClass<26, [SImm32AsmOperandClass]>; ++ ++def ConstantUImm20AsmOperandClass ++ : ConstantUImmAsmOperandClass<20, [ConstantUImm26AsmOperandClass]>; ++ ++def ConstantUImm2Plus1AsmOperandClass ++ : ConstantUImmAsmOperandClass<2, [ConstantUImm20AsmOperandClass], 1>; ++ ++class UImmAsmOperandClass Supers = []> ++ : AsmOperandClass { ++ let Name = "UImm" # Bits; ++ let RenderMethod = "addUImmOperands<" # Bits # ">"; ++ let PredicateMethod = "isUImm<" # Bits # ">"; ++ let SuperClasses = Supers; ++ let DiagnosticType = "UImm" # Bits; ++} ++ ++def UImm16RelaxedAsmOperandClass ++ : UImmAsmOperandClass<16, [ConstantUImm20AsmOperandClass]> { ++ let Name = "UImm16_Relaxed"; ++ let PredicateMethod = "isAnyImm<16>"; ++ let DiagnosticType = "UImm16_Relaxed"; ++} ++ ++def ConstantSImm14Lsl2AsmOperandClass : AsmOperandClass { ++ let Name = "SImm14Lsl2"; ++ let RenderMethod = "addImmOperands"; ++ let PredicateMethod = "isScaledSImm<14, 2>"; ++ let SuperClasses = [UImm16RelaxedAsmOperandClass]; ++ let DiagnosticType = "SImm14_Lsl2"; ++} ++ ++foreach I = {2} in ++ def simm14_lsl # I : Operand { ++ let DecoderMethod = "DecodeSImmWithOffsetAndScale<14, " # I # ">"; ++ let ParserMatchClass = ++ !cast("ConstantSImm14Lsl" # I # "AsmOperandClass"); ++ } ++ ++def uimm16_64_relaxed : Operand { ++ let PrintMethod = "printUImm<16>"; ++ let ParserMatchClass = ++ !cast("UImm16RelaxedAsmOperandClass"); ++} ++ ++def uimm2_plus1 : Operand { ++ let PrintMethod = "printUImm<2, 1>"; ++ let EncoderMethod = "getUImmWithOffsetEncoding<2, 1>"; ++ let DecoderMethod = "DecodeUImmWithOffset<2, 1>"; ++ let ParserMatchClass = ConstantUImm2Plus1AsmOperandClass; ++} ++ ++// like simm32 but coerces simm32 to uimm32. ++def uimm32_coerced : Operand { ++ let ParserMatchClass = !cast("UImm32CoercedAsmOperandClass"); ++} ++ ++def imm64: Operand; ++ ++def LoongArchMemAsmOperand : AsmOperandClass { ++ let Name = "Mem"; ++ let ParserMethod = "parseMemOperand"; ++} ++ ++def LoongArchAMemAsmOperand : AsmOperandClass { ++ let Name = "AMem"; ++ let ParserMethod = "parseAMemOperand"; ++ let RenderMethod = "addMemOperands"; ++ let PredicateMethod = "isZeroMemOff"; ++ let DiagnosticType = "MemZeroOff"; ++} ++ ++def LoongArchMemSimm14AsmOperand : AsmOperandClass { ++ let Name = "MemOffsetSimm14"; ++ let SuperClasses = [LoongArchMemAsmOperand]; ++ let RenderMethod = "addMemOperands"; ++ let ParserMethod = "parseMemOperand"; ++ let PredicateMethod = "isMemWithSimmOffset<14>"; ++ let DiagnosticType = "MemSImm14"; ++} ++ ++foreach I = {2} in ++ def LoongArchMemSimm14Lsl # I # AsmOperand : AsmOperandClass { ++ let Name = "MemOffsetSimm14_" # I; ++ let SuperClasses = [LoongArchMemAsmOperand]; ++ let RenderMethod = "addMemOperands"; ++ let ParserMethod = "parseMemOperand"; ++ let PredicateMethod = "isMemWithSimmOffset<14, " # I # ">"; ++ let DiagnosticType = "MemSImm14Lsl" # I; ++ } ++ ++def LoongArchMemSimmPtrAsmOperand : AsmOperandClass { ++ let Name = "MemOffsetSimmPtr"; ++ let SuperClasses = [LoongArchMemAsmOperand]; ++ let RenderMethod = "addMemOperands"; ++ let ParserMethod = "parseMemOperand"; ++ let PredicateMethod = "isMemWithPtrSizeOffset"; ++ let DiagnosticType = "MemSImmPtr"; ++} ++ ++class mem_generic : Operand { ++ let PrintMethod = "printMemOperand"; ++ let MIOperandInfo = (ops ptr_rc, simm12); ++ let EncoderMethod = "getMemEncoding"; ++ let ParserMatchClass = LoongArchMemAsmOperand; ++ let OperandType = "OPERAND_MEMORY"; ++} ++ ++// Address operand ++def mem : mem_generic; ++ ++def amem : mem_generic { ++ let PrintMethod = "printAMemOperand"; ++ let EncoderMethod = "getAMemEncoding"; ++ let ParserMatchClass = LoongArchAMemAsmOperand; ++} ++ ++def mem_simmptr : mem_generic { ++ let ParserMatchClass = LoongArchMemSimmPtrAsmOperand; ++} ++ ++foreach I = {2} in ++ def mem_simm14_lsl # I : mem_generic { ++ let MIOperandInfo = (ops ptr_rc, !cast("simm14_lsl" # I)); ++ let EncoderMethod = "getSimm14MemEncoding<" # I # ">"; ++ let ParserMatchClass = ++ !cast("LoongArchMemSimm14Lsl" # I # "AsmOperand"); ++ } ++ ++def mem_ea : Operand { ++ let PrintMethod = "printMemOperandEA"; ++ let MIOperandInfo = (ops ptr_rc, simm12); ++ let EncoderMethod = "getMemEncoding"; ++ let OperandType = "OPERAND_MEMORY"; ++} ++ ++def LoongArchJumpTargetAsmOperand : AsmOperandClass { ++ let Name = "JumpTarget"; ++ let ParserMethod = "parseJumpTarget"; ++ let PredicateMethod = "isImm"; ++ let RenderMethod = "addImmOperands"; ++} ++ ++def jmptarget : Operand { ++ let EncoderMethod = "getJumpTargetOpValue"; ++ let ParserMatchClass = LoongArchJumpTargetAsmOperand; ++} ++ ++def brtarget : Operand { ++ let EncoderMethod = "getBranchTargetOpValue"; ++ let OperandType = "OPERAND_PCREL"; ++ let DecoderMethod = "DecodeBranchTarget"; ++ let ParserMatchClass = LoongArchJumpTargetAsmOperand; ++} ++ ++def calltarget : Operand { ++ let EncoderMethod = "getJumpTargetOpValue"; ++ let ParserMatchClass = LoongArchJumpTargetAsmOperand; ++} ++ ++// ++//SDNode ++// ++def IsGP64bit : Predicate<"Subtarget->is64Bit()">, ++ AssemblerPredicate<"Feature64Bit">; ++def IsGP32bit : Predicate<"!Subtarget->is64Bit()">, ++ AssemblerPredicate<"!Feature64Bit">; ++def SDT_LoongArchCallSeqStart : SDCallSeqStart<[SDTCisVT<0, i32>, SDTCisVT<1, i32>]>; ++def SDT_LoongArchCallSeqEnd : SDCallSeqEnd<[SDTCisVT<0, i32>, SDTCisVT<1, i32>]>; ++ ++def LoongArchRet : SDNode<"LoongArchISD::Ret", SDTNone, ++ [SDNPHasChain, SDNPOptInGlue, SDNPVariadic]>; ++def LoongArchERet : SDNode<"LoongArchISD::ERet", SDTNone, ++ [SDNPHasChain, SDNPOptInGlue, SDNPSideEffect]>; ++ ++def callseq_start : SDNode<"ISD::CALLSEQ_START", SDT_LoongArchCallSeqStart, ++ [SDNPHasChain, SDNPSideEffect, SDNPOutGlue]>; ++def callseq_end : SDNode<"ISD::CALLSEQ_END", SDT_LoongArchCallSeqEnd, ++ [SDNPHasChain, SDNPSideEffect, ++ SDNPOptInGlue, SDNPOutGlue]>; ++def LoongArchAddress : SDNode<"LoongArchISD::GlobalAddress", SDTIntUnaryOp>; ++ ++// Return RA. ++let isReturn=1, isTerminator=1, isBarrier=1, hasCtrlDep=1, isCTI=1 in { ++ def RetRA : LoongArchPseudo<(outs), (ins), [(LoongArchRet)]>; ++ ++ let hasSideEffects=1 in ++ def ERet : LoongArchPseudo<(outs), (ins), [(LoongArchERet)]>; ++} ++ ++let Defs = [SP], Uses = [SP], hasSideEffects = 1 in { ++def ADJCALLSTACKDOWN : LoongArchPseudo<(outs), (ins i32imm:$amt1, i32imm:$amt2), ++ [(callseq_start timm:$amt1, timm:$amt2)]>; ++def ADJCALLSTACKUP : LoongArchPseudo<(outs), (ins i32imm:$amt1, i32imm:$amt2), ++ [(callseq_end timm:$amt1, timm:$amt2)]>; ++} ++ ++class LoongArchPat : Pat, PredicateControl; ++ ++def SDT_LoongArchJmpLink : SDTypeProfile<0, 1, [SDTCisVT<0, iPTR>]>; ++ ++def LoongArchJmpLink : SDNode<"LoongArchISD::JmpLink",SDT_LoongArchJmpLink, ++ [SDNPHasChain, SDNPOutGlue, SDNPOptInGlue, ++ SDNPVariadic]>; ++ ++def LoongArchTailCall : SDNode<"LoongArchISD::TailCall", SDT_LoongArchJmpLink, ++ [SDNPHasChain, SDNPOptInGlue, SDNPVariadic]>; ++ ++class GPR_32 { list GPRPredicates = [IsGP32bit]; } ++class GPR_64 { list GPRPredicates = [IsGP64bit]; } ++ ++//===---------------------------------------------------------------------===/ ++// Instruction Class Templates ++//===---------------------------------------------------------------------===/ ++///R2 ++class Int_Reg2 ++ : InstForm<(outs RO:$rd), (ins RO:$rj), ++ !strconcat(opstr, "\t$rd, $rj"), ++ [(set RO:$rd, (OpNode RO:$rj))], ++ FrmR, opstr>; ++ ++class Int_Reg2_Iocsrrd ++ : InstForm<(outs RD:$rd), (ins RS:$rj), ++ !strconcat(opstr, "\t$rd, $rj"), ++ [(set RD:$rd, (OpNode RS:$rj))], ++ FrmR, opstr>; ++ ++class Int_Reg2_Rdtime ++ : InstForm<(outs RO:$rd, RO:$rj), (ins), ++ !strconcat(opstr, "\t$rd, $rj"), ++ [(set (OpNode RO:$rd, RO:$rj))], ++ FrmR, opstr>; ++ ++class Int_Reg2_Iocsrwr ++ : InstForm<(outs), (ins RD:$rd, RS:$rj), ++ !strconcat(opstr, "\t$rd, $rj"), ++ [(set (OpNode RD:$rd, RS:$rj))], ++ FrmR, opstr>; ++ ++class Float_Reg2 ++ : InstForm<(outs RO:$fd), (ins RO:$fj), ++ !strconcat(opstr, "\t$fd, $fj"), ++ [(set RO:$fd, (OpNode RO:$fj))], ++ FrmFR, opstr>; ++ ++class Count1 ++ : InstForm<(outs RO:$rd), (ins RO:$rj), ++ !strconcat(opstr, "\t$rd, $rj"), ++ [(set RO:$rd, (OpNode (not RO:$rj)))], ++ FrmR, opstr>; ++ ++class SignExtInReg ++ : InstForm<(outs RO:$rd), (ins RO:$rj), !strconcat(opstr, "\t$rd, $rj"), ++ [(set RO:$rd, (sext_inreg RO:$rj, vt))], FrmR, opstr>; ++ ++///R3 ++class Int_Reg3 ++ : InstForm<(outs RO:$rd), (ins RO:$rj, RO:$rk), ++ !strconcat(opstr, "\t$rd, $rj, $rk"), ++ [(set RO:$rd, (OpNode RO:$rj, RO:$rk))], ++ FrmR, opstr>; ++ ++class Int_Reg3_Crc ++ : InstForm<(outs RS:$rd), (ins RD:$rj, RS:$rk), ++ !strconcat(opstr, "\t$rd, $rj, $rk"), ++ [(set RS:$rd, (OpNode RD:$rj, RS:$rk))], ++ FrmR, opstr>; ++ ++class SetCC_R ++ : InstForm<(outs GPR32Opnd:$rd), (ins RO:$rj, RO:$rk), ++ !strconcat(opstr, "\t$rd, $rj, $rk"), ++ [(set GPR32Opnd:$rd, (OpNode RO:$rj, RO:$rk))], ++ FrmR, opstr>; ++ ++class SetCC_I ++ : InstForm<(outs GPR32Opnd:$rd), (ins RO:$rj, ImmOpnd:$imm12), ++ !strconcat(opstr, "\t$rd, $rj, $imm12"), ++ [(set GPR32Opnd:$rd, (OpNode RO:$rj, ImmOpnd:$imm12))], ++ FrmR, opstr>; ++ ++class ATOMIC ++ : InstForm<(outs RD:$rd), (ins RD:$rk, MO:$addr), ++ !strconcat(opstr, "\t$rd, $rk, $addr"), ++ [(set RD:$rd, (OpNode RD:$rk, Addr:$addr))], ++ FrmR, opstr> { ++ let DecoderMethod = "DecodeAMem"; ++ let canFoldAsLoad = 1; ++ string BaseOpcode = opstr; ++ let mayLoad = 1; ++ let mayStore = 1; ++ let Constraints = "@earlyclobber $rd"; ++} ++ ++class Nor ++ : InstForm<(outs RO:$rd), (ins RO:$rj, RO:$rk), ++ !strconcat(opstr, "\t$rd, $rj, $rk"), ++ [(set RO:$rd, (not (or RO:$rj, RO:$rk)))], ++ FrmR, opstr>; ++ ++class Shift_Var ++ : InstForm<(outs RO:$rd), (ins RO:$rj, GPR32Opnd:$rk), ++ !strconcat(opstr, "\t$rd, $rj, $rk"), ++ [(set RO:$rd, (OpNode RO:$rj, GPR32Opnd:$rk))], ++ FrmR, opstr>; ++ ++class Float_Reg3 ++ : InstForm<(outs RO:$fd), (ins RO:$fj, RO:$fk), ++ !strconcat(opstr, "\t$fd, $fj, $fk"), ++ [(set RO:$fd, (OpNode RO:$fj, RO:$fk))], ++ FrmR, opstr>; ++ ++class Float_Reg3_MA ++ : InstForm<(outs RO:$fd), (ins RO:$fj, RO:$fk), ++ !strconcat(opstr, "\t$fd, $fj, $fk"), ++ [(set RO:$fd, (OpNode (fabs RO:$fj), (fabs RO:$fk)))], ++ FrmR, opstr>; ++ ++class Float_Int_Reg3 ++ : InstForm<(outs RD:$fd), (ins RS:$rj, RS:$rk), ++ !strconcat(opstr, "\t$fd, $rj, $rk"), ++ [(set RS:$fd, (OpNode RS:$rj, RS:$rk))], ++ FrmR, opstr>; ++ ++///R4 ++class Mul_Reg4 ++ : InstForm<(outs RO:$fd), (ins RO:$fj, RO:$fk, RO:$fa), ++ !strconcat(opstr, "\t$fd, $fj, $fk, $fa"), ++ [], ++ FrmFR, opstr>; ++ ++class NMul_Reg4 ++ : InstForm<(outs RO:$fd), (ins RO:$fj, RO:$fk, RO:$fa), ++ !strconcat(opstr, "\t$fd, $fj, $fk, $fa"), ++ [], ++ FrmFR, opstr>; ++ ++///R2_IMM5 ++class Shift_Imm32 ++ : InstForm<(outs RO:$rd), (ins RO:$rj, uimm5:$imm5), ++ !strconcat(opstr, "\t$rd, $rj, $imm5"), ++ [(set RO:$rd, (OpNode RO:$rj, uimm5:$imm5))], ++ FrmR, opstr>; ++ ++///R2_IMM6 ++class Shift_Imm64 ++ : InstForm<(outs RO:$rd), (ins RO:$rj, uimm6:$imm6), ++ !strconcat(opstr, "\t$rd, $rj, $imm6"), ++ [(set RO:$rd, (OpNode RO:$rj, uimm6:$imm6))], ++ FrmR, opstr>; ++ ++///LOAD_STORE ++class FLd ++ : InstForm<(outs RD:$rd), (ins MO:$addr), ++ !strconcat(opstr, "\t$rd, $addr"), ++ [(set RD:$rd, (OpNode addrDefault:$addr))], ++ FrmR, opstr> { ++ let DecoderMethod = "DecodeFMem"; ++ let mayLoad = 1; ++} ++ ++class Ld ++ : InstForm<(outs RD:$rd), (ins MO:$addr), ++ !strconcat(opstr, "\t$rd, $addr"), ++ [(set RD:$rd, (OpNode Addr:$addr))], ++ FrmR, opstr> { ++ let DecoderMethod = "DecodeMem"; ++ let canFoldAsLoad = 1; ++ string BaseOpcode = opstr; ++ let mayLoad = 1; ++} ++ ++class FSt ++ : InstForm<(outs), (ins RD:$rd, MO:$addr), ++ !strconcat(opstr, "\t$rd, $addr"), ++ [(OpNode RD:$rd, addrDefault:$addr)], ++ FrmR, opstr> { ++ let DecoderMethod = "DecodeFMem"; ++ let mayStore = 1; ++} ++ ++class St ++ : InstForm<(outs), (ins RS:$rd, MO:$addr), ++ !strconcat(opstr, "\t$rd, $addr"), ++ [(OpNode RS:$rd, addr:$addr)], ++ FrmR, opstr> { ++ let DecoderMethod = "DecodeMem"; ++ string BaseOpcode = opstr; ++ let mayStore = 1; ++} ++ ++/// R2_IMM12 ++class Int_Reg2_Imm12 ++ : InstForm<(outs RO:$rd), (ins RO:$rj, ImmOpnd:$imm12), ++ !strconcat(opstr, "\t$rd, $rj, $imm12"), ++ [(set RO:$rd, (OpNode RO:$rj, ImmOpnd:$imm12))], ++ FrmR, opstr>; ++class RELOC_rrii ++ : InstForm<(outs RO:$rd), (ins RO:$rj, ImmOpnd:$imm12, ImmOpnd:$i12), ++ !strconcat(opstr, "\t$rd, $rj, $imm12"), ++ [(set RO:$rd, (OpNode RO:$rj, ImmOpnd:$imm12, ImmOpnd:$i12))], ++ FrmR, opstr>; ++ ++///R2_IMM14 ++class LdPtr ++ : InstForm<(outs RO:$rd), (ins mem_simm14_lsl2:$addr), ++ !strconcat(opstr, "\t$rd, $addr"), ++ [], FrmI, opstr>{ ++ let DecoderMethod = "DecodeMemSimm14"; ++ let canFoldAsLoad = 1; ++ string BaseOpcode = opstr; ++ let mayLoad = 1; ++} ++ ++class StPtr ++ : InstForm<(outs), (ins RO:$rd, mem_simm14_lsl2:$addr), ++ !strconcat(opstr, "\t$rd, $addr"), ++ [], FrmI, opstr> { ++ let DecoderMethod = "DecodeMemSimm14"; ++ string BaseOpcode = opstr; ++ let mayStore = 1; ++} ++ ++///R2_IMM16 ++class FJirl ++ : InstForm<(outs RO:$rd), (ins RO:$rj, opnd:$offs16), ++ !strconcat(opstr, "\t$rd, $rj, $offs16"), ++ [], FrmJ, opstr>; ++ ++class Beq ++ : InstForm<(outs), (ins RO:$rj, RO:$rd, opnd:$offs16), ++ !strconcat(opstr, "\t$rj, $rd, $offs16"), ++ [(brcond (i32 (cond_op RO:$rj, RO:$rd)), bb:$offs16)], ++ FrmI, opstr> { ++ let isBranch = 1; ++ let isTerminator = 1; ++ bit isCTI = 1; ++} ++ ++///R1_IMM21 ++class Beqz ++ : InstForm<(outs), (ins RO:$rj, opnd:$offs21), ++ !strconcat(opstr, "\t$rj, $offs21"), ++ [(brcond (i32 (cond_op RO:$rj, 0)), bb:$offs21)], ++ FrmI, opstr> { ++ let isBranch = 1; ++ let isTerminator = 1; ++ bit isCTI = 1; ++} ++ ++///IMM26 ++class JumpFB : ++ InstForm<(outs), (ins opnd:$offset26), !strconcat(opstr, "\t$offset26"), ++ [(operator targetoperator:$offset26)], FrmJ, opstr> { ++ let isBranch = 1; ++ let isTerminator=1; ++ let isBarrier=1; ++ let DecoderMethod = "DecodeJumpTarget"; ++ bit isCTI = 1; ++} ++ ++/// R3_SA ++class Reg3_Sa ++ : InstForm<(outs RO:$rd), (ins RO:$rj, RO:$rk, ImmOpnd:$sa), ++ !strconcat(opstr, "\t$rd, $rj, $rk, $sa"), ++ [(set RO:$rd, (OpNode RO:$rj, RO:$rk, ImmOpnd:$sa))], ++ FrmR, opstr>; ++ ++class Reg3_SaU ++ : InstForm<(outs RD:$rd), (ins RS:$rj, RS:$rk, ImmOpnd:$sa), ++ !strconcat(opstr, "\t$rd, $rj, $rk, $sa"), ++ [(set RD:$rd, (OpNode RS:$rj, RS:$rk, ImmOpnd:$sa))], ++ FrmR, opstr>; ++ ++/// Assert ++class Assert ++ : InstForm<(outs), (ins RO:$rj, RO:$rk), ++ !strconcat(opstr, "\t$rj, $rk"), ++ [(set (OpNode RO:$rj, RO:$rk))], ++ FrmR, opstr>; ++ ++class Code15 ++ : InstForm<(outs), (ins uimm15:$Code), ++ !strconcat(opstr, "\t$Code"), ++ [(set (OpNode uimm15:$Code))], ++ FrmOther, opstr>; ++ ++class TrapBase ++ : LoongArchPseudo<(outs), (ins), [(trap)]>, ++ PseudoInstExpansion<(RealInst 0)> { ++ let isBarrier = 1; ++ let isTerminator = 1; ++ let isCodeGenOnly = 1; ++ let isCTI = 1; ++} ++ ++class CSR ++ : InstForm<(outs RO:$rd), (ins ImmOpnd:$csr), ++ !strconcat(opstr, "\t$rd, $csr"), ++ [(set RO:$rd, (OpNode ImmOpnd:$csr))], ++ FrmOther, opstr>; ++ ++class CSRW ++ : InstForm<(outs RO:$dst), (ins RO:$rd, ImmOpnd:$csr), ++ !strconcat(opstr, "\t$rd, $csr"), ++ [(set RO:$dst, (OpNode RO:$rd, ImmOpnd:$csr))], ++ FrmOther, opstr>{ ++ let Constraints = "$rd = $dst"; ++} ++ ++class CSRX ++ : InstForm<(outs RO:$dst), (ins RO:$rd, RO:$rj, ImmOpnd:$csr), ++ !strconcat(opstr, "\t$rd, $rj, $csr"), ++ [(set RO:$dst, (OpNode RO:$rd, RO:$rj, ImmOpnd:$csr))], ++ FrmOther, opstr>{ ++ let Constraints = "$rd = $dst"; ++} ++ ++class CAC ++ : InstForm<(outs), (ins uimm5:$op, RO:$rj, ImmOpnd:$si12), ++ !strconcat(opstr, "\t$op, $rj, $si12"), ++ [(set (OpNode uimm5:$op, RO:$rj, ImmOpnd:$si12))], ++ FrmOther, opstr>; ++ ++class LEVEL ++ : InstForm<(outs RO:$rd), (ins RO:$rj, uimm8_64:$level), ++ !strconcat(opstr, "\t$rd, $rj, $level"), ++ [(set RO:$rd, (OpNode RO:$rj, uimm8_64:$level))], ++ FrmOther, opstr>; ++ ++class SEQ ++ : InstForm<(outs), (ins RO:$rj, uimm8_64:$seq), ++ !strconcat(opstr, "\t$rj, $seq"), ++ [(set (OpNode RO:$rj, uimm8_64:$seq))], ++ FrmOther, opstr>; ++ ++class Wait ++ : InstForm<(outs), (ins uimm15:$hint), ++ !strconcat(opstr, "\t$hint"), ++ [(set (OpNode uimm15:$hint))], ++ FrmOther, opstr>; ++ ++class Invtlb ++ : InstForm<(outs), (ins uimm5:$op, RO:$rj, RO:$rk), ++ !strconcat(opstr, "\t$op, $rj, $rk"), ++ [(set (OpNode uimm5:$op, RO:$rj, RO:$rk))], ++ FrmOther, opstr>; ++ ++class OP32 ++ : InstForm<(outs), (ins), ++ !strconcat(opstr, ""), ++ [(set (OpNode))], ++ FrmOther, opstr>; ++ ++class Bar ++ : InstForm<(outs), (ins uimm15:$hint), ++ !strconcat(opstr, "\t$hint"), ++ [(set (OpNode uimm15:$hint))], ++ FrmOther, opstr>; ++ ++//class CA op, string opstr> ++// : R3_CA; ++ ++class SI16_R2 ++ : InstForm<(outs RO:$rd), (ins RO:$rj, simm16:$si16), ++ !strconcat(opstr, "\t$rd, $rj, $si16"), ++ [(set RO:$rd, (OpNode RO:$rj, simm16:$si16))], ++ FrmR, opstr>; ++ ++class SI20 ++ : InstForm<(outs RO:$rd), (ins ImmOpnd:$si20), ++ !strconcat(opstr, "\t$rd, $si20"), ++ [(set RO:$rd, (OpNode ImmOpnd:$si20))], ++ FrmR, opstr>; ++let isCodeGenOnly = 1, Constraints = "$dst = $rd" in ++class SI20_R2 ++ : InstForm<(outs RO:$dst), (ins RO:$rd, ImmOpnd:$si20), ++ !strconcat(opstr, "\t$rd, $si20"), ++ [(set RO:$dst, (OpNode RO:$rd, ImmOpnd:$si20))], ++ FrmR, opstr>; ++class RELOC_rii ++ : InstForm<(outs RO:$rd), (ins ImmOpnd:$si20, ImmOpnd:$i20), ++ !strconcat(opstr, "\t$rd, $si20"), ++ [(set RO:$rd, (OpNode ImmOpnd:$si20, ImmOpnd:$i20))], ++ FrmR, opstr>; ++ ++// preld ++class Preld ++ : InstForm<(outs), (ins RO:$rj, MemOpnd:$addr, uimm5:$hint), ++ !strconcat(opstr, "\t$hint, $rj, $addr"), ++ [(set (OpNode RO:$rj, MemOpnd:$addr, uimm5:$hint))], ++ FrmR, opstr>; ++class Preld_Raw ++ : InstForm<(outs), (ins RO:$rj, simm12:$imm12, uimm5:$hint), ++ !strconcat(opstr, "\t$hint, $rj, $imm12"), ++ [], ++ FrmR, opstr>; ++class IsCall { ++ bit isCall = 1; ++ bit isCTI = 1; ++} ++ ++class EffectiveAddress ++ : InstForm<(outs RO:$rd), (ins mem_ea:$addr), ++ !strconcat(opstr, "\t$rd, $addr"), ++ [(set RO:$rd, addr:$addr)], FrmI, ++ !strconcat(opstr, "_lea")> { ++ let isCodeGenOnly = 1; ++ let hasNoSchedulingInfo = 1; ++ let DecoderMethod = "DecodeMem"; ++} ++ ++def PtrRC : Operand { ++ let MIOperandInfo = (ops ptr_rc); ++ let DecoderMethod = "DecodePtrRegisterClass"; ++ let ParserMatchClass = GPR32AsmOperand; ++} ++ ++class Atomic2Ops : ++ LoongArchPseudo<(outs DRC:$dst), (ins PtrRC:$ptr, DRC:$incr), ++ [(set DRC:$dst, (Op iPTR:$ptr, DRC:$incr))]>; ++ ++class Atomic2OpsPostRA : ++ LoongArchPseudo<(outs RC:$dst), (ins PtrRC:$ptr, RC:$incr), []> { ++ let mayLoad = 1; ++ let mayStore = 1; ++} ++ ++class Atomic2OpsSubwordPostRA : ++ LoongArchPseudo<(outs RC:$dst), (ins PtrRC:$ptr, RC:$incr, RC:$mask, RC:$mask2, ++ RC:$shiftamnt), []>; ++class AtomicCmpSwap : ++ LoongArchPseudo<(outs DRC:$dst), (ins PtrRC:$ptr, DRC:$cmp, DRC:$swap), ++ [(set DRC:$dst, (Op iPTR:$ptr, DRC:$cmp, DRC:$swap))]>; ++ ++class AtomicCmpSwapPostRA : ++ LoongArchPseudo<(outs RC:$dst), (ins PtrRC:$ptr, RC:$cmp, RC:$swap), []> { ++ let mayLoad = 1; ++ let mayStore = 1; ++} ++ ++class AtomicCmpSwapSubwordPostRA : ++ LoongArchPseudo<(outs RC:$dst), (ins PtrRC:$ptr, RC:$mask, RC:$ShiftCmpVal, ++ RC:$mask2, RC:$ShiftNewVal, RC:$ShiftAmt), []> { ++ let mayLoad = 1; ++ let mayStore = 1; ++} ++ ++class LoongArchInstAlias : ++ InstAlias, PredicateControl; ++ ++//===---------------------------------------------------------------------===/ ++// Instruction Definitions. ++//===---------------------------------------------------------------------===/ ++/// ++/// R2 ++/// ++ ++def CLO_D : Count1<"clo.d", GPR64Opnd, ctlz>, R2I<0b01000>; ++def CLZ_D : Int_Reg2<"clz.d", GPR64Opnd, ctlz>, R2I<0b01001>; ++def CTO_D : Count1<"cto.d", GPR64Opnd, cttz>, R2I<0b01010>; ++def CTZ_D : Int_Reg2<"ctz.d", GPR64Opnd, cttz>, R2I<0b01011>; ++ ++def REVB_4H : Int_Reg2<"revb.4h", GPR64Opnd>, R2I<0b01101>; //[] ++def REVB_2W : Int_Reg2<"revb.2w", GPR64Opnd>, R2I<0b01110>; ++def REVB_D : Int_Reg2<"revb.d", GPR64Opnd>, R2I<0b01111>; ++def REVH_2W : Int_Reg2<"revh.2w", GPR64Opnd>, R2I<0b10000>; ++def REVH_D : Int_Reg2<"revh.d", GPR64Opnd>, R2I<0b10001>; //[] ++ ++def BITREV_8B : Int_Reg2<"bitrev.8b", GPR64Opnd>, R2I<0b10011>; //[] ++def BITREV_D : Int_Reg2<"bitrev.d", GPR64Opnd, bitreverse>, R2I<0b10101>; ++ ++def EXT_W_H : SignExtInReg<"ext.w.h", GPR64Opnd, i16>, R2I<0b10110>; ++def EXT_W_B : SignExtInReg<"ext.w.b", GPR64Opnd, i8>, R2I<0b10111>; ++ ++def RDTIME_D : Int_Reg2_Rdtime<"rdtime.d", GPR64Opnd>, R2I<0b11010>; ++def RDTIMEL_W : Int_Reg2_Rdtime<"rdtimel.w", GPR64Opnd>, R2I<0b11000>; ++def RDTIMEH_W : Int_Reg2_Rdtime<"rdtimeh.w", GPR64Opnd>, R2I<0b11001>; ++/// ++/// R3 ++/// ++def ADD_D : Int_Reg3<"add.d", GPR64Opnd, add>, R3I<0b0100001>; ++def SUB_D : Int_Reg3<"sub.d", GPR64Opnd, sub>, R3I<0b0100011>; ++ ++def SLT : SetCC_R<"slt", GPR64Opnd, setlt>, R3I<0b0100100>; ++def SLTU : SetCC_R<"sltu", GPR64Opnd, setult>, R3I<0b0100101>; ++def MASKEQZ : Int_Reg3<"maskeqz", GPR64Opnd>, R3I<0b0100110>; //[] ++def MASKNEZ : Int_Reg3<"masknez", GPR64Opnd>, R3I<0b0100111>; //[] ++ ++def NOR : Nor<"nor", GPR64Opnd>, R3I<0b0101000>; ++def AND : Int_Reg3<"and", GPR64Opnd, and>, R3I<0b0101001>; ++def OR : Int_Reg3<"or", GPR64Opnd, or>, R3I<0b0101010>; ++def XOR : Int_Reg3<"xor", GPR64Opnd, xor>, R3I<0b0101011>; ++def ORN : Int_Reg3<"orn", GPR64Opnd>, R3I<0b0101100>; ++def ANDN : Int_Reg3<"andn", GPR64Opnd>, R3I<0b0101101>; ++ ++def SLL_D : Shift_Var<"sll.d", GPR64Opnd, shl>, R3I<0b0110001>; ++def SRL_D : Shift_Var<"srl.d", GPR64Opnd, srl>, R3I<0b0110010>; ++def SRA_D : Shift_Var<"sra.d", GPR64Opnd, sra>, R3I<0b0110011>; ++def ROTR_D: Shift_Var<"rotr.d", GPR64Opnd, rotr>, R3I<0b0110111>; ++ ++def MUL_D : Int_Reg3<"mul.d", GPR64Opnd, mul>, R3I<0b0111011>; ++def MULH_D : Int_Reg3<"mulh.d", GPR64Opnd, mulhs>, R3I<0b0111100>; ++def MULH_DU : Int_Reg3<"mulh.du", GPR64Opnd, mulhu>, R3I<0b0111101>; ++def MULW_D_W : Int_Reg3<"mulw.d.w", GPR64Opnd>, R3I<0b0111110>; ++def MULW_D_WU : Int_Reg3<"mulw.d.wu", GPR64Opnd>, R3I<0b0111111>; ++ ++let usesCustomInserter = 1 in { ++def DIV_D : Int_Reg3<"div.d", GPR64Opnd, sdiv>, R3I<0b1000100>; ++def MOD_D : Int_Reg3<"mod.d", GPR64Opnd, srem>, R3I<0b1000101>; ++def DIV_DU : Int_Reg3<"div.du", GPR64Opnd, udiv>, R3I<0b1000110>; ++def MOD_DU : Int_Reg3<"mod.du", GPR64Opnd, urem>, R3I<0b1000111>; ++} ++ ++def CRC_W_D_W : Int_Reg3_Crc<"crc.w.d.w", GPR64Opnd, GPR32Opnd, int_loongarch_crc_w_d_w>, R3I<0b1001011>; ++def CRCC_W_D_W : Int_Reg3_Crc<"crcc.w.d.w", GPR64Opnd, GPR32Opnd, int_loongarch_crcc_w_d_w>, R3I<0b1001111>; ++/// ++/// SLLI ++/// ++def SLLI_D : Shift_Imm64<"slli.d", GPR64Opnd, shl>, R2_IMM6<0b00>; ++def SRLI_D : Shift_Imm64<"srli.d", GPR64Opnd, srl>, R2_IMM6<0b01>; ++def SRAI_D : Shift_Imm64<"srai.d", GPR64Opnd, sra>, R2_IMM6<0b10>; ++def ROTRI_D : Shift_Imm64<"rotri.d", GPR64Opnd, rotr>, R2_IMM6<0b11>; ++/// ++/// Misc ++/// ++def ALSL_WU : Reg3_SaU<"alsl.wu", GPR64Opnd, GPR32Opnd, uimm2_plus1>, R3_SA2<0b00011> { ++ let Pattern = [(set GPR64Opnd:$rd, ++ (i64 (zext (add GPR32Opnd:$rk, (shl GPR32Opnd:$rj, immZExt2Alsl:$sa)))))]; ++} ++ ++def ALSL_D : Reg3_Sa<"alsl.d", GPR64Opnd, uimm2_plus1>, R3_SA2<0b10110> { ++ let Pattern = [(set GPR64Opnd:$rd, ++ (add GPR64Opnd:$rk, (shl GPR64Opnd:$rj, immZExt2Alsl:$sa)))]; ++} ++def BYTEPICK_D : Reg3_Sa<"bytepick.d", GPR64Opnd, uimm3>, R3_SA3; //[] ++ ++def ASRTLE_D : Assert<"asrtle.d", GPR64Opnd, int_loongarch_asrtle_d>, ASSERT<0b10>; ++def ASRTGT_D : Assert<"asrtgt.d", GPR64Opnd, int_loongarch_asrtgt_d>, ASSERT<0b11>; ++ ++def DBCL : Code15<"dbcl">, CODE15<0b1010101>; ++def HYPCALL : Code15<"hypcall">, CODE15<0b1010111>; ++ ++/// ++/// R2_IMM12 ++/// ++def SLTI : SetCC_I<"slti", GPR64Opnd, simm12, setlt>, R2_IMM12<0b000>; ++def SLTUI : SetCC_I<"sltui", GPR64Opnd, simm12, setult>, R2_IMM12<0b001>; ++def ADDI_W64 : Int_Reg2_Imm12<"addi.w", GPR64Opnd, simm12>, R2_IMM12<0b010>; ++def ADDI_D : Int_Reg2_Imm12<"addi.d", GPR64Opnd, simm12, add>, R2_IMM12<0b011>; ++def LU52I_D : Int_Reg2_Imm12<"lu52i.d", GPR64Opnd, simm12>, R2_IMM12<0b100>; ++def ANDI : Int_Reg2_Imm12<"andi", GPR64Opnd, uimm12, and>, R2_IMM12<0b101>; ++def ORI : Int_Reg2_Imm12<"ori", GPR64Opnd, uimm12, or>, R2_IMM12<0b110>; ++def XORI : Int_Reg2_Imm12<"xori", GPR64Opnd, uimm12, xor>, R2_IMM12<0b111>; ++ ++/// ++/// Privilege Instructions ++/// ++def CSRRD : CSR<"csrrd", GPR64Opnd, uimm14, int_loongarch_dcsrrd>, R1_CSR<0b0000000000100>; ++def CSRWR : CSRW<"csrwr", GPR64Opnd, uimm14, int_loongarch_dcsrwr>, R1_CSR<0b0000100000100>; ++def CSRXCHG : CSRX<"csrxchg", GPR64Opnd, uimm14, int_loongarch_dcsrxchg>, R2_CSR<0b00000100>; ++def IOCSRRD_D : Int_Reg2_Iocsrrd<"iocsrrd.d", GPR64Opnd, GPR32Opnd, int_loongarch_iocsrrd_d>, R2P<0b011>; ++def IOCSRWR_D : Int_Reg2_Iocsrwr<"iocsrwr.d", GPR64Opnd, GPR32Opnd, int_loongarch_iocsrwr_d>, R2P<0b111>; ++def CACOP : CAC<"cacop", GPR64Opnd, simm12, int_loongarch_dcacop>, R1_CACHE; ++def LDDIR : LEVEL<"lddir", GPR64Opnd>, R2_LEVEL<0b00000110010000>; ++def LDPTE : SEQ<"ldpte", GPR64Opnd>, R1_SEQ<0b00000110010001>; ++ ++def IDLE : Wait<"idle">, WAIT_FM; ++def INVTLB : Invtlb<"invtlb", GPR64Opnd>, R2_INVTLB; ++// ++def IOCSRRD_B : Int_Reg2<"iocsrrd.b", GPR64Opnd>, R2P<0b000>; ++def IOCSRRD_H : Int_Reg2<"iocsrrd.h", GPR64Opnd>, R2P<0b001>; ++def IOCSRRD_W : Int_Reg2<"iocsrrd.w", GPR64Opnd>, R2P<0b010>; ++// ++def TLBCLR : OP32<"tlbclr", int_loongarch_tlbclr>, IMM32<0b001000>; ++def TLBFLUSH : OP32<"tlbflush", int_loongarch_tlbflush>, IMM32<0b001001>; ++def TLBSRCH : OP32<"tlbsrch", int_loongarch_tlbsrch>, IMM32<0b001010>; ++def TLBRD : OP32<"tlbrd", int_loongarch_tlbrd>, IMM32<0b001011>; ++def TLBWR : OP32<"tlbwr", int_loongarch_tlbwr>, IMM32<0b001100>; ++def TLBFILL : OP32<"tlbfill", int_loongarch_tlbfill>, IMM32<0b001101>; ++def ERTN : OP32<"ertn">, IMM32<0b001110>; ++ ++/// ++/// R1_IMM20 ++/// ++def ADDU16I_D : SI16_R2<"addu16i.d", GPR64Opnd>, R2_SI16<0b000100>; ++def LU12I_W : SI20<"lu12i.w", GPR64Opnd, simm20>, R1_SI20<0b0001010>; ++def LU32I_D : SI20<"lu32i.d", GPR64Opnd, simm20>, R1_SI20<0b0001011>; ++def LU32I_D_R2 : SI20_R2<"lu32i.d", GPR64Opnd, simm20>, R1_SI20<0b0001011>; ++def PCADDI : SI20<"pcaddi", GPR64Opnd, simm20>, R1_SI20<0b0001100>; ++def PCALAU12I : SI20<"pcalau12i", GPR64Opnd, simm20>, R1_SI20<0b0001101>; ++def PCADDU12I : SI20<"pcaddu12i", GPR64Opnd, simm20>, R1_SI20<0b0001110>; ++def PCADDU18I : SI20<"pcaddu18i", GPR64Opnd, simm20>, R1_SI20<0b0001111>; ++ ++ ++def BEQZ : Beqz<"beqz", brtarget, seteq, GPR64Opnd>, R1_IMM21BEQZ<0b010000>; ++def BNEZ : Beqz<"bnez", brtarget, setne, GPR64Opnd>, R1_IMM21BEQZ<0b010001>; ++ ++def JIRL : FJirl<"jirl", simm16, GPR64Opnd>, R2_IMM16JIRL; ++let isCall = 1, isCTI=1, isCodeGenOnly = 1 in { ++def JIRL_CALL : FJirl<"jirl", simm16, GPR64Opnd>, R2_IMM16JIRL; ++} ++ ++def B : JumpFB, IMM26B<0b010100>; ++ ++def BEQ : Beq<"beq", brtarget, seteq, GPR64Opnd>, R2_IMM16BEQ<0b010110>; ++def BNE : Beq<"bne", brtarget, setne, GPR64Opnd>, R2_IMM16BEQ<0b010111>; ++def BLT : Beq<"blt", brtarget, setlt, GPR64Opnd>, R2_IMM16BEQ<0b011000>; ++def BGE : Beq<"bge", brtarget, setge, GPR64Opnd>, R2_IMM16BEQ<0b011001>; ++def BLTU : Beq<"bltu", brtarget, setult, GPR64Opnd>, R2_IMM16BEQ<0b011010>; ++def BGEU : Beq<"bgeu", brtarget, setuge, GPR64Opnd>, R2_IMM16BEQ<0b011011>; ++ ++/// ++/// Mem access ++/// ++class LLBase : ++ InstForm<(outs RO:$rd), (ins MO:$addr), !strconcat(opstr, "\t$rd, $addr"), ++ [], FrmI, opstr> { ++ let DecoderMethod = "DecodeMemSimm14"; ++ let mayLoad = 1; ++} ++ ++class SCBase : ++ InstForm<(outs RO:$dst), (ins RO:$rd, MO:$addr), ++ !strconcat(opstr, "\t$rd, $addr"), [], FrmI> { ++ let DecoderMethod = "DecodeMemSimm14"; ++ let mayStore = 1; ++ let Constraints = "$rd = $dst"; ++} ++ ++class STGT_LE : ++ InstForm<(outs), (ins RO:$rd, RO:$rj, RO:$rk), ++ !strconcat(opstr, "\t$rd, $rj, $rk"), ++ [], FrmI, opstr>; ++ ++class Float_STGT_LE ++ : InstForm<(outs), (ins RD:$fd, RS:$rj, RS:$rk), ++ !strconcat(opstr, "\t$fd, $rj, $rk"), ++ [], FrmR, opstr>; ++ ++def LL_D : LLBase<"ll.d", GPR64Opnd, mem_simm14_lsl2>, LL_SC<0b010>; ++def SC_D : SCBase<"sc.d", GPR64Opnd, mem_simm14_lsl2>, LL_SC<0b011>; ++ ++def LDPTR_W : LdPtr<"ldptr.w", GPR64Opnd>, LL_SC<0b100>; ++def STPTR_W : StPtr<"stptr.w", GPR64Opnd>, LL_SC<0b101>; ++def LDPTR_D : LdPtr<"ldptr.d", GPR64Opnd>, LL_SC<0b110>; ++def STPTR_D : StPtr<"stptr.d", GPR64Opnd>, LL_SC<0b111>; ++ ++def LD_B : Ld<"ld.b", GPR64Opnd, mem, sextloadi8>, LOAD_STORE<0b0000>; ++def LD_H : Ld<"ld.h", GPR64Opnd, mem, sextloadi16>, LOAD_STORE<0b0001>; ++def LD_W : Ld<"ld.w", GPR64Opnd, mem, sextloadi32>, LOAD_STORE<0b0010>; ++def LD_D : Ld<"ld.d", GPR64Opnd, mem_simmptr, load>, LOAD_STORE<0b0011>; ++def ST_B : St<"st.b", GPR64Opnd, mem, truncstorei8>, LOAD_STORE<0b0100>; ++def ST_H : St<"st.h", GPR64Opnd, mem, truncstorei16>, LOAD_STORE<0b0101>; ++def ST_W : St<"st.w", GPR64Opnd, mem, truncstorei32>, LOAD_STORE<0b0110>; ++def ST_D : St<"st.d", GPR64Opnd, mem_simmptr, store>, LOAD_STORE<0b0111>; ++def LD_BU : Ld<"ld.bu", GPR64Opnd, mem, zextloadi8>, LOAD_STORE<0b1000>; ++def LD_HU : Ld<"ld.hu", GPR64Opnd, mem, zextloadi16>, LOAD_STORE<0b1001>; ++def LD_WU : Ld<"ld.wu", GPR64Opnd, mem, zextloadi32>, LOAD_STORE<0b1010>; ++ ++def AMSWAP_W : ATOMIC<"amswap.w", GPR32Opnd, amem>, AM<0b000000>; ++def AMSWAP_D : ATOMIC<"amswap.d", GPR64Opnd, amem>, AM<0b000001>; ++def AMADD_W : ATOMIC<"amadd.w", GPR32Opnd, amem>, AM<0b000010>; ++def AMADD_D : ATOMIC<"amadd.d", GPR64Opnd, amem>, AM<0b000011>; ++def AMAND_W : ATOMIC<"amand.w", GPR32Opnd, amem>, AM<0b000100>; ++def AMAND_D : ATOMIC<"amand.d", GPR64Opnd, amem>, AM<0b000101>; ++def AMOR_W : ATOMIC<"amor.w", GPR32Opnd, amem>, AM<0b000110>; ++def AMOR_D : ATOMIC<"amor.d", GPR64Opnd, amem>, AM<0b000111>; ++def AMXOR_W : ATOMIC<"amxor.w", GPR32Opnd, amem>, AM<0b001000>; ++def AMXOR_D : ATOMIC<"amxor.d", GPR64Opnd, amem>, AM<0b001001>; ++def AMMAX_W : ATOMIC<"ammax.w", GPR32Opnd, amem>, AM<0b001010>; ++def AMMAX_D : ATOMIC<"ammax.d", GPR64Opnd, amem>, AM<0b001011>; ++def AMMIN_W : ATOMIC<"ammin.w", GPR32Opnd, amem>, AM<0b001100>; ++def AMMIN_D : ATOMIC<"ammin.d", GPR64Opnd, amem>, AM<0b001101>; ++def AMMAX_WU : ATOMIC<"ammax.wu", GPR32Opnd, amem>, AM<0b001110>; ++def AMMAX_DU : ATOMIC<"ammax.du", GPR64Opnd, amem>, AM<0b001111>; ++def AMMIN_WU : ATOMIC<"ammin.wu", GPR32Opnd, amem>, AM<0b010000>; ++def AMMIN_DU : ATOMIC<"ammin.du", GPR64Opnd, amem>, AM<0b010001>; ++ ++ ++def AMSWAP_DB_W : ATOMIC<"amswap_db.w", GPR32Opnd, amem>, AM<0b010010>; ++def AMSWAP_DB_D : ATOMIC<"amswap_db.d", GPR64Opnd, amem>, AM<0b010011>; ++def AMADD_DB_W : ATOMIC<"amadd_db.w", GPR32Opnd, amem>, AM<0b010100>; ++def AMADD_DB_D : ATOMIC<"amadd_db.d", GPR64Opnd, amem>, AM<0b010101>; ++def AMAND_DB_W : ATOMIC<"amand_db.w", GPR32Opnd, amem>, AM<0b010110>; ++def AMAND_DB_D : ATOMIC<"amand_db.d", GPR64Opnd, amem>, AM<0b010111>; ++def AMOR_DB_W : ATOMIC<"amor_db.w", GPR32Opnd, amem>, AM<0b011000>; ++def AMOR_DB_D : ATOMIC<"amor_db.d", GPR64Opnd, amem>, AM<0b011001>; ++def AMXOR_DB_W : ATOMIC<"amxor_db.w", GPR32Opnd, amem>, AM<0b011010>; ++def AMXOR_DB_D : ATOMIC<"amxor_db.d", GPR64Opnd, amem>, AM<0b011011>; ++def AMMAX_DB_W : ATOMIC<"ammax_db.w", GPR32Opnd, amem>, AM<0b011100>; ++def AMMAX_DB_D : ATOMIC<"ammax_db.d", GPR64Opnd, amem>, AM<0b011101>; ++def AMMIN_DB_W : ATOMIC<"ammin_db.w", GPR32Opnd, amem>, AM<0b011110>; ++def AMMIN_DB_D : ATOMIC<"ammin_db.d", GPR64Opnd, amem>, AM<0b011111>; ++def AMMAX_DB_WU : ATOMIC<"ammax_db.wu", GPR32Opnd, amem>, AM<0b100000>; ++def AMMAX_DB_DU : ATOMIC<"ammax_db.du", GPR64Opnd, amem>, AM<0b100001>; ++def AMMIN_DB_WU : ATOMIC<"ammin_db.wu", GPR32Opnd, amem>, AM<0b100010>; ++def AMMIN_DB_DU : ATOMIC<"ammin_db.du", GPR64Opnd, amem>, AM<0b100011>; ++ ++def LDGT_B : Int_Reg3<"ldgt.b", GPR64Opnd>, R3MI<0b11110000>; ++def LDGT_H : Int_Reg3<"ldgt.h", GPR64Opnd>, R3MI<0b11110001>; ++def LDGT_W : Int_Reg3<"ldgt.w", GPR64Opnd>, R3MI<0b11110010>; ++def LDGT_D : Int_Reg3<"ldgt.d", GPR64Opnd>, R3MI<0b11110011>; ++def LDLE_B : Int_Reg3<"ldle.b", GPR64Opnd>, R3MI<0b11110100>; ++def LDLE_H : Int_Reg3<"ldle.h", GPR64Opnd>, R3MI<0b11110101>; ++def LDLE_W : Int_Reg3<"ldle.w", GPR64Opnd>, R3MI<0b11110110>; ++def LDLE_D : Int_Reg3<"ldle.d", GPR64Opnd>, R3MI<0b11110111>; ++def STGT_B : STGT_LE<"stgt.b", GPR64Opnd>, R3MI<0b11111000>; ++def STGT_H : STGT_LE<"stgt.h", GPR64Opnd>, R3MI<0b11111001>; ++def STGT_W : STGT_LE<"stgt.w", GPR64Opnd>, R3MI<0b11111010>; ++def STGT_D : STGT_LE<"stgt.d", GPR64Opnd>, R3MI<0b11111011>; ++def STLE_B : STGT_LE<"stle.b", GPR64Opnd>, R3MI<0b11111100>; ++def STLE_H : STGT_LE<"stle.h", GPR64Opnd>, R3MI<0b11111101>; ++def STLE_W : STGT_LE<"stle.w", GPR64Opnd>, R3MI<0b11111110>; ++def STLE_D : STGT_LE<"stle.d", GPR64Opnd>, R3MI<0b11111111>; ++ ++let isCodeGenOnly = 1 in { ++def PRELD : Preld<"preld", mem, GPR64Opnd>, PRELD_FM; ++} ++ ++def PRELD_Raw : Preld_Raw<"preld", GPR64Opnd>, PRELD_FM; ++ ++let isCall=1, isCTI=1, Defs = [RA] in { ++ class JumpLink : ++ InstForm<(outs), (ins opnd:$target), !strconcat(opstr, "\t$target"), ++ [(LoongArchJmpLink tglobaladdr:$target)], FrmJ, opstr> { ++ let DecoderMethod = "DecodeJumpTarget"; ++ } ++} ++def LONG_BRANCH_PCADDU12I : LoongArchPseudo<(outs GPR64Opnd:$dst), ++ (ins brtarget:$tgt), []>, GPR_64; ++ ++def LONG_BRANCH_ADDID2Op : LoongArchPseudo<(outs GPR64Opnd:$dst), ++ (ins GPR64Opnd:$src, brtarget:$tgt), []>, GPR_64; ++ ++def LONG_BRANCH_ADDID : LoongArchPseudo<(outs GPR64Opnd:$dst), ++ (ins GPR64Opnd:$src, brtarget:$tgt, brtarget:$baltgt), []>, GPR_64; ++ ++def LEA_ADDI_D: EffectiveAddress<"addi.d", GPR64Opnd>, LEA_ADDI_FM<0b011>, GPR_64; ++ ++class PseudoReturnBase : LoongArchPseudo<(outs), (ins RO:$rs), ++ []> { ++ let isTerminator = 1; ++ let isBarrier = 1; ++ let isReturn = 1; ++ let isCodeGenOnly = 1; ++ let hasCtrlDep = 1; ++ let hasExtraSrcRegAllocReq = 1; ++ bit isCTI = 1; ++} ++ ++def PseudoReturn64 : PseudoReturnBase; ++//def PseudoReturn : PseudoReturnBase; ++ ++ ++let isCall=1, isCTI=1, Defs=[RA], isCodeGenOnly=1 in { ++def PseudoCall : LoongArchPseudo<(outs), (ins calltarget:$target), ++ []>; ++} ++ ++let isCall = 1, isTerminator = 1, isReturn = 1, isBarrier = 1, Uses = [SP] in ++def PseudoTailCall : LoongArchPseudo<(outs), (ins calltarget:$target), ++ []>; ++ ++class PseudoTailBase : LoongArchPseudo<(outs), (ins opnd:$offset26), ++ []> { ++ let isTerminator = 1; ++ let isBarrier = 1; ++ let isReturn = 1; ++ let isCodeGenOnly = 1; ++} ++def PseudoTailReturn : PseudoTailBase; ++ ++ ++def : LoongArchPat<(LoongArchTailCall tglobaladdr:$dst), ++ (PseudoTailCall tglobaladdr:$dst)>; ++ ++def : LoongArchPat<(LoongArchTailCall texternalsym:$dst), ++ (PseudoTailCall texternalsym:$dst)>; ++ ++let isCall = 1, isTerminator = 1, isReturn = 1, isBarrier = 1, isIndirectBranch = 1, Uses = [SP] in ++def PseudoTAILIndirect : LoongArchPseudo<(outs), (ins GPRTC64Opnd:$rj), [(LoongArchTailCall GPRTC64Opnd:$rj)]>, ++ PseudoInstExpansion<(JIRL ZERO_64, GPR64Opnd:$rj, 0)>; ++ ++ ++def : LoongArchPat<(LoongArchJmpLink tglobaladdr:$dst), ++ (PseudoCall tglobaladdr:$dst)>; ++ ++def : LoongArchPat<(LoongArchJmpLink (i32 texternalsym:$dst)), ++ (PseudoCall texternalsym:$dst)>; ++def : LoongArchPat<(LoongArchJmpLink (i64 texternalsym:$dst)), ++ (PseudoCall texternalsym:$dst)>; ++ ++def : LoongArchPat<(LoongArchJmpLink (i64 texternalsym:$dst)), ++ (PseudoCall texternalsym:$dst)>; ++ ++def BL : JumpLink<"bl", calltarget>, FJ<0b010101>; ++ ++class IsAsCheapAsAMove { ++ bit isAsCheapAsAMove = 1; ++} ++class LoadUpper: ++ InstForm<(outs RO:$rt), (ins Imm:$imm16), !strconcat(opstr, "\t$rt, $imm16"), ++ [], FrmI, opstr>, IsAsCheapAsAMove { ++ let hasSideEffects = 0; ++ let isReMaterializable = 1; ++ let mayLoad = 1; ++} ++ ++let isCodeGenOnly = 1 in { ++def LAPCREL : LoadUpper<"la.pcrel", GPR64Opnd, uimm16_64_relaxed>, LUI_FM, GPR_64; ++} ++ ++def NOP : LoongArchPseudo<(outs), (ins), []>, ++ PseudoInstExpansion<(ANDI ZERO_64, ZERO_64, 0)>; ++ ++def : LoongArchInstAlias<"nop", (ANDI ZERO_64, ZERO_64, 0), 1>; ++def : LoongArchInstAlias<"jr $rd", (JIRL ZERO_64, GPR64Opnd:$rd, 0), 1>; ++def : LoongArchInstAlias<"move $dst, $src", ++ (OR GPR64Opnd:$dst, GPR64Opnd:$src, ZERO_64), 1>, GPR_64; ++ ++def UImm12RelaxedAsmOperandClass ++: UImmAsmOperandClass<12, [ConstantUImm20AsmOperandClass]> { ++ let Name = "UImm12_Relaxed"; ++ let PredicateMethod = "isAnyImm<12>"; ++ let DiagnosticType = "UImm12_Relaxed"; ++} ++ ++def SImm12RelaxedAsmOperandClass ++: SImmAsmOperandClass<12, [UImm12RelaxedAsmOperandClass]> { ++ let Name = "SImm12_Relaxed"; ++ let PredicateMethod = "isAnyImm<12>"; ++ let DiagnosticType = "SImm12_Relaxed"; ++} ++ ++def simm12_relaxed : Operand { ++ let DecoderMethod = "DecodeSImmWithOffsetAndScale<12>"; ++ let ParserMatchClass = !cast("SImm12RelaxedAsmOperandClass"); ++} ++ ++def : LoongArchPat<(i64 (anyext GPR32:$src)), ++ (INSERT_SUBREG (i64 (IMPLICIT_DEF)), GPR32:$src, sub_32)>,GPR_64; ++ ++let usesCustomInserter = 1 in { ++ def ATOMIC_LOAD_ADD_I64 : Atomic2Ops; ++ def ATOMIC_LOAD_SUB_I64 : Atomic2Ops; ++ def ATOMIC_LOAD_AND_I64 : Atomic2Ops; ++ def ATOMIC_LOAD_OR_I64 : Atomic2Ops; ++ def ATOMIC_LOAD_XOR_I64 : Atomic2Ops; ++ def ATOMIC_LOAD_NAND_I64 : Atomic2Ops; ++ def ATOMIC_SWAP_I64 : Atomic2Ops; ++ def ATOMIC_CMP_SWAP_I64 : AtomicCmpSwap; ++ ++ def ATOMIC_LOAD_MAX_I64 : Atomic2Ops; ++ def ATOMIC_LOAD_MIN_I64 : Atomic2Ops; ++ def ATOMIC_LOAD_UMAX_I64 : Atomic2Ops; ++ def ATOMIC_LOAD_UMIN_I64 : Atomic2Ops; ++} ++ ++def ATOMIC_LOAD_ADD_I64_POSTRA : Atomic2OpsPostRA; ++def ATOMIC_LOAD_SUB_I64_POSTRA : Atomic2OpsPostRA; ++def ATOMIC_LOAD_AND_I64_POSTRA : Atomic2OpsPostRA; ++def ATOMIC_LOAD_OR_I64_POSTRA : Atomic2OpsPostRA; ++def ATOMIC_LOAD_XOR_I64_POSTRA : Atomic2OpsPostRA; ++def ATOMIC_LOAD_NAND_I64_POSTRA : Atomic2OpsPostRA; ++ ++def ATOMIC_SWAP_I64_POSTRA : Atomic2OpsPostRA; ++ ++def ATOMIC_CMP_SWAP_I64_POSTRA : AtomicCmpSwapPostRA; ++ ++def ATOMIC_LOAD_MAX_I64_POSTRA : Atomic2OpsPostRA; ++ ++def ATOMIC_LOAD_MIN_I64_POSTRA : Atomic2OpsPostRA; ++ ++def ATOMIC_LOAD_UMAX_I64_POSTRA : Atomic2OpsPostRA; ++ ++def ATOMIC_LOAD_UMIN_I64_POSTRA : Atomic2OpsPostRA; ++ ++def : LoongArchPat<(atomic_load_8 addr:$a), (LD_B addr:$a)>, GPR_64; ++def : LoongArchPat<(atomic_load_16 addr:$a), (LD_H addr:$a)>, GPR_64; ++def : LoongArchPat<(atomic_load_32 addrimm14lsl2:$a), (LDPTR_W addrimm14lsl2:$a)>, GPR_64; ++def : LoongArchPat<(atomic_load_32 addr:$a), (LD_W addr:$a)>, GPR_64; ++def : LoongArchPat<(atomic_load_64 addrimm14lsl2:$a), (LDPTR_D addrimm14lsl2:$a)>, GPR_64; ++def : LoongArchPat<(atomic_load_64 addr:$a), (LD_D addr:$a)>, GPR_64; ++ ++def : LoongArchPat<(atomic_store_8 addr:$a, GPR64:$v), ++ (ST_B GPR64:$v, addr:$a)>, GPR_64; ++def : LoongArchPat<(atomic_store_16 addr:$a, GPR64:$v), ++ (ST_H GPR64:$v, addr:$a)>, GPR_64; ++def : LoongArchPat<(atomic_store_32 addrimm14lsl2:$a, GPR64:$v), ++ (STPTR_W GPR64:$v, addrimm14lsl2:$a)>, GPR_64; ++def : LoongArchPat<(atomic_store_32 addr:$a, GPR64:$v), ++ (ST_W GPR64:$v, addr:$a)>, GPR_64; ++def : LoongArchPat<(atomic_store_64 addrimm14lsl2:$a, GPR64:$v), ++ (STPTR_D GPR64:$v, addrimm14lsl2:$a)>, GPR_64; ++def : LoongArchPat<(atomic_store_64 addr:$a, GPR64:$v), ++ (ST_D GPR64:$v, addr:$a)>, GPR_64; ++ ++def : LoongArchPat<(bswap GPR64:$rt), (REVH_D (REVB_4H GPR64:$rt))>; ++ ++def immZExt5 : ImmLeaf; ++ ++def immZExtRange2To64 : PatLeaf<(imm), [{ ++ return isUInt<7>(N->getZExtValue()) && (N->getZExtValue() >= 2) && ++ (N->getZExtValue() <= 64); ++}]>; ++ ++// bstrins and bstrpick ++class InsBase ++ : InstForm<(outs RO:$rd), (ins RO:$rj, ImmOpnd:$msbd, ImmOpnd:$lsbd, RO:$src), ++ !strconcat(opstr, "\t$rd, $rj, $msbd, $lsbd"), ++ [(set RO:$rd, (OpNode RO:$rj, ImmOpnd:$msbd, ImmOpnd:$lsbd, RO:$src))], ++ FrmR, opstr> { ++ let Constraints = "$src = $rd"; ++ } ++ ++class InsBase_32 ++ : InstForm<(outs RO:$rd), (ins RO:$rj, ImmOpnd:$msbw, ImmOpnd:$lsbw, RO:$src), ++ !strconcat(opstr, "\t$rd, $rj, $msbw, $lsbw"), ++ [(set RO:$rd, (OpNode RO:$rj, ImmOpnd:$msbw, ImmOpnd:$lsbw, RO:$src))], ++ FrmR, opstr> { ++ let Constraints = "$src = $rd"; ++} ++ ++class PickBase ++ : InstForm<(outs RO:$rd), (ins RO:$rj, ImmOpnd:$msbd, ImmOpnd:$lsbd), ++ !strconcat(opstr, "\t$rd, $rj, $msbd, $lsbd"), ++ [(set RO:$rd, (Op RO:$rj, ImmOpnd:$msbd, ImmOpnd:$lsbd))], ++ FrmR, opstr>; ++ ++class PickBase_32 ++ : InstForm<(outs RO:$rd), (ins RO:$rj, ImmOpnd:$msbw, ImmOpnd:$lsbw), ++ !strconcat(opstr, "\t$rd, $rj, $msbw, $lsbw"), ++ [(set RO:$rd, (Op RO:$rj, ImmOpnd:$msbw, ImmOpnd:$lsbw))], ++ FrmR, opstr>; ++ ++ def BSTRINS_D : InsBase<"bstrins.d", GPR64Opnd, uimm6, LoongArchBstrins>, ++ INSERT_BIT64<0>; ++ def BSTRPICK_D : PickBase<"bstrpick.d", GPR64Opnd, uimm6, LoongArchBstrpick>, ++ INSERT_BIT64<1>; ++ ++let isCodeGenOnly = 1 in { ++ def ZEXT64_32 : InstForm<(outs GPR64Opnd:$rd), ++ (ins GPR32Opnd:$rj, uimm6:$msbd, ++ uimm6:$lsbd), ++ "bstrpick.d $rd, $rj, $msbd, $lsbd", [], FrmR, "bstrpick.d">, ++ INSERT_BIT64<1>; ++} ++ ++//32-to-64-bit extension ++def : LoongArchPat<(i64 (zext GPR32:$src)), (ZEXT64_32 GPR32:$src, 31, 0)>; ++def : LoongArchPat<(i64 (extloadi1 addr:$src)), (LD_B addr:$src)>, ++ GPR_64; ++def : LoongArchPat<(i64 (extloadi8 addr:$src)), (LD_B addr:$src)>, ++ GPR_64; ++def : LoongArchPat<(i64 (extloadi16 addr:$src)), (LD_H addr:$src)>, ++ GPR_64; ++def : LoongArchPat<(i64 (extloadi32 addr:$src)), (LD_W addr:$src)>, ++ GPR_64; ++ ++class LDX_FT_LA : ++ InstForm<(outs DRC:$rd), (ins PtrRC:$rj, PtrRC:$rk), ++ !strconcat(opstr, "\t$rd, $rj, $rk"), ++ [(set DRC:$rd, (OpNode (add iPTR:$rj, iPTR:$rk)))], ++ FrmR, opstr> { ++ let AddedComplexity = 20; ++ let canFoldAsLoad = 1; ++ string BaseOpcode = opstr; ++ let mayLoad = 1; ++} ++ ++class STX_FT_LA : ++ InstForm<(outs), (ins DRC:$rd, PtrRC:$rj, PtrRC:$rk), ++ !strconcat(opstr, "\t$rd, $rj, $rk"), ++ [(OpNode DRC:$rd, (add iPTR:$rj, iPTR:$rk))], ++ FrmI, opstr> { ++ string BaseOpcode = opstr; ++ let mayStore = 1; ++ let AddedComplexity = 20; ++} ++ ++ ++def LDX_B : LDX_FT_LA<"ldx.b", GPR64Opnd, sextloadi8>, ++ R3MI<0b00000000>; ++def LDX_H : LDX_FT_LA<"ldx.h", GPR64Opnd, sextloadi16>, ++ R3MI<0b00001000>; ++def LDX_W : LDX_FT_LA<"ldx.w", GPR64Opnd, sextloadi32>, ++ R3MI<0b00010000>; ++def LDX_D : LDX_FT_LA<"ldx.d", GPR64Opnd, load>, ++ R3MI<0b00011000>; ++def STX_B : STX_FT_LA<"stx.b", GPR64Opnd, truncstorei8>, ++ R3MI<0b00100000>; ++def STX_H : STX_FT_LA<"stx.h", GPR64Opnd, truncstorei16>, ++ R3MI<0b00101000>; ++def STX_W : STX_FT_LA<"stx.w", GPR64Opnd, truncstorei32>, ++ R3MI<0b00110000>; ++def STX_D : STX_FT_LA<"stx.d", GPR64Opnd, store>, ++ R3MI<0b00111000>; ++def LDX_BU : LDX_FT_LA<"ldx.bu", GPR64Opnd, extloadi8>, ++ R3MI<0b01000000>; ++def LDX_HU : LDX_FT_LA<"ldx.hu", GPR64Opnd, extloadi16>, ++ R3MI<0b01001000>; ++def LDX_WU : LDX_FT_LA<"ldx.wu", GPR64Opnd, zextloadi32>, ++ R3MI<0b01010000>; ++ ++//def : LoongArchPat<(bswap GPR64:$rj), (REVH_D (REVB_4H GPR64:$rj))>; ++//def : LoongArchPat<(bswap GPR64:$rj), (ROTRI_D (REVB_2W GPR64:$rj), 32)>; ++def : LoongArchPat<(bswap GPR64:$rj), (REVB_D GPR64:$rj)>; ++ ++let isCodeGenOnly = 1 in { ++ def SLLI_D_64_32 : Shift_Imm64<"", GPR64Opnd>, R2_IMM6<0b00>, GPR_64 { ++ let imm6 = 0; ++ let AsmString = "slli.d\t$rd, $rj, 32"; ++ let InOperandList = (ins GPR32:$rj); ++ let OutOperandList = (outs GPR64:$rd); ++ } ++ ++ let isMoveReg = 1, imm5 = 0, ++ AsmString = "slli.w\t$rd, $rj, 0", ++ OutOperandList = (outs GPR64:$rd) in { ++ let InOperandList = (ins GPR32:$rj) in ++ def SLLI_W_64_32 : Shift_Imm32<"", GPR32Opnd>, R2_IMM5<0b00>, GPR_64; ++ let InOperandList = (ins GPR64:$rj) in ++ def SLLI_W_64_64 : Shift_Imm32<"", GPR32Opnd>, R2_IMM5<0b00>, GPR_64; ++ } ++ ++ let AsmString = "sltui\t$rd, $rj, $imm12", ++ OutOperandList = (outs GPR64:$rd) in { ++ let InOperandList = (ins GPR64:$rj, simm12:$imm12) in ++ def SLTUI_64 : SetCC_I<"", GPR64Opnd, simm12>, R2_IMM12<0b001>, GPR_64; ++ } ++} ++ ++// 32-to-64-bit extension ++//def : LoongArchPat<(i64 (zext GPR32:$src)), (SRLI_D (SLLI_D_64_32 GPR32:$src), 32)>, GPR_64; ++def : LoongArchPat<(i64 (sext GPR32:$src)), (SLLI_W_64_32 GPR32:$src)>, GPR_64; ++def : LoongArchPat<(i64 (sext_inreg GPR64:$src, i32)), (SLLI_W_64_64 GPR64:$src)>, GPR_64; ++ ++let Uses = [A0, A1], isTerminator = 1, isReturn = 1, isBarrier = 1, isCTI = 1 in { ++ def LoongArcheh_return32 : LoongArchPseudo<(outs), (ins GPR32:$spoff, GPR32:$dst), ++ [(LoongArchehret GPR32:$spoff, GPR32:$dst)]>; ++ def LoongArcheh_return64 : LoongArchPseudo<(outs), (ins GPR64:$spoff,GPR64:$dst), ++ [(LoongArchehret GPR64:$spoff, GPR64:$dst)]>; ++} ++ ++def : LoongArchPat<(select i32:$cond, i64:$t, i64:$f), ++ (OR (MASKEQZ i64:$t, (SLLI_W_64_32 i32:$cond)), ++ (MASKNEZ i64:$f, (SLLI_W_64_32 i32:$cond)))>; ++// setcc patterns ++multiclass SeteqPats { ++ def : LoongArchPat<(seteq RC:$lhs, 0), ++ (SLTiuOp RC:$lhs, 1)>; ++ def : LoongArchPat<(setne RC:$lhs, 0), ++ (SLTuOp ZEROReg, RC:$lhs)>; ++ def : LoongArchPat<(seteq RC:$lhs, RC:$rhs), ++ (SLTiuOp (XOROp RC:$lhs, RC:$rhs), 1)>; ++ def : LoongArchPat<(setne RC:$lhs, RC:$rhs), ++ (SLTuOp ZEROReg, (XOROp RC:$lhs, RC:$rhs))>; ++} ++ ++multiclass SetlePats { ++ def : LoongArchPat<(setle RC:$lhs, RC:$rhs), ++ (XORiOp (SLTOp RC:$rhs, RC:$lhs), 1)>; ++ def : LoongArchPat<(setule RC:$lhs, RC:$rhs), ++ (XORiOp (SLTuOp RC:$rhs, RC:$lhs), 1)>; ++} ++ ++multiclass SetgtPats { ++ def : LoongArchPat<(setgt RC:$lhs, RC:$rhs), ++ (SLTOp RC:$rhs, RC:$lhs)>; ++ def : LoongArchPat<(setugt RC:$lhs, RC:$rhs), ++ (SLTuOp RC:$rhs, RC:$lhs)>; ++} ++ ++multiclass SetgePats { ++ def : LoongArchPat<(setge RC:$lhs, RC:$rhs), ++ (XORiOp (SLTOp RC:$lhs, RC:$rhs), 1)>; ++ def : LoongArchPat<(setuge RC:$lhs, RC:$rhs), ++ (XORiOp (SLTuOp RC:$lhs, RC:$rhs), 1)>; ++} ++ ++multiclass SetgeImmPats { ++ def : LoongArchPat<(setge RC:$lhs, immSExt12:$rhs), ++ (XORiOp (SLTiOp RC:$lhs, immSExt12:$rhs), 1)>; ++ def : LoongArchPat<(setuge RC:$lhs, immSExt12:$rhs), ++ (XORiOp (SLTiuOp RC:$lhs, immSExt12:$rhs), 1)>; ++} ++ ++class LoadRegImmPat : ++ LoongArchPat<(ValTy (Node addrRegImm:$a)), (LoadInst addrRegImm:$a)>; ++ ++class StoreRegImmPat : ++ LoongArchPat<(Node ValTy:$v, addrRegImm:$a), (StoreInst ValTy:$v, addrRegImm:$a)>; ++ ++class LoadRegImm14Lsl2Pat : ++ LoongArchPat<(ValTy (Node addrimm14lsl2:$a)), (LoadInst addrimm14lsl2:$a)>; ++ ++class StoreRegImm14Lsl2Pat : ++ LoongArchPat<(Node ValTy:$v, addrimm14lsl2:$a), (StoreInst ValTy:$v, addrimm14lsl2:$a)>; ++ ++// Patterns for loads/stores with a reg+imm operand. ++// let AddedComplexity = 40 so that these instructions are selected instead of ++// LDX/STX which needs one more register and an ANDI instruction. ++let AddedComplexity = 40 in { ++ def : LoadRegImmPat; ++ def : LoadRegImmPat; ++ def : LoadRegImmPat; ++ def : LoadRegImmPat; ++ def : LoadRegImmPat; ++ def : LoadRegImmPat; ++ def : LoadRegImmPat; ++ def : StoreRegImmPat; ++ def : StoreRegImmPat; ++ def : StoreRegImmPat; ++ def : StoreRegImmPat; ++ ++ def : LoadRegImm14Lsl2Pat; ++ def : LoadRegImm14Lsl2Pat; ++ def : StoreRegImm14Lsl2Pat; ++ def : StoreRegImm14Lsl2Pat; ++} ++ ++//===----------------------------------------------------------------------===// ++// Base Extension Support ++//===----------------------------------------------------------------------===// ++ ++include "LoongArch32InstrInfo.td" ++include "LoongArchInstrInfoF.td" ++include "LoongArchLSXInstrFormats.td" ++include "LoongArchLSXInstrInfo.td" ++include "LoongArchLASXInstrFormats.td" ++include "LoongArchLASXInstrInfo.td" ++ ++defm : SeteqPats, GPR_64; ++defm : SetlePats, GPR_64; ++defm : SetgtPats, GPR_64; ++defm : SetgePats, GPR_64; ++defm : SetgeImmPats, GPR_64; ++ ++/// ++/// for relocation ++/// ++let isCodeGenOnly = 1 in { ++def PCADDU12I_ri : SI20<"pcaddu12i", GPR64Opnd, simm20>, R1_SI20<0b0001110>; ++def PCADDU12I_rii : RELOC_rii<"pcaddu12i", GPR64Opnd, simm20>, R1_SI20<0b0001110>; ++def ORI_rri : Int_Reg2_Imm12<"ori", GPR64Opnd, uimm12, or>, R2_IMM12<0b110>; ++def ORI_rrii : RELOC_rrii<"ori", GPR64Opnd, uimm12>, R2_IMM12<0b110>; ++def LU12I_W_ri : SI20<"lu12i.w", GPR64Opnd, simm20>, R1_SI20<0b0001010>; ++def LU32I_D_ri : SI20<"lu32i.d", GPR64Opnd, simm20>, R1_SI20<0b0001011>; ++def LU32I_D_rii : RELOC_rii<"lu32i.d", GPR64Opnd, simm20>, R1_SI20<0b0001011>; ++def LU52I_D_rri : Int_Reg2_Imm12<"lu52i.d", GPR64Opnd, simm12>, R2_IMM12<0b100>; ++def LU52I_D_rrii : RELOC_rrii<"lu52i.d", GPR64Opnd, simm12>, R2_IMM12<0b100>; ++def ADDI_D_rri : Int_Reg2_Imm12<"addi.d", GPR64Opnd, simm12, add>, R2_IMM12<0b011>; ++def ADDI_D_rrii : RELOC_rrii<"addi.d", GPR64Opnd, simm12>, R2_IMM12<0b011>; ++def LD_D_rri : Ld<"ld.d", GPR64Opnd, mem_simmptr, load>, LOAD_STORE<0b0011>; ++def LD_D_rrii : RELOC_rrii<"ld.d", GPR64Opnd, simm12>, LOAD_STORE_RRI<0b0011>; ++def ADD_D_rrr : Int_Reg3<"add.d", GPR64Opnd, add>, R3I<0b0100001>; ++def LDX_D_rrr : LDX_FT_LA<"ldx.d", GPR64Opnd, load>, ++ R3MI<0b00011000>; ++} ++ ++//===----------------------------------------------------------------------===// ++// Assembler Pseudo Instructions ++//===----------------------------------------------------------------------===// ++def LoadImm32 : LoongArchAsmPseudoInst<(outs GPR32Opnd:$rd), ++ (ins uimm32_coerced:$imm32), ++ "li.w\t$rd, $imm32">; ++def LoadImm64 : LoongArchAsmPseudoInst<(outs GPR64Opnd:$rd), ++ (ins imm64:$imm64), ++ "li.d\t$rd, $imm64">; ++// load address ++def LoadAddrLocal : LoongArchAsmPseudoInst<(outs GPR64Opnd:$rd), ++ (ins imm64:$imm64), ++ "la.local\t$rd, $imm64">; ++def : InstAlias<"la.pcrel $rd, $imm", ++ (LoadAddrLocal GPR64Opnd:$rd, imm64:$imm), 1>; ++def LoadAddrGlobal : LoongArchAsmPseudoInst<(outs GPR64Opnd:$rd), ++ (ins imm64:$imm64), ++ "la.global\t$rd, $imm64">; ++def LoadAddrGlobal_Alias : LoongArchAsmPseudoInst<(outs GPR64Opnd:$rd), ++ (ins imm64:$imm64), ++ "la\t$rd, $imm64">; ++def : InstAlias<"la.got $rd, $imm", ++ (LoadAddrGlobal GPR64Opnd:$rd, imm64:$imm), 1>; ++ ++def LoadAddrTLS_LE : LoongArchAsmPseudoInst<(outs GPR64Opnd:$rd), ++ (ins imm64:$imm64), ++ "la.tls.le\t$rd, $imm64">; ++def LoadAddrTLS_IE : LoongArchAsmPseudoInst<(outs GPR64Opnd:$rd), ++ (ins imm64:$imm64), ++ "la.tls.ie\t$rd, $imm64">; ++def LoadAddrTLS_GD : LoongArchAsmPseudoInst<(outs GPR64Opnd:$rd), ++ (ins imm64:$imm64), ++ "la.tls.gd\t$rd, $imm64">; ++def LoadAddrTLS_LD : LoongArchAsmPseudoInst<(outs GPR64Opnd:$rd), ++ (ins imm64:$imm64), ++ "la.tls.ld\t$rd, $imm64">; ++ ++// load address with a temp reg ++def LoadAddrLocalRR : LoongArchAsmPseudoInst<(outs GPR64Opnd:$rd), ++ (ins GPR64Opnd:$rt, imm64:$imm64), ++ "la.local\t$rd, $rt, $imm64">; ++def LoadAddrGlobalRR : LoongArchAsmPseudoInst<(outs GPR64Opnd:$rd), ++ (ins GPR64Opnd:$rt, imm64:$imm64), ++ "la.global\t$rd, $rt, $imm64">; ++def LoadAddrTLS_IE_RR : LoongArchAsmPseudoInst<(outs GPR64Opnd:$rd), ++ (ins GPR64Opnd:$rt, imm64:$imm64), ++ "la.tls.ie\t$rd, $rt, $imm64">; ++def LoadAddrTLS_GD_RR : LoongArchAsmPseudoInst<(outs GPR64Opnd:$rd), ++ (ins GPR64Opnd:$rt, imm64:$imm64), ++ "la.tls.gd\t$rd, $rt, $imm64">; ++def LoadAddrTLS_LD_RR : LoongArchAsmPseudoInst<(outs GPR64Opnd:$rd), ++ (ins GPR64Opnd:$rt, imm64:$imm64), ++ "la.tls.ld\t$rd, $rt, $imm64">; ++ ++// trap when div zero ++def PseudoTEQ : LoongArchPseudo<(outs), (ins GPR64Opnd:$rt), []>; ++ ++ ++def : LoongArchPat<(i64 (sext (i32 (add GPR32:$src, immSExt12:$imm12)))), ++ (INSERT_SUBREG (i64 (IMPLICIT_DEF)), ++ (ADDI_W GPR32:$src, immSExt12:$imm12), sub_32)>; ++ ++def : LoongArchPat<(i64 (sext (i32 (add GPR32:$src, GPR32:$src2)))), ++ (INSERT_SUBREG (i64 (IMPLICIT_DEF)), ++ (ADD_W GPR32:$src, GPR32:$src2), sub_32)>; ++ ++def : LoongArchPat<(i64 (sext (i32 (sub GPR32:$src, GPR32:$src2)))), ++ (INSERT_SUBREG (i64 (IMPLICIT_DEF)), ++ (SUB_W GPR32:$src, GPR32:$src2), sub_32)>; ++ ++def : LoongArchPat<(i64 (sext (i32 (mul GPR32:$src, GPR32:$src2)))), ++ (INSERT_SUBREG (i64 (IMPLICIT_DEF)), ++ (MUL_W GPR32:$src, GPR32:$src2), sub_32)>; ++ ++def : LoongArchPat<(i64 (sext (i32 (shl GPR32:$src, immZExt5:$imm5)))), ++ (INSERT_SUBREG (i64 (IMPLICIT_DEF)), ++ (SLLI_W GPR32:$src, immZExt5:$imm5), sub_32)>; ++ ++def : LoongArchPat<(i64 (sext (i32 (shl GPR32:$src, GPR32:$src2)))), ++ (INSERT_SUBREG (i64 (IMPLICIT_DEF)), ++ (SLL_W GPR32:$src, GPR32:$src2), sub_32)>; ++ ++def : LoongArchPat<(i64 (sext (i32 (srl GPR32:$src, immZExt5:$imm5)))), ++ (INSERT_SUBREG (i64 (IMPLICIT_DEF)), ++ (SRLI_W GPR32:$src, immZExt5:$imm5), sub_32)>; ++ ++def : LoongArchPat<(i64 (sext (i32 (srl GPR32:$src, GPR32:$src2)))), ++ (INSERT_SUBREG (i64 (IMPLICIT_DEF)), ++ (SRL_W GPR32:$src, GPR32:$src2), sub_32)>; ++ ++def : LoongArchPat<(i64 (sext (i32 (sra GPR32:$src, immZExt5:$imm5)))), ++ (INSERT_SUBREG (i64 (IMPLICIT_DEF)), ++ (SRAI_W GPR32:$src, immZExt5:$imm5), sub_32)>; ++ ++def : LoongArchPat<(i64 (sext (i32 (sra GPR32:$src, GPR32:$src2)))), ++ (INSERT_SUBREG (i64 (IMPLICIT_DEF)), ++ (SRA_W GPR32:$src, GPR32:$src2), sub_32)>; ++ ++ ++def : LoongArchPat<(i64 (xor GPR64:$rj, (i64 -1))), ++ (NOR ZERO_64, GPR64:$rj)>; ++ ++def : LoongArchPat<(and GPR64:$rj, (i64 (xor GPR64:$rk, (i64 -1)))), ++ (ANDN GPR64:$rj, GPR64:$rk)>; ++ ++def : LoongArchPat<(i64 (or GPR64:$rj, (xor GPR64:$rk, (i64 -1)))), ++ (ORN GPR64:$rj, GPR64:$rk)>; ++ ++def : LoongArchPat<(i64 (zext (i32 (seteq GPR64:$rj, (i64 0))))), ++ (SLTUI_64 GPR64:$rj, (i64 1))>; ++ ++ ++def : LoongArchPat<(i64 (zext (i32 (srl GPR32:$src, immZExt5:$imm5)))), ++ (BSTRPICK_D (INSERT_SUBREG ++ (i64 (IMPLICIT_DEF)), GPR32:$src, sub_32), ++ (i32 31), immZExt5:$imm5)>; +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchInstrInfoF.td b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchInstrInfoF.td +new file mode 100644 +index 00000000000..badd1538e7d +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchInstrInfoF.td +@@ -0,0 +1,630 @@ ++//===- LoongArchInstrInfoF.td - Target Description for LoongArch Target -*- tablegen -*-=// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++// ++// This file contains the LoongArch implementation of the TargetInstrInfo class. ++// ++//===----------------------------------------------------------------------===// ++// FP immediate patterns. ++def fpimm0 : PatLeaf<(fpimm), [{ ++ return N->isExactlyValue(+0.0); ++}]>; ++ ++def fpimm0neg : PatLeaf<(fpimm), [{ ++ return N->isExactlyValue(-0.0); ++}]>; ++ ++def fpimm1 : PatLeaf<(fpimm), [{ ++ return N->isExactlyValue(+1.0); ++}]>; ++ ++def IsNotSoftFloat : Predicate<"!Subtarget->useSoftFloat()">, ++ AssemblerPredicate<"!FeatureSoftFloat">; ++ ++class HARDFLOAT { list HardFloatPredicate = [IsNotSoftFloat]; } ++ ++def SDT_LoongArchTruncIntFP : SDTypeProfile<1, 1, [SDTCisFP<0>, SDTCisFP<1>]>; ++ ++def LoongArchTruncIntFP : SDNode<"LoongArchISD::TruncIntFP", SDT_LoongArchTruncIntFP>; ++ ++def SDT_LoongArchFPBrcond : SDTypeProfile<0, 3, [SDTCisInt<0>, ++ SDTCisVT<1, i32>, ++ SDTCisVT<2, OtherVT>]>; ++ ++def LoongArchFPBrcond : SDNode<"LoongArchISD::FPBrcond", SDT_LoongArchFPBrcond, ++ [SDNPHasChain, SDNPOptInGlue]>; ++ ++def SDT_LoongArchCMovFP : SDTypeProfile<1, 3, [SDTCisSameAs<0, 1>, SDTCisVT<2, i32>, ++ SDTCisSameAs<1, 3>]>; ++ ++def LoongArchCMovFP_T : SDNode<"LoongArchISD::CMovFP_T", SDT_LoongArchCMovFP, [SDNPInGlue]>; ++ ++def LoongArchCMovFP_F : SDNode<"LoongArchISD::CMovFP_F", SDT_LoongArchCMovFP, [SDNPInGlue]>; ++ ++def SDT_LoongArchFPCmp : SDTypeProfile<0, 3, [SDTCisSameAs<0, 1>, SDTCisFP<1>, ++ SDTCisVT<2, i32>]>; ++ ++def LoongArchFPCmp : SDNode<"LoongArchISD::FPCmp", SDT_LoongArchFPCmp, [SDNPOutGlue]>; ++ ++def SDT_LoongArchFSEL : SDTypeProfile<1, 3, [SDTCisSameAs<0, 1>, ++ SDTCisVT<2, i32>, ++ SDTCisSameAs<1, 3>]>; ++ ++def LoongArchFSEL : SDNode<"LoongArchISD::FSEL", SDT_LoongArchFSEL, ++ [SDNPInGlue]>; ++ ++//===---------------------------------------------------------------------===/ ++//Instruction Class Templates ++//===---------------------------------------------------------------------===/ ++ ++class Float_MOVF ++ : InstForm<(outs RO:$rd), (ins RC:$fj), ++ !strconcat(opstr, "\t$rd, $fj"), ++ [(set RO:$rd, (OpNode RC:$fj))], ++ FrmFR, opstr>, HARDFLOAT { ++ let isMoveReg = 1; ++} ++ ++class Float_MOVT ++ : InstForm<(outs RO:$fd), (ins RC:$rj), ++ !strconcat(opstr, "\t$fd, $rj"), ++ [(set RO:$fd, (OpNode RC:$rj))], ++ FrmFR, opstr>, HARDFLOAT { ++ let isMoveReg = 1; ++} ++ ++class Float_CVT ++ : InstForm<(outs RO:$fd), (ins RS:$fj), ++ !strconcat(opstr, "\t$fd, $fj"), ++ [(set RO:$fd, (OpNode RS:$fj))], ++ FrmFR, opstr>, ++ HARDFLOAT { ++ let hasSideEffects = 0; ++} ++ ++/// float mov ++class Gpr_2_Fcsr ++ : InstForm<(outs FCSROpnd:$fcsr), (ins RO:$rj), ++ !strconcat(opstr, "\t$fcsr, $rj"), ++ [(set FCSROpnd:$fcsr, (OpNode RO:$rj))], ++ FrmR, opstr>; ++class Fcsr_2_Gpr ++ : InstForm<(outs RO:$rd), (ins FCSROpnd:$fcsr), ++ !strconcat(opstr, "\t$rd, $fcsr"), ++ [(set RO:$rd, (OpNode FCSROpnd:$fcsr))], ++ FrmR, opstr>; ++class Fgr_2_Fcfr ++ : InstForm<(outs FCFROpnd:$cd), (ins RO:$fj), ++ !strconcat(opstr, "\t$cd, $fj"), ++ [(set FCFROpnd:$cd, (OpNode RO:$fj))], ++ FrmR, opstr>; ++class Fcfr_2_Fgr ++ : InstForm<(outs RO:$fd), (ins FCFROpnd:$cj), ++ !strconcat(opstr, "\t$fd, $cj"), ++ [(set RO:$fd, (OpNode FCFROpnd:$cj))], ++ FrmR, opstr>; ++class Gpr_2_Fcfr ++ : InstForm<(outs FCFROpnd:$cd), (ins RO:$rj), ++ !strconcat(opstr, "\t$cd, $rj"), ++ [(set FCFROpnd:$cd, (OpNode RO:$rj))], ++ FrmR, opstr>; ++class Fcfr_2_Gpr ++ : InstForm<(outs RO:$rd), (ins FCFROpnd:$cj), ++ !strconcat(opstr, "\t$rd, $cj"), ++ [(set RO:$rd, (OpNode FCFROpnd:$cj))], ++ FrmR, opstr>; ++ ++class FLDX : ++ InstForm<(outs DRC:$fd), (ins PtrRC:$rj, PtrRC:$rk), ++ !strconcat(opstr, "\t$fd, $rj, $rk"), ++ [(set DRC:$fd, (OpNode (add iPTR:$rj, iPTR:$rk)))], ++ FrmR, opstr> { ++ let AddedComplexity = 20; ++} ++ ++class FSTX : ++ InstForm<(outs), (ins DRC:$fd, PtrRC:$rj, PtrRC:$rk), ++ !strconcat(opstr, "\t$fd, $rj, $rk"), ++ [(OpNode DRC:$fd, (add iPTR:$rj, iPTR:$rk))], ++ FrmR, opstr> { ++ let AddedComplexity = 20; ++} ++ ++/// f{maxa/mina}.{s/d} ++class Float_Reg3_Fmaxa ++ : InstForm<(outs RO:$fd), (ins RO:$fj, RO:$fk), ++ !strconcat(opstr, "\t$fd, $fj, $fk"), ++ [], FrmR, opstr>; ++/// frecip ++class Float_Reg2_Frecip ++ : InstForm<(outs RO:$fd), (ins RO:$fj), ++ !strconcat(opstr, "\t$fd, $fj"), ++ [(set RO:$fd, (OpNode fpimm1, RO:$fj))], ++ FrmR, opstr>; ++/// frsqrt ++class Float_Reg2_Frsqrt ++ : InstForm<(outs RO:$fd), (ins RO:$fj), ++ !strconcat(opstr, "\t$fd, $fj"), ++ [(set RO:$fd, (OpNode fpimm1, (fsqrt RO:$fj)))], ++ FrmR, opstr>; ++ ++class BceqzBr : ++ InstForm<(outs), (ins FCFROpnd:$cj, opnd:$offset), ++ !strconcat(opstr, "\t$cj, $offset"), ++ [(LoongArchFPBrcond Op, FCFROpnd:$cj, bb:$offset)], ++ FrmFI, opstr>, HARDFLOAT { ++ let isBranch = 1; ++ let isTerminator = 1; ++ let hasFCCRegOperand = 1; ++} ++ ++class FCMP_COND ++ : InstForm<(outs FCFROpnd:$cd), (ins RO:$fj, RO:$fk), ++ !strconcat("fcmp.", CondStr, ".", TypeStr, "\t$cd, $fj, $fk"), ++ [(set FCFROpnd:$cd, (OpNode RO:$fj, RO:$fk))], ++ FrmOther, ++ !strconcat("fcmp.", CondStr, ".", TypeStr)> { ++ bit isCTI = 1; // for what? from Mips32r6InstrInfo.td line 219 ++} ++ ++class FIELD_CMP_COND Val> { ++ bits<5> Value = Val; ++} ++def FIELD_CMP_COND_CAF : FIELD_CMP_COND<0x0>; ++def FIELD_CMP_COND_CUN : FIELD_CMP_COND<0x8>; ++def FIELD_CMP_COND_CEQ : FIELD_CMP_COND<0x4>; ++def FIELD_CMP_COND_CUEQ : FIELD_CMP_COND<0xC>; ++def FIELD_CMP_COND_CLT : FIELD_CMP_COND<0x2>; ++def FIELD_CMP_COND_CULT : FIELD_CMP_COND<0xA>; ++def FIELD_CMP_COND_CLE : FIELD_CMP_COND<0x6>; ++def FIELD_CMP_COND_CULE : FIELD_CMP_COND<0xE>; ++def FIELD_CMP_COND_CNE : FIELD_CMP_COND<0x10>; ++def FIELD_CMP_COND_COR : FIELD_CMP_COND<0x14>; ++def FIELD_CMP_COND_CUNE : FIELD_CMP_COND<0x18>; ++def FIELD_CMP_COND_SAF : FIELD_CMP_COND<0x1>; ++def FIELD_CMP_COND_SUN : FIELD_CMP_COND<0x9>; ++def FIELD_CMP_COND_SEQ : FIELD_CMP_COND<0x5>; ++def FIELD_CMP_COND_SUEQ : FIELD_CMP_COND<0xD>; ++def FIELD_CMP_COND_SLT : FIELD_CMP_COND<0x3>; ++def FIELD_CMP_COND_SULT : FIELD_CMP_COND<0xB>; ++def FIELD_CMP_COND_SLE : FIELD_CMP_COND<0x7>; ++def FIELD_CMP_COND_SULE : FIELD_CMP_COND<0xF>; ++def FIELD_CMP_COND_SNE : FIELD_CMP_COND<0x11>; ++def FIELD_CMP_COND_SOR : FIELD_CMP_COND<0x15>; ++def FIELD_CMP_COND_SUNE : FIELD_CMP_COND<0x19>; ++ ++multiclass FCMP_COND_M op, string TypeStr, ++ RegisterOperand RO> { ++ def FCMP_CAF_#NAME : FCMP_COND<"caf", TypeStr, RO>, ++ R2_COND; ++ def FCMP_CUN_#NAME : FCMP_COND<"cun", TypeStr, RO, setuo>, ++ R2_COND; ++ def FCMP_CEQ_#NAME : FCMP_COND<"ceq", TypeStr, RO, setoeq>, ++ R2_COND; ++ def FCMP_CUEQ_#NAME : FCMP_COND<"cueq", TypeStr, RO, setueq>, ++ R2_COND; ++ def FCMP_CLT_#NAME : FCMP_COND<"clt", TypeStr, RO, setolt>, ++ R2_COND; ++ def FCMP_CULT_#NAME : FCMP_COND<"cult", TypeStr, RO, setult>, ++ R2_COND; ++ def FCMP_CLE_#NAME : FCMP_COND<"cle", TypeStr, RO, setole>, ++ R2_COND; ++ def FCMP_CULE_#NAME : FCMP_COND<"cule", TypeStr, RO, setule>, ++ R2_COND; ++ def FCMP_CNE_#NAME : FCMP_COND<"cne", TypeStr, RO, setone>, ++ R2_COND; ++ def FCMP_COR_#NAME : FCMP_COND<"cor", TypeStr, RO, seto>, ++ R2_COND; ++ def FCMP_CUNE_#NAME : FCMP_COND<"cune", TypeStr, RO, setune>, ++ R2_COND; ++ ++ def FCMP_SAF_#NAME : FCMP_COND<"saf", TypeStr, RO>, ++ R2_COND; ++ def FCMP_SUN_#NAME : FCMP_COND<"sun", TypeStr, RO>, ++ R2_COND; ++ def FCMP_SEQ_#NAME : FCMP_COND<"seq", TypeStr, RO>, ++ R2_COND; ++ def FCMP_SUEQ_#NAME : FCMP_COND<"sueq", TypeStr, RO>, ++ R2_COND; ++ def FCMP_SLT_#NAME : FCMP_COND<"slt", TypeStr, RO>, ++ R2_COND; ++ def FCMP_SULT_#NAME : FCMP_COND<"sult", TypeStr, RO>, ++ R2_COND; ++ def FCMP_SLE_#NAME : FCMP_COND<"sle", TypeStr, RO>, ++ R2_COND; ++ def FCMP_SULE_#NAME : FCMP_COND<"sule", TypeStr, RO>, ++ R2_COND; ++ def FCMP_SNE_#NAME : FCMP_COND<"sne", TypeStr, RO>, ++ R2_COND; ++ def FCMP_SOR_#NAME : FCMP_COND<"sor", TypeStr, RO>, ++ R2_COND; ++ def FCMP_SUNE_#NAME : FCMP_COND<"sune", TypeStr, RO>, ++ R2_COND; ++} ++ ++//// comparisons supported via another comparison ++//multiclass FCmp_Pats { ++// def : LoongArchPat<(seteq VT:$lhs, VT:$rhs), ++// (!cast("FCMP_CEQ_"#NAME) VT:$lhs, VT:$rhs)>; ++// def : LoongArchPat<(setgt VT:$lhs, VT:$rhs), ++// (!cast("FCMP_CLE_"#NAME) VT:$rhs, VT:$lhs)>; ++// def : LoongArchPat<(setge VT:$lhs, VT:$rhs), ++// (!cast("FCMP_CLT_"#NAME) VT:$rhs, VT:$lhs)>; ++// def : LoongArchPat<(setlt VT:$lhs, VT:$rhs), ++// (!cast("FCMP_CLT_"#NAME) VT:$lhs, VT:$rhs)>; ++// def : LoongArchPat<(setle VT:$lhs, VT:$rhs), ++// (!cast("FCMP_CLE_"#NAME) VT:$lhs, VT:$rhs)>; ++// def : LoongArchPat<(setne VT:$lhs, VT:$rhs), ++// (NOROp ++// (!cast("FCMP_CEQ_"#NAME) VT:$lhs, VT:$rhs), ++// ZEROReg)>; ++//} ++ ++ ++/// ++/// R2 ++/// ++def FABS_S : Float_Reg2<"fabs.s", FGR32Opnd, fabs>, R2F<0b0100000001>; ++def FABS_D : Float_Reg2<"fabs.d", FGR64Opnd, fabs>, R2F<0b0100000010>; ++def FNEG_S : Float_Reg2<"fneg.s", FGR32Opnd, fneg>, R2F<0b0100000101>; ++def FNEG_D : Float_Reg2<"fneg.d", FGR64Opnd, fneg>, R2F<0b0100000110>; ++def FLOGB_S : Float_Reg2<"flogb.s", FGR32Opnd>, R2F<0b0100001001>; ++def FLOGB_D : Float_Reg2<"flogb.d", FGR64Opnd>, R2F<0b0100001010>; ++def FCLASS_S : Float_Reg2<"fclass.s", FGR32Opnd>, R2F<0b0100001101>; ++def FCLASS_D : Float_Reg2<"fclass.d", FGR64Opnd>, R2F<0b0100001110>; ++def FSQRT_S : Float_Reg2<"fsqrt.s", FGR32Opnd, fsqrt>, R2F<0b0100010001>; ++def FSQRT_D : Float_Reg2<"fsqrt.d", FGR64Opnd, fsqrt>, R2F<0b0100010010>; ++def FRECIP_S : Float_Reg2_Frecip<"frecip.s", FGR32Opnd, fdiv>, R2F<0b0100010101>; ++def FRECIP_D : Float_Reg2_Frecip<"frecip.d", FGR64Opnd, fdiv>, R2F<0b0100010110>; ++def FRSQRT_S : Float_Reg2_Frsqrt<"frsqrt.s", FGR32Opnd, fdiv>, R2F<0b0100011001>; ++def FRSQRT_D : Float_Reg2_Frsqrt<"frsqrt.d", FGR64Opnd, fdiv>, R2F<0b0100011010>; ++def FMOV_S : Float_Reg2<"fmov.s", FGR32Opnd>, R2F<0b0100100101>; ++def FMOV_D : Float_Reg2<"fmov.d", FGR64Opnd>, R2F<0b0100100110>; ++ ++def MOVGR2FR_W : Float_MOVT<"movgr2fr.w", FGR32Opnd, GPR32Opnd, bitconvert>, MOVFI<0b0100101001>; ++def MOVGR2FR_D : Float_MOVT<"movgr2fr.d", FGR64Opnd, GPR64Opnd, bitconvert>, MOVFI<0b0100101010>; ++def MOVGR2FRH_W : Float_MOVT<"movgr2frh.w", FGR64Opnd, GPR32Opnd>, MOVFI<0b0100101011>; //not realize ++def MOVFR2GR_S : Float_MOVF<"movfr2gr.s", GPR32Opnd, FGR32Opnd, bitconvert>, MOVIF<0b0100101101>; ++def MOVFR2GR_D : Float_MOVF<"movfr2gr.d", GPR64Opnd, FGR64Opnd, bitconvert>, MOVIF<0b0100101110>; ++def MOVFRH2GR_S : Float_MOVF<"movfrh2gr.s", GPR32Opnd, FGR32Opnd>, MOVIF<0b0100101111>; //not realize ++ ++let isCodeGenOnly = 1 in { ++ def MOVFR2GR_DS : Float_MOVF<"movfr2gr.s", GPR64Opnd, FGR32Opnd>, MOVIF<0b0100101101>; ++} ++ ++def FCVT_S_D : Float_CVT<"fcvt.s.d", FGR32Opnd, FGR64Opnd>, R2F<0b1001000110>; ++def FCVT_D_S : Float_CVT<"fcvt.d.s", FGR64Opnd, FGR32Opnd>, R2F<0b1001001001>; ++ ++def FTINTRM_W_S : Float_Reg2<"ftintrm.w.s", FGR32Opnd>, R2F<0b1010000001>; ++def FTINTRM_W_D : Float_Reg2<"ftintrm.w.d", FGR64Opnd>, R2F<0b1010000010>; ++def FTINTRM_L_S : Float_Reg2<"ftintrm.l.s", FGR32Opnd>, R2F<0b1010001001>; ++def FTINTRM_L_D : Float_Reg2<"ftintrm.l.d", FGR64Opnd>, R2F<0b1010001010>; ++def FTINTRP_W_S : Float_Reg2<"ftintrp.w.s", FGR32Opnd>, R2F<0b1010010001>; ++def FTINTRP_W_D : Float_Reg2<"ftintrp.w.d", FGR64Opnd>, R2F<0b1010010010>; ++def FTINTRP_L_S : Float_Reg2<"ftintrp.l.s", FGR32Opnd>, R2F<0b1010011001>; ++def FTINTRP_L_D : Float_Reg2<"ftintrp.l.d", FGR64Opnd>, R2F<0b1010011010>; ++def FTINTRZ_W_S : Float_Reg2<"ftintrz.w.s", FGR32Opnd>, R2F<0b1010100001>; ++def FTINTRZ_L_D : Float_Reg2<"ftintrz.l.d", FGR64Opnd>, R2F<0b1010101010>; ++def FTINTRNE_W_S : Float_Reg2<"ftintrne.w.s", FGR32Opnd>, R2F<0b1010110001>; ++def FTINTRNE_W_D : Float_Reg2<"ftintrne.w.d", FGR64Opnd>, R2F<0b1010110010>; ++def FTINTRNE_L_S : Float_Reg2<"ftintrne.l.s", FGR32Opnd>, R2F<0b1010111001>; ++def FTINTRNE_L_D : Float_Reg2<"ftintrne.l.d", FGR64Opnd>, R2F<0b1010111010>; ++ ++def FTINT_W_S : Float_CVT<"ftint.w.s", FGR32Opnd, FGR32Opnd>, R2F<0b1011000001>; ++def FTINT_W_D : Float_CVT<"ftint.w.d", FGR32Opnd, FGR64Opnd>, R2F<0b1011000010>; ++def FTINT_L_S : Float_CVT<"ftint.l.s", FGR64Opnd, FGR32Opnd>, R2F<0b1011001001>; ++def FTINT_L_D : Float_CVT<"ftint.l.d", FGR64Opnd, FGR64Opnd>, R2F<0b1011001010>; ++def FFINT_S_W : Float_CVT<"ffint.s.w", FGR32Opnd, FGR32Opnd>, R2F<0b1101000100>; ++def FFINT_S_L : Float_CVT<"ffint.s.l", FGR32Opnd, FGR64Opnd>, R2F<0b1101000110>; ++def FFINT_D_W : Float_CVT<"ffint.d.w", FGR64Opnd, FGR32Opnd>, R2F<0b1101001000>; ++def FFINT_D_L : Float_CVT<"ffint.d.l", FGR64Opnd, FGR64Opnd>, R2F<0b1101001010>; ++ ++def FRINT_S : Float_Reg2<"frint.s", FGR32Opnd, frint>, R2F<0b1110010001>; ++def FRINT_D : Float_Reg2<"frint.d", FGR64Opnd, frint>, R2F<0b1110010010>; ++ ++/// ++/// R3 ++/// ++def FADD_S : Float_Reg3<"fadd.s", FGR32Opnd, fadd>, R3F<0b000001>; ++def FADD_D : Float_Reg3<"fadd.d", FGR64Opnd, fadd>, R3F<0b000010>; ++def FSUB_S : Float_Reg3<"fsub.s", FGR32Opnd, fsub>, R3F<0b000101>; ++def FSUB_D : Float_Reg3<"fsub.d", FGR64Opnd, fsub>, R3F<0b000110>; ++def FMUL_S : Float_Reg3<"fmul.s", FGR32Opnd, fmul>, R3F<0b001001>; ++def FMUL_D : Float_Reg3<"fmul.d", FGR64Opnd, fmul>, R3F<0b001010>; ++def FDIV_S : Float_Reg3<"fdiv.s", FGR32Opnd, fdiv>, R3F<0b001101>; ++def FDIV_D : Float_Reg3<"fdiv.d", FGR64Opnd, fdiv>, R3F<0b001110>; ++def FMAX_S : Float_Reg3<"fmax.s", FGR32Opnd, fmaxnum_ieee>, R3F<0b010001>; ++def FMAX_D : Float_Reg3<"fmax.d", FGR64Opnd, fmaxnum_ieee>, R3F<0b010010>; ++def FMIN_S : Float_Reg3<"fmin.s", FGR32Opnd, fminnum_ieee>, R3F<0b010101>; ++def FMIN_D : Float_Reg3<"fmin.d", FGR64Opnd, fminnum_ieee>, R3F<0b010110>; ++def FMAXA_S : Float_Reg3_Fmaxa<"fmaxa.s", FGR32Opnd>, R3F<0b011001>; ++def FMAXA_D : Float_Reg3_Fmaxa<"fmaxa.d", FGR64Opnd>, R3F<0b011010>; ++def FMINA_S : Float_Reg3_Fmaxa<"fmina.s", FGR32Opnd>, R3F<0b011101>; ++def FMINA_D : Float_Reg3_Fmaxa<"fmina.d", FGR64Opnd>, R3F<0b011110>; ++def FSCALEB_S : Float_Reg3<"fscaleb.s", FGR32Opnd>, R3F<0b100001>; ++def FSCALEB_D : Float_Reg3<"fscaleb.d", FGR64Opnd>, R3F<0b100010>; ++def FCOPYSIGN_S : Float_Reg3<"fcopysign.s", FGR32Opnd, fcopysign>, R3F<0b100101>; ++def FCOPYSIGN_D : Float_Reg3<"fcopysign.d", FGR64Opnd, fcopysign>, R3F<0b100110>; ++/// ++/// R4_IMM21 ++/// ++def FMADD_S : Mul_Reg4<"fmadd.s", FGR32Opnd>, R4MUL<0b0001>; ++def FMADD_D : Mul_Reg4<"fmadd.d", FGR64Opnd>, R4MUL<0b0010>; ++def FMSUB_S : Mul_Reg4<"fmsub.s", FGR32Opnd>, R4MUL<0b0101>; ++def FMSUB_D : Mul_Reg4<"fmsub.d", FGR64Opnd>, R4MUL<0b0110>; ++def FNMADD_S : NMul_Reg4<"fnmadd.s", FGR32Opnd>, R4MUL<0b1001>; ++def FNMADD_D : NMul_Reg4<"fnmadd.d", FGR64Opnd>, R4MUL<0b1010>; ++def FNMSUB_S : NMul_Reg4<"fnmsub.s", FGR32Opnd>, R4MUL<0b1101>; ++def FNMSUB_D : NMul_Reg4<"fnmsub.d", FGR64Opnd>, R4MUL<0b1110>; ++ ++ ++// fmadd: fj * fk + fa ++def : LoongArchPat<(fma FGR64Opnd:$fj, FGR64Opnd:$fk, FGR64Opnd:$fa), ++ (FMADD_D $fj, $fk, $fa)>; ++ ++def : LoongArchPat<(fma FGR32Opnd:$fj, FGR32Opnd:$fk, FGR32Opnd:$fa), ++ (FMADD_S $fj, $fk, $fa)>; ++ ++ ++// fmsub: fj * fk - fa ++def : LoongArchPat<(fma FGR64Opnd:$fj, FGR64Opnd:$fk, (fneg FGR64Opnd:$fa)), ++ (FMSUB_D FGR64Opnd:$fj, FGR64Opnd:$fk, FGR64Opnd:$fa)>; ++ ++def : LoongArchPat<(fma FGR32Opnd:$fj, FGR32Opnd:$fk, (fneg FGR32Opnd:$fa)), ++ (FMSUB_S FGR32Opnd:$fj, FGR32Opnd:$fk, FGR32Opnd:$fa)>; ++ ++ ++// fnmadd: -(fj * fk + fa) ++def : LoongArchPat<(fma (fneg FGR64Opnd:$fj), FGR64Opnd:$fk, (fneg FGR64Opnd:$fa)), ++ (FNMADD_D FGR64Opnd:$fj, FGR64Opnd:$fk, FGR64Opnd:$fa)>; ++ ++def : LoongArchPat<(fma (fneg FGR32Opnd:$fj), FGR32Opnd:$fk, (fneg FGR32Opnd:$fa)), ++ (FNMADD_S FGR32Opnd:$fj, FGR32Opnd:$fk, FGR32Opnd:$fa)>; ++ ++// fnmsub: -(fj * fk - fa) ++def : LoongArchPat<(fma (fneg FGR64Opnd:$fj), FGR64Opnd:$fk, FGR64Opnd:$fa), ++ (FNMSUB_D FGR64Opnd:$fj, FGR64Opnd:$fk, FGR64Opnd:$fa)>; ++ ++def : LoongArchPat<(fma (fneg FGR32Opnd:$fj), FGR32Opnd:$fk, FGR32Opnd:$fa), ++ (FNMSUB_S FGR32Opnd:$fj, FGR32Opnd:$fk, FGR32Opnd:$fa)>; ++ ++let Pattern = [] in { ++defm S : FCMP_COND_M<0b01, "s", FGR32Opnd>; ++defm D : FCMP_COND_M<0b10, "d", FGR64Opnd>; ++} ++// ++//defm S : FCmp_Pats; ++//defm D : FCmp_Pats; ++ ++/// ++/// Float point branching ++/// ++def LoongArch_BRANCH_F : PatLeaf<(i32 0)>; ++def LoongArch_BRANCH_T : PatLeaf<(i32 1)>; ++ ++def BCEQZ : BceqzBr<"bceqz", brtarget, LoongArch_BRANCH_F>, R1_BCEQZ<0>; ++def BCNEZ : BceqzBr<"bcnez", brtarget, LoongArch_BRANCH_T>, R1_BCEQZ<1>; ++ ++/// ++/// FMOV ++/// ++def MOVGR2FCSR : Gpr_2_Fcsr<"movgr2fcsr", GPR64Opnd>, MOVGPR2FCSR; ++def MOVFCSR2GR : Fcsr_2_Gpr<"movfcsr2gr", GPR64Opnd>, MOVFCSR2GPR; ++def MOVFR2CF : Fgr_2_Fcfr<"movfr2cf", FGR64Opnd>, MOVFGR2FCFR; ++def MOVCF2FR : Fcfr_2_Fgr<"movcf2fr", FGR64Opnd>, MOVFCFR2FGR; ++def MOVGR2CF : Gpr_2_Fcfr<"movgr2cf", GPR64Opnd>, MOVGPR2FCFR; ++def MOVCF2GR : Fcfr_2_Gpr<"movcf2gr", GPR64Opnd>, MOVFCFR2GPR; ++ ++let isCodeGenOnly = 1 in { ++ def MOVFR2CF32 : Fgr_2_Fcfr<"movfr2cf", FGR32Opnd>, MOVFGR2FCFR; ++ def MOVCF2FR32 : Fcfr_2_Fgr<"movcf2fr", FGR32Opnd>, MOVFCFR2FGR; ++ def MOVGR2CF32 : Gpr_2_Fcfr<"movgr2cf", GPR32Opnd>, MOVGPR2FCFR; ++ def MOVCF2GR32 : Fcfr_2_Gpr<"movcf2gr", GPR32Opnd>, MOVFCFR2GPR; ++} ++ ++class Sel_Reg4 ++ : InstForm<(outs RO:$fd), (ins FCFROpnd:$ca, RO:$fj, RO:$fk), ++ !strconcat(opstr, "\t$fd, $fj, $fk, $ca"), ++ [(set RO:$fd, (LoongArchFSEL RO:$fj, FCFROpnd:$ca, RO:$fk))], ++ FrmR, opstr>{ ++ let Defs = [FCC0, FCC1, FCC2, FCC3, FCC4, FCC5, FCC6]; ++ let hasFCCRegOperand = 1; ++ } ++ ++def FSEL_T_S : Sel_Reg4<"fsel", FGR32Opnd>, R4SEL; ++let isCodeGenOnly = 1 in { ++ def FSEL_T_D : Sel_Reg4<"fsel", FGR64Opnd>, R4SEL; ++} ++ ++/// ++/// Mem access ++/// ++def FLD_S : FLd<"fld.s", FGR32Opnd, mem, load>, LOAD_STORE<0b1100>; ++def FST_S : FSt<"fst.s", FGR32Opnd, mem, store>, LOAD_STORE<0b1101>; ++def FLD_D : FLd<"fld.d", FGR64Opnd, mem, load>, LOAD_STORE<0b1110>; ++def FST_D : FSt<"fst.d", FGR64Opnd, mem, store>, LOAD_STORE<0b1111>; ++ ++def FLDX_S : FLDX<"fldx.s", FGR32Opnd, load>, R3MF<0b01100000>; ++def FLDX_D : FLDX<"fldx.d", FGR64Opnd, load>, R3MF<0b01101000>; ++def FSTX_S : FSTX<"fstx.s", FGR32Opnd, store>, R3MF<0b01110000>; ++def FSTX_D : FSTX<"fstx.d", FGR64Opnd, store>, R3MF<0b01111000>; ++ ++def FLDGT_S : Float_Int_Reg3<"fldgt.s", FGR32Opnd, GPR64Opnd>, R3MF<0b11101000>; ++def FLDGT_D : Float_Int_Reg3<"fldgt.d", FGR64Opnd, GPR64Opnd>, R3MF<0b11101001>; ++def FLDLE_S : Float_Int_Reg3<"fldle.s", FGR32Opnd, GPR64Opnd>, R3MF<0b11101010>; ++def FLDLE_D : Float_Int_Reg3<"fldle.d", FGR64Opnd, GPR64Opnd>, R3MF<0b11101011>; ++def FSTGT_S : Float_STGT_LE<"fstgt.s", FGR32Opnd, GPR64Opnd>, R3MF<0b11101100>; ++def FSTGT_D : Float_STGT_LE<"fstgt.d", FGR64Opnd, GPR64Opnd>, R3MF<0b11101101>; ++def FSTLE_S : Float_STGT_LE<"fstle.s", FGR32Opnd, GPR64Opnd>, R3MF<0b11101110>; ++def FSTLE_D : Float_STGT_LE<"fstle.d", FGR64Opnd, GPR64Opnd>, R3MF<0b11101111>; ++ ++let isPseudo = 1, isCodeGenOnly = 1 in { ++ def PseudoFFINT_S_W : Float_CVT<"", FGR32Opnd, GPR32Opnd>; ++ def PseudoFFINT_D_W : Float_CVT<"", FGR64Opnd, GPR32Opnd>; ++ def PseudoFFINT_S_L : Float_CVT<"", FGR64Opnd, GPR64Opnd>; ++ def PseudoFFINT_D_L : Float_CVT<"", FGR64Opnd, GPR64Opnd>; ++} ++ ++def : LoongArchPat<(f32 (fpround FGR64Opnd:$src)), ++ (FCVT_S_D FGR64Opnd:$src)>; ++def : LoongArchPat<(f64 (fpextend FGR32Opnd:$src)), ++ (FCVT_D_S FGR32Opnd:$src)>; ++ ++def : LoongArchPat<(f32 (sint_to_fp GPR32Opnd:$src)), ++ (PseudoFFINT_S_W GPR32Opnd:$src)>; ++def : LoongArchPat<(f64 (sint_to_fp GPR32Opnd:$src)), ++ (PseudoFFINT_D_W GPR32Opnd:$src)>; ++def : LoongArchPat<(f32 (sint_to_fp GPR64Opnd:$src)), ++ (EXTRACT_SUBREG (PseudoFFINT_S_L GPR64Opnd:$src), sub_lo)>; ++def : LoongArchPat<(f64 (sint_to_fp GPR64Opnd:$src)), ++ (PseudoFFINT_D_L GPR64Opnd:$src)>; ++ ++def : LoongArchPat<(f32 fpimm0), (MOVGR2FR_W ZERO)>; ++def : LoongArchPat<(f32 fpimm0neg), (FNEG_S (MOVGR2FR_W ZERO))>; ++def : LoongArchPat<(f32 fpimm1), (FFINT_S_W (MOVGR2FR_W (ADDI_W ZERO, 1)))>; ++def : LoongArchPat<(f64 fpimm1), (FFINT_D_L (MOVGR2FR_D (ADDI_D ZERO_64, 1)))>; ++ ++// Patterns for loads/stores with a reg+imm operand. ++let AddedComplexity = 40 in { ++ def : LoadRegImmPat; ++ def : StoreRegImmPat; ++ def : LoadRegImmPat; ++ def : StoreRegImmPat; ++} ++ ++def : LoongArchPat<(LoongArchTruncIntFP FGR32Opnd:$src), ++ (FTINTRZ_W_S FGR32Opnd:$src)>; ++ ++def : LoongArchPat<(LoongArchTruncIntFP FGR64Opnd:$src), ++ (FTINTRZ_L_D FGR64Opnd:$src)>; ++ ++def : LoongArchPat<(LoongArchTruncIntFP FGR32Opnd:$src), ++ (FCVT_D_S (FTINTRZ_W_S FGR32Opnd:$src))>; ++ ++def : LoongArchPat<(f32 (fcopysign FGR32Opnd:$lhs, FGR64Opnd:$rhs)), ++ (FCOPYSIGN_S FGR32Opnd:$lhs, (FCVT_S_D FGR64Opnd:$rhs))>; ++def : LoongArchPat<(f64 (fcopysign FGR64Opnd:$lhs, FGR32Opnd:$rhs)), ++ (FCOPYSIGN_D FGR64Opnd:$lhs, (FCVT_D_S FGR32Opnd:$rhs))>; ++ ++let PrintMethod = "printFCCOperand",EncoderMethod = "getFCMPEncoding" in ++ def condcode : Operand; ++ ++class CEQS_FT : ++ InstForm<(outs), (ins RC:$fj, RC:$fk, condcode:$cond), ++ !strconcat("fcmp.$cond.", typestr, "\t$$fcc0, $fj, $fk"), ++ [(OpNode RC:$fj, RC:$fk, imm:$cond)], FrmFR, ++ !strconcat("fcmp.$cond.", typestr)>, HARDFLOAT { ++ let Defs = [FCC0, FCC1, FCC2, FCC3, FCC4, FCC5, FCC6, FCC7]; ++ let isCodeGenOnly = 1; ++ let hasFCCRegOperand = 1; ++} ++ ++def FCMP_S32 : CEQS_FT<"s", FGR32, LoongArchFPCmp>, CEQS_FM<0b01> { ++ bits<3> cd = 0; ++} ++def FCMP_D64 : CEQS_FT<"d", FGR64, LoongArchFPCmp>, CEQS_FM<0b10>{ ++ bits<3> cd = 0; ++} ++ ++ ++//multiclass FCmp_Pats2 { ++// def : LoongArchPat<(seteq VT:$lhs, VT:$rhs), ++// (!cast("SFCMP_CEQ_"#NAME) VT:$lhs, VT:$rhs)>; ++// def : LoongArchPat<(setgt VT:$lhs, VT:$rhs), ++// (!cast("SFCMP_CLE_"#NAME) VT:$rhs, VT:$lhs)>; ++// def : LoongArchPat<(setge VT:$lhs, VT:$rhs), ++// (!cast("SFCMP_CLT_"#NAME) VT:$rhs, VT:$lhs)>; ++// def : LoongArchPat<(setlt VT:$lhs, VT:$rhs), ++// (!cast("SFCMP_CLT_"#NAME) VT:$lhs, VT:$rhs)>; ++// def : LoongArchPat<(setle VT:$lhs, VT:$rhs), ++// (!cast("SFCMP_CLE_"#NAME) VT:$lhs, VT:$rhs)>; ++// def : LoongArchPat<(setne VT:$lhs, VT:$rhs), ++// (NOROp ++// (!cast("SFCMP_CEQ_"#NAME) VT:$lhs, VT:$rhs), ++// ZEROReg)>; ++// ++// def : LoongArchPat<(seteq VT:$lhs, VT:$rhs), ++// (!cast("DFCMP_CEQ_"#NAME) VT:$lhs, VT:$rhs)>; ++// def : LoongArchPat<(setgt VT:$lhs, VT:$rhs), ++// (!cast("DFCMP_CLE_"#NAME) VT:$rhs, VT:$lhs)>; ++// def : LoongArchPat<(setge VT:$lhs, VT:$rhs), ++// (!cast("DFCMP_CLT_"#NAME) VT:$rhs, VT:$lhs)>; ++// def : LoongArchPat<(setlt VT:$lhs, VT:$rhs), ++// (!cast("DFCMP_CLT_"#NAME) VT:$lhs, VT:$rhs)>; ++// def : LoongArchPat<(setle VT:$lhs, VT:$rhs), ++// (!cast("DFCMP_CLE_"#NAME) VT:$lhs, VT:$rhs)>; ++// def : LoongArchPat<(setne VT:$lhs, VT:$rhs), ++// (NOROp ++// (!cast("DFCMP_CEQ_"#NAME) VT:$lhs, VT:$rhs), ++// ZEROReg)>; ++// } ++// ++//defm S : FCmp_Pats2; ++//defm D : FCmp_Pats2; ++ ++let usesCustomInserter = 1 in { ++ class Select_Pseudo : ++ LoongArchPseudo<(outs RC:$dst), (ins GPR32Opnd:$cond, RC:$T, RC:$F), ++ [(set RC:$dst, (select GPR32Opnd:$cond, RC:$T, RC:$F))]>; ++ ++ class SelectFP_Pseudo_T : ++ LoongArchPseudo<(outs RC:$dst), (ins FCFROpnd:$cond, RC:$T, RC:$F), ++ [(set RC:$dst, (LoongArchCMovFP_T RC:$T, FCFROpnd:$cond, RC:$F))]>; ++ ++ class SelectFP_Pseudo_F : ++ LoongArchPseudo<(outs RC:$dst), (ins FCFROpnd:$cond, RC:$T, RC:$F), ++ [(set RC:$dst, (LoongArchCMovFP_F RC:$T, FCFROpnd:$cond, RC:$F))]>; ++} ++ ++def PseudoSELECT_I : Select_Pseudo; ++def PseudoSELECT_I64 : Select_Pseudo; ++def PseudoSELECT_S : Select_Pseudo; ++def PseudoSELECT_D64 : Select_Pseudo; ++ ++def PseudoSELECTFP_T_I : SelectFP_Pseudo_T; ++def PseudoSELECTFP_T_I64 : SelectFP_Pseudo_T; ++ ++def PseudoSELECTFP_F_I : SelectFP_Pseudo_F; ++def PseudoSELECTFP_F_I64 : SelectFP_Pseudo_F; ++ ++class ABSS_FT : ++ InstForm<(outs DstRC:$fd), (ins SrcRC:$fj), !strconcat(opstr, "\t$fd, $fj"), ++ [(set DstRC:$fd, (OpNode SrcRC:$fj))], FrmFR, opstr>; ++ ++def TRUNC_W_D : ABSS_FT<"ftintrz.w.d", FGR32Opnd, FGR64Opnd>, R2F<0b1010100010>; ++ ++def FTINTRZ_L_S : ABSS_FT<"ftintrz.l.s", FGR64Opnd, FGR32Opnd>, R2F<0b1010101001>; ++ ++def : LoongArchPat<(LoongArchTruncIntFP FGR64Opnd:$src), ++ (TRUNC_W_D FGR64Opnd:$src)>; ++ ++def : LoongArchPat<(LoongArchTruncIntFP FGR32Opnd:$src), ++ (FTINTRZ_L_S FGR32Opnd:$src)>; ++ ++def : Pat<(fcanonicalize FGR32Opnd:$src), (FMAX_S $src, $src)>; ++def : Pat<(fcanonicalize FGR64Opnd:$src), (FMAX_D $src, $src)>; ++ ++def : LoongArchPat<(i64 (sext (i32 (bitconvert FGR32Opnd:$src)))), ++ (MOVFR2GR_DS FGR32Opnd:$src)>; +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchLASXInstrFormats.td b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchLASXInstrFormats.td +new file mode 100644 +index 00000000000..8e255f85781 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchLASXInstrFormats.td +@@ -0,0 +1,448 @@ ++//===- LoongArchLASXInstrFormats.td - LoongArch LASX Instruction Formats ---*- tablegen -*-===// ++// ++// The LLVM Compiler Infrastructure ++// ++// This file is distributed under the University of Illinois Open Source ++// License. See LICENSE.TXT for details. ++// ++//===----------------------------------------------------------------------===// ++ ++class LASXInst : InstLA<(outs), (ins), "", [], FrmOther>, ++ EXT_LASX { ++} ++ ++class LASXCBranch : LASXInst { ++} ++ ++class LASXSpecial : LASXInst { ++} ++ ++class LASXPseudo pattern>: ++ LoongArchPseudo { ++ let Predicates = [HasLASX]; ++} ++ ++class LASX_3R op>: LASXInst { ++ bits<5> xk; ++ bits<5> xj; ++ bits<5> xd; ++ ++ let Inst{31-15} = op; ++ let Inst{14-10} = xk; ++ let Inst{9-5} = xj; ++ let Inst{4-0} = xd; ++} ++ ++class LASX_4R op>: LASXInst { ++ bits<5> xa; ++ bits<5> xk; ++ bits<5> xj; ++ bits<5> xd; ++ ++ let Inst{31-20} = op; ++ let Inst{19-15} = xa; ++ let Inst{14-10} = xk; ++ let Inst{9-5} = xj; ++ let Inst{4-0} = xd; ++} ++ ++class LASX_XVFCMP op>: LASXInst { ++ bits<5> xd; ++ bits<5> xj; ++ bits<5> xk; ++ bits<5> cond; ++ ++ let Inst{31-20} = op; ++ let Inst{19-15} = cond; ++ let Inst{14-10} = xk; ++ let Inst{9-5} = xj; ++ let Inst{4-0} = xd; ++} ++ ++class LASX_I12_S op>: LASXInst { ++ bits<5> xd; ++ bits<17> addr; ++ ++ let Inst{31-22} = op; ++ let Inst{21-10} = addr{11-0}; ++ let Inst{9-5} = addr{16-12}; ++ let Inst{4-0} = xd; ++} ++ ++class LASX_SI12_S op>: LASXInst { ++ bits<5> xd; ++ bits<17> addr; ++ ++ let Inst{31-22} = op; ++ let Inst{21-10} = addr{11-0}; ++ let Inst{9-5} = addr{16-12}; ++ let Inst{4-0} = xd; ++} ++ ++class LASX_SI11_S op>: LASXInst { ++ bits<5> xd; ++ bits<16> addr; ++ ++ let Inst{31-21} = op; ++ let Inst{20-10} = addr{10-0}; ++ let Inst{9-5} = addr{15-11}; ++ let Inst{4-0} = xd; ++} ++ ++class LASX_SI10_S op>: LASXInst { ++ bits<5> xd; ++ bits<15> addr; ++ ++ let Inst{31-20} = op; ++ let Inst{19-10} = addr{9-0}; ++ let Inst{9-5} = addr{14-10}; ++ let Inst{4-0} = xd; ++} ++ ++class LASX_SI9_S op>: LASXInst { ++ bits<5> xd; ++ bits<14> addr; ++ ++ let Inst{31-19} = op; ++ let Inst{18-10} = addr{8-0}; ++ let Inst{9-5} = addr{13-9}; ++ let Inst{4-0} = xd; ++} ++ ++class LASX_SI8_idx5 op>: LASXInst { ++ bits<5> xd; ++ bits<5> rj; ++ bits<8> si8; ++ bits<5> idx; ++ ++ let Inst{31-23} = op; ++ let Inst{22-18} = idx; ++ let Inst{17-10} = si8; ++ let Inst{9-5} = rj; ++ let Inst{4-0} = xd; ++} ++ ++class LASX_SI8_idx2 op>: LASXInst { ++ bits<5> xd; ++ bits<5> rj; ++ bits<8> si8; ++ bits<2> idx; ++ ++ let Inst{31-20} = op; ++ let Inst{19-18} = idx; ++ let Inst{17-10} = si8; ++ let Inst{9-5} = rj; ++ let Inst{4-0} = xd; ++} ++ ++class LASX_SI8_idx3 op>: LASXInst { ++ bits<5> xd; ++ bits<5> rj; ++ bits<8> si8; ++ bits<3> idx; ++ ++ let Inst{31-21} = op; ++ let Inst{20-18} = idx; ++ let Inst{17-10} = si8; ++ let Inst{9-5} = rj; ++ let Inst{4-0} = xd; ++} ++ ++class LASX_SI8_idx4 op>: LASXInst { ++ bits<5> xd; ++ bits<5> rj; ++ bits<8> si8; ++ bits<4> idx; ++ ++ let Inst{31-22} = op; ++ let Inst{21-18} = idx; ++ let Inst{17-10} = si8; ++ let Inst{9-5} = rj; ++ let Inst{4-0} = xd; ++} ++ ++class LASX_3R_2GP op>: LASXInst { ++ bits<5> rk; ++ bits<5> rj; ++ bits<5> xd; ++ ++ let Inst{31-15} = op; ++ let Inst{14-10} = rk; ++ let Inst{9-5} = rj; ++ let Inst{4-0} = xd; ++} ++ ++class LASX_3R_1GP op>: LASXInst { ++ bits<5> rk; ++ bits<5> xj; ++ bits<5> xd; ++ ++ let Inst{31-15} = op; ++ let Inst{14-10} = rk; ++ let Inst{9-5} = xj; ++ let Inst{4-0} = xd; ++} ++ ++class LASX_I5 op>: LASXInst { ++ bits<5> xd; ++ bits<5> xj; ++ bits<5> si5; ++ ++ let Inst{31-15} = op; ++ let Inst{14-10} = si5; ++ let Inst{9-5} = xj; ++ let Inst{4-0} = xd; ++} ++ ++class LASX_I5_U op>: LASXInst { ++ bits<5> xd; ++ bits<5> xj; ++ bits<5> ui5; ++ ++ let Inst{31-15} = op; ++ let Inst{14-10} = ui5; ++ let Inst{9-5} = xj; ++ let Inst{4-0} = xd; ++} ++ ++class LASX_I5_mode_U op>: LASXInst { ++ bits<5> xd; ++ bits<5> mode; ++ bits<5> ui5; ++ ++ let Inst{31-15} = op; ++ let Inst{14-10} = ui5; ++ let Inst{9-5} = mode; ++ let Inst{4-0} = xd; ++} ++ ++class LASX_2R op>: LASXInst { ++ bits<5> xj; ++ bits<5> xd; ++ ++ let Inst{31-10} = op; ++ let Inst{9-5} = xj; ++ let Inst{4-0} = xd; ++} ++ ++class LASX_SET op>: LASXInst { ++ bits<5> xj; ++ bits<3> cd; ++ ++ let Inst{31-10} = op; ++ let Inst{9-5} = xj; ++ let Inst{4-3} = 0b00; ++ let Inst{2-0} = cd; ++} ++ ++class LASX_2R_1GP op>: LASXInst { ++ bits<5> rj; ++ bits<5> xd; ++ ++ let Inst{31-10} = op; ++ let Inst{9-5} = rj; ++ let Inst{4-0} = xd; ++} ++ ++class LASX_I3_U op>: LASXInst { ++ bits<5> xd; ++ bits<5> xj; ++ bits<3> ui3; ++ ++ let Inst{31-13} = op; ++ let Inst{12-10} = ui3; ++ let Inst{9-5} = xj; ++ let Inst{4-0} = xd; ++} ++ ++class LASX_I4_U op>: LASXInst { ++ bits<5> xd; ++ bits<5> xj; ++ bits<4> ui4; ++ ++ let Inst{31-14} = op; ++ let Inst{13-10} = ui4; ++ let Inst{9-5} = xj; ++ let Inst{4-0} = xd; ++} ++ ++class LASX_I6_U op>: LASXInst { ++ bits<5> xd; ++ bits<5> xj; ++ bits<6> ui6; ++ ++ let Inst{31-16} = op; ++ let Inst{15-10} = ui6; ++ let Inst{9-5} = xj; ++ let Inst{4-0} = xd; ++} ++ ++class LASX_I2_R_U op>: LASXInst { ++ bits<5> xd; ++ bits<5> rj; ++ bits<2> ui2; ++ ++ let Inst{31-12} = op; ++ let Inst{11-10} = ui2; ++ let Inst{9-5} = rj; ++ let Inst{4-0} = xd; ++} ++ ++class LASX_I3_R_U op>: LASXInst { ++ bits<5> xd; ++ bits<5> rj; ++ bits<3> ui3; ++ ++ let Inst{31-13} = op; ++ let Inst{12-10} = ui3; ++ let Inst{9-5} = rj; ++ let Inst{4-0} = xd; ++} ++ ++class LASX_ELM_COPY_U3 op>: LASXInst { ++ bits<5> rd; ++ bits<5> xj; ++ bits<3> ui3; ++ ++ let Inst{31-13} = op; ++ let Inst{12-10} = ui3; ++ let Inst{9-5} = xj; ++ let Inst{4-0} = rd; ++} ++ ++class LASX_ELM_COPY_U2 op>: LASXInst { ++ bits<5> rd; ++ bits<5> xj; ++ bits<2> ui2; ++ ++ let Inst{31-12} = op; ++ let Inst{11-10} = ui2; ++ let Inst{9-5} = xj; ++ let Inst{4-0} = rd; ++} ++ ++class LASX_I1_U op>: LASXInst { ++ bits<5> xd; ++ bits<5> xj; ++ bits<1> ui1; ++ ++ let Inst{31-11} = op; ++ let Inst{10} = ui1; ++ let Inst{9-5} = xj; ++ let Inst{4-0} = xd; ++} ++ ++class LASX_I2_U op>: LASXInst { ++ bits<5> xd; ++ bits<5> xj; ++ bits<2> ui2; ++ ++ let Inst{31-12} = op; ++ let Inst{11-10} = ui2; ++ let Inst{9-5} = xj; ++ let Inst{4-0} = xd; ++} ++ ++class LASX_I7_U op>: LASXInst { ++ bits<5> xd; ++ bits<5> xj; ++ bits<7> ui7; ++ ++ let Inst{31-17} = op; ++ let Inst{16-10} = ui7; ++ let Inst{9-5} = xj; ++ let Inst{4-0} = xd; ++} ++ ++class LASX_1R_I13 op>: LASXInst { ++ bits<13> i13; ++ bits<5> xd; ++ ++ let Inst{31-18} = op; ++ let Inst{17-5} = i13; ++ let Inst{4-0} = xd; ++} ++ ++class LASX_I8_U op>: LASXInst { ++ bits<5> xd; ++ bits<5> xj; ++ bits<8> ui8; ++ ++ let Inst{31-18} = op; ++ let Inst{17-10} = ui8; ++ let Inst{9-5} = xj; ++ let Inst{4-0} = xd; ++} ++ ++ ++////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ++class LASX_I1_R_U op>: LASXInst { ++ bits<5> xd; ++ bits<5> rj; ++ bits<1> ui1; ++ ++ let Inst{31-11} = op; ++ let Inst{10} = ui1; ++ let Inst{9-5} = rj; ++ let Inst{4-0} = xd; ++} ++ ++class LASX_I4_R_U op>: LASXInst { ++ bits<5> xd; ++ bits<5> rj; ++ bits<4> ui4; ++ ++ let Inst{31-14} = op; ++ let Inst{13-10} = ui4; ++ let Inst{9-5} = rj; ++ let Inst{4-0} = xd; ++} ++ ++class LASX_ELM_COPY_B op>: LASXInst { ++ bits<5> rd; ++ bits<5> xj; ++ bits<4> ui4; ++ ++ let Inst{31-14} = op; ++ let Inst{13-10} = ui4; ++ let Inst{9-5} = xj; ++ let Inst{4-0} = rd; ++} ++ ++class LASX_ELM_COPY_D op>: LASXInst { ++ bits<5> rd; ++ bits<5> xj; ++ bits<1> ui1; ++ ++ let Inst{31-11} = op; ++ let Inst{10} = ui1; ++ let Inst{9-5} = xj; ++ let Inst{4-0} = rd; ++} ++ ++class LASX_Addr_SI8_idx1 op>: LASXInst { ++ bits<5> xd; ++ bits<13> addr; ++ bits<1> idx; ++ ++ let Inst{31-19} = op; ++ let Inst{18-11} = addr{7-0}; ++ let Inst{10} = idx; ++ let Inst{9-5} = addr{12-8}; ++ let Inst{4-0} = xd; ++} ++ ++class LASX_1R_I13_I10 op>: LASXInst { ++ bits<10> i10; ++ bits<5> xd; ++ ++ let Inst{31-15} = op; ++ let Inst{14-5} = i10; ++ let Inst{4-0} = xd; ++} ++ ++ ++ ++ ++ ++ +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchLASXInstrInfo.td b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchLASXInstrInfo.td +new file mode 100644 +index 00000000000..525da15c9fe +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchLASXInstrInfo.td +@@ -0,0 +1,5644 @@ ++//===- LoongArchLASXInstrInfo.td - loongson LASX instructions -*- tablegen ------------*-=// ++// ++// The LLVM Compiler Infrastructure ++// ++// This file is distributed under the University of Illinois Open Source ++// License. See LICENSE.TXT for details. ++// ++//===----------------------------------------------------------------------===// ++// ++// This file describes loongson ASX instructions. ++// ++//===----------------------------------------------------------------------===// ++def SDT_XVPERMI : SDTypeProfile<1, 2, [SDTCisVec<0>, SDTCisInt<0>, ++ SDTCisSameAs<0, 1>, ++ SDTCisVT<2, i32>]>; ++def SDT_XVSHFI : SDTypeProfile<1, 3, [SDTCisInt<0>, SDTCisVec<0>, ++ SDTCisSameAs<0, 1>, SDTCisSameAs<1, 2>, ++ SDTCisVT<3, i32>]>; ++def SDT_XVBROADCAST : SDTypeProfile<1, 1, [SDTCisVec<0>]>; ++ ++def SDT_INSVE : SDTypeProfile<1, 3, [SDTCisVec<0>, SDTCisSameAs<0, 1>, ++ SDTCisSameAs<1, 2>, ++ SDTCisVT<3, i32>]>; ++ ++def SDT_XVPICKVE : SDTypeProfile<1, 3, [SDTCisVec<0>, SDTCisSameAs<0, 1>, ++ SDTCisSameAs<1, 2>, ++ SDTCisVT<3, i32>]>; ++ ++def SDT_XVSHUF4I : SDTypeProfile<1, 3, [SDTCisVec<0>, SDTCisInt<0>, ++ SDTCisSameAs<0, 1>, ++ SDTCisSameAs<0, 2>, ++ SDTCisVT<3, i32>]>; ++ ++def LoongArchXVSHUFI : SDNode<"LoongArchISD::XVSHFI", SDT_XVSHFI>; ++ ++def LoongArchXVSELI : SDNode<"LoongArchISD::XVSELI", SDT_XVSHFI>; ++ ++def LoongArchXVPERMI : SDNode<"LoongArchISD::XVPERMI", SDT_XVPERMI>; ++ ++def LoongArchXVBROADCAST : SDNode<"LoongArchISD::XVBROADCAST", SDT_XVBROADCAST>; ++ ++def LoongArchINSVE : SDNode<"LoongArchISD::INSVE", SDT_INSVE>; ++ ++def LoongArchXVSHUF4I : SDNode<"LoongArchISD::XVSHUF4I", SDT_XVSHUF4I>; ++ ++def LoongArchXVPICKVE : SDNode<"LoongArchISD::XVPICKVE", SDT_INSVE>; ++ ++def xvbroadcast_v32i8 : PatFrag<(ops node:$v1), ++ (v32i8 (LoongArchXVBROADCAST node:$v1))>; ++def xvbroadcast_v16i16 : PatFrag<(ops node:$v1), ++ (v16i16 (LoongArchXVBROADCAST node:$v1))>; ++def xvbroadcast_v8i32 : PatFrag<(ops node:$v1), ++ (v8i32 (LoongArchXVBROADCAST node:$v1))>; ++def xvbroadcast_v4i64 : PatFrag<(ops node:$v1), ++ (v4i64 (LoongArchXVBROADCAST node:$v1))>; ++ ++ ++def vfseteq_v8f32 : vfsetcc_type; ++def vfseteq_v4f64 : vfsetcc_type; ++def vfsetge_v8f32 : vfsetcc_type; ++def vfsetge_v4f64 : vfsetcc_type; ++def vfsetgt_v8f32 : vfsetcc_type; ++def vfsetgt_v4f64 : vfsetcc_type; ++def vfsetle_v8f32 : vfsetcc_type; ++def vfsetle_v4f64 : vfsetcc_type; ++def vfsetlt_v8f32 : vfsetcc_type; ++def vfsetlt_v4f64 : vfsetcc_type; ++def vfsetne_v8f32 : vfsetcc_type; ++def vfsetne_v4f64 : vfsetcc_type; ++def vfsetoeq_v8f32 : vfsetcc_type; ++def vfsetoeq_v4f64 : vfsetcc_type; ++def vfsetoge_v8f32 : vfsetcc_type; ++def vfsetoge_v4f64 : vfsetcc_type; ++def vfsetogt_v8f32 : vfsetcc_type; ++def vfsetogt_v4f64 : vfsetcc_type; ++def vfsetole_v8f32 : vfsetcc_type; ++def vfsetole_v4f64 : vfsetcc_type; ++def vfsetolt_v8f32 : vfsetcc_type; ++def vfsetolt_v4f64 : vfsetcc_type; ++def vfsetone_v8f32 : vfsetcc_type; ++def vfsetone_v4f64 : vfsetcc_type; ++def vfsetord_v8f32 : vfsetcc_type; ++def vfsetord_v4f64 : vfsetcc_type; ++def vfsetun_v8f32 : vfsetcc_type; ++def vfsetun_v4f64 : vfsetcc_type; ++def vfsetueq_v8f32 : vfsetcc_type; ++def vfsetueq_v4f64 : vfsetcc_type; ++def vfsetuge_v8f32 : vfsetcc_type; ++def vfsetuge_v4f64 : vfsetcc_type; ++def vfsetugt_v8f32 : vfsetcc_type; ++def vfsetugt_v4f64 : vfsetcc_type; ++def vfsetule_v8f32 : vfsetcc_type; ++def vfsetule_v4f64 : vfsetcc_type; ++def vfsetult_v8f32 : vfsetcc_type; ++def vfsetult_v4f64 : vfsetcc_type; ++def vfsetune_v8f32 : vfsetcc_type; ++def vfsetune_v4f64 : vfsetcc_type; ++ ++def xvsplati8 : PatFrag<(ops node:$e0), ++ (v32i8 (build_vector ++ node:$e0, node:$e0, node:$e0, node:$e0, ++ node:$e0, node:$e0, node:$e0, node:$e0, ++ node:$e0, node:$e0, node:$e0, node:$e0, ++ node:$e0, node:$e0, node:$e0, node:$e0, ++ node:$e0, node:$e0, node:$e0, node:$e0, ++ node:$e0, node:$e0, node:$e0, node:$e0, ++ node:$e0, node:$e0, node:$e0, node:$e0, ++ node:$e0, node:$e0, node:$e0, node:$e0))>; ++def xvsplati16 : PatFrag<(ops node:$e0), ++ (v16i16 (build_vector ++ node:$e0, node:$e0, node:$e0, node:$e0, ++ node:$e0, node:$e0, node:$e0, node:$e0, ++ node:$e0, node:$e0, node:$e0, node:$e0, ++ node:$e0, node:$e0, node:$e0, node:$e0))>; ++def xvsplati32 : PatFrag<(ops node:$e0), ++ (v8i32 (build_vector ++ node:$e0, node:$e0, node:$e0, node:$e0, ++ node:$e0, node:$e0, node:$e0, node:$e0))>; ++def xvsplati64 : PatFrag<(ops node:$e0), ++ (v4i64 (build_vector ++ node:$e0, node:$e0, node:$e0, node:$e0))>; ++def xvsplatf32 : PatFrag<(ops node:$e0), ++ (v8f32 (build_vector node:$e0, node:$e0, ++ node:$e0, node:$e0))>; ++def xvsplatf64 : PatFrag<(ops node:$e0), ++ (v4f64 (build_vector node:$e0, node:$e0))>; ++ ++def xvsplati8_uimm3 : SplatComplexPattern; ++def xvsplati16_uimm4 : SplatComplexPattern; ++ ++def xvsplati64_uimm6 : SplatComplexPattern; ++ ++def xvsplati8_simm5 : SplatComplexPattern; ++def xvsplati16_simm5 : SplatComplexPattern; ++def xvsplati32_simm5 : SplatComplexPattern; ++def xvsplati64_simm5 : SplatComplexPattern; ++ ++def xvsplat_imm_eq_1 : PatLeaf<(build_vector), [{ ++ APInt Imm; ++ EVT EltTy = N->getValueType(0).getVectorElementType(); ++ return selectVSplat(N, Imm, EltTy.getSizeInBits()) && ++ Imm.getBitWidth() == EltTy.getSizeInBits() && Imm == 1; ++}]>; ++ ++def xvsplati64_imm_eq_1 : PatLeaf<(bitconvert (v8i32 (build_vector))), [{ ++ APInt Imm; ++ SDNode *BV = N->getOperand(0).getNode(); ++ EVT EltTy = N->getValueType(0).getVectorElementType(); ++ ++ return selectVSplat(BV, Imm, EltTy.getSizeInBits()) && ++ Imm.getBitWidth() == EltTy.getSizeInBits() && Imm == 1; ++}]>; ++ ++def xvbitclr_b : PatFrag<(ops node:$xk, node:$xa), ++ (and node:$xk, (xor (shl vsplat_imm_eq_1, node:$xa), ++ immAllOnesV))>; ++def xvbitclr_h : PatFrag<(ops node:$xk, node:$xa), ++ (and node:$xk, (xor (shl vsplat_imm_eq_1, node:$xa), ++ immAllOnesV))>; ++def xvbitclr_w : PatFrag<(ops node:$xk, node:$xa), ++ (and node:$xk, (xor (shl vsplat_imm_eq_1, node:$xa), ++ immAllOnesV))>; ++def xvbitclr_d : PatFrag<(ops node:$xk, node:$xa), ++ (and node:$xk, (xor (shl (v4i64 vsplati64_imm_eq_1), ++ node:$xa), ++ (bitconvert (v8i32 immAllOnesV))))>; ++ ++ ++ ++def xvsplati8_uimm5 : SplatComplexPattern; ++def xvsplati16_uimm5 : SplatComplexPattern; ++def xvsplati32_uimm5 : SplatComplexPattern; ++def xvsplati64_uimm5 : SplatComplexPattern; ++def xvsplati8_uimm8 : SplatComplexPattern; ++def xvsplati16_uimm8 : SplatComplexPattern; ++def xvsplati32_uimm8 : SplatComplexPattern; ++def xvsplati64_uimm8 : SplatComplexPattern; ++ ++ ++ ++def xvsplati8_uimm4 : SplatComplexPattern; ++def xvsplati16_uimm3 : SplatComplexPattern; ++def xvsplati32_uimm2 : SplatComplexPattern; ++def xvsplati64_uimm1 : SplatComplexPattern; ++ ++ ++// Patterns. ++class LASXPat pred = [HasLASX]> : ++ Pat, Requires; ++ ++class LASX_4RF { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXJ:$xj, ROXK:$xk, ROXA:$xa); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $xk, $xa"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXJ:$xj, ROXK:$xk, ROXA:$xa))]; ++} ++ ++class LASX_3RF { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXJ:$xj, ROXK:$xk); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $xk"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXJ:$xj, ROXK:$xk))]; ++} ++ ++class LASX_3R_SETCC_DESC_BASE { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXJ:$xj, ROXK:$xk); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $xk"); ++ list Pattern = [(set ROXD:$xd, (VT (vsetcc ROXJ:$xj, ROXK:$xk, CC)))]; ++} ++ ++class LASX_LD { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins MemOpnd:$addr); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $addr"); ++ list Pattern = [(set ROXD:$xd, (TyNode (OpNode Addr:$addr)))]; ++ string DecoderMethod = "DecodeLASX256Mem"; ++} ++ ++class LASX_ST { ++ dag OutOperandList = (outs); ++ dag InOperandList = (ins ROXD:$xd, MemOpnd:$addr); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $addr"); ++ list Pattern = [(OpNode (TyNode ROXD:$xd), Addr:$addr)]; ++ string DecoderMethod = "DecodeLASX256Mem"; ++} ++ ++class LASX_I8_U5_DESC_BASE { ++ dag OutOperandList = (outs); ++ dag InOperandList = (ins ROXD:$xd, PtrRC:$rj, ImmOp:$si8, uimm5:$idx); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $rj, $si8, $idx"); ++ list Pattern = [(OpNode ROXD:$xd, iPTR:$rj, Imm:$si8, immZExt5:$idx)]; ++ string DecoderMethod = "DecodeLASX256memstl"; ++} ++ ++class LASX_I8_U2_DESC_BASE { ++ dag OutOperandList = (outs); ++ dag InOperandList = (ins ROXD:$xd, PtrRC:$rj, ImmOp:$si8, uimm2:$idx); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $rj, $si8, $idx"); ++ list Pattern = [(OpNode ROXD:$xd, iPTR:$rj, Imm:$si8, immZExt2:$idx)]; ++ string DecoderMethod = "DecodeLASX256memstl"; ++} ++ ++class LASX_I8_U3_DESC_BASE { ++ dag OutOperandList = (outs); ++ dag InOperandList = (ins ROXD:$xd, PtrRC:$rj, ImmOp:$si8, uimm3:$idx); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $rj, $si8, $idx"); ++ list Pattern = [(OpNode ROXD:$xd, iPTR:$rj, Imm:$si8, immZExt3:$idx)]; ++ string DecoderMethod = "DecodeLASX256memstl"; ++} ++ ++class LASX_I8_U4_DESC_BASE { ++ dag OutOperandList = (outs); ++ dag InOperandList = (ins ROXD:$xd, PtrRC:$rj, ImmOp:$si8, uimm4:$idx); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $rj, $si8, $idx"); ++ list Pattern = [(OpNode ROXD:$xd, iPTR:$rj, Imm:$si8, immZExt4:$idx)]; ++ string DecoderMethod = "DecodeLASX256memstl"; ++} ++ ++class LASX_SDX_LA { ++ dag OutOperandList = (outs); ++ dag InOperandList = (ins ROXD:$xd, PtrRC:$rj, RORK:$rk); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $rj, $rk"); ++ list Pattern = [(OpNode ROXD:$xd, iPTR:$rj, RORK:$rk)]; ++} ++ ++class LASX_3R_DESC_BASE { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXJ:$xj, ROXK:$xk); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $xk"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXJ:$xj, ROXK:$xk))]; ++} ++ ++class LASX_LDX_LA { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins PtrRC:$rj, RORK:$rk); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $rj, $rk"); ++ list Pattern = [(set ROXD:$xd, (OpNode iPTR:$rj, RORK:$rk))]; ++} ++ ++class LASX_3R_4R_DESC_BASE { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXD:$xd_in, ROXJ:$xj, ROXK:$xk); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $xk"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXD:$xd_in, ROXJ:$xj, ++ ROXK:$xk))]; ++ string Constraints = "$xd = $xd_in"; ++} ++ ++ ++class LASX_3R_VREPLVE_DESC_BASE { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXJ:$xj, GPR32Opnd:$rk); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $rk"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXJ:$xj, GPR32Opnd:$rk))]; ++} ++ ++ ++class LASX_3R_VREPLVE_DESC_BASE_N { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXJ:$xj, GPR64Opnd:$rk); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $rk"); ++ list Pattern = []; ++} ++ ++ ++class LASX_VEC_DESC_BASE { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXJ:$xj, ROXK:$xk); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $xk"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXJ:$xj, ROXK:$xk))]; ++} ++ ++ ++ ++class LASX_3RF_DESC_BASE : ++ LASX_3R_DESC_BASE; ++ ++ ++class LASX_3R_DESC_BASE1 { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXJ:$xj, ROXK:$xk); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $xk"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXJ:$xk, ROXK:$xj))]; ++} ++ ++class LASX_3RF_DESC_BASE1 : ++ LASX_3R_DESC_BASE1; ++ ++ ++ ++class LASX_3R_VSHF_DESC_BASE { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXD:$xd_in, ROXJ:$xj, ROXK:$xk); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $xk"); ++ list Pattern = [(set ROXD:$xd, (LoongArchVSHF ROXD:$xd_in, ROXJ:$xj, ++ ROXK:$xk))]; ++ string Constraints = "$xd = $xd_in"; ++} ++ ++class LASX_I5_SETCC_DESC_BASE { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXJ:$xj, SplatImm.OpClass:$si5); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $si5"); ++ list Pattern = [(set ROXD:$xd, (VT (vsetcc ROXJ:$xj, SplatImm:$si5, CC)))]; ++} ++ ++class LASX_I5_SETCC_DESC_BASE_Intrinsic { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXJ:$xj, ImmOp:$si5); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $si5"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXJ:$xj, Imm:$si5))]; ++} ++ ++ ++class LASX_I5_U_SETCC_DESC_BASE { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXJ:$xj, SplatImm.OpClass:$ui5); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $ui5"); ++ list Pattern = [(set ROXD:$xd, (VT (vsetcc ROXJ:$xj, SplatImm:$ui5, CC)))]; ++} ++ ++class LASX_I5_U_SETCC_DESC_BASE_Intrinsic { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXJ:$xj, ImmOp:$ui5); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $ui5"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXJ:$xj, Imm:$ui5))]; ++} ++ ++class LASX_VEC_PSEUDO_BASE : ++ LASXPseudo<(outs ROXD:$xd), (ins ROXJ:$xj, ROXK:$xk), ++ [(set ROXD:$xd, (OpNode ROXJ:$xj, ROXK:$xk))]>; ++ ++ ++class LASX_I5_U_DESC_BASE { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXJ:$xj, SplatImm.OpClass:$ui5); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $ui5"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXJ:$xj, SplatImm:$ui5))]; ++} ++ ++ ++class LASX_I5_U_DESC_BASE_Intrinsic { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXJ:$xj, ImmOp:$ui5); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $ui5"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXJ:$xj, Imm:$ui5))]; ++} ++ ++class LASX_U5_DESC_BASE { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXJ:$xj, uimm5:$ui5); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $ui5"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXJ:$xj, immZExt5:$ui5))]; ++} ++ ++class LASX_U5N_DESC_BASE : ++ LASX_U5_DESC_BASE; ++ ++class LASX_U5_4R_DESC_BASE { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXD:$xd_in, ROXJ:$xj, uimm5:$ui5); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $ui5"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXD:$xd_in, ROXJ:$xj, immZExt5:$ui5))]; ++ string Constraints = "$xd = $xd_in"; ++} ++ ++class LASX_2R_DESC_BASE { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXJ:$xj); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXJ:$xj))]; ++} ++ ++class LASX_SET_DESC_BASE { ++ dag OutOperandList = (outs FCFROpnd:$cd); ++ dag InOperandList = (ins ROXD:$xj); ++ string AsmString = !strconcat(instr_asm, "\t$cd, $xj"); ++ list Pattern = []; ++} ++ ++class LASX_2RF_DESC_BASE { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXJ:$xj); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXJ:$xj))]; ++} ++ ++class LASX_I5_DESC_BASE { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXJ:$xj, SplatImm.OpClass:$si5); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $si5"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXJ:$xj, SplatImm:$si5))]; ++} ++ ++class LASX_I5_DESC_BASE_Intrinsic { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXJ:$xj, ImmOp:$si5); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $si5"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXJ:$xj, Imm:$si5))]; ++} ++ ++ ++class LASX_2R_REPL_DESC_BASE { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROS:$rj); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $rj"); ++ list Pattern = [(set ROXD:$xd, (VT (OpNode ROS:$rj)))]; ++} ++ ++class LASX_XVEXTEND_DESC_BASE { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXJ:$xj); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj"); ++ list Pattern = [(set ROXD:$xd, (DTy (OpNode (STy ROXJ:$xj))))]; ++} ++ ++class LASX_RORI_U3_DESC_BASE_Intrinsic { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXJ:$xj, ImmOp:$ui3); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $ui3"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXJ:$xj, Imm:$ui3))]; ++} ++ ++class LASX_RORI_U4_DESC_BASE_Intrinsic { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXJ:$xj, ImmOp:$ui4); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $ui4"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXJ:$xj, Imm:$ui4))]; ++} ++ ++class LASX_RORI_U5_DESC_BASE_Intrinsic { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXJ:$xj, ImmOp:$ui5); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $ui5"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXJ:$xj, Imm:$ui5))]; ++} ++ ++class LASX_RORI_U6_DESC_BASE_Intrinsic { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXJ:$xj, ImmOp:$ui6); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $ui6"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXJ:$xj, Imm:$ui6))]; ++} ++ ++class LASX_BIT_3_DESC_BASE { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXJ:$xj, ImmOp:$ui3); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $ui3"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXJ:$xj, Imm:$ui3))]; ++} ++ ++class LASX_BIT_4_DESC_BASE { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXJ:$xj, ImmOp:$ui4); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $ui4"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXJ:$xj, Imm:$ui4))]; ++} ++ ++class LASX_BIT_5_DESC_BASE { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXJ:$xj, ImmOp:$ui5); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $ui5"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXJ:$xj, Imm:$ui5))]; ++} ++ ++class LASX_BIT_6_DESC_BASE { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXJ:$xj, ImmOp:$ui6); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $ui6"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXJ:$xj, Imm:$ui6))]; ++} ++ ++class LASX_BIT_2_4O_DESC_BASE { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXD:$xd_in, ROXJ:$xj, ImmOp:$ui2); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $ui2"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXD:$xd_in, ROXJ:$xj, Imm:$ui2))]; ++ string Constraints = "$xd = $xd_in"; ++} ++ ++class LASX_BIT_2_4ON : ++ LASX_BIT_2_4O_DESC_BASE; ++ ++class LASX_BIT_3_4O_DESC_BASE { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXD:$xd_in, ROXJ:$xj, ImmOp:$ui3); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $ui3"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXD:$xd_in, ROXJ:$xj, Imm:$ui3))]; ++ string Constraints = "$xd = $xd_in"; ++} ++ ++class LASX_BIT_3_4ON : ++ LASX_BIT_3_4O_DESC_BASE; ++ ++class LASX_INSERT_U3_DESC_BASE { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXD:$xd_in, ROS:$rj, ImmOp:$ui3); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $rj, $ui3"); ++ list Pattern = [(set ROXD:$xd, (VTy (insertelt (VTy ROXD:$xd_in), ROS:$rj, Imm:$ui3)))]; ++ string Constraints = "$xd = $xd_in"; ++} ++ ++class LASX_INSERT_U2_DESC_BASE { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXD:$xd_in, ROS:$rj, ImmOp:$ui2); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $rj, $ui2"); ++ list Pattern = [(set ROXD:$xd, (VTy (insertelt (VTy ROXD:$xd_in), ROS:$rj, Imm:$ui2)))]; ++ string Constraints = "$xd = $xd_in"; ++} ++ ++class LASX_COPY_U2_DESC_BASE { ++ dag OutOperandList = (outs ROD:$rd); ++ dag InOperandList = (ins ROXJ:$xj, ImmOp:$ui2); ++ string AsmString = !strconcat(instr_asm, "\t$rd, $xj, $ui2"); ++ list Pattern = [(set ROD:$rd, (OpNode (VecTy ROXJ:$xj), Imm:$ui2))]; ++} ++ ++class LASX_COPY_U3_DESC_BASE { ++ dag OutOperandList = (outs ROD:$rd); ++ dag InOperandList = (ins ROXJ:$xj, ImmOp:$ui3); ++ string AsmString = !strconcat(instr_asm, "\t$rd, $xj, $ui3"); ++ list Pattern = [(set ROD:$rd, (OpNode (VecTy ROXJ:$xj), Imm:$ui3))]; ++} ++ ++class LASX_ELM_U4_VREPLVE_DESC_BASE_Intrinsic { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXJ:$xj, uimm4:$ui4); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $ui4"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXJ:$xj, immZExt4:$ui4))]; ++} ++ ++class LASX_ELM_U3_VREPLVE_DESC_BASE_Intrinsic { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXJ:$xj, uimm3:$ui3); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $ui3"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXJ:$xj, immZExt3:$ui3))]; ++} ++ ++class LASX_ELM_U2_VREPLVE_DESC_BASE_Intrinsic { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXJ:$xj, uimm2:$ui2); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $ui2"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXJ:$xj, immZExt2:$ui2))]; ++} ++ ++class LASX_ELM_U1_VREPLVE_DESC_BASE_Intrinsic { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXJ:$xj, uimm1:$ui1); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $ui1"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXJ:$xj, immZExt1:$ui1))]; ++} ++ ++class LASX_XVBROADCAST_DESC_BASE { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXJ:$xj); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj"); ++ list Pattern = [(set ROXD:$xd, (OpNode (TyNode ROXJ:$xj)))]; ++} ++ ++class LASX_2R_U3_DESC_BASE { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXJ:$xj, uimm3:$ui3); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $ui3"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXJ:$xj, immZExt3:$ui3))]; ++} ++ ++class LASX_2R_U4_DESC_BASE { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXJ:$xj, uimm4:$ui4); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $ui4"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXJ:$xj, immZExt4:$ui4))]; ++} ++ ++class LASX_2R_U5_DESC_BASE { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXJ:$xj, uimm5:$ui5); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $ui5"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXJ:$xj, immZExt5:$ui5))]; ++} ++ ++class LASX_2R_U6_DESC_BASE { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXJ:$xj, uimm6:$ui6); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $ui6"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXJ:$xj, immZExt6:$ui6))]; ++} ++ ++class LASX_BIT_U3_VREPLVE_DESC_BASE { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXJ:$xj, SplatImm.OpClass:$ui3); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $ui3"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXJ:$xj, SplatImm:$ui3))]; ++} ++ ++class LASX_BIT_U4_VREPLVE_DESC_BASE { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXJ:$xj, SplatImm.OpClass:$ui4); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $ui4"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXJ:$xj, SplatImm:$ui4))]; ++} ++ ++class LASX_BIT_U5_VREPLVE_DESC_BASE { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXJ:$xj, SplatImm.OpClass:$ui5); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $ui5"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXJ:$xj, SplatImm:$ui5))]; ++} ++ ++class LASX_BIT_U6_VREPLVE_DESC_BASE { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXJ:$xj, SplatImm.OpClass:$ui6); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $ui6"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXJ:$xj, SplatImm:$ui6))]; ++} ++ ++class LASX_BIT_U3_VREPLVE_DESC_BASE_Intrinsic { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXJ:$xj, ImmOp:$ui3); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $ui3"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXJ:$xj, Imm:$ui3))]; ++} ++ ++class LASX_BIT_U4_VREPLVE_DESC_BASE_Intrinsic { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXJ:$xj, ImmOp:$ui4); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $ui4"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXJ:$xj, Imm:$ui4))]; ++} ++ ++class LASX_BIT_U5_VREPLVE_DESC_BASE_Intrinsic { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXJ:$xj, ImmOp:$ui5); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $ui5"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXJ:$xj, Imm:$ui5))]; ++} ++ ++class LASX_BIT_U6_VREPLVE_DESC_BASE_Intrinsic { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXJ:$xj, ImmOp:$ui6); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $ui6"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXJ:$xj, Imm:$ui6))]; ++} ++ ++class LASX_U4_DESC_BASE { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXD:$xd_in,ROXJ:$xj, ImmOp:$ui4); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $ui4"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXD:$xd_in,ROXJ:$xj, Imm:$ui4))]; ++ string Constraints = "$xd = $xd_in"; ++} ++ ++class LASX_N4_U5_DESC_BASE { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXD:$xd_in, ROXJ:$xj, ImmOp:$ui5); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $ui5"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXD:$xd_in, ROXJ:$xj, Imm:$ui5))]; ++ string Constraints = "$xd = $xd_in"; ++} ++ ++class LASX_U6_DESC_BASE { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXD:$xd_in, ROXJ:$xj, ImmOp:$ui6); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $ui6"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXD:$xd_in, ROXJ:$xj, Imm:$ui6))]; ++ string Constraints = "$xd = $xd_in"; ++} ++ ++class LASX_D_DESC_BASE { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXD:$xd_in, ROXJ:$xj, uimm7:$ui7); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $ui7"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXD:$xd_in, ROXJ:$xj, immZExt7:$ui7))]; ++ string Constraints = "$xd = $xd_in"; ++} ++ ++class LASX_2R_3R_U4_DESC_BASE { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXD:$xd_in, ROXJ:$xj, uimm4:$ui4); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $ui4"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXD:$xd_in, ROXJ:$xj, immZExt4:$ui4))]; ++ string Constraints = "$xd = $xd_in"; ++} ++ ++class LASX_2R_3R_U5_DESC_BASE { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXD:$xd_in, ROXJ:$xj, uimm5:$ui5); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $ui5"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXD:$xd_in, ROXJ:$xj, immZExt5:$ui5))]; ++ string Constraints = "$xd = $xd_in"; ++} ++ ++class LASX_2R_3R_U6_DESC_BASE { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXD:$xd_in, ROXJ:$xj, uimm6:$ui6); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $ui6"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXD:$xd_in, ROXJ:$xj, immZExt6:$ui6))]; ++ string Constraints = "$xd = $xd_in"; ++} ++ ++class LASX_2R_3R_U7_DESC_BASE { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXD:$xd_in, ROXJ:$xj, uimm7:$ui7); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $ui7"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXD:$xd_in, ROXJ:$xj, immZExt7:$ui7))]; ++ string Constraints = "$xd = $xd_in"; ++} ++ ++class LASX_2R_3R_U8_DESC_BASE { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXD:$xd_in, ROXJ:$xj, uimm8:$ui8); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $ui8"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXD:$xd_in, ROXJ:$xj, immZExt8:$ui8))]; ++ string Constraints = "$xd = $xd_in"; ++} ++ ++class LASX_2R_3R_U8_SELECT { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXD:$xd_in, ROXJ:$xj, vsplat_uimm8:$ui8); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $ui8"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXD:$xd_in, xvsplati8_uimm8:$ui8, ROXJ:$xj))]; ++ string Constraints = "$xd = $xd_in"; ++} ++ ++class LASX_I8_O4_SHF_DESC_BASE { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXD:$xd_in, ROXJ:$xj, uimm8:$ui8); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $ui8"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXD:$xd_in, ROXJ:$xj, immZExt8:$ui8))]; ++ string Constraints = "$xd = $xd_in"; ++} ++ ++class LASX_I8_SHF_DESC_BASE { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXJ:$xj, uimm8:$ui8); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $ui8"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXJ:$xj, immZExt8:$ui8))]; ++} ++ ++class LASX_2R_U8_DESC_BASE { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXJ:$xj, uimm8:$ui8); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $ui8"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXJ:$xj, immZExt8:$ui8))]; ++} ++ ++class LASX_I13_DESC_BASE { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins immOp:$i13); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $i13"); ++ list Pattern = [(set ROXD:$xd, (OpNode (Ty simm13:$i13)))]; ++ string DecoderMethod = "DecodeLASX256Mem13"; ++} ++ ++class LASX_I13_DESC_BASE_tmp { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins vsplat_simm10:$i10); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $i10"); ++ list Pattern = []; ++ bit hasSideEffects = 0; ++ string DecoderMethod = "DecodeLASX256Mem10"; ++} ++ ++class LASX_BIT_U8_DESC_BASE { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXJ:$xj, SplatImm.OpClass:$ui8); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $ui8"); ++ list Pattern = [(set ROXD:$xd, (OpNode ROXJ:$xj, SplatImm:$ui8))]; ++} ++ ++class LASX_2RN_3R_U8_DESC_BASE { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins ROXD:$xd_in, ROXJ:$xj, uimm8:$ui8); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $xj, $ui8"); ++ list Pattern = []; ++ string Constraints = "$xd = $xd_in"; ++} ++ ++ ++//encoding ++ ++def XVFMADD_S : LASX_4R<0b000010100001>, ++ LASX_4RF<"xvfmadd.s", int_loongarch_lasx_xvfmadd_s, LASX256WOpnd>; ++ ++def XVFMADD_D : LASX_4R<0b000010100010>, ++ LASX_4RF<"xvfmadd.d", int_loongarch_lasx_xvfmadd_d, LASX256DOpnd>; ++ ++ ++def XVFMSUB_S : LASX_4R<0b000010100101>, ++ LASX_4RF<"xvfmsub.s", int_loongarch_lasx_xvfmsub_s, LASX256WOpnd>; ++ ++def XVFMSUB_D : LASX_4R<0b000010100110>, ++ LASX_4RF<"xvfmsub.d", int_loongarch_lasx_xvfmsub_d, LASX256DOpnd>; ++ ++ ++def XVFNMADD_S : LASX_4R<0b000010101001>, ++ LASX_4RF<"xvfnmadd.s", int_loongarch_lasx_xvfnmadd_s, LASX256WOpnd>; ++ ++def XVFNMADD_D : LASX_4R<0b000010101010>, ++ LASX_4RF<"xvfnmadd.d", int_loongarch_lasx_xvfnmadd_d, LASX256DOpnd>; ++ ++ ++def XVFNMSUB_S : LASX_4R<0b000010101101>, ++ LASX_4RF<"xvfnmsub.s", int_loongarch_lasx_xvfnmsub_s, LASX256WOpnd>; ++ ++def XVFNMSUB_D : LASX_4R<0b000010101110>, ++ LASX_4RF<"xvfnmsub.d", int_loongarch_lasx_xvfnmsub_d, LASX256DOpnd>; ++ ++ ++// xvfmadd: xj * xk + xa ++def : LASXPat<(fma v4f64:$xj, v4f64:$xk, v4f64:$xa), ++ (XVFMADD_D $xj, $xk, $xa)>; ++ ++def : LASXPat<(fma v8f32:$xj, v8f32:$xk, v8f32:$xa), ++ (XVFMADD_S $xj, $xk, $xa)>; ++ ++ ++// xvfmsub: xj * xk - xa ++def : LASXPat<(fma v4f64:$xj, v4f64:$xk, (fneg v4f64:$xa)), ++ (XVFMSUB_D v4f64:$xj, v4f64:$xk, v4f64:$xa)>; ++ ++def : LASXPat<(fma v8f32:$xj, v8f32:$xk, (fneg v8f32:$xa)), ++ (XVFMSUB_S v8f32:$xj, v8f32:$xk, v8f32:$xa)>; ++ ++ ++// xvfnmadd: -(xj * xk + xa) ++def : LASXPat<(fma (fneg v4f64:$xj), v4f64:$xk, (fneg v4f64:$xa)), ++ (XVFNMADD_D v4f64:$xj, v4f64:$xk, v4f64:$xa)>; ++ ++def : LASXPat<(fma (fneg v8f32:$xj), v8f32:$xk, (fneg v8f32:$xa)), ++ (XVFNMADD_S v8f32:$xj, v8f32:$xk, v8f32:$xa)>; ++ ++// xvfnmsub: -(xj * xk - xa) ++def : LASXPat<(fma (fneg v4f64:$xj), v4f64:$xk, v4f64:$xa), ++ (XVFNMSUB_D v4f64:$xj, v4f64:$xk, v4f64:$xa)>; ++ ++def : LASXPat<(fma (fneg v8f32:$xj), v8f32:$xk, v8f32:$xa), ++ (XVFNMSUB_S v8f32:$xj, v8f32:$xk, v8f32:$xa)>; ++ ++ ++def XVFCMP_CAF_S : LASX_XVFCMP<0b000011001001>, ++ LASX_3RF<"xvfcmp.caf.s", int_loongarch_lasx_xvfcmp_caf_s, LASX256WOpnd>{ ++ bits<5> cond=0x0; ++ } ++ ++def XVFCMP_CAF_D : LASX_XVFCMP<0b000011001010>, ++ LASX_3RF<"xvfcmp.caf.d", int_loongarch_lasx_xvfcmp_caf_d, LASX256DOpnd>{ ++ bits<5> cond=0x0; ++ } ++ ++def XVFCMP_COR_S : LASX_XVFCMP<0b000011001001>, ++ LASX_3RF<"xvfcmp.cor.s", vfsetord_v8f32, LASX256WOpnd>{ ++ bits<5> cond=0x14; ++ } ++ ++def XVFCMP_COR_D : LASX_XVFCMP<0b000011001010>, ++ LASX_3RF<"xvfcmp.cor.d", vfsetord_v4f64, LASX256DOpnd>{ ++ bits<5> cond=0x14; ++ } ++ ++def XVFCMP_CUN_S : LASX_XVFCMP<0b000011001001>, ++ LASX_3RF<"xvfcmp.cun.s", vfsetun_v8f32, LASX256WOpnd>{ ++ bits<5> cond=0x8; ++ } ++ ++def XVFCMP_CUN_D : LASX_XVFCMP<0b000011001010>, ++ LASX_3RF<"xvfcmp.cun.d", vfsetun_v4f64, LASX256DOpnd>{ ++ bits<5> cond=0x8; ++ } ++ ++def XVFCMP_CUNE_S : LASX_XVFCMP<0b000011001001>, ++ LASX_3RF<"xvfcmp.cune.s", vfsetune_v8f32, LASX256WOpnd>{ ++ bits<5> cond=0x18; ++ } ++ ++def XVFCMP_CUNE_D : LASX_XVFCMP<0b000011001010>, ++ LASX_3RF<"xvfcmp.cune.d", vfsetune_v4f64, LASX256DOpnd>{ ++ bits<5> cond=0x18; ++ } ++ ++def XVFCMP_CUEQ_S : LASX_XVFCMP<0b000011001001>, ++ LASX_3RF<"xvfcmp.cueq.s", vfsetueq_v8f32, LASX256WOpnd>{ ++ bits<5> cond=0xc; ++ } ++ ++def XVFCMP_CUEQ_D : LASX_XVFCMP<0b000011001010>, ++ LASX_3RF<"xvfcmp.cueq.d", vfsetueq_v4f64, LASX256DOpnd>{ ++ bits<5> cond=0xc; ++ } ++ ++def XVFCMP_CEQ_S : LASX_XVFCMP<0b000011001001>, ++ LASX_3RF<"xvfcmp.ceq.s", vfsetoeq_v8f32, LASX256WOpnd>{ ++ bits<5> cond=0x4; ++ } ++ ++def XVFCMP_CEQ_D : LASX_XVFCMP<0b000011001010>, ++ LASX_3RF<"xvfcmp.ceq.d", vfsetoeq_v4f64, LASX256DOpnd>{ ++ bits<5> cond=0x4; ++ } ++ ++def XVFCMP_CNE_S : LASX_XVFCMP<0b000011001001>, ++ LASX_3RF<"xvfcmp.cne.s", vfsetone_v8f32, LASX256WOpnd>{ ++ bits<5> cond=0x10; ++ } ++ ++def XVFCMP_CNE_D : LASX_XVFCMP<0b000011001010>, ++ LASX_3RF<"xvfcmp.cne.d", vfsetone_v4f64, LASX256DOpnd>{ ++ bits<5> cond=0x10; ++ } ++ ++def XVFCMP_CLT_S : LASX_XVFCMP<0b000011001001>, ++ LASX_3RF<"xvfcmp.clt.s", vfsetolt_v8f32, LASX256WOpnd>{ ++ bits<5> cond=0x2; ++ } ++ ++def XVFCMP_CLT_D : LASX_XVFCMP<0b000011001010>, ++ LASX_3RF<"xvfcmp.clt.d", vfsetolt_v4f64, LASX256DOpnd>{ ++ bits<5> cond=0x2; ++ } ++ ++def XVFCMP_CULT_S : LASX_XVFCMP<0b000011001001>, ++ LASX_3RF<"xvfcmp.cult.s", vfsetult_v8f32, LASX256WOpnd>{ ++ bits<5> cond=0xa; ++ } ++ ++def XVFCMP_CULT_D : LASX_XVFCMP<0b000011001010>, ++ LASX_3RF<"xvfcmp.cult.d", vfsetult_v4f64, LASX256DOpnd>{ ++ bits<5> cond=0xa; ++ } ++ ++def XVFCMP_CLE_S : LASX_XVFCMP<0b000011001001>, ++ LASX_3RF<"xvfcmp.cle.s", vfsetole_v8f32, LASX256WOpnd>{ ++ bits<5> cond=0x6; ++ } ++ ++def XVFCMP_CLE_D : LASX_XVFCMP<0b000011001010>, ++ LASX_3RF<"xvfcmp.cle.d", vfsetole_v4f64, LASX256DOpnd>{ ++ bits<5> cond=0x6; ++ } ++ ++def XVFCMP_CULE_S : LASX_XVFCMP<0b000011001001>, ++ LASX_3RF<"xvfcmp.cule.s", vfsetule_v8f32, LASX256WOpnd>{ ++ bits<5> cond=0xe; ++ } ++ ++def XVFCMP_CULE_D : LASX_XVFCMP<0b000011001010>, ++ LASX_3RF<"xvfcmp.cule.d", vfsetule_v4f64, LASX256DOpnd>{ ++ bits<5> cond=0xe; ++ } ++ ++def XVFCMP_SAF_S : LASX_XVFCMP<0b000011001001>, ++ LASX_3RF<"xvfcmp.saf.s", int_loongarch_lasx_xvfcmp_saf_s, LASX256WOpnd>{ ++ bits<5> cond=0x1; ++ } ++ ++def XVFCMP_SAF_D : LASX_XVFCMP<0b000011001010>, ++ LASX_3RF<"xvfcmp.saf.d", int_loongarch_lasx_xvfcmp_saf_d, LASX256DOpnd>{ ++ bits<5> cond=0x1; ++ } ++ ++def XVFCMP_SOR_S : LASX_XVFCMP<0b000011001001>, ++ LASX_3RF<"xvfcmp.sor.s", int_loongarch_lasx_xvfcmp_sor_s, LASX256WOpnd>{ ++ bits<5> cond=0x15; ++ } ++ ++def XVFCMP_SOR_D : LASX_XVFCMP<0b000011001010>, ++ LASX_3RF<"xvfcmp.sor.d", int_loongarch_lasx_xvfcmp_sor_d, LASX256DOpnd>{ ++ bits<5> cond=0x15; ++ } ++ ++def XVFCMP_SUN_S : LASX_XVFCMP<0b000011001001>, ++ LASX_3RF<"xvfcmp.sun.s", int_loongarch_lasx_xvfcmp_sun_s, LASX256WOpnd>{ ++ bits<5> cond=0x9; ++ } ++ ++def XVFCMP_SUN_D : LASX_XVFCMP<0b000011001010>, ++ LASX_3RF<"xvfcmp.sun.d", int_loongarch_lasx_xvfcmp_sun_d, LASX256DOpnd>{ ++ bits<5> cond=0x9; ++ } ++ ++def XVFCMP_SUNE_S : LASX_XVFCMP<0b000011001001>, ++ LASX_3RF<"xvfcmp.sune.s", int_loongarch_lasx_xvfcmp_sune_s, LASX256WOpnd>{ ++ bits<5> cond=0x19; ++ } ++ ++def XVFCMP_SUNE_D : LASX_XVFCMP<0b000011001010>, ++ LASX_3RF<"xvfcmp.sune.d", int_loongarch_lasx_xvfcmp_sune_d, LASX256DOpnd>{ ++ bits<5> cond=0x19; ++ } ++ ++def XVFCMP_SUEQ_S : LASX_XVFCMP<0b000011001001>, ++ LASX_3RF<"xvfcmp.sueq.s", int_loongarch_lasx_xvfcmp_sueq_s, LASX256WOpnd>{ ++ bits<5> cond=0xd; ++ } ++ ++def XVFCMP_SUEQ_D : LASX_XVFCMP<0b000011001010>, ++ LASX_3RF<"xvfcmp.sueq.d", int_loongarch_lasx_xvfcmp_sueq_d, LASX256DOpnd>{ ++ bits<5> cond=0xd; ++ } ++ ++def XVFCMP_SEQ_S : LASX_XVFCMP<0b000011001001>, ++ LASX_3RF<"xvfcmp.seq.s", int_loongarch_lasx_xvfcmp_seq_s, LASX256WOpnd>{ ++ bits<5> cond=0x5; ++ } ++ ++def XVFCMP_SEQ_D : LASX_XVFCMP<0b000011001010>, ++ LASX_3RF<"xvfcmp.seq.d", int_loongarch_lasx_xvfcmp_seq_d, LASX256DOpnd>{ ++ bits<5> cond=0x5; ++ } ++ ++def XVFCMP_SNE_S : LASX_XVFCMP<0b000011001001>, ++ LASX_3RF<"xvfcmp.sne.s", int_loongarch_lasx_xvfcmp_sne_s, LASX256WOpnd>{ ++ bits<5> cond=0x11; ++ } ++ ++def XVFCMP_SNE_D : LASX_XVFCMP<0b000011001010>, ++ LASX_3RF<"xvfcmp.sne.d", int_loongarch_lasx_xvfcmp_sne_d, LASX256DOpnd>{ ++ bits<5> cond=0x11; ++ } ++ ++def XVFCMP_SLT_S : LASX_XVFCMP<0b000011001001>, ++ LASX_3RF<"xvfcmp.slt.s", int_loongarch_lasx_xvfcmp_slt_s, LASX256WOpnd>{ ++ bits<5> cond=0x3; ++ } ++ ++def XVFCMP_SLT_D : LASX_XVFCMP<0b000011001010>, ++ LASX_3RF<"xvfcmp.slt.d", int_loongarch_lasx_xvfcmp_slt_d, LASX256DOpnd>{ ++ bits<5> cond=0x3; ++ } ++ ++def XVFCMP_SULT_S : LASX_XVFCMP<0b000011001001>, ++ LASX_3RF<"xvfcmp.sult.s", int_loongarch_lasx_xvfcmp_sult_s, LASX256WOpnd>{ ++ bits<5> cond=0xb; ++ } ++ ++def XVFCMP_SULT_D : LASX_XVFCMP<0b000011001010>, ++ LASX_3RF<"xvfcmp.sult.d", int_loongarch_lasx_xvfcmp_sult_d, LASX256DOpnd>{ ++ bits<5> cond=0xb; ++ } ++ ++def XVFCMP_SLE_S : LASX_XVFCMP<0b000011001001>, ++ LASX_3RF<"xvfcmp.sle.s", int_loongarch_lasx_xvfcmp_sle_s, LASX256WOpnd>{ ++ bits<5> cond=0x7; ++ } ++ ++def XVFCMP_SLE_D : LASX_XVFCMP<0b000011001010>, ++ LASX_3RF<"xvfcmp.sle.d", int_loongarch_lasx_xvfcmp_sle_d, LASX256DOpnd>{ ++ bits<5> cond=0x7; ++ } ++ ++def XVFCMP_SULE_S : LASX_XVFCMP<0b000011001001>, ++ LASX_3RF<"xvfcmp.sule.s", int_loongarch_lasx_xvfcmp_sule_s, LASX256WOpnd>{ ++ bits<5> cond=0xf; ++ } ++ ++def XVFCMP_SULE_D : LASX_XVFCMP<0b000011001010>, ++ LASX_3RF<"xvfcmp.sule.d", int_loongarch_lasx_xvfcmp_sule_d, LASX256DOpnd>{ ++ bits<5> cond=0xf; ++ } ++ ++ ++def XVBITSEL_V : LASX_4R<0b000011010010>, ++ LASX_4RF<"xvbitsel.v", int_loongarch_lasx_xvbitsel_v, LASX256BOpnd>; ++ ++class LASX_BSEL_PSEUDO_BASE : ++ LASXPseudo<(outs RO:$xd), (ins RO:$xd_in, RO:$xs, RO:$xt), ++ [(set RO:$xd, (Ty (vselect RO:$xd_in, RO:$xt, RO:$xs)))]>, ++ PseudoInstExpansion<(XVBITSEL_V LASX256BOpnd:$xd, LASX256BOpnd:$xs, ++ LASX256BOpnd:$xt, LASX256BOpnd:$xd_in)> { ++ let Constraints = "$xd_in = $xd"; ++} ++ ++def XBSEL_B_PSEUDO : LASX_BSEL_PSEUDO_BASE; ++def XBSEL_H_PSEUDO : LASX_BSEL_PSEUDO_BASE; ++def XBSEL_W_PSEUDO : LASX_BSEL_PSEUDO_BASE; ++def XBSEL_D_PSEUDO : LASX_BSEL_PSEUDO_BASE; ++def XBSEL_FW_PSEUDO : LASX_BSEL_PSEUDO_BASE; ++def XBSEL_FD_PSEUDO : LASX_BSEL_PSEUDO_BASE; ++ ++ ++ ++def XVSHUF_B : LASX_4R<0b000011010110>, ++ LASX_4RF<"xvshuf.b", int_loongarch_lasx_xvshuf_b, LASX256BOpnd>; ++ ++ ++def XVLD : LASX_I12_S<0b0010110010>, ++ LASX_LD<"xvld", load, v32i8, LASX256BOpnd, mem>; ++ ++def XVST : LASX_I12_S<0b0010110011>, ++ LASX_ST<"xvst", store, v32i8, LASX256BOpnd, mem_simm12>; ++ ++ ++class LASX_LD_DESC_BASE { ++ dag OutOperandList = (outs ROXD:$xd); ++ dag InOperandList = (ins MemOpnd:$addr); ++ string AsmString = !strconcat(instr_asm, "\t$xd, $addr"); ++ list Pattern = [(set ROXD:$xd, (OpNode (TyNode (load Addr:$addr))))]; ++ string DecoderMethod = "DecodeLASX256memlsl"; ++} ++ ++ ++def XVLDREPL_B : LASX_SI12_S<0b0011001010>, ++ LASX_LD_DESC_BASE<"xvldrepl.b", xvbroadcast_v32i8, v32i8, LASX256BOpnd>; ++ ++def XVLDREPL_H : LASX_SI11_S<0b00110010010>, ++ LASX_LD_DESC_BASE<"xvldrepl.h", xvbroadcast_v16i16, v16i16, LASX256HOpnd, mem_simm11_lsl1, addrimm11lsl1>; ++ ++def XVLDREPL_W : LASX_SI10_S<0b001100100010>, ++ LASX_LD_DESC_BASE<"xvldrepl.w", xvbroadcast_v8i32, v8i32, LASX256WOpnd, mem_simm10_lsl2, addrimm10lsl2>; ++ ++def XVLDREPL_D : LASX_SI9_S<0b0011001000010>, ++ LASX_LD_DESC_BASE<"xvldrepl.d", xvbroadcast_v4i64, v4i64, LASX256DOpnd, mem_simm9_lsl3, addrimm9lsl3>; ++ ++ ++def XVSTELM_B : LASX_SI8_idx5<0b001100111>, ++ LASX_I8_U5_DESC_BASE<"xvstelm.b", int_loongarch_lasx_xvstelm_b, simm8_32, immSExt8, LASX256BOpnd, GPR32Opnd>; ++ ++def XVSTELM_H : LASX_SI8_idx4<0b0011001101>, ++ LASX_I8_U4_DESC_BASE<"xvstelm.h", int_loongarch_lasx_xvstelm_h, immSExt8_1_O, immSExt8, LASX256HOpnd, GPR32Opnd>; ++ ++def XVSTELM_W : LASX_SI8_idx3<0b00110011001>, ++ LASX_I8_U3_DESC_BASE<"xvstelm.w", int_loongarch_lasx_xvstelm_w, immSExt8_2_O, immSExt8, LASX256WOpnd, GPR32Opnd>; ++ ++def XVSTELM_D : LASX_SI8_idx2<0b001100110001>, ++ LASX_I8_U2_DESC_BASE<"xvstelm.d", int_loongarch_lasx_xvstelm_d, immSExt8_3_O, immSExt8, LASX256DOpnd, GPR32Opnd>; ++ ++let mayLoad = 1, canFoldAsLoad = 1 in { ++ def XVLDX : LASX_3R_2GP<0b00111000010010000>, ++ LASX_LDX_LA<"xvldx", int_loongarch_lasx_xvldx, GPR64Opnd, LASX256BOpnd>; ++} ++ ++let mayStore = 1 in{ ++ def XVSTX : LASX_3R_2GP<0b00111000010011000>, ++ LASX_SDX_LA<"xvstx", int_loongarch_lasx_xvstx, GPR64Opnd, LASX256BOpnd>; ++} ++ ++ ++def XVSEQ_B : LASX_3R<0b01110100000000000>, IsCommutable, ++ LASX_3R_SETCC_DESC_BASE<"xvseq.b", SETEQ, v32i8, LASX256BOpnd>; ++ ++def XVSEQ_H : LASX_3R<0b01110100000000001>, IsCommutable, ++ LASX_3R_SETCC_DESC_BASE<"xvseq.h", SETEQ, v16i16, LASX256HOpnd>; ++ ++def XVSEQ_W : LASX_3R<0b01110100000000010>, IsCommutable, ++ LASX_3R_SETCC_DESC_BASE<"xvseq.w", SETEQ, v8i32, LASX256WOpnd> ; ++ ++def XVSEQ_D : LASX_3R<0b01110100000000011>, IsCommutable, ++ LASX_3R_SETCC_DESC_BASE<"xvseq.d", SETEQ, v4i64, LASX256DOpnd>; ++ ++ ++def XVSLE_B : LASX_3R<0b01110100000000100>, ++ LASX_3R_SETCC_DESC_BASE<"xvsle.b", SETLE, v32i8, LASX256BOpnd>; ++ ++def XVSLE_H : LASX_3R<0b01110100000000101>, ++ LASX_3R_SETCC_DESC_BASE<"xvsle.h", SETLE, v16i16, LASX256HOpnd>; ++ ++def XVSLE_W : LASX_3R<0b01110100000000110>, ++ LASX_3R_SETCC_DESC_BASE<"xvsle.w", SETLE, v8i32, LASX256WOpnd>; ++ ++def XVSLE_D : LASX_3R<0b01110100000000111>, ++ LASX_3R_SETCC_DESC_BASE<"xvsle.d", SETLE, v4i64, LASX256DOpnd>; ++ ++ ++def XVSLE_BU : LASX_3R<0b01110100000001000>, ++ LASX_3R_SETCC_DESC_BASE<"xvsle.bu", SETULE, v32i8, LASX256BOpnd>; ++ ++def XVSLE_HU : LASX_3R<0b01110100000001001>, ++ LASX_3R_SETCC_DESC_BASE<"xvsle.hu", SETULE, v16i16, LASX256HOpnd>; ++ ++def XVSLE_WU : LASX_3R<0b01110100000001010>, ++ LASX_3R_SETCC_DESC_BASE<"xvsle.wu", SETULE, v8i32, LASX256WOpnd>; ++ ++def XVSLE_DU : LASX_3R<0b01110100000001011>, ++ LASX_3R_SETCC_DESC_BASE<"xvsle.du", SETULE, v4i64, LASX256DOpnd>; ++ ++ ++def XVSLT_B : LASX_3R<0b01110100000001100>, ++ LASX_3R_SETCC_DESC_BASE<"xvslt.b", SETLT, v32i8, LASX256BOpnd>; ++ ++def XVSLT_H : LASX_3R<0b01110100000001101>, ++ LASX_3R_SETCC_DESC_BASE<"xvslt.h", SETLT, v16i16, LASX256HOpnd>; ++ ++def XVSLT_W : LASX_3R<0b01110100000001110>, ++ LASX_3R_SETCC_DESC_BASE<"xvslt.w", SETLT, v8i32, LASX256WOpnd>; ++ ++def XVSLT_D : LASX_3R<0b01110100000001111>, ++ LASX_3R_SETCC_DESC_BASE<"xvslt.d", SETLT, v4i64, LASX256DOpnd>; ++ ++ ++def XVSLT_BU : LASX_3R<0b01110100000010000>, ++ LASX_3R_SETCC_DESC_BASE<"xvslt.bu", SETULT, v32i8, LASX256BOpnd>; ++ ++def XVSLT_HU : LASX_3R<0b01110100000010001>, ++ LASX_3R_SETCC_DESC_BASE<"xvslt.hu", SETULT, v16i16, LASX256HOpnd>; ++ ++def XVSLT_WU : LASX_3R<0b01110100000010010>, ++ LASX_3R_SETCC_DESC_BASE<"xvslt.wu", SETULT, v8i32, LASX256WOpnd>; ++ ++def XVSLT_DU : LASX_3R<0b01110100000010011>, ++ LASX_3R_SETCC_DESC_BASE<"xvslt.du", SETULT, v4i64, LASX256DOpnd>; ++ ++ ++def XVADD_B : LASX_3R<0b01110100000010100>, IsCommutable, ++ LASX_3R_DESC_BASE<"xvadd.b", add, LASX256BOpnd>; ++ ++def XVADD_H : LASX_3R<0b01110100000010101>, IsCommutable, ++ LASX_3R_DESC_BASE<"xvadd.h", add, LASX256HOpnd>; ++ ++def XVADD_W : LASX_3R<0b01110100000010110>, IsCommutable, ++ LASX_3R_DESC_BASE<"xvadd.w", add, LASX256WOpnd>; ++ ++def XVADD_D : LASX_3R<0b01110100000010111>, IsCommutable, ++ LASX_3R_DESC_BASE<"xvadd.d", add, LASX256DOpnd>; ++ ++ ++def XVSUB_B : LASX_3R<0b01110100000011000>, ++ LASX_3R_DESC_BASE<"xvsub.b", sub, LASX256BOpnd>; ++ ++def XVSUB_H : LASX_3R<0b01110100000011001>, ++ LASX_3R_DESC_BASE<"xvsub.h", sub, LASX256HOpnd>; ++ ++def XVSUB_W : LASX_3R<0b01110100000011010>, ++ LASX_3R_DESC_BASE<"xvsub.w", sub, LASX256WOpnd>; ++ ++def XVSUB_D : LASX_3R<0b01110100000011011>, ++ LASX_3R_DESC_BASE<"xvsub.d", sub, LASX256DOpnd>; ++ ++ ++def XVADDWEV_H_B : LASX_3R<0b01110100000111100>, ++ LASX_3R_DESC_BASE<"xvaddwev.h.b", int_loongarch_lasx_xvaddwev_h_b, LASX256HOpnd, LASX256BOpnd, LASX256BOpnd>; ++ ++def XVADDWEV_W_H : LASX_3R<0b01110100000111101>, ++ LASX_3R_DESC_BASE<"xvaddwev.w.h", int_loongarch_lasx_xvaddwev_w_h, LASX256WOpnd, LASX256HOpnd, LASX256HOpnd>; ++ ++def XVADDWEV_D_W : LASX_3R<0b01110100000111110>, ++ LASX_3R_DESC_BASE<"xvaddwev.d.w", int_loongarch_lasx_xvaddwev_d_w, LASX256DOpnd, LASX256WOpnd, LASX256WOpnd> ; ++ ++def XVADDWEV_Q_D : LASX_3R<0b01110100000111111>, ++ LASX_3R_DESC_BASE<"xvaddwev.q.d", int_loongarch_lasx_xvaddwev_q_d, LASX256DOpnd, LASX256DOpnd, LASX256DOpnd>; ++ ++ ++def XVSUBWEV_H_B : LASX_3R<0b01110100001000000>, ++ LASX_3R_DESC_BASE<"xvsubwev.h.b", int_loongarch_lasx_xvsubwev_h_b, LASX256HOpnd, LASX256BOpnd, LASX256BOpnd>; ++ ++def XVSUBWEV_W_H : LASX_3R<0b01110100001000001>, ++ LASX_3R_DESC_BASE<"xvsubwev.w.h", int_loongarch_lasx_xvsubwev_w_h, LASX256WOpnd, LASX256HOpnd, LASX256HOpnd>; ++ ++def XVSUBWEV_D_W : LASX_3R<0b01110100001000010>, ++ LASX_3R_DESC_BASE<"xvsubwev.d.w", int_loongarch_lasx_xvsubwev_d_w, LASX256DOpnd, LASX256WOpnd, LASX256WOpnd> ; ++ ++def XVSUBWEV_Q_D : LASX_3R<0b01110100001000011>, ++ LASX_3R_DESC_BASE<"xvsubwev.q.d", int_loongarch_lasx_xvsubwev_q_d, LASX256DOpnd, LASX256DOpnd, LASX256DOpnd>; ++ ++ ++def XVADDWOD_H_B : LASX_3R<0b01110100001000100>, ++ LASX_3R_DESC_BASE<"xvaddwod.h.b", int_loongarch_lasx_xvaddwod_h_b, LASX256HOpnd, LASX256BOpnd, LASX256BOpnd>; ++ ++def XVADDWOD_W_H : LASX_3R<0b01110100001000101>, ++ LASX_3R_DESC_BASE<"xvaddwod.w.h", int_loongarch_lasx_xvaddwod_w_h, LASX256WOpnd, LASX256HOpnd, LASX256HOpnd>; ++ ++def XVADDWOD_D_W : LASX_3R<0b01110100001000110>, ++ LASX_3R_DESC_BASE<"xvaddwod.d.w", int_loongarch_lasx_xvaddwod_d_w, LASX256DOpnd, LASX256WOpnd, LASX256WOpnd> ; ++ ++def XVADDWOD_Q_D : LASX_3R<0b01110100001000111>, ++ LASX_3R_DESC_BASE<"xvaddwod.q.d", int_loongarch_lasx_xvaddwod_q_d, LASX256DOpnd, LASX256DOpnd, LASX256DOpnd>; ++ ++ ++def XVSUBWOD_H_B : LASX_3R<0b01110100001001000>, ++ LASX_3R_DESC_BASE<"xvsubwod.h.b", int_loongarch_lasx_xvsubwod_h_b, LASX256HOpnd, LASX256BOpnd, LASX256BOpnd>; ++ ++def XVSUBWOD_W_H : LASX_3R<0b01110100001001001>, ++ LASX_3R_DESC_BASE<"xvsubwod.w.h", int_loongarch_lasx_xvsubwod_w_h, LASX256WOpnd, LASX256HOpnd, LASX256HOpnd>; ++ ++def XVSUBWOD_D_W : LASX_3R<0b01110100001001010>, ++ LASX_3R_DESC_BASE<"xvsubwod.d.w", int_loongarch_lasx_xvsubwod_d_w, LASX256DOpnd, LASX256WOpnd, LASX256WOpnd> ; ++ ++def XVSUBWOD_Q_D : LASX_3R<0b01110100001001011>, ++ LASX_3R_DESC_BASE<"xvsubwod.q.d", int_loongarch_lasx_xvsubwod_q_d, LASX256DOpnd, LASX256DOpnd, LASX256DOpnd>; ++ ++ ++def XVADDWEV_H_BU : LASX_3R<0b01110100001011100>, ++ LASX_3R_DESC_BASE<"xvaddwev.h.bu", int_loongarch_lasx_xvaddwev_h_bu, LASX256HOpnd, LASX256BOpnd, LASX256BOpnd>; ++ ++def XVADDWEV_W_HU : LASX_3R<0b01110100001011101>, ++ LASX_3R_DESC_BASE<"xvaddwev.w.hu", int_loongarch_lasx_xvaddwev_w_hu, LASX256WOpnd, LASX256HOpnd, LASX256HOpnd>; ++ ++def XVADDWEV_D_WU : LASX_3R<0b01110100001011110>, ++ LASX_3R_DESC_BASE<"xvaddwev.d.wu", int_loongarch_lasx_xvaddwev_d_wu, LASX256DOpnd, LASX256WOpnd, LASX256WOpnd> ; ++ ++def XVADDWEV_Q_DU : LASX_3R<0b01110100001011111>, ++ LASX_3R_DESC_BASE<"xvaddwev.q.du", int_loongarch_lasx_xvaddwev_q_du, LASX256DOpnd, LASX256DOpnd, LASX256DOpnd>; ++ ++ ++def XVSUBWEV_H_BU : LASX_3R<0b01110100001100000>, ++ LASX_3R_DESC_BASE<"xvsubwev.h.bu", int_loongarch_lasx_xvsubwev_h_bu, LASX256HOpnd, LASX256BOpnd, LASX256BOpnd>; ++ ++def XVSUBWEV_W_HU : LASX_3R<0b01110100001100001>, ++ LASX_3R_DESC_BASE<"xvsubwev.w.hu", int_loongarch_lasx_xvsubwev_w_hu, LASX256WOpnd, LASX256HOpnd, LASX256HOpnd>; ++ ++def XVSUBWEV_D_WU : LASX_3R<0b01110100001100010>, ++ LASX_3R_DESC_BASE<"xvsubwev.d.wu", int_loongarch_lasx_xvsubwev_d_wu, LASX256DOpnd, LASX256WOpnd, LASX256WOpnd> ; ++ ++def XVSUBWEV_Q_DU : LASX_3R<0b01110100001100011>, ++ LASX_3R_DESC_BASE<"xvsubwev.q.du", int_loongarch_lasx_xvsubwev_q_du, LASX256DOpnd, LASX256DOpnd, LASX256DOpnd>; ++ ++ ++def XVADDWOD_H_BU : LASX_3R<0b01110100001100100>, ++ LASX_3R_DESC_BASE<"xvaddwod.h.bu", int_loongarch_lasx_xvaddwod_h_bu, LASX256HOpnd, LASX256BOpnd, LASX256BOpnd>; ++ ++def XVADDWOD_W_HU : LASX_3R<0b01110100001100101>, ++ LASX_3R_DESC_BASE<"xvaddwod.w.hu", int_loongarch_lasx_xvaddwod_w_hu, LASX256WOpnd, LASX256HOpnd, LASX256HOpnd>; ++ ++def XVADDWOD_D_WU : LASX_3R<0b01110100001100110>, ++ LASX_3R_DESC_BASE<"xvaddwod.d.wu", int_loongarch_lasx_xvaddwod_d_wu, LASX256DOpnd, LASX256WOpnd, LASX256WOpnd> ; ++ ++def XVADDWOD_Q_DU : LASX_3R<0b01110100001100111>, ++ LASX_3R_DESC_BASE<"xvaddwod.q.du", int_loongarch_lasx_xvaddwod_q_du, LASX256DOpnd, LASX256DOpnd, LASX256DOpnd>; ++ ++ ++def XVSUBWOD_H_BU : LASX_3R<0b01110100001101000>, ++ LASX_3R_DESC_BASE<"xvsubwod.h.bu", int_loongarch_lasx_xvsubwod_h_bu, LASX256HOpnd, LASX256BOpnd, LASX256BOpnd>; ++ ++def XVSUBWOD_W_HU : LASX_3R<0b01110100001101001>, ++ LASX_3R_DESC_BASE<"xvsubwod.w.hu", int_loongarch_lasx_xvsubwod_w_hu, LASX256WOpnd, LASX256HOpnd, LASX256HOpnd>; ++ ++def XVSUBWOD_D_WU : LASX_3R<0b01110100001101010>, ++ LASX_3R_DESC_BASE<"xvsubwod.d.wu", int_loongarch_lasx_xvsubwod_d_wu, LASX256DOpnd, LASX256WOpnd, LASX256WOpnd> ; ++ ++def XVSUBWOD_Q_DU : LASX_3R<0b01110100001101011>, ++ LASX_3R_DESC_BASE<"xvsubwod.q.du", int_loongarch_lasx_xvsubwod_q_du, LASX256DOpnd, LASX256DOpnd, LASX256DOpnd>; ++ ++ ++def XVADDWEV_H_BU_B : LASX_3R<0b01110100001111100>, ++ LASX_3R_DESC_BASE<"xvaddwev.h.bu.b", int_loongarch_lasx_xvaddwev_h_bu_b, LASX256HOpnd, LASX256BOpnd, LASX256BOpnd>; ++ ++def XVADDWEV_W_HU_H : LASX_3R<0b01110100001111101>, ++ LASX_3R_DESC_BASE<"xvaddwev.w.hu.h", int_loongarch_lasx_xvaddwev_w_hu_h, LASX256WOpnd, LASX256HOpnd, LASX256HOpnd>; ++ ++def XVADDWEV_D_WU_W : LASX_3R<0b01110100001111110>, ++ LASX_3R_DESC_BASE<"xvaddwev.d.wu.w", int_loongarch_lasx_xvaddwev_d_wu_w, LASX256DOpnd, LASX256WOpnd, LASX256WOpnd> ; ++ ++def XVADDWEV_Q_DU_D : LASX_3R<0b01110100001111111>, ++ LASX_3R_DESC_BASE<"xvaddwev.q.du.d", int_loongarch_lasx_xvaddwev_q_du_d, LASX256DOpnd, LASX256DOpnd, LASX256DOpnd>; ++ ++ ++def XVADDWOD_H_BU_B : LASX_3R<0b01110100010000000>, ++ LASX_3R_DESC_BASE<"xvaddwod.h.bu.b", int_loongarch_lasx_xvaddwod_h_bu_b, LASX256HOpnd, LASX256BOpnd, LASX256BOpnd>; ++ ++def XVADDWOD_W_HU_H : LASX_3R<0b01110100010000001>, ++ LASX_3R_DESC_BASE<"xvaddwod.w.hu.h", int_loongarch_lasx_xvaddwod_w_hu_h, LASX256WOpnd, LASX256HOpnd, LASX256HOpnd>; ++ ++def XVADDWOD_D_WU_W : LASX_3R<0b01110100010000010>, ++ LASX_3R_DESC_BASE<"xvaddwod.d.wu.w", int_loongarch_lasx_xvaddwod_d_wu_w, LASX256DOpnd, LASX256WOpnd, LASX256WOpnd> ; ++ ++def XVADDWOD_Q_DU_D : LASX_3R<0b01110100010000011>, ++ LASX_3R_DESC_BASE<"xvaddwod.q.du.d", int_loongarch_lasx_xvaddwod_q_du_d, LASX256DOpnd, LASX256DOpnd, LASX256DOpnd>; ++ ++ ++def XVSADD_B : LASX_3R<0b01110100010001100>, IsCommutable, ++ LASX_3R_DESC_BASE<"xvsadd.b", saddsat, LASX256BOpnd>; ++ ++def XVSADD_H : LASX_3R<0b01110100010001101>, IsCommutable, ++ LASX_3R_DESC_BASE<"xvsadd.h", saddsat, LASX256HOpnd>; ++ ++def XVSADD_W : LASX_3R<0b01110100010001110>, IsCommutable, ++ LASX_3R_DESC_BASE<"xvsadd.w", saddsat, LASX256WOpnd>; ++ ++def XVSADD_D : LASX_3R<0b01110100010001111>, IsCommutable, ++ LASX_3R_DESC_BASE<"xvsadd.d", saddsat, LASX256DOpnd>; ++ ++ ++def XVSSUB_B : LASX_3R<0b01110100010010000>, ++ LASX_3R_DESC_BASE<"xvssub.b", ssubsat, LASX256BOpnd>; ++ ++def XVSSUB_H : LASX_3R<0b01110100010010001>, ++ LASX_3R_DESC_BASE<"xvssub.h", ssubsat, LASX256HOpnd>; ++ ++def XVSSUB_W : LASX_3R<0b01110100010010010>, ++ LASX_3R_DESC_BASE<"xvssub.w", ssubsat, LASX256WOpnd>; ++ ++def XVSSUB_D : LASX_3R<0b01110100010010011>, ++ LASX_3R_DESC_BASE<"xvssub.d", ssubsat, LASX256DOpnd>; ++ ++ ++def XVSADD_BU : LASX_3R<0b01110100010010100>, IsCommutable, ++ LASX_3R_DESC_BASE<"xvsadd.bu", uaddsat, LASX256BOpnd>; ++ ++def XVSADD_HU : LASX_3R<0b01110100010010101>, IsCommutable, ++ LASX_3R_DESC_BASE<"xvsadd.hu", uaddsat, LASX256HOpnd>; ++ ++def XVSADD_WU : LASX_3R<0b01110100010010110>, IsCommutable, ++ LASX_3R_DESC_BASE<"xvsadd.wu", uaddsat, LASX256WOpnd>; ++ ++def XVSADD_DU : LASX_3R<0b01110100010010111>, IsCommutable, ++ LASX_3R_DESC_BASE<"xvsadd.du", uaddsat, LASX256DOpnd>; ++ ++ ++def XVSSUB_BU : LASX_3R<0b01110100010011000>, ++ LASX_3R_DESC_BASE<"xvssub.bu", usubsat, LASX256BOpnd>; ++ ++def XVSSUB_HU : LASX_3R<0b01110100010011001>, ++ LASX_3R_DESC_BASE<"xvssub.hu", usubsat, LASX256HOpnd>; ++ ++def XVSSUB_WU : LASX_3R<0b01110100010011010>, ++ LASX_3R_DESC_BASE<"xvssub.wu", usubsat, LASX256WOpnd>; ++ ++def XVSSUB_DU : LASX_3R<0b01110100010011011>, ++ LASX_3R_DESC_BASE<"xvssub.du", usubsat, LASX256DOpnd>; ++ ++ ++def XVHADDW_H_B : LASX_3R<0b01110100010101000>, ++ LASX_3R_DESC_BASE<"xvhaddw.h.b", int_loongarch_lasx_xvhaddw_h_b, LASX256HOpnd, LASX256BOpnd, LASX256BOpnd>; ++ ++def XVHADDW_W_H : LASX_3R<0b01110100010101001>, ++ LASX_3R_DESC_BASE<"xvhaddw.w.h", int_loongarch_lasx_xvhaddw_w_h, LASX256WOpnd, LASX256HOpnd, LASX256HOpnd>; ++ ++def XVHADDW_D_W : LASX_3R<0b01110100010101010>, ++ LASX_3R_DESC_BASE<"xvhaddw.d.w", int_loongarch_lasx_xvhaddw_d_w, LASX256DOpnd, LASX256WOpnd, LASX256WOpnd>; ++ ++def XVHADDW_Q_D : LASX_3R<0b01110100010101011>, ++ LASX_3R_DESC_BASE<"xvhaddw.q.d", int_loongarch_lasx_xvhaddw_q_d, LASX256DOpnd, LASX256DOpnd, LASX256DOpnd>; ++ ++ ++ ++def XVHSUBW_H_B : LASX_3R<0b01110100010101100>, ++ LASX_3R_DESC_BASE<"xvhsubw.h.b", int_loongarch_lasx_xvhsubw_h_b, LASX256HOpnd, LASX256BOpnd, LASX256BOpnd>; ++ ++def XVHSUBW_W_H : LASX_3R<0b01110100010101101>, ++ LASX_3R_DESC_BASE<"xvhsubw.w.h", int_loongarch_lasx_xvhsubw_w_h, LASX256WOpnd, LASX256HOpnd, LASX256HOpnd>; ++ ++def XVHSUBW_D_W : LASX_3R<0b01110100010101110>, ++ LASX_3R_DESC_BASE<"xvhsubw.d.w", int_loongarch_lasx_xvhsubw_d_w, LASX256DOpnd, LASX256WOpnd, LASX256WOpnd>; ++ ++def XVHSUBW_Q_D : LASX_3R<0b01110100010101111>, ++ LASX_3R_DESC_BASE<"xvhsubw.q.d", int_loongarch_lasx_xvhsubw_q_d, LASX256DOpnd, LASX256DOpnd, LASX256DOpnd>; ++ ++ ++def XVHADDW_HU_BU : LASX_3R<0b01110100010110000>, ++ LASX_3R_DESC_BASE<"xvhaddw.hu.bu", int_loongarch_lasx_xvhaddw_hu_bu, LASX256HOpnd, LASX256BOpnd, LASX256BOpnd>; ++ ++def XVHADDW_WU_HU : LASX_3R<0b01110100010110001>, ++ LASX_3R_DESC_BASE<"xvhaddw.wu.hu", int_loongarch_lasx_xvhaddw_wu_hu, LASX256WOpnd, LASX256HOpnd, LASX256HOpnd>; ++ ++def XVHADDW_DU_WU : LASX_3R<0b01110100010110010>, ++ LASX_3R_DESC_BASE<"xvhaddw.du.wu", int_loongarch_lasx_xvhaddw_du_wu, LASX256DOpnd, LASX256WOpnd, LASX256WOpnd>; ++ ++def XVHADDW_QU_DU : LASX_3R<0b01110100010110011>, ++ LASX_3R_DESC_BASE<"xvhaddw.qu.du", int_loongarch_lasx_xvhaddw_qu_du, LASX256DOpnd, LASX256DOpnd, LASX256DOpnd>; ++ ++ ++ ++def XVHSUBW_HU_BU : LASX_3R<0b01110100010110100>, ++ LASX_3R_DESC_BASE<"xvhsubw.hu.bu", int_loongarch_lasx_xvhsubw_hu_bu, LASX256HOpnd, LASX256BOpnd, LASX256BOpnd>; ++ ++def XVHSUBW_WU_HU : LASX_3R<0b01110100010110101>, ++ LASX_3R_DESC_BASE<"xvhsubw.wu.hu", int_loongarch_lasx_xvhsubw_wu_hu, LASX256WOpnd, LASX256HOpnd, LASX256HOpnd>; ++ ++def XVHSUBW_DU_WU : LASX_3R<0b01110100010110110>, ++ LASX_3R_DESC_BASE<"xvhsubw.du.wu", int_loongarch_lasx_xvhsubw_du_wu, LASX256DOpnd, LASX256WOpnd, LASX256WOpnd>; ++ ++def XVHSUBW_QU_DU : LASX_3R<0b01110100010110111>, ++ LASX_3R_DESC_BASE<"xvhsubw.qu.du", int_loongarch_lasx_xvhsubw_qu_du, LASX256DOpnd, LASX256DOpnd, LASX256DOpnd>; ++ ++ ++def XVADDA_B : LASX_3R<0b01110100010111000>, IsCommutable, ++ LASX_3R_DESC_BASE<"xvadda.b", int_loongarch_lasx_xvadda_b, LASX256BOpnd>; ++ ++def XVADDA_H : LASX_3R<0b01110100010111001>, IsCommutable, ++ LASX_3R_DESC_BASE<"xvadda.h", int_loongarch_lasx_xvadda_h, LASX256HOpnd>; ++ ++def XVADDA_W : LASX_3R<0b01110100010111010>, IsCommutable, ++ LASX_3R_DESC_BASE<"xvadda.w", int_loongarch_lasx_xvadda_w, LASX256WOpnd>; ++ ++def XVADDA_D : LASX_3R<0b01110100010111011>, IsCommutable, ++ LASX_3R_DESC_BASE<"xvadda.d", int_loongarch_lasx_xvadda_d, LASX256DOpnd>; ++ ++ ++def XVABSD_B : LASX_3R<0b01110100011000000>, ++ LASX_3R_DESC_BASE<"xvabsd.b", int_loongarch_lasx_xvabsd_b, LASX256BOpnd>; ++ ++def XVABSD_H : LASX_3R<0b01110100011000001>, ++ LASX_3R_DESC_BASE<"xvabsd.h", int_loongarch_lasx_xvabsd_h, LASX256HOpnd>; ++ ++def XVABSD_W : LASX_3R<0b01110100011000010>, ++ LASX_3R_DESC_BASE<"xvabsd.w", int_loongarch_lasx_xvabsd_w, LASX256WOpnd>; ++ ++def XVABSD_D : LASX_3R<0b01110100011000011>, ++ LASX_3R_DESC_BASE<"xvabsd.d", int_loongarch_lasx_xvabsd_d, LASX256DOpnd>; ++ ++ ++def XVABSD_BU : LASX_3R<0b01110100011000100>, ++ LASX_3R_DESC_BASE<"xvabsd.bu", int_loongarch_lasx_xvabsd_bu, LASX256BOpnd>; ++ ++def XVABSD_HU : LASX_3R<0b01110100011000101>, ++ LASX_3R_DESC_BASE<"xvabsd.hu", int_loongarch_lasx_xvabsd_hu, LASX256HOpnd>; ++ ++def XVABSD_WU : LASX_3R<0b01110100011000110>, ++ LASX_3R_DESC_BASE<"xvabsd.wu", int_loongarch_lasx_xvabsd_wu, LASX256WOpnd>; ++ ++def XVABSD_DU : LASX_3R<0b01110100011000111>, ++ LASX_3R_DESC_BASE<"xvabsd.du", int_loongarch_lasx_xvabsd_du, LASX256DOpnd>; ++ ++ ++def XVAVG_B : LASX_3R<0b01110100011001000>, IsCommutable, ++ LASX_3R_DESC_BASE<"xvavg.b", int_loongarch_lasx_xvavg_b, LASX256BOpnd>; ++ ++def XVAVG_H : LASX_3R<0b01110100011001001>, IsCommutable, ++ LASX_3R_DESC_BASE<"xvavg.h", int_loongarch_lasx_xvavg_h, LASX256HOpnd>; ++ ++def XVAVG_W : LASX_3R<0b01110100011001010>, IsCommutable, ++ LASX_3R_DESC_BASE<"xvavg.w", int_loongarch_lasx_xvavg_w, LASX256WOpnd>; ++ ++def XVAVG_D : LASX_3R<0b01110100011001011>, IsCommutable, ++ LASX_3R_DESC_BASE<"xvavg.d", int_loongarch_lasx_xvavg_d, LASX256DOpnd>; ++ ++ ++def XVAVG_BU : LASX_3R<0b01110100011001100>, IsCommutable, ++ LASX_3R_DESC_BASE<"xvavg.bu", int_loongarch_lasx_xvavg_bu, LASX256BOpnd>; ++ ++def XVAVG_HU : LASX_3R<0b01110100011001101>, IsCommutable, ++ LASX_3R_DESC_BASE<"xvavg.hu", int_loongarch_lasx_xvavg_hu, LASX256HOpnd>; ++ ++def XVAVG_WU : LASX_3R<0b01110100011001110>, IsCommutable, ++ LASX_3R_DESC_BASE<"xvavg.wu", int_loongarch_lasx_xvavg_wu, LASX256WOpnd>; ++ ++def XVAVG_DU : LASX_3R<0b01110100011001111>, IsCommutable, ++ LASX_3R_DESC_BASE<"xvavg.du", int_loongarch_lasx_xvavg_du, LASX256DOpnd>; ++ ++ ++def XVAVGR_B : LASX_3R<0b01110100011010000>, IsCommutable, ++ LASX_3R_DESC_BASE<"xvavgr.b", int_loongarch_lasx_xvavgr_b, LASX256BOpnd>; ++ ++def XVAVGR_H : LASX_3R<0b01110100011010001>, IsCommutable, ++ LASX_3R_DESC_BASE<"xvavgr.h", int_loongarch_lasx_xvavgr_h, LASX256HOpnd>; ++ ++def XVAVGR_W : LASX_3R<0b01110100011010010>, IsCommutable, ++ LASX_3R_DESC_BASE<"xvavgr.w", int_loongarch_lasx_xvavgr_w, LASX256WOpnd>; ++ ++def XVAVGR_D : LASX_3R<0b01110100011010011>, IsCommutable, ++ LASX_3R_DESC_BASE<"xvavgr.d", int_loongarch_lasx_xvavgr_d, LASX256DOpnd>; ++ ++ ++def XVAVGR_BU : LASX_3R<0b01110100011010100>, IsCommutable, ++ LASX_3R_DESC_BASE<"xvavgr.bu", int_loongarch_lasx_xvavgr_bu, LASX256BOpnd>; ++ ++def XVAVGR_HU : LASX_3R<0b01110100011010101>, IsCommutable, ++ LASX_3R_DESC_BASE<"xvavgr.hu", int_loongarch_lasx_xvavgr_hu, LASX256HOpnd>; ++ ++def XVAVGR_WU : LASX_3R<0b01110100011010110>, IsCommutable, ++ LASX_3R_DESC_BASE<"xvavgr.wu", int_loongarch_lasx_xvavgr_wu, LASX256WOpnd>; ++ ++def XVAVGR_DU : LASX_3R<0b01110100011010111>, IsCommutable, ++ LASX_3R_DESC_BASE<"xvavgr.du", int_loongarch_lasx_xvavgr_du, LASX256DOpnd>; ++ ++ ++def XVMAX_B : LASX_3R<0b01110100011100000>, ++ LASX_3R_DESC_BASE<"xvmax.b", smax, LASX256BOpnd>; ++ ++def XVMAX_H : LASX_3R<0b01110100011100001>, ++ LASX_3R_DESC_BASE<"xvmax.h", smax, LASX256HOpnd>; ++ ++def XVMAX_W : LASX_3R<0b01110100011100010>, ++ LASX_3R_DESC_BASE<"xvmax.w", smax, LASX256WOpnd>; ++ ++def XVMAX_D : LASX_3R<0b01110100011100011>, ++ LASX_3R_DESC_BASE<"xvmax.d", smax, LASX256DOpnd>; ++ ++ ++def XVMIN_B : LASX_3R<0b01110100011100100>, ++ LASX_3R_DESC_BASE<"xvmin.b", smin, LASX256BOpnd>; ++ ++def XVMIN_H : LASX_3R<0b01110100011100101>, ++ LASX_3R_DESC_BASE<"xvmin.h", smin, LASX256HOpnd>; ++ ++def XVMIN_W : LASX_3R<0b01110100011100110>, ++ LASX_3R_DESC_BASE<"xvmin.w", smin, LASX256WOpnd>; ++ ++def XVMIN_D : LASX_3R<0b01110100011100111>, ++ LASX_3R_DESC_BASE<"xvmin.d", smin, LASX256DOpnd>; ++ ++ ++def XVMAX_BU : LASX_3R<0b01110100011101000>, ++ LASX_3R_DESC_BASE<"xvmax.bu", umax, LASX256BOpnd>; ++ ++def XVMAX_HU : LASX_3R<0b01110100011101001>, ++ LASX_3R_DESC_BASE<"xvmax.hu", umax, LASX256HOpnd>; ++ ++def XVMAX_WU : LASX_3R<0b01110100011101010>, ++ LASX_3R_DESC_BASE<"xvmax.wu", umax, LASX256WOpnd>; ++ ++def XVMAX_DU : LASX_3R<0b01110100011101011>, ++ LASX_3R_DESC_BASE<"xvmax.du", umax, LASX256DOpnd>; ++ ++ ++def XVMIN_BU : LASX_3R<0b01110100011101100>, ++ LASX_3R_DESC_BASE<"xvmin.bu", umin, LASX256BOpnd>; ++ ++def XVMIN_HU : LASX_3R<0b01110100011101101>, ++ LASX_3R_DESC_BASE<"xvmin.hu", umin, LASX256HOpnd>; ++ ++def XVMIN_WU : LASX_3R<0b01110100011101110>, ++ LASX_3R_DESC_BASE<"xvmin.wu", umin, LASX256WOpnd>; ++ ++def XVMIN_DU : LASX_3R<0b01110100011101111>, ++ LASX_3R_DESC_BASE<"xvmin.du", umin, LASX256DOpnd>; ++ ++ ++def XVMUL_B : LASX_3R<0b01110100100001000>, ++ LASX_3R_DESC_BASE<"xvmul.b", mul, LASX256BOpnd>, IsCommutable; ++ ++def XVMUL_H : LASX_3R<0b01110100100001001>, ++ LASX_3R_DESC_BASE<"xvmul.h", mul, LASX256HOpnd>, IsCommutable; ++ ++def XVMUL_W : LASX_3R<0b01110100100001010>, ++ LASX_3R_DESC_BASE<"xvmul.w", mul, LASX256WOpnd>, IsCommutable; ++ ++def XVMUL_D : LASX_3R<0b01110100100001011>, ++ LASX_3R_DESC_BASE<"xvmul.d", mul, LASX256DOpnd>, IsCommutable; ++ ++ ++def XVMUH_B : LASX_3R<0b01110100100001100>, ++ LASX_3R_DESC_BASE<"xvmuh.b", int_loongarch_lasx_xvmuh_b, LASX256BOpnd, LASX256BOpnd, LASX256BOpnd>; ++ ++def XVMUH_H : LASX_3R<0b01110100100001101>, ++ LASX_3R_DESC_BASE<"xvmuh.h", int_loongarch_lasx_xvmuh_h, LASX256HOpnd, LASX256HOpnd, LASX256HOpnd>; ++ ++def XVMUH_W : LASX_3R<0b01110100100001110>, ++ LASX_3R_DESC_BASE<"xvmuh.w", int_loongarch_lasx_xvmuh_w, LASX256WOpnd, LASX256WOpnd, LASX256WOpnd> ; ++ ++def XVMUH_D : LASX_3R<0b01110100100001111>, ++ LASX_3R_DESC_BASE<"xvmuh.d", int_loongarch_lasx_xvmuh_d, LASX256DOpnd, LASX256DOpnd, LASX256DOpnd>; ++ ++ ++def XVMUH_BU : LASX_3R<0b01110100100010000>, ++ LASX_3R_DESC_BASE<"xvmuh.bu", int_loongarch_lasx_xvmuh_bu, LASX256BOpnd, LASX256BOpnd, LASX256BOpnd>; ++ ++def XVMUH_HU : LASX_3R<0b01110100100010001>, ++ LASX_3R_DESC_BASE<"xvmuh.hu", int_loongarch_lasx_xvmuh_hu, LASX256HOpnd, LASX256HOpnd, LASX256HOpnd>; ++ ++def XVMUH_WU : LASX_3R<0b01110100100010010>, ++ LASX_3R_DESC_BASE<"xvmuh.wu", int_loongarch_lasx_xvmuh_wu, LASX256WOpnd, LASX256WOpnd, LASX256WOpnd> ; ++ ++def XVMUH_DU : LASX_3R<0b01110100100010011>, ++ LASX_3R_DESC_BASE<"xvmuh.du", int_loongarch_lasx_xvmuh_du, LASX256DOpnd, LASX256DOpnd, LASX256DOpnd>; ++ ++ ++def XVMULWEV_H_B : LASX_3R<0b01110100100100000>, ++ LASX_3R_DESC_BASE<"xvmulwev.h.b", int_loongarch_lasx_xvmulwev_h_b, LASX256HOpnd, LASX256BOpnd, LASX256BOpnd>; ++ ++def XVMULWEV_W_H : LASX_3R<0b01110100100100001>, ++ LASX_3R_DESC_BASE<"xvmulwev.w.h", int_loongarch_lasx_xvmulwev_w_h, LASX256WOpnd, LASX256HOpnd, LASX256HOpnd>; ++ ++def XVMULWEV_D_W : LASX_3R<0b01110100100100010>, ++ LASX_3R_DESC_BASE<"xvmulwev.d.w", int_loongarch_lasx_xvmulwev_d_w, LASX256DOpnd, LASX256WOpnd, LASX256WOpnd> ; ++ ++def XVMULWEV_Q_D : LASX_3R<0b01110100100100011>, ++ LASX_3R_DESC_BASE<"xvmulwev.q.d", int_loongarch_lasx_xvmulwev_q_d, LASX256DOpnd, LASX256DOpnd, LASX256DOpnd>; ++ ++ ++def XVMULWOD_H_B : LASX_3R<0b01110100100100100>, ++ LASX_3R_DESC_BASE<"xvmulwod.h.b", int_loongarch_lasx_xvmulwod_h_b, LASX256HOpnd, LASX256BOpnd, LASX256BOpnd>; ++ ++def XVMULWOD_W_H : LASX_3R<0b01110100100100101>, ++ LASX_3R_DESC_BASE<"xvmulwod.w.h", int_loongarch_lasx_xvmulwod_w_h, LASX256WOpnd, LASX256HOpnd, LASX256HOpnd>; ++ ++def XVMULWOD_D_W : LASX_3R<0b01110100100100110>, ++ LASX_3R_DESC_BASE<"xvmulwod.d.w", int_loongarch_lasx_xvmulwod_d_w, LASX256DOpnd, LASX256WOpnd, LASX256WOpnd> ; ++ ++def XVMULWOD_Q_D : LASX_3R<0b01110100100100111>, ++ LASX_3R_DESC_BASE<"xvmulwod.q.d", int_loongarch_lasx_xvmulwod_q_d, LASX256DOpnd, LASX256DOpnd, LASX256DOpnd>; ++ ++ ++def XVMULWEV_H_BU : LASX_3R<0b01110100100110000>, ++ LASX_3R_DESC_BASE<"xvmulwev.h.bu", int_loongarch_lasx_xvmulwev_h_bu, LASX256HOpnd, LASX256BOpnd, LASX256BOpnd>; ++ ++def XVMULWEV_W_HU : LASX_3R<0b01110100100110001>, ++ LASX_3R_DESC_BASE<"xvmulwev.w.hu", int_loongarch_lasx_xvmulwev_w_hu, LASX256WOpnd, LASX256HOpnd, LASX256HOpnd>; ++ ++def XVMULWEV_D_WU : LASX_3R<0b01110100100110010>, ++ LASX_3R_DESC_BASE<"xvmulwev.d.wu", int_loongarch_lasx_xvmulwev_d_wu, LASX256DOpnd, LASX256WOpnd, LASX256WOpnd> ; ++ ++def XVMULWEV_Q_DU : LASX_3R<0b01110100100110011>, ++ LASX_3R_DESC_BASE<"xvmulwev.q.du", int_loongarch_lasx_xvmulwev_q_du, LASX256DOpnd, LASX256DOpnd, LASX256DOpnd>; ++ ++ ++def XVMULWOD_H_BU : LASX_3R<0b01110100100110100>, ++ LASX_3R_DESC_BASE<"xvmulwod.h.bu", int_loongarch_lasx_xvmulwod_h_bu, LASX256HOpnd, LASX256BOpnd, LASX256BOpnd>; ++ ++def XVMULWOD_W_HU : LASX_3R<0b01110100100110101>, ++ LASX_3R_DESC_BASE<"xvmulwod.w.hu", int_loongarch_lasx_xvmulwod_w_hu, LASX256WOpnd, LASX256HOpnd, LASX256HOpnd>; ++ ++def XVMULWOD_D_WU : LASX_3R<0b01110100100110110>, ++ LASX_3R_DESC_BASE<"xvmulwod.d.wu", int_loongarch_lasx_xvmulwod_d_wu, LASX256DOpnd, LASX256WOpnd, LASX256WOpnd> ; ++ ++def XVMULWOD_Q_DU : LASX_3R<0b01110100100110111>, ++ LASX_3R_DESC_BASE<"xvmulwod.q.du", int_loongarch_lasx_xvmulwod_q_du, LASX256DOpnd, LASX256DOpnd, LASX256DOpnd>; ++ ++ ++def XVMULWEV_H_BU_B : LASX_3R<0b01110100101000000>, ++ LASX_3R_DESC_BASE<"xvmulwev.h.bu.b", int_loongarch_lasx_xvmulwev_h_bu_b, LASX256HOpnd, LASX256BOpnd, LASX256BOpnd>; ++ ++def XVMULWEV_W_HU_H : LASX_3R<0b01110100101000001>, ++ LASX_3R_DESC_BASE<"xvmulwev.w.hu.h", int_loongarch_lasx_xvmulwev_w_hu_h, LASX256WOpnd, LASX256HOpnd, LASX256HOpnd>; ++ ++def XVMULWEV_D_WU_W : LASX_3R<0b01110100101000010>, ++ LASX_3R_DESC_BASE<"xvmulwev.d.wu.w", int_loongarch_lasx_xvmulwev_d_wu_w, LASX256DOpnd, LASX256WOpnd, LASX256WOpnd> ; ++ ++def XVMULWEV_Q_DU_D : LASX_3R<0b01110100101000011>, ++ LASX_3R_DESC_BASE<"xvmulwev.q.du.d", int_loongarch_lasx_xvmulwev_q_du_d, LASX256DOpnd, LASX256DOpnd, LASX256DOpnd>; ++ ++ ++def XVMULWOD_H_BU_B : LASX_3R<0b01110100101000100>, ++ LASX_3R_DESC_BASE<"xvmulwod.h.bu.b", int_loongarch_lasx_xvmulwod_h_bu_b, LASX256HOpnd, LASX256BOpnd, LASX256BOpnd>; ++ ++def XVMULWOD_W_HU_H : LASX_3R<0b01110100101000101>, ++ LASX_3R_DESC_BASE<"xvmulwod.w.hu.h", int_loongarch_lasx_xvmulwod_w_hu_h, LASX256WOpnd, LASX256HOpnd, LASX256HOpnd>; ++ ++def XVMULWOD_D_WU_W : LASX_3R<0b01110100101000110>, ++ LASX_3R_DESC_BASE<"xvmulwod.d.wu.w", int_loongarch_lasx_xvmulwod_d_wu_w, LASX256DOpnd, LASX256WOpnd, LASX256WOpnd> ; ++ ++def XVMULWOD_Q_DU_D : LASX_3R<0b01110100101000111>, ++ LASX_3R_DESC_BASE<"xvmulwod.q.du.d", int_loongarch_lasx_xvmulwod_q_du_d, LASX256DOpnd, LASX256DOpnd, LASX256DOpnd>; ++ ++ ++def XVMADD_B : LASX_3R<0b01110100101010000>, ++ LASX_3R_4R_DESC_BASE<"xvmadd.b", muladd, LASX256BOpnd>; ++ ++def XVMADD_H : LASX_3R<0b01110100101010001>, ++ LASX_3R_4R_DESC_BASE<"xvmadd.h", muladd, LASX256HOpnd>; ++ ++def XVMADD_W : LASX_3R<0b01110100101010010>, ++ LASX_3R_4R_DESC_BASE<"xvmadd.w", muladd, LASX256WOpnd>; ++ ++def XVMADD_D : LASX_3R<0b01110100101010011>, ++ LASX_3R_4R_DESC_BASE<"xvmadd.d", muladd, LASX256DOpnd>; ++ ++ ++def XVMSUB_B : LASX_3R<0b01110100101010100>, ++ LASX_3R_4R_DESC_BASE<"xvmsub.b", mulsub, LASX256BOpnd>; ++ ++def XVMSUB_H : LASX_3R<0b01110100101010101>, ++ LASX_3R_4R_DESC_BASE<"xvmsub.h", mulsub, LASX256HOpnd>; ++ ++def XVMSUB_W : LASX_3R<0b01110100101010110>, ++ LASX_3R_4R_DESC_BASE<"xvmsub.w", mulsub, LASX256WOpnd>; ++ ++def XVMSUB_D : LASX_3R<0b01110100101010111>, ++ LASX_3R_4R_DESC_BASE<"xvmsub.d", mulsub, LASX256DOpnd>; ++ ++ ++def XVMADDWEV_H_B : LASX_3R<0b01110100101011000>, ++ LASX_3R_4R_DESC_BASE<"xvmaddwev.h.b", int_loongarch_lasx_xvmaddwev_h_b, LASX256HOpnd, LASX256BOpnd, LASX256BOpnd>; ++ ++def XVMADDWEV_W_H : LASX_3R<0b01110100101011001>, ++ LASX_3R_4R_DESC_BASE<"xvmaddwev.w.h", int_loongarch_lasx_xvmaddwev_w_h, LASX256WOpnd, LASX256HOpnd, LASX256HOpnd>; ++ ++def XVMADDWEV_D_W : LASX_3R<0b01110100101011010>, ++ LASX_3R_4R_DESC_BASE<"xvmaddwev.d.w", int_loongarch_lasx_xvmaddwev_d_w, LASX256DOpnd, LASX256WOpnd, LASX256WOpnd>; ++ ++def XVMADDWEV_Q_D : LASX_3R<0b01110100101011011>, ++ LASX_3R_4R_DESC_BASE<"xvmaddwev.q.d", int_loongarch_lasx_xvmaddwev_q_d, LASX256DOpnd, LASX256DOpnd, LASX256DOpnd>; ++ ++ ++def XVMADDWOD_H_B : LASX_3R<0b01110100101011100>, ++ LASX_3R_4R_DESC_BASE<"xvmaddwod.h.b", int_loongarch_lasx_xvmaddwod_h_b, LASX256HOpnd, LASX256BOpnd, LASX256BOpnd>; ++ ++def XVMADDWOD_W_H : LASX_3R<0b01110100101011101>, ++ LASX_3R_4R_DESC_BASE<"xvmaddwod.w.h", int_loongarch_lasx_xvmaddwod_w_h, LASX256WOpnd, LASX256HOpnd, LASX256HOpnd>; ++ ++def XVMADDWOD_D_W : LASX_3R<0b01110100101011110>, ++ LASX_3R_4R_DESC_BASE<"xvmaddwod.d.w", int_loongarch_lasx_xvmaddwod_d_w, LASX256DOpnd, LASX256WOpnd, LASX256WOpnd>; ++ ++def XVMADDWOD_Q_D : LASX_3R<0b01110100101011111>, ++ LASX_3R_4R_DESC_BASE<"xvmaddwod.q.d", int_loongarch_lasx_xvmaddwod_q_d, LASX256DOpnd, LASX256DOpnd, LASX256DOpnd>; ++ ++ ++def XVMADDWEV_H_BU : LASX_3R<0b01110100101101000>, ++ LASX_3R_4R_DESC_BASE<"xvmaddwev.h.bu", int_loongarch_lasx_xvmaddwev_h_bu, LASX256HOpnd, LASX256BOpnd, LASX256BOpnd>; ++ ++def XVMADDWEV_W_HU : LASX_3R<0b01110100101101001>, ++ LASX_3R_4R_DESC_BASE<"xvmaddwev.w.hu", int_loongarch_lasx_xvmaddwev_w_hu, LASX256WOpnd, LASX256HOpnd, LASX256HOpnd>; ++ ++def XVMADDWEV_D_WU : LASX_3R<0b01110100101101010>, ++ LASX_3R_4R_DESC_BASE<"xvmaddwev.d.wu", int_loongarch_lasx_xvmaddwev_d_wu, LASX256DOpnd, LASX256WOpnd, LASX256WOpnd>; ++ ++def XVMADDWEV_Q_DU : LASX_3R<0b01110100101101011>, ++ LASX_3R_4R_DESC_BASE<"xvmaddwev.q.du", int_loongarch_lasx_xvmaddwev_q_du, LASX256DOpnd, LASX256DOpnd, LASX256DOpnd>; ++ ++ ++def XVMADDWOD_H_BU : LASX_3R<0b01110100101101100>, ++ LASX_3R_4R_DESC_BASE<"xvmaddwod.h.bu", int_loongarch_lasx_xvmaddwod_h_bu, LASX256HOpnd, LASX256BOpnd, LASX256BOpnd>; ++ ++def XVMADDWOD_W_HU : LASX_3R<0b01110100101101101>, ++ LASX_3R_4R_DESC_BASE<"xvmaddwod.w.hu", int_loongarch_lasx_xvmaddwod_w_hu, LASX256WOpnd, LASX256HOpnd, LASX256HOpnd>; ++ ++def XVMADDWOD_D_WU : LASX_3R<0b01110100101101110>, ++ LASX_3R_4R_DESC_BASE<"xvmaddwod.d.wu", int_loongarch_lasx_xvmaddwod_d_wu, LASX256DOpnd, LASX256WOpnd, LASX256WOpnd>; ++ ++def XVMADDWOD_Q_DU : LASX_3R<0b01110100101101111>, ++ LASX_3R_4R_DESC_BASE<"xvmaddwod.q.du", int_loongarch_lasx_xvmaddwod_q_du, LASX256DOpnd, LASX256DOpnd, LASX256DOpnd>; ++ ++ ++def XVMADDWEV_H_BU_B : LASX_3R<0b01110100101111000>, ++ LASX_3R_4R_DESC_BASE<"xvmaddwev.h.bu.b", int_loongarch_lasx_xvmaddwev_h_bu_b, LASX256HOpnd, LASX256BOpnd, LASX256BOpnd>; ++ ++def XVMADDWEV_W_HU_H : LASX_3R<0b01110100101111001>, ++ LASX_3R_4R_DESC_BASE<"xvmaddwev.w.hu.h", int_loongarch_lasx_xvmaddwev_w_hu_h, LASX256WOpnd, LASX256HOpnd, LASX256HOpnd>; ++ ++def XVMADDWEV_D_WU_W : LASX_3R<0b01110100101111010>, ++ LASX_3R_4R_DESC_BASE<"xvmaddwev.d.wu.w", int_loongarch_lasx_xvmaddwev_d_wu_w, LASX256DOpnd, LASX256WOpnd, LASX256WOpnd>; ++ ++def XVMADDWEV_Q_DU_D : LASX_3R<0b01110100101111011>, ++ LASX_3R_4R_DESC_BASE<"xvmaddwev.q.du.d", int_loongarch_lasx_xvmaddwev_q_du_d, LASX256DOpnd, LASX256DOpnd, LASX256DOpnd>; ++ ++ ++def XVMADDWOD_H_BU_B : LASX_3R<0b01110100101111100>, ++ LASX_3R_4R_DESC_BASE<"xvmaddwod.h.bu.b", int_loongarch_lasx_xvmaddwod_h_bu_b, LASX256HOpnd, LASX256BOpnd, LASX256BOpnd>; ++ ++def XVMADDWOD_W_HU_H : LASX_3R<0b01110100101111101>, ++ LASX_3R_4R_DESC_BASE<"xvmaddwod.w.hu.h", int_loongarch_lasx_xvmaddwod_w_hu_h, LASX256WOpnd, LASX256HOpnd, LASX256HOpnd>; ++ ++def XVMADDWOD_D_WU_W : LASX_3R<0b01110100101111110>, ++ LASX_3R_4R_DESC_BASE<"xvmaddwod.d.wu.w", int_loongarch_lasx_xvmaddwod_d_wu_w, LASX256DOpnd, LASX256WOpnd, LASX256WOpnd>; ++ ++def XVMADDWOD_Q_DU_D : LASX_3R<0b01110100101111111>, ++ LASX_3R_4R_DESC_BASE<"xvmaddwod.q.du.d", int_loongarch_lasx_xvmaddwod_q_du_d, LASX256DOpnd, LASX256DOpnd, LASX256DOpnd>; ++ ++ ++def XVDIV_B : LASX_3R<0b01110100111000000>, ++ LASX_3R_DESC_BASE<"xvdiv.b", sdiv, LASX256BOpnd>; ++ ++def XVDIV_H : LASX_3R<0b01110100111000001>, ++ LASX_3R_DESC_BASE<"xvdiv.h", sdiv, LASX256HOpnd>; ++ ++def XVDIV_W : LASX_3R<0b01110100111000010>, ++ LASX_3R_DESC_BASE<"xvdiv.w", sdiv, LASX256WOpnd>; ++ ++def XVDIV_D : LASX_3R<0b01110100111000011>, ++ LASX_3R_DESC_BASE<"xvdiv.d", sdiv, LASX256DOpnd>; ++ ++ ++def XVMOD_B : LASX_3R<0b01110100111000100>, ++ LASX_3R_DESC_BASE<"xvmod.b", srem, LASX256BOpnd>; ++ ++def XVMOD_H : LASX_3R<0b01110100111000101>, ++ LASX_3R_DESC_BASE<"xvmod.h", srem, LASX256HOpnd>; ++ ++def XVMOD_W : LASX_3R<0b01110100111000110>, ++ LASX_3R_DESC_BASE<"xvmod.w", srem, LASX256WOpnd>; ++ ++def XVMOD_D : LASX_3R<0b01110100111000111>, ++ LASX_3R_DESC_BASE<"xvmod.d", srem, LASX256DOpnd>; ++ ++ ++def XVDIV_BU : LASX_3R<0b01110100111001000>, ++ LASX_3R_DESC_BASE<"xvdiv.bu", udiv, LASX256BOpnd>; ++ ++def XVDIV_HU : LASX_3R<0b01110100111001001>, ++ LASX_3R_DESC_BASE<"xvdiv.hu", udiv, LASX256HOpnd>; ++ ++def XVDIV_WU : LASX_3R<0b01110100111001010>, ++ LASX_3R_DESC_BASE<"xvdiv.wu", udiv, LASX256WOpnd>; ++ ++def XVDIV_DU : LASX_3R<0b01110100111001011>, ++ LASX_3R_DESC_BASE<"xvdiv.du", udiv, LASX256DOpnd>; ++ ++ ++def XVMOD_BU : LASX_3R<0b01110100111001100>, ++ LASX_3R_DESC_BASE<"xvmod.bu", urem, LASX256BOpnd>; ++ ++def XVMOD_HU : LASX_3R<0b01110100111001101>, ++ LASX_3R_DESC_BASE<"xvmod.hu", urem, LASX256HOpnd>; ++ ++def XVMOD_WU : LASX_3R<0b01110100111001110>, ++ LASX_3R_DESC_BASE<"xvmod.wu", urem, LASX256WOpnd>; ++ ++def XVMOD_DU : LASX_3R<0b01110100111001111>, ++ LASX_3R_DESC_BASE<"xvmod.du", urem, LASX256DOpnd>; ++ ++ ++def XVSLL_B : LASX_3R<0b01110100111010000>, ++ LASX_3R_DESC_BASE<"xvsll.b", shl, LASX256BOpnd>; ++ ++def XVSLL_H : LASX_3R<0b01110100111010001>, ++ LASX_3R_DESC_BASE<"xvsll.h", shl, LASX256HOpnd>; ++ ++def XVSLL_W : LASX_3R<0b01110100111010010>, ++ LASX_3R_DESC_BASE<"xvsll.w", shl, LASX256WOpnd>; ++ ++def XVSLL_D : LASX_3R<0b01110100111010011>, ++ LASX_3R_DESC_BASE<"xvsll.d", shl, LASX256DOpnd>; ++ ++ ++def XVSRL_B : LASX_3R<0b01110100111010100>, ++ LASX_3R_DESC_BASE<"xvsrl.b", srl, LASX256BOpnd>; ++ ++def XVSRL_H : LASX_3R<0b01110100111010101>, ++ LASX_3R_DESC_BASE<"xvsrl.h", srl, LASX256HOpnd>; ++ ++def XVSRL_W : LASX_3R<0b01110100111010110>, ++ LASX_3R_DESC_BASE<"xvsrl.w", srl, LASX256WOpnd>; ++ ++def XVSRL_D : LASX_3R<0b01110100111010111>, ++ LASX_3R_DESC_BASE<"xvsrl.d", srl, LASX256DOpnd>; ++ ++ ++def XVSRA_B : LASX_3R<0b01110100111011000>, ++ LASX_3R_DESC_BASE<"xvsra.b", sra, LASX256BOpnd>; ++ ++def XVSRA_H : LASX_3R<0b01110100111011001>, ++ LASX_3R_DESC_BASE<"xvsra.h", sra, LASX256HOpnd>; ++ ++def XVSRA_W : LASX_3R<0b01110100111011010>, ++ LASX_3R_DESC_BASE<"xvsra.w", sra, LASX256WOpnd>; ++ ++def XVSRA_D : LASX_3R<0b01110100111011011>, ++ LASX_3R_DESC_BASE<"xvsra.d", sra, LASX256DOpnd>; ++ ++ ++def XVROTR_B : LASX_3R<0b01110100111011100>, ++ LASX_3R_DESC_BASE<"xvrotr.b", int_loongarch_lasx_xvrotr_b, LASX256BOpnd>; ++ ++def XVROTR_H : LASX_3R<0b01110100111011101>, ++ LASX_3R_DESC_BASE<"xvrotr.h", int_loongarch_lasx_xvrotr_h, LASX256HOpnd>; ++ ++def XVROTR_W : LASX_3R<0b01110100111011110>, ++ LASX_3R_DESC_BASE<"xvrotr.w", int_loongarch_lasx_xvrotr_w, LASX256WOpnd>; ++ ++def XVROTR_D : LASX_3R<0b01110100111011111>, ++ LASX_3R_DESC_BASE<"xvrotr.d", int_loongarch_lasx_xvrotr_d, LASX256DOpnd>; ++ ++ ++def XVSRLR_B : LASX_3R<0b01110100111100000>, ++ LASX_3R_DESC_BASE<"xvsrlr.b", int_loongarch_lasx_xvsrlr_b, LASX256BOpnd>; ++ ++def XVSRLR_H : LASX_3R<0b01110100111100001>, ++ LASX_3R_DESC_BASE<"xvsrlr.h", int_loongarch_lasx_xvsrlr_h, LASX256HOpnd>; ++ ++def XVSRLR_W : LASX_3R<0b01110100111100010>, ++ LASX_3R_DESC_BASE<"xvsrlr.w", int_loongarch_lasx_xvsrlr_w, LASX256WOpnd>; ++ ++def XVSRLR_D : LASX_3R<0b01110100111100011>, ++ LASX_3R_DESC_BASE<"xvsrlr.d", int_loongarch_lasx_xvsrlr_d, LASX256DOpnd>; ++ ++ ++def XVSRAR_B : LASX_3R<0b01110100111100100>, ++ LASX_3R_DESC_BASE<"xvsrar.b", int_loongarch_lasx_xvsrar_b, LASX256BOpnd>; ++ ++def XVSRAR_H : LASX_3R<0b01110100111100101>, ++ LASX_3R_DESC_BASE<"xvsrar.h", int_loongarch_lasx_xvsrar_h, LASX256HOpnd>; ++ ++def XVSRAR_W : LASX_3R<0b01110100111100110>, ++ LASX_3R_DESC_BASE<"xvsrar.w", int_loongarch_lasx_xvsrar_w, LASX256WOpnd>; ++ ++def XVSRAR_D : LASX_3R<0b01110100111100111>, ++ LASX_3R_DESC_BASE<"xvsrar.d", int_loongarch_lasx_xvsrar_d, LASX256DOpnd>; ++ ++ ++def XVSRLN_B_H : LASX_3R<0b01110100111101001>, ++ LASX_3R_DESC_BASE<"xvsrln.b.h", int_loongarch_lasx_xvsrln_b_h, LASX256BOpnd, LASX256HOpnd, LASX256HOpnd>; ++ ++def XVSRLN_H_W : LASX_3R<0b01110100111101010>, ++ LASX_3R_DESC_BASE<"xvsrln.h.w", int_loongarch_lasx_xvsrln_h_w, LASX256HOpnd, LASX256WOpnd, LASX256WOpnd>; ++ ++def XVSRLN_W_D : LASX_3R<0b01110100111101011>, ++ LASX_3R_DESC_BASE<"xvsrln.w.d", int_loongarch_lasx_xvsrln_w_d, LASX256WOpnd, LASX256DOpnd, LASX256DOpnd>; ++ ++ ++def XVSRAN_B_H : LASX_3R<0b01110100111101101>, ++ LASX_3R_DESC_BASE<"xvsran.b.h", int_loongarch_lasx_xvsran_b_h, LASX256BOpnd, LASX256HOpnd, LASX256HOpnd>; ++ ++def XVSRAN_H_W : LASX_3R<0b01110100111101110>, ++ LASX_3R_DESC_BASE<"xvsran.h.w", int_loongarch_lasx_xvsran_h_w, LASX256HOpnd, LASX256WOpnd, LASX256WOpnd>; ++ ++def XVSRAN_W_D : LASX_3R<0b01110100111101111>, ++ LASX_3R_DESC_BASE<"xvsran.w.d", int_loongarch_lasx_xvsran_w_d, LASX256WOpnd, LASX256DOpnd, LASX256DOpnd>; ++ ++ ++def XVSRLRN_B_H : LASX_3R<0b01110100111110001>, ++ LASX_3R_DESC_BASE<"xvsrlrn.b.h", int_loongarch_lasx_xvsrlrn_b_h, LASX256BOpnd, LASX256HOpnd, LASX256HOpnd>; ++ ++def XVSRLRN_H_W : LASX_3R<0b01110100111110010>, ++ LASX_3R_DESC_BASE<"xvsrlrn.h.w", int_loongarch_lasx_xvsrlrn_h_w, LASX256HOpnd, LASX256WOpnd, LASX256WOpnd>; ++ ++def XVSRLRN_W_D : LASX_3R<0b01110100111110011>, ++ LASX_3R_DESC_BASE<"xvsrlrn.w.d", int_loongarch_lasx_xvsrlrn_w_d, LASX256WOpnd, LASX256DOpnd, LASX256DOpnd>; ++ ++ ++def XVSRARN_B_H : LASX_3R<0b01110100111110101>, ++ LASX_3R_DESC_BASE<"xvsrarn.b.h", int_loongarch_lasx_xvsrarn_b_h, LASX256BOpnd, LASX256HOpnd, LASX256HOpnd>; ++ ++def XVSRARN_H_W : LASX_3R<0b01110100111110110>, ++ LASX_3R_DESC_BASE<"xvsrarn.h.w", int_loongarch_lasx_xvsrarn_h_w, LASX256HOpnd, LASX256WOpnd, LASX256WOpnd>; ++ ++def XVSRARN_W_D : LASX_3R<0b01110100111110111>, ++ LASX_3R_DESC_BASE<"xvsrarn.w.d", int_loongarch_lasx_xvsrarn_w_d, LASX256WOpnd, LASX256DOpnd, LASX256DOpnd>; ++ ++ ++def XVSSRLN_B_H : LASX_3R<0b01110100111111001>, ++ LASX_3R_DESC_BASE<"xvssrln.b.h", int_loongarch_lasx_xvssrln_b_h, LASX256BOpnd, LASX256HOpnd, LASX256HOpnd>; ++ ++def XVSSRLN_H_W : LASX_3R<0b01110100111111010>, ++ LASX_3R_DESC_BASE<"xvssrln.h.w", int_loongarch_lasx_xvssrln_h_w, LASX256HOpnd, LASX256WOpnd, LASX256WOpnd>; ++ ++def XVSSRLN_W_D : LASX_3R<0b01110100111111011>, ++ LASX_3R_DESC_BASE<"xvssrln.w.d", int_loongarch_lasx_xvssrln_w_d, LASX256WOpnd, LASX256DOpnd, LASX256DOpnd>; ++ ++ ++def XVSSRAN_B_H : LASX_3R<0b01110100111111101>, ++ LASX_3R_DESC_BASE<"xvssran.b.h", int_loongarch_lasx_xvssran_b_h, LASX256BOpnd, LASX256HOpnd, LASX256HOpnd>; ++ ++def XVSSRAN_H_W : LASX_3R<0b01110100111111110>, ++ LASX_3R_DESC_BASE<"xvssran.h.w", int_loongarch_lasx_xvssran_h_w, LASX256HOpnd, LASX256WOpnd, LASX256WOpnd>; ++ ++def XVSSRAN_W_D : LASX_3R<0b01110100111111111>, ++ LASX_3R_DESC_BASE<"xvssran.w.d", int_loongarch_lasx_xvssran_w_d, LASX256WOpnd, LASX256DOpnd, LASX256DOpnd>; ++ ++ ++def XVSSRLRN_B_H : LASX_3R<0b01110101000000001>, ++ LASX_3R_DESC_BASE<"xvssrlrn.b.h", int_loongarch_lasx_xvssrlrn_b_h, LASX256BOpnd, LASX256HOpnd, LASX256HOpnd>; ++ ++def XVSSRLRN_H_W : LASX_3R<0b01110101000000010>, ++ LASX_3R_DESC_BASE<"xvssrlrn.h.w", int_loongarch_lasx_xvssrlrn_h_w, LASX256HOpnd, LASX256WOpnd, LASX256WOpnd>; ++ ++def XVSSRLRN_W_D : LASX_3R<0b01110101000000011>, ++ LASX_3R_DESC_BASE<"xvssrlrn.w.d", int_loongarch_lasx_xvssrlrn_w_d, LASX256WOpnd, LASX256DOpnd, LASX256DOpnd>; ++ ++ ++def XVSSRARN_B_H : LASX_3R<0b01110101000000101>, ++ LASX_3R_DESC_BASE<"xvssrarn.b.h", int_loongarch_lasx_xvssrarn_b_h, LASX256BOpnd, LASX256HOpnd, LASX256HOpnd>; ++ ++def XVSSRARN_H_W : LASX_3R<0b01110101000000110>, ++ LASX_3R_DESC_BASE<"xvssrarn.h.w", int_loongarch_lasx_xvssrarn_h_w, LASX256HOpnd, LASX256WOpnd, LASX256WOpnd>; ++ ++def XVSSRARN_W_D : LASX_3R<0b01110101000000111>, ++ LASX_3R_DESC_BASE<"xvssrarn.w.d", int_loongarch_lasx_xvssrarn_w_d, LASX256WOpnd, LASX256DOpnd, LASX256DOpnd>; ++ ++ ++def XVSSRLN_BU_H : LASX_3R<0b01110101000001001>, ++ LASX_3R_DESC_BASE<"xvssrln.bu.h", int_loongarch_lasx_xvssrln_bu_h, LASX256BOpnd, LASX256HOpnd, LASX256HOpnd>; ++ ++def XVSSRLN_HU_W : LASX_3R<0b01110101000001010>, ++ LASX_3R_DESC_BASE<"xvssrln.hu.w", int_loongarch_lasx_xvssrln_hu_w, LASX256HOpnd, LASX256WOpnd, LASX256WOpnd>; ++ ++def XVSSRLN_WU_D : LASX_3R<0b01110101000001011>, ++ LASX_3R_DESC_BASE<"xvssrln.wu.d", int_loongarch_lasx_xvssrln_wu_d, LASX256WOpnd, LASX256DOpnd, LASX256DOpnd>; ++ ++ ++def XVSSRAN_BU_H : LASX_3R<0b01110101000001101>, ++ LASX_3R_DESC_BASE<"xvssran.bu.h", int_loongarch_lasx_xvssran_bu_h, LASX256BOpnd, LASX256HOpnd, LASX256HOpnd>; ++ ++def XVSSRAN_HU_W : LASX_3R<0b01110101000001110>, ++ LASX_3R_DESC_BASE<"xvssran.hu.w", int_loongarch_lasx_xvssran_hu_w, LASX256HOpnd, LASX256WOpnd, LASX256WOpnd>; ++ ++def XVSSRAN_WU_D : LASX_3R<0b01110101000001111>, ++ LASX_3R_DESC_BASE<"xvssran.wu.d", int_loongarch_lasx_xvssran_wu_d, LASX256WOpnd, LASX256DOpnd, LASX256DOpnd>; ++ ++ ++def XVSSRLRN_BU_H : LASX_3R<0b01110101000010001>, ++ LASX_3R_DESC_BASE<"xvssrlrn.bu.h", int_loongarch_lasx_xvssrlrn_bu_h, LASX256BOpnd, LASX256HOpnd, LASX256HOpnd>; ++ ++def XVSSRLRN_HU_W : LASX_3R<0b01110101000010010>, ++ LASX_3R_DESC_BASE<"xvssrlrn.hu.w", int_loongarch_lasx_xvssrlrn_hu_w, LASX256HOpnd, LASX256WOpnd, LASX256WOpnd>; ++ ++def XVSSRLRN_WU_D : LASX_3R<0b01110101000010011>, ++ LASX_3R_DESC_BASE<"xvssrlrn.wu.d", int_loongarch_lasx_xvssrlrn_wu_d, LASX256WOpnd, LASX256DOpnd, LASX256DOpnd>; ++ ++ ++def XVSSRARN_BU_H : LASX_3R<0b01110101000010101>, ++ LASX_3R_DESC_BASE<"xvssrarn.bu.h", int_loongarch_lasx_xvssrarn_bu_h, LASX256BOpnd, LASX256HOpnd, LASX256HOpnd>; ++ ++def XVSSRARN_HU_W : LASX_3R<0b01110101000010110>, ++ LASX_3R_DESC_BASE<"xvssrarn.hu.w", int_loongarch_lasx_xvssrarn_hu_w, LASX256HOpnd, LASX256WOpnd, LASX256WOpnd>; ++ ++def XVSSRARN_WU_D : LASX_3R<0b01110101000010111>, ++ LASX_3R_DESC_BASE<"xvssrarn.wu.d", int_loongarch_lasx_xvssrarn_wu_d, LASX256WOpnd, LASX256DOpnd, LASX256DOpnd>; ++ ++ ++def XVBITCLR_B : LASX_3R<0b01110101000011000>, ++ LASX_3R_DESC_BASE<"xvbitclr.b", xvbitclr_b, LASX256BOpnd>; ++ ++def XVBITCLR_H : LASX_3R<0b01110101000011001>, ++ LASX_3R_DESC_BASE<"xvbitclr.h", xvbitclr_h, LASX256HOpnd>; ++ ++def XVBITCLR_W : LASX_3R<0b01110101000011010>, ++ LASX_3R_DESC_BASE<"xvbitclr.w", xvbitclr_w, LASX256WOpnd>; ++ ++def XVBITCLR_D : LASX_3R<0b01110101000011011>, ++ LASX_3R_DESC_BASE<"xvbitclr.d", xvbitclr_d, LASX256DOpnd>; ++ ++ ++def XVBITSET_B : LASX_3R<0b01110101000011100>, ++ LASX_3R_DESC_BASE<"xvbitset.b", int_loongarch_lasx_xvbitset_b, LASX256BOpnd>; ++ ++def XVBITSET_H : LASX_3R<0b01110101000011101>, ++ LASX_3R_DESC_BASE<"xvbitset.h", int_loongarch_lasx_xvbitset_h, LASX256HOpnd>; ++ ++def XVBITSET_W : LASX_3R<0b01110101000011110>, ++ LASX_3R_DESC_BASE<"xvbitset.w", int_loongarch_lasx_xvbitset_w, LASX256WOpnd>; ++ ++def XVBITSET_D : LASX_3R<0b01110101000011111>, ++ LASX_3R_DESC_BASE<"xvbitset.d", int_loongarch_lasx_xvbitset_d, LASX256DOpnd>; ++ ++ ++def XVBITREV_B : LASX_3R<0b01110101000100000>, ++ LASX_3R_DESC_BASE<"xvbitrev.b", int_loongarch_lasx_xvbitrev_b, LASX256BOpnd>; ++ ++def XVBITREV_H : LASX_3R<0b01110101000100001>, ++ LASX_3R_DESC_BASE<"xvbitrev.h", int_loongarch_lasx_xvbitrev_h, LASX256HOpnd>; ++ ++def XVBITREV_W : LASX_3R<0b01110101000100010>, ++ LASX_3R_DESC_BASE<"xvbitrev.w", int_loongarch_lasx_xvbitrev_w, LASX256WOpnd>; ++ ++def XVBITREV_D : LASX_3R<0b01110101000100011>, ++ LASX_3R_DESC_BASE<"xvbitrev.d", int_loongarch_lasx_xvbitrev_d, LASX256DOpnd>; ++ ++ ++def XVPACKEV_B : LASX_3R<0b01110101000101100>, ++ LASX_3R_DESC_BASE<"xvpackev.b", LoongArchVPACKEV, LASX256BOpnd>; ++ ++def XVPACKEV_H : LASX_3R<0b01110101000101101>, ++ LASX_3R_DESC_BASE<"xvpackev.h", LoongArchVPACKEV, LASX256HOpnd>; ++ ++def XVPACKEV_W : LASX_3R<0b01110101000101110>, ++ LASX_3R_DESC_BASE<"xvpackev.w", LoongArchVPACKEV, LASX256WOpnd>; ++ ++def XVPACKEV_D : LASX_3R<0b01110101000101111>, ++ LASX_3R_DESC_BASE<"xvpackev.d", LoongArchVPACKEV, LASX256DOpnd>; ++ ++ ++def XVPACKOD_B : LASX_3R<0b01110101000110000>, ++ LASX_3R_DESC_BASE<"xvpackod.b", LoongArchVPACKOD, LASX256BOpnd>; ++ ++def XVPACKOD_H : LASX_3R<0b01110101000110001>, ++ LASX_3R_DESC_BASE<"xvpackod.h", LoongArchVPACKOD, LASX256HOpnd>; ++ ++def XVPACKOD_W : LASX_3R<0b01110101000110010>, ++ LASX_3R_DESC_BASE<"xvpackod.w", LoongArchVPACKOD, LASX256WOpnd>; ++ ++def XVPACKOD_D : LASX_3R<0b01110101000110011>, ++ LASX_3R_DESC_BASE<"xvpackod.d", LoongArchVPACKOD, LASX256DOpnd>; ++ ++ ++def XVILVL_B : LASX_3R<0b01110101000110100>, ++ LASX_3R_DESC_BASE<"xvilvl.b", LoongArchVILVL, LASX256BOpnd>; ++ ++def XVILVL_H : LASX_3R<0b01110101000110101>, ++ LASX_3R_DESC_BASE<"xvilvl.h", LoongArchVILVL, LASX256HOpnd>; ++ ++def XVILVL_W : LASX_3R<0b01110101000110110>, ++ LASX_3R_DESC_BASE<"xvilvl.w", LoongArchVILVL, LASX256WOpnd>; ++ ++def XVILVL_D : LASX_3R<0b01110101000110111>, ++ LASX_3R_DESC_BASE<"xvilvl.d", LoongArchVILVL, LASX256DOpnd>; ++ ++ ++def XVILVH_B : LASX_3R<0b01110101000111000>, ++ LASX_3R_DESC_BASE<"xvilvh.b", LoongArchVILVH, LASX256BOpnd>; ++ ++def XVILVH_H : LASX_3R<0b01110101000111001>, ++ LASX_3R_DESC_BASE<"xvilvh.h", LoongArchVILVH, LASX256HOpnd>; ++ ++def XVILVH_W : LASX_3R<0b01110101000111010>, ++ LASX_3R_DESC_BASE<"xvilvh.w", LoongArchVILVH, LASX256WOpnd>; ++ ++def XVILVH_D : LASX_3R<0b01110101000111011>, ++ LASX_3R_DESC_BASE<"xvilvh.d", LoongArchVILVH, LASX256DOpnd>; ++ ++ ++def XVPICKEV_B : LASX_3R<0b01110101000111100>, ++ LASX_3R_DESC_BASE<"xvpickev.b", LoongArchVPICKEV, LASX256BOpnd>; ++ ++def XVPICKEV_H : LASX_3R<0b01110101000111101>, ++ LASX_3R_DESC_BASE<"xvpickev.h", LoongArchVPICKEV, LASX256HOpnd>; ++ ++def XVPICKEV_W : LASX_3R<0b01110101000111110>, ++ LASX_3R_DESC_BASE<"xvpickev.w", LoongArchVPICKEV, LASX256WOpnd>; ++ ++def XVPICKEV_D : LASX_3R<0b01110101000111111>, ++ LASX_3R_DESC_BASE<"xvpickev.d", LoongArchVPICKEV, LASX256DOpnd>; ++ ++ ++def XVPICKOD_B : LASX_3R<0b01110101001000000>, ++ LASX_3R_DESC_BASE<"xvpickod.b", LoongArchVPICKOD, LASX256BOpnd>; ++ ++def XVPICKOD_H : LASX_3R<0b01110101001000001>, ++ LASX_3R_DESC_BASE<"xvpickod.h", LoongArchVPICKOD, LASX256HOpnd>; ++ ++def XVPICKOD_W : LASX_3R<0b01110101001000010>, ++ LASX_3R_DESC_BASE<"xvpickod.w", LoongArchVPICKOD, LASX256WOpnd>; ++ ++def XVPICKOD_D : LASX_3R<0b01110101001000011>, ++ LASX_3R_DESC_BASE<"xvpickod.d", LoongArchVPICKOD, LASX256DOpnd>; ++ ++ ++def XVREPLVE_B : LASX_3R_1GP<0b01110101001000100>, ++ LASX_3R_VREPLVE_DESC_BASE<"xvreplve.b", int_loongarch_lasx_xvreplve_b, LASX256BOpnd>; ++ ++def XVREPLVE_H : LASX_3R_1GP<0b01110101001000101>, ++ LASX_3R_VREPLVE_DESC_BASE<"xvreplve.h", int_loongarch_lasx_xvreplve_h, LASX256HOpnd>; ++ ++def XVREPLVE_W : LASX_3R_1GP<0b01110101001000110>, ++ LASX_3R_VREPLVE_DESC_BASE<"xvreplve.w", int_loongarch_lasx_xvreplve_w, LASX256WOpnd>; ++ ++def XVREPLVE_D : LASX_3R_1GP<0b01110101001000111>, ++ LASX_3R_VREPLVE_DESC_BASE<"xvreplve.d", int_loongarch_lasx_xvreplve_d, LASX256DOpnd>; ++ ++ ++def XVAND_V : LASX_3R<0b01110101001001100>, ++ LASX_VEC_DESC_BASE<"xvand.v", and, LASX256BOpnd>; ++class XAND_V_H_PSEUDO_DESC : LASX_VEC_PSEUDO_BASE; ++class XAND_V_W_PSEUDO_DESC : LASX_VEC_PSEUDO_BASE; ++class XAND_V_D_PSEUDO_DESC : LASX_VEC_PSEUDO_BASE; ++ ++def XAND_V_H_PSEUDO : XAND_V_H_PSEUDO_DESC, ++ PseudoInstExpansion<(XVAND_V LASX256BOpnd:$xd, ++ LASX256BOpnd:$xj, ++ LASX256BOpnd:$xk)>; ++def XAND_V_W_PSEUDO : XAND_V_W_PSEUDO_DESC, ++ PseudoInstExpansion<(XVAND_V LASX256BOpnd:$xd, ++ LASX256BOpnd:$xj, ++ LASX256BOpnd:$xk)>; ++def XAND_V_D_PSEUDO : XAND_V_D_PSEUDO_DESC, ++ PseudoInstExpansion<(XVAND_V LASX256BOpnd:$xd, ++ LASX256BOpnd:$xj, ++ LASX256BOpnd:$xk)>; ++ ++ ++def XVOR_V : LASX_3R<0b01110101001001101>, ++ LASX_VEC_DESC_BASE<"xvor.v", or, LASX256BOpnd>; ++class X_OR_V_H_PSEUDO_DESC : LASX_VEC_PSEUDO_BASE; ++class X_OR_V_W_PSEUDO_DESC : LASX_VEC_PSEUDO_BASE; ++class X_OR_V_D_PSEUDO_DESC : LASX_VEC_PSEUDO_BASE; ++ ++def X_OR_V_H_PSEUDO : X_OR_V_H_PSEUDO_DESC, ++ PseudoInstExpansion<(XVOR_V LASX256BOpnd:$xd, ++ LASX256BOpnd:$xj, ++ LASX256BOpnd:$xk)>; ++def X_OR_V_W_PSEUDO : X_OR_V_W_PSEUDO_DESC, ++ PseudoInstExpansion<(XVOR_V LASX256BOpnd:$xd, ++ LASX256BOpnd:$xj, ++ LASX256BOpnd:$xk)>; ++def X_OR_V_D_PSEUDO : X_OR_V_D_PSEUDO_DESC, ++ PseudoInstExpansion<(XVOR_V LASX256BOpnd:$xd, ++ LASX256BOpnd:$xj, ++ LASX256BOpnd:$xk)>; ++ ++ ++def XVXOR_V : LASX_3R<0b01110101001001110>, ++ LASX_VEC_DESC_BASE<"xvxor.v", xor, LASX256BOpnd>; ++class XXOR_V_H_PSEUDO_DESC : LASX_VEC_PSEUDO_BASE; ++class XXOR_V_W_PSEUDO_DESC : LASX_VEC_PSEUDO_BASE; ++class XXOR_V_D_PSEUDO_DESC : LASX_VEC_PSEUDO_BASE; ++ ++def XXOR_V_H_PSEUDO : XXOR_V_H_PSEUDO_DESC, ++ PseudoInstExpansion<(XVXOR_V LASX256BOpnd:$xd, ++ LASX256BOpnd:$xj, ++ LASX256BOpnd:$xk)>; ++def XXOR_V_W_PSEUDO : XXOR_V_W_PSEUDO_DESC, ++ PseudoInstExpansion<(XVXOR_V LASX256BOpnd:$xd, ++ LASX256BOpnd:$xj, ++ LASX256BOpnd:$xk)>; ++def XXOR_V_D_PSEUDO : XXOR_V_D_PSEUDO_DESC, ++ PseudoInstExpansion<(XVXOR_V LASX256BOpnd:$xd, ++ LASX256BOpnd:$xj, ++ LASX256BOpnd:$xk)>; ++ ++ ++def XVNOR_V : LASX_3R<0b01110101001001111>, ++ LASX_VEC_DESC_BASE<"xvnor.v", LoongArchVNOR, LASX256BOpnd>; ++ ++class XNOR_V_H_PSEUDO_DESC : LASX_VEC_PSEUDO_BASE; ++class XNOR_V_W_PSEUDO_DESC : LASX_VEC_PSEUDO_BASE; ++class XNOR_V_D_PSEUDO_DESC : LASX_VEC_PSEUDO_BASE; ++ ++def XNOR_V_H_PSEUDO : XNOR_V_H_PSEUDO_DESC, ++ PseudoInstExpansion<(XVNOR_V LASX256BOpnd:$xd, ++ LASX256BOpnd:$xj, ++ LASX256BOpnd:$xk)>; ++def XNOR_V_W_PSEUDO : XNOR_V_W_PSEUDO_DESC, ++ PseudoInstExpansion<(XVNOR_V LASX256BOpnd:$xd, ++ LASX256BOpnd:$xj, ++ LASX256BOpnd:$xk)>; ++def XNOR_V_D_PSEUDO : XNOR_V_D_PSEUDO_DESC, ++ PseudoInstExpansion<(XVNOR_V LASX256BOpnd:$xd, ++ LASX256BOpnd:$xj, ++ LASX256BOpnd:$xk)>; ++ ++ ++def XVANDN_V : LASX_3R<0b01110101001010000>, ++ LASX_3R_DESC_BASE<"xvandn.v", int_loongarch_lasx_xvandn_v, LASX256BOpnd>; ++ ++ ++class LASX_ANDN_PSEUDO_BASE : ++ LASXPseudo<(outs RO:$xd), (ins RO:$xj, RO:$xk), ++ []>, ++ PseudoInstExpansion<(XVANDN_V LASX256BOpnd:$xd, ++ LASX256BOpnd:$xj, ++ LASX256BOpnd:$xk)>; ++ ++def XVANDN_H_PSEUDO : LASX_ANDN_PSEUDO_BASE; ++def XVANDN_W_PSEUDO : LASX_ANDN_PSEUDO_BASE; ++def XVANDN_D_PSEUDO : LASX_ANDN_PSEUDO_BASE; ++ ++ ++def XVORN_V : LASX_3R<0b01110101001010001>, ++ LASX_3R_DESC_BASE<"xvorn.v", int_loongarch_lasx_xvorn_v, LASX256BOpnd>; ++ ++ ++class LASX_ORN_PSEUDO_BASE : ++ LASXPseudo<(outs RO:$xd), (ins RO:$xj, RO:$xk), ++ []>, ++ PseudoInstExpansion<(XVORN_V LASX256BOpnd:$xd, ++ LASX256BOpnd:$xj, ++ LASX256BOpnd:$xk)>; ++ ++def XVORN_H_PSEUDO : LASX_ORN_PSEUDO_BASE; ++def XVORN_W_PSEUDO : LASX_ORN_PSEUDO_BASE; ++def XVORN_D_PSEUDO : LASX_ORN_PSEUDO_BASE; ++ ++ ++def XVFRSTP_B : LASX_3R<0b01110101001010110>, ++ LASX_3R_4R_DESC_BASE<"xvfrstp.b", int_loongarch_lasx_xvfrstp_b, LASX256BOpnd>; ++ ++def XVFRSTP_H : LASX_3R<0b01110101001010111>, ++ LASX_3R_4R_DESC_BASE<"xvfrstp.h", int_loongarch_lasx_xvfrstp_h, LASX256HOpnd>; ++ ++ ++def XVADD_Q : LASX_3R<0b01110101001011010>, IsCommutable, ++ LASX_3R_DESC_BASE<"xvadd.q", int_loongarch_lasx_xvadd_q, LASX256DOpnd>; ++ ++def XVSUB_Q : LASX_3R<0b01110101001011011>, ++ LASX_3R_DESC_BASE<"xvsub.q", int_loongarch_lasx_xvsub_q, LASX256DOpnd>; ++ ++ ++def XVSIGNCOV_B : LASX_3R<0b01110101001011100>, ++ LASX_3R_DESC_BASE<"xvsigncov.b", int_loongarch_lasx_xvsigncov_b, LASX256BOpnd>; ++ ++def XVSIGNCOV_H : LASX_3R<0b01110101001011101>, ++ LASX_3R_DESC_BASE<"xvsigncov.h", int_loongarch_lasx_xvsigncov_h, LASX256HOpnd>; ++ ++def XVSIGNCOV_W : LASX_3R<0b01110101001011110>, ++ LASX_3R_DESC_BASE<"xvsigncov.w", int_loongarch_lasx_xvsigncov_w, LASX256WOpnd>; ++ ++def XVSIGNCOV_D : LASX_3R<0b01110101001011111>, ++ LASX_3R_DESC_BASE<"xvsigncov.d", int_loongarch_lasx_xvsigncov_d, LASX256DOpnd>; ++ ++ ++def XVFADD_S : LASX_3R<0b01110101001100001>, IsCommutable, ++ LASX_3RF_DESC_BASE<"xvfadd.s", fadd, LASX256WOpnd>; ++ ++def XVFADD_D : LASX_3R<0b01110101001100010>, IsCommutable, ++ LASX_3RF_DESC_BASE<"xvfadd.d", fadd, LASX256DOpnd>; ++ ++ ++def XVFSUB_S : LASX_3R<0b01110101001100101>, ++ LASX_3RF_DESC_BASE<"xvfsub.s", fsub, LASX256WOpnd>; ++ ++def XVFSUB_D : LASX_3R<0b01110101001100110>, ++ LASX_3RF_DESC_BASE<"xvfsub.d", fsub, LASX256DOpnd>; ++ ++ ++def XVFMUL_S : LASX_3R<0b01110101001110001>, ++ LASX_3RF_DESC_BASE<"xvfmul.s", fmul, LASX256WOpnd>; ++ ++def XVFMUL_D : LASX_3R<0b01110101001110010>, ++ LASX_3RF_DESC_BASE<"xvfmul.d", fmul, LASX256DOpnd>; ++ ++ ++def XVFDIV_S : LASX_3R<0b01110101001110101>, ++ LASX_3RF_DESC_BASE<"xvfdiv.s", fdiv, LASX256WOpnd>; ++ ++def XVFDIV_D : LASX_3R<0b01110101001110110>, ++ LASX_3RF_DESC_BASE<"xvfdiv.d", fdiv, LASX256DOpnd>; ++ ++ ++def XVFMAX_S : LASX_3R<0b01110101001111001>, ++ LASX_3RF_DESC_BASE<"xvfmax.s", int_loongarch_lasx_xvfmax_s, LASX256WOpnd>; ++ ++def XVFMAX_D : LASX_3R<0b01110101001111010>, ++ LASX_3RF_DESC_BASE<"xvfmax.d", int_loongarch_lasx_xvfmax_d, LASX256DOpnd>; ++ ++ ++def XVFMIN_S : LASX_3R<0b01110101001111101>, ++ LASX_3RF_DESC_BASE<"xvfmin.s", int_loongarch_lasx_xvfmin_s, LASX256WOpnd>; ++ ++def XVFMIN_D : LASX_3R<0b01110101001111110>, ++ LASX_3RF_DESC_BASE<"xvfmin.d", int_loongarch_lasx_xvfmin_d, LASX256DOpnd>; ++ ++ ++def XVFMAXA_S : LASX_3R<0b01110101010000001>, ++ LASX_3RF_DESC_BASE<"xvfmaxa.s", int_loongarch_lasx_xvfmaxa_s, LASX256WOpnd>; ++ ++def XVFMAXA_D : LASX_3R<0b01110101010000010>, ++ LASX_3RF_DESC_BASE<"xvfmaxa.d", int_loongarch_lasx_xvfmaxa_d, LASX256DOpnd>; ++ ++ ++def XVFMINA_S : LASX_3R<0b01110101010000101>, ++ LASX_3RF_DESC_BASE<"xvfmina.s", int_loongarch_lasx_xvfmina_s, LASX256WOpnd>; ++ ++def XVFMINA_D : LASX_3R<0b01110101010000110>, ++ LASX_3RF_DESC_BASE<"xvfmina.d", int_loongarch_lasx_xvfmina_d, LASX256DOpnd>; ++ ++ ++def XVFCVT_H_S : LASX_3R<0b01110101010001100>, ++ LASX_3RF_DESC_BASE<"xvfcvt.h.s", int_loongarch_lasx_xvfcvt_h_s, LASX256HOpnd, LASX256WOpnd, LASX256WOpnd>; ++ ++def XVFCVT_S_D : LASX_3R<0b01110101010001101>, ++ LASX_3RF_DESC_BASE1<"xvfcvt.s.d", int_loongarch_lasx_xvfcvt_s_d, LASX256WOpnd, LASX256DOpnd, LASX256DOpnd>; ++ ++ ++def XVFFINT_S_L : LASX_3R<0b01110101010010000>, ++ LASX_3RF_DESC_BASE<"xvffint.s.l", int_loongarch_lasx_xvffint_s_l, LASX256WOpnd, LASX256DOpnd, LASX256DOpnd>; ++ ++def XVFTINT_W_D : LASX_3R<0b01110101010010011>, ++ LASX_3RF_DESC_BASE<"xvftint.w.d", int_loongarch_lasx_xvftint_w_d, LASX256WOpnd, LASX256DOpnd, LASX256DOpnd>; ++ ++ ++def XVFTINTRM_W_D : LASX_3R<0b01110101010010100>, ++ LASX_3RF_DESC_BASE<"xvftintrm.w.d", int_loongarch_lasx_xvftintrm_w_d, LASX256WOpnd, LASX256DOpnd, LASX256DOpnd>; ++ ++def XVFTINTRP_W_D : LASX_3R<0b01110101010010101>, ++ LASX_3RF_DESC_BASE<"xvftintrp.w.d", int_loongarch_lasx_xvftintrp_w_d, LASX256WOpnd, LASX256DOpnd, LASX256DOpnd>; ++ ++def XVFTINTRZ_W_D : LASX_3R<0b01110101010010110>, ++ LASX_3RF_DESC_BASE<"xvftintrz.w.d", int_loongarch_lasx_xvftintrz_w_d, LASX256WOpnd, LASX256DOpnd, LASX256DOpnd>; ++ ++def XVFTINTRNE_W_D : LASX_3R<0b01110101010010111>, ++ LASX_3RF_DESC_BASE<"xvftintrne.w.d", int_loongarch_lasx_xvftintrne_w_d, LASX256WOpnd, LASX256DOpnd, LASX256DOpnd>; ++ ++ ++def XVSHUF_H : LASX_3R<0b01110101011110101>, ++ LASX_3R_VSHF_DESC_BASE<"xvshuf.h", LASX256HOpnd>; ++ ++def XVSHUF_W : LASX_3R<0b01110101011110110>, ++ LASX_3R_VSHF_DESC_BASE<"xvshuf.w", LASX256WOpnd>; ++ ++def XVSHUF_D : LASX_3R<0b01110101011110111>, ++ LASX_3R_VSHF_DESC_BASE<"xvshuf.d", LASX256DOpnd>; ++ ++ ++def XVPERM_W : LASX_3R<0b01110101011111010>, ++ LASX_3R_DESC_BASE<"xvperm.w", int_loongarch_lasx_xvperm_w, LASX256WOpnd>; ++ ++ ++def XVSEQI_B : LASX_I5<0b01110110100000000>, ++ LASX_I5_SETCC_DESC_BASE_Intrinsic<"xvseqi.b", int_loongarch_lasx_xvseqi_b, simm5_32, immSExt5, LASX256BOpnd>; ++ ++def XVSEQI_H : LASX_I5<0b01110110100000001>, ++ LASX_I5_SETCC_DESC_BASE_Intrinsic<"xvseqi.h", int_loongarch_lasx_xvseqi_h, simm5_32, immSExt5, LASX256HOpnd>; ++ ++def XVSEQI_W : LASX_I5<0b01110110100000010>, ++ LASX_I5_SETCC_DESC_BASE_Intrinsic<"xvseqi.w", int_loongarch_lasx_xvseqi_w, simm5_32, immSExt5, LASX256WOpnd>; ++ ++def XVSEQI_D : LASX_I5<0b01110110100000011>, ++ LASX_I5_SETCC_DESC_BASE_Intrinsic<"xvseqi.d", int_loongarch_lasx_xvseqi_d, simm5_32, immSExt5, LASX256DOpnd>; ++ ++ ++def XVSLEI_B : LASX_I5<0b01110110100000100>, ++ LASX_I5_SETCC_DESC_BASE_Intrinsic<"xvslei.b", int_loongarch_lasx_xvslei_b, simm5_32, immSExt5, LASX256BOpnd>; ++ ++def XVSLEI_H : LASX_I5<0b01110110100000101>, ++ LASX_I5_SETCC_DESC_BASE_Intrinsic<"xvslei.h", int_loongarch_lasx_xvslei_h, simm5_32, immSExt5, LASX256HOpnd>; ++ ++def XVSLEI_W : LASX_I5<0b01110110100000110>, ++ LASX_I5_SETCC_DESC_BASE_Intrinsic<"xvslei.w", int_loongarch_lasx_xvslei_w, simm5_32, immSExt5, LASX256WOpnd>; ++ ++def XVSLEI_D : LASX_I5<0b01110110100000111>, ++ LASX_I5_SETCC_DESC_BASE_Intrinsic<"xvslei.d", int_loongarch_lasx_xvslei_d, simm5_32, immSExt5, LASX256DOpnd>; ++ ++ ++def XVSLEI_BU : LASX_I5_U<0b01110110100001000>, ++ LASX_I5_U_SETCC_DESC_BASE_Intrinsic<"xvslei.bu", int_loongarch_lasx_xvslei_bu, uimm5, immZExt5, LASX256BOpnd>; ++ ++def XVSLEI_HU : LASX_I5_U<0b01110110100001001>, ++ LASX_I5_U_SETCC_DESC_BASE_Intrinsic<"xvslei.hu", int_loongarch_lasx_xvslei_hu, uimm5, immZExt5, LASX256HOpnd>; ++ ++def XVSLEI_WU : LASX_I5_U<0b01110110100001010>, ++ LASX_I5_U_SETCC_DESC_BASE_Intrinsic<"xvslei.wu", int_loongarch_lasx_xvslei_wu, uimm5, immZExt5, LASX256WOpnd>; ++ ++def XVSLEI_DU : LASX_I5_U<0b01110110100001011>, ++ LASX_I5_U_SETCC_DESC_BASE_Intrinsic<"xvslei.du", int_loongarch_lasx_xvslei_du, uimm5, immZExt5, LASX256DOpnd>; ++ ++ ++def XVSLTI_B : LASX_I5<0b01110110100001100>, ++ LASX_I5_SETCC_DESC_BASE_Intrinsic<"xvslti.b", int_loongarch_lasx_xvslti_b, simm5_32, immSExt5, LASX256BOpnd>; ++ ++def XVSLTI_H : LASX_I5<0b01110110100001101>, ++ LASX_I5_SETCC_DESC_BASE_Intrinsic<"xvslti.h", int_loongarch_lasx_xvslti_h, simm5_32, immSExt5, LASX256HOpnd>; ++ ++def XVSLTI_W : LASX_I5<0b01110110100001110>, ++ LASX_I5_SETCC_DESC_BASE_Intrinsic<"xvslti.w", int_loongarch_lasx_xvslti_w, simm5_32, immSExt5, LASX256WOpnd>; ++ ++def XVSLTI_D : LASX_I5<0b01110110100001111>, ++ LASX_I5_SETCC_DESC_BASE_Intrinsic<"xvslti.d", int_loongarch_lasx_xvslti_d, simm5_32, immSExt5, LASX256DOpnd>; ++ ++ ++def XVSLTI_BU : LASX_I5_U<0b01110110100010000>, ++ LASX_I5_U_SETCC_DESC_BASE_Intrinsic<"xvslti.bu", int_loongarch_lasx_xvslti_bu, uimm5, immZExt5, LASX256BOpnd>; ++ ++def XVSLTI_HU : LASX_I5_U<0b01110110100010001>, ++ LASX_I5_U_SETCC_DESC_BASE_Intrinsic<"xvslti.hu", int_loongarch_lasx_xvslti_hu, uimm5, immZExt5, LASX256HOpnd>; ++ ++def XVSLTI_WU : LASX_I5_U<0b01110110100010010>, ++ LASX_I5_U_SETCC_DESC_BASE_Intrinsic<"xvslti.wu", int_loongarch_lasx_xvslti_wu, uimm5, immZExt5, LASX256WOpnd>; ++ ++def XVSLTI_DU : LASX_I5_U<0b01110110100010011>, ++ LASX_I5_U_SETCC_DESC_BASE_Intrinsic<"xvslti.du", int_loongarch_lasx_xvslti_du, uimm5, immZExt5, LASX256DOpnd>; ++ ++ ++def XVADDI_BU : LASX_I5_U<0b01110110100010100>, ++ LASX_I5_U_DESC_BASE_Intrinsic<"xvaddi.bu", int_loongarch_lasx_xvaddi_bu, uimm5, immZExt5, LASX256BOpnd>; ++ ++def XVADDI_HU : LASX_I5_U<0b01110110100010101>, ++ LASX_I5_U_DESC_BASE_Intrinsic<"xvaddi.hu", int_loongarch_lasx_xvaddi_hu, uimm5, immZExt5, LASX256HOpnd>; ++ ++def XVADDI_WU : LASX_I5_U<0b01110110100010110>, ++ LASX_I5_U_DESC_BASE_Intrinsic<"xvaddi.wu", int_loongarch_lasx_xvaddi_wu, uimm5, immZExt5, LASX256WOpnd>; ++ ++def XVADDI_DU : LASX_I5_U<0b01110110100010111>, ++ LASX_I5_U_DESC_BASE_Intrinsic<"xvaddi.du", int_loongarch_lasx_xvaddi_du, uimm5, immZExt5, LASX256DOpnd>; ++ ++ ++def XVSUBI_BU : LASX_I5_U<0b01110110100011000>, ++ LASX_I5_U_DESC_BASE_Intrinsic<"xvsubi.bu", int_loongarch_lasx_xvsubi_bu, uimm5, immZExt5, LASX256BOpnd>; ++ ++def XVSUBI_HU : LASX_I5_U<0b01110110100011001>, ++ LASX_I5_U_DESC_BASE_Intrinsic<"xvsubi.hu", int_loongarch_lasx_xvsubi_hu, uimm5, immZExt5, LASX256HOpnd>; ++ ++def XVSUBI_WU : LASX_I5_U<0b01110110100011010>, ++ LASX_I5_U_DESC_BASE_Intrinsic<"xvsubi.wu", int_loongarch_lasx_xvsubi_wu, uimm5, immZExt5, LASX256WOpnd>; ++ ++def XVSUBI_DU : LASX_I5_U<0b01110110100011011>, ++ LASX_I5_U_DESC_BASE_Intrinsic<"xvsubi.du", int_loongarch_lasx_xvsubi_du, uimm5, immZExt5, LASX256DOpnd>; ++ ++ ++def XVBSLL_V : LASX_I5_U<0b01110110100011100>, ++ LASX_U5_DESC_BASE<"xvbsll.v", int_loongarch_lasx_xvbsll_v, LASX256BOpnd>; ++ ++def XVBSRL_V : LASX_I5_U<0b01110110100011101>, ++ LASX_U5_DESC_BASE<"xvbsrl.v", int_loongarch_lasx_xvbsrl_v, LASX256BOpnd>; ++ ++ ++def XVMAXI_B : LASX_I5<0b01110110100100000>, ++ LASX_I5_DESC_BASE_Intrinsic<"xvmaxi.b", int_loongarch_lasx_xvmaxi_b, simm5_32, immSExt5, LASX256BOpnd>; ++ ++def XVMAXI_H : LASX_I5<0b01110110100100001>, ++ LASX_I5_DESC_BASE_Intrinsic<"xvmaxi.h", int_loongarch_lasx_xvmaxi_h, simm5_32, immSExt5, LASX256HOpnd>; ++ ++def XVMAXI_W : LASX_I5<0b01110110100100010>, ++ LASX_I5_DESC_BASE_Intrinsic<"xvmaxi.w", int_loongarch_lasx_xvmaxi_w, simm5_32, immSExt5, LASX256WOpnd>; ++ ++def XVMAXI_D : LASX_I5<0b01110110100100011>, ++ LASX_I5_DESC_BASE_Intrinsic<"xvmaxi.d", int_loongarch_lasx_xvmaxi_d, simm5_32, immSExt5, LASX256DOpnd>; ++ ++ ++def XVMINI_B : LASX_I5<0b01110110100100100>, ++ LASX_I5_DESC_BASE_Intrinsic<"xvmini.b", int_loongarch_lasx_xvmini_b, simm5_32, immSExt5, LASX256BOpnd>; ++ ++def XVMINI_H : LASX_I5<0b01110110100100101>, ++ LASX_I5_DESC_BASE_Intrinsic<"xvmini.h", int_loongarch_lasx_xvmini_h, simm5_32, immSExt5, LASX256HOpnd>; ++ ++def XVMINI_W : LASX_I5<0b01110110100100110>, ++ LASX_I5_DESC_BASE_Intrinsic<"xvmini.w", int_loongarch_lasx_xvmini_w, simm5_32, immSExt5, LASX256WOpnd>; ++ ++def XVMINI_D : LASX_I5<0b01110110100100111>, ++ LASX_I5_DESC_BASE_Intrinsic<"xvmini.d", int_loongarch_lasx_xvmini_d, simm5_32, immSExt5, LASX256DOpnd>; ++ ++ ++def XVMAXI_BU : LASX_I5_U<0b01110110100101000>, ++ LASX_I5_U_DESC_BASE_Intrinsic<"xvmaxi.bu", int_loongarch_lasx_xvmaxi_bu, uimm5, immZExt5, LASX256BOpnd>; ++ ++def XVMAXI_HU : LASX_I5_U<0b01110110100101001>, ++ LASX_I5_U_DESC_BASE_Intrinsic<"xvmaxi.hu", int_loongarch_lasx_xvmaxi_hu, uimm5, immZExt5, LASX256HOpnd>; ++ ++def XVMAXI_WU : LASX_I5_U<0b01110110100101010>, ++ LASX_I5_U_DESC_BASE_Intrinsic<"xvmaxi.wu", int_loongarch_lasx_xvmaxi_wu, uimm5, immZExt5, LASX256WOpnd>; ++ ++def XVMAXI_DU : LASX_I5_U<0b01110110100101011>, ++ LASX_I5_U_DESC_BASE_Intrinsic<"xvmaxi.du", int_loongarch_lasx_xvmaxi_du, uimm5, immZExt5, LASX256DOpnd>; ++ ++ ++def XVMINI_BU : LASX_I5_U<0b01110110100101100>, ++ LASX_I5_U_DESC_BASE_Intrinsic<"xvmini.bu", int_loongarch_lasx_xvmini_bu, uimm5, immZExt5, LASX256BOpnd>; ++ ++def XVMINI_HU : LASX_I5_U<0b01110110100101101>, ++ LASX_I5_U_DESC_BASE_Intrinsic<"xvmini.hu", int_loongarch_lasx_xvmini_hu, uimm5, immZExt5, LASX256HOpnd>; ++ ++def XVMINI_WU : LASX_I5_U<0b01110110100101110>, ++ LASX_I5_U_DESC_BASE_Intrinsic<"xvmini.wu", int_loongarch_lasx_xvmini_wu, uimm5, immZExt5, LASX256WOpnd>; ++ ++def XVMINI_DU : LASX_I5_U<0b01110110100101111>, ++ LASX_I5_U_DESC_BASE_Intrinsic<"xvmini.du", int_loongarch_lasx_xvmini_du, uimm5, immZExt5, LASX256DOpnd>; ++ ++ ++def XVFRSTPI_B : LASX_I5_U<0b01110110100110100>, ++ LASX_U5_4R_DESC_BASE<"xvfrstpi.b", int_loongarch_lasx_xvfrstpi_b, LASX256BOpnd>; ++ ++def XVFRSTPI_H : LASX_I5_U<0b01110110100110101>, ++ LASX_U5_4R_DESC_BASE<"xvfrstpi.h", int_loongarch_lasx_xvfrstpi_h, LASX256HOpnd>; ++ ++ ++def XVCLO_B : LASX_2R<0b0111011010011100000000>, ++ LASX_2R_DESC_BASE<"xvclo.b", int_loongarch_lasx_xvclo_b, LASX256BOpnd>; ++ ++def XVCLO_H : LASX_2R<0b0111011010011100000001>, ++ LASX_2R_DESC_BASE<"xvclo.h", int_loongarch_lasx_xvclo_h, LASX256HOpnd>; ++ ++def XVCLO_W : LASX_2R<0b0111011010011100000010>, ++ LASX_2R_DESC_BASE<"xvclo.w", int_loongarch_lasx_xvclo_w, LASX256WOpnd>; ++ ++def XVCLO_D : LASX_2R<0b0111011010011100000011>, ++ LASX_2R_DESC_BASE<"xvclo.d", int_loongarch_lasx_xvclo_d, LASX256DOpnd>; ++ ++ ++def XVCLZ_B : LASX_2R<0b0111011010011100000100>, ++ LASX_2R_DESC_BASE<"xvclz.b", ctlz, LASX256BOpnd>; ++ ++def XVCLZ_H : LASX_2R<0b0111011010011100000101>, ++ LASX_2R_DESC_BASE<"xvclz.h", ctlz, LASX256HOpnd>; ++ ++def XVCLZ_W : LASX_2R<0b0111011010011100000110>, ++ LASX_2R_DESC_BASE<"xvclz.w", ctlz, LASX256WOpnd>; ++ ++def XVCLZ_D : LASX_2R<0b0111011010011100000111>, ++ LASX_2R_DESC_BASE<"xvclz.d", ctlz, LASX256DOpnd>; ++ ++ ++def XVPCNT_B : LASX_2R<0b0111011010011100001000>, ++ LASX_2R_DESC_BASE<"xvpcnt.b", ctpop, LASX256BOpnd>; ++ ++def XVPCNT_H : LASX_2R<0b0111011010011100001001>, ++ LASX_2R_DESC_BASE<"xvpcnt.h", ctpop, LASX256HOpnd>; ++ ++def XVPCNT_W : LASX_2R<0b0111011010011100001010>, ++ LASX_2R_DESC_BASE<"xvpcnt.w", ctpop, LASX256WOpnd>; ++ ++def XVPCNT_D : LASX_2R<0b0111011010011100001011>, ++ LASX_2R_DESC_BASE<"xvpcnt.d", ctpop, LASX256DOpnd>; ++ ++ ++def XVNEG_B : LASX_2R<0b0111011010011100001100>, ++ LASX_2R_DESC_BASE<"xvneg.b", int_loongarch_lasx_xvneg_b, LASX256BOpnd>; ++ ++def XVNEG_H : LASX_2R<0b0111011010011100001101>, ++ LASX_2R_DESC_BASE<"xvneg.h", int_loongarch_lasx_xvneg_h, LASX256HOpnd>; ++ ++def XVNEG_W : LASX_2R<0b0111011010011100001110>, ++ LASX_2R_DESC_BASE<"xvneg.w", int_loongarch_lasx_xvneg_w, LASX256WOpnd>; ++ ++def XVNEG_D : LASX_2R<0b0111011010011100001111>, ++ LASX_2R_DESC_BASE<"xvneg.d", int_loongarch_lasx_xvneg_d, LASX256DOpnd>; ++ ++ ++def XVMSKLTZ_B : LASX_2R<0b0111011010011100010000>, ++ LASX_2R_DESC_BASE<"xvmskltz.b", int_loongarch_lasx_xvmskltz_b, LASX256BOpnd>; ++ ++def XVMSKLTZ_H : LASX_2R<0b0111011010011100010001>, ++ LASX_2R_DESC_BASE<"xvmskltz.h", int_loongarch_lasx_xvmskltz_h, LASX256HOpnd>; ++ ++def XVMSKLTZ_W : LASX_2R<0b0111011010011100010010>, ++ LASX_2R_DESC_BASE<"xvmskltz.w", int_loongarch_lasx_xvmskltz_w, LASX256WOpnd>; ++ ++def XVMSKLTZ_D : LASX_2R<0b0111011010011100010011>, ++ LASX_2R_DESC_BASE<"xvmskltz.d", int_loongarch_lasx_xvmskltz_d, LASX256DOpnd>; ++ ++ ++def XVMSKGEZ_B : LASX_2R<0b0111011010011100010100>, ++ LASX_2R_DESC_BASE<"xvmskgez.b", int_loongarch_lasx_xvmskgez_b, LASX256BOpnd>; ++ ++def XVMSKNZ_B : LASX_2R<0b0111011010011100011000>, ++ LASX_2R_DESC_BASE<"xvmsknz.b", int_loongarch_lasx_xvmsknz_b, LASX256BOpnd>; ++ ++ ++def XVSETEQZ_V : LASX_SET<0b0111011010011100100110>, ++ LASX_SET_DESC_BASE<"xvseteqz.v", LASX256BOpnd>; ++ ++def XVSETNEZ_V : LASX_SET<0b0111011010011100100111>, ++ LASX_SET_DESC_BASE<"xvsetnez.v", LASX256BOpnd>; ++ ++ ++def XVSETANYEQZ_B : LASX_SET<0b0111011010011100101000>, ++ LASX_SET_DESC_BASE<"xvsetanyeqz.b", LASX256BOpnd>; ++ ++def XVSETANYEQZ_H : LASX_SET<0b0111011010011100101001>, ++ LASX_SET_DESC_BASE<"xvsetanyeqz.h", LASX256HOpnd>; ++ ++def XVSETANYEQZ_W : LASX_SET<0b0111011010011100101010>, ++ LASX_SET_DESC_BASE<"xvsetanyeqz.w", LASX256WOpnd>; ++ ++def XVSETANYEQZ_D : LASX_SET<0b0111011010011100101011>, ++ LASX_SET_DESC_BASE<"xvsetanyeqz.d", LASX256DOpnd>; ++ ++ ++def XVSETALLNEZ_B : LASX_SET<0b0111011010011100101100>, ++ LASX_SET_DESC_BASE<"xvsetallnez.b", LASX256BOpnd>; ++ ++def XVSETALLNEZ_H : LASX_SET<0b0111011010011100101101>, ++ LASX_SET_DESC_BASE<"xvsetallnez.h", LASX256HOpnd>; ++ ++def XVSETALLNEZ_W : LASX_SET<0b0111011010011100101110>, ++ LASX_SET_DESC_BASE<"xvsetallnez.w", LASX256WOpnd>; ++ ++def XVSETALLNEZ_D : LASX_SET<0b0111011010011100101111>, ++ LASX_SET_DESC_BASE<"xvsetallnez.d", LASX256DOpnd>; ++ ++class LASX_CBRANCH_PSEUDO_DESC_BASE : ++ LoongArchPseudo<(outs GPR32:$dst), ++ (ins RCWS:$xj), ++ [(set GPR32:$dst, (OpNode (TyNode RCWS:$xj)))]> { ++ bit usesCustomInserter = 1; ++} ++ ++def XSNZ_B_PSEUDO : LASX_CBRANCH_PSEUDO_DESC_BASE; ++def XSNZ_H_PSEUDO : LASX_CBRANCH_PSEUDO_DESC_BASE; ++def XSNZ_W_PSEUDO : LASX_CBRANCH_PSEUDO_DESC_BASE; ++def XSNZ_D_PSEUDO : LASX_CBRANCH_PSEUDO_DESC_BASE; ++def XSNZ_V_PSEUDO : LASX_CBRANCH_PSEUDO_DESC_BASE; ++ ++def XSZ_B_PSEUDO : LASX_CBRANCH_PSEUDO_DESC_BASE; ++def XSZ_H_PSEUDO : LASX_CBRANCH_PSEUDO_DESC_BASE; ++def XSZ_W_PSEUDO : LASX_CBRANCH_PSEUDO_DESC_BASE; ++def XSZ_D_PSEUDO : LASX_CBRANCH_PSEUDO_DESC_BASE; ++def XSZ_V_PSEUDO : LASX_CBRANCH_PSEUDO_DESC_BASE; ++ ++ ++def XVFLOGB_S : LASX_2R<0b0111011010011100110001>, ++ LASX_2RF_DESC_BASE<"xvflogb.s", int_loongarch_lasx_xvflogb_s, LASX256WOpnd>; ++ ++def XVFLOGB_D : LASX_2R<0b0111011010011100110010>, ++ LASX_2RF_DESC_BASE<"xvflogb.d", int_loongarch_lasx_xvflogb_d, LASX256DOpnd>; ++ ++ ++def XVFCLASS_S : LASX_2R<0b0111011010011100110101>, ++ LASX_2RF_DESC_BASE<"xvfclass.s", int_loongarch_lasx_xvfclass_s, LASX256WOpnd>; ++ ++def XVFCLASS_D : LASX_2R<0b0111011010011100110110>, ++ LASX_2RF_DESC_BASE<"xvfclass.d", int_loongarch_lasx_xvfclass_d, LASX256DOpnd>; ++ ++ ++def XVFSQRT_S : LASX_2R<0b0111011010011100111001>, ++ LASX_2RF_DESC_BASE<"xvfsqrt.s", fsqrt, LASX256WOpnd>; ++ ++def XVFSQRT_D : LASX_2R<0b0111011010011100111010>, ++ LASX_2RF_DESC_BASE<"xvfsqrt.d", fsqrt, LASX256DOpnd>; ++ ++ ++def XVFRECIP_S : LASX_2R<0b0111011010011100111101>, ++ LASX_2RF_DESC_BASE<"xvfrecip.s", int_loongarch_lasx_xvfrecip_s, LASX256WOpnd>; ++ ++def XVFRECIP_D : LASX_2R<0b0111011010011100111110>, ++ LASX_2RF_DESC_BASE<"xvfrecip.d", int_loongarch_lasx_xvfrecip_d, LASX256DOpnd>; ++ ++ ++def XVFRSQRT_S : LASX_2R<0b0111011010011101000001>, ++ LASX_2RF_DESC_BASE<"xvfrsqrt.s", int_loongarch_lasx_xvfrsqrt_s, LASX256WOpnd>; ++ ++def XVFRSQRT_D : LASX_2R<0b0111011010011101000010>, ++ LASX_2RF_DESC_BASE<"xvfrsqrt.d", int_loongarch_lasx_xvfrsqrt_d, LASX256DOpnd>; ++ ++ ++def XVFRINT_S : LASX_2R<0b0111011010011101001101>, ++ LASX_2RF_DESC_BASE<"xvfrint.s", frint, LASX256WOpnd>; ++ ++def XVFRINT_D : LASX_2R<0b0111011010011101001110>, ++ LASX_2RF_DESC_BASE<"xvfrint.d", frint, LASX256DOpnd>; ++ ++ ++def XVFRINTRM_S : LASX_2R<0b0111011010011101010001>, ++ LASX_2RF_DESC_BASE<"xvfrintrm.s", int_loongarch_lasx_xvfrintrm_s, LASX256WOpnd>; ++ ++def XVFRINTRM_D : LASX_2R<0b0111011010011101010010>, ++ LASX_2RF_DESC_BASE<"xvfrintrm.d", int_loongarch_lasx_xvfrintrm_d, LASX256DOpnd>; ++ ++ ++def XVFRINTRP_S : LASX_2R<0b0111011010011101010101>, ++ LASX_2RF_DESC_BASE<"xvfrintrp.s", int_loongarch_lasx_xvfrintrp_s, LASX256WOpnd>; ++ ++def XVFRINTRP_D : LASX_2R<0b0111011010011101010110>, ++ LASX_2RF_DESC_BASE<"xvfrintrp.d", int_loongarch_lasx_xvfrintrp_d, LASX256DOpnd>; ++ ++ ++def XVFRINTRZ_S : LASX_2R<0b0111011010011101011001>, ++ LASX_2RF_DESC_BASE<"xvfrintrz.s", int_loongarch_lasx_xvfrintrz_s, LASX256WOpnd>; ++ ++def XVFRINTRZ_D : LASX_2R<0b0111011010011101011010>, ++ LASX_2RF_DESC_BASE<"xvfrintrz.d", int_loongarch_lasx_xvfrintrz_d, LASX256DOpnd>; ++ ++ ++def XVFRINTRNE_S : LASX_2R<0b0111011010011101011101>, ++ LASX_2RF_DESC_BASE<"xvfrintrne.s", int_loongarch_lasx_xvfrintrne_s, LASX256WOpnd>; ++ ++def XVFRINTRNE_D : LASX_2R<0b0111011010011101011110>, ++ LASX_2RF_DESC_BASE<"xvfrintrne.d", int_loongarch_lasx_xvfrintrne_d, LASX256DOpnd>; ++ ++ ++def XVFCVTL_S_H : LASX_2R<0b0111011010011101111010>, ++ LASX_2RF_DESC_BASE<"xvfcvtl.s.h", int_loongarch_lasx_xvfcvtl_s_h, LASX256WOpnd, LASX256HOpnd>; ++ ++def XVFCVTH_S_H : LASX_2R<0b0111011010011101111011>, ++ LASX_2RF_DESC_BASE<"xvfcvth.s.h", int_loongarch_lasx_xvfcvth_s_h, LASX256WOpnd, LASX256HOpnd>; ++ ++ ++def XVFCVTL_D_S : LASX_2R<0b0111011010011101111100>, ++ LASX_2RF_DESC_BASE<"xvfcvtl.d.s", int_loongarch_lasx_xvfcvtl_d_s, LASX256DOpnd, LASX256WOpnd>; ++ ++def XVFCVTH_D_S : LASX_2R<0b0111011010011101111101>, ++ LASX_2RF_DESC_BASE<"xvfcvth.d.s", int_loongarch_lasx_xvfcvth_d_s, LASX256DOpnd, LASX256WOpnd>; ++ ++ ++def XVFFINT_S_W : LASX_2R<0b0111011010011110000000>, ++ LASX_2RF_DESC_BASE<"xvffint.s.w", sint_to_fp, LASX256WOpnd>; ++ ++def XVFFINT_S_WU : LASX_2R<0b0111011010011110000001>, ++ LASX_2RF_DESC_BASE<"xvffint.s.wu", uint_to_fp, LASX256WOpnd>; ++ ++ ++def XVFFINT_D_L : LASX_2R<0b0111011010011110000010>, ++ LASX_2RF_DESC_BASE<"xvffint.d.l", sint_to_fp, LASX256DOpnd>; ++ ++def XVFFINT_D_LU : LASX_2R<0b0111011010011110000011>, ++ LASX_2RF_DESC_BASE<"xvffint.d.lu", uint_to_fp, LASX256DOpnd>; ++ ++ ++def XVFFINTL_D_W : LASX_2R<0b0111011010011110000100>, ++ LASX_2RF_DESC_BASE<"xvffintl.d.w", int_loongarch_lasx_xvffintl_d_w, LASX256DOpnd, LASX256WOpnd>; ++ ++def XVFFINTH_D_W : LASX_2R<0b0111011010011110000101>, ++ LASX_2RF_DESC_BASE<"xvffinth.d.w", int_loongarch_lasx_xvffinth_d_w, LASX256DOpnd, LASX256WOpnd>; ++ ++ ++def XVFTINT_W_S : LASX_2R<0b0111011010011110001100>, ++ LASX_2RF_DESC_BASE<"xvftint.w.s", int_loongarch_lasx_xvftint_w_s, LASX256WOpnd>; ++ ++def XVFTINT_L_D : LASX_2R<0b0111011010011110001101>, ++ LASX_2RF_DESC_BASE<"xvftint.l.d", int_loongarch_lasx_xvftint_l_d, LASX256DOpnd>; ++ ++ ++def XVFTINTRM_W_S : LASX_2R<0b0111011010011110001110>, ++ LASX_2RF_DESC_BASE<"xvftintrm.w.s", int_loongarch_lasx_xvftintrm_w_s, LASX256WOpnd>; ++ ++def XVFTINTRM_L_D : LASX_2R<0b0111011010011110001111>, ++ LASX_2RF_DESC_BASE<"xvftintrm.l.d", int_loongarch_lasx_xvftintrm_l_d, LASX256DOpnd>; ++ ++ ++def XVFTINTRP_W_S : LASX_2R<0b0111011010011110010000>, ++ LASX_2RF_DESC_BASE<"xvftintrp.w.s", int_loongarch_lasx_xvftintrp_w_s, LASX256WOpnd>; ++ ++def XVFTINTRP_L_D : LASX_2R<0b0111011010011110010001>, ++ LASX_2RF_DESC_BASE<"xvftintrp.l.d", int_loongarch_lasx_xvftintrp_l_d, LASX256DOpnd>; ++ ++ ++def XVFTINTRZ_W_S : LASX_2R<0b0111011010011110010010>, ++ LASX_2RF_DESC_BASE<"xvftintrz.w.s", fp_to_sint, LASX256WOpnd>; ++ ++def XVFTINTRZ_L_D : LASX_2R<0b0111011010011110010011>, ++ LASX_2RF_DESC_BASE<"xvftintrz.l.d", fp_to_sint, LASX256DOpnd>; ++ ++ ++def XVFTINTRNE_W_S : LASX_2R<0b0111011010011110010100>, ++ LASX_2RF_DESC_BASE<"xvftintrne.w.s", int_loongarch_lasx_xvftintrne_w_s, LASX256WOpnd>; ++ ++def XVFTINTRNE_L_D : LASX_2R<0b0111011010011110010101>, ++ LASX_2RF_DESC_BASE<"xvftintrne.l.d", int_loongarch_lasx_xvftintrne_l_d, LASX256DOpnd>; ++ ++ ++def XVFTINT_WU_S : LASX_2R<0b0111011010011110010110>, ++ LASX_2RF_DESC_BASE<"xvftint.wu.s", int_loongarch_lasx_xvftint_wu_s, LASX256WOpnd>; ++ ++def XVFTINT_LU_D : LASX_2R<0b0111011010011110010111>, ++ LASX_2RF_DESC_BASE<"xvftint.lu.d", int_loongarch_lasx_xvftint_lu_d, LASX256DOpnd>; ++ ++ ++def XVFTINTRZ_WU_S : LASX_2R<0b0111011010011110011100>, ++ LASX_2RF_DESC_BASE<"xvftintrz.wu.s", fp_to_uint, LASX256WOpnd>; ++ ++def XVFTINTRZ_LU_D : LASX_2R<0b0111011010011110011101>, ++ LASX_2RF_DESC_BASE<"xvftintrz.lu.d", fp_to_uint, LASX256DOpnd>; ++ ++ ++def XVFTINTL_L_S : LASX_2R<0b0111011010011110100000>, ++ LASX_2RF_DESC_BASE<"xvftintl.l.s", int_loongarch_lasx_xvftintl_l_s, LASX256DOpnd, LASX256WOpnd>; ++ ++def XVFTINTH_L_S : LASX_2R<0b0111011010011110100001>, ++ LASX_2RF_DESC_BASE<"xvftinth.l.s", int_loongarch_lasx_xvftinth_l_s, LASX256DOpnd, LASX256WOpnd>; ++ ++ ++def XVFTINTRML_L_S : LASX_2R<0b0111011010011110100010>, ++ LASX_2RF_DESC_BASE<"xvftintrml.l.s", int_loongarch_lasx_xvftintrml_l_s, LASX256DOpnd, LASX256WOpnd>; ++ ++def XVFTINTRMH_L_S : LASX_2R<0b0111011010011110100011>, ++ LASX_2RF_DESC_BASE<"xvftintrmh.l.s", int_loongarch_lasx_xvftintrmh_l_s, LASX256DOpnd, LASX256WOpnd>; ++ ++ ++def XVFTINTRPL_L_S : LASX_2R<0b0111011010011110100100>, ++ LASX_2RF_DESC_BASE<"xvftintrpl.l.s", int_loongarch_lasx_xvftintrpl_l_s, LASX256DOpnd, LASX256WOpnd>; ++ ++def XVFTINTRPH_L_S : LASX_2R<0b0111011010011110100101>, ++ LASX_2RF_DESC_BASE<"xvftintrph.l.s", int_loongarch_lasx_xvftintrph_l_s, LASX256DOpnd, LASX256WOpnd>; ++ ++ ++def XVFTINTRZL_L_S : LASX_2R<0b0111011010011110100110>, ++ LASX_2RF_DESC_BASE<"xvftintrzl.l.s", int_loongarch_lasx_xvftintrzl_l_s, LASX256DOpnd, LASX256WOpnd>; ++ ++def XVFTINTRZH_L_S : LASX_2R<0b0111011010011110100111>, ++ LASX_2RF_DESC_BASE<"xvftintrzh.l.s", int_loongarch_lasx_xvftintrzh_l_s, LASX256DOpnd, LASX256WOpnd>; ++ ++ ++def XVFTINTRNEL_L_S : LASX_2R<0b0111011010011110101000>, ++ LASX_2RF_DESC_BASE<"xvftintrnel.l.s", int_loongarch_lasx_xvftintrnel_l_s, LASX256DOpnd, LASX256WOpnd>; ++ ++def XVFTINTRNEH_L_S : LASX_2R<0b0111011010011110101001>, ++ LASX_2RF_DESC_BASE<"xvftintrneh.l.s", int_loongarch_lasx_xvftintrneh_l_s, LASX256DOpnd, LASX256WOpnd>; ++ ++ ++def XVEXTH_H_B : LASX_2R<0b0111011010011110111000>, ++ LASX_2R_DESC_BASE<"xvexth.h.b", int_loongarch_lasx_xvexth_h_b, LASX256HOpnd, LASX256BOpnd>; ++ ++def XVEXTH_W_H : LASX_2R<0b0111011010011110111001>, ++ LASX_2R_DESC_BASE<"xvexth.w.h", int_loongarch_lasx_xvexth_w_h, LASX256WOpnd, LASX256HOpnd>; ++ ++def XVEXTH_D_W : LASX_2R<0b0111011010011110111010>, ++ LASX_2R_DESC_BASE<"xvexth.d.w", int_loongarch_lasx_xvexth_d_w, LASX256DOpnd, LASX256WOpnd> ; ++ ++def XVEXTH_Q_D : LASX_2R<0b0111011010011110111011>, ++ LASX_2R_DESC_BASE<"xvexth.q.d", int_loongarch_lasx_xvexth_q_d, LASX256DOpnd, LASX256DOpnd>; ++ ++ ++def XVEXTH_HU_BU : LASX_2R<0b0111011010011110111100>, ++ LASX_2R_DESC_BASE<"xvexth.hu.bu", int_loongarch_lasx_xvexth_hu_bu, LASX256HOpnd, LASX256BOpnd>; ++ ++def XVEXTH_WU_HU : LASX_2R<0b0111011010011110111101>, ++ LASX_2R_DESC_BASE<"xvexth.wu.hu", int_loongarch_lasx_xvexth_wu_hu, LASX256WOpnd, LASX256HOpnd>; ++ ++def XVEXTH_DU_WU : LASX_2R<0b0111011010011110111110>, ++ LASX_2R_DESC_BASE<"xvexth.du.wu", int_loongarch_lasx_xvexth_du_wu, LASX256DOpnd, LASX256WOpnd> ; ++ ++def XVEXTH_QU_DU : LASX_2R<0b0111011010011110111111>, ++ LASX_2R_DESC_BASE<"xvexth.qu.du", int_loongarch_lasx_xvexth_qu_du, LASX256DOpnd, LASX256DOpnd>; ++ ++ ++def XVREPLGR2VR_B : LASX_2R_1GP<0b0111011010011111000000>, ++ LASX_2R_REPL_DESC_BASE<"xvreplgr2vr.b", v32i8, xvsplati8, LASX256BOpnd, GPR32Opnd>; ++ ++def XVREPLGR2VR_H : LASX_2R_1GP<0b0111011010011111000001>, ++ LASX_2R_REPL_DESC_BASE<"xvreplgr2vr.h", v16i16, xvsplati16, LASX256HOpnd, GPR32Opnd>; ++ ++def XVREPLGR2VR_W : LASX_2R_1GP<0b0111011010011111000010>, ++ LASX_2R_REPL_DESC_BASE<"xvreplgr2vr.w", v8i32, xvsplati32, LASX256WOpnd, GPR32Opnd>; ++ ++def XVREPLGR2VR_D : LASX_2R_1GP<0b0111011010011111000011>, ++ LASX_2R_REPL_DESC_BASE<"xvreplgr2vr.d", v4i64, xvsplati64, LASX256DOpnd, GPR64Opnd>; ++ ++ ++def VEXT2XV_H_B : LASX_2R<0b0111011010011111000100>, ++ LASX_XVEXTEND_DESC_BASE<"vext2xv.h.b", int_loongarch_lasx_vext2xv_h_b, v32i8, v16i16, LASX256BOpnd, LASX256HOpnd>; ++ ++def VEXT2XV_W_B : LASX_2R<0b0111011010011111000101>, ++ LASX_XVEXTEND_DESC_BASE<"vext2xv.w.b", int_loongarch_lasx_vext2xv_w_b, v32i8, v8i32, LASX256BOpnd, LASX256WOpnd>; ++ ++def VEXT2XV_D_B : LASX_2R<0b0111011010011111000110>, ++ LASX_XVEXTEND_DESC_BASE<"vext2xv.d.b", int_loongarch_lasx_vext2xv_d_b, v32i8, v4i64, LASX256BOpnd, LASX256DOpnd> ; ++ ++def VEXT2XV_W_H : LASX_2R<0b0111011010011111000111>, ++ LASX_XVEXTEND_DESC_BASE<"vext2xv.w.h", int_loongarch_lasx_vext2xv_w_h, v16i16, v8i32, LASX256HOpnd, LASX256WOpnd>; ++ ++def VEXT2XV_D_H : LASX_2R<0b0111011010011111001000>, ++ LASX_XVEXTEND_DESC_BASE<"vext2xv.d.h", int_loongarch_lasx_vext2xv_d_h, v16i16, v4i64, LASX256HOpnd, LASX256DOpnd> ; ++ ++def VEXT2XV_D_W : LASX_2R<0b0111011010011111001001>, ++ LASX_XVEXTEND_DESC_BASE<"vext2xv.d.w", int_loongarch_lasx_vext2xv_d_w, v8i32, v4i64, LASX256WOpnd, LASX256DOpnd>; ++ ++ ++def VEXT2XV_HU_BU : LASX_2R<0b0111011010011111001010>, ++ LASX_XVEXTEND_DESC_BASE<"vext2xv.hu.bu", int_loongarch_lasx_vext2xv_hu_bu, v32i8, v16i16, LASX256BOpnd, LASX256HOpnd>; ++ ++def VEXT2XV_WU_BU : LASX_2R<0b0111011010011111001011>, ++ LASX_XVEXTEND_DESC_BASE<"vext2xv.wu.bu", int_loongarch_lasx_vext2xv_wu_bu, v32i8, v8i32, LASX256BOpnd, LASX256WOpnd>; ++ ++def VEXT2XV_DU_BU : LASX_2R<0b0111011010011111001100>, ++ LASX_XVEXTEND_DESC_BASE<"vext2xv.du.bu", int_loongarch_lasx_vext2xv_du_bu, v32i8, v4i64, LASX256BOpnd, LASX256DOpnd> ; ++ ++def VEXT2XV_WU_HU : LASX_2R<0b0111011010011111001101>, ++ LASX_XVEXTEND_DESC_BASE<"vext2xv.wu.hu", int_loongarch_lasx_vext2xv_wu_hu, v16i16, v8i32, LASX256HOpnd, LASX256WOpnd>; ++ ++def VEXT2XV_DU_HU : LASX_2R<0b0111011010011111001110>, ++ LASX_XVEXTEND_DESC_BASE<"vext2xv.du.hu", int_loongarch_lasx_vext2xv_du_hu, v16i16, v4i64, LASX256HOpnd, LASX256DOpnd> ; ++ ++def VEXT2XV_DU_WU : LASX_2R<0b0111011010011111001111>, ++ LASX_XVEXTEND_DESC_BASE<"vext2xv.du.wu", int_loongarch_lasx_vext2xv_du_wu, v8i32, v4i64, LASX256WOpnd, LASX256DOpnd>; ++ ++ ++def XVHSELI_D : LASX_I5_U<0b01110110100111111>, ++ LASX_U5N_DESC_BASE<"xvhseli.d", LASX256DOpnd>; ++ ++ ++def XVROTRI_B : LASX_I3_U<0b0111011010100000001>, ++ LASX_RORI_U3_DESC_BASE_Intrinsic<"xvrotri.b", int_loongarch_lasx_xvrotri_b, uimm3, immZExt3, LASX256BOpnd>; ++ ++def XVROTRI_H : LASX_I4_U<0b011101101010000001>, ++ LASX_RORI_U4_DESC_BASE_Intrinsic<"xvrotri.h", int_loongarch_lasx_xvrotri_h, uimm4, immZExt4, LASX256HOpnd>; ++ ++def XVROTRI_W : LASX_I5_U<0b01110110101000001>, ++ LASX_RORI_U5_DESC_BASE_Intrinsic<"xvrotri.w", int_loongarch_lasx_xvrotri_w, uimm5, immZExt5, LASX256WOpnd>; ++ ++def XVROTRI_D : LASX_I6_U<0b0111011010100001>, ++ LASX_RORI_U6_DESC_BASE_Intrinsic<"xvrotri.d", int_loongarch_lasx_xvrotri_d, uimm6, immZExt6, LASX256DOpnd>; ++ ++ ++def XVSRLRI_B : LASX_I3_U<0b0111011010100100001>, ++ LASX_BIT_3_DESC_BASE<"xvsrlri.b", int_loongarch_lasx_xvsrlri_b, uimm3, immZExt3, LASX256BOpnd>; ++ ++def XVSRLRI_H : LASX_I4_U<0b011101101010010001>, ++ LASX_BIT_4_DESC_BASE<"xvsrlri.h", int_loongarch_lasx_xvsrlri_h, uimm4, immZExt4, LASX256HOpnd>; ++ ++def XVSRLRI_W : LASX_I5_U<0b01110110101001001>, ++ LASX_BIT_5_DESC_BASE<"xvsrlri.w", int_loongarch_lasx_xvsrlri_w, uimm5, immZExt5, LASX256WOpnd>; ++ ++def XVSRLRI_D : LASX_I6_U<0b0111011010100101>, ++ LASX_BIT_6_DESC_BASE<"xvsrlri.d", int_loongarch_lasx_xvsrlri_d, uimm6, immZExt6, LASX256DOpnd>; ++ ++ ++def XVSRARI_B : LASX_I3_U<0b0111011010101000001>, ++ LASX_BIT_3_DESC_BASE<"xvsrari.b", int_loongarch_lasx_xvsrari_b, uimm3, immZExt3, LASX256BOpnd>; ++ ++def XVSRARI_H : LASX_I4_U<0b011101101010100001>, ++ LASX_BIT_4_DESC_BASE<"xvsrari.h", int_loongarch_lasx_xvsrari_h, uimm4, immZExt4, LASX256HOpnd>; ++ ++def XVSRARI_W : LASX_I5_U<0b01110110101010001>, ++ LASX_BIT_5_DESC_BASE<"xvsrari.w", int_loongarch_lasx_xvsrari_w, uimm5, immZExt5, LASX256WOpnd>; ++ ++def XVSRARI_D : LASX_I6_U<0b0111011010101001>, ++ LASX_BIT_6_DESC_BASE<"xvsrari.d", int_loongarch_lasx_xvsrari_d, uimm6, immZExt6, LASX256DOpnd>; ++ ++ ++def XVINSGR2VR_W : LASX_I3_R_U<0b0111011011101011110>, ++ LASX_INSERT_U3_DESC_BASE<"xvinsgr2vr.w", v8i32, uimm3_ptr, immZExt3Ptr, LASX256WOpnd, GPR32Opnd>; ++ ++def XVINSGR2VR_D : LASX_I2_R_U<0b01110110111010111110>, ++ LASX_INSERT_U2_DESC_BASE<"xvinsgr2vr.d", v4i64, uimm2_ptr, immZExt2Ptr, LASX256DOpnd, GPR64Opnd>; ++ ++ ++def XVPICKVE2GR_W : LASX_ELM_COPY_U3<0b0111011011101111110>, ++ LASX_COPY_U3_DESC_BASE<"xvpickve2gr.w", vextract_sext_i32, v8i32, uimm3_ptr, immZExt3Ptr, GPR32Opnd, LASX256WOpnd>; ++ ++def XVPICKVE2GR_D : LASX_ELM_COPY_U2<0b01110110111011111110>, ++ LASX_COPY_U2_DESC_BASE<"xvpickve2gr.d", vextract_sext_i64, v4i64, uimm2_ptr, immZExt2Ptr, GPR64Opnd, LASX256DOpnd>; ++ ++ ++def XVPICKVE2GR_WU : LASX_ELM_COPY_U3<0b0111011011110011110>, ++ LASX_COPY_U3_DESC_BASE<"xvpickve2gr.wu", vextract_zext_i32, v8i32, uimm3_ptr, immZExt3Ptr, GPR32Opnd, LASX256WOpnd>; ++ ++def XVPICKVE2GR_DU : LASX_ELM_COPY_U2<0b01110110111100111110>, ++ LASX_COPY_U2_DESC_BASE<"xvpickve2gr.du", vextract_zext_i64, v4i64, uimm2_ptr, immZExt2Ptr, GPR64Opnd, LASX256DOpnd>; ++ ++ ++def XVREPL128VEI_B : LASX_I4_U<0b011101101111011110>, ++ LASX_ELM_U4_VREPLVE_DESC_BASE_Intrinsic<"xvrepl128vei.b", int_loongarch_lasx_xvrepl128vei_b, LASX256BOpnd>; ++ ++def XVREPL128VEI_H : LASX_I3_U<0b0111011011110111110>, ++ LASX_ELM_U3_VREPLVE_DESC_BASE_Intrinsic<"xvrepl128vei.h", int_loongarch_lasx_xvrepl128vei_h, LASX256HOpnd>; ++ ++def XVREPL128VEI_W : LASX_I2_U<0b01110110111101111110>, ++ LASX_ELM_U2_VREPLVE_DESC_BASE_Intrinsic<"xvrepl128vei.w", int_loongarch_lasx_xvrepl128vei_w, LASX256WOpnd>; ++ ++def XVREPL128VEI_D : LASX_I1_U<0b011101101111011111110>, ++ LASX_ELM_U1_VREPLVE_DESC_BASE_Intrinsic<"xvrepl128vei.d", int_loongarch_lasx_xvrepl128vei_d, LASX256DOpnd>; ++ ++ ++def XVINSVE0_W : LASX_I3_U<0b0111011011111111110>, ++ LASX_BIT_3_4O_DESC_BASE<"xvinsve0.w", int_loongarch_lasx_xvinsve0_w, uimm3, immZExt3, LASX256WOpnd>; ++ ++def XVINSVE0_D : LASX_I2_U<0b01110110111111111110>, ++ LASX_BIT_2_4O_DESC_BASE<"xvinsve0.d", int_loongarch_lasx_xvinsve0_d, uimm2, immZExt2, LASX256DOpnd>; ++ ++ ++def XVPICKVE_W : LASX_I3_U<0b0111011100000011110>, ++ LASX_BIT_3_4ON<"xvpickve.w", uimm3, immZExt3, LASX256WOpnd>; ++ ++def XVPICKVE_D : LASX_I2_U<0b01110111000000111110>, ++ LASX_BIT_2_4ON<"xvpickve.d", uimm2, immZExt2, LASX256DOpnd>; ++ ++ ++def XVREPLVE0_B : LASX_2R<0b0111011100000111000000>, ++ LASX_XVBROADCAST_DESC_BASE<"xvreplve0.b", int_loongarch_lasx_xvreplve0_b, v32i8, LASX256BOpnd>; ++ ++def XVREPLVE0_H : LASX_2R<0b0111011100000111100000>, ++ LASX_XVBROADCAST_DESC_BASE<"xvreplve0.h", int_loongarch_lasx_xvreplve0_h, v16i16, LASX256HOpnd>; ++ ++def XVREPLVE0_W : LASX_2R<0b0111011100000111110000>, ++ LASX_XVBROADCAST_DESC_BASE<"xvreplve0.w", int_loongarch_lasx_xvreplve0_w, v8i32, LASX256WOpnd> ; ++ ++def XVREPLVE0_D : LASX_2R<0b0111011100000111111000>, ++ LASX_XVBROADCAST_DESC_BASE<"xvreplve0.d", xvbroadcast_v4i64, v4i64, LASX256DOpnd>; ++ ++def XVREPLVE0_Q : LASX_2R<0b0111011100000111111100>, ++ LASX_XVBROADCAST_DESC_BASE<"xvreplve0.q", int_loongarch_lasx_xvreplve0_q, v32i8, LASX256BOpnd>; ++ ++ ++def XVSLLWIL_H_B : LASX_I3_U<0b0111011100001000001>, ++ LASX_2R_U3_DESC_BASE<"xvsllwil.h.b", int_loongarch_lasx_xvsllwil_h_b, LASX256HOpnd, LASX256BOpnd>; ++ ++def XVSLLWIL_W_H : LASX_I4_U<0b011101110000100001>, ++ LASX_2R_U4_DESC_BASE<"xvsllwil.w.h", int_loongarch_lasx_xvsllwil_w_h, LASX256WOpnd, LASX256HOpnd>; ++ ++def XVSLLWIL_D_W : LASX_I5_U<0b01110111000010001>, ++ LASX_2R_U5_DESC_BASE<"xvsllwil.d.w", int_loongarch_lasx_xvsllwil_d_w, LASX256DOpnd, LASX256WOpnd> ; ++ ++ ++def XVEXTL_Q_D : LASX_2R<0b0111011100001001000000>, ++ LASX_2R_DESC_BASE<"xvextl.q.d", int_loongarch_lasx_xvextl_q_d, LASX256DOpnd, LASX256DOpnd>; ++ ++ ++def XVSLLWIL_HU_BU : LASX_I3_U<0b0111011100001100001>, ++ LASX_2R_U3_DESC_BASE<"xvsllwil.hu.bu", int_loongarch_lasx_xvsllwil_hu_bu, LASX256HOpnd, LASX256BOpnd>; ++ ++def XVSLLWIL_WU_HU : LASX_I4_U<0b011101110000110001>, ++ LASX_2R_U4_DESC_BASE<"xvsllwil.wu.hu", int_loongarch_lasx_xvsllwil_wu_hu, LASX256WOpnd, LASX256HOpnd>; ++ ++def XVSLLWIL_DU_WU : LASX_I5_U<0b01110111000011001>, ++ LASX_2R_U5_DESC_BASE<"xvsllwil.du.wu", int_loongarch_lasx_xvsllwil_du_wu, LASX256DOpnd, LASX256WOpnd> ; ++ ++ ++def XVEXTL_QU_DU : LASX_2R<0b0111011100001101000000>, ++ LASX_2R_DESC_BASE<"xvextl.qu.du", int_loongarch_lasx_xvextl_qu_du, LASX256DOpnd, LASX256DOpnd>; ++ ++ ++def XVBITCLRI_B : LASX_I3_U<0b0111011100010000001>, ++ LASX_2R_U3_DESC_BASE<"xvbitclri.b", int_loongarch_lasx_xvbitclri_b, LASX256BOpnd, LASX256BOpnd>; ++ ++def XVBITCLRI_H : LASX_I4_U<0b011101110001000001>, ++ LASX_2R_U4_DESC_BASE<"xvbitclri.h", int_loongarch_lasx_xvbitclri_h, LASX256HOpnd, LASX256HOpnd>; ++ ++def XVBITCLRI_W : LASX_I5_U<0b01110111000100001>, ++ LASX_2R_U5_DESC_BASE<"xvbitclri.w", int_loongarch_lasx_xvbitclri_w, LASX256WOpnd, LASX256WOpnd>; ++ ++def XVBITCLRI_D : LASX_I6_U<0b0111011100010001>, ++ LASX_2R_U6_DESC_BASE<"xvbitclri.d", int_loongarch_lasx_xvbitclri_d, LASX256DOpnd, LASX256DOpnd>; ++ ++ ++def XVBITSETI_B : LASX_I3_U<0b0111011100010100001>, ++ LASX_2R_U3_DESC_BASE<"xvbitseti.b", int_loongarch_lasx_xvbitseti_b, LASX256BOpnd, LASX256BOpnd>; ++ ++def XVBITSETI_H : LASX_I4_U<0b011101110001010001>, ++ LASX_2R_U4_DESC_BASE<"xvbitseti.h", int_loongarch_lasx_xvbitseti_h, LASX256HOpnd, LASX256HOpnd>; ++ ++def XVBITSETI_W : LASX_I5_U<0b01110111000101001>, ++ LASX_2R_U5_DESC_BASE<"xvbitseti.w", int_loongarch_lasx_xvbitseti_w, LASX256WOpnd, LASX256WOpnd>; ++ ++def XVBITSETI_D : LASX_I6_U<0b0111011100010101>, ++ LASX_2R_U6_DESC_BASE<"xvbitseti.d", int_loongarch_lasx_xvbitseti_d, LASX256DOpnd, LASX256DOpnd>; ++ ++ ++def XVBITREVI_B : LASX_I3_U<0b0111011100011000001>, ++ LASX_2R_U3_DESC_BASE<"xvbitrevi.b", int_loongarch_lasx_xvbitrevi_b, LASX256BOpnd, LASX256BOpnd>; ++ ++def XVBITREVI_H : LASX_I4_U<0b011101110001100001>, ++ LASX_2R_U4_DESC_BASE<"xvbitrevi.h", int_loongarch_lasx_xvbitrevi_h, LASX256HOpnd, LASX256HOpnd>; ++ ++def XVBITREVI_W : LASX_I5_U<0b01110111000110001>, ++ LASX_2R_U5_DESC_BASE<"xvbitrevi.w", int_loongarch_lasx_xvbitrevi_w, LASX256WOpnd, LASX256WOpnd>; ++ ++def XVBITREVI_D : LASX_I6_U<0b0111011100011001>, ++ LASX_2R_U6_DESC_BASE<"xvbitrevi.d", int_loongarch_lasx_xvbitrevi_d, LASX256DOpnd, LASX256DOpnd>; ++ ++ ++def XVSAT_B : LASX_I3_U<0b0111011100100100001>, ++ LASX_BIT_3_DESC_BASE<"xvsat.b", int_loongarch_lasx_xvsat_b, uimm3, immZExt3, LASX256BOpnd>; ++ ++def XVSAT_H : LASX_I4_U<0b011101110010010001>, ++ LASX_BIT_4_DESC_BASE<"xvsat.h", int_loongarch_lasx_xvsat_h, uimm4, immZExt4, LASX256HOpnd>; ++ ++def XVSAT_W : LASX_I5_U<0b01110111001001001>, ++ LASX_BIT_5_DESC_BASE<"xvsat.w", int_loongarch_lasx_xvsat_w, uimm5, immZExt5, LASX256WOpnd>; ++ ++def XVSAT_D : LASX_I6_U<0b0111011100100101>, ++ LASX_BIT_6_DESC_BASE<"xvsat.d", int_loongarch_lasx_xvsat_d, uimm6, immZExt6, LASX256DOpnd>; ++ ++ ++def XVSAT_BU : LASX_I3_U<0b0111011100101000001>, ++ LASX_BIT_3_DESC_BASE<"xvsat.bu", int_loongarch_lasx_xvsat_bu, uimm3, immZExt3, LASX256BOpnd>; ++ ++def XVSAT_HU : LASX_I4_U<0b011101110010100001>, ++ LASX_BIT_4_DESC_BASE<"xvsat.hu", int_loongarch_lasx_xvsat_hu, uimm4, immZExt4, LASX256HOpnd>; ++ ++def XVSAT_WU : LASX_I5_U<0b01110111001010001>, ++ LASX_BIT_5_DESC_BASE<"xvsat.wu", int_loongarch_lasx_xvsat_wu, uimm5, immZExt5, LASX256WOpnd>; ++ ++def XVSAT_DU : LASX_I6_U<0b0111011100101001>, ++ LASX_BIT_6_DESC_BASE<"xvsat.du", int_loongarch_lasx_xvsat_du, uimm6, immZExt6, LASX256DOpnd>; ++ ++ ++def XVSLLI_B : LASX_I3_U<0b0111011100101100001>, ++ LASX_BIT_U3_VREPLVE_DESC_BASE_Intrinsic<"xvslli.b", int_loongarch_lasx_xvslli_b, uimm3, immZExt3, LASX256BOpnd>; ++ ++def XVSLLI_H : LASX_I4_U<0b011101110010110001>, ++ LASX_BIT_U4_VREPLVE_DESC_BASE_Intrinsic<"xvslli.h", int_loongarch_lasx_xvslli_h, uimm4, immZExt4, LASX256HOpnd>; ++ ++def XVSLLI_W : LASX_I5_U<0b01110111001011001>, ++ LASX_BIT_U5_VREPLVE_DESC_BASE_Intrinsic<"xvslli.w", int_loongarch_lasx_xvslli_w, uimm5, immZExt5, LASX256WOpnd>; ++ ++def XVSLLI_D : LASX_I6_U<0b0111011100101101>, ++ LASX_BIT_U6_VREPLVE_DESC_BASE_Intrinsic<"xvslli.d", int_loongarch_lasx_xvslli_d, uimm6, immZExt6, LASX256DOpnd>; ++ ++ ++def XVSRLI_B : LASX_I3_U<0b0111011100110000001>, ++ LASX_BIT_U3_VREPLVE_DESC_BASE_Intrinsic<"xvsrli.b", int_loongarch_lasx_xvsrli_b, uimm3, immZExt3, LASX256BOpnd>; ++ ++def XVSRLI_H : LASX_I4_U<0b011101110011000001>, ++ LASX_BIT_U4_VREPLVE_DESC_BASE_Intrinsic<"xvsrli.h", int_loongarch_lasx_xvsrli_h, uimm4, immZExt4, LASX256HOpnd>; ++ ++def XVSRLI_W : LASX_I5_U<0b01110111001100001>, ++ LASX_BIT_U5_VREPLVE_DESC_BASE_Intrinsic<"xvsrli.w", int_loongarch_lasx_xvsrli_w, uimm5, immZExt5, LASX256WOpnd>; ++ ++def XVSRLI_D : LASX_I6_U<0b0111011100110001>, ++ LASX_BIT_U6_VREPLVE_DESC_BASE_Intrinsic<"xvsrli.d", int_loongarch_lasx_xvsrli_d, uimm6, immZExt6, LASX256DOpnd>; ++ ++ ++def XVSRAI_B : LASX_I3_U<0b0111011100110100001>, ++ LASX_BIT_U3_VREPLVE_DESC_BASE_Intrinsic<"xvsrai.b", int_loongarch_lasx_xvsrai_b, uimm3, immZExt3, LASX256BOpnd>; ++ ++def XVSRAI_H : LASX_I4_U<0b011101110011010001>, ++ LASX_BIT_U4_VREPLVE_DESC_BASE_Intrinsic<"xvsrai.h", int_loongarch_lasx_xvsrai_h, uimm4, immZExt4, LASX256HOpnd>; ++ ++def XVSRAI_W : LASX_I5_U<0b01110111001101001>, ++ LASX_BIT_U5_VREPLVE_DESC_BASE_Intrinsic<"xvsrai.w", int_loongarch_lasx_xvsrai_w, uimm5, immZExt5, LASX256WOpnd>; ++ ++def XVSRAI_D : LASX_I6_U<0b0111011100110101>, ++ LASX_BIT_U6_VREPLVE_DESC_BASE_Intrinsic<"xvsrai.d", int_loongarch_lasx_xvsrai_d, uimm6, immZExt6, LASX256DOpnd>; ++ ++ ++def XVSRLNI_B_H : LASX_I4_U<0b011101110100000001>, ++ LASX_U4_DESC_BASE<"xvsrlni.b.h", int_loongarch_lasx_xvsrlni_b_h, uimm4, immZExt4, LASX256BOpnd>; ++ ++def XVSRLNI_H_W : LASX_I5_U<0b01110111010000001>, ++ LASX_N4_U5_DESC_BASE<"xvsrlni.h.w", int_loongarch_lasx_xvsrlni_h_w, uimm5, immZExt5, LASX256HOpnd>; ++ ++def XVSRLNI_W_D : LASX_I6_U<0b0111011101000001>, ++ LASX_U6_DESC_BASE<"xvsrlni.w.d", int_loongarch_lasx_xvsrlni_w_d, uimm6, immZExt6, LASX256WOpnd>; ++ ++def XVSRLNI_D_Q : LASX_I7_U<0b011101110100001>, ++ LASX_D_DESC_BASE<"xvsrlni.d.q", int_loongarch_lasx_xvsrlni_d_q, LASX256DOpnd>; ++ ++ ++def XVSRLRNI_B_H : LASX_I4_U<0b011101110100010001>, ++ LASX_U4_DESC_BASE<"xvsrlrni.b.h", int_loongarch_lasx_xvsrlrni_b_h, uimm4, immZExt4, LASX256BOpnd>; ++ ++def XVSRLRNI_H_W : LASX_I5_U<0b01110111010001001>, ++ LASX_N4_U5_DESC_BASE<"xvsrlrni.h.w", int_loongarch_lasx_xvsrlrni_h_w, uimm5, immZExt5, LASX256HOpnd>; ++ ++def XVSRLRNI_W_D : LASX_I6_U<0b0111011101000101>, ++ LASX_U6_DESC_BASE<"xvsrlrni.w.d", int_loongarch_lasx_xvsrlrni_w_d, uimm6, immZExt6, LASX256WOpnd>; ++ ++def XVSRLRNI_D_Q : LASX_I7_U<0b011101110100011>, ++ LASX_D_DESC_BASE<"xvsrlrni.d.q", int_loongarch_lasx_xvsrlrni_d_q, LASX256DOpnd>; ++ ++ ++def XVSSRLNI_B_H : LASX_I4_U<0b011101110100100001>, ++ LASX_U4_DESC_BASE<"xvssrlni.b.h", int_loongarch_lasx_xvssrlni_b_h, uimm4, immZExt4, LASX256BOpnd>; ++ ++def XVSSRLNI_H_W : LASX_I5_U<0b01110111010010001>, ++ LASX_N4_U5_DESC_BASE<"xvssrlni.h.w", int_loongarch_lasx_xvssrlni_h_w, uimm5, immZExt5, LASX256HOpnd>; ++ ++def XVSSRLNI_W_D : LASX_I6_U<0b0111011101001001>, ++ LASX_U6_DESC_BASE<"xvssrlni.w.d", int_loongarch_lasx_xvssrlni_w_d, uimm6, immZExt6, LASX256WOpnd>; ++ ++def XVSSRLNI_D_Q : LASX_I7_U<0b011101110100101>, ++ LASX_D_DESC_BASE<"xvssrlni.d.q", int_loongarch_lasx_xvssrlni_d_q, LASX256DOpnd>; ++ ++ ++def XVSSRLNI_BU_H : LASX_I4_U<0b011101110100110001>, ++ LASX_U4_DESC_BASE<"xvssrlni.bu.h", int_loongarch_lasx_xvssrlni_bu_h, uimm4, immZExt4, LASX256BOpnd>; ++ ++def XVSSRLNI_HU_W : LASX_I5_U<0b01110111010011001>, ++ LASX_N4_U5_DESC_BASE<"xvssrlni.hu.w", int_loongarch_lasx_xvssrlni_hu_w, uimm5, immZExt5, LASX256HOpnd>; ++ ++def XVSSRLNI_WU_D : LASX_I6_U<0b0111011101001101>, ++ LASX_U6_DESC_BASE<"xvssrlni.wu.d", int_loongarch_lasx_xvssrlni_wu_d, uimm6, immZExt6, LASX256WOpnd>; ++ ++def XVSSRLNI_DU_Q : LASX_I7_U<0b011101110100111>, ++ LASX_D_DESC_BASE<"xvssrlni.du.q", int_loongarch_lasx_xvssrlni_du_q, LASX256DOpnd>; ++ ++ ++def XVSSRLRNI_B_H : LASX_I4_U<0b011101110101000001>, ++ LASX_2R_3R_U4_DESC_BASE<"xvssrlrni.b.h", int_loongarch_lasx_xvssrlrni_b_h, LASX256BOpnd, LASX256BOpnd>; ++ ++def XVSSRLRNI_H_W : LASX_I5_U<0b01110111010100001>, ++ LASX_2R_3R_U5_DESC_BASE<"xvssrlrni.h.w", int_loongarch_lasx_xvssrlrni_h_w, LASX256HOpnd, LASX256HOpnd>; ++ ++def XVSSRLRNI_W_D : LASX_I6_U<0b0111011101010001>, ++ LASX_2R_3R_U6_DESC_BASE<"xvssrlrni.w.d", int_loongarch_lasx_xvssrlrni_w_d, LASX256WOpnd, LASX256WOpnd>; ++ ++def XVSSRLRNI_D_Q : LASX_I7_U<0b011101110101001>, ++ LASX_2R_3R_U7_DESC_BASE<"xvssrlrni.d.q", int_loongarch_lasx_xvssrlrni_d_q, LASX256DOpnd, LASX256DOpnd>; ++ ++ ++def XVSSRLRNI_BU_H : LASX_I4_U<0b011101110101010001>, ++ LASX_U4_DESC_BASE<"xvssrlrni.bu.h", int_loongarch_lasx_xvssrlrni_bu_h, uimm4, immZExt4, LASX256BOpnd>; ++ ++def XVSSRLRNI_HU_W : LASX_I5_U<0b01110111010101001>, ++ LASX_N4_U5_DESC_BASE<"xvssrlrni.hu.w", int_loongarch_lasx_xvssrlrni_hu_w, uimm5, immZExt5, LASX256HOpnd>; ++ ++def XVSSRLRNI_WU_D : LASX_I6_U<0b0111011101010101>, ++ LASX_U6_DESC_BASE<"xvssrlrni.wu.d", int_loongarch_lasx_xvssrlrni_wu_d, uimm6, immZExt6, LASX256WOpnd>; ++ ++def XVSSRLRNI_DU_Q : LASX_I7_U<0b011101110101011>, ++ LASX_D_DESC_BASE<"xvssrlrni.du.q", int_loongarch_lasx_xvssrlrni_du_q, LASX256DOpnd>; ++ ++ ++def XVSRANI_B_H : LASX_I4_U<0b011101110101100001>, ++ LASX_2R_3R_U4_DESC_BASE<"xvsrani.b.h", int_loongarch_lasx_xvsrani_b_h, LASX256BOpnd, LASX256BOpnd>; ++ ++def XVSRANI_H_W : LASX_I5_U<0b01110111010110001>, ++ LASX_2R_3R_U5_DESC_BASE<"xvsrani.h.w", int_loongarch_lasx_xvsrani_h_w, LASX256HOpnd, LASX256HOpnd>; ++ ++def XVSRANI_W_D : LASX_I6_U<0b0111011101011001>, ++ LASX_2R_3R_U6_DESC_BASE<"xvsrani.w.d", int_loongarch_lasx_xvsrani_w_d, LASX256WOpnd, LASX256WOpnd>; ++ ++def XVSRANI_D_Q : LASX_I7_U<0b011101110101101>, ++ LASX_2R_3R_U7_DESC_BASE<"xvsrani.d.q", int_loongarch_lasx_xvsrani_d_q, LASX256DOpnd, LASX256DOpnd>; ++ ++ ++def XVSRARNI_B_H : LASX_I4_U<0b011101110101110001>, ++ LASX_U4_DESC_BASE<"xvsrarni.b.h", int_loongarch_lasx_xvsrarni_b_h, uimm4, immZExt4, LASX256BOpnd>; ++ ++def XVSRARNI_H_W : LASX_I5_U<0b01110111010111001>, ++ LASX_N4_U5_DESC_BASE<"xvsrarni.h.w", int_loongarch_lasx_xvsrarni_h_w, uimm5, immZExt5, LASX256HOpnd>; ++ ++def XVSRARNI_W_D : LASX_I6_U<0b0111011101011101>, ++ LASX_U6_DESC_BASE<"xvsrarni.w.d", int_loongarch_lasx_xvsrarni_w_d, uimm6, immZExt6, LASX256WOpnd>; ++ ++def XVSRARNI_D_Q : LASX_I7_U<0b011101110101111>, ++ LASX_D_DESC_BASE<"xvsrarni.d.q", int_loongarch_lasx_xvsrarni_d_q, LASX256DOpnd>; ++ ++ ++def XVSSRANI_B_H : LASX_I4_U<0b011101110110000001>, ++ LASX_U4_DESC_BASE<"xvssrani.b.h", int_loongarch_lasx_xvssrani_b_h, uimm4, immZExt4, LASX256BOpnd>; ++ ++def XVSSRANI_H_W : LASX_I5_U<0b01110111011000001>, ++ LASX_N4_U5_DESC_BASE<"xvssrani.h.w", int_loongarch_lasx_xvssrani_h_w, uimm5, immZExt5, LASX256HOpnd>; ++ ++def XVSSRANI_W_D : LASX_I6_U<0b0111011101100001>, ++ LASX_U6_DESC_BASE<"xvssrani.w.d", int_loongarch_lasx_xvssrani_w_d, uimm6, immZExt6, LASX256WOpnd>; ++ ++def XVSSRANI_D_Q : LASX_I7_U<0b011101110110001>, ++ LASX_D_DESC_BASE<"xvssrani.d.q", int_loongarch_lasx_xvssrani_d_q, LASX256DOpnd>; ++ ++ ++def XVSSRANI_BU_H : LASX_I4_U<0b011101110110010001>, ++ LASX_U4_DESC_BASE<"xvssrani.bu.h", int_loongarch_lasx_xvssrani_bu_h, uimm4, immZExt4, LASX256BOpnd>; ++ ++def XVSSRANI_HU_W : LASX_I5_U<0b01110111011001001>, ++ LASX_N4_U5_DESC_BASE<"xvssrani.hu.w", int_loongarch_lasx_xvssrani_hu_w, uimm5, immZExt5, LASX256HOpnd>; ++ ++def XVSSRANI_WU_D : LASX_I6_U<0b0111011101100101>, ++ LASX_U6_DESC_BASE<"xvssrani.wu.d", int_loongarch_lasx_xvssrani_wu_d, uimm6, immZExt6, LASX256WOpnd>; ++ ++def XVSSRANI_DU_Q : LASX_I7_U<0b011101110110011>, ++ LASX_D_DESC_BASE<"xvssrani.du.q", int_loongarch_lasx_xvssrani_du_q, LASX256DOpnd>; ++ ++ ++def XVSSRARNI_B_H : LASX_I4_U<0b011101110110100001>, ++ LASX_U4_DESC_BASE<"xvssrarni.b.h", int_loongarch_lasx_xvssrarni_b_h, uimm4, immZExt4, LASX256BOpnd>; ++ ++def XVSSRARNI_H_W : LASX_I5_U<0b01110111011010001>, ++ LASX_N4_U5_DESC_BASE<"xvssrarni.h.w", int_loongarch_lasx_xvssrarni_h_w, uimm5, immZExt5, LASX256HOpnd>; ++ ++def XVSSRARNI_W_D : LASX_I6_U<0b0111011101101001>, ++ LASX_U6_DESC_BASE<"xvssrarni.w.d", int_loongarch_lasx_xvssrarni_w_d, uimm6, immZExt6, LASX256WOpnd>; ++ ++def XVSSRARNI_D_Q : LASX_I7_U<0b011101110110101>, ++ LASX_D_DESC_BASE<"xvssrarni.d.q", int_loongarch_lasx_xvssrarni_d_q, LASX256DOpnd>; ++ ++ ++def XVSSRARNI_BU_H : LASX_I4_U<0b011101110110110001>, ++ LASX_U4_DESC_BASE<"xvssrarni.bu.h", int_loongarch_lasx_xvssrarni_bu_h, uimm4, immZExt4, LASX256BOpnd>; ++ ++def XVSSRARNI_HU_W : LASX_I5_U<0b01110111011011001>, ++ LASX_N4_U5_DESC_BASE<"xvssrarni.hu.w", int_loongarch_lasx_xvssrarni_hu_w, uimm5, immZExt5, LASX256HOpnd>; ++ ++def XVSSRARNI_WU_D : LASX_I6_U<0b0111011101101101>, ++ LASX_U6_DESC_BASE<"xvssrarni.wu.d", int_loongarch_lasx_xvssrarni_wu_d, uimm6, immZExt6, LASX256WOpnd>; ++ ++def XVSSRARNI_DU_Q : LASX_I7_U<0b011101110110111>, ++ LASX_D_DESC_BASE<"xvssrarni.du.q", int_loongarch_lasx_xvssrarni_du_q, LASX256DOpnd>; ++ ++ ++def XVEXTRINS_B : LASX_I8_U<0b01110111100011>, ++ LASX_2R_3R_U8_DESC_BASE<"xvextrins.b", int_loongarch_lasx_xvextrins_b, LASX256BOpnd, LASX256BOpnd>; ++ ++def XVEXTRINS_H : LASX_I8_U<0b01110111100010>, ++ LASX_2R_3R_U8_DESC_BASE<"xvextrins.h", int_loongarch_lasx_xvextrins_h, LASX256HOpnd, LASX256HOpnd>; ++ ++def XVEXTRINS_W : LASX_I8_U<0b01110111100001>, ++ LASX_2R_3R_U8_DESC_BASE<"xvextrins.w", int_loongarch_lasx_xvextrins_w, LASX256WOpnd, LASX256WOpnd>; ++ ++def XVEXTRINS_D : LASX_I8_U<0b01110111100000>, ++ LASX_2R_3R_U8_DESC_BASE<"xvextrins.d", int_loongarch_lasx_xvextrins_d, LASX256DOpnd, LASX256DOpnd>; ++ ++ ++def XVSHUF4I_B : LASX_I8_U<0b01110111100100>, ++ LASX_I8_SHF_DESC_BASE<"xvshuf4i.b", int_loongarch_lasx_xvshuf4i_b, LASX256BOpnd>; ++ ++def XVSHUF4I_H : LASX_I8_U<0b01110111100101>, ++ LASX_I8_SHF_DESC_BASE<"xvshuf4i.h", int_loongarch_lasx_xvshuf4i_h, LASX256HOpnd>; ++ ++def XVSHUF4I_W : LASX_I8_U<0b01110111100110>, ++ LASX_I8_SHF_DESC_BASE<"xvshuf4i.w", int_loongarch_lasx_xvshuf4i_w, LASX256WOpnd>; ++ ++def XVSHUF4I_D : LASX_I8_U<0b01110111100111>, ++ LASX_I8_O4_SHF_DESC_BASE<"xvshuf4i.d", int_loongarch_lasx_xvshuf4i_d, LASX256DOpnd>; ++ ++ ++def XVBITSELI_B : LASX_I8_U<0b01110111110001>, ++ LASX_2R_3R_U8_DESC_BASE<"xvbitseli.b", int_loongarch_lasx_xvbitseli_b, LASX256BOpnd, LASX256BOpnd>; ++ ++ ++def XVANDI_B : LASX_I8_U<0b01110111110100>, ++ LASX_2R_U8_DESC_BASE<"xvandi.b", int_loongarch_lasx_xvandi_b, LASX256BOpnd, LASX256BOpnd>; ++ ++ ++def XVORI_B : LASX_I8_U<0b01110111110101>, ++ LASX_2R_U8_DESC_BASE<"xvori.b", int_loongarch_lasx_xvori_b, LASX256BOpnd, LASX256BOpnd>; ++ ++ ++def XVXORI_B : LASX_I8_U<0b01110111110110>, ++ LASX_2R_U8_DESC_BASE<"xvxori.b", int_loongarch_lasx_xvxori_b, LASX256BOpnd, LASX256BOpnd>; ++ ++ ++def XVNORI_B : LASX_I8_U<0b01110111110111>, ++ LASX_2R_U8_DESC_BASE<"xvnori.b", int_loongarch_lasx_xvnori_b, LASX256BOpnd, LASX256BOpnd>; ++ ++ ++def XVLDI : LASX_1R_I13<0b01110111111000>, ++ LASX_I13_DESC_BASE<"xvldi", int_loongarch_lasx_xvldi, i32, simm13Op, LASX256DOpnd>; ++ ++def XVLDI_B : LASX_1R_I13_I10<0b01110111111000000>, ++ LASX_I13_DESC_BASE_tmp<"xvldi", LASX256BOpnd>; ++ ++def XVLDI_H : LASX_1R_I13_I10<0b01110111111000001>, ++ LASX_I13_DESC_BASE_tmp<"xvldi", LASX256HOpnd>; ++ ++def XVLDI_W : LASX_1R_I13_I10<0b01110111111000010>, ++ LASX_I13_DESC_BASE_tmp<"xvldi", LASX256WOpnd>; ++ ++def XVLDI_D : LASX_1R_I13_I10<0b01110111111000011>, ++ LASX_I13_DESC_BASE_tmp<"xvldi", LASX256DOpnd>; ++ ++ ++def XVPERMI_W : LASX_I8_U<0b01110111111001>, ++ LASX_2R_3R_U8_DESC_BASE<"xvpermi.w", int_loongarch_lasx_xvpermi_w, LASX256WOpnd, LASX256WOpnd>; ++ ++def XVPERMI_D : LASX_I8_U<0b01110111111010>, ++ LASX_2R_U8_DESC_BASE<"xvpermi.d", int_loongarch_lasx_xvpermi_d, LASX256DOpnd, LASX256DOpnd>; ++ ++def XVPERMI_Q : LASX_I8_U<0b01110111111011>, ++ LASX_2R_3R_U8_DESC_BASE<"xvpermi.q", int_loongarch_lasx_xvpermi_q, LASX256BOpnd, LASX256BOpnd>; ++ ++ ++//Pat ++ ++class LASXBitconvertPat preds = [HasLASX]> : ++ LASXPat<(DstVT (bitconvert SrcVT:$src)), ++ (COPY_TO_REGCLASS SrcVT:$src, DstRC), preds>; ++ ++// These are endian-independent because the element size doesnt change ++def : LASXBitconvertPat; ++def : LASXBitconvertPat; ++def : LASXBitconvertPat; ++def : LASXBitconvertPat; ++ ++def : LASXBitconvertPat; ++def : LASXBitconvertPat; ++def : LASXBitconvertPat; ++def : LASXBitconvertPat; ++def : LASXBitconvertPat; ++ ++def : LASXBitconvertPat; ++def : LASXBitconvertPat; ++def : LASXBitconvertPat; ++def : LASXBitconvertPat; ++def : LASXBitconvertPat; ++ ++def : LASXBitconvertPat; ++def : LASXBitconvertPat; ++def : LASXBitconvertPat; ++def : LASXBitconvertPat; ++ ++def : LASXBitconvertPat; ++def : LASXBitconvertPat; ++def : LASXBitconvertPat; ++def : LASXBitconvertPat; ++ ++def : LASXBitconvertPat; ++def : LASXBitconvertPat; ++def : LASXBitconvertPat; ++def : LASXBitconvertPat; ++ ++def : LASXBitconvertPat; ++def : LASXBitconvertPat; ++def : LASXBitconvertPat; ++def : LASXBitconvertPat; ++ ++class LASX_XINSERT_PSEUDO_BASE : ++ LASXPseudo<(outs ROXD:$xd), (ins ROXD:$xd_in, ImmOp:$n, ROFS:$fs), ++ [(set ROXD:$xd, (OpNode (Ty ROXD:$xd_in), ROFS:$fs, Imm:$n))]> { ++ bit usesCustomInserter = 1; ++ string Constraints = "$xd = $xd_in"; ++} ++ ++class XINSERT_H_PSEUDO_DESC : LASX_XINSERT_PSEUDO_BASE; ++ ++class XINSERT_H64_PSEUDO_DESC : LASX_XINSERT_PSEUDO_BASE; ++ ++def XINSERT_H_PSEUDO : XINSERT_H_PSEUDO_DESC; ++def XINSERT_H64_PSEUDO : XINSERT_H64_PSEUDO_DESC; ++ ++class XINSERT_B_PSEUDO_DESC : LASX_XINSERT_PSEUDO_BASE; ++def XINSERT_B_PSEUDO : XINSERT_B_PSEUDO_DESC; ++ ++ ++class LASX_COPY_PSEUDO_BASE : ++ LASXPseudo<(outs RCD:$xd), (ins RCWS:$xj, ImmOp:$n), ++ [(set RCD:$xd, (OpNode (VecTy RCWS:$xj), Imm:$n))]> { ++ bit usesCustomInserter = 1; ++} ++ ++class XCOPY_FW_PSEUDO_DESC : LASX_COPY_PSEUDO_BASE; ++class XCOPY_FD_PSEUDO_DESC : LASX_COPY_PSEUDO_BASE; ++def XCOPY_FW_PSEUDO : XCOPY_FW_PSEUDO_DESC; ++def XCOPY_FD_PSEUDO : XCOPY_FD_PSEUDO_DESC; ++ ++ ++ ++class LASX_XINSERT_VIDX_PSEUDO_BASE : ++ LASXPseudo<(outs ROXD:$xd), (ins ROXD:$xd_in, ROIdx:$n, ROFS:$fs), ++ [(set ROXD:$xd, (OpNode (Ty ROXD:$xd_in), ROFS:$fs, ROIdx:$n))]> { ++ bit usesCustomInserter = 1; ++ string Constraints = "$xd = $xd_in"; ++} ++ ++ ++class XINSERT_FW_PSEUDO_DESC : LASX_XINSERT_PSEUDO_BASE; ++def XINSERT_FW_PSEUDO : XINSERT_FW_PSEUDO_DESC; ++ ++class XINSERT_FW_VIDX_PSEUDO_DESC : ++ LASX_XINSERT_VIDX_PSEUDO_BASE; ++class XINSERT_FW_VIDX64_PSEUDO_DESC : ++ LASX_XINSERT_VIDX_PSEUDO_BASE; ++ ++def XINSERT_FW_VIDX_PSEUDO : XINSERT_FW_VIDX_PSEUDO_DESC; ++def XINSERT_FW_VIDX64_PSEUDO : XINSERT_FW_VIDX64_PSEUDO_DESC; ++ ++class XINSERT_B_VIDX64_PSEUDO_DESC : ++ LASX_XINSERT_VIDX_PSEUDO_BASE; ++ ++def XINSERT_B_VIDX64_PSEUDO : XINSERT_B_VIDX64_PSEUDO_DESC; ++ ++ ++class XINSERT_B_VIDX_PSEUDO_DESC : ++ LASX_XINSERT_VIDX_PSEUDO_BASE; ++ ++def XINSERT_B_VIDX_PSEUDO : XINSERT_B_VIDX_PSEUDO_DESC; ++ ++ ++class XINSERTPostRA : ++ LoongArchPseudo<(outs RC:$xd), (ins RC:$xd_in, RD:$n, RE:$fs), []> { ++ let mayLoad = 1; ++ let mayStore = 1; ++} ++ ++def XINSERT_B_VIDX_PSEUDO_POSTRA : XINSERTPostRA; ++def XINSERT_B_VIDX64_PSEUDO_POSTRA : XINSERTPostRA; ++def XINSERT_FW_VIDX_PSEUDO_POSTRA : XINSERTPostRA; ++def XINSERT_FW_VIDX64_PSEUDO_POSTRA : XINSERTPostRA; ++ ++class XINSERT_FD_PSEUDO_DESC : LASX_XINSERT_PSEUDO_BASE; ++ ++def XINSERT_FD_PSEUDO : XINSERT_FD_PSEUDO_DESC; ++ ++class LASX_2R_FILL_PSEUDO_BASE : ++ LASXPseudo<(outs RCWD:$xd), (ins RCWS:$fs), ++ [(set RCWD:$xd, (OpNode RCWS:$fs))]> { ++ let usesCustomInserter = 1; ++} ++ ++class XFILL_FW_PSEUDO_DESC : LASX_2R_FILL_PSEUDO_BASE; ++class XFILL_FD_PSEUDO_DESC : LASX_2R_FILL_PSEUDO_BASE; ++def XFILL_FW_PSEUDO : XFILL_FW_PSEUDO_DESC; ++def XFILL_FD_PSEUDO : XFILL_FD_PSEUDO_DESC; ++ ++class LASX_CONCAT_VECTORS_PSEUDO_BASE : ++ LASXPseudo<(outs ROXD:$xd), (ins ROXJ:$xs, ROXK:$xt), ++ [(set ROXD:$xd, (Ty (concat_vectors (SubTy ROXJ:$xs), (SubTy ROXK:$xt))))]> { ++ bit usesCustomInserter = 1; ++} ++ ++class CONCAT_VECTORS_B_PSEUDO_DESC : ++ LASX_CONCAT_VECTORS_PSEUDO_BASE; ++class CONCAT_VECTORS_H_PSEUDO_DESC : ++ LASX_CONCAT_VECTORS_PSEUDO_BASE; ++class CONCAT_VECTORS_W_PSEUDO_DESC : ++ LASX_CONCAT_VECTORS_PSEUDO_BASE; ++class CONCAT_VECTORS_D_PSEUDO_DESC : ++ LASX_CONCAT_VECTORS_PSEUDO_BASE; ++ ++class CONCAT_VECTORS_FW_PSEUDO_DESC : ++ LASX_CONCAT_VECTORS_PSEUDO_BASE; ++class CONCAT_VECTORS_FD_PSEUDO_DESC : ++ LASX_CONCAT_VECTORS_PSEUDO_BASE; ++ ++def CONCAT_VECTORS_B_PSEUDO : CONCAT_VECTORS_B_PSEUDO_DESC; ++def CONCAT_VECTORS_H_PSEUDO : CONCAT_VECTORS_H_PSEUDO_DESC; ++def CONCAT_VECTORS_W_PSEUDO : CONCAT_VECTORS_W_PSEUDO_DESC; ++def CONCAT_VECTORS_D_PSEUDO : CONCAT_VECTORS_D_PSEUDO_DESC; ++def CONCAT_VECTORS_FW_PSEUDO : CONCAT_VECTORS_FW_PSEUDO_DESC; ++def CONCAT_VECTORS_FD_PSEUDO : CONCAT_VECTORS_FD_PSEUDO_DESC; ++ ++ ++class LASX_COPY_GPR_PSEUDO_BASE : ++ LASXPseudo<(outs ROXD:$xd), (ins ROFS:$xj, ROIdx:$n), ++ [(set ROXD:$xd, (OpNode (VecTy ROFS:$xj), ROIdx:$n))]> { ++ bit usesCustomInserter = 1; ++} ++ ++class XCOPY_FW_GPR_PSEUDO_DESC : LASX_COPY_GPR_PSEUDO_BASE; ++def XCOPY_FW_GPR_PSEUDO : XCOPY_FW_GPR_PSEUDO_DESC; ++ ++ ++let isCodeGenOnly = 1 in { ++ ++def XVLD_H : LASX_I12_S<0b0010110010>, ++ LASX_LD<"xvld", load, v16i16, LASX256HOpnd, mem>; ++ ++def XVLD_W : LASX_I12_S<0b0010110010>, ++ LASX_LD<"xvld", load, v8i32, LASX256WOpnd, mem>; ++ ++def XVLD_D : LASX_I12_S<0b0010110010>, ++ LASX_LD<"xvld", load, v4i64, LASX256DOpnd, mem>; ++ ++ ++def XVST_H : LASX_I12_S<0b0010110011>, ++ LASX_ST<"xvst", store, v16i16, LASX256HOpnd, mem_simm12>; ++ ++def XVST_W : LASX_I12_S<0b0010110011>, ++ LASX_ST<"xvst", store, v8i32, LASX256WOpnd, mem_simm12>; ++ ++def XVST_D : LASX_I12_S<0b0010110011>, ++ LASX_ST<"xvst", store, v4i64, LASX256DOpnd, mem_simm12>; ++ ++ ++def XVREPLVE_W_N : LASX_3R_1GP<0b01110101001000110>, ++ LASX_3R_VREPLVE_DESC_BASE_N<"xvreplve.w", LASX256WOpnd>; ++ ++ ++def XVANDI_B_N : LASX_I8_U<0b01110111110100>, ++ LASX_BIT_U8_DESC_BASE<"xvandi.b", and, xvsplati8_uimm8, LASX256BOpnd>; ++ ++ ++def XVXORI_B_N : LASX_I8_U<0b01110111110110>, ++ LASX_BIT_U8_DESC_BASE<"xvxori.b", xor, xvsplati8_uimm8, LASX256BOpnd>; ++ ++ ++def XVSRAI_B_N : LASX_I3_U<0b0111011100110100001>, ++ LASX_BIT_U3_VREPLVE_DESC_BASE<"xvsrai.b", sra, xvsplati8_uimm3, LASX256BOpnd>; ++ ++def XVSRAI_H_N : LASX_I4_U<0b011101110011010001>, ++ LASX_BIT_U4_VREPLVE_DESC_BASE<"xvsrai.h", sra, xvsplati16_uimm4, LASX256HOpnd>; ++ ++def XVSRAI_W_N : LASX_I5_U<0b01110111001101001>, ++ LASX_BIT_U5_VREPLVE_DESC_BASE<"xvsrai.w", sra, xvsplati32_uimm5, LASX256WOpnd>; ++ ++def XVSRAI_D_N : LASX_I6_U<0b0111011100110101>, ++ LASX_BIT_U6_VREPLVE_DESC_BASE<"xvsrai.d", sra, xvsplati64_uimm6, LASX256DOpnd>; ++ ++ ++def XVSLLI_B_N : LASX_I3_U<0b0111011100101100001>, ++ LASX_BIT_U3_VREPLVE_DESC_BASE<"xvslli.b", shl, xvsplati8_uimm3, LASX256BOpnd>; ++ ++def XVSLLI_H_N : LASX_I4_U<0b011101110010110001>, ++ LASX_BIT_U4_VREPLVE_DESC_BASE<"xvslli.h", shl, xvsplati16_uimm4, LASX256HOpnd>; ++ ++def XVSLLI_W_N : LASX_I5_U<0b01110111001011001>, ++ LASX_BIT_U5_VREPLVE_DESC_BASE<"xvslli.w", shl, xvsplati32_uimm5, LASX256WOpnd>; ++ ++def XVSLLI_D_N : LASX_I6_U<0b0111011100101101>, ++ LASX_BIT_U6_VREPLVE_DESC_BASE<"xvslli.d", shl, xvsplati64_uimm6, LASX256DOpnd>; ++ ++ ++def XVSRLI_B_N : LASX_I3_U<0b0111011100110000001>, ++ LASX_BIT_U3_VREPLVE_DESC_BASE<"xvsrli.b", srl, xvsplati8_uimm3, LASX256BOpnd>; ++ ++def XVSRLI_H_N : LASX_I4_U<0b011101110011000001>, ++ LASX_BIT_U4_VREPLVE_DESC_BASE<"xvsrli.h", srl, xvsplati16_uimm4, LASX256HOpnd>; ++ ++def XVSRLI_W_N : LASX_I5_U<0b01110111001100001>, ++ LASX_BIT_U5_VREPLVE_DESC_BASE<"xvsrli.w", srl, xvsplati32_uimm5, LASX256WOpnd>; ++ ++def XVSRLI_D_N : LASX_I6_U<0b0111011100110001>, ++ LASX_BIT_U6_VREPLVE_DESC_BASE<"xvsrli.d", srl, xvsplati64_uimm6, LASX256DOpnd>; ++ ++ ++def XVMAXI_B_N : LASX_I5<0b01110110100100000>, ++ LASX_I5_DESC_BASE<"xvmaxi.b", smax, xvsplati8_simm5, LASX256BOpnd>; ++ ++def XVMAXI_H_N : LASX_I5<0b01110110100100001>, ++ LASX_I5_DESC_BASE<"xvmaxi.h", smax, xvsplati16_simm5, LASX256HOpnd>; ++ ++def XVMAXI_W_N : LASX_I5<0b01110110100100010>, ++ LASX_I5_DESC_BASE<"xvmaxi.w", smax, xvsplati32_simm5, LASX256WOpnd>; ++ ++def XVMAXI_D_N : LASX_I5<0b01110110100100011>, ++ LASX_I5_DESC_BASE<"xvmaxi.d", smax, xvsplati64_simm5, LASX256DOpnd>; ++ ++ ++def XVMINI_B_N : LASX_I5<0b01110110100100100>, ++ LASX_I5_DESC_BASE<"xvmini.b", smin, xvsplati8_simm5, LASX256BOpnd>; ++ ++def XVMINI_H_N : LASX_I5<0b01110110100100101>, ++ LASX_I5_DESC_BASE<"xvmini.h", smin, xvsplati16_simm5, LASX256HOpnd>; ++ ++def XVMINI_W_N : LASX_I5<0b01110110100100110>, ++ LASX_I5_DESC_BASE<"xvmini.w", smin, xvsplati32_simm5, LASX256WOpnd>; ++ ++def XVMINI_D_N : LASX_I5<0b01110110100100111>, ++ LASX_I5_DESC_BASE<"xvmini.d", smin, xvsplati64_simm5, LASX256DOpnd>; ++ ++ ++def XVMAXI_BU_N : LASX_I5_U<0b01110110100101000>, ++ LASX_I5_U_DESC_BASE<"xvmaxi.bu", umax, xvsplati8_uimm5, LASX256BOpnd>; ++ ++def XVMAXI_HU_N : LASX_I5_U<0b01110110100101001>, ++ LASX_I5_U_DESC_BASE<"xvmaxi.hu", umax, xvsplati16_uimm5, LASX256HOpnd>; ++ ++def XVMAXI_WU_N : LASX_I5_U<0b01110110100101010>, ++ LASX_I5_U_DESC_BASE<"xvmaxi.wu", umax, xvsplati32_uimm5, LASX256WOpnd>; ++ ++def XVMAXI_DU_N : LASX_I5_U<0b01110110100101011>, ++ LASX_I5_U_DESC_BASE<"xvmaxi.du", umax, xvsplati64_uimm5, LASX256DOpnd>; ++ ++ ++def XVMINI_BU_N : LASX_I5_U<0b01110110100101100>, ++ LASX_I5_U_DESC_BASE<"xvmini.bu", umin, xvsplati8_uimm5, LASX256BOpnd>; ++ ++def XVMINI_HU_N : LASX_I5_U<0b01110110100101101>, ++ LASX_I5_U_DESC_BASE<"xvmini.hu", umin, xvsplati16_uimm5, LASX256HOpnd>; ++ ++def XVMINI_WU_N : LASX_I5_U<0b01110110100101110>, ++ LASX_I5_U_DESC_BASE<"xvmini.wu", umin, xvsplati32_uimm5, LASX256WOpnd>; ++ ++def XVMINI_DU_N : LASX_I5_U<0b01110110100101111>, ++ LASX_I5_U_DESC_BASE<"xvmini.du", umin, xvsplati64_uimm5, LASX256DOpnd>; ++ ++ ++def XVSEQI_B_N : LASX_I5<0b01110110100000000>, ++ LASX_I5_SETCC_DESC_BASE<"xvseqi.b", SETEQ, v32i8, xvsplati8_simm5, LASX256BOpnd>; ++ ++def XVSEQI_H_N : LASX_I5<0b01110110100000001>, ++ LASX_I5_SETCC_DESC_BASE<"xvseqi.h", SETEQ, v16i16, xvsplati16_simm5, LASX256HOpnd>; ++ ++def XVSEQI_W_N : LASX_I5<0b01110110100000010>, ++ LASX_I5_SETCC_DESC_BASE<"xvseqi.w", SETEQ, v8i32, xvsplati32_simm5, LASX256WOpnd>; ++ ++def XVSEQI_D_N : LASX_I5<0b01110110100000011>, ++ LASX_I5_SETCC_DESC_BASE<"xvseqi.d", SETEQ, v4i64, xvsplati64_simm5, LASX256DOpnd>; ++ ++ ++def XVSLEI_B_N : LASX_I5<0b01110110100000100>, ++ LASX_I5_SETCC_DESC_BASE<"xvslei.b", SETLE, v32i8, xvsplati8_simm5, LASX256BOpnd>; ++ ++def XVSLEI_H_N : LASX_I5<0b01110110100000101>, ++ LASX_I5_SETCC_DESC_BASE<"xvslei.h", SETLE, v16i16, xvsplati16_simm5, LASX256HOpnd>; ++ ++def XVSLEI_W_N : LASX_I5<0b01110110100000110>, ++ LASX_I5_SETCC_DESC_BASE<"xvslei.w", SETLE, v8i32, xvsplati32_simm5, LASX256WOpnd>; ++ ++def XVSLEI_D_N : LASX_I5<0b01110110100000111>, ++ LASX_I5_SETCC_DESC_BASE<"xvslei.d", SETLE, v4i64, xvsplati64_simm5, LASX256DOpnd>; ++ ++ ++def XVSLEI_BU_N : LASX_I5_U<0b01110110100001000>, ++ LASX_I5_U_SETCC_DESC_BASE<"xvslei.bu", SETULE, v32i8, xvsplati8_uimm5, LASX256BOpnd>; ++ ++def XVSLEI_HU_N : LASX_I5_U<0b01110110100001001>, ++ LASX_I5_U_SETCC_DESC_BASE<"xvslei.hu", SETULE, v16i16, xvsplati16_uimm5, LASX256HOpnd>; ++ ++def XVSLEI_WU_N : LASX_I5_U<0b01110110100001010>, ++ LASX_I5_U_SETCC_DESC_BASE<"xvslei.wu", SETULE, v8i32, xvsplati32_uimm5, LASX256WOpnd>; ++ ++def XVSLEI_DU_N : LASX_I5_U<0b01110110100001011>, ++ LASX_I5_U_SETCC_DESC_BASE<"xvslei.du", SETULE, v4i64, xvsplati64_uimm5, LASX256DOpnd>; ++ ++ ++def XVSLTI_B_N : LASX_I5<0b01110110100001100>, ++ LASX_I5_SETCC_DESC_BASE<"xvslti.b", SETLT, v32i8, xvsplati8_simm5, LASX256BOpnd>; ++ ++def XVSLTI_H_N : LASX_I5<0b01110110100001101>, ++ LASX_I5_SETCC_DESC_BASE<"xvslti.h", SETLT, v16i16, xvsplati16_simm5, LASX256HOpnd>; ++ ++def XVSLTI_W_N : LASX_I5<0b01110110100001110>, ++ LASX_I5_SETCC_DESC_BASE<"xvslti.w", SETLT, v8i32, xvsplati32_simm5, LASX256WOpnd>; ++ ++def XVSLTI_D_N : LASX_I5<0b01110110100001111>, ++ LASX_I5_SETCC_DESC_BASE<"xvslti.d", SETLT, v4i64, xvsplati64_simm5, LASX256DOpnd>; ++ ++ ++def XVSLTI_BU_N : LASX_I5_U<0b01110110100010000>, ++ LASX_I5_U_SETCC_DESC_BASE<"xvslti.bu", SETULT, v32i8, xvsplati8_uimm5, LASX256BOpnd>; ++ ++def XVSLTI_HU_N : LASX_I5_U<0b01110110100010001>, ++ LASX_I5_U_SETCC_DESC_BASE<"xvslti.hu", SETULT, v16i16, xvsplati16_uimm5, LASX256HOpnd>; ++ ++def XVSLTI_WU_N : LASX_I5_U<0b01110110100010010>, ++ LASX_I5_U_SETCC_DESC_BASE<"xvslti.wu", SETULT, v8i32, xvsplati32_uimm5, LASX256WOpnd>; ++ ++def XVSLTI_DU_N : LASX_I5_U<0b01110110100010011>, ++ LASX_I5_U_SETCC_DESC_BASE<"xvslti.du", SETULT, v4i64, xvsplati64_uimm5, LASX256DOpnd>; ++ ++ ++def XVADDI_BU_N : LASX_I5_U<0b01110110100010100>, ++ LASX_I5_U_DESC_BASE<"xvaddi.bu", add, xvsplati8_uimm5, LASX256BOpnd>; ++ ++def XVADDI_HU_N : LASX_I5_U<0b01110110100010101>, ++ LASX_I5_U_DESC_BASE<"xvaddi.hu", add, xvsplati16_uimm5, LASX256HOpnd>; ++ ++def XVADDI_WU_N : LASX_I5_U<0b01110110100010110>, ++ LASX_I5_U_DESC_BASE<"xvaddi.wu", add, xvsplati32_uimm5, LASX256WOpnd>; ++ ++def XVADDI_DU_N : LASX_I5_U<0b01110110100010111>, ++ LASX_I5_U_DESC_BASE<"xvaddi.du", add, xvsplati64_uimm5, LASX256DOpnd>; ++ ++ ++def XVSUBI_BU_N : LASX_I5_U<0b01110110100011000>, ++ LASX_I5_U_DESC_BASE<"xvsubi.bu", sub, xvsplati8_uimm5, LASX256BOpnd>; ++ ++def XVSUBI_HU_N : LASX_I5_U<0b01110110100011001>, ++ LASX_I5_U_DESC_BASE<"xvsubi.hu", sub, xvsplati16_uimm5, LASX256HOpnd>; ++ ++def XVSUBI_WU_N : LASX_I5_U<0b01110110100011010>, ++ LASX_I5_U_DESC_BASE<"xvsubi.wu", sub, xvsplati32_uimm5, LASX256WOpnd>; ++ ++def XVSUBI_DU_N : LASX_I5_U<0b01110110100011011>, ++ LASX_I5_U_DESC_BASE<"xvsubi.du", sub, xvsplati64_uimm5, LASX256DOpnd>; ++ ++ ++def XVPERMI_QH : LASX_I8_U<0b01110111111011>, ++ LASX_2RN_3R_U8_DESC_BASE<"xvpermi.q", LASX256HOpnd, LASX256HOpnd>; ++ ++def XVPERMI_QW : LASX_I8_U<0b01110111111011>, ++ LASX_2RN_3R_U8_DESC_BASE<"xvpermi.q", LASX256WOpnd, LASX256WOpnd>; ++ ++def XVPERMI_QD : LASX_I8_U<0b01110111111011>, ++ LASX_2RN_3R_U8_DESC_BASE<"xvpermi.q", LASX256DOpnd, LASX256DOpnd>; ++ ++ ++def XVBITSELI_B_N : LASX_I8_U<0b01110111110001>, ++ LASX_2R_3R_U8_SELECT<"xvbitseli.b", vselect, LASX256BOpnd, LASX256BOpnd>; ++ ++} ++ ++ ++def : LASXPat<(v8f32 (load addrimm12:$addr)), (XVLD_W addrimm12:$addr)>; ++def : LASXPat<(v4f64 (load addrimm12:$addr)), (XVLD_D addrimm12:$addr)>; ++ ++def XVST_FW : LASXPat<(store (v8f32 LASX256W:$xj), addrimm12:$addr), ++ (XVST_W LASX256W:$xj, addrimm12:$addr)>; ++def XVST_FD : LASXPat<(store (v4f64 LASX256D:$xj), addrimm12:$addr), ++ (XVST_D LASX256D:$xj, addrimm12:$addr)>; ++ ++def XVNEG_FW : LASXPat<(fneg (v8f32 LASX256W:$xj)), ++ (XVBITREVI_W LASX256W:$xj, 31)>; ++def XVNEG_FD : LASXPat<(fneg (v4f64 LASX256D:$xj)), ++ (XVBITREVI_D LASX256D:$xj, 63)>; ++ ++ ++def : LASXPat<(v4i64 (LoongArchVABSD v4i64:$xj, v4i64:$xk, (i32 0))), ++ (v4i64 (XVABSD_D $xj, $xk))>; ++ ++def : LASXPat<(v8i32 (LoongArchVABSD v8i32:$xj, v8i32:$xk, (i32 0))), ++ (v8i32 (XVABSD_W $xj, $xk))>; ++ ++def : LASXPat<(v16i16 (LoongArchVABSD v16i16:$xj, v16i16:$xk, (i32 0))), ++ (v16i16 (XVABSD_H $xj, $xk))>; ++ ++def : LASXPat<(v32i8 (LoongArchVABSD v32i8:$xj, v32i8:$xk, (i32 0))), ++ (v32i8 (XVABSD_B $xj, $xk))>; ++ ++def : LASXPat<(v4i64 (LoongArchUVABSD v4i64:$xj, v4i64:$xk, (i32 0))), ++ (v4i64 (XVABSD_DU $xj, $xk))>; ++ ++def : LASXPat<(v8i32 (LoongArchUVABSD v8i32:$xj, v8i32:$xk, (i32 0))), ++ (v8i32 (XVABSD_WU $xj, $xk))>; ++ ++def : LASXPat<(v16i16 (LoongArchUVABSD v16i16:$xj, v16i16:$xk, (i32 0))), ++ (v16i16 (XVABSD_HU $xj, $xk))>; ++ ++def : LASXPat<(v32i8 (LoongArchUVABSD v32i8:$xj, v32i8:$xk, (i32 0))), ++ (v32i8 (XVABSD_BU $xj, $xk))>; ++ ++ ++def : LASXPat<(or v32i8:$vj, (shl vsplat_imm_eq_1, v32i8:$vk)), ++ (XVBITSET_B v32i8:$vj, v32i8:$vk)>; ++def : LASXPat<(or v16i16:$vj, (shl vsplat_imm_eq_1, v16i16:$vk)), ++ (XVBITSET_H v16i16:$vj, v16i16:$vk)>; ++def : LASXPat<(or v8i32:$vj, (shl vsplat_imm_eq_1, v8i32:$vk)), ++ (XVBITSET_W v8i32:$vj, v8i32:$vk)>; ++def : LASXPat<(or v4i64:$vj, (shl vsplat_imm_eq_1, v4i64:$vk)), ++ (XVBITSET_D v4i64:$vj, v4i64:$vk)>; ++ ++def : LASXPat<(xor v32i8:$vj, (shl xvsplat_imm_eq_1, v32i8:$vk)), ++ (XVBITREV_B v32i8:$vj, v32i8:$vk)>; ++def : LASXPat<(xor v16i16:$vj, (shl xvsplat_imm_eq_1, v16i16:$vk)), ++ (XVBITREV_H v16i16:$vj, v16i16:$vk)>; ++def : LASXPat<(xor v8i32:$vj, (shl xvsplat_imm_eq_1, v8i32:$vk)), ++ (XVBITREV_W v8i32:$vj, v8i32:$vk)>; ++def : LASXPat<(xor v4i64:$vj, (shl (v4i64 xvsplati64_imm_eq_1), v4i64:$vk)), ++ (XVBITREV_D v4i64:$vj, v4i64:$vk)>; ++ ++def : LASXPat<(and v32i8:$vj, (xor (shl vsplat_imm_eq_1, v32i8:$vk), immAllOnesV)), ++ (XVBITCLR_B v32i8:$vj, v32i8:$vk)>; ++def : LASXPat<(and v16i16:$vj, (xor (shl vsplat_imm_eq_1, v16i16:$vk), immAllOnesV)), ++ (XVBITCLR_H v16i16:$vj, v16i16:$vk)>; ++def : LASXPat<(and v8i32:$vj, (xor (shl vsplat_imm_eq_1, v8i32:$vk), immAllOnesV)), ++ (XVBITCLR_W v8i32:$vj, v8i32:$vk)>; ++def : LASXPat<(and v4i64:$vj, (xor (shl (v4i64 vsplati64_imm_eq_1), v4i64:$vk), (bitconvert (v8i32 immAllOnesV)))), ++ (XVBITCLR_D v4i64:$vj, v4i64:$vk)>; ++ ++def xvsplati64_imm_eq_63 : PatLeaf<(bitconvert (v8i32 (build_vector))), [{ ++ APInt Imm; ++ SDNode *BV = N->getOperand(0).getNode(); ++ EVT EltTy = N->getValueType(0).getVectorElementType(); ++ ++ return selectVSplat(BV, Imm, EltTy.getSizeInBits()) && ++ Imm.getBitWidth() == EltTy.getSizeInBits() && Imm == 63; ++}]>; ++ ++def xvsplati8imm7 : PatFrag<(ops node:$wt), ++ (and node:$wt, (xvsplati8 immi32Cst7))>; ++def xvsplati16imm15 : PatFrag<(ops node:$wt), ++ (and node:$wt, (xvsplati16 immi32Cst15))>; ++def xvsplati32imm31 : PatFrag<(ops node:$wt), ++ (and node:$wt, (xvsplati32 immi32Cst31))>; ++def xvsplati64imm63 : PatFrag<(ops node:$wt), ++ (and node:$wt, xvsplati64_imm_eq_63)>; ++ ++ ++class LASXShiftPat : ++ LASXPat<(VT (Node VT:$vs, (VT (and VT:$vt, Vec)))), ++ (VT (Insn VT:$vs, VT:$vt))>; ++ ++class LASXBitPat : ++ LASXPat<(VT (Node VT:$vs, (shl vsplat_imm_eq_1, (Frag VT:$vt)))), ++ (VT (Insn VT:$vs, VT:$vt))>; ++ ++multiclass LASXShiftPats { ++ def : LASXShiftPat(Insn#_B), ++ (xvsplati8 immi32Cst7)>; ++ def : LASXShiftPat(Insn#_H), ++ (xvsplati16 immi32Cst15)>; ++ def : LASXShiftPat(Insn#_W), ++ (xvsplati32 immi32Cst31)>; ++ def : LASXPat<(v4i64 (Node v4i64:$vs, (v4i64 (and v4i64:$vt, ++ xvsplati64_imm_eq_63)))), ++ (v4i64 (!cast(Insn#_D) v4i64:$vs, v4i64:$vt))>; ++} ++ ++multiclass LASXBitPats { ++ def : LASXBitPat(Insn#_B), xvsplati8imm7>; ++ def : LASXBitPat(Insn#_H), xvsplati16imm15>; ++ def : LASXBitPat(Insn#_W), xvsplati32imm31>; ++ def : LASXPat<(Node v4i64:$vs, (shl (v4i64 xvsplati64_imm_eq_1), ++ (xvsplati64imm63 v4i64:$vt))), ++ (v4i64 (!cast(Insn#_D) v4i64:$vs, v4i64:$vt))>; ++} ++ ++defm : LASXShiftPats; ++defm : LASXShiftPats; ++defm : LASXShiftPats; ++defm : LASXBitPats; ++defm : LASXBitPats; ++ ++def : LASXPat<(and v32i8:$vs, (xor (shl xvsplat_imm_eq_1, ++ (xvsplati8imm7 v32i8:$vt)), ++ immAllOnesV)), ++ (v32i8 (XVBITCLR_B v32i8:$vs, v32i8:$vt))>; ++def : LASXPat<(and v16i16:$vs, (xor (shl xvsplat_imm_eq_1, ++ (xvsplati16imm15 v16i16:$vt)), ++ immAllOnesV)), ++ (v16i16 (XVBITCLR_H v16i16:$vs, v16i16:$vt))>; ++def : LASXPat<(and v8i32:$vs, (xor (shl xvsplat_imm_eq_1, ++ (xvsplati32imm31 v8i32:$vt)), ++ immAllOnesV)), ++ (v8i32 (XVBITCLR_W v8i32:$vs, v8i32:$vt))>; ++def : LASXPat<(and v4i64:$vs, (xor (shl (v4i64 xvsplati64_imm_eq_1), ++ (xvsplati64imm63 v4i64:$vt)), ++ (bitconvert (v8i32 immAllOnesV)))), ++ (v4i64 (XVBITCLR_D v4i64:$vs, v4i64:$vt))>; ++ ++ ++def : LASXPat<(fdiv (v8f32 (build_vector (f32 fpimm1), (f32 fpimm1), (f32 fpimm1), ++ (f32 fpimm1),(f32 fpimm1), (f32 fpimm1), (f32 fpimm1), (f32 fpimm1))), v8f32:$v), ++ (XVFRECIP_S v8f32:$v)>; ++ ++def : LASXPat<(fdiv (v4f64 (build_vector (f64 fpimm1), (f64 fpimm1), (f64 fpimm1), (f64 fpimm1))), v4f64:$v), ++ (XVFRECIP_D v4f64:$v)>; ++ ++def : LASXPat<(fdiv (v8f32 fpimm1), v8f32:$v), ++ (XVFRECIP_S v8f32:$v)>; ++ ++def : LASXPat<(fdiv (v4f64 fpimm1), v4f64:$v), ++ (XVFRECIP_D v4f64:$v)>; ++ ++ ++def : LASXPat<(fdiv (v8f32 (build_vector (f32 fpimm1), (f32 fpimm1), (f32 fpimm1), (f32 fpimm1), ++ (f32 fpimm1), (f32 fpimm1), (f32 fpimm1), (f32 fpimm1))), (fsqrt v8f32:$v)), ++ (XVFRSQRT_S v8f32:$v)>; ++ ++def : LASXPat<(fdiv (v4f64 (build_vector (f64 fpimm1), (f64 fpimm1), (f64 fpimm1), (f64 fpimm1))), (fsqrt v4f64:$v)), ++ (XVFRSQRT_D v4f64:$v)>; ++ ++def : LASXPat<(fdiv (v8f32 fpimm1), (fsqrt v8f32:$v)), ++ (XVFRSQRT_S v8f32:$v)>; ++ ++def : LASXPat<(fdiv (v4f64 fpimm1), (fsqrt v4f64:$v)), ++ (XVFRSQRT_D v4f64:$v)>; ++ ++ ++def : LASXPat <(extract_subvector v4f64:$vec, (i32 0)), ++ (v2f64 (EXTRACT_SUBREG v4f64:$vec, sub_128))>; ++ ++def : LASXPat <(extract_subvector v8f32:$vec, (i32 0)), ++ (v4f32 (EXTRACT_SUBREG v8f32:$vec, sub_128))>; ++ ++def : LASXPat <(extract_subvector v4i64:$vec, (i32 0)), ++ (v2i64 (EXTRACT_SUBREG v4i64:$vec, sub_128))>; ++ ++def : LASXPat <(extract_subvector v8i32:$vec, (i32 0)), ++ (v4i32 (EXTRACT_SUBREG v8i32:$vec, sub_128))>; ++ ++def : LASXPat <(extract_subvector v16i16:$vec, (i32 0)), ++ (v8i16 (EXTRACT_SUBREG v16i16:$vec, sub_128))>; ++ ++def : LASXPat <(extract_subvector v32i8:$vec, (i32 0)), ++ (v16i8 (EXTRACT_SUBREG v32i8:$vec, sub_128))>; ++ ++ ++ ++def : LASXPat <(extract_subvector v4f64:$vec, (i64 0)), ++ (v2f64 (EXTRACT_SUBREG v4f64:$vec, sub_128))>; ++ ++def : LASXPat <(extract_subvector v8f32:$vec, (i64 0)), ++ (v4f32 (EXTRACT_SUBREG v8f32:$vec, sub_128))>; ++ ++def : LASXPat <(extract_subvector v4i64:$vec, (i64 0)), ++ (v2i64 (EXTRACT_SUBREG v4i64:$vec, sub_128))>; ++ ++def : LASXPat <(extract_subvector v8i32:$vec, (i64 0)), ++ (v4i32 (EXTRACT_SUBREG v8i32:$vec, sub_128))>; ++ ++def : LASXPat <(extract_subvector v16i16:$vec, (i64 0)), ++ (v8i16 (EXTRACT_SUBREG v16i16:$vec, sub_128))>; ++ ++def : LASXPat <(extract_subvector v32i8:$vec, (i64 0)), ++ (v16i8 (EXTRACT_SUBREG v32i8:$vec, sub_128))>; ++ ++ ++def : LASXPat <(extract_subvector v4i64:$vec, (i32 2)), ++ (v2i64 (EXTRACT_SUBREG (v4i64 (XVPERMI_QD v4i64:$vec, v4i64:$vec, (i32 1))), sub_128))>; ++ ++def : LASXPat <(extract_subvector v8i32:$vec, (i32 4)), ++ (v4i32 (EXTRACT_SUBREG (v8i32 (XVPERMI_QW v8i32:$vec, v8i32:$vec, (i32 1))), sub_128))>; ++ ++def : LASXPat <(extract_subvector v16i16:$vec, (i32 8)), ++ (v8i16 (EXTRACT_SUBREG (v16i16 (XVPERMI_QH v16i16:$vec, v16i16:$vec, (i32 1))), sub_128))>; ++ ++def : LASXPat <(extract_subvector v32i8:$vec, (i32 16)), ++ (v16i8 (EXTRACT_SUBREG (v32i8 (XVPERMI_Q v32i8:$vec, v32i8:$vec, (i32 1))), sub_128))>; ++ ++ ++def : LASXPat <(extract_subvector v4i64:$vec, (i64 2)), ++ (v2i64 (EXTRACT_SUBREG (v4i64 (XVPERMI_QD v4i64:$vec, v4i64:$vec, (i32 1))), sub_128))>; ++ ++def : LASXPat <(extract_subvector v8i32:$vec, (i64 4)), ++ (v4i32 (EXTRACT_SUBREG (v8i32 (XVPERMI_QW v8i32:$vec, v8i32:$vec, (i32 1))), sub_128))>; ++ ++def : LASXPat <(extract_subvector v16i16:$vec, (i64 8)), ++ (v8i16 (EXTRACT_SUBREG (v16i16 (XVPERMI_QH v16i16:$vec, v16i16:$vec, (i32 1))), sub_128))>; ++ ++def : LASXPat <(extract_subvector v32i8:$vec, (i64 16)), ++ (v16i8 (EXTRACT_SUBREG (v32i8 (XVPERMI_Q v32i8:$vec, v32i8:$vec, (i32 1))), sub_128))>; ++ ++ ++def : LASXPat<(abs v4i64:$v), ++ (XVMAX_D v4i64:$v, (XVNEG_D v4i64:$v))>; ++ ++def : LASXPat<(abs v8i32:$v), ++ (XVMAX_W v8i32:$v, (XVNEG_W v8i32:$v))>; ++ ++def : LASXPat<(abs v16i16:$v), ++ (XVMAX_H v16i16:$v, (XVNEG_H v16i16:$v))>; ++ ++def : LASXPat<(abs v32i8:$v), ++ (XVMAX_B v32i8:$v, (XVNEG_B v32i8:$v))>; ++ ++ ++def : LASXPat<(sub (v32i8 immAllZerosV), v32i8:$v), ++ (XVNEG_B v32i8:$v)>; ++ ++def : LASXPat<(sub (v16i16 immAllZerosV), v16i16:$v), ++ (XVNEG_H v16i16:$v)>; ++ ++def : LASXPat<(sub (v8i32 immAllZerosV), v8i32:$v), ++ (XVNEG_W v8i32:$v)>; ++ ++def : LASXPat<(sub (v4i64 immAllZerosV), v4i64:$v), ++ (XVNEG_D v4i64:$v)>; ++ ++ ++ ++def : LASXPat<(insert_subvector undef, (v2i64 LSX128D:$src), (i32 0)), ++ (INSERT_SUBREG (v4i64 (IMPLICIT_DEF)), LSX128D:$src, sub_128)>; ++ ++def : LASXPat<(insert_subvector undef, (v4i32 LSX128W:$src), (i32 0)), ++ (INSERT_SUBREG (v8i32 (IMPLICIT_DEF)), LSX128W:$src, sub_128)>; ++ ++def : LASXPat<(insert_subvector undef, (v8i16 LSX128H:$src), (i32 0)), ++ (INSERT_SUBREG (v16i16 (IMPLICIT_DEF)), LSX128H:$src, sub_128)>; ++ ++def : LASXPat<(insert_subvector undef, (v16i8 LSX128B:$src), (i32 0)), ++ (INSERT_SUBREG (v32i8 (IMPLICIT_DEF)), LSX128B:$src, sub_128)>; ++ ++ ++def : LASXPat<(insert_subvector undef, (v2i64 LSX128D:$src), (i64 0)), ++ (INSERT_SUBREG (v4i64 (IMPLICIT_DEF)), LSX128D:$src, sub_128)>; ++ ++def : LASXPat<(insert_subvector undef, (v4i32 LSX128W:$src), (i64 0)), ++ (INSERT_SUBREG (v8i32 (IMPLICIT_DEF)), LSX128W:$src, sub_128)>; ++ ++def : LASXPat<(insert_subvector undef, (v8i16 LSX128H:$src), (i64 0)), ++ (INSERT_SUBREG (v16i16 (IMPLICIT_DEF)), LSX128H:$src, sub_128)>; ++ ++def : LASXPat<(insert_subvector undef, (v16i8 LSX128B:$src), (i64 0)), ++ (INSERT_SUBREG (v32i8 (IMPLICIT_DEF)), LSX128B:$src, sub_128)>; ++ ++ ++def : LASXPat<(insert_subvector ++ (v4i64 immAllZerosV), (v2i64 LSX128D:$src), (i32 0)), ++ (INSERT_SUBREG (v4i64 (IMPLICIT_DEF)), LSX128D:$src, sub_128)>; ++ ++def : LASXPat<(insert_subvector ++ (v8i32 immAllZerosV), (v4i32 LSX128W:$src), (i32 0)), ++ (INSERT_SUBREG (v8i32 (IMPLICIT_DEF)), LSX128W:$src, sub_128)>; ++ ++def : LASXPat<(insert_subvector ++ (v16i16 immAllZerosV), (v8i16 LSX128H:$src), (i32 0)), ++ (INSERT_SUBREG (v16i16 (IMPLICIT_DEF)), LSX128H:$src, sub_128)>; ++ ++def : LASXPat<(insert_subvector ++ (v32i8 immAllZerosV), (v16i8 LSX128B:$src), (i32 0)), ++ (INSERT_SUBREG (v32i8 (IMPLICIT_DEF)), LSX128B:$src, sub_128)>; ++ ++def : LASXPat<(insert_subvector ++ (v4i64 immAllZerosV), (v2i64 LSX128D:$src), (i64 0)), ++ (INSERT_SUBREG (v4i64 (IMPLICIT_DEF)), LSX128D:$src, sub_128)>; ++ ++def : LASXPat<(insert_subvector ++ (v8i32 immAllZerosV), (v4i32 LSX128W:$src), (i64 0)), ++ (INSERT_SUBREG (v8i32 (IMPLICIT_DEF)), LSX128W:$src, sub_128)>; ++ ++def : LASXPat<(insert_subvector ++ (v16i16 immAllZerosV), (v8i16 LSX128H:$src), (i64 0)), ++ (INSERT_SUBREG (v16i16 (IMPLICIT_DEF)), LSX128H:$src, sub_128)>; ++ ++def : LASXPat<(insert_subvector ++ (v32i8 immAllZerosV), (v16i8 LSX128B:$src), (i64 0)), ++ (INSERT_SUBREG (v32i8 (IMPLICIT_DEF)), LSX128B:$src, sub_128)>; ++ ++ ++def : LASXPat<(insert_subvector ++ (v4i64 immAllZerosV), (v2i64 LSX128D:$src), (i32 2)), ++ (XVPERMI_QD (v4i64 (XVREPLGR2VR_D ZERO_64)), ++ (v4i64 (INSERT_SUBREG (v4i64 (IMPLICIT_DEF)), ++ LSX128D:$src, sub_128)), (i32 32))>; ++ ++def : LASXPat<(insert_subvector (v8i32 immAllZerosV), ++ (v4i32 LSX128W:$src), (i32 4)), ++ (XVPERMI_QW (v8i32 (XVREPLGR2VR_W ZERO)), ++ (v8i32 (INSERT_SUBREG (v8i32 (IMPLICIT_DEF)), ++ LSX128W:$src, sub_128)), (i32 32))>; ++ ++def : LASXPat<(insert_subvector ++ (v16i16 immAllZerosV), (v8i16 LSX128H:$src), (i32 8)), ++ (XVPERMI_QH (v16i16 (XVREPLGR2VR_H ZERO)), ++ (v16i16 (INSERT_SUBREG (v16i16 (IMPLICIT_DEF)), ++ LSX128H:$src, sub_128)), (i32 32))>; ++ ++def : LASXPat<(insert_subvector ++ (v32i8 immAllZerosV), (v16i8 LSX128B:$src), (i32 16)), ++ (XVPERMI_Q (v32i8 (XVREPLGR2VR_B ZERO)), ++ (v32i8 (INSERT_SUBREG (v32i8 (IMPLICIT_DEF)), ++ LSX128B:$src, sub_128)), (i32 32))>; ++ ++ ++def : LASXPat<(insert_subvector ++ (v4i64 immAllZerosV), (v2i64 LSX128D:$src), (i64 2)), ++ (XVPERMI_QD (v4i64 (XVREPLGR2VR_D ZERO_64)), ++ (v4i64 (INSERT_SUBREG (v4i64 (IMPLICIT_DEF)), ++ LSX128D:$src, sub_128)), (i32 32))>; ++ ++def : LASXPat<(insert_subvector ++ (v8i32 immAllZerosV), (v4i32 LSX128W:$src), (i64 4)), ++ (XVPERMI_QW (v8i32 (XVREPLGR2VR_W ZERO)), ++ (v8i32 (INSERT_SUBREG (v8i32 (IMPLICIT_DEF)), ++ LSX128W:$src, sub_128)), (i32 32))>; ++ ++def : LASXPat<(insert_subvector ++ (v16i16 immAllZerosV), (v8i16 LSX128H:$src), (i64 8)), ++ (XVPERMI_QH (v16i16 (XVREPLGR2VR_H ZERO)), ++ (v16i16 (INSERT_SUBREG (v16i16 (IMPLICIT_DEF)), ++ LSX128H:$src, sub_128)), (i32 32))>; ++ ++def : LASXPat<(insert_subvector ++ (v32i8 immAllZerosV), (v16i8 LSX128B:$src), (i64 16)), ++ (XVPERMI_Q (v32i8 (XVREPLGR2VR_B ZERO)), ++ (v32i8 (INSERT_SUBREG (v32i8 (IMPLICIT_DEF)), ++ LSX128B:$src, sub_128)), (i32 32))>; ++ ++ ++def : LASXPat<(insert_subvector undef, (v2i64 LSX128D:$src), (i32 2)), ++ (XVPERMI_QD (v4i64 (IMPLICIT_DEF)), ++ (v4i64 (INSERT_SUBREG (v4i64 (IMPLICIT_DEF)), ++ LSX128D:$src, sub_128)), (i32 32))>; ++ ++def : LASXPat<(insert_subvector undef, (v4i32 LSX128W:$src), (i32 4)), ++ (XVPERMI_QW (v8i32 (IMPLICIT_DEF)), ++ (v8i32 (INSERT_SUBREG (v8i32 (IMPLICIT_DEF)), ++ LSX128W:$src, sub_128)), (i32 32))>; ++ ++def : LASXPat<(insert_subvector undef, (v8i16 LSX128H:$src), (i32 8)), ++ (XVPERMI_QH (v16i16 (IMPLICIT_DEF)), ++ (v16i16 (INSERT_SUBREG (v16i16 (IMPLICIT_DEF)), ++ LSX128H:$src, sub_128)), (i32 32))>; ++ ++def : LASXPat<(insert_subvector undef, (v16i8 LSX128B:$src), (i32 16)), ++ (XVPERMI_Q (v32i8 (IMPLICIT_DEF)), ++ (v32i8 (INSERT_SUBREG (v32i8 (IMPLICIT_DEF)), ++ LSX128B:$src, sub_128)), (i32 32))>; ++ ++ ++def : LASXPat<(insert_subvector undef, (v2i64 LSX128D:$src), (i64 2)), ++ (XVPERMI_QD (v4i64 (IMPLICIT_DEF)), ++ (v4i64 (INSERT_SUBREG (v4i64 (IMPLICIT_DEF)), ++ LSX128D:$src, sub_128)), (i32 32))>; ++ ++def : LASXPat<(insert_subvector undef, (v4i32 LSX128W:$src), (i64 4)), ++ (XVPERMI_QW (v8i32 (IMPLICIT_DEF)), ++ (v8i32 (INSERT_SUBREG (v8i32 (IMPLICIT_DEF)), ++ LSX128W:$src, sub_128)), (i32 32))>; ++ ++def : LASXPat<(insert_subvector undef, (v8i16 LSX128H:$src), (i64 8)), ++ (XVPERMI_QH (v16i16 (IMPLICIT_DEF)), ++ (v16i16 (INSERT_SUBREG (v16i16 (IMPLICIT_DEF)), ++ LSX128H:$src, sub_128)), (i32 32))>; ++ ++def : LASXPat<(insert_subvector undef, (v16i8 LSX128B:$src), (i64 16)), ++ (XVPERMI_Q (v32i8 (IMPLICIT_DEF)), ++ (v32i8 (INSERT_SUBREG (v32i8 (IMPLICIT_DEF)), ++ LSX128B:$src, sub_128)), (i32 32))>; ++ ++ ++def : LASXPat<(sra ++ (v32i8 (add ++ (v32i8 (add LASX256B:$a, LASX256B:$b)), ++ (v32i8 (srl ++ (v32i8 (add LASX256B:$a, LASX256B:$b)), ++ (v32i8 (build_vector (i32 7),(i32 7),(i32 7),(i32 7), ++ (i32 7),(i32 7),(i32 7),(i32 7), ++ (i32 7),(i32 7),(i32 7),(i32 7), ++ (i32 7),(i32 7),(i32 7),(i32 7), ++ (i32 7),(i32 7),(i32 7),(i32 7), ++ (i32 7),(i32 7),(i32 7),(i32 7), ++ (i32 7),(i32 7),(i32 7),(i32 7), ++ (i32 7),(i32 7),(i32 7),(i32 7)) ++ ) ++ ) ++ ) ++ ) ++ ), ++ (v32i8 (build_vector (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1) ++ ))), ++ (XVAVG_B (v32i8 LASX256B:$a), (v32i8 LASX256B:$b))>; ++ ++def : LASXPat<(sra ++ (v16i16 (add ++ (v16i16 (add LASX256H:$a, LASX256H:$b)), ++ (v16i16 (srl ++ (v16i16 (add LASX256H:$a, LASX256H:$b)), ++ (v16i16 (build_vector (i32 15),(i32 15),(i32 15),(i32 15), ++ (i32 15),(i32 15),(i32 15),(i32 15), ++ (i32 15),(i32 15),(i32 15),(i32 15), ++ (i32 15),(i32 15),(i32 15),(i32 15)) ++ ) ++ ) ++ ) ++ ) ++ ), ++ (v16i16 (build_vector (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1) ++ ))), ++ (XVAVG_H (v16i16 LASX256H:$a), (v16i16 LASX256H:$b))>; ++ ++def : LASXPat<(sra ++ (v8i32 (add ++ (v8i32 (add LASX256W:$a, LASX256W:$b)), ++ (v8i32 (srl ++ (v8i32 (add LASX256W:$a, LASX256W:$b)), ++ (v8i32 (build_vector (i32 31),(i32 31),(i32 31),(i32 31), ++ (i32 31),(i32 31),(i32 31),(i32 31)) ++ ) ++ ) ++ ) ++ ) ++ ), ++ (v8i32 (build_vector (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1) ++ ))), ++ (XVAVG_W (v8i32 LASX256W:$a), (v8i32 LASX256W:$b))>; ++ ++def : LASXPat<(sra ++ (v4i64 (add ++ (v4i64 (add LASX256D:$a, LASX256D:$b)), ++ (v4i64 (srl ++ (v4i64 (add LASX256D:$a, LASX256D:$b)), ++ (v4i64 (build_vector (i64 63),(i64 63),(i64 63),(i64 63))) ++ ) ++ ) ++ ) ++ ), ++ (v4i64 (build_vector (i64 1),(i64 1),(i64 1),(i64 1)))), ++ (XVAVG_D (v4i64 LASX256D:$a), (v4i64 LASX256D:$b))>; ++ ++ ++ ++def : LASXPat<(srl ++ (v32i8 (add LASX256B:$a, LASX256B:$b)), ++ (v32i8 (build_vector (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1)) ++ ) ++ ), ++ (XVAVG_BU (v32i8 LASX256B:$a), (v32i8 LASX256B:$b))>; ++ ++def : LASXPat<(srl ++ (v16i16 (add LASX256H:$a, LASX256H:$b)), ++ (v16i16 (build_vector (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1)) ++ ) ++ ), ++ (XVAVG_HU (v16i16 LASX256H:$a), (v16i16 LASX256H:$b))>; ++ ++def : LASXPat<(srl ++ (v8i32 (add LASX256W:$a, LASX256W:$b)), ++ (v8i32 (build_vector (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1)) ++ ) ++ ), ++ (XVAVG_WU (v8i32 LASX256W:$a), (v8i32 LASX256W:$b))>; ++ ++def : LASXPat<(srl ++ (v4i64 (add LASX256D:$a, LASX256D:$b)), ++ (v4i64 (build_vector (i64 1),(i64 1),(i64 1),(i64 1)) ++ ) ++ ), ++ (XVAVG_DU (v4i64 LASX256D:$a), (v4i64 LASX256D:$b))>; ++ ++ ++ ++def : LASXPat<(sra ++ (v32i8 (add ++ (v32i8 (add (v32i8 ( ++ build_vector (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1) ++ )), ++ (v32i8 (add LASX256B:$a, LASX256B:$b)) ++ )), ++ (v32i8 (srl ++ (v32i8 ( add (v32i8( ++ build_vector (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1) ++ )), ++ (v32i8 (add LASX256B:$a, LASX256B:$b)) ++ )), ++ (v32i8 (build_vector (i32 7),(i32 7),(i32 7),(i32 7), ++ (i32 7),(i32 7),(i32 7),(i32 7), ++ (i32 7),(i32 7),(i32 7),(i32 7), ++ (i32 7),(i32 7),(i32 7),(i32 7), ++ (i32 7),(i32 7),(i32 7),(i32 7), ++ (i32 7),(i32 7),(i32 7),(i32 7), ++ (i32 7),(i32 7),(i32 7),(i32 7), ++ (i32 7),(i32 7),(i32 7),(i32 7)) ++ ) ++ ) ++ ) ++ ) ++ ), ++ (v32i8 (build_vector (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1) ++ ))), ++ (XVAVGR_B (v32i8 LASX256B:$a), (v32i8 LASX256B:$b))>; ++ ++ ++def : LASXPat<(sra ++ (v16i16 (add ++ (v16i16 (add (v16i16 ( ++ build_vector (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1) ++ )), ++ (v16i16 (add LASX256H:$a, LASX256H:$b)) ++ )), ++ (v16i16 (srl ++ (v16i16 (add (v16i16 ( ++ build_vector (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1) ++ )), ++ (v16i16 (add LASX256H:$a, LASX256H:$b)) ++ )), ++ (v16i16 (build_vector ++ (i32 15),(i32 15),(i32 15),(i32 15), ++ (i32 15),(i32 15),(i32 15),(i32 15), ++ (i32 15),(i32 15),(i32 15),(i32 15), ++ (i32 15),(i32 15),(i32 15),(i32 15)) ++ ) ++ ) ++ ) ++ ) ++ ), ++ (v16i16 (build_vector (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1) ++ ))), ++ (XVAVGR_H (v16i16 LASX256H:$a), (v16i16 LASX256H:$b))>; ++ ++ ++def : LASXPat<(sra ++ (v8i32 (add ++ (v8i32 (add (v8i32 ( ++ build_vector (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1) ++ )), ++ (v8i32 (add LASX256W:$a, LASX256W:$b)) ++ )), ++ (v8i32 (srl ++ (v8i32 (add (v8i32 ( ++ build_vector (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1) ++ )), ++ (v8i32 (add LASX256W:$a, LASX256W:$b)) ++ )), ++ (v8i32 (build_vector ++ (i32 31),(i32 31),(i32 31),(i32 31), ++ (i32 31),(i32 31),(i32 31),(i32 31) ++ ) ++ ) ++ ) ++ ) ++ ) ++ ), ++ (v8i32 (build_vector (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1)))), ++ (XVAVGR_W (v8i32 LASX256W:$a), (v8i32 LASX256W:$b))>; ++ ++def : LASXPat<(sra ++ (v4i64 (add ++ (v4i64 (add (v4i64 ( ++ build_vector (i64 1),(i64 1),(i64 1),(i64 1) ++ )), ++ (v4i64 (add LASX256D:$a, LASX256D:$b)) ++ )), ++ (v4i64 (srl ++ (v4i64 (add (v4i64 ( ++ build_vector (i64 1),(i64 1),(i64 1),(i64 1) ++ )), ++ (v4i64 (add LASX256D:$a, LASX256D:$b)) ++ )), ++ (v4i64 (build_vector ++ (i64 63),(i64 63),(i64 63),(i64 63))) ++ ) ++ ) ++ ) ++ ), ++ (v4i64 (build_vector (i64 1),(i64 1),(i64 1),(i64 1)))), ++ (XVAVGR_D (v4i64 LASX256D:$a), (v4i64 LASX256D:$b))>; ++ ++ ++ ++def : LASXPat<(srl ++ (v32i8 (add (v32i8 ( ++ build_vector (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1) ++ )), ++ (v32i8 (add LASX256B:$a, LASX256B:$b)) ++ )), ++ (v32i8 (build_vector (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1)) ++ ) ++ ), ++ (XVAVGR_BU (v32i8 LASX256B:$a), (v32i8 LASX256B:$b))>; ++ ++def : LASXPat<(srl ++ (v16i16 (add (v16i16 ( ++ build_vector (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1) ++ )), ++ (v16i16 (add LASX256H:$a, LASX256H:$b)) ++ )), ++ (v16i16 (build_vector (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1)) ++ ) ++ ), ++ (XVAVGR_HU (v16i16 LASX256H:$a), (v16i16 LASX256H:$b))>; ++ ++def : LASXPat<(srl ++ (v8i32 (add (v8i32 ( ++ build_vector (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1) ++ )), ++ (v8i32 (add LASX256W:$a, LASX256W:$b)) ++ )), ++ (v8i32 (build_vector (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1)) ++ ) ++ ), ++ (XVAVGR_WU (v8i32 LASX256W:$a), (v8i32 LASX256W:$b))>; ++ ++def : LASXPat<(srl ++ (v4i64 (add (v4i64 ( ++ build_vector (i64 1),(i64 1),(i64 1),(i64 1) ++ )), ++ (v4i64 (add LASX256D:$a, LASX256D:$b)) ++ )), ++ (v4i64 (build_vector (i64 1),(i64 1),(i64 1),(i64 1)) ++ ) ++ ), ++ (XVAVGR_DU (v4i64 LASX256D:$a), (v4i64 LASX256D:$b))>; ++ ++ ++def : LASXPat<(mulhs LASX256D:$a, LASX256D:$b), ++ (XVMUH_D LASX256D:$a, LASX256D:$b)>; ++ ++def : LASXPat<(mulhs LASX256W:$a, LASX256W:$b), ++ (XVMUH_W LASX256W:$a, LASX256W:$b)>; ++ ++def : LASXPat<(mulhs LASX256H:$a, LASX256H:$b), ++ (XVMUH_H LASX256H:$a, LASX256H:$b)>; ++ ++def : LASXPat<(mulhs LASX256B:$a, LASX256B:$b), ++ (XVMUH_B LASX256B:$a, LASX256B:$b)>; ++ ++ ++def : LASXPat<(mulhu LASX256D:$a, LASX256D:$b), ++ (XVMUH_DU LASX256D:$a, LASX256D:$b)>; ++ ++def : LASXPat<(mulhu LASX256W:$a, LASX256W:$b), ++ (XVMUH_WU LASX256W:$a, LASX256W:$b)>; ++ ++def : LASXPat<(mulhu LASX256H:$a, LASX256H:$b), ++ (XVMUH_HU LASX256H:$a, LASX256H:$b)>; ++ ++def : LASXPat<(mulhu LASX256B:$a, LASX256B:$b), ++ (XVMUH_BU LASX256B:$a, LASX256B:$b)>; ++ ++ ++def : LASXPat<(LoongArchINSVE (v8i32 LASX256W:$a), (v8i32 LASX256W:$b), uimm3:$ui3), ++ (XVINSVE0_W LASX256W:$a, LASX256W:$b, uimm3:$ui3)>; ++ ++def : LASXPat<(LoongArchINSVE (v4i64 LASX256D:$a), (v4i64 LASX256D:$b), uimm2:$ui2), ++ (XVINSVE0_D LASX256D:$a, LASX256D:$b, uimm2:$ui2)>; ++ ++ ++def : LASXPat<(LoongArchXVPICKVE (v8i32 (bitconvert (v32i8 (build_vector ++ (i32 0),(i32 0),(i32 0),(i32 0), ++ (i32 0),(i32 0),(i32 0),(i32 0), ++ (i32 0),(i32 0),(i32 0),(i32 0), ++ (i32 0),(i32 0),(i32 0),(i32 0), ++ (i32 0),(i32 0),(i32 0),(i32 0), ++ (i32 0),(i32 0),(i32 0),(i32 0), ++ (i32 0),(i32 0),(i32 0),(i32 0), ++ (i32 0),(i32 0),(i32 0),(i32 0) ++ )))), (v8i32 LASX256W:$b), uimm3:$ui3), ++ (XVPICKVE_W (v8i32 (IMPLICIT_DEF)), LASX256W:$b, uimm3:$ui3)>; ++ ++def : LASXPat<(LoongArchXVPICKVE (v4i64 (bitconvert (v32i8 (build_vector ++ (i32 0),(i32 0),(i32 0),(i32 0), ++ (i32 0),(i32 0),(i32 0),(i32 0), ++ (i32 0),(i32 0),(i32 0),(i32 0), ++ (i32 0),(i32 0),(i32 0),(i32 0), ++ (i32 0),(i32 0),(i32 0),(i32 0), ++ (i32 0),(i32 0),(i32 0),(i32 0), ++ (i32 0),(i32 0),(i32 0),(i32 0), ++ (i32 0),(i32 0),(i32 0),(i32 0) ++ )))), (v4i64 LASX256D:$b), uimm2:$ui2), ++ (XVPICKVE_D (v4i64 (IMPLICIT_DEF)), LASX256D:$b, uimm2:$ui2)>; ++ ++ ++def : LASXPat<(LoongArchXVPICKVE (v8i32 (build_vector ++ (i32 0),(i32 0),(i32 0),(i32 0), ++ (i32 0),(i32 0),(i32 0),(i32 0) ++ )), (v8i32 LASX256W:$b), uimm3:$ui3), ++ (XVPICKVE_W (v8i32 (IMPLICIT_DEF)), LASX256W:$b, uimm3:$ui3)>; ++ ++def : LASXPat<(LoongArchXVPICKVE (v4i64 (build_vector ++ (i64 0),(i64 0),(i64 0),(i64 0) ++ )), (v4i64 LASX256D:$b), uimm2:$ui2), ++ (XVPICKVE_D (v4i64 (IMPLICIT_DEF)), LASX256D:$b, uimm2:$ui2)>; ++ ++ ++def : LASXPat<(LoongArchXVPICKVE (v8i32 LASX256W:$a), (v8i32 LASX256W:$b), uimm3:$ui3), ++ (XVPICKVE_W LASX256W:$a, LASX256W:$b, uimm3:$ui3)>; ++ ++def : LASXPat<(LoongArchXVPICKVE (v4i64 LASX256D:$a), (v4i64 LASX256D:$b), uimm2:$ui2), ++ (XVPICKVE_D LASX256D:$a, LASX256D:$b, uimm2:$ui2)>; ++ ++ ++def : LASXPat<(LoongArchXVSHUF4I (v4i64 LASX256D:$a), (v4i64 LASX256D:$b), uimm8_32:$ui8), ++ (XVSHUF4I_D LASX256D:$a, LASX256D:$b, uimm8_32:$ui8)>; ++ ++def : LASXPat<(LoongArchXVPERMI (v4i64 LASX256D:$a), uimm8_32:$ui8), ++ (XVPERMI_D LASX256D:$a, uimm8_32:$ui8)>; ++ ++ ++ ++ ++//===----------------------------------------------------------------------===// ++// Intrinsics ++//===----------------------------------------------------------------------===// ++ ++def : LASXPat<(int_loongarch_lasx_xvfcmp_cor_s (v8f32 LASX256W:$xj), (v8f32 LASX256W:$xk)), ++ (XVFCMP_COR_S LASX256W:$xj, LASX256W:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvfcmp_cor_d (v4f64 LASX256D:$xj), (v4f64 LASX256D:$xk)), ++ (XVFCMP_COR_D LASX256D:$xj, LASX256D:$xk)>; ++ ++def : LASXPat<(int_loongarch_lasx_xvfcmp_cun_s (v8f32 LASX256W:$xj), (v8f32 LASX256W:$xk)), ++ (XVFCMP_CUN_S LASX256W:$xj, LASX256W:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvfcmp_cun_d (v4f64 LASX256D:$xj), (v4f64 LASX256D:$xk)), ++ (XVFCMP_CUN_D LASX256D:$xj, LASX256D:$xk)>; ++ ++def : LASXPat<(int_loongarch_lasx_xvfcmp_cune_s (v8f32 LASX256W:$xj), (v8f32 LASX256W:$xk)), ++ (XVFCMP_CUNE_S LASX256W:$xj, LASX256W:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvfcmp_cune_d (v4f64 LASX256D:$xj), (v4f64 LASX256D:$xk)), ++ (XVFCMP_CUNE_D LASX256D:$xj, LASX256D:$xk)>; ++ ++def : LASXPat<(int_loongarch_lasx_xvfcmp_cueq_s (v8f32 LASX256W:$xj), (v8f32 LASX256W:$xk)), ++ (XVFCMP_CUEQ_S LASX256W:$xj, LASX256W:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvfcmp_cueq_d (v4f64 LASX256D:$xj), (v4f64 LASX256D:$xk)), ++ (XVFCMP_CUEQ_D LASX256D:$xj, LASX256D:$xk)>; ++ ++def : LASXPat<(int_loongarch_lasx_xvfcmp_ceq_s (v8f32 LASX256W:$xj), (v8f32 LASX256W:$xk)), ++ (XVFCMP_CEQ_S LASX256W:$xj, LASX256W:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvfcmp_ceq_d (v4f64 LASX256D:$xj), (v4f64 LASX256D:$xk)), ++ (XVFCMP_CEQ_D LASX256D:$xj, LASX256D:$xk)>; ++ ++def : LASXPat<(int_loongarch_lasx_xvfcmp_cne_s (v8f32 LASX256W:$xj), (v8f32 LASX256W:$xk)), ++ (XVFCMP_CNE_S LASX256W:$xj, LASX256W:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvfcmp_cne_d (v4f64 LASX256D:$xj), (v4f64 LASX256D:$xk)), ++ (XVFCMP_CNE_D LASX256D:$xj, LASX256D:$xk)>; ++ ++def : LASXPat<(int_loongarch_lasx_xvfcmp_clt_s (v8f32 LASX256W:$xj), (v8f32 LASX256W:$xk)), ++ (XVFCMP_CLT_S LASX256W:$xj, LASX256W:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvfcmp_clt_d (v4f64 LASX256D:$xj), (v4f64 LASX256D:$xk)), ++ (XVFCMP_CLT_D LASX256D:$xj, LASX256D:$xk)>; ++ ++def : LASXPat<(int_loongarch_lasx_xvfcmp_cult_s (v8f32 LASX256W:$xj), (v8f32 LASX256W:$xk)), ++ (XVFCMP_CULT_S LASX256W:$xj, LASX256W:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvfcmp_cult_d (v4f64 LASX256D:$xj), (v4f64 LASX256D:$xk)), ++ (XVFCMP_CULT_D LASX256D:$xj, LASX256D:$xk)>; ++ ++def : LASXPat<(int_loongarch_lasx_xvfcmp_cle_s (v8f32 LASX256W:$xj), (v8f32 LASX256W:$xk)), ++ (XVFCMP_CLE_S LASX256W:$xj, LASX256W:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvfcmp_cle_d (v4f64 LASX256D:$xj), (v4f64 LASX256D:$xk)), ++ (XVFCMP_CLE_D LASX256D:$xj, LASX256D:$xk)>; ++ ++def : LASXPat<(int_loongarch_lasx_xvfcmp_cule_s (v8f32 LASX256W:$xj), (v8f32 LASX256W:$xk)), ++ (XVFCMP_CULE_S LASX256W:$xj, LASX256W:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvfcmp_cule_d (v4f64 LASX256D:$xj), (v4f64 LASX256D:$xk)), ++ (XVFCMP_CULE_D LASX256D:$xj, LASX256D:$xk)>; ++ ++def : LASXPat<(int_loongarch_lasx_xvseq_b (v32i8 LASX256B:$xj), (v32i8 LASX256B:$xk)), ++ (XVSEQ_B LASX256B:$xj, LASX256B:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvseq_h (v16i16 LASX256H:$xj), (v16i16 LASX256H:$xk)), ++ (XVSEQ_H LASX256H:$xj, LASX256H:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvseq_w (v8i32 LASX256W:$xj), (v8i32 LASX256W:$xk)), ++ (XVSEQ_W LASX256W:$xj, LASX256W:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvseq_d (v4i64 LASX256D:$xj), (v4i64 LASX256D:$xk)), ++ (XVSEQ_D LASX256D:$xj, LASX256D:$xk)>; ++ ++def : LASXPat<(int_loongarch_lasx_xvsle_b (v32i8 LASX256B:$xj), (v32i8 LASX256B:$xk)), ++ (XVSLE_B LASX256B:$xj, LASX256B:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvsle_h (v16i16 LASX256H:$xj), (v16i16 LASX256H:$xk)), ++ (XVSLE_H LASX256H:$xj, LASX256H:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvsle_w (v8i32 LASX256W:$xj), (v8i32 LASX256W:$xk)), ++ (XVSLE_W LASX256W:$xj, LASX256W:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvsle_d (v4i64 LASX256D:$xj), (v4i64 LASX256D:$xk)), ++ (XVSLE_D LASX256D:$xj, LASX256D:$xk)>; ++ ++def : LASXPat<(int_loongarch_lasx_xvsle_bu (v32i8 LASX256B:$xj), (v32i8 LASX256B:$xk)), ++ (XVSLE_BU LASX256B:$xj, LASX256B:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvsle_hu (v16i16 LASX256H:$xj), (v16i16 LASX256H:$xk)), ++ (XVSLE_HU LASX256H:$xj, LASX256H:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvsle_wu (v8i32 LASX256W:$xj), (v8i32 LASX256W:$xk)), ++ (XVSLE_WU LASX256W:$xj, LASX256W:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvsle_du (v4i64 LASX256D:$xj), (v4i64 LASX256D:$xk)), ++ (XVSLE_DU LASX256D:$xj, LASX256D:$xk)>; ++ ++def : LASXPat<(int_loongarch_lasx_xvslt_b (v32i8 LASX256B:$xj), (v32i8 LASX256B:$xk)), ++ (XVSLT_B LASX256B:$xj, LASX256B:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvslt_h (v16i16 LASX256H:$xj), (v16i16 LASX256H:$xk)), ++ (XVSLT_H LASX256H:$xj, LASX256H:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvslt_w (v8i32 LASX256W:$xj), (v8i32 LASX256W:$xk)), ++ (XVSLT_W LASX256W:$xj, LASX256W:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvslt_d (v4i64 LASX256D:$xj), (v4i64 LASX256D:$xk)), ++ (XVSLT_D LASX256D:$xj, LASX256D:$xk)>; ++ ++def : LASXPat<(int_loongarch_lasx_xvslt_bu (v32i8 LASX256B:$xj), (v32i8 LASX256B:$xk)), ++ (XVSLT_BU LASX256B:$xj, LASX256B:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvslt_hu (v16i16 LASX256H:$xj), (v16i16 LASX256H:$xk)), ++ (XVSLT_HU LASX256H:$xj, LASX256H:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvslt_wu (v8i32 LASX256W:$xj), (v8i32 LASX256W:$xk)), ++ (XVSLT_WU LASX256W:$xj, LASX256W:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvslt_du (v4i64 LASX256D:$xj), (v4i64 LASX256D:$xk)), ++ (XVSLT_DU LASX256D:$xj, LASX256D:$xk)>; ++ ++def : LASXPat<(int_loongarch_lasx_xvadd_b (v32i8 LASX256B:$xj), (v32i8 LASX256B:$xk)), ++ (XVADD_B LASX256B:$xj, LASX256B:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvadd_h (v16i16 LASX256H:$xj), (v16i16 LASX256H:$xk)), ++ (XVADD_H LASX256H:$xj, LASX256H:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvadd_w (v8i32 LASX256W:$xj), (v8i32 LASX256W:$xk)), ++ (XVADD_W LASX256W:$xj, LASX256W:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvadd_d (v4i64 LASX256D:$xj), (v4i64 LASX256D:$xk)), ++ (XVADD_D LASX256D:$xj, LASX256D:$xk)>; ++ ++def : LASXPat<(int_loongarch_lasx_xvsub_b (v32i8 LASX256B:$xj), (v32i8 LASX256B:$xk)), ++ (XVSUB_B LASX256B:$xj, LASX256B:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvsub_h (v16i16 LASX256H:$xj), (v16i16 LASX256H:$xk)), ++ (XVSUB_H LASX256H:$xj, LASX256H:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvsub_w (v8i32 LASX256W:$xj), (v8i32 LASX256W:$xk)), ++ (XVSUB_W LASX256W:$xj, LASX256W:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvsub_d (v4i64 LASX256D:$xj), (v4i64 LASX256D:$xk)), ++ (XVSUB_D LASX256D:$xj, LASX256D:$xk)>; ++ ++def : LASXPat<(int_loongarch_lasx_xvmax_b (v32i8 LASX256B:$xj), (v32i8 LASX256B:$xk)), ++ (XVMAX_B LASX256B:$xj, LASX256B:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvmax_h (v16i16 LASX256H:$xj), (v16i16 LASX256H:$xk)), ++ (XVMAX_H LASX256H:$xj, LASX256H:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvmax_w (v8i32 LASX256W:$xj), (v8i32 LASX256W:$xk)), ++ (XVMAX_W LASX256W:$xj, LASX256W:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvmax_d (v4i64 LASX256D:$xj), (v4i64 LASX256D:$xk)), ++ (XVMAX_D LASX256D:$xj, LASX256D:$xk)>; ++ ++def : LASXPat<(int_loongarch_lasx_xvmin_b (v32i8 LASX256B:$xj), (v32i8 LASX256B:$xk)), ++ (XVMIN_B LASX256B:$xj, LASX256B:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvmin_h (v16i16 LASX256H:$xj), (v16i16 LASX256H:$xk)), ++ (XVMIN_H LASX256H:$xj, LASX256H:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvmin_w (v8i32 LASX256W:$xj), (v8i32 LASX256W:$xk)), ++ (XVMIN_W LASX256W:$xj, LASX256W:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvmin_d (v4i64 LASX256D:$xj), (v4i64 LASX256D:$xk)), ++ (XVMIN_D LASX256D:$xj, LASX256D:$xk)>; ++ ++def : LASXPat<(int_loongarch_lasx_xvmin_bu (v32i8 LASX256B:$xj), (v32i8 LASX256B:$xk)), ++ (XVMIN_BU LASX256B:$xj, LASX256B:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvmin_hu (v16i16 LASX256H:$xj), (v16i16 LASX256H:$xk)), ++ (XVMIN_HU LASX256H:$xj, LASX256H:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvmin_wu (v8i32 LASX256W:$xj), (v8i32 LASX256W:$xk)), ++ (XVMIN_WU LASX256W:$xj, LASX256W:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvmin_du (v4i64 LASX256D:$xj), (v4i64 LASX256D:$xk)), ++ (XVMIN_DU LASX256D:$xj, LASX256D:$xk)>; ++ ++def : LASXPat<(int_loongarch_lasx_xvmul_b (v32i8 LASX256B:$xj), (v32i8 LASX256B:$xk)), ++ (XVMUL_B LASX256B:$xj, LASX256B:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvmul_h (v16i16 LASX256H:$xj), (v16i16 LASX256H:$xk)), ++ (XVMUL_H LASX256H:$xj, LASX256H:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvmul_w (v8i32 LASX256W:$xj), (v8i32 LASX256W:$xk)), ++ (XVMUL_W LASX256W:$xj, LASX256W:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvmul_d (v4i64 LASX256D:$xj), (v4i64 LASX256D:$xk)), ++ (XVMUL_D LASX256D:$xj, LASX256D:$xk)>; ++ ++def : LASXPat<(int_loongarch_lasx_xvdiv_bu (v32i8 LASX256B:$xj), (v32i8 LASX256B:$xk)), ++ (XVDIV_BU LASX256B:$xj, LASX256B:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvdiv_hu (v16i16 LASX256H:$xj), (v16i16 LASX256H:$xk)), ++ (XVDIV_HU LASX256H:$xj, LASX256H:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvdiv_wu (v8i32 LASX256W:$xj), (v8i32 LASX256W:$xk)), ++ (XVDIV_WU LASX256W:$xj, LASX256W:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvdiv_du (v4i64 LASX256D:$xj), (v4i64 LASX256D:$xk)), ++ (XVDIV_DU LASX256D:$xj, LASX256D:$xk)>; ++ ++def : LASXPat<(int_loongarch_lasx_xvsll_b (v32i8 LASX256B:$xj), (v32i8 LASX256B:$xk)), ++ (XVSLL_B LASX256B:$xj, LASX256B:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvsll_h (v16i16 LASX256H:$xj), (v16i16 LASX256H:$xk)), ++ (XVSLL_H LASX256H:$xj, LASX256H:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvsll_w (v8i32 LASX256W:$xj), (v8i32 LASX256W:$xk)), ++ (XVSLL_W LASX256W:$xj, LASX256W:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvsll_d (v4i64 LASX256D:$xj), (v4i64 LASX256D:$xk)), ++ (XVSLL_D LASX256D:$xj, LASX256D:$xk)>; ++ ++def : LASXPat<(int_loongarch_lasx_xvsrl_b (v32i8 LASX256B:$xj), (v32i8 LASX256B:$xk)), ++ (XVSRL_B LASX256B:$xj, LASX256B:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvsrl_h (v16i16 LASX256H:$xj), (v16i16 LASX256H:$xk)), ++ (XVSRL_H LASX256H:$xj, LASX256H:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvsrl_w (v8i32 LASX256W:$xj), (v8i32 LASX256W:$xk)), ++ (XVSRL_W LASX256W:$xj, LASX256W:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvsrl_d (v4i64 LASX256D:$xj), (v4i64 LASX256D:$xk)), ++ (XVSRL_D LASX256D:$xj, LASX256D:$xk)>; ++ ++def : LASXPat<(int_loongarch_lasx_xvsra_b (v32i8 LASX256B:$xj), (v32i8 LASX256B:$xk)), ++ (XVSRA_B LASX256B:$xj, LASX256B:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvsra_h (v16i16 LASX256H:$xj), (v16i16 LASX256H:$xk)), ++ (XVSRA_H LASX256H:$xj, LASX256H:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvsra_w (v8i32 LASX256W:$xj), (v8i32 LASX256W:$xk)), ++ (XVSRA_W LASX256W:$xj, LASX256W:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvsra_d (v4i64 LASX256D:$xj), (v4i64 LASX256D:$xk)), ++ (XVSRA_D LASX256D:$xj, LASX256D:$xk)>; ++ ++def : LASXPat<(int_loongarch_lasx_xvfadd_s (v8f32 LASX256W:$xj), (v8f32 LASX256W:$xk)), ++ (XVFADD_S LASX256W:$xj, LASX256W:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvfadd_d (v4f64 LASX256D:$xj), (v4f64 LASX256D:$xk)), ++ (XVFADD_D LASX256D:$xj, LASX256D:$xk)>; ++ ++def : LASXPat<(int_loongarch_lasx_xvfsub_s (v8f32 LASX256W:$xj), (v8f32 LASX256W:$xk)), ++ (XVFSUB_S LASX256W:$xj, LASX256W:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvfsub_d (v4f64 LASX256D:$xj), (v4f64 LASX256D:$xk)), ++ (XVFSUB_D LASX256D:$xj, LASX256D:$xk)>; ++ ++def : LASXPat<(int_loongarch_lasx_xvfmul_s (v8f32 LASX256W:$xj), (v8f32 LASX256W:$xk)), ++ (XVFMUL_S LASX256W:$xj, LASX256W:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvfmul_d (v4f64 LASX256D:$xj), (v4f64 LASX256D:$xk)), ++ (XVFMUL_D LASX256D:$xj, LASX256D:$xk)>; ++ ++def : LASXPat<(int_loongarch_lasx_xvfdiv_s (v8f32 LASX256W:$xj), (v8f32 LASX256W:$xk)), ++ (XVFDIV_S LASX256W:$xj, LASX256W:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvfdiv_d (v4f64 LASX256D:$xj), (v4f64 LASX256D:$xk)), ++ (XVFDIV_D LASX256D:$xj, LASX256D:$xk)>; ++ ++def : LASXPat<(int_loongarch_lasx_xvfsqrt_s (v8f32 LASX256W:$xj)), ++ (XVFSQRT_S LASX256W:$xj)>; ++def : LASXPat<(int_loongarch_lasx_xvfsqrt_d (v4f64 LASX256D:$xj)), ++ (XVFSQRT_D LASX256D:$xj)>; ++ ++def : LASXPat<(v8f32 (int_loongarch_lasx_xvffint_s_w (v8i32 LASX256W:$xj))), ++ (XVFFINT_S_W (v8i32 LASX256W:$xj))>; ++def : LASXPat<(v8f32 (int_loongarch_lasx_xvffint_s_wu (v8i32 LASX256W:$xj))), ++ (XVFFINT_S_WU (v8i32 LASX256W:$xj))>; ++ ++def : LASXPat<(v4f64 (int_loongarch_lasx_xvffint_d_l (v4i64 LASX256D:$xj))), ++ (XVFFINT_D_L (v4i64 LASX256D:$xj))>; ++def : LASXPat<(v4f64 (int_loongarch_lasx_xvffint_d_lu (v4i64 LASX256D:$xj))), ++ (XVFFINT_D_LU (v4i64 LASX256D:$xj))>; ++ ++def : LASXPat<(int_loongarch_lasx_xvreplgr2vr_b GPR32Opnd:$rj), ++ (XVREPLGR2VR_B GPR32Opnd:$rj)>; ++def : LASXPat<(int_loongarch_lasx_xvreplgr2vr_h GPR32Opnd:$rj), ++ (XVREPLGR2VR_H GPR32Opnd:$rj)>; ++def : LASXPat<(int_loongarch_lasx_xvreplgr2vr_w GPR32Opnd:$rj), ++ (XVREPLGR2VR_W GPR32Opnd:$rj)>; ++def : LASXPat<(int_loongarch_lasx_xvreplgr2vr_d GPR64Opnd:$rj), ++ (XVREPLGR2VR_D GPR64Opnd:$rj)>; ++ ++def : LASXPat<(int_loongarch_lasx_xvpickve2gr_w (v8i32 LASX256W:$xj), (immZExt3:$ui3)), ++ (XVPICKVE2GR_W LASX256W:$xj, uimm3:$ui3)>; ++def : LASXPat<(int_loongarch_lasx_xvpickve2gr_d (v4i64 LASX256D:$xj), (immZExt2:$ui2)), ++ (XVPICKVE2GR_D LASX256D:$xj, uimm2:$ui2)>; ++ ++def : LASXPat<(int_loongarch_lasx_xvpickve2gr_wu (v8i32 LASX256W:$xj), (immZExt3:$ui3)), ++ (XVPICKVE2GR_WU LASX256W:$xj, uimm3:$ui3)>; ++def : LASXPat<(int_loongarch_lasx_xvpickve2gr_du (v4i64 LASX256D:$xj), (immZExt2:$ui2)), ++ (XVPICKVE2GR_DU LASX256D:$xj, uimm2:$ui2)>; ++ ++def : LASXPat<(int_loongarch_lasx_xvreplve0_d (v4i64 LASX256D:$xj)), ++ (XVREPLVE0_D (v4i64 LASX256D:$xj))>; ++ ++def : LASXPat<(int_loongarch_lasx_xvinsgr2vr_w (v8i32 LASX256W:$xj), GPR32Opnd:$rj, (immZExt3:$ui3)), ++ (XVINSGR2VR_W LASX256W:$xj, GPR32Opnd:$rj, uimm3:$ui3)>; ++def : LASXPat<(int_loongarch_lasx_xvinsgr2vr_d (v4i64 LASX256D:$xj), GPR64Opnd:$rj, (immZExt2:$ui2)), ++ (XVINSGR2VR_D LASX256D:$xj, GPR64Opnd:$rj, uimm2:$ui2)>; ++ ++def : LASXPat<(int_loongarch_lasx_xvpickve_w (v8i32 LASX256W:$xj), (immZExt3:$ui3)), ++ (XVPICKVE_W (v8i32 (IMPLICIT_DEF)), LASX256W:$xj, uimm3:$ui3)>; ++def : LASXPat<(int_loongarch_lasx_xvpickve_d (v4i64 LASX256D:$xj), (immZExt2:$ui2)), ++ (XVPICKVE_D (v4i64 (IMPLICIT_DEF)), LASX256D:$xj, uimm2:$ui2)>; ++ ++def : LASXPat<(int_loongarch_lasx_xvdiv_b (v32i8 LASX256B:$xj), (v32i8 LASX256B:$xk)), ++ (XVDIV_B LASX256B:$xj, LASX256B:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvdiv_h (v16i16 LASX256H:$xj), (v16i16 LASX256H:$xk)), ++ (XVDIV_H LASX256H:$xj, LASX256H:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvdiv_w (v8i32 LASX256W:$xj), (v8i32 LASX256W:$xk)), ++ (XVDIV_W LASX256W:$xj, LASX256W:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvdiv_d (v4i64 LASX256D:$xj), (v4i64 LASX256D:$xk)), ++ (XVDIV_D LASX256D:$xj, LASX256D:$xk)>; ++ ++def : LASXPat<(int_loongarch_lasx_xvmod_bu (v32i8 LASX256B:$xj), (v32i8 LASX256B:$xk)), ++ (XVMOD_BU LASX256B:$xj, LASX256B:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvmod_hu (v16i16 LASX256H:$xj), (v16i16 LASX256H:$xk)), ++ (XVMOD_HU LASX256H:$xj, LASX256H:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvmod_wu (v8i32 LASX256W:$xj), (v8i32 LASX256W:$xk)), ++ (XVMOD_WU LASX256W:$xj, LASX256W:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvmod_du (v4i64 LASX256D:$xj), (v4i64 LASX256D:$xk)), ++ (XVMOD_DU LASX256D:$xj, LASX256D:$xk)>; ++ ++def : LASXPat<(int_loongarch_lasx_xvmod_b (v32i8 LASX256B:$xj), (v32i8 LASX256B:$xk)), ++ (XVMOD_B LASX256B:$xj, LASX256B:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvmod_h (v16i16 LASX256H:$xj), (v16i16 LASX256H:$xk)), ++ (XVMOD_H LASX256H:$xj, LASX256H:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvmod_w (v8i32 LASX256W:$xj), (v8i32 LASX256W:$xk)), ++ (XVMOD_W LASX256W:$xj, LASX256W:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvmod_d (v4i64 LASX256D:$xj), (v4i64 LASX256D:$xk)), ++ (XVMOD_D LASX256D:$xj, LASX256D:$xk)>; ++ ++def : LASXPat<(int_loongarch_lasx_xvmax_bu (v32i8 LASX256B:$xj), (v32i8 LASX256B:$xk)), ++ (XVMAX_BU LASX256B:$xj, LASX256B:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvmax_hu (v16i16 LASX256H:$xj), (v16i16 LASX256H:$xk)), ++ (XVMAX_HU LASX256H:$xj, LASX256H:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvmax_wu (v8i32 LASX256W:$xj), (v8i32 LASX256W:$xk)), ++ (XVMAX_WU LASX256W:$xj, LASX256W:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvmax_du (v4i64 LASX256D:$xj), (v4i64 LASX256D:$xk)), ++ (XVMAX_DU LASX256D:$xj, LASX256D:$xk)>; ++ ++def : LASXPat<(int_loongarch_lasx_xvfrint_s (v8f32 LASX256W:$xj)), ++ (XVFRINT_S LASX256W:$xj)>; ++def : LASXPat<(int_loongarch_lasx_xvfrint_d (v4f64 LASX256D:$xj)), ++ (XVFRINT_D LASX256D:$xj)>; ++ ++def : LASXPat<(int_loongarch_lasx_xvpackod_b (v32i8 LASX256B:$xj), (v32i8 LASX256B:$xk)), ++ (XVPACKOD_B LASX256B:$xj, LASX256B:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvpackod_h (v16i16 LASX256H:$xj), (v16i16 LASX256H:$xk)), ++ (XVPACKOD_H LASX256H:$xj, LASX256H:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvpackod_w (v8i32 LASX256W:$xj), (v8i32 LASX256W:$xk)), ++ (XVPACKOD_W LASX256W:$xj, LASX256W:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvpackod_d (v4i64 LASX256D:$xj), (v4i64 LASX256D:$xk)), ++ (XVPACKOD_D LASX256D:$xj, LASX256D:$xk)>; ++ ++def : LASXPat<(int_loongarch_lasx_xvpackev_b (v32i8 LASX256B:$xj), (v32i8 LASX256B:$xk)), ++ (XVPACKEV_B LASX256B:$xj, LASX256B:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvpackev_h (v16i16 LASX256H:$xj), (v16i16 LASX256H:$xk)), ++ (XVPACKEV_H LASX256H:$xj, LASX256H:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvpackev_w (v8i32 LASX256W:$xj), (v8i32 LASX256W:$xk)), ++ (XVPACKEV_W LASX256W:$xj, LASX256W:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvpackev_d (v4i64 LASX256D:$xj), (v4i64 LASX256D:$xk)), ++ (XVPACKEV_D LASX256D:$xj, LASX256D:$xk)>; ++ ++def : LASXPat<(int_loongarch_lasx_xvilvh_b (v32i8 LASX256B:$xj), (v32i8 LASX256B:$xk)), ++ (XVILVH_B LASX256B:$xj, LASX256B:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvilvh_h (v16i16 LASX256H:$xj), (v16i16 LASX256H:$xk)), ++ (XVILVH_H LASX256H:$xj, LASX256H:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvilvh_w (v8i32 LASX256W:$xj), (v8i32 LASX256W:$xk)), ++ (XVILVH_W LASX256W:$xj, LASX256W:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvilvh_d (v4i64 LASX256D:$xj), (v4i64 LASX256D:$xk)), ++ (XVILVH_D LASX256D:$xj, LASX256D:$xk)>; ++ ++def : LASXPat<(int_loongarch_lasx_xvilvl_b (v32i8 LASX256B:$xj), (v32i8 LASX256B:$xk)), ++ (XVILVL_B LASX256B:$xj, LASX256B:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvilvl_h (v16i16 LASX256H:$xj), (v16i16 LASX256H:$xk)), ++ (XVILVL_H LASX256H:$xj, LASX256H:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvilvl_w (v8i32 LASX256W:$xj), (v8i32 LASX256W:$xk)), ++ (XVILVL_W LASX256W:$xj, LASX256W:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvilvl_d (v4i64 LASX256D:$xj), (v4i64 LASX256D:$xk)), ++ (XVILVL_D LASX256D:$xj, LASX256D:$xk)>; ++ ++def : LASXPat<(int_loongarch_lasx_xvpickev_b (v32i8 LASX256B:$xj), (v32i8 LASX256B:$xk)), ++ (XVPICKEV_B LASX256B:$xj, LASX256B:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvpickev_h (v16i16 LASX256H:$xj), (v16i16 LASX256H:$xk)), ++ (XVPICKEV_H LASX256H:$xj, LASX256H:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvpickev_w (v8i32 LASX256W:$xj), (v8i32 LASX256W:$xk)), ++ (XVPICKEV_W LASX256W:$xj, LASX256W:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvpickev_d (v4i64 LASX256D:$xj), (v4i64 LASX256D:$xk)), ++ (XVPICKEV_D LASX256D:$xj, LASX256D:$xk)>; ++ ++def : LASXPat<(int_loongarch_lasx_xvpickod_b (v32i8 LASX256B:$xj), (v32i8 LASX256B:$xk)), ++ (XVPICKOD_B LASX256B:$xj, LASX256B:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvpickod_h (v16i16 LASX256H:$xj), (v16i16 LASX256H:$xk)), ++ (XVPICKOD_H LASX256H:$xj, LASX256H:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvpickod_w (v8i32 LASX256W:$xj), (v8i32 LASX256W:$xk)), ++ (XVPICKOD_W LASX256W:$xj, LASX256W:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvpickod_d (v4i64 LASX256D:$xj), (v4i64 LASX256D:$xk)), ++ (XVPICKOD_D LASX256D:$xj, LASX256D:$xk)>; ++ ++def : LASXPat<(int_loongarch_lasx_xvsadd_b (v32i8 LASX256B:$xj), (v32i8 LASX256B:$xk)), ++ (XVSADD_B LASX256B:$xj, LASX256B:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvsadd_h (v16i16 LASX256H:$xj), (v16i16 LASX256H:$xk)), ++ (XVSADD_H LASX256H:$xj, LASX256H:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvsadd_w (v8i32 LASX256W:$xj), (v8i32 LASX256W:$xk)), ++ (XVSADD_W LASX256W:$xj, LASX256W:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvsadd_d (v4i64 LASX256D:$xj), (v4i64 LASX256D:$xk)), ++ (XVSADD_D LASX256D:$xj, LASX256D:$xk)>; ++ ++def : LASXPat<(int_loongarch_lasx_xvssub_b (v32i8 LASX256B:$xj), (v32i8 LASX256B:$xk)), ++ (XVSSUB_B LASX256B:$xj, LASX256B:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvssub_h (v16i16 LASX256H:$xj), (v16i16 LASX256H:$xk)), ++ (XVSSUB_H LASX256H:$xj, LASX256H:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvssub_w (v8i32 LASX256W:$xj), (v8i32 LASX256W:$xk)), ++ (XVSSUB_W LASX256W:$xj, LASX256W:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvssub_d (v4i64 LASX256D:$xj), (v4i64 LASX256D:$xk)), ++ (XVSSUB_D LASX256D:$xj, LASX256D:$xk)>; ++ ++def : LASXPat<(int_loongarch_lasx_xvsadd_bu (v32i8 LASX256B:$xj), (v32i8 LASX256B:$xk)), ++ (XVSADD_BU LASX256B:$xj, LASX256B:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvsadd_hu (v16i16 LASX256H:$xj), (v16i16 LASX256H:$xk)), ++ (XVSADD_HU LASX256H:$xj, LASX256H:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvsadd_wu (v8i32 LASX256W:$xj), (v8i32 LASX256W:$xk)), ++ (XVSADD_WU LASX256W:$xj, LASX256W:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvsadd_du (v4i64 LASX256D:$xj), (v4i64 LASX256D:$xk)), ++ (XVSADD_DU LASX256D:$xj, LASX256D:$xk)>; ++ ++def : LASXPat<(int_loongarch_lasx_xvssub_bu (v32i8 LASX256B:$xj), (v32i8 LASX256B:$xk)), ++ (XVSSUB_BU LASX256B:$xj, LASX256B:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvssub_hu (v16i16 LASX256H:$xj), (v16i16 LASX256H:$xk)), ++ (XVSSUB_HU LASX256H:$xj, LASX256H:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvssub_wu (v8i32 LASX256W:$xj), (v8i32 LASX256W:$xk)), ++ (XVSSUB_WU LASX256W:$xj, LASX256W:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvssub_du (v4i64 LASX256D:$xj), (v4i64 LASX256D:$xk)), ++ (XVSSUB_DU LASX256D:$xj, LASX256D:$xk)>; ++ ++def : LASXPat<(int_loongarch_lasx_xvmadd_b (v32i8 LASX256B:$xd_in), (v32i8 LASX256B:$xj), (v32i8 LASX256B:$xk)), ++ (XVMADD_B LASX256B:$xd_in, LASX256B:$xj, LASX256B:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvmadd_h (v16i16 LASX256H:$xd_in), (v16i16 LASX256H:$xj), (v16i16 LASX256H:$xk)), ++ (XVMADD_H LASX256H:$xd_in, LASX256H:$xj, LASX256H:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvmadd_w (v8i32 LASX256W:$xd_in), (v8i32 LASX256W:$xj), (v8i32 LASX256W:$xk)), ++ (XVMADD_W LASX256W:$xd_in, LASX256W:$xj, LASX256W:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvmadd_d (v4i64 LASX256D:$xd_in), (v4i64 LASX256D:$xj), (v4i64 LASX256D:$xk)), ++ (XVMADD_D LASX256D:$xd_in, LASX256D:$xj, LASX256D:$xk)>; ++ ++def : LASXPat<(int_loongarch_lasx_xvmsub_b (v32i8 LASX256B:$xd_in), (v32i8 LASX256B:$xj), (v32i8 LASX256B:$xk)), ++ (XVMSUB_B LASX256B:$xd_in, LASX256B:$xj, LASX256B:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvmsub_h (v16i16 LASX256H:$xd_in), (v16i16 LASX256H:$xj), (v16i16 LASX256H:$xk)), ++ (XVMSUB_H LASX256H:$xd_in, LASX256H:$xj, LASX256H:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvmsub_w (v8i32 LASX256W:$xd_in), (v8i32 LASX256W:$xj), (v8i32 LASX256W:$xk)), ++ (XVMSUB_W LASX256W:$xd_in, LASX256W:$xj, LASX256W:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvmsub_d (v4i64 LASX256D:$xd_in), (v4i64 LASX256D:$xj), (v4i64 LASX256D:$xk)), ++ (XVMSUB_D LASX256D:$xd_in, LASX256D:$xj, LASX256D:$xk)>; ++ ++def : LASXPat<(v8i32 (int_loongarch_lasx_xvftintrz_wu_s (v8f32 LASX256W:$xj))), ++ (XVFTINTRZ_WU_S (v8f32 LASX256W:$xj))>; ++def : LASXPat<(v4i64 (int_loongarch_lasx_xvftintrz_lu_d (v4f64 LASX256D:$xj))), ++ (XVFTINTRZ_LU_D (v4f64 LASX256D:$xj))>; ++ ++def : LASXPat<(v8i32 (int_loongarch_lasx_xvftintrz_w_s (v8f32 LASX256W:$xj))), ++ (XVFTINTRZ_W_S (v8f32 LASX256W:$xj))>; ++def : LASXPat<(v4i64 (int_loongarch_lasx_xvftintrz_l_d (v4f64 LASX256D:$xj))), ++ (XVFTINTRZ_L_D (v4f64 LASX256D:$xj))>; ++ ++def : LASXPat<(int_loongarch_lasx_xvbitclr_b (v32i8 LASX256B:$xj), (v32i8 LASX256B:$xk)), ++ (XVBITCLR_B LASX256B:$xj, LASX256B:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvbitclr_h (v16i16 LASX256H:$xj), (v16i16 LASX256H:$xk)), ++ (XVBITCLR_H LASX256H:$xj, LASX256H:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvbitclr_w (v8i32 LASX256W:$xj), (v8i32 LASX256W:$xk)), ++ (XVBITCLR_W LASX256W:$xj, LASX256W:$xk)>; ++def : LASXPat<(int_loongarch_lasx_xvbitclr_d (v4i64 LASX256D:$xj), (v4i64 LASX256D:$xk)), ++ (XVBITCLR_D LASX256D:$xj, LASX256D:$xk)>; ++ ++def : LASXPat<(int_loongarch_lasx_xvclz_b (v32i8 LASX256B:$xj)), ++ (XVCLZ_B LASX256B:$xj)>; ++def : LASXPat<(int_loongarch_lasx_xvclz_h (v16i16 LASX256H:$xj)), ++ (XVCLZ_H LASX256H:$xj)>; ++def : LASXPat<(int_loongarch_lasx_xvclz_w (v8i32 LASX256W:$xj)), ++ (XVCLZ_W LASX256W:$xj)>; ++def : LASXPat<(int_loongarch_lasx_xvclz_d (v4i64 LASX256D:$xj)), ++ (XVCLZ_D LASX256D:$xj)>; ++ ++def : LASXPat<(int_loongarch_lasx_xvpcnt_b (v32i8 LASX256B:$xj)), ++ (XVPCNT_B LASX256B:$xj)>; ++def : LASXPat<(int_loongarch_lasx_xvpcnt_h (v16i16 LASX256H:$xj)), ++ (XVPCNT_H LASX256H:$xj)>; ++def : LASXPat<(int_loongarch_lasx_xvpcnt_w (v8i32 LASX256W:$xj)), ++ (XVPCNT_W LASX256W:$xj)>; ++def : LASXPat<(int_loongarch_lasx_xvpcnt_d (v4i64 LASX256D:$xj)), ++ (XVPCNT_D LASX256D:$xj)>; ++ ++ ++def : LASXPat<(v32i8 (load (add iPTR:$xj, iPTR:$xk))), ++ (XVLDX PtrRC:$xj, PtrRC:$xk)>; ++ ++def : LASXPat<(store (v32i8 LASX256B:$xd), (add iPTR:$xj, iPTR:$xk)), ++ (XVSTX LASX256B:$xd, PtrRC:$xj, PtrRC:$xk)>; ++ ++ ++def : LASXPat<(v4i64 (sext_invec (v8i32 LASX256W:$xj))), ++ (VEXT2XV_D_W LASX256W:$xj)>; ++def : LASXPat<(v8i32 (sext_invec (v16i16 LASX256H:$xj))), ++ (VEXT2XV_W_H LASX256H:$xj)>; ++def : LASXPat<(v16i16 (sext_invec (v32i8 LASX256B:$xj))), ++ (VEXT2XV_H_B LASX256B:$xj)>; ++ ++ ++def : LASXPat<(v4i64 (zext_invec (v8i32 LASX256W:$xj))), ++ (VEXT2XV_DU_WU LASX256W:$xj)>; ++def : LASXPat<(v8i32 (zext_invec (v16i16 LASX256H:$xj))), ++ (VEXT2XV_WU_HU LASX256H:$xj)>; ++def : LASXPat<(v16i16 (zext_invec (v32i8 LASX256B:$xj))), ++ (VEXT2XV_HU_BU LASX256B:$xj)>; ++ ++ ++def : LASXPat<(v4i64 (sext_invec (v16i16 LASX256H:$xj))), ++ (VEXT2XV_D_H LASX256H:$xj)>; ++def : LASXPat<(v4i64 (sext_invec (v32i8 LASX256B:$xj))), ++ (VEXT2XV_D_B LASX256B:$xj)>; ++def : LASXPat<(v8i32 (sext_invec (v32i8 LASX256B:$xj))), ++ (VEXT2XV_W_B LASX256B:$xj)>; ++ ++ ++def : LASXPat<(v4i64 (zext_invec (v16i16 LASX256H:$xj))), ++ (VEXT2XV_DU_HU LASX256H:$xj)>; ++def : LASXPat<(v4i64 (zext_invec (v32i8 LASX256B:$xj))), ++ (VEXT2XV_DU_BU LASX256B:$xj)>; ++def : LASXPat<(v8i32 (zext_invec (v32i8 LASX256B:$xj))), ++ (VEXT2XV_WU_BU LASX256B:$xj)>; ++ ++ ++def : LASXPat<(v4i64 (sext_invec (v16i16 LASX256H:$xj))), ++ (VEXT2XV_D_H LASX256H:$xj)>; ++def : LASXPat<(v4i64 (sext_invec (v32i8 LASX256B:$xj))), ++ (VEXT2XV_D_B LASX256B:$xj)>; ++def : LASXPat<(v8i32 (sext_invec (v32i8 LASX256B:$xj))), ++ (VEXT2XV_W_B LASX256B:$xj)>; ++ ++def : LASXPat<(v4i64 (zext_invec (v16i16 LASX256H:$xj))), ++ (VEXT2XV_DU_HU LASX256H:$xj)>; ++def : LASXPat<(v4i64 (zext_invec (v32i8 LASX256B:$xj))), ++ (VEXT2XV_DU_BU LASX256B:$xj)>; ++def : LASXPat<(v8i32 (zext_invec (v32i8 LASX256B:$xj))), ++ (VEXT2XV_WU_BU LASX256B:$xj)>; ++ ++ ++def : LASXPat<(v16i16 (sext (v16i8 LSX128B:$vj))), ++ (VEXT2XV_H_B ++ (INSERT_SUBREG (v32i8 (IMPLICIT_DEF)), LSX128B:$vj, sub_128))>; ++ ++def : LASXPat<(v8i32 (sext (v8i16 LSX128H:$vj))), ++ (VEXT2XV_W_H ++ (INSERT_SUBREG (v16i16 (IMPLICIT_DEF)), LSX128H:$vj, sub_128))>; ++ ++def : LASXPat<(v4i64 (sext (v4i32 LSX128W:$vj))), ++ (VEXT2XV_D_W ++ (INSERT_SUBREG (v8i32 (IMPLICIT_DEF)), LSX128W:$vj, sub_128))>; ++ ++def : LASXPat<(v16i16 (zext (v16i8 LSX128B:$vj))), ++ (VEXT2XV_HU_BU ++ (INSERT_SUBREG (v32i8 (IMPLICIT_DEF)), LSX128B:$vj, sub_128))>; ++ ++def : LASXPat<(v8i32 (zext (v8i16 LSX128H:$vj))), ++ (VEXT2XV_WU_HU ++ (INSERT_SUBREG (v16i16 (IMPLICIT_DEF)), LSX128H:$vj, sub_128))>; ++ ++def : LASXPat<(v4i64 (zext (v4i32 LSX128W:$vj))), ++ (VEXT2XV_DU_WU ++ (INSERT_SUBREG (v8i32 (IMPLICIT_DEF)), LSX128W:$vj, sub_128))>; ++ ++ ++def : LASXPat<(xor ++ (v16i16 LASX256H:$xj), (xvsplati16 imm_mask) ++ ), ++ (XNOR_V_H_PSEUDO (v16i16 LASX256H:$xj), (v16i16 LASX256H:$xj))>; ++ ++def : LASXPat<(xor ++ (v8i32 LASX256W:$xj), (xvsplati32 imm_mask) ++ ), ++ (XNOR_V_W_PSEUDO (v8i32 LASX256W:$xj), (v8i32 LASX256W:$xj))>; ++ ++def : LASXPat<(xor ++ (v4i64 LASX256D:$xj), (xvsplati64 imm_mask_64) ++ ), ++ (XNOR_V_D_PSEUDO (v4i64 LASX256D:$xj), (v4i64 LASX256D:$xj))>; ++ ++ ++def : LASXPat<(and ++ (v32i8 (xor (v32i8 LASX256B:$xj), (xvsplati8 imm_mask))), ++ (v32i8 LASX256B:$xk) ++ ), ++ (XVANDN_V (v32i8 LASX256B:$xj), (v32i8 LASX256B:$xk))>; ++ ++def : LASXPat<(and ++ (v16i16 (xor (v16i16 LASX256H:$xj), (xvsplati16 imm_mask))), ++ (v16i16 LASX256H:$xk) ++ ), ++ (XVANDN_H_PSEUDO (v16i16 LASX256H:$xj), (v16i16 LASX256H:$xk))>; ++ ++def : LASXPat<(and ++ (v8i32 (xor (v8i32 LASX256W:$xj), (xvsplati32 imm_mask))), ++ (v8i32 LASX256W:$xk) ++ ), ++ (XVANDN_W_PSEUDO (v8i32 LASX256W:$xj), (v8i32 LASX256W:$xk))>; ++ ++def : LASXPat<(and ++ (v4i64 (xor (v4i64 LASX256D:$xj), (xvsplati64 imm_mask_64))), ++ (v4i64 LASX256D:$xk) ++ ), ++ (XVANDN_D_PSEUDO (v4i64 LASX256D:$xj), (v4i64 LASX256D:$xk))>; ++ ++ ++def : LASXPat<(or ++ (v32i8 LASX256B:$xj), ++ (v32i8 (xor (v32i8 LASX256B:$xk), (xvsplati8 imm_mask))) ++ ), ++ (XVORN_V (v32i8 LASX256B:$xj), (v32i8 LASX256B:$xk))>; ++ ++def : LASXPat<(or ++ (v16i16 LASX256H:$xj), ++ (v16i16 (xor (v16i16 LASX256H:$xk), (xvsplati16 imm_mask))) ++ ), ++ (XVORN_H_PSEUDO (v16i16 LASX256H:$xj), (v16i16 LASX256H:$xk))>; ++ ++def : LASXPat<(or ++ (v8i32 LASX256W:$xj), ++ (v8i32 (xor (v8i32 LASX256W:$xk), (xvsplati32 imm_mask))) ++ ), ++ (XVORN_W_PSEUDO (v8i32 LASX256W:$xj), (v8i32 LASX256W:$xk))>; ++ ++def : LASXPat<(or ++ (v4i64 LASX256D:$xj), ++ (v4i64 (xor (v4i64 LASX256D:$xk), (xvsplati64 imm_mask_64))) ++ ), ++ (XVORN_D_PSEUDO (v4i64 LASX256D:$xj), (v4i64 LASX256D:$xk))>; ++ ++ ++def : LASXPat<(add (v4i64 (abs LASX256D:$a)), (v4i64 (abs LASX256D:$b))), ++ (XVADDA_D (v4i64 LASX256D:$a),(v4i64 LASX256D:$b))>; ++ ++def : LASXPat<(add (v8i32 (abs LASX256W:$a)), (v8i32 (abs LASX256W:$b))), ++ (XVADDA_W (v8i32 LASX256W:$a),(v8i32 LASX256W:$b))>; ++ ++def : LASXPat<(add (v16i16 (abs LASX256H:$a)), (v16i16 (abs LASX256H:$b))), ++ (XVADDA_H (v16i16 LASX256H:$a),(v16i16 LASX256H:$b))>; ++ ++def : LASXPat<(add (v32i8 (abs LASX256B:$a)), (v32i8 (abs LASX256B:$b))), ++ (XVADDA_B (v32i8 LASX256B:$a),(v32i8 LASX256B:$b))>; ++ ++ ++def : LASXPat<(and v32i8:$xj, (xor (shl xvsplat_imm_eq_1, v32i8:$xk), ++ (xvsplati8 imm_mask))), ++ (XVBITCLR_B v32i8:$xj, v32i8:$xk)>; ++ ++def : LASXPat<(and v16i16:$xj, (xor (shl xvsplat_imm_eq_1, v16i16:$xk), ++ (xvsplati16 imm_mask))), ++ (XVBITCLR_H v16i16:$xj, v16i16:$xk)>; ++ ++def : LASXPat<(and v8i32:$xj, (xor (shl xvsplat_imm_eq_1, v8i32:$xk), ++ (xvsplati32 imm_mask))), ++ (XVBITCLR_W v8i32:$xj, v8i32:$xk)>; ++ ++def : LASXPat<(and v4i64:$xj, (xor (shl xvsplat_imm_eq_1, v4i64:$xk), ++ (xvsplati64 imm_mask_64))), ++ (XVBITCLR_D v4i64:$xj, v4i64:$xk)>; +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchLSXInstrFormats.td b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchLSXInstrFormats.td +new file mode 100644 +index 00000000000..50df4d724c5 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchLSXInstrFormats.td +@@ -0,0 +1,449 @@ ++//===- LoongArchLSXInstrFormats.td - LoongArch LSX Instruction Formats ---*- tablegen -*-===// ++// ++// The LLVM Compiler Infrastructure ++// ++// This file is distributed under the University of Illinois Open Source ++// License. See LICENSE.TXT for details. ++// ++//===----------------------------------------------------------------------===// ++ ++class LSXInst : InstLA<(outs), (ins), "", [], FrmOther>, ++ EXT_LSX { ++} ++ ++class LSXCBranch : LSXInst { ++} ++ ++class LSXSpecial : LSXInst { ++} ++ ++class LSXPseudo pattern>: ++ LoongArchPseudo { ++ let Predicates = [HasLSX]; ++} ++ ++class LSX_3R op>: LSXInst { ++ bits<5> vk; ++ bits<5> vj; ++ bits<5> vd; ++ ++ let Inst{31-15} = op; ++ let Inst{14-10} = vk; ++ let Inst{9-5} = vj; ++ let Inst{4-0} = vd; ++} ++ ++class LSX_3R_1GP op>: LSXInst { ++ bits<5> rk; ++ bits<5> vj; ++ bits<5> vd; ++ ++ let Inst{31-15} = op; ++ let Inst{14-10} = rk; ++ let Inst{9-5} = vj; ++ let Inst{4-0} = vd; ++} ++ ++class LSX_I5 op>: LSXInst { ++ bits<5> vd; ++ bits<5> vj; ++ bits<5> si5; ++ ++ let Inst{31-15} = op; ++ let Inst{14-10} = si5; ++ let Inst{9-5} = vj; ++ let Inst{4-0} = vd; ++} ++ ++class LSX_I5_U op>: LSXInst { ++ bits<5> vd; ++ bits<5> vj; ++ bits<5> ui5; ++ ++ let Inst{31-15} = op; ++ let Inst{14-10} = ui5; ++ let Inst{9-5} = vj; ++ let Inst{4-0} = vd; ++} ++ ++class LSX_2R op>: LSXInst { ++ bits<5> vj; ++ bits<5> vd; ++ ++ let Inst{31-10} = op; ++ let Inst{9-5} = vj; ++ let Inst{4-0} = vd; ++} ++ ++class LSX_2R_1GP op>: LSXInst { ++ bits<5> rj; ++ bits<5> vd; ++ ++ let Inst{31-10} = op; ++ let Inst{9-5} = rj; ++ let Inst{4-0} = vd; ++} ++ ++class LSX_I1_U op>: LSXInst { ++ bits<5> vd; ++ bits<5> vj; ++ bits<1> ui1; ++ ++ let Inst{31-11} = op; ++ let Inst{10} = ui1; ++ let Inst{9-5} = vj; ++ let Inst{4-0} = vd; ++} ++ ++class LSX_I2_U op>: LSXInst { ++ bits<5> vd; ++ bits<5> vj; ++ bits<2> ui2; ++ ++ let Inst{31-12} = op; ++ let Inst{11-10} = ui2; ++ let Inst{9-5} = vj; ++ let Inst{4-0} = vd; ++} ++ ++class LSX_I3_U op>: LSXInst { ++ bits<5> vd; ++ bits<5> vj; ++ bits<3> ui3; ++ ++ let Inst{31-13} = op; ++ let Inst{12-10} = ui3; ++ let Inst{9-5} = vj; ++ let Inst{4-0} = vd; ++} ++ ++class LSX_I4_U op>: LSXInst { ++ bits<5> vd; ++ bits<5> vj; ++ bits<4> ui4; ++ ++ let Inst{31-14} = op; ++ let Inst{13-10} = ui4; ++ let Inst{9-5} = vj; ++ let Inst{4-0} = vd; ++} ++ ++class LSX_I6_U op>: LSXInst { ++ bits<5> vd; ++ bits<5> vj; ++ bits<6> ui6; ++ ++ let Inst{31-16} = op; ++ let Inst{15-10} = ui6; ++ let Inst{9-5} = vj; ++ let Inst{4-0} = vd; ++} ++ ++class LSX_I1_R_U op>: LSXInst { ++ bits<5> vd; ++ bits<5> rj; ++ bits<1> ui1; ++ ++ let Inst{31-11} = op; ++ let Inst{10} = ui1; ++ let Inst{9-5} = rj; ++ let Inst{4-0} = vd; ++} ++ ++class LSX_I2_R_U op>: LSXInst { ++ bits<5> vd; ++ bits<5> rj; ++ bits<2> ui2; ++ ++ let Inst{31-12} = op; ++ let Inst{11-10} = ui2; ++ let Inst{9-5} = rj; ++ let Inst{4-0} = vd; ++} ++ ++class LSX_I3_R_U op>: LSXInst { ++ bits<5> vd; ++ bits<5> rj; ++ bits<3> ui3; ++ ++ let Inst{31-13} = op; ++ let Inst{12-10} = ui3; ++ let Inst{9-5} = rj; ++ let Inst{4-0} = vd; ++} ++ ++class LSX_I4_R_U op>: LSXInst { ++ bits<5> vd; ++ bits<5> rj; ++ bits<4> ui4; ++ ++ let Inst{31-14} = op; ++ let Inst{13-10} = ui4; ++ let Inst{9-5} = rj; ++ let Inst{4-0} = vd; ++} ++ ++class LSX_ELM_COPY_B op>: LSXInst { ++ bits<5> rd; ++ bits<5> vj; ++ bits<4> ui4; ++ ++ let Inst{31-14} = op; ++ let Inst{13-10} = ui4; ++ let Inst{9-5} = vj; ++ let Inst{4-0} = rd; ++} ++ ++class LSX_ELM_COPY_H op>: LSXInst { ++ bits<5> rd; ++ bits<5> vj; ++ bits<3> ui3; ++ ++ let Inst{31-13} = op; ++ let Inst{12-10} = ui3; ++ let Inst{9-5} = vj; ++ let Inst{4-0} = rd; ++} ++ ++class LSX_ELM_COPY_W op>: LSXInst { ++ bits<5> rd; ++ bits<5> vj; ++ bits<2> ui2; ++ ++ let Inst{31-12} = op; ++ let Inst{11-10} = ui2; ++ let Inst{9-5} = vj; ++ let Inst{4-0} = rd; ++} ++ ++class LSX_ELM_COPY_D op>: LSXInst { ++ bits<5> rd; ++ bits<5> vj; ++ bits<1> ui1; ++ ++ let Inst{31-11} = op; ++ let Inst{10} = ui1; ++ let Inst{9-5} = vj; ++ let Inst{4-0} = rd; ++} ++ ++class LSX_I8_U op>: LSXInst { ++ bits<5> vd; ++ bits<5> vj; ++ bits<8> ui8; ++ ++ let Inst{31-18} = op; ++ let Inst{17-10} = ui8; ++ let Inst{9-5} = vj; ++ let Inst{4-0} = vd; ++} ++ ++class LSX_I7_U op>: LSXInst { ++ bits<5> vd; ++ bits<5> vj; ++ bits<7> ui7; ++ ++ let Inst{31-17} = op; ++ let Inst{16-10} = ui7; ++ let Inst{9-5} = vj; ++ let Inst{4-0} = vd; ++} ++ ++class LSX_I12_S op>: LSXInst { ++ bits<5> vd; ++// bits<5> rj; ++// bits<12> si12; ++ bits<17> addr; ++ ++ let Inst{31-22} = op; ++ let Inst{21-10} = addr{11-0}; ++ let Inst{9-5} = addr{16-12}; ++ let Inst{4-0} = vd; ++} ++ ++class LSX_SI12_S op>: LSXInst { ++ bits<5> vd; ++ bits<17> addr; ++ ++ let Inst{31-22} = op; ++ let Inst{21-10} = addr{11-0}; ++ let Inst{9-5} = addr{16-12}; ++ let Inst{4-0} = vd; ++} ++ ++class LSX_SI11_S op>: LSXInst { ++ bits<5> vd; ++ bits<16> addr; ++ ++ let Inst{31-21} = op; ++ let Inst{20-10} = addr{10-0}; ++ let Inst{9-5} = addr{15-11}; ++ let Inst{4-0} = vd; ++} ++ ++class LSX_SI10_S op>: LSXInst { ++ bits<5> vd; ++ bits<15> addr; ++ ++ let Inst{31-20} = op; ++ let Inst{19-10} = addr{9-0}; ++ let Inst{9-5} = addr{14-10}; ++ let Inst{4-0} = vd; ++} ++ ++class LSX_SI9_S op>: LSXInst { ++ bits<5> vd; ++ bits<14> addr; ++ ++ let Inst{31-19} = op; ++ let Inst{18-10} = addr{8-0}; ++ let Inst{9-5} = addr{13-9}; ++ let Inst{4-0} = vd; ++} ++ ++class LSX_SET op>: LSXInst { ++ bits<5> vj; ++ bits<3> cd; ++ ++ let Inst{31-10} = op; ++ let Inst{9-5} = vj; ++ let Inst{4-3} = 0b00; ++ let Inst{2-0} = cd; ++} ++ ++class LSX_VR4MUL op>: LSXInst { ++ bits<5> vd; ++ bits<5> vj; ++ bits<5> vk; ++ bits<5> va; ++ ++ let Inst{31-20} = op; ++ let Inst{19-15} = va; ++ let Inst{14-10} = vk; ++ let Inst{9-5} = vj; ++ let Inst{4-0} = vd; ++} ++ ++class LSX_VFCMP op>: LSXInst { ++ bits<5> vd; ++ bits<5> vj; ++ bits<5> vk; ++ bits<5> cond; ++ ++ let Inst{31-20} = op; ++ let Inst{19-15} = cond; ++ let Inst{14-10} = vk; ++ let Inst{9-5} = vj; ++ let Inst{4-0} = vd; ++} ++ ++class LSX_Addr_SI8_idx1 op>: LSXInst { ++ bits<5> vd; ++ bits<13> addr; ++ bits<1> idx; ++ ++ let Inst{31-19} = op; ++ let Inst{18-11} = addr{7-0}; ++ let Inst{10} = idx; ++ let Inst{9-5} = addr{12-8}; ++ let Inst{4-0} = vd; ++} ++ ++class LSX_SI8_idx1 op>: LSXInst { ++ bits<5> vd; ++ bits<5> rj; ++ bits<8> si8; ++ bits<1> idx; ++ ++ let Inst{31-19} = op; ++ let Inst{18} = idx; ++ let Inst{17-10} = si8; ++ let Inst{9-5} = rj; ++ let Inst{4-0} = vd; ++} ++ ++class LSX_SI8_idx2 op>: LSXInst { ++ bits<5> vd; ++ bits<5> rj; ++ bits<8> si8; ++ bits<2> idx; ++ ++ let Inst{31-20} = op; ++ let Inst{19-18} = idx; ++ let Inst{17-10} = si8; ++ let Inst{9-5} = rj; ++ let Inst{4-0} = vd; ++} ++ ++class LSX_SI8_idx3 op>: LSXInst { ++ bits<5> vd; ++ bits<5> rj; ++ bits<8> si8; ++ bits<3> idx; ++ ++ let Inst{31-21} = op; ++ let Inst{20-18} = idx; ++ let Inst{17-10} = si8; ++ let Inst{9-5} = rj; ++ let Inst{4-0} = vd; ++} ++ ++class LSX_SI8_idx4 op>: LSXInst { ++ bits<5> vd; ++ bits<5> rj; ++ bits<8> si8; ++ bits<4> idx; ++ ++ let Inst{31-22} = op; ++ let Inst{21-18} = idx; ++ let Inst{17-10} = si8; ++ let Inst{9-5} = rj; ++ let Inst{4-0} = vd; ++} ++ ++class LSX_3R_2GP op>: LSXInst { ++ bits<5> rk; ++ bits<5> rj; ++ bits<5> vd; ++ ++ let Inst{31-15} = op; ++ let Inst{14-10} = rk; ++ let Inst{9-5} = rj; ++ let Inst{4-0} = vd; ++} ++ ++class LSX_I5_mode_U op>: LSXInst { ++ bits<5> vd; ++ bits<5> mode; ++ bits<5> ui5; ++ ++ let Inst{31-15} = op; ++ let Inst{14-10} = ui5; ++ let Inst{9-5} = mode; ++ let Inst{4-0} = vd; ++} ++ ++class LSX_1R_I13 op>: LSXInst { ++ bits<13> i13; ++ bits<5> vd; ++ ++ let Inst{31-18} = op; ++ let Inst{17-5} = i13; ++ let Inst{4-0} = vd; ++} ++ ++class LSX_1R_I13_I10 op>: LSXInst { ++ bits<10> i10; ++ bits<5> vd; ++ ++ let Inst{31-15} = op; ++ let Inst{14-5} = i10; ++ let Inst{4-0} = vd; ++} ++ ++ ++ ++ ++ ++ ++ +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchLSXInstrInfo.td b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchLSXInstrInfo.td +new file mode 100644 +index 00000000000..69fdc3a8d60 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchLSXInstrInfo.td +@@ -0,0 +1,5904 @@ ++//===- LoongArchLSXInstrInfo.td - LSX instructions -*- tablegen ------------*-=// ++// ++// The LLVM Compiler Infrastructure ++// ++// This file is distributed under the University of Illinois Open Source ++// License. See LICENSE.TXT for details. ++// ++//===----------------------------------------------------------------------===// ++// ++// This file describes LoongArch LSX instructions. ++// ++//===----------------------------------------------------------------------===// ++ ++def SDT_LoongArchVecCond : SDTypeProfile<1, 1, [SDTCisInt<0>, SDTCisVec<1>]>; ++def SDT_VSetCC : SDTypeProfile<1, 3, [SDTCisInt<0>, ++ SDTCisInt<1>, ++ SDTCisSameAs<1, 2>, ++ SDTCisVT<3, OtherVT>]>; ++def SDT_VFSetCC : SDTypeProfile<1, 3, [SDTCisInt<0>, ++ SDTCisFP<1>, ++ SDTCisSameAs<1, 2>, ++ SDTCisVT<3, OtherVT>]>; ++def SDT_VSHF : SDTypeProfile<1, 3, [SDTCisInt<0>, SDTCisVec<0>, ++ SDTCisInt<1>, SDTCisVec<1>, ++ SDTCisSameAs<0, 2>, SDTCisSameAs<2, 3>]>; ++def SDT_SHF : SDTypeProfile<1, 2, [SDTCisInt<0>, SDTCisVec<0>, ++ SDTCisVT<1, i32>, SDTCisSameAs<0, 2>]>; ++def SDT_ILV : SDTypeProfile<1, 2, [SDTCisInt<0>, SDTCisVec<0>, ++ SDTCisSameAs<0, 1>, SDTCisSameAs<1, 2>]>; ++def SDTVABSD : SDTypeProfile<1, 3, [SDTCisVec<0>, SDTCisSameAs<0, 1>, ++ SDTCisSameAs<0, 2>, SDTCisVT<3, i32>]>; ++ ++def SDT_VBROADCAST : SDTypeProfile<1, 1, [SDTCisVec<0>]>; ++def LoongArchVBROADCAST : SDNode<"LoongArchISD::VBROADCAST", SDT_VBROADCAST>; ++ ++def LoongArchVAllNonZero : SDNode<"LoongArchISD::VALL_NONZERO", SDT_LoongArchVecCond>; ++def LoongArchVAnyNonZero : SDNode<"LoongArchISD::VANY_NONZERO", SDT_LoongArchVecCond>; ++def LoongArchVAllZero : SDNode<"LoongArchISD::VALL_ZERO", SDT_LoongArchVecCond>; ++def LoongArchVAnyZero : SDNode<"LoongArchISD::VANY_ZERO", SDT_LoongArchVecCond>; ++def LoongArchVNOR : SDNode<"LoongArchISD::VNOR", SDTIntBinOp, ++ [SDNPCommutative, SDNPAssociative]>; ++def LoongArchVSHF : SDNode<"LoongArchISD::VSHF", SDT_VSHF>; ++def LoongArchSHF : SDNode<"LoongArchISD::SHF", SDT_SHF>; ++def LoongArchVPACKEV : SDNode<"LoongArchISD::VPACKEV", SDT_ILV>; ++def LoongArchVPACKOD : SDNode<"LoongArchISD::VPACKOD", SDT_ILV>; ++def LoongArchVILVH : SDNode<"LoongArchISD::VILVH", SDT_ILV>; ++def LoongArchVILVL : SDNode<"LoongArchISD::VILVL", SDT_ILV>; ++def LoongArchVPICKEV : SDNode<"LoongArchISD::VPICKEV", SDT_ILV>; ++def LoongArchVPICKOD : SDNode<"LoongArchISD::VPICKOD", SDT_ILV>; ++def LoongArchVABSD : SDNode<"LoongArchISD::VABSD", SDTVABSD>; ++def LoongArchUVABSD : SDNode<"LoongArchISD::UVABSD", SDTVABSD>; ++ ++def vsetcc : SDNode<"ISD::SETCC", SDT_VSetCC>; ++def vfsetcc : SDNode<"ISD::SETCC", SDT_VFSetCC>; ++ ++def LoongArchVExtractSExt : SDNode<"LoongArchISD::VEXTRACT_SEXT_ELT", ++ SDTypeProfile<1, 3, [SDTCisPtrTy<2>]>, []>; ++def LoongArchVExtractZExt : SDNode<"LoongArchISD::VEXTRACT_ZEXT_ELT", ++ SDTypeProfile<1, 3, [SDTCisPtrTy<2>]>, []>; ++ ++def immZExt1Ptr : ImmLeaf(Imm);}]>; ++def immZExt2Ptr : ImmLeaf(Imm);}]>; ++def immZExt3Ptr : ImmLeaf(Imm);}]>; ++def immZExt4Ptr : ImmLeaf(Imm);}]>; ++def immZExt5Ptr : ImmLeaf(Imm);}]>; ++def immZExt8 : ImmLeaf(Imm);}]>; ++def immZExt7 : PatLeaf<(imm), [{ return isUInt<7>(N->getZExtValue()); }]>; ++def immZExt6 : ImmLeaf; ++def immZExt4 : ImmLeaf(Imm);}]>; ++def immZExt3 : ImmLeaf(Imm);}]>; ++def immZExt2 : ImmLeaf(Imm);}]>; ++def immZExt1 : ImmLeaf(Imm);}]>; ++def immSExt12_l : ImmLeaf(Imm);}]>; ++def immSExt11Ptr : ImmLeaf(Imm);}]>; ++ ++def immSExt11_1 : ImmLeaf(Imm<<1);}]>; ++def immSExt10Ptr : ImmLeaf(Imm);}]>; ++def immSExt10_2 : ImmLeaf(Imm<<2);}]>; ++def immSExt9Ptr : ImmLeaf(Imm);}]>; ++def immSExt9_3 : ImmLeaf(Imm<<3);}]>; ++def immSExt8 : ImmLeaf(Imm);}]>; ++def immSExt5 : ImmLeaf(Imm);}]>; ++def immSExt8_1 : ImmLeaf(Imm<<1);}]>; ++def immSExt8_2 : ImmLeaf(Imm<<2);}]>; ++def immSExt8_3 : ImmLeaf(Imm<<3);}]>; ++ ++def addrimm10 : ComplexPattern; ++def addrimm10lsl2 : ComplexPattern; ++def addrimm9lsl3 : ComplexPattern; ++def addrimm11lsl1 : ComplexPattern; ++ ++ ++class SimmLslAsmOperandClass Supers = [], ++ int Shift = 0> : AsmOperandClass { ++ let Name = "Simm" # Bits # "_Lsl" # Shift; ++ let RenderMethod = "addImmOperands"; ++ let PredicateMethod = "isScaledSImm<" # Bits # ", " # Shift # ">"; ++ let SuperClasses = Supers; ++ let DiagnosticType = "SImm" # Bits # "_Lsl" # Shift; ++} ++ ++def Simm11Lsl1AsmOperand ++ : SimmLslAsmOperandClass<11, [], 1>; ++ ++def immSExt11_1_O : Operand { ++ let EncoderMethod = "getSImm11Lsl1Encoding"; ++ let DecoderMethod = "DecodeSImmWithOffsetAndScale<2>"; ++ let ParserMatchClass = Simm11Lsl1AsmOperand; ++} ++ ++def Simm10Lsl2AsmOperand ++ : SimmLslAsmOperandClass<10, [], 2>; ++ ++def immSExt10_2_O : Operand { ++ let EncoderMethod = "getSImm10Lsl2Encoding"; ++ let DecoderMethod = "DecodeSImmWithOffsetAndScale<4>"; ++ let ParserMatchClass = Simm10Lsl2AsmOperand; ++} ++ ++def Simm9Lsl3AsmOperand ++ : SimmLslAsmOperandClass<9, [], 3>; ++ ++def immSExt9_3_O : Operand { ++ let EncoderMethod = "getSImm9Lsl3Encoding"; ++ let DecoderMethod = "DecodeSImmWithOffsetAndScale<8>"; ++ let ParserMatchClass = Simm9Lsl3AsmOperand; ++} ++ ++def Simm8Lsl3AsmOperand ++ : SimmLslAsmOperandClass<8, [], 3>; ++ ++def immSExt8_3_O : Operand { ++ let EncoderMethod = "getSImm8Lsl3Encoding"; ++ let DecoderMethod = "DecodeSImmWithOffsetAndScale<8>"; ++ let ParserMatchClass = Simm8Lsl3AsmOperand; ++} ++ ++def Simm8Lsl2AsmOperand ++ : SimmLslAsmOperandClass<8, [], 2>; ++ ++def immSExt8_2_O : Operand { ++ let EncoderMethod = "getSImm8Lsl2Encoding"; ++ let DecoderMethod = "DecodeSImmWithOffsetAndScale<4>"; ++ let ParserMatchClass = Simm8Lsl2AsmOperand; ++} ++ ++def Simm8Lsl1AsmOperand ++ : SimmLslAsmOperandClass<8, [], 1>; ++ ++def immSExt8_1_O : Operand { ++ let EncoderMethod = "getSImm8Lsl1Encoding"; ++ let DecoderMethod = "DecodeSImmWithOffsetAndScale<2>"; ++ let ParserMatchClass = Simm8Lsl1AsmOperand; ++} ++ ++ ++class ConstantSImmAsmOperandClass Supers = [], ++ int Offset = 0> : AsmOperandClass { ++ let Name = "ConstantSImm" # Bits # "_" # Offset; ++ let RenderMethod = "addConstantSImmOperands<" # Bits # ", " # Offset # ">"; ++ let PredicateMethod = "isConstantSImm<" # Bits # ", " # Offset # ">"; ++ let SuperClasses = Supers; ++ let DiagnosticType = "SImm" # Bits # "_" # Offset; ++} ++ ++class ConstantUImmRangeAsmOperandClass Supers = []> ++ : AsmOperandClass { ++ let Name = "ConstantUImmRange" # Bottom # "_" # Top; ++ let RenderMethod = "addImmOperands"; ++ let PredicateMethod = "isConstantUImmRange<" # Bottom # ", " # Top # ">"; ++ let SuperClasses = Supers; ++ let DiagnosticType = "UImmRange" # Bottom # "_" # Top; ++} ++ ++def SImm16RelaxedAsmOperandClass ++ : SImmAsmOperandClass<16, [UImm16RelaxedAsmOperandClass]> { ++ let Name = "SImm16_Relaxed"; ++ let PredicateMethod = "isAnyImm<16>"; ++ let DiagnosticType = "SImm16_Relaxed"; ++} ++ ++def ConstantSImm11Lsl1AsmOperandClass : AsmOperandClass { ++ let Name = "SImm11Lsl1"; ++ let RenderMethod = "addImmOperands"; ++ let PredicateMethod = "isScaledSImm<11, 1>"; ++ let SuperClasses = [SImm12Operand]; ++ let DiagnosticType = "SImm11_Lsl1"; ++} ++ ++def ConstantSImm9Lsl3AsmOperandClass : AsmOperandClass { ++ let Name = "SImm9Lsl3"; ++ let RenderMethod = "addImmOperands"; ++ let PredicateMethod = "isScaledSImm<9, 3>"; ++ let SuperClasses = [SImm12Operand]; ++ let DiagnosticType = "SImm9_Lsl3"; ++} ++ ++def ConstantSImm10Lsl2AsmOperandClass : AsmOperandClass { ++ let Name = "SImm10Lsl2"; ++ let RenderMethod = "addImmOperands"; ++ let PredicateMethod = "isScaledSImm<10, 2>"; ++ let SuperClasses = [SImm12Operand]; ++ let DiagnosticType = "SImm10_Lsl2"; ++} ++def ConstantSImm11AsmOperandClass ++ : ConstantSImmAsmOperandClass<11, [ConstantSImm10Lsl2AsmOperandClass]>; ++def ConstantSImm10Lsl1AsmOperandClass : AsmOperandClass { ++ let Name = "SImm10Lsl1"; ++ let RenderMethod = "addImmOperands"; ++ let PredicateMethod = "isScaledSImm<10, 1>"; ++ let SuperClasses = [ConstantSImm11AsmOperandClass]; ++ let DiagnosticType = "SImm10_Lsl1"; ++} ++def ConstantUImm10AsmOperandClass ++ : ConstantUImmAsmOperandClass<10, [ConstantSImm10Lsl1AsmOperandClass]>; ++def ConstantSImm10AsmOperandClass ++ : ConstantSImmAsmOperandClass<10, [ConstantUImm10AsmOperandClass]>; ++def ConstantSImm9AsmOperandClass ++ : ConstantSImmAsmOperandClass<9, [ConstantSImm10AsmOperandClass]>; ++def ConstantSImm7Lsl2AsmOperandClass : AsmOperandClass { ++ let Name = "SImm7Lsl2"; ++ let RenderMethod = "addImmOperands"; ++ let PredicateMethod = "isScaledSImm<7, 2>"; ++ let SuperClasses = [ConstantSImm9AsmOperandClass]; ++ let DiagnosticType = "SImm7_Lsl2"; ++} ++def ConstantUImm8AsmOperandClass ++ : ConstantUImmAsmOperandClass<8, [ConstantSImm7Lsl2AsmOperandClass]>; ++def ConstantUImm7Sub1AsmOperandClass ++ : ConstantUImmAsmOperandClass<7, [ConstantUImm8AsmOperandClass], -1> { ++ // Specify the names since the -1 offset causes invalid identifiers otherwise. ++ let Name = "UImm7_N1"; ++ let DiagnosticType = "UImm7_N1"; ++} ++def ConstantUImm7AsmOperandClass ++ : ConstantUImmAsmOperandClass<7, [ConstantUImm7Sub1AsmOperandClass]>; ++def ConstantUImm6Lsl2AsmOperandClass : AsmOperandClass { ++ let Name = "UImm6Lsl2"; ++ let RenderMethod = "addImmOperands"; ++ let PredicateMethod = "isScaledUImm<6, 2>"; ++ let SuperClasses = [ConstantUImm7AsmOperandClass]; ++ let DiagnosticType = "UImm6_Lsl2"; ++} ++def ConstantUImm6AsmOperandClass ++ : ConstantUImmAsmOperandClass<6, [ConstantUImm6Lsl2AsmOperandClass]>; ++def ConstantSImm6AsmOperandClass ++ : ConstantSImmAsmOperandClass<6, [ConstantUImm6AsmOperandClass]>; ++def ConstantUImm5Lsl2AsmOperandClass : AsmOperandClass { ++ let Name = "UImm5Lsl2"; ++ let RenderMethod = "addImmOperands"; ++ let PredicateMethod = "isScaledUImm<5, 2>"; ++ let SuperClasses = [ConstantSImm6AsmOperandClass]; ++ let DiagnosticType = "UImm5_Lsl2"; ++} ++def ConstantUImm5_Range2_64AsmOperandClass ++ : ConstantUImmRangeAsmOperandClass<2, 64, [ConstantUImm5Lsl2AsmOperandClass]>; ++def ConstantUImm5Plus33AsmOperandClass ++ : ConstantUImmAsmOperandClass<5, [ConstantUImm5_Range2_64AsmOperandClass], ++ 33>; ++def ConstantUImm5ReportUImm6AsmOperandClass ++ : ConstantUImmAsmOperandClass<5, [ConstantUImm5Plus33AsmOperandClass]> { ++ let Name = "ConstantUImm5_0_Report_UImm6"; ++ let DiagnosticType = "UImm5_0_Report_UImm6"; ++} ++def ConstantUImm5Plus32AsmOperandClass ++ : ConstantUImmAsmOperandClass< ++ 5, [ConstantUImm5ReportUImm6AsmOperandClass], 32>; ++def ConstantUImm5Plus32NormalizeAsmOperandClass ++ : ConstantUImmAsmOperandClass<5, [ConstantUImm5Plus32AsmOperandClass], 32> { ++ let Name = "ConstantUImm5_32_Norm"; ++ // We must also subtract 32 when we render the operand. ++ let RenderMethod = "addConstantUImmOperands<5, 32, -32>"; ++} ++def ConstantUImm5Plus1ReportUImm6AsmOperandClass ++ : ConstantUImmAsmOperandClass< ++ 5, [ConstantUImm5Plus32NormalizeAsmOperandClass], 1>{ ++ let Name = "ConstantUImm5_Plus1_Report_UImm6"; ++} ++def ConstantUImm5Plus1AsmOperandClass ++ : ConstantUImmAsmOperandClass< ++ 5, [ConstantUImm5Plus1ReportUImm6AsmOperandClass], 1>; ++def ConstantUImm5AsmOperandClass ++ : ConstantUImmAsmOperandClass<5, [ConstantUImm5Plus1AsmOperandClass]>; ++def ConstantSImm5AsmOperandClass ++ : ConstantSImmAsmOperandClass<5, [ConstantUImm5AsmOperandClass]>; ++def ConstantUImm4AsmOperandClass ++ : ConstantUImmAsmOperandClass<4, [ConstantSImm5AsmOperandClass]>; ++def ConstantSImm4AsmOperandClass ++ : ConstantSImmAsmOperandClass<4, [ConstantUImm4AsmOperandClass]>; ++def ConstantUImm3AsmOperandClass ++ : ConstantUImmAsmOperandClass<3, [ConstantSImm4AsmOperandClass]>; ++def ConstantUImm2AsmOperandClass ++ : ConstantUImmAsmOperandClass<2, [ConstantUImm3AsmOperandClass]>; ++def ConstantUImm1AsmOperandClass ++ : ConstantUImmAsmOperandClass<1, [ConstantUImm2AsmOperandClass]>; ++def ConstantImmzAsmOperandClass : AsmOperandClass { ++ let Name = "ConstantImmz"; ++ let RenderMethod = "addConstantUImmOperands<1>"; ++ let PredicateMethod = "isConstantImmz"; ++ let SuperClasses = [ConstantUImm1AsmOperandClass]; ++ let DiagnosticType = "Immz"; ++} ++ ++foreach I = {1, 2, 3, 4, 5, 6, 8} in ++ def vsplat_uimm # I : Operand { ++ let PrintMethod = "printUImm<" # I # ">"; ++ let ParserMatchClass = ++ !cast("ConstantUImm" # I # "AsmOperandClass"); ++ } ++ ++foreach I = {5, 10} in ++ def vsplat_simm # I : Operand { ++ let ParserMatchClass = ++ !cast("ConstantSImm" # I # "AsmOperandClass"); ++ } ++ ++foreach I = {1, 4, 7, 8, 10, 20, 26} in ++ def uimm # I : Operand { ++ let PrintMethod = "printUImm<" # I # ">"; ++ let ParserMatchClass = ++ !cast("ConstantUImm" # I # "AsmOperandClass"); ++ } ++ ++foreach I = {1, 2, 3, 4, 5, 6, 7, 8} in ++ def uimm # I # _ptr : Operand { ++ let PrintMethod = "printUImm<" # I # ">"; ++ let ParserMatchClass = ++ !cast("ConstantUImm" # I # "AsmOperandClass"); ++ } ++ ++ ++def addrimm12 : ComplexPattern; ++ ++ ++def LoongArchMemSimm12AsmOperand : AsmOperandClass { ++ let Name = "MemOffsetSimm12"; ++ let SuperClasses = [LoongArchMemAsmOperand]; ++ let RenderMethod = "addMemOperands"; ++ let ParserMethod = "parseMemOperand"; ++ let PredicateMethod = "isMemWithSimmOffset<12>"; ++ let DiagnosticType = "MemSImm12"; ++} ++ ++def mem_simm12 : mem_generic { ++ let MIOperandInfo = (ops ptr_rc, simm12); ++ let EncoderMethod = "getMemEncoding"; ++ let ParserMatchClass = LoongArchMemSimm12AsmOperand; ++} ++ ++foreach I = {4, 6, 9, 10, 11} in ++ def simm # I : Operand { ++ let DecoderMethod = "DecodeSImmWithOffsetAndScale<" # I # ">"; ++ let ParserMatchClass = ++ !cast("ConstantSImm" # I # "AsmOperandClass"); ++ } ++ ++def LoongArchMemSimm9AsmOperand : AsmOperandClass { ++ let Name = "MemOffsetSimm9"; ++ let SuperClasses = [LoongArchMemAsmOperand]; ++ let RenderMethod = "addMemOperands"; ++ let ParserMethod = "parseMemOperand"; ++ let PredicateMethod = "isMemWithSimmOffset<9>"; ++ let DiagnosticType = "MemSImm9"; ++} ++ ++def LoongArchMemSimm10AsmOperand : AsmOperandClass { ++ let Name = "MemOffsetSimm10"; ++ let SuperClasses = [LoongArchMemAsmOperand]; ++ let RenderMethod = "addMemOperands"; ++ let ParserMethod = "parseMemOperand"; ++ let PredicateMethod = "isMemWithSimmOffset<10>"; ++ let DiagnosticType = "MemSImm10"; ++} ++ ++def LoongArchMemSimm11AsmOperand : AsmOperandClass { ++ let Name = "MemOffsetSimm11"; ++ let SuperClasses = [LoongArchMemAsmOperand]; ++ let RenderMethod = "addMemOperands"; ++ let ParserMethod = "parseMemOperand"; ++ let PredicateMethod = "isMemWithSimmOffset<11>"; ++ let DiagnosticType = "MemSImm11"; ++} ++ ++def simm13 : PatLeaf<(imm), [{ return isInt<13>(N->getSExtValue()); }]>; ++ ++def simm10Op : Operand { ++ let DecoderMethod = "DecodeSIMM10"; ++} ++ ++def simm13Op : Operand { ++ let DecoderMethod = "DecodeSIMM13"; ++} ++ ++def LoongArchMemSimm10Lsl2AsmOperand : AsmOperandClass { ++ let Name = "MemOffsetSimm10_2"; ++ let SuperClasses = [LoongArchMemAsmOperand]; ++ let RenderMethod = "addMemOperands"; ++ let ParserMethod = "parseMemOperand"; ++ let PredicateMethod = "isMemWithSimmOffset<10, 2>"; ++ let DiagnosticType = "MemSImm10Lsl2"; ++} ++ ++ ++def simm10_lsl2 : Operand { ++// let DecoderMethod = "DecodeSImmWithOffsetAndScale<10, 2>"; ++ let ParserMatchClass = ++ !cast("ConstantSImm10Lsl2AsmOperandClass"); ++} ++ ++def mem_simm10_lsl2 : mem_generic { ++ let MIOperandInfo = (ops ptr_rc, !cast("simm10_lsl2")); ++ let EncoderMethod = "getMemEncoding10l2"; ++ let ParserMatchClass = ++ !cast("LoongArchMemSimm10Lsl2AsmOperand"); ++} ++ ++ ++def LoongArchMemSimm11Lsl1AsmOperand : AsmOperandClass { ++ let Name = "MemOffsetSimm11_1"; ++ let SuperClasses = [LoongArchMemAsmOperand]; ++ let RenderMethod = "addMemOperands"; ++ let ParserMethod = "parseMemOperand"; ++ let PredicateMethod = "isMemWithSimmOffset<11, 1>"; ++ let DiagnosticType = "MemSImm11Lsl1"; ++} ++ ++ ++def simm11_lsl1 : Operand { ++ // let DecoderMethod = "DecodeSImmWithOffsetAndScale<11, 1>"; ++ let ParserMatchClass = ++ !cast("ConstantSImm11Lsl1AsmOperandClass"); ++} ++ ++def mem_simm11_lsl1 : mem_generic { ++ let MIOperandInfo = (ops ptr_rc, !cast("simm11_lsl1")); ++ let EncoderMethod = "getMemEncoding11l1"; ++ let ParserMatchClass = ++ !cast("LoongArchMemSimm11Lsl1AsmOperand"); ++} ++ ++def LoongArchMemSimm9Lsl3AsmOperand : AsmOperandClass { ++ let Name = "MemOffsetSimm9_3"; ++ let SuperClasses = [LoongArchMemAsmOperand]; ++ let RenderMethod = "addMemOperands"; ++ let ParserMethod = "parseMemOperand"; ++ let PredicateMethod = "isMemWithSimmOffset<9, 3>"; ++ let DiagnosticType = "MemSImm9Lsl3"; ++} ++ ++ ++def simm9_lsl3 : Operand { ++ // let DecoderMethod = "DecodeSImmWithOffsetAndScale<9, 3>"; ++ let ParserMatchClass = ++ !cast("ConstantSImm9Lsl3AsmOperandClass"); ++} ++ ++def mem_simm9_lsl3 : mem_generic { ++ let MIOperandInfo = (ops ptr_rc, !cast("simm9_lsl3")); ++ let EncoderMethod = "getMemEncoding9l3"; ++ let ParserMatchClass = ++ !cast("LoongArchMemSimm9Lsl3AsmOperand"); ++} ++ ++ ++ ++ ++// Operands ++ ++def immZExt2Lsa : ImmLeaf(Imm - 1);}]>; ++ ++// Pattern fragments ++def vextract_sext_i8 : PatFrag<(ops node:$vec, node:$idx), ++ (LoongArchVExtractSExt node:$vec, node:$idx, i8)>; ++def vextract_sext_i16 : PatFrag<(ops node:$vec, node:$idx), ++ (LoongArchVExtractSExt node:$vec, node:$idx, i16)>; ++def vextract_sext_i32 : PatFrag<(ops node:$vec, node:$idx), ++ (LoongArchVExtractSExt node:$vec, node:$idx, i32)>; ++def vextract_sext_i64 : PatFrag<(ops node:$vec, node:$idx), ++ (LoongArchVExtractSExt node:$vec, node:$idx, i64)>; ++ ++def vextract_zext_i8 : PatFrag<(ops node:$vec, node:$idx), ++ (LoongArchVExtractZExt node:$vec, node:$idx, i8)>; ++def vextract_zext_i16 : PatFrag<(ops node:$vec, node:$idx), ++ (LoongArchVExtractZExt node:$vec, node:$idx, i16)>; ++def vextract_zext_i32 : PatFrag<(ops node:$vec, node:$idx), ++ (LoongArchVExtractZExt node:$vec, node:$idx, i32)>; ++def vextract_zext_i64 : PatFrag<(ops node:$vec, node:$idx), ++ (LoongArchVExtractZExt node:$vec, node:$idx, i64)>; ++ ++def vldrepl_v16i8 : PatFrag<(ops node:$v1), ++ (v16i8 (LoongArchVBROADCAST node:$v1))>; ++def vldrepl_v8i16 : PatFrag<(ops node:$v1), ++ (v8i16 (LoongArchVBROADCAST node:$v1))>; ++def vldrepl_v4i32 : PatFrag<(ops node:$v1), ++ (v4i32 (LoongArchVBROADCAST node:$v1))>; ++def vldrepl_v2i64 : PatFrag<(ops node:$v1), ++ (v2i64 (LoongArchVBROADCAST node:$v1))>; ++ ++def vinsert_v16i8 : PatFrag<(ops node:$vec, node:$val, node:$idx), ++ (v16i8 (vector_insert node:$vec, node:$val, node:$idx))>; ++def vinsert_v8i16 : PatFrag<(ops node:$vec, node:$val, node:$idx), ++ (v8i16 (vector_insert node:$vec, node:$val, node:$idx))>; ++def vinsert_v4i32 : PatFrag<(ops node:$vec, node:$val, node:$idx), ++ (v4i32 (vector_insert node:$vec, node:$val, node:$idx))>; ++def vinsert_v2i64 : PatFrag<(ops node:$vec, node:$val, node:$idx), ++ (v2i64 (vector_insert node:$vec, node:$val, node:$idx))>; ++ ++class vfsetcc_type : ++ PatFrag<(ops node:$lhs, node:$rhs), ++ (ResTy (vfsetcc (OpTy node:$lhs), (OpTy node:$rhs), CC))>; ++ ++// ISD::SETFALSE cannot occur ++def vfseteq_v4f32 : vfsetcc_type; ++def vfseteq_v2f64 : vfsetcc_type; ++def vfsetge_v4f32 : vfsetcc_type; ++def vfsetge_v2f64 : vfsetcc_type; ++def vfsetgt_v4f32 : vfsetcc_type; ++def vfsetgt_v2f64 : vfsetcc_type; ++def vfsetle_v4f32 : vfsetcc_type; ++def vfsetle_v2f64 : vfsetcc_type; ++def vfsetlt_v4f32 : vfsetcc_type; ++def vfsetlt_v2f64 : vfsetcc_type; ++def vfsetne_v4f32 : vfsetcc_type; ++def vfsetne_v2f64 : vfsetcc_type; ++def vfsetoeq_v4f32 : vfsetcc_type; ++def vfsetoeq_v2f64 : vfsetcc_type; ++def vfsetoge_v4f32 : vfsetcc_type; ++def vfsetoge_v2f64 : vfsetcc_type; ++def vfsetogt_v4f32 : vfsetcc_type; ++def vfsetogt_v2f64 : vfsetcc_type; ++def vfsetole_v4f32 : vfsetcc_type; ++def vfsetole_v2f64 : vfsetcc_type; ++def vfsetolt_v4f32 : vfsetcc_type; ++def vfsetolt_v2f64 : vfsetcc_type; ++def vfsetone_v4f32 : vfsetcc_type; ++def vfsetone_v2f64 : vfsetcc_type; ++def vfsetord_v4f32 : vfsetcc_type; ++def vfsetord_v2f64 : vfsetcc_type; ++def vfsetun_v4f32 : vfsetcc_type; ++def vfsetun_v2f64 : vfsetcc_type; ++def vfsetueq_v4f32 : vfsetcc_type; ++def vfsetueq_v2f64 : vfsetcc_type; ++def vfsetuge_v4f32 : vfsetcc_type; ++def vfsetuge_v2f64 : vfsetcc_type; ++def vfsetugt_v4f32 : vfsetcc_type; ++def vfsetugt_v2f64 : vfsetcc_type; ++def vfsetule_v4f32 : vfsetcc_type; ++def vfsetule_v2f64 : vfsetcc_type; ++def vfsetult_v4f32 : vfsetcc_type; ++def vfsetult_v2f64 : vfsetcc_type; ++def vfsetune_v4f32 : vfsetcc_type; ++def vfsetune_v2f64 : vfsetcc_type; ++ ++ ++ ++// ISD::SETTRUE cannot occur ++// ISD::SETFALSE2 cannot occur ++// ISD::SETTRUE2 cannot occur ++ ++class vsetcc_type : ++ PatFrag<(ops node:$lhs, node:$rhs), ++ (ResTy (vsetcc node:$lhs, node:$rhs, CC))>; ++ ++def vseteq_v16i8 : vsetcc_type; ++def vseteq_v8i16 : vsetcc_type; ++def vseteq_v4i32 : vsetcc_type; ++def vseteq_v2i64 : vsetcc_type; ++def vsetle_v16i8 : vsetcc_type; ++def vsetle_v8i16 : vsetcc_type; ++def vsetle_v4i32 : vsetcc_type; ++def vsetle_v2i64 : vsetcc_type; ++def vsetlt_v16i8 : vsetcc_type; ++def vsetlt_v8i16 : vsetcc_type; ++def vsetlt_v4i32 : vsetcc_type; ++def vsetlt_v2i64 : vsetcc_type; ++def vsetule_v16i8 : vsetcc_type; ++def vsetule_v8i16 : vsetcc_type; ++def vsetule_v4i32 : vsetcc_type; ++def vsetule_v2i64 : vsetcc_type; ++def vsetult_v16i8 : vsetcc_type; ++def vsetult_v8i16 : vsetcc_type; ++def vsetult_v4i32 : vsetcc_type; ++def vsetult_v2i64 : vsetcc_type; ++ ++def vsplati8 : PatFrag<(ops node:$e0), ++ (v16i8 (build_vector node:$e0, node:$e0, ++ node:$e0, node:$e0, ++ node:$e0, node:$e0, ++ node:$e0, node:$e0, ++ node:$e0, node:$e0, ++ node:$e0, node:$e0, ++ node:$e0, node:$e0, ++ node:$e0, node:$e0))>; ++def vsplati16 : PatFrag<(ops node:$e0), ++ (v8i16 (build_vector node:$e0, node:$e0, ++ node:$e0, node:$e0, ++ node:$e0, node:$e0, ++ node:$e0, node:$e0))>; ++def vsplati32 : PatFrag<(ops node:$e0), ++ (v4i32 (build_vector node:$e0, node:$e0, ++ node:$e0, node:$e0))>; ++ ++def vsplati64_imm_eq_1 : PatLeaf<(bitconvert (v4i32 (build_vector))), [{ ++ APInt Imm; ++ SDNode *BV = N->getOperand(0).getNode(); ++ EVT EltTy = N->getValueType(0).getVectorElementType(); ++ ++ return selectVSplat(BV, Imm, EltTy.getSizeInBits()) && ++ Imm.getBitWidth() == EltTy.getSizeInBits() && Imm == 1; ++}]>; ++ ++def vsplati64 : PatFrag<(ops node:$e0), ++ (v2i64 (build_vector node:$e0, node:$e0))>; ++ ++def vsplati64_splat_d : PatFrag<(ops node:$e0), ++ (v2i64 (bitconvert ++ (v4i32 (and ++ (v4i32 (build_vector node:$e0, ++ node:$e0, ++ node:$e0, ++ node:$e0)), ++ vsplati64_imm_eq_1))))>; ++ ++def vsplatf32 : PatFrag<(ops node:$e0), ++ (v4f32 (build_vector node:$e0, node:$e0, ++ node:$e0, node:$e0))>; ++def vsplatf64 : PatFrag<(ops node:$e0), ++ (v2f64 (build_vector node:$e0, node:$e0))>; ++ ++def vsplati8_elt : PatFrag<(ops node:$v, node:$i), ++ (LoongArchVSHF (vsplati8 node:$i), node:$v, node:$v)>; ++def vsplati16_elt : PatFrag<(ops node:$v, node:$i), ++ (LoongArchVSHF (vsplati16 node:$i), node:$v, node:$v)>; ++def vsplati32_elt : PatFrag<(ops node:$v, node:$i), ++ (LoongArchVSHF (vsplati32 node:$i), node:$v, node:$v)>; ++def vsplati64_elt : PatFrag<(ops node:$v, node:$i), ++ (LoongArchVSHF (vsplati64_splat_d node:$i),node:$v, node:$v)>; ++ ++class SplatPatLeaf ++ : PatLeaf { ++ Operand OpClass = opclass; ++} ++ ++class SplatComplexPattern roots = [], ++ list props = []> : ++ ComplexPattern { ++ Operand OpClass = opclass; ++} ++ ++def vsplati8_uimm3 : SplatComplexPattern; ++ ++def vsplati8_uimm4 : SplatComplexPattern; ++ ++def vsplati8_uimm5 : SplatComplexPattern; ++ ++def vsplati8_uimm8 : SplatComplexPattern; ++ ++def vsplati8_simm5 : SplatComplexPattern; ++ ++def vsplati16_uimm3 : SplatComplexPattern; ++ ++def vsplati16_uimm4 : SplatComplexPattern; ++ ++def vsplati16_uimm5 : SplatComplexPattern; ++ ++def vsplati16_simm5 : SplatComplexPattern; ++ ++def vsplati32_uimm2 : SplatComplexPattern; ++ ++def vsplati32_uimm5 : SplatComplexPattern; ++ ++def vsplati32_simm5 : SplatComplexPattern; ++ ++def vsplati64_uimm1 : SplatComplexPattern; ++ ++def vsplati64_uimm5 : SplatComplexPattern; ++ ++def vsplati64_uimm6 : SplatComplexPattern; ++ ++def vsplati64_simm5 : SplatComplexPattern; ++ ++ ++// Any build_vector that is a constant splat with a value that equals 1 ++// FIXME: These should be a ComplexPattern but we can't use them because the ++// ISel generator requires the uses to have a name, but providing a name ++// causes other errors ("used in pattern but not operand list") ++def vsplat_imm_eq_1 : PatLeaf<(build_vector), [{ ++ APInt Imm; ++ EVT EltTy = N->getValueType(0).getVectorElementType(); ++ ++ return selectVSplat(N, Imm, EltTy.getSizeInBits()) && ++ Imm.getBitWidth() == EltTy.getSizeInBits() && Imm == 1; ++}]>; ++ ++def vbitclr_b : PatFrag<(ops node:$vj, node:$vk), ++ (and node:$vj, (xor (shl vsplat_imm_eq_1, node:$vk), ++ immAllOnesV))>; ++def vbitclr_h : PatFrag<(ops node:$vj, node:$vk), ++ (and node:$vj, (xor (shl vsplat_imm_eq_1, node:$vk), ++ immAllOnesV))>; ++def vbitclr_w : PatFrag<(ops node:$vj, node:$vk), ++ (and node:$vj, (xor (shl vsplat_imm_eq_1, node:$vk), ++ immAllOnesV))>; ++def vbitclr_d : PatFrag<(ops node:$vj, node:$vk), ++ (and node:$vj, (xor (shl (v2i64 vsplati64_imm_eq_1), ++ node:$vk), ++ (bitconvert (v4i32 immAllOnesV))))>; ++ ++def vbneg_b : PatFrag<(ops node:$vj, node:$vk), ++ (xor node:$vj, (shl vsplat_imm_eq_1, node:$vk))>; ++def vbneg_h : PatFrag<(ops node:$vj, node:$vk), ++ (xor node:$vj, (shl vsplat_imm_eq_1, node:$vk))>; ++def vbneg_w : PatFrag<(ops node:$vj, node:$vk), ++ (xor node:$vj, (shl vsplat_imm_eq_1, node:$vk))>; ++def vbneg_d : PatFrag<(ops node:$vj, node:$vk), ++ (xor node:$vj, (shl (v2i64 vsplati64_imm_eq_1), ++ node:$vk))>; ++ ++def vbset_b : PatFrag<(ops node:$vj, node:$vk), ++ (or node:$vj, (shl vsplat_imm_eq_1, node:$vk))>; ++def vbset_h : PatFrag<(ops node:$vj, node:$vk), ++ (or node:$vj, (shl vsplat_imm_eq_1, node:$vk))>; ++def vbset_w : PatFrag<(ops node:$vj, node:$vk), ++ (or node:$vj, (shl vsplat_imm_eq_1, node:$vk))>; ++def vbset_d : PatFrag<(ops node:$vj, node:$vk), ++ (or node:$vj, (shl (v2i64 vsplati64_imm_eq_1), ++ node:$vk))>; ++ ++def muladd : PatFrag<(ops node:$vd, node:$vj, node:$vk), ++ (add node:$vd, (mul node:$vj, node:$vk))>; ++ ++def mulsub : PatFrag<(ops node:$vd, node:$vj, node:$vk), ++ (sub node:$vd, (mul node:$vj, node:$vk))>; ++ ++class IsCommutable { ++ bit isCommutable = 1; ++} ++ ++ ++ ++//class ++class LSX_3R_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVJ:$vj, ROVK:$vk); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $vk"); ++ list Pattern = [(set ROVD:$vd, (OpNode ROVJ:$vj, ROVK:$vk))]; ++} ++ ++class LSX_3RN_DESC_BASE : ++ LSX_3R_DESC_BASE; ++ ++class LSX_3R_4R_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVD:$vd_in, ROVJ:$vj, ROVK:$vk); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $vk"); ++ list Pattern = [(set ROVD:$vd, (OpNode ROVD:$vd_in, ROVJ:$vj, ++ ROVK:$vk))]; ++ string Constraints = "$vd = $vd_in"; ++} ++ ++class LSX_3R_VREPLVE_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVJ:$vj, GPR32Opnd:$rk); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $rk"); ++ list Pattern = [(set ROVD:$vd, (OpNode ROVJ:$vj, GPR32Opnd:$rk))]; ++} ++ ++class LSX_VEC_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVJ:$vj, ROVK:$vk); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $vk"); ++ list Pattern = [(set ROVD:$vd, (OpNode ROVJ:$vj, ROVK:$vk))]; ++} ++ ++class LSX_VEC_PSEUDO_BASE : ++ LSXPseudo<(outs ROVD:$vd), (ins ROVJ:$vj, ROVK:$vk), ++ [(set ROVD:$vd, (OpNode ROVJ:$vj, ROVK:$vk))]>; ++ ++class LSX_3RF_DESC_BASE : ++ LSX_3R_DESC_BASE; ++ ++class LSX_3RFN_DESC_BASE : ++ LSX_3R_DESC_BASE; ++ ++class LSX_3R_DESC_BASE1 { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVJ:$vj, ROVK:$vk); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $vk"); ++ list Pattern = [(set ROVD:$vd, (OpNode ROVJ:$vk, ROVK:$vj))]; ++} ++ ++class LSX_3RF_DESC_BASE1 : ++ LSX_3R_DESC_BASE1; ++ ++class LSX_3R_VSHF_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVD:$vd_in, ROVJ:$vj, ROVK:$vk); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $vk"); ++ list Pattern = [(set ROVD:$vd, (LoongArchVSHF ROVD:$vd_in, ROVJ:$vj, ++ ROVK:$vk))]; ++ string Constraints = "$vd = $vd_in"; ++} ++ ++class LSX_3R_4R_VSHF_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVJ:$vj, ROVK:$vk, ROVD:$va); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $vk, $va"); ++ list Pattern = [(set ROVD:$vd, (LoongArchVSHF ROVD:$va, ROVJ:$vj, ++ ROVK:$vk))]; ++} ++ ++class LSX_I5_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVJ:$vj, SplatImm.OpClass:$si5); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $si5"); ++ list Pattern = [(set ROVD:$vd, (OpNode ROVJ:$vj, SplatImm:$si5))]; ++} ++ ++class LSX_I5_U_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVJ:$vj, SplatImm.OpClass:$ui5); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $ui5"); ++ list Pattern = [(set ROVD:$vd, (OpNode ROVJ:$vj, SplatImm:$ui5))]; ++} ++ ++class LSX_BIT_3_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVJ:$vj, ImmOp:$ui3); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $ui3"); ++ list Pattern = [(set ROVD:$vd, (OpNode ROVJ:$vj, Imm:$ui3))]; ++} ++ ++class LSX_BIT_3N_DESC_BASE : ++ LSX_BIT_3_DESC_BASE; ++ ++class LSX_BIT_4_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVJ:$vj, ImmOp:$ui4); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $ui4"); ++ list Pattern = [(set ROVD:$vd, (OpNode ROVJ:$vj, Imm:$ui4))]; ++} ++ ++class LSX_BIT_4N_DESC_BASE : ++ LSX_BIT_4_DESC_BASE; ++ ++class LSX_BIT_5_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVJ:$vj, ImmOp:$ui5); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $ui5"); ++ list Pattern = [(set ROVD:$vd, (OpNode ROVJ:$vj, Imm:$ui5))]; ++} ++ ++class LSX_BIT_5N_DESC_BASE : ++ LSX_BIT_5_DESC_BASE; ++ ++class LSX_BIT_6_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVJ:$vj, ImmOp:$ui6); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $ui6"); ++ list Pattern = [(set ROVD:$vd, (OpNode ROVJ:$vj, Imm:$ui6))]; ++} ++ ++class LSX_BIT_6N_DESC_BASE : ++ LSX_BIT_6_DESC_BASE; ++ ++class LSX_2R_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVJ:$vj); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj"); ++ list Pattern = [(set ROVD:$vd, (OpNode ROVJ:$vj))]; ++} ++ ++class LSX_2RN_DESC_BASE : ++ LSX_2R_DESC_BASE; ++ ++class LSX_2RF_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVJ:$vj); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj"); ++ list Pattern = [(set ROVD:$vd, (OpNode ROVJ:$vj))]; ++} ++ ++class LSX_2RFN_DESC_BASE : ++ LSX_2R_DESC_BASE; ++ ++class LSX_2RF_DESC_BASE_CVT { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVJ:$vj); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj"); ++ list Pattern = [(set ROVD:$vd, (OpNode ROVJ:$vj))]; ++} ++ ++class LSX_2RFN_DESC_BASE_CVT : ++ LSX_2RF_DESC_BASE_CVT; ++ ++class LSX_2RF_DESC_BASE_tmp { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVJ:$vj); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj"); ++ list Pattern = []; ++} ++ ++class LSX_2R_REPL_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROS:$rj); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $rj"); ++ list Pattern = [(set ROVD:$vd, (VT (OpNode ROS:$rj)))]; ++} ++ ++class LSX_INSERT_U4_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVD:$vd_in, ROVJ:$rj, ImmOp:$ui4); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $rj, $ui4"); ++ list Pattern = [(set ROVD:$vd, (OpNode ROVD:$vd_in, ROVJ:$rj, Imm:$ui4))]; ++ string Constraints = "$vd = $vd_in"; ++} ++ ++class LSX_INSERT_U4N_DESC_BASE : ++ LSX_INSERT_U4_DESC_BASE; ++ ++class LSX_INSERT_U3_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVD:$vd_in, ROS:$rj, ImmOp:$ui3); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $rj, $ui3"); ++ list Pattern = [(set ROVD:$vd, (OpNode ROVD:$vd_in, ROS:$rj, Imm:$ui3))]; ++ string Constraints = "$vd = $vd_in"; ++} ++ ++class LSX_INSERT_U3N_DESC_BASE : ++ LSX_INSERT_U3_DESC_BASE; ++ ++class LSX_INSERT_U2_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVD:$vd_in, ROS:$rj, ImmOp:$ui2); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $rj, $ui2"); ++ list Pattern = [(set ROVD:$vd, (OpNode ROVD:$vd_in, ROS:$rj, Imm:$ui2))]; ++ string Constraints = "$vd = $vd_in"; ++} ++ ++class LSX_INSERT_U2N_DESC_BASE : ++ LSX_INSERT_U2_DESC_BASE; ++ ++class LSX_INSERT_U1_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVD:$vd_in, ROS:$rj, ImmOp:$ui1); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $rj, $ui1"); ++ list Pattern = [(set ROVD:$vd, (OpNode ROVD:$vd_in, ROS:$rj, Imm:$ui1))]; ++ string Constraints = "$vd = $vd_in"; ++} ++ ++class LSX_INSERT_U1N_DESC_BASE : ++ LSX_INSERT_U1_DESC_BASE; ++ ++class LSX_PICK_U1_DESC_BASE { ++ dag OutOperandList = (outs ROD:$rd); ++ dag InOperandList = (ins ROVJ:$vj, ImmOp:$ui1); ++ string AsmString = !strconcat(instr_asm, "\t$rd, $vj, $ui1"); ++ list Pattern = [(set ROD:$rd, (OpNode (VecTy ROVJ:$vj), Imm:$ui1))]; ++} ++ ++class LSX_PICK_U2_DESC_BASE { ++ dag OutOperandList = (outs ROD:$rd); ++ dag InOperandList = (ins ROVJ:$vj, ImmOp:$ui2); ++ string AsmString = !strconcat(instr_asm, "\t$rd, $vj, $ui2"); ++ list Pattern = [(set ROD:$rd, (OpNode (VecTy ROVJ:$vj), Imm:$ui2))]; ++} ++ ++class LSX_PICK_U3_DESC_BASE { ++ dag OutOperandList = (outs ROD:$rd); ++ dag InOperandList = (ins ROVJ:$vj, ImmOp:$ui3); ++ string AsmString = !strconcat(instr_asm, "\t$rd, $vj, $ui3"); ++ list Pattern = [(set ROD:$rd, (OpNode (VecTy ROVJ:$vj), Imm:$ui3))]; ++} ++ ++class LSX_PICK_U4_DESC_BASE { ++ dag OutOperandList = (outs ROD:$rd); ++ dag InOperandList = (ins ROVJ:$vj, ImmOp:$ui4); ++ string AsmString = !strconcat(instr_asm, "\t$rd, $vj, $ui4"); ++ list Pattern = [(set ROD:$rd, (OpNode (VecTy ROVJ:$vj), Imm:$ui4))]; ++} ++ ++class LSX_ELM_U3_VREPLVE_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVJ:$vj, SplatImm.OpClass:$ui3); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $ui3"); ++ list Pattern = [(set ROVD:$vd, (LoongArchVSHF SplatImm:$ui3, ROVJ:$vj, ++ ROVJ:$vj))]; ++} ++ ++class LSX_ELM_U2_VREPLVE_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVJ:$vj, SplatImm.OpClass:$ui2); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $ui2"); ++ list Pattern = [(set ROVD:$vd, (LoongArchVSHF SplatImm:$ui2, ROVJ:$vj, ++ ROVJ:$vj))]; ++} ++ ++class LSX_ELM_U1_VREPLVE_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVJ:$vj, SplatImm.OpClass:$ui1); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $ui1"); ++ list Pattern = [(set ROVD:$vd, (LoongArchVSHF SplatImm:$ui1, ROVJ:$vj, ++ ROVJ:$vj))]; ++} ++ ++class LSX_ELM_U4_VREPLVE_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVJ:$vj, SplatImm.OpClass:$ui4); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $ui4"); ++ list Pattern = [(set ROVD:$vd, (LoongArchVSHF SplatImm:$ui4, ROVJ:$vj, ++ ROVJ:$vj))]; ++} ++ ++class LSX_ELM_U4_SLD_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVD:$vd_in, ROVJ:$vj, ImmOp:$ui4); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $ui4"); ++ list Pattern = [(set ROVD:$vd, (OpNode ROVD:$vd_in, ROVJ:$vj, ++ Imm:$ui4))]; ++ string Constraints = "$vd = $vd_in"; ++} ++ ++class LSX_ELM_U3_SLD_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVD:$vd_in, ROVJ:$vj, ImmOp:$ui3); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $ui3"); ++ list Pattern = [(set ROVD:$vd, (OpNode ROVD:$vd_in, ROVJ:$vj, ++ Imm:$ui3))]; ++ string Constraints = "$vd = $vd_in"; ++} ++ ++class LSX_ELM_U2_SLD_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVD:$vd_in, ROVJ:$vj, ImmOp:$ui2); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $ui2"); ++ list Pattern = [(set ROVD:$vd, (OpNode ROVD:$vd_in, ROVJ:$vj, ++ Imm:$ui2))]; ++ string Constraints = "$vd = $vd_in"; ++} ++ ++class LSX_ELM_U1_SLD_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVD:$vd_in, ROVJ:$vj, ImmOp:$ui1); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $ui1"); ++ list Pattern = [(set ROVD:$vd, (OpNode ROVD:$vd_in, ROVJ:$vj, ++ Imm:$ui1))]; ++ string Constraints = "$vd = $vd_in"; ++} ++ ++class LSX_BIT_U3_VREPLVE_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVJ:$vj, SplatImm.OpClass:$ui3); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $ui3"); ++ list Pattern = [(set ROVD:$vd, (OpNode ROVJ:$vj, SplatImm:$ui3))]; ++} ++ ++class LSX_BIT_U4_VREPLVE_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVJ:$vj, SplatImm.OpClass:$ui4); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $ui4"); ++ list Pattern = [(set ROVD:$vd, (OpNode ROVJ:$vj, SplatImm:$ui4))]; ++} ++ ++class LSX_BIT_U5_VREPLVE_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVJ:$vj, SplatImm.OpClass:$ui5); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $ui5"); ++ list Pattern = [(set ROVD:$vd, (OpNode ROVJ:$vj, SplatImm:$ui5))]; ++} ++ ++class LSX_BIT_U6_VREPLVE_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVJ:$vj, SplatImm.OpClass:$ui6); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $ui6"); ++ list Pattern = [(set ROVD:$vd, (OpNode ROVJ:$vj, SplatImm:$ui6))]; ++} ++ ++class LSX_BIT_U6_VREPLVE_DESC_BASE_Intrinsic { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVJ:$vj, uimm6:$ui6); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $ui6"); ++ list Pattern = [(set ROVD:$vd, (OpNode ROVJ:$vj, immZExt6:$ui6))]; ++} ++ ++class LSX_BIT_U3_VREPLVE_DESC_BASE_Intrinsic { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVJ:$vj, uimm3:$ui3); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $ui3"); ++ list Pattern = [(set ROVD:$vd, (OpNode ROVJ:$vj, immZExt3:$ui3))]; ++} ++ ++class LSX_BIT_U4_VREPLVE_DESC_BASE_Intrinsic { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVJ:$vj, uimm4:$ui4); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $ui4"); ++ list Pattern = [(set ROVD:$vd, (OpNode ROVJ:$vj, immZExt4:$ui4))]; ++} ++ ++class LSX_BIT_U5_VREPLVE_DESC_BASE_Intrinsic { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVJ:$vj, uimm5:$ui5); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $ui5"); ++ list Pattern = [(set ROVD:$vd, (OpNode ROVJ:$vj, immZExt5:$ui5))]; ++} ++ ++class LSX_I8_SHF_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVJ:$vj, uimm8:$ui8); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $ui8"); ++ list Pattern = [(set ROVD:$vd, (LoongArchSHF immZExt8:$ui8, ROVJ:$vj))]; ++} ++ ++class LSX_I8_SHUF_DESC_BASE_D { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVD:$vd_in, ROVJ:$vj, uimm8:$ui8); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $ui8"); ++ list Pattern = [(set ROVD:$vd, (OpNode ROVD:$vd_in, ROVJ:$vj, immZExt8:$ui8))]; ++ string Constraints = "$vd = $vd_in"; ++} ++ ++def LoongArchSelect : SDNode<"LoongArchISD::VSELECT" ,SDTSelect>; ++def LoongArchVROR : SDNode<"LoongArchISD::VROR", ++ SDTypeProfile<1, 2, [SDTCisVec<0>, SDTCisInt<0>, ++ SDTCisSameAs<0, 1>, SDTCisSameAs<0, 2>]>, []>; ++def LoongArchVRORI : SDNode<"LoongArchISD::VRORI", ++ SDTypeProfile<1, 2, [SDTCisVec<0>, SDTCisInt<0>, ++ SDTCisSameAs<0, 1>, SDTCisVT<2, i32>]>, []>; ++ ++class LSX2_RORI_U3_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVJ:$vj, ImmOp:$ui3); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $ui3"); ++ list Pattern = [(set ROVD:$vd, (LoongArchVRORI ROVJ:$vj, Imm:$ui3))]; ++} ++ ++class LSX2_RORI_U4_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVJ:$vj, ImmOp:$ui4); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $ui4"); ++ list Pattern = [(set ROVD:$vd, (LoongArchVRORI ROVJ:$vj, Imm:$ui4))]; ++} ++ ++class LSX2_RORI_U5_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVJ:$vj, ImmOp:$ui5); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $ui5"); ++ list Pattern = [(set ROVD:$vd, (LoongArchVRORI ROVJ:$vj, Imm:$ui5))]; ++} ++ ++class LSX2_RORI_U6_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVJ:$vj, ImmOp:$ui6); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $ui6"); ++ list Pattern = [(set ROVD:$vd, (LoongArchVRORI ROVJ:$vj, Imm:$ui6))]; ++} ++ ++class LSX_BIND_U4_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVD:$vd_in, ROVJ:$vj, ImmOp:$ui4); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $ui4"); ++ list Pattern = [(set ROVD:$vd, (OpNode ROVD:$vd_in, ROVJ:$vj, Imm:$ui4))]; ++ string Constraints = "$vd = $vd_in"; ++} ++ ++class LSX_BIND_U4N_DESC_BASE : ++ LSX_BIND_U4_DESC_BASE; ++ ++class LSX_BIND_U5_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVD:$vd_in, ROVJ:$vj, ImmOp:$ui5); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $ui5"); ++ list Pattern = [(set ROVD:$vd, (OpNode ROVD:$vd_in, ROVJ:$vj, Imm:$ui5))]; ++ string Constraints = "$vd = $vd_in"; ++} ++ ++class LSX_BIND_U5N_DESC_BASE : ++ LSX_BIND_U5_DESC_BASE; ++ ++class LSX_BIND_U6_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVD:$vd_in, ROVJ:$vj, ImmOp:$ui6); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $ui6"); ++ list Pattern = [(set ROVD:$vd, (OpNode ROVD:$vd_in, ROVJ:$vj, Imm:$ui6))]; ++ string Constraints = "$vd = $vd_in"; ++} ++ ++class LSX_BIND_U6N_DESC_BASE : ++ LSX_BIND_U6_DESC_BASE; ++ ++class LSX_BIND_U7_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVD:$vd_in, ROVJ:$vj, uimm7:$ui7); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $ui7"); ++ list Pattern = [(set ROVD:$vd, (OpNode ROVD:$vd_in, ROVJ:$vj, immZExt7:$ui7))]; ++ string Constraints = "$vd = $vd_in"; ++} ++ ++class LSX_BIND_U7N_DESC_BASE : ++ LSX_BIND_U7_DESC_BASE; ++ ++ ++class LD_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins MemOpnd:$addr); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $addr"); ++ list Pattern = [(set ROVD:$vd, (TyNode (OpNode Addr:$addr)))]; ++ string DecoderMethod = "DecodeLSX128Mem"; ++} ++ ++class ST_DESC_BASE { ++ dag OutOperandList = (outs); ++ dag InOperandList = (ins ROVD:$vd, MemOpnd:$addr); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $addr"); ++ list Pattern = [(OpNode (TyNode ROVD:$vd), Addr:$addr)]; ++ string DecoderMethod = "DecodeLSX128Mem"; ++} ++ ++class LSX_VEC_ADDR_PSEUDO_BASE : ++ LSXPseudo<(outs), (ins ROVD:$vd, MemOpnd:$addr), ++ [(OpNode (TyNode ROVD:$vd), MemOpnd:$addr)]>; ++ ++ ++class LSX_SET_DESC_BASE { ++ dag OutOperandList = (outs FCFROpnd:$cd); ++ dag InOperandList = (ins ROVD:$vj); ++ string AsmString = !strconcat(instr_asm, "\t$cd, $vj"); ++ list Pattern = []; ++} ++ ++class LSX_SET_DESC_BASE_tmp { ++ dag OutOperandList = (outs FCFROpnd:$cd); ++ dag InOperandList = (ins ROVD:$vj); ++ string AsmString = !strconcat(instr_asm, "\t$cd, $vj"); ++ list Pattern = []; ++} ++ ++class LSX_VMul_Reg4 { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVJ:$vj, ROVK:$vk, ROVA:$va); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $vk, $va"); ++ list Pattern = [(set ROVD:$vd, (OpNode ROVJ:$vj, ROVK:$vk, ROVA:$va))]; ++} ++ ++class LSX_4RF { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVJ:$vj, ROVK:$vk, ROVA:$va); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $vk, $va"); ++ list Pattern = [(set ROVD:$vd, (OpNode ROVJ:$vj, ROVK:$vk, ROVA:$va))]; ++} ++ ++ ++class LSX_VFCMP_Reg3 { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVJ:$vj, ROVK:$vk); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $vk"); ++ list Pattern = [(set ROVD:$vd, (OpNode ROVJ:$vj, ROVK:$vk))]; ++} ++ ++class LSX_I12_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins PtrRC:$rj, ImmOp:$si12); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $rj, $si12"); ++ list Pattern = [(set ROVD:$vd, (OpNode iPTR:$rj, Imm:$si12))]; ++} ++ ++class LSX_I11_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins PtrRC:$rj, ImmOp:$si11); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $rj, $si11"); ++ list Pattern = [(set ROVD:$vd, (OpNode iPTR:$rj, Imm:$si11))]; ++} ++ ++class LSX_I10_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins PtrRC:$rj, ImmOp:$si10); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $rj, $si10"); ++ list Pattern = [(set ROVD:$vd, (OpNode iPTR:$rj, Imm:$si10))]; ++} ++ ++class LSX_I9_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins PtrRC:$rj, ImmOp:$si9); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $rj, $si9"); ++ list Pattern = [(set ROVD:$vd, (OpNode iPTR:$rj, Imm:$si9))]; ++} ++ ++ ++class LSX_I8_U1_DESC_BASE { ++ dag OutOperandList = (outs); ++ dag InOperandList = (ins ROVD:$vd, PtrRC:$rj, ImmOp:$si8, uimm1:$idx); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $rj, $si8, $idx"); ++ list Pattern = [(OpNode ROVD:$vd, iPTR:$rj, Imm:$si8, immZExt1:$idx)]; ++ string DecoderMethod = "DecodeLSX128memstl"; ++} ++ ++ ++class LSX_I8_U2_DESC_BASE { ++ dag OutOperandList = (outs); ++ dag InOperandList = (ins ROVD:$vd, PtrRC:$rj, ImmOp:$si8, uimm2:$idx); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $rj, $si8, $idx"); ++ list Pattern = [(OpNode ROVD:$vd, iPTR:$rj, Imm:$si8, immZExt2:$idx)]; ++ string DecoderMethod = "DecodeLSX128memstl"; ++} ++ ++class LSX_I8_U3_DESC_BASE { ++ dag OutOperandList = (outs); ++ dag InOperandList = (ins ROVD:$vd, PtrRC:$rj, ImmOp:$si8, uimm3:$idx); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $rj, $si8, $idx"); ++ list Pattern = [(OpNode ROVD:$vd, iPTR:$rj, Imm:$si8, immZExt3:$idx)]; ++ string DecoderMethod = "DecodeLSX128memstl"; ++} ++ ++class LSX_I8_U4_DESC_BASE { ++ dag OutOperandList = (outs); ++ dag InOperandList = (ins ROVD:$vd, PtrRC:$rj, ImmOp:$si8, uimm4:$idx); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $rj, $si8, $idx"); ++ list Pattern = [(OpNode ROVD:$vd, iPTR:$rj, Imm:$si8, immZExt4:$idx)]; ++ string DecoderMethod = "DecodeLSX128memstl"; ++} ++ ++class LSX_I5_U_DESC_BASE_Intrinsic { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVJ:$vj, ImmOp:$ui5); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $ui5"); ++ list Pattern = [(set ROVD:$vd, (OpNode ROVJ:$vj, Imm:$ui5))]; ++} ++ ++class LSX_I5_DESC_BASE_Intrinsic { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVJ:$vj, ImmOp:$si5); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $si5"); ++ list Pattern = [(set ROVD:$vd, (OpNode ROVJ:$vj, Imm:$si5))]; ++} ++ ++class LSX_LDX_LA { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins PtrRC:$rj, RORK:$rk); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $rj, $rk"); ++ list Pattern = [(set ROVD:$vd, (OpNode iPTR:$rj, RORK:$rk))]; ++} ++ ++class LSX_SDX_LA { ++ dag OutOperandList = (outs); ++ dag InOperandList = (ins ROVD:$vd, PtrRC:$rj, RORK:$rk); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $rj, $rk"); ++ list Pattern = [(OpNode ROVD:$vd, iPTR:$rj, RORK:$rk)]; ++} ++ ++class LSX_U5_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVJ:$vj, uimm5:$ui5); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $ui5"); ++ list Pattern = [(set ROVD:$vd, (OpNode ROVJ:$vj, immZExt5:$ui5))]; ++} ++ ++class LSX_U5_4R_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVD:$vd_in, ROVJ:$vj, uimm5:$ui5); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $ui5"); ++ list Pattern = [(set ROVD:$vd, (OpNode ROVD:$vd_in, ROVJ:$vj, immZExt5:$ui5))]; ++ string Constraints = "$vd = $vd_in"; ++} ++ ++class LSX_2R_U3_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVJ:$vj, uimm3:$ui3); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $ui3"); ++ list Pattern = [(set ROVD:$vd, (OpNode ROVJ:$vj, immZExt3:$ui3))]; ++} ++ ++class LSX_2R_U4_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVJ:$vj, uimm4:$ui4); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $ui4"); ++ list Pattern = [(set ROVD:$vd, (OpNode ROVJ:$vj, immZExt4:$ui4))]; ++} ++ ++class LSX_2R_U5_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVJ:$vj, uimm5:$ui5); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $ui5"); ++ list Pattern = [(set ROVD:$vd, (OpNode ROVJ:$vj, immZExt5:$ui5))]; ++} ++ ++class LSX_2R_U6_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVJ:$vj, uimm6:$ui6); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $ui6"); ++ list Pattern = [(set ROVD:$vd, (OpNode ROVJ:$vj, immZExt6:$ui6))]; ++} ++ ++class LSX_2R_3R_U4_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVD:$vd_in, ROVJ:$vj, uimm4:$ui4); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $ui4"); ++ list Pattern = [(set ROVD:$vd, (OpNode ROVD:$vd_in, ROVJ:$vj, immZExt4:$ui4))]; ++ string Constraints = "$vd = $vd_in"; ++} ++ ++class LSX_2R_3R_U5_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVD:$vd_in, ROVJ:$vj, uimm5:$ui5); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $ui5"); ++ list Pattern = [(set ROVD:$vd, (OpNode ROVD:$vd_in, ROVJ:$vj, immZExt5:$ui5))]; ++ string Constraints = "$vd = $vd_in"; ++} ++ ++class LSX_2R_3R_U6_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVD:$vd_in, ROVJ:$vj, uimm6:$ui6); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $ui6"); ++ list Pattern = [(set ROVD:$vd, (OpNode ROVD:$vd_in, ROVJ:$vj, immZExt6:$ui6))]; ++ string Constraints = "$vd = $vd_in"; ++} ++ ++class LSX_2R_3R_U7_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVD:$vd_in, ROVJ:$vj, uimm7:$ui7); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $ui7"); ++ list Pattern = [(set ROVD:$vd, (OpNode ROVD:$vd_in, ROVJ:$vj, immZExt7:$ui7))]; ++ string Constraints = "$vd = $vd_in"; ++} ++ ++class LSX_2R_3R_U8_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVD:$vd_in, ROVJ:$vj, uimm8:$ui8); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $ui8"); ++ list Pattern = [(set ROVD:$vd, (OpNode ROVD:$vd_in, ROVJ:$vj, immZExt8:$ui8))]; ++ string Constraints = "$vd = $vd_in"; ++} ++ ++class LSX_2R_3R_SELECT { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVD:$vd_in, ROVJ:$vj, vsplat_uimm8:$ui8); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $ui8"); ++ list Pattern = [(set ROVD:$vd, (OpNode ROVD:$vd_in, vsplati8_uimm8:$ui8, ROVJ:$vj))]; ++ string Constraints = "$vd = $vd_in"; ++} ++ ++class LSX_2R_U8_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVJ:$vj, uimm8:$ui8); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $ui8"); ++ list Pattern = [(set ROVD:$vd, (OpNode ROVJ:$vj, immZExt8:$ui8))]; ++} ++ ++class LSX_I13_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins immOp:$i13); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $i13"); ++ list Pattern = [(set ROVD:$vd, (OpNode (Ty simm13:$i13)))]; ++ string DecoderMethod = "DecodeLSX128Mem13"; ++} ++ ++class LSX_I13_DESC_BASE_10 { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins vsplat_simm10:$i10); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $i10"); ++ list Pattern = []; ++ bit hasSideEffects = 0; ++ string DecoderMethod = "DecodeLSX128Mem10"; ++} ++ ++class LSX_BIT_U8_VREPLVE_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins ROVJ:$vj, SplatImm.OpClass:$ui8); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $vj, $ui8"); ++ list Pattern = [(set ROVD:$vd, (OpNode ROVJ:$vj, SplatImm:$ui8))]; ++} ++ ++ ++class LSXPat pred = [HasLSX]> : ++ Pat, Requires; ++ ++// Instruction encoding. ++ ++ ++def VSADD_B : LSX_3R<0b01110000010001100>, IsCommutable, ++ LSX_3RN_DESC_BASE<"vsadd.b", LSX128BOpnd>; ++ ++def VSADD_H : LSX_3R<0b01110000010001101>, IsCommutable, ++ LSX_3RN_DESC_BASE<"vsadd.h", LSX128HOpnd>; ++ ++def VSADD_W : LSX_3R<0b01110000010001110>, IsCommutable, ++ LSX_3RN_DESC_BASE<"vsadd.w", LSX128WOpnd>; ++ ++def VSADD_D : LSX_3R<0b01110000010001111>, IsCommutable, ++ LSX_3RN_DESC_BASE<"vsadd.d", LSX128DOpnd>; ++ ++ ++def VSSUB_B : LSX_3R<0b01110000010010000>, ++ LSX_3RN_DESC_BASE<"vssub.b", LSX128BOpnd>; ++ ++def VSSUB_H : LSX_3R<0b01110000010010001>, ++ LSX_3RN_DESC_BASE<"vssub.h", LSX128HOpnd>; ++ ++def VSSUB_W : LSX_3R<0b01110000010010010>, ++ LSX_3RN_DESC_BASE<"vssub.w", LSX128WOpnd>; ++ ++def VSSUB_D : LSX_3R<0b01110000010010011>, ++ LSX_3RN_DESC_BASE<"vssub.d", LSX128DOpnd>; ++ ++ ++def VSADD_BU : LSX_3R<0b01110000010010100>, IsCommutable, ++ LSX_3RN_DESC_BASE<"vsadd.bu", LSX128BOpnd>; ++ ++def VSADD_HU : LSX_3R<0b01110000010010101>, IsCommutable, ++ LSX_3RN_DESC_BASE<"vsadd.hu", LSX128HOpnd>; ++ ++def VSADD_WU : LSX_3R<0b01110000010010110>, IsCommutable, ++ LSX_3RN_DESC_BASE<"vsadd.wu", LSX128WOpnd>; ++ ++def VSADD_DU : LSX_3R<0b01110000010010111>, IsCommutable, ++ LSX_3RN_DESC_BASE<"vsadd.du", LSX128DOpnd>; ++ ++ ++def VSSUB_BU : LSX_3R<0b01110000010011000>, ++ LSX_3RN_DESC_BASE<"vssub.bu", LSX128BOpnd>; ++ ++def VSSUB_HU : LSX_3R<0b01110000010011001>, ++ LSX_3RN_DESC_BASE<"vssub.hu", LSX128HOpnd>; ++ ++def VSSUB_WU : LSX_3R<0b01110000010011010>, ++ LSX_3RN_DESC_BASE<"vssub.wu", LSX128WOpnd>; ++ ++def VSSUB_DU : LSX_3R<0b01110000010011011>, ++ LSX_3RN_DESC_BASE<"vssub.du", LSX128DOpnd>; ++ ++ ++def VHADDW_H_B : LSX_3R<0b01110000010101000>, ++ LSX_3RN_DESC_BASE<"vhaddw.h.b", LSX128HOpnd, LSX128BOpnd, LSX128BOpnd>; ++ ++def VHADDW_W_H : LSX_3R<0b01110000010101001>, ++ LSX_3RN_DESC_BASE<"vhaddw.w.h", LSX128WOpnd, LSX128HOpnd, LSX128HOpnd>; ++ ++def VHADDW_D_W : LSX_3R<0b01110000010101010>, ++ LSX_3RN_DESC_BASE<"vhaddw.d.w", LSX128DOpnd, LSX128WOpnd, LSX128WOpnd>; ++ ++ ++def VHSUBW_H_B : LSX_3R<0b01110000010101100>, ++ LSX_3RN_DESC_BASE<"vhsubw.h.b", LSX128HOpnd, LSX128BOpnd, LSX128BOpnd>; ++ ++def VHSUBW_W_H : LSX_3R<0b01110000010101101>, ++ LSX_3RN_DESC_BASE<"vhsubw.w.h", LSX128WOpnd, LSX128HOpnd, LSX128HOpnd>; ++ ++def VHSUBW_D_W : LSX_3R<0b01110000010101110>, ++ LSX_3RN_DESC_BASE<"vhsubw.d.w", LSX128DOpnd, LSX128WOpnd, LSX128WOpnd>; ++ ++ ++def VHADDW_HU_BU : LSX_3R<0b01110000010110000>, ++ LSX_3RN_DESC_BASE<"vhaddw.hu.bu", LSX128HOpnd, LSX128BOpnd, LSX128BOpnd>; ++ ++def VHADDW_WU_HU : LSX_3R<0b01110000010110001>, ++ LSX_3RN_DESC_BASE<"vhaddw.wu.hu", LSX128WOpnd, LSX128HOpnd, LSX128HOpnd>; ++ ++def VHADDW_DU_WU : LSX_3R<0b01110000010110010>, ++ LSX_3RN_DESC_BASE<"vhaddw.du.wu", LSX128DOpnd, LSX128WOpnd, LSX128WOpnd>; ++ ++ ++def VHSUBW_HU_BU : LSX_3R<0b01110000010110100>, ++ LSX_3RN_DESC_BASE<"vhsubw.hu.bu", LSX128HOpnd, LSX128BOpnd, LSX128BOpnd>; ++ ++def VHSUBW_WU_HU : LSX_3R<0b01110000010110101>, ++ LSX_3RN_DESC_BASE<"vhsubw.wu.hu", LSX128WOpnd, LSX128HOpnd, LSX128HOpnd>; ++ ++def VHSUBW_DU_WU : LSX_3R<0b01110000010110110>, ++ LSX_3RN_DESC_BASE<"vhsubw.du.wu", LSX128DOpnd, LSX128WOpnd, LSX128WOpnd>; ++ ++ ++def VADDA_B : LSX_3R<0b01110000010111000>, IsCommutable, ++ LSX_3RN_DESC_BASE<"vadda.b", LSX128BOpnd>; ++ ++def VADDA_H : LSX_3R<0b01110000010111001>, IsCommutable, ++ LSX_3RN_DESC_BASE<"vadda.h", LSX128HOpnd>; ++ ++def VADDA_W : LSX_3R<0b01110000010111010>, IsCommutable, ++ LSX_3RN_DESC_BASE<"vadda.w", LSX128WOpnd>; ++ ++def VADDA_D : LSX_3R<0b01110000010111011>, IsCommutable, ++ LSX_3RN_DESC_BASE<"vadda.d", LSX128DOpnd>; ++ ++ ++def VABSD_B : LSX_3R<0b01110000011000000>, ++ LSX_3RN_DESC_BASE<"vabsd.b", LSX128BOpnd>; ++ ++def VABSD_H : LSX_3R<0b01110000011000001>, ++ LSX_3RN_DESC_BASE<"vabsd.h", LSX128HOpnd>; ++ ++def VABSD_W : LSX_3R<0b01110000011000010>, ++ LSX_3RN_DESC_BASE<"vabsd.w", LSX128WOpnd>; ++ ++def VABSD_D : LSX_3R<0b01110000011000011>, ++ LSX_3RN_DESC_BASE<"vabsd.d", LSX128DOpnd>; ++ ++ ++def VABSD_BU : LSX_3R<0b01110000011000100>, ++ LSX_3RN_DESC_BASE<"vabsd.bu", LSX128BOpnd>; ++ ++def VABSD_HU : LSX_3R<0b01110000011000101>, ++ LSX_3RN_DESC_BASE<"vabsd.hu", LSX128HOpnd>; ++ ++def VABSD_WU : LSX_3R<0b01110000011000110>, ++ LSX_3RN_DESC_BASE<"vabsd.wu", LSX128WOpnd>; ++ ++def VABSD_DU : LSX_3R<0b01110000011000111>, ++ LSX_3RN_DESC_BASE<"vabsd.du", LSX128DOpnd>; ++ ++ ++def VAVG_B : LSX_3R<0b01110000011001000>, IsCommutable, ++ LSX_3RN_DESC_BASE<"vavg.b", LSX128BOpnd>; ++ ++def VAVG_H : LSX_3R<0b01110000011001001>, IsCommutable, ++ LSX_3RN_DESC_BASE<"vavg.h", LSX128HOpnd>; ++ ++def VAVG_W : LSX_3R<0b01110000011001010>, IsCommutable, ++ LSX_3RN_DESC_BASE<"vavg.w", LSX128WOpnd>; ++ ++def VAVG_D : LSX_3R<0b01110000011001011>, IsCommutable, ++ LSX_3RN_DESC_BASE<"vavg.d", LSX128DOpnd>; ++ ++ ++def VAVG_BU : LSX_3R<0b01110000011001100>, IsCommutable, ++ LSX_3RN_DESC_BASE<"vavg.bu", LSX128BOpnd>; ++ ++def VAVG_HU : LSX_3R<0b01110000011001101>, IsCommutable, ++ LSX_3RN_DESC_BASE<"vavg.hu", LSX128HOpnd>; ++ ++def VAVG_WU : LSX_3R<0b01110000011001110>, IsCommutable, ++ LSX_3RN_DESC_BASE<"vavg.wu", LSX128WOpnd>; ++ ++def VAVG_DU : LSX_3R<0b01110000011001111>, IsCommutable, ++ LSX_3RN_DESC_BASE<"vavg.du", LSX128DOpnd>; ++ ++ ++def VAVGR_B : LSX_3R<0b01110000011010000>, IsCommutable, ++ LSX_3RN_DESC_BASE<"vavgr.b", LSX128BOpnd>; ++ ++def VAVGR_H : LSX_3R<0b01110000011010001>, IsCommutable, ++ LSX_3RN_DESC_BASE<"vavgr.h", LSX128HOpnd>; ++ ++def VAVGR_W : LSX_3R<0b01110000011010010>, IsCommutable, ++ LSX_3RN_DESC_BASE<"vavgr.w", LSX128WOpnd>; ++ ++def VAVGR_D : LSX_3R<0b01110000011010011>, IsCommutable, ++ LSX_3RN_DESC_BASE<"vavgr.d", LSX128DOpnd>; ++ ++ ++def VAVGR_BU : LSX_3R<0b01110000011010100>, IsCommutable, ++ LSX_3RN_DESC_BASE<"vavgr.bu", LSX128BOpnd>; ++ ++def VAVGR_HU : LSX_3R<0b01110000011010101>, IsCommutable, ++ LSX_3RN_DESC_BASE<"vavgr.hu", LSX128HOpnd>; ++ ++def VAVGR_WU : LSX_3R<0b01110000011010110>, IsCommutable, ++ LSX_3RN_DESC_BASE<"vavgr.wu", LSX128WOpnd>; ++ ++def VAVGR_DU : LSX_3R<0b01110000011010111>, IsCommutable, ++ LSX_3RN_DESC_BASE<"vavgr.du", LSX128DOpnd>; ++ ++ ++def VMAX_B : LSX_3R<0b01110000011100000>, ++ LSX_3R_DESC_BASE<"vmax.b", smax, LSX128BOpnd>; ++ ++def VMAX_H : LSX_3R<0b01110000011100001>, ++ LSX_3R_DESC_BASE<"vmax.h", smax, LSX128HOpnd>; ++ ++def VMAX_W : LSX_3R<0b01110000011100010>, ++ LSX_3R_DESC_BASE<"vmax.w", smax, LSX128WOpnd>; ++ ++def VMAX_D : LSX_3R<0b01110000011100011>, ++ LSX_3R_DESC_BASE<"vmax.d", smax, LSX128DOpnd>; ++ ++ ++def VMIN_B : LSX_3R<0b01110000011100100>, ++ LSX_3R_DESC_BASE<"vmin.b", smin, LSX128BOpnd>; ++ ++def VMIN_H : LSX_3R<0b01110000011100101>, ++ LSX_3R_DESC_BASE<"vmin.h", smin, LSX128HOpnd>; ++ ++def VMIN_W : LSX_3R<0b01110000011100110>, ++ LSX_3R_DESC_BASE<"vmin.w", smin, LSX128WOpnd>; ++ ++def VMIN_D : LSX_3R<0b01110000011100111>, ++ LSX_3R_DESC_BASE<"vmin.d", smin, LSX128DOpnd>; ++ ++ ++def VMAX_BU : LSX_3R<0b01110000011101000>, ++ LSX_3R_DESC_BASE<"vmax.bu", umax, LSX128BOpnd>; ++ ++def VMAX_HU : LSX_3R<0b01110000011101001>, ++ LSX_3R_DESC_BASE<"vmax.hu", umax, LSX128HOpnd>; ++ ++def VMAX_WU : LSX_3R<0b01110000011101010>, ++ LSX_3R_DESC_BASE<"vmax.wu", umax, LSX128WOpnd>; ++ ++def VMAX_DU : LSX_3R<0b01110000011101011>, ++ LSX_3R_DESC_BASE<"vmax.du", umax, LSX128DOpnd>; ++ ++ ++def VMIN_BU : LSX_3R<0b01110000011101100>, ++ LSX_3R_DESC_BASE<"vmin.bu", umin, LSX128BOpnd>; ++ ++def VMIN_HU : LSX_3R<0b01110000011101101>, ++ LSX_3R_DESC_BASE<"vmin.hu", umin, LSX128HOpnd>; ++ ++def VMIN_WU : LSX_3R<0b01110000011101110>, ++ LSX_3R_DESC_BASE<"vmin.wu", umin, LSX128WOpnd>; ++ ++def VMIN_DU : LSX_3R<0b01110000011101111>, ++ LSX_3R_DESC_BASE<"vmin.du", umin, LSX128DOpnd>; ++ ++ ++def VMUL_B : LSX_3R<0b01110000100001000>, ++ LSX_3R_DESC_BASE<"vmul.b", mul, LSX128BOpnd>; ++ ++def VMUL_H : LSX_3R<0b01110000100001001>, ++ LSX_3R_DESC_BASE<"vmul.h", mul, LSX128HOpnd>; ++ ++def VMUL_W : LSX_3R<0b01110000100001010>, ++ LSX_3R_DESC_BASE<"vmul.w", mul, LSX128WOpnd>; ++ ++def VMUL_D : LSX_3R<0b01110000100001011>, ++ LSX_3R_DESC_BASE<"vmul.d", mul, LSX128DOpnd>; ++ ++ ++def VMADD_B : LSX_3R<0b01110000101010000>, ++ LSX_3R_4R_DESC_BASE<"vmadd.b", muladd, LSX128BOpnd>; ++ ++def VMADD_H : LSX_3R<0b01110000101010001>, ++ LSX_3R_4R_DESC_BASE<"vmadd.h", muladd, LSX128HOpnd>; ++ ++def VMADD_W : LSX_3R<0b01110000101010010>, ++ LSX_3R_4R_DESC_BASE<"vmadd.w", muladd, LSX128WOpnd>; ++ ++def VMADD_D : LSX_3R<0b01110000101010011>, ++ LSX_3R_4R_DESC_BASE<"vmadd.d", muladd, LSX128DOpnd>; ++ ++ ++def VMSUB_B : LSX_3R<0b01110000101010100>, ++ LSX_3R_4R_DESC_BASE<"vmsub.b", mulsub, LSX128BOpnd>; ++ ++def VMSUB_H : LSX_3R<0b01110000101010101>, ++ LSX_3R_4R_DESC_BASE<"vmsub.h", mulsub, LSX128HOpnd>; ++ ++def VMSUB_W : LSX_3R<0b01110000101010110>, ++ LSX_3R_4R_DESC_BASE<"vmsub.w", mulsub, LSX128WOpnd>; ++ ++def VMSUB_D : LSX_3R<0b01110000101010111>, ++ LSX_3R_4R_DESC_BASE<"vmsub.d", mulsub, LSX128DOpnd>; ++ ++ ++def VDIV_B : LSX_3R<0b01110000111000000>, ++ LSX_3R_DESC_BASE<"vdiv.b", sdiv, LSX128BOpnd>; ++ ++def VDIV_H : LSX_3R<0b01110000111000001>, ++ LSX_3R_DESC_BASE<"vdiv.h", sdiv, LSX128HOpnd>; ++ ++def VDIV_W : LSX_3R<0b01110000111000010>, ++ LSX_3R_DESC_BASE<"vdiv.w", sdiv, LSX128WOpnd>; ++ ++def VDIV_D : LSX_3R<0b01110000111000011>, ++ LSX_3R_DESC_BASE<"vdiv.d", sdiv, LSX128DOpnd>; ++ ++ ++def VMOD_B : LSX_3R<0b01110000111000100>, ++ LSX_3R_DESC_BASE<"vmod.b", srem, LSX128BOpnd>; ++ ++def VMOD_H : LSX_3R<0b01110000111000101>, ++ LSX_3R_DESC_BASE<"vmod.h", srem, LSX128HOpnd>; ++ ++def VMOD_W : LSX_3R<0b01110000111000110>, ++ LSX_3R_DESC_BASE<"vmod.w", srem, LSX128WOpnd>; ++ ++def VMOD_D : LSX_3R<0b01110000111000111>, ++ LSX_3R_DESC_BASE<"vmod.d", srem, LSX128DOpnd>; ++ ++ ++def VDIV_BU : LSX_3R<0b01110000111001000>, ++ LSX_3R_DESC_BASE<"vdiv.bu", udiv, LSX128BOpnd>; ++ ++def VDIV_HU : LSX_3R<0b01110000111001001>, ++ LSX_3R_DESC_BASE<"vdiv.hu", udiv, LSX128HOpnd>; ++ ++def VDIV_WU : LSX_3R<0b01110000111001010>, ++ LSX_3R_DESC_BASE<"vdiv.wu", udiv, LSX128WOpnd>; ++ ++def VDIV_DU : LSX_3R<0b01110000111001011>, ++ LSX_3R_DESC_BASE<"vdiv.du", udiv, LSX128DOpnd>; ++ ++ ++def VMOD_BU : LSX_3R<0b01110000111001100>, ++ LSX_3R_DESC_BASE<"vmod.bu", urem, LSX128BOpnd>; ++ ++def VMOD_HU : LSX_3R<0b01110000111001101>, ++ LSX_3R_DESC_BASE<"vmod.hu", urem, LSX128HOpnd>; ++ ++def VMOD_WU : LSX_3R<0b01110000111001110>, ++ LSX_3R_DESC_BASE<"vmod.wu", urem, LSX128WOpnd>; ++ ++def VMOD_DU : LSX_3R<0b01110000111001111>, ++ LSX_3R_DESC_BASE<"vmod.du", urem, LSX128DOpnd>; ++ ++ ++def VSLL_B : LSX_3R<0b01110000111010000>, ++ LSX_3R_DESC_BASE<"vsll.b", shl, LSX128BOpnd>; ++ ++def VSLL_H : LSX_3R<0b01110000111010001>, ++ LSX_3R_DESC_BASE<"vsll.h", shl, LSX128HOpnd>; ++ ++def VSLL_W : LSX_3R<0b01110000111010010>, ++ LSX_3R_DESC_BASE<"vsll.w", shl, LSX128WOpnd>; ++ ++def VSLL_D : LSX_3R<0b01110000111010011>, ++ LSX_3R_DESC_BASE<"vsll.d", shl, LSX128DOpnd>; ++ ++ ++def VSRL_B : LSX_3R<0b01110000111010100>, ++ LSX_3R_DESC_BASE<"vsrl.b", srl, LSX128BOpnd>; ++ ++def VSRL_H : LSX_3R<0b01110000111010101>, ++ LSX_3R_DESC_BASE<"vsrl.h", srl, LSX128HOpnd>; ++ ++def VSRL_W : LSX_3R<0b01110000111010110>, ++ LSX_3R_DESC_BASE<"vsrl.w", srl, LSX128WOpnd>; ++ ++def VSRL_D : LSX_3R<0b01110000111010111>, ++ LSX_3R_DESC_BASE<"vsrl.d", srl, LSX128DOpnd>; ++ ++ ++def VSRA_B : LSX_3R<0b01110000111011000>, ++ LSX_3R_DESC_BASE<"vsra.b", sra, LSX128BOpnd>; ++ ++def VSRA_H : LSX_3R<0b01110000111011001>, ++ LSX_3R_DESC_BASE<"vsra.h", sra, LSX128HOpnd>; ++ ++def VSRA_W : LSX_3R<0b01110000111011010>, ++ LSX_3R_DESC_BASE<"vsra.w", sra, LSX128WOpnd>; ++ ++def VSRA_D : LSX_3R<0b01110000111011011>, ++ LSX_3R_DESC_BASE<"vsra.d", sra, LSX128DOpnd>; ++ ++ ++def VSRLR_B : LSX_3R<0b01110000111100000>, ++ LSX_3RN_DESC_BASE<"vsrlr.b", LSX128BOpnd>; ++ ++def VSRLR_H : LSX_3R<0b01110000111100001>, ++ LSX_3RN_DESC_BASE<"vsrlr.h", LSX128HOpnd>; ++ ++def VSRLR_W : LSX_3R<0b01110000111100010>, ++ LSX_3RN_DESC_BASE<"vsrlr.w", LSX128WOpnd>; ++ ++def VSRLR_D : LSX_3R<0b01110000111100011>, ++ LSX_3RN_DESC_BASE<"vsrlr.d", LSX128DOpnd>; ++ ++ ++def VSRAR_B : LSX_3R<0b01110000111100100>, ++ LSX_3RN_DESC_BASE<"vsrar.b", LSX128BOpnd>; ++ ++def VSRAR_H : LSX_3R<0b01110000111100101>, ++ LSX_3RN_DESC_BASE<"vsrar.h", LSX128HOpnd>; ++ ++def VSRAR_W : LSX_3R<0b01110000111100110>, ++ LSX_3RN_DESC_BASE<"vsrar.w", LSX128WOpnd>; ++ ++def VSRAR_D : LSX_3R<0b01110000111100111>, ++ LSX_3RN_DESC_BASE<"vsrar.d", LSX128DOpnd>; ++ ++ ++def VBITCLR_B : LSX_3R<0b01110001000011000>, ++ LSX_3R_DESC_BASE<"vbitclr.b", vbitclr_b, LSX128BOpnd>; ++ ++def VBITCLR_H : LSX_3R<0b01110001000011001>, ++ LSX_3R_DESC_BASE<"vbitclr.h", vbitclr_h, LSX128HOpnd>; ++ ++def VBITCLR_W : LSX_3R<0b01110001000011010>, ++ LSX_3R_DESC_BASE<"vbitclr.w", vbitclr_w, LSX128WOpnd>; ++ ++def VBITCLR_D : LSX_3R<0b01110001000011011>, ++ LSX_3R_DESC_BASE<"vbitclr.d", vbitclr_d, LSX128DOpnd>; ++ ++ ++def VBITSET_B : LSX_3R<0b01110001000011100>, ++ LSX_3RN_DESC_BASE<"vbitset.b", LSX128BOpnd>; ++ ++def VBITSET_H : LSX_3R<0b01110001000011101>, ++ LSX_3RN_DESC_BASE<"vbitset.h", LSX128HOpnd>; ++ ++def VBITSET_W : LSX_3R<0b01110001000011110>, ++ LSX_3RN_DESC_BASE<"vbitset.w", LSX128WOpnd>; ++ ++def VBITSET_D : LSX_3R<0b01110001000011111>, ++ LSX_3RN_DESC_BASE<"vbitset.d", LSX128DOpnd>; ++ ++ ++def VBITREV_B : LSX_3R<0b01110001000100000>, ++ LSX_3RN_DESC_BASE<"vbitrev.b", LSX128BOpnd>; ++ ++def VBITREV_H : LSX_3R<0b01110001000100001>, ++ LSX_3RN_DESC_BASE<"vbitrev.h", LSX128HOpnd>; ++ ++def VBITREV_W : LSX_3R<0b01110001000100010>, ++ LSX_3RN_DESC_BASE<"vbitrev.w", LSX128WOpnd>; ++ ++def VBITREV_D : LSX_3R<0b01110001000100011>, ++ LSX_3RN_DESC_BASE<"vbitrev.d", LSX128DOpnd>; ++ ++ ++def VPACKEV_B : LSX_3R<0b01110001000101100>, ++ LSX_3R_DESC_BASE<"vpackev.b", LoongArchVPACKEV, LSX128BOpnd>; ++ ++def VPACKEV_H : LSX_3R<0b01110001000101101>, ++ LSX_3R_DESC_BASE<"vpackev.h", LoongArchVPACKEV, LSX128HOpnd>; ++ ++def VPACKEV_W : LSX_3R<0b01110001000101110>, ++ LSX_3R_DESC_BASE<"vpackev.w", LoongArchVPACKEV, LSX128WOpnd>; ++ ++def VPACKEV_D : LSX_3R<0b01110001000101111>, ++ LSX_3R_DESC_BASE<"vpackev.d", LoongArchVPACKEV, LSX128DOpnd>; ++ ++ ++def VPACKOD_B : LSX_3R<0b01110001000110000>, ++ LSX_3R_DESC_BASE<"vpackod.b", LoongArchVPACKOD, LSX128BOpnd>; ++ ++def VPACKOD_H : LSX_3R<0b01110001000110001>, ++ LSX_3R_DESC_BASE<"vpackod.h", LoongArchVPACKOD, LSX128HOpnd>; ++ ++def VPACKOD_W : LSX_3R<0b01110001000110010>, ++ LSX_3R_DESC_BASE<"vpackod.w", LoongArchVPACKOD, LSX128WOpnd>; ++ ++def VPACKOD_D : LSX_3R<0b01110001000110011>, ++ LSX_3R_DESC_BASE<"vpackod.d", LoongArchVPACKOD, LSX128DOpnd>; ++ ++ ++def VILVL_B : LSX_3R<0b01110001000110100>, ++ LSX_3R_DESC_BASE<"vilvl.b", LoongArchVILVL, LSX128BOpnd>; ++ ++def VILVL_H : LSX_3R<0b01110001000110101>, ++ LSX_3R_DESC_BASE<"vilvl.h", LoongArchVILVL, LSX128HOpnd>; ++ ++def VILVL_W : LSX_3R<0b01110001000110110>, ++ LSX_3R_DESC_BASE<"vilvl.w", LoongArchVILVL, LSX128WOpnd>; ++ ++def VILVL_D : LSX_3R<0b01110001000110111>, ++ LSX_3R_DESC_BASE<"vilvl.d", LoongArchVILVL, LSX128DOpnd>; ++ ++ ++def VILVH_B : LSX_3R<0b01110001000111000>, ++ LSX_3R_DESC_BASE<"vilvh.b", LoongArchVILVH, LSX128BOpnd>; ++ ++def VILVH_H : LSX_3R<0b01110001000111001>, ++ LSX_3R_DESC_BASE<"vilvh.h", LoongArchVILVH, LSX128HOpnd>; ++ ++def VILVH_W : LSX_3R<0b01110001000111010>, ++ LSX_3R_DESC_BASE<"vilvh.w", LoongArchVILVH, LSX128WOpnd>; ++ ++def VILVH_D : LSX_3R<0b01110001000111011>, ++ LSX_3R_DESC_BASE<"vilvh.d", LoongArchVILVH, LSX128DOpnd>; ++ ++ ++def VPICKEV_B : LSX_3R<0b01110001000111100>, ++ LSX_3R_DESC_BASE<"vpickev.b", LoongArchVPICKEV, LSX128BOpnd>; ++ ++def VPICKEV_H : LSX_3R<0b01110001000111101>, ++ LSX_3R_DESC_BASE<"vpickev.h", LoongArchVPICKEV, LSX128HOpnd>; ++ ++def VPICKEV_W : LSX_3R<0b01110001000111110>, ++ LSX_3R_DESC_BASE<"vpickev.w", LoongArchVPICKEV, LSX128WOpnd>; ++ ++def VPICKEV_D : LSX_3R<0b01110001000111111>, ++ LSX_3R_DESC_BASE<"vpickev.d", LoongArchVPICKEV, LSX128DOpnd>; ++ ++ ++def VPICKOD_B : LSX_3R<0b01110001001000000>, ++ LSX_3R_DESC_BASE<"vpickod.b", LoongArchVPICKOD, LSX128BOpnd>; ++ ++def VPICKOD_H : LSX_3R<0b01110001001000001>, ++ LSX_3R_DESC_BASE<"vpickod.h", LoongArchVPICKOD, LSX128HOpnd>; ++ ++def VPICKOD_W : LSX_3R<0b01110001001000010>, ++ LSX_3R_DESC_BASE<"vpickod.w", LoongArchVPICKOD, LSX128WOpnd>; ++ ++def VPICKOD_D : LSX_3R<0b01110001001000011>, ++ LSX_3R_DESC_BASE<"vpickod.d", LoongArchVPICKOD, LSX128DOpnd>; ++ ++ ++def VREPLVE_B : LSX_3R_1GP<0b01110001001000100>, ++ LSX_3R_VREPLVE_DESC_BASE<"vreplve.b", vsplati8_elt, LSX128BOpnd>; ++ ++def VREPLVE_H : LSX_3R_1GP<0b01110001001000101>, ++ LSX_3R_VREPLVE_DESC_BASE<"vreplve.h", vsplati16_elt, LSX128HOpnd>; ++ ++def VREPLVE_W : LSX_3R_1GP<0b01110001001000110>, ++ LSX_3R_VREPLVE_DESC_BASE<"vreplve.w", vsplati32_elt, LSX128WOpnd>; ++ ++def VREPLVE_D : LSX_3R_1GP<0b01110001001000111>, ++ LSX_3R_VREPLVE_DESC_BASE<"vreplve.d", vsplati64_elt, LSX128DOpnd>; ++ ++ ++def VAND_V : LSX_3R<0b01110001001001100>, ++ LSX_VEC_DESC_BASE<"vand.v", and, LSX128BOpnd>; ++class AND_V_H_PSEUDO_DESC : LSX_VEC_PSEUDO_BASE; ++class AND_V_W_PSEUDO_DESC : LSX_VEC_PSEUDO_BASE; ++class AND_V_D_PSEUDO_DESC : LSX_VEC_PSEUDO_BASE; ++ ++def AND_V_H_PSEUDO : AND_V_H_PSEUDO_DESC, ++ PseudoInstExpansion<(VAND_V LSX128BOpnd:$vd, ++ LSX128BOpnd:$vj, ++ LSX128BOpnd:$vk)>; ++def AND_V_W_PSEUDO : AND_V_W_PSEUDO_DESC, ++ PseudoInstExpansion<(VAND_V LSX128BOpnd:$vd, ++ LSX128BOpnd:$vj, ++ LSX128BOpnd:$vk)>; ++def AND_V_D_PSEUDO : AND_V_D_PSEUDO_DESC, ++ PseudoInstExpansion<(VAND_V LSX128BOpnd:$vd, ++ LSX128BOpnd:$vj, ++ LSX128BOpnd:$vk)>; ++ ++ ++def VOR_V : LSX_3R<0b01110001001001101>, ++ LSX_VEC_DESC_BASE<"vor.v", or, LSX128BOpnd>; ++class OR_V_H_PSEUDO_DESC : LSX_VEC_PSEUDO_BASE; ++class OR_V_W_PSEUDO_DESC : LSX_VEC_PSEUDO_BASE; ++class OR_V_D_PSEUDO_DESC : LSX_VEC_PSEUDO_BASE; ++ ++def OR_V_H_PSEUDO : OR_V_H_PSEUDO_DESC, ++ PseudoInstExpansion<(VOR_V LSX128BOpnd:$vd, ++ LSX128BOpnd:$vj, ++ LSX128BOpnd:$vk)>; ++def OR_V_W_PSEUDO : OR_V_W_PSEUDO_DESC, ++ PseudoInstExpansion<(VOR_V LSX128BOpnd:$vd, ++ LSX128BOpnd:$vj, ++ LSX128BOpnd:$vk)>; ++def OR_V_D_PSEUDO : OR_V_D_PSEUDO_DESC, ++ PseudoInstExpansion<(VOR_V LSX128BOpnd:$vd, ++ LSX128BOpnd:$vj, ++ LSX128BOpnd:$vk)>; ++ ++ ++def VXOR_V : LSX_3R<0b01110001001001110>, ++ LSX_VEC_DESC_BASE<"vxor.v", xor, LSX128BOpnd>; ++class XOR_V_H_PSEUDO_DESC : LSX_VEC_PSEUDO_BASE; ++class XOR_V_W_PSEUDO_DESC : LSX_VEC_PSEUDO_BASE; ++class XOR_V_D_PSEUDO_DESC : LSX_VEC_PSEUDO_BASE; ++ ++def XOR_V_H_PSEUDO : XOR_V_H_PSEUDO_DESC, ++ PseudoInstExpansion<(VXOR_V LSX128BOpnd:$vd, ++ LSX128BOpnd:$vj, ++ LSX128BOpnd:$vk)>; ++def XOR_V_W_PSEUDO : XOR_V_W_PSEUDO_DESC, ++ PseudoInstExpansion<(VXOR_V LSX128BOpnd:$vd, ++ LSX128BOpnd:$vj, ++ LSX128BOpnd:$vk)>; ++def XOR_V_D_PSEUDO : XOR_V_D_PSEUDO_DESC, ++ PseudoInstExpansion<(VXOR_V LSX128BOpnd:$vd, ++ LSX128BOpnd:$vj, ++ LSX128BOpnd:$vk)>; ++ ++ ++def VNOR_V : LSX_3R<0b01110001001001111>, ++ LSX_VEC_DESC_BASE<"vnor.v", LoongArchVNOR, LSX128BOpnd>; ++class NOR_V_H_PSEUDO_DESC : LSX_VEC_PSEUDO_BASE; ++class NOR_V_W_PSEUDO_DESC : LSX_VEC_PSEUDO_BASE; ++class NOR_V_D_PSEUDO_DESC : LSX_VEC_PSEUDO_BASE; ++ ++def NOR_V_H_PSEUDO : NOR_V_H_PSEUDO_DESC, ++ PseudoInstExpansion<(VNOR_V LSX128BOpnd:$vd, ++ LSX128BOpnd:$vj, ++ LSX128BOpnd:$vk)>; ++def NOR_V_W_PSEUDO : NOR_V_W_PSEUDO_DESC, ++ PseudoInstExpansion<(VNOR_V LSX128BOpnd:$vd, ++ LSX128BOpnd:$vj, ++ LSX128BOpnd:$vk)>; ++def NOR_V_D_PSEUDO : NOR_V_D_PSEUDO_DESC, ++ PseudoInstExpansion<(VNOR_V LSX128BOpnd:$vd, ++ LSX128BOpnd:$vj, ++ LSX128BOpnd:$vk)>; ++ ++ ++def VFADD_S : LSX_3R<0b01110001001100001>, IsCommutable, ++ LSX_3RF_DESC_BASE<"vfadd.s", fadd, LSX128WOpnd>; ++ ++def VFADD_D : LSX_3R<0b01110001001100010>, IsCommutable, ++ LSX_3RF_DESC_BASE<"vfadd.d", fadd, LSX128DOpnd>; ++ ++ ++def VFSUB_S : LSX_3R<0b01110001001100101>, ++ LSX_3RF_DESC_BASE<"vfsub.s", fsub, LSX128WOpnd>; ++ ++def VFSUB_D : LSX_3R<0b01110001001100110>, ++ LSX_3RF_DESC_BASE<"vfsub.d", fsub, LSX128DOpnd>; ++ ++ ++def VFMUL_S : LSX_3R<0b01110001001110001>, ++ LSX_3RF_DESC_BASE<"vfmul.s", fmul, LSX128WOpnd>; ++ ++def VFMUL_D : LSX_3R<0b01110001001110010>, ++ LSX_3RF_DESC_BASE<"vfmul.d", fmul, LSX128DOpnd>; ++ ++ ++def VFDIV_S : LSX_3R<0b01110001001110101>, ++ LSX_3RF_DESC_BASE<"vfdiv.s", fdiv, LSX128WOpnd>; ++ ++def VFDIV_D : LSX_3R<0b01110001001110110>, ++ LSX_3RF_DESC_BASE<"vfdiv.d", fdiv, LSX128DOpnd>; ++ ++ ++def VFMAX_S : LSX_3R<0b01110001001111001>, ++ LSX_3RFN_DESC_BASE<"vfmax.s", LSX128WOpnd>; ++ ++def VFMAX_D : LSX_3R<0b01110001001111010>, ++ LSX_3RFN_DESC_BASE<"vfmax.d", LSX128DOpnd>; ++ ++ ++def VFMIN_S : LSX_3R<0b01110001001111101>, ++ LSX_3RFN_DESC_BASE<"vfmin.s", LSX128WOpnd>; ++ ++def VFMIN_D : LSX_3R<0b01110001001111110>, ++ LSX_3RFN_DESC_BASE<"vfmin.d", LSX128DOpnd>; ++ ++ ++def VFMAXA_S : LSX_3R<0b01110001010000001>, ++ LSX_3RFN_DESC_BASE<"vfmaxa.s", LSX128WOpnd>; ++ ++def VFMAXA_D : LSX_3R<0b01110001010000010>, ++ LSX_3RFN_DESC_BASE<"vfmaxa.d", LSX128DOpnd>; ++ ++ ++def VFMINA_S : LSX_3R<0b01110001010000101>, ++ LSX_3RFN_DESC_BASE<"vfmina.s", LSX128WOpnd>; ++ ++def VFMINA_D : LSX_3R<0b01110001010000110>, ++ LSX_3RFN_DESC_BASE<"vfmina.d", LSX128DOpnd>; ++ ++ ++def VSHUF_H : LSX_3R<0b01110001011110101>, ++ LSX_3R_VSHF_DESC_BASE<"vshuf.h", LSX128HOpnd>; ++ ++def VSHUF_W : LSX_3R<0b01110001011110110>, ++ LSX_3R_VSHF_DESC_BASE<"vshuf.w", LSX128WOpnd>; ++ ++def VSHUF_D : LSX_3R<0b01110001011110111>, ++ LSX_3R_VSHF_DESC_BASE<"vshuf.d", LSX128DOpnd>; ++ ++ ++def VSEQI_B : LSX_I5<0b01110010100000000>, ++ LSX_I5_DESC_BASE_Intrinsic<"vseqi.b", int_loongarch_lsx_vseqi_b, simm5_32, immSExt5, LSX128BOpnd>; ++ ++def VSEQI_H : LSX_I5<0b01110010100000001>, ++ LSX_I5_DESC_BASE_Intrinsic<"vseqi.h", int_loongarch_lsx_vseqi_h, simm5_32, immSExt5, LSX128HOpnd>; ++ ++def VSEQI_W : LSX_I5<0b01110010100000010>, ++ LSX_I5_DESC_BASE_Intrinsic<"vseqi.w", int_loongarch_lsx_vseqi_w, simm5_32, immSExt5, LSX128WOpnd>; ++ ++def VSEQI_D : LSX_I5<0b01110010100000011>, ++ LSX_I5_DESC_BASE_Intrinsic<"vseqi.d", int_loongarch_lsx_vseqi_d, simm5_32, immSExt5, LSX128DOpnd>; ++ ++ ++def VSLEI_B : LSX_I5<0b01110010100000100>, ++ LSX_I5_DESC_BASE_Intrinsic<"vslei.b", int_loongarch_lsx_vslei_b, simm5_32, immSExt5, LSX128BOpnd>; ++ ++def VSLEI_H : LSX_I5<0b01110010100000101>, ++ LSX_I5_DESC_BASE_Intrinsic<"vslei.h", int_loongarch_lsx_vslei_h, simm5_32, immSExt5, LSX128HOpnd>; ++ ++def VSLEI_W : LSX_I5<0b01110010100000110>, ++ LSX_I5_DESC_BASE_Intrinsic<"vslei.w", int_loongarch_lsx_vslei_w, simm5_32, immSExt5, LSX128WOpnd>; ++ ++def VSLEI_D : LSX_I5<0b01110010100000111>, ++ LSX_I5_DESC_BASE_Intrinsic<"vslei.d", int_loongarch_lsx_vslei_d, simm5_32, immSExt5, LSX128DOpnd>; ++ ++ ++def VSLEI_BU : LSX_I5_U<0b01110010100001000>, ++ LSX_I5_U_DESC_BASE_Intrinsic<"vslei.bu", int_loongarch_lsx_vslei_bu, uimm5, immZExt5, LSX128BOpnd>; ++ ++def VSLEI_HU : LSX_I5_U<0b01110010100001001>, ++ LSX_I5_U_DESC_BASE_Intrinsic<"vslei.hu", int_loongarch_lsx_vslei_hu, uimm5, immZExt5, LSX128HOpnd>; ++ ++def VSLEI_WU : LSX_I5_U<0b01110010100001010>, ++ LSX_I5_U_DESC_BASE_Intrinsic<"vslei.wu", int_loongarch_lsx_vslei_wu, uimm5, immZExt5, LSX128WOpnd>; ++ ++def VSLEI_DU : LSX_I5_U<0b01110010100001011>, ++ LSX_I5_U_DESC_BASE_Intrinsic<"vslei.du", int_loongarch_lsx_vslei_du, uimm5, immZExt5, LSX128DOpnd>; ++ ++ ++def VSLTI_B : LSX_I5<0b01110010100001100>, ++ LSX_I5_DESC_BASE_Intrinsic<"vslti.b", int_loongarch_lsx_vslti_b, simm5_32, immSExt5, LSX128BOpnd>; ++ ++def VSLTI_H : LSX_I5<0b01110010100001101>, ++ LSX_I5_DESC_BASE_Intrinsic<"vslti.h", int_loongarch_lsx_vslti_h, simm5_32, immSExt5, LSX128HOpnd>; ++ ++def VSLTI_W : LSX_I5<0b01110010100001110>, ++ LSX_I5_DESC_BASE_Intrinsic<"vslti.w", int_loongarch_lsx_vslti_w, simm5_32, immSExt5, LSX128WOpnd>; ++ ++def VSLTI_D : LSX_I5<0b01110010100001111>, ++ LSX_I5_DESC_BASE_Intrinsic<"vslti.d", int_loongarch_lsx_vslti_d, simm5_32, immSExt5, LSX128DOpnd>; ++ ++ ++def VSLTI_BU : LSX_I5_U<0b01110010100010000>, ++ LSX_I5_U_DESC_BASE_Intrinsic<"vslti.bu", int_loongarch_lsx_vslti_bu, uimm5, immZExt5, LSX128BOpnd>; ++ ++def VSLTI_HU : LSX_I5_U<0b01110010100010001>, ++ LSX_I5_U_DESC_BASE_Intrinsic<"vslti.hu", int_loongarch_lsx_vslti_hu, uimm5, immZExt5, LSX128HOpnd>; ++ ++def VSLTI_WU : LSX_I5_U<0b01110010100010010>, ++ LSX_I5_U_DESC_BASE_Intrinsic<"vslti.wu", int_loongarch_lsx_vslti_wu, uimm5, immZExt5, LSX128WOpnd>; ++ ++def VSLTI_DU : LSX_I5_U<0b01110010100010011>, ++ LSX_I5_U_DESC_BASE_Intrinsic<"vslti.du", int_loongarch_lsx_vslti_du, uimm5, immZExt5, LSX128DOpnd>; ++ ++ ++def VADDI_BU : LSX_I5_U<0b01110010100010100>, ++ LSX_I5_U_DESC_BASE<"vaddi.bu", add, vsplati8_uimm5, LSX128BOpnd>; ++ ++def VADDI_HU : LSX_I5_U<0b01110010100010101>, ++ LSX_I5_U_DESC_BASE<"vaddi.hu", add, vsplati16_uimm5, LSX128HOpnd>; ++ ++def VADDI_WU : LSX_I5_U<0b01110010100010110>, ++ LSX_I5_U_DESC_BASE<"vaddi.wu", add, vsplati32_uimm5, LSX128WOpnd>; ++ ++def VADDI_DU : LSX_I5_U<0b01110010100010111>, ++ LSX_I5_U_DESC_BASE<"vaddi.du", add, vsplati64_uimm5, LSX128DOpnd>; ++ ++ ++def VSUBI_BU : LSX_I5_U<0b01110010100011000>, ++ LSX_I5_U_DESC_BASE<"vsubi.bu", sub, vsplati8_uimm5, LSX128BOpnd>; ++ ++def VSUBI_HU : LSX_I5_U<0b01110010100011001>, ++ LSX_I5_U_DESC_BASE<"vsubi.hu", sub, vsplati16_uimm5, LSX128HOpnd>; ++ ++def VSUBI_WU : LSX_I5_U<0b01110010100011010>, ++ LSX_I5_U_DESC_BASE<"vsubi.wu", sub, vsplati32_uimm5, LSX128WOpnd>; ++ ++def VSUBI_DU : LSX_I5_U<0b01110010100011011>, ++ LSX_I5_U_DESC_BASE<"vsubi.du", sub, vsplati64_uimm5, LSX128DOpnd>; ++ ++ ++def VMAXI_B : LSX_I5<0b01110010100100000>, ++ LSX_I5_DESC_BASE_Intrinsic<"vmaxi.b", int_loongarch_lsx_vmaxi_b, simm5_32, immSExt5, LSX128BOpnd>; ++ ++def VMAXI_H : LSX_I5<0b01110010100100001>, ++ LSX_I5_DESC_BASE_Intrinsic<"vmaxi.h", int_loongarch_lsx_vmaxi_h, simm5_32, immSExt5, LSX128HOpnd>; ++ ++def VMAXI_W : LSX_I5<0b01110010100100010>, ++ LSX_I5_DESC_BASE_Intrinsic<"vmaxi.w", int_loongarch_lsx_vmaxi_w, simm5_32, immSExt5, LSX128WOpnd>; ++ ++def VMAXI_D : LSX_I5<0b01110010100100011>, ++ LSX_I5_DESC_BASE_Intrinsic<"vmaxi.d", int_loongarch_lsx_vmaxi_d, simm5_32, immSExt5, LSX128DOpnd>; ++ ++ ++def VMINI_B : LSX_I5<0b01110010100100100>, ++ LSX_I5_DESC_BASE_Intrinsic<"vmini.b", int_loongarch_lsx_vmini_b, simm5_32, immSExt5, LSX128BOpnd>; ++ ++def VMINI_H : LSX_I5<0b01110010100100101>, ++ LSX_I5_DESC_BASE_Intrinsic<"vmini.h", int_loongarch_lsx_vmini_h, simm5_32, immSExt5, LSX128HOpnd>; ++ ++def VMINI_W : LSX_I5<0b01110010100100110>, ++ LSX_I5_DESC_BASE_Intrinsic<"vmini.w", int_loongarch_lsx_vmini_w, simm5_32, immSExt5, LSX128WOpnd>; ++ ++def VMINI_D : LSX_I5<0b01110010100100111>, ++ LSX_I5_DESC_BASE_Intrinsic<"vmini.d", int_loongarch_lsx_vmini_d, simm5_32, immSExt5, LSX128DOpnd>; ++ ++ ++def VMAXI_BU : LSX_I5_U<0b01110010100101000>, ++ LSX_I5_U_DESC_BASE_Intrinsic<"vmaxi.bu", int_loongarch_lsx_vmaxi_bu, uimm5, immZExt5, LSX128BOpnd>; ++ ++def VMAXI_HU : LSX_I5_U<0b01110010100101001>, ++ LSX_I5_U_DESC_BASE_Intrinsic<"vmaxi.hu", int_loongarch_lsx_vmaxi_hu, uimm5, immZExt5, LSX128HOpnd>; ++ ++def VMAXI_WU : LSX_I5_U<0b01110010100101010>, ++ LSX_I5_U_DESC_BASE_Intrinsic<"vmaxi.wu", int_loongarch_lsx_vmaxi_wu, uimm5, immZExt5, LSX128WOpnd>; ++ ++def VMAXI_DU : LSX_I5_U<0b01110010100101011>, ++ LSX_I5_U_DESC_BASE_Intrinsic<"vmaxi.du", int_loongarch_lsx_vmaxi_du, uimm5, immZExt5, LSX128DOpnd>; ++ ++ ++def VMINI_BU : LSX_I5_U<0b01110010100101100>, ++ LSX_I5_U_DESC_BASE<"vmini.bu", umin, vsplati8_uimm5, LSX128BOpnd>; ++ ++def VMINI_HU : LSX_I5_U<0b01110010100101101>, ++ LSX_I5_U_DESC_BASE<"vmini.hu", umin, vsplati16_uimm5, LSX128HOpnd>; ++ ++def VMINI_WU : LSX_I5_U<0b01110010100101110>, ++ LSX_I5_U_DESC_BASE<"vmini.wu", umin, vsplati32_uimm5, LSX128WOpnd>; ++ ++def VMINI_DU : LSX_I5_U<0b01110010100101111>, ++ LSX_I5_U_DESC_BASE<"vmini.du", umin, vsplati64_uimm5, LSX128DOpnd>; ++ ++ ++def VCLO_B : LSX_2R<0b0111001010011100000000>, ++ LSX_2RN_DESC_BASE<"vclo.b", LSX128BOpnd>; ++ ++def VCLO_H : LSX_2R<0b0111001010011100000001>, ++ LSX_2RN_DESC_BASE<"vclo.h", LSX128HOpnd>; ++ ++def VCLO_W : LSX_2R<0b0111001010011100000010>, ++ LSX_2RN_DESC_BASE<"vclo.w", LSX128WOpnd>; ++ ++def VCLO_D : LSX_2R<0b0111001010011100000011>, ++ LSX_2RN_DESC_BASE<"vclo.d", LSX128DOpnd>; ++ ++ ++def VCLZ_B : LSX_2R<0b0111001010011100000100>, ++ LSX_2R_DESC_BASE<"vclz.b", ctlz, LSX128BOpnd>; ++ ++def VCLZ_H : LSX_2R<0b0111001010011100000101>, ++ LSX_2R_DESC_BASE<"vclz.h", ctlz, LSX128HOpnd>; ++ ++def VCLZ_W : LSX_2R<0b0111001010011100000110>, ++ LSX_2R_DESC_BASE<"vclz.w", ctlz, LSX128WOpnd>; ++ ++def VCLZ_D : LSX_2R<0b0111001010011100000111>, ++ LSX_2R_DESC_BASE<"vclz.d", ctlz, LSX128DOpnd>; ++ ++ ++def VPCNT_B : LSX_2R<0b0111001010011100001000>, ++ LSX_2R_DESC_BASE<"vpcnt.b", ctpop, LSX128BOpnd>; ++ ++def VPCNT_H : LSX_2R<0b0111001010011100001001>, ++ LSX_2R_DESC_BASE<"vpcnt.h", ctpop, LSX128HOpnd>; ++ ++def VPCNT_W : LSX_2R<0b0111001010011100001010>, ++ LSX_2R_DESC_BASE<"vpcnt.w", ctpop, LSX128WOpnd>; ++ ++def VPCNT_D : LSX_2R<0b0111001010011100001011>, ++ LSX_2R_DESC_BASE<"vpcnt.d", ctpop, LSX128DOpnd>; ++ ++ ++def VFLOGB_S : LSX_2R<0b0111001010011100110001>, ++ LSX_2RFN_DESC_BASE<"vflogb.s", LSX128WOpnd>; ++ ++def VFLOGB_D : LSX_2R<0b0111001010011100110010>, ++ LSX_2RFN_DESC_BASE<"vflogb.d", LSX128DOpnd>; ++ ++ ++def VFCLASS_S : LSX_2R<0b0111001010011100110101>, ++ LSX_2RFN_DESC_BASE<"vfclass.s", LSX128WOpnd>; ++ ++def VFCLASS_D : LSX_2R<0b0111001010011100110110>, ++ LSX_2RFN_DESC_BASE<"vfclass.d", LSX128DOpnd>; ++ ++ ++def VFSQRT_S : LSX_2R<0b0111001010011100111001>, ++ LSX_2RF_DESC_BASE<"vfsqrt.s", fsqrt, LSX128WOpnd>; ++ ++def VFSQRT_D : LSX_2R<0b0111001010011100111010>, ++ LSX_2RF_DESC_BASE<"vfsqrt.d", fsqrt, LSX128DOpnd>; ++ ++ ++def VFRECIP_S : LSX_2R<0b0111001010011100111101>, ++ LSX_2RFN_DESC_BASE<"vfrecip.s", LSX128WOpnd>; ++ ++def VFRECIP_D : LSX_2R<0b0111001010011100111110>, ++ LSX_2RFN_DESC_BASE<"vfrecip.d", LSX128DOpnd>; ++ ++ ++def VFRSQRT_S : LSX_2R<0b0111001010011101000001>, ++ LSX_2RFN_DESC_BASE<"vfrsqrt.s", LSX128WOpnd>; ++ ++def VFRSQRT_D : LSX_2R<0b0111001010011101000010>, ++ LSX_2RFN_DESC_BASE<"vfrsqrt.d", LSX128DOpnd>; ++ ++ ++def VFRINT_S : LSX_2R<0b0111001010011101001101>, ++ LSX_2RF_DESC_BASE<"vfrint.s", frint, LSX128WOpnd>; ++ ++def VFRINT_D : LSX_2R<0b0111001010011101001110>, ++ LSX_2RF_DESC_BASE<"vfrint.d", frint, LSX128DOpnd>; ++ ++ ++def VFCVTL_S_H : LSX_2R<0b0111001010011101111010>, ++ LSX_2RFN_DESC_BASE_CVT<"vfcvtl.s.h", LSX128WOpnd, LSX128HOpnd>; ++ ++def VFCVTH_S_H : LSX_2R<0b0111001010011101111011>, ++ LSX_2RFN_DESC_BASE_CVT<"vfcvth.s.h", LSX128WOpnd, LSX128HOpnd>; ++ ++ ++def VFCVTL_D_S : LSX_2R<0b0111001010011101111100>, ++ LSX_2RFN_DESC_BASE_CVT<"vfcvtl.d.s", LSX128DOpnd, LSX128WOpnd>; ++ ++def VFCVTH_D_S : LSX_2R<0b0111001010011101111101>, ++ LSX_2RFN_DESC_BASE_CVT<"vfcvth.d.s", LSX128DOpnd, LSX128WOpnd>; ++ ++ ++def VFFINT_S_W : LSX_2R<0b0111001010011110000000>, ++ LSX_2RF_DESC_BASE<"vffint.s.w", sint_to_fp, LSX128WOpnd>; ++ ++def VFFINT_S_WU : LSX_2R<0b0111001010011110000001>, ++ LSX_2RF_DESC_BASE<"vffint.s.wu", uint_to_fp, LSX128WOpnd>; ++ ++ ++def VFFINT_D_L : LSX_2R<0b0111001010011110000010>, ++ LSX_2RF_DESC_BASE<"vffint.d.l", sint_to_fp, LSX128DOpnd>; ++ ++def VFFINT_D_LU : LSX_2R<0b0111001010011110000011>, ++ LSX_2RF_DESC_BASE<"vffint.d.lu", uint_to_fp, LSX128DOpnd>; ++ ++ ++def VFTINT_W_S : LSX_2R<0b0111001010011110001100>, ++ LSX_2RFN_DESC_BASE<"vftint.w.s", LSX128WOpnd>; ++ ++def VFTINT_L_D : LSX_2R<0b0111001010011110001101>, ++ LSX_2RFN_DESC_BASE<"vftint.l.d", LSX128DOpnd>; ++ ++ ++def VFTINT_WU_S : LSX_2R<0b0111001010011110010110>, ++ LSX_2RFN_DESC_BASE<"vftint.wu.s", LSX128WOpnd>; ++ ++def VFTINT_LU_D : LSX_2R<0b0111001010011110010111>, ++ LSX_2RFN_DESC_BASE<"vftint.lu.d", LSX128DOpnd>; ++ ++ ++def VFTINTRZ_WU_S : LSX_2R<0b0111001010011110011100>, ++ LSX_2RF_DESC_BASE<"vftintrz.wu.s", fp_to_uint, LSX128WOpnd>; ++ ++def VFTINTRZ_LU_D : LSX_2R<0b0111001010011110011101>, ++ LSX_2RF_DESC_BASE<"vftintrz.lu.d", fp_to_uint, LSX128DOpnd>; ++ ++ ++def VREPLGR2VR_B : LSX_2R_1GP<0b0111001010011111000000>, ++ LSX_2R_REPL_DESC_BASE<"vreplgr2vr.b", v16i8, vsplati8, LSX128BOpnd, GPR32Opnd>; ++ ++def VREPLGR2VR_H : LSX_2R_1GP<0b0111001010011111000001>, ++ LSX_2R_REPL_DESC_BASE<"vreplgr2vr.h", v8i16, vsplati16, LSX128HOpnd, GPR32Opnd>; ++ ++def VREPLGR2VR_W : LSX_2R_1GP<0b0111001010011111000010>, ++ LSX_2R_REPL_DESC_BASE<"vreplgr2vr.w", v4i32, vsplati32, LSX128WOpnd, GPR32Opnd>; ++ ++def VREPLGR2VR_D : LSX_2R_1GP<0b0111001010011111000011>, ++ LSX_2R_REPL_DESC_BASE<"vreplgr2vr.d", v2i64, vsplati64, LSX128DOpnd, GPR64Opnd>; ++ ++ ++class LSX_2R_FILL_PSEUDO_BASE : ++ LSXPseudo<(outs RCVD:$vd), (ins RCVS:$fs), ++ [(set RCVD:$vd, (OpNode RCVS:$fs))]> { ++ let usesCustomInserter = 1; ++} ++ ++class FILL_FW_PSEUDO_DESC : LSX_2R_FILL_PSEUDO_BASE; ++class FILL_FD_PSEUDO_DESC : LSX_2R_FILL_PSEUDO_BASE; ++ ++def FILL_FW_PSEUDO : FILL_FW_PSEUDO_DESC; ++def FILL_FD_PSEUDO : FILL_FD_PSEUDO_DESC; ++ ++ ++def VSRLRI_B : LSX_I3_U<0b0111001010100100001>, ++ LSX_BIT_3N_DESC_BASE<"vsrlri.b", uimm3, immZExt3, LSX128BOpnd>; ++ ++def VSRLRI_H : LSX_I4_U<0b011100101010010001>, ++ LSX_BIT_4N_DESC_BASE<"vsrlri.h", uimm4, immZExt4, LSX128HOpnd>; ++ ++def VSRLRI_W : LSX_I5_U<0b01110010101001001>, ++ LSX_BIT_5N_DESC_BASE<"vsrlri.w", uimm5, immZExt5, LSX128WOpnd>; ++ ++def VSRLRI_D : LSX_I6_U<0b0111001010100101>, ++ LSX_BIT_6N_DESC_BASE<"vsrlri.d", uimm6, immZExt6, LSX128DOpnd>; ++ ++ ++def VSRARI_B : LSX_I3_U<0b0111001010101000001>, ++ LSX_BIT_3N_DESC_BASE<"vsrari.b", uimm3, immZExt3, LSX128BOpnd>; ++ ++def VSRARI_H : LSX_I4_U<0b011100101010100001>, ++ LSX_BIT_4N_DESC_BASE<"vsrari.h", uimm4, immZExt4, LSX128HOpnd>; ++ ++def VSRARI_W : LSX_I5_U<0b01110010101010001>, ++ LSX_BIT_5N_DESC_BASE<"vsrari.w", uimm5, immZExt5, LSX128WOpnd>; ++ ++def VSRARI_D : LSX_I6_U<0b0111001010101001>, ++ LSX_BIT_6N_DESC_BASE<"vsrari.d", uimm6, immZExt6, LSX128DOpnd>; ++ ++ ++def VINSGR2VR_B : LSX_I4_R_U<0b011100101110101110>, ++ LSX_INSERT_U4_DESC_BASE<"vinsgr2vr.b", vinsert_v16i8, uimm4, immZExt4Ptr, LSX128BOpnd, GPR32Opnd>; ++ ++def VINSGR2VR_H : LSX_I3_R_U<0b0111001011101011110>, ++ LSX_INSERT_U3_DESC_BASE<"vinsgr2vr.h", vinsert_v8i16, uimm3, immZExt3Ptr, LSX128HOpnd, GPR32Opnd>; ++ ++def VINSGR2VR_W : LSX_I2_R_U<0b01110010111010111110>, ++ LSX_INSERT_U2_DESC_BASE<"vinsgr2vr.w", vinsert_v4i32, uimm2, immZExt2Ptr, LSX128WOpnd, GPR32Opnd>; ++ ++def VINSGR2VR_D : LSX_I1_R_U<0b011100101110101111110>, ++ LSX_INSERT_U1_DESC_BASE<"vinsgr2vr.d", vinsert_v2i64, uimm1, immZExt1Ptr, LSX128DOpnd, GPR64Opnd>; ++ ++ ++def VPICKVE2GR_B : LSX_ELM_COPY_B<0b011100101110111110>, ++ LSX_PICK_U4_DESC_BASE<"vpickve2gr.b", vextract_sext_i8, v16i8, uimm4_ptr, immZExt4Ptr, GPR32Opnd, LSX128BOpnd>; ++ ++def VPICKVE2GR_H : LSX_ELM_COPY_H<0b0111001011101111110>, ++ LSX_PICK_U3_DESC_BASE<"vpickve2gr.h", vextract_sext_i16, v8i16, uimm3_ptr, immZExt3Ptr, GPR32Opnd, LSX128HOpnd>; ++ ++def VPICKVE2GR_W : LSX_ELM_COPY_W<0b01110010111011111110>, ++ LSX_PICK_U2_DESC_BASE<"vpickve2gr.w", vextract_sext_i32, v4i32, uimm2_ptr, immZExt2Ptr, GPR32Opnd, LSX128WOpnd>; ++ ++def VPICKVE2GR_D : LSX_ELM_COPY_D<0b011100101110111111110>, ++ LSX_PICK_U1_DESC_BASE<"vpickve2gr.d", vextract_sext_i64, v2i64, uimm1_ptr, immZExt1Ptr, GPR64Opnd, LSX128DOpnd>; ++ ++ ++def VPICKVE2GR_BU : LSX_ELM_COPY_B<0b011100101111001110>, ++ LSX_PICK_U4_DESC_BASE<"vpickve2gr.bu", vextract_zext_i8, v16i8, uimm4_ptr, immZExt4Ptr, GPR32Opnd, LSX128BOpnd>; ++ ++def VPICKVE2GR_HU : LSX_ELM_COPY_H<0b0111001011110011110>, ++ LSX_PICK_U3_DESC_BASE<"vpickve2gr.hu", vextract_zext_i16, v8i16, uimm3_ptr, immZExt3Ptr, GPR32Opnd, LSX128HOpnd>; ++ ++def VPICKVE2GR_WU : LSX_ELM_COPY_W<0b01110010111100111110>, ++ LSX_PICK_U2_DESC_BASE<"vpickve2gr.wu", vextract_zext_i32, v4i32, uimm2_ptr, immZExt2Ptr, GPR32Opnd, LSX128WOpnd>; ++ ++def VPICKVE2GR_DU : LSX_ELM_COPY_D<0b011100101111001111110>, ++ LSX_PICK_U1_DESC_BASE<"vpickve2gr.du", int_loongarch_lsx_vpickve2gr_du, v2i64, uimm1, immZExt1, GPR64Opnd, LSX128DOpnd>; ++ ++ ++def : LSXPat<(vextract_zext_i64 (v2i64 LSX128D:$vj), immZExt1Ptr:$idx), ++ (VPICKVE2GR_D LSX128D:$vj, immZExt1:$idx)>; ++def : LSXPat<(vextract_zext_i64 (v2f64 LSX128D:$vj), immZExt1Ptr:$idx), ++ (VPICKVE2GR_D LSX128D:$vj, immZExt1:$idx)>; ++ ++ ++def VREPLVEI_B : LSX_I4_U<0b011100101111011110>, ++ LSX_ELM_U4_VREPLVE_DESC_BASE<"vreplvei.b", vsplati8_uimm4, LSX128BOpnd>; ++ ++def VREPLVEI_H : LSX_I3_U<0b0111001011110111110>, ++ LSX_ELM_U3_VREPLVE_DESC_BASE<"vreplvei.h", vsplati16_uimm3, LSX128HOpnd>; ++ ++def VREPLVEI_W : LSX_I2_U<0b01110010111101111110>, ++ LSX_ELM_U2_VREPLVE_DESC_BASE<"vreplvei.w", vsplati32_uimm2, LSX128WOpnd>; ++ ++def VREPLVEI_D : LSX_I1_U<0b011100101111011111110>, ++ LSX_ELM_U1_VREPLVE_DESC_BASE<"vreplvei.d", vsplati64_uimm1, LSX128DOpnd>; ++ ++ ++def VSAT_B : LSX_I3_U<0b0111001100100100001>, ++ LSX_BIT_3N_DESC_BASE<"vsat.b", uimm3, immZExt3, LSX128BOpnd>; ++ ++def VSAT_H : LSX_I4_U<0b011100110010010001>, ++ LSX_BIT_4N_DESC_BASE<"vsat.h", uimm4, immZExt4, LSX128HOpnd>; ++ ++def VSAT_W : LSX_I5_U<0b01110011001001001>, ++ LSX_BIT_5N_DESC_BASE<"vsat.w", uimm5, immZExt5, LSX128WOpnd>; ++ ++def VSAT_D : LSX_I6_U<0b0111001100100101>, ++ LSX_BIT_6N_DESC_BASE<"vsat.d", uimm6, immZExt6, LSX128DOpnd>; ++ ++ ++def VSAT_BU : LSX_I3_U<0b0111001100101000001>, ++ LSX_BIT_3N_DESC_BASE<"vsat.bu", uimm3, immZExt3, LSX128BOpnd>; ++ ++def VSAT_HU : LSX_I4_U<0b011100110010100001>, ++ LSX_BIT_4N_DESC_BASE<"vsat.hu", uimm4, immZExt4, LSX128HOpnd>; ++ ++def VSAT_WU : LSX_I5_U<0b01110011001010001>, ++ LSX_BIT_5N_DESC_BASE<"vsat.wu", uimm5, immZExt5, LSX128WOpnd>; ++ ++def VSAT_DU : LSX_I6_U<0b0111001100101001>, ++ LSX_BIT_6N_DESC_BASE<"vsat.du", uimm6, immZExt6, LSX128DOpnd>; ++ ++ ++def VSLLI_B : LSX_I3_U<0b0111001100101100001>, ++ LSX_BIT_U3_VREPLVE_DESC_BASE<"vslli.b", shl, vsplati8_uimm3, LSX128BOpnd>; ++ ++def VSLLI_H : LSX_I4_U<0b011100110010110001>, ++ LSX_BIT_U4_VREPLVE_DESC_BASE<"vslli.h", shl, vsplati16_uimm4, LSX128HOpnd>; ++ ++def VSLLI_W : LSX_I5_U<0b01110011001011001>, ++ LSX_BIT_U5_VREPLVE_DESC_BASE<"vslli.w", shl, vsplati32_uimm5, LSX128WOpnd>; ++ ++def VSLLI_D : LSX_I6_U<0b0111001100101101>, ++ LSX_BIT_U6_VREPLVE_DESC_BASE<"vslli.d", shl, vsplati64_uimm6, LSX128DOpnd>; ++ ++ ++def VSRLI_B : LSX_I3_U<0b0111001100110000001>, ++ LSX_BIT_U3_VREPLVE_DESC_BASE<"vsrli.b", srl, vsplati8_uimm3, LSX128BOpnd>; ++ ++def VSRLI_H : LSX_I4_U<0b011100110011000001>, ++ LSX_BIT_U4_VREPLVE_DESC_BASE<"vsrli.h", srl, vsplati16_uimm4, LSX128HOpnd>; ++ ++def VSRLI_W : LSX_I5_U<0b01110011001100001>, ++ LSX_BIT_U5_VREPLVE_DESC_BASE<"vsrli.w", srl, vsplati32_uimm5, LSX128WOpnd>; ++ ++def VSRLI_D : LSX_I6_U<0b0111001100110001>, ++ LSX_BIT_U6_VREPLVE_DESC_BASE<"vsrli.d", srl, vsplati64_uimm6, LSX128DOpnd>; ++ ++ ++def VSRAI_B : LSX_I3_U<0b0111001100110100001>, ++ LSX_BIT_U3_VREPLVE_DESC_BASE_Intrinsic<"vsrai.b", int_loongarch_lsx_vsrai_b, LSX128BOpnd>; ++ ++def VSRAI_H : LSX_I4_U<0b011100110011010001>, ++ LSX_BIT_U4_VREPLVE_DESC_BASE_Intrinsic<"vsrai.h", int_loongarch_lsx_vsrai_h, LSX128HOpnd>; ++ ++def VSRAI_W : LSX_I5_U<0b01110011001101001>, ++ LSX_BIT_U5_VREPLVE_DESC_BASE_Intrinsic<"vsrai.w", int_loongarch_lsx_vsrai_w, LSX128WOpnd>; ++ ++def VSRAI_D : LSX_I6_U<0b0111001100110101>, ++ LSX_BIT_U6_VREPLVE_DESC_BASE_Intrinsic<"vsrai.d", int_loongarch_lsx_vsrai_d, LSX128DOpnd>; ++ ++ ++def VSHUF4I_B : LSX_I8_U<0b01110011100100>, ++ LSX_I8_SHF_DESC_BASE<"vshuf4i.b", LSX128BOpnd>; ++ ++def VSHUF4I_H : LSX_I8_U<0b01110011100101>, ++ LSX_I8_SHF_DESC_BASE<"vshuf4i.h", LSX128HOpnd>; ++ ++def VSHUF4I_W : LSX_I8_U<0b01110011100110>, ++ LSX_I8_SHF_DESC_BASE<"vshuf4i.w", LSX128WOpnd>; ++ ++def VSHUF4I_D : LSX_I8_U<0b01110011100111>, ++ LSX_I8_SHUF_DESC_BASE_D<"vshuf4i.d", int_loongarch_lsx_vshuf4i_d, LSX128DOpnd>; ++ ++ ++def VROTR_B : LSX_3R<0b01110000111011100>, ++ LSX_3R_DESC_BASE<"vrotr.b", LoongArchVROR, LSX128BOpnd>; ++ ++def VROTR_H : LSX_3R<0b01110000111011101>, ++ LSX_3R_DESC_BASE<"vrotr.h", LoongArchVROR, LSX128HOpnd>; ++ ++def VROTR_W : LSX_3R<0b01110000111011110>, ++ LSX_3R_DESC_BASE<"vrotr.w", LoongArchVROR, LSX128WOpnd>; ++ ++def VROTR_D : LSX_3R<0b01110000111011111>, ++ LSX_3R_DESC_BASE<"vrotr.d", LoongArchVROR, LSX128DOpnd>; ++ ++ ++def VMSKLTZ_B : LSX_2R<0b0111001010011100010000>, ++ LSX_2RN_DESC_BASE<"vmskltz.b", LSX128BOpnd>; ++ ++def VMSKLTZ_H : LSX_2R<0b0111001010011100010001>, ++ LSX_2RN_DESC_BASE<"vmskltz.h", LSX128HOpnd>; ++ ++def VMSKLTZ_W : LSX_2R<0b0111001010011100010010>, ++ LSX_2RN_DESC_BASE<"vmskltz.w", LSX128WOpnd>; ++ ++def VMSKLTZ_D : LSX_2R<0b0111001010011100010011>, ++ LSX_2RN_DESC_BASE<"vmskltz.d", LSX128DOpnd>; ++ ++ ++def VROTRI_B : LSX_I3_U<0b0111001010100000001>, ++ LSX2_RORI_U3_DESC_BASE<"vrotri.b", uimm3, immZExt3, LSX128BOpnd>; ++ ++def VROTRI_H : LSX_I4_U<0b011100101010000001>, ++ LSX2_RORI_U4_DESC_BASE<"vrotri.h", uimm4, immZExt4, LSX128HOpnd>; ++ ++def VROTRI_W : LSX_I5_U<0b01110010101000001>, ++ LSX2_RORI_U5_DESC_BASE<"vrotri.w", uimm5, immZExt5, LSX128WOpnd>; ++ ++def VROTRI_D : LSX_I6_U<0b0111001010100001>, ++ LSX2_RORI_U6_DESC_BASE<"vrotri.d", uimm6, immZExt6, LSX128DOpnd>; ++ ++ ++def VSRLNI_B_H : LSX_I4_U<0b011100110100000001>, ++ LSX_BIND_U4N_DESC_BASE<"vsrlni.b.h", uimm4, immZExt4, LSX128BOpnd>; ++ ++def VSRLNI_H_W : LSX_I5_U<0b01110011010000001>, ++ LSX_BIND_U5N_DESC_BASE<"vsrlni.h.w", uimm5, immZExt5, LSX128HOpnd>; ++ ++def VSRLNI_W_D : LSX_I6_U<0b0111001101000001>, ++ LSX_BIND_U6N_DESC_BASE<"vsrlni.w.d", uimm6, immZExt6, LSX128WOpnd>; ++ ++def VSRLNI_D_Q : LSX_I7_U<0b011100110100001>, ++ LSX_BIND_U7N_DESC_BASE<"vsrlni.d.q", LSX128DOpnd>; ++ ++ ++def VSRLRNI_B_H : LSX_I4_U<0b011100110100010001>, ++ LSX_BIND_U4N_DESC_BASE<"vsrlrni.b.h", uimm4, immZExt4, LSX128BOpnd>; ++ ++def VSRLRNI_H_W : LSX_I5_U<0b01110011010001001>, ++ LSX_BIND_U5N_DESC_BASE<"vsrlrni.h.w", uimm5, immZExt5, LSX128HOpnd>; ++ ++def VSRLRNI_W_D : LSX_I6_U<0b0111001101000101>, ++ LSX_BIND_U6N_DESC_BASE<"vsrlrni.w.d", uimm6, immZExt6, LSX128WOpnd>; ++ ++def VSRLRNI_D_Q : LSX_I7_U<0b011100110100011>, ++ LSX_BIND_U7N_DESC_BASE<"vsrlrni.d.q", LSX128DOpnd>; ++ ++ ++def VSSRLNI_B_H : LSX_I4_U<0b011100110100100001>, ++ LSX_BIND_U4N_DESC_BASE<"vssrlni.b.h", uimm4, immZExt4, LSX128BOpnd>; ++ ++def VSSRLNI_H_W : LSX_I5_U<0b01110011010010001>, ++ LSX_BIND_U5N_DESC_BASE<"vssrlni.h.w", uimm5, immZExt5, LSX128HOpnd>; ++ ++def VSSRLNI_W_D : LSX_I6_U<0b0111001101001001>, ++ LSX_BIND_U6N_DESC_BASE<"vssrlni.w.d", uimm6, immZExt6, LSX128WOpnd>; ++ ++def VSSRLNI_D_Q : LSX_I7_U<0b011100110100101>, ++ LSX_BIND_U7N_DESC_BASE<"vssrlni.d.q", LSX128DOpnd>; ++ ++ ++def VSSRLNI_BU_H : LSX_I4_U<0b011100110100110001>, ++ LSX_BIND_U4N_DESC_BASE<"vssrlni.bu.h", uimm4, immZExt4, LSX128BOpnd> ; ++ ++def VSSRLNI_HU_W : LSX_I5_U<0b01110011010011001>, ++ LSX_BIND_U5N_DESC_BASE<"vssrlni.hu.w", uimm5, immZExt5, LSX128HOpnd>; ++ ++def VSSRLNI_WU_D : LSX_I6_U<0b0111001101001101>, ++ LSX_BIND_U6N_DESC_BASE<"vssrlni.wu.d", uimm6, immZExt6, LSX128WOpnd>; ++ ++def VSSRLNI_DU_Q : LSX_I7_U<0b011100110100111>, ++ LSX_BIND_U7N_DESC_BASE<"vssrlni.du.q", LSX128DOpnd>; ++ ++ ++def VSSRLRNI_BU_H : LSX_I4_U<0b011100110101010001>, ++ LSX_BIND_U4N_DESC_BASE<"vssrlrni.bu.h", uimm4, immZExt4, LSX128BOpnd>; ++ ++def VSSRLRNI_HU_W : LSX_I5_U<0b01110011010101001>, ++ LSX_BIND_U5N_DESC_BASE<"vssrlrni.hu.w", uimm5, immZExt5, LSX128HOpnd>; ++ ++def VSSRLRNI_WU_D : LSX_I6_U<0b0111001101010101>, ++ LSX_BIND_U6N_DESC_BASE<"vssrlrni.wu.d", uimm6, immZExt6, LSX128WOpnd>; ++ ++def VSSRLRNI_DU_Q : LSX_I7_U<0b011100110101011>, ++ LSX_BIND_U7N_DESC_BASE<"vssrlrni.du.q", LSX128DOpnd>; ++ ++ ++def VSRARNI_B_H : LSX_I4_U<0b011100110101110001>, ++ LSX_BIND_U4N_DESC_BASE<"vsrarni.b.h", uimm4, immZExt4, LSX128BOpnd>; ++ ++def VSRARNI_H_W : LSX_I5_U<0b01110011010111001>, ++ LSX_BIND_U5N_DESC_BASE<"vsrarni.h.w", uimm5, immZExt5, LSX128HOpnd>; ++ ++def VSRARNI_W_D : LSX_I6_U<0b0111001101011101>, ++ LSX_BIND_U6N_DESC_BASE<"vsrarni.w.d", uimm6, immZExt6, LSX128WOpnd>; ++ ++def VSRARNI_D_Q : LSX_I7_U<0b011100110101111>, ++ LSX_BIND_U7N_DESC_BASE<"vsrarni.d.q", LSX128DOpnd>; ++ ++ ++def VSSRANI_B_H : LSX_I4_U<0b011100110110000001>, ++ LSX_BIND_U4N_DESC_BASE<"vssrani.b.h", uimm4, immZExt4, LSX128BOpnd>; ++ ++def VSSRANI_H_W : LSX_I5_U<0b01110011011000001>, ++ LSX_BIND_U5N_DESC_BASE<"vssrani.h.w", uimm5, immZExt5, LSX128HOpnd>; ++ ++def VSSRANI_W_D : LSX_I6_U<0b0111001101100001>, ++ LSX_BIND_U6N_DESC_BASE<"vssrani.w.d", uimm6, immZExt6, LSX128WOpnd>; ++ ++def VSSRANI_D_Q : LSX_I7_U<0b011100110110001>, ++ LSX_BIND_U7N_DESC_BASE<"vssrani.d.q", LSX128DOpnd>; ++ ++ ++def VSSRANI_BU_H : LSX_I4_U<0b011100110110010001>, ++ LSX_BIND_U4N_DESC_BASE<"vssrani.bu.h", uimm4, immZExt4, LSX128BOpnd>; ++ ++def VSSRANI_HU_W : LSX_I5_U<0b01110011011001001>, ++ LSX_BIND_U5N_DESC_BASE<"vssrani.hu.w", uimm5, immZExt5, LSX128HOpnd>; ++ ++def VSSRANI_WU_D : LSX_I6_U<0b0111001101100101>, ++ LSX_BIND_U6N_DESC_BASE<"vssrani.wu.d", uimm6, immZExt6, LSX128WOpnd>; ++ ++def VSSRANI_DU_Q : LSX_I7_U<0b011100110110011>, ++ LSX_BIND_U7N_DESC_BASE<"vssrani.du.q", LSX128DOpnd>; ++ ++ ++def VSSRARNI_B_H : LSX_I4_U<0b011100110110100001>, ++ LSX_BIND_U4N_DESC_BASE<"vssrarni.b.h", uimm4, immZExt4, LSX128BOpnd>; ++ ++def VSSRARNI_H_W : LSX_I5_U<0b01110011011010001>, ++ LSX_BIND_U5N_DESC_BASE<"vssrarni.h.w", uimm5, immZExt5, LSX128HOpnd>; ++ ++def VSSRARNI_W_D : LSX_I6_U<0b0111001101101001>, ++ LSX_BIND_U6N_DESC_BASE<"vssrarni.w.d", uimm6, immZExt6, LSX128WOpnd>; ++ ++def VSSRARNI_D_Q : LSX_I7_U<0b011100110110101>, ++ LSX_BIND_U7N_DESC_BASE<"vssrarni.d.q", LSX128DOpnd>; ++ ++ ++def VSSRARNI_BU_H : LSX_I4_U<0b011100110110110001>, ++ LSX_BIND_U4N_DESC_BASE<"vssrarni.bu.h", uimm4, immZExt4, LSX128BOpnd>; ++ ++def VSSRARNI_HU_W : LSX_I5_U<0b01110011011011001>, ++ LSX_BIND_U5N_DESC_BASE<"vssrarni.hu.w", uimm5, immZExt5, LSX128HOpnd>; ++ ++def VSSRARNI_WU_D : LSX_I6_U<0b0111001101101101>, ++ LSX_BIND_U6N_DESC_BASE<"vssrarni.wu.d", uimm6, immZExt6, LSX128WOpnd>; ++ ++def VSSRARNI_DU_Q : LSX_I7_U<0b011100110110111>, ++ LSX_BIND_U7N_DESC_BASE<"vssrarni.du.q", LSX128DOpnd>; ++ ++ ++ ++def VLD : LSX_I12_S<0b0010110000>, ++ LD_DESC_BASE<"vld", load, v16i8, LSX128BOpnd, mem>; ++ ++def VST : LSX_I12_S<0b0010110001>, ++ ST_DESC_BASE<"vst", store, v16i8, LSX128BOpnd, mem_simm12>; ++ ++ ++def VSETEQZ_V : LSX_SET<0b0111001010011100100110>, ++ LSX_SET_DESC_BASE<"vseteqz.v", LSX128BOpnd>; ++ ++def VSETNEZ_V : LSX_SET<0b0111001010011100100111>, ++ LSX_SET_DESC_BASE<"vsetnez.v", LSX128BOpnd>; ++ ++ ++def VSETANYEQZ_B : LSX_SET<0b0111001010011100101000>, ++ LSX_SET_DESC_BASE<"vsetanyeqz.b", LSX128BOpnd>; ++ ++def VSETANYEQZ_H : LSX_SET<0b0111001010011100101001>, ++ LSX_SET_DESC_BASE<"vsetanyeqz.h", LSX128HOpnd>; ++ ++def VSETANYEQZ_W : LSX_SET<0b0111001010011100101010>, ++ LSX_SET_DESC_BASE<"vsetanyeqz.w", LSX128WOpnd>; ++ ++def VSETANYEQZ_D : LSX_SET<0b0111001010011100101011>, ++ LSX_SET_DESC_BASE<"vsetanyeqz.d", LSX128DOpnd>; ++ ++ ++def VSETALLNEZ_B : LSX_SET<0b0111001010011100101100>, ++ LSX_SET_DESC_BASE<"vsetallnez.b", LSX128BOpnd>; ++ ++def VSETALLNEZ_H : LSX_SET<0b0111001010011100101101>, ++ LSX_SET_DESC_BASE<"vsetallnez.h", LSX128HOpnd>; ++ ++def VSETALLNEZ_W : LSX_SET<0b0111001010011100101110>, ++ LSX_SET_DESC_BASE<"vsetallnez.w", LSX128WOpnd>; ++ ++def VSETALLNEZ_D : LSX_SET<0b0111001010011100101111>, ++ LSX_SET_DESC_BASE<"vsetallnez.d", LSX128DOpnd>; ++ ++class LSX_CBRANCH_PSEUDO_DESC_BASE : ++ LoongArchPseudo<(outs GPR32Opnd:$rd), ++ (ins RCVS:$vj), ++ [(set GPR32Opnd:$rd, (OpNode (TyNode RCVS:$vj)))]> { ++ bit usesCustomInserter = 1; ++} ++ ++def SNZ_B_PSEUDO : LSX_CBRANCH_PSEUDO_DESC_BASE; ++def SNZ_H_PSEUDO : LSX_CBRANCH_PSEUDO_DESC_BASE; ++def SNZ_W_PSEUDO : LSX_CBRANCH_PSEUDO_DESC_BASE; ++def SNZ_D_PSEUDO : LSX_CBRANCH_PSEUDO_DESC_BASE; ++def SNZ_V_PSEUDO : LSX_CBRANCH_PSEUDO_DESC_BASE; ++ ++def SZ_B_PSEUDO : LSX_CBRANCH_PSEUDO_DESC_BASE; ++def SZ_H_PSEUDO : LSX_CBRANCH_PSEUDO_DESC_BASE; ++def SZ_W_PSEUDO : LSX_CBRANCH_PSEUDO_DESC_BASE; ++def SZ_D_PSEUDO : LSX_CBRANCH_PSEUDO_DESC_BASE; ++def SZ_V_PSEUDO : LSX_CBRANCH_PSEUDO_DESC_BASE; ++ ++ ++def VFMADD_S : LSX_VR4MUL<0b000010010001>, ++ LSX_4RF<"vfmadd.s", int_loongarch_lsx_vfmadd_s, LSX128WOpnd>; ++ ++def VFMADD_D : LSX_VR4MUL<0b000010010010>, ++ LSX_4RF<"vfmadd.d", int_loongarch_lsx_vfmadd_d, LSX128DOpnd>; ++ ++def VFMSUB_S : LSX_VR4MUL<0b000010010101>, ++ LSX_4RF<"vfmsub.s", int_loongarch_lsx_vfmsub_s, LSX128WOpnd>; ++ ++def VFMSUB_D : LSX_VR4MUL<0b000010010110>, ++ LSX_4RF<"vfmsub.d", int_loongarch_lsx_vfmsub_d, LSX128DOpnd>; ++ ++def VFNMADD_S : LSX_VR4MUL<0b000010011001>, ++ LSX_4RF<"vfnmadd.s", int_loongarch_lsx_vfnmadd_s, LSX128WOpnd>; ++ ++def VFNMADD_D : LSX_VR4MUL<0b000010011010>, ++ LSX_4RF<"vfnmadd.d", int_loongarch_lsx_vfnmadd_d, LSX128DOpnd>; ++ ++def VFNMSUB_S : LSX_VR4MUL<0b000010011101>, ++ LSX_4RF<"vfnmsub.s", int_loongarch_lsx_vfnmsub_s, LSX128WOpnd>; ++ ++def VFNMSUB_D : LSX_VR4MUL<0b000010011110>, ++ LSX_4RF<"vfnmsub.d", int_loongarch_lsx_vfnmsub_d, LSX128DOpnd>; ++ ++ ++// vfmadd: vj * vk + va ++def : LSXPat<(fma v2f64:$vj, v2f64:$vk, v2f64:$va), ++ (VFMADD_D $vj, $vk, $va)>; ++ ++def : LSXPat<(fma v4f32:$vj, v4f32:$vk, v4f32:$va), ++ (VFMADD_S $vj, $vk, $va)>; ++ ++ ++// vfmsub: vj * vk - va ++def : LSXPat<(fma v2f64:$vj, v2f64:$vk, (fneg v2f64:$va)), ++ (VFMSUB_D v2f64:$vj, v2f64:$vk, v2f64:$va)>; ++ ++def : LSXPat<(fma v4f32:$vj, v4f32:$vk, (fneg v4f32:$va)), ++ (VFMSUB_S v4f32:$vj, v4f32:$vk, v4f32:$va)>; ++ ++ ++// vfnmadd: -(vj * vk + va) ++def : LSXPat<(fma (fneg v2f64:$vj), v2f64:$vk, (fneg v2f64:$va)), ++ (VFNMADD_D v2f64:$vj, v2f64:$vk, v2f64:$va)>; ++ ++def : LSXPat<(fma (fneg v4f32:$vj), v4f32:$vk, (fneg v4f32:$va)), ++ (VFNMADD_S v4f32:$vj, v4f32:$vk, v4f32:$va)>; ++ ++// vfnmsub: -(vj * vk - va) ++def : LSXPat<(fma (fneg v2f64:$vj), v2f64:$vk, v2f64:$va), ++ (VFNMSUB_D v2f64:$vj, v2f64:$vk, v2f64:$va)>; ++ ++def : LSXPat<(fma (fneg v4f32:$vj), v4f32:$vk, v4f32:$va), ++ (VFNMSUB_S v4f32:$vj, v4f32:$vk, v4f32:$va)>; ++ ++ ++def VFCMP_CAF_S : LSX_VFCMP<0b000011000101>, ++ LSX_VFCMP_Reg3<"vfcmp.caf.s", LSX128WOpnd, LSX128WOpnd, LSX128WOpnd, int_loongarch_lsx_vfcmp_caf_s>{ ++ bits<5> cond=0x0; ++ } ++ ++def VFCMP_CAF_D : LSX_VFCMP<0b000011000110>, ++ LSX_VFCMP_Reg3<"vfcmp.caf.d", LSX128DOpnd, LSX128DOpnd, LSX128DOpnd, int_loongarch_lsx_vfcmp_caf_d>{ ++ bits<5> cond=0x0; ++ } ++ ++ ++def VFCMP_COR_S : LSX_VFCMP<0b000011000101>, ++ LSX_VFCMP_Reg3<"vfcmp.cor.s", LSX128WOpnd, LSX128WOpnd, LSX128WOpnd, vfsetord_v4f32>{ ++ bits<5> cond=0x14; ++ } ++ ++def VFCMP_COR_D : LSX_VFCMP<0b000011000110>, ++ LSX_VFCMP_Reg3<"vfcmp.cor.d", LSX128DOpnd, LSX128DOpnd, LSX128DOpnd, vfsetord_v2f64>{ ++ bits<5> cond=0x14; ++ } ++ ++ ++def VFCMP_CUN_S : LSX_VFCMP<0b000011000101>, ++ LSX_VFCMP_Reg3<"vfcmp.cun.s", LSX128WOpnd, LSX128WOpnd, LSX128WOpnd, vfsetun_v4f32>{ ++ bits<5> cond=0x8; ++ } ++ ++def VFCMP_CUN_D : LSX_VFCMP<0b000011000110>, ++ LSX_VFCMP_Reg3<"vfcmp.cun.d", LSX128DOpnd, LSX128DOpnd, LSX128DOpnd, vfsetun_v2f64>{ ++ bits<5> cond=0x8; ++ } ++ ++ ++def VFCMP_CUNE_S : LSX_VFCMP<0b000011000101>, ++ LSX_VFCMP_Reg3<"vfcmp.cune.s", LSX128WOpnd, LSX128WOpnd, LSX128WOpnd, vfsetune_v4f32>{ ++ bits<5> cond=0x18; ++ } ++ ++def VFCMP_CUNE_D : LSX_VFCMP<0b000011000110>, ++ LSX_VFCMP_Reg3<"vfcmp.cune.d", LSX128DOpnd, LSX128DOpnd, LSX128DOpnd, vfsetune_v2f64>{ ++ bits<5> cond=0x18; ++ } ++ ++ ++def VFCMP_CUEQ_S : LSX_VFCMP<0b000011000101>, ++ LSX_VFCMP_Reg3<"vfcmp.cueq.s", LSX128WOpnd, LSX128WOpnd, LSX128WOpnd, vfsetueq_v4f32>{ ++ bits<5> cond=0xc; ++ } ++ ++def VFCMP_CUEQ_D : LSX_VFCMP<0b000011000110>, ++ LSX_VFCMP_Reg3<"vfcmp.cueq.d", LSX128DOpnd, LSX128DOpnd, LSX128DOpnd, vfsetueq_v2f64>{ ++ bits<5> cond=0xc; ++ } ++ ++def VFCMP_CEQ_S : LSX_VFCMP<0b000011000101>, ++ LSX_VFCMP_Reg3<"vfcmp.ceq.s", LSX128WOpnd, LSX128WOpnd, LSX128WOpnd, vfsetoeq_v4f32>{ ++ bits<5> cond=0x4; ++ } ++ ++def VFCMP_CEQ_D : LSX_VFCMP<0b000011000110>, ++ LSX_VFCMP_Reg3<"vfcmp.ceq.d", LSX128DOpnd, LSX128DOpnd, LSX128DOpnd, vfsetoeq_v2f64>{ ++ bits<5> cond=0x4; ++ } ++ ++ ++def VFCMP_CNE_S : LSX_VFCMP<0b000011000101>, ++ LSX_VFCMP_Reg3<"vfcmp.cne.s", LSX128WOpnd, LSX128WOpnd, LSX128WOpnd, vfsetone_v4f32>{ ++ bits<5> cond=0x10; ++ } ++ ++def VFCMP_CNE_D : LSX_VFCMP<0b000011000110>, ++ LSX_VFCMP_Reg3<"vfcmp.cne.d", LSX128DOpnd, LSX128DOpnd, LSX128DOpnd, vfsetone_v2f64>{ ++ bits<5> cond=0x10; ++ } ++ ++ ++def VFCMP_CLT_S : LSX_VFCMP<0b000011000101>, ++ LSX_VFCMP_Reg3<"vfcmp.clt.s", LSX128WOpnd, LSX128WOpnd, LSX128WOpnd, vfsetolt_v4f32>{ ++ bits<5> cond=0x2; ++ } ++ ++def VFCMP_CLT_D : LSX_VFCMP<0b000011000110>, ++ LSX_VFCMP_Reg3<"vfcmp.clt.d", LSX128DOpnd, LSX128DOpnd, LSX128DOpnd, vfsetolt_v2f64>{ ++ bits<5> cond=0x2; ++ } ++ ++ ++def VFCMP_CULT_S : LSX_VFCMP<0b000011000101>, ++ LSX_VFCMP_Reg3<"vfcmp.cult.s", LSX128WOpnd, LSX128WOpnd, LSX128WOpnd, vfsetult_v4f32>{ ++ bits<5> cond=0xa; ++ } ++ ++def VFCMP_CULT_D : LSX_VFCMP<0b000011000110>, ++ LSX_VFCMP_Reg3<"vfcmp.cult.d", LSX128DOpnd, LSX128DOpnd, LSX128DOpnd, vfsetult_v2f64>{ ++ bits<5> cond=0xa; ++ } ++ ++ ++def VFCMP_CLE_S : LSX_VFCMP<0b000011000101>, ++ LSX_VFCMP_Reg3<"vfcmp.cle.s", LSX128WOpnd, LSX128WOpnd, LSX128WOpnd, vfsetole_v4f32>{ ++ bits<5> cond=0x6; ++ } ++ ++def VFCMP_CLE_D : LSX_VFCMP<0b000011000110>, ++ LSX_VFCMP_Reg3<"vfcmp.cle.d", LSX128DOpnd, LSX128DOpnd, LSX128DOpnd, vfsetole_v2f64>{ ++ bits<5> cond=0x6; ++ } ++ ++ ++def VFCMP_CULE_S : LSX_VFCMP<0b000011000101>, ++ LSX_VFCMP_Reg3<"vfcmp.cule.s", LSX128WOpnd, LSX128WOpnd, LSX128WOpnd, vfsetule_v4f32>{ ++ bits<5> cond=0xe; ++ } ++ ++def VFCMP_CULE_D : LSX_VFCMP<0b000011000110>, ++ LSX_VFCMP_Reg3<"vfcmp.cule.d", LSX128DOpnd, LSX128DOpnd, LSX128DOpnd, vfsetule_v2f64>{ ++ bits<5> cond=0xe; ++ } ++ ++ ++def VFCMP_SAF_S : LSX_VFCMP<0b000011000101>, ++ LSX_VFCMP_Reg3<"vfcmp.saf.s", LSX128WOpnd, LSX128WOpnd, LSX128WOpnd, int_loongarch_lsx_vfcmp_saf_s>{ ++ bits<5> cond=0x1; ++ } ++ ++def VFCMP_SAF_D : LSX_VFCMP<0b000011000110>, ++ LSX_VFCMP_Reg3<"vfcmp.saf.d", LSX128DOpnd, LSX128DOpnd, LSX128DOpnd, int_loongarch_lsx_vfcmp_saf_d>{ ++ bits<5> cond=0x1; ++ } ++ ++def VFCMP_SOR_S : LSX_VFCMP<0b000011000101>, ++ LSX_VFCMP_Reg3<"vfcmp.sor.s", LSX128WOpnd, LSX128WOpnd, LSX128WOpnd, int_loongarch_lsx_vfcmp_sor_s>{ ++ bits<5> cond=0x15; ++ } ++ ++def VFCMP_SOR_D : LSX_VFCMP<0b000011000110>, ++ LSX_VFCMP_Reg3<"vfcmp.sor.d", LSX128DOpnd, LSX128DOpnd, LSX128DOpnd, int_loongarch_lsx_vfcmp_sor_d>{ ++ bits<5> cond=0x15; ++ } ++ ++def VFCMP_SUN_S : LSX_VFCMP<0b000011000101>, ++ LSX_VFCMP_Reg3<"vfcmp.sun.s", LSX128WOpnd, LSX128WOpnd, LSX128WOpnd, int_loongarch_lsx_vfcmp_sun_s>{ ++ bits<5> cond=0x9; ++ } ++ ++def VFCMP_SUN_D : LSX_VFCMP<0b000011000110>, ++ LSX_VFCMP_Reg3<"vfcmp.sun.d", LSX128DOpnd, LSX128DOpnd, LSX128DOpnd, int_loongarch_lsx_vfcmp_sun_d>{ ++ bits<5> cond=0x9; ++ } ++ ++def VFCMP_SUNE_S : LSX_VFCMP<0b000011000101>, ++ LSX_VFCMP_Reg3<"vfcmp.sune.s", LSX128WOpnd, LSX128WOpnd, LSX128WOpnd, int_loongarch_lsx_vfcmp_sune_s>{ ++ bits<5> cond=0x19; ++ } ++ ++def VFCMP_SUNE_D : LSX_VFCMP<0b000011000110>, ++ LSX_VFCMP_Reg3<"vfcmp.sune.d", LSX128DOpnd, LSX128DOpnd, LSX128DOpnd, int_loongarch_lsx_vfcmp_sune_d>{ ++ bits<5> cond=0x19; ++ } ++ ++def VFCMP_SUEQ_S : LSX_VFCMP<0b000011000101>, ++ LSX_VFCMP_Reg3<"vfcmp.sueq.s", LSX128WOpnd, LSX128WOpnd, LSX128WOpnd, int_loongarch_lsx_vfcmp_sueq_s>{ ++ bits<5> cond=0xd; ++ } ++ ++def VFCMP_SUEQ_D : LSX_VFCMP<0b000011000110>, ++ LSX_VFCMP_Reg3<"vfcmp.sueq.d", LSX128DOpnd, LSX128DOpnd, LSX128DOpnd, int_loongarch_lsx_vfcmp_sueq_d>{ ++ bits<5> cond=0xd; ++ } ++ ++def VFCMP_SEQ_S : LSX_VFCMP<0b000011000101>, ++ LSX_VFCMP_Reg3<"vfcmp.seq.s", LSX128WOpnd, LSX128WOpnd, LSX128WOpnd, int_loongarch_lsx_vfcmp_seq_s>{ ++ bits<5> cond=0x5; ++ } ++ ++def VFCMP_SEQ_D : LSX_VFCMP<0b000011000110>, ++ LSX_VFCMP_Reg3<"vfcmp.seq.d", LSX128DOpnd, LSX128DOpnd, LSX128DOpnd, int_loongarch_lsx_vfcmp_seq_d>{ ++ bits<5> cond=0x5; ++ } ++ ++def VFCMP_SNE_S : LSX_VFCMP<0b000011000101>, ++ LSX_VFCMP_Reg3<"vfcmp.sne.s", LSX128WOpnd, LSX128WOpnd, LSX128WOpnd, int_loongarch_lsx_vfcmp_sne_s>{ ++ bits<5> cond=0x11; ++ } ++ ++def VFCMP_SNE_D : LSX_VFCMP<0b000011000110>, ++ LSX_VFCMP_Reg3<"vfcmp.sne.d", LSX128DOpnd, LSX128DOpnd, LSX128DOpnd, int_loongarch_lsx_vfcmp_sne_d>{ ++ bits<5> cond=0x11; ++ } ++ ++def VFCMP_SLT_S : LSX_VFCMP<0b000011000101>, ++ LSX_VFCMP_Reg3<"vfcmp.slt.s", LSX128WOpnd, LSX128WOpnd, LSX128WOpnd, int_loongarch_lsx_vfcmp_slt_s>{ ++ bits<5> cond=0x3; ++ } ++ ++def VFCMP_SLT_D : LSX_VFCMP<0b000011000110>, ++ LSX_VFCMP_Reg3<"vfcmp.slt.d", LSX128DOpnd, LSX128DOpnd, LSX128DOpnd, int_loongarch_lsx_vfcmp_slt_d>{ ++ bits<5> cond=0x3; ++ } ++ ++def VFCMP_SULT_S : LSX_VFCMP<0b000011000101>, ++ LSX_VFCMP_Reg3<"vfcmp.sult.s", LSX128WOpnd, LSX128WOpnd, LSX128WOpnd, int_loongarch_lsx_vfcmp_sult_s>{ ++ bits<5> cond=0xb; ++ } ++ ++def VFCMP_SULT_D : LSX_VFCMP<0b000011000110>, ++ LSX_VFCMP_Reg3<"vfcmp.sult.d", LSX128DOpnd, LSX128DOpnd, LSX128DOpnd, int_loongarch_lsx_vfcmp_sult_d>{ ++ bits<5> cond=0xb; ++ } ++ ++def VFCMP_SLE_S : LSX_VFCMP<0b000011000101>, ++ LSX_VFCMP_Reg3<"vfcmp.sle.s", LSX128WOpnd, LSX128WOpnd, LSX128WOpnd, int_loongarch_lsx_vfcmp_sle_s>{ ++ bits<5> cond=0x7; ++ } ++ ++def VFCMP_SLE_D : LSX_VFCMP<0b000011000110>, ++ LSX_VFCMP_Reg3<"vfcmp.sle.d", LSX128DOpnd, LSX128DOpnd, LSX128DOpnd, int_loongarch_lsx_vfcmp_sle_d>{ ++ bits<5> cond=0x7; ++ } ++ ++def VFCMP_SULE_S : LSX_VFCMP<0b000011000101>, ++ LSX_VFCMP_Reg3<"vfcmp.sule.s", LSX128WOpnd, LSX128WOpnd, LSX128WOpnd, int_loongarch_lsx_vfcmp_sule_s>{ ++ bits<5> cond=0xf; ++ } ++ ++def VFCMP_SULE_D : LSX_VFCMP<0b000011000110>, ++ LSX_VFCMP_Reg3<"vfcmp.sule.d", LSX128DOpnd, LSX128DOpnd, LSX128DOpnd, int_loongarch_lsx_vfcmp_sule_d>{ ++ bits<5> cond=0xf; ++ } ++ ++def VBITSEL_V : LSX_VR4MUL<0b000011010001>, ++ LSX_VMul_Reg4<"vbitsel.v", LSX128BOpnd, LSX128BOpnd, LSX128BOpnd, LSX128BOpnd, int_loongarch_lsx_vbitsel_v>; ++ ++def VSHUF_B : LSX_VR4MUL<0b000011010101>, ++ LSX_3R_4R_VSHF_DESC_BASE<"vshuf.b", LSX128BOpnd>; ++ ++ ++class LSX_BSEL_PSEUDO_BASE : ++ LSXPseudo<(outs RO:$vd), (ins RO:$vd_in, RO:$vs, RO:$vt), ++ [(set RO:$vd, (Ty (vselect RO:$vd_in, RO:$vt, RO:$vs)))]>, ++ PseudoInstExpansion<(VBITSEL_V LSX128BOpnd:$vd, LSX128BOpnd:$vs, ++ LSX128BOpnd:$vt, LSX128BOpnd:$vd_in)> { ++ let Constraints = "$vd_in = $vd"; ++} ++ ++def BSEL_B_PSEUDO : LSX_BSEL_PSEUDO_BASE; ++def BSEL_H_PSEUDO : LSX_BSEL_PSEUDO_BASE; ++def BSEL_W_PSEUDO : LSX_BSEL_PSEUDO_BASE; ++def BSEL_D_PSEUDO : LSX_BSEL_PSEUDO_BASE; ++def BSEL_FW_PSEUDO : LSX_BSEL_PSEUDO_BASE; ++def BSEL_FD_PSEUDO : LSX_BSEL_PSEUDO_BASE; ++ ++ ++class LSX_LD_DESC_BASE { ++ dag OutOperandList = (outs ROVD:$vd); ++ dag InOperandList = (ins MemOpnd:$addr); ++ string AsmString = !strconcat(instr_asm, "\t$vd, $addr"); ++ list Pattern = [(set ROVD:$vd, (OpNode (TyNode (load Addr:$addr))))]; ++ string DecoderMethod = "DecodeLSX128memlsl"; ++} ++ ++def VLDREPL_B : LSX_SI12_S<0b0011000010>, ++ LSX_LD_DESC_BASE<"vldrepl.b", vldrepl_v16i8, v16i8, LSX128BOpnd>; ++ ++def VLDREPL_H : LSX_SI11_S<0b00110000010>, ++ LSX_LD_DESC_BASE<"vldrepl.h", vldrepl_v8i16, v8i16, LSX128HOpnd, mem_simm11_lsl1, addrimm11lsl1>; ++ ++def VLDREPL_W : LSX_SI10_S<0b001100000010>, ++ LSX_LD_DESC_BASE<"vldrepl.w", vldrepl_v4i32, v4i32, LSX128WOpnd, mem_simm10_lsl2, addrimm10lsl2>; ++ ++def VLDREPL_D : LSX_SI9_S<0b0011000000010>, ++ LSX_LD_DESC_BASE<"vldrepl.d", vldrepl_v2i64, v2i64, LSX128DOpnd, mem_simm9_lsl3, addrimm9lsl3>; ++ ++ ++def VSTELM_B : LSX_SI8_idx4<0b0011000110>, ++ LSX_I8_U4_DESC_BASE<"vstelm.b", int_loongarch_lsx_vstelm_b, simm8_32, immSExt8, LSX128BOpnd>; ++ ++def VSTELM_H : LSX_SI8_idx3<0b00110001010>, ++ LSX_I8_U3_DESC_BASE<"vstelm.h", int_loongarch_lsx_vstelm_h, immSExt8_1_O, immSExt8, LSX128HOpnd>; ++ ++def VSTELM_W : LSX_SI8_idx2<0b001100010010>, ++ LSX_I8_U2_DESC_BASE<"vstelm.w", int_loongarch_lsx_vstelm_w, immSExt8_2_O, immSExt8, LSX128WOpnd>; ++ ++def VSTELM_D : LSX_SI8_idx1<0b0011000100010>, ++ LSX_I8_U1_DESC_BASE<"vstelm.d", int_loongarch_lsx_vstelm_d, immSExt8_3_O, immSExt8, LSX128DOpnd>; ++ ++ ++let mayLoad = 1, canFoldAsLoad = 1 in { ++ def VLDX : LSX_3R_2GP<0b00111000010000000>, ++ LSX_LDX_LA<"vldx", int_loongarch_lsx_vldx, GPR64Opnd, LSX128BOpnd>; ++} ++ ++let mayStore = 1 in{ ++ def VSTX : LSX_3R_2GP<0b00111000010001000>, ++ LSX_SDX_LA<"vstx", int_loongarch_lsx_vstx, GPR64Opnd, LSX128BOpnd>; ++} ++ ++ ++def VADDWEV_H_B : LSX_3R<0b01110000000111100>, ++ LSX_3R_DESC_BASE<"vaddwev.h.b", int_loongarch_lsx_vaddwev_h_b, LSX128HOpnd, LSX128BOpnd, LSX128BOpnd>; ++ ++def VADDWEV_W_H : LSX_3R<0b01110000000111101>, ++ LSX_3R_DESC_BASE<"vaddwev.w.h", int_loongarch_lsx_vaddwev_w_h, LSX128WOpnd, LSX128HOpnd, LSX128HOpnd>; ++ ++def VADDWEV_D_W : LSX_3R<0b01110000000111110>, ++ LSX_3R_DESC_BASE<"vaddwev.d.w", int_loongarch_lsx_vaddwev_d_w, LSX128DOpnd, LSX128WOpnd, LSX128WOpnd> ; ++ ++def VADDWEV_Q_D : LSX_3R<0b01110000000111111>, ++ LSX_3R_DESC_BASE<"vaddwev.q.d", int_loongarch_lsx_vaddwev_q_d, LSX128DOpnd, LSX128DOpnd, LSX128DOpnd>; ++ ++ ++def VSUBWEV_H_B : LSX_3R<0b01110000001000000>, ++ LSX_3R_DESC_BASE<"vsubwev.h.b", int_loongarch_lsx_vsubwev_h_b, LSX128HOpnd, LSX128BOpnd, LSX128BOpnd>; ++ ++def VSUBWEV_W_H : LSX_3R<0b01110000001000001>, ++ LSX_3R_DESC_BASE<"vsubwev.w.h", int_loongarch_lsx_vsubwev_w_h, LSX128WOpnd, LSX128HOpnd, LSX128HOpnd>; ++ ++def VSUBWEV_D_W : LSX_3R<0b01110000001000010>, ++ LSX_3R_DESC_BASE<"vsubwev.d.w", int_loongarch_lsx_vsubwev_d_w, LSX128DOpnd, LSX128WOpnd, LSX128WOpnd> ; ++ ++def VSUBWEV_Q_D : LSX_3R<0b01110000001000011>, ++ LSX_3R_DESC_BASE<"vsubwev.q.d", int_loongarch_lsx_vsubwev_q_d, LSX128DOpnd, LSX128DOpnd, LSX128DOpnd>; ++ ++ ++def VADDWOD_H_B : LSX_3R<0b01110000001000100>, ++ LSX_3R_DESC_BASE<"vaddwod.h.b", int_loongarch_lsx_vaddwod_h_b, LSX128HOpnd, LSX128BOpnd, LSX128BOpnd>; ++ ++def VADDWOD_W_H : LSX_3R<0b01110000001000101>, ++ LSX_3R_DESC_BASE<"vaddwod.w.h", int_loongarch_lsx_vaddwod_w_h, LSX128WOpnd, LSX128HOpnd, LSX128HOpnd>; ++ ++def VADDWOD_D_W : LSX_3R<0b01110000001000110>, ++ LSX_3R_DESC_BASE<"vaddwod.d.w", int_loongarch_lsx_vaddwod_d_w, LSX128DOpnd, LSX128WOpnd, LSX128WOpnd> ; ++ ++def VADDWOD_Q_D : LSX_3R<0b01110000001000111>, ++ LSX_3R_DESC_BASE<"vaddwod.q.d", int_loongarch_lsx_vaddwod_q_d, LSX128DOpnd, LSX128DOpnd, LSX128DOpnd>; ++ ++ ++def VSUBWOD_H_B : LSX_3R<0b01110000001001000>, ++ LSX_3R_DESC_BASE<"vsubwod.h.b", int_loongarch_lsx_vsubwod_h_b, LSX128HOpnd, LSX128BOpnd, LSX128BOpnd>; ++ ++def VSUBWOD_W_H : LSX_3R<0b01110000001001001>, ++ LSX_3R_DESC_BASE<"vsubwod.w.h", int_loongarch_lsx_vsubwod_w_h, LSX128WOpnd, LSX128HOpnd, LSX128HOpnd>; ++ ++def VSUBWOD_D_W : LSX_3R<0b01110000001001010>, ++ LSX_3R_DESC_BASE<"vsubwod.d.w", int_loongarch_lsx_vsubwod_d_w, LSX128DOpnd, LSX128WOpnd, LSX128WOpnd> ; ++ ++def VSUBWOD_Q_D : LSX_3R<0b01110000001001011>, ++ LSX_3R_DESC_BASE<"vsubwod.q.d", int_loongarch_lsx_vsubwod_q_d, LSX128DOpnd, LSX128DOpnd, LSX128DOpnd>; ++ ++ ++def VADDWEV_H_BU : LSX_3R<0b01110000001011100>, ++ LSX_3R_DESC_BASE<"vaddwev.h.bu", int_loongarch_lsx_vaddwev_h_bu, LSX128HOpnd, LSX128BOpnd, LSX128BOpnd>; ++ ++def VADDWEV_W_HU : LSX_3R<0b01110000001011101>, ++ LSX_3R_DESC_BASE<"vaddwev.w.hu", int_loongarch_lsx_vaddwev_w_hu, LSX128WOpnd, LSX128HOpnd, LSX128HOpnd>; ++ ++def VADDWEV_D_WU : LSX_3R<0b01110000001011110>, ++ LSX_3R_DESC_BASE<"vaddwev.d.wu", int_loongarch_lsx_vaddwev_d_wu, LSX128DOpnd, LSX128WOpnd, LSX128WOpnd> ; ++ ++def VADDWEV_Q_DU : LSX_3R<0b01110000001011111>, ++ LSX_3R_DESC_BASE<"vaddwev.q.du", int_loongarch_lsx_vaddwev_q_du, LSX128DOpnd, LSX128DOpnd, LSX128DOpnd>; ++ ++ ++def VSUBWEV_H_BU : LSX_3R<0b01110000001100000>, ++ LSX_3R_DESC_BASE<"vsubwev.h.bu", int_loongarch_lsx_vsubwev_h_bu, LSX128HOpnd, LSX128BOpnd, LSX128BOpnd>; ++ ++def VSUBWEV_W_HU : LSX_3R<0b01110000001100001>, ++ LSX_3R_DESC_BASE<"vsubwev.w.hu", int_loongarch_lsx_vsubwev_w_hu, LSX128WOpnd, LSX128HOpnd, LSX128HOpnd>; ++ ++def VSUBWEV_D_WU : LSX_3R<0b01110000001100010>, ++ LSX_3R_DESC_BASE<"vsubwev.d.wu", int_loongarch_lsx_vsubwev_d_wu, LSX128DOpnd, LSX128WOpnd, LSX128WOpnd> ; ++ ++def VSUBWEV_Q_DU : LSX_3R<0b01110000001100011>, ++ LSX_3R_DESC_BASE<"vsubwev.q.du", int_loongarch_lsx_vsubwev_q_du, LSX128DOpnd, LSX128DOpnd, LSX128DOpnd>; ++ ++ ++def VADDWOD_H_BU : LSX_3R<0b01110000001100100>, ++ LSX_3R_DESC_BASE<"vaddwod.h.bu", int_loongarch_lsx_vaddwod_h_bu, LSX128HOpnd, LSX128BOpnd, LSX128BOpnd>; ++ ++def VADDWOD_W_HU : LSX_3R<0b01110000001100101>, ++ LSX_3R_DESC_BASE<"vaddwod.w.hu", int_loongarch_lsx_vaddwod_w_hu, LSX128WOpnd, LSX128HOpnd, LSX128HOpnd>; ++ ++def VADDWOD_D_WU : LSX_3R<0b01110000001100110>, ++ LSX_3R_DESC_BASE<"vaddwod.d.wu", int_loongarch_lsx_vaddwod_d_wu, LSX128DOpnd, LSX128WOpnd, LSX128WOpnd> ; ++ ++def VADDWOD_Q_DU : LSX_3R<0b01110000001100111>, ++ LSX_3R_DESC_BASE<"vaddwod.q.du", int_loongarch_lsx_vaddwod_q_du, LSX128DOpnd, LSX128DOpnd, LSX128DOpnd>; ++ ++ ++def VSUBWOD_H_BU : LSX_3R<0b01110000001101000>, ++ LSX_3R_DESC_BASE<"vsubwod.h.bu", int_loongarch_lsx_vsubwod_h_bu, LSX128HOpnd, LSX128BOpnd, LSX128BOpnd>; ++ ++def VSUBWOD_W_HU : LSX_3R<0b01110000001101001>, ++ LSX_3R_DESC_BASE<"vsubwod.w.hu", int_loongarch_lsx_vsubwod_w_hu, LSX128WOpnd, LSX128HOpnd, LSX128HOpnd>; ++ ++def VSUBWOD_D_WU : LSX_3R<0b01110000001101010>, ++ LSX_3R_DESC_BASE<"vsubwod.d.wu", int_loongarch_lsx_vsubwod_d_wu, LSX128DOpnd, LSX128WOpnd, LSX128WOpnd> ; ++ ++def VSUBWOD_Q_DU : LSX_3R<0b01110000001101011>, ++ LSX_3R_DESC_BASE<"vsubwod.q.du", int_loongarch_lsx_vsubwod_q_du, LSX128DOpnd, LSX128DOpnd, LSX128DOpnd>; ++ ++ ++def VADDWEV_H_BU_B : LSX_3R<0b01110000001111100>, ++ LSX_3R_DESC_BASE<"vaddwev.h.bu.b", int_loongarch_lsx_vaddwev_h_bu_b, LSX128HOpnd, LSX128BOpnd, LSX128BOpnd>; ++ ++def VADDWEV_W_HU_H : LSX_3R<0b01110000001111101>, ++ LSX_3R_DESC_BASE<"vaddwev.w.hu.h", int_loongarch_lsx_vaddwev_w_hu_h, LSX128WOpnd, LSX128HOpnd, LSX128HOpnd>; ++ ++def VADDWEV_D_WU_W : LSX_3R<0b01110000001111110>, ++ LSX_3R_DESC_BASE<"vaddwev.d.wu.w", int_loongarch_lsx_vaddwev_d_wu_w, LSX128DOpnd, LSX128WOpnd, LSX128WOpnd> ; ++ ++def VADDWEV_Q_DU_D : LSX_3R<0b01110000001111111>, ++ LSX_3R_DESC_BASE<"vaddwev.q.du.d", int_loongarch_lsx_vaddwev_q_du_d, LSX128DOpnd, LSX128DOpnd, LSX128DOpnd>; ++ ++ ++def VADDWOD_H_BU_B : LSX_3R<0b01110000010000000>, ++ LSX_3R_DESC_BASE<"vaddwod.h.bu.b", int_loongarch_lsx_vaddwod_h_bu_b, LSX128HOpnd, LSX128BOpnd, LSX128BOpnd>; ++ ++def VADDWOD_W_HU_H : LSX_3R<0b01110000010000001>, ++ LSX_3R_DESC_BASE<"vaddwod.w.hu.h", int_loongarch_lsx_vaddwod_w_hu_h, LSX128WOpnd, LSX128HOpnd, LSX128HOpnd>; ++ ++def VADDWOD_D_WU_W : LSX_3R<0b01110000010000010>, ++ LSX_3R_DESC_BASE<"vaddwod.d.wu.w", int_loongarch_lsx_vaddwod_d_wu_w, LSX128DOpnd, LSX128WOpnd, LSX128WOpnd> ; ++ ++def VADDWOD_Q_DU_D : LSX_3R<0b01110000010000011>, ++ LSX_3R_DESC_BASE<"vaddwod.q.du.d", int_loongarch_lsx_vaddwod_q_du_d, LSX128DOpnd, LSX128DOpnd, LSX128DOpnd>; ++ ++ ++def VHADDW_Q_D : LSX_3R<0b01110000010101011>, ++ LSX_3R_DESC_BASE<"vhaddw.q.d", int_loongarch_lsx_vhaddw_q_d, LSX128DOpnd, LSX128DOpnd, LSX128DOpnd>; ++ ++def VHSUBW_Q_D : LSX_3R<0b01110000010101111>, ++ LSX_3R_DESC_BASE<"vhsubw.q.d", int_loongarch_lsx_vhsubw_q_d, LSX128DOpnd, LSX128DOpnd, LSX128DOpnd>; ++ ++ ++def VHADDW_QU_DU : LSX_3R<0b01110000010110011>, ++ LSX_3R_DESC_BASE<"vhaddw.qu.du", int_loongarch_lsx_vhaddw_qu_du, LSX128DOpnd, LSX128DOpnd, LSX128DOpnd>; ++ ++def VHSUBW_QU_DU : LSX_3R<0b01110000010110111>, ++ LSX_3R_DESC_BASE<"vhsubw.qu.du", int_loongarch_lsx_vhsubw_qu_du, LSX128DOpnd, LSX128DOpnd, LSX128DOpnd>; ++ ++ ++def VMUH_B : LSX_3R<0b01110000100001100>, ++ LSX_3R_DESC_BASE<"vmuh.b", int_loongarch_lsx_vmuh_b, LSX128BOpnd, LSX128BOpnd, LSX128BOpnd>; ++ ++def VMUH_H : LSX_3R<0b01110000100001101>, ++ LSX_3R_DESC_BASE<"vmuh.h", int_loongarch_lsx_vmuh_h, LSX128HOpnd, LSX128HOpnd, LSX128HOpnd>; ++ ++def VMUH_W : LSX_3R<0b01110000100001110>, ++ LSX_3R_DESC_BASE<"vmuh.w", int_loongarch_lsx_vmuh_w, LSX128WOpnd, LSX128WOpnd, LSX128WOpnd> ; ++ ++def VMUH_D : LSX_3R<0b01110000100001111>, ++ LSX_3R_DESC_BASE<"vmuh.d", int_loongarch_lsx_vmuh_d, LSX128DOpnd, LSX128DOpnd, LSX128DOpnd>; ++ ++ ++def VMUH_BU : LSX_3R<0b01110000100010000>, ++ LSX_3R_DESC_BASE<"vmuh.bu", int_loongarch_lsx_vmuh_bu, LSX128BOpnd, LSX128BOpnd, LSX128BOpnd>; ++ ++def VMUH_HU : LSX_3R<0b01110000100010001>, ++ LSX_3R_DESC_BASE<"vmuh.hu", int_loongarch_lsx_vmuh_hu, LSX128HOpnd, LSX128HOpnd, LSX128HOpnd>; ++ ++def VMUH_WU : LSX_3R<0b01110000100010010>, ++ LSX_3R_DESC_BASE<"vmuh.wu", int_loongarch_lsx_vmuh_wu, LSX128WOpnd, LSX128WOpnd, LSX128WOpnd> ; ++ ++def VMUH_DU : LSX_3R<0b01110000100010011>, ++ LSX_3R_DESC_BASE<"vmuh.du", int_loongarch_lsx_vmuh_du, LSX128DOpnd, LSX128DOpnd, LSX128DOpnd>; ++ ++ ++def VMULWEV_H_B : LSX_3R<0b01110000100100000>, ++ LSX_3R_DESC_BASE<"vmulwev.h.b", int_loongarch_lsx_vmulwev_h_b, LSX128HOpnd, LSX128BOpnd, LSX128BOpnd>; ++ ++def VMULWEV_W_H : LSX_3R<0b01110000100100001>, ++ LSX_3R_DESC_BASE<"vmulwev.w.h", int_loongarch_lsx_vmulwev_w_h, LSX128WOpnd, LSX128HOpnd, LSX128HOpnd>; ++ ++def VMULWEV_D_W : LSX_3R<0b01110000100100010>, ++ LSX_3R_DESC_BASE<"vmulwev.d.w", int_loongarch_lsx_vmulwev_d_w, LSX128DOpnd, LSX128WOpnd, LSX128WOpnd> ; ++ ++def VMULWEV_Q_D : LSX_3R<0b01110000100100011>, ++ LSX_3R_DESC_BASE<"vmulwev.q.d", int_loongarch_lsx_vmulwev_q_d, LSX128DOpnd, LSX128DOpnd, LSX128DOpnd>; ++ ++ ++def VMULWOD_H_B : LSX_3R<0b01110000100100100>, ++ LSX_3R_DESC_BASE<"vmulwod.h.b", int_loongarch_lsx_vmulwod_h_b, LSX128HOpnd, LSX128BOpnd, LSX128BOpnd>; ++ ++def VMULWOD_W_H : LSX_3R<0b01110000100100101>, ++ LSX_3R_DESC_BASE<"vmulwod.w.h", int_loongarch_lsx_vmulwod_w_h, LSX128WOpnd, LSX128HOpnd, LSX128HOpnd>; ++ ++def VMULWOD_D_W : LSX_3R<0b01110000100100110>, ++ LSX_3R_DESC_BASE<"vmulwod.d.w", int_loongarch_lsx_vmulwod_d_w, LSX128DOpnd, LSX128WOpnd, LSX128WOpnd> ; ++ ++def VMULWOD_Q_D : LSX_3R<0b01110000100100111>, ++ LSX_3R_DESC_BASE<"vmulwod.q.d", int_loongarch_lsx_vmulwod_q_d, LSX128DOpnd, LSX128DOpnd, LSX128DOpnd>; ++ ++ ++def VMULWEV_H_BU : LSX_3R<0b01110000100110000>, ++ LSX_3R_DESC_BASE<"vmulwev.h.bu", int_loongarch_lsx_vmulwev_h_bu, LSX128HOpnd, LSX128BOpnd, LSX128BOpnd>; ++ ++def VMULWEV_W_HU : LSX_3R<0b01110000100110001>, ++ LSX_3R_DESC_BASE<"vmulwev.w.hu", int_loongarch_lsx_vmulwev_w_hu, LSX128WOpnd, LSX128HOpnd, LSX128HOpnd>; ++ ++def VMULWEV_D_WU : LSX_3R<0b01110000100110010>, ++ LSX_3R_DESC_BASE<"vmulwev.d.wu", int_loongarch_lsx_vmulwev_d_wu, LSX128DOpnd, LSX128WOpnd, LSX128WOpnd> ; ++ ++def VMULWEV_Q_DU : LSX_3R<0b01110000100110011>, ++ LSX_3R_DESC_BASE<"vmulwev.q.du", int_loongarch_lsx_vmulwev_q_du, LSX128DOpnd, LSX128DOpnd, LSX128DOpnd>; ++ ++ ++def VMULWOD_H_BU : LSX_3R<0b01110000100110100>, ++ LSX_3R_DESC_BASE<"vmulwod.h.bu", int_loongarch_lsx_vmulwod_h_bu, LSX128HOpnd, LSX128BOpnd, LSX128BOpnd>; ++ ++def VMULWOD_W_HU : LSX_3R<0b01110000100110101>, ++ LSX_3R_DESC_BASE<"vmulwod.w.hu", int_loongarch_lsx_vmulwod_w_hu, LSX128WOpnd, LSX128HOpnd, LSX128HOpnd>; ++ ++def VMULWOD_D_WU : LSX_3R<0b01110000100110110>, ++ LSX_3R_DESC_BASE<"vmulwod.d.wu", int_loongarch_lsx_vmulwod_d_wu, LSX128DOpnd, LSX128WOpnd, LSX128WOpnd> ; ++ ++def VMULWOD_Q_DU : LSX_3R<0b01110000100110111>, ++ LSX_3R_DESC_BASE<"vmulwod.q.du", int_loongarch_lsx_vmulwod_q_du, LSX128DOpnd, LSX128DOpnd, LSX128DOpnd>; ++ ++ ++def VMULWEV_H_BU_B : LSX_3R<0b01110000101000000>, ++ LSX_3R_DESC_BASE<"vmulwev.h.bu.b", int_loongarch_lsx_vmulwev_h_bu_b, LSX128HOpnd, LSX128BOpnd, LSX128BOpnd>; ++ ++def VMULWEV_W_HU_H : LSX_3R<0b01110000101000001>, ++ LSX_3R_DESC_BASE<"vmulwev.w.hu.h", int_loongarch_lsx_vmulwev_w_hu_h, LSX128WOpnd, LSX128HOpnd, LSX128HOpnd>; ++ ++def VMULWEV_D_WU_W : LSX_3R<0b01110000101000010>, ++ LSX_3R_DESC_BASE<"vmulwev.d.wu.w", int_loongarch_lsx_vmulwev_d_wu_w, LSX128DOpnd, LSX128WOpnd, LSX128WOpnd> ; ++ ++def VMULWEV_Q_DU_D : LSX_3R<0b01110000101000011>, ++ LSX_3R_DESC_BASE<"vmulwev.q.du.d", int_loongarch_lsx_vmulwev_q_du_d, LSX128DOpnd, LSX128DOpnd, LSX128DOpnd>; ++ ++ ++def VMULWOD_H_BU_B : LSX_3R<0b01110000101000100>, ++ LSX_3R_DESC_BASE<"vmulwod.h.bu.b", int_loongarch_lsx_vmulwod_h_bu_b, LSX128HOpnd, LSX128BOpnd, LSX128BOpnd>; ++ ++def VMULWOD_W_HU_H : LSX_3R<0b01110000101000101>, ++ LSX_3R_DESC_BASE<"vmulwod.w.hu.h", int_loongarch_lsx_vmulwod_w_hu_h, LSX128WOpnd, LSX128HOpnd, LSX128HOpnd>; ++ ++def VMULWOD_D_WU_W : LSX_3R<0b01110000101000110>, ++ LSX_3R_DESC_BASE<"vmulwod.d.wu.w", int_loongarch_lsx_vmulwod_d_wu_w, LSX128DOpnd, LSX128WOpnd, LSX128WOpnd> ; ++ ++def VMULWOD_Q_DU_D : LSX_3R<0b01110000101000111>, ++ LSX_3R_DESC_BASE<"vmulwod.q.du.d", int_loongarch_lsx_vmulwod_q_du_d, LSX128DOpnd, LSX128DOpnd, LSX128DOpnd>; ++ ++ ++def VMADDWEV_H_B : LSX_3R<0b01110000101011000>, ++ LSX_3R_4R_DESC_BASE<"vmaddwev.h.b", int_loongarch_lsx_vmaddwev_h_b, LSX128HOpnd, LSX128BOpnd, LSX128BOpnd>; ++ ++def VMADDWEV_W_H : LSX_3R<0b01110000101011001>, ++ LSX_3R_4R_DESC_BASE<"vmaddwev.w.h", int_loongarch_lsx_vmaddwev_w_h, LSX128WOpnd, LSX128HOpnd, LSX128HOpnd>; ++ ++def VMADDWEV_D_W : LSX_3R<0b01110000101011010>, ++ LSX_3R_4R_DESC_BASE<"vmaddwev.d.w", int_loongarch_lsx_vmaddwev_d_w, LSX128DOpnd, LSX128WOpnd, LSX128WOpnd>; ++ ++def VMADDWEV_Q_D : LSX_3R<0b01110000101011011>, ++ LSX_3R_4R_DESC_BASE<"vmaddwev.q.d", int_loongarch_lsx_vmaddwev_q_d, LSX128DOpnd, LSX128DOpnd, LSX128DOpnd>; ++ ++ ++def VMADDWOD_H_B : LSX_3R<0b01110000101011100>, ++ LSX_3R_4R_DESC_BASE<"vmaddwod.h.b", int_loongarch_lsx_vmaddwod_h_b, LSX128HOpnd, LSX128BOpnd, LSX128BOpnd>; ++ ++def VMADDWOD_W_H : LSX_3R<0b01110000101011101>, ++ LSX_3R_4R_DESC_BASE<"vmaddwod.w.h", int_loongarch_lsx_vmaddwod_w_h, LSX128WOpnd, LSX128HOpnd, LSX128HOpnd>; ++ ++def VMADDWOD_D_W : LSX_3R<0b01110000101011110>, ++ LSX_3R_4R_DESC_BASE<"vmaddwod.d.w", int_loongarch_lsx_vmaddwod_d_w, LSX128DOpnd, LSX128WOpnd, LSX128WOpnd>; ++ ++def VMADDWOD_Q_D : LSX_3R<0b01110000101011111>, ++ LSX_3R_4R_DESC_BASE<"vmaddwod.q.d", int_loongarch_lsx_vmaddwod_q_d, LSX128DOpnd, LSX128DOpnd, LSX128DOpnd>; ++ ++ ++def VMADDWEV_H_BU : LSX_3R<0b01110000101101000>, ++ LSX_3R_4R_DESC_BASE<"vmaddwev.h.bu", int_loongarch_lsx_vmaddwev_h_bu, LSX128HOpnd, LSX128BOpnd, LSX128BOpnd>; ++ ++def VMADDWEV_W_HU : LSX_3R<0b01110000101101001>, ++ LSX_3R_4R_DESC_BASE<"vmaddwev.w.hu", int_loongarch_lsx_vmaddwev_w_hu, LSX128WOpnd, LSX128HOpnd, LSX128HOpnd>; ++ ++def VMADDWEV_D_WU : LSX_3R<0b01110000101101010>, ++ LSX_3R_4R_DESC_BASE<"vmaddwev.d.wu", int_loongarch_lsx_vmaddwev_d_wu, LSX128DOpnd, LSX128WOpnd, LSX128WOpnd>; ++ ++def VMADDWEV_Q_DU : LSX_3R<0b01110000101101011>, ++ LSX_3R_4R_DESC_BASE<"vmaddwev.q.du", int_loongarch_lsx_vmaddwev_q_du, LSX128DOpnd, LSX128DOpnd, LSX128DOpnd>; ++ ++ ++def VMADDWOD_H_BU : LSX_3R<0b01110000101101100>, ++ LSX_3R_4R_DESC_BASE<"vmaddwod.h.bu", int_loongarch_lsx_vmaddwod_h_bu, LSX128HOpnd, LSX128BOpnd, LSX128BOpnd>; ++ ++def VMADDWOD_W_HU : LSX_3R<0b01110000101101101>, ++ LSX_3R_4R_DESC_BASE<"vmaddwod.w.hu", int_loongarch_lsx_vmaddwod_w_hu, LSX128WOpnd, LSX128HOpnd, LSX128HOpnd>; ++ ++def VMADDWOD_D_WU : LSX_3R<0b01110000101101110>, ++ LSX_3R_4R_DESC_BASE<"vmaddwod.d.wu", int_loongarch_lsx_vmaddwod_d_wu, LSX128DOpnd, LSX128WOpnd, LSX128WOpnd>; ++ ++def VMADDWOD_Q_DU : LSX_3R<0b01110000101101111>, ++ LSX_3R_4R_DESC_BASE<"vmaddwod.q.du", int_loongarch_lsx_vmaddwod_q_du, LSX128DOpnd, LSX128DOpnd, LSX128DOpnd>; ++ ++ ++def VMADDWEV_H_BU_B : LSX_3R<0b01110000101111000>, ++ LSX_3R_4R_DESC_BASE<"vmaddwev.h.bu.b", int_loongarch_lsx_vmaddwev_h_bu_b, LSX128HOpnd, LSX128BOpnd, LSX128BOpnd>; ++ ++def VMADDWEV_W_HU_H : LSX_3R<0b01110000101111001>, ++ LSX_3R_4R_DESC_BASE<"vmaddwev.w.hu.h", int_loongarch_lsx_vmaddwev_w_hu_h, LSX128WOpnd, LSX128HOpnd, LSX128HOpnd>; ++ ++def VMADDWEV_D_WU_W : LSX_3R<0b01110000101111010>, ++ LSX_3R_4R_DESC_BASE<"vmaddwev.d.wu.w", int_loongarch_lsx_vmaddwev_d_wu_w, LSX128DOpnd, LSX128WOpnd, LSX128WOpnd> ; ++ ++def VMADDWEV_Q_DU_D : LSX_3R<0b01110000101111011>, ++ LSX_3R_4R_DESC_BASE<"vmaddwev.q.du.d", int_loongarch_lsx_vmaddwev_q_du_d, LSX128DOpnd, LSX128DOpnd, LSX128DOpnd>; ++ ++ ++def VMADDWOD_H_BU_B : LSX_3R<0b01110000101111100>, ++ LSX_3R_4R_DESC_BASE<"vmaddwod.h.bu.b", int_loongarch_lsx_vmaddwod_h_bu_b, LSX128HOpnd, LSX128BOpnd, LSX128BOpnd>; ++ ++def VMADDWOD_W_HU_H : LSX_3R<0b01110000101111101>, ++ LSX_3R_4R_DESC_BASE<"vmaddwod.w.hu.h", int_loongarch_lsx_vmaddwod_w_hu_h, LSX128WOpnd, LSX128HOpnd, LSX128HOpnd>; ++ ++def VMADDWOD_D_WU_W : LSX_3R<0b01110000101111110>, ++ LSX_3R_4R_DESC_BASE<"vmaddwod.d.wu.w", int_loongarch_lsx_vmaddwod_d_wu_w, LSX128DOpnd, LSX128WOpnd, LSX128WOpnd> ; ++ ++def VMADDWOD_Q_DU_D : LSX_3R<0b01110000101111111>, ++ LSX_3R_4R_DESC_BASE<"vmaddwod.q.du.d", int_loongarch_lsx_vmaddwod_q_du_d, LSX128DOpnd, LSX128DOpnd, LSX128DOpnd>; ++ ++ ++def VSRLN_B_H : LSX_3R<0b01110000111101001>, ++ LSX_3R_DESC_BASE<"vsrln.b.h", int_loongarch_lsx_vsrln_b_h, LSX128BOpnd, LSX128HOpnd, LSX128HOpnd>; ++ ++def VSRLN_H_W : LSX_3R<0b01110000111101010>, ++ LSX_3R_DESC_BASE<"vsrln.h.w", int_loongarch_lsx_vsrln_h_w, LSX128HOpnd, LSX128WOpnd, LSX128WOpnd>; ++ ++def VSRLN_W_D : LSX_3R<0b01110000111101011>, ++ LSX_3R_DESC_BASE<"vsrln.w.d", int_loongarch_lsx_vsrln_w_d, LSX128WOpnd, LSX128DOpnd, LSX128DOpnd>; ++ ++ ++def VSRAN_B_H : LSX_3R<0b01110000111101101>, ++ LSX_3R_DESC_BASE<"vsran.b.h", int_loongarch_lsx_vsran_b_h, LSX128BOpnd, LSX128HOpnd, LSX128HOpnd>; ++ ++def VSRAN_H_W : LSX_3R<0b01110000111101110>, ++ LSX_3R_DESC_BASE<"vsran.h.w", int_loongarch_lsx_vsran_h_w, LSX128HOpnd, LSX128WOpnd, LSX128WOpnd>; ++ ++def VSRAN_W_D : LSX_3R<0b01110000111101111>, ++ LSX_3R_DESC_BASE<"vsran.w.d", int_loongarch_lsx_vsran_w_d, LSX128WOpnd, LSX128DOpnd, LSX128DOpnd>; ++ ++ ++def VSRLRN_B_H : LSX_3R<0b01110000111110001>, ++ LSX_3R_DESC_BASE<"vsrlrn.b.h", int_loongarch_lsx_vsrlrn_b_h, LSX128BOpnd, LSX128HOpnd, LSX128HOpnd>; ++ ++def VSRLRN_H_W : LSX_3R<0b01110000111110010>, ++ LSX_3R_DESC_BASE<"vsrlrn.h.w", int_loongarch_lsx_vsrlrn_h_w, LSX128HOpnd, LSX128WOpnd, LSX128WOpnd>; ++ ++def VSRLRN_W_D : LSX_3R<0b01110000111110011>, ++ LSX_3R_DESC_BASE<"vsrlrn.w.d", int_loongarch_lsx_vsrlrn_w_d, LSX128WOpnd, LSX128DOpnd, LSX128DOpnd>; ++ ++ ++def VSRARN_B_H : LSX_3R<0b01110000111110101>, ++ LSX_3R_DESC_BASE<"vsrarn.b.h", int_loongarch_lsx_vsrarn_b_h, LSX128BOpnd, LSX128HOpnd, LSX128HOpnd>; ++ ++def VSRARN_H_W : LSX_3R<0b01110000111110110>, ++ LSX_3R_DESC_BASE<"vsrarn.h.w", int_loongarch_lsx_vsrarn_h_w, LSX128HOpnd, LSX128WOpnd, LSX128WOpnd>; ++ ++def VSRARN_W_D : LSX_3R<0b01110000111110111>, ++ LSX_3R_DESC_BASE<"vsrarn.w.d", int_loongarch_lsx_vsrarn_w_d, LSX128WOpnd, LSX128DOpnd, LSX128DOpnd>; ++ ++ ++def VSSRLN_B_H : LSX_3R<0b01110000111111001>, ++ LSX_3R_DESC_BASE<"vssrln.b.h", int_loongarch_lsx_vssrln_b_h, LSX128BOpnd, LSX128HOpnd, LSX128HOpnd>; ++ ++def VSSRLN_H_W : LSX_3R<0b01110000111111010>, ++ LSX_3R_DESC_BASE<"vssrln.h.w", int_loongarch_lsx_vssrln_h_w, LSX128HOpnd, LSX128WOpnd, LSX128WOpnd>; ++ ++def VSSRLN_W_D : LSX_3R<0b01110000111111011>, ++ LSX_3R_DESC_BASE<"vssrln.w.d", int_loongarch_lsx_vssrln_w_d, LSX128WOpnd, LSX128DOpnd, LSX128DOpnd>; ++ ++ ++def VSSRAN_B_H : LSX_3R<0b01110000111111101>, ++ LSX_3R_DESC_BASE<"vssran.b.h", int_loongarch_lsx_vssran_b_h, LSX128BOpnd, LSX128HOpnd, LSX128HOpnd>; ++ ++def VSSRAN_H_W : LSX_3R<0b01110000111111110>, ++ LSX_3R_DESC_BASE<"vssran.h.w", int_loongarch_lsx_vssran_h_w, LSX128HOpnd, LSX128WOpnd, LSX128WOpnd>; ++ ++def VSSRAN_W_D : LSX_3R<0b01110000111111111>, ++ LSX_3R_DESC_BASE<"vssran.w.d", int_loongarch_lsx_vssran_w_d, LSX128WOpnd, LSX128DOpnd, LSX128DOpnd>; ++ ++ ++def VSSRLRN_B_H : LSX_3R<0b01110001000000001>, ++ LSX_3R_DESC_BASE<"vssrlrn.b.h", int_loongarch_lsx_vssrlrn_b_h, LSX128BOpnd, LSX128HOpnd, LSX128HOpnd>; ++ ++def VSSRLRN_H_W : LSX_3R<0b01110001000000010>, ++ LSX_3R_DESC_BASE<"vssrlrn.h.w", int_loongarch_lsx_vssrlrn_h_w, LSX128HOpnd, LSX128WOpnd, LSX128WOpnd>; ++ ++def VSSRLRN_W_D : LSX_3R<0b01110001000000011>, ++ LSX_3R_DESC_BASE<"vssrlrn.w.d", int_loongarch_lsx_vssrlrn_w_d, LSX128WOpnd, LSX128DOpnd, LSX128DOpnd>; ++ ++ ++def VSSRARN_B_H : LSX_3R<0b01110001000000101>, ++ LSX_3R_DESC_BASE<"vssrarn.b.h", int_loongarch_lsx_vssrarn_b_h, LSX128BOpnd, LSX128HOpnd, LSX128HOpnd>; ++ ++def VSSRARN_H_W : LSX_3R<0b01110001000000110>, ++ LSX_3R_DESC_BASE<"vssrarn.h.w", int_loongarch_lsx_vssrarn_h_w, LSX128HOpnd, LSX128WOpnd, LSX128WOpnd>; ++ ++def VSSRARN_W_D : LSX_3R<0b01110001000000111>, ++ LSX_3R_DESC_BASE<"vssrarn.w.d", int_loongarch_lsx_vssrarn_w_d, LSX128WOpnd, LSX128DOpnd, LSX128DOpnd>; ++ ++ ++def VSSRLN_BU_H : LSX_3R<0b01110001000001001>, ++ LSX_3R_DESC_BASE<"vssrln.bu.h", int_loongarch_lsx_vssrln_bu_h, LSX128BOpnd, LSX128HOpnd, LSX128HOpnd>; ++ ++def VSSRLN_HU_W : LSX_3R<0b01110001000001010>, ++ LSX_3R_DESC_BASE<"vssrln.hu.w", int_loongarch_lsx_vssrln_hu_w, LSX128HOpnd, LSX128WOpnd, LSX128WOpnd>; ++ ++def VSSRLN_WU_D : LSX_3R<0b01110001000001011>, ++ LSX_3R_DESC_BASE<"vssrln.wu.d", int_loongarch_lsx_vssrln_wu_d, LSX128WOpnd, LSX128DOpnd, LSX128DOpnd>; ++ ++ ++def VSSRAN_BU_H : LSX_3R<0b01110001000001101>, ++ LSX_3R_DESC_BASE<"vssran.bu.h", int_loongarch_lsx_vssran_bu_h, LSX128BOpnd, LSX128HOpnd, LSX128HOpnd>; ++ ++def VSSRAN_HU_W : LSX_3R<0b01110001000001110>, ++ LSX_3R_DESC_BASE<"vssran.hu.w", int_loongarch_lsx_vssran_hu_w, LSX128HOpnd, LSX128WOpnd, LSX128WOpnd>; ++ ++def VSSRAN_WU_D : LSX_3R<0b01110001000001111>, ++ LSX_3R_DESC_BASE<"vssran.wu.d", int_loongarch_lsx_vssran_wu_d, LSX128WOpnd, LSX128DOpnd, LSX128DOpnd>; ++ ++ ++def VSSRLRN_BU_H : LSX_3R<0b01110001000010001>, ++ LSX_3R_DESC_BASE<"vssrlrn.bu.h", int_loongarch_lsx_vssrlrn_bu_h, LSX128BOpnd, LSX128HOpnd, LSX128HOpnd>; ++ ++def VSSRLRN_HU_W : LSX_3R<0b01110001000010010>, ++ LSX_3R_DESC_BASE<"vssrlrn.hu.w", int_loongarch_lsx_vssrlrn_hu_w, LSX128HOpnd, LSX128WOpnd, LSX128WOpnd>; ++ ++def VSSRLRN_WU_D : LSX_3R<0b01110001000010011>, ++ LSX_3R_DESC_BASE<"vssrlrn.wu.d", int_loongarch_lsx_vssrlrn_wu_d, LSX128WOpnd, LSX128DOpnd, LSX128DOpnd>; ++ ++ ++def VSSRARN_BU_H : LSX_3R<0b01110001000010101>, ++ LSX_3R_DESC_BASE<"vssrarn.bu.h", int_loongarch_lsx_vssrarn_bu_h, LSX128BOpnd, LSX128HOpnd, LSX128HOpnd>; ++ ++def VSSRARN_HU_W : LSX_3R<0b01110001000010110>, ++ LSX_3R_DESC_BASE<"vssrarn.hu.w", int_loongarch_lsx_vssrarn_hu_w, LSX128HOpnd, LSX128WOpnd, LSX128WOpnd>; ++ ++def VSSRARN_WU_D : LSX_3R<0b01110001000010111>, ++ LSX_3R_DESC_BASE<"vssrarn.wu.d", int_loongarch_lsx_vssrarn_wu_d, LSX128WOpnd, LSX128DOpnd, LSX128DOpnd>; ++ ++ ++def VANDN_V : LSX_3R<0b01110001001010000>, ++ LSX_3R_DESC_BASE<"vandn.v", int_loongarch_lsx_vandn_v, LSX128BOpnd>; ++ ++ ++class LSX_VANDN_PSEUDO_BASE : ++ LSXPseudo<(outs RO:$vd), (ins RO:$vj, RO:$vk), ++ []>, ++ PseudoInstExpansion<(VANDN_V LSX128BOpnd:$vd, ++ LSX128BOpnd:$vj, ++ LSX128BOpnd:$vk)>; ++ ++def VANDN_H_PSEUDO : LSX_VANDN_PSEUDO_BASE; ++def VANDN_W_PSEUDO : LSX_VANDN_PSEUDO_BASE; ++def VANDN_D_PSEUDO : LSX_VANDN_PSEUDO_BASE; ++ ++ ++ ++def VORN_V : LSX_3R<0b01110001001010001>, ++ LSX_3R_DESC_BASE<"vorn.v", int_loongarch_lsx_vorn_v, LSX128BOpnd>; ++ ++ ++class LSX_VORN_PSEUDO_BASE : ++ LSXPseudo<(outs RO:$vd), (ins RO:$vj, RO:$vk), ++ []>, ++ PseudoInstExpansion<(VORN_V LSX128BOpnd:$vd, ++ LSX128BOpnd:$vj, ++ LSX128BOpnd:$vk)>; ++ ++def VORN_H_PSEUDO : LSX_VORN_PSEUDO_BASE; ++def VORN_W_PSEUDO : LSX_VORN_PSEUDO_BASE; ++def VORN_D_PSEUDO : LSX_VORN_PSEUDO_BASE; ++ ++ ++def VFRSTP_B : LSX_3R<0b01110001001010110>, ++ LSX_3R_4R_DESC_BASE<"vfrstp.b", int_loongarch_lsx_vfrstp_b, LSX128BOpnd>; ++ ++def VFRSTP_H : LSX_3R<0b01110001001010111>, ++ LSX_3R_4R_DESC_BASE<"vfrstp.h", int_loongarch_lsx_vfrstp_h, LSX128HOpnd>; ++ ++ ++def VADD_Q : LSX_3R<0b01110001001011010>, IsCommutable, ++ LSX_3R_DESC_BASE<"vadd.q", int_loongarch_lsx_vadd_q, LSX128DOpnd>; ++ ++def VSUB_Q : LSX_3R<0b01110001001011011>, ++ LSX_3R_DESC_BASE<"vsub.q", int_loongarch_lsx_vsub_q, LSX128DOpnd>; ++ ++ ++def VSIGNCOV_B : LSX_3R<0b01110001001011100>, ++ LSX_3R_DESC_BASE<"vsigncov.b", int_loongarch_lsx_vsigncov_b, LSX128BOpnd>; ++ ++def VSIGNCOV_H : LSX_3R<0b01110001001011101>, ++ LSX_3R_DESC_BASE<"vsigncov.h", int_loongarch_lsx_vsigncov_h, LSX128HOpnd>; ++ ++def VSIGNCOV_W : LSX_3R<0b01110001001011110>, ++ LSX_3R_DESC_BASE<"vsigncov.w", int_loongarch_lsx_vsigncov_w, LSX128WOpnd>; ++ ++def VSIGNCOV_D : LSX_3R<0b01110001001011111>, ++ LSX_3R_DESC_BASE<"vsigncov.d", int_loongarch_lsx_vsigncov_d, LSX128DOpnd>; ++ ++ ++def VFCVT_H_S : LSX_3R<0b01110001010001100>, ++ LSX_3RF_DESC_BASE<"vfcvt.h.s", int_loongarch_lsx_vfcvt_h_s, LSX128HOpnd, LSX128WOpnd, LSX128WOpnd>; ++ ++def VFCVT_S_D : LSX_3R<0b01110001010001101>, ++ LSX_3RF_DESC_BASE1<"vfcvt.s.d", int_loongarch_lsx_vfcvt_s_d, LSX128WOpnd, LSX128DOpnd, LSX128DOpnd>; ++ ++ ++def VFFINT_S_L : LSX_3R<0b01110001010010000>, ++ LSX_3RF_DESC_BASE<"vffint.s.l", int_loongarch_lsx_vffint_s_l, LSX128WOpnd, LSX128DOpnd, LSX128DOpnd>; ++ ++def VFTINT_W_D : LSX_3R<0b01110001010010011>, ++ LSX_3RF_DESC_BASE<"vftint.w.d", int_loongarch_lsx_vftint_w_d, LSX128WOpnd, LSX128DOpnd, LSX128DOpnd>; ++ ++ ++def VFTINTRZ_W_D : LSX_3R<0b01110001010010110>, ++ LSX_3RF_DESC_BASE<"vftintrz.w.d", int_loongarch_lsx_vftintrz_w_d, LSX128WOpnd, LSX128DOpnd, LSX128DOpnd>; ++ ++def VFTINTRP_W_D : LSX_3R<0b01110001010010101>, ++ LSX_3RF_DESC_BASE<"vftintrp.w.d", int_loongarch_lsx_vftintrp_w_d, LSX128WOpnd, LSX128DOpnd, LSX128DOpnd>; ++ ++def VFTINTRM_W_D : LSX_3R<0b01110001010010100>, ++ LSX_3RF_DESC_BASE<"vftintrm.w.d", int_loongarch_lsx_vftintrm_w_d, LSX128WOpnd, LSX128DOpnd, LSX128DOpnd>; ++ ++def VFTINTRNE_W_D : LSX_3R<0b01110001010010111>, ++ LSX_3RF_DESC_BASE<"vftintrne.w.d", int_loongarch_lsx_vftintrne_w_d, LSX128WOpnd, LSX128DOpnd, LSX128DOpnd>; ++ ++ ++def VBSRL_V : LSX_I5_U<0b01110010100011101>, ++ LSX_U5_DESC_BASE<"vbsrl.v", int_loongarch_lsx_vbsrl_v, LSX128BOpnd>; ++ ++def VBSLL_V : LSX_I5_U<0b01110010100011100>, ++ LSX_U5_DESC_BASE<"vbsll.v", int_loongarch_lsx_vbsll_v, LSX128BOpnd>; ++ ++ ++def VFRSTPI_B : LSX_I5_U<0b01110010100110100>, ++ LSX_U5_4R_DESC_BASE<"vfrstpi.b", int_loongarch_lsx_vfrstpi_b, LSX128BOpnd>; ++ ++def VFRSTPI_H : LSX_I5_U<0b01110010100110101>, ++ LSX_U5_4R_DESC_BASE<"vfrstpi.h", int_loongarch_lsx_vfrstpi_h, LSX128HOpnd>; ++ ++ ++def VNEG_B : LSX_2R<0b0111001010011100001100>, ++ LSX_2R_DESC_BASE<"vneg.b", int_loongarch_lsx_vneg_b, LSX128BOpnd>; ++ ++def VNEG_H : LSX_2R<0b0111001010011100001101>, ++ LSX_2R_DESC_BASE<"vneg.h", int_loongarch_lsx_vneg_h, LSX128HOpnd>; ++ ++def VNEG_W : LSX_2R<0b0111001010011100001110>, ++ LSX_2R_DESC_BASE<"vneg.w", int_loongarch_lsx_vneg_w, LSX128WOpnd>; ++ ++def VNEG_D : LSX_2R<0b0111001010011100001111>, ++ LSX_2R_DESC_BASE<"vneg.d", int_loongarch_lsx_vneg_d, LSX128DOpnd>; ++ ++ ++def VMSKGEZ_B : LSX_2R<0b0111001010011100010100>, ++ LSX_2R_DESC_BASE<"vmskgez.b", int_loongarch_lsx_vmskgez_b, LSX128BOpnd>; ++ ++def VMSKNZ_B : LSX_2R<0b0111001010011100011000>, ++ LSX_2R_DESC_BASE<"vmsknz.b", int_loongarch_lsx_vmsknz_b, LSX128BOpnd>; ++ ++ ++def VFRINTRM_S : LSX_2R<0b0111001010011101010001>, ++ LSX_2RF_DESC_BASE<"vfrintrm.s", int_loongarch_lsx_vfrintrm_s, LSX128WOpnd>; ++ ++def VFRINTRM_D : LSX_2R<0b0111001010011101010010>, ++ LSX_2RF_DESC_BASE<"vfrintrm.d", int_loongarch_lsx_vfrintrm_d, LSX128DOpnd>; ++ ++ ++def VFRINTRP_S : LSX_2R<0b0111001010011101010101>, ++ LSX_2RF_DESC_BASE<"vfrintrp.s", int_loongarch_lsx_vfrintrp_s, LSX128WOpnd>; ++ ++def VFRINTRP_D : LSX_2R<0b0111001010011101010110>, ++ LSX_2RF_DESC_BASE<"vfrintrp.d", int_loongarch_lsx_vfrintrp_d, LSX128DOpnd>; ++ ++ ++def VFRINTRZ_S : LSX_2R<0b0111001010011101011001>, ++ LSX_2RF_DESC_BASE<"vfrintrz.s", int_loongarch_lsx_vfrintrz_s, LSX128WOpnd>; ++ ++def VFRINTRZ_D : LSX_2R<0b0111001010011101011010>, ++ LSX_2RF_DESC_BASE<"vfrintrz.d", int_loongarch_lsx_vfrintrz_d, LSX128DOpnd>; ++ ++ ++def VFRINTRNE_S : LSX_2R<0b0111001010011101011101>, ++ LSX_2RF_DESC_BASE<"vfrintrne.s", int_loongarch_lsx_vfrintrne_s, LSX128WOpnd>; ++ ++def VFRINTRNE_D : LSX_2R<0b0111001010011101011110>, ++ LSX_2RF_DESC_BASE<"vfrintrne.d", int_loongarch_lsx_vfrintrne_d, LSX128DOpnd>; ++ ++ ++def VFFINTL_D_W : LSX_2R<0b0111001010011110000100>, ++ LSX_2RF_DESC_BASE<"vffintl.d.w", int_loongarch_lsx_vffintl_d_w, LSX128DOpnd, LSX128WOpnd>; ++ ++def VFFINTH_D_W : LSX_2R<0b0111001010011110000101>, ++ LSX_2RF_DESC_BASE<"vffinth.d.w", int_loongarch_lsx_vffinth_d_w, LSX128DOpnd, LSX128WOpnd>; ++ ++ ++def VFTINTRM_W_S : LSX_2R<0b0111001010011110001110>, ++ LSX_2RF_DESC_BASE<"vftintrm.w.s", int_loongarch_lsx_vftintrm_w_s, LSX128WOpnd>; ++ ++def VFTINTRM_L_D : LSX_2R<0b0111001010011110001111>, ++ LSX_2RF_DESC_BASE<"vftintrm.l.d", int_loongarch_lsx_vftintrm_l_d, LSX128DOpnd>; ++ ++ ++def VFTINTRP_W_S : LSX_2R<0b0111001010011110010000>, ++ LSX_2RF_DESC_BASE<"vftintrp.w.s", int_loongarch_lsx_vftintrp_w_s, LSX128WOpnd>; ++ ++def VFTINTRP_L_D : LSX_2R<0b0111001010011110010001>, ++ LSX_2RF_DESC_BASE<"vftintrp.l.d", int_loongarch_lsx_vftintrp_l_d, LSX128DOpnd>; ++ ++ ++def VFTINTRZ_W_S : LSX_2R<0b0111001010011110010010>, ++ LSX_2RF_DESC_BASE<"vftintrz.w.s", fp_to_sint, LSX128WOpnd>; ++ ++def VFTINTRZ_L_D : LSX_2R<0b0111001010011110010011>, ++ LSX_2RF_DESC_BASE<"vftintrz.l.d", fp_to_sint, LSX128DOpnd>; ++ ++ ++def VFTINTRNE_W_S : LSX_2R<0b0111001010011110010100>, ++ LSX_2RF_DESC_BASE<"vftintrne.w.s", int_loongarch_lsx_vftintrne_w_s, LSX128WOpnd>; ++ ++def VFTINTRNE_L_D : LSX_2R<0b0111001010011110010101>, ++ LSX_2RF_DESC_BASE<"vftintrne.l.d", int_loongarch_lsx_vftintrne_l_d, LSX128DOpnd>; ++ ++ ++def VFTINTL_L_S : LSX_2R<0b0111001010011110100000>, ++ LSX_2RF_DESC_BASE<"vftintl.l.s", int_loongarch_lsx_vftintl_l_s, LSX128DOpnd, LSX128WOpnd>; ++ ++def VFTINTH_L_S : LSX_2R<0b0111001010011110100001>, ++ LSX_2RF_DESC_BASE<"vftinth.l.s", int_loongarch_lsx_vftinth_l_s, LSX128DOpnd, LSX128WOpnd>; ++ ++ ++def VFTINTRML_L_S : LSX_2R<0b0111001010011110100010>, ++ LSX_2RF_DESC_BASE<"vftintrml.l.s", int_loongarch_lsx_vftintrml_l_s, LSX128DOpnd, LSX128WOpnd>; ++ ++def VFTINTRMH_L_S : LSX_2R<0b0111001010011110100011>, ++ LSX_2RF_DESC_BASE<"vftintrmh.l.s", int_loongarch_lsx_vftintrmh_l_s, LSX128DOpnd, LSX128WOpnd>; ++ ++ ++def VFTINTRPL_L_S : LSX_2R<0b0111001010011110100100>, ++ LSX_2RF_DESC_BASE<"vftintrpl.l.s", int_loongarch_lsx_vftintrpl_l_s, LSX128DOpnd, LSX128WOpnd>; ++ ++def VFTINTRPH_L_S : LSX_2R<0b0111001010011110100101>, ++ LSX_2RF_DESC_BASE<"vftintrph.l.s", int_loongarch_lsx_vftintrph_l_s, LSX128DOpnd, LSX128WOpnd>; ++ ++ ++def VFTINTRZL_L_S : LSX_2R<0b0111001010011110100110>, ++ LSX_2RF_DESC_BASE<"vftintrzl.l.s", int_loongarch_lsx_vftintrzl_l_s, LSX128DOpnd, LSX128WOpnd>; ++ ++def VFTINTRZH_L_S : LSX_2R<0b0111001010011110100111>, ++ LSX_2RF_DESC_BASE<"vftintrzh.l.s", int_loongarch_lsx_vftintrzh_l_s, LSX128DOpnd, LSX128WOpnd>; ++ ++ ++def VFTINTRNEL_L_S : LSX_2R<0b0111001010011110101000>, ++ LSX_2RF_DESC_BASE<"vftintrnel.l.s", int_loongarch_lsx_vftintrnel_l_s, LSX128DOpnd, LSX128WOpnd>; ++ ++def VFTINTRNEH_L_S : LSX_2R<0b0111001010011110101001>, ++ LSX_2RF_DESC_BASE<"vftintrneh.l.s", int_loongarch_lsx_vftintrneh_l_s, LSX128DOpnd, LSX128WOpnd>; ++ ++ ++def VEXTH_H_B : LSX_2R<0b0111001010011110111000>, ++ LSX_2R_DESC_BASE<"vexth.h.b", int_loongarch_lsx_vexth_h_b, LSX128HOpnd, LSX128BOpnd>; ++ ++def VEXTH_W_H : LSX_2R<0b0111001010011110111001>, ++ LSX_2R_DESC_BASE<"vexth.w.h", int_loongarch_lsx_vexth_w_h, LSX128WOpnd, LSX128HOpnd>; ++ ++def VEXTH_D_W : LSX_2R<0b0111001010011110111010>, ++ LSX_2R_DESC_BASE<"vexth.d.w", int_loongarch_lsx_vexth_d_w, LSX128DOpnd, LSX128WOpnd> ; ++ ++def VEXTH_Q_D : LSX_2R<0b0111001010011110111011>, ++ LSX_2R_DESC_BASE<"vexth.q.d", int_loongarch_lsx_vexth_q_d, LSX128DOpnd, LSX128DOpnd>; ++ ++ ++def VEXTH_HU_BU : LSX_2R<0b0111001010011110111100>, ++ LSX_2R_DESC_BASE<"vexth.hu.bu", int_loongarch_lsx_vexth_hu_bu, LSX128HOpnd, LSX128BOpnd>; ++ ++def VEXTH_WU_HU : LSX_2R<0b0111001010011110111101>, ++ LSX_2R_DESC_BASE<"vexth.wu.hu", int_loongarch_lsx_vexth_wu_hu, LSX128WOpnd, LSX128HOpnd>; ++ ++def VEXTH_DU_WU : LSX_2R<0b0111001010011110111110>, ++ LSX_2R_DESC_BASE<"vexth.du.wu", int_loongarch_lsx_vexth_du_wu, LSX128DOpnd, LSX128WOpnd> ; ++ ++def VEXTH_QU_DU : LSX_2R<0b0111001010011110111111>, ++ LSX_2R_DESC_BASE<"vexth.qu.du", int_loongarch_lsx_vexth_qu_du, LSX128DOpnd, LSX128DOpnd>; ++ ++ ++def VSLLWIL_H_B : LSX_I3_U<0b0111001100001000001>, ++ LSX_2R_U3_DESC_BASE<"vsllwil.h.b", int_loongarch_lsx_vsllwil_h_b, LSX128HOpnd, LSX128BOpnd>; ++ ++def VSLLWIL_W_H : LSX_I4_U<0b011100110000100001>, ++ LSX_2R_U4_DESC_BASE<"vsllwil.w.h", int_loongarch_lsx_vsllwil_w_h, LSX128WOpnd, LSX128HOpnd>; ++ ++def VSLLWIL_D_W : LSX_I5_U<0b01110011000010001>, ++ LSX_2R_U5_DESC_BASE<"vsllwil.d.w", int_loongarch_lsx_vsllwil_d_w, LSX128DOpnd, LSX128WOpnd> ; ++ ++ ++def VEXTL_Q_D : LSX_2R<0b0111001100001001000000>, ++ LSX_2R_DESC_BASE<"vextl.q.d", int_loongarch_lsx_vextl_q_d, LSX128DOpnd, LSX128DOpnd>; ++ ++ ++def VSLLWIL_HU_BU : LSX_I3_U<0b0111001100001100001>, ++ LSX_2R_U3_DESC_BASE<"vsllwil.hu.bu", int_loongarch_lsx_vsllwil_hu_bu, LSX128HOpnd, LSX128BOpnd>; ++ ++def VSLLWIL_WU_HU : LSX_I4_U<0b011100110000110001>, ++ LSX_2R_U4_DESC_BASE<"vsllwil.wu.hu", int_loongarch_lsx_vsllwil_wu_hu, LSX128WOpnd, LSX128HOpnd>; ++ ++def VSLLWIL_DU_WU : LSX_I5_U<0b01110011000011001>, ++ LSX_2R_U5_DESC_BASE<"vsllwil.du.wu", int_loongarch_lsx_vsllwil_du_wu, LSX128DOpnd, LSX128WOpnd> ; ++ ++ ++def VEXTL_QU_DU : LSX_2R<0b0111001100001101000000>, ++ LSX_2R_DESC_BASE<"vextl.qu.du", int_loongarch_lsx_vextl_qu_du, LSX128DOpnd, LSX128DOpnd>; ++ ++ ++def VBITCLRI_B : LSX_I3_U<0b0111001100010000001>, ++ LSX_2R_U3_DESC_BASE<"vbitclri.b", int_loongarch_lsx_vbitclri_b, LSX128BOpnd, LSX128BOpnd>; ++ ++def VBITCLRI_H : LSX_I4_U<0b011100110001000001>, ++ LSX_2R_U4_DESC_BASE<"vbitclri.h", int_loongarch_lsx_vbitclri_h, LSX128HOpnd, LSX128HOpnd>; ++ ++def VBITCLRI_W : LSX_I5_U<0b01110011000100001>, ++ LSX_2R_U5_DESC_BASE<"vbitclri.w", int_loongarch_lsx_vbitclri_w, LSX128WOpnd, LSX128WOpnd>; ++ ++def VBITCLRI_D : LSX_I6_U<0b0111001100010001>, ++ LSX_2R_U6_DESC_BASE<"vbitclri.d", int_loongarch_lsx_vbitclri_d, LSX128DOpnd, LSX128DOpnd>; ++ ++ ++def VBITSETI_B : LSX_I3_U<0b0111001100010100001>, ++ LSX_2R_U3_DESC_BASE<"vbitseti.b", int_loongarch_lsx_vbitseti_b, LSX128BOpnd, LSX128BOpnd>; ++ ++def VBITSETI_H : LSX_I4_U<0b011100110001010001>, ++ LSX_2R_U4_DESC_BASE<"vbitseti.h", int_loongarch_lsx_vbitseti_h, LSX128HOpnd, LSX128HOpnd>; ++ ++def VBITSETI_W : LSX_I5_U<0b01110011000101001>, ++ LSX_2R_U5_DESC_BASE<"vbitseti.w", int_loongarch_lsx_vbitseti_w, LSX128WOpnd, LSX128WOpnd>; ++ ++def VBITSETI_D : LSX_I6_U<0b0111001100010101>, ++ LSX_2R_U6_DESC_BASE<"vbitseti.d", int_loongarch_lsx_vbitseti_d, LSX128DOpnd, LSX128DOpnd>; ++ ++ ++def VBITREVI_B : LSX_I3_U<0b0111001100011000001>, ++ LSX_2R_U3_DESC_BASE<"vbitrevi.b", int_loongarch_lsx_vbitrevi_b, LSX128BOpnd, LSX128BOpnd>; ++ ++def VBITREVI_H : LSX_I4_U<0b011100110001100001>, ++ LSX_2R_U4_DESC_BASE<"vbitrevi.h", int_loongarch_lsx_vbitrevi_h, LSX128HOpnd, LSX128HOpnd>; ++ ++def VBITREVI_W : LSX_I5_U<0b01110011000110001>, ++ LSX_2R_U5_DESC_BASE<"vbitrevi.w", int_loongarch_lsx_vbitrevi_w, LSX128WOpnd, LSX128WOpnd>; ++ ++def VBITREVI_D : LSX_I6_U<0b0111001100011001>, ++ LSX_2R_U6_DESC_BASE<"vbitrevi.d", int_loongarch_lsx_vbitrevi_d, LSX128DOpnd, LSX128DOpnd>; ++ ++ ++def VSSRLRNI_B_H : LSX_I4_U<0b011100110101000001>, ++ LSX_2R_3R_U4_DESC_BASE<"vssrlrni.b.h", int_loongarch_lsx_vssrlrni_b_h, LSX128BOpnd, LSX128BOpnd>; ++ ++def VSSRLRNI_H_W : LSX_I5_U<0b01110011010100001>, ++ LSX_2R_3R_U5_DESC_BASE<"vssrlrni.h.w", int_loongarch_lsx_vssrlrni_h_w, LSX128HOpnd, LSX128HOpnd>; ++ ++def VSSRLRNI_W_D : LSX_I6_U<0b0111001101010001>, ++ LSX_2R_3R_U6_DESC_BASE<"vssrlrni.w.d", int_loongarch_lsx_vssrlrni_w_d, LSX128WOpnd, LSX128WOpnd>; ++ ++def VSSRLRNI_D_Q : LSX_I7_U<0b011100110101001>, ++ LSX_2R_3R_U7_DESC_BASE<"vssrlrni.d.q", int_loongarch_lsx_vssrlrni_d_q, LSX128DOpnd, LSX128DOpnd>; ++ ++ ++def VSRANI_B_H : LSX_I4_U<0b011100110101100001>, ++ LSX_2R_3R_U4_DESC_BASE<"vsrani.b.h", int_loongarch_lsx_vsrani_b_h, LSX128BOpnd, LSX128BOpnd>; ++ ++def VSRANI_H_W : LSX_I5_U<0b01110011010110001>, ++ LSX_2R_3R_U5_DESC_BASE<"vsrani.h.w", int_loongarch_lsx_vsrani_h_w, LSX128HOpnd, LSX128HOpnd>; ++ ++def VSRANI_W_D : LSX_I6_U<0b0111001101011001>, ++ LSX_2R_3R_U6_DESC_BASE<"vsrani.w.d", int_loongarch_lsx_vsrani_w_d, LSX128WOpnd, LSX128WOpnd>; ++ ++def VSRANI_D_Q : LSX_I7_U<0b011100110101101>, ++ LSX_2R_3R_U7_DESC_BASE<"vsrani.d.q", int_loongarch_lsx_vsrani_d_q, LSX128DOpnd, LSX128DOpnd>; ++ ++ ++def VEXTRINS_B : LSX_I8_U<0b01110011100011>, ++ LSX_2R_3R_U8_DESC_BASE<"vextrins.b", int_loongarch_lsx_vextrins_b, LSX128BOpnd, LSX128BOpnd>; ++ ++def VEXTRINS_H : LSX_I8_U<0b01110011100010>, ++ LSX_2R_3R_U8_DESC_BASE<"vextrins.h", int_loongarch_lsx_vextrins_h, LSX128HOpnd, LSX128HOpnd>; ++ ++def VEXTRINS_W : LSX_I8_U<0b01110011100001>, ++ LSX_2R_3R_U8_DESC_BASE<"vextrins.w", int_loongarch_lsx_vextrins_w, LSX128WOpnd, LSX128WOpnd>; ++ ++def VEXTRINS_D : LSX_I8_U<0b01110011100000>, ++ LSX_2R_3R_U8_DESC_BASE<"vextrins.d", int_loongarch_lsx_vextrins_d, LSX128DOpnd, LSX128DOpnd>; ++ ++ ++def VBITSELI_B : LSX_I8_U<0b01110011110001>, ++ LSX_2R_3R_U8_DESC_BASE<"vbitseli.b", int_loongarch_lsx_vbitseli_b, LSX128BOpnd, LSX128BOpnd>; ++ ++ ++def VANDI_B : LSX_I8_U<0b01110011110100>, ++ LSX_2R_U8_DESC_BASE<"vandi.b", int_loongarch_lsx_vandi_b, LSX128BOpnd, LSX128BOpnd>; ++ ++ ++def VORI_B : LSX_I8_U<0b01110011110101>, ++ LSX_2R_U8_DESC_BASE<"vori.b", int_loongarch_lsx_vori_b, LSX128BOpnd, LSX128BOpnd>; ++ ++ ++def VXORI_B : LSX_I8_U<0b01110011110110>, ++ LSX_2R_U8_DESC_BASE<"vxori.b", int_loongarch_lsx_vxori_b, LSX128BOpnd, LSX128BOpnd>; ++ ++ ++def VNORI_B : LSX_I8_U<0b01110011110111>, ++ LSX_2R_U8_DESC_BASE<"vnori.b", int_loongarch_lsx_vnori_b, LSX128BOpnd, LSX128BOpnd>; ++ ++ ++def VLDI : LSX_1R_I13<0b01110011111000>, ++ LSX_I13_DESC_BASE<"vldi", int_loongarch_lsx_vldi, i32, simm13Op, LSX128DOpnd>; ++ ++def VLDI_B : LSX_1R_I13_I10<0b01110011111000000>, ++ LSX_I13_DESC_BASE_10<"vldi", LSX128BOpnd>; ++ ++def VLDI_H : LSX_1R_I13_I10<0b01110011111000001>, ++ LSX_I13_DESC_BASE_10<"vldi", LSX128HOpnd>; ++ ++def VLDI_W : LSX_1R_I13_I10<0b01110011111000010>, ++ LSX_I13_DESC_BASE_10<"vldi", LSX128WOpnd>; ++ ++def VLDI_D : LSX_1R_I13_I10<0b01110011111000011>, ++ LSX_I13_DESC_BASE_10<"vldi", LSX128DOpnd>; ++ ++def VPERMI_W : LSX_I8_U<0b01110011111001>, ++ LSX_2R_3R_U8_DESC_BASE<"vpermi.w", int_loongarch_lsx_vpermi_w, LSX128WOpnd, LSX128WOpnd>; ++ ++ ++def VSEQ_B : LSX_3R<0b01110000000000000>, IsCommutable, ++ LSX_3R_DESC_BASE<"vseq.b", vseteq_v16i8, LSX128BOpnd>; ++ ++def VSEQ_H : LSX_3R<0b01110000000000001>, IsCommutable, ++ LSX_3R_DESC_BASE<"vseq.h", vseteq_v8i16, LSX128HOpnd>; ++ ++def VSEQ_W : LSX_3R<0b01110000000000010>, IsCommutable, ++ LSX_3R_DESC_BASE<"vseq.w", vseteq_v4i32, LSX128WOpnd> ; ++ ++def VSEQ_D : LSX_3R<0b01110000000000011>, IsCommutable, ++ LSX_3R_DESC_BASE<"vseq.d", vseteq_v2i64, LSX128DOpnd>; ++ ++ ++def VSLE_B : LSX_3R<0b01110000000000100>, ++ LSX_3R_DESC_BASE<"vsle.b", vsetle_v16i8, LSX128BOpnd>; ++ ++def VSLE_H : LSX_3R<0b01110000000000101>, ++ LSX_3R_DESC_BASE<"vsle.h", vsetle_v8i16, LSX128HOpnd>; ++ ++def VSLE_W : LSX_3R<0b01110000000000110>, ++ LSX_3R_DESC_BASE<"vsle.w", vsetle_v4i32, LSX128WOpnd>; ++ ++def VSLE_D : LSX_3R<0b01110000000000111>, ++ LSX_3R_DESC_BASE<"vsle.d", vsetle_v2i64, LSX128DOpnd>; ++ ++ ++def VSLE_BU : LSX_3R<0b01110000000001000>, ++ LSX_3R_DESC_BASE<"vsle.bu", vsetule_v16i8, LSX128BOpnd>; ++ ++def VSLE_HU : LSX_3R<0b01110000000001001>, ++ LSX_3R_DESC_BASE<"vsle.hu", vsetule_v8i16, LSX128HOpnd>; ++ ++def VSLE_WU : LSX_3R<0b01110000000001010>, ++ LSX_3R_DESC_BASE<"vsle.wu", vsetule_v4i32, LSX128WOpnd>; ++ ++def VSLE_DU : LSX_3R<0b01110000000001011>, ++ LSX_3R_DESC_BASE<"vsle.du", vsetule_v2i64, LSX128DOpnd>; ++ ++ ++def VSLT_B : LSX_3R<0b01110000000001100>, ++ LSX_3R_DESC_BASE<"vslt.b", vsetlt_v16i8, LSX128BOpnd>; ++ ++def VSLT_H : LSX_3R<0b01110000000001101>, ++ LSX_3R_DESC_BASE<"vslt.h", vsetlt_v8i16, LSX128HOpnd>; ++ ++def VSLT_W : LSX_3R<0b01110000000001110>, ++ LSX_3R_DESC_BASE<"vslt.w", vsetlt_v4i32, LSX128WOpnd>; ++ ++def VSLT_D : LSX_3R<0b01110000000001111>, ++ LSX_3R_DESC_BASE<"vslt.d", vsetlt_v2i64, LSX128DOpnd>; ++ ++ ++def VSLT_BU : LSX_3R<0b01110000000010000>, ++ LSX_3R_DESC_BASE<"vslt.bu", vsetult_v16i8, LSX128BOpnd>; ++ ++def VSLT_HU : LSX_3R<0b01110000000010001>, ++ LSX_3R_DESC_BASE<"vslt.hu", vsetult_v8i16, LSX128HOpnd>; ++ ++def VSLT_WU : LSX_3R<0b01110000000010010>, ++ LSX_3R_DESC_BASE<"vslt.wu", vsetult_v4i32, LSX128WOpnd>; ++ ++def VSLT_DU : LSX_3R<0b01110000000010011>, ++ LSX_3R_DESC_BASE<"vslt.du", vsetult_v2i64, LSX128DOpnd>; ++ ++ ++def VADD_B : LSX_3R<0b01110000000010100>, IsCommutable, ++ LSX_3R_DESC_BASE<"vadd.b", add, LSX128BOpnd>; ++ ++def VADD_H : LSX_3R<0b01110000000010101>, IsCommutable, ++ LSX_3R_DESC_BASE<"vadd.h", add, LSX128HOpnd>; ++ ++def VADD_W : LSX_3R<0b01110000000010110>, IsCommutable, ++ LSX_3R_DESC_BASE<"vadd.w", add, LSX128WOpnd>; ++ ++def VADD_D : LSX_3R<0b01110000000010111>, IsCommutable, ++ LSX_3R_DESC_BASE<"vadd.d", add, LSX128DOpnd>; ++ ++ ++def VSUB_B : LSX_3R<0b01110000000011000>, ++ LSX_3R_DESC_BASE<"vsub.b", sub, LSX128BOpnd>; ++ ++def VSUB_H : LSX_3R<0b01110000000011001>, ++ LSX_3R_DESC_BASE<"vsub.h", sub, LSX128HOpnd>; ++ ++def VSUB_W : LSX_3R<0b01110000000011010>, ++ LSX_3R_DESC_BASE<"vsub.w", sub, LSX128WOpnd>; ++ ++def VSUB_D : LSX_3R<0b01110000000011011>, ++ LSX_3R_DESC_BASE<"vsub.d", sub, LSX128DOpnd>; ++ ++ ++ ++//Pat ++class LSXBitconvertPat preds = [HasLSX]> : ++ LSXPat<(DstVT (bitconvert SrcVT:$src)), ++ (COPY_TO_REGCLASS SrcVT:$src, DstRC), preds>; ++ ++def : LSXBitconvertPat; ++def : LSXBitconvertPat; ++def : LSXBitconvertPat; ++def : LSXBitconvertPat; ++ ++def : LSXBitconvertPat; ++def : LSXBitconvertPat; ++def : LSXBitconvertPat; ++def : LSXBitconvertPat; ++def : LSXBitconvertPat; ++ ++def : LSXBitconvertPat; ++def : LSXBitconvertPat; ++def : LSXBitconvertPat; ++def : LSXBitconvertPat; ++def : LSXBitconvertPat; ++ ++def : LSXBitconvertPat; ++def : LSXBitconvertPat; ++def : LSXBitconvertPat; ++def : LSXBitconvertPat; ++ ++def : LSXBitconvertPat; ++def : LSXBitconvertPat; ++def : LSXBitconvertPat; ++def : LSXBitconvertPat; ++ ++def : LSXBitconvertPat; ++def : LSXBitconvertPat; ++def : LSXBitconvertPat; ++def : LSXBitconvertPat; ++ ++def : LSXBitconvertPat; ++def : LSXBitconvertPat; ++def : LSXBitconvertPat; ++def : LSXBitconvertPat; ++ ++ ++ ++ ++def : LSXPat<(i32 (vextract_sext_i8 v16i8:$vj, i32:$idx)), ++ (SRAI_W (COPY_TO_REGCLASS (i32 (EXTRACT_SUBREG (VREPLVE_B v16i8:$vj, ++ i32:$idx), ++ sub_lo)), ++ GPR32), (i32 24))>; ++def : LSXPat<(i32 (vextract_sext_i16 v8i16:$vj, i32:$idx)), ++ (SRAI_W (COPY_TO_REGCLASS (i32 (EXTRACT_SUBREG (VREPLVE_H v8i16:$vj, ++ i32:$idx), ++ sub_lo)), ++ GPR32), (i32 16))>; ++def : LSXPat<(i32 (vextract_sext_i32 v4i32:$vj, i32:$idx)), ++ (COPY_TO_REGCLASS (i32 (EXTRACT_SUBREG (VREPLVE_W v4i32:$vj, ++ i32:$idx), ++ sub_lo)), ++ GPR32)>; ++def : LSXPat<(i64 (vextract_sext_i64 v2i64:$vj, i32:$idx)), ++ (COPY_TO_REGCLASS (i64 (EXTRACT_SUBREG (VREPLVE_D v2i64:$vj, ++ i32:$idx), ++ sub_64)), ++ GPR64)>; ++ ++def : LSXPat<(i32 (vextract_zext_i8 v16i8:$vj, i32:$idx)), ++ (SRLI_W (COPY_TO_REGCLASS (i32 (EXTRACT_SUBREG (VREPLVE_B v16i8:$vj, ++ i32:$idx), ++ sub_lo)), ++ GPR32), (i32 24))>; ++def : LSXPat<(i32 (vextract_zext_i16 v8i16:$vj, i32:$idx)), ++ (SRLI_W (COPY_TO_REGCLASS (i32 (EXTRACT_SUBREG (VREPLVE_H v8i16:$vj, ++ i32:$idx), ++ sub_lo)), ++ GPR32), (i32 16))>; ++def : LSXPat<(i32 (vextract_zext_i32 v4i32:$vj, i32:$idx)), ++ (COPY_TO_REGCLASS (i32 (EXTRACT_SUBREG (VREPLVE_W v4i32:$vj, ++ i32:$idx), ++ sub_lo)), ++ GPR32)>; ++ ++def : LSXPat<(i64 (vextract_zext_i64 v2i64:$vj, i32:$idx)), ++ (COPY_TO_REGCLASS (i64 (EXTRACT_SUBREG (VREPLVE_D v2i64:$vj, ++ i32:$idx), ++ sub_64)), ++ GPR64)>; ++ ++def : LSXPat<(f32 (vector_extract v4f32:$vj, i32:$idx)), ++ (f32 (EXTRACT_SUBREG (VREPLVE_W v4f32:$vj, ++ i32:$idx), ++ sub_lo))>; ++def : LSXPat<(f64 (vector_extract v2f64:$vj, i32:$idx)), ++ (f64 (EXTRACT_SUBREG (VREPLVE_D v2f64:$vj, ++ i32:$idx), ++ sub_64))>; ++ ++def : LSXPat< ++ (i32 (vextract_sext_i8 v16i8:$vj, i64:$idx)), ++ (SRAI_W (COPY_TO_REGCLASS ++ (i32 (EXTRACT_SUBREG ++ (VREPLVE_B v16i8:$vj, ++ (COPY_TO_REGCLASS ++ (i32 (EXTRACT_SUBREG i64:$idx, sub_32)), GPR32)), ++ sub_lo)), ++ GPR32), ++ (i32 24))>; ++def : LSXPat< ++ (i32 (vextract_sext_i16 v8i16:$vj, i64:$idx)), ++ (SRAI_W (COPY_TO_REGCLASS ++ (i32 (EXTRACT_SUBREG ++ (VREPLVE_H v8i16:$vj, ++ (COPY_TO_REGCLASS ++ (i32 (EXTRACT_SUBREG i64:$idx, sub_32)), GPR32)), ++ sub_lo)), ++ GPR32), ++ (i32 16))>; ++ ++def : LSXPat< ++ (i32 (vextract_sext_i32 v4i32:$vj, i64:$idx)), ++ (COPY_TO_REGCLASS ++ (i32 (EXTRACT_SUBREG ++ (VREPLVE_W v4i32:$vj, ++ (COPY_TO_REGCLASS ++ (i32 (EXTRACT_SUBREG i64:$idx, sub_32)), GPR32)), ++ sub_lo)), ++ GPR32)>; ++ ++def : LSXPat< ++ (i64 (vextract_sext_i64 v2i64:$vj, i64:$idx)), ++ (COPY_TO_REGCLASS ++ (i64 (EXTRACT_SUBREG ++ (VREPLVE_D v2i64:$vj, ++ (COPY_TO_REGCLASS (i32 (EXTRACT_SUBREG i64:$idx, sub_32)), GPR32)), ++ sub_64)), ++ GPR64)>; ++ ++def : LSXPat< ++ (i32 (vextract_zext_i8 v16i8:$vj, i64:$idx)), ++ (SRLI_W (COPY_TO_REGCLASS ++ (i32 (EXTRACT_SUBREG ++ (VREPLVE_B v16i8:$vj, ++ (COPY_TO_REGCLASS ++ (i32 (EXTRACT_SUBREG i64:$idx, sub_32)), GPR32)), ++ sub_lo)), ++ GPR32), ++ (i32 24))>; ++def : LSXPat< ++ (i32 (vextract_zext_i16 v8i16:$vj, i64:$idx)), ++ (SRLI_W (COPY_TO_REGCLASS ++ (i32 (EXTRACT_SUBREG ++ (VREPLVE_H v8i16:$vj, ++ (COPY_TO_REGCLASS ++ (i32 (EXTRACT_SUBREG i64:$idx, sub_32)), GPR32)), ++ sub_lo)), ++ GPR32), ++ (i32 16))>; ++def : LSXPat< ++ (i32 (vextract_zext_i32 v4i32:$vj, i64:$idx)), ++ (COPY_TO_REGCLASS ++ (i32 (EXTRACT_SUBREG ++ (VREPLVE_W v4i32:$vj, ++ (COPY_TO_REGCLASS (i32 (EXTRACT_SUBREG i64:$idx, sub_32)), GPR32)), ++ sub_lo)), ++ GPR32)>; ++def : LSXPat< ++ (i64 (vextract_zext_i64 v2i64:$vj, i64:$idx)), ++ (COPY_TO_REGCLASS ++ (i64 (EXTRACT_SUBREG ++ (VREPLVE_D v2i64:$vj, ++ (COPY_TO_REGCLASS (i32 (EXTRACT_SUBREG i64:$idx, sub_32)), GPR32)), ++ sub_64)), ++ GPR64)>; ++ ++ def : LSXPat< ++ (f32 (vector_extract v4f32:$vj, i64:$idx)), ++ (f32 (EXTRACT_SUBREG ++ (VREPLVE_W v4f32:$vj, ++ (COPY_TO_REGCLASS (i32 (EXTRACT_SUBREG i64:$idx, sub_32)), GPR32)), ++ sub_lo))>; ++def : LSXPat< ++ (f64 (vector_extract v2f64:$vj, i64:$idx)), ++ (f64 (EXTRACT_SUBREG ++ (VREPLVE_D v2f64:$vj, ++ (COPY_TO_REGCLASS (i32 (EXTRACT_SUBREG i64:$idx, sub_32)), GPR32)), ++ sub_64))>; ++ ++ ++def : LSXPat<(vfseteq_v4f32 LSX128WOpnd:$a, LSX128WOpnd:$b), ++ (VFCMP_CEQ_S LSX128WOpnd:$a, LSX128WOpnd:$b)>; ++ ++def : LSXPat<(vfseteq_v2f64 LSX128DOpnd:$a, LSX128DOpnd:$b), ++ (VFCMP_CEQ_D LSX128DOpnd:$a, LSX128DOpnd:$b)>; ++ ++def : LSXPat<(vfsetle_v4f32 LSX128WOpnd:$a, LSX128WOpnd:$b), ++ (VFCMP_CLE_S LSX128WOpnd:$a, LSX128WOpnd:$b)>; ++ ++def : LSXPat<(vfsetle_v2f64 LSX128DOpnd:$a, LSX128DOpnd:$b), ++ (VFCMP_CLE_D LSX128DOpnd:$a, LSX128DOpnd:$b)>; ++ ++def : LSXPat<(vfsetlt_v4f32 LSX128WOpnd:$a, LSX128WOpnd:$b), ++ (VFCMP_CLT_S LSX128WOpnd:$a, LSX128WOpnd:$b)>; ++ ++def : LSXPat<(vfsetlt_v2f64 LSX128DOpnd:$a, LSX128DOpnd:$b), ++ (VFCMP_CLT_D LSX128DOpnd:$a, LSX128DOpnd:$b)>; ++ ++def : LSXPat<(vfsetne_v4f32 LSX128WOpnd:$a, LSX128WOpnd:$b), ++ (VFCMP_CNE_S LSX128WOpnd:$a, LSX128WOpnd:$b)>; ++ ++def : LSXPat<(vfsetne_v2f64 LSX128DOpnd:$a, LSX128DOpnd:$b), ++ (VFCMP_CNE_D LSX128DOpnd:$a, LSX128DOpnd:$b)>; ++ ++ ++class LSX_INSERT_PSEUDO_BASE : ++ LSXPseudo<(outs ROVD:$vd), (ins ROVD:$vd_in, ImmOp:$n, ROFS:$fs), ++ [(set ROVD:$vd, (OpNode (Ty ROVD:$vd_in), ROFS:$fs, Imm:$n))]> { ++ bit usesCustomInserter = 1; ++ string Constraints = "$vd = $vd_in"; ++} ++ ++ ++class INSERT_FW_PSEUDO_DESC : LSX_INSERT_PSEUDO_BASE; ++class INSERT_FD_PSEUDO_DESC : LSX_INSERT_PSEUDO_BASE; ++ ++def INSERT_FW_PSEUDO : INSERT_FW_PSEUDO_DESC; ++def INSERT_FD_PSEUDO : INSERT_FD_PSEUDO_DESC; ++ ++ ++class LSX_INSERT_VIDX_PSEUDO_BASE : ++ LSXPseudo<(outs ROVD:$vd), (ins ROVD:$vd_in, ROIdx:$n, ROFS:$fs), ++ [(set ROVD:$vd, (OpNode (Ty ROVD:$vd_in), ROFS:$fs, ++ ROIdx:$n))]> { ++ bit usesCustomInserter = 1; ++ string Constraints = "$vd = $vd_in"; ++} ++ ++class INSERT_H_VIDX64_PSEUDO_DESC : ++ LSX_INSERT_VIDX_PSEUDO_BASE; ++def INSERT_H_VIDX64_PSEUDO : INSERT_H_VIDX64_PSEUDO_DESC; ++ ++class INSERTPostRA : ++ LoongArchPseudo<(outs RC:$xd), (ins RC:$xd_in, RD:$n, RE:$fs), []> { ++ let mayLoad = 1; ++ let mayStore = 1; ++} ++ ++def INSERT_H_VIDX64_PSEUDO_POSTRA : INSERTPostRA; ++ ++class LSX_COPY_PSEUDO_BASE : ++ LSXPseudo<(outs RCD:$vd), (ins RCVS:$vj, ImmOp:$n), ++ [(set RCD:$vd, (OpNode (VecTy RCVS:$vj), Imm:$n))]> { ++ bit usesCustomInserter = 1; ++} ++ ++ ++class COPY_FW_PSEUDO_DESC : LSX_COPY_PSEUDO_BASE; ++class COPY_FD_PSEUDO_DESC : LSX_COPY_PSEUDO_BASE; ++def COPY_FW_PSEUDO : COPY_FW_PSEUDO_DESC; ++def COPY_FD_PSEUDO : COPY_FD_PSEUDO_DESC; ++ ++ ++let isCodeGenOnly = 1 in { ++ ++def VST_H : LSX_I12_S<0b0010110001>, ++ ST_DESC_BASE<"vst", store, v8i16, LSX128HOpnd, mem_simm12>; ++def VST_W : LSX_I12_S<0b0010110001>, ++ ST_DESC_BASE<"vst", store, v4i32, LSX128WOpnd, mem_simm12>; ++def VST_D : LSX_I12_S<0b0010110001>, ++ ST_DESC_BASE<"vst", store, v2i64, LSX128DOpnd, mem_simm12>; ++ ++ ++def VLD_H : LSX_I12_S<0b0010110000>, ++ LD_DESC_BASE<"vld", load, v8i16, LSX128HOpnd, mem_simm12>; ++def VLD_W : LSX_I12_S<0b0010110000>, ++ LD_DESC_BASE<"vld", load, v4i32, LSX128WOpnd, mem_simm12>; ++def VLD_D : LSX_I12_S<0b0010110000>, ++ LD_DESC_BASE<"vld", load, v2i64, LSX128DOpnd, mem_simm12>; ++ ++ ++ ++def VANDI_B_N : LSX_I8_U<0b01110011110100>, ++ LSX_BIT_U8_VREPLVE_DESC_BASE<"vandi.b", and, vsplati8_uimm8, LSX128BOpnd>; ++ ++ ++def VXORI_B_N : LSX_I8_U<0b01110011110110>, ++ LSX_BIT_U8_VREPLVE_DESC_BASE<"vxori.b", xor, vsplati8_uimm8, LSX128BOpnd>; ++ ++ ++def VSRAI_B_N : LSX_I3_U<0b0111001100110100001>, ++ LSX_BIT_U3_VREPLVE_DESC_BASE<"vsrai.b", sra, vsplati8_uimm3, LSX128BOpnd>; ++ ++def VSRAI_H_N : LSX_I4_U<0b011100110011010001>, ++ LSX_BIT_U4_VREPLVE_DESC_BASE<"vsrai.h", sra, vsplati16_uimm4, LSX128HOpnd>; ++ ++def VSRAI_W_N : LSX_I5_U<0b01110011001101001>, ++ LSX_BIT_U5_VREPLVE_DESC_BASE<"vsrai.w", sra, vsplati32_uimm5, LSX128WOpnd>; ++ ++def VSRAI_D_N : LSX_I6_U<0b0111001100110101>, ++ LSX_BIT_U6_VREPLVE_DESC_BASE<"vsrai.d", sra, vsplati64_uimm6, LSX128DOpnd>; ++ ++ ++def VMAXI_BU_N : LSX_I5_U<0b01110010100101000>, ++ LSX_I5_U_DESC_BASE<"vmaxi.bu", umax, vsplati8_uimm5, LSX128BOpnd>; ++ ++def VMAXI_HU_N : LSX_I5_U<0b01110010100101001>, ++ LSX_I5_U_DESC_BASE<"vmaxi.hu", umax, vsplati16_uimm5, LSX128HOpnd>; ++ ++def VMAXI_WU_N : LSX_I5_U<0b01110010100101010>, ++ LSX_I5_U_DESC_BASE<"vmaxi.wu", umax, vsplati32_uimm5, LSX128WOpnd>; ++ ++def VMAXI_DU_N : LSX_I5_U<0b01110010100101011>, ++ LSX_I5_U_DESC_BASE<"vmaxi.du", umax, vsplati64_uimm5, LSX128DOpnd>; ++ ++ ++def VMINI_B_N : LSX_I5<0b01110010100100100>, ++ LSX_I5_DESC_BASE<"vmini.b", smin, vsplati8_simm5, LSX128BOpnd>; ++ ++def VMINI_H_N : LSX_I5<0b01110010100100101>, ++ LSX_I5_DESC_BASE<"vmini.h", smin, vsplati16_simm5, LSX128HOpnd>; ++ ++def VMINI_W_N : LSX_I5<0b01110010100100110>, ++ LSX_I5_DESC_BASE<"vmini.w", smin, vsplati32_simm5, LSX128WOpnd>; ++ ++def VMINI_D_N : LSX_I5<0b01110010100100111>, ++ LSX_I5_DESC_BASE<"vmini.d", smin, vsplati64_simm5, LSX128DOpnd>; ++ ++ ++def VMAXI_B_N : LSX_I5<0b01110010100100000>, ++ LSX_I5_DESC_BASE<"vmaxi.b", smax, vsplati8_simm5, LSX128BOpnd>; ++ ++def VMAXI_H_N : LSX_I5<0b01110010100100001>, ++ LSX_I5_DESC_BASE<"vmaxi.h", smax, vsplati16_simm5, LSX128HOpnd>; ++ ++def VMAXI_W_N : LSX_I5<0b01110010100100010>, ++ LSX_I5_DESC_BASE<"vmaxi.w", smax, vsplati32_simm5, LSX128WOpnd>; ++ ++def VMAXI_D_N : LSX_I5<0b01110010100100011>, ++ LSX_I5_DESC_BASE<"vmaxi.d", smax, vsplati64_simm5, LSX128DOpnd>; ++ ++ ++def VSEQI_B_N : LSX_I5<0b01110010100000000>, ++ LSX_I5_DESC_BASE<"vseqi.b", vseteq_v16i8, vsplati8_simm5, LSX128BOpnd>; ++ ++def VSEQI_H_N : LSX_I5<0b01110010100000001>, ++ LSX_I5_DESC_BASE<"vseqi.h", vseteq_v8i16, vsplati16_simm5, LSX128HOpnd>; ++ ++def VSEQI_W_N : LSX_I5<0b01110010100000010>, ++ LSX_I5_DESC_BASE<"vseqi.w", vseteq_v4i32, vsplati32_simm5, LSX128WOpnd>; ++ ++def VSEQI_D_N : LSX_I5<0b01110010100000011>, ++ LSX_I5_DESC_BASE<"vseqi.d", vseteq_v2i64, vsplati64_simm5, LSX128DOpnd>; ++ ++ ++def VSLEI_B_N : LSX_I5<0b01110010100000100>, ++ LSX_I5_DESC_BASE<"vslei.b", vsetle_v16i8, vsplati8_simm5, LSX128BOpnd>; ++ ++def VSLEI_H_N : LSX_I5<0b01110010100000101>, ++ LSX_I5_DESC_BASE<"vslei.h", vsetle_v8i16, vsplati16_simm5, LSX128HOpnd>; ++ ++def VSLEI_W_N : LSX_I5<0b01110010100000110>, ++ LSX_I5_DESC_BASE<"vslei.w", vsetle_v4i32, vsplati32_simm5, LSX128WOpnd>; ++ ++def VSLEI_D_N : LSX_I5<0b01110010100000111>, ++ LSX_I5_DESC_BASE<"vslei.d", vsetle_v2i64, vsplati64_simm5, LSX128DOpnd>; ++ ++def VSLEI_BU_N : LSX_I5_U<0b01110010100001000>, ++ LSX_I5_U_DESC_BASE<"vslei.bu", vsetule_v16i8, vsplati8_uimm5, LSX128BOpnd>; ++ ++def VSLEI_HU_N : LSX_I5_U<0b01110010100001001>, ++ LSX_I5_U_DESC_BASE<"vslei.hu", vsetule_v8i16, vsplati16_uimm5, LSX128HOpnd>; ++ ++def VSLEI_WU_N : LSX_I5_U<0b01110010100001010>, ++ LSX_I5_U_DESC_BASE<"vslei.wu", vsetule_v4i32, vsplati32_uimm5, LSX128WOpnd>; ++ ++def VSLEI_DU_N : LSX_I5_U<0b01110010100001011>, ++ LSX_I5_U_DESC_BASE<"vslei.du", vsetule_v2i64, vsplati64_uimm5, LSX128DOpnd>; ++ ++ ++def VSLTI_B_N : LSX_I5<0b01110010100001100>, ++ LSX_I5_DESC_BASE<"vslti.b", vsetlt_v16i8, vsplati8_simm5, LSX128BOpnd>; ++ ++def VSLTI_H_N : LSX_I5<0b01110010100001101>, ++ LSX_I5_DESC_BASE<"vslti.h", vsetlt_v8i16, vsplati16_simm5, LSX128HOpnd>; ++ ++def VSLTI_W_N : LSX_I5<0b01110010100001110>, ++ LSX_I5_DESC_BASE<"vslti.w", vsetlt_v4i32, vsplati32_simm5, LSX128WOpnd>; ++ ++def VSLTI_D_N : LSX_I5<0b01110010100001111>, ++ LSX_I5_DESC_BASE<"vslti.d", vsetlt_v2i64, vsplati64_simm5, LSX128DOpnd>; ++ ++ ++def VSLTI_BU_N : LSX_I5_U<0b01110010100010000>, ++ LSX_I5_U_DESC_BASE<"vslti.bu", vsetult_v16i8, vsplati8_uimm5, LSX128BOpnd>; ++ ++def VSLTI_HU_N : LSX_I5_U<0b01110010100010001>, ++ LSX_I5_U_DESC_BASE<"vslti.hu", vsetult_v8i16, vsplati16_uimm5, LSX128HOpnd>; ++ ++def VSLTI_WU_N : LSX_I5_U<0b01110010100010010>, ++ LSX_I5_U_DESC_BASE<"vslti.wu", vsetult_v4i32, vsplati32_uimm5, LSX128WOpnd>; ++ ++def VSLTI_DU_N : LSX_I5_U<0b01110010100010011>, ++ LSX_I5_U_DESC_BASE<"vslti.du", vsetult_v2i64, vsplati64_uimm5, LSX128DOpnd>; ++ ++ ++def VBITSELI_B_N : LSX_I8_U<0b01110011110001>, ++ LSX_2R_3R_SELECT<"vbitseli.b", vselect, LSX128BOpnd, LSX128BOpnd>; ++ ++} ++ ++ ++def : LSXPat<(v4f32 (load addrimm12:$addr)), (VLD_W addrimm12:$addr)>; ++def : LSXPat<(v2f64 (load addrimm12:$addr)), (VLD_D addrimm12:$addr)>; ++ ++def VST_FW : LSXPat<(store (v4f32 LSX128W:$vj), addrimm12:$addr), ++ (VST_W LSX128W:$vj, addrimm12:$addr)>; ++def VST_FD : LSXPat<(store (v2f64 LSX128D:$vj), addrimm12:$addr), ++ (VST_D LSX128D:$vj, addrimm12:$addr)>; ++ ++def VNEG_FW : LSXPat<(fneg (v4f32 LSX128W:$vj)), ++ (VBITREVI_W LSX128W:$vj, 31)>; ++def VNEG_FD : LSXPat<(fneg (v2f64 LSX128D:$vj)), ++ (VBITREVI_D LSX128D:$vj, 63)>; ++ ++ ++def : LSXPat<(v2i64 (LoongArchVABSD v2i64:$vj, v2i64:$vk, (i32 0))), ++ (v2i64 (VABSD_D $vj, $vk))>; ++ ++def : LSXPat<(v4i32 (LoongArchVABSD v4i32:$vj, v4i32:$vk, (i32 0))), ++ (v4i32 (VABSD_W $vj, $vk))>; ++ ++def : LSXPat<(v8i16 (LoongArchVABSD v8i16:$vj, v8i16:$vk, (i32 0))), ++ (v8i16 (VABSD_H $vj, $vk))>; ++ ++def : LSXPat<(v16i8 (LoongArchVABSD v16i8:$vj, v16i8:$vk, (i32 0))), ++ (v16i8 (VABSD_B $vj, $vk))>; ++ ++def : LSXPat<(v2i64 (LoongArchUVABSD v2i64:$vj, v2i64:$vk, (i32 0))), ++ (v2i64 (VABSD_DU $vj, $vk))>; ++ ++def : LSXPat<(v4i32 (LoongArchUVABSD v4i32:$vj, v4i32:$vk, (i32 0))), ++ (v4i32 (VABSD_WU $vj, $vk))>; ++ ++def : LSXPat<(v8i16 (LoongArchUVABSD v8i16:$vj, v8i16:$vk, (i32 0))), ++ (v8i16 (VABSD_HU $vj, $vk))>; ++ ++def : LSXPat<(v16i8 (LoongArchUVABSD v16i8:$vj, v16i8:$vk, (i32 0))), ++ (v16i8 (VABSD_BU $vj, $vk))>; ++ ++ ++def : LSXPat<(or v16i8:$vj, (shl vsplat_imm_eq_1, v16i8:$vk)), ++ (VBITSET_B v16i8:$vj, v16i8:$vk)>; ++def : LSXPat<(or v8i16:$vj, (shl vsplat_imm_eq_1, v8i16:$vk)), ++ (VBITSET_H v8i16:$vj, v8i16:$vk)>; ++def : LSXPat<(or v4i32:$vj, (shl vsplat_imm_eq_1, v4i32:$vk)), ++ (VBITSET_W v4i32:$vj, v4i32:$vk)>; ++def : LSXPat<(or v2i64:$vj, (shl vsplat_imm_eq_1, v2i64:$vk)), ++ (VBITSET_D v2i64:$vj, v2i64:$vk)>; ++ ++def : LSXPat<(xor v16i8:$vj, (shl vsplat_imm_eq_1, v16i8:$vk)), ++ (VBITREV_B v16i8:$vj, v16i8:$vk)>; ++def : LSXPat<(xor v8i16:$vj, (shl vsplat_imm_eq_1, v8i16:$vk)), ++ (VBITREV_H v8i16:$vj, v8i16:$vk)>; ++def : LSXPat<(xor v4i32:$vj, (shl vsplat_imm_eq_1, v4i32:$vk)), ++ (VBITREV_W v4i32:$vj, v4i32:$vk)>; ++def : LSXPat<(xor v2i64:$vj, (shl (v2i64 vsplati64_imm_eq_1), v2i64:$vk)), ++ (VBITREV_D v2i64:$vj, v2i64:$vk)>; ++ ++def : LSXPat<(and v16i8:$vj, (xor (shl vsplat_imm_eq_1, v16i8:$vk), immAllOnesV)), ++ (VBITCLR_B v16i8:$vj, v16i8:$vk)>; ++def : LSXPat<(and v8i16:$vj, (xor (shl vsplat_imm_eq_1, v8i16:$vk), immAllOnesV)), ++ (VBITCLR_H v8i16:$vj, v8i16:$vk)>; ++def : LSXPat<(and v4i32:$vj, (xor (shl vsplat_imm_eq_1, v4i32:$vk), immAllOnesV)), ++ (VBITCLR_W v4i32:$vj, v4i32:$vk)>; ++def : LSXPat<(and v2i64:$vj, (xor (shl (v2i64 vsplati64_imm_eq_1), v2i64:$vk), (bitconvert (v4i32 immAllOnesV)))), ++ (VBITCLR_D v2i64:$vj, v2i64:$vk)>; ++def vsplati64_imm_eq_63 : PatLeaf<(bitconvert (v4i32 (build_vector))), [{ ++ APInt Imm; ++ SDNode *BV = N->getOperand(0).getNode(); ++ EVT EltTy = N->getValueType(0).getVectorElementType(); ++ ++ return selectVSplat(BV, Imm, EltTy.getSizeInBits()) && ++ Imm.getBitWidth() == EltTy.getSizeInBits() && Imm == 63; ++}]>; ++ ++def immi32Cst7 : ImmLeaf(Imm) && Imm == 7;}]>; ++def immi32Cst15 : ImmLeaf(Imm) && Imm == 15;}]>; ++def immi32Cst31 : ImmLeaf(Imm) && Imm == 31;}]>; ++ ++def vsplati8imm7 : PatFrag<(ops node:$vt), ++ (and node:$vt, (vsplati8 immi32Cst7))>; ++def vsplati16imm15 : PatFrag<(ops node:$vt), ++ (and node:$vt, (vsplati16 immi32Cst15))>; ++def vsplati32imm31 : PatFrag<(ops node:$vt), ++ (and node:$vt, (vsplati32 immi32Cst31))>; ++def vsplati64imm63 : PatFrag<(ops node:$vt), ++ (and node:$vt, vsplati64_imm_eq_63)>; ++ ++class LSXShiftPat : ++ LSXPat<(VT (Node VT:$vs, (VT (and VT:$vt, Vec)))), ++ (VT (Insn VT:$vs, VT:$vt))>; ++ ++class LSXBitPat : ++ LSXPat<(VT (Node VT:$vs, (shl vsplat_imm_eq_1, (Frag VT:$vt)))), ++ (VT (Insn VT:$vs, VT:$vt))>; ++ ++multiclass LSXShiftPats { ++ def : LSXShiftPat(Insn#_B), ++ (vsplati8 immi32Cst7)>; ++ def : LSXShiftPat(Insn#_H), ++ (vsplati16 immi32Cst15)>; ++ def : LSXShiftPat(Insn#_W), ++ (vsplati32 immi32Cst31)>; ++ def : LSXPat<(v2i64 (Node v2i64:$vs, (v2i64 (and v2i64:$vt, ++ vsplati64_imm_eq_63)))), ++ (v2i64 (!cast(Insn#_D) v2i64:$vs, v2i64:$vt))>; ++} ++ ++multiclass LSXBitPats { ++ def : LSXBitPat(Insn#_B), vsplati8imm7>; ++ def : LSXBitPat(Insn#_H), vsplati16imm15>; ++ def : LSXBitPat(Insn#_W), vsplati32imm31>; ++ def : LSXPat<(Node v2i64:$vs, (shl (v2i64 vsplati64_imm_eq_1), ++ (vsplati64imm63 v2i64:$vt))), ++ (v2i64 (!cast(Insn#_D) v2i64:$vs, v2i64:$vt))>; ++} ++ ++defm : LSXShiftPats; ++defm : LSXShiftPats; ++defm : LSXShiftPats; ++defm : LSXBitPats; ++defm : LSXBitPats; ++ ++def : LSXPat<(and v16i8:$vs, (xor (shl vsplat_imm_eq_1, ++ (vsplati8imm7 v16i8:$vt)), ++ immAllOnesV)), ++ (v16i8 (VBITCLR_B v16i8:$vs, v16i8:$vt))>; ++def : LSXPat<(and v8i16:$vs, (xor (shl vsplat_imm_eq_1, ++ (vsplati16imm15 v8i16:$vt)), ++ immAllOnesV)), ++ (v8i16 (VBITCLR_H v8i16:$vs, v8i16:$vt))>; ++def : LSXPat<(and v4i32:$vs, (xor (shl vsplat_imm_eq_1, ++ (vsplati32imm31 v4i32:$vt)), ++ immAllOnesV)), ++ (v4i32 (VBITCLR_W v4i32:$vs, v4i32:$vt))>; ++def : LSXPat<(and v2i64:$vs, (xor (shl (v2i64 vsplati64_imm_eq_1), ++ (vsplati64imm63 v2i64:$vt)), ++ (bitconvert (v4i32 immAllOnesV)))), ++ (v2i64 (VBITCLR_D v2i64:$vs, v2i64:$vt))>; ++ ++ ++def : LSXPat<(fdiv (v4f32 (build_vector (f32 fpimm1), (f32 fpimm1), (f32 fpimm1), (f32 fpimm1))), v4f32:$v), ++ (VFRECIP_S v4f32:$v)>; ++ ++def : LSXPat<(fdiv (v2f64 (build_vector (f64 fpimm1), (f64 fpimm1))), v2f64:$v), ++ (VFRECIP_D v2f64:$v)>; ++ ++def : LSXPat<(fdiv (v4f32 fpimm1), v4f32:$v), ++ (VFRECIP_S v4f32:$v)>; ++ ++def : LSXPat<(fdiv (v2f64 fpimm1), v2f64:$v), ++ (VFRECIP_D v2f64:$v)>; ++ ++ ++def : LSXPat<(fdiv (v4f32 (build_vector (f32 fpimm1), (f32 fpimm1), (f32 fpimm1), (f32 fpimm1))), (fsqrt v4f32:$v)), ++ (VFRSQRT_S v4f32:$v)>; ++ ++def : LSXPat<(fdiv (v2f64 (build_vector (f64 fpimm1), (f64 fpimm1))), (fsqrt v2f64:$v)), ++ (VFRSQRT_D v2f64:$v)>; ++ ++def : LSXPat<(fdiv (v4f32 fpimm1), (fsqrt v4f32:$v)), ++ (VFRSQRT_S v4f32:$v)>; ++ ++def : LSXPat<(fdiv (v2f64 fpimm1), (fsqrt v2f64:$v)), ++ (VFRSQRT_D v2f64:$v)>; ++ ++ ++def : LSXPat<(abs v2i64:$v), ++ (VMAX_D v2i64:$v, (VNEG_D v2i64:$v))>; ++ ++def : LSXPat<(abs v4i32:$v), ++ (VMAX_W v4i32:$v, (VNEG_W v4i32:$v))>; ++ ++def : LSXPat<(abs v8i16:$v), ++ (VMAX_H v8i16:$v, (VNEG_H v8i16:$v))>; ++ ++def : LSXPat<(abs v16i8:$v), ++ (VMAX_B v16i8:$v, (VNEG_B v16i8:$v))>; ++ ++ ++def : LSXPat<(sub (v16i8 immAllZerosV), v16i8:$v), ++ (VNEG_B v16i8:$v)>; ++ ++def : LSXPat<(sub (v8i16 immAllZerosV), v8i16:$v), ++ (VNEG_H v8i16:$v)>; ++ ++def : LSXPat<(sub (v4i32 immAllZerosV), v4i32:$v), ++ (VNEG_W v4i32:$v)>; ++ ++def : LSXPat<(sub (v2i64 immAllZerosV), v2i64:$v), ++ (VNEG_D v2i64:$v)>; ++ ++ ++def : LSXPat<(sra ++ (v16i8 (add ++ (v16i8 (add LSX128B:$a, LSX128B:$b)), ++ (v16i8 (srl ++ (v16i8 (add LSX128B:$a, LSX128B:$b)), ++ (v16i8 (build_vector (i32 7),(i32 7),(i32 7),(i32 7), ++ (i32 7),(i32 7),(i32 7),(i32 7), ++ (i32 7),(i32 7),(i32 7),(i32 7), ++ (i32 7),(i32 7),(i32 7),(i32 7)) ++ ) ++ ) ++ ) ++ ) ++ ), ++ (v16i8 (build_vector (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1) ++ ))), ++ (VAVG_B (v16i8 LSX128B:$a), (v16i8 LSX128B:$b))>; ++ ++def : LSXPat<(sra ++ (v8i16 (add ++ (v8i16 (add LSX128H:$a, LSX128H:$b)), ++ (v8i16 (srl ++ (v8i16 (add LSX128H:$a, LSX128H:$b)), ++ (v8i16 (build_vector (i32 15),(i32 15),(i32 15),(i32 15), ++ (i32 15),(i32 15),(i32 15),(i32 15)) ++ ) ++ ) ++ ) ++ ) ++ ), ++ (v8i16 (build_vector (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1) ++ ))), ++ (VAVG_H (v8i16 LSX128H:$a), (v8i16 LSX128H:$b))>; ++ ++def : LSXPat<(sra ++ (v4i32 (add ++ (v4i32 (add LSX128W:$a, LSX128W:$b)), ++ (v4i32 (srl ++ (v4i32 (add LSX128W:$a, LSX128W:$b)), ++ (v4i32 (build_vector (i32 31),(i32 31),(i32 31),(i32 31)) ++ ) ++ ) ++ ) ++ ) ++ ), ++ (v4i32 (build_vector (i32 1),(i32 1),(i32 1),(i32 1)))), ++ (VAVG_W (v4i32 LSX128W:$a), (v4i32 LSX128W:$b))>; ++ ++def : LSXPat<(sra ++ (v2i64 (add ++ (v2i64 (add LSX128D:$a, LSX128D:$b)), ++ (v2i64 (srl ++ (v2i64 (add LSX128D:$a, LSX128D:$b)), ++ (v2i64 (build_vector (i64 63),(i64 63))) ++ ) ++ ) ++ ) ++ ), ++ (v2i64 (build_vector (i64 1),(i64 1)))), ++ (VAVG_D (v2i64 LSX128D:$a), (v2i64 LSX128D:$b))>; ++ ++ ++ ++def : LSXPat<(srl ++ (v16i8 (add LSX128B:$a, LSX128B:$b)), ++ (v16i8 (build_vector (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1)) ++ ) ++ ), ++ (VAVG_BU (v16i8 LSX128B:$a), (v16i8 LSX128B:$b))>; ++ ++def : LSXPat<(srl ++ (v8i16 (add LSX128H:$a, LSX128H:$b)), ++ (v8i16 (build_vector (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1)) ++ ) ++ ), ++ (VAVG_HU (v8i16 LSX128H:$a), (v8i16 LSX128H:$b))>; ++ ++def : LSXPat<(srl ++ (v4i32 (add LSX128W:$a, LSX128W:$b)), ++ (v4i32 (build_vector (i32 1),(i32 1),(i32 1),(i32 1)) ++ ) ++ ), ++ (VAVG_WU (v4i32 LSX128W:$a), (v4i32 LSX128W:$b))>; ++ ++def : LSXPat<(srl ++ (v2i64 (add LSX128D:$a, LSX128D:$b)), ++ (v2i64 (build_vector (i64 1),(i64 1)) ++ ) ++ ), ++ (VAVG_DU (v2i64 LSX128D:$a), (v2i64 LSX128D:$b))>; ++ ++ ++ ++ ++def : LSXPat<(sra ++ (v16i8 (add ++ (v16i8 (add (v16i8 ( ++ build_vector (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1) ++ )), ++ (v16i8 (add LSX128B:$a, LSX128B:$b)) ++ )), ++ (v16i8 (srl ++ (v16i8 ( add (v16i8( ++ build_vector (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1) ++ )), ++ (v16i8 (add LSX128B:$a, LSX128B:$b)) ++ )), ++ (v16i8 (build_vector (i32 7),(i32 7),(i32 7),(i32 7), ++ (i32 7),(i32 7),(i32 7),(i32 7), ++ (i32 7),(i32 7),(i32 7),(i32 7), ++ (i32 7),(i32 7),(i32 7),(i32 7)) ++ ) ++ ) ++ ) ++ ) ++ ), ++ (v16i8 (build_vector (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1) ++ ))), ++ (VAVGR_B (v16i8 LSX128B:$a), (v16i8 LSX128B:$b))>; ++ ++def : LSXPat<(sra ++ (v8i16 (add ++ (v8i16 (add (v8i16 ( ++ build_vector (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1) ++ )), ++ (v8i16 (add LSX128H:$a, LSX128H:$b)) ++ )), ++ (v8i16 (srl ++ (v8i16 (add (v8i16 ( ++ build_vector (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1) ++ )), ++ (v8i16 (add LSX128H:$a, LSX128H:$b)) ++ )), ++ (v8i16 (build_vector (i32 15),(i32 15),(i32 15),(i32 15), ++ (i32 15),(i32 15),(i32 15),(i32 15)) ++ ) ++ ) ++ ) ++ ) ++ ), ++ (v8i16 (build_vector (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1) ++ ))), ++ (VAVGR_H (v8i16 LSX128H:$a), (v8i16 LSX128H:$b))>; ++ ++def : LSXPat<(sra ++ (v4i32 (add ++ (v4i32 (add (v4i32 ( ++ build_vector (i32 1),(i32 1),(i32 1),(i32 1) ++ )), ++ (v4i32 (add LSX128W:$a, LSX128W:$b)) ++ )), ++ (v4i32 (srl ++ (v4i32 (add (v4i32 ( ++ build_vector (i32 1),(i32 1),(i32 1),(i32 1) ++ )), ++ (v4i32 (add LSX128W:$a, LSX128W:$b)) ++ )), ++ (v4i32 (build_vector (i32 31),(i32 31),(i32 31),(i32 31)) ++ ) ++ ) ++ ) ++ ) ++ ), ++ (v4i32 (build_vector (i32 1),(i32 1),(i32 1),(i32 1)))), ++ (VAVGR_W (v4i32 LSX128W:$a), (v4i32 LSX128W:$b))>; ++ ++def : LSXPat<(sra ++ (v2i64 (add ++ (v2i64 (add (v2i64 ( ++ build_vector (i64 1),(i64 1) ++ )), ++ (v2i64 (add LSX128D:$a, LSX128D:$b)) ++ )), ++ (v2i64 (srl ++ (v2i64 (add (v2i64 ( ++ build_vector (i64 1),(i64 1) ++ )), ++ (v2i64 (add LSX128D:$a, LSX128D:$b)) ++ )), ++ (v2i64 (build_vector (i64 63),(i64 63))) ++ ) ++ ) ++ ) ++ ), ++ (v2i64 (build_vector (i64 1),(i64 1)))), ++ (VAVGR_D (v2i64 LSX128D:$a), (v2i64 LSX128D:$b))>; ++ ++ ++ ++ ++def : LSXPat<(srl ++ (v16i8 (add (v16i8 ( ++ build_vector (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1) ++ )), ++ (v16i8 (add LSX128B:$a, LSX128B:$b)) ++ )), ++ (v16i8 (build_vector (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1)) ++ ) ++ ), ++ (VAVGR_BU (v16i8 LSX128B:$a), (v16i8 LSX128B:$b))>; ++ ++def : LSXPat<(srl ++ (v8i16 (add (v8i16 ( ++ build_vector (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1) ++ )), ++ (v8i16 (add LSX128H:$a, LSX128H:$b)) ++ )), ++ (v8i16 (build_vector (i32 1),(i32 1),(i32 1),(i32 1), ++ (i32 1),(i32 1),(i32 1),(i32 1)) ++ ) ++ ), ++ (VAVGR_HU (v8i16 LSX128H:$a), (v8i16 LSX128H:$b))>; ++ ++def : LSXPat<(srl ++ (v4i32 (add (v4i32 ( ++ build_vector (i32 1),(i32 1),(i32 1),(i32 1) ++ )), ++ (v4i32 (add LSX128W:$a, LSX128W:$b)) ++ )), ++ (v4i32 (build_vector (i32 1),(i32 1),(i32 1),(i32 1)) ++ ) ++ ), ++ (VAVGR_WU (v4i32 LSX128W:$a), (v4i32 LSX128W:$b))>; ++ ++def : LSXPat<(srl ++ (v2i64 (add (v2i64 ( ++ build_vector (i64 1),(i64 1) ++ )), ++ (v2i64 (add LSX128D:$a, LSX128D:$b)) ++ )), ++ (v2i64 (build_vector (i64 1),(i64 1)) ++ ) ++ ), ++ (VAVGR_DU (v2i64 LSX128D:$a), (v2i64 LSX128D:$b))>; ++ ++ ++def : LSXPat<(mulhs LSX128D:$a, LSX128D:$b), ++ (VMUH_D LSX128D:$a, LSX128D:$b)>; ++ ++def : LSXPat<(mulhs LSX128W:$a, LSX128W:$b), ++ (VMUH_W LSX128W:$a, LSX128W:$b)>; ++ ++def : LSXPat<(mulhs LSX128H:$a, LSX128H:$b), ++ (VMUH_H LSX128H:$a, LSX128H:$b)>; ++ ++def : LSXPat<(mulhs LSX128B:$a, LSX128B:$b), ++ (VMUH_B LSX128B:$a, LSX128B:$b)>; ++ ++ ++def : LSXPat<(mulhu LSX128D:$a, LSX128D:$b), ++ (VMUH_DU LSX128D:$a, LSX128D:$b)>; ++ ++def : LSXPat<(mulhu LSX128W:$a, LSX128W:$b), ++ (VMUH_WU LSX128W:$a, LSX128W:$b)>; ++ ++def : LSXPat<(mulhu LSX128H:$a, LSX128H:$b), ++ (VMUH_HU LSX128H:$a, LSX128H:$b)>; ++ ++def : LSXPat<(mulhu LSX128B:$a, LSX128B:$b), ++ (VMUH_BU LSX128B:$a, LSX128B:$b)>; ++ ++ ++ ++//===----------------------------------------------------------------------===// ++// Intrinsics ++//===----------------------------------------------------------------------===// ++ ++def : LSXPat<(int_loongarch_lsx_vseq_b (v16i8 LSX128B:$vj), (v16i8 LSX128B:$vk)), ++ (VSEQ_B LSX128B:$vj, LSX128B:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vseq_h (v8i16 LSX128H:$vj), (v8i16 LSX128H:$vk)), ++ (VSEQ_H LSX128H:$vj, LSX128H:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vseq_w (v4i32 LSX128W:$vj), (v4i32 LSX128W:$vk)), ++ (VSEQ_W LSX128W:$vj, LSX128W:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vseq_d (v2i64 LSX128D:$vj), (v2i64 LSX128D:$vk)), ++ (VSEQ_D LSX128D:$vj, LSX128D:$vk)>; ++ ++def : LSXPat<(int_loongarch_lsx_vsle_b (v16i8 LSX128B:$vj), (v16i8 LSX128B:$vk)), ++ (VSLE_B LSX128B:$vj, LSX128B:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vsle_h (v8i16 LSX128H:$vj), (v8i16 LSX128H:$vk)), ++ (VSLE_H LSX128H:$vj, LSX128H:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vsle_w (v4i32 LSX128W:$vj), (v4i32 LSX128W:$vk)), ++ (VSLE_W LSX128W:$vj, LSX128W:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vsle_d (v2i64 LSX128D:$vj), (v2i64 LSX128D:$vk)), ++ (VSLE_D LSX128D:$vj, LSX128D:$vk)>; ++ ++def : LSXPat<(int_loongarch_lsx_vsle_bu (v16i8 LSX128B:$vj), (v16i8 LSX128B:$vk)), ++ (VSLE_BU LSX128B:$vj, LSX128B:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vsle_hu (v8i16 LSX128H:$vj), (v8i16 LSX128H:$vk)), ++ (VSLE_HU LSX128H:$vj, LSX128H:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vsle_wu (v4i32 LSX128W:$vj), (v4i32 LSX128W:$vk)), ++ (VSLE_WU LSX128W:$vj, LSX128W:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vsle_du (v2i64 LSX128D:$vj), (v2i64 LSX128D:$vk)), ++ (VSLE_DU LSX128D:$vj, LSX128D:$vk)>; ++ ++def : LSXPat<(int_loongarch_lsx_vslt_b (v16i8 LSX128B:$vj), (v16i8 LSX128B:$vk)), ++ (VSLT_B LSX128B:$vj, LSX128B:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vslt_h (v8i16 LSX128H:$vj), (v8i16 LSX128H:$vk)), ++ (VSLT_H LSX128H:$vj, LSX128H:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vslt_w (v4i32 LSX128W:$vj), (v4i32 LSX128W:$vk)), ++ (VSLT_W LSX128W:$vj, LSX128W:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vslt_d (v2i64 LSX128D:$vj), (v2i64 LSX128D:$vk)), ++ (VSLT_D LSX128D:$vj, LSX128D:$vk)>; ++ ++def : LSXPat<(int_loongarch_lsx_vslt_bu (v16i8 LSX128B:$vj), (v16i8 LSX128B:$vk)), ++ (VSLT_BU LSX128B:$vj, LSX128B:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vslt_hu (v8i16 LSX128H:$vj), (v8i16 LSX128H:$vk)), ++ (VSLT_HU LSX128H:$vj, LSX128H:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vslt_wu (v4i32 LSX128W:$vj), (v4i32 LSX128W:$vk)), ++ (VSLT_WU LSX128W:$vj, LSX128W:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vslt_du (v2i64 LSX128D:$vj), (v2i64 LSX128D:$vk)), ++ (VSLT_DU LSX128D:$vj, LSX128D:$vk)>; ++ ++def : LSXPat<(int_loongarch_lsx_vadd_b (v16i8 LSX128B:$vj), (v16i8 LSX128B:$vk)), ++ (VADD_B LSX128B:$vj, LSX128B:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vadd_h (v8i16 LSX128H:$vj), (v8i16 LSX128H:$vk)), ++ (VADD_H LSX128H:$vj, LSX128H:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vadd_w (v4i32 LSX128W:$vj), (v4i32 LSX128W:$vk)), ++ (VADD_W LSX128W:$vj, LSX128W:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vadd_d (v2i64 LSX128D:$vj), (v2i64 LSX128D:$vk)), ++ (VADD_D LSX128D:$vj, LSX128D:$vk)>; ++ ++def : LSXPat<(int_loongarch_lsx_vsub_b (v16i8 LSX128B:$vj), (v16i8 LSX128B:$vk)), ++ (VSUB_B LSX128B:$vj, LSX128B:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vsub_h (v8i16 LSX128H:$vj), (v8i16 LSX128H:$vk)), ++ (VSUB_H LSX128H:$vj, LSX128H:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vsub_w (v4i32 LSX128W:$vj), (v4i32 LSX128W:$vk)), ++ (VSUB_W LSX128W:$vj, LSX128W:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vsub_d (v2i64 LSX128D:$vj), (v2i64 LSX128D:$vk)), ++ (VSUB_D LSX128D:$vj, LSX128D:$vk)>; ++ ++def : LSXPat<(int_loongarch_lsx_vsadd_b (v16i8 LSX128B:$vj), (v16i8 LSX128B:$vk)), ++ (VSADD_B LSX128B:$vj, LSX128B:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vsadd_h (v8i16 LSX128H:$vj), (v8i16 LSX128H:$vk)), ++ (VSADD_H LSX128H:$vj, LSX128H:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vsadd_w (v4i32 LSX128W:$vj), (v4i32 LSX128W:$vk)), ++ (VSADD_W LSX128W:$vj, LSX128W:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vsadd_d (v2i64 LSX128D:$vj), (v2i64 LSX128D:$vk)), ++ (VSADD_D LSX128D:$vj, LSX128D:$vk)>; ++ ++def : LSXPat<(int_loongarch_lsx_vssub_b (v16i8 LSX128B:$vj), (v16i8 LSX128B:$vk)), ++ (VSSUB_B LSX128B:$vj, LSX128B:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vssub_h (v8i16 LSX128H:$vj), (v8i16 LSX128H:$vk)), ++ (VSSUB_H LSX128H:$vj, LSX128H:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vssub_w (v4i32 LSX128W:$vj), (v4i32 LSX128W:$vk)), ++ (VSSUB_W LSX128W:$vj, LSX128W:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vssub_d (v2i64 LSX128D:$vj), (v2i64 LSX128D:$vk)), ++ (VSSUB_D LSX128D:$vj, LSX128D:$vk)>; ++ ++def : LSXPat<(int_loongarch_lsx_vsadd_bu (v16i8 LSX128B:$vj), (v16i8 LSX128B:$vk)), ++ (VSADD_BU LSX128B:$vj, LSX128B:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vsadd_hu (v8i16 LSX128H:$vj), (v8i16 LSX128H:$vk)), ++ (VSADD_HU LSX128H:$vj, LSX128H:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vsadd_wu (v4i32 LSX128W:$vj), (v4i32 LSX128W:$vk)), ++ (VSADD_WU LSX128W:$vj, LSX128W:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vsadd_du (v2i64 LSX128D:$vj), (v2i64 LSX128D:$vk)), ++ (VSADD_DU LSX128D:$vj, LSX128D:$vk)>; ++ ++def : LSXPat<(int_loongarch_lsx_vssub_bu (v16i8 LSX128B:$vj), (v16i8 LSX128B:$vk)), ++ (VSSUB_BU LSX128B:$vj, LSX128B:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vssub_hu (v8i16 LSX128H:$vj), (v8i16 LSX128H:$vk)), ++ (VSSUB_HU LSX128H:$vj, LSX128H:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vssub_wu (v4i32 LSX128W:$vj), (v4i32 LSX128W:$vk)), ++ (VSSUB_WU LSX128W:$vj, LSX128W:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vssub_du (v2i64 LSX128D:$vj), (v2i64 LSX128D:$vk)), ++ (VSSUB_DU LSX128D:$vj, LSX128D:$vk)>; ++ ++def : LSXPat<(int_loongarch_lsx_vhaddw_h_b (v16i8 LSX128B:$vj), (v16i8 LSX128B:$vk)), ++ (VHADDW_H_B LSX128B:$vj, LSX128B:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vhaddw_w_h (v8i16 LSX128H:$vj), (v8i16 LSX128H:$vk)), ++ (VHADDW_W_H LSX128H:$vj, LSX128H:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vhaddw_d_w (v4i32 LSX128W:$vj), (v4i32 LSX128W:$vk)), ++ (VHADDW_D_W LSX128W:$vj, LSX128W:$vk)>; ++ ++def : LSXPat<(int_loongarch_lsx_vhsubw_h_b (v16i8 LSX128B:$vj), (v16i8 LSX128B:$vk)), ++ (VHSUBW_H_B LSX128B:$vj, LSX128B:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vhsubw_w_h (v8i16 LSX128H:$vj), (v8i16 LSX128H:$vk)), ++ (VHSUBW_W_H LSX128H:$vj, LSX128H:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vhsubw_d_w (v4i32 LSX128W:$vj), (v4i32 LSX128W:$vk)), ++ (VHSUBW_D_W LSX128W:$vj, LSX128W:$vk)>; ++ ++def : LSXPat<(int_loongarch_lsx_vhaddw_hu_bu (v16i8 LSX128B:$vj), (v16i8 LSX128B:$vk)), ++ (VHADDW_HU_BU LSX128B:$vj, LSX128B:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vhaddw_wu_hu (v8i16 LSX128H:$vj), (v8i16 LSX128H:$vk)), ++ (VHADDW_WU_HU LSX128H:$vj, LSX128H:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vhaddw_du_wu (v4i32 LSX128W:$vj), (v4i32 LSX128W:$vk)), ++ (VHADDW_DU_WU LSX128W:$vj, LSX128W:$vk)>; ++ ++def : LSXPat<(int_loongarch_lsx_vhsubw_hu_bu (v16i8 LSX128B:$vj), (v16i8 LSX128B:$vk)), ++ (VHSUBW_HU_BU LSX128B:$vj, LSX128B:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vhsubw_wu_hu (v8i16 LSX128H:$vj), (v8i16 LSX128H:$vk)), ++ (VHSUBW_WU_HU LSX128H:$vj, LSX128H:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vhsubw_du_wu (v4i32 LSX128W:$vj), (v4i32 LSX128W:$vk)), ++ (VHSUBW_DU_WU LSX128W:$vj, LSX128W:$vk)>; ++ ++def : LSXPat<(int_loongarch_lsx_vadda_b (v16i8 LSX128B:$vj), (v16i8 LSX128B:$vk)), ++ (VADDA_B LSX128B:$vj, LSX128B:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vadda_h (v8i16 LSX128H:$vj), (v8i16 LSX128H:$vk)), ++ (VADDA_H LSX128H:$vj, LSX128H:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vadda_w (v4i32 LSX128W:$vj), (v4i32 LSX128W:$vk)), ++ (VADDA_W LSX128W:$vj, LSX128W:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vadda_d (v2i64 LSX128D:$vj), (v2i64 LSX128D:$vk)), ++ (VADDA_D LSX128D:$vj, LSX128D:$vk)>; ++ ++def : LSXPat<(int_loongarch_lsx_vabsd_b (v16i8 LSX128B:$vj), (v16i8 LSX128B:$vk)), ++ (VABSD_B LSX128B:$vj, LSX128B:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vabsd_h (v8i16 LSX128H:$vj), (v8i16 LSX128H:$vk)), ++ (VABSD_H LSX128H:$vj, LSX128H:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vabsd_w (v4i32 LSX128W:$vj), (v4i32 LSX128W:$vk)), ++ (VABSD_W LSX128W:$vj, LSX128W:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vabsd_d (v2i64 LSX128D:$vj), (v2i64 LSX128D:$vk)), ++ (VABSD_D LSX128D:$vj, LSX128D:$vk)>; ++ ++def : LSXPat<(int_loongarch_lsx_vabsd_bu (v16i8 LSX128B:$vj), (v16i8 LSX128B:$vk)), ++ (VABSD_BU LSX128B:$vj, LSX128B:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vabsd_hu (v8i16 LSX128H:$vj), (v8i16 LSX128H:$vk)), ++ (VABSD_HU LSX128H:$vj, LSX128H:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vabsd_wu (v4i32 LSX128W:$vj), (v4i32 LSX128W:$vk)), ++ (VABSD_WU LSX128W:$vj, LSX128W:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vabsd_du (v2i64 LSX128D:$vj), (v2i64 LSX128D:$vk)), ++ (VABSD_DU LSX128D:$vj, LSX128D:$vk)>; ++ ++def : LSXPat<(int_loongarch_lsx_vavg_b (v16i8 LSX128B:$vj), (v16i8 LSX128B:$vk)), ++ (VAVG_B LSX128B:$vj, LSX128B:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vavg_h (v8i16 LSX128H:$vj), (v8i16 LSX128H:$vk)), ++ (VAVG_H LSX128H:$vj, LSX128H:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vavg_w (v4i32 LSX128W:$vj), (v4i32 LSX128W:$vk)), ++ (VAVG_W LSX128W:$vj, LSX128W:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vavg_d (v2i64 LSX128D:$vj), (v2i64 LSX128D:$vk)), ++ (VAVG_D LSX128D:$vj, LSX128D:$vk)>; ++ ++def : LSXPat<(int_loongarch_lsx_vavg_bu (v16i8 LSX128B:$vj), (v16i8 LSX128B:$vk)), ++ (VAVG_BU LSX128B:$vj, LSX128B:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vavg_hu (v8i16 LSX128H:$vj), (v8i16 LSX128H:$vk)), ++ (VAVG_HU LSX128H:$vj, LSX128H:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vavg_wu (v4i32 LSX128W:$vj), (v4i32 LSX128W:$vk)), ++ (VAVG_WU LSX128W:$vj, LSX128W:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vavg_du (v2i64 LSX128D:$vj), (v2i64 LSX128D:$vk)), ++ (VAVG_DU LSX128D:$vj, LSX128D:$vk)>; ++ ++def : LSXPat<(int_loongarch_lsx_vavgr_b (v16i8 LSX128B:$vj), (v16i8 LSX128B:$vk)), ++ (VAVGR_B LSX128B:$vj, LSX128B:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vavgr_h (v8i16 LSX128H:$vj), (v8i16 LSX128H:$vk)), ++ (VAVGR_H LSX128H:$vj, LSX128H:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vavgr_w (v4i32 LSX128W:$vj), (v4i32 LSX128W:$vk)), ++ (VAVGR_W LSX128W:$vj, LSX128W:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vavgr_d (v2i64 LSX128D:$vj), (v2i64 LSX128D:$vk)), ++ (VAVGR_D LSX128D:$vj, LSX128D:$vk)>; ++ ++def : LSXPat<(int_loongarch_lsx_vavgr_bu (v16i8 LSX128B:$vj), (v16i8 LSX128B:$vk)), ++ (VAVGR_BU LSX128B:$vj, LSX128B:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vavgr_hu (v8i16 LSX128H:$vj), (v8i16 LSX128H:$vk)), ++ (VAVGR_HU LSX128H:$vj, LSX128H:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vavgr_wu (v4i32 LSX128W:$vj), (v4i32 LSX128W:$vk)), ++ (VAVGR_WU LSX128W:$vj, LSX128W:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vavgr_du (v2i64 LSX128D:$vj), (v2i64 LSX128D:$vk)), ++ (VAVGR_DU LSX128D:$vj, LSX128D:$vk)>; ++ ++def : LSXPat<(int_loongarch_lsx_vsrlr_b (v16i8 LSX128B:$vj), (v16i8 LSX128B:$vk)), ++ (VSRLR_B LSX128B:$vj, LSX128B:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vsrlr_h (v8i16 LSX128H:$vj), (v8i16 LSX128H:$vk)), ++ (VSRLR_H LSX128H:$vj, LSX128H:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vsrlr_w (v4i32 LSX128W:$vj), (v4i32 LSX128W:$vk)), ++ (VSRLR_W LSX128W:$vj, LSX128W:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vsrlr_d (v2i64 LSX128D:$vj), (v2i64 LSX128D:$vk)), ++ (VSRLR_D LSX128D:$vj, LSX128D:$vk)>; ++ ++def : LSXPat<(int_loongarch_lsx_vsrar_b (v16i8 LSX128B:$vj), (v16i8 LSX128B:$vk)), ++ (VSRAR_B LSX128B:$vj, LSX128B:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vsrar_h (v8i16 LSX128H:$vj), (v8i16 LSX128H:$vk)), ++ (VSRAR_H LSX128H:$vj, LSX128H:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vsrar_w (v4i32 LSX128W:$vj), (v4i32 LSX128W:$vk)), ++ (VSRAR_W LSX128W:$vj, LSX128W:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vsrar_d (v2i64 LSX128D:$vj), (v2i64 LSX128D:$vk)), ++ (VSRAR_D LSX128D:$vj, LSX128D:$vk)>; ++ ++def : LSXPat<(int_loongarch_lsx_vbitset_b (v16i8 LSX128B:$vj), (v16i8 LSX128B:$vk)), ++ (VBITSET_B LSX128B:$vj, LSX128B:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vbitset_h (v8i16 LSX128H:$vj), (v8i16 LSX128H:$vk)), ++ (VBITSET_H LSX128H:$vj, LSX128H:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vbitset_w (v4i32 LSX128W:$vj), (v4i32 LSX128W:$vk)), ++ (VBITSET_W LSX128W:$vj, LSX128W:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vbitset_d (v2i64 LSX128D:$vj), (v2i64 LSX128D:$vk)), ++ (VBITSET_D LSX128D:$vj, LSX128D:$vk)>; ++ ++def : LSXPat<(int_loongarch_lsx_vbitrev_b (v16i8 LSX128B:$vj), (v16i8 LSX128B:$vk)), ++ (VBITREV_B LSX128B:$vj, LSX128B:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vbitrev_h (v8i16 LSX128H:$vj), (v8i16 LSX128H:$vk)), ++ (VBITREV_H LSX128H:$vj, LSX128H:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vbitrev_w (v4i32 LSX128W:$vj), (v4i32 LSX128W:$vk)), ++ (VBITREV_W LSX128W:$vj, LSX128W:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vbitrev_d (v2i64 LSX128D:$vj), (v2i64 LSX128D:$vk)), ++ (VBITREV_D LSX128D:$vj, LSX128D:$vk)>; ++ ++def : LSXPat<(int_loongarch_lsx_vfadd_s (v4f32 LSX128W:$vj), (v4f32 LSX128W:$vk)), ++ (VFADD_S LSX128W:$vj, LSX128W:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vfadd_d (v2f64 LSX128D:$vj), (v2f64 LSX128D:$vk)), ++ (VFADD_D LSX128D:$vj, LSX128D:$vk)>; ++ ++def : LSXPat<(int_loongarch_lsx_vfsub_s (v4f32 LSX128W:$vj), (v4f32 LSX128W:$vk)), ++ (VFSUB_S LSX128W:$vj, LSX128W:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vfsub_d (v2f64 LSX128D:$vj), (v2f64 LSX128D:$vk)), ++ (VFSUB_D LSX128D:$vj, LSX128D:$vk)>; ++ ++def : LSXPat<(int_loongarch_lsx_vfmax_s (v4f32 LSX128W:$vj), (v4f32 LSX128W:$vk)), ++ (VFMAX_S LSX128W:$vj, LSX128W:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vfmax_d (v2f64 LSX128D:$vj), (v2f64 LSX128D:$vk)), ++ (VFMAX_D LSX128D:$vj, LSX128D:$vk)>; ++ ++def : LSXPat<(int_loongarch_lsx_vfmin_s (v4f32 LSX128W:$vj), (v4f32 LSX128W:$vk)), ++ (VFMIN_S LSX128W:$vj, LSX128W:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vfmin_d (v2f64 LSX128D:$vj), (v2f64 LSX128D:$vk)), ++ (VFMIN_D LSX128D:$vj, LSX128D:$vk)>; ++ ++def : LSXPat<(int_loongarch_lsx_vfmaxa_s (v4f32 LSX128W:$vj), (v4f32 LSX128W:$vk)), ++ (VFMAXA_S LSX128W:$vj, LSX128W:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vfmaxa_d (v2f64 LSX128D:$vj), (v2f64 LSX128D:$vk)), ++ (VFMAXA_D LSX128D:$vj, LSX128D:$vk)>; ++ ++def : LSXPat<(int_loongarch_lsx_vfmina_s (v4f32 LSX128W:$vj), (v4f32 LSX128W:$vk)), ++ (VFMINA_S LSX128W:$vj, LSX128W:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vfmina_d (v2f64 LSX128D:$vj), (v2f64 LSX128D:$vk)), ++ (VFMINA_D LSX128D:$vj, LSX128D:$vk)>; ++ ++def : LSXPat<(int_loongarch_lsx_vclo_b (v16i8 LSX128B:$vj)), ++ (VCLO_B LSX128B:$vj)>; ++def : LSXPat<(int_loongarch_lsx_vclo_h (v8i16 LSX128H:$vj)), ++ (VCLO_H LSX128H:$vj)>; ++def : LSXPat<(int_loongarch_lsx_vclo_w (v4i32 LSX128W:$vj)), ++ (VCLO_W LSX128W:$vj)>; ++def : LSXPat<(int_loongarch_lsx_vclo_d (v2i64 LSX128D:$vj)), ++ (VCLO_D LSX128D:$vj)>; ++ ++def : LSXPat<(int_loongarch_lsx_vflogb_s (v4f32 LSX128W:$vj)), ++ (VFLOGB_S LSX128W:$vj)>; ++def : LSXPat<(int_loongarch_lsx_vflogb_d (v2f64 LSX128D:$vj)), ++ (VFLOGB_D LSX128D:$vj)>; ++ ++def : LSXPat<(int_loongarch_lsx_vfclass_s (v4f32 LSX128W:$vj)), ++ (VFCLASS_S LSX128W:$vj)>; ++def : LSXPat<(int_loongarch_lsx_vfclass_d (v2f64 LSX128D:$vj)), ++ (VFCLASS_D LSX128D:$vj)>; ++ ++def : LSXPat<(int_loongarch_lsx_vfrecip_s (v4f32 LSX128W:$vj)), ++ (VFRECIP_S LSX128W:$vj)>; ++def : LSXPat<(int_loongarch_lsx_vfrecip_d (v2f64 LSX128D:$vj)), ++ (VFRECIP_D LSX128D:$vj)>; ++ ++def : LSXPat<(int_loongarch_lsx_vfrsqrt_s (v4f32 LSX128W:$vj)), ++ (VFRSQRT_S LSX128W:$vj)>; ++def : LSXPat<(int_loongarch_lsx_vfrsqrt_d (v2f64 LSX128D:$vj)), ++ (VFRSQRT_D LSX128D:$vj)>; ++ ++def : LSXPat<(int_loongarch_lsx_vfcvtl_s_h (v8i16 LSX128H:$vk)), ++ (VFCVTL_S_H LSX128H:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vfcvth_s_h (v8i16 LSX128H:$vk)), ++ (VFCVTH_S_H LSX128H:$vk)>; ++ ++def : LSXPat<(int_loongarch_lsx_vfcvtl_d_s (v4f32 LSX128W:$vj)), ++ (VFCVTL_D_S LSX128W:$vj)>; ++def : LSXPat<(int_loongarch_lsx_vfcvth_d_s (v4f32 LSX128W:$vj)), ++ (VFCVTH_D_S LSX128W:$vj)>; ++ ++def : LSXPat<(int_loongarch_lsx_vftint_w_s (v4f32 LSX128W:$vj)), ++ (VFTINT_W_S LSX128W:$vj)>; ++def : LSXPat<(int_loongarch_lsx_vftint_l_d (v2f64 LSX128D:$vj)), ++ (VFTINT_L_D LSX128D:$vj)>; ++ ++def : LSXPat<(int_loongarch_lsx_vftint_wu_s (v4f32 LSX128W:$vj)), ++ (VFTINT_WU_S LSX128W:$vj)>; ++def : LSXPat<(int_loongarch_lsx_vftint_lu_d (v2f64 LSX128D:$vj)), ++ (VFTINT_LU_D LSX128D:$vj)>; ++ ++def : LSXPat<(int_loongarch_lsx_vreplgr2vr_b GPR32Opnd:$rj), ++ (VREPLGR2VR_B GPR32Opnd:$rj)>; ++def : LSXPat<(int_loongarch_lsx_vreplgr2vr_h GPR32Opnd:$rj), ++ (VREPLGR2VR_H GPR32Opnd:$rj)>; ++def : LSXPat<(int_loongarch_lsx_vreplgr2vr_w GPR32Opnd:$rj), ++ (VREPLGR2VR_W GPR32Opnd:$rj)>; ++def : LSXPat<(int_loongarch_lsx_vreplgr2vr_d GPR64Opnd:$rj), ++ (VREPLGR2VR_D GPR64Opnd:$rj)>; ++ ++def : LSXPat<(int_loongarch_lsx_vsrlri_b (v16i8 LSX128B:$vj), (immZExt3:$ui3)), ++ (VSRLRI_B LSX128B:$vj, uimm3:$ui3)>; ++def : LSXPat<(int_loongarch_lsx_vsrlri_h (v8i16 LSX128H:$vj), (immZExt4:$ui4)), ++ (VSRLRI_H LSX128H:$vj, uimm4i:$ui4)>; ++def : LSXPat<(int_loongarch_lsx_vsrlri_w (v4i32 LSX128W:$vj), (immZExt5:$ui5)), ++ (VSRLRI_W LSX128W:$vj, uimm5:$ui5)>; ++def : LSXPat<(int_loongarch_lsx_vsrlri_d (v2i64 LSX128D:$vj), (immZExt6:$ui6)), ++ (VSRLRI_D LSX128D:$vj, uimm6:$ui6)>; ++ ++def : LSXPat<(int_loongarch_lsx_vsrari_b (v16i8 LSX128B:$vj), (immZExt3:$ui3)), ++ (VSRARI_B LSX128B:$vj, uimm3:$ui3)>; ++def : LSXPat<(int_loongarch_lsx_vsrari_h (v8i16 LSX128H:$vj), (immZExt4:$ui4)), ++ (VSRARI_H LSX128H:$vj, uimm4i:$ui4)>; ++def : LSXPat<(int_loongarch_lsx_vsrari_w (v4i32 LSX128W:$vj), (immZExt5:$ui5)), ++ (VSRARI_W LSX128W:$vj, uimm5:$ui5)>; ++def : LSXPat<(int_loongarch_lsx_vsrari_d (v2i64 LSX128D:$vj), (immZExt6:$ui6)), ++ (VSRARI_D LSX128D:$vj, uimm6:$ui6)>; ++ ++def : LSXPat<(int_loongarch_lsx_vinsgr2vr_b (v16i8 LSX128B:$vj), GPR32Opnd:$rj, (immZExt4:$ui4)), ++ (VINSGR2VR_B LSX128B:$vj, GPR32Opnd:$rj, (uimm4i:$ui4))>; ++def : LSXPat<(int_loongarch_lsx_vinsgr2vr_h (v8i16 LSX128H:$vj), GPR32Opnd:$rj, (immZExt3:$ui3)), ++ (VINSGR2VR_H LSX128H:$vj, GPR32Opnd:$rj, uimm3:$ui3)>; ++def : LSXPat<(int_loongarch_lsx_vinsgr2vr_w (v4i32 LSX128W:$vj), GPR32Opnd:$rj, (immZExt2:$ui2)), ++ (VINSGR2VR_W LSX128W:$vj, GPR32Opnd:$rj, uimm2:$ui2)>; ++def : LSXPat<(int_loongarch_lsx_vinsgr2vr_d (v2i64 LSX128D:$vj), GPR64Opnd:$rj, (immZExt1:$ui1)), ++ (VINSGR2VR_D LSX128D:$vj, GPR64Opnd:$rj, uimm1i:$ui1)>; ++ ++def : LSXPat<(int_loongarch_lsx_vpickve2gr_b (v16i8 LSX128B:$vj), (immZExt4:$ui4)), ++ (VPICKVE2GR_B LSX128B:$vj, (uimm4i:$ui4))>; ++def : LSXPat<(int_loongarch_lsx_vpickve2gr_h (v8i16 LSX128H:$vj), (immZExt3:$ui3)), ++ (VPICKVE2GR_H LSX128H:$vj, uimm3:$ui3)>; ++def : LSXPat<(int_loongarch_lsx_vpickve2gr_w (v4i32 LSX128W:$vj), (immZExt2:$ui2)), ++ (VPICKVE2GR_W LSX128W:$vj, uimm2:$ui2)>; ++def : LSXPat<(int_loongarch_lsx_vpickve2gr_d (v2i64 LSX128D:$vj), (immZExt1:$ui1)), ++ (VPICKVE2GR_D LSX128D:$vj, uimm1i:$ui1)>; ++ ++def : LSXPat<(int_loongarch_lsx_vpickve2gr_bu (v16i8 LSX128B:$vj), (immZExt4:$ui4)), ++ (VPICKVE2GR_BU LSX128B:$vj, (uimm4i:$ui4))>; ++def : LSXPat<(int_loongarch_lsx_vpickve2gr_hu (v8i16 LSX128H:$vj), (immZExt3:$ui3)), ++ (VPICKVE2GR_HU LSX128H:$vj, uimm3:$ui3)>; ++def : LSXPat<(int_loongarch_lsx_vpickve2gr_wu (v4i32 LSX128W:$vj), (immZExt2:$ui2)), ++ (VPICKVE2GR_WU LSX128W:$vj, uimm2:$ui2)>; ++ ++def : LSXPat<(int_loongarch_lsx_vsat_b (v16i8 LSX128B:$vj), (immZExt3:$ui3)), ++ (VSAT_B LSX128B:$vj, uimm3:$ui3)>; ++def : LSXPat<(int_loongarch_lsx_vsat_h (v8i16 LSX128H:$vj), (immZExt4:$ui4)), ++ (VSAT_H LSX128H:$vj, uimm4i:$ui4)>; ++def : LSXPat<(int_loongarch_lsx_vsat_w (v4i32 LSX128W:$vj), (immZExt5:$ui5)), ++ (VSAT_W LSX128W:$vj, uimm5:$ui5)>; ++def : LSXPat<(int_loongarch_lsx_vsat_d (v2i64 LSX128D:$vj), (immZExt6:$ui6)), ++ (VSAT_D LSX128D:$vj, uimm6:$ui6)>; ++ ++def : LSXPat<(int_loongarch_lsx_vsat_bu (v16i8 LSX128B:$vj), (immZExt3:$ui3)), ++ (VSAT_BU LSX128B:$vj, uimm3:$ui3)>; ++def : LSXPat<(int_loongarch_lsx_vsat_hu (v8i16 LSX128H:$vj), (immZExt4:$ui4)), ++ (VSAT_HU LSX128H:$vj, uimm4i:$ui4)>; ++def : LSXPat<(int_loongarch_lsx_vsat_wu (v4i32 LSX128W:$vj), (immZExt5:$ui5)), ++ (VSAT_WU LSX128W:$vj, uimm5:$ui5)>; ++def : LSXPat<(int_loongarch_lsx_vsat_du (v2i64 LSX128D:$vj), (immZExt6:$ui6)), ++ (VSAT_DU LSX128D:$vj, uimm6:$ui6)>; ++ ++def : LSXPat<(int_loongarch_lsx_vmskltz_b (v16i8 LSX128B:$vj)), ++ (VMSKLTZ_B LSX128B:$vj)>; ++def : LSXPat<(int_loongarch_lsx_vmskltz_h (v8i16 LSX128H:$vj)), ++ (VMSKLTZ_H LSX128H:$vj)>; ++def : LSXPat<(int_loongarch_lsx_vmskltz_w (v4i32 LSX128W:$vj)), ++ (VMSKLTZ_W LSX128W:$vj)>; ++def : LSXPat<(int_loongarch_lsx_vmskltz_d (v2i64 LSX128D:$vj)), ++ (VMSKLTZ_D LSX128D:$vj)>; ++ ++def : LSXPat<(int_loongarch_lsx_vsrlni_b_h (v16i8 LSX128B:$vd_in), (v16i8 LSX128B:$vj), (immZExt4:$ui4)), ++ (VSRLNI_B_H LSX128B:$vd_in, LSX128B:$vj, uimm4i:$ui4)>; ++def : LSXPat<(int_loongarch_lsx_vsrlni_h_w (v8i16 LSX128H:$vd_in), (v8i16 LSX128H:$vj), (immZExt5:$ui5)), ++ (VSRLNI_H_W LSX128H:$vd_in, LSX128H:$vj, uimm5:$ui5)>; ++def : LSXPat<(int_loongarch_lsx_vsrlni_w_d (v4i32 LSX128W:$vd_in), (v4i32 LSX128W:$vj), (immZExt6:$ui6)), ++ (VSRLNI_W_D LSX128W:$vd_in, LSX128W:$vj, uimm6:$ui6)>; ++def : LSXPat<(int_loongarch_lsx_vsrlni_d_q (v2i64 LSX128D:$vd_in), (v2i64 LSX128D:$vj), (immZExt7:$ui7)), ++ (VSRLNI_D_Q LSX128D:$vd_in, LSX128D:$vj, uimm7i:$ui7)>; ++ ++def : LSXPat<(int_loongarch_lsx_vssrlni_b_h (v16i8 LSX128B:$vd_in), (v16i8 LSX128B:$vj), (immZExt4:$ui4)), ++ (VSSRLNI_B_H LSX128B:$vd_in, LSX128B:$vj, uimm4i:$ui4)>; ++def : LSXPat<(int_loongarch_lsx_vssrlni_h_w (v8i16 LSX128H:$vd_in), (v8i16 LSX128H:$vj), (immZExt5:$ui5)), ++ (VSSRLNI_H_W LSX128H:$vd_in, LSX128H:$vj, uimm5:$ui5)>; ++def : LSXPat<(int_loongarch_lsx_vssrlni_w_d (v4i32 LSX128W:$vd_in), (v4i32 LSX128W:$vj), (immZExt6:$ui6)), ++ (VSSRLNI_W_D LSX128W:$vd_in, LSX128W:$vj, uimm6:$ui6)>; ++def : LSXPat<(int_loongarch_lsx_vssrlni_d_q (v2i64 LSX128D:$vd_in), (v2i64 LSX128D:$vj), (immZExt7:$ui7)), ++ (VSSRLNI_D_Q LSX128D:$vd_in, LSX128D:$vj, uimm7i:$ui7)>; ++ ++def : LSXPat<(int_loongarch_lsx_vssrlni_bu_h (v16i8 LSX128B:$vd_in), (v16i8 LSX128B:$vj), (immZExt4:$ui4)), ++ (VSSRLNI_BU_H LSX128B:$vd_in, LSX128B:$vj, uimm4i:$ui4)>; ++def : LSXPat<(int_loongarch_lsx_vssrlni_hu_w (v8i16 LSX128H:$vd_in), (v8i16 LSX128H:$vj), (immZExt5:$ui5)), ++ (VSSRLNI_HU_W LSX128H:$vd_in, LSX128H:$vj, uimm5:$ui5)>; ++def : LSXPat<(int_loongarch_lsx_vssrlni_wu_d (v4i32 LSX128W:$vd_in), (v4i32 LSX128W:$vj), (immZExt6:$ui6)), ++ (VSSRLNI_WU_D LSX128W:$vd_in, LSX128W:$vj, uimm6:$ui6)>; ++def : LSXPat<(int_loongarch_lsx_vssrlni_du_q (v2i64 LSX128D:$vd_in), (v2i64 LSX128D:$vj), (immZExt7:$ui7)), ++ (VSSRLNI_DU_Q LSX128D:$vd_in, LSX128D:$vj, uimm7i:$ui7)>; ++ ++def : LSXPat<(int_loongarch_lsx_vssrlrni_bu_h (v16i8 LSX128B:$vd_in), (v16i8 LSX128B:$vj), (immZExt4:$ui4)), ++ (VSSRLRNI_BU_H LSX128B:$vd_in, LSX128B:$vj, uimm4i:$ui4)>; ++def : LSXPat<(int_loongarch_lsx_vssrlrni_hu_w (v8i16 LSX128H:$vd_in), (v8i16 LSX128H:$vj), (immZExt5:$ui5)), ++ (VSSRLRNI_HU_W LSX128H:$vd_in, LSX128H:$vj, uimm5:$ui5)>; ++def : LSXPat<(int_loongarch_lsx_vssrlrni_wu_d (v4i32 LSX128W:$vd_in), (v4i32 LSX128W:$vj), (immZExt6:$ui6)), ++ (VSSRLRNI_WU_D LSX128W:$vd_in, LSX128W:$vj, uimm6:$ui6)>; ++def : LSXPat<(int_loongarch_lsx_vssrlrni_du_q (v2i64 LSX128D:$vd_in), (v2i64 LSX128D:$vj), (immZExt7:$ui7)), ++ (VSSRLRNI_DU_Q LSX128D:$vd_in, LSX128D:$vj, uimm7i:$ui7)>; ++ ++def : LSXPat<(int_loongarch_lsx_vsrarni_b_h (v16i8 LSX128B:$vd_in), (v16i8 LSX128B:$vj), (immZExt4:$ui4)), ++ (VSRARNI_B_H LSX128B:$vd_in, LSX128B:$vj, uimm4i:$ui4)>; ++def : LSXPat<(int_loongarch_lsx_vsrarni_h_w (v8i16 LSX128H:$vd_in), (v8i16 LSX128H:$vj), (immZExt5:$ui5)), ++ (VSRARNI_H_W LSX128H:$vd_in, LSX128H:$vj, uimm5:$ui5)>; ++def : LSXPat<(int_loongarch_lsx_vsrarni_w_d (v4i32 LSX128W:$vd_in), (v4i32 LSX128W:$vj), (immZExt6:$ui6)), ++ (VSRARNI_W_D LSX128W:$vd_in, LSX128W:$vj, uimm6:$ui6)>; ++def : LSXPat<(int_loongarch_lsx_vsrarni_d_q (v2i64 LSX128D:$vd_in), (v2i64 LSX128D:$vj), (immZExt7:$ui7)), ++ (VSRARNI_D_Q LSX128D:$vd_in, LSX128D:$vj, uimm7i:$ui7)>; ++ ++def : LSXPat<(int_loongarch_lsx_vssrani_b_h (v16i8 LSX128B:$vd_in), (v16i8 LSX128B:$vj), (immZExt4:$ui4)), ++ (VSSRANI_B_H LSX128B:$vd_in, LSX128B:$vj, uimm4i:$ui4)>; ++def : LSXPat<(int_loongarch_lsx_vssrani_h_w (v8i16 LSX128H:$vd_in), (v8i16 LSX128H:$vj), (immZExt5:$ui5)), ++ (VSSRANI_H_W LSX128H:$vd_in, LSX128H:$vj, uimm5:$ui5)>; ++def : LSXPat<(int_loongarch_lsx_vssrani_w_d (v4i32 LSX128W:$vd_in), (v4i32 LSX128W:$vj), (immZExt6:$ui6)), ++ (VSSRANI_W_D LSX128W:$vd_in, LSX128W:$vj, uimm6:$ui6)>; ++def : LSXPat<(int_loongarch_lsx_vssrani_d_q (v2i64 LSX128D:$vd_in), (v2i64 LSX128D:$vj), (immZExt7:$ui7)), ++ (VSSRANI_D_Q LSX128D:$vd_in, LSX128D:$vj, uimm7i:$ui7)>; ++ ++def : LSXPat<(int_loongarch_lsx_vssrani_bu_h (v16i8 LSX128B:$vd_in), (v16i8 LSX128B:$vj), (immZExt4:$ui4)), ++ (VSSRANI_BU_H LSX128B:$vd_in, LSX128B:$vj, uimm4i:$ui4)>; ++def : LSXPat<(int_loongarch_lsx_vssrani_hu_w (v8i16 LSX128H:$vd_in), (v8i16 LSX128H:$vj), (immZExt5:$ui5)), ++ (VSSRANI_HU_W LSX128H:$vd_in, LSX128H:$vj, uimm5:$ui5)>; ++def : LSXPat<(int_loongarch_lsx_vssrani_wu_d (v4i32 LSX128W:$vd_in), (v4i32 LSX128W:$vj), (immZExt6:$ui6)), ++ (VSSRANI_WU_D LSX128W:$vd_in, LSX128W:$vj, uimm6:$ui6)>; ++def : LSXPat<(int_loongarch_lsx_vssrani_du_q (v2i64 LSX128D:$vd_in), (v2i64 LSX128D:$vj), (immZExt7:$ui7)), ++ (VSSRANI_DU_Q LSX128D:$vd_in, LSX128D:$vj, uimm7i:$ui7)>; ++ ++def : LSXPat<(int_loongarch_lsx_vssrarni_b_h (v16i8 LSX128B:$vd_in), (v16i8 LSX128B:$vj), (immZExt4:$ui4)), ++ (VSSRARNI_B_H LSX128B:$vd_in, LSX128B:$vj, uimm4i:$ui4)>; ++def : LSXPat<(int_loongarch_lsx_vssrarni_h_w (v8i16 LSX128H:$vd_in), (v8i16 LSX128H:$vj), (immZExt5:$ui5)), ++ (VSSRARNI_H_W LSX128H:$vd_in, LSX128H:$vj, uimm5:$ui5)>; ++def : LSXPat<(int_loongarch_lsx_vssrarni_w_d (v4i32 LSX128W:$vd_in), (v4i32 LSX128W:$vj), (immZExt6:$ui6)), ++ (VSSRARNI_W_D LSX128W:$vd_in, LSX128W:$vj, uimm6:$ui6)>; ++def : LSXPat<(int_loongarch_lsx_vssrarni_d_q (v2i64 LSX128D:$vd_in), (v2i64 LSX128D:$vj), (immZExt7:$ui7)), ++ (VSSRARNI_D_Q LSX128D:$vd_in, LSX128D:$vj, uimm7i:$ui7)>; ++ ++def : LSXPat<(int_loongarch_lsx_vssrarni_bu_h (v16i8 LSX128B:$vd_in), (v16i8 LSX128B:$vj), (immZExt4:$ui4)), ++ (VSSRARNI_BU_H LSX128B:$vd_in, LSX128B:$vj, uimm4i:$ui4)>; ++def : LSXPat<(int_loongarch_lsx_vssrarni_hu_w (v8i16 LSX128H:$vd_in), (v8i16 LSX128H:$vj), (immZExt5:$ui5)), ++ (VSSRARNI_HU_W LSX128H:$vd_in, LSX128H:$vj, uimm5:$ui5)>; ++def : LSXPat<(int_loongarch_lsx_vssrarni_wu_d (v4i32 LSX128W:$vd_in), (v4i32 LSX128W:$vj), (immZExt6:$ui6)), ++ (VSSRARNI_WU_D LSX128W:$vd_in, LSX128W:$vj, uimm6:$ui6)>; ++def : LSXPat<(int_loongarch_lsx_vssrarni_du_q (v2i64 LSX128D:$vd_in), (v2i64 LSX128D:$vj), (immZExt7:$ui7)), ++ (VSSRARNI_DU_Q LSX128D:$vd_in, LSX128D:$vj, uimm7i:$ui7)>; ++ ++def : LSXPat<(load (add iPTR:$vj, GPR64Opnd:$vk)), ++ (VLDX PtrRC:$vj, GPR64Opnd:$vk)>; ++ ++def : LSXPat<(store (v16i8 LSX128B:$vd), (add iPTR:$vj, GPR64Opnd:$vk)), ++ (VSTX LSX128B:$vd, PtrRC:$vj, GPR64Opnd:$vk)>; ++ ++def : LSXPat<(int_loongarch_lsx_vshuf_b (v16i8 LSX128B:$vj), (v16i8 LSX128B:$vk), (v16i8 LSX128B:$va)), ++ (VSHUF_B LSX128B:$vj, LSX128B:$vk, LSX128B:$va)>; ++ ++def : LSXPat<(int_loongarch_lsx_vfcmp_ceq_s (v4f32 LSX128W:$vj), (v4f32 LSX128W:$vk)), ++ (VFCMP_CEQ_S LSX128W:$vj, LSX128W:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vfcmp_ceq_d (v2f64 LSX128D:$vj), (v2f64 LSX128D:$vk)), ++ (VFCMP_CEQ_D LSX128D:$vj, LSX128D:$vk)>; ++ ++def : LSXPat<(int_loongarch_lsx_vfcmp_cor_s (v4f32 LSX128W:$vj), (v4f32 LSX128W:$vk)), ++ (VFCMP_COR_S LSX128W:$vj, LSX128W:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vfcmp_cor_d (v2f64 LSX128D:$vj), (v2f64 LSX128D:$vk)), ++ (VFCMP_COR_D LSX128D:$vj, LSX128D:$vk)>; ++ ++def : LSXPat<(int_loongarch_lsx_vfcmp_cun_s (v4f32 LSX128W:$vj), (v4f32 LSX128W:$vk)), ++ (VFCMP_CUN_S LSX128W:$vj, LSX128W:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vfcmp_cun_d (v2f64 LSX128D:$vj), (v2f64 LSX128D:$vk)), ++ (VFCMP_CUN_D LSX128D:$vj, LSX128D:$vk)>; ++ ++def : LSXPat<(int_loongarch_lsx_vfcmp_cune_s (v4f32 LSX128W:$vj), (v4f32 LSX128W:$vk)), ++ (VFCMP_CUNE_S LSX128W:$vj, LSX128W:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vfcmp_cune_d (v2f64 LSX128D:$vj), (v2f64 LSX128D:$vk)), ++ (VFCMP_CUNE_D LSX128D:$vj, LSX128D:$vk)>; ++ ++def : LSXPat<(int_loongarch_lsx_vfcmp_cueq_s (v4f32 LSX128W:$vj), (v4f32 LSX128W:$vk)), ++ (VFCMP_CUEQ_S LSX128W:$vj, LSX128W:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vfcmp_cueq_d (v2f64 LSX128D:$vj), (v2f64 LSX128D:$vk)), ++ (VFCMP_CUEQ_D LSX128D:$vj, LSX128D:$vk)>; ++ ++def : LSXPat<(int_loongarch_lsx_vfcmp_cne_s (v4f32 LSX128W:$vj), (v4f32 LSX128W:$vk)), ++ (VFCMP_CNE_S LSX128W:$vj, LSX128W:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vfcmp_cne_d (v2f64 LSX128D:$vj), (v2f64 LSX128D:$vk)), ++ (VFCMP_CNE_D LSX128D:$vj, LSX128D:$vk)>; ++ ++def : LSXPat<(int_loongarch_lsx_vfcmp_clt_s (v4f32 LSX128W:$vj), (v4f32 LSX128W:$vk)), ++ (VFCMP_CLT_S LSX128W:$vj, LSX128W:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vfcmp_clt_d (v2f64 LSX128D:$vj), (v2f64 LSX128D:$vk)), ++ (VFCMP_CLT_D LSX128D:$vj, LSX128D:$vk)>; ++ ++def : LSXPat<(int_loongarch_lsx_vfcmp_cult_s (v4f32 LSX128W:$vj), (v4f32 LSX128W:$vk)), ++ (VFCMP_CULT_S LSX128W:$vj, LSX128W:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vfcmp_cult_d (v2f64 LSX128D:$vj), (v2f64 LSX128D:$vk)), ++ (VFCMP_CULT_D LSX128D:$vj, LSX128D:$vk)>; ++ ++def : LSXPat<(int_loongarch_lsx_vfcmp_cle_s (v4f32 LSX128W:$vj), (v4f32 LSX128W:$vk)), ++ (VFCMP_CLE_S LSX128W:$vj, LSX128W:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vfcmp_cle_d (v2f64 LSX128D:$vj), (v2f64 LSX128D:$vk)), ++ (VFCMP_CLE_D LSX128D:$vj, LSX128D:$vk)>; ++ ++def : LSXPat<(int_loongarch_lsx_vfcmp_cule_s (v4f32 LSX128W:$vj), (v4f32 LSX128W:$vk)), ++ (VFCMP_CULE_S LSX128W:$vj, LSX128W:$vk)>; ++def : LSXPat<(int_loongarch_lsx_vfcmp_cule_d (v2f64 LSX128D:$vj), (v2f64 LSX128D:$vk)), ++ (VFCMP_CULE_D LSX128D:$vj, LSX128D:$vk)>; ++ ++def : LSXPat<(int_loongarch_lsx_vftintrz_w_s (v4f32 LSX128W:$vj)), ++ (VFTINTRZ_W_S LSX128W:$vj)>; ++def : LSXPat<(int_loongarch_lsx_vftintrz_l_d (v2f64 LSX128D:$vj)), ++ (VFTINTRZ_L_D LSX128D:$vj)>; ++ ++ ++def imm_mask : ImmLeaf(Imm) && Imm == -1;}]>; ++def imm_mask_64 : ImmLeaf(Imm) && Imm == -1;}]>; ++ ++ ++def : LSXPat<(xor (v8i16 LSX128H:$vj), (vsplati16 imm_mask)), ++ (NOR_V_H_PSEUDO (v8i16 LSX128H:$vj), (v8i16 LSX128H:$vj))>; ++ ++def : LSXPat<(xor (v4i32 LSX128W:$vj), (vsplati32 imm_mask)), ++ (NOR_V_W_PSEUDO (v4i32 LSX128W:$vj), (v4i32 LSX128W:$vj))>; ++ ++def : LSXPat<(xor (v2i64 LSX128D:$vj), (vsplati64 imm_mask_64)), ++ (NOR_V_D_PSEUDO (v2i64 LSX128D:$vj), (v2i64 LSX128D:$vj))>; ++ ++ ++def : LSXPat<(and ++ (v16i8 (xor (v16i8 LSX128B:$vj),(vsplati8 imm_mask))), ++ (v16i8 LSX128B:$vk) ++ ), ++ (VANDN_V (v16i8 LSX128B:$vj), (v16i8 LSX128B:$vk))>; ++ ++def : LSXPat<(and ++ (v8i16 (xor (v8i16 LSX128H:$vj), (vsplati16 imm_mask))), ++ (v8i16 LSX128H:$vk) ++ ), ++ (VANDN_H_PSEUDO (v8i16 LSX128H:$vj), (v8i16 LSX128H:$vk))>; ++ ++def : LSXPat<(and ++ (v4i32 (xor (v4i32 LSX128W:$vj), (vsplati32 imm_mask))), ++ (v4i32 LSX128W:$vk) ++ ), ++ (VANDN_W_PSEUDO (v4i32 LSX128W:$vj), (v4i32 LSX128W:$vk))>; ++ ++def : LSXPat<(and ++ (v2i64 (xor (v2i64 LSX128D:$vj), (vsplati64 imm_mask_64))), ++ (v2i64 LSX128D:$vk) ++ ), ++ (VANDN_D_PSEUDO (v2i64 LSX128D:$vj), (v2i64 LSX128D:$vk))>; ++ ++ ++def : LSXPat<(or ++ (v16i8 LSX128B:$vj), ++ (v16i8 (xor (v16i8 LSX128B:$vk), (vsplati8 imm_mask))) ++ ), ++ (VORN_V (v16i8 LSX128B:$vj), (v16i8 LSX128B:$vk))>; ++ ++def : LSXPat<(or ++ (v8i16 LSX128H:$vj), ++ (v8i16 (xor (v8i16 LSX128H:$vk), (vsplati16 imm_mask))) ++ ), ++ (VORN_H_PSEUDO (v8i16 LSX128H:$vj), (v8i16 LSX128H:$vk))>; ++ ++def : LSXPat<(or ++ (v4i32 LSX128W:$vj), ++ (v4i32 (xor (v4i32 LSX128W:$vk), (vsplati32 imm_mask))) ++ ), ++ (VORN_W_PSEUDO (v4i32 LSX128W:$vj), (v4i32 LSX128W:$vk))>; ++ ++def : LSXPat<(or ++ (v2i64 LSX128D:$vj), ++ (v2i64 (xor (v2i64 LSX128D:$vk), (vsplati64 imm_mask_64))) ++ ), ++ (VORN_D_PSEUDO (v2i64 LSX128D:$vj), (v2i64 LSX128D:$vk))>; ++ ++ ++def : LSXPat<(add (v2i64 (abs LSX128D:$a)), (v2i64 (abs LSX128D:$b))), ++ (VADDA_D (v2i64 LSX128D:$a),(v2i64 LSX128D:$b))>; ++ ++def : LSXPat<(add (v4i32 (abs LSX128W:$a)), (v4i32 (abs LSX128W:$b))), ++ (VADDA_W (v4i32 LSX128W:$a),(v4i32 LSX128W:$b))>; ++ ++def : LSXPat<(add (v8i16 (abs LSX128H:$a)), (v8i16 (abs LSX128H:$b))), ++ (VADDA_H (v8i16 LSX128H:$a),(v8i16 LSX128H:$b))>; ++ ++def : LSXPat<(add (v16i8 (abs LSX128B:$a)), (v16i8 (abs LSX128B:$b))), ++ (VADDA_B (v16i8 LSX128B:$a),(v16i8 LSX128B:$b))>; ++ ++ ++def : LSXPat<(and v16i8:$vj, (xor (shl vsplat_imm_eq_1, v16i8:$vk), ++ (vsplati8 imm_mask))), ++ (VBITCLR_B v16i8:$vj, v16i8:$vk)>; ++ ++def : LSXPat<(and v8i16:$vj, (xor (shl vsplat_imm_eq_1, v8i16:$vk), ++ (vsplati16 imm_mask))), ++ (VBITCLR_H v8i16:$vj, v8i16:$vk)>; ++ ++def : LSXPat<(and v4i32:$vj, (xor (shl vsplat_imm_eq_1, v4i32:$vk), ++ (vsplati32 imm_mask))), ++ (VBITCLR_W v4i32:$vj, v4i32:$vk)>; ++ ++def : LSXPat<(and v2i64:$vj, (xor (shl vsplat_imm_eq_1, v2i64:$vk), ++ (vsplati64 imm_mask_64))), ++ (VBITCLR_D v2i64:$vj, v2i64:$vk)>; +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchMCInstLower.cpp b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchMCInstLower.cpp +new file mode 100644 +index 00000000000..bf70b09d42c +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchMCInstLower.cpp +@@ -0,0 +1,342 @@ ++//===- LoongArchMCInstLower.cpp - Convert LoongArch MachineInstr to MCInst ----------===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++// ++// This file contains code to lower LoongArch MachineInstrs to their corresponding ++// MCInst records. ++// ++//===----------------------------------------------------------------------===// ++ ++#include "LoongArchMCInstLower.h" ++#include "MCTargetDesc/LoongArchBaseInfo.h" ++#include "MCTargetDesc/LoongArchMCExpr.h" ++#include "LoongArchAsmPrinter.h" ++#include "llvm/CodeGen/MachineBasicBlock.h" ++#include "llvm/CodeGen/MachineInstr.h" ++#include "llvm/CodeGen/MachineOperand.h" ++#include "llvm/MC/MCExpr.h" ++#include "llvm/MC/MCInst.h" ++#include "llvm/Support/ErrorHandling.h" ++#include ++ ++using namespace llvm; ++ ++LoongArchMCInstLower::LoongArchMCInstLower(LoongArchAsmPrinter &asmprinter) ++ : AsmPrinter(asmprinter) {} ++ ++void LoongArchMCInstLower::Initialize(MCContext *C) { ++ Ctx = C; ++} ++ ++MCOperand LoongArchMCInstLower::LowerSymbolOperand(const MachineOperand &MO, ++ MachineOperandType MOTy, ++ unsigned Offset) const { ++ MCSymbolRefExpr::VariantKind Kind = MCSymbolRefExpr::VK_None; ++ LoongArchMCExpr::LoongArchExprKind TargetKind = LoongArchMCExpr::MEK_None; ++ const MCSymbol *Symbol; ++ ++ switch(MO.getTargetFlags()) { ++ default: ++ llvm_unreachable("Invalid target flag!"); ++ case LoongArchII::MO_NO_FLAG: ++ break; ++ case LoongArchII::MO_GOT_HI: ++ TargetKind = LoongArchMCExpr::MEK_GOT_HI; ++ break; ++ case LoongArchII::MO_GOT_LO: ++ TargetKind = LoongArchMCExpr::MEK_GOT_LO; ++ break; ++ case LoongArchII::MO_GOT_RRHI: ++ TargetKind = LoongArchMCExpr::MEK_GOT_RRHI; ++ break; ++ case LoongArchII::MO_GOT_RRHIGHER: ++ TargetKind = LoongArchMCExpr::MEK_GOT_RRHIGHER; ++ break; ++ case LoongArchII::MO_GOT_RRHIGHEST: ++ TargetKind = LoongArchMCExpr::MEK_GOT_RRHIGHEST; ++ break; ++ case LoongArchII::MO_GOT_RRLO: ++ TargetKind = LoongArchMCExpr::MEK_GOT_RRLO; ++ break; ++ case LoongArchII::MO_PCREL_HI: ++ TargetKind = LoongArchMCExpr::MEK_PCREL_HI; ++ break; ++ case LoongArchII::MO_PCREL_LO: ++ TargetKind = LoongArchMCExpr::MEK_PCREL_LO; ++ break; ++ case LoongArchII::MO_PCREL_RRHI: ++ TargetKind = LoongArchMCExpr::MEK_PCREL_RRHI; ++ break; ++ case LoongArchII::MO_PCREL_RRHIGHER: ++ TargetKind = LoongArchMCExpr::MEK_PCREL_RRHIGHER; ++ break; ++ case LoongArchII::MO_PCREL_RRHIGHEST: ++ TargetKind = LoongArchMCExpr::MEK_PCREL_RRHIGHEST; ++ break; ++ case LoongArchII::MO_PCREL_RRLO: ++ TargetKind = LoongArchMCExpr::MEK_PCREL_RRLO; ++ break; ++ case LoongArchII::MO_TLSIE_HI: ++ TargetKind = LoongArchMCExpr::MEK_TLSIE_HI; ++ break; ++ case LoongArchII::MO_TLSIE_LO: ++ TargetKind = LoongArchMCExpr::MEK_TLSIE_LO; ++ break; ++ case LoongArchII::MO_TLSIE_RRHI: ++ TargetKind = LoongArchMCExpr::MEK_TLSIE_RRHI; ++ break; ++ case LoongArchII::MO_TLSIE_RRHIGHER: ++ TargetKind = LoongArchMCExpr::MEK_TLSIE_RRHIGHER; ++ break; ++ case LoongArchII::MO_TLSIE_RRHIGHEST: ++ TargetKind = LoongArchMCExpr::MEK_TLSIE_RRHIGHEST; ++ break; ++ case LoongArchII::MO_TLSIE_RRLO: ++ TargetKind = LoongArchMCExpr::MEK_TLSIE_RRLO; ++ break; ++ case LoongArchII::MO_TLSLE_HI: ++ TargetKind = LoongArchMCExpr::MEK_TLSLE_HI; ++ break; ++ case LoongArchII::MO_TLSLE_HIGHER: ++ TargetKind = LoongArchMCExpr::MEK_TLSLE_HIGHER; ++ break; ++ case LoongArchII::MO_TLSLE_HIGHEST: ++ TargetKind = LoongArchMCExpr::MEK_TLSLE_HIGHEST; ++ break; ++ case LoongArchII::MO_TLSLE_LO: ++ TargetKind = LoongArchMCExpr::MEK_TLSLE_LO; ++ break; ++ case LoongArchII::MO_TLSGD_HI: ++ TargetKind = LoongArchMCExpr::MEK_TLSGD_HI; ++ break; ++ case LoongArchII::MO_TLSGD_LO: ++ TargetKind = LoongArchMCExpr::MEK_TLSGD_LO; ++ break; ++ case LoongArchII::MO_TLSGD_RRHI: ++ TargetKind = LoongArchMCExpr::MEK_TLSGD_RRHI; ++ break; ++ case LoongArchII::MO_TLSGD_RRHIGHER: ++ TargetKind = LoongArchMCExpr::MEK_TLSGD_RRHIGHER; ++ break; ++ case LoongArchII::MO_TLSGD_RRHIGHEST: ++ TargetKind = LoongArchMCExpr::MEK_TLSGD_RRHIGHEST; ++ break; ++ case LoongArchII::MO_TLSGD_RRLO: ++ TargetKind = LoongArchMCExpr::MEK_TLSGD_RRLO; ++ break; ++ case LoongArchII::MO_ABS_HI: ++ TargetKind = LoongArchMCExpr::MEK_ABS_HI; ++ break; ++ case LoongArchII::MO_ABS_HIGHER: ++ TargetKind = LoongArchMCExpr::MEK_ABS_HIGHER; ++ break; ++ case LoongArchII::MO_ABS_HIGHEST: ++ TargetKind = LoongArchMCExpr::MEK_ABS_HIGHEST; ++ break; ++ case LoongArchII::MO_ABS_LO: ++ TargetKind = LoongArchMCExpr::MEK_ABS_LO; ++ break; ++ case LoongArchII::MO_CALL_HI: ++ TargetKind = LoongArchMCExpr::MEK_CALL_HI; ++ break; ++ case LoongArchII::MO_CALL_LO: ++ TargetKind = LoongArchMCExpr::MEK_CALL_LO; ++ break; ++ } ++ ++ switch (MOTy) { ++ case MachineOperand::MO_MachineBasicBlock: ++ Symbol = MO.getMBB()->getSymbol(); ++ break; ++ ++ case MachineOperand::MO_GlobalAddress: ++ Symbol = AsmPrinter.getSymbol(MO.getGlobal()); ++ Offset += MO.getOffset(); ++ break; ++ ++ case MachineOperand::MO_BlockAddress: ++ Symbol = AsmPrinter.GetBlockAddressSymbol(MO.getBlockAddress()); ++ Offset += MO.getOffset(); ++ break; ++ ++ case MachineOperand::MO_ExternalSymbol: ++ Symbol = AsmPrinter.GetExternalSymbolSymbol(MO.getSymbolName()); ++ Offset += MO.getOffset(); ++ break; ++ ++ case MachineOperand::MO_MCSymbol: ++ Symbol = MO.getMCSymbol(); ++ Offset += MO.getOffset(); ++ break; ++ ++ case MachineOperand::MO_JumpTableIndex: ++ Symbol = AsmPrinter.GetJTISymbol(MO.getIndex()); ++ break; ++ ++ case MachineOperand::MO_ConstantPoolIndex: ++ Symbol = AsmPrinter.GetCPISymbol(MO.getIndex()); ++ Offset += MO.getOffset(); ++ break; ++ ++ default: ++ llvm_unreachable(""); ++ } ++ ++ const MCExpr *Expr = MCSymbolRefExpr::create(Symbol, Kind, *Ctx); ++ ++ if (Offset) { ++ // Assume offset is never negative. ++ assert(Offset > 0); ++ ++ Expr = MCBinaryExpr::createAdd(Expr, MCConstantExpr::create(Offset, *Ctx), ++ *Ctx); ++ } ++ ++ if (TargetKind != LoongArchMCExpr::MEK_None) ++ Expr = LoongArchMCExpr::create(TargetKind, Expr, *Ctx); ++ ++ return MCOperand::createExpr(Expr); ++} ++ ++MCOperand LoongArchMCInstLower::LowerOperand(const MachineOperand &MO, ++ unsigned offset) const { ++ MachineOperandType MOTy = MO.getType(); ++ ++ switch (MOTy) { ++ default: llvm_unreachable("unknown operand type"); ++ case MachineOperand::MO_Register: ++ // Ignore all implicit register operands. ++ if (MO.isImplicit()) break; ++ return MCOperand::createReg(MO.getReg()); ++ case MachineOperand::MO_Immediate: ++ return MCOperand::createImm(MO.getImm() + offset); ++ case MachineOperand::MO_MachineBasicBlock: ++ case MachineOperand::MO_GlobalAddress: ++ case MachineOperand::MO_ExternalSymbol: ++ case MachineOperand::MO_MCSymbol: ++ case MachineOperand::MO_JumpTableIndex: ++ case MachineOperand::MO_ConstantPoolIndex: ++ case MachineOperand::MO_BlockAddress: ++ return LowerSymbolOperand(MO, MOTy, offset); ++ case MachineOperand::MO_RegisterMask: ++ break; ++ } ++ ++ return MCOperand(); ++} ++ ++MCOperand LoongArchMCInstLower::createSub(MachineBasicBlock *BB1, ++ MachineBasicBlock *BB2, ++ LoongArchMCExpr::LoongArchExprKind Kind) const { ++ const MCSymbolRefExpr *Sym1 = MCSymbolRefExpr::create(BB1->getSymbol(), *Ctx); ++ const MCSymbolRefExpr *Sym2 = MCSymbolRefExpr::create(BB2->getSymbol(), *Ctx); ++ const MCBinaryExpr *Sub = MCBinaryExpr::createSub(Sym1, Sym2, *Ctx); ++ ++ return MCOperand::createExpr(LoongArchMCExpr::create(Kind, Sub, *Ctx)); ++} ++ ++void LoongArchMCInstLower::lowerLongBranchADDI(const MachineInstr *MI, ++ MCInst &OutMI, int Opcode) const { ++ OutMI.setOpcode(Opcode); ++ ++ LoongArchMCExpr::LoongArchExprKind Kind; ++ unsigned TargetFlags = MI->getOperand(2).getTargetFlags(); ++ switch (TargetFlags) { ++ case LoongArchII::MO_ABS_HIGHEST: ++ Kind = LoongArchMCExpr::MEK_ABS_HIGHEST; ++ break; ++ case LoongArchII::MO_ABS_HIGHER: ++ Kind = LoongArchMCExpr::MEK_ABS_HIGHER; ++ break; ++ case LoongArchII::MO_ABS_HI: ++ Kind = LoongArchMCExpr::MEK_ABS_HI; ++ break; ++ case LoongArchII::MO_ABS_LO: ++ Kind = LoongArchMCExpr::MEK_ABS_LO; ++ break; ++ default: ++ report_fatal_error("Unexpected flags for lowerLongBranchADDI"); ++ } ++ ++ // Lower two register operands. ++ for (unsigned I = 0, E = 2; I != E; ++I) { ++ const MachineOperand &MO = MI->getOperand(I); ++ OutMI.addOperand(LowerOperand(MO)); ++ } ++ ++ if (MI->getNumOperands() == 3) { ++ // Lower register operand. ++ const MCExpr *Expr = ++ MCSymbolRefExpr::create(MI->getOperand(2).getMBB()->getSymbol(), *Ctx); ++ const LoongArchMCExpr *LoongArchExpr = LoongArchMCExpr::create(Kind, Expr, *Ctx); ++ OutMI.addOperand(MCOperand::createExpr(LoongArchExpr)); ++ } else if (MI->getNumOperands() == 4) { ++ // Create %lo($tgt-$baltgt) or %hi($tgt-$baltgt). ++ OutMI.addOperand(createSub(MI->getOperand(2).getMBB(), ++ MI->getOperand(3).getMBB(), Kind)); ++ } ++} ++ ++void LoongArchMCInstLower::lowerLongBranchPCADDU12I(const MachineInstr *MI, ++ MCInst &OutMI, int Opcode) const { ++ OutMI.setOpcode(Opcode); ++ ++ LoongArchMCExpr::LoongArchExprKind Kind; ++ unsigned TargetFlags = MI->getOperand(1).getTargetFlags(); ++ switch (TargetFlags) { ++ case LoongArchII::MO_PCREL_HI: ++ Kind = LoongArchMCExpr::MEK_PCREL_HI; ++ break; ++ case LoongArchII::MO_PCREL_LO: ++ Kind = LoongArchMCExpr::MEK_PCREL_LO; ++ break; ++ default: ++ report_fatal_error("Unexpected flags for lowerLongBranchADDI"); ++ } ++ ++ // Lower one register operands. ++ const MachineOperand &MO = MI->getOperand(0); ++ OutMI.addOperand(LowerOperand(MO)); ++ ++ const MCExpr *Expr = ++ MCSymbolRefExpr::create(MI->getOperand(1).getMBB()->getSymbol(), *Ctx); ++ const LoongArchMCExpr *LoongArchExpr = LoongArchMCExpr::create(Kind, Expr, *Ctx); ++ OutMI.addOperand(MCOperand::createExpr(LoongArchExpr)); ++} ++bool LoongArchMCInstLower::lowerLongBranch(const MachineInstr *MI, ++ MCInst &OutMI) const { ++ switch (MI->getOpcode()) { ++ default: ++ return false; ++ case LoongArch::LONG_BRANCH_ADDIW: ++ case LoongArch::LONG_BRANCH_ADDIW2Op: ++ lowerLongBranchADDI(MI, OutMI, LoongArch::ADDI_W); ++ return true; ++ case LoongArch::LONG_BRANCH_ADDID: ++ case LoongArch::LONG_BRANCH_ADDID2Op: ++ lowerLongBranchADDI(MI, OutMI, LoongArch::ADDI_D); ++ return true; ++ case LoongArch::LONG_BRANCH_PCADDU12I: ++ lowerLongBranchPCADDU12I(MI, OutMI, LoongArch::PCADDU12I); ++ return true; ++ } ++} ++ ++void LoongArchMCInstLower::Lower(const MachineInstr *MI, MCInst &OutMI) const { ++ if (lowerLongBranch(MI, OutMI)) ++ return; ++ ++ OutMI.setOpcode(MI->getOpcode()); ++ ++ for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) { ++ const MachineOperand &MO = MI->getOperand(i); ++ MCOperand MCOp = LowerOperand(MO); ++ ++ if (MCOp.isValid()) ++ OutMI.addOperand(MCOp); ++ } ++} +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchMCInstLower.h b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchMCInstLower.h +new file mode 100644 +index 00000000000..6463a7b64fb +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchMCInstLower.h +@@ -0,0 +1,55 @@ ++//===- LoongArchMCInstLower.h - Lower MachineInstr to MCInst --------*- C++ -*--===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++ ++#ifndef LLVM_LIB_TARGET_LOONGARCH_LOONGARCHMCINSTLOWER_H ++#define LLVM_LIB_TARGET_LOONGARCH_LOONGARCHMCINSTLOWER_H ++ ++#include "MCTargetDesc/LoongArchMCExpr.h" ++#include "llvm/CodeGen/MachineOperand.h" ++#include "llvm/Support/Compiler.h" ++ ++namespace llvm { ++ ++class MachineBasicBlock; ++class MachineInstr; ++class MCContext; ++class MCInst; ++class MCOperand; ++class LoongArchAsmPrinter; ++ ++/// LoongArchMCInstLower - This class is used to lower an MachineInstr into an ++/// MCInst. ++class LLVM_LIBRARY_VISIBILITY LoongArchMCInstLower { ++ using MachineOperandType = MachineOperand::MachineOperandType; ++ ++ MCContext *Ctx; ++ LoongArchAsmPrinter &AsmPrinter; ++ ++public: ++ LoongArchMCInstLower(LoongArchAsmPrinter &asmprinter); ++ ++ void Initialize(MCContext *C); ++ void Lower(const MachineInstr *MI, MCInst &OutMI) const; ++ MCOperand LowerOperand(const MachineOperand& MO, unsigned offset = 0) const; ++ ++private: ++ MCOperand LowerSymbolOperand(const MachineOperand &MO, ++ MachineOperandType MOTy, unsigned Offset) const; ++ MCOperand createSub(MachineBasicBlock *BB1, MachineBasicBlock *BB2, ++ LoongArchMCExpr::LoongArchExprKind Kind) const; ++ void lowerLongBranchLUi(const MachineInstr *MI, MCInst &OutMI) const; ++ void lowerLongBranchADDI(const MachineInstr *MI, MCInst &OutMI, ++ int Opcode) const; ++ void lowerLongBranchPCADDU12I(const MachineInstr *MI, MCInst &OutMI, ++ int Opcode) const; ++ bool lowerLongBranch(const MachineInstr *MI, MCInst &OutMI) const; ++}; ++ ++} // end namespace llvm ++ ++#endif // LLVM_LIB_TARGET_LOONGARCH_LOONGARCHMCINSTLOWER_H +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchMachineFunction.cpp b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchMachineFunction.cpp +new file mode 100644 +index 00000000000..b1b28ef2e28 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchMachineFunction.cpp +@@ -0,0 +1,58 @@ ++//===-- LoongArchMachineFunctionInfo.cpp - Private data used for LoongArch ----------===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++ ++#include "LoongArchMachineFunction.h" ++#include "MCTargetDesc/LoongArchABIInfo.h" ++#include "LoongArchSubtarget.h" ++#include "LoongArchTargetMachine.h" ++#include "llvm/CodeGen/MachineFrameInfo.h" ++#include "llvm/CodeGen/MachineRegisterInfo.h" ++#include "llvm/CodeGen/PseudoSourceValue.h" ++#include "llvm/CodeGen/TargetRegisterInfo.h" ++#include "llvm/Support/CommandLine.h" ++ ++using namespace llvm; ++ ++LoongArchFunctionInfo::~LoongArchFunctionInfo() = default; ++ ++void LoongArchFunctionInfo::createEhDataRegsFI() { ++ const TargetRegisterInfo &TRI = *MF.getSubtarget().getRegisterInfo(); ++ for (int I = 0; I < 4; ++I) { ++ const TargetRegisterClass &RC = ++ static_cast(MF.getTarget()).getABI().IsLP64() ++ ? LoongArch::GPR64RegClass ++ : LoongArch::GPR32RegClass; ++ ++ EhDataRegFI[I] = MF.getFrameInfo().CreateStackObject(TRI.getSpillSize(RC), ++ TRI.getSpillAlignment(RC), false); ++ } ++} ++ ++bool LoongArchFunctionInfo::isEhDataRegFI(int FI) const { ++ return CallsEhReturn && (FI == EhDataRegFI[0] || FI == EhDataRegFI[1] ++ || FI == EhDataRegFI[2] || FI == EhDataRegFI[3]); ++} ++ ++MachinePointerInfo LoongArchFunctionInfo::callPtrInfo(const char *ES) { ++ return MachinePointerInfo(MF.getPSVManager().getExternalSymbolCallEntry(ES)); ++} ++ ++MachinePointerInfo LoongArchFunctionInfo::callPtrInfo(const GlobalValue *GV) { ++ return MachinePointerInfo(MF.getPSVManager().getGlobalValueCallEntry(GV)); ++} ++ ++int LoongArchFunctionInfo::getMoveF64ViaSpillFI(const TargetRegisterClass *RC) { ++ const TargetRegisterInfo &TRI = *MF.getSubtarget().getRegisterInfo(); ++ if (MoveF64ViaSpillFI == -1) { ++ MoveF64ViaSpillFI = MF.getFrameInfo().CreateStackObject( ++ TRI.getSpillSize(*RC), TRI.getSpillAlignment(*RC), false); ++ } ++ return MoveF64ViaSpillFI; ++} ++ ++void LoongArchFunctionInfo::anchor() {} +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchMachineFunction.h b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchMachineFunction.h +new file mode 100644 +index 00000000000..1765013eabd +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchMachineFunction.h +@@ -0,0 +1,103 @@ ++//===- LoongArchMachineFunctionInfo.h - Private data used for LoongArch ---*- C++ -*-===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++// ++// This file declares the LoongArch specific subclass of MachineFunctionInfo. ++// ++//===----------------------------------------------------------------------===// ++ ++#ifndef LLVM_LIB_TARGET_LOONGARCH_LOONGARCHMACHINEFUNCTION_H ++#define LLVM_LIB_TARGET_LOONGARCH_LOONGARCHMACHINEFUNCTION_H ++ ++#include "llvm/CodeGen/MachineFunction.h" ++#include "llvm/CodeGen/MachineMemOperand.h" ++#include ++ ++namespace llvm { ++ ++/// LoongArchFunctionInfo - This class is derived from MachineFunction private ++/// LoongArch target-specific information for each MachineFunction. ++class LoongArchFunctionInfo : public MachineFunctionInfo { ++public: ++ LoongArchFunctionInfo(MachineFunction &MF) : MF(MF) {} ++ ++ ~LoongArchFunctionInfo() override; ++ ++ unsigned getSRetReturnReg() const { return SRetReturnReg; } ++ void setSRetReturnReg(unsigned Reg) { SRetReturnReg = Reg; } ++ ++ int getVarArgsFrameIndex() const { return VarArgsFrameIndex; } ++ void setVarArgsFrameIndex(int Index) { VarArgsFrameIndex = Index; } ++ ++ unsigned getVarArgsSaveSize() const { return VarArgsSaveSize; } ++ void setVarArgsSaveSize(int Size) { VarArgsSaveSize = Size; } ++ ++ bool hasByvalArg() const { return HasByvalArg; } ++ void setFormalArgInfo(unsigned Size, bool HasByval) { ++ IncomingArgSize = Size; ++ HasByvalArg = HasByval; ++ } ++ ++ unsigned getIncomingArgSize() const { return IncomingArgSize; } ++ ++ bool callsEhReturn() const { return CallsEhReturn; } ++ void setCallsEhReturn() { CallsEhReturn = true; } ++ ++ void createEhDataRegsFI(); ++ int getEhDataRegFI(unsigned Reg) const { return EhDataRegFI[Reg]; } ++ bool isEhDataRegFI(int FI) const; ++ ++ /// Create a MachinePointerInfo that has an ExternalSymbolPseudoSourceValue ++ /// object representing a GOT entry for an external function. ++ MachinePointerInfo callPtrInfo(const char *ES); ++ ++ /// Create a MachinePointerInfo that has a GlobalValuePseudoSourceValue object ++ /// representing a GOT entry for a global function. ++ MachinePointerInfo callPtrInfo(const GlobalValue *GV); ++ ++ void setSaveS2() { SaveS2 = true; } ++ bool hasSaveS2() const { return SaveS2; } ++ ++ int getMoveF64ViaSpillFI(const TargetRegisterClass *RC); ++ ++private: ++ virtual void anchor(); ++ ++ MachineFunction& MF; ++ ++ /// SRetReturnReg - Some subtargets require that sret lowering includes ++ /// returning the value of the returned struct in a register. This field ++ /// holds the virtual register into which the sret argument is passed. ++ unsigned SRetReturnReg = 0; ++ ++ /// VarArgsFrameIndex - FrameIndex for start of varargs area. ++ int VarArgsFrameIndex = 0; ++ int VarArgsSaveSize = 0; ++ ++ /// True if function has a byval argument. ++ bool HasByvalArg; ++ ++ /// Size of incoming argument area. ++ unsigned IncomingArgSize; ++ ++ /// CallsEhReturn - Whether the function calls llvm.eh.return. ++ bool CallsEhReturn = false; ++ ++ /// Frame objects for spilling eh data registers. ++ int EhDataRegFI[4]; ++ ++ // saveS2 ++ bool SaveS2 = false; ++ ++ /// FrameIndex for expanding BuildPairF64 nodes to spill and reload when the ++ /// LP32 FPXX ABI is enabled. -1 is used to denote invalid index. ++ int MoveF64ViaSpillFI = -1; ++}; ++ ++} // end namespace llvm ++ ++#endif // LLVM_LIB_TARGET_LOONGARCH_LOONGARCHMACHINEFUNCTION_H +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchModuleISelDAGToDAG.cpp b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchModuleISelDAGToDAG.cpp +new file mode 100644 +index 00000000000..8dbf30f2143 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchModuleISelDAGToDAG.cpp +@@ -0,0 +1,53 @@ ++//===----------------------------------------------------------------------===// ++// Instruction Selector Subtarget Control ++//===----------------------------------------------------------------------===// ++ ++//===----------------------------------------------------------------------===// ++// This file defines a pass used to change the subtarget for the ++// LoongArch Instruction selector. ++// ++//===----------------------------------------------------------------------===// ++ ++#include "LoongArch.h" ++#include "LoongArchTargetMachine.h" ++#include "llvm/CodeGen/TargetPassConfig.h" ++#include "llvm/CodeGen/StackProtector.h" ++#include "llvm/Support/Debug.h" ++#include "llvm/Support/raw_ostream.h" ++ ++using namespace llvm; ++ ++#define DEBUG_TYPE "loongarch-isel" ++ ++namespace { ++ class LoongArchModuleDAGToDAGISel : public MachineFunctionPass { ++ public: ++ static char ID; ++ ++ LoongArchModuleDAGToDAGISel() : MachineFunctionPass(ID) {} ++ ++ // Pass Name ++ StringRef getPassName() const override { ++ return "LoongArch DAG->DAG Pattern Instruction Selection"; ++ } ++ ++ void getAnalysisUsage(AnalysisUsage &AU) const override { ++ AU.addRequired(); ++ AU.addPreserved(); ++ MachineFunctionPass::getAnalysisUsage(AU); ++ } ++ ++ bool runOnMachineFunction(MachineFunction &MF) override; ++ }; ++ ++ char LoongArchModuleDAGToDAGISel::ID = 0; ++} ++ ++bool LoongArchModuleDAGToDAGISel::runOnMachineFunction(MachineFunction &MF) { ++ LLVM_DEBUG(errs() << "In LoongArchModuleDAGToDAGISel::runMachineFunction\n"); ++ return false; ++} ++ ++llvm::FunctionPass *llvm::createLoongArchModuleISelDagPass() { ++ return new LoongArchModuleDAGToDAGISel(); ++} +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchRegisterInfo.cpp b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchRegisterInfo.cpp +new file mode 100644 +index 00000000000..42dba1aefa2 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchRegisterInfo.cpp +@@ -0,0 +1,357 @@ ++//===- LoongArchRegisterInfo.cpp - LoongArch Register Information -------------------===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++// ++// This file contains the LoongArch implementation of the TargetRegisterInfo class. ++// ++//===----------------------------------------------------------------------===// ++ ++#include "LoongArchRegisterInfo.h" ++#include "MCTargetDesc/LoongArchABIInfo.h" ++#include "LoongArch.h" ++#include "LoongArchMachineFunction.h" ++#include "LoongArchSubtarget.h" ++#include "LoongArchTargetMachine.h" ++#include "llvm/ADT/BitVector.h" ++#include "llvm/ADT/STLExtras.h" ++#include "llvm/CodeGen/MachineFrameInfo.h" ++#include "llvm/CodeGen/MachineFunction.h" ++#include "llvm/CodeGen/MachineInstr.h" ++#include "llvm/CodeGen/MachineRegisterInfo.h" ++#include "llvm/CodeGen/TargetFrameLowering.h" ++#include "llvm/CodeGen/TargetRegisterInfo.h" ++#include "llvm/CodeGen/TargetSubtargetInfo.h" ++#include "llvm/IR/Function.h" ++#include "llvm/MC/MCRegisterInfo.h" ++#include "llvm/Support/Debug.h" ++#include "llvm/Support/ErrorHandling.h" ++#include "llvm/Support/raw_ostream.h" ++#include ++ ++using namespace llvm; ++ ++#define DEBUG_TYPE "loongarch-reg-info" ++ ++#define GET_REGINFO_TARGET_DESC ++#include "LoongArchGenRegisterInfo.inc" ++ ++LoongArchRegisterInfo::LoongArchRegisterInfo() : LoongArchGenRegisterInfo(LoongArch::RA) {} ++ ++unsigned LoongArchRegisterInfo::getPICCallReg() { return LoongArch::T8; } ++ ++const TargetRegisterClass * ++LoongArchRegisterInfo::getPointerRegClass(const MachineFunction &MF, ++ unsigned Kind) const { ++ LoongArchABIInfo ABI = MF.getSubtarget().getABI(); ++ LoongArchPtrClass PtrClassKind = static_cast(Kind); ++ ++ switch (PtrClassKind) { ++ case LoongArchPtrClass::Default: ++ return ABI.ArePtrs64bit() ? &LoongArch::GPR64RegClass : &LoongArch::GPR32RegClass; ++ case LoongArchPtrClass::StackPointer: ++ return ABI.ArePtrs64bit() ? &LoongArch::SP64RegClass : &LoongArch::SP32RegClass; ++ } ++ ++ llvm_unreachable("Unknown pointer kind"); ++} ++ ++unsigned ++LoongArchRegisterInfo::getRegPressureLimit(const TargetRegisterClass *RC, ++ MachineFunction &MF) const { ++ switch (RC->getID()) { ++ default: ++ return 0; ++ case LoongArch::GPR32RegClassID: ++ case LoongArch::GPR64RegClassID: ++ { ++ const TargetFrameLowering *TFI = MF.getSubtarget().getFrameLowering(); ++ return 28 - TFI->hasFP(MF); ++ } ++ case LoongArch::FGR32RegClassID: ++ return 32; ++ case LoongArch::FGR64RegClassID: ++ return 32; ++ } ++} ++ ++//===----------------------------------------------------------------------===// ++// Callee Saved Registers methods ++//===----------------------------------------------------------------------===// ++ ++/// LoongArch Callee Saved Registers ++const MCPhysReg * ++LoongArchRegisterInfo::getCalleeSavedRegs(const MachineFunction *MF) const { ++ const LoongArchSubtarget &Subtarget = MF->getSubtarget(); ++ ++ if (Subtarget.isSingleFloat()) ++ return CSR_SingleFloatOnly_SaveList; ++ ++ if (Subtarget.isABI_LP64()) ++ return CSR_LP64_SaveList; ++ ++ if (Subtarget.isABI_LPX32()) ++ return CSR_LPX32_SaveList; ++ ++ return CSR_LP32_SaveList; ++} ++ ++const uint32_t * ++LoongArchRegisterInfo::getCallPreservedMask(const MachineFunction &MF, ++ CallingConv::ID) const { ++ const LoongArchSubtarget &Subtarget = MF.getSubtarget(); ++ ++ if (Subtarget.isSingleFloat()) ++ return CSR_SingleFloatOnly_RegMask; ++ ++ if (Subtarget.isABI_LP64()) ++ return CSR_LP64_RegMask; ++ ++ return CSR_LP32_RegMask; ++} ++ ++BitVector LoongArchRegisterInfo:: ++getReservedRegs(const MachineFunction &MF) const { ++ static const MCPhysReg ReservedGPR32[] = { ++ LoongArch::ZERO, LoongArch::SP, LoongArch::TP, LoongArch::T9 ++ }; ++ ++ static const MCPhysReg ReservedGPR64[] = { ++ LoongArch::ZERO_64, LoongArch::SP_64, LoongArch::TP_64, LoongArch::T9_64 ++ }; ++ ++ BitVector Reserved(getNumRegs()); ++ const LoongArchSubtarget &Subtarget = MF.getSubtarget(); ++ ++ for (unsigned I = 0; I < array_lengthof(ReservedGPR32); ++I) ++ Reserved.set(ReservedGPR32[I]); ++ ++ for (unsigned I = 0; I < array_lengthof(ReservedGPR64); ++I) ++ Reserved.set(ReservedGPR64[I]); ++ ++ // Reserve FP if this function should have a dedicated frame pointer register. ++ if (Subtarget.getFrameLowering()->hasFP(MF)) { ++ Reserved.set(LoongArch::FP); ++ Reserved.set(LoongArch::FP_64); ++ ++ // Reserve the base register if we need to both realign the stack and ++ // allocate variable-sized objects at runtime. This should test the ++ // same conditions as LoongArchFrameLowering::hasBP(). ++ if (needsStackRealignment(MF) && ++ MF.getFrameInfo().hasVarSizedObjects()) { ++ Reserved.set(LoongArch::S7); ++ Reserved.set(LoongArch::S7_64); ++ } ++ } ++ ++ return Reserved; ++} ++ ++bool ++LoongArchRegisterInfo::requiresRegisterScavenging(const MachineFunction &MF) const { ++ return true; ++} ++ ++bool LoongArchRegisterInfo:: ++requiresFrameIndexScavenging(const MachineFunction &MF) const { ++ return true; ++} ++ ++bool ++LoongArchRegisterInfo::trackLivenessAfterRegAlloc(const MachineFunction &MF) const { ++ return true; ++} ++ ++/// Get the size of the offset supported by the given load/store/inline asm. ++/// The result includes the effects of any scale factors applied to the ++/// instruction immediate. ++static inline unsigned getLoadStoreOffsetSizeInBits(const unsigned Opcode, ++ MachineOperand MO) { ++ switch (Opcode) { ++ case LoongArch::LDPTR_W: ++ case LoongArch::LDPTR_W32: ++ case LoongArch::LDPTR_D: ++ case LoongArch::STPTR_W: ++ case LoongArch::STPTR_W32: ++ case LoongArch::STPTR_D: ++ case LoongArch::LL_W: ++ case LoongArch::LL_D: ++ case LoongArch::SC_W: ++ case LoongArch::SC_D: ++ return 14 + 2 /* scale factor */; ++ case LoongArch::INLINEASM: { ++ unsigned ConstraintID = InlineAsm::getMemoryConstraintID(MO.getImm()); ++ switch (ConstraintID) { ++ case InlineAsm::Constraint_ZC: { ++ return 14 + 2 /* scale factor */; ++ } ++ default: ++ return 12; ++ } ++ } ++ default: ++ return 12; ++ } ++} ++ ++/// Get the scale factor applied to the immediate in the given load/store. ++static inline unsigned getLoadStoreOffsetAlign(const unsigned Opcode) { ++ switch (Opcode) { ++ case LoongArch::LDPTR_W: ++ case LoongArch::LDPTR_W32: ++ case LoongArch::LDPTR_D: ++ case LoongArch::STPTR_W: ++ case LoongArch::STPTR_W32: ++ case LoongArch::STPTR_D: ++ case LoongArch::LL_W: ++ case LoongArch::LL_D: ++ case LoongArch::SC_W: ++ case LoongArch::SC_D: ++ return 4; ++ default: ++ return 1; ++ } ++} ++ ++// FrameIndex represent objects inside a abstract stack. ++// We must replace FrameIndex with an stack/frame pointer ++// direct reference. ++void LoongArchRegisterInfo:: ++eliminateFrameIndex(MachineBasicBlock::iterator II, int SPAdj, ++ unsigned FIOperandNum, RegScavenger *RS) const { ++ MachineInstr &MI = *II; ++ MachineFunction &MF = *MI.getParent()->getParent(); ++ const LoongArchFrameLowering *TFI = getFrameLowering(MF); ++ ++ LLVM_DEBUG(errs() << "\nFunction : " << MF.getName() << "\n"; ++ errs() << "<--------->\n" ++ << MI); ++ ++ int FrameIndex = MI.getOperand(FIOperandNum).getIndex(); ++ uint64_t stackSize = MF.getFrameInfo().getStackSize(); ++ int64_t spOffset = MF.getFrameInfo().getObjectOffset(FrameIndex); ++ ++ LLVM_DEBUG(errs() << "FrameIndex : " << FrameIndex << "\n" ++ << "spOffset : " << spOffset << "\n" ++ << "stackSize : " << stackSize << "\n" ++ << "SPAdj : " << SPAdj << "\n" ++ << "alignment : " ++ << MF.getFrameInfo().getObjectAlignment(FrameIndex) ++ << "\n"); ++ ++ LoongArchABIInfo ABI = ++ static_cast(MF.getTarget()).getABI(); ++ ++ // Everything else is referenced relative to whatever register ++ // getFrameIndexReference() returns. ++ unsigned FrameReg; ++ int Offset = TFI->getFrameIndexReference(MF, FrameIndex, FrameReg) + ++ MI.getOperand(FIOperandNum + 1).getImm(); ++ ++ LLVM_DEBUG(errs() << "Location : " ++ << "FrameReg<" << FrameReg << "> + " << Offset << "\n" ++ << "<--------->\n"); ++ ++ MachineBasicBlock &MBB = *MI.getParent(); ++ DebugLoc DL = II->getDebugLoc(); ++ bool IsKill = false; ++ ++ if (!MI.isDebugValue()) { ++ // Make sure Offset fits within the field available. ++ // For ldptr/stptr/ll/sc instructions, this is a 14-bit signed immediate (scaled by ++ // 2), otherwise it is a 12-bit signed immediate. ++ unsigned OffsetBitSize = getLoadStoreOffsetSizeInBits( ++ MI.getOpcode(), MI.getOperand(FIOperandNum - 1)); ++ const Align OffsetAlign(getLoadStoreOffsetAlign(MI.getOpcode())); ++ ++ if (OffsetBitSize == 16 && isInt<12>(Offset) && ++ !isAligned(OffsetAlign, Offset)) { ++ // If we have an offset that needs to fit into a signed n-bit immediate ++ // (where n == 16) and doesn't aligned and does fit into 12-bits ++ // then use an ADDI ++ const TargetRegisterClass *PtrRC = ABI.ArePtrs64bit() ++ ? &LoongArch::GPR64RegClass ++ : &LoongArch::GPR32RegClass; ++ MachineRegisterInfo &RegInfo = MBB.getParent()->getRegInfo(); ++ unsigned Reg = RegInfo.createVirtualRegister(PtrRC); ++ const LoongArchInstrInfo &TII = *static_cast( ++ MBB.getParent()->getSubtarget().getInstrInfo()); ++ BuildMI(MBB, II, DL, TII.get(ABI.GetPtrAddiOp()), Reg) ++ .addReg(FrameReg) ++ .addImm(Offset); ++ ++ FrameReg = Reg; ++ Offset = 0; ++ IsKill = true; ++ } else if (!isInt<12>(Offset)) { ++ // Otherwise split the offset into several pieces and add it in multiple ++ // instructions. ++ const LoongArchInstrInfo &TII = *static_cast( ++ MBB.getParent()->getSubtarget().getInstrInfo()); ++ unsigned Reg = TII.loadImmediate(Offset, MBB, II, DL); ++ BuildMI(MBB, II, DL, TII.get(ABI.GetPtrAddOp()), Reg) ++ .addReg(FrameReg) ++ .addReg(Reg, RegState::Kill); ++ ++ FrameReg = Reg; ++ Offset = 0; ++ IsKill = true; ++ } ++ } ++ ++ MI.getOperand(FIOperandNum).ChangeToRegister(FrameReg, false, false, IsKill); ++ MI.getOperand(FIOperandNum + 1).ChangeToImmediate(Offset); ++} ++ ++Register LoongArchRegisterInfo:: ++getFrameRegister(const MachineFunction &MF) const { ++ const LoongArchSubtarget &Subtarget = MF.getSubtarget(); ++ const TargetFrameLowering *TFI = Subtarget.getFrameLowering(); ++ bool IsLP64 = ++ static_cast(MF.getTarget()).getABI().IsLP64(); ++ ++ return TFI->hasFP(MF) ? (IsLP64 ? LoongArch::FP_64 : LoongArch::FP) : ++ (IsLP64 ? LoongArch::SP_64 : LoongArch::SP); ++} ++ ++const TargetRegisterClass * ++LoongArchRegisterInfo::intRegClass(unsigned Size) const { ++ if (Size == 4) ++ return &LoongArch::GPR32RegClass; ++ ++ assert(Size == 8); ++ return &LoongArch::GPR64RegClass; ++} ++ ++bool LoongArchRegisterInfo::canRealignStack(const MachineFunction &MF) const { ++ // Avoid realigning functions that explicitly do not want to be realigned. ++ // Normally, we should report an error when a function should be dynamically ++ // realigned but also has the attribute no-realign-stack. Unfortunately, ++ // with this attribute, MachineFrameInfo clamps each new object's alignment ++ // to that of the stack's alignment as specified by the ABI. As a result, ++ // the information of whether we have objects with larger alignment ++ // requirement than the stack's alignment is already lost at this point. ++ if (!TargetRegisterInfo::canRealignStack(MF)) ++ return false; ++ ++ const LoongArchSubtarget &Subtarget = MF.getSubtarget(); ++ unsigned FP = Subtarget.is64Bit() ? LoongArch::FP_64 : LoongArch::FP; ++ unsigned BP = Subtarget.is64Bit() ? LoongArch::S7_64 : LoongArch::S7; ++ ++ // We can't perform dynamic stack realignment if we can't reserve the ++ // frame pointer register. ++ if (!MF.getRegInfo().canReserveReg(FP)) ++ return false; ++ ++ // We can realign the stack if we know the maximum call frame size and we ++ // don't have variable sized objects. ++ if (Subtarget.getFrameLowering()->hasReservedCallFrame(MF)) ++ return true; ++ ++ // We have to reserve the base pointer register in the presence of variable ++ // sized objects. ++ return MF.getRegInfo().canReserveReg(BP); ++} +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchRegisterInfo.h b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchRegisterInfo.h +new file mode 100644 +index 00000000000..dd3be916a73 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchRegisterInfo.h +@@ -0,0 +1,80 @@ ++//===- LoongArchRegisterInfo.h - LoongArch Register Information Impl ------*- C++ -*-===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++// ++// This file contains the LoongArch implementation of the TargetRegisterInfo class. ++// ++//===----------------------------------------------------------------------===// ++ ++#ifndef LLVM_LIB_TARGET_LOONGARCH_LOONGARCHREGISTERINFO_H ++#define LLVM_LIB_TARGET_LOONGARCH_LOONGARCHREGISTERINFO_H ++ ++#include "LoongArch.h" ++#include "llvm/CodeGen/MachineBasicBlock.h" ++#include ++ ++#define GET_REGINFO_HEADER ++#include "LoongArchGenRegisterInfo.inc" ++ ++namespace llvm { ++ ++class TargetRegisterClass; ++ ++class LoongArchRegisterInfo : public LoongArchGenRegisterInfo { ++public: ++ enum class LoongArchPtrClass { ++ /// The default register class for integer values. ++ Default = 0, ++ /// The stack pointer only. ++ StackPointer = 1, ++ }; ++ ++ LoongArchRegisterInfo(); ++ ++ /// Get PIC indirect call register ++ static unsigned getPICCallReg(); ++ ++ /// Code Generation virtual methods... ++ const TargetRegisterClass *getPointerRegClass(const MachineFunction &MF, ++ unsigned Kind) const override; ++ ++ unsigned getRegPressureLimit(const TargetRegisterClass *RC, ++ MachineFunction &MF) const override; ++ const MCPhysReg *getCalleeSavedRegs(const MachineFunction *MF) const override; ++ const uint32_t *getCallPreservedMask(const MachineFunction &MF, ++ CallingConv::ID) const override; ++ BitVector getReservedRegs(const MachineFunction &MF) const override; ++ ++ bool requiresRegisterScavenging(const MachineFunction &MF) const override; ++ ++ bool requiresFrameIndexScavenging(const MachineFunction &MF) const override; ++ ++ bool trackLivenessAfterRegAlloc(const MachineFunction &MF) const override; ++ ++ /// Stack Frame Processing Methods ++ void eliminateFrameIndex(MachineBasicBlock::iterator II, ++ int SPAdj, unsigned FIOperandNum, ++ RegScavenger *RS = nullptr) const override; ++ ++ // Stack realignment queries. ++ bool canRealignStack(const MachineFunction &MF) const override; ++ ++ /// Debug information queries. ++ Register getFrameRegister(const MachineFunction &MF) const override; ++ ++ /// Return GPR register class. ++ const TargetRegisterClass *intRegClass(unsigned Size) const; ++ ++private: ++ void eliminateFI(MachineBasicBlock::iterator II, unsigned OpNo, ++ int FrameIndex, uint64_t StackSize, ++ int SPAdj, int64_t SPOffset) const; ++}; ++ ++} // end namespace llvm ++ ++#endif // LLVM_LIB_TARGET_LOONGARCH_LOONGARCHREGISTERINFO_H +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchRegisterInfo.td b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchRegisterInfo.td +new file mode 100644 +index 00000000000..96569e0756c +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchRegisterInfo.td +@@ -0,0 +1,373 @@ ++//===-- LoongArchRegisterInfo.td - LoongArch Register defs -----------*- tablegen -*-===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++ ++//===----------------------------------------------------------------------===// ++// Declarations that describe the LoongArch register file ++//===----------------------------------------------------------------------===// ++let Namespace = "LoongArch" in { ++def sub_32 : SubRegIndex<32>; ++def sub_64 : SubRegIndex<64>; ++def sub_128 : SubRegIndex<128>; ++def sub_fcsr1 : SubRegIndex<5>; ++def sub_fcsr2 : SubRegIndex<13, 16>; ++def sub_fcsr3 : SubRegIndex<2, 8>; ++def sub_lo : SubRegIndex<32>; ++def sub_hi : SubRegIndex<32, 32>; ++def PC : Register<"pc">; ++} ++ ++class Unallocatable { ++ bit isAllocatable = 0; ++} ++ ++/// We have banks of registers each. ++class LoongArchReg Enc, string n> : Register { ++ let HWEncoding = Enc; ++ let Namespace = "LoongArch"; ++} ++ ++class LoongArchRegWithSubRegs Enc, string n, list subregs> ++ : RegisterWithSubRegs { ++ let HWEncoding = Enc; ++ let Namespace = "LoongArch"; ++} ++ ++/// LoongArch 32-bit CPU Registers. ++class LoongArch32GPR Enc, string n> : LoongArchReg; ++ ++/// LoongArch 64-bit CPU Registers. ++class LoongArch64GPR Enc, string n, list subregs> ++ : LoongArchRegWithSubRegs { ++ let SubRegIndices = [sub_32]; ++} ++ ++/// LoongArch 64-bit Floating-point Registers ++class FGR32 Enc, string n> : LoongArchReg; ++class FGR64 Enc, string n, list subregs> ++ : LoongArchRegWithSubRegs { ++ let SubRegIndices = [sub_lo]; ++} ++ ++// LoongArch 128-bit (aliased) LSX Registers ++class LSX128 Enc, string n, list subregs> ++ : LoongArchRegWithSubRegs { ++ let SubRegIndices = [sub_64]; ++} ++ ++// LoongArch 256-bit (aliased) LASX Registers ++class LASX256 Enc, string n, list subregs> ++ : LoongArchRegWithSubRegs { ++ let SubRegIndices = [sub_128]; ++} ++ ++//===----------------------------------------------------------------------===// ++// Registers ++//===----------------------------------------------------------------------===// ++ ++/// General Purpose 32-bit Registers ++def ZERO : LoongArch32GPR<0, "zero">, ++ DwarfRegNum<[0]>; ++def RA : LoongArch32GPR<1, "ra">, DwarfRegNum<[1]>; ++def TP : LoongArch32GPR<2, "tp">, DwarfRegNum<[2]>; ++def SP : LoongArch32GPR<3, "sp">, DwarfRegNum<[3]>; ++def A0 : LoongArch32GPR<4, "r4">, DwarfRegNum<[4]>; ++def A1 : LoongArch32GPR<5, "r5">, DwarfRegNum<[5]>; ++def A2 : LoongArch32GPR<6, "r6">, DwarfRegNum<[6]>; ++def A3 : LoongArch32GPR<7, "r7">, DwarfRegNum<[7]>; ++def A4 : LoongArch32GPR<8, "r8">, DwarfRegNum<[8]>; ++def A5 : LoongArch32GPR<9, "r9">, DwarfRegNum<[9]>; ++def A6 : LoongArch32GPR<10, "r10">, DwarfRegNum<[10]>; ++def A7 : LoongArch32GPR<11, "r11">, DwarfRegNum<[11]>; ++def T0 : LoongArch32GPR<12, "r12">, DwarfRegNum<[12]>; ++def T1 : LoongArch32GPR<13, "r13">, DwarfRegNum<[13]>; ++def T2 : LoongArch32GPR<14, "r14">, DwarfRegNum<[14]>; ++def T3 : LoongArch32GPR<15, "r15">, DwarfRegNum<[15]>; ++def T4 : LoongArch32GPR<16, "r16">, DwarfRegNum<[16]>; ++def T5 : LoongArch32GPR<17, "r17">, DwarfRegNum<[17]>; ++def T6 : LoongArch32GPR<18, "r18">, DwarfRegNum<[18]>; ++def T7 : LoongArch32GPR<19, "r19">, DwarfRegNum<[19]>; ++def T8 : LoongArch32GPR<20, "r20">, DwarfRegNum<[20]>; ++def T9 : LoongArch32GPR<21, "r21">, DwarfRegNum<[21]>; ++def FP : LoongArch32GPR<22, "r22">, DwarfRegNum<[22]>; ++def S0 : LoongArch32GPR<23, "r23">, DwarfRegNum<[23]>; ++def S1 : LoongArch32GPR<24, "r24">, DwarfRegNum<[24]>; ++def S2 : LoongArch32GPR<25, "r25">, DwarfRegNum<[25]>; ++def S3 : LoongArch32GPR<26, "r26">, DwarfRegNum<[26]>; ++def S4 : LoongArch32GPR<27, "r27">, DwarfRegNum<[27]>; ++def S5 : LoongArch32GPR<28, "r28">, DwarfRegNum<[28]>; ++def S6 : LoongArch32GPR<29, "r29">, DwarfRegNum<[29]>; ++def S7 : LoongArch32GPR<30, "r30">, DwarfRegNum<[30]>; ++def S8 : LoongArch32GPR<31, "r31">, DwarfRegNum<[31]>; ++ ++let SubRegIndices = [sub_32] in { ++def V0 : LoongArchRegWithSubRegs<4, "r4", [A0]>, DwarfRegNum<[4]>; ++def V1 : LoongArchRegWithSubRegs<5, "r5", [A1]>, DwarfRegNum<[5]>; ++} ++ ++/// General Purpose 64-bit Registers ++def ZERO_64 : LoongArch64GPR<0, "zero", [ZERO]>, DwarfRegNum<[0]>; ++def RA_64 : LoongArch64GPR<1, "ra", [RA]>, DwarfRegNum<[1]>; ++def TP_64 : LoongArch64GPR<2, "tp", [TP]>, DwarfRegNum<[2]>; ++def SP_64 : LoongArch64GPR<3, "sp", [SP]>, DwarfRegNum<[3]>; ++def A0_64 : LoongArch64GPR<4, "r4", [A0]>, DwarfRegNum<[4]>; ++def A1_64 : LoongArch64GPR<5, "r5", [A1]>, DwarfRegNum<[5]>; ++def A2_64 : LoongArch64GPR<6, "r6", [A2]>, DwarfRegNum<[6]>; ++def A3_64 : LoongArch64GPR<7, "r7", [A3]>, DwarfRegNum<[7]>; ++def A4_64 : LoongArch64GPR<8, "r8", [A4]>, DwarfRegNum<[8]>; ++def A5_64 : LoongArch64GPR<9, "r9", [A5]>, DwarfRegNum<[9]>; ++def A6_64 : LoongArch64GPR<10, "r10", [A6]>, DwarfRegNum<[10]>; ++def A7_64 : LoongArch64GPR<11, "r11", [A7]>, DwarfRegNum<[11]>; ++def T0_64 : LoongArch64GPR<12, "r12", [T0]>, DwarfRegNum<[12]>; ++def T1_64 : LoongArch64GPR<13, "r13", [T1]>, DwarfRegNum<[13]>; ++def T2_64 : LoongArch64GPR<14, "r14", [T2]>, DwarfRegNum<[14]>; ++def T3_64 : LoongArch64GPR<15, "r15", [T3]>, DwarfRegNum<[15]>; ++def T4_64 : LoongArch64GPR<16, "r16", [T4]>, DwarfRegNum<[16]>; ++def T5_64 : LoongArch64GPR<17, "r17", [T5]>, DwarfRegNum<[17]>; ++def T6_64 : LoongArch64GPR<18, "r18", [T6]>, DwarfRegNum<[18]>; ++def T7_64 : LoongArch64GPR<19, "r19", [T7]>, DwarfRegNum<[19]>; ++def T8_64 : LoongArch64GPR<20, "r20", [T8]>, DwarfRegNum<[20]>; ++def T9_64 : LoongArch64GPR<21, "r21", [T9]>, DwarfRegNum<[21]>; ++def FP_64 : LoongArch64GPR<22, "r22", [FP]>, DwarfRegNum<[22]>; ++def S0_64 : LoongArch64GPR<23, "r23", [S0]>, DwarfRegNum<[23]>; ++def S1_64 : LoongArch64GPR<24, "r24", [S1]>, DwarfRegNum<[24]>; ++def S2_64 : LoongArch64GPR<25, "r25", [S2]>, DwarfRegNum<[25]>; ++def S3_64 : LoongArch64GPR<26, "r26", [S3]>, DwarfRegNum<[26]>; ++def S4_64 : LoongArch64GPR<27, "r27", [S4]>, DwarfRegNum<[27]>; ++def S5_64 : LoongArch64GPR<28, "r28", [S5]>, DwarfRegNum<[28]>; ++def S6_64 : LoongArch64GPR<29, "r29", [S6]>, DwarfRegNum<[29]>; ++def S7_64 : LoongArch64GPR<30, "r30", [S7]>, DwarfRegNum<[30]>; ++def S8_64 : LoongArch64GPR<31, "r31", [S8]>, DwarfRegNum<[31]>; ++ ++let SubRegIndices = [sub_64] in { ++def V0_64 : LoongArch64GPR<4, "r4", [A0_64]>, DwarfRegNum<[4]>; ++def V1_64 : LoongArch64GPR<5, "r5", [A1_64]>, DwarfRegNum<[5]>; ++} ++ ++/// FP registers ++foreach I = 0-31 in ++def F#I : FGR32, DwarfRegNum<[!add(I, 32)]>; ++ ++foreach I = 0-31 in ++def F#I#_64 : FGR64("F"#I)]>, DwarfRegNum<[!add(I, 32)]>; ++ ++/// FP Condition Flag 0~7 ++foreach I = 0-7 in ++def FCC#I : LoongArchReg; ++ ++/// FP Control and Status Registers, FCSR 1~3 ++foreach I = 1-3 in ++def FCSR#I : LoongArchReg; ++ ++class FCSRReg Enc, string n, list subregs> : ++ RegisterWithSubRegs { ++// field bits<2> chan_encoding = 0; ++ let Namespace = "LoongArch"; ++ let SubRegIndices = [sub_fcsr1, sub_fcsr2, sub_fcsr3]; ++// let HWEncoding{8-0} = encoding{8-0}; ++// let HWEncoding{10-9} = chan_encoding; ++} ++ ++def FCSR0 : FCSRReg<0, "fcsr0", [FCSR1, FCSR2, FCSR3]>; ++ ++/// PC register ++//let NameSpace = "LoongArch" in ++//def PC : Register<"pc">; ++ ++//===----------------------------------------------------------------------===// ++// Register Classes ++//===----------------------------------------------------------------------===// ++ ++def GPR32 : RegisterClass<"LoongArch", [i32], 32, (add ++ // Reserved ++ ZERO, ++ // Return Values and Arguments ++ A0, A1, A2, A3, A4, A5, A6, A7, ++ // Not preserved across procedure calls ++ T0, T1, T2, T3, T4, T5, T6, T7, T8, ++ // Callee save ++ S0, S1, S2, S3, S4, S5, S6, S7, S8, ++ // Reserved ++ RA, TP, SP, ++ // Reserved ++ T9, FP)>; ++ ++def GPR64 : RegisterClass<"LoongArch", [i64], 64, (add ++ // Reserved ++ ZERO_64, ++ // Return Values and Arguments ++ A0_64, A1_64, A2_64, A3_64, A4_64, A5_64, A6_64, A7_64, ++ // Not preserved across procedure calls ++ T0_64, T1_64, T2_64, T3_64, T4_64, T5_64, T6_64, T7_64, T8_64, ++ // Callee save ++ S0_64, S1_64, S2_64, S3_64, S4_64, S5_64, S6_64, S7_64, S8_64, ++ // Reserved ++ RA_64, TP_64, SP_64, ++ // Reserved ++ T9_64, FP_64)>; ++ ++def GPRTC64 : RegisterClass<"LoongArch", [i64], 64, (add ++ // Return Values and Arguments ++ A0_64, A1_64, A2_64, A3_64, A4_64, A5_64, A6_64, A7_64, ++ // Not preserved across procedure calls ++ T0_64, T1_64, T2_64, T3_64, T4_64, T5_64, T6_64, T7_64, T8_64)>; ++ ++/// FP Registers. ++def FGR64 : RegisterClass<"LoongArch", [f64], 64, (sequence "F%u_64", 0, 31)>; ++def FGR32 : RegisterClass<"LoongArch", [f32], 64, (sequence "F%u", 0, 31)>; ++ ++/// FP condition Flag registers. ++def FCFR : RegisterClass<"LoongArch", [i32], 32, (sequence "FCC%u", 0, 7)>, ++ Unallocatable; ++ ++def SP32 : RegisterClass<"LoongArch", [i32], 32, (add SP)>, Unallocatable; ++def SP64 : RegisterClass<"LoongArch", [i64], 64, (add SP_64)>, Unallocatable; ++def TP32 : RegisterClass<"LoongArch", [i32], 32, (add TP)>, Unallocatable; ++def TP64 : RegisterClass<"LoongArch", [i64], 64, (add TP_64)>, Unallocatable; ++ ++/// FP control and Status registers. ++def FCSR : RegisterClass<"LoongArch", [i32], 4, (sequence "FCSR%u", 0, 3)>, ++ Unallocatable; ++ ++//LSX ++foreach I = 0-31 in ++def VR#I : LSX128("F"#I#"_64")]>, ++ DwarfRegNum<[!add(I, 32)]>; ++ ++//LASX ++foreach I = 0-31 in ++def XR#I : LASX256("VR"#I)]>, ++ DwarfRegNum<[!add(I, 32)]>; ++ ++def LSX128B: RegisterClass<"LoongArch", [v16i8], 128, ++ (sequence "VR%u", 0, 31)>; ++ ++def LSX128H: RegisterClass<"LoongArch", [v8i16], 128, ++ (sequence "VR%u", 0, 31)>; ++ ++def LSX128W: RegisterClass<"LoongArch", [v4i32, v4f32], 128, ++ (sequence "VR%u", 0, 31)>; ++ ++def LSX128D: RegisterClass<"LoongArch", [v2i64, v2f64], 128, ++ (sequence "VR%u", 0, 31)>; ++ ++def LASX256B: RegisterClass<"LoongArch", [v32i8], 256, ++ (sequence "XR%u", 0, 31)>; ++def LASX256H: RegisterClass<"LoongArch", [v16i16], 256, ++ (sequence "XR%u", 0, 31)>; ++def LASX256W: RegisterClass<"LoongArch", [v8i32, v8f32], 256, ++ (sequence "XR%u", 0, 31)>; ++def LASX256D: RegisterClass<"LoongArch", [v4i64, v4f64], 256, ++ (sequence "XR%u", 0, 31)>; ++ ++//===----------------------------------------------------------------------===// ++// Register Operands. ++//===----------------------------------------------------------------------===// ++ ++class LoongArchAsmRegOperand : AsmOperandClass { ++ let ParserMethod = "parseAnyRegister"; ++} ++ ++def GPR32AsmOperand : LoongArchAsmRegOperand { ++ let Name = "GPR32AsmReg"; ++ let PredicateMethod = "isGPRAsmReg"; ++} ++ ++def GPR64AsmOperand : LoongArchAsmRegOperand { ++ let Name = "GPR64AsmReg"; ++ let PredicateMethod = "isGPRAsmReg"; ++} ++ ++def FGR32AsmOperand : LoongArchAsmRegOperand { ++ let Name = "FGR32AsmReg"; ++ let PredicateMethod = "isFGRAsmReg"; ++} ++ ++def FGR64AsmOperand : LoongArchAsmRegOperand { ++ let Name = "FGR64AsmReg"; ++ let PredicateMethod = "isFGRAsmReg"; ++} ++ ++def FCSRAsmOperand : LoongArchAsmRegOperand { ++ let Name = "FCSRAsmReg"; ++} ++ ++def FCFRAsmOperand : LoongArchAsmRegOperand { ++ let Name = "FCFRAsmReg"; ++} ++ ++//LSX ++def LSX128AsmOperand : LoongArchAsmRegOperand { ++ let Name = "LSX128AsmReg"; ++} ++ ++//LASX ++def LASX256AsmOperand : LoongArchAsmRegOperand { ++ let Name = "LASX256AsmReg"; ++} ++ ++def GPR32Opnd : RegisterOperand { ++ let ParserMatchClass = GPR32AsmOperand; ++} ++ ++def GPR64Opnd : RegisterOperand { ++ let ParserMatchClass = GPR64AsmOperand; ++} ++ ++def GPRTC64Opnd : RegisterOperand { ++ let ParserMatchClass = GPR64AsmOperand; ++} ++ ++def FGR32Opnd : RegisterOperand { ++ let ParserMatchClass = FGR32AsmOperand; ++} ++ ++def FGR64Opnd : RegisterOperand { ++ let ParserMatchClass = FGR64AsmOperand; ++} ++ ++def FCSROpnd : RegisterOperand { ++ let ParserMatchClass = FCSRAsmOperand; ++} ++ ++def FCFROpnd : RegisterOperand { ++ let ParserMatchClass = FCFRAsmOperand; ++} ++ ++//LSX ++def LSX128BOpnd : RegisterOperand { ++ let ParserMatchClass = LSX128AsmOperand; ++} ++ ++def LSX128HOpnd : RegisterOperand { ++ let ParserMatchClass = LSX128AsmOperand; ++} ++ ++def LSX128WOpnd : RegisterOperand { ++ let ParserMatchClass = LSX128AsmOperand; ++} ++ ++def LSX128DOpnd : RegisterOperand { ++ let ParserMatchClass = LSX128AsmOperand; ++} ++ ++//LASX ++def LASX256BOpnd : RegisterOperand { ++ let ParserMatchClass = LASX256AsmOperand; ++} ++ ++def LASX256HOpnd : RegisterOperand { ++ let ParserMatchClass = LASX256AsmOperand; ++} ++ ++def LASX256WOpnd : RegisterOperand { ++ let ParserMatchClass = LASX256AsmOperand; ++} ++ ++def LASX256DOpnd : RegisterOperand { ++ let ParserMatchClass = LASX256AsmOperand; ++} +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchSubtarget.cpp b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchSubtarget.cpp +new file mode 100644 +index 00000000000..5a5596423ba +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchSubtarget.cpp +@@ -0,0 +1,105 @@ ++//===-- LoongArchSubtarget.cpp - LoongArch Subtarget Information --------------------===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++// ++// This file implements the LoongArch specific subclass of TargetSubtargetInfo. ++// ++//===----------------------------------------------------------------------===// ++ ++#include "LoongArchSubtarget.h" ++#include "LoongArch.h" ++#include "LoongArchMachineFunction.h" ++#include "LoongArchRegisterInfo.h" ++#include "LoongArchTargetMachine.h" ++#include "llvm/IR/Attributes.h" ++#include "llvm/IR/Function.h" ++#include "llvm/Support/CommandLine.h" ++#include "llvm/Support/Debug.h" ++#include "llvm/Support/TargetRegistry.h" ++#include "llvm/Support/raw_ostream.h" ++ ++using namespace llvm; ++ ++#define DEBUG_TYPE "loongarch-subtarget" ++ ++#define GET_SUBTARGETINFO_TARGET_DESC ++#define GET_SUBTARGETINFO_CTOR ++#include "LoongArchGenSubtargetInfo.inc" ++ ++void LoongArchSubtarget::anchor() {} ++ ++LoongArchSubtarget::LoongArchSubtarget(const Triple &TT, StringRef CPU, ++ StringRef FS, ++ const LoongArchTargetMachine &TM, ++ MaybeAlign StackAlignOverride) ++ : LoongArchGenSubtargetInfo(TT, CPU, FS), HasLA64(false), ++ IsSoftFloat(false), IsSingleFloat(false), IsFP64bit(false), HasLSX(false), ++ HasLASX(false), UnalignedAccess(false), ++ StackAlignOverride(StackAlignOverride), TM(TM), TargetTriple(TT), ++ TSInfo(), InstrInfo(initializeSubtargetDependencies(CPU, FS, TM)), ++ FrameLowering(*this), TLInfo(TM, *this) { ++ ++ // Check if Architecture and ABI are compatible. ++ assert(((!is64Bit() && isABI_LP32()) || ++ (is64Bit() && (isABI_LPX32() || isABI_LP64()))) && ++ "Invalid Arch & ABI pair."); ++ ++ if (hasLSX() && !isFP64bit()) ++ report_fatal_error("LSX requires 64-bit floating point register." ++ "See -mattr=+fp64.", ++ false); ++ ++ assert(isFP64bit()); ++} ++ ++bool LoongArchSubtarget::isPositionIndependent() const { ++ return TM.isPositionIndependent(); ++} ++ ++/// This overrides the PostRAScheduler bit in the SchedModel for any CPU. ++bool LoongArchSubtarget::enablePostRAScheduler() const { return true; } ++ ++void LoongArchSubtarget::getCriticalPathRCs(RegClassVector &CriticalPathRCs) const { ++ CriticalPathRCs.clear(); ++ CriticalPathRCs.push_back(is64Bit() ? &LoongArch::GPR64RegClass ++ : &LoongArch::GPR32RegClass); ++} ++ ++CodeGenOpt::Level LoongArchSubtarget::getOptLevelToEnablePostRAScheduler() const { ++ return CodeGenOpt::Aggressive; ++} ++ ++LoongArchSubtarget & ++LoongArchSubtarget::initializeSubtargetDependencies(StringRef CPU, StringRef FS, ++ const TargetMachine &TM) { ++ StringRef CPUName = LoongArch_MC::selectLoongArchCPU(TM.getTargetTriple(), CPU); ++ ++ // Parse features string. ++ ParseSubtargetFeatures(CPUName, FS); ++ // Initialize scheduling itinerary for the specified CPU. ++ InstrItins = getInstrItineraryForCPU(CPUName); ++ ++ if (StackAlignOverride) ++ stackAlignment = *StackAlignOverride; ++ else if (isABI_LPX32() || isABI_LP64()) ++ stackAlignment = Align(16); ++ else { ++ assert(isABI_LP32() && "Unknown ABI for stack alignment!"); ++ stackAlignment = Align(8); ++ } ++ ++ return *this; ++} ++ ++Reloc::Model LoongArchSubtarget::getRelocationModel() const { ++ return TM.getRelocationModel(); ++} ++ ++bool LoongArchSubtarget::isABI_LP64() const { return getABI().IsLP64(); } ++bool LoongArchSubtarget::isABI_LPX32() const { return getABI().IsLPX32(); } ++bool LoongArchSubtarget::isABI_LP32() const { return getABI().IsLP32(); } ++const LoongArchABIInfo &LoongArchSubtarget::getABI() const { return TM.getABI(); } +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchSubtarget.h b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchSubtarget.h +new file mode 100644 +index 00000000000..79c138bafc6 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchSubtarget.h +@@ -0,0 +1,143 @@ ++//===-- LoongArchSubtarget.h - Define Subtarget for the LoongArch ---------*- C++ -*-===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++// ++// This file declares the LoongArch specific subclass of TargetSubtargetInfo. ++// ++//===----------------------------------------------------------------------===// ++ ++#ifndef LLVM_LIB_TARGET_LOONGARCH_LOONGARCHSUBTARGET_H ++#define LLVM_LIB_TARGET_LOONGARCH_LOONGARCHSUBTARGET_H ++ ++#include "MCTargetDesc/LoongArchABIInfo.h" ++#include "LoongArchFrameLowering.h" ++#include "LoongArchISelLowering.h" ++#include "LoongArchInstrInfo.h" ++#include "llvm/CodeGen/SelectionDAGTargetInfo.h" ++#include "llvm/CodeGen/TargetSubtargetInfo.h" ++#include "llvm/IR/DataLayout.h" ++#include "llvm/MC/MCInstrItineraries.h" ++#include "llvm/Support/ErrorHandling.h" ++#include ++ ++#define GET_SUBTARGETINFO_HEADER ++#include "LoongArchGenSubtargetInfo.inc" ++ ++namespace llvm { ++class StringRef; ++ ++class LoongArchTargetMachine; ++ ++class LoongArchSubtarget : public LoongArchGenSubtargetInfo { ++ virtual void anchor(); ++ ++ // HasLA64 - The target processor has LA64 ISA support. ++ bool HasLA64; ++ ++ // IsSoftFloat - The target does not support any floating point instructions. ++ bool IsSoftFloat; ++ ++ // IsSingleFloat - The target only supports single precision float ++ // point operations. This enable the target to use all 32 32-bit ++ // floating point registers instead of only using even ones. ++ bool IsSingleFloat; ++ ++ // IsFP64bit - The target processor has 64-bit floating point registers. ++ bool IsFP64bit; ++ ++ /// Features related to the presence of specific instructions. ++ ++ // HasLSX - Supports LSX. ++ bool HasLSX; ++ ++ // HasLASX - Supports LASX. ++ bool HasLASX; ++ ++ /// The minimum alignment known to hold of the stack frame on ++ /// entry to the function and which must be maintained by every function. ++ Align stackAlignment; ++ ++ // Allow unaligned memory accesses. ++ bool UnalignedAccess; ++ ++ /// The overridden stack alignment. ++ MaybeAlign StackAlignOverride; ++ ++ InstrItineraryData InstrItins; ++ ++ const LoongArchTargetMachine &TM; ++ ++ Triple TargetTriple; ++ ++ const SelectionDAGTargetInfo TSInfo; ++ const LoongArchInstrInfo InstrInfo; ++ const LoongArchFrameLowering FrameLowering; ++ const LoongArchTargetLowering TLInfo; ++ ++public: ++ bool isPositionIndependent() const; ++ /// This overrides the PostRAScheduler bit in the SchedModel for each CPU. ++ bool enablePostRAScheduler() const override; ++ void getCriticalPathRCs(RegClassVector &CriticalPathRCs) const override; ++ CodeGenOpt::Level getOptLevelToEnablePostRAScheduler() const override; ++ ++ bool isABI_LP64() const; ++ bool isABI_LPX32() const; ++ bool isABI_LP32() const; ++ const LoongArchABIInfo &getABI() const; ++ ++ /// This constructor initializes the data members to match that ++ /// of the specified triple. ++ LoongArchSubtarget(const Triple &TT, StringRef CPU, StringRef FS, ++ const LoongArchTargetMachine &TM, MaybeAlign StackAlignOverride); ++ ++ /// ParseSubtargetFeatures - Parses features string setting specified ++ /// subtarget options. Definition of function is auto generated by tblgen. ++ void ParseSubtargetFeatures(StringRef CPU, StringRef FS); ++ ++ bool is64Bit() const { return HasLA64; } ++ bool isFP64bit() const { return IsFP64bit; } ++ unsigned getGPRSizeInBytes() const { return is64Bit() ? 8 : 4; } ++ bool isSingleFloat() const { return IsSingleFloat; } ++ bool hasLSX() const { return HasLSX; } ++ bool hasLASX() const { return HasLASX; } ++ bool useSoftFloat() const { return IsSoftFloat; } ++ ++ bool allowUnalignedAccess() const { return UnalignedAccess; } ++ ++ bool isXRaySupported() const override { return true; } ++ ++ Align getStackAlignment() const { return stackAlignment; } ++ ++ // Grab relocation model ++ Reloc::Model getRelocationModel() const; ++ ++ LoongArchSubtarget &initializeSubtargetDependencies(StringRef CPU, StringRef FS, ++ const TargetMachine &TM); ++ ++ const SelectionDAGTargetInfo *getSelectionDAGInfo() const override { ++ return &TSInfo; ++ } ++ const LoongArchInstrInfo *getInstrInfo() const override { ++ return &InstrInfo; ++ } ++ const TargetFrameLowering *getFrameLowering() const override { ++ return &FrameLowering; ++ } ++ const LoongArchRegisterInfo *getRegisterInfo() const override { ++ return &InstrInfo.getRegisterInfo(); ++ } ++ const LoongArchTargetLowering *getTargetLowering() const override { ++ return &TLInfo; ++ } ++ const InstrItineraryData *getInstrItineraryData() const override { ++ return &InstrItins; ++ } ++}; ++} // End llvm namespace ++ ++#endif +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchTargetMachine.cpp b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchTargetMachine.cpp +new file mode 100644 +index 00000000000..e3f67400b20 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchTargetMachine.cpp +@@ -0,0 +1,195 @@ ++//===-- LoongArchTargetMachine.cpp - Define TargetMachine for LoongArch -------------===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++// ++// Implements the info about LoongArch target spec. ++// ++//===----------------------------------------------------------------------===// ++ ++#include "LoongArchTargetMachine.h" ++#include "LoongArch.h" ++#include "LoongArchISelDAGToDAG.h" ++#include "LoongArchSubtarget.h" ++#include "LoongArchTargetObjectFile.h" ++#include "LoongArchTargetTransformInfo.h" ++#include "MCTargetDesc/LoongArchABIInfo.h" ++#include "MCTargetDesc/LoongArchMCTargetDesc.h" ++#include "llvm/ADT/Optional.h" ++#include "llvm/ADT/STLExtras.h" ++#include "llvm/ADT/StringRef.h" ++#include "llvm/Analysis/TargetTransformInfo.h" ++#include "llvm/CodeGen/BasicTTIImpl.h" ++#include "llvm/CodeGen/MachineFunction.h" ++#include "llvm/CodeGen/Passes.h" ++#include "llvm/CodeGen/TargetPassConfig.h" ++#include "llvm/IR/Attributes.h" ++#include "llvm/IR/Function.h" ++#include "llvm/Support/CodeGen.h" ++#include "llvm/Support/Debug.h" ++#include "llvm/Support/TargetRegistry.h" ++#include "llvm/Support/raw_ostream.h" ++#include "llvm/Target/TargetOptions.h" ++#include ++#include ++ ++using namespace llvm; ++ ++#define DEBUG_TYPE "loongarch" ++ ++extern "C" LLVM_EXTERNAL_VISIBILITY void LLVMInitializeLoongArchTarget() { ++ // Register the target. ++ RegisterTargetMachine X(getTheLoongArch32Target()); ++ RegisterTargetMachine A(getTheLoongArch64Target()); ++} ++ ++static std::string computeDataLayout(const Triple &TT, StringRef CPU, ++ const TargetOptions &Options) { ++ std::string Ret; ++ LoongArchABIInfo ABI = LoongArchABIInfo::computeTargetABI(TT, CPU, Options.MCOptions); ++ ++ Ret += "e"; ++ ++ if (ABI.IsLP32()) ++ Ret += "-m:m"; ++ else ++ Ret += "-m:e"; ++ ++ // Pointers are 32 bit on some ABIs. ++ if (!ABI.IsLP64()) ++ Ret += "-p:32:32"; ++ ++ // 8 and 16 bit integers only need to have natural alignment, but try to ++ // align them to 32 bits. 64 bit integers have natural alignment. ++ Ret += "-i8:8:32-i16:16:32-i64:64"; ++ ++ // 32 bit registers are always available and the stack is at least 64 bit ++ // aligned. On LP64 64 bit registers are also available and the stack is ++ // 128 bit aligned. ++ if (ABI.IsLP64() || ABI.IsLPX32()) ++ Ret += "-n32:64-S128"; ++ else ++ Ret += "-n32-S64"; ++ ++ return Ret; ++} ++ ++static Reloc::Model getEffectiveRelocModel(bool JIT, ++ Optional RM) { ++ if (!RM.hasValue() || JIT) ++ return Reloc::Static; ++ return *RM; ++} ++ ++// On function prologue, the stack is created by decrementing ++// its pointer. Once decremented, all references are done with positive ++// offset from the stack/frame pointer, using StackGrowsUp enables ++// an easier handling. ++// Using CodeModel::Large enables different CALL behavior. ++LoongArchTargetMachine::LoongArchTargetMachine(const Target &T, const Triple &TT, ++ StringRef CPU, StringRef FS, ++ const TargetOptions &Options, ++ Optional RM, ++ Optional CM, ++ CodeGenOpt::Level OL, bool JIT) ++ : LLVMTargetMachine(T, computeDataLayout(TT, CPU, Options), TT, ++ CPU, FS, Options, getEffectiveRelocModel(JIT, RM), ++ getEffectiveCodeModel(CM, CodeModel::Small), OL), ++ TLOF(std::make_unique()), ++ ABI(LoongArchABIInfo::computeTargetABI(TT, CPU, Options.MCOptions)) { ++ initAsmInfo(); ++} ++ ++LoongArchTargetMachine::~LoongArchTargetMachine() = default; ++ ++const LoongArchSubtarget * ++LoongArchTargetMachine::getSubtargetImpl(const Function &F) const { ++ Attribute CPUAttr = F.getFnAttribute("target-cpu"); ++ Attribute FSAttr = F.getFnAttribute("target-features"); ++ ++ std::string CPU = !CPUAttr.hasAttribute(Attribute::None) ++ ? CPUAttr.getValueAsString().str() ++ : TargetCPU; ++ std::string FS = !FSAttr.hasAttribute(Attribute::None) ++ ? FSAttr.getValueAsString().str() ++ : TargetFS; ++ ++ // FIXME: This is related to the code below to reset the target options, ++ // we need to know whether or not the soft float flag is set on the ++ // function, so we can enable it as a subtarget feature. ++ bool softFloat = ++ F.hasFnAttribute("use-soft-float") && ++ F.getFnAttribute("use-soft-float").getValueAsString() == "true"; ++ ++ if (softFloat) ++ FS += FS.empty() ? "+soft-float" : ",+soft-float"; ++ ++ auto &I = SubtargetMap[CPU + FS]; ++ if (!I) { ++ // This needs to be done before we create a new subtarget since any ++ // creation will depend on the TM and the code generation flags on the ++ // function that reside in TargetOptions. ++ resetTargetOptions(F); ++ I = std::make_unique(TargetTriple, CPU, FS, *this, ++ MaybeAlign(Options.StackAlignmentOverride)); ++ } ++ return I.get(); ++} ++ ++namespace { ++ ++/// LoongArch Code Generator Pass Configuration Options. ++class LoongArchPassConfig : public TargetPassConfig { ++public: ++ LoongArchPassConfig(LoongArchTargetMachine &TM, PassManagerBase &PM) ++ : TargetPassConfig(TM, PM) { ++ } ++ ++ LoongArchTargetMachine &getLoongArchTargetMachine() const { ++ return getTM(); ++ } ++ ++ void addIRPasses() override; ++ bool addInstSelector() override; ++ void addPreEmitPass() override; ++}; ++ ++} // end anonymous namespace ++ ++TargetPassConfig *LoongArchTargetMachine::createPassConfig(PassManagerBase &PM) { ++ return new LoongArchPassConfig(*this, PM); ++} ++ ++void LoongArchPassConfig::addIRPasses() { ++ TargetPassConfig::addIRPasses(); ++ addPass(createAtomicExpandPass()); ++} ++// Install an instruction selector pass using ++// the ISelDag to gen LoongArch code. ++bool LoongArchPassConfig::addInstSelector() { ++ addPass(createLoongArchModuleISelDagPass()); ++ addPass(createLoongArchISelDag(getLoongArchTargetMachine(), getOptLevel())); ++ return false; ++} ++ ++TargetTransformInfo ++LoongArchTargetMachine::getTargetTransformInfo(const Function &F) { ++ LLVM_DEBUG(errs() << "Target Transform Info Pass Added\n"); ++ return TargetTransformInfo(BasicTTIImpl(this, F)); ++} ++ ++// Implemented by targets that want to run passes immediately before ++// machine code is emitted. return true if -print-machineinstrs should ++// print out the code after the passes. ++void LoongArchPassConfig::addPreEmitPass() { ++ // Expand pseudo instructions that are sensitive to register allocation. ++ addPass(createLoongArchExpandPseudoPass()); ++ ++ // Relax conditional branch instructions if they're otherwise out of ++ // range of their destination. ++ // This pass must be run after any pseudo instruction expansion ++ addPass(&BranchRelaxationPassID); ++} +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchTargetMachine.h b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchTargetMachine.h +new file mode 100644 +index 00000000000..f412e25b3d3 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchTargetMachine.h +@@ -0,0 +1,60 @@ ++//===- LoongArchTargetMachine.h - Define TargetMachine for LoongArch ------*- C++ -*-===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++// ++// This file declares the LoongArch specific subclass of TargetMachine. ++// ++//===----------------------------------------------------------------------===// ++ ++#ifndef LLVM_LIB_TARGET_LOONGARCH_LOONGARCHTARGETMACHINE_H ++#define LLVM_LIB_TARGET_LOONGARCH_LOONGARCHTARGETMACHINE_H ++ ++#include "MCTargetDesc/LoongArchABIInfo.h" ++#include "LoongArchSubtarget.h" ++#include "llvm/ADT/Optional.h" ++#include "llvm/ADT/StringMap.h" ++#include "llvm/ADT/StringRef.h" ++#include "llvm/Support/CodeGen.h" ++#include "llvm/Target/TargetMachine.h" ++#include ++ ++namespace llvm { ++ ++class LoongArchTargetMachine : public LLVMTargetMachine { ++ std::unique_ptr TLOF; ++ // Selected ABI ++ LoongArchABIInfo ABI; ++ ++ mutable StringMap> SubtargetMap; ++ ++public: ++ LoongArchTargetMachine(const Target &T, const Triple &TT, StringRef CPU, ++ StringRef FS, const TargetOptions &Options, ++ Optional RM, Optional CM, ++ CodeGenOpt::Level OL, bool JIT); ++ ~LoongArchTargetMachine() override; ++ ++ TargetTransformInfo getTargetTransformInfo(const Function &F) override; ++ const LoongArchSubtarget *getSubtargetImpl(const Function &F) const override; ++ ++ // Pass Pipeline Configuration ++ TargetPassConfig *createPassConfig(PassManagerBase &PM) override; ++ ++ TargetLoweringObjectFile *getObjFileLowering() const override { ++ return TLOF.get(); ++ } ++ ++ const LoongArchABIInfo &getABI() const { return ABI; } ++ ++ bool isMachineVerifierClean() const override { ++ return false; ++ } ++}; ++ ++} // end namespace llvm ++ ++#endif // LLVM_LIB_TARGET_LOONGARCH_LOONGARCHTARGETMACHINE_H +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchTargetObjectFile.cpp b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchTargetObjectFile.cpp +new file mode 100644 +index 00000000000..9c6250d2893 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchTargetObjectFile.cpp +@@ -0,0 +1,26 @@ ++//===-- LoongArchTargetObjectFile.cpp - LoongArch Object Files ----------------------===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++ ++#include "LoongArchTargetObjectFile.h" ++#include "LoongArchSubtarget.h" ++#include "LoongArchTargetMachine.h" ++#include "MCTargetDesc/LoongArchMCExpr.h" ++#include "llvm/BinaryFormat/ELF.h" ++#include "llvm/IR/DataLayout.h" ++#include "llvm/IR/DerivedTypes.h" ++#include "llvm/IR/GlobalVariable.h" ++#include "llvm/MC/MCContext.h" ++#include "llvm/MC/MCSectionELF.h" ++#include "llvm/Support/CommandLine.h" ++#include "llvm/Target/TargetMachine.h" ++using namespace llvm; ++ ++void LoongArchTargetObjectFile::Initialize(MCContext &Ctx, const TargetMachine &TM){ ++ TargetLoweringObjectFileELF::Initialize(Ctx, TM); ++ InitializeELF(TM.Options.UseInitArray); ++} +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchTargetObjectFile.h b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchTargetObjectFile.h +new file mode 100644 +index 00000000000..a50c57171f8 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchTargetObjectFile.h +@@ -0,0 +1,24 @@ ++//===-- llvm/Target/LoongArchTargetObjectFile.h - LoongArch Object Info ---*- C++ -*-===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++ ++#ifndef LLVM_LIB_TARGET_LOONGARCH_LOONGARCHTARGETOBJECTFILE_H ++#define LLVM_LIB_TARGET_LOONGARCH_LOONGARCHTARGETOBJECTFILE_H ++ ++#include "llvm/CodeGen/TargetLoweringObjectFileImpl.h" ++ ++namespace llvm { ++class LoongArchTargetMachine; ++ class LoongArchTargetObjectFile : public TargetLoweringObjectFileELF { ++ ++ public: ++ ++ void Initialize(MCContext &Ctx, const TargetMachine &TM) override; ++ }; ++} // end namespace llvm ++ ++#endif +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchTargetStreamer.h b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchTargetStreamer.h +new file mode 100644 +index 00000000000..a9adc32d0eb +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchTargetStreamer.h +@@ -0,0 +1,130 @@ ++//===-- LoongArchTargetStreamer.h - LoongArch Target Streamer ------------*- C++ -*--===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++ ++#ifndef LLVM_LIB_TARGET_LOONGARCH_LOONGARCHTARGETSTREAMER_H ++#define LLVM_LIB_TARGET_LOONGARCH_LOONGARCHTARGETSTREAMER_H ++ ++#include "MCTargetDesc/LoongArchABIInfo.h" ++#include "llvm/ADT/Optional.h" ++#include "llvm/ADT/STLExtras.h" ++#include "llvm/MC/MCELFStreamer.h" ++#include "llvm/MC/MCRegisterInfo.h" ++#include "llvm/MC/MCStreamer.h" ++ ++namespace llvm { ++ ++class formatted_raw_ostream; ++ ++struct LoongArchFPABIInfo; ++ ++class LoongArchTargetStreamer : public MCTargetStreamer { ++public: ++ LoongArchTargetStreamer(MCStreamer &S); ++ ++ virtual void setPic(bool Value) {} ++ ++ virtual void emitDirectiveOptionPic0(); ++ virtual void emitDirectiveOptionPic2(); ++ ++ virtual void emitDirectiveSetArch(StringRef Arch); ++ virtual void emitDirectiveSetLoongArch32(); ++ virtual void emitDirectiveSetloongarch64(); ++ ++ void emitR(unsigned Opcode, unsigned Reg0, SMLoc IDLoc, ++ const MCSubtargetInfo *STI); ++ void emitII(unsigned Opcode, int16_t Imm1, int16_t Imm2, SMLoc IDLoc, ++ const MCSubtargetInfo *STI); ++ void emitRX(unsigned Opcode, unsigned Reg0, MCOperand Op1, SMLoc IDLoc, ++ const MCSubtargetInfo *STI); ++ void emitRI(unsigned Opcode, unsigned Reg0, int32_t Imm, SMLoc IDLoc, ++ const MCSubtargetInfo *STI); ++ void emitRR(unsigned Opcode, unsigned Reg0, unsigned Reg1, SMLoc IDLoc, ++ const MCSubtargetInfo *STI); ++ void emitRXX(unsigned Opcode, unsigned Reg0, MCOperand Op1, MCOperand Op2, ++ SMLoc IDLoc, const MCSubtargetInfo *STI); ++ void emitRRX(unsigned Opcode, unsigned Reg0, unsigned Reg1, MCOperand Op2, ++ SMLoc IDLoc, const MCSubtargetInfo *STI); ++ void emitRRR(unsigned Opcode, unsigned Reg0, unsigned Reg1, unsigned Reg2, ++ SMLoc IDLoc, const MCSubtargetInfo *STI); ++ void emitRRI(unsigned Opcode, unsigned Reg0, unsigned Reg1, int32_t Imm, ++ SMLoc IDLoc, const MCSubtargetInfo *STI); ++ void emitRRXX(unsigned Opcode, unsigned Reg0, unsigned Reg1, MCOperand Op2, ++ MCOperand Op3, SMLoc IDLoc, const MCSubtargetInfo *STI); ++ void emitRRIII(unsigned Opcode, unsigned Reg0, unsigned Reg1, int16_t Imm0, ++ int16_t Imm1, int16_t Imm2, SMLoc IDLoc, ++ const MCSubtargetInfo *STI); ++ void emitAdd(unsigned DstReg, unsigned SrcReg, unsigned TrgReg, bool Is64Bit, ++ const MCSubtargetInfo *STI); ++ void emitDSLL(unsigned DstReg, unsigned SrcReg, int16_t ShiftAmount, ++ SMLoc IDLoc, const MCSubtargetInfo *STI); ++ void emitNop(SMLoc IDLoc, const MCSubtargetInfo *STI); ++ ++ void forbidModuleDirective() { ModuleDirectiveAllowed = false; } ++ void reallowModuleDirective() { ModuleDirectiveAllowed = true; } ++ bool isModuleDirectiveAllowed() { return ModuleDirectiveAllowed; } ++ ++ template ++ void updateABIInfo(const PredicateLibrary &P) { ++ ABI = P.getABI(); ++ } ++ ++ const LoongArchABIInfo &getABI() const { ++ assert(ABI.hasValue() && "ABI hasn't been set!"); ++ return *ABI; ++ } ++ ++protected: ++ llvm::Optional ABI; ++ ++ bool GPRInfoSet; ++ ++ bool FPRInfoSet; ++ ++ bool FrameInfoSet; ++ int FrameOffset; ++ unsigned FrameReg; ++ unsigned ReturnReg; ++ ++private: ++ bool ModuleDirectiveAllowed; ++}; ++ ++// This part is for ascii assembly output ++class LoongArchTargetAsmStreamer : public LoongArchTargetStreamer { ++ formatted_raw_ostream &OS; ++ ++public: ++ LoongArchTargetAsmStreamer(MCStreamer &S, formatted_raw_ostream &OS); ++ ++ void emitDirectiveOptionPic0() override; ++ void emitDirectiveOptionPic2() override; ++ ++ void emitDirectiveSetArch(StringRef Arch) override; ++ void emitDirectiveSetLoongArch32() override; ++ void emitDirectiveSetloongarch64() override; ++}; ++ ++// This part is for ELF object output ++class LoongArchTargetELFStreamer : public LoongArchTargetStreamer { ++ const MCSubtargetInfo &STI; ++ bool Pic; ++ ++public: ++ MCELFStreamer &getStreamer(); ++ LoongArchTargetELFStreamer(MCStreamer &S, const MCSubtargetInfo &STI); ++ ++ void setPic(bool Value) override { Pic = Value; } ++ ++ void emitLabel(MCSymbol *Symbol) override; ++ void finish() override; ++ ++ void emitDirectiveOptionPic0() override; ++ void emitDirectiveOptionPic2() override; ++}; ++} ++#endif +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchTargetTransformInfo.cpp b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchTargetTransformInfo.cpp +new file mode 100644 +index 00000000000..ddd5e975bd2 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchTargetTransformInfo.cpp +@@ -0,0 +1,328 @@ ++//===-- LoongArchTargetTransformInfo.cpp - LoongArch specific TTI pass ++//----------------===// ++// ++// The LLVM Compiler Infrastructure ++// ++// This file is distributed under the University of Illinois Open Source ++// License. See LICENSE.TXT for details. ++// ++//===----------------------------------------------------------------------===// ++/// \file ++/// This file implements a TargetTransformInfo analysis pass specific to the ++/// LoongArch target machine. It uses the target's detailed information to ++/// provide more precise answers to certain TTI queries, while letting the ++/// target independent and default TTI implementations handle the rest. ++/// ++//===----------------------------------------------------------------------===// ++ ++#include "LoongArchTargetTransformInfo.h" ++#include "llvm/Analysis/TargetTransformInfo.h" ++#include "llvm/CodeGen/BasicTTIImpl.h" ++#include "llvm/CodeGen/CostTable.h" ++#include "llvm/CodeGen/TargetLowering.h" ++#include "llvm/IR/IntrinsicInst.h" ++#include "llvm/Support/Debug.h" ++ ++using namespace llvm; ++ ++#define DEBUG_TYPE "LoongArchtti" ++ ++//===----------------------------------------------------------------------===// ++// ++// LoongArch cost model. ++// ++//===----------------------------------------------------------------------===// ++ ++bool LoongArchTTIImpl::areInlineCompatible(const Function *Caller, ++ const Function *Callee) const { ++ const TargetMachine &TM = getTLI()->getTargetMachine(); ++ ++ const FeatureBitset &CallerBits = ++ TM.getSubtargetImpl(*Caller)->getFeatureBits(); ++ const FeatureBitset &CalleeBits = ++ TM.getSubtargetImpl(*Callee)->getFeatureBits(); ++ ++ // Inline a callee if its target-features are a subset of the callers ++ // target-features. ++ return (CallerBits & CalleeBits) == CalleeBits; ++} ++ ++TargetTransformInfo::PopcntSupportKind ++LoongArchTTIImpl::getPopcntSupport(unsigned TyWidth) { ++ assert(isPowerOf2_32(TyWidth) && "Ty width must be power of 2"); ++ if (TyWidth == 32 || TyWidth == 64) ++ return TTI::PSK_FastHardware; ++ return TTI::PSK_Software; ++} ++ ++unsigned LoongArchTTIImpl::getNumberOfRegisters(bool Vector) { ++ if (Vector && !ST->hasLSX()) ++ return 0; ++ ++ return 32; ++} ++ ++unsigned LoongArchTTIImpl::getRegisterBitWidth(bool Vector) const { ++ if (Vector) { ++ if (ST->hasLASX()) ++ return 256; ++ ++ if (ST->hasLSX()) ++ return 128; ++ ++ return 0; ++ } ++ return 64; ++} ++ ++unsigned LoongArchTTIImpl::getMaxInterleaveFactor(unsigned VF) { ++ if (VF == 1) ++ return 1; ++ return 2; ++} ++ ++int LoongArchTTIImpl::getArithmeticInstrCost( ++ unsigned Opcode, Type *Ty, ++ TTI::OperandValueKind Op1Info, TTI::OperandValueKind Op2Info, ++ TTI::OperandValueProperties Opd1PropInfo, ++ TTI::OperandValueProperties Opd2PropInfo, ArrayRef Args, ++ const Instruction *CxtI) { ++ ++ std::pair LT = TLI->getTypeLegalizationCost(DL, Ty); ++ ++ int ISD = TLI->InstructionOpcodeToISD(Opcode); ++ assert(ISD && "Invalid opcode"); ++ ++ static const CostTblEntry LASXCostTable[] = { ++ ++ {ISD::SHL, MVT::v32i8, 1}, ++ {ISD::SHL, MVT::v16i16, 1}, ++ {ISD::SHL, MVT::v8i32, 1}, ++ {ISD::SHL, MVT::v4i64, 1}, ++ ++ {ISD::SRL, MVT::v32i8, 1}, ++ {ISD::SRL, MVT::v16i16, 1}, ++ {ISD::SRL, MVT::v8i32, 1}, ++ {ISD::SRL, MVT::v4i64, 1}, ++ ++ {ISD::SRA, MVT::v32i8, 1}, ++ {ISD::SRA, MVT::v16i16, 1}, ++ {ISD::SRA, MVT::v8i32, 1}, ++ {ISD::SRA, MVT::v4i64, 1}, ++ ++ {ISD::SUB, MVT::v32i8, 1}, ++ {ISD::SUB, MVT::v16i16, 1}, ++ {ISD::SUB, MVT::v8i32, 1}, ++ {ISD::SUB, MVT::v4i64, 1}, ++ ++ {ISD::ADD, MVT::v32i8, 1}, ++ {ISD::ADD, MVT::v16i16, 1}, ++ {ISD::ADD, MVT::v8i32, 1}, ++ {ISD::ADD, MVT::v4i64, 1}, ++ ++ {ISD::MUL, MVT::v32i8, 1}, ++ {ISD::MUL, MVT::v16i16, 1}, ++ {ISD::MUL, MVT::v8i32, 1}, ++ {ISD::MUL, MVT::v4i64, 1}, ++ ++ {ISD::SDIV, MVT::v32i8, 29}, ++ {ISD::SDIV, MVT::v16i16, 19}, ++ {ISD::SDIV, MVT::v8i32, 14}, ++ {ISD::SDIV, MVT::v4i64, 13}, ++ ++ {ISD::UDIV, MVT::v32i8, 29}, ++ {ISD::UDIV, MVT::v16i16, 19}, ++ {ISD::UDIV, MVT::v8i32, 14}, ++ {ISD::UDIV, MVT::v4i64, 13}, ++ ++ {ISD::SREM, MVT::v32i8, 33}, ++ {ISD::SREM, MVT::v16i16, 21}, ++ {ISD::SREM, MVT::v8i32, 15}, ++ {ISD::SREM, MVT::v4i64, 13}, ++ ++ {ISD::UREM, MVT::v32i8, 29}, ++ {ISD::UREM, MVT::v16i16, 19}, ++ {ISD::UREM, MVT::v8i32, 14}, ++ {ISD::UREM, MVT::v4i64, 13}, ++ ++ {ISD::FADD, MVT::f64, 1}, ++ {ISD::FADD, MVT::f32, 1}, ++ {ISD::FADD, MVT::v4f64, 1}, ++ {ISD::FADD, MVT::v8f32, 1}, ++ ++ {ISD::FSUB, MVT::f64, 1}, ++ {ISD::FSUB, MVT::f32, 1}, ++ {ISD::FSUB, MVT::v4f64, 1}, ++ {ISD::FSUB, MVT::v8f32, 1}, ++ ++ {ISD::FMUL, MVT::f64, 1}, ++ {ISD::FMUL, MVT::f32, 1}, ++ {ISD::FMUL, MVT::v4f64, 1}, ++ {ISD::FMUL, MVT::v8f32, 1}, ++ ++ {ISD::FDIV, MVT::f32, 12}, ++ {ISD::FDIV, MVT::f64, 10}, ++ {ISD::FDIV, MVT::v8f32, 12}, ++ {ISD::FDIV, MVT::v4f64, 10} ++ ++ }; ++ ++ if (ST->hasLASX()) ++ if (const auto *Entry = CostTableLookup(LASXCostTable, ISD, LT.second)) ++ return LT.first * Entry->Cost; ++ ++ static const CostTblEntry LSXCostTable[] = { ++ ++ {ISD::SHL, MVT::v16i8, 1}, ++ {ISD::SHL, MVT::v8i16, 1}, ++ {ISD::SHL, MVT::v4i32, 1}, ++ {ISD::SHL, MVT::v2i64, 1}, ++ ++ {ISD::SRL, MVT::v16i8, 1}, ++ {ISD::SRL, MVT::v8i16, 1}, ++ {ISD::SRL, MVT::v4i32, 1}, ++ {ISD::SRL, MVT::v2i64, 1}, ++ ++ {ISD::SRA, MVT::v16i8, 1}, ++ {ISD::SRA, MVT::v8i16, 1}, ++ {ISD::SRA, MVT::v4i32, 1}, ++ {ISD::SRA, MVT::v2i64, 1}, ++ ++ {ISD::SUB, MVT::v16i8, 1}, ++ {ISD::SUB, MVT::v8i16, 1}, ++ {ISD::SUB, MVT::v4i32, 1}, ++ {ISD::SUB, MVT::v2i64, 1}, ++ ++ {ISD::ADD, MVT::v16i8, 1}, ++ {ISD::ADD, MVT::v8i16, 1}, ++ {ISD::ADD, MVT::v4i32, 1}, ++ {ISD::ADD, MVT::v2i64, 1}, ++ ++ {ISD::MUL, MVT::v16i8, 1}, ++ {ISD::MUL, MVT::v8i16, 1}, ++ {ISD::MUL, MVT::v4i32, 1}, ++ {ISD::MUL, MVT::v2i64, 1}, ++ ++ {ISD::SDIV, MVT::v16i8, 29}, ++ {ISD::SDIV, MVT::v8i16, 19}, ++ {ISD::SDIV, MVT::v4i32, 14}, ++ {ISD::SDIV, MVT::v2i64, 13}, ++ ++ {ISD::UDIV, MVT::v16i8, 29}, ++ {ISD::UDIV, MVT::v8i16, 19}, ++ {ISD::UDIV, MVT::v4i32, 14}, ++ {ISD::UDIV, MVT::v2i64, 13}, ++ ++ {ISD::SREM, MVT::v16i8, 33}, ++ {ISD::SREM, MVT::v8i16, 21}, ++ {ISD::SREM, MVT::v4i32, 15}, ++ {ISD::SREM, MVT::v2i64, 13}, ++ ++ {ISD::UREM, MVT::v16i8, 29}, ++ {ISD::UREM, MVT::v8i16, 19}, ++ {ISD::UREM, MVT::v4i32, 14}, ++ {ISD::UREM, MVT::v2i64, 13}, ++ ++ {ISD::FADD, MVT::f64, 1}, ++ {ISD::FADD, MVT::f32, 1}, ++ {ISD::FADD, MVT::v2f64, 1}, ++ {ISD::FADD, MVT::v4f32, 1}, ++ ++ {ISD::FSUB, MVT::f64, 1}, ++ {ISD::FSUB, MVT::f32, 1}, ++ {ISD::FSUB, MVT::v2f64, 1}, ++ {ISD::FSUB, MVT::v4f32, 1}, ++ ++ {ISD::FMUL, MVT::f64, 1}, ++ {ISD::FMUL, MVT::f32, 1}, ++ {ISD::FMUL, MVT::v2f64, 1}, ++ {ISD::FMUL, MVT::v4f32, 1}, ++ ++ {ISD::FDIV, MVT::f32, 12}, ++ {ISD::FDIV, MVT::f64, 10}, ++ {ISD::FDIV, MVT::v4f32, 12}, ++ {ISD::FDIV, MVT::v2f64, 10} ++ ++ }; ++ ++ if (ST->hasLSX()) ++ if (const auto *Entry = CostTableLookup(LSXCostTable, ISD, LT.second)) ++ return LT.first * Entry->Cost; ++ ++ // Fallback to the default implementation. ++ return BaseT::getArithmeticInstrCost(Opcode, Ty, Op1Info, Op2Info); ++} ++ ++int LoongArchTTIImpl::getVectorInstrCost(unsigned Opcode, Type *Val, ++ unsigned Index) { ++ assert(Val->isVectorTy() && "This must be a vector type"); ++ ++ Type *ScalarType = Val->getScalarType(); ++ ++ if (Index != -1U) { ++ // Legalize the type. ++ std::pair LT = TLI->getTypeLegalizationCost(DL, Val); ++ ++ // This type is legalized to a scalar type. ++ if (!LT.second.isVector()) ++ return 0; ++ ++ // The type may be split. Normalize the index to the new type. ++ unsigned Width = LT.second.getVectorNumElements(); ++ Index = Index % Width; ++ ++ // The element at index zero is already inside the vector. ++ if (Index == 0) // if (ScalarType->isFloatingPointTy() && Index == 0) ++ return 0; ++ } ++ ++ // Add to the base cost if we know that the extracted element of a vector is ++ // destined to be moved to and used in the integer register file. ++ int RegisterFileMoveCost = 0; ++ if (Opcode == Instruction::ExtractElement && ScalarType->isPointerTy()) ++ RegisterFileMoveCost = 1; ++ ++ int N = TLI->InstructionOpcodeToISD(Opcode); ++ if (N == ISD::INSERT_VECTOR_ELT || N == ISD::EXTRACT_VECTOR_ELT) ++ return 3 + BaseT::getVectorInstrCost(Opcode, Val, Index) + ++ RegisterFileMoveCost; ++ ++ return BaseT::getVectorInstrCost(Opcode, Val, Index) + RegisterFileMoveCost; ++} ++ ++unsigned LoongArchTTIImpl::getLoadStoreVecRegBitWidth(unsigned) const { ++ return getRegisterBitWidth(true); ++} ++ ++int LoongArchTTIImpl::getCastInstrCost(unsigned Opcode, Type *Dst, ++ Type *Src, ++ const Instruction *I) { ++ int ISD = TLI->InstructionOpcodeToISD(Opcode); ++ assert(ISD && "Invalid opcode"); ++ ++ static const TypeConversionCostTblEntry LASXConversionTbl[] = { ++ ++ // TODO:The cost requires more granular testing ++ {ISD::SIGN_EXTEND, MVT::v16i16, MVT::v16i8, 3}, ++ {ISD::ZERO_EXTEND, MVT::v16i16, MVT::v16i8, 3}, ++ {ISD::SIGN_EXTEND, MVT::v8i32, MVT::v8i16, 3}, ++ {ISD::ZERO_EXTEND, MVT::v8i32, MVT::v8i16, 3}, ++ {ISD::SIGN_EXTEND, MVT::v4i64, MVT::v4i32, 3}, ++ {ISD::ZERO_EXTEND, MVT::v4i64, MVT::v4i32, 3}, ++ ++ }; ++ ++ EVT SrcTy = TLI->getValueType(DL, Src); ++ EVT DstTy = TLI->getValueType(DL, Dst); ++ ++ if (!SrcTy.isSimple() || !DstTy.isSimple()) ++ return BaseT::getCastInstrCost(Opcode, Dst, Src); ++ ++ if (ST->hasLASX()) { ++ if (const auto *Entry = ConvertCostTableLookup( ++ LASXConversionTbl, ISD, DstTy.getSimpleVT(), SrcTy.getSimpleVT())) ++ return Entry->Cost; ++ } ++ ++ return BaseT::getCastInstrCost(Opcode, Dst, Src, I); ++} +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchTargetTransformInfo.h b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchTargetTransformInfo.h +new file mode 100644 +index 00000000000..cc29ca9584e +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/LoongArchTargetTransformInfo.h +@@ -0,0 +1,89 @@ ++//===-- LoongArchTargetTransformInfo.h - LoongArch specific TTI -------------*- ++// C++ -*-===// ++// ++// The LLVM Compiler Infrastructure ++// ++// This file is distributed under the University of Illinois Open Source ++// License. See LICENSE.TXT for details. ++// ++//===----------------------------------------------------------------------===// ++// \file ++// This file a TargetTransformInfo::Concept conforming object specific to the ++// LoongArch target machine. It uses the target's detailed information to ++// provide more precise answers to certain TTI queries, while letting the ++// target independent and default TTI implementations handle the rest. ++// ++//===----------------------------------------------------------------------===// ++ ++#ifndef LLVM_LIB_TARGET_LoongArch_LoongArchTARGETTRANSFORMINFO_H ++#define LLVM_LIB_TARGET_LoongArch_LoongArchTARGETTRANSFORMINFO_H ++ ++#include "LoongArch.h" ++#include "LoongArchSubtarget.h" ++#include "LoongArchTargetMachine.h" ++#include "llvm/Analysis/TargetTransformInfo.h" ++#include "llvm/CodeGen/BasicTTIImpl.h" ++#include "llvm/CodeGen/TargetLowering.h" ++ ++namespace llvm { ++ ++class LoongArchTTIImpl : public BasicTTIImplBase { ++ typedef BasicTTIImplBase BaseT; ++ typedef TargetTransformInfo TTI; ++ friend BaseT; ++ ++ const LoongArchSubtarget *ST; ++ const LoongArchTargetLowering *TLI; ++ ++ const LoongArchSubtarget *getST() const { return ST; } ++ const LoongArchTargetLowering *getTLI() const { return TLI; } ++ ++public: ++ explicit LoongArchTTIImpl(const LoongArchTargetMachine *TM, const Function &F) ++ : BaseT(TM, F.getParent()->getDataLayout()), ST(TM->getSubtargetImpl(F)), ++ TLI(ST->getTargetLowering()) {} ++ ++ bool areInlineCompatible(const Function *Caller, ++ const Function *Callee) const; ++ ++ /// \name Scalar TTI Implementations ++ // /// @{ ++ ++ TTI::PopcntSupportKind getPopcntSupport(unsigned TyWidth); ++ ++ /// @} ++ ++ /// \name Vector TTI Implementations ++ /// @{ ++ ++ bool enableInterleavedAccessVectorization() { return true; } ++ ++ unsigned getNumberOfRegisters(bool Vector); ++ ++ unsigned getRegisterBitWidth(bool Vector) const; ++ ++ unsigned getMaxInterleaveFactor(unsigned VF); ++ ++ int getVectorInstrCost(unsigned Opcode, Type *Val, ++ unsigned Index); ++ ++ int getCastInstrCost(unsigned Opcode, Type *Dst, Type *Src, ++ const Instruction *I = nullptr); ++ ++ unsigned getLoadStoreVecRegBitWidth(unsigned AS) const; ++ ++ int getArithmeticInstrCost( ++ unsigned Opcode, Type *Ty, ++ TTI::OperandValueKind Opd1Info = TTI::OK_AnyValue, ++ TTI::OperandValueKind Opd2Info = TTI::OK_AnyValue, ++ TTI::OperandValueProperties Opd1PropInfo = TTI::OP_None, ++ TTI::OperandValueProperties Opd2PropInfo = TTI::OP_None, ++ ArrayRef Args = ArrayRef(), ++ const Instruction *CxtI = nullptr); ++ ++ /// @} ++}; ++ ++} // end namespace llvm ++ ++#endif +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/CMakeLists.txt b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/CMakeLists.txt +new file mode 100644 +index 00000000000..5cf8997da9f +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/CMakeLists.txt +@@ -0,0 +1,13 @@ ++ add_llvm_component_library(LLVMLoongArchDesc ++ LoongArchABIInfo.cpp ++ LoongArchAnalyzeImmediate.cpp ++ LoongArchAsmBackend.cpp ++ LoongArchELFObjectWriter.cpp ++ LoongArchELFStreamer.cpp ++ LoongArchInstPrinter.cpp ++ LoongArchMCAsmInfo.cpp ++ LoongArchMCCodeEmitter.cpp ++ LoongArchMCExpr.cpp ++ LoongArchMCTargetDesc.cpp ++ LoongArchTargetStreamer.cpp ++ ) +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LLVMBuild.txt b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LLVMBuild.txt +new file mode 100644 +index 00000000000..6f0019bbbb3 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LLVMBuild.txt +@@ -0,0 +1,22 @@ ++;===- ./lib/Target/LoongArch/MCTargetDesc/LLVMBuild.txt -------------*- Conf -*--===; ++; ++; Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++; See https://llvm.org/LICENSE.txt for license information. ++; SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++; ++;===------------------------------------------------------------------------===; ++; ++; This is an LLVMBuild description file for the components in this subdirectory. ++; ++; For more information on the LLVMBuild system, please see: ++; ++; http://llvm.org/docs/LLVMBuild.html ++; ++;===------------------------------------------------------------------------===; ++ ++[component_0] ++type = Library ++name = LoongArchDesc ++parent = LoongArch ++required_libraries = MC LoongArchInfo Support ++add_to_library_groups = LoongArch +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchABIInfo.cpp b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchABIInfo.cpp +new file mode 100644 +index 00000000000..18b67961a4d +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchABIInfo.cpp +@@ -0,0 +1,106 @@ ++//===---- LoongArchABIInfo.cpp - Information about LoongArch ABI's ------------------===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++ ++#include "LoongArchABIInfo.h" ++#include "LoongArchRegisterInfo.h" ++#include "llvm/ADT/StringRef.h" ++#include "llvm/ADT/StringSwitch.h" ++#include "llvm/MC/MCTargetOptions.h" ++ ++using namespace llvm; ++ ++namespace { ++static const MCPhysReg LP32IntRegs[4] = {LoongArch::A0, LoongArch::A1, LoongArch::A2, LoongArch::A3}; ++ ++static const MCPhysReg LoongArch64IntRegs[8] = { ++ LoongArch::A0_64, LoongArch::A1_64, LoongArch::A2_64, LoongArch::A3_64, ++ LoongArch::A4_64, LoongArch::A5_64, LoongArch::A6_64, LoongArch::A7_64}; ++} ++ ++ArrayRef LoongArchABIInfo::GetByValArgRegs() const { ++ if (IsLP32()) ++ return makeArrayRef(LP32IntRegs); ++ if (IsLPX32() || IsLP64()) ++ return makeArrayRef(LoongArch64IntRegs); ++ llvm_unreachable("Unhandled ABI"); ++} ++ ++ArrayRef LoongArchABIInfo::GetVarArgRegs() const { ++ if (IsLP32()) ++ return makeArrayRef(LP32IntRegs); ++ if (IsLPX32() || IsLP64()) ++ return makeArrayRef(LoongArch64IntRegs); ++ llvm_unreachable("Unhandled ABI"); ++} ++ ++LoongArchABIInfo LoongArchABIInfo::computeTargetABI(const Triple &TT, StringRef CPU, ++ const MCTargetOptions &Options) { ++ if (Options.getABIName().startswith("lp32")) ++ return LoongArchABIInfo::LP32(); ++ if (Options.getABIName().startswith("lpx32")) ++ return LoongArchABIInfo::LPX32(); ++ if (Options.getABIName().startswith("lp64")) ++ return LoongArchABIInfo::LP64(); ++ assert(Options.getABIName().empty() && "Unknown ABI option for LoongArch"); ++ ++ if (TT.isLoongArch64()) ++ return LoongArchABIInfo::LP64(); ++ return LoongArchABIInfo::LP32(); ++} ++ ++unsigned LoongArchABIInfo::GetStackPtr() const { ++ return ArePtrs64bit() ? LoongArch::SP_64 : LoongArch::SP; ++} ++ ++unsigned LoongArchABIInfo::GetFramePtr() const { ++ return ArePtrs64bit() ? LoongArch::FP_64 : LoongArch::FP; ++} ++ ++unsigned LoongArchABIInfo::GetBasePtr() const { ++ return ArePtrs64bit() ? LoongArch::S7_64 : LoongArch::S7; ++} ++ ++unsigned LoongArchABIInfo::GetNullPtr() const { ++ return ArePtrs64bit() ? LoongArch::ZERO_64 : LoongArch::ZERO; ++} ++ ++unsigned LoongArchABIInfo::GetZeroReg() const { ++ return AreGprs64bit() ? LoongArch::ZERO_64 : LoongArch::ZERO; ++} ++ ++unsigned LoongArchABIInfo::GetPtrAddOp() const { ++ return ArePtrs64bit() ? LoongArch::ADD_D : LoongArch::ADD_W; ++} ++ ++unsigned LoongArchABIInfo::GetPtrAddiOp() const { ++ return ArePtrs64bit() ? LoongArch::ADDI_D : LoongArch::ADDI_W; ++} ++ ++unsigned LoongArchABIInfo::GetPtrSubOp() const { ++ return ArePtrs64bit() ? LoongArch::SUB_D : LoongArch::SUB_W; ++} ++ ++unsigned LoongArchABIInfo::GetPtrAndOp() const { ++ return ArePtrs64bit() ? LoongArch::AND : LoongArch::AND32; ++} ++ ++unsigned LoongArchABIInfo::GetGPRMoveOp() const { ++ return ArePtrs64bit() ? LoongArch::OR : LoongArch::OR32; ++} ++ ++unsigned LoongArchABIInfo::GetEhDataReg(unsigned I) const { ++ static const unsigned EhDataReg[] = { ++ LoongArch::A0, LoongArch::A1, LoongArch::A2, LoongArch::A3 ++ }; ++ static const unsigned EhDataReg64[] = { ++ LoongArch::A0_64, LoongArch::A1_64, LoongArch::A2_64, LoongArch::A3_64 ++ }; ++ ++ return IsLP64() ? EhDataReg64[I] : EhDataReg[I]; ++} ++ +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchABIInfo.h b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchABIInfo.h +new file mode 100644 +index 00000000000..334ee80ea98 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchABIInfo.h +@@ -0,0 +1,76 @@ ++//===---- LoongArchABIInfo.h - Information about LoongArch ABI's --------------------===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++ ++#ifndef LLVM_LIB_TARGET_LOONGARCH_MCTARGETDESC_LOONGARCHABIINFO_H ++#define LLVM_LIB_TARGET_LOONGARCH_MCTARGETDESC_LOONGARCHABIINFO_H ++ ++#include "llvm/ADT/Triple.h" ++#include "llvm/IR/CallingConv.h" ++#include "llvm/MC/MCRegisterInfo.h" ++ ++namespace llvm { ++ ++template class ArrayRef; ++class MCTargetOptions; ++class StringRef; ++class TargetRegisterClass; ++ ++class LoongArchABIInfo { ++public: ++ enum class ABI { Unknown, LP32, LPX32, LP64 }; ++ ++protected: ++ ABI ThisABI; ++ ++public: ++ LoongArchABIInfo(ABI ThisABI) : ThisABI(ThisABI) {} ++ ++ static LoongArchABIInfo Unknown() { return LoongArchABIInfo(ABI::Unknown); } ++ static LoongArchABIInfo LP32() { return LoongArchABIInfo(ABI::LP32); } ++ static LoongArchABIInfo LPX32() { return LoongArchABIInfo(ABI::LPX32); } ++ static LoongArchABIInfo LP64() { return LoongArchABIInfo(ABI::LP64); } ++ static LoongArchABIInfo computeTargetABI(const Triple &TT, StringRef CPU, ++ const MCTargetOptions &Options); ++ ++ bool IsKnown() const { return ThisABI != ABI::Unknown; } ++ bool IsLP32() const { return ThisABI == ABI::LP32; } ++ bool IsLPX32() const { return ThisABI == ABI::LPX32; } ++ bool IsLP64() const { return ThisABI == ABI::LP64; } ++ ABI GetEnumValue() const { return ThisABI; } ++ ++ /// The registers to use for byval arguments. ++ ArrayRef GetByValArgRegs() const; ++ ++ /// The registers to use for the variable argument list. ++ ArrayRef GetVarArgRegs() const; ++ ++ /// Ordering of ABI's ++ /// LoongArchGenSubtargetInfo.inc will use this to resolve conflicts when given ++ /// multiple ABI options. ++ bool operator<(const LoongArchABIInfo Other) const { ++ return ThisABI < Other.GetEnumValue(); ++ } ++ ++ unsigned GetStackPtr() const; ++ unsigned GetFramePtr() const; ++ unsigned GetBasePtr() const; ++ unsigned GetNullPtr() const; ++ unsigned GetZeroReg() const; ++ unsigned GetPtrAddOp() const; ++ unsigned GetPtrAddiOp() const; ++ unsigned GetPtrSubOp() const; ++ unsigned GetPtrAndOp() const; ++ unsigned GetGPRMoveOp() const; ++ inline bool ArePtrs64bit() const { return IsLP64(); } ++ inline bool AreGprs64bit() const { return IsLPX32() || IsLP64(); } ++ ++ unsigned GetEhDataReg(unsigned I) const; ++}; ++} ++ ++#endif +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAnalyzeImmediate.cpp b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAnalyzeImmediate.cpp +new file mode 100644 +index 00000000000..96e43b2d339 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAnalyzeImmediate.cpp +@@ -0,0 +1,64 @@ ++//===- LoongArchAnalyzeImmediate.cpp - Analyze Immediates -----------------===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++ ++#include "LoongArchAnalyzeImmediate.h" ++#include "LoongArch.h" ++#include "MCTargetDesc/LoongArchMCTargetDesc.h" ++#include "llvm/Support/MathExtras.h" ++ ++using namespace llvm; ++ ++LoongArchAnalyzeImmediate::InstSeq ++LoongArchAnalyzeImmediate::generateInstSeq(int64_t Val, bool Is64Bit) { ++ // Val: ++ // | hi32 | lo32 | ++ // +------------+------------------+------------------+-----------+ ++ // | Bits_52_63 | Bits_32_51 | Bits_12_31 | Bits_0_11 | ++ // +------------+------------------+------------------+-----------+ ++ // 63 52 51 32 31 12 11 0 ++ unsigned ORIOp = Is64Bit ? LoongArch::ORI : LoongArch::ORI32; ++ unsigned LU12IOp = Is64Bit ? LoongArch::LU12I_W : LoongArch::LU12I_W32; ++ unsigned ADDIOp = Is64Bit ? LoongArch::ADDI_W64 : LoongArch::ADDI_W; ++ unsigned LU32IOp = LoongArch::LU32I_D_R2; ++ unsigned LU52IOp = LoongArch::LU52I_D; ++ ++ int64_t Bits_52_63 = Val >> 52 & 0xFFF; ++ int64_t Bits_32_51 = Val >> 32 & 0xFFFFF; ++ int64_t Bits_12_31 = Val >> 12 & 0xFFFFF; ++ int64_t Bits_0_11 = Val & 0xFFF; ++ ++ InstSeq Insts; ++ ++ if (isInt<12>(Val) && Is64Bit) { ++ Insts.push_back(Inst(LoongArch::ADDI_D, SignExtend64<12>(Bits_0_11))); ++ return Insts; ++ } ++ ++ if (Bits_52_63 != 0 && SignExtend64<52>(Val) == 0) { ++ Insts.push_back(Inst(LU52IOp, SignExtend64<12>(Bits_52_63))); ++ return Insts; ++ } ++ ++ if (Bits_12_31 == 0) ++ Insts.push_back(Inst(ORIOp, Bits_0_11)); ++ else if (SignExtend32<1>(Bits_0_11 >> 11) == SignExtend32<20>(Bits_12_31)) ++ Insts.push_back(Inst(ADDIOp, SignExtend64<12>(Bits_0_11))); ++ else { ++ Insts.push_back(Inst(LU12IOp, SignExtend64<20>(Bits_12_31))); ++ if (Bits_0_11 != 0) ++ Insts.push_back(Inst(ORIOp, Bits_0_11)); ++ } ++ ++ if (SignExtend32<1>(Bits_12_31 >> 19) != SignExtend32<20>(Bits_32_51)) ++ Insts.push_back(Inst(LU32IOp, SignExtend64<20>(Bits_32_51))); ++ ++ if (SignExtend32<1>(Bits_32_51 >> 19) != SignExtend32<12>(Bits_52_63)) ++ Insts.push_back(Inst(LU52IOp, SignExtend64<12>(Bits_52_63))); ++ ++ return Insts; ++} +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAnalyzeImmediate.h b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAnalyzeImmediate.h +new file mode 100644 +index 00000000000..3ff00f254c1 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAnalyzeImmediate.h +@@ -0,0 +1,29 @@ ++//===- LoongArchAnalyzeImmediate.h - Analyze Immediates --------*- C++ -*--===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++ ++#ifndef LLVM_LIB_TARGET_LOONGARCH_LOONGARCHANALYZEIMMEDIATE_H ++#define LLVM_LIB_TARGET_LOONGARCH_LOONGARCHANALYZEIMMEDIATE_H ++ ++#include "llvm/ADT/SmallVector.h" ++ ++namespace llvm { ++namespace LoongArchAnalyzeImmediate { ++struct Inst { ++ unsigned Opc; ++ int64_t Imm; ++ Inst(unsigned Opc, int64_t Imm) : Opc(Opc), Imm(Imm) {} ++}; ++using InstSeq = SmallVector; ++ ++// Helper to generate an instruction sequence that will materialise the given ++// immediate value into a register. ++InstSeq generateInstSeq(int64_t Val, bool Is64Bit); ++} // end namespace LoongArchAnalyzeImmediate ++} // end namespace llvm ++ ++#endif // LLVM_LIB_TARGET_LOONGARCH_LOONGARCHANALYZEIMMEDIATE_H +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp +new file mode 100644 +index 00000000000..daf7fead071 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp +@@ -0,0 +1,213 @@ ++//===-- LoongArchAsmBackend.cpp - LoongArch Asm Backend ----------------------------===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++// ++// This file implements the LoongArchAsmBackend class. ++// ++//===----------------------------------------------------------------------===// ++// ++ ++#include "MCTargetDesc/LoongArchAsmBackend.h" ++#include "MCTargetDesc/LoongArchABIInfo.h" ++#include "MCTargetDesc/LoongArchFixupKinds.h" ++#include "MCTargetDesc/LoongArchMCExpr.h" ++#include "MCTargetDesc/LoongArchMCTargetDesc.h" ++#include "llvm/ADT/STLExtras.h" ++#include "llvm/MC/MCAsmBackend.h" ++#include "llvm/MC/MCAssembler.h" ++#include "llvm/MC/MCContext.h" ++#include "llvm/MC/MCDirectives.h" ++#include "llvm/MC/MCELFObjectWriter.h" ++#include "llvm/MC/MCFixupKindInfo.h" ++#include "llvm/MC/MCObjectWriter.h" ++#include "llvm/MC/MCSubtargetInfo.h" ++#include "llvm/MC/MCTargetOptions.h" ++#include "llvm/MC/MCValue.h" ++#include "llvm/Support/EndianStream.h" ++#include "llvm/Support/ErrorHandling.h" ++#include "llvm/Support/Format.h" ++#include "llvm/Support/MathExtras.h" ++#include "llvm/Support/raw_ostream.h" ++ ++using namespace llvm; ++ ++std::unique_ptr ++LoongArchAsmBackend::createObjectTargetWriter() const { ++ return createLoongArchELFObjectWriter(TheTriple, IsLPX32); ++} ++ ++/// ApplyFixup - Apply the \p Value for given \p Fixup into the provided ++/// data fragment, at the offset specified by the fixup and following the ++/// fixup kind as appropriate. ++void LoongArchAsmBackend::applyFixup(const MCAssembler &Asm, const MCFixup &Fixup, ++ const MCValue &Target, ++ MutableArrayRef Data, uint64_t Value, ++ bool IsResolved, ++ const MCSubtargetInfo *STI) const { ++ MCFixupKind Kind = Fixup.getKind(); ++ if (Kind > FirstTargetFixupKind) ++ return; ++ ++ if (!Value) ++ return; // Doesn't change encoding. ++ ++ // Where do we start in the object ++ unsigned Offset = Fixup.getOffset(); ++ // Number of bytes we need to fixup ++ unsigned NumBytes = (getFixupKindInfo(Kind).TargetSize + 7) / 8; ++ ++ ++ // Grab current value, if any, from bits. ++ uint64_t CurVal = 0; ++ ++ for (unsigned i = 0; i != NumBytes; ++i) ++ CurVal |= (uint64_t)((uint8_t)Data[Offset + i]) << (i*8); ++ ++ uint64_t Mask = ((uint64_t)(-1) >> ++ (64 - getFixupKindInfo(Kind).TargetSize)); ++ CurVal |= Value & Mask; ++ ++ // Write out the fixed up bytes back to the code/data bits. ++ for (unsigned i = 0; i != NumBytes; ++i) ++ Data[Offset + i] = (uint8_t)((CurVal >> (i*8)) & 0xff); ++} ++ ++Optional LoongArchAsmBackend::getFixupKind(StringRef Name) const { ++ return StringSwitch>(Name) ++ .Case("R_LARCH_NONE", (MCFixupKind)LoongArch::fixup_LARCH_NONE) ++ .Case("R_LARCH_32", FK_Data_4) ++ .Case("R_LARCH_64", FK_Data_8) ++ .Default(MCAsmBackend::getFixupKind(Name)); ++} ++ ++const MCFixupKindInfo &LoongArchAsmBackend:: ++getFixupKindInfo(MCFixupKind Kind) const { ++ const static MCFixupKindInfo Infos[] = { ++ // This table *must* be in same the order of fixup_* kinds in ++ // LoongArchFixupKinds.h. ++ // ++ // name offset bits flags ++ { "fixup_LARCH_NONE", 0, 0, 0 }, ++ { "fixup_LARCH_SOP_PUSH_ABSOLUTE", 0, 0, 0}, ++ { "fixup_LARCH_SOP_PUSH_PCREL", 0, 0, 0}, ++ { "fixup_LARCH_SOP_PUSH_GPREL", 0, 0, 0}, ++ { "fixup_LARCH_SOP_PUSH_TLS_TPREL", 0, 0, 0}, ++ { "fixup_LARCH_SOP_PUSH_TLS_GOT", 0, 0, 0}, ++ { "fixup_LARCH_SOP_PUSH_TLS_GD", 0, 0, 0}, ++ { "fixup_LARCH_SOP_PUSH_PLT_PCREL", 0, 0, 0}, ++ { "fixup_LARCH_32", 0, 0, 0}, ++ { "fixup_LARCH_64", 0, 0, 0}, ++ { "fixup_LARCH_RELATIVE", 0, 0, 0}, ++ { "fixup_LARCH_COPY", 0, 0, 0}, ++ { "fixup_LARCH_JUMP_SLOT", 0, 0, 0}, ++ { "fixup_LARCH_TLS_DTPMOD32", 0, 0, 0}, ++ { "fixup_LARCH_TLS_DTPMOD64", 0, 0, 0}, ++ { "fixup_LARCH_TLS_DTPREL32", 0, 0, 0}, ++ { "fixup_LARCH_TLS_DTPREL64", 0, 0, 0}, ++ { "fixup_LARCH_TLS_TPREL32", 0, 0, 0}, ++ { "fixup_LARCH_TLS_TPREL64", 0, 0, 0}, ++ { "fixup_LARCH_IRELATIVE", 0, 0, 0}, ++ { "fixup_LARCH_MARK_LA", 0, 0, 0}, ++ { "fixup_LARCH_MARK_PCREL", 0, 0, 0}, ++ { "fixup_LARCH_SOP_PUSH_DUP", 0, 0, 0}, ++ { "fixup_LARCH_SOP_ASSERT", 0, 0, 0}, ++ { "fixup_LARCH_SOP_NOT", 0, 0, 0}, ++ { "fixup_LARCH_SOP_SUB", 0, 0, 0}, ++ { "fixup_LARCH_SOP_SL", 0, 0, 0}, ++ { "fixup_LARCH_SOP_SR", 0, 0, 0}, ++ { "fixup_LARCH_SOP_ADD", 0, 0, 0}, ++ { "fixup_LARCH_SOP_AND", 0, 0, 0}, ++ { "fixup_LARCH_SOP_IF_ELSE", 0, 0, 0}, ++ { "fixup_LARCH_SOP_POP_32_S_10_5", 0, 0, 0}, ++ { "fixup_LARCH_SOP_POP_32_U_10_12", 0, 0, 0}, ++ { "fixup_LARCH_SOP_POP_32_S_10_12", 0, 0, 0}, ++ { "fixup_LARCH_SOP_POP_32_S_10_16", 0, 0, 0}, ++ { "fixup_LARCH_SOP_POP_32_S_10_16_S2", 0, 0, 0}, ++ { "fixup_LARCH_SOP_POP_32_S_5_20", 0, 0, 0}, ++ { "fixup_LARCH_SOP_POP_32_S_0_5_10_16_S2", 0, 0, 0}, ++ { "fixup_LARCH_SOP_POP_32_S_0_10_10_16_S2", 0, 0, 0}, ++ { "fixup_LARCH_SOP_POP_32_U", 0, 0, 0}, ++ { "fixup_LARCH_ADD8", 0, 0, 0}, ++ { "fixup_LARCH_ADD16", 0, 0, 0}, ++ { "fixup_LARCH_ADD24", 0, 0, 0}, ++ { "fixup_LARCH_ADD32", 0, 0, 0}, ++ { "fixup_LARCH_ADD64", 0, 0, 0}, ++ { "fixup_LARCH_SUB8", 0, 0, 0}, ++ { "fixup_LARCH_SUB16", 0, 0, 0}, ++ { "fixup_LARCH_SUB24", 0, 0, 0}, ++ { "fixup_LARCH_SUB32", 0, 0, 0}, ++ { "fixup_LARCH_SUB64", 0, 0, 0}, ++ }; ++ ++ if (Kind < FirstTargetFixupKind) ++ return MCAsmBackend::getFixupKindInfo(Kind); ++ ++ assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && ++ "Invalid kind!"); ++ ++ return Infos[Kind - FirstTargetFixupKind]; ++} ++ ++/// WriteNopData - Write an (optimal) nop sequence of Count bytes ++/// to the given output. If the target cannot generate such a sequence, ++/// it should return an error. ++/// ++/// \return - True on success. ++bool LoongArchAsmBackend::writeNopData(raw_ostream &OS, uint64_t Count) const { ++ // Check for a less than instruction size number of bytes ++ if ((Count % 4) != 0) ++ return false; ++ ++ // The nop on LoongArch is andi r0, r0, 0. ++ for (; Count >= 4; Count -= 4) ++ support::endian::write(OS, 0x03400000, support::little); ++ ++ return true; ++} ++ ++bool LoongArchAsmBackend::shouldForceRelocation(const MCAssembler &Asm, ++ const MCFixup &Fixup, ++ const MCValue &Target) { ++ const unsigned FixupKind = Fixup.getKind(); ++ switch (FixupKind) { ++ default: ++ return false; ++ // All these relocations require special processing ++ // at linking time. Delegate this work to a linker. ++ case LoongArch::fixup_LARCH_SOP_PUSH_PLT_PCREL: ++ case LoongArch::fixup_LARCH_SOP_PUSH_PCREL: ++ case LoongArch::fixup_LARCH_SOP_PUSH_GPREL: ++ case LoongArch::fixup_LARCH_SOP_PUSH_TLS_GD: ++ case LoongArch::fixup_LARCH_SOP_PUSH_TLS_GOT: ++ case LoongArch::fixup_LARCH_SOP_PUSH_TLS_TPREL: ++ case LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE: ++ case LoongArch::fixup_LARCH_SOP_IF_ELSE: ++ case LoongArch::fixup_LARCH_SOP_ADD: ++ case LoongArch::fixup_LARCH_SOP_SUB: ++ case LoongArch::fixup_LARCH_SOP_AND: ++ case LoongArch::fixup_LARCH_SOP_SL: ++ case LoongArch::fixup_LARCH_SOP_SR: ++ case LoongArch::fixup_LARCH_SOP_POP_32_S_10_5: ++ case LoongArch::fixup_LARCH_SOP_POP_32_S_5_20: ++ case LoongArch::fixup_LARCH_SOP_POP_32_S_10_12: ++ case LoongArch::fixup_LARCH_SOP_POP_32_U_10_12: ++ case LoongArch::fixup_LARCH_SOP_POP_32_S_10_16_S2: ++ case LoongArch::fixup_LARCH_SOP_POP_32_S_0_5_10_16_S2: ++ case LoongArch::fixup_LARCH_SOP_POP_32_S_0_10_10_16_S2: ++ return true; ++ } ++} ++ ++MCAsmBackend *llvm::createLoongArchAsmBackend(const Target &T, ++ const MCSubtargetInfo &STI, ++ const MCRegisterInfo &MRI, ++ const MCTargetOptions &Options) { ++ LoongArchABIInfo ABI = LoongArchABIInfo::computeTargetABI( ++ STI.getTargetTriple(), STI.getCPU(), Options); ++ return new LoongArchAsmBackend(T, MRI, STI.getTargetTriple(), STI.getCPU(), ++ ABI.IsLPX32()); ++} +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.h b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.h +new file mode 100644 +index 00000000000..cdeeb6bddb5 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.h +@@ -0,0 +1,99 @@ ++//===-- LoongArchAsmBackend.h - LoongArch Asm Backend ------------------------------===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++// ++// This file defines the LoongArchAsmBackend class. ++// ++//===----------------------------------------------------------------------===// ++// ++ ++#ifndef LLVM_LIB_TARGET_LOONGARCH_MCTARGETDESC_LOONGARCHASMBACKEND_H ++#define LLVM_LIB_TARGET_LOONGARCH_MCTARGETDESC_LOONGARCHASMBACKEND_H ++ ++#include "MCTargetDesc/LoongArchFixupKinds.h" ++#include "llvm/ADT/Triple.h" ++#include "llvm/MC/MCAsmBackend.h" ++ ++namespace llvm { ++ ++class MCAssembler; ++struct MCFixupKindInfo; ++class MCObjectWriter; ++class MCRegisterInfo; ++class MCSymbolELF; ++class Target; ++ ++class LoongArchAsmBackend : public MCAsmBackend { ++ Triple TheTriple; ++ bool IsLPX32; ++ ++public: ++ LoongArchAsmBackend(const Target &T, const MCRegisterInfo &MRI, const Triple &TT, ++ StringRef CPU, bool LPX32) ++ : MCAsmBackend(support::little), ++ TheTriple(TT), IsLPX32(LPX32) { ++ assert(TT.isLittleEndian()); ++ } ++ ++ std::unique_ptr ++ createObjectTargetWriter() const override; ++ ++ void applyFixup(const MCAssembler &Asm, const MCFixup &Fixup, ++ const MCValue &Target, MutableArrayRef Data, ++ uint64_t Value, bool IsResolved, ++ const MCSubtargetInfo *STI) const override; ++ ++ Optional getFixupKind(StringRef Name) const override; ++ const MCFixupKindInfo &getFixupKindInfo(MCFixupKind Kind) const override; ++ ++ unsigned getNumFixupKinds() const override { ++ return LoongArch::NumTargetFixupKinds; ++ } ++ ++ /// @name Target Relaxation Interfaces ++ /// @{ ++ ++ /// MayNeedRelaxation - Check whether the given instruction may need ++ /// relaxation. ++ /// ++ /// \param Inst - The instruction to test. ++ bool mayNeedRelaxation(const MCInst &Inst, ++ const MCSubtargetInfo &STI) const override { ++ return false; ++ } ++ ++ /// fixupNeedsRelaxation - Target specific predicate for whether a given ++ /// fixup requires the associated instruction to be relaxed. ++ bool fixupNeedsRelaxation(const MCFixup &Fixup, uint64_t Value, ++ const MCRelaxableFragment *DF, ++ const MCAsmLayout &Layout) const override { ++ // FIXME. ++ llvm_unreachable("RelaxInstruction() unimplemented"); ++ return false; ++ } ++ ++ /// RelaxInstruction - Relax the instruction in the given fragment ++ /// to the next wider instruction. ++ /// ++ /// \param Inst - The instruction to relax, which may be the same ++ /// as the output. ++ /// \param [out] Res On return, the relaxed instruction. ++ void relaxInstruction(const MCInst &Inst, const MCSubtargetInfo &STI, ++ MCInst &Res) const override {} ++ ++ /// @} ++ ++ bool writeNopData(raw_ostream &OS, uint64_t Count) const override; ++ ++ bool shouldForceRelocation(const MCAssembler &Asm, const MCFixup &Fixup, ++ const MCValue &Target) override; ++ ++}; // class LoongArchAsmBackend ++ ++} // namespace ++ ++#endif +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchBaseInfo.h b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchBaseInfo.h +new file mode 100644 +index 00000000000..707333c18fb +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchBaseInfo.h +@@ -0,0 +1,128 @@ ++//===-- LoongArchBaseInfo.h - Top level definitions for LoongArch MC ------*- C++ -*-===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++// ++// This file contains small standalone helper functions and enum definitions for ++// the LoongArch target useful for the compiler back-end and the MC libraries. ++// ++//===----------------------------------------------------------------------===// ++#ifndef LLVM_LIB_TARGET_LOONGARCH_MCTARGETDESC_LOONGARCHBASEINFO_H ++#define LLVM_LIB_TARGET_LOONGARCH_MCTARGETDESC_LOONGARCHBASEINFO_H ++ ++#include "LoongArchFixupKinds.h" ++#include "LoongArchMCTargetDesc.h" ++#include "llvm/MC/MCExpr.h" ++#include "llvm/Support/DataTypes.h" ++#include "llvm/Support/ErrorHandling.h" ++ ++namespace llvm { ++ ++/// LoongArchII - This namespace holds all of the target specific flags that ++/// instruction info tracks. ++/// ++namespace LoongArchII { ++ /// Target Operand Flag enum. ++ enum TOF { ++ //===------------------------------------------------------------------===// ++ // LoongArch Specific MachineOperand flags. ++ ++ MO_NO_FLAG, ++ ++ /// MO_ABS_XXX - Represents the hi or low part of an absolute symbol ++ /// address. ++ MO_ABS_HI, ++ MO_ABS_LO, ++ MO_ABS_HIGHER, ++ MO_ABS_HIGHEST, ++ ++ /// MO_PCREL_XXX - Represents the hi or low part of an pc relative symbol ++ /// address. ++ MO_PCREL_HI, ++ MO_PCREL_LO, ++ // with tmp reg ++ MO_PCREL_RRHI, ++ MO_PCREL_RRLO, ++ MO_PCREL_RRHIGHER, ++ MO_PCREL_RRHIGHEST, ++ ++ // LArch Tls gd and ld ++ MO_TLSGD_HI, ++ MO_TLSGD_LO, ++ // with tmp reg ++ MO_TLSGD_RRHI, ++ MO_TLSGD_RRLO, ++ MO_TLSGD_RRHIGHER, ++ MO_TLSGD_RRHIGHEST, ++ ++ // LArch thread tprel (ie/le) ++ // LArch Tls ie ++ MO_TLSIE_HI, ++ MO_TLSIE_LO, ++ // with tmp reg ++ MO_TLSIE_RRHI, ++ MO_TLSIE_RRLO, ++ MO_TLSIE_RRHIGHER, ++ MO_TLSIE_RRHIGHEST, ++ // LArch Tls le ++ MO_TLSLE_HI, ++ MO_TLSLE_LO, ++ MO_TLSLE_HIGHER, ++ MO_TLSLE_HIGHEST, ++ ++ // Loongarch got ++ MO_GOT_HI, ++ MO_GOT_LO, ++ // with tmp reg ++ MO_GOT_RRHI, ++ MO_GOT_RRLO, ++ MO_GOT_RRHIGHER, ++ MO_GOT_RRHIGHEST, ++ ++ MO_CALL_HI, ++ MO_CALL_LO, ++ }; ++ ++ enum { ++ //===------------------------------------------------------------------===// ++ // Instruction encodings. These are the standard/most common forms for ++ // LoongArch instructions. ++ // ++ ++ // Pseudo - This represents an instruction that is a pseudo instruction ++ // or one that has not been implemented yet. It is illegal to code generate ++ // it, but tolerated for intermediate implementation stages. ++ Pseudo = 0, ++ ++ /// FrmR - This form is for instructions of the format R. ++ FrmR = 1, ++ /// FrmI - This form is for instructions of the format I. ++ FrmI = 2, ++ /// FrmJ - This form is for instructions of the format J. ++ FrmJ = 3, ++ /// FrmFR - This form is for instructions of the format FR. ++ FrmFR = 4, ++ /// FrmFI - This form is for instructions of the format FI. ++ FrmFI = 5, ++ /// FrmOther - This form is for instructions that have no specific format. ++ FrmOther = 6, ++ ++ FormMask = 15, ++ /// IsCTI - Instruction is a Control Transfer Instruction. ++ IsCTI = 1 << 4, ++ /// HasForbiddenSlot - Instruction has a forbidden slot. ++ HasForbiddenSlot = 1 << 5, ++ /// IsPCRelativeLoad - A Load instruction with implicit source register ++ /// ($pc) with explicit offset and destination register ++ IsPCRelativeLoad = 1 << 6, ++ /// HasFCCRegOperand - Instruction uses an $fcc register. ++ HasFCCRegOperand = 1 << 7 ++ ++ }; ++} ++} ++ ++#endif +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchELFObjectWriter.cpp b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchELFObjectWriter.cpp +new file mode 100644 +index 00000000000..e00b9af9d49 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchELFObjectWriter.cpp +@@ -0,0 +1,186 @@ ++//===-- LoongArchELFObjectWriter.cpp - LoongArch ELF Writer -------------------------===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++ ++#include "MCTargetDesc/LoongArchFixupKinds.h" ++#include "MCTargetDesc/LoongArchMCTargetDesc.h" ++#include "llvm/ADT/STLExtras.h" ++#include "llvm/BinaryFormat/ELF.h" ++#include "llvm/MC/MCContext.h" ++#include "llvm/MC/MCELFObjectWriter.h" ++#include "llvm/MC/MCFixup.h" ++#include "llvm/MC/MCObjectWriter.h" ++#include "llvm/MC/MCSymbolELF.h" ++#include "llvm/Support/Casting.h" ++#include "llvm/Support/Compiler.h" ++#include "llvm/Support/Debug.h" ++#include "llvm/Support/ErrorHandling.h" ++#include "llvm/Support/MathExtras.h" ++#include "llvm/Support/raw_ostream.h" ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define DEBUG_TYPE "loongarch-elf-object-writer" ++ ++using namespace llvm; ++ ++namespace { ++ ++class LoongArchELFObjectWriter : public MCELFObjectTargetWriter { ++public: ++ LoongArchELFObjectWriter(uint8_t OSABI, bool HasRelocationAddend, bool Is64); ++ ++ ~LoongArchELFObjectWriter() override = default; ++ ++ unsigned getRelocType(MCContext &Ctx, const MCValue &Target, ++ const MCFixup &Fixup, bool IsPCRel) const override; ++ bool needsRelocateWithSymbol(const MCSymbol &Sym, ++ unsigned Type) const override { ++ return true; ++ } ++}; ++ ++} // end anonymous namespace ++ ++LoongArchELFObjectWriter::LoongArchELFObjectWriter(uint8_t OSABI, ++ bool HasRelocationAddend, bool Is64) ++ : MCELFObjectTargetWriter(Is64, OSABI, ELF::EM_LOONGARCH, HasRelocationAddend) {} ++ ++unsigned LoongArchELFObjectWriter::getRelocType(MCContext &Ctx, ++ const MCValue &Target, ++ const MCFixup &Fixup, ++ bool IsPCRel) const { ++ // Determine the type of the relocation. ++ ///XXX:Reloc ++ unsigned Kind = (unsigned)Fixup.getKind(); ++ ++ switch (Kind) { ++ default: ++ return ELF::R_LARCH_NONE; ++ //llvm_unreachable("invalid fixup kind!"); ++ case FK_Data_4: ++ case LoongArch::fixup_LARCH_32: ++ return ELF::R_LARCH_32; ++ case FK_GPRel_4: ++ case FK_Data_8: ++ case LoongArch::fixup_LARCH_64: ++ return ELF::R_LARCH_64; ++ case LoongArch::fixup_LARCH_NONE: ++ return ELF::R_LARCH_NONE; ++ case LoongArch::fixup_LARCH_RELATIVE: ++ return ELF::R_LARCH_RELATIVE; ++ case LoongArch::fixup_LARCH_COPY: ++ return ELF::R_LARCH_COPY; ++ case LoongArch::fixup_LARCH_JUMP_SLOT: ++ return ELF::R_LARCH_JUMP_SLOT; ++ case LoongArch::fixup_LARCH_TLS_DTPMOD32: ++ return ELF::R_LARCH_TLS_DTPMOD32; ++ case LoongArch::fixup_LARCH_TLS_DTPMOD64: ++ return ELF::R_LARCH_TLS_DTPMOD64; ++ case LoongArch::fixup_LARCH_TLS_DTPREL32: ++ return ELF::R_LARCH_TLS_DTPREL32; ++ case LoongArch::fixup_LARCH_TLS_DTPREL64: ++ return ELF::R_LARCH_TLS_DTPREL64; ++ case LoongArch::fixup_LARCH_TLS_TPREL32: ++ return ELF::R_LARCH_TLS_TPREL32; ++ case LoongArch::fixup_LARCH_TLS_TPREL64: ++ return ELF::R_LARCH_TLS_TPREL64; ++ case LoongArch::fixup_LARCH_IRELATIVE: ++ return ELF::R_LARCH_IRELATIVE; ++ case LoongArch::fixup_LARCH_MARK_LA: ++ return ELF::R_LARCH_MARK_LA; ++ case LoongArch::fixup_LARCH_MARK_PCREL: ++ return ELF::R_LARCH_MARK_PCREL; ++ case LoongArch::fixup_LARCH_SOP_PUSH_PCREL: ++ return ELF::R_LARCH_SOP_PUSH_PCREL; ++ case LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE: ++ return ELF::R_LARCH_SOP_PUSH_ABSOLUTE; ++ case LoongArch::fixup_LARCH_SOP_PUSH_DUP: ++ return ELF::R_LARCH_SOP_PUSH_DUP; ++ case LoongArch::fixup_LARCH_SOP_PUSH_GPREL: ++ return ELF::R_LARCH_SOP_PUSH_GPREL; ++ case LoongArch::fixup_LARCH_SOP_PUSH_TLS_TPREL: ++ return ELF::R_LARCH_SOP_PUSH_TLS_TPREL; ++ case LoongArch::fixup_LARCH_SOP_PUSH_TLS_GOT: ++ return ELF::R_LARCH_SOP_PUSH_TLS_GOT; ++ case LoongArch::fixup_LARCH_SOP_PUSH_TLS_GD: ++ return ELF::R_LARCH_SOP_PUSH_TLS_GD; ++ case LoongArch::fixup_LARCH_SOP_PUSH_PLT_PCREL: ++ return ELF::R_LARCH_SOP_PUSH_PLT_PCREL; ++ case LoongArch::fixup_LARCH_SOP_ASSERT: ++ return ELF::R_LARCH_SOP_ASSERT; ++ case LoongArch::fixup_LARCH_SOP_NOT: ++ return ELF::R_LARCH_SOP_NOT; ++ case LoongArch::fixup_LARCH_SOP_SUB: ++ return ELF::R_LARCH_SOP_SUB; ++ case LoongArch::fixup_LARCH_SOP_SL: ++ return ELF::R_LARCH_SOP_SL; ++ case LoongArch::fixup_LARCH_SOP_SR: ++ return ELF::R_LARCH_SOP_SR; ++ case LoongArch::fixup_LARCH_SOP_ADD: ++ return ELF::R_LARCH_SOP_ADD; ++ case LoongArch::fixup_LARCH_SOP_AND: ++ return ELF::R_LARCH_SOP_AND; ++ case LoongArch::fixup_LARCH_SOP_IF_ELSE: ++ return ELF::R_LARCH_SOP_IF_ELSE; ++ case LoongArch::fixup_LARCH_SOP_POP_32_S_10_5: ++ return ELF::R_LARCH_SOP_POP_32_S_10_5; ++ case LoongArch::fixup_LARCH_SOP_POP_32_U_10_12: ++ return ELF::R_LARCH_SOP_POP_32_U_10_12; ++ case LoongArch::fixup_LARCH_SOP_POP_32_S_10_12: ++ return ELF::R_LARCH_SOP_POP_32_S_10_12; ++ case LoongArch::fixup_LARCH_SOP_POP_32_S_10_16: ++ return ELF::R_LARCH_SOP_POP_32_S_10_16; ++ case LoongArch::fixup_LARCH_SOP_POP_32_S_10_16_S2: ++ return ELF::R_LARCH_SOP_POP_32_S_10_16_S2; ++ case LoongArch::fixup_LARCH_SOP_POP_32_S_5_20: ++ return ELF::R_LARCH_SOP_POP_32_S_5_20; ++ case LoongArch::fixup_LARCH_SOP_POP_32_S_0_5_10_16_S2: ++ return ELF::R_LARCH_SOP_POP_32_S_0_5_10_16_S2; ++ case LoongArch::fixup_LARCH_SOP_POP_32_S_0_10_10_16_S2: ++ return ELF::R_LARCH_SOP_POP_32_S_0_10_10_16_S2; ++ case LoongArch::fixup_LARCH_SOP_POP_32_U: ++ return ELF::R_LARCH_SOP_POP_32_U; ++ case LoongArch::fixup_LARCH_ADD8: ++ return ELF::R_LARCH_ADD8; ++ case LoongArch::fixup_LARCH_ADD16: ++ return ELF::R_LARCH_ADD16; ++ case LoongArch::fixup_LARCH_ADD24: ++ return ELF::R_LARCH_ADD24; ++ case LoongArch::fixup_LARCH_ADD32: ++ return ELF::R_LARCH_ADD32; ++ case LoongArch::fixup_LARCH_ADD64: ++ return ELF::R_LARCH_ADD64; ++ case LoongArch::fixup_LARCH_SUB8: ++ return ELF::R_LARCH_SUB8; ++ case LoongArch::fixup_LARCH_SUB16: ++ return ELF::R_LARCH_SUB16; ++ case LoongArch::fixup_LARCH_SUB24: ++ return ELF::R_LARCH_SUB24; ++ case LoongArch::fixup_LARCH_SUB32: ++ return ELF::R_LARCH_SUB32; ++ case LoongArch::fixup_LARCH_SUB64: ++ return ELF::R_LARCH_SUB64; ++ case LoongArch::fixup_LARCH_GNU_VTINHERIT: ++ return ELF::R_LARCH_GNU_VTINHERIT; ++ case LoongArch::fixup_LARCH_GNU_VTENTRY: ++ return ELF::R_LARCH_GNU_VTENTRY; ++ } ++} ++ ++std::unique_ptr ++llvm::createLoongArchELFObjectWriter(const Triple &TT, bool IsLPX32) { ++ uint8_t OSABI = MCELFObjectTargetWriter::getOSABI(TT.getOS()); ++ bool IsLP64 = TT.isArch64Bit() && !IsLPX32; ++ bool HasRelocationAddend = TT.isArch64Bit(); ++ return std::make_unique(OSABI, HasRelocationAddend, ++ IsLP64); ++} +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchELFStreamer.cpp b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchELFStreamer.cpp +new file mode 100644 +index 00000000000..ab1e235ed05 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchELFStreamer.cpp +@@ -0,0 +1,131 @@ ++//===-------- LoongArchELFStreamer.cpp - ELF Object Output ---------------------===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++ ++#include "LoongArchELFStreamer.h" ++#include "LoongArchFixupKinds.h" ++#include "LoongArchTargetStreamer.h" ++#include "llvm/BinaryFormat/ELF.h" ++#include "llvm/MC/MCAsmBackend.h" ++#include "llvm/MC/MCAssembler.h" ++#include "llvm/MC/MCCodeEmitter.h" ++#include "llvm/MC/MCContext.h" ++#include "llvm/MC/MCDwarf.h" ++#include "llvm/MC/MCInst.h" ++#include "llvm/MC/MCObjectWriter.h" ++#include "llvm/MC/MCSymbolELF.h" ++#include "llvm/MC/MCValue.h" ++#include "llvm/Support/Casting.h" ++ ++using namespace llvm; ++ ++static std::pair getRelocPairForSize(unsigned Size) { ++ switch (Size) { ++ default: ++ llvm_unreachable("unsupported fixup size"); ++ case 1: ++ return std::make_pair(LoongArch::fixup_LARCH_ADD8, ++ LoongArch::fixup_LARCH_SUB8); ++ case 2: ++ return std::make_pair(LoongArch::fixup_LARCH_ADD16, ++ LoongArch::fixup_LARCH_SUB16); ++ case 4: ++ return std::make_pair(LoongArch::fixup_LARCH_ADD32, ++ LoongArch::fixup_LARCH_SUB32); ++ case 8: ++ return std::make_pair(LoongArch::fixup_LARCH_ADD64, ++ LoongArch::fixup_LARCH_SUB64); ++ } ++} ++ ++static bool requiresFixups(MCContext &C, const MCExpr *Value, ++ const MCExpr *&LHS, const MCExpr *&RHS) { ++ const auto *MBE = dyn_cast(Value); ++ if (MBE == nullptr) ++ return false; ++ ++ MCValue E; ++ if (!Value->evaluateAsRelocatable(E, nullptr, nullptr)) ++ return false; ++ if (E.getSymA() == nullptr || E.getSymB() == nullptr) ++ return false; ++ ++ const auto &A = E.getSymA()->getSymbol(); ++ const auto &B = E.getSymB()->getSymbol(); ++ ++ if (A.getName().empty() && B.getName().empty()) ++ return false; ++ ++ if (!A.isInSection() && !B.isInSection() && ++ !A.getName().empty() && !B.getName().empty()) ++ return false; ++ ++ LHS = ++ MCBinaryExpr::create(MCBinaryExpr::Add, MCSymbolRefExpr::create(&A, C), ++ MCConstantExpr::create(E.getConstant(), C), C); ++ RHS = E.getSymB(); ++ ++ return (A.isInSection() ? true : !A.getName().empty()) || ++ (B.isInSection() ? B.getSection().hasInstructions() ++ : !B.getName().empty()); ++} ++ ++ ++LoongArchELFStreamer::LoongArchELFStreamer(MCContext &Context, ++ std::unique_ptr MAB, ++ std::unique_ptr OW, ++ std::unique_ptr Emitter) ++ : MCELFStreamer(Context, std::move(MAB), std::move(OW), ++ std::move(Emitter)) { ++ } ++ ++void LoongArchELFStreamer::EmitCFIStartProcImpl(MCDwarfFrameInfo &Frame) { ++ Frame.Begin = getContext().createTempSymbol(); ++ MCELFStreamer::EmitLabel(Frame.Begin); ++} ++ ++MCSymbol *LoongArchELFStreamer::EmitCFILabel() { ++ MCSymbol *Label = getContext().createTempSymbol("cfi", true); ++ MCELFStreamer::EmitLabel(Label); ++ return Label; ++} ++ ++void LoongArchELFStreamer::EmitCFIEndProcImpl(MCDwarfFrameInfo &Frame) { ++ Frame.End = getContext().createTempSymbol(); ++ MCELFStreamer::EmitLabel(Frame.End); ++} ++ ++void LoongArchELFStreamer::EmitValueImpl(const MCExpr *Value, unsigned Size, ++ SMLoc Loc) { ++ const MCExpr *A, *B; ++ if (!requiresFixups(getContext(), Value, A, B)) ++ return MCELFStreamer::EmitValueImpl(Value, Size, Loc); ++ ++ MCStreamer::EmitValueImpl(Value, Size, Loc); ++ ++ MCDataFragment *DF = getOrCreateDataFragment(); ++ flushPendingLabels(DF, DF->getContents().size()); ++ MCDwarfLineEntry::Make(this, getCurrentSectionOnly()); ++ ++ unsigned Add, Sub; ++ std::tie(Add, Sub) = getRelocPairForSize(Size); ++ ++ DF->getFixups().push_back(MCFixup::create( ++ DF->getContents().size(), A, static_cast(Add), Loc)); ++ DF->getFixups().push_back(MCFixup::create( ++ DF->getContents().size(), B, static_cast(Sub), Loc)); ++ ++ DF->getContents().resize(DF->getContents().size() + Size, 0); ++} ++ ++MCELFStreamer *llvm::createLoongArchELFStreamer( ++ MCContext &Context, std::unique_ptr MAB, ++ std::unique_ptr OW, std::unique_ptr Emitter, ++ bool RelaxAll) { ++ return new LoongArchELFStreamer(Context, std::move(MAB), std::move(OW), ++ std::move(Emitter)); ++} +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchELFStreamer.h b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchELFStreamer.h +new file mode 100644 +index 00000000000..44b7c05c4d2 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchELFStreamer.h +@@ -0,0 +1,53 @@ ++//===- LoongArchELFStreamer.h - ELF Object Output --------------------*- C++ -*-===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++// ++// This is a custom MCELFStreamer which allows us to insert some hooks before ++// emitting data into an actual object file. ++// ++//===----------------------------------------------------------------------===// ++ ++#ifndef LLVM_LIB_TARGET_LOONGARCH_MCTARGETDESC_LOONGARCHELFSTREAMER_H ++#define LLVM_LIB_TARGET_LOONGARCH_MCTARGETDESC_LOONGARCHELFSTREAMER_H ++ ++#include "llvm/ADT/SmallVector.h" ++#include "llvm/MC/MCELFStreamer.h" ++#include ++ ++namespace llvm { ++ ++class MCAsmBackend; ++class MCCodeEmitter; ++class MCContext; ++class MCSubtargetInfo; ++struct MCDwarfFrameInfo; ++ ++class LoongArchELFStreamer : public MCELFStreamer { ++ ++public: ++ LoongArchELFStreamer(MCContext &Context, std::unique_ptr MAB, ++ std::unique_ptr OW, ++ std::unique_ptr Emitter); ++ ++ /// Overriding these functions allows us to dismiss all labels. ++ void EmitValueImpl(const MCExpr *Value, unsigned Size, SMLoc Loc) override; ++ ++ // Overriding these functions allows us to avoid recording of these labels ++ // in emitLabel. ++ void EmitCFIStartProcImpl(MCDwarfFrameInfo &Frame) override; ++ void EmitCFIEndProcImpl(MCDwarfFrameInfo &Frame) override; ++ MCSymbol *EmitCFILabel() override; ++}; ++ ++MCELFStreamer *createLoongArchELFStreamer(MCContext &Context, ++ std::unique_ptr MAB, ++ std::unique_ptr OW, ++ std::unique_ptr Emitter, ++ bool RelaxAll); ++} // end namespace llvm ++ ++#endif // LLVM_LIB_TARGET_LOONGARCH_MCTARGETDESC_LOONGARCHELFSTREAMER_H +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchFixupKinds.h b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchFixupKinds.h +new file mode 100644 +index 00000000000..e0e1200d8ba +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchFixupKinds.h +@@ -0,0 +1,90 @@ ++//===-- LoongArchFixupKinds.h - LoongArch Specific Fixup Entries ----------*- C++ -*-===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++ ++#ifndef LLVM_LIB_TARGET_LOONGARCH_MCTARGETDESC_LOONGARCHFIXUPKINDS_H ++#define LLVM_LIB_TARGET_LOONGARCH_MCTARGETDESC_LOONGARCHFIXUPKINDS_H ++ ++#include "llvm/MC/MCFixup.h" ++ ++namespace llvm { ++namespace LoongArch { ++ // Although most of the current fixup types reflect a unique relocation ++ // one can have multiple fixup types for a given relocation and thus need ++ // to be uniquely named. ++ // ++ // This table *must* be in the same order of ++ // MCFixupKindInfo Infos[LoongArch::NumTargetFixupKinds] ++ // in LoongArchAsmBackend.cpp. ++ // ++ enum Fixups { ++ // R_LARCH_NONE. ++ fixup_LARCH_NONE = FirstTargetFixupKind, ++ ++ // reloc_hint ++ fixup_LARCH_SOP_PUSH_ABSOLUTE, ++ fixup_LARCH_SOP_PUSH_PCREL, ++ fixup_LARCH_SOP_PUSH_GPREL, ++ fixup_LARCH_SOP_PUSH_TLS_TPREL, ++ fixup_LARCH_SOP_PUSH_TLS_GOT, ++ fixup_LARCH_SOP_PUSH_TLS_GD, ++ fixup_LARCH_SOP_PUSH_PLT_PCREL, ++ // fixup methods ++ fixup_LARCH_32, ++ fixup_LARCH_64, ++ fixup_LARCH_RELATIVE, ++ fixup_LARCH_COPY, ++ fixup_LARCH_JUMP_SLOT, ++ fixup_LARCH_TLS_DTPMOD32, ++ fixup_LARCH_TLS_DTPMOD64, ++ fixup_LARCH_TLS_DTPREL32, ++ fixup_LARCH_TLS_DTPREL64, ++ fixup_LARCH_TLS_TPREL32, ++ fixup_LARCH_TLS_TPREL64, ++ fixup_LARCH_IRELATIVE, ++ fixup_LARCH_MARK_LA, ++ fixup_LARCH_MARK_PCREL, ++ fixup_LARCH_SOP_PUSH_DUP, ++ fixup_LARCH_SOP_ASSERT, ++ fixup_LARCH_SOP_NOT, ++ fixup_LARCH_SOP_SUB, ++ fixup_LARCH_SOP_SL, ++ fixup_LARCH_SOP_SR, ++ fixup_LARCH_SOP_ADD, ++ fixup_LARCH_SOP_AND, ++ fixup_LARCH_SOP_IF_ELSE, ++ fixup_LARCH_SOP_POP_32_S_10_5, ++ fixup_LARCH_SOP_POP_32_U_10_12, ++ fixup_LARCH_SOP_POP_32_S_10_12, ++ fixup_LARCH_SOP_POP_32_S_10_16, ++ fixup_LARCH_SOP_POP_32_S_10_16_S2, ++ fixup_LARCH_SOP_POP_32_S_5_20, ++ fixup_LARCH_SOP_POP_32_S_0_5_10_16_S2, ++ fixup_LARCH_SOP_POP_32_S_0_10_10_16_S2, ++ fixup_LARCH_SOP_POP_32_U, ++ fixup_LARCH_ADD8, ++ fixup_LARCH_ADD16, ++ fixup_LARCH_ADD24, ++ fixup_LARCH_ADD32, ++ fixup_LARCH_ADD64, ++ fixup_LARCH_SUB8, ++ fixup_LARCH_SUB16, ++ fixup_LARCH_SUB24, ++ fixup_LARCH_SUB32, ++ fixup_LARCH_SUB64, ++ fixup_LARCH_GNU_VTINHERIT, ++ fixup_LARCH_GNU_VTENTRY, ++ ++ // Marker ++ LastTargetFixupKind, ++ NumTargetFixupKinds = LastTargetFixupKind - FirstTargetFixupKind ++ }; ++} // namespace LoongArch ++} // namespace llvm ++ ++ ++#endif +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchInstPrinter.cpp b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchInstPrinter.cpp +new file mode 100644 +index 00000000000..e7a13fb39c1 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchInstPrinter.cpp +@@ -0,0 +1,252 @@ ++//===-- LoongArchInstPrinter.cpp - Convert LoongArch MCInst to assembly syntax ------===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++// ++// This class prints an LoongArch MCInst to a .s file. ++// ++//===----------------------------------------------------------------------===// ++ ++#include "LoongArchInstPrinter.h" ++#include "MCTargetDesc/LoongArchMCExpr.h" ++#include "LoongArchInstrInfo.h" ++#include "MCTargetDesc/LoongArchMCTargetDesc.h" ++#include "llvm/ADT/StringExtras.h" ++#include "llvm/MC/MCExpr.h" ++#include "llvm/MC/MCInst.h" ++#include "llvm/MC/MCInstrInfo.h" ++#include "llvm/MC/MCSymbol.h" ++#include "llvm/Support/ErrorHandling.h" ++#include "llvm/Support/raw_ostream.h" ++using namespace llvm; ++ ++#define DEBUG_TYPE "asm-printer" ++ ++#define PRINT_ALIAS_INSTR ++#include "LoongArchGenAsmWriter.inc" ++ ++template ++static bool isReg(const MCInst &MI, unsigned OpNo) { ++ assert(MI.getOperand(OpNo).isReg() && "Register operand expected."); ++ return MI.getOperand(OpNo).getReg() == R; ++} ++ ++const char* LoongArch::LoongArchFCCToString(LoongArch::CondCode CC) { ++ switch (CC) { ++ case FCOND_T: ++ case FCOND_F: return "caf"; ++ case FCOND_OR: ++ case FCOND_UN: return "cun"; ++ case FCOND_UNE: ++ case FCOND_OEQ: return "ceq"; ++ case FCOND_ONE: ++ case FCOND_UEQ: return "cueq"; ++ case FCOND_UGE: ++ case FCOND_OLT: return "clt"; ++ case FCOND_OGE: ++ case FCOND_ULT: return "cult"; ++ case FCOND_UGT: ++ case FCOND_OLE: return "cle"; ++ case FCOND_OGT: ++ case FCOND_ULE: return "cule"; ++ case FCOND_ST: ++ case FCOND_SF: return "saf"; ++ case FCOND_GLE: ++ case FCOND_NGLE:return "sun"; ++ case FCOND_SEQ: return "seq"; ++ case FCOND_SNE: return "sne"; ++ case FCOND_GL: ++ case FCOND_NGL: return "sueq"; ++ case FCOND_NLT: ++ case FCOND_LT: return "slt"; ++ case FCOND_GE: ++ case FCOND_NGE: return "sult"; ++ case FCOND_NLE: ++ case FCOND_LE: return "sle"; ++ case FCOND_GT: ++ case FCOND_NGT: return "sule"; ++ case FCOND_CNE: return "cne"; ++ case FCOND_COR: return "cor"; ++ case FCOND_SOR: return "sor"; ++ case FCOND_CUNE: return "cune"; ++ case FCOND_SUNE: return "sune"; ++ } ++ llvm_unreachable("Impossible condition code!"); ++} ++ ++void LoongArchInstPrinter::printRegName(raw_ostream &OS, unsigned RegNo) const { ++ OS << '$' << StringRef(getRegisterName(RegNo)).lower(); ++} ++ ++void LoongArchInstPrinter::printInst(const MCInst *MI, uint64_t Address, ++ StringRef Annot, ++ const MCSubtargetInfo &STI, ++ raw_ostream &O) { ++ switch (MI->getOpcode()) { ++ default: ++ break; ++ case LoongArch::PCADDU12I_ri: ++ case LoongArch::PCADDU12I_rii: ++ case LoongArch::LU12I_W_ri: ++ printLoadAddr(MI, O); ++ return; ++ case LoongArch::ADD_D_rrr: ++ case LoongArch::LDX_D_rrr: ++ case LoongArch::ADDI_D_rri: ++ case LoongArch::ADDI_D_rrii: ++ case LoongArch::LD_D_rri: ++ case LoongArch::LD_D_rrii: ++ case LoongArch::ORI_rri: ++ case LoongArch::ORI_rrii: ++ case LoongArch::LU32I_D_ri: ++ case LoongArch::LU32I_D_rii: ++ case LoongArch::LU52I_D_rri: ++ case LoongArch::LU52I_D_rrii: ++ O << "\t# la expanded slot"; ++ return; ++ } ++ ++ // Try to print any aliases first. ++ if (!printAliasInstr(MI, O) && !printAlias(*MI, O)) ++ printInstruction(MI, Address, O); ++ printAnnotation(O, Annot); ++} ++ ++void LoongArchInstPrinter::printOperand(const MCInst *MI, unsigned OpNo, ++ raw_ostream &O) { ++ const MCOperand &Op = MI->getOperand(OpNo); ++ if (Op.isReg()) { ++ printRegName(O, Op.getReg()); ++ return; ++ } ++ ++ if (Op.isImm()) { ++ O << formatImm(Op.getImm()); ++ return; ++ } ++ ++ assert(Op.isExpr() && "unknown operand kind in printOperand"); ++ Op.getExpr()->print(O, &MAI, true); ++} ++ ++template ++void LoongArchInstPrinter::printUImm(const MCInst *MI, int opNum, raw_ostream &O) { ++ const MCOperand &MO = MI->getOperand(opNum); ++ if (MO.isImm()) { ++ uint64_t Imm = MO.getImm(); ++ Imm -= Offset; ++ Imm &= (1 << Bits) - 1; ++ Imm += Offset; ++ O << formatImm(Imm); ++ return; ++ } ++ ++ printOperand(MI, opNum, O); ++} ++ ++void LoongArchInstPrinter:: ++printMemOperand(const MCInst *MI, int opNum, raw_ostream &O) { ++ // Load/Store memory operands -- $reg, imm ++ printOperand(MI, opNum, O); ++ O << ", "; ++ printOperand(MI, opNum+1, O); ++} ++ ++void LoongArchInstPrinter::printAMemOperand(const MCInst *MI, int opNum, ++ raw_ostream &O) { ++ // AM* instruction memory operand: "rj, 0" ++ printRegName(O, MI->getOperand(opNum).getReg()); ++ O << ", 0"; ++} ++ ++void LoongArchInstPrinter:: ++printMemOperandEA(const MCInst *MI, int opNum, raw_ostream &O) { ++ // when using stack locations for not load/store instructions ++ // print the same way as all normal 3 operand instructions. ++ printOperand(MI, opNum, O); ++ O << ", "; ++ printOperand(MI, opNum+1, O); ++} ++ ++void LoongArchInstPrinter:: ++printFCCOperand(const MCInst *MI, int opNum, raw_ostream &O) { ++ const MCOperand& MO = MI->getOperand(opNum); ++ O << LoongArchFCCToString((LoongArch::CondCode)MO.getImm()); ++} ++ ++bool LoongArchInstPrinter::printAlias(const char *Str, const MCInst &MI, ++ unsigned OpNo, raw_ostream &OS) { ++ OS << "\t" << Str << "\t"; ++ if(MI.getOpcode() == LoongArch::JIRL) { ++ printOperand(&MI, OpNo, OS); ++ OS << "@plt"; ++ }else ++ printOperand(&MI, OpNo, OS); ++ return true; ++} ++ ++bool LoongArchInstPrinter::printAlias(const char *Str, const MCInst &MI, ++ unsigned OpNo0, unsigned OpNo1, ++ raw_ostream &OS) { ++ printAlias(Str, MI, OpNo0, OS); ++ OS << ", "; ++ printOperand(&MI, OpNo1, OS); ++ return true; ++} ++ ++bool LoongArchInstPrinter::printAlias(const MCInst &MI, raw_ostream &OS) { ++ switch (MI.getOpcode()) { ++ case LoongArch::OR: ++ // or $r0, $r1, $zero => move $r0, $r1 ++ return isReg(MI, 2) && printAlias("move", MI, 0, 1, OS); ++ default: return false; ++ } ++} ++ ++void LoongArchInstPrinter:: ++printRegisterList(const MCInst *MI, int opNum, raw_ostream &O) { ++ // - 2 because register List is always first operand of instruction and it is ++ // always followed by memory operand (base + offset). ++ for (int i = opNum, e = MI->getNumOperands() - 2; i != e; ++i) { ++ if (i != opNum) ++ O << ", "; ++ printRegName(O, MI->getOperand(i).getReg()); ++ } ++} ++ ++void LoongArchInstPrinter:: ++printLoadAddr(const MCInst *MI, raw_ostream &O) { ++ const MCOperand &Op = MI->getOperand(1); ++ const MCExpr *Expr = Op.getExpr(); ++ const LoongArchMCExpr *LoongArchExpr = cast(Expr); ++ switch (LoongArchExpr->getKind()) { ++ default: ++ llvm_unreachable("invalid handled!"); ++ return; ++ case LoongArchMCExpr::MEK_ABS_HI: ++ O << "\tla.abs\t"; ++ break; ++ case LoongArchMCExpr::MEK_GOT_HI: ++ O << "\tla.got\t"; ++ break; ++ case LoongArchMCExpr::MEK_PCREL_HI: ++ O << "\tla.pcrel\t"; ++ break; ++ case LoongArchMCExpr::MEK_TLSGD_HI: ++ O << "\tla.tls.gd\t"; ++ break; ++ case LoongArchMCExpr::MEK_TLSIE_HI: ++ O << "\tla.tls.ie\t"; ++ break; ++ case LoongArchMCExpr::MEK_TLSLE_HI: ++ O << "\tla.tls.le\t"; ++ break; ++ } ++ printRegName(O, MI->getOperand(0).getReg()); ++ O << ", "; ++ Expr->print(O, nullptr); ++ return; ++} +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchInstPrinter.h b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchInstPrinter.h +new file mode 100644 +index 00000000000..d609d352c06 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchInstPrinter.h +@@ -0,0 +1,118 @@ ++//=== LoongArchInstPrinter.h - Convert LoongArch MCInst to assembly syntax -*- C++ -*-==// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++// ++// This class prints a LoongArch MCInst to a .s file. ++// ++//===----------------------------------------------------------------------===// ++ ++#ifndef LLVM_LIB_TARGET_LOONGARCH_INSTPRINTER_LOONGARCHINSTPRINTER_H ++#define LLVM_LIB_TARGET_LOONGARCH_INSTPRINTER_LOONGARCHINSTPRINTER_H ++#include "llvm/MC/MCInstPrinter.h" ++ ++namespace llvm { ++ ++namespace LoongArch { ++// LoongArch Branch Codes ++enum FPBranchCode { ++ BRANCH_F, ++ BRANCH_T, ++ BRANCH_INVALID ++}; ++ ++// LoongArch Condition Codes ++enum CondCode { ++ FCOND_F = 0x0, ++ FCOND_SF, ++ FCOND_OLT, ++ FCOND_LT, ++ FCOND_OEQ, ++ FCOND_SEQ, ++ FCOND_OLE, ++ FCOND_LE, ++ FCOND_UN, ++ FCOND_NGLE, ++ FCOND_ULT, ++ FCOND_NGE, ++ FCOND_UEQ, ++ FCOND_NGL, ++ FCOND_ULE, ++ FCOND_NGT, ++ FCOND_CNE, ++ FCOND_SNE, ++ FCOND_COR = 0x14, ++ FCOND_SOR = 0x15, ++ FCOND_CUNE = 0x18, ++ FCOND_SUNE = 0x19, ++ ++ // To be used with float branch False ++ // This conditions have the same mnemonic as the ++ // above ones, but are used with a branch False; ++ FCOND_T, ++ FCOND_UNE, ++ FCOND_ST, ++ FCOND_UGE, ++ FCOND_NLT, ++ FCOND_UGT, ++ FCOND_NLE, ++ FCOND_OR, ++ FCOND_GLE, ++ FCOND_OGE, ++ FCOND_GE, ++ FCOND_ONE, ++ FCOND_GL, ++ FCOND_OGT, ++ FCOND_GT ++}; ++ ++const char *LoongArchFCCToString(LoongArch::CondCode CC); ++} // end namespace LoongArch ++ ++class LoongArchInstPrinter : public MCInstPrinter { ++public: ++ LoongArchInstPrinter(const MCAsmInfo &MAI, const MCInstrInfo &MII, ++ const MCRegisterInfo &MRI) ++ : MCInstPrinter(MAI, MII, MRI) {} ++ ++ // Autogenerated by tblgen. ++ void printInstruction(const MCInst *MI, uint64_t Address, raw_ostream &O); ++ static const char *getRegisterName(unsigned RegNo); ++ ++ void printRegName(raw_ostream &OS, unsigned RegNo) const override; ++ void printInst(const MCInst *MI, uint64_t Address, StringRef Annot, ++ const MCSubtargetInfo &STI, raw_ostream &O) override; ++ ++ bool printAliasInstr(const MCInst *MI, raw_ostream &OS); ++ void printCustomAliasOperand(const MCInst *MI, ++ unsigned OpIdx, unsigned PrintMethodIdx, ++ raw_ostream &O); ++ ++private: ++ void printOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O); ++ void printOperand(const MCInst *MI, uint64_t /*Address*/, unsigned OpNum, ++ raw_ostream &O) { ++ printOperand(MI, OpNum, O); ++ } ++ template ++ void printUImm(const MCInst *MI, int opNum, raw_ostream &O); ++ void printMemOperand(const MCInst *MI, int opNum, raw_ostream &O); ++ void printAMemOperand(const MCInst *MI, int opNum, raw_ostream &O); ++ void printMemOperandEA(const MCInst *MI, int opNum, raw_ostream &O); ++ void printFCCOperand(const MCInst *MI, int opNum, raw_ostream &O); ++ ++ bool printAlias(const char *Str, const MCInst &MI, unsigned OpNo, ++ raw_ostream &OS); ++ bool printAlias(const char *Str, const MCInst &MI, unsigned OpNo0, ++ unsigned OpNo1, raw_ostream &OS); ++ bool printAlias(const MCInst &MI, raw_ostream &OS); ++ void printSaveRestore(const MCInst *MI, raw_ostream &O); ++ void printRegisterList(const MCInst *MI, int opNum, raw_ostream &O); ++ void printLoadAddr(const MCInst *MI, raw_ostream &O); ++}; ++} // end namespace llvm ++ ++#endif +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCAsmInfo.cpp b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCAsmInfo.cpp +new file mode 100644 +index 00000000000..e157d9a7bf5 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCAsmInfo.cpp +@@ -0,0 +1,38 @@ ++//===-- LoongArchMCAsmInfo.cpp - LoongArch Asm Properties ---------------------------===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++// ++// This file contains the declarations of the LoongArchMCAsmInfo properties. ++// ++//===----------------------------------------------------------------------===// ++ ++#include "LoongArchMCAsmInfo.h" ++#include "llvm/ADT/Triple.h" ++ ++using namespace llvm; ++ ++void LoongArchMCAsmInfo::anchor() { } ++ ++LoongArchMCAsmInfo::LoongArchMCAsmInfo(const Triple &TheTriple, ++ const MCTargetOptions &Options) { ++ ++ if (TheTriple.isLoongArch64()) ++ CodePointerSize = CalleeSaveStackSlotSize = 8; ++ ++ AlignmentIsInBytes = false; ++ Data16bitsDirective = "\t.half\t"; ++ Data32bitsDirective = "\t.word\t"; ++ Data64bitsDirective = "\t.dword\t"; ++ CommentString = "#"; ++ ZeroDirective = "\t.space\t"; ++ SupportsDebugInformation = true; ++ ExceptionsType = ExceptionHandling::DwarfCFI; ++ DwarfRegNumForCFI = true; ++ //HasLoongArchExpressions = true; ++ UseIntegratedAssembler = true; ++ UsesELFSectionDirectiveForBSS = true; ++} +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCAsmInfo.h b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCAsmInfo.h +new file mode 100644 +index 00000000000..244db58dbab +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCAsmInfo.h +@@ -0,0 +1,31 @@ ++//===-- LoongArchMCAsmInfo.h - LoongArch Asm Info ------------------------*- C++ -*--===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++// ++// This file contains the declaration of the LoongArchMCAsmInfo class. ++// ++//===----------------------------------------------------------------------===// ++ ++#ifndef LLVM_LIB_TARGET_LOONGARCH_MCTARGETDESC_LOONGARCHMCASMINFO_H ++#define LLVM_LIB_TARGET_LOONGARCH_MCTARGETDESC_LOONGARCHMCASMINFO_H ++ ++#include "llvm/MC/MCAsmInfoELF.h" ++ ++namespace llvm { ++class Triple; ++ ++class LoongArchMCAsmInfo : public MCAsmInfoELF { ++ void anchor() override; ++ ++public: ++ explicit LoongArchMCAsmInfo(const Triple &TheTriple, ++ const MCTargetOptions &Options); ++}; ++ ++} // namespace llvm ++ ++#endif +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCCodeEmitter.cpp b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCCodeEmitter.cpp +new file mode 100644 +index 00000000000..9006555f31d +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCCodeEmitter.cpp +@@ -0,0 +1,1433 @@ ++//===-- LoongArchMCCodeEmitter.cpp - Convert LoongArch Code to Machine Code ---------===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++// ++// This file implements the LoongArchMCCodeEmitter class. ++// ++//===----------------------------------------------------------------------===// ++ ++#include "LoongArchMCCodeEmitter.h" ++#include "MCTargetDesc/LoongArchFixupKinds.h" ++#include "MCTargetDesc/LoongArchMCExpr.h" ++#include "MCTargetDesc/LoongArchMCTargetDesc.h" ++#include "MCTargetDesc/LoongArchInstPrinter.h" ++#include "llvm/ADT/APFloat.h" ++#include "llvm/ADT/APInt.h" ++#include "llvm/ADT/SmallVector.h" ++#include "llvm/MC/MCContext.h" ++#include "llvm/MC/MCExpr.h" ++#include "llvm/MC/MCFixup.h" ++#include "llvm/MC/MCInst.h" ++#include "llvm/MC/MCInstrDesc.h" ++#include "llvm/MC/MCInstrInfo.h" ++#include "llvm/MC/MCRegisterInfo.h" ++#include "llvm/MC/MCSubtargetInfo.h" ++#include "llvm/Support/Casting.h" ++#include "llvm/Support/ErrorHandling.h" ++#include "llvm/Support/raw_ostream.h" ++#include ++#include ++ ++using namespace llvm; ++ ++#define DEBUG_TYPE "mccodeemitter" ++ ++#define GET_INSTRMAP_INFO ++#include "LoongArchGenInstrInfo.inc" ++#undef GET_INSTRMAP_INFO ++ ++namespace llvm { ++ ++MCCodeEmitter *createLoongArchMCCodeEmitter(const MCInstrInfo &MCII, ++ const MCRegisterInfo &MRI, ++ MCContext &Ctx) { ++ return new LoongArchMCCodeEmitter(MCII, Ctx); ++} ++ ++} // end namespace llvm ++ ++void LoongArchMCCodeEmitter::EmitByte(unsigned char C, raw_ostream &OS) const { ++ OS << (char)C; ++} ++ ++void LoongArchMCCodeEmitter::EmitInstruction(uint64_t Val, unsigned Size, ++ const MCSubtargetInfo &STI, ++ raw_ostream &OS) const { ++ for (unsigned i = 0; i < Size; ++i) { ++ unsigned Shift = i * 8; ++ EmitByte((Val >> Shift) & 0xff, OS); ++ } ++} ++ ++/// encodeInstruction - Emit the instruction. ++/// Size the instruction with Desc.getSize(). ++void LoongArchMCCodeEmitter:: ++encodeInstruction(const MCInst &MI, raw_ostream &OS, ++ SmallVectorImpl &Fixups, ++ const MCSubtargetInfo &STI) const ++{ ++ MCInst TmpInst = MI; ++ ++ uint32_t Binary = getBinaryCodeForInstr(TmpInst, Fixups, STI); ++ ++ const MCInstrDesc &Desc = MCII.get(TmpInst.getOpcode()); ++ ++ // Get byte count of instruction ++ unsigned Size = Desc.getSize(); ++ if (!Size) ++ llvm_unreachable("Desc.getSize() returns 0"); ++ ++ EmitInstruction(Binary, Size, STI, OS); ++} ++ ++/// getBranchTargetOpValue - Return binary encoding of the branch ++/// target operand. If the machine operand requires relocation, ++/// record the relocation and return zero. ++unsigned LoongArchMCCodeEmitter:: ++getBranchTargetOpValue(const MCInst &MI, unsigned OpNo, ++ SmallVectorImpl &Fixups, ++ const MCSubtargetInfo &STI) const { ++ const MCOperand &MO = MI.getOperand(OpNo); ++ ++ // If the destination is an immediate, divide by 4. ++ if (MO.isImm()) return MO.getImm() >> 2; ++ ++ assert(MO.isExpr() && ++ "getBranchTargetOpValue expects only expressions or immediates"); ++ ++ // XXX: brtarget reloc EncoderMethod. ++ const MCExpr *Expr = MO.getExpr(); ++ int64_t Value = 0x0; ++ const MCConstantExpr *tmpExpr = MCConstantExpr::create(Value, Ctx); ++ Fixups.push_back(MCFixup::create(0, Expr, ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_PCREL))); ++ switch (MI.getOpcode()) { ++ default: ++ llvm_unreachable("Unhandled reloc instruction!"); ++ break; ++ case LoongArch::BEQZ: ++ case LoongArch::BEQZ32: ++ case LoongArch::BNEZ: ++ case LoongArch::BNEZ32: ++ case LoongArch::BCEQZ: ++ case LoongArch::BCNEZ: ++ Fixups.push_back(MCFixup::create(0, tmpExpr, ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_POP_32_S_0_5_10_16_S2))); ++ break; ++ case LoongArch::BEQ: ++ case LoongArch::BEQ32: ++ case LoongArch::BNE: ++ case LoongArch::BNE32: ++ case LoongArch::BLT: ++ case LoongArch::BLT32: ++ case LoongArch::BGE: ++ case LoongArch::BGE32: ++ case LoongArch::BLTU: ++ case LoongArch::BLTU32: ++ case LoongArch::BGEU: ++ case LoongArch::BGEU32: ++ Fixups.push_back(MCFixup::create(0, tmpExpr, ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_POP_32_S_10_16_S2))); ++ break; ++ } ++ return 0; ++} ++ ++/// getJumpTargetOpValue - Return binary encoding of the jump ++/// target operand. If the machine operand requires relocation, ++/// record the relocation and return zero. ++unsigned LoongArchMCCodeEmitter:: ++getJumpTargetOpValue(const MCInst &MI, unsigned OpNo, ++ SmallVectorImpl &Fixups, ++ const MCSubtargetInfo &STI) const { ++ const MCOperand &MO = MI.getOperand(OpNo); ++ // If the destination is an immediate, divide by 4. ++ if (MO.isImm()) return MO.getImm()>>2; ++ ++ assert(MO.isExpr() && ++ "getJumpTargetOpValue expects only expressions or an immediate"); ++ ++ const MCExpr *Expr = MO.getExpr(); ++ int64_t Value = 0x0; ++ const MCConstantExpr *tmpExpr = MCConstantExpr::create(Value, Ctx); ++ Fixups.push_back(MCFixup::create(0, Expr, ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_PLT_PCREL))); ++ if (MI.getOpcode() == LoongArch::JIRL) ++ Fixups.push_back(MCFixup::create(0, tmpExpr, ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_POP_32_S_10_16_S2))); ++ else // B or BL ++ Fixups.push_back(MCFixup::create(0, tmpExpr, ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_POP_32_S_0_10_10_16_S2))); ++ return 0; ++} ++ ++unsigned LoongArchMCCodeEmitter:: ++getSImm11Lsl1Encoding(const MCInst &MI, unsigned OpNo, ++ SmallVectorImpl &Fixups, ++ const MCSubtargetInfo &STI) const { ++ const MCOperand &MO = MI.getOperand(OpNo); ++ if (MO.isImm()) { ++ unsigned Value = MO.getImm(); ++ return Value >> 1; ++ } ++ ++ return 0; ++} ++ ++unsigned LoongArchMCCodeEmitter:: ++getSImm10Lsl2Encoding(const MCInst &MI, unsigned OpNo, ++ SmallVectorImpl &Fixups, ++ const MCSubtargetInfo &STI) const { ++ const MCOperand &MO = MI.getOperand(OpNo); ++ if (MO.isImm()) { ++ unsigned Value = MO.getImm(); ++ return Value >> 2; ++ } ++ ++ return 0; ++} ++ ++unsigned LoongArchMCCodeEmitter:: ++getSImm9Lsl3Encoding(const MCInst &MI, unsigned OpNo, ++ SmallVectorImpl &Fixups, ++ const MCSubtargetInfo &STI) const { ++ const MCOperand &MO = MI.getOperand(OpNo); ++ if (MO.isImm()) { ++ unsigned Value = MO.getImm(); ++ return Value >> 3; ++ } ++ ++ return 0; ++} ++ ++unsigned LoongArchMCCodeEmitter:: ++getSImm8Lsl1Encoding(const MCInst &MI, unsigned OpNo, ++ SmallVectorImpl &Fixups, ++ const MCSubtargetInfo &STI) const { ++ const MCOperand &MO = MI.getOperand(OpNo); ++ if (MO.isImm()) { ++ unsigned Value = MO.getImm(); ++ return Value >> 1; ++ } ++ ++ return 0; ++} ++ ++unsigned LoongArchMCCodeEmitter:: ++getSImm8Lsl2Encoding(const MCInst &MI, unsigned OpNo, ++ SmallVectorImpl &Fixups, ++ const MCSubtargetInfo &STI) const { ++ const MCOperand &MO = MI.getOperand(OpNo); ++ if (MO.isImm()) { ++ unsigned Value = MO.getImm(); ++ return Value >> 2; ++ } ++ ++ return 0; ++} ++ ++unsigned LoongArchMCCodeEmitter:: ++getSImm8Lsl3Encoding(const MCInst &MI, unsigned OpNo, ++ SmallVectorImpl &Fixups, ++ const MCSubtargetInfo &STI) const { ++ const MCOperand &MO = MI.getOperand(OpNo); ++ if (MO.isImm()) { ++ unsigned Value = MO.getImm(); ++ return Value >> 3; ++ } ++ ++ return 0; ++} ++ ++unsigned LoongArchMCCodeEmitter:: ++getExprOpValue(const MCInst &MI, const MCExpr *Expr, ++ SmallVectorImpl &Fixups, ++ const MCSubtargetInfo &STI) const { ++ int64_t Res; ++ ++ if (Expr->evaluateAsAbsolute(Res)) ++ return Res; ++ ++ MCExpr::ExprKind Kind = Expr->getKind(); ++ if (Kind == MCExpr::Constant) { ++ return cast(Expr)->getValue(); ++ } ++ ++ if (Kind == MCExpr::Binary) { ++ unsigned Res = getExprOpValue(MI, cast(Expr)->getLHS(), Fixups, STI); ++ Res += getExprOpValue(MI, cast(Expr)->getRHS(), Fixups, STI); ++ return Res; ++ } ++ ++ if (Kind == MCExpr::Target) { ++ int64_t Value = 0x0; ++ const LoongArchMCExpr *LoongArchExpr = cast(Expr); ++ const MCExpr *BinExpr = nullptr; ++ const MCExpr *GOTExpr = nullptr; ++ const MCSymbol *GOTSymbol = Ctx.getOrCreateSymbol(StringRef("_GLOBAL_OFFSET_TABLE_")); ++ ++ LoongArch::Fixups FixupKind = LoongArch::Fixups(0); ++ switch (LoongArchExpr->getKind()) { ++ case LoongArchMCExpr::MEK_None: ++ case LoongArchMCExpr::MEK_Special: ++ llvm_unreachable("Unhandled fixup kind!"); ++ Fixups.push_back(MCFixup::create(0, LoongArchExpr, MCFixupKind(FixupKind))); ++ break; ++ case LoongArchMCExpr::MEK_PLT: ++ Value = 0x0; ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_PLT_PCREL; ++ Fixups.push_back(MCFixup::create(0, LoongArchExpr, MCFixupKind(FixupKind))); ++ if (MI.getOpcode() == LoongArch::JIRL) ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_POP_32_S_10_16_S2))); ++ else // B or BL ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_POP_32_S_0_10_10_16_S2))); ++ break; ++ case LoongArchMCExpr::MEK_CALL_HI: ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_PLT_PCREL; ++ Fixups.push_back(MCFixup::create(0, LoongArchExpr, MCFixupKind(FixupKind))); ++ ++ Value = 0x20000; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_ADD))); ++ Value = 0x12; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SR))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_POP_32_S_5_20))); ++ ++ break; ++ case LoongArchMCExpr::MEK_CALL_LO: ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_PLT_PCREL; ++ Fixups.push_back(MCFixup::create(0, LoongArchExpr, MCFixupKind(FixupKind))); ++ ++ Value = 0x4; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_ADD))); ++ Fixups.push_back(MCFixup::create(0, LoongArchExpr, MCFixupKind(FixupKind))); ++ Value = 0x20004; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_ADD))); ++ Value = 0x12; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SR))); ++ Value = 0x12; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SL))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SUB))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_POP_32_S_10_16_S2))); ++ break; ++ case LoongArchMCExpr::MEK_GOT_HI: ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_PCREL; ++ GOTExpr = MCSymbolRefExpr::create(GOTSymbol, ++ MCSymbolRefExpr::VK_None, Ctx); ++ Value = 0x800; ++ BinExpr = MCBinaryExpr::createAdd(GOTExpr, MCConstantExpr::create(Value, Ctx), Ctx); ++ Fixups.push_back(MCFixup::create(0, BinExpr, MCFixupKind(FixupKind))); ++ ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_GPREL; ++ Fixups.push_back(MCFixup::create(0, LoongArchExpr, MCFixupKind(FixupKind))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_ADD))); ++ Value = 0xc; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SR))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_POP_32_S_5_20))); ++ break; ++ case LoongArchMCExpr::MEK_GOT_LO: ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_PCREL; ++ GOTExpr = MCSymbolRefExpr::create(GOTSymbol, ++ MCSymbolRefExpr::VK_None, Ctx); ++ Value = 0x4; ++ BinExpr = MCBinaryExpr::createAdd(GOTExpr, MCConstantExpr::create(Value, Ctx), Ctx); ++ Fixups.push_back(MCFixup::create(0, BinExpr, MCFixupKind(FixupKind))); ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_GPREL; ++ Fixups.push_back(MCFixup::create(0, LoongArchExpr, MCFixupKind(FixupKind))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_ADD))); ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_PCREL; ++ Value = 0x804; ++ BinExpr = MCBinaryExpr::createAdd(GOTExpr, MCConstantExpr::create(Value, Ctx), Ctx); ++ Fixups.push_back(MCFixup::create(0, BinExpr, MCFixupKind(FixupKind))); ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_GPREL; ++ Fixups.push_back(MCFixup::create(0, LoongArchExpr, MCFixupKind(FixupKind))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_ADD))); ++ Value = 0xc; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SR))); ++ Value = 0xc; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SL))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SUB))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_POP_32_S_10_12))); ++ break; ++ case LoongArchMCExpr::MEK_GOT_RRHI: ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_PCREL; ++ GOTExpr = MCSymbolRefExpr::create(GOTSymbol, ++ MCSymbolRefExpr::VK_None, Ctx); ++ Fixups.push_back(MCFixup::create(0, GOTExpr, MCFixupKind(FixupKind))); ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_GPREL; ++ Fixups.push_back(MCFixup::create(0, LoongArchExpr, MCFixupKind(FixupKind))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_ADD))); ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_PCREL; ++ Value = 0x80000000; ++ BinExpr = MCBinaryExpr::createAdd(GOTExpr, MCConstantExpr::create(Value, Ctx), Ctx); ++ Fixups.push_back(MCFixup::create(0, BinExpr, MCFixupKind(FixupKind))); ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_GPREL; ++ Fixups.push_back(MCFixup::create(0, LoongArchExpr, MCFixupKind(FixupKind))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_ADD))); ++ Value = 0x20; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SR))); ++ Value = 0x20; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SL))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SUB))); ++ Value = 0x20; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SL))); ++ Value = 0x2c; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SR))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_POP_32_S_5_20))); ++ break; ++ case LoongArchMCExpr::MEK_GOT_RRLO: ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_PCREL; ++ GOTExpr = MCSymbolRefExpr::create(GOTSymbol, ++ MCSymbolRefExpr::VK_None, Ctx); ++ Value = 0x4; ++ BinExpr = MCBinaryExpr::createAdd(GOTExpr, MCConstantExpr::create(Value, Ctx), Ctx); ++ Fixups.push_back(MCFixup::create(0, BinExpr, MCFixupKind(FixupKind))); ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_GPREL; ++ Fixups.push_back(MCFixup::create(0, LoongArchExpr, MCFixupKind(FixupKind))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_ADD))); ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_PCREL; ++ Value = 0x80000004; ++ BinExpr = MCBinaryExpr::createAdd(GOTExpr, MCConstantExpr::create(Value, Ctx), Ctx); ++ Fixups.push_back(MCFixup::create(0, BinExpr, MCFixupKind(FixupKind))); ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_GPREL; ++ Fixups.push_back(MCFixup::create(0, LoongArchExpr, MCFixupKind(FixupKind))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_ADD))); ++ Value = 0x20; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SR))); ++ Value = 0x20; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SL))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SUB))); ++ Value = 0xfff; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_AND))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_POP_32_U_10_12))); ++ break; ++ case LoongArchMCExpr::MEK_GOT_RRHIGHER: ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_PCREL; ++ GOTExpr = MCSymbolRefExpr::create(GOTSymbol, ++ MCSymbolRefExpr::VK_None, Ctx); ++ Value = 0x80000008; ++ BinExpr = MCBinaryExpr::createAdd(GOTExpr, MCConstantExpr::create(Value, Ctx), Ctx); ++ Fixups.push_back(MCFixup::create(0, BinExpr, MCFixupKind(FixupKind))); ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_GPREL; ++ Fixups.push_back(MCFixup::create(0, LoongArchExpr, MCFixupKind(FixupKind))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_ADD))); ++ Value = 0xc; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SL))); ++ Value = 0x2c; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SR))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_POP_32_S_5_20))); ++ break; ++ case LoongArchMCExpr::MEK_GOT_RRHIGHEST: ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_PCREL; ++ GOTExpr = MCSymbolRefExpr::create(GOTSymbol, ++ MCSymbolRefExpr::VK_None, Ctx); ++ Value = 0x8000000c; ++ BinExpr = MCBinaryExpr::createAdd(GOTExpr, MCConstantExpr::create(Value, Ctx), Ctx); ++ Fixups.push_back(MCFixup::create(0, BinExpr, MCFixupKind(FixupKind))); ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_GPREL; ++ Fixups.push_back(MCFixup::create(0, LoongArchExpr, MCFixupKind(FixupKind))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_ADD))); ++ Value = 0x34; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SR))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_POP_32_S_10_12))); ++ break; ++ case LoongArchMCExpr::MEK_ABS_HI: ++ FixupKind = LoongArch::fixup_LARCH_MARK_LA; ++ Fixups.push_back(MCFixup::create(0, LoongArchExpr, MCFixupKind(FixupKind))); ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE; ++ Fixups.push_back(MCFixup::create(0, LoongArchExpr, MCFixupKind(FixupKind))); ++ Value = 0x20; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SL))); ++ Value = 0x2c; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SR))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_POP_32_S_5_20))); ++ break; ++ case LoongArchMCExpr::MEK_ABS_LO: ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE; ++ Fixups.push_back(MCFixup::create(0, LoongArchExpr, MCFixupKind(FixupKind))); ++ Value = 0xfff; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_AND))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_POP_32_U_10_12))); ++ break; ++ case LoongArchMCExpr::MEK_ABS_HIGHER: ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE; ++ Fixups.push_back(MCFixup::create(0, LoongArchExpr, MCFixupKind(FixupKind))); ++ Value = 0xc; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SL))); ++ Value = 0x2c; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SR))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_POP_32_S_5_20))); ++ break; ++ case LoongArchMCExpr::MEK_ABS_HIGHEST: ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE; ++ Fixups.push_back(MCFixup::create(0, LoongArchExpr, MCFixupKind(FixupKind))); ++ Value = 0x34; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SR))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_POP_32_S_10_12))); ++ break; ++ case LoongArchMCExpr::MEK_PCREL_HI: ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_PCREL; ++ Value = 0x800; ++ BinExpr = MCBinaryExpr::createAdd(Expr, MCConstantExpr::create(Value, Ctx), Ctx); ++ Fixups.push_back(MCFixup::create(0, BinExpr, MCFixupKind(FixupKind))); ++ Value = 0xc; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SR))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_POP_32_S_5_20))); ++ break; ++ case LoongArchMCExpr::MEK_PCREL_LO: ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_PCREL; ++ Value = 0x4; ++ BinExpr = MCBinaryExpr::createAdd(Expr, MCConstantExpr::create(Value, Ctx), Ctx); ++ Fixups.push_back(MCFixup::create(0, BinExpr, MCFixupKind(FixupKind))); ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_PCREL; ++ Value = 0x804; ++ BinExpr = MCBinaryExpr::createAdd(Expr, MCConstantExpr::create(Value, Ctx), Ctx); ++ Fixups.push_back(MCFixup::create(0, BinExpr, MCFixupKind(FixupKind))); ++ Value = 0xc; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SR))); ++ Value = 0xc; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SL))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SUB))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_POP_32_S_10_12))); ++ break; ++ case LoongArchMCExpr::MEK_PCREL_RRHI: ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_PCREL; ++ Fixups.push_back(MCFixup::create(0, LoongArchExpr, MCFixupKind(FixupKind))); ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_PCREL; ++ Value = 0x80000000; ++ BinExpr = MCBinaryExpr::createAdd(LoongArchExpr, MCConstantExpr::create(Value, Ctx), Ctx); ++ Fixups.push_back(MCFixup::create(0, BinExpr, MCFixupKind(FixupKind))); ++ Value = 0x20; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SR))); ++ Value = 0x20; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SL))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SUB))); ++ Value = 0x20; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SL))); ++ Value = 0x2c; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SR))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_POP_32_S_5_20))); ++ break; ++ case LoongArchMCExpr::MEK_PCREL_RRLO: ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_PCREL; ++ Value = 0x4; ++ BinExpr = MCBinaryExpr::createAdd(LoongArchExpr, MCConstantExpr::create(Value, Ctx), Ctx); ++ Fixups.push_back(MCFixup::create(0, BinExpr, MCFixupKind(FixupKind))); ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_PCREL; ++ Value = 0x80000004; ++ BinExpr = MCBinaryExpr::createAdd(LoongArchExpr, MCConstantExpr::create(Value, Ctx), Ctx); ++ Fixups.push_back(MCFixup::create(0, BinExpr, MCFixupKind(FixupKind))); ++ Value = 0x20; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SR))); ++ Value = 0x20; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SL))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SUB))); ++ Value = 0xfff; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_AND))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_POP_32_U_10_12))); ++ break; ++ case LoongArchMCExpr::MEK_PCREL_RRHIGHER: ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_PCREL; ++ Value = 0x80000008; ++ BinExpr = MCBinaryExpr::createAdd(LoongArchExpr, MCConstantExpr::create(Value, Ctx), Ctx); ++ Fixups.push_back(MCFixup::create(0, BinExpr, MCFixupKind(FixupKind))); ++ Value = 0xc; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SL))); ++ Value = 0x2c; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SR))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_POP_32_S_5_20))); ++ break; ++ case LoongArchMCExpr::MEK_PCREL_RRHIGHEST: ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_PCREL; ++ Value = 0x8000000c; ++ BinExpr = MCBinaryExpr::createAdd(LoongArchExpr, MCConstantExpr::create(Value, Ctx), Ctx); ++ Fixups.push_back(MCFixup::create(0, BinExpr, MCFixupKind(FixupKind))); ++ Value = 0x34; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SR))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_POP_32_S_10_12))); ++ break; ++ case LoongArchMCExpr::MEK_TLSGD_HI: ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_PCREL; ++ GOTExpr = MCSymbolRefExpr::create(GOTSymbol, ++ MCSymbolRefExpr::VK_None, Ctx); ++ Value = 0x800; ++ BinExpr = MCBinaryExpr::createAdd(GOTExpr, MCConstantExpr::create(Value, Ctx), Ctx); ++ Fixups.push_back(MCFixup::create(0, BinExpr, MCFixupKind(FixupKind))); ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_TLS_GD; ++ Fixups.push_back(MCFixup::create(0, LoongArchExpr, MCFixupKind(FixupKind))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_ADD))); ++ Value = 0xc; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SR))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_POP_32_S_5_20))); ++ break; ++ case LoongArchMCExpr::MEK_TLSGD_LO: ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_PCREL; ++ GOTExpr = MCSymbolRefExpr::create(GOTSymbol, ++ MCSymbolRefExpr::VK_None, Ctx); ++ Value = 0x4; ++ BinExpr = MCBinaryExpr::createAdd(GOTExpr, MCConstantExpr::create(Value, Ctx), Ctx); ++ Fixups.push_back(MCFixup::create(0, BinExpr, MCFixupKind(FixupKind))); ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_TLS_GD; ++ Fixups.push_back(MCFixup::create(0, LoongArchExpr, MCFixupKind(FixupKind))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_ADD))); ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_PCREL; ++ Value = 0x804; ++ BinExpr = MCBinaryExpr::createAdd(GOTExpr, MCConstantExpr::create(Value, Ctx), Ctx); ++ Fixups.push_back(MCFixup::create(0, BinExpr, MCFixupKind(FixupKind))); ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_TLS_GD; ++ Fixups.push_back(MCFixup::create(0, LoongArchExpr, MCFixupKind(FixupKind))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_ADD))); ++ Value = 0xc; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SR))); ++ Value = 0xc; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SL))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SUB))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_POP_32_S_10_12))); ++ break; ++ case LoongArchMCExpr::MEK_TLSGD_RRHI: ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_PCREL; ++ GOTExpr = MCSymbolRefExpr::create(GOTSymbol, ++ MCSymbolRefExpr::VK_None, Ctx); ++ Fixups.push_back(MCFixup::create(0, GOTExpr, MCFixupKind(FixupKind))); ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_TLS_GD; ++ Fixups.push_back(MCFixup::create(0, LoongArchExpr, MCFixupKind(FixupKind))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_ADD))); ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_PCREL; ++ Value = 0x80000000; ++ BinExpr = MCBinaryExpr::createAdd(GOTExpr, MCConstantExpr::create(Value, Ctx), Ctx); ++ Fixups.push_back(MCFixup::create(0, BinExpr, MCFixupKind(FixupKind))); ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_TLS_GD; ++ Fixups.push_back(MCFixup::create(0, LoongArchExpr, MCFixupKind(FixupKind))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_ADD))); ++ Value = 0x20; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SR))); ++ Value = 0x20; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SL))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SUB))); ++ Value = 0x20; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SL))); ++ Value = 0x2c; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SR))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_POP_32_S_5_20))); ++ break; ++ case LoongArchMCExpr::MEK_TLSGD_RRLO: ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_PCREL; ++ GOTExpr = MCSymbolRefExpr::create(GOTSymbol, ++ MCSymbolRefExpr::VK_None, Ctx); ++ Value = 0x4; ++ BinExpr = MCBinaryExpr::createAdd(GOTExpr, MCConstantExpr::create(Value, Ctx), Ctx); ++ Fixups.push_back(MCFixup::create(0, BinExpr, MCFixupKind(FixupKind))); ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_TLS_GD; ++ Fixups.push_back(MCFixup::create(0, LoongArchExpr, MCFixupKind(FixupKind))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_ADD))); ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_PCREL; ++ Value = 0x80000004; ++ BinExpr = MCBinaryExpr::createAdd(GOTExpr, MCConstantExpr::create(Value, Ctx), Ctx); ++ Fixups.push_back(MCFixup::create(0, BinExpr, MCFixupKind(FixupKind))); ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_TLS_GD; ++ Fixups.push_back(MCFixup::create(0, LoongArchExpr, MCFixupKind(FixupKind))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_ADD))); ++ Value = 0x20; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SR))); ++ Value = 0x20; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SL))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SUB))); ++ Value = 0xfff; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_AND))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_POP_32_U_10_12))); ++ break; ++ case LoongArchMCExpr::MEK_TLSGD_RRHIGHER: ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_PCREL; ++ GOTExpr = MCSymbolRefExpr::create(GOTSymbol, ++ MCSymbolRefExpr::VK_None, Ctx); ++ Value = 0x80000008; ++ BinExpr = MCBinaryExpr::createAdd(GOTExpr, MCConstantExpr::create(Value, Ctx), Ctx); ++ Fixups.push_back(MCFixup::create(0, BinExpr, MCFixupKind(FixupKind))); ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_TLS_GD; ++ Fixups.push_back(MCFixup::create(0, LoongArchExpr, MCFixupKind(FixupKind))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_ADD))); ++ Value = 0xc; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SL))); ++ Value = 0x2c; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SR))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_POP_32_S_5_20))); ++ break; ++ case LoongArchMCExpr::MEK_TLSGD_RRHIGHEST: ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_PCREL; ++ GOTExpr = MCSymbolRefExpr::create(GOTSymbol, ++ MCSymbolRefExpr::VK_None, Ctx); ++ Value = 0x8000000c; ++ BinExpr = MCBinaryExpr::createAdd(GOTExpr, MCConstantExpr::create(Value, Ctx), Ctx); ++ Fixups.push_back(MCFixup::create(0, BinExpr, MCFixupKind(FixupKind))); ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_TLS_GD; ++ Fixups.push_back(MCFixup::create(0, LoongArchExpr, MCFixupKind(FixupKind))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_ADD))); ++ Value = 0x34; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SR))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_POP_32_S_10_12))); ++ break; ++ case LoongArchMCExpr::MEK_TLSIE_HI: ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_PCREL; ++ GOTExpr = MCSymbolRefExpr::create(GOTSymbol, ++ MCSymbolRefExpr::VK_None, Ctx); ++ Value = 0x800; ++ BinExpr = MCBinaryExpr::createAdd(GOTExpr, MCConstantExpr::create(Value, Ctx), Ctx); ++ Fixups.push_back(MCFixup::create(0, BinExpr, MCFixupKind(FixupKind))); ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_TLS_GOT; ++ Fixups.push_back(MCFixup::create(0, LoongArchExpr, MCFixupKind(FixupKind))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_ADD))); ++ Value = 0xc; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SR))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_POP_32_S_5_20))); ++ break; ++ case LoongArchMCExpr::MEK_TLSIE_LO: ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_PCREL; ++ GOTExpr = MCSymbolRefExpr::create(GOTSymbol, ++ MCSymbolRefExpr::VK_None, Ctx); ++ Value = 0x4; ++ BinExpr = MCBinaryExpr::createAdd(GOTExpr, MCConstantExpr::create(Value, Ctx), Ctx); ++ Fixups.push_back(MCFixup::create(0, BinExpr, MCFixupKind(FixupKind))); ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_TLS_GOT; ++ Fixups.push_back(MCFixup::create(0, LoongArchExpr, MCFixupKind(FixupKind))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_ADD))); ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_PCREL; ++ Value = 0x804; ++ BinExpr = MCBinaryExpr::createAdd(GOTExpr, MCConstantExpr::create(Value, Ctx), Ctx); ++ Fixups.push_back(MCFixup::create(0, BinExpr, MCFixupKind(FixupKind))); ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_TLS_GOT; ++ Fixups.push_back(MCFixup::create(0, LoongArchExpr, MCFixupKind(FixupKind))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_ADD))); ++ Value = 0xc; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SR))); ++ Value = 0xc; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SL))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SUB))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_POP_32_S_10_12))); ++ break; ++ case LoongArchMCExpr::MEK_TLSIE_RRHI: ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_PCREL; ++ GOTExpr = MCSymbolRefExpr::create(GOTSymbol, ++ MCSymbolRefExpr::VK_None, Ctx); ++ Fixups.push_back(MCFixup::create(0, GOTExpr, MCFixupKind(FixupKind))); ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_TLS_GOT; ++ Fixups.push_back(MCFixup::create(0, LoongArchExpr, MCFixupKind(FixupKind))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_ADD))); ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_PCREL; ++ Value = 0x80000000; ++ BinExpr = MCBinaryExpr::createAdd(GOTExpr, MCConstantExpr::create(Value, Ctx), Ctx); ++ Fixups.push_back(MCFixup::create(0, BinExpr, MCFixupKind(FixupKind))); ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_TLS_GOT; ++ Fixups.push_back(MCFixup::create(0, LoongArchExpr, MCFixupKind(FixupKind))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_ADD))); ++ Value = 0x20; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SR))); ++ Value = 0x20; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SL))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SUB))); ++ Value = 0x20; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SL))); ++ Value = 0x2c; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SR))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_POP_32_S_5_20))); ++ break; ++ case LoongArchMCExpr::MEK_TLSIE_RRLO: ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_PCREL; ++ GOTExpr = MCSymbolRefExpr::create(GOTSymbol, ++ MCSymbolRefExpr::VK_None, Ctx); ++ Value = 0x4; ++ BinExpr = MCBinaryExpr::createAdd(GOTExpr, MCConstantExpr::create(Value, Ctx), Ctx); ++ Fixups.push_back(MCFixup::create(0, BinExpr, MCFixupKind(FixupKind))); ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_TLS_GOT; ++ Fixups.push_back(MCFixup::create(0, LoongArchExpr, MCFixupKind(FixupKind))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_ADD))); ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_PCREL; ++ Value = 0x80000004; ++ BinExpr = MCBinaryExpr::createAdd(GOTExpr, MCConstantExpr::create(Value, Ctx), Ctx); ++ Fixups.push_back(MCFixup::create(0, BinExpr, MCFixupKind(FixupKind))); ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_TLS_GOT; ++ Fixups.push_back(MCFixup::create(0, LoongArchExpr, MCFixupKind(FixupKind))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_ADD))); ++ Value = 0x20; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SR))); ++ Value = 0x20; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SL))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SUB))); ++ Value = 0xfff; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_AND))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_POP_32_U_10_12))); ++ break; ++ case LoongArchMCExpr::MEK_TLSIE_RRHIGHER: ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_PCREL; ++ GOTExpr = MCSymbolRefExpr::create(GOTSymbol, ++ MCSymbolRefExpr::VK_None, Ctx); ++ Value = 0x80000008; ++ BinExpr = MCBinaryExpr::createAdd(GOTExpr, MCConstantExpr::create(Value, Ctx), Ctx); ++ Fixups.push_back(MCFixup::create(0, BinExpr, MCFixupKind(FixupKind))); ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_TLS_GOT; ++ Fixups.push_back(MCFixup::create(0, LoongArchExpr, MCFixupKind(FixupKind))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_ADD))); ++ Value = 0xc; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SL))); ++ Value = 0x2c; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SR))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_POP_32_S_5_20))); ++ break; ++ case LoongArchMCExpr::MEK_TLSIE_RRHIGHEST: ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_PCREL; ++ GOTExpr = MCSymbolRefExpr::create(GOTSymbol, ++ MCSymbolRefExpr::VK_None, Ctx); ++ Value = 0x8000000c; ++ BinExpr = MCBinaryExpr::createAdd(GOTExpr, MCConstantExpr::create(Value, Ctx), Ctx); ++ Fixups.push_back(MCFixup::create(0, BinExpr, MCFixupKind(FixupKind))); ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_TLS_GOT; ++ Fixups.push_back(MCFixup::create(0, LoongArchExpr, MCFixupKind(FixupKind))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_ADD))); ++ Value = 0x34; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SR))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_POP_32_S_10_12))); ++ break; ++ case LoongArchMCExpr::MEK_TLSLE_HI: ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_TLS_TPREL; ++ Fixups.push_back(MCFixup::create(0, LoongArchExpr, MCFixupKind(FixupKind))); ++ ++ Value = 0x20; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SL))); ++ Value = 0x2c; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SR))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_POP_32_S_5_20))); ++ break; ++ case LoongArchMCExpr::MEK_TLSLE_LO: ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_TLS_TPREL; ++ Fixups.push_back(MCFixup::create(0, LoongArchExpr, MCFixupKind(FixupKind))); ++ Value = 0xfff; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_AND))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_POP_32_U_10_12))); ++ break; ++ case LoongArchMCExpr::MEK_TLSLE_HIGHER: ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_TLS_TPREL; ++ Fixups.push_back(MCFixup::create(0, LoongArchExpr, MCFixupKind(FixupKind))); ++ Value = 0xc; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SL))); ++ Value = 0x2c; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SR))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_POP_32_S_5_20))); ++ break; ++ case LoongArchMCExpr::MEK_TLSLE_HIGHEST: ++ FixupKind = LoongArch::fixup_LARCH_SOP_PUSH_TLS_TPREL; ++ Fixups.push_back(MCFixup::create(0, LoongArchExpr, MCFixupKind(FixupKind))); ++ Value = 0x34; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_PUSH_ABSOLUTE))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_SR))); ++ Value = 0x0; ++ Fixups.push_back(MCFixup::create(0, MCConstantExpr::create(Value, Ctx), ++ MCFixupKind(LoongArch::fixup_LARCH_SOP_POP_32_S_10_12))); ++ break; ++ } ++ return 0; ++ } ++ ++ if (Kind == MCExpr::SymbolRef) { ++ LoongArch::Fixups FixupKind = LoongArch::Fixups(0); ++ ++ switch(cast(Expr)->getKind()) { ++ default: llvm_unreachable("Unknown fixup kind!"); ++ break; ++ } ++ Fixups.push_back(MCFixup::create(0, Expr, MCFixupKind(FixupKind))); ++ return 0; ++ } ++ return 0; ++} ++ ++/// getMachineOpValue - Return binary encoding of operand. If the machine ++/// operand requires relocation, record the relocation and return zero. ++unsigned LoongArchMCCodeEmitter:: ++getMachineOpValue(const MCInst &MI, const MCOperand &MO, ++ SmallVectorImpl &Fixups, ++ const MCSubtargetInfo &STI) const { ++ if (MO.isReg()) { ++ unsigned Reg = MO.getReg(); ++ unsigned RegNo = Ctx.getRegisterInfo()->getEncodingValue(Reg); ++ return RegNo; ++ } else if (MO.isImm()) { ++ return static_cast(MO.getImm()); ++ } else if (MO.isFPImm()) { ++ return static_cast(APFloat(MO.getFPImm()) ++ .bitcastToAPInt().getHiBits(32).getLimitedValue()); ++ } ++ // MO must be an Expr. ++ assert(MO.isExpr()); ++ return getExprOpValue(MI, MO.getExpr(),Fixups, STI); ++} ++ ++/// Return binary encoding of memory related operand. ++/// If the offset operand requires relocation, record the relocation. ++template ++unsigned LoongArchMCCodeEmitter::getMemEncoding(const MCInst &MI, unsigned OpNo, ++ SmallVectorImpl &Fixups, ++ const MCSubtargetInfo &STI) const { ++ // Base register is encoded in bits 16-12, offset is encoded in bits 11-0. ++ assert(MI.getOperand(OpNo).isReg()); ++ unsigned RegBits = getMachineOpValue(MI, MI.getOperand(OpNo),Fixups, STI) << 12; ++ unsigned OffBits = getMachineOpValue(MI, MI.getOperand(OpNo+1), Fixups, STI); ++ ++ // Apply the scale factor if there is one. ++ OffBits >>= ShiftAmount; ++ ++ return (OffBits & 0xFFF) | RegBits; ++} ++ ++/// Return binary encoding of AM* memory related operand. ++unsigned ++LoongArchMCCodeEmitter::getAMemEncoding(const MCInst &MI, unsigned OpNo, ++ SmallVectorImpl &Fixups, ++ const MCSubtargetInfo &STI) const { ++ // Base register is encoded in bits 16-12, bits 11-0 are not used. ++ assert(MI.getOperand(OpNo).isReg()); ++ unsigned RegBits = getMachineOpValue(MI, MI.getOperand(OpNo), Fixups, STI) ++ << 12; ++ return RegBits; ++} ++ ++unsigned LoongArchMCCodeEmitter::getMemEncoding10l2(const MCInst &MI, unsigned OpNo, ++ SmallVectorImpl &Fixups, ++ const MCSubtargetInfo &STI) const { ++ // Base register is encoded in bits 16-12, offset is encoded in bits 11-0. ++ assert(MI.getOperand(OpNo).isReg()); ++ unsigned RegBits = getMachineOpValue(MI, MI.getOperand(OpNo),Fixups, STI) << 10; ++ unsigned OffBits = getMachineOpValue(MI, MI.getOperand(OpNo+1), Fixups, STI); ++ ++ // Apply the scale factor if there is one. ++ OffBits >>= 2; ++ ++ return (OffBits & 0x3FF) | RegBits; ++} ++ ++unsigned LoongArchMCCodeEmitter::getMemEncoding11l1(const MCInst &MI, unsigned OpNo, ++ SmallVectorImpl &Fixups, ++ const MCSubtargetInfo &STI) const { ++ // Base register is encoded in bits 16-12, offset is encoded in bits 11-0. ++ assert(MI.getOperand(OpNo).isReg()); ++ unsigned RegBits = getMachineOpValue(MI, MI.getOperand(OpNo),Fixups, STI) << 11; ++ unsigned OffBits = getMachineOpValue(MI, MI.getOperand(OpNo+1), Fixups, STI); ++ ++ // Apply the scale factor if there is one. ++ OffBits >>= 1; ++ ++ return (OffBits & 0x7FF) | RegBits; ++} ++ ++unsigned LoongArchMCCodeEmitter::getMemEncoding9l3(const MCInst &MI, unsigned OpNo, ++ SmallVectorImpl &Fixups, ++ const MCSubtargetInfo &STI) const { ++ // Base register is encoded in bits 16-12, offset is encoded in bits 11-0. ++ assert(MI.getOperand(OpNo).isReg()); ++ unsigned RegBits = getMachineOpValue(MI, MI.getOperand(OpNo),Fixups, STI) << 9; ++ unsigned OffBits = getMachineOpValue(MI, MI.getOperand(OpNo+1), Fixups, STI); ++ ++ // Apply the scale factor if there is one. ++ OffBits >>= 3; ++ ++ return (OffBits & 0x1FF) | RegBits; ++} ++ ++/// Return binary encoding of simm14 memory related operand. Such as LL/SC instructions. ++/// If the offset operand requires relocation, record the relocation. ++template ++unsigned LoongArchMCCodeEmitter::getSimm14MemEncoding(const MCInst &MI, unsigned OpNo, ++ SmallVectorImpl &Fixups, ++ const MCSubtargetInfo &STI) const { ++ // Base register is encoded in bits 18-14, offset is encoded in bits 13-0. ++ assert(MI.getOperand(OpNo).isReg()); ++ unsigned RegBits = getMachineOpValue(MI, MI.getOperand(OpNo),Fixups, STI) << 14; ++ unsigned OffBits = getMachineOpValue(MI, MI.getOperand(OpNo+1), Fixups, STI); ++ ++ // Apply the scale factor if there is one. ++ OffBits >>= ShiftAmount; ++ ++ return (OffBits & 0x3FFF) | RegBits; ++} ++ ++unsigned ++LoongArchMCCodeEmitter::getFCMPEncoding(const MCInst &MI, unsigned OpNo, ++ SmallVectorImpl &Fixups, ++ const MCSubtargetInfo &STI) const { ++ const MCOperand& MO = MI.getOperand(OpNo); ++ switch((LoongArch::CondCode)MO.getImm()){ ++ case LoongArch::FCOND_T: ++ return 0x0; ++ case LoongArch::FCOND_OR: ++ return 0x8; ++ case LoongArch::FCOND_UNE: ++ return 0x4; ++ case LoongArch::FCOND_ONE: ++ return 0xC; ++ case LoongArch::FCOND_UGE: ++ return 0x2; ++ case LoongArch::FCOND_OGE: ++ return 0xA; ++ case LoongArch::FCOND_UGT: ++ return 0x6; ++ case LoongArch::FCOND_OGT: ++ return 0xE; ++ case LoongArch::FCOND_ST: ++ return 0x1; ++ case LoongArch::FCOND_GLE: ++ return 0x9; ++ case LoongArch::FCOND_GL: ++ return 0xD; ++ case LoongArch::FCOND_NLT: ++ return 0x3; ++ case LoongArch::FCOND_GE: ++ return 0xB; ++ case LoongArch::FCOND_NLE: ++ return 0x7; ++ case LoongArch::FCOND_GT: ++ return 0xF; ++ default: ++ return MO.getImm(); ++ } ++} ++ ++template ++unsigned ++LoongArchMCCodeEmitter::getUImmWithOffsetEncoding(const MCInst &MI, unsigned OpNo, ++ SmallVectorImpl &Fixups, ++ const MCSubtargetInfo &STI) const { ++ assert(MI.getOperand(OpNo).isImm()); ++ unsigned Value = getMachineOpValue(MI, MI.getOperand(OpNo), Fixups, STI); ++ Value -= Offset; ++ return Value; ++} ++ ++#include "LoongArchGenMCCodeEmitter.inc" +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCCodeEmitter.h b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCCodeEmitter.h +new file mode 100644 +index 00000000000..01634015174 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCCodeEmitter.h +@@ -0,0 +1,146 @@ ++//===- LoongArchMCCodeEmitter.h - Convert LoongArch Code to Machine Code --*- C++ -*-===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++// ++// This file defines the LoongArchMCCodeEmitter class. ++// ++//===----------------------------------------------------------------------===// ++ ++#ifndef LLVM_LIB_TARGET_LOONGARCH_MCTARGETDESC_LOONGARCHMCCODEEMITTER_H ++#define LLVM_LIB_TARGET_LOONGARCH_MCTARGETDESC_LOONGARCHMCCODEEMITTER_H ++ ++#include "llvm/MC/MCCodeEmitter.h" ++#include "llvm/ADT/StringRef.h" ++#include ++#include ++ ++namespace llvm { ++ ++class MCContext; ++class MCExpr; ++class MCFixup; ++class MCInst; ++class MCInstrInfo; ++class MCOperand; ++class MCSubtargetInfo; ++class raw_ostream; ++ ++class LoongArchMCCodeEmitter : public MCCodeEmitter { ++ const MCInstrInfo &MCII; ++ MCContext &Ctx; ++ ++public: ++ LoongArchMCCodeEmitter(const MCInstrInfo &mcii, MCContext &Ctx_) ++ : MCII(mcii), Ctx(Ctx_) {} ++ LoongArchMCCodeEmitter(const LoongArchMCCodeEmitter &) = delete; ++ LoongArchMCCodeEmitter &operator=(const LoongArchMCCodeEmitter &) = delete; ++ ~LoongArchMCCodeEmitter() override = default; ++ ++ void EmitByte(unsigned char C, raw_ostream &OS) const; ++ ++ void EmitInstruction(uint64_t Val, unsigned Size, const MCSubtargetInfo &STI, ++ raw_ostream &OS) const; ++ ++ void encodeInstruction(const MCInst &MI, raw_ostream &OS, ++ SmallVectorImpl &Fixups, ++ const MCSubtargetInfo &STI) const override; ++ ++ // getBinaryCodeForInstr - TableGen'erated function for getting the ++ // binary encoding for an instruction. ++ uint64_t getBinaryCodeForInstr(const MCInst &MI, ++ SmallVectorImpl &Fixups, ++ const MCSubtargetInfo &STI) const; ++ ++ // getJumpTargetOpValue - Return binary encoding of the jump ++ // target operand. If the machine operand requires relocation, ++ // record the relocation and return zero. ++ unsigned getJumpTargetOpValue(const MCInst &MI, unsigned OpNo, ++ SmallVectorImpl &Fixups, ++ const MCSubtargetInfo &STI) const; ++ ++ // getBranchTargetOpValue - Return binary encoding of the branch ++ // target operand. If the machine operand requires relocation, ++ // record the relocation and return zero. ++ unsigned getBranchTargetOpValue(const MCInst &MI, unsigned OpNo, ++ SmallVectorImpl &Fixups, ++ const MCSubtargetInfo &STI) const; ++ ++ // getMachineOpValue - Return binary encoding of operand. If the machin ++ // operand requires relocation, record the relocation and return zero. ++ unsigned getMachineOpValue(const MCInst &MI, const MCOperand &MO, ++ SmallVectorImpl &Fixups, ++ const MCSubtargetInfo &STI) const; ++ ++ template ++ unsigned getMemEncoding(const MCInst &MI, unsigned OpNo, ++ SmallVectorImpl &Fixups, ++ const MCSubtargetInfo &STI) const; ++ ++ unsigned getAMemEncoding(const MCInst &MI, unsigned OpNo, ++ SmallVectorImpl &Fixups, ++ const MCSubtargetInfo &STI) const; ++ ++ unsigned getMemEncoding10l2(const MCInst &MI, unsigned OpNo, ++ SmallVectorImpl &Fixups, ++ const MCSubtargetInfo &STI) const; ++ ++ unsigned getMemEncoding11l1(const MCInst &MI, unsigned OpNo, ++ SmallVectorImpl &Fixups, ++ const MCSubtargetInfo &STI) const; ++ ++ unsigned getMemEncoding9l3(const MCInst &MI, unsigned OpNo, ++ SmallVectorImpl &Fixups, ++ const MCSubtargetInfo &STI) const; ++ ++ template ++ unsigned getSimm14MemEncoding(const MCInst &MI, unsigned OpNo, ++ SmallVectorImpl &Fixups, ++ const MCSubtargetInfo &STI) const; ++ ++ unsigned getFCMPEncoding(const MCInst &MI, unsigned OpNo, ++ SmallVectorImpl &Fixups, ++ const MCSubtargetInfo &STI) const; ++ ++ /// Subtract Offset then encode as a N-bit unsigned integer. ++ template ++ unsigned getUImmWithOffsetEncoding(const MCInst &MI, unsigned OpNo, ++ SmallVectorImpl &Fixups, ++ const MCSubtargetInfo &STI) const; ++ ++ unsigned getExprOpValue(const MCInst &MI, const MCExpr *Expr, ++ SmallVectorImpl &Fixups, ++ const MCSubtargetInfo &STI) const; ++ ++ unsigned getSImm11Lsl1Encoding(const MCInst &MI, unsigned OpNo, ++ SmallVectorImpl &Fixups, ++ const MCSubtargetInfo &STI) const; ++ ++ unsigned getSImm10Lsl2Encoding(const MCInst &MI, unsigned OpNo, ++ SmallVectorImpl &Fixups, ++ const MCSubtargetInfo &STI) const; ++ ++ unsigned getSImm9Lsl3Encoding(const MCInst &MI, unsigned OpNo, ++ SmallVectorImpl &Fixups, ++ const MCSubtargetInfo &STI) const; ++ ++ unsigned getSImm8Lsl1Encoding(const MCInst &MI, unsigned OpNo, ++ SmallVectorImpl &Fixups, ++ const MCSubtargetInfo &STI) const; ++ ++ unsigned getSImm8Lsl2Encoding(const MCInst &MI, unsigned OpNo, ++ SmallVectorImpl &Fixups, ++ const MCSubtargetInfo &STI) const; ++ ++ unsigned getSImm8Lsl3Encoding(const MCInst &MI, unsigned OpNo, ++ SmallVectorImpl &Fixups, ++ const MCSubtargetInfo &STI) const; ++ ++}; ++ ++} // end namespace llvm ++ ++#endif // LLVM_LIB_TARGET_LOONGARCH_MCTARGETDESC_LOONGARCHMCCODEEMITTER_H +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCExpr.cpp b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCExpr.cpp +new file mode 100644 +index 00000000000..1af027f1554 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCExpr.cpp +@@ -0,0 +1,158 @@ ++//===-- LoongArchMCExpr.cpp - LoongArch specific MC expression classes --------------===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++ ++#include "LoongArchMCExpr.h" ++#include "llvm/BinaryFormat/ELF.h" ++#include "llvm/MC/MCAsmInfo.h" ++#include "llvm/MC/MCAssembler.h" ++#include "llvm/MC/MCContext.h" ++#include "llvm/MC/MCStreamer.h" ++#include "llvm/MC/MCSymbolELF.h" ++#include "llvm/MC/MCValue.h" ++#include "llvm/Support/Casting.h" ++#include "llvm/Support/ErrorHandling.h" ++#include "llvm/Support/MathExtras.h" ++#include "llvm/Support/raw_ostream.h" ++#include ++ ++using namespace llvm; ++ ++#define DEBUG_TYPE "loongarchmcexpr" ++ ++const LoongArchMCExpr *LoongArchMCExpr::create(LoongArchMCExpr::LoongArchExprKind Kind, ++ const MCExpr *Expr, MCContext &Ctx) { ++ return new (Ctx) LoongArchMCExpr(Kind, Expr); ++} ++ ++void LoongArchMCExpr::printImpl(raw_ostream &OS, const MCAsmInfo *MAI) const { ++ int64_t AbsVal; ++ if (Expr->evaluateAsAbsolute(AbsVal)) ++ OS << AbsVal; ++ else ++ Expr->print(OS, MAI, true); ++} ++ ++bool ++LoongArchMCExpr::evaluateAsRelocatableImpl(MCValue &Res, ++ const MCAsmLayout *Layout, ++ const MCFixup *Fixup) const { ++ if (!getSubExpr()->evaluateAsRelocatable(Res, Layout, Fixup)) ++ return false; ++ ++ if (Res.getRefKind() != MCSymbolRefExpr::VK_None) ++ return false; ++ ++ // evaluateAsAbsolute() and evaluateAsValue() require that we evaluate the ++ // %hi/%lo/etc. here. Fixup is a null pointer when either of these is the ++ // caller. ++ if (Res.isAbsolute() && Fixup == nullptr) { ++ int64_t AbsVal = Res.getConstant(); ++ switch (Kind) { ++ default: ++ break; ++ case MEK_None: ++ case MEK_Special: ++ llvm_unreachable("MEK_None and MEK_Special are invalid"); ++ } ++ Res = MCValue::get(AbsVal); ++ return true; ++ } ++ ++ // We want to defer it for relocatable expressions since the constant is ++ // applied to the whole symbol value. ++ // ++ // The value of getKind() that is given to MCValue is only intended to aid ++ // debugging when inspecting MCValue objects. It shouldn't be relied upon ++ // for decision making. ++ Res = MCValue::get(Res.getSymA(), Res.getSymB(), Res.getConstant(), getKind()); ++ ++ return true; ++} ++ ++void LoongArchMCExpr::visitUsedExpr(MCStreamer &Streamer) const { ++ Streamer.visitUsedExpr(*getSubExpr()); ++} ++ ++static void fixELFSymbolsInTLSFixupsImpl(const MCExpr *Expr, MCAssembler &Asm) { ++ switch (Expr->getKind()) { ++ case MCExpr::Target: ++ fixELFSymbolsInTLSFixupsImpl(cast(Expr)->getSubExpr(), Asm); ++ break; ++ case MCExpr::Constant: ++ break; ++ case MCExpr::Binary: { ++ const MCBinaryExpr *BE = cast(Expr); ++ fixELFSymbolsInTLSFixupsImpl(BE->getLHS(), Asm); ++ fixELFSymbolsInTLSFixupsImpl(BE->getRHS(), Asm); ++ break; ++ } ++ case MCExpr::SymbolRef: { ++ // We're known to be under a TLS fixup, so any symbol should be ++ // modified. There should be only one. ++ const MCSymbolRefExpr &SymRef = *cast(Expr); ++ cast(SymRef.getSymbol()).setType(ELF::STT_TLS); ++ break; ++ } ++ case MCExpr::Unary: ++ fixELFSymbolsInTLSFixupsImpl(cast(Expr)->getSubExpr(), Asm); ++ break; ++ } ++} ++ ++void LoongArchMCExpr::fixELFSymbolsInTLSFixups(MCAssembler &Asm) const { ++ switch (getKind()) { ++ default: ++ break; ++ case MEK_None: ++ case MEK_Special: ++ llvm_unreachable("MEK_None and MEK_Special are invalid"); ++ break; ++ case MEK_CALL_HI: ++ case MEK_CALL_LO: ++ case MEK_GOT_HI: ++ case MEK_GOT_LO: ++ case MEK_GOT_RRHI: ++ case MEK_GOT_RRLO: ++ case MEK_GOT_RRHIGHER: ++ case MEK_GOT_RRHIGHEST: ++ case MEK_ABS_HI: ++ case MEK_ABS_LO: ++ case MEK_ABS_HIGHER: ++ case MEK_ABS_HIGHEST: ++ case MEK_PCREL_HI: ++ case MEK_PCREL_LO: ++ case MEK_PCREL_RRHI: ++ case MEK_PCREL_RRHIGHER: ++ case MEK_PCREL_RRHIGHEST: ++ case MEK_PCREL_RRLO: ++ case MEK_PLT: ++ // If we do have nested target-specific expressions, they will be in ++ // a consecutive chain. ++ if (const LoongArchMCExpr *E = dyn_cast(getSubExpr())) ++ E->fixELFSymbolsInTLSFixups(Asm); ++ break; ++ case MEK_TLSGD_HI: ++ case MEK_TLSGD_LO: ++ case MEK_TLSGD_RRHI: ++ case MEK_TLSGD_RRHIGHER: ++ case MEK_TLSGD_RRHIGHEST: ++ case MEK_TLSGD_RRLO: ++ case MEK_TLSLE_HI: ++ case MEK_TLSLE_HIGHER: ++ case MEK_TLSLE_HIGHEST: ++ case MEK_TLSLE_LO: ++ case MEK_TLSIE_HI: ++ case MEK_TLSIE_LO: ++ case MEK_TLSIE_RRHI: ++ case MEK_TLSIE_RRHIGHER: ++ case MEK_TLSIE_RRHIGHEST: ++ case MEK_TLSIE_RRLO: ++ fixELFSymbolsInTLSFixupsImpl(getSubExpr(), Asm); ++ break; ++ } ++} +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCExpr.h b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCExpr.h +new file mode 100644 +index 00000000000..7851d478e91 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCExpr.h +@@ -0,0 +1,97 @@ ++//===- LoongArchMCExpr.h - LoongArch specific MC expression classes -------*- C++ -*-===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++ ++#ifndef LLVM_LIB_TARGET_LOONGARCH_MCTARGETDESC_LOONGARCHMCEXPR_H ++#define LLVM_LIB_TARGET_LOONGARCH_MCTARGETDESC_LOONGARCHMCEXPR_H ++ ++#include "llvm/MC/MCAsmLayout.h" ++#include "llvm/MC/MCExpr.h" ++#include "llvm/MC/MCValue.h" ++ ++namespace llvm { ++ ++class LoongArchMCExpr : public MCTargetExpr { ++public: ++ enum LoongArchExprKind { ++ MEK_None, ++ MEK_CALL_HI, ++ MEK_CALL_LO, ++ MEK_GOT_HI, ++ MEK_GOT_LO, ++ MEK_GOT_RRHI, ++ MEK_GOT_RRHIGHER, ++ MEK_GOT_RRHIGHEST, ++ MEK_GOT_RRLO, ++ MEK_ABS_HI, ++ MEK_ABS_HIGHER, ++ MEK_ABS_HIGHEST, ++ MEK_ABS_LO, ++ MEK_PCREL_HI, ++ MEK_PCREL_LO, ++ MEK_PCREL_RRHI, ++ MEK_PCREL_RRHIGHER, ++ MEK_PCREL_RRHIGHEST, ++ MEK_PCREL_RRLO, ++ MEK_TLSLE_HI, ++ MEK_TLSLE_HIGHER, ++ MEK_TLSLE_HIGHEST, ++ MEK_TLSLE_LO, ++ MEK_TLSIE_HI, ++ MEK_TLSIE_LO, ++ MEK_TLSIE_RRHI, ++ MEK_TLSIE_RRHIGHER, ++ MEK_TLSIE_RRHIGHEST, ++ MEK_TLSIE_RRLO, ++ MEK_TLSGD_HI, ++ MEK_TLSGD_LO, ++ MEK_TLSGD_RRHI, ++ MEK_TLSGD_RRHIGHER, ++ MEK_TLSGD_RRHIGHEST, ++ MEK_TLSGD_RRLO, ++ MEK_PLT, ++ MEK_Special, ++ }; ++ ++private: ++ const LoongArchExprKind Kind; ++ const MCExpr *Expr; ++ ++ explicit LoongArchMCExpr(LoongArchExprKind Kind, const MCExpr *Expr) ++ : Kind(Kind), Expr(Expr) {} ++ ++public: ++ static const LoongArchMCExpr *create(LoongArchExprKind Kind, const MCExpr *Expr, ++ MCContext &Ctx); ++ static const LoongArchMCExpr *createGpOff(LoongArchExprKind Kind, const MCExpr *Expr, ++ MCContext &Ctx); ++ ++ /// Get the kind of this expression. ++ LoongArchExprKind getKind() const { return Kind; } ++ ++ /// Get the child of this expression. ++ const MCExpr *getSubExpr() const { return Expr; } ++ ++ void printImpl(raw_ostream &OS, const MCAsmInfo *MAI) const override; ++ bool evaluateAsRelocatableImpl(MCValue &Res, const MCAsmLayout *Layout, ++ const MCFixup *Fixup) const override; ++ void visitUsedExpr(MCStreamer &Streamer) const override; ++ ++ MCFragment *findAssociatedFragment() const override { ++ return getSubExpr()->findAssociatedFragment(); ++ } ++ ++ void fixELFSymbolsInTLSFixups(MCAssembler &Asm) const override; ++ ++ static bool classof(const MCExpr *E) { ++ return E->getKind() == MCExpr::Target; ++ } ++}; ++ ++} // end namespace llvm ++ ++#endif // LLVM_LIB_TARGET_LOONGARCH_MCTARGETDESC_LOONGARCHMCEXPR_H +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCTargetDesc.cpp b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCTargetDesc.cpp +new file mode 100644 +index 00000000000..e9ad18672be +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCTargetDesc.cpp +@@ -0,0 +1,187 @@ ++//===-- LoongArchMCTargetDesc.cpp - LoongArch Target Descriptions -------------------===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++// ++// This file provides LoongArch specific target descriptions. ++// ++//===----------------------------------------------------------------------===// ++ ++#include "LoongArchMCTargetDesc.h" ++#include "LoongArchTargetStreamer.h" ++#include "MCTargetDesc/LoongArchAsmBackend.h" ++#include "MCTargetDesc/LoongArchELFStreamer.h" ++#include "MCTargetDesc/LoongArchInstPrinter.h" ++#include "MCTargetDesc/LoongArchMCAsmInfo.h" ++#include "TargetInfo/LoongArchTargetInfo.h" ++#include "llvm/ADT/Triple.h" ++#include "llvm/MC/MCCodeEmitter.h" ++#include "llvm/MC/MCELFStreamer.h" ++#include "llvm/MC/MCInstrAnalysis.h" ++#include "llvm/MC/MCInstrInfo.h" ++#include "llvm/MC/MCObjectWriter.h" ++#include "llvm/MC/MCRegisterInfo.h" ++#include "llvm/MC/MCSubtargetInfo.h" ++#include "llvm/MC/MCSymbol.h" ++#include "llvm/MC/MachineLocation.h" ++#include "llvm/Support/ErrorHandling.h" ++#include "llvm/Support/FormattedStream.h" ++#include "llvm/Support/TargetRegistry.h" ++ ++using namespace llvm; ++ ++#define GET_INSTRINFO_MC_DESC ++#include "LoongArchGenInstrInfo.inc" ++ ++#define GET_SUBTARGETINFO_MC_DESC ++#include "LoongArchGenSubtargetInfo.inc" ++ ++#define GET_REGINFO_MC_DESC ++#include "LoongArchGenRegisterInfo.inc" ++ ++/// Select the LoongArch CPU for the given triple and cpu name. ++/// FIXME: Merge with the copy in LoongArchSubtarget.cpp ++StringRef LoongArch_MC::selectLoongArchCPU(const Triple &TT, StringRef CPU) { ++ if (CPU.empty() || CPU == "generic") { ++ if (TT.isLoongArch32()) ++ CPU = "loongarch32"; //FIXME ++ else ++ CPU = "la464"; ++ } ++ return CPU; ++} ++ ++static MCInstrInfo *createLoongArchMCInstrInfo() { ++ MCInstrInfo *X = new MCInstrInfo(); ++ InitLoongArchMCInstrInfo(X); ++ return X; ++} ++ ++static MCRegisterInfo *createLoongArchMCRegisterInfo(const Triple &TT) { ++ MCRegisterInfo *X = new MCRegisterInfo(); ++ InitLoongArchMCRegisterInfo(X, LoongArch::RA); ++ return X; ++} ++ ++static MCSubtargetInfo *createLoongArchMCSubtargetInfo(const Triple &TT, ++ StringRef CPU, StringRef FS) { ++ CPU = LoongArch_MC::selectLoongArchCPU(TT, CPU); ++ return createLoongArchMCSubtargetInfoImpl(TT, CPU, FS); ++} ++ ++static MCAsmInfo *createLoongArchMCAsmInfo(const MCRegisterInfo &MRI, ++ const Triple &TT, ++ const MCTargetOptions &Options) { ++ MCAsmInfo *MAI = new LoongArchMCAsmInfo(TT, Options); ++ ++ unsigned SP = MRI.getDwarfRegNum(LoongArch::SP, true); ++ MCCFIInstruction Inst = MCCFIInstruction::createDefCfaRegister(nullptr, SP); ++ MAI->addInitialFrameState(Inst); ++ ++ return MAI; ++} ++ ++static MCInstPrinter *createLoongArchMCInstPrinter(const Triple &T, ++ unsigned SyntaxVariant, ++ const MCAsmInfo &MAI, ++ const MCInstrInfo &MII, ++ const MCRegisterInfo &MRI) { ++ return new LoongArchInstPrinter(MAI, MII, MRI); ++} ++ ++static MCStreamer *createMCStreamer(const Triple &T, MCContext &Context, ++ std::unique_ptr &&MAB, ++ std::unique_ptr &&OW, ++ std::unique_ptr &&Emitter, ++ bool RelaxAll) { ++ MCStreamer *S; ++ S = createLoongArchELFStreamer(Context, std::move(MAB), std::move(OW), ++ std::move(Emitter), RelaxAll); ++ return S; ++} ++ ++static MCTargetStreamer *createLoongArchAsmTargetStreamer(MCStreamer &S, ++ formatted_raw_ostream &OS, ++ MCInstPrinter *InstPrint, ++ bool isVerboseAsm) { ++ return new LoongArchTargetAsmStreamer(S, OS); ++} ++ ++static MCTargetStreamer *createLoongArchNullTargetStreamer(MCStreamer &S) { ++ return new LoongArchTargetStreamer(S); ++} ++ ++static MCTargetStreamer * ++createLoongArchObjectTargetStreamer(MCStreamer &S, const MCSubtargetInfo &STI) { ++ return new LoongArchTargetELFStreamer(S, STI); ++} ++ ++namespace { ++ ++class LoongArchMCInstrAnalysis : public MCInstrAnalysis { ++public: ++ LoongArchMCInstrAnalysis(const MCInstrInfo *Info) : MCInstrAnalysis(Info) {} ++ ++ bool evaluateBranch(const MCInst &Inst, uint64_t Addr, uint64_t Size, ++ uint64_t &Target) const override { ++ unsigned NumOps = Inst.getNumOperands(); ++ if (NumOps == 0) ++ return false; ++ if (Info->get(Inst.getOpcode()).isBranch() || Inst.getOpcode() == LoongArch::BL) { ++ // just not jirl ++ Target = Addr + Inst.getOperand(NumOps - 1).getImm(); ++ return true; ++ } else { ++ return false; ++ } ++ } ++}; ++} ++ ++static MCInstrAnalysis *createLoongArchMCInstrAnalysis(const MCInstrInfo *Info) { ++ return new LoongArchMCInstrAnalysis(Info); ++} ++ ++extern "C" LLVM_EXTERNAL_VISIBILITY void LLVMInitializeLoongArchTargetMC() { ++ for (Target *T : {&getTheLoongArch32Target(), &getTheLoongArch64Target()}) { ++ // Register the MC asm info. ++ RegisterMCAsmInfoFn X(*T, createLoongArchMCAsmInfo); ++ ++ // Register the MC instruction info. ++ TargetRegistry::RegisterMCInstrInfo(*T, createLoongArchMCInstrInfo); ++ ++ // Register the MC register info. ++ TargetRegistry::RegisterMCRegInfo(*T, createLoongArchMCRegisterInfo); ++ ++ // Register the elf streamer. ++ TargetRegistry::RegisterELFStreamer(*T, createMCStreamer); ++ ++ // Register the asm target streamer. ++ TargetRegistry::RegisterAsmTargetStreamer(*T, createLoongArchAsmTargetStreamer); ++ ++ TargetRegistry::RegisterNullTargetStreamer(*T, ++ createLoongArchNullTargetStreamer); ++ ++ // Register the MC subtarget info. ++ TargetRegistry::RegisterMCSubtargetInfo(*T, createLoongArchMCSubtargetInfo); ++ ++ // Register the MC instruction analyzer. ++ TargetRegistry::RegisterMCInstrAnalysis(*T, createLoongArchMCInstrAnalysis); ++ ++ // Register the MCInstPrinter. ++ TargetRegistry::RegisterMCInstPrinter(*T, createLoongArchMCInstPrinter); ++ ++ TargetRegistry::RegisterObjectTargetStreamer( ++ *T, createLoongArchObjectTargetStreamer); ++ ++ // Register the asm backend. ++ TargetRegistry::RegisterMCAsmBackend(*T, createLoongArchAsmBackend); ++ } ++ ++ // Register the MC Code Emitter ++ for (Target *T : {&getTheLoongArch32Target(), &getTheLoongArch64Target()}) ++ TargetRegistry::RegisterMCCodeEmitter(*T, createLoongArchMCCodeEmitter); ++} +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCTargetDesc.h b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCTargetDesc.h +new file mode 100644 +index 00000000000..c348a10a061 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCTargetDesc.h +@@ -0,0 +1,68 @@ ++//===-- LoongArchMCTargetDesc.h - LoongArch Target Descriptions -----------*- C++ -*-===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++// ++// This file provides LoongArch specific target descriptions. ++// ++//===----------------------------------------------------------------------===// ++ ++#ifndef LLVM_LIB_TARGET_LOONGARCH_MCTARGETDESC_LOONGARCHMCTARGETDESC_H ++#define LLVM_LIB_TARGET_LOONGARCH_MCTARGETDESC_LOONGARCHMCTARGETDESC_H ++ ++#include "llvm/Support/DataTypes.h" ++ ++#include ++ ++namespace llvm { ++class MCAsmBackend; ++class MCCodeEmitter; ++class MCContext; ++class MCInstrInfo; ++class MCObjectTargetWriter; ++class MCRegisterInfo; ++class MCSubtargetInfo; ++class MCTargetOptions; ++class StringRef; ++class Target; ++class Triple; ++class raw_ostream; ++class raw_pwrite_stream; ++ ++Target &getTheLoongArch32Target(); ++Target &getTheLoongArch64Target(); ++ ++MCCodeEmitter *createLoongArchMCCodeEmitter(const MCInstrInfo &MCII, ++ const MCRegisterInfo &MRI, ++ MCContext &Ctx); ++ ++MCAsmBackend *createLoongArchAsmBackend(const Target &T, ++ const MCSubtargetInfo &STI, ++ const MCRegisterInfo &MRI, ++ const MCTargetOptions &Options); ++ ++std::unique_ptr ++createLoongArchELFObjectWriter(const Triple &TT, bool IsLPX32); ++ ++namespace LoongArch_MC { ++StringRef selectLoongArchCPU(const Triple &TT, StringRef CPU); ++} ++ ++} // End llvm namespace ++ ++// Defines symbolic names for LoongArch registers. This defines a mapping from ++// register name to register number. ++#define GET_REGINFO_ENUM ++#include "LoongArchGenRegisterInfo.inc" ++ ++// Defines symbolic names for the LoongArch instructions. ++#define GET_INSTRINFO_ENUM ++#include "LoongArchGenInstrInfo.inc" ++ ++#define GET_SUBTARGETINFO_ENUM ++#include "LoongArchGenSubtargetInfo.inc" ++ ++#endif +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchTargetStreamer.cpp b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchTargetStreamer.cpp +new file mode 100644 +index 00000000000..b1f82b18873 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchTargetStreamer.cpp +@@ -0,0 +1,328 @@ ++//===-- LoongArchTargetStreamer.cpp - LoongArch Target Streamer Methods -------------===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++// ++// This file provides LoongArch specific target streamer methods. ++// ++//===----------------------------------------------------------------------===// ++ ++#include "LoongArchABIInfo.h" ++#include "LoongArchELFStreamer.h" ++#include "LoongArchInstPrinter.h" ++#include "LoongArchMCExpr.h" ++#include "LoongArchMCTargetDesc.h" ++#include "LoongArchTargetObjectFile.h" ++#include "LoongArchTargetStreamer.h" ++#include "llvm/BinaryFormat/ELF.h" ++#include "llvm/MC/MCContext.h" ++#include "llvm/MC/MCSectionELF.h" ++#include "llvm/MC/MCSubtargetInfo.h" ++#include "llvm/MC/MCSymbolELF.h" ++#include "llvm/Support/CommandLine.h" ++#include "llvm/Support/ErrorHandling.h" ++#include "llvm/Support/FormattedStream.h" ++ ++using namespace llvm; ++ ++namespace { ++static cl::opt RoundSectionSizes( ++ "loongarch-round-section-sizes", cl::init(false), ++ cl::desc("Round section sizes up to the section alignment"), cl::Hidden); ++} // end anonymous namespace ++ ++LoongArchTargetStreamer::LoongArchTargetStreamer(MCStreamer &S) ++ : MCTargetStreamer(S), ModuleDirectiveAllowed(true) { ++ GPRInfoSet = FPRInfoSet = FrameInfoSet = false; ++} ++void LoongArchTargetStreamer::emitDirectiveOptionPic0() {} ++void LoongArchTargetStreamer::emitDirectiveOptionPic2() {} ++void LoongArchTargetStreamer::emitDirectiveSetArch(StringRef Arch) { ++ forbidModuleDirective(); ++} ++void LoongArchTargetStreamer::emitDirectiveSetLoongArch32() { forbidModuleDirective(); } ++void LoongArchTargetStreamer::emitDirectiveSetloongarch64() { forbidModuleDirective(); } ++ ++void LoongArchTargetStreamer::emitR(unsigned Opcode, unsigned Reg0, SMLoc IDLoc, ++ const MCSubtargetInfo *STI) { ++ MCInst TmpInst; ++ TmpInst.setOpcode(Opcode); ++ TmpInst.addOperand(MCOperand::createReg(Reg0)); ++ TmpInst.setLoc(IDLoc); ++ getStreamer().EmitInstruction(TmpInst, *STI); ++} ++ ++void LoongArchTargetStreamer::emitRXX(unsigned Opcode, unsigned Reg0, MCOperand Op1, ++ MCOperand Op2, SMLoc IDLoc, const MCSubtargetInfo *STI) { ++ MCInst TmpInst; ++ TmpInst.setOpcode(Opcode); ++ TmpInst.addOperand(MCOperand::createReg(Reg0)); ++ TmpInst.addOperand(Op1); ++ TmpInst.addOperand(Op2); ++ TmpInst.setLoc(IDLoc); ++ getStreamer().EmitInstruction(TmpInst, *STI); ++} ++ ++void LoongArchTargetStreamer::emitRRXX(unsigned Opcode, unsigned Reg0, unsigned Reg1, ++ MCOperand Op2, MCOperand Op3, SMLoc IDLoc, ++ const MCSubtargetInfo *STI) { ++ MCInst TmpInst; ++ TmpInst.setOpcode(Opcode); ++ TmpInst.addOperand(MCOperand::createReg(Reg0)); ++ TmpInst.addOperand(MCOperand::createReg(Reg1)); ++ TmpInst.addOperand(Op2); ++ TmpInst.addOperand(Op3); ++ TmpInst.setLoc(IDLoc); ++ getStreamer().EmitInstruction(TmpInst, *STI); ++} ++ ++void LoongArchTargetStreamer::emitRX(unsigned Opcode, unsigned Reg0, MCOperand Op1, ++ SMLoc IDLoc, const MCSubtargetInfo *STI) { ++ MCInst TmpInst; ++ TmpInst.setOpcode(Opcode); ++ TmpInst.addOperand(MCOperand::createReg(Reg0)); ++ TmpInst.addOperand(Op1); ++ TmpInst.setLoc(IDLoc); ++ getStreamer().EmitInstruction(TmpInst, *STI); ++} ++ ++void LoongArchTargetStreamer::emitRI(unsigned Opcode, unsigned Reg0, int32_t Imm, ++ SMLoc IDLoc, const MCSubtargetInfo *STI) { ++ emitRX(Opcode, Reg0, MCOperand::createImm(Imm), IDLoc, STI); ++} ++ ++void LoongArchTargetStreamer::emitRR(unsigned Opcode, unsigned Reg0, unsigned Reg1, ++ SMLoc IDLoc, const MCSubtargetInfo *STI) { ++ emitRX(Opcode, Reg0, MCOperand::createReg(Reg1), IDLoc, STI); ++} ++ ++void LoongArchTargetStreamer::emitII(unsigned Opcode, int16_t Imm1, int16_t Imm2, ++ SMLoc IDLoc, const MCSubtargetInfo *STI) { ++ MCInst TmpInst; ++ TmpInst.setOpcode(Opcode); ++ TmpInst.addOperand(MCOperand::createImm(Imm1)); ++ TmpInst.addOperand(MCOperand::createImm(Imm2)); ++ TmpInst.setLoc(IDLoc); ++ getStreamer().EmitInstruction(TmpInst, *STI); ++} ++ ++void LoongArchTargetStreamer::emitRRX(unsigned Opcode, unsigned Reg0, unsigned Reg1, ++ MCOperand Op2, SMLoc IDLoc, ++ const MCSubtargetInfo *STI) { ++ MCInst TmpInst; ++ TmpInst.setOpcode(Opcode); ++ TmpInst.addOperand(MCOperand::createReg(Reg0)); ++ TmpInst.addOperand(MCOperand::createReg(Reg1)); ++ TmpInst.addOperand(Op2); ++ TmpInst.setLoc(IDLoc); ++ getStreamer().EmitInstruction(TmpInst, *STI); ++} ++ ++void LoongArchTargetStreamer::emitRRR(unsigned Opcode, unsigned Reg0, unsigned Reg1, ++ unsigned Reg2, SMLoc IDLoc, ++ const MCSubtargetInfo *STI) { ++ emitRRX(Opcode, Reg0, Reg1, MCOperand::createReg(Reg2), IDLoc, STI); ++} ++ ++void LoongArchTargetStreamer::emitRRI(unsigned Opcode, unsigned Reg0, ++ unsigned Reg1, int32_t Imm, SMLoc IDLoc, ++ const MCSubtargetInfo *STI) { ++ emitRRX(Opcode, Reg0, Reg1, MCOperand::createImm(Imm), IDLoc, STI); ++} ++ ++void LoongArchTargetStreamer::emitRRIII(unsigned Opcode, unsigned Reg0, ++ unsigned Reg1, int16_t Imm0, int16_t Imm1, ++ int16_t Imm2, SMLoc IDLoc, ++ const MCSubtargetInfo *STI) { ++ MCInst TmpInst; ++ TmpInst.setOpcode(Opcode); ++ TmpInst.addOperand(MCOperand::createReg(Reg0)); ++ TmpInst.addOperand(MCOperand::createReg(Reg1)); ++ TmpInst.addOperand(MCOperand::createImm(Imm0)); ++ TmpInst.addOperand(MCOperand::createImm(Imm1)); ++ TmpInst.addOperand(MCOperand::createImm(Imm2)); ++ TmpInst.setLoc(IDLoc); ++ getStreamer().EmitInstruction(TmpInst, *STI); ++} ++ ++void LoongArchTargetStreamer::emitAdd(unsigned DstReg, unsigned SrcReg, ++ unsigned TrgReg, bool Is64Bit, ++ const MCSubtargetInfo *STI) { ++ emitRRR(Is64Bit ? LoongArch::ADD_D : LoongArch::ADD_W, DstReg, SrcReg, TrgReg, SMLoc(), ++ STI); ++} ++ ++void LoongArchTargetStreamer::emitDSLL(unsigned DstReg, unsigned SrcReg, ++ int16_t ShiftAmount, SMLoc IDLoc, ++ const MCSubtargetInfo *STI) { ++ if (ShiftAmount >= 32) { ++ emitRRI(LoongArch::SLLI_D, DstReg, SrcReg, ShiftAmount - 32, IDLoc, STI); ++ return; ++ } ++ ++ emitRRI(LoongArch::SLLI_D, DstReg, SrcReg, ShiftAmount, IDLoc, STI); ++} ++ ++void LoongArchTargetStreamer::emitNop(SMLoc IDLoc, const MCSubtargetInfo *STI) { ++ emitRRI(LoongArch::ANDI, LoongArch::ZERO, LoongArch::ZERO, 0, IDLoc, STI); ++} ++ ++LoongArchTargetAsmStreamer::LoongArchTargetAsmStreamer(MCStreamer &S, ++ formatted_raw_ostream &OS) ++ : LoongArchTargetStreamer(S), OS(OS) {} ++ ++void LoongArchTargetAsmStreamer::emitDirectiveOptionPic0() { ++ OS << "\t.option\tpic0\n"; ++} ++ ++void LoongArchTargetAsmStreamer::emitDirectiveOptionPic2() { ++ OS << "\t.option\tpic2\n"; ++} ++ ++void LoongArchTargetAsmStreamer::emitDirectiveSetArch(StringRef Arch) { ++ OS << "\t.set arch=" << Arch << "\n"; ++ LoongArchTargetStreamer::emitDirectiveSetArch(Arch); ++} ++ ++void LoongArchTargetAsmStreamer::emitDirectiveSetLoongArch32() { ++ //OS << "\t.set\tloongarch32\n"; ++ LoongArchTargetStreamer::emitDirectiveSetLoongArch32(); ++} ++ ++void LoongArchTargetAsmStreamer::emitDirectiveSetloongarch64() { ++ //OS << "\t.set\tloongarch64\n"; ++ LoongArchTargetStreamer::emitDirectiveSetloongarch64(); ++} ++ ++// This part is for ELF object output. ++LoongArchTargetELFStreamer::LoongArchTargetELFStreamer(MCStreamer &S, ++ const MCSubtargetInfo &STI) ++ : LoongArchTargetStreamer(S), STI(STI) { ++ MCAssembler &MCA = getStreamer().getAssembler(); ++ ++ // It's possible that MCObjectFileInfo isn't fully initialized at this point ++ // due to an initialization order problem where LLVMTargetMachine creates the ++ // target streamer before TargetLoweringObjectFile calls ++ // InitializeMCObjectFileInfo. There doesn't seem to be a single place that ++ // covers all cases so this statement covers most cases and direct object ++ // emission must call setPic() once MCObjectFileInfo has been initialized. The ++ // cases we don't handle here are covered by LoongArchAsmPrinter. ++ Pic = MCA.getContext().getObjectFileInfo()->isPositionIndependent(); ++ ++ // Set the header flags that we can in the constructor. ++ // FIXME: This is a fairly terrible hack. We set the rest ++ // of these in the destructor. The problem here is two-fold: ++ // ++ // a: Some of the eflags can be set/reset by directives. ++ // b: There aren't any usage paths that initialize the ABI ++ // pointer until after we initialize either an assembler ++ // or the target machine. ++ // We can fix this by making the target streamer construct ++ // the ABI, but this is fraught with wide ranging dependency ++ // issues as well. ++ unsigned EFlags = MCA.getELFHeaderEFlags(); ++ ++ // FIXME: Fix a dependency issue by instantiating the ABI object to some ++ // default based off the triple. The triple doesn't describe the target ++ // fully, but any external user of the API that uses the MCTargetStreamer ++ // would otherwise crash on assertion failure. ++ ++ ABI = LoongArchABIInfo( ++ STI.getTargetTriple().getArch() == Triple::ArchType::loongarch32 ++ ? LoongArchABIInfo::LP32() ++ : LoongArchABIInfo::LP64()); ++ ++ EFlags |= ELF::EF_LARCH_ABI; ++ MCA.setELFHeaderEFlags(EFlags); ++} ++ ++void LoongArchTargetELFStreamer::emitLabel(MCSymbol *S) { ++ auto *Symbol = cast(S); ++ getStreamer().getAssembler().registerSymbol(*Symbol); ++ uint8_t Type = Symbol->getType(); ++ if (Type != ELF::STT_FUNC) ++ return; ++ ++} ++ ++void LoongArchTargetELFStreamer::finish() { ++ MCAssembler &MCA = getStreamer().getAssembler(); ++ const MCObjectFileInfo &OFI = *MCA.getContext().getObjectFileInfo(); ++ ++ // .bss, .text and .data are always at least 16-byte aligned. ++ MCSection &TextSection = *OFI.getTextSection(); ++ MCA.registerSection(TextSection); ++ MCSection &DataSection = *OFI.getDataSection(); ++ MCA.registerSection(DataSection); ++ MCSection &BSSSection = *OFI.getBSSSection(); ++ MCA.registerSection(BSSSection); ++ ++ TextSection.setAlignment(Align(std::max(16u, TextSection.getAlignment()))); ++ DataSection.setAlignment(Align(std::max(16u, DataSection.getAlignment()))); ++ BSSSection.setAlignment(Align(std::max(16u, BSSSection.getAlignment()))); ++ ++ if (RoundSectionSizes) { ++ // Make sections sizes a multiple of the alignment. This is useful for ++ // verifying the output of IAS against the output of other assemblers but ++ // it's not necessary to produce a correct object and increases section ++ // size. ++ MCStreamer &OS = getStreamer(); ++ for (MCSection &S : MCA) { ++ MCSectionELF &Section = static_cast(S); ++ ++ unsigned Alignment = Section.getAlignment(); ++ if (Alignment) { ++ OS.SwitchSection(&Section); ++ if (Section.UseCodeAlign()) ++ OS.EmitCodeAlignment(Alignment, Alignment); ++ else ++ OS.EmitValueToAlignment(Alignment, 0, 1, Alignment); ++ } ++ } ++ } ++ ++ // Update e_header flags. See the FIXME and comment above in ++ // the constructor for a full rundown on this. ++ unsigned EFlags = MCA.getELFHeaderEFlags(); ++ ++ // ABI ++ // LP64 does not require any ABI bits. ++ if (getABI().IsLP32()) ++ EFlags |= ELF::EF_LARCH_ABI_LP32; ++ else if (getABI().IsLPX32()) ++ EFlags |= ELF::EF_LARCH_ABI_LPX32; ++ else ++ EFlags |= ELF::EF_LARCH_ABI_LP64; ++ ++ MCA.setELFHeaderEFlags(EFlags); ++} ++ ++MCELFStreamer &LoongArchTargetELFStreamer::getStreamer() { ++ return static_cast(Streamer); ++} ++ ++void LoongArchTargetELFStreamer::emitDirectiveOptionPic0() { ++ MCAssembler &MCA = getStreamer().getAssembler(); ++ unsigned Flags = MCA.getELFHeaderEFlags(); ++ // This option overrides other PIC options like -KPIC. ++ Pic = false; ++ ///XXX:Reloc no this flags ++ //Flags &= ~ELF::EF_LOONGARCH_PIC; ++ MCA.setELFHeaderEFlags(Flags); ++} ++ ++void LoongArchTargetELFStreamer::emitDirectiveOptionPic2() { ++ MCAssembler &MCA = getStreamer().getAssembler(); ++ unsigned Flags = MCA.getELFHeaderEFlags(); ++ Pic = true; ++ // NOTE: We are following the GAS behaviour here which means the directive ++ // 'pic2' also sets the CPIC bit in the ELF header. This is different from ++ // what is stated in the SYSV ABI which consider the bits EF_LOONGARCH_PIC and ++ // EF_LOONGARCH_CPIC to be mutually exclusive. ++ ///XXX:Reloc no this flags ++ //Flags |= ELF::EF_LOONGARCH_PIC | ELF::EF_LOONGARCH_CPIC; ++ MCA.setELFHeaderEFlags(Flags); ++} +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/TargetInfo/CMakeLists.txt b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/TargetInfo/CMakeLists.txt +new file mode 100644 +index 00000000000..a0749909105 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/TargetInfo/CMakeLists.txt +@@ -0,0 +1,3 @@ ++add_llvm_component_library(LLVMLoongArchInfo ++ LoongArchTargetInfo.cpp ++ ) +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/TargetInfo/LLVMBuild.txt b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/TargetInfo/LLVMBuild.txt +new file mode 100644 +index 00000000000..6838e406605 +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/TargetInfo/LLVMBuild.txt +@@ -0,0 +1,22 @@ ++;===- ./lib/Target/LoongArch/TargetInfo/LLVMBuild.txt ---------------*- Conf -*--===; ++; ++; Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++; See https://llvm.org/LICENSE.txt for license information. ++; SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++; ++;===------------------------------------------------------------------------===; ++; ++; This is an LLVMBuild description file for the components in this subdirectory. ++; ++; For more information on the LLVMBuild system, please see: ++; ++; http://llvm.org/docs/LLVMBuild.html ++; ++;===------------------------------------------------------------------------===; ++ ++[component_0] ++type = Library ++name = LoongArchInfo ++parent = LoongArch ++required_libraries = Support ++add_to_library_groups = LoongArch +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/TargetInfo/LoongArchTargetInfo.cpp b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/TargetInfo/LoongArchTargetInfo.cpp +new file mode 100644 +index 00000000000..5d3ec9ea01d +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/TargetInfo/LoongArchTargetInfo.cpp +@@ -0,0 +1,34 @@ ++//===-- LoongArchTargetInfo.cpp - LoongArch Target Implementation -------------------===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++ ++#include "TargetInfo/LoongArchTargetInfo.h" ++#include "llvm/Support/TargetRegistry.h" ++using namespace llvm; ++ ++Target &llvm::getTheLoongArch32Target() { ++ static Target TheLoongArch32Target; ++ return TheLoongArch32Target; ++} ++ ++Target &llvm::getTheLoongArch64Target() { ++ static Target TheLoongArch64Target; ++ return TheLoongArch64Target; ++} ++ ++extern "C" LLVM_EXTERNAL_VISIBILITY void LLVMInitializeLoongArchTargetInfo() { ++#if 0 ++ //TODO: support it in futrue ++ RegisterTarget ++ X(getTheLoongArch32Target(), "loongarch32", "LoongArch (32-bit)", "LoongArch"); ++#endif ++ RegisterTarget ++ A(getTheLoongArch64Target(), "loongarch64", "LoongArch (64-bit)", ++ "LoongArch"); ++} +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/TargetInfo/LoongArchTargetInfo.h b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/TargetInfo/LoongArchTargetInfo.h +new file mode 100644 +index 00000000000..7dce2497f7d +--- /dev/null ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Target/LoongArch/TargetInfo/LoongArchTargetInfo.h +@@ -0,0 +1,21 @@ ++//===-- LoongArchTargetInfo.h - LoongArch Target Implementation -----------*- C++ -*-===// ++// ++// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// See https://llvm.org/LICENSE.txt for license information. ++// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++// ++//===----------------------------------------------------------------------===// ++ ++#ifndef LLVM_LIB_TARGET_LOONGARCH_TARGETINFO_LOONGARCHTARGETINFO_H ++#define LLVM_LIB_TARGET_LOONGARCH_TARGETINFO_LOONGARCHTARGETINFO_H ++ ++namespace llvm { ++ ++class Target; ++ ++Target &getTheLoongArch32Target(); ++Target &getTheLoongArch64Target(); ++ ++} // namespace llvm ++ ++#endif // LLVM_LIB_TARGET_LOONGARCH_TARGETINFO_LOONGARCHTARGETINFO_H +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp +index 79c119489a6..ed94be38fe4 100644 +--- a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp +@@ -102,6 +102,7 @@ static const uint64_t kPPC64_ShadowOffset64 = 1ULL << 44; + static const uint64_t kSystemZ_ShadowOffset64 = 1ULL << 52; + static const uint64_t kMIPS32_ShadowOffset32 = 0x0aaa0000; + static const uint64_t kMIPS64_ShadowOffset64 = 1ULL << 37; ++static const uint64_t kLoongArch64_ShadowOffset64 = 1ULL << 37; + static const uint64_t kAArch64_ShadowOffset64 = 1ULL << 36; + static const uint64_t kFreeBSD_ShadowOffset32 = 1ULL << 30; + static const uint64_t kFreeBSD_ShadowOffset64 = 1ULL << 46; +@@ -437,6 +438,7 @@ static ShadowMapping getShadowMapping(Triple &TargetTriple, int LongSize, + bool IsX86_64 = TargetTriple.getArch() == Triple::x86_64; + bool IsMIPS32 = TargetTriple.isMIPS32(); + bool IsMIPS64 = TargetTriple.isMIPS64(); ++ bool IsLoongArch64 = TargetTriple.isLoongArch64(); + bool IsArmOrThumb = TargetTriple.isARM() || TargetTriple.isThumb(); + bool IsAArch64 = TargetTriple.getArch() == Triple::aarch64; + bool IsWindows = TargetTriple.isOSWindows(); +@@ -501,6 +503,9 @@ static ShadowMapping getShadowMapping(Triple &TargetTriple, int LongSize, + Mapping.Offset = kWindowsShadowOffset64; + } else if (IsMIPS64) + Mapping.Offset = kMIPS64_ShadowOffset64; ++ else if (IsLoongArch64) { ++ Mapping.Offset = kLoongArch64_ShadowOffset64; ++ } + else if (IsIOS) + Mapping.Offset = kDynamicShadowSentinel; + else if (IsAArch64) +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp +index cf9a6a321c7..4d6d832b70a 100644 +--- a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp +@@ -548,6 +548,7 @@ bool DataFlowSanitizer::doInitialization(Module &M) { + bool IsMIPS64 = TargetTriple.isMIPS64(); + bool IsAArch64 = TargetTriple.getArch() == Triple::aarch64 || + TargetTriple.getArch() == Triple::aarch64_be; ++ bool IsLoongArch64 = TargetTriple.getArch() == Triple::loongarch64; + + const DataLayout &DL = M.getDataLayout(); + +@@ -562,6 +563,11 @@ bool DataFlowSanitizer::doInitialization(Module &M) { + ShadowPtrMask = ConstantInt::getSigned(IntptrTy, ~0x700000000000LL); + else if (IsMIPS64) + ShadowPtrMask = ConstantInt::getSigned(IntptrTy, ~0xF000000000LL); ++ // FIXME: '~0xF000000000LL' may be taken from the value of mips64's kShadowMask ++ // in the compiler-rt/lib/dfsan/dfsan_platform.h file. I'm not sure it is OK for ++ // loongarch64. ++ else if (IsLoongArch64) ++ ShadowPtrMask = ConstantInt::getSigned(IntptrTy, ~0xF000000000LL); + // AArch64 supports multiple VMAs and the shadow mask is set at runtime. + else if (IsAArch64) + DFSanRuntimeShadowMask = true; +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp +index dddd15a3ec2..6b89b16794c 100644 +--- a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp +@@ -376,6 +376,14 @@ static const MemoryMapParams Linux_X86_64_MemoryMapParams = { + #endif + }; + ++// loongarch64 Linux ++static const MemoryMapParams Linux_LOONGARCH64_MemoryMapParams = { ++ 0, // AndMask (not used) ++ 0x008000000000, // XorMask ++ 0, // ShadowBase (not used) ++ 0x002000000000, // OriginBase ++}; ++ + // mips64 Linux + static const MemoryMapParams Linux_MIPS64_MemoryMapParams = { + 0, // AndMask (not used) +@@ -429,6 +437,11 @@ static const PlatformMemoryMapParams Linux_X86_MemoryMapParams = { + &Linux_X86_64_MemoryMapParams, + }; + ++static const PlatformMemoryMapParams Linux_LOONGARCH_MemoryMapParams = { ++ nullptr, ++ &Linux_LOONGARCH64_MemoryMapParams, ++}; ++ + static const PlatformMemoryMapParams Linux_MIPS_MemoryMapParams = { + nullptr, + &Linux_MIPS64_MemoryMapParams, +@@ -481,6 +494,7 @@ public: + private: + friend struct MemorySanitizerVisitor; + friend struct VarArgAMD64Helper; ++ friend struct VarArgLoongArch64Helper; + friend struct VarArgMIPS64Helper; + friend struct VarArgAArch64Helper; + friend struct VarArgPowerPC64Helper; +@@ -916,6 +930,9 @@ void MemorySanitizer::initializeModule(Module &M) { + case Triple::x86: + MapParams = Linux_X86_MemoryMapParams.bits32; + break; ++ case Triple::loongarch64: ++ MapParams = Linux_LOONGARCH_MemoryMapParams.bits64; ++ break; + case Triple::mips64: + case Triple::mips64el: + MapParams = Linux_MIPS_MemoryMapParams.bits64; +@@ -4099,6 +4116,117 @@ struct VarArgAMD64Helper : public VarArgHelper { + } + }; + ++/// LoongArch64-specific implementation of VarArgHelper. ++struct VarArgLoongArch64Helper : public VarArgHelper { ++ Function &F; ++ MemorySanitizer &MS; ++ MemorySanitizerVisitor &MSV; ++ Value *VAArgTLSCopy = nullptr; ++ Value *VAArgSize = nullptr; ++ ++ SmallVector VAStartInstrumentationList; ++ ++ VarArgLoongArch64Helper(Function &F, MemorySanitizer &MS, ++ MemorySanitizerVisitor &MSV) : F(F), MS(MS), MSV(MSV) {} ++ ++ void visitCallSite(CallSite &CS, IRBuilder<> &IRB) override { ++ unsigned VAArgOffset = 0; ++ const DataLayout &DL = F.getParent()->getDataLayout(); ++ for (CallSite::arg_iterator ArgIt = CS.arg_begin() + ++ CS.getFunctionType()->getNumParams(), End = CS.arg_end(); ++ ArgIt != End; ++ArgIt) { ++ Triple TargetTriple(F.getParent()->getTargetTriple()); ++ Value *A = *ArgIt; ++ Value *Base; ++ uint64_t ArgSize = DL.getTypeAllocSize(A->getType()); ++ Base = getShadowPtrForVAArgument(A->getType(), IRB, VAArgOffset, ArgSize); ++ VAArgOffset += ArgSize; ++ VAArgOffset = alignTo(VAArgOffset, 8); ++ if (!Base) ++ continue; ++ IRB.CreateAlignedStore(MSV.getShadow(A), Base, kShadowTLSAlignment); ++ } ++ ++ Constant *TotalVAArgSize = ConstantInt::get(IRB.getInt64Ty(), VAArgOffset); ++ // Here using VAArgOverflowSizeTLS as VAArgSizeTLS to avoid creation of ++ // a new class member i.e. it is the total size of all VarArgs. ++ IRB.CreateStore(TotalVAArgSize, MS.VAArgOverflowSizeTLS); ++ } ++ ++ /// Compute the shadow address for a given va_arg. ++ Value *getShadowPtrForVAArgument(Type *Ty, IRBuilder<> &IRB, ++ unsigned ArgOffset, unsigned ArgSize) { ++ // Make sure we don't overflow __msan_va_arg_tls. ++ if (ArgOffset + ArgSize > kParamTLSSize) ++ return nullptr; ++ Value *Base = IRB.CreatePointerCast(MS.VAArgTLS, MS.IntptrTy); ++ Base = IRB.CreateAdd(Base, ConstantInt::get(MS.IntptrTy, ArgOffset)); ++ return IRB.CreateIntToPtr(Base, PointerType::get(MSV.getShadowTy(Ty), 0), ++ "_msarg"); ++ } ++ ++ void visitVAStartInst(VAStartInst &I) override { ++ IRBuilder<> IRB(&I); ++ VAStartInstrumentationList.push_back(&I); ++ Value *VAListTag = I.getArgOperand(0); ++ Value *ShadowPtr, *OriginPtr; ++ const Align Alignment = Align(8); ++ std::tie(ShadowPtr, OriginPtr) = MSV.getShadowOriginPtr( ++ VAListTag, IRB, IRB.getInt8Ty(), Alignment, /*isStore*/ true); ++ IRB.CreateMemSet(ShadowPtr, Constant::getNullValue(IRB.getInt8Ty()), ++ /* size */ 8, Alignment, false); ++ } ++ ++ void visitVACopyInst(VACopyInst &I) override { ++ IRBuilder<> IRB(&I); ++ VAStartInstrumentationList.push_back(&I); ++ Value *VAListTag = I.getArgOperand(0); ++ Value *ShadowPtr, *OriginPtr; ++ const Align Alignment = Align(8); ++ std::tie(ShadowPtr, OriginPtr) = MSV.getShadowOriginPtr( ++ VAListTag, IRB, IRB.getInt8Ty(), Alignment, /*isStore*/ true); ++ IRB.CreateMemSet(ShadowPtr, Constant::getNullValue(IRB.getInt8Ty()), ++ /* size */ 8, Alignment, false); ++ } ++ ++ void finalizeInstrumentation() override { ++ assert(!VAArgSize && !VAArgTLSCopy && ++ "finalizeInstrumentation called twice"); ++ IRBuilder<> IRB(MSV.ActualFnStart->getFirstNonPHI()); ++ VAArgSize = IRB.CreateLoad(IRB.getInt64Ty(), MS.VAArgOverflowSizeTLS); ++ Value *CopySize = IRB.CreateAdd(ConstantInt::get(MS.IntptrTy, 0), ++ VAArgSize); ++ ++ if (!VAStartInstrumentationList.empty()) { ++ // If there is a va_start in this function, make a backup copy of ++ // va_arg_tls somewhere in the function entry block. ++ VAArgTLSCopy = IRB.CreateAlloca(Type::getInt8Ty(*MS.C), CopySize); ++ IRB.CreateMemCpy(VAArgTLSCopy, Align(8), MS.VAArgTLS, Align(8), CopySize); ++ } ++ ++ // Instrument va_start. ++ // Copy va_list shadow from the backup copy of the TLS contents. ++ for (size_t i = 0, n = VAStartInstrumentationList.size(); i < n; i++) { ++ CallInst *OrigInst = VAStartInstrumentationList[i]; ++ IRBuilder<> IRB(OrigInst->getNextNode()); ++ Value *VAListTag = OrigInst->getArgOperand(0); ++ Type *RegSaveAreaPtrTy = Type::getInt64PtrTy(*MS.C); ++ Value *RegSaveAreaPtrPtr = ++ IRB.CreateIntToPtr(IRB.CreatePtrToInt(VAListTag, MS.IntptrTy), ++ PointerType::get(RegSaveAreaPtrTy, 0)); ++ Value *RegSaveAreaPtr = ++ IRB.CreateLoad(RegSaveAreaPtrTy, RegSaveAreaPtrPtr); ++ Value *RegSaveAreaShadowPtr, *RegSaveAreaOriginPtr; ++ const Align Alignment = Align(8); ++ std::tie(RegSaveAreaShadowPtr, RegSaveAreaOriginPtr) = ++ MSV.getShadowOriginPtr(RegSaveAreaPtr, IRB, IRB.getInt8Ty(), ++ Alignment, /*isStore*/ true); ++ IRB.CreateMemCpy(RegSaveAreaShadowPtr, Alignment, VAArgTLSCopy, Alignment, ++ CopySize); ++ } ++ } ++}; ++ + /// MIPS64-specific implementation of VarArgHelper. + struct VarArgMIPS64Helper : public VarArgHelper { + Function &F; +@@ -4688,6 +4816,8 @@ static VarArgHelper *CreateVarArgHelper(Function &Func, MemorySanitizer &Msan, + else if (TargetTriple.getArch() == Triple::ppc64 || + TargetTriple.getArch() == Triple::ppc64le) + return new VarArgPowerPC64Helper(Func, Msan, Visitor); ++ else if(TargetTriple.getArch() == Triple::loongarch64) ++ return new VarArgLoongArch64Helper(Func, Msan, Visitor); + else + return new VarArgNoOpHelper(Func, Msan, Visitor); + } +diff --git a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/XRay/InstrumentationMap.cpp b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/XRay/InstrumentationMap.cpp +index 1e9b69a5f9d..3357c1859cf 100644 +--- a/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/XRay/InstrumentationMap.cpp ++++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/XRay/InstrumentationMap.cpp +@@ -61,7 +61,8 @@ loadObj(StringRef Filename, object::OwningBinary &ObjFile, + if ((!ObjFile.getBinary()->isELF() && !ObjFile.getBinary()->isMachO()) || + !(ObjFile.getBinary()->getArch() == Triple::x86_64 || + ObjFile.getBinary()->getArch() == Triple::ppc64le || +- ObjFile.getBinary()->getArch() == Triple::aarch64)) ++ ObjFile.getBinary()->getArch() == Triple::aarch64 || ++ ObjFile.getBinary()->getArch() == Triple::loongarch64)) + return make_error( + "File format not supported (only does ELF and Mach-O little endian 64-bit).", + std::make_error_code(std::errc::not_supported)); +-- +2.25.1 +